diff --git a/.gitattributes b/.gitattributes index e7657f67..b5a7dadc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,8 @@ *.sh text=auto eol=lf +src/lib_rdi/rdi.h text=auto eol=lf +src/lib_rdi/rdi.c text=auto eol=lf +*.meta.* text=auto eol=lf +*.exe filter=lfs diff=lfs merge=lfs -text +*.pdb filter=lfs diff=lfs merge=lfs -text +*.elf filter=lfs diff=lfs merge=lfs -text +*.rdi filter=lfs diff=lfs merge=lfs -text diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index f9263756..58a20867 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -1,52 +1,151 @@ -name: builds - -on: - push: - paths-ignore: - - '**.md' - pull_request: - paths-ignore: - - '**.md' - -jobs: - build-windows-2022: - runs-on: windows-2022 - strategy: - fail-fast: false - matrix: - target: - - raddbg - - radlink - - radbin - compiler: - - msvc - - clang - mode: - - debug - - release - steps: - - name: checkout - uses: actions/checkout@v2 - - name: build (vs 2022) - shell: cmd - run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - call build "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 - - run-torture: - runs-on: windows-2022 - steps: - # - name: Install ASAN - # shell: cmd - # run: | - # "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Enterprise" --quiet --force --norestart --add Microsoft.VisualStudio.Component.VC.ASAN - - name: checkout - uses: actions/checkout@v2 - - name: run-torture - shell: cmd - run: | - call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 - call build radlink asan debug no_meta || exit /b 1 - call build torture debug no_meta || exit /b 1 - cd build - torture -l:radlink || exit /b 1 +name: builds + +on: + push: + paths-ignore: + - '**.md' + pull_request: + paths-ignore: + - '**.md' + +env: + TORTURE_FLAGS: "--gen_crash_dump" + +jobs: + build-ubuntu-24-04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + target: + - raddbg + - raddbg_non_graphical + - radlink + - radbin + - torture + compiler: + - clang-22 + # TODO: - gcc + mode: + - debug + - release + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + lfs: true + - name: Install Dependencies + shell: bash + run: | + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo apt-add-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-22 main" + sudo apt-get update + sudo apt-get install -y clang-22 lld-22 llvm-22 gcc-14 pkg-config libfreetype6-dev libx11-dev libxext-dev libgl1-mesa-dev libegl1-mesa-dev + sudo ln -s /usr/bin/llvm-symbolizer-22 /usr/bin/llvm-symbolizer + - name: build + shell: bash + run: | + CC="${{ matrix.compiler }}" ./build.sh "${{ matrix.target }}" "${{ matrix.mode }}" + + build-windows-2022: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + target: + - raddbg + - radlink + - radbin + - mule_main + compiler: + - msvc + - clang + mode: + - debug + - release + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + lfs: true + - name: build (vs 2022) + shell: cmd + run: | + for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VS_INSTALL=%%i" + call "%VS_INSTALL%\VC\Auxiliary\Build\vcvarsall.bat" x64 + call build meta "${{ matrix.target }}" "${{ matrix.compiler }}" "${{ matrix.mode }}" || exit /b 1 + + run-ubuntu-24-04: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + compiler: + - clang-22 + # TODO: - gcc + mode: + - debug + # TODO: - release + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + lfs: true + - name: Install Dependencies + shell: bash + run: | + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo apt-add-repository -y "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-22 main" + sudo apt-get update + sudo apt-get install -y clang-22 lld-22 llvm-22 gcc-14 pkg-config libfreetype6-dev libx11-dev libxext-dev libgl1-mesa-dev libegl1-mesa-dev + # crash callstack symbolizer depends on LLVM + sudo ln -s /usr/bin/llvm-symbolizer-22 /usr/bin/llvm-symbolizer + - name: Run + shell: bash + run: | + CC="${{ matrix.compiler }}" ./run_tests.sh clang "${{ matrix.mode }}" -- \* $TORTURE_FLAGS + - name: Upload Artifacts + if: failure() + uses: actions/upload-artifact@v7 + with: + name: torture-crash-dumps-${{ matrix.compiler }}-${{ matrix.mode }} + path: | + build/*.core + build/*.exe + build/*.pdb + build/torture_artifacts/** + if-no-files-found: ignore + + run-windows-2022: + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + compiler: + - msvc + - clang + mode: + - debug + - release + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + lfs: true + - name: Run + shell: cmd + run: | + for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath`) do set "VS_INSTALL=%%i" + call "%VS_INSTALL%\VC\Auxiliary\Build\vcvarsall.bat" x64 + call run_tests.bat ${{ matrix.compiler }} ${{ matrix.mode }} -- * %TORTURE_FLAGS% || exit /b 1 + - name: Upload Artifacts + if: failure() + uses: actions/upload-artifact@v7 + with: + name: torture-crash-dumps-${{ matrix.compiler }}-${{ matrix.mode }} + path: | + build/*.dmp + build/*.exe + build/*.pdb + build/torture_artifacts/** + if-no-files-found: ignore diff --git a/.gitignore b/.gitignore index c35392c5..20020ce7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /build/ /local/ *~ -.vscode/settings.json +.vs +tags \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 562dc77c..748e1e5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,248 @@ +# v0.9.27-alpha + +## Debugger Changes + +- Fixed an issue which would rarely cause steps to take a long time. +- Drastically improved memory usage of PDB -> RDI conversion for some + workloads, notably PDBs with many small compilation units. +- Added the ability to disambiguate symbol names by module name, debug info + name, or compilation unit name in expressions. This can be done using the + usual syntax, e.g. `my_module.dll!foo`, or `my_unit.obj!foo`. `:` can also be + used instead of `!`. +- Added the ability to redirect debug string output to any label on a + per-target basis. Those labels can then be evaluated in any watch window or + text visualizer. By default, all targets write to `output`, which is + automatically visualized by an `Output` tab. But if you want different + targets to route their debug output to different buffers, you can name the + buffers differently, and then view those in separate text views. +- Added a `Run To Name` command. +- Added an `Auto Load Last Project` setting, which will automatically load the + most recently loaded project on startup (the old behavior pre-0.9.26). This + setting is off by default. +- Added right-click menus for watch expressions, to easily find them in a + memory view, or to break when their value changes. +- Added preliminary support for symbol servers. First, the debugger can attempt + to download debug info for any module via the `Download Module Debug Info` + command (also accessible by right-clicking a module). Second, the debugger + can be configured to automatically do this for all modules which don't have + debug info via the `Auto Download Debug Info` setting. The local cache path + and server URLs used by the debugger for downloading symbols are parsed from + the `_NT_SYMBOL_PATH` environment variable. If that environment variable is + not configured, then it falls back to the defaults of `C:/SymbolCache` and + `https://msdl.microsoft.com/download/symbols`. +- Adjusted the default dark theme. +- Made several UI visual improvements. +- Fixed a few issues relating to offline symbol evaluation (evaluation of + symbols in debug info when not debugging); this was sometimes preventing + function listers (e.g. used in `Go To Name`) from working when not debugging. +- Fixed the debugger's snap-to-code-location rule when a `Disassembly` tab is + occupying the same panel as source code tabs. Previously, the debugger would + overly aggressively switch back to source code tabs. Now, it should respect + the preference of disassembly correctly. +- Improved the stability of the step-over-line operation. Our stepping + algorithm would sometimes cause spurious (and rarely, non-spurious) + access violation exceptions when a thread would try to execute at address + `0x38f`. This most regularly surfaced when an exception on one thread (like a + breakpoint being hit) would interrupt stepping on another thread. This has + been resolved, and stepping in such scenarios should be much more reliable. +- Fixed some crashes in the PDB -> RDI converter. (#792, #803) +- Fixed a bug which was sometimes causing a step-over operation to resume the + process without catching the target thread after its step completed. (#804) +- Adjusted evaluation visualizations to include fully qualified symbol names. + (#809) + +## Linker Changes +- /OPT:REF Fixed a race in the dead-code-elimination pass where the linker + sometimes erroneously removed live sections. +- Fixed a bug where the linker emitted relocations for empty COFF resource entries, + which lead to "relocating against symbol that is in a removed section" errors. +- Added the /RAD_TYPE_SERVER switch to run the type-dedup pass on object files, + producing RRT files that can be passed back on the next link to improve + linking speed. + +# v0.9.26-alpha + +## Debugger Changes + +- Added scope ending visualizations to the text view, to display the header of + a scope at the closing position of the scope. This can be turned off via the + `Cursor Scope End Annotations` setting. +- Added the ability to evaluate `autos`, which is a collection of expressions + that the debugger determines refer to symbols which are being (or about to + be) changed by the selected thread. +- Added source-inline and disassembly-inline visualization of auto expressions. + This can be turned off via the `Show Auto Watches In Source / Disassembly` + setting. +- Added the ability to evaluate local static variables unambiguously, when the + same name is used for multiple local static variables, even when outside the + function containing the local static. This can be done by namespacing the + variable name with the containing function, either using a `::` or `.` + operator. (#359) +- Added a setting, `Transient Tabs`, to disable transient tabs being opened, + when the debugger automatically snaps to new code locations. +- Added a setting, `Display Pointer Addresses Before Contents`, to always + force the debugger to show pointer addresses before attempting to visualize + to what the pointer points. +- Adjusted the `Step Out` command to perform scope-granularity stepping, rather + than only being function-frame-granularity. This uses scope information found + in debug info to step out of scopes when possible, rather than always exiting + the current function frame. This makes the command much more useful for + stepping through larger functions with several scopes of larger work, or for + stepping out of loops. (#746) +- Adjusted the debugger's user & project configuration file behavior to be less + idiosyncratic with other programs. Project files are no longer auto-loaded + based on the project last loaded during the previous debugger runtime. + Creating a new user or project also does not immediately require choosing a + path for the file; these can later be specified using the respective `Save` + commands. (#743) +- Adjusted the debugger to automatically set the current path when loading a + project file. (#743) +- Added syntax highlighting and tab-completion for view identifiers in + watch expressions. +- Added more in-debugger documentation for views and their arguments, when + written in a watch expression. +- Moved configuration data previously treated as project data to being user + data, tagged with the associated project. This includes loaded debug info and + breakpoints. The effect of this is that project files are much easier to + check into source control (they do not change in spurious ways for other + users on a project), but project-related user configuration will still be + correctly filtered based on whatever project is loaded. +- Improved the debugger's behavior with respect to keeping previously-loaded + debug info around. Now, when the debugger begins a new debugging session, it + will unload all loaded debug info, and it will only reload debug info that is + actively found to be needed by debuggees. This preserves the debugger's + ability to use debug info without debugging for features like + go-to-definition and type evaluation, but it stops the debugger from keeping + old and unneeded debug info loaded indefinitely (until it is manually + unloaded). (#711) +- Adjusted recent project visualization to include the name of the project, + specified with the `Project Name` setting. +- Renamed `Switch` to `Open Source File From Debug Info`, to better represent + the command's functionality. +- Adjusted file path evaluation visualization to include the full path to the + containing folder, when it is not obvious from context (for instance, if the + file evaluation is a child evaluation of a folder evaluation, the containing + folder path is not shown; if the file path is evaluated standalone, as it is + in the lister generated for the `Open Source File From Debug Info` command, + then the containing folder path is shown). +- Improved visualization of unmapped addresses in the memory view. Now, instead + of bytes at these addresses being displayed as `0` with a special background, + they are displayed as `x`, and the annotations for these addresses (displayed + at the bottom of the memory view, for the cursor's cell) explicitly label + them as being unmapped. +- Improved visualization of unmapped addresses in watch expressions. Now, + instead of only being colored differently with evaluations reading as zeroed + memory, the value will explicitly label addresses as unmapped when possible. +- Fixed a leak which most notably manifested during rapid creation/destruction + of new threads. (#780) +- Fixed a leak related to debugger's config state. This was difficult to + reproduce, but it may fix leaks experienced after running the debugger for an + extended period of time. +- Fixed a bug where cross-module evaluations would resolve to incorrect + addresses, due to using the incorrect module's base virtual address. This was + also causing broken behavior sometimes in the `Go To Name` lister, and + other similar UIs. +- Fixed a bug where panels without tabs were unnecessarily keeping the debugger + UI awake in some cases. +- Fixed a bug preventing hover evaluation from working on indexing expressions. + (#707) +- Replaced the DWARF -> RDI converter with a new multithreaded version, which + should execute much faster on larger DWARF debug info, and produce much + smaller RDI output, due to the addition of type deduplication. +- Introduced structured namespaces to RDI, which structurally encode namespace + hierarchies for debug info symbols, instead of this information being + implicitly baked using language-specific conventions into symbol names. This + is used to deduplicate repeated namespace prefixes from symbol names, leading + to a smaller string footprint for generated RDIs. Symbols now only store + their partially-qualified name. For example, for a C++ symbol `A::B::C`, the + symbol itself will store its name as `C`, but it will also record its + container as being `B`. `B`, then, will record its container as being `A`. + This allows users of RDI to dynamically construct the fully-qualified name as + needed, and it allows for more reliable and language-agnostic usage of + partially-qualified symbol names. +- Adjusted the debugger to not rely on `SynchronizationBarrier` functions on + Windows when they're not available (pre-Windows-8). (#739) + + +## Linker Changes + +- Implemented /DEBUG:GHASH +- Fixed an issue where an import thunk or import address could be linked from + the currently searched library instead of the library where the first import + reference was found. For example, if the first pass finds the import thunk in + foo.lib and the second pass resolves symbol to the import address in bar.lib, + the linker now always linkes the import thunk and import address members from + the library where the first reference was found. +- /OPT:REF: Fixed an issue with garbage collection of associated sections and + weak symbols that led linker to remove live sections. +- /OPT:REF Added relocation batching to reduce contention on the global + reference list during garbage collection. + +# v0.9.25-alpha + +## Debugger Changes + +- Added a dedicated cursor address bar to the memory view. This can be focused + with the keyboard with the `Focus Menu` command. By default, this command is + bound to `Alt + D`, but if you have existing configuration, you may need to + bind it yourself manually (this can be done in the palette). This address bar + accepts any expression, and controls the cursor's address. All other + configuration options are still available in the memory view settings. +- Added "Peek Types" to the memory view. These control the set of types which + are used to interpret bytes at the cursor. Options exist for basic cases, + like integers and floats, but the view also supports entering a list of + full type expressions, which can include user-defined types like structures. +- Added annotations for members of structure variables to the memory view. +- Added a dedicated zoom setting for the memory view. +- Added a setting for automatically determining the number of columns in the + memory view based on the available space. +- Fixed many bugs and improved visuals in the memory view. (#690) +- Fixed the debugger incorrectly evaluating pointer casts of registers in + register space, rather than promoting them to process address space + evaluations. This fixes cases where expressions like `(int *)rax` were not + evaluating correctly. (#659) +- Fixed the debugger incorrectly requiring multiple step operations when source + lines mapped to multiple discontiguous ranges of instructions. This most + notably showed up with certain styles of `for`-loops, especially with Clang + and other non-C/C++ languages, and function prologues in non-C/C++ languages. +- Fixed the debugger treating the `foo, x` fastpath for `hex(foo)` differently + than `hex(foo)`, in that the hexadecimal setting was not being inherited. +- Fixed the debugger leaking debug info conversion process handles. This + addresses cases where the debugger was preventing stale debug info from being + updated, after a rebuild. (#736) +- Fixed the debugger not correctly using target-embedded markup data. (#702) +- Fixed the debugger not showing full call stacks when the top instruction + pointer is located at a 0 address. +- Fixed integer casts producing incorrect values. (#754) +- Fixed the PDB -> RDI converter's interpretation of certain empty argument + lists in function types in PDB. This fixes some cases where local variables + were being interpreted as parameters, which resulted in incorrect evaluation + results. (#751) +- Fixed several crashes and instabilities. (#735) +- Added a dedicated settings button to the focused tab. This opens the same + menu as right-clicking the tab, but this makes this menu (and thus all + options for all tabs and views) more discoverable. +- Added optional cursor trails, to visualize cursor motion. Can be turned off + by toggling the `Cursor Trail` setting. +- Added project names. When set, this name is used for displaying the project + instead of the project filename in the UI and window titles. +- Adjusted the rules for explicit file location finding commands (like + `Switch`, or `Switch To Partner File`), such that they prefer creating new + non-transient tabs, even if the target file is found within an existing + transient tab. +- Adjusted the source code context menu to activate commands with a single + press, rather than the usual double click behavior from general palettes. + +## Linker Changes + +- Optimized debug info generation to reduce memory usage in large links by 25%. +- Fixed a determinism issue that caused linker to write unreliable debug info. +- Fixed over-reservetaion of PDB pages, reducing the PDB size. +- Implemented /INFERASANLIBS +- Implemented /WHOLEARCHIVE +- Implemented /PDBSTRIPPED +- Set correct defaults for unload and bind import tables. + # v0.9.24-alpha ## Debugger Changes diff --git a/build.bat b/build.bat index abe5f279..f636ea9c 100644 --- a/build.bat +++ b/build.bat @@ -24,6 +24,7 @@ cd /D "%~dp0" :: Below is a list of all possible non-target command line options: :: :: - `asan`: enable address sanitizer +:: - `ubsan`: enable undefined-behavior sanitizer :: - `telemetry`: enable RAD telemetry profiling support :: - `spall`: enable spall profiling support @@ -35,14 +36,15 @@ if "%debug%"=="1" set release=0 && echo [debug mode] if "%release%"=="1" set debug=0 && echo [release mode] if "%msvc%"=="1" set clang=0 && echo [msvc compile] if "%clang%"=="1" set msvc=0 && echo [clang compile] -if "%~1"=="" echo [default mode, assuming `raddbg` build] && set raddbg=1 -if "%~1"=="release" if "%~2"=="" echo [default mode, assuming `raddbg` build] && set raddbg=1 +if "%~1"=="" echo [default mode, assuming `raddbg` build] && set raddbg=1&& set com_shim=1&& set raddbg_com_shim=1 +if "%~1"=="release" if "%~2"=="" echo [default mode, assuming `raddbg` build] && set raddbg=1&& set com_shim=1&& set raddbg_com_shim=1 :: --- Unpack Command Line Build Arguments ------------------------------------ set auto_compile_flags= if "%telemetry%"=="1" set auto_compile_flags=%auto_compile_flags% -DPROFILE_TELEMETRY=1 && echo [telemetry profiling enabled] if "%spall%"=="1" set auto_compile_flags=%auto_compile_flags% -DPROFILE_SPALL=1 && echo [spall profiling enabled] if "%asan%"=="1" set auto_compile_flags=%auto_compile_flags% -fsanitize=address && echo [asan enabled] +if "%ubsan%"=="1" set auto_compile_flags=%auto_compile_flags% -fsanitize=undefined && echo [ubsan enabled] if "%opengl%"=="1" set auto_compile_flags=%auto_compile_flags% -DR_BACKEND=R_BACKEND_OPENGL && echo [opengl render backend] if "%dwarf%"=="1" if "%clang%"=="1" set auto_compile_flags=%auto_compile_flags% -gdwarf && echo [dwarf debug info] if "%dwarf%"=="" if "%clang%"=="1" set auto_compile_flags=%auto_compile_flags% -gcodeview @@ -66,21 +68,22 @@ if "%pgo%"=="1" ( ) :: --- Compile/Link Line Definitions ------------------------------------------ -set cl_common= /I..\src\ /I..\local\ /nologo /FC /Z7 -set cl_debug= call cl /Od /Ob1 /DBUILD_DEBUG=1 %cl_common% %auto_compile_flags% +set cl_common= /I..\src\ /I..\local\ /nologo /FC /Z7 /Zc:preprocessor +set cl_debug= call cl /Od /Ob1 /DBUILD_DEBUG=1 %cl_common% %auto_compile_flags% set cl_release= call cl /O2 /DBUILD_DEBUG=0 %cl_common% %auto_compile_flags% set cl_link= /link /MANIFEST:EMBED /INCREMENTAL:NO /pdbaltpath:%%%%_PDB%%%% /NATVIS:"%~dp0\src\natvis\base.natvis" /noexp /nocoffgrpinfo /opt:ref /opt:icf set cl_out= /out: +set cl_obj_out= /Fo: set cl_linker= -set clang_common= -I..\src\ -I..\local\ -fdiagnostics-absolute-paths -Wall -Wno-unknown-warning-option -Wno-missing-braces -Wno-unused-function -Wno-unused-parameter -Wno-writable-strings -Wno-missing-field-initializers -Wno-unused-value -Wno-unused-variable -Wno-unused-local-typedef -Wno-deprecated-register -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-single-bit-bitfield-constant-conversion -Wno-compare-distinct-pointer-types -Wno-initializer-overrides -Wno-incompatible-pointer-types-discards-qualifiers -Xclang -flto-visibility-public-std -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf -ferror-limit=10000 -mcx16 -msha -set clang_debug= call clang -g -O0 -DBUILD_DEBUG=1 %clang_common% %auto_compile_flags% -set clang_release= call clang -g -O2 -DBUILD_DEBUG=0 %clang_common% %auto_compile_flags% -set clang_link= -fuse-ld=lld -Xlinker /MANIFEST:EMBED -Xlinker /pdbaltpath:%%%%_PDB%%%% -Xlinker /NATVIS:"%~dp0\src\natvis\base.natvis" -Xlinker /opt:ref -Xlinker /opt:icf +set clang_common= -mcx16 -I..\src\ -I..\local\ -fdiagnostics-absolute-paths -Wall -Wno-unknown-warning-option -Wno-missing-braces -Wno-unused-function -Wno-unused-parameter -Wno-writable-strings -Wno-missing-field-initializers -Wno-unused-value -Wno-unused-variable -Wno-unused-local-typedef -Wno-deprecated-register -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-single-bit-bitfield-constant-conversion -Wno-compare-distinct-pointer-types -Wno-initializer-overrides -Wno-incompatible-pointer-types-discards-qualifiers -Xclang -flto-visibility-public-std -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf -ferror-limit=10000 +set clang_debug= call clang -g -O0 -DBUILD_DEBUG=1 -D_DEBUG %clang_common% %auto_compile_flags% +set clang_release= call clang -g -O2 -DBUILD_DEBUG=0 -DNDEBUG %clang_common% %auto_compile_flags% +set clang_link= -fuse-ld=lld -Xlinker /MANIFEST:EMBED -Xlinker /pdbaltpath:%%%%_PDB%%%% -Xlinker /NATVIS:"%~dp0\src\natvis\base.natvis" -Xlinker /opt:ref -Xlinker /opt:noicf set clang_out= -o +set clang_obj_out= -o set clang_linker= -Xlinker :: --- Per-Build Settings ----------------------------------------------------- -set link_dll=-DLL set link_icon=logo.res if "%msvc%"=="1" set linker=%cl_linker% if "%clang%"=="1" set linker=%clang_linker% @@ -92,16 +95,20 @@ if "%msvc%"=="1" set no_aslr=/DYNAMICBASE:NO if "%clang%"=="1" set no_aslr=-Wl,/DYNAMICBASE:NO if "%msvc%"=="1" set rc=call rc if "%clang%"=="1" set rc=call llvm-rc +if "%msvc%"=="1" set link_dll=/link /DLL +if "%clang%"=="1" set link_dll=-Xlinker -DLL :: --- Choose Compile/Link Lines ---------------------------------------------- if "%msvc%"=="1" set compile_debug=%cl_debug% if "%msvc%"=="1" set compile_release=%cl_release% if "%msvc%"=="1" set compile_link=%cl_link% if "%msvc%"=="1" set out=%cl_out% +if "%msvc%"=="1" set obj_out=%cl_obj_out% if "%clang%"=="1" set compile_debug=%clang_debug% if "%clang%"=="1" set compile_release=%clang_release% if "%clang%"=="1" set compile_link=%clang_link% if "%clang%"=="1" set out=%clang_out% +if "%clang%"=="1" set obj_out=%clang_obj_out% if "%debug%"=="1" set compile=%compile_debug% if "%release%"=="1" set compile=%compile_release% @@ -119,32 +126,37 @@ for /f %%i in ('call git describe --always --dirty') do set compile=%compile% for /f %%i in ('call git rev-parse HEAD') do set compile=%compile% -DBUILD_GIT_HASH_FULL=\"%%i\" :: --- Build & Run Metaprogram ------------------------------------------------ +pushd build if "%meta%"=="1" ( - echo [doing metagen] - pushd build + echo [building metagen] %compile_debug% ..\src\metagen\metagen_main.c %compile_link% %out%metagen.exe || exit /b 1 - metagen.exe || exit /b 1 - popd ) +if "%no_meta%"=="" if exist metagen.exe ( + echo [running metagen] + metagen.exe || exit /b 1 +) +popd :: --- Build Everything (@build_targets) -------------------------------------- pushd build if "%raddbg%"=="1" set didbuild=1 && %compile% ..\src\raddbg\raddbg_main.c %compile_link% %link_icon% %out%raddbg.exe || exit /b 1 +if "%raddbg_non_graphical%"=="1" set didbuild=1 && %compile% -DWM_STUB=1 -DR_BACKEND=R_BACKEND_STUB ..\src\raddbg\raddbg_main.c %compile_link% %link_icon% %out%raddbg_non_graphical.exe || exit /b 1 +if "%com_shim%"=="1" set didbuild=1 && %compile% ..\src\com_shim\com_shim_main.c %compile_link% %out%com_shim.exe || exit /b 1 if "%radlink%"=="1" set didbuild=1 && %compile% ..\src\linker\lnk.c %compile_link% %linker% /NOIMPLIB %linker% /NATVIS:"%~dp0\src\linker\linker.natvis" %out%radlink.exe || exit /b 1 if "%radbin%"=="1" set didbuild=1 && %compile% ..\src\radbin\radbin_main.c %compile_link% %out%radbin.exe || exit /b 1 if "%raddump%"=="1" set didbuild=1 && %compile% ..\src\raddump\raddump_main.c %compile_link% %out%raddump.exe || exit /b 1 -if "%tester%"=="1" set didbuild=1 && %compile% ..\src\tester\tester_main.c %compile_link% %out%tester.exe || exit /b 1 if "%ryan_scratch%"=="1" set didbuild=1 && %compile% ..\src\scratch\ryan_scratch.c %compile_link% %out%ryan_scratch.exe || exit /b 1 -if "%eval_scratch%"=="1" set didbuild=1 && %compile% ..\src\scratch\eval_scratch.c %compile_link% %out%eval_scratch.exe || exit /b 1 if "%textperf%"=="1" set didbuild=1 && %compile% ..\src\scratch\textperf.c %compile_link% %out%textperf.exe || exit /b 1 if "%convertperf%"=="1" set didbuild=1 && %compile% ..\src\scratch\convertperf.c %compile_link% %out%convertperf.exe || exit /b 1 if "%debugstringperf%"=="1" set didbuild=1 && %compile% ..\src\scratch\debugstringperf.c %compile_link% %out%debugstringperf.exe || exit /b 1 if "%parse_inline_sites%"=="1" set didbuild=1 && %compile% ..\src\scratch\parse_inline_sites.c %compile_link% %out%parse_inline_sites.exe || exit /b 1 if "%strip_lib_debug%"=="1" set didbuild=1 && %compile% ..\src\strip_lib_debug\strip_lib_debug.c %compile_link% %out%strip_lib_debug.exe || exit /b 1 -if "%mule_main%"=="1" set didbuild=1 && del vc*.pdb mule*.pdb && %compile_release% %only_compile% ..\src\mule\mule_inline.cpp && %compile_release% %only_compile% ..\src\mule\mule_o2.cpp && %compile_debug% %EHsc% ..\src\mule\mule_main.cpp ..\src\mule\mule_c.c mule_inline.obj mule_o2.obj %compile_link% %no_aslr% %out%mule_main.exe || exit /b 1 -if "%mule_module%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_module.cpp %compile_link% %link_dll% %out%mule_module.dll || exit /b 1 +if "%mule_main%"=="1" set didbuild=1 && del vc*.pdb mule*.pdb && %compile_release% %only_compile% ..\src\mule\mule_inline.cpp %obj_out%mule_inline.obj && %compile_release% %only_compile% ..\src\mule\mule_o2.cpp %obj_out%mule_o2.obj && %compile_debug% %EHsc% ..\src\mule\mule_main.cpp ..\src\mule\mule_c.c mule_inline.obj mule_o2.obj %compile_link% %no_aslr% %out%mule_main.exe || exit /b 1 +if "%mule_module%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_module.cpp %link_dll% %out%mule_module.dll || exit /b 1 if "%mule_hotload%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_hotload_main.c %compile_link% %out%mule_hotload.exe & %compile% ..\src\mule\mule_hotload_module_main.c %compile_link% %link_dll% %out%mule_hotload_module.dll || exit /b 1 -if "%torture%"=="1" set didbuild=1 && %compile% ..\src\torture\torture.c %compile_link% %out%torture.exe || exit /b1 +if "%torture%"=="1" set didbuild=1 && %compile% ..\src\torture\torture_main.c %compile_link% %out%torture.exe || exit /b1 +if "%dwarf_expr_test%"=="1" set didbuild=1 && %compile% ..\src\torture\dwarf_expr_test.c %compile_link% %out%dwarf_expr_test.exe || exit /b1 +if "%unit_sizes_from_pdb%"=="1" set didbuild=1 && %compile% ..\src\scratch\unit_sizes_from_pdb.c %compile_link% %out%unit_sizes_from_pdb.exe || exit /b1 if "%mule_peb_trample%"=="1" ( set didbuild=1 if exist mule_peb_trample.exe move mule_peb_trample.exe mule_peb_trample_old_%random%.exe @@ -155,6 +167,11 @@ if "%mule_peb_trample%"=="1" ( ) popd +:: --- Set Up Debugger Com Shim ----------------------------------------------- +pushd build +if "%raddbg_com_shim%"=="1" copy /y com_shim.exe raddbg.com +popd + :: --- Warn On No Builds ------------------------------------------------------ if "%didbuild%"=="" ( echo [WARNING] no valid build target specified; must use build target names as arguments to this script, like `build raddbg` or `build rdi_from_pdb`. @@ -165,7 +182,7 @@ if "%didbuild%"=="" ( if "%pgo_run%"=="1" ( if "%radlink%"=="1" ( pushd local\lyra_pgo - call %~dp0build\radlink @lyra.rsp /rad_alt_pch_dir:%~dp0local\lyra_pgo || exit /b 1 + call %~dp0build\radlink @lyra.rsp || exit /b 1 popd ) goto restart diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index f7ea6139..8dccc60f --- a/build.sh +++ b/build.sh @@ -4,78 +4,74 @@ cd "$(dirname "$0")" # --- Unpack Arguments -------------------------------------------------------- for arg in "$@"; do declare $arg='1'; done -if [ ! -v gcc ]; then clang=1; fi -if [ ! -v release ]; then debug=1; fi -if [ -v debug ]; then echo "[debug mode]"; fi -if [ -v release ]; then echo "[release mode]"; fi -if [ -v clang ]; then compiler="${CC:-clang}"; echo "[clang compile]"; fi -if [ -v gcc ]; then compiler="${CC:-gcc}"; echo "[gcc compile]"; fi +if [[ "$#" == "0" ]]; then raddbg='1'; fi -# --- Unpack Command Line Build Arguments ------------------------------------- -auto_compile_flags='' +cc_sanitize="" +if [[ "${asan:-0}" == "1" ]]; then + echo "[asan enabled]" + cc_sanitize="-fsanitize=address" +fi # --- Get Current Git Commit Id ----------------------------------------------- git_hash=$(git describe --always --dirty) git_hash_full=$(git rev-parse HEAD) # --- Compile/Link Line Definitions ------------------------------------------- -clang_common="-I../src/ -I/usr/include/freetype2/ -I../local/ -g -DBUILD_GIT_HASH=\"$git_hash\" -DBUILD_GIT_HASH_FULL=\"$git_hash_full\" -Wno-unknown-warning-option -fdiagnostics-absolute-paths -Wall -Wno-missing-braces -Wno-unused-function -Wno-writable-strings -Wno-unused-value -Wno-unused-variable -Wno-unused-local-typedef -Wno-deprecated-register -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-single-bit-bitfield-constant-conversion -Wno-compare-distinct-pointer-types -Wno-initializer-overrides -Wno-incompatible-pointer-types-discards-qualifiers -Wno-for-loop-analysis -Xclang -flto-visibility-public-std -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf" -clang_debug="$compiler -g -O0 -DBUILD_DEBUG=1 ${clang_common} ${auto_compile_flags}" -clang_release="$compiler -g -O2 -DBUILD_DEBUG=0 ${clang_common} ${auto_compile_flags}" -clang_link="-lpthread -lm -lrt -ldl" -clang_out="-o" -gcc_common="-I../src/ -I../local/ -g -DBUILD_GIT_HASH=\"$git_hash\" -DBUILD_GIT_HASH_FULL=\"$git_hash_full\" -Wno-unknown-warning-option -Wall -Wno-missing-braces -Wno-unused-function -Wno-attributes -Wno-unused-value -Wno-unused-variable -Wno-unused-local-typedef -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-compare-distinct-pointer-types -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf" -gcc_debug="$compiler -g -O0 -DBUILD_DEBUG=1 ${gcc_common} ${auto_compile_flags}" -gcc_release="$compiler -g -O2 -DBUILD_DEBUG=0 ${gcc_common} ${auto_compile_flags}" -gcc_link="-lpthread -lm -lrt -ldl" -gcc_out="-o" +cc_cflags_gcc="" +cc_cflags_clang=${cc_sanitize}" -fdiagnostics-absolute-paths -Wno-for-loop-analysis -Wno-incompatible-pointer-types-discards-qualifiers -Wno-initializer-overrides -Wno-compare-distinct-pointer-types -Wno-single-bit-bitfield-constant-conversion -Wno-deprecated-declarations -Wno-writable-strings -Wno-unknown-warning-option -Wno-deprecated-register -Wno-unused-local-typedef -msse2" +cc_common="-mcx16 -I../src/ -I../local/ -D_GNU_SOURCE -g -DBUILD_GIT_HASH=\"$git_hash\" -DBUILD_GIT_HASH_FULL=\"$git_hash_full\" -Wall -Wno-missing-braces -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-value -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf" +cc_debug="-g -O0 -DBUILD_DEBUG=1 ${cc_common}" +cc_release="-g -O2 -DBUILD_DEBUG=0 ${cc_common}" +cc_link="-lpthread -lm -lrt -ldl" # --- Per-Build Settings ------------------------------------------------------ -link_dll="-fPIC" -link_os_gfx="-lX11 -lXext" -link_render="-lGL -lEGL" -link_font_provider="-lfreetype" +cc_link_dll="-fPIC" + +# --- External Libraries ------------------------------------------------------ +# sudo apt install -y pkg-config libfreetype6-dev libx11-dev libxext-dev libgl-dev libegl-dev +if [[ -x "$(command -v pkg-config)" ]]; then + cc_font_provider="$(pkg-config --cflags --libs freetype2)" + cc_os_gfx="$(pkg-config --cflags --libs x11 xext)" + cc_render="$(pkg-config --cflags --libs gl egl)" +else + cc_font_provider="-I/usr/include/freetype2 -lfreetype" + cc_os_gfx="-lX11 -lXext" + cc_render="-lGL -lEGL" +fi # --- Choose Compile/Link Lines ----------------------------------------------- -if [ -v gcc ]; then compile_debug="$gcc_debug"; fi -if [ -v gcc ]; then compile_release="$gcc_release"; fi -if [ -v gcc ]; then compile_link="$gcc_link"; fi -if [ -v gcc ]; then out="$gcc_out"; fi -if [ -v clang ]; then compile_debug="$clang_debug"; fi -if [ -v clang ]; then compile_release="$clang_release"; fi -if [ -v clang ]; then compile_link="$clang_link"; fi -if [ -v clang ]; then out="$clang_out"; fi -if [ -v debug ]; then compile="$compile_debug"; fi -if [ -v release ]; then compile="$compile_release"; fi +if [[ "${gcc:-0}" == "1" ]]; then compiler="${CC:-gcc} $cc_cflags_gcc"; echo "[gcc compile]"; +elif [[ "${clang:-1}" == "1" ]]; then compiler="${CC:-clang} $cc_cflags_clang"; echo "[clang compile]"; +fi +if [[ "${release:-0}" == "1" ]]; then echo "[release mode]"; compile="$compiler $cc_release"; +elif [[ "${debug:-1}" == "1" ]]; then echo "[debug mode]"; compile="$compiler $cc_debug"; +fi # --- Prep Directories -------------------------------------------------------- -mkdir -p build -mkdir -p local +mkdir -p build local # --- Build & Run Metaprogram ------------------------------------------------- -if [ -v no_meta ]; then echo "[skipping metagen]"; fi -if [ ! -v no_meta ] +if [[ "${no_meta:-0}" == "0" ]] then + echo "[building metagen]" cd build - $compile_debug ../src/metagen/metagen_main.c $compile_link $out metagen + $compiler $cc_debug ../src/metagen/metagen_main.c $cc_link -o metagen ./metagen cd .. fi # --- Build Everything (@build_targets) --------------------------------------- cd build -if [ -v raddbg ]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c $compile_link $link_os_gfx $link_render $link_font_provider $out raddbg; fi -if [ -v radlink ]; then didbuild=1 && $compile ../src/linker/lnk.c $compile_link $out radlink; fi -if [ -v rdi_from_pdb ]; then didbuild=1 && $compile ../src/rdi_from_pdb/rdi_from_pdb_main.c $compile_link $out rdi_from_pdb; fi -if [ -v rdi_from_dwarf ]; then didbuild=1 && $compile ../src/rdi_from_dwarf/rdi_from_dwarf.c $compile_link $out rdi_from_dwarf; fi -if [ -v rdi_dump ]; then didbuild=1 && $compile ../src/rdi_dump/rdi_dump_main.c $compile_link $out rdi_dump; fi -if [ -v rdi_breakpad_from_pdb ]; then didbuild=1 && $compile ../src/rdi_breakpad_from_pdb/rdi_breakpad_from_pdb_main.c $compile_link $out rdi_breakpad_from_pdb; fi -if [ -v ryan_scratch ]; then didbuild=1 && $compile ../src/scratch/ryan_scratch.c $compile_link $link_os_gfx $link_render $link_font_provider $out ryan_scratch; fi +if [[ "${raddbg:-0}" == "1" ]]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c $cc_link $cc_os_gfx $cc_render $cc_font_provider -o raddbg; fi +if [[ "${raddbg_non_graphical:-0}" == "1" ]]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c -DWM_STUB=1 -DR_BACKEND=R_BACKEND_STUB $cc_link $cc_os_gfx $cc_render $cc_font_provider -o raddbg_non_graphical; fi +if [[ "${radbin:-0}" == "1" ]]; then didbuild=1 && $compile ../src/radbin/radbin_main.c $cc_link -o radbin; fi +if [[ "${radlink:-0}" == "1" ]]; then didbuild=1 && $compile ../src/linker/lnk.c $cc_link -o radlink; fi +if [[ "${torture:-0}" == "1" ]]; then didbuild=1 && $compile ../src/torture/torture_main.c $cc_link $cc_os_gfx $cc_render $cc_font_provider -o torture; fi cd .. # --- Warn On No Builds ------------------------------------------------------- -if [ ! -v didbuild ] +if [[ "${didbuild:-0}" == "0" ]] then - echo "[WARNING] no valid build target specified; must use build target names as arguments to this script, like \`./build.sh raddbg\` or \`./build.sh rdi_from_pdb\`." + echo "[WARNING] no valid build target specified; must use build target names as arguments to this script, like \`./build.sh raddbg\` or \`./build.sh radlink\`." exit 1 fi diff --git a/launch.vs.json b/launch.vs.json new file mode 100644 index 00000000..a9cfe1d9 --- /dev/null +++ b/launch.vs.json @@ -0,0 +1,93 @@ +{ + "version": "0.2.1", + "defaults": {}, + "configurations": [ + { + "type": "cppdbg", + "name": "launch - torture", + "request": "launch", + "project": "c://windows//system32//cmd.exe", + "cwd": "build/", + "program": "torture", + "args": [ "d2r_checksums" ], + "stopAtEntry": false, + "environment": [], + "externalConsole": false, + "pipeTransport": { + "pipeCwd": "${workspaceRoot}", + "pipeProgram": "wsl", + "pipeArgs": [ "${debuggerCommand}" ] + }, + "setupCommands": [ + { "text": "-gdb-set follow-fork-mode parent" }, + { "text": "-gdb-set detach-on-fork on" }, + { "text": "handle SIGUSR1 nostop" } + ], + "MIMode": "gdb" + }, + { + "type": "cppdbg", + "name": "launch - radbin", + "request": "launch", + "project": "c://windows//system32//cmd.exe", + "cwd": "build/", + "program": "radbin", + "args": [ "-voff2line", "-voff:0x1000", "torture_artifacts/d2r_line_table/a.rdi" ], + "stopAtEntry": false, + "environment": [], + "externalConsole": false, + "pipeTransport": { + "pipeCwd": "${workspaceRoot}", + "pipeProgram": "wsl", + "pipeArgs": [ "${debuggerCommand}" ] + }, + "setupCommands": [ + { "text": "-gdb-set follow-fork-mode parent" }, + { "text": "-gdb-set detach-on-fork on" }, + { "text": "handle SIGUSR1 nostop" } + ], + "MIMode": "gdb" + }, + { + "type": "cppdbg", + "name": "launch - radlink", + "request": "launch", + "project": "c://windows//system32//cmd.exe", + "cwd": "/mnt/c/devel/raddebugger/build/torture_artifacts/debug_p_sig_mismatch", + "program": "/mnt/c/devel/raddebugger/build/radlink", + "args": [ "/subsystem:console", "/entry:entry", "/out:a.exe", "/debug:full", "a.obj", "b.obj", "entry.obj" ], + "stopAtEntry": false, + "environment": [], + "externalConsole": false, + "pipeTransport": { + "pipeCwd": "${workspaceRoot}", + "pipeProgram": "wsl", + "pipeArgs": [ "${debuggerCommand}" ] + }, + "setupCommands": [ + { "text": "handle SIGUSR1 nostop" } + ], + "MIMode": "gdb" + }, + { + "type": "cppdbg", + "name": "launch - raddbg", + "request": "launch", + "project": "c://windows//system32//cmd.exe", + "cwd": "build/", + "program": "/mnt/c/devel/raddebugger/build/raddbg", + //"processId": "65821", + "environment": [], + "externalConsole": false, + "pipeTransport": { + "pipeCwd": "${workspaceRoot}", + "pipeProgram": "wsl", + "pipeArgs": [ "${debuggerCommand}" ] + }, + "setupCommands": [ + { "text": "handle SIGUSR1 nostop" } + ], + "MIMode": "gdb" + } + ] +} diff --git a/obsolete/dwarf/dwarf_dump_old.c b/obsolete/dwarf/dwarf_dump_old.c new file mode 100644 index 00000000..9b6d6481 --- /dev/null +++ b/obsolete/dwarf/dwarf_dump_old.c @@ -0,0 +1,2220 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#define dw_indent() do { indent += 1; } while (0) +#define dw_unindent() do { indent -= 1; } while (0) +#define dw_print(string) dw_print_ (arena, strings, indent, string) +#define dw_printf(...) dw_printf_(arena, strings, indent, __VA_ARGS__) +static char g_spaces[] = " "; + +internal void +dw_print_(Arena *arena, String8List *out, int indent, String8 string) +{ + Temp scratch = scratch_begin(&arena, 1); + str8_list_pushf(arena, out, "%.*s%S", Min(indent * 2, sizeof(g_spaces)), g_spaces, string); + scratch_end(scratch); +} + +internal void +dw_printf_(Arena *arena, String8List *out, int indent, char *fmt, ...) +{ + Temp scratch = scratch_begin(&arena, 1); + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(scratch.arena, fmt, args); + dw_print_(arena, out, indent, string); + va_end(args); + scratch_end(scratch); +} + +internal Rng1U64Array +dw_get_info_ranges(DW_Dumper *dumper) +{ + if (!(dumper->cache_flags & DW_DumperCacheFlag_InfoRanges)) { + dumper->cache.info_ranges = dw_unit_ranges_from_data_arr(dumper->arena, dumper->input->sec[DW_Section_Info].data); + } + return dumper->cache.info_ranges; +} + +internal DW_CompUnit * +dw_get_cu_arr(DW_Dumper *dumper) +{ + if (!(dumper->cache_flags & DW_DumperCacheFlag_CuArr)) { + Rng1U64Array info_ranges = dw_get_info_ranges(dumper); + DW_ListUnitInput lu_input = dw_list_unit_input_from_input(dumper->arena, dumper->input); + dumper->cache.cu_arr = push_array(dumper->arena, DW_CompUnit, info_ranges.count); + for EachIndex(cu_idx, info_ranges.count) { + dumper->cache.cu_arr[cu_idx] = dw_cu_from_info_off(dumper->arena, dumper->input, lu_input, info_ranges.v[cu_idx].min, dumper->is_relaxed); + } + } + return dumper->cache.cu_arr; +} + +internal HashTable * +dw_get_line_vm_map(DW_Dumper *dumper) +{ + if (!(dumper->cache_flags & DW_DumperCacheFlag_LineVmMap)) { + Rng1U64Array unit_ranges = dw_unit_ranges_from_data_arr(dumper->arena, dumper->input->sec[DW_Section_Line].data); + dumper->cache.line_vm_map = hash_table_init(dumper->arena, unit_ranges.count * 2); + } + return dumper->cache.line_vm_map; +} + +internal DW_TagTree * +dw_get_tag_trees(DW_Dumper *dumper) +{ + if (!(dumper->cache_flags & DW_DumperCacheFlag_TagTrees)) { + Rng1U64Array info_ranges = dw_get_info_ranges(dumper); + DW_CompUnit *cu_arr = dw_get_cu_arr(dumper); + dumper->cache.tag_trees = push_array(dumper->arena, DW_TagTree, info_ranges.count); + for EachIndex(cu_idx, info_ranges.count) { + dumper->cache.tag_trees[cu_idx] = dw_tag_tree_from_cu(dumper->arena, dumper->input, &cu_arr[cu_idx]); + } + } + return dumper->cache.tag_trees; +} + +//////////////////////////////// +//~ rjf: Stringification Helpers + +internal String8List +dw_string_list_from_cfi_program(Arena *arena, + U64 cu_base, + Arch arch, + DW_Version ver, + DW_Ext ext, + DW_Format format, + U64 pc_begin, + DW_CIE *cie, + DW_DecodePtr *decode_ptr_func, + void *deocde_ptr_ud, + String8 program) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + + U64 reg_max = dw_reg_count_from_arch(arch); + U64 pc = pc_begin; + for (U64 cursor = 0, inst_size; cursor < program.size; cursor += inst_size) { + // unpack instruction + DW_CFA_Inst inst = {0}; + DW_CFA_ParseErrorCode error_code = dw_parse_cfa_inst(str8_skip(program, cursor), cie->code_align_factor, cie->data_align_factor, 0, 0, &inst_size, &inst); + if (error_code == DW_CFA_ParseErrorCode_End) { break; } + if (error_code != DW_CFA_ParseErrorCode_NewInst) { + str8_list_pushf(arena, &list, "ERROR: failed to unpack CFA instruction @ 0x%I64", cursor); + break; + } + + // error check operands + DW_CFA_OperandType *operand_types = dw_operand_types_from_cfa_op(inst.opcode); + U64 operand_count = dw_operand_count_from_cfa_opcode(inst.opcode); + for EachIndex(operand_idx, operand_count) { + switch (operand_types[operand_idx]) { + case DW_CFA_OperandType_Null: break; + case DW_CFA_OperandType_Value: break; + case DW_CFA_OperandType_Register: { + if (inst.operands[operand_idx].u64 >= reg_max) { + str8_list_pushf(arena, &list, "ERROR: DW_CFA_%S @ 0x%I64x has an invalid register", + dw_string_from_cfa_opcode(inst.opcode), + cursor); + } + } break; + case DW_CFA_OperandType_Expression: { + DW_Expr expr = dw_expr_from_data(scratch.arena, format, cie->address_size, inst.operands[operand_idx].block); + for EachNode(inst, DW_ExprInst, expr.first) { + if (dw_is_cfa_expr_opcode_invalid(inst->opcode)) { + String8 expr_opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, inst->opcode); + str8_list_pushf(arena, &list, "ERROR: Exrepssion in DW_CFA_%S @ 0x%I64x has an invalid opcode DW_ExprOp_%S", expr_opcode_str); + } + } + } break; + default: { InvalidPath; } break; + } + } + + // format operands + String8 operand_str = str8_lit("???"); + switch (inst.opcode) { + case DW_CFA_Nop: { operand_str = str8_zero(); } break; + case DW_CFA_SetLoc: { + operand_str = str8f(arena, "0x%X", inst.operands[0].u64); + pc = inst.operands[0].u64; + } break; + case DW_CFA_AdvanceLoc1: { + U64 delta = inst.operands[0].u64; + pc += delta; + operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); + } break; + case DW_CFA_AdvanceLoc2: { + U64 delta = inst.operands[0].u64; + pc += delta; + operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); + } break; + case DW_CFA_AdvanceLoc4: { + U64 delta = inst.operands[0].u64; + pc += delta; + operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); + } break; + case DW_CFA_OffsetExt: { + U64 reg = inst.operands[0].u64; + S64 offset = (S64)inst.operands[1].u64; + operand_str = dw_string_from_reg_off(arena, arch, reg, offset); + } break; + case DW_CFA_RestoreExt: { operand_str = str8_zero(); } break; + case DW_CFA_Undefined: { + operand_str = str8f(arena, "%I64u", inst.operands[0].u64); + } break; + case DW_CFA_SameValue: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); + } break; + case DW_CFA_Register: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].u64); + } break; + case DW_CFA_RememberState: { operand_str = str8_zero(); } break; + case DW_CFA_RestoreState: { operand_str = str8_zero(); } break; + case DW_CFA_DefCfa: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].u64); + } break; + case DW_CFA_DefCfaRegister: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); + } break; + case DW_CFA_DefCfaOffset: { + operand_str = str8f(arena, "+%I64u", inst.operands[0].u64); + } break; + case DW_CFA_DefCfaExpr: { + operand_str = dw_string_from_expression(arena, inst.operands[0].block, cu_base, cie->address_size, arch, ver, ext, format); + } break; + case DW_CFA_Expr: { + String8 reg_str = dw_string_from_reg_off(scratch.arena, arch, inst.operands[0].u64, 0); + String8 expr_str = dw_string_from_expression(scratch.arena, inst.operands[1].block, cu_base, cie->address_size, arch, ver, ext, format); + operand_str = str8f(arena, "%S expression %S", reg_str, expr_str); + } break; + case DW_CFA_OffsetExtSf: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].s64); + } break; + case DW_CFA_DefCfaSf: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].s64); + } break; + case DW_CFA_DefCfaOffsetSf: { operand_str = str8_zero(); } break; + case DW_CFA_ValOffset: { + operand_str = str8f(arena, "value 0x%I64x, offset %+I64d", inst.operands[0].u64, inst.operands[1].u64); + } break; + case DW_CFA_ValOffsetSf: { + operand_str = str8f(arena, "value %I64u, offset %+I64d", inst.operands[0].u64, inst.operands[1].s64); + } break; + case DW_CFA_ValExpr: { + String8 expr_str = dw_string_from_expression(scratch.arena, inst.operands[1].block, cu_base, cie->address_size, arch, ver, ext, format); + operand_str = str8f(arena, "value +%I64u, expression %S", inst.operands[0].u64, expr_str); + } break; + case DW_CFA_AdvanceLoc: { + U64 delta = inst.operands[0].u64; + pc += delta; + operand_str = str8f(arena, "+%I64u `PC 0x%I64x`", delta, pc); + } break; + case DW_CFA_Offset: { + U64 reg = inst.operands[0].u64; + S64 offset = (S64)inst.operands[1].u64; + operand_str = dw_string_from_reg_off(arena, arch, reg, offset); + } break; + case DW_CFA_Restore: { + operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); + } break; + default: { + str8_list_pushf(arena, &list, "ERROR: unknown CFA opcode 0x%I64u", inst.opcode); + } goto exit; + } + + if (operand_str.size) { + str8_list_pushf(arena, &list, "DW_CFA_%S: %S", dw_string_from_cfa_opcode(inst.opcode), operand_str); + } else { + str8_list_pushf(arena, &list, "DW_CFA_%S", dw_string_from_cfa_opcode(inst.opcode)); + } + } + + exit:; + scratch_end(scratch); + return list; +} + +internal String8List +dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List result = {0}; + for (U64 cursor = 0; cursor < raw_data.size; ) { + U8 op = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &op); + + String8 op_value = str8_zero(); + U64 size_param = 0; + B32 is_signed = 0; + switch (op) { + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: + case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: + case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: + case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: + case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: + case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: + case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: + case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { + U64 x = op - DW_ExprOp_Lit0; + op_value = push_str8f(scratch.arena, "%I64u", x); + } break; + + case DW_ExprOp_Const1U:size_param = 1; goto const_n; + case DW_ExprOp_Const2U:size_param = 2; goto const_n; + case DW_ExprOp_Const4U:size_param = 4; goto const_n; + case DW_ExprOp_Const8U:size_param = 8; goto const_n; + case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; + case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; + case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; + case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; + const_n: + { + if (is_signed) { + S64 x = 0; + cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); + x = extend_sign64(x, size_param); + op_value = push_str8f(scratch.arena, "%I64d", x); + } else { + U64 x = 0; + cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); + op_value = push_str8f(scratch.arena, "%I64u", x); + } + } break; + + case DW_ExprOp_Addr: { + U64 addr = 0; + cursor += str8_deserial_read(raw_data, cursor, &addr, addr_size, 1); + op_value = push_str8f(scratch.arena, "%#I64x", addr); + } break; + + case DW_ExprOp_ConstU: { + U64 x = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%I64u", x); + } break; + + case DW_ExprOp_ConstS: { + S64 x = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%I64d", x); + } break; + + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: + case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: + case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: + case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: + case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: + case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: + case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: + case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { + U64 reg_idx = op - DW_ExprOp_Reg0; + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); + } break; + + case DW_ExprOp_RegX: { + U64 reg_idx = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); + } break; + + case DW_ExprOp_ImplicitValue: { + U64 value_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &value_size); + Rng1U64 value_range = rng_1u64(cursor, cursor + value_size); + String8 value_data = str8_substr(raw_data, value_range); + cursor += value_size; + String8List value_strings = numeric_str8_list_from_data(scratch.arena, 16, value_data, 1); + op_value = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(", "), .post = str8_lit(" }")}); + } break; + + case DW_ExprOp_Piece: { + U64 size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &size); + op_value = push_str8f(scratch.arena, "%u", size); + } break; + + case DW_ExprOp_BitPiece: { + U64 bit_size = 0, bit_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_size); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_off); + op_value = push_str8f(scratch.arena, "bit size %I64u, bit offset %I64u", bit_size, bit_off); + } break; + + case DW_ExprOp_Pick: { + U8 stack_idx = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &stack_idx); + op_value = push_str8f(scratch.arena, "stack index %u", stack_idx); + } break; + + case DW_ExprOp_PlusUConst: { + U64 addend = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &addend); + op_value = push_str8f(arena, "addend %I64u", addend); + } break; + + case DW_ExprOp_Skip: { + S16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%+d bytes", x); + } break; + + case DW_ExprOp_Bra: { + S16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%+d", x); + } break; + + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: + case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: + case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: + case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: + case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: + case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: + case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: + case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { + U64 reg_idx = op - DW_ExprOp_BReg0; + S64 reg_off = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); + } break; + + case DW_ExprOp_FBReg: { + S64 reg_off = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = push_str8f(scratch.arena, "offset %I64d", reg_off); + } break; + + case DW_ExprOp_BRegX: { + U64 reg_idx = 0; + S64 reg_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); + op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); + } break; + + case DW_ExprOp_XDerefSize: + case DW_ExprOp_DerefSize: { + U8 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%u", x); + } break; + + case DW_ExprOp_Call2: { + U16 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(scratch.arena, "%u", x); + } break; + case DW_ExprOp_Call4: { + U32 x = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &x); + op_value = push_str8f(arena, "%u", x); + } break; + case DW_ExprOp_CallRef: { + U64 x = 0; + cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &x); + op_value = push_str8f(scratch.arena, "%I64u", x); + } break; + case DW_ExprOp_ImplicitPointer: + case DW_ExprOp_GNU_ImplicitPointer: { + U64 info_off = 0; + cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &info_off); + S64 ptr = 0; + cursor += str8_deserial_read_sleb128(raw_data, cursor, &ptr); + + op_value = push_str8f(scratch.arena, ".debug_info+%#I64x, ptr %I64x", info_off, ptr); + } break; + case DW_ExprOp_Convert: + case DW_ExprOp_GNU_Convert: { + U64 type_cu_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "TypeCuOff %#I64x", cu_base + type_cu_off); + } break; + case DW_ExprOp_GNU_ParameterRef: { + // TODO: always 4 bytes? + U32 cu_off = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &cu_off); + op_value = push_str8f(scratch.arena, "CuOff %#x", cu_base + cu_off); + } break; + case DW_ExprOp_DerefType: + case DW_ExprOp_GNU_DerefType: { + U8 deref_size = 0; + U64 type_cu_off = 0; + cursor += str8_deserial_read_struct(raw_data, cursor, &deref_size); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "%#x, TypeCuOff %#I64x", deref_size, cu_base + type_cu_off); + } break; + case DW_ExprOp_ConstType: + case DW_ExprOp_GNU_ConstType: { + U64 type_cu_off = 0; + U8 const_value_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + cursor += str8_deserial_read_struct(raw_data, cursor, &const_value_size); + Rng1U64 const_value_range = rng_1u64(cursor, cursor + const_value_size); + String8 const_value_data = str8_substr(raw_data, const_value_range); + String8List const_value_strings = numeric_str8_list_from_data(scratch.arena, 16, const_value_data, 1); + String8 const_value_str = str8_list_join(scratch.arena, &const_value_strings, &(StringJoin){.sep = str8_lit(", ")}); + op_value = push_str8f(scratch.arena, "TypeCuOff %#I64x, Const Value { %S }", cu_base + type_cu_off, const_value_str); + cursor += const_value_size; + } break; + case DW_ExprOp_RegvalType: + case DW_ExprOp_GNU_RegvalType: { + U64 reg_idx = 0, type_cu_off = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); + cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); + op_value = push_str8f(scratch.arena, "%S, TypeCuOff %#I64x", dw_string_from_register(scratch.arena, arch, reg_idx), cu_base + type_cu_off); + } break; + case DW_ExprOp_EntryValue: + case DW_ExprOp_GNU_EntryValue: { + U64 block_size = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); + Rng1U64 block_range = rng_1u64(cursor, cursor + block_size); + String8 block_data = str8_substr(raw_data, block_range); + String8List block_expr = dw_string_list_from_expression(scratch.arena, block_data, cu_base, addr_size, arch, ver, ext, format); + op_value = str8_list_join(scratch.arena, &block_expr, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(","), .post = str8_lit(" }")}); + cursor += block_size; + } break; + case DW_ExprOp_Addrx: { + U64 addr = 0; + cursor += str8_deserial_read_uleb128(raw_data, cursor, &addr); + op_value = push_str8f(scratch.arena, "%#I64x", addr); + } break; + + case DW_ExprOp_CallFrameCfa: + case DW_ExprOp_FormTlsAddress: + case DW_ExprOp_PushObjectAddress: + case DW_ExprOp_Nop: + case DW_ExprOp_Eq: + case DW_ExprOp_Ge: + case DW_ExprOp_Gt: + case DW_ExprOp_Le: + case DW_ExprOp_Lt: + case DW_ExprOp_Ne: + case DW_ExprOp_Shl: + case DW_ExprOp_Shr: + case DW_ExprOp_Shra: + case DW_ExprOp_Xor: + case DW_ExprOp_XDeref: + case DW_ExprOp_Abs: + case DW_ExprOp_And: + case DW_ExprOp_Div: + case DW_ExprOp_Minus: + case DW_ExprOp_Mod: + case DW_ExprOp_Mul: + case DW_ExprOp_Neg: + case DW_ExprOp_Not: + case DW_ExprOp_Or: + case DW_ExprOp_Plus: + case DW_ExprOp_Rot: + case DW_ExprOp_Swap: + case DW_ExprOp_Deref: + case DW_ExprOp_Dup: + case DW_ExprOp_Drop: + case DW_ExprOp_Over: + case DW_ExprOp_StackValue: { + // no operands + } break; + } + + String8 opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, op); + if (op_value.size == 0) { + str8_list_pushf(arena, &result, "DW_OP_%S", opcode_str); + } else { + str8_list_pushf(arena, &result, "DW_OP_%S = %S", opcode_str, op_value); + } + } + scratch_end(scratch); + return result; +} + +internal String8 +dw_string_from_reg_off(Arena *arena, Arch arch, DW_Reg reg_idx, S64 reg_off) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 reg_str = dw_string_from_register(scratch.arena, arch, reg_idx); + String8 result; + if (reg_off != 0) { + result = push_str8f(arena, "%S%+I64d", reg_str, reg_off); + } else { + result = reg_str; + } + scratch_end(scratch); + return result; +} + +internal String8 +dw_string_from_expression(Arena *arena, String8 expr, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = dw_string_list_from_expression(scratch.arena, expr, cu_base, addr_size, arch, ver, ext, format); + String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + return result; +} + +internal String8 +dw_string_from_cfa(Arena *arena, Arch arch, U64 address_size, DW_Version version, DW_Ext ext, DW_Format format, DW_CFA cfa) +{ + String8 cfa_str = str8_lit("???"); + switch (cfa.rule) { + case DW_CFA_Rule_Null: {} break; + case DW_CFA_Rule_RegOff: { cfa_str = dw_string_from_reg_off(arena, arch, cfa.reg, cfa.off); } break; + case DW_CFA_Rule_Expression: { cfa_str = dw_string_from_expression(arena, cfa.expr, max_U64, address_size, arch, version, ext, format); } break; + default: { InvalidPath; } break; + } + return cfa_str; +} + +internal String8 +dw_string_from_cfi_row(Arena *arena, Arch arch, U64 address_size, DW_Version version, DW_Ext ext, DW_Format format, DW_CFI_Row *row) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List cfi_regs_list = {0}; + U64 reg_count = dw_reg_count_from_arch(arch); + for EachIndex(reg_idx, reg_count) { + DW_CFI_Register *cfi_reg = &row->regs[reg_idx]; + String8 rule_str = str8_lit("???"); + switch (cfi_reg->rule) { + case DW_CFI_RegisterRule_Undefined: { + rule_str = str8f(scratch.arena, "Undefined(%S)", dw_string_from_register(scratch.arena, arch, cfi_reg->n)); + } break; + case DW_CFI_RegisterRule_SameValue: { + rule_str = str8_zero(); + } break; + case DW_CFI_RegisterRule_Offset: { + rule_str = str8f(scratch.arena, "[CFA%+I64d]", cfi_reg->n); + } break; + case DW_CFI_RegisterRule_ValOffset: { + rule_str = str8f(scratch.arena, "Val(CFA%+I64d)", cfi_reg->n); + } break; + case DW_CFI_RegisterRule_Register: { + rule_str = str8f(scratch.arena, "Register(%S)", dw_string_from_register(scratch.arena, arch, cfi_reg->n)); + } break; + case DW_CFI_RegisterRule_Expression: { + rule_str = str8f(scratch.arena, "Expression(%S)", dw_string_from_expression(scratch.arena, cfi_reg->expr, max_U64, address_size, arch, version, ext, format)); + } break; + case DW_CFI_RegisterRule_ValExpression: { + rule_str = str8f(scratch.arena, "ValExpression(%S)", dw_string_from_expression(scratch.arena, cfi_reg->expr, max_U64, address_size, arch, version, ext, format)); + } break; + case DW_CFI_RegisterRule_Architectural: { + rule_str = str8_lit("???"); + } break; + default: { InvalidPath; } break; + } + + if (rule_str.size) { + str8_list_pushf(scratch.arena, &cfi_regs_list, "%S: %S", dw_string_from_register(scratch.arena, arch, reg_idx), rule_str); + } + } + + String8 string = str8_list_join(arena, &cfi_regs_list, &(StringJoin){.sep=str8_lit(", ")}); + + scratch_end(scratch); + return string; +} + +internal String8 +dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List list = dw_string_list_from_expression(scratch.arena, raw_data, cu_base, address_size, arch, ver, ext, format); + String8 expression = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); + scratch_end(scratch); + return expression; +} + +internal String8 +dw_string_from_attrib_value(Arena *arena, DW_Raw *input, Arch arch, DW_CompUnit *cu, DW_LineVM *line_vm, DW_Attrib *attrib) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List attrib_fmt = {0}; + + // rjf: log attrib's value based on vlass + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + switch(value_class) + { + default: {str8_list_pushf(scratch.arena, &attrib_fmt, "`unknown value class`");}break; + case DW_AttribClass_Undefined: {str8_list_pushf(scratch.arena, &attrib_fmt, "`undefined value class`");}break; + case DW_AttribClass_Address: {str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", dw_address_from_attrib(input, cu, attrib));}break; + case DW_AttribClass_Const: {str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", dw_const_u64_from_attrib(input, cu, attrib));}break; + case DW_AttribClass_Block: + { + String8 block = dw_block_from_attrib(input, cu, attrib); + String8List block_strs = numeric_str8_list_from_data(scratch.arena, 16, block, 1); + String8 block_str = str8_list_join(scratch.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); + str8_list_pushf(scratch.arena, &attrib_fmt, "{ %S }", block_str); + }break; + case DW_AttribClass_ExprLoc: + { + String8 exprloc = dw_exprloc_from_attrib(input, cu, attrib); + String8 exprloc_str = dw_single_line_string_from_expression(scratch.arena, exprloc, cu->info_range.min, cu->address_size, arch, cu->version, cu->ext, cu->format); + str8_list_pushf(scratch.arena, &attrib_fmt, "{ %S }", exprloc_str); + }break; + case DW_AttribClass_Flag: + { + B32 flag = dw_flag_from_attrib(input, cu, attrib); + str8_list_pushf(scratch.arena, &attrib_fmt, "%I64u (%s)", flag, flag == 0 ? "false" : "true"); + }break; + case DW_AttribClass_LinePtr: + case DW_AttribClass_LocListPtr: + case DW_AttribClass_MacPtr: + case DW_AttribClass_RngListPtr: + case DW_AttribClass_RngList: + case DW_AttribClass_StrOffsetsPtr: + case DW_AttribClass_AddrPtr: + { + if(attrib->form.kind == DW_Form_SecOffset) + { + str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", attrib->form.sec_offset); + } + else + { + str8_list_pushf(scratch.arena, &attrib_fmt, "`unexpected form kind %S`", dw_string_from_form_kind(scratch.arena, cu->version, attrib->form.kind)); + } + }break; + case DW_AttribClass_Reference: + { + if(attrib->form.kind == DW_Form_Ref1 || + attrib->form.kind == DW_Form_Ref2 || + attrib->form.kind == DW_Form_Ref4 || + attrib->form.kind == DW_Form_Ref8 || + attrib->form.kind == DW_Form_RefUData) + { + U64 info_off = cu->info_range.min + attrib->form.ref; + str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", info_off); + if(!contains_1u64(cu->info_range, info_off)) + { + str8_list_pushf(scratch.arena, &attrib_fmt, ": `(out of this cu's bounds)`"); + } + } + else + { + str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", attrib->form.ref); + } + }break; + case DW_AttribClass_String: + { + if(attrib->form.kind == DW_Form_Strp || attrib->form.kind == DW_Form_LineStrp || attrib->form.kind == DW_Form_StrpSup) + { + str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x ", attrib->form.sec_offset); + } + String8 string = dw_string_from_attrib(input, cu, attrib); + str8_list_pushf(scratch.arena, &attrib_fmt, "\"%S\"", string); + }break; + } + + // rjf: extend attrib's value with enum info + { + String8 enum_info = {0}; + switch(attrib->attrib_kind) + { + case DW_AttribKind_Language: + { + DW_Language lang = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_language(scratch.arena, lang); + }break; + case DW_AttribKind_DeclFile: + { + U64 file_idx = dw_const_u64_from_attrib(input, cu, attrib); + DW_LineFile *file = dw_file_from_attrib(cu, line_vm, attrib); + if(file != 0) + { + enum_info = dw_path_from_file(scratch.arena, line_vm->header.dir_table, file); + } + }break; + case DW_AttribKind_DeclLine: + { + enum_info = str8f(scratch.arena, "%I64u", dw_const_u64_from_attrib(input, cu, attrib)); + }break; + case DW_AttribKind_Inline: + { + DW_InlKind inl = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_inl(scratch.arena, inl); + }break; + case DW_AttribKind_Accessibility: + { + DW_AccessKind access = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_access_kind(scratch.arena, access); + }break; + case DW_AttribKind_CallingConvention: + { + DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_calling_convetion(scratch.arena, calling_convetion); + }break; + case DW_AttribKind_Encoding: + { + DW_ATE encoding = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_attrib_type_encoding(scratch.arena, encoding); + }break; + case DW_AttribKind_Visibility: + { + DW_Vis vis = dw_const_u64_from_attrib(input, cu, attrib); + enum_info = dw_string_from_attrib_visibility(scratch.arena, vis); + }break; + } + + if(enum_info.size) + { + str8_list_pushf(scratch.arena, &attrib_fmt, " `%S`", enum_info); + } + } + + String8 result = str8_list_join(arena, &attrib_fmt, 0); + + scratch_end(scratch); + return result; +} + +internal +DW_PRINTER(dw_print_abbrev) +{ + DW_Raw *input = dumper->input; + + Temp scratch = scratch_begin(&arena, 1); + DW_Section abbrev = input->sec[DW_Section_Abbrev]; + S64 depth = 0; + U64 idx = 0; + for(U64 cursor = 0; cursor < abbrev.data.size; idx += 1) + { + // rjf: read id & advance + U64 id_off = cursor; + U64 id = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &id); + if(id == 0) { continue; } + + // rjf: unpack abbrev + U64 tag = 0; + U8 has_children = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &tag); + cursor += str8_deserial_read_struct(abbrev.data, cursor, &has_children); + + // rjf: log abbrev + Temp temp = temp_begin(scratch.arena); + dw_printf("abbrev: // abbrev[%I64u] abbrev_off: 0x%I64x \n {\n", idx, id_off); + dw_indent(); + dw_printf("id: %I64u tag_kind: %S has_children: %s\n", id, dw_string_from_tag_kind(temp.arena, tag), has_children ? "true" : "false"); + U64 attrib_kind_max_size = 0; + U64 form_kind_max_size = 0; + { + for(U64 off = cursor;;) + { + U64 attrib_id = 0, form_id = 0; + off += str8_deserial_read_uleb128(abbrev.data, off, &attrib_id); + off += str8_deserial_read_uleb128(abbrev.data, off, &form_id); + if(attrib_id == 0) { break; } + String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); + String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); + attrib_kind_max_size = Max(attrib_kind_max_size, attrib_str.size); + form_kind_max_size = Max(form_kind_max_size, form_str.size); + } + } + for(;;) + { + U64 attrib_off = cursor; + U64 attrib_id = 0, form_id = 0; + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &attrib_id); + cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &form_id); + if(attrib_id == 0) { break; } + String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); + String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); + + String8List fmt = {0}; + str8_list_pushf(temp.arena, &fmt, "%S%.*s", attrib_str, attrib_kind_max_size - attrib_str.size, g_spaces); + str8_list_pushf(temp.arena, &fmt, "%S%.*s", form_str, form_kind_max_size - form_str.size, g_spaces); + String8 value = str8_list_join(temp.arena, &fmt, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("attrib: { %S } // 0x%I64x\n", value, attrib_off); + } + dw_unindent(); + dw_printf("}\n"); + temp_end(temp); + } + scratch_end(scratch); +} + +internal void +dw_print_tag(Arena *arena, String8List *strings, int indent, Arch arch, DW_Raw *input, DW_CompUnit *cu, DW_LineVM *line_vm, DW_TagNode *root) +{ + Temp scratch = scratch_begin(0, 0); + + for (DW_TagNode *n = root; n != 0; n = n->sibling) { + DW_Tag *tag = &n->tag; + + // compute columns' max widths + U64 attrib_name_max_size = 0, form_kind_max_size = 0, value_max_size = 0; + for EachNode(attrib_n, DW_AttribNode, tag->attribs.first) + { + Temp attrib_temp = temp_begin(scratch.arena); + attrib_name_max_size = Max(attrib_name_max_size, dw_string_from_attrib_kind (attrib_temp.arena, cu->version, cu->ext, attrib_n->v.attrib_kind).size); + form_kind_max_size = Max(form_kind_max_size, dw_string_from_form_kind (attrib_temp.arena, cu->version, attrib_n->v.form.kind).size); + value_max_size = Max(value_max_size, dw_string_from_attrib_value(attrib_temp.arena, input, arch, cu, line_vm, &attrib_n->v).size); + temp_end(attrib_temp); + } + attrib_name_max_size = Min(40, attrib_name_max_size); + form_kind_max_size = Min(20, form_kind_max_size); + value_max_size = Min(80, value_max_size); + + dw_printf("tag: // info_off: 0x%I64x abbrev_id: %I64u\n", tag->info_off, tag->abbrev_id); + dw_printf("{\n"); + dw_indent(); + dw_printf("kind: %S\n", dw_string_from_tag_kind(scratch.arena, tag->kind)); + for EachNode(attrib_n, DW_AttribNode, tag->attribs.first) { + DW_Attrib *attrib = &attrib_n->v; + + String8 attrib_kind_str = dw_string_from_attrib_kind(scratch.arena, cu->version, cu->ext, attrib->attrib_kind); + String8 form_kind_str = dw_string_from_form_kind(scratch.arena, cu->version, attrib->form.kind); + String8 value_str = dw_string_from_attrib_value(scratch.arena, input, arch, cu, line_vm, attrib); + + String8List fmt = {0}; + str8_list_pushf(scratch.arena, &fmt, "%S%.*s", attrib_kind_str, attrib_kind_str.size <= attrib_name_max_size ? attrib_name_max_size - attrib_kind_str.size : 0, g_spaces); + str8_list_pushf(scratch.arena, &fmt, "%S%.*s", form_kind_str, form_kind_str.size <= form_kind_max_size ? form_kind_max_size - form_kind_str.size : 0, g_spaces); + str8_list_pushf(scratch.arena, &fmt, "%S%.*s", value_str, value_str.size <= value_max_size ? value_max_size - value_str.size : 0, g_spaces); + String8 attrib_str = str8_list_join(scratch.arena, &fmt, &(StringJoin){.sep = str8_lit(" ")}); + + dw_printf("attrib: { %S } // info_off: 0x%I64x\n", attrib_str, attrib->info_off); + } + + if (tag->has_children) { + dw_print_tag(arena, strings, indent, arch, input, cu, line_vm, n->first_child); + } + + dw_unindent(); + dw_printf("}\n"); + } + + scratch_end(scratch); +} + +internal +DW_PRINTER(dw_print_info) +{ + DW_Raw *input = dumper->input; + Arch arch = dumper->arch; + HashTable *line_vm_map = dw_get_line_vm_map(dumper); + Rng1U64Array cu_ranges = dw_get_info_ranges(dumper); + DW_CompUnit *cu_arr = dw_get_cu_arr(dumper); + DW_TagTree *tag_trees = dw_get_tag_trees(dumper); + + Temp scratch = scratch_begin(&arena, 1); + for EachIndex(cu_idx, cu_ranges.count) { + Rng1U64 cu_range = cu_ranges.v[cu_idx]; + DW_CompUnit *cu = &cu_arr[cu_idx]; + String8 cu_dir = dw_string_from_tag_attrib_kind (input, cu, cu->tag, DW_AttribKind_CompDir ); + String8 cu_name = dw_string_from_tag_attrib_kind (input, cu, cu->tag, DW_AttribKind_Name ); + String8 stmt_list = dw_line_ptr_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_StmtList); + + DW_LineVM *line_vm = 0; + if (stmt_list.str) { + line_vm = hash_table_search_raw_raw(line_vm_map, stmt_list.str); + if (line_vm == 0) { + line_vm = dw_line_vm_init(input, cu); + // decode line table to find all the defined files, in version 5 this behaviour was deprecated + if (cu->version < DW_Version_5) { + while (dw_line_vm_step(line_vm)); + } + hash_table_push_raw_raw(scratch.arena, line_vm_map, stmt_list.str, line_vm); + } + } + + dw_printf("cu: // compile_unit[%I64u] @ %r (%M)\n", cu_idx, cu_range, dim_1u64(cu->info_range)); + dw_printf("{\n"); + dw_indent(); + dw_printf("format: %S\n", dw_string_from_format(cu->format)); + dw_printf("version: %u\n", cu->version); + dw_printf("kind: %S\n", dw_string_from_comp_unit_kind(scratch.arena, cu->kind)); + dw_printf("address_size: %I64u\n", cu->address_size); + dw_printf("abbrev_off: 0x%I64x\n", cu->abbrev_off); + dw_print_tag(arena, strings, indent, arch, input, cu, line_vm, tag_trees[cu_idx].root); + dw_unindent(); + dw_printf("} // compile_unit[/%u]\n", cu_idx); + } +} + +DW_PRINTER(dw_print_line) +{ + DW_Raw *input = dumper->input; + B32 is_verbose = dumper->is_verbose; + DW_CompUnit *cu_arr = dw_get_cu_arr(dumper); + Temp scratch = scratch_begin(&arena, 1); + Rng1U64Array unit_ranges = dw_unit_ranges_from_data_arr(scratch.arena, input->sec[DW_Section_Line].data); + for EachIndex(unit_idx, unit_ranges.count) + { + Temp unit_temp = temp_begin(scratch.arena); + + DW_CompUnit *cu = &cu_arr[unit_idx]; + DW_LineVM *vm = dw_line_vm_init(input, cu); + + // rjf: begin logging line table + dw_printf("line_table: // line_table[%I64u]\n", unit_idx); + dw_printf("{\n"); + dw_indent(); + { + // rjf: log line table header + dw_printf("header:\n"); + dw_printf("{\n"); + dw_indent(); + { + String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(vm->header.opcode_lens, vm->header.num_opcode_lens), 1); + String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); + dw_printf("version: %u\n", vm->header.version ); + dw_printf("line_table_size: %I64u\n", vm->header.unit_length ); + dw_printf("address_size: %u\n", vm->header.address_size ); + dw_printf("segment_selector_size: %u\n", vm->header.segment_selector_size); + dw_printf("header_length: %I64u\n", vm->header.header_length ); + dw_printf("min_instruction_length: %u\n", vm->header.min_inst_len ); + dw_printf("max_ops_for_instruction: %u\n", vm->header.max_ops_for_inst ); + dw_printf("default_is_stmt: %u\n", vm->header.default_is_stmt ); + dw_printf("line_base: %d\n", vm->header.line_base ); + dw_printf("line_range: %u\n", vm->header.line_range ); + dw_printf("opcode_base: %u\n", vm->header.opcode_base ); + dw_printf("opcode_lengths: { %S }\n", opcode_lengths_string ); + } + dw_unindent(); + dw_printf("}\n"); + + // rjf: log directory table + dw_printf("directory_table:\n"); + dw_printf("{\n"); + dw_indent(); + { + dw_printf("// %-4s %-30s\n", "No.", "Name"); + dw_printf("// ---- ------------------------------\n"); + for EachIndex(dir_idx, vm->header.dir_table.count) + { + dw_printf("{ %-4I64u %-30S }\n", dir_idx, vm->header.dir_table.v[dir_idx]); + } + } + dw_unindent(); + dw_printf("}\n"); + + // rjf: log file table + dw_printf("file_table:\n"); + dw_printf("{\n"); + dw_indent(); + { + dw_printf("// %-4s %-8s %-8s %-33s %-8s %-20s\n", "No.", "Dir No.", "Time", "MD5", "Size", "Path"); + dw_printf("// ---- -------- -------- --------------------------------- -------- --------------------\n"); + for EachIndex(file_idx, vm->header.file_table.count) + { + DW_LineFile *file = &vm->header.file_table.v[file_idx]; + dw_printf("{ %-4I64u %-8I64u %-8I64u %016I64x-%016I64x %-8I64u %-20S }\n", + file_idx, + file->dir_idx, + file->time_stamp, + file->md5.u64[1], + file->md5.u64[0], + file->size, + file->path); + } + } + dw_unindent(); + dw_printf("}\n"); + + // rjf: log opcodes + dw_printf("line_table:\n"); + dw_printf("{\n"); + dw_indent(); + { + dw_printf("//\n"); + dw_printf("// %-16s %-8s %-4s %-5s %-3s %-7s %-16s\n", "Address", "Line", "Col", "File", "ISA", "Discrim", "Flags"); + dw_printf("// ---------------- -------- ---- ----- --- ------- ----------------\n"); + + for(;;) + { + U64 global_opcode_off = unit_ranges.v[unit_idx].min + vm->cursor; + + if( ! dw_line_vm_step(vm)) { break; } + + Temp opcode_temp = temp_begin(unit_temp.arena); + String8List opcode_fmt = {0}; + + // opcode offset + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%08I64x:", global_opcode_off); + + // push opcode id + if (vm->opcode != 0) { + String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, vm->opcode); + str8_list_pushf(arena, &opcode_fmt, "%-11S:", opcode_str); + } + + // print operands + switch(vm->opcode) + { + default: + { + if(vm->opcode >= vm->header.opcode_base) + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %I64d, advance address by %I64d", vm->line_advance, vm->addr_advance); + } + else + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skipping %I64x unknown opcodes", vm->header.opcode_lens[vm->opcode - 1]); + } + }break; + case DW_StdOpcode_Copy: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %I64u, Column = %I64u, Address = %#I64x", vm->state.line, vm->state.column, vm->state.address); + }break; + case DW_StdOpcode_AdvancePc: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#I64x ; current address %#I64x", vm->operands[0].u64, vm->state.address); + }break; + case DW_StdOpcode_AdvanceLine: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %I64d ; current line %I64u", vm->operands[0].s64, vm->state.line); + }break; + case DW_StdOpcode_SetFile: + { + DW_LineFile *file = dw_line_vm_find_file(vm, vm->state.file_index); + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%I64u \"%S\"", vm->state.file_index, dw_path_from_file(opcode_temp.arena, vm->header.dir_table, file)); + }break; + case DW_StdOpcode_SetColumn: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%I64u", vm->state.column); + }break; + case DW_StdOpcode_NegateStmt: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm->state.is_stmt); + }break; + case DW_StdOpcode_SetBasicBlock: + { + }break; + case DW_StdOpcode_ConstAddPc: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%I64d ; address %#I64x", vm->advance, vm->state.address); + }break; + case DW_StdOpcode_FixedAdvancePc: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%I64u", vm->operands[0].u64); + }break; + case DW_StdOpcode_SetPrologueEnd: + { + }break; + case DW_StdOpcode_SetEpilogueBegin: + { + }break; + case DW_StdOpcode_SetIsa: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%I64u", vm->state.isa); + }break; + case DW_StdOpcode_ExtendedOpcode: + { + str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S*", dw_string_from_ext_opcode(opcode_temp.arena, vm->ext_opcode)); + //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); + switch(vm->ext_opcode) + { + case DW_ExtOpcode_EndSequence: {} break; + case DW_ExtOpcode_SetAddress: { str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#I64x", vm->operands[0].u64); } break; + case DW_ExtOpcode_DefineFile: { str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %I64u, Time: %I64u, Size: %I64u", + vm->operands[0].string, vm->operands[1].u64, vm->operands[2].u64, vm->operands[3].u64); } break; + case DW_ExtOpcode_SetDiscriminator: { str8_list_pushf(arena, &opcode_fmt, "%I64u", vm->state.discriminator); }break; + } + }break; + } + + if(is_verbose) + { + String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("// %S\n", string); + } + + if(vm->new_line) { + String8List l = {0}; + if(vm->state.is_stmt) + { + str8_list_pushf(opcode_temp.arena, &l, "is_stmt"); + } + if(vm->state.end_sequence) + { + str8_list_pushf(opcode_temp.arena, &l, "end_seq"); + } + String8 flags = str8_list_join(opcode_temp.arena, &l, &(StringJoin){.sep = str8_lit("|")}); + + dw_printf("{ %#016I64x %8I64u %4I64u %5I64u %3I64u %7I64u %-16S } %s\n", vm->state.address, vm->state.line, vm->state.column, vm->state.file_index, vm->state.isa, vm->state.discriminator, flags, vm->new_seq ? "// new seq" : ""); + } + + temp_end(opcode_temp); + } + + if(vm->error.size) + { + dw_printf("ERROR: Line VM failed stepping @ 0x%I64x\n", vm->cursor); + } + } + dw_unindent(); + dw_printf("}\n"); + + temp_end(unit_temp); + } + dw_unindent(); + dw_printf("}\n"); + } + scratch_end(scratch); +} + +DW_PRINTER(dw_print_strings) +{ + DW_Raw *input = dumper->input; + String8 data = input->sec[DW_Section_Str].data; + for (U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) { + String8 string = {0}; + read_size = str8_deserial_read_cstr(data, cursor, &string); + dw_printf(" { 0x%08I64x %I64u \"%S\" }\n", cursor, string.size, string); + } +} + +DW_PRINTER(dw_print_frame) +{ + DW_Raw *input = dumper->input; + Arch arch = dumper->arch; + Temp scratch = scratch_begin(&arena, 1); + HashTable *cie_ht = hash_table_init(scratch.arena, 0x2000); + String8 debug_frame = input->sec[DW_Section_Frame].data; + U64 addr_size = byte_size_from_arch(arch); + + // make offset -> CIE hash table + for (U64 cursor = 0, desc_size; cursor < debug_frame.size; cursor += desc_size) { + DW_DescriptorEntry desc = {0}; + desc_size = dw_parse_descriptor_entry_header(debug_frame, cursor, &desc); + if (desc.type == DW_DescriptorEntryKind_CIE) { + String8 raw_cie = str8_substr(debug_frame, desc.entry_range); + U64 restore_pos = arena_pos(scratch.arena); + DW_CIE *cie = push_array(scratch.arena, DW_CIE, 1); + if (dw_parse_cie(raw_cie, desc.format, arch, cie)) { + hash_table_push_u64_raw(scratch.arena, cie_ht, cursor, cie); + } else { + arena_pop_to(scratch.arena, restore_pos); + } + } + } + + for (U64 cursor = 0, desc_size; cursor < debug_frame.size; cursor += desc_size) { + DW_DescriptorEntry desc = {0}; + desc_size = dw_parse_descriptor_entry_header(debug_frame, cursor, &desc); + String8 raw_desc = str8_substr(debug_frame, desc.entry_range); + switch (desc.type) { + case DW_DescriptorEntryKind_Null: {} break; + case DW_DescriptorEntryKind_CIE: { + DW_CIE cie = {0}; + if (dw_parse_cie(raw_desc, desc.format, arch, &cie)) { + String8List init_insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, DW_Version_5, DW_Ext_All, cie.format, 0, &cie, dw_decode_ptr_debug_frame, &cie, cie.insts); + + dw_printf("CIE: // entry range: %r\n", desc.entry_range); + dw_printf("{\n"); + dw_printf(" Format: %S\n", dw_string_from_format(desc.format)); + dw_printf(" Version: %u\n", cie.version); + dw_printf(" Aug string: \"%S\"\n", cie.aug_string); + dw_printf(" Code align: %I64u\n", cie.code_align_factor); + dw_printf(" Data align: %I64d\n", cie.data_align_factor); + dw_printf(" Return addr reg: %u\n", cie.ret_addr_reg); + if (cie.version > DW_Version_3) { + dw_printf(" Address size: %u\n", cie.address_size); + dw_printf(" Segment selector size: %u\n", cie.segment_selector_size); + } + dw_printf(" Initial Insturction:\n"); + dw_printf(" {\n"); + for EachNode(n, String8Node, init_insts_str_list.first) { dw_printf(" %S\n", n->string); } + dw_printf(" }\n"); + dw_printf("}\n"); + } else { + dw_printf("ERROR: unable to parse CIE @ %I64x\n", desc.entry_range.min); + } + } break; + case DW_DescriptorEntryKind_FDE: { + DW_DescriptorEntry cie_desc = {0}; + U64 cie_desc_size = dw_parse_descriptor_entry_header(debug_frame, desc.cie_pointer, &cie_desc); + String8 cie_data = str8_substr(debug_frame, cie_desc.entry_range); + DW_CIE cie = {0}; + dw_parse_cie(cie_data, cie_desc.format, arch, &cie); + + DW_FDE fde = {0}; + if (dw_parse_fde(raw_desc, desc.format, &cie, &fde)) { + DW_Version version = DW_Version_5; + DW_Ext ext = DW_Ext_All; + String8List insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, version, ext, fde.format, fde.pc_range.min, &cie, dw_decode_ptr_debug_frame, &cie, fde.insts); + dw_printf("FDE: // entry range: %r\n", desc.entry_range); + dw_printf("{\n"); + { + dw_printf(" Format: %S\n", dw_string_from_format(fde.format)); + dw_printf(" CIE pointer: 0x%I64x\n", fde.cie_pointer); + dw_printf(" PC range: %r\n", fde.pc_range); + dw_printf(" Instructions:\n"); + dw_printf(" {\n"); + for EachNode(n, String8Node, insts_str_list.first) { dw_printf(" %S\n", n->string); } + dw_printf(" }\n"); + } + dw_printf(" Unwind:\n"); + dw_printf(" {\n"); + DW_CFI_Unwind *cfi_unwind = dw_cfi_unwind_init(scratch.arena, arch, &cie, &fde, dw_decode_ptr_debug_frame, &cie); + do { + String8 cfa_str = dw_string_from_cfa(scratch.arena, arch, cie.address_size, version, ext, fde.format, cfi_unwind->row->cfa); + String8 cfi_regs_str = dw_string_from_cfi_row(scratch.arena, arch, cie.address_size, version, ext, fde.format, cfi_unwind->row); + dw_printf(" { PC: 0x%I64x, CFA: %-7S, Rules: { %S }\n", cfi_unwind->pc, cfa_str, cfi_regs_str); + } while (dw_cfi_next_row(scratch.arena, cfi_unwind)); + dw_printf(" }\n"); + + dw_printf("}\n"); + } else { + dw_printf("ERROR: unable to parse FDE @ %I64x\n", desc.entry_range.min); + } + } break; + } + } +} + +#if 0 +internal +DW_PRINTER(dw_print_debug_loc) +{ + DW_Raw *input = dumper->input; + DW_TagTree *tag_trees = dw_get_tag_trees(dumper); + DW_Section info = input->sec[DW_Section_Info]; + DW_Section loc = input->sec[DW_Section_Loc]; + + if (loc.data.size == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + // TODO: warn about overlaps in ranges + + Rng1U64Array info_ranges = dw_get_info_ranges(dumper); + DW_CompUnit *cu_arr = dw_get_cu_arr(dumper); + + // parse debug_info for attributes with LOCLIST and store .debug_loc offsets + U64List *loc_lists = push_array(scratch.arena, U64List, info_ranges.count); + for EachIndex(cu_idx, info_ranges.count) { + DW_CompUnit *cu = &cu_arr[cu_idx]; + DW_TagTree *tag_tree = tag_trees[cu_idx]; + for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, tag_tree); + it->tag_node != 0; + d2r_tag_iterator_next(it)) { + DW_TagNode *tag_node = it->tag_node; + DW_Tag tag = tag_node->tag; + for EachNode(attrib_n, DW_AttribNode, tag.attribs.first) { + DW_Attrib *attrib = &attrib_n->v; + DW_AttribClass attrib_class = dw_attrib_class_from_attrib(cu->version, cu->ext, attrib->kind); + B32 is_sect_offset = attrib_class == DW_AttribClass_LocListPtr || (attrib_class == DW_AttribClass_LocList && attrib->form.kind == DW_Form_SecOffset); + B32 is_sect_index = attrib_class == DW_AttribClass_LocList && attrib->form.kind == DW_Form_LocListx; + if (is_sect_offset) { + U64 sec_offset = dw_interp_sec_offset(attrib->form.kind, attrib->form); + u64_list_push(scratch.arena, &loc_lists[cu_idx], attrib->value.v[0]); + } else if (is_sect_index) { + // TODO: support for section indexing + } + } + } + } + + void *base = dw_base_from_sec(input, DW_Section_Loc); + Rng1U64 range = dw_range_from_sec(input, DW_Section_Loc); + + dw_printf(".debug_loc"); + dw_indent(); + dw_printf("%-8s %-8s %-8s %s", "Offset", "Min", "Max", "Expression"); + for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { + Temp locs_temp = temp_begin(scratch.arena); + + DW_Version ver = ver_arr[comp_idx]; + DW_Ext ext = ext_arr[comp_idx]; + + U64Array locs = u64_array_from_list(locs_temp.arena, &loc_lists[comp_idx]); + u64_array_sort(locs.count, locs.v); + + U64Array locs_set = remove_duplicates_u64_array(locs_temp.arena, locs); + U64 address_size = address_sizes[comp_idx]; + U64 base_selector = (address_size == 8) ? max_U64 : max_U32; + + for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { + U64 base_address = address_bases[comp_idx]; + for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { + Temp range_temp = temp_begin(arena); + + String8List list = {0}; + + // offset + str8_list_pushf(range_temp.arena, &list, "%08I64x", cursor); + + // parse entry + U64 v0 = 0, v1 = 0; + cursor += dw_based_range_read(base, range, cursor, address_size, &v0); + cursor += dw_based_range_read(base, range, cursor, address_size, &v1); + + B32 is_list_end = v0 == 0 && v1 == 0; + if (is_list_end) { + str8_list_pushf(range_temp.arena, &list, ""); + } else if (v0 == base_selector) { + base_address = v1; + } else { + U16 expr_size = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &expr_size); + Rng1U64 expr_range = rng_1u64(range.min+cursor, range.min+cursor+expr_size); + cursor += expr_size; + + // format dwarf expression + B32 is_dwarf64 = (address_size == 8); + String8 raw_expr = str8((U8*)base+expr_range.min, dim_1u64(expr_range)); + String8 expression = dw_single_line_string_from_expression(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); + + // push entry + U64 min = base_address + v0; + U64 max = base_address + v1; + str8_list_pushf(range_temp.arena, &list, "%08I64x %08I64x %S", min, max, expression); + } + + // print entry + String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("%S", print); + + // cleanup temp + temp_end(range_temp); + + // exit check + if (is_list_end) { + break; + } + } + } + + temp_end(locs_temp); + } + dw_unindent(); + + dw_unindent(); + scratch_end(scratch); +} +#endif + +#if 0 +internal void +dw_print_debug_ranges(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) +{ + NotImplemented; +#if 0 + DW_Section ranges = input->sec[DW_Section_Ranges]; + void *base = dw_base_from_sec(input, DW_Section_Ranges); + Rng1U64 range = dw_range_from_sec(input, DW_Section_Ranges); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, sections->v[DW_Section_Info]); + + // parse debug_info for attributes with LOCLIST and store .debug_loc offsets + U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); + U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); + U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); + + { + U64 comp_idx = 0; + for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { + Rng1U64 cu_range = cu_range_n->v; + DW_CompUnit cu = dw_comp_unit_from_info_offset(scratch.arena, sections, cu_range.min, relaxed); + + // store info about comp unit + address_sizes[comp_idx] = cu.address_size; + address_bases[comp_idx] = cu.base_addr; + + // parse tags + for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { + DW_Tag tag = dw_tag_from_info_offset_cu(scratch.arena, sections, &cu, info_off); + + // parse attribs + for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { + DW_Attrib *attrib = &attrib_node->v; + B32 is_sect_offset = attrib->value_class == DW_AttribClass_RngListPtr || (attrib->value_class == DW_AttribClass_RngList && attrib->form.kind == DW_Form_SecOffset); + B32 is_sect_index = attrib->value_class == DW_AttribClass_RngList && attrib->form.kind == DW_Form_RngListx; + if (is_sect_offset) { + u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); + } else if (is_sect_index) { + // TODO: support for section indexing + } + } + + info_off = tag.next_info_off; + } + } + } + + dw_printf("# %S", sections->v[DW_Section_Ranges].name); + dw_indent(); + dw_printf("%-8s %-8s %-8s", "Offset", "Min", "Max"); + for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { + U64Array locs = u64_array_from_list(scratch.arena, &loc_lists[comp_idx]); + u64_array_sort(locs.count, locs.v); + U64Array locs_set = remove_duplicates_u64_array(scratch.arena, locs); + U64 address_size = address_sizes[comp_idx]; + U64 base_selector = (address_size == 8) ? max_U64 : max_U32; + + for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { + U64 base_address = address_bases[comp_idx]; + for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { + Temp range_temp = temp_begin(scratch.arena); + + String8List list = {0}; + + // offset + str8_list_pushf(range_temp.arena, &list, "%08I64x", cursor); + + // parse entry + U64 v0 = 0, v1 = 0; + cursor += dw_based_range_read(base, range, cursor, address_size, &v0); + cursor += dw_based_range_read(base, range, cursor, address_size, &v1); + + B32 is_list_end = v0 == 0 && v1 == 0; + if (is_list_end) { + str8_list_pushf(range_temp.arena, &list, ""); + } else if (v0 == base_selector) { + base_address = v1; + } else { + // push entry + U64 min = base_address + v0; + U64 max = base_address + v1; + str8_list_pushf(range_temp.arena, &list, "%08I64x %08I64x", min, max); + } + + // print entry + String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("%S", print); + + temp_end(range_temp); + + // exit check + if (is_list_end) { + break; + } + } + } + } +#endif +} + +internal void +dw_print_debug_aranges(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_ARanges); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_ARanges); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_ARanges].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_length = 0; + DW_Version version = 0; + U64 debug_info_offset = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + + B32 is_dwarf64 = unit_length >= max_U32; + U64 int_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + cursor += dw_based_range_read(base, range, cursor, int_size, &debug_info_offset); + + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + + U64 tuple_size = address_size * 2 + segment_selector_size; + U64 bytes_too_far_past_boundary = cursor % tuple_size; + if (bytes_too_far_past_boundary > 0) { + cursor += tuple_size - bytes_too_far_past_boundary; + } + + dw_printf("Unit length: %I64u", unit_length); + dw_printf("Version: %u", version); + dw_printf("Debug info offset: %#I64x", debug_info_offset); + dw_printf("Address size: %u", address_size); + dw_printf("Segment selector size: %u", segment_selector_size); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 2 (DWARF5 sepc, Feb 13, 2017)"); + } + + dw_indent(); + dw_printf("%-8s %-8s", "Offset", "Range"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08I64x", cursor); + + U64 segment_selector = 0; + U64 address = 0; + U64 length = 0; + cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); + cursor += dw_based_range_read(base, range, cursor, address_size, &address); + cursor += dw_based_range_read(base, range, cursor, address_size, &length); + + if (segment_selector == 0 && address == 0 && length == 0) { + str8_list_pushf(temp.arena, &list, ""); + } else { + if (segment_selector != 0) { + str8_list_pushf(temp.arena, &list, "%02I64u:", segment_selector); + } + str8_list_pushf(temp.arena, &list, "%I64x-%I64x", address, address+length); + } + + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ") }); + dw_printf("%S", print); + + temp_end(temp); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_addr(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_Addr); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_Addr); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_Addr].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_length = 0; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + + U64 unit_offset = cursor; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + + U64 unit_opl = cursor + unit_length; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + + U64 tuple_size = address_size * 2 + segment_selector_size; + U64 bytes_too_far_past_boundary = cursor % tuple_size; + if (bytes_too_far_past_boundary > 0) { + cursor += tuple_size - bytes_too_far_past_boundary; + } + + dw_printf("Unit @ %#I64x, length %I64u", unit_offset, unit_length); + dw_printf("Version: %u", version); + dw_printf("Address size: %u", address_size); + dw_printf("Segment selector size: %u", segment_selector_size); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + dw_indent(); + dw_printf("%-8s %-8s", "Offset", "Address"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08X", cursor); + + U64 segment_selector = 0; + U64 address = 0; + cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); + cursor += dw_based_range_read(base, range, cursor, address_size, &address); + + if (segment_selector == 0 && address == 0) { + str8_list_pushf(temp.arena, &list, ""); + } else { + if (segment_selector != 0) { + str8_list_pushf(temp.arena, &list, "%02u:", segment_selector); + } + str8_list_pushf(temp.arena, &list, "%I64x", address); + } + + String8 print = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("%S", print); + + temp_end(temp); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal U64 +dw_based_range_read_address(void *base, Rng1U64 range, U64 offset, Rng1U64Array segment_ranges, U8 segment_selector_size, U8 address_size, U64 *address_out) +{ + U64 read_offset = offset; + + // read segment + U64 segment_selector = 0; + read_offset += dw_based_range_read(base, range, read_offset, segment_selector_size, &segment_selector); + + // read address + U64 address = 0; + read_offset += dw_based_range_read(base, range, read_offset, address_size, &address); + + // apply segment offset + B32 is_address_segment_relative = segment_selector_size > 0; + if (is_address_segment_relative) { + if (segment_selector < segment_ranges.count) { + address += segment_ranges.v[segment_selector].min; + } else { + Assert(!"invalid segment selector"); + } + } + + U64 read_size = (read_offset - offset); + return read_size; +} + +internal void +dw_print_debug_loclists(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input, Rng1U64Array segment_virtual_ranges, Arch arch) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_LocLists); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_LocLists); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_LocLists].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + + U64 unit_opl = cursor + unit_length; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + U32 offset_entry_count = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); + + U64 past_header_offset = cursor; + B32 is_dwarf64 = unit_length > max_U32; + U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + dw_printf("Unit @ %#I64x, length %I64u", unit_offset, unit_length); + dw_printf("Version: %u", version); + dw_printf("Address size: %u", address_size); + dw_printf("Segment selector size: %u", segment_selector_size); + dw_printf("Offset entry count: %u", offset_entry_count); + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + if (offset_entry_count > 0) { + dw_printf("Offsets:"); + dw_indent(); + dw_printf("%-8s %-8s", "Index", "Offset"); + for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + dw_printf("%-8I64u %I64x", offset_idx, offset+past_header_offset); + } + dw_unindent(); + } + + dw_printf("Locations:"); + dw_indent(); + dw_printf("%-8s %-8s", "Offset", "Location"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(arena); + + String8List list = {0}; + + str8_list_pushf(temp.arena, &list, "%08I64x", cursor); + + U8 kind = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &kind); + str8_list_pushf(temp.arena, &list, "DW_LLE_%S", dw_string_from_loc_list_entry_kind(temp.arena, kind)); + + B32 has_loc_desc = 0; + switch (kind) { + case DW_LocListEntryKind_EndOfList: + break; + case DW_LocListEntryKind_DefaultLocation: { + has_loc_desc = 1; + } break; + case DW_LocListEntryKind_BaseAddress: { + U64 base_address = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &base_address); + str8_list_pushf(temp.arena, &list, "%I64x", base_address); + } break; + case DW_LocListEntryKind_StartLength: { + U64 start = 0; + U64 length = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", start, length); + } break; + case DW_LocListEntryKind_StartEnd: { + U64 start = 0; + U64 end = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &end); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", start, end); + } break; + case DW_LocListEntryKind_BaseAddressX: { + U64 base_addressx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); + str8_list_pushf(temp.arena, &list, "%I64x", base_addressx); + } break; + case DW_LocListEntryKind_StartXEndX: { + U64 startx = 0; + U64 endx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", startx, endx); + } break; + case DW_LocListEntryKind_OffsetPair: { + U64 a = 0; + U64 b = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &a); + cursor += dw_based_range_read_uleb128(base, range, cursor, &b); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", a, b); + + U8 expr_length = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &expr_length); + + String8 raw_expr = str8((U8*)base+cursor, expr_length); + cursor += expr_length; + + // TODO: we need actual cu base to format expression correctly + NotImplemented; + String8 expression = dw_single_line_string_from_expression(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); + str8_list_pushf(temp.arena, &list, "(%S)", expression); + } break; + case DW_LocListEntryKind_StartXLength: { + U64 startx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + U64 length = 0; + if (version < DW_Version_5) { + // pre-standard length + cursor += dw_based_range_read(base, range, cursor, sizeof(U32), &length); + } else { + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + } + } break; + } + + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("%S", print); + + temp_end(temp); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_rnglists(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input, Rng1U64Array segment_ranges) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_RngLists); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_RngLists); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_RngLists].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + DW_Version version = 0; + U8 address_size = 0; + U8 segment_selector_size = 0; + U32 offset_entry_count = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + cursor += dw_based_range_read_struct(base, range, cursor, &address_size); + cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); + cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); + + U64 past_header_offset = cursor; + B32 is_dwarf64 = unit_length > max_U32; + U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + dw_printf("Unit @ %#I64x, length %I64u", unit_offset, unit_length); + dw_printf("Version: %u", version); + dw_printf("Address size: %u", address_size); + dw_printf("Segment selector size: %u", segment_selector_size); + dw_printf("Offset entry count: %u", offset_entry_count); + + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + if (offset_entry_count > 0) { + dw_printf("Offsets:"); + dw_indent(); + dw_printf("%-8s %-8s", "Index", "Offset"); + for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + dw_printf("%-8I64u %I64x", offset_idx, offset+past_header_offset); + } + dw_unindent(); + } + + dw_printf("Ranges:"); + dw_indent(); + dw_printf("%-8s %-8s", "Offset", "Range"); + for (; cursor < unit_opl; ) { + Temp temp = temp_begin(scratch.arena); + + String8List list = {0}; + + // offset + str8_list_pushf(temp.arena, &list, "%08I64x", cursor); + + // opcode mnemonic + U8 kind = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &kind); + str8_list_pushf(temp.arena, &list, "DW_RLE_%S", dw_string_from_rng_list_entry_kind(temp.arena, kind)); + + // operand + switch (kind) { + case DW_RngListEntryKind_EndOfList: { + // empty + } break; + case DW_RngListEntryKind_BaseAddressX: { + U64 base_addressx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); + str8_list_pushf(temp.arena, &list, "%I64x", base_addressx); + } break; + case DW_RngListEntryKind_BaseAddress: { + U64 base_address = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &base_address); + str8_list_pushf(temp.arena, &list, "%I64x", base_address); + } break; + case DW_RngListEntryKind_OffsetPair: { + U64 min = 0; + U64 max = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &min); + cursor += dw_based_range_read_uleb128(base, range, cursor, &max); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", min, max); + } break; + case DW_RngListEntryKind_StartxLength: { + U64 startx = 0; + U64 length = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", startx, length); + } break; + case DW_RngListEntryKind_StartxEndx: { + U64 startx = 0; + U64 endx = 0; + cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); + cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", startx, endx); + } break; + case DW_RngListEntryKind_StartEnd: { + U64 start = 0; + U64 end = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &end); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", start, end); + } break; + case DW_RngListEntryKind_StartLength: { + U64 start = 0; + U64 length = 0; + cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); + cursor += dw_based_range_read_uleb128(base, range, cursor, &length); + str8_list_pushf(temp.arena, &list, "%I64x, %I64x", start, length); + } break; + } + + // output row + String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); + dw_printf("%S", print); + + temp_end(temp); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_format_string_table(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input, DW_SectionKind sec) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, sec); + Rng1U64 range = dw_range_from_sec(sections, sec); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[sec].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + + DW_Version version = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + + if (version != DW_Version_2) { + rd_warningf("Version value must be 2"); + } + + B32 is_dwarf64 = unit_length > max_U32; + U32 sec_offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + U64 debug_info_offset = 0, debug_info_length = 0; + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_offset); + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_length); + + dw_printf("Unit @ %#I64x, length %I64u", unit_offset, unit_length); + dw_printf("Version: %u", version); + dw_printf("Debug info offset: %#I64x", debug_info_offset); + dw_printf("Debug info length: %#I64x", debug_info_length); + + dw_printf("Entries:"); + dw_indent(); + dw_printf("%-8s %-8s", "Offset", "String"); + for (; cursor < unit_opl; ) { + U64 info_offset = 0; + cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &info_offset); + String8 string = dw_based_range_read_string(base, range, cursor); + cursor += (string.size + 1); + + dw_printf("%08I64x %S", info_offset, string); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_pubnames(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + dw_format_string_table(arena, out, g_dw_indent, input, DW_Section_PubNames); +} + +internal void +dw_print_debug_pubtypes(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + dw_format_string_table(arena, out, g_dw_indent, input, DW_Section_PubTypes); +} + +internal void +dw_print_debug_line_str(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_LineStr); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_LineStr); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_LineStr].name); + dw_indent(); + + dw_printf("%-8s %-8s", "Offset", "String"); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 offset = cursor; + String8 string = dw_based_range_read_string(base, range, cursor); + cursor += (string.size + 1); + dw_printf("%08llX %S", offset, string); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +internal void +dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 g_dw_indent, DW_Raw *input) +{ + NotImplemented; +#if 0 + void *base = dw_base_from_sec(sections, DW_Section_StrOffsets); + Rng1U64 range = dw_range_from_sec(sections, DW_Section_StrOffsets); + + void *debug_str_base = dw_base_from_sec(sections, DW_Section_Str); + Rng1U64 debug_str_range = dw_range_from_sec(sections, DW_Section_Str); + + if (dim_1u64(range) == 0) { + return; + } + + Temp scratch = scratch_begin(&arena, 1); + + dw_printf("# %S", sections->v[DW_Section_StrOffsets].name); + dw_indent(); + for (U64 cursor = 0; cursor < dim_1u64(range); ) { + U64 unit_offset = cursor; + + U64 unit_length = 0; + cursor += dw_based_range_read_length(base, range, cursor, &unit_length); + U64 unit_opl = cursor + unit_length; + + DW_Version version = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &version); + if (version != DW_Version_5) { + rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); + } + + U16 padding = 0; + cursor += dw_based_range_read_struct(base, range, cursor, &padding); + if (padding != 0) { + rd_warningf("unexpected padding byte"); + } + + B32 is_dwarf64 = unit_length > max_U32; + U32 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); + + dw_printf("Unit @ %#llX, length %I64d", unit_offset, unit_length); + dw_printf("Version: %d", version); + dw_printf("Padding: %d", padding); + dw_indent(); + dw_printf("%-8s %-8s", "@", "Offset"); + for (; cursor < unit_opl; ) { + U64 read_at = cursor; + U64 offset = 0; + cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); + dw_printf("%08I64x %08I64x", read_at, offset); + if (dim_1u64(debug_str_range) > 0) { + String8 string = dw_based_range_read_string(debug_str_base, debug_str_range, offset); + dw_printf(" %S", string); + } + rd_newline(); + } + dw_unindent(); + rd_newline(); + } + dw_unindent(); + + scratch_end(scratch); +#endif +} + +#endif + +//////////////////////////////// +//~ rjf: Dump Entry Point + +read_only struct { + DW_Printer *printer; + DW_SectionKind kind; +} g_dw_printers[] = { + { dw_print_abbrev, DW_Section_Abbrev }, + { dw_print_info, DW_Section_Info }, + { dw_print_strings, DW_Section_Str }, + { dw_print_frame, DW_Section_Frame }, + { dw_print_line, DW_Section_Line }, +}; + +internal String8List +dw_dump_list_from_sections(Arena *arena, + DW_Raw *input, + Arch arch, + DW_SectionFlags subset_flags, + B32 is_verbose) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List *strings = push_array(scratch.arena, String8List, 1); + int indent = 0; + + DW_Dumper dumper = {0}; + dumper.arena = arena_alloc(); + dumper.arch = arch; + dumper.is_verbose = is_verbose; + dumper.input = input; + dumper.is_relaxed = 1; + + for EachElement(i, g_dw_printers) { + if (((1 << g_dw_printers[i].kind) & subset_flags) != 0) { + String8List s = {0}; + g_dw_printers[i].printer(arena, &s, indent + 1, &dumper); + + if (s.total_size > 0) { + dw_printf("%S:\n", str8_skip(dw_name_string_from_section_kind(g_dw_printers[i].kind), 1)); + dw_printf("{\n"); + dw_indent(); + str8_list_concat_in_place(strings, &s); + dw_unindent(); + dw_printf("}\n"); + } + } + } + + String8List result = *strings; + arena_release(dumper.arena); + scratch_end(scratch); + return result; +} + diff --git a/obsolete/dwarf/dwarf_dump_old.h b/obsolete/dwarf/dwarf_dump_old.h new file mode 100644 index 00000000..6a015952 --- /dev/null +++ b/obsolete/dwarf/dwarf_dump_old.h @@ -0,0 +1,73 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_DUMP_H +#define DWARF_DUMP_H + +typedef enum +{ + DW_DumperCacheFlag_InfoRanges = (1 << 0), + DW_DumperCacheFlag_CuArr = (1 << 1), + DW_DumperCacheFlag_LineVmMap = (1 << 2), + DW_DumperCacheFlag_TagTrees = (1 << 3), +} DW_DumperCacheFlags; + +typedef struct DW_Dumper +{ + Arena *arena; + Arch arch; + B32 is_relaxed; + B32 is_verbose; + DW_Raw *input; + DW_DumperCacheFlags cache_flags; + struct { + Rng1U64Array info_ranges; + DW_CompUnit *cu_arr; + HashTable *line_vm_map; + DW_TagTree *tag_trees; + } cache; +} DW_Dumper; + +#define DW_PRINTER(name) void name(Arena *arena, String8List *strings, int indent, DW_Dumper *dumper) +typedef DW_PRINTER(DW_Printer); + +//////////////////////////////// + +// cache +internal Rng1U64Array dw_get_info_ranges(DW_Dumper *dumper); +internal DW_CompUnit * dw_get_cu_arr(DW_Dumper *dumper); +internal HashTable * dw_get_line_vm_map(DW_Dumper *dumper); +internal DW_TagTree * dw_get_tag_trees(DW_Dumper *dumper); + +//////////////////////////////// +//~ rjf: Stringification Helpers + +internal String8List dw_string_list_from_cfi_program(Arena *arena, U64 cu_base, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format, U64 pc_begin, DW_CIE *cie, DW_DecodePtr *decode_ptr_func, void *deocde_ptr_ud, String8 program); +internal String8List dw_string_list_from_expression (Arena *arena, String8 raw_data, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); + +internal String8 dw_string_from_reg_off (Arena *arena, Arch arch, DW_Reg reg_idx, S64 reg_off); +internal String8 dw_string_from_attrib_value(Arena *arena, DW_Raw *input, Arch arch, DW_CompUnit *cu, DW_LineVM *line_vm, DW_Attrib *attrib); +internal String8 dw_string_from_expression (Arena *arena, String8 expr, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format); +internal String8 dw_string_from_cfa (Arena *arena, Arch arch, U64 address_size, DW_Version version, DW_Ext ext, DW_Format format, DW_CFA cfa); +internal String8 dw_string_from_cfi_row (Arena *arena, Arch arch, U64 address_size, DW_Version version, DW_Ext ext, DW_Format format, DW_CFI_Row *row); + +#if 0 +internal void dw_print_eh_frame (Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, EH_PtrCtx *ptr_ctx); +internal void dw_print_debug_loc (Arena *arena, String8List *out, String8 indent, DW_Raw *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); +internal void dw_print_debug_ranges (Arena *arena, String8List *out, String8 indent, DW_Raw *input, Arch arch, ExecutableImageKind image_type, B32 relaxed); +internal void dw_print_debug_aranges (Arena *arena, String8List *out, String8 indent, DW_Raw *input); +internal void dw_print_debug_addr (Arena *arena, String8List *out, String8 indent, DW_Raw *input); +internal void dw_print_debug_loclists (Arena *arena, String8List *out, String8 indent, DW_Raw *input, Rng1U64Array segment_vranges, Arch arch); +internal void dw_print_debug_rnglists (Arena *arena, String8List *out, String8 indent, DW_Raw *input, Rng1U64Array segment_vranges); +internal void dw_print_debug_pubnames (Arena *arena, String8List *out, String8 indent, DW_Raw *input); +internal void dw_print_debug_pubtypes (Arena *arena, String8List *out, String8 indent, DW_Raw *input); +internal void dw_print_debug_line_str (Arena *arena, String8List *out, String8 indent, DW_Raw *input); +internal void dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Raw *input); +#endif + +//////////////////////////////// +//~ rjf: Dump Entry Point + +internal String8List dw_dump_list_from_sections(Arena *arena, DW_Raw *input, Arch arch, DW_SectionFlags dump_sections, B32 is_verbose); + +#endif // DWARF_DUMP_H diff --git a/obsolete/dwarf/dwarf_expr_old.c b/obsolete/dwarf/dwarf_expr_old.c new file mode 100644 index 00000000..8f8e23ac --- /dev/null +++ b/obsolete/dwarf/dwarf_expr_old.c @@ -0,0 +1,1580 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal DW_PieceNode * +dw_piece_list_push(Arena *arena, DW_PieceList *list, DW_Piece v) +{ + DW_PieceNode *n = push_array(arena, DW_PieceNode, 1); + n->v = v; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + return n; +} + +internal DW_ExprValueType +dw_expr_unsigned_value_type_from_bit_size(U64 bit_size) +{ + switch (bit_size) { + case 8: return DW_ExprValueType_U8; + case 16: return DW_ExprValueType_U16; + case 32: return DW_ExprValueType_U32; + case 64: return DW_ExprValueType_U64; + case 128: return DW_ExprValueType_U128; + case 256: return DW_ExprValueType_U256; + case 512: return DW_ExprValueType_U512; + } + AssertAlways(0 && "no suitable unsigned type was found for the specified size"); + return DW_ExprValueType_Generic; +} + +internal DW_ExprValueType +dw_expr_signed_value_type_from_bit_size(U64 bit_size) +{ + switch (bit_size) { + case 8: return DW_ExprValueType_S8; + case 16: return DW_ExprValueType_S16; + case 32: return DW_ExprValueType_S32; + case 64: return DW_ExprValueType_S64; + case 128: return DW_ExprValueType_S128; + case 256: return DW_ExprValueType_S256; + case 512: return DW_ExprValueType_S512; + } + AssertAlways(0 && "no suitable signed type was found for the specified size"); + return DW_ExprValueType_Generic; +} + +internal DW_ExprValueType +dw_expr_float_type_from_bit_size(U64 bit_size) +{ + switch (bit_size) { + case 4: return DW_ExprValueType_F32; + case 8: return DW_ExprValueType_F64; + } + AssertAlways(0 && "no suitable type was found for the specified size"); + return DW_ExprValueType_Generic; +} + +internal U64 +dw_expr_byte_size_from_value_type(U64 addr_size, DW_ExprValueType k) +{ + switch (k) { + default: { InvalidPath; } + case DW_ExprValueType_Generic: return 0; + case DW_ExprValueType_Addr: return addr_size; + case DW_ExprValueType_U8: return 1; + case DW_ExprValueType_U16: return 2; + case DW_ExprValueType_U32: return 4; + case DW_ExprValueType_U64: return 8; + case DW_ExprValueType_U128: return 16; + case DW_ExprValueType_U256: return 32; + case DW_ExprValueType_U512: return 64; + case DW_ExprValueType_S8: return 1; + case DW_ExprValueType_S16: return 2; + case DW_ExprValueType_S32: return 4; + case DW_ExprValueType_S64: return 8; + case DW_ExprValueType_S128: return 16; + case DW_ExprValueType_S256: return 32; + case DW_ExprValueType_S512: return 64; + case DW_ExprValueType_F32: return 4; + case DW_ExprValueType_F64: return 8; + } +} + +internal DW_ExprValueType +dw_expr_pick_common_value_type(DW_ExprValueType rhs, DW_ExprValueType lhs) +{ + if (lhs == rhs) { + return lhs; + } + // unsigned vs unsigned + else if (DW_ExprValueType_IsUnsigned(lhs) && DW_ExprValueType_IsUnsigned(rhs)) { + return Max(lhs, rhs); + } + // signed vs signed + else if (DW_ExprValueType_IsSigned(lhs) && DW_ExprValueType_IsSigned(rhs)) { + return Max(lhs, rhs); + } + // (unsigned vs signed) || (signed vs unsigned) + else if ((DW_ExprValueType_IsUnsigned(lhs) && DW_ExprValueType_IsSigned(rhs)) || + (DW_ExprValueType_IsSigned(lhs) && DW_ExprValueType_IsUnsigned(rhs))) { + U64 lhs_size = dw_expr_byte_size_from_value_type(0, lhs); + U64 rhs_size = dw_expr_byte_size_from_value_type(0, rhs); + if (lhs_size < rhs_size) { + return rhs; + } else if (lhs > rhs_size) { + return lhs; + } else { + return dw_expr_unsigned_value_type_from_bit_size(lhs_size * 8); + } + } + // float vs int + else if (DW_ExprValueType_IsFloat(lhs) && DW_ExprValueType_IsInt(rhs)) { + return lhs; + } + // int vs float + else if (DW_ExprValueType_IsInt(lhs) && DW_ExprValueType_IsFloat(rhs)) { + return rhs; + } + // float vs float + else if (DW_ExprValueType_IsFloat(lhs) && DW_ExprValueType_IsFloat(rhs)) { + return Max(lhs, rhs); + } + // address vs int + else if (lhs == DW_ExprValueType_Addr && DW_ExprValueType_IsInt(rhs)) { + return DW_ExprValueType_Addr; + } + // int vs address + else if (DW_ExprValueType_IsInt(lhs) && rhs == DW_ExprValueType_Addr) { + return DW_ExprValueType_Addr; + } + // address vs float + else if (lhs == DW_ExprValueType_Addr && DW_ExprValueType_IsFloat(rhs)) { + return DW_ExprValueType_Generic; + } + // float vs address + else if (DW_ExprValueType_IsFloat(lhs) && rhs == DW_ExprValueType_Addr) { + return DW_ExprValueType_Generic; + } + // no conversion for implicit value + else if (lhs == DW_ExprValueType_Implicit || rhs == DW_ExprValueType_Implicit) { + return DW_ExprValueType_Generic; + } + AssertAlways(!"undefined conversion case"); + return DW_ExprValueType_Generic; +} + +internal DW_ExprValueType +dw_expr_pick_common_compar_value_type(DW_ExprValueType rhs, DW_ExprValueType lhs) +{ + DW_ExprValueType result; + if (lhs == DW_ExprValueType_Generic || rhs == DW_ExprValueType_Generic) { + result = DW_ExprValueType_S64; + } else { + result = dw_expr_pick_common_value_type(lhs, rhs); + } + return result; +} + +internal DW_ExprValue +dw_expr_cast(DW_ExprValue value, DW_ExprValueType type) +{ + DW_ExprValue result = { type }; + +#define CastTable(f, t) \ +switch (value.type) { \ +case DW_ExprValueType_Generic: { MemoryCopy(&result.f, value.generic.str, Min(sizeof(t), value.generic.size)); } break; \ +case DW_ExprValueType_U8: { result.f = (t)value.u8; } break; \ +case DW_ExprValueType_U16: { result.f = (t)value.u16; } break; \ +case DW_ExprValueType_U32: { result.f = (t)value.u32; } break; \ +case DW_ExprValueType_U64: { result.f = (t)value.u64; } break; \ +case DW_ExprValueType_U128: { NotImplemented; } break; \ +case DW_ExprValueType_U256: { NotImplemented; } break; \ +case DW_ExprValueType_U512: { NotImplemented; } break; \ +case DW_ExprValueType_S8: { result.f = (t)value.s8; } break; \ +case DW_ExprValueType_S16: { result.f = (t)value.s16; } break; \ +case DW_ExprValueType_S32: { result.f = (t)value.s32; } break; \ +case DW_ExprValueType_S64: { result.f = (t)value.s64; } break; \ +case DW_ExprValueType_S128: { NotImplemented; } break; \ +case DW_ExprValueType_S256: { NotImplemented; } break; \ +case DW_ExprValueType_S512: { NotImplemented; } break; \ +case DW_ExprValueType_F32: { result.f = (t)value.f32; } break; \ +case DW_ExprValueType_F64: { result.f = (t)value.f64; } break; \ +case DW_ExprValueType_Addr: { result.f = (t)value.addr; } break; \ +case DW_ExprValueType_Implicit: { InvalidPath; } break; \ +case DW_ExprValueType_Bool: { result.f = (t)value.boolean; } break; \ +default: { InvalidPath; } break; \ +} + + switch (type) { + case DW_ExprValueType_Generic: {} break; + case DW_ExprValueType_U8: { CastTable(u8, U8); } break; + case DW_ExprValueType_U16: { CastTable(u16, U16); } break; + case DW_ExprValueType_U32: { CastTable(u32, U32); } break; + case DW_ExprValueType_U64: { CastTable(u64, U64); } break; + case DW_ExprValueType_U128: { NotImplemented; } break; + case DW_ExprValueType_U256: { NotImplemented; } break; + case DW_ExprValueType_U512: { NotImplemented; } break; + case DW_ExprValueType_S8: { CastTable(s8, S8); } break; + case DW_ExprValueType_S16: { CastTable(s16, S16); } break; + case DW_ExprValueType_S32: { CastTable(s32, S32); } break; + case DW_ExprValueType_S64: { CastTable(s64, S64); } break; + case DW_ExprValueType_S128: { NotImplemented; } break; + case DW_ExprValueType_S256: { NotImplemented; } break; + case DW_ExprValueType_S512: { NotImplemented; } break; + case DW_ExprValueType_F32: { CastTable(f32, F32); } break; + case DW_ExprValueType_F64: { CastTable(f64, F64); } break; + case DW_ExprValueType_Addr: { CastTable(addr, U64); } break; + case DW_ExprValueType_Implicit: { NotImplemented; } break; + case DW_ExprValueType_Bool: { CastTable(boolean, DW_ExprBool); } break; + } + +#undef CastTable + return result; +} + +internal DW_ExprValue +dw_expr_add(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 + common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 + common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 + common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 + common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 + common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 + common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 + common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 + common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 + common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 + common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 + common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr + common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + return result; +} + +internal DW_ExprValue +dw_expr_minus(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 - common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 - common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 - common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 - common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 - common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 - common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 - common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 - common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 - common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 - common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 - common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr - common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + return result; +} + +internal DW_ExprValue +dw_expr_mul(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 * common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 * common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 * common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 * common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 * common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 * common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 * common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 * common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 * common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 * common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 * common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr * common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + return result; +} + +internal DW_ExprValue +dw_expr_div(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 / common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 / common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 / common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 / common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 / common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 / common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 / common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 / common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 / common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 / common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 / common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr / common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + return result; +} + +internal DW_ExprValue +dw_expr_mod(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 % common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 % common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 % common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 % common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 % common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 % common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 % common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 % common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 % common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr % common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + return result; +} + +internal DW_ExprValue +dw_expr_eq(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 == common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 == common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 == common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 == common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 == common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 == common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 == common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 == common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 == common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 == common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 == common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr == common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_ge(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 >= common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 >= common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 >= common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 >= common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 >= common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 >= common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 >= common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 >= common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 >= common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 >= common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 >= common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr >= common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_gt(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 > common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 > common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 > common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 > common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 > common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 > common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 > common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 > common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 > common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 > common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 > common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr > common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_le(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 <= common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 <= common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 <= common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 <= common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 <= common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 <= common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 <= common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 <= common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 <= common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 <= common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 <= common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr <= common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_lt(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 < common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 < common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 < common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 < common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 < common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 < common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 < common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 < common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 < common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 < common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 < common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr < common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_ne(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 != common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 != common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 != common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 != common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 != common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 != common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 != common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 != common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 != common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = common_lhs.f32 != common_rhs.f32; } break; + case DW_ExprValueType_F64: { result.f64 = common_lhs.f64 != common_rhs.f64; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr != common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_xor(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 ^ common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 ^ common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 ^ common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 ^ common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 ^ common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 ^ common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 ^ common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 ^ common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 ^ common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr ^ common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_and(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 & common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 & common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 & common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 & common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 & common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 & common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 & common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 & common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 & common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr & common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_or(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 | common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 | common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 | common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 | common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 | common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 | common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 | common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 | common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 | common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr | common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_shl(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 << common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 << common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 << common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 << common_rhs.u64; } break; + + case DW_ExprValueType_U128: + case DW_ExprValueType_U256: + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 << common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 << common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 << common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 << common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 << common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr << common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_shr(DW_ExprValue rhs, DW_ExprValue lhs) +{ + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = common_lhs.u8 >> common_rhs.u8; } break; + case DW_ExprValueType_U16: { result.u16 = common_lhs.u16 >> common_rhs.u16; } break; + case DW_ExprValueType_U32: { result.u32 = common_lhs.u32 >> common_rhs.u32; } break; + case DW_ExprValueType_U64: { result.u64 = common_lhs.u64 >> common_rhs.u64; } break; + + case DW_ExprValueType_U128: { NotImplemented; } break; + case DW_ExprValueType_U256: { NotImplemented; } break; + case DW_ExprValueType_U512: { NotImplemented; } break; + + case DW_ExprValueType_Bool: { InvalidPath; } break; + case DW_ExprValueType_S8: { InvalidPath; } break; + case DW_ExprValueType_S16: { InvalidPath; } break; + case DW_ExprValueType_S32: { InvalidPath; } break; + case DW_ExprValueType_S64: { InvalidPath; } break; + case DW_ExprValueType_S128: { InvalidPath; } break; + case DW_ExprValueType_S256: { InvalidPath; } break; + case DW_ExprValueType_S512: { InvalidPath; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr >> common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_shra(DW_ExprValue rhs, DW_ExprValue lhs) +{ + if (DW_ExprValueType_IsUnsigned(lhs.type)) { + DW_ExprValueType new_type = dw_expr_signed_value_type_from_bit_size(dw_expr_byte_size_from_value_type(0, lhs.type) * 8); + lhs = dw_expr_cast(lhs, new_type); + } + + if (DW_ExprValueType_IsUnsigned(rhs.type)) { + DW_ExprValueType new_type = dw_expr_signed_value_type_from_bit_size(dw_expr_byte_size_from_value_type(0, rhs.type) * 8); + rhs = dw_expr_cast(rhs, new_type); + } + + DW_ExprValue result = {0}; + result.type = dw_expr_pick_common_compar_value_type(lhs.type, rhs.type); + + DW_ExprValue common_lhs = dw_expr_cast(lhs, result.type); + DW_ExprValue common_rhs = dw_expr_cast(rhs, result.type); + + switch (result.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { InvalidPath; } break; + case DW_ExprValueType_U16: { InvalidPath; } break; + case DW_ExprValueType_U32: { InvalidPath; } break; + case DW_ExprValueType_U64: { InvalidPath; } break; + case DW_ExprValueType_U128: { InvalidPath; } break; + case DW_ExprValueType_U256: { InvalidPath; } break; + case DW_ExprValueType_U512: { InvalidPath; } break; + + case DW_ExprValueType_Bool: { result.s8 = common_lhs.s8 >> common_rhs.s8; } break; + case DW_ExprValueType_S8: { result.s8 = common_lhs.s8 >> common_rhs.s8; } break; + case DW_ExprValueType_S16: { result.s16 = common_lhs.s16 >> common_rhs.s16; } break; + case DW_ExprValueType_S32: { result.s32 = common_lhs.s32 >> common_rhs.s32; } break; + case DW_ExprValueType_S64: { result.s64 = common_lhs.s64 >> common_rhs.s64; } break; + + case DW_ExprValueType_S128: + case DW_ExprValueType_S256: + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { InvalidPath; } break; + case DW_ExprValueType_F64: { InvalidPath; } break; + case DW_ExprValueType_Addr: { result.addr = common_lhs.addr >> common_rhs.addr; } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + + default: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_abs(DW_ExprValue value) +{ + DW_ExprValue result = value; + + switch (value.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: {}; break; + case DW_ExprValueType_U16: {}; break; + case DW_ExprValueType_U32: {}; break; + case DW_ExprValueType_U64: {}; break; + case DW_ExprValueType_U128: {}; break; + case DW_ExprValueType_U256: {}; break; + case DW_ExprValueType_U512: {}; break; + + case DW_ExprValueType_S8: { result.s8 = abs_s64(result.s8); } break; + case DW_ExprValueType_S16: { result.s16 = abs_s64(result.s16); } break; + case DW_ExprValueType_S32: { result.s32 = abs_s64(result.s32); } break; + case DW_ExprValueType_S64: { result.s64 = abs_s64(result.s64); } break; + case DW_ExprValueType_S128: { NotImplemented; } break; + case DW_ExprValueType_S256: { NotImplemented; } break; + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = abs_f32(result.f32); } break; + case DW_ExprValueType_F64: { result.f64 = abs_f64(result.f64); } break; + + case DW_ExprValueType_Addr: {} break; + case DW_ExprValueType_Bool: { result.boolean = abs_s64(result.boolean); } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_neg(DW_ExprValue value) +{ + DW_ExprValue result = value; + + switch (value.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = -result.u8; }; break; + case DW_ExprValueType_U16: { result.u16 = -result.u16; }; break; + case DW_ExprValueType_U32: { result.u32 = -result.u32; }; break; + case DW_ExprValueType_U64: { result.u64 = -result.u64; }; break; + case DW_ExprValueType_U128: { NotImplemented; }; break; + case DW_ExprValueType_U256: { NotImplemented; }; break; + case DW_ExprValueType_U512: { NotImplemented; }; break; + + case DW_ExprValueType_S8: { result.s8 = -result.s8; } break; + case DW_ExprValueType_S16: { result.s16 = -result.s16; } break; + case DW_ExprValueType_S32: { result.s32 = -result.s32; } break; + case DW_ExprValueType_S64: { result.s64 = -result.s64; } break; + case DW_ExprValueType_S128: { NotImplemented; } break; + case DW_ExprValueType_S256: { NotImplemented; } break; + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = -result.f32; } break; + case DW_ExprValueType_F64: { result.f64 = -result.f64; } break; + + case DW_ExprValueType_Addr: { result.addr = -result.addr; } break; + case DW_ExprValueType_Bool: { result.boolean = abs_s64(result.boolean); } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + } + + return result; +} + +internal DW_ExprValue +dw_expr_not(DW_ExprValue value) +{ + DW_ExprValue result = value; + + switch (value.type) { + case DW_ExprValueType_Generic: { InvalidPath; } break; + + case DW_ExprValueType_U8: { result.u8 = !result.u8; }; break; + case DW_ExprValueType_U16: { result.u16 = !result.u16; }; break; + case DW_ExprValueType_U32: { result.u32 = !result.u32; }; break; + case DW_ExprValueType_U64: { result.u64 = !result.u64; }; break; + case DW_ExprValueType_U128: { NotImplemented; }; break; + case DW_ExprValueType_U256: { NotImplemented; }; break; + case DW_ExprValueType_U512: { NotImplemented; }; break; + + case DW_ExprValueType_S8: { result.s8 = !result.s8; } break; + case DW_ExprValueType_S16: { result.s16 = !result.s16; } break; + case DW_ExprValueType_S32: { result.s32 = !result.s32; } break; + case DW_ExprValueType_S64: { result.s64 = !result.s64; } break; + case DW_ExprValueType_S128: { NotImplemented; } break; + case DW_ExprValueType_S256: { NotImplemented; } break; + case DW_ExprValueType_S512: { NotImplemented; } break; + + case DW_ExprValueType_F32: { result.f32 = !result.f32; } break; + case DW_ExprValueType_F64: { result.f64 = !result.f64; } break; + + case DW_ExprValueType_Addr: { result.addr = !result.addr; } break; + case DW_ExprValueType_Bool: { result.boolean = abs_s64(result.boolean); } break; + case DW_ExprValueType_Implicit: { InvalidPath; } break; + } + + return result; +} + +internal String8 +dw_string_from_expr_value(Arena *arena, U64 addr_size, DW_ExprValue v) +{ + String8 s = {0}; + switch (v.type) { + case DW_ExprValueType_Generic: { } break; + case DW_ExprValueType_U8: { s = str8_struct(&v.u8); } break; + case DW_ExprValueType_U16: { s = str8_struct(&v.u16); } break; + case DW_ExprValueType_U32: { s = str8_struct(&v.u32); } break; + case DW_ExprValueType_U64: { s = str8_struct(&v.u64); } break; + case DW_ExprValueType_U128: { s = str8_struct(&v.u128); } break; + case DW_ExprValueType_U256: { s = str8_struct(&v.u256); } break; + case DW_ExprValueType_U512: { s = str8_struct(&v.u512); } break; + case DW_ExprValueType_S8: { s = str8_struct(&v.s8); } break; + case DW_ExprValueType_S16: { s = str8_struct(&v.s16); } break; + case DW_ExprValueType_S32: { s = str8_struct(&v.s32); } break; + case DW_ExprValueType_S64: { s = str8_struct(&v.s64); } break; + case DW_ExprValueType_F32: { s = str8_struct(&v.f32); } break; + case DW_ExprValueType_F64: { s = str8_struct(&v.f64); } break; + case DW_ExprValueType_Addr: { s = str8((U8 *)&v.addr, addr_size); } break; + case DW_ExprValueType_Implicit: { s = v.implicit; } break; + default: { NotImplemented; } break; + } + return str8_copy(arena, s); +} + +internal DW_ExprValueNode * +dw_expr_stack_push(Arena *arena, DW_ExprStack *stack, DW_ExprValue value) +{ + DW_ExprValueNode *n = push_array(arena, DW_ExprValueNode, 1); + n->v = value; + SLLStackPush(stack->top, n); + stack->count += 1; + return n; +} + +internal DW_ExprValueNode * +dw_expr_stack_push_unsigned(Arena *arena, DW_ExprStack *stack, void *value, U64 value_size) +{ + DW_ExprValueNode *n = 0; + switch (value_size) { + case 0: {} break; + case 1: { n = dw_expr_stack_push(arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U8, .u8 = *(U8 *)value }); } break; + case 2: { n = dw_expr_stack_push(arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U16, .u16 = *(U16 *)value }); } break; + case 4: { n = dw_expr_stack_push(arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U32, .u32 = *(U32 *)value }); } break; + case 8: { n = dw_expr_stack_push(arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U64, .u64 = *(U64 *)value }); } break; + default: { NotImplemented; } break; + } + return n; +} + +internal DW_ExprValue +dw_expr_stack_pop(DW_ExprStack *stack) +{ + DW_ExprValueNode *n = stack->top; + DW_ExprValue v = n->v; + SLLStackPop(stack->top); + return v; +} + +internal DW_ExprValue +dw_expr_stack_peek(DW_ExprStack *stack) +{ + return stack->top->v; +} + +internal DW_ExprValueNode * +dw_expr_stack_pick(DW_ExprStack *stack, U64 idx) +{ + DW_ExprValueNode *n = 0; + if (idx < stack->count) { + U64 c = idx; + for (n = stack->top; n != 0 && c > 0; n = n->next, c -= 1); + } + return n; +} + +internal DW_ExprInst * +dw_expr_inst_from_delta(DW_ExprInst *inst, S16 delta) +{ + B32 skip_fwd = inst->operands[0].s16 >= 0; + DW_ExprInst *i = inst; + U16 u_delta = abs_s64(inst->operands[0].s16); + U64 cursor = 0; + for (i = skip_fwd ? inst : inst->prev; i != 0 && cursor < u_delta; i = skip_fwd ? inst->next : inst->prev) { + cursor += inst->size; + } + if (cursor != u_delta) { + i = 0; + } + return i; +} + +internal DW_ExprEvalResult +dw_eval_expr(Arena *arena, Arch arch, DW_Format format, U64 frame_base, U64 cfa, U64 tls, U64 exec_op_limit, DW_Expr expr, void *reg_block, MachineOp_MemRead *mem_read, void *mem_read_ud, DW_ExprValue *value_out) +{ + Temp scratch = scratch_begin(&arena, 1); + + ARCH_Info *arch_info = arch_info_from_arch(arch); + + DW_ExprEvalResult result = DW_ExprEvalResult_Fail; + DW_PieceList pieces = {0}; + DW_ExprStack *stack = push_array(scratch.arena, DW_ExprStack, 1); + U64 exec_op_count = 0; + + for EachNode(inst, DW_ExprInst, expr.first) { + again:; + + exec_op_count += 1; + if (exec_op_count > exec_op_limit) { + Assert(0 && "reached opcode exec limit on the expression"); + result = DW_ExprEvalResult_ExecOpLimitReached; + goto exit; + } + + U64 pop_count = dw_pop_count_from_expr_op(inst->opcode); + if (pop_count > stack->count) { + Assert(0 && "not enough values on the stack to evaluate the instruction"); + goto exit; + } + + switch (inst->opcode) { + case DW_ExprOp_Nop: {} break; + + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: + case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: + case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: + case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: + case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: + case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: + case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: + case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U8, .u8 = inst->opcode - DW_ExprOp_Lit0 }); + } break; + + case DW_ExprOp_Const1U: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U8, .u8 = inst->operands[0].u8 }); } break; + case DW_ExprOp_Const2U: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U16, .u16 = inst->operands[0].u16 }); } break; + case DW_ExprOp_Const4U: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U32, .u32 = inst->operands[0].u32 }); } break; + case DW_ExprOp_Const8U: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U64, .u64 = inst->operands[0].u64 }); } break; + case DW_ExprOp_Const1S: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_S8, .s8 = inst->operands[0].s8 }); } break; + case DW_ExprOp_Const2S: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_S16, .s16 = inst->operands[0].s16 }); } break; + case DW_ExprOp_Const4S: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_S32, .s32 = inst->operands[0].s32 }); } break; + case DW_ExprOp_Const8S: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_S64, .s64 = inst->operands[0].s64 }); } break; + case DW_ExprOp_ConstU: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U64, .u64 = inst->operands[0].u64 }); } break; + case DW_ExprOp_ConstS: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_S64, .s64 = inst->operands[0].s64 }); } break; + case DW_ExprOp_Addr: { dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_Addr, .addr = inst->operands[0].u64 }); } break; + + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: + case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: + case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: + case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: + case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: + case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: + case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: + case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: + { + DW_Reg reg_dw_id = inst->opcode - DW_ExprOp_Reg0; + U64 reg_size = dw_reg_size_from_code(arch, reg_dw_id); + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_dw_id); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U8 *reg_value = push_array(scratch.arena, U8, reg_size); + if(!arch_reg_block_read_range(arch_info, reg_block, r1u16(reg_rng.min, reg_rng.min + reg_size), reg_value)) + { + goto exit; + } + dw_expr_stack_push_unsigned(scratch.arena, stack, reg_value, reg_size); + }break; + + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: + case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: + case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: + case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: + case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: + case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: + case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: + case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: + { + DW_Reg reg_dw_id = inst->opcode - DW_ExprOp_BReg0; + U64 reg_size = dw_reg_size_from_code(arch, reg_dw_id); + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_dw_id); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + AssertAlways(reg_size <= byte_size_from_arch(arch)); + + U64 reg_value = 0; + if(!arch_reg_block_read_range(arch_info, reg_block, r1u16(reg_rng.min, reg_rng.min + reg_size), ®_value)) + { + goto exit; + } + + U64 addr = (U64)((S64)reg_value + inst->operands[0].s64); + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_Addr, .addr = addr}); + }break; + + case DW_ExprOp_RegX: + { + DW_Reg reg_dw_id = inst->operands[0].u64; + U64 reg_size = dw_reg_size_from_code(arch, reg_dw_id); + U8 *reg_value = push_array(scratch.arena, U8, reg_size); + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_dw_id); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + if(!arch_reg_block_read_range(arch_info, reg_block, r1u16(reg_rng.min, reg_rng.min + reg_size), reg_value)) + { + goto exit; + } + dw_expr_stack_push_unsigned(scratch.arena, stack, reg_value, reg_size); + }break; + + case DW_ExprOp_BRegX: + { + DW_Reg reg_dw_id = (DW_Reg)inst->operands[0].u64; + U64 reg_size = dw_reg_size_from_code(arch, reg_dw_id); + AssertAlways(reg_size <= byte_size_from_arch(arch)); + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_dw_id); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + + U64 reg_value = 0; + if(!arch_reg_block_read_range(arch_info, reg_block, r1u16(reg_rng.min, reg_rng.min + reg_size), ®_value)) + { + goto exit; + } + + U64 addr = (U64)((S64)reg_value + inst->operands[1].s64); + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_Addr, .addr = addr}); + }break; + + case DW_ExprOp_FBReg: { + U64 addr = frame_base + inst->operands[0].s64; + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_Addr, .addr = addr}); + } break; + + case DW_ExprOp_ImplicitValue: { + if (inst->operands[0].block.size <= sizeof(U512)) { + dw_expr_stack_push_unsigned(scratch.arena, stack, inst->operands[0].block.str, inst->operands[0].block.size); + } else { + NotImplemented; + } + } break; + + case DW_ExprOp_Piece: { + B32 is_undefined = stack->count == 0 || (inst->prev && inst->prev->opcode == DW_ExprOp_Piece); + if (is_undefined) { + dw_piece_list_push(arena, &pieces, (DW_Piece){ .kind = DW_PieceKind_Undefined, .bit_size = inst->operands[0].u64 * 8 }); + } else { + DW_ExprValue top = dw_expr_stack_pop(stack); + + String8 value; + + // piece is a memory reference + if (top.type == DW_ExprValueType_Addr) { + U64 value_size = inst->operands[0].u64; + U8 *value_buffer = push_array(arena, U8, value_size); + MachineOpResult read_result = mem_read(top.addr, value_buffer, value_size, mem_read_ud); + if (read_result != MachineOpResult_Ok) { Assert(0 && "failed to read piece memory referece"); goto exit; } + } + // piece is a value + else { + value = dw_string_from_expr_value(arena, arch, top); + } + + if (inst->operands[0].u64 > value.size) { Assert(0 && "out of bounds size in the piece opcode"); goto exit; } + dw_piece_list_push(arena, &pieces, (DW_Piece){ .kind = DW_PieceKind_Value, .bit_size = inst->operands[0].u64 * 8, .value = value.str }); + } + } break; + + case DW_ExprOp_BitPiece: { + B32 is_undefined = stack->count == 0 || (inst->prev && inst->prev->opcode == DW_ExprOp_Piece); + if (is_undefined) { + dw_piece_list_push(arena, &pieces, (DW_Piece){ .kind = DW_PieceKind_Undefined, .bit_size = inst->operands[0].u64 }); + } else { + String8 value; + if (dw_expr_stack_peek(stack).type == DW_ExprValueType_Addr) { + NotImplemented; + } else { + value = dw_string_from_expr_value(arena, arch, dw_expr_stack_pop(stack)); + } + if (inst->operands[0].u64 > value.size * 8) { Assert(0 && "out of bounds size in piece opcode"); goto exit; } + dw_piece_list_push(arena, &pieces, (DW_Piece){ .kind = DW_PieceKind_Value, .bit_size = inst->operands[0].u64, .value = value.str }); + } + } break; + + case DW_ExprOp_Pick: { + DW_ExprValueNode *src = dw_expr_stack_pick(stack, inst->operands[0].u8); + if (src) { + dw_expr_stack_push(scratch.arena, stack, src->v); + } else { + Assert(0 && "out of bounds stack index"); + goto exit; + } + } break; + + case DW_ExprOp_Over: { + DW_ExprValueNode *src = dw_expr_stack_pick(stack, 1); + if (src) { + dw_expr_stack_push(scratch.arena, stack, src->v); + } else { + Assert(0 && "out of bounds stack index"); + goto exit; + } + } break; + + case DW_ExprOp_PlusUConst: { + DW_ExprValue lhs = dw_expr_stack_pop(stack); + DW_ExprValue rhs = { .type = DW_ExprValueType_U64, .u64 = inst->operands[0].u64 }; + DW_ExprValue sum = dw_expr_add(lhs, rhs); + dw_expr_stack_push(scratch.arena, stack, sum); + } break; + + case DW_ExprOp_Skip: { + DW_ExprInst *i = dw_expr_inst_from_delta(inst, inst->operands[0].s16); + + if (i == 0) { + Assert(0 && "seeking to an invalid offset"); + goto exit; + } + + inst = i; + goto again; + } + + case DW_ExprOp_Bra: { + DW_ExprValue cond = dw_expr_stack_pop(stack); + + if (cond.type != DW_ExprValueType_S16) { + Assert(0 && "unexpected value"); + goto exit; + } + + DW_ExprInst *i = dw_expr_inst_from_delta(inst, inst->operands[0].s16); + + if (i == 0) { + Assert(0 && "seeking to an invalid offset"); + goto exit; + } + + inst = i; + goto again; + } + + case DW_ExprOp_Call2: + case DW_ExprOp_Call4: + case DW_ExprOp_CallRef: { + NotImplemented; + } break; + + case DW_ExprOp_GNU_Convert: + case DW_ExprOp_Convert: { + if (inst->operands[0].u64 == 0) { + DW_ExprValue value = dw_expr_stack_pop(stack); + DW_ExprValue new_value = dw_expr_cast(value, DW_ExprValueType_Generic); + dw_expr_stack_push(scratch.arena, stack, new_value); + } else { + NotImplemented; + } + } break; + + case DW_ExprOp_Reinterpret: { + if (inst->operands[0].u64 == 0) { + DW_ExprValue value = dw_expr_stack_pop(stack); + DW_ExprValue new_value = dw_expr_cast(value, DW_ExprValueType_Generic); + dw_expr_stack_push(scratch.arena, stack, new_value); + } else { + NotImplemented; + } + } break; + + case DW_ExprOp_GNU_ParameterRef: { NotImplemented; } break; + case DW_ExprOp_GNU_DerefType: { NotImplemented; } break; + case DW_ExprOp_DerefType: { NotImplemented; } break; + case DW_ExprOp_ConstType: { NotImplemented; } break; + case DW_ExprOp_GNU_ConstType: { NotImplemented; } break; + case DW_ExprOp_RegvalType: { NotImplemented; } break; + + case DW_ExprOp_EntryValue: + case DW_ExprOp_GNU_EntryValue: + { + DW_Expr entry_value_expr = dw_expr_from_data(scratch.arena, format, byte_size_from_arch(arch), inst->operands[0].block); + DW_ExprValue entry_value; + result = dw_eval_expr(scratch.arena, arch, format, frame_base, cfa, tls, exec_op_limit, entry_value_expr, reg_block, mem_read, mem_read_ud, &entry_value); + if (result != DW_ExprEvalResult_Ok) { goto exit; } + dw_expr_stack_push(scratch.arena, stack, entry_value); + } break; + + case DW_ExprOp_Addrx: { NotImplemented; } break; + + case DW_ExprOp_CallFrameCfa: { + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_U64, .u64 = cfa }); + } break; + + case DW_ExprOp_PushObjectAddress: { NotImplemented; } break; + + case DW_ExprOp_Plus: { dw_expr_stack_push(scratch.arena, stack, dw_expr_add(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Minus: { dw_expr_stack_push(scratch.arena, stack, dw_expr_minus(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Div: { dw_expr_stack_push(scratch.arena, stack, dw_expr_div(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Mul: { dw_expr_stack_push(scratch.arena, stack, dw_expr_mul(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Mod: { dw_expr_stack_push(scratch.arena, stack, dw_expr_mod(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + + case DW_ExprOp_Eq: { dw_expr_stack_push(scratch.arena, stack, dw_expr_eq(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Ge: { dw_expr_stack_push(scratch.arena, stack, dw_expr_ge(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Gt: { dw_expr_stack_push(scratch.arena, stack, dw_expr_gt(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Le: { dw_expr_stack_push(scratch.arena, stack, dw_expr_le(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Lt: { dw_expr_stack_push(scratch.arena, stack, dw_expr_lt(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Ne: { dw_expr_stack_push(scratch.arena, stack, dw_expr_ne(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + + case DW_ExprOp_Xor: { dw_expr_stack_push(scratch.arena, stack, dw_expr_xor(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_And: { dw_expr_stack_push(scratch.arena, stack, dw_expr_and(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Or: { dw_expr_stack_push(scratch.arena, stack, dw_expr_or(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Shl: { dw_expr_stack_push(scratch.arena, stack, dw_expr_shl(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Shr: { dw_expr_stack_push(scratch.arena, stack, dw_expr_shr(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Shra: { dw_expr_stack_push(scratch.arena, stack, dw_expr_shra(dw_expr_stack_pop(stack), dw_expr_stack_pop(stack))); } break; + + case DW_ExprOp_Abs: { dw_expr_stack_push(scratch.arena, stack, dw_expr_abs(dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Neg: { dw_expr_stack_push(scratch.arena, stack, dw_expr_neg(dw_expr_stack_pop(stack))); } break; + case DW_ExprOp_Not: { dw_expr_stack_push(scratch.arena, stack, dw_expr_not(dw_expr_stack_pop(stack))); } break; + + case DW_ExprOp_Dup: { + dw_expr_stack_push(scratch.arena, stack, dw_expr_stack_peek(stack)); + } break; + + case DW_ExprOp_Rot: { + DW_ExprValue first = dw_expr_stack_pop(stack); + DW_ExprValue second = dw_expr_stack_pop(stack); + DW_ExprValue third = dw_expr_stack_pop(stack); + dw_expr_stack_push(scratch.arena, stack, first); // -> third + dw_expr_stack_push(scratch.arena, stack, third); // -> second + dw_expr_stack_push(scratch.arena, stack, second); // -> first + } break; + + case DW_ExprOp_Swap: { + DW_ExprValue first = dw_expr_stack_pop(stack); + DW_ExprValue second = dw_expr_stack_pop(stack); + dw_expr_stack_push(scratch.arena, stack, first); // -> second + dw_expr_stack_push(scratch.arena, stack, second); // -> first + } break; + + case DW_ExprOp_Drop: { + dw_expr_stack_pop(stack); + } break; + + case DW_ExprOp_Deref: { + DW_ExprValue value = dw_expr_stack_pop(stack); + + // expression must be of an integral type + if (!DW_ExprValueType_IsInt(value.type)) { goto exit; } + + // treat value as an address + DW_ExprValue addr = dw_expr_cast(value, DW_ExprValueType_Addr); + + // read pointer size from the address + U64 addr_size = byte_size_from_arch(arch); + U8 *generic_value = push_array(scratch.arena, U8, addr_size); + MachineOpResult read_result = mem_read(addr.addr, generic_value, addr_size, mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + + // push generic data + dw_expr_stack_push(scratch.arena, stack, (DW_ExprValue){ .type = DW_ExprValueType_Generic, .generic = str8(generic_value, addr_size) }); + } break; + + case DW_ExprOp_StackValue: { + stack->top->v.type = dw_expr_unsigned_value_type_from_bit_size(bit_size_from_arch(arch)); + } break; + + case DW_ExprOp_GNU_PushTlsAddress: + case DW_ExprOp_FormTlsAddress: { + DW_ExprValue tls_off = dw_expr_stack_pop(stack); + DW_ExprValue tls_base = { .type = DW_ExprValueType_Addr, .addr = tls }; + DW_ExprValue tls_addr = dw_expr_add(tls_base, tls_off); + dw_expr_stack_push(scratch.arena, stack, tls_addr); + } break; + } + } + + // composite value + if (pieces.count > 0) { +#if 0 + U64 total_bit_size = 0; + for EachNode (n, DW_PieceNode, pieces.first) { + total_bit_size += n->v.bit_size; + } + + U64 value_size = CeilIntegerDiv(total_bit_size, 8); + U8 *value = push_array(arena, U8, value_size); + Rng1U64 *ranges = push_array(arena, Rng1U64, pieces.count); + U64 *offsets = push_array(arena, U64, pieces.count); + U64 value_idx = 0; + U64 value_cursor = 0; + U64 piece_cursor = 0; + for EachNode(n, DW_PieceNode, pieces.first) { + if (n->v.kind == DW_PieceKind_Value) { + ranges[value_idx] = r1u64(piece_cursor, piece_cursor + n->v.bit_size); + offsets[value_idx] = value_cursor; + for (U64 i = 0; i < n->v.bit_size; i += 8) { + U64 to_copy = Min(8, n->v.bit_size - i); + if (value_cursor % 8 == 0) { + value[value_cursor / 8] = n->v.value[i]; + } else { + value[value_cursor / 8] |= n->v.value[i] << (value_cursor % 8); + value[AlignPow2(value_cursor / 8, 8)] |= n->v.value[i] >> (value_cursor % 8); + } + value_cursor += to_copy; + } + value_idx += 1; + } + piece_cursor += n->v.bit_size; + } + + value_out->type = DW_ExprValueType_Generic; + value_out->ranges = (Rng1U64Array){ .count = pieces.count, .v = ranges }; + value_out->offsets = offsets; + value_out->generic = str8(value, value_size); +#else + NotImplemented; +#endif + } + // scalar + else { + if (stack->top) { + *value_out = stack->top->v; + if (value_out->type == DW_ExprValueType_Generic) { + value_out->generic = push_str8_copy(arena, value_out->generic); + } + + Rng1U64 *range = push_array(arena, Rng1U64, 1); + *range = r1u64(0, max_U64); + value_out->ranges = (Rng1U64Array){ .count = 1, .v = range }; + value_out->offsets = push_array(arena, U64, 1); + } else { + MemoryZeroStruct(value_out); + } + } + + result = DW_ExprEvalResult_Ok; + exit:; + scratch_end(scratch); + return result; +} diff --git a/obsolete/dwarf/dwarf_expr_old.h b/obsolete/dwarf/dwarf_expr_old.h new file mode 100644 index 00000000..432b5b22 --- /dev/null +++ b/obsolete/dwarf/dwarf_expr_old.h @@ -0,0 +1,233 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_EXPR_H +#define DWARF_EXPR_H + +//////////////////////////////// +// evaluator + +#define DW_ExprValueType_IsSigned(x) ((x) == DW_ExprValueType_S8 || (x) == DW_ExprValueType_S16 || (x) == DW_ExprValueType_S32 || (x) == DW_ExprValueType_S64 || (x) == DW_ExprValueType_S128 || (x) == DW_ExprValueType_S256 || (x) == DW_ExprValueType_S512) +#define DW_ExprValueType_IsUnsigned(x) ((x) == DW_ExprValueType_U8 || (x) == DW_ExprValueType_U16 || (x) == DW_ExprValueType_U32 || (x) == DW_ExprValueType_U64 || (x) == DW_ExprValueType_U128 || (x) == DW_ExprValueType_U256 || (x) == DW_ExprValueType_U512) +#define DW_ExprValueType_IsFloat(x) ((x) == DW_ExprValueType_F32 || (x) == DW_ExprValueType_F64) +#define DW_ExprValueType_IsInt(x) (DW_ExprValueType_IsSigned(x) || DW_ExprValueType_IsUnsigned(x) || (x) == DW_ExprValueType_Addr) +typedef enum +{ + DW_ExprValueType_Generic, + DW_ExprValueType_U8, + DW_ExprValueType_U16, + DW_ExprValueType_U32, + DW_ExprValueType_U64, + DW_ExprValueType_U128, + DW_ExprValueType_U256, + DW_ExprValueType_U512, + DW_ExprValueType_S8, + DW_ExprValueType_S16, + DW_ExprValueType_S32, + DW_ExprValueType_S64, + DW_ExprValueType_S128, + DW_ExprValueType_S256, + DW_ExprValueType_S512, + DW_ExprValueType_F32, + DW_ExprValueType_F64, + DW_ExprValueType_Addr, + DW_ExprValueType_Implicit, + DW_ExprValueType_Bool, +} DW_ExprValueType; + +typedef S8 DW_ExprBool; + +typedef struct DW_ExprValue +{ + DW_ExprValueType type; + Rng1U64Array ranges; + U64 *offsets; + union { + U8 u8; + U16 u16; + U32 u32; + U64 u64; + U128 u128; + U256 u256; + U512 u512; + S8 s8; + S16 s16; + S32 s32; + S64 s64; + F32 f32; + F64 f64; + U64 addr; + DW_ExprBool boolean; + String8 implicit; + String8 generic; + }; +} DW_ExprValue; + +typedef struct DW_ExprValueNode +{ + DW_ExprValue v; + struct DW_ExprValueNode *next; +} DW_ExprValueNode; + +typedef enum +{ + DW_PieceKind_Null, + DW_PieceKind_Value, + DW_PieceKind_Undefined, +} DW_PieceKind; + +typedef struct DW_Piece +{ + DW_PieceKind kind; + U64 bit_size; + U8 *value; +} DW_Piece; + +typedef struct DW_PieceNode +{ + DW_Piece v; + struct DW_PieceNode *next; +} DW_PieceNode; + +typedef struct DW_PieceList +{ + U64 count; + DW_PieceNode *first; + DW_PieceNode *last; +} DW_PieceList; + +typedef struct DW_ExprStack +{ + U64 count; + DW_ExprValueNode *top; +} DW_ExprStack; + +typedef enum +{ + DW_ExprEvalResult_Fail, + DW_ExprEvalResult_Ok, + DW_ExprEvalResult_Maybe, + DW_ExprEvalResult_ExecOpLimitReached, +} DW_ExprEvalResult; + +//////////////////////////////// +// encoder + +typedef enum +{ + DW_ExprEncType_Null, + DW_ExprEncType_Op, + DW_ExprEncType_U8, + DW_ExprEncType_U16, + DW_ExprEncType_U32, + DW_ExprEncType_U64, + DW_ExprEncType_S8, + DW_ExprEncType_S16, + DW_ExprEncType_S32, + DW_ExprEncType_S64, + DW_ExprEncType_ULEB128, + DW_ExprEncType_SLEB128, + DW_ExprEncType_Addr, + DW_ExprEncType_Block, + DW_ExprEncType_DwarfUInt, + DW_ExprEncType_Label, + DW_ExprEncType_DeclLabel, +} DW_ExprEncType; + +typedef struct DW_ExprEnc +{ + DW_ExprEncType type; + union { + DW_ExprOp op; + U8 u8; + U16 u16; + U32 u32; + U64 u64; + S8 s8; + S16 s16; + S32 s32; + S64 s64; + U64 addr; + String8 block; + String8 label; + }; +} DW_ExprEnc; + +#define DW_ExprEnc_Op(v) { .type = DW_ExprEncType_Op, .op = DW_ExprOp_##v } +#define DW_ExprEnc_U8(v) { .type = DW_ExprEncType_U8, .u8 = v } +#define DW_ExprEnc_U16(v) { .type = DW_ExprEncType_U16, .u16 = v } +#define DW_ExprEnc_U32(v) { .type = DW_ExprEncType_U32, .u32 = v } +#define DW_ExprEnc_U64(v) { .type = DW_ExprEncType_U64, .u64 = v } +#define DW_ExprEnc_S8(v) { .type = DW_ExprEncType_S8, .s8 = v } +#define DW_ExprEnc_S16(v) { .type = DW_ExprEncType_S16, .s16 = v } +#define DW_ExprEnc_S32(v) { .type = DW_ExprEncType_S32, .s32 = v } +#define DW_ExprEnc_S64(v) { .type = DW_ExprEncType_S64, .s64 = v } +#define DW_ExprEnc_ULEB128(v) { .type = DW_ExprEncType_ULEB128, .u64 = v } +#define DW_ExprEnc_SLEB128(v) { .type = DW_ExprEncType_SLEB128, .s64 = v } +#define DW_ExprEnc_Addr(v) { .type = DW_ExprEncType_Addr, .addr = v } +#define DW_ExprEnc_Block(v) { .type = DW_ExprEncType_Block, .block = v } +#define DW_ExprEnc_UInt(v) { .type = DW_ExprEncType_DwarfUInt, .u64 = v } +#define DW_ExprEnc_Label(v) { .type = DW_ExprEncType_Label, .label = str8_lit_comp(v) } +#define DW_ExprEnc_DeclLabel(v) { .type = DW_ExprEncType_DeclLabel, .label = str8_lit_comp(v) } + +//////////////////////////////// + +// pieces +internal DW_PieceNode * dw_piece_list_push(Arena *arena, DW_PieceList *list, DW_Piece v); + +// size -> type +internal DW_ExprValueType dw_expr_unsigned_value_type_from_bit_size(U64 bit_size); +internal DW_ExprValueType dw_expr_signed_value_type_from_bit_size(U64 bit_size); +internal DW_ExprValueType dw_expr_float_type_from_bit_size(U64 bit_size); + +// type -> size +internal U64 dw_expr_byte_size_from_value_type(U64 addr_size, DW_ExprValueType k); + +// typer +internal DW_ExprValueType dw_expr_pick_common_value_type(DW_ExprValueType rhs, DW_ExprValueType lhs); +internal DW_ExprValueType dw_expr_pick_common_compar_value_type(DW_ExprValueType rhs, DW_ExprValueType lhs); +internal DW_ExprValue dw_expr_cast(DW_ExprValue value, DW_ExprValueType type); + +// arithmetic operators +internal DW_ExprValue dw_expr_add (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_minus(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_mul (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_div (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_mod (DW_ExprValue rhs, DW_ExprValue lhs); + +// comparison operators +internal DW_ExprValue dw_expr_eq(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_ge(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_gt(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_le(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_lt(DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_ne(DW_ExprValue rhs, DW_ExprValue lhs); + +// bitwise operators +internal DW_ExprValue dw_expr_xor (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_and (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_or (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_shl (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_shr (DW_ExprValue rhs, DW_ExprValue lhs); +internal DW_ExprValue dw_expr_shra(DW_ExprValue rhs, DW_ExprValue lhs); + +// unary operators +internal DW_ExprValue dw_expr_abs(DW_ExprValue value); +internal DW_ExprValue dw_expr_neg(DW_ExprValue value); +internal DW_ExprValue dw_expr_not(DW_ExprValue value); + +// stack +internal DW_ExprValueNode * dw_expr_stack_push(Arena *arena, DW_ExprStack *stack, DW_ExprValue value); +internal DW_ExprValueNode * dw_expr_stack_push_unsigned(Arena *arena, DW_ExprStack *stack, void *value, U64 value_size); +internal DW_ExprValue dw_expr_stack_pop(DW_ExprStack *stack); +internal DW_ExprValue dw_expr_stack_peek(DW_ExprStack *stack); +internal DW_ExprValueNode * dw_expr_stack_pick(DW_ExprStack *stack, U64 idx); + +// value helpers +internal String8 dw_string_from_expr_value(Arena *arena, U64 addr_size, DW_ExprValue v); + +// evaluator +internal DW_ExprEvalResult dw_eval_expr(Arena *arena, Arch arch, DW_Format format, U64 frame_base, U64 cfa, U64 tls_base, U64 op_limit, DW_Expr expr, void *reg_block, MachineOp_MemRead *mem_read, void *mem_read_ud, DW_ExprValue *value_out); + +#endif //DWARF_EXPR_H + diff --git a/obsolete/dwarf/dwarf_parse_old.c b/obsolete/dwarf/dwarf_parse_old.c new file mode 100644 index 00000000..a8898477 --- /dev/null +++ b/obsolete/dwarf/dwarf_parse_old.c @@ -0,0 +1,3331 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal U64 +dw_hash_from_string(String8 string) +{ + XXH64_hash_t hash64 = XXH3_64bits(string.str, string.size); + return hash64; +} + +internal U64 +str8_deserial_read_dwarf_packed_size(String8 string, U64 off, U64 *size_out) +{ + U64 bytes_read = 0; + U32 first_four_bytes; + if (str8_deserial_read_struct(string, off, &first_four_bytes) == sizeof(first_four_bytes)) { + if (first_four_bytes == max_U32) { + if (str8_deserial_read_struct(string, off+sizeof(U32), size_out) == sizeof(U64)) { + bytes_read = sizeof(U32) + sizeof(U64); + } + } else { + *size_out = first_four_bytes; + bytes_read = sizeof(U32); + } + } + return bytes_read; +} + +internal U64 +str8_deserial_read_dwarf_uint(String8 string, U64 off, DW_Format format, U64 *uint_out) +{ + U64 bytes_read = 0; + switch (format) { + case DW_Format_Null: break; + case DW_Format_32Bit: { + *uint_out &= (U64)max_U32; + bytes_read = str8_deserial_read(string, off, uint_out, sizeof(U32), sizeof(U32)); + } break; + case DW_Format_64Bit: { + bytes_read = str8_deserial_read_struct(string, off, uint_out); + } break; + } + return bytes_read; +} + +internal U64 +str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out) +{ + U64 value = 0; + U64 shift = 0; + U64 cursor = off; + for(;;) + { + U8 byte = 0; + U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); + if(bytes_read != sizeof(byte)) + { + break; + } + U8 val = byte & 0x7fu; + value |= ((U64)val) << shift; + cursor += bytes_read; + shift += 7u; + if((byte & 0x80u) == 0) + { + break; + } + } + if(value_out != 0) + { + *value_out = value; + } + U64 bytes_read = cursor - off; + return bytes_read; +} + +internal U64 +str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out) +{ + U64 value = 0; + U64 shift = 0; + U64 cursor = off; + for(;;) + { + U8 byte; + U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); + if(bytes_read != sizeof(byte)) + { + break; + } + U8 val = byte & 0x7fu; + value |= ((U64)val) << shift; + cursor += bytes_read; + shift += 7u; + if((byte & 0x80u) == 0) + { + if(shift < sizeof(value) * 8 && (byte & 0x40u) != 0) + { + value |= -(S64)(1ull << shift); + } + break; + } + } + if(value_out != 0) + { + *value_out = value; + } + U64 bytes_read = cursor - off; + return bytes_read; +} + +internal U64 +str8_deserial_read_uleb128_array(Arena *arena, String8 string, U64 off, U64 count, U64 **arr_out) +{ + Temp temp = temp_begin(arena); + + U64 *arr = push_array(arena, U64, count); + U64 i, cursor; + for (i = 0, cursor = off; i < count; ++i) { + U64 read_size = str8_deserial_read_uleb128(string, cursor, &arr[i]); + if (read_size == 0) { + break; + } + cursor += read_size; + } + + U64 bytes_read = 0; + if (i == count) { + *arr_out = arr; + bytes_read = cursor - off; + } else { + temp_end(temp); + *arr_out = 0; + } + + return bytes_read; +} + +internal U64 +str8_deserial_read_sleb128_array(Arena *arena, String8 string, U64 off, U64 count, S64 **arr_out) +{ + Temp temp = temp_begin(arena); + + S64 *arr = push_array(arena, S64, count); + U64 i, cursor; + for (i = 0, cursor = off; i < count; ++i) { + U64 read_size = str8_deserial_read_sleb128(string, cursor, &arr[i]); + if (read_size == 0) { + break; + } + cursor += read_size; + } + + U64 bytes_read = 0; + if (i == count) { + *arr_out = arr; + bytes_read = cursor - off; + } else { + temp_end(temp); + *arr_out = 0; + } + + return bytes_read; +} + +internal DW_SectionKind +dw_section_kind_from_string(String8 string) +{ + DW_SectionKind s = DW_Section_Null; +#define X(_K,_L,_M,_W) \ +if (str8_match_lit(_L, string, 0)) { s = DW_Section_##_K; } \ +if (str8_match_lit(_M, string, 0)) { s = DW_Section_##_K; } + DW_SectionKind_XList +#undef X + return s; +} + +internal DW_SectionKind +dw_section_dwo_kind_from_string(String8 string) +{ + DW_SectionKind s = DW_Section_Null; +#define X(_K,_L,_M,_W) if (str8_match_lit(_W, string, 0)) { s = DW_Section_##_K; } + DW_SectionKind_XList +#undef X + return s; +} + +internal Rng1U64List +dw_unit_ranges_from_data(Arena *arena, String8 data) +{ + Rng1U64List result = {0}; + + for (U64 cursor = 0; cursor < data.size; ) { + U64 start = cursor; + + // read unit size + U64 size; + U64 size_size = str8_deserial_read_dwarf_packed_size(data, cursor, &size); + if (size_size == 0) { break; } + cursor += size_size; + + // is unit size valid? + if (cursor + size > data.size) { break; } + cursor += size; + + // push unit range + if (size > 0) { + rng1u64_list_push(arena, &result, rng_1u64(start, cursor)); + } + } + + return result; +} + +internal Rng1U64Array +dw_unit_ranges_from_data_arr(Arena *arena, String8 data) +{ + Temp scratch = scratch_begin(&arena, 1); + Rng1U64List list = dw_unit_ranges_from_data(scratch.arena, data); + Rng1U64Array arr = rng1u64_array_from_list(arena, &list); + scratch_end(scratch); + return arr; +} + +internal U64 +dw_read_list_unit_header_addr(String8 unit_data, DW_ListUnit *lu_out) +{ + U64 header_size = 0; + + U64 unit_length = 0; + U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); + + if (unit_length_size) { + DW_Version version = DW_Version_Null; + U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); + + if (version_size) { + if (version >= DW_Version_5) { + U8 address_size = 0; + U64 address_size_size = str8_deserial_read_struct(unit_data, + unit_length_size + version_size, + &address_size); + + if (address_size_size && address_size) { + U8 segment_selector_size = 0; + U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, + unit_length_size + version_size + address_size_size, + &segment_selector_size); + if (segment_selector_size_size) { + header_size = unit_length_size + version_size + address_size_size + segment_selector_size_size; + + lu_out->version = version; + lu_out->segment_selector_size = segment_selector_size; + lu_out->address_size = address_size; + lu_out->entry_size = segment_selector_size + address_size; + lu_out->entries = str8_skip(unit_data, header_size); + } + } + } + } + } + + return header_size; +} + +internal U64 +dw_read_list_unit_header_str_offsets(String8 unit_data, DW_ListUnit *lu_out) +{ + U64 header_size = 0; + + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(unit_data, 0, &first_four_bytes) != sizeof(first_four_bytes)) { goto exit; } + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + U64 unit_length = 0; + U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); + + if (unit_length_size) { + DW_Version version = DW_Version_Null; + U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); + + if (version >= DW_Version_5) { + U16 padding = 0; + U64 padding_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size, &padding); + + if (padding_size && padding == 0) { + header_size = unit_length_size + version_size + padding_size; + + lu_out->version = version; + lu_out->address_size = 0; + lu_out->segment_selector_size = 0; + lu_out->entry_size = dw_size_from_format(format); + lu_out->entries = str8_skip(unit_data, header_size); + } + } + } + + exit:; + return header_size; +} + +internal U64 +dw_read_list_unit_header_list(String8 unit_data, DW_ListUnit *lu_out) +{ + U64 header_size = 0; + + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(unit_data, 0, &first_four_bytes) != sizeof(first_four_bytes)) { goto exit; } + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + U64 unit_length = 0; + U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); + + if (unit_length_size) { + DW_Version version = DW_Version_Null; + U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); + + if (version >= DW_Version_5) { + U8 address_size = 0; + U64 address_size_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size, &address_size); + + if (address_size_size && address_size > 0) { + U8 segment_selector_size = 0; + U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size + address_size_size, &segment_selector_size); + + if (segment_selector_size_size) { + U32 offset_entry_count = 0; + U64 offset_entry_count_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size + address_size_size + segment_selector_size, &offset_entry_count); + + if (offset_entry_count_size) { + header_size = unit_length_size + version_size + address_size_size + segment_selector_size_size + offset_entry_count_size; + + lu_out->version = version; + lu_out->address_size = address_size; + lu_out->segment_selector_size = segment_selector_size; + lu_out->entry_size = dw_size_from_format(format); + lu_out->entries = str8_skip(unit_data, header_size); + } + } + } + } + } + + exit:; + return header_size; +} + +internal DW_ListUnitInput +dw_list_unit_input_from_input(Arena *arena, DW_Raw *input) +{ + Temp scratch = scratch_begin(&arena, 1); + + DW_ListUnitInput result = {0}; + + DW_Section debug_addr = input->sec[DW_Section_Addr]; + { + String8 data = debug_addr.data; + Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); + + result.addr_ranges = rng1u64_array_from_list(arena, &unit_ranges); + result.addr_count = unit_ranges.count; + result.addrs = push_array(arena, DW_ListUnit, unit_ranges.count); + + for (U64 unit_idx = 0; unit_idx < result.addr_ranges.count; ++unit_idx) { + String8 unit_data = str8_substr(debug_addr.data, result.addr_ranges.v[unit_idx]); + dw_read_list_unit_header_addr(unit_data, &result.addrs[unit_idx]); + } + } + + DW_Section debug_str_offsets = input->sec[DW_Section_StrOffsets]; + { + String8 data = debug_str_offsets.data; + Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); + + result.str_offset_ranges = rng1u64_array_from_list(arena, &unit_ranges); + result.str_offset_count = unit_ranges.count; + result.str_offsets = push_array(arena, DW_ListUnit, unit_ranges.count); + + for (U64 unit_idx = 0; unit_idx < result.str_offset_ranges.count; ++unit_idx) { + String8 unit_data = str8_substr(data, result.str_offset_ranges.v[unit_idx]); + dw_read_list_unit_header_str_offsets(unit_data, &result.str_offsets[unit_idx]); + } + } + + DW_Section debug_rnglists = input->sec[DW_Section_RngLists]; + { + String8 data = debug_rnglists.data; + Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); + + result.rnglist_ranges = rng1u64_array_from_list(arena, &unit_ranges); + result.rnglist_count = unit_ranges.count; + result.rnglists = push_array(arena, DW_ListUnit, unit_ranges.count); + + for (U64 unit_idx = 0; unit_idx < result.rnglist_ranges.count; ++unit_idx) { + String8 unit_data = str8_substr(data, result.rnglist_ranges.v[unit_idx]); + dw_read_list_unit_header_list(unit_data, &result.rnglists[unit_idx]); + } + } + + DW_Section debug_loclists = input->sec[DW_Section_LocLists]; + { + String8 data = debug_loclists.data; + Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); + + result.loclist_ranges = rng1u64_array_from_list(arena, &unit_ranges); + result.loclist_count = unit_ranges.count; + result.loclists = push_array(arena, DW_ListUnit, unit_ranges.count); + + for (U64 unit_idx = 0; unit_idx < result.loclist_ranges.count; ++unit_idx) { + String8 unit_data = str8_substr(data, result.loclist_ranges.v[unit_idx]); + dw_read_list_unit_header_list(unit_data, &result.loclists[unit_idx]); + } + } + + scratch_end(scratch); + return result; +} + +internal U64 +dw_offset_from_list_unit(DW_ListUnit *lu, U64 index) +{ + U64 offset; + U64 entry_off = index * lu->entry_size; + if (entry_off + lu->entry_size <= lu->entries.size) { + offset = 0; + MemoryCopy(&offset, lu->entries.str + entry_off, lu->entry_size); + } else { + offset = max_U64; + } + return offset; +} + +internal U64 +dw_addr_from_list_unit(DW_ListUnit *lu, U64 index) +{ + U64 seg = 0; + U64 addr = max_U64; + U64 entry_count = lu->entries.size / lu->entry_size; + if (index < entry_count) { + U64 seg_off = lu->entry_size * index; + U64 addr_off = seg_off + lu->segment_selector_size; + MemoryCopy(&seg, lu->entries.str + seg_off, lu->segment_selector_size); + MemoryCopy(&addr, lu->entries.str + addr_off, lu->address_size); + // TODO: segment-based addressing + AssertAlways(seg == 0); + } else { + Assert(!"out of bounds index"); + } + return addr; +} + +internal U64 +dw_read_abbrev_tag(String8 data, U64 offset, DW_Abbrev *out_abbrev) +{ + U64 total_bytes_read = 0; + U64 cursor = offset; + + // read tag ID and kind + U64 id = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &id), cursor, exit); + + // is this null terminator? + if (id == 0) { + total_bytes_read = cursor - offset; + MemoryZeroStruct(out_abbrev); + goto exit; + } + + U64 kind = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &kind), cursor, exit); + + // read child flag + U8 has_children = 0; + if (id != 0) { + TryRead(str8_deserial_read_struct(data, cursor, &has_children), cursor, exit); + } + + if (out_abbrev != 0) { + DW_Abbrev abbrev = { .kind = DW_Abbrev_Tag, .sub_kind = kind, .id = id}; + if (has_children) { + abbrev.flags |= DW_AbbrevFlag_HasChildren; + } + *out_abbrev = abbrev; + } + + total_bytes_read = cursor - offset; + exit:; + return total_bytes_read; +} + +internal U64 +dw_read_abbrev_attrib(String8 data, U64 offset, DW_Abbrev *out_abbrev) +{ + U64 total_bytes_read = 0; + U64 cursor = offset; + + // read id and kind + U64 id, kind; + TryRead(str8_deserial_read_uleb128(data, cursor, &id), cursor, exit); + TryRead(str8_deserial_read_uleb128(data, cursor, &kind), cursor, exit); + + // read implicit const + S64 implicit_const = 0; + if (kind == DW_Form_ImplicitConst) { + TryRead(str8_deserial_read_sleb128(data, cursor, &implicit_const), cursor, exit); + } + + if (out_abbrev != 0) { + DW_Abbrev abbrev = { .kind = DW_Abbrev_Attrib, .sub_kind = kind, .id = id }; + if (kind == DW_Form_ImplicitConst) { + abbrev.flags |= DW_AbbrevFlag_HasImplicitConst; + abbrev.implicit_const = implicit_const; + } + *out_abbrev = abbrev; + } + + total_bytes_read = cursor - offset; + exit:; + return total_bytes_read; +} + +internal DW_AbbrevTable +dw_make_abbrev_table(Arena *arena, String8 abbrev_data, U64 abbrev_base) +{ + Temp temp = temp_begin(arena); + DW_AbbrevTable table = {0}; + B32 failed_to_make = 1; + + // count abbrev tags + for (U64 cursor = abbrev_base; cursor < abbrev_data.size; table.count += 1) { + DW_Abbrev tag; + TryRead(dw_read_abbrev_tag(abbrev_data, cursor, &tag), cursor, exit); + if (tag.id == 0) { break; } + + for (; cursor < abbrev_data.size; ) { + DW_Abbrev attrib; + TryRead(dw_read_abbrev_attrib(abbrev_data, cursor, &attrib), cursor, exit); + if(attrib.id == 0) { break; } + } + } + + // alloc entries + table.entries = push_array(arena, DW_AbbrevTableEntry, table.count); + table.count = 0; + + // fill out the table + for (U64 cursor = abbrev_base; cursor < abbrev_data.size;) { + U64 tag_abbrev_off = cursor; + + DW_Abbrev tag = {0}; + TryRead(dw_read_abbrev_tag(abbrev_data, cursor, &tag), cursor, exit); + if (tag.id == 0) { break; } + + // push new entry + table.entries[table.count].id = tag.id; + table.entries[table.count].off = tag_abbrev_off; + table.count += 1; + + for (; cursor < abbrev_data.size ;) { + DW_Abbrev attrib = {0}; + TryRead(dw_read_abbrev_attrib(abbrev_data, cursor, &attrib), cursor, exit); + if (attrib.id == 0) { break; } + } + } + + failed_to_make = 0; + exit:; + if (failed_to_make) { + MemoryZeroStruct(&table); + temp_end(temp); + } + return table; +} + +internal U64 +dw_abbrev_offset_from_abbrev_id(DW_AbbrevTable table, U64 abbrev_id) +{ + U64 abbrev_offset = max_U64; + if (table.count > 0) { + for (S64 l = 0, r = (S64)table.count - 1; l <= r; ) { + S64 m = l + (r - l) / 2; + if (abbrev_id > table.entries[m].id) { + l = m + 1; + } else if (abbrev_id < table.entries[m].id) { + r = m - 1; + } else { + abbrev_offset = table.entries[m].off; + break; + } + } + } + return abbrev_offset; +} + +internal B32 +dw_read_form(String8 data, + DW_Version version, + DW_Format unit_format, + U64 address_size, + DW_FormKind form_kind, + S64 implicit_const, + DW_Form *form_out, + U64 *bytes_read_out) +{ + B32 is_ok = 0; + U64 cursor = 0; + DW_Form form = {0}; + switch (form_kind) { + case DW_Form_Null: break; + case DW_Form_Addr: { + TryRead(str8_deserial_read_block(data, cursor, address_size, &form.addr), cursor, exit); + } break; + case DW_Form_Block2: { + U16 size = 0; + TryRead(str8_deserial_read_struct(data, cursor, &size), cursor, exit); + TryRead(str8_deserial_read_block(data, cursor, size, &form.block), cursor, exit); + } break; + case DW_Form_Block4: { + U32 size = 0; + TryRead(str8_deserial_read_struct(data, cursor, &size), cursor, exit); + TryRead(str8_deserial_read_block(data, cursor + cursor, size, &form.block), cursor, exit); + } break; + case DW_Form_Data2: { + TryRead(str8_deserial_read_block(data, cursor, sizeof(U16), &form.data), cursor, exit); + } break; + case DW_Form_Data4: { + TryRead(str8_deserial_read_block(data, cursor, sizeof(U32), &form.data), cursor, exit); + } break; + case DW_Form_Data8: { + TryRead(str8_deserial_read_block(data, cursor, sizeof(U64), &form.data), cursor, exit); + } break; + case DW_Form_String: { + TryRead(str8_deserial_read_cstr(data, cursor, &form.string), cursor, exit); + } break; + case DW_Form_Block: { + U64 size = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &size), cursor, exit); + TryRead(str8_deserial_read_block(data, cursor, size, &form.block), cursor, exit); + } break; + case DW_Form_Block1: { + U8 size = 0; + TryRead(str8_deserial_read_struct(data, cursor, &size), cursor, exit); + TryRead(str8_deserial_read_block(data, cursor, size, &form.block), cursor, exit); + } break; + case DW_Form_Data1: { + TryRead(str8_deserial_read_block(data, cursor, sizeof(U8), &form.data), cursor, exit); + } break; + case DW_Form_Flag: { + TryRead(str8_deserial_read_struct(data, cursor, &form.flag), cursor, exit); + } break; + case DW_Form_SData: { + TryRead(str8_deserial_read_sleb128(data, cursor, &form.sdata), cursor, exit); + } break; + case DW_Form_UData: { + TryRead(str8_deserial_read_uleb128(data, cursor, &form.udata), cursor, exit); + } break; + case DW_Form_RefAddr: { + if (version < DW_Version_3) { + TryRead(str8_deserial_read(data, cursor, &form.ref, address_size, address_size), cursor, exit); + } else { + TryRead(str8_deserial_read_dwarf_uint(data, cursor, unit_format, &form.ref), cursor, exit); + } + } break; + case DW_Form_GNU_RefAlt: { + TryRead(str8_deserial_read_dwarf_uint(data, cursor, unit_format, &form.ref), cursor, exit); + } break; + case DW_Form_Ref1: { + TryRead(str8_deserial_read(data, cursor, &form.ref, 1, 1), cursor, exit); + } break; + case DW_Form_Ref2: { + TryRead(str8_deserial_read(data, cursor, &form.ref, 2, 2), cursor, exit); + } break; + case DW_Form_Ref4: { + TryRead(str8_deserial_read(data, cursor, &form.ref, 4, 4), cursor, exit); + } break; + case DW_Form_Ref8: { + TryRead(str8_deserial_read(data, cursor, &form.ref, 8, 8), cursor, exit); + } break; + case DW_Form_RefUData: { + TryRead(str8_deserial_read_uleb128(data, cursor, &form.ref), cursor, exit); + } break; + case DW_Form_SecOffset: + case DW_Form_LineStrp: + case DW_Form_GNU_StrpAlt: + case DW_Form_Strp: { + TryRead(str8_deserial_read_dwarf_uint(data, cursor, unit_format, &form.sec_offset), cursor, exit); + } break; + case DW_Form_ExprLoc: { + U64 expr_size = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &expr_size), cursor, exit); + TryRead(str8_deserial_read_block(data, cursor, expr_size, &form.exprloc), cursor, exit); + } break; + case DW_Form_FlagPresent: { + form.flag = 1; + } break; + case DW_Form_RefSig8: { + //U64 ref = 0; + //cursor = str8_deserial_read_struct(data, cursor, &ref); + NotImplemented; + } break; + case DW_Form_Addrx: + case DW_Form_RngListx: + case DW_Form_Strx: { + TryRead(str8_deserial_read_uleb128(data, cursor, &form.xval), cursor, exit); + } break; + case DW_Form_RefSup4: { + //U32 ref_sup4 = 0; + //cursor = str8_deserial_read_struct(data, cursor, &ref_sup4); + NotImplemented; + } break; + case DW_Form_StrpSup: { + TryRead(str8_deserial_read_dwarf_uint(data, cursor, unit_format, &form.strp_sup), cursor, exit); + } break; + case DW_Form_Data16: { + cursor = str8_deserial_read_block(data, cursor, 16, &form.data); + } break; + case DW_Form_ImplicitConst: { + // Special case. + // Unlike other forms that have their values stored in the .debug_info section, + // This one defines it's value in the .debug_abbrev section. + form.implicit_const = implicit_const; + } break; + case DW_Form_LocListx: { + TryRead(str8_deserial_read_uleb128(data, cursor, &form.xval), cursor, exit); + } break; + case DW_Form_RefSup8: { + NotImplemented; + } break; + case DW_Form_Strx1: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 1, 1), cursor, exit); + } break; + case DW_Form_Strx2: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 2, 2), cursor, exit); + } break; + case DW_Form_Strx3: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 3, 3), cursor, exit); + } break; + case DW_Form_Strx4: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 4, 4), cursor, exit); + } break; + case DW_Form_Addrx1: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 1, 1), cursor, exit); + } break; + case DW_Form_Addrx2: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 2, 2), cursor, exit); + } break; + case DW_Form_Addrx3: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 3, 3), cursor, exit); + } break; + case DW_Form_Addrx4: { + TryRead(str8_deserial_read(data, cursor, &form.xval, 4, 4), cursor, exit); + } break; + default: InvalidPath; break; + } + + if (form_out) { + form.kind = form_kind; + *form_out = form; + } + if (bytes_read_out) { + *bytes_read_out = cursor; + } + + is_ok = 1; + exit:; + Assert(is_ok); + return is_ok; +} + +internal U64 +dw_read_tag(Arena *arena, + DW_Raw *input, + DW_AbbrevTable abbrev_table, + DW_Version version, + DW_Format format, + U64 address_size, + Rng1U64 cu_info_range, + U64 tag_info_off, + DW_Tag *tag_out) +{ + U64 bytes_read = 0; + + String8 info_data = input->sec[DW_Section_Info].data; + String8 abbrev_data = input->sec[DW_Section_Abbrev].data; + + String8 tag_data = str8_substr(info_data, cu_info_range); + U64 tag_cursor = tag_info_off - cu_info_range.min; + + // read tag abbrev id + U64 tag_abbrev_id = 0; + TryRead(str8_deserial_read_uleb128(tag_data, tag_cursor, &tag_abbrev_id), tag_cursor, exit); + + B32 has_children = 0; + DW_TagKind tag_kind = DW_TagKind_Null; + DW_AttribList attribs = {0}; + if (tag_abbrev_id > 0) { + // map abbrev id -> .debug_abbrev offset + U64 abbrev_cursor = dw_abbrev_offset_from_abbrev_id(abbrev_table, tag_abbrev_id); + if (abbrev_cursor >= abbrev_data.size) { log_user_errorf("failed to find abbrev id 0x%I64x for tag 0x%I64x", tag_abbrev_id, tag_info_off); goto exit; } + + // read tag abbrev + DW_Abbrev tag_abbrev = {0}; + TryRead(dw_read_abbrev_tag(abbrev_data, abbrev_cursor, &tag_abbrev), abbrev_cursor, exit); + + has_children = !!(tag_abbrev.flags & DW_AbbrevFlag_HasChildren); + tag_kind = (DW_TagKind)tag_abbrev.sub_kind; + + // read attribs + for (; tag_cursor < tag_data.size && abbrev_cursor < abbrev_data.size; ) { + U64 attrib_tag_cursor = tag_cursor; + U64 attrib_abbrev_off = abbrev_cursor; + + // read attrib abbrev + DW_Abbrev attrib_abbrev = {0}; + TryRead(dw_read_abbrev_attrib(abbrev_data, abbrev_cursor, &attrib_abbrev), abbrev_cursor, exit); + + DW_AttribKind attrib_kind = (DW_AttribKind)attrib_abbrev.id; + DW_FormKind form_kind = (DW_FormKind)attrib_abbrev.sub_kind; + + // is this closing attrib? + if (attrib_kind == DW_AttribKind_Null) { break; } + + // special case, allows producer to embed form in .debug_info + if (form_kind == DW_Form_Indirect) { + TryRead(str8_deserial_read_uleb128(tag_data, tag_cursor, &form_kind), tag_cursor, exit); + } + + // read form value + DW_Form form = {0}; + U64 form_size = 0; + if (!dw_read_form(str8_skip(tag_data, tag_cursor), version, format, address_size, form_kind, attrib_abbrev.implicit_const, &form, &form_size)) { + goto exit; + } + tag_cursor += form_size; + + // fill out node + DW_AttribNode *attrib_n = push_array(arena, DW_AttribNode, 1); + attrib_n->v.info_off = cu_info_range.min + attrib_tag_cursor; + attrib_n->v.abbrev_off = attrib_abbrev_off; + attrib_n->v.abbrev_id = attrib_abbrev.id; + attrib_n->v.attrib_kind = attrib_kind; + attrib_n->v.form = form; + + // push node to list + SLLQueuePush(attribs.first, attribs.last, attrib_n); + attribs.count += 1; + } + } + + // fill out tag + tag_out->abbrev_id = tag_abbrev_id; + tag_out->has_children = has_children; + tag_out->kind = tag_kind; + tag_out->attribs = attribs; + tag_out->info_off = tag_info_off; + + bytes_read = tag_cursor - (tag_info_off - cu_info_range.min); + exit:; + return bytes_read; +} + +internal U64 +dw_read_tag_cu(Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 info_off, DW_Tag *tag_out) +{ + return dw_read_tag(arena, + input, + cu->abbrev_table, + cu->version, + cu->format, + cu->address_size, + cu->info_range, + info_off, + tag_out); +} + +internal B32 +dw_try_u64_from_const_value(U64 type_byte_size, DW_ATE type_encoding, String8 const_value, U64 *value_out) +{ + B32 is_parsed = 0; + if (const_value.size <= type_byte_size) { + U64 value_size = Min(type_byte_size, const_value.size); + if (value_size <= sizeof(*value_out)) { + MemoryZeroStruct(value_out); + MemoryCopy(value_out, const_value.str, value_size); + if (type_encoding == DW_ATE_Signed || type_encoding == DW_ATE_SignedChar) { + *value_out = extend_sign64(*value_out, value_size); + } + is_parsed = 1; + } else { + Assert(!"out value overflow"); + } + } + return is_parsed; +} + +internal U64 +dw_u64_from_const_value(String8 const_value) +{ + U64 result = 0; + B32 is_converted = dw_try_u64_from_const_value(sizeof(U64), DW_ATE_Unsigned, const_value, &result); + Assert(is_converted); // TODO: error handling + return result; +} + +internal U64 +dw_interp_sec_offset(DW_Form form) +{ + U64 sec_offset = 0; + if (form.kind == DW_Form_SecOffset) { + sec_offset = form.sec_offset; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return sec_offset; +} + +internal String8 +dw_interp_exprloc(DW_Form form) +{ + String8 expr = {0}; + if (form.kind == DW_Form_ExprLoc) { + expr = form.exprloc; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return expr; +} + +internal U128 +dw_interp_const_u128(DW_Form form) +{ + AssertAlways(form.data.size <= sizeof(U128)); + U128 result = {0}; + MemoryCopy(&result.u64[0], form.data.str, form.data.size); + return result; +} + +internal U64 +dw_interp_const64(U64 type_byte_size, DW_ATE type_encoding, DW_Form form) +{ + U64 result = max_U64; + if (form.kind == DW_Form_Data1 || form.kind == DW_Form_Data2 || form.kind == DW_Form_Data4 || form.kind == DW_Form_Data8 || form.kind == DW_Form_Data16) { + if (form.data.size <= sizeof(result)) { + if (!dw_try_u64_from_const_value(type_byte_size, type_encoding, form.data, &result)) { + Assert(!"unable to decode data"); + } + } else { + Assert(!"unable to cast U128 to U64"); + } + } else if (form.kind == DW_Form_UData) { + result = form.udata; + } else if (form.kind == DW_Form_SData) { + result = form.sdata; + } else if (form.kind == DW_Form_ImplicitConst) { + result = form.implicit_const; + } else if (form.kind == DW_Form_Null) { + // skip + } else { + AssertAlways(!"unexpected form"); + } + return result; +} + +internal U64 +dw_interp_const_u64(DW_Form form) +{ + return dw_interp_const64(sizeof(U64), DW_ATE_Unsigned, form); +} + +internal U32 +dw_interp_const_u32(DW_Form form) +{ + U64 const64 = dw_interp_const_u64(form); + U32 const32 = safe_cast_u32(const64); + return const32; +} + +internal S64 +dw_interp_const_s64(DW_Form form) +{ + U64 const_u64 = dw_interp_const_u64(form); + S64 const_s64 = (S64)const_u64; + return const_s64; +} + +internal S32 +dw_interp_const_s32(DW_Form form) +{ + U32 const_u32 = dw_interp_const_u32(form); + S32 const_s32 = (S32)const_u32; + return const_s32; +} + +internal U64 +dw_interp_address(U64 address_size, U64 base_addr, DW_ListUnit *addr_lu, DW_Form form) +{ + U64 address = 0; + if (form.kind == DW_Form_Addr) { + if (!dw_try_u64_from_const_value(address_size, DW_ATE_Address, form.addr, &address)) { + AssertAlways(!"unable to decode address"); + } + } else if (form.kind == DW_Form_Addrx || form.kind == DW_Form_Addrx1 || form.kind == DW_Form_Addrx2 || + form.kind == DW_Form_Addrx3 || form.kind == DW_Form_Addrx4) { + address = dw_addr_from_list_unit(addr_lu, form.xval); + } else if (form.kind == DW_Form_SecOffset) { + if (addr_lu->segment_selector_size > 0) { + AssertAlways(!"TODO: support for segmented address space"); + } + if (form.sec_offset + addr_lu->segment_selector_size + addr_lu->address_size <= addr_lu->entries.size) { + MemoryCopy(&address, addr_lu->entries.str + form.sec_offset, addr_lu->address_size); + } else { + Assert(!"out of bounds .debug_addr offset"); + } + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return address; +} + +internal String8 +dw_interp_block(DW_Raw *input, DW_CompUnit *cu, DW_Form form) +{ + NotImplemented; + return str8_zero(); +} + +internal String8 +dw_interp_string(DW_Raw *input, + DW_Format unit_format, + DW_ListUnit *str_offsets, + DW_Form form) +{ + String8 string = {0}; + if (form.kind == DW_Form_String) { + string = form.string; + } else if (form.kind == DW_Form_Strp) { + U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, form.sec_offset, &string); + Assert(bytes_read > 0); + } else if (form.kind == DW_Form_LineStrp) { + U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_LineStr].data, form.sec_offset, &string); + Assert(bytes_read > 0); + } else if (form.kind == DW_Form_StrpSup) { + U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, form.strp_sup, &string); + Assert(bytes_read > 0); + } else if (form.kind == DW_Form_Strx || form.kind == DW_Form_Strx1 || + form.kind == DW_Form_Strx2 || form.kind == DW_Form_Strx3 || + form.kind == DW_Form_Strx4) { + U64 sec_offset = dw_offset_from_list_unit(str_offsets, form.xval); + if (sec_offset < input->sec[DW_Section_Str].data.size) { + U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, sec_offset, &string); + Assert(bytes_read > 0); + } else { + AssertAlways(!"unable to translate index to offset"); + } + } else if (form.kind == DW_Form_GNU_StrpAlt) { + NotImplemented; + } else if (form.kind == DW_Form_GNU_StrIndex) { + NotImplemented; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return string; +} + +internal String8 +dw_interp_line_ptr(DW_Raw *input, DW_Form form) +{ + String8 result = {0}; + if (form.kind == DW_Form_SecOffset) { + result = str8_skip(input->sec[DW_Section_Line].data, form.sec_offset); + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return result; +} + +internal DW_LineFile * +dw_interp_file(DW_LineVM *line_vm, DW_Form form) +{ + U64 file_idx = dw_interp_const_u64(form); + DW_LineFile *result = dw_line_vm_find_file(line_vm, file_idx); + return result; +} + +internal DW_Reference +dw_interp_ref(DW_Raw *input, DW_CompUnit *cu, DW_Form form) +{ + DW_Reference ref = {0}; + if (form.kind == DW_Form_Ref1 || form.kind == DW_Form_Ref2 || + form.kind == DW_Form_Ref4 || form.kind == DW_Form_Ref8 || + form.kind == DW_Form_RefUData) { + ref.cu = cu; + ref.info_off = cu->info_range.min + form.ref; + } else if (form.kind == DW_Form_RefAddr) { + NotImplemented; + } else if (form.kind == DW_Form_RefSig8) { + NotImplemented; + } else if (form.kind == DW_Form_RefSup4 || form.kind == DW_Form_RefSup8) { + NotImplemented; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return ref; +} + +internal DW_LocList +dw_interp_loclist(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Form form) +{ + DW_LocList loclist = {0}; + + if (cu->version < DW_Version_5) { + if (form.kind == DW_Form_SecOffset) { + U64 sec_offset = max_U64; + if (form.kind == DW_Form_SecOffset) { + sec_offset = form.sec_offset; + } else if (form.kind == DW_Form_Data8 || form.kind == DW_Form_Data4 || + form.kind == DW_Form_Data2 || form.kind == DW_Form_Data1) { + if (!dw_try_u64_from_const_value(form.data.size, DW_ATE_Unsigned, form.data, &sec_offset)) { + Assert(!"unable to extract section offset"); + } + } else if (form.kind == DW_Form_Null) { + Assert(!"unexpected form"); + } + + String8 sec = str8_skip(input->sec[DW_Section_Loc].data, sec_offset); + U64 base_addr = cu->low_pc; + U64 base_sel = DW_SentinelFromSize(cu->address_size); + for (U64 cursor = 0; cursor < sec.size; ) { + U64 range_min = 0; + U64 range_min_off = cursor; + U64 range_min_size = str8_deserial_read(sec, range_min_off, &range_min, cu->address_size, cu->address_size); + if (range_min_size == 0) { + break; + } + U64 range_max = 0; + U64 range_max_off = cursor + cu->address_size; + U64 range_max_size = str8_deserial_read(sec, range_max_off, &range_max, cu->address_size, cu->address_size); + if (range_max_size == 0) { + break; + } + cursor += cu->address_size * 2; + + // series terminator + if (range_min == 0 && range_max == 0) { + break; + } + // set new base address + else if (range_min == base_sel) { + base_addr = range_max; + } + // location + else { + U16 expr_size = 0; + U64 expr_size_size = str8_deserial_read_struct(sec, cursor, &expr_size); + if (expr_size_size == 0) { + Assert(!"unable to read expression size"); + break; + } + cursor += expr_size_size; + + Assert(cursor + expr_size <= sec.size); + Rng1U64 expr_range = rng_1u64(cursor, ClampTop(cursor + expr_size, sec.size)); + + DW_LocNode *loc_n = push_array(arena, DW_LocNode, 1); + loc_n->v.range = rng_1u64(base_addr + range_min, base_addr + range_max); + loc_n->v.expr = str8_substr(sec, expr_range); + + SLLQueuePush(loclist.first, loclist.last, loc_n); + ++loclist.count; + + // advance past expression + cursor += expr_size; + } + } + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + } else { + DW_Version version = DW_Version_Null; + String8 raw_lle = {0}; + if (form.kind == DW_Form_SecOffset) { + // offset is from beginning of the section + U64 sec_offset = form.sec_offset; + raw_lle = str8_skip(input->sec[DW_Section_LocLists].data, sec_offset); + } else if (form.kind == DW_Form_LocListx) { + // offset is from beginning of the entries + U64 entries_off = dw_offset_from_list_unit(cu->loclists_lu, form.xval); + raw_lle = str8_skip(cu->loclists_lu->entries, entries_off); + version = cu->loclists_lu->version; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + + for (U64 cursor = 0, keep_parsing = 1, base_addr = cu->low_pc; + cursor < raw_lle.size && keep_parsing; ) { + DW_LLE kind = DW_LLE_EndOfList; + cursor += str8_deserial_read_struct(raw_lle, cursor, &kind); + + Rng1U64 range = {0}; + switch (kind) { + default: + Assert(!"unknown kind"); + case DW_LLE_EndOfList: { + keep_parsing = 0; + } break; + case DW_LLE_BaseAddressx: { + if (!cu->addr_lu) { + keep_parsing = 0; + break; + } + + U64 addrx = 0; + U64 addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &addrx); + if (addrx_size == 0) { + keep_parsing = 0; + break; + } + + U64 base_addr_new = dw_addr_from_list_unit(cu->addr_lu, addrx); + if (base_addr_new == max_U64) { + InvalidPath; + break; + } + + base_addr = base_addr_new; + cursor += addrx_size; + } break; + case DW_LLE_StartxEndx: { + U64 start_addrx = 0; + U64 start_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &start_addrx); + if (start_addrx_size == 0) { + keep_parsing = 0; + break; + } + U64 end_addrx = 0; + U64 end_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor + start_addrx_size, &end_addrx); + if (end_addrx_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_addrx_size; + cursor += end_addrx_size; + + U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); + U64 end = dw_addr_from_list_unit(cu->addr_lu, end_addrx); + Assert(start != max_U64); + Assert(end != max_U64); + + range = rng_1u64(start, end); + } break; + case DW_LLE_StartxLength: { + U64 start_addrx = 0; + U64 start_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &start_addrx); + if (start_addrx_size == 0) { + keep_parsing = 0; + break; + } + + // parse pre-standard & standard length + U64 length_off = cursor + start_addrx_size; + U64 length = 0; + U64 length_size = str8_deserial_read_uleb128(raw_lle, length_off, &length); + if (length_size == 0) { + keep_parsing = 0; + break; + } + + cursor += start_addrx_size; + cursor += length_size; + + if (cu->addr_lu) { + U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); + Assert(start < max_U64); + + range = rng_1u64(start, start + length); + } else { + Assert(!".debug_addr section is missing -- unable to interpret address index"); + } + } break; + case DW_LLE_OffsetPair: { + U64 start = 0; + U64 start_size = str8_deserial_read_uleb128(raw_lle, cursor, &start); + if (start_size == 0) { + keep_parsing = 0; + break; + } + U64 end = 0; + U64 end_size = str8_deserial_read_uleb128(raw_lle, cursor + start_size, &end); + if (end_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_size; + cursor += end_size; + + range = rng_1u64(base_addr + start, base_addr + end); + } break; + case DW_LLE_DefaultLocation: { + // no range + int x = 0; + } break; + case DW_LLE_BaseAddress: { + U64 base_addr_size = str8_deserial_read(raw_lle, cursor, &base_addr, cu->address_size, cu->address_size); + if (base_addr_size == 0) { + keep_parsing = 0; + break; + } + cursor += base_addr_size; + } break; + case DW_LLE_StartEnd: { + U64 start = 0; + U64 start_size = str8_deserial_read(raw_lle, cursor, &start, cu->address_size, cu->address_size); + if (start_size == 0) { + keep_parsing = 0; + break; + } + + U64 end = 0; + U64 end_size = str8_deserial_read(raw_lle, cursor + start_size, &end, cu->address_size, cu->address_size); + if (end_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_size; + cursor += end_size; + + range = rng_1u64(start, end); + } break; + case DW_LLE_StartLength: { + U64 start = 0; + U64 start_size = str8_deserial_read(raw_lle, cursor, &start, cu->address_size, cu->address_size); + if (start_size == 0) { + keep_parsing = 0; + break; + } + U64 length = 0; + U64 length_size = str8_deserial_read_uleb128(raw_lle, cursor + start_size, &length); + if (length_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_size; + cursor += length_size; + + range = rng_1u64(start, start + length); + } break; + } + + B32 has_expr = keep_parsing && kind != DW_LLE_BaseAddressx && kind != DW_LLE_BaseAddress; + if (has_expr) { + U64 expr_size = 0; + U64 expr_size_size = str8_deserial_read_uleb128(raw_lle, cursor, &expr_size); + if (expr_size_size == 0) { + keep_parsing = 0; + break; + } + + String8 expr = {0}; + U64 expr_read_size = str8_deserial_read_block(raw_lle, cursor + expr_size_size, expr_size, &expr); + if (expr_read_size != expr_size) { + keep_parsing = 0; + break; + } + + cursor += expr_size_size; + cursor += expr_size; + + DW_LocNode *loc_n = push_array(arena, DW_LocNode, 1); + loc_n->v.range = range; + loc_n->v.expr = expr; + + SLLQueuePush(loclist.first, loclist.last, loc_n); + ++loclist.count; + } + } + } + + return loclist; +} + +internal B32 +dw_interp_flag(DW_Form form) +{ + B32 flag = 0; + if (form.kind == DW_Form_Flag || form.kind == DW_Form_FlagPresent) { + flag = form.flag; + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + return flag; +} + +internal Rng1U64List +dw_interp_rnglist(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Form form) +{ + Rng1U64List rnglist = {0}; + + if (cu->version < DW_Version_5) { + // decode section offset + U64 sec_offset = max_U64; + if (form.kind == DW_Form_SecOffset) { + sec_offset = form.sec_offset; + } else if (form.kind == DW_Form_Data8 || form.kind == DW_Form_Data4 || + form.kind == DW_Form_Data2 || form.kind == DW_Form_Data1) { + if (!dw_try_u64_from_const_value(form.data.size, DW_ATE_Unsigned, form.data, &sec_offset)) { + Assert(!"unable to extract section offset"); + } + } else if (form.kind != DW_Form_Null) { + Assert(!"unexpected form"); + } + + String8 sec = str8_skip(input->sec[DW_Section_Ranges].data, sec_offset); + U64 base_addr = cu->low_pc; + U64 base_sel = DW_SentinelFromSize(cu->address_size); + for (U64 cursor = 0; cursor < sec.size; ) { + U64 range_min = 0; + U64 range_min_off = cursor; + U64 range_min_size = str8_deserial_read(sec, range_min_off, &range_min, cu->address_size, cu->address_size); + if (range_min_size == 0) { + break; + } + U64 range_max = 0; + U64 range_max_off = cursor + cu->address_size; + U64 range_max_size = str8_deserial_read(sec, range_max_off, &range_max, cu->address_size, cu->address_size); + if (range_max_size == 0) { + break; + } + cursor += cu->address_size * 2; + + // series terminator + if (range_min == 0 && range_max == 0) { + break; + } + // set new base address + else if (range_min == base_sel) { + base_addr = range_max; + } + // range + else { + Rng1U64 range = rng_1u64(base_addr + range_min, base_addr + range_max); + rng1u64_list_push(arena, &rnglist, range); + } + } + } else { + String8 raw_rle = {0}; + if (form.kind == DW_Form_SecOffset) { + // offset is from beginning of the section + U64 sec_offset = form.sec_offset; + raw_rle = str8_skip(input->sec[DW_Section_RngLists].data, sec_offset); + } else if (form.kind == DW_Form_RngListx) { + // offset is from beginning of the entries + U64 sec_offset = dw_offset_from_list_unit(cu->rnglists_lu, form.xval); + raw_rle = str8_skip(cu->rnglists_lu->entries, sec_offset); + } else if (form.kind != DW_Form_Null) { + AssertAlways(!"unexpected form"); + } + + U64 rle_invalid_value = DW_SentinelFromSize(cu->address_size); + U64 base_addr = cu->low_pc; + for (U64 cursor = 0, keep_parsing = 1; cursor < raw_rle.size && keep_parsing; ) { + DW_RLE kind = DW_RLE_EndOfList; + cursor += str8_deserial_read_struct(raw_rle, cursor, &kind); + + Rng1U64 range = rng_1u64(rle_invalid_value, rle_invalid_value); + switch (kind) { + default: + case DW_RLE_EndOfList: { + keep_parsing = 0; + } break; + case DW_RLE_BaseAddressx: { + U64 addrx = 0; + U64 addrx_size = str8_deserial_read_uleb128(raw_rle, cursor, &addrx); + if (addrx_size == 0) { + keep_parsing = 0; + break; + } + if (cu->addr_lu == 0) { + keep_parsing = 0; + break; + } + U64 base_addr_new = dw_addr_from_list_unit(cu->addr_lu, addrx); + if (base_addr_new < max_U64) { + base_addr = base_addr_new; + cursor += addrx_size; + } else { + keep_parsing = 0; + Assert(!"invalid addrx"); + } + } break; + case DW_RLE_StartxLength: { + U64 start_addrx = 0; + U64 start_addrx_size = str8_deserial_read_uleb128(raw_rle, cursor, &start_addrx); + if (start_addrx_size == 0) { + keep_parsing = 0; + break; + } + U64 length = 0; + U64 length_size = str8_deserial_read_uleb128(raw_rle, cursor + start_addrx_size, &length); + if (length_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_addrx_size; + cursor += length_size; + + if (cu->addr_lu) { + U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); + AssertAlways(start < max_U64); + range = rng_1u64(start, start + length); + } + } break; + case DW_RLE_OffsetPair: { + U64 offset_start, offset_end = 0; + U64 offset_start_size = str8_deserial_read_uleb128(raw_rle, cursor, &offset_start); + if (offset_start_size == 0) { + keep_parsing = 0; + break; + } + U64 offset_end_size = str8_deserial_read_uleb128(raw_rle, cursor + offset_start_size, &offset_end); + if (offset_end_size == 0) { + keep_parsing = 0; + break; + } + cursor += offset_start_size; + cursor += offset_end_size; + + range = rng_1u64(base_addr + offset_start, base_addr + offset_end); + } break; + case DW_RLE_BaseAddress: { + U64 base_addr_size = str8_deserial_read(raw_rle, cursor, &base_addr, cu->address_size, cu->address_size); + if (base_addr_size == 0) { + keep_parsing = 0; + break; + } + cursor += base_addr_size; + } break; + case DW_RLE_StartEnd: { + U64 start = 0, end = 0; + + U64 start_size = str8_deserial_read(raw_rle, cursor, &start, cu->address_size, cu->address_size); + if (start_size == 0) { + keep_parsing = 0; + break; + } + U64 end_size = str8_deserial_read(raw_rle, cursor + start_size, &end, cu->address_size, cu->address_size); + if (end_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_size; + cursor += end_size; + + range = rng_1u64(start, end); + } break; + case DW_RLE_StartLength: { + U64 start = 0, length = 0; + + U64 start_size = str8_deserial_read(raw_rle, cursor, &start, cu->address_size, cu->address_size); + if (start_size == 0) { + keep_parsing = 0; + break; + } + U64 length_size = str8_deserial_read_uleb128(raw_rle, cursor + start_size, &length); + if (length_size == 0) { + keep_parsing = 0; + break; + } + cursor += start_size; + cursor += length_size; + + range = rng_1u64(start, start + length); + } break; + } + + if (range.min != rle_invalid_value) { + rng1u64_list_push(arena, &rnglist, range); + } + } + } + + return rnglist; +} + +internal String8 +dw_interp_secptr(DW_Raw *input, DW_SectionKind section, DW_Form form) +{ + String8 secptr = {0}; + if (form.kind == DW_Form_SecOffset) { + String8 sect = input->sec[section].data; + Rng1U64 range = rng_1u64(form.sec_offset, sect.size); + secptr = str8_substr(sect, range); + } else if (form.kind != DW_Form_Null) { + Assert(!"unexpected form"); + } + return secptr; +} + +internal String8 +dw_interp_addrptr(DW_Raw *input, DW_Form form) +{ + return dw_interp_secptr(input, DW_Section_Addr, form); +} + +internal String8 +dw_interp_str_offsets_ptr(DW_Raw *input, DW_Form form) +{ + return dw_interp_secptr(input, DW_Section_StrOffsets, form); +} + +internal String8 +dw_interp_rnglists_ptr(DW_Raw *input, DW_Form form) +{ + return dw_interp_secptr(input, DW_Section_RngLists, form); +} + +internal String8 +dw_interp_loclists_ptr(DW_Raw *input, DW_Form form) +{ + return dw_interp_secptr(input, DW_Section_LocLists, form); +} + +internal DW_AttribClass +dw_value_class_from_attrib(DW_CompUnit *cu, DW_Attrib *attrib) +{ + return dw_pick_attrib_value_class(cu->version, cu->ext, cu->relaxed, attrib->attrib_kind, attrib->form.kind); +} + +internal String8 +dw_exprloc_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_ExprLoc || value_class == DW_AttribClass_Block); + return dw_interp_exprloc(attrib->form); +} + +internal U128 +dw_const_u128_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_const_u128(attrib->form); +} + +internal U64 +dw_const_u64_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_const_u64(attrib->form); +} + +internal U32 +dw_const_u32_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_const_u32(attrib->form); +} + +internal S64 +dw_const_s64_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_const_s64(attrib->form); +} + +internal S32 +dw_const_s32_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_const_s32(attrib->form); +} + +internal B32 +dw_flag_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Flag); + return dw_interp_flag(attrib->form); +} + +internal U64 +dw_address_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || + value_class == DW_AttribClass_Address || + value_class == DW_AttribClass_AddrPtr); + DW_Form form = attrib->form; + if (value_class == DW_AttribClass_AddrPtr) { + if (attrib->form.kind == DW_Form_SecOffset) { + NotImplemented; + } else { + AssertAlways(!"unexpected form"); + } + + form.kind = DW_Form_Addr; + form.addr = dw_interp_addrptr(input, attrib->form); + } + return dw_interp_address(cu->address_size, cu->low_pc, cu->addr_lu, form); +} + +internal String8 +dw_block_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Block); + return dw_interp_block(input, cu, attrib->form); +} + +internal String8 +dw_string_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_String || value_class == DW_AttribClass_StrOffsetsPtr); + return dw_interp_string(input, cu->format, cu->str_offsets_lu, attrib->form); +} + +internal String8 +dw_line_ptr_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_LinePtr); + return dw_interp_line_ptr(input, attrib->form); +} + +internal DW_LineFile * +dw_file_from_attrib(DW_CompUnit *cu, DW_LineVM *line_vm, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); + return dw_interp_file(line_vm, attrib->form); +} + +internal DW_Reference +dw_ref_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Reference); + return dw_interp_ref(input, cu, attrib->form); +} + +internal DW_LocList +dw_loclist_from_attrib(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + AssertAlways(value_class == DW_AttribClass_Null || + value_class == DW_AttribClass_LocList || + value_class == DW_AttribClass_LocListPtr); + return dw_interp_loclist(arena, input, cu, attrib->form); +} + +internal Rng1U64List +dw_rnglist_from_attrib(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + Rng1U64List rnglist = {0}; + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + if (value_class == DW_AttribClass_RngListPtr || value_class == DW_AttribClass_RngList) { + rnglist = dw_interp_rnglist(arena, input, cu, attrib->form); + } else if (value_class != DW_AttribClass_Null) { + Assert(!"unexpected value class"); + } + return rnglist; +} + +internal DW_Attrib * +dw_attrib_from_tag_(DW_Tag tag, DW_AttribKind kind) +{ + local_persist read_only DW_Attrib null_attrib; + DW_Attrib *attrib = &null_attrib; + for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { + if (attrib_n->v.attrib_kind == kind) { + attrib = &attrib_n->v; + break; + } + } + return attrib; +} + +internal DW_Attrib * +dw_attrib_from_tag(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + DW_Attrib *attrib = dw_attrib_from_tag_(tag, kind); + + if (attrib->attrib_kind == DW_AttribKind_Null) { + if (cu && cu->tag_ht) { + DW_Attrib *ao_attrib = dw_attrib_from_tag_(tag, DW_AttribKind_AbstractOrigin); + if (ao_attrib->attrib_kind == DW_AttribKind_AbstractOrigin) { + DW_Reference ref = dw_interp_ref(input, cu, ao_attrib->form); + DW_TagNode *ref_tag = dw_tag_node_from_info_off(ref.cu, ref.info_off); + attrib = dw_attrib_from_tag_(ref_tag->tag, kind); + } + } + } + + return attrib; +} + +internal B32 +dw_tag_has_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); + B32 has_attrib = attrib->attrib_kind != DW_AttribKind_Null; + return has_attrib; +} + +internal String8 +dw_exprloc_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_exprloc_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal String8 +dw_block_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_block_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal U128 +dw_const_u128_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_const_u128_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal U64 +dw_const_u64_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_const_u64_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal U32 +dw_const_u32_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_const_u32_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal U64 +dw_address_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_address_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal String8 +dw_string_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_string_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal String8 +dw_line_ptr_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_line_ptr_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal DW_Reference +dw_ref_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_ref_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal DW_LocList +dw_loclist_from_tag_attrib_kind(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_loclist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal Rng1U64List +dw_rnglist_from_tag_attrib_kind(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_rnglist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal B32 +dw_flag_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + return dw_flag_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal DW_LineFile * +dw_file_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_LineVM *line_vm, DW_Tag tag, DW_AttribKind kind) +{ + return dw_file_from_attrib(cu, line_vm, dw_attrib_from_tag(input, cu, tag, kind)); +} + +internal B32 +dw_try_byte_size_from_tag(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, U64 *byte_size_out) +{ + B32 has_byte_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ByteSize); + B32 has_bit_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_BitSize ); + + if (has_byte_size && has_bit_size) { + Assert(!"ill formated byte size"); + } + + if (has_byte_size) { + *byte_size_out = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); + return 1; + } else if (has_bit_size) { + U64 bit_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_BitSize); + *byte_size_out = bit_size / 8; + return 1; + } + + return 0; +} + +internal U64 +dw_byte_size_from_tag(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag) +{ + U64 byte_size = max_U64; + dw_try_byte_size_from_tag(input, cu, tag, &byte_size); + return byte_size; +} + +internal U32 +dw_byte_size_32_from_tag(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag) +{ + U32 byte_size32 = 0; + U64 byte_size64; + if (dw_try_byte_size_from_tag(input, cu, tag, &byte_size64)) { + byte_size32 = safe_cast_u32(byte_size64); + } + return byte_size32; +} + +internal U64 +dw_u64_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + U64 result = 0; + DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); + DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); + if (attrib_class == DW_AttribClass_Const || attrib_class == DW_AttribClass_Block) { + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Type)) { + Temp scratch = scratch_begin(0,0); + DW_Reference type_ref = dw_ref_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Type); + DW_Tag type_tag = {0}; + dw_read_tag_cu(scratch.arena, input, type_ref.cu, type_ref.info_off, &type_tag); + U64 type_byte_size = dw_byte_size_from_tag(input, cu, type_tag); + DW_ATE type_encoding = dw_const_u64_from_tag_attrib_kind(input, type_ref.cu, type_tag, DW_AttribKind_Encoding); + if (type_encoding == DW_ATE_Unsigned || type_encoding == DW_ATE_UnsignedChar) { + result = dw_interp_const64(type_byte_size, type_encoding, attrib->form); + } + scratch_end(scratch); + } else { + result = dw_interp_const_u64(attrib->form); + } + } else if (attrib_class == DW_AttribClass_Address) { + result = dw_address_from_attrib(input, cu, attrib); + } else if (attrib_class == DW_AttribClass_Reference) { + NotImplemented; + } else if (attrib_class != DW_AttribClass_Null) { + AssertAlways(!"unexpected attrib class"); + } + return result; +} + +internal B32 +dw_is_attrib_var_ref(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib) +{ + B32 is_var_ref = 0; + if (dw_is_form_kind_ref(cu->version, cu->ext, attrib->form.kind)) { + Temp scratch = scratch_begin(0,0); + DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); + DW_Tag ref_tag = {0}; + if (dw_read_tag_cu(scratch.arena, input, ref.cu, ref.info_off, &ref_tag)) { + is_var_ref = ref_tag.kind == DW_TagKind_Variable; + } + scratch_end(scratch); + } + return is_var_ref; +} + +internal DW_CompUnit +dw_cu_from_info_off(Arena *arena, DW_Raw *input, DW_ListUnitInput lu_input, U64 cu_header_offset, B32 relaxed) +{ + DW_CompUnit cu = {0}; + + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(input->sec[DW_Section_Info].data, 0, &first_four_bytes) != sizeof(first_four_bytes)) { goto exit; } + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + // read unit size in bytes + U64 length = 0; + U64 length_size = str8_deserial_read_dwarf_packed_size(input->sec[DW_Section_Info].data, cu_header_offset, &length); + if (length_size == 0) { goto exit; } + + // compute unit range + Rng1U64 info_range = rng_1u64(cu_header_offset, cu_header_offset + length_size + length); + String8 info = str8_substr(input->sec[DW_Section_Info].data, info_range); + U64 info_cursor = length_size; + + // read version + DW_Version version; + TryRead(str8_deserial_read_struct(info, info_cursor, &version), info_cursor, exit); + + U64 abbrev_base = max_U64; + U8 address_size = 0; + DW_CompUnitKind unit_kind = DW_CompUnitKind_Reserved; + U64 spec_dwo_id = max_U64; + B32 is_header_ok = 0; + switch (version) { + default: + case DW_Version_Null: { + } break; + case DW_Version_1: { + NotImplemented; + } break; + case DW_Version_2: { + U32 abbrev_base32; + TryRead(str8_deserial_read_struct(info, info_cursor, &abbrev_base32), info_cursor, exit); + TryRead(str8_deserial_read_struct(info, info_cursor, &address_size), info_cursor, exit); + abbrev_base = abbrev_base32; + is_header_ok = 1; + } break; + case DW_Version_3: + case DW_Version_4: { + TryRead(str8_deserial_read_dwarf_uint(info, info_cursor, format, &abbrev_base), info_cursor, exit); + TryRead(str8_deserial_read_struct (info, info_cursor, &address_size), info_cursor, exit); + is_header_ok = 1; + } break; + case DW_Version_5: { + TryRead(str8_deserial_read_struct (info, info_cursor, &unit_kind), info_cursor, exit); + TryRead(str8_deserial_read_struct (info, info_cursor, &address_size), info_cursor, exit); + TryRead(str8_deserial_read_dwarf_uint(info, info_cursor, format, &abbrev_base), info_cursor, exit); + if (unit_kind == DW_CompUnitKind_Skeleton || input->sec[DW_Section_Info].is_dwo) { + TryRead(str8_deserial_read_struct(info, info_cursor, &spec_dwo_id), info_cursor, exit); + } + is_header_ok = 1; + } break; + } + + U64 header_size = info_cursor; + + if (is_header_ok) { + Temp temp = temp_begin(arena); + + // TODO: cache abbrev tables with identical offsets + DW_AbbrevTable abbrev_table = dw_make_abbrev_table(arena, input->sec[DW_Section_Abbrev].data, abbrev_base); + + DW_Tag cu_tag = {0}; + dw_read_tag(arena, input, abbrev_table, version, format, address_size, info_range, cu_header_offset + header_size, &cu_tag); + + // TODO: handle these unit types + if (cu_tag.kind == DW_TagKind_SkeletonUnit) { log_user_errorf("TODO: Skeleton Unit"); } + if (cu_tag.kind == DW_TagKind_TypeUnit) { log_user_errorf("TODO Type Unit"); } + + if (cu_tag.kind != DW_TagKind_CompileUnit && cu_tag.kind != DW_TagKind_PartialUnit) { + // unexpected tag, release memory and exit + temp_end(temp); + goto exit; + } + + // fetch attribs for list sections + DW_Attrib *addr_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_AddrBase ); + DW_Attrib *str_offsets_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_StrOffsetsBase); + DW_Attrib *rnglists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_RngListsBase ); + DW_Attrib *loclists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LocListsBase ); + + // interp attribs as section offsets + U64 addr_sec_off = dw_interp_sec_offset(addr_base_attrib->form ); + U64 str_offsets_sec_off = dw_interp_sec_offset(str_offsets_base_attrib->form); + U64 rnglists_sec_off = dw_interp_sec_offset(rnglists_base_attrib->form ); + U64 loclists_sec_off = dw_interp_sec_offset(loclists_base_attrib->form ); + + // map section offset to unit index + U64 addr_lu_num = rng1u64_array_num_from_value__binary_search(&lu_input.addr_ranges, addr_sec_off ); + U64 str_offsets_lu_num = rng1u64_array_num_from_value__binary_search(&lu_input.str_offset_ranges, str_offsets_sec_off); + U64 rnglists_lu_num = rng1u64_array_num_from_value__binary_search(&lu_input.rnglist_ranges, rnglists_sec_off ); + U64 loclists_lu_num = rng1u64_array_num_from_value__binary_search(&lu_input.loclist_ranges, loclists_sec_off ); + + // map index to unit + DW_ListUnit *addr_lu = 0 < (addr_lu_num && addr_lu_num <= lu_input.addr_count) ? &lu_input.addrs[addr_lu_num-1] : 0; + DW_ListUnit *str_offsets_lu = 0 < (str_offsets_lu_num && str_offsets_lu_num <= lu_input.str_offset_count) ? &lu_input.str_offsets[str_offsets_lu_num-1] : 0; + DW_ListUnit *rnglists_lu = 0 < (rnglists_lu_num && rnglists_lu_num <= lu_input.rnglist_count) ? &lu_input.rnglists[rnglists_lu_num-1] : 0; + DW_ListUnit *loclists_lu = 0 < (loclists_lu_num && loclists_lu_num <= lu_input.loclist_count) ? &lu_input.loclists[loclists_lu_num-1] : 0; + + // find compile unit base address + DW_Attrib *low_pc_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LowPc); + U64 low_pc = dw_interp_address(address_size, max_U64, addr_lu, low_pc_attrib->form); + + // fill out compile unit + cu.relaxed = relaxed; + cu.ext = DW_Ext_All; + cu.kind = unit_kind; + cu.version = version; + cu.format = format; + cu.address_size = address_size; + cu.abbrev_off = abbrev_base; + cu.info_range = info_range; + cu.first_tag_info_off = cu_header_offset + header_size; + cu.abbrev_table = abbrev_table; + cu.addr_lu = addr_lu; + cu.str_offsets_lu = str_offsets_lu; + cu.rnglists_lu = rnglists_lu; + cu.loclists_lu = loclists_lu; + cu.low_pc = low_pc; + cu.tag = cu_tag; + } + + exit:; + return cu; +} + +internal void +dw_tag_tree_from_data(Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_TagNode *parent, U64 *cursor, U64 *tag_count) +{ + while (*cursor < cu->info_range.max) { + // read tag + DW_Tag tag = {0}; + TryRead(dw_read_tag(arena, input, cu->abbrev_table, cu->version, cu->format, cu->address_size, cu->info_range, *cursor, &tag), *cursor, exit); + + // reached of the CU? + if (tag.kind == DW_TagKind_Null) { break; } + + // normal tag + DW_TagNode *tag_n = push_array(arena, DW_TagNode, 1); + tag_n->tag = tag; + + SLLQueuePush_N(parent->first_child, parent->last_child, tag_n, sibling); + + // update tag count + *tag_count += 1; + + if (tag.has_children) { + dw_tag_tree_from_data(arena, input, cu, tag_n, cursor, tag_count); + } + } + exit:; +} + +internal DW_TagTree +dw_tag_tree_from_cu(Arena *arena, DW_Raw *input, DW_CompUnit *cu) +{ + DW_TagNode root = {0}; + U64 cursor = cu->first_tag_info_off; + U64 tag_count = 0; + dw_tag_tree_from_data(arena, input, cu, &root, &cursor, &tag_count); + Assert(cursor == cu->info_range.max); + return (DW_TagTree){ .root = root.first_child, .tag_count = tag_count }; +} + +internal HashTable * +dw_make_tag_hash_table(Arena *arena, DW_TagTree tag_tree) +{ + Temp scratch = scratch_begin(&arena, 1); + + struct Frame { + struct Frame *next; + DW_TagNode *node; + }; + + struct Frame *free_frames = 0; + struct Frame *stack = push_array(scratch.arena, struct Frame, 1); + stack->node = tag_tree.root; + + HashTable *ht = hash_table_init(arena, (U64)((F64)tag_tree.tag_count * 1.3)); + + while (stack) { + while (stack->node) { + hash_table_push_u64_raw(arena, ht, stack->node->tag.info_off, stack->node); + + if (stack->node->first_child) { + struct Frame *frame = free_frames; + if (frame) { + SLLStackPop(free_frames); + MemoryZeroStruct(frame); + } else { + frame = push_array(scratch.arena, struct Frame, 1); + } + frame->node = stack->node->first_child; + SLLStackPush(stack, frame); + } else { + stack->node = stack->node->sibling; + } + } + + // recycle free frame + struct Frame *frame = stack; + SLLStackPop(stack); + SLLStackPush(free_frames, frame); + + if (stack) { + stack->node = stack->node->sibling; + } + } + + scratch_end(scratch); + return ht; +} + +internal DW_TagNode * +dw_tag_node_from_info_off(DW_CompUnit *cu, U64 info_off) +{ + DW_TagNode *tag_node = hash_table_search_u64_raw(cu->tag_ht, info_off); + return tag_node; +} + +internal U64 +dw_read_line_vm_header(Arena *arena, + DW_Raw *input, + String8 cu_stmt_list, + String8 cu_dir, + String8 cu_name, + U8 cu_address_size, + DW_ListUnit *cu_str_offsets, + DW_LineVMHeader *header_out) +{ + Temp scratch = scratch_begin(&arena, 1); + + U64 cursor = 0; + + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(cu_stmt_list, 0, &first_four_bytes) != sizeof(U32)) { goto exit; } + + // read unit length + U64 length = 0; + U64 length_size = str8_deserial_read_dwarf_packed_size(cu_stmt_list, 0, &length); + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + cursor = length_size; + String8 data = str8_substr(cu_stmt_list, r1u64(0, length + length_size)); + + // read unit version + DW_Version version = DW_Version_Null; + TryRead(str8_deserial_read_struct(data, cursor, &version), cursor, exit); + + // read DWARF5 address & segment selector + U8 address_size = cu_address_size; + U8 segsel_size = 0; + if (version == DW_Version_5) { + TryRead(str8_deserial_read_struct(data, cursor, &address_size), cursor, exit); + TryRead(str8_deserial_read_struct(data, cursor, &segsel_size), cursor, exit); + } + + U64 header_length = 0; + TryRead(str8_deserial_read_dwarf_uint(data, cursor, format, &header_length), cursor, exit); + U64 line_program_off = cursor + header_length; + + // substring header so we dont overread into the line program + data = str8_prefix(data, cursor + header_length); + + U8 min_inst_len = 0; + TryRead(str8_deserial_read_struct(data, cursor, &min_inst_len), cursor, exit); + + U8 max_ops_for_inst = 1; + if (version > DW_Version_3) { + TryRead(str8_deserial_read_struct(data, cursor, &max_ops_for_inst), cursor, exit); + Assert(max_ops_for_inst > 0); + } + + U8 default_is_stmt = 0; + TryRead(str8_deserial_read_struct(data, cursor, &default_is_stmt), cursor, exit); + + S8 line_base = 0; + TryRead(str8_deserial_read_struct(data, cursor, &line_base), cursor, exit); + + U8 line_range = 0; + TryRead(str8_deserial_read_struct(data, cursor, &line_range), cursor, exit); + + U8 opcode_base = 0; + TryRead(str8_deserial_read_struct(data, cursor, &opcode_base), cursor, exit); + + U64 num_opcode_lens = opcode_base > 0 ? opcode_base - 1 : 0; + String8 opcode_lens; + TryRead(str8_deserial_read_block(data, cursor, num_opcode_lens * sizeof(U8), &opcode_lens), cursor, exit); + + String8Array dir_table = {0}; + DW_LineFileArray file_table = {0}; + if (version < DW_Version_5) { + // read directory table + String8List dir_list = {0}; + + // compile directory is always first in the table + str8_list_push(scratch.arena, &dir_list, cu_dir); + + // parse additional directories + while (cursor < data.size) { + String8 dir = {0}; + TryRead(str8_deserial_read_cstr(data, cursor, &dir), cursor, exit); + if (dir.size == 0) { break; } + str8_list_push(scratch.arena, &dir_list, dir); + } + + DW_LineFileList file_list = {0}; + { + // compile unit name is always first in the file table + { + DW_LineFileNode *node = push_array(scratch.arena, DW_LineFileNode, 1); + node->file.path = cu_name; + SLLQueuePush(file_list.first, file_list.last, node); + file_list.node_count += 1; + } + + // read file table + while (cursor < data.size) { + U8 first_byte = 0; + if (str8_deserial_read_struct(data, cursor, &first_byte) == 0) { goto exit; } + if (first_byte == 0) { break; } + + DW_LineFile file = {0}; + TryRead(str8_deserial_read_cstr (data, cursor, &file.path), cursor, exit); + TryRead(str8_deserial_read_uleb128(data, cursor, &file.dir_idx), cursor, exit); + TryRead(str8_deserial_read_uleb128(data, cursor, &file.time_stamp), cursor, exit); + TryRead(str8_deserial_read_uleb128(data, cursor, &file.size), cursor, exit); + + DW_LineFileNode *node = push_array(scratch.arena, DW_LineFileNode, 1); + node->file = file; + + SLLQueuePush(file_list.first, file_list.last, node); + file_list.node_count += 1; + } + } + + // dir list -> array + dir_table = str8_array_from_list(arena, &dir_list); + + // file list -> array + file_table.count = 0; + file_table.v = push_array(arena, DW_LineFile, file_list.node_count); + for EachNode(n, DW_LineFileNode, file_list.first) { + DW_LineFile *dst = &file_table.v[file_table.count++]; + dst->path = push_str8_copy(arena, n->file.path); + dst->dir_idx = n->file.dir_idx; + dst->time_stamp = n->file.time_stamp; + dst->size = n->file.size; + } + } + // DWARF5 + else { + // directory table + { + // read table entry encoding count + U8 enc_count = 0; + TryRead(str8_deserial_read_struct(data, cursor, &enc_count), cursor, exit); + + // read table entry encodings + U64 *enc_arr = 0; + TryRead(str8_deserial_read_uleb128_array(scratch.arena, data, cursor, enc_count*2, &enc_arr), cursor, exit); + + // read table count + U64 table_count = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &table_count), cursor, exit); + + // validate encoding + if (table_count > 0) { + if (enc_count != 1) { goto exit; } + if (enc_arr[0] != DW_LNCT_Path) { goto exit; } + } + + // read table + dir_table.count = table_count; + dir_table.v = push_array(arena, String8, table_count); + for EachIndex(i, table_count) { + DW_FormKind form_kind = enc_arr[1]; + DW_Form form = {0}; + U64 form_size = 0; + if (!dw_read_form(str8_skip(data, cursor), version, format, address_size, form_kind, max_U64, &form, &form_size)) { goto exit; } + cursor += form_size; + dir_table.v[i] = dw_interp_string(input, format, cu_str_offsets, form); + } + } + + // file table + { + // read table entry encoding count + U8 enc_count = 0; + TryRead(str8_deserial_read_struct(data, cursor, &enc_count), cursor, exit); + + // read table entry encodings + U64 *enc_arr = 0; + TryRead(str8_deserial_read_uleb128_array(scratch.arena, data, cursor, enc_count*2, &enc_arr), cursor, exit); + + // read table count + U64 table_count = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &table_count), cursor, exit); + + file_table.count = table_count; + file_table.v = push_array(arena, DW_LineFile, table_count); + + for EachIndex(i, table_count) { + DW_LineFile *file = &file_table.v[i]; + for EachIndex(enc_idx, enc_count) { + DW_LNCT lnct = enc_arr[enc_idx*2 + 0]; + + DW_FormKind form_kind = enc_arr[enc_idx*2 + 1]; + DW_Form form = {0}; + U64 form_size = 0; + if (!dw_read_form(str8_skip(data, cursor), version, format, address_size, form_kind, max_U64, &form, &form_size)) { goto exit; } + cursor += form_size; + + switch (lnct) { + case DW_LNCT_Path: { file->path = dw_interp_string(input, format, cu_str_offsets, form); } break; + case DW_LNCT_DirectoryIndex: { file->dir_idx = dw_interp_const_u64(form); } break; + case DW_LNCT_TimeStamp: { file->time_stamp = dw_interp_const_u64(form); } break; + case DW_LNCT_Size: { file->size = dw_interp_const_u64(form); } break; + case DW_LNCT_MD5: { file->md5 = dw_interp_const_u128(form); } break; + case DW_LNCT_LLVM_Source: { file->source = dw_interp_string(input, format, cu_str_offsets, form); } break; + default: { + Assert(!"unexpected LNTC encoding"); + } break; + } + } + } + } + } + + if (header_out) { + header_out->unit_length = length_size + length; + header_out->version = version; + header_out->address_size = address_size; + header_out->segment_selector_size = segsel_size; + header_out->header_length = header_length; + header_out->min_inst_len = min_inst_len; + header_out->max_ops_for_inst = max_ops_for_inst; + header_out->default_is_stmt = default_is_stmt; + header_out->line_base = line_base; + header_out->line_range = line_range; + header_out->opcode_base = opcode_base; + header_out->num_opcode_lens = num_opcode_lens; + header_out->opcode_lens = opcode_lens.str; + header_out->line_program_off = line_program_off; + header_out->dir_table = dir_table; + header_out->file_table = file_table; + } + + exit:; + scratch_end(scratch); + return cursor; +} + +internal DW_LineVM * +dw_line_vm_init(DW_Raw *input, DW_CompUnit *cu) +{ + DW_LineVM *vm = 0; + + Arena *arena = arena_alloc(.reserve_size = KB(64), .commit_size = KB(1)); + + String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_StmtList); + String8 cu_dir = dw_string_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_name = dw_string_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_Name); + + // read the line table header + DW_LineVMHeader header = {0}; + if (cu_stmt_list.size) { + if ( ! dw_read_line_vm_header(arena, input, cu_stmt_list, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu, &header)) { + goto exit; + } + } + + vm = push_array(arena, DW_LineVM, 1); + *vm = (DW_LineVM){ + .arena = arena, + .cursor = header.line_program_off, + .program = str8_prefix(cu_stmt_list, header.unit_length), + .header = header, + .state.end_sequence = 1, + }; + + exit:; + if (vm == 0) { arena_release(arena); } + return vm; +} + +internal void +dw_line_vm_release(DW_LineVM *vm) +{ + arena_release(vm->arena); +} + +internal void +dw_line_vm_advance(DW_LineVM *vm, U64 advance) +{ + U64 op_index = vm->state.op_index + advance; + vm->state.address += vm->header.min_inst_len * (op_index / vm->header.max_ops_for_inst); + vm->state.op_index = op_index % vm->header.max_ops_for_inst; + vm->advance = advance; +} + +internal B32 +dw_line_vm_step(DW_LineVM *vm) +{ + B32 is_ok = 0; + + if (vm->cursor >= vm->program.size) { goto exit; } + + vm->new_line = 0; + + // reset VM state + if (vm->state.end_sequence) { + vm->state.address = 0; + vm->state.op_index = 0; + vm->state.file_index = 1; + vm->state.line = 1; + vm->state.column = 0; + vm->state.is_stmt = vm->header.default_is_stmt; + vm->state.basic_block = 0; + vm->state.end_sequence = 0; + vm->state.prologue_end = 0; + vm->state.epilogue_begin = 0; + vm->state.isa = 0; + vm->state.discriminator = 0; + } + + // read opcode + TryRead(str8_deserial_read_struct(vm->program, vm->cursor, &vm->opcode), vm->cursor, exit); + + // special opcodes + if (vm->opcode >= vm->header.opcode_base) { + U32 adjusted_opcode = (U32)(vm->opcode - vm->header.opcode_base); + U32 op_advance = adjusted_opcode / vm->header.line_range; + S32 line_advance = (S64)vm->header.line_base + ((S64)adjusted_opcode) % (S64)vm->header.line_range; + U64 addr_advance = vm->header.min_inst_len * ((vm->state.op_index + op_advance) / vm->header.max_ops_for_inst); + + if (vm->header.line_range > 0 && vm->header.max_ops_for_inst > 0) { + adjusted_opcode = (U32)(vm->opcode - vm->header.opcode_base); + op_advance = adjusted_opcode / vm->header.line_range; + line_advance = (S32)vm->header.line_base + ((S32)adjusted_opcode) % (S32)vm->header.line_range; + addr_advance = vm->header.min_inst_len * ((vm->state.op_index+op_advance) / vm->header.max_ops_for_inst); + } + + vm->state.address += addr_advance; + vm->state.op_index = (vm->state.op_index + op_advance) % vm->header.max_ops_for_inst; + vm->state.line = (U64)((S64)vm->state.line + line_advance); + vm->state.basic_block = 0; + vm->state.prologue_end = 0; + vm->state.epilogue_begin = 0; + vm->state.discriminator = 0; + + vm->line_advance = line_advance; + vm->addr_advance = addr_advance; + vm->new_line = 1; + } else { + // standard opcodes + switch (vm->opcode) { + case DW_StdOpcode_Copy: { + vm->new_line = 1; + + vm->state.discriminator = 0; + vm->state.basic_block = 0; + vm->state.prologue_end = 0; + vm->state.epilogue_begin = 0; + } break; + + case DW_StdOpcode_AdvancePc: { + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &vm->operands[0].u64), vm->cursor, exit); + dw_line_vm_advance(vm, vm->operands[0].u64); + } break; + + case DW_StdOpcode_AdvanceLine: { + TryRead(str8_deserial_read_sleb128(vm->program, vm->cursor, &vm->operands[0].s64), vm->cursor, exit); + vm->state.line += vm->operands[0].s64; + } break; + + case DW_StdOpcode_SetFile: { + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &vm->operands[0].u64), vm->cursor, exit); + vm->state.file_index = vm->operands[0].u64; + } break; + + case DW_StdOpcode_SetColumn: { + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &vm->operands[0].u64), vm->cursor, exit); + vm->state.column = vm->operands[0].u64; + } break; + + case DW_StdOpcode_NegateStmt: { + vm->state.is_stmt = !vm->state.is_stmt; + } break; + + case DW_StdOpcode_SetBasicBlock: { + vm->state.basic_block = 1; + } break; + + case DW_StdOpcode_ConstAddPc: { + U64 advance = (0xffu - vm->header.opcode_base) / vm->header.line_range; + dw_line_vm_advance(vm, advance); + } break; + + case DW_StdOpcode_FixedAdvancePc: { + U16 fixed_advance = 0; + TryRead(str8_deserial_read_struct(vm->program, vm->cursor, &fixed_advance), vm->cursor, exit); + vm->operands[0].u64 = fixed_advance; + vm->state.address += vm->operands[0].u64; + vm->state.op_index = 0; + } break; + + case DW_StdOpcode_SetPrologueEnd: { + vm->state.prologue_end = 1; + } break; + + case DW_StdOpcode_SetEpilogueBegin: { + vm->state.epilogue_begin = 1; + } break; + + case DW_StdOpcode_SetIsa: { + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &vm->operands[0].u64), vm->cursor, exit); + vm->state.isa = vm->operands[0].u64; + } break; + + // extended opcodes + case DW_StdOpcode_ExtendedOpcode: { + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &vm->ext_length), vm->cursor, exit); + String8 ext_data = str8_substr(vm->program, r1u64(vm->cursor, vm->cursor + vm->ext_length)); + vm->cursor += vm->ext_length; + + U64 ext_cursor = 0; + TryRead(str8_deserial_read_struct(ext_data, ext_cursor, &vm->ext_opcode), ext_cursor, exit); + + switch (vm->ext_opcode) { + case DW_ExtOpcode_EndSequence: { + vm->new_seq = 1; + vm->new_line = 1; + vm->state.end_sequence = 1; + } break; + + case DW_ExtOpcode_SetAddress: { + TryRead(str8_deserial_read(ext_data, ext_cursor, &vm->operands[0].u64, vm->header.address_size, vm->header.address_size), ext_cursor, exit); + vm->state.address = vm->operands[0].u64; + vm->state.op_index = 0; + } break; + + case DW_ExtOpcode_DefineFile: { + TryRead(str8_deserial_read_cstr (ext_data, ext_cursor, &vm->operands[0].string), ext_cursor, exit); // file name + TryRead(str8_deserial_read_uleb128(ext_data, ext_cursor, &vm->operands[1].u64), ext_cursor, exit); // dir index + TryRead(str8_deserial_read_uleb128(ext_data, ext_cursor, &vm->operands[2].u64), ext_cursor, exit); // modify time + TryRead(str8_deserial_read_uleb128(ext_data, ext_cursor, &vm->operands[3].u64), ext_cursor, exit); // file size + + if (vm->ext_file_ht == 0) { + vm->ext_file_ht = hash_table_init(vm->arena, 512); + } + + DW_LineFile *file = push_array(vm->arena, DW_LineFile, 1); + file->path = vm->operands[0].string; + file->dir_idx = vm->operands[1].u64; + file->time_stamp = vm->operands[2].u64; + file->size = vm->operands[3].u64; + + if (hash_table_search_u64_raw(vm->ext_file_ht, vm->state.file_index) == 0) { + vm->error = push_str8f(vm->arena, "file with index %I64d was already defined", vm->state.file_index); + goto exit; + } + + hash_table_push_u64_raw(vm->arena, vm->ext_file_ht, vm->state.file_index, file); + } break; + + case DW_ExtOpcode_SetDiscriminator: { + TryRead(str8_deserial_read_uleb128(ext_data, ext_cursor, &vm->operands[0].u64), ext_cursor, exit); + vm->state.discriminator = vm->operands[0].u64; + } break; + + default: { NotImplemented; } break; + } + } break; + + default: { + // skip unknown opcode + if (0 == vm->opcode || vm->opcode > vm->header.num_opcode_lens) { goto exit; } + for EachIndex(i, vm->header.opcode_lens[vm->opcode - 1]) { + U64 v = 0; + TryRead(str8_deserial_read_uleb128(vm->program, vm->cursor, &v), vm->cursor, exit); + } + } break; + } + } + + is_ok = 1; + exit:; + return is_ok; +} + +internal DW_LineFile * +dw_line_vm_find_file(DW_LineVM *vm, U64 file_idx) +{ + DW_LineFile *file = 0; + if (file == 0 && file_idx < vm->header.file_table.count) { + file = &vm->header.file_table.v[file_idx]; + } else if (vm->ext_file_ht) { + file = hash_table_search_u64_raw(vm->ext_file_ht, file_idx); + } + return file; +} + +internal String8 +dw_path_from_file(Arena *arena, String8Array dir_table, DW_LineFile *file) +{ + Temp scratch = scratch_begin(&arena, 1); + + // directory table must contain at least compile unit directory + Assert(dir_table.count > 0); + + // find directory and file name associated with the file index + String8 dir = dir_table.v[file->dir_idx]; + String8 path = file->path; + + // infer path style if directory is empty use file name + PathStyle style = path_style_from_str8(dir); + if (style == PathStyle_Null || style == PathStyle_Relative) { + style = path_style_from_str8(file->path); + } + + String8List path_list = {0}; + { + // directories that start with ".." are relative to the compile unit directory + if (str8_match_lit("..", dir, StringMatchFlag_RightSideSloppy)) { + String8List comp_dir = str8_split_path(scratch.arena, dir_table.v[0]); + str8_list_concat_in_place(&path_list, &comp_dir); + } + + // push directory + String8List dir_list = str8_split_path(scratch.arena, dir); + str8_list_concat_in_place(&path_list, &dir_list); + + // push file name + str8_list_push(scratch.arena, &path_list, file->path); + + // resolve dots in the path + str8_path_list_resolve_dots_in_place(&path_list, style); + } + + // join path + String8 result = str8_path_list_join_by_style(arena, &path_list, style); + + scratch_end(scratch); + return result; +} + +internal DW_PubStringsTable +dw_v4_pub_strings_table_from_section_kind(Arena *arena, DW_Raw *input, DW_SectionKind section_kind) +{ + Temp scratch = scratch_begin(&arena, 1); + + DW_PubStringsTable names_table = {0}; + names_table.size = 16384; + names_table.buckets = push_array(arena, DW_PubStringsBucket*, names_table.size); + + String8 section_data = input->sec[section_kind].data; + for(U64 cursor = 0; cursor < section_data.size; ) { + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(input->sec[DW_Section_Info].data, 0, &first_four_bytes) != sizeof(first_four_bytes)) { break; } + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + U64 unit_length = 0; + U64 unit_length_size = str8_deserial_read_dwarf_packed_size(section_data, cursor, &unit_length); + if (unit_length_size == 0) { + break; + } + cursor += unit_length_size; + + U64 cursor_opl = Min(cursor + unit_length, section_data.size); + if (cursor >= cursor_opl) { + break; + } + + DW_Version unit_version = 0; + cursor += str8_deserial_read_struct(section_data, cursor, &unit_version); + if (cursor >= cursor_opl) { + break; + } + + U64 debug_info_off = 0; + cursor += str8_deserial_read_dwarf_uint(section_data, cursor, format, &debug_info_off); + if (cursor >= cursor_opl) { + break; + } + + U64 debug_info_length = 0; + cursor += str8_deserial_read_dwarf_packed_size(section_data, cursor, &debug_info_length); + if (cursor >= cursor_opl) { + break; + } + + U64 off_size = dw_size_from_format(format); + for (; (cursor + off_size) <= cursor_opl;) { + U64 info_off = 0; + U64 info_off_size = str8_deserial_read_dwarf_uint(section_data, cursor, format, &info_off); + cursor += info_off_size; + + if (info_off_size == 0 || info_off == 0) { + break; + } + + String8 string = {0}; + cursor += str8_deserial_read_cstr(section_data, cursor, &string); + + U64 hash = dw_hash_from_string(string); + U64 bucket_idx = hash % names_table.size; + + DW_PubStringsBucket *bucket = push_array(arena, DW_PubStringsBucket, 1); + bucket->next = names_table.buckets[bucket_idx]; + bucket->string = string; + bucket->info_off = info_off; + bucket->cu_info_off = debug_info_off; + names_table.buckets[bucket_idx] = bucket; + } + } + + scratch_end(scratch); + return names_table; +} + +internal DW_Expr +dw_expr_from_data(Arena *arena, DW_Format format, U64 addr_size, String8 data) +{ + DW_Expr expr = {0}; + for (U64 cursor = 0, inst_start = 0; cursor < data.size; inst_start = cursor) { + // read opcode + DW_ExprOp opcode = 0; + U64 opcode_size = str8_deserial_read_struct(data, cursor, &opcode); + if (opcode_size == 0) { break; } + cursor += opcode_size; + + // read operands + U64 operand_count = dw_operand_count_from_expr_op(opcode); + DW_ExprOperandType *operand_types = dw_operand_types_from_expr_opcode(opcode); + DW_ExprOperand operands[2] = {0}; + for EachIndex(operand_idx, operand_count) { + U64 operand_size = 0; + switch (operand_types[operand_idx]) { + case DW_ExprOperandType_Null: { } break; + case DW_ExprOperandType_U8: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].u8); } break; + case DW_ExprOperandType_U16: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].u16); } break; + case DW_ExprOperandType_U32: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].u32); } break; + case DW_ExprOperandType_U64: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].u64); } break; + case DW_ExprOperandType_S8: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].s8); } break; + case DW_ExprOperandType_S16: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].s16); } break; + case DW_ExprOperandType_S32: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].s32); } break; + case DW_ExprOperandType_S64: { operand_size = str8_deserial_read_struct(data, cursor, &operands[operand_idx].s64); } break; + case DW_ExprOperandType_ULEB128: { operand_size = str8_deserial_read_uleb128(data, cursor, &operands[operand_idx].u64); } break; + case DW_ExprOperandType_SLEB128: { operand_size = str8_deserial_read_sleb128(data, cursor, &operands[operand_idx].s64); } break; + case DW_ExprOperandType_Addr: { operand_size = str8_deserial_read(data, cursor, &operands[operand_idx].u64, addr_size, addr_size); } break; + case DW_ExprOperandType_DwarfUInt: { operand_size = str8_deserial_read_dwarf_uint(data, cursor, format, &operands[operand_idx].u64); } break; + case DW_ExprOperandType_Block: { + U8 block_size; + U64 block_size_size = str8_deserial_read_struct(data, cursor, &block_size); + U64 block_read_size = str8_deserial_read_block(data, cursor + block_size_size, block_size, &operands[operand_idx].block); + if(block_read_size == block_size_size) { + operand_size = block_size_size + block_read_size; + } + } break; + default: { InvalidPath; } break; + } + if (operand_size == 0) { goto exit; } + cursor += operand_size; + } + + // fill out instruction + DW_ExprInst *inst = push_array(arena, DW_ExprInst, 1); + inst->opcode = opcode; + inst->size = cursor - inst_start; + inst->operands = operand_count ? push_array(arena, DW_ExprOperand, operand_count) : 0; + MemoryCopy(inst->operands, operands, operand_count * sizeof(DW_ExprOperand)); + + // push instruction + DLLPushBack(expr.first, expr.last, inst); + expr.count += 1; + } + exit:; + return expr; +} + +internal void +dw_cfa_inst_list_push_node(DW_CFA_InstList *list, DW_CFA_InstNode *n) +{ + SLLQueuePush(list->first, list->last, n); + list->count += 1; +} + +internal DW_CFA_InstNode * +dw_cfa_inst_list_push(Arena *arena, DW_CFA_InstList *list, DW_CFA_Inst v) +{ + DW_CFA_InstNode *n = push_array(arena, DW_CFA_InstNode, 1); + n->v = v; + dw_cfa_inst_list_push_node(list, n); + return n; +} + +internal U64 +dw_read_debug_frame_ptr(String8 data, DW_CIE *cie, U64 *ptr_out) +{ + U64 read_size = 0; + if (cie->segment_selector_size) { + NotImplemented; + } else { + read_size = str8_deserial_read(data, 0, ptr_out, cie->address_size, cie->address_size); + } + return read_size; +} + +internal U64 +dw_parse_descriptor_entry_header(String8 data, U64 off, DW_DescriptorEntry *desc_out) +{ + U32 first_four_bytes = 0; + str8_deserial_read_struct(data, off, &first_four_bytes); + DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + U64 length = 0; + U64 length_size = str8_deserial_read_dwarf_packed_size(data, off, &length); + if (length_size == 0) { goto exit; } + + Rng1U64 entry_range = rng_1u64(off, off + length_size + length); + String8 entry_data = str8_substr(data, entry_range); + U64 id = 0; + U64 id_size = str8_deserial_read_dwarf_uint(entry_data, length_size, format, &id); + if (id_size == 0) { goto exit; } + + U64 id_type = format == DW_Format_32Bit ? max_U32 : max_U64; + desc_out->format = format; + desc_out->type = (id == id_type) ? DW_DescriptorEntryKind_CIE : DW_DescriptorEntryKind_FDE; + desc_out->entry_range = entry_range; + desc_out->cie_pointer = id; + desc_out->cie_pointer_off = length_size; + + exit:; + return length + length_size; +} + +internal B32 +dw_parse_cie(String8 data, DW_Format format, Arch arch, DW_CIE *cie_out) +{ + B32 is_parsed = 0; + U64 cursor = format == DW_Format_32Bit ? 4 : 12; + + U64 cie_id = 0; + TryRead(str8_deserial_read_dwarf_uint(data, cursor, format, &cie_id), cursor, exit); + + U8 version = 0; + TryRead(str8_deserial_read_struct(data, cursor, &version), cursor, exit); + + String8 aug_string = {0}; + TryRead(str8_deserial_read_cstr(data, cursor, &aug_string), cursor, exit); + + U8 address_size = 0; + U8 segment_selector_size = 0; + if (version >= DW_Version_4) { + TryRead(str8_deserial_read_struct(data, cursor, &address_size), cursor, exit); + TryRead(str8_deserial_read_struct(data, cursor, &segment_selector_size), cursor, exit); + } else { + address_size = byte_size_from_arch(arch); + } + + U64 code_align_factor = 0; + TryRead(str8_deserial_read_uleb128(data, cursor, &code_align_factor), cursor, exit); + + S64 data_align_factor = 0; + TryRead(str8_deserial_read_sleb128(data, cursor, &data_align_factor), cursor, exit); + + U64 ret_addr_reg = 0; + if (version == DW_Version_1) { TryRead(str8_deserial_read(data, cursor, &ret_addr_reg, sizeof(U8), sizeof(U8)), cursor, exit); } + else { TryRead(str8_deserial_read_uleb128(data, cursor, &ret_addr_reg), cursor, exit); } + + if (aug_string.size > 0) { goto exit; } + + cie_out->insts = str8_skip(data, cursor); + cie_out->aug_string = aug_string; + cie_out->code_align_factor = code_align_factor; + cie_out->data_align_factor = data_align_factor; + cie_out->ret_addr_reg = ret_addr_reg; + cie_out->format = format; + cie_out->version = version; + cie_out->address_size = address_size; + cie_out->segment_selector_size = segment_selector_size; + + is_parsed = 1; + exit:; + return is_parsed; +} + +internal B32 +dw_parse_fde(String8 data, DW_Format format, DW_CIE *cie, DW_FDE *fde_out) +{ + B32 is_parsed = 0; + U64 cursor = format == DW_Format_32Bit ? 4 : 12; + + // extract CIE pointer + U64 cie_pointer = 0; + TryRead(str8_deserial_read_dwarf_uint(data, cursor, format, &cie_pointer), cursor, exit); + + // extract address of first instruction + U64 pc_begin = 0; + TryRead(dw_read_debug_frame_ptr(str8_skip(data, cursor), cie, &pc_begin), cursor, exit); + + // extract instruction range size + U64 pc_range = 0; + TryRead(dw_read_debug_frame_ptr(str8_skip(data, cursor), cie, &pc_range), cursor, exit); + + // parse augmentation data + String8 aug_data = str8_substr(data, rng_1u64(cursor, cursor + cie->aug_data.size)); + cursor += cie->aug_data.size; + + // commit values to out + fde_out->format = format; + fde_out->cie_pointer = cie_pointer; + fde_out->pc_range = rng_1u64(pc_begin, pc_begin + pc_range); + fde_out->insts = str8_skip(data, cursor); + + is_parsed = 1; + exit:; + return is_parsed; +} + +internal B32 +dw_parse_cfi(String8 data, U64 fde_offset, Arch arch, DW_CIE *cie_out, DW_FDE *fde_out) +{ + B32 is_parsed = 0; + DW_DescriptorEntry fde_desc = {0}; + dw_parse_descriptor_entry_header(data, fde_offset, &fde_desc); + if (fde_desc.type == DW_DescriptorEntryKind_FDE) { + U64 cie_pointer_off = fde_desc.format == DW_Format_32Bit ? 4 : 12; + U64 cie_pointer = 0; + U64 cie_pointer_size = str8_deserial_read_dwarf_uint(data, fde_offset + cie_pointer_off, fde_desc.format, &cie_pointer); + if (cie_pointer_size) { + DW_DescriptorEntry cie_desc = {0}; + dw_parse_descriptor_entry_header(data, cie_pointer, &cie_desc); + if (cie_desc.type == DW_DescriptorEntryKind_CIE) { + if (dw_parse_cie(str8_substr(data, cie_desc.entry_range), cie_desc.format, arch, cie_out)) { + if (dw_parse_fde(str8_substr(data, fde_desc.entry_range), fde_desc.format, cie_out, fde_out)) { + is_parsed = 1; + } + } + } + } + } + + return is_parsed; +} + +internal DW_CFA_ParseErrorCode +dw_parse_cfa_inst(String8 data, + U64 code_align_factor, + S64 data_align_factor, + DW_DecodePtr *decode_ptr_func, + void *decode_ptr_ud, + U64 *bytes_read_out, + DW_CFA_Inst *inst_out) +{ + *bytes_read_out = 0; + + DW_CFA_ParseErrorCode error_code = DW_CFA_ParseErrorCode_End; + U64 cursor = 0; + + // read opcode + DW_CFA_Opcode raw_opcode = 0; + TryRead(str8_deserial_read_struct(data, cursor, &raw_opcode), cursor, exit); + + // decode opcode implicit operand + U64 opcode = raw_opcode & ~DW_CFA_Mask_OpcodeHi; + U64 implicit_operand = 0; + if ((raw_opcode & DW_CFA_Mask_OpcodeHi) != 0) { + opcode = raw_opcode & DW_CFA_Mask_OpcodeHi; + implicit_operand = raw_opcode & DW_CFA_Mask_Operand; + } + + // decode operands + DW_CFA_Operand operands[DW_CFA_OperandMax] = {0}; + switch (opcode) { + case DW_CFA_SetLoc: { + U64 address_size = decode_ptr_func(str8_skip(data, cursor), decode_ptr_ud, &operands[0].u64); + if (address_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += address_size; + } break; + case DW_CFA_AdvanceLoc: { + operands[0].u64 = implicit_operand * code_align_factor; + } break; + case DW_CFA_AdvanceLoc1: { + U8 delta = 0; + U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); + if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += delta_size; + operands[0].u64 = delta * code_align_factor; + } break; + case DW_CFA_AdvanceLoc2: { + U16 delta = 0; + U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); + if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += delta_size; + operands[0].u64 = delta * code_align_factor; + } break; + case DW_CFA_AdvanceLoc4: { + U32 delta = 0; + U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); + if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += delta_size; + operands[0].u64 = delta * code_align_factor; + } break; + case DW_CFA_DefCfa: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = reg; + operands[1].u64 = offset; + } break; + case DW_CFA_DefCfaSf: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + S64 offset = 0; + U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = reg; + operands[1].s64 = offset * data_align_factor; + } break; + case DW_CFA_DefCfaRegister: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + operands[0].u64 = reg; + } break; + case DW_CFA_DefCfaOffset: { + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = offset; + } break; + case DW_CFA_DefCfaOffsetSf: { + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = offset * data_align_factor; + } break; + case DW_CFA_DefCfaExpr: { + U64 expr_size = 0; + U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); + if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += expr_size_size; + + if (cursor + expr_size > data.size) { goto exit; } + String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); + + operands[0].block = expr; + cursor += expr_size; + } break; + case DW_CFA_Undefined: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + operands[0].u64 = reg; + } break; + case DW_CFA_SameValue: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + operands[0].u64 = reg; + } break; + case DW_CFA_Offset: { + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = implicit_operand; + operands[1].s64 = (S64)offset * data_align_factor; + } break; + case DW_CFA_OffsetExt: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = reg; + operands[1].u64 = offset * data_align_factor; + } break; + case DW_CFA_OffsetExtSf: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + S64 offset = 0; + U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = reg; + operands[1].s64 = offset * data_align_factor; + } break; + case DW_CFA_ValOffset: { + U64 val = 0; + U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); + if (val_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += val_size; + + U64 offset = 0; + U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = val; + operands[1].u64 = offset * data_align_factor; + } break; + case DW_CFA_ValOffsetSf: { + U64 val = 0; + U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); + if (val_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += val_size; + + S64 offset = 0; + U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); + if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += offset_size; + + operands[0].u64 = val; + operands[1].s64 = offset; + } break; + case DW_CFA_Register: { + U64 dst_reg = 0; + U64 dst_reg_size = str8_deserial_read_uleb128(data, cursor, &dst_reg); + if (dst_reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += dst_reg_size; + + U64 src_reg = 0; + U64 src_reg_size = str8_deserial_read_uleb128(data, cursor, &src_reg); + if (src_reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += src_reg_size; + + operands[0].u64 = dst_reg; + operands[1].u64 = src_reg; + } break; + case DW_CFA_Expr: { + U64 reg = 0; + U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); + if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += reg_size; + + U64 expr_size = 0; + U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); + if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += expr_size_size; + + if (cursor + expr_size > data.size) { goto exit; } + String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); + cursor += expr_size; + + operands[0].u64 = reg; + operands[1].block = expr; + } break; + case DW_CFA_ValExpr: { + U64 val = 0; + U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); + if (val_size == 0) { goto exit; } + cursor += val_size; + + U64 expr_size = 0; + U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); + if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } + cursor += expr_size_size; + + if (cursor + expr_size > data.size) { goto exit; } + String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); + cursor += expr_size; + + operands[0].u64 = val; + operands[1].block = expr; + } break; + case DW_CFA_Restore: { + operands[0].u64 = implicit_operand; + } break; + case DW_CFA_RestoreExt: {} break; + case DW_CFA_RememberState: {} break; + case DW_CFA_RestoreState: {} break; + case DW_CFA_Nop: {} break; + default: { goto exit; } break; + } + + // fill out output + inst_out->opcode = opcode; + MemoryCopyTyped(&inst_out->operands[0], &operands[0], DW_CFA_OperandMax); + + *bytes_read_out = cursor; + + error_code = DW_CFA_ParseErrorCode_NewInst; + + exit:; + return error_code; +} + +internal DW_CFA_InstList +dw_parse_cfa_inst_list(Arena *arena, + String8 data, + U64 code_align_factor, + S64 data_align_factor, + DW_DecodePtr *decode_ptr_func, + void *decode_ptr_ud) +{ + U64 pos = arena_pos(arena); + DW_CFA_InstList list = {0}; + for (U64 cursor = 0, inst_size; cursor < data.size; cursor += inst_size) { + DW_CFA_Inst inst = {0}; + DW_CFA_ParseErrorCode error_code = dw_parse_cfa_inst(str8_skip(data, cursor), code_align_factor, data_align_factor, decode_ptr_func, decode_ptr_ud, &inst_size, &inst); + if (error_code == DW_CFA_ParseErrorCode_End) { break; } + if (error_code != DW_CFA_ParseErrorCode_NewInst) { + MemoryZeroStruct(&list); + arena_pop_to(arena, pos); + break; + } + dw_cfa_inst_list_push(arena, &list, inst); + } + return list; +} + +internal +DW_DECODE_PTR(dw_decode_ptr_debug_frame) +{ + return dw_read_debug_frame_ptr(data, ud, ptr_out); +} + diff --git a/obsolete/dwarf/dwarf_parse_old.h b/obsolete/dwarf/dwarf_parse_old.h new file mode 100644 index 00000000..2bddbe72 --- /dev/null +++ b/obsolete/dwarf/dwarf_parse_old.h @@ -0,0 +1,528 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_PARSE_H +#define DWARF_PARSE_H + +typedef struct DW_Section +{ + String8 name; + String8 data; + B32 is_dwo; +} DW_Section; + +typedef struct DW_Raw +{ + DW_Section sec[DW_Section_COUNT]; + DW_Section sup[DW_Section_COUNT]; +} DW_Raw; + +typedef struct DW_ListUnit +{ + DW_Version version; + U64 address_size; + U64 segment_selector_size; + U64 entry_size; + String8 entries; +} DW_ListUnit; + +typedef struct DW_ListUnitInput +{ + U64 addr_count; + U64 str_offset_count; + U64 rnglist_count; + U64 loclist_count; + Rng1U64Array addr_ranges; + Rng1U64Array str_offset_ranges; + Rng1U64Array rnglist_ranges; + Rng1U64Array loclist_ranges; + DW_ListUnit *addrs; + DW_ListUnit *str_offsets; + DW_ListUnit *rnglists; + DW_ListUnit *loclists; +} DW_ListUnitInput; + +typedef struct DW_AbbrevTableEntry +{ + U64 id; + U64 off; +} DW_AbbrevTableEntry; + +typedef struct DW_AbbrevTable DW_AbbrevTable; +struct DW_AbbrevTable +{ + U64 count; + DW_AbbrevTableEntry *entries; +}; + +typedef enum DW_AbbrevKind +{ + DW_Abbrev_Null, + DW_Abbrev_Tag, + DW_Abbrev_Attrib, + DW_Abbrev_AttribSequenceEnd, + DW_Abbrev_DIEBegin, + DW_Abbrev_DIEEnd, +} DW_AbbrevKind; + +typedef U32 DW_AbbrevFlags; +enum +{ + DW_AbbrevFlag_HasImplicitConst = (1 << 0), + DW_AbbrevFlag_HasChildren = (1 << 1), +}; + +typedef struct DW_Abbrev +{ + DW_AbbrevKind kind; + U64 sub_kind; + U64 id; + S64 implicit_const; + DW_AbbrevFlags flags; +} DW_Abbrev; + +typedef struct DW_Attrib +{ + U64 info_off; + U64 abbrev_off; + U64 abbrev_id; + DW_AttribKind attrib_kind; + DW_Form form; +} DW_Attrib; + +typedef struct DW_AttribNode +{ + struct DW_AttribNode *next; + DW_Attrib v; +} DW_AttribNode; + +typedef struct DW_AttribList +{ + DW_AttribNode *first; + DW_AttribNode *last; + U64 count; +} DW_AttribList; + +typedef U8 DW_TagSpare; +typedef struct DW_Tag +{ + B32 has_children; + U64 abbrev_id; + DW_TagKind kind; + DW_AttribList attribs; + U64 info_off; + DW_TagSpare v; +} DW_Tag; + +typedef struct DW_TagNode +{ + DW_Tag tag; + struct DW_TagNode *sibling; + struct DW_TagNode *first_child; + struct DW_TagNode *last_child; +} DW_TagNode; + +typedef struct DW_Loc +{ + Rng1U64 range; + String8 expr; +} DW_Loc; + +typedef struct DW_LocNode +{ + DW_Loc v; + struct DW_LocNode *next; +} DW_LocNode; + +typedef struct DW_LocList +{ + U64 count; + DW_LocNode *first; + DW_LocNode *last; +} DW_LocList; + +typedef struct DW_CompUnit +{ + B32 relaxed; + DW_Ext ext; + DW_CompUnitKind kind; + DW_Version version; + DW_Format format; + U64 address_size; + U64 abbrev_off; + Rng1U64 info_range; + U64 first_tag_info_off; + DW_AbbrevTable abbrev_table; + DW_ListUnit *addr_lu; + DW_ListUnit *str_offsets_lu; + DW_ListUnit *rnglists_lu; + DW_ListUnit *loclists_lu; + U64 low_pc; + U64 dwo_id; + DW_Tag tag; + HashTable *tag_ht; +} DW_CompUnit; + +typedef struct DW_TagTree +{ + DW_TagNode *root; + U64 tag_count; +} DW_TagTree; + +//////////////////////////////// + +typedef struct DW_LineFile +{ + String8 path; + U64 dir_idx; + U64 time_stamp; + U64 size; + U128 md5; + String8 source; +} DW_LineFile; + +typedef struct DW_LineFileNode +{ + struct DW_LineFileNode *next; + DW_LineFile file; +} DW_LineFileNode; + +typedef struct DW_LineFileList +{ + U64 node_count; + DW_LineFileNode *first; + DW_LineFileNode *last; +} DW_LineFileList; + +typedef struct DW_LineFileArray +{ + U64 count; + DW_LineFile *v; +} DW_LineFileArray; + +typedef struct DW_LineVMHeader +{ + U64 unit_length; + DW_Version version; + U8 address_size; // Duplicates size from the compilation unit but is needed to support stripped exe that just have .debug_line and .debug_line_str. + U8 segment_selector_size; + U64 header_length; + U8 min_inst_len; + U8 max_ops_for_inst; + U8 default_is_stmt; + S8 line_base; + U8 line_range; + U8 opcode_base; + U64 num_opcode_lens; + U8 *opcode_lens; + U64 line_program_off; + String8Array dir_table; + DW_LineFileArray file_table; +} DW_LineVMHeader; + +typedef struct DW_LineVMState +{ + U64 address; // Address of a machine instruction. + U32 op_index; // This is used by the VLIW instructions to indicate index of operation inside the instruction. + + // Line table doesn't contain full path to a file, instead + // DWARF encodes path as two indices. First index will point into a directory + // table, and second points into a file name table. + U64 file_index; + + U64 line; + U64 column; + + B32 is_stmt; // Indicates that "address" points to place suitable for a breakpoint. + B32 basic_block; // Indicates that the "address" is inside a basic block. + + // Indicates that "address" points to place where function starts. + // Usually prologue is the place where compiler emits instructions to + // prepare stack for a function. + B32 prologue_end; + + B32 epilogue_begin; // Indicates that "address" points to section where function exits and unwinds stack. + U64 isa; // Instruction set that is used. + U64 discriminator; // Arbitrary id that indicates to which block these instructions belong. + B32 end_sequence; // Indicates that "address" points to the first instruction in the instruction block that follows. +} DW_LineVMState; + +typedef struct DW_LineVM +{ + Arena *arena; + U64 cursor; + String8 program; + DW_LineVMHeader header; + B32 new_line; + B32 new_seq; + B32 skip_opcode; + DW_LineVMState state; + U64 advance; + U64 opcode_off; + DW_StdOpcode opcode; + DW_ExtOpcode ext_opcode; + U64 ext_length; + U64 line_advance; + U64 addr_advance; + HashTable *ext_file_ht; + struct { + union { + String8 string; + U64 u64; + S64 s64; + }; + } operands[4]; + String8 error; +} DW_LineVM; + +//////////////////////////////// +// .debug_pubnames and .debug_pubtypes + +typedef struct DW_PubStringsBucket +{ + struct DW_PubStringsBucket *next; + String8 string; + U64 info_off; + U64 cu_info_off; +} DW_PubStringsBucket; + +typedef struct DW_PubStringsTable +{ + U64 size; + DW_PubStringsBucket **buckets; +} DW_PubStringsTable; + +typedef struct DW_Reference +{ + DW_CompUnit *cu; + U64 info_off; // global .debug_info offset +} DW_Reference; + +//////////////////////////////// +//~ Expression + +typedef union DW_ExprOperand +{ + U8 u8; + U16 u16; + U32 u32; + U64 u64; + + S8 s8; + S16 s16; + S32 s32; + S64 s64; + + String8 block; +} DW_ExprOperand; + +typedef struct DW_ExprInst +{ + DW_ExprOp opcode; + DW_ExprOperand *operands; + U64 size; + struct DW_ExprInst *next; + struct DW_ExprInst *prev; +} DW_ExprInst; + +typedef struct DW_Expr +{ + U64 count; + DW_ExprInst *first; + DW_ExprInst *last; +} DW_Expr; + +//////////////////////////////// +// .debug_frame + +typedef struct DW_CIE +{ + String8 insts; + String8 aug_string; + String8 aug_data; + U64 code_align_factor; + S64 data_align_factor; + U64 ret_addr_reg; + U64 ext[4]; + DW_Format format; + U8 version; + U8 address_size; + U8 segment_selector_size; +} DW_CIE; + +typedef struct DW_FDE +{ + DW_Format format; + U64 cie_pointer; + Rng1U64 pc_range; + String8 insts; +} DW_FDE; + +typedef union DW_CFA_Operand +{ + U64 u64; + S64 s64; + String8 block; +} DW_CFA_Operand; + +typedef enum +{ + DW_CFA_ParseErrorCode_NewInst, + DW_CFA_ParseErrorCode_End, + DW_CFA_ParseErrorCode_OutOfData +} DW_CFA_ParseErrorCode; + +typedef struct DW_CFA_Inst +{ + DW_CFA_Opcode opcode; + DW_CFA_Operand operands[DW_CFA_OperandMax]; +} DW_CFA_Inst; + +typedef struct DW_CFA_InstNode +{ + DW_CFA_Inst v; + struct DW_CFA_InstNode *next; +} DW_CFA_InstNode; + +typedef struct DW_CFA_InstList +{ + U64 count; + DW_CFA_InstNode *first; + DW_CFA_InstNode *last; +} DW_CFA_InstList; + +#define DW_DECODE_PTR(name) U64 name(String8 data, void *ud, U64 *ptr_out) +typedef DW_DECODE_PTR(DW_DecodePtr); + +// hasher + +internal U64 dw_hash_from_string(String8 string); + +// deserial helpers + +internal U64 str8_deserial_read_dwarf_packed_size(String8 string, U64 off, U64 *size_out); +internal U64 str8_deserial_read_dwarf_uint (String8 string, U64 off, DW_Format format, U64 *uint_out); +internal U64 str8_deserial_read_uleb128_array(Arena *arena, String8 string, U64 off, U64 count, U64 **arr_out); +internal U64 str8_deserial_read_sleb128_array(Arena *arena, String8 string, U64 off, U64 count, S64 **arr_out); + +internal Rng1U64List dw_unit_ranges_from_data(Arena *arena, String8 data); +internal Rng1U64Array dw_unit_ranges_from_data_arr(Arena *arena, String8 data); + +// list units + +internal U64 dw_read_list_unit_header_addr (String8 unit_data, DW_ListUnit *lu_out); +internal U64 dw_read_list_unit_header_str_offsets(String8 unit_data, DW_ListUnit *lu_out); +internal U64 dw_read_list_unit_header_list (String8 unit_data, DW_ListUnit *lu_out); + +internal DW_ListUnitInput dw_list_unit_input_from_input(Arena *arena, DW_Raw *input); + +internal U64 dw_offset_from_list_unit(DW_ListUnit *lu, U64 index); +internal U64 dw_addr_from_list_unit (DW_ListUnit *lu, U64 index); + +// abbrev table + +internal U64 dw_read_abbrev_tag (String8 data, U64 offset, DW_Abbrev *out_abbrev); +internal U64 dw_read_abbrev_attrib(String8 data, U64 offset, DW_Abbrev *out_abbrev); + +internal DW_AbbrevTable dw_read_abbrev_table(Arena *arena, String8 abbrev_data, U64 abbrev_base); +internal U64 dw_abbrev_offset_from_abbrev_id(DW_AbbrevTable table, U64 abbrev_id); + +// form and tag + +internal B32 dw_read_form (String8 data, DW_Version version, DW_Format unit_format, U64 address_size, DW_FormKind form_kind, S64 implicit_const, DW_Form *form_out, U64 *bytes_read_out); +internal U64 dw_read_tag (Arena *arena, DW_Raw *input, DW_AbbrevTable abbrev_table, DW_Version version, DW_Format format, U64 address_size, Rng1U64 cu_info_range, U64 tag_info_off, DW_Tag *tag_out); +internal U64 dw_read_tag_cu(Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 info_off, DW_Tag *tag_out); + +// attrib interp + +internal U64 dw_interp_sec_offset(DW_Form form); +internal String8 dw_interp_exprloc (DW_Form form); +internal U128 dw_interp_const_u128(DW_Form form); +internal U64 dw_interp_const_u64 (DW_Form form); +internal U32 dw_interp_const_u32 (DW_Form form); +internal S64 dw_interp_const_s64 (DW_Form form); +internal S32 dw_interp_const_s32 (DW_Form form); +internal B32 dw_interp_flag (DW_Form form); +internal U64 dw_interp_address (U64 address_size, U64 base_addr, DW_ListUnit *addr_xlist, DW_Form form); +internal String8 dw_interp_block (DW_Raw *input, DW_CompUnit *cu, DW_Form form); +internal String8 dw_interp_string (DW_Raw *input, DW_Format unit_format, DW_ListUnit *str_offsets, DW_Form form); +internal String8 dw_interp_line_ptr (DW_Raw *input, DW_Form form); +internal DW_LineFile * dw_interp_file (DW_LineVM *line_vm, DW_Form form); +internal DW_Reference dw_interp_ref (DW_Raw *input, DW_CompUnit *cu, DW_Form form); +internal DW_LocList dw_interp_loclist (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Form form); +internal Rng1U64List dw_interp_rnglist (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Form form); + +internal String8 dw_exprloc_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U128 dw_const_u128_from_attrib(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U64 dw_const_u64_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U32 dw_const_u32_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal S64 dw_const_s64_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal S32 dw_const_s32_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal B32 dw_flag_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal U64 dw_address_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_block_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_string_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal String8 dw_line_ptr_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal DW_LineFile * dw_file_from_attrib (DW_CompUnit *cu, DW_LineVM *line_vm, DW_Attrib *attrib); +internal DW_Reference dw_ref_from_attrib (DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal DW_LocList dw_loclist_from_attrib (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal Rng1U64List dw_rnglist_from_attrib (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); + +internal String8 dw_exprloc_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U128 dw_const_u128_from_tag_attrib_kind(DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U64 dw_const_u64_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U32 dw_const_u32_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal B32 dw_flag_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal U64 dw_address_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_block_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_string_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal DW_LineFile * dw_file_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_LineVM *line_vm, DW_Tag tag, DW_AttribKind kind); +internal DW_Reference dw_ref_from_tag_attrib_kind (DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal DW_LocList dw_loclist_from_tag_attrib_kind (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +internal Rng1U64List dw_rnglist_from_tag_attrib_kind (Arena *arena, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); + +internal B32 dw_is_attrib_var_ref(DW_Raw *input, DW_CompUnit *cu, DW_Attrib *attrib); + +// compile unit + +internal DW_CompUnit dw_cu_from_info_off(Arena *arena, DW_Raw *input, DW_ListUnitInput lu_input, U64 offset, B32 relaxed); +internal DW_TagTree dw_tag_tree_from_cu(Arena *arena, DW_Raw *input, DW_CompUnit *cu); +internal HashTable * dw_make_tag_hash_table(Arena *arena, DW_TagTree tag_tree); +internal DW_TagNode * dw_tag_node_from_info_off(DW_CompUnit *cu, U64 info_off); + +// line VM + +internal U64 dw_read_line_vm_header(Arena *arena, DW_Raw *input, String8 cu_stmt_list, String8 cu_dir, String8 cu_name, U8 cu_address_size, DW_ListUnit *cu_str_offsets, DW_LineVMHeader *header_out); +internal DW_LineVM * dw_line_vm_init(DW_Raw *input, DW_CompUnit *cu); +internal void dw_line_vm_release(DW_LineVM *vm); +internal void dw_line_vm_advance(DW_LineVM *vm, U64 advance); +internal B32 dw_line_vm_step(DW_LineVM *vm); +internal DW_LineFile * dw_line_vm_find_file(DW_LineVM *vm, U64 file_idx); +internal String8 dw_path_from_file(Arena *arena, String8Array dir_table, DW_LineFile *file); + +// helper for .debug_pubtypes and .debug_pubnames + +internal DW_PubStringsTable dw_v4_pub_strings_table_from_section_kind(Arena *arena, DW_Raw *input, DW_SectionKind section_kind); + +// expression + +internal DW_Expr dw_expr_from_data(Arena *arena, DW_Format format, U64 addr_size, String8 data); + +// debug frame + +internal void dw_cfa_inst_list_push_node(DW_CFA_InstList *list, DW_CFA_InstNode *n); +internal DW_CFA_InstNode * dw_cfa_inst_list_push(Arena *arena, DW_CFA_InstList *list, DW_CFA_Inst v); + +internal U64 dw_read_debug_frame_ptr(String8 data, DW_CIE *cie, U64 *ptr_out); + +internal U64 dw_parse_descriptor_entry_header(String8 data, U64 off, DW_DescriptorEntry *desc_out); +internal B32 dw_parse_cie(String8 data, DW_Format format, Arch arch, DW_CIE *cie_out); +internal B32 dw_parse_fde(String8 data, DW_Format format, DW_CIE *cie, DW_FDE *fde_out); +internal B32 dw_parse_cfi(String8 data, U64 fde_offset, Arch arch, DW_CIE *cie_out, DW_FDE *fde_out); + +internal DW_CFA_ParseErrorCode dw_parse_cfa_inst(String8 data, U64 code_align_factor, S64 data_align_factor, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud, U64 *bytes_read_out, DW_CFA_Inst *inst_out); +internal DW_CFA_InstList dw_parse_cfa_inst_list(Arena *arena, String8 data, U64 code_align_factor, S64 data_align_factor, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud); + +#endif // DWARF_PARSE_H diff --git a/obsolete/dwarf/dwarf_unwind_old.c b/obsolete/dwarf/dwarf_unwind_old.c new file mode 100644 index 00000000..c8124236 --- /dev/null +++ b/obsolete/dwarf/dwarf_unwind_old.c @@ -0,0 +1,373 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal DW_CFI_Row * +dw_make_cfi_row(Arena *arena, U64 reg_count) +{ + DW_CFI_Row *row = push_array(arena, DW_CFI_Row, 1); + row->regs = push_array(arena, DW_CFI_Register, reg_count); + for EachIndex(reg_idx, reg_count) { + row->regs[reg_idx].rule = DW_CFI_RegisterRule_SameValue; + } + return row; +} + +internal void +dw_memcpy_cfi_row(DW_CFI_Row *dst, DW_CFI_Row *src, U64 reg_count) +{ + dst->cfa = src->cfa; + MemoryCopyTyped(dst->regs, src->regs, reg_count); +} + +internal DW_CFI_Row * +dw_copy_cfi_row(Arena *arena, DW_CFI_Row *row, U64 reg_count) +{ + DW_CFI_Row *new_row = dw_make_cfi_row(arena, reg_count); + dw_memcpy_cfi_row(new_row, row, reg_count); + return new_row; +} + +internal DW_CFI_Unwind * +dw_cfi_unwind_init(Arena *arena, + Arch arch, + DW_CIE *cie, + DW_FDE *fde, + DW_DecodePtr *decode_ptr_func, + void *decode_ptr_ud) +{ + Temp scratch = scratch_begin(&arena, 1); + + DW_CFI_Unwind *uw = push_array(arena, DW_CFI_Unwind, 1); + uw->insts = dw_parse_cfa_inst_list(arena, fde->insts, cie->code_align_factor, cie->data_align_factor, decode_ptr_func, decode_ptr_ud); + uw->cie = cie; + uw->fde = fde; + uw->pc = fde->pc_range.min; + uw->arch = arch; + uw->reg_count = dw_reg_count_from_arch(arch); + + // setup initial register rules + DW_CFA_InstList initial_insts = dw_parse_cfa_inst_list(scratch.arena, cie->insts, cie->code_align_factor, cie->data_align_factor, decode_ptr_func, decode_ptr_ud); + uw->row = dw_make_cfi_row(arena, uw->reg_count); + uw->curr_inst = initial_insts.first; + if (!dw_cfi_next_row(arena, uw)) { + AssertAlways(0 && "unable to interpret initial row instructions"); + } + + // make first row from initial rules + uw->initial_row = uw->row; + uw->row = dw_copy_cfi_row(arena, uw->initial_row, uw->reg_count); + uw->curr_inst = uw->insts.first; + + scratch_end(scratch); + return uw; +} + +internal B32 +dw_cfi_next_row(Arena *arena, DW_CFI_Unwind *uw) +{ + B32 is_row_valid = 0; + DW_CFA_InstNode *row_inst = uw->curr_inst; + + // skip leading nops + while (uw->curr_inst) { + if (uw->curr_inst->v.opcode != DW_CFA_Nop) { + break; + } + uw->curr_inst = uw->curr_inst->next; + } + + while (uw->curr_inst) { + DW_CFA_Inst *inst = &uw->curr_inst->v; + + // validate register operands + DW_CFA_OperandType *operand_types = dw_operand_types_from_cfa_op(inst->opcode); + U64 operand_count = dw_operand_count_from_cfa_opcode(inst->opcode); + for EachIndex(operand_idx, operand_count) { + if (operand_types[operand_idx] == DW_CFA_OperandType_Register) { + if (inst->operands[operand_idx].u64 >= uw->reg_count) { + goto exit; + } + } + } + + switch (inst->opcode) { + // Row Creation Instructions + case DW_CFA_SetLoc: { + uw->pc = inst->operands[0].u64; + } break; + case DW_CFA_AdvanceLoc: + case DW_CFA_AdvanceLoc1: + case DW_CFA_AdvanceLoc2: + case DW_CFA_AdvanceLoc4: { + uw->pc += inst->operands[0].u64; + } break; + + // CFA Definition Instructions + case DW_CFA_DefCfa: + case DW_CFA_DefCfaSf: { + U64 reg = inst->operands[0].u64; + S64 off = inst->operands[1].s64; + uw->row->cfa.rule = DW_CFA_Rule_RegOff; + uw->row->cfa.reg = reg; + uw->row->cfa.off = off; + } break; + case DW_CFA_DefCfaRegister: { + // TODO: report error: this operation is valid only if the current CFA rule is defined to register+offset + if (uw->row->cfa.rule != DW_CFA_Rule_RegOff) { goto exit; } + U64 reg = inst->operands[0].u64; + uw->row->cfa.reg = reg; + } break; + case DW_CFA_DefCfaOffset: + case DW_CFA_DefCfaOffsetSf: { + // TODO: report error: this operation is valid only if the current CFA rule is defined to register+offset + if (uw->row->cfa.rule != DW_CFA_Rule_RegOff) { goto exit; } + uw->row->cfa.off = inst->operands[0].s64; + } break; + case DW_CFA_DefCfaExpr: { + uw->row->cfa.rule = DW_CFA_Rule_Expression; + uw->row->cfa.expr = inst->operands[0].block; + } break; + + // Register Rule Instructions + case DW_CFA_Undefined: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_Undefined; + } break; + case DW_CFA_SameValue: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_SameValue; + } break; + case DW_CFA_Offset: + case DW_CFA_OffsetExt: + case DW_CFA_OffsetExtSf: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_Offset; + uw->row->regs[reg].n = inst->operands[1].s64; + } break; + case DW_CFA_ValOffset: + case DW_CFA_ValOffsetSf: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_ValOffset; + uw->row->regs[reg].n = inst->operands[1].s64; + } break; + case DW_CFA_Register: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_Register; + uw->row->regs[reg].n = inst->operands[1].s64; + } break; + case DW_CFA_Expr: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_Expression; + uw->row->regs[reg].expr = inst->operands[1].block; + } break; + case DW_CFA_ValExpr: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg].rule = DW_CFI_RegisterRule_ValExpression; + uw->row->regs[reg].expr = inst->operands[1].block; + } break; + case DW_CFA_Restore: + case DW_CFA_RestoreExt: { + U64 reg = inst->operands[0].u64; + uw->row->regs[reg] = uw->initial_row->regs[reg]; + } break; + + // Row State Instructions + case DW_CFA_RememberState: { + DW_CFI_Row *new_row = dw_copy_cfi_row(arena, uw->row, uw->reg_count); + SLLStackPush(uw->row, new_row); + } break; + case DW_CFA_RestoreState: { + if (uw->row == 0) { goto exit; } // TODO: report error: unbalanced number of pushes and pops + DW_CFI_Row *free_row = uw->row; + SLLStackPop(uw->row); + SLLStackPush(uw->free_rows, free_row); + } break; + + case DW_CFA_Nop: {} break; + + default: { NotImplemented; } break; // TODO: report error: unknown CFA opcode + } + + uw->curr_inst = uw->curr_inst->next; + if (uw->curr_inst) { + if (dw_is_new_row_cfa_opcode(uw->curr_inst->v.opcode)) { break; } + } + } + + is_row_valid = row_inst != 0; + exit:; + return is_row_valid; +} + +internal DW_CFI_Row * +dw_cfi_row_from_pc(Arena *arena, Arch arch, DW_CIE *cie, DW_FDE *fde, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ctx, U64 pc) +{ + Temp scratch = scratch_begin(&arena, 1); + + B32 is_row_found = 0; + U64 reg_count = dw_reg_count_from_arch(arch); + DW_CFI_Unwind *uw = dw_cfi_unwind_init(scratch.arena, arch, cie, fde, decode_ptr_func, decode_ptr_ctx); + DW_CFI_Row *row = dw_copy_cfi_row(scratch.arena, uw->row, uw->reg_count); + U64 prev_pc = uw->pc; + while (dw_cfi_next_row(scratch.arena, uw)) { + if (prev_pc <= pc && pc < uw->pc) { + is_row_found = 1; + break; + } + dw_memcpy_cfi_row(row, uw->row, uw->reg_count); + prev_pc = uw->pc; + } + + // handle last row + if (!is_row_found) { + if (contains_1u64(fde->pc_range, pc)) { + row = uw->row; + is_row_found = 1; + } + } + + // copy out final row + DW_CFI_Row *result = 0; + if (is_row_found) { + result = dw_copy_cfi_row(arena, row, reg_count); + } + + scratch_end(scratch); + return result; +} + +internal MachineOpResult +dw_compute_cfa(Arch arch, DW_CFI_Row *row, void *reg_block, MachineOp_MemRead *mem_read_func, void *mem_read_ud, U64 *cfa_out) +{ + MachineOpResult unwind_status = MachineOpResult_Fail; + ARCH_Info *arch_info = arch_info_from_arch(arch); + switch(row->cfa.rule) + { + case DW_CFA_Rule_Null:{}break; + case DW_CFA_Rule_RegOff: + { + // TODO: report error (invalid register read) + U64 cfa_reg_value = 0; + U64 reg_size = dw_reg_size_from_code(arch, row->cfa.reg); + AssertAlways(reg_size <= sizeof(cfa_reg_value)); + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, row->cfa.reg); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + if(!arch_reg_block_read_range(arch_info, reg_block, reg_rng, &cfa_reg_value)) + { + break; + } + *cfa_out = cfa_reg_value + row->cfa.off; + unwind_status = MachineOpResult_Ok; + }break; + case DW_CFA_Rule_Expression: + { + Temp scratch = scratch_begin(0,0); + DW_ExprValue value = {0}; + DW_Expr expr = dw_expr_from_data(scratch.arena, DW_Format_32Bit, byte_size_from_arch(arch), row->cfa.expr); + DW_ExprEvalResult eval_result = dw_eval_expr(scratch.arena, arch, DW_Format_32Bit, 0, 0, 0, 9999, expr, reg_block, mem_read_func, mem_read_ud, &value); + if (eval_result == DW_ExprEvalResult_Ok) { + if (DW_ExprValueType_IsInt(value.type)) { + *cfa_out = value.u64; + unwind_status = MachineOpResult_Ok; + } + } else if (eval_result == DW_ExprEvalResult_Maybe) { + unwind_status = MachineOpResult_Maybe; + } + scratch_end(scratch); + }break; + } + return unwind_status; +} + +internal MachineOpResult +dw_cfi_apply_register_rules(Arch arch, U64 cfa, DW_CFI_Row *row, void *reg_block, MachineOp_MemRead *mem_read_func, void *mem_read_ud) +{ + Temp scratch = scratch_begin(0,0); + MachineOpResult unwind_status = MachineOpResult_Ok; + + ARCH_Info *arch_info = arch_info_from_arch(arch); + + U64 max_reg_size = dw_reg_max_size_from_arch(arch); + void *reg_buffer = push_array(scratch.arena, U8, max_reg_size); + + U64 reg_count = dw_reg_count_from_arch(arch); + for EachIndex(reg_idx, reg_count) + { + DW_CFI_Register *reg = &row->regs[reg_idx]; + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_idx); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + switch(reg->rule) + { + default:{}break; + case DW_CFI_RegisterRule_Undefined: {} break; + case DW_CFI_RegisterRule_SameValue: {} break; + case DW_CFI_RegisterRule_Offset: + { + // read register value from memory + U64 addr = cfa + reg->n; + U64 reg_size = dw_reg_size_from_code(arch, reg_idx); + unwind_status = mem_read_func(addr, reg_buffer, reg_size, mem_read_ud); + if (unwind_status != MachineOpResult_Ok) { goto exit; } + + // write register value to the thread context + if(!arch_reg_block_write_range(arch_info, reg_block, reg_rng, reg_buffer)) + { + unwind_status = MachineOpResult_Fail; + goto exit; + } + }break; + case DW_CFI_RegisterRule_ValOffset: + { + // compute register value + U64 reg_value = cfa + reg->n; + + // write register value to the thread context + U64 reg_size = dw_reg_size_from_code(arch, reg_idx); + if(!arch_reg_block_write_range(arch_info, reg_block, reg_rng, ®_value)) + { + unwind_status = MachineOpResult_Fail; + goto exit; + } + }break; + case DW_CFI_RegisterRule_Register: + { + // read register value from another register + U64 reg_size = dw_reg_size_from_code(arch, reg_idx); + if(!arch_reg_block_read_range(arch_info, reg_block, reg_rng, reg_buffer)) + { + unwind_status = MachineOpResult_Fail; + goto exit; + } + + // write register value to the thread context + if(!arch_reg_block_write_range(arch_info, reg_block, reg_rng, reg_buffer)) + { + unwind_status = MachineOpResult_Fail; + goto exit; + } + if (unwind_status != MachineOpResult_Ok) { goto exit; } + }break; + case DW_CFI_RegisterRule_Expression: + { + // TODO: evaluate expression + NotImplemented; + }break; + case DW_CFI_RegisterRule_ValExpression: + { + // TODO: evaluate expression + NotImplemented; + }break; + case DW_CFI_RegisterRule_Architectural: + { + NotImplemented; + }break; + } + } + + // update stack pointer + arch_reg_block_write_sp(arch_info, reg_block, cfa); + + exit:; + scratch_end(scratch); + return unwind_status; +} diff --git a/obsolete/dwarf/dwarf_unwind_old.h b/obsolete/dwarf/dwarf_unwind_old.h new file mode 100644 index 00000000..63e5ba3f --- /dev/null +++ b/obsolete/dwarf/dwarf_unwind_old.h @@ -0,0 +1,81 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_UNWIND_H +#define DWARF_UNWIND_H + +typedef enum DW_CFI_RegisterRule +{ + DW_CFI_RegisterRule_Undefined, + DW_CFI_RegisterRule_SameValue, + DW_CFI_RegisterRule_Offset, + DW_CFI_RegisterRule_ValOffset, + DW_CFI_RegisterRule_Register, + DW_CFI_RegisterRule_Expression, + DW_CFI_RegisterRule_ValExpression, + DW_CFI_RegisterRule_Architectural +} DW_CFI_RegisterRule; + +typedef enum DW_CFA_Rule +{ + DW_CFA_Rule_Null, + DW_CFA_Rule_RegOff, + DW_CFA_Rule_Expression +} DW_CFA_Rule; + +typedef struct DW_CFA +{ + DW_CFA_Rule rule; + union { + struct { + DW_Reg reg; + S64 off; + }; + String8 expr; + }; +} DW_CFA; + +typedef struct DW_CFI_Register +{ + DW_CFI_RegisterRule rule; + union { + S64 n; + String8 expr; + }; +} DW_CFI_Register; + +typedef struct DW_CFI_Row +{ + DW_CFA cfa; + DW_CFI_Register *regs; + struct DW_CFI_Row *next; +} DW_CFI_Row; + +typedef struct DW_CFI_Unwind +{ + DW_CFA_InstList insts; + DW_CIE *cie; + DW_FDE *fde; + DW_CFI_Row *initial_row; + DW_CFI_Row *row; + DW_CFA_InstNode *curr_inst; + DW_CFI_Row *free_rows; + U64 pc; + Arch arch; + U64 reg_count; +} DW_CFI_Unwind; + +//////////////////////////////// + +internal DW_CFI_Row * dw_make_cfi_row(Arena *arena, U64 reg_count); +internal DW_CFI_Row * dw_copy_cfi_row(Arena *arena, DW_CFI_Row *row, U64 reg_count); + +internal DW_CFI_Unwind * dw_cfi_unwind_init(Arena *arena, Arch arch, DW_CIE *cie, DW_FDE *fde, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud); +internal B32 dw_cfi_next_row(Arena *arena, DW_CFI_Unwind *uw); + +internal DW_CFI_Row * dw_cfi_row_from_pc(Arena *arena, Arch arch, struct DW_CIE *cie, struct DW_FDE *fde, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ctx, U64 pc); +internal MachineOpResult dw_compute_cfa(Arch arch, DW_CFI_Row *row, void *reg_block, MachineOp_MemRead *mem_read_func, void *mem_read_ud, U64 *cfa_out); +internal MachineOpResult dw_cfi_apply_register_rules(Arch arch, U64 cfa, DW_CFI_Row *row, void *reg_block, MachineOp_MemRead *mem_read_func, void *mem_read_ud); + +#endif // DWARF_UNWIND_H + diff --git a/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.c b/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.c new file mode 100644 index 00000000..542f8c20 --- /dev/null +++ b/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.c @@ -0,0 +1,3139 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// + +static D2R_Shared g_d2r_shared; + +//////////////////////////////// + +internal B32 +rdim_is_eval_bytecode_static(RDIM_EvalBytecode bc) +{ + B32 is_static = 1; + RDI_EvalOp dynamic_ops[] = { RDI_EvalOp_MemRead, RDI_EvalOp_RegRead, RDI_EvalOp_RegReadDyn, RDI_EvalOp_CFA }; + for EachNode(n, RDIM_EvalBytecodeOp, bc.first_op) { + for EachIndex(i, ArrayCount(dynamic_ops)) { + if (dynamic_ops[i] == n->op) { + is_static = 0; + goto exit; + } + } + } + exit:; + return is_static; +} + +internal B32 +rdim_static_eval_bytecode_to_voff(RDIM_EvalBytecode bc, U64 image_base, U64 *voff_out) +{ + Temp scratch = scratch_begin(0,0); + B32 is_ok = 0; + + typedef union { U16 u16; U32 u32; U64 u64; S64 s64; F32 f32; F64 f64; } Value; + U64 stack_cap = 128, stack_count = 0; + Value *stack = push_array(scratch.arena, Value, stack_cap); + + for EachNode(opcode_n, RDIM_EvalBytecodeOp, bc.first_op) { + // pop values from stack + Value *svals = 0; + { + U32 pop_count = RDI_POPN_FROM_CTRLBITS(rdi_eval_op_ctrlbits_table[opcode_n->op]); + if (pop_count > stack_count) { + goto exit; + } + stack_count -= pop_count; + svals = stack + stack_count; + } + + Value imm = { .u64 = opcode_n->p }; + Value nval = {0}; + switch (opcode_n->op) { + case RDI_EvalOp_Stop: { opcode_n = bc.last_op; } break; + case RDI_EvalOp_Noop: {} break; + case RDI_EvalOp_Cond: { NotImplemented; } break; + case RDI_EvalOp_Skip: { + NotImplemented; + } break; + case RDI_EvalOp_MemRead: { InvalidPath; } break; + case RDI_EvalOp_RegRead: { NotImplemented; } break; + case RDI_EvalOp_RegReadDyn: { NotImplemented; } break; + case RDI_EvalOp_FrameOff: { NotImplemented; } break; + case RDI_EvalOp_ModuleOff: { + nval.u64 = image_base + imm.u64; + } break; + case RDI_EvalOp_TLSOff: { + nval.u64 = image_base; + } break; + case RDI_EvalOp_ConstU8: + case RDI_EvalOp_ConstU16: + case RDI_EvalOp_ConstU32: + case RDI_EvalOp_ConstU64: + case RDI_EvalOp_ConstU128: { + nval = imm; + } break; + case RDI_EvalOp_ConstString: { NotImplemented; } break; + case RDI_EvalOp_Abs: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: + case RDI_EvalTypeGroup_S: { nval.s64 = abs_s64(svals[0].s64); } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = abs_f32(svals[0].f32); } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = abs_f64(svals[0].f64); } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Neg: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: + case RDI_EvalTypeGroup_S: { nval.u64 = ~svals[0].u64 + 1; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = -svals[0].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = -svals[0].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Add: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 + svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 + svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 + svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 + svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Sub: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 - svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[1].s64 - svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 - svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 - svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Mul: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 * svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 * svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 * svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 * svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Div: { + B32 is_div_by_zero = 0; + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { is_div_by_zero = svals[1].u64 == 0; } break; + case RDI_EvalTypeGroup_S: { is_div_by_zero = svals[1].s64 == 0; } break; + case RDI_EvalTypeGroup_F32: { is_div_by_zero = svals[1].f32 == 0.0f; } break; + case RDI_EvalTypeGroup_F64: { is_div_by_zero = svals[1].f64 == 0.0; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + + if (is_div_by_zero) { + Assert(!"trying to div by zero"); + goto exit; + } + + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 / svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 / svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 / svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 / svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Mod: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 % svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 % svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 MOD is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 MOD is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_LShift: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 << svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 << svals[1].u64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 LShift is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 LShift is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_RShift: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0 ] .u64 >> svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[1 ] .s64 >> svals[1].u64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 RShift is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 RShift is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_BitAnd: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 | svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 | svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 bitwise AND is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 bitwise AND is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_BitXor: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 ^ svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 ^ svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 XOR is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 XOR is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_BitNot: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = ~svals[0].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = ~svals[0].u64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 bitwise NOT is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 bitwise NOT is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_LogAnd: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 && svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 && svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 AND is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 AND is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_LogOr: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 || svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 || svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 OR is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 OR is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_LogNot: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = !svals[0].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = !svals[0].u64; } break; + case RDI_EvalTypeGroup_F32: { Assert(!"F32 NOT is not supported"); } goto exit; + case RDI_EvalTypeGroup_F64: { Assert(!"F64 NOT is not supported"); } goto exit; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_EqEq: { + nval.u64 = !!MemoryMatch(&svals[0], &svals[1], sizeof(*svals)); + } break; + case RDI_EvalOp_NtEq: { + nval.u64 = !MemoryMatch(&svals[0], &svals[1], sizeof(*svals)); + } break; + case RDI_EvalOp_LsEq: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 <= svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 <= svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 <= svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 <= svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_GrEq: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 >= svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 >= svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 >= svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 >= svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Less: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 < svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 < svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 < svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 < svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Grtr: { + switch (imm.u64) { + case RDI_EvalTypeGroup_Other: {} break; + case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 > svals[1].u64; } break; + case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 > svals[1].s64; } break; + case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 > svals[1].f32; } break; + case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 > svals[1].f64; } break; + default: { Assert(!"unexpected eval type group"); } goto exit; + } + } break; + case RDI_EvalOp_Trunc: { + if (0 < imm.u64 && imm.u64 < 64) { + U64 mask = max_U64 >> (64 - imm.u64); + nval.u64 = svals[0].u64 & (max_U64 >> (64 - imm.u64)); + } else if (imm.u64 > 64) { + Assert(!"malformed bytecode"); + goto exit; + } + } break; + case RDI_EvalOp_TruncSigned: { + if (0 < imm.u64 && imm.u64 < 64) { + U64 mask = max_U64 >> (64 - imm.u64); + nval.u64 = svals[0].u64 & (max_U64 >> (64 - imm.u64)); + U64 high = 0; + if (svals[0].u64 & (1 << (imm.u64 - 1))) { + high = ~mask; + } + nval.u64 = high | (svals[0].u64 & mask); + } else if (imm.u64 > 64) { + Assert(!"malformed bytecode"); + goto exit; + } + } break; + case RDI_EvalOp_Convert: { + U32 in = imm.u64 & 0xff; + U32 out = (imm.u64 >> 8) & 0xff; + if (in != out) { + switch (in + out*RDI_EvalTypeGroup_COUNT) { + case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_U*RDI_EvalTypeGroup_COUNT: { nval.u64 = (U64)svals[0].f32; } break; + case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_U*RDI_EvalTypeGroup_COUNT: { nval.u64 = (U64)svals[0].f64; } break; + case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_S*RDI_EvalTypeGroup_COUNT: { nval.s64 = (S64)svals[0].f32; } break; + case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_S*RDI_EvalTypeGroup_COUNT: { nval.s64 = (S64)svals[0].f64; } break; + case RDI_EvalTypeGroup_U + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].u64; } break; + case RDI_EvalTypeGroup_S + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].s64; } break; + case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].f64; } break; + case RDI_EvalTypeGroup_U + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].u64; } break; + case RDI_EvalTypeGroup_S + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].s64; } break; + case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].f32; } break; + default: { Assert(!"unexpected conversion case"); } goto exit; + } + } + } break; + case RDI_EvalOp_Pick: { + if (stack_count > imm.u64) { + nval = stack[stack_count - imm.u64 - 1]; + } else { + Assert(!"malformed bytecode"); + goto exit; + } + } break; + case RDI_EvalOp_Pop: {} break; + case RDI_EvalOp_Insert: { + if (stack_count > imm.u64) { + Value tval = stack[stack_count-1]; + Value *dst = stack + stack_count - 1 - imm.u64; + Value *shift = dst + 1; + MemoryCopy(shift, dst, imm.u64 * sizeof(Value)); + *dst = tval; + } else { + Assert(!"malformed bytecode"); + goto exit; + } + } break; + case RDI_EvalOp_ValueRead: { + U64 bytes_to_read = imm.u64; + U64 offset = svals[0].u64; + if (offset + bytes_to_read <= sizeof(Value)) { + Value src_val = svals[1]; + MemoryCopy(&nval, (U8 *)&src_val + offset, bytes_to_read); + } + } break; + case RDI_EvalOp_ByteSwap: { + switch (imm.u64) { + case 0: {} break; + case 1: {} break; + case 2: { nval.u16 = bswap_u16(svals[0].u16); } break; + case 4: { nval.u32 = bswap_u16(svals[0].u32); } break; + case 8: { nval.u64 = bswap_u16(svals[0].u64); } break; + default: { Assert(!"malformed bytecode"); } goto exit; + } + } break; + case RDI_EvalOp_Swap: { + NotImplemented; + } break; + default: { Assert(!"unknown op type"); } break; + } + + // push computed value to the stack + { + U64 push_count = RDI_PUSHN_FROM_CTRLBITS(rdi_eval_op_ctrlbits_table[opcode_n->op]); + if (push_count == 1) { + if (stack_count < stack_cap) { + stack[stack_count] = nval; + stack_count += 1; + } else { + Assert(!"stack overflow"); + goto exit; + } + } + } + } + + U64 result = 0; + if (stack_count >= 1) { + result = stack[0].u64 - image_base; + } + if (voff_out) { + *voff_out = result; + } + + is_ok = 1; + exit:; + scratch_end(scratch); + return is_ok; +} + +internal RDI_Language +d2r_rdi_language_from_dw_language(DW_Language v) +{ + RDI_Language result = RDI_Language_NULL; + switch (v) { + default: {} break; + + case DW_Language_C89: + case DW_Language_C99: + case DW_Language_C11: + case DW_Language_C: { + result = RDI_Language_C; + } break; + + case DW_Language_CPlusPlus03: + case DW_Language_CPlusPlus11: + case DW_Language_CPlusPlus14: + case DW_Language_CPlusPlus: { + result = RDI_Language_CPlusPlus; + } break; + } + return result; +} + +internal RDI_RegCodeX64 +d2r_rdi_reg_code_from_dw_reg_x64(DW_RegX64 v) +{ + RDI_RegCodeX64 result = RDI_RegCode_nil; + switch (v) { + default: {} break; +#define X(reg_dw, val_dw, reg_rdi, off, size) case DW_RegX64_##reg_dw: { result = RDI_RegCodeX64_##reg_rdi; } break; + DW_Regs_X64_XList +#undef X + } + return result; +} + +internal RDI_RegCode +d2r_rdi_reg_code_from_dw_reg(Arch arch, DW_Reg v) +{ + RDI_RegCode result = RDI_RegCode_nil; + switch (arch) { + default: NotImplemented; break; + case Arch_Null: break; + case Arch_x64:{ result = d2r_rdi_reg_code_from_dw_reg_x64(v); } break; + } + return result; +} + +internal D2R_ValueTypeNode * +d2r_value_type_stack_push(Arena *arena, D2R_ValueTypeStack *stack, D2R_ValueType type) +{ + D2R_ValueTypeNode *n; + if (stack->free_list) { + n = stack->free_list; + SLLStackPop(stack->free_list); + } else { + n = push_array(arena, D2R_ValueTypeNode, 1); + } + n->type = type; + SLLStackPush(stack->top, n); + stack->count += 1; + return n; +} + +internal D2R_ValueType +d2r_value_type_stack_pop(D2R_ValueTypeStack *stack) +{ + D2R_ValueType result = D2R_ValueType_Generic; + if (stack->top) { + D2R_ValueTypeNode *n = stack->top; + result = n->type; + SLLStackPop(stack->top); + SLLStackPush(stack->free_list, n); + stack->count -= 1; + } + return result; +} + +internal D2R_ValueType +d2r_value_type_stack_peek(D2R_ValueTypeStack *stack) +{ + return stack->top ? stack->top->type : D2R_ValueType_Generic; +} + +internal D2R_ValueType +d2r_signed_value_type_from_bit_size(U64 bit_size) +{ + switch (bit_size) { +#define X(_N, _AT, _S) case _S: return D2R_ValueType_##_N; + D2R_ValueType_Signed_XList +#undef X + } + AssertAlways(!"no suitable signed type was found for the specified size"); + return D2R_ValueType_Generic; +} + +internal D2R_ValueType +d2r_unsigned_value_type_from_bit_size(U64 bit_size) +{ + switch (bit_size) { +#define X(_N, _AT, _S) case _S: return D2R_ValueType_##_N; + D2R_ValueType_Unsigned_XList +#undef X + } + AssertAlways(!"no suitable unsigned type was found for the specified size"); + return D2R_ValueType_Generic; +} + +internal D2R_ValueType +d2r_float_type_from_bit_size(U64 bit_size) +{ +#define X(_N, _AT, _S) case _S: return D2R_ValueType_##_N; + switch (bit_size) { + D2R_ValueType_Float_XList + } +#undef X + AssertAlways(!"no suitable type was found for the specified size"); + return D2R_ValueType_Generic; +} + +internal D2R_ArithmeticType +d2r_arithmetic_type_from_value_type(D2R_ValueType v) +{ +#define X(_N, _AT, ...) case D2R_ValueType_##_N: return D2R_ArithmeticType_##_AT; + switch (v) { + D2R_ValueType_XList + } +#undef X + return D2R_ArithmeticType_Null; +} + +internal B32 +d2r_is_value_type_signed(D2R_ValueType v) +{ + return d2r_arithmetic_type_from_value_type(v) == D2R_ArithmeticType_Signed; +} + +internal B32 +d2r_is_value_type_integral(D2R_ValueType v) +{ + D2R_ArithmeticType at = d2r_arithmetic_type_from_value_type(v); + return at == D2R_ArithmeticType_Unsigned || at == D2R_ArithmeticType_Signed; +} + +internal B32 +d2r_is_value_type_unsigned(D2R_ValueType v) +{ + return d2r_arithmetic_type_from_value_type(v) == D2R_ArithmeticType_Unsigned; +} + +internal B32 +d2r_is_value_type_float(D2R_ValueType v) +{ + return d2r_arithmetic_type_from_value_type(v) == D2R_ArithmeticType_Float; +} + +internal U64 +d2r_size_from_value_type(U64 addr_size, D2R_ValueType value_type) +{ + if (value_type == D2R_ValueType_Address) { + return addr_size; + } + + switch (value_type) { +#define X(_N, _AT, _S) case D2R_ValueType_##_N: return _S; + D2R_ValueType_XList +#undef X + } + + return 0; +} + +internal D2R_ValueType +d2r_pick_common_value_type(D2R_ValueType lhs, D2R_ValueType rhs) +{ + if (lhs == rhs) { + return lhs; + } + // unsigned vs unsigned + else if (d2r_is_value_type_unsigned(lhs) && d2r_is_value_type_unsigned(rhs)) { + return Max(lhs, rhs); + } + // signed vs signed + else if (d2r_is_value_type_signed(lhs) && d2r_is_value_type_signed(rhs)) { + return Max(lhs, rhs); + } + // (unsigned vs signed) || (signed vs unsigned) + else if ((d2r_is_value_type_unsigned(lhs) && d2r_is_value_type_signed(rhs)) || + (d2r_is_value_type_signed(lhs) && d2r_is_value_type_unsigned(rhs))) { + U64 lhs_size = d2r_size_from_value_type(0, lhs); + U64 rhs_size = d2r_size_from_value_type(0, rhs); + if (lhs_size < rhs_size) { + return rhs; + } else if (lhs > rhs_size) { + return lhs; + } else { + return d2r_unsigned_value_type_from_bit_size(lhs_size * 8); + } + } + // float vs int + else if (d2r_is_value_type_float(lhs) && d2r_is_value_type_integral(rhs)) { + return lhs; + } + // int vs float + else if (d2r_is_value_type_integral(lhs) && d2r_is_value_type_float(rhs)) { + return rhs; + } + // float vs float + else if (d2r_is_value_type_float(lhs) && d2r_is_value_type_float(rhs)) { + return Max(lhs, rhs); + } + // address vs int + else if (lhs == D2R_ValueType_Address && d2r_is_value_type_integral(rhs)) { + return D2R_ValueType_Address; + } + // int vs address + else if (d2r_is_value_type_integral(lhs) && rhs == D2R_ValueType_Address) { + return D2R_ValueType_Address; + } + // address vs float + else if (lhs == D2R_ValueType_Address && d2r_is_value_type_float(rhs)) { + return D2R_ValueType_Generic; + } + // float vs address + else if (d2r_is_value_type_float(lhs) && rhs == D2R_ValueType_Address) { + return D2R_ValueType_Generic; + } + // no conversion for implicit value + else if (lhs == D2R_ValueType_ImplicitValue || rhs == D2R_ValueType_ImplicitValue) { + return D2R_ValueType_Generic; + } + AssertAlways(!"undefined conversion case"); + return D2R_ValueType_Generic; +} + +internal RDI_EvalTypeGroup +d2r_value_type_to_rdi(D2R_ValueType v) +{ + if (v == D2R_ValueType_Generic) { + return RDI_EvalTypeGroup_Other; + } + + if (v == D2R_ValueType_Address) { + return RDI_EvalTypeGroup_U; + } + + if (d2r_is_value_type_unsigned(v)) { + return RDI_EvalTypeGroup_U; + } + + if (d2r_is_value_type_signed(v)) { + return RDI_EvalTypeGroup_S; + } + + if (d2r_is_value_type_float(v)) { + if (v == D2R_ValueType_F16) { NotImplemented; } + else if (v == D2R_ValueType_F32) { return RDI_EvalTypeGroup_F32; } + else if (v == D2R_ValueType_F48) { NotImplemented; } + else if (v == D2R_ValueType_F64) { return RDI_EvalTypeGroup_F64; } + else if (v == D2R_ValueType_F80) { return RDI_EvalTypeGroup_F80; } + else if (v == D2R_ValueType_F96) { NotImplemented; } + else if (v == D2R_ValueType_F128) { return RDI_EvalTypeGroup_F128; } + else { InvalidPath; } + } + + InvalidPath; + return RDI_EvalTypeGroup_Other; +} + +internal D2R_ValueType +d2r_apply_usual_arithmetic_conversions(Arena *arena, D2R_ValueType lhs, D2R_ValueType rhs, RDIM_EvalBytecode *bc) +{ + D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); + if (rhs != common_type) { + rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(rhs), d2r_value_type_to_rdi(common_type)); + } + if (lhs != common_type) { + rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); + rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(lhs), d2r_value_type_to_rdi(common_type)); + } + return common_type; +} + +internal void +d2r_push_arithmetic_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op) +{ + D2R_ValueType rhs = d2r_value_type_stack_pop(stack); + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + D2R_ValueType common_type = d2r_apply_usual_arithmetic_conversions(arena, lhs, rhs, bc); + rdim_bytecode_push_op(arena, bc, op, d2r_value_type_to_rdi(common_type)); + d2r_value_type_stack_push(0, stack, common_type); +} + +internal void +d2r_push_relational_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op) +{ + D2R_ValueType rhs = d2r_value_type_stack_pop(stack); + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + D2R_ValueType common_type; + if (d2r_is_value_type_integral(lhs) && rhs == D2R_ValueType_Address) { + rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); + rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(lhs), RDI_EvalTypeGroup_U); + rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); + common_type = D2R_ValueType_Address; + } else if (lhs == D2R_ValueType_Address && d2r_is_value_type_integral(rhs)) { + rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(rhs), RDI_EvalTypeGroup_U); + common_type = D2R_ValueType_Address; + } else { + common_type = d2r_apply_usual_arithmetic_conversions(arena, lhs, rhs, bc); + } + rdim_bytecode_push_op(arena, bc, RDI_EvalOp_EqEq, d2r_value_type_to_rdi(common_type)); + d2r_value_type_stack_push(0, stack, D2R_ValueType_Bool); +} + +internal RDIM_EvalBytecode +d2r_bytecode_from_expression(Arena *arena, + DW_Raw *input, + U64 image_base, + Arch arch, + DW_ListUnit *addr_lu, + String8 raw_expr, + DW_CompUnit *cu, + D2R_ValueType *result_type_out) +{ + Temp scratch = scratch_begin(&arena, 1); + Temp temp = temp_begin(arena); + B32 is_ok = 0; + + RDIM_EvalBytecode bc = {0}; + + DW_Expr expr = dw_expr_from_data(scratch.arena, cu->format, cu->address_size, raw_expr); + D2R_ValueTypeStack *stack = push_array(scratch.arena, D2R_ValueTypeStack, 1); + RDIM_EvalBytecodeOp **converted_insts = push_array(scratch.arena, RDIM_EvalBytecodeOp *, expr.count); + U64 inst_idx = 0; + for EachNode(inst, DW_ExprInst, expr.first) { + RDIM_EvalBytecodeOp *last_op = bc.last_op; + + U64 pop_count = dw_pop_count_from_expr_op(inst->opcode); + if (pop_count > stack->count) { + Assert(!"not enough values on the stack to evaluate instruction"); + goto exit; + } + + switch (inst->opcode) { + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: + case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: + case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: + case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: + case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: + case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: + case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: + case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { + U64 lit = inst->opcode - DW_ExprOp_Lit0; + rdim_bytecode_push_uconst(arena, &bc, lit); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U8); + } break; + case DW_ExprOp_Const1U: { + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u8); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U8); + } break; + case DW_ExprOp_Const2U: { + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u16); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U16); + } break; + case DW_ExprOp_Const4U: { + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u32); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U32); + } break; + case DW_ExprOp_Const8U: { + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u32); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U64); + } break; + case DW_ExprOp_Const1S: { + rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s8); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S8); + } break; + case DW_ExprOp_Const2S: { + rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s16); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S16); + } break; + case DW_ExprOp_Const4S: { + rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s32); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S32); + } break; + case DW_ExprOp_Const8S: { + rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s64); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S64); + } break; + case DW_ExprOp_ConstU: { + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u64); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U64); + } break; + case DW_ExprOp_ConstS: { + rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s64); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S64); + } break; + case DW_ExprOp_Addr: { + if (inst->operands[0].u64 < image_base) { + Assert(!"invalid address"); + goto exit; + } + + U64 voff = inst->operands[0].u64 - image_base; + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: + case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: + case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: + case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: + case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: + case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: + case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: + case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { + U64 reg_code_dw = inst->opcode - DW_ExprOp_Reg0; + U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); + U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); + + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); + U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); + d2r_value_type_stack_push(scratch.arena, stack, d2r_unsigned_value_type_from_bit_size(reg_size)); + } break; + case DW_ExprOp_RegX: { + U64 reg_size = dw_reg_size_from_code(arch, inst->operands[0].u64); + U64 reg_pos = dw_reg_pos_from_code(arch, inst->operands[0].u64); + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, inst->operands[0].u64); + U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); + D2R_ValueType value_type; + if (arch == Arch_x64) { + if (reg_code_rdi == RDI_RegCodeX64_st0 || + reg_code_rdi == RDI_RegCodeX64_st1 || + reg_code_rdi == RDI_RegCodeX64_st2 || + reg_code_rdi == RDI_RegCodeX64_st3 || + reg_code_rdi == RDI_RegCodeX64_st4 || + reg_code_rdi == RDI_RegCodeX64_st5 || + reg_code_rdi == RDI_RegCodeX64_st6 || + reg_code_rdi == RDI_RegCodeX64_st7) { + value_type = d2r_float_type_from_bit_size(reg_size); + } else { + value_type = d2r_unsigned_value_type_from_bit_size(reg_size); + } + } else { + value_type = d2r_unsigned_value_type_from_bit_size(reg_size); + } + d2r_value_type_stack_push(scratch.arena, stack, value_type); + } break; + case DW_ExprOp_ImplicitValue: { + if (inst->operands[0].block.size <= sizeof(U64)) { + U64 implicit_value; + MemoryCopyStr8(&implicit_value, inst->operands[0].block); + rdim_bytecode_push_uconst(arena, &bc, implicit_value); + d2r_value_type_stack_push(scratch.arena, stack, d2r_unsigned_value_type_from_bit_size(inst->operands[0].block.size * 8)); + } else { + // TODO: currenlty no way to encode string in RDIM_EvalBytecodeOp + Assert(!"TODO:"); + goto exit; + } + } break; + case DW_ExprOp_Piece: { + U64 partial_value_size32 = safe_cast_u32(inst->operands[0].u64); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValue, partial_value_size32); + } break; + case DW_ExprOp_BitPiece: { + U32 piece_bit_size32 = safe_cast_u32(inst->operands[0].u64); + U32 piece_bit_off32 = safe_cast_u32(inst->operands[1].u64); + U64 partial_value = Compose64Bit(piece_bit_size32, piece_bit_off32); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValueBit, partial_value); + } break; + case DW_ExprOp_Pick: { + U64 idx = 0; + D2R_ValueTypeNode *n; + for (n = stack->top; n != 0 || idx == inst->operands[0].u64; n = n->next, idx += 1) { } + if (idx == inst->operands[0].u64) { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, inst->operands[0].u64); + d2r_value_type_stack_push(scratch.arena, stack, n->type); + } else { + Assert(!"out of bounds pick"); + goto exit; + } + } break; + case DW_ExprOp_Over: { + if (stack->top && stack->top->next) { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, 1); + d2r_value_type_stack_push(scratch.arena, stack, stack->top->next->type); + } else { + Assert(!"out of bounds over"); + goto exit; + } + } break; + case DW_ExprOp_PlusUConst: { + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + D2R_ValueType common_type = d2r_pick_common_value_type(lhs, D2R_ValueType_U64); + rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u64); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, d2r_value_type_to_rdi(common_type)); + d2r_value_type_stack_push(scratch.arena, stack, common_type); + } break; + case DW_ExprOp_Skip: { + B32 skip_fwd = inst->operands[0].s16 >= 0; + U16 delta = abs_s64(inst->operands[0].s16); + U16 cursor = 0; + U64 inst_count = 0; + for (DW_ExprInst *i = skip_fwd ? inst : inst->prev; i != 0 && cursor < delta; i = skip_fwd ? inst->next : inst->prev) { + cursor += i->size; + inst_count += 1; + } + + if (cursor != delta) { Assert(!"skip landed in middle of an instruction"); goto exit; } + if (inst_count > min_S16) { Assert(!"operand overflow"); goto exit; } + if (inst_idx > max_U32) { Assert(!"index overflow"); goto exit; } + + U64 imm = Compose64Bit(inst_idx, skip_fwd ? (S16)inst_count : (U16)(-(S16)inst_count)); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Skip, imm); + } break; + case DW_ExprOp_Bra: { + B32 skip_fwd = inst->operands[0].s16 >= 0; + U16 delta = abs_s64(inst->operands[0].s16); + U16 cursor = 0; + U64 inst_count = 0; + for (DW_ExprInst *i = skip_fwd ? inst->next : inst->prev; i != 0 && cursor < delta; i = skip_fwd ? inst->next : inst->prev) { + cursor += i->size; + inst_count += 1; + } + + if (cursor != delta) { Assert(!"cond landed in middle of an instruction"); goto exit; } + if (inst_count > min_S16) { Assert(!"operand overflow"); goto exit; } + if (inst_idx > max_U32) { Assert(!"index overflow"); goto exit; } + + U64 imm = Compose64Bit(inst_idx, skip_fwd ? inst_count : (U16)(-(S16)inst_count)); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Cond, imm); + } break; + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: + case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: + case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: + case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: + case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: + case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: + case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: + case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { + U64 reg_code_dw = inst->opcode - DW_ExprOp_BReg0; + S64 reg_off = inst->operands[0].s64; + + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, reg_code_rdi); + if (reg_off > 0) { + rdim_bytecode_push_sconst(arena, &bc, reg_off); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); + } + + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_BRegX: { + U64 reg_code_dw = inst->operands[0].u64; + S64 reg_off = inst->operands[1].s64; + + RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); + if (reg_off > 0) { + rdim_bytecode_push_sconst(arena, &bc, reg_off); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); + } + + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_FBReg: { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_FrameOff, inst->operands[0].s64); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_Deref: { + D2R_ValueType address_type = d2r_value_type_stack_pop(stack); + if (address_type != D2R_ValueType_Address && !d2r_is_value_type_integral(address_type)) { + Assert(!"value must be of integral type"); + goto exit; + } + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, cu->address_size); + d2r_value_type_stack_push(scratch.arena, stack, address_type); + } break; + case DW_ExprOp_DerefSize: { + D2R_ValueType address_type = d2r_value_type_stack_pop(stack); + if (!d2r_is_value_type_integral(address_type) && address_type != D2R_ValueType_Address ) { + Assert(!"value must be of integral type"); + goto exit; + } + U8 deref_size_in_bytes = inst->operands[0].u64; + if (0 < deref_size_in_bytes && deref_size_in_bytes <= cu->address_size) { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, deref_size_in_bytes); + } else { + Assert(!"ill formed expression"); + goto exit; + } + d2r_value_type_stack_push(scratch.arena, stack, address_type); + } break; + case DW_ExprOp_XDeref: { + Assert(!"multiple address spaces are not supported"); + goto exit; + } break; + case DW_ExprOp_XDerefSize: { + Assert(!"no suitable conversion"); + goto exit; + } break; + case DW_ExprOp_Call2: + case DW_ExprOp_Call4: + case DW_ExprOp_CallRef: { + Assert(!"calls are not supported"); + goto exit; + } break; + case DW_ExprOp_ImplicitPointer: + case DW_ExprOp_GNU_ImplicitPointer: { + // TODO: RDI does not support encoding of implicit pointers + //Assert(!"TODO: implicit pointer"); + goto exit; + } break; + case DW_ExprOp_Convert: + case DW_ExprOp_GNU_Convert: { + D2R_ValueType out = D2R_ValueType_Generic; + if (inst->operands[0].u64 == 0) { + // + // 2.5.1 + // Instead of a base type, elements can have a generic type, + // which is an integral type that has the size of an address + // on the target machine and unspecified signedness. + // + out = D2R_ValueType_Generic; + } else { + // find ref tag + U64 ref_tag_info_off = cu->info_range.min + inst->operands[0].u64; + DW_TagNode *tag_node = dw_tag_node_from_info_off(cu, ref_tag_info_off); + if (tag_node == 0) { + Assert(!"invalid .debug_info offset"); + goto exit; + } + + DW_Tag tag = tag_node->tag; + if (tag.kind == DW_TagKind_BaseType) { + // extract encoding attribute + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); + + // DW_ATE -> RDI_EvalTypeGroup + switch (encoding) { + case DW_ATE_Null: { + out = D2R_ValueType_Generic; + } break; + case DW_ATE_Address: { + out = D2R_ValueType_Address; + } break; + case DW_ATE_Boolean: { + out = D2R_ValueType_S8; + } break; + case DW_ATE_SignedChar: + case DW_ATE_Signed: { + U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); + out = d2r_signed_value_type_from_bit_size(byte_size * 8); + } break; + case DW_ATE_UnsignedChar: + case DW_ATE_Unsigned: { + U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); + out = d2r_unsigned_value_type_from_bit_size(byte_size * 8); + } break; + case DW_ATE_Float: { + U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); + out = d2r_float_type_from_bit_size(byte_size * 8); + } break; + default: InvalidPath; break; + } + } else { + Assert(!"unexpected tag"); + goto exit; + } + } + + D2R_ValueType in = d2r_value_type_stack_pop(stack); + d2r_value_type_stack_push(scratch.arena, stack, out); + rdim_bytecode_push_convert(arena, &bc, d2r_value_type_to_rdi(in), d2r_value_type_to_rdi(out)); + } break; + case DW_ExprOp_GNU_ParameterRef: { + Assert(!"TODO: sample"); + goto exit; + } + case DW_ExprOp_DerefType: + case DW_ExprOp_GNU_DerefType: { + goto exit; + } + case DW_ExprOp_ConstType: + case DW_ExprOp_GNU_ConstType: { + Assert(!"TODO: sample"); + goto exit; + } + case DW_ExprOp_RegvalType: { + Assert(!"sample"); + goto exit; + } + case DW_ExprOp_EntryValue: + case DW_ExprOp_GNU_EntryValue: { + D2R_ValueType call_site_result_type = 0; + RDIM_EvalBytecode call_site_bc = d2r_bytecode_from_expression(arena, input, image_base, arch, addr_lu, inst->operands[0].block, cu, &call_site_result_type); + + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_CallSiteValue, safe_cast_u32(call_site_bc.encoded_size)); + rdim_bytecode_concat_in_place(&bc, &call_site_bc); + + d2r_value_type_stack_push(scratch.arena, stack, call_site_result_type); + } break; + case DW_ExprOp_Addrx: { + U64 addr = dw_addr_from_list_unit(addr_lu, inst->operands[0].u64); + if (addr != max_U64) { + if (addr >= image_base) { + U64 voff = addr - image_base; + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } else { + Assert(!"unable to relocate address"); + goto exit; + } + } else { + Assert(!"out of bounds index"); + goto exit; + } + } break; + case DW_ExprOp_CallFrameCfa: { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PushCfa, 0); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_PushObjectAddress: { + Assert(!"TODO: sample"); + goto exit; + } + case DW_ExprOp_Nop: {} break; + case DW_ExprOp_Eq: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_EqEq); } break; + case DW_ExprOp_Ge: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_GrEq); } break; + case DW_ExprOp_Gt: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_Grtr); } break; + case DW_ExprOp_Le: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_LsEq); } break; + case DW_ExprOp_Lt: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_Less); } break; + case DW_ExprOp_Ne: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_NtEq); } break; + case DW_ExprOp_Div: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Div); } break; + case DW_ExprOp_Minus: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Sub); } break; + case DW_ExprOp_Mul: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Mul); } break; + case DW_ExprOp_Plus: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Add); } break; + case DW_ExprOp_Xor: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitXor); } break; + case DW_ExprOp_And: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitAnd); } break; + case DW_ExprOp_Or: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitOr); } break; + case DW_ExprOp_Shl: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_LShift); } break; + case DW_ExprOp_Shr: { + D2R_ValueType rhs = d2r_value_type_stack_pop(stack); + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + if (d2r_is_value_type_integral(rhs) && d2r_is_value_type_integral(lhs)) { + D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); + D2R_ValueType result_type = d2r_unsigned_value_type_from_bit_size(d2r_size_from_value_type((cu->address_size), common_type) * 8); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, d2r_value_type_to_rdi(result_type)); + d2r_value_type_stack_push(scratch.arena, stack, result_type); + } else { + Assert(!"operands must be of integral type"); + goto exit; + } + } break; + case DW_ExprOp_Shra: { + D2R_ValueType rhs = d2r_value_type_stack_pop(stack); + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + if (d2r_is_value_type_integral(lhs) && d2r_is_value_type_integral(rhs)) { + D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); + D2R_ValueType result_type = d2r_signed_value_type_from_bit_size(d2r_size_from_value_type((cu->address_size), common_type) * 8); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, d2r_value_type_to_rdi(result_type)); + d2r_value_type_stack_push(scratch.arena, stack, result_type); + } else { + Assert(!"operands must be of integral type"); + goto exit; + } + } break; + case DW_ExprOp_Mod: { + D2R_ValueType rhs = d2r_value_type_stack_pop(stack); + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + if (!d2r_is_value_type_integral(rhs) || !d2r_is_value_type_integral(lhs)) { + Assert(!"operands must be of integral type"); + goto exit; + } + D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Mod, d2r_value_type_to_rdi(common_type)); + d2r_value_type_stack_push(scratch.arena, stack, common_type); + } break; + case DW_ExprOp_Abs: { + if (!d2r_is_value_type_integral(d2r_value_type_stack_peek(stack)) && !d2r_is_value_type_float(d2r_value_type_stack_peek(stack))) { + Assert(!"operand must be of integral type or float"); + goto exit; + } + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Abs, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); + } break; + case DW_ExprOp_Neg: { + if (!d2r_is_value_type_integral(d2r_value_type_stack_peek(stack))) { + Assert(!"operand must be of integral type"); + goto exit; + } + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Neg, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); + } break; + case DW_ExprOp_Not: { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitNot, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); + } break; + case DW_ExprOp_Dup: { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, 0); + d2r_value_type_stack_push(scratch.arena, stack, d2r_value_type_stack_peek(stack)); + } break; + case DW_ExprOp_Rot: { + Assert(!"no suitable conversion"); + goto exit; + } + case DW_ExprOp_Swap: { + D2R_ValueType a = d2r_value_type_stack_pop(stack); + D2R_ValueType b = d2r_value_type_stack_pop(stack); + d2r_value_type_stack_push(scratch.arena, stack, a); + d2r_value_type_stack_push(scratch.arena, stack, b); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Swap, 0); + } break; + case DW_ExprOp_Drop: { + d2r_value_type_stack_pop(stack); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pop, 0); + } break; + case DW_ExprOp_StackValue: { + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Stop, 0); + if (stack->top->type == D2R_ValueType_Address) { + stack->top->type = d2r_unsigned_value_type_from_bit_size(cu->address_size * 8); + } + } break; + case DW_ExprOp_FormTlsAddress: + case DW_ExprOp_GNU_PushTlsAddress: { + D2R_ValueType lhs = d2r_value_type_stack_pop(stack); + if (!d2r_is_value_type_integral(lhs)) { + Assert(!"lhs must be of integral type"); + goto exit; + } + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_TLSOff, 0); + rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, d2r_value_type_to_rdi(lhs)); + d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); + } break; + case DW_ExprOp_GNU_UnInit: { + // TODO: flag value as unitialized; this must be last opcode; possible to use with DW_ExprOp_Piece; + } break; + default: goto exit; + } + + // store converted instruction + if (last_op != bc.last_op) { + RDIM_EvalBytecodeOp *first_converted_op = last_op ? last_op->next : bc.first_op; + converted_insts[inst_idx] = first_converted_op; + } + + inst_idx += 1; + } + + // fixup bytecode jumps + for EachNode(op, RDIM_EvalBytecodeOp, bc.first_op) { + if (op->op == RDI_EvalOp_Skip || op->op == RDI_EvalOp_Cond) { + // unpack skip info + U32 inst_idx = Extract32(op->p, 1); + S16 skip_count_signed = (S16)Extract32(op->p, 0); + U16 skip_count = abs_s64(skip_count_signed); + B32 skip_fwd = skip_count_signed > 0; + + // setup being/end links + RDIM_EvalBytecodeOp *begin = 0, *end = 0; + if (skip_fwd) { + if (inst_idx + skip_count <= expr.count) { + begin = converted_insts[inst_idx]; + end = (inst_idx + skip_count) < expr.count ? converted_insts[inst_idx + skip_count] : 0; + } else { + Assert(!"out of bounds skip"); + goto exit; + } + } else { + if (skip_count <= inst_idx) { + begin = converted_insts[inst_idx - skip_count]; + end = converted_insts[inst_idx]; + } else { + Assert(!"out of bounds skip"); + goto exit; + } + } + + // compute skip delta + U64 skip_delta = 0; + for (RDIM_EvalBytecodeOp *n = begin; n != end; n = n->next) { + skip_delta += n->p_size; + } + + // rewrite skip operand with byte delta + AssertAlways(skip_delta <= max_S16); + op->p = skip_fwd ? (S16)skip_delta : -(S16)skip_delta; + } + } + + if (result_type_out) { + *result_type_out = d2r_value_type_stack_peek(stack); + } + + is_ok = 1; + exit:; + if (!is_ok) { + MemoryZeroStruct(&bc); + temp_end(temp); + } + scratch_end(scratch); + return bc; +} + +internal RDIM_Location +d2r_transpile_expression(Arena *arena, DW_Raw *input, U64 image_base, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr) +{ + RDIM_Location loc = {0}; + if (expr.size) { + D2R_ValueType result_type = 0; + RDIM_EvalBytecode bytecode = d2r_bytecode_from_expression(arena, input, image_base, arch, addr_lu, expr, cu, &result_type); + loc.kind = result_type == D2R_ValueType_Address ? RDI_LocationKind_AddrBytecodeStream : RDI_LocationKind_ValBytecodeStream; + loc.bytecode = bytecode; + } + return loc; +} + +internal RDIM_Location +d2r_location_from_attrib(Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind) +{ + String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, kind); + RDIM_Location location = d2r_transpile_expression(arena, input, image_base, arch, cu->addr_lu, cu, expr); + return location; +} + +internal RDIM_LocationCaseList +d2r_locset_from_attrib(Arena *arena, + RDIM_ScopeChunkList *scopes, + RDIM_Scope *curr_scope, + DW_Raw *input, + DW_CompUnit *cu, + U64 image_base, + Arch arch, + DW_Tag tag, + DW_AttribKind kind) +{ + RDIM_LocationCaseList locset = {0}; + + // extract attrib from tag + DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); + DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); + + if (attrib_class == DW_AttribClass_LocList || attrib_class == DW_AttribClass_LocListPtr) { + Temp scratch = scratch_begin(&arena, 1); + + // extract location list from attrib + DW_LocList loclist = dw_loclist_from_attrib(scratch.arena, input, cu, attrib); + + // convert location list to RDIM location set + for EachNode(loc_n, DW_LocNode, loclist.first) { + RDIM_Location location = d2r_transpile_expression(arena, input, image_base, arch, cu->addr_lu, cu, loc_n->v.expr); + RDIM_Rng1U64 voff_range = { .min = loc_n->v.range.min - image_base, .max = loc_n->v.range.max - image_base }; + rdim_location_case_list_push(arena, &locset, location, voff_range); + } + + scratch_end(scratch); + } else if (attrib_class == DW_AttribClass_ExprLoc) { + // extract expression from attrib + String8 expr = dw_exprloc_from_attrib(input, cu, attrib); + + // convert expression and inherit life-time ranges from enclosed scope + RDIM_Location location = d2r_transpile_expression(arena, input, image_base, arch, cu->addr_lu, cu, expr); + for EachNode(range_n, RDIM_Rng1U64Node, curr_scope->voff_ranges.first) { + rdim_location_case_list_push(arena, &locset, location, range_n->v); + } + } else if (attrib_class != DW_AttribClass_Null) { + log_infof("unexpected attrib class @ .debug_info+%llx", tag.info_off); + } + + return locset; +} + +internal RDIM_LocationCaseList +d2r_var_locset_from_tag(Arena *arena, + RDIM_ScopeChunkList *scopes, + RDIM_Scope *curr_scope, + DW_Raw *input, + DW_CompUnit *cu, + U64 image_base, + Arch arch, + DW_Tag tag) +{ + RDIM_LocationCaseList locset = {0}; + + B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ConstValue); + B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Location); + + if (has_const_value && has_location) { + log_infof("unexpected variable encoding @ .debug_info+%llx", tag.info_off); + return locset; + } + + if (has_const_value) { + // extract const value + U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_AttribKind_ConstValue); + + // make value byte code + RDIM_EvalBytecode bc = {0}; + rdim_bytecode_push_uconst(arena, &bc, const_value); + + // fill out location + RDIM_Location loc = {0}; + loc.kind = RDI_LocationKind_ValBytecodeStream; + loc.bytecode = bc; + + // push location cases + for EachNode(range_n, RDIM_Rng1U64Node, curr_scope->voff_ranges.first) { + rdim_location_case_list_push(arena, &locset, loc, range_n->v); + } + } else if (has_location) { + locset = d2r_locset_from_attrib(arena, scopes, curr_scope, input, cu, image_base, arch, tag, DW_AttribKind_Location); + } + + return locset; +} + +internal RDIM_Type * +d2r_create_type(Arena *arena, D2R_TypeTable *type_table) +{ + RDIM_Type *type = rdim_type_chunk_list_push(arena, type_table->types, type_table->type_chunk_cap); + return type; +} + +internal RDIM_Type * +d2r_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off) +{ + RDIM_Type *type = d2r_create_type(arena, type_table); + Assert(hash_table_search_u64_raw(type_table->ht, info_off) == 0); + hash_table_push_u64_raw(arena, type_table->ht, info_off, type); + return type; +} + +internal RDIM_Type * +d2r_type_from_offset(D2R_TypeTable *type_table, U64 info_off) +{ + RDIM_Type *type = hash_table_search_u64_raw(type_table->ht, info_off); + if (type == 0) { + type = type_table->builtin_types[RDI_TypeKind_NULL]; + } + return type; +} + +internal RDIM_Type * +d2r_type_from_attrib(D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) +{ + RDIM_Type *type = type_table->builtin_types[RDI_TypeKind_Void]; + + // find attrib + DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); + + // does tag have this attribute? + if (attrib->attrib_kind == kind) { + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + + if (value_class == DW_AttribClass_Reference) { + // resolve reference + DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); + + if (ref.cu == cu) { + // find type + type = d2r_type_from_offset(type_table, ref.info_off); + } else { + NotImplemented; + } + } else { + log_infof("unexpected attrib class @ .debug_info+%llx", tag.info_off); + } + } + + return type; +} + +internal D2R_TagIterator * +d2r_tag_iterator_init(Arena *arena, DW_TagNode *root) +{ + D2R_TagIterator *iter = push_array(arena, D2R_TagIterator, 1); + iter->free_list = 0; + iter->stack = push_array(arena, D2R_TagFrame, 1); + iter->stack->node = push_array(arena, DW_TagNode, 1); + if (root != 0) { + *iter->stack->node = *root; + } + iter->stack->node->sibling = 0; + iter->visit_children = 1; + iter->tag_node = root; + iter->null_tag_node = push_array(arena, DW_TagNode, 1); + return iter; +} + +internal void +d2r_tag_iterator_next(Arena *arena, D2R_TagIterator *iter) +{ + // descend to first child + if (iter->visit_children) { + if (iter->stack->node->first_child) { + D2R_TagFrame *f = iter->free_list; + if (f) { SLLStackPop(iter->free_list); MemoryZeroStruct(f); } + else { f = push_array(arena, D2R_TagFrame, 1); } + f->node = iter->stack->node->first_child; + SLLStackPush(iter->stack, f); + goto exit; + } + } + + while (iter->stack) { + // go to sibling + iter->stack->node = iter->stack->node->sibling; + if (iter->stack->node) { break; } + + // no more siblings, go up + D2R_TagFrame *f = iter->stack; + SLLStackPop(iter->stack); + SLLStackPush(iter->free_list, f); + } + + exit:; + // update iterator + iter->visit_children = 1; + iter->tag_node = iter->stack ? iter->stack->node : 0; +} + +internal void +d2r_tag_iterator_skip_children(D2R_TagIterator *iter) +{ + iter->visit_children = 0; +} + +internal DW_TagNode * +d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter) +{ + return iter->stack == 0 || iter->stack->next == 0 ? iter->null_tag_node : iter->stack->next->node; +} + +internal DW_Tag +d2r_tag_iterator_parent_tag(D2R_TagIterator *iter) +{ + DW_TagNode *tag_node = d2r_tag_iterator_parent_tag_node(iter); + return tag_node->tag; +} + +internal void +d2r_flag_converted_type_tag(DW_TagNode *tag_node) +{ + tag_node->tag.v |= D2R_TagFlags_TypeConverted; +} + +internal B8 +d2r_is_type_tag_converted(DW_TagNode *tag_node) +{ + return !!(tag_node->tag.v & D2R_TagFlags_TypeConverted); +} + +internal RDIM_Type * +d2r_find_or_convert_type(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Language cu_lang, Arch arch, DW_Tag tag, DW_AttribKind kind) +{ + RDIM_Type *type = type_table->builtin_types[RDI_TypeKind_Void]; + + // find attrib + DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); + + // does tag have this attribute? + if (attrib->attrib_kind == kind) { + DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); + + if (value_class == DW_AttribClass_Reference) { + // resolve reference + DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); + + if (ref.cu == cu) { + // find type + type = d2r_type_from_offset(type_table, ref.info_off); + + // was type converted? + if (type == 0) { + // issue type conversion + DW_TagNode *ref_node = dw_tag_node_from_info_off(cu, ref.info_off); + d2r_convert_types(arena, type_table, input, cu, cu_lang, arch, ref_node); + + // if we do not have a converted type at this point then debug info is malformed + type = d2r_type_from_offset(type_table, ref.info_off); + if (type == 0) { + type = type_table->builtin_types[RDI_TypeKind_NULL]; + } + } + } else { + NotImplemented; + } + } else { + log_infof("unexpected attrib class @ .debug_info+%llx", tag.info_off); + } + } + + return type; +} + +internal void +d2r_convert_types(Arena *arena, + D2R_TypeTable *type_table, + DW_Raw *input, + DW_CompUnit *cu, + DW_Language cu_lang, + Arch arch, + DW_TagNode *root) +{ + Temp scratch = scratch_begin(&arena, 1); + for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { + DW_TagNode *tag_node = it->tag_node; + DW_Tag tag = tag_node->tag; + + // skip converted tags + if (d2r_is_type_tag_converted(tag_node)) { + d2r_tag_iterator_skip_children(it); + continue; + } + // mark the tag as converted here, because during conversion we may recurse on the same tag + d2r_flag_converted_type_tag(tag_node); + + switch (tag.kind) { + case DW_TagKind_ClassType: { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_IncompleteClass; + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + Assert(!tag_node->first_child); + d2r_tag_iterator_skip_children(it); + } else { + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_Class; + type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); + type->direct_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + } + } break; + case DW_TagKind_StructureType: { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_IncompleteStruct; + + if (tag_node->first_child) { + d2r_tag_iterator_skip_children(it); + } else { + log_infof("childless struct @ .debug_info+%llx", tag.info_off); + } + } else { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_Struct; + type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); + } + } break; + case DW_TagKind_UnionType: { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_IncompleteUnion; + + if (tag_node->first_child) { + d2r_tag_iterator_skip_children(it); + } else { + log_infof("childless union @ .debug_info+%llx", tag.info_off); + } + } else { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_Union; + type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); + } + } break; + case DW_TagKind_EnumerationType: { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_IncompleteEnum; + if (tag_node->first_child) { + d2r_tag_iterator_skip_children(it); + } else { + log_infof("childless enum @ .debug_info+%llx", tag.info_off); + } + } else { + RDIM_Type *enum_base_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->kind = RDI_TypeKind_Enum; + type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); + type->direct_type = enum_base_type; + } + } break; + case DW_TagKind_SubProgram: { + if ( ! dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Declaration)) { + break; + } + } // fall-through + case DW_TagKind_SubroutineType: { + RDIM_Type *ret_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + + // collect parameters + RDIM_TypeList param_list = {0}; + for (DW_TagNode *n = tag_node->first_child; n != 0; n = n->sibling) { + if (n->tag.kind == DW_TagKind_FormalParameter) { + RDIM_Type *param_type = d2r_type_from_attrib(type_table, input, cu, n->tag, DW_AttribKind_Type); + rdim_type_list_push(scratch.arena, ¶m_list, param_type); + } else if (n->tag.kind == DW_TagKind_UnspecifiedParameters) { + rdim_type_list_push(scratch.arena, ¶m_list, type_table->builtin_types[RDI_TypeKind_Variadic]); + } else { + log_infof("unexpected tag @ .debug_info+%llx", tag.info_off); + } + } + + DW_TagNode *parent = d2r_tag_iterator_parent_tag_node(it); + B32 is_method = parent->tag.kind == DW_TagKind_StructureType || parent->tag.kind == DW_TagKind_ClassType; + + // init proceudre type + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = is_method ? RDI_TypeKind_Method : RDI_TypeKind_Function; + type->byte_size = cu->address_size; + type->direct_type = ret_type; + type->count = param_list.count; + type->param_types = rdim_array_from_type_list(arena, param_list); + + d2r_tag_iterator_skip_children(it); + } break; + case DW_TagKind_Typedef: { + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Alias; + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->direct_type = direct_type; + for (RDIM_Type *n = direct_type; n != 0; n = n->direct_type) { + if (n->byte_size) { + type->byte_size = n->byte_size; + break; + } + } + } break; + case DW_TagKind_BaseType: { + DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); + U64 byte_size = dw_byte_size_from_tag(input, cu, tag); + + // convert base type encoding to RDI version + RDI_TypeKind kind = RDI_TypeKind_NULL; +#define X(t,g,s) case s: kind = RDI_TypeKind_##t; break; + switch (encoding) { + case DW_ATE_Null: kind = RDI_TypeKind_NULL; break; + case DW_ATE_Address: kind = RDI_TypeKind_Void; break; + case DW_ATE_Boolean: kind = RDI_TypeKind_Bool; break; + case DW_ATE_ComplexFloat: { + switch (byte_size) { + case 8: kind = RDI_TypeKind_ComplexF32; break; + case 16: kind = RDI_TypeKind_ComplexF64; break; + case 24: kind = RDI_TypeKind_ComplexF80; break; + case 32: kind = RDI_TypeKind_ComplexF128; break; + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_Float: { + String8 name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + if (arch == Arch_x64 || arch == Arch_arm64) { + if (str8_match(name, str8_lit("__float80"), 0)) { + kind = RDI_TypeKind_F80; + } else if (str8_match(name, str8_lit("__float128"), 0)) { + kind = RDI_TypeKind_F128; + } else if (str8_match(name, str8_lit("_Float16"), 0)) { + kind = RDI_TypeKind_F16; + } else if (str8_match(name, str8_lit("__bf16"), 0)) { + kind = RDI_TypeKind_BF16; + } + if (kind != RDI_TypeKind_NULL) { break; } + } + + switch (byte_size) { + D2R_ValueType_Float_XList + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_Signed: { + String8 name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + if (str8_match(name, str8_lit("wchar_t"), 0)) { goto do_signed_char; } + + switch (byte_size) { + D2R_ValueType_Signed_XList + default: log_infof("unexpected size"); break; + } + } break; + do_signed_char:; + case DW_ATE_SignedChar: { + switch (byte_size) { + case 1: kind = RDI_TypeKind_Char8; break; + case 2: kind = RDI_TypeKind_Char16; break; + case 4: kind = RDI_TypeKind_Char32; break; + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_Unsigned: { + switch (byte_size) { + D2R_ValueType_Unsigned_XList + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_Utf: + case DW_ATE_UnsignedChar: { + switch (byte_size) { + case 1: kind = RDI_TypeKind_UChar8; break; + case 2: kind = RDI_TypeKind_UChar16; break; + case 4: kind = RDI_TypeKind_UChar32; break; + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_DecimalFloat: { + switch (byte_size) { + case 4: kind = RDI_TypeKind_Decimal32; break; + case 8: kind = RDI_TypeKind_Decimal64; break; + case 16: kind = RDI_TypeKind_Decimal128; break; + default: log_infof("unexpected size"); break; + } + } break; + case DW_ATE_ImaginaryFloat: { + NotImplemented; + } break; + case DW_ATE_PackedDecimal: { + NotImplemented; + } break; + case DW_ATE_NumericString: { + NotImplemented; + } break; + case DW_ATE_Edited: { + NotImplemented; + } break; + case DW_ATE_SignedFixed: { + NotImplemented; + } break; + case DW_ATE_UnsignedFixed: { + NotImplemented; + } break; + case DW_ATE_Ucs: { + NotImplemented; + } break; + case DW_ATE_Ascii: { + NotImplemented; + } break; + default: log_infof("unexpected base type encoding"); break; + } +#undef X + + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Alias; + type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + type->direct_type = type_table->builtin_types[kind]; + type->byte_size = byte_size; + } break; + case DW_TagKind_PointerType: { + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + + // TODO: + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Allocated)) { + log_infof("TODO: handle allocated attrib @ .debug_info+%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Associated)) { + log_infof("TODO: handle associated attrib @ .debug_info%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)) { + log_infof("TODO: handle alignment attrib @ .debug_info+%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)) { + log_infof("TODO: handle name attrib @ .debug_info+%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_AddressClass)) { + log_infof("TODO: handle address class attrib @ .debug_info+%llx", tag.info_off); + } + + U64 byte_size = cu->address_size; + if (cu->version == DW_Version_5 || cu->relaxed) { + dw_try_byte_size_from_tag(input, cu, tag, &byte_size); + } + + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Ptr; + type->byte_size = byte_size; + type->direct_type = direct_type; + } break; + case DW_TagKind_RestrictType: { + // TODO: + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)) { + log_infof("TODO: handle alignment attrib @ .debug_info+%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)) { + log_infof("TODO: handle name attrib @ .debug_info+%llx", tag.info_off); + } + + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Modifier; + type->byte_size = cu->address_size; + type->flags = RDI_TypeModifierFlag_Restrict; + type->direct_type = direct_type; + } break; + case DW_TagKind_VolatileType: { + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)) { + log_infof("TODO: handle name attrib @ .debug_info+%llx", tag.info_off); + } + + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Modifier; + type->byte_size = cu->address_size; + type->flags = RDI_TypeModifierFlag_Volatile; + type->direct_type = direct_type; + } break; + case DW_TagKind_ConstType: { + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)) { + log_infof("TODO: handle name attrib @ .debug_info+%llx", tag.info_off); + } + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)) { + log_infof("TODO: handle alignment attrib @ .debug_info+%llx", tag.info_off); + } + + RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); + type->kind = RDI_TypeKind_Modifier; + type->byte_size = cu->address_size; + type->flags = RDI_TypeModifierFlag_Const; + type->direct_type = direct_type; + } break; + case DW_TagKind_ArrayType: { + // TODO: @native_vector_support extract byte size from the base type tag + // and convert to U256, U512, S256 and S512 + B32 is_vector = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_GNU_Vector); + // TODO: + //if (is_vector) { NotImplemented; } + + B32 error = 1; + + // * DWARF vs RDI Array Type Graph * + // + // For example lets take following decl: + // + // int (*foo[2])[3]; + // + // This compiles to in DWARF: + // + // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] + // \ + // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] + // \ + // -> (B1) DW_TAG_BaseType (int) + // + // RDI expects: + // + // foo -> Array[2] -> Pointer -> Array[3] -> int + // + // Note that DWARF forks the graph on DW_TAG_ArrayType to describe array ranges in branch A and + // in branch B describes array type which might be a struct, pointer, base type, or any other type tag. + // However, in RDI we have a simple list of type nodes and to convert we need to append type nodes from + // B to A. + struct SubrangeNode { struct SubrangeNode *next; U64 count; }; + struct SubrangeNode *subrange_stack = 0; + for (DW_TagNode *n = tag_node->first_child; n != 0; n = n->sibling) { + if (n->tag.kind != DW_TagKind_SubrangeType) { + log_infof("[%llx] while scanning for DW_TagKind_SubrangeType found an unexpected child tag %S @ %llx\n", tag.info_off, dw_string_from_tag_kind(scratch.arena, n->tag.kind), n->tag.info_off); + goto array_type_exit; + } + + // resolve lower bound + U64 lower_bound = 0; + if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_LowerBound)) { + B32 is_vla = dw_is_attrib_var_ref(input, cu, dw_attrib_from_tag(input, cu, n->tag, DW_AttribKind_LowerBound)); + if (is_vla) { + log_infof("[%llx] TODO: lower bound is a variable\n", n->tag.info_off); + } else { + lower_bound = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_LowerBound); + } + } else { + lower_bound = dw_pick_default_lower_bound(cu_lang); + } + + // resolve upper bound + U64 upper_bound = 0; + if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_Count)) { + U64 count = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_Count); + upper_bound = lower_bound + count; + } else if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_UpperBound)) { + B32 is_vla = dw_is_attrib_var_ref(input, cu, dw_attrib_from_tag(input, cu, n->tag, DW_AttribKind_UpperBound)); + if (is_vla) { + log_infof("[%llx] TODO: upper bound is a variable\n", n->tag.info_off); + goto array_type_exit; + } else { + upper_bound = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_UpperBound); + upper_bound += 1; // turn upper bound into exclusive range + } + } else { + // zero sized array + } + + struct SubrangeNode *s = push_array(scratch.arena, struct SubrangeNode, 1); + s->count = upper_bound - lower_bound; + SLLStackPush(subrange_stack, s); + } + + RDIM_Type *array_base_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_Type *direct_type = array_base_type; + U64 size_cursor = array_base_type->byte_size; + for EachNode(s, struct SubrangeNode, subrange_stack) { + size_cursor *= s->count; + + RDIM_Type *t; + if (s->next) { t = d2r_create_type(arena, type_table); } + else { t = d2r_create_type_from_offset(arena, type_table, tag.info_off); } + + t->kind = RDI_TypeKind_Array; + t->direct_type = direct_type; + t->byte_size = size_cursor; + t->count = s->count; + + direct_type = t; + } + + error = 0; + array_type_exit:; + + // in case of an error, assign null to the array type + if (error) { + Assert(d2r_type_from_offset(type_table, tag.info_off) == 0); // this should the first time this type is being parsed + hash_table_push_u64_raw(arena, type_table->ht, tag.info_off, type_table->builtin_types[RDI_TypeKind_NULL]); + } + + d2r_tag_iterator_skip_children(it); + } break; + case DW_TagKind_SubrangeType: { + log_infof("unexpected tag"); + } break; + case DW_TagKind_Inheritance: { + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_StructureType || parent_tag.kind == DW_TagKind_ClassType) { + RDIM_Type *parent = d2r_type_from_offset(type_table, parent_tag.info_off); + RDIM_Type *type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch, tag, DW_AttribKind_Type); + RDIM_UDTMember *member = rdim_udt_push_member(arena, &g_d2r_shared.udts, parent->udt); + member->kind = RDI_MemberKind_Base; + member->type = type; + member->off = safe_cast_u32(dw_const_u32_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_DataMemberLocation)); + } else { + log_infof("unexpected parent tag"); + } + } break; + } + } + scratch_end(scratch); +} + +internal B8 +d2r_is_udt_tag_converted(DW_TagNode *tag_node) +{ + return !!(tag_node->tag.v & D2R_TagFlags_UdtConverted); +} + +internal void +d2r_flag_converted_udt_tag(DW_TagNode *tag_node) +{ + tag_node->tag.v |= D2R_TagFlags_UdtConverted; +} + +internal void +d2r_inline_anonymous_udt_member(Arena *arena, RDIM_UDT *top_udt, U64 base_off, RDIM_UDT *udt) +{ + for (RDIM_UDTMember *curr = udt->first_member, *prev = 0; curr != 0; prev = curr, curr = curr->next) { + if (curr->name.size == 0) { + d2r_inline_anonymous_udt_member(arena, top_udt, base_off + curr->off, curr->type->udt); + } else { + // copy member and adjust its offset relative to inlined position in the root UDT + RDIM_UDTMember *m = rdim_udt_push_member(arena, &g_d2r_shared.udts, top_udt); + *m = *curr; + m->off += base_off; + } + } +} + +internal void +d2r_convert_udts(Arena *arena, + D2R_TypeTable *type_table, + DW_Raw *input, + DW_CompUnit *cu, + DW_Language cu_lang, + DW_TagNode *root) +{ + Temp scratch = scratch_begin(&arena, 1); + + for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { + DW_TagNode *tag_node = it->tag_node; + DW_Tag tag = tag_node->tag; + + // skip converted tags + if (d2r_is_udt_tag_converted(tag_node)) { + d2r_tag_iterator_skip_children(it); + continue; + } + d2r_flag_converted_udt_tag(tag_node); + + if (tag.kind == DW_TagKind_ClassType || tag.kind == DW_TagKind_StructureType || tag.kind == DW_TagKind_UnionType) { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + d2r_tag_iterator_skip_children(it); + } else { + RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); + RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &g_d2r_shared.udts, D2R_UDT_CHUNK_CAP); + udt->self_type = type; + type->udt = udt; + } + } else if (tag.kind == DW_TagKind_EnumerationType) { + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { + d2r_tag_iterator_skip_children(it); + } else { + RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); + RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &g_d2r_shared.udts, D2R_UDT_CHUNK_CAP); + udt->self_type = type; + type->udt = udt; + } + } else if (tag.kind == DW_TagKind_Member) { + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + B32 is_parent_udt = parent_tag.kind == DW_TagKind_StructureType || + parent_tag.kind == DW_TagKind_ClassType || + parent_tag.kind == DW_TagKind_UnionType; + if (is_parent_udt) { + RDIM_Type *parent_type = d2r_type_from_offset(type_table, parent_tag.info_off); + RDIM_Type *type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + String8 name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + U64 off = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_DataMemberLocation); + if (name.size == 0) { // inline anonymous members + DW_Reference type_ref = dw_ref_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Type); + RDIM_Type *member_type = d2r_type_from_offset(type_table, type_ref.info_off); + RDIM_UDT *member_udt = member_type->udt; + if (member_udt == 0) { + DW_Language ref_cu_lang = dw_const_u64_from_tag_attrib_kind(input, type_ref.cu, type_ref.cu->tag, DW_AttribKind_Language); + DW_TagNode *ref_tag_node = dw_tag_node_from_info_off(type_ref.cu, type_ref.info_off); + d2r_convert_udts(arena, type_table, input, type_ref.cu, ref_cu_lang, ref_tag_node); + Assert(member_type->udt); + member_udt = member_type->udt; + } + d2r_inline_anonymous_udt_member(arena, parent_type->udt, off, member_udt); + } else { + RDIM_UDTMember *member = rdim_udt_push_member(arena, &g_d2r_shared.udts, parent_type->udt); + member->kind = RDI_MemberKind_DataField; + member->name = name; + member->type = type; + member->off = off; + } + } else { + log_infof("unexpected parent tag @ .debug_info+%llx", tag.info_off); + } + } else if (tag.kind == DW_TagKind_Enumerator) { + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_EnumerationType) { + RDIM_Type *parent_type = d2r_type_from_offset(type_table, parent_tag.info_off); + RDIM_UDTEnumVal *udt_member = rdim_udt_push_enum_val(arena, &g_d2r_shared.udts, parent_type->udt); + udt_member->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + udt_member->val = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ConstValue); + } else { + log_infof("unexpected parent tag @ .debug_info+%llx", tag.info_off); + } + } + } + scratch_end(scratch); +} + +internal RDIM_Scope * +d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D2R_TagFrame *tag_stack, Rng1U64List ranges) +{ + // fill out scope + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, scopes, scope_chunk_cap); + + // push ranges + for EachNode(i, Rng1U64Node, ranges.first) { + rdim_scope_push_voff_range(arena, scopes, scope, (RDIM_Rng1U64){.min = i->v.min, i->v.max}); + } + + // associate scope with tag + tag_stack->scope = scope; + + // update scope hierarchy + DW_TagKind parent_tag_kind = tag_stack->next->node->tag.kind; + if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine || parent_tag_kind == DW_TagKind_LexicalBlock) { + RDIM_Scope *parent = tag_stack->next->scope; + + scope->parent_scope = parent; + scope->symbol = parent->symbol; + + if (parent->last_child) { + parent->last_child->next_sibling = scope; + } + SLLQueuePush_N(parent->first_child, parent->last_child, scope, next_sibling); + } + + return scope; +} + +internal RDIM_Type ** +d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out) +{ + Temp scratch = scratch_begin(&arena, 1); + + RDIM_TypeList list = {0}; + B32 has_vargs = 0; + for (DW_TagNode *i = cur_node->first_child; i != 0; i = i->sibling) { + if (i->tag.kind == DW_TagKind_FormalParameter) { + RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); + n->v = d2r_type_from_attrib(type_table, input, cu, i->tag, DW_AttribKind_Type); + SLLQueuePush(list.first, list.last, n); + ++list.count; + } else if (i->tag.kind == DW_TagKind_UnspecifiedParameters) { + has_vargs = 1; + } + } + + if (has_vargs) { + RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); + n->v = type_table->builtin_types[RDI_TypeKind_Variadic]; + SLLQueuePush(list.first, list.last, n); + ++list.count; + } + + // collect params + *param_count_out = list.count; + RDIM_Type **params = rdim_array_from_type_list(arena, list); + + scratch_end(scratch); + return params; +} + +internal Rng1U64List +d2r_range_list_from_tag(Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) +{ + // collect non-contiguous range + Rng1U64List raw_ranges = dw_rnglist_from_tag_attrib_kind(arena, input, cu, tag, DW_AttribKind_Ranges); + + // exclude invalid ranges caused by linker optimizations + Rng1U64List ranges = {0}; + for (Rng1U64Node *n = raw_ranges.first, *next = 0; n != 0; n = next) { + next = n->next; + if (n->v.min < image_base || n->v.min > n->v.max) { + continue; + } + rng1u64_list_push_node(&ranges, n); + } + + // debase ranges + for EachNode(r, Rng1U64Node, ranges.first) { + r->v.min -= image_base; + r->v.max -= image_base; + } + + // collect contiguous range + { + DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); + DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); + if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { + U64 lo_pc = dw_address_from_attrib(input, cu, lo_pc_attrib); + + U64 hi_pc = 0; + DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); + if (hi_pc_class == DW_AttribClass_Address) { + hi_pc = dw_address_from_attrib(input, cu, hi_pc_attrib); + } else if (hi_pc_class == DW_AttribClass_Const) { + hi_pc = dw_const_u64_from_attrib(input, cu, hi_pc_attrib); + hi_pc += lo_pc; + } + + if (lo_pc >= image_base && hi_pc >= image_base) { + if (lo_pc < hi_pc) { + rng1u64_list_push(arena, &ranges, rng_1u64(lo_pc - image_base, hi_pc - image_base)); + } else { + log_infof("invalid range @ .debug_info+%llx", tag.info_off); + } + } else { + // invalid low and hi PC are likely are caused by an optimization pass during linking + } + } else if ((lo_pc_attrib->attrib_kind == DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) || + (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind == DW_AttribKind_Null)) { + log_infof("invalid range @ .debug_info+%llx", tag.info_off); + } + } + + return ranges; +} + +internal void +d2r_convert_symbols(Arena *arena, + D2R_TypeTable *type_table, + DW_Raw *input, + DW_CompUnit *cu, + DW_Language cu_lang, + U64 image_base, + Arch arch, + DW_TagNode *root, + RDIM_Unit *unit_rdi) +{ + Temp scratch = scratch_begin(&arena, 1); + for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { + DW_TagNode *tag_node = it->tag_node; + DW_Tag tag = tag_node->tag; + switch (tag.kind) { + case DW_TagKind_Null: { InvalidPath; } break; + case DW_TagKind_ClassType: + case DW_TagKind_StructureType: + case DW_TagKind_UnionType: { + // visit children to collect methods and variables + } break; + case DW_TagKind_EnumerationType: + case DW_TagKind_SubroutineType: + case DW_TagKind_Typedef: + case DW_TagKind_BaseType: + case DW_TagKind_PointerType: + case DW_TagKind_RestrictType: + case DW_TagKind_VolatileType: + case DW_TagKind_ConstType: + case DW_TagKind_ArrayType: + case DW_TagKind_SubrangeType: + case DW_TagKind_Inheritance: + case DW_TagKind_Enumerator: + case DW_TagKind_Member: { + d2r_tag_iterator_skip_children(it); + } break; + case DW_TagKind_SubProgram: { + // handled during type conversion step + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Declaration)) { + d2r_tag_iterator_skip_children(it); + break; + } + + DW_InlKind inl = DW_Inl_NotInlined; + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Inline)) { inl = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Inline); } + + switch (inl) { + case DW_Inl_DeclaredNotInlined: + case DW_Inl_NotInlined: { + U64 param_count = 0; + RDIM_Type **params = d2r_collect_proc_params(arena, type_table, input, cu, tag_node, ¶m_count); + + // get return type + RDIM_Type *ret_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + + // fill out proc type + RDIM_Type *proc_type = d2r_create_type(arena, type_table); + proc_type->kind = RDI_TypeKind_Function; + proc_type->byte_size = cu->address_size; + proc_type->direct_type = ret_type; + proc_type->count = param_count; + proc_type->param_types = params; + + // get container type + RDIM_Type *container_type = 0; + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ContainingType)) { + container_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_ContainingType); + } else { + DW_TagNode *parent = d2r_tag_iterator_parent_tag_node(it); + container_type = d2r_type_from_offset(type_table, parent->tag.info_off); + if (container_type == 0) { + log_infof("ERROR: failed to infer parent type of subprogram from .debug_info+0x%llx\n", parent->tag.info_off); + } + } + + // get frame base expression + String8 frame_base_expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_FrameBase); + + // get proc container symbol + RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &unit_rdi->procedures, D2R_PROC_CHUNK_CAP); + + // make scope + Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); + RDIM_Scope *root_scope = d2r_push_scope(arena, &unit_rdi->scopes, D2R_SCOPE_CHUNK_CAP, it->stack, ranges); + root_scope->symbol = proc; + + // fill out proc + proc->is_extern = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_External); + proc->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + proc->link_name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_LinkageName); + proc->type = proc_type; + proc->container_scope = 0; + proc->container_type = container_type; + proc->root_scope = root_scope; + proc->location_cases = d2r_locset_from_attrib(arena, &unit_rdi->scopes, root_scope, input, cu, image_base, arch, tag, DW_AttribKind_FrameBase); + + // sub program with user-defined parent tag is a method + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_ClassType || parent_tag.kind == DW_TagKind_StructureType) { + // DW_VirtualityKind -> RDI_MemberKind + RDI_MemberKind member_kind = RDI_MemberKind_NULL; + { + DW_VirtualityKind virtuality = DW_VirtualityKind_None; + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Virtuality)) { + virtuality = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Virtuality); + switch (virtuality) { + case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; + case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; + case DW_VirtualityKind_PureVirtual: member_kind = RDI_MemberKind_VirtualMethod; break; // TODO: create kind for pure virutal + default: { log_infof("unhandled virtuality kind"); } break; + } + } + } + + RDIM_Type *type = d2r_type_from_offset(type_table, parent_tag.info_off); + RDIM_UDTMember *member = rdim_udt_push_member(arena, &g_d2r_shared.udts, type->udt); + member->kind = member_kind; + member->type = type; + member->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + } else if (parent_tag.kind != DW_TagKind_CompileUnit) { + log_infof("unexpected tag @ .debug_info+%llx", tag.info_off); + } + + it->stack->scope = root_scope; + } break; + case DW_Inl_DeclaredInlined: + case DW_Inl_Inlined: { + d2r_tag_iterator_skip_children(it); + } break; + default: InvalidPath; break; + } + } break; + case DW_TagKind_InlinedSubroutine: { + U64 param_count = 0; + RDIM_Type **params = d2r_collect_proc_params(arena, type_table, input, cu, tag_node, ¶m_count); + + // get return type + RDIM_Type *ret_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + + // fill out proc type + RDIM_Type *proc_type = d2r_create_type(arena, type_table); + proc_type->kind = RDI_TypeKind_Function; + proc_type->byte_size = cu->address_size; + proc_type->direct_type = ret_type; + proc_type->count = param_count; + proc_type->param_types = params; + + // get container type + RDIM_Type *owner = 0; + if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ContainingType)) { + owner = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_ContainingType); + } + + // fill out inline site + RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &unit_rdi->inline_sites, D2R_INLINE_SITE_CHUNK_CAP); + inline_site->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + inline_site->type = proc_type; + inline_site->owner = owner; + inline_site->line_table = 0; + + // make scope + Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); + RDIM_Scope *root_scope = d2r_push_scope(arena, &unit_rdi->scopes, D2R_SCOPE_CHUNK_CAP, it->stack, ranges); + root_scope->inline_site = inline_site; + } break; + case DW_TagKind_Variable: { + String8 name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + RDIM_Type *type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_SubProgram || + parent_tag.kind == DW_TagKind_InlinedSubroutine || + parent_tag.kind == DW_TagKind_LexicalBlock) { + RDIM_Scope *scope = it->stack->next->scope; + RDIM_Symbol *local = rdim_symbol_chunk_list_push(arena, &scope->locals, 8); + local->name = name; + local->type = type; + local->location_cases = d2r_var_locset_from_tag(arena, &unit_rdi->scopes, scope, input, cu, image_base, arch, tag); + } else { + + // NOTE: due to a bug in clang in stb_sprintf.h local variables + // are declared in global scope without a name + if (name.size == 0) { break; } + + // decls do not have location info + B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); + if (is_decl) { break; } + + U64 voff = max_U64; + B32 is_thread_var = 0; + { + DW_Attrib *loc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_Location); + DW_AttribClass loc_class = dw_value_class_from_attrib(cu, loc_attrib); + if (loc_class == DW_AttribClass_ExprLoc) { + Temp temp = temp_begin(scratch.arena); + + String8 expr = dw_exprloc_from_attrib(input, cu, loc_attrib); + D2R_ValueType expr_type = 0; + RDIM_EvalBytecode bc = d2r_bytecode_from_expression(temp.arena, input, image_base, arch, cu->addr_lu, expr, cu, &expr_type); + + // evaluate bytecode to virutal offset if possible + if (expr_type == D2R_ValueType_Address) { + B32 is_static = rdim_is_eval_bytecode_static(bc); + if (is_static) { + if (!rdim_static_eval_bytecode_to_voff(bc, image_base, &voff)) { + log_infof("failed to evalute byte code to virtual offset @ .debug_info+%llx", tag.info_off); + } + } + } + + // is this a thread variable? + is_thread_var = rdim_is_bytecode_tls_dependent(bc); + + temp_end(temp); + } + } + + RDIM_SymbolChunkList *var_chunks; U64 var_chunks_cap; + if (is_thread_var) { var_chunks = &unit_rdi->thread_variables; var_chunks_cap = D2R_TVAR_CHUNK_CAP; } + else { var_chunks = &unit_rdi->global_variables; var_chunks_cap = D2R_GVAR_CHUNK_CAP; } + + RDIM_Symbol *var = rdim_symbol_chunk_list_push(arena, var_chunks, var_chunks_cap); + var->is_extern = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_External); + var->name = name; + var->link_name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_LinkageName); + var->type = type; + var->container_scope = 0; + RDIM_Location loc = {.kind = is_thread_var ? RDI_LocationKind_TLSOff : RDI_LocationKind_ModuleOff, .offset = voff}; + RDIM_Rng1U64 range = {0, 0xffffffffffffffffull}; + rdim_location_case_list_push(arena, &var->location_cases, loc, range); + } + } break; + case DW_TagKind_FormalParameter: { + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_SubProgram || parent_tag.kind == DW_TagKind_InlinedSubroutine) { + RDIM_Scope *scope = it->stack->next->scope; + RDIM_Symbol *param = rdim_symbol_chunk_list_push(arena, &scope->locals, 4); + param->is_param = 1; + param->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); + param->type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); + param->location_cases = d2r_var_locset_from_tag(arena, &unit_rdi->scopes, scope, input, cu, image_base, arch, tag); + } else { + Assert(!"this is a local variable"); + log_infof(".debug_info+%llx out of scope formal parameter", tag.info_off); + } + } break; + case DW_TagKind_LexicalBlock: { + DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); + if (parent_tag.kind == DW_TagKind_SubProgram || + parent_tag.kind == DW_TagKind_InlinedSubroutine || + parent_tag.kind == DW_TagKind_LexicalBlock) { + Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); + d2r_push_scope(arena, &unit_rdi->scopes, D2R_SCOPE_CHUNK_CAP, it->stack, ranges); + } + } break; + case DW_TagKind_CallSite: { + // TODO + } break; + case DW_TagKind_CallSiteParameter: { + // TODO + } break; + case DW_TagKind_Label: + case DW_TagKind_CompileUnit: + case DW_TagKind_UnspecifiedParameters: + case DW_TagKind_Namespace: + case DW_TagKind_ImportedDeclaration: + case DW_TagKind_PtrToMemberType: + case DW_TagKind_TemplateTypeParameter: + case DW_TagKind_ReferenceType: { + // TODO: + } break; + default: + { + // NotImplemented; + } break; + } + } + scratch_end(scratch); +} + +force_inline int +d2r_src_file_lookup_compar(void *raw_a, void *raw_b) +{ + D2R_SrcFileLookup *a = raw_a, *b = raw_b; + DW_LineFile *file_a = a->file, *file_b = b->file; + String8 dir_path_a = a->vm->header.dir_table.v[file_a->dir_idx]; + String8 dir_path_b = b->vm->header.dir_table.v[file_b->dir_idx]; + int cmp = str8_compar(dir_path_a, dir_path_b, 0); + if (cmp == 0) { + cmp = str8_compar(file_a->path, file_b->path, 0); + } + return cmp; +} + +force_inline +LFHT_IS_KEY_EQUAL_FUNC(d2r_src_file_lookup_is_equal) +{ + return d2r_src_file_lookup_compar(a, b) == 0; +} + +force_inline int +d2r_src_file_lfht_key_value_is_before(void *raw_a, void *raw_b) +{ + return d2r_src_file_lookup_compar(*(D2R_SrcFileLookup **)raw_a, *(D2R_SrcFileLookup **)raw_b) < 0; +} + +internal U64 +d2r_hash_line_file(String8 dir_path, DW_LineFile *file) +{ + XXH3_state_t hasher = {0}; + XXH3_64bits_reset(&hasher); + XXH3_64bits_update(&hasher, dir_path.str, dir_path.size); + XXH3_64bits_update(&hasher, file->path.str, file->path.size); + XXH3_64bits_update(&hasher, &file->time_stamp, sizeof(file->time_stamp)); + XXH3_64bits_update(&hasher, &file->md5, sizeof(file->md5)); + XXH64_hash_t hash = XXH3_64bits_digest(&hasher); + return hash; +} + +internal void +d2r_sort_ptrs(void **ptrs, U64 count, int (* is_before)(void *a, void *b)) +{ + radsort(ptrs, count, is_before); +} + +internal D2R_CompUnitContribMap +d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Raw *input, U64 image_base) +{ + Temp scratch = scratch_begin(&arena, 1); + Temp temp = temp_begin(arena); + B32 parse_failed = 1; + + Rng1U64List unit_range_list = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_ARanges].data); + + D2R_CompUnitContribMap cm = {0}; + cm.info_off_arr = push_array(temp.arena, U64, unit_range_list.count); + cm.voff_range_arr = push_array(temp.arena, RDIM_Rng1U64ChunkList, unit_range_list.count); + + for EachNode(range_n, Rng1U64Node, unit_range_list.first) { + String8 unit_data = str8_substr(input->sec[DW_Section_ARanges].data, range_n->v); + U64 unit_cursor = 0; + + U32 first_four_bytes = 0; + if (str8_deserial_read_struct(input->sec[DW_Section_Info].data, 0, &first_four_bytes) != sizeof(first_four_bytes)) { goto exit; } + DW_Format unit_format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; + + U64 unit_length; + TryRead(str8_deserial_read_dwarf_packed_size(unit_data, unit_cursor, &unit_length), unit_cursor, exit); + + DW_Version version; + TryRead(str8_deserial_read_struct(unit_data, unit_cursor, &version), unit_cursor, exit); + + if (version != DW_Version_2) { + log_infof("unknown .debug_aranges version %u @ 0x%llx", version, range_n->v.min); + continue; + } + + U64 cu_info_off; + TryRead(str8_deserial_read_dwarf_uint(unit_data, unit_cursor, unit_format, &cu_info_off), unit_cursor, exit); + + U8 address_size = 0; + TryRead(str8_deserial_read_struct(unit_data, unit_cursor, &address_size), unit_cursor, exit); + + U8 segment_selector_size = 0; + TryRead(str8_deserial_read_struct(unit_data, unit_cursor, &segment_selector_size), unit_cursor, exit); + + U64 tuple_size = address_size * 2 + segment_selector_size; + U64 bytes_too_far_past_boundary = unit_cursor % tuple_size; + if (bytes_too_far_past_boundary > 0) { + unit_cursor += tuple_size - bytes_too_far_past_boundary; + } + + RDIM_Rng1U64ChunkList voff_ranges = {0}; + if (segment_selector_size == 0) { + while (unit_cursor + address_size * 2 <= unit_data.size) { + U64 address = 0; + U64 length = 0; + TryRead(str8_deserial_read(unit_data, unit_cursor, &address, address_size, address_size), unit_cursor, exit); + TryRead(str8_deserial_read(unit_data, unit_cursor, &length, address_size, address_size), unit_cursor, exit); + + if (address == 0 && length == 0) { break; } + if (address == 0) { continue; } + + if (address < image_base) { + log_infof("invalid address 0x%llx in .debug_aranges+%llx", range_n->v.min + unit_cursor); + continue; + } + + U64 min = address - image_base; + U64 max = min + length; + rdim_rng1u64_chunk_list_push(temp.arena, &voff_ranges, 256, (RDIM_Rng1U64){.min = min, .max = max}); + } + } else { + NotImplemented; + } + + U64 map_idx = cm.count++; + cm.info_off_arr[map_idx] = cu_info_off; + cm.voff_range_arr[map_idx] = voff_ranges; + } + + parse_failed = 0; + exit:; + if (parse_failed) { + MemoryZeroStruct(&cm); + temp_end(temp); + } + scratch_end(scratch); + return cm; +} + +internal RDIM_Rng1U64ChunkList +d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off) +{ + RDIM_Rng1U64ChunkList voff_ranges = {0}; + U64 voff_list_idx = u64_array_bsearch(map.info_off_arr, map.count, info_off); + if (voff_list_idx < map.count) { + voff_ranges = map.voff_range_arr[voff_list_idx]; + } + return voff_ranges; +} + +internal RDIM_BakeParams +d2r_convert(Arena *arena, D2R_ConvertParams *params) +{ + Temp scratch = scratch_begin(&arena, 1); + + if (lane_idx() == 0) { + //////////////////////////////// + + Arch arch = Arch_Null; + U64 image_base = 0; + DW_Raw input = {0}; + PathStyle path_style = PathStyle_Null; + + switch (params->exe_kind) { + case ExecutableImageKind_Null: {} break; + case ExecutableImageKind_CoffPe: { + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, params->exe_data); + String8 raw_sections = str8_substr(params->exe_data, pe.section_table_range); + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(raw_sections, 0, sizeof(COFF_SectionHeader) * pe.section_count); + String8 string_table = str8_substr(params->exe_data, pe.string_table_range); + + arch = pe.arch; + image_base = pe.image_base; + input = dw_input_from_coff_section_table(scratch.arena, params->exe_data, string_table, pe.section_count, section_table); + path_style = PathStyle_WindowsAbsolute; + + g_d2r_shared.binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, params->exe_data, string_table, pe.section_count, section_table); + } break; + case ExecutableImageKind_Elf32: + case ExecutableImageKind_Elf64: { + ELF_Bin bin = elf_bin_from_data(scratch.arena, params->dbg_data); + + arch = arch_from_elf_machine(bin.hdr.e_machine); + image_base = elf_base_addr_from_bin(&bin); + input = dw_raw_from_elf_bin(scratch.arena, params->dbg_data, &bin); + path_style = PathStyle_UnixAbsolute; + + g_d2r_shared.binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, params->dbg_data, &bin, &bin.shdrs); + } break; + default: { InvalidPath; } break; + } + + //////////////////////////////// + + ProfBegin("compute exe hash"); + U64 exe_hash = rdi_hash(params->exe_data.str, params->exe_data.size); + ProfEnd(); + + g_d2r_shared.top_level_info = rdim_make_top_level_info(params->exe_name, arch, exe_hash, g_d2r_shared.binary_sections); + + //////////////////////////////// + + ProfBegin("Parse Unit Contrib Map"); + D2R_CompUnitContribMap cu_contrib_map = {0}; + if (input.sec[DW_Section_ARanges].data.size) { + cu_contrib_map = d2r_cu_contrib_map_from_aranges(arena, &input, image_base); + } + ProfEnd(); + + ProfBegin("Parse Comop Unit Ranges"); + DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, &input); + Rng1U64List cu_range_list = dw_unit_ranges_from_data(scratch.arena, input.sec[DW_Section_Info].data); + Rng1U64Array cu_ranges = rng1u64_array_from_list(scratch.arena, &cu_range_list); + ProfEnd(); + + //////////////////////////////// + + ProfBegin("Parse Compile Unit Headers"); + DW_CompUnit *cu_arr = push_array(scratch.arena, DW_CompUnit, cu_ranges.count); + for EachIndex(cu_idx, cu_ranges.count) { + cu_arr[cu_idx] = dw_cu_from_info_off(scratch.arena, &input, lu_input, cu_ranges.v[cu_idx].min, params->is_parse_relaxed); + } + ProfEnd(); + + //////////////////////////////// + + RDIM_LineTable **cu_line_tables_rdi = push_array(scratch.arena, RDIM_LineTable *, cu_ranges.count); + ProfScope("Convert Line Tables [Count: %llu]", cu_ranges.count) + { + Temp temp = temp_begin(scratch.arena); + + // TODO: per thread task + ProfBegin("Up front parse line VM headers"); + DW_LineVM **line_vms = push_array(temp.arena, DW_LineVM *, cu_ranges.count); + for EachIndex(cu_idx, cu_ranges.count) { + line_vms[cu_idx] = dw_line_vm_init(&input, &cu_arr[cu_idx]); + } + ProfEnd(); + + // TODO: sync + // + // sum all source files (including duplicates) + U64 total_file_count = 0; + for EachIndex(cu_idx, cu_ranges.count) { total_file_count += line_vms[cu_idx]->header.file_table.count; } + + // TODO: sync + ProfBegin("Dedup source files [Count: %llu]", total_file_count); + LFHT_NodeChunkList *src_file_lfht_nodes = push_array(temp.arena, LFHT_NodeChunkList, lane_count()); + LFHT_Node *src_file_lfht = 0; + + // TODO: per thread + { + D2R_SrcFileLookup *lookup = 0; + for EachIndex(cu_idx, cu_ranges.count) { + DW_LineVM *vm = line_vms[cu_idx]; + for EachIndex(file_idx, vm->header.file_table.count) { + DW_LineFile *file = &vm->header.file_table.v[file_idx]; + + if (lookup == 0) { lookup = push_array(temp.arena, D2R_SrcFileLookup, 1); } + lookup->vm = vm; + lookup->file = file; + + LFHT_NodeChunkList *node_chunks = &src_file_lfht_nodes[lane_idx()]; + U64 hash = d2r_hash_line_file(vm->header.dir_table.v[file->dir_idx], file); + B32 was_inserted = lfht_insert(temp.arena, node_chunks, &src_file_lfht, hash, lookup, d2r_src_file_lookup_is_equal, 0); + if (was_inserted) { + lookup = 0; + } + } + } + } + ProfEnd(); + + // TODO: sync + ProfBegin("Extract source file lookups"); + U64 unique_file_count = lfht_total_count_from_node_chunk_lists(lane_count(), src_file_lfht_nodes); + void **lookups = lfht_data_from_node_chunk_lists(temp.arena, unique_file_count, lane_count(), src_file_lfht_nodes); + ProfEnd(); + + // TODO: sync + ProfBegin("Sort unique source files [Count: %llu]", unique_file_count); + d2r_sort_ptrs(lookups, unique_file_count, d2r_src_file_lfht_key_value_is_before); + ProfEnd(); + + // TODO: per thread task + ProfBegin("Convert source files"); + for EachIndex(i, unique_file_count) { + D2R_SrcFileLookup *lookup = lookups[i]; + + DW_LineFile *src = lookup->file; + RDIM_SrcFile *dst = rdim_src_file_chunk_list_push(arena, &g_d2r_shared.src_files, D2R_SRC_FILE_CAP); + + // make file path + String8 path; + { + Temp temp = temp_begin(scratch.arena); + + String8 comp_dir = lookup->vm->header.dir_table.v[0]; + + PathStyle comp_path_style = path_style_from_str8(comp_dir); + PathStyle dir_path_style = path_style_from_str8(lookup->vm->header.dir_table.v[src->dir_idx]); + PathStyle file_path_style = path_style_from_str8(src->path); + + String8List dir_path_list = str8_split_path(temp.arena, lookup->vm->header.dir_table.v[src->dir_idx]); + String8List file_path_list = str8_split_path(temp.arena, src->path); + + String8List path_list = {0}; + if (dir_path_style == PathStyle_Relative) { + String8List comp_dir_list = str8_split_path(temp.arena, comp_dir); + str8_list_concat_in_place(&path_list, &comp_dir_list); + } + str8_list_concat_in_place(&path_list, &dir_path_list); + str8_list_concat_in_place(&path_list, &file_path_list); + + PathStyle path_style = PathStyle_SystemAbsolute; + if (dir_path_style != PathStyle_Relative) { path_style = dir_path_style; } + else if (file_path_style != PathStyle_Relative) { path_style = file_path_style; } + else if (comp_path_style != PathStyle_Relative) { path_style = comp_path_style; } + + str8_path_list_resolve_dots_in_place(&path_list, path_style); + path = str8_path_list_join_by_style(arena, &path_list, path_style); + + temp_end(temp); + } + + // fill out source file + dst->path = path; + if ( ! u128_match(src->md5, u128_zero())) { + dst->checksum_kind = RDI_ChecksumKind_MD5; + dst->checksum = str8_copy(arena, str8_struct(&src->md5)); + } else if (src->time_stamp != 0) { + dst->checksum_kind = RDI_ChecksumKind_Timestamp; + dst->checksum = str8_copy(arena, str8_struct(&src->time_stamp)); + } + + lookup->src_file = dst; + } + ProfEnd(); + + // TODO: sync + RDIM_LineTableChunkList *lane_line_table_chunks = push_array(temp.arena, RDIM_LineTableChunkList, lane_count()); + + // TODO: per thread task + ProfBegin("Convert line sequences"); + U64 *line_seq_counts_per_lane = push_array(scratch.arena, U64, lane_count()); + for EachIndex(cu_idx, cu_ranges.count) { + RDIM_LineTableChunkList *lane_line_table_chunk_list = &lane_line_table_chunks[lane_idx()]; + + // push new line table for the compile unit + RDIM_LineTable *line_table = rdim_line_table_chunk_list_push(arena, lane_line_table_chunk_list, D2R_LINE_TABLE_CAP); + cu_line_tables_rdi[cu_idx] = line_table; + + // push line buffer +#define D2R_LineBufferMax 1024 + struct LineBuffer { U64 file_index; U64 voffs[D2R_LineBufferMax]; U32 line_nums[D2R_LineBufferMax]; U32 col_nums[D2R_LineBufferMax]; } LineBuffer; + struct LineBuffer *line_buffer = push_array(temp.arena, struct LineBuffer, 1); + U64 line_buffer_size = 0; + + // decode line sequences + DW_LineVM *vm = line_vms[cu_idx]; + U64 *line_seq_counts_per_file = push_array(temp.arena, U64, vm->header.file_table.count); + while (dw_line_vm_step(vm)) { + if (vm->new_line) { + // lazy defined files are not supported + if (vm->state.file_index >= vm->header.file_table.count) { continue; } + + // time to flush the buffer? + if (((vm->opcode == DW_StdOpcode_ExtendedOpcode && vm->ext_opcode == DW_ExtOpcode_EndSequence) || + (line_buffer_size >= D2R_LineBufferMax || line_buffer->file_index != vm->state.file_index)) + && line_buffer_size > 0) { + // lookup source file + DW_LineFile *file = &vm->header.file_table.v[line_buffer->file_index]; + U64 hash = d2r_hash_line_file(vm->header.dir_table.v[file->dir_idx], file); + D2R_SrcFileLookup *lookup = lfht_search(src_file_lfht, hash, &(D2R_SrcFileLookup){ .file = file, .vm = vm }, d2r_src_file_lookup_is_equal, 0); + RDIM_SrcFile *src_file = lookup->src_file; + + // copy line info + U64 *voffs = push_array_no_zero(arena, U64, line_buffer_size + 1); + U32 *line_nums = push_array_no_zero(arena, U32, line_buffer_size); + voffs[line_buffer_size] = vm->state.address - image_base; + MemoryCopyTyped(voffs, line_buffer->voffs, line_buffer_size); + MemoryCopyTyped(line_nums, line_buffer->line_nums, line_buffer_size); + + RDIM_LineSequence *line_seq = rdim_line_table_push_sequence(arena, lane_line_table_chunk_list, line_table, src_file, voffs, line_nums, 0, line_buffer_size); + + // atomic implementation of @rdim_src_file_push_line_sequence + { + // associate line fragment with source file + RDIM_SrcFileLineMapFragment *line_frag = push_array(arena, RDIM_SrcFileLineMapFragment, 1); + line_frag->seq = line_seq; + + // insert line fragment node + for (;;) { + RDIM_SrcFileLineMapFragment *next = src_file->first_line_map_fragment; + line_frag->next = next; + RDIM_SrcFileLineMapFragment *curr = ins_atomic_ptr_eval_cond_assign(&src_file->first_line_map_fragment, line_frag, next); + if (curr == 0) { + ins_atomic_u64_add_eval(&g_d2r_shared.src_files.source_line_map_count, 1); + } + if (curr == next) { break; } + } + + // accumulate line sequence counts per file + line_seq_counts_per_file[vm->state.file_index] += line_seq->line_count; + + // accumulate line sequence counts per lane + line_seq_counts_per_lane[lane_idx()] += line_seq->line_count; + } + + // reset line buffer size tracker + line_buffer_size = 0; + } + + if (line_buffer_size > 0 && line_buffer->voffs[line_buffer_size - 1] == vm->state.address) { + line_buffer->line_nums[line_buffer_size - 1] = Min(line_buffer->line_nums[line_buffer_size - 1], safe_cast_u32(vm->state.line)); + } else { + // append line to the buffer + line_buffer->file_index = vm->state.file_index; + line_buffer->voffs[line_buffer_size] = vm->state.address - image_base; + line_buffer->line_nums[line_buffer_size] = safe_cast_u32(vm->state.line); + line_buffer_size += 1; + } + } + } + + // update line sequence counts per source file @rdim_src_file_push_line_sequence + for EachIndex(file_idx, vm->header.file_table.count) { + if (line_seq_counts_per_file[file_idx] > 0) { + DW_LineFile *file = &vm->header.file_table.v[file_idx]; + U64 hash = d2r_hash_line_file(vm->header.dir_table.v[file->dir_idx], file); + D2R_SrcFileLookup *lookup = lfht_search(src_file_lfht, hash, &(D2R_SrcFileLookup){ .file = file, .vm = vm }, d2r_src_file_lookup_is_equal, 0); + RDIM_SrcFile *src_file = lookup->src_file; + ins_atomic_u64_add_eval(&src_file->total_line_count, line_seq_counts_per_file[file_idx]); + } + } + } + + // TODO: sync + // + // update total line sequences count in shared @rdim_src_file_push_line_sequence + for EachIndex(i, lane_count()) { + g_d2r_shared.src_files.total_line_count += line_seq_counts_per_lane[i]; + } + + // TODO: sync + for EachIndex(i, lane_count()) { + rdim_line_table_chunk_list_concat_in_place(&g_d2r_shared.line_tables, &lane_line_table_chunks[i]); + } + + // TODO: per thread task + ProfBegin("Relase line VMs"); + for EachIndex(i, cu_ranges.count) { + dw_line_vm_release(line_vms[i]); + } + ProfEnd(); + + temp_end(temp); + } + + //////////////////////////////// + + RDIM_Type *builtin_types[RDI_TypeKind_COUNT] = {0}; + for (RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; type_kind <= RDI_TypeKind_LastBuiltIn; type_kind += 1) { + RDIM_Type *type = rdim_type_chunk_list_push(arena, &g_d2r_shared.types, D2R_TYPE_CHUNK_CAP); + type->kind = type_kind; + type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); + type->byte_size = rdi_size_from_basic_type_kind(type_kind); + builtin_types[type_kind] = type; + } + + // fixup float80 size + if (arch == Arch_x64 || arch == Arch_arm64) { + builtin_types[RDI_TypeKind_F80]->byte_size = 16; + } + + builtin_types[RDI_TypeKind_Void]->byte_size = rdi_addr_size_from_arch(g_d2r_shared.top_level_info.arch); + builtin_types[RDI_TypeKind_Handle]->byte_size = rdi_addr_size_from_arch(g_d2r_shared.top_level_info.arch); + + builtin_types[RDI_TypeKind_Variadic] = rdim_type_chunk_list_push(arena, &g_d2r_shared.types, D2R_TYPE_CHUNK_CAP); + builtin_types[RDI_TypeKind_Variadic]->kind = RDI_TypeKind_Variadic; + + //////////////////////////////// + + ProfBegin("Convert Units"); + for EachIndex(cu_idx, cu_ranges.count) { + Temp comp_temp = temp_begin(scratch.arena); + + DW_CompUnit *cu = &cu_arr[cu_idx]; + + // skip DWO + { + if (cu->dwo_id) { goto next_cu; } + + String8 dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_DwoName); + if (dwo_name.size) { goto next_cu; } + + String8 gnu_dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); + if (gnu_dwo_name.size) { goto next_cu; } + } + + // parse and build tag tree + DW_TagTree tag_tree = dw_tag_tree_from_cu(comp_temp.arena, &input, cu); + + // build (info offset -> tag) hash table to resolve tags with abstract origin + cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); + + // extract compile unit info + String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); + String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); + String8 cu_prod = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Producer); + DW_Language cu_lang = dw_const_u64_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Language); + + // init type table + D2R_TypeTable *type_table = push_array(comp_temp.arena, D2R_TypeTable, 1); + type_table->ht = hash_table_init(comp_temp.arena, 0x4000); + type_table->types = &g_d2r_shared.types; + type_table->type_chunk_cap = D2R_TYPE_CHUNK_CAP; + type_table->builtin_types = builtin_types; + + // convert compile unit + RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &g_d2r_shared.units, D2R_UNIT_CHUNK_CAP); + { + RDIM_Rng1U64ChunkList cu_voff_ranges = {0}; + if (cu_idx < cu_contrib_map.count) { + cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); + } else { + Rng1U64List range_list = d2r_range_list_from_tag(scratch.arena, &input, cu, image_base, cu->tag); + for EachNode(n, Rng1U64Node, range_list.first) { + rdim_rng1u64_chunk_list_push(arena, &cu_voff_ranges, 512, (RDIM_Rng1U64){ .min = n->v.min, .max = n->v.max }); + } + } + unit->unit_name = cu_name; + unit->compiler_name = cu_prod; + unit->source_file = str8_zero(); // TODO + unit->object_file = str8_zero(); // TODO + unit->archive_file = str8_zero(); // TODO + unit->build_path = cu_dir; + unit->language = d2r_rdi_language_from_dw_language(cu_lang); + unit->line_table = cu_line_tables_rdi[cu_idx]; + unit->voff_ranges = cu_voff_ranges; + } + + // convert debug info + d2r_convert_types(arena, type_table, &input, cu, cu_lang, arch, tag_tree.root); + d2r_convert_udts(arena, type_table, &input, cu, cu_lang, tag_tree.root); + d2r_convert_symbols(arena, type_table, &input, cu, cu_lang, image_base, arch, tag_tree.root, unit); + + next_cu:; + temp_end(comp_temp); + } + ProfEnd(); + } + + lane_sync(); + + RDIM_BakeParams bake_params = {0}; + bake_params.subset_flags = params->subset_flags; + bake_params.top_level_info = g_d2r_shared.top_level_info; + bake_params.binary_sections = g_d2r_shared.binary_sections; + bake_params.units = g_d2r_shared.units; + bake_params.types = g_d2r_shared.types; + bake_params.udts = g_d2r_shared.udts; + bake_params.src_files = g_d2r_shared.src_files; + bake_params.line_tables = g_d2r_shared.line_tables; + + scratch_end(scratch); + return bake_params; +} + diff --git a/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.h b/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.h new file mode 100644 index 00000000..59d19040 --- /dev/null +++ b/obsolete/rdi_from_dwarf/rdi_from_dwarf_old.h @@ -0,0 +1,275 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef RDI_FROM_DWARF_H +#define RDI_FROM_DWARF_H + +//////////////////////////////// +//~ Conversion + +typedef struct D2R_ConvertParams +{ + String8 dbg_name; + String8 dbg_data; + String8 exe_name; + String8 exe_data; + ExecutableImageKind exe_kind; + RDIM_SubsetFlags subset_flags; + B32 deterministic; + B32 is_parse_relaxed; +} D2R_ConvertParams; + +#define D2R_UNIT_CHUNK_CAP 512 +#define D2R_UDT_CHUNK_CAP 1024 +#define D2R_TYPE_CHUNK_CAP 1024 +#define D2R_SRC_FILE_CAP 1024 +#define D2R_LINE_TABLE_CAP 1024 +#define D2R_GVAR_CHUNK_CAP 1024 +#define D2R_TVAR_CHUNK_CAP 1024 +#define D2R_LOCATIONS_CAP 4096 +#define D2R_PROC_CHUNK_CAP 4096 +#define D2R_SCOPE_CHUNK_CAP 4096 +#define D2R_INLINE_SITE_CHUNK_CAP 4096 + +typedef struct D2R_Shared +{ + RDIM_TopLevelInfo top_level_info; + RDIM_BinarySectionList binary_sections; + RDIM_UnitChunkList units; + RDIM_UDTChunkList udts; + RDIM_TypeChunkList types; + RDIM_SrcFileChunkList src_files; + RDIM_LineTableChunkList line_tables; +} D2R_Shared; + +//////////////////////////////// +//~ Value Types + +typedef enum +{ + D2R_ArithmeticType_Null, + D2R_ArithmeticType_Signed, + D2R_ArithmeticType_Unsigned, + D2R_ArithmeticType_Float, +} D2R_ArithmeticType; + +#define D2R_ValueType_Signed_XList \ +X(S8, Signed, 1 ) \ +X(S16, Signed, 2 ) \ +X(S32, Signed, 4 ) \ +X(S64, Signed, 8 ) \ +X(S128, Signed, 16) \ +X(S256, Signed, 32) \ +X(S512, Signed, 64) + +#define D2R_ValueType_Unsigned_XList \ +X(U8, Unsigned, 1 ) \ +X(U16, Unsigned, 2 ) \ +X(U32, Unsigned, 4 ) \ +X(U64, Unsigned, 8 ) \ +X(U128, Unsigned, 16) \ +X(U256, Unsigned, 32) \ +X(U512, Unsigned, 64) + +#define D2R_ValueType_Float_XList \ +X(F16, Float, 2 ) \ +X(F32, Float, 4 ) \ +X(F48, Float, 6 ) \ +X(F64, Float, 8 ) \ +X(F80, Float, 10) \ +X(F96, Float, 12) \ +X(F128, Float, 16) + +#define D2R_ValueType_XList \ +X(Generic, Null, 0 ) \ +X(ImplicitValue, Null, 0 ) \ +X(Address, Unsigned, 0 ) \ +D2R_ValueType_Signed_XList \ +D2R_ValueType_Unsigned_XList \ +D2R_ValueType_Float_XList + +typedef enum +{ +#define X(t, ...) D2R_ValueType_##t, + D2R_ValueType_XList +#undef X + D2R_ValueType_Bool = D2R_ValueType_S8, +} D2R_ValueType; + +typedef struct D2R_ValueTypeNode +{ + D2R_ValueType type; + struct D2R_ValueTypeNode *next; +} D2R_ValueTypeNode; + +typedef struct D2R_ValueTypeStack +{ + U64 count; + D2R_ValueTypeNode *top; + D2R_ValueTypeNode *free_list; +} D2R_ValueTypeStack; + +//////////////////////////////// +//~ Type Table + +typedef struct D2R_TypeTable +{ + HashTable *ht; + RDIM_TypeChunkList *types; + U64 type_chunk_cap; + RDIM_Type **builtin_types; +} D2R_TypeTable; + +//////////////////////////////// +//~ Tag Iterator + +typedef DW_TagSpare D2R_TagFlags; +enum +{ + D2R_TagFlags_TypeConverted = (1 << 0), + D2R_TagFlags_UdtConverted = (1 << 1), +}; + +typedef struct D2R_TagFrame +{ + DW_TagNode *node; + RDIM_Scope *scope; + struct D2R_TagFrame *next; +} D2R_TagFrame; + +typedef struct D2R_TagIterator +{ + D2R_TagFrame *free_list; + D2R_TagFrame *stack; + DW_TagNode *null_tag_node; + DW_TagNode *tag_node; + B32 visit_children; +} D2R_TagIterator; + +//////////////////////////////// +//~ Line Table Conversion + +typedef struct D2R_SrcFileLookup +{ + DW_LineFile *file; + DW_LineVM *vm; + RDIM_SrcFile *src_file; +} D2R_SrcFileLookup; + +//////////////////////////////// +//~ Contrib Map + +typedef struct D2R_CompUnitContribMap +{ + U64 count; + U64 *info_off_arr; + RDIM_Rng1U64ChunkList *voff_range_arr; +} D2R_CompUnitContribMap; + +//////////////////////////////// +//~ RDIM Bytecode Extensions + +internal B32 rdim_is_eval_bytecode_static (RDIM_EvalBytecode bc); +internal B32 rdim_static_eval_bytecode_to_voff(RDIM_EvalBytecode bc, U64 image_base, U64 *voff_out); + +//////////////////////////////// +//~ DWARF -> RDI Enums + +internal RDI_Language d2r_rdi_language_from_dw_language(DW_Language v); +internal RDI_RegCodeX64 d2r_rdi_reg_code_from_dw_reg_x64 (DW_RegX64 v); +internal RDI_RegCode d2r_rdi_reg_code_from_dw_reg (Arch arch, DW_Reg v); + +//////////////////////////////// +//~ Value Type + +internal D2R_ValueTypeNode * d2r_value_type_stack_push(Arena *arena, D2R_ValueTypeStack *stack, D2R_ValueType type); +internal D2R_ValueType d2r_value_type_stack_pop (D2R_ValueTypeStack *stack); +internal D2R_ValueType d2r_value_type_stack_peek(D2R_ValueTypeStack *stack); + +internal D2R_ValueType d2r_signed_value_type_from_bit_size (U64 bit_size); +internal D2R_ValueType d2r_unsigned_value_type_from_bit_size(U64 bit_size); +internal D2R_ValueType d2r_float_type_from_bit_size (U64 bit_size); + +internal U64 d2r_size_from_value_type(U64 addr_size, D2R_ValueType value_type); +internal D2R_ArithmeticType d2r_arithmetic_type_from_value_type(D2R_ValueType v); +internal D2R_ArithmeticType d2r_arithmetic_type_from_value_type(D2R_ValueType v); +internal B32 d2r_is_value_type_signed (D2R_ValueType v); +internal B32 d2r_is_value_type_integral(D2R_ValueType v); +internal B32 d2r_is_value_type_unsigned(D2R_ValueType v); +internal B32 d2r_is_value_type_float (D2R_ValueType v); + +internal D2R_ValueType d2r_pick_common_value_type(D2R_ValueType lhs, D2R_ValueType rhs); +internal RDI_EvalTypeGroup d2r_value_type_to_rdi(D2R_ValueType v); + +internal D2R_ValueType d2r_apply_usual_arithmetic_conversions(Arena *arena, D2R_ValueType lhs, D2R_ValueType rhs, RDIM_EvalBytecode *bc); +internal void d2r_push_arithmetic_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op); +internal void d2r_push_relational_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op); + +//////////////////////////////// +//~ Expression Conversion + +internal RDIM_EvalBytecode d2r_bytecode_from_expression(Arena *arena, DW_Raw *input, U64 image_base, Arch arch, DW_ListUnit *addr_lu, String8 expr, DW_CompUnit *cu, D2R_ValueType *result_type_out); +internal RDIM_Location d2r_transpile_expression (Arena *arena, DW_Raw *input, U64 image_base, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr); +internal RDIM_Location d2r_location_from_attrib (Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind); +internal RDIM_LocationCaseList d2r_locset_from_attrib (Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *curr_scope, DW_Raw *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind); +internal RDIM_LocationCaseList d2r_var_locset_from_tag (Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *curr_scope, DW_Raw *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag); + +//////////////////////////////// +//~ Type Table + +internal RDIM_Type * d2r_create_type (Arena *arena, D2R_TypeTable *type_table); +internal RDIM_Type * d2r_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off); +internal RDIM_Type * d2r_type_from_offset(D2R_TypeTable *type_table, U64 info_off); +internal RDIM_Type * d2r_type_from_attrib(D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); + +//////////////////////////////// +//~ Tag Iterator + +internal D2R_TagIterator * d2r_tag_iterator_init(Arena *arena, DW_TagNode *root); +internal void d2r_tag_iterator_next(Arena *arena, D2R_TagIterator *iter); +internal void d2r_tag_iterator_skip_children (D2R_TagIterator *iter); +internal DW_TagNode * d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter); +internal DW_Tag d2r_tag_iterator_parent_tag (D2R_TagIterator *iter); + +//////////////////////////////// +//~ Type Conversion + +internal void d2r_flag_converted_tag(DW_TagNode *tag_node); +internal B8 d2r_is_tag_converted (DW_TagNode *tag_node); +internal RDIM_Type * d2r_find_or_convert_type(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Language cu_lang, Arch arch, DW_Tag tag, DW_AttribKind kind); +internal void d2r_convert_types(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Language cu_lang, Arch arch, DW_TagNode *root); + +//////////////////////////////// +//~ UDT Conversion + +internal B8 d2r_is_udt_tag_converted (DW_TagNode *tag_node); +internal void d2r_flag_converted_udt_tag(DW_TagNode *tag_node); +internal void d2r_inline_anonymous_udt_member(Arena *arena, RDIM_UDT *top_udt, U64 base_off, RDIM_UDT *udt); +internal void d2r_convert_udts(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Language cu_lang, DW_TagNode *root); + +//////////////////////////////// +//~ Symbol Conversion + +internal RDIM_Scope * d2r_push_scope (Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D2R_TagFrame *tag_stack, Rng1U64List ranges); +internal RDIM_Type ** d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out); +internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Raw *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag); +internal void d2r_convert_symbols(Arena *arena, D2R_TypeTable *type_table, DW_Raw *input, DW_CompUnit *cu, DW_Language cu_lang, U64 image_base, Arch arch, DW_TagNode *root, RDIM_Unit *unit_rdi); + +//////////////////////////////// +//~ Line Table Conversion + +internal U64 d2r_hash_line_file(String8 dir_path, DW_LineFile *file); +internal void d2r_sort_ptrs(void **ptrs, U64 count, int (* is_before)(void *a, void *b)); + +//////////////////////////////// +//~ Contrib Map + +internal D2R_CompUnitContribMap d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Raw *input, U64 image_base); +internal RDIM_Rng1U64ChunkList d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off); + +//////////////////////////////// +//~ Entry Point + +internal RDIM_BakeParams d2r_convert(Arena *arena, D2R_ConvertParams *params); + +#endif // RDI_FROM_DWARF_H diff --git a/project.4coder b/project.4coder index 6abaea66..850ffd88 100644 --- a/project.4coder +++ b/project.4coder @@ -46,14 +46,17 @@ load_paths = commands = { //- rjf: [raddbg] - .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg meta telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin no_meta debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [raddbg wsl] // .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [scratch] - .f2 = { .win = "build radbin debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f2 = { .win = "pushd build && for /l %i in (1, 1, 3) do (radbin --rdi raddbg.exe --out:raddbg_%i.rdi && radbin --dump raddbg_%i.rdi --out:raddbg_%i.dump)", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f2 = { .win = "pushd build && radbin --rdi raddbg.exe --thread_count=1 --out:1.rdi && radbin --rdi raddbg.exe --thread_count=8 --out:8.rdi && radbin --dump 1.rdi --out:1.dump && radbin --dump 8.rdi --out:8.dump)", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: [textperf] // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta telemetry textperf && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, @@ -66,6 +69,7 @@ commands = //- rjf: running target .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "build torture", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "wsl ./build/raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "pushd build && raddbg --user:dev.raddbg_user && popd", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/project.raddbg b/project.raddbg new file mode 100644 index 00000000..d81b9d31 --- /dev/null +++ b/project.raddbg @@ -0,0 +1,59 @@ +// raddbg 0.9.28 project file + +name: "The RAD Debugger" +target: +{ + executable: "build/raddbg.exe" + working_directory: "../raddebugger" + arguments: "--user:C:/devel/raddebugger/build/raddbg_test.user" + debug_subprocesses: 0 +} +target: +{ + executable: "build/raddbg.exe" + working_directory: "../raddebugger" + arguments: "--user:test123" + debug_subprocesses: 0 +} +target: +{ + executable: "build/mule_main.exe" + working_directory: build + output_label: output_a +} +target: +{ + executable: "build/torture.exe" + working_directory: build + arguments: "raddbg/*" +} +target: +{ + executable: "build/metagen.exe" + working_directory: build +} +target: +{ + executable: "build/radbin.exe" + working_directory: build + arguments: "--rdi raddbg" +} +target: +{ + executable: "build/release_version/raddbg.exe" + working_directory: "build/release_version" +} +target: +{ + executable: "build/radbin.exe" + working_directory: build + arguments: "--breakpad fat.so --capture" +} +target: +{ + executable: "build/radbin.exe" + working_directory: build + arguments: "--rdi raddbg" + enabled: 1 +} +watch_pin: expression: tag_hash_slots diff --git a/run_tests.bat b/run_tests.bat index e8bc4c1a..4d8fd1ed 100644 --- a/run_tests.bat +++ b/run_tests.bat @@ -1,21 +1,126 @@ -@echo off -setlocal -cd /D "%~dp0" - -echo --- getting test data folder path --------------------------------------------- -if not exist .\local\test_data_path.txt ( - echo error: You must first store the full path of your test data folder inside of `local/test_data_path.txt`. - goto :EOF -) -set /p test_data_folder=<.\local\test_data_path.txt -echo test data path: %test_data_folder% -echo: - -echo --- building all testing executables ------------------------------------------ -call build rdi_from_pdb rdi_dump raddbg radlink tester -echo: - -echo --- running tests ------------------------------------------------------------- -pushd build -call tester.exe --test_data:%test_data_folder% -popd +@echo off +setlocal enabledelayedexpansion + +set TARGET_VALUES=radlink radbin mule_main mule_module torture +set CC_VALUES=msvc clang +set MODE_VALUES=debug release +set RAW_ARGS=%* +set TORTURE_ARGS= +set RUN_TORTURE=1 + +:: Make test data directories +if not exist local mkdir local +pushd local +if not exist test_data mkdir test_data +popd + +:: Check if we need new test data version +pushd local +set need_test_data=0 +curl -sfL -o test_data_version_latest.txt https://data.raddbg.com/public/raddbg_test_data_version.txt || exit /b 1 +if exist "test_data_version_current.txt" ( + fc /b "test_data_version_latest.txt" "test_data_version_current.txt" > nul +) else ( + echo Test data not present. + set need_test_data=1 +) +if errorlevel 1 ( + echo Test data out-of-date. + set need_test_data=1 +) +popd + +:: Download test data if stale +if "%need_test_data%"=="1" ( + echo Downloading test data... + pushd local + pushd test_data + curl -sfL -o test_data.zip https://data.raddbg.com/public/raddbg_test_data.zip || exit /b 1 + tar -xf test_data.zip || exit /b 1 + del test_data.zip + popd + copy /y test_data_version_latest.txt test_data_version_current.txt + popd +) +popd + +:parse_args +if "%~1" == "" goto parse_done +if "%~1" == "--" goto parse_torture_args +if /i "%~1" == "msvc" set CC_VALUES=msvc && shift /1 && goto parse_args +if /i "%~1" == "clang" set CC_VALUES=clang && shift /1 && goto parse_args +if /i "%~1" == "debug" set MODE_VALUES=debug && shift /1 && goto parse_args +if /i "%~1" == "release" set MODE_VALUES=release && shift /1 && goto parse_args +if /i "%~1" == "no_torture" set RUN_TORTURE=0 && shift /1 && goto parse_args +echo usage: %~nx0 [msvc^|clang] [debug^|release] [no_torture] [-- torture-args] +exit /b 1 + +:parse_torture_args +shift /1 +if "%~1" == "" set "TORTURE_ARGS=" && goto parse_done +set "TORTURE_ARGS=%RAW_ARGS%" +if "%TORTURE_ARGS:~0,3%" == "-- " set "TORTURE_ARGS=%TORTURE_ARGS:~3%" && goto parse_done +set "TORTURE_ARGS=%TORTURE_ARGS:* -- =%" + +:parse_done +if not defined TORTURE_ARGS set "TORTURE_ARGS=* + +for %%m in (%MODE_VALUES%) do for %%c in (%CC_VALUES%) do ( + setlocal + + :: nuke artifacts from last run + if exist build/torture_artifacts rmdir /s /q build\torture_artifacts + if exist build\metagen.exe del /q build\metagen.exe + for %%t in (%TARGET_VALUES%) do ( + if exist build\%%t.exe del /q build\%%t.exe + if exist build\%%t.pdb del /q build\%%t.pdb + ) + + if "%%c" == "clang" ( + :: Prefer standalone LLVM clang over Visual Studio clang so ASAN runtime files match the compiler. + set "clang_path=" + for /f "tokens=*" %%i in ('where clang') do ( + set "candidate_clang_path=%%~dpi" + if "!candidate_clang_path:Microsoft Visual Studio=!"=="!candidate_clang_path!" ( + if not defined clang_path set "clang_path=!candidate_clang_path!" + ) + ) + if not defined clang_path ( + echo ERROR: standalone LLVM clang not found in PATH + exit /b 1 + ) + set PATH=!clang_path!;!PATH! + for /f "tokens=3 delims=. " %%v in ('clang -v 2^>^&1 ^| findstr version') do set clang_version=%%v + if not defined clang_version ( + echo ERROR: failed to detect clang version + exit /b 1 + ) + set PATH=!clang_path!..\lib\clang\!clang_version!\lib\windows;!PATH! + ) + + :: TODO: unblock asan + call build.bat meta %%c %%m raddbg raddbg_non_graphical || (endlocal exit /b 1) + + :: clang does not compile with asan in release mode because it runs out of memory + if "%%c" equ "clang" ( + if /i "%%m" equ "release" ( + call build.bat no_meta %%c %%m !TARGET_VALUES! || (endlocal exit /b 1) + ) else ( + call build.bat asan no_meta %%c %%m !TARGET_VALUES! || (endlocal exit /b 1) + ) + ) else ( + call build.bat asan no_meta %%c %%m !TARGET_VALUES! || (endlocal exit /b 1) + ) + + if "%RUN_TORTURE%" equ "1" ( + pushd build + torture %TORTURE_ARGS% + popd + if errorlevel 1 ( + endlocal + exit /b 1 + ) + ) + + endlocal +) diff --git a/run_tests.sh b/run_tests.sh new file mode 100755 index 00000000..b7cb00c8 --- /dev/null +++ b/run_tests.sh @@ -0,0 +1,77 @@ +#!/bin/bash +set -eu +cd "$(dirname "$0")" + +target_values=(raddbg raddbg_non_graphical radlink radbin torture) +cc_values=(clang gcc) +mode_values=(debug release) +run_torture=1 +torture_args=() + +while [[ $# -gt 0 ]]; do + case "$1" in + --) + shift + torture_args=("$@") + break + ;; + clang) + cc_values=("$1") + shift + ;; + gcc) + cc_values=("$1") + shift + ;; + debug|release) + mode_values=("$1") + shift + ;; + no_torture) + run_torture=0 + shift + ;; + *) + echo "usage: $0 [clang|gcc] [debug|release] [no_torture] [-- torture-args]" + exit 1 + ;; + esac +done + +if [[ "${#torture_args[@]}" == "0" ]]; then + torture_args=("*") +fi + +for m in "${mode_values[@]}"; do + for c in "${cc_values[@]}"; do + # nuke artifacts from last run + rm -rf build/torture_artifacts + rm -f build/metagen + for t in "${target_values[@]}"; do + rm -f "build/$t" + done + + # build targets + ./build.sh meta "$c" "$m" "${target_values[@]}" + + # run torture from build folder + if [[ "$run_torture" == "1" ]]; then + torture_compiler_args=() + has_clang_arg=0 + has_gcc_arg=0 + for arg in "${torture_args[@]}"; do + case "$arg" in + -clang:*|--clang:*) has_clang_arg=1 ;; + -gcc:*|--gcc:*) has_gcc_arg=1 ;; + esac + done + if [[ "$c" == clang && "$has_clang_arg" == "0" ]]; then + torture_compiler_args=("-clang:$(command -v "${CC:-clang}")") + elif [[ "$c" == gcc && "$has_gcc_arg" == "0" ]]; then + torture_compiler_args=("-gcc:$(command -v "${CC:-gcc}")") + fi + (cd build && ./torture "${torture_compiler_args[@]}" "${torture_args[@]}") + fi + + done +done diff --git a/src/arch/arch.c b/src/arch/arch.c new file mode 100644 index 00000000..50361259 --- /dev/null +++ b/src/arch/arch.c @@ -0,0 +1,174 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Abstracted Architecture Functions + +internal ARCH_Info * +arch_info_from_arch(Arch arch) +{ + ARCH_Info *result = &arch_info_nil; + switch(arch) + { + default:{}break; +#if defined(X64_H) + case Arch_x64: + { + local_persist U8 trap_inst_bytes[] = {0xcc}; + local_persist read_only ARCH_Info info = + { + .reg_block_size = sizeof(X64_RegBlock), + .instruction_pointer_reg_code = X64_RegCode_rip, + .stack_pointer_reg_code = X64_RegCode_rsp, + .reg_code_count = X64_RegCode_COUNT, + .trap_instruction = {trap_inst_bytes, sizeof(trap_inst_bytes)}, + .reg_code_rng_table = x64_reg_code_rng_table, + .reg_code_name_table = x64_reg_code_name_table, + .reg_code_base_table = x64_reg_code_base_table, + .reg_code_is_vector_table = x64_reg_code_is_vector_table, + }; + result = &info; + }break; +#endif + } + return result; +} + +internal ARCH_RegCode +arch_reg_code_from_name(ARCH_Info *arch_info, String8 name) +{ + ARCH_RegCode result = 0; + for EachIndex(code, arch_info->reg_code_count) + { + if(str8_match(arch_info->reg_code_name_table[code], name, 0)) + { + result = code; + break; + } + } + return result; +} + +internal B32 +arch_reg_block_read_range(ARCH_Info *arch_info, void *block, Rng1U16 range, void *dst) +{ + B32 result = 0; + { + Rng1U16 legal_range = r1u16(0, arch_info->reg_block_size); + Rng1U16 try_range = range; + Rng1U16 read_range = intersect_1u16(legal_range, try_range); + U64 read_size = dim_1u16(read_range); + if(read_size != 0) + { + MemoryCopy(dst, (U8 *)block + read_range.min, read_size); + result = 1; + } + } + return result; +} + +internal B32 +arch_reg_block_write_range(ARCH_Info *arch_info, void *block, Rng1U16 range, void *src) +{ + B32 result = 0; + Rng1U16 legal_range = r1u16(0, arch_info->reg_block_size); + Rng1U16 try_range = range; + Rng1U16 write_range = intersect_1u16(legal_range, try_range); + U64 write_size = dim_1u16(write_range); + if(write_size != 0) + { + MemoryCopy((U8 *)block + write_range.min, src, write_size); + result = 1; + } + return result; +} + +internal U64 +arch_ip_from_reg_block(ARCH_Info *arch_info, void *block) +{ + U64 result = 0; + ARCH_RegCode reg_code = arch_info->instruction_pointer_reg_code; + if(reg_code < arch_info->reg_code_count) + { + arch_reg_block_read_range(arch_info, block, arch_info->reg_code_rng_table[reg_code], &result); + } + return result; +} + +internal U64 +arch_sp_from_reg_block(ARCH_Info *arch_info, void *block) +{ + U64 result = 0; + ARCH_RegCode reg_code = arch_info->stack_pointer_reg_code; + if(reg_code < arch_info->reg_code_count) + { + arch_reg_block_read_range(arch_info, block, arch_info->reg_code_rng_table[reg_code], &result); + } + return result; +} + +internal B32 +arch_reg_block_write_ip(ARCH_Info *arch_info, void *block, U64 ip) +{ + B32 result = 0; + ARCH_RegCode reg_code = arch_info->instruction_pointer_reg_code; + if(reg_code < arch_info->reg_code_count) + { + result = arch_reg_block_write_range(arch_info, block, arch_info->reg_code_rng_table[reg_code], &ip); + } + return result; +} + +internal B32 +arch_reg_block_write_sp(ARCH_Info *arch_info, void *block, U64 sp) +{ + B32 result = 0; + ARCH_RegCode reg_code = arch_info->stack_pointer_reg_code; + if(reg_code < arch_info->reg_code_count) + { + result = arch_reg_block_write_range(arch_info, block, arch_info->reg_code_rng_table[reg_code], &sp); + } + return result; +} + +#if defined(RDI_H) +internal ARCH_RegCode +arch_reg_code_from_rdi(Arch arch, RDI_RegCode code) +{ + ARCH_RegCode result = 0; + { + ARCH_Info *arch_info = arch_info_from_arch(arch); + U8 *rdi_from_reg_code_table = arch_rdi_from_reg_code_table_from_arch(arch); + for EachIndex(c, arch_info->reg_code_count) + { + if(rdi_from_reg_code_table[c] == code) + { + result = c; + break; + } + } + } + return result; +} +#endif + +#if defined(DWARF_H) +internal ARCH_RegCode +arch_reg_code_from_dw(Arch arch, DW_RegCode code) +{ + ARCH_RegCode result = 0; + { + ARCH_Info *arch_info = arch_info_from_arch(arch); + U8 *dw_from_reg_code_table = arch_dw_from_reg_code_table_from_arch(arch); + for EachIndex(c, arch_info->reg_code_count) + { + if(dw_from_reg_code_table[c] == code) + { + result = c; + break; + } + } + } + return result; +} +#endif diff --git a/src/arch/arch.h b/src/arch/arch.h new file mode 100644 index 00000000..be53103f --- /dev/null +++ b/src/arch/arch.h @@ -0,0 +1,54 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ARCH_H +#define ARCH_H + +//////////////////////////////// +//~ rjf: Abstraction Backend Info + +typedef U8 ARCH_RegCode; + +typedef struct ARCH_Info ARCH_Info; +struct ARCH_Info +{ + U16 reg_block_size; + ARCH_RegCode instruction_pointer_reg_code; + ARCH_RegCode stack_pointer_reg_code; + U16 reg_code_count; + String8 trap_instruction; + Rng1U16 *reg_code_rng_table; + String8 *reg_code_name_table; + U8 *reg_code_base_table; + B8 *reg_code_is_vector_table; +}; + +//////////////////////////////// +//~ rjf: Globals + +global read_only Rng1U16 arch_reg_code_rng_nil = {0}; +global read_only String8 arch_reg_code_name_nil = {0}; +global read_only U8 arch_reg_code_u8_nil = 0; +global read_only B8 arch_reg_code_b8_nil = 0; +global read_only ARCH_Info arch_info_nil = {0, 0, 0, 0, {0}, &arch_reg_code_rng_nil, &arch_reg_code_name_nil, &arch_reg_code_u8_nil, &arch_reg_code_b8_nil}; + +//////////////////////////////// +//~ rjf: Abstracted Architecture Functions + +internal ARCH_Info *arch_info_from_arch(Arch arch); +internal ARCH_RegCode arch_reg_code_from_name(ARCH_Info *arch_info, String8 name); +internal B32 arch_reg_block_read_range(ARCH_Info *arch_info, void *block, Rng1U16 range, void *dst); +internal B32 arch_reg_block_write_range(ARCH_Info *arch_info, void *block, Rng1U16 range, void *src); +internal U64 arch_ip_from_reg_block(ARCH_Info *arch_info, void *block); +internal U64 arch_sp_from_reg_block(ARCH_Info *arch_info, void *block); +internal B32 arch_reg_block_write_ip(ARCH_Info *arch_info, void *block, U64 ip); +internal B32 arch_reg_block_write_sp(ARCH_Info *arch_info, void *block, U64 sp); + +#if defined(RDI_H) +internal ARCH_RegCode arch_reg_code_from_rdi(Arch arch, RDI_RegCode code); +#endif +#if defined(DWARF_H) +internal ARCH_RegCode arch_reg_code_from_dw(Arch arch, DW_RegCode code); +#endif + +#endif // REGS_H diff --git a/src/arch/arch_inc.c b/src/arch/arch_inc.c new file mode 100644 index 00000000..eae4b158 --- /dev/null +++ b/src/arch/arch_inc.c @@ -0,0 +1,11 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "arch/arch.c" +#include "arch/os/arch_os.c" +#if defined(DWARF_H) +# include "arch/dwarf/arch_dwarf.c" +#endif +#if defined(RDI_H) +# include "arch/rdi/arch_rdi.c" +#endif diff --git a/src/arch/arch_inc.h b/src/arch/arch_inc.h new file mode 100644 index 00000000..529c3893 --- /dev/null +++ b/src/arch/arch_inc.h @@ -0,0 +1,16 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ARCH_INC_H +#define ARCH_INC_H + +#include "arch/arch.h" +#include "arch/os/arch_os.h" +#if defined(DWARF_H) +# include "arch/dwarf/arch_dwarf.h" +#endif +#if defined(RDI_H) +# include "arch/rdi/arch_rdi.h" +#endif + +#endif // ARCH_INC_H diff --git a/src/arch/dwarf/arch_dwarf.c b/src/arch/dwarf/arch_dwarf.c new file mode 100644 index 00000000..91c19792 --- /dev/null +++ b/src/arch/dwarf/arch_dwarf.c @@ -0,0 +1,19 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal U8 * +arch_dw_from_reg_code_table_from_arch(Arch arch) +{ + U8 *result = &arch_reg_code_u8_nil; + switch(arch) + { + default:{}break; +#if defined(X64_H) + case Arch_x64: + { + result = dw_reg_code_from_x64_table; + }break; +#endif + } + return result; +} diff --git a/src/arch/dwarf/arch_dwarf.h b/src/arch/dwarf/arch_dwarf.h new file mode 100644 index 00000000..574bdeab --- /dev/null +++ b/src/arch/dwarf/arch_dwarf.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ARCH_DWARF_H +#define ARCH_DWARF_H + +internal U8 *arch_dw_from_reg_code_table_from_arch(Arch arch); + +#endif // ARCH_DWARF_H diff --git a/src/arch/os/arch_os.c b/src/arch/os/arch_os.c new file mode 100644 index 00000000..2a3fe22f --- /dev/null +++ b/src/arch/os/arch_os.c @@ -0,0 +1,16 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal B32 +arch_os_write_reg_block_from_thread_ctx(Arch arch, OperatingSystem os, void *reg_block, void *thread_ctx) +{ + B32 result = 0; + if(0){} +#define Case(arch_, os_, impl) else if((arch) == arch_ && (os) == os_) do {result = impl(reg_block, thread_ctx);}while(0) +#if defined(X64_H) && defined(WIN32_X64_H) + Case(Arch_x64, OperatingSystem_Windows, w32_x64_write_reg_block_from_thread_ctx); +#endif +#undef Case + else{} + return result; +} diff --git a/src/arch/os/arch_os.h b/src/arch/os/arch_os.h new file mode 100644 index 00000000..6534eeff --- /dev/null +++ b/src/arch/os/arch_os.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ARCH_OS_H +#define ARCH_OS_H + +internal B32 arch_os_write_reg_block_from_thread_ctx(Arch arch, OperatingSystem os, void *reg_block, void *thread_ctx); + +#endif // ARCH_OS_H diff --git a/src/arch/rdi/arch_rdi.c b/src/arch/rdi/arch_rdi.c new file mode 100644 index 00000000..2f3b6c7b --- /dev/null +++ b/src/arch/rdi/arch_rdi.c @@ -0,0 +1,19 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal U8 * +arch_rdi_from_reg_code_table_from_arch(Arch arch) +{ + U8 *result = &arch_reg_code_u8_nil; + switch(arch) + { + default:{}break; +#if defined(X64_H) + case Arch_x64: + { + result = rdi_reg_code_from_x64_table; + }break; +#endif + } + return result; +} diff --git a/src/arch/rdi/arch_rdi.h b/src/arch/rdi/arch_rdi.h new file mode 100644 index 00000000..dc09eb18 --- /dev/null +++ b/src/arch/rdi/arch_rdi.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ARCH_RDI_H +#define ARCH_RDI_H + +internal U8 *arch_rdi_from_reg_code_table_from_arch(Arch arch); + +#endif // ARCH_RDI_H diff --git a/src/artifact_cache/artifact_cache.c b/src/artifact_cache/artifact_cache.c index 679a50fe..7a5ddec8 100644 --- a/src/artifact_cache/artifact_cache.c +++ b/src/artifact_cache/artifact_cache.c @@ -18,9 +18,8 @@ ac_init(void) ac_shared->req_batches[idx].mutex = mutex_alloc(); ac_shared->req_batches[idx].arena = arena_alloc(); } + ac_shared->cancel_thread_semaphore = semaphore_alloc(0, 1, str8_zero()); ac_shared->cancel_thread = thread_launch(ac_cancel_thread_entry_point, 0); - ac_shared->cancel_thread_mutex = mutex_alloc(); - mutex_take(ac_shared->cancel_thread_mutex); } //////////////////////////////// @@ -59,6 +58,7 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 cache->slots_count = Max(256, params->slots_count); cache->slots = push_array(cache_stripe->arena, AC_Slot, cache->slots_count); cache->stripes = stripe_array_alloc(cache_stripe->arena); + cache->stripe_free_node_ptrs = push_array(cache_stripe->arena, AC_NodePtr *, cache->stripes.count); } } if(cache != 0) @@ -74,6 +74,9 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 AC_Slot *slot = &cache->slots[slot_idx]; Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + //- rjf: unpack thread context + B32 is_node_work_active = (ac_tctx != 0); + //- rjf: cache * key -> existing artifact B32 artifact_is_stale = 1; B32 got_artifact = 0; @@ -93,11 +96,16 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 artifact_is_stale = is_stale; artifact = n->val; access_touch(access, &n->access_pt, stripe->cv); + ins_atomic_u64_eval_assign(&n->last_touched_ac_request_gen, ins_atomic_u64_eval(&ac_shared->request_gen)); } if(is_stale) { B32 got_task = (ins_atomic_u64_eval_cond_assign(&n->working_count, 1, 0) == 0); need_request = got_task; + if(is_node_work_active) + { + ins_atomic_u32_eval_assign(&n->other_nodes_depend_on_me, 1); + } } break; } @@ -109,7 +117,7 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 { RWMutexScope(stripe->rw_mutex, 1) for(;;) { - B32 out_of_time = (os_now_microseconds() >= endt_us); + B32 out_of_time = (now_time_us() >= endt_us); // rjf: find node in cache AC_Node *node = 0; @@ -141,8 +149,12 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 node->key = str8_copy(stripe->arena, key); node->working_count = 1; node->evict_threshold_us = params->evict_threshold_us; + if(is_node_work_active) + { + node->other_nodes_depend_on_me = 1; + } } - node->access_pt.last_time_touched_us = os_now_microseconds(); + node->access_pt.last_time_touched_us = now_time_us(); node->access_pt.last_update_idx_touched = update_tick_idx(); // rjf: request @@ -179,9 +191,10 @@ ac_artifact_from_key_(Access *access, String8 key, AC_ArtifactParams *params, U6 if(!got_artifact && ins_atomic_u64_eval(&node->completion_count) != 0 && ((node->last_completed_gen == params->gen) || !(params->flags & AC_Flag_WaitForFresh) || out_of_time)) { got_artifact = 1; - artifact_is_stale = (node->last_completed_gen == params->gen); + artifact_is_stale = (node->last_completed_gen != params->gen); artifact = node->val; access_touch(access, &node->access_pt, stripe->cv); + ins_atomic_u64_eval_assign(&node->last_touched_ac_request_gen, ins_atomic_u64_eval(&ac_shared->request_gen)); } // rjf: abort if needed @@ -218,7 +231,7 @@ ac_async_tick(void) // if(lane_idx() == 0) { - mutex_drop(ac_shared->cancel_thread_mutex); + semaphore_drop(ac_shared->cancel_thread_semaphore); } ////////////////////////////// @@ -244,7 +257,9 @@ ac_async_tick(void) for(AC_Node *n = slot->first, *next = 0; n != 0; n = next) { next = n->next; - if(access_pt_is_expired(&n->access_pt, .time = n->evict_threshold_us) && ins_atomic_u64_eval(&n->working_count) == 0) + if(access_pt_is_expired(&n->access_pt, .time = n->evict_threshold_us) && + ins_atomic_u64_eval(&n->working_count) == 0 && + (ins_atomic_u32_eval(&n->other_nodes_depend_on_me) == 0 || ac_shared->request_gen > n->last_touched_ac_request_gen)) { slot_has_work = 1; if(!write_mode) @@ -328,6 +343,11 @@ ac_async_tick(void) lane_sync_u64(&tasks_count, 0); lane_sync(); + ////////////////////////////// + //- rjf: set up artifact cache thread context + // + ac_tctx = push_array(scratch.arena, AC_TCTX, 1); + ////////////////////////////// //- rjf: do all requests // @@ -376,7 +396,7 @@ ac_async_tick(void) AC_Artifact val = r->create(r->key, r->cancel_signal, &retry, &gen); // rjf: retry? -> resubmit request - if(retry && lane_idx() == 0) + if(retry && lane_idx() == 0 && !ins_atomic_u32_eval(r->cancel_signal)) { AC_RequestBatch *batch = &ac_shared->req_batches[task_idx]; MutexScope(batch->mutex) @@ -423,6 +443,19 @@ ac_async_tick(void) { if(str8_match(n->key, r->key, 0)) { + // rjf: eliminate existing values, if any, if they do not match the current + if(cache->destroy != 0 && !MemoryMatchStruct(&n->val, &val) && ins_atomic_u64_eval(&n->completion_count) > 0) for(;;) + { + if(access_pt_is_expired(&n->access_pt, .time = 0, .update_idxs = 0)) + { + cache->destroy(n->val); + MemoryZeroStruct(&n->val); + break; + } + cond_var_wait_rw(stripe->cv, stripe->rw_mutex, 1, max_U64); + } + + // rjf: write new value n->last_completed_gen = gen; n->val = val; ins_atomic_u64_dec_eval(&n->working_count); @@ -485,7 +518,7 @@ ac_async_tick(void) lane_ctx(lane_ctx_restore); // rjf: retry? -> resubmit request - if(retry) + if(retry && !ins_atomic_u32_eval(r->cancel_signal)) { AC_RequestBatch *batch = &ac_shared->req_batches[task_idx]; MutexScope(batch->mutex) @@ -532,6 +565,19 @@ ac_async_tick(void) { if(str8_match(n->key, r->key, 0)) { + // rjf: eliminate existing values, if any, if they do not match the current + if(cache->destroy != 0 && !MemoryMatchStruct(&n->val, &val) && ins_atomic_u64_eval(&n->completion_count) > 0) for(;;) + { + if(access_pt_is_expired(&n->access_pt, .time = 0, .update_idxs = 0)) + { + cache->destroy(n->val); + MemoryZeroStruct(&n->val); + break; + } + cond_var_wait_rw(stripe->cv, stripe->rw_mutex, 1, max_U64); + } + + // rjf: store n->last_completed_gen = gen; n->val = val; ins_atomic_u64_dec_eval(&n->working_count); @@ -585,12 +631,36 @@ ac_async_tick(void) } lane_sync(); + ////////////////////////////// + //- rjf: increment the request gen, only if all requests are empty + // + if(lane_idx() == 0) + { + B32 have_live_requests = 0; + for EachElement(idx, ac_shared->req_batches) + { + MutexScope(ac_shared->req_batches[idx].mutex) + { + have_live_requests = (ac_shared->req_batches[idx].wide_count != 0 || ac_shared->req_batches[idx].thin_count != 0); + } + } + if(!have_live_requests) + { + ac_shared->request_gen += 1; + } + } + + ////////////////////////////// + //- rjf: reset thread context + // + ac_tctx = 0; + ////////////////////////////// //- rjf: disable cancellation scanning // if(lane_idx() == 0) { - mutex_take(ac_shared->cancel_thread_mutex); + semaphore_take(ac_shared->cancel_thread_semaphore, max_U64); } scratch_end(scratch); } @@ -603,8 +673,8 @@ ac_cancel_thread_entry_point(void *p) { for(;;) { - os_sleep_milliseconds(50); - MutexScope(ac_shared->cancel_thread_mutex) + sleep_ms(50); + semaphore_take(ac_shared->cancel_thread_semaphore, max_U64); { for EachIndex(cache_slot_idx, ac_shared->cache_slots_count) { @@ -650,5 +720,6 @@ ac_cancel_thread_entry_point(void *p) } } } + semaphore_drop(ac_shared->cancel_thread_semaphore); } } diff --git a/src/artifact_cache/artifact_cache.h b/src/artifact_cache/artifact_cache.h index 3e433e5f..2bd082bb 100644 --- a/src/artifact_cache/artifact_cache.h +++ b/src/artifact_cache/artifact_cache.h @@ -59,6 +59,13 @@ struct AC_RequestNode AC_Request v; }; +typedef struct AC_NodePtr AC_NodePtr; +struct AC_NodePtr +{ + AC_NodePtr *next; + struct AC_Node *node; +}; + typedef struct AC_Node AC_Node; struct AC_Node { @@ -76,8 +83,9 @@ struct AC_Node U64 working_count; U64 completion_count; U64 evict_threshold_us; + U64 last_touched_ac_request_gen; B32 cancelled; - U64 _unused_; + B32 other_nodes_depend_on_me; }; typedef struct AC_Slot AC_Slot; @@ -99,6 +107,7 @@ struct AC_Cache U64 slots_count; AC_Slot *slots; StripeArray stripes; + AC_NodePtr **stripe_free_node_ptrs; }; typedef struct AC_RequestBatch AC_RequestBatch; @@ -114,10 +123,17 @@ struct AC_RequestBatch U64 thin_count; }; +typedef struct AC_TCTX AC_TCTX; +struct AC_TCTX +{ + U64 _unused_; +}; + typedef struct AC_Shared AC_Shared; struct AC_Shared { Arena *arena; + U64 request_gen; // rjf: cache cache U64 cache_slots_count; @@ -129,13 +145,14 @@ struct AC_Shared // rjf: cancel thread Thread cancel_thread; - Mutex cancel_thread_mutex; + Semaphore cancel_thread_semaphore; }; //////////////////////////////// //~ rjf: Globals global AC_Shared *ac_shared = 0; +thread_static AC_TCTX *ac_tctx = 0; //////////////////////////////// //~ rjf: Layer Initialization diff --git a/src/base/base_arena.c b/src/base/base_arena.c index 22778571..f765f700 100644 --- a/src/base/base_arena.c +++ b/src/base/base_arena.c @@ -1,6 +1,25 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// +//~ rjf: Global Arena Table + +#if ARENA_TABLE_DEBUG +typedef struct ArenaTableNode ArenaTableNode; +struct ArenaTableNode +{ + ArenaTableNode *next; + Arena *arena; +}; +global U64 arena_table_take_init = 0; +global U64 arena_table_inited = 0; +global U64 arena_table_lock = 0; +global ArenaTableNode *arena_table = 0; +global U64 arena_table_count = 0; +global U64 arena_table_cap = 0; +global ArenaTableNode *free_arena_table_node = 0; +#endif + //////////////////////////////// //~ rjf: Arena Functions @@ -9,73 +28,148 @@ internal Arena * arena_alloc_(ArenaParams *params) { - // rjf: round up reserve/commit sizes U64 reserve_size = params->reserve_size; - U64 commit_size = params->commit_size; - if(params->flags & ArenaFlag_LargePages) - { - reserve_size = AlignPow2(reserve_size, os_get_system_info()->large_page_size); - commit_size = AlignPow2(commit_size, os_get_system_info()->large_page_size); - } - else - { - reserve_size = AlignPow2(reserve_size, os_get_system_info()->page_size); - commit_size = AlignPow2(commit_size, os_get_system_info()->page_size); - } + U64 commit_size = params->commit_size; // rjf: reserve/commit initial block void *base = params->optional_backing_buffer; if(base == 0) { + // rjf: round up reserve/commit sizes if(params->flags & ArenaFlag_LargePages) { - base = os_reserve_large(reserve_size); - os_commit_large(base, commit_size); + reserve_size = AlignPow2(reserve_size, get_system_info()->large_page_size); + commit_size = AlignPow2(commit_size, get_system_info()->large_page_size); } else { - base = os_reserve(reserve_size); - os_commit(base, commit_size); + reserve_size = AlignPow2(reserve_size, get_system_info()->page_size); + commit_size = AlignPow2(commit_size, get_system_info()->page_size); } - raddbg_annotate_vaddr_range(base, reserve_size, "arena %s:%i", params->allocation_site_file, params->allocation_site_line); + + if(params->flags & ArenaFlag_LargePages) + { + base = reserve_memory_large(reserve_size); + commit_memory_large(base, commit_size); + } + else + { + base = reserve_memory(reserve_size); + commit_memory(base, commit_size); + } + AsanPoisonMemoryRegion(base, commit_size); + // TODO(rjf): we need to reintroduce this later when we have the ability to remove annotations... + // raddbg_annotate_vaddr_range(base, reserve_size, "arena %s:%i", params->allocation_site_file, params->allocation_site_line); + } + else + { + AsanPoisonMemoryRegion(base, params->reserve_size); } // rjf: panic on arena creation failure #if OS_FEATURE_GRAPHICAL if(Unlikely(base == 0)) { - os_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); + abort_self(1); } #endif // rjf: extract arena header & fill - Arena *arena = (Arena *)base; - arena->current = arena; - arena->flags = params->flags; - arena->cmt_size = params->commit_size; - arena->res_size = params->reserve_size; - arena->base_pos = 0; - arena->pos = ARENA_HEADER_SIZE; - arena->cmt = commit_size; - arena->res = reserve_size; + AsanUnpoisonMemoryRegion(base, ARENA_HEADER_SIZE); + Arena *arena = base; + arena->current = arena; + arena->flags = params->flags; + arena->cmt_size = params->commit_size; + arena->res_size = params->reserve_size; + arena->base_pos = 0; + arena->pos = ARENA_HEADER_SIZE; + arena->cmt = commit_size; + arena->res = reserve_size; arena->allocation_site_file = params->allocation_site_file; arena->allocation_site_line = params->allocation_site_line; + arena->name = params->name; #if ARENA_FREE_LIST arena->free_last = 0; #endif - AsanPoisonMemoryRegion(base, commit_size); - AsanUnpoisonMemoryRegion(base, ARENA_HEADER_SIZE); + + // rjf: store in global arena table +#if ARENA_TABLE_DEBUG + if(ins_atomic_u64_eval_cond_assign(&arena_table_take_init, 1, 0) == 0) + { + arena_table = reserve_memory(GB(256)); + arena_table_cap = 4096; + commit_memory(arena_table, arena_table_cap * sizeof(arena_table[0])); + ins_atomic_u64_inc_eval(&arena_table_inited); + } + for(;!ins_atomic_u64_eval(&arena_table_inited);) {} + for(;;) + { + B32 got_lock = (ins_atomic_u64_eval_cond_assign(&arena_table_lock, 1, 0) == 0); + if(got_lock) + { + ArenaTableNode *node = free_arena_table_node; + if(node != 0) + { + SLLStackPop(free_arena_table_node); + } + else + { + node = &arena_table[arena_table_count]; + if(arena_table_count >= arena_table_cap) + { + U64 arena_table_cap__pre_grow = arena_table_cap; + arena_table_cap *= 2; + U64 arena_table_cap__post_grow = arena_table_cap; + commit_memory(arena_table + arena_table_cap__pre_grow, sizeof(arena_table[0]) * (arena_table_cap__post_grow - arena_table_cap__pre_grow)); + } + arena_table_count += 1; + } + node->arena = arena; + arena->table_node = node; + ins_atomic_u64_eval_assign(&arena_table_lock, 0); + break; + } + } +#endif + return arena; } internal void arena_release(Arena *arena) { +#if PROFILE_TELEMETRY + { + Arena *base_arena = arena; + while (base_arena->prev) base_arena = base_arena->prev; + tmPlot(0, TM_PLOT_UNITS_MEMORY, TM_PLOT_DRAW_LINE, 0, "%s/%p", base_arena->name, base_arena); + } +#endif + +#if ARENA_TABLE_DEBUG + for(Arena *n = arena->current; n != 0; n = n->prev) + { + for(;;) + { + B32 got_lock = (ins_atomic_u64_eval_cond_assign(&arena_table_lock, 1, 0) == 0); + if(got_lock) + { + ArenaTableNode *table_node = n->table_node; + MemoryZeroStruct(table_node); + SLLStackPush(free_arena_table_node, table_node); + ins_atomic_u64_eval_assign(&arena_table_lock, 0); + break; + } + } + } +#endif + for(Arena *n = arena->current, *prev = 0; n != 0; n = prev) { prev = n->prev; - os_release(n, n->res); + AsanUnpoisonMemoryRegion(n, n->cmt); + release_memory(n, n->res); } } @@ -88,6 +182,16 @@ arena_push(Arena *arena, U64 size, U64 align, B32 zero) U64 pos_pre = AlignPow2(current->pos, align); U64 pos_pst = pos_pre + size; + // TODO: Newly allocated arenas already have zeroed commited pages, + // so this unnecessarily zeroes them again. + // + // rjf: compute the size we need to zero + U64 size_to_zero = 0; + if(zero) + { + size_to_zero = Min(current->cmt, pos_pst) - pos_pre; + } + // rjf: chain, if needed if(current->res < pos_pst && !(arena->flags & ArenaFlag_NoChain)) { @@ -128,6 +232,12 @@ arena_push(Arena *arena, U64 size, U64 align, B32 zero) .flags = current->flags, .allocation_site_file = current->allocation_site_file, .allocation_site_line = current->allocation_site_line); + + size_to_zero = 0; + } + else + { + size_to_zero = size; } new_block->base_pos = current->base_pos + current->res; @@ -138,13 +248,6 @@ arena_push(Arena *arena, U64 size, U64 align, B32 zero) pos_pst = pos_pre + size; } - // rjf: compute the size we need to zero - U64 size_to_zero = 0; - if(zero) - { - size_to_zero = Min(current->cmt, pos_pst) - pos_pre; - } - // rjf: commit new pages, if needed if(current->cmt < pos_pst) { @@ -155,12 +258,13 @@ arena_push(Arena *arena, U64 size, U64 align, B32 zero) U8 *cmt_ptr = (U8 *)current + current->cmt; if(current->flags & ArenaFlag_LargePages) { - os_commit_large(cmt_ptr, cmt_size); + commit_memory_large(cmt_ptr, cmt_size); } else { - os_commit(cmt_ptr, cmt_size); + commit_memory(cmt_ptr, cmt_size); } + AsanPoisonMemoryRegion(cmt_ptr, cmt_size); current->cmt = cmt_pst_clamped; } @@ -171,18 +275,24 @@ arena_push(Arena *arena, U64 size, U64 align, B32 zero) result = (U8 *)current+pos_pre; current->pos = pos_pst; AsanUnpoisonMemoryRegion(result, size); - if(size_to_zero != 0) - { - MemoryZero(result, size_to_zero); - } + MemoryZero(result, size_to_zero); } +#if PROFILE_TELEMETRY + if(size > KB(1)) + { + Arena *base_arena = arena; + while (base_arena->prev) base_arena = base_arena->prev; + tmPlot(0, TM_PLOT_UNITS_MEMORY, TM_PLOT_DRAW_LINE, (double)(current->base_pos + current->pos) / 1024.0 / 1024.0, "%s/%p", base_arena->name, base_arena); + } +#endif + // rjf: panic on failure #if OS_FEATURE_GRAPHICAL if(Unlikely(result == 0)) { - os_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); + abort_self(1); } #endif @@ -215,7 +325,8 @@ arena_pop_to(Arena *arena, U64 pos) for(Arena *prev = 0; current->base_pos >= big_pos; current = prev) { prev = current->prev; - os_release(current, current->res); + AsanUnpoisonMemoryRegion(current, current->cmt); + release_memory(current, current->res); } #endif arena->current = current; @@ -223,6 +334,16 @@ arena_pop_to(Arena *arena, U64 pos) AssertAlways(new_pos <= current->pos); AsanPoisonMemoryRegion((U8*)current + new_pos, (current->pos - new_pos)); current->pos = new_pos; + +#if PROFILE_TELEMETRY + if((pos - (new_pos + current->base_pos)) > KB(1)) + { + Arena *base_arena = arena; + while (base_arena->prev) base_arena = base_arena->prev; + tmPlot(0, TM_PLOT_UNITS_MEMORY, TM_PLOT_DRAW_LINE, (double)(current->base_pos + current->pos) / 1024.0 / 1024.0, "%s/%p", base_arena->name, base_arena); + } +#endif + } //- rjf: arena push/pop helpers diff --git a/src/base/base_arena.h b/src/base/base_arena.h index 99fd33bb..b3ba3782 100644 --- a/src/base/base_arena.h +++ b/src/base/base_arena.h @@ -25,6 +25,7 @@ struct ArenaParams void *optional_backing_buffer; char *allocation_site_file; int allocation_site_line; + char *name; }; typedef struct Arena Arena; @@ -41,9 +42,13 @@ struct Arena U64 res; char *allocation_site_file; int allocation_site_line; + char *name; #if ARENA_FREE_LIST Arena *free_last; #endif +#if ARENA_TABLE_DEBUG + struct ArenaTableNode *table_node; +#endif }; StaticAssert(sizeof(Arena) <= ARENA_HEADER_SIZE, arena_header_size_check); diff --git a/src/base/base_context_cracking.h b/src/base/base_context_cracking.h index 82af7918..76011874 100644 --- a/src/base/base_context_cracking.h +++ b/src/base/base_context_cracking.h @@ -138,6 +138,10 @@ # define BUILD_DEBUG 1 #endif +#if !defined(BUILD_TESTS) +# define BUILD_TESTS 0 +#endif + #if !defined(BUILD_SUPPLEMENTARY_UNIT) # define BUILD_SUPPLEMENTARY_UNIT 0 #endif @@ -159,7 +163,7 @@ #endif #if !defined(BUILD_VERSION_PATCH) -# define BUILD_VERSION_PATCH 24 +# define BUILD_VERSION_PATCH 28 #endif #define BUILD_VERSION_STRING_LITERAL Stringify(BUILD_VERSION_MAJOR) "." Stringify(BUILD_VERSION_MINOR) "." Stringify(BUILD_VERSION_PATCH) @@ -244,4 +248,48 @@ # error You tried to build with an unsupported architecture. Currently, only building in x64 mode is supported. #endif +//////////////////////////////// +// extra intrinisc includes, so older clang versions are happy +// when optiona intrinsics like avx2 & avx512 are used later +// these must come first before any other intrinsic includes +// otherwise compiler will define macros that prevent declarations +// of intrinsics when included next time + +#if ARCH_X64 && COMPILER_CLANG +# if defined(__IMMINTRIN_H) +# error "include this header before immintrin.h / x86intrin.h / intrin.h" +# endif +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wreserved-macro-identifier" +# pragma push_macro("__SHA__") +# pragma push_macro("__AVX__") +# pragma push_macro("__AVX2__") +# pragma push_macro("__BMI2__") +# pragma push_macro("__SSE4_1__") +# pragma push_macro("__AVX512F__") +# pragma push_macro("__AVX512VL__") +# pragma push_macro("__AVX512BW__") +# pragma push_macro("__AVX512VBMI__") +# define __SHA__ 1 +# define __AVX__ 1 +# define __AVX2__ 1 +# define __BMI2__ 1 +# define __SSE4_1__ 1 +# define __AVX512F__ 1 +# define __AVX512VL__ 1 +# define __AVX512BW__ 1 +# define __AVX512VBMI__ 1 +# include +# pragma pop_macro("__AVX512VBMI__") +# pragma pop_macro("__AVX512BW__") +# pragma pop_macro("__AVX512VL__") +# pragma pop_macro("__AVX512F__") +# pragma pop_macro("__SSE4_1__") +# pragma pop_macro("__BMI2__") +# pragma pop_macro("__AVX2__") +# pragma pop_macro("__AVX__") +# pragma pop_macro("__SHA__") +# pragma clang diagnostic pop +#endif + #endif // BASE_CONTEXT_CRACKING_H diff --git a/src/base/base_core.c b/src/base/base_core.c index 79655432..10c9c3cc 100644 --- a/src/base/base_core.c +++ b/src/base/base_core.c @@ -79,19 +79,21 @@ u64_up_to_pow2(U64 x){ } internal S32 -extend_sign32(U32 x, U32 size){ - U32 high_bit = size * 8; - U32 shift = 32 - high_bit; - S32 result = ((S32)x << shift) >> shift; - return result; +extend_sign32(U32 x, U32 size) +{ + U32 n = size * 8; + U32 m = (U32)1 << (n - 1); + S32 r = (S32)((x ^ m) - m); + return r; } internal S64 -extend_sign64(U64 x, U64 size){ - U64 high_bit = size * 8; - U64 shift = 64 - high_bit; - S64 result = ((S64)x << shift) >> shift; - return result; +extend_sign64(U64 x, U64 size) +{ + U64 n = size * 8; + U64 m = (U64)1 << (n - 1); + S64 r = (S64)((x ^ m) - m); + return r; } internal F32 @@ -286,6 +288,56 @@ memory_is_zero(void *ptr, U64 size) return result; } +internal void UBSAN_NO_ALIGN +memory_write16(void *ptr, U16 v) +{ + MemoryCopy(ptr, &v, sizeof(v)); +} + +internal void UBSAN_NO_ALIGN +memory_write32(void *ptr, U32 v) +{ + MemoryCopy(ptr, &v, sizeof(v)); +} + +internal void UBSAN_NO_ALIGN +memory_write64(void *ptr, U64 v) +{ + MemoryCopy(ptr, &v, sizeof(v)); +} + +internal U8 UBSAN_NO_ALIGN +memory_read8(void *ptr) +{ + U8 result; + MemoryCopy(&result, ptr, sizeof(result)); + return result; +} + +internal U16 UBSAN_NO_ALIGN +memory_read16(void *ptr) +{ + U16 result; + MemoryCopy(&result, ptr, sizeof(result)); + return result; +} + +internal U32 UBSAN_NO_ALIGN +memory_read32(void *ptr) +{ + U32 result; + MemoryCopy(&result, ptr, sizeof(result)); + return result; +} + +internal U64 UBSAN_NO_ALIGN +memory_read64(void *ptr) +{ + U64 result; + MemoryCopy(&result, ptr, sizeof(result)); + return result; +} + //////////////////////////////// //~ rjf: Text 2D Coordinate/Range Functions @@ -413,6 +465,38 @@ byte_size_from_arch(Arch arch) return bit_size_from_arch(arch) / 8; } +internal U64 +max_ops_per_instruction_from_arch(Arch arch) +{ + U64 max_ops = 0; + switch (arch) + { + case Arch_Null: break; + case Arch_x64: max_ops = 1; break; + case Arch_x86: + case Arch_arm32: + case Arch_arm64: NotImplemented; break; + default: InvalidPath; + } + return max_ops; +} + +internal U64 +min_instruction_size_from_arch(Arch arch) +{ + U64 min_instruction_size = 0; + switch(arch) + { + case Arch_Null: break; + case Arch_x64: min_instruction_size = 1; break; + case Arch_x86: + case Arch_arm32: + case Arch_arm64: NotImplemented; break; + default: InvalidPath; + } + return min_instruction_size; +} + internal U64 max_instruction_size_from_arch(Arch arch) { @@ -539,10 +623,10 @@ date_time_from_unix_time(U64 unix_time) } //////////////////////////////// -//~ rjf: Non-Fancy Ring Buffer Reads/Writes +//~ rjf: Wrapped Ring Buffer Reads/Writes internal U64 -ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size) +wrapped_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size) { Assert(src_data_size <= ring_size); { @@ -559,7 +643,7 @@ ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_d } internal U64 -ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size) +wrapped_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size) { Assert(read_size <= ring_size); { @@ -608,6 +692,26 @@ u64_array_bsearch(U64 *arr, U64 count, U64 value) //////////////////////////////// +internal U32 +idx_of_zero_byte64(U8 *ptr, U64 size) +{ + Assert(size == 8); +#if ARCH_X64 + __m128i v = _mm_loadl_epi64((__m128i*)ptr); + __m128i m = _mm_cmpeq_epi8(v, _mm_setzero_si128()); + U32 bits = _mm_movemask_epi8(m); + return ctz32(bits); +#else + U64 x; + MemoryCopyStruct(&x, ptr); + U64 splat = ~0ULL / 255; + U64 mask_lsb = 0x01 * splat; + U64 mask_msb = 0x80 * splat; + U64 t = (x - mask_lsb) & (~x & mask_msb); + return ctz64(t) / 8; +#endif +} + internal U64 index_of_zero_u32(U32 *ptr, U64 count) { @@ -630,6 +734,15 @@ index_of_zero_u64(U64 *ptr, U64 count) return max_U64; } +internal U64 +count_digits_u64(U64 v, U64 radix) +{ + if (v == 0) { return 1; } + U64 count = 0; + for (U64 x = v; x > 0; x /= radix) { count += 1; } + return count; +} + //////////////////////////////// //~ rjf: Third Party Includes diff --git a/src/base/base_core.h b/src/base/base_core.h index a6f41da6..a5b2a964 100644 --- a/src/base/base_core.h +++ b/src/base/base_core.h @@ -7,11 +7,13 @@ //////////////////////////////// //~ rjf: Foreign Includes -#include #include +#include +#include +#include +#include #include #include -#include //////////////////////////////// //~ rjf: Third Party Includes @@ -180,8 +182,9 @@ //~ rjf: Member Offsets #define Member(T,m) (((T*)0)->m) -#define OffsetOf(T,m) IntFromPtr(&Member(T,m)) +#define OffsetOf(T,m) offsetof(T, m) #define MemberFromOffset(T,ptr,off) (T)((((U8 *)ptr)+(off))) +#define MemberFromPtr(T,ptr,m) (void*)((((U8 *)ptr)+OffsetOf(T,m))) #define CastFromMember(T,m,ptr) (T*)(((U8*)ptr) - OffsetOf(T,m)) //////////////////////////////// @@ -196,6 +199,7 @@ #define EachNonZeroEnumVal(type, it) (type it = (type)1; it < type##_COUNT; it = (type)(it+1)) #define EachInRange(it, range) (U64 it = (range).min; it < (range).max; it += 1) #define EachNode(it, T, first) (T *it = first; it != 0; it = it->next) +#define EachBit(it, flags) (U64 (_i_) = (flags), it = (flags) & -(flags); (_i_) != 0; (_i_) &= ((_i_) - 1), it = (flags) & -(flags)) //////////////////////////////// //~ rjf: Memory Operation Macros @@ -203,7 +207,6 @@ #define MemoryCopy(dst, src, size) memmove((dst), (src), (size)) #define MemorySet(dst, byte, size) memset((dst), (byte), (size)) #define MemoryCompare(a, b, size) memcmp((a), (b), (size)) -#define MemoryStrlen(ptr) strlen(ptr) #define MemoryCopyStruct(d,s) MemoryCopy((d),(s),sizeof(*(d))) #define MemoryCopyArray(d,s) MemoryCopy((d),(s),sizeof(d)) @@ -221,9 +224,6 @@ #define MemoryIsZeroStruct(ptr) memory_is_zero((ptr), sizeof(*(ptr))) -#define MemoryRead(T,p,e) ( ((p)+sizeof(T)<=(e))?(*(T*)(p)):(0) ) -#define MemoryConsume(T,p,e) ( ((p)+sizeof(T)<=(e))?((p)+=sizeof(T),*(T*)((p)-sizeof(T))):((p)=(e),0) ) - //////////////////////////////// //~ rjf: Asserts @@ -252,38 +252,44 @@ #if COMPILER_MSVC # include # if ARCH_X64 -# define ins_atomic_u128_eval_cond_assign(x,k,c) (B32)InterlockedCompareExchange128((__int64 *)(x), ((__int64 *)&(k))[1], ((__int64 *)&(k))[0], (__int64 *)c) -# define ins_atomic_u64_eval(x) *((volatile U64 *)(x)) -# define ins_atomic_u64_inc_eval(x) InterlockedIncrement64((__int64 *)(x)) -# define ins_atomic_u64_dec_eval(x) InterlockedDecrement64((__int64 *)(x)) -# define ins_atomic_u64_eval_assign(x,c) InterlockedExchange64((__int64 *)(x),(c)) -# define ins_atomic_u64_add_eval(x,c) InterlockedAdd64((__int64 *)(x), c) -# define ins_atomic_u64_eval_cond_assign(x,k,c) InterlockedCompareExchange64((__int64 *)(x),(k),(c)) -# define ins_atomic_u32_eval(x) *((volatile U32 *)(x)) -# define ins_atomic_u32_inc_eval(x) InterlockedIncrement((LONG *)(x)) -# define ins_atomic_u32_dec_eval(x) InterlockedDecrement((LONG *)(x)) -# define ins_atomic_u32_eval_assign(x,c) InterlockedExchange((LONG *)(x),(c)) -# define ins_atomic_u32_eval_cond_assign(x,k,c) InterlockedCompareExchange((LONG *)(x),(k),(c)) -# define ins_atomic_u32_add_eval(x,c) InterlockedAdd((LONG *)(x), (c)) -# define ins_atomic_u8_eval_assign(x,c) InterlockedExchange8((CHAR *)(x), (c)) +# define ins_atomic_u128_eval_cond_assign(x,k,c) (B32)_InterlockedCompareExchange128((__int64 *)(x), ((__int64 *)&(k))[1], ((__int64 *)&(k))[0], (__int64 *)(c)) +# define ins_atomic_u64_eval(x) (U64)__iso_volatile_load64((__int64*)(x)) +# define ins_atomic_u64_inc_eval(x) _InterlockedIncrement64((__int64 *)(x)) +# define ins_atomic_u64_dec_eval(x) _InterlockedDecrement64((__int64 *)(x)) +# define ins_atomic_u64_eval_assign(x,c) _InterlockedExchange64((__int64 *)(x), (c)) +# define ins_atomic_u64_add_eval(x,c) _interlockedadd64((__int64 *)(x), (c)) +# define ins_atomic_u64_eval_cond_assign(x,k,c) _InterlockedCompareExchange64((__int64 *)(x), (k), (c)) +# define ins_atomic_u32_eval(x) (U32)__iso_volatile_load32((__int32*)(x)) +# define ins_atomic_u32_inc_eval(x) _InterlockedIncrement((long *)(x)) +# define ins_atomic_u32_dec_eval(x) _InterlockedDecrement((long *)(x)) +# define ins_atomic_u32_eval_assign(x,c) _InterlockedExchange((long *)(x), (c)) +# define ins_atomic_u32_eval_cond_assign(x,k,c) _InterlockedCompareExchange((long *)(x), (k), (c)) +# define ins_atomic_u32_add_eval(x,c) _interlockedadd((long *)(x), (c)) +# define ins_atomic_u8_eval_assign(x,c) _InterlockedExchange8((char *)(x), (char)(c)) +# define ins_atomic_u8_or(x,c) _InterlockedOr8((char *)(x), (char)(c)) +# define ins_atomic_u32_or(x,c) _InterlockedOr((long *)(x), (long)(c)) # else # error Atomic intrinsics not defined for this compiler / architecture combination. # endif #elif COMPILER_CLANG || COMPILER_GCC +# include +# include # define ins_atomic_u128_eval_cond_assign(x,k,c) (B32)__atomic_compare_exchange_n((__int128 *)(x),(__int128 *)(c),*(__int128 *)(k),0,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST) -# define ins_atomic_u64_eval(x) __atomic_load_n(x, __ATOMIC_SEQ_CST) -# define ins_atomic_u64_inc_eval(x) (__atomic_fetch_add((U64 *)(x), 1, __ATOMIC_SEQ_CST) + 1) -# define ins_atomic_u64_dec_eval(x) (__atomic_fetch_sub((U64 *)(x), 1, __ATOMIC_SEQ_CST) - 1) +# define ins_atomic_u64_eval(x) __atomic_load_n((U64 *)(x), __ATOMIC_SEQ_CST) +# define ins_atomic_u64_inc_eval(x) __atomic_add_fetch((U64 *)(x), 1, __ATOMIC_SEQ_CST) +# define ins_atomic_u64_dec_eval(x) __atomic_sub_fetch((U64 *)(x), 1, __ATOMIC_SEQ_CST) # define ins_atomic_u64_eval_assign(x,c) __atomic_exchange_n(x, c, __ATOMIC_SEQ_CST) -# define ins_atomic_u64_add_eval(x,c) (__atomic_fetch_add((U64 *)(x), c, __ATOMIC_SEQ_CST) + (c)) +# define ins_atomic_u64_add_eval(x,c) __atomic_add_fetch((U64 *)(x), c, __ATOMIC_SEQ_CST) # define ins_atomic_u64_eval_cond_assign(x,k,c) ({ U64 _new = (c); __atomic_compare_exchange_n((U64 *)(x),&_new,(k),0,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST); _new; }) # define ins_atomic_u32_eval(x) __atomic_load_n(x, __ATOMIC_SEQ_CST) -# define ins_atomic_u32_inc_eval(x) (__atomic_fetch_add((U32 *)(x), 1, __ATOMIC_SEQ_CST) + 1) -# define ins_atomic_u32_dec_eval(x) (__atomic_fetch_sub((U32 *)(x), 1, __ATOMIC_SEQ_CST) - 1) -# define ins_atomic_u32_add_eval(x,c) (__atomic_fetch_add((U32 *)(x), c, __ATOMIC_SEQ_CST) + (c)) +# define ins_atomic_u32_inc_eval(x) __atomic_add_fetch((U32 *)(x), 1, __ATOMIC_SEQ_CST) +# define ins_atomic_u32_dec_eval(x) __atomic_sub_fetch((U32 *)(x), 1, __ATOMIC_SEQ_CST) +# define ins_atomic_u32_add_eval(x,c) __atomic_add_fetch((U32 *)(x), c, __ATOMIC_SEQ_CST) # define ins_atomic_u32_eval_assign(x,c) __atomic_exchange_n((x), (c), __ATOMIC_SEQ_CST) # define ins_atomic_u32_eval_cond_assign(x,k,c) ({ U32 _new = (c); __atomic_compare_exchange_n((U32 *)(x),&_new,(k),0,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST); _new; }) # define ins_atomic_u8_eval_assign(x,c) __atomic_exchange_n((x), (c), __ATOMIC_SEQ_CST) +# define ins_atomic_u8_or(x,c) __atomic_fetch_or((U8 *)(x), (U8)(c), __ATOMIC_SEQ_CST) +# define ins_atomic_u32_or(x,c) __atomic_fetch_or((U32 *)(x), (U32)(c), __ATOMIC_SEQ_CST) #else # error Atomic intrinsics not defined for this compiler / architecture. #endif @@ -363,9 +369,7 @@ CheckNil(nil,p) ? \ #if COMPILER_MSVC # if defined(__SANITIZE_ADDRESS__) # define ASAN_ENABLED 1 -# define NO_ASAN __declspec(no_sanitize_address) -# else -# define NO_ASAN +# define ASAN_NO_ADDR __declspec(no_sanitize_address) # endif #elif COMPILER_CLANG # if defined(__has_feature) @@ -373,9 +377,15 @@ CheckNil(nil,p) ? \ # define ASAN_ENABLED 1 # endif # endif -# define NO_ASAN __attribute__((no_sanitize("address"))) -#else -# define NO_ASAN +# define ASAN_NO_ADDR __attribute__((no_sanitize("address"))) +# define UBSAN_NO_ALIGN __attribute__((no_sanitize("alignment"))) +#endif + +#ifndef ASAN_NO_ADDR +# define ASAN_NO_ADDR +#endif +#ifndef UBSAN_NO_ALIGN +# define UBSAN_NO_ALIGN #endif #if ASAN_ENABLED @@ -437,6 +447,9 @@ C_LINKAGE void __asan_unpoison_memory_region(void const volatile *addr, size_t s # define this_function_name __func__ #endif +#define TryRead(func__, cursor__, label__) do { U64 size__ = (func__); if (size__ == 0) { goto label__; } cursor__ += size__; } while (0) +#define TryReadBreak(func__, cursor__) { U64 size__ = (func__); if (size__ == 0) { break; } cursor__ += size__; } + //////////////////////////////// //~ rjf: Base Types @@ -462,6 +475,8 @@ union U128 U16 u16[8]; U32 u32[4]; U64 u64[2]; + F32 f32[4]; + F64 f64[2]; }; typedef union U256 U256; union U256 @@ -471,6 +486,8 @@ union U256 U32 u32[8]; U64 u64[4]; U128 u128[2]; + F32 f32[8]; + F64 f64[4]; }; typedef union U512 U512; union U512 @@ -481,37 +498,48 @@ union U512 U64 u64[8]; U128 u128[4]; U256 u256[2]; + F32 f32[16]; + F64 f64[8]; }; +#pragma pack(push, 1) +typedef struct U80 U80; +struct U80 +{ + U64 int1_frac63; + U16 sign1_exp15; +}; +#pragma pack(pop) + //////////////////////////////// //~ rjf: Basic Type Structures typedef struct U16Array U16Array; struct U16Array { - U64 count; U16 *v; + U64 count; }; typedef struct U32Array U32Array; struct U32Array { - U64 count; U32 *v; + U64 count; }; typedef struct U64Array U64Array; struct U64Array { - U64 count; U64 *v; + U64 count; }; typedef struct U128Array U128Array; struct U128Array { - U64 count; U128 *v; + U64 count; }; //////////////////////////////// @@ -611,19 +639,19 @@ typedef enum Arch Arch_arm64, Arch_arm32, Arch_COUNT, -#if ARCH_X64 - Arch_CURRENT = Arch_x64, -#elif ARCH_X86 - Arch_CURRENT = Arch_x86, -#elif ARCH_ARM64 - Arch_CURRENT = Arch_arm64, -#elif ARCH_ARM32 - Arch_CURRENT = Arch_arm32, -#else - Arch_CURRENT = Arch_Null, -#endif } Arch; +#if ARCH_X64 +# define Arch_CURRENT Arch_x64 +#elif ARCH_X86 +# define Arch_CURRENT Arch_x86 +#elif ARCH_ARM64 +# define Arch_CURRENT Arch_arm64 +#elif ARCH_ARM32 +# define Arch_CURRENT Arch_arm32 +#else +# define Arch_CURRENT Arch_Null +#endif typedef enum Compiler { @@ -632,17 +660,42 @@ typedef enum Compiler Compiler_gcc, Compiler_clang, Compiler_COUNT, -#if COMPILER_MSVC - Compiler_CURRENT = Compiler_msvc, -#elif COMPILER_GCC - Compiler_CURRENT = Compiler_gcc, -#elif COMPILER_CLANG - Compiler_CURRENT = Compiler_clang, -#else - Compiler_CURRENT = Compiler_Null, -#endif } Compiler; +#if COMPILER_MSVC +# define Compiler_CURRENT Compiler_msvc +#elif COMPILER_GCC +# define Compiler_CURRENT Compiler_gcc +#elif COMPILER_CLANG +# define Compiler_CURRENT Compiler_clang +#else +# define Compiler_CURRENT Compiler_Null +#endif + +typedef enum Linker +{ + Linker_Null, + Linker_radlink, + Linker_msvc, + Linker_lld, + Linker_COUNT +} +Linker; + +//////////////////////////////// +//~ rjf: Access Flags + +typedef U32 AccessFlags; +enum +{ + AccessFlag_Read = (1<<0), + AccessFlag_Write = (1<<1), + AccessFlag_Execute = (1<<2), + AccessFlag_Append = (1<<3), + AccessFlag_ShareRead = (1<<4), + AccessFlag_ShareWrite = (1<<5), + AccessFlag_Inherited = (1<<6), +}; //////////////////////////////// //~ rjf: Text 2D Coordinates & Ranges @@ -678,6 +731,29 @@ union Guid }; StaticAssert(sizeof(Guid) == 16, g_guid_size_check); +//////////////////////////////// +//~ Machine Ops + +typedef enum MachineOpResult +{ + MachineOpResult_Null, + MachineOpResult_Ok, + MachineOpResult_Fail, + MachineOpResult_Maybe, +} MachineOpResult; + +#define MACHINE_OP_REG_READ(name) MachineOpResult name(U64 reg_id, void *buffer, U64 buffer_max, void *ud) +typedef MACHINE_OP_REG_READ(MachineOp_RegRead); + +#define MACHINE_OP_REG_WRITE(name) MachineOpResult name(U64 reg_id, void *value, U64 value_size, void *ud) +typedef MACHINE_OP_REG_WRITE(MachineOp_RegWrite); + +#define MACHINE_OP_MEM_READ(name) MachineOpResult name(U64 addr, void *buffer, U64 buffer_size, void *ud) +typedef MACHINE_OP_MEM_READ(MachineOp_MemRead); + +#define MACHINE_OP_MEM_WRITE(name) MachineOpResult name(U64 addr, void *value, U64 value_size, void *ud) +typedef MACHINE_OP_MEM_WRITE(MachineOp_MemWrite); + //////////////////////////////// //~ rjf: Basic Constants @@ -973,6 +1049,15 @@ internal F32 sign_from_side_F32(Side side); internal B32 memory_is_zero(void *ptr, U64 size); +internal void memory_write16(void *ptr, U16 v); +internal void memory_write32(void *ptr, U32 v); +internal void memory_write64(void *ptr, U64 v); + +internal U8 memory_read8(void *ptr); +internal U16 memory_read16(void *ptr); +internal U32 memory_read32(void *ptr); +internal U64 memory_read64(void *ptr); + //////////////////////////////// //~ rjf: Text 2D Coordinate/Range Functions @@ -991,6 +1076,8 @@ internal B32 txt_rng_contains(TxtRng r, TxtPt pt); internal U64 bit_size_from_arch(Arch arch); internal U64 byte_size_from_arch(Arch arch); +internal U64 max_ops_per_instruction_from_arch(Arch arch); +internal U64 min_instruction_size_from_arch(Arch arch); internal U64 max_instruction_size_from_arch(Arch arch); //////////////////////////////// @@ -1002,12 +1089,32 @@ internal DateTime date_time_from_micro_seconds(U64 time); internal DateTime date_time_from_unix_time(U64 unix_time); //////////////////////////////// -//~ rjf: Non-Fancy Ring Buffer Reads/Writes +//~ rjf: @per_os_impl Debugger Attachment Checking -internal U64 ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size); -internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size); -#define ring_write_struct(ring_base, ring_size, ring_pos, ptr) ring_write((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) -#define ring_read_struct(ring_base, ring_size, ring_pos, ptr) ring_read((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) +internal B32 debugger_is_attached(void); + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Time Functions + +internal U64 now_time_us(void); +internal U32 now_time_unix(void); +internal DateTime now_time_universal(void); +internal DateTime universal_from_local_time(DateTime *dt); +internal DateTime local_from_universal_time(DateTime *dt); +internal void sleep_ms(U32 ms); + +//////////////////////////////// +//~ rjf: @per_os_impl Platform GUID Functions + +internal Guid make_guid(void); + +//////////////////////////////// +//~ rjf: Wrapped Ring Buffer Reads/Writes + +internal U64 wrapped_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size); +internal U64 wrapped_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size); +#define wrapped_write_struct(ring_base, ring_size, ring_pos, ptr) wrapped_write((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) +#define wrapped_read_struct(ring_base, ring_size, ring_pos, ptr) wrapped_read((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) //////////////////////////////// //~ rjf: Sorts @@ -1020,7 +1127,9 @@ internal U64 u64_array_bsearch(U64 *arr, U64 count, U64 value); //////////////////////////////// +internal U32 idx_of_zero_byte64(U8 *ptr, U64 size); // size must be exactly 8 bytes internal U64 index_of_zero_u32(U32 *ptr, U64 count); internal U64 index_of_zero_u64(U64 *ptr, U64 count); +internal U64 count_digits_u64(U64 v, U64 radix); #endif // BASE_CORE_H diff --git a/src/metagen/metagen_base/metagen_base_profile.c b/src/base/base_dynamic_libraries.c similarity index 63% rename from src/metagen/metagen_base/metagen_base_profile.c rename to src/base/base_dynamic_libraries.c index 8ac6bce5..ae447aab 100644 --- a/src/metagen/metagen_base/metagen_base_profile.c +++ b/src/base/base_dynamic_libraries.c @@ -1,2 +1,2 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/base/base_dynamic_libraries.h b/src/base/base_dynamic_libraries.h new file mode 100644 index 00000000..d87a600b --- /dev/null +++ b/src/base/base_dynamic_libraries.h @@ -0,0 +1,20 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_DYNAMIC_LIBARIES_H +#define BASE_DYNAMIC_LIBARIES_H + +typedef struct Library Library; +struct Library +{ + U64 u64[1]; +}; + +//////////////////////////////// +//~ rjf: @per_os_impl Dynamically-Loaded Libraries + +internal Library library_open(String8 path); +internal void library_close(Library lib); +internal VoidProc *library_load_proc(Library lib, String8 name); + +#endif // BASE_DYNAMIC_LIBARIES_H diff --git a/src/base/base_entry_point.c b/src/base/base_entry_point.c index 451669bc..a08a50b5 100644 --- a/src/base/base_entry_point.c +++ b/src/base/base_entry_point.c @@ -11,6 +11,10 @@ global B32 async_loop_again_high_priority = 0; global B32 global_async_exit = 0; thread_static B32 is_async_thread = 0; +// NOTE(rjf): defined by target +raddbg_entry_point(entry_point); +internal void entry_point(CmdLine *cmdline); + internal void main_thread_base_entry_point(int arguments_count, char **arguments) { @@ -54,12 +58,15 @@ main_thread_base_entry_point(int arguments_count, char **arguments) } //- rjf: initialize all included layers +#if defined(HTTP_H) && !defined(HTTP_INIT_MANUAL) + http_init(); +#endif +#if defined(SYMBOL_SERVER_H) && !defined(SMSV_INIT_MANUAL) + smsv_init(); +#endif #if defined(ARTIFACT_CACHE_H) && !defined(AC_INIT_MANUAL) ac_init(); #endif -#if defined(ASYNC_H) && !defined(ASYNC_INIT_MANUAL) - async_init(&cmdline); -#endif #if defined(CONTENT_H) && !defined(C_INIT_MANUAL) c_init(); #endif @@ -75,11 +82,11 @@ main_thread_base_entry_point(int arguments_count, char **arguments) #if defined(DEMON_CORE_H) && !defined(DMN_INIT_MANUAL) dmn_init(); #endif -#if defined(CTRL_CORE_H) && !defined(CTRL_INIT_MANUAL) - ctrl_init(); +#if defined(DBG_ENGINE_CORE_H) && !defined(D_INIT_MANUAL) + d_init(); #endif -#if defined(OS_GFX_H) && !defined(OS_GFX_INIT_MANUAL) - os_gfx_init(); +#if defined(WINDOW_MANAGER_H) && !defined(WM_INIT_MANUAL) + wm_init(); #endif #if defined(FONT_PROVIDER_H) && !defined(FP_INIT_MANUAL) fp_init(); @@ -90,22 +97,20 @@ main_thread_base_entry_point(int arguments_count, char **arguments) #if defined(FONT_CACHE_H) && !defined(FNT_INIT_MANUAL) fnt_init(); #endif -#if defined(DBG_ENGINE_CORE_H) && !defined(D_INIT_MANUAL) - d_init(); -#endif #if defined(RADDBG_CORE_H) && !defined(RD_INIT_MANUAL) rd_init(&cmdline); #endif +#if !NO_ASYNC //- rjf: launch async threads Thread *async_threads = 0; U64 lane_broadcast_val = 0; { U64 num_main_threads = 1; -#if defined(CTRL_CORE_H) +#if defined(DBG_ENGINE_CORE_H) num_main_threads += 1; #endif - U64 num_async_threads = os_get_system_info()->logical_processor_count; + U64 num_async_threads = get_system_info()->logical_processor_count; U64 num_main_threads_clamped = Min(num_async_threads, num_main_threads); num_async_threads -= num_main_threads_clamped; String8 num_async_threads_string = cmd_line_string(&cmdline, str8_lit("async_thread_count")); @@ -127,10 +132,12 @@ main_thread_base_entry_point(int arguments_count, char **arguments) async_threads[idx] = thread_launch(async_thread_entry_point, &lane_ctxs[idx]); } } +#endif //- rjf: call into entry point entry_point(&cmdline); +#if !NO_ASYNC //- rjf: join async threads ins_atomic_u32_inc_eval(&global_async_exit); cond_var_broadcast(async_tick_start_cond_var); @@ -138,6 +145,7 @@ main_thread_base_entry_point(int arguments_count, char **arguments) { thread_join(async_threads[idx], max_U64); } +#endif //- rjf: end captures if(capture) @@ -194,7 +202,7 @@ async_thread_entry_point(void *params) { if(!ins_atomic_u32_eval(&async_loop_again)) { - MutexScope(async_tick_start_mutex) cond_var_wait(async_tick_start_cond_var, async_tick_start_mutex, os_now_microseconds()+1000000); + MutexScope(async_tick_start_mutex) cond_var_wait(async_tick_start_cond_var, async_tick_start_mutex, now_time_us()+1000000); } ins_atomic_u32_eval_assign(&async_loop_again, 0); ins_atomic_u32_eval_assign(&async_loop_again_high_priority, 0); @@ -213,6 +221,12 @@ async_thread_entry_point(void *params) #if defined(FILE_STREAM_H) fs_async_tick(); #endif +#if defined(HTTP_H) + http_async_tick(); +#endif +#if defined(SYMBOL_SERVER_H) + smsv_async_tick(); +#endif #if defined(DBG_INFO_H) di_async_tick(); #endif diff --git a/src/base/base_files.c b/src/base/base_files.c new file mode 100644 index 00000000..ca63d390 --- /dev/null +++ b/src/base/base_files.c @@ -0,0 +1,169 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Handle Type Functions + +internal File +file_zero(void) +{ + File f = {0}; + return f; +} + +internal B32 +file_match(File a, File b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +//////////////////////////////// +//~ rjf: Filesystem Helpers (Helpers, Implemented Once) + +internal String8 +data_from_file_path(Arena *arena, String8 path) +{ + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, path); + FileProperties props = properties_from_file(file); + String8 data = string_from_file_range(arena, file, r1u64(0, props.size)); + file_close(file); + return data; +} + +internal B32 +write_data_to_file_path(String8 path, String8 data) +{ + B32 good = 0; + File file = file_open(AccessFlag_Write, path); + if(!file_match(file, file_zero())) + { + U64 bytes_written = file_write(file, r1u64(0, data.size), data.str); + good = (bytes_written == data.size); + file_close(file); + } + return good; +} + +internal B32 +write_data_list_to_file_path(String8 path, String8List list) +{ + B32 good = 0; + File file = file_open(AccessFlag_Write, path); + if(!file_match(file, file_zero())) + { + Temp scratch = scratch_begin(0, 0); + U64 write_buffer_size = KB(64); + U8 *write_buffer = push_array_no_zero(scratch.arena, U8, write_buffer_size); + U64 write_buffer_write_pos = 0; + U64 write_buffer_read_pos = 0; + U64 file_off = 0; + { + for(String8Node *n = list.first; n != 0; n = n->next) + { + for(U64 n_off = 0; n_off < n->string.size;) + { + U64 write_buffer_unconsumed_size = (write_buffer_write_pos - write_buffer_read_pos); + U64 write_buffer_available_size = (write_buffer_size - write_buffer_unconsumed_size); + if(write_buffer_available_size == 0) + { + U64 file_write_size = file_write(file, r1u64(file_off, file_off+write_buffer_size), write_buffer); + if(file_write_size != write_buffer_size) + { + goto dbl_break; + } + file_off += write_buffer_size; + write_buffer_read_pos += write_buffer_size; + } + else + { + U64 bytes_to_copy = Min(write_buffer_available_size, n->string.size - n_off); + write_buffer_write_pos += wrapped_write(write_buffer, write_buffer_size, write_buffer_write_pos, n->string.str + n_off, bytes_to_copy); + n_off += bytes_to_copy; + } + } + } + if(write_buffer_write_pos > write_buffer_read_pos) + { + U64 file_write_size = file_write(file, r1u64(file_off, file_off + (write_buffer_write_pos-write_buffer_read_pos)), write_buffer); + file_off += file_write_size; + } + } + dbl_break:; + good = (file_off == list.total_size); + file_close(file); + scratch_end(scratch); + } + return good; +} + +internal B32 +append_data_to_file_path(String8 path, String8 data) +{ + B32 good = 0; + if(data.size != 0) + { + File file = file_open(AccessFlag_Write|AccessFlag_Append, path); + if(!file_match(file, file_zero())) + { + U64 pos = properties_from_file(file).size; + U64 bytes_written = file_write(file, r1u64(pos, pos+data.size), data.str); + good = (bytes_written == data.size); + file_close(file); + } + } + return good; +} + +internal FileID +id_from_file_path(String8 path) +{ + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, path); + FileID id = id_from_file(file); + file_close(file); + return id; +} + +internal S64 +file_id_compare(FileID a, FileID b) +{ + S64 cmp = MemoryCompare((void*)&a.v[0], (void*)&b.v[0], sizeof(a.v)); + return cmp; +} + +internal String8 +string_from_file_range(Arena *arena, File file, Rng1U64 range) +{ + U64 pre_pos = arena_pos(arena); + String8 result; + result.size = dim_1u64(range); + result.str = push_array_no_zero(arena, U8, result.size); + U64 actual_read_size = file_read(file, range, result.str); + if(actual_read_size < result.size) + { + arena_pop_to(arena, pre_pos + actual_read_size); + result.size = actual_read_size; + } + return result; +} + +internal String8 +file_read_cstring(Arena *arena, File file, U64 off) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List block_list = {0}; + for(U64 cursor = off, stride = 256;; cursor += stride) + { + U8 *raw_block = push_array_no_zero(scratch.arena, U8, stride); + U64 read_size = file_read(file, r1u64(cursor, cursor + stride), raw_block); + String8 block = str8_cstring_capped(raw_block, raw_block+read_size); + str8_list_push(scratch.arena, &block_list, block); + if(read_size != stride || (block.size+1 <= read_size && block.str[block.size] == 0)) + { + break; + } + } + String8 result = str8_list_join(arena, &block_list, 0); + scratch_end(scratch); + return result; +} diff --git a/src/base/base_files.h b/src/base/base_files.h new file mode 100644 index 00000000..4ead7246 --- /dev/null +++ b/src/base/base_files.h @@ -0,0 +1,102 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_FILES_H +#define BASE_FILES_H + +typedef U32 FileIterFlags; +enum +{ + FileIterFlag_SkipFolders = (1 << 0), + FileIterFlag_SkipFiles = (1 << 1), + FileIterFlag_SkipHiddenFiles = (1 << 2), + FileIterFlag_Done = (1 << 31), +}; + +typedef struct FileIter FileIter; +struct FileIter +{ + FileIterFlags flags; + U8 memory[800]; +}; + +typedef struct FileInfo FileInfo; +struct FileInfo +{ + String8 name; + FileProperties props; +}; + +// nick: on-disk file identifier +typedef struct FileID FileID; +struct FileID +{ + U64 v[3]; +}; + +typedef struct File File; +struct File +{ + U64 u64[1]; +}; + +typedef struct FileMap FileMap; +struct FileMap +{ + U64 u64[1]; +}; + +//////////////////////////////// +//~ rjf: Handle Type Functions + +internal File file_zero(void); +internal B32 file_match(File a, File b); + +//////////////////////////////// +//~ rjf: Filesystem Helpers (Helpers, Implemented Once) + +internal String8 data_from_file_path(Arena *arena, String8 path); +internal B32 write_data_to_file_path(String8 path, String8 data); +internal B32 write_data_list_to_file_path(String8 path, String8List list); +internal B32 append_data_to_file_path(String8 path, String8 data); +internal FileID id_from_file_path(String8 path); +internal S64 file_id_compare(FileID a, FileID b); +internal String8 string_from_file_range(Arena *arena, File file, Rng1U64 range); +internal String8 file_read_cstring(Arena *arena, File file, U64 off); + +//////////////////////////////// +//~ rjf: @per_os_impl File System (Implemented Per-OS) + +//- rjf: files +internal File file_open(AccessFlags flags, String8 path); +internal void file_close(File file); +internal U64 file_read(File file, Rng1U64 rng, void *out_data); +#define file_read_struct(f, off, ptr) file_read((f), r1u64((off), (off)+sizeof(*(ptr))), (ptr)) +internal U64 file_write(File file, Rng1U64 rng, void *data); +internal B32 file_set_times(File file, DateTime time); +internal FileProperties properties_from_file(File file); +internal FileID id_from_file(File file); +internal B32 file_reserve_size(File file, U64 size); +internal B32 delete_file_at_path(String8 path); +internal B32 copy_file_path(String8 dst, String8 src); +internal B32 move_file_path(String8 dst, String8 src); +internal String8 full_path_from_path(Arena *arena, String8 path); +internal B32 file_path_exists(String8 path); +internal B32 folder_path_exists(String8 path); +internal FileProperties properties_from_file_path(String8 path); + +//- rjf: file maps +internal FileMap file_map_open(AccessFlags flags, File file); +internal void file_map_close(FileMap map); +internal void * file_map_view_open(FileMap map, AccessFlags flags, Rng1U64 range); +internal void file_map_view_close(FileMap map, void *ptr, Rng1U64 range); + +//- rjf: directory iteration +internal FileIter *file_iter_begin(Arena *arena, String8 path, FileIterFlags flags); +internal B32 file_iter_next(Arena *arena, FileIter *iter, FileInfo *info_out); +internal void file_iter_end(FileIter *iter); + +//- rjf: directory creation +internal B32 make_directory(String8 path); + +#endif // BASE_FILES_H diff --git a/src/base/base_inc.c b/src/base/base_inc.c index 84444597..5a102437 100644 --- a/src/base/base_inc.c +++ b/src/base/base_inc.c @@ -9,14 +9,31 @@ #include "base_core.c" #include "base_profile.c" +#include "base_memory.c" #include "base_arena.c" #include "base_math.c" #include "base_strings.c" +#include "base_memory_map.c" #include "base_hash.c" +#include "base_system.c" #include "base_threads.c" +#include "base_ring.c" #include "base_thread_context.c" +#include "base_files.c" +#include "base_shared_memory.c" +#include "base_processes.c" +#include "base_dynamic_libraries.c" #include "base_command_line.c" #include "base_markup.c" #include "base_meta.c" #include "base_log.c" +#include "base_test.c" #include "base_entry_point.c" + +#if OS_WINDOWS +# include "win32/base/win32_base.c" +#elif OS_LINUX +# include "linux/base/linux_base.c" +#else +# error Operating system backend not found for base layer. +#endif diff --git a/src/base/base_inc.h b/src/base/base_inc.h index 1647d03a..f83f8858 100644 --- a/src/base/base_inc.h +++ b/src/base/base_inc.h @@ -11,16 +11,33 @@ #include "base_core.h" #include "base_profile.h" +#include "base_memory.h" #include "base_arena.h" #include "base_math.h" #include "base_strings.h" +#include "base_memory_map.h" #include "base_hash.h" +#include "base_system.h" #include "base_threads.h" +#include "base_ring.h" #include "base_thread_context.h" +#include "base_files.h" +#include "base_shared_memory.h" +#include "base_processes.h" +#include "base_dynamic_libraries.h" #include "base_command_line.h" #include "base_markup.h" #include "base_meta.h" #include "base_log.h" +#include "base_test.h" #include "base_entry_point.h" +#if OS_WINDOWS +# include "win32/base/win32_base.h" +#elif OS_LINUX +# include "linux/base/linux_base.h" +#else +# error Operating system backend not found for base layer. +#endif + #endif // BASE_INC_H diff --git a/src/base/base_log.c b/src/base/base_log.c index 3916ce1c..5adf5a8a 100644 --- a/src/base/base_log.c +++ b/src/base/base_log.c @@ -9,6 +9,8 @@ C_LINKAGE thread_static Log *log_active; C_LINKAGE thread_static Log *log_active = 0; #endif +String8 g_logs_folder; + //////////////////////////////// //~ rjf: Log Creation/Selection diff --git a/src/base/base_log.h b/src/base/base_log.h index 1cc58ff0..8ef71a37 100644 --- a/src/base/base_log.h +++ b/src/base/base_log.h @@ -36,6 +36,11 @@ struct Log LogScope *top_scope; }; +//////////////////////////////// +// Globals + +extern String8 g_logs_folder; + //////////////////////////////// //~ rjf: Log Creation/Selection diff --git a/src/base/base_markup.c b/src/base/base_markup.c index 0efbaab8..29202cab 100644 --- a/src/base/base_markup.c +++ b/src/base/base_markup.c @@ -1,21 +1,2 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) - -internal void -set_thread_name(String8 string) -{ - ProfThreadName("%.*s", str8_varg(string)); - os_set_thread_name(string); -} - -internal void -set_thread_namef(char *fmt, ...) -{ - Temp scratch = scratch_begin(0, 0); - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(scratch.arena, fmt, args); - set_thread_name(string); - va_end(args); - scratch_end(scratch); -} diff --git a/src/base/base_markup.h b/src/base/base_markup.h index 4389d9b1..1d451d2b 100644 --- a/src/base/base_markup.h +++ b/src/base/base_markup.h @@ -15,8 +15,6 @@ # define LAYER_COLOR 0x404040ff #endif -internal void set_thread_name(String8 string); -internal void set_thread_namef(char *fmt, ...); #define ThreadNameF(...) (set_thread_namef(__VA_ARGS__), raddbg_thread_color_u32(LAYER_COLOR)) #endif // BASE_MARKUP_H diff --git a/src/base/base_math.c b/src/base/base_math.c index 266d6a45..feb962f7 100644 --- a/src/base/base_math.c +++ b/src/base/base_math.c @@ -407,6 +407,26 @@ transpose_4x4f32(Mat4x4F32 mat) //////////////////////////////// //~ rjf: Range Ops +internal Rng1U8 rng_1u8(U8 min, U8 max) {Rng1U8 r = {min, max}; if(r.min > r.max) { Swap(U8, r.min, r.max); } return r;} +internal Rng1U8 shift_1u8(Rng1U8 r, U8 x) {r.min += x; r.max += x; return r;} +internal Rng1U8 pad_1u8(Rng1U8 r, U8 x) {r.min -= x; r.max += x; return r;} +internal U8 center_1u8(Rng1U8 r) {U8 c = (r.min+r.max)/2; return c;} +internal B32 contains_1u8(Rng1U8 r, U8 x) {B32 c = (r.min <= x && x < r.max); return c;} +internal U8 dim_1u8(Rng1U8 r) {U8 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} +internal Rng1U8 union_1u8(Rng1U8 a, Rng1U8 b) {Rng1U8 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} +internal Rng1U8 intersect_1u8(Rng1U8 a, Rng1U8 b) {Rng1U8 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} +internal U8 clamp_1u8(Rng1U8 r, U8 v) {v = Clamp(r.min, v, r.max); return v;} + +internal Rng1U16 rng_1u16(U16 min, U16 max) {Rng1U16 r = {min, max}; if(r.min > r.max) { Swap(U16, r.min, r.max); } return r;} +internal Rng1U16 shift_1u16(Rng1U16 r, U16 x) {r.min += x; r.max += x; return r;} +internal Rng1U16 pad_1u16(Rng1U16 r, U16 x) {r.min -= x; r.max += x; return r;} +internal U16 center_1u16(Rng1U16 r) {U16 c = (r.min+r.max)/2; return c;} +internal B32 contains_1u16(Rng1U16 r, U16 x) {B32 c = (r.min <= x && x < r.max); return c;} +internal U16 dim_1u16(Rng1U16 r) {U16 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} +internal Rng1U16 union_1u16(Rng1U16 a, Rng1U16 b) {Rng1U16 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} +internal Rng1U16 intersect_1u16(Rng1U16 a, Rng1U16 b) {Rng1U16 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} +internal U16 clamp_1u16(Rng1U16 r, U16 v) {v = Clamp(r.min, v, r.max); return v;} + internal Rng1U32 rng_1u32(U32 min, U32 max) {Rng1U32 r = {min, max}; if(r.min > r.max) { Swap(U32, r.min, r.max); } return r;} internal Rng1U32 shift_1u32(Rng1U32 r, U32 x) {r.min += x; r.max += x; return r;} internal Rng1U32 pad_1u32(Rng1U32 r, U32 x) {r.min -= x; r.max += x; return r;} @@ -738,6 +758,7 @@ rng1u64_list_concat(Rng1U64List *list, Rng1U64List *to_concat) list->first = to_concat->first; list->last = to_concat->last; } + list->count += to_concat->count; MemoryZeroStruct(to_concat); } } @@ -758,34 +779,32 @@ rng1u64_array_from_list(Arena *arena, Rng1U64List *list) } internal U64 -rng_1u64_array_bsearch(Rng1U64Array arr, U64 value) +rng1u64_array_num_from_value__binary_search(Rng1U64Array *array, U64 value) { - if(arr.count > 0 && arr.v[0].min < value && value < arr.v[arr.count-1].max) + U64 result = 0; + if(array->count > 0 && array->v[0].min <= value && value < array->v[array->count-1].max) { - U64 l = 0; - U64 r = arr.count - 1; - for(; l <= r; ) + U64 min_idx = 0; + U64 max_idx = array->count - 1; + for(;min_idx <= max_idx;) { - U64 m = l + (r - l) / 2; - if(contains_1u64(arr.v[m], value)) + U64 mid_idx = min_idx + (max_idx - min_idx) / 2; + if(contains_1u64(array->v[mid_idx], value)) { - return m; + result = mid_idx+1; + break; } - else if(arr.v[m].min < value) + else if(array->v[mid_idx].min < value) { - l = m + 1; + min_idx = mid_idx + 1; } else { - r = m - 1; + max_idx = mid_idx - 1; } } } - else if(arr.count == 1 && contains_1u64(arr.v[0], value)) - { - return 0; - } - return max_U64; + return result; } internal void diff --git a/src/base/base_math.h b/src/base/base_math.h index 37dd6c7a..6d93ea40 100644 --- a/src/base/base_math.h +++ b/src/base/base_math.h @@ -177,6 +177,28 @@ struct Mat4x4F32 //- rjf: 1-range +typedef union Rng1U8 Rng1U8; +union Rng1U8 +{ + struct + { + U8 min; + U8 max; + }; + U8 v[2]; +}; + +typedef union Rng1U16 Rng1U16; +union Rng1U16 +{ + struct + { + U16 min; + U16 max; + }; + U16 v[2]; +}; + typedef union Rng1U32 Rng1U32; union Rng1U32 { @@ -339,9 +361,9 @@ struct Rng1U64Node typedef struct Rng1U64List Rng1U64List; struct Rng1U64List { - U64 count; Rng1U64Node *first; Rng1U64Node *last; + U64 count; }; typedef struct Rng1U64Array Rng1U64Array; @@ -546,7 +568,32 @@ internal Mat4x4F32 transpose_4x4f32(Mat4x4F32 mat); //////////////////////////////// //~ rjf: Range Ops +#define r1u8(min, max) rng_1u8((min), (max)) +#define r1u8s(min, size) rng_1u8((min), (min)+(size)) +internal Rng1U8 rng_1u8(U8 min, U8 max); +internal Rng1U8 shift_1u8(Rng1U8 r, U8 x); +internal Rng1U8 pad_1u8(Rng1U8 r, U8 x); +internal U8 center_1u8(Rng1U8 r); +internal B32 contains_1u8(Rng1U8 r, U8 x); +internal U8 dim_1u8(Rng1U8 r); +internal Rng1U8 union_1u8(Rng1U8 a, Rng1U8 b); +internal Rng1U8 intersect_1u8(Rng1U8 a, Rng1U8 b); +internal U8 clamp_1u8(Rng1U8 r, U8 v); + +#define r1u16(min, max) rng_1u16((min), (max)) +#define r1u16s(min, size) rng_1u16((min), (min)+(size)) +internal Rng1U16 rng_1u16(U16 min, U16 max); +internal Rng1U16 shift_1u16(Rng1U16 r, U16 x); +internal Rng1U16 pad_1u16(Rng1U16 r, U16 x); +internal U16 center_1u16(Rng1U16 r); +internal B32 contains_1u16(Rng1U16 r, U16 x); +internal U16 dim_1u16(Rng1U16 r); +internal Rng1U16 union_1u16(Rng1U16 a, Rng1U16 b); +internal Rng1U16 intersect_1u16(Rng1U16 a, Rng1U16 b); +internal U16 clamp_1u16(Rng1U16 r, U16 v); + #define r1u32(min, max) rng_1u32((min), (max)) +#define r1u32s(min, size) rng_1u32((min), (min)+(size)) internal Rng1U32 rng_1u32(U32 min, U32 max); internal Rng1U32 shift_1u32(Rng1U32 r, U32 x); internal Rng1U32 pad_1u32(Rng1U32 r, U32 x); @@ -558,6 +605,7 @@ internal Rng1U32 intersect_1u32(Rng1U32 a, Rng1U32 b); internal U32 clamp_1u32(Rng1U32 r, U32 v); #define r1s32(min, max) rng_1s32((min), (max)) +#define r1s32s(min,size) rng_1s32((min), (min)+(size)) internal Rng1S32 rng_1s32(S32 min, S32 max); internal Rng1S32 shift_1s32(Rng1S32 r, S32 x); internal Rng1S32 pad_1s32(Rng1S32 r, S32 x); @@ -569,6 +617,7 @@ internal Rng1S32 intersect_1s32(Rng1S32 a, Rng1S32 b); internal S32 clamp_1s32(Rng1S32 r, S32 v); #define r1u64(min, max) rng_1u64((min), (max)) +#define r1u64s(min, size) rng_1u64((min), (min)+(size)) internal Rng1U64 rng_1u64(U64 min, U64 max); internal Rng1U64 shift_1u64(Rng1U64 r, U64 x); internal Rng1U64 pad_1u64(Rng1U64 r, U64 x); @@ -580,6 +629,7 @@ internal Rng1U64 intersect_1u64(Rng1U64 a, Rng1U64 b); internal U64 clamp_1u64(Rng1U64 r, U64 v); #define r1s64(min, max) rng_1s64((min), (max)) +#define r1s64s(min, size) rng_1s64((min), (min)+(size)) internal Rng1S64 rng_1s64(S64 min, S64 max); internal Rng1S64 shift_1s64(Rng1S64 r, S64 x); internal Rng1S64 pad_1s64(Rng1S64 r, S64 x); @@ -591,6 +641,7 @@ internal Rng1S64 intersect_1s64(Rng1S64 a, Rng1S64 b); internal S64 clamp_1s64(Rng1S64 r, S64 v); #define r1f32(min, max) rng_1f32((min), (max)) +#define r1f32s(min, size) rng_1f32((min), (min)+(size)) internal Rng1F32 rng_1f32(F32 min, F32 max); internal Rng1F32 shift_1f32(Rng1F32 r, F32 x); internal Rng1F32 pad_1f32(Rng1F32 r, F32 x); @@ -602,6 +653,7 @@ internal Rng1F32 intersect_1f32(Rng1F32 a, Rng1F32 b); internal F32 clamp_1f32(Rng1F32 r, F32 v); #define r2s16(min, max) rng_2s16((min), (max)) +#define r2s16s(min, size) r2s16((min), (min)+(size)) #define r2s16p(x, y, z, w) r2s16(v2s16((x), (y)), v2s16((z), (w))) internal Rng2S16 rng_2s16(Vec2S16 min, Vec2S16 max); internal Rng2S16 shift_2s16(Rng2S16 r, Vec2S16 x); @@ -614,6 +666,7 @@ internal Rng2S16 intersect_2s16(Rng2S16 a, Rng2S16 b); internal Vec2S16 clamp_2s16(Rng2S16 r, Vec2S16 v); #define r2s32(min, max) rng_2s32((min), (max)) +#define r2s32s(min, size) r2s32((min), (min)+(size)) #define r2s32p(x, y, z, w) r2s32(v2s32((x), (y)), v2s32((z), (w))) internal Rng2S32 rng_2s32(Vec2S32 min, Vec2S32 max); internal Rng2S32 shift_2s32(Rng2S32 r, Vec2S32 x); @@ -626,6 +679,7 @@ internal Rng2S32 intersect_2s32(Rng2S32 a, Rng2S32 b); internal Vec2S32 clamp_2s32(Rng2S32 r, Vec2S32 v); #define r2s64(min, max) rng_2s64((min), (max)) +#define r2s64s(min, size) r2s64((min), (min)+(size)) #define r2s64p(x, y, z, w) r2s64(v2s64((x), (y)), v2s64((z), (w))) internal Rng2S64 rng_2s64(Vec2S64 min, Vec2S64 max); internal Rng2S64 shift_2s64(Rng2S64 r, Vec2S64 x); @@ -638,6 +692,7 @@ internal Rng2S64 intersect_2s64(Rng2S64 a, Rng2S64 b); internal Vec2S64 clamp_2s64(Rng2S64 r, Vec2S64 v); #define r2f32(min, max) rng_2f32((min), (max)) +#define r2f32s(min, size) r2f32((min), (min)+(size)) #define r2f32p(x, y, z, w) r2f32(v2f32((x), (y)), v2f32((z), (w))) internal Rng2F32 rng_2f32(Vec2F32 min, Vec2F32 max); internal Rng2F32 shift_2f32(Rng2F32 r, Vec2F32 x); @@ -682,7 +737,7 @@ internal void rng1u64_list_push_node(Rng1U64List *list, Rng1U64Node *n); internal Rng1U64Node * rng1u64_list_push(Arena *arena, Rng1U64List *list, Rng1U64 rng); internal void rng1u64_list_concat(Rng1U64List *list, Rng1U64List *to_concat); internal Rng1U64Array rng1u64_array_from_list(Arena *arena, Rng1U64List *list); -internal U64 rng_1u64_array_bsearch(Rng1U64Array arr, U64 value); +internal U64 rng1u64_array_num_from_value__binary_search(Rng1U64Array *array, U64 value); internal void rng1s64_list_push(Arena *arena, Rng1S64List *list, Rng1S64 rng); internal Rng1S64Array rng1s64_array_from_list(Arena *arena, Rng1S64List *list); diff --git a/src/base/base_memory.c b/src/base/base_memory.c new file mode 100644 index 00000000..ae447aab --- /dev/null +++ b/src/base/base_memory.c @@ -0,0 +1,2 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/base/base_memory.h b/src/base/base_memory.h new file mode 100644 index 00000000..e73c7afd --- /dev/null +++ b/src/base/base_memory.h @@ -0,0 +1,20 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_MEMORY_H +#define BASE_MEMORY_H + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Memory Allocation + +//- rjf: basic +internal void *reserve_memory(U64 size); +internal B32 commit_memory(void *ptr, U64 size); +internal void decommit_memory(void *ptr, U64 size); +internal void release_memory(void *ptr, U64 size); + +//- rjf: large pages +internal void *reserve_memory_large(U64 size); +internal B32 commit_memory_large(void *ptr, U64 size); + +#endif // BASE_MEMORY_H diff --git a/src/base/base_memory_map.c b/src/base/base_memory_map.c new file mode 100644 index 00000000..23e37ea7 --- /dev/null +++ b/src/base/base_memory_map.c @@ -0,0 +1,36 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Memory Map Functions + +internal void +memory_map_push(Arena *arena, MemoryMap *map, Rng1U64 vaddr_range, void *data) +{ + MemoryMapRangeNode *n = push_array(arena, MemoryMapRangeNode, 1); + n->v.vaddr_range = vaddr_range; + n->v.base = data; + SLLQueuePush(map->first_range, map->last_range, n); +} + +internal U64 +memory_map_read(MemoryMap *map, Rng1U64 range, void *dst) +{ + U64 dst_vaddr = range.min; + { + for(MemoryMapRangeNode *n = map->first_range; n != 0; n = n->next) + { + if(contains_1u64(n->v.vaddr_range, dst_vaddr)) + { + U64 src_off = dst_vaddr - n->v.vaddr_range.min; + U64 num_bytes_possible = n->v.vaddr_range.max - dst_vaddr; + U64 num_bytes_needed = range.max - dst_vaddr; + U64 num_bytes_to_read = Min(num_bytes_needed, num_bytes_possible); + MemoryCopy((U8 *)dst + (dst_vaddr - range.min), (U8 *)n->v.base + src_off, num_bytes_to_read); + dst_vaddr += num_bytes_to_read; + } + } + } + U64 bytes_read = (dst_vaddr - range.min); + return bytes_read; +} diff --git a/src/base/base_memory_map.h b/src/base/base_memory_map.h new file mode 100644 index 00000000..40a5e4fd --- /dev/null +++ b/src/base/base_memory_map.h @@ -0,0 +1,38 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_MEMORY_MAP_H +#define BASE_MEMORY_MAP_H + +//////////////////////////////// +//~ rjf: Memory Map Types + +typedef struct MemoryMapRange MemoryMapRange; +struct MemoryMapRange +{ + Rng1U64 vaddr_range; + void *base; +}; + +typedef struct MemoryMapRangeNode MemoryMapRangeNode; +struct MemoryMapRangeNode +{ + MemoryMapRangeNode *next; + MemoryMapRange v; +}; + +typedef struct MemoryMap MemoryMap; +struct MemoryMap +{ + MemoryMapRangeNode *first_range; + MemoryMapRangeNode *last_range; +}; + +//////////////////////////////// +//~ rjf: Memory Map Functions + +internal void memory_map_push(Arena *arena, MemoryMap *map, Rng1U64 vaddr_range, void *data); +internal U64 memory_map_read(MemoryMap *map, Rng1U64 range, void *dst); +#define memory_map_read_struct(map, vaddr, ptr) memory_map_read((map), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) + +#endif // BASE_MEMORY_MAP_H diff --git a/src/base/base_processes.c b/src/base/base_processes.c new file mode 100644 index 00000000..40c4d4d7 --- /dev/null +++ b/src/base/base_processes.c @@ -0,0 +1,115 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Handle Type Functions + +internal Process +process_zero(void) +{ + Process p = {0}; + return p; +} + +internal B32 +process_match(Process a, Process b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +internal void +process_list_push(Arena *arena, ProcessList *list, Process p) +{ + ProcessNode *n = push_array(arena, ProcessNode, 1); + SLLQueuePush(list->first, list->last, n); + n->v = p; + list->count += 1; +} + +//////////////////////////////// +//~ rjf: Process Launcher Helpers + +internal Process +launch_cmd_line(String8 string) +{ + Temp scratch = scratch_begin(0, 0); + U8 split_chars[] = {' '}; + String8List parts = str8_split(scratch.arena, string, split_chars, ArrayCount(split_chars), 0); + Process process = {0}; + if(parts.node_count != 0) + { + // rjf: unpack exe part + String8 exe = parts.first->string; + String8 exe_folder = str8_chop_last_slash(exe); + if(exe_folder.size == 0) + { + exe_folder = get_current_path(scratch.arena); + } + + // rjf: find stdout delimiter + String8Node *stdout_delimiter_n = 0; + for(String8Node *n = parts.first; n != 0; n = n->next) + { + if(str8_match(n->string, str8_lit(">"), 0)) + { + stdout_delimiter_n = n; + break; + } + } + + // rjf: read stdout path + String8 stdout_path = {0}; + if(stdout_delimiter_n && stdout_delimiter_n->next) + { + stdout_path = stdout_delimiter_n->next->string; + } + + // rjf: open stdout handle + File stdout_handle = {0}; + if(stdout_path.size != 0) + { + File file = file_open(AccessFlag_Write|AccessFlag_Read, stdout_path); + file_close(file); + stdout_handle = file_open(AccessFlag_Write|AccessFlag_Append|AccessFlag_ShareRead|AccessFlag_ShareWrite|AccessFlag_Inherited, stdout_path); + } + + // rjf: form command line + String8List cmdline = {0}; + for(String8Node *n = parts.first; n != stdout_delimiter_n && n != 0; n = n->next) + { + str8_list_push(scratch.arena, &cmdline, n->string); + } + + // rjf: launch + ProcessLaunchParams params = {0}; + params.cmd_line = cmdline; + params.path = exe_folder; + params.inherit_env = 1; + params.stdout_file = stdout_handle; + process = process_launch(¶ms); + + // rjf: close stdout handle + { + if(stdout_path.size != 0) + { + file_close(stdout_handle); + } + } + } + scratch_end(scratch); + return process; +} + +internal Process +launch_cmd_linef(char *fmt, ...) +{ + Temp scratch = scratch_begin(0, 0); + va_list args; + va_start(args, fmt); + String8 string = str8fv(scratch.arena, fmt, args); + Process result = launch_cmd_line(string); + va_end(args); + scratch_end(scratch); + return result; +} diff --git a/src/base/base_processes.h b/src/base/base_processes.h new file mode 100644 index 00000000..ce50a222 --- /dev/null +++ b/src/base/base_processes.h @@ -0,0 +1,91 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_PROCESSES_H +#define BASE_PROCESSES_H + +typedef struct ProcessInfo ProcessInfo; +struct ProcessInfo +{ + U32 pid; + B32 large_pages_allowed; + String8 binary_file_path; + String8 binary_path; + String8 initial_path; + String8 user_program_config_data_path; + String8 user_program_cache_data_path; + String8 user_program_logs_data_path; + String8List module_load_paths; + String8List environment; +}; + +typedef struct Process Process; +struct Process +{ + U64 u64[1]; +}; + +typedef struct ProcessNode ProcessNode; +struct ProcessNode +{ + ProcessNode *next; + Process v; +}; + +typedef struct ProcessList ProcessList; +struct ProcessList +{ + ProcessNode *first; + ProcessNode *last; + U64 count; +}; + +typedef struct ProcessLaunchParams ProcessLaunchParams; +struct ProcessLaunchParams +{ + String8List cmd_line; + String8 path; + String8List env; + B32 inherit_env; + B32 debug_subprocesses; + B32 consoleless; + File stdout_file; + File stderr_file; + File stdin_file; +}; + +//////////////////////////////// +//~ rjf: Handle Type Functions + +internal Process process_zero(void); +internal B32 process_match(Process a, Process b); +internal void process_list_push(Arena *arena, ProcessList *list, Process p); + +//////////////////////////////// +//~ rjf: Process Launcher Helpers + +internal Process launch_cmd_line(String8 string); +internal Process launch_cmd_linef(char *fmt, ...); + +//////////////////////////////// +//~ rjf: @per_os_impl Aborting + +internal void abort_self(U64 exit_code); + +//////////////////////////////// +//~ rjf: @per_os_impl Process Info + +internal ProcessInfo *get_process_info(void); +internal String8 get_current_path(Arena *arena); +internal U32 get_process_start_time_unix(void); + +//////////////////////////////// +//~ rjf: @per_os_impl Child Processes + +internal Process process_launch(ProcessLaunchParams *params); +internal U64 pid_from_process(Process process); +internal B32 process_join(Process process, U64 endt_us, U64 *exit_code_out); +internal void process_detach(Process process); +internal B32 process_kill(Process process); + +#endif // BASE_PROCESSES_H diff --git a/src/base/base_profile.c b/src/base/base_profile.c index 2216a282..c614f08e 100644 --- a/src/base/base_profile.c +++ b/src/base/base_profile.c @@ -24,7 +24,7 @@ spall_begin(char *fmt, ...) va_list args; va_start(args, fmt); String8 string = push_str8fv(scratch.arena, fmt, args); - spall_buffer_begin_ex(&spall_profile, &spall_buffer, string.str, string.size, os_now_microseconds(), spall_tid, spall_pid); + spall_buffer_begin_ex(&spall_profile, &spall_buffer, string.str, string.size, now_time_us(), spall_tid, spall_pid); va_end(args); scratch_end(scratch); } diff --git a/src/base/base_profile.h b/src/base/base_profile.h index 6ef4a046..ed11cfa2 100644 --- a/src/base/base_profile.h +++ b/src/base/base_profile.h @@ -79,7 +79,7 @@ thread_static U32 spall_pid = 0; internal inline void spall_begin(char *fmt, ...); # define ProfBegin(...) (spall_capturing ? (spall_begin(__VA_ARGS__), 0) : 0) # define ProfBeginDynamic(...) (spall_capturing ? (spall_begin(__VA_ARGS__), 0) : 0) -# define ProfEnd(...) (spall_capturing ? (spall_buffer_end_ex(&spall_profile, &spall_buffer, os_now_microseconds(), spall_tid, spall_pid)), 0 : 0) +# define ProfEnd(...) (spall_capturing ? (spall_buffer_end_ex(&spall_profile, &spall_buffer, now_time_us(), spall_tid, spall_pid)), 0 : 0) # define ProfTick(...) # define ProfIsCapturing(...) (!!spall_capturing) # define ProfBeginCapture(...) (spall_capturing = 1) diff --git a/src/base/base_ring.c b/src/base/base_ring.c new file mode 100644 index 00000000..d43f0955 --- /dev/null +++ b/src/base/base_ring.c @@ -0,0 +1,135 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Ring Functions + +internal Ring * +make_ring(Arena *arena, U64 size) +{ + Ring *ring = push_array(arena, Ring, 1); + ring->size = size; + ring->base = push_array(arena, U8, ring->size); + return ring; +} + +internal B32 +ring_try_write(Ring *ring, U64 size, void *ptr) +{ + U64 bytes_unconsumed = (ring->write_pos - ring->read_pos); + U64 bytes_available = ring->size - bytes_unconsumed; + B32 result = 0; + if(bytes_available >= size) + { + result = 1; + ring->write_pos += wrapped_write(ring->base, ring->size, ring->write_pos, ptr, size); + } + return result; +} + +internal B32 +ring_try_read(Ring *ring, U64 size, void *ptr) +{ + U64 bytes_unconsumed = (ring->write_pos - ring->read_pos); + B32 result = 0; + if(bytes_unconsumed >= size) + { + result = 1; + ring->read_pos += wrapped_read(ring->base, ring->size, ring->read_pos, ptr, size); + } + return result; +} + +//////////////////////////////// +//~ rjf: Guarded Ring Functions + +internal GuardedRing * +guarded_ring_alloc(Arena *arena, U64 size) +{ + GuardedRing *gr = push_array(arena, GuardedRing, 1); + gr->ring = make_ring(arena, size); + gr->mutex = mutex_alloc(); + gr->cv = cond_var_alloc(); + return gr; +} + +internal void +guarded_ring_release(GuardedRing *ring) +{ + mutex_release(ring->mutex); + cond_var_release(ring->cv); +} + +internal RingGuard +guarded_ring_open(GuardedRing *ring) +{ + RingGuard guard = {ring}; + mutex_take(ring->mutex); + return guard; +} + +internal void +guarded_ring_close(RingGuard *guard) +{ + mutex_drop(guard->r->mutex); +} + +internal B32 +guarded_ring_try_write(RingGuard *guard, U64 size, void *ptr) +{ + B32 result = ring_try_write(guard->r->ring, size, ptr); + if(result) + { + cond_var_broadcast(guard->r->cv); + } + return result; +} + +internal B32 +guarded_ring_try_read(RingGuard *guard, U64 size, void *ptr) +{ + B32 result = ring_try_read(guard->r->ring, size, ptr); + if(result) + { + cond_var_broadcast(guard->r->cv); + } + return result; +} + +internal B32 +guarded_ring_write_or_wait(RingGuard *guard, U64 size, void *ptr, U64 endt_us) +{ + B32 write_good = 0; + for(;!write_good;) + { + write_good = guarded_ring_try_write(guard, size, ptr); + if(now_time_us() >= endt_us) + { + break; + } + if(!write_good) + { + cond_var_wait(guard->r->cv, guard->r->mutex, endt_us); + } + } + return write_good; +} + +internal B32 +guarded_ring_read_or_wait(RingGuard *guard, U64 size, void *ptr, U64 endt_us) +{ + B32 read_good = 0; + for(;!read_good;) + { + read_good = guarded_ring_try_read(guard, size, ptr); + if(now_time_us() >= endt_us) + { + break; + } + if(!read_good) + { + cond_var_wait(guard->r->cv, guard->r->mutex, endt_us); + } + } + return read_good; +} diff --git a/src/base/base_ring.h b/src/base/base_ring.h new file mode 100644 index 00000000..59b07b86 --- /dev/null +++ b/src/base/base_ring.h @@ -0,0 +1,56 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_RING_H +#define BASE_RING_H + +typedef struct Ring Ring; +struct Ring +{ + U8 *base; + U64 size; + U64 write_pos; + U64 read_pos; +}; + +typedef struct GuardedRing GuardedRing; +struct GuardedRing +{ + Ring *ring; + Mutex mutex; + CondVar cv; +}; + +typedef struct RingGuard RingGuard; +struct RingGuard +{ + GuardedRing *r; +}; + +//////////////////////////////// +//~ rjf: Ring Functions + +internal Ring *make_ring(Arena *arena, U64 size); +internal B32 ring_try_write(Ring *ring, U64 size, void *ptr); +internal B32 ring_try_read(Ring *ring, U64 size, void *ptr); +#define ring_try_write_struct(ring, ptr) ring_try_write((ring), sizeof(*(ptr)), (ptr)) +#define ring_try_read_struct(ring, ptr) ring_try_read((ring), sizeof(*(ptr)), (ptr)) + +//////////////////////////////// +//~ rjf: Guarded Ring Functions + +internal GuardedRing *guarded_ring_alloc(Arena *arena, U64 size); +internal void guarded_ring_release(GuardedRing *ring); +internal RingGuard guarded_ring_open(GuardedRing *ring); +internal void guarded_ring_close(RingGuard *guard); +internal B32 guarded_ring_try_write(RingGuard *guard, U64 size, void *ptr); +internal B32 guarded_ring_try_read(RingGuard *guard, U64 size, void *ptr); +#define guarded_ring_try_write_struct(ring, ptr) guarded_ring_try_write((ring), sizeof(*(ptr)), (ptr)) +#define guarded_ring_try_read_struct(ring, ptr) guarded_ring_try_read((ring), sizeof(*(ptr)), (ptr)) +internal B32 guarded_ring_write_or_wait(RingGuard *guard, U64 size, void *ptr, U64 endt_us); +internal B32 guarded_ring_read_or_wait(RingGuard *guard, U64 size, void *ptr, U64 endt_us); +#define guarded_ring_write_struct_or_wait(ring, ptr, endt_us) guarded_ring_write_or_wait((ring), sizeof(*(ptr)), (ptr), (endt_us)) +#define guarded_ring_read_struct_or_wait(ring, ptr, endt_us) guarded_ring_read_or_wait((ring), sizeof(*(ptr)), (ptr), (endt_us)) +#define guarded_ring_write_string_or_wait(ring, string, endt_us) guarded_ring_write_or_wait((ring), (string).size, (string).str, (endt_us)) + +#endif // BASE_RING_H diff --git a/src/base/base_shared_memory.c b/src/base/base_shared_memory.c new file mode 100644 index 00000000..ae447aab --- /dev/null +++ b/src/base/base_shared_memory.c @@ -0,0 +1,2 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/base/base_shared_memory.h b/src/base/base_shared_memory.h new file mode 100644 index 00000000..ec288d86 --- /dev/null +++ b/src/base/base_shared_memory.h @@ -0,0 +1,22 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_SHARED_MEMORY_H +#define BASE_SHARED_MEMORY_H + +typedef struct SharedMemory SharedMemory; +struct SharedMemory +{ + U64 u64[1]; +}; + +//////////////////////////////// +//~ rjf: @per_os_impl Shared Memory + +internal SharedMemory shared_memory_alloc(U64 size, String8 name); +internal SharedMemory shared_memory_open(String8 name); +internal void shared_memory_close(SharedMemory handle); +internal void * shared_memory_view_open(SharedMemory handle, Rng1U64 range); +internal void shared_memory_view_close(SharedMemory handle, void *ptr, Rng1U64 range); + +#endif // BASE_SHARED_MEMORY_H diff --git a/src/base/base_strings.c b/src/base/base_strings.c index 7c39715d..aa65537d 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -1,6 +1,14 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// + +#ifndef MEM_STATIC +# define MEM_STATIC +# define MEM_API ASAN_NO_ADDR static inline +# include "third_party/martins_memfun/memfun.h" +#endif + //////////////////////////////// //~ rjf: Character Classification & Conversion Functions @@ -211,12 +219,9 @@ str32_cstring(U32 *c) internal String8 str8_cstring_capped(void *cstr, void *cap) { - char *ptr = (char *)cstr; - char *opl = (char *)cap; - for (;ptr < opl && *ptr != 0; ptr += 1); - U64 size = (U64)(ptr - (char *)cstr); - String8 result = str8((U8*)cstr, size); - return result; + U64 cap_size = (U64)((U8 *)cap - (U8 *)cstr); + U64 size = MemFind(cstr, cap_size, 0); + return str8(cstr, size); } internal String16 @@ -230,24 +235,6 @@ str16_cstring_capped(void *cstr, void *cap) return result; } -internal String8 -str8_cstring_capped_reverse(void *raw_start, void *raw_cap) -{ - U8 *start = raw_start; - U8 *ptr = raw_cap; - for(; ptr > start; ) - { - ptr -= 1; - if (*ptr == '\0') - { - break; - } - } - U64 size = (U64)(ptr - start); - String8 result = str8(start, size); - return result; -} - //////////////////////////////// //~ rjf: String Stylization @@ -293,7 +280,11 @@ str8_match(String8 a, String8 b, StringMatchFlags flags) B32 result = 0; if(a.size == b.size && flags == 0) { - result = MemoryMatch(a.str, b.str, b.size); + result = MemIsEqual(a.str, b.str, b.size); + } + else if (a.size == b.size && flags == StringMatchFlag_CaseInsensitive) + { + result = MemCompareI(a.str, b.str, a.size) == 0; } else if(a.size == b.size || (flags & StringMatchFlag_RightSideSloppy)) { @@ -325,6 +316,88 @@ str8_match(String8 a, String8 b, StringMatchFlags flags) return result; } +internal B32 +str8_char_match(U8 a, U8 b, StringMatchFlags flags) +{ + U8 at = a; + U8 bt = b; + if (flags & StringMatchFlag_CaseInsensitive) { + at = upper_from_char(at); + bt = upper_from_char(bt); + } + if (flags & StringMatchFlag_SlashInsensitive) { + if (at == '\\') { at = '/'; } + if (bt == '\\') { bt = '/'; } + } + return (at == bt); +} + +internal B32 +str8_match_wildcard(String8 string, String8 pattern, StringMatchFlags flags) +{ + B32 matched = 0; + + U64 pattern_cursor = 0; + U64 string_cursor = 0; + + U64 pattern_start = max_U64; + U64 string_start = 0; + + for (;;) { + if (pattern_cursor == pattern.size) { + if (string_cursor == string.size || (flags & StringMatchFlag_RightSideSloppy)) { + matched = 1; + break; + } + } + + if (string_cursor == string.size) { + while (pattern_cursor < pattern.size && pattern.str[pattern_cursor] == '*') { + pattern_cursor += 1; + } + matched = (pattern_cursor == pattern.size); + break; + } + + if (pattern_cursor < pattern.size && pattern.str[pattern_cursor] == '*') { + pattern_start = pattern_cursor; + string_start = string_cursor; + pattern_cursor += 1; + continue; + } + + + if (pattern_cursor < pattern.size && (pattern.str[pattern_cursor] == '?' || str8_char_match(string.str[string_cursor], pattern.str[pattern_cursor], flags))) { + string_cursor += 1; + pattern_cursor += 1; + continue; + } + + if (pattern_start != max_U64) { + pattern_cursor = pattern_start + 1; + string_start += 1; + string_cursor = string_start; + continue; + } + + break; + } + + return matched; +} + +internal B32 +str8_starts_with(String8 string, String8 expected_prefix) +{ + return str8_match(str8_prefix(string, expected_prefix.size), expected_prefix, 0); +} + +internal B32 +str8_starts_withi(String8 string, String8 expected_prefix) +{ + return str8_match(str8_prefix(string, expected_prefix.size), expected_prefix, StringMatchFlag_CaseInsensitive); +} + internal U64 str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags) { @@ -341,6 +414,10 @@ str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags { needle_first_char_adjusted = upper_from_char(needle_first_char_adjusted); } + if(adjusted_flags & StringMatchFlag_SlashInsensitive) + { + needle_first_char_adjusted = correct_slash_from_char(needle_first_char_adjusted); + } for(;p < stop_p; p += 1) { U8 haystack_char_adjusted = *p; @@ -348,6 +425,10 @@ str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags { haystack_char_adjusted = upper_from_char(haystack_char_adjusted); } + if(adjusted_flags & StringMatchFlag_SlashInsensitive) + { + haystack_char_adjusted = correct_slash_from_char(haystack_char_adjusted); + } if(haystack_char_adjusted == needle_first_char_adjusted) { if(str8_match(str8_range(p + 1, string_opl), needle_tail, adjusted_flags)) @@ -454,6 +535,18 @@ str8_chop(String8 str, U64 amt) return str; } +internal String8 +str8_chop_line(String8 *str) +{ + U64 new_line_pos = str8_find_needle(*str, 0, str8_lit("\n"), 0); + String8 line = str8_prefix(*str, new_line_pos); + if (str8_ends_with(line, str8_lit("\r"), 0)) { + line = str8_chop(line, 1); + } + *str = str8_skip(*str, new_line_pos + 1); + return line; +} + internal String8 str8_skip_chop_whitespace(String8 string) { @@ -616,6 +709,22 @@ str8_is_integer(String8 string, U32 radix) return result; } +internal B32 +str8_is_integer_signed(String8 string, U32 radix) +{ + B32 result = 0; + String8 sign = str8_prefix(string, 1); + if(str8_match(sign, str8_lit("-"), 0)) + { + result = str8_is_integer(str8_skip(string, 1), radix); + } + else + { + result = str8_is_integer(string, radix); + } + return result; +} + internal U64 u64_from_str8(String8 string, U32 radix) { @@ -715,7 +824,7 @@ str8_from_memory_size(Arena *arena, U64 size) { if(size < KB(1)) { - result = push_str8f(arena, "%llu Bytes", size); + result = push_str8f(arena, "%llu byte%s", size, size == 1 ? "" : "s"); } else if(size < MB(1)) { @@ -1062,26 +1171,19 @@ str8_list_concat_in_place(String8List *list, String8List *to_push) } internal String8Node* -str8_list_push_aligner(Arena *arena, String8List *list, U64 min, U64 align){ - String8Node *node = push_array_no_zero(arena, String8Node, 1); - U64 new_size = list->total_size + min; - U64 increase_size = 0; - if (align > 1){ - // NOTE(allen): assert is power of 2 - Assert(((align - 1) & align) == 0); - U64 mask = align - 1; - new_size += mask; - new_size &= (~mask); - increase_size = new_size - list->total_size; +str8_list_push_aligner(Arena *arena, String8List *list, U64 min, U64 align) +{ + read_only local_persist U8 zeroes[64] = {0}; + Assert(IsPow2OrZero(align)); + U64 pad = Max(min, AlignPadPow2(list->total_size, align)); + if(pad < sizeof(zeroes)) + { + return str8_list_push(arena, list, str8(zeroes, pad)); + } + else + { + return str8_list_push(arena, list, str8(push_array(arena, U8, pad), pad)); } - local_persist const U8 zeroes_buffer[64] = {0}; - Assert(increase_size <= ArrayCount(zeroes_buffer)); - SLLQueuePush(list->first, list->last, node); - list->node_count += 1; - list->total_size = new_size; - node->string.str = (U8*)zeroes_buffer; - node->string.size = increase_size; - return(node); } internal String8Node* @@ -1106,6 +1208,21 @@ str8_list_push_frontf(Arena *arena, String8List *list, char *fmt, ...) return result; } +internal String8Node* +str8_list_pop_front(String8List *list) +{ + String8Node *node = 0; + if(list->node_count) + { + node = list->first; + Assert(list->total_size >= list->first->string.size); + list->node_count -= 1; + list->total_size -= list->first->string.size; + SLLQueuePop(list->first, list->last); + } + return node; +} + internal String8List str8_list_copy(Arena *arena, String8List *list) { @@ -1119,6 +1236,42 @@ str8_list_copy(Arena *arena, String8List *list) return result; } +internal String8List +str8_list_substr(Arena *arena, String8List list, Rng1U64 range) +{ + String8List result = {0}; + + String8Node *n = list.first; + + U64 front_min = 0; + { + U64 cursor = 0; + for (; n != 0; cursor += n->string.size, n = n->next) { + if (cursor + n->string.size > range.min) { + front_min = range.min - cursor; + break; + } + } + } + + if (front_min > 0) { + U64 front_max = front_min + Min(dim_1u64(range), n->string.size); + str8_list_push(arena, &result, str8_substr(n->string, r1u64(front_min, front_max))); + n = n->next; + } + + for (; n != 0; n = n->next) { + if (result.total_size >= dim_1u64(range)) { + break; + } + U64 copy_max = dim_1u64(range) - result.total_size; + U64 copy_size = Min(copy_max, n->string.size); + str8_list_push(arena, &result, str8_substr(n->string, r1u64(0, copy_size))); + } + + return result; +} + //////////////////////////////// //~ rjf: String Splitting & Joining @@ -1313,6 +1466,31 @@ str8_from_version(Arena *arena, U64 version) //////////////////////////////// //~ rjf: String Path Helpers +internal String8 +program_ext_postfix_from_os(OperatingSystem os, B32 require_ext) +{ + String8 result = {0}; + switch(os) + { + default:{}break; + case OperatingSystem_Windows: + { + result = s(".exe"); + }break; + case OperatingSystem_Linux: + if(require_ext) + { + result = s(".elf"); + }break; + case OperatingSystem_Mac: + if(require_ext) + { + result = s(".macho"); + }break; + } + return result; +} + internal String8 str8_chop_last_slash(String8 string) { @@ -2222,24 +2400,35 @@ string_from_elapsed_time(Arena *arena, DateTime dt) { Temp scratch = scratch_begin(&arena, 1); String8List list = {0}; - if(dt.year) - { + if (dt.year) { str8_list_pushf(scratch.arena, &list, "%dy", dt.year); str8_list_pushf(scratch.arena, &list, "%um", dt.mon); str8_list_pushf(scratch.arena, &list, "%ud", dt.day); - } - else if(dt.mon) - { + } else if (dt.mon) { str8_list_pushf(scratch.arena, &list, "%um", dt.mon); str8_list_pushf(scratch.arena, &list, "%ud", dt.day); - } - else if (dt.day) - { + } else if (dt.day) { str8_list_pushf(scratch.arena, &list, "%ud", dt.day); } - str8_list_pushf(scratch.arena, &list, "%u:%u:%u:%u ms", dt.hour, dt.min, dt.sec, dt.msec); - StringJoin join = { str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }; - String8 result = str8_list_join(arena, &list, &join); + + if (dt.hour) { + str8_list_pushf(scratch.arena, &list, "%uh %um %u.%us", dt.hour, dt.min, dt.sec, dt.msec); + } else if (dt.min) { + str8_list_pushf(scratch.arena, &list, "%um %u.%us", dt.min, dt.sec, dt.msec); + } else if (dt.sec) { + str8_list_pushf(scratch.arena, &list, "%u.%us", dt.sec, dt.msec); + } else if (dt.msec) { + str8_list_pushf(scratch.arena, &list, "%ums", dt.msec); + } else if (dt.micro_sec) { + str8_list_pushf(scratch.arena, &list, "%uus", dt.micro_sec); + } + + if (list.node_count == 0) { + str8_list_pushf(scratch.arena, &list, "0"); + } + + String8 result = str8_list_join(arena, &list, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); + scratch_end(scratch); return result; } @@ -2606,16 +2795,18 @@ fuzzy_match_range_list_copy(Arena *arena, FuzzyMatchRangeList *src) //~ NOTE(allen): Serialization Helpers internal void -str8_serial_begin(Arena *arena, String8List *srl){ +str8_serial_begin(Arena *arena, String8List *srl) +{ String8Node *node = push_array(arena, String8Node, 1); node->string.str = push_array_no_zero(arena, U8, 0); - srl->first = srl->last = node; + srl->first = srl->last = node; srl->node_count = 1; srl->total_size = 0; } internal String8 -str8_serial_end(Arena *arena, String8List *srl){ +str8_serial_end(Arena *arena, String8List *srl) +{ U64 size = srl->total_size; U8 *out = push_array_no_zero(arena, U8, size); str8_serial_write_to_dst(srl, out); @@ -2624,19 +2815,20 @@ str8_serial_end(Arena *arena, String8List *srl){ } internal void -str8_serial_write_to_dst(String8List *srl, void *out){ +str8_serial_write_to_dst(String8List *srl, void *out) +{ U8 *ptr = (U8*)out; - for (String8Node *node = srl->first; - node != 0; - node = node->next){ - U64 size = node->string.size; - MemoryCopy(ptr, node->string.str, size); + for EachNode(n, String8Node, srl->first) + { + U64 size = n->string.size; + MemoryCopy(ptr, n->string.str, size); ptr += size; } } internal U64 -str8_serial_push_align(Arena *arena, String8List *srl, U64 align){ +str8_serial_push_align(Arena *arena, String8List *srl, U64 align) +{ Assert(IsPow2(align)); U64 pos = srl->total_size; @@ -2648,11 +2840,13 @@ str8_serial_push_align(Arena *arena, String8List *srl, U64 align){ U8 *buf = push_array(arena, U8, size); String8 *str = &srl->last->string; - if (str->str + str->size == buf){ + if(str->str + str->size == buf) + { srl->last->string.size += size; srl->total_size += size; } - else{ + else + { str8_list_push(arena, srl, str8(buf, size)); } } @@ -2665,13 +2859,15 @@ str8_serial_push_size(Arena *arena, String8List *srl, U64 size) void *result = 0; if(size != 0) { - U8 *buf = push_array_no_zero(arena, U8, size); + U8 *buf = push_array(arena, U8, size); String8 *str = &srl->last->string; - if (str->str + str->size == buf){ + if(str->str + str->size == buf) + { srl->last->string.size += size; srl->total_size += size; } - else{ + else + { str8_list_push(arena, srl, str8(buf, size)); } result = buf; @@ -2680,7 +2876,8 @@ str8_serial_push_size(Arena *arena, String8List *srl, U64 size) } internal void * -str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size){ +str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size) +{ void *result = str8_serial_push_size(arena, srl, size); if(result != 0) { @@ -2690,61 +2887,50 @@ str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size){ } internal void -str8_serial_push_data_list(Arena *arena, String8List *srl, String8Node *first){ - for (String8Node *node = first; - node != 0; - node = node->next){ - str8_serial_push_data(arena, srl, node->string.str, node->string.size); +str8_serial_push_data_list(Arena *arena, String8List *srl, String8Node *first) +{ + for EachNode(n, String8Node, first) + { + str8_serial_push_data(arena, srl, n->string.str, n->string.size); } } -internal void -str8_serial_push_u64(Arena *arena, String8List *srl, U64 x){ - U8 *buf = push_array_no_zero(arena, U8, 8); - MemoryCopy(buf, &x, 8); - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += 8; - srl->total_size += 8; - } - else{ - str8_list_push(arena, srl, str8(buf, 8)); - } +internal void * +str8_serial_push_u64(Arena *arena, String8List *srl, U64 x) +{ + return str8_serial_push_data(arena, srl, &x, sizeof(x)); } -internal void -str8_serial_push_u32(Arena *arena, String8List *srl, U32 x){ - U8 *buf = push_array_no_zero(arena, U8, 4); - MemoryCopy(buf, &x, 4); - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += 4; - srl->total_size += 4; - } - else{ - str8_list_push(arena, srl, str8(buf, 4)); - } +internal void * +str8_serial_push_u32(Arena *arena, String8List *srl, U32 x) +{ + return str8_serial_push_data(arena, srl, &x, sizeof(x)); } -internal void -str8_serial_push_u16(Arena *arena, String8List *srl, U16 x){ - str8_serial_push_data(arena, srl, &x, sizeof(x)); +internal void * +str8_serial_push_u16(Arena *arena, String8List *srl, U16 x) +{ + return str8_serial_push_data(arena, srl, &x, sizeof(x)); } -internal void -str8_serial_push_u8(Arena *arena, String8List *srl, U8 x){ - str8_serial_push_data(arena, srl, &x, sizeof(x)); +internal void * +str8_serial_push_u8(Arena *arena, String8List *srl, U8 x) +{ + return str8_serial_push_data(arena, srl, &x, sizeof(x)); } -internal void -str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str){ - str8_serial_push_data(arena, srl, str.str, str.size); +internal void * +str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str) +{ + void *ptr = str8_serial_push_data(arena, srl, str.str, str.size); str8_serial_push_u8(arena, srl, 0); + return ptr; } -internal void -str8_serial_push_string(Arena *arena, String8List *srl, String8 str){ - str8_serial_push_data(arena, srl, str.str, str.size); +internal void * +str8_serial_push_string(Arena *arena, String8List *srl, String8 str) +{ + return str8_serial_push_data(arena, srl, str.str, str.size); } //////////////////////////////// @@ -2822,76 +3008,242 @@ str8_deserial_read_block(String8 string, U64 off, U64 size, String8 *block_out) return block_out->size; } +internal U64 +str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out) +{ + U64 value = 0; + U64 shift = 0; + U64 cursor = off; + for(;;) + { + U8 byte = 0; + U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); + if(bytes_read != sizeof(byte)) + { + break; + } + U8 val = byte & 0x7fu; + value |= ((U64)val) << shift; + cursor += bytes_read; + shift += 7u; + if((byte & 0x80u) == 0) + { + break; + } + } + if(value_out != 0) + { + *value_out = value; + } + U64 bytes_read = cursor - off; + return bytes_read; +} + +internal U64 +str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out) +{ + U64 value = 0; + U64 shift = 0; + U64 cursor = off; + for(;;) + { + U8 byte; + U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); + if(bytes_read != sizeof(byte)) + { + break; + } + U8 val = byte & 0x7fu; + value |= ((U64)val) << shift; + cursor += bytes_read; + shift += 7u; + if((byte & 0x80u) == 0) + { + if(shift < sizeof(value) * 8 && (byte & 0x40u) != 0) + { + value |= -(S64)(1ull << shift); + } + break; + } + } + if(value_out != 0) + { + *value_out = value; + } + U64 bytes_read = cursor - off; + return bytes_read; +} + //////////////////////////////// -internal int +force_inline int str8_compar(String8 a, String8 b, B32 ignore_case) { - int cmp = 0; U64 size = Min(a.size, b.size); - if (ignore_case) { - for (U64 i = 0; i < size; ++i) { - U8 la = lower_from_char(a.str[i]); - U8 lb = lower_from_char(b.str[i]); - if (la < lb) { - cmp = -1; - break; - } else if (la > lb) { - cmp = +1; - break; - } - } - } else { - for (U64 i = 0; i < size; ++i) { - if (a.str[i] < b.str[i]) { - cmp = -1; - break; - } else if (a.str[i] > b.str[i]) { - cmp = +1; - break; - } - } - } - - if (cmp == 0) { - // shorter prefix must precede longer prefixes - if (a.size > b.size) { - cmp = +1; - } else if (b.size > a.size) { - cmp = -1; - } + int cmp = ignore_case ? MemCompareI(a.str, b.str, size) : MemCompare(a.str, b.str, size); + + // normalize compar result + cmp = cmp > 0 ? 1 : cmp < 0 ? -1 : 0; + + // shorter prefix must precede longer prefixes + if (cmp == 0) + { + cmp = a.size < b.size ? -1 : + a.size > b.size ? +1 : 0; } return cmp; } -internal int str8_compar_ignore_case(const void *a, const void *b) +force_inline int +str8_compar_ignore_case(const void *a, const void *b) { return str8_compar(*(String8*)a, *(String8*)b, 1); } -internal int +force_inline int str8_compar_case_sensitive(const void *a, const void *b) { return str8_compar(*(String8*)a, *(String8*)b, 0); } -internal int +force_inline int str8_is_before_case_sensitive(const void *a, const void *b) { int cmp = str8_compar_case_sensitive(a, b); return cmp < 0; } +//////////////////////////////// +// string buffer + +internal B32 +str8_buffer_skip(String8Node *buf, U64 *pos, U64 skip) +{ + S64 to_skip; + for (to_skip = skip; to_skip > 0;) { + if (buf == 0) { break; } + + U64 left = Min(to_skip, buf->string.size - *pos); + *pos += left; + + if (*pos == buf->string.size) { + if (buf->next) { *buf = *buf->next; } + else { *buf = (String8Node){0}; buf = 0; } + *pos = 0; + } + + to_skip -= (S64)left; + } + Assert(to_skip == 0); + return (to_skip == 0); +} + +internal U64 +str8_buffer_read(String8Node *buf, U64 *pos, U64 read_size, void *out) +{ + U64 cursor = 0; + for (; cursor < read_size ;) { + if (buf == 0) { break; } + + U64 copy_size = Min(read_size - cursor, (buf->string.size - *pos)); + void *dst = (U8 *)out + cursor; + void *src = buf->string.str + *pos; + MemoryCopy(dst, src, copy_size); + + *pos += copy_size; + cursor += copy_size; + + if (*pos >= buf->string.size) { + if (buf->next) { *buf = *buf->next; } + else { *buf = (String8Node){0}; buf = 0; } + *pos = 0; + } + } + return cursor; +} + +internal U64 +str8_buffer_peek(String8Node *buf, U64 *pos, U64 read_size, void *out) +{ + String8Node buf_copy = *buf; + U64 pos_copy = *pos; + return str8_buffer_read(&buf_copy, &pos_copy, read_size, out); +} + +internal U64 +str8_buffer_write(String8Node *buf, U64 *pos, String8 data) +{ + U64 copy_size = 0; + if (buf) { + for (copy_size = 0; copy_size < data.size; ) { + U64 data_size = data.size - copy_size; + + U64 available_size = buf->string.size - *pos; + U64 to_copy = Min(available_size, data_size); + if (data.str == 0) { + MemorySet(buf->string.str + *pos, 0, to_copy); + } else { + U8 *data_ptr = data.str + copy_size; + MemoryCopy(buf->string.str + *pos, data_ptr, to_copy); + } + *pos += to_copy; + copy_size += to_copy; + + if (*pos >= buf->string.size) { + if (buf->next) { + *buf = *buf->next; + *pos = 0; + } else { + break; + } + } + } + Assert(copy_size == data.size); + } else { + copy_size = data.size; + } + return copy_size; +} + +internal U64 +str8_buffer_write_u16(String8Node *buf, U64 *pos, U16 v) +{ + return str8_buffer_write(buf, pos, str8_struct(&v)); +} + +internal U64 +str8_buffer_write_u32(String8Node *buf, U64 *pos, U32 v) +{ + return str8_buffer_write(buf, pos, str8_struct(&v)); +} + +internal U64 +str8_buffer_write_zeroes(String8Node *buf, U64 *pos, U64 size) +{ + return str8_buffer_write(buf, pos, str8(0, size)); +} + +internal U64 +str8_buffer_write_string_list(String8Node *buf, U64 *pos, String8List list) +{ + U64 copy_size = 0; + for EachNode(n, String8Node, list.first) { copy_size += str8_buffer_write(buf, pos, n->string); } + return copy_size; +} + //////////////////////////////// //~ rjf: Basic String Hashes +#pragma push_macro("__cpuid") +#undef __cpuid #if !defined(XXH_IMPLEMENTATION) # define XXH_INLINE_ALL # define XXH_IMPLEMENTATION # define XXH_STATIC_LINKING_ONLY # include "third_party/xxHash/xxhash.h" #endif +#pragma pop_macro("__cpuid") internal U64 u64_hash_from_seed_str8(U64 seed, String8 string) diff --git a/src/base/base_strings.h b/src/base/base_strings.h index 5a14e3dc..84cd6aa0 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -160,8 +160,11 @@ internal U64 cstring32_length(U32 *c); //////////////////////////////// //~ rjf: String Constructors +#define s(S) str8_lit(S) + #define str8_lit(S) str8((U8*)(S), sizeof(S) - 1) #define str8_lit_comp(S) {(U8*)(S), sizeof(S) - 1,} +#define str8_lit_cstr(S) str8((U8*)(S), sizeof(S)) #define str8_varg(S) (int)((S).size), ((S).str) #define str8_array(S,C) str8((U8*)(S), sizeof(*(S))*(C)) @@ -182,7 +185,6 @@ internal String16 str16_cstring(U16 *c); internal String32 str32_cstring(U32 *c); internal String8 str8_cstring_capped(void *cstr, void *cap); internal String16 str16_cstring_capped(void *cstr, void *cap); -internal String8 str8_cstring_capped_reverse(void *raw_start, void *raw_cap); //////////////////////////////// //~ rjf: String Stylization @@ -197,6 +199,10 @@ internal String8 backslashed_from_str8(Arena *arena, String8 string); #define str8_match_lit(a_lit, b, flags) str8_match(str8_lit(a_lit), (b), (flags)) #define str8_match_cstr(a_cstr, b, flags) str8_match(str8_cstring(a_cstr), (b), (flags)) internal B32 str8_match(String8 a, String8 b, StringMatchFlags flags); +#define str8_matchi(a, b) str8_match(a, b, StringMatchFlag_CaseInsensitive) +internal B32 str8_match_wildcard(String8 string, String8 pattern, StringMatchFlags flags); +internal B32 str8_starts_with(String8 string, String8 expected_prefix); +internal B32 str8_starts_withi(String8 string, String8 expected_prefix); internal U64 str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags); internal U64 str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags); internal B32 str8_is_before(String8 a, String8 b); @@ -210,6 +216,7 @@ internal String8 str8_prefix(String8 str, U64 size); internal String8 str8_skip(String8 str, U64 amt); internal String8 str8_postfix(String8 str, U64 size); internal String8 str8_chop(String8 str, U64 amt); +internal String8 str8_chop_line(String8 *str); internal String8 str8_skip_chop_whitespace(String8 string); internal String8 str8_skip_chop_slashes(String8 string); @@ -233,6 +240,7 @@ internal String8 push_cstr(Arena *arena, String8 str); // TODO(rjf): this is unn //- rjf: string -> integer internal S64 sign_from_str8(String8 string, String8 *string_tail); internal B32 str8_is_integer(String8 string, U32 radix); +internal B32 str8_is_integer_signed(String8 string, U32 radix); internal U64 u64_from_str8(String8 string, U32 radix); internal S64 s64_from_str8(String8 string, U32 radix); internal U32 u32_from_str8(String8 string, U32 radix); @@ -266,7 +274,9 @@ internal void str8_list_concat_in_place(String8List *list, String8List * internal String8Node* str8_list_push_aligner(Arena *arena, String8List *list, U64 min, U64 align); internal String8Node* str8_list_pushf(Arena *arena, String8List *list, char *fmt, ...); internal String8Node* str8_list_push_frontf(Arena *arena, String8List *list, char *fmt, ...); +internal String8Node* str8_list_pop_front(String8List *list); internal String8List str8_list_copy(Arena *arena, String8List *list); +internal String8List str8_list_substr(Arena *arena, String8List list, Rng1U64 range); #define str8_list_first(list) ((list)->first ? (list)->first->string : str8_zero()) //////////////////////////////// @@ -312,6 +322,8 @@ g_path_style_map[] = { str8_lit_comp("system"), PathStyle_SystemAbsolute }, }; +internal String8 program_ext_postfix_from_os(OperatingSystem os, B32 require_ext); + internal String8 str8_chop_last_slash(String8 string); internal String8 str8_skip_last_slash(String8 string); internal String8 str8_chop_last_dot(String8 string); @@ -422,13 +434,12 @@ internal U64 str8_serial_push_align(Arena *arena, String8List *srl, U64 alig internal void * str8_serial_push_size(Arena *arena, String8List *srl, U64 size); internal void * str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size); internal void str8_serial_push_data_list(Arena *arena, String8List *srl, String8Node *first); -internal void str8_serial_push_u64(Arena *arena, String8List *srl, U64 x); -internal void str8_serial_push_u32(Arena *arena, String8List *srl, U32 x); -internal void str8_serial_push_u16(Arena *arena, String8List *srl, U16 x); -internal void str8_serial_push_u8(Arena *arena, String8List *srl, U8 x); -internal void str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); -internal void str8_serial_push_string(Arena *arena, String8List *srl, String8 str); -internal void str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); +internal void * str8_serial_push_u64(Arena *arena, String8List *srl, U64 x); +internal void * str8_serial_push_u32(Arena *arena, String8List *srl, U32 x); +internal void * str8_serial_push_u16(Arena *arena, String8List *srl, U16 x); +internal void * str8_serial_push_u8(Arena *arena, String8List *srl, U8 x); +internal void * str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); +internal void * str8_serial_push_string(Arena *arena, String8List *srl, String8 str); #define str8_serial_push_array(arena, srl, ptr, count) str8_serial_push_data(arena, srl, ptr, sizeof(*(ptr)) * (count)) #define str8_serial_push_struct(arena, srl, ptr) str8_serial_push_array(arena, srl, ptr, 1) @@ -443,6 +454,20 @@ internal U64 str8_deserial_read_windows_utf16_string16(String8 string, U64 of internal U64 str8_deserial_read_block(String8 string, U64 off, U64 size, String8 *block_out); #define str8_deserial_read_array(string, off, ptr, count) str8_deserial_read((string), (off), (ptr), sizeof(*(ptr))*(count), sizeof(*(ptr))) #define str8_deserial_read_struct(string, off, ptr) str8_deserial_read_array(string, off, ptr, 1) +internal U64 str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out); +internal U64 str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out); + +//////////////////////////////// +//~ string buffer + +internal B32 str8_buffer_skip(String8Node *buf, U64 *pos, U64 skip); +internal U64 str8_buffer_read(String8Node *buf, U64 *pos, U64 read_size, void *out); +internal U64 str8_buffer_peek(String8Node *buf, U64 *pos, U64 read_size, void *out); +internal U64 str8_buffer_write(String8Node *buf, U64 *pos, String8 data); +internal U64 str8_buffer_write_u16(String8Node *buf, U64 *pos, U16 v); +internal U64 str8_buffer_write_u32(String8Node *buf, U64 *pos, U32 v); +internal U64 str8_buffer_write_zeroes(String8Node *buf, U64 *pos, U64 size); +internal U64 str8_buffer_write_string_list(String8Node *buf, U64 *pos, String8List list); //////////////////////////////// //~ rjf: Basic String Hashes diff --git a/src/base/base_system.c b/src/base/base_system.c new file mode 100644 index 00000000..ae447aab --- /dev/null +++ b/src/base/base_system.c @@ -0,0 +1,2 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/base/base_system.h b/src/base/base_system.h new file mode 100644 index 00000000..2907c881 --- /dev/null +++ b/src/base/base_system.h @@ -0,0 +1,22 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_SYSTEM_H +#define BASE_SYSTEM_H + +typedef struct SystemInfo SystemInfo; +struct SystemInfo +{ + U32 logical_processor_count; + U64 page_size; + U64 large_page_size; + U64 allocation_granularity; + String8 machine_name; +}; + +//////////////////////////////// +//~ rjf: @per_os_impl System Info + +internal SystemInfo *get_system_info(void); + +#endif // BASE_SYSTEM_H diff --git a/src/base/base_test.c b/src/base/base_test.c new file mode 100644 index 00000000..149352fc --- /dev/null +++ b/src/base/base_test.c @@ -0,0 +1,51 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#if BUILD_TESTS + +internal String8 +test_build_exe_path(Arena *arena, String8 name) +{ + String8 folder = get_process_info()->binary_path; + String8 path = str8f(arena, "%S/%S%S", folder, name, program_ext_postfix_from_os(OperatingSystem_CURRENT, 0)); + return path; +} + +internal String8 +test_input_path(Arena *arena, TestCtx *ctx, String8 name) +{ + String8 path = str8f(arena, "%S/%S", ctx->input_data_path, name); + return path; +} + +internal String8 +test_input_exe_path(Arena *arena, TestCtx *ctx, String8 name) +{ + String8 path = str8f(arena, "%S/%S%S", ctx->input_data_path, name, program_ext_postfix_from_os(OperatingSystem_CURRENT, 1)); + return path; +} + +internal String8 +test_exemplar_path(Arena *arena, TestCtx *ctx, String8 name) +{ + String8 path = str8f(arena, "%S/%S", ctx->exemplars_path, name); + return path; +} + +internal void +base_register_test(char *func_name_cstr, TestFunctionType *fn, char *file_path_cstr, int line, int skip) +{ + String8 file_path = str8_cstring(file_path_cstr); + U64 src_min = str8_find_needle(file_path, 0, s("src/"), StringMatchFlag_SlashInsensitive); + U64 src_max = src_min + str8_lit("src/").size; + U64 layer_slash_max = str8_find_needle(file_path, src_max, s("/"), StringMatchFlag_SlashInsensitive); + + TestInfo *t = &test_infos[test_infos_count++]; + t->layer = str8_substr(file_path, r1u64(src_max, layer_slash_max)); + t->label = str8_cstring(func_name_cstr); + t->decl_line = line; + t->skip = skip; + t->test_fn = fn; +} + +#endif diff --git a/src/base/base_test.h b/src/base/base_test.h new file mode 100644 index 00000000..c7a225ee --- /dev/null +++ b/src/base/base_test.h @@ -0,0 +1,101 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef BASE_TEST_H +#define BASE_TEST_H + +typedef enum TestStatus +{ + TestStatus_Fail, + TestStatus_Crash, + TestStatus_Pass, + TestStatus_Skip, + TestStatus_COUNT +} +TestStatus; + +typedef struct TestResult TestResult; +struct TestResult +{ + TestStatus status; + char *fail_file; + int fail_line; + char *fail_cond; +}; + +typedef struct TestCtx TestCtx; +struct TestCtx +{ + CmdLine *cmdline; + String8 exemplars_path; + String8 artifacts_path; + String8 input_data_path; + TestResult *result_out; + String8List *test_out; +}; + +#define TEST_FUNCTION_SIG(name) void name(Arena *arena, TestCtx *ctx) +#define TEST_FUNCTION_DEF(name) TEST_FUNCTION_SIG(test__##name) +typedef TEST_FUNCTION_SIG(TestFunctionType); + +typedef struct TestInfo TestInfo; +struct TestInfo +{ + String8 layer; + String8 label; + S64 decl_line; + B32 skip; + TestFunctionType *test_fn; +}; + +#if BUILD_TESTS + +// alloc storage for the tests +global U16 test_infos_count = 0; +global TestInfo test_infos[0xffff] = {0}; + +internal String8 test_build_exe_path(Arena *arena, String8 name); +internal String8 test_input_path(Arena *arena, TestCtx *ctx, String8 name); +internal String8 test_input_exe_path(Arena *arena, TestCtx *ctx, String8 name); +internal String8 test_exemplar_path(Arena *arena, TestCtx *ctx, String8 name); +internal void base_register_test(char *func_name, TestFunctionType *fn, char *file_path, int line, int skip); + +#define AddTest(name, file_path, line, skip_, ...) \ +TEST_FUNCTION_DEF(name); \ +__VA_ARGS__ void add_test__##name(void) { base_register_test(Stringify(name), test__##name, file_path, line, skip_); } + +# if COMPILER_MSVC +# pragma section(".CRT$XCU", read) +# define DeclareTest(name, skip) \ +/* register test */ AddTest(name, __FILE__, __LINE__, (skip)) \ +/* alloc function pointer */ __declspec(allocate(".CRT$XCU")) void (*add_test_ptr__##name)(void) = add_test__##name; \ +/* do not GC test caller */ __pragma(comment(linker, "/include:" Stringify(add_test_ptr__##name))) +# elif COMPILER_GCC || COMPILER_CLANG +// clang and gcc allocate memory for the function pointer automatically +# define DeclareTest(name, skip) AddTest(name, __FILE__, __LINE__, (skip), __attribute__((constructor))) +# else +# error DeclareTest not defined for this compiler. +# endif +#else +# define DeclareTest(name, skip) +#endif + +#define Test(name) DeclareTest(name, 0) TEST_FUNCTION_DEF(name) +#define SkippedTest(name) DeclareTest(name, 1) TEST_FUNCTION_DEF(name) + +#define TestCheck(c) do { if (!(c)) { \ +/* record failed check */ ctx->result_out[0] = (TestResult){ .fail_file = __FILE__, .fail_line = __LINE__, .fail_cond = Stringify(c) }; \ +/* under debugger? -> trap */ if(debugger_is_attached()) { Trap(); } \ +/* exit test */ return; \ +} } while(0) + +#define TestSkip() do { \ +ctx->result_out[0] = (TestResult){ .status = TestStatus_Skip }; \ +return; \ +} while(0) + +// test log +#define test_out(string) str8_list_push(arena, ctx->test_out, (string)) +#define test_outf(...) str8_list_pushf(arena, ctx->test_out, __VA_ARGS__) + +#endif // BASE_TEST_H diff --git a/src/base/base_thread_context.c b/src/base/base_thread_context.c index a1b97d8d..42163610 100644 --- a/src/base/base_thread_context.c +++ b/src/base/base_thread_context.c @@ -17,10 +17,19 @@ C_LINKAGE thread_static TCTX *tctx_thread_local = 0; internal TCTX * tctx_alloc(void) { - Arena *arena = arena_alloc(); - TCTX *tctx = push_array(arena, TCTX, 1); - tctx->arenas[0] = arena; - tctx->arenas[1] = arena_alloc(); +#if PROFILE_TELEMETRY + thread_static static char name[2][1024]; + raddbg_snprintf(name[0], sizeof(name[0]), "Scratch/0[TID:%u]", tid()); + raddbg_snprintf(name[1], sizeof(name[1]), "Scratch/1[TID:%u]", tid()); + Arena *arena_0 = arena_alloc(.name = name[0]); + Arena *arena_1 = arena_alloc(.name = name[1]); +#else + Arena *arena_0 = arena_alloc(); + Arena *arena_1 = arena_alloc(); +#endif + TCTX *tctx = push_array(arena_0, TCTX, 1); + tctx->arenas[0] = arena_0; + tctx->arenas[1] = arena_1; tctx->lane_ctx.lane_count = 1; return tctx; } @@ -99,7 +108,7 @@ tctx_lane_barrier_wait(void *broadcast_ptr, U64 broadcast_size, U64 broadcast_sr } // rjf: all cases: barrier - os_barrier_wait(tctx->lane_ctx.barrier); + barrier_wait(tctx->lane_ctx.barrier); // rjf: doing broadcast -> copy from broadcast memory on destination lanes if(broadcast_ptr != 0 && lane_idx() != broadcast_src_lane_idx) @@ -110,7 +119,7 @@ tctx_lane_barrier_wait(void *broadcast_ptr, U64 broadcast_size, U64 broadcast_sr // rjf: doing broadcast -> barrier on all lanes if(broadcast_ptr != 0) { - os_barrier_wait(tctx->lane_ctx.barrier); + barrier_wait(tctx->lane_ctx.barrier); } ProfEnd(); @@ -193,7 +202,7 @@ internal void access_touch(Access *access, AccessPt *pt, CondVar cv) { ins_atomic_u64_inc_eval(&pt->access_refcount); - ins_atomic_u64_eval_assign(&pt->last_time_touched_us, os_now_microseconds()); + ins_atomic_u64_eval_assign(&pt->last_time_touched_us, now_time_us()); ins_atomic_u64_eval_assign(&pt->last_update_idx_touched, update_tick_idx()); Touch *touch = tctx_thread_local->free_touch; if(touch != 0) @@ -219,7 +228,7 @@ access_pt_is_expired_(AccessPt *pt, AccessPtExpireParams *params) U64 last_time_touched_us = ins_atomic_u64_eval(&pt->last_time_touched_us); U64 last_update_idx_touched = ins_atomic_u64_eval(&pt->last_update_idx_touched); B32 result = (access_refcount == 0 && - last_time_touched_us + params->time <= os_now_microseconds() && + last_time_touched_us + params->time <= now_time_us() && last_update_idx_touched + params->update_idxs <= update_tick_idx()); return result; } diff --git a/src/base/base_threads.c b/src/base/base_threads.c index 50c6e370..2c2d1d99 100644 --- a/src/base/base_threads.c +++ b/src/base/base_threads.c @@ -1,70 +1,6 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// -//~ rjf: Thread Functions - -internal Thread -thread_launch(ThreadEntryPointFunctionType *f, void *p) -{ - Thread thread = os_thread_launch(f, p); - return thread; -} - -internal B32 -thread_join(Thread thread, U64 endt_us) -{ - B32 result = os_thread_join(thread, endt_us); - return result; -} - -internal void -thread_detach(Thread thread) -{ - os_thread_detach(thread); -} - -//////////////////////////////// -//~ rjf: Synchronization Primitive Functions - -//- rjf: recursive mutexes - -internal Mutex mutex_alloc(void) {return os_mutex_alloc();} -internal void mutex_release(Mutex mutex) {os_mutex_release(mutex);} -internal void mutex_take(Mutex mutex) {os_mutex_take(mutex);} -internal void mutex_drop(Mutex mutex) {os_mutex_drop(mutex);} - -//- rjf: reader/writer mutexes - -internal RWMutex rw_mutex_alloc(void) {return os_rw_mutex_alloc();} -internal void rw_mutex_release(RWMutex mutex) {os_rw_mutex_release(mutex);} -internal void rw_mutex_take(RWMutex mutex, B32 write_mode) {os_rw_mutex_take(mutex, write_mode);} -internal void rw_mutex_drop(RWMutex mutex, B32 write_mode) {os_rw_mutex_drop(mutex, write_mode);} - -//- rjf: condition variables - -internal CondVar cond_var_alloc(void) {return os_cond_var_alloc();} -internal void cond_var_release(CondVar cv) {os_cond_var_release(cv);} -internal B32 cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us) {return os_cond_var_wait(cv, mutex, endt_us);} -internal B32 cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us) {return os_cond_var_wait_rw(cv, mutex_rw, write_mode, endt_us);} -internal void cond_var_signal(CondVar cv) {os_cond_var_signal(cv);} -internal void cond_var_broadcast(CondVar cv) {os_cond_var_broadcast(cv);} - -//- rjf: cross-process semaphores - -internal Semaphore semaphore_alloc(U32 initial_count, U32 max_count, String8 name) {return os_semaphore_alloc(initial_count, max_count, name);} -internal void semaphore_release(Semaphore semaphore) {os_semaphore_release(semaphore);} -internal Semaphore semaphore_open(String8 name) {return os_semaphore_open(name);} -internal void semaphore_close(Semaphore semaphore) {os_semaphore_close(semaphore);} -internal B32 semaphore_take(Semaphore semaphore, U64 endt_us) {return os_semaphore_take(semaphore, endt_us);} -internal void semaphore_drop(Semaphore semaphore) {os_semaphore_drop(semaphore);} - -//- rjf: barriers - -internal Barrier barrier_alloc(U64 count) {return os_barrier_alloc(count);} -internal void barrier_release(Barrier barrier) {os_barrier_release(barrier);} -internal void barrier_wait(Barrier barrier) {os_barrier_wait(barrier);} - //////////////////////////////// //~ rjf: Table Stripe Functions @@ -72,7 +8,7 @@ internal StripeArray stripe_array_alloc(Arena *arena) { StripeArray array = {0}; - array.count = os_get_system_info()->logical_processor_count; + array.count = get_system_info()->logical_processor_count; array.v = push_array(arena, Stripe, array.count); for EachIndex(idx, array.count) { @@ -100,3 +36,169 @@ stripe_from_slot_idx(StripeArray *stripes, U64 slot_idx) Stripe *stripe = &stripes->v[slot_idx%stripes->count]; return stripe; } + +//////////////////////////////// +//~ rjf: Thread Info Helpers + +internal void +set_thread_name(String8 string) +{ + ProfThreadName("%.*s", str8_varg(string)); + set_platform_thread_name(string); +} + +internal void +set_thread_namef(char *fmt, ...) +{ + Temp scratch = scratch_begin(0, 0); + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(scratch.arena, fmt, args); + set_thread_name(string); + va_end(args); + scratch_end(scratch); +} + +//////////////////////////////// +//~ rjf: Platform-Abstracted Synchronization Primitive Functions + +//- rjf: slow barriers + +typedef struct BarrierNode BarrierNode; +struct BarrierNode +{ + BarrierNode *next; + U64 count; + U64 threads_left_to_enter; + U64 threads_left_to_leave; + RWMutex rw_mutex; + CondVar cv; +}; + +typedef struct BarrierTCTX BarrierTCTX; +struct BarrierTCTX +{ + Arena *arena; + BarrierNode *free_barrier_node; +}; + +thread_static BarrierTCTX *barrier_tctx = 0; + +internal Barrier +slow_barrier_alloc(U64 count) +{ + if(barrier_tctx == 0) + { + Arena *arena = arena_alloc(); + barrier_tctx = push_array(arena, BarrierTCTX, 1); + barrier_tctx->arena = arena; + } + BarrierNode *n = barrier_tctx->free_barrier_node; + if(n != 0) + { + SLLStackPop(barrier_tctx->free_barrier_node); + } + else + { + n = push_array_no_zero(barrier_tctx->arena, BarrierNode, 1); + } + MemoryZeroStruct(n); + n->count = count; + n->threads_left_to_enter = count; + n->rw_mutex = rw_mutex_alloc(); + n->cv = cond_var_alloc(); + Barrier result = {(U64)n}; + return result; +} + +internal void +slow_barrier_release(Barrier barrier) +{ + if(barrier_tctx == 0) + { + Arena *arena = arena_alloc(); + barrier_tctx = push_array(arena, BarrierTCTX, 1); + barrier_tctx->arena = arena; + } + BarrierNode *n = (BarrierNode *)barrier.u64[0]; + rw_mutex_release(n->rw_mutex); + cond_var_release(n->cv); + SLLStackPush(barrier_tctx->free_barrier_node, n); +} + +internal void +slow_barrier_wait(Barrier barrier) +{ + ProfBeginFunction(); + BarrierNode *n = (BarrierNode *)barrier.u64[0]; + U64 threads_left_to_enter = ins_atomic_u64_dec_eval(&n->threads_left_to_enter); + + //- rjf: threads left to enter > 0 => wait + if(threads_left_to_enter > 0) + { + // rjf: first try a spin loop + B32 done_waiting = 0; + ProfScope("spin loop wait") for(U64 spin_count = 0; spin_count < 10000; spin_count += 1) + { + if(ins_atomic_u64_eval(&n->threads_left_to_leave) != 0) + { + done_waiting = 1; + break; + } + } + + // rjf: not done waiting -> need to do slow wait on condition variable + if(!done_waiting) ProfScope("slow wait") + { + RWMutexScope(n->rw_mutex, 0) for(;;) + { + if(ins_atomic_u64_eval(&n->threads_left_to_leave) != 0) + { + break; + } + cond_var_wait_rw(n->cv, n->rw_mutex, 0, max_U64); + } + } + + // rjf: decrement leave counter + if(ins_atomic_u64_dec_eval(&n->threads_left_to_leave) > 0) + { + ProfScope("signal") cond_var_signal(n->cv); + } + } + + //- rjf: threads left to enter == 0 -> last thread, wakeup + else + { + ins_atomic_u64_eval_assign(&n->threads_left_to_enter, n->count); + ProfScope("wake up") RWMutexScope(n->rw_mutex, 1) + { + ins_atomic_u64_eval_assign(&n->threads_left_to_leave, n->count-1); + } + ProfScope("signal") cond_var_signal(n->cv); + } + + //- rjf: wait for threads left to leave == 0 + ProfScope("wait for threads to leave") + { + for(U64 spin_count = 0;; spin_count += 1) + { + if(ins_atomic_u64_eval(&n->threads_left_to_leave) == 0) + { + break; + } + } + } + + ProfEnd(); +} + +//////////////////////////////// +///~ Semaphore + +internal void +semaphore_drop(Semaphore semaphore) +{ + semaphore_drop_count(semaphore, 1); +} + diff --git a/src/base/base_threads.h b/src/base/base_threads.h index 330efb00..3aae2ea6 100644 --- a/src/base/base_threads.h +++ b/src/base/base_threads.h @@ -67,14 +67,33 @@ struct StripeArray }; //////////////////////////////// -//~ rjf: Thread Functions +//~ rjf: Table Stripe Functions + +internal StripeArray stripe_array_alloc(Arena *arena); +internal void stripe_array_release(StripeArray *stripes); +internal Stripe *stripe_from_slot_idx(StripeArray *stripes, U64 slot_idx); + +//////////////////////////////// +//~ rjf: Thread Info Helpers + +internal void set_thread_name(String8 string); +internal void set_thread_namef(char *fmt, ...); + +//////////////////////////////// +//~ rjf: @per_os_impl Current Thread Info + +internal U32 tid(void); +internal void set_platform_thread_name(String8 name); + +//////////////////////////////// +//~ rjf: @per_os_impl Thread Functions internal Thread thread_launch(ThreadEntryPointFunctionType *f, void *p); internal B32 thread_join(Thread thread, U64 endt_us); internal void thread_detach(Thread thread); //////////////////////////////// -//~ rjf: Synchronization Primitive Functions +//~ rjf: @per_os_impl Synchronization Primitive Functions //- rjf: recursive mutexes internal Mutex mutex_alloc(void); @@ -110,11 +129,12 @@ internal Semaphore semaphore_open(String8 name); internal void semaphore_close(Semaphore semaphore); internal B32 semaphore_take(Semaphore semaphore, U64 endt_us); internal void semaphore_drop(Semaphore semaphore); +internal void semaphore_drop_count(Semaphore semaphore, U64 drop_count); //- rjf: barriers -internal Barrier barrier_alloc(U64 count); -internal void barrier_release(Barrier barrier); -internal void barrier_wait(Barrier barrier); +internal Barrier barrier_alloc(U64 count); +internal void barrier_release(Barrier barrier); +internal void barrier_wait(Barrier barrier); //- rjf: scope macros #define MutexScope(mutex) DeferLoop(mutex_take(mutex), mutex_drop(mutex)) @@ -124,10 +144,16 @@ internal void barrier_wait(Barrier barrier); #define MutexScopeRWPromote(mutex) DeferLoop((rw_mutex_drop_r(mutex), rw_mutex_take_w(mutex)), (rw_mutex_drop_w(mutex), rw_mutex_take_r(mutex))) //////////////////////////////// -//~ rjf: Table Stripe Functions +//~ rjf: Platform-Abstracted Synchronization Primitive Functions -internal StripeArray stripe_array_alloc(Arena *arena); -internal void stripe_array_release(StripeArray *stripes); -internal Stripe *stripe_from_slot_idx(StripeArray *stripes, U64 slot_idx); +//- rjf: slow barriers +internal Barrier slow_barrier_alloc(U64 count); +internal void slow_barrier_release(Barrier barrier); +internal void slow_barrier_wait(Barrier barrier); + +//////////////////////////////// +//~ rjf: @per_os_impl Safe Calls + +internal void safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr); #endif // BASE_THREADS_H diff --git a/src/base/tests/base_tests.c b/src/base/tests/base_tests.c new file mode 100644 index 00000000..522e7844 --- /dev/null +++ b/src/base/tests/base_tests.c @@ -0,0 +1,340 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +Test(str8_list_substr) +{ + String8List zero_list = {0}; + + { + String8List list = {0}; + str8_list_pushf(arena, &list, "a"); + str8_list_pushf(arena, &list, "b"); + str8_list_pushf(arena, &list, "c"); + String8List sub = str8_list_substr(arena, list, r1u64(0, 3)); + String8 result = str8_list_join(arena, &list, 0); + T_Ok(str8_match(result, str8_lit("abc"), 0)); + } + + { + String8List list = {0}; + str8_list_pushf(arena, &list, "a"); + str8_list_pushf(arena, &list, "b"); + str8_list_pushf(arena, &list, "c"); + String8List sub = str8_list_substr(arena, list, r1u64(0, max_U64)); + String8 result = str8_list_join(arena, &list, 0); + T_Ok(str8_match(result, str8_lit("abc"), 0)); + } + + { + + String8List list = {0}; + str8_list_pushf(arena, &list, "a"); + str8_list_pushf(arena, &list, "bcd"); + String8List sub = str8_list_substr(arena, list, r1u64(2, 3)); + String8 result = str8_list_join(arena, &sub, 0); + T_Ok(str8_match(result, str8_lit("c"), 0)); + } + + { + + String8List list = {0}; + str8_list_pushf(arena, &list, "a"); + str8_list_pushf(arena, &list, "bcd"); + String8List sub = str8_list_substr(arena, list, r1u64(1, 2)); + String8 result = str8_list_join(arena, &sub, 0); + T_Ok(str8_match(result, str8_lit("b"), 0)); + } + + { + String8List list = {0}; + str8_list_pushf(arena, &list, "ab"); + str8_list_pushf(arena, &list, "cd"); + str8_list_pushf(arena, &list, "ef"); + String8List sub = str8_list_substr(arena, list, r1u64(1, 5)); + String8 result = str8_list_join(arena, &sub, 0); + T_Ok(str8_match(result, str8_lit("bcde"), 0)); + } + + { + String8List list = {0}; + str8_list_pushf(arena, &list, "abc"); + + String8List zero = str8_list_substr(arena, list, r1u64(0, 0)); + T_Ok(MemoryMatchStruct(&zero, &zero_list)); + + String8List out_of_bounds_range = str8_list_substr(arena, list, r1u64(max_U64/2, max_U64)); + T_Ok(MemoryMatchStruct(&out_of_bounds_range, &zero_list)); + } +} + +TEST(bit_array) +{ + for (U64 start=0; start<32*3; start++) { + for (U64 end=start; end<32*3; end++) { + U32 v[3] = { 0 }; + for (U64 i=start; i= end || lo >= hi || start >= end ? 0 : 1; + U64 idx = bit_array_scan_right_to_left32((U32Array){.v=v, .count=ArrayCount(v)}, lo, hi, 1); + B32 r = idx < hi; + T_Ok(r == expected_r); + if (r) { + T_Ok(idx == expected_idx); + + } + } + } + } + } +} + +TEST(count_digits) +{ + T_Ok(count_digits_u64(0, 10) == 1); + T_Ok(count_digits_u64(99, 10) == 2); + T_Ok(count_digits_u64(999, 10) == 3); + T_Ok(count_digits_u64(9999, 10) == 4); + T_Ok(count_digits_u64(99999, 10) == 5); + T_Ok(count_digits_u64(999999, 10) == 6); +} + +TEST(match_wildcard) +{ + // empty strings + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit(""), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("**"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("?"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("*?"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("?*"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit(""), 0) == 0); + + // exact + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("a"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("A"), 0) == 0); + + // ? + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("?"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("?"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("?"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("a?"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("?b"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("??"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("a?c"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("???"), 0) == 0); + + // * + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("a*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*c"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*b*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("a*c"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("b*"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("**"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("a**c"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("a*b*c"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*a*d*"), 0) == 0); + + T_Ok(str8_match_wildcard(str8_lit("abcd"), str8_lit("a*d"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abefcdgiescdfimde"), str8_lit("ab*cd?i*de"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("mississippi"), str8_lit("m*iss*ppi"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*b"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("aa"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("aa"), str8_lit("a"), 0) == 0); + + // case insensitive + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("A"), StringMatchFlag_CaseInsensitive) == 1); + T_Ok(str8_match_wildcard(str8_lit("FooBar"), str8_lit("foobar"), StringMatchFlag_CaseInsensitive) == 1); + T_Ok(str8_match_wildcard(str8_lit("Foobar"), str8_lit("foo*"), StringMatchFlag_CaseInsensitive) == 1); + + // right side sloppy + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("ab"), StringMatchFlag_RightSideSloppy) == 1); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit(""), StringMatchFlag_RightSideSloppy) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("a"), StringMatchFlag_RightSideSloppy) == 0); + + // slash insensitive + T_Ok(str8_match_wildcard(str8_lit("a/b"), str8_lit("a\\b"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("a/b"), str8_lit("a\\b"), StringMatchFlag_SlashInsensitive) == 1); + T_Ok(str8_match_wildcard(str8_lit("a/b/c"), str8_lit("a\\*\\c"), StringMatchFlag_SlashInsensitive) == 1); + + // combined + T_Ok(str8_match_wildcard(str8_lit("Ab\\Cde"), str8_lit("ab/*e"), StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive) == 1); + + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("*?*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("*?*"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit(""), str8_lit("*?*"), 0) == 0); + T_Ok(str8_match_wildcard(str8_lit("abc"), str8_lit("?*?"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("ab"), str8_lit("?*?"), 0) == 1); + T_Ok(str8_match_wildcard(str8_lit("a"), str8_lit("?*?"), 0) == 0); +} + +TEST(hash_map) +{ + { + HashMap hm = {0}; + + U64 test_count = 256; + for EachIndex(i, test_count) { hash_map_push_u64_u64(arena, &hm, i, i*2); } + + // test tombstone reuse + for (U64 i = 10; i < test_count; ++i) { + HashMapNode *test_node = hash_map_search(&hm, hash_map_hasher(str8_struct(&i)), (HashMapKey){ .key_u64 = i }, hash_map_match_u64); + T_Ok(hash_map_purge_u64(&hm, i) == 1); + T_Ok(hash_map_push_u64_u64(arena, &hm, i, 10) == test_node); + } + + // delete some items and after search them + for (U64 i = 0; i < 10; ++i) { + T_Ok(hash_map_purge_u64(&hm, i)); + } + T_Ok(hm.tombstone_count == 10); + for (U64 i = 0; i < 10; ++i) { + T_Ok(hash_map_search_u64_raw(&hm, i) == 0); + } + + // extract pairs and test sorting + HashMapKeyValue *pairs = key_value_from_hash_map(arena, &hm); + sort_hash_map_key_value_u64(pairs, hm.count); + for (U64 i = 1; i < hm.count; ++i) { + T_Ok(pairs[i-1].key.key_u64 < pairs[i].key.key_u64); + } + + // did purge put all the nodes on free list? + hash_map_purge(&hm); + U64 free_list_count = 0; + for (HashMapNode *n = hm.free_list; n != 0; n = n->next) { free_list_count += 1; } + T_Ok(free_list_count == test_count); + } + + // test search through tombstones + { + HashMap hm = {0}; + + U64 hash = 12345; + + hash_map_push(arena, &hm, hash, (HashMapKeyValue){ .key = { .key_u64 = 1 }, .value = { .value_u64 = 10 } }, hash_map_match_u64); + hash_map_push(arena, &hm, hash, (HashMapKeyValue){ .key = { .key_u64 = 2 }, .value = { .value_u64 = 20 } }, hash_map_match_u64); + hash_map_push(arena, &hm, hash, (HashMapKeyValue){ .key = { .key_u64 = 3 }, .value = { .value_u64 = 30 } }, hash_map_match_u64); + + T_Ok(hash_map_purge_u64(&hm, 1)); + + T_Ok(hash_map_search(&hm, hash, (HashMapKey){ .key_u64 = 2 }, hash_map_match_u64)->v.value.value_u64 == 20); + T_Ok(hash_map_search(&hm, hash, (HashMapKey){ .key_u64 = 3 }, hash_map_match_u64)->v.value.value_u64 == 30); + } + + // interleaved purges + { + HashMap hm = {0}; + for EachIndex(round, 100) { + for EachIndex(i, 256) { hash_map_push_u64_u64(arena, &hm, i, round); } + for (U64 i = 0; i < 256; i += 2) { hash_map_purge_u64(&hm, i); } + for (U64 i = 0; i < 256; i += 2) { hash_map_push_u64_u64(arena, &hm, i, round + 1); } + + T_Ok(hm.count == 256); + T_Ok(hm.tombstone_count == 0); + } + + for EachIndex(i, 100) { + T_Ok(hash_map_purge_u64(&hm, 123123123 + i) == 0); + } + } + + // empty hash map test + { + HashMap hm = {0}; + + T_Ok(hash_map_search_u64_raw(&hm, 123) == 0); + T_Ok(hash_map_purge_u64(&hm, 123) == 0); + + HashMapKeyValue *pairs = key_value_from_hash_map(arena, &hm); + T_Ok(pairs == 0 || hm.count == 0); + + hash_map_purge(&hm); + T_Ok(hm.count == 0); + T_Ok(hm.tombstone_count == 0); + } + + // heavy collision + { + HashMap hm = {0}; + + U64 hash = 12345; + U64 count = 1024; + + for EachIndex(i, count) { + hash_map_push(arena, &hm, hash, (HashMapKeyValue){ .key = { .key_u64 = i }, .value = { .value_u64 = i*3 } }, hash_map_match_u64); + } + + for EachIndex(i, count) { + T_Ok(hash_map_search(&hm, hash, (HashMapKey){ .key_u64 = i }, hash_map_match_u64)->v.value.value_u64 == i*3); + } + } + + // duplicate key test + { + HashMap hm = {0}; + + U64 a = 1; + U64 b = 2; + + HashMapNode *n0 = hash_map_push_u64_u64(arena, &hm, 1, a); + HashMapNode *n1 = hash_map_push_u64_u64(arena, &hm, 1, b); + + T_Ok(hm.count == 1); + T_Ok(n0 == n1); + U64 test = *hash_map_search_u64_u64(&hm, 1); + T_Ok(test != b); + } + + // test paths + { + HashMap hm = {0}; + + U64 foo = 0; + U64 bar = 1; + + hash_map_push_path_raw(arena, &hm, str8_lit("c:/DEVEL/test"), &foo); + hash_map_push_path_raw(arena, &hm, str8_lit("c:\\DEVEL\\test"), &foo); + hash_map_push_path_raw(arena, &hm, str8_lit("c:/devel\\test"), &foo); + + hash_map_push_path_raw(arena, &hm, str8_lit("/mnt/devel"), &bar); + hash_map_push_path_raw(arena, &hm, str8_lit("/MNT/devel"), &bar); + + T_Ok(hm.count == 2); + + T_Ok(hash_map_search_path_raw(&hm, str8_lit("c:/devel/test")) == &foo); + T_Ok(hash_map_search_path_raw(&hm, str8_lit("c:\\devel\\TEST")) == &foo); + T_Ok(hash_map_search_path_raw(&hm, str8_lit("/mnt/devel")) == &bar); + T_Ok(hash_map_search_path_raw(&hm, str8_lit("/MNT/DEVEL")) == &bar); + } + + // test strings + { + HashMap hm = {0}; + + U64 foo = 0; + U64 bar = 1; + + hash_map_push_string_raw(arena, &hm, str8_lit("c:/DEVEL/test"), &foo); + hash_map_push_string_raw(arena, &hm, str8_lit("c:\\DEVEL\\test"), &foo); + hash_map_push_string_raw(arena, &hm, str8_lit("c:/devel\\test"), &foo); + + hash_map_push_string_raw(arena, &hm, str8_lit("/mnt/devel"), &bar); + hash_map_push_string_raw(arena, &hm, str8_lit("/MNT/devel"), &bar); + + T_Ok(hm.count == 5); + + T_Ok(hash_map_search_string_raw(&hm, str8_lit("c:/DEVEL/test")) == &foo); + T_Ok(hash_map_search_string_raw(&hm, str8_lit("c:\\DEVEL\\test")) == &foo); + T_Ok(hash_map_search_string_raw(&hm, str8_lit("c:/devel\\test")) == &foo); + + T_Ok(hash_map_search_string_raw(&hm, str8_lit("/mnt/devel")) == &bar); + T_Ok(hash_map_search_string_raw(&hm, str8_lit("/MNT/devel")) == &bar); + } +} diff --git a/src/codeview/codeview.c b/src/codeview/codeview.c index bd32423e..2923f941 100644 --- a/src/codeview/codeview.c +++ b/src/codeview/codeview.c @@ -47,7 +47,6 @@ cv_size_from_reg(CV_Arch arch, CV_Reg reg) { switch(arch) { - case CV_Arch_8086: return cv_size_from_reg_x86(reg); case CV_Arch_X64 : return cv_size_from_reg_x64(reg); default: NotImplemented; } @@ -59,25 +58,12 @@ cv_is_reg_sp(CV_Arch arch, CV_Reg reg) { switch(arch) { - case CV_Arch_8086: return reg == CV_Regx86_ESP; case CV_Arch_X64: return reg == CV_Regx64_RSP; default: NotImplemented; } return 0; } -internal U64 -cv_size_from_reg_x86(CV_Reg reg) -{ - switch(reg) - { -#define X(NAME, CODE, RDI_NAME, BYTE_POS, BYTE_SIZE) case CV_Regx86_##NAME: return BYTE_SIZE; - CV_Reg_X86_XList(X) -#undef X - } - return 0; -} - internal U64 cv_size_from_reg_x64(CV_Reg reg) { @@ -111,18 +97,6 @@ cv_decode_fp_reg(CV_Arch arch, CV_EncodedFramePtrReg encoded_reg) CV_Reg fp_reg = 0; switch (arch) { - case CV_Arch_8086: - { - switch (encoded_reg) - { - case CV_EncodedFramePtrReg_None : break; - case CV_EncodedFramePtrReg_StackPtr: AssertAlways(!"TODO: not tested, this is a guess"); - fp_reg = CV_Regx86_ESP; break; - case CV_EncodedFramePtrReg_FramePtr: fp_reg = CV_Regx86_EBP; break; - case CV_EncodedFramePtrReg_BasePtr : fp_reg = CV_Regx86_EBX; break; - default: InvalidPath; - } - } break; case CV_Arch_X64: { switch (encoded_reg) @@ -144,14 +118,6 @@ cv_map_encoded_base_pointer(CV_Arch arch, U32 encoded_frame_reg) { U32 r = 0; switch (arch) { - case CV_Arch_8086: { - switch (encoded_frame_reg) { - case 0: r = 0; break; - case 1: r = CV_AllReg_VFRAME; break; - case 2: r = CV_Regx86_EBP; break; - case 3: r = CV_Regx86_EBX; break; - } - } break; case CV_Arch_X64: { switch (encoded_frame_reg) { case 0: r = 0; break; @@ -207,13 +173,6 @@ cv_string_from_reg_id(Arena *arena, CV_Arch arch, U32 id) { String8 result = str8_zero(); switch (arch) { - case CV_Arch_8086: { - switch (id) { -#define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; - CV_Reg_X86_XList(X) -#undef X - } - } break; case CV_Arch_X64: { switch (id) { #define X(_N, _ID, ...) case _ID: result = str8_lit(Stringify(_N)); break; diff --git a/src/codeview/codeview.h b/src/codeview/codeview.h index fa8f4e09..7e4672e4 100644 --- a/src/codeview/codeview.h +++ b/src/codeview/codeview.h @@ -33,7 +33,7 @@ read_only global CV_TypeId cv_type_id_variadic = 0xFFFFFFFF; //////////////////////////////// //~ Aligns -#define CV_LeafAlign 4 +#define CV_LeafAlign 1 #define CV_SymbolAlign 1 #define CV_C13SubSectionAlign 4 #define CV_FileCheckSumsAlign 4 @@ -41,261 +41,6 @@ read_only global CV_TypeId cv_type_id_variadic = 0xFFFFFFFF; //////////////////////////////// //~ rjf: Registers -// X(NAME, CODE, (RDI_RegCode_X86) NAME, BYTE_POS, BYTE_SIZE) -#define CV_Reg_X86_XList(X) \ -X(NONE, 0, nil, 0, 0) \ -X(AL, 1, eax, 0, 1) \ -X(CL, 2, ecx, 0, 1) \ -X(DL, 3, edx, 0, 1) \ -X(BL, 4, ebx, 0, 1) \ -X(AH, 5, eax, 1, 1) \ -X(CH, 6, ecx, 1, 1) \ -X(DH, 7, edx, 1, 1) \ -X(BH, 8, ebx, 1, 1) \ -X(AX, 9, eax, 0, 2) \ -X(CX, 10, ecx, 0, 2) \ -X(DX, 11, edx, 0, 2) \ -X(BX, 12, ebx, 0, 2) \ -X(SP, 13, esp, 0, 2) \ -X(BP, 14, ebp, 0, 2) \ -X(SI, 15, esi, 0, 2) \ -X(DI, 16, edi, 0, 2) \ -X(EAX, 17, eax, 0, 4) \ -X(ECX, 18, ecx, 0, 4) \ -X(EDX, 19, edx, 0, 4) \ -X(EBX, 20, ebx, 0, 4) \ -X(ESP, 21, esp, 0, 4) \ -X(EBP, 22, ebp, 0, 4) \ -X(ESI, 23, esi, 0, 4) \ -X(EDI, 24, edi, 0, 4) \ -X(ES, 25, es, 0, 2) \ -X(CS, 26, cs, 0, 2) \ -X(SS, 27, ss, 0, 2) \ -X(DS, 28, ds, 0, 2) \ -X(FS, 29, fs, 0, 2) \ -X(GS, 30, gs, 0, 2) \ -X(IP, 31, eip, 0, 2) \ -X(FLAGS, 32, eflags, 0, 2) \ -X(EIP, 33, eip, 0, 4) \ -X(EFLAGS, 34, eflags, 0, 4) \ -X(MM0, 146, fpr0, 0, 8) \ -X(MM1, 147, fpr1, 0, 8) \ -X(MM2, 148, fpr2, 0, 8) \ -X(MM3, 149, fpr3, 0, 8) \ -X(MM4, 150, fpr4, 0, 8) \ -X(MM5, 151, fpr5, 0, 8) \ -X(MM6, 152, fpr6, 0, 8) \ -X(MM7, 153, fpr7, 0, 8) \ -X(XMM0, 154, ymm0, 0, 16) \ -X(XMM1, 155, ymm1, 0, 16) \ -X(XMM2, 156, ymm2, 0, 16) \ -X(XMM3, 157, ymm3, 0, 16) \ -X(XMM4, 158, ymm4, 0, 16) \ -X(XMM5, 159, ymm5, 0, 16) \ -X(XMM6, 160, ymm6, 0, 16) \ -X(XMM7, 161, ymm7, 0, 16) \ -X(XMM00, 162, ymm0, 0, 4) \ -X(XMM01, 163, ymm0, 4, 4) \ -X(XMM02, 164, ymm0, 8, 4) \ -X(XMM03, 165, ymm0, 12, 4) \ -X(XMM10, 166, ymm1, 0, 4) \ -X(XMM11, 167, ymm1, 4, 4) \ -X(XMM12, 168, ymm1, 8, 4) \ -X(XMM13, 169, ymm1, 12, 4) \ -X(XMM20, 170, ymm2, 0, 4) \ -X(XMM21, 171, ymm2, 4, 4) \ -X(XMM22, 172, ymm2, 8, 4) \ -X(XMM23, 173, ymm2, 12, 4) \ -X(XMM30, 174, ymm3, 0, 4) \ -X(XMM31, 175, ymm3, 4, 4) \ -X(XMM32, 176, ymm3, 8, 4) \ -X(XMM33, 177, ymm3, 12, 4) \ -X(XMM40, 178, ymm4, 0, 4) \ -X(XMM41, 179, ymm4, 4, 4) \ -X(XMM42, 180, ymm4, 8, 4) \ -X(XMM43, 181, ymm4, 12, 4) \ -X(XMM50, 182, ymm5, 0, 4) \ -X(XMM51, 183, ymm5, 4, 4) \ -X(XMM52, 184, ymm5, 8, 4) \ -X(XMM53, 185, ymm5, 12, 4) \ -X(XMM60, 186, ymm6, 0, 4) \ -X(XMM61, 187, ymm6, 4, 4) \ -X(XMM62, 188, ymm6, 8, 4) \ -X(XMM63, 189, ymm6, 12, 4) \ -X(XMM70, 190, ymm7, 0, 4) \ -X(XMM71, 191, ymm7, 4, 4) \ -X(XMM72, 192, ymm7, 8, 4) \ -X(XMM73, 193, ymm7, 12, 4) \ -X(XMM0L, 194, ymm0, 0, 8) \ -X(XMM1L, 195, ymm1, 0, 8) \ -X(XMM2L, 196, ymm2, 0, 8) \ -X(XMM3L, 197, ymm3, 0, 8) \ -X(XMM4L, 198, ymm4, 0, 8) \ -X(XMM5L, 199, ymm5, 0, 8) \ -X(XMM6L, 200, ymm6, 0, 8) \ -X(XMM7L, 201, ymm7, 0, 8) \ -X(XMM0H, 202, ymm0, 8, 8) \ -X(XMM1H, 203, ymm1, 8, 8) \ -X(XMM2H, 204, ymm2, 8, 8) \ -X(XMM3H, 205, ymm3, 8, 8) \ -X(XMM4H, 206, ymm4, 8, 8) \ -X(XMM5H, 207, ymm5, 8, 8) \ -X(XMM6H, 208, ymm6, 8, 8) \ -X(XMM7H, 209, ymm7, 8, 8) \ -X(YMM0, 252, ymm0, 0, 32) \ -X(YMM1, 253, ymm1, 0, 32) \ -X(YMM2, 254, ymm2, 0, 32) \ -X(YMM3, 255, ymm3, 0, 32) \ -X(YMM4, 256, ymm4, 0, 32) \ -X(YMM5, 257, ymm5, 0, 32) \ -X(YMM6, 258, ymm6, 0, 32) \ -X(YMM7, 259, ymm7, 0, 32) \ -X(YMM0H, 260, ymm0, 16, 16) \ -X(YMM1H, 261, ymm1, 16, 16) \ -X(YMM2H, 262, ymm2, 16, 16) \ -X(YMM3H, 263, ymm3, 16, 16) \ -X(YMM4H, 264, ymm4, 16, 16) \ -X(YMM5H, 265, ymm5, 16, 16) \ -X(YMM6H, 266, ymm6, 16, 16) \ -X(YMM7H, 267, ymm7, 16, 16) \ -X(YMM0I0, 268, ymm0, 0, 8) \ -X(YMM0I1, 269, ymm0, 8, 8) \ -X(YMM0I2, 270, ymm0, 16, 8) \ -X(YMM0I3, 271, ymm0, 24, 8) \ -X(YMM1I0, 272, ymm1, 0, 8) \ -X(YMM1I1, 273, ymm1, 8, 8) \ -X(YMM1I2, 274, ymm1, 16, 8) \ -X(YMM1I3, 275, ymm1, 24, 8) \ -X(YMM2I0, 276, ymm2, 0, 8) \ -X(YMM2I1, 277, ymm2, 8, 8) \ -X(YMM2I2, 278, ymm2, 16, 8) \ -X(YMM2I3, 279, ymm2, 24, 8) \ -X(YMM3I0, 280, ymm3, 0, 8) \ -X(YMM3I1, 281, ymm3, 8, 8) \ -X(YMM3I2, 282, ymm3, 16, 8) \ -X(YMM3I3, 283, ymm3, 24, 8) \ -X(YMM4I0, 284, ymm4, 0, 8) \ -X(YMM4I1, 285, ymm4, 8, 8) \ -X(YMM4I2, 286, ymm4, 16, 8) \ -X(YMM4I3, 287, ymm4, 24, 8) \ -X(YMM5I0, 288, ymm5, 0, 8) \ -X(YMM5I1, 289, ymm5, 8, 8) \ -X(YMM5I2, 290, ymm5, 16, 8) \ -X(YMM5I3, 291, ymm5, 24, 8) \ -X(YMM6I0, 292, ymm6, 0, 8) \ -X(YMM6I1, 293, ymm6, 8, 8) \ -X(YMM6I2, 294, ymm6, 16, 8) \ -X(YMM6I3, 295, ymm6, 24, 8) \ -X(YMM7I0, 296, ymm7, 0, 8) \ -X(YMM7I1, 297, ymm7, 8, 8) \ -X(YMM7I2, 298, ymm7, 16, 8) \ -X(YMM7I3, 299, ymm7, 24, 8) \ -X(YMM0F0, 300, ymm0, 0, 4) \ -X(YMM0F1, 301, ymm0, 4, 4) \ -X(YMM0F2, 302, ymm0, 8, 4) \ -X(YMM0F3, 303, ymm0, 12, 4) \ -X(YMM0F4, 304, ymm0, 16, 4) \ -X(YMM0F5, 305, ymm0, 20, 4) \ -X(YMM0F6, 306, ymm0, 24, 4) \ -X(YMM0F7, 307, ymm0, 28, 4) \ -X(YMM1F0, 308, ymm1, 0, 4) \ -X(YMM1F1, 309, ymm1, 4, 4) \ -X(YMM1F2, 310, ymm1, 8, 4) \ -X(YMM1F3, 311, ymm1, 12, 4) \ -X(YMM1F4, 312, ymm1, 16, 4) \ -X(YMM1F5, 313, ymm1, 20, 4) \ -X(YMM1F6, 314, ymm1, 24, 4) \ -X(YMM1F7, 315, ymm1, 28, 4) \ -X(YMM2F0, 316, ymm2, 0, 4) \ -X(YMM2F1, 317, ymm2, 4, 4) \ -X(YMM2F2, 318, ymm2, 8, 4) \ -X(YMM2F3, 319, ymm2, 12, 4) \ -X(YMM2F4, 320, ymm2, 16, 4) \ -X(YMM2F5, 321, ymm2, 20, 4) \ -X(YMM2F6, 322, ymm2, 24, 4) \ -X(YMM2F7, 323, ymm2, 28, 4) \ -X(YMM3F0, 324, ymm3, 0, 4) \ -X(YMM3F1, 325, ymm3, 4, 4) \ -X(YMM3F2, 326, ymm3, 8, 4) \ -X(YMM3F3, 327, ymm3, 12, 4) \ -X(YMM3F4, 328, ymm3, 16, 4) \ -X(YMM3F5, 329, ymm3, 20, 4) \ -X(YMM3F6, 330, ymm3, 24, 4) \ -X(YMM3F7, 331, ymm3, 28, 4) \ -X(YMM4F0, 332, ymm4, 0, 4) \ -X(YMM4F1, 333, ymm4, 4, 4) \ -X(YMM4F2, 334, ymm4, 8, 4) \ -X(YMM4F3, 335, ymm4, 12, 4) \ -X(YMM4F4, 336, ymm4, 16, 4) \ -X(YMM4F5, 337, ymm4, 20, 4) \ -X(YMM4F6, 338, ymm4, 24, 4) \ -X(YMM4F7, 339, ymm4, 28, 4) \ -X(YMM5F0, 340, ymm5, 0, 4) \ -X(YMM5F1, 341, ymm5, 4, 4) \ -X(YMM5F2, 342, ymm5, 8, 4) \ -X(YMM5F3, 343, ymm5, 12, 4) \ -X(YMM5F4, 344, ymm5, 16, 4) \ -X(YMM5F5, 345, ymm5, 20, 4) \ -X(YMM5F6, 346, ymm5, 24, 4) \ -X(YMM5F7, 347, ymm5, 28, 4) \ -X(YMM6F0, 348, ymm6, 0, 4) \ -X(YMM6F1, 349, ymm6, 4, 4) \ -X(YMM6F2, 350, ymm6, 8, 4) \ -X(YMM6F3, 351, ymm6, 12, 4) \ -X(YMM6F4, 352, ymm6, 16, 4) \ -X(YMM6F5, 353, ymm6, 20, 4) \ -X(YMM6F6, 354, ymm6, 24, 4) \ -X(YMM6F7, 355, ymm6, 28, 4) \ -X(YMM7F0, 356, ymm7, 0, 4) \ -X(YMM7F1, 357, ymm7, 4, 4) \ -X(YMM7F2, 358, ymm7, 8, 4) \ -X(YMM7F3, 359, ymm7, 12, 4) \ -X(YMM7F4, 360, ymm7, 16, 4) \ -X(YMM7F5, 361, ymm7, 20, 4) \ -X(YMM7F6, 362, ymm7, 24, 4) \ -X(YMM7F7, 363, ymm7, 28, 4) \ -X(YMM0D0, 364, ymm0, 0, 8) \ -X(YMM0D1, 365, ymm0, 8, 8) \ -X(YMM0D2, 366, ymm0, 16, 8) \ -X(YMM0D3, 367, ymm0, 24, 8) \ -X(YMM1D0, 368, ymm1, 0, 8) \ -X(YMM1D1, 369, ymm1, 8, 8) \ -X(YMM1D2, 370, ymm1, 16, 8) \ -X(YMM1D3, 371, ymm1, 24, 8) \ -X(YMM2D0, 372, ymm2, 0, 8) \ -X(YMM2D1, 373, ymm2, 8, 8) \ -X(YMM2D2, 374, ymm2, 16, 8) \ -X(YMM2D3, 375, ymm2, 24, 8) \ -X(YMM3D0, 376, ymm3, 0, 8) \ -X(YMM3D1, 377, ymm3, 8, 8) \ -X(YMM3D2, 378, ymm3, 16, 8) \ -X(YMM3D3, 379, ymm3, 24, 8) \ -X(YMM4D0, 380, ymm4, 0, 8) \ -X(YMM4D1, 381, ymm4, 8, 8) \ -X(YMM4D2, 382, ymm4, 16, 8) \ -X(YMM4D3, 383, ymm4, 24, 8) \ -X(YMM5D0, 384, ymm5, 0, 8) \ -X(YMM5D1, 385, ymm5, 8, 8) \ -X(YMM5D2, 386, ymm5, 16, 8) \ -X(YMM5D3, 387, ymm5, 24, 8) \ -X(YMM6D0, 388, ymm6, 0, 8) \ -X(YMM6D1, 389, ymm6, 8, 8) \ -X(YMM6D2, 390, ymm6, 16, 8) \ -X(YMM6D3, 391, ymm6, 24, 8) \ -X(YMM7D0, 392, ymm7, 0, 8) \ -X(YMM7D1, 393, ymm7, 8, 8) \ -X(YMM7D2, 394, ymm7, 16, 8) \ -X(YMM7D3, 395, ymm7, 24, 8) - -typedef U16 CV_Regx86; -typedef enum CV_Regx86Enum -{ -#define X(CVN,C,RDN,BP,BZ) CV_Regx86_##CVN = C, - CV_Reg_X86_XList(X) -#undef X -} -CV_Regx86Enum; - // X(NAME, CODE, (RDI_RegisterCode_X64) NAME, BYTE_POS, BYTE_SIZE) #define CV_Reg_X64_XList(X) \ X(NONE, 0, nil, 0, 0) \ @@ -382,14 +127,14 @@ X(FPDS, 142, nil, 0, 0) \ X(ISEM, 143, nil, 0, 0) \ X(FPEIP, 144, nil, 0, 0) \ X(FPEDO, 145, nil, 0, 0) \ -X(MM0, 146, fpr0, 0, 8) \ -X(MM1, 147, fpr1, 0, 8) \ -X(MM2, 148, fpr2, 0, 8) \ -X(MM3, 149, fpr3, 0, 8) \ -X(MM4, 150, fpr4, 0, 8) \ -X(MM5, 151, fpr5, 0, 8) \ -X(MM6, 152, fpr6, 0, 8) \ -X(MM7, 153, fpr7, 0, 8) \ +X(MM0, 146, st0, 0, 8) \ +X(MM1, 147, st1, 0, 8) \ +X(MM2, 148, st2, 0, 8) \ +X(MM3, 149, st3, 0, 8) \ +X(MM4, 150, st4, 0, 8) \ +X(MM5, 151, st5, 0, 8) \ +X(MM6, 152, st6, 0, 8) \ +X(MM7, 153, st7, 0, 8) \ X(XMM0, 154, zmm0, 0, 16) \ X(XMM1, 155, zmm1, 0, 16) \ X(XMM2, 156, zmm2, 0, 16) \ @@ -463,22 +208,22 @@ X(EMM4H, 232, zmm4, 8, 8) \ X(EMM5H, 233, zmm5, 8, 8) \ X(EMM6H, 234, zmm6, 8, 8) \ X(EMM7H, 235, zmm7, 8, 8) \ -X(MM00, 236, fpr0, 0, 4) \ -X(MM01, 237, fpr0, 4, 4) \ -X(MM10, 238, fpr1, 0, 4) \ -X(MM11, 239, fpr1, 4, 4) \ -X(MM20, 240, fpr2, 0, 4) \ -X(MM21, 241, fpr2, 4, 4) \ -X(MM30, 242, fpr3, 0, 4) \ -X(MM31, 243, fpr3, 4, 4) \ -X(MM40, 244, fpr4, 0, 4) \ -X(MM41, 245, fpr4, 4, 4) \ -X(MM50, 246, fpr5, 0, 4) \ -X(MM51, 247, fpr5, 4, 4) \ -X(MM60, 248, fpr6, 0, 4) \ -X(MM61, 249, fpr6, 4, 4) \ -X(MM70, 250, fpr7, 0, 4) \ -X(MM71, 251, fpr7, 4, 4) \ +X(MM00, 236, st0, 0, 4) \ +X(MM01, 237, st0, 4, 4) \ +X(MM10, 238, st1, 0, 4) \ +X(MM11, 239, st1, 4, 4) \ +X(MM20, 240, st2, 0, 4) \ +X(MM21, 241, st2, 4, 4) \ +X(MM30, 242, st3, 0, 4) \ +X(MM31, 243, st3, 4, 4) \ +X(MM40, 244, st4, 0, 4) \ +X(MM41, 245, st4, 4, 4) \ +X(MM50, 246, st5, 0, 4) \ +X(MM51, 247, st5, 4, 4) \ +X(MM60, 248, st6, 0, 4) \ +X(MM61, 249, st6, 4, 4) \ +X(MM70, 250, st7, 0, 4) \ +X(MM71, 251, st7, 4, 4) \ X(XMM8, 252, zmm8, 0, 16) \ X(XMM9, 253, zmm9, 0, 16) \ X(XMM10, 254, zmm10, 0, 16) \ @@ -1299,12 +1044,12 @@ CV_ThunkOrdinalEnum; typedef struct CV_SymThunk32 CV_SymThunk32; struct CV_SymThunk32 { - U32 parent; - U32 end; - U32 next; - U32 off; - U16 sec; - U16 len; + U32 parent; + U32 end; + U32 next; + U32 off; + U16 sec; + U16 len; CV_ThunkOrdinal ord; // U8[] name (null terminated) // U8[] variant (null terminated) @@ -1416,6 +1161,8 @@ struct CV_SymPub32 //- (SymKind: LPROC32, GPROC32) +#define CV_IsProc32(x) (x == CV_SymKind_LPROC32_ID || x == CV_SymKind_GPROC32_ID || x == CV_SymKind_LPROC32_DPC) + typedef struct CV_SymProc32 CV_SymProc32; struct CV_SymProc32 { @@ -2795,7 +2542,8 @@ X(TypeMDTokenMap, 0xFB) \ X(MergedAssemblyInput, 0xFC) \ X(CoffSymbolRVA, 0xFD) \ X(XfgHashType, 0xFF) \ -X(XfgHashVirtual, 0x100) +X(XfgHashVirtual, 0x100) \ +X(GlobalRefs, 0xCAFE) \ typedef U32 CV_C13SubSectionKind; typedef enum CV_C13SubSectionKindEnum @@ -2963,7 +2711,6 @@ struct CV_TypeIndexArray //////////////////////////////// internal CV_Arch cv_arch_from_coff_machine(COFF_MachineType machine); -internal U64 cv_size_from_reg_x86(CV_Reg reg); internal U64 cv_size_from_reg_x64(CV_Reg reg); internal U64 cv_size_from_reg(CV_Arch arch, CV_Reg reg); internal B32 cv_is_reg_sp(CV_Arch arch, CV_Reg reg); diff --git a/src/codeview/codeview_parse.c b/src/codeview/codeview_parse.c index bab4371f..1a44b83e 100644 --- a/src/codeview/codeview_parse.c +++ b/src/codeview/codeview_parse.c @@ -29,7 +29,7 @@ cv_numeric_from_data_range(U8 *first, U8 *opl) CV_NumericParsed result = {0}; if(first + 2 <= opl) { - U16 x = *(U16*)first; + U16 x = memory_read16(first); if(x < 0x8000) { result.kind = CV_NumericKind_USHORT; @@ -1606,3 +1606,31 @@ cv_c13_parsed_from_data(Arena *arena, String8 c13_data, String8 strtbl, COFF_Sec return result; } +//- rjf: record iterator + +internal B32 +cv_rec_next(String8 data, CV_RecRangeArray *recs, B32 is_leaf, CV_RecIter *iter) +{ + B32 result = 0; + { + U64 next_num = iter->num+1; + for(;1 <= next_num && next_num <= recs->count; next_num += 1) + { + CV_RecRange *rec_range = &recs->ranges[next_num-1]; + U64 rec_off_first = rec_range->off + 2; // (skip 2 header bytes) + U64 rec_off_opl = rec_range->off + rec_range->hdr.size; + U16 kind = rec_range->hdr.kind; + U64 header_struct_size = (is_leaf ? cv_header_struct_size_from_leaf_kind(kind) : cv_header_struct_size_from_sym_kind(kind)); + if(rec_off_opl <= data.size && rec_off_first + header_struct_size <= data.size) + { + result = 1; + iter->num = next_num; + iter->kind = kind; + iter->struct_base = data.str + rec_off_first; + iter->opl = data.str + rec_off_opl; + break; + } + } + } + return result; +} diff --git a/src/codeview/codeview_parse.h b/src/codeview/codeview_parse.h index 111d1288..c3337798 100644 --- a/src/codeview/codeview_parse.h +++ b/src/codeview/codeview_parse.h @@ -24,7 +24,7 @@ struct CV_NumericParsed typedef struct CV_RecRange CV_RecRange; struct CV_RecRange { - U32 off; + U32 off; CV_RecHeader hdr; }; @@ -34,7 +34,7 @@ typedef struct CV_RecRangeChunk CV_RecRangeChunk; struct CV_RecRangeChunk { struct CV_RecRangeChunk *next; - CV_RecRange ranges[CV_REC_RANGE_CHUNK_SIZE]; + CV_RecRange ranges[CV_REC_RANGE_CHUNK_SIZE]; }; typedef struct CV_RecRangeStream CV_RecRangeStream; @@ -42,14 +42,14 @@ struct CV_RecRangeStream { CV_RecRangeChunk *first_chunk; CV_RecRangeChunk *last_chunk; - U64 total_count; + U64 total_count; }; typedef struct CV_RecRangeArray CV_RecRangeArray; struct CV_RecRangeArray { CV_RecRange *ranges; - U64 count; + U64 count; }; //////////////////////////////// @@ -58,9 +58,9 @@ struct CV_RecRangeArray typedef struct CV_SymTopLevelInfo CV_SymTopLevelInfo; struct CV_SymTopLevelInfo { - CV_Arch arch; + CV_Arch arch; CV_Language language; - String8 compiler_name; + String8 compiler_name; }; typedef struct CV_SymParsed CV_SymParsed; @@ -236,6 +236,18 @@ struct CV_TypeIdArray U64 count; }; +//////////////////////////////// +//~ Record Iterator + +typedef struct CV_RecIter CV_RecIter; +struct CV_RecIter +{ + U64 num; + U16 kind; + void *struct_base; + void *opl; +}; + //////////////////////////////// //- Hasher @@ -301,5 +313,8 @@ internal CV_SymParsed * cv_sym_from_data(Arena *arena, String8 sym_data, U64 sym internal CV_LeafParsed * cv_leaf_from_data(Arena *arena, String8 leaf_data, CV_TypeId first); internal CV_C13Parsed * cv_c13_parsed_from_data(Arena *arena, String8 c13_data, String8 strtbl, COFF_SectionHeaderArray sections); +//- rjf: record iterator +internal B32 cv_rec_next(String8 data, CV_RecRangeArray *recs, B32 is_leaf, CV_RecIter *iter); + #endif // CODEVIEW_PARSE_H diff --git a/src/codeview/generated/codeview.meta.c b/src/codeview/generated/codeview.meta.c index 672e674a..2fcfaa11 100644 --- a/src/codeview/generated/codeview.meta.c +++ b/src/codeview/generated/codeview.meta.c @@ -1,718 +1,718 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -internal String8 -cv_string_from_numeric_kind(CV_NumericKind v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_NumericKind_CHAR:{result = str8_lit("CHAR");}break; -case CV_NumericKind_SHORT:{result = str8_lit("SHORT");}break; -case CV_NumericKind_USHORT:{result = str8_lit("USHORT");}break; -case CV_NumericKind_LONG:{result = str8_lit("LONG");}break; -case CV_NumericKind_ULONG:{result = str8_lit("ULONG");}break; -case CV_NumericKind_FLOAT32:{result = str8_lit("FLOAT32");}break; -case CV_NumericKind_FLOAT64:{result = str8_lit("FLOAT64");}break; -case CV_NumericKind_FLOAT80:{result = str8_lit("FLOAT80");}break; -case CV_NumericKind_FLOAT128:{result = str8_lit("FLOAT128");}break; -case CV_NumericKind_QUADWORD:{result = str8_lit("QUADWORD");}break; -case CV_NumericKind_UQUADWORD:{result = str8_lit("UQUADWORD");}break; -case CV_NumericKind_FLOAT48:{result = str8_lit("FLOAT48");}break; -case CV_NumericKind_COMPLEX32:{result = str8_lit("COMPLEX32");}break; -case CV_NumericKind_COMPLEX64:{result = str8_lit("COMPLEX64");}break; -case CV_NumericKind_COMPLEX80:{result = str8_lit("COMPLEX80");}break; -case CV_NumericKind_COMPLEX128:{result = str8_lit("COMPLEX128");}break; -case CV_NumericKind_VARSTRING:{result = str8_lit("VARSTRING");}break; -case CV_NumericKind_OCTWORD:{result = str8_lit("OCTWORD");}break; -case CV_NumericKind_UOCTWORD:{result = str8_lit("UOCTWORD");}break; -case CV_NumericKind_DECIMAL:{result = str8_lit("DECIMAL");}break; -case CV_NumericKind_DATE:{result = str8_lit("DATE");}break; -case CV_NumericKind_UTF8STRING:{result = str8_lit("UTF8STRING");}break; -case CV_NumericKind_FLOAT16:{result = str8_lit("FLOAT16");}break; -} -return result; -} - -internal String8 -cv_string_from_arch(CV_Arch v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_Arch_8080:{result = str8_lit("8080");}break; -case CV_Arch_8086:{result = str8_lit("8086");}break; -case CV_Arch_80286:{result = str8_lit("80286");}break; -case CV_Arch_80386:{result = str8_lit("80386");}break; -case CV_Arch_80486:{result = str8_lit("80486");}break; -case CV_Arch_PENTIUM:{result = str8_lit("PENTIUM");}break; -case CV_Arch_PENTIUMII:{result = str8_lit("PENTIUMII");}break; -case CV_Arch_PENTIUMIII:{result = str8_lit("PENTIUMIII");}break; -case CV_Arch_MIPS:{result = str8_lit("MIPS");}break; -case CV_Arch_MIPS16:{result = str8_lit("MIPS16");}break; -case CV_Arch_MIPS32:{result = str8_lit("MIPS32");}break; -case CV_Arch_MIPS64:{result = str8_lit("MIPS64");}break; -case CV_Arch_MIPSI:{result = str8_lit("MIPSI");}break; -case CV_Arch_MIPSII:{result = str8_lit("MIPSII");}break; -case CV_Arch_MIPSIII:{result = str8_lit("MIPSIII");}break; -case CV_Arch_MIPSIV:{result = str8_lit("MIPSIV");}break; -case CV_Arch_MIPSV:{result = str8_lit("MIPSV");}break; -case CV_Arch_M68000:{result = str8_lit("M68000");}break; -case CV_Arch_M68010:{result = str8_lit("M68010");}break; -case CV_Arch_M68020:{result = str8_lit("M68020");}break; -case CV_Arch_M68030:{result = str8_lit("M68030");}break; -case CV_Arch_M68040:{result = str8_lit("M68040");}break; -case CV_Arch_ALPHA:{result = str8_lit("ALPHA");}break; -case CV_Arch_ALPHA_21164:{result = str8_lit("ALPHA_21164");}break; -case CV_Arch_ALPHA_21164A:{result = str8_lit("ALPHA_21164A");}break; -case CV_Arch_ALPHA_21264:{result = str8_lit("ALPHA_21264");}break; -case CV_Arch_ALPHA_21364:{result = str8_lit("ALPHA_21364");}break; -case CV_Arch_PPC601:{result = str8_lit("PPC601");}break; -case CV_Arch_PPC603:{result = str8_lit("PPC603");}break; -case CV_Arch_PPC604:{result = str8_lit("PPC604");}break; -case CV_Arch_PPC620:{result = str8_lit("PPC620");}break; -case CV_Arch_PPCFP:{result = str8_lit("PPCFP");}break; -case CV_Arch_PPCBE:{result = str8_lit("PPCBE");}break; -case CV_Arch_SH3:{result = str8_lit("SH3");}break; -case CV_Arch_SH3E:{result = str8_lit("SH3E");}break; -case CV_Arch_SH3DSP:{result = str8_lit("SH3DSP");}break; -case CV_Arch_SH4:{result = str8_lit("SH4");}break; -case CV_Arch_SHMEDIA:{result = str8_lit("SHMEDIA");}break; -case CV_Arch_ARM3:{result = str8_lit("ARM3");}break; -case CV_Arch_ARM4:{result = str8_lit("ARM4");}break; -case CV_Arch_ARM4T:{result = str8_lit("ARM4T");}break; -case CV_Arch_ARM5:{result = str8_lit("ARM5");}break; -case CV_Arch_ARM5T:{result = str8_lit("ARM5T");}break; -case CV_Arch_ARM6:{result = str8_lit("ARM6");}break; -case CV_Arch_ARM_XMAC:{result = str8_lit("ARM_XMAC");}break; -case CV_Arch_ARM_WMMX:{result = str8_lit("ARM_WMMX");}break; -case CV_Arch_ARM7:{result = str8_lit("ARM7");}break; -case CV_Arch_OMNI:{result = str8_lit("OMNI");}break; -case CV_Arch_IA64_1:{result = str8_lit("IA64_1");}break; -case CV_Arch_IA64_2:{result = str8_lit("IA64_2");}break; -case CV_Arch_CEE:{result = str8_lit("CEE");}break; -case CV_Arch_AM33:{result = str8_lit("AM33");}break; -case CV_Arch_M32R:{result = str8_lit("M32R");}break; -case CV_Arch_TRICORE:{result = str8_lit("TRICORE");}break; -case CV_Arch_X64:{result = str8_lit("X64");}break; -case CV_Arch_EBC:{result = str8_lit("EBC");}break; -case CV_Arch_THUMB:{result = str8_lit("THUMB");}break; -case CV_Arch_ARMNT:{result = str8_lit("ARMNT");}break; -case CV_Arch_ARM64:{result = str8_lit("ARM64");}break; -case CV_Arch_D3D11_SHADER:{result = str8_lit("D3D11_SHADER");}break; -} -return result; -} - -internal String8 -cv_string_from_sym_kind(CV_SymKind v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_SymKind_COMPILE:{result = str8_lit("COMPILE");}break; -case CV_SymKind_REGISTER_16t:{result = str8_lit("REGISTER_16t");}break; -case CV_SymKind_CONSTANT_16t:{result = str8_lit("CONSTANT_16t");}break; -case CV_SymKind_UDT_16t:{result = str8_lit("UDT_16t");}break; -case CV_SymKind_SSEARCH:{result = str8_lit("SSEARCH");}break; -case CV_SymKind_END:{result = str8_lit("END");}break; -case CV_SymKind_SKIP:{result = str8_lit("SKIP");}break; -case CV_SymKind_CVRESERVE:{result = str8_lit("CVRESERVE");}break; -case CV_SymKind_OBJNAME_ST:{result = str8_lit("OBJNAME_ST");}break; -case CV_SymKind_ENDARG:{result = str8_lit("ENDARG");}break; -case CV_SymKind_COBOLUDT_16t:{result = str8_lit("COBOLUDT_16t");}break; -case CV_SymKind_MANYREG_16t:{result = str8_lit("MANYREG_16t");}break; -case CV_SymKind_RETURN:{result = str8_lit("RETURN");}break; -case CV_SymKind_ENTRYTHIS:{result = str8_lit("ENTRYTHIS");}break; -case CV_SymKind_BPREL16:{result = str8_lit("BPREL16");}break; -case CV_SymKind_LDATA16:{result = str8_lit("LDATA16");}break; -case CV_SymKind_GDATA16:{result = str8_lit("GDATA16");}break; -case CV_SymKind_PUB16:{result = str8_lit("PUB16");}break; -case CV_SymKind_LPROC16:{result = str8_lit("LPROC16");}break; -case CV_SymKind_GPROC16:{result = str8_lit("GPROC16");}break; -case CV_SymKind_THUNK16:{result = str8_lit("THUNK16");}break; -case CV_SymKind_BLOCK16:{result = str8_lit("BLOCK16");}break; -case CV_SymKind_WITH16:{result = str8_lit("WITH16");}break; -case CV_SymKind_LABEL16:{result = str8_lit("LABEL16");}break; -case CV_SymKind_CEXMODEL16:{result = str8_lit("CEXMODEL16");}break; -case CV_SymKind_VFTABLE16:{result = str8_lit("VFTABLE16");}break; -case CV_SymKind_REGREL16:{result = str8_lit("REGREL16");}break; -case CV_SymKind_BPREL32_16t:{result = str8_lit("BPREL32_16t");}break; -case CV_SymKind_LDATA32_16t:{result = str8_lit("LDATA32_16t");}break; -case CV_SymKind_GDATA32_16t:{result = str8_lit("GDATA32_16t");}break; -case CV_SymKind_PUB32_16t:{result = str8_lit("PUB32_16t");}break; -case CV_SymKind_LPROC32_16t:{result = str8_lit("LPROC32_16t");}break; -case CV_SymKind_GPROC32_16t:{result = str8_lit("GPROC32_16t");}break; -case CV_SymKind_THUNK32_ST:{result = str8_lit("THUNK32_ST");}break; -case CV_SymKind_BLOCK32_ST:{result = str8_lit("BLOCK32_ST");}break; -case CV_SymKind_WITH32_ST:{result = str8_lit("WITH32_ST");}break; -case CV_SymKind_LABEL32_ST:{result = str8_lit("LABEL32_ST");}break; -case CV_SymKind_CEXMODEL32:{result = str8_lit("CEXMODEL32");}break; -case CV_SymKind_VFTABLE32_16t:{result = str8_lit("VFTABLE32_16t");}break; -case CV_SymKind_REGREL32_16t:{result = str8_lit("REGREL32_16t");}break; -case CV_SymKind_LTHREAD32_16t:{result = str8_lit("LTHREAD32_16t");}break; -case CV_SymKind_GTHREAD32_16t:{result = str8_lit("GTHREAD32_16t");}break; -case CV_SymKind_SLINK32:{result = str8_lit("SLINK32");}break; -case CV_SymKind_LPROCMIPS_16t:{result = str8_lit("LPROCMIPS_16t");}break; -case CV_SymKind_GPROCMIPS_16t:{result = str8_lit("GPROCMIPS_16t");}break; -case CV_SymKind_PROCREF_ST:{result = str8_lit("PROCREF_ST");}break; -case CV_SymKind_DATAREF_ST:{result = str8_lit("DATAREF_ST");}break; -case CV_SymKind_ALIGN:{result = str8_lit("ALIGN");}break; -case CV_SymKind_LPROCREF_ST:{result = str8_lit("LPROCREF_ST");}break; -case CV_SymKind_OEM:{result = str8_lit("OEM");}break; -case CV_SymKind_TI16_MAX:{result = str8_lit("TI16_MAX");}break; -case CV_SymKind_CONSTANT_ST:{result = str8_lit("CONSTANT_ST");}break; -case CV_SymKind_UDT_ST:{result = str8_lit("UDT_ST");}break; -case CV_SymKind_COBOLUDT_ST:{result = str8_lit("COBOLUDT_ST");}break; -case CV_SymKind_MANYREG_ST:{result = str8_lit("MANYREG_ST");}break; -case CV_SymKind_BPREL32_ST:{result = str8_lit("BPREL32_ST");}break; -case CV_SymKind_LDATA32_ST:{result = str8_lit("LDATA32_ST");}break; -case CV_SymKind_GDATA32_ST:{result = str8_lit("GDATA32_ST");}break; -case CV_SymKind_PUB32_ST:{result = str8_lit("PUB32_ST");}break; -case CV_SymKind_LPROC32_ST:{result = str8_lit("LPROC32_ST");}break; -case CV_SymKind_GPROC32_ST:{result = str8_lit("GPROC32_ST");}break; -case CV_SymKind_VFTABLE32:{result = str8_lit("VFTABLE32");}break; -case CV_SymKind_REGREL32_ST:{result = str8_lit("REGREL32_ST");}break; -case CV_SymKind_LTHREAD32_ST:{result = str8_lit("LTHREAD32_ST");}break; -case CV_SymKind_GTHREAD32_ST:{result = str8_lit("GTHREAD32_ST");}break; -case CV_SymKind_LPROCMIPS_ST:{result = str8_lit("LPROCMIPS_ST");}break; -case CV_SymKind_GPROCMIPS_ST:{result = str8_lit("GPROCMIPS_ST");}break; -case CV_SymKind_FRAMEPROC:{result = str8_lit("FRAMEPROC");}break; -case CV_SymKind_COMPILE2_ST:{result = str8_lit("COMPILE2_ST");}break; -case CV_SymKind_MANYREG2_ST:{result = str8_lit("MANYREG2_ST");}break; -case CV_SymKind_LPROCIA64_ST:{result = str8_lit("LPROCIA64_ST");}break; -case CV_SymKind_GPROCIA64_ST:{result = str8_lit("GPROCIA64_ST");}break; -case CV_SymKind_LOCALSLOT_ST:{result = str8_lit("LOCALSLOT_ST");}break; -case CV_SymKind_PARAMSLOT_ST:{result = str8_lit("PARAMSLOT_ST");}break; -case CV_SymKind_ANNOTATION:{result = str8_lit("ANNOTATION");}break; -case CV_SymKind_GMANPROC_ST:{result = str8_lit("GMANPROC_ST");}break; -case CV_SymKind_LMANPROC_ST:{result = str8_lit("LMANPROC_ST");}break; -case CV_SymKind_RESERVED1:{result = str8_lit("RESERVED1");}break; -case CV_SymKind_RESERVED2:{result = str8_lit("RESERVED2");}break; -case CV_SymKind_RESERVED3:{result = str8_lit("RESERVED3");}break; -case CV_SymKind_RESERVED4:{result = str8_lit("RESERVED4");}break; -case CV_SymKind_LMANDATA_ST:{result = str8_lit("LMANDATA_ST");}break; -case CV_SymKind_GMANDATA_ST:{result = str8_lit("GMANDATA_ST");}break; -case CV_SymKind_MANFRAMEREL_ST:{result = str8_lit("MANFRAMEREL_ST");}break; -case CV_SymKind_MANREGISTER_ST:{result = str8_lit("MANREGISTER_ST");}break; -case CV_SymKind_MANSLOT_ST:{result = str8_lit("MANSLOT_ST");}break; -case CV_SymKind_MANMANYREG_ST:{result = str8_lit("MANMANYREG_ST");}break; -case CV_SymKind_MANREGREL_ST:{result = str8_lit("MANREGREL_ST");}break; -case CV_SymKind_MANMANYREG2_ST:{result = str8_lit("MANMANYREG2_ST");}break; -case CV_SymKind_MANTYPREF:{result = str8_lit("MANTYPREF");}break; -case CV_SymKind_UNAMESPACE_ST:{result = str8_lit("UNAMESPACE_ST");}break; -case CV_SymKind_ST_MAX:{result = str8_lit("ST_MAX");}break; -case CV_SymKind_OBJNAME:{result = str8_lit("OBJNAME");}break; -case CV_SymKind_THUNK32:{result = str8_lit("THUNK32");}break; -case CV_SymKind_BLOCK32:{result = str8_lit("BLOCK32");}break; -case CV_SymKind_WITH32:{result = str8_lit("WITH32");}break; -case CV_SymKind_LABEL32:{result = str8_lit("LABEL32");}break; -case CV_SymKind_REGISTER:{result = str8_lit("REGISTER");}break; -case CV_SymKind_CONSTANT:{result = str8_lit("CONSTANT");}break; -case CV_SymKind_UDT:{result = str8_lit("UDT");}break; -case CV_SymKind_COBOLUDT:{result = str8_lit("COBOLUDT");}break; -case CV_SymKind_MANYREG:{result = str8_lit("MANYREG");}break; -case CV_SymKind_BPREL32:{result = str8_lit("BPREL32");}break; -case CV_SymKind_LDATA32:{result = str8_lit("LDATA32");}break; -case CV_SymKind_GDATA32:{result = str8_lit("GDATA32");}break; -case CV_SymKind_PUB32:{result = str8_lit("PUB32");}break; -case CV_SymKind_LPROC32:{result = str8_lit("LPROC32");}break; -case CV_SymKind_GPROC32:{result = str8_lit("GPROC32");}break; -case CV_SymKind_REGREL32:{result = str8_lit("REGREL32");}break; -case CV_SymKind_LTHREAD32:{result = str8_lit("LTHREAD32");}break; -case CV_SymKind_GTHREAD32:{result = str8_lit("GTHREAD32");}break; -case CV_SymKind_LPROCMIPS:{result = str8_lit("LPROCMIPS");}break; -case CV_SymKind_GPROCMIPS:{result = str8_lit("GPROCMIPS");}break; -case CV_SymKind_COMPILE2:{result = str8_lit("COMPILE2");}break; -case CV_SymKind_MANYREG2:{result = str8_lit("MANYREG2");}break; -case CV_SymKind_LPROCIA64:{result = str8_lit("LPROCIA64");}break; -case CV_SymKind_GPROCIA64:{result = str8_lit("GPROCIA64");}break; -case CV_SymKind_LOCALSLOT:{result = str8_lit("LOCALSLOT");}break; -case CV_SymKind_PARAMSLOT:{result = str8_lit("PARAMSLOT");}break; -case CV_SymKind_LMANDATA:{result = str8_lit("LMANDATA");}break; -case CV_SymKind_GMANDATA:{result = str8_lit("GMANDATA");}break; -case CV_SymKind_MANFRAMEREL:{result = str8_lit("MANFRAMEREL");}break; -case CV_SymKind_MANREGISTER:{result = str8_lit("MANREGISTER");}break; -case CV_SymKind_MANSLOT:{result = str8_lit("MANSLOT");}break; -case CV_SymKind_MANMANYREG:{result = str8_lit("MANMANYREG");}break; -case CV_SymKind_MANREGREL:{result = str8_lit("MANREGREL");}break; -case CV_SymKind_MANMANYREG2:{result = str8_lit("MANMANYREG2");}break; -case CV_SymKind_UNAMESPACE:{result = str8_lit("UNAMESPACE");}break; -case CV_SymKind_PROCREF:{result = str8_lit("PROCREF");}break; -case CV_SymKind_DATAREF:{result = str8_lit("DATAREF");}break; -case CV_SymKind_LPROCREF:{result = str8_lit("LPROCREF");}break; -case CV_SymKind_ANNOTATIONREF:{result = str8_lit("ANNOTATIONREF");}break; -case CV_SymKind_TOKENREF:{result = str8_lit("TOKENREF");}break; -case CV_SymKind_GMANPROC:{result = str8_lit("GMANPROC");}break; -case CV_SymKind_LMANPROC:{result = str8_lit("LMANPROC");}break; -case CV_SymKind_TRAMPOLINE:{result = str8_lit("TRAMPOLINE");}break; -case CV_SymKind_MANCONSTANT:{result = str8_lit("MANCONSTANT");}break; -case CV_SymKind_ATTR_FRAMEREL:{result = str8_lit("ATTR_FRAMEREL");}break; -case CV_SymKind_ATTR_REGISTER:{result = str8_lit("ATTR_REGISTER");}break; -case CV_SymKind_ATTR_REGREL:{result = str8_lit("ATTR_REGREL");}break; -case CV_SymKind_ATTR_MANYREG:{result = str8_lit("ATTR_MANYREG");}break; -case CV_SymKind_SEPCODE:{result = str8_lit("SEPCODE");}break; -case CV_SymKind_DEFRANGE_2005:{result = str8_lit("DEFRANGE_2005");}break; -case CV_SymKind_DEFRANGE2_2005:{result = str8_lit("DEFRANGE2_2005");}break; -case CV_SymKind_SECTION:{result = str8_lit("SECTION");}break; -case CV_SymKind_COFFGROUP:{result = str8_lit("COFFGROUP");}break; -case CV_SymKind_EXPORT:{result = str8_lit("EXPORT");}break; -case CV_SymKind_CALLSITEINFO:{result = str8_lit("CALLSITEINFO");}break; -case CV_SymKind_FRAMECOOKIE:{result = str8_lit("FRAMECOOKIE");}break; -case CV_SymKind_DISCARDED:{result = str8_lit("DISCARDED");}break; -case CV_SymKind_COMPILE3:{result = str8_lit("COMPILE3");}break; -case CV_SymKind_ENVBLOCK:{result = str8_lit("ENVBLOCK");}break; -case CV_SymKind_LOCAL:{result = str8_lit("LOCAL");}break; -case CV_SymKind_DEFRANGE:{result = str8_lit("DEFRANGE");}break; -case CV_SymKind_DEFRANGE_SUBFIELD:{result = str8_lit("DEFRANGE_SUBFIELD");}break; -case CV_SymKind_DEFRANGE_REGISTER:{result = str8_lit("DEFRANGE_REGISTER");}break; -case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL:{result = str8_lit("DEFRANGE_FRAMEPOINTER_REL");}break; -case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER:{result = str8_lit("DEFRANGE_SUBFIELD_REGISTER");}break; -case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE:{result = str8_lit("DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE");}break; -case CV_SymKind_DEFRANGE_REGISTER_REL:{result = str8_lit("DEFRANGE_REGISTER_REL");}break; -case CV_SymKind_LPROC32_ID:{result = str8_lit("LPROC32_ID");}break; -case CV_SymKind_GPROC32_ID:{result = str8_lit("GPROC32_ID");}break; -case CV_SymKind_LPROCMIPS_ID:{result = str8_lit("LPROCMIPS_ID");}break; -case CV_SymKind_GPROCMIPS_ID:{result = str8_lit("GPROCMIPS_ID");}break; -case CV_SymKind_LPROCIA64_ID:{result = str8_lit("LPROCIA64_ID");}break; -case CV_SymKind_GPROCIA64_ID:{result = str8_lit("GPROCIA64_ID");}break; -case CV_SymKind_BUILDINFO:{result = str8_lit("BUILDINFO");}break; -case CV_SymKind_INLINESITE:{result = str8_lit("INLINESITE");}break; -case CV_SymKind_INLINESITE_END:{result = str8_lit("INLINESITE_END");}break; -case CV_SymKind_PROC_ID_END:{result = str8_lit("PROC_ID_END");}break; -case CV_SymKind_DEFRANGE_HLSL:{result = str8_lit("DEFRANGE_HLSL");}break; -case CV_SymKind_GDATA_HLSL:{result = str8_lit("GDATA_HLSL");}break; -case CV_SymKind_LDATA_HLSL:{result = str8_lit("LDATA_HLSL");}break; -case CV_SymKind_FILESTATIC:{result = str8_lit("FILESTATIC");}break; -case CV_SymKind_LPROC32_DPC:{result = str8_lit("LPROC32_DPC");}break; -case CV_SymKind_LPROC32_DPC_ID:{result = str8_lit("LPROC32_DPC_ID");}break; -case CV_SymKind_DEFRANGE_DPC_PTR_TAG:{result = str8_lit("DEFRANGE_DPC_PTR_TAG");}break; -case CV_SymKind_DPC_SYM_TAG_MAP:{result = str8_lit("DPC_SYM_TAG_MAP");}break; -case CV_SymKind_ARMSWITCHTABLE:{result = str8_lit("ARMSWITCHTABLE");}break; -case CV_SymKind_CALLEES:{result = str8_lit("CALLEES");}break; -case CV_SymKind_CALLERS:{result = str8_lit("CALLERS");}break; -case CV_SymKind_POGODATA:{result = str8_lit("POGODATA");}break; -case CV_SymKind_INLINESITE2:{result = str8_lit("INLINESITE2");}break; -case CV_SymKind_HEAPALLOCSITE:{result = str8_lit("HEAPALLOCSITE");}break; -case CV_SymKind_MOD_TYPEREF:{result = str8_lit("MOD_TYPEREF");}break; -case CV_SymKind_REF_MINIPDB:{result = str8_lit("REF_MINIPDB");}break; -case CV_SymKind_PDBMAP:{result = str8_lit("PDBMAP");}break; -case CV_SymKind_GDATA_HLSL32:{result = str8_lit("GDATA_HLSL32");}break; -case CV_SymKind_LDATA_HLSL32:{result = str8_lit("LDATA_HLSL32");}break; -case CV_SymKind_GDATA_HLSL32_EX:{result = str8_lit("GDATA_HLSL32_EX");}break; -case CV_SymKind_LDATA_HLSL32_EX:{result = str8_lit("LDATA_HLSL32_EX");}break; -case CV_SymKind_FASTLINK:{result = str8_lit("FASTLINK");}break; -case CV_SymKind_INLINEES:{result = str8_lit("INLINEES");}break; -} -return result; -} - -internal String8 -cv_string_from_basic_type(CV_BasicType v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_BasicType_NOTYPE:{result = str8_lit("NOTYPE");}break; -case CV_BasicType_ABS:{result = str8_lit("ABS");}break; -case CV_BasicType_SEGMENT:{result = str8_lit("SEGMENT");}break; -case CV_BasicType_VOID:{result = str8_lit("VOID");}break; -case CV_BasicType_CURRENCY:{result = str8_lit("CURRENCY");}break; -case CV_BasicType_NBASICSTR:{result = str8_lit("NBASICSTR");}break; -case CV_BasicType_FBASICSTR:{result = str8_lit("FBASICSTR");}break; -case CV_BasicType_NOTTRANS:{result = str8_lit("NOTTRANS");}break; -case CV_BasicType_HRESULT:{result = str8_lit("HRESULT");}break; -case CV_BasicType_CHAR:{result = str8_lit("CHAR");}break; -case CV_BasicType_SHORT:{result = str8_lit("SHORT");}break; -case CV_BasicType_LONG:{result = str8_lit("LONG");}break; -case CV_BasicType_QUAD:{result = str8_lit("QUAD");}break; -case CV_BasicType_OCT:{result = str8_lit("OCT");}break; -case CV_BasicType_UCHAR:{result = str8_lit("UCHAR");}break; -case CV_BasicType_USHORT:{result = str8_lit("USHORT");}break; -case CV_BasicType_ULONG:{result = str8_lit("ULONG");}break; -case CV_BasicType_UQUAD:{result = str8_lit("UQUAD");}break; -case CV_BasicType_UOCT:{result = str8_lit("UOCT");}break; -case CV_BasicType_BOOL8:{result = str8_lit("BOOL8");}break; -case CV_BasicType_BOOL16:{result = str8_lit("BOOL16");}break; -case CV_BasicType_BOOL32:{result = str8_lit("BOOL32");}break; -case CV_BasicType_BOOL64:{result = str8_lit("BOOL64");}break; -case CV_BasicType_FLOAT32:{result = str8_lit("FLOAT32");}break; -case CV_BasicType_FLOAT64:{result = str8_lit("FLOAT64");}break; -case CV_BasicType_FLOAT80:{result = str8_lit("FLOAT80");}break; -case CV_BasicType_FLOAT128:{result = str8_lit("FLOAT128");}break; -case CV_BasicType_FLOAT48:{result = str8_lit("FLOAT48");}break; -case CV_BasicType_FLOAT32PP:{result = str8_lit("FLOAT32PP");}break; -case CV_BasicType_FLOAT16:{result = str8_lit("FLOAT16");}break; -case CV_BasicType_COMPLEX32:{result = str8_lit("COMPLEX32");}break; -case CV_BasicType_COMPLEX64:{result = str8_lit("COMPLEX64");}break; -case CV_BasicType_COMPLEX80:{result = str8_lit("COMPLEX80");}break; -case CV_BasicType_COMPLEX128:{result = str8_lit("COMPLEX128");}break; -case CV_BasicType_BIT:{result = str8_lit("BIT");}break; -case CV_BasicType_PASCHAR:{result = str8_lit("PASCHAR");}break; -case CV_BasicType_BOOL32FF:{result = str8_lit("BOOL32FF");}break; -case CV_BasicType_INT8:{result = str8_lit("INT8");}break; -case CV_BasicType_UINT8:{result = str8_lit("UINT8");}break; -case CV_BasicType_RCHAR:{result = str8_lit("RCHAR");}break; -case CV_BasicType_WCHAR:{result = str8_lit("WCHAR");}break; -case CV_BasicType_INT16:{result = str8_lit("INT16");}break; -case CV_BasicType_UINT16:{result = str8_lit("UINT16");}break; -case CV_BasicType_INT32:{result = str8_lit("INT32");}break; -case CV_BasicType_UINT32:{result = str8_lit("UINT32");}break; -case CV_BasicType_INT64:{result = str8_lit("INT64");}break; -case CV_BasicType_UINT64:{result = str8_lit("UINT64");}break; -case CV_BasicType_INT128:{result = str8_lit("INT128");}break; -case CV_BasicType_UINT128:{result = str8_lit("UINT128");}break; -case CV_BasicType_CHAR16:{result = str8_lit("CHAR16");}break; -case CV_BasicType_CHAR32:{result = str8_lit("CHAR32");}break; -case CV_BasicType_CHAR8:{result = str8_lit("CHAR8");}break; -case CV_BasicType_PTR:{result = str8_lit("PTR");}break; -} -return result; -} - -internal String8 -cv_type_name_from_basic_type(CV_BasicType v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_BasicType_NOTYPE:{result = str8_lit("");}break; -case CV_BasicType_ABS:{result = str8_lit("");}break; -case CV_BasicType_SEGMENT:{result = str8_lit("");}break; -case CV_BasicType_VOID:{result = str8_lit("void");}break; -case CV_BasicType_CURRENCY:{result = str8_lit("");}break; -case CV_BasicType_NBASICSTR:{result = str8_lit("");}break; -case CV_BasicType_FBASICSTR:{result = str8_lit("");}break; -case CV_BasicType_NOTTRANS:{result = str8_lit("");}break; -case CV_BasicType_HRESULT:{result = str8_lit("HRESULT");}break; -case CV_BasicType_CHAR:{result = str8_lit("CHAR");}break; -case CV_BasicType_SHORT:{result = str8_lit("SHORT");}break; -case CV_BasicType_LONG:{result = str8_lit("LONG");}break; -case CV_BasicType_QUAD:{result = str8_lit("QUAD");}break; -case CV_BasicType_OCT:{result = str8_lit("OCT");}break; -case CV_BasicType_UCHAR:{result = str8_lit("UCHAR");}break; -case CV_BasicType_USHORT:{result = str8_lit("USHORT");}break; -case CV_BasicType_ULONG:{result = str8_lit("ULONG");}break; -case CV_BasicType_UQUAD:{result = str8_lit("UQUAD");}break; -case CV_BasicType_UOCT:{result = str8_lit("UOCT");}break; -case CV_BasicType_BOOL8:{result = str8_lit("BOOL8");}break; -case CV_BasicType_BOOL16:{result = str8_lit("BOOL16");}break; -case CV_BasicType_BOOL32:{result = str8_lit("BOOL32");}break; -case CV_BasicType_BOOL64:{result = str8_lit("BOOL64");}break; -case CV_BasicType_FLOAT32:{result = str8_lit("FLOAT32");}break; -case CV_BasicType_FLOAT64:{result = str8_lit("FLOAT64");}break; -case CV_BasicType_FLOAT80:{result = str8_lit("FLOAT80");}break; -case CV_BasicType_FLOAT128:{result = str8_lit("FLOAT128");}break; -case CV_BasicType_FLOAT48:{result = str8_lit("FLOAT48");}break; -case CV_BasicType_FLOAT32PP:{result = str8_lit("FLOAT32PP");}break; -case CV_BasicType_FLOAT16:{result = str8_lit("FLOAT16");}break; -case CV_BasicType_COMPLEX32:{result = str8_lit("ComplexF32");}break; -case CV_BasicType_COMPLEX64:{result = str8_lit("ComplexF64");}break; -case CV_BasicType_COMPLEX80:{result = str8_lit("ComplexF80");}break; -case CV_BasicType_COMPLEX128:{result = str8_lit("ComplexF128");}break; -case CV_BasicType_BIT:{result = str8_lit("");}break; -case CV_BasicType_PASCHAR:{result = str8_lit("");}break; -case CV_BasicType_BOOL32FF:{result = str8_lit("BOOL32FF");}break; -case CV_BasicType_INT8:{result = str8_lit("int8");}break; -case CV_BasicType_UINT8:{result = str8_lit("uint8");}break; -case CV_BasicType_RCHAR:{result = str8_lit("char");}break; -case CV_BasicType_WCHAR:{result = str8_lit("WCHAR");}break; -case CV_BasicType_INT16:{result = str8_lit("int16");}break; -case CV_BasicType_UINT16:{result = str8_lit("uint16");}break; -case CV_BasicType_INT32:{result = str8_lit("int32");}break; -case CV_BasicType_UINT32:{result = str8_lit("uint32");}break; -case CV_BasicType_INT64:{result = str8_lit("int64");}break; -case CV_BasicType_UINT64:{result = str8_lit("uint64");}break; -case CV_BasicType_INT128:{result = str8_lit("int128");}break; -case CV_BasicType_UINT128:{result = str8_lit("uint128");}break; -case CV_BasicType_CHAR16:{result = str8_lit("char16");}break; -case CV_BasicType_CHAR32:{result = str8_lit("char32");}break; -case CV_BasicType_CHAR8:{result = str8_lit("char");}break; -case CV_BasicType_PTR:{result = str8_lit("PTR");}break; -} -return result; -} - -internal String8 -cv_string_from_leaf_kind(CV_LeafKind v) -{ -String8 result = str8_lit(""); -switch(v) -{ -default:{}break; -case CV_LeafKind_NOTYPE:{result = str8_lit("NOTYPE");}break; -case CV_LeafKind_MODIFIER_16t:{result = str8_lit("MODIFIER_16t");}break; -case CV_LeafKind_POINTER_16t:{result = str8_lit("POINTER_16t");}break; -case CV_LeafKind_ARRAY_16t:{result = str8_lit("ARRAY_16t");}break; -case CV_LeafKind_CLASS_16t:{result = str8_lit("CLASS_16t");}break; -case CV_LeafKind_STRUCTURE_16t:{result = str8_lit("STRUCTURE_16t");}break; -case CV_LeafKind_UNION_16t:{result = str8_lit("UNION_16t");}break; -case CV_LeafKind_ENUM_16t:{result = str8_lit("ENUM_16t");}break; -case CV_LeafKind_PROCEDURE_16t:{result = str8_lit("PROCEDURE_16t");}break; -case CV_LeafKind_MFUNCTION_16t:{result = str8_lit("MFUNCTION_16t");}break; -case CV_LeafKind_VTSHAPE:{result = str8_lit("VTSHAPE");}break; -case CV_LeafKind_COBOL0_16t:{result = str8_lit("COBOL0_16t");}break; -case CV_LeafKind_COBOL1:{result = str8_lit("COBOL1");}break; -case CV_LeafKind_BARRAY_16t:{result = str8_lit("BARRAY_16t");}break; -case CV_LeafKind_LABEL:{result = str8_lit("LABEL");}break; -case CV_LeafKind_NULL:{result = str8_lit("NULL");}break; -case CV_LeafKind_NOTTRAN:{result = str8_lit("NOTTRAN");}break; -case CV_LeafKind_DIMARRAY_16t:{result = str8_lit("DIMARRAY_16t");}break; -case CV_LeafKind_VFTPATH_16t:{result = str8_lit("VFTPATH_16t");}break; -case CV_LeafKind_PRECOMP_16t:{result = str8_lit("PRECOMP_16t");}break; -case CV_LeafKind_ENDPRECOMP:{result = str8_lit("ENDPRECOMP");}break; -case CV_LeafKind_OEM_16t:{result = str8_lit("OEM_16t");}break; -case CV_LeafKind_TYPESERVER_ST:{result = str8_lit("TYPESERVER_ST");}break; -case CV_LeafKind_SKIP_16t:{result = str8_lit("SKIP_16t");}break; -case CV_LeafKind_ARGLIST_16t:{result = str8_lit("ARGLIST_16t");}break; -case CV_LeafKind_DEFARG_16t:{result = str8_lit("DEFARG_16t");}break; -case CV_LeafKind_LIST:{result = str8_lit("LIST");}break; -case CV_LeafKind_FIELDLIST_16t:{result = str8_lit("FIELDLIST_16t");}break; -case CV_LeafKind_DERIVED_16t:{result = str8_lit("DERIVED_16t");}break; -case CV_LeafKind_BITFIELD_16t:{result = str8_lit("BITFIELD_16t");}break; -case CV_LeafKind_METHODLIST_16t:{result = str8_lit("METHODLIST_16t");}break; -case CV_LeafKind_DIMCONU_16t:{result = str8_lit("DIMCONU_16t");}break; -case CV_LeafKind_DIMCONLU_16t:{result = str8_lit("DIMCONLU_16t");}break; -case CV_LeafKind_DIMVARU_16t:{result = str8_lit("DIMVARU_16t");}break; -case CV_LeafKind_DIMVARLU_16t:{result = str8_lit("DIMVARLU_16t");}break; -case CV_LeafKind_REFSYM:{result = str8_lit("REFSYM");}break; -case CV_LeafKind_BCLASS_16t:{result = str8_lit("BCLASS_16t");}break; -case CV_LeafKind_VBCLASS_16t:{result = str8_lit("VBCLASS_16t");}break; -case CV_LeafKind_IVBCLASS_16t:{result = str8_lit("IVBCLASS_16t");}break; -case CV_LeafKind_ENUMERATE_ST:{result = str8_lit("ENUMERATE_ST");}break; -case CV_LeafKind_FRIENDFCN_16t:{result = str8_lit("FRIENDFCN_16t");}break; -case CV_LeafKind_INDEX_16t:{result = str8_lit("INDEX_16t");}break; -case CV_LeafKind_MEMBER_16t:{result = str8_lit("MEMBER_16t");}break; -case CV_LeafKind_STMEMBER_16t:{result = str8_lit("STMEMBER_16t");}break; -case CV_LeafKind_METHOD_16t:{result = str8_lit("METHOD_16t");}break; -case CV_LeafKind_NESTTYPE_16t:{result = str8_lit("NESTTYPE_16t");}break; -case CV_LeafKind_VFUNCTAB_16t:{result = str8_lit("VFUNCTAB_16t");}break; -case CV_LeafKind_FRIENDCLS_16t:{result = str8_lit("FRIENDCLS_16t");}break; -case CV_LeafKind_ONEMETHOD_16t:{result = str8_lit("ONEMETHOD_16t");}break; -case CV_LeafKind_VFUNCOFF_16t:{result = str8_lit("VFUNCOFF_16t");}break; -case CV_LeafKind_TI16_MAX:{result = str8_lit("TI16_MAX");}break; -case CV_LeafKind_MODIFIER:{result = str8_lit("MODIFIER");}break; -case CV_LeafKind_POINTER:{result = str8_lit("POINTER");}break; -case CV_LeafKind_ARRAY_ST:{result = str8_lit("ARRAY_ST");}break; -case CV_LeafKind_CLASS_ST:{result = str8_lit("CLASS_ST");}break; -case CV_LeafKind_STRUCTURE_ST:{result = str8_lit("STRUCTURE_ST");}break; -case CV_LeafKind_UNION_ST:{result = str8_lit("UNION_ST");}break; -case CV_LeafKind_ENUM_ST:{result = str8_lit("ENUM_ST");}break; -case CV_LeafKind_PROCEDURE:{result = str8_lit("PROCEDURE");}break; -case CV_LeafKind_MFUNCTION:{result = str8_lit("MFUNCTION");}break; -case CV_LeafKind_COBOL0:{result = str8_lit("COBOL0");}break; -case CV_LeafKind_BARRAY:{result = str8_lit("BARRAY");}break; -case CV_LeafKind_DIMARRAY_ST:{result = str8_lit("DIMARRAY_ST");}break; -case CV_LeafKind_VFTPATH:{result = str8_lit("VFTPATH");}break; -case CV_LeafKind_PRECOMP_ST:{result = str8_lit("PRECOMP_ST");}break; -case CV_LeafKind_OEM:{result = str8_lit("OEM");}break; -case CV_LeafKind_ALIAS_ST:{result = str8_lit("ALIAS_ST");}break; -case CV_LeafKind_OEM2:{result = str8_lit("OEM2");}break; -case CV_LeafKind_SKIP:{result = str8_lit("SKIP");}break; -case CV_LeafKind_ARGLIST:{result = str8_lit("ARGLIST");}break; -case CV_LeafKind_DEFARG_ST:{result = str8_lit("DEFARG_ST");}break; -case CV_LeafKind_FIELDLIST:{result = str8_lit("FIELDLIST");}break; -case CV_LeafKind_DERIVED:{result = str8_lit("DERIVED");}break; -case CV_LeafKind_BITFIELD:{result = str8_lit("BITFIELD");}break; -case CV_LeafKind_METHODLIST:{result = str8_lit("METHODLIST");}break; -case CV_LeafKind_DIMCONU:{result = str8_lit("DIMCONU");}break; -case CV_LeafKind_DIMCONLU:{result = str8_lit("DIMCONLU");}break; -case CV_LeafKind_DIMVARU:{result = str8_lit("DIMVARU");}break; -case CV_LeafKind_DIMVARLU:{result = str8_lit("DIMVARLU");}break; -case CV_LeafKind_BCLASS:{result = str8_lit("BCLASS");}break; -case CV_LeafKind_VBCLASS:{result = str8_lit("VBCLASS");}break; -case CV_LeafKind_IVBCLASS:{result = str8_lit("IVBCLASS");}break; -case CV_LeafKind_FRIENDFCN_ST:{result = str8_lit("FRIENDFCN_ST");}break; -case CV_LeafKind_INDEX:{result = str8_lit("INDEX");}break; -case CV_LeafKind_MEMBER_ST:{result = str8_lit("MEMBER_ST");}break; -case CV_LeafKind_STMEMBER_ST:{result = str8_lit("STMEMBER_ST");}break; -case CV_LeafKind_METHOD_ST:{result = str8_lit("METHOD_ST");}break; -case CV_LeafKind_NESTTYPE_ST:{result = str8_lit("NESTTYPE_ST");}break; -case CV_LeafKind_VFUNCTAB:{result = str8_lit("VFUNCTAB");}break; -case CV_LeafKind_FRIENDCLS:{result = str8_lit("FRIENDCLS");}break; -case CV_LeafKind_ONEMETHOD_ST:{result = str8_lit("ONEMETHOD_ST");}break; -case CV_LeafKind_VFUNCOFF:{result = str8_lit("VFUNCOFF");}break; -case CV_LeafKind_NESTTYPEEX_ST:{result = str8_lit("NESTTYPEEX_ST");}break; -case CV_LeafKind_MEMBERMODIFY_ST:{result = str8_lit("MEMBERMODIFY_ST");}break; -case CV_LeafKind_MANAGED_ST:{result = str8_lit("MANAGED_ST");}break; -case CV_LeafKind_ST_MAX:{result = str8_lit("ST_MAX");}break; -case CV_LeafKind_TYPESERVER:{result = str8_lit("TYPESERVER");}break; -case CV_LeafKind_ENUMERATE:{result = str8_lit("ENUMERATE");}break; -case CV_LeafKind_ARRAY:{result = str8_lit("ARRAY");}break; -case CV_LeafKind_CLASS:{result = str8_lit("CLASS");}break; -case CV_LeafKind_STRUCTURE:{result = str8_lit("STRUCTURE");}break; -case CV_LeafKind_UNION:{result = str8_lit("UNION");}break; -case CV_LeafKind_ENUM:{result = str8_lit("ENUM");}break; -case CV_LeafKind_DIMARRAY:{result = str8_lit("DIMARRAY");}break; -case CV_LeafKind_PRECOMP:{result = str8_lit("PRECOMP");}break; -case CV_LeafKind_ALIAS:{result = str8_lit("ALIAS");}break; -case CV_LeafKind_DEFARG:{result = str8_lit("DEFARG");}break; -case CV_LeafKind_FRIENDFCN:{result = str8_lit("FRIENDFCN");}break; -case CV_LeafKind_MEMBER:{result = str8_lit("MEMBER");}break; -case CV_LeafKind_STMEMBER:{result = str8_lit("STMEMBER");}break; -case CV_LeafKind_METHOD:{result = str8_lit("METHOD");}break; -case CV_LeafKind_NESTTYPE:{result = str8_lit("NESTTYPE");}break; -case CV_LeafKind_ONEMETHOD:{result = str8_lit("ONEMETHOD");}break; -case CV_LeafKind_NESTTYPEEX:{result = str8_lit("NESTTYPEEX");}break; -case CV_LeafKind_MEMBERMODIFY:{result = str8_lit("MEMBERMODIFY");}break; -case CV_LeafKind_MANAGED:{result = str8_lit("MANAGED");}break; -case CV_LeafKind_TYPESERVER2:{result = str8_lit("TYPESERVER2");}break; -case CV_LeafKind_STRIDED_ARRAY:{result = str8_lit("STRIDED_ARRAY");}break; -case CV_LeafKind_HLSL:{result = str8_lit("HLSL");}break; -case CV_LeafKind_MODIFIER_EX:{result = str8_lit("MODIFIER_EX");}break; -case CV_LeafKind_INTERFACE:{result = str8_lit("INTERFACE");}break; -case CV_LeafKind_BINTERFACE:{result = str8_lit("BINTERFACE");}break; -case CV_LeafKind_VECTOR:{result = str8_lit("VECTOR");}break; -case CV_LeafKind_MATRIX:{result = str8_lit("MATRIX");}break; -case CV_LeafKind_VFTABLE:{result = str8_lit("VFTABLE");}break; -case CV_LeafKind_FUNC_ID:{result = str8_lit("FUNC_ID");}break; -case CV_LeafKind_MFUNC_ID:{result = str8_lit("MFUNC_ID");}break; -case CV_LeafKind_BUILDINFO:{result = str8_lit("BUILDINFO");}break; -case CV_LeafKind_SUBSTR_LIST:{result = str8_lit("SUBSTR_LIST");}break; -case CV_LeafKind_STRING_ID:{result = str8_lit("STRING_ID");}break; -case CV_LeafKind_UDT_SRC_LINE:{result = str8_lit("UDT_SRC_LINE");}break; -case CV_LeafKind_UDT_MOD_SRC_LINE:{result = str8_lit("UDT_MOD_SRC_LINE");}break; -case CV_LeafKind_CLASS2:{result = str8_lit("CLASS2");}break; -case CV_LeafKind_STRUCT2:{result = str8_lit("STRUCT2");}break; -} -return result; -} - -internal U64 -cv_header_struct_size_from_sym_kind(CV_SymKind v) -{ -U64 result = 0; -switch(v) -{ -default:{}break; -case CV_SymKind_COMPILE:{result = sizeof(CV_SymCompile);}break; -case CV_SymKind_SSEARCH:{result = sizeof(CV_SymStartSearch);}break; -case CV_SymKind_RETURN:{result = sizeof(CV_SymReturn);}break; -case CV_SymKind_SLINK32:{result = sizeof(CV_SymSLink32);}break; -case CV_SymKind_OEM:{result = sizeof(CV_SymOEM);}break; -case CV_SymKind_VFTABLE32:{result = sizeof(CV_SymVPath32);}break; -case CV_SymKind_FRAMEPROC:{result = sizeof(CV_SymFrameproc);}break; -case CV_SymKind_ANNOTATION:{result = sizeof(CV_SymAnnotation);}break; -case CV_SymKind_OBJNAME:{result = sizeof(CV_SymObjName);}break; -case CV_SymKind_THUNK32:{result = sizeof(CV_SymThunk32);}break; -case CV_SymKind_BLOCK32:{result = sizeof(CV_SymBlock32);}break; -case CV_SymKind_LABEL32:{result = sizeof(CV_SymLabel32);}break; -case CV_SymKind_REGISTER:{result = sizeof(CV_SymRegister);}break; -case CV_SymKind_CONSTANT:{result = sizeof(CV_SymConstant);}break; -case CV_SymKind_UDT:{result = sizeof(CV_SymUDT);}break; -case CV_SymKind_MANYREG:{result = sizeof(CV_SymManyreg);}break; -case CV_SymKind_BPREL32:{result = sizeof(CV_SymBPRel32);}break; -case CV_SymKind_LDATA32:{result = sizeof(CV_SymData32);}break; -case CV_SymKind_GDATA32:{result = sizeof(CV_SymData32);}break; -case CV_SymKind_PUB32:{result = sizeof(CV_SymPub32);}break; -case CV_SymKind_LPROC32:{result = sizeof(CV_SymProc32);}break; -case CV_SymKind_GPROC32:{result = sizeof(CV_SymProc32);}break; -case CV_SymKind_REGREL32:{result = sizeof(CV_SymRegrel32);}break; -case CV_SymKind_LTHREAD32:{result = sizeof(CV_SymThread32);}break; -case CV_SymKind_GTHREAD32:{result = sizeof(CV_SymThread32);}break; -case CV_SymKind_COMPILE2:{result = sizeof(CV_SymCompile2);}break; -case CV_SymKind_MANYREG2:{result = sizeof(CV_SymManyreg2);}break; -case CV_SymKind_LOCALSLOT:{result = sizeof(CV_SymSlot);}break; -case CV_SymKind_MANFRAMEREL:{result = sizeof(CV_SymAttrFrameRel);}break; -case CV_SymKind_MANREGISTER:{result = sizeof(CV_SymAttrReg);}break; -case CV_SymKind_MANMANYREG:{result = sizeof(CV_SymAttrManyReg);}break; -case CV_SymKind_MANREGREL:{result = sizeof(CV_SymAttrRegRel);}break; -case CV_SymKind_UNAMESPACE:{result = sizeof(CV_SymUNamespace);}break; -case CV_SymKind_PROCREF:{result = sizeof(CV_SymRef2);}break; -case CV_SymKind_DATAREF:{result = sizeof(CV_SymRef2);}break; -case CV_SymKind_LPROCREF:{result = sizeof(CV_SymRef2);}break; -case CV_SymKind_TRAMPOLINE:{result = sizeof(CV_SymTrampoline);}break; -case CV_SymKind_ATTR_FRAMEREL:{result = sizeof(CV_SymAttrFrameRel);}break; -case CV_SymKind_ATTR_REGISTER:{result = sizeof(CV_SymAttrReg);}break; -case CV_SymKind_ATTR_REGREL:{result = sizeof(CV_SymAttrRegRel);}break; -case CV_SymKind_ATTR_MANYREG:{result = sizeof(CV_SymAttrManyReg);}break; -case CV_SymKind_SEPCODE:{result = sizeof(CV_SymSepcode);}break; -case CV_SymKind_SECTION:{result = sizeof(CV_SymSection);}break; -case CV_SymKind_COFFGROUP:{result = sizeof(CV_SymCoffGroup);}break; -case CV_SymKind_EXPORT:{result = sizeof(CV_SymExport);}break; -case CV_SymKind_CALLSITEINFO:{result = sizeof(CV_SymCallSiteInfo);}break; -case CV_SymKind_FRAMECOOKIE:{result = sizeof(CV_SymFrameCookie);}break; -case CV_SymKind_DISCARDED:{result = sizeof(CV_SymDiscarded);}break; -case CV_SymKind_COMPILE3:{result = sizeof(CV_SymCompile3);}break; -case CV_SymKind_ENVBLOCK:{result = sizeof(CV_SymEnvBlock);}break; -case CV_SymKind_LOCAL:{result = sizeof(CV_SymLocal);}break; -case CV_SymKind_DEFRANGE_SUBFIELD:{result = sizeof(CV_SymDefrangeSubfield);}break; -case CV_SymKind_DEFRANGE_REGISTER:{result = sizeof(CV_SymDefrangeRegister);}break; -case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL:{result = sizeof(CV_SymDefrangeFramepointerRel);}break; -case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER:{result = sizeof(CV_SymDefrangeSubfieldRegister);}break; -case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE:{result = sizeof(CV_SymDefrangeFramepointerRelFullScope);}break; -case CV_SymKind_DEFRANGE_REGISTER_REL:{result = sizeof(CV_SymDefrangeRegisterRel);}break; -case CV_SymKind_BUILDINFO:{result = sizeof(CV_SymBuildInfo);}break; -case CV_SymKind_INLINESITE:{result = sizeof(CV_SymInlineSite);}break; -case CV_SymKind_FILESTATIC:{result = sizeof(CV_SymFileStatic);}break; -case CV_SymKind_CALLEES:{result = sizeof(CV_SymFunctionList);}break; -case CV_SymKind_CALLERS:{result = sizeof(CV_SymFunctionList);}break; -case CV_SymKind_POGODATA:{result = sizeof(CV_SymPogoInfo);}break; -case CV_SymKind_INLINESITE2:{result = sizeof(CV_SymInlineSite2);}break; -case CV_SymKind_HEAPALLOCSITE:{result = sizeof(CV_SymHeapAllocSite);}break; -case CV_SymKind_MOD_TYPEREF:{result = sizeof(CV_SymModTypeRef);}break; -case CV_SymKind_REF_MINIPDB:{result = sizeof(CV_SymRefMiniPdb);}break; -case CV_SymKind_FASTLINK:{result = sizeof(CV_SymFastLink);}break; -case CV_SymKind_INLINEES:{result = sizeof(CV_SymInlinees);}break; -} -return result; -} -internal U64 -cv_header_struct_size_from_leaf_kind(CV_LeafKind v) -{ -U64 result = 0; -switch(v) -{ -default:{}break; -case CV_LeafKind_VTSHAPE:{result = sizeof(CV_LeafVTShape);}break; -case CV_LeafKind_LABEL:{result = sizeof(CV_LeafLabel);}break; -case CV_LeafKind_MODIFIER:{result = sizeof(CV_LeafModifier);}break; -case CV_LeafKind_POINTER:{result = sizeof(CV_LeafPointer);}break; -case CV_LeafKind_PROCEDURE:{result = sizeof(CV_LeafProcedure);}break; -case CV_LeafKind_MFUNCTION:{result = sizeof(CV_LeafMFunction);}break; -case CV_LeafKind_VFTPATH:{result = sizeof(CV_LeafVFPath);}break; -case CV_LeafKind_SKIP:{result = sizeof(CV_LeafSkip);}break; -case CV_LeafKind_ARGLIST:{result = sizeof(CV_LeafArgList);}break; -case CV_LeafKind_BITFIELD:{result = sizeof(CV_LeafBitField);}break; -case CV_LeafKind_METHODLIST:{result = sizeof(CV_LeafMethodListMember);}break; -case CV_LeafKind_BCLASS:{result = sizeof(CV_LeafBClass);}break; -case CV_LeafKind_VBCLASS:{result = sizeof(CV_LeafVBClass);}break; -case CV_LeafKind_INDEX:{result = sizeof(CV_LeafIndex);}break; -case CV_LeafKind_VFUNCTAB:{result = sizeof(CV_LeafVFuncTab);}break; -case CV_LeafKind_VFUNCOFF:{result = sizeof(CV_LeafVFuncOff);}break; -case CV_LeafKind_TYPESERVER:{result = sizeof(CV_LeafTypeServer);}break; -case CV_LeafKind_ENUMERATE:{result = sizeof(CV_LeafEnumerate);}break; -case CV_LeafKind_ARRAY:{result = sizeof(CV_LeafArray);}break; -case CV_LeafKind_CLASS:{result = sizeof(CV_LeafStruct);}break; -case CV_LeafKind_STRUCTURE:{result = sizeof(CV_LeafStruct);}break; -case CV_LeafKind_UNION:{result = sizeof(CV_LeafUnion);}break; -case CV_LeafKind_ENUM:{result = sizeof(CV_LeafEnum);}break; -case CV_LeafKind_PRECOMP:{result = sizeof(CV_LeafPreComp);}break; -case CV_LeafKind_ALIAS:{result = sizeof(CV_LeafAlias);}break; -case CV_LeafKind_MEMBER:{result = sizeof(CV_LeafMember);}break; -case CV_LeafKind_STMEMBER:{result = sizeof(CV_LeafStMember);}break; -case CV_LeafKind_METHOD:{result = sizeof(CV_LeafMethod);}break; -case CV_LeafKind_NESTTYPE:{result = sizeof(CV_LeafNestType);}break; -case CV_LeafKind_ONEMETHOD:{result = sizeof(CV_LeafOneMethod);}break; -case CV_LeafKind_NESTTYPEEX:{result = sizeof(CV_LeafNestTypeEx);}break; -case CV_LeafKind_TYPESERVER2:{result = sizeof(CV_LeafTypeServer2);}break; -case CV_LeafKind_INTERFACE:{result = sizeof(CV_LeafStruct);}break; -case CV_LeafKind_FUNC_ID:{result = sizeof(CV_LeafFuncId);}break; -case CV_LeafKind_MFUNC_ID:{result = sizeof(CV_LeafMFuncId);}break; -case CV_LeafKind_BUILDINFO:{result = sizeof(CV_LeafBuildInfo);}break; -case CV_LeafKind_SUBSTR_LIST:{result = sizeof(CV_LeafSubstrList);}break; -case CV_LeafKind_STRING_ID:{result = sizeof(CV_LeafStringId);}break; -case CV_LeafKind_UDT_SRC_LINE:{result = sizeof(CV_LeafUDTSrcLine);}break; -case CV_LeafKind_UDT_MOD_SRC_LINE:{result = sizeof(CV_LeafUDTModSrcLine);}break; -case CV_LeafKind_CLASS2:{result = sizeof(CV_LeafStruct2);}break; -case CV_LeafKind_STRUCT2:{result = sizeof(CV_LeafStruct2);}break; -} -return result; -} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +internal String8 +cv_string_from_numeric_kind(CV_NumericKind v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_NumericKind_CHAR:{result = str8_lit("CHAR");}break; +case CV_NumericKind_SHORT:{result = str8_lit("SHORT");}break; +case CV_NumericKind_USHORT:{result = str8_lit("USHORT");}break; +case CV_NumericKind_LONG:{result = str8_lit("LONG");}break; +case CV_NumericKind_ULONG:{result = str8_lit("ULONG");}break; +case CV_NumericKind_FLOAT32:{result = str8_lit("FLOAT32");}break; +case CV_NumericKind_FLOAT64:{result = str8_lit("FLOAT64");}break; +case CV_NumericKind_FLOAT80:{result = str8_lit("FLOAT80");}break; +case CV_NumericKind_FLOAT128:{result = str8_lit("FLOAT128");}break; +case CV_NumericKind_QUADWORD:{result = str8_lit("QUADWORD");}break; +case CV_NumericKind_UQUADWORD:{result = str8_lit("UQUADWORD");}break; +case CV_NumericKind_FLOAT48:{result = str8_lit("FLOAT48");}break; +case CV_NumericKind_COMPLEX32:{result = str8_lit("COMPLEX32");}break; +case CV_NumericKind_COMPLEX64:{result = str8_lit("COMPLEX64");}break; +case CV_NumericKind_COMPLEX80:{result = str8_lit("COMPLEX80");}break; +case CV_NumericKind_COMPLEX128:{result = str8_lit("COMPLEX128");}break; +case CV_NumericKind_VARSTRING:{result = str8_lit("VARSTRING");}break; +case CV_NumericKind_OCTWORD:{result = str8_lit("OCTWORD");}break; +case CV_NumericKind_UOCTWORD:{result = str8_lit("UOCTWORD");}break; +case CV_NumericKind_DECIMAL:{result = str8_lit("DECIMAL");}break; +case CV_NumericKind_DATE:{result = str8_lit("DATE");}break; +case CV_NumericKind_UTF8STRING:{result = str8_lit("UTF8STRING");}break; +case CV_NumericKind_FLOAT16:{result = str8_lit("FLOAT16");}break; +} +return result; +} + +internal String8 +cv_string_from_arch(CV_Arch v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_Arch_8080:{result = str8_lit("8080");}break; +case CV_Arch_8086:{result = str8_lit("8086");}break; +case CV_Arch_80286:{result = str8_lit("80286");}break; +case CV_Arch_80386:{result = str8_lit("80386");}break; +case CV_Arch_80486:{result = str8_lit("80486");}break; +case CV_Arch_PENTIUM:{result = str8_lit("PENTIUM");}break; +case CV_Arch_PENTIUMII:{result = str8_lit("PENTIUMII");}break; +case CV_Arch_PENTIUMIII:{result = str8_lit("PENTIUMIII");}break; +case CV_Arch_MIPS:{result = str8_lit("MIPS");}break; +case CV_Arch_MIPS16:{result = str8_lit("MIPS16");}break; +case CV_Arch_MIPS32:{result = str8_lit("MIPS32");}break; +case CV_Arch_MIPS64:{result = str8_lit("MIPS64");}break; +case CV_Arch_MIPSI:{result = str8_lit("MIPSI");}break; +case CV_Arch_MIPSII:{result = str8_lit("MIPSII");}break; +case CV_Arch_MIPSIII:{result = str8_lit("MIPSIII");}break; +case CV_Arch_MIPSIV:{result = str8_lit("MIPSIV");}break; +case CV_Arch_MIPSV:{result = str8_lit("MIPSV");}break; +case CV_Arch_M68000:{result = str8_lit("M68000");}break; +case CV_Arch_M68010:{result = str8_lit("M68010");}break; +case CV_Arch_M68020:{result = str8_lit("M68020");}break; +case CV_Arch_M68030:{result = str8_lit("M68030");}break; +case CV_Arch_M68040:{result = str8_lit("M68040");}break; +case CV_Arch_ALPHA:{result = str8_lit("ALPHA");}break; +case CV_Arch_ALPHA_21164:{result = str8_lit("ALPHA_21164");}break; +case CV_Arch_ALPHA_21164A:{result = str8_lit("ALPHA_21164A");}break; +case CV_Arch_ALPHA_21264:{result = str8_lit("ALPHA_21264");}break; +case CV_Arch_ALPHA_21364:{result = str8_lit("ALPHA_21364");}break; +case CV_Arch_PPC601:{result = str8_lit("PPC601");}break; +case CV_Arch_PPC603:{result = str8_lit("PPC603");}break; +case CV_Arch_PPC604:{result = str8_lit("PPC604");}break; +case CV_Arch_PPC620:{result = str8_lit("PPC620");}break; +case CV_Arch_PPCFP:{result = str8_lit("PPCFP");}break; +case CV_Arch_PPCBE:{result = str8_lit("PPCBE");}break; +case CV_Arch_SH3:{result = str8_lit("SH3");}break; +case CV_Arch_SH3E:{result = str8_lit("SH3E");}break; +case CV_Arch_SH3DSP:{result = str8_lit("SH3DSP");}break; +case CV_Arch_SH4:{result = str8_lit("SH4");}break; +case CV_Arch_SHMEDIA:{result = str8_lit("SHMEDIA");}break; +case CV_Arch_ARM3:{result = str8_lit("ARM3");}break; +case CV_Arch_ARM4:{result = str8_lit("ARM4");}break; +case CV_Arch_ARM4T:{result = str8_lit("ARM4T");}break; +case CV_Arch_ARM5:{result = str8_lit("ARM5");}break; +case CV_Arch_ARM5T:{result = str8_lit("ARM5T");}break; +case CV_Arch_ARM6:{result = str8_lit("ARM6");}break; +case CV_Arch_ARM_XMAC:{result = str8_lit("ARM_XMAC");}break; +case CV_Arch_ARM_WMMX:{result = str8_lit("ARM_WMMX");}break; +case CV_Arch_ARM7:{result = str8_lit("ARM7");}break; +case CV_Arch_OMNI:{result = str8_lit("OMNI");}break; +case CV_Arch_IA64_1:{result = str8_lit("IA64_1");}break; +case CV_Arch_IA64_2:{result = str8_lit("IA64_2");}break; +case CV_Arch_CEE:{result = str8_lit("CEE");}break; +case CV_Arch_AM33:{result = str8_lit("AM33");}break; +case CV_Arch_M32R:{result = str8_lit("M32R");}break; +case CV_Arch_TRICORE:{result = str8_lit("TRICORE");}break; +case CV_Arch_X64:{result = str8_lit("X64");}break; +case CV_Arch_EBC:{result = str8_lit("EBC");}break; +case CV_Arch_THUMB:{result = str8_lit("THUMB");}break; +case CV_Arch_ARMNT:{result = str8_lit("ARMNT");}break; +case CV_Arch_ARM64:{result = str8_lit("ARM64");}break; +case CV_Arch_D3D11_SHADER:{result = str8_lit("D3D11_SHADER");}break; +} +return result; +} + +internal String8 +cv_string_from_sym_kind(CV_SymKind v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_SymKind_COMPILE:{result = str8_lit("COMPILE");}break; +case CV_SymKind_REGISTER_16t:{result = str8_lit("REGISTER_16t");}break; +case CV_SymKind_CONSTANT_16t:{result = str8_lit("CONSTANT_16t");}break; +case CV_SymKind_UDT_16t:{result = str8_lit("UDT_16t");}break; +case CV_SymKind_SSEARCH:{result = str8_lit("SSEARCH");}break; +case CV_SymKind_END:{result = str8_lit("END");}break; +case CV_SymKind_SKIP:{result = str8_lit("SKIP");}break; +case CV_SymKind_CVRESERVE:{result = str8_lit("CVRESERVE");}break; +case CV_SymKind_OBJNAME_ST:{result = str8_lit("OBJNAME_ST");}break; +case CV_SymKind_ENDARG:{result = str8_lit("ENDARG");}break; +case CV_SymKind_COBOLUDT_16t:{result = str8_lit("COBOLUDT_16t");}break; +case CV_SymKind_MANYREG_16t:{result = str8_lit("MANYREG_16t");}break; +case CV_SymKind_RETURN:{result = str8_lit("RETURN");}break; +case CV_SymKind_ENTRYTHIS:{result = str8_lit("ENTRYTHIS");}break; +case CV_SymKind_BPREL16:{result = str8_lit("BPREL16");}break; +case CV_SymKind_LDATA16:{result = str8_lit("LDATA16");}break; +case CV_SymKind_GDATA16:{result = str8_lit("GDATA16");}break; +case CV_SymKind_PUB16:{result = str8_lit("PUB16");}break; +case CV_SymKind_LPROC16:{result = str8_lit("LPROC16");}break; +case CV_SymKind_GPROC16:{result = str8_lit("GPROC16");}break; +case CV_SymKind_THUNK16:{result = str8_lit("THUNK16");}break; +case CV_SymKind_BLOCK16:{result = str8_lit("BLOCK16");}break; +case CV_SymKind_WITH16:{result = str8_lit("WITH16");}break; +case CV_SymKind_LABEL16:{result = str8_lit("LABEL16");}break; +case CV_SymKind_CEXMODEL16:{result = str8_lit("CEXMODEL16");}break; +case CV_SymKind_VFTABLE16:{result = str8_lit("VFTABLE16");}break; +case CV_SymKind_REGREL16:{result = str8_lit("REGREL16");}break; +case CV_SymKind_BPREL32_16t:{result = str8_lit("BPREL32_16t");}break; +case CV_SymKind_LDATA32_16t:{result = str8_lit("LDATA32_16t");}break; +case CV_SymKind_GDATA32_16t:{result = str8_lit("GDATA32_16t");}break; +case CV_SymKind_PUB32_16t:{result = str8_lit("PUB32_16t");}break; +case CV_SymKind_LPROC32_16t:{result = str8_lit("LPROC32_16t");}break; +case CV_SymKind_GPROC32_16t:{result = str8_lit("GPROC32_16t");}break; +case CV_SymKind_THUNK32_ST:{result = str8_lit("THUNK32_ST");}break; +case CV_SymKind_BLOCK32_ST:{result = str8_lit("BLOCK32_ST");}break; +case CV_SymKind_WITH32_ST:{result = str8_lit("WITH32_ST");}break; +case CV_SymKind_LABEL32_ST:{result = str8_lit("LABEL32_ST");}break; +case CV_SymKind_CEXMODEL32:{result = str8_lit("CEXMODEL32");}break; +case CV_SymKind_VFTABLE32_16t:{result = str8_lit("VFTABLE32_16t");}break; +case CV_SymKind_REGREL32_16t:{result = str8_lit("REGREL32_16t");}break; +case CV_SymKind_LTHREAD32_16t:{result = str8_lit("LTHREAD32_16t");}break; +case CV_SymKind_GTHREAD32_16t:{result = str8_lit("GTHREAD32_16t");}break; +case CV_SymKind_SLINK32:{result = str8_lit("SLINK32");}break; +case CV_SymKind_LPROCMIPS_16t:{result = str8_lit("LPROCMIPS_16t");}break; +case CV_SymKind_GPROCMIPS_16t:{result = str8_lit("GPROCMIPS_16t");}break; +case CV_SymKind_PROCREF_ST:{result = str8_lit("PROCREF_ST");}break; +case CV_SymKind_DATAREF_ST:{result = str8_lit("DATAREF_ST");}break; +case CV_SymKind_ALIGN:{result = str8_lit("ALIGN");}break; +case CV_SymKind_LPROCREF_ST:{result = str8_lit("LPROCREF_ST");}break; +case CV_SymKind_OEM:{result = str8_lit("OEM");}break; +case CV_SymKind_TI16_MAX:{result = str8_lit("TI16_MAX");}break; +case CV_SymKind_CONSTANT_ST:{result = str8_lit("CONSTANT_ST");}break; +case CV_SymKind_UDT_ST:{result = str8_lit("UDT_ST");}break; +case CV_SymKind_COBOLUDT_ST:{result = str8_lit("COBOLUDT_ST");}break; +case CV_SymKind_MANYREG_ST:{result = str8_lit("MANYREG_ST");}break; +case CV_SymKind_BPREL32_ST:{result = str8_lit("BPREL32_ST");}break; +case CV_SymKind_LDATA32_ST:{result = str8_lit("LDATA32_ST");}break; +case CV_SymKind_GDATA32_ST:{result = str8_lit("GDATA32_ST");}break; +case CV_SymKind_PUB32_ST:{result = str8_lit("PUB32_ST");}break; +case CV_SymKind_LPROC32_ST:{result = str8_lit("LPROC32_ST");}break; +case CV_SymKind_GPROC32_ST:{result = str8_lit("GPROC32_ST");}break; +case CV_SymKind_VFTABLE32:{result = str8_lit("VFTABLE32");}break; +case CV_SymKind_REGREL32_ST:{result = str8_lit("REGREL32_ST");}break; +case CV_SymKind_LTHREAD32_ST:{result = str8_lit("LTHREAD32_ST");}break; +case CV_SymKind_GTHREAD32_ST:{result = str8_lit("GTHREAD32_ST");}break; +case CV_SymKind_LPROCMIPS_ST:{result = str8_lit("LPROCMIPS_ST");}break; +case CV_SymKind_GPROCMIPS_ST:{result = str8_lit("GPROCMIPS_ST");}break; +case CV_SymKind_FRAMEPROC:{result = str8_lit("FRAMEPROC");}break; +case CV_SymKind_COMPILE2_ST:{result = str8_lit("COMPILE2_ST");}break; +case CV_SymKind_MANYREG2_ST:{result = str8_lit("MANYREG2_ST");}break; +case CV_SymKind_LPROCIA64_ST:{result = str8_lit("LPROCIA64_ST");}break; +case CV_SymKind_GPROCIA64_ST:{result = str8_lit("GPROCIA64_ST");}break; +case CV_SymKind_LOCALSLOT_ST:{result = str8_lit("LOCALSLOT_ST");}break; +case CV_SymKind_PARAMSLOT_ST:{result = str8_lit("PARAMSLOT_ST");}break; +case CV_SymKind_ANNOTATION:{result = str8_lit("ANNOTATION");}break; +case CV_SymKind_GMANPROC_ST:{result = str8_lit("GMANPROC_ST");}break; +case CV_SymKind_LMANPROC_ST:{result = str8_lit("LMANPROC_ST");}break; +case CV_SymKind_RESERVED1:{result = str8_lit("RESERVED1");}break; +case CV_SymKind_RESERVED2:{result = str8_lit("RESERVED2");}break; +case CV_SymKind_RESERVED3:{result = str8_lit("RESERVED3");}break; +case CV_SymKind_RESERVED4:{result = str8_lit("RESERVED4");}break; +case CV_SymKind_LMANDATA_ST:{result = str8_lit("LMANDATA_ST");}break; +case CV_SymKind_GMANDATA_ST:{result = str8_lit("GMANDATA_ST");}break; +case CV_SymKind_MANFRAMEREL_ST:{result = str8_lit("MANFRAMEREL_ST");}break; +case CV_SymKind_MANREGISTER_ST:{result = str8_lit("MANREGISTER_ST");}break; +case CV_SymKind_MANSLOT_ST:{result = str8_lit("MANSLOT_ST");}break; +case CV_SymKind_MANMANYREG_ST:{result = str8_lit("MANMANYREG_ST");}break; +case CV_SymKind_MANREGREL_ST:{result = str8_lit("MANREGREL_ST");}break; +case CV_SymKind_MANMANYREG2_ST:{result = str8_lit("MANMANYREG2_ST");}break; +case CV_SymKind_MANTYPREF:{result = str8_lit("MANTYPREF");}break; +case CV_SymKind_UNAMESPACE_ST:{result = str8_lit("UNAMESPACE_ST");}break; +case CV_SymKind_ST_MAX:{result = str8_lit("ST_MAX");}break; +case CV_SymKind_OBJNAME:{result = str8_lit("OBJNAME");}break; +case CV_SymKind_THUNK32:{result = str8_lit("THUNK32");}break; +case CV_SymKind_BLOCK32:{result = str8_lit("BLOCK32");}break; +case CV_SymKind_WITH32:{result = str8_lit("WITH32");}break; +case CV_SymKind_LABEL32:{result = str8_lit("LABEL32");}break; +case CV_SymKind_REGISTER:{result = str8_lit("REGISTER");}break; +case CV_SymKind_CONSTANT:{result = str8_lit("CONSTANT");}break; +case CV_SymKind_UDT:{result = str8_lit("UDT");}break; +case CV_SymKind_COBOLUDT:{result = str8_lit("COBOLUDT");}break; +case CV_SymKind_MANYREG:{result = str8_lit("MANYREG");}break; +case CV_SymKind_BPREL32:{result = str8_lit("BPREL32");}break; +case CV_SymKind_LDATA32:{result = str8_lit("LDATA32");}break; +case CV_SymKind_GDATA32:{result = str8_lit("GDATA32");}break; +case CV_SymKind_PUB32:{result = str8_lit("PUB32");}break; +case CV_SymKind_LPROC32:{result = str8_lit("LPROC32");}break; +case CV_SymKind_GPROC32:{result = str8_lit("GPROC32");}break; +case CV_SymKind_REGREL32:{result = str8_lit("REGREL32");}break; +case CV_SymKind_LTHREAD32:{result = str8_lit("LTHREAD32");}break; +case CV_SymKind_GTHREAD32:{result = str8_lit("GTHREAD32");}break; +case CV_SymKind_LPROCMIPS:{result = str8_lit("LPROCMIPS");}break; +case CV_SymKind_GPROCMIPS:{result = str8_lit("GPROCMIPS");}break; +case CV_SymKind_COMPILE2:{result = str8_lit("COMPILE2");}break; +case CV_SymKind_MANYREG2:{result = str8_lit("MANYREG2");}break; +case CV_SymKind_LPROCIA64:{result = str8_lit("LPROCIA64");}break; +case CV_SymKind_GPROCIA64:{result = str8_lit("GPROCIA64");}break; +case CV_SymKind_LOCALSLOT:{result = str8_lit("LOCALSLOT");}break; +case CV_SymKind_PARAMSLOT:{result = str8_lit("PARAMSLOT");}break; +case CV_SymKind_LMANDATA:{result = str8_lit("LMANDATA");}break; +case CV_SymKind_GMANDATA:{result = str8_lit("GMANDATA");}break; +case CV_SymKind_MANFRAMEREL:{result = str8_lit("MANFRAMEREL");}break; +case CV_SymKind_MANREGISTER:{result = str8_lit("MANREGISTER");}break; +case CV_SymKind_MANSLOT:{result = str8_lit("MANSLOT");}break; +case CV_SymKind_MANMANYREG:{result = str8_lit("MANMANYREG");}break; +case CV_SymKind_MANREGREL:{result = str8_lit("MANREGREL");}break; +case CV_SymKind_MANMANYREG2:{result = str8_lit("MANMANYREG2");}break; +case CV_SymKind_UNAMESPACE:{result = str8_lit("UNAMESPACE");}break; +case CV_SymKind_PROCREF:{result = str8_lit("PROCREF");}break; +case CV_SymKind_DATAREF:{result = str8_lit("DATAREF");}break; +case CV_SymKind_LPROCREF:{result = str8_lit("LPROCREF");}break; +case CV_SymKind_ANNOTATIONREF:{result = str8_lit("ANNOTATIONREF");}break; +case CV_SymKind_TOKENREF:{result = str8_lit("TOKENREF");}break; +case CV_SymKind_GMANPROC:{result = str8_lit("GMANPROC");}break; +case CV_SymKind_LMANPROC:{result = str8_lit("LMANPROC");}break; +case CV_SymKind_TRAMPOLINE:{result = str8_lit("TRAMPOLINE");}break; +case CV_SymKind_MANCONSTANT:{result = str8_lit("MANCONSTANT");}break; +case CV_SymKind_ATTR_FRAMEREL:{result = str8_lit("ATTR_FRAMEREL");}break; +case CV_SymKind_ATTR_REGISTER:{result = str8_lit("ATTR_REGISTER");}break; +case CV_SymKind_ATTR_REGREL:{result = str8_lit("ATTR_REGREL");}break; +case CV_SymKind_ATTR_MANYREG:{result = str8_lit("ATTR_MANYREG");}break; +case CV_SymKind_SEPCODE:{result = str8_lit("SEPCODE");}break; +case CV_SymKind_DEFRANGE_2005:{result = str8_lit("DEFRANGE_2005");}break; +case CV_SymKind_DEFRANGE2_2005:{result = str8_lit("DEFRANGE2_2005");}break; +case CV_SymKind_SECTION:{result = str8_lit("SECTION");}break; +case CV_SymKind_COFFGROUP:{result = str8_lit("COFFGROUP");}break; +case CV_SymKind_EXPORT:{result = str8_lit("EXPORT");}break; +case CV_SymKind_CALLSITEINFO:{result = str8_lit("CALLSITEINFO");}break; +case CV_SymKind_FRAMECOOKIE:{result = str8_lit("FRAMECOOKIE");}break; +case CV_SymKind_DISCARDED:{result = str8_lit("DISCARDED");}break; +case CV_SymKind_COMPILE3:{result = str8_lit("COMPILE3");}break; +case CV_SymKind_ENVBLOCK:{result = str8_lit("ENVBLOCK");}break; +case CV_SymKind_LOCAL:{result = str8_lit("LOCAL");}break; +case CV_SymKind_DEFRANGE:{result = str8_lit("DEFRANGE");}break; +case CV_SymKind_DEFRANGE_SUBFIELD:{result = str8_lit("DEFRANGE_SUBFIELD");}break; +case CV_SymKind_DEFRANGE_REGISTER:{result = str8_lit("DEFRANGE_REGISTER");}break; +case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL:{result = str8_lit("DEFRANGE_FRAMEPOINTER_REL");}break; +case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER:{result = str8_lit("DEFRANGE_SUBFIELD_REGISTER");}break; +case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE:{result = str8_lit("DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE");}break; +case CV_SymKind_DEFRANGE_REGISTER_REL:{result = str8_lit("DEFRANGE_REGISTER_REL");}break; +case CV_SymKind_LPROC32_ID:{result = str8_lit("LPROC32_ID");}break; +case CV_SymKind_GPROC32_ID:{result = str8_lit("GPROC32_ID");}break; +case CV_SymKind_LPROCMIPS_ID:{result = str8_lit("LPROCMIPS_ID");}break; +case CV_SymKind_GPROCMIPS_ID:{result = str8_lit("GPROCMIPS_ID");}break; +case CV_SymKind_LPROCIA64_ID:{result = str8_lit("LPROCIA64_ID");}break; +case CV_SymKind_GPROCIA64_ID:{result = str8_lit("GPROCIA64_ID");}break; +case CV_SymKind_BUILDINFO:{result = str8_lit("BUILDINFO");}break; +case CV_SymKind_INLINESITE:{result = str8_lit("INLINESITE");}break; +case CV_SymKind_INLINESITE_END:{result = str8_lit("INLINESITE_END");}break; +case CV_SymKind_PROC_ID_END:{result = str8_lit("PROC_ID_END");}break; +case CV_SymKind_DEFRANGE_HLSL:{result = str8_lit("DEFRANGE_HLSL");}break; +case CV_SymKind_GDATA_HLSL:{result = str8_lit("GDATA_HLSL");}break; +case CV_SymKind_LDATA_HLSL:{result = str8_lit("LDATA_HLSL");}break; +case CV_SymKind_FILESTATIC:{result = str8_lit("FILESTATIC");}break; +case CV_SymKind_LPROC32_DPC:{result = str8_lit("LPROC32_DPC");}break; +case CV_SymKind_LPROC32_DPC_ID:{result = str8_lit("LPROC32_DPC_ID");}break; +case CV_SymKind_DEFRANGE_DPC_PTR_TAG:{result = str8_lit("DEFRANGE_DPC_PTR_TAG");}break; +case CV_SymKind_DPC_SYM_TAG_MAP:{result = str8_lit("DPC_SYM_TAG_MAP");}break; +case CV_SymKind_ARMSWITCHTABLE:{result = str8_lit("ARMSWITCHTABLE");}break; +case CV_SymKind_CALLEES:{result = str8_lit("CALLEES");}break; +case CV_SymKind_CALLERS:{result = str8_lit("CALLERS");}break; +case CV_SymKind_POGODATA:{result = str8_lit("POGODATA");}break; +case CV_SymKind_INLINESITE2:{result = str8_lit("INLINESITE2");}break; +case CV_SymKind_HEAPALLOCSITE:{result = str8_lit("HEAPALLOCSITE");}break; +case CV_SymKind_MOD_TYPEREF:{result = str8_lit("MOD_TYPEREF");}break; +case CV_SymKind_REF_MINIPDB:{result = str8_lit("REF_MINIPDB");}break; +case CV_SymKind_PDBMAP:{result = str8_lit("PDBMAP");}break; +case CV_SymKind_GDATA_HLSL32:{result = str8_lit("GDATA_HLSL32");}break; +case CV_SymKind_LDATA_HLSL32:{result = str8_lit("LDATA_HLSL32");}break; +case CV_SymKind_GDATA_HLSL32_EX:{result = str8_lit("GDATA_HLSL32_EX");}break; +case CV_SymKind_LDATA_HLSL32_EX:{result = str8_lit("LDATA_HLSL32_EX");}break; +case CV_SymKind_FASTLINK:{result = str8_lit("FASTLINK");}break; +case CV_SymKind_INLINEES:{result = str8_lit("INLINEES");}break; +} +return result; +} + +internal String8 +cv_string_from_basic_type(CV_BasicType v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_BasicType_NOTYPE:{result = str8_lit("NOTYPE");}break; +case CV_BasicType_ABS:{result = str8_lit("ABS");}break; +case CV_BasicType_SEGMENT:{result = str8_lit("SEGMENT");}break; +case CV_BasicType_VOID:{result = str8_lit("VOID");}break; +case CV_BasicType_CURRENCY:{result = str8_lit("CURRENCY");}break; +case CV_BasicType_NBASICSTR:{result = str8_lit("NBASICSTR");}break; +case CV_BasicType_FBASICSTR:{result = str8_lit("FBASICSTR");}break; +case CV_BasicType_NOTTRANS:{result = str8_lit("NOTTRANS");}break; +case CV_BasicType_HRESULT:{result = str8_lit("HRESULT");}break; +case CV_BasicType_CHAR:{result = str8_lit("CHAR");}break; +case CV_BasicType_SHORT:{result = str8_lit("SHORT");}break; +case CV_BasicType_LONG:{result = str8_lit("LONG");}break; +case CV_BasicType_QUAD:{result = str8_lit("QUAD");}break; +case CV_BasicType_OCT:{result = str8_lit("OCT");}break; +case CV_BasicType_UCHAR:{result = str8_lit("UCHAR");}break; +case CV_BasicType_USHORT:{result = str8_lit("USHORT");}break; +case CV_BasicType_ULONG:{result = str8_lit("ULONG");}break; +case CV_BasicType_UQUAD:{result = str8_lit("UQUAD");}break; +case CV_BasicType_UOCT:{result = str8_lit("UOCT");}break; +case CV_BasicType_BOOL8:{result = str8_lit("BOOL8");}break; +case CV_BasicType_BOOL16:{result = str8_lit("BOOL16");}break; +case CV_BasicType_BOOL32:{result = str8_lit("BOOL32");}break; +case CV_BasicType_BOOL64:{result = str8_lit("BOOL64");}break; +case CV_BasicType_FLOAT32:{result = str8_lit("FLOAT32");}break; +case CV_BasicType_FLOAT64:{result = str8_lit("FLOAT64");}break; +case CV_BasicType_FLOAT80:{result = str8_lit("FLOAT80");}break; +case CV_BasicType_FLOAT128:{result = str8_lit("FLOAT128");}break; +case CV_BasicType_FLOAT48:{result = str8_lit("FLOAT48");}break; +case CV_BasicType_FLOAT32PP:{result = str8_lit("FLOAT32PP");}break; +case CV_BasicType_FLOAT16:{result = str8_lit("FLOAT16");}break; +case CV_BasicType_COMPLEX32:{result = str8_lit("COMPLEX32");}break; +case CV_BasicType_COMPLEX64:{result = str8_lit("COMPLEX64");}break; +case CV_BasicType_COMPLEX80:{result = str8_lit("COMPLEX80");}break; +case CV_BasicType_COMPLEX128:{result = str8_lit("COMPLEX128");}break; +case CV_BasicType_BIT:{result = str8_lit("BIT");}break; +case CV_BasicType_PASCHAR:{result = str8_lit("PASCHAR");}break; +case CV_BasicType_BOOL32FF:{result = str8_lit("BOOL32FF");}break; +case CV_BasicType_INT8:{result = str8_lit("INT8");}break; +case CV_BasicType_UINT8:{result = str8_lit("UINT8");}break; +case CV_BasicType_RCHAR:{result = str8_lit("RCHAR");}break; +case CV_BasicType_WCHAR:{result = str8_lit("WCHAR");}break; +case CV_BasicType_INT16:{result = str8_lit("INT16");}break; +case CV_BasicType_UINT16:{result = str8_lit("UINT16");}break; +case CV_BasicType_INT32:{result = str8_lit("INT32");}break; +case CV_BasicType_UINT32:{result = str8_lit("UINT32");}break; +case CV_BasicType_INT64:{result = str8_lit("INT64");}break; +case CV_BasicType_UINT64:{result = str8_lit("UINT64");}break; +case CV_BasicType_INT128:{result = str8_lit("INT128");}break; +case CV_BasicType_UINT128:{result = str8_lit("UINT128");}break; +case CV_BasicType_CHAR16:{result = str8_lit("CHAR16");}break; +case CV_BasicType_CHAR32:{result = str8_lit("CHAR32");}break; +case CV_BasicType_CHAR8:{result = str8_lit("CHAR8");}break; +case CV_BasicType_PTR:{result = str8_lit("PTR");}break; +} +return result; +} + +internal String8 +cv_type_name_from_basic_type(CV_BasicType v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_BasicType_NOTYPE:{result = str8_lit("");}break; +case CV_BasicType_ABS:{result = str8_lit("");}break; +case CV_BasicType_SEGMENT:{result = str8_lit("");}break; +case CV_BasicType_VOID:{result = str8_lit("void");}break; +case CV_BasicType_CURRENCY:{result = str8_lit("");}break; +case CV_BasicType_NBASICSTR:{result = str8_lit("");}break; +case CV_BasicType_FBASICSTR:{result = str8_lit("");}break; +case CV_BasicType_NOTTRANS:{result = str8_lit("");}break; +case CV_BasicType_HRESULT:{result = str8_lit("HRESULT");}break; +case CV_BasicType_CHAR:{result = str8_lit("CHAR");}break; +case CV_BasicType_SHORT:{result = str8_lit("SHORT");}break; +case CV_BasicType_LONG:{result = str8_lit("LONG");}break; +case CV_BasicType_QUAD:{result = str8_lit("QUAD");}break; +case CV_BasicType_OCT:{result = str8_lit("OCT");}break; +case CV_BasicType_UCHAR:{result = str8_lit("UCHAR");}break; +case CV_BasicType_USHORT:{result = str8_lit("USHORT");}break; +case CV_BasicType_ULONG:{result = str8_lit("ULONG");}break; +case CV_BasicType_UQUAD:{result = str8_lit("UQUAD");}break; +case CV_BasicType_UOCT:{result = str8_lit("UOCT");}break; +case CV_BasicType_BOOL8:{result = str8_lit("BOOL8");}break; +case CV_BasicType_BOOL16:{result = str8_lit("BOOL16");}break; +case CV_BasicType_BOOL32:{result = str8_lit("BOOL32");}break; +case CV_BasicType_BOOL64:{result = str8_lit("BOOL64");}break; +case CV_BasicType_FLOAT32:{result = str8_lit("FLOAT32");}break; +case CV_BasicType_FLOAT64:{result = str8_lit("FLOAT64");}break; +case CV_BasicType_FLOAT80:{result = str8_lit("FLOAT80");}break; +case CV_BasicType_FLOAT128:{result = str8_lit("FLOAT128");}break; +case CV_BasicType_FLOAT48:{result = str8_lit("FLOAT48");}break; +case CV_BasicType_FLOAT32PP:{result = str8_lit("FLOAT32PP");}break; +case CV_BasicType_FLOAT16:{result = str8_lit("FLOAT16");}break; +case CV_BasicType_COMPLEX32:{result = str8_lit("ComplexF32");}break; +case CV_BasicType_COMPLEX64:{result = str8_lit("ComplexF64");}break; +case CV_BasicType_COMPLEX80:{result = str8_lit("ComplexF80");}break; +case CV_BasicType_COMPLEX128:{result = str8_lit("ComplexF128");}break; +case CV_BasicType_BIT:{result = str8_lit("");}break; +case CV_BasicType_PASCHAR:{result = str8_lit("");}break; +case CV_BasicType_BOOL32FF:{result = str8_lit("BOOL32FF");}break; +case CV_BasicType_INT8:{result = str8_lit("int8");}break; +case CV_BasicType_UINT8:{result = str8_lit("uint8");}break; +case CV_BasicType_RCHAR:{result = str8_lit("char");}break; +case CV_BasicType_WCHAR:{result = str8_lit("WCHAR");}break; +case CV_BasicType_INT16:{result = str8_lit("int16");}break; +case CV_BasicType_UINT16:{result = str8_lit("uint16");}break; +case CV_BasicType_INT32:{result = str8_lit("int32");}break; +case CV_BasicType_UINT32:{result = str8_lit("uint32");}break; +case CV_BasicType_INT64:{result = str8_lit("int64");}break; +case CV_BasicType_UINT64:{result = str8_lit("uint64");}break; +case CV_BasicType_INT128:{result = str8_lit("int128");}break; +case CV_BasicType_UINT128:{result = str8_lit("uint128");}break; +case CV_BasicType_CHAR16:{result = str8_lit("char16");}break; +case CV_BasicType_CHAR32:{result = str8_lit("char32");}break; +case CV_BasicType_CHAR8:{result = str8_lit("char");}break; +case CV_BasicType_PTR:{result = str8_lit("PTR");}break; +} +return result; +} + +internal String8 +cv_string_from_leaf_kind(CV_LeafKind v) +{ +String8 result = str8_lit(""); +switch(v) +{ +default:{}break; +case CV_LeafKind_NOTYPE:{result = str8_lit("NOTYPE");}break; +case CV_LeafKind_MODIFIER_16t:{result = str8_lit("MODIFIER_16t");}break; +case CV_LeafKind_POINTER_16t:{result = str8_lit("POINTER_16t");}break; +case CV_LeafKind_ARRAY_16t:{result = str8_lit("ARRAY_16t");}break; +case CV_LeafKind_CLASS_16t:{result = str8_lit("CLASS_16t");}break; +case CV_LeafKind_STRUCTURE_16t:{result = str8_lit("STRUCTURE_16t");}break; +case CV_LeafKind_UNION_16t:{result = str8_lit("UNION_16t");}break; +case CV_LeafKind_ENUM_16t:{result = str8_lit("ENUM_16t");}break; +case CV_LeafKind_PROCEDURE_16t:{result = str8_lit("PROCEDURE_16t");}break; +case CV_LeafKind_MFUNCTION_16t:{result = str8_lit("MFUNCTION_16t");}break; +case CV_LeafKind_VTSHAPE:{result = str8_lit("VTSHAPE");}break; +case CV_LeafKind_COBOL0_16t:{result = str8_lit("COBOL0_16t");}break; +case CV_LeafKind_COBOL1:{result = str8_lit("COBOL1");}break; +case CV_LeafKind_BARRAY_16t:{result = str8_lit("BARRAY_16t");}break; +case CV_LeafKind_LABEL:{result = str8_lit("LABEL");}break; +case CV_LeafKind_NULL:{result = str8_lit("NULL");}break; +case CV_LeafKind_NOTTRAN:{result = str8_lit("NOTTRAN");}break; +case CV_LeafKind_DIMARRAY_16t:{result = str8_lit("DIMARRAY_16t");}break; +case CV_LeafKind_VFTPATH_16t:{result = str8_lit("VFTPATH_16t");}break; +case CV_LeafKind_PRECOMP_16t:{result = str8_lit("PRECOMP_16t");}break; +case CV_LeafKind_ENDPRECOMP:{result = str8_lit("ENDPRECOMP");}break; +case CV_LeafKind_OEM_16t:{result = str8_lit("OEM_16t");}break; +case CV_LeafKind_TYPESERVER_ST:{result = str8_lit("TYPESERVER_ST");}break; +case CV_LeafKind_SKIP_16t:{result = str8_lit("SKIP_16t");}break; +case CV_LeafKind_ARGLIST_16t:{result = str8_lit("ARGLIST_16t");}break; +case CV_LeafKind_DEFARG_16t:{result = str8_lit("DEFARG_16t");}break; +case CV_LeafKind_LIST:{result = str8_lit("LIST");}break; +case CV_LeafKind_FIELDLIST_16t:{result = str8_lit("FIELDLIST_16t");}break; +case CV_LeafKind_DERIVED_16t:{result = str8_lit("DERIVED_16t");}break; +case CV_LeafKind_BITFIELD_16t:{result = str8_lit("BITFIELD_16t");}break; +case CV_LeafKind_METHODLIST_16t:{result = str8_lit("METHODLIST_16t");}break; +case CV_LeafKind_DIMCONU_16t:{result = str8_lit("DIMCONU_16t");}break; +case CV_LeafKind_DIMCONLU_16t:{result = str8_lit("DIMCONLU_16t");}break; +case CV_LeafKind_DIMVARU_16t:{result = str8_lit("DIMVARU_16t");}break; +case CV_LeafKind_DIMVARLU_16t:{result = str8_lit("DIMVARLU_16t");}break; +case CV_LeafKind_REFSYM:{result = str8_lit("REFSYM");}break; +case CV_LeafKind_BCLASS_16t:{result = str8_lit("BCLASS_16t");}break; +case CV_LeafKind_VBCLASS_16t:{result = str8_lit("VBCLASS_16t");}break; +case CV_LeafKind_IVBCLASS_16t:{result = str8_lit("IVBCLASS_16t");}break; +case CV_LeafKind_ENUMERATE_ST:{result = str8_lit("ENUMERATE_ST");}break; +case CV_LeafKind_FRIENDFCN_16t:{result = str8_lit("FRIENDFCN_16t");}break; +case CV_LeafKind_INDEX_16t:{result = str8_lit("INDEX_16t");}break; +case CV_LeafKind_MEMBER_16t:{result = str8_lit("MEMBER_16t");}break; +case CV_LeafKind_STMEMBER_16t:{result = str8_lit("STMEMBER_16t");}break; +case CV_LeafKind_METHOD_16t:{result = str8_lit("METHOD_16t");}break; +case CV_LeafKind_NESTTYPE_16t:{result = str8_lit("NESTTYPE_16t");}break; +case CV_LeafKind_VFUNCTAB_16t:{result = str8_lit("VFUNCTAB_16t");}break; +case CV_LeafKind_FRIENDCLS_16t:{result = str8_lit("FRIENDCLS_16t");}break; +case CV_LeafKind_ONEMETHOD_16t:{result = str8_lit("ONEMETHOD_16t");}break; +case CV_LeafKind_VFUNCOFF_16t:{result = str8_lit("VFUNCOFF_16t");}break; +case CV_LeafKind_TI16_MAX:{result = str8_lit("TI16_MAX");}break; +case CV_LeafKind_MODIFIER:{result = str8_lit("MODIFIER");}break; +case CV_LeafKind_POINTER:{result = str8_lit("POINTER");}break; +case CV_LeafKind_ARRAY_ST:{result = str8_lit("ARRAY_ST");}break; +case CV_LeafKind_CLASS_ST:{result = str8_lit("CLASS_ST");}break; +case CV_LeafKind_STRUCTURE_ST:{result = str8_lit("STRUCTURE_ST");}break; +case CV_LeafKind_UNION_ST:{result = str8_lit("UNION_ST");}break; +case CV_LeafKind_ENUM_ST:{result = str8_lit("ENUM_ST");}break; +case CV_LeafKind_PROCEDURE:{result = str8_lit("PROCEDURE");}break; +case CV_LeafKind_MFUNCTION:{result = str8_lit("MFUNCTION");}break; +case CV_LeafKind_COBOL0:{result = str8_lit("COBOL0");}break; +case CV_LeafKind_BARRAY:{result = str8_lit("BARRAY");}break; +case CV_LeafKind_DIMARRAY_ST:{result = str8_lit("DIMARRAY_ST");}break; +case CV_LeafKind_VFTPATH:{result = str8_lit("VFTPATH");}break; +case CV_LeafKind_PRECOMP_ST:{result = str8_lit("PRECOMP_ST");}break; +case CV_LeafKind_OEM:{result = str8_lit("OEM");}break; +case CV_LeafKind_ALIAS_ST:{result = str8_lit("ALIAS_ST");}break; +case CV_LeafKind_OEM2:{result = str8_lit("OEM2");}break; +case CV_LeafKind_SKIP:{result = str8_lit("SKIP");}break; +case CV_LeafKind_ARGLIST:{result = str8_lit("ARGLIST");}break; +case CV_LeafKind_DEFARG_ST:{result = str8_lit("DEFARG_ST");}break; +case CV_LeafKind_FIELDLIST:{result = str8_lit("FIELDLIST");}break; +case CV_LeafKind_DERIVED:{result = str8_lit("DERIVED");}break; +case CV_LeafKind_BITFIELD:{result = str8_lit("BITFIELD");}break; +case CV_LeafKind_METHODLIST:{result = str8_lit("METHODLIST");}break; +case CV_LeafKind_DIMCONU:{result = str8_lit("DIMCONU");}break; +case CV_LeafKind_DIMCONLU:{result = str8_lit("DIMCONLU");}break; +case CV_LeafKind_DIMVARU:{result = str8_lit("DIMVARU");}break; +case CV_LeafKind_DIMVARLU:{result = str8_lit("DIMVARLU");}break; +case CV_LeafKind_BCLASS:{result = str8_lit("BCLASS");}break; +case CV_LeafKind_VBCLASS:{result = str8_lit("VBCLASS");}break; +case CV_LeafKind_IVBCLASS:{result = str8_lit("IVBCLASS");}break; +case CV_LeafKind_FRIENDFCN_ST:{result = str8_lit("FRIENDFCN_ST");}break; +case CV_LeafKind_INDEX:{result = str8_lit("INDEX");}break; +case CV_LeafKind_MEMBER_ST:{result = str8_lit("MEMBER_ST");}break; +case CV_LeafKind_STMEMBER_ST:{result = str8_lit("STMEMBER_ST");}break; +case CV_LeafKind_METHOD_ST:{result = str8_lit("METHOD_ST");}break; +case CV_LeafKind_NESTTYPE_ST:{result = str8_lit("NESTTYPE_ST");}break; +case CV_LeafKind_VFUNCTAB:{result = str8_lit("VFUNCTAB");}break; +case CV_LeafKind_FRIENDCLS:{result = str8_lit("FRIENDCLS");}break; +case CV_LeafKind_ONEMETHOD_ST:{result = str8_lit("ONEMETHOD_ST");}break; +case CV_LeafKind_VFUNCOFF:{result = str8_lit("VFUNCOFF");}break; +case CV_LeafKind_NESTTYPEEX_ST:{result = str8_lit("NESTTYPEEX_ST");}break; +case CV_LeafKind_MEMBERMODIFY_ST:{result = str8_lit("MEMBERMODIFY_ST");}break; +case CV_LeafKind_MANAGED_ST:{result = str8_lit("MANAGED_ST");}break; +case CV_LeafKind_ST_MAX:{result = str8_lit("ST_MAX");}break; +case CV_LeafKind_TYPESERVER:{result = str8_lit("TYPESERVER");}break; +case CV_LeafKind_ENUMERATE:{result = str8_lit("ENUMERATE");}break; +case CV_LeafKind_ARRAY:{result = str8_lit("ARRAY");}break; +case CV_LeafKind_CLASS:{result = str8_lit("CLASS");}break; +case CV_LeafKind_STRUCTURE:{result = str8_lit("STRUCTURE");}break; +case CV_LeafKind_UNION:{result = str8_lit("UNION");}break; +case CV_LeafKind_ENUM:{result = str8_lit("ENUM");}break; +case CV_LeafKind_DIMARRAY:{result = str8_lit("DIMARRAY");}break; +case CV_LeafKind_PRECOMP:{result = str8_lit("PRECOMP");}break; +case CV_LeafKind_ALIAS:{result = str8_lit("ALIAS");}break; +case CV_LeafKind_DEFARG:{result = str8_lit("DEFARG");}break; +case CV_LeafKind_FRIENDFCN:{result = str8_lit("FRIENDFCN");}break; +case CV_LeafKind_MEMBER:{result = str8_lit("MEMBER");}break; +case CV_LeafKind_STMEMBER:{result = str8_lit("STMEMBER");}break; +case CV_LeafKind_METHOD:{result = str8_lit("METHOD");}break; +case CV_LeafKind_NESTTYPE:{result = str8_lit("NESTTYPE");}break; +case CV_LeafKind_ONEMETHOD:{result = str8_lit("ONEMETHOD");}break; +case CV_LeafKind_NESTTYPEEX:{result = str8_lit("NESTTYPEEX");}break; +case CV_LeafKind_MEMBERMODIFY:{result = str8_lit("MEMBERMODIFY");}break; +case CV_LeafKind_MANAGED:{result = str8_lit("MANAGED");}break; +case CV_LeafKind_TYPESERVER2:{result = str8_lit("TYPESERVER2");}break; +case CV_LeafKind_STRIDED_ARRAY:{result = str8_lit("STRIDED_ARRAY");}break; +case CV_LeafKind_HLSL:{result = str8_lit("HLSL");}break; +case CV_LeafKind_MODIFIER_EX:{result = str8_lit("MODIFIER_EX");}break; +case CV_LeafKind_INTERFACE:{result = str8_lit("INTERFACE");}break; +case CV_LeafKind_BINTERFACE:{result = str8_lit("BINTERFACE");}break; +case CV_LeafKind_VECTOR:{result = str8_lit("VECTOR");}break; +case CV_LeafKind_MATRIX:{result = str8_lit("MATRIX");}break; +case CV_LeafKind_VFTABLE:{result = str8_lit("VFTABLE");}break; +case CV_LeafKind_FUNC_ID:{result = str8_lit("FUNC_ID");}break; +case CV_LeafKind_MFUNC_ID:{result = str8_lit("MFUNC_ID");}break; +case CV_LeafKind_BUILDINFO:{result = str8_lit("BUILDINFO");}break; +case CV_LeafKind_SUBSTR_LIST:{result = str8_lit("SUBSTR_LIST");}break; +case CV_LeafKind_STRING_ID:{result = str8_lit("STRING_ID");}break; +case CV_LeafKind_UDT_SRC_LINE:{result = str8_lit("UDT_SRC_LINE");}break; +case CV_LeafKind_UDT_MOD_SRC_LINE:{result = str8_lit("UDT_MOD_SRC_LINE");}break; +case CV_LeafKind_CLASS2:{result = str8_lit("CLASS2");}break; +case CV_LeafKind_STRUCT2:{result = str8_lit("STRUCT2");}break; +} +return result; +} + +internal U64 +cv_header_struct_size_from_sym_kind(CV_SymKind v) +{ +U64 result = 0; +switch(v) +{ +default:{}break; +case CV_SymKind_COMPILE:{result = sizeof(CV_SymCompile);}break; +case CV_SymKind_SSEARCH:{result = sizeof(CV_SymStartSearch);}break; +case CV_SymKind_RETURN:{result = sizeof(CV_SymReturn);}break; +case CV_SymKind_SLINK32:{result = sizeof(CV_SymSLink32);}break; +case CV_SymKind_OEM:{result = sizeof(CV_SymOEM);}break; +case CV_SymKind_VFTABLE32:{result = sizeof(CV_SymVPath32);}break; +case CV_SymKind_FRAMEPROC:{result = sizeof(CV_SymFrameproc);}break; +case CV_SymKind_ANNOTATION:{result = sizeof(CV_SymAnnotation);}break; +case CV_SymKind_OBJNAME:{result = sizeof(CV_SymObjName);}break; +case CV_SymKind_THUNK32:{result = sizeof(CV_SymThunk32);}break; +case CV_SymKind_BLOCK32:{result = sizeof(CV_SymBlock32);}break; +case CV_SymKind_LABEL32:{result = sizeof(CV_SymLabel32);}break; +case CV_SymKind_REGISTER:{result = sizeof(CV_SymRegister);}break; +case CV_SymKind_CONSTANT:{result = sizeof(CV_SymConstant);}break; +case CV_SymKind_UDT:{result = sizeof(CV_SymUDT);}break; +case CV_SymKind_MANYREG:{result = sizeof(CV_SymManyreg);}break; +case CV_SymKind_BPREL32:{result = sizeof(CV_SymBPRel32);}break; +case CV_SymKind_LDATA32:{result = sizeof(CV_SymData32);}break; +case CV_SymKind_GDATA32:{result = sizeof(CV_SymData32);}break; +case CV_SymKind_PUB32:{result = sizeof(CV_SymPub32);}break; +case CV_SymKind_LPROC32:{result = sizeof(CV_SymProc32);}break; +case CV_SymKind_GPROC32:{result = sizeof(CV_SymProc32);}break; +case CV_SymKind_REGREL32:{result = sizeof(CV_SymRegrel32);}break; +case CV_SymKind_LTHREAD32:{result = sizeof(CV_SymThread32);}break; +case CV_SymKind_GTHREAD32:{result = sizeof(CV_SymThread32);}break; +case CV_SymKind_COMPILE2:{result = sizeof(CV_SymCompile2);}break; +case CV_SymKind_MANYREG2:{result = sizeof(CV_SymManyreg2);}break; +case CV_SymKind_LOCALSLOT:{result = sizeof(CV_SymSlot);}break; +case CV_SymKind_MANFRAMEREL:{result = sizeof(CV_SymAttrFrameRel);}break; +case CV_SymKind_MANREGISTER:{result = sizeof(CV_SymAttrReg);}break; +case CV_SymKind_MANMANYREG:{result = sizeof(CV_SymAttrManyReg);}break; +case CV_SymKind_MANREGREL:{result = sizeof(CV_SymAttrRegRel);}break; +case CV_SymKind_UNAMESPACE:{result = sizeof(CV_SymUNamespace);}break; +case CV_SymKind_PROCREF:{result = sizeof(CV_SymRef2);}break; +case CV_SymKind_DATAREF:{result = sizeof(CV_SymRef2);}break; +case CV_SymKind_LPROCREF:{result = sizeof(CV_SymRef2);}break; +case CV_SymKind_TRAMPOLINE:{result = sizeof(CV_SymTrampoline);}break; +case CV_SymKind_ATTR_FRAMEREL:{result = sizeof(CV_SymAttrFrameRel);}break; +case CV_SymKind_ATTR_REGISTER:{result = sizeof(CV_SymAttrReg);}break; +case CV_SymKind_ATTR_REGREL:{result = sizeof(CV_SymAttrRegRel);}break; +case CV_SymKind_ATTR_MANYREG:{result = sizeof(CV_SymAttrManyReg);}break; +case CV_SymKind_SEPCODE:{result = sizeof(CV_SymSepcode);}break; +case CV_SymKind_SECTION:{result = sizeof(CV_SymSection);}break; +case CV_SymKind_COFFGROUP:{result = sizeof(CV_SymCoffGroup);}break; +case CV_SymKind_EXPORT:{result = sizeof(CV_SymExport);}break; +case CV_SymKind_CALLSITEINFO:{result = sizeof(CV_SymCallSiteInfo);}break; +case CV_SymKind_FRAMECOOKIE:{result = sizeof(CV_SymFrameCookie);}break; +case CV_SymKind_DISCARDED:{result = sizeof(CV_SymDiscarded);}break; +case CV_SymKind_COMPILE3:{result = sizeof(CV_SymCompile3);}break; +case CV_SymKind_ENVBLOCK:{result = sizeof(CV_SymEnvBlock);}break; +case CV_SymKind_LOCAL:{result = sizeof(CV_SymLocal);}break; +case CV_SymKind_DEFRANGE_SUBFIELD:{result = sizeof(CV_SymDefrangeSubfield);}break; +case CV_SymKind_DEFRANGE_REGISTER:{result = sizeof(CV_SymDefrangeRegister);}break; +case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL:{result = sizeof(CV_SymDefrangeFramepointerRel);}break; +case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER:{result = sizeof(CV_SymDefrangeSubfieldRegister);}break; +case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE:{result = sizeof(CV_SymDefrangeFramepointerRelFullScope);}break; +case CV_SymKind_DEFRANGE_REGISTER_REL:{result = sizeof(CV_SymDefrangeRegisterRel);}break; +case CV_SymKind_BUILDINFO:{result = sizeof(CV_SymBuildInfo);}break; +case CV_SymKind_INLINESITE:{result = sizeof(CV_SymInlineSite);}break; +case CV_SymKind_FILESTATIC:{result = sizeof(CV_SymFileStatic);}break; +case CV_SymKind_CALLEES:{result = sizeof(CV_SymFunctionList);}break; +case CV_SymKind_CALLERS:{result = sizeof(CV_SymFunctionList);}break; +case CV_SymKind_POGODATA:{result = sizeof(CV_SymPogoInfo);}break; +case CV_SymKind_INLINESITE2:{result = sizeof(CV_SymInlineSite2);}break; +case CV_SymKind_HEAPALLOCSITE:{result = sizeof(CV_SymHeapAllocSite);}break; +case CV_SymKind_MOD_TYPEREF:{result = sizeof(CV_SymModTypeRef);}break; +case CV_SymKind_REF_MINIPDB:{result = sizeof(CV_SymRefMiniPdb);}break; +case CV_SymKind_FASTLINK:{result = sizeof(CV_SymFastLink);}break; +case CV_SymKind_INLINEES:{result = sizeof(CV_SymInlinees);}break; +} +return result; +} +internal U64 +cv_header_struct_size_from_leaf_kind(CV_LeafKind v) +{ +U64 result = 0; +switch(v) +{ +default:{}break; +case CV_LeafKind_VTSHAPE:{result = sizeof(CV_LeafVTShape);}break; +case CV_LeafKind_LABEL:{result = sizeof(CV_LeafLabel);}break; +case CV_LeafKind_MODIFIER:{result = sizeof(CV_LeafModifier);}break; +case CV_LeafKind_POINTER:{result = sizeof(CV_LeafPointer);}break; +case CV_LeafKind_PROCEDURE:{result = sizeof(CV_LeafProcedure);}break; +case CV_LeafKind_MFUNCTION:{result = sizeof(CV_LeafMFunction);}break; +case CV_LeafKind_VFTPATH:{result = sizeof(CV_LeafVFPath);}break; +case CV_LeafKind_SKIP:{result = sizeof(CV_LeafSkip);}break; +case CV_LeafKind_ARGLIST:{result = sizeof(CV_LeafArgList);}break; +case CV_LeafKind_BITFIELD:{result = sizeof(CV_LeafBitField);}break; +case CV_LeafKind_METHODLIST:{result = sizeof(CV_LeafMethodListMember);}break; +case CV_LeafKind_BCLASS:{result = sizeof(CV_LeafBClass);}break; +case CV_LeafKind_VBCLASS:{result = sizeof(CV_LeafVBClass);}break; +case CV_LeafKind_INDEX:{result = sizeof(CV_LeafIndex);}break; +case CV_LeafKind_VFUNCTAB:{result = sizeof(CV_LeafVFuncTab);}break; +case CV_LeafKind_VFUNCOFF:{result = sizeof(CV_LeafVFuncOff);}break; +case CV_LeafKind_TYPESERVER:{result = sizeof(CV_LeafTypeServer);}break; +case CV_LeafKind_ENUMERATE:{result = sizeof(CV_LeafEnumerate);}break; +case CV_LeafKind_ARRAY:{result = sizeof(CV_LeafArray);}break; +case CV_LeafKind_CLASS:{result = sizeof(CV_LeafStruct);}break; +case CV_LeafKind_STRUCTURE:{result = sizeof(CV_LeafStruct);}break; +case CV_LeafKind_UNION:{result = sizeof(CV_LeafUnion);}break; +case CV_LeafKind_ENUM:{result = sizeof(CV_LeafEnum);}break; +case CV_LeafKind_PRECOMP:{result = sizeof(CV_LeafPreComp);}break; +case CV_LeafKind_ALIAS:{result = sizeof(CV_LeafAlias);}break; +case CV_LeafKind_MEMBER:{result = sizeof(CV_LeafMember);}break; +case CV_LeafKind_STMEMBER:{result = sizeof(CV_LeafStMember);}break; +case CV_LeafKind_METHOD:{result = sizeof(CV_LeafMethod);}break; +case CV_LeafKind_NESTTYPE:{result = sizeof(CV_LeafNestType);}break; +case CV_LeafKind_ONEMETHOD:{result = sizeof(CV_LeafOneMethod);}break; +case CV_LeafKind_NESTTYPEEX:{result = sizeof(CV_LeafNestTypeEx);}break; +case CV_LeafKind_TYPESERVER2:{result = sizeof(CV_LeafTypeServer2);}break; +case CV_LeafKind_INTERFACE:{result = sizeof(CV_LeafStruct);}break; +case CV_LeafKind_FUNC_ID:{result = sizeof(CV_LeafFuncId);}break; +case CV_LeafKind_MFUNC_ID:{result = sizeof(CV_LeafMFuncId);}break; +case CV_LeafKind_BUILDINFO:{result = sizeof(CV_LeafBuildInfo);}break; +case CV_LeafKind_SUBSTR_LIST:{result = sizeof(CV_LeafSubstrList);}break; +case CV_LeafKind_STRING_ID:{result = sizeof(CV_LeafStringId);}break; +case CV_LeafKind_UDT_SRC_LINE:{result = sizeof(CV_LeafUDTSrcLine);}break; +case CV_LeafKind_UDT_MOD_SRC_LINE:{result = sizeof(CV_LeafUDTModSrcLine);}break; +case CV_LeafKind_CLASS2:{result = sizeof(CV_LeafStruct2);}break; +case CV_LeafKind_STRUCT2:{result = sizeof(CV_LeafStruct2);}break; +} +return result; +} diff --git a/src/codeview/generated/codeview.meta.h b/src/codeview/generated/codeview.meta.h index 84612e5e..24265ebc 100644 --- a/src/codeview/generated/codeview.meta.h +++ b/src/codeview/generated/codeview.meta.h @@ -1,528 +1,528 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef CODEVIEW_META_H -#define CODEVIEW_META_H - -typedef U16 CV_NumericKind; -typedef enum CV_NumericKindEnum -{ -CV_NumericKind_CHAR = 0x8000, -CV_NumericKind_SHORT = 0x8001, -CV_NumericKind_USHORT = 0x8002, -CV_NumericKind_LONG = 0x8003, -CV_NumericKind_ULONG = 0x8004, -CV_NumericKind_FLOAT32 = 0x8005, -CV_NumericKind_FLOAT64 = 0x8006, -CV_NumericKind_FLOAT80 = 0x8007, -CV_NumericKind_FLOAT128 = 0x8008, -CV_NumericKind_QUADWORD = 0x8009, -CV_NumericKind_UQUADWORD = 0x800a, -CV_NumericKind_FLOAT48 = 0x800b, -CV_NumericKind_COMPLEX32 = 0x800c, -CV_NumericKind_COMPLEX64 = 0x800d, -CV_NumericKind_COMPLEX80 = 0x800e, -CV_NumericKind_COMPLEX128 = 0x800f, -CV_NumericKind_VARSTRING = 0x8010, -CV_NumericKind_OCTWORD = 0x8017, -CV_NumericKind_UOCTWORD = 0x8018, -CV_NumericKind_DECIMAL = 0x8019, -CV_NumericKind_DATE = 0x801a, -CV_NumericKind_UTF8STRING = 0x801b, -CV_NumericKind_FLOAT16 = 0x801c, -} CV_NumericKindEnum; - -typedef U16 CV_Arch; -typedef enum CV_ArchEnum -{ -CV_Arch_8080 = 0x00, -CV_Arch_8086 = 0x01, -CV_Arch_80286 = 0x02, -CV_Arch_80386 = 0x03, -CV_Arch_80486 = 0x04, -CV_Arch_PENTIUM = 0x05, -CV_Arch_PENTIUMII = 0x06, -CV_Arch_PENTIUMIII = 0x07, -CV_Arch_MIPS = 0x10, -CV_Arch_MIPS16 = 0x11, -CV_Arch_MIPS32 = 0x12, -CV_Arch_MIPS64 = 0x13, -CV_Arch_MIPSI = 0x14, -CV_Arch_MIPSII = 0x15, -CV_Arch_MIPSIII = 0x16, -CV_Arch_MIPSIV = 0x17, -CV_Arch_MIPSV = 0x18, -CV_Arch_M68000 = 0x20, -CV_Arch_M68010 = 0x21, -CV_Arch_M68020 = 0x22, -CV_Arch_M68030 = 0x23, -CV_Arch_M68040 = 0x24, -CV_Arch_ALPHA = 0x30, -CV_Arch_ALPHA_21164 = 0x31, -CV_Arch_ALPHA_21164A = 0x32, -CV_Arch_ALPHA_21264 = 0x33, -CV_Arch_ALPHA_21364 = 0x34, -CV_Arch_PPC601 = 0x40, -CV_Arch_PPC603 = 0x41, -CV_Arch_PPC604 = 0x42, -CV_Arch_PPC620 = 0x43, -CV_Arch_PPCFP = 0x44, -CV_Arch_PPCBE = 0x45, -CV_Arch_SH3 = 0x50, -CV_Arch_SH3E = 0x51, -CV_Arch_SH3DSP = 0x52, -CV_Arch_SH4 = 0x53, -CV_Arch_SHMEDIA = 0x54, -CV_Arch_ARM3 = 0x60, -CV_Arch_ARM4 = 0x61, -CV_Arch_ARM4T = 0x62, -CV_Arch_ARM5 = 0x63, -CV_Arch_ARM5T = 0x64, -CV_Arch_ARM6 = 0x65, -CV_Arch_ARM_XMAC = 0x66, -CV_Arch_ARM_WMMX = 0x67, -CV_Arch_ARM7 = 0x68, -CV_Arch_OMNI = 0x70, -CV_Arch_IA64_1 = 0x80, -CV_Arch_IA64_2 = 0x81, -CV_Arch_CEE = 0x90, -CV_Arch_AM33 = 0xA0, -CV_Arch_M32R = 0xB0, -CV_Arch_TRICORE = 0xC0, -CV_Arch_X64 = 0xD0, -CV_Arch_EBC = 0xE0, -CV_Arch_THUMB = 0xF0, -CV_Arch_ARMNT = 0xF4, -CV_Arch_ARM64 = 0xF6, -CV_Arch_D3D11_SHADER = 0x100, -CV_Arch_IA64 = CV_Arch_IA64_1, -CV_Arch_PENTIUMPRO = CV_Arch_PENTIUMII, -CV_Arch_MIPSR4000 = CV_Arch_MIPS, -CV_Arch_ALPHA_21064 = CV_Arch_ALPHA, -CV_Arch_AMD64 = CV_Arch_X64, -} CV_ArchEnum; - -typedef U16 CV_AllReg; -typedef enum CV_AllRegEnum -{ -CV_AllReg_ERR = 30000, -CV_AllReg_TEB = 30001, -CV_AllReg_TIMER = 30002, -CV_AllReg_EFAD1 = 30003, -CV_AllReg_EFAD2 = 30004, -CV_AllReg_EFAD3 = 30005, -CV_AllReg_VFRAME = 30006, -CV_AllReg_HANDLE = 30007, -CV_AllReg_PARAMS = 30008, -CV_AllReg_LOCALS = 30009, -CV_AllReg_TID = 30010, -CV_AllReg_ENV = 30011, -CV_AllReg_CMDLN = 30012, -} CV_AllRegEnum; - -typedef U16 CV_SymKind; -typedef enum CV_SymKindEnum -{ -CV_SymKind_COMPILE = 0x0001, -CV_SymKind_REGISTER_16t = 0x0002, -CV_SymKind_CONSTANT_16t = 0x0003, -CV_SymKind_UDT_16t = 0x0004, -CV_SymKind_SSEARCH = 0x0005, -CV_SymKind_END = 0x0006, -CV_SymKind_SKIP = 0x0007, -CV_SymKind_CVRESERVE = 0x0008, -CV_SymKind_OBJNAME_ST = 0x0009, -CV_SymKind_ENDARG = 0x000a, -CV_SymKind_COBOLUDT_16t = 0x000b, -CV_SymKind_MANYREG_16t = 0x000c, -CV_SymKind_RETURN = 0x000d, -CV_SymKind_ENTRYTHIS = 0x000e, -CV_SymKind_BPREL16 = 0x0100, -CV_SymKind_LDATA16 = 0x0101, -CV_SymKind_GDATA16 = 0x0102, -CV_SymKind_PUB16 = 0x0103, -CV_SymKind_LPROC16 = 0x0104, -CV_SymKind_GPROC16 = 0x0105, -CV_SymKind_THUNK16 = 0x0106, -CV_SymKind_BLOCK16 = 0x0107, -CV_SymKind_WITH16 = 0x0108, -CV_SymKind_LABEL16 = 0x0109, -CV_SymKind_CEXMODEL16 = 0x010a, -CV_SymKind_VFTABLE16 = 0x010b, -CV_SymKind_REGREL16 = 0x010c, -CV_SymKind_BPREL32_16t = 0x0200, -CV_SymKind_LDATA32_16t = 0x0201, -CV_SymKind_GDATA32_16t = 0x0202, -CV_SymKind_PUB32_16t = 0x0203, -CV_SymKind_LPROC32_16t = 0x0204, -CV_SymKind_GPROC32_16t = 0x0205, -CV_SymKind_THUNK32_ST = 0x0206, -CV_SymKind_BLOCK32_ST = 0x0207, -CV_SymKind_WITH32_ST = 0x0208, -CV_SymKind_LABEL32_ST = 0x0209, -CV_SymKind_CEXMODEL32 = 0x020a, -CV_SymKind_VFTABLE32_16t = 0x020b, -CV_SymKind_REGREL32_16t = 0x020c, -CV_SymKind_LTHREAD32_16t = 0x020d, -CV_SymKind_GTHREAD32_16t = 0x020e, -CV_SymKind_SLINK32 = 0x020f, -CV_SymKind_LPROCMIPS_16t = 0x0300, -CV_SymKind_GPROCMIPS_16t = 0x0301, -CV_SymKind_PROCREF_ST = 0x0400, -CV_SymKind_DATAREF_ST = 0x0401, -CV_SymKind_ALIGN = 0x0402, -CV_SymKind_LPROCREF_ST = 0x0403, -CV_SymKind_OEM = 0x0404, -CV_SymKind_TI16_MAX = 0x1000, -CV_SymKind_CONSTANT_ST = 0x1002, -CV_SymKind_UDT_ST = 0x1003, -CV_SymKind_COBOLUDT_ST = 0x1004, -CV_SymKind_MANYREG_ST = 0x1005, -CV_SymKind_BPREL32_ST = 0x1006, -CV_SymKind_LDATA32_ST = 0x1007, -CV_SymKind_GDATA32_ST = 0x1008, -CV_SymKind_PUB32_ST = 0x1009, -CV_SymKind_LPROC32_ST = 0x100a, -CV_SymKind_GPROC32_ST = 0x100b, -CV_SymKind_VFTABLE32 = 0x100c, -CV_SymKind_REGREL32_ST = 0x100d, -CV_SymKind_LTHREAD32_ST = 0x100e, -CV_SymKind_GTHREAD32_ST = 0x100f, -CV_SymKind_LPROCMIPS_ST = 0x1010, -CV_SymKind_GPROCMIPS_ST = 0x1011, -CV_SymKind_FRAMEPROC = 0x1012, -CV_SymKind_COMPILE2_ST = 0x1013, -CV_SymKind_MANYREG2_ST = 0x1014, -CV_SymKind_LPROCIA64_ST = 0x1015, -CV_SymKind_GPROCIA64_ST = 0x1016, -CV_SymKind_LOCALSLOT_ST = 0x1017, -CV_SymKind_PARAMSLOT_ST = 0x1018, -CV_SymKind_ANNOTATION = 0x1019, -CV_SymKind_GMANPROC_ST = 0x101a, -CV_SymKind_LMANPROC_ST = 0x101b, -CV_SymKind_RESERVED1 = 0x101c, -CV_SymKind_RESERVED2 = 0x101d, -CV_SymKind_RESERVED3 = 0x101e, -CV_SymKind_RESERVED4 = 0x101f, -CV_SymKind_LMANDATA_ST = 0x1020, -CV_SymKind_GMANDATA_ST = 0x1021, -CV_SymKind_MANFRAMEREL_ST = 0x1022, -CV_SymKind_MANREGISTER_ST = 0x1023, -CV_SymKind_MANSLOT_ST = 0x1024, -CV_SymKind_MANMANYREG_ST = 0x1025, -CV_SymKind_MANREGREL_ST = 0x1026, -CV_SymKind_MANMANYREG2_ST = 0x1027, -CV_SymKind_MANTYPREF = 0x1028, -CV_SymKind_UNAMESPACE_ST = 0x1029, -CV_SymKind_ST_MAX = 0x1100, -CV_SymKind_OBJNAME = 0x1101, -CV_SymKind_THUNK32 = 0x1102, -CV_SymKind_BLOCK32 = 0x1103, -CV_SymKind_WITH32 = 0x1104, -CV_SymKind_LABEL32 = 0x1105, -CV_SymKind_REGISTER = 0x1106, -CV_SymKind_CONSTANT = 0x1107, -CV_SymKind_UDT = 0x1108, -CV_SymKind_COBOLUDT = 0x1109, -CV_SymKind_MANYREG = 0x110a, -CV_SymKind_BPREL32 = 0x110b, -CV_SymKind_LDATA32 = 0x110c, -CV_SymKind_GDATA32 = 0x110d, -CV_SymKind_PUB32 = 0x110e, -CV_SymKind_LPROC32 = 0x110f, -CV_SymKind_GPROC32 = 0x1110, -CV_SymKind_REGREL32 = 0x1111, -CV_SymKind_LTHREAD32 = 0x1112, -CV_SymKind_GTHREAD32 = 0x1113, -CV_SymKind_LPROCMIPS = 0x1114, -CV_SymKind_GPROCMIPS = 0x1115, -CV_SymKind_COMPILE2 = 0x1116, -CV_SymKind_MANYREG2 = 0x1117, -CV_SymKind_LPROCIA64 = 0x1118, -CV_SymKind_GPROCIA64 = 0x1119, -CV_SymKind_LOCALSLOT = 0x111a, -CV_SymKind_PARAMSLOT = 0x111b, -CV_SymKind_LMANDATA = 0x111c, -CV_SymKind_GMANDATA = 0x111d, -CV_SymKind_MANFRAMEREL = 0x111e, -CV_SymKind_MANREGISTER = 0x111f, -CV_SymKind_MANSLOT = 0x1120, -CV_SymKind_MANMANYREG = 0x1121, -CV_SymKind_MANREGREL = 0x1122, -CV_SymKind_MANMANYREG2 = 0x1123, -CV_SymKind_UNAMESPACE = 0x1124, -CV_SymKind_PROCREF = 0x1125, -CV_SymKind_DATAREF = 0x1126, -CV_SymKind_LPROCREF = 0x1127, -CV_SymKind_ANNOTATIONREF = 0x1128, -CV_SymKind_TOKENREF = 0x1129, -CV_SymKind_GMANPROC = 0x112a, -CV_SymKind_LMANPROC = 0x112b, -CV_SymKind_TRAMPOLINE = 0x112c, -CV_SymKind_MANCONSTANT = 0x112d, -CV_SymKind_ATTR_FRAMEREL = 0x112e, -CV_SymKind_ATTR_REGISTER = 0x112f, -CV_SymKind_ATTR_REGREL = 0x1130, -CV_SymKind_ATTR_MANYREG = 0x1131, -CV_SymKind_SEPCODE = 0x1132, -CV_SymKind_DEFRANGE_2005 = 0x1134, -CV_SymKind_DEFRANGE2_2005 = 0x1135, -CV_SymKind_SECTION = 0x1136, -CV_SymKind_COFFGROUP = 0x1137, -CV_SymKind_EXPORT = 0x1138, -CV_SymKind_CALLSITEINFO = 0x1139, -CV_SymKind_FRAMECOOKIE = 0x113a, -CV_SymKind_DISCARDED = 0x113b, -CV_SymKind_COMPILE3 = 0x113c, -CV_SymKind_ENVBLOCK = 0x113d, -CV_SymKind_LOCAL = 0x113e, -CV_SymKind_DEFRANGE = 0x113f, -CV_SymKind_DEFRANGE_SUBFIELD = 0x1140, -CV_SymKind_DEFRANGE_REGISTER = 0x1141, -CV_SymKind_DEFRANGE_FRAMEPOINTER_REL = 0x1142, -CV_SymKind_DEFRANGE_SUBFIELD_REGISTER = 0x1143, -CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE = 0x1144, -CV_SymKind_DEFRANGE_REGISTER_REL = 0x1145, -CV_SymKind_LPROC32_ID = 0x1146, -CV_SymKind_GPROC32_ID = 0x1147, -CV_SymKind_LPROCMIPS_ID = 0x1148, -CV_SymKind_GPROCMIPS_ID = 0x1149, -CV_SymKind_LPROCIA64_ID = 0x114a, -CV_SymKind_GPROCIA64_ID = 0x114b, -CV_SymKind_BUILDINFO = 0x114c, -CV_SymKind_INLINESITE = 0x114d, -CV_SymKind_INLINESITE_END = 0x114e, -CV_SymKind_PROC_ID_END = 0x114f, -CV_SymKind_DEFRANGE_HLSL = 0x1150, -CV_SymKind_GDATA_HLSL = 0x1151, -CV_SymKind_LDATA_HLSL = 0x1152, -CV_SymKind_FILESTATIC = 0x1153, -CV_SymKind_LPROC32_DPC = 0x1155, -CV_SymKind_LPROC32_DPC_ID = 0x1156, -CV_SymKind_DEFRANGE_DPC_PTR_TAG = 0x1157, -CV_SymKind_DPC_SYM_TAG_MAP = 0x1158, -CV_SymKind_ARMSWITCHTABLE = 0x1159, -CV_SymKind_CALLEES = 0x115a, -CV_SymKind_CALLERS = 0x115b, -CV_SymKind_POGODATA = 0x115c, -CV_SymKind_INLINESITE2 = 0x115d, -CV_SymKind_HEAPALLOCSITE = 0x115e, -CV_SymKind_MOD_TYPEREF = 0x115f, -CV_SymKind_REF_MINIPDB = 0x1160, -CV_SymKind_PDBMAP = 0x1161, -CV_SymKind_GDATA_HLSL32 = 0x1162, -CV_SymKind_LDATA_HLSL32 = 0x1163, -CV_SymKind_GDATA_HLSL32_EX = 0x1164, -CV_SymKind_LDATA_HLSL32_EX = 0x1165, -CV_SymKind_FASTLINK = 0x1167, -CV_SymKind_INLINEES = 0x1168, -} CV_SymKindEnum; - -typedef U8 CV_BasicType; -typedef enum CV_BasicTypeEnum -{ -CV_BasicType_NOTYPE = 0x00, -CV_BasicType_ABS = 0x01, -CV_BasicType_SEGMENT = 0x02, -CV_BasicType_VOID = 0x03, -CV_BasicType_CURRENCY = 0x04, -CV_BasicType_NBASICSTR = 0x05, -CV_BasicType_FBASICSTR = 0x06, -CV_BasicType_NOTTRANS = 0x07, -CV_BasicType_HRESULT = 0x08, -CV_BasicType_CHAR = 0x10, -CV_BasicType_SHORT = 0x11, -CV_BasicType_LONG = 0x12, -CV_BasicType_QUAD = 0x13, -CV_BasicType_OCT = 0x14, -CV_BasicType_UCHAR = 0x20, -CV_BasicType_USHORT = 0x21, -CV_BasicType_ULONG = 0x22, -CV_BasicType_UQUAD = 0x23, -CV_BasicType_UOCT = 0x24, -CV_BasicType_BOOL8 = 0x30, -CV_BasicType_BOOL16 = 0x31, -CV_BasicType_BOOL32 = 0x32, -CV_BasicType_BOOL64 = 0x33, -CV_BasicType_FLOAT32 = 0x40, -CV_BasicType_FLOAT64 = 0x41, -CV_BasicType_FLOAT80 = 0x42, -CV_BasicType_FLOAT128 = 0x43, -CV_BasicType_FLOAT48 = 0x44, -CV_BasicType_FLOAT32PP = 0x45, -CV_BasicType_FLOAT16 = 0x46, -CV_BasicType_COMPLEX32 = 0x50, -CV_BasicType_COMPLEX64 = 0x51, -CV_BasicType_COMPLEX80 = 0x52, -CV_BasicType_COMPLEX128 = 0x53, -CV_BasicType_BIT = 0x60, -CV_BasicType_PASCHAR = 0x61, -CV_BasicType_BOOL32FF = 0x62, -CV_BasicType_INT8 = 0x68, -CV_BasicType_UINT8 = 0x69, -CV_BasicType_RCHAR = 0x70, -CV_BasicType_WCHAR = 0x71, -CV_BasicType_INT16 = 0x72, -CV_BasicType_UINT16 = 0x73, -CV_BasicType_INT32 = 0x74, -CV_BasicType_UINT32 = 0x75, -CV_BasicType_INT64 = 0x76, -CV_BasicType_UINT64 = 0x77, -CV_BasicType_INT128 = 0x78, -CV_BasicType_UINT128 = 0x79, -CV_BasicType_CHAR16 = 0x7a, -CV_BasicType_CHAR32 = 0x7b, -CV_BasicType_CHAR8 = 0x7c, -CV_BasicType_PTR = 0xf0, -} CV_BasicTypeEnum; - -typedef U16 CV_LeafKind; -typedef enum CV_LeafKindEnum -{ -CV_LeafKind_NOTYPE = 0x0000, -CV_LeafKind_MODIFIER_16t = 0x0001, -CV_LeafKind_POINTER_16t = 0x0002, -CV_LeafKind_ARRAY_16t = 0x0003, -CV_LeafKind_CLASS_16t = 0x0004, -CV_LeafKind_STRUCTURE_16t = 0x0005, -CV_LeafKind_UNION_16t = 0x0006, -CV_LeafKind_ENUM_16t = 0x0007, -CV_LeafKind_PROCEDURE_16t = 0x0008, -CV_LeafKind_MFUNCTION_16t = 0x0009, -CV_LeafKind_VTSHAPE = 0x000a, -CV_LeafKind_COBOL0_16t = 0x000b, -CV_LeafKind_COBOL1 = 0x000c, -CV_LeafKind_BARRAY_16t = 0x000d, -CV_LeafKind_LABEL = 0x000e, -CV_LeafKind_NULL = 0x000f, -CV_LeafKind_NOTTRAN = 0x0010, -CV_LeafKind_DIMARRAY_16t = 0x0011, -CV_LeafKind_VFTPATH_16t = 0x0012, -CV_LeafKind_PRECOMP_16t = 0x0013, -CV_LeafKind_ENDPRECOMP = 0x0014, -CV_LeafKind_OEM_16t = 0x0015, -CV_LeafKind_TYPESERVER_ST = 0x0016, -CV_LeafKind_SKIP_16t = 0x0200, -CV_LeafKind_ARGLIST_16t = 0x0201, -CV_LeafKind_DEFARG_16t = 0x0202, -CV_LeafKind_LIST = 0x0203, -CV_LeafKind_FIELDLIST_16t = 0x0204, -CV_LeafKind_DERIVED_16t = 0x0205, -CV_LeafKind_BITFIELD_16t = 0x0206, -CV_LeafKind_METHODLIST_16t = 0x0207, -CV_LeafKind_DIMCONU_16t = 0x0208, -CV_LeafKind_DIMCONLU_16t = 0x0209, -CV_LeafKind_DIMVARU_16t = 0x020a, -CV_LeafKind_DIMVARLU_16t = 0x020b, -CV_LeafKind_REFSYM = 0x020c, -CV_LeafKind_BCLASS_16t = 0x0400, -CV_LeafKind_VBCLASS_16t = 0x0401, -CV_LeafKind_IVBCLASS_16t = 0x0402, -CV_LeafKind_ENUMERATE_ST = 0x0403, -CV_LeafKind_FRIENDFCN_16t = 0x0404, -CV_LeafKind_INDEX_16t = 0x0405, -CV_LeafKind_MEMBER_16t = 0x0406, -CV_LeafKind_STMEMBER_16t = 0x0407, -CV_LeafKind_METHOD_16t = 0x0408, -CV_LeafKind_NESTTYPE_16t = 0x0409, -CV_LeafKind_VFUNCTAB_16t = 0x040a, -CV_LeafKind_FRIENDCLS_16t = 0x040b, -CV_LeafKind_ONEMETHOD_16t = 0x040c, -CV_LeafKind_VFUNCOFF_16t = 0x040d, -CV_LeafKind_TI16_MAX = 0x1000, -CV_LeafKind_MODIFIER = 0x1001, -CV_LeafKind_POINTER = 0x1002, -CV_LeafKind_ARRAY_ST = 0x1003, -CV_LeafKind_CLASS_ST = 0x1004, -CV_LeafKind_STRUCTURE_ST = 0x1005, -CV_LeafKind_UNION_ST = 0x1006, -CV_LeafKind_ENUM_ST = 0x1007, -CV_LeafKind_PROCEDURE = 0x1008, -CV_LeafKind_MFUNCTION = 0x1009, -CV_LeafKind_COBOL0 = 0x100a, -CV_LeafKind_BARRAY = 0x100b, -CV_LeafKind_DIMARRAY_ST = 0x100c, -CV_LeafKind_VFTPATH = 0x100d, -CV_LeafKind_PRECOMP_ST = 0x100e, -CV_LeafKind_OEM = 0x100f, -CV_LeafKind_ALIAS_ST = 0x1010, -CV_LeafKind_OEM2 = 0x1011, -CV_LeafKind_SKIP = 0x1200, -CV_LeafKind_ARGLIST = 0x1201, -CV_LeafKind_DEFARG_ST = 0x1202, -CV_LeafKind_FIELDLIST = 0x1203, -CV_LeafKind_DERIVED = 0x1204, -CV_LeafKind_BITFIELD = 0x1205, -CV_LeafKind_METHODLIST = 0x1206, -CV_LeafKind_DIMCONU = 0x1207, -CV_LeafKind_DIMCONLU = 0x1208, -CV_LeafKind_DIMVARU = 0x1209, -CV_LeafKind_DIMVARLU = 0x120a, -CV_LeafKind_BCLASS = 0x1400, -CV_LeafKind_VBCLASS = 0x1401, -CV_LeafKind_IVBCLASS = 0x1402, -CV_LeafKind_FRIENDFCN_ST = 0x1403, -CV_LeafKind_INDEX = 0x1404, -CV_LeafKind_MEMBER_ST = 0x1405, -CV_LeafKind_STMEMBER_ST = 0x1406, -CV_LeafKind_METHOD_ST = 0x1407, -CV_LeafKind_NESTTYPE_ST = 0x1408, -CV_LeafKind_VFUNCTAB = 0x1409, -CV_LeafKind_FRIENDCLS = 0x140a, -CV_LeafKind_ONEMETHOD_ST = 0x140b, -CV_LeafKind_VFUNCOFF = 0x140c, -CV_LeafKind_NESTTYPEEX_ST = 0x140d, -CV_LeafKind_MEMBERMODIFY_ST = 0x140e, -CV_LeafKind_MANAGED_ST = 0x140f, -CV_LeafKind_ST_MAX = 0x1500, -CV_LeafKind_TYPESERVER = 0x1501, -CV_LeafKind_ENUMERATE = 0x1502, -CV_LeafKind_ARRAY = 0x1503, -CV_LeafKind_CLASS = 0x1504, -CV_LeafKind_STRUCTURE = 0x1505, -CV_LeafKind_UNION = 0x1506, -CV_LeafKind_ENUM = 0x1507, -CV_LeafKind_DIMARRAY = 0x1508, -CV_LeafKind_PRECOMP = 0x1509, -CV_LeafKind_ALIAS = 0x150a, -CV_LeafKind_DEFARG = 0x150b, -CV_LeafKind_FRIENDFCN = 0x150c, -CV_LeafKind_MEMBER = 0x150d, -CV_LeafKind_STMEMBER = 0x150e, -CV_LeafKind_METHOD = 0x150f, -CV_LeafKind_NESTTYPE = 0x1510, -CV_LeafKind_ONEMETHOD = 0x1511, -CV_LeafKind_NESTTYPEEX = 0x1512, -CV_LeafKind_MEMBERMODIFY = 0x1513, -CV_LeafKind_MANAGED = 0x1514, -CV_LeafKind_TYPESERVER2 = 0x1515, -CV_LeafKind_STRIDED_ARRAY = 0x1516, -CV_LeafKind_HLSL = 0x1517, -CV_LeafKind_MODIFIER_EX = 0x1518, -CV_LeafKind_INTERFACE = 0x1519, -CV_LeafKind_BINTERFACE = 0x151a, -CV_LeafKind_VECTOR = 0x151b, -CV_LeafKind_MATRIX = 0x151c, -CV_LeafKind_VFTABLE = 0x151d, -CV_LeafKind_FUNC_ID = 0x1601, -CV_LeafKind_MFUNC_ID = 0x1602, -CV_LeafKind_BUILDINFO = 0x1603, -CV_LeafKind_SUBSTR_LIST = 0x1604, -CV_LeafKind_STRING_ID = 0x1605, -CV_LeafKind_UDT_SRC_LINE = 0x1606, -CV_LeafKind_UDT_MOD_SRC_LINE = 0x1607, -CV_LeafKind_CLASS2 = 0x1608, -CV_LeafKind_STRUCT2 = 0x1609, -} CV_LeafKindEnum; - -internal String8 cv_string_from_numeric_kind(CV_NumericKind v); -internal String8 cv_string_from_arch(CV_Arch v); -internal String8 cv_string_from_sym_kind(CV_SymKind v); -internal String8 cv_string_from_basic_type(CV_BasicType v); -internal String8 cv_type_name_from_basic_type(CV_BasicType v); -internal String8 cv_string_from_leaf_kind(CV_LeafKind v); -internal U64 cv_header_struct_size_from_sym_kind(CV_SymKind v); -internal U64 cv_header_struct_size_from_leaf_kind(CV_LeafKind v); -#endif // CODEVIEW_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef CODEVIEW_META_H +#define CODEVIEW_META_H + +typedef U16 CV_NumericKind; +typedef enum CV_NumericKindEnum +{ +CV_NumericKind_CHAR = 0x8000, +CV_NumericKind_SHORT = 0x8001, +CV_NumericKind_USHORT = 0x8002, +CV_NumericKind_LONG = 0x8003, +CV_NumericKind_ULONG = 0x8004, +CV_NumericKind_FLOAT32 = 0x8005, +CV_NumericKind_FLOAT64 = 0x8006, +CV_NumericKind_FLOAT80 = 0x8007, +CV_NumericKind_FLOAT128 = 0x8008, +CV_NumericKind_QUADWORD = 0x8009, +CV_NumericKind_UQUADWORD = 0x800a, +CV_NumericKind_FLOAT48 = 0x800b, +CV_NumericKind_COMPLEX32 = 0x800c, +CV_NumericKind_COMPLEX64 = 0x800d, +CV_NumericKind_COMPLEX80 = 0x800e, +CV_NumericKind_COMPLEX128 = 0x800f, +CV_NumericKind_VARSTRING = 0x8010, +CV_NumericKind_OCTWORD = 0x8017, +CV_NumericKind_UOCTWORD = 0x8018, +CV_NumericKind_DECIMAL = 0x8019, +CV_NumericKind_DATE = 0x801a, +CV_NumericKind_UTF8STRING = 0x801b, +CV_NumericKind_FLOAT16 = 0x801c, +} CV_NumericKindEnum; + +typedef U16 CV_Arch; +typedef enum CV_ArchEnum +{ +CV_Arch_8080 = 0x00, +CV_Arch_8086 = 0x01, +CV_Arch_80286 = 0x02, +CV_Arch_80386 = 0x03, +CV_Arch_80486 = 0x04, +CV_Arch_PENTIUM = 0x05, +CV_Arch_PENTIUMII = 0x06, +CV_Arch_PENTIUMIII = 0x07, +CV_Arch_MIPS = 0x10, +CV_Arch_MIPS16 = 0x11, +CV_Arch_MIPS32 = 0x12, +CV_Arch_MIPS64 = 0x13, +CV_Arch_MIPSI = 0x14, +CV_Arch_MIPSII = 0x15, +CV_Arch_MIPSIII = 0x16, +CV_Arch_MIPSIV = 0x17, +CV_Arch_MIPSV = 0x18, +CV_Arch_M68000 = 0x20, +CV_Arch_M68010 = 0x21, +CV_Arch_M68020 = 0x22, +CV_Arch_M68030 = 0x23, +CV_Arch_M68040 = 0x24, +CV_Arch_ALPHA = 0x30, +CV_Arch_ALPHA_21164 = 0x31, +CV_Arch_ALPHA_21164A = 0x32, +CV_Arch_ALPHA_21264 = 0x33, +CV_Arch_ALPHA_21364 = 0x34, +CV_Arch_PPC601 = 0x40, +CV_Arch_PPC603 = 0x41, +CV_Arch_PPC604 = 0x42, +CV_Arch_PPC620 = 0x43, +CV_Arch_PPCFP = 0x44, +CV_Arch_PPCBE = 0x45, +CV_Arch_SH3 = 0x50, +CV_Arch_SH3E = 0x51, +CV_Arch_SH3DSP = 0x52, +CV_Arch_SH4 = 0x53, +CV_Arch_SHMEDIA = 0x54, +CV_Arch_ARM3 = 0x60, +CV_Arch_ARM4 = 0x61, +CV_Arch_ARM4T = 0x62, +CV_Arch_ARM5 = 0x63, +CV_Arch_ARM5T = 0x64, +CV_Arch_ARM6 = 0x65, +CV_Arch_ARM_XMAC = 0x66, +CV_Arch_ARM_WMMX = 0x67, +CV_Arch_ARM7 = 0x68, +CV_Arch_OMNI = 0x70, +CV_Arch_IA64_1 = 0x80, +CV_Arch_IA64_2 = 0x81, +CV_Arch_CEE = 0x90, +CV_Arch_AM33 = 0xA0, +CV_Arch_M32R = 0xB0, +CV_Arch_TRICORE = 0xC0, +CV_Arch_X64 = 0xD0, +CV_Arch_EBC = 0xE0, +CV_Arch_THUMB = 0xF0, +CV_Arch_ARMNT = 0xF4, +CV_Arch_ARM64 = 0xF6, +CV_Arch_D3D11_SHADER = 0x100, +CV_Arch_IA64 = CV_Arch_IA64_1, +CV_Arch_PENTIUMPRO = CV_Arch_PENTIUMII, +CV_Arch_MIPSR4000 = CV_Arch_MIPS, +CV_Arch_ALPHA_21064 = CV_Arch_ALPHA, +CV_Arch_AMD64 = CV_Arch_X64, +} CV_ArchEnum; + +typedef U16 CV_AllReg; +typedef enum CV_AllRegEnum +{ +CV_AllReg_ERR = 30000, +CV_AllReg_TEB = 30001, +CV_AllReg_TIMER = 30002, +CV_AllReg_EFAD1 = 30003, +CV_AllReg_EFAD2 = 30004, +CV_AllReg_EFAD3 = 30005, +CV_AllReg_VFRAME = 30006, +CV_AllReg_HANDLE = 30007, +CV_AllReg_PARAMS = 30008, +CV_AllReg_LOCALS = 30009, +CV_AllReg_TID = 30010, +CV_AllReg_ENV = 30011, +CV_AllReg_CMDLN = 30012, +} CV_AllRegEnum; + +typedef U16 CV_SymKind; +typedef enum CV_SymKindEnum +{ +CV_SymKind_COMPILE = 0x0001, +CV_SymKind_REGISTER_16t = 0x0002, +CV_SymKind_CONSTANT_16t = 0x0003, +CV_SymKind_UDT_16t = 0x0004, +CV_SymKind_SSEARCH = 0x0005, +CV_SymKind_END = 0x0006, +CV_SymKind_SKIP = 0x0007, +CV_SymKind_CVRESERVE = 0x0008, +CV_SymKind_OBJNAME_ST = 0x0009, +CV_SymKind_ENDARG = 0x000a, +CV_SymKind_COBOLUDT_16t = 0x000b, +CV_SymKind_MANYREG_16t = 0x000c, +CV_SymKind_RETURN = 0x000d, +CV_SymKind_ENTRYTHIS = 0x000e, +CV_SymKind_BPREL16 = 0x0100, +CV_SymKind_LDATA16 = 0x0101, +CV_SymKind_GDATA16 = 0x0102, +CV_SymKind_PUB16 = 0x0103, +CV_SymKind_LPROC16 = 0x0104, +CV_SymKind_GPROC16 = 0x0105, +CV_SymKind_THUNK16 = 0x0106, +CV_SymKind_BLOCK16 = 0x0107, +CV_SymKind_WITH16 = 0x0108, +CV_SymKind_LABEL16 = 0x0109, +CV_SymKind_CEXMODEL16 = 0x010a, +CV_SymKind_VFTABLE16 = 0x010b, +CV_SymKind_REGREL16 = 0x010c, +CV_SymKind_BPREL32_16t = 0x0200, +CV_SymKind_LDATA32_16t = 0x0201, +CV_SymKind_GDATA32_16t = 0x0202, +CV_SymKind_PUB32_16t = 0x0203, +CV_SymKind_LPROC32_16t = 0x0204, +CV_SymKind_GPROC32_16t = 0x0205, +CV_SymKind_THUNK32_ST = 0x0206, +CV_SymKind_BLOCK32_ST = 0x0207, +CV_SymKind_WITH32_ST = 0x0208, +CV_SymKind_LABEL32_ST = 0x0209, +CV_SymKind_CEXMODEL32 = 0x020a, +CV_SymKind_VFTABLE32_16t = 0x020b, +CV_SymKind_REGREL32_16t = 0x020c, +CV_SymKind_LTHREAD32_16t = 0x020d, +CV_SymKind_GTHREAD32_16t = 0x020e, +CV_SymKind_SLINK32 = 0x020f, +CV_SymKind_LPROCMIPS_16t = 0x0300, +CV_SymKind_GPROCMIPS_16t = 0x0301, +CV_SymKind_PROCREF_ST = 0x0400, +CV_SymKind_DATAREF_ST = 0x0401, +CV_SymKind_ALIGN = 0x0402, +CV_SymKind_LPROCREF_ST = 0x0403, +CV_SymKind_OEM = 0x0404, +CV_SymKind_TI16_MAX = 0x1000, +CV_SymKind_CONSTANT_ST = 0x1002, +CV_SymKind_UDT_ST = 0x1003, +CV_SymKind_COBOLUDT_ST = 0x1004, +CV_SymKind_MANYREG_ST = 0x1005, +CV_SymKind_BPREL32_ST = 0x1006, +CV_SymKind_LDATA32_ST = 0x1007, +CV_SymKind_GDATA32_ST = 0x1008, +CV_SymKind_PUB32_ST = 0x1009, +CV_SymKind_LPROC32_ST = 0x100a, +CV_SymKind_GPROC32_ST = 0x100b, +CV_SymKind_VFTABLE32 = 0x100c, +CV_SymKind_REGREL32_ST = 0x100d, +CV_SymKind_LTHREAD32_ST = 0x100e, +CV_SymKind_GTHREAD32_ST = 0x100f, +CV_SymKind_LPROCMIPS_ST = 0x1010, +CV_SymKind_GPROCMIPS_ST = 0x1011, +CV_SymKind_FRAMEPROC = 0x1012, +CV_SymKind_COMPILE2_ST = 0x1013, +CV_SymKind_MANYREG2_ST = 0x1014, +CV_SymKind_LPROCIA64_ST = 0x1015, +CV_SymKind_GPROCIA64_ST = 0x1016, +CV_SymKind_LOCALSLOT_ST = 0x1017, +CV_SymKind_PARAMSLOT_ST = 0x1018, +CV_SymKind_ANNOTATION = 0x1019, +CV_SymKind_GMANPROC_ST = 0x101a, +CV_SymKind_LMANPROC_ST = 0x101b, +CV_SymKind_RESERVED1 = 0x101c, +CV_SymKind_RESERVED2 = 0x101d, +CV_SymKind_RESERVED3 = 0x101e, +CV_SymKind_RESERVED4 = 0x101f, +CV_SymKind_LMANDATA_ST = 0x1020, +CV_SymKind_GMANDATA_ST = 0x1021, +CV_SymKind_MANFRAMEREL_ST = 0x1022, +CV_SymKind_MANREGISTER_ST = 0x1023, +CV_SymKind_MANSLOT_ST = 0x1024, +CV_SymKind_MANMANYREG_ST = 0x1025, +CV_SymKind_MANREGREL_ST = 0x1026, +CV_SymKind_MANMANYREG2_ST = 0x1027, +CV_SymKind_MANTYPREF = 0x1028, +CV_SymKind_UNAMESPACE_ST = 0x1029, +CV_SymKind_ST_MAX = 0x1100, +CV_SymKind_OBJNAME = 0x1101, +CV_SymKind_THUNK32 = 0x1102, +CV_SymKind_BLOCK32 = 0x1103, +CV_SymKind_WITH32 = 0x1104, +CV_SymKind_LABEL32 = 0x1105, +CV_SymKind_REGISTER = 0x1106, +CV_SymKind_CONSTANT = 0x1107, +CV_SymKind_UDT = 0x1108, +CV_SymKind_COBOLUDT = 0x1109, +CV_SymKind_MANYREG = 0x110a, +CV_SymKind_BPREL32 = 0x110b, +CV_SymKind_LDATA32 = 0x110c, +CV_SymKind_GDATA32 = 0x110d, +CV_SymKind_PUB32 = 0x110e, +CV_SymKind_LPROC32 = 0x110f, +CV_SymKind_GPROC32 = 0x1110, +CV_SymKind_REGREL32 = 0x1111, +CV_SymKind_LTHREAD32 = 0x1112, +CV_SymKind_GTHREAD32 = 0x1113, +CV_SymKind_LPROCMIPS = 0x1114, +CV_SymKind_GPROCMIPS = 0x1115, +CV_SymKind_COMPILE2 = 0x1116, +CV_SymKind_MANYREG2 = 0x1117, +CV_SymKind_LPROCIA64 = 0x1118, +CV_SymKind_GPROCIA64 = 0x1119, +CV_SymKind_LOCALSLOT = 0x111a, +CV_SymKind_PARAMSLOT = 0x111b, +CV_SymKind_LMANDATA = 0x111c, +CV_SymKind_GMANDATA = 0x111d, +CV_SymKind_MANFRAMEREL = 0x111e, +CV_SymKind_MANREGISTER = 0x111f, +CV_SymKind_MANSLOT = 0x1120, +CV_SymKind_MANMANYREG = 0x1121, +CV_SymKind_MANREGREL = 0x1122, +CV_SymKind_MANMANYREG2 = 0x1123, +CV_SymKind_UNAMESPACE = 0x1124, +CV_SymKind_PROCREF = 0x1125, +CV_SymKind_DATAREF = 0x1126, +CV_SymKind_LPROCREF = 0x1127, +CV_SymKind_ANNOTATIONREF = 0x1128, +CV_SymKind_TOKENREF = 0x1129, +CV_SymKind_GMANPROC = 0x112a, +CV_SymKind_LMANPROC = 0x112b, +CV_SymKind_TRAMPOLINE = 0x112c, +CV_SymKind_MANCONSTANT = 0x112d, +CV_SymKind_ATTR_FRAMEREL = 0x112e, +CV_SymKind_ATTR_REGISTER = 0x112f, +CV_SymKind_ATTR_REGREL = 0x1130, +CV_SymKind_ATTR_MANYREG = 0x1131, +CV_SymKind_SEPCODE = 0x1132, +CV_SymKind_DEFRANGE_2005 = 0x1134, +CV_SymKind_DEFRANGE2_2005 = 0x1135, +CV_SymKind_SECTION = 0x1136, +CV_SymKind_COFFGROUP = 0x1137, +CV_SymKind_EXPORT = 0x1138, +CV_SymKind_CALLSITEINFO = 0x1139, +CV_SymKind_FRAMECOOKIE = 0x113a, +CV_SymKind_DISCARDED = 0x113b, +CV_SymKind_COMPILE3 = 0x113c, +CV_SymKind_ENVBLOCK = 0x113d, +CV_SymKind_LOCAL = 0x113e, +CV_SymKind_DEFRANGE = 0x113f, +CV_SymKind_DEFRANGE_SUBFIELD = 0x1140, +CV_SymKind_DEFRANGE_REGISTER = 0x1141, +CV_SymKind_DEFRANGE_FRAMEPOINTER_REL = 0x1142, +CV_SymKind_DEFRANGE_SUBFIELD_REGISTER = 0x1143, +CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE = 0x1144, +CV_SymKind_DEFRANGE_REGISTER_REL = 0x1145, +CV_SymKind_LPROC32_ID = 0x1146, +CV_SymKind_GPROC32_ID = 0x1147, +CV_SymKind_LPROCMIPS_ID = 0x1148, +CV_SymKind_GPROCMIPS_ID = 0x1149, +CV_SymKind_LPROCIA64_ID = 0x114a, +CV_SymKind_GPROCIA64_ID = 0x114b, +CV_SymKind_BUILDINFO = 0x114c, +CV_SymKind_INLINESITE = 0x114d, +CV_SymKind_INLINESITE_END = 0x114e, +CV_SymKind_PROC_ID_END = 0x114f, +CV_SymKind_DEFRANGE_HLSL = 0x1150, +CV_SymKind_GDATA_HLSL = 0x1151, +CV_SymKind_LDATA_HLSL = 0x1152, +CV_SymKind_FILESTATIC = 0x1153, +CV_SymKind_LPROC32_DPC = 0x1155, +CV_SymKind_LPROC32_DPC_ID = 0x1156, +CV_SymKind_DEFRANGE_DPC_PTR_TAG = 0x1157, +CV_SymKind_DPC_SYM_TAG_MAP = 0x1158, +CV_SymKind_ARMSWITCHTABLE = 0x1159, +CV_SymKind_CALLEES = 0x115a, +CV_SymKind_CALLERS = 0x115b, +CV_SymKind_POGODATA = 0x115c, +CV_SymKind_INLINESITE2 = 0x115d, +CV_SymKind_HEAPALLOCSITE = 0x115e, +CV_SymKind_MOD_TYPEREF = 0x115f, +CV_SymKind_REF_MINIPDB = 0x1160, +CV_SymKind_PDBMAP = 0x1161, +CV_SymKind_GDATA_HLSL32 = 0x1162, +CV_SymKind_LDATA_HLSL32 = 0x1163, +CV_SymKind_GDATA_HLSL32_EX = 0x1164, +CV_SymKind_LDATA_HLSL32_EX = 0x1165, +CV_SymKind_FASTLINK = 0x1167, +CV_SymKind_INLINEES = 0x1168, +} CV_SymKindEnum; + +typedef U8 CV_BasicType; +typedef enum CV_BasicTypeEnum +{ +CV_BasicType_NOTYPE = 0x00, +CV_BasicType_ABS = 0x01, +CV_BasicType_SEGMENT = 0x02, +CV_BasicType_VOID = 0x03, +CV_BasicType_CURRENCY = 0x04, +CV_BasicType_NBASICSTR = 0x05, +CV_BasicType_FBASICSTR = 0x06, +CV_BasicType_NOTTRANS = 0x07, +CV_BasicType_HRESULT = 0x08, +CV_BasicType_CHAR = 0x10, +CV_BasicType_SHORT = 0x11, +CV_BasicType_LONG = 0x12, +CV_BasicType_QUAD = 0x13, +CV_BasicType_OCT = 0x14, +CV_BasicType_UCHAR = 0x20, +CV_BasicType_USHORT = 0x21, +CV_BasicType_ULONG = 0x22, +CV_BasicType_UQUAD = 0x23, +CV_BasicType_UOCT = 0x24, +CV_BasicType_BOOL8 = 0x30, +CV_BasicType_BOOL16 = 0x31, +CV_BasicType_BOOL32 = 0x32, +CV_BasicType_BOOL64 = 0x33, +CV_BasicType_FLOAT32 = 0x40, +CV_BasicType_FLOAT64 = 0x41, +CV_BasicType_FLOAT80 = 0x42, +CV_BasicType_FLOAT128 = 0x43, +CV_BasicType_FLOAT48 = 0x44, +CV_BasicType_FLOAT32PP = 0x45, +CV_BasicType_FLOAT16 = 0x46, +CV_BasicType_COMPLEX32 = 0x50, +CV_BasicType_COMPLEX64 = 0x51, +CV_BasicType_COMPLEX80 = 0x52, +CV_BasicType_COMPLEX128 = 0x53, +CV_BasicType_BIT = 0x60, +CV_BasicType_PASCHAR = 0x61, +CV_BasicType_BOOL32FF = 0x62, +CV_BasicType_INT8 = 0x68, +CV_BasicType_UINT8 = 0x69, +CV_BasicType_RCHAR = 0x70, +CV_BasicType_WCHAR = 0x71, +CV_BasicType_INT16 = 0x72, +CV_BasicType_UINT16 = 0x73, +CV_BasicType_INT32 = 0x74, +CV_BasicType_UINT32 = 0x75, +CV_BasicType_INT64 = 0x76, +CV_BasicType_UINT64 = 0x77, +CV_BasicType_INT128 = 0x78, +CV_BasicType_UINT128 = 0x79, +CV_BasicType_CHAR16 = 0x7a, +CV_BasicType_CHAR32 = 0x7b, +CV_BasicType_CHAR8 = 0x7c, +CV_BasicType_PTR = 0xf0, +} CV_BasicTypeEnum; + +typedef U16 CV_LeafKind; +typedef enum CV_LeafKindEnum +{ +CV_LeafKind_NOTYPE = 0x0000, +CV_LeafKind_MODIFIER_16t = 0x0001, +CV_LeafKind_POINTER_16t = 0x0002, +CV_LeafKind_ARRAY_16t = 0x0003, +CV_LeafKind_CLASS_16t = 0x0004, +CV_LeafKind_STRUCTURE_16t = 0x0005, +CV_LeafKind_UNION_16t = 0x0006, +CV_LeafKind_ENUM_16t = 0x0007, +CV_LeafKind_PROCEDURE_16t = 0x0008, +CV_LeafKind_MFUNCTION_16t = 0x0009, +CV_LeafKind_VTSHAPE = 0x000a, +CV_LeafKind_COBOL0_16t = 0x000b, +CV_LeafKind_COBOL1 = 0x000c, +CV_LeafKind_BARRAY_16t = 0x000d, +CV_LeafKind_LABEL = 0x000e, +CV_LeafKind_NULL = 0x000f, +CV_LeafKind_NOTTRAN = 0x0010, +CV_LeafKind_DIMARRAY_16t = 0x0011, +CV_LeafKind_VFTPATH_16t = 0x0012, +CV_LeafKind_PRECOMP_16t = 0x0013, +CV_LeafKind_ENDPRECOMP = 0x0014, +CV_LeafKind_OEM_16t = 0x0015, +CV_LeafKind_TYPESERVER_ST = 0x0016, +CV_LeafKind_SKIP_16t = 0x0200, +CV_LeafKind_ARGLIST_16t = 0x0201, +CV_LeafKind_DEFARG_16t = 0x0202, +CV_LeafKind_LIST = 0x0203, +CV_LeafKind_FIELDLIST_16t = 0x0204, +CV_LeafKind_DERIVED_16t = 0x0205, +CV_LeafKind_BITFIELD_16t = 0x0206, +CV_LeafKind_METHODLIST_16t = 0x0207, +CV_LeafKind_DIMCONU_16t = 0x0208, +CV_LeafKind_DIMCONLU_16t = 0x0209, +CV_LeafKind_DIMVARU_16t = 0x020a, +CV_LeafKind_DIMVARLU_16t = 0x020b, +CV_LeafKind_REFSYM = 0x020c, +CV_LeafKind_BCLASS_16t = 0x0400, +CV_LeafKind_VBCLASS_16t = 0x0401, +CV_LeafKind_IVBCLASS_16t = 0x0402, +CV_LeafKind_ENUMERATE_ST = 0x0403, +CV_LeafKind_FRIENDFCN_16t = 0x0404, +CV_LeafKind_INDEX_16t = 0x0405, +CV_LeafKind_MEMBER_16t = 0x0406, +CV_LeafKind_STMEMBER_16t = 0x0407, +CV_LeafKind_METHOD_16t = 0x0408, +CV_LeafKind_NESTTYPE_16t = 0x0409, +CV_LeafKind_VFUNCTAB_16t = 0x040a, +CV_LeafKind_FRIENDCLS_16t = 0x040b, +CV_LeafKind_ONEMETHOD_16t = 0x040c, +CV_LeafKind_VFUNCOFF_16t = 0x040d, +CV_LeafKind_TI16_MAX = 0x1000, +CV_LeafKind_MODIFIER = 0x1001, +CV_LeafKind_POINTER = 0x1002, +CV_LeafKind_ARRAY_ST = 0x1003, +CV_LeafKind_CLASS_ST = 0x1004, +CV_LeafKind_STRUCTURE_ST = 0x1005, +CV_LeafKind_UNION_ST = 0x1006, +CV_LeafKind_ENUM_ST = 0x1007, +CV_LeafKind_PROCEDURE = 0x1008, +CV_LeafKind_MFUNCTION = 0x1009, +CV_LeafKind_COBOL0 = 0x100a, +CV_LeafKind_BARRAY = 0x100b, +CV_LeafKind_DIMARRAY_ST = 0x100c, +CV_LeafKind_VFTPATH = 0x100d, +CV_LeafKind_PRECOMP_ST = 0x100e, +CV_LeafKind_OEM = 0x100f, +CV_LeafKind_ALIAS_ST = 0x1010, +CV_LeafKind_OEM2 = 0x1011, +CV_LeafKind_SKIP = 0x1200, +CV_LeafKind_ARGLIST = 0x1201, +CV_LeafKind_DEFARG_ST = 0x1202, +CV_LeafKind_FIELDLIST = 0x1203, +CV_LeafKind_DERIVED = 0x1204, +CV_LeafKind_BITFIELD = 0x1205, +CV_LeafKind_METHODLIST = 0x1206, +CV_LeafKind_DIMCONU = 0x1207, +CV_LeafKind_DIMCONLU = 0x1208, +CV_LeafKind_DIMVARU = 0x1209, +CV_LeafKind_DIMVARLU = 0x120a, +CV_LeafKind_BCLASS = 0x1400, +CV_LeafKind_VBCLASS = 0x1401, +CV_LeafKind_IVBCLASS = 0x1402, +CV_LeafKind_FRIENDFCN_ST = 0x1403, +CV_LeafKind_INDEX = 0x1404, +CV_LeafKind_MEMBER_ST = 0x1405, +CV_LeafKind_STMEMBER_ST = 0x1406, +CV_LeafKind_METHOD_ST = 0x1407, +CV_LeafKind_NESTTYPE_ST = 0x1408, +CV_LeafKind_VFUNCTAB = 0x1409, +CV_LeafKind_FRIENDCLS = 0x140a, +CV_LeafKind_ONEMETHOD_ST = 0x140b, +CV_LeafKind_VFUNCOFF = 0x140c, +CV_LeafKind_NESTTYPEEX_ST = 0x140d, +CV_LeafKind_MEMBERMODIFY_ST = 0x140e, +CV_LeafKind_MANAGED_ST = 0x140f, +CV_LeafKind_ST_MAX = 0x1500, +CV_LeafKind_TYPESERVER = 0x1501, +CV_LeafKind_ENUMERATE = 0x1502, +CV_LeafKind_ARRAY = 0x1503, +CV_LeafKind_CLASS = 0x1504, +CV_LeafKind_STRUCTURE = 0x1505, +CV_LeafKind_UNION = 0x1506, +CV_LeafKind_ENUM = 0x1507, +CV_LeafKind_DIMARRAY = 0x1508, +CV_LeafKind_PRECOMP = 0x1509, +CV_LeafKind_ALIAS = 0x150a, +CV_LeafKind_DEFARG = 0x150b, +CV_LeafKind_FRIENDFCN = 0x150c, +CV_LeafKind_MEMBER = 0x150d, +CV_LeafKind_STMEMBER = 0x150e, +CV_LeafKind_METHOD = 0x150f, +CV_LeafKind_NESTTYPE = 0x1510, +CV_LeafKind_ONEMETHOD = 0x1511, +CV_LeafKind_NESTTYPEEX = 0x1512, +CV_LeafKind_MEMBERMODIFY = 0x1513, +CV_LeafKind_MANAGED = 0x1514, +CV_LeafKind_TYPESERVER2 = 0x1515, +CV_LeafKind_STRIDED_ARRAY = 0x1516, +CV_LeafKind_HLSL = 0x1517, +CV_LeafKind_MODIFIER_EX = 0x1518, +CV_LeafKind_INTERFACE = 0x1519, +CV_LeafKind_BINTERFACE = 0x151a, +CV_LeafKind_VECTOR = 0x151b, +CV_LeafKind_MATRIX = 0x151c, +CV_LeafKind_VFTABLE = 0x151d, +CV_LeafKind_FUNC_ID = 0x1601, +CV_LeafKind_MFUNC_ID = 0x1602, +CV_LeafKind_BUILDINFO = 0x1603, +CV_LeafKind_SUBSTR_LIST = 0x1604, +CV_LeafKind_STRING_ID = 0x1605, +CV_LeafKind_UDT_SRC_LINE = 0x1606, +CV_LeafKind_UDT_MOD_SRC_LINE = 0x1607, +CV_LeafKind_CLASS2 = 0x1608, +CV_LeafKind_STRUCT2 = 0x1609, +} CV_LeafKindEnum; + +internal String8 cv_string_from_numeric_kind(CV_NumericKind v); +internal String8 cv_string_from_arch(CV_Arch v); +internal String8 cv_string_from_sym_kind(CV_SymKind v); +internal String8 cv_string_from_basic_type(CV_BasicType v); +internal String8 cv_type_name_from_basic_type(CV_BasicType v); +internal String8 cv_string_from_leaf_kind(CV_LeafKind v); +internal U64 cv_header_struct_size_from_sym_kind(CV_SymKind v); +internal U64 cv_header_struct_size_from_leaf_kind(CV_LeafKind v); +#endif // CODEVIEW_META_H diff --git a/src/coff/coff.c b/src/coff/coff.c index eef1c129..7541f1a2 100644 --- a/src/coff/coff.c +++ b/src/coff/coff.c @@ -92,13 +92,8 @@ coff_read_symbol_name(String8 string_table, COFF_SymbolName *name) if (name->long_name.zeroes == 0) { str8_deserial_read_cstr(string_table, name->long_name.string_table_offset, &name_str); } else { - U32 i; - for (i = 0; i < sizeof(name->short_name); ++i) { - if (name->short_name[i] == '\0') { - break; - } - } - name_str = str8(name->short_name, i); + U32 name_size = idx_of_zero_byte64(name->short_name, sizeof(name->short_name)); + name_str = str8(name->short_name, name_size); } return name_str; } @@ -455,6 +450,21 @@ arch_from_coff_machine(COFF_MachineType machine) return result; } +internal COFF_MachineType +coff_machine_from_arch(Arch arch) +{ + COFF_MachineType machine = COFF_MachineType_Unknown; + switch (arch) { + case Arch_Null: machine = COFF_MachineType_Unknown; break; + case Arch_x86: machine = COFF_MachineType_X86; break; + case Arch_x64: machine = COFF_MachineType_X64; break; + case Arch_arm64: machine = COFF_MachineType_Arm64; break; + case Arch_arm32: machine = COFF_MachineType_Arm; break; + default: InvalidPath; break; + } + return machine; +} + internal U64 coff_foff_from_voff(COFF_SectionHeader *sections, U64 section_count, U64 voff) { diff --git a/src/coff/coff.h b/src/coff/coff.h index 4adff448..5459f97c 100644 --- a/src/coff/coff.h +++ b/src/coff/coff.h @@ -163,24 +163,25 @@ enum #define COFF_SectionFlags_ExtractAlign(f) (COFF_SectionAlign)(((f) >> COFF_SectionFlag_AlignShift) & COFF_SectionFlag_AlignMask) #define COFF_SectionFlags_LnkFlags ((COFF_SectionFlag_AlignMask << COFF_SectionFlag_AlignShift) | COFF_SectionFlag_LnkCOMDAT | COFF_SectionFlag_LnkInfo | COFF_SectionFlag_LnkOther | COFF_SectionFlag_LnkRemove | COFF_SectionFlag_LnkNRelocOvfl) -typedef struct COFF_SectionHeader +typedef struct COFF_SectionHeader COFF_SectionHeader; +struct COFF_SectionHeader { - U8 name[8]; - U32 vsize; - U32 voff; - U32 fsize; - U32 foff; - U32 relocs_foff; - U32 lines_foff; - U16 reloc_count; - U16 line_count; + U8 name[8]; + U32 vsize; + U32 voff; + U32 fsize; + U32 foff; + U32 relocs_foff; + U32 lines_foff; + U16 reloc_count; + U16 line_count; COFF_SectionFlags flags; -} COFF_SectionHeader; +}; //////////////////////////////// typedef U8 COFF_SymType; -enum +typedef enum COFF_SymTypeEnum { COFF_SymType_Null, COFF_SymType_Void, @@ -198,10 +199,11 @@ enum COFF_SymType_Word, COFF_SymType_UInt, COFF_SymType_DWord -}; +} +COFF_SymTypeEnum; typedef U8 COFF_SymStorageClass; -enum +typedef enum COFF_SymStorageClassEnum { COFF_SymStorageClass_Null = 0x00, COFF_SymStorageClass_Automatic = 0x01, @@ -230,7 +232,8 @@ enum COFF_SymStorageClass_WeakExternal = 0x69, COFF_SymStorageClass_CLRToken = 0x6b, COFF_SymStorageClass_EndOfFunction = 0xff -}; +} +COFF_SymStorageClassEnum; typedef U8 COFF_SymDType; enum @@ -628,8 +631,9 @@ internal U64 coff_word_size_from_machine (COFF_MachineType machine); internal U64 coff_default_exe_base_from_machine(COFF_MachineType machine); internal U64 coff_default_dll_base_from_machine(COFF_MachineType machine); -internal Arch arch_from_coff_machine(COFF_MachineType machine); -internal U64 coff_foff_from_voff(COFF_SectionHeader *sections, U64 section_count, U64 voff); +internal Arch arch_from_coff_machine(COFF_MachineType machine); +internal COFF_MachineType coff_machine_from_arch(Arch arch); +internal U64 coff_foff_from_voff(COFF_SectionHeader *sections, U64 section_count, U64 voff); //////////////////////////////// //~ rjf: Enum <=> String diff --git a/src/coff/coff_dump.c b/src/coff/coff_dump.c index 2d74d087..e402bbcd 100644 --- a/src/coff/coff_dump.c +++ b/src/coff/coff_dump.c @@ -648,7 +648,7 @@ coff_print_obj(Arena *arena, String8List *out, String8 indent, String8 raw_data, } if (opts & RD_Option_Dwarf) { - DW_Input dwarf_input = dw_input_from_coff_section_table(scratch.arena, raw_data, raw_string_table, header->section_count, section_table); + DW_Raw dwarf_input = dw_raw_from_coff_section_table(scratch.arena, raw_data, raw_string_table, header->section_count, section_table); dw_format(arena, out, indent, opts, &dwarf_input, arch, ExecutableImageKind_CoffPe); } diff --git a/src/coff/coff_lib_writer.c b/src/coff/coff_lib_writer.c index aeb9a3d2..152e558a 100644 --- a/src/coff/coff_lib_writer.c +++ b/src/coff/coff_lib_writer.c @@ -184,10 +184,7 @@ coff_lib_writer_serialize(Arena *arena, COFF_LibWriter *lib_writer, COFF_TimeSta U64 name_with_slash_size = member->name.size + 1; if (name_with_slash_size > COFF_Archive_MaxShortNameSize) { // have we seen this member name before? - KeyValuePair *is_present = hash_table_search_string(name_ht, member->name); - if (is_present) { - name = is_present->value_string; - } else { + if (!hash_table_search_string_string(name_ht, member->name, &name)) { name = push_str8f(scratch.arena, "/%u", long_names_list.total_size); str8_list_pushf(scratch.arena, &long_names_list, "%S/\n", member->name); hash_table_push_string_string(scratch.arena, name_ht, member->name, name); diff --git a/src/coff/coff_obj_writer.c b/src/coff/coff_obj_writer.c index ccfc4f47..01b9cbfb 100644 --- a/src/coff/coff_obj_writer.c +++ b/src/coff/coff_obj_writer.c @@ -1,11 +1,14 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + internal COFF_ObjWriter* coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine) { - Arena *arena = arena_alloc(); + Arena *arena = arena_alloc(.name = "COFF OBJ WRITER"); COFF_ObjWriter *obj_writer = push_array(arena, COFF_ObjWriter, 1); obj_writer->arena = arena; obj_writer->time_stamp = time_stamp; - obj_writer->machine = machine; + obj_writer->machine = machine; return obj_writer; } @@ -440,6 +443,18 @@ coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection * return reloc; } +internal COFF_ObjReloc * +coff_obj_writer_section_push_reloc_rel32(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol) +{ + COFF_RelocType reloc_type = 0; + switch (obj_writer->machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: reloc_type = COFF_Reloc_X64_Rel32; break; + default: { NotImplemented; } break; + } + return coff_obj_writer_section_push_reloc(obj_writer, sect, apply_off, symbol, reloc_type); +} + internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr32(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol) { @@ -496,5 +511,100 @@ coff_obj_section_is_before(void *raw_a, void *raw_b) return (*a)->section_number < (*b)->section_number; } +#ifdef OBJ_H +internal String8 +coff_from_obj(Arena *arena, OBJ *obj) +{ + Temp scratch = scratch_begin(&arena, 1); + COFF_MachineType machine = coff_machine_from_arch(obj->arch); + COFF_TimeStamp time_stamp = (COFF_TimeStamp)obj->time_stamp; + COFF_ObjWriter *cow = coff_obj_writer_alloc(time_stamp, machine); + + // push sections + HashTable *section_remap = hash_table_init(scratch.arena, obj->symbols.count * 2); + for EachNode(section_n, OBJ_SectionNode, obj->sections.first) { + OBJ_Section *section = §ion_n->v; + + COFF_SectionFlags flags = 0; + if (section->flags & OBJ_SectionFlag_Read) { flags |= COFF_SectionFlag_MemRead; } + if (section->flags & OBJ_SectionFlag_Write) { flags |= COFF_SectionFlag_MemWrite; } + if (section->flags & OBJ_SectionFlag_Exec) { flags |= COFF_SectionFlag_MemExecute|COFF_SectionFlag_CntCode; } + if ( ! (section->flags & OBJ_SectionFlag_Exec)) { flags |= COFF_SectionFlag_CntInitializedData; } + if ( ! (section->flags & OBJ_SectionFlag_Load)) { flags |= COFF_SectionFlag_MemDiscardable; } + + COFF_ObjSection *section_coff = coff_obj_writer_push_section(cow, section->name, flags, str8_zero()); + section_coff->data = section->data; + + // obj -> coff section + hash_table_push_raw_raw(scratch.arena, section_remap, section, section_coff); + } + + // push symbols + HashTable *symbol_remap = hash_table_init(scratch.arena, obj->symbols.count * 2); + for EachNode(symbol_n, OBJ_SymbolNode, obj->symbols.first) { + OBJ_Symbol *symbol = &symbol_n->v; + switch (symbol->ref_kind) { + case OBJ_RefKind_Null: break; + case OBJ_RefKind_Section: { + OBJ_Section *section = symbol->ref; + COFF_ObjSection *section_coff = hash_table_search_raw_raw(section_remap, section); + COFF_SymbolLocation location = (COFF_SymbolLocation){ .type = COFF_SymbolLocation_Section, .u.section = section_coff }; + + COFF_SymStorageClass storage_class = COFF_SymStorageClass_Null; + switch (symbol->scope) { + case OBJ_SymbolScope_Null: break; + case OBJ_SymbolScope_Local: storage_class = COFF_SymStorageClass_Static; break; + case OBJ_SymbolScope_Global: storage_class = COFF_SymStorageClass_External; break; + } + + COFF_ObjSymbol *symbol_coff = coff_obj_writer_push_symbol(cow, + symbol->name, + 0, + location, + (COFF_SymbolType){0}, + storage_class); + hash_table_push_raw_raw(scratch.arena, symbol_remap, symbol, symbol_coff); + } break; + } + } + + // push relocations + for EachNode(section_n, OBJ_SectionNode, obj->sections.first) { + OBJ_Section *section = §ion_n->v; + COFF_ObjSection *section_coff = hash_table_search_raw_raw(section_remap, section); + + for EachNode(reloc_n, OBJ_RelocNode, section->relocs.first) { + OBJ_Reloc *reloc = &reloc_n->v; + + // obj -> coff reloc type + COFF_RelocType reloc_type_coff = 0; + switch (cow->machine) { + case COFF_MachineType_Unknown: break; + case COFF_MachineType_X64: { + switch (reloc->kind) { + case OBJ_RelocKind_Null: break; + case OBJ_RelocKind_SecRel: reloc_type_coff = COFF_Reloc_X64_SecRel; break; + default: InvalidPath; break; + } + } break; + default: InvalidPath; break; + } + + // push reloc entry + COFF_ObjSymbol *symbol_coff = hash_table_search_raw_raw(symbol_remap, reloc->symbol); + AssertAlways(symbol_coff); + coff_obj_writer_section_push_reloc(cow, section_coff, reloc->offset, symbol_coff, reloc_type_coff); + } + } + + String8 raw_obj = coff_obj_writer_serialize(arena, cow); + + coff_obj_writer_release(&cow); + + scratch_end(scratch); + return raw_obj; +} + +#endif diff --git a/src/coff/coff_obj_writer.h b/src/coff/coff_obj_writer.h index 1419396a..8c4d83d7 100644 --- a/src/coff/coff_obj_writer.h +++ b/src/coff/coff_obj_writer.h @@ -1,3 +1,6 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + #ifndef COFF_OBJ_WRITER_H #define COFF_OBJ_WRITER_H @@ -95,34 +98,39 @@ typedef struct COFF_ObjWriter //////////////////////////////// -internal COFF_ObjWriter * coff_obj_writer_alloc(COFF_TimeStamp time_stamp, COFF_MachineType machine); -internal void coff_obj_writer_release(COFF_ObjWriter **obj_writer); +internal COFF_ObjWriter * coff_obj_writer_alloc (COFF_TimeStamp time_stamp, COFF_MachineType machine); +internal void coff_obj_writer_release (COFF_ObjWriter **obj_writer); internal String8 coff_obj_writer_serialize(Arena *arena, COFF_ObjWriter *obj_writer); internal COFF_ObjSection * coff_obj_writer_push_section(COFF_ObjWriter *obj_writer, String8 name, COFF_SectionFlags flags, String8 data); -internal COFF_ObjSymbol* coff_obj_writer_push_symbol(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); +internal COFF_ObjSymbol* coff_obj_writer_push_symbol (COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymbolLocation loc, COFF_SymbolType type, COFF_SymStorageClass storage_class); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern_func(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static(COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef(COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_extern (COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_ObjSection *section); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_static (COFF_ObjWriter *obj_writer, String8 name, U32 off, COFF_ObjSection *section); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_secdef (COFF_ObjWriter *obj_writer, COFF_ObjSection *section, COFF_ComdatSelectType selection); internal COFF_ObjSymbol * coff_obj_writer_push_symbol_associative(COFF_ObjWriter *obj_writer, COFF_ObjSection *head, COFF_ObjSection *associate); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_weak(COFF_ObjWriter *obj_writer, String8 name, COFF_WeakExtType characteristics, COFF_ObjSymbol *tag); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_abs(COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymStorageClass storage_class); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef(COFF_ObjWriter *obj_writer, String8 name); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_func(COFF_ObjWriter *obj_writer, String8 name); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_sect(COFF_ObjWriter *obj_writer, String8 name, U32 value); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_sect(COFF_ObjWriter *obj_writer, String8 name, COFF_ObjSection *sect); -internal COFF_ObjSymbol * coff_obj_writer_push_symbol_common(COFF_ObjWriter *obj_writer, String8 name, U32 size); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_weak (COFF_ObjWriter *obj_writer, String8 name, COFF_WeakExtType characteristics, COFF_ObjSymbol *tag); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_abs (COFF_ObjWriter *obj_writer, String8 name, U32 value, COFF_SymStorageClass storage_class); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef (COFF_ObjWriter *obj_writer, String8 name); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_func (COFF_ObjWriter *obj_writer, String8 name); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_undef_sect (COFF_ObjWriter *obj_writer, String8 name, U32 value); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_sect (COFF_ObjWriter *obj_writer, String8 name, COFF_ObjSection *sect); +internal COFF_ObjSymbol * coff_obj_writer_push_symbol_common (COFF_ObjWriter *obj_writer, String8 name, U32 size); internal void coff_obj_writer_set_default_symbol(COFF_ObjSymbol *weak_symbol, COFF_ObjSymbol *default_symbol); -internal COFF_ObjReloc * coff_obj_writer_section_push_reloc(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc (COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol, COFF_RelocType reloc_type); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_rel32 (COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr32(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); -internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); -internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_voff(COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_addr (COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); +internal COFF_ObjReloc * coff_obj_writer_section_push_reloc_voff (COFF_ObjWriter *obj_writer, COFF_ObjSection *sect, U32 apply_off, COFF_ObjSymbol *symbol); internal void coff_obj_writer_push_directive(COFF_ObjWriter *obj_writer, String8 directive); +#ifdef OBJ_H +internal String8 coff_from_obj(Arena *arena, OBJ *obj); +#endif + #endif // COFF_OBJ_WRITER_H diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index 3f9e81ca..1db0b582 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -127,12 +127,45 @@ coff_section_table_from_data(Arena *arena, String8 data, Rng1U64 section_table_r U64 section_count = dim_1u64(section_table_range) / sizeof(COFF_SectionHeader); COFF_SectionHeader **section_table = push_array_no_zero(arena, COFF_SectionHeader *, section_count+1); section_table[0] = push_array(arena, COFF_SectionHeader, 1); - for (U64 i = 0; i < section_count; ++i) { - section_table[i+1] = str8_deserial_get_raw_ptr(data, section_table_range.min + i*sizeof(COFF_SectionHeader), sizeof(COFF_SectionHeader)); + for EachIndex(sect_idx, section_count) { + section_table[sect_idx + 1] = str8_deserial_get_raw_ptr(data, section_table_range.min + sect_idx*sizeof(COFF_SectionHeader), sizeof(COFF_SectionHeader)); } return section_table; } +internal COFF_SectionHeader * +coff_section_header_from_name(String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) +{ + for EachIndex(sect_idx, section_count) { + if (str8_match(coff_name_from_section_header(string_table, §ion_table[sect_idx]), name, 0)) { + return §ion_table[sect_idx]; + } + } + return 0; +} + +internal COFF_SectionHeaderArray +coff_section_header_array_from_name(Arena *arena, String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) +{ + U64 match_count = 0; + for EachIndex(sect_idx, section_count) { + if (str8_match(coff_name_from_section_header(string_table, §ion_table[sect_idx]), name, 0)) { + match_count += 1; + } + } + + COFF_SectionHeader *matches = push_array(arena, COFF_SectionHeader, match_count); + for (U64 sect_idx = 0, match_idx = 0; sect_idx < section_count; sect_idx += 1) { + if (str8_match(coff_name_from_section_header(string_table, §ion_table[sect_idx]), name, 0)) { + matches[match_idx] = section_table[sect_idx]; + match_idx += 1; + } + } + + return (COFF_SectionHeaderArray){ .count = match_count, .v = matches }; +} + + internal COFF_ParsedSymbol coff_parse_symbol32(String8 string_table, COFF_Symbol32 *sym32) { diff --git a/src/coff/coff_parse.h b/src/coff/coff_parse.h index 4156b6c6..edcb2952 100644 --- a/src/coff/coff_parse.h +++ b/src/coff/coff_parse.h @@ -251,14 +251,17 @@ internal COFF_FileHeaderInfo coff_file_header_info_from_data(String8 raw_coff); //////////////////////////////// // Section -internal COFF_SectionHeader ** coff_section_table_from_data(Arena *arena, String8 data, Rng1U64 section_table_range); +internal COFF_SectionHeader ** coff_section_table_from_data (Arena *arena, String8 data, Rng1U64 section_table_range); +internal COFF_SectionHeader * coff_section_header_from_name (String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name); +internal COFF_SectionHeaderArray coff_section_header_array_from_name(Arena *arena, String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name); +internal String8 coff_name_from_section_header (String8 string_table, COFF_SectionHeader *header); //////////////////////////////// // Symbol internal COFF_ParsedSymbol coff_parse_symbol32(String8 string_table, COFF_Symbol32 *sym32); internal COFF_ParsedSymbol coff_parse_symbol16(String8 string_table, COFF_Symbol16 *sym16); -internal COFF_ParsedSymbol coff_parse_symbol(COFF_FileHeaderInfo header, String8 string_table, String8 symbol_table, U32 symbol_idx); +internal COFF_ParsedSymbol coff_parse_symbol (COFF_FileHeaderInfo header, String8 string_table, String8 symbol_table, U32 symbol_idx); internal COFF_Symbol32Array coff_symbol_array_from_data_16(Arena *arena, String8 data, U64 symbol_array_off, U64 symbol_count); internal COFF_Symbol32Array coff_symbol_array_from_data_32(Arena *arena, String8 data, U64 symbol_array_off, U64 symbol_count); diff --git a/src/com_shim/com_shim_main.c b/src/com_shim/com_shim_main.c new file mode 100644 index 00000000..6f9c5aba --- /dev/null +++ b/src/com_shim/com_shim_main.c @@ -0,0 +1,65 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#define NO_ASYNC 1 +#define BUILD_CONSOLE_INTERFACE 1 +#define BUILD_TITLE "The RAD Debugger (Command Line Launcher)" +#include "base/base_inc.h" +#include "base/base_inc.c" + +internal void +entry_point(CmdLine *cmd_line) +{ + Temp scratch = scratch_begin(0, 0); + B32 wait_for_process = cmd_line_has_flag(cmd_line, s("cli")) || cmd_line_has_flag(cmd_line, s("bin")); + String8List command_parts = {0}; + String8 exe_name = str8f(scratch.arena, "%S.exe", str8_chop_last_dot(cmd_line->exe_name)); + if(str8_match(exe_name, cmd_line->exe_name, 0)) + { + fprintf(stderr, + "ERROR: Attempting to launch %.*s recursively.\n" + "\n" + "This executable needs to be used with a .com extension next to the real target\n" + "executable, with the same name, but with a .exe extension. This guarantees that\n" + "cmd.exe will prefer launching this .com file when the executable name is used,\n" + "allowing the same executable to be used in the Windows command-line subsystem\n" + "style when launched from the command line, but used graphically when launched\n" + "via Explorer.\n\n", str8_varg(exe_name)); + fflush(stderr); + } + else + { + // NOTE(rjf): sub-processes must be killed if the parent process + // is killed, if we're waiting for it + if(wait_for_process) + { +#if OS_WINDOWS + HANDLE job_handle = CreateJobObjectA(0, 0); + JOBOBJECT_EXTENDED_LIMIT_INFORMATION job_info = { .BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE }; + SetInformationJobObject(job_handle, JobObjectExtendedLimitInformation, &job_info, sizeof(job_info)); + AssignProcessToJobObject(job_handle, GetCurrentProcess()); +#endif + } + str8_list_push(scratch.arena, &command_parts, exe_name); + str8_list_push(scratch.arena, &command_parts, s("--cli")); + for EachIndex(idx, cmd_line->argc) + { + String8 arg = str8_cstring(cmd_line->argv[idx]); + str8_list_push(scratch.arena, &command_parts, arg); + } + StringJoin join = {.sep = s(" ")}; + String8 command = str8_list_join(scratch.arena, &command_parts, &join); + Process process = launch_cmd_line(command); + if(wait_for_process) + { + U64 exit_code = 0; + process_join(process, max_U64, &exit_code); + abort_self(exit_code); + } + else + { + process_detach(process); + } + } + scratch_end(scratch); +} diff --git a/src/config/config_bindings.c b/src/config/config_bindings.c index 5d95b3a7..87315dba 100644 --- a/src/config/config_bindings.c +++ b/src/config/config_bindings.c @@ -24,21 +24,21 @@ cfg_key_map_from_cfg(Arena *arena) for(CFG_Node *child = keybinding->first; child != &cfg_nil_node; child = child->next) { if(0){} - else if(str8_match(child->string, str8_lit("ctrl"), 0)) { binding.modifiers |= OS_Modifier_Ctrl; } - else if(str8_match(child->string, str8_lit("alt"), 0)) { binding.modifiers |= OS_Modifier_Alt; } - else if(str8_match(child->string, str8_lit("shift"), 0)) { binding.modifiers |= OS_Modifier_Shift; } + else if(str8_match(child->string, str8_lit("ctrl"), 0)) { binding.modifiers |= WM_Modifier_Ctrl; } + else if(str8_match(child->string, str8_lit("alt"), 0)) { binding.modifiers |= WM_Modifier_Alt; } + else if(str8_match(child->string, str8_lit("shift"), 0)) { binding.modifiers |= WM_Modifier_Shift; } else { - OS_Key key = OS_Key_Null; - for EachEnumVal(OS_Key, k) + WM_Key key = WM_Key_Null; + for EachEnumVal(WM_Key, k) { - if(str8_match(child->string, os_g_key_cfg_string_table[k], StringMatchFlag_CaseInsensitive)) + if(str8_match(child->string, wm_key_cfg_name_table[k], StringMatchFlag_CaseInsensitive)) { key = k; break; } } - if(key != OS_Key_Null) + if(key != WM_Key_Null) { binding.key = key; } diff --git a/src/config/config_bindings.h b/src/config/config_bindings.h index 8bb875e3..4b283447 100644 --- a/src/config/config_bindings.h +++ b/src/config/config_bindings.h @@ -7,8 +7,8 @@ typedef struct CFG_Binding CFG_Binding; struct CFG_Binding { - OS_Key key; - OS_Modifiers modifiers; + WM_Key key; + WM_Modifiers modifiers; }; typedef struct CFG_KeyMapNode CFG_KeyMapNode; diff --git a/src/config/config_core.c b/src/config/config_core.c index 65ad565e..e58d5320 100644 --- a/src/config/config_core.c +++ b/src/config/config_core.c @@ -649,13 +649,13 @@ cfg_node_release(CFG_State *state, CFG_Node *node) for(CFG_NodePtrNode *n = nodes.first; n != 0; n = n->next) { CFG_Node *c = n->v; + U64 hash = u64_hash_from_str8(str8_struct(&c->id)); + U64 slot_idx = hash%state->ctx.id_slots_count; cfg_string_release(state, c->string); SLLStackPush(state->free, c); c->first = c->last = c->prev = c->parent = 0; c->id = 0; c->string = str8_zero(); - U64 hash = u64_hash_from_str8(str8_struct(&c->id)); - U64 slot_idx = hash%state->ctx.id_slots_count; for(CFG_NodePtrNode *n = state->ctx.id_slots[slot_idx].first; n != 0; n = n->next) { if(n->v == c) diff --git a/src/config/config_inc.c b/src/config/config_inc.c index f927a51d..e0820d64 100644 --- a/src/config/config_inc.c +++ b/src/config/config_inc.c @@ -3,6 +3,6 @@ #include "config_core.c" #include "config_panels.c" -#if defined(OS_GFX_H) +#if defined(WINDOW_MANAGER_H) # include "config_bindings.c" #endif diff --git a/src/config/config_inc.h b/src/config/config_inc.h index 0460d200..141e22ca 100644 --- a/src/config/config_inc.h +++ b/src/config/config_inc.h @@ -6,7 +6,7 @@ #include "config_core.h" #include "config_panels.h" -#if defined(OS_GFX_H) +#if defined(WINDOW_MANAGER_H) # include "config_bindings.h" #endif diff --git a/src/content/content.c b/src/content/content.c index 04a3b6bb..6ff6c6f0 100644 --- a/src/content/content.c +++ b/src/content/content.c @@ -46,7 +46,7 @@ c_init(void) c_shared = push_array(arena, C_Shared, 1); c_shared->arena = arena; c_shared->blob_slots_count = 16384; - c_shared->blob_stripes_count = Min(c_shared->blob_slots_count, os_get_system_info()->logical_processor_count); + c_shared->blob_stripes_count = Min(c_shared->blob_slots_count, get_system_info()->logical_processor_count); c_shared->blob_slots = push_array(arena, C_BlobSlot, c_shared->blob_slots_count); c_shared->blob_stripes = push_array(arena, C_Stripe, c_shared->blob_stripes_count); c_shared->blob_stripes_free_nodes = push_array(arena, C_BlobNode *, c_shared->blob_stripes_count); @@ -58,7 +58,7 @@ c_init(void) stripe->cv = cond_var_alloc(); } c_shared->key_slots_count = 4096; - c_shared->key_stripes_count = Min(c_shared->key_slots_count, os_get_system_info()->logical_processor_count); + c_shared->key_stripes_count = Min(c_shared->key_slots_count, get_system_info()->logical_processor_count); c_shared->key_slots = push_array(arena, C_KeySlot, c_shared->key_slots_count); c_shared->key_stripes = push_array(arena, C_Stripe, c_shared->key_stripes_count); c_shared->key_stripes_free_nodes = push_array(arena, C_KeyNode *, c_shared->key_stripes_count); @@ -70,7 +70,7 @@ c_init(void) stripe->cv = cond_var_alloc(); } c_shared->root_slots_count = 4096; - c_shared->root_stripes_count = Min(c_shared->root_slots_count, os_get_system_info()->logical_processor_count); + c_shared->root_stripes_count = Min(c_shared->root_slots_count, get_system_info()->logical_processor_count); c_shared->root_slots = push_array(arena, C_RootSlot, c_shared->root_slots_count); c_shared->root_stripes = push_array(arena, C_Stripe, c_shared->root_stripes_count); c_shared->root_stripes_free_nodes = push_array(arena, C_RootNode *, c_shared->root_stripes_count); diff --git a/src/ctrl/ctrl.mdesk b/src/ctrl/ctrl.mdesk deleted file mode 100644 index 9f5d3fa6..00000000 --- a/src/ctrl/ctrl.mdesk +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Entity Kinds - -@table(name code_name display_string) -CTRL_EntityKindTable: -{ - {Root root "Root" } - {Machine machine "Machine" } - {Process process "Process" } - {Thread thread "Thread" } - {Module module "Module" } - {EntryPoint entry_point "Entry Point" } - {DebugInfoPath debug_info_path "Debug Info Path" } - {PendingThreadName pending_thread_name "Pending Thread Name" } - {PendingThreadColor pending_thread_color "Pending Thread Color" } - {Breakpoint breakpoint "Breakpoint" } - {AddressRangeAnnotation address_range_annotation "Address Range Annotation" } -} - -@enum CTRL_EntityKind: -{ - Null, - @expand(CTRL_EntityKindTable a) `$(a.name)`, - COUNT, -} - -@data(String8) ctrl_entity_kind_code_name_table: -{ - `{0}`, - @expand(CTRL_EntityKindTable a) `str8_lit_comp("$(a.code_name)")` -} - -@data(String8) ctrl_entity_kind_display_string_table: -{ - `{0}`, - @expand(CTRL_EntityKindTable a) `str8_lit_comp("$(a.display_name)")` -} - -//////////////////////////////// -//~ rjf: Exception Codes - -@table(name lower_name code default display_string) -CTRL_ExceptionCodeKindTable: -{ - {Win32CtrlC win32_ctrl_c 0x40010005 1 "(Win32) Control-C" } - {Win32CtrlBreak win32_ctrl_break 0x40010008 1 "(Win32) Control-Break" } - {Win32WinRTOriginateError win32_win_rt_originate_error 0x40080201 0 "(Win32) WinRT Originate Error" } - {Win32WinRTTransformError win32_win_rt_transform_error 0x40080202 0 "(Win32) WinRT Transform Error" } - {Win32RPCCallCancelled win32_rpc_call_cancelled 0x0000071a 0 "(Win32) RPC Call Cancelled" } - {Win32DatatypeMisalignment win32_datatype_misalignment 0x80000002 0 "(Win32) Data Type Misalignment" } - {Win32AccessViolation win32_access_violation 0xc0000005 1 "(Win32) Access Violation" } - {Win32InPageError win32_in_page_error 0xc0000006 0 "(Win32) In Page Error" } - {Win32InvalidHandle win32_invalid_handle 0xc0000008 1 "(Win32) Invalid Handle Specified" } - {Win32NotEnoughQuota win32_not_enough_quota 0xc0000017 0 "(Win32) Not Enough Quota" } - {Win32IllegalInstruction win32_illegal_instruction 0xc000001d 0 "(Win32) Illegal Instruction" } - {Win32CannotContinueException win32_cannot_continue_exception 0xc0000025 0 "(Win32) Cannot Continue From Exception" } - {Win32InvalidExceptionDisposition win32_invalid_exception_disposition 0xc0000026 0 "(Win32) Invalid Exception Disposition Returned By Handler" } - {Win32ArrayBoundsExceeded win32_array_bounds_exceeded 0xc000008c 0 "(Win32) Array Bounds Exceeded" } - {Win32FloatingPointDenormalOperand win32_floating_point_denormal_operand 0xc000008d 0 "(Win32) Floating-Point Denormal Operand" } - {Win32FloatingPointDivisionByZero win32_floating_point_division_by_zero 0xc000008e 0 "(Win32) Floating-Point Division By Zero" } - {Win32FloatingPointInexactResult win32_floating_point_inexact_result 0xc000008f 0 "(Win32) Floating-Point Inexact Result" } - {Win32FloatingPointInvalidOperation win32_floating_point_invalid_operation 0xc0000090 0 "(Win32) Floating-Point Invalid Operation" } - {Win32FloatingPointOverflow win32_floating_point_overflow 0xc0000091 0 "(Win32) Floating-Point Overflow" } - {Win32FloatingPointStackCheck win32_floating_point_stack_check 0xc0000092 0 "(Win32) Floating-Point Stack Check" } - {Win32FloatingPointUnderflow win32_floating_point_underflow 0xc0000093 0 "(Win32) Floating-Point Underflow" } - {Win32IntegerDivisionByZero win32_integer_division_by_zero 0xc0000094 0 "(Win32) Integer Division By Zero" } - {Win32IntegerOverflow win32_integer_overflow 0xc0000095 0 "(Win32) Integer Overflow" } - {Win32PrivilegedInstruction win32_privileged_instruction 0xc0000096 0 "(Win32) Privileged Instruction" } - {Win32StackOverflow win32_stack_overflow 0xc00000fd 0 "(Win32) Stack Overflow" } - {Win32UnableToLocateDLL win32_unable_to_locate_dll 0xc0000135 0 "(Win32) Unable To Locate DLL" } - {Win32OrdinalNotFound win32_ordinal_not_found 0xc0000138 0 "(Win32) Ordinal Not Found" } - {Win32EntryPointNotFound win32_entry_point_not_found 0xc0000139 0 "(Win32) Entry Point Not Found" } - {Win32DLLInitializationFailed win32_dll_initialization_failed 0xc0000142 0 "(Win32) DLL Initialization Failed" } - {Win32FloatingPointSSEMultipleFaults win32_floating_point_sse_multiple_faults 0xc00002b4 0 "(Win32) Floating Point SSE Multiple Faults" } - {Win32FloatingPointSSEMultipleTraps win32_floating_point_sse_multiple_traps 0xc00002b5 0 "(Win32) Floating Point SSE Multiple Traps" } - {Win32AssertionFailed win32_assertion_failed 0xc0000420 1 "(Win32) Assertion Failed" } - {Win32ModuleNotFound win32_module_not_found 0xc06d007e 0 "(Win32) Module Not Found" } - {Win32ProcedureNotFound win32_procedure_not_found 0xc06d007f 0 "(Win32) Procedure Not Found" } - {Win32SanitizerErrorDetected win32_sanitizer_error_detected 0xe073616e 1 "(Win32) Sanitizer Error Detected" } - {Win32SanitizerRawAccessViolation win32_sanitizer_raw_access_violation 0xe0736171 0 "(Win32) Sanitizer Raw Access Violation" } - {Win32DirectXDebugLayer win32_directx_debug_layer 0x0000087a 1 "(Win32) DirectX Debug Layer" } -} - -@enum CTRL_ExceptionCodeKind: -{ - Null, - @expand(CTRL_ExceptionCodeKindTable a) `$(a.name)`, - COUNT, -} - -@data(U32) ctrl_exception_code_kind_code_table: -{ - `0`; - @expand(CTRL_ExceptionCodeKindTable a) `$(a.code)`; -} - -@data(String8) ctrl_exception_code_kind_display_string_table: -{ - `{0}`; - @expand(CTRL_ExceptionCodeKindTable a) `str8_lit_comp("$(a.display_string)")`; -} - -@data(String8) ctrl_exception_code_kind_lowercase_code_string_table: -{ - `{0}`; - @expand(CTRL_ExceptionCodeKindTable a) `str8_lit_comp("$(a.lower_name)")`; -} - -@data(B8) ctrl_exception_code_kind_default_enable_table: -{ - `0`; - @expand(CTRL_ExceptionCodeKindTable a) `$(a.default)`; -} - -//////////////////////////////// -//~ rjf: Exception Sub-Codes - -@table(name, value) -CTRL_ExceptionSubCodeKindTable: -{ - { W32_FAST_FAIL_LEGACY_GS_VIOLATION 0 } - { W32_FAST_FAIL_VTGUARD_CHECK_FAILURE 1 } - { W32_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 } - { W32_FAST_FAIL_CORRUPT_LIST_ENTRY 3 } - { W32_FAST_FAIL_INCORRECT_STACK 4 } - { W32_FAST_FAIL_INVALID_ARG 5 } - { W32_FAST_FAIL_GS_COOKIE_INIT 6 } - { W32_FAST_FAIL_FATAL_APP_EXIT 7 } - { W32_FAST_FAIL_RANGE_CHECK_FAILURE 8 } - { W32_FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 } - { W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 } - { W32_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 } - { W32_FAST_FAIL_INVALID_FIBER_SWITCH 12 } - { W32_FAST_FAIL_INVALID_SET_OF_CONTEXT 13 } - { W32_FAST_FAIL_INVALID_REFERENCE_COUNT 14 } - { W32_FAST_FAIL_INVALID_JUMP_BUFFER 18 } - { W32_FAST_FAIL_MRDATA_MODIFIED 19 } - { W32_FAST_FAIL_CERTIFICATION_FAILURE 20 } - { W32_FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 } - { W32_FAST_FAIL_CRYPTO_LIBRARY 22 } - { W32_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 } - { W32_FAST_FAIL_INVALID_IMAGE_BASE 24 } - { W32_FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 } - { W32_FAST_FAIL_UNSAFE_EXTENSION_CALL 26 } - { W32_FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 } - { W32_FAST_FAIL_INVALID_BUFFER_ACCESS 28 } - { W32_FAST_FAIL_INVALID_BALANCED_TREE 29 } - { W32_FAST_FAIL_INVALID_NEXT_THREAD 30 } - { W32_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 } - { W32_FAST_FAIL_APCS_DISABLED 32 } - { W32_FAST_FAIL_INVALID_IDLE_STATE 33 } - { W32_FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 } - { W32_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 } - { W32_FAST_FAIL_INVALID_LOCK_STATE 36 } - { W32_FAST_FAIL_GUARD_JUMPTABLE 37 } - { W32_FAST_FAIL_INVALID_LONGJUMP_TARGET 38 } - { W32_FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 } - { W32_FAST_FAIL_INVALID_THREAD 40 } - { W32_FAST_FAIL_INVALID_SYSCALL_NUMBER 41 } - { W32_FAST_FAIL_INVALID_FILE_OPERATION 42 } - { W32_FAST_FAIL_LPAC_ACCESS_DENIED 43 } - { W32_FAST_FAIL_GUARD_SS_FAILURE 44 } - { W32_FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 } - { W32_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 } - { W32_FAST_FAIL_INVALID_CONTROL_STACK 47 } - { W32_FAST_FAIL_SET_CONTEXT_DENIED 48 } - { W32_FAST_FAIL_INVALID_IAT 49 } - { W32_FAST_FAIL_HEAP_METADATA_CORRUPTION 50 } - { W32_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 } - { W32_FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 } - { W32_FAST_FAIL_ENCLAVE_CALL_FAILURE 53 } - { W32_FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 } - { W32_FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 } - { W32_FAST_FAIL_UNEXPECTED_CALL 56 } - { W32_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 } - { W32_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 } - { W32_FAST_FAIL_FLAGS_CORRUPTION 59 } - { W32_FAST_FAIL_VEH_CORRUPTION 60 } - { W32_FAST_FAIL_ETW_CORRUPTION 61 } - { W32_FAST_FAIL_RIO_ABORT 62 } - { W32_FAST_FAIL_INVALID_PFN 63 } - { W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64 } - { W32_FAST_FAIL_CAST_GUARD 65 } - { W32_FAST_FAIL_HOST_VISIBILITY_CHANGE 66 } - { W32_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67 } - { W32_FAST_FAIL_PATCH_CALLBACK_FAILED 68 } - { W32_FAST_FAIL_NTDLL_PATCH_FAILED 69 } - { W32_FAST_FAIL_INVALID_FLS_DATA 70 } -} diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c deleted file mode 100644 index e343fa14..00000000 --- a/src/ctrl/ctrl_core.c +++ /dev/null @@ -1,6739 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Generated Code - -#include "generated/ctrl.meta.c" - -//////////////////////////////// -//~ rjf: Basic Type Functions - -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif - -internal U64 -ctrl_hash_from_string(String8 string) -{ - U64 result = XXH3_64bits_withSeed(string.str, string.size, 5381); - return result; -} - -internal U64 -ctrl_hash_from_handle(CTRL_Handle handle) -{ - U64 buf[] = {handle.machine_id, handle.dmn_handle.u64[0]}; - U64 hash = ctrl_hash_from_string(str8((U8 *)buf, sizeof(buf))); - return hash; -} - -internal CTRL_EventCause -ctrl_event_cause_from_dmn_event_kind(DMN_EventKind event_kind) -{ - CTRL_EventCause cause = CTRL_EventCause_Null; - switch(event_kind) - { - default:{}break; - case DMN_EventKind_Error: {cause = CTRL_EventCause_Error;}break; - case DMN_EventKind_Exception:{cause = CTRL_EventCause_InterruptedByException;}break; - case DMN_EventKind_Trap: {cause = CTRL_EventCause_InterruptedByTrap;}break; - case DMN_EventKind_Halt: {cause = CTRL_EventCause_InterruptedByHalt;}break; - } - return cause; -} - -internal CTRL_ExceptionKind -ctrl_exception_kind_from_dmn(DMN_ExceptionKind kind) -{ - CTRL_ExceptionKind result = CTRL_ExceptionKind_Null; - switch(kind) - { - default:{}break; - case DMN_ExceptionKind_MemoryRead: {result = CTRL_ExceptionKind_MemoryRead;}break; - case DMN_ExceptionKind_MemoryWrite: {result = CTRL_ExceptionKind_MemoryWrite;}break; - case DMN_ExceptionKind_MemoryExecute: {result = CTRL_ExceptionKind_MemoryExecute;}break; - case DMN_ExceptionKind_CppThrow: {result = CTRL_ExceptionKind_CppThrow;}break; - } - return result; -} - -internal String8 -ctrl_string_from_event_kind(CTRL_EventKind kind) -{ - String8 result = {0}; - switch(kind) - { - default:{}break; - case CTRL_EventKind_Null: { result = str8_lit("Null");}break; - case CTRL_EventKind_Error: { result = str8_lit("Error");}break; - case CTRL_EventKind_Started: { result = str8_lit("Started");}break; - case CTRL_EventKind_Stopped: { result = str8_lit("Stopped");}break; - case CTRL_EventKind_NewProc: { result = str8_lit("NewProc");}break; - case CTRL_EventKind_NewThread: { result = str8_lit("NewThread");}break; - case CTRL_EventKind_NewModule: { result = str8_lit("NewModule");}break; - case CTRL_EventKind_EndProc: { result = str8_lit("EndProc");}break; - case CTRL_EventKind_EndThread: { result = str8_lit("EndThread");}break; - case CTRL_EventKind_EndModule: { result = str8_lit("EndModule");}break; - case CTRL_EventKind_ModuleDebugInfoPathChange: { result = str8_lit("ModuleDebugInfoPathChange");}break; - case CTRL_EventKind_DebugString: { result = str8_lit("DebugString");}break; - case CTRL_EventKind_ThreadName: { result = str8_lit("ThreadName");}break; - case CTRL_EventKind_MemReserve: { result = str8_lit("MemReserve");}break; - case CTRL_EventKind_MemCommit: { result = str8_lit("MemCommit");}break; - case CTRL_EventKind_MemDecommit: { result = str8_lit("MemDecommit");}break; - case CTRL_EventKind_MemRelease: { result = str8_lit("MemRelease");}break; - } - return result; -} - -internal String8 -ctrl_string_from_msg_kind(CTRL_MsgKind kind) -{ - String8 result = {0}; - switch(kind) - { - default:{}break; - case CTRL_MsgKind_Launch: {result = str8_lit("Launch");}break; - case CTRL_MsgKind_Attach: {result = str8_lit("Attach");}break; - case CTRL_MsgKind_Kill: {result = str8_lit("Kill");}break; - case CTRL_MsgKind_KillAll: {result = str8_lit("KillAll");}break; - case CTRL_MsgKind_Detach: {result = str8_lit("Detach");}break; - case CTRL_MsgKind_Run: {result = str8_lit("Run");}break; - case CTRL_MsgKind_SingleStep: {result = str8_lit("SingleStep");}break; - case CTRL_MsgKind_SetUserEntryPoints: {result = str8_lit("SetUserEntryPoints");}break; - case CTRL_MsgKind_SetModuleDebugInfoPath: {result = str8_lit("SetModuleDebugInfoPath");}break; - } - return result; -} - -internal CTRL_EntityKind -ctrl_entity_kind_from_string(String8 string) -{ - CTRL_EntityKind result = CTRL_EntityKind_Null; - for EachNonZeroEnumVal(CTRL_EntityKind, k) - { - if(str8_match(ctrl_entity_kind_code_name_table[k], string, 0)) - { - result = k; - break; - } - } - return result; -} - -internal DMN_TrapFlags -ctrl_dmn_trap_flags_from_user_breakpoint_flags(CTRL_UserBreakpointFlags flags) -{ - DMN_TrapFlags result = 0; - if(flags & CTRL_UserBreakpointFlag_BreakOnWrite) { result |= DMN_TrapFlag_BreakOnWrite; } - if(flags & CTRL_UserBreakpointFlag_BreakOnRead) { result |= DMN_TrapFlag_BreakOnRead; } - if(flags & CTRL_UserBreakpointFlag_BreakOnExecute) { result |= DMN_TrapFlag_BreakOnExecute; } - return result; -} - -internal CTRL_UserBreakpointFlags -ctrl_user_breakpoint_flags_from_dmn_trap_flags(DMN_TrapFlags flags) -{ - CTRL_UserBreakpointFlags result = 0; - if(flags & DMN_TrapFlag_BreakOnWrite) { result |= CTRL_UserBreakpointFlag_BreakOnWrite; } - if(flags & DMN_TrapFlag_BreakOnRead) { result |= CTRL_UserBreakpointFlag_BreakOnRead; } - if(flags & DMN_TrapFlag_BreakOnExecute) { result |= CTRL_UserBreakpointFlag_BreakOnExecute; } - return result; -} - -//////////////////////////////// -//~ rjf: Machine/Handle Pair Type Functions - -internal CTRL_Handle -ctrl_handle_zero(void) -{ - CTRL_Handle handle = {0}; - return handle; -} - -internal CTRL_Handle -ctrl_handle_make(CTRL_MachineID machine_id, DMN_Handle dmn_handle) -{ - CTRL_Handle handle = {machine_id, dmn_handle}; - return handle; -} - -internal B32 -ctrl_handle_match(CTRL_Handle a, CTRL_Handle b) -{ - B32 result = (a.machine_id == b.machine_id && - dmn_handle_match(a.dmn_handle, b.dmn_handle)); - return result; -} - -internal void -ctrl_handle_list_push(Arena *arena, CTRL_HandleList *list, CTRL_Handle *pair) -{ - CTRL_HandleNode *n = push_array(arena, CTRL_HandleNode, 1); - MemoryCopyStruct(&n->v, pair); - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal CTRL_HandleList -ctrl_handle_list_copy(Arena *arena, CTRL_HandleList *src) -{ - CTRL_HandleList dst = {0}; - for(CTRL_HandleNode *n = src->first; n != 0; n = n->next) - { - ctrl_handle_list_push(arena, &dst, &n->v); - } - return dst; -} - -internal CTRL_HandleArray -ctrl_handle_array_from_list(Arena *arena, CTRL_HandleList *src) -{ - CTRL_HandleArray array = {0}; - array.count = src->count; - array.v = push_array_no_zero(arena, CTRL_Handle, array.count); - { - U64 idx = 0; - for(CTRL_HandleNode *n = src->first; n != 0; n = n->next, idx += 1) - { - array.v[idx] = n->v; - } - } - return array; -} - -internal String8 -ctrl_string_from_handle(Arena *arena, CTRL_Handle handle) -{ - String8 result = push_str8f(arena, "$%I64x$%I64x", handle.machine_id, handle.dmn_handle.u64[0]); - return result; -} - -internal CTRL_Handle -ctrl_handle_from_string(String8 string) -{ - CTRL_Handle handle = {0}; - { - Temp scratch = scratch_begin(0, 0); - U8 split = '$'; - String8List parts = str8_split(scratch.arena, string, &split, 1, 0); - if(parts.first && parts.first->next) - { - CTRL_MachineID machine_id = u64_from_str8(parts.first->string, 16); - DMN_Handle dmn_handle = {0}; - dmn_handle.u64[0] = u64_from_str8(parts.first->next->string, 16); - handle.machine_id = machine_id; - handle.dmn_handle = dmn_handle; - } - scratch_end(scratch); - } - return handle; -} - -//////////////////////////////// -//~ rjf: Trap Type Functions - -internal void -ctrl_trap_list_push(Arena *arena, CTRL_TrapList *list, CTRL_Trap *trap) -{ - CTRL_TrapNode *node = push_array(arena, CTRL_TrapNode, 1); - MemoryCopyStruct(&node->v, trap); - SLLQueuePush(list->first, list->last, node); - list->count += 1; -} - -internal CTRL_TrapList -ctrl_trap_list_copy(Arena *arena, CTRL_TrapList *src) -{ - CTRL_TrapList dst = {0}; - for(CTRL_TrapNode *src_n = src->first; src_n != 0; src_n = src_n->next) - { - ctrl_trap_list_push(arena, &dst, &src_n->v); - } - return dst; -} - -//////////////////////////////// -//~ rjf: User Breakpoint Type Functions - -internal void -ctrl_user_breakpoint_list_push(Arena *arena, CTRL_UserBreakpointList *list, CTRL_UserBreakpoint *bp) -{ - CTRL_UserBreakpointNode *n = push_array(arena, CTRL_UserBreakpointNode, 1); - MemoryCopyStruct(&n->v, bp); - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal CTRL_UserBreakpointList -ctrl_user_breakpoint_list_copy(Arena *arena, CTRL_UserBreakpointList *src) -{ - CTRL_UserBreakpointList dst = {0}; - for(CTRL_UserBreakpointNode *src_n = src->first; src_n != 0; src_n = src_n->next) - { - CTRL_UserBreakpoint dst_bp = zero_struct; - MemoryCopyStruct(&dst_bp, &src_n->v); - dst_bp.string = push_str8_copy(arena, src_n->v.string); - dst_bp.condition = push_str8_copy(arena, src_n->v.condition); - ctrl_user_breakpoint_list_push(arena, &dst, &dst_bp); - } - return dst; -} - -//////////////////////////////// -//~ rjf: Message Type Functions - -//- rjf: deep copying - -internal void -ctrl_msg_deep_copy(Arena *arena, CTRL_Msg *dst, CTRL_Msg *src) -{ - MemoryCopyStruct(dst, src); - dst->path = push_str8_copy(arena, src->path); - dst->entry_points = str8_list_copy(arena, &src->entry_points); - dst->cmd_line_string_list = str8_list_copy(arena, &src->cmd_line_string_list); - dst->env_string_list = str8_list_copy(arena, &src->env_string_list); - dst->traps = ctrl_trap_list_copy(arena, &src->traps); - dst->user_bps = ctrl_user_breakpoint_list_copy(arena, &src->user_bps); -} - -//- rjf: list building - -internal CTRL_Msg * -ctrl_msg_list_push(Arena *arena, CTRL_MsgList *list) -{ - CTRL_MsgNode *n = push_array(arena, CTRL_MsgNode, 1); - SLLQueuePush(list->first, list->last, n); - list->count += 1; - CTRL_Msg *msg = &n->v; - return msg; -} - -internal CTRL_MsgList -ctrl_msg_list_deep_copy(Arena *arena, CTRL_MsgList *src) -{ - CTRL_MsgList dst = {0}; - for(CTRL_MsgNode *n = src->first; n != 0; n = n->next) - { - CTRL_Msg *src_msg = &n->v; - CTRL_Msg *dst_msg = ctrl_msg_list_push(arena, &dst); - ctrl_msg_deep_copy(arena, dst_msg, src_msg); - } - return dst; -} - -internal void -ctrl_msg_list_concat_in_place(CTRL_MsgList *dst, CTRL_MsgList *src) -{ - if(dst->last && src->first) - { - dst->last->next = src->first; - dst->last = src->last; - dst->count += src->count; - } - else if(src->first) - { - MemoryCopyStruct(dst, src); - } - MemoryZeroStruct(src); -} - -//- rjf: serialization - -internal String8 -ctrl_serialized_string_from_msg_list(Arena *arena, CTRL_MsgList *msgs) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List msgs_srlzed = {0}; - str8_serial_begin(scratch.arena, &msgs_srlzed); - { - // rjf: write message count - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msgs->count); - - // rjf: write all message data - for(CTRL_MsgNode *msg_n = msgs->first; msg_n != 0; msg_n = msg_n->next) - { - CTRL_Msg *msg = &msg_n->v; - - // rjf: write flat parts - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->kind); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->run_flags); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->msg_id); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entity); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->parent); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entity_id); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->exit_code); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->env_inherit); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->debug_subprocesses); - str8_serial_push_array (scratch.arena, &msgs_srlzed, &msg->exception_code_filters[0], ArrayCount(msg->exception_code_filters)); - - // rjf: write path string - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->path.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, msg->path.str, msg->path.size); - - // rjf: write entry point string list - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entry_points.node_count); - for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) - { - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); - } - - // rjf: write command line string list - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->cmd_line_string_list.node_count); - for(String8Node *n = msg->cmd_line_string_list.first; n != 0; n = n->next) - { - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); - } - - // rjf: write environment string list - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->env_string_list.node_count); - for(String8Node *n = msg->env_string_list.first; n != 0; n = n->next) - { - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); - } - - // rjf: write stdout/stderr/stdin paths - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stdout_path.size); - str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stdout_path); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stderr_path.size); - str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stderr_path); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stdin_path.size); - str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stdin_path); - - // rjf: write trap list - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->traps.count); - for(CTRL_TrapNode *n = msg->traps.first; n != 0; n = n->next) - { - CTRL_Trap *trap = &n->v; - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &trap->flags); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &trap->vaddr); - } - - // rjf: write user breakpoint list - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->user_bps.count); - for(CTRL_UserBreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) - { - CTRL_UserBreakpoint *bp = &n->v; - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->kind); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->flags); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->id); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->string.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, bp->string.str, bp->string.size); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->pt); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->size); - str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->condition.size); - str8_serial_push_data(scratch.arena, &msgs_srlzed, bp->condition.str, bp->condition.size); - } - } - } - String8 string = str8_serial_end(arena, &msgs_srlzed); - scratch_end(scratch); - return string; -} - -internal CTRL_MsgList -ctrl_msg_list_from_serialized_string(Arena *arena, String8 string) -{ - CTRL_MsgList msgs = {0}; - { - U64 read_off = 0; - - // rjf: read message count - U64 msg_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &msg_count); - - // rjf: read data for all messages - for(U64 msg_idx = 0; msg_idx < msg_count; msg_idx += 1) - { - // rjf: construct message - CTRL_MsgNode *msg_node = push_array(arena, CTRL_MsgNode, 1); - SLLQueuePush(msgs.first, msgs.last, msg_node); - msgs.count += 1; - CTRL_Msg *msg = &msg_node->v; - - // rjf: read flat data - read_off += str8_deserial_read_struct(string, read_off, &msg->kind); - read_off += str8_deserial_read_struct(string, read_off, &msg->run_flags); - read_off += str8_deserial_read_struct(string, read_off, &msg->msg_id); - read_off += str8_deserial_read_struct(string, read_off, &msg->entity); - read_off += str8_deserial_read_struct(string, read_off, &msg->parent); - read_off += str8_deserial_read_struct(string, read_off, &msg->entity_id); - read_off += str8_deserial_read_struct(string, read_off, &msg->exit_code); - read_off += str8_deserial_read_struct(string, read_off, &msg->env_inherit); - read_off += str8_deserial_read_struct(string, read_off, &msg->debug_subprocesses); - read_off += str8_deserial_read_array (string, read_off, &msg->exception_code_filters[0], ArrayCount(msg->exception_code_filters)); - - // rjf: read path string - read_off += str8_deserial_read_struct(string, read_off, &msg->path.size); - msg->path.str = push_array_no_zero(arena, U8, msg->path.size); - read_off += str8_deserial_read(string, read_off, msg->path.str, msg->path.size, 1); - - // rjf: read entry point string list - U64 entry_point_list_string_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &entry_point_list_string_count); - for(U64 idx = 0; idx < entry_point_list_string_count; idx += 1) - { - String8 str = {0}; - read_off += str8_deserial_read_struct(string, read_off, &str.size); - str.str = push_array_no_zero(arena, U8, str.size); - read_off += str8_deserial_read(string, read_off, str.str, str.size, 1); - str8_list_push(arena, &msg->entry_points, str); - } - - // rjf: read command line string list - U64 cmd_line_string_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &cmd_line_string_count); - for(U64 idx = 0; idx < cmd_line_string_count; idx += 1) - { - String8 cmd_line_str = {0}; - read_off += str8_deserial_read_struct(string, read_off, &cmd_line_str.size); - cmd_line_str.str = push_array_no_zero(arena, U8, cmd_line_str.size); - read_off += str8_deserial_read(string, read_off, cmd_line_str.str, cmd_line_str.size, 1); - str8_list_push(arena, &msg->cmd_line_string_list, cmd_line_str); - } - - // rjf: read environment string list - U64 env_string_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &env_string_count); - for(U64 idx = 0; idx < env_string_count; idx += 1) - { - String8 env_str = {0}; - read_off += str8_deserial_read_struct(string, read_off, &env_str.size); - env_str.str = push_array_no_zero(arena, U8, env_str.size); - read_off += str8_deserial_read(string, read_off, env_str.str, env_str.size, 1); - str8_list_push(arena, &msg->env_string_list, env_str); - } - - // rjf: read stdout/stderr/stdin paths - read_off += str8_deserial_read_struct(string, read_off, &msg->stdout_path.size); - msg->stdout_path.str = push_array(arena, U8, msg->stdout_path.size); - read_off += str8_deserial_read(string, read_off, msg->stdout_path.str, msg->stdout_path.size, 1); - read_off += str8_deserial_read_struct(string, read_off, &msg->stderr_path.size); - msg->stderr_path.str = push_array(arena, U8, msg->stderr_path.size); - read_off += str8_deserial_read(string, read_off, msg->stderr_path.str, msg->stderr_path.size, 1); - read_off += str8_deserial_read_struct(string, read_off, &msg->stdin_path.size); - msg->stdin_path.str = push_array(arena, U8, msg->stdin_path.size); - read_off += str8_deserial_read(string, read_off, msg->stdin_path.str, msg->stdin_path.size, 1); - - // rjf: read trap list - U64 trap_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &trap_count); - for(U64 idx = 0; idx < trap_count; idx += 1) - { - CTRL_TrapNode *n = push_array(arena, CTRL_TrapNode, 1); - SLLQueuePush(msg->traps.first, msg->traps.last, n); - msg->traps.count += 1; - CTRL_Trap *trap = &n->v; - read_off += str8_deserial_read_struct(string, read_off, &trap->flags); - read_off += str8_deserial_read_struct(string, read_off, &trap->vaddr); - } - - // rjf: read user breakpoint list - U64 user_bp_count = 0; - read_off += str8_deserial_read_struct(string, read_off, &user_bp_count); - for(U64 idx = 0; idx < user_bp_count; idx += 1) - { - CTRL_UserBreakpointNode *n = push_array(arena, CTRL_UserBreakpointNode, 1); - SLLQueuePush(msg->user_bps.first, msg->user_bps.last, n); - msg->user_bps.count += 1; - CTRL_UserBreakpoint *bp = &n->v; - read_off += str8_deserial_read_struct(string, read_off, &bp->kind); - read_off += str8_deserial_read_struct(string, read_off, &bp->flags); - read_off += str8_deserial_read_struct(string, read_off, &bp->id); - read_off += str8_deserial_read_struct(string, read_off, &bp->string.size); - bp->string.str = push_array_no_zero(arena, U8, bp->string.size); - read_off += str8_deserial_read(string, read_off, bp->string.str, bp->string.size, 1); - read_off += str8_deserial_read_struct(string, read_off, &bp->pt); - read_off += str8_deserial_read_struct(string, read_off, &bp->size); - read_off += str8_deserial_read_struct(string, read_off, &bp->condition.size); - bp->condition.str = push_array_no_zero(arena, U8, bp->condition.size); - read_off += str8_deserial_read(string, read_off, bp->condition.str, bp->condition.size, 1); - } - } - } - return msgs; -} - -//////////////////////////////// -//~ rjf: Event Type Functions - -//- rjf: list building - -internal CTRL_Event * -ctrl_event_list_push(Arena *arena, CTRL_EventList *list) -{ - CTRL_EventNode *n = push_array(arena, CTRL_EventNode, 1); - SLLQueuePush(list->first, list->last, n); - list->count += 1; - CTRL_Event *event = &n->v; - return event; -} - -internal void -ctrl_event_list_concat_in_place(CTRL_EventList *dst, CTRL_EventList *to_push) -{ - if(dst->last == 0) - { - MemoryCopyStruct(dst, to_push); - } - else if(to_push->first != 0) - { - dst->last->next = to_push->first; - dst->last = to_push->last; - dst->count += to_push->count; - } - MemoryZeroStruct(to_push); -} - -//- rjf: serialization - -internal String8 -ctrl_serialized_string_from_event(Arena *arena, CTRL_Event *event, U64 max) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List srl = {0}; - str8_serial_begin(scratch.arena, &srl); - { - str8_serial_push_struct(scratch.arena, &srl, &event->kind); - str8_serial_push_struct(scratch.arena, &srl, &event->cause); - str8_serial_push_struct(scratch.arena, &srl, &event->exception_kind); - str8_serial_push_struct(scratch.arena, &srl, &event->msg_id); - str8_serial_push_struct(scratch.arena, &srl, &event->entity); - str8_serial_push_struct(scratch.arena, &srl, &event->parent); - str8_serial_push_struct(scratch.arena, &srl, &event->arch); - str8_serial_push_struct(scratch.arena, &srl, &event->u64_code); - str8_serial_push_struct(scratch.arena, &srl, &event->entity_id); - str8_serial_push_struct(scratch.arena, &srl, &event->vaddr_rng); - str8_serial_push_struct(scratch.arena, &srl, &event->rip_vaddr); - str8_serial_push_struct(scratch.arena, &srl, &event->stack_base); - str8_serial_push_struct(scratch.arena, &srl, &event->tls_root); - str8_serial_push_struct(scratch.arena, &srl, &event->timestamp); - str8_serial_push_struct(scratch.arena, &srl, &event->exception_code); - str8_serial_push_struct(scratch.arena, &srl, &event->rgba); - str8_serial_push_struct(scratch.arena, &srl, &event->bp_flags); - String8 string = event->string; - string.size = Min(string.size, max-srl.total_size); - str8_serial_push_struct(scratch.arena, &srl, &string.size); - str8_serial_push_data(scratch.arena, &srl, string.str, string.size); - } - String8 string = str8_serial_end(arena, &srl); - scratch_end(scratch); - return string; -} - -internal CTRL_Event -ctrl_event_from_serialized_string(Arena *arena, String8 string) -{ - CTRL_Event event = zero_struct; - { - U64 read_off = 0; - read_off += str8_deserial_read_struct(string, read_off, &event.kind); - read_off += str8_deserial_read_struct(string, read_off, &event.cause); - read_off += str8_deserial_read_struct(string, read_off, &event.exception_kind); - read_off += str8_deserial_read_struct(string, read_off, &event.msg_id); - read_off += str8_deserial_read_struct(string, read_off, &event.entity); - read_off += str8_deserial_read_struct(string, read_off, &event.parent); - read_off += str8_deserial_read_struct(string, read_off, &event.arch); - read_off += str8_deserial_read_struct(string, read_off, &event.u64_code); - read_off += str8_deserial_read_struct(string, read_off, &event.entity_id); - read_off += str8_deserial_read_struct(string, read_off, &event.vaddr_rng); - read_off += str8_deserial_read_struct(string, read_off, &event.rip_vaddr); - read_off += str8_deserial_read_struct(string, read_off, &event.stack_base); - read_off += str8_deserial_read_struct(string, read_off, &event.tls_root); - read_off += str8_deserial_read_struct(string, read_off, &event.timestamp); - read_off += str8_deserial_read_struct(string, read_off, &event.exception_code); - read_off += str8_deserial_read_struct(string, read_off, &event.rgba); - read_off += str8_deserial_read_struct(string, read_off, &event.bp_flags); - read_off += str8_deserial_read_struct(string, read_off, &event.string.size); - event.string.str = push_array_no_zero(arena, U8, event.string.size); - read_off += str8_deserial_read(string, read_off, event.string.str, event.string.size, 1); - } - return event; -} - -//////////////////////////////// -//~ rjf: Entity Type Functions - -//- rjf: entity list data structures - -internal void -ctrl_entity_list_push(Arena *arena, CTRL_EntityList *list, CTRL_Entity *entity) -{ - CTRL_EntityNode *n = push_array(arena, CTRL_EntityNode, 1); - n->v = entity; - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal CTRL_EntityList -ctrl_entity_list_from_handle_list(Arena *arena, CTRL_EntityCtx *ctx, CTRL_HandleList *list) -{ - CTRL_EntityList result = {0}; - for(CTRL_HandleNode *n = list->first; n != 0; n = n->next) - { - CTRL_Entity *entity = ctrl_entity_from_handle(ctx, n->v); - ctrl_entity_list_push(arena, &result, entity); - } - return result; -} - -//- rjf: entity array data structure - -internal CTRL_EntityArray -ctrl_entity_array_from_list(Arena *arena, CTRL_EntityList *list) -{ - CTRL_EntityArray result = {0}; - result.count = list->count; - result.v = push_array_no_zero(arena, CTRL_Entity *, result.count); - U64 idx = 0; - for(CTRL_EntityNode *n = list->first; n != 0; n = n->next, idx += 1) - { - result.v[idx] = n->v; - } - return result; -} - -//- rjf: entity context (entity group read-only) functions - -internal CTRL_Entity * -ctrl_entity_from_handle(CTRL_EntityCtx *ctx, CTRL_Handle handle) -{ - CTRL_Entity *entity = &ctrl_entity_nil; - if(!ctrl_handle_match(handle, ctrl_handle_zero())) - { - U64 hash = ctrl_hash_from_handle(handle); - U64 slot_idx = hash%ctx->hash_slots_count; - CTRL_EntityHashSlot *slot = &ctx->hash_slots[slot_idx]; - CTRL_EntityHashNode *node = 0; - for(CTRL_EntityHashNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->entity->handle, handle)) - { - entity = n->entity; - break; - } - } - } - return entity; -} - -internal CTRL_Entity * -ctrl_entity_child_from_kind(CTRL_Entity *parent, CTRL_EntityKind kind) -{ - CTRL_Entity *result = &ctrl_entity_nil; - for(CTRL_Entity *child = parent->first; - child != &ctrl_entity_nil; - child = child->next) - { - if(child->kind == kind) - { - result = child; - break; - } - } - return result; -} - -internal CTRL_Entity * -ctrl_entity_ancestor_from_kind(CTRL_Entity *entity, CTRL_EntityKind kind) -{ - CTRL_Entity *result = &ctrl_entity_nil; - for(CTRL_Entity *p = entity->parent; p != &ctrl_entity_nil; p = p->parent) - { - if(p->kind == kind) - { - result = p; - break; - } - } - return result; -} - -internal CTRL_Entity * -ctrl_process_from_entity(CTRL_Entity *entity) -{ - CTRL_Entity *result = &ctrl_entity_nil; - if(entity->kind == CTRL_EntityKind_Process) - { - result = entity; - } - else - { - result = ctrl_entity_ancestor_from_kind(entity, CTRL_EntityKind_Process); - } - return result; -} - -internal CTRL_Entity * -ctrl_module_from_process_vaddr(CTRL_Entity *process, U64 vaddr) -{ - CTRL_Entity *result = &ctrl_entity_nil; - for(CTRL_Entity *child = process->first; - child != &ctrl_entity_nil; - child = child->next) - { - if(child->kind == CTRL_EntityKind_Module && contains_1u64(child->vaddr_range, vaddr)) - { - result = child; - break; - } - } - return result; -} - -internal DI_Key -ctrl_dbgi_key_from_module(CTRL_Entity *module) -{ - CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); - DI_Key dbgi_key = di_key_from_path_timestamp(debug_info_path->string, debug_info_path->timestamp); - return dbgi_key; -} - -internal CTRL_Entity * -ctrl_module_from_thread_candidates(CTRL_EntityCtx *ctx, CTRL_Entity *thread, CTRL_EntityList *candidates) -{ - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - U64 thread_rip_vaddr = ctrl_rip_from_thread(ctx, thread->handle); - CTRL_Entity *src_module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); - CTRL_Entity *module = &ctrl_entity_nil; - for(CTRL_EntityNode *n = candidates->first; n != 0; n = n->next) - { - CTRL_Entity *candidate_module = n->v; - CTRL_Entity *candidate_process = ctrl_entity_ancestor_from_kind(candidate_module, CTRL_EntityKind_Process); - if(candidate_process == process) - { - module = candidate_module; - } - if(candidate_module == src_module) - { - break; - } - } - return module; -} - -internal U64 -ctrl_vaddr_from_voff(CTRL_Entity *module, U64 voff) -{ - U64 result = voff + module->vaddr_range.min; - return result; -} - -internal U64 -ctrl_voff_from_vaddr(CTRL_Entity *module, U64 vaddr) -{ - U64 result = vaddr - module->vaddr_range.min; - return result; -} - -internal Rng1U64 -ctrl_vaddr_range_from_voff_range(CTRL_Entity *module, Rng1U64 voff_range) -{ - U64 dim = dim_1u64(voff_range); - U64 min = ctrl_vaddr_from_voff(module, voff_range.min); - Rng1U64 result = {min, min+dim}; - return result; -} - -internal Rng1U64 -ctrl_voff_range_from_vaddr_range(CTRL_Entity *module, Rng1U64 vaddr_range) -{ - U64 dim = dim_1u64(vaddr_range); - U64 min = ctrl_voff_from_vaddr(module, vaddr_range.min); - Rng1U64 result = {min, min+dim}; - return result; -} - -internal B32 -ctrl_entity_tree_is_frozen(CTRL_Entity *root) -{ - B32 is_frozen = 1; - for(CTRL_Entity *e = root; e != &ctrl_entity_nil; e = ctrl_entity_rec_depth_first_pre(e, root).next) - { - if(e->kind == CTRL_EntityKind_Thread && !e->is_frozen) - { - is_frozen = 0; - break; - } - } - return is_frozen; -} - -//- rjf: entity ctx r/w store state functions - -internal CTRL_EntityCtxRWStore * -ctrl_entity_ctx_rw_store_alloc(void) -{ - Arena *arena = arena_alloc(); - CTRL_EntityCtxRWStore *store = push_array(arena, CTRL_EntityCtxRWStore, 1); - store->arena = arena; - store->ctx.hash_slots_count = 1024; - store->ctx.hash_slots = push_array(arena, CTRL_EntityHashSlot, store->ctx.hash_slots_count); - CTRL_Entity *root = store->ctx.root = ctrl_entity_alloc(store, &ctrl_entity_nil, CTRL_EntityKind_Root, Arch_Null, ctrl_handle_zero(), 0); - CTRL_Entity *local_machine = ctrl_entity_alloc(store, root, CTRL_EntityKind_Machine, Arch_CURRENT, ctrl_handle_make(CTRL_MachineID_Local, dmn_handle_zero()), 0); - Temp scratch = scratch_begin(0, 0); - String8 local_machine_name = push_str8f(scratch.arena, "This PC (%S)", os_get_system_info()->machine_name); - ctrl_entity_equip_string(store, local_machine, local_machine_name); - scratch_end(scratch); - return store; -} - -internal void -ctrl_entity_ctx_rw_store_release(CTRL_EntityCtxRWStore *store) -{ - arena_release(store->arena); -} - -//- rjf: string allocation/deletion - -internal U64 -ctrl_name_bucket_num_from_string_size(U64 size) -{ - U64 bucket_num = 0; - if(size > 0) - { - for EachElement(idx, ctrl_entity_string_bucket_chunk_sizes) - { - if(size <= ctrl_entity_string_bucket_chunk_sizes[idx]) - { - bucket_num = idx+1; - break; - } - } - } - return bucket_num; -} - -internal String8 -ctrl_entity_string_alloc(CTRL_EntityCtxRWStore *store, String8 string) -{ - //- rjf: allocate node - CTRL_EntityStringChunkNode *node = 0; - { - U64 bucket_num = ctrl_name_bucket_num_from_string_size(string.size); - if(bucket_num == ArrayCount(ctrl_entity_string_bucket_chunk_sizes)) - { - CTRL_EntityStringChunkNode *best_node = 0; - CTRL_EntityStringChunkNode *best_node_prev = 0; - U64 best_node_size = max_U64; - { - for(CTRL_EntityStringChunkNode *n = store->free_string_chunks[bucket_num-1], *prev = 0; n != 0; (prev = n, n = n->next)) - { - if(n->size >= string.size && n->size < best_node_size) - { - best_node = n; - best_node_prev = prev; - best_node_size = n->size; - } - } - } - if(best_node != 0) - { - node = best_node; - if(best_node_prev) - { - best_node_prev->next = best_node->next; - } - else - { - store->free_string_chunks[bucket_num-1] = best_node->next; - } - } - else - { - U64 chunk_size = u64_up_to_pow2(string.size); - node = (CTRL_EntityStringChunkNode *)push_array(store->arena, U8, chunk_size); - } - } - else if(bucket_num != 0) - { - node = store->free_string_chunks[bucket_num-1]; - if(node != 0) - { - SLLStackPop(store->free_string_chunks[bucket_num-1]); - } - else - { - node = (CTRL_EntityStringChunkNode *)push_array(store->arena, U8, ctrl_entity_string_bucket_chunk_sizes[bucket_num-1]); - } - } - } - - //- rjf: fill node - String8 result = {0}; - if(node != 0) - { - result.str = (U8 *)node; - result.size = string.size; - MemoryCopy(result.str, string.str, result.size); - } - return result; -} - -internal void -ctrl_entity_string_release(CTRL_EntityCtxRWStore *store, String8 string) -{ - U64 bucket_num = ctrl_name_bucket_num_from_string_size(string.size); - if(1 <= bucket_num && bucket_num <= ArrayCount(ctrl_entity_string_bucket_chunk_sizes)) - { - U64 bucket_idx = bucket_num-1; - CTRL_EntityStringChunkNode *node = (CTRL_EntityStringChunkNode *)string.str; - SLLStackPush(store->free_string_chunks[bucket_idx], node); - node->size = u64_up_to_pow2(string.size); - } -} - -//- rjf: entity construction/deletion - -internal CTRL_Entity * -ctrl_entity_alloc(CTRL_EntityCtxRWStore *store, CTRL_Entity *parent, CTRL_EntityKind kind, Arch arch, CTRL_Handle handle, U64 id) -{ - CTRL_Entity *entity = &ctrl_entity_nil; - { - // rjf: allocate - entity = store->free; - { - if(entity != 0) - { - SLLStackPop(store->free); - } - else - { - entity = push_array_no_zero(store->arena, CTRL_Entity, 1); - } - MemoryZeroStruct(entity); - } - - // rjf: fill - { - entity->kind = kind; - entity->arch = arch; - entity->handle = handle; - entity->id = id; - entity->parent = parent; - entity->next = entity->prev = entity->first = entity->last = &ctrl_entity_nil; - if(parent != &ctrl_entity_nil) - { - DLLPushBack_NPZ(&ctrl_entity_nil, parent->first, parent->last, entity, next, prev); - } - } - - // rjf: insert into hash map - { - U64 hash = ctrl_hash_from_handle(handle); - U64 slot_idx = hash%store->ctx.hash_slots_count; - CTRL_EntityHashSlot *slot = &store->ctx.hash_slots[slot_idx]; - CTRL_EntityHashNode *node = 0; - for(CTRL_EntityHashNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->entity->handle, handle)) - { - node = n; - break; - } - } - if(node == 0) - { - node = store->hash_node_free; - if(node != 0) - { - SLLStackPop(store->hash_node_free); - } - else - { - node = push_array_no_zero(store->arena, CTRL_EntityHashNode, 1); - } - MemoryZeroStruct(node); - DLLPushBack(slot->first, slot->last, node); - node->entity = entity; - } - } - - // rjf: bump counters - store->ctx.entity_kind_counts[kind] += 1; - store->ctx.entity_kind_alloc_gens[kind] += 1; - } - return entity; -} - -internal void -ctrl_entity_release(CTRL_EntityCtxRWStore *store, CTRL_Entity *entity) -{ - // rjf: unhook root - if(entity->parent != &ctrl_entity_nil) - { - DLLRemove_NPZ(&ctrl_entity_nil, entity->parent->first, entity->parent->last, entity, next, prev); - } - - // rjf: walk every entity in this tree, free each - if(entity != &ctrl_entity_nil) - { - Temp scratch = scratch_begin(0, 0); - typedef struct Task Task; - struct Task - { - Task *next; - CTRL_Entity *e; - }; - Task start_task = {0, entity}; - Task *first_task = &start_task; - Task *last_task = &start_task; - for(Task *t = first_task; t != 0; t = t->next) - { - for(CTRL_Entity *child = t->e->first; child != &ctrl_entity_nil; child = child->next) - { - Task *t = push_array(scratch.arena, Task, 1); - t->e = child; - SLLQueuePush(first_task, last_task, t); - } - - // rjf: free entity - SLLStackPush(store->free, t->e); - - // rjf: remove from hash map - { - U64 hash = ctrl_hash_from_handle(t->e->handle); - U64 slot_idx = hash%store->ctx.hash_slots_count; - CTRL_EntityHashSlot *slot = &store->ctx.hash_slots[slot_idx]; - CTRL_EntityHashNode *node = 0; - for(CTRL_EntityHashNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->entity->handle, t->e->handle)) - { - DLLRemove(slot->first, slot->last, n); - SLLStackPush(store->hash_node_free, n); - break; - } - } - } - - // rjf: dec counter - store->ctx.entity_kind_counts[t->e->kind] -= 1; - store->ctx.entity_kind_alloc_gens[t->e->kind] += 1; - } - scratch_end(scratch); - } -} - -//- rjf: entity equipment - -internal void -ctrl_entity_equip_string(CTRL_EntityCtxRWStore *store, CTRL_Entity *entity, String8 string) -{ - if(entity->string.size != 0) - { - ctrl_entity_string_release(store, entity->string); - } - entity->string = ctrl_entity_string_alloc(store, string); -} - -//- rjf: accelerated entity context lookups - -internal CTRL_EntityCtxLookupAccel * -ctrl_thread_entity_ctx_lookup_accel(void) -{ - if(ctrl_entity_ctx_lookup_accel == 0) - { - Arena *arena = arena_alloc(); - ctrl_entity_ctx_lookup_accel = push_array(arena, CTRL_EntityCtxLookupAccel, 1); - ctrl_entity_ctx_lookup_accel->arena = arena; - for EachEnumVal(CTRL_EntityKind, k) - { - ctrl_entity_ctx_lookup_accel->entity_kind_arrays_arenas[k] = arena_alloc(); - } - } - return ctrl_entity_ctx_lookup_accel; -} - -internal CTRL_EntityArray -ctrl_entity_array_from_kind(CTRL_EntityCtx *ctx, CTRL_EntityKind kind) -{ - CTRL_EntityCtxLookupAccel *accel = ctrl_thread_entity_ctx_lookup_accel(); - if(accel->entity_kind_arrays_gens[kind] != ctx->entity_kind_alloc_gens[kind]) - { - Temp scratch = scratch_begin(0, 0); - CTRL_EntityList entities = {0}; - for(CTRL_Entity *e = ctx->root; - e != &ctrl_entity_nil; - e = ctrl_entity_rec_depth_first_pre(e, ctx->root).next) - { - if(e->kind == kind) - { - ctrl_entity_list_push(scratch.arena, &entities, e); - } - } - accel->entity_kind_arrays_gens[kind] = ctx->entity_kind_alloc_gens[kind]; - arena_clear(accel->entity_kind_arrays_arenas[kind]); - accel->entity_kind_arrays[kind] = ctrl_entity_array_from_list(accel->entity_kind_arrays_arenas[kind], &entities); - scratch_end(scratch); - } - return accel->entity_kind_arrays[kind]; -} - -internal CTRL_EntityList -ctrl_modules_from_dbgi_key(Arena *arena, CTRL_EntityCtx *ctx, DI_Key dbgi_key) -{ - CTRL_EntityList list = {0}; - CTRL_EntityArray all_modules = ctrl_entity_array_from_kind(ctx, CTRL_EntityKind_Module); - for EachIndex(idx, all_modules.count) - { - CTRL_Entity *module = all_modules.v[idx]; - DI_Key module_dbgi_key = ctrl_dbgi_key_from_module(module); - if(di_key_match(module_dbgi_key, dbgi_key)) - { - ctrl_entity_list_push(arena, &list, module); - } - } - return list; -} - -internal CTRL_Entity * -ctrl_thread_from_id(CTRL_EntityCtx *ctx, U64 id) -{ - CTRL_Entity *thread = &ctrl_entity_nil; - CTRL_EntityArray threads = ctrl_entity_array_from_kind(ctx, CTRL_EntityKind_Thread); - for EachIndex(idx, threads.count) - { - if(threads.v[idx]->id == id) - { - thread = threads.v[idx]; - } - } - return thread; -} - -//- rjf: entity tree iteration - -internal CTRL_EntityRec -ctrl_entity_rec_depth_first(CTRL_Entity *entity, CTRL_Entity *subtree_root, U64 sib_off, U64 child_off) -{ - CTRL_EntityRec result = {0}; - result.next = &ctrl_entity_nil; - if((*MemberFromOffset(CTRL_Entity **, entity, child_off)) != &ctrl_entity_nil) - { - result.next = *MemberFromOffset(CTRL_Entity **, entity, child_off); - result.push_count = 1; - } - else for(CTRL_Entity *parent = entity; parent != subtree_root && parent != &ctrl_entity_nil; parent = parent->parent) - { - if(parent != subtree_root && (*MemberFromOffset(CTRL_Entity **, parent, sib_off)) != &ctrl_entity_nil) - { - result.next = *MemberFromOffset(CTRL_Entity **, parent, sib_off); - break; - } - result.pop_count += 1; - } - return result; -} - -//- rjf: applying events to entity caches - -internal void -ctrl_entity_store_apply_events(CTRL_EntityCtxRWStore *store, CTRL_EventList *list) -{ - //- rjf: scan events & construct entities - for(CTRL_EventNode *n = list->first; n != 0; n = n->next) - { - CTRL_Event *event = &n->v; - switch(event->kind) - { - default:{}break; - - //- rjf: processes - case CTRL_EventKind_NewProc: - { - CTRL_Entity *machine = ctrl_entity_from_handle(&store->ctx, ctrl_handle_make(event->entity.machine_id, dmn_handle_zero())); - CTRL_Entity *process = ctrl_entity_alloc(store, machine, CTRL_EntityKind_Process, event->arch, event->entity, (U64)event->entity_id); - }break; - case CTRL_EventKind_EndProc: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->entity); - ctrl_entity_release(store, process); - for(CTRL_Entity *entry = store->ctx.root->first, *next = &ctrl_entity_nil; - entry != &ctrl_entity_nil; - entry = next) - { - next = entry->next; - if(entry->kind == CTRL_EntityKind_EntryPoint && entry->id == process->id) - { - ctrl_entity_release(store, entry); - } - } - }break; - - //- rjf: threads - case CTRL_EventKind_NewThread: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *thread = ctrl_entity_alloc(store, process, CTRL_EntityKind_Thread, event->arch, event->entity, (U64)event->entity_id); - CTRL_Entity *first_thread = ctrl_entity_child_from_kind(process, CTRL_EntityKind_Thread); - if(first_thread == thread) - { - ctrl_entity_equip_string(store, thread, str8_lit("main_thread")); - } - CTRL_EntityArray pending_thread_names = ctrl_entity_array_from_kind(&store->ctx, CTRL_EntityKind_PendingThreadName); - for EachIndex(idx, pending_thread_names.count) - { - CTRL_Entity *entity = pending_thread_names.v[idx]; - if(entity->id == event->entity_id) - { - ctrl_entity_equip_string(store, thread, entity->string); - ctrl_entity_release(store, entity); - break; - } - } - CTRL_EntityArray pending_thread_colors = ctrl_entity_array_from_kind(&store->ctx, CTRL_EntityKind_PendingThreadColor); - for EachIndex(idx, pending_thread_colors.count) - { - CTRL_Entity *entity = pending_thread_colors.v[idx]; - if(entity->id == event->entity_id) - { - thread->rgba = entity->rgba; - ctrl_entity_release(store, entity); - break; - } - } - thread->stack_base = event->stack_base; - ctrl_rip_from_thread(&store->ctx, event->entity); - }break; - case CTRL_EventKind_EndThread: - { - CTRL_Entity *thread = ctrl_entity_from_handle(&store->ctx, event->entity); - ctrl_entity_release(store, thread); - }break; - case CTRL_EventKind_ThreadName: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *thread = &ctrl_entity_nil; - if(event->entity_id == 0) - { - thread = ctrl_entity_from_handle(&store->ctx, event->entity); - } - else - { - thread = ctrl_thread_from_id(&store->ctx, event->entity_id); - } - if(thread != &ctrl_entity_nil) - { - ctrl_entity_equip_string(store, thread, event->string); - } - else - { - CTRL_Entity *pending_name = ctrl_entity_alloc(store, process, CTRL_EntityKind_PendingThreadName, Arch_Null, ctrl_handle_zero(), event->entity_id); - ctrl_entity_equip_string(store, pending_name, event->string); - } - }break; - case CTRL_EventKind_ThreadColor: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *thread = &ctrl_entity_nil; - if(event->entity_id == 0) - { - thread = ctrl_entity_from_handle(&store->ctx, event->entity); - } - else - { - thread = ctrl_thread_from_id(&store->ctx, event->entity_id); - } - if(thread != &ctrl_entity_nil) - { - thread->rgba = event->rgba; - } - else - { - CTRL_Entity *pending = ctrl_entity_alloc(store, process, CTRL_EntityKind_PendingThreadColor, Arch_Null, ctrl_handle_zero(), event->entity_id); - pending->rgba = event->rgba; - } - }break; - case CTRL_EventKind_ThreadFrozen: - { - CTRL_Entity *thread = ctrl_entity_from_handle(&store->ctx, event->entity); - thread->is_frozen = 1; - }break; - case CTRL_EventKind_ThreadThawed: - { - CTRL_Entity *thread = ctrl_entity_from_handle(&store->ctx, event->entity); - thread->is_frozen = 0; - }break; - - //- rjf: modules - case CTRL_EventKind_NewModule: - { - Temp scratch = scratch_begin(0, 0); - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *module = ctrl_entity_alloc(store, process, CTRL_EntityKind_Module, event->arch, event->entity, event->vaddr_rng.min); - ctrl_entity_equip_string(store, module, event->string); - module->timestamp = event->timestamp; - module->vaddr_range = event->vaddr_rng; - CTRL_Entity *first_module = ctrl_entity_child_from_kind(process, CTRL_EntityKind_Module); - if(first_module == module) - { - ctrl_entity_equip_string(store, process, str8_skip_last_slash(event->string)); - } - scratch_end(scratch); - }break; - case CTRL_EventKind_EndModule: - { - CTRL_Entity *module = ctrl_entity_from_handle(&store->ctx, event->entity); - ctrl_entity_release(store, module); - }break; - case CTRL_EventKind_ModuleDebugInfoPathChange: - { - Temp scratch = scratch_begin(0, 0); - CTRL_Entity *module = ctrl_entity_from_handle(&store->ctx, event->entity); - CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); - if(debug_info_path == &ctrl_entity_nil) - { - debug_info_path = ctrl_entity_alloc(store, module, CTRL_EntityKind_DebugInfoPath, Arch_Null, ctrl_handle_zero(), 0); - } - ctrl_entity_equip_string(store, debug_info_path, path_normalized_from_string(scratch.arena, event->string)); - debug_info_path->timestamp = event->timestamp; - scratch_end(scratch); - }break; - - //- rjf: dynamic, program-created breakpoints - case CTRL_EventKind_SetBreakpoint: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *bp = ctrl_entity_alloc(store, process, CTRL_EntityKind_Breakpoint, Arch_Null, ctrl_handle_zero(), 0); - bp->vaddr_range = event->vaddr_rng; - bp->bp_flags = event->bp_flags; - }break; - case CTRL_EventKind_UnsetBreakpoint: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - for(CTRL_Entity *child = process->first; child != &ctrl_entity_nil; child = child->next) - { - if(child->kind == CTRL_EntityKind_Breakpoint && - child->vaddr_range.min == event->vaddr_rng.min && - child->vaddr_range.max == event->vaddr_rng.max && - child->bp_flags == event->bp_flags) - { - ctrl_entity_release(store, child); - break; - } - } - }break; - - //- rjf: address range annotations - case CTRL_EventKind_SetVAddrRangeNote: - { - CTRL_Entity *process = ctrl_entity_from_handle(&store->ctx, event->parent); - CTRL_Entity *annotation = ctrl_entity_alloc(store, process, CTRL_EntityKind_AddressRangeAnnotation, Arch_Null, ctrl_handle_zero(), 0); - annotation->vaddr_range = event->vaddr_rng; - ctrl_entity_equip_string(store, annotation, event->string); - }break; - } - } -} - -//////////////////////////////// -//~ rjf: Main Layer Initialization - -internal void -ctrl_init(void) -{ - Arena *arena = arena_alloc(); - ctrl_state = push_array(arena, CTRL_State, 1); - ctrl_state->arena = arena; - for(Arch arch = (Arch)0; arch < Arch_COUNT; arch = (Arch)(arch+1)) - { - String8 *reg_names = regs_reg_code_string_table_from_arch(arch); - U64 reg_count = regs_reg_code_count_from_arch(arch); - String8 *alias_names = regs_alias_code_string_table_from_arch(arch); - U64 alias_count = regs_alias_code_count_from_arch(arch); - ctrl_state->arch_string2reg_tables[arch] = e_string2num_map_make(ctrl_state->arena, 256); - ctrl_state->arch_string2alias_tables[arch] = e_string2num_map_make(ctrl_state->arena, 256); - for(U64 idx = 1; idx < reg_count; idx += 1) - { - e_string2num_map_insert(ctrl_state->arena, &ctrl_state->arch_string2reg_tables[arch], reg_names[idx], idx); - } - for(U64 idx = 1; idx < alias_count; idx += 1) - { - e_string2num_map_insert(ctrl_state->arena, &ctrl_state->arch_string2alias_tables[arch], alias_names[idx], idx); - } - } - ctrl_state->thread_reg_cache.slots_count = 1024; - ctrl_state->thread_reg_cache.slots = push_array(arena, CTRL_ThreadRegCacheSlot, ctrl_state->thread_reg_cache.slots_count); - ctrl_state->thread_reg_cache.stripes_count = os_get_system_info()->logical_processor_count; - ctrl_state->thread_reg_cache.stripes = push_array(arena, CTRL_ThreadRegCacheStripe, ctrl_state->thread_reg_cache.stripes_count); - for(U64 idx = 0; idx < ctrl_state->thread_reg_cache.stripes_count; idx += 1) - { - ctrl_state->thread_reg_cache.stripes[idx].arena = arena_alloc(); - ctrl_state->thread_reg_cache.stripes[idx].rw_mutex = rw_mutex_alloc(); - } - ctrl_state->module_image_info_cache.slots_count = 1024; - ctrl_state->module_image_info_cache.slots = push_array(arena, CTRL_ModuleImageInfoCacheSlot, ctrl_state->module_image_info_cache.slots_count); - ctrl_state->module_image_info_cache.stripes_count = os_get_system_info()->logical_processor_count; - ctrl_state->module_image_info_cache.stripes = push_array(arena, CTRL_ModuleImageInfoCacheStripe, ctrl_state->module_image_info_cache.stripes_count); - for(U64 idx = 0; idx < ctrl_state->module_image_info_cache.stripes_count; idx += 1) - { - ctrl_state->module_image_info_cache.stripes[idx].arena = arena_alloc(); - ctrl_state->module_image_info_cache.stripes[idx].rw_mutex = rw_mutex_alloc(); - } - ctrl_state->u2c_ring_size = KB(64); - ctrl_state->u2c_ring_base = push_array_no_zero(arena, U8, ctrl_state->u2c_ring_size); - ctrl_state->u2c_ring_mutex = mutex_alloc(); - ctrl_state->u2c_ring_cv = cond_var_alloc(); - ctrl_state->c2u_ring_size = KB(64); - ctrl_state->c2u_ring_max_string_size = ctrl_state->c2u_ring_size/2; - ctrl_state->c2u_ring_base = push_array_no_zero(arena, U8, ctrl_state->c2u_ring_size); - ctrl_state->c2u_ring_mutex = mutex_alloc(); - ctrl_state->c2u_ring_cv = cond_var_alloc(); - { - Temp scratch = scratch_begin(0, 0); - String8 user_program_data_path = os_get_process_info()->user_program_data_path; - String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_data_path); - os_make_directory(user_data_folder); - ctrl_state->ctrl_thread_log_path = push_str8f(ctrl_state->arena, "%S/ctrl_thread.raddbg_log", user_data_folder); - os_write_data_to_file_path(ctrl_state->ctrl_thread_log_path, str8_zero()); - scratch_end(scratch); - } - ctrl_state->ctrl_thread_entity_ctx_rw_mutex = rw_mutex_alloc(); - ctrl_state->ctrl_thread_entity_store = ctrl_entity_ctx_rw_store_alloc(); - ctrl_state->ctrl_thread_eval_cache = e_cache_alloc(); - ctrl_state->ctrl_thread_msg_process_arena = arena_alloc(); - ctrl_state->dmn_event_arena = arena_alloc(); - ctrl_state->user_entry_point_arena = arena_alloc(); - ctrl_state->dbg_dir_arena = arena_alloc(); - for(CTRL_ExceptionCodeKind k = (CTRL_ExceptionCodeKind)0; k < CTRL_ExceptionCodeKind_COUNT; k = (CTRL_ExceptionCodeKind)(k+1)) - { - if(ctrl_exception_code_kind_default_enable_table[k]) - { - ctrl_state->exception_code_filters[k/64] |= 1ull<<(k%64); - } - } - ctrl_state->ctrl_thread_log = log_alloc(); - ctrl_state->ctrl_thread = thread_launch(ctrl_thread__entry_point, 0); -} - -//////////////////////////////// -//~ rjf: Wakeup Callback Registration - -internal void -ctrl_set_wakeup_hook(CTRL_WakeupFunctionType *wakeup_hook) -{ - ctrl_state->wakeup_hook = wakeup_hook; -} - -//////////////////////////////// -//~ rjf: Thread Register Functions - -//- rjf: thread register cache reading - -internal void * -ctrl_reg_block_from_thread(Arena *arena, CTRL_EntityCtx *ctx, CTRL_Handle handle) -{ - CTRL_ThreadRegCache *cache = &ctrl_state->thread_reg_cache; - CTRL_Entity *thread_entity = ctrl_entity_from_handle(ctx, handle); - Arch arch = thread_entity->arch; - U64 reg_block_size = regs_block_size_from_arch(arch); - U64 hash = ctrl_hash_from_handle(handle); - U64 slot_idx = hash%cache->slots_count; - U64 stripe_idx = slot_idx%cache->stripes_count; - CTRL_ThreadRegCacheSlot *slot = &cache->slots[slot_idx]; - CTRL_ThreadRegCacheStripe *stripe = &cache->stripes[stripe_idx]; - void *result = push_array(arena, U8, reg_block_size); - MutexScopeW(stripe->rw_mutex) - { - // rjf: find existing node - CTRL_ThreadRegCacheNode *node = 0; - for(CTRL_ThreadRegCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->handle, handle)) - { - node = n; - break; - } - } - - // rjf: allocate existing node - if(!node) - { - node = push_array(stripe->arena, CTRL_ThreadRegCacheNode, 1); - DLLPushBack(slot->first, slot->last, node); - node->handle = handle; - node->block_size = reg_block_size; - node->block = push_array(stripe->arena, U8, reg_block_size); - } - - // rjf: copy from node - if(node) - { - U64 current_reg_gen = ctrl_reg_gen(); - B32 need_stale = 1; - if(node->reg_gen != current_reg_gen && dmn_thread_read_reg_block(handle.dmn_handle, result)) - { - if(node != 0) - { - need_stale = 0; - node->reg_gen = current_reg_gen; - MemoryCopy(node->block, result, reg_block_size); - } - } - if(need_stale) - { - MemoryCopy(result, node->block, reg_block_size); - } - } - } - return result; -} - -internal U64 -ctrl_tls_root_vaddr_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle) -{ - U64 result = dmn_tls_root_vaddr_from_thread(handle.dmn_handle); - return result; -} - -internal U64 -ctrl_rip_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle) -{ - Temp scratch = scratch_begin(0, 0); - CTRL_Entity *thread_entity = ctrl_entity_from_handle(ctx, handle); - Arch arch = thread_entity->arch; - void *block = ctrl_reg_block_from_thread(scratch.arena, ctx, handle); - U64 result = regs_rip_from_arch_block(arch, block); - scratch_end(scratch); - return result; -} - -internal U64 -ctrl_rsp_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle) -{ - Temp scratch = scratch_begin(0, 0); - CTRL_Entity *thread_entity = ctrl_entity_from_handle(ctx, handle); - Arch arch = thread_entity->arch; - void *block = ctrl_reg_block_from_thread(scratch.arena, ctx, handle); - U64 result = regs_rsp_from_arch_block(arch, block); - scratch_end(scratch); - return result; -} - -//- rjf: thread register writing - -internal B32 -ctrl_thread_write_reg_block(CTRL_Handle thread, void *block) -{ - // TODO(rjf): @callstacks immediately reflect this in the call stack cache - B32 good = dmn_thread_write_reg_block(thread.dmn_handle, block); - if(good) - { - ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); - } - return good; -} - -//////////////////////////////// -//~ rjf: Module Image Info Functions - -//- rjf: cache lookups - -internal PE_IntelPdata * -ctrl_intel_pdata_from_module_voff(Arena *arena, CTRL_Handle module_handle, U64 voff) -{ - PE_IntelPdata *first_pdata = 0; - { - U64 hash = ctrl_hash_from_handle(module_handle); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeR(stripe->rw_mutex) for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module_handle)) - { - PE_IntelPdata *pdatas = n->pdatas; - U64 pdatas_count = n->pdatas_count; - if(n->pdatas_count != 0 && voff >= n->pdatas[0].voff_first) - { - // NOTE(rjf): - // - // binary search: - // find max index s.t. pdata_array[index].voff_first <= voff - // we assume (i < j) -> (pdata_array[i].voff_first < pdata_array[j].voff_first) - U64 index = pdatas_count; - U64 min = 0; - U64 opl = pdatas_count; - for(;;) - { - U64 mid = (min + opl)/2; - PE_IntelPdata *pdata = pdatas + mid; - if(voff < pdata->voff_first) - { - opl = mid; - } - else if(pdata->voff_first < voff) - { - min = mid; - } - else - { - index = mid; - break; - } - if(min + 1 >= opl) - { - index = min; - break; - } - } - - // rjf: if we are in range fill result - { - PE_IntelPdata *pdata = pdatas + index; - if(pdata->voff_first <= voff && voff < pdata->voff_one_past_last) - { - first_pdata = push_array(arena, PE_IntelPdata, 1); - MemoryCopyStruct(first_pdata, pdata); - } - } - } - break; - } - } - } - return first_pdata; -} - -internal U64 -ctrl_entry_point_voff_from_module(CTRL_Handle module_handle) -{ - U64 result = 0; - U64 hash = ctrl_hash_from_handle(module_handle); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeR(stripe->rw_mutex) for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module_handle)) - { - result = n->entry_point_voff; - break; - } - } - return result; -} - -internal Rng1U64 -ctrl_tls_vaddr_range_from_module(CTRL_Handle module_handle) -{ - Rng1U64 result = {0}; - U64 hash = ctrl_hash_from_handle(module_handle); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeR(stripe->rw_mutex) for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module_handle)) - { - result = n->tls_vaddr_range; - break; - } - } - return result; -} - -internal String8 -ctrl_initial_debug_info_path_from_module(Arena *arena, CTRL_Handle module_handle) -{ - String8 result = {0}; - U64 hash = ctrl_hash_from_handle(module_handle); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeR(stripe->rw_mutex) for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module_handle)) - { - result = push_str8_copy(arena, n->initial_debug_info_path); - break; - } - } - return result; -} - -internal String8 -ctrl_raddbg_data_from_module(Arena *arena, CTRL_Handle module_handle) -{ - String8 result = {0}; - U64 hash = ctrl_hash_from_handle(module_handle); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeR(stripe->rw_mutex) for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module_handle)) - { - result = push_str8_copy(arena, n->raddbg_data); - break; - } - } - return result; -} - -//////////////////////////////// -//~ rjf: Unwinding Functions - -//- rjf: unwind deep copier - -internal CTRL_Unwind -ctrl_unwind_deep_copy(Arena *arena, Arch arch, CTRL_Unwind *src) -{ - CTRL_Unwind dst = {0}; - { - dst.flags = src->flags; - dst.frames.count = src->frames.count; - dst.frames.v = push_array(arena, CTRL_UnwindFrame, dst.frames.count); - MemoryCopy(dst.frames.v, src->frames.v, sizeof(dst.frames.v[0])*dst.frames.count); - U64 block_size = regs_block_size_from_arch(arch); - for(U64 idx = 0; idx < dst.frames.count; idx += 1) - { - dst.frames.v[idx].regs = push_array_no_zero(arena, U8, block_size); - MemoryCopy(dst.frames.v[idx].regs, src->frames.v[idx].regs, block_size); - } - } - return dst; -} - -//- rjf: [x64] - -internal REGS_Reg64 * -ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(REGS_RegBlockX64 *regs, PE_UnwindGprRegX64 gpr_reg) -{ - local_persist REGS_Reg64 dummy = {0}; - REGS_Reg64 *result = &dummy; - switch(gpr_reg) - { - case PE_UnwindGprRegX64_RAX:{result = ®s->rax;}break; - case PE_UnwindGprRegX64_RCX:{result = ®s->rcx;}break; - case PE_UnwindGprRegX64_RDX:{result = ®s->rdx;}break; - case PE_UnwindGprRegX64_RBX:{result = ®s->rbx;}break; - case PE_UnwindGprRegX64_RSP:{result = ®s->rsp;}break; - case PE_UnwindGprRegX64_RBP:{result = ®s->rbp;}break; - case PE_UnwindGprRegX64_RSI:{result = ®s->rsi;}break; - case PE_UnwindGprRegX64_RDI:{result = ®s->rdi;}break; - case PE_UnwindGprRegX64_R8 :{result = ®s->r8 ;}break; - case PE_UnwindGprRegX64_R9 :{result = ®s->r9 ;}break; - case PE_UnwindGprRegX64_R10:{result = ®s->r10;}break; - case PE_UnwindGprRegX64_R11:{result = ®s->r11;}break; - case PE_UnwindGprRegX64_R12:{result = ®s->r12;}break; - case PE_UnwindGprRegX64_R13:{result = ®s->r13;}break; - case PE_UnwindGprRegX64_R14:{result = ®s->r14;}break; - case PE_UnwindGprRegX64_R15:{result = ®s->r15;}break; - } - return result; -} - -internal CTRL_UnwindStepResult -ctrl_unwind_step__pe_x64(CTRL_Handle process_handle, CTRL_Handle module_handle, U64 module_base_vaddr, REGS_RegBlockX64 *regs, U64 endt_us) -{ - B32 is_stale = 0; - B32 is_good = 1; - Temp scratch = scratch_begin(0, 0); - - ////////////////////////////// - //- rjf: unpack parameters - // - U64 rip_voff = regs->rip.u64 - module_base_vaddr; - - ////////////////////////////// - //- rjf: rip_voff -> first pdata - // - PE_IntelPdata *first_pdata = ctrl_intel_pdata_from_module_voff(scratch.arena, module_handle, rip_voff); - - ////////////////////////////// - //- rjf: pdata -> detect if in epilog - // - B32 has_pdata_and_in_epilog = 0; - if(first_pdata) ProfScope("pdata -> detect if in epilog") - { - // NOTE(allen): There are restrictions placed on how an epilog is allowed - // to be formed (https://docs.microsoft.com/en-us/cpp/build/prolog-and-epilog?view=msvc-160) - // Here we interpret machine code directly according to the rules - // given there to determine if the code we're looking at looks like an epilog. - - //- rjf: set up parsing state - B32 is_epilog = 0; - B32 keep_parsing = 1; - U64 read_vaddr = regs->rip.u64; - U64 read_vaddr_opl = read_vaddr + 256; - - //- rjf: check first instruction - { - B32 inst_good = 0; - U8 inst[4] = {0}; - if(read_vaddr + sizeof(inst) <= read_vaddr_opl) - { - inst_good = ctrl_process_memory_read(process_handle, r1u64(read_vaddr, read_vaddr+sizeof(inst)), &is_stale, inst, endt_us); - inst_good = inst_good && !is_stale; - } - if(!inst_good) - { - keep_parsing = 0; - } - else if((inst[0] & 0xF8) == 0x48) - { - switch(inst[1]) - { - // rjf: add $nnnn,%rsp - case 0x81: - { - if(inst[0] == 0x48 && inst[2] == 0xC4) - { - read_vaddr += 7; - } - else - { - keep_parsing = 0; - } - }break; - - // rjf: add $n,%rsp - case 0x83: - { - if(inst[0] == 0x48 && inst[2] == 0xC4) - { - read_vaddr += 4; - } - else - { - keep_parsing = 0; - } - }break; - - // rjf: lea n(reg),%rsp - case 0x8D: - { - if((inst[0] & 0x06) == 0 && - ((inst[2] >> 3) & 0x07) == 0x04 && - (inst[2] & 0x07) != 0x04) - { - U8 imm_size = (inst[2] >> 6); - - // rjf: 1-byte immediate - if(imm_size == 1) - { - read_vaddr += 4; - } - - // rjf: 4-byte immediate - else if(imm_size == 2) - { - read_vaddr += 7; - } - - // rjf: other case - else - { - keep_parsing = 0; - } - } - else - { - keep_parsing = 0; - } - }break; - } - } - } - - //- rjf: continue parsing instructions - for(;keep_parsing;) - { - // rjf: read next instruction byte - B32 inst_byte_good = 0; - U8 inst_byte = 0; - if(read_vaddr + sizeof(inst_byte) <= read_vaddr_opl) - { - inst_byte_good = ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &inst_byte, endt_us); - } - if(!inst_byte_good || is_stale) - { - keep_parsing = 0; - } - - // rjf: when (... I don't know ...) rely on the next byte - B32 check_inst_byte_good = inst_byte_good; - U64 check_vaddr = read_vaddr; - U8 check_inst_byte = inst_byte; - if(inst_byte_good && (inst_byte & 0xF0) == 0x40) - { - check_vaddr = read_vaddr + 1; - if(read_vaddr + sizeof(check_inst_byte) <= read_vaddr_opl) - { - check_inst_byte_good = ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &check_inst_byte, endt_us); - } - if(!check_inst_byte_good || is_stale) - { - keep_parsing = 0; - } - } - - // rjf: check instruction byte - if(check_inst_byte_good) - { - switch(check_inst_byte) - { - // rjf: pop - case 0x58:case 0x59:case 0x5A:case 0x5B: - case 0x5C:case 0x5D:case 0x5E:case 0x5F: - { - read_vaddr = check_vaddr + 1; - }break; - - // rjf: ret - case 0xC2: - case 0xC3: - { - is_epilog = 1; - keep_parsing = 0; - }break; - - // rjf: jmp nnnn - case 0xE9: - { - U64 imm_vaddr = check_vaddr + 1; - S32 imm = 0; - B32 imm_good = 0; - if(read_vaddr + sizeof(imm) <= read_vaddr_opl) - { - imm_good = ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm, endt_us); - } - if(!imm_good || is_stale) - { - keep_parsing = 0; - } - if(imm_good) - { - U64 next_vaddr = (U64)(imm_vaddr + sizeof(imm) + imm); - U64 next_voff = next_vaddr - module_base_vaddr; // TODO(rjf): verify that this offset is from module base vaddr, not section - if(!(first_pdata->voff_first <= next_voff && next_voff < first_pdata->voff_one_past_last)) - { - keep_parsing = 0; - } - else - { - read_vaddr = next_vaddr; - } - } - // TODO(allen): why isn't this just the end of the epilog? - }break; - - // rjf: rep; ret (for amd64 prediction bug) - case 0xF3: - { - U8 next_inst_byte = 0; - B32 next_inst_byte_good = 0; - if(read_vaddr + sizeof(next_inst_byte) <= read_vaddr_opl) - { - next_inst_byte_good = ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &next_inst_byte, endt_us); - } - if(next_inst_byte_good) - { - is_epilog = (next_inst_byte == 0xC3); - } - keep_parsing = 0; - }break; - - default:{keep_parsing = 0;}break; - } - } - } - has_pdata_and_in_epilog = is_epilog; - } - - ////////////////////////////// - //- rjf: pdata & in epilog -> epilog unwind - // - if(first_pdata && has_pdata_and_in_epilog) ProfScope("pdata & in epilog -> epilog unwind") - { - U64 read_vaddr = regs->rip.u64; - for(B32 keep_parsing = 1;keep_parsing != 0;) - { - //- rjf: assume no more parsing after this instruction - keep_parsing = 0; - - //- rjf: read next instruction byte - U8 inst_byte = 0; - is_good = is_good && ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &inst_byte, endt_us); - is_good = is_good && !is_stale; - read_vaddr += 1; - - //- rjf: extract rex from instruction byte - U8 rex = 0; - if((inst_byte & 0xF0) == 0x40) - { - rex = inst_byte & 0xF; // rex prefix - is_good = is_good && ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &inst_byte, endt_us); - is_good = is_good && !is_stale; - read_vaddr += 1; - } - - //- rjf: parse remainder of instruction - switch(inst_byte) - { - // rjf: pop - case 0x58: - case 0x59: - case 0x5A: - case 0x5B: - case 0x5C: - case 0x5D: - case 0x5E: - case 0x5F: - { - // rjf: read value at rsp - U64 sp = regs->rsp.u64; - U64 value = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp, &is_stale, &value, endt_us) || - is_stale) - { - is_good = 0; - break; - } - - // rjf: modify registers - PE_UnwindGprRegX64 gpr_reg = (inst_byte - 0x58) + (rex & 1)*8; - REGS_Reg64 *reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, gpr_reg); - reg->u64 = value; - regs->rsp.u64 = sp + 8; - - // rjf: not a final instruction, so keep mparsing - keep_parsing = 1; - }break; - - // rjf: add $nnnn,%rsp - case 0x81: - { - // rjf: skip one byte (we already know what it is in this scenario) - read_vaddr += 1; - - // rjf: read the 4-byte immediate - S32 imm = 0; - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm, endt_us) || - is_stale) - { - is_good = 0; - break; - } - read_vaddr += 4; - - // rjf: update stack pointer - regs->rsp.u64 = (U64)(regs->rsp.u64 + imm); - - // rjf: not a final instruction; keep parsing - keep_parsing = 1; - }break; - - // rjf: add $n,%rsp - case 0x83: - { - // rjf: skip one byte (we already know what it is in this scenario) - read_vaddr += 1; - - // rjf: read the 4-byte immediate - S8 imm = 0; - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm, endt_us) || - is_stale) - { - is_good = 0; - break; - } - read_vaddr += 1; - - // rjf: update stack pointer - regs->rsp.u64 = (U64)(regs->rsp.u64 + imm); - - // rjf: not a final instruction; keep parsing - keep_parsing = 1; - }break; - - // rjf: lea imm8/imm32,$rsp - case 0x8D: - { - // rjf: read source register - U8 modrm = 0; - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &modrm, endt_us) || - is_stale) - { - is_good = 0; - break; - } - read_vaddr += 1; - PE_UnwindGprRegX64 gpr_reg = (modrm & 7) + (rex & 1)*8; - REGS_Reg64 *reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, gpr_reg); - U64 reg_value = reg->u64; - - // rjf: read immediate - S32 imm = 0; - { - // rjf: read 1-byte immediate - if((modrm >> 6) == 1) - { - S8 imm8 = 0; - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm8, endt_us) || - is_stale) - { - is_good = 0; - break; - } - read_vaddr += 1; - imm = (S32)imm8; - } - - // rjf: read 4-byte immediate - else - { - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm, endt_us) || - is_stale) - { - is_good = 0; - break; - } - read_vaddr += 4; - } - } - - // rjf: update stack pointer - regs->rsp.u64 = (U64)(reg_value + imm); - - // rjf: not a final instruction; keep parsing - keep_parsing = 1; - }break; - - // rjf: ret $nn - case 0xC2: - { - // rjf: read new ip - U64 sp = regs->rsp.u64; - U64 new_ip = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp, &is_stale, &new_ip, endt_us) || - is_stale) - { - is_good = 0; - break; - } - - // rjf: read 2-byte immediate & advance stack pointer - U16 imm = 0; - if(!ctrl_process_memory_read_struct(process_handle, read_vaddr, &is_stale, &imm, endt_us) || - is_stale) - { - is_good = 0; - break; - } - U64 new_sp = sp + 8 + imm; - - // rjf: commit registers - regs->rip.u64 = new_ip; - regs->rsp.u64 = new_sp; - }break; - - // rjf: ret / rep; ret - case 0xF3: - { - // Assert(!"Hit me!"); - }break; - case 0xC3: - { - // rjf: read new ip - U64 sp = regs->rsp.u64; - U64 new_ip = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp, &is_stale, &new_ip, endt_us) || - is_stale) - { - is_good = 0; - break; - } - - // rjf: advance stack pointer - U64 new_sp = sp + 8; - - // rjf: commit registers - regs->rip.u64 = new_ip; - regs->rsp.u64 = new_sp; - }break; - - // rjf: jmp nnnn - case 0xE9: - { - // Assert(!"Hit Me"); - // TODO(allen): general idea: read the immediate, move the ip, leave the sp, done - // we don't have any cases to exercise this right now. no guess implementation! - }break; - - // rjf: Sjmp n - case 0xEB: - { - // Assert(!"Hit Me"); - // TODO(allen): general idea: read the immediate, move the ip, leave the sp, done - // we don't have any cases to exercise this right now. no guess implementation! - }break; - } - } - } - - ////////////////////////////// - //- rjf: pdata & not in epilog -> xdata unwind - // - B32 xdata_unwind_did_machframe = 0; - if(first_pdata && !has_pdata_and_in_epilog) ProfScope("pdata & not in epilog -> xdata unwind") - { - //- rjf: get frame reg - B32 bad_frame_reg_info = 0; - REGS_Reg64 *frame_reg = 0; - U64 frame_off = 0; - { - U64 unwind_info_off = first_pdata->voff_unwind_info; - PE_UnwindInfo unwind_info = {0}; - if(!ctrl_process_memory_read_struct(process_handle, module_base_vaddr+unwind_info_off, &is_stale, &unwind_info, endt_us) || - is_stale) - { - is_good = 0; - } - U32 frame_reg_id = PE_UNWIND_INFO_REG_FROM_FRAME(unwind_info.frame); - U64 frame_off_val = PE_UNWIND_INFO_OFF_FROM_FRAME(unwind_info.frame); - if(frame_reg_id != 0) - { - frame_reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, frame_reg_id); - bad_frame_reg_info = (frame_reg == 0); // NOTE(rjf): frame_reg should never be 0 at this point, in valid exe - } - frame_off = frame_off_val; - } - - //- rjf: iterate pdatas, apply opcodes - PE_IntelPdata *last_pdata = 0; - PE_IntelPdata *pdata = first_pdata; - if(!bad_frame_reg_info) for(B32 keep_parsing = 1; keep_parsing && pdata != last_pdata;) - { - //- rjf: unpack unwind info & codes - B32 good_unwind_info = 1; - U64 unwind_info_off = pdata->voff_unwind_info; - PE_UnwindInfo unwind_info = {0}; - good_unwind_info = good_unwind_info && ctrl_process_memory_read_struct(process_handle, module_base_vaddr+unwind_info_off, &is_stale, &unwind_info, endt_us); - PE_UnwindCode *unwind_codes = push_array(scratch.arena, PE_UnwindCode, unwind_info.codes_num); - good_unwind_info = good_unwind_info && ctrl_process_memory_read(process_handle, r1u64(module_base_vaddr+unwind_info_off+sizeof(unwind_info), - module_base_vaddr+unwind_info_off+sizeof(unwind_info)+sizeof(PE_UnwindCode)*unwind_info.codes_num), - &is_stale, unwind_codes, endt_us); - good_unwind_info = good_unwind_info && !is_stale; - - //- rjf: bad unwind info -> abort - if(!good_unwind_info) - { - is_good = 0; - break; - } - - //- rjf: unpack frame base - U64 frame_base = regs->rsp.u64; - if(frame_reg != 0) - { - U64 raw_frame_base = frame_reg->u64; - U64 adjusted_frame_base = raw_frame_base - frame_off*16; - frame_base = adjusted_frame_base; - } - - //- rjf: apply opcodes - PE_UnwindCode *code_ptr = unwind_codes; - PE_UnwindCode *code_opl = unwind_codes + unwind_info.codes_num; - for(PE_UnwindCode *next_code_ptr = 0; code_ptr < code_opl; code_ptr = next_code_ptr) - { - // rjf: unpack opcode info - U32 op_code = PE_UNWIND_OPCODE_FROM_FLAGS(code_ptr->flags); - U32 op_info = PE_UNWIND_INFO_FROM_FLAGS(code_ptr->flags); - U32 slot_count = pe_slot_count_from_unwind_op_code(op_code); - if(op_code == PE_UnwindOpCode_ALLOC_LARGE && op_info == 1) - { - slot_count += 1; - } - - // rjf: detect bad slot counts - if(slot_count == 0 || code_ptr+slot_count > code_opl) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: set next op code pointer - next_code_ptr = code_ptr + slot_count; - - // rjf: interpret this op code - U64 code_voff = pdata->voff_first + code_ptr->off_in_prolog; - if(code_voff <= rip_voff) - { - switch(op_code) - { - case PE_UnwindOpCode_PUSH_NONVOL: - { - // rjf: read value from stack pointer - U64 rsp = regs->rsp.u64; - U64 value = 0; - if(!ctrl_process_memory_read_struct(process_handle, rsp, &is_stale, &value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: advance stack ptr - U64 new_rsp = rsp + 8; - - // rjf: commit registers - REGS_Reg64 *reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, op_info); - reg->u64 = value; - regs->rsp.u64 = new_rsp; - }break; - - case PE_UnwindOpCode_ALLOC_LARGE: - { - // rjf: read alloc size - U64 size = 0; - if(op_info == 0) - { - size = code_ptr[1].u16*8; - } - else if(op_info == 1) - { - size = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); - } - else - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: advance stack pointer - U64 rsp = regs->rsp.u64; - U64 new_rsp = rsp + size; - - // rjf: advance stack pointer - regs->rsp.u64 = new_rsp; - }break; - - case PE_UnwindOpCode_ALLOC_SMALL: - { - // rjf: advance stack pointer - regs->rsp.u64 += op_info*8 + 8; - }break; - - case PE_UnwindOpCode_SET_FPREG: - { - // rjf: put stack pointer back to the frame base - regs->rsp.u64 = frame_base; - }break; - - case PE_UnwindOpCode_SAVE_NONVOL: - { - // rjf: read value from frame base - U64 off = code_ptr[1].u16*8; - U64 addr = frame_base + off; - U64 value = 0; - if(!ctrl_process_memory_read_struct(process_handle, addr, &is_stale, &value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: commit to register - REGS_Reg64 *reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, op_info); - reg->u64 = value; - }break; - - case PE_UnwindOpCode_SAVE_NONVOL_FAR: - { - // rjf: read value from frame base - U64 off = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); - U64 addr = frame_base + off; - U64 value = 0; - if(!ctrl_process_memory_read_struct(process_handle, addr, &is_stale, &value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: commit to register - REGS_Reg64 *reg = ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(regs, op_info); - reg->u64 = value; - }break; - - case PE_UnwindOpCode_EPILOG: - { - keep_parsing = 1; - }break; - - case PE_UnwindOpCode_SPARE_CODE: - { - // TODO(rjf): ??? - keep_parsing = 0; - is_good = 0; - }break; - - case PE_UnwindOpCode_SAVE_XMM128: - { - // rjf: read new register values - U8 buf[16]; - U64 off = code_ptr[1].u16*16; - U64 addr = frame_base + off; - if(!ctrl_process_memory_read(process_handle, r1u64(addr, addr+sizeof(buf)), &is_stale, buf, endt_us)) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: commit to register - void *xmm_reg = (®s->zmm0) + op_info; - MemoryCopy(xmm_reg, buf, sizeof(buf)); - }break; - - case PE_UnwindOpCode_SAVE_XMM128_FAR: - { - // rjf: read new register values - U8 buf[16]; - U64 off = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); - U64 addr = frame_base + off; - if(!ctrl_process_memory_read(process_handle, r1u64(addr, addr+16), &is_stale, buf, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: commit to register - void *xmm_reg = (®s->zmm0) + op_info; - MemoryCopy(xmm_reg, buf, sizeof(buf)); - }break; - - case PE_UnwindOpCode_PUSH_MACHFRAME: - { - // NOTE(rjf): this was found by stepping through kernel code after an exception was - // thrown, encountered in the exception_stepping_tests (after the throw) in mule_main - if(op_info > 1) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: read values - U64 sp_og = regs->rsp.u64; - U64 sp_adj = sp_og; - if(op_info == 1) - { - sp_adj += 8; - } - U64 ip_value = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp_adj, &is_stale, &ip_value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - U64 sp_after_ip = sp_adj + 8; - U16 ss_value = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp_after_ip, &is_stale, &ss_value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - U64 sp_after_ss = sp_after_ip + 8; - U64 rflags_value = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp_after_ss, &is_stale, &rflags_value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - U64 sp_after_rflags = sp_after_ss + 8; - U64 sp_value = 0; - if(!ctrl_process_memory_read_struct(process_handle, sp_after_rflags, &is_stale, &sp_value, endt_us) || - is_stale) - { - keep_parsing = 0; - is_good = 0; - break; - } - - // rjf: commit registers - regs->rip.u64 = ip_value; - regs->ss.u16 = ss_value; - regs->rflags.u64 = rflags_value; - regs->rsp.u64 = sp_value; - - // rjf: mark machine frame - xdata_unwind_did_machframe = 1; - }break; - } - } - } - - //- rjf: iterate to next pdata - if(keep_parsing) - { - U32 flags = PE_UNWIND_INFO_FLAGS_FROM_HDR(unwind_info.header); - if(!(flags & PE_UnwindInfoFlag_CHAINED)) - { - break; - } - U64 code_count_rounded = AlignPow2(unwind_info.codes_num, sizeof(PE_UnwindCode)); - U64 code_size = code_count_rounded*sizeof(PE_UnwindCode); - U64 chained_pdata_off = unwind_info_off + sizeof(PE_UnwindInfo) + code_size; - last_pdata = pdata; - pdata = push_array(scratch.arena, PE_IntelPdata, 1); - if(!ctrl_process_memory_read_struct(process_handle, module_base_vaddr+chained_pdata_off, &is_stale, pdata, endt_us) || - is_stale) - { - is_good = 0; - break; - } - } - } - } - - ////////////////////////////// - //- rjf: no pdata, or didn't do machframe in xdata unwind -> unwind by reading stack pointer - // - if(!first_pdata || (!has_pdata_and_in_epilog && !xdata_unwind_did_machframe)) ProfScope("no pdata, or didn't do machframe in xdata unwind -> unwind by reading stack pointer") - { - // rjf: read rip from stack pointer - U64 rsp = regs->rsp.u64; - U64 new_rip = 0; - if(!ctrl_process_memory_read_struct(process_handle, rsp, &is_stale, &new_rip, endt_us) || - is_stale) - { - is_good = 0; - } - - // rjf: commit registers - if(is_good) - { - U64 new_rsp = rsp + 8; - regs->rip.u64 = new_rip; - regs->rsp.u64 = new_rsp; - } - } - - ////////////////////////////// - //- rjf: fill & return - // - scratch_end(scratch); - CTRL_UnwindStepResult result = {0}; - if(!is_good) {result.flags |= CTRL_UnwindFlag_Error;} - if(is_stale) {result.flags |= CTRL_UnwindFlag_Stale;} - return result; -} - -//- rjf: abstracted unwind step - -internal CTRL_UnwindStepResult -ctrl_unwind_step(CTRL_Handle process, CTRL_Handle module, U64 module_base_vaddr, Arch arch, void *reg_block, U64 endt_us) -{ - CTRL_UnwindStepResult result = {0}; - switch(arch) - { - default:{}break; - case Arch_x64: - { - result = ctrl_unwind_step__pe_x64(process, module, module_base_vaddr, (REGS_RegBlockX64 *)reg_block, endt_us); - }break; - } - return result; -} - -//- rjf: abstracted full unwind - -internal CTRL_Unwind -ctrl_unwind_from_thread(Arena *arena, CTRL_EntityCtx *ctx, CTRL_Handle thread, U64 endt_us) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - CTRL_Unwind unwind = {0}; - unwind.flags |= CTRL_UnwindFlag_Error; - - //- rjf: unpack args - CTRL_Entity *thread_entity = ctrl_entity_from_handle(ctx, thread); - CTRL_Entity *process_entity = thread_entity->parent; - Arch arch = thread_entity->arch; - U64 arch_reg_block_size = regs_block_size_from_arch(arch); - - //- rjf: grab initial register block - void *regs_block = ctrl_reg_block_from_thread(scratch.arena, ctx, thread); - B32 regs_block_good = (arch != Arch_Null && regs_block != 0); - - //- rjf: loop & unwind - CTRL_UnwindFrameNode *first_frame_node = 0; - CTRL_UnwindFrameNode *last_frame_node = 0; - U64 frame_node_count = 0; - if(regs_block_good) - { - unwind.flags = 0; - for(;;) - { - // rjf: regs -> rip*module - U64 rip = regs_rip_from_arch_block(arch, regs_block); - U64 rsp = regs_rsp_from_arch_block(arch, regs_block); - CTRL_Entity *module = &ctrl_entity_nil; - for(CTRL_Entity *m = process_entity->first; m != &ctrl_entity_nil; m = m->next) - { - if(m->kind == CTRL_EntityKind_Module && contains_1u64(m->vaddr_range, rip)) - { - module = m; - break; - } - } - - // rjf: cancel on 0 rip/rsp - if(rsp == 0 && rip == 0) - { - break; - } - - // rjf: valid step -> push frame - CTRL_UnwindFrameNode *frame_node = push_array(scratch.arena, CTRL_UnwindFrameNode, 1); - CTRL_UnwindFrame *frame = &frame_node->v; - frame->regs = push_array_no_zero(arena, U8, arch_reg_block_size); - MemoryCopy(frame->regs, regs_block, arch_reg_block_size); - DLLPushBack(first_frame_node, last_frame_node, frame_node); - frame_node_count += 1; - - // rjf: unwind one step - CTRL_UnwindStepResult step = ctrl_unwind_step(process_entity->handle, module->handle, module->vaddr_range.min, arch, regs_block, endt_us); - unwind.flags |= step.flags; - if(step.flags & CTRL_UnwindFlag_Error || - regs_rsp_from_arch_block(arch, regs_block) == 0 || - regs_rip_from_arch_block(arch, regs_block) == 0 || - (regs_rsp_from_arch_block(arch, regs_block) == rsp && - regs_rip_from_arch_block(arch, regs_block) == rip)) - { - break; - } - } - } - - //- rjf: bake frames list into result array - { - unwind.frames.count = frame_node_count; - unwind.frames.v = push_array(arena, CTRL_UnwindFrame, unwind.frames.count); - U64 idx = 0; - for(CTRL_UnwindFrameNode *n = first_frame_node; n != 0; n = n->next, idx += 1) - { - unwind.frames.v[idx] = n->v; - } - } - - scratch_end(scratch); - ProfEnd(); - return unwind; -} - -//////////////////////////////// -//~ rjf: Call Stack Building Functions - -internal CTRL_CallStack -ctrl_call_stack_from_unwind(Arena *arena, CTRL_Entity *process, CTRL_Unwind *base_unwind) -{ - Temp scratch = scratch_begin(&arena, 1); - Access *access = access_open(); - Arch arch = process->arch; - CTRL_CallStack result = {0}; - { - typedef struct FrameNode FrameNode; - struct FrameNode - { - FrameNode *next; - CTRL_CallStackFrame v; - }; - - //- rjf: gather all frames - FrameNode *first_frame = 0; - FrameNode *last_frame = 0; - U64 frame_count = 0; - for(U64 base_frame_idx = 0; base_frame_idx < base_unwind->frames.count; base_frame_idx += 1) - { - // rjf: unpack - CTRL_UnwindFrame *src = &base_unwind->frames.v[base_frame_idx]; - U64 rip_vaddr = regs_rip_from_arch_block(arch, src->regs); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); - U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - RDI_Scope *scope = rdi_scope_from_voff(rdi, rip_voff); - - // rjf: build inline frames (minus parent & inline depth) - FrameNode *first_inline_frame = 0; - FrameNode *last_inline_frame = 0; - U64 inline_frame_count = 0; - for(RDI_Scope *s = scope; - s->inline_site_idx != 0; - s = rdi_element_from_name_idx(rdi, Scopes, s->parent_scope_idx)) - { - FrameNode *dst_inline = push_array(scratch.arena, FrameNode, 1); - if(first_inline_frame == 0) - { - first_inline_frame = dst_inline; - } - last_inline_frame = dst_inline; - SLLQueuePush(first_frame, last_frame, dst_inline); - dst_inline->v.unwind_count = base_frame_idx; - dst_inline->v.regs = src->regs; - frame_count += 1; - inline_frame_count += 1; - } - - // rjf: build concrete frame - FrameNode *dst_base = push_array(scratch.arena, FrameNode, 1); - SLLQueuePush(first_frame, last_frame, dst_base); - dst_base->v.unwind_count = base_frame_idx; - dst_base->v.regs = src->regs; - frame_count += 1; - - // rjf: hook up inline frames to point to concrete frame, and to account for inline depth - U64 inline_frame_idx = 0; - for(FrameNode *inline_frame = first_inline_frame; inline_frame != 0; inline_frame = inline_frame->next, inline_frame_idx += 1) - { - inline_frame->v.inline_depth = inline_frame_count - inline_frame_idx; - if(inline_frame == last_inline_frame) - { - break; - } - } - } - - //- rjf: package - result.frames_count = frame_count; - result.frames = push_array(arena, CTRL_CallStackFrame, result.frames_count); - result.concrete_frames_count = base_unwind->frames.count; - result.concrete_frames = push_array(arena, CTRL_CallStackFrame *, result.concrete_frames_count); - { - U64 idx = 0; - U64 concrete_idx = 0; - for(FrameNode *n = first_frame; n != 0; n = n->next, idx += 1) - { - MemoryCopyStruct(&result.frames[idx], &n->v); - if(n->v.inline_depth == 0 && concrete_idx < result.concrete_frames_count) - { - result.concrete_frames[concrete_idx] = &result.frames[idx]; - concrete_idx += 1; - } - } - } - } - access_close(access); - scratch_end(scratch); - return result; -} - -internal CTRL_CallStackFrame * -ctrl_call_stack_frame_from_unwind_and_inline_depth(CTRL_CallStack *call_stack, U64 unwind_count, U64 inline_depth) -{ - CTRL_CallStackFrame *f = 0; - { - U64 base_frame_idx = 0; - for(U64 idx = 0; idx < call_stack->frames_count; idx += 1) - { - if(call_stack->frames[idx].inline_depth == 0) - { - if(base_frame_idx == unwind_count) - { - f = &call_stack->frames[idx]; - break; - } - base_frame_idx += 1; - } - } - if(f != 0 && call_stack->frames + inline_depth < f) - { - f -= inline_depth; - } - } - return f; -} - -//////////////////////////////// -//~ rjf: Halting All Attached Processes - -internal void -ctrl_halt(void) -{ - dmn_halt(0, 0); -} - -//////////////////////////////// -//~ rjf: Shared Accessor Functions - -//- rjf: generation counters - -internal U64 -ctrl_run_gen(void) -{ - U64 result = ins_atomic_u64_eval(&ctrl_state->run_gen); - return result; -} - -internal U64 -ctrl_mem_gen(void) -{ - U64 result = ins_atomic_u64_eval(&ctrl_state->mem_gen); - return result; -} - -internal U64 -ctrl_reg_gen(void) -{ - U64 result = ins_atomic_u64_eval(&ctrl_state->reg_gen); - return result; -} - -//- rjf: name -> register/alias hash tables, for eval - -internal E_String2NumMap * -ctrl_string2reg_from_arch(Arch arch) -{ - return &ctrl_state->arch_string2reg_tables[arch]; -} - -internal E_String2NumMap * -ctrl_string2alias_from_arch(Arch arch) -{ - return &ctrl_state->arch_string2alias_tables[arch]; -} - -//////////////////////////////// -//~ rjf: Control-Thread Functions - -//- rjf: user -> control thread communication - -internal B32 -ctrl_u2c_push_msgs(CTRL_MsgList *msgs, U64 endt_us) -{ - Temp scratch = scratch_begin(0, 0); - String8 msgs_srlzed_baked = ctrl_serialized_string_from_msg_list(scratch.arena, msgs); - B32 good = 0; - MutexScope(ctrl_state->u2c_ring_mutex) for(;;) - { - U64 unconsumed_size = (ctrl_state->u2c_ring_write_pos-ctrl_state->u2c_ring_read_pos); - U64 available_size = ctrl_state->u2c_ring_size-unconsumed_size; - U64 needed_size = sizeof(msgs_srlzed_baked.size) + msgs_srlzed_baked.size; - if(available_size >= needed_size) - { - ctrl_state->u2c_ring_write_pos += ring_write_struct(ctrl_state->u2c_ring_base, ctrl_state->u2c_ring_size, ctrl_state->u2c_ring_write_pos, &msgs_srlzed_baked.size); - ctrl_state->u2c_ring_write_pos += ring_write(ctrl_state->u2c_ring_base, ctrl_state->u2c_ring_size, ctrl_state->u2c_ring_write_pos, msgs_srlzed_baked.str, msgs_srlzed_baked.size); - good = 1; - break; - } - if(os_now_microseconds() >= endt_us) - { - break; - } - cond_var_wait(ctrl_state->u2c_ring_cv, ctrl_state->u2c_ring_mutex, endt_us); - } - if(good) - { - cond_var_broadcast(ctrl_state->u2c_ring_cv); - } - scratch_end(scratch); - return good; -} - -internal CTRL_MsgList -ctrl_u2c_pop_msgs(Arena *arena) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 msgs_srlzed_baked = {0}; - MutexScope(ctrl_state->u2c_ring_mutex) for(;;) - { - U64 unconsumed_size = (ctrl_state->u2c_ring_write_pos-ctrl_state->u2c_ring_read_pos); - if(unconsumed_size >= sizeof(U64)) - { - U64 size_to_decode = 0; - ctrl_state->u2c_ring_read_pos += ring_read_struct(ctrl_state->u2c_ring_base, ctrl_state->u2c_ring_size, ctrl_state->u2c_ring_read_pos, &size_to_decode); - msgs_srlzed_baked.size = size_to_decode; - msgs_srlzed_baked.str = push_array_no_zero(scratch.arena, U8, msgs_srlzed_baked.size); - ctrl_state->u2c_ring_read_pos += ring_read(ctrl_state->u2c_ring_base, ctrl_state->u2c_ring_size, ctrl_state->u2c_ring_read_pos, msgs_srlzed_baked.str, size_to_decode); - break; - } - cond_var_wait(ctrl_state->u2c_ring_cv, ctrl_state->u2c_ring_mutex, max_U64); - } - cond_var_broadcast(ctrl_state->u2c_ring_cv); - CTRL_MsgList msgs = ctrl_msg_list_from_serialized_string(arena, msgs_srlzed_baked); - scratch_end(scratch); - return msgs; -} - -//- rjf: control -> user thread communication - -internal void -ctrl_c2u_push_events(CTRL_EventList *events) -{ - if(events->count != 0) ProfScope("ctrl_c2u_push_events") - { - MutexScopeW(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) - { - ctrl_entity_store_apply_events(ctrl_state->ctrl_thread_entity_store, events); - } - for(CTRL_EventNode *n = events->first; n != 0; n = n ->next) - { - Temp scratch = scratch_begin(0, 0); - String8 event_srlzed = ctrl_serialized_string_from_event(scratch.arena, &n->v, ctrl_state->c2u_ring_size-sizeof(U64)); - MutexScope(ctrl_state->c2u_ring_mutex) for(;;) - { - U64 unconsumed_size = (ctrl_state->c2u_ring_write_pos-ctrl_state->c2u_ring_read_pos); - U64 available_size = ctrl_state->c2u_ring_size-unconsumed_size; - U64 needed_size = sizeof(event_srlzed.size) + event_srlzed.size; - if(available_size >= needed_size) - { - ctrl_state->c2u_ring_write_pos += ring_write_struct(ctrl_state->c2u_ring_base, ctrl_state->c2u_ring_size, ctrl_state->c2u_ring_write_pos, &event_srlzed.size); - ctrl_state->c2u_ring_write_pos += ring_write(ctrl_state->c2u_ring_base, ctrl_state->c2u_ring_size, ctrl_state->c2u_ring_write_pos, event_srlzed.str, event_srlzed.size); - break; - } - cond_var_wait(ctrl_state->c2u_ring_cv, ctrl_state->c2u_ring_mutex, os_now_microseconds()+100); - } - cond_var_broadcast(ctrl_state->c2u_ring_cv); - if(ctrl_state->wakeup_hook != 0) - { - ctrl_state->wakeup_hook(); - } - scratch_end(scratch); - } - } -} - -internal CTRL_EventList -ctrl_c2u_pop_events(Arena *arena) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - CTRL_EventList events = {0}; - MutexScope(ctrl_state->c2u_ring_mutex) for(;;) - { - U64 unconsumed_size = (ctrl_state->c2u_ring_write_pos-ctrl_state->c2u_ring_read_pos); - if(unconsumed_size >= sizeof(U64)) - { - U64 size_to_decode = 0; - ctrl_state->c2u_ring_read_pos += ring_read_struct(ctrl_state->c2u_ring_base, ctrl_state->c2u_ring_size, ctrl_state->c2u_ring_read_pos, &size_to_decode); - String8 event_srlzed = {0}; - event_srlzed.size = size_to_decode; - event_srlzed.str = push_array_no_zero(scratch.arena, U8, event_srlzed.size); - ctrl_state->c2u_ring_read_pos += ring_read(ctrl_state->c2u_ring_base, ctrl_state->c2u_ring_size, ctrl_state->c2u_ring_read_pos, event_srlzed.str, event_srlzed.size); - CTRL_Event *new_event = ctrl_event_list_push(arena, &events); - *new_event = ctrl_event_from_serialized_string(arena, event_srlzed); - } - else - { - break; - } - } - cond_var_broadcast(ctrl_state->c2u_ring_cv); - scratch_end(scratch); - ProfEnd(); - return events; -} - -//- rjf: entry point - -internal void -ctrl_thread__entry_point(void *p) -{ - ThreadNameF("ctrl_thread"); - ProfBeginFunction(); - DMN_CtrlCtx *ctrl_ctx = dmn_ctrl_begin(); - log_select(ctrl_state->ctrl_thread_log); - - //- rjf: loop - Temp scratch = scratch_begin(0, 0); - for(;;) - { - temp_end(scratch); - log_scope_begin(); - - //- rjf: get next messages - CTRL_MsgList msgs = ctrl_u2c_pop_msgs(scratch.arena); - - //- rjf: process messages - DMN_CtrlExclusiveAccessScope - { - ins_atomic_u64_eval_assign(&ctrl_state->ctrl_thread_run_state, 1); - for(CTRL_MsgNode *msg_n = msgs.first; msg_n != 0; msg_n = msg_n->next) - { - CTRL_Msg *msg = &msg_n->v; - { - log_infof("user2ctrl_msg:{kind:\"%S\"}\n", ctrl_string_from_msg_kind(msg->kind)); - } - - //- rjf: reset per-message state - ProfScope("reset per-message state") - { - arena_clear(ctrl_state->ctrl_thread_msg_process_arena); - ctrl_state->module_req_cache_slots_count = 4096; - ctrl_state->module_req_cache_slots = push_array(ctrl_state->ctrl_thread_msg_process_arena, CTRL_ModuleReqCacheNode *, ctrl_state->module_req_cache_slots_count); - MemoryZeroStruct(&ctrl_state->msg_user_bp_touched_files); - MemoryZeroStruct(&ctrl_state->msg_user_bp_touched_symbols); - MemoryCopyArray(ctrl_state->exception_code_filters, msg->exception_code_filters); - } - - //- rjf: gather all touched symbols by user breakpoints - { - Temp scratch = scratch_begin(0, 0); - for(CTRL_UserBreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) - { - if(n->v.kind != CTRL_UserBreakpointKind_Expression) - { - continue; - } - E_Parse addr_parse = e_push_parse_from_string(scratch.arena, n->v.string); - E_Parse cnd_parse = e_push_parse_from_string(scratch.arena, n->v.condition); - E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; - for EachElement(idx, exprs) - { - typedef struct ExprWalkTask ExprWalkTask; - struct ExprWalkTask - { - ExprWalkTask *next; - E_Expr *expr; - }; - ExprWalkTask start_task = {0, exprs[idx]}; - ExprWalkTask *first_task = &start_task; - for(ExprWalkTask *t = first_task; t != 0; t = t->next) - { - E_Expr *expr = t->expr; - if(expr->ref != &e_expr_nil) - { - expr = expr->ref; - } - if(expr->kind == E_ExprKind_LeafIdentifier) - { - str8_list_push(ctrl_state->ctrl_thread_msg_process_arena, &ctrl_state->msg_user_bp_touched_symbols, expr->string); - } - if(expr->next != &e_expr_nil) - { - ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); - task->expr = expr->next; - task->next = t->next; - t->next = task; - } - if(expr->first != &e_expr_nil) - { - ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); - task->expr = expr->first; - task->next = t->next; - t->next = task; - } - } - } - } - scratch_end(scratch); - } - - //- rjf: gather all touched files by user breakpoints - for(CTRL_UserBreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) - { - if(n->v.kind != CTRL_UserBreakpointKind_FileNameAndLineColNumber) - { - continue; - } - str8_list_push(ctrl_state->ctrl_thread_msg_process_arena, &ctrl_state->msg_user_bp_touched_files, n->v.string); - } - - //- rjf: process message - switch(msg->kind) - { - case CTRL_MsgKind_Null: - case CTRL_MsgKind_COUNT:{}break; - - //- rjf: target operations - case CTRL_MsgKind_Launch: {ctrl_thread__launch (ctrl_ctx, msg);}break; - case CTRL_MsgKind_Attach: {ctrl_thread__attach (ctrl_ctx, msg);}break; - case CTRL_MsgKind_Kill: {ctrl_thread__kill (ctrl_ctx, msg);}break; - case CTRL_MsgKind_KillAll: {ctrl_thread__kill_all (ctrl_ctx, msg);}break; - case CTRL_MsgKind_Detach: {ctrl_thread__detach (ctrl_ctx, msg);}break; - case CTRL_MsgKind_Run: {ctrl_thread__run (ctrl_ctx, msg);}break; - case CTRL_MsgKind_SingleStep: {ctrl_thread__single_step (ctrl_ctx, msg);}break; - - //- rjf: configuration - case CTRL_MsgKind_SetUserEntryPoints: - { - arena_clear(ctrl_state->user_entry_point_arena); - MemoryZeroStruct(&ctrl_state->user_entry_points); - for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) - { - str8_list_push(ctrl_state->user_entry_point_arena, &ctrl_state->user_entry_points, n->string); - } - }break; - case CTRL_MsgKind_SetModuleDebugInfoPath: - { - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - String8 path = msg->path; - CTRL_Entity *module = ctrl_entity_from_handle(entity_ctx, msg->entity); - CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); - DI_Key old_dbgi_key = di_key_from_path_timestamp(debug_info_path->string, debug_info_path->timestamp); - di_close(old_dbgi_key, 0); - MutexScopeW(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) - { - ctrl_entity_equip_string(ctrl_state->ctrl_thread_entity_store, debug_info_path, path_normalized_from_string(scratch.arena, path)); - } - U64 new_dbgi_timestamp = os_properties_from_file_path(path).modified; - debug_info_path->timestamp = new_dbgi_timestamp; - DI_Key new_dbgi_key = di_key_from_path_timestamp(debug_info_path->string, new_dbgi_timestamp); - di_open(new_dbgi_key); - CTRL_EventList evts = {0}; - CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); - evt->kind = CTRL_EventKind_ModuleDebugInfoPathChange; - evt->entity = msg->entity; - evt->string = path; - evt->timestamp = new_dbgi_timestamp; - ctrl_c2u_push_events(&evts); - }break; - case CTRL_MsgKind_FreezeThread: - { - CTRL_EventList evts = {0}; - CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); - evt->kind = CTRL_EventKind_ThreadFrozen; - evt->entity = msg->entity; - ctrl_c2u_push_events(&evts); - }break; - case CTRL_MsgKind_ThawThread: - { - CTRL_EventList evts = {0}; - CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); - evt->kind = CTRL_EventKind_ThreadThawed; - evt->entity = msg->entity; - ctrl_c2u_push_events(&evts); - }break; - } - } - ins_atomic_u64_eval_assign(&ctrl_state->ctrl_thread_run_state, 0); - } - ins_atomic_u64_inc_eval(&ctrl_state->run_gen); - ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); - ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); - - //- rjf: update thread register cache - ProfScope("update thread register cache") - { - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_EntityArray threads = ctrl_entity_array_from_kind(entity_ctx, CTRL_EntityKind_Thread); - REGS_RegBlockX64 *blocks = push_array(scratch.arena, REGS_RegBlockX64, threads.count); - { - for EachIndex(idx, threads.count) - { - Temp scratch = scratch_begin(0, 0); - ctrl_reg_block_from_thread(scratch.arena, entity_ctx, threads.v[idx]->handle); - scratch_end(scratch); - } - } - } - - //- rjf: gather & output logs - ctrl_thread__end_and_flush_log(); - } - - scratch_end(scratch); - ProfEnd(); -} - -//- rjf: breakpoint resolution - -internal void -ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope *eval_scope, CTRL_Handle process, CTRL_Handle module, CTRL_UserBreakpointList *user_bps, DMN_TrapChunkList *traps_out) -{ - if(user_bps->first == 0) { return; } - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - Access *access = eval_scope->access; - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_Entity *module_entity = ctrl_entity_from_handle(entity_ctx, module); - CTRL_Entity *debug_info_path_entity = ctrl_entity_child_from_kind(module_entity, CTRL_EntityKind_DebugInfoPath); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module_entity); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - U64 base_vaddr = module_entity->vaddr_range.min; - for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) - { - CTRL_UserBreakpoint *bp = &n->v; - switch(bp->kind) - { - default:{}break; - - //- rjf: file:line-based breakpoints - case CTRL_UserBreakpointKind_FileNameAndLineColNumber: - { - // rjf: unpack & normalize - TxtPt pt = bp->pt; - String8 filename = bp->string; - String8 filename_normalized = push_str8_copy(scratch.arena, filename); - for(U64 idx = 0; idx < filename_normalized.size; idx += 1) - { - filename_normalized.str[idx] = lower_from_char(filename_normalized.str[idx]); - filename_normalized.str[idx] = correct_slash_from_char(filename_normalized.str[idx]); - } - - // rjf: filename -> src_id - U32 src_id = 0; - { - RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); - if(mapptr != 0) - { - RDI_ParsedNameMap map = {0}; - rdi_parsed_from_name_map(rdi, mapptr, &map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, filename_normalized.str, filename_normalized.size); - if(node != 0) - { - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - src_id = ids[0]; - } - } - } - } - - // rjf: src_id * pt -> push - if(src_id != 0) - { - RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); - RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); - RDI_ParsedSourceLineMap line_map = {0}; - rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); - U32 voff_count = 0; - U64 *voffs = rdi_line_voffs_from_num(&line_map, pt.line, &voff_count); - for(U32 i = 0; i < voff_count; i += 1) - { - U64 vaddr = voffs[i] + base_vaddr; - DMN_Trap trap = {process.dmn_handle, vaddr, (U64)bp}; - dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); - } - } - }break; - - //- rjf: expression-based breakpoints - case CTRL_UserBreakpointKind_Expression: - { - String8 expr = bp->string; - E_Value value = e_value_from_string(expr); - if(value.u64 != 0 || bp->flags != 0) - { - DMN_Trap trap = {process.dmn_handle, value.u64, (U64)bp}; - trap.flags = ctrl_dmn_trap_flags_from_user_breakpoint_flags(bp->flags); - trap.size = bp->size; - dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); - } - }break; - } - } - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__append_resolved_process_user_bp_traps(Arena *arena, CTRL_EvalScope *eval_scope, CTRL_Handle process, CTRL_UserBreakpointList *user_bps, DMN_TrapChunkList *traps_out) -{ - for(CTRL_UserBreakpointNode *n = user_bps->first; n != 0; n = n->next) - { - CTRL_UserBreakpoint *bp = &n->v; - if(bp->kind == CTRL_UserBreakpointKind_Expression) - { - String8 expr = bp->string; - E_Value value = e_value_from_string(expr); - if(value.u64 != 0 || bp->flags != 0) - { - DMN_Trap trap = {process.dmn_handle, value.u64, (U64)bp}; - trap.flags = ctrl_dmn_trap_flags_from_user_breakpoint_flags(bp->flags); - trap.size = bp->size; - dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); - } - } - } -} - -internal void -ctrl_thread__append_program_defined_bp_traps(Arena *arena, CTRL_Entity *bp, DMN_TrapChunkList *traps_out) -{ - CTRL_Entity *process = bp->parent; - DMN_Trap trap = - { - .process = process->handle.dmn_handle, - .vaddr = bp->vaddr_range.min, - .id = ((U64)bp|bit64), - .flags = ctrl_dmn_trap_flags_from_user_breakpoint_flags(bp->bp_flags), - .size = (U32)dim_1u64(bp->vaddr_range), - }; - dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); -} - -//- rjf: module lifetime open/close work - -internal void -ctrl_thread__module_open(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_range, String8 path) -{ - ////////////////////////////// - //- rjf: parse module image info - // - Arena *arena = arena_alloc(); - PE_IntelPdata *pdatas = 0; - U64 pdatas_count = 0; - U64 entry_point_voff = 0; - Rng1U64 tls_vaddr_range = {0}; - U32 pdb_dbg_time = 0; - U32 pdb_dbg_age = 0; - Guid pdb_dbg_guid = {0}; - String8 pdb_dbg_path = {0}; - U32 rdi_dbg_time = 0; - Guid rdi_dbg_guid = {0}; - String8 exe_dbg_path = {0}; - String8 rdi_dbg_path = {0}; - String8 raddbg_data = {0}; - Rng1U64 raddbg_section_voff_range = r1u64(0, 0); - Rng1U64 raddbg_is_attached_section_voff_range = r1u64(0, 0); - ProfScope("unpack relevant PE info") - { - B32 is_valid = 1; - - //- rjf: read DOS header - PE_DosHeader dos_header = {0}; - if(is_valid) - { - if(!dmn_process_read_struct(process.dmn_handle, vaddr_range.min, &dos_header) || - dos_header.magic != PE_DOS_MAGIC) - { - is_valid = 0; - } - } - - //- rjf: read PE magic - U32 pe_magic = 0; - if(is_valid) - { - if(!dmn_process_read_struct(process.dmn_handle, vaddr_range.min + dos_header.coff_file_offset, &pe_magic) || - pe_magic != PE_MAGIC) - { - is_valid = 0; - } - } - - //- rjf: read COFF header - U64 file_header_off = dos_header.coff_file_offset + sizeof(pe_magic); - COFF_FileHeader file_header = {0}; - if(is_valid) - { - if(!dmn_process_read_struct(process.dmn_handle, vaddr_range.min + file_header_off, &file_header)) - { - is_valid = 0; - } - } - - //- rjf: unpack range of optional extension header - U32 opt_ext_size = file_header.optional_header_size; - Rng1U64 opt_ext_off_range = r1u64(file_header_off + sizeof(COFF_FileHeader), - file_header_off + sizeof(COFF_FileHeader) + opt_ext_size); - - //- rjf: read optional header - U64 entry_point = 0; - U32 data_dir_count = 0; - if(opt_ext_size > 0) - { - Temp scratch = scratch_begin(0, 0); - - // rjf: read magic number - U16 opt_ext_magic = 0; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min, &opt_ext_magic); - - // rjf: read info - U32 reported_data_dir_offset = 0; - U32 reported_data_dir_count = 0; - switch(opt_ext_magic) - { - case PE_PE32_MAGIC: - { - PE_OptionalHeader32 pe_optional = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min, &pe_optional); - entry_point = pe_optional.entry_point_va; - reported_data_dir_offset = sizeof(pe_optional); - reported_data_dir_count = pe_optional.data_dir_count; - }break; - case PE_PE32PLUS_MAGIC: - { - PE_OptionalHeader32Plus pe_optional = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min, &pe_optional); - entry_point = pe_optional.entry_point_va; - reported_data_dir_offset = sizeof(pe_optional); - reported_data_dir_count = pe_optional.data_dir_count; - }break; - } - - // rjf: find number of data directories - U32 data_dir_max = (opt_ext_size - reported_data_dir_offset) / sizeof(PE_DataDirectory); - data_dir_count = ClampTop(reported_data_dir_count, data_dir_max); - - // rjf: grab pdatas from exceptions section - if(data_dir_count > PE_DataDirectoryIndex_EXCEPTIONS) - { - PE_DataDirectory dir = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXCEPTIONS, &dir); - Rng1U64 pdatas_voff_range = r1u64((U64)dir.virt_off, (U64)dir.virt_off + (U64)dir.virt_size); - pdatas_count = dim_1u64(pdatas_voff_range)/sizeof(PE_IntelPdata); - pdatas = push_array(arena, PE_IntelPdata, pdatas_count); - dmn_process_read(process.dmn_handle, r1u64(vaddr_range.min + pdatas_voff_range.min, vaddr_range.min + pdatas_voff_range.max), pdatas); - } - - // rjf: extract tls header - PE_TLSHeader64 tls_header = {0}; - if(data_dir_count > PE_DataDirectoryIndex_TLS) - { - PE_DataDirectory dir = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_TLS, &dir); - Rng1U64 tls_voff_range = r1u64((U64)dir.virt_off, (U64)dir.virt_off + (U64)dir.virt_size); - switch(file_header.machine) - { - default:{}break; - case COFF_MachineType_X86: - { - PE_TLSHeader32 tls_header32 = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + tls_voff_range.min, &tls_header32); - tls_header.raw_data_start = (U64)tls_header32.raw_data_start; - tls_header.raw_data_end = (U64)tls_header32.raw_data_end; - tls_header.index_address = (U64)tls_header32.index_address; - tls_header.callbacks_address = (U64)tls_header32.callbacks_address; - tls_header.zero_fill_size = (U64)tls_header32.zero_fill_size; - tls_header.characteristics = (U64)tls_header32.characteristics; - }break; - case COFF_MachineType_X64: - { - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + tls_voff_range.min, &tls_header); - }break; - } - } - - // rjf: extract sections - U64 sec_array_off = opt_ext_off_range.max; - U64 sec_count = file_header.section_count; - COFF_SectionHeader *sec = push_array(scratch.arena, COFF_SectionHeader, sec_count); - dmn_process_read(process.dmn_handle, r1u64(vaddr_range.min + sec_array_off, vaddr_range.min + sec_array_off + sec_count*sizeof(COFF_SectionHeader)), sec); - - // rjf: grab entry point vaddr - entry_point_voff = entry_point; - - // rjf: calculate TLS vaddr range - tls_vaddr_range = r1u64(tls_header.index_address, tls_header.index_address+sizeof(U32)); - - // rjf: grab data about debug info - if(data_dir_count > PE_DataDirectoryIndex_DEBUG) - { - // rjf: read data dir - PE_DataDirectory dir = {0}; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, &dir); - - U64 dbg_dir_count = dir.virt_size / sizeof(PE_DebugDirectory); - for(U64 dbg_dir_idx = 0; dbg_dir_idx < dbg_dir_count; dbg_dir_idx += 1) - { - // rjf: read debug directory - U64 dir_addr = vaddr_range.min + dir.virt_off + dbg_dir_idx * sizeof(PE_DebugDirectory); - PE_DebugDirectory dbg_data = {0}; - dmn_process_read_struct(process.dmn_handle, dir_addr, &dbg_data); - - // rjf: extract external file info from codeview header - if(dbg_data.type == PE_DebugDirectoryType_CODEVIEW) - { - U32 cv_magic = 0; - dmn_process_read_struct(process.dmn_handle, vaddr_range.min + dbg_data.voff, &cv_magic); - switch(cv_magic) - { - default:break; - case PE_CODEVIEW_PDB20_MAGIC: - { - PE_CvHeaderPDB20 cv; - U64 read_size = dmn_process_read_struct(process.dmn_handle, vaddr_range.min+dbg_data.voff, &cv); - if(read_size == sizeof(cv)) - { - pdb_dbg_time = cv.time_stamp; - pdb_dbg_age = cv.age; - pdb_dbg_path = dmn_process_read_cstring(arena, process.dmn_handle, vaddr_range.min + dbg_data.voff + sizeof(cv)); - } - }break; - case PE_CODEVIEW_PDB70_MAGIC: - { - PE_CvHeaderPDB70 cv; - U64 read_size = dmn_process_read_struct(process.dmn_handle, vaddr_range.min + dbg_data.voff, &cv); - if(read_size == sizeof(cv)) - { - pdb_dbg_guid = cv.guid; - pdb_dbg_age = cv.age; - pdb_dbg_path = dmn_process_read_cstring(arena, process.dmn_handle, vaddr_range.min + dbg_data.voff + sizeof(cv)); - } - }break; - case PE_CODEVIEW_RDI_MAGIC: - { - PE_CvHeaderRDI cv; - U64 read_size = dmn_process_read_struct(process.dmn_handle, vaddr_range.min + dbg_data.voff, &cv); - if(read_size == sizeof(cv)) - { - rdi_dbg_guid = cv.guid; - rdi_dbg_path = dmn_process_read_cstring(arena, process.dmn_handle, vaddr_range.min + dbg_data.voff + sizeof(cv)); - } - }break; - } - } - } - } - - // rjf: look for DWARF debug info - { - U64 symbol_array_off = file_header.symbol_table_foff; - U64 symbol_count = file_header.symbol_count; - if(symbol_array_off != 0) - { - exe_dbg_path = path; - } - } - - // rjf: extract copy of module's raddbg data - { - for EachIndex(idx, sec_count) - { - String8 section_name = str8_cstring((char *)sec[idx].name); - if(str8_match(section_name, str8_lit(".raddbg"), 0)) - { - raddbg_section_voff_range.min = sec[idx].voff; - raddbg_section_voff_range.max = sec[idx].voff + sec[idx].vsize; - } - else if(str8_match(section_name, str8_lit(".rdbgia"), 0)) - { - raddbg_is_attached_section_voff_range.min = sec[idx].voff; - raddbg_is_attached_section_voff_range.max = sec[idx].voff + sec[idx].vsize; - } - } - raddbg_data.size = dim_1u64(raddbg_section_voff_range); - raddbg_data.str = push_array(arena, U8, raddbg_data.size); - dmn_process_read(process.dmn_handle, r1u64(vaddr_range.min + raddbg_section_voff_range.min, - vaddr_range.min + raddbg_section_voff_range.max), raddbg_data.str); - } - - // rjf: if we have a "raddbg is attached" section, mark the first byte as 1, to signify attachment - if(raddbg_is_attached_section_voff_range.max != raddbg_is_attached_section_voff_range.min) - { - U8 new_value = 1; - dmn_process_write_struct(process.dmn_handle, vaddr_range.min + raddbg_is_attached_section_voff_range.min, &new_value); - } - - scratch_end(scratch); - } - } - - ////////////////////////////// - //- rjf: pick default initial debug info path - // - String8 initial_debug_info_path = str8_zero(); - { - Temp scratch = scratch_begin(0, 0); - String8 exe_folder = str8_chop_last_slash(path); - String8List dbg_path_candidates = {0}; - // - //~ TODO(rjf): @linux_port PLEASE READ RYAN vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - // - // TODO(rjf): trying "exe_folder/embedded_path" as the first option is only a valid - // heuristic on Windows, because we know that two absolute paths concatted together - // are necessarily invalid. however, on Linux, this is not the case - you could stitch - // two paths together and get a third path that is completely valid. so, in that case, - // we will need to infer if the path is relative, and then use either the embedded - // path as-is, or the exe-relative-path accordingly, depending on that. - // - if(rdi_dbg_path.size != 0) - { - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S/%S", exe_folder, rdi_dbg_path); - str8_list_push(scratch.arena, &dbg_path_candidates, rdi_dbg_path); - } - if(exe_dbg_path.size != 0) - { - str8_list_push(scratch.arena, &dbg_path_candidates, path); - } - if(pdb_dbg_path.size != 0) - { - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S/%S", exe_folder, pdb_dbg_path); - str8_list_push(scratch.arena, &dbg_path_candidates, pdb_dbg_path); - } - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S.pdb", str8_chop_last_dot(path)); - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S.pdb", path); - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S.rdi", str8_chop_last_dot(path)); - str8_list_pushf(scratch.arena, &dbg_path_candidates, "%S.rdi", path); - for(String8Node *n = dbg_path_candidates.first; n != 0; n = n->next) - { - String8 candidate_path = n->string; - FileProperties props = os_properties_from_file_path(candidate_path); - if(props.modified != 0 && props.size != 0) - { - initial_debug_info_path = push_str8_copy(arena, path_normalized_from_string(scratch.arena, candidate_path)); - break; - } - } - scratch_end(scratch); - } - - ////////////////////////////// - //- rjf: insert info into cache - // - { - U64 hash = ctrl_hash_from_handle(module); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeW(stripe->rw_mutex) - { - CTRL_ModuleImageInfoCacheNode *node = 0; - for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module)) - { - node = n; - break; - } - } - if(!node) - { - node = push_array(arena, CTRL_ModuleImageInfoCacheNode, 1); - DLLPushBack(slot->first, slot->last, node); - node->module = module; - node->arena = arena; - node->pdatas = pdatas; - node->pdatas_count = pdatas_count; - node->entry_point_voff = entry_point_voff; - node->initial_debug_info_path = initial_debug_info_path; - node->raddbg_section_voff_range = raddbg_section_voff_range; - node->raddbg_data = raddbg_data; - } - } - } -} - -internal void -ctrl_thread__module_close(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_range) -{ - ////////////////////////////// - //- rjf: evict module image info from cache - // - Rng1U64 raddbg_section_voff_range = {0}; - { - U64 hash = ctrl_hash_from_handle(module); - U64 slot_idx = hash%ctrl_state->module_image_info_cache.slots_count; - U64 stripe_idx = slot_idx%ctrl_state->module_image_info_cache.stripes_count; - CTRL_ModuleImageInfoCacheSlot *slot = &ctrl_state->module_image_info_cache.slots[slot_idx]; - CTRL_ModuleImageInfoCacheStripe *stripe = &ctrl_state->module_image_info_cache.stripes[stripe_idx]; - MutexScopeW(stripe->rw_mutex) - { - CTRL_ModuleImageInfoCacheNode *node = 0; - for(CTRL_ModuleImageInfoCacheNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, module)) - { - node = n; - break; - } - } - if(node) - { - raddbg_section_voff_range = node->raddbg_section_voff_range; - DLLRemove(slot->first, slot->last, node); - arena_release(node->arena); - } - } - } - - ////////////////////////////// - //- rjf: write 0 into first byte of raddbg data section, to signify detachment - // - if(raddbg_section_voff_range.max != raddbg_section_voff_range.min) - { - U8 new_value = 0; - dmn_process_write_struct(process.dmn_handle, vaddr_range.min + raddbg_section_voff_range.min, &new_value); - } -} - -//- rjf: attached process running/event gathering - -internal DMN_Event * -ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, DMN_RunCtrls *run_ctrls, CTRL_Spoof *spoof) -{ - ProfBeginFunction(); - DMN_Event *event = push_array(arena, DMN_Event, 1); - Temp scratch = scratch_begin(&arena, 1); - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - - //- rjf: loop -> try to get event, run, repeat - U64 spoof_old_ip_value = 0; - ProfScope("loop -> try to get event, run, repeat") for(B32 got_event = 0; got_event == 0;) - { - //- rjf: get next event - ProfScope("get next event") - { - // rjf: grab first event - DMN_EventNode *next_event_node = ctrl_state->first_dmn_event_node; - - // rjf: log event - if(next_event_node != 0) - { - DMN_Event *ev = &next_event_node->v; - LogInfoNamedBlockF("dmn_event") - { - log_infof("kind: %S\n", dmn_event_kind_string_table[ev->kind]); - log_infof("exception_kind: %S\n", dmn_exception_kind_string_table[ev->exception_kind]); - log_infof("process: [%I64u]\n", ev->process.u64[0]); - log_infof("thread: [%I64u]\n", ev->thread.u64[0]); - log_infof("module: [%I64u]\n", ev->module.u64[0]); - log_infof("arch: %S\n", string_from_arch(ev->arch)); - log_infof("address: 0x%I64x\n", ev->address); - log_infof("string: \"%S\"\n", ev->string); - log_infof("ip_vaddr: 0x%I64x\n", ev->instruction_pointer); - } - } - - // rjf: determine if we should filter - B32 should_filter_event = 0; - if(next_event_node != 0) - { - DMN_Event *ev = &next_event_node->v; - switch(ev->kind) - { - default:{}break; - case DMN_EventKind_Exception: - { - // NOTE(rjf): first chance exceptions -> try ignoring - should_filter_event = (ev->exception_repeated == 0 && (spoof == 0 || ev->instruction_pointer != spoof->new_ip_value)); - - // rjf: exception code -> kind - CTRL_ExceptionCodeKind code_kind = CTRL_ExceptionCodeKind_Null; - if(should_filter_event) - { - for(CTRL_ExceptionCodeKind k = (CTRL_ExceptionCodeKind)0; k < CTRL_ExceptionCodeKind_COUNT; k = (CTRL_ExceptionCodeKind)(k+1)) - { - if(ctrl_exception_code_kind_code_table[k] == ev->code) - { - code_kind = k; - break; - } - } - } - - // rjf: exception code kind -> shouldn't stop? if so, do not filter - if(should_filter_event) - { - B32 shouldnt_filter = !!(ctrl_state->exception_code_filters[code_kind/64] & (1ull<<(code_kind%64))); - if(should_filter_event && shouldnt_filter) - { - should_filter_event = 0; - } - } - - // rjf: special case: be gracious with ASan modules or symbols if - // they do their cute little 0xc0000005 exception trick... - if(!should_filter_event && ev->code == 0xc0000005 && - (spoof == 0 || ev->instruction_pointer != spoof->new_ip_value)) - { - Access *access = access_open(); - CTRL_Entity *process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, ev->process)); - CTRL_Entity *module = &ctrl_entity_nil; - for(CTRL_Entity *child = process->first; child != &ctrl_entity_nil; child = child->next) - { - if(child->kind == CTRL_EntityKind_Module) - { - module = child; - break; - } - } - if(module != &ctrl_entity_nil) - { - // rjf: determine base address of asan shadow space - U64 asan_shadow_base_vaddr = 0; - B32 asan_shadow_variable_exists_but_is_zero = 0; - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, max_U64); - RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_GlobalVariables); - { - RDI_ParsedNameMap map = {0}; - rdi_parsed_from_name_map(rdi, unparsed_map, &map); - String8 name = str8_lit("__asan_shadow_memory_dynamic_address"); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - if(node != 0) - { - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - RDI_GlobalVariable *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, ids[0]); - U64 global_var_voff = global_var->voff; - U64 global_var_vaddr = global_var->voff + module->vaddr_range.min; - Arch arch = process->arch; - U64 addr_size = bit_size_from_arch(arch)/8; - dmn_process_read(ev->process, r1u64(global_var_vaddr, global_var_vaddr+addr_size), &asan_shadow_base_vaddr); - asan_shadow_variable_exists_but_is_zero = (asan_shadow_base_vaddr == 0); - } - } - } - - // rjf: determine if this was a read/write to the shadow space - B32 violation_in_shadow_space = 0; - if(asan_shadow_base_vaddr != 0) - { - U64 asan_shadow_space_size = TB(128)/8; - if(asan_shadow_base_vaddr <= ev->address && ev->address < asan_shadow_base_vaddr+asan_shadow_space_size) - { - violation_in_shadow_space = 1; - } - } - - // rjf: filter event if this violation occurred in asan's shadow space - if(violation_in_shadow_space || asan_shadow_variable_exists_but_is_zero) - { - should_filter_event = 1; - } - } - - access_close(access); - } - }break; - } - } - - // rjf: good event & unfiltered? -> pop from queue & grab as result - if(next_event_node != 0 && !should_filter_event) - { - got_event = 1; - SLLQueuePop(ctrl_state->first_dmn_event_node, ctrl_state->last_dmn_event_node); - MemoryCopyStruct(event, &next_event_node->v); - event->string = push_str8_copy(arena, event->string); - run_ctrls->ignore_previous_exception = 1; - } - - // rjf: good event but filtered? pop from queue - if(next_event_node != 0 && should_filter_event) - { - SLLQueuePop(ctrl_state->first_dmn_event_node, ctrl_state->last_dmn_event_node); - run_ctrls->ignore_previous_exception = 0; - } - } - - //- rjf: no event -> dmn_ctrl_run for a new one - if(got_event == 0) ProfScope("no event -> dmn_ctrl_run for a new one") - { - // rjf: prep spoof - B32 do_spoof = (spoof != 0 && dmn_handle_match(run_ctrls->single_step_thread, dmn_handle_zero())); - U64 size_of_spoof = 0; - if(do_spoof) ProfScope("prep spoof") - { - CTRL_Entity *spoof_process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, spoof->process)); - Arch arch = spoof_process->arch; - size_of_spoof = bit_size_from_arch(arch)/8; - dmn_process_read(spoof_process->handle.dmn_handle, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof_old_ip_value); - } - - // rjf: set spoof - if(do_spoof) ProfScope("set spoof") - { - dmn_process_write(spoof->process, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof->new_ip_value); - } - - // rjf: run for new events - ProfScope("run for new events") - { - LogInfoNamedBlockF("dmn_ctrl_run") - { - log_infof("single_step_thread: [0x%I64x]\n", run_ctrls->single_step_thread); - log_infof("ignore_previous_exception: %i\n", !!run_ctrls->ignore_previous_exception); - log_infof("run_entities_are_unfrozen: %i\n", !!run_ctrls->run_entities_are_unfrozen); - log_infof("run_entities_are_processes: %i\n", !!run_ctrls->run_entities_are_processes); - log_infof("run_entity_count: %I64u\n", run_ctrls->run_entity_count); - LogInfoNamedBlockF("run_entities") for(U64 idx = 0; idx < run_ctrls->run_entity_count; idx += 1) - { - log_infof("[0x%I64x]\n", run_ctrls->run_entities[idx]); - } - log_infof("trap_count: %I64u\n", run_ctrls->traps.trap_count); - LogInfoNamedBlockF("traps") for(DMN_TrapChunkNode *n = run_ctrls->traps.first; n != 0; n = n->next) - { - for(U64 idx = 0; idx < n->count; idx += 1) - { - log_infof("{process:[0x%I64x], vaddr:0x%I64x, id:0x%I64x}\n", n->v[idx].process.u64[0], n->v[idx].vaddr, n->v[idx].id); - } - } - } - DMN_EventList events = dmn_ctrl_run(scratch.arena, ctrl_ctx, run_ctrls); - ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); - ins_atomic_u64_inc_eval(&ctrl_state->reg_gen); - ins_atomic_u64_inc_eval(&ctrl_state->run_gen); - for(DMN_EventNode *src_n = events.first; src_n != 0; src_n = src_n->next) - { - DMN_EventNode *dst_n = ctrl_state->free_dmn_event_node; - if(dst_n != 0) - { - SLLStackPop(ctrl_state->free_dmn_event_node); - } - else - { - dst_n = push_array(ctrl_state->dmn_event_arena, DMN_EventNode, 1); - } - MemoryCopyStruct(&dst_n->v, &src_n->v); - dst_n->v.string = push_str8_copy(ctrl_state->dmn_event_arena, dst_n->v.string); - SLLQueuePush(ctrl_state->first_dmn_event_node, ctrl_state->last_dmn_event_node, dst_n); - } - } - - // rjf: unset spoof - if(do_spoof) ProfScope("unset spoof") - { - dmn_process_write(spoof->process, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof_old_ip_value); - } - } - } - - //- rjf: irrespective of what event came back, we should ALWAYS check the - // spoof's thread and see if it hit the spoof address, because we may have - // simply been sent other debug events first - if(spoof != 0) - { - CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, spoof->thread)); - Arch arch = thread->arch; - void *regs_block = push_array(scratch.arena, U8, regs_block_size_from_arch(arch)); - dmn_thread_read_reg_block(spoof->thread, regs_block); - U64 spoof_thread_rip = regs_rip_from_arch_block(arch, regs_block); - if(spoof_thread_rip == spoof->new_ip_value) - { - regs_arch_block_write_rip(arch, regs_block, spoof_old_ip_value); - ctrl_thread_write_reg_block(ctrl_handle_make(CTRL_MachineID_Local, spoof->thread), regs_block); - } - } - - //- rjf: push ctrl events associated with this demon event - CTRL_EventList evts = {0}; - ProfScope("push ctrl events associated with this demon event") switch(event->kind) - { - default:{}break; - case DMN_EventKind_CreateProcess: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_NewProc; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->arch = event->arch; - out_evt->entity_id = event->code; - ctrl_state->process_counter += 1; - }break; - case DMN_EventKind_CreateThread: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_NewThread; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->arch = event->arch; - out_evt->entity_id = event->code; - out_evt->stack_base = dmn_stack_base_vaddr_from_thread(event->thread); - out_evt->tls_root = dmn_tls_root_vaddr_from_thread(event->thread); - out_evt->rip_vaddr = event->instruction_pointer; - out_evt->string = event->string; - }break; - case DMN_EventKind_LoadModule: - { - CTRL_Handle process_handle = ctrl_handle_make(CTRL_MachineID_Local, event->process); - CTRL_Handle module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module); - CTRL_Event *out_evt1 = ctrl_event_list_push(scratch.arena, &evts); - String8 module_path = path_normalized_from_string(scratch.arena, event->string); - U64 exe_timestamp = os_properties_from_file_path(module_path).modified; - ctrl_thread__module_open(process_handle, module_handle, r1u64(event->address, event->address+event->size), module_path); - out_evt1->kind = CTRL_EventKind_NewModule; - out_evt1->msg_id = msg->msg_id; - out_evt1->entity = module_handle; - out_evt1->parent = process_handle; - out_evt1->arch = event->arch; - out_evt1->entity_id = event->code; - out_evt1->vaddr_rng = r1u64(event->address, event->address+event->size); - out_evt1->rip_vaddr = event->address; - out_evt1->timestamp = exe_timestamp; - out_evt1->string = module_path; - CTRL_Event *out_evt2 = ctrl_event_list_push(scratch.arena, &evts); - String8 initial_debug_info_path = ctrl_initial_debug_info_path_from_module(scratch.arena, module_handle); - U64 debug_info_timestamp = os_properties_from_file_path(initial_debug_info_path).modified; - out_evt2->kind = CTRL_EventKind_ModuleDebugInfoPathChange; - out_evt2->msg_id = msg->msg_id; - out_evt2->entity = module_handle; - out_evt2->parent = process_handle; - out_evt2->timestamp = debug_info_timestamp; - out_evt2->string = initial_debug_info_path; - DI_Key initial_dbgi_key = di_key_from_path_timestamp(initial_debug_info_path, debug_info_timestamp); - di_open(initial_dbgi_key); - }break; - case DMN_EventKind_ExitProcess: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_EndProc; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->u64_code = event->code; - ctrl_state->process_counter -= 1; - }break; - case DMN_EventKind_ExitThread: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_EndThread; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->entity_id = event->code; - }break; - case DMN_EventKind_UnloadModule: - ProfScope("unload module %.*s", str8_varg(event->string)) - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - CTRL_Handle module_handle = ctrl_handle_make(CTRL_MachineID_Local, event->module); - CTRL_Entity *module_ent = ctrl_entity_from_handle(entity_ctx, module_handle); - CTRL_Entity *process_ent = ctrl_process_from_entity(module_ent); - String8 module_path = event->string; - ctrl_thread__module_close(process_ent->handle, module_handle, module_ent->vaddr_range); - out_evt->kind = CTRL_EventKind_EndModule; - out_evt->msg_id = msg->msg_id; - out_evt->entity = module_handle; - out_evt->string = module_path; - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module_ent); - di_close(dbgi_key, 0); - }break; - case DMN_EventKind_DebugString: - { - U64 num_strings = (event->string.size + ctrl_state->c2u_ring_max_string_size-1) / ctrl_state->c2u_ring_max_string_size; - for(U64 string_idx = 0; string_idx < num_strings; string_idx += 1) - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_DebugString; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->string = str8_substr(event->string, r1u64(string_idx*ctrl_state->c2u_ring_max_string_size, (string_idx+1)*ctrl_state->c2u_ring_max_string_size)); - } - }break; - case DMN_EventKind_SetThreadName: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_ThreadName; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->string = event->string; - out_evt->entity_id = event->code; - }break; - case DMN_EventKind_SetThreadColor: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_ThreadColor; - out_evt->msg_id = msg->msg_id; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->entity_id = event->code; - out_evt->rgba = event->user_data; - }break; - case DMN_EventKind_SetVAddrRangeNote: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_SetVAddrRangeNote; - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->msg_id = msg->msg_id; - out_evt->vaddr_rng = r1u64(event->address, event->address + event->size); - out_evt->string = event->string; - }break; - case DMN_EventKind_SetBreakpoint: - { - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_SetBreakpoint; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->vaddr_rng = r1u64(event->address, event->address+event->size); - out_evt->bp_flags = ctrl_user_breakpoint_flags_from_dmn_trap_flags(event->flags); - }break; - case DMN_EventKind_UnsetBreakpoint: - { - // TODO(rjf): this needs to be reflected in the resolved trap list too!!!!!!!! - CTRL_Event *out_evt = ctrl_event_list_push(scratch.arena, &evts); - out_evt->kind = CTRL_EventKind_UnsetBreakpoint; - out_evt->entity = ctrl_handle_make(CTRL_MachineID_Local, event->thread); - out_evt->parent = ctrl_handle_make(CTRL_MachineID_Local, event->process); - out_evt->vaddr_rng = r1u64(event->address, event->address+event->size); - out_evt->bp_flags = ctrl_user_breakpoint_flags_from_dmn_trap_flags(event->flags); - }break; - } - ctrl_c2u_push_events(&evts); - - //- rjf: if this is the first process in a session, clear the debug directory - // cache state - if(ctrl_state->process_counter == 1 && event->kind == DMN_EventKind_CreateProcess) - { - arena_clear(ctrl_state->dbg_dir_arena); - ctrl_state->dbg_dir_root = push_array(ctrl_state->dbg_dir_arena, CTRL_DbgDirNode, 1); - } - - //- rjf: out of queued up demon events -> clear event arena - if(ctrl_state->first_dmn_event_node == 0) - { - ctrl_state->free_dmn_event_node = 0; - arena_clear(ctrl_state->dmn_event_arena); - } - - scratch_end(scratch); - ProfEnd(); - return(event); -} - -//- rjf: eval helpers - -internal U64 -ctrl_eval_space_gen(E_Space space) -{ - U64 result = 0; - switch(space.kind) - { - default:{}break; - case CTRL_EvalSpaceKind_Entity: - { - result = ctrl_mem_gen(); - }break; - } - return result; -} - -internal B32 -ctrl_eval_space_read(E_Space space, void *out, Rng1U64 range) -{ - B32 result = 0; - switch(space.kind) - { - default:{}break; - - //- rjf: intra-entity reads (process memory or thread registers) - case CTRL_EvalSpaceKind_Entity: - { - CTRL_Entity *entity = (CTRL_Entity *)space.u64_0; - switch(entity->kind) - { - default:{}break; - case CTRL_EntityKind_Process: - { - U64 read_size = dmn_process_read(entity->handle.dmn_handle, range, out); - result = (read_size == dim_1u64(range)); - }break; - case CTRL_EntityKind_Thread: - { - Temp scratch = scratch_begin(0, 0); - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - U64 regs_size = regs_block_size_from_arch(entity->arch); - void *regs = ctrl_reg_block_from_thread(scratch.arena, entity_ctx, entity->handle); - Rng1U64 legal_range = r1u64(0, regs_size); - Rng1U64 read_range = intersect_1u64(legal_range, range); - U64 read_size = dim_1u64(read_range); - MemoryCopy(out, (U8 *)regs + read_range.min, read_size); - result = (read_size == dim_1u64(range)); - scratch_end(scratch); - }break; - } - }break; - } - return result; -} - -//- rjf: control thread eval scopes - -internal CTRL_EvalScope * -ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, CTRL_Entity *thread) -{ - ProfBeginFunction(); - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_EvalScope *scope = push_array(arena, CTRL_EvalScope, 1); - scope->access = access_open(); - - ////////////////////////////// - //- rjf: unpack thread - // - Arch arch = thread->arch; - U64 thread_rip_vaddr = dmn_rip_from_thread(thread->handle.dmn_handle); - CTRL_Entity *process = ctrl_process_from_entity(thread); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); - U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr); - - ////////////////////////////// - //- rjf: gather evaluation debug infos & modules - // - U64 eval_modules_count = Max(1, entity_ctx->entity_kind_counts[CTRL_EntityKind_Module]); - E_Module *eval_modules = push_array(arena, E_Module, eval_modules_count); - E_Module *eval_modules_primary = &eval_modules[0]; - eval_modules_primary->vaddr_range = r1u64(0, max_U64); - U64 eval_dbg_infos_count = Max(1, entity_ctx->entity_kind_counts[CTRL_EntityKind_Module]); - E_DbgInfo *eval_dbg_infos = push_array(arena, E_DbgInfo, eval_dbg_infos_count); - E_DbgInfo *eval_dbg_infos_primary = &eval_dbg_infos[0]; - MemoryCopyStruct(eval_dbg_infos_primary, &e_dbg_info_nil); - { - U64 eval_module_idx = 0; - U64 eval_dbg_info_idx = 0; - for(CTRL_Entity *machine = entity_ctx->root->first; - machine != &ctrl_entity_nil; - machine = machine->next) - { - if(machine->kind != CTRL_EntityKind_Machine) { continue; } - for(CTRL_Entity *process = machine->first; - process != &ctrl_entity_nil; - process = process->next) - { - if(process->kind != CTRL_EntityKind_Process) { continue; } - for(CTRL_Entity *mod = process->first; - mod != &ctrl_entity_nil; - mod = mod->next) - { - if(mod->kind != CTRL_EntityKind_Module) { continue; } - DI_Key dbgi_key = ctrl_dbgi_key_from_module(mod); - - //- rjf: try to obtain this module's RDI - RDI_Parsed *rdi = di_rdi_from_key(scope->access, dbgi_key, 0, 0); - - //- rjf: if this RDI is not yet ready => determine if we need to wait for it - // - // (we *always* wait for the initial module) - // - B32 rdi_is_necessary = 1; - if(user_bps->count == 0) - { - rdi_is_necessary = 0; - } - else if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") - { - // rjf: find cached result - U64 hash = ctrl_hash_from_handle(mod->handle); - U64 slot_idx = hash%ctrl_state->module_req_cache_slots_count; - CTRL_ModuleReqCacheNode *slot = ctrl_state->module_req_cache_slots[slot_idx]; - CTRL_ModuleReqCacheNode *node = 0; - for(CTRL_ModuleReqCacheNode *n = slot; n != 0; n = n->next) - { - if(ctrl_handle_match(n->module, mod->handle)) - { - node = n; - break; - } - } - - // rjf: cached? -> take cached result - if(node != 0) - { - rdi_is_necessary = node->required; - } - - // rjf: not cached -> compute & store - else ProfScope("cache miss") - { - CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(mod, CTRL_EntityKind_DebugInfoPath); - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, debug_info_path->string); - ProfScope("determine if %.*s is necessary", str8_varg(debug_info_path->string)) - { - //- rjf: determine if file is PDB - B32 file_is_pdb = 0; - if(!file_is_pdb) - { - U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); - if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) - { - file_is_pdb = 1; - } - } - if(!file_is_pdb) - { - U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); - if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) - { - file_is_pdb = 1; - } - } - - //- rjf: file is PDB -> do thin parse & lookup of all breakpoint files/symbols. - // if any are found in the PDB, then this RDI is necessary. - if(file_is_pdb) - { - FileProperties props = os_properties_from_file(file); - OS_Handle map = os_file_map_open(OS_AccessFlag_Read, file); - void *file_base = os_file_map_view_open(map, OS_AccessFlag_Read, r1u64(0, props.size)); - String8 file_data = str8(file_base, props.size); - { - rdi_is_necessary = pdb_has_symbol_or_file_ref(file_data, ctrl_state->msg_user_bp_touched_symbols, ctrl_state->msg_user_bp_touched_files); - } - os_file_map_view_close(map, file_base, r1u64(0, props.size)); - os_file_map_close(map); - } - } - os_file_close(file); - node = push_array(ctrl_state->ctrl_thread_msg_process_arena, CTRL_ModuleReqCacheNode, 1); - node->next = slot; - ctrl_state->module_req_cache_slots[slot_idx] = node; - node->module = mod->handle; - node->required = rdi_is_necessary; - } - } - - //- rjf: if this RDI is necessary, but we do not have it => wait for it forever - if(rdi == &rdi_parsed_nil && rdi_is_necessary) ProfScope("RDI is necessary -> wait") - { - rdi = di_rdi_from_key(scope->access, dbgi_key, 1, max_U64); - } - - //- rjf: fill debug info - eval_dbg_infos[eval_dbg_info_idx].dbgi_key = dbgi_key; - eval_dbg_infos[eval_dbg_info_idx].rdi = rdi; - if(mod == module) - { - eval_dbg_infos_primary = &eval_dbg_infos[eval_dbg_info_idx]; - } - eval_dbg_info_idx += 1; - - //- rjf: fill evaluation module info - eval_modules[eval_module_idx].arch = arch; - eval_modules[eval_module_idx].dbg_info_num= (U32)eval_dbg_info_idx; - eval_modules[eval_module_idx].vaddr_range = mod->vaddr_range; - eval_modules[eval_module_idx].space = e_space_make(CTRL_EvalSpaceKind_Entity); - eval_modules[eval_module_idx].space.u64_0 = (U64)process; - if(mod == module) - { - eval_modules_primary = &eval_modules[eval_module_idx]; - } - eval_module_idx += 1; - } - } - } - } - - ////////////////////////////// - //- rjf: select evaluation cache - // - e_select_cache(ctrl_state->ctrl_thread_eval_cache); - - ////////////////////////////// - //- rjf: build base evaluation context - // - { - E_BaseCtx *ctx = &scope->base_ctx; - - //- rjf: fill instruction pointer info - ctx->thread_ip_vaddr = thread_rip_vaddr; - ctx->thread_ip_voff = thread_rip_voff; - ctx->thread_arch = thread->arch; - ctx->thread_reg_space = e_space_make(CTRL_EvalSpaceKind_Entity); - ctx->thread_reg_space.u64_0 = (U64)thread; - - //- rjf: fill debug infos - ctx->dbg_infos = eval_dbg_infos; - ctx->dbg_infos_count = eval_dbg_infos_count; - ctx->primary_dbg_info = eval_dbg_infos_primary; - - //- rjf: fill modules - ctx->modules = eval_modules; - ctx->modules_count = eval_modules_count; - ctx->primary_module = eval_modules_primary; - - //- rjf: fill space hooks - ctx->space_gen = ctrl_eval_space_gen; - ctx->space_read = ctrl_eval_space_read; - } - e_select_base_ctx(&scope->base_ctx); - - ////////////////////////////// - //- rjf: build IR evaluation context - // - { - E_IRCtx *ctx = &scope->ir_ctx; - ctx->regs_map = ctrl_string2reg_from_arch(arch); - ctx->reg_alias_map = ctrl_string2alias_from_arch(arch); - ctx->locals_map = e_push_locals_map_from_rdi_voff(arena, eval_dbg_infos_primary->rdi, thread_rip_voff); - ctx->member_map = e_push_member_map_from_rdi_voff(arena, eval_dbg_infos_primary->rdi, thread_rip_voff); - ctx->macro_map = push_array(arena, E_String2ExprMap, 1); - ctx->macro_map[0] = e_string2expr_map_make(arena, 512); - ctx->auto_hook_map = push_array(arena, E_AutoHookMap, 1); - ctx->auto_hook_map[0] = e_auto_hook_map_make(arena, 512); - } - e_select_ir_ctx(&scope->ir_ctx); - - ////////////////////////////// - //- rjf: build eval interpretation context - // - { - E_InterpretCtx *ctx = &scope->interpret_ctx; - ctx->primary_space = eval_modules_primary->space; - ctx->reg_arch = eval_modules_primary->arch; - ctx->reg_space = e_space_make(CTRL_EvalSpaceKind_Entity); - ctx->reg_space.u64_0 = (U64)thread; - ctx->module_base = push_array(arena, U64, 1); - ctx->module_base[0]= module->vaddr_range.min; - ctx->frame_base = push_array(arena, U64, 1); - // TODO(rjf): need to compute this out here somehow... ctx->frame_base[0] = ; - ctx->tls_base = push_array(arena, U64, 1); - } - e_select_interpret_ctx(&scope->interpret_ctx, eval_dbg_infos_primary->rdi, thread_rip_voff); - - ProfEnd(); - return scope; -} - -internal void -ctrl_thread__eval_scope_end(CTRL_EvalScope *scope) -{ - access_close(scope->access); -} - -//- rjf: log flusher - -internal void -ctrl_thread__end_and_flush_log(void) -{ - Temp scratch = scratch_begin(0, 0); - LogScopeResult log = log_scope_end(scratch.arena); - os_append_data_to_file_path(ctrl_state->ctrl_thread_log_path, log.strings[LogMsgKind_Info]); - if(log.strings[LogMsgKind_UserError].size != 0) - { - CTRL_EventList evts = {0}; - CTRL_Event *evt = ctrl_event_list_push(scratch.arena, &evts); - evt->kind = CTRL_EventKind_Error; - evt->string = log.strings[LogMsgKind_UserError]; - ctrl_c2u_push_events(&evts); - } - scratch_end(scratch); -} - -//- rjf: msg kind implementations - -internal void -ctrl_thread__launch(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - Temp scratch = scratch_begin(0, 0); - - //- rjf: produce full stdout/stderr/stdin paths - String8 stdout_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stdout_path, msg->path); - String8 stdin_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stdin_path, msg->path); - String8 stderr_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stderr_path, msg->path); - - //- rjf: obtain stdout/stderr/stdin handles - OS_Handle stdout_handle = {0}; - OS_Handle stderr_handle = {0}; - OS_Handle stdin_handle = {0}; - if(stdout_path.size != 0) - { - OS_Handle f = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Read, stdout_path); - os_file_close(f); - stdout_handle = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, msg->stdout_path); - } - if(stderr_path.size != 0) - { - OS_Handle f = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Read, stderr_path); - os_file_close(f); - stderr_handle = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, msg->stderr_path); - } - if(stdin_path.size != 0) - { - stdin_handle = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, stdin_path); - } - - //- rjf: launch - OS_ProcessLaunchParams params = {0}; - { - params.cmd_line = msg->cmd_line_string_list; - params.path = msg->path; - params.env = msg->env_string_list; - params.inherit_env = msg->env_inherit; - params.debug_subprocesses = msg->debug_subprocesses; - params.stdout_file = stdout_handle; - params.stderr_file = stderr_handle; - params.stdin_file = stdin_handle; - } - U32 id = dmn_ctrl_launch(ctrl_ctx, ¶ms); - - //- rjf: close stdout/stderr/stdin files - os_file_close(stdout_handle); - os_file_close(stderr_handle); - os_file_close(stdin_handle); - - //- rjf: record (id -> entry points), so that we know custom entry points for this PID - CTRL_EntityCtxRWStore *entity_ctx_rw_store = ctrl_state->ctrl_thread_entity_store; - MutexScopeW(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) - { - for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) - { - String8 string = n->string; - CTRL_Entity *entry = ctrl_entity_alloc(entity_ctx_rw_store, entity_ctx_rw_store->ctx.root, CTRL_EntityKind_EntryPoint, Arch_Null, ctrl_handle_zero(), (U64)id); - ctrl_entity_equip_string(entity_ctx_rw_store, entry, string); - } - } - - scratch_end(scratch); -} - -internal void -ctrl_thread__attach(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - //- rjf: attach - B32 attach_successful = dmn_ctrl_attach(ctrl_ctx, msg->entity_id); - - //- rjf: run to handshake - if(attach_successful) - { - DMN_Handle unfrozen_process = {0}; - DMN_RunCtrls run_ctrls = {0}; - run_ctrls.run_entities_are_unfrozen = 1; - run_ctrls.run_entities_are_processes = 1; - for(B32 done = 0; done == 0;) - { - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_CreateProcess: - { - unfrozen_process = event->process; - run_ctrls.run_entities = &unfrozen_process; - run_ctrls.run_entity_count = 1; - }break; - case DMN_EventKind_Halt: - case DMN_EventKind_Exception: - case DMN_EventKind_Error: - case DMN_EventKind_HandshakeComplete: - { - done = 1; - }break; - } - } - } - - //- rjf: record stop - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = CTRL_EventCause_Finished; - event->msg_id = msg->msg_id; - event->entity_id = !!attach_successful * msg->entity_id; - ctrl_c2u_push_events(&evts); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__kill(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - DMN_Handle process = msg->entity.dmn_handle; - U32 exit_code = msg->exit_code; - - //- rjf: send kill - B32 kill_worked = dmn_ctrl_kill(ctrl_ctx, process, exit_code); - - //- rjf: wait for process to be dead - CTRL_EventCause cause = CTRL_EventCause_Finished; - if(kill_worked) - { - DMN_RunCtrls run_ctrls = {0}; - run_ctrls.run_entities_are_unfrozen = 1; - run_ctrls.run_entities_are_processes = 1; - run_ctrls.run_entities = &process; - run_ctrls.run_entity_count = 1; - for(B32 done = 0; done == 0;) - { - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_ExitProcess: - if(dmn_handle_match(event->process, process)) - { - done = 1; - }break; - case DMN_EventKind_Error:{done = 1; cause = CTRL_EventCause_Error;}break; - case DMN_EventKind_Halt: {done = 1; cause = CTRL_EventCause_InterruptedByHalt;}break; - } - } - } - - //- rjf: record stop - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = cause; - event->msg_id = msg->msg_id; - if(kill_worked) - { - event->entity = msg->entity; - } - ctrl_c2u_push_events(&evts); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__kill_all(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - U32 exit_code = msg->exit_code; - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - - //- rjf: gather all currently existing processes - CTRL_EntityArray initial_processes = ctrl_entity_array_from_kind(entity_ctx, CTRL_EntityKind_Process); - typedef struct Task Task; - struct Task - { - Task *next; - Task *prev; - CTRL_Entity *process; - }; - Task *first_task = 0; - Task *last_task = 0; - for EachIndex(idx, initial_processes.count) - { - CTRL_Entity *entity = initial_processes.v[idx]; - Task *t = push_array(scratch.arena, Task, 1); - t->process = entity; - DLLPushBack(first_task, last_task, t); - } - - //- rjf: kill processes as needed, wait for all processes to be dead - CTRL_EventCause cause = CTRL_EventCause_Finished; - if(first_task != 0) - { - DMN_RunCtrls run_ctrls = {0}; - for(B32 done = 0; !done;) - { - // rjf: kill remaining processes - for(Task *t = first_task, *next = 0; t != 0; t = next) - { - next = t->next; - B32 kill_worked = dmn_ctrl_kill(ctrl_ctx, t->process->handle.dmn_handle, exit_code); - if(kill_worked) - { - DLLRemove(first_task, last_task, t); - } - } - - // rjf: get next event - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - - // rjf: process event - switch(event->kind) - { - default:{}break; - case DMN_EventKind_CreateProcess: - { - CTRL_Entity *new_process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->process)); - Task *t = push_array(scratch.arena, Task, 1); - t->process = new_process; - DLLPushBack(first_task, last_task, t); - }break; - case DMN_EventKind_Error:{done = 1; cause = CTRL_EventCause_Error;}break; - case DMN_EventKind_Halt: {done = 1; cause = CTRL_EventCause_InterruptedByHalt;}break; - } - - // rjf: end if all processes are gone - CTRL_EntityArray processes = ctrl_entity_array_from_kind(entity_ctx, CTRL_EntityKind_Process); - if(processes.count == 0) - { - done = 1; - } - } - } - - //- rjf: record stop - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = cause; - event->msg_id = msg->msg_id; - ctrl_c2u_push_events(&evts); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__detach(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - DMN_Handle process = msg->entity.dmn_handle; - - //- rjf: detach - B32 detach_worked = dmn_ctrl_detach(ctrl_ctx, process); - - //- rjf: wait for process to be dead - if(detach_worked) - { - DMN_RunCtrls run_ctrls = {0}; - run_ctrls.run_entities_are_unfrozen = 1; - run_ctrls.run_entities_are_processes = 1; - run_ctrls.run_entities = &process; - run_ctrls.run_entity_count = 1; - for(B32 done = 0; done == 0;) - { - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - if(event->kind == DMN_EventKind_ExitProcess && dmn_handle_match(event->process, process)) - { - done = 1; - } - if(event->kind == DMN_EventKind_Halt) - { - done = 1; - } - } - } - - //- rjf: record stop - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = CTRL_EventCause_Finished; - event->msg_id = msg->msg_id; - if(detach_worked) - { - event->entity = msg->entity; - } - ctrl_c2u_push_events(&evts); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - DMN_Event *stop_event = 0; - CTRL_EventCause stop_cause = CTRL_EventCause_Null; - CTRL_EntityCtx *entity_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_Handle target_thread = msg->entity; - CTRL_Handle target_process = msg->parent; - CTRL_Entity *target_process_entity = ctrl_entity_from_handle(entity_ctx, target_process); - U64 spoof_ip_vaddr = 911; - log_infof("ctrl_thread__run:\n{\n"); - - ////////////////////////////// - //- rjf: gather all initial breakpoints - // - DMN_TrapChunkList user_traps = {0}; - { - CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, target_thread); - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); - for(CTRL_Entity *machine = entity_ctx->root->first; - machine != &ctrl_entity_nil; - machine = machine->next) - { - if(machine->kind != CTRL_EntityKind_Machine) { continue; } - for(CTRL_Entity *process = machine->first; process != &ctrl_entity_nil; process = process->next) - { - if(process->kind != CTRL_EntityKind_Process) { continue; } - - // rjf: resolve module-dependent user bps - for(CTRL_Entity *module = process->first; module != &ctrl_entity_nil; module = module->next) - { - if(module->kind != CTRL_EntityKind_Module) { continue; } - ctrl_thread__append_resolved_module_user_bp_traps(scratch.arena, eval_scope, process->handle, module->handle, &msg->user_bps, &user_traps); - } - - // rjf: push process-declared breakpoins - for(CTRL_Entity *bp = process->first; bp != &ctrl_entity_nil; bp = bp->next) - { - if(bp->kind != CTRL_EntityKind_Breakpoint) { continue; } - ctrl_thread__append_program_defined_bp_traps(scratch.arena, bp, &user_traps); - } - - // rjf: push virtual-address user breakpoints per-process - ctrl_thread__append_resolved_process_user_bp_traps(scratch.arena, eval_scope, process->handle, &msg->user_bps, &user_traps); - } - } - ctrl_thread__eval_scope_end(eval_scope); - } - - ////////////////////////////// - //- rjf: read initial stack-pointer-check value - // - // This MUST happen before any threads move, including single-stepping stuck - // threads, because otherwise, their stack pointer may change, if single-stepping - // causes e.g. entrance into a function via a call instruction. - // - U64 sp_check_value = dmn_rsp_from_thread(target_thread.dmn_handle); - log_infof("sp_check_value := 0x%I64x\n", sp_check_value); - - ////////////////////////////// - //- rjf: single step "stuck threads" - // - // "Stuck threads" are threads that are already on a User BP and would hit - // it immediately if resumed with all User BPs enabled. To get them "unstuck" - // we just need to single step them to get them off their current instruction. - // - // This only applies to threads OTHER THAN the target thread. If the target - // thread is on a user breakpoint, then we need to let trap net logic run, - // which may include features put on a trap net trap at the same address as - // the user breakpoint. - // - B32 target_thread_is_on_user_bp_and_trap_net_trap = 0; - if(stop_event == 0) - { - // rjf: gather stuck threads - DMN_HandleList stuck_threads = {0}; - for(CTRL_Entity *machine = entity_ctx->root->first; - machine != &ctrl_entity_nil; - machine = machine->next) - { - if(machine->kind != CTRL_EntityKind_Machine) { continue; } - for(CTRL_Entity *process = machine->first; process != &ctrl_entity_nil; process = process->next) - { - if(process->kind != CTRL_EntityKind_Process) { continue; } - for(CTRL_Entity *thread = process->first; thread != &ctrl_entity_nil; thread = thread->next) - { - U64 rip = dmn_rip_from_thread(thread->handle.dmn_handle); - - // rjf: determine if thread is frozen - B32 thread_is_frozen = thread->is_frozen; - - // rjf: not frozen? -> check if stuck & gather if so - if(!thread_is_frozen) - { - for(DMN_TrapChunkNode *n = user_traps.first; n != 0; n = n->next) - { - B32 is_on_user_bp = 0; - for(DMN_Trap *trap_ptr = n->v; trap_ptr < n->v+n->count; trap_ptr += 1) - { - if(dmn_handle_match(trap_ptr->process, process->handle.dmn_handle) && trap_ptr->vaddr == rip) - { - is_on_user_bp = 1; - } - } - - B32 is_on_net_trap = 0; - for(CTRL_TrapNode *n = msg->traps.first; n != 0; n = n->next) - { - if(n->v.vaddr == rip) - { - is_on_net_trap = 1; - } - } - - if(is_on_user_bp && (!is_on_net_trap || !dmn_handle_match(thread->handle.dmn_handle, target_thread.dmn_handle))) - { - dmn_handle_list_push(scratch.arena, &stuck_threads, thread->handle.dmn_handle); - } - - if(is_on_user_bp && is_on_net_trap && dmn_handle_match(thread->handle.dmn_handle, target_thread.dmn_handle)) - { - target_thread_is_on_user_bp_and_trap_net_trap = 1; - } - } - } - } - } - } - - // rjf: actually step stuck threads - for(DMN_HandleNode *node = stuck_threads.first; - node != 0; - node = node->next) - { - DMN_Handle thread = node->v; - U64 thread_pre_rip = dmn_rip_from_thread(thread); - U64 thread_post_rip = thread_pre_rip; - for(B32 done = 0; !done;) - { - log_infof("single_step_stuck_thread([0x%I64x])\n", thread.u64[0]); - DMN_RunCtrls run_ctrls = {0}; - run_ctrls.run_entities_are_unfrozen = 1; - run_ctrls.run_entities = &thread; - run_ctrls.run_entity_count = 1; - if(thread_post_rip == thread_pre_rip) - { - run_ctrls.single_step_thread = thread; - } - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - thread_post_rip = dmn_rip_from_thread(thread); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_ExitThread: - if(dmn_handle_match(event->thread, thread)) - { - stop_cause = CTRL_EventCause_Error; - goto stop; - }break; - case DMN_EventKind_Error: stop_cause = CTRL_EventCause_Error; goto stop; - case DMN_EventKind_Exception: stop_cause = CTRL_EventCause_InterruptedByException; goto stop; - case DMN_EventKind_Trap: stop_cause = CTRL_EventCause_InterruptedByTrap; goto stop; - case DMN_EventKind_Halt: stop_cause = CTRL_EventCause_InterruptedByHalt; goto stop; - stop:; - { - stop_event = event; - done = 1; - }break; - case DMN_EventKind_SingleStep: - { - done = dmn_handle_match(node->v, event->thread); - }break; - } - } - } - } - - ////////////////////////////// - //- rjf: gather frozen threads - // - CTRL_EntityList frozen_threads = {0}; - for(CTRL_Entity *machine = entity_ctx->root->first; - machine != &ctrl_entity_nil; - machine = machine->next) - { - if(machine->kind != CTRL_EntityKind_Machine) { continue; } - for(CTRL_Entity *process = machine->first; process != &ctrl_entity_nil; process = process->next) - { - if(process->kind != CTRL_EntityKind_Process) { continue; } - for(CTRL_Entity *thread = process->first; thread != &ctrl_entity_nil; thread = thread->next) - { - if(thread->is_frozen) - { - ctrl_entity_list_push(scratch.arena, &frozen_threads, thread); - } - } - } - } - - ////////////////////////////// - //- rjf: resolve trap net - // - DMN_TrapChunkList trap_net_traps = {0}; - for(CTRL_TrapNode *node = msg->traps.first; - node != 0; - node = node->next) - { - DMN_Trap trap = {target_process.dmn_handle, node->v.vaddr}; - dmn_trap_chunk_list_push(scratch.arena, &trap_net_traps, 256, &trap); - } - - ////////////////////////////// - //- rjf: join user breakpoints and trap net traps - // - DMN_TrapChunkList joined_traps = {0}; - { - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &user_traps); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &trap_net_traps); - } - - ////////////////////////////// - //- rjf: record start - // - if(stop_event == 0) - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Started; - ctrl_c2u_push_events(&evts); - } - - ////////////////////////////// - //- rjf: run loop - // - if(stop_event == 0) - { - B32 spoof_mode = 0; - CTRL_Spoof spoof = {0}; - DMN_TrapChunkList entry_traps = {0}; - for(U64 run_loop_idx = 0;; run_loop_idx += 1) - { - ////////////////////////// - //- rjf: choose low level traps - // - DMN_TrapChunkList *trap_list = &joined_traps; - if(spoof_mode) - { - trap_list = &user_traps; - } - - ////////////////////////// - //- rjf: choose spoof - // - CTRL_Spoof *run_spoof = 0; - if(spoof_mode) - { - run_spoof = &spoof; - } - - ////////////////////////// - //- rjf: setup run controls - // - DMN_RunCtrls run_ctrls = {0}; - if(run_loop_idx == 0) - { - run_ctrls.priority_thread = target_thread.dmn_handle; - } - run_ctrls.ignore_previous_exception = 1; - run_ctrls.run_entity_count = frozen_threads.count; - run_ctrls.run_entities = push_array(scratch.arena, DMN_Handle, run_ctrls.run_entity_count); - run_ctrls.run_entities_are_unfrozen = 0; - { - U64 idx = 0; - for(CTRL_EntityNode *n = frozen_threads.first; n != 0; n = n->next) - { - run_ctrls.run_entities[idx] = n->v->handle.dmn_handle; - idx += 1; - } - } - run_ctrls.traps = *trap_list; - - ////////////////////////// - //- rjf: get next run-related event - // - log_infof("get_next_event:\n{\n"); - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, run_spoof); - log_infof("}\n\n"); - - ////////////////////////// - //- rjf: determine event handling - // - B32 launch_done_first_module = 0; - B32 hard_stop = 0; - CTRL_EventCause hard_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - B32 use_stepping_logic = 0; - switch(event->kind) - { - default:{}break; - case DMN_EventKind_Error: - case DMN_EventKind_Halt: - case DMN_EventKind_SingleStep: - case DMN_EventKind_Trap: - { - hard_stop = 1; - log_infof("step_rule: unexpected -> hard_stop\n"); - }break; - case DMN_EventKind_Exception: - case DMN_EventKind_Breakpoint: - { - use_stepping_logic = 1; - log_infof("step_rule: exception/breakpoint -> stepping_logic\n"); - }break; - case DMN_EventKind_CreateProcess: - { - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, &ctrl_entity_nil); - { - DMN_TrapChunkList new_traps = {0}; - ctrl_thread__append_resolved_process_user_bp_traps(scratch.arena, eval_scope, ctrl_handle_make(CTRL_MachineID_Local, event->process), &msg->user_bps, &new_traps); - log_infof("step_rule: create_process -> resolve traps\n"); - log_infof("new_traps:\n{\n"); - for(DMN_TrapChunkNode *n = new_traps.first; n != 0; n = n->next) - { - for(U64 idx = 0; idx < n->count; idx += 1) - { - DMN_Trap *trap = &n->v[idx]; - log_infof("{process:[0x%I64x], vaddr:0x%I64x}\n", trap->process.u64[0], trap->vaddr); - } - } - log_infof("}\n\n"); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); - } - ctrl_thread__eval_scope_end(eval_scope); - }break; - case DMN_EventKind_LoadModule: - { - CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->thread)); - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); - { - DMN_TrapChunkList new_traps = {0}; - ctrl_thread__append_resolved_module_user_bp_traps(scratch.arena, eval_scope, ctrl_handle_make(CTRL_MachineID_Local, event->process), ctrl_handle_make(CTRL_MachineID_Local, event->module), &msg->user_bps, &new_traps); - log_infof("step_rule: load_module -> resolve traps\n"); - log_infof("new_traps:\n{\n"); - for(DMN_TrapChunkNode *n = new_traps.first; n != 0; n = n->next) - { - for(U64 idx = 0; idx < n->count; idx += 1) - { - DMN_Trap *trap = &n->v[idx]; - log_infof("{process:[0x%I64x], vaddr:0x%I64x}\n", trap->process.u64[0], trap->vaddr); - } - } - log_infof("}\n\n"); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); - } - ctrl_thread__eval_scope_end(eval_scope); - }break; - case DMN_EventKind_SetBreakpoint: - { - CTRL_Entity *bp = &ctrl_entity_nil; - { - CTRL_Entity *process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->process)); - for(CTRL_Entity *child = process->first; child != &ctrl_entity_nil; child = child->next) - { - if(child->kind == CTRL_EntityKind_Breakpoint && - child->vaddr_range.min == event->address && - child->vaddr_range.max == event->address + event->size && - child->bp_flags == ctrl_user_breakpoint_flags_from_dmn_trap_flags(event->flags)) - { - bp = child; - break; - } - } - } - if(bp != &ctrl_entity_nil) - { - DMN_TrapChunkList new_traps = {0}; - ctrl_thread__append_program_defined_bp_traps(scratch.arena, bp, &new_traps); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); - } - }break; - } - - ////////////////////////// - //- rjf: on launches, detect entry points, place traps - // - if(msg->run_flags & CTRL_RunFlag_StopOnEntryPoint && !launch_done_first_module && event->kind == DMN_EventKind_HandshakeComplete) - { - launch_done_first_module = 1; - Access *access = access_open(); - - //- rjf: unpack process/module info - CTRL_Entity *process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->process)); - CTRL_Entity *module = ctrl_entity_child_from_kind(process, CTRL_EntityKind_Module); - U64 module_base_vaddr = module->vaddr_range.min; - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, max_U64); - RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Procedures); - RDI_ParsedNameMap map = {0}; - rdi_parsed_from_name_map(rdi, unparsed_map, &map); - - //- rjf: add traps for user-specified entry points on this message, if specified - B32 entries_found = 0; - if(!entries_found) - { - for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) - { - U32 procedure_id = 0; - { - String8 name = n->string; - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - entries_found = 1; - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - } - - //- rjf: add traps for module-baked entry points, if specified - if(!entries_found) - { - String8 raddbg_data = ctrl_raddbg_data_from_module(scratch.arena, module->handle); - U8 split_char = 0; - String8List raddbg_data_text_parts = str8_split(scratch.arena, raddbg_data, &split_char, 1, 0); - for(String8Node *text_n = raddbg_data_text_parts.first; text_n != 0; text_n = text_n->next) - { - String8 text = text_n->string; - MD_Node *root = md_tree_from_string(scratch.arena, text); - if(str8_match(root->first->string, str8_lit("entry_point"), 0)) - { - String8 name = root->first->first->string; - U32 procedure_id = 0; - { - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - entries_found = 1; - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - } - } - - //- rjf: add traps for PID-correllated entry points - if(!entries_found) - { - for(CTRL_Entity *e = entity_ctx->root->first; e != &ctrl_entity_nil; e = e->next) - { - if(e->id == process->id) - { - U32 procedure_id = 0; - { - String8 name = e->string; - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - entries_found = 1; - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - } - } - - //- rjf: add traps for all custom user entry points - if(!entries_found) - { - for(String8Node *n = ctrl_state->user_entry_points.first; n != 0; n = n->next) - { - U32 procedure_id = 0; - { - String8 name = n->string; - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - break; - } - } - } - - //- rjf: add traps for all high-level entry points - if(!entries_found) - { - String8 hi_entry_points[] = - { - str8_lit("WinMain"), - str8_lit("wWinMain"), - str8_lit("main"), - str8_lit("wmain"), - }; - for(U64 idx = 0; idx < ArrayCount(hi_entry_points); idx += 1) - { - U32 procedure_id = 0; - { - String8 name = hi_entry_points[idx]; - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - entries_found = 1; - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - } - - //- rjf: add trap for PE header entry - if(!entries_found) - { - U64 voff = ctrl_entry_point_voff_from_module(module->handle); - if(voff != 0) - { - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - - //- rjf: add traps for all low-level entry points - if(!entries_found) - { - String8 lo_entry_points[] = - { - str8_lit("WinMainCRTStartup"), - str8_lit("wWinMainCRTStartup"), - str8_lit("mainCRTStartup"), - str8_lit("wmainCRTStartup"), - }; - for(U64 idx = 0; idx < ArrayCount(lo_entry_points); idx += 1) - { - U32 procedure_id = 0; - { - String8 name = lo_entry_points[idx]; - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - procedure_id = ids[0]; - } - } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); - U64 voff = rdi_first_voff_from_procedure(rdi, procedure); - if(voff != 0) - { - entries_found = 1; - DMN_Trap trap = {process->handle.dmn_handle, module_base_vaddr + voff}; - dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); - } - } - } - - //- rjf: no entry point found -> done - if(entry_traps.trap_count == 0) - { - hard_stop = 1; - } - - //- rjf: found entry points -> add to joined traps - dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &entry_traps); - - access_close(access); - } - - ////////////////////////// - //- rjf: unpack info about thread attached to event - // - CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->thread)); - CTRL_Entity *process = ctrl_entity_from_handle(entity_ctx, ctrl_handle_make(CTRL_MachineID_Local, event->process)); - Arch arch = thread->arch; - U64 thread_rip_vaddr = dmn_rip_from_thread(event->thread); - CTRL_Entity *module = &ctrl_entity_nil; - { - for(CTRL_Entity *m = process->first; m != &ctrl_entity_nil; m = m->next) - { - if(m->kind == CTRL_EntityKind_Module && contains_1u64(m->vaddr_range, thread_rip_vaddr)) - { - module = m; - break; - } - } - } - - ////////////////////////// - //- rjf: extract module-dependent info - // - U64 thread_rip_voff = thread_rip_vaddr - module->vaddr_range.min; - - ////////////////////////// - //- rjf: stepping logic - // - //{ - - ////////////////////////// - //- rjf: handle if hitting a spoof - // - B32 exception_stop = 0; - B32 hit_spoof = 0; - if(!hard_stop && use_stepping_logic && event->kind == DMN_EventKind_Exception) - { - if(spoof_mode && - dmn_handle_match(target_process.dmn_handle, event->process) && - dmn_handle_match(target_thread.dmn_handle, event->thread) && - spoof.new_ip_value == event->address) - { - hit_spoof = 1; - log_infof("hit_spoof\n"); - } - else - { - exception_stop = 1; - use_stepping_logic = 0; - } - } - - //- rjf: handle spoof hit - if(hit_spoof) - { - log_infof("exit_spoof_mode\n"); - - // rjf: clear spoof mode - spoof_mode = 0; - MemoryZeroStruct(&spoof); - - // rjf: skip remainder of handling - use_stepping_logic = 0; - } - - //- rjf: for breakpoint events, gather bp info - B32 hit_entry = 0; - B32 hit_user_bp = 0; - B32 hit_trap_net_bp = 0; - B32 hit_conditional_bp_but_filtered = 0; - CTRL_TrapFlags hit_trap_flags = 0; - if(!hard_stop && use_stepping_logic && event->kind == DMN_EventKind_Breakpoint) - ProfScope("for breakpoint events, gather bp info") - { - Temp temp = temp_begin(scratch.arena); - String8List conditions = {0}; - - // rjf: entry breakpoints - for(DMN_TrapChunkNode *n = entry_traps.first; n != 0; n = n->next) - { - DMN_Trap *trap = n->v; - DMN_Trap *opl = n->v + n->count; - for(;trap < opl; trap += 1) - { - if(dmn_handle_match(trap->process, event->process) && trap->vaddr == event->instruction_pointer) - { - hit_entry = 1; - } - } - } - - // rjf: user breakpoints - { - if(event->user_data != 0) - { - hit_user_bp = 1; - } - for(DMN_TrapChunkNode *n = user_traps.first; n != 0; n = n->next) - { - DMN_Trap *trap = n->v; - DMN_Trap *opl = n->v + n->count; - for(;trap < opl; trap += 1) - { - if(dmn_handle_match(trap->process, event->process) && - trap->vaddr == event->instruction_pointer && - (!dmn_handle_match(event->thread, target_thread.dmn_handle) || !target_thread_is_on_user_bp_and_trap_net_trap)) - { - CTRL_UserBreakpoint *user_bp = (CTRL_UserBreakpoint *)trap->id; - hit_user_bp = 1; - if(user_bp != 0 && !(trap->id & bit64) && user_bp->condition.size != 0) - { - str8_list_push(temp.arena, &conditions, user_bp->condition); - } - } - } - } - } - - // rjf: programmatic user breakpoints (we do not have state for it, - // but the target program(s) did something breakpoint-like, and we - // want to treat it as if we did) - if(event->address != 0) - { - hit_user_bp = 1; - } - - // rjf: evaluate hit stop conditions - if(conditions.node_count != 0) ProfScope("evaluate hit stop conditions") - { - CTRL_EvalScope *eval_scope = ctrl_thread__eval_scope_begin(temp.arena, &msg->user_bps, thread); - for(String8Node *condition_n = conditions.first; condition_n != 0; condition_n = condition_n->next) - { - // rjf: evaluate - E_Eval eval = zero_struct; - ProfScope("evaluate expression") - { - eval = e_eval_from_string(condition_n->string); - } - - // rjf: interpret evaluation - if(eval.code == E_InterpretationCode_Good && eval.value.u64 == 0) - { - hit_user_bp = 0; - hit_conditional_bp_but_filtered = 1; - log_infof("conditional_breakpoint_hit: 'condition eval'd to 0, and so filtered'\n"); - } - else - { - hit_user_bp = 1; - hit_conditional_bp_but_filtered = 0; - log_infof("conditional_breakpoint_hit: 'conditional eval'd to nonzero, hit'\n"); - break; - } - } - ctrl_thread__eval_scope_end(eval_scope); - } - - // rjf: gather trap net hits - ProfScope("gather trap net hits") - { - if(!hit_user_bp && dmn_handle_match(event->process, target_process.dmn_handle)) - { - for(CTRL_TrapNode *node = msg->traps.first; - node != 0; - node = node->next) - { - if(node->v.vaddr == event->instruction_pointer) - { - hit_trap_net_bp = 1; - hit_trap_flags |= node->v.flags; - } - } - } - } - - log_infof("user_breakpoint_hit: %i\n", hit_user_bp); - log_infof("entry_point_hit: %i\n", hit_entry); - temp_end(temp); - } - - //- rjf: hit conditional user bp but filtered -> single step - B32 cond_bp_single_step_stop = 0; - CTRL_EventCause cond_bp_single_step_stop_cause = CTRL_EventCause_Null; - if(hit_conditional_bp_but_filtered) LogInfoNamedBlockF("conditional_bp_hit_single_step") - { - DMN_Handle thread = event->thread; - U64 thread_pre_rip = dmn_rip_from_thread(thread); - U64 thread_post_rip = thread_pre_rip; - for(B32 single_step_done = 0; !single_step_done;) - { - DMN_RunCtrls single_step_ctrls = {0}; - single_step_ctrls.run_entities_are_unfrozen = 1; - single_step_ctrls.run_entities = &thread; - single_step_ctrls.run_entity_count = 1; - if(thread_post_rip == thread_pre_rip) - { - single_step_ctrls.single_step_thread = thread; - } - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); - thread_post_rip = dmn_rip_from_thread(thread); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_Error: - case DMN_EventKind_Exception: - case DMN_EventKind_Halt: - case DMN_EventKind_Trap: - { - cond_bp_single_step_stop = 1; - single_step_done = 1; - use_stepping_logic = 0; - cond_bp_single_step_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - case DMN_EventKind_SingleStep: - { - single_step_done = dmn_handle_match(event->thread, thread); - cond_bp_single_step_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - } - } - } - - //- rjf: hit entry points on *any thread* cause a stop, if this msg says as such - B32 entry_stop = 0; - if(msg->run_flags & CTRL_RunFlag_StopOnEntryPoint && hit_entry) - { - entry_stop = 1; - use_stepping_logic = 0; - } - - //- rjf: user breakpoints on *any thread* cause a stop - B32 user_bp_stop = 0; - if(!hard_stop && use_stepping_logic && hit_user_bp) - { - user_bp_stop = 1; - use_stepping_logic = 0; - } - - //- rjf: trap net on off-target threads are ignored - B32 step_past_trap_net = 0; - if(!hard_stop && use_stepping_logic && hit_trap_net_bp) - { - if(!dmn_handle_match(event->thread, target_thread.dmn_handle)) - { - step_past_trap_net = 1; - use_stepping_logic = 0; - } - } - - //- rjf: trap net on on-target threads trigger trap net logic - B32 use_trap_net_logic = 0; - if(!hard_stop && use_stepping_logic && hit_trap_net_bp) - { - if(dmn_handle_match(event->thread, target_thread.dmn_handle)) - { - use_trap_net_logic = 1; - } - } - - //- rjf: trap net logic: stack pointer check - B32 stack_pointer_matches = 0; - if(use_trap_net_logic) - { - U64 sp = dmn_rsp_from_thread(target_thread.dmn_handle); - stack_pointer_matches = (sp == sp_check_value); - } - - //- rjf: trap net logic: single step after hit - B32 single_step_stop = 0; - CTRL_EventCause single_step_stop_cause = CTRL_EventCause_Null; - if(!hard_stop && use_trap_net_logic) - { - if(hit_trap_flags & CTRL_TrapFlag_SingleStepAfterHit) LogInfoNamedBlockF("trap_net__single_step_after_hit") - { - U64 thread_pre_rip = dmn_rip_from_thread(target_thread.dmn_handle); - U64 thread_post_rip = thread_pre_rip; - for(B32 single_step_done = 0; single_step_done == 0;) - { - DMN_RunCtrls single_step_ctrls = {0}; - single_step_ctrls.run_entities_are_unfrozen = 1; - single_step_ctrls.run_entities = &target_thread.dmn_handle; - single_step_ctrls.run_entity_count = 1; - if(thread_post_rip == thread_pre_rip) - { - single_step_ctrls.single_step_thread = target_thread.dmn_handle; - } - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); - thread_post_rip = dmn_rip_from_thread(target_thread.dmn_handle); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_Error: - case DMN_EventKind_Exception: - case DMN_EventKind_Halt: - case DMN_EventKind_Trap: - { - single_step_stop = 1; - single_step_done = 1; - use_stepping_logic = 0; - use_trap_net_logic = 0; - single_step_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - case DMN_EventKind_SingleStep: - { - single_step_done = dmn_handle_match(event->thread, target_thread.dmn_handle); - single_step_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - } - } - } - } - - //- rjf: trap net logic: begin spoof mode - B32 begin_spoof_mode = 0; - if(!hard_stop && use_trap_net_logic) - { - if(hit_trap_flags & CTRL_TrapFlag_BeginSpoofMode) LogInfoNamedBlockF("trap_net__begin_spoof_mode") - { - // rjf: setup spoof mode - begin_spoof_mode = 1; - U64 spoof_sp = dmn_rsp_from_thread(target_thread.dmn_handle); - spoof_mode = 1; - spoof.process = target_process.dmn_handle; - spoof.thread = target_thread.dmn_handle; - spoof.vaddr = spoof_sp; - spoof.new_ip_value = spoof_ip_vaddr; - log_infof("spoof:{process:[0x%I64x], thread:[0x%I64x], vaddr:0x%I64x, new_ip_value:0x%I64x}\n", spoof.process.u64[0], spoof.thread.u64[0], spoof.vaddr, spoof.new_ip_value); - } - } - - //- rjf: trap net logic: save stack pointer - B32 save_stack_pointer = 0; - if(!hard_stop && use_trap_net_logic) - { - if(hit_trap_flags & CTRL_TrapFlag_SaveStackPointer) - { - if(stack_pointer_matches) LogInfoNamedBlockF("trap_net__save_sp") - { - save_stack_pointer = 1; - sp_check_value = dmn_rsp_from_thread(target_thread.dmn_handle); - log_infof("sp_check_value = 0x%I64x\n", sp_check_value); - } - } - } - - //- rjf: trap net logic: end stepping - B32 trap_net_stop = 0; - if(!hard_stop && use_trap_net_logic) - { - if(hit_trap_flags & CTRL_TrapFlag_EndStepping) LogInfoNamedBlockF("trap_net__end_step") - { - if((hit_trap_flags & CTRL_TrapFlag_IgnoreStackPointerCheck) || - stack_pointer_matches) - { - trap_net_stop = 1; - use_trap_net_logic = 0; - } - } - } - - //} - // - //- rjf: stepping logic - //////////////////////////////// - - //- rjf: handle step past trap net - B32 step_past_trap_net_stop = 0; - CTRL_EventCause step_past_trap_net_stop_cause = CTRL_EventCause_Null; - if(step_past_trap_net) LogInfoNamedBlockF("trap_net__single_step_past_trap_net") - { - DMN_Handle thread = event->thread; - U64 thread_pre_rip = dmn_rip_from_thread(thread); - U64 thread_post_rip = thread_pre_rip; - for(B32 single_step_done = 0; single_step_done == 0;) - { - DMN_RunCtrls single_step_ctrls = {0}; - single_step_ctrls.run_entities_are_unfrozen = 1; - single_step_ctrls.run_entities = &thread; - single_step_ctrls.run_entity_count = 1; - if(thread_post_rip == thread_pre_rip) - { - single_step_ctrls.single_step_thread = thread; - } - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); - thread_post_rip = dmn_rip_from_thread(thread); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_Error: - case DMN_EventKind_Exception: - case DMN_EventKind_Halt: - case DMN_EventKind_Trap: - { - step_past_trap_net_stop = 1; - single_step_done = 1; - step_past_trap_net_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - case DMN_EventKind_SingleStep: - { - single_step_done = dmn_handle_match(event->thread, thread); - step_past_trap_net_stop_cause = ctrl_event_cause_from_dmn_event_kind(event->kind); - }break; - } - } - } - - //- rjf: loop exit condition - CTRL_EventCause stage_stop_cause = CTRL_EventCause_Null; - if(hard_stop) - { - stage_stop_cause = hard_stop_cause; - } - else if(cond_bp_single_step_stop) - { - stage_stop_cause = cond_bp_single_step_stop_cause; - } - else if(single_step_stop) - { - stage_stop_cause = single_step_stop_cause; - } - else if(step_past_trap_net_stop) - { - stage_stop_cause = step_past_trap_net_stop_cause; - } - else if(exception_stop) - { - stage_stop_cause = CTRL_EventCause_InterruptedByException; - } - else if(user_bp_stop) - { - stage_stop_cause = CTRL_EventCause_UserBreakpoint; - } - else if(entry_stop) - { - stage_stop_cause = CTRL_EventCause_EntryPoint; - } - else if(trap_net_stop) - { - stage_stop_cause = CTRL_EventCause_Finished; - } - log_infof("stop_cause: %i\n", stage_stop_cause); - if(stage_stop_cause != CTRL_EventCause_Null) - { - stop_event = event; - stop_cause = stage_stop_cause; - break; - } - } - } - - ////////////////////////////// - //- rjf: record stop - // - if(stop_event != 0) - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = stop_cause; - event->entity = ctrl_handle_make(CTRL_MachineID_Local, stop_event->thread); - event->parent = ctrl_handle_make(CTRL_MachineID_Local, stop_event->process); - event->exception_code = stop_event->code; - event->exception_kind = ctrl_exception_kind_from_dmn(stop_event->exception_kind); - event->vaddr_rng = r1u64(stop_event->address, stop_event->address); - event->rip_vaddr = stop_event->instruction_pointer; - if(stop_cause == CTRL_EventCause_UserBreakpoint && stop_event->user_data != 0) - { - if(!(stop_event->user_data & bit64)) - { - CTRL_UserBreakpoint *user_bp = (CTRL_UserBreakpoint *)stop_event->user_data; - event->u64_code = user_bp->id; - } - } - ctrl_c2u_push_events(&evts); - } - - log_infof("}\n\n"); - scratch_end(scratch); - ProfEnd(); -} - -internal void -ctrl_thread__single_step(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - //- rjf: record start - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Started; - ctrl_c2u_push_events(&evts); - } - - //- rjf: single step - DMN_Handle thread = msg->entity.dmn_handle; - B32 thread_is_valid = !dmn_handle_match(thread, dmn_handle_zero()); - DMN_Event *stop_event = 0; - CTRL_EventCause stop_cause = CTRL_EventCause_Null; - if(thread_is_valid) - { - U64 thread_pre_rip = dmn_rip_from_thread(thread); - U64 thread_post_rip = thread_pre_rip; - for(B32 done = 0; done == 0;) - { - DMN_RunCtrls run_ctrls = {0}; - run_ctrls.run_entities_are_unfrozen = 1; - run_ctrls.run_entities = &thread; - run_ctrls.run_entity_count = 1; - if(thread_post_rip == thread_pre_rip) - { - run_ctrls.single_step_thread = msg->entity.dmn_handle; - } - DMN_Event *event = ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); - thread_post_rip = dmn_rip_from_thread(msg->entity.dmn_handle); - switch(event->kind) - { - default:{}break; - case DMN_EventKind_Error: {stop_cause = CTRL_EventCause_Error;}goto end_single_step; - case DMN_EventKind_Exception: {stop_cause = CTRL_EventCause_InterruptedByException;}goto end_single_step; - case DMN_EventKind_Halt: {stop_cause = CTRL_EventCause_InterruptedByHalt;}goto end_single_step; - case DMN_EventKind_Trap: {stop_cause = CTRL_EventCause_InterruptedByTrap;}goto end_single_step; - case DMN_EventKind_Breakpoint: {stop_cause = CTRL_EventCause_UserBreakpoint;}goto end_single_step; - case DMN_EventKind_SingleStep: {stop_cause = CTRL_EventCause_Finished;}goto end_single_step; - end_single_step: - { - stop_event = event; - done = 1; - }break; - } - } - } - - //- rjf: record stop - { - CTRL_EventList evts = {0}; - CTRL_Event *event = ctrl_event_list_push(scratch.arena, &evts); - event->kind = CTRL_EventKind_Stopped; - event->cause = stop_cause; - if(stop_event != 0) - { - event->entity = ctrl_handle_make(CTRL_MachineID_Local, stop_event->thread); - event->parent = ctrl_handle_make(CTRL_MachineID_Local, stop_event->process); - event->exception_code = stop_event->code; - event->exception_kind = ctrl_exception_kind_from_dmn(stop_event->exception_kind); - event->vaddr_rng = r1u64(stop_event->address, stop_event->address); - event->rip_vaddr = stop_event->instruction_pointer; - } - ctrl_c2u_push_events(&evts); - } - - scratch_end(scratch); - ProfEnd(); -} - -//////////////////////////////// -//~ rjf: Process Memory Artifact Cache Hooks / Lookups - -internal AC_Artifact -ctrl_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) -{ - AC_Artifact artifact = {0}; - { - //- rjf: unpack key - CTRL_Handle process = {0}; - Rng1U64 vaddr_range = {0}; - B32 zero_terminated = 0; - { - U64 key_read_off = 0; - key_read_off += str8_deserial_read_struct(key, key_read_off, &process); - key_read_off += str8_deserial_read_struct(key, key_read_off, &vaddr_range); - key_read_off += str8_deserial_read_struct(key, key_read_off, &zero_terminated); - } - - //- rjf: clamp vaddr range - Rng1U64 vaddr_range_clamped = vaddr_range; - { - vaddr_range_clamped.max = Max(vaddr_range_clamped.max, vaddr_range_clamped.min); - U64 max_size_cap = Min(max_U64-vaddr_range_clamped.min, GB(1)); - vaddr_range_clamped.max = Min(vaddr_range_clamped.max, vaddr_range_clamped.min+max_size_cap); - } - - //- rjf: do read - U64 range_size = dim_1u64(vaddr_range_clamped); - Arena *range_arena = 0; - void *range_base = 0; - U64 zero_terminated_size = 0; - U64 pre_read_mem_gen = ctrl_mem_gen(); - B32 pre_run_state = ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); - if(range_size != 0) - { - // rjf: set up arena - U64 page_size = os_get_system_info()->page_size; // TODO(rjf): @page_size_from_process - U64 arena_size = AlignPow2(range_size + ARENA_HEADER_SIZE, page_size); - range_arena = arena_alloc(.reserve_size = range_size+ARENA_HEADER_SIZE, .commit_size = range_size+ARENA_HEADER_SIZE); - - // rjf: if we got an arena -> push buffer & read - if(range_arena != 0) - { - // rjf: read as much as possible - range_base = push_array_no_zero(range_arena, U8, range_size); - U64 bytes_read = 0; - U64 retry_count = 0; - U64 retry_limit = range_size > page_size ? 64 : 0; - for(Rng1U64 vaddr_range_clamped_retry = vaddr_range_clamped; - retry_count <= retry_limit; - retry_count += 1) - { - bytes_read = dmn_process_read(process.dmn_handle, vaddr_range_clamped_retry, range_base); - if(bytes_read == 0 && vaddr_range_clamped_retry.max > vaddr_range_clamped_retry.min) - { - U64 diff = (vaddr_range_clamped_retry.max-vaddr_range_clamped_retry.min)/2; - vaddr_range_clamped_retry.max -= diff; - vaddr_range_clamped_retry.max = AlignDownPow2(vaddr_range_clamped_retry.max, page_size); - if(diff == 0) - { - break; - } - } - else - { - break; - } - } - - // rjf: if we read nothing, release arena - if(bytes_read == 0) - { - arena_release(range_arena); - range_base = 0; - range_arena = 0; - } - - // rjf: if we only got a partial read, zero the rest - else if(bytes_read < range_size) - { - MemoryZero((U8 *)range_base + bytes_read, range_size-bytes_read); - } - - // rjf: determine final size; zero terminate if needed; pop any unneeded bytes if zero-terminating - zero_terminated_size = bytes_read; - if(zero_terminated && range_base != 0) - { - for(U64 idx = 0; idx < bytes_read; idx += 1) - { - if(((U8 *)range_base)[idx] == 0) - { - zero_terminated_size = idx; - break; - } - } - U64 bytes_overkill = (bytes_read - zero_terminated_size); - arena_pop(range_arena, bytes_overkill); - } - } - } - U64 post_read_mem_gen = ctrl_mem_gen(); - B32 post_run_state = ins_atomic_u64_eval(&ctrl_state->ctrl_thread_run_state); - - //- rjf: form content key - C_Key content_key = {0}; - { - content_key.id.u128[0] = u128_hash_from_str8(key); - } - - //- rjf: determine if we have any history for this key - B32 key_has_history = 0; - { - U128 last_hash = c_hash_from_key(content_key, 0); - if(!u128_match(last_hash, u128_zero())) - { - key_has_history = 1; - } - } - - //- rjf: read successful, OR we have no history -> submit to hash store - U128 hash = {0}; - if((zero_terminated_size > 0 || !key_has_history) && range_base != 0 && range_size != 0 && pre_read_mem_gen == post_read_mem_gen) - { - hash = c_submit_data(content_key, &range_arena, str8((U8 *)range_base, zero_terminated_size)); - gen_out[0] = pre_read_mem_gen; - } - - //- rjf: wakeup on new submissions - if(!u128_match(u128_zero(), hash)) - { - if(ctrl_state->wakeup_hook != 0) - { - ctrl_state->wakeup_hook(); - } - } - - //- rjf: always release leftover arenas - if(range_arena != 0) - { - arena_release(range_arena); - } - - //- rjf: retry on mem gen "tearing", and if the range is non-empty - if(pre_read_mem_gen != post_read_mem_gen && range_size != 0) - { - retry_out[0] = 1; - } - - //- rjf: bundle content key as artifact - StaticAssert(sizeof(content_key) == sizeof(artifact), artifact_key_size_check); - MemoryCopyStruct(&artifact, &content_key); - } - return artifact; -} - -internal void -ctrl_memory_artifact_destroy(AC_Artifact artifact) -{ - C_Key key = {0}; - MemoryCopyStruct(&key, &artifact); - c_close_key(key); -} - -internal C_Key -ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 zero_terminated, B32 wait_for_fresh, U64 endt_us, B32 *out_is_stale) -{ - ProfBeginFunction(); -#pragma pack(push, 1) - struct - { - CTRL_Handle process; - Rng1U64 vaddr_range; - B32 zero_terminated; - } key_data = {process, vaddr_range, zero_terminated}; -#pragma pack(pop) - String8 key = str8_struct(&key_data); - Access *access = access_open(); - AC_Artifact artifact = ac_artifact_from_key(access, key, ctrl_memory_artifact_create, ctrl_memory_artifact_destroy, endt_us, - .flags = AC_Flag_HighPriority | (wait_for_fresh ? AC_Flag_WaitForFresh : 0), - .gen = ctrl_mem_gen(), - .slots_count = 2048, - .stale_out = out_is_stale, - .evict_threshold_us = 10000000); - C_Key content_key = {0}; - MemoryCopyStruct(&content_key, &artifact); - access_close(access); - ProfEnd(); - return content_key; -} - -//- rjf: process memory reading helpers - -internal CTRL_ProcessMemorySlice -ctrl_process_memory_slice_from_vaddr_range(Arena *arena, CTRL_Handle process, Rng1U64 range, B32 wait_for_fresh, U64 endt_us) -{ - ProfBeginFunction(); - CTRL_ProcessMemorySlice result = {0}; - if(range.max > range.min && - dim_1u64(range) <= MB(256) && - range.min <= 0x000FFFFFFFFFFFFFull && - range.max <= 0x000FFFFFFFFFFFFFull) - { - Temp scratch = scratch_begin(&arena, 1); - Access *access = access_open(); - - //- rjf: unpack address range, prepare per-touched-page info - U64 page_size = KB(4); - Rng1U64 page_range = r1u64(AlignDownPow2(range.min, page_size), AlignPow2(range.max, page_size)); - U64 page_count = dim_1u64(page_range)/page_size; - U128 *page_hashes = push_array(scratch.arena, U128, page_count); - U128 *page_last_hashes = push_array(scratch.arena, U128, page_count); - - //- rjf: gather hashes & last-hashes for each page - ProfScope("gather hashes & last-hashes for each page") - { - for(U64 page_idx = 0; page_idx < page_count; page_idx += 1) - { - U64 page_base_vaddr = page_range.min + page_idx*page_size; - B32 page_is_stale = 0; - C_Key page_key = ctrl_key_from_process_vaddr_range(process, r1u64(page_base_vaddr, page_base_vaddr+page_size), 0, wait_for_fresh, endt_us, &page_is_stale); - U128 page_hash = c_hash_from_key(page_key, 0); - U128 page_last_hash = c_hash_from_key(page_key, 1); - result.stale = (result.stale || page_is_stale); - page_hashes[page_idx] = page_hash; - page_last_hashes[page_idx] = page_last_hash; - } - } - - //- rjf: setup output buffers - void *read_out = push_array(arena, U8, dim_1u64(range)); - U64 *byte_bad_flags = push_array(arena, U64, (dim_1u64(range)+63)/64); - U64 *byte_changed_flags = push_array(arena, U64, (dim_1u64(range)+63)/64); - - //- rjf: iterate pages, fill output - ProfScope("iterate pages, fill output") - { - U64 write_off = 0; - for(U64 page_idx = 0; page_idx < page_count; page_idx += 1) - { - // rjf: read data for this page - String8 data = c_data_from_hash(access, page_hashes[page_idx]); - Rng1U64 data_vaddr_range = r1u64(page_range.min + page_idx*page_size, page_range.min + page_idx*page_size+data.size); - - // rjf: skip/chop bytes which are irrelevant for the actual requested read - String8 in_range_data = data; - if(page_idx == page_count-1 && data_vaddr_range.max > range.max) - { - in_range_data = str8_chop(in_range_data, data_vaddr_range.max-range.max); - } - if(page_idx == 0 && range.min > data_vaddr_range.min) - { - in_range_data = str8_skip(in_range_data, range.min-data_vaddr_range.min); - } - - // rjf: write this chunk - MemoryCopy((U8*)read_out+write_off, in_range_data.str, in_range_data.size); - - // rjf; if this page's data doesn't fill the entire range, mark - // missing bytes as bad - if(data.size < page_size) ProfScope("mark missing bytes as bad") - { - Rng1U64 invalid_range = r1u64(data_vaddr_range.min+data.size, data_vaddr_range.min + page_size); - Rng1U64 in_range_invalid_range = intersect_1u64(invalid_range, range); - for(U64 invalid_vaddr = in_range_invalid_range.min; - invalid_vaddr < in_range_invalid_range.max; - invalid_vaddr += 1) - { - U64 idx_in_range = invalid_vaddr - range.min; - byte_bad_flags[idx_in_range/64] |= (1ull<<(idx_in_range%64)); - } - } - - // rjf: if this page's hash & last_hash don't match, diff each byte & - // fill out changed flags - if(!u128_match(page_hashes[page_idx], page_last_hashes[page_idx])) ProfScope("hashes don't match; diff each byte") - { - String8 last_data = c_data_from_hash(access, page_last_hashes[page_idx]); - String8 in_range_last_data = last_data; - if(page_idx == page_count-1 && data_vaddr_range.max > range.max) - { - in_range_last_data = str8_chop(in_range_last_data, data_vaddr_range.max-range.max); - } - if(page_idx == 0 && range.min > data_vaddr_range.min) - { - in_range_last_data = str8_skip(in_range_last_data, range.min-data_vaddr_range.min); - } - for(U64 idx = 0; idx < in_range_data.size; idx += 1) - { - U8 last_byte = idx < in_range_last_data.size ? in_range_last_data.str[idx] : 0; - U8 now_byte = idx < in_range_data.size ? in_range_data.str[idx] : 0; - if(last_byte != now_byte) - { - U64 idx_in_read_out = write_off+idx; - byte_changed_flags[idx_in_read_out/64] |= (1ull<<(idx_in_read_out%64)); - } - } - } - - // rjf: increment past this chunk - U64 bytes_to_skip = page_size; - if(page_idx == 0 && range.min > data_vaddr_range.min) - { - bytes_to_skip -= (range.min-data_vaddr_range.min); - } - write_off += bytes_to_skip; - } - } - - //- rjf: fill result - result.data.str = (U8*)read_out; - result.data.size = dim_1u64(range); - result.byte_bad_flags = byte_bad_flags; - result.byte_changed_flags = byte_changed_flags; - if(byte_bad_flags != 0) - { - for(U64 idx = 0; idx < (dim_1u64(range)+63)/64; idx += 1) - { - result.any_byte_bad = result.any_byte_bad || !!result.byte_bad_flags[idx]; - } - } - if(byte_changed_flags != 0) - { - for(U64 idx = 0; idx < (dim_1u64(range)+63)/64; idx += 1) - { - result.any_byte_changed = result.any_byte_changed || !!result.byte_changed_flags[idx]; - } - } - - access_close(access); - scratch_end(scratch); - } - ProfEnd(); - return result; -} - -internal B32 -ctrl_process_memory_read(CTRL_Handle process, Rng1U64 range, B32 *is_stale_out, void *out, U64 endt_us) -{ - Temp scratch = scratch_begin(0, 0); - U64 needed_size = dim_1u64(range); - CTRL_ProcessMemorySlice slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process, range, 0, endt_us); - B32 good = (slice.data.size >= needed_size && !slice.any_byte_bad); - if(good) - { - MemoryCopy(out, slice.data.str, needed_size); - } - if(slice.stale && is_stale_out) - { - *is_stale_out = 1; - } - scratch_end(scratch); - return good; -} - -//- rjf: process memory writing - -internal B32 -ctrl_process_write(CTRL_Handle process, Rng1U64 range, void *src) -{ - ProfBeginFunction(); - B32 result = dmn_process_write(process.dmn_handle, range, src); - - //- rjf: success -> bump generation - if(result) - { - ins_atomic_u64_inc_eval(&ctrl_state->mem_gen); - } - - //- rjf: success -> wait for cache updates, for small regions - prefer relatively seamless - // writes within calling frame's "view" of the memory, at the expense of a small amount of - // time. - if(result) - { - U64 endt_us = os_now_microseconds()+10000; - U64 page_size = os_get_system_info()->page_size; // TODO(rjf): @page_size_from_process - Rng1U64 page_range = r1u64(range.min/page_size, (range.max+page_size-1)/page_size); - for EachInRange(page_idx, page_range) - { - Temp scratch = scratch_begin(0, 0); - CTRL_ProcessMemorySlice slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process, r1u64(page_idx*page_size, (page_idx+1)*page_size), 1, endt_us); - scratch_end(scratch); - if(!slice.stale || os_now_microseconds() >= endt_us) - { - break; - } - } - } - - ProfEnd(); - return result; -} - -//////////////////////////////// -//~ rjf: Call Stack Artifact Cache Hooks / Lookups - -internal AC_Artifact -ctrl_call_stack_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) -{ - AC_Artifact artifact = {0}; - { - Temp scratch = scratch_begin(0, 0); - - //- rjf: unpack key - CTRL_Handle thread_handle = {0}; - str8_deserial_read_struct(key, 0, &thread_handle); - - //- rjf: produce mini entity context for just this call stack build - CTRL_EntityCtx *entity_ctx = push_array(scratch.arena, CTRL_EntityCtx, 1); - MutexScopeR(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) - { - CTRL_EntityCtx *src_ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_EntityCtx *dst_ctx = entity_ctx; - { - dst_ctx->root = &ctrl_entity_nil; - dst_ctx->hash_slots_count = 1024; - dst_ctx->hash_slots = push_array(scratch.arena, CTRL_EntityHashSlot, dst_ctx->hash_slots_count); - MemoryCopyArray(dst_ctx->entity_kind_counts, src_ctx->entity_kind_counts); - MemoryCopyArray(dst_ctx->entity_kind_alloc_gens, src_ctx->entity_kind_alloc_gens); - } - CTRL_Entity *src_thread = ctrl_entity_from_handle(src_ctx, thread_handle); - CTRL_Entity *src_process = ctrl_process_from_entity(src_thread); - { - CTRL_EntityRec rec = {0}; - CTRL_Entity *dst_parent = &ctrl_entity_nil; - for(CTRL_Entity *src_e = src_process; src_e != &ctrl_entity_nil; src_e = rec.next) - { - rec = ctrl_entity_rec_depth_first_pre(src_e, src_process); - - // rjf: determine if we need this entity - B32 need_this_entity = (ctrl_handle_match(thread_handle, src_e->handle) || src_e->kind == CTRL_EntityKind_Module || src_e->kind == CTRL_EntityKind_Process); - - // rjf: copy this entity - CTRL_Entity *dst_e = &ctrl_entity_nil; - if(need_this_entity) - { - dst_e = push_array(scratch.arena, CTRL_Entity, 1); - { - dst_e->first = dst_e->last = dst_e->next = dst_e->prev = &ctrl_entity_nil; - dst_e->parent = dst_parent; - dst_e->kind = src_e->kind; - dst_e->arch = src_e->arch; - dst_e->is_frozen = src_e->is_frozen; - dst_e->is_soloed = src_e->is_soloed; - dst_e->rgba = src_e->rgba; - dst_e->handle = src_e->handle; - dst_e->id = src_e->id; - dst_e->vaddr_range = src_e->vaddr_range; - dst_e->stack_base = src_e->stack_base; - dst_e->timestamp = src_e->timestamp; - dst_e->bp_flags = src_e->bp_flags; - dst_e->string = push_str8_copy(scratch.arena, src_e->string); - } - if(dst_parent == &ctrl_entity_nil) - { - dst_ctx->root = dst_e; - } - else - { - DLLPushBack_NPZ(&ctrl_entity_nil, dst_parent->first, dst_parent->last, dst_e, next, prev); - } - } - - // rjf: insert into hash map - if(dst_e != &ctrl_entity_nil) - { - U64 hash = ctrl_hash_from_handle(dst_e->handle); - U64 slot_idx = hash%dst_ctx->hash_slots_count; - CTRL_EntityHashSlot *slot = &dst_ctx->hash_slots[slot_idx]; - CTRL_EntityHashNode *node = 0; - for(CTRL_EntityHashNode *n = slot->first; n != 0; n = n->next) - { - if(ctrl_handle_match(n->entity->handle, dst_e->handle)) - { - node = n; - break; - } - } - if(node == 0) - { - node = push_array(scratch.arena, CTRL_EntityHashNode, 1); - MemoryZeroStruct(node); - DLLPushBack(slot->first, slot->last, node); - node->entity = dst_e; - } - } - - // rjf: push/pop - if(rec.push_count) - { - dst_parent = dst_e; - } - else for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1) - { - dst_parent = dst_parent->parent; - } - } - } - } - - //- rjf: compute call stack - CTRL_Entity *thread = ctrl_entity_from_handle(entity_ctx, thread_handle); - B32 good = 1; - B32 retry = 0; - Arena *arena = 0; - CTRL_CallStack *call_stack = 0; - if(thread != &ctrl_entity_nil) - { - good = 0; - arena = arena_alloc(); - call_stack = push_array(arena, CTRL_CallStack, 1); - CTRL_Entity *process = ctrl_process_from_entity(thread); - U64 pre_reg_gen = 0; - U64 post_reg_gen = 0; - U64 pre_mem_gen = 0; - U64 post_mem_gen = 0; - CTRL_Unwind unwind = {0}; - { - pre_reg_gen = ctrl_reg_gen(); - pre_mem_gen = ctrl_mem_gen(); - unwind = ctrl_unwind_from_thread(arena, entity_ctx, thread_handle, os_now_microseconds()+5000); - if(unwind.flags == 0) - { - good = 1; - call_stack[0] = ctrl_call_stack_from_unwind(arena, process, &unwind); - } - if(unwind.flags & CTRL_UnwindFlag_Stale) - { - retry = 1; - } - post_reg_gen = ctrl_reg_gen(); - post_mem_gen = ctrl_mem_gen(); - } - if(pre_reg_gen != post_reg_gen || pre_mem_gen != post_mem_gen) - { - good = 0; - retry = 1; - } - if(!good) - { - arena_release(arena); - } - } - - //- rjf: broadcast update - if(good && ctrl_state->wakeup_hook != 0) - { - ctrl_state->wakeup_hook(); - } - - //- rjf: bundle call stack as artifact - if(good) - { - artifact.u64[0] = (U64)arena; - artifact.u64[1] = (U64)call_stack; - } - - //- rjf: mark retry - retry_out[0] = retry; - - scratch_end(scratch); - } - return artifact; -} - -internal void -ctrl_call_stack_artifact_destroy(AC_Artifact artifact) -{ - Arena *arena = (Arena *)artifact.u64[0]; - if(arena != 0) - { - arena_release(arena); - } -} - -internal CTRL_CallStack -ctrl_call_stack_from_thread(Access *access, CTRL_Handle thread_handle, B32 high_priority, U64 endt_us) -{ - CTRL_CallStack result = {0}; - { - AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&thread_handle), ctrl_call_stack_artifact_create, ctrl_call_stack_artifact_destroy, endt_us, - .gen = ctrl_mem_gen() + ctrl_reg_gen(), - .evict_threshold_us = 10000000, - .flags = high_priority ? AC_Flag_HighPriority : 0); - if(artifact.u64[1] != 0) - { - MemoryCopyStruct(&result, (CTRL_CallStack *)artifact.u64[1]); - } - } - return result; -} - -//////////////////////////////// -//~ rjf: Call Stack Tree Artifact Cache Hooks / Lookups - -internal AC_Artifact -ctrl_call_stack_tree_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) -{ - Temp scratch = scratch_begin(0, 0); - Access *access = access_open(); - - //- rjf: gather list of all thread handles - U64 threads_count = 0; - CTRL_Handle *threads = 0; - CTRL_Handle *threads_processes = 0; - Arch *threads_arches = 0; - MutexScopeR(ctrl_state->ctrl_thread_entity_ctx_rw_mutex) - { - CTRL_EntityCtx *ctx = &ctrl_state->ctrl_thread_entity_store->ctx; - CTRL_EntityArray thread_entities = ctrl_entity_array_from_kind(ctx, CTRL_EntityKind_Thread); - threads_count = thread_entities.count; - threads = push_array(scratch.arena, CTRL_Handle, threads_count); - threads_processes = push_array(scratch.arena, CTRL_Handle, threads_count); - threads_arches = push_array(scratch.arena, Arch, threads_count); - for EachIndex(idx, threads_count) - { - threads[idx] = thread_entities.v[idx]->handle; - threads_processes[idx] = thread_entities.v[idx]->parent->handle; - threads_arches[idx] = thread_entities.v[idx]->arch; - } - } - - //- rjf: gather all callstacks - B32 stale = 0; - U64 pre_mem_gen = ctrl_mem_gen(); - U64 pre_reg_gen = ctrl_reg_gen(); - CTRL_CallStack *call_stacks = push_array(scratch.arena, CTRL_CallStack, threads_count); - { - for EachIndex(idx, threads_count) - { - call_stacks[idx] = ctrl_call_stack_from_thread(access, threads[idx], 0, 0); - if(call_stacks[idx].concrete_frames_count == 0) - { - stale = 1; - break; - } - } - } - U64 post_mem_gen = ctrl_mem_gen(); - U64 post_reg_gen = ctrl_reg_gen(); - stale = (stale || pre_mem_gen != post_mem_gen || pre_reg_gen != post_reg_gen); - - //- rjf: build call stack tree - Arena *arena = 0; - CTRL_CallStackTree *tree = 0; - if(!stale) - { - U64 id_gen = 0; - arena = arena_alloc(); - tree = push_array(arena, CTRL_CallStackTree, 1); - tree->root = push_array(arena, CTRL_CallStackTreeNode, 1); - MemoryCopyStruct(tree->root, &ctrl_call_stack_tree_node_nil); - tree->root->id = id_gen; - tree->slots_count = Max(1, threads_count); - tree->slots = push_array(arena, CTRL_CallStackTreeNode *, tree->slots_count); - id_gen += 1; - for EachIndex(thread_idx, threads_count) - { - CTRL_Handle thread = threads[thread_idx]; - CTRL_Handle process = threads_processes[thread_idx]; - Arch arch = threads_arches[thread_idx]; - CTRL_CallStack call_stack = call_stacks[thread_idx]; - CTRL_CallStackTreeNode *thread_node = tree->root; - for EachIndex(frame_idx, call_stack.frames_count) - { - U64 vaddr = regs_rip_from_arch_block(arch, call_stack.frames[frame_idx].regs); - U64 depth = call_stack.frames[frame_idx].inline_depth; - CTRL_CallStackTreeNode *next_node = &ctrl_call_stack_tree_node_nil; - for(CTRL_CallStackTreeNode *child = thread_node->first; child != &ctrl_call_stack_tree_node_nil; child = child->next) - { - if(ctrl_handle_match(child->process, process) && child->vaddr == vaddr && child->depth == depth) - { - next_node = child; - break; - } - } - if(next_node == &ctrl_call_stack_tree_node_nil) - { - next_node = push_array(arena, CTRL_CallStackTreeNode, 1); - MemoryCopyStruct(next_node, &ctrl_call_stack_tree_node_nil); - next_node->id = id_gen; - SLLStackPush_N(tree->slots[next_node->id%tree->slots_count], next_node, hash_next); - id_gen += 1; - SLLQueuePush_NZ(&ctrl_call_stack_tree_node_nil, thread_node->first, thread_node->last, next_node, next); - next_node->parent = thread_node; - thread_node->child_count += 1; - } - thread_node = next_node; - } - ctrl_handle_list_push(arena, &thread_node->threads, &thread); - for(CTRL_CallStackTreeNode *n = thread_node; n != &ctrl_call_stack_tree_node_nil; n = n->parent) - { - n->all_descendant_threads_count += 1; - } - } - } - - //- rjf: produce artifact - AC_Artifact artifact = {0}; - { - artifact.u64[0] = (U64)arena; - artifact.u64[1] = (U64)tree; - } - - //- rjf: retry on stale - if(stale) - { - retry_out[0] = 1; - } - - access_close(access); - scratch_end(scratch); - return artifact; -} - -internal void -ctrl_call_stack_tree_artifact_destroy(AC_Artifact artifact) -{ - Arena *arena = (Arena *)artifact.u64[0]; - if(arena != 0) - { - arena_release(arena); - } -} - -internal CTRL_CallStackTree -ctrl_call_stack_tree(Access *access, U64 endt_us) -{ - CTRL_CallStackTree result = {&ctrl_call_stack_tree_node_nil}; - { - AC_Artifact artifact = ac_artifact_from_key(access, str8_zero(), ctrl_call_stack_tree_artifact_create, ctrl_call_stack_tree_artifact_destroy, endt_us); - if(artifact.u64[1] != 0) - { - MemoryCopyStruct(&result, (CTRL_CallStackTree *)artifact.u64[1]); - } - } - return result; -} diff --git a/src/ctrl/ctrl_core.h b/src/ctrl/ctrl_core.h deleted file mode 100644 index f7304452..00000000 --- a/src/ctrl/ctrl_core.h +++ /dev/null @@ -1,1032 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef CTRL_CORE_H -#define CTRL_CORE_H - -//////////////////////////////// -//~ rjf: ID Types - -typedef U64 CTRL_MsgID; -typedef U64 CTRL_MachineID; - -#define CTRL_MachineID_Local (1) - -//////////////////////////////// -//~ rjf: User Breakpoint Types - -typedef U32 CTRL_UserBreakpointFlags; -enum -{ - CTRL_UserBreakpointFlag_BreakOnWrite = (1<<0), - CTRL_UserBreakpointFlag_BreakOnRead = (1<<1), - CTRL_UserBreakpointFlag_BreakOnExecute = (1<<2), -}; - -typedef enum CTRL_UserBreakpointKind -{ - CTRL_UserBreakpointKind_Null, - CTRL_UserBreakpointKind_FileNameAndLineColNumber, - CTRL_UserBreakpointKind_Expression, - CTRL_UserBreakpointKind_COUNT -} -CTRL_UserBreakpointKind; - -typedef struct CTRL_UserBreakpoint CTRL_UserBreakpoint; -struct CTRL_UserBreakpoint -{ - CTRL_UserBreakpointKind kind; - CTRL_UserBreakpointFlags flags; - U64 id; - String8 string; - TxtPt pt; - U64 size; - String8 condition; -}; - -typedef struct CTRL_UserBreakpointNode CTRL_UserBreakpointNode; -struct CTRL_UserBreakpointNode -{ - CTRL_UserBreakpointNode *next; - CTRL_UserBreakpoint v; -}; - -typedef struct CTRL_UserBreakpointList CTRL_UserBreakpointList; -struct CTRL_UserBreakpointList -{ - CTRL_UserBreakpointNode *first; - CTRL_UserBreakpointNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Entity Handle Types - -typedef struct CTRL_Handle CTRL_Handle; -struct CTRL_Handle -{ - CTRL_MachineID machine_id; - DMN_Handle dmn_handle; -}; - -typedef struct CTRL_HandleNode CTRL_HandleNode; -struct CTRL_HandleNode -{ - CTRL_HandleNode *next; - CTRL_Handle v; -}; - -typedef struct CTRL_HandleList CTRL_HandleList; -struct CTRL_HandleList -{ - CTRL_HandleNode *first; - CTRL_HandleNode *last; - U64 count; -}; - -typedef struct CTRL_HandleArray CTRL_HandleArray; -struct CTRL_HandleArray -{ - CTRL_Handle *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Generated Code - -#include "generated/ctrl.meta.h" - -//////////////////////////////// -//~ rjf: Entity Types - -typedef struct CTRL_Entity CTRL_Entity; -struct CTRL_Entity -{ - CTRL_Entity *first; - CTRL_Entity *last; - CTRL_Entity *next; - CTRL_Entity *prev; - CTRL_Entity *parent; - CTRL_EntityKind kind; - Arch arch; - B32 is_frozen; - B32 is_soloed; - U32 rgba; - CTRL_Handle handle; - U64 id; - Rng1U64 vaddr_range; - U64 stack_base; - U64 timestamp; - CTRL_UserBreakpointFlags bp_flags; - String8 string; -}; - -typedef struct CTRL_EntityNode CTRL_EntityNode; -struct CTRL_EntityNode -{ - CTRL_EntityNode *next; - CTRL_Entity *v; -}; - -typedef struct CTRL_EntityList CTRL_EntityList; -struct CTRL_EntityList -{ - CTRL_EntityNode *first; - CTRL_EntityNode *last; - U64 count; -}; - -typedef struct CTRL_EntityArray CTRL_EntityArray; -struct CTRL_EntityArray -{ - CTRL_Entity **v; - U64 count; -}; - -typedef struct CTRL_EntityRec CTRL_EntityRec; -struct CTRL_EntityRec -{ - CTRL_Entity *next; - S32 push_count; - S64 pop_count; -}; - -typedef struct CTRL_EntityHashNode CTRL_EntityHashNode; -struct CTRL_EntityHashNode -{ - CTRL_EntityHashNode *next; - CTRL_EntityHashNode *prev; - CTRL_Entity *entity; -}; - -typedef struct CTRL_EntityHashSlot CTRL_EntityHashSlot; -struct CTRL_EntityHashSlot -{ - CTRL_EntityHashNode *first; - CTRL_EntityHashNode *last; -}; - -typedef struct CTRL_EntityStringChunkNode CTRL_EntityStringChunkNode; -struct CTRL_EntityStringChunkNode -{ - CTRL_EntityStringChunkNode *next; - U64 size; -}; - -read_only global U64 ctrl_entity_string_bucket_chunk_sizes[] = -{ - 16, - 64, - 256, - 1024, - 4096, - 16384, - 65536, - 0xffffffffffffffffull, -}; - -typedef struct CTRL_EntityCtx CTRL_EntityCtx; -struct CTRL_EntityCtx -{ - CTRL_Entity *root; - U64 hash_slots_count; - CTRL_EntityHashSlot *hash_slots; - U64 entity_kind_counts[CTRL_EntityKind_COUNT]; - U64 entity_kind_alloc_gens[CTRL_EntityKind_COUNT]; -}; - -typedef struct CTRL_EntityCtxRWStore CTRL_EntityCtxRWStore; -struct CTRL_EntityCtxRWStore -{ - Arena *arena; - CTRL_EntityCtx ctx; - CTRL_Entity *free; - CTRL_EntityHashNode *hash_node_free; - CTRL_EntityStringChunkNode *free_string_chunks[ArrayCount(ctrl_entity_string_bucket_chunk_sizes)]; -}; - -typedef struct CTRL_EntityCtxLookupAccel CTRL_EntityCtxLookupAccel; -struct CTRL_EntityCtxLookupAccel -{ - Arena *arena; - Arena *entity_kind_arrays_arenas[CTRL_EntityKind_COUNT]; - CTRL_EntityArray entity_kind_arrays[CTRL_EntityKind_COUNT]; - U64 entity_kind_arrays_gens[CTRL_EntityKind_COUNT]; -}; - -//////////////////////////////// -//~ rjf: Unwind Types - -typedef U32 CTRL_UnwindFlags; -enum -{ - CTRL_UnwindFlag_Error = (1<<0), - CTRL_UnwindFlag_Stale = (1<<1), -}; - -typedef struct CTRL_UnwindStepResult CTRL_UnwindStepResult; -struct CTRL_UnwindStepResult -{ - CTRL_UnwindFlags flags; -}; - -typedef struct CTRL_UnwindFrame CTRL_UnwindFrame; -struct CTRL_UnwindFrame -{ - void *regs; -}; - -typedef struct CTRL_UnwindFrameNode CTRL_UnwindFrameNode; -struct CTRL_UnwindFrameNode -{ - CTRL_UnwindFrameNode *next; - CTRL_UnwindFrameNode *prev; - CTRL_UnwindFrame v; -}; - -typedef struct CTRL_UnwindFrameArray CTRL_UnwindFrameArray; -struct CTRL_UnwindFrameArray -{ - CTRL_UnwindFrame *v; - U64 count; -}; - -typedef struct CTRL_Unwind CTRL_Unwind; -struct CTRL_Unwind -{ - CTRL_UnwindFrameArray frames; - CTRL_UnwindFlags flags; -}; - -//////////////////////////////// -//~ rjf: Call Stack Types - -typedef struct CTRL_CallStackFrame CTRL_CallStackFrame; -struct CTRL_CallStackFrame -{ - U64 unwind_count; - U64 inline_depth; - void *regs; -}; - -typedef struct CTRL_CallStack CTRL_CallStack; -struct CTRL_CallStack -{ - CTRL_CallStackFrame *frames; - U64 frames_count; - CTRL_CallStackFrame **concrete_frames; - U64 concrete_frames_count; -}; - -//////////////////////////////// -//~ rjf: Call Stack Tree Types - -typedef struct CTRL_CallStackTreeNode CTRL_CallStackTreeNode; -struct CTRL_CallStackTreeNode -{ - CTRL_CallStackTreeNode *hash_next; - CTRL_CallStackTreeNode *first; - CTRL_CallStackTreeNode *last; - CTRL_CallStackTreeNode *next; - CTRL_CallStackTreeNode *parent; - U64 child_count; - U64 id; - CTRL_Handle process; - U64 vaddr; - U64 depth; - CTRL_HandleList threads; - U64 all_descendant_threads_count; -}; - -typedef struct CTRL_CallStackTree CTRL_CallStackTree; -struct CTRL_CallStackTree -{ - CTRL_CallStackTreeNode *root; - U64 slots_count; - CTRL_CallStackTreeNode **slots; -}; - -//////////////////////////////// -//~ rjf: Trap Types - -typedef U32 CTRL_TrapFlags; -enum -{ - CTRL_TrapFlag_IgnoreStackPointerCheck = (1<<0), - CTRL_TrapFlag_SingleStepAfterHit = (1<<1), - CTRL_TrapFlag_SaveStackPointer = (1<<2), - CTRL_TrapFlag_BeginSpoofMode = (1<<3), - CTRL_TrapFlag_EndStepping = (1<<4), -}; - -typedef struct CTRL_Trap CTRL_Trap; -struct CTRL_Trap -{ - CTRL_TrapFlags flags; - U64 vaddr; -}; - -typedef struct CTRL_TrapNode CTRL_TrapNode; -struct CTRL_TrapNode -{ - CTRL_TrapNode *next; - CTRL_Trap v; -}; - -typedef struct CTRL_TrapList CTRL_TrapList; -struct CTRL_TrapList -{ - CTRL_TrapNode *first; - CTRL_TrapNode *last; - U64 count; -}; - -typedef struct CTRL_Spoof CTRL_Spoof; -struct CTRL_Spoof -{ - DMN_Handle process; - DMN_Handle thread; - U64 vaddr; - U64 new_ip_value; -}; - -//////////////////////////////// -//~ rjf: Evaluation Spaces - -typedef U64 CTRL_EvalSpaceKind; -enum -{ - CTRL_EvalSpaceKind_Entity = E_SpaceKind_FirstUserDefined, - CTRL_EvalSpaceKind_FirstUserDefined, -}; - -//////////////////////////////// -//~ rjf: Message Types - -typedef enum CTRL_MsgKind -{ - CTRL_MsgKind_Null, - CTRL_MsgKind_Launch, - CTRL_MsgKind_Attach, - CTRL_MsgKind_Kill, - CTRL_MsgKind_KillAll, - CTRL_MsgKind_Detach, - CTRL_MsgKind_Run, - CTRL_MsgKind_SingleStep, - CTRL_MsgKind_SetUserEntryPoints, - CTRL_MsgKind_SetModuleDebugInfoPath, - CTRL_MsgKind_FreezeThread, - CTRL_MsgKind_ThawThread, - CTRL_MsgKind_COUNT, -} -CTRL_MsgKind; - -typedef U32 CTRL_RunFlags; -enum -{ - CTRL_RunFlag_StopOnEntryPoint = (1<<0), -}; - -typedef struct CTRL_Msg CTRL_Msg; -struct CTRL_Msg -{ - CTRL_MsgKind kind; - CTRL_RunFlags run_flags; - CTRL_MsgID msg_id; - CTRL_Handle entity; - CTRL_Handle parent; - U32 entity_id; - U32 exit_code; - B32 env_inherit; - B32 debug_subprocesses; - U64 exception_code_filters[(CTRL_ExceptionCodeKind_COUNT+63)/64]; - String8 path; - String8List entry_points; - String8List cmd_line_string_list; - String8List env_string_list; - String8 stdout_path; - String8 stderr_path; - String8 stdin_path; - CTRL_TrapList traps; - CTRL_UserBreakpointList user_bps; -}; - -typedef struct CTRL_MsgNode CTRL_MsgNode; -struct CTRL_MsgNode -{ - CTRL_MsgNode *next; - CTRL_Msg v; -}; - -typedef struct CTRL_MsgList CTRL_MsgList; -struct CTRL_MsgList -{ - CTRL_MsgNode *first; - CTRL_MsgNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Event Types - -typedef enum CTRL_EventKind -{ - CTRL_EventKind_Null, - CTRL_EventKind_Error, - - //- rjf: starts/stops - CTRL_EventKind_Started, - CTRL_EventKind_Stopped, - - //- rjf: entity creation/deletion - CTRL_EventKind_NewProc, - CTRL_EventKind_NewThread, - CTRL_EventKind_NewModule, - CTRL_EventKind_EndProc, - CTRL_EventKind_EndThread, - CTRL_EventKind_EndModule, - - //- rjf: thread freeze state changes - CTRL_EventKind_ThreadFrozen, - CTRL_EventKind_ThreadThawed, - - //- rjf: debug info changes - CTRL_EventKind_ModuleDebugInfoPathChange, - - //- rjf: debug strings / decorations / markup - CTRL_EventKind_DebugString, - CTRL_EventKind_ThreadName, - CTRL_EventKind_ThreadColor, - CTRL_EventKind_SetBreakpoint, - CTRL_EventKind_UnsetBreakpoint, - CTRL_EventKind_SetVAddrRangeNote, - - //- rjf: memory - CTRL_EventKind_MemReserve, - CTRL_EventKind_MemCommit, - CTRL_EventKind_MemDecommit, - CTRL_EventKind_MemRelease, - - CTRL_EventKind_COUNT -} -CTRL_EventKind; - -typedef enum CTRL_EventCause -{ - CTRL_EventCause_Null, - CTRL_EventCause_Error, - CTRL_EventCause_Finished, - CTRL_EventCause_EntryPoint, - CTRL_EventCause_UserBreakpoint, - CTRL_EventCause_InterruptedByTrap, - CTRL_EventCause_InterruptedByException, - CTRL_EventCause_InterruptedByHalt, - CTRL_EventCause_COUNT -} -CTRL_EventCause; - -typedef enum CTRL_ExceptionKind -{ - CTRL_ExceptionKind_Null, - CTRL_ExceptionKind_MemoryRead, - CTRL_ExceptionKind_MemoryWrite, - CTRL_ExceptionKind_MemoryExecute, - CTRL_ExceptionKind_CppThrow, - CTRL_ExceptionKind_COUNT -} -CTRL_ExceptionKind; - -typedef struct CTRL_Event CTRL_Event; -struct CTRL_Event -{ - CTRL_EventKind kind; - CTRL_EventCause cause; - CTRL_ExceptionKind exception_kind; - CTRL_MsgID msg_id; - CTRL_Handle entity; - CTRL_Handle parent; - Arch arch; - U64 u64_code; - U32 entity_id; - Rng1U64 vaddr_rng; - U64 rip_vaddr; - U64 stack_base; - U64 tls_root; - U64 timestamp; - U32 exception_code; - U32 rgba; - CTRL_UserBreakpointFlags bp_flags; - String8 string; -}; - -typedef struct CTRL_EventNode CTRL_EventNode; -struct CTRL_EventNode -{ - CTRL_EventNode *next; - CTRL_Event v; -}; - -typedef struct CTRL_EventList CTRL_EventList; -struct CTRL_EventList -{ - CTRL_EventNode *first; - CTRL_EventNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Process Memory Types - -typedef struct CTRL_ProcessMemorySlice CTRL_ProcessMemorySlice; -struct CTRL_ProcessMemorySlice -{ - String8 data; - U64 *byte_bad_flags; - U64 *byte_changed_flags; - B32 stale; - B32 any_byte_bad; - B32 any_byte_changed; -}; - -//////////////////////////////// -//~ rjf: Thread Register Cache Types - -typedef struct CTRL_ThreadRegCacheNode CTRL_ThreadRegCacheNode; -struct CTRL_ThreadRegCacheNode -{ - CTRL_ThreadRegCacheNode *next; - CTRL_ThreadRegCacheNode *prev; - CTRL_Handle handle; - U64 block_size; - void *block; - U64 reg_gen; -}; - -typedef struct CTRL_ThreadRegCacheSlot CTRL_ThreadRegCacheSlot; -struct CTRL_ThreadRegCacheSlot -{ - CTRL_ThreadRegCacheNode *first; - CTRL_ThreadRegCacheNode *last; -}; - -typedef struct CTRL_ThreadRegCacheStripe CTRL_ThreadRegCacheStripe; -struct CTRL_ThreadRegCacheStripe -{ - Arena *arena; - RWMutex rw_mutex; -}; - -typedef struct CTRL_ThreadRegCache CTRL_ThreadRegCache; -struct CTRL_ThreadRegCache -{ - U64 slots_count; - CTRL_ThreadRegCacheSlot *slots; - U64 stripes_count; - CTRL_ThreadRegCacheStripe *stripes; -}; - -//////////////////////////////// -//~ rjf: Module Image Info Cache Types - -typedef struct CTRL_ModuleImageInfoCacheNode CTRL_ModuleImageInfoCacheNode; -struct CTRL_ModuleImageInfoCacheNode -{ - CTRL_ModuleImageInfoCacheNode *next; - CTRL_ModuleImageInfoCacheNode *prev; - CTRL_Handle module; - Arena *arena; - PE_IntelPdata *pdatas; - U64 pdatas_count; - U64 entry_point_voff; - Rng1U64 tls_vaddr_range; - String8 initial_debug_info_path; - Rng1U64 raddbg_section_voff_range; - String8 raddbg_data; -}; - -typedef struct CTRL_ModuleImageInfoCacheSlot CTRL_ModuleImageInfoCacheSlot; -struct CTRL_ModuleImageInfoCacheSlot -{ - CTRL_ModuleImageInfoCacheNode *first; - CTRL_ModuleImageInfoCacheNode *last; -}; - -typedef struct CTRL_ModuleImageInfoCacheStripe CTRL_ModuleImageInfoCacheStripe; -struct CTRL_ModuleImageInfoCacheStripe -{ - Arena *arena; - RWMutex rw_mutex; -}; - -typedef struct CTRL_ModuleImageInfoCache CTRL_ModuleImageInfoCache; -struct CTRL_ModuleImageInfoCache -{ - U64 slots_count; - CTRL_ModuleImageInfoCacheSlot *slots; - U64 stripes_count; - CTRL_ModuleImageInfoCacheStripe *stripes; -}; - -//////////////////////////////// -//~ rjf: Touched Debug Info Directory Cache - -typedef struct CTRL_DbgDirNode CTRL_DbgDirNode; -struct CTRL_DbgDirNode -{ - CTRL_DbgDirNode *first; - CTRL_DbgDirNode *last; - CTRL_DbgDirNode *next; - CTRL_DbgDirNode *prev; - CTRL_DbgDirNode *parent; - String8 name; - U64 search_count; - U64 child_count; - U64 module_direct_count; -}; - -//////////////////////////////// -//~ rjf: Control Thread Evaluation Scopes - -typedef struct CTRL_EvalScope CTRL_EvalScope; -struct CTRL_EvalScope -{ - Access *access; - E_BaseCtx base_ctx; - E_IRCtx ir_ctx; - E_InterpretCtx interpret_ctx; -}; - -//////////////////////////////// -//~ rjf: Module Requirement Cache Types - -typedef struct CTRL_ModuleReqCacheNode CTRL_ModuleReqCacheNode; -struct CTRL_ModuleReqCacheNode -{ - CTRL_ModuleReqCacheNode *next; - CTRL_Handle module; - B32 required; -}; - -//////////////////////////////// -//~ rjf: Wakeup Hook Function Types - -#define CTRL_WAKEUP_FUNCTION_DEF(name) void name(void) -typedef CTRL_WAKEUP_FUNCTION_DEF(CTRL_WakeupFunctionType); - -//////////////////////////////// -//~ rjf: Main State Types - -typedef struct CTRL_State CTRL_State; -struct CTRL_State -{ - Arena *arena; - CTRL_WakeupFunctionType *wakeup_hook; - - // rjf: name -> register/alias hash tables for eval - E_String2NumMap arch_string2reg_tables[Arch_COUNT]; - E_String2NumMap arch_string2alias_tables[Arch_COUNT]; - - // rjf: caches - CTRL_ThreadRegCache thread_reg_cache; - CTRL_ModuleImageInfoCache module_image_info_cache; - - // rjf: generations - U64 run_gen; - U64 mem_gen; - U64 reg_gen; - - // rjf: user -> ctrl msg ring buffer - U64 u2c_ring_size; - U8 *u2c_ring_base; - U64 u2c_ring_write_pos; - U64 u2c_ring_read_pos; - Mutex u2c_ring_mutex; - CondVar u2c_ring_cv; - - // rjf: ctrl -> user event ring buffer - U64 c2u_ring_size; - U64 c2u_ring_max_string_size; - U8 *c2u_ring_base; - U64 c2u_ring_write_pos; - U64 c2u_ring_read_pos; - Mutex c2u_ring_mutex; - CondVar c2u_ring_cv; - - // rjf: ctrl thread state - U64 ctrl_thread_run_state; - String8 ctrl_thread_log_path; - Thread ctrl_thread; - Log *ctrl_thread_log; - RWMutex ctrl_thread_entity_ctx_rw_mutex; - CTRL_EntityCtxRWStore *ctrl_thread_entity_store; - E_Cache *ctrl_thread_eval_cache; - Arena *ctrl_thread_msg_process_arena; - Arena *dmn_event_arena; - DMN_EventNode *first_dmn_event_node; - DMN_EventNode *last_dmn_event_node; - DMN_EventNode *free_dmn_event_node; - Arena *user_entry_point_arena; - String8List user_entry_points; - U64 exception_code_filters[(CTRL_ExceptionCodeKind_COUNT+63)/64]; - U64 process_counter; - Arena *dbg_dir_arena; - CTRL_DbgDirNode *dbg_dir_root; - U64 module_req_cache_slots_count; - CTRL_ModuleReqCacheNode **module_req_cache_slots; - String8List msg_user_bp_touched_files; - String8List msg_user_bp_touched_symbols; -}; - -//////////////////////////////// -//~ rjf: Globals - -global CTRL_State *ctrl_state = 0; -read_only global CTRL_Entity ctrl_entity_nil = -{ - &ctrl_entity_nil, - &ctrl_entity_nil, - &ctrl_entity_nil, - &ctrl_entity_nil, - &ctrl_entity_nil, -}; -read_only global CTRL_CallStackTreeNode ctrl_call_stack_tree_node_nil = -{ - 0, - &ctrl_call_stack_tree_node_nil, - &ctrl_call_stack_tree_node_nil, - &ctrl_call_stack_tree_node_nil, - &ctrl_call_stack_tree_node_nil, -}; -thread_static CTRL_EntityCtxLookupAccel *ctrl_entity_ctx_lookup_accel = 0; - -//////////////////////////////// -//~ rjf: Logging Markup - -#define CTRL_CtrlThreadLogScope DeferLoop(log_scope_begin(), ctrl_thread__end_and_flush_log()) - -//////////////////////////////// -//~ rjf: Basic Type Functions - -internal U64 ctrl_hash_from_string(String8 string); -internal U64 ctrl_hash_from_handle(CTRL_Handle handle); -internal CTRL_EventCause ctrl_event_cause_from_dmn_event_kind(DMN_EventKind event_kind); -internal CTRL_ExceptionKind ctrl_exception_kind_from_dmn(DMN_ExceptionKind kind); -internal String8 ctrl_string_from_event_kind(CTRL_EventKind kind); -internal String8 ctrl_string_from_msg_kind(CTRL_MsgKind kind); -internal CTRL_EntityKind ctrl_entity_kind_from_string(String8 string); -internal DMN_TrapFlags ctrl_dmn_trap_flags_from_user_breakpoint_flags(CTRL_UserBreakpointFlags flags); -internal CTRL_UserBreakpointFlags ctrl_user_breakpoint_flags_from_dmn_trap_flags(DMN_TrapFlags flags); - -//////////////////////////////// -//~ rjf: Handle Type Functions - -internal CTRL_Handle ctrl_handle_zero(void); -internal CTRL_Handle ctrl_handle_make(CTRL_MachineID machine_id, DMN_Handle dmn_handle); -internal B32 ctrl_handle_match(CTRL_Handle a, CTRL_Handle b); -internal void ctrl_handle_list_push(Arena *arena, CTRL_HandleList *list, CTRL_Handle *pair); -internal CTRL_HandleList ctrl_handle_list_copy(Arena *arena, CTRL_HandleList *src); -internal CTRL_HandleArray ctrl_handle_array_from_list(Arena *arena, CTRL_HandleList *src); -internal String8 ctrl_string_from_handle(Arena *arena, CTRL_Handle handle); -internal CTRL_Handle ctrl_handle_from_string(String8 string); - -//////////////////////////////// -//~ rjf: Trap Type Functions - -internal void ctrl_trap_list_push(Arena *arena, CTRL_TrapList *list, CTRL_Trap *trap); -internal CTRL_TrapList ctrl_trap_list_copy(Arena *arena, CTRL_TrapList *src); - -//////////////////////////////// -//~ rjf: User Breakpoint Type Functions - -internal void ctrl_user_breakpoint_list_push(Arena *arena, CTRL_UserBreakpointList *list, CTRL_UserBreakpoint *bp); -internal CTRL_UserBreakpointList ctrl_user_breakpoint_list_copy(Arena *arena, CTRL_UserBreakpointList *src); - -//////////////////////////////// -//~ rjf: Message Type Functions - -//- rjf: deep copying -internal void ctrl_msg_deep_copy(Arena *arena, CTRL_Msg *dst, CTRL_Msg *src); - -//- rjf: list building -internal CTRL_Msg *ctrl_msg_list_push(Arena *arena, CTRL_MsgList *list); -internal CTRL_MsgList ctrl_msg_list_deep_copy(Arena *arena, CTRL_MsgList *src); -internal void ctrl_msg_list_concat_in_place(CTRL_MsgList *dst, CTRL_MsgList *src); - -//- rjf: serialization -internal String8 ctrl_serialized_string_from_msg_list(Arena *arena, CTRL_MsgList *msgs); -internal CTRL_MsgList ctrl_msg_list_from_serialized_string(Arena *arena, String8 string); - -//////////////////////////////// -//~ rjf: Event Type Functions - -//- rjf: list building -internal CTRL_Event *ctrl_event_list_push(Arena *arena, CTRL_EventList *list); -internal void ctrl_event_list_concat_in_place(CTRL_EventList *dst, CTRL_EventList *to_push); - -//- rjf: serialization -internal String8 ctrl_serialized_string_from_event(Arena *arena, CTRL_Event *event, U64 max); -internal CTRL_Event ctrl_event_from_serialized_string(Arena *arena, String8 string); - -//////////////////////////////// -//~ rjf: Entity Type Functions - -//- rjf: entity list data structures -internal void ctrl_entity_list_push(Arena *arena, CTRL_EntityList *list, CTRL_Entity *entity); -internal CTRL_EntityList ctrl_entity_list_from_handle_list(Arena *arena, CTRL_EntityCtx *ctx, CTRL_HandleList *list); -#define ctrl_entity_list_first(list) ((list)->first ? (list)->first->v : &ctrl_entity_nil) - -//- rjf: entity array data structure -internal CTRL_EntityArray ctrl_entity_array_from_list(Arena *arena, CTRL_EntityList *list); -#define ctrl_entity_array_first(array) ((array)->count != 0 ? (array)->v[0] : &ctrl_entity_nil) - -//- rjf: entity context (entity group read-only) functions -internal CTRL_Entity *ctrl_entity_from_handle(CTRL_EntityCtx *ctx, CTRL_Handle handle); -internal CTRL_Entity *ctrl_entity_child_from_kind(CTRL_Entity *parent, CTRL_EntityKind kind); -internal CTRL_Entity *ctrl_entity_ancestor_from_kind(CTRL_Entity *entity, CTRL_EntityKind kind); -internal CTRL_Entity *ctrl_process_from_entity(CTRL_Entity *entity); -internal CTRL_Entity *ctrl_module_from_process_vaddr(CTRL_Entity *process, U64 vaddr); -internal DI_Key ctrl_dbgi_key_from_module(CTRL_Entity *module); -internal CTRL_Entity *ctrl_module_from_thread_candidates(CTRL_EntityCtx *ctx, CTRL_Entity *thread, CTRL_EntityList *candidates); -internal U64 ctrl_vaddr_from_voff(CTRL_Entity *module, U64 voff); -internal U64 ctrl_voff_from_vaddr(CTRL_Entity *module, U64 vaddr); -internal Rng1U64 ctrl_vaddr_range_from_voff_range(CTRL_Entity *module, Rng1U64 voff_range); -internal Rng1U64 ctrl_voff_range_from_vaddr_range(CTRL_Entity *module, Rng1U64 vaddr_range); -internal B32 ctrl_entity_tree_is_frozen(CTRL_Entity *root); - -//- rjf: entity tree iteration -internal CTRL_EntityRec ctrl_entity_rec_depth_first(CTRL_Entity *entity, CTRL_Entity *subtree_root, U64 sib_off, U64 child_off); -#define ctrl_entity_rec_depth_first_pre(entity, subtree_root) ctrl_entity_rec_depth_first((entity), (subtree_root), OffsetOf(CTRL_Entity, next), OffsetOf(CTRL_Entity, first)) -#define ctrl_entity_rec_depth_first_post(entity, subtree_root) ctrl_entity_rec_depth_first((entity), (subtree_root), OffsetOf(CTRL_Entity, prev), OffsetOf(CTRL_Entity, last)) - -//- rjf: entity ctx r/w store state functions -internal CTRL_EntityCtxRWStore *ctrl_entity_ctx_rw_store_alloc(void); -internal void ctrl_entity_ctx_rw_store_release(CTRL_EntityCtxRWStore *store); - -//- rjf: string allocation/deletion -internal U64 ctrl_name_bucket_num_from_string_size(U64 size); -internal String8 ctrl_entity_string_alloc(CTRL_EntityCtxRWStore *store, String8 string); -internal void ctrl_entity_string_release(CTRL_EntityCtxRWStore *store, String8 string); - -//- rjf: entity construction/deletion -internal CTRL_Entity *ctrl_entity_alloc(CTRL_EntityCtxRWStore *store, CTRL_Entity *parent, CTRL_EntityKind kind, Arch arch, CTRL_Handle handle, U64 id); -internal void ctrl_entity_release(CTRL_EntityCtxRWStore *store, CTRL_Entity *entity); - -//- rjf: entity equipment -internal void ctrl_entity_equip_string(CTRL_EntityCtxRWStore *store, CTRL_Entity *entity, String8 string); - -//- rjf: accelerated entity context lookups -internal CTRL_EntityCtxLookupAccel *ctrl_thread_entity_ctx_lookup_accel(void); -internal CTRL_EntityArray ctrl_entity_array_from_kind(CTRL_EntityCtx *ctx, CTRL_EntityKind kind); -internal CTRL_EntityList ctrl_modules_from_dbgi_key(Arena *arena, CTRL_EntityCtx *ctx, DI_Key dbgi_key); -internal CTRL_Entity *ctrl_thread_from_id(CTRL_EntityCtx *ctx, U64 id); - -//- rjf: applying events to entity caches -internal void ctrl_entity_store_apply_events(CTRL_EntityCtxRWStore *store, CTRL_EventList *list); - -//////////////////////////////// -//~ rjf: Main Layer Initialization - -internal void ctrl_init(void); - -//////////////////////////////// -//~ rjf: Wakeup Callback Registration - -internal void ctrl_set_wakeup_hook(CTRL_WakeupFunctionType *wakeup_hook); - -//////////////////////////////// -//~ rjf: Thread Register Functions - -//- rjf: thread register cache reading -internal void *ctrl_reg_block_from_thread(Arena *arena, CTRL_EntityCtx *ctx, CTRL_Handle handle); -internal U64 ctrl_tls_root_vaddr_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle); -internal U64 ctrl_rip_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle); -internal U64 ctrl_rsp_from_thread(CTRL_EntityCtx *ctx, CTRL_Handle handle); - -//- rjf: thread register writing -internal B32 ctrl_thread_write_reg_block(CTRL_Handle thread, void *block); - -//////////////////////////////// -//~ rjf: Module Image Info Functions - -//- rjf: cache lookups -internal PE_IntelPdata *ctrl_intel_pdata_from_module_voff(Arena *arena, CTRL_Handle module_handle, U64 voff); -internal U64 ctrl_entry_point_voff_from_module(CTRL_Handle module_handle); -internal Rng1U64 ctrl_tls_vaddr_range_from_module(CTRL_Handle module_handle); -internal String8 ctrl_initial_debug_info_path_from_module(Arena *arena, CTRL_Handle module_handle); -internal String8 ctrl_raddbg_data_from_module(Arena *arena, CTRL_Handle module_handle); - -//////////////////////////////// -//~ rjf: Unwinding Functions - -//- rjf: unwind deep copier -internal CTRL_Unwind ctrl_unwind_deep_copy(Arena *arena, Arch arch, CTRL_Unwind *src); - -//- rjf: [x64] -internal REGS_Reg64 *ctrl_unwind_reg_from_pe_gpr_reg__pe_x64(REGS_RegBlockX64 *regs, PE_UnwindGprRegX64 gpr_reg); -internal CTRL_UnwindStepResult ctrl_unwind_step__pe_x64(CTRL_Handle process_handle, CTRL_Handle module_handle, U64 module_base_vaddr, REGS_RegBlockX64 *regs, U64 endt_us); - -//- rjf: abstracted unwind step -internal CTRL_UnwindStepResult ctrl_unwind_step(CTRL_Handle process, CTRL_Handle module, U64 module_base_vaddr, Arch arch, void *reg_block, U64 endt_us); - -//- rjf: abstracted full unwind -internal CTRL_Unwind ctrl_unwind_from_thread(Arena *arena, CTRL_EntityCtx *ctx, CTRL_Handle thread, U64 endt_us); - -//////////////////////////////// -//~ rjf: Call Stack Building Functions - -internal CTRL_CallStack ctrl_call_stack_from_unwind(Arena *arena, CTRL_Entity *process, CTRL_Unwind *base_unwind); -internal CTRL_CallStackFrame *ctrl_call_stack_frame_from_unwind_and_inline_depth(CTRL_CallStack *call_stack, U64 unwind_count, U64 inline_depth); - -//////////////////////////////// -//~ rjf: Halting All Attached Processes - -internal void ctrl_halt(void); - -//////////////////////////////// -//~ rjf: Shared Accessor Functions - -//- rjf: generation counters -internal U64 ctrl_run_gen(void); -internal U64 ctrl_mem_gen(void); -internal U64 ctrl_reg_gen(void); - -//- rjf: name -> register/alias hash tables, for eval -internal E_String2NumMap *ctrl_string2reg_from_arch(Arch arch); -internal E_String2NumMap *ctrl_string2alias_from_arch(Arch arch); - -//////////////////////////////// -//~ rjf: Control-Thread Functions - -//- rjf: user -> control thread communication -internal B32 ctrl_u2c_push_msgs(CTRL_MsgList *msgs, U64 endt_us); -internal CTRL_MsgList ctrl_u2c_pop_msgs(Arena *arena); - -//- rjf: control -> user thread communication -internal void ctrl_c2u_push_events(CTRL_EventList *events); -internal CTRL_EventList ctrl_c2u_pop_events(Arena *arena); - -//- rjf: entry point -internal void ctrl_thread__entry_point(void *p); - -//- rjf: breakpoint resolution -internal void ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, CTRL_EvalScope *eval_scope, CTRL_Handle process, CTRL_Handle module, CTRL_UserBreakpointList *user_bps, DMN_TrapChunkList *traps_out); -internal void ctrl_thread__append_resolved_process_user_bp_traps(Arena *arena, CTRL_EvalScope *eval_scope, CTRL_Handle process, CTRL_UserBreakpointList *user_bps, DMN_TrapChunkList *traps_out); -internal void ctrl_thread__append_program_defined_bp_traps(Arena *arena, CTRL_Entity *bp, DMN_TrapChunkList *traps_out); - -//- rjf: module lifetime open/close work -internal void ctrl_thread__module_open(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_range, String8 path); -internal void ctrl_thread__module_close(CTRL_Handle process, CTRL_Handle module, Rng1U64 vaddr_range); - -//- rjf: attached process running/event gathering -internal DMN_Event *ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg, DMN_RunCtrls *run_ctrls, CTRL_Spoof *spoof); - -//- rjf: eval helpers -internal U64 ctrl_eval_space_gen(E_Space space); -internal B32 ctrl_eval_space_read(E_Space space, void *out, Rng1U64 vaddr_range); - -//- rjf: control thread eval scopes -internal CTRL_EvalScope *ctrl_thread__eval_scope_begin(Arena *arena, CTRL_UserBreakpointList *user_bps, CTRL_Entity *thread); -internal void ctrl_thread__eval_scope_end(CTRL_EvalScope *scope); - -//- rjf: log flusher -internal void ctrl_thread__end_and_flush_log(void); - -//- rjf: msg kind implementations -internal void ctrl_thread__launch(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__attach(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__kill(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__kill_all(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__detach(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); -internal void ctrl_thread__single_step(DMN_CtrlCtx *ctrl_ctx, CTRL_Msg *msg); - -//////////////////////////////// -//~ rjf: Process Memory Artifact Cache Hooks / Lookups - -internal AC_Artifact ctrl_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); -internal void ctrl_memory_artifact_destroy(AC_Artifact artifact); -internal C_Key ctrl_key_from_process_vaddr_range(CTRL_Handle process, Rng1U64 vaddr_range, B32 zero_terminated, B32 wait_for_fresh, U64 endt_us, B32 *out_is_stale); - -//- rjf: process memory reading helpers -internal CTRL_ProcessMemorySlice ctrl_process_memory_slice_from_vaddr_range(Arena *arena, CTRL_Handle process, Rng1U64 range, B32 wait_for_fresh, U64 endt_us); -internal B32 ctrl_process_memory_read(CTRL_Handle process, Rng1U64 range, B32 *is_stale_out, void *out, U64 endt_us); -#define ctrl_process_memory_read_struct(process, vaddr, is_stale_out, ptr, endt_us) ctrl_process_memory_read((process), r1u64((vaddr), (vaddr)+(sizeof(*(ptr)))), (is_stale_out), (ptr), (endt_us)) - -//- rjf: process memory writing -internal B32 ctrl_process_write(CTRL_Handle process, Rng1U64 range, void *src); - -//////////////////////////////// -//~ rjf: Call Stack Artifact Cache Hooks / Lookups - -internal AC_Artifact ctrl_call_stack_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); -internal void ctrl_call_stack_artifact_destroy(AC_Artifact artifact); -internal CTRL_CallStack ctrl_call_stack_from_thread(Access *access, CTRL_Handle thread_handle, B32 high_priority, U64 endt_us); - -//////////////////////////////// -//~ rjf: Call Stack Tree Artifact Cache Hooks / Lookups - -internal AC_Artifact ctrl_call_stack_tree_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); -internal void ctrl_call_stack_tree_artifact_destroy(AC_Artifact artifact); -internal CTRL_CallStackTree ctrl_call_stack_tree(Access *access, U64 endt_us); - -#endif // CTRL_CORE_H diff --git a/src/ctrl/ctrl_inc.h b/src/ctrl/ctrl_inc.h deleted file mode 100644 index 3226e1b2..00000000 --- a/src/ctrl/ctrl_inc.h +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef CTRL_INC_H -#define CTRL_INC_H - -//////////////////////////////// -//~ NOTE(rjf): Control Layer Overview (2023/8/29) -// -// This layer's purpose is to provide access to the asynchronously-running, low -// level parts of a debugger, running on the debugger client. This primarily -// consists of process control, using the Demon layer (the lower level -// abstraction layer for process control, across multiple OSes), but including -// higher-level concepts, like stepping, breakpoint resolution, conditional -// breakpoint evaluation, and so on. Right now, this just includes process -// control *local to the debugger client machine*. But in the future, this can -// also include communication to multiple target machines, all running their -// own process controller, using the Demon layer. -// -// This part of a debugger must run asynchronously to prevent blocking the UI - -// ideally our debugger is designed such that, if targets are running, the -// debugger frontend is still usable for a variety of purposes. So, in short, -// the asynchronously-running "control thread", implemented by this layer, is -// tasked with communicating with a separately executing "user thread". This -// communication happens in two directions - `user -> ctrl`, and the reverse, -// `ctrl -> user`. -// -// In the case of `user -> ctrl` communication, this is done with a ring buffer -// of "messages" (`CTRL_Msg`), pushed via `ctrl_u2c_push_msgs`. These messages -// include commands like: launching targets, attaching to targets, killing -// targets, detaching from targets, stepping/running, or single stepping. -// -// In the case of `ctrl -> user` communication, this is done with a ring buffer -// of "events" (`CTRL_Event`), popped via `ctrl_c2u_pop_events`. These events -// include information about what happened during the execution of targets - -// including: process/module/thread creation, process/module/thread deletion, -// debug strings, thread name events, memory allocation events, and stop events -// (where stops can be caused by: user breakpoints, traps set for stepping, -// exceptions, halts, or errors). -// -// The various stepping algorithms are implemented with two concepts: (a) the -// "trap net", and (b) "spoofs". -// -// A "trap net" is a term which refers to a set of addresses paired with a set -// of behavioral flags. Before targets run, trap instructions are written to -// these addresses. After targets stop, these addresses are reset to their -// original bytes. These trap instructions cause the debugger's targets to -// stop executing, and based on which behavioral flags are associated with -// the instruction causing the stop, the control thread may adjust parameters -// used for running, then continue execution, or it will not resume target -// execution, and will report stopped events. These behavioral flags can -// include: single-stepping the stopped thread to execute the instruction at -// the trap location, saving a stack pointer "check value" (where this check -// value is compared against when making decisions about whether to continue -// running or not), and so on. It's complicated to unpack why exactly these -// behaviors are useful, but the TL;DR of it is that they are used for a -// variety of stepping behaviors. For example, when doing a "step into" step, -// a `call` instruction can have a trap set at it, and will be marked with -// a "single-step-after" trap flag, as well as the "end stepping" trap flag, -// such that the step operation will complete after the `call` has executed. -// -// A "spoof" is a feature the control layer uses to detect when some thread -// returns from a particular sub-callstack. This is useful when implementing -// "step over" in functions that may be recursive. In short, unlike a trap, -// which writes a trap instruction (like `int3`) into an instruction stream, -// a spoof overwrites a *return address* on some thread's *stack*. This return -// address is not a valid address for executing code -- it is simply a value -// that the debugger can recognize, such that it is notified when the thread -// returns from some level in a callstack. When the thread exits some function, -// it will return to the "spoofed" address, and it will immediately hit an -// exception, because the spoofed address will not be a valid address for -// code execution. At that point, the debugger can move the thread back to -// the pre-spoof return address, and resume execution. - -#include "ctrl_core.h" - -#endif // CTRL_INC_H diff --git a/src/ctrl/generated/ctrl.meta.c b/src/ctrl/generated/ctrl.meta.c deleted file mode 100644 index 09d20976..00000000 --- a/src/ctrl/generated/ctrl.meta.c +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 ctrl_entity_kind_code_name_table[12] = -{ -{0}, -str8_lit_comp("root"), -str8_lit_comp("machine"), -str8_lit_comp("process"), -str8_lit_comp("thread"), -str8_lit_comp("module"), -str8_lit_comp("entry_point"), -str8_lit_comp("debug_info_path"), -str8_lit_comp("pending_thread_name"), -str8_lit_comp("pending_thread_color"), -str8_lit_comp("breakpoint"), -str8_lit_comp("address_range_annotation"), -}; - -String8 ctrl_entity_kind_display_string_table[12] = -{ -{0}, -str8_lit_comp("Root"), -str8_lit_comp("Machine"), -str8_lit_comp("Process"), -str8_lit_comp("Thread"), -str8_lit_comp("Module"), -str8_lit_comp("EntryPoint"), -str8_lit_comp("DebugInfoPath"), -str8_lit_comp("PendingThreadName"), -str8_lit_comp("PendingThreadColor"), -str8_lit_comp("Breakpoint"), -str8_lit_comp("AddressRangeAnnotation"), -}; - -U32 ctrl_exception_code_kind_code_table[38] = -{ -0, -0x40010005, -0x40010008, -0x40080201, -0x40080202, -0x0000071a, -0x80000002, -0xc0000005, -0xc0000006, -0xc0000008, -0xc0000017, -0xc000001d, -0xc0000025, -0xc0000026, -0xc000008c, -0xc000008d, -0xc000008e, -0xc000008f, -0xc0000090, -0xc0000091, -0xc0000092, -0xc0000093, -0xc0000094, -0xc0000095, -0xc0000096, -0xc00000fd, -0xc0000135, -0xc0000138, -0xc0000139, -0xc0000142, -0xc00002b4, -0xc00002b5, -0xc0000420, -0xc06d007e, -0xc06d007f, -0xe073616e, -0xe0736171, -0x0000087a, -}; - -String8 ctrl_exception_code_kind_display_string_table[38] = -{ -{0}, -str8_lit_comp("(Win32) Control-C"), -str8_lit_comp("(Win32) Control-Break"), -str8_lit_comp("(Win32) WinRT Originate Error"), -str8_lit_comp("(Win32) WinRT Transform Error"), -str8_lit_comp("(Win32) RPC Call Cancelled"), -str8_lit_comp("(Win32) Data Type Misalignment"), -str8_lit_comp("(Win32) Access Violation"), -str8_lit_comp("(Win32) In Page Error"), -str8_lit_comp("(Win32) Invalid Handle Specified"), -str8_lit_comp("(Win32) Not Enough Quota"), -str8_lit_comp("(Win32) Illegal Instruction"), -str8_lit_comp("(Win32) Cannot Continue From Exception"), -str8_lit_comp("(Win32) Invalid Exception Disposition Returned By Handler"), -str8_lit_comp("(Win32) Array Bounds Exceeded"), -str8_lit_comp("(Win32) Floating-Point Denormal Operand"), -str8_lit_comp("(Win32) Floating-Point Division By Zero"), -str8_lit_comp("(Win32) Floating-Point Inexact Result"), -str8_lit_comp("(Win32) Floating-Point Invalid Operation"), -str8_lit_comp("(Win32) Floating-Point Overflow"), -str8_lit_comp("(Win32) Floating-Point Stack Check"), -str8_lit_comp("(Win32) Floating-Point Underflow"), -str8_lit_comp("(Win32) Integer Division By Zero"), -str8_lit_comp("(Win32) Integer Overflow"), -str8_lit_comp("(Win32) Privileged Instruction"), -str8_lit_comp("(Win32) Stack Overflow"), -str8_lit_comp("(Win32) Unable To Locate DLL"), -str8_lit_comp("(Win32) Ordinal Not Found"), -str8_lit_comp("(Win32) Entry Point Not Found"), -str8_lit_comp("(Win32) DLL Initialization Failed"), -str8_lit_comp("(Win32) Floating Point SSE Multiple Faults"), -str8_lit_comp("(Win32) Floating Point SSE Multiple Traps"), -str8_lit_comp("(Win32) Assertion Failed"), -str8_lit_comp("(Win32) Module Not Found"), -str8_lit_comp("(Win32) Procedure Not Found"), -str8_lit_comp("(Win32) Sanitizer Error Detected"), -str8_lit_comp("(Win32) Sanitizer Raw Access Violation"), -str8_lit_comp("(Win32) DirectX Debug Layer"), -}; - -String8 ctrl_exception_code_kind_lowercase_code_string_table[38] = -{ -{0}, -str8_lit_comp("win32_ctrl_c"), -str8_lit_comp("win32_ctrl_break"), -str8_lit_comp("win32_win_rt_originate_error"), -str8_lit_comp("win32_win_rt_transform_error"), -str8_lit_comp("win32_rpc_call_cancelled"), -str8_lit_comp("win32_datatype_misalignment"), -str8_lit_comp("win32_access_violation"), -str8_lit_comp("win32_in_page_error"), -str8_lit_comp("win32_invalid_handle"), -str8_lit_comp("win32_not_enough_quota"), -str8_lit_comp("win32_illegal_instruction"), -str8_lit_comp("win32_cannot_continue_exception"), -str8_lit_comp("win32_invalid_exception_disposition"), -str8_lit_comp("win32_array_bounds_exceeded"), -str8_lit_comp("win32_floating_point_denormal_operand"), -str8_lit_comp("win32_floating_point_division_by_zero"), -str8_lit_comp("win32_floating_point_inexact_result"), -str8_lit_comp("win32_floating_point_invalid_operation"), -str8_lit_comp("win32_floating_point_overflow"), -str8_lit_comp("win32_floating_point_stack_check"), -str8_lit_comp("win32_floating_point_underflow"), -str8_lit_comp("win32_integer_division_by_zero"), -str8_lit_comp("win32_integer_overflow"), -str8_lit_comp("win32_privileged_instruction"), -str8_lit_comp("win32_stack_overflow"), -str8_lit_comp("win32_unable_to_locate_dll"), -str8_lit_comp("win32_ordinal_not_found"), -str8_lit_comp("win32_entry_point_not_found"), -str8_lit_comp("win32_dll_initialization_failed"), -str8_lit_comp("win32_floating_point_sse_multiple_faults"), -str8_lit_comp("win32_floating_point_sse_multiple_traps"), -str8_lit_comp("win32_assertion_failed"), -str8_lit_comp("win32_module_not_found"), -str8_lit_comp("win32_procedure_not_found"), -str8_lit_comp("win32_sanitizer_error_detected"), -str8_lit_comp("win32_sanitizer_raw_access_violation"), -str8_lit_comp("win32_directx_debug_layer"), -}; - -B8 ctrl_exception_code_kind_default_enable_table[38] = -{ -0, -1, -1, -0, -0, -0, -0, -1, -0, -1, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -1, -0, -0, -1, -0, -1, -}; - -C_LINKAGE_END - diff --git a/src/ctrl/generated/ctrl.meta.h b/src/ctrl/generated/ctrl.meta.h deleted file mode 100644 index 5495f320..00000000 --- a/src/ctrl/generated/ctrl.meta.h +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef CTRL_META_H -#define CTRL_META_H - -typedef enum CTRL_EntityKind -{ -CTRL_EntityKind_Null, -CTRL_EntityKind_Root, -CTRL_EntityKind_Machine, -CTRL_EntityKind_Process, -CTRL_EntityKind_Thread, -CTRL_EntityKind_Module, -CTRL_EntityKind_EntryPoint, -CTRL_EntityKind_DebugInfoPath, -CTRL_EntityKind_PendingThreadName, -CTRL_EntityKind_PendingThreadColor, -CTRL_EntityKind_Breakpoint, -CTRL_EntityKind_AddressRangeAnnotation, -CTRL_EntityKind_COUNT, -} CTRL_EntityKind; - -typedef enum CTRL_ExceptionCodeKind -{ -CTRL_ExceptionCodeKind_Null, -CTRL_ExceptionCodeKind_Win32CtrlC, -CTRL_ExceptionCodeKind_Win32CtrlBreak, -CTRL_ExceptionCodeKind_Win32WinRTOriginateError, -CTRL_ExceptionCodeKind_Win32WinRTTransformError, -CTRL_ExceptionCodeKind_Win32RPCCallCancelled, -CTRL_ExceptionCodeKind_Win32DatatypeMisalignment, -CTRL_ExceptionCodeKind_Win32AccessViolation, -CTRL_ExceptionCodeKind_Win32InPageError, -CTRL_ExceptionCodeKind_Win32InvalidHandle, -CTRL_ExceptionCodeKind_Win32NotEnoughQuota, -CTRL_ExceptionCodeKind_Win32IllegalInstruction, -CTRL_ExceptionCodeKind_Win32CannotContinueException, -CTRL_ExceptionCodeKind_Win32InvalidExceptionDisposition, -CTRL_ExceptionCodeKind_Win32ArrayBoundsExceeded, -CTRL_ExceptionCodeKind_Win32FloatingPointDenormalOperand, -CTRL_ExceptionCodeKind_Win32FloatingPointDivisionByZero, -CTRL_ExceptionCodeKind_Win32FloatingPointInexactResult, -CTRL_ExceptionCodeKind_Win32FloatingPointInvalidOperation, -CTRL_ExceptionCodeKind_Win32FloatingPointOverflow, -CTRL_ExceptionCodeKind_Win32FloatingPointStackCheck, -CTRL_ExceptionCodeKind_Win32FloatingPointUnderflow, -CTRL_ExceptionCodeKind_Win32IntegerDivisionByZero, -CTRL_ExceptionCodeKind_Win32IntegerOverflow, -CTRL_ExceptionCodeKind_Win32PrivilegedInstruction, -CTRL_ExceptionCodeKind_Win32StackOverflow, -CTRL_ExceptionCodeKind_Win32UnableToLocateDLL, -CTRL_ExceptionCodeKind_Win32OrdinalNotFound, -CTRL_ExceptionCodeKind_Win32EntryPointNotFound, -CTRL_ExceptionCodeKind_Win32DLLInitializationFailed, -CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleFaults, -CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleTraps, -CTRL_ExceptionCodeKind_Win32AssertionFailed, -CTRL_ExceptionCodeKind_Win32ModuleNotFound, -CTRL_ExceptionCodeKind_Win32ProcedureNotFound, -CTRL_ExceptionCodeKind_Win32SanitizerErrorDetected, -CTRL_ExceptionCodeKind_Win32SanitizerRawAccessViolation, -CTRL_ExceptionCodeKind_Win32DirectXDebugLayer, -CTRL_ExceptionCodeKind_COUNT, -} CTRL_ExceptionCodeKind; - -C_LINKAGE_BEGIN -extern String8 ctrl_entity_kind_code_name_table[12]; -extern String8 ctrl_entity_kind_display_string_table[12]; -extern U32 ctrl_exception_code_kind_code_table[38]; -extern String8 ctrl_exception_code_kind_display_string_table[38]; -extern String8 ctrl_exception_code_kind_lowercase_code_string_table[38]; -extern B8 ctrl_exception_code_kind_default_enable_table[38]; - -C_LINKAGE_END - -#endif // CTRL_META_H diff --git a/src/dbg_engine/dbg_engine.mdesk b/src/dbg_engine/dbg_engine.mdesk index 7ab14cad..338c6db4 100644 --- a/src/dbg_engine/dbg_engine.mdesk +++ b/src/dbg_engine/dbg_engine.mdesk @@ -4,52 +4,60 @@ //////////////////////////////// //~ rjf: Built-In Command Tables -@table(name ui_vis ipc_docs_vis text_pt_vis text_rng_vis q_expr q_slot q_view q_ent_kind q_ctrl_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_floating q_required canonical_icon string display_name desc search_tags ctx_filter) -// / | | | | | | \___ _________________________________/ | | | | | | -// / | | | | | | \ / | | | | | | -D_CmdTable: // | | | | | | | | | | | | | | +@table(name ui_vis ipc_docs_vis q_expr q_slot q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_floating q_required canonical_icon string display_name desc search_tags filter_tags) +// / | | | | \__ ______________________________________________________________/ / / | | | | +// / | | | | \ / _________________/ _________________/ | | | | +D_CmdTable: // | | | | | | / / | | | | { //- rjf: low-level target control operations - {LaunchAndRun 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Play "launch_and_run" "Launch and Run" "Starts debugging a new instance of a target, then runs." "launch,start,run,target" "" } - {LaunchAndStepInto 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 PlayStepForward "launch_and_step_into" "Launch and Step Into" "Starts debugging a new instance of a target, then stops at the program's entry point." "launch,start,entry,point" "" } - {Kill 1 1 0 0 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 X "kill" "Kill" "Kills the specified existing attached process(es)." "stop,kill" "" } - {KillAll 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Stop "kill_all" "Kill All" "Kills all attached processes." "stop,kill,all" "" } - {Detach 1 1 0 0 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Null "detach" "Detach" "Detaches the specified attached process(es)." "detach" "" } - {Continue 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Play "continue" "Continue" "Continues executing all attached processes." "" "" } - {StepIntoInst 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into_inst" "Step Into (Assembly)" "Performs a step that goes into calls, at the instruction level." "single,step,thread" "" } - {StepOverInst 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over_inst" "Step Over (Assembly)" "Performs a step that skips calls, at the instruction level." "single,step,thread" "" } - {StepIntoLine 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into_line" "Step Into (Line)" "Performs a step that goes into calls, at the source code line level." "step,thread" "" } - {StepOverLine 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over_line" "Step Over (Line)" "Performs a step that skips calls, at the source code line level." "step,thread" "" } - {StepOut 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepOut "step_out" "Step Out" "Runs to the end of the current function and exits it." "" "" } - {Halt 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Pause "halt" "Halt" "Halts all attached processes." "pause" "" } - {SoftHaltRefresh 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Refresh "soft_halt_refresh" "Soft Halt Refresh" "Interrupts all attached processes to collect data, and then resumes them." "" "" } - {SetThreadIP 0 1 0 0 "" Vaddr null Nil Null 0 0 0 0 1 1 1 Null "set_thread_ip" "Set Thread IP" "Sets the specified thread's instruction pointer at the specified address." "" "" } + {LaunchAndRun 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 Play "launch_and_run" "Launch and Run" "Starts debugging a new instance of a target, then runs." "launch,start,run,target" "" } + {LaunchAndStepInto 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 PlayStepForward "launch_and_step_into" "Launch and Step Into" "Starts debugging a new instance of a target, then stops at the program's entry point." "launch,start,entry,point" "" } + {Kill 1 1 "query:processes" Process 0 0 0 0 0 1 1 X "kill" "Kill" "Kills the specified existing attached process(es)." "stop,kill" "" } + {KillAll 1 1 "" Null 0 0 0 0 0 0 0 Stop "kill_all" "Kill All" "Kills all attached processes." "stop,kill,all" "" } + {Detach 1 1 "query:processes" Process 0 0 0 0 0 1 1 Null "detach" "Detach" "Detaches the specified attached process(es)." "detach" "" } + {Continue 1 1 "" Null 0 0 0 0 0 0 0 Play "continue" "Continue" "Continues executing all attached processes." "" "" } + {StepIntoInst 1 1 "" Null 0 0 0 0 0 0 0 StepInto "step_into_inst" "Step Into (Assembly)" "Performs a step that goes into calls, at the instruction level." "single,step,thread" "" } + {StepOverInst 1 1 "" Null 0 0 0 0 0 0 0 StepOver "step_over_inst" "Step Over (Assembly)" "Performs a step that skips calls, at the instruction level." "single,step,thread" "" } + {StepIntoLine 1 1 "" Null 0 0 0 0 0 0 0 StepInto "step_into_line" "Step Into (Line)" "Performs a step that goes into calls, at the source code line level." "step,thread" "" } + {StepOverLine 1 1 "" Null 0 0 0 0 0 0 0 StepOver "step_over_line" "Step Over (Line)" "Performs a step that skips calls, at the source code line level." "step,thread" "" } + {StepOut 1 1 "" Null 0 0 0 0 0 0 0 StepOut "step_out" "Step Out" "Runs to the first instruction after the current scope is exited." "" "" } + {StepToExit 1 1 "" Null 0 0 0 0 0 0 0 StepOut "step_to_exit" "Step To Exit" "Runs to the first encountered instruction which will exit the current scope." "" "" } + {Halt 1 1 "" Null 0 0 0 0 0 0 0 Pause "halt" "Halt" "Halts all attached processes." "pause" "" } + {SoftHaltRefresh 0 0 "" Null 0 0 0 0 0 0 0 Refresh "soft_halt_refresh" "Soft Halt Refresh" "Interrupts all attached processes to collect data, and then resumes them." "" "" } + {SetThreadIP 0 1 "" Vaddr 0 0 0 0 1 1 1 Null "set_thread_ip" "Set Thread IP" "Sets the specified thread's instruction pointer at the specified address." "" "" } //- rjf: high-level composite target control operations - {RunToLine 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 Play "run_to_line" "Run To Line" "Runs until a particular source line is hit." "" "$text_pt," } - {Run 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Play "run" "Run" "Runs all targets after starting them if they have not been started yet." "play" "" } - {Restart 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Redo "restart" "Restart" "Kills all attached processes, then launches all active targets." "restart,retry" "" } - {StepInto 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepInto "step_into" "Step Into" "Steps once, possibly into function calls, for either source lines or instructions (whichever is selected)." "" "" } - {StepOver 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 StepOver "step_over" "Step Over" "Steps once, always over function calls, for either source lines or instructions." "" "" } + {RunToLine 1 1 "" Null 0 0 0 0 0 0 0 Play "run_to_line" "Run To Line" "Runs until a particular source line is hit." "" "{text_pt_commands}{disasm_pt_commands}" } + {RunToName 1 1 "query:procedures" String 0 0 0 0 0 1 1 Play "run_to_name" "Run To Name" "Runs until a particular symbol name is hit." "" "" } + {Run 1 1 "" Null 0 0 0 0 0 0 0 Play "run" "Run" "Runs all targets after starting them if they have not been started yet." "play" "" } + {Restart 1 1 "" Null 0 0 0 0 0 0 0 Redo "restart" "Restart" "Kills all attached processes, then launches all active targets." "restart,retry" "" } + {StepInto 1 1 "" Null 0 0 0 0 0 0 0 StepInto "step_into" "Step Into" "Steps once, possibly into function calls, for either source lines or instructions (whichever is selected)." "" "" } + {StepOver 1 1 "" Null 0 0 0 0 0 0 0 StepOver "step_over" "Step Over" "Steps once, always over function calls, for either source lines or instructions." "" "" } //- rjf: debug control context management operations - {FreezeThread 1 1 0 0 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Locked "freeze_thread" "Freeze Thread" "Freezes the passed thread." "callstack,unwind" "" } - {ThawThread 1 1 0 0 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Unlocked "thaw_thread" "Thaw Thread" "Thaws the passed thread." "" "" } - {FreezeProcess 1 1 0 0 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Locked "freeze_process" "Freeze Process" "Freezes the passed process." "" "" } - {ThawProcess 1 1 0 0 "query:processes" Process null Nil Process 0 0 0 0 0 1 1 Unlocked "thaw_process" "Thaw Process" "Thaws the passed process." "" "" } - {FreezeMachine 0 1 0 0 "query:machines" Machine null Nil Machine 0 0 0 0 0 1 1 Locked "freeze_machine" "Freeze Machine" "Freezes the passed machine." "" "" } - {ThawMachine 0 1 0 0 "query:machines" Machine null Nil Machine 0 0 0 0 0 1 1 Unlocked "thaw_machine" "Thaw Machine" "Thaws the passed machine." "" "" } - {FreezeLocalMachine 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Machine "freeze_local_machine" "Freeze Local Machine" "Freezes the local machine." "" "" } - {ThawLocalMachine 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Machine "thaw_local_machine" "Thaw Local Machine" "Thaws the local machine." "" "" } - {FreezeEntity 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Unlocked "freeze_entity" "Freeze Entity" "Freezes an entity." "" "" } - {ThawEntity 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Locked "thaw_entity" "Thaw Entity" "Thaws an entity." "" "" } + {FreezeThread 1 1 "query:threads" Thread 0 0 0 0 0 1 1 Locked "freeze_thread" "Freeze Thread" "Freezes the passed thread." "callstack,unwind" "" } + {ThawThread 1 1 "query:threads" Thread 0 0 0 0 0 1 1 Unlocked "thaw_thread" "Thaw Thread" "Thaws the passed thread." "" "" } + {FreezeProcess 1 1 "query:processes" Process 0 0 0 0 0 1 1 Locked "freeze_process" "Freeze Process" "Freezes the passed process." "" "" } + {ThawProcess 1 1 "query:processes" Process 0 0 0 0 0 1 1 Unlocked "thaw_process" "Thaw Process" "Thaws the passed process." "" "" } + {FreezeMachine 0 1 "query:machines" Machine 0 0 0 0 0 1 1 Locked "freeze_machine" "Freeze Machine" "Freezes the passed machine." "" "" } + {ThawMachine 0 1 "query:machines" Machine 0 0 0 0 0 1 1 Unlocked "thaw_machine" "Thaw Machine" "Thaws the passed machine." "" "" } + {FreezeLocalMachine 1 1 "" Null 0 0 0 0 0 0 0 Machine "freeze_local_machine" "Freeze Local Machine" "Freezes the local machine." "" "" } + {ThawLocalMachine 1 1 "" Null 0 0 0 0 0 0 0 Machine "thaw_local_machine" "Thaw Local Machine" "Thaws the local machine." "" "" } + {FreezeEntity 0 0 "" Null 0 0 0 0 0 0 0 Unlocked "freeze_entity" "Freeze Entity" "Freezes an entity." "" "" } + {ThawEntity 0 0 "" Null 0 0 0 0 0 0 0 Locked "thaw_entity" "Thaw Entity" "Thaws an entity." "" "" } //- rjf: entity decoration - {SetEntityColor 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "set_entity_color" "Set Entity Color" "Sets the passed entity's color." "" "" } - {SetEntityName 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "set_entity_name" "Set Entity Name" "Sets the passed entity's name." "" "" } + {SetEntityColor 0 0 "" Null 0 0 0 0 0 0 0 Null "set_entity_color" "Set Entity Color" "Sets the passed entity's color." "" "" } + {SetEntityName 0 0 "" Null 0 0 0 0 0 0 0 Null "set_entity_name" "Set Entity Name" "Sets the passed entity's name." "" "" } + + //- rjf: modules + {DownloadModuleDebugInfo 1 1 "query:modules" CtrlEntity 0 0 0 0 0 1 1 Module "download_module_debug_info" "Download Module Debug Info" "Tries to download a module's debug info from symbol server(s)." "" "{module_commands}" } //- rjf: attaching - {Attach 1 1 0 0 "query:unattached_processes" PID null Nil Null 0 0 0 0 0 1 1 Null "attach" "Attach" "Attaches to a process that is already running on the local machine." "" "" } + {Attach 1 1 "query:unattached_processes" PID 0 0 0 0 0 1 1 Null "attach" "Attach" "Attaches to a process that is already running on the local machine." "" "" } + + //- rjf: crash dump opening + {OpenCrashDump 0 0 `folder:\\"$input\\"` FilePath 0 0 0 0 0 1 1 FileOutline "open_crash_dump" "Open Crash Dump" "Opens a crash dump file and recreates debuggee state at the time of the crash." "" "" } } @enum D_CmdKind: @@ -88,3 +96,194 @@ D_DevToggleTable: @expand(D_DevToggleTable a) `{&DEV_$(a.name), str8_lit_comp("$(a.name)")},` `};`; } + +//////////////////////////////// +//~ rjf: Entity Kinds + +@table(name code_name display_string) +D_EntityKindTable: +{ + {Root root "Root" } + {Machine machine "Machine" } + {Process process "Process" } + {Thread thread "Thread" } + {Module module "Module" } + {EntryPoint entry_point "Entry Point" } + {LaunchMsgID launch_msg_id "Launch Message ID" } + {DebugInfoPath debug_info_path "Debug Info Path" } + {PendingThreadName pending_thread_name "Pending Thread Name" } + {PendingThreadColor pending_thread_color "Pending Thread Color" } + {Breakpoint breakpoint "Breakpoint" } + {AddressRangeAnnotation address_range_annotation "Address Range Annotation" } +} + +@enum D_EntityKind: +{ + Null, + @expand(D_EntityKindTable a) `$(a.name)`, + COUNT, +} + +@data(String8) d_entity_kind_code_name_table: +{ + `{0}`, + @expand(D_EntityKindTable a) `str8_lit_comp("$(a.code_name)")` +} + +@data(String8) d_entity_kind_display_string_table: +{ + `{0}`, + @expand(D_EntityKindTable a) `str8_lit_comp("$(a.display_name)")` +} + +//////////////////////////////// +//~ rjf: Exception Codes + +@table(name lower_name code default display_string) +D_ExceptionCodeKindTable: +{ + {Win32CtrlC win32_ctrl_c 0x40010005 1 "(Win32) Control-C" } + {Win32CtrlBreak win32_ctrl_break 0x40010008 1 "(Win32) Control-Break" } + {Win32WinRTOriginateError win32_win_rt_originate_error 0x40080201 0 "(Win32) WinRT Originate Error" } + {Win32WinRTTransformError win32_win_rt_transform_error 0x40080202 0 "(Win32) WinRT Transform Error" } + {Win32RPCCallCancelled win32_rpc_call_cancelled 0x0000071a 0 "(Win32) RPC Call Cancelled" } + {Win32DatatypeMisalignment win32_datatype_misalignment 0x80000002 0 "(Win32) Data Type Misalignment" } + {Win32AccessViolation win32_access_violation 0xc0000005 1 "(Win32) Access Violation" } + {Win32InPageError win32_in_page_error 0xc0000006 0 "(Win32) In Page Error" } + {Win32InvalidHandle win32_invalid_handle 0xc0000008 1 "(Win32) Invalid Handle Specified" } + {Win32NotEnoughQuota win32_not_enough_quota 0xc0000017 0 "(Win32) Not Enough Quota" } + {Win32IllegalInstruction win32_illegal_instruction 0xc000001d 0 "(Win32) Illegal Instruction" } + {Win32CannotContinueException win32_cannot_continue_exception 0xc0000025 0 "(Win32) Cannot Continue From Exception" } + {Win32InvalidExceptionDisposition win32_invalid_exception_disposition 0xc0000026 0 "(Win32) Invalid Exception Disposition Returned By Handler" } + {Win32ArrayBoundsExceeded win32_array_bounds_exceeded 0xc000008c 0 "(Win32) Array Bounds Exceeded" } + {Win32FloatingPointDenormalOperand win32_floating_point_denormal_operand 0xc000008d 0 "(Win32) Floating-Point Denormal Operand" } + {Win32FloatingPointDivisionByZero win32_floating_point_division_by_zero 0xc000008e 0 "(Win32) Floating-Point Division By Zero" } + {Win32FloatingPointInexactResult win32_floating_point_inexact_result 0xc000008f 0 "(Win32) Floating-Point Inexact Result" } + {Win32FloatingPointInvalidOperation win32_floating_point_invalid_operation 0xc0000090 0 "(Win32) Floating-Point Invalid Operation" } + {Win32FloatingPointOverflow win32_floating_point_overflow 0xc0000091 0 "(Win32) Floating-Point Overflow" } + {Win32FloatingPointStackCheck win32_floating_point_stack_check 0xc0000092 0 "(Win32) Floating-Point Stack Check" } + {Win32FloatingPointUnderflow win32_floating_point_underflow 0xc0000093 0 "(Win32) Floating-Point Underflow" } + {Win32IntegerDivisionByZero win32_integer_division_by_zero 0xc0000094 0 "(Win32) Integer Division By Zero" } + {Win32IntegerOverflow win32_integer_overflow 0xc0000095 0 "(Win32) Integer Overflow" } + {Win32PrivilegedInstruction win32_privileged_instruction 0xc0000096 0 "(Win32) Privileged Instruction" } + {Win32StackOverflow win32_stack_overflow 0xc00000fd 0 "(Win32) Stack Overflow" } + {Win32UnableToLocateDLL win32_unable_to_locate_dll 0xc0000135 0 "(Win32) Unable To Locate DLL" } + {Win32OrdinalNotFound win32_ordinal_not_found 0xc0000138 0 "(Win32) Ordinal Not Found" } + {Win32EntryPointNotFound win32_entry_point_not_found 0xc0000139 0 "(Win32) Entry Point Not Found" } + {Win32DLLInitializationFailed win32_dll_initialization_failed 0xc0000142 0 "(Win32) DLL Initialization Failed" } + {Win32FloatingPointSSEMultipleFaults win32_floating_point_sse_multiple_faults 0xc00002b4 0 "(Win32) Floating Point SSE Multiple Faults" } + {Win32FloatingPointSSEMultipleTraps win32_floating_point_sse_multiple_traps 0xc00002b5 0 "(Win32) Floating Point SSE Multiple Traps" } + {Win32AssertionFailed win32_assertion_failed 0xc0000420 1 "(Win32) Assertion Failed" } + {Win32ModuleNotFound win32_module_not_found 0xc06d007e 0 "(Win32) Module Not Found" } + {Win32ProcedureNotFound win32_procedure_not_found 0xc06d007f 0 "(Win32) Procedure Not Found" } + {Win32SanitizerErrorDetected win32_sanitizer_error_detected 0xe073616e 1 "(Win32) Sanitizer Error Detected" } + {Win32SanitizerRawAccessViolation win32_sanitizer_raw_access_violation 0xe0736171 0 "(Win32) Sanitizer Raw Access Violation" } + {Win32DirectXDebugLayer win32_directx_debug_layer 0x0000087a 1 "(Win32) DirectX Debug Layer" } +} + +@enum D_ExceptionCodeKind: +{ + Null, + @expand(D_ExceptionCodeKindTable a) `$(a.name)`, + COUNT, +} + +@data(U32) d_exception_code_kind_code_table: +{ + `0`; + @expand(D_ExceptionCodeKindTable a) `$(a.code)`; +} + +@data(String8) d_exception_code_kind_display_string_table: +{ + `{0}`; + @expand(D_ExceptionCodeKindTable a) `str8_lit_comp("$(a.display_string)")`; +} + +@data(String8) d_exception_code_kind_lowercase_code_string_table: +{ + `{0}`; + @expand(D_ExceptionCodeKindTable a) `str8_lit_comp("$(a.lower_name)")`; +} + +@data(B8) d_exception_code_kind_default_enable_table: +{ + `0`; + @expand(D_ExceptionCodeKindTable a) `$(a.default)`; +} + +//////////////////////////////// +//~ rjf: Exception Sub-Codes + +@table(name, value) +DL_ExceptionSubCodeKindTable: +{ + { W32_FAST_FAIL_LEGACY_GS_VIOLATION 0 } + { W32_FAST_FAIL_VTGUARD_CHECK_FAILURE 1 } + { W32_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 } + { W32_FAST_FAIL_CORRUPT_LIST_ENTRY 3 } + { W32_FAST_FAIL_INCORRECT_STACK 4 } + { W32_FAST_FAIL_INVALID_ARG 5 } + { W32_FAST_FAIL_GS_COOKIE_INIT 6 } + { W32_FAST_FAIL_FATAL_APP_EXIT 7 } + { W32_FAST_FAIL_RANGE_CHECK_FAILURE 8 } + { W32_FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 } + { W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 } + { W32_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 } + { W32_FAST_FAIL_INVALID_FIBER_SWITCH 12 } + { W32_FAST_FAIL_INVALID_SET_OF_CONTEXT 13 } + { W32_FAST_FAIL_INVALID_REFERENCE_COUNT 14 } + { W32_FAST_FAIL_INVALID_JUMP_BUFFER 18 } + { W32_FAST_FAIL_MRDATA_MODIFIED 19 } + { W32_FAST_FAIL_CERTIFICATION_FAILURE 20 } + { W32_FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 } + { W32_FAST_FAIL_CRYPTO_LIBRARY 22 } + { W32_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 } + { W32_FAST_FAIL_INVALID_IMAGE_BASE 24 } + { W32_FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 } + { W32_FAST_FAIL_UNSAFE_EXTENSION_CALL 26 } + { W32_FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 } + { W32_FAST_FAIL_INVALID_BUFFER_ACCESS 28 } + { W32_FAST_FAIL_INVALID_BALANCED_TREE 29 } + { W32_FAST_FAIL_INVALID_NEXT_THREAD 30 } + { W32_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 } + { W32_FAST_FAIL_APCS_DISABLED 32 } + { W32_FAST_FAIL_INVALID_IDLE_STATE 33 } + { W32_FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 } + { W32_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 } + { W32_FAST_FAIL_INVALID_LOCK_STATE 36 } + { W32_FAST_FAIL_GUARD_JUMPTABLE 37 } + { W32_FAST_FAIL_INVALID_LONGJUMP_TARGET 38 } + { W32_FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 } + { W32_FAST_FAIL_INVALID_THREAD 40 } + { W32_FAST_FAIL_INVALID_SYSCALL_NUMBER 41 } + { W32_FAST_FAIL_INVALID_FILE_OPERATION 42 } + { W32_FAST_FAIL_LPAC_ACCESS_DENIED 43 } + { W32_FAST_FAIL_GUARD_SS_FAILURE 44 } + { W32_FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 } + { W32_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 } + { W32_FAST_FAIL_INVALID_CONTROL_STACK 47 } + { W32_FAST_FAIL_SET_CONTEXT_DENIED 48 } + { W32_FAST_FAIL_INVALID_IAT 49 } + { W32_FAST_FAIL_HEAP_METADATA_CORRUPTION 50 } + { W32_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 } + { W32_FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 } + { W32_FAST_FAIL_ENCLAVE_CALL_FAILURE 53 } + { W32_FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 } + { W32_FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 } + { W32_FAST_FAIL_UNEXPECTED_CALL 56 } + { W32_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 } + { W32_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 } + { W32_FAST_FAIL_FLAGS_CORRUPTION 59 } + { W32_FAST_FAIL_VEH_CORRUPTION 60 } + { W32_FAST_FAIL_ETW_CORRUPTION 61 } + { W32_FAST_FAIL_RIO_ABORT 62 } + { W32_FAST_FAIL_INVALID_PFN 63 } + { W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64 } + { W32_FAST_FAIL_CAST_GUARD 65 } + { W32_FAST_FAIL_HOST_VISIBILITY_CHANGE 66 } + { W32_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67 } + { W32_FAST_FAIL_PATCH_CALLBACK_FAILED 68 } + { W32_FAST_FAIL_NTDLL_PATCH_FAILED 69 } + { W32_FAST_FAIL_INVALID_FLS_DATA 70 } +} diff --git a/src/dbg_engine/dbg_engine_core.c b/src/dbg_engine/dbg_engine_core.c index 0d7587ca..02a05907 100644 --- a/src/dbg_engine/dbg_engine_core.c +++ b/src/dbg_engine/dbg_engine_core.c @@ -1,2169 +1,108 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -#undef LAYER_COLOR -#define LAYER_COLOR 0x4d9ae3ff - //////////////////////////////// //~ rjf: Generated Code -#include "dbg_engine/generated/dbg_engine.meta.c" +#include "generated/dbg_engine.meta.c" //////////////////////////////// -//~ rjf: Basic Helpers - -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif - -internal U64 -d_hash_from_seed_string(U64 seed, String8 string) -{ - U64 result = XXH3_64bits_withSeed(string.str, string.size, seed); - return result; -} - -internal U64 -d_hash_from_string(String8 string) -{ - return d_hash_from_seed_string(5381, string); -} - -internal U64 -d_hash_from_seed_string__case_insensitive(U64 seed, String8 string) -{ - U64 result = seed; - for(U64 i = 0; i < string.size; i += 1) - { - result = ((result << 5) + result) + lower_from_char(string.str[i]); - } - return result; -} - -internal U64 -d_hash_from_string__case_insensitive(String8 string) -{ - return d_hash_from_seed_string__case_insensitive(5381, string); -} - -//////////////////////////////// -//~ rjf: Breakpoints - -internal D_BreakpointArray -d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src) -{ - D_BreakpointArray dst = {0}; - dst.count = src->count; - dst.v = push_array(arena, D_Breakpoint, dst.count); - MemoryCopy(dst.v, src->v, sizeof(dst.v[0])*dst.count); - for(U64 idx = 0; idx < dst.count; idx += 1) - { - dst.v[idx].file_path = push_str8_copy(arena, dst.v[idx].file_path); - dst.v[idx].vaddr_expr = push_str8_copy(arena, dst.v[idx].vaddr_expr); - dst.v[idx].condition = push_str8_copy(arena, dst.v[idx].condition); - } - return dst; -} - -//////////////////////////////// -//~ rjf: Path Map Application - -internal String8List -d_possible_path_overrides_from_maps_path(Arena *arena, D_PathMapArray *path_maps, String8 file_path) -{ - // NOTE(rjf): This path, given some target file path, scans all file path map - // overrides, and collects the set of file paths which could've redirected - // to the target file path given the set of file path maps. - // - // For example, if I have a rule saying D:/devel/ maps to C:/devel/, and I - // feed in C:/devel/foo/bar.txt, then this path will construct - // D:/devel/foo/bar.txt, as a possible option. - // - // It will also preserve C:/devel/foo/bar.txt in the resultant list, so that - // overrideless files still work through this path, and both redirected - // files and non-redirected files can go through the same path. - // - String8List result = {0}; - str8_list_push(arena, &result, file_path); - Temp scratch = scratch_begin(&arena, 1); - PathStyle pth_style = PathStyle_Relative; - String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style); - { - for(U64 idx = 0; idx < path_maps->count; idx += 1) - { - //- rjf: unpack link - D_PathMap *map = &path_maps->v[idx]; - PathStyle src_style = PathStyle_Relative; - PathStyle dst_style = PathStyle_Relative; - String8List src_parts = path_normalized_list_from_string(scratch.arena, map->src, &src_style); - String8List dst_parts = path_normalized_list_from_string(scratch.arena, map->dst, &dst_style); - - //- rjf: determine if this link can possibly redirect to the target file path - B32 dst_redirects_to_pth = 0; - String8Node *non_redirected_pth_first = 0; - if(dst_style == pth_style && dst_parts.first != 0 && pth_parts.first != 0) - { - dst_redirects_to_pth = 1; - String8Node *dst_n = dst_parts.first; - String8Node *pth_n = pth_parts.first; - for(;dst_n != 0 && pth_n != 0; dst_n = dst_n->next, pth_n = pth_n->next) - { - if(!str8_match(dst_n->string, pth_n->string, StringMatchFlag_CaseInsensitive)) - { - dst_redirects_to_pth = 0; - break; - } - non_redirected_pth_first = pth_n->next; - } - } - - //- rjf: if this link can redirect to this path via `src` -> `dst`, compute - // possible full source path, by taking `src` and appending non-redirected - // suffix (which did not show up in `dst`) - if(dst_redirects_to_pth) - { - String8List candidate_parts = src_parts; - for(String8Node *p = non_redirected_pth_first; p != 0; p = p->next) - { - str8_list_push(scratch.arena, &candidate_parts, p->string); - } - StringJoin join = {0}; - join.sep = str8_lit("/"); - String8 candidate_path = str8_list_join(arena, &candidate_parts, &join); - str8_list_push(arena, &result, candidate_path); - } - } - } - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Debug Info Extraction Type Pure Functions - -internal D_LineList -d_line_list_copy(Arena *arena, D_LineList *list) -{ - D_LineList dst = {0}; - for(D_LineNode *src_n = list->first; src_n != 0; src_n = src_n->next) - { - D_LineNode *dst_n = push_array(arena, D_LineNode, 1); - MemoryCopyStruct(dst_n, src_n); - dst_n->v.file_path = push_str8_copy(arena, dst_n->v.file_path); - SLLQueuePush(dst.first, dst.last, dst_n); - dst.count += 1; - } - return dst; -} - -//////////////////////////////// -//~ rjf: Command Type Functions - -//- rjf: command parameters - -internal D_CmdParams -d_cmd_params_copy(Arena *arena, D_CmdParams *src) -{ - D_CmdParams dst = {0}; - MemoryCopyStruct(&dst, src); - dst.file_path = push_str8_copy(arena, dst.file_path); - dst.targets.v = push_array(arena, D_Target, dst.targets.count); - MemoryCopy(dst.targets.v, src->targets.v, sizeof(D_Target)*dst.targets.count); - for(U64 idx = 0; idx < dst.targets.count; idx += 1) - { - D_Target *target = &dst.targets.v[idx]; - target->exe = push_str8_copy(arena, target->exe); - target->args = push_str8_copy(arena, target->args); - target->working_directory = push_str8_copy(arena, target->working_directory); - target->custom_entry_point_name = push_str8_copy(arena, target->custom_entry_point_name); - target->env = str8_list_copy(arena, &target->env); - } - return dst; -} - -//- rjf: command lists - -internal void -d_cmd_list_push_new(Arena *arena, D_CmdList *cmds, D_CmdKind kind, D_CmdParams *params) -{ - D_CmdNode *n = push_array(arena, D_CmdNode, 1); - n->cmd.kind = kind; - n->cmd.params = d_cmd_params_copy(arena, params); - DLLPushBack(cmds->first, cmds->last, n); - cmds->count += 1; -} - -//////////////////////////////// -//~ rjf: Stepping "Trap Net" Builders - -// NOTE(rjf): Stepping Algorithm Overview (2024/01/17) -// -// The basic idea behind all stepping algorithms in the debugger are setting up -// a "trap net". A "trap net" is just a collection of high-level traps that are -// meant to "catch" a thread after letting it run. This trap net is submitted -// when the debugger frontend sends a "run" command (it is just empty if doing -// an actual 'run' or 'continue'). The debugger control thread then uses this -// trap net to program a state machine, to appropriately respond to a variety -// of debug events which it is passed from the OS. -// -// These are "high-level traps" because they can have specific behavioral info -// attached to them. These are encoded via the `CTRL_TrapFlags` type, which -// allow expression of the following behaviors: -// -// - end-stepping: when this trap is hit, it will end the stepping operation, -// and the target will not continue. -// - ignore-stack-pointer-check: when a trap in the trap net is hit, it will -// by-default be ignored if the thread's stack pointer has changed. this -// flag disables that behavior, for when the stack pointer is expected to -// change (e.g. step-out). -// - single-step-after-hit: when a trap with this flag is hit, the debugger -// will immediately single-step the thread which hit it. -// - save-stack-pointer: when a trap with this flag is hit, it will rewrite -// the stack pointer which is used to compare against, when deciding -// whether or not to filter a trap (based on stack pointer changes). -// - begin-spoof-mode: this enables "spoof mode". "spoof mode" is a special -// mode that disables the trap net entirely, and lets the thread run -// freely - but it catches the thread not with a trap, but a false return -// address. the debugger will overwrite a specific return address on the -// stack. this address will be overwritten with an address which does NOT -// point to a valid page, such that when the thread returns out of a -// particular call frame, the debugger will receive a debug event, at -// which point it can move the thread back to the correct return address, -// and resume with the trap net enabled. this is used in "step over" -// operations, because it avoids target <-> debugger "roundtrips" (e.g. -// target being stopped, debugger being called with debug events, then -// target resumes when debugger's control thread is done running) for -// recursions. (it doesn't make a difference with non-recursive calls, -// but the debugger can't detect the difference). -// -// Each stepping command prepares its trap net differently. -// -// --- Instruction Step Into -------------------------------------------------- -// In this case, no trap net is prepared, and only a low-level single-step is -// performed. -// -// --- Instruction Step Over -------------------------------------------------- -// To build a trap net for an instruction-level step-over, the next instruction -// at the thread's current instruction pointer is decoded. If it is a call -// instruction, or if it is a repeating instruction, then a trap with the -// 'end-stepping' behavior is placed at the instruction immediately following -// the 'call' instruction. -// -// --- Line Step Into --------------------------------------------------------- -// For a source-line step-into, the thread's instruction pointer is first used -// to look up into the debug info's line info, to find the machine code in the -// thread's current source line. Every instruction in this range is decoded. -// Traps are then built in the following way: -// -// - 'call' instruction -> if can decode call destination address, place -// "end-stepping | ignore-stack-pointer-check" trap at destination. if -// can't, "end-stepping | single-step-after | ignore-stack-pointer-check" -// trap at call. -// - 'jmp' (both unconditional & conditional) -> if can decode jump destination -// address, AND if jump leaves the line, place "end-stepping | ignore- -// stack-pointer-check" trap at destination. if can't, "end-stepping | -// single-step-after | ignore-stack-pointer-check" trap at jmp. if jump -// stays within the line, do nothing. -// - 'return' -> place "end-stepping | single-step-after" trap at return inst. -// - "end-stepping" trap is placed at the first address after the line, to -// catch all steps which simply proceed linearly through the instruction -// stream. -// -// --- Line Step Over --------------------------------------------------------- -// For a source-line step-over, the thread's instruction pointer is first used -// to look up into the debug info's line info, to find the machine code in the -// thread's current source line. Every instruction in this range is decoded. -// Traps are then built in the following way: -// -// - 'call' instruction -> place "single-step-after | begin-spoof-mode" trap at -// call instruction. -// - 'jmp' (both unconditional & conditional) -> if can decode jump destination -// address, AND if jump leaves the line, place "end-stepping" trap at -// destination. if can't, "end-stepping | single-step-after" trap at jmp. -// if jump stays within the line, do nothing. -// - 'return' -> place "end-stepping | single-step-after" trap at return inst. -// - "end-stepping" trap is placed at the first address after the line, to -// catch all steps which simply proceed linearly through the instruction -// stream. -// - for any instructions which may change the stack pointer, traps are placed -// at them with the "save-stack-pointer | single-step-after" behaviors. - -internal D_TrapNet -d_trap_net_from_thread__step_over_inst(Arena *arena, CTRL_Entity *thread) -{ - Temp scratch = scratch_begin(&arena, 1); - D_TrapNet result = {0}; - - // rjf: thread => unpacked info - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - Arch arch = thread->arch; - U64 ip_vaddr = ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); - - // rjf: ip => machine code - String8 machine_code = {0}; - { - Rng1U64 rng = r1u64(ip_vaddr, ip_vaddr+max_instruction_size_from_arch(arch)); - CTRL_ProcessMemorySlice machine_code_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, rng, 0, os_now_microseconds()+5000); - machine_code = machine_code_slice.data; - } - - // rjf: build traps if machine code was read successfully - if(machine_code.size != 0) - { - result.good_read = 1; - - // rjf: decode instruction - DASM_Inst inst = dasm_inst_from_code(scratch.arena, arch, ip_vaddr, machine_code, DASM_Syntax_Intel); - - // rjf: call => run until call returns - if(inst.flags & DASM_InstFlag_Call || inst.flags & DASM_InstFlag_Repeats) - { - CTRL_Trap trap = {CTRL_TrapFlag_EndStepping, ip_vaddr+inst.size}; - ctrl_trap_list_push(arena, &result.traps, &trap); - } - } - - scratch_end(scratch); - return result; -} - -internal D_TrapNet -d_trap_net_from_thread__step_over_line(Arena *arena, CTRL_Entity *thread) -{ - Temp scratch = scratch_begin(&arena, 1); - log_infof("step_over_line:\n{\n"); - D_TrapNet result = {0}; - - // rjf: thread => info - Arch arch = thread->arch; - U64 ip_vaddr = ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, ip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - log_infof("ip_vaddr: 0x%I64x\n", ip_vaddr); - log_infof("dbgi_key: {0x%I64x, 0x%I64x}\n", dbgi_key.u64[0], dbgi_key.u64[1]); - - // rjf: ip => line vaddr range - Rng1U64 line_vaddr_rng = {0}; - { - U64 ip_voff = ctrl_voff_from_vaddr(module, ip_vaddr); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, ip_voff); - Rng1U64 line_voff_rng = {0}; - if(lines.first != 0) - { - line_voff_rng = lines.first->v.voff_range; - line_vaddr_rng = ctrl_vaddr_range_from_voff_range(module, line_voff_rng); - log_infof("line: {%S:%I64i}\n", lines.first->v.file_path, lines.first->v.pt.line); - } - log_infof("voff_range: {0x%I64x, 0x%I64x}\n", line_voff_rng.min, line_voff_rng.max); - log_infof("vaddr_range: {0x%I64x, 0x%I64x}\n", line_vaddr_rng.min, line_vaddr_rng.max); - } - - // rjf: opl line_vaddr_rng -> 0xf00f00 or 0xfeefee? => include in line vaddr range - // - // MSVC exports line info at these line numbers when /JMC (Just My Code) debugging - // is enabled. This is enabled by default normally. - { - U64 opl_line_voff_rng = ctrl_voff_from_vaddr(module, line_vaddr_rng.max); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, opl_line_voff_rng); - if(lines.first != 0 && (lines.first->v.pt.line == 0xf00f00 || lines.first->v.pt.line == 0xfeefee)) - { - line_vaddr_rng.max = ctrl_vaddr_from_voff(module, lines.first->v.voff_range.max); - } - } - - // rjf: line vaddr range => did we find anything successfully? - B32 good_line_info = (line_vaddr_rng.max != 0); - - // rjf: line vaddr range => line's machine code - String8 machine_code = {0}; - B32 good_machine_code = 0; - if(good_line_info) - { - CTRL_ProcessMemorySlice machine_code_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, line_vaddr_rng, 0, os_now_microseconds()+50000); - machine_code = machine_code_slice.data; - good_machine_code = (machine_code.size >= dim_1u64(line_vaddr_rng) && !machine_code_slice.any_byte_bad); - LogInfoNamedBlockF("machine_code_slice") - { - log_infof("stale: %i\n", machine_code_slice.stale); - log_infof("any_byte_bad: %i\n", machine_code_slice.any_byte_bad); - log_infof("any_byte_changed: %i\n", machine_code_slice.any_byte_changed); - log_infof("bytes:\n[\n"); - for(U64 idx = 0; idx < machine_code_slice.data.size; idx += 1) - { - log_infof("0x%x,", machine_code_slice.data.str[idx]); - if(idx%16 == 15 || idx+1 == machine_code_slice.data.size) - { - log_infof("\n"); - } - } - log_infof("]\n"); - } - } - - // rjf: machine code => ctrl flow analysis - DASM_CtrlFlowInfo ctrl_flow_info = {0}; - if(good_machine_code) - { - ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, - DASM_InstFlag_Call| - DASM_InstFlag_Branch| - DASM_InstFlag_UnconditionalJump| - DASM_InstFlag_ChangesStackPointer| - DASM_InstFlag_Return, - arch, - line_vaddr_rng.min, - machine_code); - LogInfoNamedBlockF("ctrl_flow_info") - { - LogInfoNamedBlockF("exit_points") for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) - { - log_infof("{vaddr:0x%I64x, jump_dest_vaddr:0x%I64x, inst_flags:%x}\n", n->v.vaddr, n->v.jump_dest_vaddr, n->v.inst_flags); - } - } - } - - // rjf: push traps for all exit points - if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) - { - DASM_CtrlFlowPoint *point = &n->v; - CTRL_TrapFlags flags = 0; - B32 add = 1; - U64 trap_addr = point->vaddr; - - // rjf: branches/jumps/returns => single-step & end, OR trap @ destination. - if(point->inst_flags & (DASM_InstFlag_Branch| - DASM_InstFlag_UnconditionalJump| - DASM_InstFlag_Return)) - { - flags |= (CTRL_TrapFlag_SingleStepAfterHit|CTRL_TrapFlag_EndStepping); - - // rjf: omit if this jump stays inside of this line - if(contains_1u64(line_vaddr_rng, point->jump_dest_vaddr)) - { - add = 0; - } - - // rjf: trap @ destination, if we can - we can avoid a single-step this way. - if(point->jump_dest_vaddr != 0) - { - trap_addr = point->jump_dest_vaddr; - flags &= ~CTRL_TrapFlag_SingleStepAfterHit; - } - - } - - // rjf: call => place spoof at return spot in stack, single-step after hitting - else if(point->inst_flags & DASM_InstFlag_Call) - { - flags |= (CTRL_TrapFlag_BeginSpoofMode|CTRL_TrapFlag_SingleStepAfterHit); - } - - // rjf: instruction changes stack pointer => save off the stack pointer, single-step over, keep stepping - else if(point->inst_flags & DASM_InstFlag_ChangesStackPointer) - { - flags |= (CTRL_TrapFlag_SingleStepAfterHit|CTRL_TrapFlag_SaveStackPointer); - } - - // rjf: add if appropriate - if(add) - { - CTRL_Trap trap = {flags, trap_addr}; - ctrl_trap_list_push(arena, &result.traps, &trap); - } - } - - // rjf: push trap for natural linear flow - if(good_line_info && good_machine_code) - { - CTRL_Trap trap = {CTRL_TrapFlag_EndStepping, line_vaddr_rng.max}; - ctrl_trap_list_push(arena, &result.traps, &trap); - } - - // rjf: store goodness - if(good_machine_code) - { - result.good_line_info = good_line_info; - result.good_read = good_machine_code; - } - - // rjf: log - LogInfoNamedBlockF("traps") for(CTRL_TrapNode *n = result.traps.first; n != 0; n = n->next) - { - log_infof("{flags:0x%x, vaddr:0x%I64x}\n", n->v.flags, n->v.vaddr); - } - - scratch_end(scratch); - log_infof("}\n\n"); - return result; -} - -internal D_TrapNet -d_trap_net_from_thread__step_into_line(Arena *arena, CTRL_Entity *thread) -{ - Temp scratch = scratch_begin(&arena, 1); - D_TrapNet result = {0}; - - // rjf: thread => info - Arch arch = thread->arch; - U64 ip_vaddr = ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, ip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - - // rjf: ip => line vaddr range - Rng1U64 line_vaddr_rng = {0}; - { - U64 ip_voff = ctrl_voff_from_vaddr(module, ip_vaddr); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, ip_voff); - Rng1U64 line_voff_rng = {0}; - if(lines.first != 0) - { - line_voff_rng = lines.first->v.voff_range; - line_vaddr_rng = ctrl_vaddr_range_from_voff_range(module, line_voff_rng); - } - } - - // rjf: opl line_vaddr_rng -> 0xf00f00 or 0xfeefee? => include in line vaddr range - // - // MSVC exports line info at these line numbers when /JMC (Just My Code) debugging - // is enabled. This is enabled by default normally. - { - U64 opl_line_voff_rng = ctrl_voff_from_vaddr(module, line_vaddr_rng.max); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, opl_line_voff_rng); - if(lines.first != 0 && (lines.first->v.pt.line == 0xf00f00 || lines.first->v.pt.line == 0xfeefee)) - { - line_vaddr_rng.max = ctrl_vaddr_from_voff(module, lines.first->v.voff_range.max); - } - } - - // rjf: line vaddr range => did we find anything successfully? - B32 good_line_info = (line_vaddr_rng.max != 0); - - // rjf: line vaddr range => line's machine code - String8 machine_code = {0}; - B32 good_machine_code = 0; - if(good_line_info) - { - CTRL_ProcessMemorySlice machine_code_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, line_vaddr_rng, 0, os_now_microseconds()+5000); - machine_code = machine_code_slice.data; - good_machine_code = (machine_code.size >= dim_1u64(line_vaddr_rng) && !machine_code_slice.any_byte_bad); - } - - // rjf: machine code => ctrl flow analysis - DASM_CtrlFlowInfo ctrl_flow_info = {0}; - if(good_machine_code) - { - ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, - DASM_InstFlag_Call| - DASM_InstFlag_Branch| - DASM_InstFlag_UnconditionalJump| - DASM_InstFlag_ChangesStackPointer| - DASM_InstFlag_Return, - arch, - line_vaddr_rng.min, - machine_code); - } - - // rjf: determine last - DASM_CtrlFlowPoint *last_call_point = 0; - if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) - { - if(n->v.inst_flags & DASM_InstFlag_Call) - { - last_call_point = &n->v; - } - } - - // rjf: push traps for all exit points - if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) - { - DASM_CtrlFlowPoint *point = &n->v; - CTRL_TrapFlags flags = 0; - B32 add = 1; - U64 trap_addr = point->vaddr; - - // rjf: if this is not the last call instruction in the control flow, - // and if we have no line info for this address, then do not add. - if(point != last_call_point && - point->inst_flags & DASM_InstFlag_Call && - point->jump_dest_vaddr != 0) - { - U64 jump_dest_vaddr = point->jump_dest_vaddr; - CTRL_Entity *jump_dest_module = ctrl_module_from_process_vaddr(process, jump_dest_vaddr); - U64 jump_dest_voff = ctrl_voff_from_vaddr(jump_dest_module, jump_dest_vaddr); - DI_Key jump_dest_dbgi_key = ctrl_dbgi_key_from_module(jump_dest_module); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, jump_dest_dbgi_key, jump_dest_voff); - if(lines.count == 0) - { - add = 0; - } - } - - // rjf: branches/jumps/returns => single-step & end, OR trap @ destination. - if(point->inst_flags & (DASM_InstFlag_Call| - DASM_InstFlag_Branch| - DASM_InstFlag_UnconditionalJump| - DASM_InstFlag_Return)) - { - flags |= (CTRL_TrapFlag_SingleStepAfterHit|CTRL_TrapFlag_EndStepping|CTRL_TrapFlag_IgnoreStackPointerCheck); - - // rjf: omit if this jump stays inside of this line - if(contains_1u64(line_vaddr_rng, point->jump_dest_vaddr)) - { - add = 0; - } - - // rjf: trap @ destination, if we can - we can avoid a single-step this way. - if(point->jump_dest_vaddr != 0) - { - trap_addr = point->jump_dest_vaddr; - flags &= ~CTRL_TrapFlag_SingleStepAfterHit; - } - } - - // rjf: instruction changes stack pointer => save off the stack pointer, single-step over, keep stepping - else if(point->inst_flags & DASM_InstFlag_ChangesStackPointer) - { - flags |= (CTRL_TrapFlag_SingleStepAfterHit|CTRL_TrapFlag_SaveStackPointer); - } - - // rjf: add if appropriate - if(add) - { - CTRL_Trap trap = {flags, trap_addr}; - ctrl_trap_list_push(arena, &result.traps, &trap); - } - } - - // rjf: push trap for natural linear flow - if(good_line_info && good_machine_code) - { - CTRL_Trap trap = {CTRL_TrapFlag_EndStepping, line_vaddr_rng.max}; - ctrl_trap_list_push(arena, &result.traps, &trap); - } - - // rjf: store goodness - { - result.good_line_info = good_line_info; - result.good_read = good_machine_code; - } - - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Debug Info Lookups - -//- rjf: voff -> line info - -internal D_LineList -d_lines_from_dbgi_key_voff(Arena *arena, DI_Key dbgi_key, U64 voff) -{ - Temp scratch = scratch_begin(&arena, 1); - Access *access = access_open(); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); - D_LineList result = {0}; - { - //- rjf: gather line tables - typedef struct LineTableNode LineTableNode; - struct LineTableNode - { - LineTableNode *next; - RDI_ParsedLineTable parsed_line_table; - }; - LineTableNode start_line_table = {0}; - RDI_Unit *unit = rdi_unit_from_voff(rdi, voff); - RDI_LineTable *unit_line_table = rdi_line_table_from_unit(rdi, unit); - rdi_parsed_from_line_table(rdi, unit_line_table, &start_line_table.parsed_line_table); - LineTableNode *top_line_table = 0; - RDI_Scope *scope = rdi_scope_from_voff(rdi, voff); - { - for(RDI_Scope *s = scope; - s->inline_site_idx != 0; - s = rdi_element_from_name_idx(rdi, Scopes, s->parent_scope_idx)) - { - RDI_InlineSite *inline_site = rdi_element_from_name_idx(rdi, InlineSites, s->inline_site_idx); - if(inline_site->line_table_idx != 0) - { - LineTableNode *n = push_array(scratch.arena, LineTableNode, 1); - SLLStackPush(top_line_table, n); - RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, inline_site->line_table_idx); - rdi_parsed_from_line_table(rdi, line_table, &n->parsed_line_table); - } - } - } - SLLStackPush(top_line_table, &start_line_table); - - //- rjf: gather lines in each line table - Rng1U64 shallowest_voff_range = {0}; - for(LineTableNode *line_table_n = top_line_table; line_table_n != 0; line_table_n = line_table_n->next) - { - RDI_ParsedLineTable parsed_line_table = line_table_n->parsed_line_table; - U64 line_info_idx = rdi_line_info_idx_from_voff(&parsed_line_table, voff); - if(line_info_idx < parsed_line_table.count) - { - RDI_Line *line = &parsed_line_table.lines[line_info_idx]; - RDI_Column *column = (line_info_idx < parsed_line_table.col_count) ? &parsed_line_table.cols[line_info_idx] : 0; - RDI_SourceFile *file = rdi_element_from_name_idx(rdi, SourceFiles, line->file_idx); - String8List path_parts = {0}; - for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, file->file_path_node_idx); - fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); - fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) - { - String8 path_part = {0}; - path_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &path_part.size); - str8_list_push_front(scratch.arena, &path_parts, path_part); - } - StringJoin join = {0}; - join.sep = str8_lit("/"); - String8 file_normalized_full_path = str8_list_join(arena, &path_parts, &join); - D_LineNode *n = push_array(arena, D_LineNode, 1); - SLLQueuePush(result.first, result.last, n); - result.count += 1; - if(line->file_idx != 0 && file_normalized_full_path.size != 0) - { - n->v.file_path = file_normalized_full_path; - } - n->v.pt = txt_pt(line->line_num, column ? column->col_first : 1); - n->v.voff_range = r1u64(parsed_line_table.voffs[line_info_idx], parsed_line_table.voffs[line_info_idx+1]); - n->v.dbgi_key = dbgi_key; - if(line_table_n == top_line_table) - { - shallowest_voff_range = n->v.voff_range; - } - } - } - - //- rjf: clamp all lines from all tables by shallowest (most unwound) range - for(D_LineNode *n = result.first; n != 0; n = n->next) - { - n->v.voff_range = intersect_1u64(n->v.voff_range, shallowest_voff_range); - } - } - access_close(access); - scratch_end(scratch); - return result; -} - -//- rjf: file:line -> line info - -// TODO(rjf): this depends on file path maps, needs to move - -internal D_LineListArray -d_lines_array_from_dbgi_key_file_path_line_range(Arena *arena, DI_Key dbgi_key, String8 file_path, Rng1S64 line_num_range) -{ - D_LineListArray array = {0}; - { - array.count = dim_1s64(line_num_range)+1; - array.v = push_array(arena, D_LineList, array.count); - di_key_list_push(arena, &array.dbgi_keys, dbgi_key); - } - Temp scratch = scratch_begin(&arena, 1); - U64 *lines_num_voffs = push_array(scratch.arena, U64, array.count); - Access *access = access_open(); - String8List overrides = rd_possible_overrides_from_file_path(scratch.arena, file_path); - for(String8Node *override_n = overrides.first; - override_n != 0; - override_n = override_n->next) - { - String8 file_path = override_n->string; - String8 file_path_normalized = lower_from_str8(scratch.arena, path_normalized_from_string(scratch.arena, file_path)); - - // rjf: binary -> rdi - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - - // rjf: file_path_normalized * rdi -> src_id - B32 good_src_id = 0; - U32 src_id = 0; - if(rdi != &rdi_parsed_nil) ProfScope("file_path_normalized * rdi -> src_id") - { - RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); - RDI_ParsedNameMap map = {0}; - rdi_parsed_from_name_map(rdi, mapptr, &map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, file_path_normalized.str, file_path_normalized.size); - if(node != 0) - { - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - good_src_id = 1; - src_id = ids[0]; - } - } - } - - // rjf: good src-id -> look up line info for visible range - if(good_src_id) ProfScope("good src-id -> look up line info for visible range") - { - RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); - RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); - RDI_ParsedSourceLineMap line_map = {0}; - rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); - U64 line_idx = 0; - for(S64 line_num = line_num_range.min; - line_num <= line_num_range.max; - line_num += 1, line_idx += 1) - { - D_LineList *list = &array.v[line_idx]; - U32 voff_count = 0; - U64 *voffs = rdi_line_voffs_from_num(&line_map, u32_from_u64_saturate((U64)line_num), &voff_count); - if(lines_num_voffs[line_idx] < 8) ProfScope("iterate voffs (%i)", voff_count) for(U64 idx = 0; idx < voff_count; idx += 1) - { - U64 base_voff = voffs[idx]; - U64 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, base_voff); - RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); - RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); - RDI_ParsedLineTable unit_line_info = {0}; - rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); - U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, base_voff); - if(unit_line_info.voffs != 0) - { - Rng1U64 range = r1u64(base_voff, unit_line_info.voffs[line_info_idx+1]); - S64 actual_line = (S64)unit_line_info.lines[line_info_idx].line_num; - D_LineNode *n = push_array(arena, D_LineNode, 1); - n->v.voff_range = range; - n->v.pt.line = (S64)actual_line; - n->v.pt.column = 1; - n->v.dbgi_key = dbgi_key; - SLLQueuePush(list->first, list->last, n); - list->count += 1; - lines_num_voffs[line_idx] += 1; - if(lines_num_voffs[line_idx] >= 8) - { - break; - } - } - } - } - } - } - access_close(access); - scratch_end(scratch); - return array; -} - -internal D_LineListArray -d_lines_array_from_file_path_line_range(Arena *arena, String8 file_path, Rng1S64 line_num_range) -{ - D_LineListArray array = {0}; - { - array.count = dim_1s64(line_num_range)+1; - array.v = push_array(arena, D_LineList, array.count); - } - Temp scratch = scratch_begin(&arena, 1); - U64 *lines_num_voffs = push_array(scratch.arena, U64, array.count); - DI_KeyArray dbgi_keys = di_push_all_loaded_keys(scratch.arena); - String8List overrides = rd_possible_overrides_from_file_path(scratch.arena, file_path); - for(String8Node *override_n = overrides.first; - override_n != 0; - override_n = override_n->next) - { - String8 file_path = override_n->string; - String8 file_path_normalized = lower_from_str8(scratch.arena, file_path); - for EachIndex(idx, dbgi_keys.count) - { - Access *access = access_open(); - - // rjf: binary -> rdi - DI_Key key = dbgi_keys.v[idx]; - RDI_Parsed *rdi = di_rdi_from_key(access, key, 1, 0); - - // rjf: file_path_normalized * rdi -> src_id - B32 good_src_id = 0; - U32 src_id = 0; - if(rdi != &rdi_parsed_nil) ProfScope("file_path_normalized * rdi -> src_id") - { - RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); - RDI_ParsedNameMap map = {0}; - rdi_parsed_from_name_map(rdi, mapptr, &map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, file_path_normalized.str, file_path_normalized.size); - if(node != 0) - { - U32 id_count = 0; - U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); - if(id_count > 0) - { - good_src_id = 1; - src_id = ids[0]; - } - } - } - - // rjf: good src-id -> look up line info for visible range - if(good_src_id) ProfScope("good src-id -> look up line info for visible range") - { - RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); - RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); - RDI_ParsedSourceLineMap line_map = {0}; - rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); - U64 line_idx = 0; - for(S64 line_num = line_num_range.min; - line_num <= line_num_range.max; - line_num += 1, line_idx += 1) - { - D_LineList *list = &array.v[line_idx]; - U32 voff_count = 0; - U64 *voffs = rdi_line_voffs_from_num(&line_map, u32_from_u64_saturate((U64)line_num), &voff_count); - if(lines_num_voffs[line_idx] < 8) ProfScope("iterate voffs (%i)", voff_count) for(U64 idx = 0; idx < voff_count; idx += 1) - { - U64 base_voff = voffs[idx]; - U64 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, base_voff); - RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); - RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); - RDI_ParsedLineTable unit_line_info = {0}; - rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); - U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, base_voff); - if(unit_line_info.voffs != 0) - { - Rng1U64 range = r1u64(base_voff, unit_line_info.voffs[line_info_idx+1]); - S64 actual_line = (S64)unit_line_info.lines[line_info_idx].line_num; - D_LineNode *n = push_array(arena, D_LineNode, 1); - n->v.voff_range = range; - n->v.pt.line = (S64)actual_line; - n->v.pt.column = 1; - n->v.dbgi_key = key; - SLLQueuePush(list->first, list->last, n); - list->count += 1; - lines_num_voffs[line_idx] += 1; - if(lines_num_voffs[line_idx] >= 8) - { - break; - } - } - } - } - } - - // rjf: good src id -> push to relevant dbgi keys - if(good_src_id) - { - di_key_list_push(arena, &array.dbgi_keys, key); - } - - access_close(access); - } - } - scratch_end(scratch); - return array; -} - -internal D_LineList -d_lines_from_dbgi_key_file_path_line_num(Arena *arena, DI_Key dbgi_key, String8 file_path, S64 line_num) -{ - D_LineListArray array = d_lines_array_from_dbgi_key_file_path_line_range(arena, dbgi_key, file_path, r1s64(line_num, line_num+1)); - D_LineList list = {0}; - if(array.count != 0) - { - list = array.v[0]; - } - return list; -} - -internal D_LineList -d_lines_from_file_path_line_num(Arena *arena, String8 file_path, S64 line_num) -{ - D_LineListArray array = d_lines_array_from_file_path_line_range(arena, file_path, r1s64(line_num, line_num+1)); - D_LineList list = {0}; - if(array.count != 0) - { - list = array.v[0]; - } - return list; -} - -//////////////////////////////// -//~ rjf: Process/Thread/Module Info Lookups - -internal U64 -d_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr) -{ - ProfBeginFunction(); - U64 base_vaddr = 0; - Temp scratch = scratch_begin(0, 0); - if(!d_ctrl_targets_running()) - { - //- rjf: unpack module info - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); - Rng1U64 tls_vaddr_range = ctrl_tls_vaddr_range_from_module(module->handle); - U64 addr_size = bit_size_from_arch(process->arch)/8; - - //- rjf: read module's TLS index - U64 tls_index = 0; - if(addr_size != 0) - { - CTRL_ProcessMemorySlice tls_index_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, tls_vaddr_range, 0, 0); - if(tls_index_slice.data.size >= addr_size) - { - tls_index = *(U64 *)tls_index_slice.data.str; - } - } - - //- rjf: PE path - if(addr_size != 0) - { - U64 thread_info_addr = root_vaddr; - U64 tls_addr_off = tls_index*addr_size; - U64 tls_addr_array = 0; - CTRL_ProcessMemorySlice tls_addr_array_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, r1u64(thread_info_addr, thread_info_addr+addr_size), 0, 0); - String8 tls_addr_array_data = tls_addr_array_slice.data; - if(tls_addr_array_data.size >= 8) - { - MemoryCopy(&tls_addr_array, tls_addr_array_data.str, sizeof(U64)); - } - CTRL_ProcessMemorySlice result_slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, r1u64(tls_addr_array + tls_addr_off, tls_addr_array + tls_addr_off + addr_size), 0, 0); - String8 result_data = result_slice.data; - if(result_data.size >= 8) - { - MemoryCopy(&base_vaddr, result_data.str, sizeof(U64)); - } - } - - //- rjf: non-PE path (not implemented) -#if 0 - if(!bin_is_pe) - { - // TODO(rjf): not supported. old code from the prototype that Nick had sketched out: - // TODO(nick): This code works only if the linked c runtime library is glibc. - // Implement CRT detection here. - - U64 dtv_addr = UINT64_MAX; - demon_read_memory(process->demon_handle, &dtv_addr, thread_info_addr, addr_size); - - /* - union delta_thread_vector - { - size_t counter; - struct - { - void *value; - void *to_free; - } pointer; - }; - */ - - U64 dtv_size = 16; - U64 dtv_count = 0; - demon_read_memory(process->demon_handle, &dtv_count, dtv_addr - dtv_size, addr_size); - - if (tls_index > 0 && tls_index < dtv_count) - { - demon_read_memory(process->demon_handle, &result, dtv_addr + dtv_size*tls_index, addr_size); - } - } -#endif - } - scratch_end(scratch); - ProfEnd(); - return base_vaddr; -} - -//////////////////////////////// -//~ rjf: Target Controls - -//- rjf: stopped info from the control thread - -internal CTRL_Event -d_ctrl_last_stop_event(void) -{ - return d_state->ctrl_last_stop_event; -} - -//////////////////////////////// -//~ rjf: Main State Accessors/Mutators - -//- rjf: frame data - -internal U64 -d_frame_index(void) -{ - return d_state->frame_index; -} - -//- rjf: control state - -internal D_RunKind -d_ctrl_last_run_kind(void) -{ - return d_state->ctrl_last_run_kind; -} - -internal U64 -d_ctrl_last_run_frame_idx(void) -{ - return d_state->ctrl_last_run_frame_idx; -} - -internal B32 -d_ctrl_targets_running(void) -{ - return d_state->ctrl_is_running; -} - -//- rjf: active entity based queries - -internal DI_KeyList -d_push_active_dbgi_key_list(Arena *arena) -{ - DI_KeyList dbgis = {0}; - CTRL_EntityArray modules = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Module); - for EachIndex(idx, modules.count) - { - CTRL_Entity *module = modules.v[idx]; - DI_Key key = ctrl_dbgi_key_from_module(module); - di_key_list_push(arena, &dbgis, key); - } - return dbgis; -} - -//- rjf: per-run caches - -internal U64 -d_query_cached_rip_from_thread(CTRL_Entity *thread) -{ - U64 result = d_query_cached_rip_from_thread_unwind(thread, 0); - return result; -} - -internal U64 -d_query_cached_rip_from_thread_unwind(CTRL_Entity *thread, U64 unwind_count) -{ - U64 result = 0; - if(unwind_count == 0) - { - result = ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); - } - else - { - Access *access = access_open(); - CTRL_CallStack callstack = ctrl_call_stack_from_thread(access, thread->handle, 1, 0); - if(callstack.concrete_frames_count != 0) - { - result = regs_rip_from_arch_block(thread->arch, callstack.concrete_frames[unwind_count%callstack.concrete_frames_count]->regs); - } - access_close(access); - } - return result; -} - -internal U64 -d_query_cached_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr) -{ - U64 result = 0; - for(U64 cache_idx = 0; cache_idx < ArrayCount(d_state->tls_base_caches); cache_idx += 1) - { - D_RunTLSBaseCache *cache = &d_state->tls_base_caches[(d_state->tls_base_cache_gen+cache_idx)%ArrayCount(d_state->tls_base_caches)]; - if(cache_idx == 0 && cache->slots_count == 0) - { - cache->slots_count = 256; - cache->slots = push_array(cache->arena, D_RunTLSBaseCacheSlot, cache->slots_count); - } - else if(cache->slots_count == 0) - { - break; - } - CTRL_Handle handle = process->handle; - U64 hash = d_hash_from_seed_string(d_hash_from_string(str8_struct(&handle)), str8_struct(&rip_vaddr)); - U64 slot_idx = hash%cache->slots_count; - D_RunTLSBaseCacheSlot *slot = &cache->slots[slot_idx]; - D_RunTLSBaseCacheNode *node = 0; - for(D_RunTLSBaseCacheNode *n = slot->first; n != 0; n = n->hash_next) - { - if(ctrl_handle_match(n->process, handle) && n->root_vaddr == root_vaddr && n->rip_vaddr == rip_vaddr) - { - node = n; - break; - } - } - if(node == 0) - { - U64 tls_base_vaddr = d_tls_base_vaddr_from_process_root_rip(process, root_vaddr, rip_vaddr); - if(tls_base_vaddr != 0) - { - node = push_array(cache->arena, D_RunTLSBaseCacheNode, 1); - SLLQueuePush_N(slot->first, slot->last, node, hash_next); - node->process = handle; - node->root_vaddr = root_vaddr; - node->rip_vaddr = rip_vaddr; - node->tls_base_vaddr = tls_base_vaddr; - } - } - if(node != 0 && node->tls_base_vaddr != 0) - { - result = node->tls_base_vaddr; - break; - } - } - return result; -} - -internal E_String2NumMap * -d_query_cached_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) -{ - ProfBeginFunction(); - E_String2NumMap *map = &e_string2num_map_nil; - for(U64 cache_idx = 0; cache_idx < ArrayCount(d_state->locals_caches); cache_idx += 1) - { - D_RunLocalsCache *cache = &d_state->locals_caches[(d_state->locals_cache_gen+cache_idx)%ArrayCount(d_state->locals_caches)]; - if(cache_idx == 0 && cache->table_size == 0) - { - cache->table_size = 256; - cache->table = push_array(cache->arena, D_RunLocalsCacheSlot, cache->table_size); - } - else if(cache->table_size == 0) - { - break; - } - U64 hash = u64_hash_from_str8(str8_struct(&dbgi_key)); - U64 slot_idx = hash % cache->table_size; - D_RunLocalsCacheSlot *slot = &cache->table[slot_idx]; - D_RunLocalsCacheNode *node = 0; - for(D_RunLocalsCacheNode *n = slot->first; n != 0; n = n->hash_next) - { - if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) - { - node = n; - break; - } - } - if(node == 0) - { - Access *access = access_open(); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); - E_String2NumMap *map = e_push_locals_map_from_rdi_voff(cache->arena, rdi, voff); - if(map->slots_count != 0) - { - node = push_array(cache->arena, D_RunLocalsCacheNode, 1); - node->dbgi_key = dbgi_key; - node->voff = voff; - node->locals_map = map; - SLLQueuePush_N(slot->first, slot->last, node, hash_next); - } - access_close(access); - } - if(node != 0 && node->locals_map->slots_count != 0) - { - map = node->locals_map; - break; - } - } - ProfEnd(); - return map; -} - -internal E_String2NumMap * -d_query_cached_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) -{ - ProfBeginFunction(); - E_String2NumMap *map = &e_string2num_map_nil; - for(U64 cache_idx = 0; cache_idx < ArrayCount(d_state->member_caches); cache_idx += 1) - { - D_RunLocalsCache *cache = &d_state->member_caches[(d_state->member_cache_gen+cache_idx)%ArrayCount(d_state->member_caches)]; - if(cache_idx == 0 && cache->table_size == 0) - { - cache->table_size = 256; - cache->table = push_array(cache->arena, D_RunLocalsCacheSlot, cache->table_size); - } - else if(cache->table_size == 0) - { - break; - } - U64 hash = u64_hash_from_str8(str8_struct(&dbgi_key)); - U64 slot_idx = hash % cache->table_size; - D_RunLocalsCacheSlot *slot = &cache->table[slot_idx]; - D_RunLocalsCacheNode *node = 0; - for(D_RunLocalsCacheNode *n = slot->first; n != 0; n = n->hash_next) - { - if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) - { - node = n; - break; - } - } - if(node == 0) - { - Access *access = access_open(); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); - E_String2NumMap *map = e_push_member_map_from_rdi_voff(cache->arena, rdi, voff); - if(map->slots_count != 0) - { - node = push_array(cache->arena, D_RunLocalsCacheNode, 1); - node->dbgi_key = dbgi_key; - node->voff = voff; - node->locals_map = map; - SLLQueuePush_N(slot->first, slot->last, node, hash_next); - } - access_close(access); - } - if(node != 0 && node->locals_map->slots_count != 0) - { - map = node->locals_map; - break; - } - } - ProfEnd(); - return map; -} - -//- rjf: top-level command dispatch - -internal void -d_push_cmd(D_CmdKind kind, D_CmdParams *params) -{ - d_cmd_list_push_new(d_state->cmds_arena, &d_state->cmds, kind, params); -} - -//- rjf: command iteration - -internal B32 -d_next_cmd(D_Cmd **cmd) -{ - D_CmdNode *start_node = d_state->cmds.first; - if(cmd[0] != 0) - { - start_node = CastFromMember(D_CmdNode, cmd, cmd[0]); - start_node = start_node->next; - } - cmd[0] = 0; - if(start_node != 0) - { - cmd[0] = &start_node->cmd; - } - return !!cmd[0]; -} - -//////////////////////////////// -//~ rjf: Main Layer Top-Level Calls - -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif +//~ rjf: Layer Initialization internal void d_init(void) { - Arena *arena = arena_alloc(); - d_state = push_array(arena, D_State, 1); - d_state->arena = arena; - d_state->cmds_arena = arena_alloc(); - d_state->output_log_key = c_key_make(c_root_alloc(), c_id_make(0, 0)); - c_submit_data(d_state->output_log_key, 0, str8_zero()); - d_state->ctrl_entity_store = ctrl_entity_ctx_rw_store_alloc(); - d_state->ctrl_stop_arena = arena_alloc(); - d_state->ctrl_msg_arena = arena_alloc(); - - // rjf: set up caches - for(U64 idx = 0; idx < ArrayCount(d_state->tls_base_caches); idx += 1) + //- rjf: set up ctrl state { - d_state->tls_base_caches[idx].arena = arena_alloc(); - } - for(U64 idx = 0; idx < ArrayCount(d_state->locals_caches); idx += 1) - { - d_state->locals_caches[idx].arena = arena_alloc(); - } - for(U64 idx = 0; idx < ArrayCount(d_state->member_caches); idx += 1) - { - d_state->member_caches[idx].arena = arena_alloc(); + Arena *arena = arena_alloc(); + d_ctrl_state = push_array(arena, D_CtrlState, 1); + d_ctrl_state->arena = arena; + for EachEnumVal(Arch, arch) + { + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 reg_count = arch_info->reg_code_count; + String8 *reg_names = arch_info->reg_code_name_table; + d_ctrl_state->arch_string2reg_tables[arch] = e_string2num_map_make(d_ctrl_state->arena, 256); + for(U64 idx = 1; idx < reg_count; idx += 1) + { + e_string2num_map_insert(d_ctrl_state->arena, &d_ctrl_state->arch_string2reg_tables[arch], reg_names[idx], idx); + } + } + d_ctrl_state->thread_reg_cache.slots_count = 1024; + d_ctrl_state->thread_reg_cache.slots = push_array(arena, D_ThreadRegCacheSlot, d_ctrl_state->thread_reg_cache.slots_count); + d_ctrl_state->thread_reg_cache.stripes_count = get_system_info()->logical_processor_count; + d_ctrl_state->thread_reg_cache.stripes = push_array(arena, D_ThreadRegCacheStripe, d_ctrl_state->thread_reg_cache.stripes_count); + for(U64 idx = 0; idx < d_ctrl_state->thread_reg_cache.stripes_count; idx += 1) + { + d_ctrl_state->thread_reg_cache.stripes[idx].arena = arena_alloc(); + d_ctrl_state->thread_reg_cache.stripes[idx].rw_mutex = rw_mutex_alloc(); + } + d_ctrl_state->module_info_cache.slots_count = 1024; + d_ctrl_state->module_info_cache.slots = push_array(arena, D_ModuleInfoCacheSlot, d_ctrl_state->module_info_cache.slots_count); + d_ctrl_state->module_info_cache.stripes = stripe_array_alloc(arena); + d_ctrl_state->u2c_ring_size = KB(64); + d_ctrl_state->u2c_ring_base = push_array_no_zero(arena, U8, d_ctrl_state->u2c_ring_size); + d_ctrl_state->u2c_ring_mutex = mutex_alloc(); + d_ctrl_state->u2c_ring_cv = cond_var_alloc(); + d_ctrl_state->c2u_ring_size = KB(64); + d_ctrl_state->c2u_ring_max_string_size = d_ctrl_state->c2u_ring_size/2; + d_ctrl_state->c2u_ring_base = push_array_no_zero(arena, U8, d_ctrl_state->c2u_ring_size); + d_ctrl_state->c2u_ring_mutex = mutex_alloc(); + d_ctrl_state->c2u_ring_cv = cond_var_alloc(); + { + d_ctrl_state->ctrl_thread_log_path = push_str8f(d_ctrl_state->arena, "%S/ctrl_thread.raddbg_log", g_logs_folder); + write_data_to_file_path(d_ctrl_state->ctrl_thread_log_path, str8_zero()); + } + d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex = rw_mutex_alloc(); + d_ctrl_state->ctrl_thread_entity_store = d_entity_ctx_rw_store_alloc(); + d_ctrl_state->ctrl_thread_eval_cache = e_cache_alloc(); + d_ctrl_state->ctrl_thread_msg_process_arena = arena_alloc(); + d_ctrl_state->dmn_event_arena = arena_alloc(); + d_ctrl_state->user_entry_point_arena = arena_alloc(); + d_ctrl_state->dbg_dir_arena = arena_alloc(); + for(D_ExceptionCodeKind k = (D_ExceptionCodeKind)0; k < D_ExceptionCodeKind_COUNT; k = (D_ExceptionCodeKind)(k+1)) + { + if(d_exception_code_kind_default_enable_table[k]) + { + d_ctrl_state->exception_code_filters[k/64] |= 1ull<<(k%64); + } + } + d_ctrl_state->ctrl_thread_log = log_alloc(); + d_ctrl_state->ctrl_thread = thread_launch(d_ctrl_thread__entry_point, 0); + d_ctrl_state->dump_cache.slots_count = 64; + d_ctrl_state->dump_cache.slots = push_array(arena, D_DumpSlot, d_ctrl_state->dump_cache.slots_count); + d_ctrl_state->dump_cache.stripes = stripe_array_alloc(arena); } - // rjf: set up run state - d_state->ctrl_last_run_arena = arena_alloc(); -} - -internal D_EventList -d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps, U64 exception_code_filters[(CTRL_ExceptionCodeKind_COUNT+63)/64]) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - D_EventList result = {0}; - d_state->frame_index += 1; - - ////////////////////////////// - //- rjf: sync with ctrl thread - // - ProfScope("sync with ctrl thread") + //- rjf: set up user state { - //- rjf: grab next reggen/memgen - U64 new_mem_gen = ctrl_mem_gen(); - U64 new_reg_gen = ctrl_reg_gen(); + Arena *arena = arena_alloc(); + d_user_state = push_array(arena, D_UserState, 1); + d_user_state->arena = arena; + d_user_state->cmds_arena = arena_alloc(); + d_user_state->output_log_root = c_root_alloc(); + d_user_state->ctrl_entity_store = d_entity_ctx_rw_store_alloc(); + d_user_state->ctrl_stop_arena = arena_alloc(); + d_user_state->ctrl_msg_arena = arena_alloc(); - //- rjf: consume & process events - CTRL_EventList events = ctrl_c2u_pop_events(scratch.arena); - ctrl_entity_store_apply_events(d_state->ctrl_entity_store, &events); - for(CTRL_EventNode *event_n = events.first; - event_n != 0; - event_n = event_n->next) + // rjf: set up caches + for(U64 idx = 0; idx < ArrayCount(d_user_state->tls_base_caches); idx += 1) { - CTRL_Event *event = &event_n->v; - log_infof("ctrl_event:\n{\n"); - log_infof("kind: \"%S\"\n", ctrl_string_from_event_kind(event->kind)); - log_infof("entity_id: %u\n", event->entity_id); - switch(event->kind) - { - default:{}break; - - //- rjf: errors - - case CTRL_EventKind_Error: - { - log_user_error(event->string); - }break; - - //- rjf: starts/stops - - case CTRL_EventKind_Started: - { - d_state->ctrl_is_running = 1; - d_state->ctrl_thread_run_state = 1; - }break; - - case CTRL_EventKind_Stopped: - { - B32 should_snap = !(d_state->ctrl_soft_halt_issued); - d_state->ctrl_is_running = 0; - d_state->ctrl_thread_run_state = 0; - d_state->ctrl_soft_halt_issued = 0; - - // rjf: exception or unexpected trap -> push error - if(event->cause == CTRL_EventCause_InterruptedByException || - event->cause == CTRL_EventCause_InterruptedByTrap) - { - log_user_error(str8_zero()); - } - - // rjf: gather stop info - { - arena_clear(d_state->ctrl_stop_arena); - MemoryCopyStruct(&d_state->ctrl_last_stop_event, event); - d_state->ctrl_last_stop_event.string = push_str8_copy(d_state->ctrl_stop_arena, d_state->ctrl_last_stop_event.string); - } - - // rjf: push stop event to caller, if this is not a soft-halt - if(should_snap) - { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, event->entity); - D_EventCause cause = D_EventCause_Null; - switch(event->cause) - { - default:{}break; - case CTRL_EventCause_InterruptedByHalt: - { - if(should_snap) - { - cause = D_EventCause_Halt; - } - else - { - cause = D_EventCause_SoftHalt; - } - }break; - case CTRL_EventCause_UserBreakpoint: {cause = D_EventCause_UserBreakpoint;}break; - } - D_EventNode *n = push_array(arena, D_EventNode, 1); - SLLQueuePush(result.first, result.last, n); - result.count += 1; - D_Event *evt = &n->v; - evt->kind = D_EventKind_Stop; - evt->cause = cause; - evt->thread = thread->kind == CTRL_EntityKind_Thread ? thread->handle : ctrl_handle_zero(); - evt->vaddr = event->rip_vaddr; - evt->id = event->u64_code; - } - }break; - - //- rjf: entity creation/deletion - - case CTRL_EventKind_NewProc: - { - // rjf: the first process? -> clear session output - CTRL_EntityArray existing_processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); - if(existing_processes.count == 1) - { - MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("[new session]\n")}; - mtx_push_op(d_state->output_log_key, op); - } - }break; - - case CTRL_EventKind_EndProc: - { - D_EventNode *n = push_array(arena, D_EventNode, 1); - SLLQueuePush(result.first, result.last, n); - result.count += 1; - D_Event *evt = &n->v; - evt->kind = D_EventKind_ProcessEnd; - evt->code = event->u64_code; - }break; - - case CTRL_EventKind_NewModule: - { - D_EventNode *n = push_array(arena, D_EventNode, 1); - SLLQueuePush(result.first, result.last, n); - result.count += 1; - D_Event *evt = &n->v; - evt->kind = D_EventKind_ModuleLoad; - evt->module = event->entity; - }break; - - //- rjf: debug strings - - case CTRL_EventKind_DebugString: - { - MTX_Op op = {r1u64(max_U64, max_U64), event->string}; - mtx_push_op(d_state->output_log_key, op); - }break; - - //- rjf: memory - - case CTRL_EventKind_MemReserve:{}break; - case CTRL_EventKind_MemCommit:{}break; - case CTRL_EventKind_MemDecommit:{}break; - case CTRL_EventKind_MemRelease:{}break; - } - log_infof("}\n\n"); + d_user_state->tls_base_caches[idx].arena = arena_alloc(); } - - //- rjf: clear tls base cache - if((d_state->tls_base_cache_reggen_idx != new_reg_gen || - d_state->tls_base_cache_memgen_idx != new_mem_gen) && - !d_ctrl_targets_running()) + for(U64 idx = 0; idx < ArrayCount(d_user_state->locals_caches); idx += 1) { - d_state->tls_base_cache_gen += 1; - D_RunTLSBaseCache *cache = &d_state->tls_base_caches[d_state->tls_base_cache_gen%ArrayCount(d_state->tls_base_caches)]; - arena_clear(cache->arena); - cache->slots_count = 0; - cache->slots = 0; - d_state->tls_base_cache_reggen_idx = new_reg_gen; - d_state->tls_base_cache_memgen_idx = new_mem_gen; + d_user_state->locals_caches[idx].arena = arena_alloc(); } - - //- rjf: clear locals cache - if(d_state->locals_cache_reggen_idx != new_reg_gen && - !d_ctrl_targets_running()) + for(U64 idx = 0; idx < ArrayCount(d_user_state->member_caches); idx += 1) { - d_state->locals_cache_gen += 1; - D_RunLocalsCache *cache = &d_state->locals_caches[d_state->locals_cache_gen%ArrayCount(d_state->locals_caches)]; - arena_clear(cache->arena); - cache->table_size = 0; - cache->table = 0; - d_state->locals_cache_reggen_idx = new_reg_gen; + d_user_state->member_caches[idx].arena = arena_alloc(); } - //- rjf: clear members cache - if(d_state->member_cache_reggen_idx != new_reg_gen && - !d_ctrl_targets_running()) - { - d_state->member_cache_gen += 1; - D_RunLocalsCache *cache = &d_state->member_caches[d_state->member_cache_gen%ArrayCount(d_state->member_caches)]; - arena_clear(cache->arena); - cache->table_size = 0; - cache->table = 0; - d_state->member_cache_reggen_idx = new_reg_gen; - } - } - - ////////////////////////////// - //- rjf: hash ctrl parameterization state - // - U128 ctrl_param_state_hash = {0}; - { - // rjf: build data strings of all param data - String8List strings = {0}; - { - CTRL_EntityArray threads = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Thread); - for EachIndex(idx, threads.count) - { - CTRL_Entity *thread = threads.v[idx]; - if(thread->is_frozen) - { - str8_list_push(scratch.arena, &strings, str8_struct(&thread->id)); - str8_list_push(scratch.arena, &strings, str8_struct(&thread->is_frozen)); - } - } - for(U64 idx = 0; idx < breakpoints->count; idx += 1) - { - D_Breakpoint *bp = &breakpoints->v[idx]; - str8_list_push(scratch.arena, &strings, bp->file_path); - str8_list_push(scratch.arena, &strings, str8_struct(&bp->pt)); - str8_list_push(scratch.arena, &strings, bp->vaddr_expr); - str8_list_push(scratch.arena, &strings, bp->condition); - } - } - - // rjf: join & hash to produce result - String8 string = str8_list_join(scratch.arena, &strings, 0); - XXH128_hash_t hash = XXH3_128bits(string.str, string.size); - MemoryCopy(&ctrl_param_state_hash, &hash, sizeof(ctrl_param_state_hash)); - } - - ////////////////////////////// - //- rjf: if ctrl thread is running, and our ctrl parameterization - // state hash has changed since the last run, we should soft- - // halt-refresh to inform the ctrl thread about the updated - // state - // - if(d_ctrl_targets_running() && !u128_match(ctrl_param_state_hash, d_state->ctrl_last_run_param_state_hash)) - { - d_cmd(D_CmdKind_SoftHaltRefresh); - } - - ////////////////////////////// - //- rjf: process top-level commands - // - D_CmdList deferred_cmds = {0}; - CTRL_MsgList ctrl_msgs = {0}; - ProfScope("process top-level commands") - { - D_BreakpointArray run_extra_bps = {0}; - for(D_Cmd *cmd = 0; d_next_cmd(&cmd);) - { - // rjf: unpack command - D_CmdParams *params = &cmd->params; - - // rjf: prep ctrl running arguments - B32 need_run = 0; - D_RunKind run_kind = D_RunKind_Run; - CTRL_Entity *run_thread = &ctrl_entity_nil; - CTRL_RunFlags run_flags = 0; - CTRL_TrapList run_traps = {0}; - - // rjf: process command - switch(cmd->kind) - { - default:{}break; - - //- rjf: low-level target control operations - case D_CmdKind_LaunchAndRun: - case D_CmdKind_LaunchAndStepInto: - { - // rjf: get list of targets to launch - D_TargetArray *targets_to_launch = ¶ms->targets; - - // rjf: no targets => assume all active targets - if(targets_to_launch->count == 0) - { - targets_to_launch = targets; - } - - // rjf: launch - if(targets_to_launch->count != 0) - { - for(U64 idx = 0; idx < targets_to_launch->count; idx += 1) - { - // rjf: unpack target - D_Target *target = &targets_to_launch->v[idx]; - String8 exe = str8_skip_chop_whitespace(target->exe); - String8 args = str8_skip_chop_whitespace(target->args); - String8 working_directory = str8_skip_chop_whitespace(target->working_directory); - String8 custom_entry_point_name = str8_skip_chop_whitespace(target->custom_entry_point_name); - String8 stdout_path = str8_skip_chop_whitespace(target->stdout_path); - String8 stderr_path = str8_skip_chop_whitespace(target->stderr_path); - String8 stdin_path = str8_skip_chop_whitespace(target->stdin_path); - String8List env = target->env; - if(working_directory.size == 0) - { - working_directory = os_get_current_path(scratch.arena); - } - - // rjf: build launch options - String8List cmdln_strings = {0}; - { - str8_list_push(scratch.arena, &cmdln_strings, exe); - { - U64 start_split_idx = 0; - B32 quoted = 0; - for(U64 idx = 0; idx <= args.size; idx += 1) - { - U8 byte = idx < args.size ? args.str[idx] : 0; - if(byte == '"') - { - quoted ^= 1; - } - B32 splitter_found = (!quoted && (byte == 0 || char_is_space(byte))); - if(splitter_found) - { - String8 string = str8_substr(args, r1u64(start_split_idx, idx)); - if(string.size > 0) - { - str8_list_push(scratch.arena, &cmdln_strings, string); - } - start_split_idx = idx+1; - } - } - } - } - - // rjf: push message to launch - { - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = CTRL_MsgKind_Launch; - msg->path = working_directory; - msg->cmd_line_string_list = cmdln_strings; - msg->stdout_path = stdout_path; - msg->stderr_path = stderr_path; - msg->stdin_path = stdin_path; - msg->debug_subprocesses = target->debug_subprocesses; - msg->env_inherit = 1; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - str8_list_push(scratch.arena, &msg->entry_points, custom_entry_point_name); - msg->env_string_list = env; - } - } - - // rjf: run - need_run = 1; - run_kind = D_RunKind_Run; - run_thread = &ctrl_entity_nil; - run_flags = (cmd->kind == D_CmdKind_LaunchAndStepInto) ? CTRL_RunFlag_StopOnEntryPoint : 0; - } - - // rjf: no targets -> error - if(targets_to_launch->count == 0) - { - log_user_error(str8_lit("No active targets exist; cannot launch. You must select a target first.")); - } - }break; - case D_CmdKind_Kill: - { - CTRL_Entity *process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->process); - if(process == &ctrl_entity_nil) - { - log_user_error(str8_lit("Cannot kill; no process was specified.")); - } - else - { - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = CTRL_MsgKind_Kill; - msg->exit_code = 1; - msg->entity = process->handle; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - } - }break; - case D_CmdKind_KillAll: - { - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = CTRL_MsgKind_KillAll; - msg->exit_code = 1; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - }break; - case D_CmdKind_Detach: - { - CTRL_Entity *process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->process); - if(process == &ctrl_entity_nil) - { - log_user_error(str8_lit("Cannot detach; no process specified.")); - } - else - { - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = CTRL_MsgKind_Detach; - msg->entity = process->handle; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - } - }break; - case D_CmdKind_Continue: - { - B32 good_to_run = 0; - CTRL_EntityArray threads = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Thread); - if(threads.count > 0) - { - for EachIndex(idx, threads.count) - { - CTRL_Entity *thread = threads.v[idx]; - if(!thread->is_frozen) - { - good_to_run = 1; - break; - } - } - if(good_to_run) - { - need_run = 1; - run_kind = D_RunKind_Run; - run_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->thread); - } - else - { - log_user_error(str8_lit("Cannot run with all threads frozen.")); - } - } - }break; - case D_CmdKind_StepIntoInst: - case D_CmdKind_StepOverInst: - case D_CmdKind_StepIntoLine: - case D_CmdKind_StepOverLine: - case D_CmdKind_StepOut: - { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->thread); - if(thread == &ctrl_entity_nil) - { - log_user_error(str8_lit("Must have a selected thread to step.")); - } - else if(d_ctrl_targets_running()) - { - if(d_ctrl_last_run_kind() == D_RunKind_Run) - { - log_user_error(str8_lit("Must halt before stepping.")); - } - } - else if(thread->is_frozen) - { - log_user_error(str8_lit("Must thaw selected thread before stepping.")); - } - else - { - D_TrapNet trap_net = {0}; - switch(cmd->kind) - { - default: break; - case D_CmdKind_StepIntoInst: {trap_net.good_read = 1;}break; - case D_CmdKind_StepOverInst: {trap_net = d_trap_net_from_thread__step_over_inst(scratch.arena, thread);}break; - case D_CmdKind_StepIntoLine: {trap_net = d_trap_net_from_thread__step_into_line(scratch.arena, thread);}break; - case D_CmdKind_StepOverLine: {trap_net = d_trap_net_from_thread__step_over_line(scratch.arena, thread);}break; - case D_CmdKind_StepOut: - { - Access *access = access_open(); - - // rjf: thread => call stack - CTRL_CallStack callstack = ctrl_call_stack_from_thread(access, thread->handle, 1, os_now_microseconds()+10000); - - // rjf: use first unwind frame to generate trap - if(callstack.concrete_frames_count > 1) - { - U64 vaddr = regs_rip_from_arch_block(thread->arch, callstack.concrete_frames[1]->regs); - CTRL_Trap trap = {CTRL_TrapFlag_EndStepping|CTRL_TrapFlag_IgnoreStackPointerCheck, vaddr}; - ctrl_trap_list_push(scratch.arena, &trap_net.traps, &trap); - trap_net.good_read = 1; - } - else - { - log_user_error(str8_lit("Could not find the return address of the current callstack frame successfully.")); - } - - access_close(access); - }break; - } - B32 good_trap_net = (trap_net.good_read || !trap_net.good_line_info); - if(good_trap_net && trap_net.traps.count != 0) - { - need_run = 1; - run_kind = D_RunKind_Step; - run_thread = thread; - run_flags = 0; - run_traps = trap_net.traps; - } - else if(good_trap_net && trap_net.traps.count == 0) - { - need_run = 1; - run_kind = D_RunKind_SingleStep; - run_thread = thread; - run_flags = 0; - run_traps = trap_net.traps; - } - else if(!good_trap_net && params->retry_idx < 100) - { - D_CmdParams params_copy = *params; - params_copy.retry_idx += 1; - d_cmd_list_push_new(scratch.arena, &deferred_cmds, cmd->kind, ¶ms_copy); - } - else if(!good_trap_net) - { - log_user_error(str8_lit("Could not successfully step.")); - } - } - }break; - case D_CmdKind_Halt: - if(d_ctrl_targets_running()) - { - ctrl_halt(); - }break; - case D_CmdKind_SoftHaltRefresh: - if(d_ctrl_targets_running()) - { - need_run = 1; - run_kind = d_state->ctrl_last_run_kind; - run_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, d_state->ctrl_last_run_thread_handle); - run_flags = d_state->ctrl_last_run_flags; - run_traps = d_state->ctrl_last_run_traps; - }break; - case D_CmdKind_SetThreadIP: - { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->thread); - U64 vaddr = params->vaddr; - void *block = ctrl_reg_block_from_thread(scratch.arena, &d_state->ctrl_entity_store->ctx, thread->handle); - regs_arch_block_write_rip(thread->arch, block, vaddr); - B32 result = ctrl_thread_write_reg_block(thread->handle, block); - (void)result; - }break; - - //- rjf: high-level composite target control operations - case D_CmdKind_RunToLine: - { - run_extra_bps.count = 1; - run_extra_bps.v = push_array(scratch.arena, D_Breakpoint, 1); - if(params->file_path.size != 0) - { - run_extra_bps.v[0].file_path = params->file_path; - run_extra_bps.v[0].pt = params->cursor; - } - else if(params->vaddr != 0) - { - run_extra_bps.v[0].vaddr_expr = push_str8f(scratch.arena, "0x%I64x", params->vaddr); - } - d_cmd(D_CmdKind_Run); - }break; - case D_CmdKind_Run: - { - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); - if(processes.count != 0) - { - d_cmd(D_CmdKind_Continue, .machine = params->machine, .process = params->process, .thread = params->thread); - } - else if(!d_ctrl_targets_running()) - { - d_cmd(D_CmdKind_LaunchAndRun); - } - }break; - case D_CmdKind_Restart: - { - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); - if(processes.count != 0) - { - d_cmd(D_CmdKind_KillAll); - } - d_cmd(D_CmdKind_LaunchAndRun); - }break; - case D_CmdKind_StepInto: - case D_CmdKind_StepOver: - { - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); - if(processes.count != 0) - { - D_CmdKind step_cmd_kind = (cmd->kind == D_CmdKind_StepInto - ? D_CmdKind_StepIntoLine - : D_CmdKind_StepOverLine); - B32 prefer_disasm = params->prefer_disasm; - if(prefer_disasm) - { - step_cmd_kind = (cmd->kind == D_CmdKind_StepInto - ? D_CmdKind_StepIntoInst - : D_CmdKind_StepOverInst); - } - d_cmd(step_cmd_kind, .thread = params->thread); - } - else if(!d_ctrl_targets_running()) - { - d_cmd(D_CmdKind_LaunchAndStepInto, .targets = *targets); - } - }break; - - //- rjf: debug control context management operations - case D_CmdKind_FreezeThread: - case D_CmdKind_ThawThread: - case D_CmdKind_FreezeProcess: - case D_CmdKind_ThawProcess: - case D_CmdKind_FreezeMachine: - case D_CmdKind_ThawMachine: - { - D_CmdKind disptch_kind = ((cmd->kind == D_CmdKind_FreezeThread || - cmd->kind == D_CmdKind_FreezeProcess || - cmd->kind == D_CmdKind_FreezeMachine) - ? D_CmdKind_FreezeEntity - : D_CmdKind_ThawEntity); - d_push_cmd(disptch_kind, params); - }break; - case D_CmdKind_FreezeLocalMachine: - { - CTRL_MachineID machine_id = CTRL_MachineID_Local; - d_cmd(D_CmdKind_FreezeMachine, .entity = ctrl_handle_make(machine_id, dmn_handle_zero())); - }break; - case D_CmdKind_ThawLocalMachine: - { - CTRL_MachineID machine_id = CTRL_MachineID_Local; - d_cmd(D_CmdKind_ThawMachine, .entity = ctrl_handle_make(machine_id, dmn_handle_zero())); - }break; - case D_CmdKind_FreezeEntity: - case D_CmdKind_ThawEntity: - { - B32 should_freeze = (cmd->kind == D_CmdKind_FreezeEntity); - CTRL_Entity *root = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->entity); - for(CTRL_Entity *e = root; e != &ctrl_entity_nil; e = ctrl_entity_rec_depth_first_pre(e, root).next) - { - if(e->kind == CTRL_EntityKind_Thread) - { - e->is_frozen = should_freeze; - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = (should_freeze ? CTRL_MsgKind_FreezeThread : CTRL_MsgKind_ThawThread); - msg->entity = e->handle; - } - } - if(d_ctrl_targets_running()) - { - need_run = 1; - run_kind = d_state->ctrl_last_run_kind; - run_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, d_state->ctrl_last_run_thread_handle); - run_flags = d_state->ctrl_last_run_flags; - run_traps = d_state->ctrl_last_run_traps; - } - }break; - - //- rjf: entity decoration - case D_CmdKind_SetEntityColor: - { - CTRL_Entity *entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->entity); - entity->rgba = params->rgba; - }break; - case D_CmdKind_SetEntityName: - { - CTRL_Entity *entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, params->entity); - ctrl_entity_equip_string(d_state->ctrl_entity_store, entity, params->string); - }break; - - //- rjf: attaching - case D_CmdKind_Attach: - { - U32 pid = params->pid; - if(pid != 0) - { - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - msg->kind = CTRL_MsgKind_Attach; - msg->entity_id = pid; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - } - }break; - } - - // rjf: do run if needed - if(need_run) - { - // rjf: compute hash of all run-parameterization entities, store - { - d_state->ctrl_last_run_param_state_hash = ctrl_param_state_hash; - } - - // rjf: push & fill run message - CTRL_Msg *msg = ctrl_msg_list_push(scratch.arena, &ctrl_msgs); - { - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(run_thread, CTRL_EntityKind_Process); - msg->kind = (run_kind == D_RunKind_Run || run_kind == D_RunKind_Step) ? CTRL_MsgKind_Run : CTRL_MsgKind_SingleStep; - msg->run_flags = run_flags; - msg->entity = run_thread->handle; - msg->parent = process->handle; - MemoryCopyArray(msg->exception_code_filters, exception_code_filters); - MemoryCopyStruct(&msg->traps, &run_traps); - D_BreakpointArray *bp_batches[] = - { - breakpoints, - &run_extra_bps, - }; - for(U64 batch_idx = 0; batch_idx < ArrayCount(bp_batches); batch_idx += 1) - { - D_BreakpointArray *batch_breakpoints = bp_batches[batch_idx]; - for(U64 idx = 0; idx < batch_breakpoints->count; idx += 1) - { - // rjf: unpack user breakpoint entity - D_Breakpoint *bp = &batch_breakpoints->v[idx]; - - // rjf: d -> ctrl flags - CTRL_UserBreakpointFlags ctrl_bp_flags = 0; - if(bp->flags & D_BreakpointFlag_BreakOnWrite) { ctrl_bp_flags |= CTRL_UserBreakpointFlag_BreakOnWrite; } - if(bp->flags & D_BreakpointFlag_BreakOnRead) { ctrl_bp_flags |= CTRL_UserBreakpointFlag_BreakOnRead; } - if(bp->flags & D_BreakpointFlag_BreakOnExecute) { ctrl_bp_flags |= CTRL_UserBreakpointFlag_BreakOnExecute; } - - // rjf: textual location -> add breakpoints for all possible override locations - if(bp->file_path.size != 0 && bp->pt.line != 0) - { - String8List overrides = d_possible_path_overrides_from_maps_path(scratch.arena, path_maps, bp->file_path); - for(String8Node *n = overrides.first; n != 0; n = n->next) - { - CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_FileNameAndLineColNumber}; - ctrl_user_bp.flags = ctrl_bp_flags; - ctrl_user_bp.id = bp->id; - ctrl_user_bp.string = n->string; - ctrl_user_bp.pt = bp->pt; - ctrl_user_bp.condition = bp->condition; - ctrl_user_bp.size = bp->size; - ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp); - } - } - - // rjf: virtual address expression -> add expression breakpoint - else if(bp->vaddr_expr.size != 0) - { - CTRL_UserBreakpoint ctrl_user_bp = {CTRL_UserBreakpointKind_Expression}; - ctrl_user_bp.flags = ctrl_bp_flags; - ctrl_user_bp.id = bp->id; - ctrl_user_bp.string = bp->vaddr_expr; - ctrl_user_bp.condition = bp->condition; - ctrl_user_bp.size = bp->size; - ctrl_user_breakpoint_list_push(scratch.arena, &msg->user_bps, &ctrl_user_bp); - } - } - } - } - - // rjf: copy run traps to scratch (needed, if run_traps can be `d_state->ctrl_last_run_traps`) - CTRL_TrapList run_traps_copy = ctrl_trap_list_copy(scratch.arena, &run_traps); - D_BreakpointArray run_extra_bps_copy = d_breakpoint_array_copy(scratch.arena, &run_extra_bps); - - // rjf: store last run info - arena_clear(d_state->ctrl_last_run_arena); - d_state->ctrl_last_run_kind = run_kind; - d_state->ctrl_last_run_frame_idx = d_frame_index(); - d_state->ctrl_last_run_thread_handle = run_thread->handle; - d_state->ctrl_last_run_flags = run_flags; - d_state->ctrl_last_run_traps = ctrl_trap_list_copy(d_state->ctrl_last_run_arena, &run_traps_copy); - d_state->ctrl_last_run_extra_bps = d_breakpoint_array_copy(d_state->ctrl_last_run_arena, &run_extra_bps_copy); - d_state->ctrl_is_running = 1; - } - } - } - - ////////////////////////////// - //- rjf: clear command batch - // - { - arena_clear(d_state->cmds_arena); - MemoryZeroStruct(&d_state->cmds); - } - - ////////////////////////////// - //- rjf: push deferred commands - // - for EachNode(n, D_CmdNode, deferred_cmds.first) - { - d_cmd_list_push_new(d_state->cmds_arena, &d_state->cmds, n->cmd.kind, &n->cmd.params); - } - - ////////////////////////////// - //- rjf: push new control messages to queue - try to send queue to control, - // clear queue if successful (if not, we'll just keep them around until - // the next tick) - // - { - CTRL_MsgList msgs_copy = ctrl_msg_list_deep_copy(d_state->ctrl_msg_arena, &ctrl_msgs); - ctrl_msg_list_concat_in_place(&d_state->ctrl_msgs, &msgs_copy); - if(d_state->ctrl_msgs.count != 0) - { - if(!d_state->ctrl_soft_halt_issued && d_state->ctrl_thread_run_state) - { - d_state->ctrl_soft_halt_issued = 1; - ctrl_halt(); - } - if(ctrl_u2c_push_msgs(&d_state->ctrl_msgs, os_now_microseconds()+100)) - { - MemoryZeroStruct(&d_state->ctrl_msgs); - arena_clear(d_state->ctrl_msg_arena); - } - } + // rjf: set up run state + d_user_state->ctrl_last_run_arena = arena_alloc(); } - ProfEnd(); - scratch_end(scratch); - return result; + //- rjf: select user state's entity context + d_select_entity_ctx(&d_user_state->ctrl_entity_store->ctx); } diff --git a/src/dbg_engine/dbg_engine_core.h b/src/dbg_engine/dbg_engine_core.h index 1104bd33..bc80c2d1 100644 --- a/src/dbg_engine/dbg_engine_core.h +++ b/src/dbg_engine/dbg_engine_core.h @@ -5,29 +5,61 @@ #define DBG_ENGINE_CORE_H //////////////////////////////// -//~ rjf: Tick Input Types +//~ rjf: ID Types -typedef struct D_Target D_Target; -struct D_Target +typedef U64 D_MsgID; +typedef U32 D_MachineID; +typedef U32 D_ControllerKind; +typedef enum D_ControllerKindEnum { - String8 exe; - String8 args; - String8 working_directory; - String8 custom_entry_point_name; - String8 stdout_path; - String8 stderr_path; - String8 stdin_path; - B32 debug_subprocesses; - String8List env; + D_ControllerKind_Demon, + D_ControllerKind_Dump, +} +D_ControllerKindEnum; + +#define D_MachineID_Local (1) + +//////////////////////////////// +//~ rjf: Entity Handle Types + +typedef struct D_Handle D_Handle; +struct D_Handle +{ + D_MachineID machine_id; + D_ControllerKind controller_kind; + U64 entity_id; }; -typedef struct D_TargetArray D_TargetArray; -struct D_TargetArray +typedef struct D_HandleNode D_HandleNode; +struct D_HandleNode { - D_Target *v; + D_HandleNode *next; + D_Handle v; +}; + +typedef struct D_HandleList D_HandleList; +struct D_HandleList +{ + D_HandleNode *first; + D_HandleNode *last; U64 count; }; +typedef struct D_HandleArray D_HandleArray; +struct D_HandleArray +{ + D_Handle *v; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Generated Code + +#include "generated/dbg_engine.meta.h" + +//////////////////////////////// +//~ rjf: User Breakpoint Types + typedef U32 D_BreakpointFlags; enum { @@ -55,6 +87,167 @@ struct D_BreakpointArray U64 count; }; +typedef struct D_BreakpointNode D_BreakpointNode; +struct D_BreakpointNode +{ + D_BreakpointNode *next; + D_Breakpoint v; +}; + +typedef struct D_BreakpointList D_BreakpointList; +struct D_BreakpointList +{ + D_BreakpointNode *first; + D_BreakpointNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Entity Types + +typedef struct D_Entity D_Entity; +struct D_Entity +{ + D_Entity *first; + D_Entity *last; + D_Entity *next; + D_Entity *prev; + D_Entity *parent; + D_EntityKind kind; + Arch arch; + B32 is_frozen; + B32 is_soloed; + U32 rgba; + D_Handle handle; + U64 id; + Rng1U64 vaddr_range; + U64 stack_base; + U64 timestamp; + D_BreakpointFlags bp_flags; + String8 string; + U64 tls_root_vaddr; + OperatingSystem os; + D_MsgID src_msg_id; +}; + +typedef struct D_EntityNode D_EntityNode; +struct D_EntityNode +{ + D_EntityNode *next; + D_Entity *v; +}; + +typedef struct D_EntityList D_EntityList; +struct D_EntityList +{ + D_EntityNode *first; + D_EntityNode *last; + U64 count; +}; + +typedef struct D_EntityArray D_EntityArray; +struct D_EntityArray +{ + D_Entity **v; + U64 count; +}; + +typedef struct D_EntityRec D_EntityRec; +struct D_EntityRec +{ + D_Entity *next; + S32 push_count; + S64 pop_count; +}; + +typedef struct D_EntityHashNode D_EntityHashNode; +struct D_EntityHashNode +{ + D_EntityHashNode *next; + D_EntityHashNode *prev; + D_Entity *entity; +}; + +typedef struct D_EntityHashSlot D_EntityHashSlot; +struct D_EntityHashSlot +{ + D_EntityHashNode *first; + D_EntityHashNode *last; +}; + +typedef struct D_EntityStringChunkNode D_EntityStringChunkNode; +struct D_EntityStringChunkNode +{ + D_EntityStringChunkNode *next; + U64 size; +}; + +read_only global U64 d_entity_string_bucket_chunk_sizes[] = +{ + 16, + 64, + 256, + 1024, + 4096, + 16384, + 65536, + 0xffffffffffffffffull, +}; + +typedef struct D_EntityCtx D_EntityCtx; +struct D_EntityCtx +{ + D_Entity *root; + U64 hash_slots_count; + D_EntityHashSlot *hash_slots; + U64 entity_kind_counts[D_EntityKind_COUNT]; + U64 entity_kind_alloc_gens[D_EntityKind_COUNT]; +}; + +typedef struct D_EntityCtxRWStore D_EntityCtxRWStore; +struct D_EntityCtxRWStore +{ + Arena *arena; + D_EntityCtx ctx; + D_Entity *free; + D_EntityHashNode *hash_node_free; + D_EntityStringChunkNode *free_string_chunks[ArrayCount(d_entity_string_bucket_chunk_sizes)]; +}; + +typedef struct D_EntityCtxLookupAccel D_EntityCtxLookupAccel; +struct D_EntityCtxLookupAccel +{ + Arena *arena; + Arena *entity_kind_arrays_arenas[D_EntityKind_COUNT]; + D_EntityArray entity_kind_arrays[D_EntityKind_COUNT]; + U64 entity_kind_arrays_gens[D_EntityKind_COUNT]; +}; + +//////////////////////////////// +//~ rjf: Tick Input Types + +typedef struct D_Target D_Target; +struct D_Target +{ + String8 exe; + String8 args; + String8 working_directory; + String8 custom_entry_point_name; + String8 stdout_path; + String8 stderr_path; + String8 stdin_path; + D_MsgID msg_id; + B32 debug_subprocesses; + String8List env; +}; + +typedef struct D_TargetArray D_TargetArray; +struct D_TargetArray +{ + D_Target *v; + U64 count; +}; + typedef struct D_PathMap D_PathMap; struct D_PathMap { @@ -69,370 +262,65 @@ struct D_PathMapArray U64 count; }; +//////////////////////////////// +//~ rjf: Trap Types + +typedef U32 D_TrapFlags; +enum +{ + D_TrapFlag_IgnoreStackPointerCheck = (1<<0), + D_TrapFlag_SingleStepAfterHit = (1<<1), + D_TrapFlag_SaveStackPointerBefore = (1<<2), + D_TrapFlag_SaveStackPointerAfter = (1<<3), + D_TrapFlag_BeginSpoofMode = (1<<4), + D_TrapFlag_EndStepping = (1<<5), +}; + +typedef struct D_Trap D_Trap; +struct D_Trap +{ + D_TrapFlags flags; + U64 vaddr; +}; + +typedef struct D_TrapNode D_TrapNode; +struct D_TrapNode +{ + D_TrapNode *next; + D_Trap v; +}; + +typedef struct D_TrapList D_TrapList; +struct D_TrapList +{ + D_TrapNode *first; + D_TrapNode *last; + U64 count; +}; + +typedef struct D_Spoof D_Spoof; +struct D_Spoof +{ + D_Handle process; + D_Handle thread; + U64 vaddr; + U64 new_ip_value; +}; + //////////////////////////////// //~ rjf: Trap Nets typedef struct D_TrapNet D_TrapNet; struct D_TrapNet { - CTRL_TrapList traps; + D_TrapList traps; B32 good_line_info; B32 good_read; }; //////////////////////////////// -//~ rjf: Tick Output Types - -typedef enum D_EventKind -{ - D_EventKind_Null, - D_EventKind_ModuleLoad, - D_EventKind_ProcessEnd, - D_EventKind_Stop, - D_EventKind_COUNT -} -D_EventKind; - -typedef enum D_EventCause -{ - D_EventCause_Null, - D_EventCause_UserBreakpoint, - D_EventCause_Halt, - D_EventCause_SoftHalt, - D_EventCause_COUNT -} -D_EventCause; - -typedef struct D_Event D_Event; -struct D_Event -{ - D_EventKind kind; - D_EventCause cause; - CTRL_Handle module; - CTRL_Handle thread; - U64 vaddr; - U64 code; - U64 id; -}; - -typedef struct D_EventNode D_EventNode; -struct D_EventNode -{ - D_EventNode *next; - D_Event v; -}; - -typedef struct D_EventList D_EventList; -struct D_EventList -{ - D_EventNode *first; - D_EventNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Line Info Types - -typedef struct D_Line D_Line; -struct D_Line -{ - String8 file_path; - TxtPt pt; - Rng1U64 voff_range; - DI_Key dbgi_key; -}; - -typedef struct D_LineNode D_LineNode; -struct D_LineNode -{ - D_LineNode *next; - D_Line v; -}; - -typedef struct D_LineList D_LineList; -struct D_LineList -{ - D_LineNode *first; - D_LineNode *last; - U64 count; -}; - -typedef struct D_LineListArray D_LineListArray; -struct D_LineListArray -{ - D_LineList *v; - U64 count; - DI_KeyList dbgi_keys; -}; - -//////////////////////////////// -//~ rjf: Debug Engine Control Communication Types - -typedef enum D_RunKind -{ - D_RunKind_Run, - D_RunKind_SingleStep, - D_RunKind_Step, - D_RunKind_COUNT -} -D_RunKind; - -//////////////////////////////// -//~ rjf: Generated Code - -#include "dbg_engine/generated/dbg_engine.meta.h" - -//////////////////////////////// -//~ rjf: Command Types - -typedef struct D_CmdParams D_CmdParams; -struct D_CmdParams -{ - CTRL_Handle machine; - CTRL_Handle process; - CTRL_Handle thread; - CTRL_Handle entity; - String8 string; - String8 file_path; - TxtPt cursor; - U64 vaddr; - B32 prefer_disasm; - U32 pid; - U32 rgba; - D_TargetArray targets; - U64 retry_idx; -}; - -typedef struct D_Cmd D_Cmd; -struct D_Cmd -{ - D_CmdKind kind; - D_CmdParams params; -}; - -typedef struct D_CmdNode D_CmdNode; -struct D_CmdNode -{ - D_CmdNode *next; - D_CmdNode *prev; - D_Cmd cmd; -}; - -typedef struct D_CmdList D_CmdList; -struct D_CmdList -{ - D_CmdNode *first; - D_CmdNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Main State Caches - -//- rjf: per-run tls-base-vaddr cache - -typedef struct D_RunTLSBaseCacheNode D_RunTLSBaseCacheNode; -struct D_RunTLSBaseCacheNode -{ - D_RunTLSBaseCacheNode *hash_next; - CTRL_Handle process; - U64 root_vaddr; - U64 rip_vaddr; - U64 tls_base_vaddr; -}; - -typedef struct D_RunTLSBaseCacheSlot D_RunTLSBaseCacheSlot; -struct D_RunTLSBaseCacheSlot -{ - D_RunTLSBaseCacheNode *first; - D_RunTLSBaseCacheNode *last; -}; - -typedef struct D_RunTLSBaseCache D_RunTLSBaseCache; -struct D_RunTLSBaseCache -{ - Arena *arena; - U64 slots_count; - D_RunTLSBaseCacheSlot *slots; -}; - -//- rjf: per-run locals cache - -typedef struct D_RunLocalsCacheNode D_RunLocalsCacheNode; -struct D_RunLocalsCacheNode -{ - D_RunLocalsCacheNode *hash_next; - DI_Key dbgi_key; - U64 voff; - E_String2NumMap *locals_map; -}; - -typedef struct D_RunLocalsCacheSlot D_RunLocalsCacheSlot; -struct D_RunLocalsCacheSlot -{ - D_RunLocalsCacheNode *first; - D_RunLocalsCacheNode *last; -}; - -typedef struct D_RunLocalsCache D_RunLocalsCache; -struct D_RunLocalsCache -{ - Arena *arena; - U64 table_size; - D_RunLocalsCacheSlot *table; -}; - -//////////////////////////////// -//~ rjf: Main State Types - -typedef struct D_State D_State; -struct D_State -{ - // rjf: top-level state - Arena *arena; - U64 frame_index; - - // rjf: commands - Arena *cmds_arena; - D_CmdList cmds; - - // rjf: output log key - C_Key output_log_key; - - // rjf: per-run caches - U64 tls_base_cache_reggen_idx; - U64 tls_base_cache_memgen_idx; - D_RunTLSBaseCache tls_base_caches[2]; - U64 tls_base_cache_gen; - U64 locals_cache_reggen_idx; - D_RunLocalsCache locals_caches[2]; - U64 locals_cache_gen; - U64 member_cache_reggen_idx; - D_RunLocalsCache member_caches[2]; - U64 member_cache_gen; - - // rjf: user -> ctrl driving state - Arena *ctrl_last_run_arena; - D_RunKind ctrl_last_run_kind; - U64 ctrl_last_run_frame_idx; - CTRL_Handle ctrl_last_run_thread_handle; - CTRL_RunFlags ctrl_last_run_flags; - CTRL_TrapList ctrl_last_run_traps; - D_BreakpointArray ctrl_last_run_extra_bps; - U128 ctrl_last_run_param_state_hash; - B32 ctrl_is_running; - B32 ctrl_thread_run_state; - B32 ctrl_soft_halt_issued; - Arena *ctrl_msg_arena; - CTRL_MsgList ctrl_msgs; - - // rjf: ctrl -> user reading state - CTRL_EntityCtxRWStore *ctrl_entity_store; - Arena *ctrl_stop_arena; - CTRL_Event ctrl_last_stop_event; -}; - -//////////////////////////////// -//~ rjf: Globals - -global D_State *d_state = 0; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal U64 d_hash_from_seed_string(U64 seed, String8 string); -internal U64 d_hash_from_string(String8 string); -internal U64 d_hash_from_seed_string__case_insensitive(U64 seed, String8 string); -internal U64 d_hash_from_string__case_insensitive(String8 string); - -//////////////////////////////// -//~ rjf: Breakpoints - -internal D_BreakpointArray d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src); - -//////////////////////////////// -//~ rjf: Path Map Application - -internal String8List d_possible_path_overrides_from_maps_path(Arena *arena, D_PathMapArray *path_maps, String8 file_path); - -//////////////////////////////// -//~ rjf: Debug Info Extraction Type Pure Functions - -internal D_LineList d_line_list_copy(Arena *arena, D_LineList *list); - -//////////////////////////////// -//~ rjf: Command Type Functions - -//- rjf: command parameters -internal D_CmdParams d_cmd_params_copy(Arena *arena, D_CmdParams *src); - -//- rjf: command lists -internal void d_cmd_list_push_new(Arena *arena, D_CmdList *cmds, D_CmdKind kind, D_CmdParams *params); - -//////////////////////////////// -//~ rjf: Stepping "Trap Net" Builders - -internal D_TrapNet d_trap_net_from_thread__step_over_inst(Arena *arena, CTRL_Entity *thread); -internal D_TrapNet d_trap_net_from_thread__step_over_line(Arena *arena, CTRL_Entity *thread); -internal D_TrapNet d_trap_net_from_thread__step_into_line(Arena *arena, CTRL_Entity *thread); - -//////////////////////////////// -//~ rjf: Debug Info Lookups - -//- rjf: voff -> line info -internal D_LineList d_lines_from_dbgi_key_voff(Arena *arena, DI_Key dbgi_key, U64 voff); - -//- rjf: file:line -> line info -// TODO(rjf): this depends on file path maps, needs to move -// TODO(rjf): need to clean this up & dedup -internal D_LineListArray d_lines_array_from_dbgi_key_file_path_line_range(Arena *arena, DI_Key dbgi_key, String8 file_path, Rng1S64 line_num_range); -internal D_LineListArray d_lines_array_from_file_path_line_range(Arena *arena, String8 file_path, Rng1S64 line_num_range); -internal D_LineList d_lines_from_dbgi_key_file_path_line_num(Arena *arena, DI_Key dbgi_key, String8 file_path, S64 line_num); -internal D_LineList d_lines_from_file_path_line_num(Arena *arena, String8 file_path, S64 line_num); - -//////////////////////////////// -//~ rjf: Process/Thread/Module Info Lookups - -internal U64 d_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr); - -//////////////////////////////// -//~ rjf: Target Controls - -//- rjf: stopped info from the control thread -internal CTRL_Event d_ctrl_last_stop_event(void); - -//////////////////////////////// -//~ rjf: Main State Accessors/Mutators - -//- rjf: frame data -internal U64 d_frame_index(void); - -//- rjf: control state -internal D_RunKind d_ctrl_last_run_kind(void); -internal U64 d_ctrl_last_run_frame_idx(void); -internal B32 d_ctrl_targets_running(void); - -//- rjf: active entity based queries -internal DI_KeyList d_push_active_dbgi_key_list(Arena *arena); - -//- rjf: per-run caches -internal U64 d_query_cached_rip_from_thread(CTRL_Entity *thread); -internal U64 d_query_cached_rip_from_thread_unwind(CTRL_Entity *thread, U64 unwind_count); -internal U64 d_query_cached_tls_base_vaddr_from_process_root_rip(CTRL_Entity *process, U64 root_vaddr, U64 rip_vaddr); -internal E_String2NumMap *d_query_cached_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); -internal E_String2NumMap *d_query_cached_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); - -//- rjf: top-level command dispatch -internal void d_push_cmd(D_CmdKind kind, D_CmdParams *params); -#define d_cmd(kind, ...) d_push_cmd((kind), &(D_CmdParams){.thread = {0}, __VA_ARGS__}) - -//- rjf: command iteration -internal B32 d_next_cmd(D_Cmd **cmd); - -//////////////////////////////// -//~ rjf: Main Layer Top-Level Calls +//~ rjf: Layer Initialization internal void d_init(void); -internal D_EventList d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps, U64 exception_code_filters[(CTRL_ExceptionCodeKind_COUNT+63)/64]); #endif // DBG_ENGINE_CORE_H diff --git a/src/dbg_engine/dbg_engine_ctrl.c b/src/dbg_engine/dbg_engine_ctrl.c new file mode 100644 index 00000000..943f7ad8 --- /dev/null +++ b/src/dbg_engine/dbg_engine_ctrl.c @@ -0,0 +1,6387 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Basic Type Functions + +internal U64 +d_hash_from_handle(D_Handle handle) +{ + U64 buf[] = {handle.machine_id, handle.controller_kind, handle.entity_id}; + U64 hash = u64_hash_from_str8(str8_struct(&handle)); + return hash; +} + +internal D_EventCause +d_event_cause_from_dmn_event_kind(DMN_EventKind event_kind) +{ + D_EventCause cause = D_EventCause_Null; + switch(event_kind) + { + default:{}break; + case DMN_EventKind_Error: {cause = D_EventCause_Error;}break; + case DMN_EventKind_Exception:{cause = D_EventCause_InterruptedByException;}break; + case DMN_EventKind_Trap: {cause = D_EventCause_InterruptedByTrap;}break; + case DMN_EventKind_Halt: {cause = D_EventCause_InterruptedByHalt;}break; + } + return cause; +} + +internal D_ExceptionKind +d_exception_kind_from_dmn(DMN_ExceptionKind kind) +{ + D_ExceptionKind result = D_ExceptionKind_Null; + switch(kind) + { + default:{}break; + case DMN_ExceptionKind_MemoryRead: {result = D_ExceptionKind_MemoryRead;}break; + case DMN_ExceptionKind_MemoryWrite: {result = D_ExceptionKind_MemoryWrite;}break; + case DMN_ExceptionKind_MemoryExecute: {result = D_ExceptionKind_MemoryExecute;}break; + case DMN_ExceptionKind_CppThrow: {result = D_ExceptionKind_CppThrow;}break; + } + return result; +} + +internal String8 +d_string_from_event_kind(D_EventKind kind) +{ + String8 result = {0}; + switch(kind) + { + default:{}break; + case D_EventKind_Null: { result = str8_lit("Null");}break; + case D_EventKind_Error: { result = str8_lit("Error");}break; + case D_EventKind_Started: { result = str8_lit("Started");}break; + case D_EventKind_Stopped: { result = str8_lit("Stopped");}break; + case D_EventKind_NewProc: { result = str8_lit("NewProc");}break; + case D_EventKind_NewThread: { result = str8_lit("NewThread");}break; + case D_EventKind_NewModule: { result = str8_lit("NewModule");}break; + case D_EventKind_EndProc: { result = str8_lit("EndProc");}break; + case D_EventKind_EndThread: { result = str8_lit("EndThread");}break; + case D_EventKind_EndModule: { result = str8_lit("EndModule");}break; + case D_EventKind_ModuleDebugInfoPathChange: { result = str8_lit("ModuleDebugInfoPathChange");}break; + case D_EventKind_DebugString: { result = str8_lit("DebugString");}break; + case D_EventKind_ThreadName: { result = str8_lit("ThreadName");}break; + case D_EventKind_MemReserve: { result = str8_lit("MemReserve");}break; + case D_EventKind_MemCommit: { result = str8_lit("MemCommit");}break; + case D_EventKind_MemDecommit: { result = str8_lit("MemDecommit");}break; + case D_EventKind_MemRelease: { result = str8_lit("MemRelease");}break; + } + return result; +} + +internal String8 +d_string_from_msg_kind(D_MsgKind kind) +{ + String8 result = {0}; + switch(kind) + { + default:{}break; + case D_MsgKind_Launch: {result = str8_lit("Launch");}break; + case D_MsgKind_Attach: {result = str8_lit("Attach");}break; + case D_MsgKind_OpenCrashDump: {result = str8_lit("OpenCrashDump");}break; + case D_MsgKind_Kill: {result = str8_lit("Kill");}break; + case D_MsgKind_KillAll: {result = str8_lit("KillAll");}break; + case D_MsgKind_Detach: {result = str8_lit("Detach");}break; + case D_MsgKind_Run: {result = str8_lit("Run");}break; + case D_MsgKind_SingleStep: {result = str8_lit("SingleStep");}break; + case D_MsgKind_SetUserEntryPoints: {result = str8_lit("SetUserEntryPoints");}break; + case D_MsgKind_SetModuleDebugInfoPath: {result = str8_lit("SetModuleDebugInfoPath");}break; + } + return result; +} + +internal D_EntityKind +d_entity_kind_from_string(String8 string) +{ + D_EntityKind result = D_EntityKind_Null; + for EachNonZeroEnumVal(D_EntityKind, k) + { + if(str8_match(d_entity_kind_code_name_table[k], string, 0)) + { + result = k; + break; + } + } + return result; +} + +internal DMN_TrapFlags +d_dmn_trap_flags_from_breakpoint_flags(D_BreakpointFlags flags) +{ + DMN_TrapFlags result = 0; + if(flags & D_BreakpointFlag_BreakOnWrite) { result |= DMN_TrapFlag_BreakOnWrite; } + if(flags & D_BreakpointFlag_BreakOnRead) { result |= DMN_TrapFlag_BreakOnRead; } + if(flags & D_BreakpointFlag_BreakOnExecute) { result |= DMN_TrapFlag_BreakOnExecute; } + return result; +} + +internal D_BreakpointFlags +d_breakpoint_flags_from_dmn_trap_flags(DMN_TrapFlags flags) +{ + D_BreakpointFlags result = 0; + if(flags & DMN_TrapFlag_BreakOnWrite) { result |= D_BreakpointFlag_BreakOnWrite; } + if(flags & DMN_TrapFlag_BreakOnRead) { result |= D_BreakpointFlag_BreakOnRead; } + if(flags & DMN_TrapFlag_BreakOnExecute) { result |= D_BreakpointFlag_BreakOnExecute; } + return result; +} + +//////////////////////////////// +//~ rjf: Machine/Handle Pair Type Functions + +internal D_Handle +d_handle_zero(void) +{ + D_Handle handle = {0}; + return handle; +} + +internal B32 +d_handle_match(D_Handle a, D_Handle b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +internal void +d_handle_list_push(Arena *arena, D_HandleList *list, D_Handle *pair) +{ + D_HandleNode *n = push_array(arena, D_HandleNode, 1); + MemoryCopyStruct(&n->v, pair); + SLLQueuePush(list->first, list->last, n); + list->count += 1; +} + +internal D_HandleList +d_handle_list_copy(Arena *arena, D_HandleList *src) +{ + D_HandleList dst = {0}; + for(D_HandleNode *n = src->first; n != 0; n = n->next) + { + d_handle_list_push(arena, &dst, &n->v); + } + return dst; +} + +internal D_HandleArray +d_handle_array_from_list(Arena *arena, D_HandleList *src) +{ + D_HandleArray array = {0}; + array.count = src->count; + array.v = push_array_no_zero(arena, D_Handle, array.count); + { + U64 idx = 0; + for(D_HandleNode *n = src->first; n != 0; n = n->next, idx += 1) + { + array.v[idx] = n->v; + } + } + return array; +} + +internal String8 +d_string_from_handle(Arena *arena, D_Handle handle) +{ + String8 result = str8f(arena, "$%x$%x$%I64x", handle.machine_id, handle.controller_kind, handle.entity_id); + return result; +} + +internal D_Handle +d_handle_from_string(String8 string) +{ + D_Handle handle = {0}; + { + Temp scratch = scratch_begin(0, 0); + U8 split = '$'; + String8List parts = str8_split(scratch.arena, string, &split, 1, 0); + if(parts.first && parts.first->next && parts.first->next->next) + { + D_MachineID machine_id = (U32)u64_from_str8(parts.first->string, 16); + D_ControllerKind controller_kind = (U32)u64_from_str8(parts.first->next->string, 16); + U64 entity_id = u64_from_str8(parts.first->next->next->string, 16); + handle.machine_id = machine_id; + handle.controller_kind = controller_kind; + handle.entity_id = entity_id; + } + scratch_end(scratch); + } + return handle; +} + +internal DMN_Handle +d_dmn_from_handle(D_Handle handle) +{ + DMN_Handle result = {0}; + if(handle.controller_kind == D_ControllerKind_Demon) + { + result.u64[0] = handle.entity_id; + } + return result; +} + +internal D_Handle +d_handle_from_dmn(D_MachineID machine_id, DMN_Handle handle) +{ + D_Handle result = {0}; + { + result.machine_id = machine_id; + result.controller_kind = D_ControllerKind_Demon; + result.entity_id = handle.u64[0]; + } + return result; +} + +internal D_Handle +d_dump_handle_make(D_MachineID machine_id, U64 id) +{ + D_Handle result = {0}; + { + result.machine_id = machine_id; + result.controller_kind = D_ControllerKind_Dump; + result.entity_id = id; + } + return result; +} + +//////////////////////////////// +//~ rjf: Trap Type Functions + +internal void +d_trap_list_push(Arena *arena, D_TrapList *list, D_Trap *trap) +{ + D_TrapNode *node = push_array(arena, D_TrapNode, 1); + MemoryCopyStruct(&node->v, trap); + SLLQueuePush(list->first, list->last, node); + list->count += 1; +} + +internal D_TrapList +d_trap_list_copy(Arena *arena, D_TrapList *src) +{ + D_TrapList dst = {0}; + for(D_TrapNode *src_n = src->first; src_n != 0; src_n = src_n->next) + { + d_trap_list_push(arena, &dst, &src_n->v); + } + return dst; +} + +//////////////////////////////// +//~ rjf: User Breakpoint Type Functions + +internal void +d_breakpoint_list_push(Arena *arena, D_BreakpointList *list, D_Breakpoint *bp) +{ + D_BreakpointNode *n = push_array(arena, D_BreakpointNode, 1); + MemoryCopyStruct(&n->v, bp); + SLLQueuePush(list->first, list->last, n); + list->count += 1; +} + +internal D_BreakpointList +d_breakpoint_list_copy(Arena *arena, D_BreakpointList *src) +{ + D_BreakpointList dst = {0}; + for(D_BreakpointNode *src_n = src->first; src_n != 0; src_n = src_n->next) + { + D_Breakpoint dst_bp = zero_struct; + MemoryCopyStruct(&dst_bp, &src_n->v); + dst_bp.file_path = str8_copy(arena, src_n->v.file_path); + dst_bp.vaddr_expr = str8_copy(arena, src_n->v.vaddr_expr); + dst_bp.condition = str8_copy(arena, src_n->v.condition); + d_breakpoint_list_push(arena, &dst, &dst_bp); + } + return dst; +} + +//////////////////////////////// +//~ rjf: Message Type Functions + +//- rjf: deep copying + +internal void +d_msg_deep_copy(Arena *arena, D_Msg *dst, D_Msg *src) +{ + MemoryCopyStruct(dst, src); + dst->path = str8_copy(arena, src->path); + dst->entry_points = str8_list_copy(arena, &src->entry_points); + dst->cmd_line_string_list = str8_list_copy(arena, &src->cmd_line_string_list); + dst->env_string_list = str8_list_copy(arena, &src->env_string_list); + dst->traps = d_trap_list_copy(arena, &src->traps); + dst->user_bps = d_breakpoint_list_copy(arena, &src->user_bps); +} + +//- rjf: list building + +internal D_Msg * +d_msg_list_push(Arena *arena, D_MsgList *list) +{ + D_MsgNode *n = push_array(arena, D_MsgNode, 1); + SLLQueuePush(list->first, list->last, n); + list->count += 1; + D_Msg *msg = &n->v; + return msg; +} + +internal D_MsgList +d_msg_list_deep_copy(Arena *arena, D_MsgList *src) +{ + D_MsgList dst = {0}; + for(D_MsgNode *n = src->first; n != 0; n = n->next) + { + D_Msg *src_msg = &n->v; + D_Msg *dst_msg = d_msg_list_push(arena, &dst); + d_msg_deep_copy(arena, dst_msg, src_msg); + } + return dst; +} + +internal void +d_msg_list_concat_in_place(D_MsgList *dst, D_MsgList *src) +{ + if(dst->last && src->first) + { + dst->last->next = src->first; + dst->last = src->last; + dst->count += src->count; + } + else if(src->first) + { + MemoryCopyStruct(dst, src); + } + MemoryZeroStruct(src); +} + +//- rjf: serialization + +internal String8 +d_serialized_string_from_msg_list(Arena *arena, D_MsgList *msgs) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List msgs_srlzed = {0}; + str8_serial_begin(scratch.arena, &msgs_srlzed); + { + // rjf: write message count + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msgs->count); + + // rjf: write all message data + for(D_MsgNode *msg_n = msgs->first; msg_n != 0; msg_n = msg_n->next) + { + D_Msg *msg = &msg_n->v; + + // rjf: write flat parts + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->kind); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->run_flags); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->msg_id); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entity); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->parent); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entity_id); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->exit_code); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->env_inherit); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->debug_subprocesses); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->auto_download_debug_info); + str8_serial_push_array (scratch.arena, &msgs_srlzed, &msg->exception_code_filters[0], ArrayCount(msg->exception_code_filters)); + + // rjf: write path string + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->path.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, msg->path.str, msg->path.size); + + // rjf: write entry point string list + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->entry_points.node_count); + for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) + { + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); + } + + // rjf: write command line string list + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->cmd_line_string_list.node_count); + for(String8Node *n = msg->cmd_line_string_list.first; n != 0; n = n->next) + { + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); + } + + // rjf: write environment string list + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->env_string_list.node_count); + for(String8Node *n = msg->env_string_list.first; n != 0; n = n->next) + { + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &n->string.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, n->string.str, n->string.size); + } + + // rjf: write stdout/stderr/stdin paths + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stdout_path.size); + str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stdout_path); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stderr_path.size); + str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stderr_path); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->stdin_path.size); + str8_serial_push_string(scratch.arena, &msgs_srlzed, msg->stdin_path); + + // rjf: write trap list + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->traps.count); + for(D_TrapNode *n = msg->traps.first; n != 0; n = n->next) + { + D_Trap *trap = &n->v; + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &trap->flags); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &trap->vaddr); + } + + // rjf: write user breakpoint list + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &msg->user_bps.count); + for(D_BreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) + { + D_Breakpoint *bp = &n->v; + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->flags); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->id); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->file_path.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, bp->file_path.str, bp->file_path.size); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->pt); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->vaddr_expr.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, bp->vaddr_expr.str, bp->vaddr_expr.size); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->condition.size); + str8_serial_push_data(scratch.arena, &msgs_srlzed, bp->condition.str, bp->condition.size); + str8_serial_push_struct(scratch.arena, &msgs_srlzed, &bp->size); + } + } + } + String8 string = str8_serial_end(arena, &msgs_srlzed); + scratch_end(scratch); + return string; +} + +internal D_MsgList +d_msg_list_from_serialized_string(Arena *arena, String8 string) +{ + D_MsgList msgs = {0}; + { + U64 read_off = 0; + + // rjf: read message count + U64 msg_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &msg_count); + + // rjf: read data for all messages + for(U64 msg_idx = 0; msg_idx < msg_count; msg_idx += 1) + { + // rjf: construct message + D_MsgNode *msg_node = push_array(arena, D_MsgNode, 1); + SLLQueuePush(msgs.first, msgs.last, msg_node); + msgs.count += 1; + D_Msg *msg = &msg_node->v; + + // rjf: read flat data + read_off += str8_deserial_read_struct(string, read_off, &msg->kind); + read_off += str8_deserial_read_struct(string, read_off, &msg->run_flags); + read_off += str8_deserial_read_struct(string, read_off, &msg->msg_id); + read_off += str8_deserial_read_struct(string, read_off, &msg->entity); + read_off += str8_deserial_read_struct(string, read_off, &msg->parent); + read_off += str8_deserial_read_struct(string, read_off, &msg->entity_id); + read_off += str8_deserial_read_struct(string, read_off, &msg->exit_code); + read_off += str8_deserial_read_struct(string, read_off, &msg->env_inherit); + read_off += str8_deserial_read_struct(string, read_off, &msg->debug_subprocesses); + read_off += str8_deserial_read_struct(string, read_off, &msg->auto_download_debug_info); + read_off += str8_deserial_read_array (string, read_off, &msg->exception_code_filters[0], ArrayCount(msg->exception_code_filters)); + + // rjf: read path string + read_off += str8_deserial_read_struct(string, read_off, &msg->path.size); + msg->path.str = push_array_no_zero(arena, U8, msg->path.size); + read_off += str8_deserial_read(string, read_off, msg->path.str, msg->path.size, 1); + + // rjf: read entry point string list + U64 entry_point_list_string_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &entry_point_list_string_count); + for(U64 idx = 0; idx < entry_point_list_string_count; idx += 1) + { + String8 str = {0}; + read_off += str8_deserial_read_struct(string, read_off, &str.size); + str.str = push_array_no_zero(arena, U8, str.size); + read_off += str8_deserial_read(string, read_off, str.str, str.size, 1); + str8_list_push(arena, &msg->entry_points, str); + } + + // rjf: read command line string list + U64 cmd_line_string_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &cmd_line_string_count); + for(U64 idx = 0; idx < cmd_line_string_count; idx += 1) + { + String8 cmd_line_str = {0}; + read_off += str8_deserial_read_struct(string, read_off, &cmd_line_str.size); + cmd_line_str.str = push_array_no_zero(arena, U8, cmd_line_str.size); + read_off += str8_deserial_read(string, read_off, cmd_line_str.str, cmd_line_str.size, 1); + str8_list_push(arena, &msg->cmd_line_string_list, cmd_line_str); + } + + // rjf: read environment string list + U64 env_string_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &env_string_count); + for(U64 idx = 0; idx < env_string_count; idx += 1) + { + String8 env_str = {0}; + read_off += str8_deserial_read_struct(string, read_off, &env_str.size); + env_str.str = push_array_no_zero(arena, U8, env_str.size); + read_off += str8_deserial_read(string, read_off, env_str.str, env_str.size, 1); + str8_list_push(arena, &msg->env_string_list, env_str); + } + + // rjf: read stdout/stderr/stdin paths + read_off += str8_deserial_read_struct(string, read_off, &msg->stdout_path.size); + msg->stdout_path.str = push_array(arena, U8, msg->stdout_path.size); + read_off += str8_deserial_read(string, read_off, msg->stdout_path.str, msg->stdout_path.size, 1); + read_off += str8_deserial_read_struct(string, read_off, &msg->stderr_path.size); + msg->stderr_path.str = push_array(arena, U8, msg->stderr_path.size); + read_off += str8_deserial_read(string, read_off, msg->stderr_path.str, msg->stderr_path.size, 1); + read_off += str8_deserial_read_struct(string, read_off, &msg->stdin_path.size); + msg->stdin_path.str = push_array(arena, U8, msg->stdin_path.size); + read_off += str8_deserial_read(string, read_off, msg->stdin_path.str, msg->stdin_path.size, 1); + + // rjf: read trap list + U64 trap_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &trap_count); + for(U64 idx = 0; idx < trap_count; idx += 1) + { + D_TrapNode *n = push_array(arena, D_TrapNode, 1); + SLLQueuePush(msg->traps.first, msg->traps.last, n); + msg->traps.count += 1; + D_Trap *trap = &n->v; + read_off += str8_deserial_read_struct(string, read_off, &trap->flags); + read_off += str8_deserial_read_struct(string, read_off, &trap->vaddr); + } + + // rjf: read user breakpoint list + U64 user_bp_count = 0; + read_off += str8_deserial_read_struct(string, read_off, &user_bp_count); + for(U64 idx = 0; idx < user_bp_count; idx += 1) + { + D_BreakpointNode *n = push_array(arena, D_BreakpointNode, 1); + SLLQueuePush(msg->user_bps.first, msg->user_bps.last, n); + msg->user_bps.count += 1; + D_Breakpoint *bp = &n->v; + read_off += str8_deserial_read_struct(string, read_off, &bp->flags); + read_off += str8_deserial_read_struct(string, read_off, &bp->id); + read_off += str8_deserial_read_struct(string, read_off, &bp->file_path.size); + bp->file_path.str = push_array_no_zero(arena, U8, bp->file_path.size); + read_off += str8_deserial_read(string, read_off, bp->file_path.str, bp->file_path.size, 1); + read_off += str8_deserial_read_struct(string, read_off, &bp->pt); + read_off += str8_deserial_read_struct(string, read_off, &bp->vaddr_expr.size); + bp->vaddr_expr.str = push_array_no_zero(arena, U8, bp->vaddr_expr.size); + read_off += str8_deserial_read(string, read_off, bp->vaddr_expr.str, bp->vaddr_expr.size, 1); + read_off += str8_deserial_read_struct(string, read_off, &bp->condition.size); + bp->condition.str = push_array_no_zero(arena, U8, bp->condition.size); + read_off += str8_deserial_read(string, read_off, bp->condition.str, bp->condition.size, 1); + read_off += str8_deserial_read_struct(string, read_off, &bp->size); + } + } + } + return msgs; +} + +//////////////////////////////// +//~ rjf: Event Type Functions + +//- rjf: list building + +internal D_Event * +d_event_list_push(Arena *arena, D_EventList *list) +{ + D_EventNode *n = push_array(arena, D_EventNode, 1); + SLLQueuePush(list->first, list->last, n); + list->count += 1; + D_Event *event = &n->v; + return event; +} + +internal void +d_event_list_concat_in_place(D_EventList *dst, D_EventList *to_push) +{ + if(dst->last == 0) + { + MemoryCopyStruct(dst, to_push); + } + else if(to_push->first != 0) + { + dst->last->next = to_push->first; + dst->last = to_push->last; + dst->count += to_push->count; + } + MemoryZeroStruct(to_push); +} + +//- rjf: serialization + +internal String8 +d_serialized_string_from_event(Arena *arena, D_Event *event, U64 max) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List srl = {0}; + str8_serial_begin(scratch.arena, &srl); + { + str8_serial_push_struct(scratch.arena, &srl, &event->kind); + str8_serial_push_struct(scratch.arena, &srl, &event->cause); + str8_serial_push_struct(scratch.arena, &srl, &event->exception_kind); + str8_serial_push_struct(scratch.arena, &srl, &event->msg_id); + str8_serial_push_struct(scratch.arena, &srl, &event->entity); + str8_serial_push_struct(scratch.arena, &srl, &event->parent); + str8_serial_push_struct(scratch.arena, &srl, &event->arch); + str8_serial_push_struct(scratch.arena, &srl, &event->u64_code); + str8_serial_push_struct(scratch.arena, &srl, &event->entity_id); + str8_serial_push_struct(scratch.arena, &srl, &event->vaddr_rng); + str8_serial_push_struct(scratch.arena, &srl, &event->rip_vaddr); + str8_serial_push_struct(scratch.arena, &srl, &event->stack_base); + str8_serial_push_struct(scratch.arena, &srl, &event->tls_root); + str8_serial_push_struct(scratch.arena, &srl, &event->timestamp); + str8_serial_push_struct(scratch.arena, &srl, &event->exception_code); + str8_serial_push_struct(scratch.arena, &srl, &event->rgba); + str8_serial_push_struct(scratch.arena, &srl, &event->bp_flags); + str8_serial_push_struct(scratch.arena, &srl, &event->os); + str8_serial_push_struct(scratch.arena, &srl, &event->tls_index); + str8_serial_push_struct(scratch.arena, &srl, &event->tls_offset); + String8 string = event->string; + string.size = Min(string.size, max-srl.total_size); + str8_serial_push_struct(scratch.arena, &srl, &string.size); + str8_serial_push_data(scratch.arena, &srl, string.str, string.size); + } + String8 string = str8_serial_end(arena, &srl); + scratch_end(scratch); + return string; +} + +internal D_Event +d_event_from_serialized_string(Arena *arena, String8 string) +{ + D_Event event = zero_struct; + { + U64 read_off = 0; + read_off += str8_deserial_read_struct(string, read_off, &event.kind); + read_off += str8_deserial_read_struct(string, read_off, &event.cause); + read_off += str8_deserial_read_struct(string, read_off, &event.exception_kind); + read_off += str8_deserial_read_struct(string, read_off, &event.msg_id); + read_off += str8_deserial_read_struct(string, read_off, &event.entity); + read_off += str8_deserial_read_struct(string, read_off, &event.parent); + read_off += str8_deserial_read_struct(string, read_off, &event.arch); + read_off += str8_deserial_read_struct(string, read_off, &event.u64_code); + read_off += str8_deserial_read_struct(string, read_off, &event.entity_id); + read_off += str8_deserial_read_struct(string, read_off, &event.vaddr_rng); + read_off += str8_deserial_read_struct(string, read_off, &event.rip_vaddr); + read_off += str8_deserial_read_struct(string, read_off, &event.stack_base); + read_off += str8_deserial_read_struct(string, read_off, &event.tls_root); + read_off += str8_deserial_read_struct(string, read_off, &event.timestamp); + read_off += str8_deserial_read_struct(string, read_off, &event.exception_code); + read_off += str8_deserial_read_struct(string, read_off, &event.rgba); + read_off += str8_deserial_read_struct(string, read_off, &event.bp_flags); + read_off += str8_deserial_read_struct(string, read_off, &event.os); + read_off += str8_deserial_read_struct(string, read_off, &event.tls_index); + read_off += str8_deserial_read_struct(string, read_off, &event.tls_offset); + read_off += str8_deserial_read_struct(string, read_off, &event.string.size); + event.string.str = push_array_no_zero(arena, U8, event.string.size); + read_off += str8_deserial_read(string, read_off, event.string.str, event.string.size, 1); + } + return event; +} + +//////////////////////////////// +//~ rjf: Entity Type Functions + +//- rjf: entity context selection + +internal D_EntityCtx * +d_select_entity_ctx(D_EntityCtx *ctx) +{ + D_EntityCtx *popped = d_entity_ctx; + d_entity_ctx = ctx; + return popped; +} + +//- rjf: entity list data structures + +internal void +d_entity_list_push(Arena *arena, D_EntityList *list, D_Entity *entity) +{ + D_EntityNode *n = push_array(arena, D_EntityNode, 1); + n->v = entity; + SLLQueuePush(list->first, list->last, n); + list->count += 1; +} + +internal D_EntityList +d_entity_list_from_handle_list(Arena *arena, D_HandleList *list) +{ + D_EntityList result = {0}; + for(D_HandleNode *n = list->first; n != 0; n = n->next) + { + D_Entity *entity = d_entity_from_handle(n->v); + d_entity_list_push(arena, &result, entity); + } + return result; +} + +//- rjf: entity array data structure + +internal D_EntityArray +d_entity_array_from_list(Arena *arena, D_EntityList *list) +{ + D_EntityArray result = {0}; + result.count = list->count; + result.v = push_array_no_zero(arena, D_Entity *, result.count); + U64 idx = 0; + for(D_EntityNode *n = list->first; n != 0; n = n->next, idx += 1) + { + result.v[idx] = n->v; + } + return result; +} + +//- rjf: entity context (entity group read-only) functions + +internal D_Entity * +d_entity_from_handle(D_Handle handle) +{ + D_Entity *entity = &d_entity_nil; + if(!d_handle_match(handle, d_handle_zero())) + { + U64 hash = d_hash_from_handle(handle); + U64 slot_idx = hash%d_entity_ctx->hash_slots_count; + D_EntityHashSlot *slot = &d_entity_ctx->hash_slots[slot_idx]; + D_EntityHashNode *node = 0; + for(D_EntityHashNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->entity->handle, handle)) + { + entity = n->entity; + break; + } + } + } + return entity; +} + +internal D_Entity * +d_entity_child_from_kind(D_Entity *parent, D_EntityKind kind) +{ + D_Entity *result = &d_entity_nil; + for(D_Entity *child = parent->first; + child != &d_entity_nil; + child = child->next) + { + if(child->kind == kind) + { + result = child; + break; + } + } + return result; +} + +internal D_Entity * +d_entity_ancestor_from_kind(D_Entity *entity, D_EntityKind kind) +{ + D_Entity *result = &d_entity_nil; + for(D_Entity *p = entity->parent; p != &d_entity_nil; p = p->parent) + { + if(p->kind == kind) + { + result = p; + break; + } + } + return result; +} + +internal D_Entity * +d_process_from_entity(D_Entity *entity) +{ + D_Entity *result = &d_entity_nil; + if(entity->kind == D_EntityKind_Process) + { + result = entity; + } + else + { + result = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); + } + return result; +} + +internal D_Entity * +d_module_from_process_vaddr(D_Entity *process, U64 vaddr) +{ + D_Entity *result = &d_entity_nil; + for(D_Entity *child = process->first; + child != &d_entity_nil; + child = child->next) + { + if(child->kind == D_EntityKind_Module && contains_1u64(child->vaddr_range, vaddr)) + { + result = child; + break; + } + } + return result; +} + +internal DI_Key +d_dbgi_key_from_module(D_Entity *module) +{ + D_Entity *debug_info_path = d_entity_child_from_kind(module, D_EntityKind_DebugInfoPath); + DI_Key dbgi_key = di_key_from_path_timestamp(debug_info_path->string, debug_info_path->timestamp); + return dbgi_key; +} + +internal D_Entity * +d_module_from_thread_candidates(D_Entity *thread, D_EntityList *candidates) +{ + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + U64 thread_rip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *src_module = d_module_from_process_vaddr(process, thread_rip_vaddr); + D_Entity *module = &d_entity_nil; + for(D_EntityNode *n = candidates->first; n != 0; n = n->next) + { + D_Entity *candidate_module = n->v; + D_Entity *candidate_process = d_entity_ancestor_from_kind(candidate_module, D_EntityKind_Process); + if(candidate_process == process) + { + module = candidate_module; + } + if(candidate_module == src_module) + { + break; + } + } + return module; +} + +internal U64 +d_vaddr_from_voff(D_Entity *module, U64 voff) +{ + U64 result = voff + module->vaddr_range.min; + return result; +} + +internal U64 +d_voff_from_vaddr(D_Entity *module, U64 vaddr) +{ + U64 result = vaddr - module->vaddr_range.min; + return result; +} + +internal Rng1U64 +d_vaddr_range_from_voff_range(D_Entity *module, Rng1U64 voff_range) +{ + U64 dim = dim_1u64(voff_range); + U64 min = d_vaddr_from_voff(module, voff_range.min); + Rng1U64 result = {min, min+dim}; + return result; +} + +internal Rng1U64 +d_voff_range_from_vaddr_range(D_Entity *module, Rng1U64 vaddr_range) +{ + U64 dim = dim_1u64(vaddr_range); + U64 min = d_voff_from_vaddr(module, vaddr_range.min); + Rng1U64 result = {min, min+dim}; + return result; +} + +internal B32 +d_entity_tree_is_frozen(D_Entity *root) +{ + B32 is_frozen = 1; + for(D_Entity *e = root; e != &d_entity_nil; e = d_entity_rec_depth_first_pre(e, root).next) + { + if(e->kind == D_EntityKind_Thread && !e->is_frozen) + { + is_frozen = 0; + break; + } + } + return is_frozen; +} + +//- rjf: entity ctx r/w store state functions + +internal D_EntityCtxRWStore * +d_entity_ctx_rw_store_alloc(void) +{ + Arena *arena = arena_alloc(); + D_EntityCtxRWStore *store = push_array(arena, D_EntityCtxRWStore, 1); + store->arena = arena; + store->ctx.hash_slots_count = 1024; + store->ctx.hash_slots = push_array(arena, D_EntityHashSlot, store->ctx.hash_slots_count); + D_Entity *root = store->ctx.root = d_entity_alloc(store, &d_entity_nil, D_EntityKind_Root, Arch_Null, d_handle_zero(), 0); + D_Entity *local_machine = d_entity_alloc(store, root, D_EntityKind_Machine, Arch_CURRENT, d_handle_from_dmn(D_MachineID_Local, dmn_handle_zero()), 0); + Temp scratch = scratch_begin(0, 0); + String8 local_machine_name = push_str8f(scratch.arena, "This PC (%S)", get_system_info()->machine_name); + d_entity_equip_string(store, local_machine, local_machine_name); + scratch_end(scratch); + return store; +} + +internal void +d_entity_ctx_rw_store_release(D_EntityCtxRWStore *store) +{ + arena_release(store->arena); +} + +//- rjf: string allocation/deletion + +internal U64 +d_name_bucket_num_from_string_size(U64 size) +{ + U64 bucket_num = 0; + if(size > 0) + { + for EachElement(idx, d_entity_string_bucket_chunk_sizes) + { + if(size <= d_entity_string_bucket_chunk_sizes[idx]) + { + bucket_num = idx+1; + break; + } + } + } + return bucket_num; +} + +internal String8 +d_entity_string_alloc(D_EntityCtxRWStore *store, String8 string) +{ + //- rjf: allocate node + D_EntityStringChunkNode *node = 0; + { + U64 bucket_num = d_name_bucket_num_from_string_size(string.size); + if(bucket_num == ArrayCount(d_entity_string_bucket_chunk_sizes)) + { + D_EntityStringChunkNode *best_node = 0; + D_EntityStringChunkNode *best_node_prev = 0; + U64 best_node_size = max_U64; + { + for(D_EntityStringChunkNode *n = store->free_string_chunks[bucket_num-1], *prev = 0; n != 0; (prev = n, n = n->next)) + { + if(n->size >= string.size && n->size < best_node_size) + { + best_node = n; + best_node_prev = prev; + best_node_size = n->size; + } + } + } + if(best_node != 0) + { + node = best_node; + if(best_node_prev) + { + best_node_prev->next = best_node->next; + } + else + { + store->free_string_chunks[bucket_num-1] = best_node->next; + } + } + else + { + U64 chunk_size = u64_up_to_pow2(string.size); + node = (D_EntityStringChunkNode *)push_array(store->arena, U8, chunk_size); + } + } + else if(bucket_num != 0) + { + node = store->free_string_chunks[bucket_num-1]; + if(node != 0) + { + SLLStackPop(store->free_string_chunks[bucket_num-1]); + } + else + { + node = (D_EntityStringChunkNode *)push_array(store->arena, U8, d_entity_string_bucket_chunk_sizes[bucket_num-1]); + } + } + } + + //- rjf: fill node + String8 result = {0}; + if(node != 0) + { + result.str = (U8 *)node; + result.size = string.size; + MemoryCopy(result.str, string.str, result.size); + } + return result; +} + +internal void +d_entity_string_release(D_EntityCtxRWStore *store, String8 string) +{ + U64 bucket_num = d_name_bucket_num_from_string_size(string.size); + if(1 <= bucket_num && bucket_num <= ArrayCount(d_entity_string_bucket_chunk_sizes)) + { + U64 bucket_idx = bucket_num-1; + D_EntityStringChunkNode *node = (D_EntityStringChunkNode *)string.str; + SLLStackPush(store->free_string_chunks[bucket_idx], node); + node->size = u64_up_to_pow2(string.size); + } +} + +//- rjf: entity construction/deletion + +internal D_Entity * +d_entity_alloc(D_EntityCtxRWStore *store, D_Entity *parent, D_EntityKind kind, Arch arch, D_Handle handle, U64 id) +{ + D_Entity *entity = &d_entity_nil; + { + // rjf: allocate + entity = store->free; + { + if(entity != 0) + { + SLLStackPop(store->free); + } + else + { + entity = push_array_no_zero(store->arena, D_Entity, 1); + } + MemoryZeroStruct(entity); + } + + // rjf: fill + { + entity->kind = kind; + entity->arch = arch; + entity->handle = handle; + entity->id = id; + entity->parent = parent; + entity->next = entity->prev = entity->first = entity->last = &d_entity_nil; + if(parent != &d_entity_nil) + { + DLLPushBack_NPZ(&d_entity_nil, parent->first, parent->last, entity, next, prev); + } + } + + // rjf: insert into hash map + { + U64 hash = d_hash_from_handle(handle); + U64 slot_idx = hash%store->ctx.hash_slots_count; + D_EntityHashSlot *slot = &store->ctx.hash_slots[slot_idx]; + D_EntityHashNode *node = 0; + for(D_EntityHashNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->entity->handle, handle)) + { + node = n; + break; + } + } + if(node == 0) + { + node = store->hash_node_free; + if(node != 0) + { + SLLStackPop(store->hash_node_free); + } + else + { + node = push_array_no_zero(store->arena, D_EntityHashNode, 1); + } + MemoryZeroStruct(node); + DLLPushBack(slot->first, slot->last, node); + node->entity = entity; + } + } + + // rjf: bump counters + store->ctx.entity_kind_counts[kind] += 1; + store->ctx.entity_kind_alloc_gens[kind] += 1; + } + return entity; +} + +internal void +d_entity_release(D_EntityCtxRWStore *store, D_Entity *entity) +{ + // rjf: unhook root + if(entity->parent != &d_entity_nil) + { + DLLRemove_NPZ(&d_entity_nil, entity->parent->first, entity->parent->last, entity, next, prev); + } + + // rjf: walk every entity in this tree, free each + if(entity != &d_entity_nil) + { + Temp scratch = scratch_begin(0, 0); + typedef struct Task Task; + struct Task + { + Task *next; + D_Entity *e; + }; + Task start_task = {0, entity}; + Task *first_task = &start_task; + Task *last_task = &start_task; + for(Task *t = first_task; t != 0; t = t->next) + { + for(D_Entity *child = t->e->first; child != &d_entity_nil; child = child->next) + { + Task *t = push_array(scratch.arena, Task, 1); + t->e = child; + SLLQueuePush(first_task, last_task, t); + } + + // rjf: free entity + SLLStackPush(store->free, t->e); + + // rjf: remove from hash map + { + U64 hash = d_hash_from_handle(t->e->handle); + U64 slot_idx = hash%store->ctx.hash_slots_count; + D_EntityHashSlot *slot = &store->ctx.hash_slots[slot_idx]; + D_EntityHashNode *node = 0; + for(D_EntityHashNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->entity->handle, t->e->handle)) + { + DLLRemove(slot->first, slot->last, n); + SLLStackPush(store->hash_node_free, n); + break; + } + } + } + + // rjf: dec counter + store->ctx.entity_kind_counts[t->e->kind] -= 1; + store->ctx.entity_kind_alloc_gens[t->e->kind] += 1; + } + scratch_end(scratch); + } +} + +//- rjf: entity equipment + +internal void +d_entity_equip_string(D_EntityCtxRWStore *store, D_Entity *entity, String8 string) +{ + if(entity->string.size != 0) + { + d_entity_string_release(store, entity->string); + } + entity->string = d_entity_string_alloc(store, string); +} + +//- rjf: accelerated entity context lookups + +internal D_EntityCtxLookupAccel * +d_thread_entity_ctx_lookup_accel(void) +{ + if(d_entity_ctx_lookup_accel == 0) + { + Arena *arena = arena_alloc(); + d_entity_ctx_lookup_accel = push_array(arena, D_EntityCtxLookupAccel, 1); + d_entity_ctx_lookup_accel->arena = arena; + for EachEnumVal(D_EntityKind, k) + { + d_entity_ctx_lookup_accel->entity_kind_arrays_arenas[k] = arena_alloc(); + } + } + return d_entity_ctx_lookup_accel; +} + +internal D_EntityArray +d_entity_array_from_kind(D_EntityKind kind) +{ + D_EntityCtxLookupAccel *accel = d_thread_entity_ctx_lookup_accel(); + if(accel->entity_kind_arrays_gens[kind] != d_entity_ctx->entity_kind_alloc_gens[kind]) + { + Temp scratch = scratch_begin(0, 0); + D_EntityList entities = {0}; + for(D_Entity *e = d_entity_ctx->root; + e != &d_entity_nil; + e = d_entity_rec_depth_first_pre(e, d_entity_ctx->root).next) + { + if(e->kind == kind) + { + d_entity_list_push(scratch.arena, &entities, e); + } + } + accel->entity_kind_arrays_gens[kind] = d_entity_ctx->entity_kind_alloc_gens[kind]; + arena_clear(accel->entity_kind_arrays_arenas[kind]); + accel->entity_kind_arrays[kind] = d_entity_array_from_list(accel->entity_kind_arrays_arenas[kind], &entities); + scratch_end(scratch); + } + return accel->entity_kind_arrays[kind]; +} + +internal D_EntityList +d_modules_from_dbgi_key(Arena *arena, DI_Key dbgi_key) +{ + D_EntityList list = {0}; + D_EntityArray all_modules = d_entity_array_from_kind(D_EntityKind_Module); + for EachIndex(idx, all_modules.count) + { + D_Entity *module = all_modules.v[idx]; + DI_Key module_dbgi_key = d_dbgi_key_from_module(module); + if(di_key_match(module_dbgi_key, dbgi_key)) + { + d_entity_list_push(arena, &list, module); + } + } + return list; +} + +internal D_Entity * +d_thread_from_id(U64 id) +{ + D_Entity *thread = &d_entity_nil; + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + for EachIndex(idx, threads.count) + { + if(threads.v[idx]->id == id) + { + thread = threads.v[idx]; + } + } + return thread; +} + +//- rjf: entity tree iteration + +internal D_EntityRec +d_entity_rec_depth_first(D_Entity *entity, D_Entity *subtree_root, U64 sib_off, U64 child_off) +{ + D_EntityRec result = {0}; + result.next = &d_entity_nil; + if((*MemberFromOffset(D_Entity **, entity, child_off)) != &d_entity_nil) + { + result.next = *MemberFromOffset(D_Entity **, entity, child_off); + result.push_count = 1; + } + else for(D_Entity *parent = entity; parent != subtree_root && parent != &d_entity_nil; parent = parent->parent) + { + if(parent != subtree_root && (*MemberFromOffset(D_Entity **, parent, sib_off)) != &d_entity_nil) + { + result.next = *MemberFromOffset(D_Entity **, parent, sib_off); + break; + } + result.pop_count += 1; + } + return result; +} + +//- rjf: applying events to entity caches + +internal void +d_entity_store_apply_events(D_EntityCtxRWStore *store, D_EventList *list) +{ + D_EntityCtx *ctx_restore = d_select_entity_ctx(&store->ctx); + + //- rjf: scan events & construct entities + for(D_EventNode *n = list->first; n != 0; n = n->next) + { + D_Event *event = &n->v; + switch(event->kind) + { + default:{}break; + + //- rjf: processes + case D_EventKind_NewProc: + { + D_Entity *machine = d_entity_from_handle(d_handle_from_dmn(event->entity.machine_id, dmn_handle_zero())); + if(machine != &d_entity_nil) + { + D_Entity *process = d_entity_alloc(store, machine, D_EntityKind_Process, event->arch, event->entity, (U64)event->entity_id); + process->os = event->os; + process->src_msg_id = event->msg_id; + d_entity_equip_string(store, process, event->string); + } + }break; + case D_EventKind_EndProc: + { + D_Entity *process = d_entity_from_handle(event->entity); + d_entity_release(store, process); + for(D_Entity *entry = store->ctx.root->first, *next = &d_entity_nil; + entry != &d_entity_nil; + entry = next) + { + next = entry->next; + if(entry->id == process->id && + (entry->kind == D_EntityKind_EntryPoint || entry->kind == D_EntityKind_LaunchMsgID)) + { + d_entity_release(store, entry); + } + } + }break; + + //- rjf: threads + case D_EventKind_NewThread: + { + D_Entity *process = d_entity_from_handle(event->parent); + if(process != &d_entity_nil) + { + D_Entity *thread = d_entity_alloc(store, process, D_EntityKind_Thread, event->arch, event->entity, (U64)event->entity_id); + D_Entity *first_thread = d_entity_child_from_kind(process, D_EntityKind_Thread); + if(first_thread == thread) + { + d_entity_equip_string(store, thread, str8_lit("main_thread")); + } + D_EntityArray pending_thread_names = d_entity_array_from_kind(D_EntityKind_PendingThreadName); + for EachIndex(idx, pending_thread_names.count) + { + D_Entity *entity = pending_thread_names.v[idx]; + if(entity->id == event->entity_id) + { + d_entity_equip_string(store, thread, entity->string); + d_entity_release(store, entity); + break; + } + } + D_EntityArray pending_thread_colors = d_entity_array_from_kind(D_EntityKind_PendingThreadColor); + for EachIndex(idx, pending_thread_colors.count) + { + D_Entity *entity = pending_thread_colors.v[idx]; + if(entity->id == event->entity_id) + { + thread->rgba = entity->rgba; + d_entity_release(store, entity); + break; + } + } + thread->stack_base = event->stack_base; + thread->tls_root_vaddr = event->tls_root; + } + //d_cached_ip_from_thread(&store->ctx, event->entity); + }break; + case D_EventKind_EndThread: + { + D_Entity *thread = d_entity_from_handle(event->entity); + d_entity_release(store, thread); + }break; + case D_EventKind_ThreadName: + { + D_Entity *process = d_entity_from_handle(event->parent); + D_Entity *thread = &d_entity_nil; + if(event->entity_id == 0) + { + thread = d_entity_from_handle(event->entity); + } + else + { + thread = d_thread_from_id(event->entity_id); + } + if(thread != &d_entity_nil) + { + d_entity_equip_string(store, thread, event->string); + } + else if(process != &d_entity_nil) + { + D_Entity *pending_name = d_entity_alloc(store, process, D_EntityKind_PendingThreadName, Arch_Null, d_handle_zero(), event->entity_id); + d_entity_equip_string(store, pending_name, event->string); + } + }break; + case D_EventKind_ThreadColor: + { + D_Entity *process = d_entity_from_handle(event->parent); + D_Entity *thread = &d_entity_nil; + if(event->entity_id == 0) + { + thread = d_entity_from_handle(event->entity); + } + else + { + thread = d_thread_from_id(event->entity_id); + } + if(thread != &d_entity_nil) + { + thread->rgba = event->rgba; + } + else if(process != &d_entity_nil) + { + D_Entity *pending = d_entity_alloc(store, process, D_EntityKind_PendingThreadColor, Arch_Null, d_handle_zero(), event->entity_id); + pending->rgba = event->rgba; + } + }break; + case D_EventKind_ThreadFrozen: + { + D_Entity *thread = d_entity_from_handle(event->entity); + if(thread != &d_entity_nil) + { + thread->is_frozen = 1; + } + }break; + case D_EventKind_ThreadThawed: + { + D_Entity *thread = d_entity_from_handle(event->entity); + if(thread != &d_entity_nil) + { + thread->is_frozen = 0; + } + }break; + + //- rjf: modules + case D_EventKind_NewModule: + { + Temp scratch = scratch_begin(0, 0); + D_Entity *process = d_entity_from_handle(event->parent); + D_Entity *module = d_entity_alloc(store, process, D_EntityKind_Module, event->arch, event->entity, event->vaddr_rng.min); + d_entity_equip_string(store, module, event->string); + module->timestamp = event->timestamp; + module->vaddr_range = event->vaddr_rng; + D_Entity *first_module = d_entity_child_from_kind(process, D_EntityKind_Module); + if(first_module == module && process->string.size == 0) + { + d_entity_equip_string(store, process, event->string); + } + scratch_end(scratch); + }break; + case D_EventKind_EndModule: + { + D_Entity *module = d_entity_from_handle(event->entity); + d_entity_release(store, module); + }break; + case D_EventKind_ModuleDebugInfoPathChange: + { + Temp scratch = scratch_begin(0, 0); + D_Entity *module = d_entity_from_handle(event->entity); + D_Entity *debug_info_path = d_entity_child_from_kind(module, D_EntityKind_DebugInfoPath); + if(debug_info_path == &d_entity_nil) + { + debug_info_path = d_entity_alloc(store, module, D_EntityKind_DebugInfoPath, Arch_Null, d_handle_zero(), 0); + } + d_entity_equip_string(store, debug_info_path, path_normalized_from_string(scratch.arena, event->string)); + debug_info_path->timestamp = event->timestamp; + scratch_end(scratch); + }break; + + //- rjf: dynamic, program-created breakpoints + case D_EventKind_SetBreakpoint: + { + D_Entity *process = d_entity_from_handle(event->parent); + D_Entity *bp = d_entity_alloc(store, process, D_EntityKind_Breakpoint, Arch_Null, d_handle_zero(), 0); + bp->vaddr_range = event->vaddr_rng; + bp->bp_flags = event->bp_flags; + }break; + case D_EventKind_UnsetBreakpoint: + { + D_Entity *process = d_entity_from_handle(event->parent); + for(D_Entity *child = process->first; child != &d_entity_nil; child = child->next) + { + if(child->kind == D_EntityKind_Breakpoint && + child->vaddr_range.min == event->vaddr_rng.min && + child->vaddr_range.max == event->vaddr_rng.max && + child->bp_flags == event->bp_flags) + { + d_entity_release(store, child); + break; + } + } + }break; + + //- rjf: address range annotations + case D_EventKind_SetVAddrRangeNote: + { + D_Entity *process = d_entity_from_handle(event->parent); + D_Entity *annotation = d_entity_alloc(store, process, D_EntityKind_AddressRangeAnnotation, Arch_Null, d_handle_zero(), 0); + annotation->vaddr_range = event->vaddr_rng; + d_entity_equip_string(store, annotation, event->string); + }break; + } + } + + d_select_entity_ctx(ctx_restore); +} + +//////////////////////////////// +//~ rjf: Wakeup Callback Registration + +internal void +d_set_wakeup_hook(D_WakeupFunctionType *wakeup_hook) +{ + d_ctrl_state->wakeup_hook = wakeup_hook; +} + +//////////////////////////////// +//~ rjf: Thread Register Functions + +//- rjf: thread handle read/write + +internal B32 +d_thread_read_reg_block(D_Handle handle, void *reg_block) +{ + B32 result = 0; + switch((D_ControllerKindEnum)handle.controller_kind) + { + case D_ControllerKind_Demon: + { + result = dmn_thread_read_reg_block(d_dmn_from_handle(handle), reg_block); + }break; + case D_ControllerKind_Dump: + { + D_Entity *thread = d_entity_from_handle(handle); + D_Entity *process = d_process_from_entity(thread); + D_DumpCache *cache = &d_ctrl_state->dump_cache; + U64 hash = d_hash_from_handle(process->handle); + U64 slot_idx = hash%cache->slots_count; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + RWMutexScope(stripe->rw_mutex, 0) + { + // rjf: process -> dump node + D_DumpNode *node = 0; + for(D_DumpNode *n = cache->slots[slot_idx].first; n != 0; n = n->next) + { + if(d_handle_match(n->process, process->handle)) + { + node = n; + break; + } + } + + // rjf: thread -> context in dump + void *thread_ctx = 0; + if(node != 0) + { + for EachIndex(idx, node->threads_count) + { + if(d_handle_match(thread->handle, node->threads[idx].thread_handle)) + { + thread_ctx = (U8 *)node->base + node->threads[idx].context_foff; + } + } + } + + // rjf: read context structure into reg block + if(thread_ctx != 0) + { + Arch arch = thread->arch; + OperatingSystem os = process->os; + result = arch_os_write_reg_block_from_thread_ctx(arch, os, reg_block, thread_ctx); + } + } + }break; + } + return result; +} + +internal B32 +d_thread_write_reg_block(D_Handle thread, void *block) +{ + B32 result = 0; + switch((D_ControllerKindEnum)thread.controller_kind) + { + case D_ControllerKind_Demon: + { + // TODO(rjf): @callstacks immediately reflect this in the call stack cache + DMN_Handle handle_dmn = d_dmn_from_handle(thread); + B32 result = dmn_thread_write_reg_block(handle_dmn, block); + if(result) + { + ins_atomic_u64_inc_eval(&d_ctrl_state->reg_gen); + } + }break; + case D_ControllerKind_Dump: + { + // TODO(rjf) + }break; + } + return result; +} + +internal U64 +d_ip_from_thread(D_Handle handle) +{ + U64 result = 0; + Temp scratch = scratch_begin(0, 0); + D_Entity *thread = d_entity_from_handle(handle); + Arch arch = thread->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 reg_block_size = arch_info->reg_block_size; + void *reg_block = push_array(scratch.arena, U8, reg_block_size); + if(d_thread_read_reg_block(handle, reg_block)) + { + result = arch_ip_from_reg_block(arch_info, reg_block); + } + scratch_end(scratch); + return result; +} + +internal U64 +d_sp_from_thread(D_Handle handle) +{ + U64 result = 0; + Temp scratch = scratch_begin(0, 0); + D_Entity *thread = d_entity_from_handle(handle); + Arch arch = thread->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 reg_block_size = arch_info->reg_block_size; + void *reg_block = push_array(scratch.arena, U8, reg_block_size); + if(d_thread_read_reg_block(handle, reg_block)) + { + result = arch_sp_from_reg_block(arch_info, reg_block); + } + scratch_end(scratch); + return result; +} + +internal B32 +d_thread_get_module_tls_vaddr(D_Handle thread, D_Handle module, U64 *vaddr_out) +{ + B32 result = 0; + + // rjf: resolve to demon + DMN_Handle thread_dmn = d_dmn_from_handle(thread); + DMN_Handle module_dmn = d_dmn_from_handle(module); + + // rjf: compute vaddr + if(!dmn_handle_match(thread_dmn, dmn_handle_zero()) && + !dmn_handle_match(module_dmn, dmn_handle_zero())) + { + result = dmn_thread_get_module_tls_vaddr(thread_dmn, module_dmn, vaddr_out); + } + + return result; +} + +//- rjf: thread register cache reading + +internal void * +d_cached_reg_block_from_thread(Arena *arena, D_Handle handle) +{ + D_ThreadRegCache *cache = &d_ctrl_state->thread_reg_cache; + D_Entity *thread_entity = d_entity_from_handle(handle); + Arch arch = thread_entity->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 reg_block_size = arch_info->reg_block_size; + U64 hash = d_hash_from_handle(handle); + U64 slot_idx = hash%cache->slots_count; + U64 stripe_idx = slot_idx%cache->stripes_count; + D_ThreadRegCacheSlot *slot = &cache->slots[slot_idx]; + D_ThreadRegCacheStripe *stripe = &cache->stripes[stripe_idx]; + void *result = push_array(arena, U8, reg_block_size); + MutexScopeW(stripe->rw_mutex) + { + // rjf: find existing node + D_ThreadRegCacheNode *node = 0; + for(D_ThreadRegCacheNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->handle, handle)) + { + node = n; + break; + } + } + + // rjf: allocate existing node + if(!node) + { + node = push_array(stripe->arena, D_ThreadRegCacheNode, 1); + DLLPushBack(slot->first, slot->last, node); + node->handle = handle; + node->block_size = reg_block_size; + node->block = push_array(stripe->arena, U8, reg_block_size); + } + + // rjf: copy from node + if(node) + { + U64 current_reg_gen = d_reg_gen(); + B32 need_stale = 1; + if(node->reg_gen != current_reg_gen && d_thread_read_reg_block(handle, result)) + { + if(node != 0) + { + need_stale = 0; + node->reg_gen = current_reg_gen; + MemoryCopy(node->block, result, reg_block_size); + } + } + if(need_stale) + { + MemoryCopy(result, node->block, reg_block_size); + } + } + } + return result; +} + +internal U64 +d_cached_ip_from_thread(D_Handle handle) +{ + Temp scratch = scratch_begin(0, 0); + D_Entity *thread_entity = d_entity_from_handle(handle); + Arch arch = thread_entity->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + void *block = d_cached_reg_block_from_thread(scratch.arena, handle); + U64 result = arch_ip_from_reg_block(arch_info, block); + scratch_end(scratch); + return result; +} + +internal U64 +d_cached_sp_from_thread(D_Handle handle) +{ + Temp scratch = scratch_begin(0, 0); + D_Entity *thread_entity = d_entity_from_handle(handle); + Arch arch = thread_entity->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + void *block = d_cached_reg_block_from_thread(scratch.arena, handle); + U64 result = arch_sp_from_reg_block(arch_info, block); + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Module Image Info Functions + +//- rjf: cache lookups + +internal D_ModuleInfo * +d_info_from_module(Access *access, D_Handle module) +{ + D_ModuleInfo *result = &d_module_info_nil; + { + D_ModuleInfoCache *cache = &d_ctrl_state->module_info_cache; + U64 hash = d_hash_from_handle(module); + U64 slot_idx = hash%cache->slots_count; + D_ModuleInfoCacheSlot *slot = &cache->slots[slot_idx]; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + MutexScopeR(stripe->rw_mutex) for(D_ModuleInfoCacheNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->module, module)) + { + access_touch(access, &n->access_pt, stripe->cv); + result = &n->v; + break; + } + } + } + return result; +} + +internal U64 +d_entry_point_voff_from_module(D_Handle module_handle) +{ + Access *access = access_open(); + U64 result = d_info_from_module(access, module_handle)->entry_point_voff; + access_close(access); + return result; +} + +internal String8 +d_initial_debug_info_path_from_module(Arena *arena, D_Handle module_handle) +{ + Access *access = access_open(); + String8 result = str8_copy(arena, d_info_from_module(access, module_handle)->local_debug_info_path); + access_close(access); + return result; +} + +//////////////////////////////// +//~ rjf: Unwinding Functions + +internal D_Unwind +d_unwind_from_thread(Arena *arena, D_Handle thread, U64 endt_us) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + D_Unwind unwind = { .flags = D_UnwindFlag_Error }; + + ////////////////////////////// + //- rjf: grab run state pre-unwind computing + // + U64 run_gen = d_run_gen(); + + ////////////////////////////// + //- rjf: unpack args + // + D_Entity *thread_entity = d_entity_from_handle(thread); + D_Entity *process_entity = thread_entity->parent; + Arch arch = thread_entity->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 arch_reg_block_size = arch_info->reg_block_size; + + ////////////////////////////// + //- rjf: grab initial register block + // + void *regs_block = d_cached_reg_block_from_thread(scratch.arena, thread); + B32 regs_block_good = (arch != Arch_Null && regs_block != 0); + void *regs_block_restore = push_array(scratch.arena, U8, arch_reg_block_size); + + ////////////////////////////// + //- rjf: grab initial memory + // + // NOTE(rjf): we can pre-fill memory that we can expect to load here - + // otherwise we will lazily evaluate it via the unwinding backends below + // + MemoryMap memory_map = {0}; + if(regs_block_good) + { + U64 sp = arch_sp_from_reg_block(arch_info, regs_block); + U64 sp_rounded_down = AlignDownPow2(sp, KB(4)); + Rng1U64 top_of_stack_vaddr_range = r1u64(sp_rounded_down, sp_rounded_down+KB(4)); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process_entity->handle, top_of_stack_vaddr_range, 1, endt_us); + String8 data = slice.data; + if(!slice.stale) + { + memory_map_push(scratch.arena, &memory_map, top_of_stack_vaddr_range, data.str); + } + } + + ////////////////////////////// + //- rjf: push one frame for register block we already have + // + D_UnwindFrameNode *first_frame_node = 0; + D_UnwindFrameNode *last_frame_node = 0; + U64 frame_node_count = 0; + if(regs_block_good) + { + D_UnwindFrameNode *frame_node = push_array(scratch.arena, D_UnwindFrameNode, 1); + D_UnwindFrame *f = &frame_node->v; + f->regs = push_array_no_zero(arena, U8, arch_reg_block_size); + MemoryCopy(f->regs, regs_block, arch_reg_block_size); + DLLPushBack(first_frame_node, last_frame_node, frame_node); + frame_node_count += 1; + } + + ////////////////////////////// + //- rjf: loop & unwind + // + if(regs_block_good) + { + unwind.flags = 0; + for(;!unwind.flags;) + { + U64 start_ip = arch_ip_from_reg_block(arch_info, regs_block); + U64 start_sp = arch_sp_from_reg_block(arch_info, regs_block); + + //- rjf: cancel on zero rip (except the top frame) + if(start_ip == 0 && frame_node_count > 0) + { + break; + } + + //- rjf: open access for this step + Access *access = access_open(); + + //- rjf: ip -> module / unpack + D_Entity *module_entity = d_module_from_process_vaddr(process_entity, start_ip); + D_ModuleInfo *module_info = d_info_from_module(access, module_entity->handle); + UWND_Unwinder unwinder = module_info->unwinder; + UWND_ModuleInfo unwinder_module_info = {module_entity->vaddr_range.min, module_info->unwind_info}; + + //- rjf: thread * module -> tls vaddr + U64 tls_vaddr = 0; + d_thread_get_module_tls_vaddr(thread_entity->handle, module_entity->handle, &tls_vaddr); + + //- rjf: do one unwind step + B32 step_is_good = 0; + for(;!unwind.flags && !step_is_good;) + { + // rjf: remember registers pre-step + MemoryCopy(regs_block_restore, regs_block, arch_reg_block_size); + + // rjf: try step + U64 cfa = 0; + UWND_StepResult step = uwnd_step(unwinder, arch, &memory_map, &unwinder_module_info, tls_vaddr, regs_block, &cfa); + + // rjf: if the step failed -> restore original register values + if(step.status != UWND_StepStatus_Good) + { + MemoryCopy(regs_block, regs_block_restore, arch_reg_block_size); + } + + // rjf: if we failed to read memory, try to read that memory, equip to memory map. + // if it is stale and we run out of time, we will need to mark the whole unwind as + // stale. if it can't be read, the unwind fails. + if(step.status == UWND_StepStatus_FailedMemoryRead) + { + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process_entity->handle, step.missed_read_vaddr_range, 1, endt_us); + String8 data = slice.data; + if(slice.stale) + { + unwind.flags |= D_UnwindFlag_Stale; + } + else if(data.size < dim_1u64(step.missed_read_vaddr_range)) + { + unwind.flags |= D_UnwindFlag_Error; + } + else + { + memory_map_push(scratch.arena, &memory_map, step.missed_read_vaddr_range, data.str); + } + } + + // rjf: if the step itself failed, we just fail out. + else if(step.status == UWND_StepStatus_Error) + { + unwind.flags |= D_UnwindFlag_Error; + } + + // rjf: if the step worked, we're good. equip this step's CFA to the previously added frame, + // then exit the step loop. + else if(step.status == UWND_StepStatus_Good) + { + last_frame_node->v.cfa = cfa; + step_is_good = 1; + } + } + + //- rjf: push successful steps to frame list - we disqualify steps that are: + // + // (a) bad + // (b) advance ip to 0 + // (c) do not modify either ip *or* sp (just one is fine) + // + B32 step_made_process = (arch_ip_from_reg_block(arch_info, regs_block) != start_ip || + arch_sp_from_reg_block(arch_info, regs_block) != start_sp); + if(step_is_good && step_made_process && arch_ip_from_reg_block(arch_info, regs_block) != 0) + { + D_UnwindFrameNode *frame_node = push_array(scratch.arena, D_UnwindFrameNode, 1); + D_UnwindFrame *f = &frame_node->v; + f->regs = push_array_no_zero(arena, U8, arch_reg_block_size); + MemoryCopy(f->regs, regs_block, arch_reg_block_size); + DLLPushBack(first_frame_node, last_frame_node, frame_node); + frame_node_count += 1; + } + + //- rjf: close access + access_close(access); + + //- rjf: exit if we made no progress on the unwind + if(!step_made_process) + { + break; + } + } + } + + //- rjf: bake frames list into result array + { + unwind.frames.count = frame_node_count; + unwind.frames.v = push_array(arena, D_UnwindFrame, unwind.frames.count); + U64 idx = 0; + for(D_UnwindFrameNode *n = first_frame_node; n != 0; n = n->next, idx += 1) + { + unwind.frames.v[idx] = n->v; + } + } + + scratch_end(scratch); + ProfEnd(); + return unwind; +} + +//////////////////////////////// +//~ rjf: Call Stack Building Functions + +internal D_CallStack +d_call_stack_from_unwind(Arena *arena, D_Entity *process, D_Unwind *base_unwind) +{ + Temp scratch = scratch_begin(&arena, 1); + Access *access = access_open(); + Arch arch = process->arch; + D_CallStack result = {0}; + { + typedef struct FrameNode FrameNode; + struct FrameNode + { + FrameNode *next; + D_CallStackFrame v; + }; + + //- rjf: gather all frames + FrameNode *first_frame = 0; + FrameNode *last_frame = 0; + U64 frame_count = 0; + for(U64 base_frame_idx = 0; base_frame_idx < base_unwind->frames.count; base_frame_idx += 1) + { + // rjf: unpack + ARCH_Info *arch_info = arch_info_from_arch(arch); + D_UnwindFrame *src = &base_unwind->frames.v[base_frame_idx]; + U64 rip_vaddr = arch_ip_from_reg_block(arch_info, src->regs); + D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); + U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Scope *scope = rdi_scope_from_voff(rdi, rip_voff); + + // rjf: build inline frames (minus parent & inline depth) + FrameNode *first_inline_frame = 0; + FrameNode *last_inline_frame = 0; + U64 inline_frame_count = 0; + for(RDI_Scope *s = scope; + s->inline_site_idx != 0; + s = rdi_element_from_name_idx(rdi, Scopes, s->parent_scope_idx)) + { + FrameNode *dst_inline = push_array(scratch.arena, FrameNode, 1); + if(first_inline_frame == 0) + { + first_inline_frame = dst_inline; + } + last_inline_frame = dst_inline; + SLLQueuePush(first_frame, last_frame, dst_inline); + dst_inline->v.unwind_count = base_frame_idx; + dst_inline->v.regs = src->regs; + dst_inline->v.cfa = src->cfa; + frame_count += 1; + inline_frame_count += 1; + } + + // rjf: build concrete frame + FrameNode *dst_base = push_array(scratch.arena, FrameNode, 1); + SLLQueuePush(first_frame, last_frame, dst_base); + dst_base->v.unwind_count = base_frame_idx; + dst_base->v.regs = src->regs; + dst_base->v.cfa = src->cfa; + frame_count += 1; + + // rjf: hook up inline frames to point to concrete frame, and to account for inline depth + U64 inline_frame_idx = 0; + for(FrameNode *inline_frame = first_inline_frame; inline_frame != 0; inline_frame = inline_frame->next, inline_frame_idx += 1) + { + inline_frame->v.inline_depth = inline_frame_count - inline_frame_idx; + if(inline_frame == last_inline_frame) + { + break; + } + } + } + + //- rjf: package + result.frames_count = frame_count; + result.frames = push_array(arena, D_CallStackFrame, result.frames_count); + result.concrete_frames_count = base_unwind->frames.count; + result.concrete_frames = push_array(arena, D_CallStackFrame *, result.concrete_frames_count); + { + U64 idx = 0; + U64 concrete_idx = 0; + for(FrameNode *n = first_frame; n != 0; n = n->next, idx += 1) + { + MemoryCopyStruct(&result.frames[idx], &n->v); + if(n->v.inline_depth == 0 && concrete_idx < result.concrete_frames_count) + { + result.concrete_frames[concrete_idx] = &result.frames[idx]; + concrete_idx += 1; + } + } + } + } + access_close(access); + scratch_end(scratch); + return result; +} + +internal D_CallStackFrame * +d_call_stack_frame_from_unwind_and_inline_depth(D_CallStack *call_stack, U64 unwind_count, U64 inline_depth) +{ + D_CallStackFrame *f = 0; + { + U64 base_frame_idx = 0; + for(U64 idx = 0; idx < call_stack->frames_count; idx += 1) + { + if(call_stack->frames[idx].inline_depth == 0) + { + if(base_frame_idx == unwind_count) + { + f = &call_stack->frames[idx]; + break; + } + base_frame_idx += 1; + } + } + if(f != 0 && call_stack->frames + inline_depth < f) + { + f -= inline_depth; + } + } + return f; +} + +//////////////////////////////// +//~ rjf: Halting All Attached Processes + +internal void +d_halt(void) +{ + dmn_halt(0, 0); +} + +//////////////////////////////// +//~ rjf: Shared Accessor Functions + +//- rjf: generation counters + +internal U64 +d_run_gen(void) +{ + U64 result = ins_atomic_u64_eval(&d_ctrl_state->run_gen); + return result; +} + +internal U64 +d_mem_gen(void) +{ + U64 result = ins_atomic_u64_eval(&d_ctrl_state->mem_gen); + return result; +} + +internal U64 +d_reg_gen(void) +{ + U64 result = ins_atomic_u64_eval(&d_ctrl_state->reg_gen); + return result; +} + +//- rjf: name -> register/alias hash tables, for eval + +internal E_String2NumMap * +d_string2reg_from_arch(Arch arch) +{ + return &d_ctrl_state->arch_string2reg_tables[arch]; +} + +//////////////////////////////// +//~ rjf: Control-Thread Functions + +//- rjf: user -> control thread communication + +internal B32 +d_u2c_push_msgs(D_MsgList *msgs, U64 endt_us) +{ + Temp scratch = scratch_begin(0, 0); + String8 msgs_srlzed_baked = d_serialized_string_from_msg_list(scratch.arena, msgs); + B32 good = 0; + MutexScope(d_ctrl_state->u2c_ring_mutex) for(;;) + { + U64 unconsumed_size = (d_ctrl_state->u2c_ring_write_pos-d_ctrl_state->u2c_ring_read_pos); + U64 available_size = d_ctrl_state->u2c_ring_size-unconsumed_size; + U64 needed_size = sizeof(msgs_srlzed_baked.size) + msgs_srlzed_baked.size; + if(available_size >= needed_size) + { + d_ctrl_state->u2c_ring_write_pos += wrapped_write_struct(d_ctrl_state->u2c_ring_base, d_ctrl_state->u2c_ring_size, d_ctrl_state->u2c_ring_write_pos, &msgs_srlzed_baked.size); + d_ctrl_state->u2c_ring_write_pos += wrapped_write(d_ctrl_state->u2c_ring_base, d_ctrl_state->u2c_ring_size, d_ctrl_state->u2c_ring_write_pos, msgs_srlzed_baked.str, msgs_srlzed_baked.size); + good = 1; + break; + } + if(now_time_us() >= endt_us) + { + break; + } + cond_var_wait(d_ctrl_state->u2c_ring_cv, d_ctrl_state->u2c_ring_mutex, endt_us); + } + if(good) + { + cond_var_broadcast(d_ctrl_state->u2c_ring_cv); + } + scratch_end(scratch); + return good; +} + +internal D_MsgList +d_u2c_pop_msgs(Arena *arena) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 msgs_srlzed_baked = {0}; + MutexScope(d_ctrl_state->u2c_ring_mutex) for(;;) + { + U64 unconsumed_size = (d_ctrl_state->u2c_ring_write_pos-d_ctrl_state->u2c_ring_read_pos); + if(unconsumed_size >= sizeof(U64)) + { + U64 size_to_decode = 0; + d_ctrl_state->u2c_ring_read_pos += wrapped_read_struct(d_ctrl_state->u2c_ring_base, d_ctrl_state->u2c_ring_size, d_ctrl_state->u2c_ring_read_pos, &size_to_decode); + msgs_srlzed_baked.size = size_to_decode; + msgs_srlzed_baked.str = push_array_no_zero(scratch.arena, U8, msgs_srlzed_baked.size); + d_ctrl_state->u2c_ring_read_pos += wrapped_read(d_ctrl_state->u2c_ring_base, d_ctrl_state->u2c_ring_size, d_ctrl_state->u2c_ring_read_pos, msgs_srlzed_baked.str, size_to_decode); + break; + } + cond_var_wait(d_ctrl_state->u2c_ring_cv, d_ctrl_state->u2c_ring_mutex, max_U64); + } + cond_var_broadcast(d_ctrl_state->u2c_ring_cv); + D_MsgList msgs = d_msg_list_from_serialized_string(arena, msgs_srlzed_baked); + scratch_end(scratch); + return msgs; +} + +//- rjf: control -> user thread communication + +internal void +d_c2u_push_events(D_EventList *events) +{ + if(events->count != 0) ProfScope("d_c2u_push_events") + { + MutexScopeW(d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + d_entity_store_apply_events(d_ctrl_state->ctrl_thread_entity_store, events); + } + for(D_EventNode *n = events->first; n != 0; n = n ->next) + { + Temp scratch = scratch_begin(0, 0); + String8 event_srlzed = d_serialized_string_from_event(scratch.arena, &n->v, d_ctrl_state->c2u_ring_size-sizeof(U64)); + MutexScope(d_ctrl_state->c2u_ring_mutex) for(;;) + { + U64 unconsumed_size = (d_ctrl_state->c2u_ring_write_pos-d_ctrl_state->c2u_ring_read_pos); + U64 available_size = d_ctrl_state->c2u_ring_size-unconsumed_size; + U64 needed_size = sizeof(event_srlzed.size) + event_srlzed.size; + if(available_size >= needed_size) + { + d_ctrl_state->c2u_ring_write_pos += wrapped_write_struct(d_ctrl_state->c2u_ring_base, d_ctrl_state->c2u_ring_size, d_ctrl_state->c2u_ring_write_pos, &event_srlzed.size); + d_ctrl_state->c2u_ring_write_pos += wrapped_write(d_ctrl_state->c2u_ring_base, d_ctrl_state->c2u_ring_size, d_ctrl_state->c2u_ring_write_pos, event_srlzed.str, event_srlzed.size); + break; + } + cond_var_wait(d_ctrl_state->c2u_ring_cv, d_ctrl_state->c2u_ring_mutex, now_time_us()+100); + } + cond_var_broadcast(d_ctrl_state->c2u_ring_cv); + if(d_ctrl_state->wakeup_hook != 0) + { + d_ctrl_state->wakeup_hook(); + } + scratch_end(scratch); + } + } +} + +internal D_EventList +d_c2u_pop_events(Arena *arena) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + D_EventList events = {0}; + MutexScope(d_ctrl_state->c2u_ring_mutex) for(;;) + { + U64 unconsumed_size = (d_ctrl_state->c2u_ring_write_pos-d_ctrl_state->c2u_ring_read_pos); + if(unconsumed_size >= sizeof(U64)) + { + U64 size_to_decode = 0; + d_ctrl_state->c2u_ring_read_pos += wrapped_read_struct(d_ctrl_state->c2u_ring_base, d_ctrl_state->c2u_ring_size, d_ctrl_state->c2u_ring_read_pos, &size_to_decode); + String8 event_srlzed = {0}; + event_srlzed.size = size_to_decode; + event_srlzed.str = push_array_no_zero(scratch.arena, U8, event_srlzed.size); + d_ctrl_state->c2u_ring_read_pos += wrapped_read(d_ctrl_state->c2u_ring_base, d_ctrl_state->c2u_ring_size, d_ctrl_state->c2u_ring_read_pos, event_srlzed.str, event_srlzed.size); + D_Event *new_event = d_event_list_push(arena, &events); + *new_event = d_event_from_serialized_string(arena, event_srlzed); + } + else + { + break; + } + } + cond_var_broadcast(d_ctrl_state->c2u_ring_cv); + scratch_end(scratch); + ProfEnd(); + return events; +} + +//- rjf: entry point + +internal void +d_ctrl_thread__entry_point(void *p) +{ + ThreadNameF("ctrl_thread"); + ProfBeginFunction(); + DMN_CtrlCtx *ctrl_ctx = dmn_ctrl_begin(); + log_select(d_ctrl_state->ctrl_thread_log); + d_select_entity_ctx(&d_ctrl_state->ctrl_thread_entity_store->ctx); + + //- rjf: loop + Temp scratch = scratch_begin(0, 0); + for(;;) + { + temp_end(scratch); + log_scope_begin(); + + //- rjf: get next messages + D_MsgList msgs = d_u2c_pop_msgs(scratch.arena); + + //- rjf: process messages + DMN_CtrlExclusiveAccessScope + { + ins_atomic_u64_eval_assign(&d_ctrl_state->ctrl_thread_run_state, 1); + for(D_MsgNode *msg_n = msgs.first; msg_n != 0; msg_n = msg_n->next) + { + D_Msg *msg = &msg_n->v; + { + log_infof("user2ctrl_msg:{kind:\"%S\"}\n", d_string_from_msg_kind(msg->kind)); + } + + //- rjf: reset per-message state + ProfScope("reset per-message state") + { + arena_clear(d_ctrl_state->ctrl_thread_msg_process_arena); + d_ctrl_state->module_req_cache_slots_count = 4096; + d_ctrl_state->module_req_cache_slots = push_array(d_ctrl_state->ctrl_thread_msg_process_arena, D_ModuleReqCacheNode *, d_ctrl_state->module_req_cache_slots_count); + MemoryZeroStruct(&d_ctrl_state->msg_user_bp_touched_files); + MemoryZeroStruct(&d_ctrl_state->msg_user_bp_touched_symbols); + MemoryCopyArray(d_ctrl_state->exception_code_filters, msg->exception_code_filters); + d_ctrl_state->auto_download_debug_info = msg->auto_download_debug_info; + } + + //- rjf: gather all touched symbols by user breakpoints + { + Temp scratch = scratch_begin(0, 0); + for(D_BreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) + { + if(n->v.vaddr_expr.size == 0) + { + continue; + } + E_Parse addr_parse = e_push_parse_from_string(scratch.arena, n->v.vaddr_expr); + E_Parse cnd_parse = e_push_parse_from_string(scratch.arena, n->v.condition); + E_Expr *exprs[] = {addr_parse.expr, cnd_parse.expr}; + for EachElement(idx, exprs) + { + typedef struct ExprWalkTask ExprWalkTask; + struct ExprWalkTask + { + ExprWalkTask *next; + E_Expr *expr; + }; + ExprWalkTask start_task = {0, exprs[idx]}; + ExprWalkTask *first_task = &start_task; + for(ExprWalkTask *t = first_task; t != 0; t = t->next) + { + E_Expr *expr = t->expr; + if(expr->ref != &e_expr_nil) + { + expr = expr->ref; + } + if(expr->kind == E_ExprKind_LeafIdentifier) + { + str8_list_push(d_ctrl_state->ctrl_thread_msg_process_arena, &d_ctrl_state->msg_user_bp_touched_symbols, expr->string); + } + if(expr->next != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->next; + task->next = t->next; + t->next = task; + } + if(expr->first != &e_expr_nil) + { + ExprWalkTask *task = push_array(scratch.arena, ExprWalkTask, 1); + task->expr = expr->first; + task->next = t->next; + t->next = task; + } + } + } + } + scratch_end(scratch); + } + + //- rjf: gather all touched files by user breakpoints + for(D_BreakpointNode *n = msg->user_bps.first; n != 0; n = n->next) + { + if(n->v.file_path.size == 0) { continue; } + str8_list_push(d_ctrl_state->ctrl_thread_msg_process_arena, &d_ctrl_state->msg_user_bp_touched_files, n->v.file_path); + } + + //- rjf: process message + switch(msg->kind) + { + case D_MsgKind_Null: + case D_MsgKind_COUNT:{}break; + + //- rjf: target operations + case D_MsgKind_Launch: {d_ctrl_thread__launch (ctrl_ctx, msg);}break; + case D_MsgKind_Attach: {d_ctrl_thread__attach (ctrl_ctx, msg);}break; + case D_MsgKind_OpenCrashDump: {d_ctrl_thread__open_crash_dump (ctrl_ctx, msg);}break; + case D_MsgKind_Kill: {d_ctrl_thread__kill (ctrl_ctx, msg);}break; + case D_MsgKind_KillAll: {d_ctrl_thread__kill_all (ctrl_ctx, msg);}break; + case D_MsgKind_Detach: {d_ctrl_thread__detach (ctrl_ctx, msg);}break; + case D_MsgKind_Run: {d_ctrl_thread__run (ctrl_ctx, msg);}break; + case D_MsgKind_SingleStep: {d_ctrl_thread__single_step (ctrl_ctx, msg);}break; + + //- rjf: configuration + case D_MsgKind_SetUserEntryPoints: + { + arena_clear(d_ctrl_state->user_entry_point_arena); + MemoryZeroStruct(&d_ctrl_state->user_entry_points); + for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) + { + str8_list_push(d_ctrl_state->user_entry_point_arena, &d_ctrl_state->user_entry_points, n->string); + } + }break; + case D_MsgKind_SetModuleDebugInfoPath: + { + String8 path = msg->path; + D_Entity *module = d_entity_from_handle(msg->entity); + if(module != &d_entity_nil) + { + D_Entity *debug_info_path = d_entity_child_from_kind(module, D_EntityKind_DebugInfoPath); + DI_Key old_dbgi_key = di_key_from_path_timestamp(debug_info_path->string, debug_info_path->timestamp); + di_close(old_dbgi_key, 0); + MutexScopeW(d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + d_entity_equip_string(d_ctrl_state->ctrl_thread_entity_store, debug_info_path, path_normalized_from_string(scratch.arena, path)); + } + U64 new_dbgi_timestamp = properties_from_file_path(path).modified; + debug_info_path->timestamp = new_dbgi_timestamp; + DI_Key new_dbgi_key = di_key_from_path_timestamp(debug_info_path->string, new_dbgi_timestamp); + di_open(new_dbgi_key); + D_EventList evts = {0}; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_ModuleDebugInfoPathChange; + evt->entity = msg->entity; + evt->string = path; + evt->timestamp = new_dbgi_timestamp; + d_c2u_push_events(&evts); + } + }break; + case D_MsgKind_FreezeThread: + { + D_EventList evts = {0}; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_ThreadFrozen; + evt->entity = msg->entity; + d_c2u_push_events(&evts); + }break; + case D_MsgKind_ThawThread: + { + D_EventList evts = {0}; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_ThreadThawed; + evt->entity = msg->entity; + d_c2u_push_events(&evts); + }break; + } + } + ins_atomic_u64_eval_assign(&d_ctrl_state->ctrl_thread_run_state, 0); + } + ins_atomic_u64_inc_eval(&d_ctrl_state->run_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->reg_gen); + + //- rjf: update thread register cache + ProfScope("update thread register cache") + { + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + X64_RegBlock *blocks = push_array(scratch.arena, X64_RegBlock, threads.count); + { + for EachIndex(idx, threads.count) + { + Temp scratch = scratch_begin(0, 0); + d_cached_reg_block_from_thread(scratch.arena, threads.v[idx]->handle); + scratch_end(scratch); + } + } + } + + //- rjf: gather & output logs + d_ctrl_thread__end_and_flush_log(); + } + + scratch_end(scratch); + ProfEnd(); +} + +//- rjf: breakpoint resolution + +internal void +d_ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, D_EvalScope *eval_scope, D_Handle process, D_Handle module, D_BreakpointList *user_bps, DMN_TrapChunkList *traps_out) +{ + if(user_bps->first == 0) { return; } + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + Access *access = eval_scope->access; + D_Entity *module_entity = d_entity_from_handle(module); + D_Entity *debug_info_path_entity = d_entity_child_from_kind(module_entity, D_EntityKind_DebugInfoPath); + DMN_Handle process_dmn = d_dmn_from_handle(process); + DI_Key dbgi_key = d_dbgi_key_from_module(module_entity); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + U64 base_vaddr = module_entity->vaddr_range.min; + for(D_BreakpointNode *n = user_bps->first; n != 0; n = n->next) + { + D_Breakpoint *bp = &n->v; + + //- rjf: file:line-based breakpoints + if(bp->file_path.size != 0) + { + // rjf: unpack & normalize + TxtPt pt = bp->pt; + String8 filename = bp->file_path; + String8 filename_normalized = push_str8_copy(scratch.arena, filename); + for(U64 idx = 0; idx < filename_normalized.size; idx += 1) + { + filename_normalized.str[idx] = lower_from_char(filename_normalized.str[idx]); + filename_normalized.str[idx] = correct_slash_from_char(filename_normalized.str[idx]); + } + + // rjf: filename -> src_id + U32 src_id = 0; + { + RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); + if(mapptr != 0) + { + RDI_ParsedNameMap map = {0}; + rdi_parsed_from_name_map(rdi, mapptr, &map); + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, filename_normalized.str, filename_normalized.size); + if(node != 0) + { + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + src_id = ids[0]; + } + } + } + } + + // rjf: src_id * pt -> push + if(src_id != 0) + { + RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); + RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); + RDI_ParsedSourceLineMap line_map = {0}; + rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); + U32 voff_count = 0; + U64 *voffs = rdi_line_voffs_from_num(&line_map, pt.line, &voff_count); + for(U32 i = 0; i < voff_count; i += 1) + { + U64 vaddr = voffs[i] + base_vaddr; + DMN_Trap trap = {process_dmn, vaddr, (U64)bp}; + dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); + } + } + } + + //- rjf: expression-based breakpoints + else if(bp->vaddr_expr.size != 0) + { + String8 expr = bp->vaddr_expr; + E_Eval eval = e_eval_from_string(expr); + U64 vaddr = eval.value.u64; + if(eval.irtree.mode == E_Mode_Value) + { + vaddr = e_value_eval_from_eval(eval).value.u64; + } + if(vaddr != 0 || bp->flags != 0) + { + DMN_Trap trap = {process_dmn, vaddr, (U64)bp}; + trap.flags = d_dmn_trap_flags_from_breakpoint_flags(bp->flags); + trap.size = bp->size; + dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); + } + } + } + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__append_resolved_process_user_bp_traps(Arena *arena, D_EvalScope *eval_scope, D_Handle process, D_BreakpointList *user_bps, DMN_TrapChunkList *traps_out) +{ + DMN_Handle process_dmn = d_dmn_from_handle(process); + for(D_BreakpointNode *n = user_bps->first; n != 0; n = n->next) + { + D_Breakpoint *bp = &n->v; + if(bp->vaddr_expr.size != 0) + { + String8 expr = bp->vaddr_expr; + E_Value value = e_value_from_string(expr); + if(value.u64 != 0 || bp->flags != 0) + { + DMN_Trap trap = {process_dmn, value.u64, (U64)bp}; + trap.flags = d_dmn_trap_flags_from_breakpoint_flags(bp->flags); + trap.size = bp->size; + dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); + } + } + } +} + +internal void +d_ctrl_thread__append_program_defined_bp_traps(Arena *arena, D_Entity *bp, DMN_TrapChunkList *traps_out) +{ + D_Entity *process = bp->parent; + DMN_Handle process_dmn = d_dmn_from_handle(process->handle); + DMN_Trap trap = + { + .process = process_dmn, + .vaddr = bp->vaddr_range.min, + .id = ((U64)bp|bit64), + .flags = d_dmn_trap_flags_from_breakpoint_flags(bp->bp_flags), + .size = (U32)dim_1u64(bp->vaddr_range), + }; + dmn_trap_chunk_list_push(arena, traps_out, 256, &trap); +} + +//- rjf: module lifetime open/close work + +internal void +d_ctrl_thread__module_open(D_Handle process, D_Handle module, U64 base_vaddr, DMN_ModuleInfo *module_info) +{ + Temp scratch = scratch_begin(0,0); + + ////////////////////////////// + //- rjf: allocate / set up basic per-module info + // + Arena *arena = arena_alloc(); + String8 raddbg_data = d_data_from_process_vaddr_range(arena, process, shift_1u64(module_info->raddbg_info_voff_range, base_vaddr), 0); + + ////////////////////////////// + //- rjf: prepare unwind info + // + UWND_Unwinder unwinder = UWND_Unwinder_Null; + void *unwind_info_opaque = 0; + { + //- rjf: PE/x64 unwinder + if(dim_1u64(module_info->pe_intel_pdatas_vaddr_range) != 0) + { + unwinder = UWND_Unwinder_PEx64; + PE_X64_UWND_ModuleUnwindInfo *unwind_info = push_array(arena, PE_X64_UWND_ModuleUnwindInfo, 1); + { + U64 pdatas_count = dim_1u64(module_info->pe_intel_pdatas_vaddr_range) / sizeof(PE_IntelPdata); + String8 pdatas_data = d_data_from_process_vaddr_range(arena, process, module_info->pe_intel_pdatas_vaddr_range, 0); + pdatas_count = Min(pdatas_count, pdatas_data.size / sizeof(PE_IntelPdata)); + PE_IntelPdata *pdatas = (PE_IntelPdata *)pdatas_data.str; + unwind_info->pdatas = pdatas; + unwind_info->pdatas_count = pdatas_count; + } + unwind_info_opaque = unwind_info; + } + + //- rjf: .eh_frame unwinder + else if(dim_1u64(module_info->eh_frame_header_vaddr_range) != 0) + { + unwinder = UWND_Unwinder_EHFrame; + EH_UWND_ModuleUnwindInfo *unwind_info = push_array(arena, EH_UWND_ModuleUnwindInfo, 1); + { + String8 eh_frame_hdr_data = d_data_from_process_vaddr_range(arena, process, module_info->eh_frame_header_vaddr_range, 0); + unwind_info->ptr_ctx.pc_vaddr = module_info->eh_frame_header_vaddr_range.min; + unwind_info->ptr_ctx.data_vaddr = module_info->eh_frame_header_vaddr_range.min; + unwind_info->header = eh_parse_frame_hdr(eh_frame_hdr_data, byte_size_from_arch(module_info->arch), &unwind_info->ptr_ctx); + } + unwind_info_opaque = unwind_info; + } + } + + ////////////////////////////// + //- rjf: compute local symbol server cache path for this debug info + // + String8 local_symbol_server_cache_path = smsv_local_path_from_key(scratch.arena, str8_skip_last_slash(module_info->debug_info_path), module_info->debug_info_guid, module_info->debug_info_age); + + ////////////////////////////// + //- rjf: pick default initial debug info path + // + String8 initial_debug_info_path = {0}; + { + String8List candidates = {0}; + + // rjf: push module-embedded debug info paths, try both relative-to-exe & absolute + if(module_info->debug_info_path.size != 0) + { + PathStyle path_style = path_style_from_str8(module_info->debug_info_path); + if(path_style == PathStyle_Relative) + { + String8 module_image_folder = str8_chop_last_slash(module_info->module_path); + str8_list_pushf(scratch.arena, &candidates, "%S/%S", module_image_folder, module_info->debug_info_path); + } + str8_list_push(scratch.arena, &candidates, module_info->debug_info_path); + } + + // rjf: push heuristic-based debug info paths + { + String8 exe_path = module_info->module_path; + String8 exe_path_no_ext = str8_chop_last_dot(exe_path); + str8_list_pushf(scratch.arena, &candidates, "%S.pdb", exe_path_no_ext); + str8_list_pushf(scratch.arena, &candidates, "%S.pdb", exe_path); + str8_list_pushf(scratch.arena, &candidates, "%S.rdi", exe_path_no_ext); + str8_list_pushf(scratch.arena, &candidates, "%S.rdi", exe_path); + } + + // rjf: push local symbol server cache's path + if(local_symbol_server_cache_path.size != 0) + { + str8_list_push(scratch.arena, &candidates, local_symbol_server_cache_path); + } + + // rjf: pick first candidate that works + for EachNode(n, String8Node, candidates.first) + { + String8 candidate_path = n->string; + FileProperties props = properties_from_file_path(candidate_path); + if(props.modified != 0 && props.size != 0) + { + initial_debug_info_path = str8_copy(arena, path_normalized_from_string(scratch.arena, candidate_path)); + break; + } + } + } + + ////////////////////////////// + //- rjf: no found debug info path -> try to fall back on symbol server cache path. + // + // if it exists, we can just use it. if it doesn't, then we only want to pick it *if* + // automatic downloads are enabled. + // + if(initial_debug_info_path.size == 0 && d_ctrl_state->auto_download_debug_info && local_symbol_server_cache_path.size != 0) + { + initial_debug_info_path = str8_copy(arena, local_symbol_server_cache_path); + } + + ////////////////////////////// + //- rjf: write 1 at attachment marker, to signify attachment + // + if(module_info->raddbg_is_attached_marker_voff != 0) + { + U8 new_value = 1; + d_process_write_struct(process, base_vaddr + module_info->raddbg_is_attached_marker_voff, &new_value); + } + + ////////////////////////////// + //- rjf: fill info + // + D_ModuleInfo info = {0}; + { + info.entry_point_voff = module_info->entry_point_voff; + info.unwinder = unwinder; + info.unwind_info = unwind_info_opaque; + info.local_debug_info_path = initial_debug_info_path; + info.dbg_name = str8_copy(arena, str8_skip_last_slash(module_info->debug_info_path)); + info.dbg_guid = module_info->debug_info_guid; + info.dbg_age = module_info->debug_info_age; + info.raddbg_attached_marker_voff = module_info->raddbg_is_attached_marker_voff; + info.raddbg_data = raddbg_data; + } + + ////////////////////////////// + //- rjf: insert info into cache + // + { + D_ModuleInfoCache *cache = &d_ctrl_state->module_info_cache; + U64 hash = d_hash_from_handle(module); + U64 slot_idx = hash%cache->slots_count; + D_ModuleInfoCacheSlot *slot = &cache->slots[slot_idx]; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + MutexScopeW(stripe->rw_mutex) + { + D_ModuleInfoCacheNode *node = 0; + for EachNode(n, D_ModuleInfoCacheNode, slot->first) + { + if(d_handle_match(n->module, module)) + { + node = n; + break; + } + } + if(!node) + { + node = push_array(arena, D_ModuleInfoCacheNode, 1); + DLLPushBack(slot->first, slot->last, node); + node->module = module; + node->arena = arena; + node->v = info; + } + } + } + + scratch_end(scratch); +} + +internal void +d_ctrl_thread__module_close(D_Handle process, D_Handle module, U64 base_vaddr) +{ + DMN_Handle process_dmn = d_dmn_from_handle(process); + + ////////////////////////////// + //- rjf: evict module info from cache + // + U64 raddbg_attached_marker_voff = 0; + { + D_ModuleInfoCache *cache = &d_ctrl_state->module_info_cache; + U64 hash = d_hash_from_handle(module); + U64 slot_idx = hash%cache->slots_count; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + D_ModuleInfoCacheSlot *slot = &cache->slots[slot_idx]; + MutexScopeW(stripe->rw_mutex) for(;;) + { + D_ModuleInfoCacheNode *node = 0; + for(D_ModuleInfoCacheNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->module, module)) + { + node = n; + break; + } + } + if(node && access_pt_is_expired(&node->access_pt, .time = 0, .update_idxs = 0)) + { + raddbg_attached_marker_voff = node->v.raddbg_attached_marker_voff; + DLLRemove(slot->first, slot->last, node); + arena_release(node->arena); + break; + } + cond_var_wait_rw_w(stripe->cv, stripe->rw_mutex, max_U64); + } + } + + ////////////////////////////// + //- rjf: write 0 at attachment marker, to signify detachment + // + if(raddbg_attached_marker_voff != 0) + { + U8 new_value = 0; + d_process_write_struct(process, base_vaddr + raddbg_attached_marker_voff, &new_value); + } +} + +//- rjf: dump process closing work + +internal void +d_ctrl_thread__close_dump_process(D_MsgID msg_id, D_Handle process) +{ + // rjf: send debug event for process closing + { + Temp scratch = scratch_begin(0, 0); + D_EventList evts = {0}; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_EndProc; + evt->msg_id = msg_id; + evt->entity = process; + d_c2u_push_events(&evts); + scratch_end(scratch); + } + + // rjf: bump counters + ins_atomic_u64_inc_eval(&d_ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->reg_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->run_gen); + + // rjf: eliminate dump node from cache + { + D_DumpCache *cache = &d_ctrl_state->dump_cache; + U64 hash = d_hash_from_handle(process); + U64 slot_idx = hash%cache->slots_count; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + + // rjf: remove node + D_DumpNode *node = 0; + RWMutexScope(stripe->rw_mutex, 1) + { + for(D_DumpNode *n = cache->slots[slot_idx].first; n != 0; n = n->next) + { + if(d_handle_match(n->process, process)) + { + node = n; + break; + } + } + if(node != 0) + { + DLLRemove(cache->slots[slot_idx].first, cache->slots[slot_idx].last, node); + } + } + + // rjf: release node contents + if(node != 0) + { + for EachIndex(idx, node->modules_count) + { + file_map_view_close(node->modules[idx].map, node->modules[idx].base, r1u64(0, node->modules[idx].props.size)); + file_map_close(node->modules[idx].map); + file_close(node->modules[idx].file); + } + file_map_view_close(node->map, node->base, r1u64(0, node->props.size)); + file_map_close(node->map); + file_close(node->file); + arena_release(node->arena); + } + + // rjf: attach node to free list + if(node != 0) RWMutexScope(stripe->rw_mutex, 1) + { + node->next = (D_DumpNode *)stripe->free; + stripe->free = node; + } + } +} + +//- rjf: attached process running/event gathering + +internal DMN_Event * +d_ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, D_Msg *msg, DMN_RunCtrls *run_ctrls, D_Spoof *spoof) +{ + ProfBeginFunction(); + DMN_Event *event = push_array(arena, DMN_Event, 1); + Temp scratch = scratch_begin(&arena, 1); + D_EntityCtx *entity_ctx = &d_ctrl_state->ctrl_thread_entity_store->ctx; + + //- rjf: loop -> try to get event, run, repeat + U64 spoof_old_ip_value = 0; + ProfScope("loop -> try to get event, run, repeat") for(B32 got_event = 0; got_event == 0;) + { + //- rjf: get next event + ProfScope("get next event") + { + // rjf: grab first event + DMN_EventNode *next_event_node = d_ctrl_state->first_dmn_event_node; + + // rjf: log event + if(next_event_node != 0) + { + DMN_Event *ev = &next_event_node->v; + LogInfoNamedBlockF("dmn_event") + { + log_infof("kind: %S\n", dmn_event_kind_string_table[ev->kind]); + log_infof("exception_kind: %S\n", dmn_exception_kind_string_table[ev->exception_kind]); + log_infof("process: [%I64u]\n", ev->process.u64[0]); + log_infof("thread: [%I64u]\n", ev->thread.u64[0]); + log_infof("module: [%I64u]\n", ev->module.u64[0]); + log_infof("arch: %S\n", string_from_arch(ev->arch)); + log_infof("address: 0x%I64x\n", ev->address); + log_infof("string: \"%S\"\n", ev->string); + log_infof("ip_vaddr: 0x%I64x\n", ev->instruction_pointer); + } + } + + // rjf: determine if we should filter + B32 should_filter_event = 0; + if(next_event_node != 0) + { + DMN_Event *ev = &next_event_node->v; + switch(ev->kind) + { + default:{}break; + case DMN_EventKind_Exception: + { + // NOTE(rjf): first chance exceptions -> try ignoring + should_filter_event = (ev->exception_repeated == 0 && (spoof == 0 || ev->instruction_pointer != spoof->new_ip_value)); + + // rjf: exception code -> kind + D_ExceptionCodeKind code_kind = D_ExceptionCodeKind_Null; + if(should_filter_event) + { + for(D_ExceptionCodeKind k = (D_ExceptionCodeKind)0; k < D_ExceptionCodeKind_COUNT; k = (D_ExceptionCodeKind)(k+1)) + { + if(d_exception_code_kind_code_table[k] == ev->code) + { + code_kind = k; + break; + } + } + } + + // rjf: exception code kind -> shouldn't stop? if so, do not filter + if(should_filter_event) + { + B32 shouldnt_filter = !!(d_ctrl_state->exception_code_filters[code_kind/64] & (1ull<<(code_kind%64))); + if(should_filter_event && shouldnt_filter) + { + should_filter_event = 0; + } + } + + // rjf: special case: be gracious with ASan modules or symbols if + // they do their cute little 0xc0000005 exception trick... + if(!should_filter_event && ev->code == 0xc0000005 && + (spoof == 0 || ev->instruction_pointer != spoof->new_ip_value)) + { + Access *access = access_open(); + D_Handle process_handle = d_handle_from_dmn(D_MachineID_Local, ev->process); + D_Entity *process = d_entity_from_handle(process_handle); + D_Entity *module = &d_entity_nil; + for(D_Entity *child = process->first; child != &d_entity_nil; child = child->next) + { + if(child->kind == D_EntityKind_Module) + { + module = child; + break; + } + } + if(module != &d_entity_nil) + { + // rjf: determine base address of asan shadow space + U64 asan_shadow_base_vaddr = 0; + B32 asan_shadow_variable_exists_but_is_zero = 0; + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, max_U64); + RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_GlobalVariables); + { + RDI_ParsedNameMap map = {0}; + rdi_parsed_from_name_map(rdi, unparsed_map, &map); + String8 name = str8_lit("__asan_shadow_memory_dynamic_address"); + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + if(node != 0) + { + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + RDI_Symbol *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, ids[0]); + U64 global_var_voff = rdi_voff_from_location(global_var->location); + U64 global_var_vaddr = global_var_voff + module->vaddr_range.min; + Arch arch = process->arch; + U64 addr_size = bit_size_from_arch(arch)/8; + d_process_read(process_handle, r1u64(global_var_vaddr, global_var_vaddr+addr_size), &asan_shadow_base_vaddr); + asan_shadow_variable_exists_but_is_zero = (asan_shadow_base_vaddr == 0); + } + } + } + + // rjf: determine if this was a read/write to the shadow space + B32 violation_in_shadow_space = 0; + if(asan_shadow_base_vaddr != 0) + { + U64 asan_shadow_space_size = TB(128)/8; + if(asan_shadow_base_vaddr <= ev->address && ev->address < asan_shadow_base_vaddr+asan_shadow_space_size) + { + violation_in_shadow_space = 1; + } + } + + // rjf: filter event if this violation occurred in asan's shadow space + if(violation_in_shadow_space || asan_shadow_variable_exists_but_is_zero) + { + should_filter_event = 1; + } + } + + access_close(access); + } + }break; + } + } + + // rjf: good event & unfiltered? -> pop from queue & grab as result + if(next_event_node != 0 && !should_filter_event) + { + got_event = 1; + SLLQueuePop(d_ctrl_state->first_dmn_event_node, d_ctrl_state->last_dmn_event_node); + MemoryCopyStruct(event, &next_event_node->v); + event->string = push_str8_copy(arena, event->string); + run_ctrls->ignore_previous_exception = 1; + } + + // rjf: good event but filtered? pop from queue + if(next_event_node != 0 && should_filter_event) + { + SLLQueuePop(d_ctrl_state->first_dmn_event_node, d_ctrl_state->last_dmn_event_node); + run_ctrls->ignore_previous_exception = 0; + } + } + + //- rjf: no event -> dmn_ctrl_run for a new one + if(got_event == 0) ProfScope("no event -> dmn_ctrl_run for a new one") + { + // rjf: prep spoof + B32 do_spoof = (spoof != 0 && dmn_handle_match(run_ctrls->single_step_thread, dmn_handle_zero())); + U64 size_of_spoof = 0; + if(do_spoof) ProfScope("prep spoof") + { + D_Entity *spoof_process = d_entity_from_handle(spoof->process); + Arch arch = spoof_process->arch; + size_of_spoof = bit_size_from_arch(arch)/8; + d_process_read(spoof->process, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof_old_ip_value); + } + + // rjf: set spoof + if(do_spoof) ProfScope("set spoof") + { + d_process_write(spoof->process, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof->new_ip_value); + } + + // rjf: run for new events + ProfScope("run for new events") + { + LogInfoNamedBlockF("dmn_ctrl_run") + { + log_infof("single_step_thread: [0x%I64x]\n", run_ctrls->single_step_thread); + log_infof("ignore_previous_exception: %i\n", !!run_ctrls->ignore_previous_exception); + log_infof("run_entities_are_unfrozen: %i\n", !!run_ctrls->run_entities_are_unfrozen); + log_infof("run_entities_are_processes: %i\n", !!run_ctrls->run_entities_are_processes); + log_infof("run_entity_count: %I64u\n", run_ctrls->run_entity_count); + LogInfoNamedBlockF("run_entities") for(U64 idx = 0; idx < run_ctrls->run_entity_count; idx += 1) + { + log_infof("[0x%I64x]\n", run_ctrls->run_entities[idx]); + } + log_infof("trap_count: %I64u\n", run_ctrls->traps.trap_count); + LogInfoNamedBlockF("traps") for(DMN_TrapChunkNode *n = run_ctrls->traps.first; n != 0; n = n->next) + { + for(U64 idx = 0; idx < n->count; idx += 1) + { + log_infof("{process:[0x%I64x], vaddr:0x%I64x, id:0x%I64x}\n", n->v[idx].process.u64[0], n->v[idx].vaddr, n->v[idx].id); + } + } + } + + DMN_EventList events = dmn_ctrl_run(scratch.arena, ctrl_ctx, run_ctrls); + ins_atomic_u64_inc_eval(&d_ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->reg_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->run_gen); + for(DMN_EventNode *src_n = events.first; src_n != 0; src_n = src_n->next) + { + DMN_EventNode *dst_n = d_ctrl_state->free_dmn_event_node; + if(dst_n != 0) + { + SLLStackPop(d_ctrl_state->free_dmn_event_node); + } + else + { + dst_n = push_array(d_ctrl_state->dmn_event_arena, DMN_EventNode, 1); + } + MemoryCopyStruct(&dst_n->v, &src_n->v); + dst_n->v.string = push_str8_copy(d_ctrl_state->dmn_event_arena, dst_n->v.string); + if(src_n->v.module_info != &dmn_module_info_nil) + { + dst_n->v.module_info = push_array(d_ctrl_state->dmn_event_arena, DMN_ModuleInfo, 1); + MemoryCopyStruct(dst_n->v.module_info, src_n->v.module_info); + dst_n->v.module_info->module_path = str8_copy(d_ctrl_state->dmn_event_arena, dst_n->v.module_info->module_path); + dst_n->v.module_info->debug_info_path = str8_copy(d_ctrl_state->dmn_event_arena, dst_n->v.module_info->debug_info_path); + } + SLLQueuePush(d_ctrl_state->first_dmn_event_node, d_ctrl_state->last_dmn_event_node, dst_n); + } + } + + // rjf: unset spoof + if(do_spoof) ProfScope("unset spoof") + { + d_process_write(spoof->process, r1u64(spoof->vaddr, spoof->vaddr+size_of_spoof), &spoof_old_ip_value); + } + + // rjf: irrespective of what event came back, we should ALWAYS check the + // spoof's thread and see if it hit the spoof address, because we may have + // simply been sent other debug events first + if(spoof != 0) + { + D_Entity *thread = d_entity_from_handle(spoof->thread); + Arch arch = thread->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 arch_reg_block_size = arch_info->reg_block_size; + void *regs_block = push_array(scratch.arena, U8, arch_reg_block_size); + d_thread_read_reg_block(spoof->thread, regs_block); + U64 spoof_thread_rip = arch_ip_from_reg_block(arch_info, regs_block); + if(spoof_thread_rip == spoof->new_ip_value) + { + arch_reg_block_write_ip(arch_info, regs_block, spoof_old_ip_value); + d_thread_write_reg_block(spoof->thread, regs_block); + } + } + } + } + + //- rjf: push ctrl events associated with this demon event + D_EventList evts = {0}; + ProfScope("push ctrl events associated with this demon event") switch(event->kind) + { + default:{}break; + case DMN_EventKind_CreateProcess: + { + D_MsgID msg_id = 0; + for(D_Entity *entry = d_ctrl_state->ctrl_thread_entity_store->ctx.root->first; + entry != &d_entity_nil; + entry = entry->next) + { + if(entry->id == event->code && entry->kind == D_EntityKind_LaunchMsgID) + { + msg_id = entry->src_msg_id; + d_entity_release(d_ctrl_state->ctrl_thread_entity_store, entry); + break; + } + } + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_NewProc; + out_evt->msg_id = msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->arch = event->arch; + out_evt->entity_id = event->code; + out_evt->os = OperatingSystem_CURRENT; // TODO: operating system of the remote target machine + d_ctrl_state->process_counter += 1; + }break; + case DMN_EventKind_CreateThread: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_NewThread; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->arch = event->arch; + out_evt->entity_id = event->code; + out_evt->stack_base = event->stack_pointer; + out_evt->tls_root = event->tls_root_vaddr; + out_evt->rip_vaddr = event->instruction_pointer; + out_evt->string = event->string; + }break; + case DMN_EventKind_LoadModule: + { + D_Handle process_handle = d_handle_from_dmn(D_MachineID_Local, event->process); + D_Handle module_handle = d_handle_from_dmn(D_MachineID_Local, event->module); + D_Event *out_evt1 = d_event_list_push(scratch.arena, &evts); + String8 module_path = path_normalized_from_string(scratch.arena, event->string); + U64 exe_timestamp = properties_from_file_path(module_path).modified; + d_ctrl_thread__module_open(process_handle, module_handle, event->address, event->module_info); + out_evt1->kind = D_EventKind_NewModule; + out_evt1->msg_id = msg->msg_id; + out_evt1->entity = module_handle; + out_evt1->parent = process_handle; + out_evt1->arch = event->arch; + out_evt1->entity_id = event->code; + out_evt1->vaddr_rng = r1u64(event->address, event->address+event->size); + out_evt1->rip_vaddr = event->address; + out_evt1->timestamp = exe_timestamp; + out_evt1->string = module_path; + out_evt1->tls_index = event->module_info->tls_index; + out_evt1->tls_offset = event->module_info->tls_offset; + D_Event *out_evt2 = d_event_list_push(scratch.arena, &evts); + String8 initial_debug_info_path = d_initial_debug_info_path_from_module(scratch.arena, module_handle); + U64 debug_info_timestamp = properties_from_file_path(initial_debug_info_path).modified; + out_evt2->kind = D_EventKind_ModuleDebugInfoPathChange; + out_evt2->msg_id = msg->msg_id; + out_evt2->entity = module_handle; + out_evt2->parent = process_handle; + out_evt2->timestamp = debug_info_timestamp; + out_evt2->string = initial_debug_info_path; + DI_Key initial_dbgi_key = di_key_from_path_timestamp(initial_debug_info_path, debug_info_timestamp); + di_open(initial_dbgi_key); + }break; + case DMN_EventKind_ExitProcess: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_EndProc; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->u64_code = event->code; + d_ctrl_state->process_counter -= 1; + }break; + case DMN_EventKind_ExitThread: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_EndThread; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->entity_id = event->code; + }break; + case DMN_EventKind_UnloadModule: + ProfScope("unload module %.*s", str8_varg(event->string)) + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + D_Handle module_handle = d_handle_from_dmn(D_MachineID_Local, event->module); + D_Entity *module_ent = d_entity_from_handle(module_handle); + D_Entity *process_ent = d_process_from_entity(module_ent); + String8 module_path = event->string; + d_ctrl_thread__module_close(process_ent->handle, module_handle, module_ent->vaddr_range.min); + out_evt->kind = D_EventKind_EndModule; + out_evt->msg_id = msg->msg_id; + out_evt->entity = module_handle; + out_evt->string = module_path; + DI_Key dbgi_key = d_dbgi_key_from_module(module_ent); + di_close(dbgi_key, 0); + }break; + case DMN_EventKind_DebugString: + { + U64 num_strings = (event->string.size + d_ctrl_state->c2u_ring_max_string_size-1) / d_ctrl_state->c2u_ring_max_string_size; + for(U64 string_idx = 0; string_idx < num_strings; string_idx += 1) + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_DebugString; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->string = str8_substr(event->string, r1u64(string_idx*d_ctrl_state->c2u_ring_max_string_size, (string_idx+1)*d_ctrl_state->c2u_ring_max_string_size)); + } + }break; + case DMN_EventKind_SetThreadName: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_ThreadName; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->string = event->string; + out_evt->entity_id = event->code; + }break; + case DMN_EventKind_SetThreadColor: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_ThreadColor; + out_evt->msg_id = msg->msg_id; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->entity_id = event->code; + out_evt->rgba = event->user_data; + }break; + case DMN_EventKind_SetVAddrRangeNote: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_SetVAddrRangeNote; + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->msg_id = msg->msg_id; + out_evt->vaddr_rng = r1u64(event->address, event->address + event->size); + out_evt->string = event->string; + }break; + case DMN_EventKind_SetBreakpoint: + { + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_SetBreakpoint; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->vaddr_rng = r1u64(event->address, event->address+event->size); + out_evt->bp_flags = d_breakpoint_flags_from_dmn_trap_flags(event->flags); + }break; + case DMN_EventKind_UnsetBreakpoint: + { + // TODO(rjf): this needs to be reflected in the resolved trap list too!!!!!!!! + D_Event *out_evt = d_event_list_push(scratch.arena, &evts); + out_evt->kind = D_EventKind_UnsetBreakpoint; + out_evt->entity = d_handle_from_dmn(D_MachineID_Local, event->thread); + out_evt->parent = d_handle_from_dmn(D_MachineID_Local, event->process); + out_evt->vaddr_rng = r1u64(event->address, event->address+event->size); + out_evt->bp_flags = d_breakpoint_flags_from_dmn_trap_flags(event->flags); + }break; + } + d_c2u_push_events(&evts); + + //- rjf: if this is the first process in a session, clear the debug directory + // cache state + if(d_ctrl_state->process_counter == 1 && event->kind == DMN_EventKind_CreateProcess) + { + arena_clear(d_ctrl_state->dbg_dir_arena); + d_ctrl_state->dbg_dir_root = push_array(d_ctrl_state->dbg_dir_arena, D_DbgDirNode, 1); + } + + //- rjf: out of queued up demon events -> clear event arena + if(d_ctrl_state->first_dmn_event_node == 0) + { + d_ctrl_state->free_dmn_event_node = 0; + arena_clear(d_ctrl_state->dmn_event_arena); + } + + scratch_end(scratch); + ProfEnd(); + return(event); +} + +//- rjf: eval helpers + +internal U64 +d_ctrl_eval_space_gen(E_Space space) +{ + U64 result = 0; + switch(space.kind) + { + default:{}break; + case D_EvalSpaceKind_Entity: + { + result = d_mem_gen(); + }break; + } + return result; +} + +internal B32 +d_ctrl_eval_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 range) +{ + B32 result = 0; + switch(space.kind) + { + default:{}break; + + //- rjf: intra-entity reads (process memory or thread registers) + case D_EvalSpaceKind_Entity: + { + D_Entity *entity = (D_Entity *)space.u64_0; + switch(entity->kind) + { + default:{}break; + case D_EntityKind_Process: + { + U64 read_size = d_process_read(entity->handle, range, out); + result = (read_size == dim_1u64(range)); + }break; + case D_EntityKind_Thread: + { + Temp scratch = scratch_begin(0, 0); + ARCH_Info *arch_info = arch_info_from_arch(entity->arch); + U64 regs_size = arch_info->reg_block_size; + void *regs = d_cached_reg_block_from_thread(scratch.arena, entity->handle); + Rng1U64 legal_range = r1u64(0, regs_size); + Rng1U64 read_range = intersect_1u64(legal_range, range); + U64 read_size = dim_1u64(read_range); + MemoryCopy(out, (U8 *)regs + read_range.min, read_size); + result = (read_size == dim_1u64(range)); + scratch_end(scratch); + }break; + } + }break; + } + return result; +} + +//- rjf: control thread eval scopes + +internal D_EvalScope * +d_ctrl_thread__eval_scope_begin(Arena *arena, D_BreakpointList *user_bps, D_Entity *thread) +{ + ProfBeginFunction(); + D_EntityCtx *entity_ctx = &d_ctrl_state->ctrl_thread_entity_store->ctx; + D_EvalScope *scope = push_array(arena, D_EvalScope, 1); + scope->access = access_open(); + + ////////////////////////////// + //- rjf: unpack thread + // + Arch arch = thread->arch; + U64 thread_rip_vaddr = d_ip_from_thread(thread->handle); + D_Entity *process = d_process_from_entity(thread); + D_Entity *module = d_module_from_process_vaddr(process, thread_rip_vaddr); + U64 thread_rip_voff = d_voff_from_vaddr(module, thread_rip_vaddr); + + ////////////////////////////// + //- rjf: gather evaluation debug infos & modules + // + U64 eval_modules_count = Max(1, entity_ctx->entity_kind_counts[D_EntityKind_Module]); + E_Module *eval_modules = push_array(arena, E_Module, eval_modules_count); + E_Module *eval_modules_primary = &e_module_nil; + E_String2NumMap *eval_module_from_name_map = push_array(arena, E_String2NumMap, 1); + eval_module_from_name_map[0] = e_string2num_map_make(arena, eval_modules_count*2); + U64 eval_dbg_infos_count = Max(1, entity_ctx->entity_kind_counts[D_EntityKind_Module]); + E_DbgInfo *eval_dbg_infos = push_array(arena, E_DbgInfo, eval_dbg_infos_count); + E_DbgInfo *eval_dbg_infos_primary = &e_dbg_info_nil; + E_String2NumMap *eval_dbg_info_from_name_map = push_array(arena, E_String2NumMap, 1); + eval_dbg_info_from_name_map[0] = e_string2num_map_make(arena, eval_dbg_infos_count*2); + { + U64 eval_module_idx = 0; + U64 eval_dbg_info_idx = 0; + for(D_Entity *machine = entity_ctx->root->first; + machine != &d_entity_nil; + machine = machine->next) + { + if(machine->kind != D_EntityKind_Machine) { continue; } + for(D_Entity *process = machine->first; + process != &d_entity_nil; + process = process->next) + { + if(process->kind != D_EntityKind_Process) { continue; } + for(D_Entity *mod = process->first; + mod != &d_entity_nil; + mod = mod->next) + { + if(mod->kind != D_EntityKind_Module) { continue; } + DI_Key dbgi_key = d_dbgi_key_from_module(mod); + + //- rjf: try to obtain this module's RDI + RDI_Parsed *rdi = di_rdi_from_key(scope->access, dbgi_key, 0, 0); + + //- rjf: if this RDI is not yet ready => determine if we need to wait for it + // + // (we *always* wait for the initial module) + // + B32 rdi_is_necessary = 1; + if(user_bps->count == 0) + { + rdi_is_necessary = 0; + } + else if(rdi == &rdi_parsed_nil) ProfScope("determine if RDI is necessary") + { + // rjf: find cached result + U64 hash = d_hash_from_handle(mod->handle); + U64 slot_idx = hash%d_ctrl_state->module_req_cache_slots_count; + D_ModuleReqCacheNode *slot = d_ctrl_state->module_req_cache_slots[slot_idx]; + D_ModuleReqCacheNode *node = 0; + for(D_ModuleReqCacheNode *n = slot; n != 0; n = n->next) + { + if(d_handle_match(n->module, mod->handle)) + { + node = n; + break; + } + } + + // rjf: cached? -> take cached result + if(node != 0) + { + rdi_is_necessary = node->required; + } + + // rjf: not cached -> compute & store + else ProfScope("cache miss") + { + D_Entity *debug_info_path = d_entity_child_from_kind(mod, D_EntityKind_DebugInfoPath); + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, debug_info_path->string); + ProfScope("determine if %.*s is necessary", str8_varg(debug_info_path->string)) + { + //- rjf: determine if file is PDB + B32 file_is_pdb = 0; + if(!file_is_pdb) + { + U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; + file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); + if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) + { + file_is_pdb = 1; + } + } + if(!file_is_pdb) + { + U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; + file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); + if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) + { + file_is_pdb = 1; + } + } + + //- rjf: file is PDB -> do thin parse & lookup of all breakpoint files/symbols. + // if any are found in the PDB, then this RDI is necessary. + if(file_is_pdb) + { + FileProperties props = properties_from_file(file); + FileMap map = file_map_open(AccessFlag_Read, file); + void *file_base = file_map_view_open(map, AccessFlag_Read, r1u64(0, props.size)); + String8 file_data = str8(file_base, props.size); + { + rdi_is_necessary = pdb_has_symbol_or_file_ref(file_data, d_ctrl_state->msg_user_bp_touched_symbols, d_ctrl_state->msg_user_bp_touched_files); + } + file_map_view_close(map, file_base, r1u64(0, props.size)); + file_map_close(map); + } + } + file_close(file); + node = push_array(d_ctrl_state->ctrl_thread_msg_process_arena, D_ModuleReqCacheNode, 1); + node->next = slot; + d_ctrl_state->module_req_cache_slots[slot_idx] = node; + node->module = mod->handle; + node->required = rdi_is_necessary; + } + } + + //- rjf: if this RDI is necessary, but we do not have it => wait for it forever + if(rdi == &rdi_parsed_nil && rdi_is_necessary) ProfScope("RDI is necessary -> wait") + { + rdi = di_rdi_from_key(scope->access, dbgi_key, 1, max_U64); + } + + //- rjf: fill debug info + String8 debug_info_path = d_entity_child_from_kind(mod, D_EntityKind_DebugInfoPath)->string; + eval_dbg_infos[eval_dbg_info_idx].dbgi_key = dbgi_key; + eval_dbg_infos[eval_dbg_info_idx].rdi = rdi; + eval_dbg_infos[eval_dbg_info_idx].name = debug_info_path; + if(mod == module) + { + eval_dbg_infos_primary = &eval_dbg_infos[eval_dbg_info_idx]; + } + e_string2num_map_insert(arena, eval_dbg_info_from_name_map, debug_info_path, eval_dbg_info_idx+1); + e_string2num_map_insert(arena, eval_dbg_info_from_name_map, str8_skip_last_slash(debug_info_path), eval_dbg_info_idx+1); + eval_dbg_info_idx += 1; + + //- rjf: fill evaluation module info + eval_modules[eval_module_idx].arch = arch; + eval_modules[eval_module_idx].dbg_info_num= (U32)eval_dbg_info_idx; + eval_modules[eval_module_idx].vaddr_range = mod->vaddr_range; + eval_modules[eval_module_idx].space = e_space_make(D_EvalSpaceKind_Entity); + eval_modules[eval_module_idx].space.u64_0 = (U64)process; + eval_modules[eval_module_idx].name = mod->string; + if(mod == module) + { + eval_modules_primary = &eval_modules[eval_module_idx]; + } + e_string2num_map_insert(arena, eval_module_from_name_map, mod->string, eval_module_idx+1); + e_string2num_map_insert(arena, eval_module_from_name_map, str8_skip_last_slash(mod->string), eval_module_idx+1); + eval_module_idx += 1; + } + } + } + } + + ////////////////////////////// + //- rjf: select evaluation cache + // + e_select_cache(d_ctrl_state->ctrl_thread_eval_cache); + + ////////////////////////////// + //- rjf: build base evaluation context + // + { + E_BaseCtx *ctx = &scope->base_ctx; + + //- rjf: fill instruction pointer info + ctx->thread_ip_voff = thread_rip_voff; + ctx->thread_arch = thread->arch; + ctx->thread_reg_space = e_space_make(D_EvalSpaceKind_Entity); + ctx->thread_reg_space.u64_0 = (U64)thread; + ctx->thread_process_space = e_space_make(D_EvalSpaceKind_Entity); + ctx->thread_process_space.u64_0 = (U64)process; + + //- rjf: fill debug infos + ctx->dbg_infos = eval_dbg_infos; + ctx->dbg_infos_count = eval_dbg_infos_count; + ctx->primary_dbg_info = eval_dbg_infos_primary; + ctx->dbg_info_from_name_map = eval_dbg_info_from_name_map; + + //- rjf: fill modules + ctx->modules = eval_modules; + ctx->modules_count = eval_modules_count; + ctx->primary_module = eval_modules_primary; + ctx->module_from_name_map = eval_module_from_name_map; + + //- rjf: fill space hooks + ctx->space_gen = d_ctrl_eval_space_gen; + ctx->space_read = d_ctrl_eval_space_read; + } + e_select_base_ctx(&scope->base_ctx); + + ////////////////////////////// + //- rjf: build IR evaluation context + // + { + E_IRCtx *ctx = &scope->ir_ctx; + ctx->regs_map = d_string2reg_from_arch(arch); + ctx->locals_map = e_push_locals_map_from_rdi_voff(arena, eval_dbg_infos_primary->rdi, thread_rip_voff); + ctx->member_map = e_push_member_map_from_rdi_voff(arena, eval_dbg_infos_primary->rdi, thread_rip_voff); + ctx->macro_map = push_array(arena, E_String2ExprMap, 1); + ctx->macro_map[0] = e_string2expr_map_make(arena, 512); + ctx->auto_hook_map = push_array(arena, E_AutoHookMap, 1); + ctx->auto_hook_map[0] = e_auto_hook_map_make(arena, 512); + } + e_select_ir_ctx(&scope->ir_ctx); + + ////////////////////////////// + //- rjf: build eval interpretation context + // + { + E_InterpretCtx *ctx = &scope->interpret_ctx; + ctx->primary_space = eval_modules_primary->space; + ctx->reg_arch = eval_modules_primary->arch; + ctx->reg_space = e_space_make(D_EvalSpaceKind_Entity); + ctx->reg_space.u64_0 = (U64)thread; + ctx->module_base = push_array(arena, U64, 1); + ctx->module_base[0]= module->vaddr_range.min; + ctx->frame_base = push_array(arena, U64, 1); + // TODO(rjf): need to compute this out here somehow... ctx->frame_base[0] = ; + ctx->tls_base = push_array(arena, U64, 1); + // TODO: compute CFA + ctx->cfa = 0; + } + e_select_interpret_ctx(&scope->interpret_ctx, eval_dbg_infos_primary->rdi, thread_rip_voff); + + ProfEnd(); + return scope; +} + +internal void +d_ctrl_thread__eval_scope_end(D_EvalScope *scope) +{ + access_close(scope->access); +} + +//- rjf: log flusher + +internal void +d_ctrl_thread__end_and_flush_log(void) +{ + Temp scratch = scratch_begin(0, 0); + LogScopeResult log = log_scope_end(scratch.arena); + append_data_to_file_path(d_ctrl_state->ctrl_thread_log_path, log.strings[LogMsgKind_Info]); + if(log.strings[LogMsgKind_UserError].size != 0) + { + D_EventList evts = {0}; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_Error; + evt->string = log.strings[LogMsgKind_UserError]; + d_c2u_push_events(&evts); + } + scratch_end(scratch); +} + +//- rjf: msg kind implementations + +internal void +d_ctrl_thread__launch(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + Temp scratch = scratch_begin(0, 0); + + //- rjf: produce full stdout/stderr/stdin paths + String8 stdout_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stdout_path, msg->path); + String8 stdin_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stdin_path, msg->path); + String8 stderr_path = path_absolute_dst_from_relative_dst_src(scratch.arena, msg->stderr_path, msg->path); + + //- rjf: obtain stdout/stderr/stdin handles + File stdout_handle = {0}; + File stderr_handle = {0}; + File stdin_handle = {0}; + if(stdout_path.size != 0) + { + File f = file_open(AccessFlag_Write|AccessFlag_Read, stdout_path); + file_close(f); + stdout_handle = file_open(AccessFlag_Write|AccessFlag_Append|AccessFlag_ShareRead|AccessFlag_ShareWrite|AccessFlag_Inherited, msg->stdout_path); + } + if(stderr_path.size != 0) + { + File f = file_open(AccessFlag_Write|AccessFlag_Read, stderr_path); + file_close(f); + stderr_handle = file_open(AccessFlag_Write|AccessFlag_Append|AccessFlag_ShareRead|AccessFlag_ShareWrite|AccessFlag_Inherited, msg->stderr_path); + } + if(stdin_path.size != 0) + { + stdin_handle = file_open(AccessFlag_Read|AccessFlag_ShareRead|AccessFlag_ShareWrite|AccessFlag_Inherited, stdin_path); + } + + //- rjf: launch + ProcessLaunchParams params = {0}; + { + params.cmd_line = msg->cmd_line_string_list; + params.path = msg->path; + params.env = msg->env_string_list; + params.inherit_env = msg->env_inherit; + params.debug_subprocesses = msg->debug_subprocesses; + params.stdout_file = stdout_handle; + params.stderr_file = stderr_handle; + params.stdin_file = stdin_handle; + } + U32 id = dmn_ctrl_launch(ctrl_ctx, ¶ms); + + //- rjf: close stdout/stderr/stdin files + file_close(stdout_handle); + file_close(stderr_handle); + file_close(stdin_handle); + + //- rjf: record (id -> entry points), and (id -> msg_id) so that we know custom entry points for this PID + D_EntityCtxRWStore *entity_ctx_rw_store = d_ctrl_state->ctrl_thread_entity_store; + MutexScopeW(d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) + { + { + String8 string = n->string; + D_Entity *entry = d_entity_alloc(entity_ctx_rw_store, entity_ctx_rw_store->ctx.root, D_EntityKind_EntryPoint, Arch_Null, d_handle_zero(), (U64)id); + d_entity_equip_string(entity_ctx_rw_store, entry, string); + } + { + D_Entity *entry = d_entity_alloc(entity_ctx_rw_store, entity_ctx_rw_store->ctx.root, D_EntityKind_LaunchMsgID, Arch_Null, d_handle_zero(), (U64)id); + entry->src_msg_id = msg->msg_id; + } + } + } + + scratch_end(scratch); +} + +internal void +d_ctrl_thread__attach(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + + //- rjf: attach + B32 attach_successful = dmn_ctrl_attach(ctrl_ctx, msg->entity_id); + + //- rjf: run to handshake + if(attach_successful) + { + DMN_Handle unfrozen_process = {0}; + DMN_RunCtrls run_ctrls = {0}; + run_ctrls.run_entities_are_unfrozen = 1; + run_ctrls.run_entities_are_processes = 1; + for(B32 done = 0; done == 0;) + { + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_CreateProcess: + { + unfrozen_process = event->process; + run_ctrls.run_entities = &unfrozen_process; + run_ctrls.run_entity_count = 1; + }break; + case DMN_EventKind_Halt: + case DMN_EventKind_Exception: + case DMN_EventKind_Error: + case DMN_EventKind_HandshakeComplete: + { + done = 1; + }break; + } + } + } + + //- rjf: record stop + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = D_EventCause_Finished; + event->msg_id = msg->msg_id; + event->entity_id = !!attach_successful * msg->entity_id; + d_c2u_push_events(&evts); + } + + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__open_crash_dump(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + Temp scratch = scratch_begin(0, 0); + + //- rjf: unpack path + String8 path = msg->path; + File file = file_open(AccessFlag_Read, path); + FileProperties props = properties_from_file(file); + FileMap map = file_map_open(AccessFlag_Read, file); + void *base = file_map_view_open(map, AccessFlag_Read, r1u64(0, props.size)); + String8 data = str8(base, base ? props.size : 0); + + //- rjf: try to parse file data as a dump file, extract abstracted (over format) dump info + B32 stored = 0; + D_EventList evts = {0}; + Arena *arena = 0; + D_DumpMemoryRange *memory_ranges = 0; + U64 memory_ranges_count = 0; + D_DumpThread *dump_threads = 0; + U64 dump_threads_count = 0; + D_DumpModule *dump_modules = 0; + U64 dump_modules_count = 0; + D_Handle process = {0}; + Arch process_arch = Arch_Null; + OperatingSystem process_os = OperatingSystem_Null; + { + //- rjf: try minidump parse -> construct events for entity creation + { + MDMP_Header header = {0}; + str8_deserial_read_struct(data, 0, &header); + if(header.magic == MDMP_MAGIC) + { + stored = 1; + arena = arena_alloc(); + + // rjf: extract directories + U64 directories_count = 0; + MDMP_Directory *directories = 0; + { + U64 directories_foff = header.stream_directory_foff; + if(directories_foff < data.size) + { + U64 max_directories_count = (data.size - directories_foff) / sizeof(MDMP_Directory); + directories_count = Min(header.number_of_streams, max_directories_count); + directories = (MDMP_Directory *)(data.str + directories_foff); + } + } + + // rjf: gather specific directories + MDMP_SystemInfo *system_info = 0; + MDMP_Thread *threads = 0; + U64 threads_count = 0; + MDMP_Module *modules = 0; + U64 modules_count = 0; + MDMP_MemoryDescriptor32 *memories = 0; + U64 memories_count = 0; + MDMP_MemoryDescriptor64 *memories64 = 0; + U64 memories64_count = 0; + U64 memories64_base_foff = 0; + { + for EachIndex(idx, directories_count) + { + MDMP_Directory *dir = &directories[idx]; + switch(dir->stream_kind) + { + default:{}break; + case MDMP_StreamKind_SystemInfo: + if(data.str + dir->location.foff + dir->location.data_size < data.str + data.size) + { + system_info = (MDMP_SystemInfo *)(data.str + dir->location.foff); + }break; + case MDMP_StreamKind_ThreadList: + { + U32 threads_count_32 = 0; + U64 off = dir->location.foff; + off += str8_deserial_read_struct(data, off, &threads_count_32); + U64 threads_count_max = (data.size - off) / sizeof(MDMP_Thread); + threads = (MDMP_Thread *)(data.str + off); + threads_count = Min(threads_count_32, threads_count_max); + }break; + case MDMP_StreamKind_ModuleList: + { + U32 modules_count_32 = 0; + U64 off = dir->location.foff; + off += str8_deserial_read_struct(data, off, &modules_count_32); + U64 modules_count_max = (data.size - off) / sizeof(MDMP_Module); + modules = (MDMP_Module *)(data.str + off); + modules_count = Min(modules_count_32, modules_count_max); + }break; + case MDMP_StreamKind_MemoryList: + { + U32 memories_count_32 = 0; + U64 off = dir->location.foff; + off += str8_deserial_read_struct(data, off, &memories_count_32); + U64 memories_count_max = (data.size - off) / sizeof(MDMP_MemoryDescriptor32); + memories = (MDMP_MemoryDescriptor32 *)(data.str + off); + memories_count = Min(memories_count_32, memories_count_max); + }break; + case MDMP_StreamKind_Memory64List: + { + U64 memories64_count = 0; + U64 off = dir->location.foff; + off += str8_deserial_read_struct(data, off, &memories64_count); + off += str8_deserial_read_struct(data, off, &memories64_base_foff); + U64 memories64_count_max = (data.size - off) / sizeof(MDMP_MemoryDescriptor64); + memories64 = (MDMP_MemoryDescriptor64 *)(data.str + off); + memories64_count = Min(memories64_count, memories64_count_max); + }break; + } + } + } + + // rjf: gather memory ranges + memory_ranges_count = memories_count + memories64_count; + memory_ranges = push_array(arena, D_DumpMemoryRange, memory_ranges_count); + for EachIndex(idx, memories_count) + { + memory_ranges[idx].base_vaddr = memories[idx].start_of_memory_range; + memory_ranges[idx].foff_range = r1u64(memories[idx].memory_location.foff, memories[idx].memory_location.foff+memories[idx].memory_location.data_size); + } + { + U64 foff = memories64_base_foff; + for EachIndex(idx, memories64_count) + { + memory_ranges[memories_count + idx].base_vaddr = memories64[memories_count + idx].start_of_memory_range; + memory_ranges[memories_count + idx].foff_range = r1u64(foff, foff+memories64[idx].size); + foff += memories64[idx].size; + } + } + + // rjf: system info -> arch + if(system_info != 0) switch(system_info->processor_architecture) + { + default:{}break; + case MDMP_Arch_x86:{process_arch = Arch_x86;}break; + case MDMP_Arch_x64:{process_arch = Arch_x64;}break; + } + + // rjf: create process handle + d_ctrl_state->ctrl_thread_dump_handle_id_gen += 1; + process = d_dump_handle_make(D_MachineID_Local, d_ctrl_state->ctrl_thread_dump_handle_id_gen); + process_os = OperatingSystem_Windows; // NOTE(rjf): minidumps are always windows + + // rjf: gather threads + dump_threads_count = threads_count; + dump_threads = push_array(arena, D_DumpThread, dump_threads_count); + for EachIndex(idx, threads_count) + { + d_ctrl_state->ctrl_thread_dump_handle_id_gen += 1; + MDMP_Thread *thread = &threads[idx]; + D_Handle thread_handle = d_dump_handle_make(D_MachineID_Local, d_ctrl_state->ctrl_thread_dump_handle_id_gen); + dump_threads[idx].thread_handle = thread_handle; + dump_threads[idx].id = thread->id; + dump_threads[idx].context_foff = thread->thread_context.foff; + } + + // rjf: gather modules + dump_modules_count = modules_count; + dump_modules = push_array(arena, D_DumpModule, dump_modules_count); + for EachIndex(idx, modules_count) + { + // rjf: unpack module + MDMP_Module *module = &modules[idx]; + Rng1U64 vaddr_range = r1u64(module->image_base_vaddr, module->image_base_vaddr + module->image_size); + String8 module_name = {0}; + { + U64 module_name_off = module->module_name_foff; + U64 off = module_name_off; + U32 module_name_size = 0; + off += str8_deserial_read_struct(data, off, &module_name_size); + String8 module_name_raw_data = str8_prefix(str8_skip(data, off), module_name_size); + String16 module_name_16 = str16((U16 *)module_name_raw_data.str, module_name_raw_data.size / sizeof(U16)); + module_name = str8_from_16(scratch.arena, module_name_16); + module_name = path_normalized_from_string(scratch.arena, module_name); + } + + // rjf: open module file + File module_file = file_open(AccessFlag_Read|AccessFlag_ShareRead, module_name); + FileProperties module_props = properties_from_file(module_file); + FileMap module_map = file_map_open(AccessFlag_Read, module_file); + void *module_base = file_map_view_open(module_map, AccessFlag_Read, r1u64(0, module_props.size)); + + // rjf: store + d_ctrl_state->ctrl_thread_dump_handle_id_gen += 1; + dump_modules[idx].module_handle = d_dump_handle_make(D_MachineID_Local, d_ctrl_state->ctrl_thread_dump_handle_id_gen); + dump_modules[idx].vaddr_range = vaddr_range; + dump_modules[idx].path = str8_copy(arena, module_name); + dump_modules[idx].file = module_file; + dump_modules[idx].props = module_props; + dump_modules[idx].map = module_map; + dump_modules[idx].base = module_base; + } + } + } + } + + //- rjf: record process creation + { + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_NewProc; + evt->msg_id = msg->msg_id; + evt->entity = process; + evt->arch = process_arch; + evt->os = process_os; + evt->string = path; + } + + //- rjf: store the dump parse artifacts in the dump cache, otherwise release + if(stored) + { + U64 hash = d_hash_from_handle(process); + D_DumpCache *cache = &d_ctrl_state->dump_cache; + U64 slot_idx = hash%cache->slots_count; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + RWMutexScope(stripe->rw_mutex, 1) + { + D_DumpNode *node = stripe->free; + if(node != 0) + { + stripe->free = node->next; + } + else + { + node = push_array(stripe->arena, D_DumpNode, 1); + } + DLLPushBack(cache->slots[slot_idx].first, cache->slots[slot_idx].last, node); + node->process = process; + node->file = file; + node->props = props; + node->map = map; + node->base = base; + node->arena = arena; + node->memory_ranges = memory_ranges; + node->memory_ranges_count = memory_ranges_count; + node->threads = dump_threads; + node->threads_count = dump_threads_count; + node->modules = dump_modules; + node->modules_count = dump_modules_count; + } + } + else + { + if(arena != 0) + { + arena_release(arena); + } + file_map_view_close(map, base, r1u64(0, props.size)); + file_map_close(map); + file_close(file); + } + + //- rjf: record thread creation + for EachIndex(idx, dump_threads_count) + { + D_Handle thread_handle = dump_threads[idx].thread_handle; + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_NewThread; + evt->msg_id = msg->msg_id; + evt->entity = thread_handle; + evt->parent = process; + evt->arch = process_arch; + evt->entity_id = dump_threads[idx].id; + // TODO(rjf): evt->stack_base = ; (use thread->stack) + // TODO(rjf): evt->tls_root = ; (use thread->thread_context) + } + + //- rjf: record module loading + for EachIndex(idx, dump_modules_count) + { + // rjf: open module + D_Handle module_handle = dump_modules[idx].module_handle; + Rng1U64 vaddr_range = dump_modules[idx].vaddr_range; +#if 0 + // TODO(rjf): I don't think we can use this demon module info path here + DMN_ModuleInfo module_info = {0}; + d_ctrl_thread__module_open(process, module_handle, vaddr_range.min, dump_modules[idx].path, r1u64(0, 0), 0); +#endif + // rjf: open debug info + String8 initial_debug_info_path = d_initial_debug_info_path_from_module(scratch.arena, module_handle); + U64 debug_info_timestamp = properties_from_file_path(initial_debug_info_path).modified; + DI_Key initial_dbgi_key = di_key_from_path_timestamp(initial_debug_info_path, debug_info_timestamp); + di_open(initial_dbgi_key); + + // rjf: push module load event + { + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_NewModule; + evt->msg_id = msg->msg_id; + evt->entity = module_handle; + evt->parent = process; + evt->arch = process_arch; + evt->vaddr_rng = vaddr_range; + evt->string = dump_modules[idx].path; + // TODO(rjf): evt->stack_base = ; (use thread->stack) + // TODO(rjf): evt->tls_root = ; (use thread->thread_context) + } + + // rjf: push debug info initial path set event + { + D_Event *evt = d_event_list_push(scratch.arena, &evts); + evt->kind = D_EventKind_ModuleDebugInfoPathChange; + evt->msg_id = msg->msg_id; + evt->entity = module_handle; + evt->parent = process; + evt->timestamp = debug_info_timestamp; + evt->string = initial_debug_info_path; + } + } + + //- rjf: record stop + { + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = D_EventCause_Finished; + event->msg_id = msg->msg_id; + } + + //- rjf: push all events from the parse + ins_atomic_u64_inc_eval(&d_ctrl_state->mem_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->reg_gen); + ins_atomic_u64_inc_eval(&d_ctrl_state->run_gen); + d_c2u_push_events(&evts); + + scratch_end(scratch); +} + +internal void +d_ctrl_thread__kill(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + B32 kill_worked = 0; + D_EventCause cause = D_EventCause_Finished; + switch((D_ControllerKindEnum)msg->entity.controller_kind) + { + //- rjf: demon kills + case D_ControllerKind_Demon: + { + DMN_Handle process = d_dmn_from_handle(msg->entity); + U32 exit_code = msg->exit_code; + + //- rjf: send kill + kill_worked = dmn_ctrl_kill(ctrl_ctx, process, exit_code); + + //- rjf: wait for process to be dead + if(kill_worked) + { + DMN_RunCtrls run_ctrls = {0}; + run_ctrls.run_entities_are_unfrozen = 1; + run_ctrls.run_entities_are_processes = 1; + run_ctrls.run_entities = &process; + run_ctrls.run_entity_count = 1; + for(B32 done = 0; done == 0;) + { + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_ExitProcess: + if(dmn_handle_match(event->process, process)) + { + done = 1; + }break; + case DMN_EventKind_Error:{done = 1; cause = D_EventCause_Error;}break; + case DMN_EventKind_Halt: {done = 1; cause = D_EventCause_InterruptedByHalt;}break; + } + } + } + }break; + + //- rjf: dump kills + case D_ControllerKind_Dump: + { + kill_worked = 1; + d_ctrl_thread__close_dump_process(msg->msg_id, msg->entity); + }break; + } + + //- rjf: record stop + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = cause; + event->msg_id = msg->msg_id; + if(kill_worked) + { + event->entity = msg->entity; + } + d_c2u_push_events(&evts); + } + + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__kill_all(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + U32 exit_code = msg->exit_code; + + //- rjf: gather all currently existing processes + D_EntityArray initial_processes = d_entity_array_from_kind(D_EntityKind_Process); + typedef struct Task Task; + struct Task + { + Task *next; + Task *prev; + D_Entity *process; + }; + Task *first_task = 0; + Task *last_task = 0; + for EachIndex(idx, initial_processes.count) + { + D_Entity *entity = initial_processes.v[idx]; + Task *t = push_array(scratch.arena, Task, 1); + t->process = entity; + DLLPushBack(first_task, last_task, t); + } + + //- rjf: kill processes as needed, wait for all processes to be dead + D_EventCause cause = D_EventCause_Finished; + if(first_task != 0) + { + DMN_RunCtrls run_ctrls = {0}; + for(B32 done = 0; !done;) + { + // rjf: kill remaining processes + for(Task *t = first_task, *next = 0; t != 0; t = next) + { + next = t->next; + B32 kill_worked = 0; + switch((D_ControllerKindEnum)t->process->handle.controller_kind) + { + case D_ControllerKind_Demon:{kill_worked = dmn_ctrl_kill(ctrl_ctx, d_dmn_from_handle(t->process->handle), exit_code);}break; + case D_ControllerKind_Dump: {kill_worked = 1; d_ctrl_thread__close_dump_process(msg->msg_id, t->process->handle);}break; + } + if(kill_worked) + { + DLLRemove(first_task, last_task, t); + } + } + + // rjf: get next event + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + + // rjf: process event + switch(event->kind) + { + default:{}break; + case DMN_EventKind_CreateProcess: + { + D_Entity *new_process = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->process)); + Task *t = push_array(scratch.arena, Task, 1); + t->process = new_process; + DLLPushBack(first_task, last_task, t); + }break; + case DMN_EventKind_Error:{done = 1; cause = D_EventCause_Error;}break; + case DMN_EventKind_Halt: {done = 1; cause = D_EventCause_InterruptedByHalt;}break; + } + + // rjf: end if all processes are gone + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); + if(processes.count == 0) + { + done = 1; + } + } + } + + //- rjf: record stop + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = cause; + event->msg_id = msg->msg_id; + d_c2u_push_events(&evts); + } + + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__detach(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + DMN_Handle process = d_dmn_from_handle(msg->entity); + + //- rjf: detach + B32 detach_worked = dmn_ctrl_detach(ctrl_ctx, process); + + //- rjf: wait for process to be dead + if(detach_worked) + { + DMN_RunCtrls run_ctrls = {0}; + run_ctrls.run_entities_are_unfrozen = 1; + run_ctrls.run_entities_are_processes = 1; + run_ctrls.run_entities = &process; + run_ctrls.run_entity_count = 1; + for(B32 done = 0; done == 0;) + { + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + if(event->kind == DMN_EventKind_ExitProcess && dmn_handle_match(event->process, process)) + { + done = 1; + } + if(event->kind == DMN_EventKind_Halt) + { + done = 1; + } + } + } + + //- rjf: record stop + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = D_EventCause_Finished; + event->msg_id = msg->msg_id; + if(detach_worked) + { + event->entity = msg->entity; + } + d_c2u_push_events(&evts); + } + + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + DMN_Event *stop_event = 0; + D_EventCause stop_cause = D_EventCause_Null; + D_EntityCtx *entity_ctx = &d_ctrl_state->ctrl_thread_entity_store->ctx; + D_Handle target_thread = msg->entity; + D_Handle target_process = msg->parent; + DMN_Handle target_thread_dmn = d_dmn_from_handle(target_thread); + DMN_Handle target_process_dmn = d_dmn_from_handle(target_process); + D_Entity *target_process_entity = d_entity_from_handle(target_process); + U64 spoof_ip_vaddr = 911; + log_infof("d_ctrl_thread__run:\n{\n"); + + ////////////////////////////// + //- rjf: gather all initial breakpoints + // + DMN_TrapChunkList user_traps = {0}; + { + D_Entity *thread = d_entity_from_handle(target_thread); + D_EvalScope *eval_scope = d_ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); + for(D_Entity *machine = entity_ctx->root->first; + machine != &d_entity_nil; + machine = machine->next) + { + if(machine->kind != D_EntityKind_Machine) { continue; } + for(D_Entity *process = machine->first; process != &d_entity_nil; process = process->next) + { + if(process->kind != D_EntityKind_Process) { continue; } + + // rjf: resolve module-dependent user bps + for(D_Entity *module = process->first; module != &d_entity_nil; module = module->next) + { + if(module->kind != D_EntityKind_Module) { continue; } + d_ctrl_thread__append_resolved_module_user_bp_traps(scratch.arena, eval_scope, process->handle, module->handle, &msg->user_bps, &user_traps); + } + + // rjf: push process-declared breakpoins + for(D_Entity *bp = process->first; bp != &d_entity_nil; bp = bp->next) + { + if(bp->kind != D_EntityKind_Breakpoint) { continue; } + d_ctrl_thread__append_program_defined_bp_traps(scratch.arena, bp, &user_traps); + } + + // rjf: push virtual-address user breakpoints per-process + d_ctrl_thread__append_resolved_process_user_bp_traps(scratch.arena, eval_scope, process->handle, &msg->user_bps, &user_traps); + } + } + d_ctrl_thread__eval_scope_end(eval_scope); + } + + ////////////////////////////// + //- rjf: read initial stack-pointer-check value + // + // This MUST happen before any threads move, including single-stepping stuck + // threads, because otherwise, their stack pointer may change, if single-stepping + // causes e.g. entrance into a function via a call instruction. + // + U64 sp_check_value = d_sp_from_thread(target_thread); + log_infof("sp_check_value := 0x%I64x\n", sp_check_value); + + ////////////////////////////// + //- rjf: single step "stuck threads" + // + // "Stuck threads" are threads that are already on a User BP and would hit + // it immediately if resumed with all User BPs enabled. To get them "unstuck" + // we just need to single step them to get them off their current instruction. + // + // This only applies to threads OTHER THAN the target thread. If the target + // thread is on a user breakpoint, then we need to let trap net logic run, + // which may include features put on a trap net trap at the same address as + // the user breakpoint. + // + B32 target_thread_is_on_user_bp_and_trap_net_trap = 0; + if(stop_event == 0) + { + // rjf: gather stuck threads + DMN_HandleList stuck_threads = {0}; + for(D_Entity *machine = entity_ctx->root->first; + machine != &d_entity_nil; + machine = machine->next) + { + if(machine->kind != D_EntityKind_Machine) { continue; } + for(D_Entity *process = machine->first; process != &d_entity_nil; process = process->next) + { + if(process->kind != D_EntityKind_Process) { continue; } + for(D_Entity *thread = process->first; thread != &d_entity_nil; thread = thread->next) + { + if(thread->kind != D_EntityKind_Thread) { continue; } + U64 rip = d_ip_from_thread(thread->handle); + + // rjf: determine if thread is frozen + B32 thread_is_frozen = thread->is_frozen; + + // rjf: not frozen? -> check if stuck & gather if so + if(!thread_is_frozen) + { + for(DMN_TrapChunkNode *n = user_traps.first; n != 0; n = n->next) + { + B32 is_on_user_bp = 0; + for(DMN_Trap *trap_ptr = n->v; trap_ptr < n->v+n->count; trap_ptr += 1) + { + if(dmn_handle_match(trap_ptr->process, d_dmn_from_handle(process->handle)) && trap_ptr->vaddr == rip) + { + is_on_user_bp = 1; + } + } + + B32 is_on_net_trap = 0; + for(D_TrapNode *n = msg->traps.first; n != 0; n = n->next) + { + if(n->v.vaddr == rip) + { + is_on_net_trap = 1; + } + } + + if(is_on_user_bp && (!is_on_net_trap || !dmn_handle_match(d_dmn_from_handle(thread->handle), target_thread_dmn))) + { + dmn_handle_list_push(scratch.arena, &stuck_threads, d_dmn_from_handle(thread->handle)); + } + + if(is_on_user_bp && is_on_net_trap && dmn_handle_match(d_dmn_from_handle(thread->handle), target_thread_dmn)) + { + target_thread_is_on_user_bp_and_trap_net_trap = 1; + } + } + } + } + } + } + + // rjf: actually step stuck threads + for(DMN_HandleNode *node = stuck_threads.first; + node != 0; + node = node->next) + { + D_Handle thread = d_handle_from_dmn(D_MachineID_Local, node->v); + U64 thread_pre_rip = d_ip_from_thread(thread); + U64 thread_post_rip = thread_pre_rip; + for(B32 done = 0; !done;) + { + DMN_RunCtrls run_ctrls = {0}; + run_ctrls.run_entities_are_unfrozen = 1; + run_ctrls.run_entities = &node->v; + run_ctrls.run_entity_count = 1; + if(thread_post_rip == thread_pre_rip) + { + run_ctrls.single_step_thread = node->v; + } + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + thread_post_rip = d_ip_from_thread(thread); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_ExitThread: + if(d_handle_match(d_handle_from_dmn(D_MachineID_Local, event->thread), thread)) + { + stop_cause = D_EventCause_Error; + goto stop; + }break; + case DMN_EventKind_Error: stop_cause = D_EventCause_Error; goto stop; + case DMN_EventKind_Exception: stop_cause = D_EventCause_InterruptedByException; goto stop; + case DMN_EventKind_Trap: stop_cause = D_EventCause_InterruptedByTrap; goto stop; + case DMN_EventKind_Halt: stop_cause = D_EventCause_InterruptedByHalt; goto stop; + stop:; + { + stop_event = event; + done = 1; + }break; + case DMN_EventKind_SingleStep: + { + done = dmn_handle_match(node->v, event->thread); + }break; + } + } + } + } + + ////////////////////////////// + //- rjf: gather frozen threads + // + D_EntityList frozen_threads = {0}; + for(D_Entity *machine = entity_ctx->root->first; + machine != &d_entity_nil; + machine = machine->next) + { + if(machine->kind != D_EntityKind_Machine) { continue; } + for(D_Entity *process = machine->first; process != &d_entity_nil; process = process->next) + { + if(process->kind != D_EntityKind_Process) { continue; } + for(D_Entity *thread = process->first; thread != &d_entity_nil; thread = thread->next) + { + if(thread->is_frozen) + { + d_entity_list_push(scratch.arena, &frozen_threads, thread); + } + } + } + } + + ////////////////////////////// + //- rjf: resolve trap net + // + DMN_TrapChunkList trap_net_traps = {0}; + for(D_TrapNode *node = msg->traps.first; + node != 0; + node = node->next) + { + DMN_Trap trap = {d_dmn_from_handle(target_process), node->v.vaddr}; + dmn_trap_chunk_list_push(scratch.arena, &trap_net_traps, 256, &trap); + } + + ////////////////////////////// + //- rjf: join user breakpoints and trap net traps + // + DMN_TrapChunkList joined_traps = {0}; + { + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &user_traps); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &trap_net_traps); + } + + ////////////////////////////// + //- rjf: record start + // + if(stop_event == 0) + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Started; + d_c2u_push_events(&evts); + } + + ////////////////////////////// + //- rjf: run loop + // + if(stop_event == 0) + { + B32 spoof_mode = 0; + D_Spoof spoof = {0}; + DMN_TrapChunkList entry_traps = {0}; + for(U64 run_loop_idx = 0;; run_loop_idx += 1) + { + ////////////////////////// + //- rjf: choose low level traps + // + DMN_TrapChunkList *trap_list = &joined_traps; + if(spoof_mode) + { + trap_list = &user_traps; + } + + ////////////////////////// + //- rjf: choose spoof + // + D_Spoof *run_spoof = 0; + if(spoof_mode) + { + run_spoof = &spoof; + } + + ////////////////////////// + //- rjf: setup run controls + // + DMN_RunCtrls run_ctrls = {0}; + if(run_loop_idx == 0) + { + run_ctrls.priority_thread = target_thread_dmn; + } + run_ctrls.ignore_previous_exception = 1; + run_ctrls.run_entity_count = frozen_threads.count; + run_ctrls.run_entities = push_array(scratch.arena, DMN_Handle, run_ctrls.run_entity_count); + run_ctrls.run_entities_are_unfrozen = 0; + { + U64 idx = 0; + for(D_EntityNode *n = frozen_threads.first; n != 0; n = n->next) + { + run_ctrls.run_entities[idx] = d_dmn_from_handle(n->v->handle); + idx += 1; + } + } + run_ctrls.traps = *trap_list; + + ////////////////////////// + //- rjf: get next run-related event + // + log_infof("get_next_event:\n{\n"); + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, run_spoof); + log_infof("}\n\n"); + + ////////////////////////// + //- rjf: determine event handling + // + B32 launch_done_first_module = 0; + B32 hard_stop = 0; + D_EventCause hard_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + B32 use_stepping_logic = 0; + switch(event->kind) + { + default:{}break; + case DMN_EventKind_Error: + case DMN_EventKind_Halt: + case DMN_EventKind_SingleStep: + case DMN_EventKind_Trap: + { + hard_stop = 1; + log_infof("step_rule: unexpected -> hard_stop\n"); + }break; + case DMN_EventKind_Exception: + case DMN_EventKind_Breakpoint: + { + use_stepping_logic = 1; + log_infof("step_rule: exception/breakpoint -> stepping_logic\n"); + }break; + case DMN_EventKind_CreateProcess: + { + D_EvalScope *eval_scope = d_ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, &d_entity_nil); + { + DMN_TrapChunkList new_traps = {0}; + d_ctrl_thread__append_resolved_process_user_bp_traps(scratch.arena, eval_scope, d_handle_from_dmn(D_MachineID_Local, event->process), &msg->user_bps, &new_traps); + log_infof("step_rule: create_process -> resolve traps\n"); + log_infof("new_traps:\n{\n"); + for(DMN_TrapChunkNode *n = new_traps.first; n != 0; n = n->next) + { + for(U64 idx = 0; idx < n->count; idx += 1) + { + DMN_Trap *trap = &n->v[idx]; + log_infof("{process:[0x%I64x], vaddr:0x%I64x}\n", trap->process.u64[0], trap->vaddr); + } + } + log_infof("}\n\n"); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); + } + d_ctrl_thread__eval_scope_end(eval_scope); + }break; + case DMN_EventKind_LoadModule: + { + D_Entity *thread = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->thread)); + D_EvalScope *eval_scope = d_ctrl_thread__eval_scope_begin(scratch.arena, &msg->user_bps, thread); + { + DMN_TrapChunkList new_traps = {0}; + d_ctrl_thread__append_resolved_module_user_bp_traps(scratch.arena, eval_scope, d_handle_from_dmn(D_MachineID_Local, event->process), d_handle_from_dmn(D_MachineID_Local, event->module), &msg->user_bps, &new_traps); + log_infof("step_rule: load_module -> resolve traps\n"); + log_infof("new_traps:\n{\n"); + for(DMN_TrapChunkNode *n = new_traps.first; n != 0; n = n->next) + { + for(U64 idx = 0; idx < n->count; idx += 1) + { + DMN_Trap *trap = &n->v[idx]; + log_infof("{process:[0x%I64x], vaddr:0x%I64x}\n", trap->process.u64[0], trap->vaddr); + } + } + log_infof("}\n\n"); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); + } + d_ctrl_thread__eval_scope_end(eval_scope); + }break; + case DMN_EventKind_SetBreakpoint: + { + D_Entity *bp = &d_entity_nil; + { + D_Entity *process = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->process)); + for(D_Entity *child = process->first; child != &d_entity_nil; child = child->next) + { + if(child->kind == D_EntityKind_Breakpoint && + child->vaddr_range.min == event->address && + child->vaddr_range.max == event->address + event->size && + child->bp_flags == d_breakpoint_flags_from_dmn_trap_flags(event->flags)) + { + bp = child; + break; + } + } + } + if(bp != &d_entity_nil) + { + DMN_TrapChunkList new_traps = {0}; + d_ctrl_thread__append_program_defined_bp_traps(scratch.arena, bp, &new_traps); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &new_traps); + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &user_traps, &new_traps); + } + }break; + } + + ////////////////////////// + //- rjf: on launches, detect entry points, place traps + // + if(msg->run_flags & D_RunFlag_StopOnEntryPoint && !launch_done_first_module && event->kind == DMN_EventKind_HandshakeComplete) + { + launch_done_first_module = 1; + Access *access = access_open(); + + //- rjf: unpack process/module info + D_Entity *process = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->process)); + D_Entity *module = d_entity_child_from_kind(process, D_EntityKind_Module); + U64 module_base_vaddr = module->vaddr_range.min; + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, max_U64); + RDI_NameMap *unparsed_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Procedures); + RDI_ParsedNameMap map = {0}; + rdi_parsed_from_name_map(rdi, unparsed_map, &map); + + //- rjf: add traps for user-specified entry points on this message, if specified + B32 entries_found = 0; + if(!entries_found) + { + for(String8Node *n = msg->entry_points.first; n != 0; n = n->next) + { + U32 procedure_id = 0; + { + String8 name = n->string; + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + entries_found = 1; + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + } + + //- rjf: add traps for module-baked entry points, if specified + if(!entries_found) + { + Access *access = access_open(); + D_ModuleInfo *module_info = d_info_from_module(access, module->handle); + String8 raddbg_data = module_info->raddbg_data; + U8 split_char = 0; + String8List raddbg_data_text_parts = str8_split(scratch.arena, raddbg_data, &split_char, 1, 0); + for(String8Node *text_n = raddbg_data_text_parts.first; text_n != 0; text_n = text_n->next) + { + String8 text = text_n->string; + MD_Node *root = md_tree_from_string(scratch.arena, text); + if(str8_match(root->first->string, str8_lit("entry_point"), 0)) + { + String8 name = root->first->first->string; + U32 procedure_id = 0; + { + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + entries_found = 1; + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + } + access_close(access); + } + + //- rjf: add traps for PID-correllated entry points + if(!entries_found) + { + for(D_Entity *e = entity_ctx->root->first; e != &d_entity_nil; e = e->next) + { + if(e->id == process->id) + { + U32 procedure_id = 0; + { + String8 name = e->string; + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + entries_found = 1; + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + } + } + + //- rjf: add traps for all custom user entry points + if(!entries_found) + { + for(String8Node *n = d_ctrl_state->user_entry_points.first; n != 0; n = n->next) + { + U32 procedure_id = 0; + { + String8 name = n->string; + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + break; + } + } + } + + //- rjf: add traps for all high-level entry points + if(!entries_found) + { + String8 hi_entry_points[] = + { + str8_lit("WinMain"), + str8_lit("wWinMain"), + str8_lit("main"), + str8_lit("wmain"), + }; + for(U64 idx = 0; idx < ArrayCount(hi_entry_points); idx += 1) + { + U32 procedure_id = 0; + { + String8 name = hi_entry_points[idx]; + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + entries_found = 1; + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + } + + //- rjf: add trap for PE header entry + if(!entries_found) + { + U64 voff = d_entry_point_voff_from_module(module->handle); + if(voff != 0) + { + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + + //- rjf: add traps for all low-level entry points + if(!entries_found) + { + String8 lo_entry_points[] = + { + str8_lit("WinMainCRTStartup"), + str8_lit("wWinMainCRTStartup"), + str8_lit("mainCRTStartup"), + str8_lit("wmainCRTStartup"), + }; + for(U64 idx = 0; idx < ArrayCount(lo_entry_points); idx += 1) + { + U32 procedure_id = 0; + { + String8 name = lo_entry_points[idx]; + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, name.str, name.size); + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + procedure_id = ids[0]; + } + } + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_id); + U64 voff = rdi_first_voff_from_procedure(rdi, procedure); + if(voff != 0) + { + entries_found = 1; + DMN_Trap trap = {d_dmn_from_handle(process->handle), module_base_vaddr + voff}; + dmn_trap_chunk_list_push(scratch.arena, &entry_traps, 256, &trap); + } + } + } + + //- rjf: no entry point found -> done + if(entry_traps.trap_count == 0) + { + hard_stop = 1; + } + + //- rjf: found entry points -> add to joined traps + dmn_trap_chunk_list_concat_shallow_copy(scratch.arena, &joined_traps, &entry_traps); + + access_close(access); + } + + ////////////////////////// + //- rjf: unpack info about thread attached to event + // + D_Entity *thread = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->thread)); + D_Entity *process = d_entity_from_handle(d_handle_from_dmn(D_MachineID_Local, event->process)); + Arch arch = thread->arch; + U64 thread_rip_vaddr = d_ip_from_thread(thread->handle); + D_Entity *module = d_module_from_process_vaddr(process, thread_rip_vaddr); + + ////////////////////////// + //- rjf: extract module-dependent info + // + U64 thread_rip_voff = thread_rip_vaddr - module->vaddr_range.min; + + ////////////////////////// + //- rjf: stepping logic + // + //{ + + ////////////////////////// + //- rjf: handle if hitting a spoof + // + B32 exception_stop = 0; + B32 hit_spoof = 0; + if(!hard_stop && use_stepping_logic && event->kind == DMN_EventKind_Exception) + { + if(spoof_mode && + dmn_handle_match(target_process_dmn, event->process) && + dmn_handle_match(target_thread_dmn, event->thread) && + spoof.new_ip_value == event->address) + { + hit_spoof = 1; + log_infof("hit_spoof\n"); + } + else + { + exception_stop = 1; + use_stepping_logic = 0; + } + } + + //- rjf: handle spoof hit + if(hit_spoof) + { + log_infof("exit_spoof_mode\n"); + + // rjf: clear spoof mode + spoof_mode = 0; + MemoryZeroStruct(&spoof); + + // rjf: skip remainder of handling + use_stepping_logic = 0; + } + + //- rjf: for breakpoint events, gather bp info + B32 hit_entry = 0; + B32 hit_user_bp = 0; + B32 hit_trap_net_bp = 0; + B32 hit_conditional_bp_but_filtered = 0; + D_TrapFlags hit_trap_flags = 0; + if(!hard_stop && use_stepping_logic && event->kind == DMN_EventKind_Breakpoint) + ProfScope("for breakpoint events, gather bp info") + { + Temp temp = temp_begin(scratch.arena); + String8List conditions = {0}; + + // rjf: entry breakpoints + for(DMN_TrapChunkNode *n = entry_traps.first; n != 0; n = n->next) + { + DMN_Trap *trap = n->v; + DMN_Trap *opl = n->v + n->count; + for(;trap < opl; trap += 1) + { + if(dmn_handle_match(trap->process, event->process) && trap->vaddr == event->instruction_pointer) + { + hit_entry = 1; + } + } + } + + // rjf: user breakpoints + { + if(event->user_data != 0) + { + hit_user_bp = 1; + } + for(DMN_TrapChunkNode *n = user_traps.first; n != 0; n = n->next) + { + DMN_Trap *trap = n->v; + DMN_Trap *opl = n->v + n->count; + for(;trap < opl; trap += 1) + { + if(dmn_handle_match(trap->process, event->process) && + trap->vaddr == event->instruction_pointer && + (!dmn_handle_match(event->thread, d_dmn_from_handle(target_thread)) || !target_thread_is_on_user_bp_and_trap_net_trap)) + { + D_Breakpoint *user_bp = (D_Breakpoint *)trap->id; + hit_user_bp = 1; + if(user_bp != 0 && !(trap->id & bit64) && user_bp->condition.size != 0) + { + str8_list_push(temp.arena, &conditions, user_bp->condition); + } + } + } + } + } + + // rjf: programmatic user breakpoints (we do not have state for it, + // but the target program(s) did something breakpoint-like, and we + // want to treat it as if we did) + if(event->address != 0) + { + hit_user_bp = 1; + } + + // rjf: evaluate hit stop conditions + if(conditions.node_count != 0) ProfScope("evaluate hit stop conditions") + { + D_EvalScope *eval_scope = d_ctrl_thread__eval_scope_begin(temp.arena, &msg->user_bps, thread); + for(String8Node *condition_n = conditions.first; condition_n != 0; condition_n = condition_n->next) + { + // rjf: evaluate + E_Eval eval = zero_struct; + ProfScope("evaluate expression") + { + eval = e_eval_from_string(condition_n->string); + } + + // rjf: interpret evaluation + if(eval.code == E_InterpretationCode_Good && eval.value.u64 == 0) + { + hit_user_bp = 0; + hit_conditional_bp_but_filtered = 1; + log_infof("conditional_breakpoint_hit: 'condition eval'd to 0, and so filtered'\n"); + } + else + { + hit_user_bp = 1; + hit_conditional_bp_but_filtered = 0; + log_infof("conditional_breakpoint_hit: 'conditional eval'd to nonzero, hit'\n"); + break; + } + } + d_ctrl_thread__eval_scope_end(eval_scope); + } + + // rjf: gather trap net hits + ProfScope("gather trap net hits") + { + if(!hit_user_bp && dmn_handle_match(event->process, d_dmn_from_handle(target_process))) + { + for(D_TrapNode *node = msg->traps.first; + node != 0; + node = node->next) + { + if(node->v.vaddr == event->instruction_pointer) + { + hit_trap_net_bp = 1; + hit_trap_flags |= node->v.flags; + } + } + } + } + + log_infof("user_breakpoint_hit: %i\n", hit_user_bp); + log_infof("entry_point_hit: %i\n", hit_entry); + temp_end(temp); + } + + //- rjf: hit conditional user bp but filtered -> single step + B32 cond_bp_single_step_stop = 0; + D_EventCause cond_bp_single_step_stop_cause = D_EventCause_Null; + if(hit_conditional_bp_but_filtered) LogInfoNamedBlockF("conditional_bp_hit_single_step") + { + D_Handle thread = d_handle_from_dmn(D_MachineID_Local, event->thread); + U64 thread_pre_rip = d_ip_from_thread(thread); + U64 thread_post_rip = thread_pre_rip; + for(B32 single_step_done = 0; !single_step_done;) + { + DMN_RunCtrls single_step_ctrls = {0}; + single_step_ctrls.run_entities_are_unfrozen = 1; + single_step_ctrls.run_entities = &event->thread; + single_step_ctrls.run_entity_count = 1; + if(thread_post_rip == thread_pre_rip) + { + single_step_ctrls.single_step_thread = event->thread; + } + event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); + thread_post_rip = d_ip_from_thread(thread); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_Error: + case DMN_EventKind_Exception: + case DMN_EventKind_Halt: + case DMN_EventKind_Trap: + { + cond_bp_single_step_stop = 1; + single_step_done = 1; + use_stepping_logic = 0; + cond_bp_single_step_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + case DMN_EventKind_SingleStep: + { + single_step_done = d_handle_match(d_handle_from_dmn(D_MachineID_Local, event->thread), thread); + cond_bp_single_step_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + } + } + } + + //- rjf: hit entry points on *any thread* cause a stop, if this msg says as such + B32 entry_stop = 0; + if(msg->run_flags & D_RunFlag_StopOnEntryPoint && hit_entry) + { + entry_stop = 1; + use_stepping_logic = 0; + } + + //- rjf: user breakpoints on *any thread* cause a stop + B32 user_bp_stop = 0; + if(!hard_stop && use_stepping_logic && hit_user_bp) + { + user_bp_stop = 1; + use_stepping_logic = 0; + } + + //- rjf: trap net on off-target threads are ignored + B32 step_past_trap_net = 0; + if(!hard_stop && use_stepping_logic && hit_trap_net_bp) + { + if(!dmn_handle_match(event->thread, d_dmn_from_handle(target_thread))) + { + step_past_trap_net = 1; + use_stepping_logic = 0; + } + } + + //- rjf: trap net logic: stack pointer check on target thread + B32 stack_pointer_check_passes = 0; + if(!hard_stop && use_stepping_logic && hit_trap_net_bp && dmn_handle_match(event->thread, d_dmn_from_handle(target_thread))) + { + U64 sp = d_sp_from_thread(target_thread); + stack_pointer_check_passes = ((hit_trap_flags & D_TrapFlag_IgnoreStackPointerCheck) || (sp == sp_check_value)); + } + + //- rjf: trap net on on-target threads trigger trap net logic, *if* the stack pointer check passes. + // if it doesn't -> step over trap net & continue + B32 use_trap_net_logic = 0; + if(!hard_stop && use_stepping_logic && hit_trap_net_bp && dmn_handle_match(event->thread, d_dmn_from_handle(target_thread))) + { + if(stack_pointer_check_passes) + { + use_trap_net_logic = 1; + } + else + { + step_past_trap_net = 1; + use_stepping_logic = 0; + } + } + + //- rjf: trap net logic: save stack pointer *before* step-over + if(!hard_stop && use_trap_net_logic) + { + if(hit_trap_flags & D_TrapFlag_SaveStackPointerBefore) + { + sp_check_value = d_sp_from_thread(target_thread); + log_infof("sp_check_value = 0x%I64x\n", sp_check_value); + } + } + + //- rjf: trap net logic: single step after hit + B32 single_step_stop = 0; + D_EventCause single_step_stop_cause = D_EventCause_Null; + if(!hard_stop && use_trap_net_logic) + { + if(hit_trap_flags & D_TrapFlag_SingleStepAfterHit) LogInfoNamedBlockF("trap_net__single_step_after_hit") + { + U64 thread_pre_rip = d_ip_from_thread(target_thread); + U64 thread_post_rip = thread_pre_rip; + for(B32 single_step_done = 0; single_step_done == 0;) + { + DMN_RunCtrls single_step_ctrls = {0}; + single_step_ctrls.run_entities_are_unfrozen = 1; + single_step_ctrls.run_entities = &target_thread_dmn; + single_step_ctrls.run_entity_count = 1; + if(thread_post_rip == thread_pre_rip) + { + single_step_ctrls.single_step_thread = target_thread_dmn; + } + event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); + thread_post_rip = d_ip_from_thread(target_thread); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_Error: + case DMN_EventKind_Exception: + case DMN_EventKind_Halt: + case DMN_EventKind_Trap: + { + single_step_stop = 1; + single_step_done = 1; + use_stepping_logic = 0; + use_trap_net_logic = 0; + single_step_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + case DMN_EventKind_SingleStep: + { + single_step_done = dmn_handle_match(event->thread, target_thread_dmn); + single_step_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + } + } + } + } + + //- rjf: trap net logic: save stack pointer *after* step-over + if(!hard_stop && use_trap_net_logic) + { + if(hit_trap_flags & D_TrapFlag_SaveStackPointerAfter) + { + sp_check_value = d_sp_from_thread(target_thread); + log_infof("sp_check_value = 0x%I64x\n", sp_check_value); + } + } + + //- rjf: trap net logic: begin spoof mode + B32 begin_spoof_mode = 0; + if(!hard_stop && use_trap_net_logic) + { + if(hit_trap_flags & D_TrapFlag_BeginSpoofMode) LogInfoNamedBlockF("trap_net__begin_spoof_mode") + { + // rjf: setup spoof mode + begin_spoof_mode = 1; + U64 spoof_sp = d_sp_from_thread(target_thread); + spoof_mode = 1; + spoof.process = target_process; + spoof.thread = target_thread; + spoof.vaddr = spoof_sp; + spoof.new_ip_value = spoof_ip_vaddr; + } + } + + //- rjf: trap net logic: end stepping + B32 trap_net_stop = 0; + if(!hard_stop && use_trap_net_logic) + { + if(hit_trap_flags & D_TrapFlag_EndStepping) LogInfoNamedBlockF("trap_net__end_step") + { + trap_net_stop = 1; + use_trap_net_logic = 0; + } + } + + //} + // + //- rjf: stepping logic + //////////////////////////////// + + //- rjf: handle step past trap net + B32 step_past_trap_net_stop = 0; + D_EventCause step_past_trap_net_stop_cause = D_EventCause_Null; + if(step_past_trap_net) LogInfoNamedBlockF("trap_net__single_step_past_trap_net") + { + D_Handle thread = d_handle_from_dmn(D_MachineID_Local, event->thread); + U64 thread_pre_rip = d_ip_from_thread(thread); + U64 thread_post_rip = thread_pre_rip; + for(B32 single_step_done = 0; single_step_done == 0;) + { + DMN_RunCtrls single_step_ctrls = {0}; + single_step_ctrls.run_entities_are_unfrozen = 1; + single_step_ctrls.run_entities = &event->thread; + single_step_ctrls.run_entity_count = 1; + if(thread_post_rip == thread_pre_rip) + { + single_step_ctrls.single_step_thread = event->thread; + } + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &single_step_ctrls, 0); + thread_post_rip = d_ip_from_thread(thread); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_Error: + case DMN_EventKind_Exception: + case DMN_EventKind_Halt: + case DMN_EventKind_Trap: + { + step_past_trap_net_stop = 1; + single_step_done = 1; + step_past_trap_net_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + case DMN_EventKind_SingleStep: + { + single_step_done = d_handle_match(d_handle_from_dmn(D_MachineID_Local, event->thread), thread); + step_past_trap_net_stop_cause = d_event_cause_from_dmn_event_kind(event->kind); + }break; + } + } + } + + //- rjf: loop exit condition + D_EventCause stage_stop_cause = D_EventCause_Null; + if(hard_stop) + { + stage_stop_cause = hard_stop_cause; + } + else if(cond_bp_single_step_stop) + { + stage_stop_cause = cond_bp_single_step_stop_cause; + } + else if(single_step_stop) + { + stage_stop_cause = single_step_stop_cause; + } + else if(step_past_trap_net_stop) + { + stage_stop_cause = step_past_trap_net_stop_cause; + } + else if(exception_stop) + { + stage_stop_cause = D_EventCause_InterruptedByException; + } + else if(user_bp_stop) + { + stage_stop_cause = D_EventCause_UserBreakpoint; + } + else if(entry_stop) + { + stage_stop_cause = D_EventCause_EntryPoint; + } + else if(trap_net_stop) + { + stage_stop_cause = D_EventCause_Finished; + } + log_infof("stop_cause: %i\n", stage_stop_cause); + if(stage_stop_cause != D_EventCause_Null) + { + stop_event = event; + stop_cause = stage_stop_cause; + break; + } + } + } + + ////////////////////////////// + //- rjf: record stop + // + if(stop_event != 0) + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = stop_cause; + event->entity = d_handle_from_dmn(D_MachineID_Local, stop_event->thread); + event->parent = d_handle_from_dmn(D_MachineID_Local, stop_event->process); + event->exception_code = stop_event->code; + event->exception_kind = d_exception_kind_from_dmn(stop_event->exception_kind); + event->vaddr_rng = r1u64(stop_event->address, stop_event->address); + event->rip_vaddr = stop_event->instruction_pointer; + if(stop_cause == D_EventCause_UserBreakpoint && stop_event->user_data != 0) + { + if(!(stop_event->user_data & bit64)) + { + D_Breakpoint *user_bp = (D_Breakpoint *)stop_event->user_data; + event->u64_code = user_bp->id; + } + } + d_c2u_push_events(&evts); + } + + log_infof("}\n\n"); + scratch_end(scratch); + ProfEnd(); +} + +internal void +d_ctrl_thread__single_step(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + + //- rjf: record start + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Started; + d_c2u_push_events(&evts); + } + + //- rjf: single step + D_Handle thread = msg->entity; + B32 thread_is_valid = !d_handle_match(thread, d_handle_zero()); + DMN_Event *stop_event = 0; + D_EventCause stop_cause = D_EventCause_Null; + if(thread_is_valid) + { + U64 thread_pre_rip = d_ip_from_thread(thread); + U64 thread_post_rip = thread_pre_rip; + for(B32 done = 0; done == 0;) + { + DMN_Handle thread_dmn = d_dmn_from_handle(thread); + DMN_RunCtrls run_ctrls = {0}; + run_ctrls.run_entities_are_unfrozen = 1; + run_ctrls.run_entities = &thread_dmn; + run_ctrls.run_entity_count = 1; + if(thread_post_rip == thread_pre_rip) + { + run_ctrls.single_step_thread = thread_dmn; + } + DMN_Event *event = d_ctrl_thread__next_dmn_event(scratch.arena, ctrl_ctx, msg, &run_ctrls, 0); + thread_post_rip = d_ip_from_thread(thread); + switch(event->kind) + { + default:{}break; + case DMN_EventKind_Error: {stop_cause = D_EventCause_Error;}goto end_single_step; + case DMN_EventKind_Exception: {stop_cause = D_EventCause_InterruptedByException;}goto end_single_step; + case DMN_EventKind_Halt: {stop_cause = D_EventCause_InterruptedByHalt;}goto end_single_step; + case DMN_EventKind_Trap: {stop_cause = D_EventCause_InterruptedByTrap;}goto end_single_step; + case DMN_EventKind_Breakpoint: {stop_cause = D_EventCause_UserBreakpoint;}goto end_single_step; + case DMN_EventKind_SingleStep: {stop_cause = D_EventCause_Finished;}goto end_single_step; + end_single_step: + { + stop_event = event; + done = 1; + }break; + } + } + } + + //- rjf: record stop + { + D_EventList evts = {0}; + D_Event *event = d_event_list_push(scratch.arena, &evts); + event->kind = D_EventKind_Stopped; + event->cause = stop_cause; + if(stop_event != 0) + { + event->entity = d_handle_from_dmn(D_MachineID_Local, stop_event->thread); + event->parent = d_handle_from_dmn(D_MachineID_Local, stop_event->process); + event->exception_code = stop_event->code; + event->exception_kind = d_exception_kind_from_dmn(stop_event->exception_kind); + event->vaddr_rng = r1u64(stop_event->address, stop_event->address); + event->rip_vaddr = stop_event->instruction_pointer; + } + d_c2u_push_events(&evts); + } + + scratch_end(scratch); + ProfEnd(); +} + +//////////////////////////////// +//~ rjf: Process Memory Artifact Cache Hooks / Lookups + +//- rjf: synchronous process memory reading helpers + +internal U64 +d_process_read(D_Handle process, Rng1U64 range, void *dst) +{ + U64 result = 0; + switch((D_ControllerKindEnum)process.controller_kind) + { + //- rjf: demon process reads + case D_ControllerKind_Demon: + { + result = dmn_process_read(d_dmn_from_handle(process), range, dst); + }break; + + //- rjf: dump process reads + case D_ControllerKind_Dump: + { + D_DumpCache *cache = &d_ctrl_state->dump_cache; + U64 hash = d_hash_from_handle(process); + U64 slot_idx = hash%cache->slots_count; + Stripe *stripe = stripe_from_slot_idx(&cache->stripes, slot_idx); + RWMutexScope(stripe->rw_mutex, 0) + { + // rjf: handle -> node + D_DumpNode *node = 0; + for(D_DumpNode *n = cache->slots[slot_idx].first; n != 0; n = n->next) + { + if(d_handle_match(n->process, process)) + { + node = n; + break; + } + } + + // rjf: find all overlapping memory ranges, & fill respective portion of output + if(node != 0) + { + B32 range_found = 0; + for EachIndex(idx, node->memory_ranges_count) + { + D_DumpMemoryRange *r = &node->memory_ranges[idx]; + Rng1U64 foff_range = r->foff_range; + Rng1U64 vaddr_range = r1u64(r->base_vaddr, r->base_vaddr + dim_1u64(foff_range)); + Rng1U64 legal_vaddr_range = intersect_1u64(vaddr_range, range); + if(legal_vaddr_range.min < legal_vaddr_range.max) + { + range_found = 1; + Rng1U64 legal_foff_range = r1u64(legal_vaddr_range.min - r->base_vaddr + foff_range.min, legal_vaddr_range.max - r->base_vaddr + foff_range.min); + Rng1U64 dst_off_range = r1u64(legal_vaddr_range.min - range.min, legal_vaddr_range.max - range.min); + MemoryCopy((U8 *)dst + dst_off_range.min, (U8 *)node->base + legal_foff_range.min, dim_1u64(dst_off_range)); + } + } + if(range_found) + { + result = dim_1u64(range); + } + } + } + }break; + } + return result; +} + +internal B32 +d_process_write(D_Handle process, Rng1U64 range, void *src) +{ + B32 result = 0; + switch((D_ControllerKindEnum)process.controller_kind) + { + case D_ControllerKind_Demon: + { + result = dmn_process_write(d_dmn_from_handle(process), range, src); + if(result) + { + ins_atomic_u64_inc_eval(&d_ctrl_state->mem_gen); + } + }break; + + case D_ControllerKind_Dump: + { + // TODO(rjf) + }break; + } + + return result; +} + +internal String8 +d_data_from_process_vaddr_range(Arena *arena, D_Handle process, Rng1U64 vaddr_range, B32 zero_terminated) +{ + U64 desired_read_size = dim_1u64(vaddr_range); + void *buffer = push_array(arena, U8, desired_read_size); + U64 read_size = d_process_read(process, vaddr_range, buffer); + U64 num_bytes_overallocated = (desired_read_size - read_size); + arena_pop(arena, num_bytes_overallocated); + String8 result = str8((U8 *)buffer, read_size); + if(zero_terminated) + { + U64 pre_zero_termination_size = result.size; + result = str8_cstring_capped((U8 *)result.str, (U8 *)result.str + result.size); + U64 post_zero_termination_size = result.size; + U64 num_bytes_overallocated_after_zero_termination = post_zero_termination_size - pre_zero_termination_size; + arena_pop(arena, num_bytes_overallocated_after_zero_termination); + } + return result; +} + +//- rjf: process memory artifact cache + +internal AC_Artifact +d_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) +{ + AC_Artifact artifact = {0}; + { + //- rjf: unpack key + D_Handle process = {0}; + Rng1U64 vaddr_range = {0}; + B32 zero_terminated = 0; + { + U64 key_read_off = 0; + key_read_off += str8_deserial_read_struct(key, key_read_off, &process); + key_read_off += str8_deserial_read_struct(key, key_read_off, &vaddr_range); + key_read_off += str8_deserial_read_struct(key, key_read_off, &zero_terminated); + } + + //- rjf: clamp vaddr range + Rng1U64 vaddr_range_clamped = vaddr_range; + { + vaddr_range_clamped.max = Max(vaddr_range_clamped.max, vaddr_range_clamped.min); + U64 max_size_cap = Min(max_U64-vaddr_range_clamped.min, GB(1)); + vaddr_range_clamped.max = Min(vaddr_range_clamped.max, vaddr_range_clamped.min+max_size_cap); + } + + //- rjf: do read + U64 range_size = dim_1u64(vaddr_range_clamped); + Arena *range_arena = 0; + void *range_base = 0; + U64 zero_terminated_size = 0; + U64 pre_read_mem_gen = d_mem_gen(); + B32 pre_run_state = ins_atomic_u64_eval(&d_ctrl_state->ctrl_thread_run_state); + if(range_size != 0) + { + // rjf: set up arena + U64 page_size = get_system_info()->page_size; // TODO(rjf): @page_size_from_process + U64 arena_size = AlignPow2(range_size + ARENA_HEADER_SIZE, page_size); + range_arena = arena_alloc(.reserve_size = range_size+ARENA_HEADER_SIZE, .commit_size = range_size+ARENA_HEADER_SIZE); + + // rjf: if we got an arena -> push buffer & read + if(range_arena != 0) + { + // rjf: read as much as possible + range_base = push_array_no_zero(range_arena, U8, range_size); + U64 bytes_read = 0; + U64 retry_count = 0; + U64 retry_limit = range_size > page_size ? 64 : 0; + for(Rng1U64 vaddr_range_clamped_retry = vaddr_range_clamped; + retry_count <= retry_limit; + retry_count += 1) + { + bytes_read = d_process_read(process, vaddr_range_clamped_retry, range_base); + if(bytes_read == 0 && vaddr_range_clamped_retry.max > vaddr_range_clamped_retry.min) + { + U64 diff = (vaddr_range_clamped_retry.max-vaddr_range_clamped_retry.min)/2; + vaddr_range_clamped_retry.max -= diff; + vaddr_range_clamped_retry.max = AlignDownPow2(vaddr_range_clamped_retry.max, page_size); + if(diff == 0) + { + break; + } + } + else + { + break; + } + } + + // rjf: if we read nothing, release arena + if(bytes_read == 0) + { + arena_release(range_arena); + range_base = 0; + range_arena = 0; + } + + // rjf: if we only got a partial read, zero the rest + else if(bytes_read < range_size) + { + MemoryZero((U8 *)range_base + bytes_read, range_size-bytes_read); + } + + // rjf: determine final size; zero terminate if needed; pop any unneeded bytes if zero-terminating + zero_terminated_size = bytes_read; + if(zero_terminated && range_base != 0) + { + for(U64 idx = 0; idx < bytes_read; idx += 1) + { + if(((U8 *)range_base)[idx] == 0) + { + zero_terminated_size = idx; + break; + } + } + U64 bytes_overkill = (bytes_read - zero_terminated_size); + arena_pop(range_arena, bytes_overkill); + } + } + } + U64 post_read_mem_gen = d_mem_gen(); + B32 post_run_state = ins_atomic_u64_eval(&d_ctrl_state->ctrl_thread_run_state); + + //- rjf: form content key + C_Key content_key = {0}; + { + content_key.id.u128[0] = u128_hash_from_str8(key); + } + + //- rjf: determine if we have any history for this key + B32 key_has_history = 0; + { + U128 last_hash = c_hash_from_key(content_key, 0); + if(!u128_match(last_hash, u128_zero())) + { + key_has_history = 1; + } + } + + //- rjf: read successful, OR we have no history -> submit to hash store + U128 hash = {0}; + if((zero_terminated_size > 0 || !key_has_history) && range_base != 0 && range_size != 0 && pre_read_mem_gen == post_read_mem_gen) + { + hash = c_submit_data(content_key, &range_arena, str8((U8 *)range_base, zero_terminated_size)); + gen_out[0] = pre_read_mem_gen; + } + + //- rjf: wakeup on new submissions + if(!u128_match(u128_zero(), hash)) + { + if(d_ctrl_state->wakeup_hook != 0) + { + d_ctrl_state->wakeup_hook(); + } + } + + //- rjf: always release leftover arenas + if(range_arena != 0) + { + arena_release(range_arena); + } + + //- rjf: retry on mem gen "tearing", and if the range is non-empty + if(pre_read_mem_gen != post_read_mem_gen && range_size != 0) + { + retry_out[0] = 1; + } + + //- rjf: bundle content key as artifact + StaticAssert(sizeof(content_key) == sizeof(artifact), artifact_key_size_check); + MemoryCopyStruct(&artifact, &content_key); + } + return artifact; +} + +internal void +d_memory_artifact_destroy(AC_Artifact artifact) +{ + C_Key key = {0}; + MemoryCopyStruct(&key, &artifact); + c_close_key(key); +} + +internal C_Key +d_key_from_process_vaddr_range(D_Handle process, Rng1U64 vaddr_range, B32 zero_terminated, B32 wait_for_fresh, U64 endt_us, B32 *out_is_stale) +{ + ProfBeginFunction(); +#pragma pack(push, 1) + struct + { + D_Handle process; + Rng1U64 vaddr_range; + B32 zero_terminated; + } key_data = {process, vaddr_range, zero_terminated}; +#pragma pack(pop) + String8 key = str8_struct(&key_data); + Access *access = access_open(); + AC_Artifact artifact = ac_artifact_from_key(access, key, d_memory_artifact_create, d_memory_artifact_destroy, endt_us, + .flags = AC_Flag_HighPriority | (wait_for_fresh ? AC_Flag_WaitForFresh : 0), + .gen = d_mem_gen(), + .slots_count = 2048, + .stale_out = out_is_stale, + .evict_threshold_us = 10000000); + C_Key content_key = {0}; + MemoryCopyStruct(&content_key, &artifact); + access_close(access); + ProfEnd(); + return content_key; +} + +//- rjf: process memory reading helpers + +internal D_ProcessMemorySlice +d_process_memory_slice_from_vaddr_range(Arena *arena, D_Handle process, Rng1U64 range, B32 wait_for_fresh, U64 endt_us) +{ + ProfBeginFunction(); + D_ProcessMemorySlice result = {0}; + if(range.max > range.min && + dim_1u64(range) <= MB(256) && + range.min <= 0x000FFFFFFFFFFFFFull && + range.max <= 0x000FFFFFFFFFFFFFull) + { + Temp scratch = scratch_begin(&arena, 1); + Access *access = access_open(); + + //- rjf: unpack address range, prepare per-touched-page info + U64 page_size = KB(4); + Rng1U64 page_range = r1u64(AlignDownPow2(range.min, page_size), AlignPow2(range.max, page_size)); + U64 page_count = dim_1u64(page_range)/page_size; + U128 *page_hashes = push_array(scratch.arena, U128, page_count); + U128 *page_last_hashes = push_array(scratch.arena, U128, page_count); + + //- rjf: gather hashes & last-hashes for each page + ProfScope("gather hashes & last-hashes for each page") + { + for(U64 page_idx = 0; page_idx < page_count; page_idx += 1) + { + U64 page_base_vaddr = page_range.min + page_idx*page_size; + B32 page_is_stale = 0; + C_Key page_key = d_key_from_process_vaddr_range(process, r1u64(page_base_vaddr, page_base_vaddr+page_size), 0, wait_for_fresh, endt_us, &page_is_stale); + U128 page_hash = c_hash_from_key(page_key, 0); + U128 page_last_hash = c_hash_from_key(page_key, 1); + result.stale = (result.stale || page_is_stale); + page_hashes[page_idx] = page_hash; + page_last_hashes[page_idx] = page_last_hash; + } + } + + //- rjf: setup output buffers + void *read_out = push_array(arena, U8, dim_1u64(range)); + U64 *byte_bad_flags = push_array(arena, U64, (dim_1u64(range)+63)/64); + U64 *byte_changed_flags = push_array(arena, U64, (dim_1u64(range)+63)/64); + + //- rjf: iterate pages, fill output + ProfScope("iterate pages, fill output") + { + U64 write_off = 0; + for(U64 page_idx = 0; page_idx < page_count; page_idx += 1) + { + // rjf: read data for this page + String8 data = c_data_from_hash(access, page_hashes[page_idx]); + Rng1U64 data_vaddr_range = r1u64(page_range.min + page_idx*page_size, page_range.min + page_idx*page_size+data.size); + + // rjf: skip/chop bytes which are irrelevant for the actual requested read + String8 in_range_data = data; + if(page_idx == page_count-1 && data_vaddr_range.max > range.max) + { + in_range_data = str8_chop(in_range_data, data_vaddr_range.max-range.max); + } + if(page_idx == 0 && range.min > data_vaddr_range.min) + { + in_range_data = str8_skip(in_range_data, range.min-data_vaddr_range.min); + } + + // rjf: write this chunk + MemoryCopy((U8*)read_out+write_off, in_range_data.str, in_range_data.size); + + // rjf; if this page's data doesn't fill the entire range, mark + // missing bytes as bad + if(data.size < page_size) ProfScope("mark missing bytes as bad") + { + Rng1U64 invalid_range = r1u64(data_vaddr_range.min+data.size, data_vaddr_range.min + page_size); + Rng1U64 in_range_invalid_range = intersect_1u64(invalid_range, range); + for(U64 invalid_vaddr = in_range_invalid_range.min; + invalid_vaddr < in_range_invalid_range.max; + invalid_vaddr += 1) + { + U64 idx_in_range = invalid_vaddr - range.min; + byte_bad_flags[idx_in_range/64] |= (1ull<<(idx_in_range%64)); + } + } + + // rjf: if this page's hash & last_hash don't match, diff each byte & + // fill out changed flags + if(!u128_match(page_hashes[page_idx], page_last_hashes[page_idx])) ProfScope("hashes don't match; diff each byte") + { + String8 last_data = c_data_from_hash(access, page_last_hashes[page_idx]); + String8 in_range_last_data = last_data; + if(page_idx == page_count-1 && data_vaddr_range.max > range.max) + { + in_range_last_data = str8_chop(in_range_last_data, data_vaddr_range.max-range.max); + } + if(page_idx == 0 && range.min > data_vaddr_range.min) + { + in_range_last_data = str8_skip(in_range_last_data, range.min-data_vaddr_range.min); + } + for(U64 idx = 0; idx < in_range_data.size; idx += 1) + { + U8 last_byte = idx < in_range_last_data.size ? in_range_last_data.str[idx] : 0; + U8 now_byte = idx < in_range_data.size ? in_range_data.str[idx] : 0; + if(last_byte != now_byte) + { + U64 idx_in_read_out = write_off+idx; + byte_changed_flags[idx_in_read_out/64] |= (1ull<<(idx_in_read_out%64)); + } + } + } + + // rjf: increment past this chunk + U64 bytes_to_skip = page_size; + if(page_idx == 0 && range.min > data_vaddr_range.min) + { + bytes_to_skip -= (range.min-data_vaddr_range.min); + } + write_off += bytes_to_skip; + } + } + + //- rjf: fill result + result.data.str = (U8*)read_out; + result.data.size = dim_1u64(range); + result.byte_bad_flags = byte_bad_flags; + result.byte_changed_flags = byte_changed_flags; + if(byte_bad_flags != 0) + { + for(U64 idx = 0; idx < (dim_1u64(range)+63)/64; idx += 1) + { + result.any_byte_bad = result.any_byte_bad || !!result.byte_bad_flags[idx]; + } + } + if(byte_changed_flags != 0) + { + for(U64 idx = 0; idx < (dim_1u64(range)+63)/64; idx += 1) + { + result.any_byte_changed = result.any_byte_changed || !!result.byte_changed_flags[idx]; + } + } + + access_close(access); + scratch_end(scratch); + } + ProfEnd(); + return result; +} + +internal B32 +d_process_memory_read(D_Handle process, Rng1U64 range, B32 *is_stale_out, void *out, U64 endt_us) +{ + Temp scratch = scratch_begin(0, 0); + U64 needed_size = dim_1u64(range); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process, range, 0, endt_us); + B32 good = (slice.data.size >= needed_size && !slice.any_byte_bad); + if(good) + { + MemoryCopy(out, slice.data.str, needed_size); + } + if(slice.stale && is_stale_out) + { + *is_stale_out = 1; + } + scratch_end(scratch); + return good; +} + +//////////////////////////////// +//~ rjf: TLS Address Artifact Cache Hooks / Lookups + +internal AC_Artifact +d_tls_vaddr_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) +{ + // rjf: unpack key + D_Handle thread = {0}; + D_Handle module = {0}; + { + U64 off = 0; + off += str8_deserial_read_struct(key, off, &thread); + off += str8_deserial_read_struct(key, off, &module); + } + + // rjf: resolve to demon + DMN_Handle thread_dmn = d_dmn_from_handle(thread); + DMN_Handle module_dmn = d_dmn_from_handle(module); + + // rjf: compute vaddr + U64 tls_vaddr = 0; + B32 success = 1; + if(!dmn_handle_match(thread_dmn, dmn_handle_zero()) && + !dmn_handle_match(module_dmn, dmn_handle_zero())) + { + success = dmn_thread_get_module_tls_vaddr(thread_dmn, module_dmn, &tls_vaddr); + } + + // rjf: if not successful -> retry + if(!success) + { + retry_out[0] = 1; + } + + // rjf: package as artifact + AC_Artifact artifact = {0}; + artifact.u64[0] = tls_vaddr; + return artifact; +} + +internal void d_tls_vaddr_artifact_destroy(AC_Artifact artifact) +{ + // NOTE(rjf): no-op +} + +internal U64 +d_cached_tls_vaddr_from_thread_module(D_Handle thread_handle, D_Handle module_handle, U64 endt_us, B32 *stale_out) +{ + U64 result = 0; + Access *access = access_open(); + D_Handle key_data[] = {thread_handle, module_handle}; + String8 key = str8((U8 *)&key_data[0], sizeof(key_data)); + AC_Artifact artifact = ac_artifact_from_key(access, key, d_tls_vaddr_artifact_create, d_tls_vaddr_artifact_destroy, endt_us, .stale_out = stale_out); + result = artifact.u64[0]; + access_close(access); + return result; +} + +//////////////////////////////// +//~ rjf: Call Stack Artifact Cache Hooks / Lookups + +internal AC_Artifact +d_call_stack_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) +{ + AC_Artifact artifact = {0}; + { + Temp scratch = scratch_begin(0, 0); + + //- rjf: unpack key + D_Handle thread_handle = {0}; + str8_deserial_read_struct(key, 0, &thread_handle); + + //- rjf: produce mini entity context for just this call stack build + D_EntityCtx *entity_ctx = push_array(scratch.arena, D_EntityCtx, 1); + MutexScopeR(d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + D_EntityCtx *src_ctx = &d_ctrl_state->ctrl_thread_entity_store->ctx; + d_select_entity_ctx(src_ctx); + D_EntityCtx *dst_ctx = entity_ctx; + { + dst_ctx->root = &d_entity_nil; + dst_ctx->hash_slots_count = 1024; + dst_ctx->hash_slots = push_array(scratch.arena, D_EntityHashSlot, dst_ctx->hash_slots_count); + MemoryCopyArray(dst_ctx->entity_kind_counts, src_ctx->entity_kind_counts); + MemoryCopyArray(dst_ctx->entity_kind_alloc_gens, src_ctx->entity_kind_alloc_gens); + } + D_Entity *src_thread = d_entity_from_handle(thread_handle); + D_Entity *src_process = d_process_from_entity(src_thread); + { + D_EntityRec rec = {0}; + D_Entity *dst_parent = &d_entity_nil; + for(D_Entity *src_e = src_process; src_e != &d_entity_nil; src_e = rec.next) + { + rec = d_entity_rec_depth_first_pre(src_e, src_process); + + // rjf: determine if we need this entity + B32 need_this_entity = (d_handle_match(thread_handle, src_e->handle) || src_e->kind == D_EntityKind_Module || src_e->kind == D_EntityKind_Process || src_e->kind == D_EntityKind_DebugInfoPath); + + // rjf: copy this entity + D_Entity *dst_e = &d_entity_nil; + if(need_this_entity) + { + dst_e = push_array(scratch.arena, D_Entity, 1); + { + dst_e->first = dst_e->last = dst_e->next = dst_e->prev = &d_entity_nil; + dst_e->parent = dst_parent; + dst_e->kind = src_e->kind; + dst_e->arch = src_e->arch; + dst_e->is_frozen = src_e->is_frozen; + dst_e->is_soloed = src_e->is_soloed; + dst_e->rgba = src_e->rgba; + dst_e->handle = src_e->handle; + dst_e->id = src_e->id; + dst_e->vaddr_range = src_e->vaddr_range; + dst_e->stack_base = src_e->stack_base; + dst_e->timestamp = src_e->timestamp; + dst_e->bp_flags = src_e->bp_flags; + dst_e->string = str8_copy(scratch.arena, src_e->string); + dst_e->os = src_e->os; + } + if(dst_parent == &d_entity_nil) + { + dst_ctx->root = dst_e; + } + else + { + DLLPushBack_NPZ(&d_entity_nil, dst_parent->first, dst_parent->last, dst_e, next, prev); + } + } + + // rjf: insert into hash map + if(dst_e != &d_entity_nil) + { + U64 hash = d_hash_from_handle(dst_e->handle); + U64 slot_idx = hash%dst_ctx->hash_slots_count; + D_EntityHashSlot *slot = &dst_ctx->hash_slots[slot_idx]; + D_EntityHashNode *node = 0; + for(D_EntityHashNode *n = slot->first; n != 0; n = n->next) + { + if(d_handle_match(n->entity->handle, dst_e->handle)) + { + node = n; + break; + } + } + if(node == 0) + { + node = push_array(scratch.arena, D_EntityHashNode, 1); + MemoryZeroStruct(node); + DLLPushBack(slot->first, slot->last, node); + node->entity = dst_e; + } + } + + // rjf: push/pop + if(rec.push_count) + { + dst_parent = dst_e; + } + else for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1) + { + dst_parent = dst_parent->parent; + } + } + } + } + + //- rjf: select entity context + d_select_entity_ctx(entity_ctx); + + //- rjf: compute call stack + D_Entity *thread = d_entity_from_handle(thread_handle); + B32 good = 1; + B32 retry = 0; + Arena *arena = 0; + D_CallStack *call_stack = 0; + if(thread != &d_entity_nil) + { + good = 0; + arena = arena_alloc(); + call_stack = push_array(arena, D_CallStack, 1); + D_Entity *process = d_process_from_entity(thread); + U64 pre_reg_gen = 0; + U64 post_reg_gen = 0; + U64 pre_mem_gen = 0; + U64 post_mem_gen = 0; + D_Unwind unwind = {0}; + { + pre_reg_gen = d_reg_gen(); + pre_mem_gen = d_mem_gen(); + unwind = d_unwind_from_thread(arena, thread_handle, now_time_us()+100); + if(!(unwind.flags & D_UnwindFlag_Stale)) + { + good = 1; + call_stack[0] = d_call_stack_from_unwind(arena, process, &unwind); + } + else + { + retry = 1; + } + post_reg_gen = d_reg_gen(); + post_mem_gen = d_mem_gen(); + } + if(pre_reg_gen != post_reg_gen || pre_mem_gen != post_mem_gen) + { + good = 0; + retry = 1; + } + if(!good) + { + arena_release(arena); + } + } + + //- rjf: broadcast update + if(good && d_ctrl_state->wakeup_hook != 0) + { + d_ctrl_state->wakeup_hook(); + } + + //- rjf: bundle call stack as artifact + if(good) + { + artifact.u64[0] = (U64)arena; + artifact.u64[1] = (U64)call_stack; + } + + //- rjf: mark retry + retry_out[0] = retry; + + scratch_end(scratch); + } + return artifact; +} + +internal void +d_call_stack_artifact_destroy(AC_Artifact artifact) +{ + Arena *arena = (Arena *)artifact.u64[0]; + if(arena != 0) + { + arena_release(arena); + } +} + +internal D_CallStack +d_call_stack_from_thread(Access *access, D_Handle thread_handle, B32 high_priority, U64 endt_us) +{ + D_CallStack result = {0}; + { + AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&thread_handle), d_call_stack_artifact_create, d_call_stack_artifact_destroy, endt_us, + .gen = d_mem_gen() + d_reg_gen(), + .evict_threshold_us = 10000000, + .flags = high_priority ? AC_Flag_HighPriority : 0); + if(artifact.u64[1] != 0) + { + MemoryCopyStruct(&result, (D_CallStack *)artifact.u64[1]); + } + } + return result; +} + +//////////////////////////////// +//~ rjf: Call Stack Tree Artifact Cache Hooks / Lookups + +internal AC_Artifact +d_call_stack_tree_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out) +{ + Temp scratch = scratch_begin(0, 0); + Access *access = access_open(); + + //- rjf: gather list of all thread handles + U64 threads_count = 0; + D_Handle *threads = 0; + D_Handle *threads_processes = 0; + Arch *threads_arches = 0; + MutexScopeR(d_ctrl_state->ctrl_thread_entity_ctx_rw_mutex) + { + D_EntityArray thread_entities = d_entity_array_from_kind(D_EntityKind_Thread); + threads_count = thread_entities.count; + threads = push_array(scratch.arena, D_Handle, threads_count); + threads_processes = push_array(scratch.arena, D_Handle, threads_count); + threads_arches = push_array(scratch.arena, Arch, threads_count); + for EachIndex(idx, threads_count) + { + threads[idx] = thread_entities.v[idx]->handle; + threads_processes[idx] = thread_entities.v[idx]->parent->handle; + threads_arches[idx] = thread_entities.v[idx]->arch; + } + } + + //- rjf: gather all callstacks + B32 stale = 0; + U64 pre_mem_gen = d_mem_gen(); + U64 pre_reg_gen = d_reg_gen(); + D_CallStack *call_stacks = push_array(scratch.arena, D_CallStack, threads_count); + { + for EachIndex(idx, threads_count) + { + call_stacks[idx] = d_call_stack_from_thread(access, threads[idx], 0, 0); + if(call_stacks[idx].concrete_frames_count == 0) + { + stale = 1; + break; + } + } + } + U64 post_mem_gen = d_mem_gen(); + U64 post_reg_gen = d_reg_gen(); + stale = (stale || pre_mem_gen != post_mem_gen || pre_reg_gen != post_reg_gen); + + //- rjf: build call stack tree + Arena *arena = 0; + D_CallStackTree *tree = 0; + if(!stale) + { + U64 id_gen = 0; + arena = arena_alloc(); + tree = push_array(arena, D_CallStackTree, 1); + tree->root = push_array(arena, D_CallStackTreeNode, 1); + MemoryCopyStruct(tree->root, &d_call_stack_tree_node_nil); + tree->root->id = id_gen; + tree->slots_count = Max(1, threads_count); + tree->slots = push_array(arena, D_CallStackTreeNode *, tree->slots_count); + id_gen += 1; + for EachIndex(thread_idx, threads_count) + { + D_Handle thread = threads[thread_idx]; + D_Handle process = threads_processes[thread_idx]; + Arch arch = threads_arches[thread_idx]; + ARCH_Info *arch_info = arch_info_from_arch(arch); + D_CallStack call_stack = call_stacks[thread_idx]; + D_CallStackTreeNode *thread_node = tree->root; + for EachIndex(frame_idx, call_stack.frames_count) + { + U64 vaddr = arch_ip_from_reg_block(arch_info, call_stack.frames[frame_idx].regs); + U64 depth = call_stack.frames[frame_idx].inline_depth; + D_CallStackTreeNode *next_node = &d_call_stack_tree_node_nil; + for(D_CallStackTreeNode *child = thread_node->first; child != &d_call_stack_tree_node_nil; child = child->next) + { + if(d_handle_match(child->process, process) && child->vaddr == vaddr && child->depth == depth) + { + next_node = child; + break; + } + } + if(next_node == &d_call_stack_tree_node_nil) + { + next_node = push_array(arena, D_CallStackTreeNode, 1); + MemoryCopyStruct(next_node, &d_call_stack_tree_node_nil); + next_node->id = id_gen; + SLLStackPush_N(tree->slots[next_node->id%tree->slots_count], next_node, hash_next); + id_gen += 1; + SLLQueuePush_NZ(&d_call_stack_tree_node_nil, thread_node->first, thread_node->last, next_node, next); + next_node->parent = thread_node; + thread_node->child_count += 1; + } + thread_node = next_node; + } + d_handle_list_push(arena, &thread_node->threads, &thread); + for(D_CallStackTreeNode *n = thread_node; n != &d_call_stack_tree_node_nil; n = n->parent) + { + n->all_descendant_threads_count += 1; + } + } + } + + //- rjf: produce artifact + AC_Artifact artifact = {0}; + { + artifact.u64[0] = (U64)arena; + artifact.u64[1] = (U64)tree; + } + + //- rjf: retry on stale + if(stale) + { + retry_out[0] = 1; + } + + access_close(access); + scratch_end(scratch); + return artifact; +} + +internal void +d_call_stack_tree_artifact_destroy(AC_Artifact artifact) +{ + Arena *arena = (Arena *)artifact.u64[0]; + if(arena != 0) + { + arena_release(arena); + } +} + +internal D_CallStackTree +d_call_stack_tree(Access *access, U64 endt_us) +{ + D_CallStackTree result = {&d_call_stack_tree_node_nil}; + { + AC_Artifact artifact = ac_artifact_from_key(access, str8_zero(), d_call_stack_tree_artifact_create, d_call_stack_tree_artifact_destroy, endt_us); + if(artifact.u64[1] != 0) + { + MemoryCopyStruct(&result, (D_CallStackTree *)artifact.u64[1]); + } + } + return result; +} diff --git a/src/dbg_engine/dbg_engine_ctrl.h b/src/dbg_engine/dbg_engine_ctrl.h new file mode 100644 index 00000000..47a8a750 --- /dev/null +++ b/src/dbg_engine/dbg_engine_ctrl.h @@ -0,0 +1,673 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DBG_ENGINE_CTRL_H +#define DBG_ENGINE_CTRL_H + +//////////////////////////////// +//~ rjf: Unwind Types + +typedef U32 D_UnwindFlags; +enum +{ + D_UnwindFlag_Error = (1<<0), + D_UnwindFlag_Stale = (1<<1), +}; + +typedef struct D_UnwindStepResult D_UnwindStepResult; +struct D_UnwindStepResult +{ + D_UnwindFlags flags; +}; + +typedef struct D_UnwindFrame D_UnwindFrame; +struct D_UnwindFrame +{ + void *regs; + U64 cfa; +}; + +typedef struct D_UnwindFrameNode D_UnwindFrameNode; +struct D_UnwindFrameNode +{ + D_UnwindFrameNode *next; + D_UnwindFrameNode *prev; + D_UnwindFrame v; +}; + +typedef struct D_UnwindFrameArray D_UnwindFrameArray; +struct D_UnwindFrameArray +{ + D_UnwindFrame *v; + U64 count; +}; + +typedef struct D_Unwind D_Unwind; +struct D_Unwind +{ + D_UnwindFrameArray frames; + D_UnwindFlags flags; +}; + +//////////////////////////////// +//~ rjf: Call Stack Types + +typedef struct D_CallStackFrame D_CallStackFrame; +struct D_CallStackFrame +{ + U64 unwind_count; + U64 inline_depth; + void *regs; + U64 cfa; +}; + +typedef struct D_CallStack D_CallStack; +struct D_CallStack +{ + D_CallStackFrame *frames; + U64 frames_count; + D_CallStackFrame **concrete_frames; + U64 concrete_frames_count; +}; + +//////////////////////////////// +//~ rjf: Call Stack Tree Types + +typedef struct D_CallStackTreeNode D_CallStackTreeNode; +struct D_CallStackTreeNode +{ + D_CallStackTreeNode *hash_next; + D_CallStackTreeNode *first; + D_CallStackTreeNode *last; + D_CallStackTreeNode *next; + D_CallStackTreeNode *parent; + U64 child_count; + U64 id; + D_Handle process; + U64 vaddr; + U64 depth; + D_HandleList threads; + U64 all_descendant_threads_count; +}; + +typedef struct D_CallStackTree D_CallStackTree; +struct D_CallStackTree +{ + D_CallStackTreeNode *root; + U64 slots_count; + D_CallStackTreeNode **slots; +}; + +//////////////////////////////// +//~ rjf: Evaluation Spaces + +typedef U64 D_EvalSpaceKind; +enum +{ + D_EvalSpaceKind_Entity = E_SpaceKind_FirstUserDefined, + D_EvalSpaceKind_FirstUserDefined, +}; + +//////////////////////////////// +//~ rjf: Process Memory Types + +typedef struct D_ProcessMemorySlice D_ProcessMemorySlice; +struct D_ProcessMemorySlice +{ + String8 data; + U64 *byte_bad_flags; + U64 *byte_changed_flags; + B32 stale; + B32 any_byte_bad; + B32 any_byte_changed; +}; + +//////////////////////////////// +//~ rjf: Thread Register Cache Types + +typedef struct D_ThreadRegCacheNode D_ThreadRegCacheNode; +struct D_ThreadRegCacheNode +{ + D_ThreadRegCacheNode *next; + D_ThreadRegCacheNode *prev; + D_Handle handle; + U64 block_size; + void *block; + U64 reg_gen; +}; + +typedef struct D_ThreadRegCacheSlot D_ThreadRegCacheSlot; +struct D_ThreadRegCacheSlot +{ + D_ThreadRegCacheNode *first; + D_ThreadRegCacheNode *last; +}; + +typedef struct D_ThreadRegCacheStripe D_ThreadRegCacheStripe; +struct D_ThreadRegCacheStripe +{ + Arena *arena; + RWMutex rw_mutex; +}; + +typedef struct D_ThreadRegCache D_ThreadRegCache; +struct D_ThreadRegCache +{ + U64 slots_count; + D_ThreadRegCacheSlot *slots; + U64 stripes_count; + D_ThreadRegCacheStripe *stripes; +}; + +//////////////////////////////// +//~ rjf: Module Image Info Cache Types + +typedef struct D_ModuleInfo D_ModuleInfo; +struct D_ModuleInfo +{ + U64 entry_point_voff; + UWND_Unwinder unwinder; + void *unwind_info; + String8 local_debug_info_path; + String8 dbg_name; + Guid dbg_guid; + U64 dbg_age; + U64 raddbg_attached_marker_voff; + String8 raddbg_data; +}; + +typedef struct D_ModuleInfoCacheNode D_ModuleInfoCacheNode; +struct D_ModuleInfoCacheNode +{ + D_ModuleInfoCacheNode *next; + D_ModuleInfoCacheNode *prev; + AccessPt access_pt; + D_Handle module; + Arena *arena; + D_ModuleInfo v; +}; + +typedef struct D_ModuleInfoCacheSlot D_ModuleInfoCacheSlot; +struct D_ModuleInfoCacheSlot +{ + D_ModuleInfoCacheNode *first; + D_ModuleInfoCacheNode *last; +}; + +typedef struct D_ModuleInfoCache D_ModuleInfoCache; +struct D_ModuleInfoCache +{ + U64 slots_count; + D_ModuleInfoCacheSlot *slots; + StripeArray stripes; +}; + +//////////////////////////////// +//~ rjf: Opened Dump Cache Types + +typedef struct D_DumpMemoryRange D_DumpMemoryRange; +struct D_DumpMemoryRange +{ + U64 base_vaddr; + Rng1U64 foff_range; +}; + +typedef struct D_DumpThread D_DumpThread; +struct D_DumpThread +{ + D_Handle thread_handle; + U32 id; + U64 context_foff; +}; + +typedef struct D_DumpModule D_DumpModule; +struct D_DumpModule +{ + D_Handle module_handle; + Rng1U64 vaddr_range; + String8 path; + File file; + FileProperties props; + FileMap map; + void *base; +}; + +typedef struct D_DumpNode D_DumpNode; +struct D_DumpNode +{ + D_DumpNode *next; + D_DumpNode *prev; + D_Handle process; + File file; + FileProperties props; + FileMap map; + void *base; + Arena *arena; + D_DumpMemoryRange *memory_ranges; + U64 memory_ranges_count; + D_DumpThread *threads; + U64 threads_count; + D_DumpModule *modules; + U64 modules_count; +}; + +typedef struct D_DumpSlot D_DumpSlot; +struct D_DumpSlot +{ + D_DumpNode *first; + D_DumpNode *last; +}; + +typedef struct D_DumpCache D_DumpCache; +struct D_DumpCache +{ + U64 slots_count; + D_DumpSlot *slots; + StripeArray stripes; +}; + +//////////////////////////////// +//~ rjf: Touched Debug Info Directory Cache + +typedef struct D_DbgDirNode D_DbgDirNode; +struct D_DbgDirNode +{ + D_DbgDirNode *first; + D_DbgDirNode *last; + D_DbgDirNode *next; + D_DbgDirNode *prev; + D_DbgDirNode *parent; + String8 name; + U64 search_count; + U64 child_count; + U64 module_direct_count; +}; + +//////////////////////////////// +//~ rjf: Control Thread Evaluation Scopes + +typedef struct D_EvalScope D_EvalScope; +struct D_EvalScope +{ + Access *access; + E_BaseCtx base_ctx; + E_IRCtx ir_ctx; + E_InterpretCtx interpret_ctx; +}; + +//////////////////////////////// +//~ rjf: Module Requirement Cache Types + +typedef struct D_ModuleReqCacheNode D_ModuleReqCacheNode; +struct D_ModuleReqCacheNode +{ + D_ModuleReqCacheNode *next; + D_Handle module; + B32 required; +}; + +//////////////////////////////// +//~ rjf: Wakeup Hook Function Types + +#define D_WAKEUP_FUNCTION_DEF(name) void name(void) +typedef D_WAKEUP_FUNCTION_DEF(D_WakeupFunctionType); + +//////////////////////////////// +//~ rjf: Main State Types + +typedef struct D_CtrlState D_CtrlState; +struct D_CtrlState +{ + Arena *arena; + D_WakeupFunctionType *wakeup_hook; + + // rjf: name -> register hash tables for eval + E_String2NumMap arch_string2reg_tables[Arch_COUNT]; + + // rjf: caches + D_ThreadRegCache thread_reg_cache; + D_ModuleInfoCache module_info_cache; + D_DumpCache dump_cache; + + // rjf: generations + U64 run_gen; + U64 mem_gen; + U64 reg_gen; + + // rjf: user -> ctrl msg ring buffer + U64 u2c_ring_size; + U8 *u2c_ring_base; + U64 u2c_ring_write_pos; + U64 u2c_ring_read_pos; + Mutex u2c_ring_mutex; + CondVar u2c_ring_cv; + + // rjf: ctrl -> user event ring buffer + U64 c2u_ring_size; + U64 c2u_ring_max_string_size; + U8 *c2u_ring_base; + U64 c2u_ring_write_pos; + U64 c2u_ring_read_pos; + Mutex c2u_ring_mutex; + CondVar c2u_ring_cv; + + // rjf: ctrl thread state + U64 ctrl_thread_dump_handle_id_gen; + U64 ctrl_thread_run_state; + String8 ctrl_thread_log_path; + Thread ctrl_thread; + Log *ctrl_thread_log; + RWMutex ctrl_thread_entity_ctx_rw_mutex; + D_EntityCtxRWStore *ctrl_thread_entity_store; + E_Cache *ctrl_thread_eval_cache; + Arena *ctrl_thread_msg_process_arena; + Arena *dmn_event_arena; + DMN_EventNode *first_dmn_event_node; + DMN_EventNode *last_dmn_event_node; + DMN_EventNode *free_dmn_event_node; + Arena *user_entry_point_arena; + String8List user_entry_points; + U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64]; + B32 auto_download_debug_info; + U64 process_counter; + Arena *dbg_dir_arena; + D_DbgDirNode *dbg_dir_root; + U64 module_req_cache_slots_count; + D_ModuleReqCacheNode **module_req_cache_slots; + String8List msg_user_bp_touched_files; + String8List msg_user_bp_touched_symbols; +}; + +//////////////////////////////// +//~ rjf: Globals + +global D_CtrlState *d_ctrl_state = 0; +thread_static D_EntityCtx *d_entity_ctx = 0; +read_only global D_Entity d_entity_nil = +{ + &d_entity_nil, + &d_entity_nil, + &d_entity_nil, + &d_entity_nil, + &d_entity_nil, +}; +read_only global D_CallStackTreeNode d_call_stack_tree_node_nil = +{ + 0, + &d_call_stack_tree_node_nil, + &d_call_stack_tree_node_nil, + &d_call_stack_tree_node_nil, + &d_call_stack_tree_node_nil, +}; +thread_static D_EntityCtxLookupAccel *d_entity_ctx_lookup_accel = 0; +read_only global D_ModuleInfo d_module_info_nil = {0}; + +//////////////////////////////// +//~ rjf: Basic Type Functions + +internal U64 d_hash_from_handle(D_Handle handle); +internal D_EventCause d_event_cause_from_dmn_event_kind(DMN_EventKind event_kind); +internal D_ExceptionKind d_exception_kind_from_dmn(DMN_ExceptionKind kind); +internal String8 d_string_from_event_kind(D_EventKind kind); +internal String8 d_string_from_msg_kind(D_MsgKind kind); +internal D_EntityKind d_entity_kind_from_string(String8 string); +internal DMN_TrapFlags d_dmn_trap_flags_from_breakpoint_flags(D_BreakpointFlags flags); +internal D_BreakpointFlags d_breakpoint_flags_from_dmn_trap_flags(DMN_TrapFlags flags); + +//////////////////////////////// +//~ rjf: Handle Type Functions + +internal D_Handle d_handle_zero(void); +internal B32 d_handle_match(D_Handle a, D_Handle b); +internal void d_handle_list_push(Arena *arena, D_HandleList *list, D_Handle *pair); +internal D_HandleList d_handle_list_copy(Arena *arena, D_HandleList *src); +internal D_HandleArray d_handle_array_from_list(Arena *arena, D_HandleList *src); +internal String8 d_string_from_handle(Arena *arena, D_Handle handle); +internal D_Handle d_handle_from_string(String8 string); +internal DMN_Handle d_dmn_from_handle(D_Handle handle); +internal D_Handle d_handle_from_dmn(D_MachineID machine_id, DMN_Handle handle); +internal D_Handle d_dump_handle_make(D_MachineID machine_id, U64 id); + +//////////////////////////////// +//~ rjf: Trap Type Functions + +internal void d_trap_list_push(Arena *arena, D_TrapList *list, D_Trap *trap); +internal D_TrapList d_trap_list_copy(Arena *arena, D_TrapList *src); + +//////////////////////////////// +//~ rjf: User Breakpoint Type Functions + +internal void d_breakpoint_list_push(Arena *arena, D_BreakpointList *list, D_Breakpoint *bp); +internal D_BreakpointList d_breakpoint_list_copy(Arena *arena, D_BreakpointList *src); + +//////////////////////////////// +//~ rjf: Message Type Functions + +//- rjf: deep copying +internal void d_msg_deep_copy(Arena *arena, D_Msg *dst, D_Msg *src); + +//- rjf: list building +internal D_Msg *d_msg_list_push(Arena *arena, D_MsgList *list); +internal D_MsgList d_msg_list_deep_copy(Arena *arena, D_MsgList *src); +internal void d_msg_list_concat_in_place(D_MsgList *dst, D_MsgList *src); + +//- rjf: serialization +internal String8 d_serialized_string_from_msg_list(Arena *arena, D_MsgList *msgs); +internal D_MsgList d_msg_list_from_serialized_string(Arena *arena, String8 string); + +//////////////////////////////// +//~ rjf: Event Type Functions + +//- rjf: list building +internal D_Event *d_event_list_push(Arena *arena, D_EventList *list); +internal void d_event_list_concat_in_place(D_EventList *dst, D_EventList *to_push); + +//- rjf: serialization +internal String8 d_serialized_string_from_event(Arena *arena, D_Event *event, U64 max); +internal D_Event d_event_from_serialized_string(Arena *arena, String8 string); + +//////////////////////////////// +//~ rjf: Entity Type Functions + +//- rjf: entity context selection +internal D_EntityCtx *d_select_entity_ctx(D_EntityCtx *ctx); + +//- rjf: entity list data structures +internal void d_entity_list_push(Arena *arena, D_EntityList *list, D_Entity *entity); +internal D_EntityList d_entity_list_from_handle_list(Arena *arena, D_HandleList *list); +#define d_entity_list_first(list) ((list)->first ? (list)->first->v : &d_entity_nil) + +//- rjf: entity array data structure +internal D_EntityArray d_entity_array_from_list(Arena *arena, D_EntityList *list); +#define d_entity_array_first(array) ((array)->count != 0 ? (array)->v[0] : &d_entity_nil) + +//- rjf: entity context (entity group read-only) functions +internal D_Entity *d_entity_from_handle(D_Handle handle); +internal D_Entity *d_entity_child_from_kind(D_Entity *parent, D_EntityKind kind); +internal D_Entity *d_entity_ancestor_from_kind(D_Entity *entity, D_EntityKind kind); +internal D_Entity *d_process_from_entity(D_Entity *entity); +internal D_Entity *d_module_from_process_vaddr(D_Entity *process, U64 vaddr); +internal DI_Key d_dbgi_key_from_module(D_Entity *module); +internal D_Entity *d_module_from_thread_candidates(D_Entity *thread, D_EntityList *candidates); +internal U64 d_vaddr_from_voff(D_Entity *module, U64 voff); +internal U64 d_voff_from_vaddr(D_Entity *module, U64 vaddr); +internal Rng1U64 d_vaddr_range_from_voff_range(D_Entity *module, Rng1U64 voff_range); +internal Rng1U64 d_voff_range_from_vaddr_range(D_Entity *module, Rng1U64 vaddr_range); +internal B32 d_entity_tree_is_frozen(D_Entity *root); + +//- rjf: entity tree iteration +internal D_EntityRec d_entity_rec_depth_first(D_Entity *entity, D_Entity *subtree_root, U64 sib_off, U64 child_off); +#define d_entity_rec_depth_first_pre(entity, subtree_root) d_entity_rec_depth_first((entity), (subtree_root), OffsetOf(D_Entity, next), OffsetOf(D_Entity, first)) + +//- rjf: entity ctx r/w store state functions +internal D_EntityCtxRWStore *d_entity_ctx_rw_store_alloc(void); +internal void d_entity_ctx_rw_store_release(D_EntityCtxRWStore *store); + +//- rjf: string allocation/deletion +internal U64 d_name_bucket_num_from_string_size(U64 size); +internal String8 d_entity_string_alloc(D_EntityCtxRWStore *store, String8 string); +internal void d_entity_string_release(D_EntityCtxRWStore *store, String8 string); + +//- rjf: entity construction/deletion +internal D_Entity *d_entity_alloc(D_EntityCtxRWStore *store, D_Entity *parent, D_EntityKind kind, Arch arch, D_Handle handle, U64 id); +internal void d_entity_release(D_EntityCtxRWStore *store, D_Entity *entity); + +//- rjf: entity equipment +internal void d_entity_equip_string(D_EntityCtxRWStore *store, D_Entity *entity, String8 string); + +//- rjf: accelerated entity context lookups +internal D_EntityCtxLookupAccel *d_thread_entity_ctx_lookup_accel(void); +internal D_EntityArray d_entity_array_from_kind(D_EntityKind kind); +internal D_EntityList d_modules_from_dbgi_key(Arena *arena, DI_Key dbgi_key); +internal D_Entity *d_thread_from_id(U64 id); + +//- rjf: applying events to entity caches +internal void d_entity_store_apply_events(D_EntityCtxRWStore *store, D_EventList *list); + +//////////////////////////////// +//~ rjf: Wakeup Callback Registration + +internal void d_set_wakeup_hook(D_WakeupFunctionType *wakeup_hook); + +//////////////////////////////// +//~ rjf: Thread Register Functions + +//- rjf: thread handle read/write +internal B32 d_thread_read_reg_block(D_Handle handle, void *reg_block); +internal B32 d_thread_write_reg_block(D_Handle thread, void *reg_block); +internal U64 d_ip_from_thread(D_Handle handle); +internal U64 d_sp_from_thread(D_Handle handle); +internal B32 d_thread_get_module_tls_vaddr(D_Handle thread, D_Handle module, U64 *vaddr_out); + +//- rjf: thread register cache reading +internal void *d_cached_reg_block_from_thread(Arena *arena, D_Handle handle); +internal U64 d_cached_ip_from_thread(D_Handle handle); +internal U64 d_cached_sp_from_thread(D_Handle handle); + +//////////////////////////////// +//~ rjf: Module Image Info Functions + +//- rjf: cache lookups +internal D_ModuleInfo *d_info_from_module(Access *access, D_Handle module); +internal U64 d_entry_point_voff_from_module(D_Handle module_handle); +internal String8 d_initial_debug_info_path_from_module(Arena *arena, D_Handle module_handle); + +//////////////////////////////// +//~ rjf: Unwinding Functions + +internal D_Unwind d_unwind_from_thread(Arena *arena, D_Handle thread, U64 endt_us); + +//////////////////////////////// +//~ rjf: Call Stack Building Functions + +internal D_CallStack d_call_stack_from_unwind(Arena *arena, D_Entity *process, D_Unwind *base_unwind); +internal D_CallStackFrame *d_call_stack_frame_from_unwind_and_inline_depth(D_CallStack *call_stack, U64 unwind_count, U64 inline_depth); + +//////////////////////////////// +//~ rjf: Halting All Attached Processes + +internal void d_halt(void); + +//////////////////////////////// +//~ rjf: Shared Accessor Functions + +//- rjf: generation counters +internal U64 d_run_gen(void); +internal U64 d_mem_gen(void); +internal U64 d_reg_gen(void); + +//- rjf: name -> register/alias hash tables, for eval +internal E_String2NumMap *d_string2reg_from_arch(Arch arch); + +//////////////////////////////// +//~ rjf: Control-Thread Functions + +//- rjf: user -> control thread communication +internal B32 d_u2c_push_msgs(D_MsgList *msgs, U64 endt_us); +internal D_MsgList d_u2c_pop_msgs(Arena *arena); + +//- rjf: control -> user thread communication +internal void d_c2u_push_events(D_EventList *events); +internal D_EventList d_c2u_pop_events(Arena *arena); + +//- rjf: entry point +internal void d_ctrl_thread__entry_point(void *p); + +//- rjf: breakpoint resolution +internal void d_ctrl_thread__append_resolved_module_user_bp_traps(Arena *arena, D_EvalScope *eval_scope, D_Handle process, D_Handle module, D_BreakpointList *user_bps, DMN_TrapChunkList *traps_out); +internal void d_ctrl_thread__append_resolved_process_user_bp_traps(Arena *arena, D_EvalScope *eval_scope, D_Handle process, D_BreakpointList *user_bps, DMN_TrapChunkList *traps_out); +internal void d_ctrl_thread__append_program_defined_bp_traps(Arena *arena, D_Entity *bp, DMN_TrapChunkList *traps_out); + +//- rjf: module lifetime open/close work +internal void d_ctrl_thread__module_open(D_Handle process, D_Handle module, U64 base_vaddr, DMN_ModuleInfo *module_info); +internal void d_ctrl_thread__module_close(D_Handle process, D_Handle module, U64 base_vaddr); + +//- rjf: dump process closing work +internal void d_ctrl_thread__close_dump_process(D_MsgID msg_id, D_Handle process); + +//- rjf: attached process running/event gathering +internal DMN_Event *d_ctrl_thread__next_dmn_event(Arena *arena, DMN_CtrlCtx *ctrl_ctx, D_Msg *msg, DMN_RunCtrls *run_ctrls, D_Spoof *spoof); + +//- rjf: eval helpers +internal U64 d_ctrl_eval_space_gen(E_Space space); +internal B32 d_ctrl_eval_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 vaddr_range); + +//- rjf: control thread eval scopes +internal D_EvalScope *d_ctrl_thread__eval_scope_begin(Arena *arena, D_BreakpointList *user_bps, D_Entity *thread); +internal void d_ctrl_thread__eval_scope_end(D_EvalScope *scope); + +//- rjf: log flusher +internal void d_ctrl_thread__end_and_flush_log(void); + +//- rjf: msg kind implementations +internal void d_ctrl_thread__launch(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__attach(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__open_crash_dump(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__kill(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__kill_all(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__detach(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__run(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); +internal void d_ctrl_thread__single_step(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg); + +//////////////////////////////// +//~ rjf: Process Memory Artifact Cache Hooks / Lookups + +//- rjf: synchronous process memory reading helpers +internal U64 d_process_read(D_Handle process, Rng1U64 range, void *dst); +internal B32 d_process_write(D_Handle process, Rng1U64 range, void *dst); +internal String8 d_data_from_process_vaddr_range(Arena *arena, D_Handle process, Rng1U64 vaddr_range, B32 zero_terminated); +#define d_process_read_struct(process, vaddr, ptr) d_process_read((process), r1u64((vaddr), (vaddr) + sizeof(*(ptr))), (ptr)) +#define d_process_write_struct(process, vaddr, ptr) d_process_write((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), (ptr)) + +//- rjf: process memory artifact cache +internal AC_Artifact d_memory_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); +internal void d_memory_artifact_destroy(AC_Artifact artifact); +internal C_Key d_key_from_process_vaddr_range(D_Handle process, Rng1U64 vaddr_range, B32 zero_terminated, B32 wait_for_fresh, U64 endt_us, B32 *out_is_stale); + +//- rjf: process memory reading helpers +internal D_ProcessMemorySlice d_process_memory_slice_from_vaddr_range(Arena *arena, D_Handle process, Rng1U64 range, B32 wait_for_fresh, U64 endt_us); +internal B32 d_process_memory_read(D_Handle process, Rng1U64 range, B32 *is_stale_out, void *out, U64 endt_us); +#define d_process_memory_read_struct(process, vaddr, is_stale_out, ptr, endt_us) d_process_memory_read((process), r1u64((vaddr), (vaddr)+(sizeof(*(ptr)))), (is_stale_out), (ptr), (endt_us)) + +//////////////////////////////// +//~ rjf: TLS Address Artifact Cache Hooks / Lookups + +internal AC_Artifact d_tls_vaddr_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); +internal void d_tls_vaddr_artifact_destroy(AC_Artifact artifact); +internal U64 d_cached_tls_vaddr_from_thread_module(D_Handle thread_handle, D_Handle module_handle, U64 endt_us, B32 *stale_out); + +//////////////////////////////// +//~ rjf: Call Stack Artifact Cache Hooks / Lookups + +internal AC_Artifact d_call_stack_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); +internal void d_call_stack_artifact_destroy(AC_Artifact artifact); +internal D_CallStack d_call_stack_from_thread(Access *access, D_Handle thread_handle, B32 high_priority, U64 endt_us); + +//////////////////////////////// +//~ rjf: Call Stack Tree Artifact Cache Hooks / Lookups + +internal AC_Artifact d_call_stack_tree_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); +internal void d_call_stack_tree_artifact_destroy(AC_Artifact artifact); +internal D_CallStackTree d_call_stack_tree(Access *access, U64 endt_us); + +#endif // DBG_ENGINE_CTRL_H diff --git a/src/dbg_engine/dbg_engine_inc.c b/src/dbg_engine/dbg_engine_inc.c index b3d11c5b..04b84edd 100644 --- a/src/dbg_engine/dbg_engine_inc.c +++ b/src/dbg_engine/dbg_engine_inc.c @@ -2,3 +2,5 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) #include "dbg_engine_core.c" +#include "dbg_engine_user.c" +#include "dbg_engine_ctrl.c" diff --git a/src/dbg_engine/dbg_engine_inc.h b/src/dbg_engine/dbg_engine_inc.h index 5dcf2fb4..df2d596d 100644 --- a/src/dbg_engine/dbg_engine_inc.h +++ b/src/dbg_engine/dbg_engine_inc.h @@ -5,5 +5,7 @@ #define DBG_ENGINE_INC_H #include "dbg_engine_core.h" +#include "dbg_engine_user.h" +#include "dbg_engine_ctrl.h" #endif // DBG_ENGINE_INC_H diff --git a/src/dbg_engine/dbg_engine_user.c b/src/dbg_engine/dbg_engine_user.c new file mode 100644 index 00000000..bafedc75 --- /dev/null +++ b/src/dbg_engine/dbg_engine_user.c @@ -0,0 +1,2292 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#undef LAYER_COLOR +#define LAYER_COLOR 0x4d9ae3ff + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal U64 +d_hash_from_string(String8 string) +{ + return u64_hash_from_seed_str8(5381, string); +} + +internal U64 +d_hash_from_seed_string__case_insensitive(U64 seed, String8 string) +{ + U64 result = seed; + for(U64 i = 0; i < string.size; i += 1) + { + result = ((result << 5) + result) + lower_from_char(string.str[i]); + } + return result; +} + +internal U64 +d_hash_from_string__case_insensitive(String8 string) +{ + return d_hash_from_seed_string__case_insensitive(5381, string); +} + +//////////////////////////////// +//~ rjf: Breakpoints + +internal D_BreakpointArray +d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src) +{ + D_BreakpointArray dst = {0}; + dst.count = src->count; + dst.v = push_array(arena, D_Breakpoint, dst.count); + MemoryCopy(dst.v, src->v, sizeof(dst.v[0])*dst.count); + for(U64 idx = 0; idx < dst.count; idx += 1) + { + dst.v[idx].file_path = push_str8_copy(arena, dst.v[idx].file_path); + dst.v[idx].vaddr_expr = push_str8_copy(arena, dst.v[idx].vaddr_expr); + dst.v[idx].condition = push_str8_copy(arena, dst.v[idx].condition); + } + return dst; +} + +//////////////////////////////// +//~ rjf: Path Map Application + +internal String8List +d_possible_path_overrides_from_maps_path(Arena *arena, D_Entity *primary_module, D_PathMapArray *path_maps, String8 file_path) +{ + // NOTE(rjf): This path, given some target file path, scans all file path map + // overrides, and collects the set of file paths which could've redirected + // to the target file path given the set of file path maps. + // + // For example, if I have a rule saying D:/devel/ maps to C:/devel/, and I + // feed in C:/devel/foo/bar.txt, then this path will construct + // D:/devel/foo/bar.txt, as a possible option. + // + // It will also preserve C:/devel/foo/bar.txt in the resultant list, so that + // overrideless files still work through this path, and both redirected + // files and non-redirected files can go through the same path. + // + String8List result = {0}; + str8_list_push(arena, &result, file_path); + Temp scratch = scratch_begin(&arena, 1); + PathStyle pth_style = PathStyle_Relative; + String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style); + + //- rjf: push possible overrides by relativizing according to module / debug info + { + String8 module_folder = str8_chop_last_slash(primary_module->string); + String8 path_relative_to_module = path_relative_dst_from_absolute_dst_src(arena, file_path, module_folder); + String8 debug_info_path = d_entity_child_from_kind(primary_module, D_EntityKind_DebugInfoPath)->string; + String8 debug_info_folder = str8_chop_last_slash(debug_info_path); + str8_list_push(arena, &result, path_relative_to_module); + if(!path_match_normalized(debug_info_folder, module_folder)) + { + String8 path_relative_to_debug_info = path_relative_dst_from_absolute_dst_src(arena, file_path, debug_info_folder); + str8_list_push(arena, &result, path_relative_to_debug_info); + } + } + + //- rjf: push possible overrides based on path map rules + { + for(U64 idx = 0; idx < path_maps->count; idx += 1) + { + //- rjf: unpack link + D_PathMap *map = &path_maps->v[idx]; + PathStyle src_style = PathStyle_Relative; + PathStyle dst_style = PathStyle_Relative; + String8List src_parts = path_normalized_list_from_string(scratch.arena, map->src, &src_style); + String8List dst_parts = path_normalized_list_from_string(scratch.arena, map->dst, &dst_style); + + //- rjf: determine if this link can possibly redirect to the target file path + B32 dst_redirects_to_pth = 0; + String8Node *non_redirected_pth_first = 0; + if(dst_style == pth_style && dst_parts.first != 0 && pth_parts.first != 0) + { + dst_redirects_to_pth = 1; + String8Node *dst_n = dst_parts.first; + String8Node *pth_n = pth_parts.first; + for(;dst_n != 0 && pth_n != 0; dst_n = dst_n->next, pth_n = pth_n->next) + { + if(!str8_match(dst_n->string, pth_n->string, StringMatchFlag_CaseInsensitive)) + { + dst_redirects_to_pth = 0; + break; + } + non_redirected_pth_first = pth_n->next; + } + } + + //- rjf: if this link can redirect to this path via `src` -> `dst`, compute + // possible full source path, by taking `src` and appending non-redirected + // suffix (which did not show up in `dst`) + if(dst_redirects_to_pth) + { + String8List candidate_parts = src_parts; + for(String8Node *p = non_redirected_pth_first; p != 0; p = p->next) + { + str8_list_push(scratch.arena, &candidate_parts, p->string); + } + StringJoin join = {0}; + join.sep = str8_lit("/"); + String8 candidate_path = str8_list_join(arena, &candidate_parts, &join); + str8_list_push(arena, &result, candidate_path); + } + } + } + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Debug Info Extraction Type Pure Functions + +internal D_LineList +d_line_list_copy(Arena *arena, D_LineList *list) +{ + D_LineList dst = {0}; + for(D_LineNode *src_n = list->first; src_n != 0; src_n = src_n->next) + { + D_LineNode *dst_n = push_array(arena, D_LineNode, 1); + MemoryCopyStruct(dst_n, src_n); + dst_n->v.file_path = push_str8_copy(arena, dst_n->v.file_path); + SLLQueuePush(dst.first, dst.last, dst_n); + dst.count += 1; + } + return dst; +} + +//////////////////////////////// +//~ rjf: Command Type Functions + +//- rjf: command parameters + +internal D_CmdParams +d_cmd_params_copy(Arena *arena, D_CmdParams *src) +{ + D_CmdParams dst = {0}; + MemoryCopyStruct(&dst, src); + dst.file_path = push_str8_copy(arena, dst.file_path); + dst.targets.v = push_array(arena, D_Target, dst.targets.count); + MemoryCopy(dst.targets.v, src->targets.v, sizeof(D_Target)*dst.targets.count); + for(U64 idx = 0; idx < dst.targets.count; idx += 1) + { + D_Target *target = &dst.targets.v[idx]; + target->exe = str8_copy(arena, target->exe); + target->args = str8_copy(arena, target->args); + target->working_directory = str8_copy(arena, target->working_directory); + target->custom_entry_point_name = str8_copy(arena, target->custom_entry_point_name); + target->stdout_path = str8_copy(arena, target->stdout_path); + target->stderr_path = str8_copy(arena, target->stderr_path); + target->stdin_path = str8_copy(arena, target->stdin_path); + target->env = str8_list_copy(arena, &target->env); + } + return dst; +} + +//- rjf: command lists + +internal void +d_cmd_list_push_new(Arena *arena, D_CmdList *cmds, D_CmdKind kind, D_CmdParams *params) +{ + D_CmdNode *n = push_array(arena, D_CmdNode, 1); + n->cmd.kind = kind; + n->cmd.params = d_cmd_params_copy(arena, params); + DLLPushBack(cmds->first, cmds->last, n); + cmds->count += 1; +} + +//////////////////////////////// +//~ rjf: Stepping "Trap Net" Builders + +// NOTE(rjf): Stepping Algorithm Overview (2024/01/17) +// +// The basic idea behind all stepping algorithms in the debugger are setting up +// a "trap net". A "trap net" is just a collection of high-level traps that are +// meant to "catch" a thread after letting it run. This trap net is submitted +// when the debugger frontend sends a "run" command (it is just empty if doing +// an actual 'run' or 'continue'). The debugger control thread then uses this +// trap net to program a state machine, to appropriately respond to a variety +// of debug events which it is passed from the OS. +// +// These are "high-level traps" because they can have specific behavioral info +// attached to them. These are encoded via the `D_TrapFlags` type, which +// allow expression of the following behaviors: +// +// - end-stepping: when this trap is hit, it will end the stepping operation, +// and the target will not continue. +// - ignore-stack-pointer-check: when a trap in the trap net is hit, it will +// by-default be ignored if the thread's stack pointer has changed. this +// flag disables that behavior, for when the stack pointer is expected to +// change (e.g. step-out). +// - single-step-after-hit: when a trap with this flag is hit, the debugger +// will immediately single-step the thread which hit it. +// - save-stack-pointer: when a trap with this flag is hit, it will rewrite +// the stack pointer which is used to compare against, when deciding +// whether or not to filter a trap (based on stack pointer changes). +// - begin-spoof-mode: this enables "spoof mode". "spoof mode" is a special +// mode that disables the trap net entirely, and lets the thread run +// freely - but it catches the thread not with a trap, but a false return +// address. the debugger will overwrite a specific return address on the +// stack. this address will be overwritten with an address which does NOT +// point to a valid page, such that when the thread returns out of a +// particular call frame, the debugger will receive a debug event, at +// which point it can move the thread back to the correct return address, +// and resume with the trap net enabled. this is used in "step over" +// operations, because it avoids target <-> debugger "roundtrips" (e.g. +// target being stopped, debugger being called with debug events, then +// target resumes when debugger's control thread is done running) for +// recursions. (it doesn't make a difference with non-recursive calls, +// but the debugger can't detect the difference). +// +// Each stepping command prepares its trap net differently. +// +// --- Instruction Step Into -------------------------------------------------- +// In this case, no trap net is prepared, and only a low-level single-step is +// performed. +// +// --- Instruction Step Over -------------------------------------------------- +// To build a trap net for an instruction-level step-over, the next instruction +// at the thread's current instruction pointer is decoded. If it is a call +// instruction, or if it is a repeating instruction, then a trap with the +// 'end-stepping' behavior is placed at the instruction immediately following +// the 'call' instruction. +// +// --- Line Step Into --------------------------------------------------------- +// For a source-line step-into, the thread's instruction pointer is first used +// to look up into the debug info's line info, to find the machine code in the +// thread's current source line. Every instruction in this range is decoded. +// Traps are then built in the following way: +// +// - 'call' instruction -> if can decode call destination address, place +// "end-stepping | ignore-stack-pointer-check" trap at destination. if +// can't, "end-stepping | single-step-after | ignore-stack-pointer-check" +// trap at call. +// - 'jmp' (both unconditional & conditional) -> if can decode jump destination +// address, AND if jump leaves the line, place "end-stepping | ignore- +// stack-pointer-check" trap at destination. if can't, "end-stepping | +// single-step-after | ignore-stack-pointer-check" trap at jmp. if jump +// stays within the line, do nothing. +// - 'return' -> place "end-stepping | single-step-after" trap at return inst. +// - "end-stepping" trap is placed at the first address after the line, to +// catch all steps which simply proceed linearly through the instruction +// stream. +// +// --- Line Step Over --------------------------------------------------------- +// For a source-line step-over, the thread's instruction pointer is first used +// to look up into the debug info's line info, to find the machine code in the +// thread's current source line. Every instruction in this range is decoded. +// Traps are then built in the following way: +// +// - 'call' instruction -> place "single-step-after | begin-spoof-mode" trap at +// call instruction. +// - 'jmp' (both unconditional & conditional) -> if can decode jump destination +// address, AND if jump leaves the line, place "end-stepping" trap at +// destination. if can't, "end-stepping | single-step-after" trap at jmp. +// if jump stays within the line, do nothing. +// - 'return' -> place "end-stepping | single-step-after" trap at return inst. +// - "end-stepping" trap is placed at the first address after the line, to +// catch all steps which simply proceed linearly through the instruction +// stream. +// - for any instructions which may change the stack pointer, traps are placed +// at them with the "save-stack-pointer | single-step-after" behaviors. + +internal D_TrapNet +d_trap_net_from_thread__step_over_inst(Arena *arena, D_Entity *thread) +{ + Temp scratch = scratch_begin(&arena, 1); + D_TrapNet result = {0}; + + // rjf: thread => unpacked info + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + Arch arch = thread->arch; + U64 ip_vaddr = d_cached_ip_from_thread(thread->handle); + + // rjf: ip => machine code + String8 machine_code = {0}; + B32 good_machine_code = 0; + { + Rng1U64 rng = r1u64(ip_vaddr, ip_vaddr+max_instruction_size_from_arch(arch)); + D_ProcessMemorySlice machine_code_slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, rng, 1, now_time_us()+10000); + machine_code = machine_code_slice.data; + good_machine_code = (machine_code.size != 0 && !machine_code_slice.any_byte_bad && !machine_code_slice.stale); + } + result.good_line_info = 1; + + // rjf: build traps if machine code was read successfully + if(good_machine_code) + { + result.good_read = 1; + + // rjf: decode instruction + DASM_Inst inst = dasm_inst_from_code(scratch.arena, arch, ip_vaddr, machine_code, DASM_Syntax_Intel); + + // rjf: call => run until call returns + if(inst.flags & DASM_InstFlag_Call || inst.flags & DASM_InstFlag_Repeats) + { + D_Trap trap = {D_TrapFlag_EndStepping, ip_vaddr+inst.size}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + + scratch_end(scratch); + return result; +} + +internal D_TrapNet +d_trap_net_from_thread__step_over_line(Arena *arena, D_Entity *thread) +{ + Temp scratch = scratch_begin(&arena, 1); + log_infof("step_over_line:\n{\n"); + D_TrapNet result = {0}; + + // rjf: thread => info + Arch arch = thread->arch; + U64 ip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, ip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + log_infof("ip_vaddr: 0x%I64x\n", ip_vaddr); + log_infof("dbgi_key: {0x%I64x, 0x%I64x}\n", dbgi_key.u64[0], dbgi_key.u64[1]); + + // rjf: ip => line info + String8 file_path = {0}; + S64 line_num = 0; + Rng1U64 line_vaddr_rng = {0}; + { + U64 ip_voff = d_voff_from_vaddr(module, ip_vaddr); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, ip_voff); + Rng1U64 line_voff_rng = {0}; + if(lines.first != 0) + { + line_voff_rng = lines.first->v.voff_range; + file_path = lines.first->v.file_path; + line_num = lines.first->v.pt.line; + line_vaddr_rng = d_vaddr_range_from_voff_range(module, line_voff_rng); + log_infof("line: {%S:%I64i}\n", lines.first->v.file_path, lines.first->v.pt.line); + } + log_infof("voff_range: {0x%I64x, 0x%I64x}\n", line_voff_rng.min, line_voff_rng.max); + log_infof("vaddr_range: {0x%I64x, 0x%I64x}\n", line_vaddr_rng.min, line_vaddr_rng.max); + } + + // rjf: gather other ranges on this same textual line, which we don't want to return to + Rng1U64List all_vaddr_ranges_on_same_line = {0}; + { + D_LineList lines = d_lines_from_dbgi_key_file_path_line_num(scratch.arena, dbgi_key, file_path, line_num, max_U64); + for EachNode(n, D_LineNode, lines.first) + { + Rng1U64 voff_range = n->v.voff_range; + Rng1U64 vaddr_range = d_vaddr_range_from_voff_range(module, voff_range); + rng1u64_list_push(scratch.arena, &all_vaddr_ranges_on_same_line, vaddr_range); + } + } + + // extend trap-net range across contiguous same-source-line, possibly unsorted, ranges + // + // TODO: @ns: converter should never produce these ranges in the first place, + // once fixed, assert this invariant + for(B32 changed = 1; changed;) + { + changed = 0; + for EachNode(n, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + if(n->v.min <= line_vaddr_rng.max && line_vaddr_rng.max < n->v.max) + { + line_vaddr_rng.max = n->v.max; + changed = 1; + } + } + } + + // rjf: opl line_vaddr_rng -> 0xf00f00 or 0xfeefee? => include in line vaddr range + // + // MSVC exports line info at these line numbers when /JMC (Just My Code) debugging + // is enabled. This is enabled by default normally. + { + U64 opl_line_voff_rng = d_voff_from_vaddr(module, line_vaddr_rng.max); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, opl_line_voff_rng); + if(lines.first != 0 && (lines.first->v.pt.line == 0xf00f00 || lines.first->v.pt.line == 0xfeefee)) + { + line_vaddr_rng.max = d_vaddr_from_voff(module, lines.first->v.voff_range.max); + } + } + + // rjf: line vaddr range => did we find anything successfully? + B32 good_line_info = (line_vaddr_rng.max != 0); + + // rjf: line vaddr range => line's machine code + String8 machine_code = {0}; + B32 good_machine_code = 0; + if(good_line_info) + { + D_ProcessMemorySlice machine_code_slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, line_vaddr_rng, 1, now_time_us()+10000); + machine_code = machine_code_slice.data; + good_machine_code = (machine_code.size >= dim_1u64(line_vaddr_rng) && !machine_code_slice.any_byte_bad && !machine_code_slice.stale); + LogInfoNamedBlockF("machine_code_slice") + { + log_infof("stale: %i\n", machine_code_slice.stale); + log_infof("any_byte_bad: %i\n", machine_code_slice.any_byte_bad); + log_infof("any_byte_changed: %i\n", machine_code_slice.any_byte_changed); + log_infof("bytes:\n[\n"); + for(U64 idx = 0; idx < machine_code_slice.data.size; idx += 1) + { + log_infof("0x%x,", machine_code_slice.data.str[idx]); + if(idx%16 == 15 || idx+1 == machine_code_slice.data.size) + { + log_infof("\n"); + } + } + log_infof("]\n"); + } + } + + // rjf: machine code => ctrl flow analysis + DASM_CtrlFlowInfo ctrl_flow_info = {0}; + if(good_machine_code) + { + ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, + DASM_InstFlag_Call| + DASM_InstFlag_Branch| + DASM_InstFlag_UnconditionalJump| + DASM_InstFlag_ChangesStackPointer| + DASM_InstFlag_Return, + 0, + arch, + line_vaddr_rng.min, + machine_code); + LogInfoNamedBlockF("ctrl_flow_info") + { + LogInfoNamedBlockF("exit_points") for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) + { + log_infof("{vaddr:0x%I64x, jump_dest_vaddr:0x%I64x, inst_flags:%x}\n", n->v.vaddr, n->v.jump_dest_vaddr, n->v.inst_flags); + } + } + } + + // rjf: push traps for all exit points + if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) + { + DASM_CtrlFlowPoint *point = &n->v; + D_TrapFlags flags = 0; + B32 add = 1; + U64 trap_addr = point->vaddr; + + // rjf: branches/jumps/returns => single-step & end, OR trap @ destination. + if(point->inst_flags & (DASM_InstFlag_Branch| + DASM_InstFlag_UnconditionalJump| + DASM_InstFlag_Return)) + { + flags |= (D_TrapFlag_SingleStepAfterHit|D_TrapFlag_EndStepping); + + // rjf: omit if this jump stays inside of this line + if(contains_1u64(line_vaddr_rng, point->jump_dest_vaddr)) + { + add = 0; + } + + // rjf: omit if this jump stays inside of any range on this same textual line + for EachNode(n, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + if(contains_1u64(n->v, point->jump_dest_vaddr)) + { + add = 0; + break; + } + } + + // rjf: trap @ destination, if we can - we can avoid a single-step this way. + if(point->jump_dest_vaddr != 0) + { + trap_addr = point->jump_dest_vaddr; + flags &= ~D_TrapFlag_SingleStepAfterHit; + } + + } + + // rjf: call => save stack pointer before, single-step to go into call; trap on return + else if(point->inst_flags & DASM_InstFlag_Call) + { + flags |= (D_TrapFlag_SaveStackPointerBefore|D_TrapFlag_SingleStepAfterHit); + } + +#if 0 // TODO(rjf): @spoof_stepping + // rjf: call => place spoof at return spot in stack, single-step after hitting + else if(point->inst_flags & DASM_InstFlag_Call) + { + flags |= (D_TrapFlag_BeginSpoofMode|D_TrapFlag_SingleStepAfterHit); + } +#endif + + // rjf: instruction changes stack pointer => single-step over, save off the stack pointer, keep stepping + else if(point->inst_flags & DASM_InstFlag_ChangesStackPointer) + { + flags |= (D_TrapFlag_SingleStepAfterHit|D_TrapFlag_SaveStackPointerAfter); + } + + // rjf: add if appropriate + if(add) + { + D_Trap trap = {flags, trap_addr}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + + // rjf: push traps for natural linear flow + if(good_line_info && good_machine_code) + { + U64 line_opl_vaddr = line_vaddr_rng.max; + for EachNode(n, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + U64 opl = n->v.max; + B32 opl_in_line = 0; + for EachNode(n2, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + if(n != n2 && opl == n2->v.min) + { + opl_in_line = 1; + break; + } + } + if(!opl_in_line) + { + D_Trap trap = {D_TrapFlag_EndStepping, opl}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + } + + // rjf: store goodness + { + result.good_line_info = good_line_info; + result.good_read = good_machine_code; + } + + // rjf: log + LogInfoNamedBlockF("traps") for(D_TrapNode *n = result.traps.first; n != 0; n = n->next) + { + log_infof("{flags:0x%x, vaddr:0x%I64x}\n", n->v.flags, n->v.vaddr); + } + + scratch_end(scratch); + log_infof("}\n\n"); + return result; +} + +internal D_TrapNet +d_trap_net_from_thread__step_into_line(Arena *arena, D_Entity *thread) +{ + Temp scratch = scratch_begin(&arena, 1); + D_TrapNet result = {0}; + + // rjf: thread => info + Arch arch = thread->arch; + U64 ip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, ip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + + // rjf: ip => line info + String8 file_path = {0}; + S64 line_num = 0; + Rng1U64 line_vaddr_rng = {0}; + { + U64 ip_voff = d_voff_from_vaddr(module, ip_vaddr); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, ip_voff); + Rng1U64 line_voff_rng = {0}; + if(lines.first != 0) + { + line_voff_rng = lines.first->v.voff_range; + file_path = lines.first->v.file_path; + line_num = lines.first->v.pt.line; + line_vaddr_rng = d_vaddr_range_from_voff_range(module, line_voff_rng); + log_infof("line: {%S:%I64i}\n", lines.first->v.file_path, lines.first->v.pt.line); + } + log_infof("voff_range: {0x%I64x, 0x%I64x}\n", line_voff_rng.min, line_voff_rng.max); + log_infof("vaddr_range: {0x%I64x, 0x%I64x}\n", line_vaddr_rng.min, line_vaddr_rng.max); + } + + // rjf: gather other ranges on this same textual line, which we don't want to return to + Rng1U64List all_vaddr_ranges_on_same_line = {0}; + { + D_LineList lines = d_lines_from_dbgi_key_file_path_line_num(scratch.arena, dbgi_key, file_path, line_num, max_U64); + for EachNode(n, D_LineNode, lines.first) + { + Rng1U64 voff_range = n->v.voff_range; + Rng1U64 vaddr_range = d_vaddr_range_from_voff_range(module, voff_range); + rng1u64_list_push(scratch.arena, &all_vaddr_ranges_on_same_line, vaddr_range); + } + } + + // rjf: opl line_vaddr_rng -> 0xf00f00 or 0xfeefee? => include in line vaddr range + // + // MSVC exports line info at these line numbers when /JMC (Just My Code) debugging + // is enabled. This is enabled by default normally. + { + U64 opl_line_voff_rng = d_voff_from_vaddr(module, line_vaddr_rng.max); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, opl_line_voff_rng); + if(lines.first != 0 && (lines.first->v.pt.line == 0xf00f00 || lines.first->v.pt.line == 0xfeefee)) + { + line_vaddr_rng.max = d_vaddr_from_voff(module, lines.first->v.voff_range.max); + } + } + + // rjf: line vaddr range => did we find anything successfully? + B32 good_line_info = (line_vaddr_rng.max != 0); + + // rjf: line vaddr range => line's machine code + String8 machine_code = {0}; + B32 good_machine_code = 0; + if(good_line_info) + { + D_ProcessMemorySlice machine_code_slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, line_vaddr_rng, 1, now_time_us()+10000); + machine_code = machine_code_slice.data; + good_machine_code = (machine_code.size >= dim_1u64(line_vaddr_rng) && !machine_code_slice.any_byte_bad && !machine_code_slice.stale); + } + + // rjf: machine code => ctrl flow analysis + DASM_CtrlFlowInfo ctrl_flow_info = {0}; + if(good_machine_code) + { + ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, + DASM_InstFlag_Call| + DASM_InstFlag_Branch| + DASM_InstFlag_UnconditionalJump| + DASM_InstFlag_ChangesStackPointer| + DASM_InstFlag_Return, + 0, + arch, + line_vaddr_rng.min, + machine_code); + } + + // rjf: determine last + DASM_CtrlFlowPoint *last_call_point = 0; + if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) + { + if(n->v.inst_flags & DASM_InstFlag_Call) + { + last_call_point = &n->v; + } + } + + // rjf: push traps for all exit points + if(good_machine_code) for(DASM_CtrlFlowPointNode *n = ctrl_flow_info.exit_points.first; n != 0; n = n->next) + { + DASM_CtrlFlowPoint *point = &n->v; + D_TrapFlags flags = 0; + B32 add = 1; + U64 trap_addr = point->vaddr; + + // rjf: if this is not the last call instruction in the control flow, + // and if we have no line info for this address, then do not add. + if(point != last_call_point && + point->inst_flags & DASM_InstFlag_Call && + point->jump_dest_vaddr != 0) + { + U64 jump_dest_vaddr = point->jump_dest_vaddr; + D_Entity *jump_dest_module = d_module_from_process_vaddr(process, jump_dest_vaddr); + U64 jump_dest_voff = d_voff_from_vaddr(jump_dest_module, jump_dest_vaddr); + DI_Key jump_dest_dbgi_key = d_dbgi_key_from_module(jump_dest_module); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, jump_dest_dbgi_key, jump_dest_voff); + if(lines.count == 0) + { + add = 0; + } + } + + // rjf: branches/jumps/returns => single-step & end, OR trap @ destination. + if(point->inst_flags & (DASM_InstFlag_Call| + DASM_InstFlag_Branch| + DASM_InstFlag_UnconditionalJump| + DASM_InstFlag_Return)) + { + flags |= (D_TrapFlag_SingleStepAfterHit|D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck); + + // rjf: omit if this jump stays inside of this line + if(contains_1u64(line_vaddr_rng, point->jump_dest_vaddr)) + { + add = 0; + } + + // rjf: omit if this jump stays inside of any range on this same textual line + for EachNode(n, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + if(contains_1u64(n->v, point->jump_dest_vaddr)) + { + add = 0; + break; + } + } + + // rjf: trap @ destination, if we can - we can avoid a single-step this way. + if(point->jump_dest_vaddr != 0) + { + trap_addr = point->jump_dest_vaddr; + flags &= ~D_TrapFlag_SingleStepAfterHit; + } + } + + // rjf: instruction changes stack pointer => save off the stack pointer, single-step over, keep stepping + else if(point->inst_flags & DASM_InstFlag_ChangesStackPointer) + { + flags |= (D_TrapFlag_SingleStepAfterHit|D_TrapFlag_SaveStackPointerAfter); + } + + // rjf: add if appropriate + if(add) + { + D_Trap trap = {flags, trap_addr}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + + // rjf: push traps for natural linear flow + if(good_line_info && good_machine_code) + { + U64 line_opl_vaddr = line_vaddr_rng.max; + for EachNode(n, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + U64 opl = n->v.max; + B32 opl_in_line = 0; + for EachNode(n2, Rng1U64Node, all_vaddr_ranges_on_same_line.first) + { + if(n != n2 && opl == n2->v.min) + { + opl_in_line = 1; + break; + } + } + if(!opl_in_line) + { + D_Trap trap = {D_TrapFlag_EndStepping, opl}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + } + + // rjf: store goodness + { + result.good_line_info = good_line_info; + result.good_read = good_machine_code; + } + + scratch_end(scratch); + return result; +} + +internal D_TrapNet +d_trap_net_from_thread__step_out_scope(Arena *arena, D_Entity *thread) +{ + D_TrapNet result = {0}; + { + U64 read_endt_us = now_time_us() + 1000000; + Temp scratch = scratch_begin(&arena, 1); + Access *access = access_open(); + + // rjf: unpack thread + Arch arch = thread->arch; + U64 ip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, ip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + D_CallStack callstack = d_call_stack_from_thread(access, thread->handle, 1, read_endt_us); + + // rjf: ip => enclosing scope's list(voff_range) + Rng1U64List scope_voff_rngs = {0}; + { + U64 ip_voff = d_voff_from_vaddr(module, ip_vaddr); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + if(rdi != &rdi_parsed_nil) + { + RDI_Scope *scope = rdi_scope_from_voff(rdi, ip_voff); + U64 all_scope_voffs_count = 0; + U64 *all_scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &all_scope_voffs_count); + for(U64 voff_idx = scope->voff_range_first; voff_idx+1 < scope->voff_range_opl; voff_idx += 1) + { + Rng1U64 voff_range = r1u64(all_scope_voffs[voff_idx], all_scope_voffs[voff_idx+1]); + rng1u64_list_push(scratch.arena, &scope_voff_rngs, voff_range); + } + } + } + + // rjf: place traps at all possible exit points of all scope's ranges + result.good_read = 1; + for EachNode(n, Rng1U64Node, scope_voff_rngs.first) + { + Rng1U64 voff_range = n->v; + Rng1U64 vaddr_range = d_vaddr_range_from_voff_range(module, voff_range); + D_ProcessMemorySlice code_slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, vaddr_range, 0, read_endt_us); + if(!code_slice.any_byte_bad) + { + result.good_read = 1; + String8 code = code_slice.data; + DASM_CtrlFlowInfo ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, DASM_InstFlag_Branch|DASM_InstFlag_UnconditionalJump|DASM_InstFlag_Return, 0, arch, vaddr_range.min, code); + + // rjf: add traps at all jump destinations which do *not* fall into any of the scope's ranges + for EachNode(exit_pt_n, DASM_CtrlFlowPointNode, ctrl_flow_info.exit_points.first) + { + U64 jump_dest_vaddr = exit_pt_n->v.jump_dest_vaddr; + B32 jump_dest_vaddr_is_out_of_scope = 1; + for EachNode(scope_n, Rng1U64Node, scope_voff_rngs.first) + { + if(contains_1u64(scope_n->v, d_voff_from_vaddr(module, jump_dest_vaddr))) + { + jump_dest_vaddr_is_out_of_scope = 0; + break; + } + } + if(jump_dest_vaddr_is_out_of_scope) + { + D_Trap trap = {D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck, jump_dest_vaddr}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + + // rjf: add trap at natural exit point of scope + { + U64 opl_vaddr = vaddr_range.max; + B32 opl_vaddr_is_out_of_scope = 1; + for EachNode(scope_n, Rng1U64Node, scope_voff_rngs.first) + { + if(contains_1u64(scope_n->v, d_voff_from_vaddr(module, opl_vaddr))) + { + opl_vaddr_is_out_of_scope = 0; + break; + } + } + if(opl_vaddr_is_out_of_scope) + { + D_Trap trap = {D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck, opl_vaddr}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + } + else + { + result.good_read = 0; + break; + } + } + + // rjf: use first unwind frame to generate trap + if(result.good_read && callstack.concrete_frames_count > 1) + { + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + U64 vaddr = arch_ip_from_reg_block(arch_info, callstack.concrete_frames[1]->regs); + D_Trap trap = {D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck, vaddr}; + d_trap_list_push(arena, &result.traps, &trap); + } + else + { + result.good_read = 0; + } + + // NOTE(rjf): we always want to support missing line info for "step out", because + // we should always be able to fall back to just using the unwind, so just always + // mark this bit as a success. + result.good_line_info = 1; + access_close(access); + scratch_end(scratch); + } + return result; +} + +internal D_TrapNet +d_trap_net_from_thread__step_to_exit(Arena *arena, D_Entity *thread) +{ + D_TrapNet result = {0}; + { + U64 read_endt_us = now_time_us() + 1000000; + Temp scratch = scratch_begin(&arena, 1); + Access *access = access_open(); + + // rjf: unpack thread + Arch arch = thread->arch; + U64 ip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, ip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + D_CallStack callstack = d_call_stack_from_thread(access, thread->handle, 1, read_endt_us); + + // rjf: ip => enclosing scope's list(voff_range) + Rng1U64List scope_voff_rngs = {0}; + { + U64 ip_voff = d_voff_from_vaddr(module, ip_vaddr); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + if(rdi != &rdi_parsed_nil) + { + RDI_Scope *scope = rdi_scope_from_voff(rdi, ip_voff); + U64 all_scope_voffs_count = 0; + U64 *all_scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &all_scope_voffs_count); + for(U64 voff_idx = scope->voff_range_first; voff_idx+1 < scope->voff_range_opl; voff_idx += 1) + { + Rng1U64 voff_range = r1u64(all_scope_voffs[voff_idx], all_scope_voffs[voff_idx+1]); + rng1u64_list_push(scratch.arena, &scope_voff_rngs, voff_range); + } + } + } + + // rjf: place traps at all possible exit points of all scope's ranges + result.good_read = 1; + for EachNode(n, Rng1U64Node, scope_voff_rngs.first) + { + Rng1U64 voff_range = n->v; + Rng1U64 vaddr_range = d_vaddr_range_from_voff_range(module, voff_range); + D_ProcessMemorySlice code_slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, vaddr_range, 0, read_endt_us); + if(!code_slice.any_byte_bad) + { + result.good_read = 1; + String8 code = code_slice.data; + DASM_CtrlFlowInfo ctrl_flow_info = dasm_ctrl_flow_info_from_arch_vaddr_code(scratch.arena, DASM_InstFlag_Branch|DASM_InstFlag_UnconditionalJump|DASM_InstFlag_Return, 1, arch, vaddr_range.min, code); + + // rjf: add traps at all jumps whose destinations do *not* fall into any of the scope's ranges + for EachNode(exit_pt_n, DASM_CtrlFlowPointNode, ctrl_flow_info.exit_points.first) + { + U64 jump_vaddr = exit_pt_n->v.vaddr; + U64 jump_dest_vaddr = exit_pt_n->v.jump_dest_vaddr; + B32 jump_dest_vaddr_is_out_of_scope = 1; + for EachNode(scope_n, Rng1U64Node, scope_voff_rngs.first) + { + if(contains_1u64(scope_n->v, d_voff_from_vaddr(module, jump_dest_vaddr))) + { + jump_dest_vaddr_is_out_of_scope = 0; + break; + } + } + if(jump_dest_vaddr_is_out_of_scope) + { + D_Trap trap = {D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck, jump_vaddr}; + d_trap_list_push(arena, &result.traps, &trap); + } + } + } + else + { + result.good_read = 0; + break; + } + } + + // rjf: use first unwind frame to generate trap + if(result.good_read && callstack.concrete_frames_count > 1) + { + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + U64 vaddr = arch_ip_from_reg_block(arch_info, callstack.concrete_frames[1]->regs); + D_Trap trap = {D_TrapFlag_EndStepping|D_TrapFlag_IgnoreStackPointerCheck, vaddr}; + d_trap_list_push(arena, &result.traps, &trap); + } + else + { + result.good_read = 0; + } + + // NOTE(rjf): we always want to support missing line info for "step to exit", because + // we should always be able to fall back to just using the unwind, so just always + // mark this bit as a success. + result.good_line_info = 1; + access_close(access); + scratch_end(scratch); + } + return result; +} + +//////////////////////////////// +//~ rjf: Debug Info Lookups + +//- rjf: voff -> line info + +internal D_LineList +d_lines_from_dbgi_key_voff(Arena *arena, DI_Key dbgi_key, U64 voff) +{ + Temp scratch = scratch_begin(&arena, 1); + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + D_LineList result = {0}; + { + //- rjf: gather line tables + typedef struct LineTableNode LineTableNode; + struct LineTableNode + { + LineTableNode *next; + RDI_ParsedLineTable parsed_line_table; + }; + LineTableNode start_line_table = {0}; + RDI_Unit *unit = rdi_unit_from_voff(rdi, voff); + RDI_LineTable *unit_line_table = rdi_line_table_from_unit(rdi, unit); + rdi_parsed_from_line_table(rdi, unit_line_table, &start_line_table.parsed_line_table); + LineTableNode *top_line_table = 0; + RDI_Scope *scope = rdi_scope_from_voff(rdi, voff); + { + for(RDI_Scope *s = scope; + s->inline_site_idx != 0; + s = rdi_element_from_name_idx(rdi, Scopes, s->parent_scope_idx)) + { + RDI_InlineSite *inline_site = rdi_element_from_name_idx(rdi, InlineSites, s->inline_site_idx); + if(inline_site->line_table_idx != 0) + { + LineTableNode *n = push_array(scratch.arena, LineTableNode, 1); + SLLStackPush(top_line_table, n); + RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, inline_site->line_table_idx); + rdi_parsed_from_line_table(rdi, line_table, &n->parsed_line_table); + } + } + } + SLLStackPush(top_line_table, &start_line_table); + + //- rjf: gather lines in each line table + Rng1U64 shallowest_voff_range = {0}; + for(LineTableNode *line_table_n = top_line_table; line_table_n != 0; line_table_n = line_table_n->next) + { + RDI_ParsedLineTable parsed_line_table = line_table_n->parsed_line_table; + U64 line_info_idx = rdi_line_info_idx_from_voff(&parsed_line_table, voff); + if(line_info_idx < parsed_line_table.count) + { + RDI_Line *line = &parsed_line_table.lines[line_info_idx]; + RDI_Column *column = (line_info_idx < parsed_line_table.col_count) ? &parsed_line_table.cols[line_info_idx] : 0; + RDI_SourceFile *file = rdi_element_from_name_idx(rdi, SourceFiles, line->file_idx); + RDI_SectionKind checksum_section_kind = rdi_section_kind_from_checksum_kind(file->checksum_kind); + U64 checksum_size = rdi_section_element_size_table[checksum_section_kind]; + U8 *checksum_data = (U8 *)rdi_section_raw_element_from_kind_idx(rdi, checksum_section_kind, file->checksum_idx); + String8 checksum_value = {0}; + if(file->checksum_idx != 0) + { + checksum_value = str8(checksum_data, checksum_size); + } + String8List path_parts = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, file->file_path_node_idx); + fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) + { + String8 path_part = {0}; + path_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &path_part.size); + str8_list_push_front(scratch.arena, &path_parts, path_part); + } + StringJoin join = {0}; + join.sep = str8_lit("/"); + String8 file_normalized_full_path = str8_list_join(arena, &path_parts, &join); + D_LineNode *n = push_array(arena, D_LineNode, 1); + SLLQueuePush(result.first, result.last, n); + result.count += 1; + if(line->file_idx != 0 && file_normalized_full_path.size != 0) + { + n->v.file_path = file_normalized_full_path; + } + n->v.pt = txt_pt(line->line_num, column ? column->col_first : 1); + n->v.voff_range = r1u64(parsed_line_table.voffs[line_info_idx], parsed_line_table.voffs[line_info_idx+1]); + n->v.checksum_kind = file->checksum_kind; + n->v.checksum_value = str8_copy(arena, checksum_value); + n->v.dbgi_key = dbgi_key; + if(line_table_n == top_line_table) + { + shallowest_voff_range = n->v.voff_range; + } + } + } + + //- rjf: clamp all lines from all tables by shallowest (most unwound) range + for(D_LineNode *n = result.first; n != 0; n = n->next) + { + n->v.voff_range = intersect_1u64(n->v.voff_range, shallowest_voff_range); + } + } + access_close(access); + scratch_end(scratch); + return result; +} + +//- rjf: file:line -> line info + +// TODO(rjf): this depends on file path maps, needs to move + +internal D_LineListArray +d_lines_array_from_dbgi_key_file_path_line_range(Arena *arena, DI_Key dbgi_key, String8 file_path, Rng1S64 line_num_range, U64 max_voffs_per_line) +{ + D_LineListArray array = {0}; + { + array.count = dim_1s64(line_num_range)+1; + array.v = push_array(arena, D_LineList, array.count); + di_key_list_push(arena, &array.dbgi_keys, dbgi_key); + } + Temp scratch = scratch_begin(&arena, 1); + U64 *lines_num_voffs = push_array(scratch.arena, U64, array.count); + Access *access = access_open(); + String8List overrides = rd_possible_overrides_from_file_path(scratch.arena, file_path); + for(String8Node *override_n = overrides.first; + override_n != 0; + override_n = override_n->next) + { + String8 file_path = override_n->string; + String8 file_path_normalized = rdim_normalized_from_path(scratch.arena, file_path); + + // rjf: binary -> rdi + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + + // rjf: file_path_normalized * rdi -> src_id + B32 good_src_id = 0; + U32 src_id = 0; + if(rdi != &rdi_parsed_nil) ProfScope("file_path_normalized * rdi -> src_id") + { + RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); + RDI_ParsedNameMap map = {0}; + rdi_parsed_from_name_map(rdi, mapptr, &map); + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, file_path_normalized.str, file_path_normalized.size); + if(node != 0) + { + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + good_src_id = 1; + src_id = ids[0]; + } + } + } + + // rjf: good src-id -> look up line info for visible range + if(good_src_id) ProfScope("good src-id -> look up line info for visible range") + { + RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); + RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); + RDI_ParsedSourceLineMap line_map = {0}; + rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); + U64 line_idx = 0; + for(S64 line_num = line_num_range.min; + line_num <= line_num_range.max; + line_num += 1, line_idx += 1) + { + D_LineList *list = &array.v[line_idx]; + U32 voff_count = 0; + U64 *voffs = rdi_line_voffs_from_num(&line_map, u32_from_u64_saturate((U64)line_num), &voff_count); + if(lines_num_voffs[line_idx] < max_voffs_per_line) ProfScope("iterate voffs (%i)", voff_count) for(U64 idx = 0; idx < voff_count; idx += 1) + { + U64 base_voff = voffs[idx]; + U64 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, base_voff); + RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); + RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); + RDI_ParsedLineTable unit_line_info = {0}; + rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); + U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, base_voff); + if(unit_line_info.voffs != 0) + { + Rng1U64 range = r1u64(base_voff, unit_line_info.voffs[line_info_idx+1]); + S64 actual_line = (S64)unit_line_info.lines[line_info_idx].line_num; + D_LineNode *n = push_array(arena, D_LineNode, 1); + n->v.voff_range = range; + n->v.pt.line = (S64)actual_line; + n->v.pt.column = 1; + n->v.dbgi_key = dbgi_key; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + lines_num_voffs[line_idx] += 1; + if(lines_num_voffs[line_idx] >= max_voffs_per_line) + { + break; + } + } + } + } + } + } + access_close(access); + scratch_end(scratch); + return array; +} + +internal D_LineListArray +d_lines_array_from_file_path_line_range(Arena *arena, String8 file_path, Rng1S64 line_num_range, U64 max_voffs_per_line) +{ + D_LineListArray array = {0}; + { + array.count = dim_1s64(line_num_range)+1; + array.v = push_array(arena, D_LineList, array.count); + } + Temp scratch = scratch_begin(&arena, 1); + U64 *lines_num_voffs = push_array(scratch.arena, U64, array.count); + DI_KeyArray dbgi_keys = di_push_all_loaded_keys(scratch.arena); + String8List overrides = rd_possible_overrides_from_file_path(scratch.arena, file_path); + for(String8Node *override_n = overrides.first; + override_n != 0; + override_n = override_n->next) + { + String8 file_path = override_n->string; + String8 file_path_normalized = rdim_normalized_from_path(scratch.arena, file_path); + for EachIndex(idx, dbgi_keys.count) + { + Access *access = access_open(); + + // rjf: binary -> rdi + DI_Key key = dbgi_keys.v[idx]; + RDI_Parsed *rdi = di_rdi_from_key(access, key, 1, 0); + + // rjf: file_path_normalized * rdi -> src_id + B32 good_src_id = 0; + U32 src_id = 0; + if(rdi != &rdi_parsed_nil) ProfScope("file_path_normalized * rdi -> src_id") + { + RDI_NameMap *mapptr = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_NormalSourcePaths); + RDI_ParsedNameMap map = {0}; + rdi_parsed_from_name_map(rdi, mapptr, &map); + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &map, file_path_normalized.str, file_path_normalized.size); + if(node != 0) + { + U32 id_count = 0; + U32 *ids = rdi_matches_from_map_node(rdi, node, &id_count); + if(id_count > 0) + { + good_src_id = 1; + src_id = ids[0]; + } + } + } + + // rjf: good src-id -> look up line info for visible range + if(good_src_id) ProfScope("good src-id -> look up line info for visible range") + { + RDI_SourceFile *src = rdi_element_from_name_idx(rdi, SourceFiles, src_id); + RDI_SourceLineMap *src_line_map = rdi_element_from_name_idx(rdi, SourceLineMaps, src->source_line_map_idx); + RDI_ParsedSourceLineMap line_map = {0}; + rdi_parsed_from_source_line_map(rdi, src_line_map, &line_map); + U64 line_idx = 0; + for(S64 line_num = line_num_range.min; + line_num <= line_num_range.max; + line_num += 1, line_idx += 1) + { + D_LineList *list = &array.v[line_idx]; + U32 voff_count = 0; + U64 *voffs = rdi_line_voffs_from_num(&line_map, u32_from_u64_saturate((U64)line_num), &voff_count); + if(lines_num_voffs[line_idx] < 8) ProfScope("iterate voffs (%i)", voff_count) for(U64 idx = 0; idx < voff_count; idx += 1) + { + U64 base_voff = voffs[idx]; + U64 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, base_voff); + RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); + RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); + RDI_ParsedLineTable unit_line_info = {0}; + rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); + U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, base_voff); + if(unit_line_info.voffs != 0) + { + Rng1U64 range = r1u64(base_voff, unit_line_info.voffs[line_info_idx+1]); + S64 actual_line = (S64)unit_line_info.lines[line_info_idx].line_num; + D_LineNode *n = push_array(arena, D_LineNode, 1); + n->v.voff_range = range; + n->v.pt.line = (S64)actual_line; + n->v.pt.column = 1; + n->v.dbgi_key = key; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + lines_num_voffs[line_idx] += 1; + if(lines_num_voffs[line_idx] >= 8) + { + break; + } + } + } + } + } + + // rjf: good src id -> push to relevant dbgi keys + if(good_src_id) + { + di_key_list_push(arena, &array.dbgi_keys, key); + } + + access_close(access); + } + } + scratch_end(scratch); + return array; +} + +internal D_LineList +d_lines_from_dbgi_key_file_path_line_num(Arena *arena, DI_Key dbgi_key, String8 file_path, S64 line_num, U64 max_voffs_per_line) +{ + D_LineListArray array = d_lines_array_from_dbgi_key_file_path_line_range(arena, dbgi_key, file_path, r1s64(line_num, line_num+1), max_voffs_per_line); + D_LineList list = {0}; + if(array.count != 0) + { + list = array.v[0]; + } + return list; +} + +internal D_LineList +d_lines_from_file_path_line_num(Arena *arena, String8 file_path, S64 line_num, U64 max_voffs_per_line) +{ + D_LineListArray array = d_lines_array_from_file_path_line_range(arena, file_path, r1s64(line_num, line_num+1), max_voffs_per_line); + D_LineList list = {0}; + if(array.count != 0) + { + list = array.v[0]; + } + return list; +} + +//////////////////////////////// +//~ rjf: Target Controls + +//- rjf: stopped info from the control thread + +internal D_Event +d_ctrl_last_stop_event(void) +{ + return d_user_state->ctrl_last_stop_event; +} + +//////////////////////////////// +//~ rjf: Main State Accessors/Mutators + +//- rjf: frame data + +internal U64 +d_frame_index(void) +{ + return d_user_state->frame_index; +} + +//- rjf: control state + +internal D_RunKind +d_ctrl_last_run_kind(void) +{ + return d_user_state->ctrl_last_run_kind; +} + +internal U64 +d_ctrl_last_run_frame_idx(void) +{ + return d_user_state->ctrl_last_run_frame_idx; +} + +internal B32 +d_ctrl_targets_running(void) +{ + return d_user_state->ctrl_is_running; +} + +internal U64 +d_stop_count(void) +{ + return d_user_state->stop_count; +} + +//- rjf: active entity based queries + +internal DI_KeyList +d_push_active_dbgi_key_list(Arena *arena) +{ + DI_KeyList dbgis = {0}; + D_EntityArray modules = d_entity_array_from_kind(D_EntityKind_Module); + for EachIndex(idx, modules.count) + { + D_Entity *module = modules.v[idx]; + DI_Key key = d_dbgi_key_from_module(module); + di_key_list_push(arena, &dbgis, key); + } + return dbgis; +} + +//- rjf: per-run caches + +internal U64 +d_query_cached_rip_from_thread(D_Entity *thread) +{ + U64 result = d_query_cached_rip_from_thread_unwind(thread, 0); + return result; +} + +internal U64 +d_query_cached_rip_from_thread_unwind(D_Entity *thread, U64 unwind_count) +{ + U64 result = 0; + if(unwind_count == 0) + { + result = d_cached_ip_from_thread(thread->handle); + } + else + { + Access *access = access_open(); + D_CallStack callstack = d_call_stack_from_thread(access, thread->handle, 1, 0); + if(callstack.concrete_frames_count != 0) + { + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + result = arch_ip_from_reg_block(arch_info, callstack.concrete_frames[unwind_count%callstack.concrete_frames_count]->regs); + } + access_close(access); + } + return result; +} + +internal U64 +d_query_cached_cfa_from_thread_unwind(D_Entity *thread, U64 unwind_count) +{ + U64 cfa = 0; + Access *access = access_open(); + D_CallStack callstack = d_call_stack_from_thread(access, thread->handle, 1, 0); + if(callstack.concrete_frames_count != 0) + { + cfa = callstack.concrete_frames[unwind_count%callstack.concrete_frames_count]->cfa; + } + access_close(access); + return cfa; +} + +internal E_String2NumMap * +d_query_cached_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) +{ + ProfBeginFunction(); + E_String2NumMap *map = &e_string2num_map_nil; + for(U64 cache_idx = 0; cache_idx < ArrayCount(d_user_state->locals_caches); cache_idx += 1) + { + D_RunLocalsCache *cache = &d_user_state->locals_caches[(d_user_state->locals_cache_gen+cache_idx)%ArrayCount(d_user_state->locals_caches)]; + if(cache_idx == 0 && cache->table_size == 0) + { + cache->table_size = 256; + cache->table = push_array(cache->arena, D_RunLocalsCacheSlot, cache->table_size); + } + else if(cache->table_size == 0) + { + break; + } + U64 hash = u64_hash_from_str8(str8_struct(&dbgi_key)); + U64 slot_idx = hash % cache->table_size; + D_RunLocalsCacheSlot *slot = &cache->table[slot_idx]; + D_RunLocalsCacheNode *node = 0; + for(D_RunLocalsCacheNode *n = slot->first; n != 0; n = n->hash_next) + { + if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) + { + node = n; + break; + } + } + if(node == 0) + { + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + E_String2NumMap *map = e_push_locals_map_from_rdi_voff(cache->arena, rdi, voff); + if(map->slots_count != 0) + { + node = push_array(cache->arena, D_RunLocalsCacheNode, 1); + node->dbgi_key = dbgi_key; + node->voff = voff; + node->locals_map = map; + SLLQueuePush_N(slot->first, slot->last, node, hash_next); + } + access_close(access); + } + if(node != 0 && node->locals_map->slots_count != 0) + { + map = node->locals_map; + break; + } + } + ProfEnd(); + return map; +} + +internal E_String2NumMap * +d_query_cached_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) +{ + ProfBeginFunction(); + E_String2NumMap *map = &e_string2num_map_nil; + for(U64 cache_idx = 0; cache_idx < ArrayCount(d_user_state->member_caches); cache_idx += 1) + { + D_RunLocalsCache *cache = &d_user_state->member_caches[(d_user_state->member_cache_gen+cache_idx)%ArrayCount(d_user_state->member_caches)]; + if(cache_idx == 0 && cache->table_size == 0) + { + cache->table_size = 256; + cache->table = push_array(cache->arena, D_RunLocalsCacheSlot, cache->table_size); + } + else if(cache->table_size == 0) + { + break; + } + U64 hash = u64_hash_from_str8(str8_struct(&dbgi_key)); + U64 slot_idx = hash % cache->table_size; + D_RunLocalsCacheSlot *slot = &cache->table[slot_idx]; + D_RunLocalsCacheNode *node = 0; + for(D_RunLocalsCacheNode *n = slot->first; n != 0; n = n->hash_next) + { + if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) + { + node = n; + break; + } + } + if(node == 0) + { + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + E_String2NumMap *map = e_push_member_map_from_rdi_voff(cache->arena, rdi, voff); + if(map->slots_count != 0) + { + node = push_array(cache->arena, D_RunLocalsCacheNode, 1); + node->dbgi_key = dbgi_key; + node->voff = voff; + node->locals_map = map; + SLLQueuePush_N(slot->first, slot->last, node, hash_next); + } + access_close(access); + } + if(node != 0 && node->locals_map->slots_count != 0) + { + map = node->locals_map; + break; + } + } + ProfEnd(); + return map; +} + +//- rjf: top-level command dispatch + +internal void +d_push_cmd(D_CmdKind kind, D_CmdParams *params) +{ + d_cmd_list_push_new(d_user_state->cmds_arena, &d_user_state->cmds, kind, params); +} + +//- rjf: command iteration + +internal B32 +d_next_cmd(D_Cmd **cmd) +{ + D_CmdNode *start_node = d_user_state->cmds.first; + if(cmd[0] != 0) + { + start_node = CastFromMember(D_CmdNode, cmd, cmd[0]); + start_node = start_node->next; + } + cmd[0] = 0; + if(start_node != 0) + { + cmd[0] = &start_node->cmd; + } + return !!cmd[0]; +} + +//////////////////////////////// +//~ rjf: Main Layer Top-Level Calls + +internal D_EventList +d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps, U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64], B32 auto_download_debug_info) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + d_user_state->frame_index += 1; + + ////////////////////////////// + //- rjf: sync with ctrl thread + // + D_EventList events = {0}; + ProfScope("sync with ctrl thread") + { + //- rjf: grab next reggen/memgen + U64 new_mem_gen = d_mem_gen(); + U64 new_reg_gen = d_reg_gen(); + + //- rjf: consume & process events + events = d_c2u_pop_events(arena); + d_entity_store_apply_events(d_user_state->ctrl_entity_store, &events); + for(D_EventNode *event_n = events.first; + event_n != 0; + event_n = event_n->next) + { + D_Event *event = &event_n->v; + log_infof("ctrl_event:\n{\n"); + log_infof("kind: \"%S\"\n", d_string_from_event_kind(event->kind)); + log_infof("entity_id: %u\n", event->entity_id); + switch(event->kind) + { + default:{}break; + + case D_EventKind_Error: + { + log_user_error(event->string); + }break; + + case D_EventKind_Started: + { + d_user_state->ctrl_is_running = 1; + d_user_state->ctrl_thread_run_state = 1; + }break; + + case D_EventKind_Stopped: + { + d_user_state->stop_count += 1; + d_user_state->ctrl_is_running = 0; + d_user_state->ctrl_thread_run_state = 0; + d_user_state->ctrl_soft_halt_issued = 0; + + // rjf: exception or unexpected trap -> push error + if(event->cause == D_EventCause_InterruptedByException || + event->cause == D_EventCause_InterruptedByTrap) + { + log_user_error(str8_zero()); + } + + // rjf: gather stop info + { + arena_clear(d_user_state->ctrl_stop_arena); + MemoryCopyStruct(&d_user_state->ctrl_last_stop_event, event); + d_user_state->ctrl_last_stop_event.string = push_str8_copy(d_user_state->ctrl_stop_arena, d_user_state->ctrl_last_stop_event.string); + } + }break; + } + log_infof("}\n\n"); + } + + //- rjf: clear tls base cache + if((d_user_state->tls_base_cache_reggen_idx != new_reg_gen || + d_user_state->tls_base_cache_memgen_idx != new_mem_gen) && + !d_ctrl_targets_running()) + { + d_user_state->tls_base_cache_gen += 1; + D_RunTLSBaseCache *cache = &d_user_state->tls_base_caches[d_user_state->tls_base_cache_gen%ArrayCount(d_user_state->tls_base_caches)]; + arena_clear(cache->arena); + cache->slots_count = 0; + cache->slots = 0; + d_user_state->tls_base_cache_reggen_idx = new_reg_gen; + d_user_state->tls_base_cache_memgen_idx = new_mem_gen; + } + + //- rjf: clear locals cache + if(d_user_state->locals_cache_reggen_idx != new_reg_gen && + !d_ctrl_targets_running()) + { + d_user_state->locals_cache_gen += 1; + D_RunLocalsCache *cache = &d_user_state->locals_caches[d_user_state->locals_cache_gen%ArrayCount(d_user_state->locals_caches)]; + arena_clear(cache->arena); + cache->table_size = 0; + cache->table = 0; + d_user_state->locals_cache_reggen_idx = new_reg_gen; + } + + //- rjf: clear members cache + if(d_user_state->member_cache_reggen_idx != new_reg_gen && + !d_ctrl_targets_running()) + { + d_user_state->member_cache_gen += 1; + D_RunLocalsCache *cache = &d_user_state->member_caches[d_user_state->member_cache_gen%ArrayCount(d_user_state->member_caches)]; + arena_clear(cache->arena); + cache->table_size = 0; + cache->table = 0; + d_user_state->member_cache_reggen_idx = new_reg_gen; + } + } + + ////////////////////////////// + //- rjf: hash ctrl parameterization state + // + U128 ctrl_param_state_hash = {0}; + { + // rjf: build data strings of all param data + String8List strings = {0}; + { + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + for EachIndex(idx, threads.count) + { + D_Entity *thread = threads.v[idx]; + if(thread->is_frozen) + { + str8_list_push(scratch.arena, &strings, str8_struct(&thread->id)); + str8_list_push(scratch.arena, &strings, str8_struct(&thread->is_frozen)); + } + } + for(U64 idx = 0; idx < breakpoints->count; idx += 1) + { + D_Breakpoint *bp = &breakpoints->v[idx]; + str8_list_push(scratch.arena, &strings, bp->file_path); + str8_list_push(scratch.arena, &strings, str8_struct(&bp->pt)); + str8_list_push(scratch.arena, &strings, bp->vaddr_expr); + str8_list_push(scratch.arena, &strings, bp->condition); + } + } + + // rjf: join & hash to produce result + String8 string = str8_list_join(scratch.arena, &strings, 0); + XXH128_hash_t hash = XXH3_128bits(string.str, string.size); + MemoryCopy(&ctrl_param_state_hash, &hash, sizeof(ctrl_param_state_hash)); + } + + ////////////////////////////// + //- rjf: if ctrl thread is running, and our ctrl parameterization + // state hash has changed since the last run, we should soft- + // halt-refresh to inform the ctrl thread about the updated + // state + // + if(d_ctrl_targets_running() && !u128_match(ctrl_param_state_hash, d_user_state->ctrl_last_run_param_state_hash)) + { + d_cmd(D_CmdKind_SoftHaltRefresh); + } + + ////////////////////////////// + //- rjf: process top-level commands + // + D_CmdList deferred_cmds = {0}; + D_MsgList ctrl_msgs = {0}; + ProfScope("process top-level commands") + { + D_BreakpointArray run_extra_bps = {0}; + for(D_Cmd *cmd = 0; d_next_cmd(&cmd);) + { + // rjf: unpack command + D_CmdParams *params = &cmd->params; + + // rjf: prep ctrl running arguments + B32 need_run = 0; + D_RunKind run_kind = D_RunKind_Run; + D_Entity *run_thread = &d_entity_nil; + D_RunFlags run_flags = 0; + D_TrapList run_traps = {0}; + + // rjf: process command + switch(cmd->kind) + { + default:{}break; + + //- rjf: low-level target control operations + case D_CmdKind_LaunchAndRun: + case D_CmdKind_LaunchAndStepInto: + { + // rjf: get list of targets to launch + D_TargetArray *targets_to_launch = ¶ms->targets; + + // rjf: no targets => assume all active targets + if(targets_to_launch->count == 0) + { + targets_to_launch = targets; + } + + // rjf: launch + if(targets_to_launch->count != 0) + { + for(U64 idx = 0; idx < targets_to_launch->count; idx += 1) + { + // rjf: unpack target + D_Target *target = &targets_to_launch->v[idx]; + String8 exe = str8_skip_chop_whitespace(target->exe); + String8 args = str8_skip_chop_whitespace(target->args); + String8 working_directory = str8_skip_chop_whitespace(target->working_directory); + String8 custom_entry_point_name = str8_skip_chop_whitespace(target->custom_entry_point_name); + String8 stdout_path = str8_skip_chop_whitespace(target->stdout_path); + String8 stderr_path = str8_skip_chop_whitespace(target->stderr_path); + String8 stdin_path = str8_skip_chop_whitespace(target->stdin_path); + String8List env = target->env; + if(working_directory.size == 0) + { + working_directory = get_current_path(scratch.arena); + } + + // rjf: build launch options + String8List cmdln_strings = {0}; + { + str8_list_push(scratch.arena, &cmdln_strings, exe); + { + U64 start_split_idx = 0; + B32 quoted = 0; + for(U64 idx = 0; idx <= args.size; idx += 1) + { + U8 byte = idx < args.size ? args.str[idx] : 0; + if(byte == '"') + { + quoted ^= 1; + } + B32 splitter_found = (!quoted && (byte == 0 || char_is_space(byte))); + if(splitter_found) + { + String8 string = str8_substr(args, r1u64(start_split_idx, idx)); + if(string.size > 0) + { + str8_list_push(scratch.arena, &cmdln_strings, string); + } + start_split_idx = idx+1; + } + } + } + } + + // rjf: push message to launch + { + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->msg_id = target->msg_id; + msg->kind = D_MsgKind_Launch; + msg->path = str8_copy(scratch.arena, working_directory); + msg->cmd_line_string_list = str8_list_copy(scratch.arena, &cmdln_strings); + msg->stdout_path = str8_copy(scratch.arena, stdout_path); + msg->stderr_path = str8_copy(scratch.arena, stderr_path); + msg->stdin_path = str8_copy(scratch.arena, stdin_path); + msg->debug_subprocesses = target->debug_subprocesses; + msg->env_inherit = 1; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + str8_list_push(scratch.arena, &msg->entry_points, custom_entry_point_name); + msg->env_string_list = env; + } + } + + // rjf: run + need_run = 1; + run_kind = D_RunKind_Run; + run_thread = &d_entity_nil; + run_flags = (cmd->kind == D_CmdKind_LaunchAndStepInto) ? D_RunFlag_StopOnEntryPoint : 0; + } + + // rjf: no targets -> error + if(targets_to_launch->count == 0) + { + log_user_error(str8_lit("No active targets exist; cannot launch. You must select a target first.")); + } + }break; + case D_CmdKind_Kill: + { + D_Entity *process = d_entity_from_handle(params->process); + if(process == &d_entity_nil) + { + log_user_error(str8_lit("Cannot kill; no process was specified.")); + } + else + { + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_Kill; + msg->exit_code = 1; + msg->entity = process->handle; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + } + }break; + case D_CmdKind_KillAll: + { + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_KillAll; + msg->exit_code = 1; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + }break; + case D_CmdKind_Detach: + { + D_Entity *process = d_entity_from_handle(params->process); + if(process == &d_entity_nil) + { + log_user_error(str8_lit("Cannot detach; no process specified.")); + } + else + { + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_Detach; + msg->entity = process->handle; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + } + }break; + case D_CmdKind_Continue: + { + B32 good_to_run = 0; + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + if(threads.count > 0) + { + for EachIndex(idx, threads.count) + { + D_Entity *thread = threads.v[idx]; + if(!thread->is_frozen) + { + good_to_run = 1; + break; + } + } + if(good_to_run) + { + need_run = 1; + run_kind = D_RunKind_Run; + run_thread = d_entity_from_handle(params->thread); + } + else + { + log_user_error(str8_lit("Cannot run with all threads frozen.")); + } + } + }break; + case D_CmdKind_StepIntoInst: + case D_CmdKind_StepOverInst: + case D_CmdKind_StepIntoLine: + case D_CmdKind_StepOverLine: + case D_CmdKind_StepOut: + case D_CmdKind_StepToExit: + { + D_Entity *thread = d_entity_from_handle(params->thread); + if(thread == &d_entity_nil) + { + log_user_error(str8_lit("Must have a selected thread to step.")); + } + else if(d_ctrl_targets_running()) + { + if(d_ctrl_last_run_kind() == D_RunKind_Run) + { + log_user_error(str8_lit("Must halt before stepping.")); + } + } + else if(thread->is_frozen) + { + log_user_error(str8_lit("Must thaw selected thread before stepping.")); + } + else + { + D_TrapNet trap_net = {0}; + switch(cmd->kind) + { + default: break; + case D_CmdKind_StepIntoInst: {trap_net.good_read = 1;}break; + case D_CmdKind_StepOverInst: {trap_net = d_trap_net_from_thread__step_over_inst(scratch.arena, thread);}break; + case D_CmdKind_StepIntoLine: {trap_net = d_trap_net_from_thread__step_into_line(scratch.arena, thread);}break; + case D_CmdKind_StepOverLine: {trap_net = d_trap_net_from_thread__step_over_line(scratch.arena, thread);}break; + case D_CmdKind_StepOut: {trap_net = d_trap_net_from_thread__step_out_scope(scratch.arena, thread);}break; + case D_CmdKind_StepToExit: {trap_net = d_trap_net_from_thread__step_to_exit(scratch.arena, thread);}break; + } + B32 good_trap_net = (trap_net.good_read || !trap_net.good_line_info); + if(good_trap_net && trap_net.traps.count != 0) + { + need_run = 1; + run_kind = D_RunKind_Step; + run_thread = thread; + run_flags = 0; + run_traps = trap_net.traps; + } + else if(good_trap_net && trap_net.traps.count == 0) + { + need_run = 1; + run_kind = D_RunKind_SingleStep; + run_thread = thread; + run_flags = 0; + run_traps = trap_net.traps; + } + else if(!good_trap_net && params->retry_idx < 100) + { + D_CmdParams params_copy = *params; + params_copy.retry_idx += 1; + d_cmd_list_push_new(scratch.arena, &deferred_cmds, cmd->kind, ¶ms_copy); + } + else if(!good_trap_net) + { + log_user_error(str8_lit("Could not successfully step.")); + } + } + }break; + case D_CmdKind_Halt: + if(d_ctrl_targets_running()) + { + d_halt(); + }break; + case D_CmdKind_SoftHaltRefresh: + if(d_ctrl_targets_running()) + { + need_run = 1; + run_kind = d_user_state->ctrl_last_run_kind; + run_thread = d_entity_from_handle(d_user_state->ctrl_last_run_thread_handle); + run_flags = d_user_state->ctrl_last_run_flags; + run_traps = d_user_state->ctrl_last_run_traps; + }break; + case D_CmdKind_SetThreadIP: + { + D_Entity *thread = d_entity_from_handle(params->thread); + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + U64 vaddr = params->vaddr; + void *block = d_cached_reg_block_from_thread(scratch.arena, thread->handle); + arch_reg_block_write_ip(arch_info, block, vaddr); + B32 result = d_thread_write_reg_block(thread->handle, block); + (void)result; + }break; + + //- rjf: high-level composite target control operations + case D_CmdKind_RunToLine: + { + run_extra_bps.count = 1; + run_extra_bps.v = push_array(scratch.arena, D_Breakpoint, 1); + if(params->file_path.size != 0) + { + run_extra_bps.v[0].file_path = params->file_path; + run_extra_bps.v[0].pt = params->cursor; + } + else if(params->vaddr != 0) + { + run_extra_bps.v[0].vaddr_expr = push_str8f(scratch.arena, "0x%I64x", params->vaddr); + } + d_cmd(D_CmdKind_Run); + }break; + case D_CmdKind_RunToName: + { + run_extra_bps.count = 1; + run_extra_bps.v = push_array(scratch.arena, D_Breakpoint, 1); + run_extra_bps.v[0].vaddr_expr = str8_copy(scratch.arena, params->string); + d_cmd(D_CmdKind_Run); + }break; + case D_CmdKind_Run: + { + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); + if(processes.count != 0) + { + d_cmd(D_CmdKind_Continue, .machine = params->machine, .process = params->process, .thread = params->thread); + } + else if(!d_ctrl_targets_running()) + { + d_cmd(D_CmdKind_LaunchAndRun); + } + }break; + case D_CmdKind_Restart: + { + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); + if(processes.count != 0) + { + d_cmd(D_CmdKind_KillAll); + } + d_cmd(D_CmdKind_LaunchAndRun); + }break; + case D_CmdKind_StepInto: + case D_CmdKind_StepOver: + { + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); + if(processes.count != 0) + { + D_CmdKind step_cmd_kind = (cmd->kind == D_CmdKind_StepInto + ? D_CmdKind_StepIntoLine + : D_CmdKind_StepOverLine); + B32 prefer_disasm = params->prefer_disasm; + if(prefer_disasm) + { + step_cmd_kind = (cmd->kind == D_CmdKind_StepInto + ? D_CmdKind_StepIntoInst + : D_CmdKind_StepOverInst); + } + d_cmd(step_cmd_kind, .thread = params->thread); + } + else if(!d_ctrl_targets_running()) + { + d_cmd(D_CmdKind_LaunchAndStepInto, .targets = *targets); + } + }break; + + //- rjf: debug control context management operations + case D_CmdKind_FreezeThread: + case D_CmdKind_ThawThread: + case D_CmdKind_FreezeProcess: + case D_CmdKind_ThawProcess: + case D_CmdKind_FreezeMachine: + case D_CmdKind_ThawMachine: + { + D_CmdKind disptch_kind = ((cmd->kind == D_CmdKind_FreezeThread || + cmd->kind == D_CmdKind_FreezeProcess || + cmd->kind == D_CmdKind_FreezeMachine) + ? D_CmdKind_FreezeEntity + : D_CmdKind_ThawEntity); + d_push_cmd(disptch_kind, params); + }break; + case D_CmdKind_FreezeLocalMachine: + { + D_MachineID machine_id = D_MachineID_Local; + d_cmd(D_CmdKind_FreezeMachine, .entity = d_handle_from_dmn(machine_id, dmn_handle_zero())); + }break; + case D_CmdKind_ThawLocalMachine: + { + D_MachineID machine_id = D_MachineID_Local; + d_cmd(D_CmdKind_ThawMachine, .entity = d_handle_from_dmn(machine_id, dmn_handle_zero())); + }break; + case D_CmdKind_FreezeEntity: + case D_CmdKind_ThawEntity: + { + B32 should_freeze = (cmd->kind == D_CmdKind_FreezeEntity); + D_Entity *root = d_entity_from_handle(params->entity); + for(D_Entity *e = root; e != &d_entity_nil; e = d_entity_rec_depth_first_pre(e, root).next) + { + if(e->kind == D_EntityKind_Thread) + { + e->is_frozen = should_freeze; + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = (should_freeze ? D_MsgKind_FreezeThread : D_MsgKind_ThawThread); + msg->entity = e->handle; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + } + } + if(d_ctrl_targets_running()) + { + need_run = 1; + run_kind = d_user_state->ctrl_last_run_kind; + run_thread = d_entity_from_handle(d_user_state->ctrl_last_run_thread_handle); + run_flags = d_user_state->ctrl_last_run_flags; + run_traps = d_user_state->ctrl_last_run_traps; + } + }break; + + //- rjf: entity decoration + case D_CmdKind_SetEntityColor: + { + D_Entity *entity = d_entity_from_handle(params->entity); + entity->rgba = params->rgba; + }break; + case D_CmdKind_SetEntityName: + { + D_Entity *entity = d_entity_from_handle(params->entity); + d_entity_equip_string(d_user_state->ctrl_entity_store, entity, params->string); + }break; + + //- rjf: modules + case D_CmdKind_DownloadModuleDebugInfo: + { + Access *access = access_open(); + D_ModuleInfo *info = d_info_from_module(access, params->entity); + String8 symbol_server_local_cache_path = smsv_local_path_from_key(scratch.arena, info->dbg_name, info->dbg_guid, info->dbg_age); + smsv_fill_local_path(symbol_server_local_cache_path); + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_SetModuleDebugInfoPath; + msg->entity = params->entity; + msg->path = symbol_server_local_cache_path; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + access_close(access); + }break; + + //- rjf: attaching + case D_CmdKind_Attach: + { + U32 pid = params->pid; + if(pid != 0) + { + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_Attach; + msg->entity_id = pid; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + } + }break; + + //- rjf: opening crash dumps + case D_CmdKind_OpenCrashDump: + { + String8 file_path = params->file_path; + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + msg->kind = D_MsgKind_OpenCrashDump; + msg->path = str8_copy(scratch.arena, file_path); + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + }break; + } + + // rjf: do run if needed + if(need_run) + { + // rjf: compute hash of all run-parameterization entities, store + { + d_user_state->ctrl_last_run_param_state_hash = ctrl_param_state_hash; + } + + // rjf: unpack target thread/module + D_Entity *thread = d_entity_from_handle(params->thread); + D_Entity *process = d_process_from_entity(thread); + U64 thread_ip_vaddr = d_cached_ip_from_thread(thread->handle); + D_Entity *module = d_module_from_process_vaddr(process, thread_ip_vaddr); + + // rjf: push & fill run message + D_Msg *msg = d_msg_list_push(scratch.arena, &ctrl_msgs); + { + D_Entity *process = d_entity_ancestor_from_kind(run_thread, D_EntityKind_Process); + msg->kind = (run_kind == D_RunKind_Run || run_kind == D_RunKind_Step) ? D_MsgKind_Run : D_MsgKind_SingleStep; + msg->run_flags = run_flags; + msg->entity = run_thread->handle; + msg->parent = process->handle; + MemoryCopyArray(msg->exception_code_filters, exception_code_filters); + msg->auto_download_debug_info = auto_download_debug_info; + MemoryCopyStruct(&msg->traps, &run_traps); + D_BreakpointArray *bp_batches[] = + { + breakpoints, + &run_extra_bps, + }; + for(U64 batch_idx = 0; batch_idx < ArrayCount(bp_batches); batch_idx += 1) + { + D_BreakpointArray *batch_breakpoints = bp_batches[batch_idx]; + for(U64 idx = 0; idx < batch_breakpoints->count; idx += 1) + { + // rjf: unpack user breakpoint entity + D_Breakpoint *bp = &batch_breakpoints->v[idx]; + + // rjf: textual location -> add breakpoints for all possible override locations + if(bp->file_path.size != 0 && bp->pt.line != 0) + { + String8List overrides = d_possible_path_overrides_from_maps_path(scratch.arena, module, path_maps, bp->file_path); + for(String8Node *n = overrides.first; n != 0; n = n->next) + { + D_Breakpoint dst_bp = {0}; + MemoryCopyStruct(&dst_bp, bp); + dst_bp.file_path = n->string; + d_breakpoint_list_push(scratch.arena, &msg->user_bps, &dst_bp); + } + } + + // rjf: all other cases - just copy the breakpoint info + else + { + d_breakpoint_list_push(scratch.arena, &msg->user_bps, bp); + } + } + } + } + + // rjf: copy run traps to scratch (needed, if run_traps can be `d_user_state->ctrl_last_run_traps`) + D_TrapList run_traps_copy = d_trap_list_copy(scratch.arena, &run_traps); + D_BreakpointArray run_extra_bps_copy = d_breakpoint_array_copy(scratch.arena, &run_extra_bps); + + // rjf: store last run info + arena_clear(d_user_state->ctrl_last_run_arena); + d_user_state->ctrl_last_run_kind = run_kind; + d_user_state->ctrl_last_run_frame_idx = d_frame_index(); + d_user_state->ctrl_last_run_thread_handle = run_thread->handle; + d_user_state->ctrl_last_run_flags = run_flags; + d_user_state->ctrl_last_run_traps = d_trap_list_copy(d_user_state->ctrl_last_run_arena, &run_traps_copy); + d_user_state->ctrl_last_run_extra_bps = d_breakpoint_array_copy(d_user_state->ctrl_last_run_arena, &run_extra_bps_copy); + d_user_state->ctrl_is_running = 1; + } + } + } + + ////////////////////////////// + //- rjf: clear command batch + // + { + arena_clear(d_user_state->cmds_arena); + MemoryZeroStruct(&d_user_state->cmds); + } + + ////////////////////////////// + //- rjf: push deferred commands + // + for EachNode(n, D_CmdNode, deferred_cmds.first) + { + d_cmd_list_push_new(d_user_state->cmds_arena, &d_user_state->cmds, n->cmd.kind, &n->cmd.params); + } + + ////////////////////////////// + //- rjf: push new control messages to queue - try to send queue to control, + // clear queue if successful (if not, we'll just keep them around until + // the next tick) + // + { + D_MsgList msgs_copy = d_msg_list_deep_copy(d_user_state->ctrl_msg_arena, &ctrl_msgs); + d_msg_list_concat_in_place(&d_user_state->ctrl_msgs, &msgs_copy); + if(d_user_state->ctrl_msgs.count != 0) + { + if(!d_user_state->ctrl_soft_halt_issued && d_user_state->ctrl_thread_run_state) + { + d_user_state->ctrl_soft_halt_issued = 1; + d_halt(); + } + if(d_u2c_push_msgs(&d_user_state->ctrl_msgs, now_time_us()+100)) + { + MemoryZeroStruct(&d_user_state->ctrl_msgs); + arena_clear(d_user_state->ctrl_msg_arena); + } + } + } + + ProfEnd(); + scratch_end(scratch); + return events; +} diff --git a/src/dbg_engine/dbg_engine_user.h b/src/dbg_engine/dbg_engine_user.h new file mode 100644 index 00000000..2a81e8a8 --- /dev/null +++ b/src/dbg_engine/dbg_engine_user.h @@ -0,0 +1,485 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DBG_ENGINE_USER_H +#define DBG_ENGINE_USER_H + +//////////////////////////////// +//~ rjf: Line Info Types + +typedef struct D_Line D_Line; +struct D_Line +{ + String8 file_path; + TxtPt pt; + Rng1U64 voff_range; + RDI_ChecksumKind checksum_kind; + String8 checksum_value; + DI_Key dbgi_key; +}; + +typedef struct D_LineNode D_LineNode; +struct D_LineNode +{ + D_LineNode *next; + D_Line v; +}; + +typedef struct D_LineList D_LineList; +struct D_LineList +{ + D_LineNode *first; + D_LineNode *last; + U64 count; +}; + +typedef struct D_LineListArray D_LineListArray; +struct D_LineListArray +{ + D_LineList *v; + U64 count; + DI_KeyList dbgi_keys; +}; + +//////////////////////////////// +//~ rjf: Debug Engine Control Communication Types + +typedef enum D_RunKind +{ + D_RunKind_Run, + D_RunKind_SingleStep, + D_RunKind_Step, + D_RunKind_COUNT +} +D_RunKind; + +//////////////////////////////// +//~ rjf: Command Types + +typedef struct D_CmdParams D_CmdParams; +struct D_CmdParams +{ + D_Handle machine; + D_Handle process; + D_Handle thread; + D_Handle entity; + String8 string; + String8 file_path; + TxtPt cursor; + U64 vaddr; + B32 prefer_disasm; + U32 pid; + U32 rgba; + D_TargetArray targets; + U64 retry_idx; +}; + +typedef struct D_Cmd D_Cmd; +struct D_Cmd +{ + D_CmdKind kind; + D_CmdParams params; +}; + +typedef struct D_CmdNode D_CmdNode; +struct D_CmdNode +{ + D_CmdNode *next; + D_CmdNode *prev; + D_Cmd cmd; +}; + +typedef struct D_CmdList D_CmdList; +struct D_CmdList +{ + D_CmdNode *first; + D_CmdNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Main State Caches + +//- rjf: per-run tls-base-vaddr cache + +typedef struct D_RunTLSBaseCacheNode D_RunTLSBaseCacheNode; +struct D_RunTLSBaseCacheNode +{ + D_RunTLSBaseCacheNode *hash_next; + D_Handle process; + U64 root_vaddr; + U64 rip_vaddr; + U64 tls_base_vaddr; +}; + +typedef struct D_RunTLSBaseCacheSlot D_RunTLSBaseCacheSlot; +struct D_RunTLSBaseCacheSlot +{ + D_RunTLSBaseCacheNode *first; + D_RunTLSBaseCacheNode *last; +}; + +typedef struct D_RunTLSBaseCache D_RunTLSBaseCache; +struct D_RunTLSBaseCache +{ + Arena *arena; + U64 slots_count; + D_RunTLSBaseCacheSlot *slots; +}; + +//- rjf: per-run locals cache + +typedef struct D_RunLocalsCacheNode D_RunLocalsCacheNode; +struct D_RunLocalsCacheNode +{ + D_RunLocalsCacheNode *hash_next; + DI_Key dbgi_key; + U64 voff; + E_String2NumMap *locals_map; +}; + +typedef struct D_RunLocalsCacheSlot D_RunLocalsCacheSlot; +struct D_RunLocalsCacheSlot +{ + D_RunLocalsCacheNode *first; + D_RunLocalsCacheNode *last; +}; + +typedef struct D_RunLocalsCache D_RunLocalsCache; +struct D_RunLocalsCache +{ + Arena *arena; + U64 table_size; + D_RunLocalsCacheSlot *table; +}; + +//////////////////////////////// +//~ rjf: User -> Ctrl Message Types + +typedef enum D_MsgKind +{ + D_MsgKind_Null, + D_MsgKind_Launch, + D_MsgKind_Attach, + D_MsgKind_OpenCrashDump, + D_MsgKind_Kill, + D_MsgKind_KillAll, + D_MsgKind_Detach, + D_MsgKind_Run, + D_MsgKind_SingleStep, + D_MsgKind_SetUserEntryPoints, + D_MsgKind_SetModuleDebugInfoPath, + D_MsgKind_FreezeThread, + D_MsgKind_ThawThread, + D_MsgKind_COUNT, +} +D_MsgKind; + +typedef U32 D_RunFlags; +enum +{ + D_RunFlag_StopOnEntryPoint = (1<<0), +}; + +typedef struct D_Msg D_Msg; +struct D_Msg +{ + D_MsgKind kind; + D_RunFlags run_flags; + D_MsgID msg_id; + D_Handle entity; + D_Handle parent; + U32 entity_id; + U32 exit_code; + B32 env_inherit; + B32 debug_subprocesses; + B32 auto_download_debug_info; + U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64]; + String8 path; + String8List entry_points; + String8List cmd_line_string_list; + String8List env_string_list; + String8 stdout_path; + String8 stderr_path; + String8 stdin_path; + D_TrapList traps; + D_BreakpointList user_bps; +}; + +typedef struct D_MsgNode D_MsgNode; +struct D_MsgNode +{ + D_MsgNode *next; + D_Msg v; +}; + +typedef struct D_MsgList D_MsgList; +struct D_MsgList +{ + D_MsgNode *first; + D_MsgNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Ctrl -> User Event Types + +typedef enum D_EventKind +{ + D_EventKind_Null, + D_EventKind_Error, + + //- rjf: starts/stops + D_EventKind_Started, + D_EventKind_Stopped, + + //- rjf: entity creation/deletion + D_EventKind_NewProc, + D_EventKind_NewThread, + D_EventKind_NewModule, + D_EventKind_EndProc, + D_EventKind_EndThread, + D_EventKind_EndModule, + + //- rjf: thread freeze state changes + D_EventKind_ThreadFrozen, + D_EventKind_ThreadThawed, + + //- rjf: debug info changes + D_EventKind_ModuleDebugInfoPathChange, + + //- rjf: debug strings / decorations / markup + D_EventKind_DebugString, + D_EventKind_ThreadName, + D_EventKind_ThreadColor, + D_EventKind_SetBreakpoint, + D_EventKind_UnsetBreakpoint, + D_EventKind_SetVAddrRangeNote, + + //- rjf: memory + D_EventKind_MemReserve, + D_EventKind_MemCommit, + D_EventKind_MemDecommit, + D_EventKind_MemRelease, + + D_EventKind_COUNT +} +D_EventKind; + +typedef enum D_EventCause +{ + D_EventCause_Null, + D_EventCause_Error, + D_EventCause_Finished, + D_EventCause_EntryPoint, + D_EventCause_UserBreakpoint, + D_EventCause_InterruptedByTrap, + D_EventCause_InterruptedByException, + D_EventCause_InterruptedByHalt, + D_EventCause_COUNT +} +D_EventCause; + +typedef enum D_ExceptionKind +{ + D_ExceptionKind_Null, + D_ExceptionKind_MemoryRead, + D_ExceptionKind_MemoryWrite, + D_ExceptionKind_MemoryExecute, + D_ExceptionKind_CppThrow, + D_ExceptionKind_COUNT +} +D_ExceptionKind; + +typedef struct D_Event D_Event; +struct D_Event +{ + D_EventKind kind; + D_EventCause cause; + D_ExceptionKind exception_kind; + D_MsgID msg_id; + D_Handle entity; + D_Handle parent; + Arch arch; + U64 u64_code; + U32 entity_id; + Rng1U64 vaddr_rng; + U64 rip_vaddr; + U64 stack_base; + U64 tls_root; + U64 tls_index; + U64 tls_offset; + U64 timestamp; + U32 exception_code; + U32 rgba; + D_BreakpointFlags bp_flags; + String8 string; + OperatingSystem os; +}; + +typedef struct D_EventNode D_EventNode; +struct D_EventNode +{ + D_EventNode *next; + D_Event v; +}; + +typedef struct D_EventList D_EventList; +struct D_EventList +{ + D_EventNode *first; + D_EventNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Main State Types + +typedef struct D_UserState D_UserState; +struct D_UserState +{ + // rjf: top-level state + Arena *arena; + U64 frame_index; + + // rjf: commands + Arena *cmds_arena; + D_CmdList cmds; + + // rjf: output log root + C_Root output_log_root; + + // rjf: per-run caches + U64 tls_base_cache_reggen_idx; + U64 tls_base_cache_memgen_idx; + D_RunTLSBaseCache tls_base_caches[2]; + U64 tls_base_cache_gen; + U64 locals_cache_reggen_idx; + D_RunLocalsCache locals_caches[2]; + U64 locals_cache_gen; + U64 member_cache_reggen_idx; + D_RunLocalsCache member_caches[2]; + U64 member_cache_gen; + + // rjf: user -> ctrl driving state + Arena *ctrl_last_run_arena; + D_RunKind ctrl_last_run_kind; + U64 ctrl_last_run_frame_idx; + D_Handle ctrl_last_run_thread_handle; + D_RunFlags ctrl_last_run_flags; + D_TrapList ctrl_last_run_traps; + D_BreakpointArray ctrl_last_run_extra_bps; + U128 ctrl_last_run_param_state_hash; + B32 ctrl_is_running; + B32 ctrl_thread_run_state; + B32 ctrl_soft_halt_issued; + Arena *ctrl_msg_arena; + D_MsgList ctrl_msgs; + + // rjf: ctrl -> user reading state + D_EntityCtxRWStore *ctrl_entity_store; + Arena *ctrl_stop_arena; + D_Event ctrl_last_stop_event; + U64 stop_count; +}; + +//////////////////////////////// +//~ rjf: Globals + +global D_UserState *d_user_state = 0; + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal U64 d_hash_from_string(String8 string); +internal U64 d_hash_from_seed_string__case_insensitive(U64 seed, String8 string); +internal U64 d_hash_from_string__case_insensitive(String8 string); + +//////////////////////////////// +//~ rjf: Breakpoints + +internal D_BreakpointArray d_breakpoint_array_copy(Arena *arena, D_BreakpointArray *src); + +//////////////////////////////// +//~ rjf: Path Map Application + +internal String8List d_possible_path_overrides_from_maps_path(Arena *arena, D_Entity *primary_module, D_PathMapArray *path_maps, String8 file_path); + +//////////////////////////////// +//~ rjf: Debug Info Extraction Type Pure Functions + +internal D_LineList d_line_list_copy(Arena *arena, D_LineList *list); + +//////////////////////////////// +//~ rjf: Command Type Functions + +//- rjf: command parameters +internal D_CmdParams d_cmd_params_copy(Arena *arena, D_CmdParams *src); + +//- rjf: command lists +internal void d_cmd_list_push_new(Arena *arena, D_CmdList *cmds, D_CmdKind kind, D_CmdParams *params); + +//////////////////////////////// +//~ rjf: Stepping "Trap Net" Builders + +internal D_TrapNet d_trap_net_from_thread__step_over_inst(Arena *arena, D_Entity *thread); +internal D_TrapNet d_trap_net_from_thread__step_over_line(Arena *arena, D_Entity *thread); +internal D_TrapNet d_trap_net_from_thread__step_into_line(Arena *arena, D_Entity *thread); +internal D_TrapNet d_trap_net_from_thread__step_out_scope(Arena *arena, D_Entity *thread); +internal D_TrapNet d_trap_net_from_thread__step_to_exit(Arena *arena, D_Entity *thread); + +//////////////////////////////// +//~ rjf: Debug Info Lookups + +//- rjf: voff -> line info +internal D_LineList d_lines_from_dbgi_key_voff(Arena *arena, DI_Key dbgi_key, U64 voff); + +//- rjf: file:line -> line info +// TODO(rjf): this depends on file path maps, needs to move +// TODO(rjf): need to clean this up & dedup +internal D_LineListArray d_lines_array_from_dbgi_key_file_path_line_range(Arena *arena, DI_Key dbgi_key, String8 file_path, Rng1S64 line_num_range, U64 max_voffs_per_line); +internal D_LineListArray d_lines_array_from_file_path_line_range(Arena *arena, String8 file_path, Rng1S64 line_num_range, U64 max_voffs_per_line); +internal D_LineList d_lines_from_dbgi_key_file_path_line_num(Arena *arena, DI_Key dbgi_key, String8 file_path, S64 line_num, U64 max_voffs_per_line); +internal D_LineList d_lines_from_file_path_line_num(Arena *arena, String8 file_path, S64 line_num, U64 max_voffs_per_line); + +//////////////////////////////// +//~ rjf: Target Controls + +//- rjf: stopped info from the control thread +internal D_Event d_ctrl_last_stop_event(void); + +//////////////////////////////// +//~ rjf: Main State Accessors/Mutators + +//- rjf: frame data +internal U64 d_frame_index(void); + +//- rjf: control state +internal D_RunKind d_ctrl_last_run_kind(void); +internal U64 d_ctrl_last_run_frame_idx(void); +internal B32 d_ctrl_targets_running(void); +internal U64 d_stop_count(void); + +//- rjf: active entity based queries +internal DI_KeyList d_push_active_dbgi_key_list(Arena *arena); + +//- rjf: per-run caches +internal U64 d_query_cached_rip_from_thread(D_Entity *thread); +internal U64 d_query_cached_rip_from_thread_unwind(D_Entity *thread, U64 unwind_count); +internal U64 d_query_cached_cfa_from_thread_unwind(D_Entity *thread, U64 unwind_count); +internal E_String2NumMap *d_query_cached_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); +internal E_String2NumMap *d_query_cached_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); + +//- rjf: top-level command dispatch +internal void d_push_cmd(D_CmdKind kind, D_CmdParams *params); +#define d_cmd(kind, ...) d_push_cmd((kind), &(D_CmdParams){.thread = {0}, __VA_ARGS__}) + +//- rjf: command iteration +internal B32 d_next_cmd(D_Cmd **cmd); + +//////////////////////////////// +//~ rjf: Main Layer Top-Level Calls + +internal D_EventList d_tick(Arena *arena, D_TargetArray *targets, D_BreakpointArray *breakpoints, D_PathMapArray *path_maps, U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64], B32 auto_download_debug_info); + +#endif // DBG_ENGINE_USER_H diff --git a/src/dbg_engine/generated/dbg_engine.meta.c b/src/dbg_engine/generated/dbg_engine.meta.c index 437ae10e..e322fded 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.c +++ b/src/dbg_engine/generated/dbg_engine.meta.c @@ -1,5 +1,210 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 d_entity_kind_code_name_table[13] = +{ +{0}, +str8_lit_comp("root"), +str8_lit_comp("machine"), +str8_lit_comp("process"), +str8_lit_comp("thread"), +str8_lit_comp("module"), +str8_lit_comp("entry_point"), +str8_lit_comp("launch_msg_id"), +str8_lit_comp("debug_info_path"), +str8_lit_comp("pending_thread_name"), +str8_lit_comp("pending_thread_color"), +str8_lit_comp("breakpoint"), +str8_lit_comp("address_range_annotation"), +}; + +String8 d_entity_kind_display_string_table[13] = +{ +{0}, +str8_lit_comp("Root"), +str8_lit_comp("Machine"), +str8_lit_comp("Process"), +str8_lit_comp("Thread"), +str8_lit_comp("Module"), +str8_lit_comp("EntryPoint"), +str8_lit_comp("LaunchMsgID"), +str8_lit_comp("DebugInfoPath"), +str8_lit_comp("PendingThreadName"), +str8_lit_comp("PendingThreadColor"), +str8_lit_comp("Breakpoint"), +str8_lit_comp("AddressRangeAnnotation"), +}; + +U32 d_exception_code_kind_code_table[38] = +{ +0, +0x40010005, +0x40010008, +0x40080201, +0x40080202, +0x0000071a, +0x80000002, +0xc0000005, +0xc0000006, +0xc0000008, +0xc0000017, +0xc000001d, +0xc0000025, +0xc0000026, +0xc000008c, +0xc000008d, +0xc000008e, +0xc000008f, +0xc0000090, +0xc0000091, +0xc0000092, +0xc0000093, +0xc0000094, +0xc0000095, +0xc0000096, +0xc00000fd, +0xc0000135, +0xc0000138, +0xc0000139, +0xc0000142, +0xc00002b4, +0xc00002b5, +0xc0000420, +0xc06d007e, +0xc06d007f, +0xe073616e, +0xe0736171, +0x0000087a, +}; + +String8 d_exception_code_kind_display_string_table[38] = +{ +{0}, +str8_lit_comp("(Win32) Control-C"), +str8_lit_comp("(Win32) Control-Break"), +str8_lit_comp("(Win32) WinRT Originate Error"), +str8_lit_comp("(Win32) WinRT Transform Error"), +str8_lit_comp("(Win32) RPC Call Cancelled"), +str8_lit_comp("(Win32) Data Type Misalignment"), +str8_lit_comp("(Win32) Access Violation"), +str8_lit_comp("(Win32) In Page Error"), +str8_lit_comp("(Win32) Invalid Handle Specified"), +str8_lit_comp("(Win32) Not Enough Quota"), +str8_lit_comp("(Win32) Illegal Instruction"), +str8_lit_comp("(Win32) Cannot Continue From Exception"), +str8_lit_comp("(Win32) Invalid Exception Disposition Returned By Handler"), +str8_lit_comp("(Win32) Array Bounds Exceeded"), +str8_lit_comp("(Win32) Floating-Point Denormal Operand"), +str8_lit_comp("(Win32) Floating-Point Division By Zero"), +str8_lit_comp("(Win32) Floating-Point Inexact Result"), +str8_lit_comp("(Win32) Floating-Point Invalid Operation"), +str8_lit_comp("(Win32) Floating-Point Overflow"), +str8_lit_comp("(Win32) Floating-Point Stack Check"), +str8_lit_comp("(Win32) Floating-Point Underflow"), +str8_lit_comp("(Win32) Integer Division By Zero"), +str8_lit_comp("(Win32) Integer Overflow"), +str8_lit_comp("(Win32) Privileged Instruction"), +str8_lit_comp("(Win32) Stack Overflow"), +str8_lit_comp("(Win32) Unable To Locate DLL"), +str8_lit_comp("(Win32) Ordinal Not Found"), +str8_lit_comp("(Win32) Entry Point Not Found"), +str8_lit_comp("(Win32) DLL Initialization Failed"), +str8_lit_comp("(Win32) Floating Point SSE Multiple Faults"), +str8_lit_comp("(Win32) Floating Point SSE Multiple Traps"), +str8_lit_comp("(Win32) Assertion Failed"), +str8_lit_comp("(Win32) Module Not Found"), +str8_lit_comp("(Win32) Procedure Not Found"), +str8_lit_comp("(Win32) Sanitizer Error Detected"), +str8_lit_comp("(Win32) Sanitizer Raw Access Violation"), +str8_lit_comp("(Win32) DirectX Debug Layer"), +}; + +String8 d_exception_code_kind_lowercase_code_string_table[38] = +{ +{0}, +str8_lit_comp("win32_ctrl_c"), +str8_lit_comp("win32_ctrl_break"), +str8_lit_comp("win32_win_rt_originate_error"), +str8_lit_comp("win32_win_rt_transform_error"), +str8_lit_comp("win32_rpc_call_cancelled"), +str8_lit_comp("win32_datatype_misalignment"), +str8_lit_comp("win32_access_violation"), +str8_lit_comp("win32_in_page_error"), +str8_lit_comp("win32_invalid_handle"), +str8_lit_comp("win32_not_enough_quota"), +str8_lit_comp("win32_illegal_instruction"), +str8_lit_comp("win32_cannot_continue_exception"), +str8_lit_comp("win32_invalid_exception_disposition"), +str8_lit_comp("win32_array_bounds_exceeded"), +str8_lit_comp("win32_floating_point_denormal_operand"), +str8_lit_comp("win32_floating_point_division_by_zero"), +str8_lit_comp("win32_floating_point_inexact_result"), +str8_lit_comp("win32_floating_point_invalid_operation"), +str8_lit_comp("win32_floating_point_overflow"), +str8_lit_comp("win32_floating_point_stack_check"), +str8_lit_comp("win32_floating_point_underflow"), +str8_lit_comp("win32_integer_division_by_zero"), +str8_lit_comp("win32_integer_overflow"), +str8_lit_comp("win32_privileged_instruction"), +str8_lit_comp("win32_stack_overflow"), +str8_lit_comp("win32_unable_to_locate_dll"), +str8_lit_comp("win32_ordinal_not_found"), +str8_lit_comp("win32_entry_point_not_found"), +str8_lit_comp("win32_dll_initialization_failed"), +str8_lit_comp("win32_floating_point_sse_multiple_faults"), +str8_lit_comp("win32_floating_point_sse_multiple_traps"), +str8_lit_comp("win32_assertion_failed"), +str8_lit_comp("win32_module_not_found"), +str8_lit_comp("win32_procedure_not_found"), +str8_lit_comp("win32_sanitizer_error_detected"), +str8_lit_comp("win32_sanitizer_raw_access_violation"), +str8_lit_comp("win32_directx_debug_layer"), +}; + +B8 d_exception_code_kind_default_enable_table[38] = +{ +0, +1, +1, +0, +0, +0, +0, +1, +0, +1, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +1, +0, +0, +1, +0, +1, +}; + +C_LINKAGE_END + diff --git a/src/dbg_engine/generated/dbg_engine.meta.h b/src/dbg_engine/generated/dbg_engine.meta.h index 4c8d2908..87e6284a 100644 --- a/src/dbg_engine/generated/dbg_engine.meta.h +++ b/src/dbg_engine/generated/dbg_engine.meta.h @@ -1,68 +1,143 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef DBG_ENGINE_META_H -#define DBG_ENGINE_META_H - -typedef enum D_CmdKind -{ -D_CmdKind_Null, -D_CmdKind_LaunchAndRun, -D_CmdKind_LaunchAndStepInto, -D_CmdKind_Kill, -D_CmdKind_KillAll, -D_CmdKind_Detach, -D_CmdKind_Continue, -D_CmdKind_StepIntoInst, -D_CmdKind_StepOverInst, -D_CmdKind_StepIntoLine, -D_CmdKind_StepOverLine, -D_CmdKind_StepOut, -D_CmdKind_Halt, -D_CmdKind_SoftHaltRefresh, -D_CmdKind_SetThreadIP, -D_CmdKind_RunToLine, -D_CmdKind_Run, -D_CmdKind_Restart, -D_CmdKind_StepInto, -D_CmdKind_StepOver, -D_CmdKind_FreezeThread, -D_CmdKind_ThawThread, -D_CmdKind_FreezeProcess, -D_CmdKind_ThawProcess, -D_CmdKind_FreezeMachine, -D_CmdKind_ThawMachine, -D_CmdKind_FreezeLocalMachine, -D_CmdKind_ThawLocalMachine, -D_CmdKind_FreezeEntity, -D_CmdKind_ThawEntity, -D_CmdKind_SetEntityColor, -D_CmdKind_SetEntityName, -D_CmdKind_Attach, -D_CmdKind_COUNT, -} D_CmdKind; - -global B32 DEV_always_refresh = 0; -global B32 DEV_simulate_lag = 0; -global B32 DEV_draw_ui_text_pos = 0; -global B32 DEV_draw_ui_focus_debug = 0; -global B32 DEV_draw_ui_box_heatmap = 0; -global B32 DEV_eval_compiler_tooltips = 0; -global B32 DEV_eval_watch_key_tooltips = 0; -global B32 DEV_cmd_context_tooltips = 0; -global B32 DEV_updating_indicator = 0; -struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] = -{ -{&DEV_always_refresh, str8_lit_comp("always_refresh")}, -{&DEV_simulate_lag, str8_lit_comp("simulate_lag")}, -{&DEV_draw_ui_text_pos, str8_lit_comp("draw_ui_text_pos")}, -{&DEV_draw_ui_focus_debug, str8_lit_comp("draw_ui_focus_debug")}, -{&DEV_draw_ui_box_heatmap, str8_lit_comp("draw_ui_box_heatmap")}, -{&DEV_eval_compiler_tooltips, str8_lit_comp("eval_compiler_tooltips")}, -{&DEV_eval_watch_key_tooltips, str8_lit_comp("eval_watch_key_tooltips")}, -{&DEV_cmd_context_tooltips, str8_lit_comp("cmd_context_tooltips")}, -{&DEV_updating_indicator, str8_lit_comp("updating_indicator")}, -}; -#endif // DBG_ENGINE_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef DBG_ENGINE_META_H +#define DBG_ENGINE_META_H + +typedef enum D_CmdKind +{ +D_CmdKind_Null, +D_CmdKind_LaunchAndRun, +D_CmdKind_LaunchAndStepInto, +D_CmdKind_Kill, +D_CmdKind_KillAll, +D_CmdKind_Detach, +D_CmdKind_Continue, +D_CmdKind_StepIntoInst, +D_CmdKind_StepOverInst, +D_CmdKind_StepIntoLine, +D_CmdKind_StepOverLine, +D_CmdKind_StepOut, +D_CmdKind_StepToExit, +D_CmdKind_Halt, +D_CmdKind_SoftHaltRefresh, +D_CmdKind_SetThreadIP, +D_CmdKind_RunToLine, +D_CmdKind_RunToName, +D_CmdKind_Run, +D_CmdKind_Restart, +D_CmdKind_StepInto, +D_CmdKind_StepOver, +D_CmdKind_FreezeThread, +D_CmdKind_ThawThread, +D_CmdKind_FreezeProcess, +D_CmdKind_ThawProcess, +D_CmdKind_FreezeMachine, +D_CmdKind_ThawMachine, +D_CmdKind_FreezeLocalMachine, +D_CmdKind_ThawLocalMachine, +D_CmdKind_FreezeEntity, +D_CmdKind_ThawEntity, +D_CmdKind_SetEntityColor, +D_CmdKind_SetEntityName, +D_CmdKind_DownloadModuleDebugInfo, +D_CmdKind_Attach, +D_CmdKind_OpenCrashDump, +D_CmdKind_COUNT, +} D_CmdKind; + +typedef enum D_EntityKind +{ +D_EntityKind_Null, +D_EntityKind_Root, +D_EntityKind_Machine, +D_EntityKind_Process, +D_EntityKind_Thread, +D_EntityKind_Module, +D_EntityKind_EntryPoint, +D_EntityKind_LaunchMsgID, +D_EntityKind_DebugInfoPath, +D_EntityKind_PendingThreadName, +D_EntityKind_PendingThreadColor, +D_EntityKind_Breakpoint, +D_EntityKind_AddressRangeAnnotation, +D_EntityKind_COUNT, +} D_EntityKind; + +typedef enum D_ExceptionCodeKind +{ +D_ExceptionCodeKind_Null, +D_ExceptionCodeKind_Win32CtrlC, +D_ExceptionCodeKind_Win32CtrlBreak, +D_ExceptionCodeKind_Win32WinRTOriginateError, +D_ExceptionCodeKind_Win32WinRTTransformError, +D_ExceptionCodeKind_Win32RPCCallCancelled, +D_ExceptionCodeKind_Win32DatatypeMisalignment, +D_ExceptionCodeKind_Win32AccessViolation, +D_ExceptionCodeKind_Win32InPageError, +D_ExceptionCodeKind_Win32InvalidHandle, +D_ExceptionCodeKind_Win32NotEnoughQuota, +D_ExceptionCodeKind_Win32IllegalInstruction, +D_ExceptionCodeKind_Win32CannotContinueException, +D_ExceptionCodeKind_Win32InvalidExceptionDisposition, +D_ExceptionCodeKind_Win32ArrayBoundsExceeded, +D_ExceptionCodeKind_Win32FloatingPointDenormalOperand, +D_ExceptionCodeKind_Win32FloatingPointDivisionByZero, +D_ExceptionCodeKind_Win32FloatingPointInexactResult, +D_ExceptionCodeKind_Win32FloatingPointInvalidOperation, +D_ExceptionCodeKind_Win32FloatingPointOverflow, +D_ExceptionCodeKind_Win32FloatingPointStackCheck, +D_ExceptionCodeKind_Win32FloatingPointUnderflow, +D_ExceptionCodeKind_Win32IntegerDivisionByZero, +D_ExceptionCodeKind_Win32IntegerOverflow, +D_ExceptionCodeKind_Win32PrivilegedInstruction, +D_ExceptionCodeKind_Win32StackOverflow, +D_ExceptionCodeKind_Win32UnableToLocateDLL, +D_ExceptionCodeKind_Win32OrdinalNotFound, +D_ExceptionCodeKind_Win32EntryPointNotFound, +D_ExceptionCodeKind_Win32DLLInitializationFailed, +D_ExceptionCodeKind_Win32FloatingPointSSEMultipleFaults, +D_ExceptionCodeKind_Win32FloatingPointSSEMultipleTraps, +D_ExceptionCodeKind_Win32AssertionFailed, +D_ExceptionCodeKind_Win32ModuleNotFound, +D_ExceptionCodeKind_Win32ProcedureNotFound, +D_ExceptionCodeKind_Win32SanitizerErrorDetected, +D_ExceptionCodeKind_Win32SanitizerRawAccessViolation, +D_ExceptionCodeKind_Win32DirectXDebugLayer, +D_ExceptionCodeKind_COUNT, +} D_ExceptionCodeKind; + +global B32 DEV_always_refresh = 0; +global B32 DEV_simulate_lag = 0; +global B32 DEV_draw_ui_text_pos = 0; +global B32 DEV_draw_ui_focus_debug = 0; +global B32 DEV_draw_ui_box_heatmap = 0; +global B32 DEV_eval_compiler_tooltips = 0; +global B32 DEV_eval_watch_key_tooltips = 0; +global B32 DEV_cmd_context_tooltips = 0; +global B32 DEV_updating_indicator = 0; +struct {B32 *value_ptr; String8 name;} DEV_toggle_table[] = +{ +{&DEV_always_refresh, str8_lit_comp("always_refresh")}, +{&DEV_simulate_lag, str8_lit_comp("simulate_lag")}, +{&DEV_draw_ui_text_pos, str8_lit_comp("draw_ui_text_pos")}, +{&DEV_draw_ui_focus_debug, str8_lit_comp("draw_ui_focus_debug")}, +{&DEV_draw_ui_box_heatmap, str8_lit_comp("draw_ui_box_heatmap")}, +{&DEV_eval_compiler_tooltips, str8_lit_comp("eval_compiler_tooltips")}, +{&DEV_eval_watch_key_tooltips, str8_lit_comp("eval_watch_key_tooltips")}, +{&DEV_cmd_context_tooltips, str8_lit_comp("cmd_context_tooltips")}, +{&DEV_updating_indicator, str8_lit_comp("updating_indicator")}, +}; +C_LINKAGE_BEGIN +extern String8 d_entity_kind_code_name_table[13]; +extern String8 d_entity_kind_display_string_table[13]; +extern U32 d_exception_code_kind_code_table[38]; +extern String8 d_exception_code_kind_display_string_table[38]; +extern String8 d_exception_code_kind_lowercase_code_string_table[38]; +extern B8 d_exception_code_kind_default_enable_table[38]; + +C_LINKAGE_END + +#endif // DBG_ENGINE_META_H diff --git a/src/dbg_info/dbg_info.c b/src/dbg_info/dbg_info.c index 5a4cd680..fbbe8f63 100644 --- a/src/dbg_info/dbg_info.c +++ b/src/dbg_info/dbg_info.c @@ -71,7 +71,7 @@ di_init(CmdLine *cmdline) if(!try_u64_from_str8_c_rules(signal_pid_string, &signal_pid)) { has_parent = 0; - signal_pid = os_get_process_info()->pid; + signal_pid = get_process_info()->pid; } U64 signal_code = 0; String8 signal_code_string = cmd_line_string(cmdline, str8_lit("signal_code")); @@ -84,22 +84,31 @@ di_init(CmdLine *cmdline) { di_shared->conversion_completion_lock_semaphore = semaphore_open(di_shared->conversion_completion_lock_semaphore_name); di_shared->conversion_completion_signal_semaphore = semaphore_open(di_shared->conversion_completion_signal_semaphore_name); - di_shared->conversion_completion_shared_memory = os_shared_memory_open(di_shared->conversion_completion_shared_memory_name); + di_shared->conversion_completion_shared_memory = shared_memory_open(di_shared->conversion_completion_shared_memory_name); } else { di_shared->conversion_completion_lock_semaphore = semaphore_alloc(1, 1, di_shared->conversion_completion_lock_semaphore_name); di_shared->conversion_completion_signal_semaphore = semaphore_alloc(0, 65536, di_shared->conversion_completion_signal_semaphore_name); - di_shared->conversion_completion_shared_memory = os_shared_memory_alloc(KB(4), di_shared->conversion_completion_shared_memory_name); + di_shared->conversion_completion_shared_memory = shared_memory_alloc(KB(4), di_shared->conversion_completion_shared_memory_name); di_shared->conversion_completion_signal_receiver_thread = thread_launch(di_conversion_completion_signal_receiver_thread_entry_point, 0); } - di_shared->conversion_completion_shared_memory_base = (U64 *)os_shared_memory_view_open(di_shared->conversion_completion_shared_memory, r1u64(0, KB(4))); + di_shared->conversion_completion_shared_memory_base = (U64 *)shared_memory_view_open(di_shared->conversion_completion_shared_memory, r1u64(0, KB(4))); di_shared->completion_mutex = mutex_alloc(); di_shared->completion_arena = arena_alloc(); di_shared->event_mutex = mutex_alloc(); di_shared->event_arena = arena_alloc(); } +//////////////////////////////// +//~ rjf: Settings Submission + +internal void +di_set_auto_downloads(B32 auto_downloads) +{ + ins_atomic_u32_eval_assign(&di_shared->auto_downloads, auto_downloads); +} + //////////////////////////////// //~ rjf: Path * Timestamp Cache Submission & Lookup @@ -164,8 +173,8 @@ di_key_from_path_timestamp(String8 path, U64 min_timestamp) //- rjf: try to make key from file's contents if(!made_key) { - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, path); - FileProperties props = os_properties_from_file(file); + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, path); + FileProperties props = properties_from_file(file); if(min_timestamp <= props.modified) { //- rjf: PDB magic => use GUID for key @@ -176,7 +185,7 @@ di_key_from_path_timestamp(String8 path, U64 min_timestamp) { read_only local_persist char msf_msf20_magic[] = "Microsoft C/C++ program database 2.00\r\n\x1aJG\0\0"; U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); + file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) { is_pdb = 1; @@ -186,7 +195,7 @@ di_key_from_path_timestamp(String8 path, U64 min_timestamp) { read_only local_persist char msf_msf70_magic[] = "Microsoft C/C++ MSF 7.00\r\n\032DS\0\0"; U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); + file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) { is_pdb = 1; @@ -198,15 +207,18 @@ di_key_from_path_timestamp(String8 path, U64 min_timestamp) } } } - os_file_close(file); + file_close(file); } //- rjf: fallback: hash from path/timestamp if(!made_key) { made_key = 1; - U128 hash = u128_hash_from_seed_str8(min_timestamp, path); - MemoryCopy(&key, &hash, Min(sizeof(hash), sizeof(key))); + if(path.size != 0) + { + U128 hash = u128_hash_from_seed_str8(min_timestamp, path); + MemoryCopy(&key, &hash, Min(sizeof(hash), sizeof(key))); + } } //- rjf: made key -> store in (key -> path/timestamp) table @@ -314,7 +326,7 @@ di_open(DI_Key key) internal void di_close(DI_Key key, B32 force_closed) -{ +{ //- rjf: unpack key U64 hash = u64_hash_from_str8(str8_struct(&key)); U64 slot_idx = hash%di_shared->slots_count; @@ -323,8 +335,8 @@ di_close(DI_Key key, B32 force_closed) //- rjf: decrement this key's node's refcount; remove if needed B32 node_released = 0; - OS_Handle file = {0}; - OS_Handle file_map = {0}; + File file = {0}; + FileMap file_map = {0}; FileProperties file_props = {0}; void *file_base = 0; Arena *arena = 0; @@ -340,15 +352,15 @@ di_close(DI_Key key, B32 force_closed) } } if(node) - { - if(force_closed) - { - node->refcount = 0; - } - else - { - node->refcount -= 1; - } + { + if(force_closed) + { + node->refcount = 0; + } + else + { + node->refcount -= 1; + } if(node->refcount == 0) { for(;;) @@ -374,17 +386,17 @@ di_close(DI_Key key, B32 force_closed) //- rjf: release node's resources if needed if(node_released) - { - ins_atomic_u64_dec_eval(&di_shared->load_count); - ins_atomic_u64_inc_eval(&di_shared->load_gen); - os_file_map_view_close(file_map, file_base, r1u64(0, file_props.size)); - os_file_map_close(file_map); - os_file_close(file); + { + ins_atomic_u64_dec_eval(&di_shared->load_count); + ins_atomic_u64_inc_eval(&di_shared->load_gen); + file_map_view_close(file_map, file_base, r1u64(0, file_props.size)); + file_map_close(file_map); + file_close(file); if(arena != 0) { arena_release(arena); } - } + } } //////////////////////////////// @@ -396,13 +408,13 @@ di_load_gen(void) U64 result = ins_atomic_u64_eval(&di_shared->load_gen); return result; } - -internal U64 -di_load_count(void) -{ + +internal U64 +di_load_count(void) +{ U64 result = ins_atomic_u64_eval(&di_shared->load_count); - return result; -} + return result; +} internal DI_KeyArray di_push_all_loaded_keys(Arena *arena) @@ -492,7 +504,7 @@ di_rdi_from_key(Access *access, DI_Key key, B32 high_priority, U64 endt_us) } // rjf: found current results, or out-of-time? abort - if(grabbed || os_now_microseconds() >= endt_us) + if(grabbed || now_time_us() >= endt_us) { break; } @@ -598,14 +610,14 @@ di_async_tick(void) //////////////////////////// //- rjf: generate load tasks for all unique requests - // - for EachElement(priority_idx, first_req) - { + // + for EachElement(priority_idx, first_req) + { for EachNode(n, DI_RequestNode, first_req[priority_idx]) { // rjf: unpack request DI_Key key = n->v.key; - + // rjf: determine if this request is a duplicate B32 request_is_duplicate = 1; { @@ -625,7 +637,7 @@ di_async_tick(void) } } } - + // rjf: if not a duplicate, create new task if(!request_is_duplicate) { @@ -642,25 +654,25 @@ di_async_tick(void) DLLPushBack(di_shared->first_load_task[priority_idx], di_shared->last_load_task[priority_idx], t); t->key = key; } - } - } + } + } //////////////////////////// //- rjf: update tasks: configure, launch if we can, & retire if we can - // - for EachElement(priority_idx, di_shared->first_load_task) - { + // + for EachElement(priority_idx, di_shared->first_load_task) + { for(DI_LoadTask *t = di_shared->first_load_task[priority_idx], *next = 0; t != 0; t = next) { next = t->next; - + //- rjf: unpack key DI_Key key = t->key; U64 key_hash = u64_hash_from_str8(str8_struct(&key)); U64 key_slot_idx = key_hash%di_shared->key2path_slots_count; DI_KeySlot *key_slot = &di_shared->key2path_slots[key_slot_idx]; Stripe *key_stripe = stripe_from_slot_idx(&di_shared->key2path_stripes, key_slot_idx); - + //- rjf: get key's O.G. path String8 og_path = {0}; U64 og_min_timestamp = 0; @@ -676,28 +688,59 @@ di_async_tick(void) } } } - - //- rjf: analyze O.G. debug info - if(!t->og_analyzed) + + //- rjf: kick off symbol server download, or check to see if we are actively downloading O.G. + B32 og_is_downloading = 0; + if(og_path.size != 0) + { +#if defined(SYMBOL_SERVER_H) + B32 file_is_present = (properties_from_file_path(og_path).modified != 0); + if(!file_is_present) + { + String8 symbol_cache_path = smsv_cache_path(); + if(symbol_cache_path.size != 0 && str8_match(symbol_cache_path, og_path, StringMatchFlag_RightSideSloppy|StringMatchFlag_SlashInsensitive)) + { + if(di_shared->auto_downloads) + { + og_is_downloading = 1; + smsv_fill_local_path(og_path); + } + SMSV_Status status = smsv_status_from_local_path(og_path); + if(status == SMSV_Status_Pending) + { + og_is_downloading = 1; + } + else if(status == SMSV_Status_Null) + { + og_is_downloading = 0; + } + } + } +#endif + } + + //- rjf: analyze O.G. debug info + if(!t->og_analyzed && !og_is_downloading) { t->og_analyzed = 1; - OS_Handle file = os_file_open(OS_AccessFlag_ShareRead|OS_AccessFlag_Read, og_path); - FileProperties props = os_properties_from_file(file); + File file = file_open(AccessFlag_ShareRead|AccessFlag_Read, og_path); + FileProperties props = properties_from_file(file); t->og_size = props.size; U64 rdi_magic_maybe = 0; - if(os_file_read_struct(file, 0, &rdi_magic_maybe) == 8 && + if(file_read_struct(file, 0, &rdi_magic_maybe) == 8 && rdi_magic_maybe == RDI_MAGIC_CONSTANT) { t->og_is_rdi = 1; } - os_file_close(file); + file_close(file); } - U64 og_size = t->og_size; + U64 og_size = t->og_size; B32 og_is_rdi = t->og_is_rdi; - B32 og_is_good = (og_size > 0); - + B32 og_is_good = (og_size > 0); + //- rjf: compute key's RDI path - String8 rdi_path = {0}; + String8 rdi_path = {0}; + if(og_path.size != 0) { if(og_is_rdi) { @@ -708,13 +751,49 @@ di_async_tick(void) rdi_path = str8f(scratch.arena, "%S.rdi", str8_chop_last_dot(og_path)); } } - + + //- rjf: determine if RDI folder is writable; if not, need to write into the writable cache path + if(!t->og_folder_analyzed) + { + t->og_folder_analyzed = 1; + String8 rdi_folder = str8_chop_last_slash(rdi_path); + for(U64 slash_pos = 0; slash_pos <= rdi_folder.size; slash_pos = str8_find_needle(rdi_folder, slash_pos+1, s("/"), StringMatchFlag_SlashInsensitive)) + { + String8 ancestor_folder = str8_substr(rdi_folder, r1u64(0, slash_pos)); + if(ancestor_folder.size != 0) + { + make_directory(ancestor_folder); + } + if(slash_pos == rdi_folder.size) + { + break; + } + } + String8 dummy_file_path = str8f(scratch.arena, "%S/writability_test", rdi_folder); + File file = file_open(AccessFlag_Write, dummy_file_path); + t->og_folder_is_writable = !file_match(file, file_zero()); + file_close(file); + delete_file_at_path(dummy_file_path); + } + + //- rjf: if RDI path is not writable -> adjust into writable cache directory + if(!t->og_folder_is_writable) + { + String8 cache_folder = get_process_info()->user_program_cache_data_path; + String8 raddbg_folder = str8f(scratch.arena, "%S/raddbg", cache_folder); + String8 rdis_folder = str8f(scratch.arena, "%S/rdis", raddbg_folder); + make_directory(cache_folder); + make_directory(raddbg_folder); + make_directory(rdis_folder); + rdi_path = str8f(scratch.arena, "%S/%S.rdi", rdis_folder, str8_chop_last_dot(str8_skip_last_slash(og_path))); + } + //- rjf: determine if RDI is stale - if(!t->rdi_analyzed) + if(!t->rdi_analyzed && !og_is_downloading) { t->rdi_analyzed = 1; - OS_Handle file = os_file_open(OS_AccessFlag_ShareRead|OS_AccessFlag_Read, rdi_path); - FileProperties props = os_properties_from_file(file); + File file = file_open(AccessFlag_ShareRead|AccessFlag_Read, rdi_path); + FileProperties props = properties_from_file(file); if(props.modified < og_min_timestamp) { t->rdi_is_stale = 1; @@ -723,24 +802,24 @@ di_async_tick(void) { t->rdi_is_stale = 1; RDI_Header header = {0}; - if(os_file_read_struct(file, 0, &header) == sizeof(header)) + if(file_read_struct(file, 0, &header) == sizeof(header)) { t->rdi_is_stale = (header.encoding_version != RDI_ENCODING_VERSION); } } - os_file_close(file); + file_close(file); } B32 rdi_is_stale = t->rdi_is_stale; - + //- rjf: calculate thread counts for conversion processes - if(!og_is_rdi && rdi_is_stale && t->thread_count == 0) + if(!og_is_rdi && rdi_is_stale && t->thread_count == 0 && !og_is_downloading) { U64 thread_count = 1; - U64 max_thread_count = os_get_system_info()->logical_processor_count/2; - if(priority_idx > 0) - { - max_thread_count = Max(1, max_thread_count/2); - } + U64 max_thread_count = get_system_info()->logical_processor_count/2; + if(priority_idx > 0) + { + max_thread_count = Max(1, max_thread_count/2); + } { if(0){} else if(og_size <= MB(4)) {thread_count = 1;} @@ -752,48 +831,48 @@ di_async_tick(void) thread_count = Max(1, thread_count); t->thread_count = thread_count; } - + //- rjf: determine if there are threads available B32 threads_available = 0; { - U64 max_threads = os_get_system_info()->logical_processor_count/2; + U64 max_threads = get_system_info()->logical_processor_count/2; U64 current_threads = di_shared->conversion_thread_count; U64 needed_threads = (current_threads + t->thread_count); threads_available = (max_threads >= needed_threads); } - - //- rjf: if this conversion will overwrite an RDI we already have in cache, - // then we need to evict the old one from the cache. - B32 ready_to_launch_conversion = (threads_available && !og_is_rdi && rdi_is_stale && t->thread_count != 0 && t->status != DI_LoadTaskStatus_Active); - if(ready_to_launch_conversion) - { + + //- rjf: if this conversion will overwrite an RDI we already have in cache, + // then we need to evict the old one from the cache. + B32 ready_to_launch_conversion = (!og_is_downloading && threads_available && !og_is_rdi && rdi_is_stale && t->thread_count != 0 && t->status != DI_LoadTaskStatus_Active); + if(ready_to_launch_conversion) + { U64 path2key_hash = u64_hash_from_str8(og_path); U64 path2key_slot_idx = path2key_hash%di_shared->path2key_slots_count; DI_KeySlot *path2key_slot = &di_shared->path2key_slots[path2key_slot_idx]; - Stripe *path2key_stripe = stripe_from_slot_idx(&di_shared->path2key_stripes, path2key_slot_idx); - RWMutexScope(path2key_stripe->rw_mutex, 0) - { - // NOTE(rjf): we need to iterate from last -> first, since we want to evict the - // most recent key. - for(DI_KeyPathNode *n = path2key_slot->last; n != 0; n = n->prev) - { - if(str8_match(n->path, og_path, 0) && !di_key_match(key, n->key)) - { - di_close(n->key, 1); - } - } - } - } - + Stripe *path2key_stripe = stripe_from_slot_idx(&di_shared->path2key_stripes, path2key_slot_idx); + RWMutexScope(path2key_stripe->rw_mutex, 0) + { + // NOTE(rjf): we need to iterate from last -> first, since we want to evict the + // most recent key. + for(DI_KeyPathNode *n = path2key_slot->last; n != 0; n = n->prev) + { + if(str8_match(n->path, og_path, 0) && !di_key_match(key, n->key)) + { + di_close(n->key, 1); + } + } + } + } + //- rjf: launch conversion processes if(og_is_good && ready_to_launch_conversion) { B32 should_compress = 0; - OS_ProcessLaunchParams params = {0}; - params.path = os_get_process_info()->binary_path; + ProcessLaunchParams params = {0}; + params.path = get_process_info()->binary_path; params.inherit_env = 1; params.consoleless = 1; - str8_list_pushf(scratch.arena, ¶ms.cmd_line, "raddbg"); + str8_list_push(scratch.arena, ¶ms.cmd_line, get_process_info()->binary_file_path); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--bin"); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--quiet"); if(should_compress) @@ -804,15 +883,15 @@ di_async_tick(void) str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--rdi"); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--out:%S", rdi_path); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--thread_count:%I64u", t->thread_count); - str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--signal_pid:%I64u", (U64)os_get_process_info()->pid); + str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--signal_pid:%I64u", (U64)get_process_info()->pid); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "--signal_code:%I64u", (U64)t); str8_list_pushf(scratch.arena, ¶ms.cmd_line, "%S", og_path); ProfMsg("launch creation for %.*s", str8_varg(rdi_path)); - t->process = os_process_launch(¶ms); + t->process = process_launch(¶ms); t->status = DI_LoadTaskStatus_Active; di_shared->conversion_process_count += 1; di_shared->conversion_thread_count += t->thread_count; - + // rjf: send event MutexScope(di_shared->event_mutex) { @@ -823,7 +902,7 @@ di_async_tick(void) n->v.string = str8_copy(di_shared->event_arena, rdi_path); } } - + //- rjf: if active & process has completed, mark as done { U64 exit_code = 0; @@ -840,7 +919,7 @@ di_async_tick(void) } if(!task_is_done) { - task_is_done = os_process_join(t->process, 0, 0); + task_is_done = process_join(t->process, 0, 0); } if(task_is_done) { @@ -849,21 +928,21 @@ di_async_tick(void) di_shared->conversion_thread_count -= t->thread_count; } } - } - - //- rjf: ready to launch, but bad O.G. file -> just immediately mark as done - if(!og_is_good && ready_to_launch_conversion) - { - t->status = DI_LoadTaskStatus_Done; - } - - //- rjf: if the RDI for this task is not stale, then we're already done - mark this - // task as done & prepped for storing into the cache - if(!rdi_is_stale) + } + + //- rjf: ready to launch, but bad O.G. file -> just immediately mark as done + if(!og_is_good && ready_to_launch_conversion) { t->status = DI_LoadTaskStatus_Done; } - + + //- rjf: if the RDI for this task is not stale, then we're already done - mark this + // task as done & prepped for storing into the cache + if(!rdi_is_stale && !og_is_downloading) + { + t->status = DI_LoadTaskStatus_Done; + } + //- rjf: if the RDI for this task *is* stale, but the O.G. path is actually RDI, // then we can't actually re-convert to produce a non-stale RDI. in this case, just // mark as done. @@ -871,11 +950,11 @@ di_async_tick(void) { t->status = DI_LoadTaskStatus_Done; } - + //- rjf: if task is done, retire & recycle task; gather path to load if(t->status == DI_LoadTaskStatus_Done) { - if(!os_handle_match(t->process, os_handle_zero())) MutexScope(di_shared->event_mutex) + if(!process_match(t->process, process_zero())) MutexScope(di_shared->event_mutex) { DI_EventNode *n = push_array(di_shared->event_arena, DI_EventNode, 1); SLLQueuePush(di_shared->events.first, di_shared->events.last, n); @@ -891,8 +970,8 @@ di_async_tick(void) SLLQueuePush(first_parse_task, last_parse_task, n); parse_tasks_count += 1; } - } - } + } + } //////////////////////////// //- rjf: join all parse tasks @@ -937,15 +1016,15 @@ di_async_tick(void) ProfBegin("parse %.*s", str8_varg(rdi_path)); //- rjf: open file - OS_Handle file = {0}; - OS_Handle file_map = {0}; + File file = {0}; + FileMap file_map = {0}; FileProperties file_props = {0}; void *file_base = 0; { - file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite, rdi_path); - file_map = os_file_map_open(OS_AccessFlag_Read, file); - file_props = os_properties_from_file(file); - file_base = os_file_map_view_open(file_map, OS_AccessFlag_Read, r1u64(0, file_props.size)); + file = file_open(AccessFlag_Read|AccessFlag_ShareRead|AccessFlag_ShareWrite, rdi_path); + file_map = file_map_open(AccessFlag_Read, file); + file_props = properties_from_file(file); + file_base = file_map_view_open(file_map, AccessFlag_Read, r1u64(0, file_props.size)); } //- rjf: do initial parse of rdi @@ -997,12 +1076,12 @@ di_async_tick(void) node->arena = rdi_parsed_arena; MemoryCopyStruct(&node->rdi, &rdi_parsed); node->completion_count += 1; - node->working_count -= 1; - if(node->rdi.raw_data_size != 0) - { - ins_atomic_u64_inc_eval(&di_shared->load_gen); - } - ins_atomic_u64_inc_eval(&di_shared->load_count); + node->working_count -= 1; + if(node->rdi.raw_data_size != 0) + { + ins_atomic_u64_inc_eval(&di_shared->load_gen); + } + ins_atomic_u64_inc_eval(&di_shared->load_count); } else { @@ -1010,9 +1089,9 @@ di_async_tick(void) { arena_release(rdi_parsed_arena); } - os_file_map_view_close(file_map, file_base, r1u64(0, file_props.size)); - os_file_map_close(file_map); - os_file_close(file); + file_map_view_close(file_map, file_base, r1u64(0, file_props.size)); + file_map_close(file_map); + file_close(file); } } cond_var_broadcast(stripe->cv); @@ -1122,16 +1201,16 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * } lane_sync(); - //- rjf: do wide search on all lanes - Arena *arena = arena_alloc(); - Arena **arenas = 0; - U64 arenas_count = lane_count(); - if(lane_idx() == 0) - { - arenas = push_array(arena, Arena *, arenas_count); - } - lane_sync_u64(&arenas, 0); - arenas[lane_idx()] = arena; + //- rjf: do wide search on all lanes + Arena *arena = arena_alloc(); + Arena **arenas = 0; + U64 arenas_count = lane_count(); + if(lane_idx() == 0) + { + arenas = push_array(arena, Arena *, arenas_count); + } + lane_sync_u64(&arenas, 0); + arenas[lane_idx()] = arena; DI_SearchItemChunkList *lanes_items = 0; ProfScope("do wide search on all lanes") { @@ -1152,40 +1231,14 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * void *table_base = rdi_section_raw_table_from_kind(rdi, section_kind, &element_count); U64 element_size = rdi_section_element_size_table[section_kind]; - // rjf: determine name string index offset, depending on table kind - U64 element_name_idx_off = 0; - switch(section_kind) - { - default:{}break; - case RDI_SectionKind_Procedures: - { - element_name_idx_off = OffsetOf(RDI_Procedure, name_string_idx); - }break; - case RDI_SectionKind_GlobalVariables: - { - element_name_idx_off = OffsetOf(RDI_GlobalVariable, name_string_idx); - }break; - case RDI_SectionKind_ThreadVariables: - { - element_name_idx_off = OffsetOf(RDI_ThreadVariable, name_string_idx); - }break; - case RDI_SectionKind_UDTs: - { - // NOTE(rjf): name must be determined from self_type_idx - }break; - case RDI_SectionKind_SourceFiles: - { - // NOTE(rjf): name must be determined from file path node chain - }break; - } - + // rjf: do search Rng1U64 range = lane_range(element_count); for EachInRange(idx, range) { - //- rjf: every so often, check if we need to cancel, and cancel - if(idx%10000 == 0 && !!ins_atomic_u32_eval(cancel_signal)) + //- rjf: every so often, check if we need to cancel, and cancel + if(idx%10000 == 0 && !!ins_atomic_u32_eval(cancel_signal)) { - break; + break; } //- rjf: get element, map to string; if empty, continue to next element @@ -1197,8 +1250,7 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * { RDI_UDT *udt = (RDI_UDT *)element; RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, udt->self_type_idx); - name.str = rdi_string_from_idx(rdi, type_node->user_defined.name_string_idx, &name.size); - name = str8_copy(arena, name); + name = fully_qualified_from_rdi_string_and_container(arena, rdi, type_node->user_defined.name_string_idx, udt->container_idx, udt->container_flags); }break; case RDI_SectionKind_SourceFiles: { @@ -1220,10 +1272,8 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * }break; default: { - U32 name_idx = *(U32 *)((U8 *)element + element_name_idx_off); - U64 name_size = 0; - U8 *name_base = rdi_string_from_idx(rdi, name_idx, &name_size); - name = str8(name_base, name_size); + RDI_Symbol *symbol = (RDI_Symbol *)element; + name = fully_qualified_str8_from_rdi_symbol(arena, rdi, symbol); }break; } if(name.size == 0) { continue; } @@ -1285,15 +1335,15 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * } } lane_sync(); - - //- rjf: decide if we cancelled - B32 cancelled = 0; - if(lane_idx() == 0 && !!ins_atomic_u32_eval(cancel_signal)) - { - cancelled = 1; - } - lane_sync_u64(&cancelled, 0); - + + //- rjf: decide if we cancelled + B32 cancelled = 0; + if(lane_idx() == 0 && !!ins_atomic_u32_eval(cancel_signal)) + { + cancelled = 1; + } + lane_sync_u64(&cancelled, 0); + //- rjf: produce sort records typedef struct SortRecord SortRecord; struct SortRecord @@ -1450,20 +1500,20 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * } lane_sync(); - //- rjf: bundle as artifact - if(!cancelled) - { - artifact.u64[0] = (U64)arenas; - artifact.u64[1] = arenas_count; + //- rjf: bundle as artifact + if(!cancelled) + { + artifact.u64[0] = (U64)arenas; + artifact.u64[1] = arenas_count; artifact.u64[2] = (U64)items.v; - artifact.u64[3] = items.count; - } - - //- rjf: release results on cancel - else - { - arena_release(arena); - } + artifact.u64[3] = items.count; + } + + //- rjf: release results on cancel + else + { + arena_release(arena); + } } scratch_end(scratch); access_close(access); @@ -1473,20 +1523,20 @@ di_search_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 * internal void di_search_artifact_destroy(AC_Artifact artifact) -{ - Temp scratch = scratch_begin(0, 0); - Arena **arenas = (Arena **)artifact.u64[0]; - U64 arenas_count = artifact.u64[1]; - Arena **arenas_copy = push_array(scratch.arena, Arena *, arenas_count); - MemoryCopy(arenas_copy, arenas, sizeof(Arena *) * arenas_count); - for EachIndex(idx, arenas_count) - { - if(arenas_copy[idx]) - { - arena_release(arenas_copy[idx]); - } - } - scratch_end(scratch); +{ + Temp scratch = scratch_begin(0, 0); + Arena **arenas = (Arena **)artifact.u64[0]; + U64 arenas_count = artifact.u64[1]; + Arena **arenas_copy = push_array(scratch.arena, Arena *, arenas_count); + MemoryCopy(arenas_copy, arenas, sizeof(Arena *) * arenas_count); + for EachIndex(idx, arenas_count) + { + if(arenas_copy[idx]) + { + arena_release(arenas_copy[idx]); + } + } + scratch_end(scratch); } internal DI_SearchItemArray @@ -1525,33 +1575,108 @@ di_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *g Temp scratch = scratch_begin(0, 0); //- rjf: unpack key - U64 index = 0; - String8 name = {0}; - DI_Key preferred_key = {0}; + U32 index = 0; + U32 unit_idx = 0; + B32 allow_other_dbgis = 0; + String8 name = {0}; + DI_Key preferred_key = {0}; { U64 key_read_off = 0; - key_read_off += str8_deserial_read_struct(key, key_read_off, &index); - key_read_off += str8_deserial_read_struct(key, key_read_off, &preferred_key); - key_read_off += str8_deserial_read_struct(key, key_read_off, &name.size); + key_read_off += str8_deserial_read_struct(key, key_read_off, &index); + key_read_off += str8_deserial_read_struct(key, key_read_off, &unit_idx); + key_read_off += str8_deserial_read_struct(key, key_read_off, &allow_other_dbgis); + key_read_off += str8_deserial_read_struct(key, key_read_off, &preferred_key); + key_read_off += str8_deserial_read_struct(key, key_read_off, &name.size); name.str = push_array_no_zero(scratch.arena, U8, name.size); key_read_off += str8_deserial_read(key, key_read_off, name.str, name.size, 1); } + //- rjf: find split point between container part of name & "leaf" + U64 container_part_opl = 0; + U64 leaf_part_first = 0; + for(U64 off = 0; off+1 < name.size; off += 1) + { + if(name.str[off] == '.') + { + container_part_opl = off; + leaf_part_first = off+1; + } + else if(name.str[off] == ':' && name.str[off+1] == ':') + { + container_part_opl = off; + leaf_part_first = off+2; + } + } + + //- rjf: unpack container/leaf + String8 container_part_of_name = str8_prefix(name, container_part_opl); + String8 leaf_part_of_name = str8_skip(name, leaf_part_first); + + //- rjf: produce the fully qualified name, sanitize the container part (convert all `.`s to `::`s) + String8 fully_qualified_name = name; + if(container_part_of_name.size != 0) + { + // rjf: gather parts of container + String8List parts = {0}; + for(U64 off = 0, next_off = 0; off < container_part_of_name.size; off = next_off) + { + // rjf: find the next separator + U64 next_separator_pos = container_part_of_name.size; + U64 next_separator_size = 0; + { + S64 template_nest_depth = 0; + for(U64 off2 = off; off2+1 < container_part_of_name.size; off2 += 1) + { + if(template_nest_depth == 0 && container_part_of_name.str[off2] == '.') + { + next_separator_pos = off2; + next_separator_size = 1; + break; + } + else if(template_nest_depth == 0 && container_part_of_name.str[off2] == ':' && container_part_of_name.str[off2+1] == ':') + { + next_separator_pos = off2; + next_separator_size = 2; + break; + } + else if(container_part_of_name.str[off2] == '<') + { + template_nest_depth += 1; + } + else if(container_part_of_name.str[off2] == '>') + { + template_nest_depth -= 1; + template_nest_depth = ClampBot(0, template_nest_depth); + } + } + } + + // rjf: gather portions of container + str8_list_push(scratch.arena, &parts, str8_substr(container_part_of_name, r1u64(off, next_separator_pos))); + next_off = next_separator_pos + next_separator_size; + } + + // rjf: add leaf & join + str8_list_push(scratch.arena, &parts, leaf_part_of_name); + StringJoin join = {.sep = str8_lit("::")}; + fully_qualified_name = str8_list_join(scratch.arena, &parts, &join); + } + //- rjf: get all loaded keys DI_KeyArray dbgi_keys = di_push_all_loaded_keys(scratch.arena); - - //- rjf: take cancellation signal - B32 cancelled = 0; - if(lane_idx() == 0) - { - cancelled = ins_atomic_u32_eval(cancel_signal); - } - lane_sync_u64(&cancelled, 0); - + + //- rjf: take cancellation signal + B32 cancelled = 0; + if(lane_idx() == 0) + { + cancelled = ins_atomic_u32_eval(cancel_signal); + } + lane_sync_u64(&cancelled, 0); + //- rjf: wide search across all debug infos - DI_Match *lane_matches = 0; - if(!cancelled) - { + DI_Match *lane_matches = 0; + if(!cancelled) + { if(lane_idx() == 0) { lane_matches = push_array(scratch.arena, DI_Match, lane_count()); @@ -1577,49 +1702,145 @@ di_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *g Rng1U64 range = lane_range(dbgi_keys.count); for EachInRange(dbgi_idx, range) { + DI_Key dbgi_key = dbgi_keys.v[dbgi_idx]; + if(!allow_other_dbgis && !di_key_match(preferred_key, dbgi_key)) + { + continue; + } Access *access = access_open(); { - DI_Key dbgi_key = dbgi_keys.v[dbgi_idx]; RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); for EachElement(name_map_kind_idx, name_map_kinds) { + // rjf: unpack name map RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, name_map_kinds[name_map_kind_idx]); RDI_ParsedNameMap parsed_name_map = {0}; rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *map_node = rdi_name_map_lookup(rdi, &parsed_name_map, name.str, name.size); - U32 num = 0; - U32 *run = rdi_matches_from_map_node(rdi, map_node, &num); - if(num != 0) + + // rjf: find matches for (possibly leaf) name + RDI_NameMapNode *map_node = rdi_name_map_lookup(rdi, &parsed_name_map, leaf_part_of_name.str, leaf_part_of_name.size); + U32 matches_count = 0; + U32 *matches = rdi_matches_from_map_node(rdi, map_node, &matches_count); + + // rjf: do we have a container? -> filter matches according to container string also + U32 *filtered_matches = matches; + U32 filtered_matches_count = matches_count; + if(container_part_of_name.size != 0) { + filtered_matches = push_array(scratch.arena, U32, matches_count); + filtered_matches_count = 0; + for EachIndex(match_idx, matches_count) + { + Temp scratch = scratch_begin(0, 0); + String8 match_fully_qualified_name = {0}; + switch(name_map_section_kinds[name_map_kind_idx]) + { + default:{}break; + case RDI_SectionKind_GlobalVariables: + case RDI_SectionKind_ThreadVariables: + case RDI_SectionKind_Constants: + case RDI_SectionKind_Procedures: + { + RDI_Symbol *symbol = (RDI_Symbol *)rdi_section_raw_element_from_kind_idx(rdi, name_map_section_kinds[name_map_kind_idx], matches[match_idx]); + String8 match_fully_qualified_name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, symbol); + if(str8_match(match_fully_qualified_name, fully_qualified_name, 0)) + { + filtered_matches[filtered_matches_count] = matches[match_idx]; + filtered_matches_count += 1; + } + }break; + case RDI_SectionKind_TypeNodes: + { + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, match_idx); + if(RDI_TypeKind_FirstUserDefined <= type_node->kind && type_node->kind <= RDI_TypeKind_LastUserDefined) + { + String8 match_fully_qualified_name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, type_node); + if(str8_match(match_fully_qualified_name, fully_qualified_name, 0)) + { + filtered_matches[filtered_matches_count] = matches[match_idx]; + filtered_matches_count += 1; + } + } + }break; + } + scratch_end(scratch); + } + } + + // rjf: do we have a specific unit queried? -> filter matches according to containing unit + if(unit_idx != 0) + { + U32 *unit_filtered_matches = push_array(scratch.arena, U32, filtered_matches_count); + U32 unit_filtered_matches_count = 0; + for EachIndex(match_idx, filtered_matches_count) + { + U32 match = filtered_matches[match_idx]; + B32 hits_filter = 1; + switch(name_map_section_kinds[name_map_kind_idx]) + { + default:{}break; + case RDI_SectionKind_GlobalVariables: + { + hits_filter = (unit->global_variables_first_idx <= match && match < unit->global_variables_first_idx+unit->global_variables_count); + }break; + case RDI_SectionKind_ThreadVariables: + { + hits_filter = (unit->thread_variables_first_idx <= match && match < unit->thread_variables_first_idx+unit->thread_variables_count); + }break; + case RDI_SectionKind_Constants: + { + hits_filter = (unit->constants_first_idx <= match && match < unit->constants_first_idx+unit->constants_count); + }break; + case RDI_SectionKind_Procedures: + { + hits_filter = (unit->procedures_first_idx <= match && match < unit->procedures_first_idx+unit->procedures_count); + }break; + } + if(hits_filter) + { + unit_filtered_matches[unit_filtered_matches_count] = match; + unit_filtered_matches_count += 1; + } + } + filtered_matches = unit_filtered_matches; + filtered_matches_count = unit_filtered_matches_count; + } + + // rjf: given matches, pick selected & return as result + if(filtered_matches_count != 0) + { + U64 selected_match_idx = (filtered_matches_count-1) - Min(index, filtered_matches_count-1); lane_matches[lane_idx()].key = dbgi_key; lane_matches[lane_idx()].section_kind = name_map_section_kinds[name_map_kind_idx]; - lane_matches[lane_idx()].idx = run[num-1]; + lane_matches[lane_idx()].idx = filtered_matches[selected_match_idx]; + lane_matches[lane_idx()].count = filtered_matches_count; } } } access_close(access); } - } - } - lane_sync(); - + } + } + lane_sync(); + //- rjf: pick match - DI_Match match = {0}; - if(lane_matches != 0) - { + DI_Match match = {0}; + if(lane_matches != 0) + { for EachIndex(idx, lane_count()) { if(lane_matches[idx].idx != 0) { - match = lane_matches[idx]; - if(di_key_match(di_key_zero(), preferred_key) || di_key_match(match.key, preferred_key)) - { - break; - } + match = lane_matches[idx]; + if(di_key_match(di_key_zero(), preferred_key) || di_key_match(match.key, preferred_key)) + { + break; + } } } - } - + } + //- rjf: package as artifact AC_Artifact artifact = {0}; { @@ -1627,7 +1848,7 @@ di_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *g artifact.u64[0] = match.key.u64[0]; artifact.u64[1] = match.key.u64[1]; artifact.u64[2] = match.section_kind; - artifact.u64[3] = match.idx; + artifact.u64[3] = ((U64)(match.idx & 0xffffffffull) << 32) | ((U64)(match.count & 0xffffffffull) << 0); } lane_sync(); @@ -1637,25 +1858,28 @@ di_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *g } internal DI_Match -di_match_from_string(String8 string, U64 index, DI_Key preferred_dbgi_key, U64 endt_us) +di_match_from_string(String8 string, U32 match_index, U32 unit_idx, B32 allow_other_dbgis, DI_Key preferred_dbgi_key, U64 endt_us) { DI_Match result = {0}; Access *access = access_open(); Temp scratch = scratch_begin(0, 0); { String8List key_parts = {0}; - str8_list_push(scratch.arena, &key_parts, str8_struct(&index)); - str8_list_push(scratch.arena, &key_parts, str8_struct(&preferred_dbgi_key)); - str8_list_push(scratch.arena, &key_parts, str8_struct(&string.size)); + str8_list_push(scratch.arena, &key_parts, str8_struct(&match_index)); + str8_list_push(scratch.arena, &key_parts, str8_struct(&unit_idx)); + str8_list_push(scratch.arena, &key_parts, str8_struct(&allow_other_dbgis)); + str8_list_push(scratch.arena, &key_parts, str8_struct(&preferred_dbgi_key)); + str8_list_push(scratch.arena, &key_parts, str8_struct(&string.size)); str8_list_push(scratch.arena, &key_parts, string); - String8 key = str8_list_join(scratch.arena, &key_parts, 0); - U64 dbgi_count = di_load_count(); - B32 wide = (dbgi_count > 256); + String8 key = str8_list_join(scratch.arena, &key_parts, 0); + U64 dbgi_count = di_load_count(); + B32 wide = (dbgi_count > 256 && allow_other_dbgis); AC_Artifact artifact = ac_artifact_from_key(access, key, di_match_artifact_create, 0, endt_us, .flags = wide ? AC_Flag_Wide : 0, .gen = di_load_gen(), .evict_threshold_us = wide ? 20000000 : 10000000); result.key.u64[0] = artifact.u64[0]; result.key.u64[1] = artifact.u64[1]; result.section_kind = artifact.u64[2]; - result.idx = artifact.u64[3]; + result.idx = (artifact.u64[3] & 0xffffffff00000000ull) >> 32; + result.count = (artifact.u64[3] & 0x00000000ffffffffull) >> 0; } scratch_end(scratch); access_close(access); diff --git a/src/dbg_info/dbg_info.h b/src/dbg_info/dbg_info.h index f2ff52f5..85fb9a03 100644 --- a/src/dbg_info/dbg_info.h +++ b/src/dbg_info/dbg_info.h @@ -69,8 +69,8 @@ struct DI_Node DI_Key key; // rjf: value - OS_Handle file; - OS_Handle file_map; + File file; + FileMap file_map; void *file_base; FileProperties file_props; Arena *arena; @@ -139,13 +139,15 @@ struct DI_LoadTask B32 og_analyzed; B32 og_is_rdi; + B32 og_folder_analyzed; + B32 og_folder_is_writable; U64 og_size; B32 rdi_analyzed; B32 rdi_is_stale; U64 thread_count; - OS_Handle process; + Process process; }; typedef struct DI_LoadCompletion DI_LoadCompletion; @@ -202,6 +204,7 @@ struct DI_Match DI_Key key; RDI_SectionKind section_kind; U32 idx; + U32 count; }; //////////////////////////////// @@ -248,6 +251,9 @@ struct DI_Shared U64 load_gen; U64 load_count; + // rjf: settings + B32 auto_downloads; + // rjf: key -> path cache U64 key2path_slots_count; DI_KeySlot *key2path_slots; @@ -280,7 +286,7 @@ struct DI_Shared String8 conversion_completion_shared_memory_name; Semaphore conversion_completion_lock_semaphore; Semaphore conversion_completion_signal_semaphore; - OS_Handle conversion_completion_shared_memory; + SharedMemory conversion_completion_shared_memory; U64 *conversion_completion_shared_memory_base; Thread conversion_completion_signal_receiver_thread; @@ -314,6 +320,11 @@ internal DI_KeyArray di_key_array_from_list(Arena *arena, DI_KeyList *list); internal void di_init(CmdLine *cmdline); +//////////////////////////////// +//~ rjf: Settings Submission + +internal void di_set_auto_downloads(B32 auto_downloads); + //////////////////////////////// //~ rjf: Path * Timestamp Cache Submission & Lookup @@ -360,6 +371,6 @@ internal DI_SearchItemArray di_search_item_array_from_target_query(Access *acces //~ rjf: Match Artifact Cache Hooks / Lookups internal AC_Artifact di_match_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out); -internal DI_Match di_match_from_string(String8 string, U64 index, DI_Key preferred_dbgi_key, U64 endt_us); +internal DI_Match di_match_from_string(String8 string, U32 match_index, U32 unit_idx, B32 allow_other_dbgis, DI_Key preferred_dbgi_key, U64 endt_us); #endif // DBG_INFO_H diff --git a/src/demon/demon_core.c b/src/demon/demon_core.c index 75cca59e..a136ad07 100644 --- a/src/demon/demon_core.c +++ b/src/demon/demon_core.c @@ -119,64 +119,6 @@ dmn_event_list_push(Arena *arena, DMN_EventList *list) SLLQueuePush(list->first, list->last, n); list->count += 1; DMN_Event *result = &n->v; - return result; -} - -//////////////////////////////// -//~ rjf: Thread Reading Helper Functions (Helpers, Implemented Once) - -internal U64 -dmn_rip_from_thread(DMN_Handle thread) -{ - U64 result = 0; - Temp scratch = scratch_begin(0, 0); - { - Arch arch = dmn_arch_from_thread(thread); - U64 reg_block_size = regs_block_size_from_arch(arch); - void *reg_block = push_array(scratch.arena, U8, reg_block_size); - dmn_thread_read_reg_block(thread, reg_block); - result = regs_rip_from_arch_block(arch, reg_block); - } - scratch_end(scratch); - return result; -} - -internal U64 -dmn_rsp_from_thread(DMN_Handle thread) -{ - U64 result = 0; - Temp scratch = scratch_begin(0, 0); - { - Arch arch = dmn_arch_from_thread(thread); - U64 reg_block_size = regs_block_size_from_arch(arch); - void *reg_block = push_array(scratch.arena, U8, reg_block_size); - dmn_thread_read_reg_block(thread, reg_block); - result = regs_rsp_from_arch_block(arch, reg_block); - } - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Process Reading Helper Functions (Helpers, Implemented Once) - -internal String8 -dmn_process_read_cstring(Arena *arena, DMN_Handle process, U64 addr) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List block_list = {0}; - for(U64 cursor = addr, stride = 256; ; cursor += stride) - { - U8 *raw_block = push_array_no_zero(scratch.arena, U8, stride); - U64 read_size = dmn_process_read(process, r1u64(cursor, cursor + stride), raw_block); - String8 block = str8_cstring_capped(raw_block, raw_block + read_size); - str8_list_push(scratch.arena, &block_list, block); - if(read_size != stride || (block.size+1 <= read_size && block.str[block.size] == 0)) - { - break; - } - } - String8 result = str8_list_join(arena, &block_list, 0); - scratch_end(scratch); + result->module_info = &dmn_module_info_nil; return result; } diff --git a/src/demon/demon_core.h b/src/demon/demon_core.h index b46f316b..eba11daf 100644 --- a/src/demon/demon_core.h +++ b/src/demon/demon_core.h @@ -18,6 +18,17 @@ struct DMN_CtrlCtx U64 u64[1]; }; +//////////////////////////////// +//~ Dynamic Linker Types + +typedef U32 DMN_TlsModel; +enum +{ + DMN_TlsModel_Null, + DMN_TlsModel_WinodwsNt, + DMN_TlsModel_Gnu +}; + //////////////////////////////// //~ rjf: Handle Types @@ -58,28 +69,74 @@ struct DMN_HandleArray //////////////////////////////// //~ rjf: Event Types +typedef struct DMN_ModuleInfo DMN_ModuleInfo; +struct DMN_ModuleInfo +{ + // rjf: image architecture + Arch arch; + + // rjf: image virtual size + U64 vsize; + + // rjf: entry point + U64 entry_point_voff; + + // rjf: module path + String8 module_path; + + // rjf: debug info key + String8 debug_info_path; + Guid debug_info_guid; + U64 debug_info_timestamp; + U64 debug_info_age; + + // rjf: thread-local storage info + U64 tls_index; + U64 tls_offset; + + // rjf: unwinding info + Rng1U64 pe_intel_pdatas_vaddr_range; + Rng1U64 eh_frame_header_vaddr_range; + + // rjf: special raddbg data + Rng1U64 raddbg_info_voff_range; + U64 raddbg_is_attached_marker_voff; +}; + typedef struct DMN_Event DMN_Event; struct DMN_Event { + // rjf: categories DMN_EventKind kind; DMN_ErrorKind error_kind; DMN_MemoryEventKind memory_kind; DMN_ExceptionKind exception_kind; + + // rjf: entities DMN_Handle process; DMN_Handle thread; DMN_Handle module; + + // rjf: general event properties Arch arch; U64 address; U64 size; String8 string; - U32 code; // code gives pid & tid on CreateProcess and CreateThread (respectfully) + U32 code; // code -> exception code (signo on Linux), pid/tid U32 flags; // DMN_TrapFlags, if `DMN_EventKind_SetBreakpoint` - S32 signo; - S32 sigcode; U64 instruction_pointer; U64 stack_pointer; U64 user_data; B32 exception_repeated; + + // rjf: process info + DMN_TlsModel tls_model; + + // rjf: module info + DMN_ModuleInfo *module_info; + + // rjf: thread info + U64 tls_root_vaddr; }; typedef struct DMN_EventNode DMN_EventNode; @@ -141,12 +198,12 @@ struct DMN_RunCtrls { DMN_Handle priority_thread; DMN_Handle single_step_thread; - B8 ignore_previous_exception; - B8 run_entities_are_unfrozen; - B8 run_entities_are_processes; DMN_Handle *run_entities; U64 run_entity_count; DMN_TrapChunkList traps; + B8 ignore_previous_exception; + B8 run_entities_are_unfrozen; + B8 run_entities_are_processes; }; //////////////////////////////// @@ -165,6 +222,11 @@ struct DMN_ProcessInfo U32 pid; }; +//////////////////////////////// +//~ rjf: Globals + +read_only global DMN_ModuleInfo dmn_module_info_nil = {0}; + //////////////////////////////// //~ rjf: Basic Type Functions (Helpers, Implemented Once) @@ -185,16 +247,10 @@ internal DMN_HandleArray dmn_handle_array_copy(Arena *arena, DMN_HandleArray *sr //- rjf: event list building internal DMN_Event *dmn_event_list_push(Arena *arena, DMN_EventList *list); -//////////////////////////////// -//~ rjf: Thread Reading Helper Functions (Helpers, Implemented Once) - -internal U64 dmn_rip_from_thread(DMN_Handle thread); -internal U64 dmn_rsp_from_thread(DMN_Handle thread); - //////////////////////////////// //~ rjf: Process Reading Helper Functions (Helpers, Implemented Once) -internal String8 dmn_process_read_cstring(Arena *arena, DMN_Handle process, U64 addr); +internal String8 dmn_data_from_process_vaddr_range(Arena *arena, DMN_Handle process, Rng1U64 vrange); //////////////////////////////// //~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) @@ -208,7 +264,7 @@ internal DMN_CtrlCtx *dmn_ctrl_begin(void); internal void dmn_ctrl_exclusive_access_begin(void); internal void dmn_ctrl_exclusive_access_end(void); #define DMN_CtrlExclusiveAccessScope DeferLoop(dmn_ctrl_exclusive_access_begin(), dmn_ctrl_exclusive_access_end()) -internal U32 dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params); +internal U32 dmn_ctrl_launch(DMN_CtrlCtx *ctx, ProcessLaunchParams *params); internal B32 dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid); internal B32 dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process, U32 exit_code); internal B32 dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process); @@ -232,18 +288,14 @@ internal U64 dmn_process_memory_reserve(DMN_Handle process, U64 vaddr, U64 size) internal void dmn_process_memory_commit(DMN_Handle process, U64 vaddr, U64 size); internal void dmn_process_memory_decommit(DMN_Handle process, U64 vaddr, U64 size); internal void dmn_process_memory_release(DMN_Handle process, U64 vaddr, U64 size); -internal void dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, OS_AccessFlags flags); +internal void dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, AccessFlags flags); internal U64 dmn_process_read(DMN_Handle process, Rng1U64 range, void *dst); internal B32 dmn_process_write(DMN_Handle process, Rng1U64 range, void *src); -#define dmn_process_read_struct(process, vaddr, ptr) dmn_process_read((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) -#define dmn_process_write_struct(process, vaddr, ptr) dmn_process_write((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) //- rjf: threads -internal Arch dmn_arch_from_thread(DMN_Handle handle); -internal U64 dmn_stack_base_vaddr_from_thread(DMN_Handle handle); -internal U64 dmn_tls_root_vaddr_from_thread(DMN_Handle handle); internal B32 dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block); internal B32 dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block); +internal B32 dmn_thread_get_module_tls_vaddr(DMN_Handle thread, DMN_Handle module, U64 *vaddr_out); //- rjf: system process listing internal void dmn_process_iter_begin(DMN_ProcessIter *iter); diff --git a/src/demon/demon_core.mdesk b/src/demon/demon_core.mdesk index 78e49001..50acceef 100644 --- a/src/demon/demon_core.mdesk +++ b/src/demon/demon_core.mdesk @@ -13,6 +13,7 @@ DMN_EventKindTable: {ExitThread} {LoadModule} {UnloadModule} + {ModuleDebugInfo} {Breakpoint} {Trap} {SingleStep} diff --git a/src/demon/demon_inc.c b/src/demon/demon_inc.c index d733b612..771aa2e6 100644 --- a/src/demon/demon_inc.c +++ b/src/demon/demon_inc.c @@ -4,9 +4,9 @@ #include "demon/demon_core.c" #if OS_WINDOWS -# include "demon/win32/demon_core_win32.c" +# include "win32/demon/win32_demon.c" #elif OS_LINUX -# include "demon/linux/demon_core_linux.c" +# include "linux/demon/linux_demon.c" #else # error Demon layer backend not defined for this operating system. #endif diff --git a/src/demon/demon_inc.h b/src/demon/demon_inc.h index eec32998..b5e693f1 100644 --- a/src/demon/demon_inc.h +++ b/src/demon/demon_inc.h @@ -7,9 +7,9 @@ #include "demon/demon_core.h" #if OS_WINDOWS -# include "demon/win32/demon_core_win32.h" +# include "win32/demon/win32_demon.h" #elif OS_LINUX -# include "demon/linux/demon_core_linux.h" +# include "linux/demon/linux_demon.h" #else # error Demon layer backend not defined for this operating system. #endif diff --git a/src/demon/generated/demon.meta.c b/src/demon/generated/demon.meta.c index cf282f4a..66404aeb 100644 --- a/src/demon/generated/demon.meta.c +++ b/src/demon/generated/demon.meta.c @@ -1,42 +1,43 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 dmn_event_kind_string_table[21] = -{ -str8_lit_comp("Null"), -str8_lit_comp("Error"), -str8_lit_comp("HandshakeComplete"), -str8_lit_comp("CreateProcess"), -str8_lit_comp("ExitProcess"), -str8_lit_comp("CreateThread"), -str8_lit_comp("ExitThread"), -str8_lit_comp("LoadModule"), -str8_lit_comp("UnloadModule"), -str8_lit_comp("Breakpoint"), -str8_lit_comp("Trap"), -str8_lit_comp("SingleStep"), -str8_lit_comp("Exception"), -str8_lit_comp("Halt"), -str8_lit_comp("Memory"), -str8_lit_comp("DebugString"), -str8_lit_comp("SetThreadName"), -str8_lit_comp("SetThreadColor"), -str8_lit_comp("SetBreakpoint"), -str8_lit_comp("UnsetBreakpoint"), -str8_lit_comp("SetVAddrRangeNote"), -}; - -String8 dmn_exception_kind_string_table[5] = -{ -str8_lit_comp("Null"), -str8_lit_comp("MemoryRead"), -str8_lit_comp("MemoryWrite"), -str8_lit_comp("MemoryExecute"), -str8_lit_comp("CppThrow"), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 dmn_event_kind_string_table[22] = +{ +str8_lit_comp("Null"), +str8_lit_comp("Error"), +str8_lit_comp("HandshakeComplete"), +str8_lit_comp("CreateProcess"), +str8_lit_comp("ExitProcess"), +str8_lit_comp("CreateThread"), +str8_lit_comp("ExitThread"), +str8_lit_comp("LoadModule"), +str8_lit_comp("UnloadModule"), +str8_lit_comp("ModuleDebugInfo"), +str8_lit_comp("Breakpoint"), +str8_lit_comp("Trap"), +str8_lit_comp("SingleStep"), +str8_lit_comp("Exception"), +str8_lit_comp("Halt"), +str8_lit_comp("Memory"), +str8_lit_comp("DebugString"), +str8_lit_comp("SetThreadName"), +str8_lit_comp("SetThreadColor"), +str8_lit_comp("SetBreakpoint"), +str8_lit_comp("UnsetBreakpoint"), +str8_lit_comp("SetVAddrRangeNote"), +}; + +String8 dmn_exception_kind_string_table[5] = +{ +str8_lit_comp("Null"), +str8_lit_comp("MemoryRead"), +str8_lit_comp("MemoryWrite"), +str8_lit_comp("MemoryExecute"), +str8_lit_comp("CppThrow"), +}; + +C_LINKAGE_END + diff --git a/src/demon/generated/demon.meta.h b/src/demon/generated/demon.meta.h index 7e1513e0..bbbfc943 100644 --- a/src/demon/generated/demon.meta.h +++ b/src/demon/generated/demon.meta.h @@ -1,70 +1,71 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef DEMON_META_H -#define DEMON_META_H - -typedef enum DMN_EventKind -{ -DMN_EventKind_Null, -DMN_EventKind_Error, -DMN_EventKind_HandshakeComplete, -DMN_EventKind_CreateProcess, -DMN_EventKind_ExitProcess, -DMN_EventKind_CreateThread, -DMN_EventKind_ExitThread, -DMN_EventKind_LoadModule, -DMN_EventKind_UnloadModule, -DMN_EventKind_Breakpoint, -DMN_EventKind_Trap, -DMN_EventKind_SingleStep, -DMN_EventKind_Exception, -DMN_EventKind_Halt, -DMN_EventKind_Memory, -DMN_EventKind_DebugString, -DMN_EventKind_SetThreadName, -DMN_EventKind_SetThreadColor, -DMN_EventKind_SetBreakpoint, -DMN_EventKind_UnsetBreakpoint, -DMN_EventKind_SetVAddrRangeNote, -DMN_EventKind_COUNT, -} DMN_EventKind; - -typedef enum DMN_ErrorKind -{ -DMN_ErrorKind_Null, -DMN_ErrorKind_NotAttached, -DMN_ErrorKind_UnexpectedFailure, -DMN_ErrorKind_InvalidHandle, -DMN_ErrorKind_COUNT, -} DMN_ErrorKind; - -typedef enum DMN_MemoryEventKind -{ -DMN_MemoryEventKind_Null, -DMN_MemoryEventKind_Commit, -DMN_MemoryEventKind_Reserve, -DMN_MemoryEventKind_Decommit, -DMN_MemoryEventKind_Release, -DMN_MemoryEventKind_COUNT, -} DMN_MemoryEventKind; - -typedef enum DMN_ExceptionKind -{ -DMN_ExceptionKind_Null, -DMN_ExceptionKind_MemoryRead, -DMN_ExceptionKind_MemoryWrite, -DMN_ExceptionKind_MemoryExecute, -DMN_ExceptionKind_CppThrow, -DMN_ExceptionKind_COUNT, -} DMN_ExceptionKind; - -C_LINKAGE_BEGIN -extern String8 dmn_event_kind_string_table[21]; -extern String8 dmn_exception_kind_string_table[5]; - -C_LINKAGE_END - -#endif // DEMON_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef DEMON_META_H +#define DEMON_META_H + +typedef enum DMN_EventKind +{ +DMN_EventKind_Null, +DMN_EventKind_Error, +DMN_EventKind_HandshakeComplete, +DMN_EventKind_CreateProcess, +DMN_EventKind_ExitProcess, +DMN_EventKind_CreateThread, +DMN_EventKind_ExitThread, +DMN_EventKind_LoadModule, +DMN_EventKind_UnloadModule, +DMN_EventKind_ModuleDebugInfo, +DMN_EventKind_Breakpoint, +DMN_EventKind_Trap, +DMN_EventKind_SingleStep, +DMN_EventKind_Exception, +DMN_EventKind_Halt, +DMN_EventKind_Memory, +DMN_EventKind_DebugString, +DMN_EventKind_SetThreadName, +DMN_EventKind_SetThreadColor, +DMN_EventKind_SetBreakpoint, +DMN_EventKind_UnsetBreakpoint, +DMN_EventKind_SetVAddrRangeNote, +DMN_EventKind_COUNT, +} DMN_EventKind; + +typedef enum DMN_ErrorKind +{ +DMN_ErrorKind_Null, +DMN_ErrorKind_NotAttached, +DMN_ErrorKind_UnexpectedFailure, +DMN_ErrorKind_InvalidHandle, +DMN_ErrorKind_COUNT, +} DMN_ErrorKind; + +typedef enum DMN_MemoryEventKind +{ +DMN_MemoryEventKind_Null, +DMN_MemoryEventKind_Commit, +DMN_MemoryEventKind_Reserve, +DMN_MemoryEventKind_Decommit, +DMN_MemoryEventKind_Release, +DMN_MemoryEventKind_COUNT, +} DMN_MemoryEventKind; + +typedef enum DMN_ExceptionKind +{ +DMN_ExceptionKind_Null, +DMN_ExceptionKind_MemoryRead, +DMN_ExceptionKind_MemoryWrite, +DMN_ExceptionKind_MemoryExecute, +DMN_ExceptionKind_CppThrow, +DMN_ExceptionKind_COUNT, +} DMN_ExceptionKind; + +C_LINKAGE_BEGIN +extern String8 dmn_event_kind_string_table[22]; +extern String8 dmn_exception_kind_string_table[5]; + +C_LINKAGE_END + +#endif // DEMON_META_H diff --git a/src/demon/linux/demon_core_linux.c b/src/demon/linux/demon_core_linux.c deleted file mode 100644 index 8f613189..00000000 --- a/src/demon/linux/demon_core_linux.c +++ /dev/null @@ -1,1827 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Helpers - -//- rjf: file descriptor memory reading/writing helpers - -internal U64 -dmn_lnx_read(int memory_fd, Rng1U64 range, void *dst) -{ - U64 bytes_read = 0; - U8 *ptr = (U8 *)dst; - U8 *opl = ptr + dim_1u64(range); - U64 cursor = range.min; - for(;ptr < opl;) - { - size_t to_read = (size_t)(opl - ptr); - ssize_t actual_read = pread(memory_fd, ptr, to_read, cursor); - if(actual_read == -1) - { - break; - } - ptr += actual_read; - cursor += actual_read; - bytes_read += actual_read; - } - return bytes_read; -} - -internal B32 -dmn_lnx_write(int memory_fd, Rng1U64 range, void *src) -{ - B32 result = 1; - U8 *ptr = (U8 *)src; - U8 *opl = ptr + dim_1u64(range); - U64 cursor = range.min; - for(;ptr < opl;) - { - size_t to_write = (size_t)(opl - ptr); - ssize_t actual_write = pwrite(memory_fd, ptr, to_write, cursor); - if(actual_write == -1) - { - result = 0; - break; - } - ptr += actual_write; - cursor += actual_write; - } - return result; -} - -internal String8 -dmn_lnx_read_string(Arena *arena, int memory_fd, U64 base_vaddr) -{ - String8 result = {0}; - U64 string_size = 0; - for(U64 vaddr = base_vaddr; string_size < 4096; vaddr += 1, string_size += 1) - { - char byte = 0; - if(pread(memory_fd, &byte, sizeof(byte), vaddr) == 0) - { - break; - } - if(byte == '\0' || byte == '\n') - { - break; - } - } - if(string_size != 0) - { - char *buf = push_array_no_zero(arena, char, string_size+1); - pread(memory_fd, buf, string_size, base_vaddr); - buf[string_size] = '\0'; - result = str8((U8 *)buf, string_size); - } - return result; -} - -//- rjf: pid => info extraction - -internal String8 -dmn_lnx_exe_path_from_pid(Arena *arena, pid_t pid) -{ - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: get exe link path - String8 exe_link_path = str8f(scratch.arena, "/proc/%d/exe", pid); - - //- rjf: read the link - Temp restore_point = temp_begin(arena); - B32 good = 0; - U8 *buffer = 0; - int readlink_result = 0; - S64 cap = PATH_MAX; - for(S64 r = 0; r < 4; cap *= 2, r += 1) - { - temp_end(restore_point); - buffer = push_array_no_zero(arena, U8, cap); - readlink_result = readlink((char *)exe_link_path.str, (char *)buffer, cap); - if(readlink_result < cap) - { - good = 1; - break; - } - } - - //- rjf: package result - String8 result = {0}; - if(!good || readlink_result == -1) - { - temp_end(restore_point); - } - else - { - arena_pop(arena, (cap - readlink_result - 1)); - result = str8(buffer, readlink_result + 1); - } - - scratch_end(scratch); - return result; -} - -internal Arch -dmn_lnx_arch_from_pid(pid_t pid) -{ - Arch result = Arch_Null; - { - Temp scratch = scratch_begin(0, 0); - String8 exe_path = dmn_lnx_exe_path_from_pid(scratch.arena, pid); - - // rjf: unpack exe handle - int exe_fd = -1; - if(exe_path.size != 0) - { - exe_fd = open((char*)exe_path.str, O_RDONLY); - } - - // rjf: unpack elf identifier - U8 e_ident[ELF_Identifier_Max] = {0}; - B32 is_elf = 0; - U8 elf_class = 0; - if(exe_fd >= 0 && - pread(exe_fd, e_ident, sizeof(e_ident), 0) == sizeof(e_ident)) - { - is_elf = (e_ident[ELF_Identifier_Mag0] == 0x7f && - e_ident[ELF_Identifier_Mag1] == 'E' && - e_ident[ELF_Identifier_Mag2] == 'L' && - e_ident[ELF_Identifier_Mag3] == 'F'); - elf_class = e_ident[ELF_Identifier_Class]; - } - - // rjf: read elf header - ELF_Hdr64 hdr = {0}; - switch(elf_class) - { - case 1: - { - ELF_Hdr32 hdr32 = {0}; - if(pread(exe_fd, &hdr32, sizeof(hdr32), 0) == sizeof(hdr32)) - { - hdr = elf_hdr64_from_hdr32(hdr32); - } - }break; - case 2: - { - pread(exe_fd, &hdr, sizeof(hdr), 0); - }break; - } - - // rjf: determine arch from elf machine kind - result = arch_from_elf_machine(hdr.e_machine); - - close(exe_fd); - scratch_end(scratch); - } - return result; -} - -internal DMN_LNX_ProcessAux -dmn_lnx_aux_from_pid(pid_t pid, Arch arch) -{ - Temp scratch = scratch_begin(0, 0); - DMN_LNX_ProcessAux result = {0}; - - // rjf: open aux data - String8 auxv_path = push_str8f(scratch.arena, "/proc/%d/auxv", pid); - int aux_fd = open((char*)auxv_path.str, O_RDONLY); - - // rjf: scan aux data - if(aux_fd >= 0) - { - B32 addr_32bit = (arch == Arch_x86 || arch == Arch_arm32); - for(;;) - { - result.filled = 1; - - // rjf: read next aux - U64 type = 0; - U64 val = 0; - if(addr_32bit) - { - ELF_Auxv32 aux = {0}; - if(read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)) - { - goto brkloop; - } - type = aux.a_type; - val = aux.a_val; - } - else - { - ELF_Auxv64 aux = {0}; - if(read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)) - { - goto brkloop; - } - type = aux.a_type; - val = aux.a_val; - } - - // rjf: fill result - switch(type) - { - default:{}break; - case ELF_AuxType_Null: goto brkloop; break; - case ELF_AuxType_Phnum: result.phnum = val; break; - case ELF_AuxType_Phent: result.phent = val; break; - case ELF_AuxType_Phdr: result.phdr = val; break; - case ELF_AuxType_ExecFn: result.execfn = val; break; - case ELF_AuxType_Pagesz: result.pagesz = val; break; - } - } - brkloop:; - close(aux_fd); - } - - scratch_end(scratch); - return result; -} - -//- rjf: phdr info extraction - -internal DMN_LNX_PhdrInfo -dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsize, U64 phcount) -{ - DMN_LNX_PhdrInfo result = {0}; - result.range.min = max_U64; - - // rjf: determine how much phdr we'll read - U64 phdr_size_expected = (is_32bit ? sizeof(ELF_Phdr32) : sizeof(ELF_Phdr64)); - U64 phdr_stride = (phsize ? phsize : phdr_size_expected); - U64 phdr_read_size = ClampTop(phsize, phdr_size_expected); - - // rjf: scan table - U64 va = phvaddr; - for(U64 i = 0; i < phcount; i += 1, va += phdr_stride) - { - // rjf: read type and range - ELF_PType p_type = 0; - U64 p_vaddr = 0; - U64 p_memsz = 0; - if(is_32bit) - { - ELF_Phdr32 phdr32 = {0}; - dmn_lnx_read_struct(memory_fd, va, &phdr32); - p_type = phdr32.p_type; - p_vaddr = phdr32.p_vaddr; - p_memsz = phdr32.p_memsz; - } - else - { - ELF_Phdr64 phdr64 = {0}; - dmn_lnx_read_struct(memory_fd, va, &phdr64); - p_type = phdr64.p_type; - p_vaddr = phdr64.p_vaddr; - p_memsz = phdr64.p_memsz; - } - - // rjf: save - switch(p_type) - { - default:{}break; - case ELF_PType_Dynamic: - { - result.dynamic = p_vaddr; - }break; - case ELF_PType_Load: - { - U64 min = p_vaddr; - U64 max = p_vaddr + p_memsz; - result.range.min = Min(result.range.min, min); - result.range.max = Max(result.range.max, max); - }break; - } - } - - return result; -} - -//- rjf: process entity => info extraction - -internal DMN_LNX_ModuleInfoList -dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process) -{ - Arch arch = process->arch; - B32 is_32bit = (arch == Arch_x86 || arch == Arch_arm32); - int memory_fd = (int)process->fd; - - //- rjf: pid => aux - DMN_LNX_ProcessAux aux = dmn_lnx_aux_from_pid((pid_t)process->id, arch); - - //- rjf: memory => phdr info - DMN_LNX_PhdrInfo phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, aux.phdr, aux.phent, aux.phnum); - - //- rjf: memory space & vaddr => linkmap first - U64 first_linkmap_vaddr = 0; - if(phdr_info.dynamic != 0) - { - U64 off = phdr_info.dynamic; - for(;;) - { - // rjf: read next dyn entry - ELF_Dyn64 dyn = {0}; - if(is_32bit) - { - ELF_Dyn32 dyn32 = {0}; - dmn_lnx_read_struct(memory_fd, off, &dyn32); - dyn.tag = dyn32.tag; - dyn.val = dyn32.val; - off += sizeof(dyn32); - } - else - { - dmn_lnx_read_struct(memory_fd, off, &dyn); - off += sizeof(dyn); - } - - // rjf: break on zero - if(dyn.tag == ELF_DynTag_Null) - { - break; - } - - // rjf: pltgot => grab first linkmap address - if(dyn.tag == ELF_DynTag_PltGot) - { - // True for x86 and x64 - // vas[0] virtual address of .dynamic - // vas[2] callback for resolving function address of relocation and if successful jumps to it. - // - // Code that sets up PLTGOT is in glibc/sysdeps/x86_64/dl_machine.h -> elf_machine_runtime_setup - // - U64 vas_off = dyn.val; - U64 vas[3] = {0}; - dmn_lnx_read(memory_fd, r1u64(vas_off, vas_off+sizeof(vas)), vas); - first_linkmap_vaddr = vas[1]; - break; - } - } - } - - //- rjf: push main module - DMN_LNX_ModuleInfoList list = {0}; - { - U64 base_vaddr = (aux.phdr & ~(aux.pagesz-1)); - DMN_LNX_ModuleInfoNode *n = push_array(arena, DMN_LNX_ModuleInfoNode, 1); - SLLQueuePush(list.first, list.last, n); - list.count += 1; - n->v.vaddr_range = shift_1u64(phdr_info.range, base_vaddr); - n->v.name = aux.execfn; - } - - //- rjf: iterate link maps - if(first_linkmap_vaddr != 0) - { - U64 linkmap_vaddr = first_linkmap_vaddr; - for(;linkmap_vaddr != 0;) - { - // rjf: read next linkmap entry - ELF_LinkMap64 linkmap = {0}; - if(is_32bit) - { - // TODO(rjf): endianness - ELF_LinkMap32 linkmap32 = {0}; - dmn_lnx_read_struct(memory_fd, linkmap_vaddr, &linkmap32); - linkmap.base = linkmap32.base; - linkmap.name = linkmap32.name; - linkmap.ld = linkmap32.ld; - linkmap.next = linkmap32.next; - } - else - { - dmn_lnx_read_struct(memory_fd, linkmap_vaddr, &linkmap); - } - - // rjf: push module for next link map - if(linkmap.base != 0) - { - // rjf: find phdr info for this module - U64 phvaddr = 0; - U64 phentsize = 0; - U64 phcount = 0; - if(is_32bit) - { - ELF_Hdr32 ehdr = {0}; - dmn_lnx_read_struct(memory_fd, linkmap.base, &ehdr); - phvaddr = ehdr.e_phoff + linkmap.base; - phentsize = ehdr.e_phentsize; - phcount = ehdr.e_phnum; - } - else - { - ELF_Hdr64 ehdr = {0}; - dmn_lnx_read_struct(memory_fd, linkmap.base, &ehdr); - phvaddr = ehdr.e_phoff + linkmap.base; - phentsize = ehdr.e_phentsize; - phcount = ehdr.e_phnum; - } - - // rjf: extract info from module's phdrs - DMN_LNX_PhdrInfo module_phdr_info = dmn_lnx_phdr_info_from_memory(memory_fd, is_32bit, phvaddr, phentsize, phcount); - - // rjf: push - DMN_LNX_ModuleInfoNode *n = push_array(arena, DMN_LNX_ModuleInfoNode, 1); - SLLQueuePush(list.first, list.last, n); - list.count += 1; - n->v.vaddr_range = r1u64(linkmap.base, linkmap.base + dim_1u64(module_phdr_info.range)); - n->v.name = linkmap.name; - } - - // rjf: iterate - linkmap_vaddr = linkmap.next; - } - } - - return list; -} - -//////////////////////////////// -//~ rjf: Entity Functions - -internal DMN_LNX_Entity * -dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_EntityKind kind) -{ - DMN_LNX_Entity *entity = dmn_lnx_state->free_entity; - if(entity != 0) - { - SLLStackPop(dmn_lnx_state->free_entity); - } - else - { - entity = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 1); - dmn_lnx_state->entities_count += 1; - } - U32 gen = entity->gen; - MemoryCopyStruct(entity, &dmn_lnx_nil_entity); - entity->gen += 1; - if(parent != &dmn_lnx_nil_entity) - { - DLLPushBack_NPZ(&dmn_lnx_nil_entity, parent->first, parent->last, entity, next, prev); - entity->parent = parent; - } - entity->kind = kind; - return entity; -} - -internal void -dmn_lnx_entity_release(DMN_LNX_Entity *entity) -{ - if(entity->parent != &dmn_lnx_nil_entity) - { - DLLRemove_NPZ(&dmn_lnx_nil_entity, entity->parent->first, entity->parent->last, entity, next, prev); - entity->parent = &dmn_lnx_nil_entity; - } - { - Temp scratch = scratch_begin(0, 0); - DMN_LNX_EntityNode start_task = {0, entity}; - DMN_LNX_EntityNode *first_task = &start_task; - for(DMN_LNX_EntityNode *t = first_task; t != 0; t = t->next) - { - SLLStackPush(dmn_lnx_state->free_entity, t->v); - for(DMN_LNX_Entity *child = t->v->first; child != &dmn_lnx_nil_entity; child = child->next) - { - DMN_LNX_EntityNode *task = push_array(scratch.arena, DMN_LNX_EntityNode, 1); - task->next = t->next; - t->next = task; - task->v = child; - } - } - scratch_end(scratch); - } -} - -internal DMN_Handle -dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity) -{ - DMN_Handle handle = {0}; - U64 index = (U64)(entity - dmn_lnx_state->entities_base); - if(index <= 0xffffffffu) - { - handle.u32[0] = index; - handle.u32[1] = entity->gen; - } - return handle; -} - -internal DMN_LNX_Entity * -dmn_lnx_entity_from_handle(DMN_Handle handle) -{ - DMN_LNX_Entity *result = &dmn_lnx_nil_entity; - U64 index = (U64)handle.u32[0]; - if(index < dmn_lnx_state->entities_count && - dmn_lnx_state->entities_base[index].gen == handle.u32[1]) - { - result = &dmn_lnx_state->entities_base[index]; - } - return result; -} - -internal DMN_LNX_Entity * -dmn_lnx_thread_from_pid(pid_t pid) -{ - DMN_LNX_Entity *result = &dmn_lnx_nil_entity; - if(pid != 0) - { - for EachIndex(idx, dmn_lnx_state->entities_count) - { - if(dmn_lnx_state->entities_base[idx].kind == DMN_LNX_EntityKind_Thread && (pid_t)dmn_lnx_state->entities_base[idx].id == pid) - { - result = &dmn_lnx_state->entities_base[idx]; - break; - } - } - } - return result; -} - -internal B32 -dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block) -{ - B32 result = 0; - switch(thread->arch) - { - case Arch_Null: - case Arch_COUNT:{}break; - case Arch_x86: - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //////////////////////////// - //- rjf: [x64] - // - case Arch_x64: - { - REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; - pid_t tid = (pid_t)thread->id; - - //- rjf: read GPR - B32 got_gpr = 0; - { - DMN_LNX_UserX64 ctx = {0}; - struct iovec iov_gpr = {0}; - iov_gpr.iov_len = sizeof(ctx); - iov_gpr.iov_base = &ctx; - int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr); - if(ptrace_result != -1) - { - got_gpr = 1; - DMN_LNX_UserRegsX64 *src = &ctx.regs; - dst->rax.u64 = src->rax; - dst->rcx.u64 = src->rcx; - dst->rdx.u64 = src->rdx; - dst->rbx.u64 = src->rbx; - dst->rsp.u64 = src->rsp; - dst->rbp.u64 = src->rbp; - dst->rsi.u64 = src->rsi; - dst->rdi.u64 = src->rdi; - dst->r8.u64 = src->r8; - dst->r9.u64 = src->r9; - dst->r10.u64 = src->r10; - dst->r11.u64 = src->r11; - dst->r12.u64 = src->r12; - dst->r13.u64 = src->r13; - dst->r14.u64 = src->r14; - dst->r15.u64 = src->r15; - dst->cs.u16 = src->cs; - dst->ds.u16 = src->ds; - dst->es.u16 = src->es; - dst->fs.u16 = src->fs; - dst->gs.u16 = src->gs; - dst->ss.u16 = src->ss; - dst->fsbase.u64 = src->fsbase; - dst->gsbase.u64 = src->gsbase; - dst->rip.u64 = src->rip; - dst->rflags.u64 = src->rflags; - } - else - { - int error_code = errno; - (void)error_code; - int x = 0; - (void)x; - } - } - - //- rjf: read FPR - B32 got_fpr = 0; - if(got_gpr) - { - Temp scratch = scratch_begin(0, 0); - DMN_LNX_XSave *xsave = 0; - DMN_LNX_XSaveLegacy *xsave_legacy = 0; - - // rjf: try xsave - if(!xsave_legacy) - { - U8 xsave_buffer[KB(4)]; - struct iovec iov_xsave = {0}; - iov_xsave.iov_len = sizeof(xsave_buffer); - iov_xsave.iov_base = xsave_buffer; - int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave); - if(ptrace_result != -1) - { - xsave = push_array_no_zero(scratch.arena, DMN_LNX_XSave, 1); - MemoryCopy(xsave, xsave_buffer, sizeof(*xsave)); - xsave_legacy = &xsave->legacy; - } - else - { - int error_code = errno; - (void)error_code; - int x = 0; - (void)x; - } - } - - // rjf: try fxsave - if(!xsave_legacy) - { - DMN_LNX_XSaveLegacy fxsave = {0}; - struct iovec iov_fxsave = {0}; - iov_fxsave.iov_len = sizeof(fxsave); - iov_fxsave.iov_base = &fxsave; - int ptrace_result = ptrace(PTRACE_GETREGSET, tid, (void *)NT_FPREGSET, &iov_fxsave); - if(ptrace_result != -1) - { - xsave_legacy = push_array_no_zero(scratch.arena, DMN_LNX_XSaveLegacy, 1); - MemoryCopy(xsave_legacy, &fxsave, sizeof(*xsave_legacy)); - } - else - { - int error_code = errno; - (void)error_code; - int x = 0; - (void)x; - } - } - - // rjf: fill from xsave legacy - if(xsave_legacy) - { - DMN_LNX_XSaveLegacy *src = xsave_legacy; - dst->fcw.u16 = src->fcw; - dst->fsw.u16 = src->fsw; - dst->ftw.u16 = src->ftw; // TODO(rjf): old: fix tag word (?) - dst->fop.u16 = src->fop; - dst->fip.u64 = src->b64.fip; - // TODO(rjf): these 16-bit registers do not belong in x64 - dst->fcs.u16 = 0; - dst->fdp.u64 = src->b64.fdp; - dst->fds.u16 = 0; - dst->mxcsr.u32 = src->mxcsr; - dst->mxcsr_mask.u32 = src->mxcsr_mask; - { - U8 *float_s = src->st_space.u8; - REGS_Reg80 *float_d = &dst->st0; - for(U32 n = 0; n < 8; n += 1, float_s += 16, float_d += 1) - { - MemoryCopy(float_d, float_s, sizeof(*float_d)); - } - } - { - U8 *xmm_s = src->xmm_space.u8; - REGS_Reg512 *xmm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, xmm_s += 16, xmm_d += 1) - { - MemoryCopy(xmm_d, xmm_s, 16); - } - } - } - - // rjf: fill from ymm registers - // TODO(rjf): this is a lie; ymm can technically move around. study & fix. - if(xsave) - { - B32 has_ymm_registers = ((xsave->header.xstate_bv & 4) != 0); - if(has_ymm_registers) - { - U8 *ymm_s = (U8 *)xsave->ymmh; - REGS_Reg512 *ymm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, ymm_s += 16, ymm_d += 1) - { - MemoryCopy(((U8*)ymm_d) + 16, ymm_s, 16); - } - } - } - - got_fpr = (xsave || xsave_legacy); - scratch_end(scratch); - } - - //- rjf: read debug registers - B32 got_debug = 0; - if(got_fpr) - { - got_debug = 1; - REGS_Reg64 *dr_d = &dst->dr0; - for(U32 i = 0; i < 8; i += 1, dr_d += 1) - { - if(i != 4 && i != 5) - { - U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); - errno = 0; - int peek_result = ptrace(PTRACE_PEEKUSER, tid, PtrFromInt(offset), 0); - if(errno == 0) - { - dr_d->u64 = (U64)peek_result; - } - else - { - got_debug = 0; - } - } - } - } - - result = got_debug; - }break; - } - return result; -} - -internal B32 -dmn_lnx_thread_write_reg_block(DMN_LNX_Entity *thread, void *reg_block) -{ - B32 result = 0; - switch(thread->arch) - { - case Arch_Null: - case Arch_COUNT:{}break; - case Arch_x86: - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //////////////////////////// - //- rjf: [x64] - // - case Arch_x64: - { - REGS_RegBlockX64 *src = (REGS_RegBlockX64 *)reg_block; - pid_t tid = (pid_t)thread->id; - - //- rjf: write GPR - B32 did_gpr = 0; - { - DMN_LNX_UserX64 dst = {0}; - dst.regs.rax = src->rax.u64; - dst.regs.rcx = src->rcx.u64; - dst.regs.rdx = src->rdx.u64; - dst.regs.rbx = src->rbx.u64; - dst.regs.rsp = src->rsp.u64; - dst.regs.rbp = src->rbp.u64; - dst.regs.rsi = src->rsi.u64; - dst.regs.rdi = src->rdi.u64; - dst.regs.r8 = src->r8.u64; - dst.regs.r9 = src->r9.u64; - dst.regs.r10 = src->r10.u64; - dst.regs.r11 = src->r11.u64; - dst.regs.r12 = src->r12.u64; - dst.regs.r13 = src->r13.u64; - dst.regs.r14 = src->r14.u64; - dst.regs.r15 = src->r15.u64; - dst.regs.cs = src->cs.u16; - dst.regs.ds = src->ds.u16; - dst.regs.es = src->es.u16; - dst.regs.fs = src->fs.u16; - dst.regs.gs = src->gs.u16; - dst.regs.ss = src->ss.u16; - dst.regs.fsbase = src->fsbase.u64; - dst.regs.gsbase = src->gsbase.u64; - dst.regs.rip = src->rip.u64; - dst.regs.rflags = src->rflags.u64; - struct iovec iov_gpr = {0}; - iov_gpr.iov_base = &dst; - iov_gpr.iov_len = sizeof(dst); - int gpr_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr); - did_gpr = (gpr_result != -1); - } - - //- rjf: write FPR - B32 did_fpr = 0; - if(did_gpr) - { - // rjf: fill xsave structure - DMN_LNX_XSave xsave = {0}; - { - xsave.legacy.fcw = src->fcw.u16; - xsave.legacy.fsw = src->fsw.u16; - xsave.legacy.ftw = src->ftw.u16; - xsave.legacy.fop = src->fop.u16; - xsave.legacy.b64.fip = src->fip.u64; - xsave.legacy.b64.fdp = src->fdp.u64; - xsave.legacy.mxcsr = src->mxcsr.u32; - xsave.legacy.mxcsr_mask = src->mxcsr_mask.u32; - { - U8 *float_d = xsave.legacy.st_space.u8; - REGS_Reg80 *float_s = &src->st0; - for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 16) - { - MemoryCopy(float_d, float_s, sizeof(*float_s)); - } - } - { - U8 *xmm_d = xsave.legacy.xmm_space.u8; - REGS_Reg512 *xmm_s = &src->zmm0; - for(U32 n = 0; n < 16; n += 1, xmm_s += 1, xmm_d += 16) - { - MemoryCopy(xmm_d, xmm_s, 16); - } - } - xsave.header.xstate_bv = 7; - { - // TODO(rjf): this is a lie; ymm can technically move around. study & fix. - U8 *ymm_d = xsave.ymmh; - REGS_Reg512 *ymm_s = &src->zmm0; - for(U32 n = 0; n < 16; n += 1, ymm_s += 1, ymm_d += 16) - { - MemoryCopy(ymm_d, ((U8 *)ymm_s) + 16, 16); - } - } - } - - // rjf: try xsave - int xsave_result = -1; - { - struct iovec iov_xsave = {0}; - iov_xsave.iov_base = &xsave; - iov_xsave.iov_len = sizeof(xsave); - xsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave); - } - - // rjf: try fxsave - int fxsave_result = -1; - if(xsave_result == -1) - { - struct iovec iov_fxsave = {0}; - iov_fxsave.iov_base = &xsave.legacy; - iov_fxsave.iov_len = sizeof(xsave.legacy); - fxsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_FPREGSET, &iov_fxsave); - } - - // rjf: good finish requires xsave or fxsave - did_fpr = (xsave_result != -1 || fxsave_result != -1); - } - - //- rjf: write debug registers - B32 did_dbg = 0; - if(did_fpr) - { - did_dbg = 1; - REGS_Reg64 *dr_s = &src->dr0; - for(U32 i = 0; i < 8; i += 1, dr_s += 1) - { - if(i != 4 && i != 5) - { - U64 offset = OffsetOf(DMN_LNX_UserX64, u_debugreg[i]); - int poke_result = ptrace(PTRACE_POKEUSER, tid, PtrFromInt(offset), dr_s->u64); - if(poke_result == -1) - { - did_dbg = 0; - } - } - } - } - - result = (did_dbg); - }break; - } - return result; -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) - -internal void -dmn_init(void) -{ - Arena *arena = arena_alloc(); - dmn_lnx_state = push_array(arena, DMN_LNX_State, 1); - dmn_lnx_state->arena = arena; - dmn_lnx_state->deferred_events_arena = arena_alloc(); - dmn_lnx_state->entities_arena = arena_alloc(.reserve_size = GB(32), .commit_size = KB(64), .flags = ArenaFlag_NoChain); - dmn_lnx_state->entities_base = push_array(dmn_lnx_state->entities_arena, DMN_LNX_Entity, 0); - dmn_lnx_entity_alloc(&dmn_lnx_nil_entity, DMN_LNX_EntityKind_Root); - dmn_lnx_state->access_mutex = mutex_alloc(); -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Blocking Control Thread Operations (Implemented Per-OS) - -internal DMN_CtrlCtx * -dmn_ctrl_begin(void) -{ - DMN_CtrlCtx *ctx = (DMN_CtrlCtx *)1; - dmn_lnx_ctrl_thread = 1; - return ctx; -} - -internal void -dmn_ctrl_exclusive_access_begin(void) -{ - MutexScope(dmn_lnx_state->access_mutex) - { - dmn_lnx_state->access_run_state = 1; - } -} - -internal void -dmn_ctrl_exclusive_access_end(void) -{ - MutexScope(dmn_lnx_state->access_mutex) - { - dmn_lnx_state->access_run_state = 0; - } -} - -internal U32 -dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) -{ - Temp scratch = scratch_begin(0, 0); - - //- rjf: unpack command line - char **argv = 0; - int argc = 0; - { - argc = (int)(params->cmd_line.node_count); - argv = push_array(scratch.arena, char *, argc+1); - { - U64 idx = 0; - for(String8Node *n = params->cmd_line.first; n != 0; n = n->next, idx += 1) - { - argv[idx] = (char *)push_str8_copy(scratch.arena, n->string).str; - } - } - } - - //- rjf: unpack path - char *path = (char *)push_str8_copy(scratch.arena, params->path).str; - - //- rjf: unpack environment - char **env = 0; - { - env = push_array(scratch.arena, char *, params->env.node_count+1); - { - U64 idx = 0; - for(String8Node *n = params->env.first; n != 0; n = n->next, idx += 1) - { - env[idx] = (char *)push_str8_copy(scratch.arena, n->string).str; - } - } - } - - //- rjf: create & set up new process - if(argv != 0 && argv[0] != 0) - { - pid_t pid = 0; - int ptrace_result = 0; - int chdir_result = 0; - int setoptions_result = 0; - B32 error__need_child_kill = 0; - - //- rjf: fork - pid = fork(); - if(pid == -1) { goto error; } - - //- rjf: child process -> execute actual target - if(pid == 0) - { - ptrace_result = ptrace(PTRACE_TRACEME, 0, 0, 0); - if(ptrace_result == -1) { goto error; } - chdir_result = chdir(path); - if(chdir_result == -1) { goto error; } - execve(argv[0], argv, env); - abort(); - } - - //- rjf: parent process - if(pid != 0) - { - //- rjf: wait for child - int status = 0; - pid_t wait_id = waitpid(pid, &status, __WALL); - if(wait_id != pid) - { - // NOTE(rjf): we do not know what this means - needs study if this actually arises. - goto error; - } - - //- rjf: determine child launch status - typedef enum LaunchStatus - { - LaunchStatus_Null, - LaunchStatus_FailBeforePtrace, - LaunchStatus_FailAfterPtrace, - LaunchStatus_Success, - } - LaunchStatus; - LaunchStatus launch_status = LaunchStatus_Null; - { - B32 wifstopped = WIFSTOPPED(status); - int wstopsig = WSTOPSIG(status); - if(0){} - else if(wifstopped && wstopsig == SIGTRAP) { launch_status = LaunchStatus_Success; } - else if(wifstopped && wstopsig != SIGTRAP) { launch_status = LaunchStatus_FailAfterPtrace; } - else { launch_status = LaunchStatus_FailBeforePtrace; } - } - - //- rjf: respond to launch status appropriately - switch(launch_status) - { - //- rjf: no understood handling path - default:{}break; - - //- rjf: failure, after ptrace => we need to explicitly obtain the - // result code & exit the process, otherwise it will become a zombie, - // since it is ptrace'd. - case LaunchStatus_FailAfterPtrace: - { - B32 cleanup_good = 0; - int detach_result = ptrace(PTRACE_DETACH, pid, 0, (void*)SIGCONT); - if(detach_result != -1) - { - int status_cleanup = 0; - pid_t wait_id_cleanup = waitpid(pid, &status_cleanup, __WALL); - if(wait_id_cleanup == pid) - { - cleanup_good = 1; - } - } - if(cleanup_good) - { - // TODO(rjf): child initialization failed, but we at least cleaned it up. - } - else - { - // TODO(rjf): child initialization failed, *and* we couldn't clean it up, so we've created - // yet-another zombie. - } - }break; - - //- rjf: successful launch - case LaunchStatus_Success: - { - setoptions_result = ptrace(PTRACE_SETOPTIONS, pid, 0, PtrFromInt(DMN_LNX_PTRACE_OPTIONS)); - if(setoptions_result == -1) { error__need_child_kill = 1; goto error; } - - //- rjf: build initial process/thread/modules entities - DMN_LNX_Entity *process = &dmn_lnx_nil_entity; - DMN_LNX_Entity *main_thread = &dmn_lnx_nil_entity; - { - // rjf: build process - process = dmn_lnx_entity_alloc(dmn_lnx_state->entities_base, DMN_LNX_EntityKind_Process); - process->arch = dmn_lnx_arch_from_pid(pid); - process->id = pid; - process->fd = open((char*)str8f(scratch.arena, "/proc/%d/mem", pid).str, O_RDWR); - { - DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); - e->kind = DMN_EventKind_CreateProcess; - e->process = dmn_lnx_handle_from_entity(process); - e->arch = process->arch; - e->code = pid; - } - - // rjf: build thread - { - DMN_LNX_Entity *thread = dmn_lnx_entity_alloc(process, DMN_LNX_EntityKind_Thread); - thread->id = pid; - thread->arch = process->arch; - { - DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); - e->kind = DMN_EventKind_CreateThread; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); - e->arch = thread->arch; - e->code = thread->id; - } - main_thread = thread; - } - - // rjf: gather all process module infos - DMN_LNX_ModuleInfoList module_infos = dmn_lnx_module_info_list_from_process(scratch.arena, process); - for(DMN_LNX_ModuleInfoNode *n = module_infos.first; n != 0; n = n->next) - { - DMN_LNX_Entity *module = dmn_lnx_entity_alloc(process, DMN_LNX_EntityKind_Module); - module->id = n->v.name; - { - DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); - e->kind = DMN_EventKind_LoadModule; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(main_thread); - e->module = dmn_lnx_handle_from_entity(module); - e->arch = process->arch; - e->address = n->v.vaddr_range.min; - e->size = dim_1u64(n->v.vaddr_range); - e->string = dmn_lnx_read_string(dmn_lnx_state->deferred_events_arena, process->fd, n->v.name); - } - } - - // rjf: handshake event - { - DMN_Event *e = dmn_event_list_push(dmn_lnx_state->deferred_events_arena, &dmn_lnx_state->deferred_events); - e->kind = DMN_EventKind_HandshakeComplete; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(main_thread); - e->arch = process->arch; - } - } - }break; - } - } - - //- rjf: error case - goto success; - error:; - { - if(error__need_child_kill) - { - // TODO(rjf) - } - } - - //- rjf: success - success:; - } - - scratch_end(scratch); - return 0; -} - -internal B32 -dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid) -{ - return 0; -} - -internal B32 -dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process, U32 exit_code) -{ - B32 result = 0; - DMN_LNX_Entity *process_entity = dmn_lnx_entity_from_handle(process); - if(process_entity != &dmn_lnx_nil_entity && - kill(process_entity->id, SIGKILL) != -1) - { - result = 1; - } - return result; -} - -internal B32 -dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process) -{ - B32 result = 0; - DMN_LNX_Entity *process_entity = dmn_lnx_entity_from_handle(process); - if(process_entity != &dmn_lnx_nil_entity && - ptrace(PTRACE_DETACH, process_entity->id, 0, 0) != -1) - { - result = 1; - } - return result; -} - -internal DMN_EventList -dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) -{ - DMN_EventList evts = {0}; - { - Temp scratch = scratch_begin(&arena, 1); - - //////////////////////////// - //- rjf: unpack controls - // - DMN_LNX_Entity *single_step_thread = dmn_lnx_entity_from_handle(ctrls->single_step_thread); - - //////////////////////////// - //- rjf: push any deferred events - // - { - for(DMN_EventNode *n = dmn_lnx_state->deferred_events.first; n != 0; n = n->next) - { - DMN_Event *e_src = &n->v; - DMN_Event *e_dst = dmn_event_list_push(arena, &evts); - MemoryCopyStruct(e_dst, e_src); - e_dst->string = str8_copy(arena, e_dst->string); - } - MemoryZeroStruct(&dmn_lnx_state->deferred_events); - arena_clear(dmn_lnx_state->deferred_events_arena); - } - - //////////////////////////// - //- rjf: no processes, no output events -> not attached - // - if(evts.count == 0 && dmn_lnx_state->entities_base->first == &dmn_lnx_nil_entity) - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_Error; - e->error_kind = DMN_ErrorKind_NotAttached; - } - - //////////////////////////// - //- rjf: determine if we need to wait for new events - // - B32 need_wait_on_events = (evts.count == 0); - - //////////////////////////// - //- rjf: write all traps into memory - // - U8 *trap_swap_bytes = push_array_no_zero(scratch.arena, U8, ctrls->traps.trap_count); - ProfScope("write all traps into memory") - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) - { - DMN_Trap *trap = n->v+n_idx; - if(trap->flags == 0) - { - trap_swap_bytes[trap_idx] = 0xCC; - dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr+1), trap_swap_bytes+trap_idx); - U8 int3 = 0xCC; - dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &int3); - } - } - } - } - - //////////////////////////// - //- rjf: gather all threads which we should run - // - DMN_LNX_EntityNode *first_run_thread = 0; - DMN_LNX_EntityNode *last_run_thread = 0; - if(need_wait_on_events) ProfScope("gather all threads which we should run") - { - //- rjf: scan all processes - for(DMN_LNX_Entity *process = dmn_lnx_state->entities_base->first; - process != &dmn_lnx_nil_entity; - process = process->next) - { - if(process->kind != DMN_LNX_EntityKind_Process) {continue;} - - //- rjf: determine if this process is frozen - B32 process_is_frozen = 0; - if(ctrls->run_entities_are_processes) - { - for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) - { - if(dmn_handle_match(ctrls->run_entities[idx], dmn_lnx_handle_from_entity(process))) - { - process_is_frozen = 1; - break; - } - } - } - - //- rjf: scan all threads in this process - for(DMN_LNX_Entity *thread = process->first; - thread != &dmn_lnx_nil_entity; - thread = thread->next) - { - if(thread->kind != DMN_LNX_EntityKind_Thread) {continue;} - - //- rjf: determine if this thread is frozen - B32 is_frozen = 0; - { - // rjf: single-step? freeze if not the single-step thread. - if(!dmn_handle_match(dmn_handle_zero(), ctrls->single_step_thread)) - { - is_frozen = !dmn_handle_match(dmn_lnx_handle_from_entity(thread), ctrls->single_step_thread); - } - - // rjf: not single-stepping? determine based on run controls freezing info - else - { - if(ctrls->run_entities_are_processes) - { - is_frozen = process_is_frozen; - } - else for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) - { - if(dmn_handle_match(ctrls->run_entities[idx], dmn_lnx_handle_from_entity(thread))) - { - is_frozen = 1; - break; - } - } - if(ctrls->run_entities_are_unfrozen) - { - is_frozen ^= 1; - } - } - } - - //- rjf: disregard all other rules if this is the halter thread - // TODO(rjf): halting - here is what we do on windows... -#if 0 - if(dmn_w32_shared->halter_tid == thread->id) - { - is_frozen = 0; - } -#endif - - //- rjf: add to list - if(!is_frozen) - { - DMN_LNX_EntityNode *n = push_array(scratch.arena, DMN_LNX_EntityNode, 1); - n->v = thread; - SLLQueuePush(first_run_thread, last_run_thread, n); - } - } - } - } - - //////////////////////////// - //- rjf: resume all threads we need to run - // - DMN_LNX_EntityNode *first_ran_thread = 0; - DMN_LNX_EntityNode *last_ran_thread = 0; - for(DMN_LNX_EntityNode *n = first_run_thread; n != 0; n = n->next) - { - ptrace(PTRACE_CONT, (pid_t)n->v->id, 0, 0); - DMN_LNX_EntityNode *n2 = push_array_no_zero(scratch.arena, DMN_LNX_EntityNode, 1); - SLLQueuePush(first_ran_thread, last_ran_thread, n2); - n2->v = n->v; - } - - //////////////////////////// - //- rjf: loop: wait for next stop, produce debug events - // - pid_t final_wait_pid = 0; - if(need_wait_on_events) for(B32 done = 0; !done;) - { - //- rjf: wait for next event - int status = 0; - pid_t wait_id = waitpid(-1, &status, __WALL); - final_wait_pid = wait_id; - done = 1; - - // NOTE(rjf): siginfo hint from old code: -#if 0 - { - switch(siginfo.si_code) - { - // SI_KERNEL (hit int3; 0xCC) - case 0x80: - { - // TODO(rjf): breakpoint event - }break; - // +----------------------"breakpoint" - // | - // v----------v----------------------"hardware breakpoint" - // TRAP_UNK, TRAP_HWBKPT, TRAP_BRKPT, TRAP_TRACE - case 0x5: case 0x4: case 0x1: case 0x2: - { - // TODO(rjf): breakpoint event (?) - }break; - case 0x3: case 0x0: - { - // TODO(rjf): do nothing(?) - }break; - } - } -#endif - - //- rjf: unpack event - int wifexited = WIFEXITED(status); - int wifsignaled = WIFSIGNALED(status); - int wifstopped = WIFSTOPPED(status); - int wstopsig = WSTOPSIG(status); - int ptrace_event_code = (status>>16); - DMN_LNX_Entity *thread = dmn_lnx_thread_from_pid(wait_id); - DMN_LNX_Entity *process = thread->parent; - B32 thread_is_process_root = (thread->id == process->id); - - //- rjf: unpack thread's registers - U64 rip = 0; - void *regs_block = 0; - if(thread != &dmn_lnx_nil_entity) - { - U64 regs_block_size = regs_block_size_from_arch(thread->arch); - regs_block = push_array(scratch.arena, U8, regs_block_size); - dmn_lnx_thread_read_reg_block(thread, regs_block); - rip = regs_rip_from_arch_block(thread->arch, regs_block); - } - - //- rjf: WIFEXITED(status) -> thread exit - B32 thread_exit = 0; - U64 exit_code = 0; - if(wifexited) - { - thread_exit = 1; - } - - //- rjf: WIFEXITED(status) -> thread exit w/ exit code - else if(wifsignaled) - { - exit_code = WTERMSIG(status); - thread_exit = 1; - } - - //- rjf: SIGTRAP:PTRACE_EVENT_EXIT - else if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_EXIT) - { - // TODO(rjf): verify - thread_exit = 1; - } - - //- rjf: SIGTRAP:PTRACE_EVENT_CLONE - else if(wifstopped && wstopsig == SIGTRAP && ptrace_event_code == PTRACE_EVENT_CLONE) - { - // TODO(rjf) - } - - //- rjf: SIGTRAP:PTRACE_EVENT_FORK, or SIGTRAP:PTRACE_EVENT_VFORK - else if(wifstopped && wstopsig == SIGTRAP && - (ptrace_event_code == PTRACE_EVENT_FORK || - ptrace_event_code == PTRACE_EVENT_VFORK)) - { - } - - //- rjf: SIGTRAP - else if(wifstopped && wstopsig == SIGTRAP) - { - // rjf: this is the single step thread => this is a single step completion - DMN_EventKind e_kind = DMN_EventKind_Trap; - if(thread == single_step_thread) - { - e_kind = DMN_EventKind_SingleStep; - } - - // rjf: this matches a specified trap => breakpoint - { - // TODO(rjf) - } - - // rjf: after breakpoint -> rollback - if(e_kind == DMN_EventKind_Breakpoint) - { - // TODO(rjf) - } - - // rjf: push event - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = e_kind; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); - e->instruction_pointer = rip; - } - - //- rjf: WSTOPSIG(status) is SIGSTOP - else if(wifstopped && wstopsig == SIGSTOP) - { - // - // TODO(rjf): how do we tell the following apart?: - // - SIGSTOP All-Stop - // - SIGSTOP Halt - // - SIGSTOP "User" - // - // we are currently just assuming that, if we've queried a SIGSTOP to halt, then - // the first one that comes back is our "dummy" sigstop. this is likely not - // necessarily true. - // - if(thread->expecting_dummy_sigstop) - { - thread->expecting_dummy_sigstop = 0; - done = 0; - } - else if(dmn_lnx_state->has_halt_injection) - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_Halt; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); - } - else - { - // TODO(rjf): study this case; old notes: - // - // a signal we don't want to mess with (except to record that it - // happened maybe) we should "hand it back" - } - } - - //- rjf: WSTOPSIG(status) is an unrecoverable exception (unless user does something to fix state first) - else if(wifstopped) - { - // TODO(rjf): possible cases: - // SIGABRT - // SIGFPE - // SIGSEGV - // SIGILL - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_Exception; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); - e->instruction_pointer = rip; - e->signo = wstopsig; - } - - //- rjf: thread exit, thread is process' "root thread" -> eliminate this entire entity subtree - if(thread_exit && thread_is_process_root) - { - // rjf: generate exit-thread / unload-module events - for(DMN_LNX_Entity *child = process->first; child != &dmn_lnx_nil_entity; child = child->next) - { - switch(child->kind) - { - default:{}break; - case DMN_LNX_EntityKind_Thread: - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_ExitThread; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(child); - }break; - case DMN_LNX_EntityKind_Module: - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_UnloadModule; - e->process = dmn_lnx_handle_from_entity(process); - e->module = dmn_lnx_handle_from_entity(child); - // TODO(rjf): e->string = ...; - }break; - } - } - - // rjf: generate exit process event - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_ExitProcess; - e->process = dmn_lnx_handle_from_entity(process); - e->code = exit_code; - } - - // rjf: eliminate entity tree - dmn_lnx_entity_release(process); - } - - //- rjf: thread exit, thread is *not* process root -> just exit this one thread - if(thread_exit && !thread_is_process_root) - { - DMN_Event *e = dmn_event_list_push(arena, &evts); - e->kind = DMN_EventKind_ExitThread; - e->process = dmn_lnx_handle_from_entity(process); - e->thread = dmn_lnx_handle_from_entity(thread); - dmn_lnx_entity_release(thread); - } - } - - //////////////////////////// - //- rjf: stop all threads - // - for(DMN_LNX_EntityNode *n = first_ran_thread; n != 0; n = n->next) - { - DMN_LNX_Entity *thread = n->v; - pid_t thread_id = (pid_t)thread->id; - if(thread_id != final_wait_pid) - { - union sigval sv = {0}; - sigqueue(thread_id, SIGSTOP, sv); - thread->expecting_dummy_sigstop = 1; - } - } - - ////////////////////////// - //- rjf: restore original memory at trap locations - // - ProfScope("restore original memory at trap locations") - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) - { - DMN_Trap *trap = n->v+n_idx; - if(trap->flags == 0) - { - U8 og_byte = trap_swap_bytes[trap_idx]; - if(og_byte != 0xCC) - { - dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &og_byte); - } - } - } - } - } - - scratch_end(scratch); - } - return evts; -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Halting (Implemented Per-OS) - -internal void -dmn_halt(U64 code, U64 user_data) -{ - if(!dmn_lnx_state->has_halt_injection) - { - DMN_LNX_Entity *process = dmn_lnx_state->entities_base->first; - if(process != &dmn_lnx_nil_entity) - { - union sigval sv = {0}; - if(sigqueue(process->id, SIGSTOP, sv) != -1) - { - dmn_lnx_state->has_halt_injection = 1; - dmn_lnx_state->halt_code = code; - dmn_lnx_state->halt_user_data = user_data; - } - } - } -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) - -//- rjf: non-blocking-control-thread access barriers - -internal B32 -dmn_access_open(void) -{ - B32 result = 0; - if(dmn_lnx_ctrl_thread) - { - result = 1; - } - else - { - mutex_take(dmn_lnx_state->access_mutex); - result = !dmn_lnx_state->access_run_state; - } - return result; -} - -internal void -dmn_access_close(void) -{ - if(!dmn_lnx_ctrl_thread) - { - mutex_drop(dmn_lnx_state->access_mutex); - } -} - -//- rjf: processes - -internal U64 -dmn_process_memory_reserve(DMN_Handle process, U64 vaddr, U64 size) -{ - return 0; -} - -internal void -dmn_process_memory_commit(DMN_Handle process, U64 vaddr, U64 size) -{ -} - -internal void -dmn_process_memory_decommit(DMN_Handle process, U64 vaddr, U64 size) -{ -} - -internal void -dmn_process_memory_release(DMN_Handle process, U64 vaddr, U64 size) -{ -} - -internal void -dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, OS_AccessFlags flags) -{ -} - -internal U64 -dmn_process_read(DMN_Handle process, Rng1U64 range, void *dst) -{ - DMN_LNX_Entity *entity = dmn_lnx_entity_from_handle(process); - U64 result = dmn_lnx_read(entity->fd, range, dst); - return result; -} - -internal B32 -dmn_process_write(DMN_Handle process, Rng1U64 range, void *src) -{ - DMN_LNX_Entity *entity = dmn_lnx_entity_from_handle(process); - B32 result = dmn_lnx_write(entity->fd, range, src); - return result; -} - -//- rjf: threads - -internal Arch -dmn_arch_from_thread(DMN_Handle handle) -{ - DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); - return thread->arch; -} - -internal U64 -dmn_stack_base_vaddr_from_thread(DMN_Handle handle) -{ - return 0; -} - -internal U64 -dmn_tls_root_vaddr_from_thread(DMN_Handle handle) -{ - return 0; -} - -internal B32 -dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); - result = dmn_lnx_thread_read_reg_block(thread, reg_block); - } - return result; -} - -internal B32 -dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_LNX_Entity *thread = dmn_lnx_entity_from_handle(handle); - result = dmn_lnx_thread_write_reg_block(thread, reg_block); - } - return result; -} - -//- rjf: system process listing - -internal void -dmn_process_iter_begin(DMN_ProcessIter *iter) -{ - DIR *dir = opendir("/proc"); - MemoryZeroStruct(iter); - iter->v[0] = IntFromPtr(dir); -} - -internal B32 -dmn_process_iter_next(Arena *arena, DMN_ProcessIter *iter, DMN_ProcessInfo *info_out) -{ - // rjf: scan for the next process ID in the directory - B32 got_pid = 0; - String8 pid_string = {0}; - { - DIR *dir = (DIR*)PtrFromInt(iter->v[0]); - if(dir != 0 && iter->v[1] == 0) - { - for(;;) - { - // rjf: get next entry - struct dirent *d = readdir(dir); - if(d == 0) - { - break; - } - - // rjf: check file name is integer - String8 file_name = str8_cstring((char*)d->d_name); - B32 is_integer = str8_is_integer(file_name, 10); - - // rjf: break on integers (which represent processes) - if(is_integer) - { - got_pid = 1; - pid_string = file_name; - break; - } - } - } - } - - // rjf: if we found a process id, map id => info - B32 result = 0; - if(got_pid) - { - pid_t pid = u64_from_str8(pid_string, 10); - String8 name = dmn_lnx_exe_path_from_pid(arena, pid); - if(name.size == 0) - { - name = str8_lit("(unknown process)"); - } - info_out->name = name; - info_out->pid = pid; - result = 1; - } - - return result; -} - -internal void -dmn_process_iter_end(DMN_ProcessIter *iter) -{ - DIR *dir = (DIR*)PtrFromInt(iter->v[0]); - if(dir != 0) - { - closedir(dir); - } - MemoryZeroStruct(iter); -} diff --git a/src/demon/linux/demon_core_linux.h b/src/demon/linux/demon_core_linux.h deleted file mode 100644 index 297fdb3a..00000000 --- a/src/demon/linux/demon_core_linux.h +++ /dev/null @@ -1,337 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef DEMON_CORE_LINUX_H -#define DEMON_CORE_LINUX_H - -//////////////////////////////// -//~ rjf: Includes - -#include -#include -#include -#include -#include -#include -#include -#include - -//////////////////////////////// -//~ rjf: ptrace options - -#define DMN_LNX_PTRACE_OPTIONS (PTRACE_O_TRACEEXIT|\ -PTRACE_O_EXITKILL|\ -PTRACE_O_TRACEFORK|\ -PTRACE_O_TRACEVFORK|\ -PTRACE_O_TRACECLONE) - -//////////////////////////////// -//~ rjf: Register Layouts -// -// These are defined in , but only for one architecture at a time - -#pragma pack(push, 1) - -typedef struct DMN_LNX_UserRegsX64 DMN_LNX_UserRegsX64; -struct DMN_LNX_UserRegsX64 -{ - U64 r15; - U64 r14; - U64 r13; - U64 r12; - U64 rbp; - U64 rbx; - U64 r11; - U64 r10; - U64 r9; - U64 r8; - U64 rax; - U64 rcx; - U64 rdx; - U64 rsi; - U64 rdi; - U64 orig_rax; - U64 rip; - U64 cs; - U64 rflags; - U64 rsp; - U64 ss; - U64 fsbase; - U64 gsbase; - U64 ds; - U64 es; - U64 fs; - U64 gs; -}; - -typedef struct DMN_LNX_XSaveLegacy DMN_LNX_XSaveLegacy; -struct DMN_LNX_XSaveLegacy -{ - U16 fcw; - U16 fsw; - U16 ftw; - U16 fop; - union - { - struct - { - U64 fip; - U64 fdp; - } b64; - struct - { - U32 fip; - U16 fcs, _pad0; - U32 fdp; - U16 fds, _pad1; - } b32; - }; - U32 mxcsr; - U32 mxcsr_mask; - U128 st_space; - U256 xmm_space; - U8 padding[96]; -}; - -typedef struct DMN_LNX_XSaveHeader DMN_LNX_XSaveHeader; -struct DMN_LNX_XSaveHeader -{ - U64 xstate_bv; - U64 xcomp_bv; - U8 reserved[48]; -}; - -// TODO(rjf): -// -// this one is hacked; ymmh is not gauranteed to be at a fixed location -// and there can be more after that. Requires CPUID to be totally compliant to the standard. -// See intel's manual on the xsave format for more info. -// -typedef struct DMN_LNX_XSave DMN_LNX_XSave; -struct DMN_LNX_XSave -{ - DMN_LNX_XSaveLegacy legacy; - DMN_LNX_XSaveHeader header; - U8 ymmh[256]; -}; - -typedef struct DMN_LNX_UserX64 DMN_LNX_UserX64; -struct DMN_LNX_UserX64 -{ - DMN_LNX_UserRegsX64 regs; - S32 u_fpvalid, _pad0; - DMN_LNX_XSaveLegacy i387; - U64 u_tsize, u_dsize, u_ssize, start_code, start_stack; - U64 signal; - S32 reserved, _pad1; - U64 u_ar0, u_fpstate; - U64 magic; - U8 u_comm[32]; - U64 u_debugreg[8]; -}; - -typedef struct DMN_LNX_UserRegsX86 DMN_LNX_UserRegsX86; -struct DMN_LNX_UserRegsX86 -{ - U32 ebx; - U32 ecx; - U32 edx; - U32 esi; - U32 edi; - U32 ebp; - U32 eax; - U32 ds; - U32 es; - U32 fs; - U32 gs; - U32 orig_eax; - U32 eip; - U32 cs; - U32 eflags; - U32 sp; - U32 ss; -}; - -// NOTE(rjf): (32-Bit Protected Mode Format) -typedef struct DMN_LNX_FSave DMN_LNX_FSave; -struct DMN_LNX_FSave -{ - // control registers - U16 fcw; - U16 _pad0; - U16 fsw; - U16 _pad1; - U16 ftw; - U16 _pad2; - U32 fip; - U16 fips; - U16 fop; - U32 fdp; - U16 fds; - U16 _pad3; - - // data registers - U8 st[80]; -}; - -typedef struct DMN_LNX_UserX86 DMN_LNX_UserX86; -struct DMN_LNX_UserX86 -{ - DMN_LNX_UserRegsX86 regs; - S32 u_fpvalid; - DMN_LNX_FSave i387; - U32 u_tsize, u_dsize, u_ssize, start_code, start_stack; - S32 signal, reserved; - U32 u_ar0, u_fpstate; - U32 magic; - U8 u_comm[32]; - U32 u_debugreg[8]; -}; - -#pragma pack(pop) - -//////////////////////////////// -//~ rjf: Process Info Extraction Types - -typedef struct DMN_LNX_ProcessAux DMN_LNX_ProcessAux; -struct DMN_LNX_ProcessAux -{ - B32 filled; - U64 phnum; - U64 phent; - U64 phdr; - U64 execfn; - U64 pagesz; -}; - -typedef struct DMN_LNX_PhdrInfo DMN_LNX_PhdrInfo; -struct DMN_LNX_PhdrInfo -{ - Rng1U64 range; - U64 dynamic; -}; - -typedef struct DMN_LNX_ModuleInfo DMN_LNX_ModuleInfo; -struct DMN_LNX_ModuleInfo -{ - Rng1U64 vaddr_range; - U64 name; -}; - -typedef struct DMN_LNX_ModuleInfoNode DMN_LNX_ModuleInfoNode; -struct DMN_LNX_ModuleInfoNode -{ - DMN_LNX_ModuleInfoNode *next; - DMN_LNX_ModuleInfo v; -}; - -typedef struct DMN_LNX_ModuleInfoList DMN_LNX_ModuleInfoList; -struct DMN_LNX_ModuleInfoList -{ - DMN_LNX_ModuleInfoNode *first; - DMN_LNX_ModuleInfoNode *last; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Entity Types - -typedef enum DMN_LNX_EntityKind -{ - DMN_LNX_EntityKind_Null, - DMN_LNX_EntityKind_Root, - DMN_LNX_EntityKind_Process, - DMN_LNX_EntityKind_Thread, - DMN_LNX_EntityKind_Module, - DMN_LNX_EntityKind_COUNT -} -DMN_LNX_EntityKind; - -typedef struct DMN_LNX_Entity DMN_LNX_Entity; -struct DMN_LNX_Entity -{ - DMN_LNX_Entity *first; - DMN_LNX_Entity *last; - DMN_LNX_Entity *next; - DMN_LNX_Entity *prev; - DMN_LNX_Entity *parent; - DMN_LNX_EntityKind kind; - U32 gen; - Arch arch; - U64 id; - int fd; - B32 expecting_dummy_sigstop; -}; - -typedef struct DMN_LNX_EntityNode DMN_LNX_EntityNode; -struct DMN_LNX_EntityNode -{ - DMN_LNX_EntityNode *next; - DMN_LNX_Entity *v; -}; - -//////////////////////////////// -//~ rjf: Main State Bundle - -typedef struct DMN_LNX_State DMN_LNX_State; -struct DMN_LNX_State -{ - Arena *arena; - - // rjf: access locking mechanism - Mutex access_mutex; - B32 access_run_state; - - // rjf: deferred events - Arena *deferred_events_arena; - DMN_EventList deferred_events; - - // rjf: entity storage - Arena *entities_arena; - DMN_LNX_Entity *entities_base; - U64 entities_count; - DMN_LNX_Entity *free_entity; - - // rjf: halting mechanism - B32 has_halt_injection; - U64 halt_code; - U64 halt_user_data; -}; - -read_only global DMN_LNX_Entity dmn_lnx_nil_entity = {&dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity, &dmn_lnx_nil_entity}; -global DMN_LNX_State *dmn_lnx_state = 0; -thread_static B32 dmn_lnx_ctrl_thread = 0; - -//////////////////////////////// -//~ rjf: Helpers - -//- rjf: file descriptor memory reading/writing helpers -internal U64 dmn_lnx_read(int memory_fd, Rng1U64 range, void *dst); -internal B32 dmn_lnx_write(int memory_fd, Rng1U64 range, void *src); -#define dmn_lnx_read_struct(fd, vaddr, ptr) dmn_lnx_read((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) -#define dmn_lnx_write_struct(fd, vaddr, ptr) dmn_lnx_write((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) -internal String8 dmn_lnx_read_string(Arena *arena, int memory_fd, U64 base_vaddr); - -//- rjf: pid => info extraction -internal String8 dmn_lnx_exe_path_from_pid(Arena *arena, pid_t pid); -internal Arch dmn_lnx_arch_from_pid(pid_t pid); -internal DMN_LNX_ProcessAux dmn_lnx_aux_from_pid(pid_t pid, Arch arch); - -//- rjf: phdr info extraction -internal DMN_LNX_PhdrInfo dmn_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phsize, U64 phcount); - -//- rjf: process entity => info extraction -internal DMN_LNX_ModuleInfoList dmn_lnx_module_info_list_from_process(Arena *arena, DMN_LNX_Entity *process); - -//////////////////////////////// -//~ rjf: Entity Functions - -internal DMN_LNX_Entity *dmn_lnx_entity_alloc(DMN_LNX_Entity *parent, DMN_LNX_EntityKind kind); -internal void dmn_lnx_entity_release(DMN_LNX_Entity *entity); -internal DMN_Handle dmn_lnx_handle_from_entity(DMN_LNX_Entity *entity); -internal DMN_LNX_Entity *dmn_lnx_entity_from_handle(DMN_Handle handle); -internal DMN_LNX_Entity *dmn_lnx_thread_from_pid(pid_t pid); -internal B32 dmn_lnx_thread_read_reg_block(DMN_LNX_Entity *thread, void *reg_block); -internal B32 dmn_lnx_thread_write_reg_block(DMN_LNX_Entity *thread, void *reg_block); - -#endif // DEMON_CORE_LINUX_H diff --git a/src/demon/linux/demon_os_linux.c b/src/demon/linux/demon_os_linux.c deleted file mode 100644 index 39c1aa1f..00000000 --- a/src/demon/linux/demon_os_linux.c +++ /dev/null @@ -1,2106 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -// TODO(allen): run controls: ignore_previous_exception - -//////////////////////////////// -//~ allen: Elf Parsing Code - -#include "syms/syms_elf_inc.c" - -//////////////////////////////// -//~ rjf: Globals - -global B32 demon_lnx_already_has_halt_injection = false; -global U64 demon_lnx_halt_code = 0; -global U64 demon_lnx_halt_user_data = 0; - -global B32 demon_lnx_new_process_pending = false; - -global Arena *demon_lnx_event_arena = 0; -global DEMON_EventList demon_lnx_queued_events = {0}; - -global U32 demon_lnx_ptrace_options = (PTRACE_O_TRACEEXIT| - PTRACE_O_EXITKILL| - PTRACE_O_TRACEFORK| - PTRACE_O_TRACEVFORK| - PTRACE_O_TRACECLONE); - -//////////////////////////////// -//~ rjf: Helpers - -internal DEMON_LNX_ThreadExt* -demon_lnx_thread_ext(DEMON_Entity *entity){ - DEMON_LNX_ThreadExt *result = (DEMON_LNX_ThreadExt*)&entity->ext; - return(result); -} - -internal B32 -demon_lnx_attach_pid(Arena *arena, pid_t pid, DEMON_LNX_AttachNode **new_node){ - B32 result = false; - - int attach_result = ptrace(PTRACE_ATTACH, pid, 0, 0); - if (attach_result == -1){ - // TODO(allen): attach denied - } - else{ - // return a new attachment node as soon as the ptrace exists. we use these nodes - // for cleanup on failure *and* for initializing on success. either way we need - // to see all new attachments whether or not they fully initialized correctly. - DEMON_LNX_AttachNode *proc_attachment = push_array_no_zero(arena, DEMON_LNX_AttachNode, 1); - proc_attachment->next = 0; - proc_attachment->pid = pid; - *new_node = proc_attachment; - - int status = 0; - pid_t wait_id = waitpid(pid, &status, __WALL); - // NOTE(allen): if wait_id != pid we don't know what that means; study that case before - // deciding how error handling around it works. - if (wait_id == pid){ - int setoptions_result = ptrace(PTRACE_SETOPTIONS, pid, 0, PtrFromInt(demon_lnx_ptrace_options)); - if (setoptions_result == -1){ - // TODO(allen): setup failed - } - else{ - result = true; - } - } - } - - return(result); -} - -internal String8 -demon_lnx_executable_path_from_pid(Arena *arena, pid_t pid){ - // get symbolic path - Temp scratch = scratch_begin(&arena, 1); - String8 exe_symbol_path = push_str8f(scratch.arena, "/proc/%d/exe", pid); - - // try to read the link for a bit - Temp restore_point = temp_begin(arena); - B32 got_final_result = false; - U8 *buffer = 0; - int size = 0; - S64 cap = PATH_MAX; - for (S64 r = 0; r < 4; cap *= 2, r += 1){ - temp_end(restore_point); - buffer = push_array_no_zero(arena, U8, cap); - size = readlink((char*)exe_symbol_path.str, (char*)buffer, cap); - if (size < cap){ - got_final_result = true; - break; - } - } - - // finalize result - String8 result = {0}; - if (!got_final_result || size == -1){ - temp_end(restore_point); - } - else{ - arena_pop(arena, (cap - size - 1)); - result = str8(buffer, size + 1); - } - - scratch_end(scratch); - return(result); -} - -internal int -demon_lnx_open_memory_fd_for_pid(pid_t pid){ - Temp scratch = scratch_begin(0, 0); - String8 memory_path = push_str8f(scratch.arena, "/proc/%i/mem", pid); - int result = open((char*)memory_path.str, O_RDWR); - scratch_end(scratch); - return(result); -} - -internal Arch -demon_lnx_arch_from_pid(pid_t pid){ - Temp scratch = scratch_begin(0, 0); - Arch result = Arch_Null; - - // exe path - String8 exe_path = demon_lnx_executable_path_from_pid(scratch.arena, pid); - - // handle to exe - int exe_fd = -1; - if (exe_path.size != 0){ - exe_fd = open((char*)exe_path.str, O_RDONLY); - } - - // elf identification - B32 is_elf = false; - U8 e_ident[SYMS_ElfIdentifier_NIDENT] = {0}; - if (exe_fd >= 0){ - if (pread(exe_fd, e_ident, sizeof(e_ident), 0) == sizeof(e_ident)){ - is_elf = (e_ident[SYMS_ElfIdentifier_MAG0] == 0x7f && - e_ident[SYMS_ElfIdentifier_MAG1] == 'E' && - e_ident[SYMS_ElfIdentifier_MAG2] == 'L' && - e_ident[SYMS_ElfIdentifier_MAG3] == 'F'); - } - } - - // elf class - U8 elf_class = 0; - if (is_elf){ - elf_class = e_ident[SYMS_ElfIdentifier_CLASS]; - } - - // exe header data - SYMS_ElfEhdr64 ehdr = {0}; - switch (elf_class){ - case 1: - { - SYMS_ElfEhdr32 ehdr32 = {0}; - if (pread(exe_fd, &ehdr32, sizeof(ehdr32), 0) == sizeof(ehdr32)){ - ehdr = syms_elf_ehdr64_from_ehdr32(ehdr32); - } - }break; - - case 2: - { - pread(exe_fd, &ehdr, sizeof(ehdr), 0); - }break; - } - - // determine machine type - switch (ehdr.e_machine){ - case SYMS_ElfMachineKind_386: - { - result = Arch_x86; - }break; - - case SYMS_ElfMachineKind_ARM: - { - result = Arch_arm32; - }break; - - case SYMS_ElfMachineKind_X86_64: - { - result = Arch_x64; - }break; - - case SYMS_ElfMachineKind_AARCH64: - { - result = Arch_arm64; - }break; - } - - scratch_end(scratch); - return(result); -} - -internal DEMON_LNX_ProcessAux -demon_lnx_aux_from_pid(pid_t pid, Arch arch){ - DEMON_LNX_ProcessAux result = {0}; - B32 addr_32bit = (arch == Arch_x86 || arch == Arch_arm32); - - // open aux data - Temp scratch = scratch_begin(0, 0); - String8 auxv_symbol_path = push_str8f(scratch.arena, "/proc/%d/auxv", pid); - int aux_fd = open((char*)auxv_symbol_path.str, O_RDONLY); - - // scan aux data - if (aux_fd >= 0){ - for (;;){ - result.filled = true; - - // read next aux - U64 type = 0; - U64 val = 0; - if (addr_32bit){ - SYMS_ElfAuxv32 aux; - if (read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)){ - goto brkloop; - } - type = aux.a_type; - val = aux.a_val; - } - else{ - SYMS_ElfAuxv64 aux; - if (read(aux_fd, &aux, sizeof(aux)) != sizeof(aux)){ - goto brkloop; - } - type = aux.a_type; - val = aux.a_val; - } - - // place value in result - switch (type){ - default:break; - case SYMS_ElfAuxType_NULL: goto brkloop; break; - case SYMS_ElfAuxType_PHNUM: result.phnum = val; break; - case SYMS_ElfAuxType_PHENT: result.phent = val; break; - case SYMS_ElfAuxType_PHDR: result.phdr = val; break; - case SYMS_ElfAuxType_EXECFN: result.execfn = val; break; - } - } - brkloop:; - - close(aux_fd); - } - - scratch_end(scratch); - return(result); -} - -internal DEMON_LNX_PhdrInfo -demon_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, U64 phvaddr, U64 phentsize, U64 phcount){ - DEMON_LNX_PhdrInfo result = {0}; - result.range.min = max_U64; - - // how much phdr will we read? - U64 phdr_size_expected = (is_32bit?sizeof(SYMS_ElfPhdr32):sizeof(SYMS_ElfPhdr64)); - U64 phdr_stride = (phentsize?phentsize:phdr_size_expected); - U64 phdr_read_size = ClampTop(phdr_stride, phdr_size_expected); - - // scan table - U64 va = phvaddr; - for (U64 i = 0; i < phcount; i += 1, va += phdr_stride){ - - // get type and range - SYMS_ElfPKind p_type = 0; - U64 p_vaddr = 0; - U64 p_memsz = 0; - - if (is_32bit){ - SYMS_ElfPhdr32 phdr32 = {0}; - demon_lnx_read_memory(memory_fd, &phdr32, va, phdr_read_size); - p_type = phdr32.p_type; - p_vaddr = phdr32.p_vaddr; - p_memsz = phdr32.p_memsz; - } - else{ - SYMS_ElfPhdr64 phdr64 = {0}; - demon_lnx_read_memory(memory_fd, &phdr64, va, phdr_read_size); - p_type = phdr64.p_type; - p_vaddr = phdr64.p_vaddr; - p_memsz = phdr64.p_memsz; - } - - // save useful info - switch (p_type){ - case SYMS_ElfPKind_Dynamic: - { - result.dynamic = p_vaddr; - }break; - case SYMS_ElfPKind_Load: - { - U64 min = p_vaddr; - U64 max = p_vaddr + p_memsz; - result.range.min = Min(result.range.min, min); - result.range.max = Max(result.range.max, max); - }break; - } - } - - return(result); -} - -internal DEMON_LNX_ModuleNode* -demon_lnx_module_list_from_process(Arena *arena, DEMON_Entity *process){ - Arch arch = (Arch)process->arch; - B32 is_32bit = (arch == Arch_x86 || arch == Arch_arm32); - int memory_fd = (int)process->ext_u64; - - // aux from pid - DEMON_LNX_ProcessAux aux = demon_lnx_aux_from_pid((pid_t)process->id, arch); - - // extract info from program headers - DEMON_LNX_PhdrInfo phdr_info = demon_lnx_phdr_info_from_memory(memory_fd, is_32bit, - aux.phdr, aux.phent, aux.phnum); - - // linkmap first from memory space & dyn address - U64 first_linkmap_va = 0; - if (phdr_info.dynamic != 0){ - U64 off = phdr_info.dynamic; - for (;;){ - SYMS_ElfDyn64 dyn = {0}; - if (is_32bit){ - SYMS_ElfDyn32 dyn32 = {0}; - demon_lnx_read_memory(memory_fd, &dyn32, off, sizeof(dyn32)); - dyn.tag = dyn32.tag; - dyn.val = dyn32.val; - off += sizeof(dyn32); - } - else{ - demon_lnx_read_memory(memory_fd, &dyn, off, sizeof(dyn)); - off += sizeof(dyn); - } - - if (dyn.tag == SYMS_ElfDynTag_NULL){ - break; - } - - if (dyn.tag == SYMS_ElfDynTag_PLTGOT){ - // True for x86 and x64 - // vas[0] virtual address of .dynamic - // vas[2] callback for resolving function address of relocation and if successful jumps to it. - // - // Code that sets up PLTGOT is in glibc/sysdeps/x86_64/dl_machine.h -> elf_machine_runtime_setup - U64 vas_off = dyn.val; - U64 vas[3] = {0}; - demon_lnx_read_memory(memory_fd, vas, vas_off, sizeof(vas)); - first_linkmap_va = vas[1]; - break; - } - } - } - - // setup output list - DEMON_LNX_ModuleNode *first = 0; - DEMON_LNX_ModuleNode *last = 0; - - // main module - { - DEMON_LNX_ModuleNode *node = push_array(arena, DEMON_LNX_ModuleNode, 1); - SLLQueuePush(first, last, node); - node->vaddr = phdr_info.range.min; - node->size = phdr_info.range.max - phdr_info.range.min; - node->name = aux.execfn; - } - - // iterate link maps - if (first_linkmap_va != 0){ - U64 linkmap_va = first_linkmap_va; - - for (;;){ - SYMS_ElfLinkMap64 linkmap = {0}; - if (is_32bit){ - // TOOD(nick): endian awarness - SYMS_ElfLinkMap32 linkmap32 = {0}; - demon_lnx_read_memory(memory_fd, &linkmap32, linkmap_va, sizeof(linkmap32)); - linkmap.base = linkmap32.base; - linkmap.name = linkmap32.name; - linkmap.ld = linkmap32.ld; - linkmap.next = linkmap32.next; - } - else{ - demon_lnx_read_memory(memory_fd, &linkmap, linkmap_va, sizeof(linkmap)); - } - - if (linkmap.base != 0){ - // find phdrs for this module - SYMS_U64 phvaddr = 0; - SYMS_U64 phentsize = 0; - SYMS_U64 phcount = 0; - - if (is_32bit){ - SYMS_ElfEhdr32 ehdr = {0}; - demon_lnx_read_memory(memory_fd, &ehdr, linkmap.base, sizeof(ehdr)); - phvaddr = ehdr.e_phoff + linkmap.base; - phentsize = ehdr.e_phentsize; - phcount = ehdr.e_phnum; - } - else{ - SYMS_ElfEhdr64 ehdr = {0}; - demon_lnx_read_memory(memory_fd, &ehdr, linkmap.base, sizeof(ehdr)); - phvaddr = ehdr.e_phoff + linkmap.base; - phentsize = ehdr.e_phentsize; - phcount = ehdr.e_phnum; - } - - // extract info from phdrs - DEMON_LNX_PhdrInfo module_phdr_info = demon_lnx_phdr_info_from_memory(memory_fd, is_32bit, - phvaddr, phentsize, phcount); - - // save module node - DEMON_LNX_ModuleNode *node = push_array(arena, DEMON_LNX_ModuleNode, 1); - SLLQueuePush(first, last, node); - node->vaddr = linkmap.base; - node->size = module_phdr_info.range.max - module_phdr_info.range.min; - node->name = linkmap.name; - } - - linkmap_va = linkmap.next; - if (linkmap_va == 0){ - break; - } - } - } - - return(first); -} - -internal U64 -demon_lnx_read_memory(int memory_fd, void *dst, U64 src, U64 size){ - U64 bytes_read = 0; - U8 *ptr = (U8*)dst; - U8 *opl = ptr + size; - U64 cursor = src; - for (;ptr < opl;){ - size_t to_read = (size_t)(opl - ptr); - ssize_t actual_read = pread(memory_fd, ptr, to_read, cursor); - if (actual_read == -1){ - break; - } - ptr += actual_read; - cursor += actual_read; - bytes_read += actual_read; - } - return(bytes_read); -} - -internal B32 -demon_lnx_write_memory(int memory_fd, U64 dst, void *src, U64 size){ - B32 result = true; - U8 *ptr = (U8*)src; - U8 *opl = ptr + size; - U64 cursor = dst; - for (;ptr < opl;){ - size_t to_write = (size_t)(opl - ptr); - ssize_t actual_write = pwrite(memory_fd, ptr, to_write, cursor); - if (actual_write == -1){ - result = false; - break; - } - ptr += actual_write; - cursor += actual_write; - } - return(result); -} - -internal String8 -demon_lnx_read_memory_str(Arena *arena, int memory_fd, U64 address){ - // TODO(allen): this could be done better with a demon_lnx_read_memory - // that returns a read amount instead of a success/fail. - - // scan piece by piece - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - U64 max_cap = 256; - U64 cap = max_cap; - U64 read_p = address; - for (;;){ - U8 *block = push_array(scratch.arena, U8, cap); - for (;cap > 0;){ - if (demon_lnx_read_memory(memory_fd, block, read_p, cap)){ - break; - } - cap /= 2; - } - read_p += cap; - - U64 block_opl = 0; - for (;block_opl < cap; block_opl += 1){ - if (block[block_opl] == 0){ - break; - } - } - - if (block_opl > 0){ - str8_list_push(scratch.arena, &list, str8(block, block_opl)); - } - - if (block_opl < cap || cap == 0){ - break; - } - } - - // assemble results - String8 result = str8_list_join(arena, &list, 0); - scratch_end(scratch); - return(result); -} - -internal void -demon_lnx_regs_x64_from_usr_regs_x64(SYMS_RegX64 *dst, DEMON_LNX_UserRegsX64 *src){ - dst->rax.u64 = src->rax; - dst->rcx.u64 = src->rcx; - dst->rdx.u64 = src->rdx; - dst->rbx.u64 = src->rbx; - dst->rsp.u64 = src->rsp; - dst->rbp.u64 = src->rbp; - dst->rsi.u64 = src->rsi; - dst->rdi.u64 = src->rdi; - dst->r8.u64 = src->r8; - dst->r9.u64 = src->r9; - dst->r10.u64 = src->r10; - dst->r11.u64 = src->r11; - dst->r12.u64 = src->r12; - dst->r13.u64 = src->r13; - dst->r14.u64 = src->r14; - dst->r15.u64 = src->r15; - dst->cs.u16 = src->cs; - dst->ds.u16 = src->ds; - dst->es.u16 = src->es; - dst->fs.u16 = src->fs; - dst->gs.u16 = src->gs; - dst->ss.u16 = src->ss; - dst->fsbase.u64 = src->fsbase; - dst->gsbase.u64 = src->gsbase; - dst->rip.u64 = src->rip; - dst->rflags.u64 = src->rflags; -} - -internal void -demon_lnx_usr_regs_x64_from_regs_x64(DEMON_LNX_UserRegsX64 *dst, SYMS_RegX64 *src){ - dst->rax = src->rax.u64; - dst->rcx = src->rcx.u64; - dst->rdx = src->rdx.u64; - dst->rbx = src->rbx.u64; - dst->rsp = src->rsp.u64; - dst->rbp = src->rbp.u64; - dst->rsi = src->rsi.u64; - dst->rdi = src->rdi.u64; - dst->r8 = src->r8.u64; - dst->r9 = src->r9.u64; - dst->r10 = src->r10.u64; - dst->r11 = src->r11.u64; - dst->r12 = src->r12.u64; - dst->r13 = src->r13.u64; - dst->r14 = src->r14.u64; - dst->r15 = src->r15.u64; - dst->cs = src->cs.u16; - dst->ds = src->ds.u16; - dst->es = src->es.u16; - dst->fs = src->fs.u16; - dst->gs = src->gs.u16; - dst->ss = src->ss.u16; - dst->fsbase = src->fsbase.u64; - dst->gsbase = src->gsbase.u64; - dst->rip = src->rip.u64; - dst->rflags = src->rflags.u64; -} - -//////////////////////////////// - -internal String8 -demon_lnx_read_int_string(Arena *arena, int fd, int radix){ - String8 integer = str8(0,0); - - int to_read = 0; - int to_seek = 0; - for (;;){ - char b = 0; - if (read(fd, &b, sizeof(b)) == 0){ - break; - } - to_seek += 1; - if ( ! char_is_digit(b, radix)){ - break; - } - to_read += 1; - } - - if (lseek(fd, -to_seek, SEEK_CUR) != -1) { - char *buf = push_array_no_zero(arena, char, to_read + 1); - read(fd, buf, to_read); - buf[to_read] = '\0'; - integer = str8((U8*)buf, (U64)to_read); - } - - return(integer); -} - -internal U64 -demon_lnx_read_u64(int fd, int radix){ - Temp scratch = scratch_begin(0, 0); - String8 integer = demon_lnx_read_int_string(scratch.arena, fd, radix); - U64 result = u64_from_str8(integer, radix); - scratch_end(scratch); - return(result); -} - -internal S64 -demon_lnx_read_s64(int fd, int radix){ - Temp scratch = scratch_begin(0, 0); - String8 integer = demon_lnx_read_int_string(scratch.arena, fd, radix); - S64 result = s64_from_str8(integer, radix); - scratch_end(scratch); - return(result); -} - -internal B32 -demon_lnx_read_expect(int fd, char expect){ - char got = 0; - read(fd, &got, sizeof(got)); - B32 result = (got == expect); - if (!result){ - lseek(fd, -1, SEEK_CUR); - } - return(result); -} - -internal int -demon_lnx_read_whitespace(int fd){ - int whitespace_size = 0; - for (;;){ - if (!demon_lnx_read_expect(fd, ' ')){ - if (!demon_lnx_read_expect(fd, '\t')){ - break; - } - } - whitespace_size += 1; - } - return whitespace_size; -} - -internal String8 -demon_lnx_read_string(Arena *arena, int fd){ - String8 result = str8(0,0); - - int to_read = 0; - int to_seek = 0; - for (;;){ - char b = 0; - if (read(fd, &b, sizeof(b)) == 0) { - break; - } - to_seek += 1; - if (b == '\0' || b == '\n'){ - break; - } - to_read += 1; - } - - if (to_seek > 0 && lseek(fd, -to_seek, SEEK_CUR) != -1){ - char *buf = push_array_no_zero(arena, char, to_read + 1); - read(fd, buf, to_read); - buf[to_read] = '\0'; - result = str8((U8*)buf, to_read); - } - - return(result); -} - -internal int -demon_lnx_open_maps(pid_t pid){ - Temp scratch = scratch_begin(0, 0); - String8 path = push_str8f(scratch.arena, "/proc/%d/maps", pid); - int maps = open((char*)path.str, O_RDONLY); - scratch_end(scratch); - return(maps); -} - -internal B32 -demon_lnx_next_map(Arena *arena, int maps, DEMON_LNX_MapsEntry *entry_out){ - B32 is_parsed = false; - MemoryZeroStruct(entry_out); - do{ - U64 address_lo = 0; - U64 address_hi = 0; - DEMON_LNX_PermFlags perms = 0; - U64 offset = 0; - U64 dev_major = 0; - U64 dev_minor = 0; - U64 inode = 0; - String8 pathname = str8(0,0); - - // address range - address_lo = demon_lnx_read_u64(maps, 16); - if (!demon_lnx_read_expect(maps, '-')){ - break; - } - address_hi = demon_lnx_read_u64(maps, 16); - if (demon_lnx_read_whitespace(maps) == 0){ - break; - } - - // permission flags - char b; - if (read(maps, &b, sizeof(b)) == 0){ - break; - } - if (b=='r'){ - perms |= DEMON_LNX_PermFlags_Read; - } - if (read(maps, &b, sizeof(b)) == 0){ - break; - } - if (b=='w'){ - perms |= DEMON_LNX_PermFlags_Write; - } - if (read(maps, &b, sizeof(b)) == 0){ - break; - } - if (b=='x'){ - perms |= DEMON_LNX_PermFlags_Exec; - } - if (read(maps, &b, sizeof(b)) == 0){ - break; - } - if (b == 'p'){ - perms |= DEMON_LNX_PermFlags_Private; - } - if (demon_lnx_read_whitespace(maps) == 0){ - break; - } - - // offset - offset = demon_lnx_read_u64(maps, 16); - if (demon_lnx_read_whitespace(maps) == 0){ - break; - } - - // dev - dev_major = demon_lnx_read_u64(maps, 10); - if (!demon_lnx_read_expect(maps, ':')){ - break; - } - dev_minor = demon_lnx_read_u64(maps, 10); - if (demon_lnx_read_whitespace(maps) == 0){ - break; - } - - // inode - inode = demon_lnx_read_u64(maps, 10); - if (demon_lnx_read_whitespace(maps) == 10){ - break; - } - - // pathname - pathname = demon_lnx_read_string(arena, maps); - - // emit entry if en - b = 0; - read(maps, &b, sizeof(b)); - if (b != '\n' && b != '\0') { - break; - } - - // fill result - entry_out->address_lo = address_lo; - entry_out->address_hi = address_hi; - entry_out->perms = perms; - entry_out->offset = offset; - entry_out->dev_major = (U32)dev_major; - entry_out->dev_minor = (U32)dev_minor; - entry_out->inode = inode; - entry_out->pathname = pathname; - entry_out->type = DEMON_LNX_MapsEntryType_Null; - entry_out->stack_tid = 0; - - if (str8_match(pathname, str8_lit("/"), StringMatchFlag_RightSideSloppy)){ - entry_out->type = DEMON_LNX_MapsEntryType_Path; - } else if (str8_match(pathname, str8_lit("[heap]"), 0)){ - entry_out->type = DEMON_LNX_MapsEntryType_Heap; - } else if (str8_match(pathname, str8_lit("[stack]"), 0)){ - entry_out->type = DEMON_LNX_MapsEntryType_Stack; - } else if (str8_match(pathname, str8_lit("[stack:"), StringMatchFlag_RightSideSloppy)){ - entry_out->type = DEMON_LNX_MapsEntryType_Stack; - String8 tid = str8_substr(pathname, r1u64(7, pathname.size - 8)); - entry_out->stack_tid = (pid_t)u64_from_str8(tid, 10); - } - - is_parsed = true; - }while(0); - return(is_parsed); -} - -//////////////////////////////// -//~ rjf: @demon_os_hooks Main Layer Initialization - -internal void -demon_os_init(void){ - demon_lnx_event_arena = arena_alloc(); -} - -//////////////////////////////// -//~ rjf: @demon_os_hooks Running/Halting - -internal DEMON_EventList -demon_os_run(Arena *arena, DEMON_OS_RunCtrls *controls){ - DEMON_EventList result = {0}; - - if (demon_ent_root == 0){ - demon_push_event(arena, &result, DEMON_EventKind_NotInitialized); - } - else if (demon_ent_root->first == 0 && !demon_lnx_new_process_pending){ - demon_push_event(arena, &result, DEMON_EventKind_NotAttached); - } - else{ - Temp scratch = scratch_begin(&arena, 1); - - // use queued events if there are any - if (demon_lnx_queued_events.first != 0){ - // copy event queue - for (DEMON_Event *node = demon_lnx_queued_events.first; - node != 0; - node = node->next){ - DEMON_Event *copy = push_array_no_zero(arena, DEMON_Event, 1); - MemoryCopyStruct(copy, node); - SLLQueuePush(result.first, result.last, copy); - } - result.count = demon_lnx_queued_events.count; - - // zero stored queue - MemoryZeroStruct(&demon_lnx_queued_events); - arena_clear(demon_lnx_event_arena); - } - - // get the single step thread (if any) - DEMON_Entity *single_step_thread = controls->single_step_thread; - - // do setup - B32 did_setup = false; - U8 *trap_swap_bytes = 0; - - if (result.first == 0){ - // TODO(allen): per-Arch implementation of single steps - // set single step bit - if (single_step_thread != 0){ - switch (single_step_thread->arch){ - case Arch_x86: - { - // TODO(allen): possibly buggy - SYMS_RegX86 regs = {0}; - demon_os_read_regs_x86(single_step_thread, ®s); - regs.eflags.u32 |= 0x100; - demon_os_write_regs_x86(single_step_thread, ®s); - }break; - - case Arch_x64: - { - // TODO(allen): possibly buggy - SYMS_RegX64 regs = {0}; - demon_os_read_regs_x64(single_step_thread, ®s); - regs.rflags.u64 |= 0x100; - demon_os_write_regs_x64(single_step_thread, ®s); - }break; - } - } - - // TODO(allen): per-Arch implementation of traps - trap_swap_bytes = push_array_no_zero(scratch.arena, U8, controls->trap_count); - - { - DEMON_OS_Trap *trap = controls->traps; - for (U64 i = 0; i < controls->trap_count; i += 1, trap += 1){ - if (demon_os_read_memory(trap->process, trap_swap_bytes + i, trap->address, 1)){ - U8 int3 = 0xCC; - demon_os_write_memory(trap->process, trap->address, &int3, 1); - } - else{ - trap_swap_bytes[i] = 0xCC; - } - } - } - - did_setup = true; - } - - // do run - B32 did_run = false; - if (did_setup){ - // continue non-frozen threads - DEMON_LNX_EntityNode *resume_threads = 0; - for (DEMON_Entity *process = demon_ent_root->first; - process != 0; - process = process->next){ - if (process->kind == DEMON_EntityKind_Process){ - - // determine if this process is frozen - B32 process_is_frozen = false; - if (controls->run_entities_are_processes){ - for (U64 i = 0; i < controls->run_entity_count; i += 1){ - if (controls->run_entities[i] == process){ - process_is_frozen = true; - break; - } - } - } - - for (DEMON_Entity *thread = process->first; - thread != 0; - thread = thread->next){ - if (thread->kind == DEMON_EntityKind_Thread){ - // determine if this thread is frozen - B32 is_frozen = false; - - if (controls->single_step_thread != 0 && - controls->single_step_thread != thread){ - is_frozen = true; - } - else{ - - if (controls->run_entities_are_processes){ - is_frozen = process_is_frozen; - } - else{ - for (U64 i = 0; i < controls->run_entity_count; i += 1){ - if (controls->run_entities[i] == thread){ - is_frozen = true; - break; - } - } - } - - if (controls->run_entities_are_unfrozen){ - is_frozen = !is_frozen; - } - } - - // continue if not frozen - if (!is_frozen){ - errno = 0; - ptrace(PTRACE_CONT, (pid_t)thread->id, 0, 0); - DEMON_LNX_EntityNode *thread_node = push_array_no_zero(scratch.arena, DEMON_LNX_EntityNode, 1); - SLLStackPush(resume_threads, thread_node); - thread_node->entity = thread; - } - } - } - } - } - - // get next stop - wait_for_stop: - B32 did_dummy_stop = false; - int status = 0; - pid_t wait_id = waitpid(-1, &status, __WALL); - - // increment demon time - demon_time += 1; - - // handle devent - DEMON_Entity *thread = demon_ent_map_entity_from_id(DEMON_EntityKind_Thread, wait_id); - if (thread == 0){ - if (wait_id >= 0){ - // TODO(allen): this isn't a great situation! From what I can tell there's no - // options that I am super happy with for going from unknown tid -> pid. - // We can parse it out of /proc//status; but I don't want to do that until - // I'm forced to, because it seems like this shouldn't happen if the ptrace - // API works correctly and we don't have any bugs in our demon entity system. - } - } - else{ - B32 thread_exit = false; - U64 exit_code = 0; - - DEMON_Entity *process = thread->parent; - // NOTE(allen): hitting this assert should never ever be possible, if our entities - // are wired up correctly. it doesn't matter what ptrace or waitpid are doing. - Assert(process != 0); - - // read register info - U64 instruction_pointer = 0; - union{ SYMS_RegX86 x86; SYMS_RegX64 x64; } regs = {0}; - - switch (thread->arch){ - case Arch_x86: - { - demon_os_read_regs_x86(thread, ®s.x86); - instruction_pointer = regs.x86.eip.u32; - }break; - - case Arch_x64: - { - demon_os_read_regs_x64(thread, ®s.x64); - instruction_pointer = regs.x64.rip.u64; - }break; - } - - // check stop status - if (WIFEXITED(status)){ - thread_exit = true; - } - if (WIFSIGNALED(status)){ - exit_code = WTERMSIG(status); - thread_exit = true; - } - - // extra event list - DEMON_EventList stop_events = {0}; - - if (WIFSTOPPED(status)){ - switch (WSTOPSIG(status)){ - case SIGTRAP: - { - switch (status >> 8){ - case (SIGTRAP | (PTRACE_EVENT_EXIT << 8)): - { - // TODO(allen): (not sure actually, study this part) - thread_exit = true; - }break; - - case (SIGTRAP | (PTRACE_EVENT_CLONE << 8)): - { - // new thread coming - unsigned long new_tid = 0; - int get_message_result = ptrace(PTRACE_GETEVENTMSG, wait_id, 0, &new_tid); - if (get_message_result == -1){ - // TODO(allen): this isn't right, time to give up on getting this process. - // this will likely lead to getting unrecognized wait_id s later. So we need - // this stuff in the log to make sense of it still. - } - else{ - // thread entity - DEMON_Entity *new_thread = demon_ent_new(process, DEMON_EntityKind_Thread, new_tid); - demon_thread_count += 1; - DEMON_LNX_ThreadExt *thread_ext = demon_lnx_thread_ext(new_thread); - thread_ext->expecting_dummy_sigstop = true; - - // thread event - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_CreateThread); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(new_thread); - } - }break; - - case (SIGTRAP | (PTRACE_EVENT_FORK << 8)): - case (SIGTRAP | (PTRACE_EVENT_VFORK << 8)): - { - // new process coming - unsigned long new_pid = 0; - int get_message_result = ptrace(PTRACE_GETEVENTMSG, wait_id, 0, &new_pid); - if (get_message_result == -1){ - // TODO(allen): this isn't right, time to give up on getting this process. - // this will likely lead to getting unrecognized wait_id s later. So we need - // this stuff in the log to make sense of it still. - } - else{ - Arch arch = demon_lnx_arch_from_pid(new_pid); - - // process entity - DEMON_Entity *new_process = demon_ent_new(demon_ent_root, DEMON_EntityKind_Process, new_pid); - new_process->arch = arch; - new_process->ext_u64 = demon_lnx_open_memory_fd_for_pid(new_pid); - - demon_lnx_new_process_pending = false; - - // thread entity - DEMON_Entity *new_thread = demon_ent_new(new_process, DEMON_EntityKind_Thread, new_pid); - demon_thread_count += 1; - DEMON_LNX_ThreadExt *thread_ext = demon_lnx_thread_ext(new_thread); - thread_ext->expecting_dummy_sigstop = true; - - // process event - { - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_CreateProcess); - e->process = demon_ent_handle_from_ptr(new_process); - } - - // thread event - { - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_CreateThread); - e->process = demon_ent_handle_from_ptr(new_process); - e->thread = demon_ent_handle_from_ptr(new_thread); - } - } - }break; - - default: - { - // check single step - DEMON_EventKind e_kind = DEMON_EventKind_Trap; - if (thread == single_step_thread){ - e_kind = DEMON_EventKind_SingleStep; - } - - // check bp - if (e_kind == DEMON_EventKind_Trap){ - DEMON_OS_Trap *trap = controls->traps; - for (U64 i = 0; i < controls->trap_count; i += 1, trap += 1){ - if (trap->process == process && trap->address == instruction_pointer - 1){ - e_kind = DEMON_EventKind_Breakpoint; - break; - } - } - } - - // adjust ip after breakpoint - if (e_kind == DEMON_EventKind_Breakpoint){ - // TODO(allen): possibly buggy - switch (thread->arch){ - case Arch_x86: - { - instruction_pointer -= 1; - regs.x86.eip.u32 = instruction_pointer; - demon_os_write_regs_x86(thread, ®s.x86); - }break; - - case Arch_x64: - { - instruction_pointer -= 1; - regs.x64.rip.u64 = instruction_pointer; - demon_os_write_regs_x64(thread, ®s.x64); - }break; - } - } - - // event - DEMON_Event *e = demon_push_event(arena, &stop_events, e_kind); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - e->instruction_pointer = instruction_pointer; - }break; - } - }break; - - case SIGSTOP: - { - // TODO(allen): we need to figure out how we want to tell apart: - // SIGSTOP All-Stop, SIGSTOP Halt, SIGSTOP "User" - // what we're doing right now == big-time race conditions - - DEMON_LNX_ThreadExt *thread_ext = demon_lnx_thread_ext(thread); - - if (thread_ext->expecting_dummy_sigstop){ - thread_ext->expecting_dummy_sigstop = false; - did_dummy_stop = true; - } - else if (demon_lnx_already_has_halt_injection){ - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_Halt); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - e->instruction_pointer = instruction_pointer; - } - else{ - // TODO(allen): a signal we don't want to mess with (except to record that it happened maybe) - // we should "hand it back" - } - }break; - - default: - { -#if 0 - // these are a little special. the program cannot continue after these - // unless the user first does something to change the state (move the IP, change a variable, w/e) - case SIGABRT:case SIGFPE:case SIGSEGV: -#endif - - // event - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_Exception); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - e->instruction_pointer = instruction_pointer; - e->signo = WSTOPSIG(status); - }break; - } - } - - // entity cleanup - if (thread_exit){ - if (thread->id == process->id){ - // generate events for threads & modules - for (DEMON_Entity *entity = process->first; - entity != 0; - entity = entity->next){ - if (entity->kind == DEMON_EntityKind_Thread){ - DEMON_Event *e = demon_push_event(arena, &result, DEMON_EventKind_ExitThread); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(entity); - } - else{ - DEMON_Event *e = demon_push_event(arena, &result, DEMON_EventKind_UnloadModule); - e->process = demon_ent_handle_from_ptr(process); - e->module = demon_ent_handle_from_ptr(entity); - } - } - - // exit event - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_ExitProcess); - e->process = demon_ent_handle_from_ptr(process); - e->code = exit_code; - - // free entity - demon_ent_release_root_and_children(process); - } - else{ - // exit event - DEMON_Event *e = demon_push_event(arena, &stop_events, DEMON_EventKind_ExitThread); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - e->code = exit_code; - - // free entity - demon_ent_release_root_and_children(thread); - } - } - - // update all module lists (for each process ...) - DEMON_EventList module_change_events = {0}; - - for (DEMON_Entity *proc_node = demon_ent_root->first; - proc_node != 0; - proc_node = proc_node->next){ - DEMON_LNX_ModuleNode *first_module = demon_lnx_module_list_from_process(scratch.arena, proc_node); - - DEMON_LNX_EntityNode *first_unloaded = 0; - DEMON_LNX_EntityNode *last_unloaded = 0; - - // compute the delta (mark known modules, save list of unloaded modules) - for (DEMON_Entity *entity = proc_node->first; - entity != 0; - entity = entity->next){ - if (entity->kind == DEMON_EntityKind_Module){ - U64 base = entity->id; - U64 name = entity->ext_u64; - B32 still_exists = false; - for (DEMON_LNX_ModuleNode *module_node = first_module; - module_node != 0; - module_node = module_node->next){ - if (module_node->vaddr == base && module_node->name == name){ - module_node->already_known = true; - still_exists = true; - break; - } - } - if (!still_exists){ - DEMON_LNX_EntityNode *node = push_array_no_zero(scratch.arena, DEMON_LNX_EntityNode, 1); - SLLQueuePush(first_unloaded, last_unloaded, node); - node->entity = entity; - } - } - } - - // handle unloads - for (DEMON_LNX_EntityNode *unloaded_node = first_unloaded; - unloaded_node != 0; - unloaded_node = unloaded_node->next){ - DEMON_Entity *module = unloaded_node->entity; - - // event - { - DEMON_Event *e = demon_push_event(arena, &module_change_events, DEMON_EventKind_UnloadModule); - e->process = demon_ent_handle_from_ptr(proc_node); - e->module = demon_ent_handle_from_ptr(module); - } - - // free entity - demon_ent_release_root_and_children(module); - } - - // handle loads - for (DEMON_LNX_ModuleNode *module_node = first_module; - module_node != 0; - module_node = module_node->next){ - if (!module_node->already_known){ - // entity - DEMON_Entity *module = demon_ent_new(proc_node, DEMON_EntityKind_Module, module_node->vaddr); - demon_module_count += 1; - module->ext_u64 = module_node->name; - - // event - { - DEMON_Event *e = demon_push_event(arena, &module_change_events, DEMON_EventKind_LoadModule); - e->process = demon_ent_handle_from_ptr(proc_node); - e->module = demon_ent_handle_from_ptr(module); - e->address = module_node->vaddr; - e->size = module_node->size; - } - } - } - } - - // concat the events list (with module changes first) - result.count = module_change_events.count + stop_events.count; - result.first = module_change_events.first; - result.last = module_change_events.last; - if (stop_events.first != 0){ - if (result.first != 0){ - result.last->next = stop_events.first; - result.last = stop_events.last; - } - else{ - result.first = stop_events.first; - result.last = stop_events.last; - } - } - } - - // do we have a reason to keep going? - B32 skip_this_stop = false; - if (did_dummy_stop && result.count == 0){ - skip_this_stop = true; - } - - // ignore this stop, resume and wait again - if (skip_this_stop){ - if (wait_id != 0){ - ptrace(PTRACE_CONT, (pid_t)wait_id, 0, 0); - } - goto wait_for_stop; - } - - // stop all running threads - for (DEMON_LNX_EntityNode *node = resume_threads; - node != 0; - node = node->next){ - DEMON_Entity *thread = node->entity; - pid_t thread_id = (pid_t)thread->id; - if (thread_id != wait_id){ - union sigval sv = {0}; - sigqueue(thread_id, SIGSTOP, sv); - - DEMON_LNX_ThreadExt *thread_ext = demon_lnx_thread_ext(thread); - thread_ext->expecting_dummy_sigstop = true; - } - } - - did_run = true; - } - - // cleanup - if (did_run){ - // TODO(allen): per-Arch - // unset traps - { - DEMON_OS_Trap *trap = controls->traps; - for (U64 i = 0; i < controls->trap_count; i += 1, trap += 1){ - U8 og_byte = trap_swap_bytes[i]; - if (og_byte != 0xCC){ - demon_os_write_memory(trap->process, trap->address, &og_byte, 1); - } - } - } - - // TODO(allen): per-Arch - // unset single step bit - // the single step bit is automatically unset whenever we single step - // but if *something else* happened, it will still be there ready to - // confound us later; so here we're just being sure it's taken out. - if (single_step_thread != 0){ - // TODO(allen): possibly buggy - switch (single_step_thread->arch){ - case Arch_x86: - { - SYMS_RegX86 regs = {0}; - demon_os_read_regs_x86(single_step_thread, ®s); - regs.eflags.u32 &= ~0x100; - demon_os_write_regs_x86(single_step_thread, ®s); - }break; - - case Arch_x64: - { - SYMS_RegX64 regs = {0}; - demon_os_read_regs_x64(single_step_thread, ®s); - regs.rflags.u64 &= ~0x100; - demon_os_write_regs_x64(single_step_thread, ®s); - }break; - } - } - } - - scratch_end(scratch); - } - - return(result); -} - -internal void -demon_os_halt(U64 code, U64 user_data){ - if (demon_ent_root != 0 && !demon_lnx_already_has_halt_injection){ - DEMON_Entity *process = demon_ent_root->first; - if (process != 0){ - demon_lnx_already_has_halt_injection = true; - demon_lnx_halt_code = code; - demon_lnx_halt_user_data = user_data; - union sigval sv = {0}; - if (sigqueue(process->id, SIGSTOP, sv) == -1){ - demon_lnx_already_has_halt_injection = false; - } - } - } -} - -// NOTE(allen): siginfo hint from old code: -#if 0 -{ - switch (siginfo.si_code){ - // SI_KERNEL (hit int3; 0xCC) - case 0x80: - { - // TODO(allen): breakpoint event - }break; - - // TRAP_UNK, TRAP_HWBKPT, TRAP_BRKPT, TRAP_TRACE - case 0x5: case 0x4: case 0x1: case 0x2: - { - // TODO(allen): breakpoint event (?) - }break; - - case 0x3: case 0x0: - { - // TODO(allen): do nothing I guess? - }break; - } -} -#endif - -//////////////////////////////// -//~ rjf: @demon_os_hooks Target Process Launching/Attaching/Killing/Detaching/Halting - -internal U32 -demon_os_launch_process(OS_LaunchOptions *options){ - U32 result = 0; - Temp scratch = scratch_begin(0, 0); - - // arrange options - char *binary = 0; - char **args = 0; - if (options->cmd_line.node_count > 0){ - args = push_array_no_zero(scratch.arena, char*, options->cmd_line.node_count + 1); - char **arg_ptr = args; - for (String8Node *node = options->cmd_line.first; - node != 0; - node = node->next, arg_ptr += 1){ - String8 string = push_str8_copy(scratch.arena, node->string); - *arg_ptr = (char*)string.str; - } - *arg_ptr = 0; - binary = args[0]; - } - - char *path = 0; - { - String8 string = push_str8_copy(scratch.arena, options->path); - path = (char*)string.str; - } - - char **env = 0; - if (options->env.node_count > 0){ - env = push_array_no_zero(scratch.arena, char*, options->env.node_count + 1); - char **env_ptr = env; - for (String8Node *node = options->env.first; - node != 0; - node = node->next, env_ptr += 1){ - String8 string = push_str8_copy(scratch.arena, node->string); - *env_ptr = (char*)string.str; - } - *env_ptr = 0; - } - - // fork - if (binary != 0){ - pid_t pid = fork(); - if (pid == -1){ - // TODO(allen): fork error - } - else if (pid == 0){ - // NOTE(allen): child process - int ptrace_result = ptrace(PTRACE_TRACEME, 0, 0, 0); - if (ptrace_result != -1){ - int chdir_result = chdir(path); - if (chdir_result != -1){ - execve(binary, args, env); - } - } - // failed to init fully; abort so the parent can clean up the child - abort(); - } - else{ - // NOTE(allen): parent process - - // wait for child - int status = 0; - pid_t wait_id = waitpid(pid, &status, __WALL); - - // determine child launch status - enum{ - LaunchCode_Null, - LaunchCode_FailBeforePtrace, - LaunchCode_FailAfterPtrace, - LaunchCode_Success, - }; - U32 launch_result = LaunchCode_Null; - // NOTE(allen): if wait_id != pid we don't know what that means; study that case before - // deciding how error handling around it works. - if (wait_id == pid){ - if (WIFSTOPPED(status)){ - if (WSTOPSIG(status) == SIGTRAP){ - launch_result = LaunchCode_Success; - } - else{ - launch_result = LaunchCode_FailAfterPtrace; - } - } - else{ - launch_result = LaunchCode_FailBeforePtrace; - } - } - - // handle launch result - switch (launch_result){ - default: - { - // TODO(allen): error that we do not understand - }break; - - case LaunchCode_FailBeforePtrace: - { - // TODO(allen): child ptrace init failed - }break; - - case LaunchCode_FailAfterPtrace: - { - // need to specifically pull the exit status out of the child - // or it will sit around as a zombie forever since it is ptraced. - B32 cleanup_good = false; - int detach_result = ptrace(PTRACE_DETACH, pid, 0, (void*)SIGCONT); - if (detach_result != -1){ - int status_cleanup = 0; - pid_t wait_id_cleanup = waitpid(pid, &status_cleanup, __WALL); - if (wait_id_cleanup == pid){ - cleanup_good = true; - } - } - if (cleanup_good){ - // TODO(allen): child init failed - } - else{ - // TODO(allen): child init failed; something went wrong and a process may have leaked - } - }break; - - case LaunchCode_Success: - { - int setoptions_result = ptrace(PTRACE_SETOPTIONS, pid, 0, PtrFromInt(demon_lnx_ptrace_options)); - if (setoptions_result == -1){ - // TODO(allen): ptrace setup failed; need to kill the child and clean it up - } - else{ - result = pid; - - Arch arch = demon_lnx_arch_from_pid(pid); - - // process entity - DEMON_Entity *process = demon_ent_new(demon_ent_root, DEMON_EntityKind_Process, pid); - demon_proc_count += 1; - process->arch = arch; - process->ext_u64 = demon_lnx_open_memory_fd_for_pid(pid); - - // thread entity - DEMON_Entity *thread = demon_ent_new(process, DEMON_EntityKind_Thread, pid); - demon_thread_count += 1; - - // process event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_CreateProcess); - e->process = demon_ent_handle_from_ptr(process); - } - - // thread event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_CreateThread); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - } - - // get module list - DEMON_LNX_ModuleNode *module_list = demon_lnx_module_list_from_process(scratch.arena, process); - - // for each module ... - for (DEMON_LNX_ModuleNode *node = module_list; - node != 0; - node = node->next){ - // module entity - DEMON_Entity *module = demon_ent_new(process, DEMON_EntityKind_Module, node->vaddr); - demon_module_count += 1; - module->ext_u64 = node->name; - - // event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_LoadModule); - e->process = demon_ent_handle_from_ptr(process); - e->module = demon_ent_handle_from_ptr(module); - e->address = node->vaddr; - e->size = node->size; - } - } - - // handshake event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_HandshakeComplete); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - } - } - }break; - } - } - } - - scratch_end(scratch); - return(result); -} - -internal B32 -demon_os_attach_process(U32 pid){ - B32 result = false; - - Temp scratch = scratch_begin(0, 0); - DEMON_LNX_AttachNode *attachments = 0; - DEMON_LNX_AttachNode *the_process = 0; - - // TODO(allen): double check that this logic only lets us - // "attach" when pid is the id of the main thread of a process. - - // attach this process - B32 attached_proc = false; - if (kill(pid, 0) == -1){ - // TODO(allen): process does not exist - } - else{ - attached_proc = demon_lnx_attach_pid(scratch.arena, pid, &the_process); - if (the_process != 0){ - SLLStackPush(attachments, the_process); - } - } - - // open thread list - if (attached_proc){ - String8 threads_path = push_str8f(scratch.arena, "/proc/%d/task", pid); - DIR *proc_dir = opendir((char*)threads_path.str); - if (proc_dir == 0){ - // TODO(allen): could not read proc threads somehow; no good! - } - else{ - - // attach all threads - B32 attached_all_threads = true; - for (;;){ - struct dirent *entry = readdir(proc_dir); - if (entry == 0){ - break; - } - - String8 name = str8_cstring(entry->d_name); - if (str8_is_integer(name, 10)){ - pid_t tid = u64_from_str8(name, 10); - if (tid != pid){ - DEMON_LNX_AttachNode *new_attachment = 0; - B32 attached_this_thread = demon_lnx_attach_pid(scratch.arena, tid, &new_attachment); - if (new_attachment != 0){ - SLLStackPush(attachments, new_attachment); - } - if (!attached_this_thread){ - attached_all_threads = false; - break; - } - } - } - } - closedir(proc_dir); - - if (attached_all_threads){ - result = true; - } - } - } - - // initialize new entities on success - if (result){ - Arch arch = demon_lnx_arch_from_pid(the_process->pid); - - // process entity - DEMON_Entity *process = demon_ent_new(demon_ent_root, DEMON_EntityKind_Process, the_process->pid); - demon_proc_count += 1; - process->arch = arch; - process->ext_u64 = demon_lnx_open_memory_fd_for_pid(the_process->pid); - - // process event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_CreateProcess); - e->process = demon_ent_handle_from_ptr(process); - } - - // TODO(allen): happens on windows here? - - for (DEMON_LNX_AttachNode *node = attachments; - node != 0; - node = node->next){ - DEMON_Entity *thread = demon_ent_new(process, DEMON_EntityKind_Thread, node->pid); - demon_thread_count += 1; - - // thread event - { - DEMON_Event *e = demon_push_event(demon_lnx_event_arena, &demon_lnx_queued_events, - DEMON_EventKind_CreateThread); - e->process = demon_ent_handle_from_ptr(process); - e->thread = demon_ent_handle_from_ptr(thread); - } - } - - // TODO(allen): sync modules in process - } - - // cleanup on failure - else{ - for (DEMON_LNX_AttachNode *node = attachments; - node != 0; - node = node->next){ - ptrace(PTRACE_DETACH, node->pid, 0, (void*)SIGCONT); - } - } - - scratch_end(scratch); - return(result); -} - -internal B32 -demon_os_kill_process(DEMON_Entity *process, U32 exit_code){ - B32 result = false; - if (process != 0){ - if (kill(process->id, SIGKILL) != -1){ - result = true; - } - } - return(result); -} - -internal B32 -demon_os_detach_process(DEMON_Entity *process){ - B32 result = false; - if (process != 0){ - int detach_result = ptrace(PTRACE_DETACH, process->id, 0, 0); - result = (detach_result != -1); - } - return(0); -} - -//////////////////////////////// -//~ rjf: @demon_os_hooks Entity Functions - -//- rjf: cleanup - -internal void -demon_os_entity_cleanup(DEMON_Entity *entity) -{ - // NOTE(rjf): no-op -} - -//- rjf: introspection - -internal String8 -demon_os_full_path_from_module(Arena *arena, DEMON_Entity *module){ - DEMON_Entity *process = module->parent; - int memory_fd = (int)process->ext_u64; - U64 name_va = module->ext_u64; - String8 result = demon_lnx_read_memory_str(arena, memory_fd, name_va); - return(result); -} - -internal U64 -demon_os_stack_base_vaddr_from_thread(DEMON_Entity *thread){ - Temp scratch = scratch_begin(0, 0); - - U64 stack_base = 0; - - DEMON_Entity *process = thread->parent; - - // id for main thread is zero - B32 is_main_thread = (thread->id == process->id); - pid_t match_tid = is_main_thread ? 0 : thread->id; - - // open /proc/$pid/maps - int maps = demon_lnx_open_maps(process->id); - - // look for entry with stack markings and matching thread id - for (;;){ - DEMON_LNX_MapsEntry e; - Temp temp = temp_begin(scratch.arena); - if (!demon_lnx_next_map(temp.arena, maps, &e)){ - break; - } - if (e.type == DEMON_LNX_MapsEntryType_Stack && e.stack_tid == match_tid){ - stack_base = e.address_lo; - break; - } - temp_end(temp); - } - - scratch_end(scratch); - return(stack_base); -} - -internal U64 -demon_os_tls_root_vaddr_from_thread(DEMON_Entity *thread){ - U64 result = 0; - switch (thread->arch){ - case Arch_x64: - case Arch_x86: - { - U32 fsbase = 0; - pid_t tid = (pid_t)thread->id; - if (ptrace(PT_GETFSBASE, tid, (void*)&fsbase, 0) != -1){ - result = (U64)fsbase; - } - if (thread->arch == Arch_x64){ - result += 8; - } - else{ - result += 4; - } - }break; - } - return(result); -} - -//- rjf: target process memory allocation/protection - -internal U64 -demon_os_reserve_memory(DEMON_Entity *process, U64 size){ - U64 result = 0; - NotImplemented; - return(result); -} - -internal void -demon_os_set_memory_protect_flags(DEMON_Entity *process, U64 page_vaddr, U64 size, DEMON_MemoryProtectFlags flags){ - NotImplemented; -} - -internal void -demon_os_release_memory(DEMON_Entity *process, U64 vaddr, U64 size){ - NotImplemented; -} - -//- rjf: target process memory reading/writing - -internal U64 -demon_os_read_memory(DEMON_Entity *process, void *dst, U64 src_address, U64 size){ - int memory_fd = (int)process->ext_u64; - U64 result = demon_lnx_read_memory(memory_fd, dst, src_address, size); - return(result); -} - -internal B32 -demon_os_write_memory(DEMON_Entity *process, U64 dst_address, void *src, U64 size){ - int memory_fd = (int)process->ext_u64; - B32 result = demon_lnx_write_memory(memory_fd, dst_address, src, size); - return(result); -} - -//- rjf: thread registers reading/writing - -internal B32 -demon_os_read_regs_x86(DEMON_Entity *thread, SYMS_RegX86 *dst){ - B32 result = false; - NotImplemented; - return(result); -} - -internal B32 -demon_os_write_regs_x86(DEMON_Entity *thread, SYMS_RegX86 *src){ - B32 result = false; - NotImplemented; - return(result); -} - -internal B32 -demon_os_read_regs_x64(DEMON_Entity *thread, SYMS_RegX64 *dst){ - pid_t tid = (pid_t)thread->id; - - // gpr - B32 got_gpr = false; - DEMON_LNX_UserX64 ctx = {0}; - struct iovec iov_gpr = {0}; - iov_gpr.iov_len = sizeof(ctx); - iov_gpr.iov_base = &ctx; - if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr) != -1){ - demon_lnx_regs_x64_from_usr_regs_x64(dst, &ctx.regs); - got_gpr = true; - } - - // fpr - B32 got_fpr = false; - if (got_gpr){ - B32 got_xsave = false; - { - U8 xsave_buffer[KB(4)]; - struct iovec iov_xsave = {0}; - iov_xsave.iov_len = sizeof(xsave_buffer); - iov_xsave.iov_base = xsave_buffer; - if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave) != -1){ - SYMS_XSave *xsave = (SYMS_XSave*)xsave_buffer; - syms_x64_regs__set_full_regs_from_xsave_legacy(dst, &xsave->legacy); - - // TODO(allen): this is a lie; ymm can technically move around - // we need some more low-level-assembly-fu to do this hardcore. - B32 has_ymm_registers = ((xsave->header.xstate_bv & 4) != 0); - if (has_ymm_registers){ - syms_x64_regs__set_full_regs_from_xsave_avx_extension(dst, xsave->ymmh); - } - - got_xsave = true; - } - } - - B32 got_fxsave = false; - if (!got_xsave){ - SYMS_XSaveLegacy fxsave = {0}; - struct iovec iov_fxsave = {0}; - iov_fxsave.iov_len = sizeof(fxsave); - iov_fxsave.iov_base = &fxsave; - if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, &iov_fxsave) != -1){ - syms_x64_regs__set_full_regs_from_xsave_legacy(dst, &fxsave); - got_fxsave = true; - } - } - - if (got_xsave || got_fxsave){ - got_fpr = true; - } - } - - // debug - B32 got_debug = false; - if (got_fpr){ - got_debug = true; - SYMS_Reg32 *dr_d = &dst->dr0; - for (U32 i = 0; i < 8; i += 1, dr_d += 1){ - if (i != 4 && i != 5){ - U64 offset = OffsetOf(DEMON_LNX_UserX64, u_debugreg[i]); - errno = 0; - int peek_result = ptrace(PTRACE_PEEKUSER, tid, PtrFromInt(offset), 0); - if (errno == 0){ - dr_d->u32 = (U32)peek_result; - } - else{ - got_debug = false; - } - } - } - } - - // got everything - B32 result = got_debug; - return(result); -} - -internal B32 -demon_os_write_regs_x64(DEMON_Entity *thread, SYMS_RegX64 *src){ - pid_t tid = (pid_t)thread->id; - - // gpr - DEMON_LNX_UserX64 ctx = {0}; - demon_lnx_usr_regs_x64_from_regs_x64(&ctx.regs, src); - - struct iovec iov_gpr = {0}; - iov_gpr.iov_base = &ctx; - iov_gpr.iov_len = sizeof(ctx); - int gpr_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_PRSTATUS, &iov_gpr); - B32 gpr_success = (gpr_result != -1); - - // fpr - int xsave_result = 0; - int fxsave_result = 0; - - { - U8 xsave_buffer[KB(4)] = {0}; - SYMS_XSave *xsave = (SYMS_XSave*)xsave_buffer; - syms_x64_regs__set_xsave_legacy_from_full_regs(&xsave->legacy, src); - - xsave->header.xstate_bv = 7; - - // TODO(allen): this is a lie; ymm can technically move around - // we need some more low-level-assembly-fu to do this hardcore. - syms_x64_regs__set_xsave_avx_extension_from_full_regs(xsave->ymmh, src); - - { - struct iovec iov_xsave = {0}; - iov_xsave.iov_base = &xsave; - iov_xsave.iov_len = sizeof(xsave); - xsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_X86_XSTATE, &iov_xsave); - } - - if (xsave_result == -1){ - struct iovec iov_fxsave = {0}; - iov_fxsave.iov_base = &xsave->legacy; - iov_fxsave.iov_len = sizeof(xsave->legacy); - fxsave_result = ptrace(PTRACE_SETREGSET, tid, (void*)NT_FPREGSET, &iov_fxsave); - } - } - - B32 fpr_success = (xsave_result != -1 || fxsave_result != -1); - - // debug - B32 dr_success = true; - { - SYMS_Reg32 *dr_s = &src->dr0; - for (U32 i = 0; i < 8; i += 1, dr_s += 1){ - if (i != 4 && i != 5){ - U64 offset = OffsetOf(DEMON_LNX_UserX64, u_debugreg[i]); - errno = 0; - int poke_result = ptrace(PTRACE_POKEUSER, tid, PtrFromInt(offset), dr_s->u32); - if (poke_result == -1){ - dr_success = false; - } - } - } - } - - // assemble result - B32 result = (gpr_success && fpr_success && dr_success); - - return(result); -} - -//////////////////////////////// -//~ rjf: @demon_os_hooks Process Listing - -internal void -demon_os_proc_iter_begin(DEMON_ProcessIter *iter){ - DIR *dir = opendir("/proc"); - MemoryZeroStruct(iter); - iter->v[0] = IntFromPtr(dir); -} - -internal B32 -demon_os_proc_iter_next(Arena *arena, DEMON_ProcessIter *iter, DEMON_ProcessInfo *info_out){ - // scan for a process id - B32 got_pid = false; - String8 pid_string = {0}; - - DIR *dir = (DIR*)PtrFromInt(iter->v[0]); - if (dir != 0 && iter->v[1] == 0){ - for (;;){ - struct dirent *d = readdir(dir); - if (d == 0){ - break; - } - - // check file name is integer - String8 file_name = str8_cstring((char*)d->d_name); - B32 is_integer = str8_is_integer(file_name, 10); - - // break on integers (which represent processes) - if (is_integer){ - got_pid = true; - pid_string = file_name; - break; - } - } - } - - // mark iterator dead if nothing found - if (!got_pid){ - iter->v[1] = 1; - } - - // if got process id convert pid -> process info - B32 result = false; - if (got_pid){ - // determine the name we will report - pid_t pid = u64_from_str8(pid_string, 10); - String8 name = demon_lnx_executable_path_from_pid(arena, pid); - if (name.size == 0){ - name = str8_lit(""); - } - - // finish conversion - info_out->name = name; - info_out->pid = pid; - result = true; - } - - return(result); -} - -internal void -demon_os_proc_iter_end(DEMON_ProcessIter *iter){ - DIR *dir = (DIR*)PtrFromInt(iter->v[0]); - if (dir != 0){ - closedir(dir); - } - MemoryZeroStruct(iter); -} diff --git a/src/demon/linux/demon_os_linux.h b/src/demon/linux/demon_os_linux.h deleted file mode 100644 index ae737f75..00000000 --- a/src/demon/linux/demon_os_linux.h +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef DEMON_OS_LINUX_H -#define DEMON_OS_LINUX_H - -// TODO(allen): Potential Upgrades: -// -// memory fd upgrade - Right now for each process we hold open a file -// descriptor for the process's memory (/proc/%d/mem) for the entire lifetime -// of the process; it could be opened and closed with some kind of LRU cache -// to put a finite cap on the number of handles the demon holds -// - -//////////////////////////////// -//~ NOTE(allen): Get The Linux Includes - -#include -#include -#include -#include -#include -#include -#include - -//////////////////////////////// -//~ NOTE(allen): Linux Demon Types - -//- entities - -// Demon Linux Entity Extensions -// Process: ext_u64 set to memory file descriptor -// Thread : ext_u64 cast to DEMON_LNX_ThreadExt -// Module : ext_u64 set to U64 (address of name) - -struct DEMON_LNX_ThreadExt{ - B32 expecting_dummy_sigstop; -}; -StaticAssert(sizeof(DEMON_LNX_ThreadExt) <= sizeof(Member(DEMON_Entity, ext_u64)), check_demon_lnx_thread_ext); - -//- helpers - -struct DEMON_LNX_AttachNode{ - DEMON_LNX_AttachNode *next; - pid_t pid; -}; - -struct DEMON_LNX_ProcessAux{ - B32 filled; - U64 phnum; - U64 phent; - U64 phdr; - U64 execfn; -}; - -struct DEMON_LNX_PhdrInfo{ - Rng1U64 range; - U64 dynamic; -}; - -struct DEMON_LNX_ModuleNode{ - DEMON_LNX_ModuleNode *next; - U64 vaddr; - U64 size; - U64 name; - U64 already_known; -}; - -struct DEMON_LNX_EntityNode{ - DEMON_LNX_EntityNode *next; - DEMON_Entity *entity; -}; - -//////////////////////////////// -//~ NOTE(allen): Linux Demon Register Layouts - -// these are defined in but only for one architecture at a time -// (and we can't really trick it into giving us both in any obvious way) -// we define them here so that we have them all "at once" - -struct DEMON_LNX_UserRegsX64{ - U64 r15; - U64 r14; - U64 r13; - U64 r12; - U64 rbp; - U64 rbx; - U64 r11; - U64 r10; - U64 r9; - U64 r8; - U64 rax; - U64 rcx; - U64 rdx; - U64 rsi; - U64 rdi; - U64 orig_rax; - U64 rip; - U64 cs; - U64 rflags; - U64 rsp; - U64 ss; - U64 fsbase; - U64 gsbase; - U64 ds; - U64 es; - U64 fs; - U64 gs; -}; - -struct DEMON_LNX_UserX64{ - DEMON_LNX_UserRegsX64 regs; - S32 u_fpvalid, _pad0; - SYMS_XSaveLegacy i387; - U64 u_tsize, u_dsize, u_ssize, start_code, start_stack; - U64 signal; - S32 reserved, _pad1; - U64 u_ar0, u_fpstate; - U64 magic; - U8 u_comm[32]; - U64 u_debugreg[8]; -}; - -struct DEMON_LNX_UserRegsX86{ - U32 ebx; - U32 ecx; - U32 edx; - U32 esi; - U32 edi; - U32 ebp; - U32 eax; - U32 ds; - U32 es; - U32 fs; - U32 gs; - U32 orig_eax; - U32 eip; - U32 cs; - U32 eflags; - U32 sp; - U32 ss; -}; - -struct DEMON_LNX_UserX86{ - DEMON_LNX_UserRegsX86 regs; - S32 u_fpvalid; - SYMS_FSave i387; - U32 u_tsize, u_dsize, u_ssize, start_code, start_stack; - S32 signal, reserved; - U32 u_ar0, u_fpstate; - U32 magic; - U8 u_comm[32]; - U32 u_debugreg[8]; -}; - -//////////////////////////////// - -enum -{ - DEMON_LNX_PermFlags_Read = (1 << 0), - DEMON_LNX_PermFlags_Write = (1 << 1), - DEMON_LNX_PermFlags_Exec = (1 << 2), - DEMON_LNX_PermFlags_Private = (1 << 3) -}; -typedef int DEMON_LNX_PermFlags; - -enum -{ - DEMON_LNX_MapsEntryType_Null, - DEMON_LNX_MapsEntryType_Path, - DEMON_LNX_MapsEntryType_Heap, - DEMON_LNX_MapsEntryType_Stack, - DEMON_LNX_MapsEntryType_VDSO, -}; -typedef int DEMON_LNX_MapsEntryType; - -struct DEMON_LNX_MapsEntry -{ - U64 address_lo; - U64 address_hi; - DEMON_LNX_PermFlags perms; - U64 offset; - U32 dev_major; - U32 dev_minor; - U64 inode; - String8 pathname; - DEMON_LNX_MapsEntryType type; - pid_t stack_tid; -}; - -//////////////////////////////// -//~ rjf: Helpers - -internal DEMON_LNX_ThreadExt* demon_lnx_thread_ext(DEMON_Entity *entity); - -internal B32 demon_lnx_attach_pid(Arena *arena, pid_t pid, DEMON_LNX_AttachNode **new_node); - -internal String8 demon_lnx_executable_path_from_pid(Arena *arena, pid_t pid); -internal int demon_lnx_open_memory_fd_for_pid(pid_t pid); - -internal Arch demon_lnx_arch_from_pid(pid_t pid); -internal DEMON_LNX_ProcessAux demon_lnx_aux_from_pid(pid_t pid, Arch arch); -internal DEMON_LNX_PhdrInfo demon_lnx_phdr_info_from_memory(int memory_fd, B32 is_32bit, - U64 phvaddr, U64 phstride, U64 phcount); -internal DEMON_LNX_ModuleNode* demon_lnx_module_list_from_process(Arena *arena, DEMON_Entity *process); - -internal U64 demon_lnx_read_memory(int memory_fd, void *dst, U64 src, U64 size); -internal B32 demon_lnx_write_memory(int memory_fd, U64 dst, void *src, U64 size); -internal String8 demon_lnx_read_memory_str(Arena *arena, int memory_fd, U64 address); - -internal void demon_lnx_regs_x64_from_usr_regs_x64(SYMS_RegX64 *dst, DEMON_LNX_UserRegsX64 *src); -internal void demon_lnx_usr_regs_x64_from_regs_x64(DEMON_LNX_UserRegsX64 *dst, SYMS_RegX64 *src); - -internal String8 demon_lnx_read_int_string(int fd); -internal B32 demon_lnx_read_expect(int fd, char expect); -internal int demon_lnx_read_whitespace(int fd); -internal String8 demon_lnx_read_string(Arena *arena, int fd); - -internal int demon_lnx_open_maps(pid_t pid); -internal B32 demon_lnx_next_map(Arena *arena, int maps, DEMON_LNX_MapsEntry *entry_out); - -#endif //DEMON_OS_LINUX_H diff --git a/src/demon/win32/demon_core_win32.h b/src/demon/win32/demon_core_win32.h deleted file mode 100644 index c33f71c6..00000000 --- a/src/demon/win32/demon_core_win32.h +++ /dev/null @@ -1,360 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef DEMON_CORE_WIN32_H -#define DEMON_CORE_WIN32_H - -//////////////////////////////// -//~ rjf: Windows Includes - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include - -//////////////////////////////// -//~ rjf: Win32 Exception Codes - -#define DMN_W32_EXCEPTION_BREAKPOINT 0x80000003u -#define DMN_W32_EXCEPTION_SINGLE_STEP 0x80000004u -#define DMN_W32_EXCEPTION_LONG_JUMP 0x80000026u -#define DMN_W32_EXCEPTION_ACCESS_VIOLATION 0xC0000005u -#define DMN_W32_EXCEPTION_ARRAY_BOUNDS_EXCEEDED 0xC000008Cu -#define DMN_W32_EXCEPTION_DATA_TYPE_MISALIGNMENT 0x80000002u -#define DMN_W32_EXCEPTION_GUARD_PAGE_VIOLATION 0x80000001u -#define DMN_W32_EXCEPTION_FLT_DENORMAL_OPERAND 0xC000008Du -#define DMN_W32_EXCEPTION_FLT_DEVIDE_BY_ZERO 0xC000008Eu -#define DMN_W32_EXCEPTION_FLT_INEXACT_RESULT 0xC000008Fu -#define DMN_W32_EXCEPTION_FLT_INVALID_OPERATION 0xC0000090u -#define DMN_W32_EXCEPTION_FLT_OVERFLOW 0xC0000091u -#define DMN_W32_EXCEPTION_FLT_STACK_CHECK 0xC0000092u -#define DMN_W32_EXCEPTION_FLT_UNDERFLOW 0xC0000093u -#define DMN_W32_EXCEPTION_INT_DIVIDE_BY_ZERO 0xC0000094u -#define DMN_W32_EXCEPTION_INT_OVERFLOW 0xC0000095u -#define DMN_W32_EXCEPTION_PRIVILEGED_INSTRUCTION 0xC0000096u -#define DMN_W32_EXCEPTION_ILLEGAL_INSTRUCTION 0xC000001Du -#define DMN_W32_EXCEPTION_IN_PAGE_ERROR 0xC0000006u -#define DMN_W32_EXCEPTION_INVALID_DISPOSITION 0xC0000026u -#define DMN_W32_EXCEPTION_NONCONTINUABLE 0xC0000025u -#define DMN_W32_EXCEPTION_STACK_OVERFLOW 0xC00000FDu -#define DMN_W32_EXCEPTION_INVALID_HANDLE 0xC0000008u -#define DMN_W32_EXCEPTION_UNWIND_CONSOLIDATE 0x80000029u -#define DMN_W32_EXCEPTION_DLL_NOT_FOUND 0xC0000135u -#define DMN_W32_EXCEPTION_ORDINAL_NOT_FOUND 0xC0000138u -#define DMN_W32_EXCEPTION_ENTRY_POINT_NOT_FOUND 0xC0000139u -#define DMN_W32_EXCEPTION_DLL_INIT_FAILED 0xC0000142u -#define DMN_W32_EXCEPTION_CONTROL_C_EXIT 0xC000013Au -#define DMN_W32_EXCEPTION_FLT_MULTIPLE_FAULTS 0xC00002B4u -#define DMN_W32_EXCEPTION_FLT_MULTIPLE_TRAPS 0xC00002B5u -#define DMN_W32_EXCEPTION_NAT_CONSUMPTION 0xC00002C9u -#define DMN_W32_EXCEPTION_HEAP_CORRUPTION 0xC0000374u -#define DMN_W32_EXCEPTION_STACK_BUFFER_OVERRUN 0xC0000409u -#define DMN_W32_EXCEPTION_INVALID_CRUNTIME_PARAM 0xC0000417u -#define DMN_W32_EXCEPTION_ASSERT_FAILURE 0xC0000420u -#define DMN_W32_EXCEPTION_NO_MEMORY 0xC0000017u -#define DMN_W32_EXCEPTION_THROW 0xE06D7363u -#define DMN_W32_EXCEPTION_SET_THREAD_NAME 0x406d1388u -#define DMN_w32_EXCEPTION_CLRDBG_NOTIFICATION 0x04242420u -#define DMN_w32_EXCEPTION_CLR 0xE0434352u -#define DMN_W32_EXCEPTION_RADDBG_SET_THREAD_COLOR 0x00524144u -#define DMN_W32_EXCEPTION_RADDBG_SET_BREAKPOINT 0x00524145u -#define DMN_W32_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE 0x00524156u - -//////////////////////////////// -//~ rjf: Win32 Exception ExceptionInformation Codes -// -// used as a subcode, apparently in all cases, for DMN_W32_EXCEPTION_STACK_BUFFER_OVERRUN. -// need to somehow pipe this through & interpret it correctly in outer layers... @fastfail - -#define DMN_W32_FAST_FAIL_LEGACY_GS_VIOLATION 0 -#define DMN_W32_FAST_FAIL_VTGUARD_CHECK_FAILURE 1 -#define DMN_W32_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 -#define DMN_W32_FAST_FAIL_CORRUPT_LIST_ENTRY 3 -#define DMN_W32_FAST_FAIL_INCORRECT_STACK 4 -#define DMN_W32_FAST_FAIL_INVALID_ARG 5 -#define DMN_W32_FAST_FAIL_GS_COOKIE_INIT 6 -#define DMN_W32_FAST_FAIL_FATAL_APP_EXIT 7 -#define DMN_W32_FAST_FAIL_RANGE_CHECK_FAILURE 8 -#define DMN_W32_FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 -#define DMN_W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 -#define DMN_W32_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 -#define DMN_W32_FAST_FAIL_INVALID_FIBER_SWITCH 12 -#define DMN_W32_FAST_FAIL_INVALID_SET_OF_CONTEXT 13 -#define DMN_W32_FAST_FAIL_INVALID_REFERENCE_COUNT 14 -#define DMN_W32_FAST_FAIL_INVALID_JUMP_BUFFER 18 -#define DMN_W32_FAST_FAIL_MRDATA_MODIFIED 19 -#define DMN_W32_FAST_FAIL_CERTIFICATION_FAILURE 20 -#define DMN_W32_FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 -#define DMN_W32_FAST_FAIL_CRYPTO_LIBRARY 22 -#define DMN_W32_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 -#define DMN_W32_FAST_FAIL_INVALID_IMAGE_BASE 24 -#define DMN_W32_FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 -#define DMN_W32_FAST_FAIL_UNSAFE_EXTENSION_CALL 26 -#define DMN_W32_FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 -#define DMN_W32_FAST_FAIL_INVALID_BUFFER_ACCESS 28 -#define DMN_W32_FAST_FAIL_INVALID_BALANCED_TREE 29 -#define DMN_W32_FAST_FAIL_INVALID_NEXT_THREAD 30 -#define DMN_W32_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_APCS_DISABLED 32 -#define DMN_W32_FAST_FAIL_INVALID_IDLE_STATE 33 -#define DMN_W32_FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 -#define DMN_W32_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 -#define DMN_W32_FAST_FAIL_INVALID_LOCK_STATE 36 -#define DMN_W32_FAST_FAIL_GUARD_JUMPTABLE 37 // Known to compiler, must retain value 37 -#define DMN_W32_FAST_FAIL_INVALID_LONGJUMP_TARGET 38 -#define DMN_W32_FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 -#define DMN_W32_FAST_FAIL_INVALID_THREAD 40 -#define DMN_W32_FAST_FAIL_INVALID_SYSCALL_NUMBER 41 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_INVALID_FILE_OPERATION 42 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_LPAC_ACCESS_DENIED 43 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_GUARD_SS_FAILURE 44 -#define DMN_W32_FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 -#define DMN_W32_FAST_FAIL_INVALID_CONTROL_STACK 47 -#define DMN_W32_FAST_FAIL_SET_CONTEXT_DENIED 48 -#define DMN_W32_FAST_FAIL_INVALID_IAT 49 -#define DMN_W32_FAST_FAIL_HEAP_METADATA_CORRUPTION 50 -#define DMN_W32_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 -#define DMN_W32_FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_ENCLAVE_CALL_FAILURE 53 -#define DMN_W32_FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 -#define DMN_W32_FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 // Telemetry, nonfatal -#define DMN_W32_FAST_FAIL_UNEXPECTED_CALL 56 -#define DMN_W32_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 -#define DMN_W32_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 -#define DMN_W32_FAST_FAIL_FLAGS_CORRUPTION 59 -#define DMN_W32_FAST_FAIL_VEH_CORRUPTION 60 -#define DMN_W32_FAST_FAIL_ETW_CORRUPTION 61 -#define DMN_W32_FAST_FAIL_RIO_ABORT 62 -#define DMN_W32_FAST_FAIL_INVALID_PFN 63 -#define DMN_W32_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64 -#define DMN_W32_FAST_FAIL_CAST_GUARD 65 // Known to compiler, must retain value 65 -#define DMN_W32_FAST_FAIL_HOST_VISIBILITY_CHANGE 66 -#define DMN_W32_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67 -#define DMN_W32_FAST_FAIL_PATCH_CALLBACK_FAILED 68 -#define DMN_W32_FAST_FAIL_NTDLL_PATCH_FAILED 69 -#define DMN_W32_FAST_FAIL_INVALID_FLS_DATA 70 -#define DMN_W32_FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF - -//////////////////////////////// -//~ rjf: Win32 Register Codes - -#define DMN_W32_CTX_X86 0x00010000 -#define DMN_W32_CTX_X64 0x00100000 - -#define DMN_W32_CTX_INTEL_CONTROL 0x0001 // segss, rsp, segcs, rip, and rflags -#define DMN_W32_CTX_INTEL_INTEGER 0x0002 // rax, rcx, rdx, rbx, rbp, rsi, rdi, and r8-r15 -#define DMN_W32_CTX_INTEL_SEGMENTS 0x0004 // segds, seges, segfs, and seggs -#define DMN_W32_CTX_INTEL_FLOATS 0x0008 // xmm0-xmm15 -#define DMN_W32_CTX_INTEL_DEBUG 0x0010 // dr0-dr3 and dr6-dr7 -#define DMN_W32_CTX_INTEL_EXTENDED 0x0020 -#define DMN_W32_CTX_INTEL_XSTATE 0x0040 - -#define DMN_W32_CTX_X86_ALL (DMN_W32_CTX_X86 | \ -DMN_W32_CTX_INTEL_CONTROL | DMN_W32_CTX_INTEL_INTEGER | \ -DMN_W32_CTX_INTEL_SEGMENTS | DMN_W32_CTX_INTEL_DEBUG | \ -DMN_W32_CTX_INTEL_EXTENDED) -#define DMN_W32_CTX_X64_ALL (DMN_W32_CTX_X64 | \ -DMN_W32_CTX_INTEL_CONTROL | DMN_W32_CTX_INTEL_INTEGER | \ -DMN_W32_CTX_INTEL_SEGMENTS | DMN_W32_CTX_INTEL_FLOATS | \ -DMN_W32_CTX_INTEL_DEBUG) - -//////////////////////////////// -//~ rjf: Per-Entity State - -typedef enum DMN_W32_EntityKind -{ - DMN_W32_EntityKind_Null, - DMN_W32_EntityKind_Root, - DMN_W32_EntityKind_Process, - DMN_W32_EntityKind_Thread, - DMN_W32_EntityKind_Module, - DMN_W32_EntityKind_COUNT -} -DMN_W32_EntityKind; - -typedef struct DMN_W32_Entity DMN_W32_Entity; -struct DMN_W32_Entity -{ - DMN_W32_Entity *first; - DMN_W32_Entity *last; - DMN_W32_Entity *next; - DMN_W32_Entity *prev; - DMN_W32_Entity *parent; - DMN_W32_EntityKind kind; - U32 gen; - U64 id; - HANDLE handle; - Arch arch; - union - { - struct - { - U64 injection_address; - B32 did_first_bp; - } - proc; - struct - { - U64 thread_local_base; - U64 last_name_hash; - U64 name_gather_time_us; - } - thread; - struct - { - Rng1U64 vaddr_range; - U64 address_of_name_pointer; - B32 is_main; - B32 name_is_unicode; - } - module; - }; -}; - -typedef struct DMN_W32_EntityNode DMN_W32_EntityNode; -struct DMN_W32_EntityNode -{ - DMN_W32_EntityNode *next; - DMN_W32_Entity *v; -}; - -typedef struct DMN_W32_EntityIDHashNode DMN_W32_EntityIDHashNode; -struct DMN_W32_EntityIDHashNode -{ - DMN_W32_EntityIDHashNode *next; - DMN_W32_EntityIDHashNode *prev; - U64 id; - DMN_W32_Entity *entity; -}; - -typedef struct DMN_W32_EntityIDHashSlot DMN_W32_EntityIDHashSlot; -struct DMN_W32_EntityIDHashSlot -{ - DMN_W32_EntityIDHashNode *first; - DMN_W32_EntityIDHashNode *last; -}; - -//////////////////////////////// -//~ rjf: Injection Types - -typedef struct DMN_W32_InjectedBreak DMN_W32_InjectedBreak; -struct DMN_W32_InjectedBreak -{ - U64 code; - U64 user_data; -}; - -#define DMN_W32_INJECTED_CODE_SIZE 32 - -//////////////////////////////// -//~ rjf: Image Info Types - -typedef struct DMN_W32_ImageInfo DMN_W32_ImageInfo; -struct DMN_W32_ImageInfo -{ - Arch arch; - U32 size; -}; - -//////////////////////////////// -//~ rjf: Dynamically-Loaded Win32 Function Types - -typedef HRESULT DMN_W32_GetThreadDescriptionFunctionType(HANDLE hThread, WCHAR **ppszThreadDescription); - -//////////////////////////////// -//~ rjf: Shared State Bundle - -typedef struct DMN_W32_Shared DMN_W32_Shared; -struct DMN_W32_Shared -{ - // rjf: top-level info - Arena *arena; - String8List env_strings; - - // rjf: access locking mechanism - Mutex access_mutex; - B32 access_run_state; - - // rjf: detaching info - Arena *detach_arena; - DMN_HandleList detach_processes; - - // rjf: entity state - Arena *entities_arena; - DMN_W32_Entity *entities_base; - DMN_W32_Entity *entities_first_free; - U64 entities_count; - DMN_W32_EntityIDHashSlot *entities_id_hash_slots; - U64 entities_id_hash_slots_count; - DMN_W32_EntityIDHashNode *entities_id_hash_node_free; - - // rjf: launch state - B32 new_process_pending; - - // rjf: run results - B32 resume_needed; - U32 resume_pid; - U32 resume_tid; - B32 exception_not_handled; - - // rjf: halting info - DMN_Handle halter_process; - U32 halter_tid; -}; - -//////////////////////////////// -//~ rjf: Globals - -global DMN_W32_Shared *dmn_w32_shared = 0; -global DMN_W32_Entity dmn_w32_entity_nil = {&dmn_w32_entity_nil, &dmn_w32_entity_nil, &dmn_w32_entity_nil, &dmn_w32_entity_nil, &dmn_w32_entity_nil}; -global DMN_W32_GetThreadDescriptionFunctionType *dmn_w32_GetThreadDescription = 0; -thread_static B32 dmn_w32_ctrl_thread = 0; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal U64 dmn_w32_hash_from_string(String8 string); -internal U64 dmn_w32_hash_from_id(U64 id); - -//////////////////////////////// -//~ rjf: Entity Helpers - -//- rjf: entity <-> handle -internal DMN_Handle dmn_w32_handle_from_entity(DMN_W32_Entity *entity); -internal DMN_W32_Entity *dmn_w32_entity_from_handle(DMN_Handle handle); - -//- rjf: entity allocation/deallocation -internal DMN_W32_Entity *dmn_w32_entity_alloc(DMN_W32_Entity *parent, DMN_W32_EntityKind kind, U64 id); -internal void dmn_w32_entity_release(DMN_W32_Entity *entity); - -//- rjf: kind*id -> entity -internal DMN_W32_Entity *dmn_w32_entity_from_kind_id(DMN_W32_EntityKind kind, U64 id); - -//////////////////////////////// -//~ rjf: Module Info Extraction - -internal String8 dmn_w32_full_path_from_module(Arena *arena, DMN_W32_Entity *module); - -//////////////////////////////// -//~ rjf: Win32-Level Process/Thread Reads/Writes - -//- rjf: processes -internal U64 dmn_w32_process_read(HANDLE process, Rng1U64 range, void *dst); -internal B32 dmn_w32_process_write(HANDLE process, Rng1U64 range, void *src); -internal String8 dmn_w32_read_memory_str(Arena *arena, HANDLE process_handle, U64 address); -internal String16 dmn_w32_read_memory_str16(Arena *arena, HANDLE process_handle, U64 address); -#define dmn_w32_process_read_struct(process, vaddr, ptr) dmn_w32_process_read((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) -#define dmn_w32_process_write_struct(process, vaddr, ptr) dmn_w32_process_write((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) -internal DMN_W32_ImageInfo dmn_w32_image_info_from_process_base_vaddr(HANDLE process, U64 base_vaddr); - -//- rjf: threads -internal U16 dmn_w32_real_tag_word_from_xsave(XSAVE_FORMAT *fxsave); -internal U16 dmn_w32_xsave_tag_word_from_real_tag_word(U16 ftw); -internal B32 dmn_w32_thread_read_reg_block(Arch arch, HANDLE thread, void *reg_block); -internal B32 dmn_w32_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block); - -//- rjf: remote thread injection -internal DWORD dmn_w32_inject_thread(HANDLE process, U64 start_address); - -#endif // DEMON_CORE_WIN32_H diff --git a/src/disasm/disasm.c b/src/disasm/disasm.c index 43874135..58532b5e 100644 --- a/src/disasm/disasm.c +++ b/src/disasm/disasm.c @@ -7,11 +7,6 @@ //////////////////////////////// //~ rjf: Instruction Decoding/Disassembling Type Functions -#if !defined(ZYDIS_H) -#include "third_party/zydis/zydis.h" -#include "third_party/zydis/zydis.c" -#endif - internal DASM_Inst dasm_inst_from_code(Arena *arena, Arch arch, U64 vaddr, String8 code, DASM_Syntax syntax) { @@ -19,127 +14,12 @@ dasm_inst_from_code(Arena *arena, Arch arch, U64 vaddr, String8 code, DASM_Synta switch(arch) { default:{}break; - - //- rjf: x86/x64 disassembly - case Arch_x86: +#if defined(X64_H) case Arch_x64: { - // rjf: determine zydis formatter style - ZydisFormatterStyle style = ZYDIS_FORMATTER_STYLE_INTEL; - switch(syntax) - { - default:{}break; - case DASM_Syntax_Intel:{style = ZYDIS_FORMATTER_STYLE_INTEL;}break; - case DASM_Syntax_ATT: {style = ZYDIS_FORMATTER_STYLE_ATT;}break; - } - - // rjf: disassemble one instruction - ZydisDisassembledInstruction zinst = {0}; - ZyanStatus status = ZydisDisassemble(ZYDIS_MACHINE_MODE_LONG_64, vaddr, code.str, code.size, &zinst, style); - - // rjf: analyze - DASM_InstFlags flags = 0; - U64 jump_dest_vaddr = 0; - { - ZydisDecodedOperand *first_visible_op = (zinst.info.operand_count_visible > 0 ? &zinst.operands[0] : 0); - ZydisDecodedOperand *first_op = (zinst.info.operand_count > 0 ? &zinst.operands[0] : 0); - ZydisDecodedOperand *second_op = (zinst.info.operand_count > 1 ? &zinst.operands[1] : 0); - if(first_visible_op != 0 && - (first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM8 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM32 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM64 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16_32_64 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM32_32_64 || - first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16_32_32)) - { - ZydisCalcAbsoluteAddress(&zinst.info, first_visible_op, vaddr, &jump_dest_vaddr); - } - if(first_op != 0 && second_op != 0 && first_op->type == ZYDIS_OPERAND_TYPE_REGISTER && - (first_op->reg.value == ZYDIS_REGISTER_RSP || - first_op->reg.value == ZYDIS_REGISTER_ESP || - first_op->reg.value == ZYDIS_REGISTER_SP)) - { - flags |= DASM_InstFlag_ChangesStackPointer; - if(second_op->type != ZYDIS_OPERAND_TYPE_IMMEDIATE) - { - flags |= DASM_InstFlag_ChangesStackPointerVariably; - } - } - if(zinst.info.attributes & (ZYDIS_ATTRIB_HAS_REP| - ZYDIS_ATTRIB_HAS_REPE| - ZYDIS_ATTRIB_HAS_REPZ| - ZYDIS_ATTRIB_HAS_REPNZ| - ZYDIS_ATTRIB_HAS_REPNE)) - { - flags |= DASM_InstFlag_Repeats; - } - switch(zinst.info.mnemonic) - { - case ZYDIS_MNEMONIC_CALL: - { - flags |= DASM_InstFlag_Call; - }break; - - case ZYDIS_MNEMONIC_JB: - case ZYDIS_MNEMONIC_JBE: - case ZYDIS_MNEMONIC_JCXZ: - case ZYDIS_MNEMONIC_JECXZ: - case ZYDIS_MNEMONIC_JKNZD: - case ZYDIS_MNEMONIC_JKZD: - case ZYDIS_MNEMONIC_JL: - case ZYDIS_MNEMONIC_JLE: - case ZYDIS_MNEMONIC_JNB: - case ZYDIS_MNEMONIC_JNBE: - case ZYDIS_MNEMONIC_JNL: - case ZYDIS_MNEMONIC_JNLE: - case ZYDIS_MNEMONIC_JNO: - case ZYDIS_MNEMONIC_JNP: - case ZYDIS_MNEMONIC_JNS: - case ZYDIS_MNEMONIC_JNZ: - case ZYDIS_MNEMONIC_JO: - case ZYDIS_MNEMONIC_JP: - case ZYDIS_MNEMONIC_JRCXZ: - case ZYDIS_MNEMONIC_JS: - case ZYDIS_MNEMONIC_JZ: - case ZYDIS_MNEMONIC_LOOP: - case ZYDIS_MNEMONIC_LOOPE: - case ZYDIS_MNEMONIC_LOOPNE: - { - flags |= DASM_InstFlag_Branch; - }break; - - case ZYDIS_MNEMONIC_JMP: - { - flags |= DASM_InstFlag_UnconditionalJump; - }break; - - case ZYDIS_MNEMONIC_RET: - { - flags |= DASM_InstFlag_Return; - }break; - - case ZYDIS_MNEMONIC_PUSH: - case ZYDIS_MNEMONIC_POP: - { - flags |= DASM_InstFlag_ChangesStackPointer; - }break; - - default: - { - flags |= DASM_InstFlag_NonFlow; - }break; - } - } - - // rjf: convert - { - inst.flags = flags; - inst.size = zinst.info.length; - inst.string = push_str8_copy(arena, str8_cstring(zinst.text)); - inst.jump_dest_vaddr = jump_dest_vaddr; - } + inst = x64_dasm_inst_from_code(arena, vaddr, code, syntax); }break; +#endif } return inst; } @@ -148,7 +28,7 @@ dasm_inst_from_code(Arena *arena, Arch arch, U64 vaddr, String8 code, DASM_Synta //~ rjf: Control Flow Analysis internal DASM_CtrlFlowInfo -dasm_ctrl_flow_info_from_arch_vaddr_code(Arena *arena, DASM_InstFlags exit_points_mask, Arch arch, U64 vaddr, String8 code) +dasm_ctrl_flow_info_from_arch_vaddr_code(Arena *arena, DASM_InstFlags exit_points_mask, B32 include_last_inst, Arch arch, U64 vaddr, String8 code) { Temp scratch = scratch_begin(&arena, 1); DASM_CtrlFlowInfo info = {0}; @@ -158,12 +38,12 @@ dasm_ctrl_flow_info_from_arch_vaddr_code(Arena *arena, DASM_InstFlags exit_point U64 inst_vaddr = vaddr+offset; offset += inst.size; info.total_size += inst.size; - if(inst.flags & exit_points_mask) + if(inst.flags & exit_points_mask || (include_last_inst && offset >= code.size)) { DASM_CtrlFlowPoint point = {0}; point.inst_flags = inst.flags; point.vaddr = inst_vaddr; - point.jump_dest_vaddr = inst.jump_dest_vaddr; + point.jump_dest_vaddr = inst.dst_vaddr; DASM_CtrlFlowPointNode *node = push_array(arena, DASM_CtrlFlowPointNode, 1); node->v = point; SLLQueuePush(info.exit_points.first, info.exit_points.last, node); @@ -294,150 +174,142 @@ dasm_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_o //- rjf: data * arch * addr * dbg -> decode artifacts DASM_LineChunkList line_list = {0}; String8List inst_strings = {0}; - switch(params.arch) { - default:{}break; - - //- rjf: x86/x64 decoding - case Arch_x64: - case Arch_x86: + // rjf: disassemble + RDI_SourceFile *last_file = &rdi_nil_element_union.source_file; + RDI_Line *last_line = 0; + for(U64 off = 0; off < data.size;) { - // rjf: disassemble - RDI_SourceFile *last_file = &rdi_nil_element_union.source_file; - RDI_Line *last_line = 0; - for(U64 off = 0; off < data.size;) + // rjf: disassemble one instruction + DASM_Inst inst = dasm_inst_from_code(scratch.arena, params.arch, params.vaddr+off, str8_skip(data, off), params.syntax); + if(inst.size == 0) { - // rjf: disassemble one instruction - DASM_Inst inst = dasm_inst_from_code(scratch.arena, params.arch, params.vaddr+off, str8_skip(data, off), params.syntax); - if(inst.size == 0) + break; + } + + // rjf: push strings derived from voff -> line info + if(params.style_flags & (DASM_StyleFlag_SourceFilesNames|DASM_StyleFlag_SourceLines) && + rdi != &rdi_parsed_nil) + { + U64 voff = (params.vaddr+off) - params.base_vaddr; + U32 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, voff); + RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); + RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); + RDI_ParsedLineTable unit_line_info = {0}; + rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); + U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, voff); + if(line_info_idx < unit_line_info.count) { - break; - } - - // rjf: push strings derived from voff -> line info - if(params.style_flags & (DASM_StyleFlag_SourceFilesNames|DASM_StyleFlag_SourceLines) && - rdi != &rdi_parsed_nil) - { - U64 voff = (params.vaddr+off) - params.base_vaddr; - U32 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, voff); - RDI_Unit *unit = rdi_element_from_name_idx(rdi, Units, unit_idx); - RDI_LineTable *line_table = rdi_element_from_name_idx(rdi, LineTables, unit->line_table_idx); - RDI_ParsedLineTable unit_line_info = {0}; - rdi_parsed_from_line_table(rdi, line_table, &unit_line_info); - U64 line_info_idx = rdi_line_info_idx_from_voff(&unit_line_info, voff); - if(line_info_idx < unit_line_info.count) + RDI_Line *line = &unit_line_info.lines[line_info_idx]; + RDI_SourceFile *file = rdi_element_from_name_idx(rdi, SourceFiles, line->file_idx); + String8 file_normalized_full_path = {0}; + file_normalized_full_path.str = rdi_string_from_idx(rdi, file->normal_full_path_string_idx, &file_normalized_full_path.size); + if(file != last_file) { - RDI_Line *line = &unit_line_info.lines[line_info_idx]; - RDI_SourceFile *file = rdi_element_from_name_idx(rdi, SourceFiles, line->file_idx); - String8 file_normalized_full_path = {0}; - file_normalized_full_path.str = rdi_string_from_idx(rdi, file->normal_full_path_string_idx, &file_normalized_full_path.size); - if(file != last_file) + if(params.style_flags & DASM_StyleFlag_SourceFilesNames && + file->normal_full_path_string_idx != 0 && file_normalized_full_path.size != 0) { - if(params.style_flags & DASM_StyleFlag_SourceFilesNames && - file->normal_full_path_string_idx != 0 && file_normalized_full_path.size != 0) - { - String8 inst_string = push_str8f(scratch.arena, "> %S", file_normalized_full_path); - DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, - inst_strings.total_size + inst_strings.node_count + inst_string.size)}; - dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); - str8_list_push(scratch.arena, &inst_strings, inst_string); - } - if(params.style_flags & DASM_StyleFlag_SourceFilesNames && file->normal_full_path_string_idx == 0) - { - String8 inst_string = str8_lit(">"); - DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, - inst_strings.total_size + inst_strings.node_count + inst_string.size)}; - dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); - str8_list_push(scratch.arena, &inst_strings, inst_string); - } - last_file = file; + String8 inst_string = push_str8f(scratch.arena, "> %S", file_normalized_full_path); + DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, + inst_strings.total_size + inst_strings.node_count + inst_string.size)}; + dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); + str8_list_push(scratch.arena, &inst_strings, inst_string); } - if(line && line != last_line && file->normal_full_path_string_idx != 0 && - params.style_flags & DASM_StyleFlag_SourceLines && - file_normalized_full_path.size != 0) + if(params.style_flags & DASM_StyleFlag_SourceFilesNames && file->normal_full_path_string_idx == 0) { - FileProperties props = os_properties_from_file_path(file_normalized_full_path); - if(props.modified != 0) + String8 inst_string = str8_lit(">"); + DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, + inst_strings.total_size + inst_strings.node_count + inst_string.size)}; + dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); + str8_list_push(scratch.arena, &inst_strings, inst_string); + } + last_file = file; + } + if(line && line != last_line && file->normal_full_path_string_idx != 0 && + params.style_flags & DASM_StyleFlag_SourceLines && + file_normalized_full_path.size != 0) + { + FileProperties props = properties_from_file_path(file_normalized_full_path); + if(props.modified != 0) + { + // TODO(rjf): need redirection path - this may map to a different path on the local machine, + // need frontend to communicate path remapping info to this layer + C_Key key = fs_key_from_path_range(file_normalized_full_path, r1u64(0, max_U64), 0); + TXT_LangKind lang_kind = txt_lang_kind_from_extension(file_normalized_full_path); + U64 endt_us = max_U64; + U128 hash = {0}; + TXT_TextInfo text_info = txt_text_info_from_key_lang(access, key, lang_kind, &hash); + stale = (stale || u128_match(hash, u128_zero())); + if(0 < line->line_num && line->line_num < text_info.lines_count) { - // TODO(rjf): need redirection path - this may map to a different path on the local machine, - // need frontend to communicate path remapping info to this layer - C_Key key = fs_key_from_path_range(file_normalized_full_path, r1u64(0, max_U64), 0); - TXT_LangKind lang_kind = txt_lang_kind_from_extension(file_normalized_full_path); - U64 endt_us = max_U64; - U128 hash = {0}; - TXT_TextInfo text_info = txt_text_info_from_key_lang(access, key, lang_kind, &hash); - stale = (stale || u128_match(hash, u128_zero())); - if(0 < line->line_num && line->line_num < text_info.lines_count) + String8 data = c_data_from_hash(access, hash); + String8 line_text = str8_skip_chop_whitespace(str8_substr(data, text_info.lines_ranges[line->line_num-1])); + if(line_text.size != 0) { - String8 data = c_data_from_hash(access, hash); - String8 line_text = str8_skip_chop_whitespace(str8_substr(data, text_info.lines_ranges[line->line_num-1])); - if(line_text.size != 0) - { - String8 inst_string = push_str8f(scratch.arena, "> %S", line_text); - DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, - inst_strings.total_size + inst_strings.node_count + inst_string.size)}; - dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); - str8_list_push(scratch.arena, &inst_strings, inst_string); - } + String8 inst_string = push_str8f(scratch.arena, "> %S", line_text); + DASM_Line inst = {u32_from_u64_saturate(off), DASM_LineFlag_Decorative, 0, r1u64(inst_strings.total_size + inst_strings.node_count, + inst_strings.total_size + inst_strings.node_count + inst_string.size)}; + dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &inst); + str8_list_push(scratch.arena, &inst_strings, inst_string); } } - last_line = line; } + last_line = line; } } - - // rjf: push line - String8 addr_part = {0}; - if(params.style_flags & DASM_StyleFlag_Addresses) - { - addr_part = push_str8f(scratch.arena, "%s0x%016I64x ", rdi != &rdi_parsed_nil ? " " : "", params.vaddr+off); - } - String8 code_bytes_part = {0}; - if(params.style_flags & DASM_StyleFlag_CodeBytes) - { - String8List code_bytes_strings = {0}; - str8_list_push(scratch.arena, &code_bytes_strings, str8_lit("{")); - for(U64 byte_idx = 0; byte_idx < inst.size || byte_idx < 16; byte_idx += 1) - { - if(byte_idx < inst.size) - { - str8_list_pushf(scratch.arena, &code_bytes_strings, "%02x%s ", (U32)data.str[off+byte_idx], byte_idx == inst.size-1 ? "}" : ""); - } - else if(byte_idx < 8) - { - str8_list_push(scratch.arena, &code_bytes_strings, str8_lit(" ")); - } - } - str8_list_push(scratch.arena, &code_bytes_strings, str8_lit(" ")); - code_bytes_part = str8_list_join(scratch.arena, &code_bytes_strings, 0); - } - String8 symbol_part = {0}; - if(inst.jump_dest_vaddr != 0 && rdi != &rdi_parsed_nil && params.style_flags & DASM_StyleFlag_SymbolNames) - { - RDI_U32 scope_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_ScopeVMap, inst.jump_dest_vaddr-params.base_vaddr); - if(scope_idx != 0) - { - RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, scope_idx); - RDI_U32 procedure_idx = scope->proc_idx; - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_idx); - String8 procedure_name = {0}; - procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); - if(procedure_name.size != 0) - { - symbol_part = push_str8f(scratch.arena, " (%S)", procedure_name); - } - } - } - String8 inst_string = push_str8f(scratch.arena, "%S%S%S%S", addr_part, code_bytes_part, inst.string, symbol_part); - DASM_Line line = {u32_from_u64_saturate(off), 0, inst.jump_dest_vaddr, r1u64(inst_strings.total_size + inst_strings.node_count, - inst_strings.total_size + inst_strings.node_count + inst_string.size)}; - dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &line); - str8_list_push(scratch.arena, &inst_strings, inst_string); - - // rjf: increment - off += inst.size; } - }break; + + // rjf: push line + String8 addr_part = {0}; + if(params.style_flags & DASM_StyleFlag_Addresses) + { + addr_part = push_str8f(scratch.arena, "%s0x%016I64x ", rdi != &rdi_parsed_nil ? " " : "", params.vaddr+off); + } + String8 code_bytes_part = {0}; + if(params.style_flags & DASM_StyleFlag_CodeBytes) + { + String8List code_bytes_strings = {0}; + str8_list_push(scratch.arena, &code_bytes_strings, str8_lit("{")); + for(U64 byte_idx = 0; byte_idx < inst.size || byte_idx < 16; byte_idx += 1) + { + if(byte_idx < inst.size) + { + str8_list_pushf(scratch.arena, &code_bytes_strings, "%02x%s ", (U32)data.str[off+byte_idx], byte_idx == inst.size-1 ? "}" : ""); + } + else if(byte_idx < 8) + { + str8_list_push(scratch.arena, &code_bytes_strings, str8_lit(" ")); + } + } + str8_list_push(scratch.arena, &code_bytes_strings, str8_lit(" ")); + code_bytes_part = str8_list_join(scratch.arena, &code_bytes_strings, 0); + } + String8 symbol_part = {0}; + if(inst.dst_vaddr != 0 && rdi != &rdi_parsed_nil && params.style_flags & DASM_StyleFlag_SymbolNames) + { + RDI_U32 scope_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_ScopeVMap, inst.dst_vaddr-params.base_vaddr); + if(scope_idx != 0) + { + RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, scope_idx); + RDI_U32 procedure_idx = scope->proc_idx; + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_idx); + String8 procedure_name = {0}; + procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); + if(procedure_name.size != 0) + { + symbol_part = push_str8f(scratch.arena, " (%S)", procedure_name); + } + } + } + String8 inst_string = push_str8f(scratch.arena, "%S%S%S%S", addr_part, code_bytes_part, inst.string, symbol_part); + DASM_Line line = {u32_from_u64_saturate(off), 0, inst.dst_vaddr, r1u64(inst_strings.total_size + inst_strings.node_count, + inst_strings.total_size + inst_strings.node_count + inst_string.size)}; + dasm_line_chunk_list_push(scratch.arena, &line_list, 1024, &line); + str8_list_push(scratch.arena, &inst_strings, inst_string); + + // rjf: increment + off += inst.size; + } } //- rjf: artifacts -> value bundle @@ -470,7 +342,10 @@ dasm_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_o } //- rjf: mark dependency on data hash - c_hash_downstream_inc(hash); + if(info_arena != 0) + { + c_hash_downstream_inc(hash); + } //- rjf: fill result if(info_arena != 0) diff --git a/src/disasm/disasm.h b/src/disasm/disasm.h index 11356b8a..816e9c19 100644 --- a/src/disasm/disasm.h +++ b/src/disasm/disasm.h @@ -37,7 +37,11 @@ struct DASM_Inst DASM_InstFlags flags; U32 size; String8 string; - U64 jump_dest_vaddr; + U64 dst_vaddr; + ARCH_RegCode dst_reg_code; + S64 dst_reg_off; + ARCH_RegCode src_reg_code; + S64 src_reg_off; }; //////////////////////////////// @@ -179,7 +183,7 @@ internal DASM_Inst dasm_inst_from_code(Arena *arena, Arch arch, U64 vaddr, Strin //////////////////////////////// //~ rjf: Control Flow Analysis -internal DASM_CtrlFlowInfo dasm_ctrl_flow_info_from_arch_vaddr_code(Arena *arena, DASM_InstFlags exit_points_mask, Arch arch, U64 vaddr, String8 code); +internal DASM_CtrlFlowInfo dasm_ctrl_flow_info_from_arch_vaddr_code(Arena *arena, DASM_InstFlags exit_points_mask, B32 include_last_inst, Arch arch, U64 vaddr, String8 code); //////////////////////////////// //~ rjf: Parameter Type Functions diff --git a/src/disasm/disasm_inc.c b/src/disasm/disasm_inc.c new file mode 100644 index 00000000..84d70068 --- /dev/null +++ b/src/disasm/disasm_inc.c @@ -0,0 +1,7 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "disasm/disasm.c" +#if defined(X64_H) +# include "x64/disasm/x64_disasm.c" +#endif diff --git a/src/disasm/disasm_inc.h b/src/disasm/disasm_inc.h new file mode 100644 index 00000000..fa7d170a --- /dev/null +++ b/src/disasm/disasm_inc.h @@ -0,0 +1,12 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DISASM_INC_H +#define DISASM_INC_H + +#include "disasm/disasm.h" +#if defined(X64_H) +# include "x64/disasm/x64_disasm.h" +#endif + +#endif // DISASM_INC_H diff --git a/src/draw/draw.c b/src/draw/draw.c index 250317cb..517cad79 100644 --- a/src/draw/draw.c +++ b/src/draw/draw.c @@ -44,6 +44,16 @@ dr_hash_from_string(String8 string) //////////////////////////////// //~ rjf: Fancy String Type Functions +internal void +dr_fstrs_push_front(Arena *arena, DR_FStrList *list, DR_FStr *str) +{ + DR_FStrNode *n = push_array_no_zero(arena, DR_FStrNode, 1); + MemoryCopyStruct(&n->v, str); + SLLQueuePushFront(list->first, list->last, n); + list->node_count += 1; + list->total_size += str->string.size; +} + internal void dr_fstrs_push(Arena *arena, DR_FStrList *list, DR_FStr *str) { @@ -216,7 +226,7 @@ dr_begin_frame(FNT_Tag icon_font) } internal void -dr_submit_bucket(OS_Handle os_window, R_Handle r_window, DR_Bucket *bucket) +dr_submit_bucket(WM_Window os_window, R_Handle r_window, DR_Bucket *bucket) { r_window_submit(os_window, r_window, &bucket->passes); } @@ -318,6 +328,7 @@ dr_rect(Rng2F32 dst, Vec4F32 color, F32 corner_radius, F32 border_thickness, F32 inst->border_thickness = border_thickness; inst->edge_softness = edge_softness; inst->white_texture_override = 1.f; + inst->shear = 0.f; bucket->last_cmd_stack_gen = bucket->stack_gen; return inst; } @@ -363,6 +374,7 @@ dr_img(Rng2F32 dst, Rng2F32 src, R_Handle texture, Vec4F32 color, F32 corner_rad inst->border_thickness = border_thickness; inst->edge_softness = edge_softness; inst->white_texture_override = 0.f; + inst->shear = 0.f; bucket->last_cmd_stack_gen = bucket->stack_gen; return inst; } diff --git a/src/draw/draw.h b/src/draw/draw.h index acc7ce64..a971b6ad 100644 --- a/src/draw/draw.h +++ b/src/draw/draw.h @@ -117,6 +117,7 @@ internal U64 dr_hash_from_string(String8 string); //////////////////////////////// //~ rjf: Fancy String Type Functions +internal void dr_fstrs_push_front(Arena *arena, DR_FStrList *list, DR_FStr *str); internal void dr_fstrs_push(Arena *arena, DR_FStrList *list, DR_FStr *str); internal void dr_fstrs_push_new_(Arena *arena, DR_FStrList *list, DR_FStrParams *params, DR_FStrParams *overrides, String8 string); #define dr_fstrs_push_new(arena, list, params, string, ...) dr_fstrs_push_new_((arena), (list), (params), &(DR_FStrParams){.size = 0, __VA_ARGS__}, (string)) @@ -133,7 +134,7 @@ internal Vec2F32 dr_dim_from_fstrs(F32 tab_size_px, DR_FStrList *fstrs); // (Frame boundaries & bucket submission) internal void dr_begin_frame(FNT_Tag icon_font); -internal void dr_submit_bucket(OS_Handle os_window, R_Handle r_window, DR_Bucket *bucket); +internal void dr_submit_bucket(WM_Window os_window, R_Handle r_window, DR_Bucket *bucket); //////////////////////////////// //~ rjf: Bucket Construction & Selection API diff --git a/src/draw/generated/draw.meta.c b/src/draw/generated/draw.meta.c index 2efd51aa..1f40856a 100644 --- a/src/draw/generated/draw.meta.c +++ b/src/draw/generated/draw.meta.c @@ -1,17 +1,17 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -internal R_Tex2DSampleKind dr_push_tex2d_sample_kind(R_Tex2DSampleKind v) {DR_StackPushImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind, v);} -internal Mat3x3F32 dr_push_xform2d(Mat3x3F32 v) {DR_StackPushImpl(XForm2D, xform2d, Mat3x3F32, v);} -internal Rng2F32 dr_push_clip(Rng2F32 v) {DR_StackPushImpl(Clip, clip, Rng2F32, v);} -internal F32 dr_push_transparency(F32 v) {DR_StackPushImpl(Transparency, transparency, F32, v);} -internal R_Tex2DSampleKind dr_pop_tex2d_sample_kind(void) {DR_StackPopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);} -internal Mat3x3F32 dr_pop_xform2d(void) {DR_StackPopImpl(XForm2D, xform2d, Mat3x3F32);} -internal Rng2F32 dr_pop_clip(void) {DR_StackPopImpl(Clip, clip, Rng2F32);} -internal F32 dr_pop_transparency(void) {DR_StackPopImpl(Transparency, transparency, F32);} -internal R_Tex2DSampleKind dr_top_tex2d_sample_kind(void) {DR_StackTopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);} -internal Mat3x3F32 dr_top_xform2d(void) {DR_StackTopImpl(XForm2D, xform2d, Mat3x3F32);} -internal Rng2F32 dr_top_clip(void) {DR_StackTopImpl(Clip, clip, Rng2F32);} -internal F32 dr_top_transparency(void) {DR_StackTopImpl(Transparency, transparency, F32);} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +internal R_Tex2DSampleKind dr_push_tex2d_sample_kind(R_Tex2DSampleKind v) {DR_StackPushImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind, v);} +internal Mat3x3F32 dr_push_xform2d(Mat3x3F32 v) {DR_StackPushImpl(XForm2D, xform2d, Mat3x3F32, v);} +internal Rng2F32 dr_push_clip(Rng2F32 v) {DR_StackPushImpl(Clip, clip, Rng2F32, v);} +internal F32 dr_push_transparency(F32 v) {DR_StackPushImpl(Transparency, transparency, F32, v);} +internal R_Tex2DSampleKind dr_pop_tex2d_sample_kind(void) {DR_StackPopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);} +internal Mat3x3F32 dr_pop_xform2d(void) {DR_StackPopImpl(XForm2D, xform2d, Mat3x3F32);} +internal Rng2F32 dr_pop_clip(void) {DR_StackPopImpl(Clip, clip, Rng2F32);} +internal F32 dr_pop_transparency(void) {DR_StackPopImpl(Transparency, transparency, F32);} +internal R_Tex2DSampleKind dr_top_tex2d_sample_kind(void) {DR_StackTopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);} +internal Mat3x3F32 dr_top_xform2d(void) {DR_StackTopImpl(XForm2D, xform2d, Mat3x3F32);} +internal Rng2F32 dr_top_clip(void) {DR_StackTopImpl(Clip, clip, Rng2F32);} +internal F32 dr_top_transparency(void) {DR_StackTopImpl(Transparency, transparency, F32);} diff --git a/src/draw/generated/draw.meta.h b/src/draw/generated/draw.meta.h index 58db1f4e..017fb418 100644 --- a/src/draw/generated/draw.meta.h +++ b/src/draw/generated/draw.meta.h @@ -1,49 +1,49 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef DRAW_META_H -#define DRAW_META_H - -typedef struct DR_Tex2DSampleKindNode DR_Tex2DSampleKindNode; struct DR_Tex2DSampleKindNode {DR_Tex2DSampleKindNode *next; R_Tex2DSampleKind v;}; -typedef struct DR_XForm2DNode DR_XForm2DNode; struct DR_XForm2DNode {DR_XForm2DNode *next; Mat3x3F32 v;}; -typedef struct DR_ClipNode DR_ClipNode; struct DR_ClipNode {DR_ClipNode *next; Rng2F32 v;}; -typedef struct DR_TransparencyNode DR_TransparencyNode; struct DR_TransparencyNode {DR_TransparencyNode *next; F32 v;}; -#define DR_BucketStackDecls struct{\ -DR_Tex2DSampleKindNode *top_tex2d_sample_kind;\ -DR_XForm2DNode *top_xform2d;\ -DR_ClipNode *top_clip;\ -DR_TransparencyNode *top_transparency;\ -} -read_only global DR_Tex2DSampleKindNode dr_nil_tex2d_sample_kind = {0, R_Tex2DSampleKind_Nearest}; -read_only global DR_XForm2DNode dr_nil_xform2d = {0, {1, 0, 0, 0, 1, 0, 0, 0, 1}}; -read_only global DR_ClipNode dr_nil_clip = {0, {0}}; -read_only global DR_TransparencyNode dr_nil_transparency = {0, 0}; -#define DR_BucketStackInits(b) do{\ -(b)->top_tex2d_sample_kind = &dr_nil_tex2d_sample_kind;\ -(b)->top_xform2d = &dr_nil_xform2d;\ -(b)->top_clip = &dr_nil_clip;\ -(b)->top_transparency = &dr_nil_transparency;\ -}while(0) -#if 0 -internal R_Tex2DSampleKind dr_push_tex2d_sample_kind(R_Tex2DSampleKind v); -internal Mat3x3F32 dr_push_xform2d(Mat3x3F32 v); -internal Rng2F32 dr_push_clip(Rng2F32 v); -internal F32 dr_push_transparency(F32 v); -internal R_Tex2DSampleKind dr_pop_tex2d_sample_kind(void); -internal Mat3x3F32 dr_pop_xform2d(void); -internal Rng2F32 dr_pop_clip(void); -internal F32 dr_pop_transparency(void); -internal R_Tex2DSampleKind dr_top_tex2d_sample_kind(void); -internal Mat3x3F32 dr_top_xform2d(void); -internal Rng2F32 dr_top_clip(void); -internal F32 dr_top_transparency(void); -#endif -#if 0 -#define DR_Tex2DSampleKindScope(v) DeferLoop(dr_push_tex2d_sample_kind(v), dr_pop_tex2d_sample_kind()) -#define DR_XForm2DScope(v) DeferLoop(dr_push_xform2d(v), dr_pop_xform2d()) -#define DR_ClipScope(v) DeferLoop(dr_push_clip(v), dr_pop_clip()) -#define DR_TransparencyScope(v) DeferLoop(dr_push_transparency(v), dr_pop_transparency()) -#endif -#endif // DRAW_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef DRAW_META_H +#define DRAW_META_H + +typedef struct DR_Tex2DSampleKindNode DR_Tex2DSampleKindNode; struct DR_Tex2DSampleKindNode {DR_Tex2DSampleKindNode *next; R_Tex2DSampleKind v;}; +typedef struct DR_XForm2DNode DR_XForm2DNode; struct DR_XForm2DNode {DR_XForm2DNode *next; Mat3x3F32 v;}; +typedef struct DR_ClipNode DR_ClipNode; struct DR_ClipNode {DR_ClipNode *next; Rng2F32 v;}; +typedef struct DR_TransparencyNode DR_TransparencyNode; struct DR_TransparencyNode {DR_TransparencyNode *next; F32 v;}; +#define DR_BucketStackDecls struct{\ +DR_Tex2DSampleKindNode *top_tex2d_sample_kind;\ +DR_XForm2DNode *top_xform2d;\ +DR_ClipNode *top_clip;\ +DR_TransparencyNode *top_transparency;\ +} +read_only global DR_Tex2DSampleKindNode dr_nil_tex2d_sample_kind = {0, R_Tex2DSampleKind_Nearest}; +read_only global DR_XForm2DNode dr_nil_xform2d = {0, {1, 0, 0, 0, 1, 0, 0, 0, 1}}; +read_only global DR_ClipNode dr_nil_clip = {0, {0}}; +read_only global DR_TransparencyNode dr_nil_transparency = {0, 0}; +#define DR_BucketStackInits(b) do{\ +(b)->top_tex2d_sample_kind = &dr_nil_tex2d_sample_kind;\ +(b)->top_xform2d = &dr_nil_xform2d;\ +(b)->top_clip = &dr_nil_clip;\ +(b)->top_transparency = &dr_nil_transparency;\ +}while(0) +#if 0 +internal R_Tex2DSampleKind dr_push_tex2d_sample_kind(R_Tex2DSampleKind v); +internal Mat3x3F32 dr_push_xform2d(Mat3x3F32 v); +internal Rng2F32 dr_push_clip(Rng2F32 v); +internal F32 dr_push_transparency(F32 v); +internal R_Tex2DSampleKind dr_pop_tex2d_sample_kind(void); +internal Mat3x3F32 dr_pop_xform2d(void); +internal Rng2F32 dr_pop_clip(void); +internal F32 dr_pop_transparency(void); +internal R_Tex2DSampleKind dr_top_tex2d_sample_kind(void); +internal Mat3x3F32 dr_top_xform2d(void); +internal Rng2F32 dr_top_clip(void); +internal F32 dr_top_transparency(void); +#endif +#if 0 +#define DR_Tex2DSampleKindScope(v) DeferLoop(dr_push_tex2d_sample_kind(v), dr_pop_tex2d_sample_kind()) +#define DR_XForm2DScope(v) DeferLoop(dr_push_xform2d(v), dr_pop_xform2d()) +#define DR_ClipScope(v) DeferLoop(dr_push_clip(v), dr_pop_clip()) +#define DR_TransparencyScope(v) DeferLoop(dr_push_transparency(v), dr_pop_transparency()) +#endif +#endif // DRAW_META_H diff --git a/src/dwarf/dwarf.c b/src/dwarf/dwarf.c index 508c2594..01e985a0 100644 --- a/src/dwarf/dwarf.c +++ b/src/dwarf/dwarf.c @@ -1,819 +1,450 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +//////////////////////////////// +//~ rjf: Includes + +#include "dwarf/generated/dwarf.meta.c" +#if defined(X64_H) +# include "dwarf/x64/dwarf_x64.c" +#endif + +//////////////////////////////// +//~ rjf: X-List Helpers + +//- rjf: format address sizes + internal U64 -dw_reg_size_from_code_x86(DW_Reg reg_code) +dw_addr_size_from_format(DW_Format fmt) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return reg_size; - DW_Regs_X86_XList(X) + U64 result = 0; + switch(fmt) + { + default:{}break; +#define X(name, string, addr_size) case DW_Format_##name:{result = (addr_size);}break; + DW_Format_XList #undef X } - return 0; + return result; } -internal U64 -dw_reg_pos_from_code_x86(DW_Reg reg_code) +//- rjf: attribute classes + +internal DW_AttribClass +dw_attrib_class_from_kind(DW_Version version, DW_ExtFlags exts, DW_AttribKind k) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX86_##reg_name_dw: return reg_pos; - DW_Regs_X86_XList(X) + DW_AttribClass result = 0; + if(result == 0) switch(k) + { + default:{}break; +#define X(name, code, version, classes) case DW_AttribKind_##name:{result = (classes);}break; + DW_AttribKind_XList #undef X } - return max_U64; + for(B32 retry = 0; !result && retry <= 1; retry += 1) + { + if(result == 0 && exts & DW_ExtFlag_GNU) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_GNU_AttribKind_##name:{result = (classes);}break; + DW_GNU_AttribKind_XList +#undef X + } + if(result == 0 && exts & DW_ExtFlag_LLVM) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_LLVM_AttribKind_##name:{result = (classes);}break; + DW_LLVM_AttribKind_XList +#undef X + } + if(result == 0 && exts & DW_ExtFlag_Apple) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_Apple_AttribKind_##name:{result = (classes);}break; + DW_Apple_AttribKind_XList +#undef X + } + if(result == 0 && exts & DW_ExtFlag_MIPS) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_MIPS_AttribKind_##name:{result = (classes);}break; + DW_MIPS_AttribKind_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; } -internal U64 -dw_reg_size_from_code_x64(DW_Reg reg_code) +internal DW_AttribClass +dw_attrib_class_from_form_kind(DW_Version version, DW_ExtFlags exts, DW_FormKind k) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return reg_size; - DW_Regs_X64_XList(X) + DW_AttribClass result = 0; + if(result == 0) switch(k) + { + default:{}break; +#define X(name, code, version, classes) case DW_FormKind_##name:{result = (classes);}break; + DW_FormKind_XList #undef X } - return 0; + for(B32 retry = 0; !result && retry <= 1; retry += 1) + { + if(result == 0 && exts & DW_ExtFlag_GNU) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_GNU_FormKind_##name:{result = (classes);}break; + DW_GNU_FormKind_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; } -internal U64 -dw_reg_pos_from_code_x64(DW_Reg reg_code) +//- rjf: expr op metadata + +internal DW_ExprOpInfo * +dw_info_from_expr_op(DW_Version version, DW_ExtFlags exts, DW_ExprOp op) { - switch (reg_code) { -#define X(reg_name_dw, reg_code_dw, reg_name_rdi, reg_pos, reg_size) case DW_RegX64_##reg_name_dw: return reg_pos; - DW_Regs_X64_XList(X) + DW_ExprOpInfo *result = &dw_expr_op_info_nil; + if(result == &dw_expr_op_info_nil) switch(op) + { + default:{}break; +#define X(name_, code, version_, operand_count_, pop_count_, push_count_, operand_kind_0, operand_kind_1, valid_for_cfa_exprs_) case DW_ExprOp_##name_:{local_persist DW_ExprOpInfo info = {.push_count = (push_count_), .pop_count = (pop_count_), .operand_count = (operand_count_), .valid_for_cfa_exprs = (valid_for_cfa_exprs_), .operand_kinds = {DW_ExprOperandKind_##operand_kind_0, DW_ExprOperandKind_##operand_kind_1}, .name = str8_lit_comp(#name_), .version = DW_Version_##version_}; result = &info;}break; + DW_ExprOp_XList #undef X } - return max_U64; + for(B32 retry = 0; (result == &dw_expr_op_info_nil) && retry <= 1; retry += 1) + { + if((result == &dw_expr_op_info_nil) && exts & DW_ExtFlag_GNU) switch(op) + { + default:{}break; +#define X(name_, code, operand_count_, pop_count_, push_count_, operand_kind_0, operand_kind_1, valid_for_cfa_exprs_) case DW_GNU_ExprOp_##name_:{local_persist DW_ExprOpInfo info = {.push_count = (push_count_), .pop_count = (pop_count_), .operand_count = (operand_count_), .valid_for_cfa_exprs = (valid_for_cfa_exprs_), .operand_kinds = {DW_ExprOperandKind_##operand_kind_0, DW_ExprOperandKind_##operand_kind_1}, .name = str8_lit_comp(#name_)}; result = &info;}break; + DW_GNU_ExprOp_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; } -internal U64 -dw_reg_size_from_code(Arch arch, DW_Reg reg_code) +//- rjf: enum -> string + +internal String8 +dw_string_from_format(DW_Format fmt) { - switch (arch) { - case Arch_Null: break; - case Arch_x86: return dw_reg_size_from_code_x86(reg_code); - case Arch_x64: return dw_reg_size_from_code_x64(reg_code); - default: NotImplemented; break; + String8 result = {0}; + switch(fmt) + { + default:{}break; +#define X(name, string, addr_size) case DW_Format_##name:{result = str8_lit(string);}break; + DW_Format_XList +#undef X } - return 0; + return result; } -internal U64 -dw_reg_pos_from_code(Arch arch, DW_Reg reg_code) +internal String8 +dw_string_from_tag_kind(DW_Version version, DW_ExtFlags exts, DW_TagKind k) { - switch (arch) { - case Arch_Null: break; - case Arch_x86: return dw_reg_pos_from_code_x86(reg_code); - case Arch_x64: return dw_reg_pos_from_code_x64(reg_code); - default: NotImplemented; break; + String8 result = {0}; + if(result.size == 0) switch(k) + { + default:{}break; +#define X(name, code, version) case DW_TagKind_##name:{result = s(#name);}break; + DW_TagKind_XList +#undef X } - return max_U64; + for(B32 retry = 0; !result.size && retry <= 1; retry += 1) + { + if(result.size == 0 && exts & DW_ExtFlag_GNU) switch(k) + { +#define X(name, code) case DW_GNU_TagKind_##name:{result = s(#name);}break; + DW_GNU_TagKind_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; } +internal String8 +dw_string_from_attrib_kind(DW_Version version, DW_ExtFlags exts, DW_AttribKind k) +{ + String8 result = {0}; + if(result.size == 0) switch(k) + { + default:{}break; +#define X(name, code, version, classes) case DW_AttribKind_##name:{result = s(#name);}break; + DW_AttribKind_XList +#undef X + } + for(B32 retry = 0; !result.size && retry <= 1; retry += 1) + { + if(result.size == 0 && exts & DW_ExtFlag_GNU) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_GNU_AttribKind_##name:{result = s(#name);}break; + DW_GNU_AttribKind_XList +#undef X + } + if(result.size == 0 && exts & DW_ExtFlag_LLVM) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_LLVM_AttribKind_##name:{result = s(#name);}break; + DW_LLVM_AttribKind_XList +#undef X + } + if(result.size == 0 && exts & DW_ExtFlag_Apple) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_Apple_AttribKind_##name:{result = s(#name);}break; + DW_Apple_AttribKind_XList +#undef X + } + if(result.size == 0 && exts & DW_ExtFlag_MIPS) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_MIPS_AttribKind_##name:{result = s(#name);}break; + DW_MIPS_AttribKind_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; +} + +internal String8 +dw_string_from_form_kind(DW_Version version, DW_ExtFlags exts, DW_FormKind k) +{ + String8 result = {0}; + if(result.size == 0) switch(k) + { + default:{}break; +#define X(name, code, version, classes) case DW_FormKind_##name:{result = s(#name);}break; + DW_FormKind_XList +#undef X + } + for(B32 retry = 0; !result.size && retry <= 1; retry += 1) + { + if(result.size == 0 && exts & DW_ExtFlag_GNU) switch(k) + { + default:{}break; +#define X(name, code, classes) case DW_GNU_FormKind_##name:{result = s(#name);}break; + DW_GNU_FormKind_XList +#undef X + } + exts = DW_ExtFlag_All; + } + return result; +} + +internal String8 +dw_string_from_language(DW_Language k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_Language_##name:{result = s(#name);}break; + DW_Language_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_comp_unit_kind(DW_CompUnitKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_CompUnitKind_##name:{result = s(#name);}break; + DW_CompUnitKind_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_inl_kind(DW_InlKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_InlKind_##name:{result = s(#name);}break; + DW_InlKind_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_access_kind(DW_AccessKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_AccessKind_##name:{result = s(#name);}break; + DW_AccessKind_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_calling_convention_kind(DW_CallingConventionKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_CallingConventionKind_##name:{result = s(#name);}break; + DW_CallingConventionKind_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_ate(DW_ATE k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_ATE_##name:{result = s(#name);}break; + DW_ATE_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_visibility_kind(DW_VisibilityKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, ...) case DW_VisibilityKind_##name:{result = s(#name);}break; + DW_VisibilityKind_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_std_opcode(DW_StdOpcode opcode) +{ + String8 result = {0}; + switch(opcode) + { + default:{}break; +#define X(name, ...) case DW_StdOpcode_##name:{result = s(#name);}break; + DW_StdOpcode_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_ext_opcode(DW_ExtOpcode opcode) +{ + String8 result = {0}; + switch(opcode) + { + default:{}break; +#define X(name, ...) case DW_ExtOpcode_##name:{result = s(#name);}break; + DW_ExtOpcode_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_lle(DW_LLE lle) +{ + String8 result = {0}; + switch(lle) + { + default:{}break; +#define X(name, ...) case DW_LLE_##name:{result = s(#name);}break; + DW_LLE_XList +#undef X + } + return result; +} + +internal String8 +dw_string_from_rle(DW_RLE rle) +{ + String8 result = {0}; + switch(rle) + { + default:{}break; +#define X(name, ...) case DW_RLE_##name:{result = s(#name);}break; + DW_RLE_XList +#undef X + } + return result; +} + +internal String8 +dw_regular_name_from_section_kind(DW_SectionKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, regular_name, ...) case DW_SectionKind_##name:{result = str8_lit(regular_name);}break; + DW_SectionKind_XList +#undef X + } + return result; +} + +internal String8 +dw_macho_name_from_section_kind(DW_SectionKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, regular_name, macho_name, ...) case DW_SectionKind_##name:{result = str8_lit(macho_name);}break; + DW_SectionKind_XList +#undef X + } + return result; +} + +internal String8 +dw_dwo_name_from_section_kind(DW_SectionKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; +#define X(name, regular_name, macho_name, dwo_name, ...) case DW_SectionKind_##name:{result = str8_lit(dwo_name);}break; + DW_SectionKind_XList +#undef X + } + return result; +} + +//- rjf: architecture info + internal U64 dw_reg_count_from_arch(Arch arch) -{ - switch (arch) { - default: { NotImplemented; } // fall-through - case Arch_Null: return 0; - case Arch_x86: return DW_RegX86_Last; - case Arch_x64: return DW_RegX64_Last; - } -} - -internal U64 -dw_reg_max_size_from_arch(Arch arch) -{ - local_persist U64 max_size = 0; - if (max_size == 0) { - U64 max_idx = dw_reg_count_from_arch(arch); - for EachIndex(reg_idx, max_idx) { - U64 reg_size = dw_reg_size_from_code(arch, reg_idx); - max_size = Max(max_size, reg_size); - } - } - return max_size; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_v2(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_V2_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_v3(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_V3_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_v4(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_V4_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_v5(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_V5_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_gnu(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_GNU_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_llvm(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_LLVM_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_apple(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_APPLE_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib_mips(DW_AttribKind k) -{ - switch (k) { -#define X(_N,_C) case DW_AttribKind_##_N: return _C; - DW_AttribKind_ClassFlags_MIPS_XList(X) -#undef X - } - return DW_AttribClass_Null; -} - -internal DW_AttribClass -dw_attrib_class_from_attrib(DW_Version ver, DW_Ext ext, DW_AttribKind k) -{ - DW_AttribClass result = DW_AttribClass_Null; - - while (ext) { - U64 z = 64-clz64(ext); - if (z == 0) { - break; - } - U64 flag = 1 << (z-1); - ext &= ~flag; - - switch (flag) { - case DW_Ext_Null: break; - case DW_Ext_GNU: result = dw_attrib_class_from_attrib_gnu(k); break; - case DW_Ext_LLVM: result = dw_attrib_class_from_attrib_llvm(k); break; - case DW_Ext_APPLE: result = dw_attrib_class_from_attrib_apple(k); break; - case DW_Ext_MIPS: result = dw_attrib_class_from_attrib_mips(k); break; - default: InvalidPath; break; - } - - if (result != DW_AttribClass_Null) { - break; - } - } - - if (result == DW_AttribClass_Null) { - switch (ver) { - case DW_Version_Null: break; - case DW_Version_1: AssertAlways(!"DWARF V1 is not supported"); break; - case DW_Version_2: result = dw_attrib_class_from_attrib_v2(k); break; - case DW_Version_3: result = dw_attrib_class_from_attrib_v3(k); break; - case DW_Version_4: result = dw_attrib_class_from_attrib_v4(k); break; - case DW_Version_5: result = dw_attrib_class_from_attrib_v5(k); break; - default: InvalidPath; break; - } - } - - return result; -} - -internal DW_AttribClass -dw_attrib_class_from_form_kind(DW_Version ver, DW_FormKind k) -{ -#define X(_N,_C) case DW_Form_##_N: return _C; - - switch (k) { - DW_Form_AttribClass_GNU_XList(X) - } - - switch (ver) { - case DW_Version_5: { - switch (k) { - DW_Form_AttribClass_V5_XList(X) - } - } break; - case DW_Version_4: { - switch (k) { - DW_Form_AttribClass_V4_XList(X) - } - } break; - case DW_Version_3: { - switch (k) { - DW_Form_AttribClass_V2_XList(X) - } - } break; - case DW_Version_2: { - switch (k) { - DW_Form_AttribClass_V2_XList(X) - } - } break; - case DW_Version_1: { - } break; - case DW_Version_Null: break; - } -#undef X - - return DW_AttribClass_Null; -} - -internal B32 -dw_are_attrib_class_and_form_kind_compatible(DW_Version ver, DW_AttribClass attrib_class, DW_FormKind form_kind) -{ - DW_AttribClass compat_flags = dw_attrib_class_from_form_kind(ver, form_kind); - B32 are_compat = (attrib_class & compat_flags) != 0; - return are_compat; -} - -internal String8 -dw_name_string_from_section_kind(DW_SectionKind k) -{ - switch (k) { -#define X(_N,_L,_M,_D) case DW_Section_##_N: return str8_lit(_L); - DW_SectionKind_XList(X) -#undef X - } - return str8_zero(); -} - -internal String8 -dw_mach_name_string_from_section_kind(DW_SectionKind k) -{ - switch (k) { -#define X(_N,_L,_M,_D) case DW_Section_##_N: return str8_lit(_M); - DW_SectionKind_XList(X) -#undef X - } - return str8_zero(); -} - -internal String8 -dw_dwo_name_string_from_section_kind(DW_SectionKind k) -{ - switch (k) { -#define X(_N,_L,_M,_D) case DW_Section_##_N: return str8_lit(_D); - DW_SectionKind_XList(X) -#undef X - } - return str8_zero(); -} - -internal U64 -dw_size_from_format(DW_Format format) { U64 result = 0; - switch (format) { - case DW_Format_Null: break; - case DW_Format_32Bit: result = 4; break; - case DW_Format_64Bit: result = 8; break; - default: InvalidPath; break; + switch(arch) + { + default:{}break; + case Arch_x64:{result = DW_RegCodeX64_LAST;}break; } return result; } - -internal DW_AttribClass -dw_pick_attrib_value_class(DW_Version ver, DW_Ext ext, B32 relaxed, DW_AttribKind attrib_kind, DW_FormKind form_kind) -{ - // NOTE(rjf): DWARF's spec specifies two mappings: - // (DW_AttribKind) => List(DW_AttribClass) - // (DW_FormKind) => List(DW_AttribClass) - // - // This function's purpose is to find the overlapping class between an - // DW_AttribKind and DW_FormKind. - - DW_AttribClass attrib_class = dw_attrib_class_from_attrib(ver, ext, attrib_kind); - DW_AttribClass form_class = dw_attrib_class_from_form_kind(ver, form_kind); - - if(relaxed) - { - if(attrib_class == DW_AttribClass_Null || form_class == DW_AttribClass_Null) - { - attrib_class = dw_attrib_class_from_attrib(DW_Version_Last, ext, attrib_kind); - form_class = dw_attrib_class_from_form_kind(DW_Version_Last, form_kind); - } - } - - DW_AttribClass result = DW_AttribClass_Null; - if(attrib_class != DW_AttribClass_Null && form_class != DW_AttribClass_Null) - { - result = DW_AttribClass_Undefined; - - for(U32 i = 0; i < 32; ++i) - { - U32 n = 1u << i; - if((attrib_class & n) != 0 && (form_class & n) != 0) - { - result = ((DW_AttribClass) n); - break; - } - } - } - - return result; -} - -internal U64 -dw_pick_default_lower_bound(DW_Language lang) -{ - U64 lower_bound = max_U64; - switch (lang) { - case DW_Language_Null: break; - case DW_Language_C89: - case DW_Language_C: - case DW_Language_CPlusPlus: - case DW_Language_C99: - case DW_Language_CPlusPlus03: - case DW_Language_CPlusPlus11: - case DW_Language_C11: - case DW_Language_CPlusPlus14: - case DW_Language_Java: - case DW_Language_ObjC: - case DW_Language_ObjCPlusPlus: - case DW_Language_UPC: - case DW_Language_D: - case DW_Language_Python: - case DW_Language_OpenCL: - case DW_Language_Go: - case DW_Language_Haskell: - case DW_Language_OCaml: - case DW_Language_Rust: - case DW_Language_Swift: - case DW_Language_Dylan: - case DW_Language_RenderScript: - case DW_Language_BLISS: - lower_bound = 0; - break; - case DW_Language_Ada83: - case DW_Language_Cobol74: - case DW_Language_Cobol85: - case DW_Language_Fortran77: - case DW_Language_Fortran90: - case DW_Language_Pascal83: - case DW_Language_Modula2: - case DW_Language_Ada95: - case DW_Language_Fortran95: - case DW_Language_PLI: - case DW_Language_Modula3: - case DW_Language_Julia: - case DW_Language_Fortran03: - case DW_Language_Fortran08: - lower_bound = 1; - default: - NotImplemented; - break; - } - return lower_bound; -} - -internal U64 -dw_operand_count_from_expr_op(DW_ExprOp op) -{ - switch (op) { -#define X(_N, _ID, _OPER_COUNT, _POP_COUNT, _PUSH_COUNT) case _ID: return _OPER_COUNT; - DW_Expr_V3_XList(X) - DW_Expr_V4_XList(X) - DW_Expr_V5_XList(X) - DW_Expr_GNU_XList(X) -#undef X - default: { NotImplemented; } break; - } - return 0; -} - -internal U64 -dw_pop_count_from_expr_op(DW_ExprOp op) -{ - switch (op) { -#define X(_N, _ID, _OPER_COUNT, _POP_COUNT, _PUSH_COUNT) case _ID: return _POP_COUNT; - DW_Expr_V3_XList(X) - DW_Expr_V4_XList(X) - DW_Expr_V5_XList(X) - DW_Expr_GNU_XList(X) -#undef X - default: { NotImplemented; } break; - } - return 0; -} - -internal U64 -dw_push_count_from_expr_op(DW_ExprOp op) -{ - switch (op) { -#define X(_N, _ID, _OPER_COUNT, _POP_COUNT, _PUSH_COUNT) case _ID: return _PUSH_COUNT; - DW_Expr_V3_XList(X) - DW_Expr_V4_XList(X) - DW_Expr_V5_XList(X) - DW_Expr_GNU_XList(X) -#undef X - default: { NotImplemented; } break; - } - return 0; -} - -internal U64 -dw_operand_count_from_cfa_opcode(DW_CFA_Opcode opcode) -{ - switch (opcode) { -#define X(_N, _ID, ...) case _ID: { local_persist DW_CFA_OperandType t[] = { DW_CFA_OperandType_Null, __VA_ARGS__ }; return ArrayCount(t)-1; } - DW_CFA_Kind_XList(X) -#undef X - default: { NotImplemented; } break; - } - return 0; -} - -internal B32 -dw_is_cfa_expr_opcode_invalid(DW_ExprOp opcode) -{ - B32 is_invalid = 0; - switch (opcode) { - case DW_ExprOp_Addrx: - case DW_ExprOp_Call2: - case DW_ExprOp_Call4: - case DW_ExprOp_CallRef: - case DW_ExprOp_ConstType: - case DW_ExprOp_Constx: - case DW_ExprOp_Convert: - case DW_ExprOp_DerefType: - case DW_ExprOp_RegvalType: - case DW_ExprOp_Reinterpret: - case DW_ExprOp_PushObjectAddress: - case DW_ExprOp_CallFrameCfa: { - is_invalid = 1; - } break; - default: break; - } - return is_invalid; -} - -internal B32 -dw_is_new_row_cfa_opcode(DW_CFA_Opcode opcode) -{ - B32 is_new_row_op = 0; - switch (opcode) { - case DW_CFA_SetLoc: - case DW_CFA_AdvanceLoc: - case DW_CFA_AdvanceLoc1: - case DW_CFA_AdvanceLoc2: - case DW_CFA_AdvanceLoc4: { - is_new_row_op = 1; - } break; - default: break; - } - return is_new_row_op; -} - -internal DW_CFA_OperandType * -dw_operand_types_from_cfa_op(DW_CFA_Opcode opcode) -{ - switch (opcode) { -#define X(_N, _ID, ...) case _ID: { local_persist DW_CFA_OperandType t[] = { DW_CFA_OperandType_Null, __VA_ARGS__ }; return &t[0] + 1; } - DW_CFA_Kind_XList(X) -#undef X - default: { NotImplemented; } break; - } - return 0; -} - -//////////////////////////////// -//~ rjf: String <=> Enum - -internal String8 -dw_string_from_format(DW_Format format) -{ - switch (format) { - case DW_Format_Null: return str8_zero(); - case DW_Format_32Bit: return str8_lit("DWARF32"); - case DW_Format_64Bit: return str8_lit("DWARF64"); - } - return str8_zero(); -} - -internal String8 -dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op) -{ - String8 result = {0}; - -#define X(_N,...) case DW_ExprOp_##_N: result = str8_lit(Stringify(_N)); goto exit; - if (ext & DW_Ext_GNU) { - switch (op) { - DW_Expr_GNU_XList(X); - } - } - - switch (ver) { - case DW_Version_5: { - switch (op) { - DW_Expr_V5_XList(X) - } - } // fall-through - case DW_Version_4: { - switch (op) { - DW_Expr_V4_XList(X) - } - } // fall-through - case DW_Version_3: { - switch (op) { - DW_Expr_V3_XList(X) - } - } // fall-through - case DW_Version_2: - case DW_Version_1: - case DW_Version_Null: - break; - } -#undef X - - result = push_str8f(arena, "%x", op); - - exit:; - return result; -} - -internal String8 -dw_string_from_tag_kind(Arena *arena, DW_TagKind kind) -{ - switch (kind) { - case DW_TagKind_Null: return str8_lit("Null"); -#define X(_N,_ID) case DW_TagKind_##_N: return str8_lit(Stringify(_N)); - DW_TagKind_V3_XList(X) - DW_TagKind_V5_XList(X) - DW_TagKind_GNU_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind) -{ -#define X(_N,...) case DW_AttribKind_##_N:{result = str8_lit(Stringify(_N));}break; - String8 result = {0}; - - //- rjf: try extensions - if(result.size != 0) - { - while(ext) - { - U64 z = 64-clz64(ext); - if(z == 0) - { - break; - } - U64 flag = 1 << (z-1); - ext &= ~flag; - switch(flag) - { - default:{}break; - case DW_Ext_Null: break; - case DW_Ext_GNU: switch (kind) { DW_AttribKind_GNU_XList(X) } break; - case DW_Ext_LLVM: switch (kind) { DW_AttribKind_LLVM_XList(X) } break; - case DW_Ext_APPLE: switch (kind) { DW_AttribKind_APPLE_XList(X) } break; - case DW_Ext_MIPS: switch (kind) { DW_AttribKind_MIPS_XList(X) } break; - } - } - } - - //- rjf: try version - if(result.size == 0) - { - for(U64 retry = 0; retry < 2; retry += 1) - { - DW_Version version = retry ? DW_Version_5 : ver; - switch(version) - { - case DW_Version_5: { switch(kind) { DW_AttribKind_V5_XList(X) } } // fall-through - case DW_Version_4: { switch(kind) { DW_AttribKind_V4_XList(X) } } // fall-through - case DW_Version_3: { switch(kind) { DW_AttribKind_V3_XList(X) } } // fall-through - case DW_Version_2: { switch(kind) { DW_AttribKind_V2_XList(X) } } // fall-through - case DW_Version_1: {}break; - case DW_Version_Null:{}break; - default:{}break; - } - } - } - - //- rjf: fallback - if(result.size == 0) - { - result = push_str8f(arena, "#%u", kind); - } - -#undef X - return result; -} - -internal String8 -dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind) -{ -#define X(_N,...) case DW_Form_##_N: return str8_lit(Stringify(_N)); - switch (ver) { - case DW_Version_5: { - switch (kind) { - DW_Form_V5_XList(X) - } - } // fall-through - case DW_Version_4: { - switch (kind) { - DW_Form_V4_XList(X) - } - } // fall-through - case DW_Version_3: - case DW_Version_2: { - switch (kind) { - DW_Form_V2_XList(X) - } - } // fall-through - case DW_Version_Null: break; - } -#undef X - String8 result = push_str8f(arena, "%x", kind); - return result; -} - -internal String8 -dw_string_from_language(Arena *arena, DW_Language kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_Language_##_N: return str8_lit(Stringify(_N)); - DW_Language_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_inl(Arena *arena, DW_InlKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_Inl_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_access_kind(Arena *arena, DW_AccessKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_AccessKind_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_calling_convetion(Arena *arena, DW_CallingConventionKind kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_CallingConventionKind_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_attrib_type_encoding(Arena *arena, DW_ATE kind) -{ - switch (kind) { -#define X(_N,_ID) case _ID: return str8_lit(Stringify(_N)); - DW_ATE_XList(X) -#undef X - } - return push_str8f(arena, "%llx", kind); -} - -internal String8 -dw_string_from_std_opcode(Arena *arena, DW_StdOpcode kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_StdOpcode_##_N: return str8_lit(Stringify(_N)); - DW_StdOpcode_XList(X) -#undef X - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_ext_opcode(Arena *arena, DW_ExtOpcode kind) -{ - switch (kind) { -#define X(_N,_ID) case DW_ExtOpcode_##_N: return str8_lit(Stringify(_N)); - DW_ExtOpcode_XList(X) -#undef X - default: InvalidPath; break; - } - return push_str8f(arena, "%x", kind); -} - -internal String8 -dw_string_from_loc_list_entry_kind(Arena *arena, DW_LLE kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_section_kind(Arena *arena, DW_SectionKind kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_rng_list_entry_kind(Arena *arena, DW_RLE kind) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_string_from_register(Arena *arena, Arch arch, U64 reg_id) -{ - String8 reg_str = str8_zero(); - switch (arch) { - case Arch_Null: break; - case Arch_x86: { - switch (reg_id) { -#define X(_N, _ID, ...) case DW_RegX86_##_N: reg_str = str8_lit(Stringify(_N)); break; - DW_Regs_X86_XList(X) -#undef X - } - } break; - case Arch_x64: { - switch (reg_id) { -#define X(_N, _ID, ...) case DW_RegX64_##_N: reg_str = str8_lit(Stringify(_N)); break; - DW_Regs_X64_XList(X) -#undef X - } - } break; - case Arch_arm32: NotImplemented; break; - case Arch_arm64: NotImplemented; break; - default: InvalidPath; break; - } - if (reg_str.size == 0) { - reg_str = push_str8f(arena, "%#llx", reg_id); - } - return reg_str; -} - -internal String8 -dw_string_from_cfa_opcode(DW_CFA_Opcode opcode) -{ - switch (opcode) { -#define X(_NAME, _ID, ...) case _ID: return str8_lit(Stringify(_NAME)); - DW_CFA_Kind_XList(X) -#undef X - default: InvalidPath; break; - } - return str8_zero(); -} diff --git a/src/dwarf/dwarf.h b/src/dwarf/dwarf.h index 7f9e9c61..3dfce316 100644 --- a/src/dwarf/dwarf.h +++ b/src/dwarf/dwarf.h @@ -4,1818 +4,65 @@ #ifndef DWARF_H #define DWARF_H -typedef U16 DW_Version; -typedef enum DW_VersionEnum -{ - DW_Version_Null, - DW_Version_1, - DW_Version_2, - DW_Version_3, - DW_Version_4, - DW_Version_5, - DW_Version_Last = DW_Version_5 -} DW_VersionEnum; +//////////////////////////////// +//~ rjf: Includes -typedef U64 DW_Ext; -typedef enum DW_ExtEnum -{ - DW_Ext_Null, - - DW_Ext_GNU = (1 << 0), - DW_Ext_LLVM = (1 << 1), - DW_Ext_APPLE = (1 << 2), - DW_Ext_MIPS = (1 << 3), - - DW_Ext_All = DW_Ext_GNU|DW_Ext_LLVM|DW_Ext_APPLE|DW_Ext_MIPS, -} DW_ExtEnum; - -#define DW_FormatFromSize(size) ((size) >= max_U32 ? DW_Format_64Bit : DW_Format_32Bit) -typedef enum DW_Format -{ - DW_Format_Null, - DW_Format_32Bit, - DW_Format_64Bit -} DW_Format; - -#define DW_SentinelFromSize(address_size) ((address_size) == 4 ? max_U32 : (address_size) == 8 ? max_U64 : 0) - -#define DW_SectionKind_XList(X )\ -X(Null, "", "", "" )\ -X(Abbrev, ".debug_abbrev", "__debug_abbrev", ".debug_abbrev.dwo" )\ -X(ARanges, ".debug_aranges", "__debug_aranges", ".debug_aranges.dwo" )\ -X(Frame, ".debug_frame", "__debug_frame", ".debug_frame.dwo" )\ -X(Info, ".debug_info", "__debug_info", ".debug_info.dwo" )\ -X(Line, ".debug_line", "__debug_line", ".debug_line.dwo" )\ -X(Loc, ".debug_loc", "__debug_loc", ".debug_loc.dwo" )\ -X(MacInfo, ".debug_macinfo", "__debug_macinfo", ".debug_macinfo.dwo" )\ -X(PubNames, ".debug_pubnames", "__debug_pubnames", ".debug_pubnames.dwo" )\ -X(PubTypes, ".debug_pubtypes", "__debug_pubtypes", ".debug_pubtypes.dwo" )\ -X(Ranges, ".debug_ranges", "__debug_ranges", ".debug_ranges.dwo" )\ -X(Str, ".debug_str", "__debug_str", ".debug_str.dwo" )\ -X(Addr, ".debug_addr", "__debug_addr", ".debug_addr.dwo" )\ -X(LocLists, ".debug_loclists", "__debug_loclists", ".debug_loclists.dwo" )\ -X(RngLists, ".debug_rnglists", "__debug_rnglists", ".debug_rnglists.dwo" )\ -X(StrOffsets, ".debug_str_offsets", "__debug_str_offsets", ".debug_str_offsets.dwo")\ -X(LineStr, ".debug_line_str", "__debug_line_str", ".debug_line_str.dwo" )\ -X(Names, ".debug_names", "__debug_names", ".debug_names.dwo" ) - -typedef U64 DW_SectionKind; -typedef enum DW_SectionKindEnum -{ -#define X(_N,...) DW_Section_##_N, - DW_SectionKind_XList(X) -#undef X - DW_Section_Count -} DW_SectionKindEnum; - -#define DW_Language_XList(X) \ -X(Null, 0x00) \ -X(C89, 0x01) \ -X(C, 0x02) \ -X(Ada83, 0x03) \ -X(CPlusPlus, 0x04) \ -X(Cobol74, 0x05) \ -X(Cobol85, 0x06) \ -X(Fortran77, 0x07) \ -X(Fortran90, 0x08) \ -X(Pascal83, 0x09) \ -X(Modula2, 0x0A) \ -X(Java, 0x0B) \ -X(C99, 0x0C) \ -X(Ada95, 0x0D) \ -X(Fortran95, 0x0E) \ -X(PLI, 0x0F) \ -X(ObjC, 0x10) \ -X(ObjCPlusPlus, 0x11) \ -X(UPC, 0x12) \ -X(D, 0x13) \ -X(Python, 0x14) \ -X(OpenCL, 0x15) \ -X(Go, 0x16) \ -X(Modula3, 0x17) \ -X(Haskell, 0x18) \ -X(CPlusPlus03, 0x19) \ -X(CPlusPlus11, 0x1a) \ -X(OCaml, 0x1b) \ -X(Rust, 0x1c) \ -X(C11, 0x1d) \ -X(Swift, 0x1e) \ -X(Julia, 0x1f) \ -X(Dylan, 0x20) \ -X(CPlusPlus14, 0x21) \ -X(Fortran03, 0x22) \ -X(Fortran08, 0x23) \ -X(RenderScript, 0x24) \ -X(BLISS, 0x25) \ -X(MipsAssembler, 0x8001) \ -X(GoogleRenderScript, 0x8E57) \ -X(SunAssembler, 0x9001) \ -X(BorlandDelphi, 0xB000) - -typedef U32 DW_Language; -typedef enum DW_LanguageEnum -{ -#define X(_N, _ID) DW_Language_##_N = _ID, - DW_Language_XList(X) -#undef X - DW_Language_UserLo = 0x8000, - DW_Language_UserHi = 0xffff, -} DW_LanguageEnum; - -#define DW_Inl_XList(X) \ -X(NotInlined, 0) \ -X(Inlined, 1) \ -X(DeclaredNotInlined, 2) \ -X(DeclaredInlined, 3) - -typedef U32 DW_InlKind; -typedef enum DW_InlKindEnum -{ -#define X(_N,_ID) DW_Inl_##_N = _ID, - DW_Inl_XList(X) -#undef X -} DW_InlKindEnum; - -#define DW_StdOpcode_XList(X) \ -X(ExtendedOpcode, 0x00) \ -X(Copy, 0x01) \ -X(AdvancePc, 0x02) \ -X(AdvanceLine, 0x03) \ -X(SetFile, 0x04) \ -X(SetColumn, 0x05) \ -X(NegateStmt, 0x06) \ -X(SetBasicBlock, 0x07) \ -X(ConstAddPc, 0x08) \ -X(FixedAdvancePc, 0x09) \ -X(SetPrologueEnd, 0x0A) \ -X(SetEpilogueBegin, 0x0B) \ -X(SetIsa, 0x0C) \ - -typedef enum DW_StdOpcode -{ -#define X(_N,_ID) DW_StdOpcode_##_N = _ID, - DW_StdOpcode_XList(X) -#undef X -} DW_StdOpcode; - -#define DW_ExtOpcode_XList(X) \ -X(Undefined, 0x00) \ -X(EndSequence, 0x01) \ -X(SetAddress, 0x02) \ -X(DefineFile, 0x03) \ -X(SetDiscriminator, 0x04) \ -X(UserLo, 0x80) \ -X(UserHi, 0xff) - -typedef enum DW_ExtOpcode -{ -#define X(_N,_ID) DW_ExtOpcode_##_N = _ID, - DW_ExtOpcode_XList(X) -#undef X -} DW_ExtOpcode; - -#define DW_IDCaseKind_XList(X) \ -X(CaseSensitive, 0x00) \ -X(UpCase, 0x01) \ -X(DownCase, 0x02) \ -X(CaseInsensitive, 0x03) - -typedef U64 DW_IDCaseKind; -typedef enum DW_IDCaseKindEnum -{ -#define X(_N,_ID) DW_IDCase_##_N = _ID, - DW_IDCaseKind_XList(X) -#undef X -} DW_IDCaseKindEnum; - -#define DW_TagKind_V3_XList(X) \ -X(ArrayType, 0x01) \ -X(ClassType, 0x02) \ -X(EntryPoint, 0x03) \ -X(EnumerationType, 0x04) \ -X(FormalParameter, 0x05) \ -X(ImportedDeclaration, 0x08) \ -X(Label, 0x0a) \ -X(LexicalBlock, 0x0b) \ -X(Member, 0x0d) \ -X(PointerType, 0x0f) \ -X(ReferenceType, 0x10) \ -X(CompileUnit, 0x11) \ -X(StringType, 0x12) \ -X(StructureType, 0x13) \ -X(SubroutineType, 0x15) \ -X(Typedef, 0x16) \ -X(UnionType, 0x17) \ -X(UnspecifiedParameters, 0x18) \ -X(Variant, 0x19) \ -X(CommonBlock, 0x1a) \ -X(CommonInclusion, 0x1b) \ -X(Inheritance, 0x1c) \ -X(InlinedSubroutine, 0x1d) \ -X(Module, 0x1e) \ -X(PtrToMemberType, 0x1f) \ -X(SetType, 0x20) \ -X(SubrangeType, 0x21) \ -X(WithStmt, 0x22) \ -X(AccessDeclaration, 0x23) \ -X(BaseType, 0x24) \ -X(CatchBlock, 0x25) \ -X(ConstType, 0x26) \ -X(Constant, 0x27) \ -X(Enumerator, 0x28) \ -X(FileType, 0x29) \ -X(Friend, 0x2a) \ -X(NameList, 0x2b) \ -X(NameListItem, 0x2c) \ -X(PackedType, 0x2d) \ -X(SubProgram, 0x2e) \ -X(TemplateTypeParameter, 0x2f) \ -X(TemplateValueParameter, 0x30) \ -X(ThrownType, 0x31) \ -X(TryBlock, 0x32) \ -X(VariantPart, 0x33) \ -X(Variable, 0x34) \ -X(VolatileType, 0x35) \ -X(DwarfProcedure, 0x36) \ -X(RestrictType, 0x37) \ -X(InterfaceType, 0x38) \ -X(Namespace, 0x39) \ -X(ImportedModule, 0x3a) \ -X(UnspecifiedType, 0x3b) \ -X(PartialUnit, 0x3c) \ -X(ImportedUnit, 0x3d) \ -X(Condition, 0x3f) \ -X(SharedType, 0x40) - -#define DW_TagKind_V5_XList(X) \ -X(TypeUnit, 0x41) \ -X(RValueReferenceType, 0x42) \ -X(TemplateAlias, 0x43) \ -X(CoarrayType, 0x44) \ -X(GenericSubrange, 0x45) \ -X(DynamicType, 0x46) \ -X(AtomicType, 0x47) \ -X(CallSite, 0x48) \ -X(CallSiteParameter, 0x49) \ -X(SkeletonUnit, 0x4A) \ -X(ImmutableType, 0x4B) - -#define DW_TagKind_GNU_XList(X) \ -X(GNU_CallSite, 0x4109) \ -X(GNU_CallSiteParameter, 0x410a) - -typedef U64 DW_TagKind; -typedef enum DW_TagKindEnum -{ - DW_TagKind_Null, -#define X(_N,_ID) DW_TagKind_##_N = _ID, - DW_TagKind_V3_XList(X) - DW_TagKind_V5_XList(X) - DW_TagKind_GNU_XList(X) -#undef X - DW_TagKind_UserLo = 0x4080, - DW_TagKind_UserHi = 0xffff -} DW_TagKindEnum; - -//- Attrib Class Encodings - -#define DW_AttribClass_V3_XList(X) \ -X(Null, 0) \ -X(Undefined, 1) \ -X(Address, 2) \ -X(Block, 3) \ -X(Const, 4) \ -X(ExprLoc, 5) \ -X(Flag, 6) \ -X(LinePtr, 7) \ -X(LocListPtr, 8) \ -X(MacPtr, 9) \ -X(RngListPtr, 10) \ -X(Reference, 11) \ -X(String, 12) - -#define DW_AttribClass_V4_XList(X) \ -X(LocList, 13) \ -X(RngList, 14) - -#define DW_AttribClass_V5_XList(X) \ -X(StrOffsetsPtr, 15) \ -X(AddrPtr, 16) - -typedef U32 DW_AttribClass; -typedef enum DW_AttribClassEnum -{ -#define X(_N,_ID) DW_AttribClass_##_N = (1 << _ID), - DW_AttribClass_V3_XList(X) - DW_AttribClass_V4_XList(X) - DW_AttribClass_V5_XList(X) -#undef X -} DW_AttribClassEnum; - -//- Form Encodings - -#define DW_Form_V2_XList(X) \ -X(Addr, 0x1) \ -X(Block2, 0x3) \ -X(Block4, 0x4) \ -X(Data2, 0x5) \ -X(Data4, 0x6) \ -X(Data8, 0x7) \ -X(String, 0x8) \ -X(Block, 0x9) \ -X(Block1, 0xa) \ -X(Data1, 0xb) \ -X(Flag, 0xc) \ -X(SData, 0xd) \ -X(Strp, 0xe) \ -X(UData, 0xf) \ -X(RefAddr, 0x10) \ -X(Ref1, 0x11) \ -X(Ref2, 0x12) \ -X(Ref4, 0x13) \ -X(Ref8, 0x14) \ -X(RefUData, 0x15) \ -X(Indirect, 0x16) - -#define DW_Form_AttribClass_V2_XList(X) \ -X(Addr, DW_AttribClass_Address) \ -X(Block2, DW_AttribClass_Block) \ -X(Block4, DW_AttribClass_Block) \ -X(Data2, DW_AttribClass_Const) \ -X(Data4, DW_AttribClass_Const) \ -X(Data8, DW_AttribClass_Const) \ -X(String, DW_AttribClass_String) \ -X(Block, DW_AttribClass_Block) \ -X(Block1, DW_AttribClass_Block) \ -X(Data1, DW_AttribClass_Const) \ -X(Flag, DW_AttribClass_Flag) \ -X(SData, DW_AttribClass_Const) \ -X(Strp, DW_AttribClass_String) \ -X(UData, DW_AttribClass_Const) \ -X(RefAddr, DW_AttribClass_Reference) \ -X(Ref1, DW_AttribClass_Reference) \ -X(Ref2, DW_AttribClass_Reference) \ -X(Ref4, DW_AttribClass_Reference) \ -X(Ref8, DW_AttribClass_Reference) \ -X(RefUData, DW_AttribClass_Reference) \ -X(Indirect, DW_AttribClass_Null) - -#define DW_Form_V4_XList(X) \ -X(SecOffset, 0x17) \ -X(ExprLoc, 0x18) \ -X(FlagPresent, 0x19) \ -X(RefSig8, 0x20) - -#define DW_Form_AttribClass_V4_XList(X) \ -X(Addr, DW_AttribClass_Address) \ -X(Block2, DW_AttribClass_Block) \ -X(Block4, DW_AttribClass_Block) \ -X(Data2, DW_AttribClass_Const) \ -X(Data4, DW_AttribClass_Const) \ -X(Data8, DW_AttribClass_Const) \ -X(String, DW_AttribClass_String) \ -X(Block, DW_AttribClass_Block) \ -X(Block1, DW_AttribClass_Block) \ -X(Data1, DW_AttribClass_Const) \ -X(Flag, DW_AttribClass_Flag) \ -X(SData, DW_AttribClass_Const) \ -X(Strp, DW_AttribClass_String) \ -X(UData, DW_AttribClass_Const) \ -X(RefAddr, DW_AttribClass_Reference) \ -X(Ref1, DW_AttribClass_Reference) \ -X(Ref2, DW_AttribClass_Reference) \ -X(Ref4, DW_AttribClass_Reference) \ -X(Ref8, DW_AttribClass_Reference) \ -X(RefUData, DW_AttribClass_Reference) \ -X(Indirect, DW_AttribClass_Null) \ -X(SecOffset, DW_AttribClass_LinePtr|DW_AttribClass_LocListPtr|DW_AttribClass_MacPtr|DW_AttribClass_RngListPtr) \ -X(ExprLoc, DW_AttribClass_ExprLoc) \ -X(FlagPresent, DW_AttribClass_Flag) \ -X(RefSig8, DW_AttribClass_Reference) - -#define DW_Form_V5_XList(X) \ -X(Strx, 0x1a) \ -X(Addrx, 0x1b) \ -X(RefSup4, 0x1c) \ -X(StrpSup, 0x1d) \ -X(Data16, 0x1e) \ -X(LineStrp, 0x1f) \ -X(ImplicitConst, 0x21) \ -X(LocListx, 0x22) \ -X(RngListx, 0x23) \ -X(RefSup8, 0x24) \ -X(Strx1, 0x25) \ -X(Strx2, 0x26) \ -X(Strx3, 0x27) \ -X(Strx4, 0x28) \ -X(Addrx1, 0x29) \ -X(Addrx2, 0x2a) \ -X(Addrx3, 0x2b) \ -X(Addrx4, 0x2c) - -#define DW_Form_AttribClass_V5_XList(X) \ -X(Addr, DW_AttribClass_Address) \ -X(Block2, DW_AttribClass_Block) \ -X(Block4, DW_AttribClass_Block) \ -X(Data2, DW_AttribClass_Const) \ -X(Data4, DW_AttribClass_Const) \ -X(Data8, DW_AttribClass_Const) \ -X(String, DW_AttribClass_String) \ -X(Block, DW_AttribClass_Block) \ -X(Block1, DW_AttribClass_Block) \ -X(Data1, DW_AttribClass_Const) \ -X(Flag, DW_AttribClass_Flag) \ -X(SData, DW_AttribClass_Const) \ -X(Strp, DW_AttribClass_String) \ -X(UData, DW_AttribClass_Const) \ -X(RefAddr, DW_AttribClass_Reference) \ -X(Ref1, DW_AttribClass_Reference) \ -X(Ref2, DW_AttribClass_Reference) \ -X(Ref4, DW_AttribClass_Reference) \ -X(Ref8, DW_AttribClass_Reference) \ -X(RefUData, DW_AttribClass_Reference) \ -X(Indirect, DW_AttribClass_Null) \ -X(SecOffset, DW_AttribClass_AddrPtr| \ -DW_AttribClass_LinePtr| \ -DW_AttribClass_LocList| \ -DW_AttribClass_LocListPtr| \ -DW_AttribClass_MacPtr| \ -DW_AttribClass_RngList| \ -DW_AttribClass_RngListPtr| \ -DW_AttribClass_StrOffsetsPtr) \ -X(ExprLoc, DW_AttribClass_ExprLoc) \ -X(FlagPresent, DW_AttribClass_Flag) \ -X(RefSig8, DW_AttribClass_Reference) \ -X(Strx, DW_AttribClass_String) \ -X(Addrx, DW_AttribClass_Address) \ -X(RefSup4, DW_AttribClass_Reference) \ -X(StrpSup, DW_AttribClass_String) \ -X(Data16, DW_AttribClass_Const) \ -X(LineStrp, DW_AttribClass_String) \ -X(ImplicitConst, DW_AttribClass_Const) \ -X(LocListx, DW_AttribClass_LocListPtr) \ -X(RngListx, DW_AttribClass_RngList) \ -X(RefSup8, DW_AttribClass_Reference) \ -X(Strx1, DW_AttribClass_String) \ -X(Strx2, DW_AttribClass_String) \ -X(Strx3, DW_AttribClass_String) \ -X(Strx4, DW_AttribClass_String) \ -X(Addrx1, DW_AttribClass_Address) \ -X(Addrx2, DW_AttribClass_Address) \ -X(Addrx3, DW_AttribClass_Address) \ -X(Addrx4, DW_AttribClass_Address) - -#define DW_Form_GNU_XList(X) \ -X(GNU_AddrIndex, 0x1f01) \ -X(GNU_StrIndex, 0x1f02) \ -X(GNU_RefAlt, 0x1f20) \ -X(GNU_StrpAlt, 0x1f21) - -#define DW_Form_AttribClass_GNU_XList(X) \ -X(GNU_AddrIndex, DW_AttribClass_Undefined) \ -X(GNU_StrIndex, DW_AttribClass_Undefined) \ -X(GNU_RefAlt, DW_AttribClass_Undefined) \ -X(GNU_StrpAlt, DW_AttribClass_String) - -typedef U64 DW_FormKind; -typedef enum DW_FormEnum -{ - DW_Form_Null, -#define X(_N, _ID) DW_Form_##_N = _ID, - DW_Form_V2_XList(X) - DW_Form_V4_XList(X) - DW_Form_V5_XList(X) - DW_Form_GNU_XList(X) -#undef X -} DW_FormEnum; - -//- Attributes DWARF2 - -#define DW_AttribKind_V2_XList(X) \ -X(Sibling, 0x1) \ -X(Location, 0x2) \ -X(Name, 0x3) \ -X(Ordering, 0x9) \ -X(ByteSize, 0xB) \ -X(BitOffset, 0xC) \ -X(BitSize, 0xD) \ -X(StmtList, 0x10) \ -X(LowPc, 0x11) \ -X(HighPc, 0x12) \ -X(Language, 0x13) \ -X(Discr, 0x15) \ -X(DiscrValue, 0x16) \ -X(Visibility, 0x17) \ -X(Import, 0x18) \ -X(StringLength, 0x19) \ -X(CommonReference, 0x1a) \ -X(CompDir, 0x1b) \ -X(ConstValue, 0x1c) \ -X(ContainingType, 0x1d) \ -X(DefaultValue, 0x1e) \ -X(Inline, 0x20) \ -X(IsOptional, 0x21) \ -X(LowerBound, 0x22) \ -X(Producer, 0x25) \ -X(Prototyped, 0x27) \ -X(ReturnAddr, 0x2a) \ -X(StartScope, 0x2c) \ -X(BitStride, 0x2e) \ -X(UpperBound, 0x2f) \ -X(AbstractOrigin, 0x31) \ -X(Accessibility, 0x32) \ -X(AddressClass, 0x33) \ -X(Artificial, 0x34) \ -X(BaseTypes, 0x35) \ -X(CallingConvention, 0x36) \ -X(Count, 0x37) \ -X(DataMemberLocation, 0x38) \ -X(DeclColumn, 0x39) \ -X(DeclFile, 0x3a) \ -X(DeclLine, 0x3b) \ -X(Declaration, 0x3c) \ -X(DiscrList, 0x3d) \ -X(Encoding, 0x3e) \ -X(External, 0x3f) \ -X(FrameBase, 0x40) \ -X(Friend, 0x41) \ -X(IdentifierCase, 0x42) \ -X(MacroInfo, 0x43) \ -X(NameListItem, 0x44) \ -X(Priority, 0x45) \ -X(Segment, 0x46) \ -X(Specification, 0x47) \ -X(StaticLink, 0x48) \ -X(Type, 0x49) \ -X(UseLocation, 0x4a) \ -X(VariableParameter, 0x4b) \ -X(Virtuality, 0x4c) \ -X(VTableElemLocation, 0x4d) - -#define DW_AttribKind_ClassFlags_V2_XList(X) \ -X(Sibling, DW_AttribClass_Reference) \ -X(Location, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Name, DW_AttribClass_String) \ -X(Ordering, DW_AttribClass_Const) \ -X(ByteSize, DW_AttribClass_Const) \ -X(BitOffset, DW_AttribClass_Const) \ -X(BitSize, DW_AttribClass_Const) \ -X(StmtList, DW_AttribClass_Const) \ -X(LowPc, DW_AttribClass_Address) \ -X(HighPc, DW_AttribClass_Address) \ -X(Language, DW_AttribClass_Const) \ -X(Discr, DW_AttribClass_Reference) \ -X(DiscrValue, DW_AttribClass_Const) \ -X(Visibility, DW_AttribClass_Const) \ -X(Import, DW_AttribClass_Reference) \ -X(StringLength, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(CommonReference, DW_AttribClass_Reference) \ -X(CompDir, DW_AttribClass_String) \ -X(ConstValue, DW_AttribClass_String|DW_AttribClass_Const|DW_AttribClass_Block) \ -X(ContainingType, DW_AttribClass_Reference) \ -X(DefaultValue, DW_AttribClass_Reference) \ -X(Inline, DW_AttribClass_Const) \ -X(IsOptional, DW_AttribClass_Flag) \ -X(LowerBound, DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(Producer, DW_AttribClass_String) \ -X(Prototyped, DW_AttribClass_Flag) \ -X(ReturnAddr, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(StartScope, DW_AttribClass_Const) \ -X(BitStride, DW_AttribClass_Const) /* dwarf-v1 DW_AttribKind_stride_size*/ \ -X(UpperBound, DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(AbstractOrigin, DW_AttribClass_Reference) \ -X(Accessibility, DW_AttribClass_Const) \ -X(AddressClass, DW_AttribClass_Const) \ -X(Artificial, DW_AttribClass_Flag) \ -X(BaseTypes, DW_AttribClass_Reference) \ -X(CallingConvention, DW_AttribClass_Const) \ -X(Count, DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(DataMemberLocation, DW_AttribClass_Block|DW_AttribClass_Reference) \ -X(DeclColumn, DW_AttribClass_Const) \ -X(DeclFile, DW_AttribClass_Const) \ -X(DeclLine, DW_AttribClass_Const) \ -X(Declaration, DW_AttribClass_Flag) \ -X(DiscrList, DW_AttribClass_Block) \ -X(Encoding, DW_AttribClass_Const) \ -X(External, DW_AttribClass_Flag) \ -X(FrameBase, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(Friend, DW_AttribClass_Reference) \ -X(IdentifierCase, DW_AttribClass_Const) \ -X(MacroInfo, DW_AttribClass_Const) \ -X(NameListItem, DW_AttribClass_Block) \ -X(Priority, DW_AttribClass_Reference) \ -X(Segment, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(Specification, DW_AttribClass_Reference) \ -X(StaticLink, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(Type, DW_AttribClass_Reference) \ -X(UseLocation, DW_AttribClass_Block|DW_AttribClass_Const) \ -X(VariableParameter, DW_AttribClass_Flag) \ -X(Virtuality, DW_AttribClass_Const) \ -X(VTableElemLocation, DW_AttribClass_Block|DW_AttribClass_Reference) - -//- Attributes DWARF3 - -#define DW_AttribKind_V3_XList(X) \ -X(Allocated, 0x4e) \ -X(Associated, 0x4f) \ -X(DataLocation, 0x50) \ -X(ByteStride, 0x51) \ -X(EntryPc, 0x52) \ -X(UseUtf8, 0x53) \ -X(Extension, 0x54) \ -X(Ranges, 0x55) \ -X(Trampoline, 0x56) \ -X(CallColumn, 0x57) \ -X(CallFile, 0x58) \ -X(CallLine, 0x59) \ -X(Description, 0x5a) \ -X(BinaryScale, 0x5b) \ -X(DecimalScale, 0x5c) \ -X(Small, 0x5d) \ -X(DecimalSign, 0x5e) \ -X(DigitCount, 0x5f) \ -X(PictureString, 0x60) \ -X(Mutable, 0x61) \ -X(ThreadsScaled, 0x62) \ -X(Explicit, 0x63) \ -X(ObjectPointer, 0x64) \ -X(Endianity, 0x65) \ -X(Elemental, 0x66) \ -X(Pure, 0x67) \ -X(Recursive, 0x68) - -#define DW_AttribKind_ClassFlags_V3_XList(X) \ -X(Sibling, DW_AttribClass_Reference) \ -X(Location, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(Name, DW_AttribClass_String) \ -X(Ordering, DW_AttribClass_Const) \ -X(ByteSize, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(BitOffset, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(BitSize, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(StmtList, DW_AttribClass_LinePtr) \ -X(LowPc, DW_AttribClass_Address) \ -X(HighPc, DW_AttribClass_Address) \ -X(Language, DW_AttribClass_Const) \ -X(Discr, DW_AttribClass_Reference) \ -X(DiscrValue, DW_AttribClass_Const) \ -X(Visibility, DW_AttribClass_Const) \ -X(Import, DW_AttribClass_Reference) \ -X(StringLength, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(CommonReference, DW_AttribClass_Reference) \ -X(CompDir, DW_AttribClass_String) \ -X(ConstValue, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_String) \ -X(ContainingType, DW_AttribClass_Reference) \ -X(DefaultValue, DW_AttribClass_Reference) \ -X(Inline, DW_AttribClass_Const) \ -X(IsOptional, DW_AttribClass_Flag) \ -X(LowerBound, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(Producer, DW_AttribClass_String) \ -X(Prototyped, DW_AttribClass_Flag) \ -X(ReturnAddr, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(StartScope, DW_AttribClass_Const) \ -X(BitStride, DW_AttribClass_Const) \ -X(UpperBound, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(AbstractOrigin, DW_AttribClass_Reference) \ -X(Accessibility, DW_AttribClass_Const) \ -X(AddressClass, DW_AttribClass_Const) \ -X(Artificial, DW_AttribClass_Flag) \ -X(BaseTypes, DW_AttribClass_Reference) \ -X(CallingConvention, DW_AttribClass_Const) \ -X(Count, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(DataMemberLocation, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_LocListPtr) \ -X(DeclColumn, DW_AttribClass_Const) \ -X(DeclFile, DW_AttribClass_Const) \ -X(DeclLine, DW_AttribClass_Const) \ -X(Declaration, DW_AttribClass_Flag) \ -X(DiscrList, DW_AttribClass_Block) \ -X(Encoding, DW_AttribClass_Const) \ -X(External, DW_AttribClass_Flag) \ -X(FrameBase, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(Friend, DW_AttribClass_Reference) \ -X(IdentifierCase, DW_AttribClass_Const) \ -X(MacroInfo, DW_AttribClass_MacPtr) \ -X(NameListItem, DW_AttribClass_Block) \ -X(Priority, DW_AttribClass_Reference) \ -X(Segment, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(Specification, DW_AttribClass_Reference) \ -X(StaticLink, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(Type, DW_AttribClass_Reference) \ -X(UseLocation, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(VariableParameter, DW_AttribClass_Flag) \ -X(Virtuality, DW_AttribClass_Const) \ -X(VTableElemLocation, DW_AttribClass_Block|DW_AttribClass_LocListPtr) \ -X(Allocated, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(Associated, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(DataLocation, DW_AttribClass_Block) \ -X(ByteStride, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_Reference) \ -X(EntryPc, DW_AttribClass_Address) \ -X(UseUtf8, DW_AttribClass_Flag) \ -X(Extension, DW_AttribClass_Reference) \ -X(Ranges, DW_AttribClass_RngListPtr) \ -X(Trampoline, DW_AttribClass_Address|DW_AttribClass_Flag|DW_AttribClass_Reference|DW_AttribClass_String) \ -X(CallColumn, DW_AttribClass_Const) \ -X(CallFile, DW_AttribClass_Const) \ -X(CallLine, DW_AttribClass_Const) \ -X(Description, DW_AttribClass_String) \ -X(BinaryScale, DW_AttribClass_Const) \ -X(DecimalScale, DW_AttribClass_Const) \ -X(Small, DW_AttribClass_Reference) \ -X(DecimalSign, DW_AttribClass_Const) \ -X(DigitCount, DW_AttribClass_Const) \ -X(PictureString, DW_AttribClass_String) \ -X(Mutable, DW_AttribClass_Flag) \ -X(ThreadsScaled, DW_AttribClass_Flag) \ -X(Explicit, DW_AttribClass_Flag) \ -X(ObjectPointer, DW_AttribClass_Reference) \ -X(Endianity, DW_AttribClass_Const) \ -X(Elemental, DW_AttribClass_Flag) \ -X(Pure, DW_AttribClass_Flag) \ -X(Recursive, DW_AttribClass_Flag) - -//- Attributes DWARF4 - -#define DW_AttribKind_V4_XList(X) \ -X(Signature, 0x69) \ -X(MainSubProgram, 0x6a) \ -X(DataBitOffset, 0x6b) \ -X(ConstExpr, 0x6c) \ -X(EnumClass, 0x6d) \ -X(LinkageName, 0x6e) - -#define DW_AttribKind_ClassFlags_V4_XList(X) \ -X(Sibling, DW_AttribClass_Reference) \ -X(Location, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Name, DW_AttribClass_String) \ -X(Ordering, DW_AttribClass_Const) \ -X(ByteSize, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(BitOffset, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(BitSize, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(StmtList, DW_AttribClass_LinePtr) \ -X(LowPc, DW_AttribClass_Address) \ -X(HighPc, DW_AttribClass_Address|DW_AttribClass_Const) \ -X(Language, DW_AttribClass_Const) \ -X(Discr, DW_AttribClass_Reference) \ -X(DiscrValue, DW_AttribClass_Const) \ -X(Visibility, DW_AttribClass_Const) \ -X(Import, DW_AttribClass_Reference) \ -X(StringLength, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(CommonReference, DW_AttribClass_Reference) \ -X(CompDir, DW_AttribClass_String) \ -X(ConstValue, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_String) \ -X(ContainingType, DW_AttribClass_Reference) \ -X(DefaultValue, DW_AttribClass_Reference) \ -X(Inline, DW_AttribClass_Const) \ -X(IsOptional, DW_AttribClass_Flag) \ -X(LowerBound, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(Producer, DW_AttribClass_String) \ -X(Prototyped, DW_AttribClass_Flag) \ -X(ReturnAddr, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(StartScope, DW_AttribClass_Const|DW_AttribClass_RngListPtr) \ -X(BitStride, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(UpperBound, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(AbstractOrigin, DW_AttribClass_Reference) \ -X(Accessibility, DW_AttribClass_Const) \ -X(AddressClass, DW_AttribClass_Const) \ -X(Artificial, DW_AttribClass_Flag) \ -X(BaseTypes, DW_AttribClass_Reference) \ -X(CallingConvention, DW_AttribClass_Const) \ -X(Count, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(DataMemberLocation, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(DeclColumn, DW_AttribClass_Const) \ -X(DeclFile, DW_AttribClass_Const) \ -X(DeclLine, DW_AttribClass_Const) \ -X(Declaration, DW_AttribClass_Flag) \ -X(DiscrList, DW_AttribClass_Block) \ -X(Encoding, DW_AttribClass_Const) \ -X(External, DW_AttribClass_Flag) \ -X(FrameBase, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Friend, DW_AttribClass_Reference) \ -X(IdentifierCase, DW_AttribClass_Const) \ -X(MacroInfo, DW_AttribClass_MacPtr) \ -X(NameListItem, DW_AttribClass_Reference) \ -X(Priority, DW_AttribClass_Reference) \ -X(Segment, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Specification, DW_AttribClass_Reference) \ -X(StaticLink, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Type, DW_AttribClass_Reference) \ -X(UseLocation, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(VariableParameter, DW_AttribClass_Flag) \ -X(Virtuality, DW_AttribClass_Const) \ -X(VTableElemLocation, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Allocated, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(Associated, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(DataLocation, DW_AttribClass_ExprLoc) \ -X(ByteStride, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(EntryPc, DW_AttribClass_Address) \ -X(UseUtf8, DW_AttribClass_Flag) \ -X(Extension, DW_AttribClass_Reference) \ -X(Ranges, DW_AttribClass_RngListPtr) \ -X(Trampoline, DW_AttribClass_Address|DW_AttribClass_Flag|DW_AttribClass_Reference|DW_AttribClass_String) \ -X(CallColumn, DW_AttribClass_Const) \ -X(CallFile, DW_AttribClass_Const) \ -X(CallLine, DW_AttribClass_Const) \ -X(Description, DW_AttribClass_String) \ -X(BinaryScale, DW_AttribClass_Const) \ -X(DecimalScale, DW_AttribClass_Const) \ -X(Small, DW_AttribClass_Reference) \ -X(DecimalSign, DW_AttribClass_Const) \ -X(DigitCount, DW_AttribClass_Const) \ -X(PictureString, DW_AttribClass_String) \ -X(Mutable, DW_AttribClass_Flag) \ -X(ThreadsScaled, DW_AttribClass_Flag) \ -X(Explicit, DW_AttribClass_Flag) \ -X(ObjectPointer, DW_AttribClass_Reference) \ -X(Endianity, DW_AttribClass_Const) \ -X(Elemental, DW_AttribClass_Flag) \ -X(Pure, DW_AttribClass_Flag) \ -X(Recursive, DW_AttribClass_Flag) \ -X(Signature, DW_AttribClass_Reference) \ -X(MainSubProgram, DW_AttribClass_Flag) \ -X(DataBitOffset, DW_AttribClass_Const) \ -X(ConstExpr, DW_AttribClass_Flag) \ -X(EnumClass, DW_AttribClass_Flag) \ -X(LinkageName, DW_AttribClass_String) - -//- Attributes DWARF5 - -#define DW_AttribKind_V5_XList(X) \ -X(StringLengthBitSize, 0x6f) \ -X(StringLengthByteSize, 0x70) \ -X(Rank, 0x71) \ -X(StrOffsetsBase, 0x72) \ -X(AddrBase, 0x73) \ -X(RngListsBase, 0x74) \ -X(DwoName, 0x76) \ -X(Reference, 0x77) \ -X(RValueReference, 0x78) \ -X(Macros, 0x79) \ -X(CallAllCalls, 0x7a) \ -X(CallAllSourceCalls, 0x7b) \ -X(CallAllTailCalls, 0x7c) \ -X(CallReturnPc, 0x7d) \ -X(CallValue, 0x7e) \ -X(CallOrigin, 0x7f) \ -X(CallParameter, 0x80) \ -X(CallPc, 0x81) \ -X(CallTailCall, 0x82) \ -X(CallTarget, 0x83) \ -X(CallTargetClobbered, 0x84) \ -X(CallDataLocation, 0x85) \ -X(CallDataValue, 0x86) \ -X(NoReturn, 0x87) \ -X(Alignment, 0x88) \ -X(ExportSymbols, 0x89) \ -X(Deleted, 0x8a) \ -X(Defaulted, 0x8b) \ -X(LocListsBase, 0x8c) - -#define DW_AttribKind_ClassFlags_V5_XList(X) \ -X(Sibling, DW_AttribClass_Reference) \ -X(Location, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(Name, DW_AttribClass_String) \ -X(Ordering, DW_AttribClass_Const) \ -X(ByteSize, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(BitOffset, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(BitSize, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(StmtList, DW_AttribClass_LinePtr) \ -X(LowPc, DW_AttribClass_Address) \ -X(HighPc, DW_AttribClass_Address|DW_AttribClass_Const) \ -X(Language, DW_AttribClass_Const) \ -X(Discr, DW_AttribClass_Reference) \ -X(DiscrValue, DW_AttribClass_Const) \ -X(Visibility, DW_AttribClass_Const) \ -X(Import, DW_AttribClass_Reference) \ -X(StringLength, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(CommonReference, DW_AttribClass_Reference) \ -X(CompDir, DW_AttribClass_String) \ -X(ConstValue, DW_AttribClass_Block|DW_AttribClass_Const|DW_AttribClass_String) \ -X(ContainingType, DW_AttribClass_Reference) \ -X(DefaultValue, DW_AttribClass_Reference) \ -X(Inline, DW_AttribClass_Const) \ -X(IsOptional, DW_AttribClass_Flag) \ -X(LowerBound, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(Producer, DW_AttribClass_String) \ -X(Prototyped, DW_AttribClass_Flag) \ -X(ReturnAddr, DW_AttribClass_ExprLoc|DW_AttribClass_LocListPtr) \ -X(StartScope, DW_AttribClass_Const|DW_AttribClass_RngListPtr) \ -X(BitStride, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(UpperBound, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(AbstractOrigin, DW_AttribClass_Reference) \ -X(Accessibility, DW_AttribClass_Const) \ -X(AddressClass, DW_AttribClass_Const) \ -X(Artificial, DW_AttribClass_Flag) \ -X(BaseTypes, DW_AttribClass_Reference) \ -X(CallingConvention, DW_AttribClass_Const) \ -X(Count, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(DataMemberLocation, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(DeclColumn, DW_AttribClass_Const) \ -X(DeclFile, DW_AttribClass_Const) \ -X(DeclLine, DW_AttribClass_Const) \ -X(Declaration, DW_AttribClass_Flag) \ -X(DiscrList, DW_AttribClass_Block) \ -X(Encoding, DW_AttribClass_Const) \ -X(External, DW_AttribClass_Flag) \ -X(FrameBase, DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(Friend, DW_AttribClass_Reference) \ -X(IdentifierCase, DW_AttribClass_Const) \ -X(MacroInfo, DW_AttribClass_MacPtr) \ -X(NameListItem, DW_AttribClass_Reference) \ -X(Priority, DW_AttribClass_Reference) \ -X(Segment, DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(Specification, DW_AttribClass_Reference) \ -X(StaticLink, DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(Type, DW_AttribClass_Reference) \ -X(UseLocation, DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(VariableParameter, DW_AttribClass_Flag) \ -X(Virtuality, DW_AttribClass_Const) \ -X(VTableElemLocation, DW_AttribClass_ExprLoc|DW_AttribClass_LocList) \ -X(Allocated, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(Associated, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(DataLocation, DW_AttribClass_ExprLoc) \ -X(ByteStride, DW_AttribClass_Const|DW_AttribClass_ExprLoc|DW_AttribClass_Reference) \ -X(EntryPc, DW_AttribClass_Address|DW_AttribClass_Const) \ -X(UseUtf8, DW_AttribClass_Flag) \ -X(Extension, DW_AttribClass_Reference) \ -X(Ranges, DW_AttribClass_RngList) \ -X(Trampoline, DW_AttribClass_Address|DW_AttribClass_Flag|DW_AttribClass_Reference|DW_AttribClass_String) \ -X(CallColumn, DW_AttribClass_Const) \ -X(CallFile, DW_AttribClass_Const) \ -X(CallLine, DW_AttribClass_Const) \ -X(Description, DW_AttribClass_String) \ -X(BinaryScale, DW_AttribClass_Const) \ -X(DecimalScale, DW_AttribClass_Const) \ -X(Small, DW_AttribClass_Reference) \ -X(DecimalSign, DW_AttribClass_Const) \ -X(DigitCount, DW_AttribClass_Const) \ -X(PictureString, DW_AttribClass_String) \ -X(Mutable, DW_AttribClass_Flag) \ -X(ThreadsScaled, DW_AttribClass_Flag) \ -X(Explicit, DW_AttribClass_Flag) \ -X(ObjectPointer, DW_AttribClass_Reference) \ -X(Endianity, DW_AttribClass_Const) \ -X(Elemental, DW_AttribClass_Flag) \ -X(Pure, DW_AttribClass_Flag) \ -X(Recursive, DW_AttribClass_Flag) \ -X(Signature, DW_AttribClass_Reference) \ -X(MainSubProgram, DW_AttribClass_Flag) \ -X(DataBitOffset, DW_AttribClass_Const) \ -X(ConstExpr, DW_AttribClass_Flag) \ -X(EnumClass, DW_AttribClass_Flag) \ -X(LinkageName, DW_AttribClass_String) \ -X(StringLengthBitSize, DW_AttribClass_Const) \ -X(StringLengthByteSize, DW_AttribClass_Const) \ -X(Rank, DW_AttribClass_Const|DW_AttribClass_ExprLoc) \ -X(StrOffsetsBase, DW_AttribClass_StrOffsetsPtr) \ -X(AddrBase, DW_AttribClass_AddrPtr) \ -X(RngListsBase, DW_AttribClass_RngListPtr) \ -X(DwoName, DW_AttribClass_String) \ -X(Reference, DW_AttribClass_Flag) \ -X(RValueReference, DW_AttribClass_Flag) \ -X(Macros, DW_AttribClass_MacPtr) \ -X(CallAllCalls, DW_AttribClass_Flag) \ -X(CallAllSourceCalls, DW_AttribClass_Flag) \ -X(CallAllTailCalls, DW_AttribClass_Flag) \ -X(CallReturnPc, DW_AttribClass_Address) \ -X(CallValue, DW_AttribClass_ExprLoc) \ -X(CallOrigin, DW_AttribClass_ExprLoc) \ -X(CallParameter, DW_AttribClass_Reference) \ -X(CallPc, DW_AttribClass_Address) \ -X(CallTailCall, DW_AttribClass_Flag) \ -X(CallTarget, DW_AttribClass_ExprLoc) \ -X(CallTargetClobbered, DW_AttribClass_ExprLoc) \ -X(CallDataLocation, DW_AttribClass_ExprLoc) \ -X(CallDataValue, DW_AttribClass_ExprLoc) \ -X(NoReturn, DW_AttribClass_Flag) \ -X(Alignment, DW_AttribClass_Const) \ -X(ExportSymbols, DW_AttribClass_Flag) \ -X(Deleted, DW_AttribClass_Flag) \ -X(Defaulted, DW_AttribClass_Const) \ -X(LocListsBase, DW_AttribClass_LocListPtr) - -//- Attributes GNU - -#define DW_AttribKind_GNU_XList(X) \ -X(GNU_Vector, 0x2107) \ -X(GNU_GuardedBy, 0x2108) \ -X(GNU_PtGuardedBy, 0x2109) \ -X(GNU_Guarded, 0x210a) \ -X(GNU_PtGuarded, 0x210b) \ -X(GNU_LocksExcluded, 0x210c) \ -X(GNU_ExclusiveLocksRequired, 0x210d) \ -X(GNU_SharedLocksRequired, 0x210e) \ -X(GNU_OdrSignature, 0x210f) \ -X(GNU_TemplateName, 0x2110) \ -X(GNU_CallSiteValue, 0x2111) \ -X(GNU_CallSiteDataValue, 0x2112) \ -X(GNU_CallSiteTarget, 0x2113) \ -X(GNU_CallSiteTargetClobbered, 0x2114) \ -X(GNU_TailCall, 0x2115) \ -X(GNU_AllTailCallsSites, 0x2116) \ -X(GNU_AllCallSites, 0x2117) \ -X(GNU_AllSourceCallSites, 0x2118) \ -X(GNU_Macros, 0x2119) \ -X(GNU_Deleted, 0x211a) \ -X(GNU_DwoName, 0x2130) \ -X(GNU_DwoId, 0x2131) \ -X(GNU_RangesBase, 0x2132) \ -X(GNU_AddrBase, 0x2133) \ -X(GNU_PubNames, 0x2134) \ -X(GNU_PubTypes, 0x2135) \ -X(GNU_Discriminator, 0x2136) \ -X(GNU_LocViews, 0x2137) \ -X(GNU_EntryView, 0x2138) \ -X(GNU_DescriptiveType, 0x2302) \ -X(GNU_Numerator, 0x2303) \ -X(GNU_Denominator, 0x2304) \ -X(GNU_Bias, 0x2305) - -#define DW_AttribKind_ClassFlags_GNU_XList(X) \ -X(GNU_Vector, DW_AttribClass_Flag) \ -X(GNU_GuardedBy, DW_AttribClass_Undefined) \ -X(GNU_PtGuardedBy, DW_AttribClass_Undefined) \ -X(GNU_Guarded, DW_AttribClass_Undefined) \ -X(GNU_PtGuarded, DW_AttribClass_Undefined) \ -X(GNU_LocksExcluded, DW_AttribClass_Undefined) \ -X(GNU_ExclusiveLocksRequired, DW_AttribClass_Undefined) \ -X(GNU_SharedLocksRequired, DW_AttribClass_Undefined) \ -X(GNU_OdrSignature, DW_AttribClass_Undefined) \ -X(GNU_TemplateName, DW_AttribClass_Undefined) \ -X(GNU_CallSiteValue, DW_AttribClass_ExprLoc) \ -X(GNU_CallSiteDataValue, DW_AttribClass_ExprLoc) \ -X(GNU_CallSiteTarget, DW_AttribClass_ExprLoc) \ -X(GNU_CallSiteTargetClobbered, DW_AttribClass_ExprLoc) \ -X(GNU_TailCall, DW_AttribClass_Flag) \ -X(GNU_AllTailCallsSites, DW_AttribClass_Flag) \ -X(GNU_AllCallSites, DW_AttribClass_Flag) \ -X(GNU_AllSourceCallSites, DW_AttribClass_Flag) \ -X(GNU_Macros, DW_AttribClass_Flag) \ -X(GNU_Deleted, DW_AttribClass_Undefined) \ -X(GNU_DwoName, DW_AttribClass_String) \ -X(GNU_DwoId, DW_AttribClass_Const) \ -X(GNU_RangesBase, DW_AttribClass_Undefined) \ -X(GNU_AddrBase, DW_AttribClass_AddrPtr) \ -X(GNU_PubNames, DW_AttribClass_Flag) \ -X(GNU_PubTypes, DW_AttribClass_Undefined) \ -X(GNU_Discriminator, DW_AttribClass_Const) \ -X(GNU_LocViews, DW_AttribClass_Undefined) \ -X(GNU_EntryView, DW_AttribClass_Undefined) \ -X(GNU_DescriptiveType, DW_AttribClass_Undefined) \ -X(GNU_Numerator, DW_AttribClass_Undefined) \ -X(GNU_Denominator, DW_AttribClass_Undefined) \ -X(GNU_Bias, DW_AttribClass_Undefined) - -//- Attributes LLVM - -#define DW_AttribKind_LLVM_XList(X) \ -X(LLVM_IncludePath, 0x3e00) \ -X(LLVM_ConfigMacros, 0x3e01) \ -X(LLVM_SysRoot, 0x3e02) \ -X(LLVM_TagOffset, 0x3e03) \ -X(LLVM_ApiNotes, 0x3e07) - -#define DW_AttribKind_ClassFlags_LLVM_XList(X) \ -X(LLVM_IncludePath, DW_AttribClass_String) \ -X(LLVM_ConfigMacros, DW_AttribClass_String) \ -X(LLVM_SysRoot, DW_AttribClass_String) \ -X(LLVM_TagOffset, DW_AttribClass_Undefined) \ -X(LLVM_ApiNotes, DW_AttribClass_String) - -//- Attributes Apple - -#define DW_AttribKind_APPLE_XList(X) \ -X(APPLE_Optimized, 0x3fe1) \ -X(APPLE_Flags, 0x3fe2) \ -X(APPLE_Isa, 0x3fe3) \ -X(APPLE_Block, 0x3fe4) \ -X(APPLE_MajorRuntimeVers, 0x3fe5) \ -X(APPLE_RuntimeClass, 0x3fe6) \ -X(APPLE_OmitFramePtr, 0x3fe7) \ -X(APPLE_PropertyName, 0x3fe8) \ -X(APPLE_PropertyGetter, 0x3fe9) \ -X(APPLE_PropertySetter, 0x3fea) \ -X(APPLE_PropertyAttribute, 0x3feb) \ -X(APPLE_ObjcCompleteType, 0x3fec) \ -X(APPLE_Property, 0x3fed) \ -X(APPLE_ObjDirect, 0x3fee) \ -X(APPLE_Sdk, 0x3fef) - -#define DW_AttribKind_ClassFlags_APPLE_XList(X) \ -X(APPLE_Optimized, DW_AttribClass_Flag) \ -X(APPLE_Flags, DW_AttribClass_Flag) \ -X(APPLE_Isa, DW_AttribClass_Flag) \ -X(APPLE_Block, DW_AttribClass_Undefined) \ -X(APPLE_MajorRuntimeVers, DW_AttribClass_Undefined) \ -X(APPLE_RuntimeClass, DW_AttribClass_Undefined) \ -X(APPLE_OmitFramePtr, DW_AttribClass_Flag) \ -X(APPLE_PropertyName, DW_AttribClass_Undefined) \ -X(APPLE_PropertyGetter, DW_AttribClass_Undefined) \ -X(APPLE_PropertySetter, DW_AttribClass_Undefined) \ -X(APPLE_PropertyAttribute, DW_AttribClass_Undefined) \ -X(APPLE_ObjcCompleteType, DW_AttribClass_Undefined) \ -X(APPLE_Property, DW_AttribClass_Undefined) \ -X(APPLE_ObjDirect, DW_AttribClass_Undefined) \ -X(APPLE_Sdk, DW_AttribClass_String) - -//- Attributes MIPS - -#define DW_AttribKind_MIPS_XList(X) \ -X(MIPS_Fde, 0x2001) \ -X(MIPS_LoopBegin, 0x2002) \ -X(MIPS_TailLoopBegin, 0x2003) \ -X(MIPS_EpilogBegin, 0x2004) \ -X(MIPS_LoopUnrollFactor, 0x2005) \ -X(MIPS_SoftwarePipelineDepth, 0x2006) \ -X(MIPS_LinkageName, 0x2007) \ -X(MIPS_Stride, 0x2008) \ -X(MIPS_AbstractName, 0x2009) \ -X(MIPS_CloneOrigin, 0x200a) \ -X(MIPS_HasInlines, 0x200b) \ -X(MIPS_StrideByte, 0x200c) \ -X(MIPS_StrideElem, 0x200d) \ -X(MIPS_PtrDopeType, 0x200e) \ -X(MIPS_AllocatableDopeType, 0x200f) \ -X(MIPS_AssumedShapeDopeType, 0x2010) \ -X(MIPS_AssumedSize, 0x2011) - -#define DW_AttribKind_ClassFlags_MIPS_XList(X) \ -X(MIPS_Fde, DW_AttribClass_Block) \ -X(MIPS_LoopBegin, DW_AttribClass_Block) \ -X(MIPS_TailLoopBegin, DW_AttribClass_Block) \ -X(MIPS_EpilogBegin, DW_AttribClass_Block) \ -X(MIPS_LoopUnrollFactor, DW_AttribClass_Block) \ -X(MIPS_SoftwarePipelineDepth, DW_AttribClass_Block) \ -X(MIPS_LinkageName, DW_AttribClass_String) \ -X(MIPS_Stride, DW_AttribClass_Block) \ -X(MIPS_AbstractName, DW_AttribClass_String) \ -X(MIPS_CloneOrigin, DW_AttribClass_String) \ -X(MIPS_HasInlines, DW_AttribClass_Reference) \ -X(MIPS_StrideByte, DW_AttribClass_Reference) \ -X(MIPS_StrideElem, DW_AttribClass_Reference) \ -X(MIPS_PtrDopeType, DW_AttribClass_Reference) \ -X(MIPS_AllocatableDopeType, DW_AttribClass_Reference) \ -X(MIPS_AssumedShapeDopeType, DW_AttribClass_Reference) \ -X(MIPS_AssumedSize, DW_AttribClass_Reference) - -typedef U32 DW_AttribKind; -typedef enum DW_AttribKindEnum -{ - DW_AttribKind_Null, -#define X(_N,_ID,...) DW_AttribKind_##_N = _ID, - DW_AttribKind_V2_XList(X) - DW_AttribKind_V3_XList(X) - DW_AttribKind_V4_XList(X) - DW_AttribKind_V5_XList(X) - DW_AttribKind_GNU_XList(X) - DW_AttribKind_LLVM_XList(X) - DW_AttribKind_APPLE_XList(X) - DW_AttribKind_MIPS_XList(X) -#undef X - DW_AttribKind_UserLo = 0x2000, - DW_AttribKind_UserHi = 0x3fff -} DW_AttribKindEnum; - -#define DW_ATE_XList(X) \ -X(Null, 0x00) \ -X(Address, 0x01) \ -X(Boolean, 0x02) \ -X(ComplexFloat, 0x03) \ -X(Float, 0x04) \ -X(Signed, 0x05) \ -X(SignedChar, 0x06) \ -X(Unsigned, 0x07) \ -X(UnsignedChar, 0x08) \ -X(ImaginaryFloat, 0x09) \ -X(PackedDecimal, 0x0A) \ -X(NumericString, 0x0B) \ -X(Edited, 0x0C) \ -X(SignedFixed, 0x0D) \ -X(UnsignedFixed, 0x0E) \ -X(DecimalFloat, 0x0F) \ -X(Utf, 0x10) \ -X(Ucs, 0x11) \ -X(Ascii, 0x12) - -typedef U64 DW_ATE; -typedef enum DW_ATEEnum -{ -#define X(_N,_ID) DW_ATE_##_N = _ID, - DW_ATE_XList(X) -#undef X -} DW_ATEnum; - -#define DW_CallingConventionKind_XList(X) \ -X(Normal, 0x0) \ -X(Program, 0x1) \ -X(NoCall, 0x3) \ -X(PassByValue, 0x4) \ -X(PassByReference, 0x5) - -typedef U64 DW_CallingConventionKind; -typedef enum DW_CallingConventionKindEnum -{ -#define X(_N,_ID) DW_CallingConventionKind_##_N = _ID, - DW_CallingConventionKind_XList(X) -#undef X -} DW_CallingConventionKindEnum; - -#define DW_AccessKind_XList(X) \ -X(Public, 0x00) \ -X(Private, 0x01) \ -X(Protected, 0x02) - -typedef U64 DW_AccessKind; -typedef enum DW_AccessKindEnum -{ -#define X(_N,_ID) DW_AccessKind_##_N = _ID, - DW_AccessKind_XList(X) -#undef X -} DW_AccessKindEnum; - -#define DW_VirtualityKind_XList(X) \ -X(None, 0x00) \ -X(Virtual, 0x01) \ -X(PureVirtual, 0x02) - -typedef U64 DW_VirtualityKind; -typedef enum DW_VirtualityEnum -{ -#define X(_N,_ID) DW_VirtualityKind_##_N = _ID, - DW_VirtualityKind_XList(X) -#undef X -} DW_VirtualityEnum; - -#define DW_RngListEntryKind(X) \ -X(EndOfList, 0x00) \ -X(BaseAddressx, 0x01) \ -X(StartxEndx, 0x02) \ -X(StartxLength, 0x03) \ -X(OffsetPair, 0x04) \ -X(BaseAddress, 0x05) \ -X(StartEnd, 0x06) \ -X(StartLength, 0x07) - -typedef U8 DW_RLE; -typedef enum DW_RLE_Enum -{ -#define X(_N,_ID) DW_RLE_##_N = _ID, - DW_RngListEntryKind(X) -#undef X -} DW_RLE_Enum; - -#define DW_LocListEntry_XList(X) \ -X(EndOfList, 0x00) \ -X(BaseAddressx, 0x01) \ -X(StartxEndx, 0x02) \ -X(StartxLength, 0x03) \ -X(OffsetPair, 0x04) \ -X(DefaultLocation, 0x05) \ -X(BaseAddress, 0x06) \ -X(StartEnd, 0x07) \ -X(StartLength, 0x08) - -#define DW_LocListEntry_GNU_XList(X) \ -X(GNU_ViewPair, 0x9) - -typedef U8 DW_LLE; -typedef enum DW_LLE_Enum -{ -#define X(_N,_ID) DW_LLE_##_N = _ID, - DW_LocListEntry_XList(X) -#undef X -} DW_LLEEnum; - -#define DW_AddrClass_XList(X) \ -X(None, 0) \ -X(Near16, 1) \ -X(Far16, 2) \ -X(Huge16, 3) \ -X(Near32, 4) \ -X(Far32, 5) - -typedef U64 DW_AddrClass; -typedef enum DW_AddrClassEnum -{ -#define X(_N, _ID) DW_AddrClassKind_##_N = _ID, - DW_AddrClass_XList(X) -#undef X -} DW_AddrClassEnum; - -#define DW_CompUnitKind_XList(X) \ -X(Reserved, 0) \ -X(Compile, 1) \ -X(Type, 2) \ -X(Partial, 3) \ -X(Skeleton, 4) \ -X(SplitCompile, 5) \ -X(SplitType, 6) - -typedef U8 DW_CompUnitKind; -typedef enum DW_CompUnitKindEnum -{ -#define X(_N, _ID) DW_CompUnitKind_##_N = _ID, - DW_CompUnitKind_XList(X) -#undef X - DW_CompUnitKind_UserLo = 0x80, - DW_CompUnitKind_UserHi = 0xff -} DW_CompUnitKindEnum; - -#define DW_LNCT_XList(X) \ -X(Path, 0x1) \ -X(DirectoryIndex, 0x2) \ -X(TimeStamp, 0x3) \ -X(Size, 0x4) \ -X(MD5, 0x5) \ -X(LLVM_Source, 0x2001) - -typedef U64 DW_LNCT; -typedef enum DW_LNCTEnum -{ -#define X(_N, _ID) DW_LNCT_##_N = _ID, - DW_LNCT_XList(X) -#undef X - DW_LNCT_UserLo = 0x2000, - DW_LNCT_UserHi = 0x3fff -} DW_LNCTEnum; +#include "dwarf/generated/dwarf.meta.h" +#if defined(X64_H) +# include "dwarf/x64/dwarf_x64.h" +#endif //////////////////////////////// -// CFA +//~ rjf: Helper Types -typedef enum +typedef struct DW_ExprOpInfo DW_ExprOpInfo; +struct DW_ExprOpInfo { - DW_CFA_OperandType_Null, - DW_CFA_OperandType_Value, - DW_CFA_OperandType_Register, - DW_CFA_OperandType_Expression, -} DW_CFA_OperandType; - -// (opcode name, opcode id, operand count, operand types) -#define DW_CFA_Kind_XList(X) \ -X(Nop, 0x0) \ -X(SetLoc, 0x1, DW_CFA_OperandType_Value) \ -X(AdvanceLoc1, 0x2, DW_CFA_OperandType_Value) \ -X(AdvanceLoc2, 0x3, DW_CFA_OperandType_Value) \ -X(AdvanceLoc4, 0x4, DW_CFA_OperandType_Value) \ -X(OffsetExt, 0x5, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(RestoreExt, 0x6) \ -X(Undefined, 0x7, DW_CFA_OperandType_Register) \ -X(SameValue, 0x8, DW_CFA_OperandType_Register) \ -X(Register, 0x9, DW_CFA_OperandType_Register) \ -X(RememberState, 0xa) \ -X(RestoreState, 0xb) \ -X(DefCfa, 0xc, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(DefCfaRegister, 0xd, DW_CFA_OperandType_Register) \ -X(DefCfaOffset, 0xe, DW_CFA_OperandType_Value) \ -X(DefCfaExpr, 0xf, DW_CFA_OperandType_Expression) \ -X(Expr, 0x10, DW_CFA_OperandType_Expression) \ -X(OffsetExtSf, 0x11, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(DefCfaSf, 0x12, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(DefCfaOffsetSf, 0x13, DW_CFA_OperandType_Value) \ -X(ValOffset, 0x14, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(ValOffsetSf, 0x15, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(ValExpr, 0x16, DW_CFA_OperandType_Register, DW_CFA_OperandType_Expression) \ -X(AdvanceLoc, 0x40, DW_CFA_OperandType_Value) \ -X(Offset, 0x80, DW_CFA_OperandType_Register, DW_CFA_OperandType_Value) \ -X(Restore, 0xc0, DW_CFA_OperandType_Register) - -#define DW_CFA_OperandMax 2 -#define DW_CFA_Mask_OpcodeHi 0xc0 -#define DW_CFA_Mask_Operand 0x3f - -typedef U8 DW_CFA_Opcode; -typedef enum DW_CFA_Enum -{ -#define X(_N, _ID, ...) DW_CFA_##_N = _ID, - DW_CFA_Kind_XList(X) -#undef X -} DW_CFA_Enum; + U8 push_count; + U8 pop_count; + U8 operand_count; + B8 valid_for_cfa_exprs; + DW_ExprOperandKind operand_kinds[2]; + String8 name; + DW_Version version; +}; +global read_only DW_ExprOpInfo dw_expr_op_info_nil = {0}; //////////////////////////////// -// Expression Opcodes +//~ rjf: X-List Helpers -// (opcode name, opcode id, operand count, pop count, push count) -#define DW_Expr_V3_XList(X) \ -X(Null, 0x00, 0, 0, 0) \ -X(Addr, 0x03, 1, 0, 1) \ -X(Deref, 0x06, 0, 1, 1) \ -X(Const1U, 0x08, 1, 0, 1) \ -X(Const1S, 0x09, 1, 0, 1) \ -X(Const2U, 0x0a, 1, 0, 1) \ -X(Const2S, 0x0b, 1, 0, 1) \ -X(Const4U, 0x0c, 1, 0, 1) \ -X(Const4S, 0x0d, 1, 0, 1) \ -X(Const8U, 0x0e, 1, 0, 1) \ -X(Const8S, 0x0f, 1, 0, 1) \ -X(ConstU, 0x10, 1, 0, 1) \ -X(ConstS, 0x11, 1, 0, 1) \ -X(Dup, 0x12, 0, 0, 1) \ -X(Drop, 0x13, 0, 1, 0) \ -X(Over, 0x14, 0, 0, 1) \ -X(Pick, 0x15, 1, 0, 1) \ -X(Swap, 0x16, 0, 0, 0) \ -X(Rot, 0x17, 0, 0, 0) \ -X(XDeref, 0x18, 0, 2, 1) \ -X(Abs, 0x19, 0, 1, 1) \ -X(And, 0x1a, 0, 2, 1) \ -X(Div, 0x1b, 0, 2, 1) \ -X(Minus, 0x1c, 0, 2, 1) \ -X(Mod, 0x1d, 0, 2, 1) \ -X(Mul, 0x1e, 0, 2, 1) \ -X(Neg, 0x1f, 0, 1, 1) \ -X(Not, 0x20, 0, 1, 1) \ -X(Or, 0x21, 0, 2, 1) \ -X(Plus, 0x22, 0, 2, 1) \ -X(PlusUConst, 0x23, 1, 1, 1) \ -X(Shl, 0x24, 0, 2, 1) \ -X(Shr, 0x25, 0, 2, 1) \ -X(Shra, 0x26, 0, 2, 1) \ -X(Xor, 0x27, 0, 2, 1) \ -X(Bra, 0x28, 1, 1, 0) \ -X(Eq, 0x29, 0, 2, 1) \ -X(Ge, 0x2a, 0, 2, 1) \ -X(Gt, 0x2b, 0, 2, 1) \ -X(Le, 0x2c, 0, 2, 1) \ -X(Lt, 0x2d, 0, 2, 1) \ -X(Ne, 0x2e, 0, 2, 1) \ -X(Skip, 0x2f, 1, 0, 0) \ -X(Lit0, 0x30, 0, 0, 0) \ -X(Lit1, 0x31, 0, 0, 0) \ -X(Lit2, 0x32, 0, 0, 0) \ -X(Lit3, 0x33, 0, 0, 0) \ -X(Lit4, 0x34, 0, 0, 0) \ -X(Lit5, 0x35, 0, 0, 0) \ -X(Lit6, 0x36, 0, 0, 0) \ -X(Lit7, 0x37, 0, 0, 0) \ -X(Lit8, 0x38, 0, 0, 0) \ -X(Lit9, 0x39, 0, 0, 0) \ -X(Lit10, 0x3a, 0, 0, 0) \ -X(Lit11, 0x3b, 0, 0, 0) \ -X(Lit12, 0x3c, 0, 0, 0) \ -X(Lit13, 0x3d, 0, 0, 0) \ -X(Lit14, 0x3e, 0, 0, 0) \ -X(Lit15, 0x3f, 0, 0, 0) \ -X(Lit16, 0x40, 0, 0, 0) \ -X(Lit17, 0x41, 0, 0, 0) \ -X(Lit18, 0x42, 0, 0, 0) \ -X(Lit19, 0x43, 0, 0, 0) \ -X(Lit20, 0x44, 0, 0, 0) \ -X(Lit21, 0x45, 0, 0, 0) \ -X(Lit22, 0x46, 0, 0, 0) \ -X(Lit23, 0x47, 0, 0, 0) \ -X(Lit24, 0x48, 0, 0, 0) \ -X(Lit25, 0x49, 0, 0, 0) \ -X(Lit26, 0x4a, 0, 0, 0) \ -X(Lit27, 0x4b, 0, 0, 0) \ -X(Lit28, 0x4c, 0, 0, 0) \ -X(Lit29, 0x4d, 0, 0, 0) \ -X(Lit30, 0x4e, 0, 0, 0) \ -X(Lit31, 0x4f, 0, 0, 0) \ -X(Reg0, 0x50, 0, 0, 1) \ -X(Reg1, 0x51, 0, 0, 1) \ -X(Reg2, 0x52, 0, 0, 1) \ -X(Reg3, 0x53, 0, 0, 1) \ -X(Reg4, 0x54, 0, 0, 1) \ -X(Reg5, 0x55, 0, 0, 1) \ -X(Reg6, 0x56, 0, 0, 1) \ -X(Reg7, 0x57, 0, 0, 1) \ -X(Reg8, 0x58, 0, 0, 1) \ -X(Reg9, 0x59, 0, 0, 1) \ -X(Reg10, 0x5a, 0, 0, 1) \ -X(Reg11, 0x5b, 0, 0, 1) \ -X(Reg12, 0x5c, 0, 0, 1) \ -X(Reg13, 0x5d, 0, 0, 1) \ -X(Reg14, 0x5e, 0, 0, 1) \ -X(Reg15, 0x5f, 0, 0, 1) \ -X(Reg16, 0x60, 0, 0, 1) \ -X(Reg17, 0x61, 0, 0, 1) \ -X(Reg18, 0x62, 0, 0, 1) \ -X(Reg19, 0x63, 0, 0, 1) \ -X(Reg20, 0x64, 0, 0, 1) \ -X(Reg21, 0x65, 0, 0, 1) \ -X(Reg22, 0x66, 0, 0, 1) \ -X(Reg23, 0x67, 0, 0, 1) \ -X(Reg24, 0x68, 0, 0, 1) \ -X(Reg25, 0x69, 0, 0, 1) \ -X(Reg26, 0x6a, 0, 0, 1) \ -X(Reg27, 0x6b, 0, 0, 1) \ -X(Reg28, 0x6c, 0, 0, 1) \ -X(Reg29, 0x6d, 0, 0, 1) \ -X(Reg30, 0x6e, 0, 0, 1) \ -X(Reg31, 0x6f, 0, 0, 1) \ -X(BReg0, 0x70, 1, 0, 1) \ -X(BReg1, 0x71, 1, 0, 1) \ -X(BReg2, 0x72, 1, 0, 1) \ -X(BReg3, 0x73, 1, 0, 1) \ -X(BReg4, 0x74, 1, 0, 1) \ -X(BReg5, 0x75, 1, 0, 1) \ -X(BReg6, 0x76, 1, 0, 1) \ -X(BReg7, 0x77, 1, 0, 1) \ -X(BReg8, 0x78, 1, 0, 1) \ -X(BReg9, 0x79, 1, 0, 1) \ -X(BReg10, 0x7a, 1, 0, 1) \ -X(BReg11, 0x7b, 1, 0, 1) \ -X(BReg12, 0x7c, 1, 0, 1) \ -X(BReg13, 0x7d, 1, 0, 1) \ -X(BReg14, 0x7e, 1, 0, 1) \ -X(BReg15, 0x7f, 1, 0, 1) \ -X(BReg16, 0x80, 1, 0, 1) \ -X(BReg17, 0x81, 1, 0, 1) \ -X(BReg18, 0x82, 1, 0, 1) \ -X(BReg19, 0x83, 1, 0, 1) \ -X(BReg20, 0x84, 1, 0, 1) \ -X(BReg21, 0x85, 1, 0, 1) \ -X(BReg22, 0x86, 1, 0, 1) \ -X(BReg23, 0x87, 1, 0, 1) \ -X(BReg24, 0x88, 1, 0, 1) \ -X(BReg25, 0x89, 1, 0, 1) \ -X(BReg26, 0x8a, 1, 0, 1) \ -X(BReg27, 0x8b, 1, 0, 1) \ -X(BReg28, 0x8c, 1, 0, 1) \ -X(BReg29, 0x8d, 1, 0, 1) \ -X(BReg30, 0x8e, 1, 0, 1) \ -X(BReg31, 0x8f, 1, 0, 1) \ -X(RegX, 0x90, 1, 0, 1) \ -X(FBReg, 0x91, 1, 0, 1) \ -X(BRegX, 0x92, 2, 0, 1) \ -X(Piece, 0x93, 1, 0, 0) \ -X(DerefSize, 0x94, 1, 1, 1) \ -X(XDerefSize, 0x95, 1, 2, 1) \ -X(Nop, 0x96, 0, 0, 0) \ -X(PushObjectAddress, 0x97, 0, 0, 1) \ -X(Call2, 0x98, 1, 0, 0) \ -X(Call4, 0x99, 1, 0, 0) \ -X(CallRef, 0x9a, 1, 0, 0) \ -X(FormTlsAddress, 0x9b, 0, 0, 1) \ -X(CallFrameCfa, 0x9c, 0, 0, 1) \ -X(BitPiece, 0x9d, 2, 0, 0) +//- rjf: format address sizes +internal U64 dw_addr_size_from_format(DW_Format fmt); -#define DW_Expr_V4_XList(X) \ -X(ImplicitValue, 0x9e, 2, 0, 1) \ -X(StackValue, 0x9f, 0, 0, 0) +//- rjf: attribute classes +internal DW_AttribClass dw_attrib_class_from_kind(DW_Version version, DW_ExtFlags exts, DW_AttribKind k); +internal DW_AttribClass dw_attrib_class_from_form_kind(DW_Version version, DW_ExtFlags exts, DW_FormKind k); -#define DW_Expr_V5_XList(X) \ -X(ImplicitPointer, 0xa0, 2, 0, 1) \ -X(Addrx, 0xa1, 1, 0, 1) \ -X(Constx, 0xa2, 1, 0, 1) \ -X(EntryValue, 0xa3, 2, 0, 0) \ -X(ConstType, 0xa4, 3, 0, 1) \ -X(RegvalType, 0xa5, 2, 0, 1) \ -X(DerefType, 0xa6, 2, 1, 1) \ -X(XDerefType, 0xa7, 2, 2, 1) \ -X(Convert, 0xa8, 1, 1, 1) \ -X(Reinterpret, 0xa9, 1, 1, 1) +//- rjf: expr op metadata +internal DW_ExprOpInfo *dw_info_from_expr_op(DW_Version version, DW_ExtFlags exts, DW_ExprOp op); -#define DW_Expr_GNU_XList(X) \ -X(GNU_PushTlsAddress, 0xe0, 0, 0, 1) \ -X(GNU_UnInit, 0xf0, 0, 0, 0) \ -X(GNU_ImplicitPointer, 0xf2, 2, 0, 1) \ -X(GNU_EntryValue, 0xf3, 2, 0, 0) \ -X(GNU_ConstType, 0xf4, 3, 0, 1) \ -X(GNU_RegvalType, 0xf5, 2, 0, 1) \ -X(GNU_DerefType, 0xf6, 2, 1, 1) \ -X(GNU_Convert, 0xf7, 1, 1, 1) \ -X(GNU_ParameterRef, 0xfa, 1, 0, 0) \ -X(GNU_AddrIndex, 0xfb, 0, 0, 1) \ -X(GNU_ConstIndex, 0xfc, 1, 0, 1) +//- rjf: enum -> string +internal String8 dw_string_from_format(DW_Format fmt); +internal String8 dw_string_from_tag_kind(DW_Version version, DW_ExtFlags exts, DW_TagKind k); +internal String8 dw_string_from_attrib_kind(DW_Version version, DW_ExtFlags exts, DW_AttribKind k); +internal String8 dw_string_from_form_kind(DW_Version version, DW_ExtFlags exts, DW_FormKind k); +internal String8 dw_string_from_language(DW_Language k); +internal String8 dw_string_from_comp_unit_kind(DW_CompUnitKind k); +internal String8 dw_string_from_inl_kind(DW_InlKind k); +internal String8 dw_string_from_access_kind(DW_AccessKind k); +internal String8 dw_string_from_calling_convention_kind(DW_CallingConventionKind k); +internal String8 dw_string_from_ate(DW_ATE k); +internal String8 dw_string_from_visibility_kind(DW_VisibilityKind k); +internal String8 dw_string_from_std_opcode(DW_StdOpcode opcode); +internal String8 dw_string_from_ext_opcode(DW_ExtOpcode opcode); +internal String8 dw_string_from_lle(DW_LLE lle); +internal String8 dw_string_from_rle(DW_RLE rle); +internal String8 dw_regular_name_from_section_kind(DW_SectionKind k); +internal String8 dw_macho_name_from_section_kind(DW_SectionKind k); +internal String8 dw_dwo_name_from_section_kind(DW_SectionKind k); +#define dw_string_from_expr_op(version, exts, op) (dw_info_from_expr_op((version), (exts), (op))->name) -typedef U8 DW_ExprOp; -typedef enum DW_ExprOpEnum -{ -#define X(_N, _ID, _OPER_COUNT, _POP_COUNT, _PUSH_COUNT) DW_ExprOp_##_N = _ID, - DW_Expr_V3_XList(X) - DW_Expr_V4_XList(X) - DW_Expr_V5_XList(X) - DW_Expr_GNU_XList(X) -#undef X -} DW_ExprOpEnum; - -//- Regs - -#define DW_Regs_X86_XList(X) \ -X(Eax, 0, eax, 0, 4) \ -X(Ecx, 1, ecx, 0, 4) \ -X(Edx, 2, edx, 0, 4) \ -X(Ebx, 3, ebx, 0, 4) \ -X(Esp, 4, esp, 0, 4) \ -X(Ebp, 5, ebp, 0, 4) \ -X(Esi, 6, esi, 0, 4) \ -X(Edi, 7, edi, 0, 4) \ -X(Eip, 8, eip, 0, 4) \ -X(Eflags, 9, eflags, 0, 4) \ -X(Trapno, 10, nil, 0, 0) \ -X(St0, 11, st0, 0, 10) \ -X(St1, 12, st1, 0, 10) \ -X(St2, 13, st2, 0, 10) \ -X(St3, 14, st3, 0, 10) \ -X(St4, 15, st4, 0, 10) \ -X(St5, 16, st5, 0, 10) \ -X(St6, 17, st6, 0, 10) \ -X(St7, 18, st7, 0, 10) \ -X(Xmm0, 21, ymm0, 0, 16) \ -X(Xmm1, 22, ymm1, 0, 16) \ -X(Xmm2, 23, ymm2, 0, 16) \ -X(Xmm3, 24, ymm3, 0, 16) \ -X(Xmm4, 25, ymm4, 0, 16) \ -X(Xmm5, 26, ymm5, 0, 16) \ -X(Xmm6, 27, ymm6, 0, 16) \ -X(Xmm7, 28, ymm7, 0, 16) \ -X(Mm0, 29, fpr0, 0, 8) \ -X(Mm1, 30, fpr1, 0, 8) \ -X(Mm2, 31, fpr2, 0, 8) \ -X(Mm3, 32, fpr3, 0, 8) \ -X(Mm4, 33, fpr4, 0, 8) \ -X(Mm5, 34, fpr5, 0, 8) \ -X(Mm6, 35, fpr6, 0, 8) \ -X(Mm7, 36, fpr7, 0, 8) \ -X(Fcw, 37, fcw, 0, 2) \ -X(Fsw, 38, fsw, 0, 2) \ -X(Mxcsr, 39, mxcsr, 0, 4) \ -X(Es, 40, es, 0, 2) \ -X(Cs, 41, cs, 0, 2) \ -X(Ss, 42, ss, 0, 2) \ -X(Ds, 43, ds, 0, 2) \ -X(Fs, 44, fs, 0, 2) \ -X(Gs, 45, gs, 0, 2) \ -X(Tr, 48, nil, 0, 0) \ -X(Ldtr, 49, nil, 0, 0) - -#define DW_Regs_X64_XList(X) \ -X(Rax, 0, rax, 0, 8) \ -X(Rdx, 1, rdx, 0, 8) \ -X(Rcx, 2, rcx, 0, 8) \ -X(Rbx, 3, rbx, 0, 8) \ -X(Rsi, 4, rsi, 0, 8) \ -X(Rdi, 5, rdi, 0, 8) \ -X(Rbp, 6, rbp, 0, 8) \ -X(Rsp, 7, rsp, 0, 8) \ -X(R8, 8, r8, 0, 8) \ -X(R9, 9, r9, 0, 8) \ -X(R10, 10, r10, 0, 8) \ -X(R11, 11, r11, 0, 8) \ -X(R12, 12, r12, 0, 8) \ -X(R13, 13, r13, 0, 8) \ -X(R14, 14, r14, 0, 8) \ -X(R15, 15, r15, 0, 8) \ -X(Rip, 16, rip, 0, 8) \ -X(Xmm0, 17, zmm0, 0, 16) \ -X(Xmm1, 18, zmm1, 0, 16) \ -X(Xmm2, 19, zmm2, 0, 16) \ -X(Xmm3, 20, zmm3, 0, 16) \ -X(Xmm4, 21, zmm4, 0, 16) \ -X(Xmm5, 22, zmm5, 0, 16) \ -X(Xmm6, 23, zmm6, 0, 16) \ -X(Xmm7, 24, zmm7, 0, 16) \ -X(Xmm8, 25, zmm8, 0, 16) \ -X(Xmm9, 26, zmm9, 0, 16) \ -X(Xmm10, 27, zmm10, 0, 16) \ -X(Xmm11, 28, zmm11, 0, 16) \ -X(Xmm12, 29, zmm12, 0, 16) \ -X(Xmm13, 30, zmm13, 0, 16) \ -X(Xmm14, 31, zmm14, 0, 16) \ -X(Xmm15, 32, zmm15, 0, 16) \ -X(Xmm16, 67, zmm16, 0, 16) \ -X(Xmm17, 68, zmm17, 0, 16) \ -X(Xmm18, 69, zmm18, 0, 16) \ -X(Xmm19, 70, zmm19, 0, 16) \ -X(Xmm20, 71, zmm20, 0, 16) \ -X(Xmm21, 72, zmm21, 0, 16) \ -X(Xmm22, 73, zmm22, 0, 16) \ -X(Xmm23, 74, zmm23, 0, 16) \ -X(Xmm24, 75, zmm24, 0, 16) \ -X(Xmm25, 76, zmm25, 0, 16) \ -X(Xmm26, 77, zmm26, 0, 16) \ -X(Xmm27, 78, zmm27, 0, 16) \ -X(Xmm28, 79, zmm28, 0, 16) \ -X(Xmm29, 80, zmm29, 0, 16) \ -X(Xmm30, 81, zmm30, 0, 16) \ -X(Xmm31, 82, zmm31, 0, 16) \ -X(St0, 33, st0, 0, 10) \ -X(St1, 34, st1, 0, 10) \ -X(St2, 35, st2, 0, 10) \ -X(St3, 36, st3, 0, 10) \ -X(St4, 37, st4, 0, 10) \ -X(St5, 38, st5, 0, 10) \ -X(St6, 39, st6, 0, 10) \ -X(St7, 40, st7, 0, 10) \ -X(Mm0, 41, fpr0, 0, 8) \ -X(Mm1, 42, fpr1, 0, 8) \ -X(Mm2, 43, fpr2, 0, 8) \ -X(Mm3, 44, fpr3, 0, 8) \ -X(Mm4, 45, fpr4, 0, 8) \ -X(Mm5, 46, fpr5, 0, 8) \ -X(Mm6, 47, fpr6, 0, 8) \ -X(Mm7, 48, fpr7, 0, 8) \ -X(Rflags, 49, rflags, 0, 4) \ -X(Es, 50, es, 0, 2) \ -X(Cs, 51, cs, 0, 2) \ -X(Ss, 52, ss, 0, 2) \ -X(Ds, 53, ds, 0, 2) \ -X(Fs, 54, fs, 0, 2) \ -X(Gs, 55, gs, 0, 2) \ -X(FsBase, 58, nil, 0, 0) \ -X(GsBase, 59, nil, 0, 0) \ -X(Tr, 62, nil, 0, 0) \ -X(Ldtr, 63, nil, 0, 0) - -typedef U32 DW_Reg; - -typedef DW_Reg DW_RegX86; -typedef enum DW_RegX86Enum -{ -#define X(_N,_ID,...) DW_RegX86_##_N = _ID, - DW_Regs_X86_XList(X) -#undef X - DW_RegX86_Last -} DW_RegX86Enum; - -typedef DW_Reg DW_RegX64; -typedef enum DW_RegX64Enum -{ -#define X(_N,_ID,...) DW_RegX64_##_N = _ID, - DW_Regs_X64_XList(X) -#undef X - DW_RegX64_Last -} DW_RegX64Enum; - -//////////////////////////////// - -internal U64 dw_reg_size_from_code_x86(DW_Reg reg_code); -internal U64 dw_reg_pos_from_code_x86(DW_Reg reg_code); -internal U64 dw_reg_size_from_code_x64(DW_Reg reg_code); -internal U64 dw_reg_pos_from_code_x64(DW_Reg reg_code); -internal U64 dw_reg_size_from_code(Arch arch, DW_Reg reg_code); -internal U64 dw_reg_pos_from_code(Arch arch, DW_Reg reg_code); -internal U64 dw_reg_max_size_from_arch(Arch arch); +//- rjf: architecture info internal U64 dw_reg_count_from_arch(Arch arch); -//- Attrib Class Encodings - -// Speced Encodings -internal DW_AttribClass dw_attrib_class_from_attrib_v2(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_v3(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_v4(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_v5(DW_AttribKind k); - -// Extensions -internal DW_AttribClass dw_attrib_class_from_attrib_gnu (DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_llvm (DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_apple(DW_AttribKind k); -internal DW_AttribClass dw_attrib_class_from_attrib_mips (DW_AttribKind k); - -internal DW_AttribClass dw_attrib_class_from_attrib(DW_Version ver, DW_Ext ext, DW_AttribKind v); - -//- Form Class Encodings - -internal DW_AttribClass dw_attrib_class_from_form_kind(DW_Version ver, DW_FormKind k); - -internal B32 dw_are_attrib_class_and_form_kind_compatible(DW_Version ver, DW_AttribClass attrib_class, DW_FormKind form_kind); - -//- Section Names - -internal String8 dw_name_string_from_section_kind (DW_SectionKind k); -internal String8 dw_mach_name_string_from_section_kind(DW_SectionKind k); -internal String8 dw_dwo_name_string_from_section_kind (DW_SectionKind k); - -//////////////////////////////// - -internal U64 dw_size_from_format(DW_Format format); - -//////////////////////////////// - -internal DW_AttribClass dw_pick_attrib_value_class(DW_Version ver, DW_Ext ext, B32 relaxed, DW_AttribKind attrib, DW_FormKind form_kind); - -internal U64 dw_pick_default_lower_bound(DW_Language lang); - -internal U64 dw_operand_count_from_expr_op(DW_ExprOp op); -internal U64 dw_pop_count_from_expr_op(DW_ExprOp op); -internal U64 dw_push_count_from_expr_op(DW_ExprOp op); - -//////////////////////////////// -//~ CFA - -internal U64 dw_operand_count_from_cfa_opcode(DW_CFA_Opcode opcode); -internal B32 dw_is_cfa_expr_opcode_invalid(DW_ExprOp opcode); -internal B32 dw_is_new_row_cfa_opcode(DW_CFA_Opcode opcode); -internal DW_CFA_OperandType * dw_operand_types_from_cfa_op(DW_CFA_Opcode opcode); - -//////////////////////////////// -//~ rjf: String <=> Enum - -internal String8 dw_string_from_format(DW_Format format); -internal String8 dw_string_from_expr_op(Arena *arena, DW_Version ver, DW_Ext ext, DW_ExprOp op); -internal String8 dw_string_from_tag_kind(Arena *arena, DW_TagKind kind); -internal String8 dw_string_from_attrib_kind(Arena *arena, DW_Version ver, DW_Ext ext, DW_AttribKind kind); -internal String8 dw_string_from_form_kind(Arena *arena, DW_Version ver, DW_FormKind kind); -internal String8 dw_string_from_language(Arena *arena, DW_Language kind); -internal String8 dw_string_from_inl(Arena *arena, DW_InlKind kind); -internal String8 dw_string_from_access_kind(Arena *arena, DW_AccessKind kind); -internal String8 dw_string_from_calling_convetion(Arena *arena, DW_CallingConventionKind kind); -internal String8 dw_string_from_attrib_type_encoding(Arena *arena, DW_ATE kind); -internal String8 dw_string_from_std_opcode(Arena *arena, DW_StdOpcode kind); -internal String8 dw_string_from_ext_opcode(Arena *arena, DW_ExtOpcode kind); -internal String8 dw_string_from_loc_list_entry_kind(Arena *arena, DW_LLE kind); -internal String8 dw_string_from_section_kind(Arena *arena, DW_SectionKind kind); -internal String8 dw_string_from_rng_list_entry_kind(Arena *arena, DW_RLE kind); -internal String8 dw_string_from_register(Arena *arena, Arch arch, U64 reg_id); -internal String8 dw_string_from_cfa_opcode(DW_CFA_Opcode opcode); - #endif // DWARF_H diff --git a/src/dwarf/dwarf.mdesk b/src/dwarf/dwarf.mdesk new file mode 100644 index 00000000..dff8e513 --- /dev/null +++ b/src/dwarf/dwarf.mdesk @@ -0,0 +1,1411 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Version + +@table(name) +DW_VersionTable: +{ + {Null} + {1} + {2} + {3} + {4} + {5} +} + +@enum(U16) DW_Version: +{ + @expand(DW_VersionTable a) `$(a.name)`; + `Last = DW_Version_5`; +} + +@table(name code) +DW_ExtTable: +{ + {GNU} + {LLVM} + {Apple} + {MIPS} +} + +@enum DW_Ext: +{ + `Null`, + @expand(DW_ExtTable a) `$(a.name)` +} + +@enum(U32) DW_ExtFlags: +{ + @expand(DW_ExtTable a) `$(a.name) = (1<foff, header->foff + header->fsize); - String8 name = coff_name_from_section_header(string_table, header); - - DW_SectionKind s = dw_section_kind_from_string(name); - B32 is_dwo = 0; - if (s == DW_Section_Null) { - s = dw_section_dwo_kind_from_string(name); - is_dwo = 1; - } - - if (s != DW_Section_Null) { - if (sect_status[s]) { - Assert(!"too many debug sections with identical name, picking first"); - } else { - sect_status[s] = 1; - DW_Section *d = &input.sec[s]; - d->name = push_str8_copy(arena, name); - d->data = str8_substr(raw_image, raw_data_range); - d->is_dwo = is_dwo; - } - } - } - - return input; -} diff --git a/src/dwarf/dwarf_coff.h b/src/dwarf/dwarf_coff.h deleted file mode 100644 index 79cd37c3..00000000 --- a/src/dwarf/dwarf_coff.h +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef DWARF_COFF_H -#define DWARF_COFF_H - -internal B32 dw_is_dwarf_present_coff_section_table(String8 string_table, U64 section_count, COFF_SectionHeader *section_table); -internal DW_Input dw_input_from_coff_section_table(Arena *arena, String8 raw_image, String8 string_table, U64 section_count, COFF_SectionHeader *section_table); - -#endif // DWARF_COFF_H - diff --git a/src/dwarf/dwarf_dump.c b/src/dwarf/dwarf_dump.c index d18da87d..04f7669c 100644 --- a/src/dwarf/dwarf_dump.c +++ b/src/dwarf/dwarf_dump.c @@ -2,42 +2,28 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// -//~ rjf: Stringification Helpers - -internal String8 -dw_string_from_reg_off(Arena *arena, Arch arch, DW_Reg reg_idx, S64 reg_off) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 reg_str = dw_string_from_register(scratch.arena, arch, reg_idx); - String8 result; - if (reg_off != 0) { - result = push_str8f(arena, "%S%+lld", reg_str, reg_off); - } else { - result = reg_str; - } - scratch_end(scratch); - return result; -} - -internal String8 -dw_string_from_reg(Arena *arena, Arch arch, DW_Reg reg_idx) -{ - return dw_string_from_reg_off(arena, arch, reg_idx, 0); -} +//~ rjf: Helpers internal String8List -dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) +dw_dump_list_from_expr(Arena *arena, String8 data, Arch arch, DW2_ParseCtx *ctx) { - Temp scratch = scratch_begin(&arena, 1); String8List result = {0}; - for (U64 cursor = 0; cursor < raw_data.size; ) { - U8 op = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &op); + Temp scratch = scratch_begin(&arena, 1); + ARCH_Info *arch_info = arch_info_from_arch(arch); + for(U64 off = 0; off < data.size;) + { + U64 start_off = 0; - String8 op_value = str8_zero(); - U64 size_param = 0; - B32 is_signed = 0; - switch (op) { + // rjf: read next op + U8 op = 0; + off += str8_deserial_read_struct(data, off, &op); + + // rjf: unpack op / operands + String8 operand_string = {0}; + U64 size_param = 0; + B32 is_signed = 0; + switch(op) + { case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: @@ -48,10 +34,11 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + { U64 x = op - DW_ExprOp_Lit0; - op_value = push_str8f(scratch.arena, "%llu", x); - } break; + operand_string = str8f(scratch.arena, "%I64u", x); + }break; case DW_ExprOp_Const1U:size_param = 1; goto const_n; case DW_ExprOp_Const2U:size_param = 2; goto const_n; @@ -63,35 +50,41 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; const_n: { - if (is_signed) { + if(is_signed) + { S64 x = 0; - cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); + off += str8_deserial_read(data, off, &x, size_param, 1); x = extend_sign64(x, size_param); - op_value = push_str8f(scratch.arena, "%lld", x); - } else { - U64 x = 0; - cursor += str8_deserial_read(raw_data, cursor, &x, size_param, 1); - op_value = push_str8f(scratch.arena, "%llu", x); + operand_string = str8f(scratch.arena, "%I64d", x); } - } break; + else + { + U64 x = 0; + off += str8_deserial_read(data, off, &x, size_param, 1); + operand_string = str8f(scratch.arena, "%I64u", x); + } + }break; - case DW_ExprOp_Addr: { + case DW_ExprOp_Addr: + { U64 addr = 0; - cursor += str8_deserial_read(raw_data, cursor, &addr, addr_size, 1); - op_value = push_str8f(scratch.arena, "%#llx", addr); - } break; + off += str8_deserial_read(data, off, &addr, ctx->addr_size, 1); + operand_string = str8f(scratch.arena, "0x%I64x", addr); + }break; - case DW_ExprOp_ConstU: { + case DW_ExprOp_ConstU: + { U64 x = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%llu", x); - } break; + off += str8_deserial_read_uleb128(data, off, &x); + operand_string = str8f(scratch.arena, "%I64u", x); + }break; - case DW_ExprOp_ConstS: { + case DW_ExprOp_ConstS: + { S64 x = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%lld", x); - } break; + off += str8_deserial_read_sleb128(data, off, &x); + operand_string = str8f(scratch.arena, "%I64d", x); + }break; case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: @@ -103,63 +96,74 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: + { U64 reg_idx = op - DW_ExprOp_Reg0; - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); - } break; + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, (DW_RegCode)reg_idx); + operand_string = arch_info->reg_code_name_table[regcode]; + }break; - case DW_ExprOp_RegX: { + case DW_ExprOp_RegX: + { U64 reg_idx = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, 0); - } break; + off += str8_deserial_read_uleb128(data, off, ®_idx); + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, (DW_RegCode)reg_idx); + operand_string = arch_info->reg_code_name_table[regcode]; + }break; - case DW_ExprOp_ImplicitValue: { + case DW_ExprOp_ImplicitValue: + { U64 value_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &value_size); - Rng1U64 value_range = rng_1u64(cursor, cursor + value_size); - String8 value_data = str8_substr(raw_data, value_range); - cursor += value_size; + off += str8_deserial_read_uleb128(data, off, &value_size); + Rng1U64 value_range = rng_1u64(off, off + value_size); + String8 value_data = str8_substr(data, value_range); + off += value_size; String8List value_strings = numeric_str8_list_from_data(scratch.arena, 16, value_data, 1); - op_value = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(", "), .post = str8_lit(" }")}); - } break; + operand_string = str8_list_join(scratch.arena, &value_strings, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(", "), .post = str8_lit(" }")}); + }break; - case DW_ExprOp_Piece: { + case DW_ExprOp_Piece: + { U64 size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &size); - op_value = push_str8f(scratch.arena, "%u", size); - } break; + off += str8_deserial_read_uleb128(data, off, &size); + operand_string = str8f(scratch.arena, "%u", size); + }break; - case DW_ExprOp_BitPiece: { + case DW_ExprOp_BitPiece: + { U64 bit_size = 0, bit_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_size); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &bit_off); - op_value = push_str8f(scratch.arena, "bit size %llu, bit offset %llu", bit_size, bit_off); - } break; + off += str8_deserial_read_uleb128(data, off, &bit_size); + off += str8_deserial_read_uleb128(data, off, &bit_off); + operand_string = str8f(scratch.arena, "bit size %I64u, bit offset %I64u", bit_size, bit_off); + }break; - case DW_ExprOp_Pick: { + case DW_ExprOp_Pick: + { U8 stack_idx = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &stack_idx); - op_value = push_str8f(scratch.arena, "stack index %u", stack_idx); - } break; + off += str8_deserial_read_struct(data, off, &stack_idx); + operand_string = str8f(scratch.arena, "stack index %u", stack_idx); + }break; - case DW_ExprOp_PlusUConst: { + case DW_ExprOp_PlusUConst: + { U64 addend = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &addend); - op_value = push_str8f(arena, "addend %llu", addend); - } break; + off += str8_deserial_read_uleb128(data, off, &addend); + operand_string = str8f(arena, "addend %I64u", addend); + }break; - case DW_ExprOp_Skip: { + case DW_ExprOp_Skip: + { S16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%+d bytes", x); - } break; + off += str8_deserial_read_struct(data, off, &x); + operand_string = str8f(scratch.arena, "%+d bytes", x); + }break; - case DW_ExprOp_Bra: { + case DW_ExprOp_Bra: + { S16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%+d", x); - } break; + off += str8_deserial_read_struct(data, off, &x); + operand_string = str8f(scratch.arena, "%+d", x); + }break; case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: @@ -171,2204 +175,544 @@ dw_string_list_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: + { U64 reg_idx = op - DW_ExprOp_BReg0; S64 reg_off = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); - } break; + off += str8_deserial_read_sleb128(data, off, ®_off); + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, (DW_RegCode)reg_idx); + operand_string = str8f(scratch.arena, "%S+%I64d", arch_info->reg_code_name_table[regcode], reg_off); + }break; - case DW_ExprOp_FBReg: { + case DW_ExprOp_FBReg: + { S64 reg_off = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = push_str8f(scratch.arena, "offset %lld", reg_off); - } break; + off += str8_deserial_read_sleb128(data, off, ®_off); + operand_string = str8f(scratch.arena, "frame base offset %I64d", reg_off); + }break; - case DW_ExprOp_BRegX: { + case DW_ExprOp_BRegX: + { U64 reg_idx = 0; S64 reg_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_sleb128(raw_data, cursor, ®_off); - op_value = dw_string_from_reg_off(scratch.arena, arch, reg_idx, reg_off); - } break; + off += str8_deserial_read_uleb128(data, off, ®_idx); + off += str8_deserial_read_sleb128(data, off, ®_off); + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, (DW_RegCode)reg_idx); + operand_string = str8f(scratch.arena, "%S+%I64d", arch_info->reg_code_name_table[regcode], reg_off); + }break; case DW_ExprOp_XDerefSize: - case DW_ExprOp_DerefSize: { + case DW_ExprOp_DerefSize: + { U8 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%u", x); - } break; + off += str8_deserial_read_struct(data, off, &x); + operand_string = str8f(scratch.arena, "%u", x); + }break; - case DW_ExprOp_Call2: { + case DW_ExprOp_Call2: + { U16 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(scratch.arena, "%u", x); - } break; - case DW_ExprOp_Call4: { + off += str8_deserial_read_struct(data, off, &x); + operand_string = str8f(scratch.arena, "%u", x); + }break; + case DW_ExprOp_Call4: + { U32 x = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &x); - op_value = push_str8f(arena, "%u", x); - } break; - case DW_ExprOp_CallRef: { + off += str8_deserial_read_struct(data, off, &x); + operand_string = str8f(arena, "%u", x); + }break; + case DW_ExprOp_CallRef: + { U64 x = 0; - cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &x); - op_value = push_str8f(scratch.arena, "%llu", x); - } break; + off += dw2_read_fmt_u64(data, off, ctx->format, &x); + operand_string = str8f(scratch.arena, "%I64u", x); + }break; case DW_ExprOp_ImplicitPointer: - case DW_ExprOp_GNU_ImplicitPointer: { + case DW_GNU_ExprOp_ImplicitPointer: + { U64 info_off = 0; - cursor += str8_deserial_read_dwarf_uint(raw_data, cursor, format, &info_off); + off += dw2_read_fmt_u64(data, off, ctx->format, &info_off); S64 ptr = 0; - cursor += str8_deserial_read_sleb128(raw_data, cursor, &ptr); - - op_value = push_str8f(scratch.arena, ".debug_info+%#llx, ptr %llx", info_off, ptr); + off += str8_deserial_read_sleb128(data, off, &ptr); + operand_string = str8f(scratch.arena, ".debug_info@0x%I64x, ptr %I64x", info_off, ptr); } break; case DW_ExprOp_Convert: - case DW_ExprOp_GNU_Convert: { + case DW_GNU_ExprOp_Convert: + { U64 type_cu_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "TypeCuOff %#llx", cu_base + type_cu_off); - } break; - case DW_ExprOp_GNU_ParameterRef: { + off += str8_deserial_read_uleb128(data, off, &type_cu_off); + operand_string = str8f(scratch.arena, "TypeCuOff %#I64x", ctx->unit_base_info_off + type_cu_off); + }break; + case DW_GNU_ExprOp_ParameterRef: + { // TODO: always 4 bytes? U32 cu_off = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &cu_off); - op_value = push_str8f(scratch.arena, "CuOff %#x", cu_base + cu_off); - } break; + off += str8_deserial_read_struct(data, off, &cu_off); + operand_string = str8f(scratch.arena, "CuOff %#x", ctx->unit_base_info_off + cu_off); + }break; case DW_ExprOp_DerefType: - case DW_ExprOp_GNU_DerefType: { - U8 deref_size = 0; + case DW_GNU_ExprOp_DerefType: + { + U8 deref_size = 0; U64 type_cu_off = 0; - cursor += str8_deserial_read_struct(raw_data, cursor, &deref_size); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "%#x, TypeCuOff %#llx", deref_size, cu_base + type_cu_off); - } break; + off += str8_deserial_read_struct(data, off, &deref_size); + off += str8_deserial_read_uleb128(data, off, &type_cu_off); + operand_string = str8f(scratch.arena, "%#x, TypeCuOff %#I64x", deref_size, ctx->unit_base_info_off + type_cu_off); + }break; case DW_ExprOp_ConstType: - case DW_ExprOp_GNU_ConstType: { - U64 type_cu_off = 0; - U8 const_value_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - cursor += str8_deserial_read_struct(raw_data, cursor, &const_value_size); - Rng1U64 const_value_range = rng_1u64(cursor, cursor + const_value_size); - String8 const_value_data = str8_substr(raw_data, const_value_range); + case DW_GNU_ExprOp_ConstType: + { + U64 type_cu_off = 0; + U8 const_value_size = 0; + off += str8_deserial_read_uleb128(data, off, &type_cu_off); + off += str8_deserial_read_struct(data, off, &const_value_size); + Rng1U64 const_value_range = rng_1u64(off, off + const_value_size); + String8 const_value_data = str8_substr(data, const_value_range); String8List const_value_strings = numeric_str8_list_from_data(scratch.arena, 16, const_value_data, 1); String8 const_value_str = str8_list_join(scratch.arena, &const_value_strings, &(StringJoin){.sep = str8_lit(", ")}); - op_value = push_str8f(scratch.arena, "TypeCuOff %#llx, Const Value { %S }", cu_base + type_cu_off, const_value_str); - cursor += const_value_size; - } break; + operand_string = str8f(scratch.arena, "TypeCuOff %#I64x, Const Value { %S }", ctx->unit_base_info_off + type_cu_off, const_value_str); + off += const_value_size; + }break; case DW_ExprOp_RegvalType: - case DW_ExprOp_GNU_RegvalType: { + case DW_GNU_ExprOp_RegvalType: + { U64 reg_idx = 0, type_cu_off = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, ®_idx); - cursor += str8_deserial_read_uleb128(raw_data, cursor, &type_cu_off); - op_value = push_str8f(scratch.arena, "%S, TypeCuOff %#llx", dw_string_from_register(scratch.arena, arch, reg_idx), cu_base + type_cu_off); - } break; + off += str8_deserial_read_uleb128(data, off, ®_idx); + off += str8_deserial_read_uleb128(data, off, &type_cu_off); + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, (DW_RegCode)reg_idx); + operand_string = str8f(scratch.arena, "%S, TypeCuOff %#I64x", arch_info->reg_code_name_table[regcode], ctx->unit_base_info_off + type_cu_off); + }break; case DW_ExprOp_EntryValue: - case DW_ExprOp_GNU_EntryValue: { + case DW_GNU_ExprOp_EntryValue: + { U64 block_size = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &block_size); - Rng1U64 block_range = rng_1u64(cursor, cursor + block_size); - String8 block_data = str8_substr(raw_data, block_range); - String8List block_expr = dw_string_list_from_expression(scratch.arena, block_data, cu_base, addr_size, arch, ver, ext, format); - op_value = str8_list_join(scratch.arena, &block_expr, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(","), .post = str8_lit(" }")}); - cursor += block_size; + off += str8_deserial_read_uleb128(data, off, &block_size); + Rng1U64 block_range = rng_1u64(off, off + block_size); + String8 block_data = str8_substr(data, block_range); + // TODO(rjf): WTF, recursive? let's not... - if we want this, let's just do the stack inside of this function + // String8List block_expr = dw_string_list_from_expression(scratch.arena, block_data, cu_base, addr_size, arch, ver, ext, format); + // operand_string = str8_list_join(scratch.arena, &block_expr, &(StringJoin){.pre = str8_lit("{ "), .sep = str8_lit(","), .post = str8_lit(" }")}); + operand_string = s("{...}"); + off += block_size; } break; - case DW_ExprOp_Addrx: { + case DW_ExprOp_Addrx: + { U64 addr = 0; - cursor += str8_deserial_read_uleb128(raw_data, cursor, &addr); - op_value = push_str8f(scratch.arena, "%#llx", addr); - } break; - - case DW_ExprOp_CallFrameCfa: - case DW_ExprOp_FormTlsAddress: - case DW_ExprOp_PushObjectAddress: - case DW_ExprOp_Nop: - case DW_ExprOp_Eq: - case DW_ExprOp_Ge: - case DW_ExprOp_Gt: - case DW_ExprOp_Le: - case DW_ExprOp_Lt: - case DW_ExprOp_Ne: - case DW_ExprOp_Shl: - case DW_ExprOp_Shr: - case DW_ExprOp_Shra: - case DW_ExprOp_Xor: - case DW_ExprOp_XDeref: - case DW_ExprOp_Abs: - case DW_ExprOp_And: - case DW_ExprOp_Div: - case DW_ExprOp_Minus: - case DW_ExprOp_Mod: - case DW_ExprOp_Mul: - case DW_ExprOp_Neg: - case DW_ExprOp_Not: - case DW_ExprOp_Or: - case DW_ExprOp_Plus: - case DW_ExprOp_Rot: - case DW_ExprOp_Swap: - case DW_ExprOp_Deref: - case DW_ExprOp_Dup: - case DW_ExprOp_Drop: - case DW_ExprOp_Over: - case DW_ExprOp_StackValue: { - // no operands - } break; + off += str8_deserial_read_uleb128(data, off, &addr); + operand_string = str8f(scratch.arena, "%#I64x", addr); + }break; } - String8 opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, op); - if (op_value.size == 0) { - str8_list_pushf(arena, &result, "DW_OP_%S", opcode_str); - } else { - str8_list_pushf(arena, &result, "DW_OP_%S = %S", opcode_str, op_value); + // rjf: push opcode info + String8 opcode_string = dw_string_from_expr_op(ctx->version, ctx->exts, op); + if(operand_string.size == 0) + { + str8_list_pushf(arena, &result, "%S", opcode_string); + } + else + { + str8_list_pushf(arena, &result, "%S(%S)", opcode_string, operand_string); } } scratch_end(scratch); return result; } -internal String8 -dw_string_from_expression(Arena *arena, String8 expr, U64 cu_base, U64 addr_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = dw_string_list_from_expression(scratch.arena, expr, cu_base, addr_size, arch, ver, ext, format); - String8 result = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - return result; -} - -internal String8List -dw_string_list_from_cfi_program(Arena *arena, - U64 cu_base, - Arch arch, - DW_Version ver, - DW_Ext ext, - DW_Format format, - U64 pc_begin, - DW_CIE *cie, - DW_DecodePtr *decode_ptr_func, - void *deocde_ptr_ud, - String8 program) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - U64 reg_max = dw_reg_count_from_arch(arch); - U64 pc = pc_begin; - for (U64 cursor = 0, inst_size; cursor < program.size; cursor += inst_size) { - // unpack instruction - DW_CFA_Inst inst = {0}; - DW_CFA_ParseErrorCode error_code = dw_parse_cfa_inst(str8_skip(program, cursor), cie->code_align_factor, cie->data_align_factor, 0, 0, &inst_size, &inst); - if (error_code == DW_CFA_ParseErrorCode_End) { break; } - if (error_code != DW_CFA_ParseErrorCode_NewInst) { - str8_list_pushf(arena, &list, "ERROR: failed to unpack CFA instruction @ 0x%I64", cursor); - break; - } - - // error check operands - DW_CFA_OperandType *operand_types = dw_operand_types_from_cfa_op(inst.opcode); - U64 operand_count = dw_operand_count_from_cfa_opcode(inst.opcode); - for EachIndex(operand_idx, operand_count) { - switch (operand_types[operand_idx]) { - case DW_CFA_OperandType_Null: break; - case DW_CFA_OperandType_Value: break; - case DW_CFA_OperandType_Register: { - if (inst.operands[operand_idx].u64 >= reg_max) { - str8_list_pushf(arena, &list, "ERROR: DW_CFA_%S @ 0x%I64x has an invalid register", - dw_string_from_cfa_opcode(inst.opcode), - cursor); - } - } break; - case DW_CFA_OperandType_Expression: { - DW_Expr expr = dw_expr_from_data(scratch.arena, format, cie->address_size, inst.operands[operand_idx].block); - for EachNode(inst, DW_ExprInst, expr.first) { - if (dw_is_cfa_expr_opcode_invalid(inst->opcode)) { - String8 expr_opcode_str = dw_string_from_expr_op(scratch.arena, ver, ext, inst->opcode); - str8_list_pushf(arena, &list, "ERROR: Exrepssion in DW_CFA_%S @ 0x%I64x has an invalid opcode DW_ExprOp_%S", expr_opcode_str); - } - } - } break; - default: { InvalidPath; } break; - } - } - - // format operands - String8 operand_str = str8_lit("???"); - switch (inst.opcode) { - case DW_CFA_Nop: { operand_str = str8_zero(); } break; - case DW_CFA_SetLoc: { - operand_str = str8f(arena, "0x%X", inst.operands[0].u64); - pc = inst.operands[0].u64; - } break; - case DW_CFA_AdvanceLoc1: { - U64 delta = inst.operands[0].u64; - pc += delta; - operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); - } break; - case DW_CFA_AdvanceLoc2: { - U64 delta = inst.operands[0].u64; - pc += delta; - operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); - } break; - case DW_CFA_AdvanceLoc4: { - U64 delta = inst.operands[0].u64; - pc += delta; - operand_str = str8f(arena, "%+u `PC 0x%I64x`", delta, pc); - } break; - case DW_CFA_OffsetExt: { - U64 reg = inst.operands[0].u64; - S64 offset = (S64)inst.operands[1].u64; - operand_str = dw_string_from_reg_off(arena, arch, reg, offset); - } break; - case DW_CFA_RestoreExt: { operand_str = str8_zero(); } break; - case DW_CFA_Undefined: { - operand_str = str8f(arena, "%I64u", inst.operands[0].u64); - } break; - case DW_CFA_SameValue: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); - } break; - case DW_CFA_Register: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].u64); - } break; - case DW_CFA_RememberState: { operand_str = str8_zero(); } break; - case DW_CFA_RestoreState: { operand_str = str8_zero(); } break; - case DW_CFA_DefCfa: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].u64); - } break; - case DW_CFA_DefCfaRegister: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); - } break; - case DW_CFA_DefCfaOffset: { - operand_str = str8f(arena, "+%I64u", inst.operands[0].u64); - } break; - case DW_CFA_DefCfaExpr: { - operand_str = dw_string_from_expression(arena, inst.operands[0].block, cu_base, cie->address_size, arch, ver, ext, format); - } break; - case DW_CFA_Expr: { - String8 reg_str = dw_string_from_reg_off(scratch.arena, arch, inst.operands[0].u64, 0); - String8 expr_str = dw_string_from_expression(scratch.arena, inst.operands[1].block, cu_base, cie->address_size, arch, ver, ext, format); - operand_str = str8f(arena, "%S expression %S", reg_str, expr_str); - } break; - case DW_CFA_OffsetExtSf: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].s64); - } break; - case DW_CFA_DefCfaSf: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, inst.operands[1].s64); - } break; - case DW_CFA_DefCfaOffsetSf: { operand_str = str8_zero(); } break; - case DW_CFA_ValOffset: { - operand_str = str8f(arena, "value 0x%llx, offset %+I64d", inst.operands[0].u64, inst.operands[1].u64); - } break; - case DW_CFA_ValOffsetSf: { - operand_str = str8f(arena, "value %llu, offset %+I64d", inst.operands[0].u64, inst.operands[1].s64); - } break; - case DW_CFA_ValExpr: { - String8 expr_str = dw_string_from_expression(scratch.arena, inst.operands[1].block, cu_base, cie->address_size, arch, ver, ext, format); - operand_str = str8f(arena, "value +%I64u, expression %S", inst.operands[0].u64, expr_str); - } break; - case DW_CFA_AdvanceLoc: { - U64 delta = inst.operands[0].u64; - pc += delta; - operand_str = str8f(arena, "+%I64u `PC 0x%I64x`", delta, pc); - } break; - case DW_CFA_Offset: { - U64 reg = inst.operands[0].u64; - S64 offset = (S64)inst.operands[1].u64; - operand_str = dw_string_from_reg_off(arena, arch, reg, offset); - } break; - case DW_CFA_Restore: { - operand_str = dw_string_from_reg_off(arena, arch, inst.operands[0].u64, 0); - } break; - default: { - str8_list_pushf(arena, &list, "ERROR: unknown CFA opcode 0x%I64u", inst.opcode); - } goto exit; - } - - if (operand_str.size) { - str8_list_pushf(arena, &list, "DW_CFA_%S: %S", dw_string_from_cfa_opcode(inst.opcode), operand_str); - } else { - str8_list_pushf(arena, &list, "DW_CFA_%S", dw_string_from_cfa_opcode(inst.opcode)); - } - } - -exit:; - scratch_end(scratch); - return list; -} - -internal String8 -dw_single_line_string_from_expression(Arena *arena, String8 raw_data, U64 cu_base, U64 address_size, Arch arch, DW_Version ver, DW_Ext ext, DW_Format format) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = dw_string_list_from_expression(scratch.arena, raw_data, cu_base, address_size, arch, ver, ext, format); - String8 expression = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(", ")}); - scratch_end(scratch); - return expression; -} - -#if 0 - -internal String8 -w_string_from_eh_ptr_enc(Arena *arena, EH_PtrEnc enc) -{ - U8 type = enc & EH_PtrEnc_TypeMask; - String8 type_str = str8_lit("NULL"); - switch (type) { - case EH_PtrEnc_Ptr: type_str = str8_lit("PTR"); break; - case EH_PtrEnc_ULEB128: type_str = str8_lit("ULEB128"); break; - case EH_PtrEnc_UData2: type_str = str8_lit("UDATA2"); break; - case EH_PtrEnc_UData4: type_str = str8_lit("UDATA4"); break; - case EH_PtrEnc_UData8: type_str = str8_lit("UDATA8"); break; - case EH_PtrEnc_Signed: type_str = str8_lit("SIGNED"); break; - case EH_PtrEnc_SLEB128: type_str = str8_lit("SLEB128"); break; - case EH_PtrEnc_SData2: type_str = str8_lit("SDATA2"); break; - case EH_PtrEnc_SData4: type_str = str8_lit("SDATA4"); break; - case EH_PtrEnc_SData8: type_str = str8_lit("SDATA8"); break; - } - U8 modifier = enc & EH_PtrEnc_ModifyMask; - String8 modifier_str = str8_lit("NULL"); - switch (modifier) { - case EH_PtrEnc_PcRel: modifier_str = str8_lit("PCREL"); break; - case EH_PtrEnc_TextRel: modifier_str = str8_lit("TEXTREL"); break; - case EH_PtrEnc_DataRel: modifier_str = str8_lit("DATAREL"); break; - case EH_PtrEnc_FuncRel: modifier_str = str8_lit("FUNCREL"); break; - } - String8 indir_str = str8_lit(""); - if (enc & EH_PtrEnc_Indirect) { - indir_str = str8_lit("(INDIRECT)"); - } - return push_str8f(arena, "Type: %S, Modifier: %S %S", type_str, modifier_str, indir_str); -} - -internal void -dw_print_eh_frame(Arena *arena, String8List *out, String8 indent, String8 raw_eh_frame, Arch arch, DW_Version ver, DW_Ext ext, EH_PtrCtx *ptr_ctx) -{ - Temp scratch = scratch_begin(&arena, 1); - DW_CIE cie = {0}; - - for (U64 cursor = 0; cursor < raw_eh_frame.size; ) { - U64 header_offset = cursor; - - U64 length = 0; // doesn't include bytes for size - cursor += dw_based_range_read_length(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), cursor, &length); - - if (length == 0) { - break; // encountered exit marker - } - - U64 entry_start = cursor; - U64 entry_end = cursor + length; - - U32 entry_id = 0; // always 4-bytes, even when length is encoded as 64-bit integer - cursor += str8_deserial_read_struct(raw_eh_frame, cursor, &entry_id); - - // TODO: fix the freaking EH_PtrEnc_PCREL encoding. - // it assumes "frame_base" points to the first byte of .eh_frame - // but here base is start of ELF and we use range to select .eh_frame - // bytes to read, which breaks parsing. - String8 raw_frame = str8_substr(raw_eh_frame, rng_1u64(cursor, cursor + length - sizeof(entry_id))); - Rng1U64 cfi_range = rng_1u64(0,0); - - // CIE - if (entry_id == 0) { - dw_unwind_parse_cie_x64(raw_frame.str, rng_1u64(0,raw_frame.size), ptr_ctx, 0, &cie); - cfi_range = cie.cfi_range; - - rd_printf("CIE @ 0x%X, Length %u", header_offset, length); - rd_indent(); - rd_printf("LSDA Encoding: %S", dw_string_from_eh_ptr_enc(scratch.arena, cie.lsda_encoding)); - rd_printf("Address Encoding: %S", dw_string_from_eh_ptr_enc(scratch.arena, cie.addr_encoding)); - rd_printf("Augmentation: %S", cie.augmentation); - rd_printf("Code Align Factor: %llu", cie.code_align_factor); - rd_printf("Data Align Factor: %lld", cie.data_align_factor); - rd_printf("Return Address Register: %u", cie.ret_addr_reg); - rd_printf("Handler IP: %#llx", cie.handler_ip); - rd_unindent(); - } - // FDE - else { - DW_FDE fde = {0}; - dw_unwind_parse_fde_x64(raw_eh_frame.str, rng_1u64(0,raw_eh_frame.size), ptr_ctx, &cie, 0, &fde); - cfi_range = fde.cfi_range; - - // calc parent CIE offset - AssertAlways(entry_start >= entry_id); - U64 cie_offset = entry_start - entry_id; NotImplemented; // TODO: syms_safe_sub_u64(range.min + entry_start, entry_id); - - rd_printf("FDE @ %#llx, Length %u, Parent CIE @ %#llx", header_offset, length, cie_offset); - rd_indent(); - rd_printf("IP Range: %#llx-%#llx", fde.ip_voff_range.min, fde.ip_voff_range.max); - rd_printf("LSDA IP: %#llx", fde.lsda_ip); - rd_unindent(); - } - - // print CFI program - rd_printf("CFI Program:"); - rd_indent(); - - DW_Format format = DW_FormatFromSize(length); - String8 raw_cfi = str8_substr(raw_eh_frame, cfi_range); - dw_string_from_cfi_program(scratch.arena, out, indent, raw_cfi, &cie, ptr_ctx, arch, ver, ext, format); - - rd_unindent(); - rd_newline(); - - // advance to next entry - cursor = entry_end; - } - - scratch_end(scratch); -} - -internal void -dw_print_debug_loc(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) -{ -#if 0 - DW_Section info = input->sec[DW_Section_Info]; - DW_Section loc = input->sec[DW_Section_Loc]; - - if (loc.data.size == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", input->sec[DW_Section_Loc].name); - rd_indent(); - - // TODO: warn about overlaps in ranges - - Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, info); - - // parse debug_info for attributes with LOCLIST and store .debug_loc offsets - U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); - U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); - U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); - U64 *cu_bases = push_array(scratch.arena, U64, cu_range_list.count); - DW_Version *ver_arr = push_array(scratch.arena, DW_Version, cu_range_list.count); - DW_Ext *ext_arr = push_array(scratch.arena, DW_Ext, cu_range_list.count); - - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Temp comp_temp = temp_begin(arena); - - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_comp_unit_from_info_off(comp_temp.arena, input, cu_range.min, relaxed); - - // store info about comp unit - address_sizes[comp_idx] = cu.address_size; - address_bases[comp_idx] = cu.base_addr; - ver_arr[comp_idx] = cu.version; - cu_bases[comp_idx] = cu_range_n->v.min; - - // parse tags - for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { - Temp tag_temp = temp_begin(scratch.arena); - - DW_Tag tag = dw_tag_from_info_offset_cu(tag_temp.arena, input, &cu, ext_arr[comp_idx], info_off); - - // parse attribs - for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { - DW_Attrib *attrib = &attrib_node->v; - B32 is_sect_offset = attrib->value_class == DW_AttribClass_LocListPtr || (attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_SecOffset); - B32 is_sect_index = attrib->value_class == DW_AttribClass_LocList && attrib->form_kind == DW_Form_LocListx; - if (is_sect_offset) { - u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); - } else if (is_sect_index) { - // TODO: support for section indexing - } - } - - // advance to next tag - info_off = tag.next_info_off; - - temp_end(tag_temp); - } - - temp_end(comp_temp); - } - - void *base = dw_base_from_sec(input, DW_Section_Loc); - Rng1U64 range = dw_range_from_sec(input, DW_Section_Loc); - - rd_printf(".debug_loc"); - rd_indent(); - rd_printf("%-8s %-8s %-8s %s", "Offset", "Min", "Max", "Expression"); - for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { - Temp locs_temp = temp_begin(scratch.arena); - - DW_Version ver = ver_arr[comp_idx]; - DW_Ext ext = ext_arr[comp_idx]; - - U64Array locs = u64_array_from_list(locs_temp.arena, &loc_lists[comp_idx]); - u64_array_sort(locs.count, locs.v); - - U64Array locs_set = remove_duplicates_u64_array(locs_temp.arena, locs); - U64 address_size = address_sizes[comp_idx]; - U64 base_selector = (address_size == 8) ? max_U64 : max_U32; - - for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { - U64 base_address = address_bases[comp_idx]; - for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { - Temp range_temp = temp_begin(arena); - - String8List list = {0}; - - // offset - str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); - - // parse entry - U64 v0 = 0, v1 = 0; - cursor += dw_based_range_read(base, range, cursor, address_size, &v0); - cursor += dw_based_range_read(base, range, cursor, address_size, &v1); - - B32 is_list_end = v0 == 0 && v1 == 0; - if (is_list_end) { - str8_list_pushf(range_temp.arena, &list, ""); - } else if (v0 == base_selector) { - base_address = v1; - } else { - U16 expr_size = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &expr_size); - Rng1U64 expr_range = rng_1u64(range.min+cursor, range.min+cursor+expr_size); - cursor += expr_size; - - // format dwarf expression - B32 is_dwarf64 = (address_size == 8); - String8 raw_expr = str8((U8*)base+expr_range.min, dim_1u64(expr_range)); - String8 expression = dw_single_line_string_from_expression(range_temp.arena, raw_expr, cu_bases[comp_idx], address_size, arch, ver, ext, input->sec[DW_Section_Loc].mode); - - // push entry - U64 min = base_address + v0; - U64 max = base_address + v1; - str8_list_pushf(range_temp.arena, &list, "%08llx %08llx %S", min, max, expression); - } - - // print entry - String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - // cleanup temp - temp_end(range_temp); - - // exit check - if (is_list_end) { - break; - } - } - } - - temp_end(locs_temp); - } - rd_unindent(); - - rd_unindent(); - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_ranges(Arena *arena, String8List *out, String8 indent, DW_Input *input, Arch arch, ExecutableImageKind image_type, B32 relaxed) -{ - NotImplemented; -#if 0 - DW_Section ranges = input->sec[DW_Section_Ranges]; - void *base = dw_base_from_sec(input, DW_Section_Ranges); - Rng1U64 range = dw_range_from_sec(input, DW_Section_Ranges); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - Rng1U64List cu_range_list = dw_comp_unit_ranges_from_info(scratch.arena, sections->v[DW_Section_Info]); - - // parse debug_info for attributes with LOCLIST and store .debug_loc offsets - U64List *loc_lists = push_array(scratch.arena, U64List, cu_range_list.count); - U64 *address_sizes = push_array(scratch.arena, U64, cu_range_list.count); - U64 *address_bases = push_array(scratch.arena, U64, cu_range_list.count); - - { - U64 comp_idx = 0; - for (Rng1U64Node *cu_range_n = cu_range_list.first; cu_range_n != 0; cu_range_n = cu_range_n->next, ++comp_idx) { - Rng1U64 cu_range = cu_range_n->v; - DW_CompUnit cu = dw_comp_unit_from_info_offset(scratch.arena, sections, cu_range.min, relaxed); - - // store info about comp unit - address_sizes[comp_idx] = cu.address_size; - address_bases[comp_idx] = cu.base_addr; - - // parse tags - for (U64 info_off = cu.tags_range.min; info_off < cu.tags_range.max; /* empty */) { - DW_Tag tag = dw_tag_from_info_offset_cu(scratch.arena, sections, &cu, info_off); - - // parse attribs - for (DW_AttribNode *attrib_node = tag.attribs.first; attrib_node != 0; attrib_node = attrib_node->next) { - DW_Attrib *attrib = &attrib_node->v; - B32 is_sect_offset = attrib->value_class == DW_AttribClass_RngListPtr || (attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_SecOffset); - B32 is_sect_index = attrib->value_class == DW_AttribClass_RngList && attrib->form_kind == DW_Form_RngListx; - if (is_sect_offset) { - u64_list_push(scratch.arena, &loc_lists[comp_idx], attrib->value.v[0]); - } else if (is_sect_index) { - // TODO: support for section indexing - } - } - - info_off = tag.next_info_off; - } - } - } - - rd_printf("# %S", sections->v[DW_Section_Ranges].name); - rd_indent(); - rd_printf("%-8s %-8s %-8s", "Offset", "Min", "Max"); - for (U32 comp_idx = 0; comp_idx < cu_range_list.count; ++comp_idx) { - U64Array locs = u64_array_from_list(scratch.arena, &loc_lists[comp_idx]); - u64_array_sort(locs.count, locs.v); - U64Array locs_set = remove_duplicates_u64_array(scratch.arena, locs); - U64 address_size = address_sizes[comp_idx]; - U64 base_selector = (address_size == 8) ? max_U64 : max_U32; - - for (U64 loc_idx = 0; loc_idx < locs_set.count; ++loc_idx) { - U64 base_address = address_bases[comp_idx]; - for (U64 cursor = locs_set.v[loc_idx]; cursor < dim_1u64(range); /* empty */) { - Temp range_temp = temp_begin(scratch.arena); - - String8List list = {0}; - - // offset - str8_list_pushf(range_temp.arena, &list, "%08llx", cursor); - - // parse entry - U64 v0 = 0, v1 = 0; - cursor += dw_based_range_read(base, range, cursor, address_size, &v0); - cursor += dw_based_range_read(base, range, cursor, address_size, &v1); - - B32 is_list_end = v0 == 0 && v1 == 0; - if (is_list_end) { - str8_list_pushf(range_temp.arena, &list, ""); - } else if (v0 == base_selector) { - base_address = v1; - } else { - // push entry - U64 min = base_address + v0; - U64 max = base_address + v1; - str8_list_pushf(range_temp.arena, &list, "%08llx %08llx", min, max); - } - - // print entry - String8 print = str8_list_join(range_temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(range_temp); - - // exit check - if (is_list_end) { - break; - } - } - } - } -#endif -} - -internal void -dw_print_debug_aranges(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_ARanges); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_ARanges); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_ARanges].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_length = 0; - DW_Version version = 0; - U64 debug_info_offset = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - - B32 is_dwarf64 = unit_length >= max_U32; - U64 int_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - cursor += dw_based_range_read(base, range, cursor, int_size, &debug_info_offset); - - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - cursor += tuple_size - bytes_too_far_past_boundary; - } - - rd_printf("Unit length: %llu", unit_length); - rd_printf("Version: %u", version); - rd_printf("Debug info offset: %#llx", debug_info_offset); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 2 (DWARF5 sepc, Feb 13, 2017)"); - } - - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Range"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - U64 segment_selector = 0; - U64 address = 0; - U64 length = 0; - cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); - cursor += dw_based_range_read(base, range, cursor, address_size, &address); - cursor += dw_based_range_read(base, range, cursor, address_size, &length); - - if (segment_selector == 0 && address == 0 && length == 0) { - str8_list_pushf(temp.arena, &list, ""); - } else { - if (segment_selector != 0) { - str8_list_pushf(temp.arena, &list, "%02llu:", segment_selector); - } - str8_list_pushf(temp.arena, &list, "%llx-%llx", address, address+length); - } - - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ") }); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_addr(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_Addr); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_Addr); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_Addr].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_length = 0; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - - U64 unit_offset = cursor; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - - U64 unit_opl = cursor + unit_length; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - cursor += tuple_size - bytes_too_far_past_boundary; - } - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Address"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08X", cursor); - - U64 segment_selector = 0; - U64 address = 0; - cursor += dw_based_range_read(base, range, cursor, segment_selector_size, &segment_selector); - cursor += dw_based_range_read(base, range, cursor, address_size, &address); - - if (segment_selector == 0 && address == 0) { - str8_list_pushf(temp.arena, &list, ""); - } else { - if (segment_selector != 0) { - str8_list_pushf(temp.arena, &list, "%02u:", segment_selector); - } - str8_list_pushf(temp.arena, &list, "%llx", address); - } - - String8 print = str8_list_join(arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal U64 -dw_based_range_read_address(void *base, Rng1U64 range, U64 offset, Rng1U64Array segment_ranges, U8 segment_selector_size, U8 address_size, U64 *address_out) -{ - U64 read_offset = offset; - - // read segment - U64 segment_selector = 0; - read_offset += dw_based_range_read(base, range, read_offset, segment_selector_size, &segment_selector); - - // read address - U64 address = 0; - read_offset += dw_based_range_read(base, range, read_offset, address_size, &address); - - // apply segment offset - B32 is_address_segment_relative = segment_selector_size > 0; - if (is_address_segment_relative) { - if (segment_selector < segment_ranges.count) { - address += segment_ranges.v[segment_selector].min; - } else { - Assert(!"invalid segment selector"); - } - } - - U64 read_size = (read_offset - offset); - return read_size; -} - -internal void -dw_print_debug_loclists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_virtual_ranges, Arch arch) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_LocLists); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_LocLists); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_LocLists].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - - U64 unit_opl = cursor + unit_length; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - U32 offset_entry_count = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); - - U64 past_header_offset = cursor; - B32 is_dwarf64 = unit_length > max_U32; - U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - rd_printf("Offset entry count: %u", offset_entry_count); - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - if (offset_entry_count > 0) { - rd_printf("Offsets:"); - rd_indent(); - rd_printf("%-8s %-8s", "Index", "Offset"); - for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); - } - rd_unindent(); - } - - rd_printf("Locations:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Location"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(arena); - - String8List list = {0}; - - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - U8 kind = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &kind); - str8_list_pushf(temp.arena, &list, "DW_LLE_%S", dw_string_from_loc_list_entry_kind(temp.arena, kind)); - - B32 has_loc_desc = 0; - switch (kind) { - case DW_LocListEntryKind_EndOfList: - break; - case DW_LocListEntryKind_DefaultLocation: { - has_loc_desc = 1; - } break; - case DW_LocListEntryKind_BaseAddress: { - U64 base_address = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &base_address); - str8_list_pushf(temp.arena, &list, "%llx", base_address); - } break; - case DW_LocListEntryKind_StartLength: { - U64 start = 0; - U64 length = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); - } break; - case DW_LocListEntryKind_StartEnd: { - U64 start = 0; - U64 end = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_address(base, range, cursor, segment_virtual_ranges, segment_selector_size, address_size, &end); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); - } break; - case DW_LocListEntryKind_BaseAddressX: { - U64 base_addressx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); - str8_list_pushf(temp.arena, &list, "%llx", base_addressx); - } break; - case DW_LocListEntryKind_StartXEndX: { - U64 startx = 0; - U64 endx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); - } break; - case DW_LocListEntryKind_OffsetPair: { - U64 a = 0; - U64 b = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &a); - cursor += dw_based_range_read_uleb128(base, range, cursor, &b); - str8_list_pushf(temp.arena, &list, "%llx, %llx", a, b); - - U8 expr_length = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &expr_length); - - String8 raw_expr = str8((U8*)base+cursor, expr_length); - cursor += expr_length; - - // TODO: we need actual cu base to format expression correctly - NotImplemented; - String8 expression = dw_single_line_string_from_expression(temp.arena, raw_expr, 0, address_size, arch, version, DW_Ext_Null, is_dwarf64); - str8_list_pushf(temp.arena, &list, "(%S)", expression); - } break; - case DW_LocListEntryKind_StartXLength: { - U64 startx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - U64 length = 0; - if (version < DW_Version_5) { - // pre-standard length - cursor += dw_based_range_read(base, range, cursor, sizeof(U32), &length); - } else { - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - } - } break; - } - - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_rnglists(Arena *arena, String8List *out, String8 indent, DW_Input *input, Rng1U64Array segment_ranges) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_RngLists); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_RngLists); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_RngLists].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - DW_Version version = 0; - U8 address_size = 0; - U8 segment_selector_size = 0; - U32 offset_entry_count = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - cursor += dw_based_range_read_struct(base, range, cursor, &address_size); - cursor += dw_based_range_read_struct(base, range, cursor, &segment_selector_size); - cursor += dw_based_range_read_struct(base, range, cursor, &offset_entry_count); - - U64 past_header_offset = cursor; - B32 is_dwarf64 = unit_length > max_U32; - U64 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Address size: %u", address_size); - rd_printf("Segment selector size: %u", segment_selector_size); - rd_printf("Offset entry count: %u", offset_entry_count); - - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - if (offset_entry_count > 0) { - rd_printf("Offsets:"); - rd_indent(); - rd_printf("%-8s %-8s", "Index", "Offset"); - for (U64 offset_idx = 0; offset_idx < offset_entry_count; ++offset_idx) { - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%-8llu %llx", offset_idx, offset+past_header_offset); - } - rd_unindent(); - } - - rd_printf("Ranges:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "Range"); - for (; cursor < unit_opl; ) { - Temp temp = temp_begin(scratch.arena); - - String8List list = {0}; - - // offset - str8_list_pushf(temp.arena, &list, "%08llx", cursor); - - // opcode mnemonic - U8 kind = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &kind); - str8_list_pushf(temp.arena, &list, "DW_RLE_%S", dw_string_from_rng_list_entry_kind(temp.arena, kind)); - - // operand - switch (kind) { - case DW_RngListEntryKind_EndOfList: { - // empty - } break; - case DW_RngListEntryKind_BaseAddressX: { - U64 base_addressx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &base_addressx); - str8_list_pushf(temp.arena, &list, "%llx", base_addressx); - } break; - case DW_RngListEntryKind_BaseAddress: { - U64 base_address = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &base_address); - str8_list_pushf(temp.arena, &list, "%llx", base_address); - } break; - case DW_RngListEntryKind_OffsetPair: { - U64 min = 0; - U64 max = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &min); - cursor += dw_based_range_read_uleb128(base, range, cursor, &max); - str8_list_pushf(temp.arena, &list, "%llx, %llx", min, max); - } break; - case DW_RngListEntryKind_StartxLength: { - U64 startx = 0; - U64 length = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, length); - } break; - case DW_RngListEntryKind_StartxEndx: { - U64 startx = 0; - U64 endx = 0; - cursor += dw_based_range_read_uleb128(base, range, cursor, &startx); - cursor += dw_based_range_read_uleb128(base, range, cursor, &endx); - str8_list_pushf(temp.arena, &list, "%llx, %llx", startx, endx); - } break; - case DW_RngListEntryKind_StartEnd: { - U64 start = 0; - U64 end = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &end); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, end); - } break; - case DW_RngListEntryKind_StartLength: { - U64 start = 0; - U64 length = 0; - cursor += dw_based_range_read_address(base, range, cursor, segment_ranges, segment_selector_size, address_size, &start); - cursor += dw_based_range_read_uleb128(base, range, cursor, &length); - str8_list_pushf(temp.arena, &list, "%llx, %llx", start, length); - } break; - } - - // output row - String8 print = str8_list_join(temp.arena, &list, &(StringJoin){.sep=str8_lit(" ")}); - rd_printf("%S", print); - - temp_end(temp); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_format_string_table(Arena *arena, String8List *out, String8 indent, DW_Input *input, DW_SectionKind sec) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, sec); - Rng1U64 range = dw_range_from_sec(sections, sec); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[sec].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - - DW_Version version = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - - if (version != DW_Version_2) { - rd_warningf("Version value must be 2"); - } - - B32 is_dwarf64 = unit_length > max_U32; - U32 sec_offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - U64 debug_info_offset = 0, debug_info_length = 0; - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_offset); - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &debug_info_length); - - rd_printf("Unit @ %#llx, length %llu", unit_offset, unit_length); - rd_printf("Version: %u", version); - rd_printf("Debug info offset: %#llx", debug_info_offset); - rd_printf("Debug info length: %#llx", debug_info_length); - - rd_printf("Entries:"); - rd_indent(); - rd_printf("%-8s %-8s", "Offset", "String"); - for (; cursor < unit_opl; ) { - U64 info_offset = 0; - cursor += dw_based_range_read(base, range, cursor, sec_offset_size, &info_offset); - String8 string = dw_based_range_read_string(base, range, cursor); - cursor += (string.size + 1); - - rd_printf("%08llx %S", info_offset, string); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_pubnames(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - dw_format_string_table(arena, out, indent, input, DW_Section_PubNames); -} - -internal void -dw_print_debug_pubtypes(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - dw_format_string_table(arena, out, indent, input, DW_Section_PubTypes); -} - -internal void -dw_print_debug_line_str(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_LineStr); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_LineStr); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_LineStr].name); - rd_indent(); - - rd_printf("%-8s %-8s", "Offset", "String"); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 offset = cursor; - String8 string = dw_based_range_read_string(base, range, cursor); - cursor += (string.size + 1); - rd_printf("%08llX %S", offset, string); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -internal void -dw_print_debug_str_offsets(Arena *arena, String8List *out, String8 indent, DW_Input *input) -{ - NotImplemented; -#if 0 - void *base = dw_base_from_sec(sections, DW_Section_StrOffsets); - Rng1U64 range = dw_range_from_sec(sections, DW_Section_StrOffsets); - - void *debug_str_base = dw_base_from_sec(sections, DW_Section_Str); - Rng1U64 debug_str_range = dw_range_from_sec(sections, DW_Section_Str); - - if (dim_1u64(range) == 0) { - return; - } - - Temp scratch = scratch_begin(&arena, 1); - - rd_printf("# %S", sections->v[DW_Section_StrOffsets].name); - rd_indent(); - for (U64 cursor = 0; cursor < dim_1u64(range); ) { - U64 unit_offset = cursor; - - U64 unit_length = 0; - cursor += dw_based_range_read_length(base, range, cursor, &unit_length); - U64 unit_opl = cursor + unit_length; - - DW_Version version = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &version); - if (version != DW_Version_5) { - rd_warningf("Version value must be 5 (DWARF5 sepc, Feb 13, 2017)"); - } - - U16 padding = 0; - cursor += dw_based_range_read_struct(base, range, cursor, &padding); - if (padding != 0) { - rd_warningf("unexpected padding byte"); - } - - B32 is_dwarf64 = unit_length > max_U32; - U32 offset_size = is_dwarf64 ? sizeof(U64) : sizeof(U32); - - rd_printf("Unit @ %#llX, length %lld", unit_offset, unit_length); - rd_printf("Version: %d", version); - rd_printf("Padding: %d", padding); - rd_indent(); - rd_printf("%-8s %-8s", "@", "Offset"); - for (; cursor < unit_opl; ) { - U64 read_at = cursor; - U64 offset = 0; - cursor += dw_based_range_read(base, range, cursor, offset_size, &offset); - rd_printf("%08llx %08llx", read_at, offset); - if (dim_1u64(debug_str_range) > 0) { - String8 string = dw_based_range_read_string(debug_str_base, debug_str_range, offset); - rd_printf(" %S", string); - } - rd_newline(); - } - rd_unindent(); - rd_newline(); - } - rd_unindent(); - - scratch_end(scratch); -#endif -} - -#endif - //////////////////////////////// -//~ rjf: Dump Entry Point - -internal String8 -dw_string_from_attrib_value(Arena *arena, DW_Input *input, Arch arch, DW_CompUnit *unit, DW_LineVMHeader *line_vm, DW_Attrib *attrib) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List attrib_fmt = {0}; - - // rjf: log attrib's value based on vlass - DW_AttribClass value_class = dw_value_class_from_attrib(unit, attrib); - switch(value_class) - { - default: {str8_list_pushf(scratch.arena, &attrib_fmt, "`unknown value class`");}break; - case DW_AttribClass_Undefined: {str8_list_pushf(scratch.arena, &attrib_fmt, "`undefined value class`");}break; - case DW_AttribClass_Address: {str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", dw_address_from_attrib(input, unit, attrib));}break; - case DW_AttribClass_Const: {str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", dw_const_u64_from_attrib(input, unit, attrib));}break; - case DW_AttribClass_Block: - { - String8 block = dw_block_from_attrib(input, unit, attrib); - String8List block_strs = numeric_str8_list_from_data(scratch.arena, 16, block, 1); - String8 block_str = str8_list_join(scratch.arena, &block_strs, &(StringJoin){.sep = str8_lit(", ")}); - str8_list_pushf(scratch.arena, &attrib_fmt, "{ %S }", block_str); - }break; - case DW_AttribClass_ExprLoc: - { - String8 exprloc = dw_exprloc_from_attrib(input, unit, attrib); - String8 exprloc_str = dw_single_line_string_from_expression(scratch.arena, exprloc, unit->info_range.min, unit->address_size, arch, unit->version, unit->ext, unit->format); - str8_list_pushf(scratch.arena, &attrib_fmt, "{ %S }", exprloc_str); - }break; - case DW_AttribClass_Flag: - { - B32 flag = dw_flag_from_attrib(input, unit, attrib); - str8_list_pushf(scratch.arena, &attrib_fmt, "%llu (%s)", flag, flag == 0 ? "false" : "true"); - }break; - case DW_AttribClass_LinePtr: - case DW_AttribClass_LocListPtr: - case DW_AttribClass_MacPtr: - case DW_AttribClass_RngListPtr: - case DW_AttribClass_RngList: - case DW_AttribClass_StrOffsetsPtr: - case DW_AttribClass_AddrPtr: - { - if(attrib->form_kind == DW_Form_SecOffset) - { - str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", attrib->form.sec_offset); - } - else - { - str8_list_pushf(scratch.arena, &attrib_fmt, "`unexpected form kind %S`", dw_string_from_form_kind(scratch.arena, unit->version, attrib->form_kind)); - } - }break; - case DW_AttribClass_Reference: - { - if(attrib->form_kind == DW_Form_Ref1 || - attrib->form_kind == DW_Form_Ref2 || - attrib->form_kind == DW_Form_Ref4 || - attrib->form_kind == DW_Form_Ref8 || - attrib->form_kind == DW_Form_RefUData) - { - U64 info_off = unit->info_range.min + attrib->form.ref; - str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", info_off); - if(!contains_1u64(unit->info_range, info_off)) - { - str8_list_pushf(scratch.arena, &attrib_fmt, ": `(out of this unit's bounds)`"); - } - } - else - { - str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x", attrib->form.ref); - } - }break; - case DW_AttribClass_String: - { - if(attrib->form_kind == DW_Form_Strp || attrib->form_kind == DW_Form_LineStrp || attrib->form_kind == DW_Form_StrpSup) - { - str8_list_pushf(scratch.arena, &attrib_fmt, "0x%I64x ", attrib->form.sec_offset); - } - String8 string = dw_string_from_attrib(input, unit, attrib); - str8_list_pushf(scratch.arena, &attrib_fmt, "\"%S\"", string); - }break; - } - - // rjf: extend attrib's value with enum info - { - String8 enum_info = {0}; - switch(attrib->attrib_kind) - { - case DW_AttribKind_Language: - { - DW_Language lang = dw_const_u64_from_attrib(input, unit, attrib); - enum_info = dw_string_from_language(scratch.arena, lang); - }break; - case DW_AttribKind_DeclFile: - { - U64 file_idx = dw_const_u64_from_attrib(input, unit, attrib); - DW_LineFile *file = dw_file_from_attrib(unit, line_vm, attrib); - if(file != 0) - { - enum_info = dw_path_from_file(scratch.arena, line_vm, file); - } - }break; - case DW_AttribKind_DeclLine: - { - enum_info = str8f(scratch.arena, "%I64u", dw_const_u64_from_attrib(input, unit, attrib)); - }break; - case DW_AttribKind_Inline: - { - DW_InlKind inl = dw_const_u64_from_attrib(input, unit, attrib); - enum_info = dw_string_from_inl(scratch.arena, inl); - }break; - case DW_AttribKind_Accessibility: - { - DW_AccessKind access = dw_const_u64_from_attrib(input, unit, attrib); - enum_info = dw_string_from_access_kind(scratch.arena, access); - }break; - case DW_AttribKind_CallingConvention: - { - DW_CallingConventionKind calling_convetion = dw_const_u64_from_attrib(input, unit, attrib); - enum_info = dw_string_from_calling_convetion(scratch.arena, calling_convetion); - }break; - case DW_AttribKind_Encoding: - { - DW_ATE encoding = dw_const_u64_from_attrib(input, unit, attrib); - enum_info = dw_string_from_attrib_type_encoding(scratch.arena, encoding); - }break; - } - - if(enum_info.size) - { - str8_list_pushf(scratch.arena, &attrib_fmt, " `%S`", enum_info); - } - } - - String8 result = str8_list_join(arena, &attrib_fmt, 0); - - scratch_end(scratch); - return result; -} - -internal -DW_CIE_FROM_OFFSET_FUNC(dwarf_dump_cie_from_offset) -{ - return hash_table_search_u64_raw(ud, offset); -} +//~ rjf: Main Dump Entry Point internal String8List -dw_dump_list_from_sections(Arena *arena, - DW_Input *input, - Arch arch, - DW_DumpSubsetFlags subset_flags) +dw_dump_list_from_raw(Arena *arena, DW_Raw *raw, Arch arch, DW_SectionFlags subset_flags) { - String8List strings = {0}; - String8 indent = str8_lit(" "); -#define dump(str) str8_list_push(arena, &strings, (str)) -#define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) -#define DumpSubset(name) if(subset_flags & DW_DumpSubsetFlag_##name) DeferLoop(dumpf("// %S\n\n", dw_name_title_from_dump_subset_table[DW_DumpSubset_##name]), dump(str8_lit("\n"))) + ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); - Rng1U64Array segment_vranges = {0}; - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); - B32 relaxed = 1; - - DW_CompUnit *cu_arr; - { - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, input); - Rng1U64List cu_range_list = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); - Rng1U64Array cu_ranges = rng1u64_array_from_list(scratch.arena, &cu_range_list); - cu_arr = push_array(scratch.arena, DW_CompUnit, cu_ranges.count); - for EachIndex(cu_idx, cu_ranges.count) - { - cu_arr[cu_idx] = dw_cu_from_info_off(scratch.arena, input, lu_input, cu_ranges.v[cu_idx].min, relaxed); - } - } + String8 indent = str8_lit(" "); ////////////////////////////// - //- rjf: dump .debug_info + //- rjf: set up // - DumpSubset(DebugInfo) - { Rng1U64List unit_ranges_list = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Info].data); - Rng1U64Array unit_ranges = rng1u64_array_from_list(scratch.arena, &unit_ranges_list); - for EachIndex(unit_idx, unit_ranges.count) - { - Temp unit_temp = temp_begin(scratch.arena); - - //- rjf: unpack unit - Rng1U64 unit_range = unit_ranges.v[unit_idx]; - DW_CompUnit *unit = &cu_arr[unit_idx]; - String8 unit_dir = dw_string_from_tag_attrib_kind(input, unit, unit->tag, DW_AttribKind_CompDir ); - String8 unit_name = dw_string_from_tag_attrib_kind(input, unit, unit->tag, DW_AttribKind_Name ); - String8 stmt_list = dw_line_ptr_from_tag_attrib_kind(input, unit, unit->tag, DW_AttribKind_StmtList); - DW_LineVMHeader line_vm = {0}; - dw_read_line_vm_header(unit_temp.arena, stmt_list, 0, input, unit_dir, unit_name, unit->address_size, unit->str_offsets_lu, &line_vm); - - //- rjf: log top-level unit info - dumpf("unit: // compile_unit[%I64u]\n{\n", unit_idx); - dumpf(" version: %u\n", unit->version); - dumpf(" address_size: %I64u\n", unit->address_size); - dumpf(" abbrev_off: 0x%I64x\n", unit->abbrev_off); - dumpf(" info_range: [0x%I64x, 0x%I64x) // (%M)\n", unit->info_range.min, unit->info_range.max, dim_1u64(unit->info_range)); - - //- rjf: log tags - S64 tag_depth = 0; - U64 tag_idx = 0; - for(U64 info_off = unit->first_tag_info_off; info_off < unit->info_range.max; tag_idx += 1) - { - Temp tag_temp = temp_begin(scratch.arena); - - // rjf: unpack tag - String8 tag_indent = str8_prefix(indent, (tag_depth+1)*2); - U64 tag_info_off = info_off; - DW_Tag tag = {0}; - info_off += dw_read_tag_cu(tag_temp.arena, input, unit, tag_info_off, &tag); - - // rjf: log top-level tag info - dumpf("%Stag: // info_off: 0x%I64x, abbrev_id: %I64u, compile_unit[%I64u].tag[%I64u]\n%S{\n", tag_indent, tag_info_off, tag.abbrev_id, unit_idx, tag_idx, tag_indent); - dumpf("%S kind: %S\n", tag_indent, dw_string_from_tag_kind(tag_temp.arena, tag.kind)); - - // log attribs - { - // compute columns' max widths - U64 attrib_name_max_size = 0, form_kind_max_size = 0, value_max_size = 0; - for EachNode(attrib_n, DW_AttribNode, tag.attribs.first) - { - Temp attrib_temp = temp_begin(tag_temp.arena); - attrib_name_max_size = Max(attrib_name_max_size, dw_string_from_attrib_kind(attrib_temp.arena, unit->version, unit->ext, attrib_n->v.attrib_kind).size); - form_kind_max_size = Max(form_kind_max_size, dw_string_from_form_kind(attrib_temp.arena, unit->version, attrib_n->v.form_kind).size); - value_max_size = Max(value_max_size, dw_string_from_attrib_value(attrib_temp.arena, input, arch, unit, &line_vm, &attrib_n->v).size); - temp_end(attrib_temp); - } - value_max_size = Min(120, value_max_size); - - // log - for EachNode(attrib_n, DW_AttribNode, tag.attribs.first) - { - DW_Attrib *attrib = &attrib_n->v; - - Temp attrib_temp = temp_begin(tag_temp.arena); - - String8 attrib_kind_str = dw_string_from_attrib_kind(attrib_temp.arena, unit->version, unit->ext, attrib->attrib_kind); - String8 form_kind_str = dw_string_from_form_kind(attrib_temp.arena, unit->version, attrib->form_kind); - String8 value_str = dw_string_from_attrib_value(attrib_temp.arena, input, arch, unit, &line_vm, attrib); - - dumpf("%S attrib: { kind: %S, %.*sform_kind: %S, %.*svalue: %S, %.*s} // info_off: 0x%I64x\n", - tag_indent, - attrib_kind_str, attrib_name_max_size - attrib_kind_str.size, indent.str, - form_kind_str, form_kind_max_size - form_kind_str.size, indent.str, - value_str, value_str.size < value_max_size ? value_max_size - value_str.size: 0, indent.str, - attrib->info_off, unit_idx, tag_idx); - - temp_end(attrib_temp); - } - } - - // rjf: log tag closes - if(!tag.has_children || tag.abbrev_id == 0) - { - dumpf("%S}\n", tag_indent); - } - - // rjf: indent/unindent - if(tag.has_children) - { - tag_depth += 1; - } - if(!tag.abbrev_id) - { - tag_depth -= 1; - } - - temp_end(tag_temp); - } - temp_end(unit_temp); - dumpf("} // compile_unit[/%u]\n\n", unit_idx); - } - } + typedef struct DumpSubsetOutputNode DumpSubsetOutputNode; + struct DumpSubsetOutputNode + { + DumpSubsetOutputNode *next; + DW_SectionKind section_kind; + String8List *lane_strings; + }; + DumpSubsetOutputNode *first_output_node = 0; + DumpSubsetOutputNode *last_output_node = 0; + String8List *strings = 0; +#define dump(str) str8_list_push(arena, strings, (str)) +#define dumpf(...) str8_list_pushf(arena, strings, __VA_ARGS__) +#define DumpSubsetKind(kind) \ +if(lane_idx() == 0)\ +{\ +DumpSubsetOutputNode *n = push_array(scratch.arena, DumpSubsetOutputNode, 1);\ +SLLQueuePush(first_output_node, last_output_node, n);\ +n->section_kind = (kind);\ +n->lane_strings = push_array(scratch.arena, String8List, lane_count());\ +}\ +lane_sync_u64(&first_output_node, 0);\ +lane_sync_u64(&last_output_node, 0);\ +strings = &last_output_node->lane_strings[lane_idx()];\ +lane_sync(); if(subset_flags & (1ull<<(kind))) ProfScope((char *)dw_regular_name_from_section_kind(kind).str) +#define DumpSubset(name) DumpSubsetKind(DW_SectionKind_##name) ////////////////////////////// - //- rjf: dump .debug_abbrev + //- rjf: .debug_abbrev // - DumpSubset(DebugAbbrev) + DumpSubset(Abbrev) { - Temp scratch = scratch_begin(&arena, 1); - DW_Section abbrev = input->sec[DW_Section_Abbrev]; - S64 depth = 0; - U64 idx = 0; - for(U64 cursor = 0; cursor < abbrev.data.size; idx += 1) + if(lane_idx() == 0) { - // rjf: read id & advance - U64 id_off = cursor; - U64 id = 0; - cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &id); - if(id == 0) { continue; } - - // rjf: unpack abbrev - U64 tag = 0; - U8 has_children = 0; - cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &tag); - cursor += str8_deserial_read_struct(abbrev.data, cursor, &has_children); - - // rjf: log abbrev - Temp temp = temp_begin(scratch.arena); - dumpf("abbrev: // abbrev[%I64u]\n{\n", idx); - dumpf(" offset: 0x%I64x\n", id_off); - dumpf(" id: %I64u\n", id); - dumpf(" tag_kind: %S\n", dw_string_from_tag_kind(temp.arena, tag)); - dumpf(" has_children: %s\n", has_children ? "true" : "false"); - for(;;) + String8 data = raw->sec[DW_SectionKind_Abbrev].data; + U64 idx = 0; + dumpf("\nabbrevs:\n{\n"); + for(U64 off = 0; off < data.size; idx += 1) { - U64 attrib_off = cursor; - U64 attrib_id = 0, form_id = 0; - cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &attrib_id); - cursor += str8_deserial_read_uleb128(abbrev.data, cursor, &form_id); - if(attrib_id == 0) { break; } - String8 attrib_str = dw_string_from_attrib_kind(temp.arena, DW_Version_Last, DW_Ext_All, attrib_id); - String8 form_str = dw_string_from_form_kind(temp.arena, DW_Version_Last, form_id); - dumpf(" attrib: { offset: 0x%I64x, kind: %S, form_kind: %S }\n", attrib_off, attrib_str, form_str); + Temp scratch2 = scratch_begin(&scratch.arena, 1); + U64 start_off = off; + + // rjf: read abbrev info + DW2_AbbrevHeader abbrev_header = {0}; + DW2_AbbrevAttribList abbrev_attribs = {0}; + off += dw2_read_abbrev(scratch2.arena, data, off, &abbrev_header, &abbrev_attribs); + + // rjf: log + dumpf(" abbrev: // abbrev[%I64u], .debug_abbrev@0x%I64x\n", idx, start_off); + dumpf(" {\n"); + dumpf(" id: %I64u\n", abbrev_header.id); + dumpf(" tag_kind: %S (0x%I64x)\n", dw_string_from_tag_kind(DW_Version_Last, DW_ExtFlag_All, abbrev_header.tag_kind), abbrev_header.tag_kind); + dumpf(" has_children: %s\n", abbrev_header.has_children ? "yes" : "no"); + if(abbrev_attribs.count != 0) + { + dumpf(" attribs:\n {\n"); + for EachNode(n, DW2_AbbrevAttribNode, abbrev_attribs.first) + { + DW2_AbbrevAttrib *attrib = &n->v; + dumpf(" {%-24S %-16S%S}\n", + dw_string_from_attrib_kind(DW_Version_Last, DW_ExtFlag_All, attrib->attrib_kind), + dw_string_from_form_kind(DW_Version_Last, DW_ExtFlag_All, attrib->form_kind), + attrib->form_kind == DW_FormKind_ImplicitConst ? str8f(scratch2.arena, " (0x%I64x, %I64u)", attrib->implicit_const, attrib->implicit_const) : s("")); + } + dumpf(" }\n"); + } + dumpf(" }\n"); + + if(off == start_off) + { + break; + } } dumpf("}\n"); - temp_end(temp); - } - scratch_end(scratch); - } - - ////////////////////////////// - //- rjf: dump .debug_line - // - DumpSubset(DebugLine) - { - Rng1U64List unit_ranges_list = dw_unit_ranges_from_data(scratch.arena, input->sec[DW_Section_Line].data); - Rng1U64Array unit_ranges = rng1u64_array_from_list(scratch.arena, &unit_ranges_list); - for EachIndex(unit_idx, unit_ranges.count) - { - Temp unit_temp = temp_begin(scratch.arena); - - // rjf: unpack unit - String8 raw_lines = str8_substr(input->sec[DW_Section_Line].data, unit_ranges.v[unit_idx]); - DW_CompUnit *cu = &cu_arr[unit_idx]; - String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_StmtList); - String8 cu_dir = dw_string_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_name = dw_string_from_tag_attrib_kind(input, cu, cu->tag, DW_AttribKind_Name); - DW_LineVMHeader line_vm = {0}; - U64 line_vm_size = dw_read_line_vm_header(unit_temp.arena, raw_lines, 0, input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu, &line_vm); - if(line_vm_size == 0) - { - continue; - } - - // rjf: begin logging line table - dumpf("line_table: // line_table[%I64u]\n{\n", unit_idx); - - // rjf: log line table header - DeferLoop(dumpf(" header:\n {\n"), dumpf(" }\n\n")) - { - String8List opcode_length_strings = numeric_str8_list_from_data(unit_temp.arena, 16, str8(line_vm.opcode_lens, line_vm.num_opcode_lens), 1); - String8 opcode_lengths_string = str8_list_join(arena, &opcode_length_strings, &(StringJoin){.sep = str8_lit(", ")}); - dumpf(" version: %u\n", line_vm.version ); - dumpf(" line_table_off: 0x%I64x\n", line_vm.unit_range.min ); - dumpf(" line_table_size: %I64u\n", dim_1u64(line_vm.unit_range) ); - dumpf(" address_size: %u\n", line_vm.address_size ); - dumpf(" segment_selector_size: %u\n", line_vm.segment_selector_size); - dumpf(" header_length: %I64u\n", line_vm.header_length ); - dumpf(" min_instruction_length: %u\n", line_vm.min_inst_len ); - dumpf(" max_ops_for_instruction: %u\n", line_vm.max_ops_for_inst ); - dumpf(" default_is_stmt: %u\n", line_vm.default_is_stmt ); - dumpf(" line_base: %d\n", line_vm.line_base ); - dumpf(" line_range: %u\n", line_vm.line_range ); - dumpf(" opcode_base: %u\n", line_vm.opcode_base ); - dumpf(" opcode_lengths: %S\n", opcode_lengths_string ); - } - - // rjf: log directory table - DeferLoop(dumpf(" directory_table:\n {\n"), dumpf(" }\n\n")) - { - dumpf(" // %-4s %-8s\n", "no.", "name"); - for EachIndex(dir_idx, line_vm.dir_table.count) - { - dumpf(" { %-4llu %S }\n", dir_idx, line_vm.dir_table.v[dir_idx]); - } - } - - // rjf: log file table - DeferLoop(dumpf(" file_table:\n {\n"), dumpf(" }\n\n")) - { - dumpf(" // %-4s %-8s %-8s %-33s %-8s %-8s\n", "no.", "dir_idx", "time", "md5", "size", "name"); - for EachIndex(file_idx, line_vm.file_table.count) - { - DW_LineFile *file = &line_vm.file_table.v[file_idx]; - dumpf(" { %-4llu %-8llu %-8llu %016llx-%016llx %-8llu %S }\n", - file_idx, - file->dir_idx, - file->modify_time, - file->md5_digest.u64[1], - file->md5_digest.u64[0], - file->file_size, - file->file_name); - } - } - - // rjf: log opcodes - DeferLoop(dumpf(" opcodes:\n {\n"), dumpf(" }\n\n")) - { - String8 opcodes = str8_skip(raw_lines, line_vm_size); - B32 end_of_seq = 0; - DW_LineVMState vm_state = {0}; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - for(U64 cursor = 0; cursor < opcodes.size;) - { - Temp opcode_temp = temp_begin(unit_temp.arena); - String8List opcode_fmt = {0}; - - // opcode offset - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "[%08llx]", cursor); - - // parse opcode - U8 opcode = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &opcode); - - // push opcode id - String8 opcode_str = dw_string_from_std_opcode(opcode_temp.arena, opcode); - str8_list_push(arena, &opcode_fmt, opcode_str); - - // format operands - switch(opcode) - { - default: - { - if(opcode >= line_vm.opcode_base) - { - U32 adjusted_opcode = 0; - U32 op_advance = 0; - S32 line_advance = 0; - U64 addr_advance = 0; - if(line_vm.line_range > 0 && line_vm.max_ops_for_inst > 0) - { - adjusted_opcode = (U32)(opcode - line_vm.opcode_base); - op_advance = adjusted_opcode / line_vm.line_range; - line_advance = (S32)line_vm.line_base + ((S32)adjusted_opcode) % (S32)line_vm.line_range; - addr_advance = line_vm.min_inst_len * ((vm_state.op_index+op_advance) / line_vm.max_ops_for_inst); - } - vm_state.address += addr_advance; - vm_state.op_index = (vm_state.op_index + op_advance) % line_vm.max_ops_for_inst; - vm_state.line = (U32)((S32)vm_state.line + line_advance); - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - vm_state.discriminator = 0; - end_of_seq = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance line by %d, advance address by %lld", line_advance, addr_advance); - } - else - { - if(opcode > 0 && opcode <= line_vm.num_opcode_lens) - { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "skip operands:"); - U64 num_operands = line_vm.opcode_lens[opcode - 1]; - for(U8 i = 0; i < num_operands; i += 1) - { - U64 operand = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &operand); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, " %llx", operand); - } - } - } - }break; - case DW_StdOpcode_Copy: - { - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "Line = %u, Column = %u, Address = %#llx", vm_state.line, vm_state.column, vm_state.address); - end_of_seq = 0; - vm_state.discriminator = 0; - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - }break; - case DW_StdOpcode_AdvancePc: - { - U64 advance = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &advance); - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %#llx ; current address %#llx", advance, vm_state.address); - }break; - case DW_StdOpcode_AdvanceLine: - { - S64 advance = 0; - cursor += str8_deserial_read_sleb128(opcodes, cursor, &advance); - vm_state.line += advance; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "advance %lld ; current line %u", advance, vm_state.line); - }break; - case DW_StdOpcode_SetFile: - { - U64 file_idx = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_idx); - vm_state.file_index = file_idx; - String8 path = dw_path_from_file_idx(opcode_temp.arena, &line_vm, file_idx); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu \"%S\"", file_idx, path); - }break; - case DW_StdOpcode_SetColumn: - { - U64 column = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &column); - vm_state.column = column; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", column); - }break; - case DW_StdOpcode_NegateStmt: - { - vm_state.is_stmt = !vm_state.is_stmt; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "is_stmt = %u", vm_state.is_stmt); - }break; - case DW_StdOpcode_SetBasicBlock: - { - vm_state.basic_block = 1; - }break; - case DW_StdOpcode_ConstAddPc: - { - U64 advance = (0xffu - line_vm.opcode_base)/line_vm.line_range; - dw_line_vm_advance(&vm_state, advance, line_vm.min_inst_len, line_vm.max_ops_for_inst); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%lld ; address %#llx", advance, vm_state.address); - }break; - case DW_StdOpcode_FixedAdvancePc: - { - U64 operand = 0; - cursor += str8_deserial_read_struct(opcodes, cursor, &operand); - vm_state.address += operand; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", operand); - }break; - case DW_StdOpcode_SetPrologueEnd: - { - vm_state.prologue_end = 1; - }break; - case DW_StdOpcode_SetEpilogueBegin: - { - vm_state.epilogue_begin = 1; - }break; - case DW_StdOpcode_SetIsa: - { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.isa = v; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%llu", v); - }break; - case DW_StdOpcode_ExtendedOpcode: - { - U64 length = 0; - U8 ext_opcode = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &length); - U64 opcode_end = cursor + length; - cursor += str8_deserial_read_struct(opcodes, cursor, &ext_opcode); - String8 ext_opcode_str = dw_string_from_ext_opcode(opcode_temp.arena, ext_opcode); - //str8_list_pushf(opcode_temp.arena, &opcode_fmt, "length: %u", length); - str8_list_push(opcode_temp.arena, &opcode_fmt, ext_opcode_str); - switch(ext_opcode) - { - case DW_ExtOpcode_EndSequence: - { - vm_state.end_sequence = 1; - dw_line_vm_reset(&vm_state, line_vm.default_is_stmt); - end_of_seq = 1; - }break; - case DW_ExtOpcode_SetAddress: - { - U64 address = 0; - cursor += str8_deserial_read(opcodes, cursor, &address, line_vm.address_size, line_vm.address_size); - vm_state.address = address; - vm_state.op_index = 0; - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%#llx", address); - }break; - case DW_ExtOpcode_DefineFile: - { - String8 file_name = {0}; - cursor += str8_deserial_read_cstr(opcodes, cursor, &file_name); - U64 dir_idx = 0, modify_time = 0, file_size = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &dir_idx); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &modify_time); - cursor += str8_deserial_read_uleb128(opcodes, cursor, &file_size); - str8_list_pushf(opcode_temp.arena, &opcode_fmt, "%S Dir: %llu, Time: %llu, Size: %llu", file_name, dir_idx, modify_time, file_size); - }break; - case DW_ExtOpcode_SetDiscriminator: - { - U64 v = 0; - cursor += str8_deserial_read_uleb128(opcodes, cursor, &v); - vm_state.discriminator = v; - str8_list_pushf(arena, &opcode_fmt, "%llu", v); - }break; - } - cursor = opcode_end; - }break; - } - String8 string = str8_list_join(opcode_temp.arena, &opcode_fmt, &(StringJoin){.sep=str8_lit(" ")}); - dumpf("%S\n", string); - temp_end(opcode_temp); - } - } - temp_end(unit_temp); } } ////////////////////////////// - //- rjf: dump .debug_str + //- rjf: .debug_info // - DumpSubset(DebugStr) DeferLoop(dumpf("strings:\n{\n"), dumpf("}\n\n")) + DumpSubset(Info) { - String8 data = input->sec[DW_Section_Str].data; - for(U64 cursor = 0, read_size = 0; cursor < data.size; cursor += read_size) + //- rjf: gather unit ranges from .debug_info + Rng1U64Array *unit_info_ranges = 0; + if(lane_idx() == 0) { - String8 string = {0}; - read_size = str8_deserial_read_cstr(data, cursor, &string); - dumpf(" { 0x%08I64x %llu \"%S\" }\n", cursor, string.size, string); - } - } - - ////////////////////////////// - //~ dump .debug_frame - DumpSubset(DebugFrame) - { - HashTable *cie_ht = hash_table_init(scratch.arena, 0x2000); - String8 debug_frame = input->sec[DW_Section_Frame].data; - U64 addr_size = byte_size_from_arch(arch); - - // make offset -> CIE hash table - for (U64 cursor = 0, desc_size; cursor < debug_frame.size; cursor += desc_size) { - DW_DescriptorEntry desc = {0}; - desc_size = dw_parse_descriptor_entry_header(debug_frame, cursor, &desc); - if (desc.type == DW_DescriptorEntryType_CIE) { - String8 raw_cie = str8_substr(debug_frame, desc.entry_range); - U64 restore_pos = arena_pos(scratch.arena); - DW_CIE *cie = push_array(scratch.arena, DW_CIE, 1); - if (dw_parse_cie(raw_cie, desc.format, arch, cie)) { - hash_table_push_u64_raw(scratch.arena, cie_ht, cursor, cie); - } else { - arena_pop_to(scratch.arena, restore_pos); - } - } + unit_info_ranges = push_array(scratch.arena, Rng1U64Array, 1); + *unit_info_ranges = dw2_unit_ranges_from_data(scratch.arena, raw->sec[DW_SectionKind_Info].data); } + lane_sync_u64(&unit_info_ranges, 0); + U64 unit_count = unit_info_ranges->count; - for (U64 cursor = 0, desc_size; cursor < debug_frame.size; cursor += desc_size) { - DW_DescriptorEntry desc = {0}; - desc_size = dw_parse_descriptor_entry_header(debug_frame, cursor, &desc); - String8 raw_desc = str8_substr(debug_frame, desc.entry_range); - switch (desc.type) { - case DW_DescriptorEntryType_Null: {} break; - case DW_DescriptorEntryType_CIE: { - DW_CIE cie = {0}; - if (dw_parse_cie(raw_desc, desc.format, arch, &cie)) { - String8List init_insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, DW_Version_5, DW_Ext_All, cie.format, 0, &cie, dw_decode_ptr_debug_frame, &cie, cie.insts); - - dumpf("CIE: // entry range: %r\n", desc.entry_range); - dumpf("{\n"); - dumpf(" Format: %S\n", dw_string_from_format(desc.format)); - dumpf(" Version: %u\n", cie.version); - dumpf(" Aug string: %S\n", cie.aug_string.size ? cie.aug_string : str8_lit("None")); - dumpf(" Code align: %I64u\n", cie.code_align_factor); - dumpf(" Data align: %I64d\n", cie.data_align_factor); - dumpf(" Return addr reg: %u\n", cie.ret_addr_reg); - if (cie.version > DW_Version_3) { - dumpf(" Address size: %u\n", cie.address_size); - dumpf(" Segment selector size: %u\n", cie.segment_selector_size); - } - dumpf(" Initial Insturction:\n"); - dumpf(" {\n"); - for EachNode(n, String8Node, init_insts_str_list.first) { dumpf(" %S\n", n->string); } - dumpf(" }\n"); - dumpf("}\n"); - } else { - dumpf("ERROR: unable to parse CIE @ %I64x\n", desc.entry_range.min); - } - } break; - case DW_DescriptorEntryType_FDE: { - DW_FDE fde = {0}; - if (dw_parse_fde(raw_desc, desc.format, dwarf_dump_cie_from_offset, cie_ht, &fde)) { - DW_Version version = DW_Version_5; - DW_Ext ext = DW_Ext_All; - - DW_CIE *cie = hash_table_search_u64_raw(cie_ht, fde.cie_pointer); - String8List insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, version, ext, fde.format, fde.pc_range.min, cie, dw_decode_ptr_debug_frame, cie, fde.insts); - - dumpf("FDE: // entry range: %r\n", desc.entry_range, dw_string_from_format(fde.format), fde.cie_pointer, fde.pc_range); - dumpf("{\n"); - { - dumpf(" Format: %S\n", dw_string_from_format(fde.format)); - dumpf(" CIE pointer: 0x%I64x\n", fde.cie_pointer); - dumpf(" PC range: %r\n", fde.pc_range); - dumpf(" Instructions:\n"); - dumpf(" {\n"); - for EachNode(n, String8Node, insts_str_list.first) { dumpf(" %S\n", n->string); } - dumpf(" }\n"); - } - - dumpf(" Unwind:\n"); - dumpf(" {\n"); - DW_CFI_Unwind *cfi_unwind = dw_cfi_unwind_init(scratch.arena, arch, cie, &fde, dw_decode_ptr_debug_frame, cie); - do { - String8 cfa_str = str8_lit("???"); - DW_CFA cfa = cfi_unwind->row->cfa; - switch (cfa.rule) { - case DW_CFA_Rule_Null: {} break; - case DW_CFA_Rule_RegOff: { cfa_str = dw_string_from_reg_off(scratch.arena, arch, cfa.reg, cfa.off); } break; - case DW_CFA_Rule_Expression: { cfa_str = dw_string_from_expression(scratch.arena, cfa.expr, max_U64, cie->address_size, arch, version, ext, fde.format); } break; - default: { InvalidPath; } break; - } - - String8 cfi_regs_str = {0}; - { - String8List cfi_regs_list = {0}; - for EachIndex(reg_idx, cfi_unwind->reg_count) { - DW_CFI_Register *cfi_reg = &cfi_unwind->row->regs[reg_idx]; - String8 rule_str = str8_lit("???"); - switch (cfi_reg->rule) { - case DW_CFI_RegisterRule_Undefined: { - rule_str = str8f(scratch.arena, "Undefined(%S)", dw_string_from_reg(scratch.arena, arch, cfi_reg->n)); - } break; - case DW_CFI_RegisterRule_SameValue: { - rule_str = str8_zero(); - } break; - case DW_CFI_RegisterRule_Offset: { - rule_str = str8f(scratch.arena, "[CFA%+I64d]", cfi_reg->n); - } break; - case DW_CFI_RegisterRule_ValOffset: { - rule_str = str8f(scratch.arena, "Val(CFA%+I64d)", cfi_reg->n); - } break; - case DW_CFI_RegisterRule_Expression: { - rule_str = str8f(scratch.arena, "Expression(%S)", dw_string_from_expression(scratch.arena, cfi_reg->expr, max_U64, cie->address_size, arch, version, ext, fde.format)); - } break; - case DW_CFI_RegisterRule_ValExpression: { - rule_str = str8f(scratch.arena, "ValExpression(%S)", dw_string_from_expression(scratch.arena, cfi_reg->expr, max_U64, cie->address_size, arch, version, ext, fde.format)); - } break; - case DW_CFI_RegisterRule_Architectural: { - rule_str = str8_lit("???"); - } break; - default: { InvalidPath; } break; - } - - if (rule_str.size) { - str8_list_pushf(scratch.arena, &cfi_regs_list, "%S: %S", dw_string_from_reg(scratch.arena, arch, reg_idx), rule_str); - } - } - - cfi_regs_str = str8_list_join(scratch.arena, &cfi_regs_list, &(StringJoin){.sep=str8_lit(", ")}); - } - - dumpf(" { PC: 0x%I64x, CFA: %-7S, Rules: { %S }\n", cfi_unwind->pc, cfa_str, cfi_regs_str); - } while (dw_cfi_next_row(scratch.arena, cfi_unwind)); - dumpf(" }\n"); - - dumpf("}\n"); - } else { - dumpf("ERROR: unable to parse FDE @ %I64x\n", desc.entry_range.min); - } - } break; + //- rjf: parse all .debug_info unit headers + DW2_UnitHeader *unit_headers = 0; + Rng1U64 *unit_info_tag_ranges = 0; + { + // rjf: set up + if(lane_idx() == 0) + { + unit_headers = push_array(scratch.arena, DW2_UnitHeader, unit_count); + unit_info_tag_ranges = push_array(scratch.arena, Rng1U64, unit_count); } + lane_sync_u64(&unit_headers, 0); + lane_sync_u64(&unit_info_tag_ranges, 0); + + // rjf: parse all unit headers + String8 data = raw->sec[DW_SectionKind_Info].data; + Rng1U64 range = lane_range(unit_count); + for EachInRange(idx, range) + { + Rng1U64 unit_info_range = unit_info_ranges->v[idx]; + U64 bytes_read = dw2_read_unit_header(str8_substr(data, unit_info_range), 0, &unit_headers[idx]); + unit_info_tag_ranges[idx] = r1u64(unit_info_range.min + bytes_read, unit_info_range.max); + } + } + lane_sync(); + Rng1U64Array unit_info_tag_ranges_array = {unit_info_tag_ranges, unit_count}; + + //- rjf: build all abbreviation maps, build (unit -> abbrev map) + DW2_UnitAbbrevMapMap unit_abbrev_map_map = dw2_unit_abbrev_map_map_from_data(scratch.arena, raw->sec[DW_SectionKind_Abbrev].data, unit_headers, unit_count); + + //- rjf: parse all unit offsets tables + DW2_OffsetTableSet *offset_tables = 0; + if(lane_idx() == 0) + { + offset_tables = push_array(scratch.arena, DW2_OffsetTableSet, 1); + offset_tables[0] = dw2_offset_table_set_from_raw(scratch.arena, raw); + } + lane_sync_u64(&offset_tables, 0); + + //- rjf: build per-unit parsing contexts + DW2_ParseCtx *unit_parse_ctxs = 0; + { + if(lane_idx() == 0) + { + unit_parse_ctxs = push_array(scratch.arena, DW2_ParseCtx, unit_count); + } + lane_sync_u64(&unit_parse_ctxs, 0); + Rng1U64 range = lane_range(unit_count); + for EachInRange(unit_idx, range) + { + DW2_UnitHeader *hdr = &unit_headers[unit_idx]; + DW2_ParseCtx *ctx = &unit_parse_ctxs[unit_idx]; + + // rjf: equip initial bootstrapping info + dw2_parse_ctx_equip_unit_header(ctx, hdr, unit_info_ranges->v[unit_idx].min); + dw2_parse_ctx_equip_unit_abbrev_map(ctx, &unit_abbrev_map_map, unit_idx); + + // rjf: do bootstrapping parse of root tag + DW2_Tag root_tag_bootstrap = {0}; + dw2_read_tag(scratch.arena, raw, ctx, raw->sec[DW_SectionKind_Info].data, unit_info_tag_ranges[unit_idx].min, &root_tag_bootstrap); + + // rjf: equip info extracted from bootstrapping parse + dw2_parse_ctx_equip_unit_root_tag(ctx, &root_tag_bootstrap, offset_tables); + + // rjf: do non-bootstrapping parse + DW2_Tag root_tag = {0}; + dw2_read_tag(scratch.arena, raw, ctx, raw->sec[DW_SectionKind_Info].data, unit_info_tag_ranges[unit_idx].min, &root_tag); + + // rjf: equip info extracted from non-bootstrapping parse + dw2_parse_ctx_equip_unit_root_tag(ctx, &root_tag, offset_tables); + } + } + lane_sync(); + + //- rjf: dump all unit tag trees + String8List *unit_dumps = 0; + if(lane_idx() == 0) + { + unit_dumps = push_array(scratch.arena, String8List, unit_count); + } + lane_sync_u64(&unit_dumps, 0); + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + String8List *strings_restore = strings; + for(;;) + { + //- rjf: take unit + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr)-1; + if(unit_idx >= unit_count) + { + break; + } + + //- rjf: unpack unit + strings = &unit_dumps[unit_idx]; + DW2_ParseCtx *ctx = &unit_parse_ctxs[unit_idx]; + + //- rjf: dump + dumpf(" unit: // unit[%I64u], .debug_info@0x%I64x\n", unit_idx, ctx->unit_base_info_off); + dumpf(" {\n"); + dumpf(" version: %u\n", ctx->version); + dumpf(" format: %S\n", dw_string_from_format(ctx->format)); + dumpf(" abbrev_off: 0x%I64x\n", unit_headers[unit_idx].abbrev_off); + dumpf(" addr_size: %I64u\n", ctx->addr_size); + dumpf(" kind: %S\n", dw_string_from_comp_unit_kind(unit_headers[unit_idx].kind)); + dumpf(" dwo_id: 0x%I64x\n", unit_headers[unit_idx].dwo_id); + dumpf(" tags:\n {\n"); + { + U64 depth = 0; + for(U64 off = unit_info_tag_ranges[unit_idx].min; off < unit_info_tag_ranges[unit_idx].max;) + { + U64 start_off = off; + Temp tag_scratch = scratch_begin(&scratch.arena, 1); + + // rjf: parse next tag + DW2_Tag tag = {0}; + off += dw2_read_tag(tag_scratch.arena, raw, ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + + // rjf: non-zero tag -> dump + if(tag.kind != DW_TagKind_Null) + { + dumpf(" %.*s%S: // .debug_info@0x%I64x\n", depth, indent.str, dw_string_from_tag_kind(ctx->version, ctx->exts, tag.kind), start_off); + dumpf(" %.*s{\n", depth, indent.str); + for EachNode(n, DW2_AttribNode, tag.attribs.first) + { + DW2_Attrib *attrib = &n->v; + String8 kind_string = dw_string_from_attrib_kind(ctx->version, ctx->exts, attrib->attrib_kind); + String8 form_kind_string = dw_string_from_form_kind(ctx->version, ctx->exts, attrib->val.kind); + String8 value_string = {0}; + DW_AttribClass value_class = dw_attrib_class_from_form_kind(ctx->version, ctx->exts, attrib->val.kind); + switch(value_class) + { + default: + { + value_string = str8f(tag_scratch.arena, "0x%I64x", attrib->val.u128.u64[0]); + }break; + case DW_AttribClass_Address: + { + value_string = str8f(tag_scratch.arena, "0x%I64x", attrib->val.addr); + }break; + case DW_AttribClass_String: + { + value_string = str8f(tag_scratch.arena, "\"%S\"", attrib->val.string); + }break; + case DW_AttribClass_Flag: + { + value_string = attrib->val.u128.u64[0] ? s("true") : s("false"); + }break; + case DW_AttribClass_Block: + { + String8 block = attrib->val.string; + String8List block_strs = numeric_str8_list_from_data(tag_scratch.arena, 16, block, 1); + value_string = str8_list_join(tag_scratch.arena, &block_strs, &(StringJoin){.pre = s("{ "), .sep = s(", "), .post = s(" }")}); + }break; + case DW_AttribClass_ExprLoc: + { + String8 expr = attrib->val.string; + String8List expr_strs = dw_dump_list_from_expr(tag_scratch.arena, expr, arch, ctx); + value_string = str8_list_join(tag_scratch.arena, &expr_strs, &(StringJoin){.pre = s("{ "), .sep = s(", "), .post = s(" }")}); + }break; + } + dumpf(" %.*s %S: %S // %S\n", depth, indent.str, kind_string, value_string, form_kind_string); + } + } + + // rjf: push/pop + if(tag.has_children) + { + depth += 1; + } + else if(tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + + // rjf: if tag does not have children -> end info + if(!tag.has_children) + { + dumpf(" %.*s}\n", depth, indent.str); + } + + scratch_end(tag_scratch); + if(off == start_off) + { + break; + } + } + } + dumpf(" }\n"); + dumpf(" }\n"); + } + strings = strings_restore; + + //- rjf: join unit dumps in order + if(lane_idx() == 0) + { + dumpf("\nunits:\n{\n"); + for EachIndex(unit_idx, unit_count) + { + str8_list_concat_in_place(strings, &unit_dumps[unit_idx]); + } + dumpf("}\n"); + } + lane_sync(); + } + + ////////////////////////////// + //- rjf: .debug_line + // + DumpSubset(Line) + { + // TODO(rjf) + } + + ////////////////////////////// + //- rjf: .debug_str + // + DumpSubset(Str) + { + if(lane_idx() == 0) + { + dumpf("\nstrings:\n{\n"); + String8 data = raw->sec[DW_SectionKind_Str].data; + U64 idx = 0; + for(U64 off = 0; off < data.size; idx += 1) + { + U64 start_off = off; + String8 string = {0}; + off += str8_deserial_read_cstr(data, off, &string); + dumpf(" {\"%S\"} // string[%I64u], .debug_str@0x%I64x\n", string, idx, start_off); + if(off == start_off) + { + break; + } + } + dumpf("}\n"); } } ////////////////////////////// - //- rjf: dump .debug_loc + //- rjf: .debug_frame // - DumpSubset(DebugLoc) +#if 0 + DumpSubset(Frame) { - // dw_print_debug_loc(arena, out, indent, input, arch, image_type, relaxed); + // TODO(rjf) } +#endif ////////////////////////////// - //- rjf: dump .debug_ranges + //- rjf: .debug_loc // - DumpSubset(DebugRanges) +#if 0 + DumpSubset(Loc) { - // dw_print_debug_ranges(arena, out, indent, input, arch, image_type, relaxed); + // TODO(rjf) } +#endif ////////////////////////////// - //- rjf: dump .debug_aranges + //- rjf: join results // - DumpSubset(DebugARanges) + String8List *result_strings_ptr = push_array(scratch.arena, String8List, 1); + lane_sync(); + if(lane_idx() == 0) { - // dw_print_debug_aranges(arena, out, indent, input); + for EachNode(n, DumpSubsetOutputNode, first_output_node) + { + String8List subset_strings = {0}; + for EachIndex(idx, lane_count()) + { + str8_list_concat_in_place(&subset_strings, &n->lane_strings[idx]); + } + if(subset_strings.total_size != 0) + { + str8_list_pushf(arena, result_strings_ptr, "////////////////////////////////\n//~ %S\n", dw_regular_name_from_section_kind(n->section_kind)); + str8_list_concat_in_place(result_strings_ptr, &subset_strings); + str8_list_pushf(arena, result_strings_ptr, "\n"); + } + } } + lane_sync(); + lane_sync_u64(&result_strings_ptr, 0); + String8List result_strings = *result_strings_ptr; + lane_sync(); - ////////////////////////////// - //- rjf: dump .debug_addr - // - DumpSubset(DebugAddr) - { - // dw_print_debug_addr(arena, out, indent, input); - } - - ////////////////////////////// - //- rjf: dump .debug_loclists - // - DumpSubset(DebugLocLists) - { - // dw_print_debug_loclists(arena, out, indent, input, segment_vranges, arch); - } - - ////////////////////////////// - //- rjf: dump .debug_rnglists - // - DumpSubset(DebugRngLists) - { - // dw_print_debug_rnglists(arena, out, indent, input, segment_vranges); - } - - ////////////////////////////// - //- rjf: dump .debug_pubnames - // - DumpSubset(DebugPubNames) - { - // dw_print_debug_pubnames(arena, out, indent, input); - } - - ////////////////////////////// - //- rjf: dump .debug_pubtypes - // - DumpSubset(DebugPubTypes) - { - // dw_print_debug_pubtypes(arena, out, indent, input); - } - - ////////////////////////////// - //- rjf: dump .debug_linestr - // - DumpSubset(DebugLineStr) - { - // dw_print_debug_line_str(arena, out, indent, input); - } - - ////////////////////////////// - //- rjf: dump .debug_stroffs - // - DumpSubset(DebugStrOffsets) - { - // dw_print_debug_str_offsets(arena, out, indent, input); - } - - scratch_end(scratch); +#undef DumpSubsetKind #undef DumpSubset -#undef dumpf #undef dump - return strings; +#undef dumpf + scratch_end(scratch); + ProfEnd(); + return result_strings; } diff --git a/src/dwarf/dwarf_dump.h b/src/dwarf/dwarf_dump.h index 0882061b..eddc47b2 100644 --- a/src/dwarf/dwarf_dump.h +++ b/src/dwarf/dwarf_dump.h @@ -5,83 +5,13 @@ #define DWARF_DUMP_H //////////////////////////////// -//~ rjf: Dump Subset Types +//~ rjf: Helpers -#define DW_DumpSubset_XList \ -X(DebugInfo, debug_info, "DEBUG INFO") \ -X(DebugAbbrev, debug_abbrev, "DEBUG ABBREV") \ -X(DebugLine, debug_line, "DEBUG LINE") \ -X(DebugStr, debug_str, "DEBUG STR") \ -X(DebugLoc, debug_loc, "DEBUG LOC") \ -X(DebugRanges, debug_ranges, "DEBUG RANGES") \ -X(DebugARanges, debug_aranges, "DEBUG ARANGES") \ -X(DebugAddr, debug_addr, "DEBUG ADDR") \ -X(DebugLocLists, debug_loclists, "DEBUG LOCLISTS") \ -X(DebugRngLists, debug_rnglists, "DEBUG RNGLISTS") \ -X(DebugPubNames, debug_pubnames, "DEBUG PUBNAMES") \ -X(DebugPubTypes, debug_pubtypes, "DEBUG PUBTYPES") \ -X(DebugLineStr, debug_linestr, "DEBUG LINESTR") \ -X(DebugStrOffsets, debug_stroff, "DEBUG STROFF") \ -X(DebugFrame, debug_frame, "DEBUG FRAME") \ - -typedef enum DW_DumpSubset -{ -#define X(name, name_lower, title) DW_DumpSubset_##name, - DW_DumpSubset_XList -#undef X -} -DW_DumpSubset; - -typedef U32 DW_DumpSubsetFlags; -enum -{ -#define X(name, name_lower, title) DW_DumpSubsetFlag_##name = (1<off < expr.size && !need_a_break && !done;) + { + U64 start_off = state->off; + U64 off = state->off; - // step - U64 step_cursor = 1; - switch (op) { - - //// literal encodings //// - - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + //- rjf: too many ops? -> error + if(state->op_idx >= op_idx_cap) + { + result.status = DW_EvalStatus_ExecOpLimitReached; + break; + } + + //- rjf: read next opcode + DW_ExprOp opcode = 0; + off += str8_deserial_read_struct(expr, off, &opcode); + + //- rjf: unpack opcode + U8 push_count = 0; + U8 pop_count = 0; + U8 operand_count = 0; + DW_ExprOperandKind operand_kinds[2] = {DW_ExprOperandKind_Null}; + { + DW_ExprOpInfo *op_info = dw_info_from_expr_op(DW_Version_5, DW_ExtFlag_All, opcode); + push_count = op_info->push_count; + pop_count = op_info->pop_count; + operand_count = op_info->operand_count; + MemoryCopy(operand_kinds, op_info->operand_kinds, sizeof(operand_kinds)); + } + + //- rjf: read operands + DW_EvalVal operands[2] = {0}; + for(U8 operand_idx = 0; operand_idx < operand_count; operand_idx += 1) + { + U64 fixed_bytes_to_read = 0; + switch(operand_kinds[operand_idx]) { - U64 x = op - DW_ExprOp_Lit0; - result.kind = DW_SimpleLocKind_Address; - result.addr = x; - } break; - - case DW_ExprOp_Const1U:size_param = 1; goto const_n; - case DW_ExprOp_Const2U:size_param = 2; goto const_n; - case DW_ExprOp_Const4U:size_param = 4; goto const_n; - case DW_ExprOp_Const8U:size_param = 8; goto const_n; - case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; - case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; - case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; - case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; - const_n: + default:{}break; + case DW_ExprOperandKind_U8: {fixed_bytes_to_read = 1;}goto fixed_read; + case DW_ExprOperandKind_U16: {fixed_bytes_to_read = 2;}goto fixed_read; + case DW_ExprOperandKind_U32: {fixed_bytes_to_read = 4;}goto fixed_read; + case DW_ExprOperandKind_U64: {fixed_bytes_to_read = 8;}goto fixed_read; + case DW_ExprOperandKind_S8: {fixed_bytes_to_read = 1;}goto fixed_read; + case DW_ExprOperandKind_S16: {fixed_bytes_to_read = 2;}goto fixed_read; + case DW_ExprOperandKind_S32: {fixed_bytes_to_read = 4;}goto fixed_read; + case DW_ExprOperandKind_S64: {fixed_bytes_to_read = 8;}goto fixed_read; + case DW_ExprOperandKind_Addr: {fixed_bytes_to_read = byte_size_from_arch(arch);}goto fixed_read; + case DW_ExprOperandKind_DwarfUInt:{fixed_bytes_to_read = dw_addr_size_from_format(fmt);}goto fixed_read; + fixed_read:; + { + off += str8_deserial_read(expr, off, &operands[operand_idx].u512.u64[0], fixed_bytes_to_read, fixed_bytes_to_read); + }break; + case DW_ExprOperandKind_ULEB128: + { + off += str8_deserial_read_uleb128(expr, off, &operands[operand_idx].u512.u64[0]); + }break; + case DW_ExprOperandKind_SLEB128: + { + off += str8_deserial_read_sleb128(expr, off, &operands[operand_idx].s64); + }break; + case DW_ExprOperandKind_Block: + { + U8 block_size = 0; + off += str8_deserial_read_struct(expr, off, &block_size); + operands[operand_idx].data = str8_prefix(str8_skip(expr, off), block_size); + }break; + } + } + + //- rjf: do pops + DW_EvalVal popped_vals[3] = {0}; + { + pop_count = Min(pop_count, ArrayCount(popped_vals)); + for(U8 pop_idx = 0; pop_idx < pop_count; pop_idx += 1) { - U64 x = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, size_param, &x); - - if (is_signed) { - x = extend_sign64(x, size_param); + if(state->top_val != 0) + { + DW_EvalValNode *popped = state->top_val; + SLLStackPop(state->top_val); + popped_vals[pop_idx] = popped->v; + SLLStackPush(state->free_val, popped); } - - result.kind = DW_SimpleLocKind_Address; - result.addr = x; - } break; - - case DW_ExprOp_Addr: - { - U64 offset = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 8, &offset); - U64 x = text_section_base + offset; - result.kind = DW_SimpleLocKind_Address; - result.addr = x; - } break; - - case DW_ExprOp_ConstU: - { - U64 x = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &x); - result.kind = DW_SimpleLocKind_Address; - result.addr = x; - } break; - - case DW_ExprOp_ConstS: - { - U64 x = 0; - step_cursor += dw_based_range_read_sleb128(base, range, step_cursor, (S64*)&x); - result.kind = DW_SimpleLocKind_Address; - result.addr = x; - } break; - - - //// register location descriptions //// - - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: - { - U64 reg_idx = op - DW_ExprOp_Reg0; - result.kind = DW_SimpleLocKind_Register; - result.reg_idx = reg_idx; - } break; - - case DW_ExprOp_RegX: - { - U64 reg_idx = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, ®_idx); - result.kind = DW_SimpleLocKind_Register; - result.reg_idx = reg_idx; - } break; - - - //// implicit location descriptions //// - - case DW_ExprOp_ImplicitValue: - { - U64 size = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &size); - if (step_cursor + size <= range.max) { - result.kind = DW_SimpleLocKind_ValueLong; - result.val_long.str = (U8*)base + range.min + step_cursor; - result.val_long.size = size; - } - step_cursor += size; - } break; - - case DW_ExprOp_StackValue: - { - // this op pops from the value stack, so if it comes first the dwarf expression is bad. - result.kind = DW_SimpleLocKind_Fail; - result.fail_kind = DW_LocFailKind_BadData; - } break; - - - //// composite location descriptions //// - - // if the first and only op is a piece, the expression is empty - - case DW_ExprOp_Piece: - { - U64 size = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &size); - result.kind = DW_SimpleLocKind_Empty; - } break; - - case DW_ExprOp_BitPiece: - { - U64 bit_size = 0, bit_off = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &bit_size); - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &bit_off); - result.kind = DW_SimpleLocKind_Empty; - } break; - - - //// final fallback //// - + } + } + + //- rjf: apply opcode + DW_EvalVal push_vals[3] = {0}; + U64 pick_target_idx = 0; + U64 deref_read_size = 0; + DW_RegCode reg_code_dw = 0; + switch(opcode) + { + //- rjf: unsuported ops + case DW_ExprOp_Call2: // DWARF function calls + case DW_ExprOp_Call4: // DWARF function calls + case DW_ExprOp_CallRef: // DWARF function calls + case DW_ExprOp_Addrx: // address in .debug_addr; not currently present for us, need to find how to preserve if we care + case DW_ExprOp_Constx: // address in .debug_addr; not currently present for us, need to find how to preserve if we care + case DW_ExprOp_EntryValue: // encodes a sub-expression as a data block - need to recursively evaluate, lol + case DW_ExprOp_ConstType: // pushes a constant - but refers into DWARF debug info to specify the type. we don't have that, need to figure out how to preserve mapping from DW type ID -> RDI type, if we care + case DW_ExprOp_DerefType: // same as above - refers to DWARF debug info + case DW_ExprOp_RegvalType: // same as above - refers to DWARF debug info + case DW_ExprOp_Piece: // pieces - used to stitch multiple sub-values together + case DW_ExprOp_BitPiece: // pieces - used to stitch multiple sub-values together + case DW_ExprOp_XDeref: // two entries popped from stack - second one is 'address space identifier'. not possible in this layer right now + case DW_ExprOp_XDerefSize: // does multiple address spaces + case DW_ExprOp_XDerefType: // refers to DWARF debug info, *and* does multiple address spaces + case DW_ExprOp_PushObjectAddress: // pushes "the address of the object currently being evaluated" ??? + case DW_ExprOp_ImplicitPointer: // refers to DWARF debug info default: { - result.kind = DW_SimpleLocKind_Fail; - result.fail_kind = DW_LocFailKind_TooComplicated; - } break; - } - - // check this was the whole expression - if (range.min + step_cursor < range.max) { - result.kind = DW_SimpleLocKind_Fail; - result.fail_kind = DW_LocFailKind_TooComplicated; - } - } - - return result; -} - -internal DW_ExprAnalysis -dw_expr__analyze_details(void *in_base, Rng1U64 in_range, DW_ExprMachineCallConfig *call_config) -{ - Temp scratch = scratch_begin(0, 0); - - DW_ExprAnalysis result = {0}; - - // are we resolving calls? - B32 has_call_func = (call_config != 0 && call_config->func != 0); - - // tasks - DW_ExprAnalysisTask *unfinished_tasks = 0; - DW_ExprAnalysisTask *finished_tasks = 0; - - // convert range input to string - String8 in_data = str8((U8*)in_base + in_range.min, in_range.max - in_range.min); - - // put input task onto the list - { - DW_ExprAnalysisTask *new_task = push_array(scratch.arena, DW_ExprAnalysisTask, 1); - new_task->p = max_U64; - new_task->data = in_data; - SLLStackPush(unfinished_tasks, new_task); - } - - // state for checking implicit locations - B32 last_was_implicit_loc = 0; - - // task loop - for (;;) { - // get next task to handle - DW_ExprAnalysisTask *task = unfinished_tasks; - if (task == 0) { - break; - } - - String8 task_data = task->data; - U8 *task_base = task_data.str; - Rng1U64 task_range = rng_1u64(0, task_data.size); - - // move the task to finished now - SLLStackPop(unfinished_tasks); - SLLStackPush(finished_tasks, task); - - // analysis loop - for (U64 cursor = 0;;) { - // decode op - U64 op_offset = cursor; - U8 op = 0; - if (dw_based_range_read(task_base, task_range, op_offset, 1, &op)) { - U64 after_op_off = cursor + 1; - - // require piece op after 'implicit' location descriptions - if (last_was_implicit_loc) { - if (op != DW_ExprOp_Piece && op != DW_ExprOp_BitPiece) { - result.flags |= DW_ExprFlag_BadData; - goto finish; + done = 1; + result.status = DW_EvalStatus_UnsupportedOp; + }break; + + //- rjf: address ops + case DW_ExprOp_Deref:{deref_read_size = byte_size_from_arch(arch);}goto deref; + case DW_ExprOp_DerefSize:{deref_read_size = operands[0].u512.u64[0];}goto deref; + deref:; + { + U64 vaddr = popped_vals[0].u512.u64[0]; + U64 read_size = Min(deref_read_size, sizeof(push_vals[0].u512)); + Rng1U64 read_vaddr_range = r1u64(vaddr, vaddr+read_size); + if(!memory_map_read(memory_map, read_vaddr_range, &push_vals[0].u512)) + { + need_a_break = 1; + result.status = DW_EvalStatus_FailedMemoryRead; + result.missed_read_vaddr_range = read_vaddr_range; + } + }break; + + //- rjf: generic constants + case DW_ExprOp_Const1U: case DW_ExprOp_Const1S: + case DW_ExprOp_Const2U: case DW_ExprOp_Const2S: + case DW_ExprOp_Const4U: case DW_ExprOp_Const4S: + case DW_ExprOp_Const8U: case DW_ExprOp_Const8S: + case DW_ExprOp_ConstU: case DW_ExprOp_ConstS: + case DW_ExprOp_Addr: + { + push_vals[0] = operands[0]; + }break; + + //- rjf: stack ops + case DW_ExprOp_Dup:{push_vals[0] = popped_vals[0];}break; + case DW_ExprOp_Drop:{/* NOTE(rjf): nothing to do here - just pops */}break; + case DW_ExprOp_Swap:{push_vals[0] = popped_vals[1]; push_vals[1] = popped_vals[0];}break; + case DW_ExprOp_Rot: {push_vals[0] = popped_vals[0]; push_vals[1] = popped_vals[1]; push_vals[2] = popped_vals[2];}break; + case DW_ExprOp_Over:{pick_target_idx = 1;}break; + case DW_ExprOp_Pick:{pick_target_idx = operands[0].u512.u64[0];}goto pick_stack_val; + pick_stack_val:; + { + U64 idx = 0; + for(DW_EvalValNode *n = state->top_val; n != 0; n = n->next, idx += 1) + { + if(idx == pick_target_idx) + { + push_vals[0] = n->v; + break; } } - - // step params - U64 size_param = 0; - B32 is_signed = 0; - - // step - U64 step_cursor = after_op_off; - switch (op) { - - //// literal encodings //// - - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + }break; + + //- rjf: arithmetic ops +#define UniOpU(k, op) case k:{push_vals[0].u512.u64[0] = op(popped_vals[0].u512.u64[0]);}break +#define UniOpS(k, op) case k:{push_vals[0].s64 = op(popped_vals[0].s64);}break +#define BinOpS(k, op) case k:{push_vals[0].s64 = popped_vals[1].s64 op popped_vals[0].s64;}break +#define BinOpU(k, op) case k:{push_vals[0].u512.u64[0] = popped_vals[1].u512.u64[0] op popped_vals[0].u512.u64[0];}break +#define BinOpDiv(k, op) case k:if(popped_vals[0].u512.u64[0] != 0){push_vals[0].u512.u64[0] = popped_vals[1].u512.u64[0] op popped_vals[0].u512.u64[0];}break + UniOpS(DW_ExprOp_Abs, abs_s64); + UniOpS(DW_ExprOp_Neg, -); + UniOpU(DW_ExprOp_Not, !); + BinOpU(DW_ExprOp_Minus, -); + BinOpU(DW_ExprOp_Mul, *); + BinOpU(DW_ExprOp_Plus, +); + BinOpU(DW_ExprOp_Shl, <<); + BinOpU(DW_ExprOp_Shr, >>); + BinOpU(DW_ExprOp_And, &); + BinOpU(DW_ExprOp_Or, |); + BinOpU(DW_ExprOp_Xor, ^); + BinOpS(DW_ExprOp_Shra, >>); + BinOpDiv(DW_ExprOp_Div, /); + BinOpDiv(DW_ExprOp_Mod, %); + BinOpU(DW_ExprOp_Eq, ==); + BinOpU(DW_ExprOp_Ne, !=); + BinOpS(DW_ExprOp_Ge, >=); + BinOpS(DW_ExprOp_Gt, >); + BinOpS(DW_ExprOp_Le, <=); + BinOpS(DW_ExprOp_Lt, <); +#undef UniOpU +#undef UniOpS +#undef BinOpS +#undef BinOpU +#undef BinOpDiv + case DW_ExprOp_PlusUConst: + { + push_vals[0].u512.u64[0] = popped_vals[0].u512.u64[0] + operands[0].u512.u64[0]; + }break; + + //- rjf: jumps/branches + case DW_ExprOp_Bra: + { + if(popped_vals[0].u512.u64[0] == 0) + { break; - - case DW_ExprOp_Const1U:size_param = 1; goto const_n; - case DW_ExprOp_Const2U:size_param = 2; goto const_n; - case DW_ExprOp_Const4U:size_param = 4; goto const_n; - case DW_ExprOp_Const8U:size_param = 8; goto const_n; - case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; - case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; - case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; - case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; - const_n: - { - U64 x = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, size_param, &x); - } break; - - case DW_ExprOp_Addr: - { - U64 offset = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, 8, &offset); - result.flags |= DW_ExprFlag_UsesTextBase; - } break; - - case DW_ExprOp_ConstU: - { - U64 x = 0; - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, &x); - } break; - - case DW_ExprOp_ConstS: - { - U64 x = 0; - step_cursor += dw_based_range_read_sleb128(task_base, task_range, step_cursor, (S64*)&x); - } break; - - - //// register based addressing //// - - case DW_ExprOp_FBReg: - { - S64 offset = 0; - step_cursor += dw_based_range_read_sleb128(task_base, task_range, step_cursor, &offset); - result.flags |= DW_ExprFlag_UsesFrameBase; - } break; - - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: - { - S64 offset = 0; - step_cursor += dw_based_range_read_sleb128(task_base, task_range, step_cursor, &offset); - result.flags |= DW_ExprFlag_UsesRegisters; - } break; - - case DW_ExprOp_BRegX: - { - U64 reg_idx = 0; S64 offset = 0; - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, ®_idx); - step_cursor += dw_based_range_read_sleb128(task_base, task_range, step_cursor, &offset); - result.flags |= DW_ExprFlag_UsesRegisters; - } break; - - - //// stack operations //// - - case DW_ExprOp_Dup: - case DW_ExprOp_Drop: - break; - - case DW_ExprOp_Pick: - { - U64 idx = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, 1, &idx); - } break; - - case DW_ExprOp_Over: - case DW_ExprOp_Swap: - case DW_ExprOp_Rot: - break; - - case DW_ExprOp_Deref: - { - result.flags |= DW_ExprFlag_UsesMemory; - } break; - - case DW_ExprOp_DerefSize: - { - U64 size = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, 1, &size); - result.flags |= DW_ExprFlag_UsesMemory; - } break; - - case DW_ExprOp_XDeref: - case DW_ExprOp_XDerefSize: - { - result.flags |= DW_ExprFlag_NotSupported; - } goto finish; - - case DW_ExprOp_PushObjectAddress: - { - result.flags |= DW_ExprFlag_UsesObjectAddress; - } break; - - case DW_ExprOp_GNU_PushTlsAddress: - case DW_ExprOp_FormTlsAddress: - { - result.flags |= DW_ExprFlag_UsesTLSAddress; - } break; - - case DW_ExprOp_CallFrameCfa: - { - result.flags |= DW_ExprFlag_UsesCFA; - } break; - - - //// arithmetic and logical operations //// - - case DW_ExprOp_Abs: - case DW_ExprOp_And: - case DW_ExprOp_Div: - case DW_ExprOp_Minus: - case DW_ExprOp_Mod: - case DW_ExprOp_Mul: - case DW_ExprOp_Neg: - case DW_ExprOp_Not: - case DW_ExprOp_Or: - case DW_ExprOp_Plus: - break; - - case DW_ExprOp_PlusUConst: - { - U64 y = 0; - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, &y); - } break; - - case DW_ExprOp_Shl: - case DW_ExprOp_Shr: - case DW_ExprOp_Shra: - case DW_ExprOp_Xor: - break; - - - //// control flow operations //// - - case DW_ExprOp_Le: - case DW_ExprOp_Ge: - case DW_ExprOp_Eq: - case DW_ExprOp_Lt: - case DW_ExprOp_Gt: - case DW_ExprOp_Ne: - break; - - case DW_ExprOp_Skip: - case DW_ExprOp_Bra: - { - S16 d = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, 2, &d); - result.flags |= DW_ExprFlag_NonLinearFlow; - } break; - - case DW_ExprOp_Call2:size_param = 2; goto callN; - case DW_ExprOp_Call4:size_param = 4; goto callN; - callN: - { - U64 p = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, size_param, &p); - result.flags |= DW_ExprFlag_UsesCallResolution|DW_ExprFlag_NonLinearFlow; - - // add to task list - if (has_call_func) { - DW_ExprAnalysisTask *existing = dw_expr__analysis_task_from_p(unfinished_tasks, p); - if (existing == 0) { - existing = dw_expr__analysis_task_from_p(finished_tasks, p);; - } - if (existing == 0) { - DW_ExprAnalysisTask *new_task = push_array(scratch.arena, DW_ExprAnalysisTask, 1); - new_task->p = p; - new_task->data = call_config->func(call_config->user_ptr, p); - SLLStackPush(unfinished_tasks, new_task); - } - } - } break; - - case DW_ExprOp_CallRef: - { - result.flags |= DW_ExprFlag_NotSupported; - } goto finish; - - - //// special operations //// - - case DW_ExprOp_Nop:break; - - - //// register location descriptions //// - - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: - { - last_was_implicit_loc = 1; - } break; - - case DW_ExprOp_RegX: - { - U64 reg_idx = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, size_param, ®_idx); - last_was_implicit_loc = 1; - } break; - - - //// implicit location descriptions //// - - case DW_ExprOp_ImplicitValue: - { - U64 size = 0; - step_cursor += dw_based_range_read(task_base, task_range, step_cursor, size_param, &size); - if (step_cursor + size > task_range.max) { - result.flags |= DW_ExprFlag_BadData; - goto finish; - } - step_cursor += size; - last_was_implicit_loc = 1; - } break; - - case DW_ExprOp_StackValue: - { - last_was_implicit_loc = 1; - } break; - - - //// composite location descriptions //// - - case DW_ExprOp_Piece: - { - U64 size = 0; - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, &size); - result.flags |= DW_ExprFlag_UsesComposite; - - last_was_implicit_loc = 0; - } break; - - case DW_ExprOp_BitPiece: - { - U64 bit_size = 0; U64 bit_off = 0; - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, &bit_size); - step_cursor += dw_based_range_read_uleb128(task_base, task_range, step_cursor, &bit_off); - result.flags |= DW_ExprFlag_UsesComposite; - - last_was_implicit_loc = 0; - } break; - - - //// final fallback //// - - default: - { - result.flags |= DW_ExprFlag_NotSupported; - } goto finish; } - - // increment cursor - cursor = step_cursor; - } - - // check for end of task - if (cursor < task_data.size) { - goto finish_task; - } - } - - finish_task:; - } - finish:; - - scratch_end(scratch); - return result; -} -#endif - -//- full eval - -internal DW_Location -dw_expr__eval(Arena *arena_optional, void *expr_base, Rng1U64 expr_range, DW_ExprMachineConfig *config) -{ -#if 0 - Temp scratch = scratch_begin(&arena_optional, 1); - - DW_Location result = {0}; - - // setup stack - DW_ExprStack stack = dw_expr__stack_make(scratch.arena); - - // adjust expr range - void *expr_ptr = (U8*)expr_base + expr_range.min; - U64 expr_size = expr_range.max - expr_range.min; - - // setup call stack - DW_ExprCallStack call_stack = {0}; - dw_expr__call_push(scratch.arena, &call_stack, expr_ptr, expr_size); - - // state variables - DW_SimpleLoc stashed_loc = {DW_SimpleLocKind_Address}; - - // run loop - U64 max_step_count = config->max_step_count; - U64 step_counter = 0; - for (;;) { - // check top of stack - DW_ExprCall *call = dw_expr__call_top(&call_stack); - if (call == 0) { - goto finish; - } - - // grab top of stack details - void *base = call->ptr; - Rng1U64 range = rng_1u64(0, call->size); - U64 cursor = call->cursor; - - // decode op - U64 op_offset = cursor; - U8 op = 0; - if (dw_based_range_read(base, range, op_offset, 1, &op)) { - U64 after_op_off = cursor + 1; - - // require piece op after 'implicit' location descriptions - if (stashed_loc.kind != DW_SimpleLocKind_Address) { - if (op != DW_ExprOp_Piece && op != DW_ExprOp_BitPiece) { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_BadData; - goto finish; + } // fallthrough + case DW_ExprOp_Skip: + { + S64 jump_delta = operands[0].s64; + if((jump_delta < 0 && -jump_delta > off) || (off + jump_delta >= expr.size)) + { + done = 1; + result.status = DW_EvalStatus_Error; } - } - - // step params - U64 size_param = 0; - B32 is_signed = 0; - - // step - U64 step_cursor = after_op_off; - switch (op) { - - //// literal encodings //// - - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + else { - U64 x = op - DW_ExprOp_Lit0; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Const1U:size_param = 1; goto const_n; - case DW_ExprOp_Const2U:size_param = 2; goto const_n; - case DW_ExprOp_Const4U:size_param = 4; goto const_n; - case DW_ExprOp_Const8U:size_param = 8; goto const_n; - case DW_ExprOp_Const1S:size_param = 1; is_signed = 1; goto const_n; - case DW_ExprOp_Const2S:size_param = 2; is_signed = 1; goto const_n; - case DW_ExprOp_Const4S:size_param = 4; is_signed = 1; goto const_n; - case DW_ExprOp_Const8S:size_param = 8; is_signed = 1; goto const_n; - const_n: - { - U64 x = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, size_param, &x); - if (is_signed) { - x = extend_sign64(x, size_param); - } - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Addr: - { - U64 offset = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 8, &offset); - - // earlier versions of GCC emit TLS offset with DW_ExprOp_Addr. - B32 is_text_relative; - { - U8 next_op = 0; - dw_based_range_read_struct(base, range, step_cursor, &next_op); - is_text_relative = (next_op != DW_ExprOp_GNU_PushTlsAddress); - } - - U64 addr = offset; - - if (is_text_relative) { - if (config->text_section_base != 0) { - addr += *config->text_section_base; - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingTextBase; - goto finish; - } - } - - dw_expr__stack_push(scratch.arena, &stack, addr); - } break; - - case DW_ExprOp_ConstU: - { - U64 x = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &x); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_ConstS: - { - U64 x = 0; - step_cursor += dw_based_range_read_sleb128(base, range, step_cursor, (S64*)&x); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - - //// register based addressing //// - - case DW_ExprOp_FBReg: - { - S64 offset = 0; - step_cursor += dw_based_range_read_sleb128(base, range, step_cursor, &offset); - if (config->frame_base != 0) { - U64 x = *config->frame_base + offset; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingFrameBase; - goto finish; - } - } break; - - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: - { - S64 offset = 0; - step_cursor += dw_based_range_read_sleb128(base, range, step_cursor, &offset); - U64 reg_idx = op - DW_ExprOp_BReg0; - DW_RegsX64 *regs = config->regs; - if (regs != 0) { - if (reg_idx < ArrayCount(regs->r)) { - U64 x = regs->r[reg_idx] + offset; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_BadData; - stashed_loc.fail_data = op_offset; - goto finish; - } - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingRegisters; - goto finish; - } - } break; - - case DW_ExprOp_BRegX: - { - U64 reg_idx = 0; S64 offset = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, ®_idx); - step_cursor += dw_based_range_read_sleb128(base, range, step_cursor, &offset); - - DW_RegsX64 *regs = config->regs; - if (regs != 0) { - if (reg_idx < ArrayCount(regs->r)) { - U64 x = regs->r[reg_idx] + offset; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_BadData; - stashed_loc.fail_data = op_offset; - goto finish; - } - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingRegisters; - goto finish; - } - } break; - - - //// stack operations //// - - case DW_ExprOp_Dup: - { - U64 x = dw_expr__stack_pick(&stack, 0); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Drop: - { - dw_expr__stack_pop(&stack); - } break; - - case DW_ExprOp_Pick: - { - U64 idx = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 1, &idx); - U64 x = dw_expr__stack_pick(&stack, idx); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Over: - { - U64 x = dw_expr__stack_pick(&stack, 1); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Swap: - { - U64 a = dw_expr__stack_pop(&stack); - U64 b = dw_expr__stack_pop(&stack); - dw_expr__stack_push(scratch.arena, &stack, b); - dw_expr__stack_push(scratch.arena, &stack, a); - } break; - - case DW_ExprOp_Rot: - { - U64 a = dw_expr__stack_pop(&stack); - U64 b = dw_expr__stack_pop(&stack); - U64 c = dw_expr__stack_pop(&stack); - dw_expr__stack_push(scratch.arena, &stack, a); - dw_expr__stack_push(scratch.arena, &stack, c); - dw_expr__stack_push(scratch.arena, &stack, b); - } break; - - case DW_ExprOp_Deref: - { - U64 addr = dw_expr__stack_pop(&stack); - - B32 read_success = 0; - if (config->read_memory) { - U64 x = 0; - if (config->read_memory(addr, sizeof(x), &x, config->read_memory_ud) == sizeof(x)) { - dw_expr__stack_push(scratch.arena, &stack, x); - read_success = 1; - } - } - - if (!read_success) { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingMemory; - stashed_loc.fail_data = addr; - goto finish; - } - } break; - - case DW_ExprOp_DerefSize: - { - U64 raw_size = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 1, &raw_size); - - U64 size = ClampTop(raw_size, 8); - U64 addr = dw_expr__stack_pop(&stack); - - B32 read_success = 0; - if (config->read_memory) { - U64 x = 0; - if (config->read_memory(addr, size, &x, config->read_memory_ud) == sizeof(x)) { - dw_expr__stack_push(scratch.arena, &stack, x); - read_success = 1; - } - } - if (!read_success) { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingMemory; - stashed_loc.fail_data = addr; - goto finish; - } - } break; - - case DW_ExprOp_XDeref: - case DW_ExprOp_XDerefSize: - { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_NotSupported; - goto finish; - } break; - - case DW_ExprOp_PushObjectAddress: - { - if (config->object_address != 0) { - U64 x = *config->object_address; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingObjectAddress; - goto finish; - } - } break; - - // NOTE: pop offset from stack, convert it to TLS address, then push it back. - case DW_ExprOp_GNU_PushTlsAddress: - case DW_ExprOp_FormTlsAddress: - { - S64 s = (S64)dw_expr__stack_pop(&stack); - - if (config->tls_address != 0) { - U64 x = *config->tls_address + s; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingTLSAddress; - goto finish; - } - } break; - - case DW_ExprOp_CallFrameCfa: - { - if (config->cfa != 0) { - U64 x = *config->cfa; - dw_expr__stack_push(scratch.arena, &stack, x); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingCFA; - goto finish; - } - } break; - - - //// arithmetic and logical operations //// - - case DW_ExprOp_Abs: - { - S64 s = (S64)dw_expr__stack_pop(&stack); - S64 x = abs_s64(s); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_And: - { - U64 x = dw_expr__stack_pop(&stack); - U64 y = dw_expr__stack_pop(&stack); - dw_expr__stack_push(scratch.arena, &stack, x&y); - } break; - - case DW_ExprOp_Div: - { - S64 d = (S64)dw_expr__stack_pop(&stack); - S64 n = (S64)dw_expr__stack_pop(&stack); - S64 x = (d == 0)?0:n/d; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Minus: - { - U64 b = dw_expr__stack_pop(&stack); - U64 a = dw_expr__stack_pop(&stack); - U64 x = a - b; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Mod: - { - S64 d = (S64)dw_expr__stack_pop(&stack); - S64 n = (S64)dw_expr__stack_pop(&stack); - S64 x = (d == 0)?0:n%d; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Mul: - { - U64 b = dw_expr__stack_pop(&stack); - U64 a = dw_expr__stack_pop(&stack); - U64 x = a*b; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Neg: - { - S64 s = (S64)dw_expr__stack_pop(&stack); - S64 x = -s; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Not: - { - U64 y = dw_expr__stack_pop(&stack); - U64 x = ~y; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Or: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = y | z; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Plus: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = y + z; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_PlusUConst: - { - U64 y = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &y); - U64 z = dw_expr__stack_pop(&stack); - U64 x = y + z; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Shl: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = 0; - if (y < 64) { - x = z << y; - } - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Shr: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = 0; - if (y < 64) { - x = z >> y; - } - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Shra: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = 0; - if (y < 64) { - x = z >> y; - // sign extensions - if (y > 0 && (z & (1ull << 63))) { - x |= ~((1 << (64 - y)) - 1); - } - } - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Xor: - { - U64 y = dw_expr__stack_pop(&stack); - U64 z = dw_expr__stack_pop(&stack); - U64 x = y ^ z; - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - - //// control flow operations //// - - case DW_ExprOp_Le: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a <= b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Ge: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a >= b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Eq: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a == b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Lt: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a < b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Gt: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a > b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Ne: - { - S64 b = (S64)dw_expr__stack_pop(&stack); - S64 a = (S64)dw_expr__stack_pop(&stack); - U64 x = (a != b); - dw_expr__stack_push(scratch.arena, &stack, x); - } break; - - case DW_ExprOp_Skip: - { - S16 d = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 2, &d); - step_cursor = step_cursor + d; - } break; - - case DW_ExprOp_Bra: - { - S16 d = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 2, &d); - U64 b = dw_expr__stack_pop(&stack); - if (b != 0) { - step_cursor = step_cursor + d; - } - } break; - - case DW_ExprOp_Call2: - { - U16 p = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 2, &p); - if (config->call.func != 0) { - String8 sub_data = config->call.func(config->call.user_ptr, p); - dw_expr__call_push(scratch.arena, &call_stack, sub_data.str, sub_data.size); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingCallResolution; - goto finish; - } - } break; - - case DW_ExprOp_Call4: - { - U32 p = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, 4, &p); - if (config->call.func != 0) { - String8 sub_data = config->call.func(config->call.user_ptr, p); - dw_expr__call_push(scratch.arena, &call_stack, sub_data.str, sub_data.size); - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingCallResolution; - goto finish; - } - } break; - - case DW_ExprOp_CallRef: - { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_NotSupported; - goto finish; - } break; - - - //// special operations //// - - case DW_ExprOp_Nop:break; - - - //// register location descriptions //// - - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: - { - U64 reg_idx = op - DW_ExprOp_Reg0; - stashed_loc.kind = DW_SimpleLocKind_Register; - stashed_loc.reg_idx = reg_idx; - } break; - - case DW_ExprOp_RegX: - { - U64 reg_idx = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, size_param, ®_idx); - stashed_loc.kind = DW_SimpleLocKind_Register; - stashed_loc.reg_idx = reg_idx; - } break; - - - //// implicit location descriptions //// - - case DW_ExprOp_ImplicitValue: - { - U64 size = 0; - step_cursor += dw_based_range_read(base, range, step_cursor, size_param, &size); - if (step_cursor + size <= range.max) { - void *data = (U8*)base + range.min + step_cursor; - stashed_loc.kind = DW_SimpleLocKind_ValueLong; - stashed_loc.val_long.str = (U8*)data; - stashed_loc.val_long.size = size; - } else { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_BadData; - goto finish; - } - step_cursor += size; - } break; - - case DW_ExprOp_StackValue: - { - U64 x = dw_expr__stack_pop(&stack); - stashed_loc.kind = DW_SimpleLocKind_Value; - stashed_loc.val = x; - } break; - - - //// composite location descriptions //// - - case DW_ExprOp_Piece: - case DW_ExprOp_BitPiece: - { - if (arena_optional == 0) { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_MissingArenaForComposite; - goto finish; - } else { - // determine this piece's size & offset - U64 bit_size = 0; - U64 bit_off = 0; - B32 is_bit_loc = 0; - switch (op) { - case DW_ExprOp_Piece: - { - U64 size = 0; - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &size); - bit_size = size*8; - } break; - case DW_ExprOp_BitPiece: - { - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &bit_size); - step_cursor += dw_based_range_read_uleb128(base, range, step_cursor, &bit_off); - is_bit_loc = 1; - } break; - } - - // determine this piece's location information - DW_SimpleLoc piece_loc = stashed_loc; - if (piece_loc.kind == DW_SimpleLocKind_Address) { - if (dw_expr__stack_is_empty(&stack)) { - piece_loc.kind = DW_SimpleLocKind_Empty; - } else { - U64 x = dw_expr__stack_pop(&stack); - piece_loc.addr = x; - } - } - - // push the piece - DW_Piece *piece = push_array(arena_optional, DW_Piece, 1); - SLLQueuePush(result.first_piece, result.last_piece, piece); - piece->loc = piece_loc; - piece->bit_size = bit_size; - piece->bit_off = bit_off; - piece->is_bit_loc = is_bit_loc; - - // zero the stached loc - MemoryZeroStruct(&stashed_loc); - } - } break; - - - //// final fallback //// - - default: - { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_NotSupported; - goto finish; - } break; - } - - // increment cursor - cursor = step_cursor; - } - - // advance cursor or finish call - if (cursor < call->size) { - call->cursor = cursor; - } else { - dw_expr__call_pop(&call_stack); - } - - // advance step counter - step_counter += 1; - if (step_counter == max_step_count) { - stashed_loc.kind = DW_SimpleLocKind_Fail; - stashed_loc.fail_kind = DW_LocFailKind_TimeOut; - goto finish; - } - } - - finish:; - - // non-piece location - { - DW_SimpleLoc loc = stashed_loc; - if (result.first_piece == 0) { - - // normal location resolution - loc = stashed_loc; - if (loc.kind == DW_SimpleLocKind_Address) { - if (dw_expr__stack_is_empty(&stack)) { - loc.kind = DW_SimpleLocKind_Empty; - } else { - U64 x = dw_expr__stack_pop(&stack); - loc.addr = x; + off += jump_delta; } - } + }break; + + //- rjf: literals + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: case DW_ExprOp_Lit3: + case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: + case DW_ExprOp_Lit8: case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: case DW_ExprOp_Lit15: + case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: + case DW_ExprOp_Lit20: case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: case DW_ExprOp_Lit27: + case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + { + U8 val = (opcode - DW_ExprOp_Lit0); + push_vals[0].u512.u8[0] = val; + }break; + + //- rjf: register reads (opcode-encoded reg) + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: case DW_ExprOp_Reg3: + case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: + case DW_ExprOp_Reg8: case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: case DW_ExprOp_Reg15: + case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: + case DW_ExprOp_Reg20: case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: case DW_ExprOp_Reg27: + case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: + {reg_code_dw = (opcode - DW_ExprOp_Reg0);}goto reg_read; + case DW_ExprOp_RegX: + {reg_code_dw = operands[0].u512.u64[0];}goto reg_read; + reg_read:; + { + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_code_dw); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 read_size = dim_1u16(reg_rng); + read_size = Min(read_size, sizeof(push_vals[0].u512)); + reg_rng.max = reg_rng.min + read_size; + arch_reg_block_read_range(arch_info, regs, reg_rng, &push_vals[0].u512); + }break; + + //- rjf: register reads (opcode-encoded reg + offset) + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: case DW_ExprOp_BReg3: + case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: + case DW_ExprOp_BReg8: case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: case DW_ExprOp_BReg15: + case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: + case DW_ExprOp_BReg20: case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: case DW_ExprOp_BReg27: + case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: + {reg_code_dw = (opcode - DW_ExprOp_BReg0);}goto based_reg_read; + case DW_ExprOp_BRegX: + {reg_code_dw = operands[0].u512.u64[0];}goto based_reg_read; + based_reg_read:; + { + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_code_dw); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 read_size = dim_1u16(reg_rng); + read_size = Min(read_size, sizeof(push_vals[0].u512)); + reg_rng.max = reg_rng.min + read_size; + arch_reg_block_read_range(arch_info, regs, reg_rng, &push_vals[0].u512); + push_vals[0].u512.u64[0] += operands[0].s64; + }break; + + //- rjf: frame base register read + case DW_ExprOp_FBReg: + { + push_vals[0].u512.u64[0] = (U64)(frame_base + operands[0].s64); + }break; + + //- rjf: TLS + case DW_ExprOp_FormTlsAddress: + { + U64 tls_off = popped_vals[0].u512.u64[0]; + U64 tls_addr = tls + tls_off; + push_vals[0].u512.u64[0] = tls_addr; + }break; + + //- rjf: call frame CFA + case DW_ExprOp_CallFrameCfa: + { + push_vals[0].u512.u64[0] = cfa; + }break; + + //- rjf: implicit location descriptions (value is known, location is not) + case DW_ExprOp_ImplicitValue: + { + push_vals[0] = operands[0]; + }break; + case DW_ExprOp_StackValue: + { + // NOTE(rjf): nothing to do here - program is over, value (but not location) has + // been evaluated and exists as the top entry on the stack. + }break; + + //- rjf: conversions + case DW_ExprOp_Convert: + case DW_ExprOp_Reinterpret: + { + if(operands[0].u512.u64[0] == 0) + { + push_vals[0] = popped_vals[0]; + } + else + { + // NOTE(rjf): with a nonzero operand, it is expecting us to read into the + // DWARF debug info and push as that base type. we do not have access to that + // in the general case here, and we need to figure out how to preserve that info + // if we care. + done = 1; + result.status = DW_EvalStatus_UnsupportedOp; + } + }break; } - // non-piece location resolution after composite - else { - - // change the default kind to empty - if (loc.kind == DW_SimpleLocKind_Address) { - loc.kind = DW_SimpleLocKind_Empty; - } - - // the non-piece should either be empty or fail - if (loc.kind != DW_SimpleLocKind_Empty && - loc.kind != DW_SimpleLocKind_Fail) { - loc.kind = DW_SimpleLocKind_Fail; - loc.fail_kind = DW_LocFailKind_BadData; + + //- rjf: do pushes + if(!done && !need_a_break) + { + push_count = Min(push_count, ArrayCount(push_vals)); + for(U8 push_idx = 0; push_idx < push_count; push_idx += 1) + { + DW_EvalValNode *n = state->free_val; + if(n != 0) + { + SLLStackPop(state->free_val); + } + else + { + n = push_array(arena, DW_EvalValNode, 1); + } + n->v = push_vals[push_idx]; + SLLStackPush(state->top_val, n); } } - result.non_piece_loc = loc; - } - - // clear stack - scratch_end(scratch); - return result; -#endif - DW_Location result = {0}; - return result; -} - - -//- dw expr val stack - -internal DW_ExprStack -dw_expr__stack_make(Arena *arena) -{ - DW_ExprStack result = {0}; - return result; -} - -internal void -dw_expr__stack_push(Arena *arena, DW_ExprStack *stack, U64 x) -{ - DW_ExprStackNode *node = stack->free_nodes; - if (node == 0) { - SLLStackPop(stack->free_nodes); - } else { - node = push_array(arena, DW_ExprStackNode, 1); - } - SLLStackPush(stack->stack, node); - node->val = x; - stack->count += 1; -} - -internal U64 -dw_expr__stack_pop(DW_ExprStack *stack) -{ - U64 result = 0; - DW_ExprStackNode *node = stack->stack; - if (node != 0) { - SLLStackPop(stack->stack); - stack->count -= 1; - result = node->val; - } - return result; -} - -internal U64 -dw_expr__stack_pick(DW_ExprStack *stack, U64 idx) -{ - U64 result = 0; - if (idx < stack->count) { - U64 counter = idx; - DW_ExprStackNode *node = stack->stack; - for (;node != 0 && counter > 0; node = node->next, counter -= 1); - if (counter == 0 && node != 0) { - result = node->val; + //- rjf: do not need a break? advance state. + // + // (if we *do* need a break, this means we need to ask the caller for + // more info, like memory reads, and so we want to resume from the + // offset just before this opcode) + // + if(!need_a_break) + { + state->op_idx += 1; + state->off = off; } - } - return result; -} - -internal B32 -dw_expr__stack_is_empty(DW_ExprStack *stack) -{ - B32 result = (stack->count == 0); - return result; -} - -//- dw expr call stack - -internal DW_ExprCall* -dw_expr__call_top(DW_ExprCallStack *stack) -{ - DW_ExprCall *call = stack->stack; - return call; -} - -internal void -dw_expr__call_push(Arena *arena, DW_ExprCallStack *stack, void *ptr, U64 size) -{ - DW_ExprCall *call = 0; - if (call != 0) { - SLLStackPop(stack->free_calls); - } else { - call = push_array(arena, DW_ExprCall, 1); - } - MemoryZeroStruct(call); - SLLStackPush(stack->stack, call); - stack->depth += 1; -} - -internal void -dw_expr__call_pop(DW_ExprCallStack *stack) -{ - DW_ExprCall *top = stack->stack; - if (top != 0) - { - SLLStackPop(stack->stack); - SLLStackPush(stack->free_calls, top); - } -} - -//- analysis tasks - -internal DW_ExprAnalysisTask* -dw_expr__analysis_task_from_p(DW_ExprAnalysisTask *first, U64 p) -{ - DW_ExprAnalysisTask *result = 0; - for (DW_ExprAnalysisTask *task = first; task != 0; task = task->next) { - if (task->p == p) { - result = task; + + //- rjf: at the end of the expression? -> set success, fill result + if(off == expr.size) + { + result.status = DW_EvalStatus_Good; + if(state->top_val != 0) + { + result.val = state->top_val->v; + } + } + + //- rjf: did not advance? -> error + if(off == start_off) + { + result.status = DW_EvalStatus_Error; break; } } return result; } - diff --git a/src/dwarf/dwarf_expr.h b/src/dwarf/dwarf_expr.h index 9daf7f73..5bb9630f 100644 --- a/src/dwarf/dwarf_expr.h +++ b/src/dwarf/dwarf_expr.h @@ -5,297 +5,62 @@ #define DWARF_EXPR_H //////////////////////////////// -//~ Dwarf Register Layout +//~ rjf: Evaluation Values -typedef struct DW_RegsX64 +typedef struct DW_EvalVal DW_EvalVal; +struct DW_EvalVal { - union { - struct { - U64 rax; - U64 rdx; - U64 rcx; - U64 rbx; - U64 rsi; - U64 rdi; - U64 rbp; - U64 rsp; - U64 r8; - U64 r9; - U64 r10; - U64 r11; - U64 r12; - U64 r13; - U64 r14; - U64 r15; - U64 rip; - }; - U64 r[17]; + union + { + U512 u512; + S64 s64; }; -} DW_RegsX64; - -//////////////////////////////// -//~ Dwarf Expression Eval Types - -#define DW_READ_MEMORY_SIG(name) U64 name(U64 addr, U64 size, void *out, void *ud) -typedef DW_READ_MEMORY_SIG(DW_ReadMemorySig); - -//- machine configuration types -typedef String8 DW_ExprResolveCallFunc(void *call_user_ptr, U64 p); - -typedef struct DW_ExprMachineCallConfig -{ - void *user_ptr; - DW_ExprResolveCallFunc *func; -} DW_ExprMachineCallConfig; - -typedef struct DW_ExprMachineConfig -{ - U64 max_step_count; // (read only in the eval functions) - DW_ReadMemorySig *read_memory; - void *read_memory_ud; - DW_RegsX64 *regs; - U64 *text_section_base; - U64 *frame_base; - U64 *object_address; - U64 *tls_address; - U64 *cfa; - DW_ExprMachineCallConfig call; -} DW_ExprMachineConfig; - - -//- detail analysis types -typedef U32 DW_ExprFlags; -enum -{ - DW_ExprFlag_UsesTextBase = (1 << 0), - DW_ExprFlag_UsesMemory = (1 << 1), - DW_ExprFlag_UsesRegisters = (1 << 2), - DW_ExprFlag_UsesFrameBase = (1 << 3), - DW_ExprFlag_UsesObjectAddress = (1 << 4), - DW_ExprFlag_UsesTLSAddress = (1 << 5), - DW_ExprFlag_UsesCFA = (1 << 6), - DW_ExprFlag_UsesCallResolution = (1 << 7), - DW_ExprFlag_UsesComposite = (1 << 8), - - DW_ExprFlag_NotSupported = (1 << 16), - DW_ExprFlag_BadData = (1 << 17), - DW_ExprFlag_NonLinearFlow = (1 << 18) + String8 data; }; -typedef struct DW_ExprAnalysis +typedef struct DW_EvalValNode DW_EvalValNode; +struct DW_EvalValNode { - DW_ExprFlags flags; -} DW_ExprAnalysis; - -typedef struct DW_ExprAnalysisTask -{ - struct DW_ExprAnalysisTask *next; - U64 p; - String8 data; -} DW_ExprAnalysisTask; - - -//- location types -typedef enum DW_SimpleLocKind -{ - DW_SimpleLocKind_Address, - DW_SimpleLocKind_Register, - DW_SimpleLocKind_Value, - DW_SimpleLocKind_ValueLong, - DW_SimpleLocKind_Empty, - DW_SimpleLocKind_Fail, -} DW_SimpleLocKind; - -typedef enum DW_LocFailKind -{ - // Interpreting Fail Kinds - // - // BadData: the evaluator detected that the dwarf expression operation is incorrectly formed - // NotSupported: the evaluator does not support a dwarf feature that was found in the dwarf expression - // TimeOut: the evaluator hit the maximum step count - // TooComplicated: used by analyzer when it the expression uses features outside of the analyzer's scope - // Missing*: the dwarf machine config was missing necessary information to finish the evaluation - - DW_LocFailKind_BadData, - DW_LocFailKind_NotSupported, - DW_LocFailKind_TimeOut, - DW_LocFailKind_TooComplicated, - DW_LocFailKind_MissingTextBase, - DW_LocFailKind_MissingMemory, - DW_LocFailKind_MissingRegisters, - DW_LocFailKind_MissingFrameBase, - DW_LocFailKind_MissingObjectAddress, - DW_LocFailKind_MissingTLSAddress, - DW_LocFailKind_MissingCFA, - DW_LocFailKind_MissingCallResolution, - DW_LocFailKind_MissingArenaForComposite, -} DW_LocFailKind; - -typedef struct DW_SimpleLoc -{ - DW_SimpleLocKind kind; - union { - U64 addr; - U64 reg_idx; - U64 val; - String8 val_long; - struct { - DW_LocFailKind fail_kind; - U64 fail_data; - }; - }; -} DW_SimpleLoc; - -typedef struct DW_Piece -{ - // Hint for Interpreting Pieces - // - // src = decode(loc, is_bit_loc, bit_size); - // dst |= (src >> bit_off) << bit_cursor; - // bit_cursor += bit_size; - - struct DW_Piece *next; - DW_SimpleLoc loc; - U64 bit_size; - U64 bit_off; - B32 is_bit_loc; -} DW_Piece; - -typedef struct DW_Location -{ - // Interpreting a Dwarf Location - // - // CASE (any number of pieces, fail in the non-piece): - // this is how errors are reported, error information is in the non-piece - // the 'fail' location kind should never show up in a piece - // if there are any pieces they can be treated as correct information that - // was successfully decoded before the error was encountered - // - // CASE (no pieces, empty non-piece): - // the data is completely optimized out and unrecoverable - // - // CASE (no pieces, non-empty non-piece): - // the size of the data is not known by the location, but something in the - // surrounding context of the location (eg type info) should know the size - // - // CASE (one-or-more pieces, empty non-piece): - // the data is described by the pieces - // - // CASE (one-or-more pieces, non-empty non-fail non-piece): - // this is supposed to be impossible; the non-piece either carries an error - // or *all* of the location information about the data, there should never - // be a mix of piece-based location and non-piece-based location data. - - DW_Piece *first_piece; - DW_Piece *last_piece; - U64 count; - - DW_SimpleLoc non_piece_loc; -} DW_Location; - - -//- full evaluator state types -typedef struct DW_ExprStackNode -{ - struct DW_ExprStackNode *next; - U64 val; -} DW_ExprStackNode; - -typedef struct DW_ExprStack -{ - DW_ExprStackNode *stack; - DW_ExprStackNode *free_nodes; - U64 count; -} DW_ExprStack; - -typedef struct DW_ExprCall -{ - struct DW_ExprCall *next; - void *ptr; - U64 size; - U64 cursor; -} DW_ExprCall; - -typedef struct DW_ExprCallStack -{ - DW_ExprCall *stack; - DW_ExprCall *free_calls; - U64 depth; -} DW_ExprCallStack; + DW_EvalValNode *next; + DW_EvalVal v; +}; //////////////////////////////// -//~ Dwarf Expression Analysis & Eval Functions +//~ rjf: Evaluation Results -//- analyzers +typedef enum DW_EvalStatus +{ + DW_EvalStatus_Error, + DW_EvalStatus_FailedMemoryRead, + DW_EvalStatus_ExecOpLimitReached, + DW_EvalStatus_UnsupportedOp, + DW_EvalStatus_Good, +} +DW_EvalStatus; -// This analyzer provides the most simplified dwarf expression -// decoding. If the expression consists of a single op that can be interpreted -// as a valid dwarf expression, then it represents that expression as a simple -// location. -// -// If there is a single 'piece' op that is represeted here as an empty simple -// location, losing whatever additional size information from the piece. -// -// If there is an op that requires the machine configuration data the analyzer -// fails with "too complicated" - unless the required configuration data is the -// text section base which this analyzer treats as a non-optional parameter and -// always decodes successfully. -// -// If the expression contains more than one op than the analyzer fails with -// "too complicated". +typedef struct DW_Eval DW_Eval; +struct DW_Eval +{ + DW_EvalVal val; + DW_EvalStatus status; + Rng1U64 missed_read_vaddr_range; +}; -internal DW_SimpleLoc dw_expr__analyze_fast(void *base, Rng1U64 range, U64 text_section_base); +//////////////////////////////// +//~ rjf: Evaluation State Machine -// This analyzer does a one-pass scan through the expression to -// help a caller determine what to expect before doing a full evaluation which -// has to maintain value stacks, perform more checks, and execute any loops -// that may appear in the expression, etc. -// -// For each piece of data that can be equipped to a machine config there is a -// 'Uses' flag in the analysis. A user can use these flags to determine what to -// prepare and equip before a full eval. This can be a lot more efficient than -// always preparing everything, or iteratively equipping and retrying after -// each failure. -// -// The analysis can also catch some cases of bad data and unsupported features. -// These flags are useful for short circuit style optimizations, but they are -// not definitive, some bad data can only be caught by the full evaluator. -// Sometimes the full evaluator might miss bad data that this analyzer will see -// if control flow in the evaluator completely skips the bad data. A forgiving -// interpretation of dwarf expression data would only rely on the results of -// the full evaluator. A more strict interpretation would consider it an error -// if either this analyzer or the evaluator finds bad data. -// -// The analyzer also determines if there is any possibility for non-linear -// flow. Jumps, branches, and call ops all create non-linear flow. An -// expression that doesn't have non-linear flow is trivially gauranteed to -// terminate and therefore a good candidate for conversion to a human readable -// expression. -// -// The call config is optional (may be null). If is provided the analysis -// includes features seen in all of the expressions that might be reached by -// call ops from the initial expression. +typedef struct DW_EvalState DW_EvalState; +struct DW_EvalState +{ + U64 off; + U64 op_idx; + DW_EvalValNode *top_val; + DW_EvalValNode *free_val; +}; -internal DW_ExprAnalysis dw_expr__analyze_details(void *base, Rng1U64 range, DW_ExprMachineCallConfig *call_config); +//////////////////////////////// +//~ rjf: Expression Evaluation Functions -//- full eval -internal DW_Location dw_expr__eval(Arena *arena_optional, void *base, Rng1U64 range, DW_ExprMachineConfig *config); - -//- dw expr val stack -internal DW_ExprStack dw_expr__stack_make(Arena *arena); -internal void dw_expr__stack_push(Arena *arena, DW_ExprStack *stack, U64 x); -internal U64 dw_expr__stack_pop(DW_ExprStack *stack); -internal U64 dw_expr__stack_pick(DW_ExprStack *stack, U64 idx); -internal B32 dw_expr__stack_is_empty(DW_ExprStack *stack); - -//- dw expr call stack -internal DW_ExprCall* dw_expr__call_top(DW_ExprCallStack *stack); -internal void dw_expr__call_push(Arena *arena, DW_ExprCallStack *stack, void *ptr, U64 size); -internal void dw_expr__call_pop(DW_ExprCallStack *stack); - - -//- analysis tasks -internal DW_ExprAnalysisTask* dw_expr__analysis_task_from_p(DW_ExprAnalysisTask *first, U64 p); - -#endif //DWARF_EXPR_H +internal DW_Eval dw_eval(Arena *arena, DW_Format fmt, Arch arch, MemoryMap *memory_map, void *regs, U64 frame_base, U64 cfa, U64 tls, DW_EvalState *state, String8 expr, U64 op_idx_cap); +#endif // DWARF_EXPR_H diff --git a/src/dwarf/dwarf_inc.c b/src/dwarf/dwarf_inc.c index 4293d911..d36b4552 100644 --- a/src/dwarf/dwarf_inc.c +++ b/src/dwarf/dwarf_inc.c @@ -2,9 +2,13 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) #include "dwarf/dwarf.c" -#include "dwarf/dwarf_expr.c" #include "dwarf/dwarf_parse.c" -#include "dwarf/dwarf_coff.c" -#include "dwarf/dwarf_elf.c" +#include "dwarf/dwarf_expr.c" #include "dwarf/dwarf_unwind.c" #include "dwarf/dwarf_dump.c" +#if defined(COFF_H) +# include "dwarf/dwarf_parse_coff.c" +#endif +#if defined(ELF_H) +# include "dwarf/dwarf_parse_elf.c" +#endif diff --git a/src/dwarf/dwarf_inc.h b/src/dwarf/dwarf_inc.h index 61f03873..fc9f24fe 100644 --- a/src/dwarf/dwarf_inc.h +++ b/src/dwarf/dwarf_inc.h @@ -5,11 +5,15 @@ #define DWARF_INC_H #include "dwarf/dwarf.h" -#include "dwarf/dwarf_expr.h" #include "dwarf/dwarf_parse.h" -#include "dwarf/dwarf_coff.h" -#include "dwarf/dwarf_elf.h" +#include "dwarf/dwarf_expr.h" #include "dwarf/dwarf_unwind.h" #include "dwarf/dwarf_dump.h" +#if defined(COFF_H) +# include "dwarf/dwarf_parse_coff.h" +#endif +#if defined(ELF_H) +# include "dwarf/dwarf_parse_elf.h" +#endif #endif // DWARF_INC_H diff --git a/src/dwarf/dwarf_notes.txt b/src/dwarf/dwarf_notes.txt deleted file mode 100644 index 2c02214f..00000000 --- a/src/dwarf/dwarf_notes.txt +++ /dev/null @@ -1,42 +0,0 @@ ---- DWARF NOTES --------------------------------------------------------------- - -DWARF V4 Spec: http://www.dwarfstd.org/doc/DWARF4.pdf -DWARF V5 Spec: http://www.dwarfstd.org/doc/DWARF5.pdf - -------------------------------------------------------------------------------- - -$ (2021/04/30) On .debug_pubtypes, .debug_pubnames, and .debug_names: - -.debug_pubtypes and .debug_pubnames are tables that map from a string (the name -of a type or function respectively) to an offset into .debug_info, which is the -offset of the Debug Information Entry (DIE, in DWARF terminology) of the info -associated with the string. THESE TWO SECTIONS ARE OPTIONAL. They don't show up -in every DWARF-holding file, and so they cannot be relied upon as acceleration -structures. But we're going to support parsing them, to make things a bit nicer -in cases where they are present. DWARF doesn't have much in the way of acceler- -ation structures built in, so our rationale is that we should take anything we -can get to make the format a bit more in some subset of the possible cases. - -.debug_names is a DWARF V5 section that is intended to replace .debug_pubtypes -and .debug_pubnames. However, even in cases when DWARF V5 is produced at the -time of writing this, we have not found .debug_names sections being produced. -We did not exhaustively test all compilers and configurations, but it seems -that it is not well-supported at all by major compilers, and there's a very low -probability that a user will have that section, so our current thinking is -that there's no point in supporting it right now. - -------------------------------------------------------------------------------- - -$ (2021/04/30) On producing DWARF V5 with Clang: - -https://lists.llvm.org/pipermail/llvm-dev/2018-August/125068.html - -By default it looks like (at the time of writing this) that Clang, by default, -will produce DWARF V4. To produce DWARF V5, however, you can use the -gdwarf-5 -option. Even when that option is used, it seems that some features of V5 are -not used (for example, .debug_names). - -The above link also says that this will produce .debug_names, but it doesn't as -of Clang 10. - -------------------------------------------------------------------------------- diff --git a/src/dwarf/dwarf_parse.c b/src/dwarf/dwarf_parse.c index ae6d8741..6b3f3fe5 100644 --- a/src/dwarf/dwarf_parse.c +++ b/src/dwarf/dwarf_parse.c @@ -1,3800 +1,1916 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal U64 -dw_hash_from_string(String8 string) -{ - XXH64_hash_t hash64 = XXH3_64bits(string.str, string.size); - return hash64; -} +//////////////////////////////// +//~ rjf: Basic Parsing Helpers internal U64 -str8_deserial_read_dwarf_packed_size(String8 string, U64 off, U64 *size_out) +dw2_read_initial_length(String8 data, U64 off, U64 *out, DW_Format *fmt_out) { - U64 bytes_read = 0; - if (str8_deserial_read(string, off, size_out, sizeof(U32), sizeof(U32))) { - if (*size_out == max_U32) { - if (str8_deserial_read_struct(string, off+sizeof(U32), size_out)) { - bytes_read = sizeof(U32) + sizeof(U64); - } - } else { - *size_out &= (U64)max_U32; - bytes_read = sizeof(U32); - } - } - return bytes_read; -} - -internal U64 -str8_deserial_read_dwarf_uint(String8 string, U64 off, DW_Format format, U64 *uint_out) -{ - U64 bytes_read = 0; - switch (format) { - case DW_Format_Null: break; - case DW_Format_32Bit: { - *uint_out &= (U64)max_U32; - bytes_read = str8_deserial_read(string, off, uint_out, sizeof(U32), sizeof(U32)); - } break; - case DW_Format_64Bit: { - bytes_read = str8_deserial_read_struct(string, off, uint_out); - } break; - } - return bytes_read; -} - -internal U64 -str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out) -{ - U64 value = 0; - U64 shift = 0; - U64 cursor = off; - for(;;) + DW_Format format = DW_Format_32Bit; + U64 size = 0; + U64 size_size = 0; { - U8 byte = 0; - U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); - - if(bytes_read != sizeof(byte)) + U32 size_or_header = 0; + size_size += str8_deserial_read_struct(data, off, &size_or_header); + if(size_or_header == max_U32) { - break; + size_size += str8_deserial_read_struct(data, off + size_size, &size); + format = DW_Format_64Bit; } - - U8 val = byte & 0x7fu; - value |= ((U64)val) << shift; - - cursor += bytes_read; - shift += 7u; - - if((byte & 0x80u) == 0) + else { - break; + size = (U64)size_or_header; } } - if(value_out != 0) + if(out) { - *value_out = value; + out[0] = size; } - U64 bytes_read = cursor - off; - return bytes_read; + if(fmt_out) + { + fmt_out[0] = format; + } + return size_size; } internal U64 -str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out) +dw2_read_fmt_u64(String8 data, U64 off, DW_Format format, U64 *out) { - U64 value = 0; - U64 shift = 0; - U64 cursor = off; - for(;;) + U64 start_off = off; + switch(format) { - U8 byte; - U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); - if(bytes_read != sizeof(byte)) + default: + case DW_Format_32Bit: { - break; - } - - U8 val = byte & 0x7fu; - value |= ((U64)val) << shift; - - cursor += bytes_read; - shift += 7u; - - if((byte & 0x80u) == 0) + U32 out_32 = 0; + off += str8_deserial_read_struct(data, off, &out_32); + out[0] = (U64)out_32; + }break; + case DW_Format_64Bit: { - if(shift < sizeof(value) * 8 && (byte & 0x40u) != 0) - { - value |= -(S64)(1ull << shift); - } - break; - } + off += str8_deserial_read_struct(data, off, out); + }break; } - if(value_out != 0) - { - *value_out = value; - } - U64 bytes_read = cursor - off; - return bytes_read; -} - -internal U64 -str8_deserial_read_uleb128_array(Arena *arena, String8 string, U64 off, U64 count, U64 **arr_out) -{ - Temp temp = temp_begin(arena); - - U64 *arr = push_array(arena, U64, count); - U64 i, cursor; - for (i = 0, cursor = off; i < count; ++i) { - U64 read_size = str8_deserial_read_uleb128(string, cursor, &arr[i]); - if (read_size == 0) { - break; - } - cursor += read_size; - } - - U64 bytes_read = 0; - if (i == count) { - *arr_out = arr; - bytes_read = cursor - off; - } else { - temp_end(temp); - *arr_out = 0; - } - - return bytes_read; -} - -internal U64 -str8_deserial_read_sleb128_array(Arena *arena, String8 string, U64 off, U64 count, S64 **arr_out) -{ - Temp temp = temp_begin(arena); - - S64 *arr = push_array(arena, S64, count); - U64 i, cursor; - for (i = 0, cursor = off; i < count; ++i) { - U64 read_size = str8_deserial_read_sleb128(string, cursor, &arr[i]); - if (read_size == 0) { - break; - } - cursor += read_size; - } - - U64 bytes_read = 0; - if (i == count) { - *arr_out = arr; - bytes_read = cursor - off; - } else { - temp_end(temp); - *arr_out = 0; - } - + U64 bytes_read = (off - start_off); return bytes_read; } internal DW_SectionKind dw_section_kind_from_string(String8 string) { - DW_SectionKind s = DW_Section_Null; -#define X(_K,_L,_M,_W) \ -if (str8_match_lit(_L, string, 0)) { s = DW_Section_##_K; } \ -if (str8_match_lit(_M, string, 0)) { s = DW_Section_##_K; } - DW_SectionKind_XList(X) + DW_SectionKind s = DW_SectionKind_Null; + if(0){} +#define X(name, regular_string, macho_string, dwo_string) else if(str8_match(string, s(regular_string), 0) || str8_match(string, s(macho_string), 0) || str8_match(string, s(dwo_string), 0)) { s = DW_SectionKind_##name; } + DW_SectionKind_XList #undef X return s; } -internal DW_SectionKind -dw_section_dwo_kind_from_string(String8 string) -{ - DW_SectionKind s = DW_Section_Null; -#define X(_K,_L,_M,_W) \ -if (str8_match_lit(_W, string, 0)) { s = DW_Section_##_K; } - DW_SectionKind_XList(X) -#undef X - return s; -} +//////////////////////////////// +//~ rjf: Unit Range Set Parsing (Top-Level .debug_info, .debug_aranges) -internal Rng1U64List -dw_unit_ranges_from_data(Arena *arena, String8 data) -{ - Rng1U64List result = {0}; - - for (U64 cursor = 0; cursor < data.size; ) { - // read CU size - U64 cu_size = 0; - U64 cu_size_size = str8_deserial_read_dwarf_packed_size(data, cursor, &cu_size); - - // was read ok? - if (cu_size_size == 0) { - break; - } - - if (cu_size > 0) { - // push unit range - rng1u64_list_push(arena, &result, rng_1u64(cursor, cursor+cu_size+cu_size_size)); - } - - // advance - cursor += cu_size_size; - cursor += cu_size; - } - - return result; -} - -internal U64 -dw_read_list_unit_header_addr(String8 unit_data, DW_ListUnit *lu_out) -{ - U64 header_size = 0; - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); - - if (unit_length_size) { - DW_Version version = DW_Version_Null; - U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); - - if (version_size) { - if (version >= DW_Version_5) { - U8 address_size = 0; - U64 address_size_size = str8_deserial_read_struct(unit_data, - unit_length_size + version_size, - &address_size); - - if (address_size_size && address_size) { - U8 segment_selector_size = 0; - U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, - unit_length_size + version_size + address_size_size, - &segment_selector_size); - if (segment_selector_size_size) { - header_size = unit_length_size + version_size + address_size_size + segment_selector_size_size; - - lu_out->version = version; - lu_out->segment_selector_size = segment_selector_size; - lu_out->address_size = address_size; - lu_out->entry_size = segment_selector_size + address_size; - lu_out->entries = str8_skip(unit_data, header_size); - } - } - } - } - } - - return header_size; -} - -internal U64 -dw_read_list_unit_header_str_offsets(String8 unit_data, DW_ListUnit *lu_out) -{ - U64 header_size = 0; - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); - - if (unit_length_size) { - DW_Version version = DW_Version_Null; - U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); - - if (version >= DW_Version_5) { - U16 padding = 0; - U64 padding_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size, &padding); - - if (padding_size && padding == 0) { - header_size = unit_length_size + version_size + padding_size; - - lu_out->version = version; - lu_out->address_size = 0; - lu_out->segment_selector_size = 0; - lu_out->entry_size = dw_size_from_format(DW_FormatFromSize(unit_length)); - lu_out->entries = str8_skip(unit_data, header_size); - } - } - } - - return header_size; -} - -internal U64 -dw_read_list_unit_header_list(String8 unit_data, DW_ListUnit *lu_out) -{ - U64 header_size = 0; - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, 0, &unit_length); - - if (unit_length_size) { - DW_Version version = DW_Version_Null; - U64 version_size = str8_deserial_read_struct(unit_data, unit_length_size, &version); - - if (version >= DW_Version_5) { - U8 address_size = 0; - U64 address_size_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size, &address_size); - - if (address_size_size && address_size > 0) { - U8 segment_selector_size = 0; - U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size + address_size_size, &segment_selector_size); - - if (segment_selector_size_size) { - U32 offset_entry_count = 0; - U64 offset_entry_count_size = str8_deserial_read_struct(unit_data, unit_length_size + version_size + address_size_size + segment_selector_size, &offset_entry_count); - - if (offset_entry_count_size) { - header_size = unit_length_size + version_size + address_size_size + segment_selector_size_size + offset_entry_count_size; - - lu_out->version = version; - lu_out->address_size = address_size; - lu_out->segment_selector_size = segment_selector_size; - lu_out->entry_size = dw_size_from_format(DW_FormatFromSize(unit_length)); - lu_out->entries = str8_skip(unit_data, header_size); - } - } - } - } - } - - return header_size; -} - -internal DW_ListUnitInput -dw_list_unit_input_from_input(Arena *arena, DW_Input *input) +internal Rng1U64Array +dw2_unit_ranges_from_data(Arena *arena, String8 data) { Temp scratch = scratch_begin(&arena, 1); - - DW_ListUnitInput result = {0}; - - DW_Section debug_addr = input->sec[DW_Section_Addr]; + Rng1U64List unit_range_list = {0}; + for(U64 off = 0; off < data.size;) { - String8 data = debug_addr.data; - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); + U64 start_off = off; - result.addr_ranges = rng1u64_array_from_list(arena, &unit_ranges); - result.addr_count = unit_ranges.count; - result.addrs = push_array(arena, DW_ListUnit, unit_ranges.count); + // rjf: read next unit size + U64 unit_size = 0; + U64 unit_size_size = dw2_read_initial_length(data, off, &unit_size, 0); - for (U64 unit_idx = 0; unit_idx < result.addr_ranges.count; ++unit_idx) { - String8 unit_data = str8_substr(debug_addr.data, result.addr_ranges.v[unit_idx]); - dw_read_list_unit_header_addr(unit_data, &result.addrs[unit_idx]); + // rjf: push + if(unit_size > 0) + { + rng1u64_list_push(scratch.arena, &unit_range_list, r1u64(off, off + unit_size_size + unit_size)); + } + + // rjf: advance + off += unit_size_size; + off += unit_size; + + // rjf: break if no movement + if(off == start_off) + { + break; } } - - DW_Section debug_str_offsets = input->sec[DW_Section_StrOffsets]; - { - String8 data = debug_str_offsets.data; - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); - - result.str_offset_ranges = rng1u64_array_from_list(arena, &unit_ranges); - result.str_offset_count = unit_ranges.count; - result.str_offsets = push_array(arena, DW_ListUnit, unit_ranges.count); - - for (U64 unit_idx = 0; unit_idx < result.str_offset_ranges.count; ++unit_idx) { - String8 unit_data = str8_substr(data, result.str_offset_ranges.v[unit_idx]); - dw_read_list_unit_header_str_offsets(unit_data, &result.str_offsets[unit_idx]); - } - } - - DW_Section debug_rnglists = input->sec[DW_Section_RngLists]; - { - String8 data = debug_rnglists.data; - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); - - result.rnglist_ranges = rng1u64_array_from_list(arena, &unit_ranges); - result.rnglist_count = unit_ranges.count; - result.rnglists = push_array(arena, DW_ListUnit, unit_ranges.count); - - for (U64 unit_idx = 0; unit_idx < result.rnglist_ranges.count; ++unit_idx) { - String8 unit_data = str8_substr(data, result.rnglist_ranges.v[unit_idx]); - dw_read_list_unit_header_list(unit_data, &result.rnglists[unit_idx]); - } - } - - DW_Section debug_loclists = input->sec[DW_Section_LocLists]; - { - String8 data = debug_loclists.data; - Rng1U64List unit_ranges = dw_unit_ranges_from_data(scratch.arena, data); - - result.loclist_ranges = rng1u64_array_from_list(arena, &unit_ranges); - result.loclist_count = unit_ranges.count; - result.loclists = push_array(arena, DW_ListUnit, unit_ranges.count); - - for (U64 unit_idx = 0; unit_idx < result.loclist_ranges.count; ++unit_idx) { - String8 unit_data = str8_substr(data, result.loclist_ranges.v[unit_idx]); - dw_read_list_unit_header_list(unit_data, &result.loclists[unit_idx]); - } - } - + Rng1U64Array result = rng1u64_array_from_list(arena, &unit_range_list); scratch_end(scratch); return result; } -internal U64 -dw_offset_from_list_unit(DW_ListUnit *lu, U64 index) -{ - U64 offset; - U64 entry_off = index * lu->entry_size; - if (entry_off + lu->entry_size <= lu->entries.size) { - offset = 0; - MemoryCopy(&offset, lu->entries.str + entry_off, lu->entry_size); - } else { - offset = max_U64; - } - return offset; -} +//////////////////////////////// +//~ rjf: Unit Header Parsing internal U64 -dw_addr_from_list_unit(DW_ListUnit *lu, U64 index) +dw2_read_unit_header(String8 data, U64 off, DW2_UnitHeader *out) { - U64 seg = 0; - U64 addr = max_U64; - U64 entry_count = lu->entries.size / lu->entry_size; - if (index < entry_count) { - U64 seg_off = lu->entry_size * index; - U64 addr_off = seg_off + lu->segment_selector_size; - MemoryCopy(&seg, lu->entries.str + seg_off, lu->segment_selector_size); - MemoryCopy(&addr, lu->entries.str + addr_off, lu->address_size); - // TODO: segment-based addressing - AssertAlways(seg == 0); - } else { - Assert(!"out of bounds index"); - } - return addr; -} - -internal U64 -dw_read_abbrev_tag(String8 data, U64 offset, DW_Abbrev *out_abbrev) -{ - U64 total_bytes_read = 0; + U64 start_off = off; - //- rjf: parse ID - U64 id_off = offset; - U64 sub_kind_off = id_off; - U64 id = 0; + // rjf: read unit's .debug_info range size / format + U64 unit_info_size = 0; + DW_Format format = DW_Format_32Bit; + off += dw2_read_initial_length(data, off, &unit_info_size, &format); + + // rjf: read dwarf version + DW_Version version = 0; + off += str8_deserial_read_struct(data, off, &version); + + // rjf: read header properties + U64 abbrev_off = max_U64; + U64 addr_size = 0; + DW_CompUnitKind kind = DW_CompUnitKind_Reserved; + U64 dwo_id = 0; + switch((DW_VersionEnum)version) { - U64 bytes_read = str8_deserial_read_uleb128(data, id_off, &id); - sub_kind_off += bytes_read; - total_bytes_read += bytes_read; - } - - //- rjf: parse sub-kind - U64 sub_kind = 0; - U64 next_off = sub_kind_off; - if(id != 0) - { - U64 bytes_read = str8_deserial_read_uleb128(data, sub_kind_off, &sub_kind); - next_off += bytes_read; - total_bytes_read += bytes_read; - } - - //- rjf: parse whether this tag has children - U8 has_children = 0; - if(id != 0) - { - total_bytes_read += str8_deserial_read_struct(data, next_off, &has_children); - } - - //- rjf: fill abbrev - if(out_abbrev != 0) - { - DW_Abbrev abbrev = {0}; - abbrev.kind = DW_Abbrev_Tag; - abbrev.sub_kind = sub_kind; - abbrev.id = id; - if(has_children) - { - abbrev.flags |= DW_AbbrevFlag_HasChildren; - } - *out_abbrev = abbrev; - } - - return total_bytes_read; -} - -internal U64 -dw_read_abbrev_attrib(String8 data, U64 offset, DW_Abbrev *out_abbrev) -{ - U64 total_bytes_read = 0; - - //- rjf: parse ID - U64 id_off = offset; - U64 sub_kind_off = id_off; - U64 id = 0; - { - U64 bytes_read = str8_deserial_read_uleb128(data, id_off, &id); - sub_kind_off += bytes_read; - total_bytes_read += bytes_read; - } - - //- rjf: parse sub-kind (form-kind) - U64 sub_kind = 0; - U64 next_off = sub_kind_off; - { - U64 bytes_read = str8_deserial_read_uleb128(data, sub_kind_off, &sub_kind); - next_off += bytes_read; - total_bytes_read += bytes_read; - } - - //- rjf: parse implicit const - U64 implicit_const = 0; - if(sub_kind == DW_Form_ImplicitConst) - { - U64 bytes_read = str8_deserial_read_uleb128(data, next_off, &implicit_const); - total_bytes_read += bytes_read; - } - - //- rjf: fill abbrev - if(out_abbrev != 0) - { - DW_Abbrev abbrev = {0}; - abbrev.kind = DW_Abbrev_Attrib; - abbrev.sub_kind = sub_kind; - abbrev.id = id; - if(sub_kind == DW_Form_ImplicitConst) - { - abbrev.flags |= DW_AbbrevFlag_HasImplicitConst; - abbrev.const_value = implicit_const; - } - *out_abbrev = abbrev; - } - - return total_bytes_read; -} - -internal DW_AbbrevTable -dw_make_abbrev_table(Arena *arena, String8 abbrev_data, U64 abbrev_offset) -{ - //- rjf: count the tags we have - U64 tag_count = 0; - for(U64 abbrev_read_off = abbrev_offset;;) - { - DW_Abbrev tag; - { - U64 bytes_read = dw_read_abbrev_tag(abbrev_data, abbrev_read_off, &tag); - abbrev_read_off += bytes_read; - if(bytes_read == 0 || tag.id == 0) - { - break; - } - } - for(;;) - { - DW_Abbrev attrib = {0}; - U64 bytes_read = dw_read_abbrev_attrib(abbrev_data, abbrev_read_off, &attrib); - abbrev_read_off += bytes_read; - if(bytes_read == 0 || attrib.id == 0) - { - break; - } - } - tag_count += 1; - } - - //- rjf: build table - DW_AbbrevTable table = {0}; - table.count = tag_count; - table.entries = push_array(arena, DW_AbbrevTableEntry, table.count); - MemorySet(table.entries, 0, sizeof(DW_AbbrevTableEntry)*table.count); - - U64 tag_idx = 0; - for(U64 abbrev_read_off = abbrev_offset;;) - { - U64 tag_abbrev_off = abbrev_read_off; + case DW_Version_Null: + case DW_Version_1: + {}break; - DW_Abbrev tag; + // rjf: @dwarf2 + case DW_Version_2: { - U64 bytes_read = dw_read_abbrev_tag(abbrev_data, abbrev_read_off, &tag); - abbrev_read_off += bytes_read; - if(bytes_read == 0 || tag.id == 0) + // rjf: read abbrev off + U32 abbrev_off_32 = 0; + off += str8_deserial_read_struct(data, off, &abbrev_off_32); + abbrev_off = (U64)abbrev_off_32; + + // rjf: read address size + U8 addr_size_8 = 0; + off += str8_deserial_read_struct(data, off, &addr_size_8); + addr_size = (U64)addr_size_8; + }break; + + // rjf: @dwarf3 @dwarf4 + case DW_Version_3: + case DW_Version_4: + { + // rjf: read abbrev off + off += dw2_read_fmt_u64(data, off, format, &abbrev_off); + + // rjf: read address size + U8 addr_size_8 = 0; + off += str8_deserial_read_struct(data, off, &addr_size_8); + addr_size = (U64)addr_size_8; + }break; + + // rjf: @dwarf5 + case DW_Version_5: + { + // rjf: read unit kind + U8 comp_unit_kind_8 = 0; + off += str8_deserial_read_struct(data, off, &comp_unit_kind_8); + kind = (DW_CompUnitKind)comp_unit_kind_8; + + // rjf: read address size + U8 addr_size_8 = 0; + off += str8_deserial_read_struct(data, off, &addr_size_8); + addr_size = (U64)addr_size_8; + + // rjf: read abbrev off + off += dw2_read_fmt_u64(data, off, format, &abbrev_off); + + // rjf: read DWO ID, if applicable + if(kind == DW_CompUnitKind_Skeleton || + kind == DW_CompUnitKind_SplitCompile || + kind == DW_CompUnitKind_SplitType) { - break; + off += str8_deserial_read_struct(data, off, &dwo_id); } - } - - // rjf: insert this tag into the table - { - table.entries[tag_idx].id = tag.id; - table.entries[tag_idx].off = tag_abbrev_off; - tag_idx += 1; - } - - for(;;) - { - DW_Abbrev attrib = {0}; - U64 bytes_read = dw_read_abbrev_attrib(abbrev_data, abbrev_read_off, &attrib); - abbrev_read_off += bytes_read; - if(bytes_read == 0 || attrib.id == 0) - { - break; - } - } - tag_count += 1; + }break; } - return table; -} - -internal U64 -dw_abbrev_offset_from_abbrev_id(DW_AbbrevTable table, U64 abbrev_id) -{ - U64 abbrev_offset = max_U64; - if (table.count > 0) { - for (S64 l = 0, r = (S64)table.count - 1; l <= r; ) { - S64 m = l + (r - l) / 2; - if (abbrev_id > table.entries[m].id) { - l = m + 1; - } else if (abbrev_id < table.entries[m].id) { - r = m - 1; - } else { - abbrev_offset = table.entries[m].off; - break; - } - } - } - return abbrev_offset; -} - -internal U64 -dw_read_form(String8 data, - U64 off, - DW_Version version, - DW_Format unit_format, - U64 address_size, - DW_FormKind form_kind, - U64 implicit_const, - DW_Form *form_out) -{ - U64 bytes_read = 0; - DW_Form form = {0}; - - switch (form_kind) { - case DW_Form_Null: break; - - case DW_Form_Addr: { - bytes_read = str8_deserial_read_block(data, off, address_size, &form.addr); - } break; - case DW_Form_Block2: { - U16 size = 0; - U64 size_size = str8_deserial_read_struct(data, off, &size); - if (size_size) { - U64 block_size = str8_deserial_read_block(data, off + size_size, size, &form.block); - if (block_size) { - bytes_read = size_size + block_size; - } - } - } break; - case DW_Form_Block4: { - U32 size = 0; - U64 size_size = str8_deserial_read_struct(data, off, &size); - if (size_size) { - U64 block_size = str8_deserial_read_block(data, off + size_size, size, &form.block); - if (block_size) { - bytes_read = size_size + block_size; - } - } - } break; - case DW_Form_Data2: { - bytes_read = str8_deserial_read_block(data, off, sizeof(U16), &form.data); - } break; - case DW_Form_Data4: { - bytes_read = str8_deserial_read_block(data, off, sizeof(U32), &form.data); - } break; - case DW_Form_Data8: { - bytes_read = str8_deserial_read_block(data, off, sizeof(U64), &form.data); - } break; - case DW_Form_String: { - bytes_read = str8_deserial_read_cstr(data, off, &form.string); - } break; - case DW_Form_Block: { - U64 size = 0; - U64 size_size = str8_deserial_read_uleb128(data, off, &size); - if (size_size) { - U64 block_size = str8_deserial_read_block(data, off + size_size, size, &form.block); - if (block_size) { - bytes_read = size_size + block_size; - } - } - } break; - case DW_Form_Block1: { - U8 size = 0; - U64 size_size = str8_deserial_read_struct(data, off, &size); - if (size_size) { - U64 block_size = str8_deserial_read_block(data, off, size, &form.block); - if (block_size == size) { - bytes_read = size_size + block_size; - } - } - } break; - case DW_Form_Data1: { - bytes_read = str8_deserial_read_block(data, off, sizeof(U8), &form.data); - } break; - case DW_Form_Flag: { - bytes_read = str8_deserial_read_struct(data, off, &form.flag); - } break; - case DW_Form_SData: { - bytes_read = str8_deserial_read_sleb128(data, off, &form.sdata); - } break; - case DW_Form_UData: { - bytes_read = str8_deserial_read_uleb128(data, off, &form.udata); - } break; - case DW_Form_RefAddr: { - if (version < DW_Version_3) { - bytes_read = str8_deserial_read(data, off, &form.ref, address_size, address_size); - } else { - bytes_read = str8_deserial_read_dwarf_uint(data, off, unit_format, &form.ref); - } - } break; - case DW_Form_GNU_RefAlt: { - bytes_read = str8_deserial_read_dwarf_uint(data, off, unit_format, &form.ref); - } break; - case DW_Form_Ref1: { - bytes_read = str8_deserial_read(data, off, &form.ref, 1, 1); - } break; - case DW_Form_Ref2: { - bytes_read = str8_deserial_read(data, off, &form.ref, 2, 2); - } break; - case DW_Form_Ref4: { - bytes_read = str8_deserial_read(data, off, &form.ref, 4, 4); - } break; - case DW_Form_Ref8: { - bytes_read = str8_deserial_read(data, off, &form.ref, 8, 8); - } break; - case DW_Form_RefUData: { - bytes_read = str8_deserial_read_uleb128(data, off, &form.ref); - } break; - case DW_Form_SecOffset: - case DW_Form_LineStrp: - case DW_Form_GNU_StrpAlt: - case DW_Form_Strp: { - bytes_read = str8_deserial_read_dwarf_uint(data, off, unit_format, &form.sec_offset); - } break; - case DW_Form_ExprLoc: { - U64 expr_size = 0; - U64 expr_size_size = str8_deserial_read_uleb128(data, off, &expr_size); - if (expr_size_size) { - if (str8_deserial_read_block(data, off + expr_size_size, expr_size, &form.exprloc)) { - bytes_read = expr_size_size + expr_size; - } - } - } break; - case DW_Form_FlagPresent: { - form.flag = 1; - } break; - case DW_Form_RefSig8: { - //U64 ref = 0; - //bytes_read = str8_deserial_read_struct(data, off, &ref); - NotImplemented; - } break; - case DW_Form_Addrx: - case DW_Form_RngListx: - case DW_Form_Strx: { - bytes_read = str8_deserial_read_uleb128(data, off, &form.xval); - } break; - case DW_Form_RefSup4: { - //U32 ref_sup4 = 0; - //bytes_read = str8_deserial_read_struct(data, off, &ref_sup4); - NotImplemented; - } break; - case DW_Form_StrpSup: { - bytes_read = str8_deserial_read_dwarf_uint(data, off, unit_format, &form.strp_sup); - } break; - case DW_Form_Data16: { - bytes_read = str8_deserial_read_block(data, off, 16, &form.data); - } break; - case DW_Form_ImplicitConst: { - // Special case. - // Unlike other forms that have their values stored in the .debug_info section, - // This one defines it's value in the .debug_abbrev section. - form.implicit_const = implicit_const; - } break; - case DW_Form_LocListx: { - bytes_read = str8_deserial_read_uleb128(data, off, &form.xval); - } break; - case DW_Form_RefSup8: { - NotImplemented; - } break; - case DW_Form_Strx1: { - bytes_read = str8_deserial_read(data, off, &form.xval, 1, 1); - } break; - case DW_Form_Strx2: { - bytes_read = str8_deserial_read(data, off, &form.xval, 2, 2); - } break; - case DW_Form_Strx3: { - bytes_read = str8_deserial_read(data, off, &form.xval, 3, 3); - } break; - case DW_Form_Strx4: { - bytes_read = str8_deserial_read(data, off, &form.xval, 4, 4); - } break; - case DW_Form_Addrx1: { - bytes_read = str8_deserial_read(data, off, &form.xval, 1, 1); - } break; - case DW_Form_Addrx2: { - bytes_read = str8_deserial_read(data, off, &form.xval, 2, 2); - } break; - case DW_Form_Addrx3: { - bytes_read = str8_deserial_read(data, off, &form.xval, 3, 3); - } break; - case DW_Form_Addrx4: { - bytes_read = str8_deserial_read(data, off, &form.xval, 4, 4); - } break; - default: InvalidPath; break; - } - - if (form_out) { - *form_out = form; - } + // rjf: fill + out->version = version; + out->format = format; + out->abbrev_off = abbrev_off; + out->addr_size = addr_size; + out->kind = kind; + out->dwo_id = dwo_id; + // rjf: return # of bytes read + U64 bytes_read = (off - start_off); return bytes_read; } -internal U64 -dw_read_tag(Arena *arena, - String8 tag_data, - U64 tag_off, - U64 tag_base, - DW_AbbrevTable abbrev_table, - String8 abbrev_data, - DW_Version version, - DW_Format unit_format, - U64 address_size, - DW_Tag *tag_out) -{ - U64 tag_cursor = tag_off; - - // read tag abbrev id - U64 tag_abbrev_id = 0; - U64 tag_abbrev_id_size = str8_deserial_read_uleb128(tag_data, tag_cursor, &tag_abbrev_id); - Assert(tag_abbrev_id_size); - tag_cursor += tag_abbrev_id_size; - - // read tag abbrev - U64 abbrev_cursor = dw_abbrev_offset_from_abbrev_id(abbrev_table, tag_abbrev_id); - DW_Abbrev tag_abbrev = {0}; - U64 tag_abbrev_size = dw_read_abbrev_tag(abbrev_data, abbrev_cursor, &tag_abbrev); - - // read attribs - DW_AttribList attribs = {0}; - if (tag_abbrev_size > 0) { - abbrev_cursor += tag_abbrev_size; - - for (; tag_cursor < tag_data.size && abbrev_cursor < abbrev_data.size; ) { - U64 attrib_tag_cursor = tag_cursor; - U64 attrib_abbrev_off = abbrev_cursor; - - // read attrib abbrev - DW_Abbrev attrib_abbrev = {0}; - abbrev_cursor += dw_read_abbrev_attrib(abbrev_data, abbrev_cursor, &attrib_abbrev); - if (attrib_abbrev.id == 0) { - break; - } - - DW_AttribKind attrib_kind = (DW_AttribKind)attrib_abbrev.id; - DW_FormKind form_kind = (DW_FormKind)attrib_abbrev.sub_kind; - - // special case, allows producer to embed form in .debug_info - if (form_kind == DW_Form_Indirect) { - U64 form_kind_size = str8_deserial_read_uleb128(tag_data, tag_cursor, &form_kind); - - if (form_kind_size == 0) { - Assert(!"unable to read indirect form kind"); - break; - } - - tag_cursor += form_kind_size; - } - - // read form value - DW_Form form = {0}; - tag_cursor += dw_read_form(tag_data, tag_cursor, version, unit_format, address_size, form_kind, attrib_abbrev.const_value, &form); - - // fill out node - DW_AttribNode *attrib_n = push_array(arena, DW_AttribNode, 1); - attrib_n->v.info_off = tag_base + attrib_tag_cursor; - attrib_n->v.abbrev_off = attrib_abbrev_off; - attrib_n->v.abbrev_id = attrib_abbrev.id; - attrib_n->v.attrib_kind = attrib_kind; - attrib_n->v.form_kind = form_kind; - attrib_n->v.form = form; - - // push node to list - SLLQueuePush(attribs.first, attribs.last, attrib_n); - ++attribs.count; - } - } - - // fill out tag - tag_out->abbrev_id = tag_abbrev_id; - tag_out->has_children = !!(tag_abbrev.flags & DW_AbbrevFlag_HasChildren); - tag_out->kind = (DW_TagKind)tag_abbrev.sub_kind; - tag_out->attribs = attribs; - tag_out->info_off = tag_base + tag_off; - - U64 bytes_read = tag_cursor - tag_off; - return bytes_read; -} +//////////////////////////////// +//~ rjf: Abbreviation Map Parsing internal U64 -dw_read_tag_cu(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 info_off, DW_Tag *tag_out) +dw2_read_abbrev(Arena *arena, String8 data, U64 off, DW2_AbbrevHeader *header_out, DW2_AbbrevAttribList *attribs_out) { - String8 tag_data = str8_substr(input->sec[DW_Section_Info].data, cu->info_range); - U64 tag_off = info_off - cu->info_range.min; - return dw_read_tag(arena, tag_data, tag_off, cu->info_range.min, cu->abbrev_table, cu->abbrev_data, cu->version, cu->format, cu->address_size, tag_out); -} - -internal B32 -dw_try_u64_from_const_value(U64 type_byte_size, DW_ATE type_encoding, String8 const_value, U64 *value_out) -{ - B32 is_parsed = 0; - if (const_value.size <= type_byte_size) { - U64 value_size = Min(type_byte_size, const_value.size); - if (value_size <= sizeof(*value_out)) { - MemoryZeroStruct(value_out); - MemoryCopy(value_out, const_value.str, value_size); - if (type_encoding == DW_ATE_Signed || type_encoding == DW_ATE_SignedChar) { - *value_out = extend_sign64(*value_out, value_size); - } - is_parsed = 1; - } else { - Assert(!"out value overflow"); - } - } - return is_parsed; -} - -internal U64 -dw_u64_from_const_value(String8 const_value) -{ - U64 result = 0; - B32 is_converted = dw_try_u64_from_const_value(sizeof(U64), DW_ATE_Unsigned, const_value, &result); - Assert(is_converted); // TODO: error handling - return result; -} - -internal U64 -dw_interp_sec_offset(DW_FormKind form_kind, DW_Form form) -{ - U64 sec_offset = 0; - if (form_kind == DW_Form_SecOffset) { - sec_offset = form.sec_offset; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return sec_offset; -} - -internal String8 -dw_interp_exprloc(DW_FormKind form_kind, DW_Form form) -{ - String8 expr = {0}; - if (form_kind == DW_Form_ExprLoc) { - expr = form.exprloc; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return expr; -} - -internal U128 -dw_interp_const_u128(DW_FormKind form_kind, DW_Form form) -{ - AssertAlways(form.data.size <= sizeof(U128)); - U128 result = {0}; - MemoryCopy(&result.u64[0], form.data.str, form.data.size); - return result; -} - -internal U64 -dw_interp_const64(U64 type_byte_size, DW_ATE type_encoding, DW_FormKind form_kind, DW_Form form) -{ - U64 result = max_U64; - if (form_kind == DW_Form_Data1 || form_kind == DW_Form_Data2 || form_kind == DW_Form_Data4 || form_kind == DW_Form_Data8 || form_kind == DW_Form_Data16) { - if (form.data.size <= sizeof(result)) { - if (!dw_try_u64_from_const_value(type_byte_size, type_encoding, form.data, &result)) { - Assert(!"unable to decode data"); - } - } else { - Assert(!"unable to cast U128 to U64"); - } - } else if (form_kind == DW_Form_UData) { - result = form.udata; - } else if (form_kind == DW_Form_SData) { - result = form.sdata; - } else if (form_kind == DW_Form_ImplicitConst) { - result = form.implicit_const; - } else if (form_kind == DW_Form_Null) { - // skip - } else { - AssertAlways(!"unexpected form"); - } - return result; -} - -internal U64 -dw_interp_const_u64(DW_FormKind form_kind, DW_Form form) -{ - return dw_interp_const64(sizeof(U64), DW_ATE_Unsigned, form_kind, form); -} - -internal U32 -dw_interp_const_u32(DW_FormKind form_kind, DW_Form form) -{ - U64 const64 = dw_interp_const_u64(form_kind, form); - U32 const32 = safe_cast_u32(const64); - return const32; -} - -internal S64 -dw_interp_const_s64(DW_FormKind form_kind, DW_Form form) -{ - U64 const_u64 = dw_interp_const_u64(form_kind, form); - S64 const_s64 = (S64)const_u64; - return const_s64; -} - -internal S32 -dw_interp_const_s32(DW_FormKind form_kind, DW_Form form) -{ - U32 const_u32 = dw_interp_const_u32(form_kind, form); - S32 const_s32 = (S32)const_u32; - return const_s32; -} - -internal U64 -dw_interp_address(U64 address_size, U64 base_addr, DW_ListUnit *addr_lu, DW_FormKind form_kind, DW_Form form) -{ - U64 address = 0; - if (form_kind == DW_Form_Addr) { - if (!dw_try_u64_from_const_value(address_size, DW_ATE_Address, form.addr, &address)) { - AssertAlways(!"unable to decode address"); - } - } else if (form_kind == DW_Form_Addrx || form_kind == DW_Form_Addrx1 || form_kind == DW_Form_Addrx2 || - form_kind == DW_Form_Addrx3 || form_kind == DW_Form_Addrx4) { - address = dw_addr_from_list_unit(addr_lu, form.xval); - } else if (form_kind == DW_Form_SecOffset) { - if (addr_lu->segment_selector_size > 0) { - AssertAlways(!"TODO: support for segmented address space"); - } - if (form.sec_offset + addr_lu->segment_selector_size + addr_lu->address_size <= addr_lu->entries.size) { - MemoryCopy(&address, addr_lu->entries.str + form.sec_offset, addr_lu->address_size); - } else { - Assert(!"out of bounds .debug_addr offset"); - } - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return address; -} - -internal String8 -dw_interp_block(DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form) -{ - NotImplemented; - return str8_zero(); -} - -internal String8 -dw_interp_string(DW_Input *input, - DW_Format unit_format, - DW_ListUnit *str_offsets, - DW_FormKind form_kind, - DW_Form form) -{ - String8 string = {0}; - if (form_kind == DW_Form_String) { - string = form.string; - } else if (form_kind == DW_Form_Strp) { - U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, form.sec_offset, &string); - Assert(bytes_read > 0); - } else if (form_kind == DW_Form_LineStrp) { - U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_LineStr].data, form.sec_offset, &string); - Assert(bytes_read > 0); - } else if (form_kind == DW_Form_StrpSup) { - U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, form.strp_sup, &string); - Assert(bytes_read > 0); - } else if (form_kind == DW_Form_Strx || form_kind == DW_Form_Strx1 || - form_kind == DW_Form_Strx2 || form_kind == DW_Form_Strx3 || - form_kind == DW_Form_Strx4) { - U64 sec_offset = dw_offset_from_list_unit(str_offsets, form.xval); - if (sec_offset < input->sec[DW_Section_Str].data.size) { - U64 bytes_read = str8_deserial_read_cstr(input->sec[DW_Section_Str].data, sec_offset, &string); - Assert(bytes_read > 0); - } else { - AssertAlways(!"unable to translate index to offset"); - } - } else if (form_kind == DW_Form_GNU_StrpAlt) { - NotImplemented; - } else if (form_kind == DW_Form_GNU_StrIndex) { - NotImplemented; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return string; -} - -internal String8 -dw_interp_line_ptr(DW_Input *input, DW_FormKind form_kind, DW_Form form) -{ - String8 result = {0}; - if (form_kind == DW_Form_SecOffset) { - result = str8_skip(input->sec[DW_Section_Line].data, form.sec_offset); - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return result; -} - -internal DW_LineFile * -dw_interp_file(DW_LineVMHeader *line_vm, DW_FormKind form_kind, DW_Form form) -{ - DW_LineFile *result = 0; - U64 file_idx = dw_interp_const_u64(form_kind, form); - if (file_idx < line_vm->file_table.count) { - result = &line_vm->file_table.v[file_idx]; - } else { - Assert(!"out of bounds file index"); - } - return result; -} - -internal DW_Reference -dw_interp_ref(DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form) -{ - DW_Reference ref = {0}; - if (form_kind == DW_Form_Ref1 || form_kind == DW_Form_Ref2 || - form_kind == DW_Form_Ref4 || form_kind == DW_Form_Ref8 || - form_kind == DW_Form_RefUData) { - ref.cu = cu; - ref.info_off = form.ref; - } else if (form_kind == DW_Form_RefAddr) { - NotImplemented; - } else if (form_kind == DW_Form_RefSig8) { - NotImplemented; - } else if (form_kind == DW_Form_RefSup4 || form_kind == DW_Form_RefSup8) { - NotImplemented; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return ref; -} - -internal DW_LocList -dw_interp_loclist(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form) -{ - DW_LocList loclist = {0}; + U64 start_off = off; - if (cu->version < DW_Version_5) { - if (form_kind == DW_Form_SecOffset) { - U64 sec_offset = max_U64; - if (form_kind == DW_Form_SecOffset) { - sec_offset = form.sec_offset; - } else if (form_kind == DW_Form_Data8 || form_kind == DW_Form_Data4 || - form_kind == DW_Form_Data2 || form_kind == DW_Form_Data1) { - if (!dw_try_u64_from_const_value(form.data.size, DW_ATE_Unsigned, form.data, &sec_offset)) { - Assert(!"unable to extract section offset"); - } - } else if (form_kind == DW_Form_Null) { - Assert(!"unexpected form"); - } - - String8 sec = str8_skip(input->sec[DW_Section_Loc].data, sec_offset); - U64 base_addr = cu->low_pc; - U64 base_sel = DW_SentinelFromSize(cu->address_size); - for (U64 cursor = 0; cursor < sec.size; ) { - U64 range_min = 0; - U64 range_min_off = cursor; - U64 range_min_size = str8_deserial_read(sec, range_min_off, &range_min, cu->address_size, cu->address_size); - if (range_min_size == 0) { - break; - } - U64 range_max = 0; - U64 range_max_off = cursor + cu->address_size; - U64 range_max_size = str8_deserial_read(sec, range_max_off, &range_max, cu->address_size, cu->address_size); - if (range_max_size == 0) { - break; - } - cursor += cu->address_size * 2; - - // series terminator - if (range_min == 0 && range_max == 0) { - break; - } - // set new base address - else if (range_min == base_sel) { - base_addr = range_max; - } - // location - else { - U16 expr_size = 0; - U64 expr_size_size = str8_deserial_read_struct(sec, cursor, &expr_size); - if (expr_size_size == 0) { - Assert(!"unable to read expression size"); - break; - } - cursor += expr_size_size; - - Assert(cursor + expr_size <= sec.size); - Rng1U64 expr_range = rng_1u64(cursor, ClampTop(cursor + expr_size, sec.size)); - - DW_LocNode *loc_n = push_array(arena, DW_LocNode, 1); - loc_n->v.range = rng_1u64(base_addr + range_min, base_addr + range_max); - loc_n->v.expr = str8_substr(sec, expr_range); - - SLLQueuePush(loclist.first, loclist.last, loc_n); - ++loclist.count; - - // advance past expression - cursor += expr_size; - } - } - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - } else { - DW_Version version = DW_Version_Null; - String8 raw_lle = {0}; - if (form_kind == DW_Form_SecOffset) { - // offset is from beginning of the section - U64 sec_offset = form.sec_offset; - raw_lle = str8_skip(input->sec[DW_Section_LocLists].data, sec_offset); - } else if (form_kind == DW_Form_LocListx) { - // offset is from beginning of the entries - U64 entries_off = dw_offset_from_list_unit(cu->loclists_lu, form.xval); - raw_lle = str8_skip(cu->loclists_lu->entries, entries_off); - version = cu->loclists_lu->version; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - - for (U64 cursor = 0, keep_parsing = 1, base_addr = cu->low_pc; - cursor < raw_lle.size && keep_parsing; ) { - DW_LLE kind = DW_LLE_EndOfList; - cursor += str8_deserial_read_struct(raw_lle, cursor, &kind); - - Rng1U64 range = {0}; - switch (kind) { - default: - Assert(!"unknown kind"); - case DW_LLE_EndOfList: { - keep_parsing = 0; - } break; - case DW_LLE_BaseAddressx: { - if (!cu->addr_lu) { - keep_parsing = 0; - break; - } - - U64 addrx = 0; - U64 addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &addrx); - if (addrx_size == 0) { - keep_parsing = 0; - break; - } - - U64 base_addr_new = dw_addr_from_list_unit(cu->addr_lu, addrx); - if (base_addr_new == max_U64) { - InvalidPath; - break; - } - - base_addr = base_addr_new; - cursor += addrx_size; - } break; - case DW_LLE_StartxEndx: { - U64 start_addrx = 0; - U64 start_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &start_addrx); - if (start_addrx_size == 0) { - keep_parsing = 0; - break; - } - U64 end_addrx = 0; - U64 end_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor + start_addrx_size, &end_addrx); - if (end_addrx_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_addrx_size; - cursor += end_addrx_size; - - U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); - U64 end = dw_addr_from_list_unit(cu->addr_lu, end_addrx); - Assert(start != max_U64); - Assert(end != max_U64); - - range = rng_1u64(start, end); - } break; - case DW_LLE_StartxLength: { - U64 start_addrx = 0; - U64 start_addrx_size = str8_deserial_read_uleb128(raw_lle, cursor, &start_addrx); - if (start_addrx_size == 0) { - keep_parsing = 0; - break; - } - - // parse pre-standard & standard length - U64 length_off = cursor + start_addrx_size; - U64 length = 0; - U64 length_size = str8_deserial_read_uleb128(raw_lle, length_off, &length); - if (length_size == 0) { - keep_parsing = 0; - break; - } - - cursor += start_addrx_size; - cursor += length_size; - - if (cu->addr_lu) { - U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); - Assert(start < max_U64); - - range = rng_1u64(start, start + length); - } else { - Assert(!".debug_addr section is missing -- unable to interpret address index"); - } - } break; - case DW_LLE_OffsetPair: { - U64 start = 0; - U64 start_size = str8_deserial_read_uleb128(raw_lle, cursor, &start); - if (start_size == 0) { - keep_parsing = 0; - break; - } - U64 end = 0; - U64 end_size = str8_deserial_read_uleb128(raw_lle, cursor + start_size, &end); - if (end_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_size; - cursor += end_size; - - range = rng_1u64(base_addr + start, base_addr + end); - } break; - case DW_LLE_DefaultLocation: { - // no range - int x = 0; - } break; - case DW_LLE_BaseAddress: { - U64 base_addr_size = str8_deserial_read(raw_lle, cursor, &base_addr, cu->address_size, cu->address_size); - if (base_addr_size == 0) { - keep_parsing = 0; - break; - } - cursor += base_addr_size; - } break; - case DW_LLE_StartEnd: { - U64 start = 0; - U64 start_size = str8_deserial_read(raw_lle, cursor, &start, cu->address_size, cu->address_size); - if (start_size == 0) { - keep_parsing = 0; - break; - } - - U64 end = 0; - U64 end_size = str8_deserial_read(raw_lle, cursor + start_size, &end, cu->address_size, cu->address_size); - if (end_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_size; - cursor += end_size; - - range = rng_1u64(start, end); - } break; - case DW_LLE_StartLength: { - U64 start = 0; - U64 start_size = str8_deserial_read(raw_lle, cursor, &start, cu->address_size, cu->address_size); - if (start_size == 0) { - keep_parsing = 0; - break; - } - U64 length = 0; - U64 length_size = str8_deserial_read_uleb128(raw_lle, cursor + start_size, &length); - if (length_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_size; - cursor += length_size; - - range = rng_1u64(start, start + length); - } break; - } - - B32 has_expr = keep_parsing && kind != DW_LLE_BaseAddressx && kind != DW_LLE_BaseAddress; - if (has_expr) { - U64 expr_size = 0; - U64 expr_size_size = str8_deserial_read_uleb128(raw_lle, cursor, &expr_size); - if (expr_size_size == 0) { - keep_parsing = 0; - break; - } - - String8 expr = {0}; - U64 expr_read_size = str8_deserial_read_block(raw_lle, cursor + expr_size_size, expr_size, &expr); - if (expr_read_size != expr_size) { - keep_parsing = 0; - break; - } - - cursor += expr_size_size; - cursor += expr_size; - - DW_LocNode *loc_n = push_array(arena, DW_LocNode, 1); - loc_n->v.range = range; - loc_n->v.expr = expr; - - SLLQueuePush(loclist.first, loclist.last, loc_n); - ++loclist.count; - } - } - } - - return loclist; -} - -internal B32 -dw_interp_flag(DW_FormKind form_kind, DW_Form form) -{ - B32 flag = 0; - if (form_kind == DW_Form_Flag || form_kind == DW_Form_FlagPresent) { - flag = form.flag; - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - return flag; -} - -internal Rng1U64List -dw_interp_rnglist(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form) -{ - Rng1U64List rnglist = {0}; - - if (cu->version < DW_Version_5) { - // decode section offset - U64 sec_offset = max_U64; - if (form_kind == DW_Form_SecOffset) { - sec_offset = form.sec_offset; - } else if (form_kind == DW_Form_Data8 || form_kind == DW_Form_Data4 || - form_kind == DW_Form_Data2 || form_kind == DW_Form_Data1) { - if (!dw_try_u64_from_const_value(form.data.size, DW_ATE_Unsigned, form.data, &sec_offset)) { - Assert(!"unable to extract section offset"); - } - } else if (form_kind != DW_Form_Null) { - Assert(!"unexpected form"); - } - - String8 sec = str8_skip(input->sec[DW_Section_Ranges].data, sec_offset); - U64 base_addr = cu->low_pc; - U64 base_sel = DW_SentinelFromSize(cu->address_size); - for (U64 cursor = 0; cursor < sec.size; ) { - U64 range_min = 0; - U64 range_min_off = cursor; - U64 range_min_size = str8_deserial_read(sec, range_min_off, &range_min, cu->address_size, cu->address_size); - if (range_min_size == 0) { - break; - } - U64 range_max = 0; - U64 range_max_off = cursor + cu->address_size; - U64 range_max_size = str8_deserial_read(sec, range_max_off, &range_max, cu->address_size, cu->address_size); - if (range_max_size == 0) { - break; - } - cursor += cu->address_size * 2; - - // series terminator - if (range_min == 0 && range_max == 0) { - break; - } - // set new base address - else if (range_min == base_sel) { - base_addr = range_max; - } - // range - else { - Rng1U64 range = rng_1u64(base_addr + range_min, base_addr + range_max); - rng1u64_list_push(arena, &rnglist, range); - } - } - } else { - String8 raw_rle = {0}; - if (form_kind == DW_Form_SecOffset) { - // offset is from beginning of the section - U64 sec_offset = form.sec_offset; - raw_rle = str8_skip(input->sec[DW_Section_RngLists].data, sec_offset); - } else if (form_kind == DW_Form_RngListx) { - // offset is from beginning of the entries - U64 sec_offset = dw_offset_from_list_unit(cu->rnglists_lu, form.xval); - raw_rle = str8_skip(cu->rnglists_lu->entries, sec_offset); - } else if (form_kind != DW_Form_Null) { - AssertAlways(!"unexpected form"); - } - - U64 rle_invalid_value = DW_SentinelFromSize(cu->address_size); - U64 base_addr = cu->low_pc; - for (U64 cursor = 0, keep_parsing = 1; cursor < raw_rle.size && keep_parsing; ) { - DW_RLE kind = DW_RLE_EndOfList; - cursor += str8_deserial_read_struct(raw_rle, cursor, &kind); - - Rng1U64 range = rng_1u64(rle_invalid_value, rle_invalid_value); - switch (kind) { - default: - case DW_RLE_EndOfList: { - keep_parsing = 0; - } break; - case DW_RLE_BaseAddressx: { - U64 addrx = 0; - U64 addrx_size = str8_deserial_read_uleb128(raw_rle, cursor, &addrx); - if (addrx_size == 0) { - keep_parsing = 0; - break; - } - if (cu->addr_lu == 0) { - keep_parsing = 0; - break; - } - U64 base_addr_new = dw_addr_from_list_unit(cu->addr_lu, addrx); - if (base_addr_new < max_U64) { - base_addr = base_addr_new; - cursor += addrx_size; - } else { - keep_parsing = 0; - Assert(!"invalid addrx"); - } - } break; - case DW_RLE_StartxLength: { - U64 start_addrx = 0; - U64 start_addrx_size = str8_deserial_read_uleb128(raw_rle, cursor, &start_addrx); - if (start_addrx_size == 0) { - keep_parsing = 0; - break; - } - U64 length = 0; - U64 length_size = str8_deserial_read_uleb128(raw_rle, cursor + start_addrx_size, &length); - if (length_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_addrx_size; - cursor += length_size; - - if (cu->addr_lu) { - U64 start = dw_addr_from_list_unit(cu->addr_lu, start_addrx); - AssertAlways(start < max_U64); - range = rng_1u64(start, start + length); - } - } break; - case DW_RLE_OffsetPair: { - U64 offset_start, offset_end = 0; - U64 offset_start_size = str8_deserial_read_uleb128(raw_rle, cursor, &offset_start); - if (offset_start_size == 0) { - keep_parsing = 0; - break; - } - U64 offset_end_size = str8_deserial_read_uleb128(raw_rle, cursor + offset_start_size, &offset_end); - if (offset_end_size == 0) { - keep_parsing = 0; - break; - } - cursor += offset_start_size; - cursor += offset_end_size; - - range = rng_1u64(base_addr + offset_start, base_addr + offset_end); - } break; - case DW_RLE_BaseAddress: { - U64 base_addr_size = str8_deserial_read(raw_rle, cursor, &base_addr, cu->address_size, cu->address_size); - if (base_addr_size == 0) { - keep_parsing = 0; - break; - } - cursor += base_addr_size; - } break; - case DW_RLE_StartEnd: { - U64 start = 0, end = 0; - - U64 start_size = str8_deserial_read(raw_rle, cursor, &start, cu->address_size, cu->address_size); - if (start_size == 0) { - keep_parsing = 0; - break; - } - U64 end_size = str8_deserial_read(raw_rle, cursor + start_size, &end, cu->address_size, cu->address_size); - if (end_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_size; - cursor += end_size; - - range = rng_1u64(start, end); - } break; - case DW_RLE_StartLength: { - U64 start = 0, length = 0; - - U64 start_size = str8_deserial_read(raw_rle, cursor, &start, cu->address_size, cu->address_size); - if (start_size == 0) { - keep_parsing = 0; - break; - } - U64 length_size = str8_deserial_read_uleb128(raw_rle, cursor + start_size, &length); - if (length_size == 0) { - keep_parsing = 0; - break; - } - cursor += start_size; - cursor += length_size; - - range = rng_1u64(start, start + length); - } break; - } - - if (range.min != rle_invalid_value) { - rng1u64_list_push(arena, &rnglist, range); - } - } - } - - return rnglist; -} - -internal String8 -dw_interp_secptr(DW_Input *input, DW_SectionKind section, DW_FormKind form_kind, DW_Form form) -{ - String8 secptr = {0}; - if (form_kind == DW_Form_SecOffset) { - String8 sect = input->sec[section].data; - Rng1U64 range = rng_1u64(form.sec_offset, sect.size); - secptr = str8_substr(sect, range); - } else if (form_kind != DW_Form_Null) { - Assert(!"unexpected form"); - } - return secptr; -} - -internal String8 -dw_interp_addrptr(DW_Input *input, DW_FormKind form_kind, DW_Form form) -{ - return dw_interp_secptr(input, DW_Section_Addr, form_kind, form); -} - -internal String8 -dw_interp_str_offsets_ptr(DW_Input *input, DW_FormKind form_kind, DW_Form form) -{ - return dw_interp_secptr(input, DW_Section_StrOffsets, form_kind, form); -} - -internal String8 -dw_interp_rnglists_ptr(DW_Input *input, DW_FormKind form_kind, DW_Form form) -{ - return dw_interp_secptr(input, DW_Section_RngLists, form_kind, form); -} - -internal String8 -dw_interp_loclists_ptr(DW_Input *input, DW_FormKind form_kind, DW_Form form) -{ - return dw_interp_secptr(input, DW_Section_LocLists, form_kind, form); -} - -internal DW_AttribClass -dw_value_class_from_attrib(DW_CompUnit *cu, DW_Attrib *attrib) -{ - return dw_pick_attrib_value_class(cu->version, cu->ext, cu->relaxed, attrib->attrib_kind, attrib->form_kind); -} - -internal String8 -dw_exprloc_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_ExprLoc || value_class == DW_AttribClass_Block); - return dw_interp_exprloc(attrib->form_kind, attrib->form); -} - -internal U128 -dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_const_u128(attrib->form_kind, attrib->form); -} - -internal U64 -dw_const_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_const_u64(attrib->form_kind, attrib->form); -} - -internal U32 -dw_const_u32_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_const_u32(attrib->form_kind, attrib->form); -} - -internal S64 -dw_const_s64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_const_s64(attrib->form_kind, attrib->form); -} - -internal S32 -dw_const_s32_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_const_s32(attrib->form_kind, attrib->form); -} - -internal B32 -dw_flag_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Flag); - return dw_interp_flag(attrib->form_kind, attrib->form); -} - -internal U64 -dw_address_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || - value_class == DW_AttribClass_Address || - value_class == DW_AttribClass_AddrPtr); - DW_FormKind form_kind = attrib->form_kind; - DW_Form form = attrib->form; - if (value_class == DW_AttribClass_AddrPtr) { - - if (attrib->form_kind == DW_Form_SecOffset) { - - - } else { - AssertAlways(!"unexpected form"); - } - - - form_kind = DW_Form_Addr; - form.addr = dw_interp_addrptr(input, attrib->form_kind, attrib->form); - } - return dw_interp_address(cu->address_size, cu->low_pc, cu->addr_lu, form_kind, form); -} - -internal String8 -dw_block_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Block); - return dw_interp_block(input, cu, attrib->form_kind, attrib->form); -} - -internal String8 -dw_string_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_String || value_class == DW_AttribClass_StrOffsetsPtr); - return dw_interp_string(input, cu->format, cu->str_offsets_lu, attrib->form_kind, attrib->form); -} - -internal String8 -dw_line_ptr_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_LinePtr); - return dw_interp_line_ptr(input, attrib->form_kind, attrib->form); -} - -internal DW_LineFile * -dw_file_from_attrib(DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Const); - return dw_interp_file(line_vm, attrib->form_kind, attrib->form); -} - -internal DW_Reference -dw_ref_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || value_class == DW_AttribClass_Reference); - return dw_interp_ref(input, cu, attrib->form_kind, attrib->form); -} - -internal DW_LocList -dw_loclist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - AssertAlways(value_class == DW_AttribClass_Null || - value_class == DW_AttribClass_LocList || - value_class == DW_AttribClass_LocListPtr); - return dw_interp_loclist(arena, input, cu, attrib->form_kind, attrib->form); -} - -internal Rng1U64List -dw_rnglist_from_attrib(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib) -{ - Rng1U64List rnglist = {0}; - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - if (value_class == DW_AttribClass_RngListPtr || value_class == DW_AttribClass_RngList) { - rnglist = dw_interp_rnglist(arena, input, cu, attrib->form_kind, attrib->form); - } else if (value_class != DW_AttribClass_Null) { - Assert(!"unexpected value class"); - } - return rnglist; -} - -internal DW_Attrib * -dw_attrib_from_tag_(DW_Tag tag, DW_AttribKind kind) -{ - local_persist read_only DW_Attrib null_attrib; - DW_Attrib *attrib = &null_attrib; - for (DW_AttribNode *attrib_n = tag.attribs.first; attrib_n != 0; attrib_n = attrib_n->next) { - if (attrib_n->v.attrib_kind == kind) { - attrib = &attrib_n->v; - break; - } - } - return attrib; -} - -internal DW_Attrib * -dw_attrib_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - DW_Attrib *attrib = dw_attrib_from_tag_(tag, kind); - - if (attrib->attrib_kind == DW_AttribKind_Null) { - if (cu && cu->tag_ht) { - DW_Attrib *ao_attrib = dw_attrib_from_tag_(tag, DW_AttribKind_AbstractOrigin); - if (ao_attrib->attrib_kind == DW_AttribKind_AbstractOrigin) { - DW_Reference ref = dw_interp_ref(input, cu, ao_attrib->form_kind, ao_attrib->form); - DW_TagNode *ref_tag = dw_tag_node_from_info_off(ref.cu, ref.info_off); - attrib = dw_attrib_from_tag_(ref_tag->tag, kind); - } - } - } - - return attrib; -} - -internal B32 -dw_tag_has_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - B32 has_attrib = attrib->attrib_kind != DW_AttribKind_Null; - return has_attrib; -} - -internal String8 -dw_exprloc_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_exprloc_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal String8 -dw_block_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_block_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal U128 -dw_const_u128_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_const_u128_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal U64 -dw_const_u64_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_const_u64_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal U32 -dw_const_u32_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_const_u32_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal U64 -dw_address_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_address_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal String8 -dw_string_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_string_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal String8 -dw_line_ptr_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_line_ptr_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal DW_Reference -dw_ref_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_ref_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal DW_LocList -dw_loclist_from_tag_attrib_kind(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_loclist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal Rng1U64List -dw_rnglist_from_tag_attrib_kind(Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_rnglist_from_attrib(arena, input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal B32 -dw_flag_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - return dw_flag_from_attrib(input, cu, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal DW_LineFile * -dw_file_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind) -{ - return dw_file_from_attrib(cu, line_vm, dw_attrib_from_tag(input, cu, tag, kind)); -} - -internal B32 -dw_try_byte_size_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, U64 *byte_size_out) -{ - B32 has_byte_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ByteSize); - B32 has_bit_size = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_BitSize ); - - if (has_byte_size && has_bit_size) { - Assert(!"ill formated byte size"); - } - - if (has_byte_size) { - *byte_size_out = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); - return 1; - } else if (has_bit_size) { - U64 bit_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_BitSize); - *byte_size_out = bit_size / 8; - return 1; - } - - return 0; -} - -internal U64 -dw_byte_size_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag) -{ - U64 byte_size = max_U64; - dw_try_byte_size_from_tag(input, cu, tag, &byte_size); - return byte_size; -} - -internal U32 -dw_byte_size_32_from_tag(DW_Input *input, DW_CompUnit *cu, DW_Tag tag) -{ - U32 byte_size32 = 0; - U64 byte_size64; - if (dw_try_byte_size_from_tag(input, cu, tag, &byte_size64)) { - byte_size32 = safe_cast_u32(byte_size64); - } - return byte_size32; -} - -internal U64 -dw_u64_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - U64 result = 0; - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); - if (attrib_class == DW_AttribClass_Const || attrib_class == DW_AttribClass_Block) { - if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Type)) { - Temp scratch = scratch_begin(0,0); - DW_Reference type_ref = dw_ref_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Type); - DW_Tag type_tag = {0}; - dw_read_tag_cu(scratch.arena, input, type_ref.cu, type_ref.info_off, &type_tag); - U64 type_byte_size = dw_byte_size_from_tag(input, cu, type_tag); - DW_ATE type_encoding = dw_const_u64_from_tag_attrib_kind(input, type_ref.cu, type_tag, DW_AttribKind_Encoding); - if (type_encoding == DW_ATE_Unsigned || type_encoding == DW_ATE_UnsignedChar) { - result = dw_interp_const64(type_byte_size, type_encoding, attrib->form_kind, attrib->form); - } - scratch_end(scratch); - } else { - result = dw_interp_const_u64(attrib->form_kind, attrib->form); - } - } else if (attrib_class == DW_AttribClass_Address) { - result = dw_address_from_attrib(input, cu, attrib); - } else if (attrib_class == DW_AttribClass_Reference) { - NotImplemented; - } else if (attrib_class != DW_AttribClass_Null) { - AssertAlways(!"unexpected attrib class"); - } - return result; -} - -internal DW_CompUnit -dw_cu_from_info_off(Arena *arena, DW_Input *input, DW_ListUnitInput lu_input, U64 offset, B32 relaxed) -{ - DW_CompUnit cu = {0}; - - String8 info_data = input->sec[DW_Section_Info].data; - - // read unit size in bytes - U64 length = 0; - U64 length_size = str8_deserial_read_dwarf_packed_size(info_data, offset, &length); - - if (length_size) { - // compute unit range - Rng1U64 range = rng_1u64(offset, offset + length_size + length); - String8 data = str8_substr(info_data, range); - U64 cursor = length_size; - - // read version - DW_Version version = 0; - U64 version_size = str8_deserial_read_struct(data, cursor, &version); - cursor += version_size; - - if (version_size) { - DW_Format format = DW_FormatFromSize(length); - B32 is_header_ok = 0; - U64 abbrev_base = max_U64; - U8 address_size = 0; - DW_CompUnitKind unit_kind = DW_CompUnitKind_Reserved; - U64 spec_dwo_id = max_U64; - - switch (version) { - default: - case DW_Version_Null: - case DW_Version_1: - break; - case DW_Version_2: { - U32 abbrev_base32 = 0; - U64 abbrev_base_off = cursor; - U64 abbrev_base_size = str8_deserial_read_struct(data, abbrev_base_off, &abbrev_base32); - if (!abbrev_base_size) { - break; - } - - U64 address_size_off = abbrev_base_off + abbrev_base_size; - U64 address_size_size = str8_deserial_read_struct(data, address_size_off, &address_size); - if (!address_size_size) { - break; - } - - abbrev_base = abbrev_base32; - cursor = address_size_off + address_size_size; - is_header_ok = 1; - } break; - case DW_Version_3: - case DW_Version_4: { - U64 abbrev_base_off = cursor; - U64 abbrev_base_size = str8_deserial_read_dwarf_uint(data, abbrev_base_off, format, &abbrev_base); - if (!abbrev_base_size) { - break; - } - - U64 address_size_off = abbrev_base_off + abbrev_base_size; - U64 address_size_size = str8_deserial_read_struct(data, address_size_off, &address_size); - if (!address_size_size) { - break; - } - - cursor = address_size_off + address_size_size; - is_header_ok = 1; - } break; - case DW_Version_5: { - U64 unit_kind_off = cursor; - U64 unit_kind_size = str8_deserial_read_struct(data, unit_kind_off, &unit_kind); - if (unit_kind_size == 0) { - break; - } - - U64 address_size_off = unit_kind_off + unit_kind_size; - U64 address_size_size = str8_deserial_read_struct(data, address_size_off, &address_size); - if (!address_size_size) { - break; - } - - U64 abbrev_base_off = address_size_off + address_size_size; - U64 abbrev_base_size = str8_deserial_read_dwarf_uint(data, abbrev_base_off, format, &abbrev_base); - if (!abbrev_base_size) { - break; - } - - U64 spec_dwo_id_off = abbrev_base_off + abbrev_base_size; - U64 spec_dwo_id_size = 0; - if (unit_kind == DW_CompUnitKind_Skeleton || input->sec[DW_Section_Info].is_dwo) { - spec_dwo_id_size = str8_deserial_read_struct(data, spec_dwo_id_off, &spec_dwo_id); - if (!spec_dwo_id_size) { - break; - } - } - - cursor = spec_dwo_id_off + spec_dwo_id_size; - is_header_ok = 1; - } break; - } - - if (is_header_ok) { - Temp temp = temp_begin(arena); - - // TODO: cache abbrev tables with identical offsets - String8 abbrev_data = input->sec[DW_Section_Abbrev].data; - DW_AbbrevTable abbrev_table = dw_make_abbrev_table(arena, abbrev_data, abbrev_base); - - DW_Tag cu_tag = {0}; - dw_read_tag(arena, data, cursor, range.min, abbrev_table, abbrev_data, version, format, address_size, &cu_tag); - - // TODO: handle these unit types - Assert(cu_tag.kind != DW_TagKind_SkeletonUnit); - Assert(cu_tag.kind != DW_TagKind_TypeUnit); - - if (cu_tag.kind == DW_TagKind_CompileUnit || cu_tag.kind == DW_TagKind_PartialUnit) { - // fetch attribs for list sections - DW_Attrib *addr_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_AddrBase ); - DW_Attrib *str_offsets_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_StrOffsetsBase); - DW_Attrib *rnglists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_RngListsBase ); - DW_Attrib *loclists_base_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LocListsBase ); - - // interp attribs as section offsets - U64 addr_sec_off = dw_interp_sec_offset(addr_base_attrib->form_kind, addr_base_attrib->form ); - U64 str_offsets_sec_off = dw_interp_sec_offset(str_offsets_base_attrib->form_kind, str_offsets_base_attrib->form); - U64 rnglists_sec_off = dw_interp_sec_offset(rnglists_base_attrib->form_kind, rnglists_base_attrib->form ); - U64 loclists_sec_off = dw_interp_sec_offset(loclists_base_attrib->form_kind, loclists_base_attrib->form ); - - // map section offset to unit index - U64 addr_lu_idx = rng_1u64_array_bsearch(lu_input.addr_ranges, addr_sec_off ); - U64 str_offsets_lu_idx = rng_1u64_array_bsearch(lu_input.str_offset_ranges, str_offsets_sec_off); - U64 rnglists_lu_idx = rng_1u64_array_bsearch(lu_input.rnglist_ranges, rnglists_sec_off ); - U64 loclists_lu_idx = rng_1u64_array_bsearch(lu_input.loclist_ranges, loclists_sec_off ); - - // map index to unit - DW_ListUnit *addr_lu = addr_lu_idx < lu_input.addr_count ? &lu_input.addrs[addr_lu_idx] : 0; - DW_ListUnit *str_offsets_lu = str_offsets_lu_idx < lu_input.str_offset_count ? &lu_input.str_offsets[str_offsets_lu_idx] : 0; - DW_ListUnit *rnglists_lu = rnglists_lu_idx < lu_input.rnglist_count ? &lu_input.rnglists[rnglists_lu_idx] : 0; - DW_ListUnit *loclists_lu = loclists_lu_idx < lu_input.loclist_count ? &lu_input.loclists[loclists_lu_idx] : 0; - - // find compile unit base address - DW_Attrib *low_pc_attrib = dw_attrib_from_tag(0, 0, cu_tag, DW_AttribKind_LowPc); - U64 low_pc = dw_interp_address(address_size, max_U64, addr_lu, low_pc_attrib->form_kind, low_pc_attrib->form); - - // fill out compile unit - cu.relaxed = relaxed; - cu.ext = DW_Ext_All; - cu.kind = unit_kind; - cu.version = version; - cu.format = format; - cu.address_size = address_size; - cu.abbrev_off = abbrev_base; - cu.info_range = range; - cu.first_tag_info_off = range.min + cursor; - cu.abbrev_table = abbrev_table; - cu.abbrev_data = abbrev_data; - cu.addr_lu = addr_lu; - cu.str_offsets_lu = str_offsets_lu; - cu.rnglists_lu = rnglists_lu; - cu.loclists_lu = loclists_lu; - cu.low_pc = low_pc; - cu.tag = cu_tag; - } else { - // unexpected tag, release memory and exit - temp_end(temp); - } - } - } - } - - return cu; -} - -internal void -dw_tag_tree_from_data(Arena *arena, String8 info_data, String8 abbrev_data, DW_CompUnit *cu, DW_TagNode *parent, U64 *cursor, U64 *tag_count) -{ - while (*cursor < info_data.size) { - // read tag - DW_Tag tag = {0}; - U64 tag_size = dw_read_tag(arena, info_data, *cursor, cu->info_range.min, cu->abbrev_table, abbrev_data, cu->version, cu->format, cu->address_size, &tag); - if (tag_size == 0) { - break; - } - *cursor += tag_size; - - // is this sentinel tag? - if (tag.kind == DW_TagKind_Null) { - break; - } - - // normal tag - DW_TagNode *tag_n = push_array(arena, DW_TagNode, 1); - tag_n->tag = tag; - - SLLQueuePush_N(parent->first_child, parent->last_child, tag_n, sibling); - - // update tag count - *tag_count += 1; - - if (tag.has_children) { - dw_tag_tree_from_data(arena, info_data, abbrev_data, cu, tag_n, cursor, tag_count); - } - } -} - -internal DW_TagTree -dw_tag_tree_from_cu(Arena *arena, DW_Input *input, DW_CompUnit *cu) -{ - String8 abbrev_data = input->sec[DW_Section_Abbrev].data; - String8 info_data = str8_substr(input->sec[DW_Section_Info].data, cu->info_range); - DW_TagNode root = {0}; - U64 cursor = cu->first_tag_info_off; - U64 tag_count = 0; - dw_tag_tree_from_data(arena, info_data, abbrev_data, cu, &root, &cursor, &tag_count); - - DW_TagTree result = {0}; - result.root = root.first_child; - result.tag_count = tag_count; - - return result; -} - -internal HashTable * -dw_make_tag_hash_table(Arena *arena, DW_TagTree tag_tree) -{ - Temp scratch = scratch_begin(&arena, 1); - - struct Frame { - struct Frame *next; - DW_TagNode *node; - }; - - struct Frame *free_frames = 0; - struct Frame *stack = push_array(scratch.arena, struct Frame, 1); - stack->node = tag_tree.root; - - HashTable *ht = hash_table_init(arena, (U64)((F64)tag_tree.tag_count * 1.3)); - - while (stack) { - while (stack->node) { - hash_table_push_u64_raw(arena, ht, stack->node->tag.info_off, stack->node); - - if (stack->node->first_child) { - struct Frame *frame = free_frames; - if (frame) { - SLLStackPop(free_frames); - MemoryZeroStruct(frame); - } else { - frame = push_array(scratch.arena, struct Frame, 1); - } - frame->node = stack->node->first_child; - SLLStackPush(stack, frame); - } else { - stack->node = stack->node->sibling; - } - } - - // recycle free frame - struct Frame *frame = stack; - SLLStackPop(stack); - SLLStackPush(free_frames, frame); - - if (stack) { - stack->node = stack->node->sibling; - } - } - - scratch_end(scratch); - return ht; -} - -internal DW_TagNode * -dw_tag_node_from_info_off(DW_CompUnit *cu, U64 info_off) -{ - DW_TagNode *tag_node = hash_table_search_u64_raw(cu->tag_ht, info_off); - return tag_node; -} - -internal DW_LineVMFileArray -dw_line_vm_file_array_from_list(Arena *arena, DW_LineVMFileList list) -{ - DW_LineVMFileArray result = {0}; - result.count = 0; - result.v = push_array(arena, DW_LineFile, list.node_count); - - for (DW_LineVMFileNode *src = list.first; src != 0; src = src->next) { - DW_LineFile *dst = &result.v[result.count++]; - dst->file_name = push_str8_copy(arena, src->file.file_name); - dst->dir_idx = src->file.dir_idx; - dst->modify_time = src->file.modify_time; - dst->file_size = src->file.file_size; - } - - return result; -} - -internal U64 -dw_read_line_file(String8 data, - U64 off, - DW_Input *input, - DW_Version version, - DW_Format format, - DW_Ext ext, - U64 address_size, - DW_ListUnit *str_offsets, - U64 enc_count, - U64 *enc_arr, - DW_LineFile *line_file_out) -{ - MemoryZeroStruct(line_file_out); - U64 cursor = off; - for (U64 enc_idx = 0; enc_idx < enc_count; ++enc_idx) { - DW_LNCT lnct = enc_arr[enc_idx*2 + 0]; - DW_FormKind form_kind = enc_arr[enc_idx*2 + 1]; - DW_Form form = {0}; - U64 bytes_read = 0; - switch (lnct) { - case DW_LNCT_Path: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->file_name = dw_interp_string(input, format, str_offsets, form_kind, form); - } break; - case DW_LNCT_DirectoryIndex: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->dir_idx = dw_interp_const_u64(form_kind, form); - } break; - case DW_LNCT_TimeStamp: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->modify_time = dw_interp_const_u64(form_kind, form); - } break; - case DW_LNCT_Size: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->file_size = dw_interp_const_u64(form_kind, form); - } break; - case DW_LNCT_MD5: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->md5_digest = dw_interp_const_u128(form_kind, form); - } break; - case DW_LNCT_LLVM_Source: { - if (ext & DW_Ext_LLVM) { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - line_file_out->source = dw_interp_string(input, format, str_offsets, form_kind, form); - } else { - Assert(!"extension not supported"); - } - } break; - default: { - bytes_read = dw_read_form(data, cursor, version, format, address_size, form_kind, max_U64, &form); - Assert(!"unexpected LNTC encoding"); - } break; - } - Assert(bytes_read); - cursor += bytes_read; - } - U64 bytes_read = cursor - off; - return bytes_read; -} - -internal U64 -dw_read_line_file_array(Arena *arena, - String8 data, - U64 off, - DW_Input *input, - DW_Version version, - DW_Format format, - DW_Ext ext, - U64 address_size, - DW_ListUnit *str_offsets, - U64 enc_count, - U64 *enc_arr, - U64 table_count, - DW_LineVMFileArray *table_out) -{ - Temp temp = temp_begin(arena); - - table_out->count = table_count; - table_out->v = push_array(arena, DW_LineFile, table_count); - - U64 i, cursor; - for (i = 0, cursor = off; i < table_count; ++i) { - U64 bytes_read = dw_read_line_file(data, - cursor, - input, - version, - format, - ext, - address_size, - str_offsets, - enc_count, - enc_arr, - &table_out->v[i]); - if (bytes_read == 0) { - break; - } - cursor += bytes_read; - } - - U64 bytes_read = 0; - if (i == table_count) { - bytes_read = cursor - off; - } else { - temp_end(temp); - table_out->count = 0; - table_out->v = 0; - } - - return bytes_read; -} - -internal U64 -dw_read_line_vm_header(Arena *arena, - String8 line_data, - U64 line_off, - DW_Input *input, - String8 cu_dir, - String8 cu_name, - U8 cu_address_size, - DW_ListUnit *cu_str_offsets, - DW_LineVMHeader *header_out) -{ - Temp scratch = scratch_begin(&arena, 1); - - U64 bytes_read = 0; - - // read unit length - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(line_data, line_off, &unit_length); - - U64 unit_opl = line_off + unit_length_size + unit_length; - Rng1U64 unit_range = rng_1u64(line_off, unit_opl); - DW_Format format = DW_FormatFromSize(unit_length); - U64 unit_cursor = unit_length_size; - String8 unit_data = str8_substr(line_data, unit_range); - - // read unit version - DW_Version version = DW_Version_Null; - U64 version_size = str8_deserial_read_struct(unit_data, unit_cursor, &version); - if (version_size == 0) { - goto exit; - } - unit_cursor += version_size; - - // read DWARF5 address & segment selector - U8 address_size = 0; - U8 segsel_size = 0; - if (version == DW_Version_5) { - U64 address_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &address_size); - if (address_size_size == 0) { - goto exit; - } - unit_cursor += address_size_size; - - U64 segsel_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &segsel_size); - if (segsel_size_size == 0) { - goto exit; - } - unit_cursor += segsel_size_size; - } else { - address_size = cu_address_size; - } - - // read header length - U64 header_length = 0; - U64 header_length_size = str8_deserial_read_dwarf_uint(unit_data, unit_cursor, format, &header_length); - if (header_length_size == 0) { - goto exit; - } - unit_cursor += header_length_size; - - // read min instruction length - U8 min_inst_len = 0; - U64 min_inst_len_size = str8_deserial_read_struct(unit_data, unit_cursor, &min_inst_len); - if (min_inst_len_size == 0) { - goto exit; - } - unit_cursor += min_inst_len_size; - - // read max operands for instruction - U8 max_ops_for_inst = 1; - if (version > DW_Version_3) { - U64 max_ops_for_inst_size = str8_deserial_read_struct(unit_data, unit_cursor, &max_ops_for_inst); - if (max_ops_for_inst_size == 0) { - goto exit; - } - unit_cursor += max_ops_for_inst_size; - } - Assert(max_ops_for_inst > 0); - - U8 default_is_stmt = 0; - U64 default_is_stmt_size = str8_deserial_read_struct(unit_data, unit_cursor, &default_is_stmt); - if (default_is_stmt_size == 0) { - goto exit; - } - unit_cursor += default_is_stmt_size; - - S8 line_base = 0; - U64 line_base_size = str8_deserial_read_struct(unit_data, unit_cursor, &line_base); - if (line_base_size == 0) { - goto exit; - } - unit_cursor += line_base_size; - - U8 line_range = 0; - U64 line_range_size = str8_deserial_read_struct(unit_data, unit_cursor, &line_range); - if (line_range_size == 0) { - goto exit; - } - unit_cursor += line_range_size; - - U8 opcode_base = 0; - U64 opcode_base_size = str8_deserial_read_struct(unit_data, unit_cursor, &opcode_base); - if (opcode_base_size == 0) { - goto exit; - } - unit_cursor += opcode_base_size; - - U64 num_opcode_lens = opcode_base > 0 ? opcode_base - 1 : 0; - U8 *opcode_lens = str8_deserial_get_raw_ptr(unit_data, unit_cursor, num_opcode_lens * sizeof(opcode_lens[0])); - if (opcode_lens == 0) { - goto exit; - } - unit_cursor += num_opcode_lens * sizeof(opcode_lens[0]); - - DW_LineVMFileArray dir_table = {0}; - DW_LineVMFileArray file_table = {0}; - if (version < DW_Version_5) { - // read directory table - DW_LineVMFileList dir_list = {0}; - { - // compile directory is always first in the table - DW_LineVMFileNode *node = push_array(scratch.arena, DW_LineVMFileNode, 1); - node->file.file_name = cu_dir; - SLLQueuePush(dir_list.first, dir_list.last, node); - ++dir_list.node_count; - } - - // parse additional directories - for (; unit_cursor < unit_data.size; ) { - String8 dir = {0}; - unit_cursor += str8_deserial_read_cstr(unit_data, unit_cursor, &dir); - if (dir.size == 0) { - break; - } - - DW_LineVMFileNode *node = push_array(scratch.arena, DW_LineVMFileNode, 1); - node->file.file_name = dir; - SLLQueuePush(dir_list.first, dir_list.last, node); - ++dir_list.node_count; - } - - DW_LineVMFileList file_list = {0}; - { - // compile unit name is always first in the file table - { - DW_LineVMFileNode *node = push_array(scratch.arena, DW_LineVMFileNode, 1); - node->file.file_name = cu_name; - SLLQueuePush(file_list.first, file_list.last, node); - ++file_list.node_count; - } - - // read file table - for (; unit_cursor < unit_data.size; ) { - String8 file_name = {0}; - unit_cursor += str8_deserial_read_cstr(unit_data, unit_cursor, &file_name); - if (file_name.size == 0) { - break; - } - - U64 dir_index = 0; - U64 dir_index_size = str8_deserial_read_uleb128(unit_data, unit_cursor, &dir_index); - if (dir_index_size == 0) { - goto exit; - } - unit_cursor += dir_index_size; - - U64 modify_time = 0; - U64 modify_time_size = str8_deserial_read_uleb128(unit_data, unit_cursor, &modify_time); - if (modify_time_size == 0) { - goto exit; - } - unit_cursor += modify_time_size; - - U64 file_size = 0; - U64 file_size_size = str8_deserial_read_uleb128(unit_data, unit_cursor, &file_size); - if (file_size_size == 0) { - goto exit; - } - unit_cursor += file_size_size; - - DW_LineVMFileNode *node = push_array(scratch.arena, DW_LineVMFileNode, 1); - node->file.file_name = file_name; - node->file.dir_idx = dir_index; - node->file.modify_time = modify_time; - node->file.file_size = file_size; - - SLLQueuePush(file_list.first, file_list.last, node); - ++file_list.node_count; - } - } - - // list -> array - dir_table = dw_line_vm_file_array_from_list(arena, dir_list); - file_table = dw_line_vm_file_array_from_list(arena, file_list); - } - // DWARF5 - else { - // directory table - { - // read table entry encoding count - U8 enc_count = 0; - U64 enc_count_size = str8_deserial_read_struct(unit_data, unit_cursor, &enc_count); - if (enc_count_size == 0) { - goto exit; - } - unit_cursor += enc_count_size; - - // read table entry encodings - U64 *enc_arr = 0; - U64 enc_arr_size = str8_deserial_read_uleb128_array(scratch.arena, unit_data, unit_cursor, enc_count*2, &enc_arr); - if (enc_arr_size == 0) { - goto exit; - } - unit_cursor += enc_arr_size; - - // read table count - U64 table_count = 0; - U64 table_count_size = str8_deserial_read_uleb128(unit_data, unit_cursor, &table_count); - if (table_count_size == 0) { - goto exit; - } - unit_cursor += table_count_size; - - // read table - U64 table_size = dw_read_line_file_array(arena, - unit_data, - unit_cursor, - input, - version, - format, - DW_Ext_All, - address_size, - cu_str_offsets, - enc_count, - enc_arr, - table_count, - &dir_table); - if (table_size == 0) { - goto exit; - } - unit_cursor += table_size; - } - - // file table - { - // read table entry encoding count - U8 enc_count = 0; - U64 enc_count_size = str8_deserial_read_struct(unit_data, unit_cursor, &enc_count); - if (enc_count == 0) { - goto exit; - } - unit_cursor += enc_count_size; - - // read table entry encodings - U64 *enc_arr = 0; - U64 enc_arr_size = str8_deserial_read_uleb128_array(scratch.arena, unit_data, unit_cursor, enc_count*2, &enc_arr); - if (enc_arr_size == 0) { - goto exit; - } - unit_cursor += enc_arr_size; - - // read table count - U64 table_count = 0; - U64 table_count_size = str8_deserial_read_uleb128(unit_data, unit_cursor, &table_count); - if (table_count_size == 0) { - goto exit; - } - unit_cursor += table_count_size; - - // read table - U64 file_table_size = dw_read_line_file_array(arena, - unit_data, - unit_cursor, - input, - version, - format, - DW_Ext_All, - address_size, - cu_str_offsets, - enc_count, - enc_arr, - table_count, - &file_table); - if (file_table_size == 0) { - goto exit; - } - unit_cursor += file_table_size; - } - } - - if (header_out) { - header_out->unit_range = unit_range; - header_out->version = version; - header_out->address_size = address_size; - header_out->segment_selector_size = segsel_size; - header_out->header_length = header_length; - header_out->min_inst_len = min_inst_len; - header_out->max_ops_for_inst = max_ops_for_inst; - header_out->default_is_stmt = default_is_stmt; - header_out->line_base = line_base; - header_out->line_range = line_range; - header_out->opcode_base = opcode_base; - header_out->num_opcode_lens = num_opcode_lens; - header_out->opcode_lens = opcode_lens; - header_out->dir_table = dir_table; - header_out->file_table = file_table; - } - - bytes_read = unit_cursor; - - exit:; - scratch_end(scratch); - return bytes_read; -} - -internal void -dw_line_vm_reset(DW_LineVMState *state, B32 default_is_stmt) -{ - state->address = 0; - state->op_index = 0; - state->file_index = 1; - state->line = 1; - state->column = 0; - state->is_stmt = default_is_stmt; - state->basic_block = 0; - state->prologue_end = 0; - state->epilogue_begin = 0; - state->isa = 0; - state->discriminator = 0; -} - -internal void -dw_line_vm_advance(DW_LineVMState *state, U64 advance, U64 min_inst_len, U64 max_ops_for_inst) -{ - U64 op_index = state->op_index + advance; - state->address += min_inst_len*(op_index/max_ops_for_inst); - state->op_index = op_index % max_ops_for_inst; -} - -internal DW_LineSeqNode * -dw_push_line_seq(Arena* arena, DW_LineTableParseResult *parsed_tbl) -{ - DW_LineSeqNode *new_seq = push_array(arena, DW_LineSeqNode, 1); - SLLQueuePush(parsed_tbl->first_seq, parsed_tbl->last_seq, new_seq); - parsed_tbl->seq_count += 1; - return new_seq; -} - -internal DW_LineNode * -dw_push_line(Arena *arena, DW_LineTableParseResult *tbl, DW_LineVMState *vm_state, B32 start_of_sequence) -{ - DW_LineSeqNode *seq = tbl->last_seq; - if(seq == 0 || start_of_sequence) - { - seq = dw_push_line_seq(arena, tbl); - } - - DW_LineNode *n = push_array(arena, DW_LineNode, 1); - n->v.file_index = vm_state->file_index; - n->v.line = vm_state->line; - n->v.column = vm_state->column; - n->v.address = vm_state->address; - - SLLQueuePush(seq->first, seq->last, n); - seq->count += 1; - return n; -} - -internal String8 -dw_path_from_file(Arena *arena, DW_LineVMHeader *vm, DW_LineFile *file) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 dir = vm->dir_table.v[file->dir_idx].file_name; - PathStyle style = path_style_from_str8(dir); - if (style == PathStyle_Null || style == PathStyle_Relative) { - style = path_style_from_str8(file->file_name); - } - - String8List path_list = {0}; - - if (str8_match_lit("..", dir, StringMatchFlag_RightSideSloppy)) { - String8List comp_dir_list = str8_split_path(scratch.arena, vm->dir_table.v[0].file_name); - str8_list_concat_in_place(&path_list, &comp_dir_list); - } - - String8List dir_list = str8_split_path(scratch.arena, dir); - str8_list_concat_in_place(&path_list, &dir_list); - - str8_list_push(scratch.arena, &path_list, file->file_name); - - str8_path_list_resolve_dots_in_place(&path_list, style); - - String8 path = str8_path_list_join_by_style(arena, &path_list, style); - - scratch_end(scratch); - return path; -} - -internal String8 -dw_path_from_file_idx(Arena *arena, DW_LineVMHeader *vm, U64 file_idx) -{ - return dw_path_from_file(arena, vm, &vm->file_table.v[file_idx]); -} - -internal DW_LineTableParseResult -dw_parsed_line_table_from_data(Arena *arena, - String8 unit_data, - DW_Input *input, - String8 cu_dir, - String8 cu_name, - U8 cu_address_size, - DW_ListUnit *cu_str_offsets) -{ - DW_LineVMHeader vm_header = {0}; - U64 vm_header_size = dw_read_line_vm_header(arena, unit_data, 0, input, cu_dir, cu_name, cu_address_size, cu_str_offsets, &vm_header); - - U64 unit_cursor = vm_header_size; - - //- rjf: prep state for VM - DW_LineVMState vm_state = {0}; - dw_line_vm_reset(&vm_state, vm_header.default_is_stmt); - - //- rjf: VM loop; build output list - DW_LineTableParseResult result = { .vm_header = vm_header }; - B32 end_of_seq = 0; - B32 error = 0; - for (; !error && unit_cursor < unit_data.size; ) { - //- rjf: parse opcode - U8 opcode = 0; - unit_cursor += str8_deserial_read_struct(unit_data, unit_cursor, &opcode); - - //- rjf: do opcode action - switch (opcode) { - default: { - //- rjf: special opcode case - if (opcode >= vm_header.opcode_base) { - U32 adjusted_opcode = (U32)(opcode - vm_header.opcode_base); - U32 op_advance = adjusted_opcode / vm_header.line_range; - S32 line_inc = (S32)vm_header.line_base + ((S32)adjusted_opcode) % (S32)vm_header.line_range; - // TODO: can we just call dw_advance_line_vm_state_pc - U64 addr_inc = vm_header.min_inst_len * ((vm_state.op_index+op_advance) / vm_header.max_ops_for_inst); - - vm_state.address += addr_inc; - vm_state.op_index = (vm_state.op_index + op_advance) % vm_header.max_ops_for_inst; - vm_state.line = (U32)((S32)vm_state.line + line_inc); - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - vm_state.discriminator = 0; - - if(vm_state.is_stmt) - { - dw_push_line(arena, &result, &vm_state, end_of_seq); - } - end_of_seq = 0; - -#if 0 - // NOTE(rjf): DWARF has dummy lines at the end of groups of line ranges, where we'd like - // to break line info into sequences. - if(vm_state.line == 0) - { - end_of_seq = 1; - } -#endif - } - // Skipping unknown opcode. This is a valid case and - // it works because compiler stores operand lengths. - else { - if (0 < opcode && opcode <= vm_header.num_opcode_lens) { - U8 num_operands = vm_header.opcode_lens[opcode - 1]; - for (U8 i = 0; i < num_operands; ++i) { - U64 operand = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &operand); - } - } else { - error = 1; - goto exit; - } - } - } break; - - //- Standard opcodes - - case DW_StdOpcode_Copy: { - if(vm_state.is_stmt) - { - dw_push_line(arena, &result, &vm_state, end_of_seq); - } - end_of_seq = 0; - vm_state.discriminator = 0; - vm_state.basic_block = 0; - vm_state.prologue_end = 0; - vm_state.epilogue_begin = 0; - } break; - - case DW_StdOpcode_AdvancePc: { - U64 advance = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &advance); - dw_line_vm_advance(&vm_state, advance, vm_header.min_inst_len, vm_header.max_ops_for_inst); - } break; - - case DW_StdOpcode_AdvanceLine: { - S64 s = 0; - unit_cursor += str8_deserial_read_sleb128(unit_data, unit_cursor, &s); - vm_state.line += s; - } break; - - case DW_StdOpcode_SetFile: { - U64 file_index = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &file_index); - vm_state.file_index = file_index; - } break; - - case DW_StdOpcode_SetColumn: { - U64 column = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &column); - vm_state.column = column; - } break; - - case DW_StdOpcode_NegateStmt: { - vm_state.is_stmt = !vm_state.is_stmt; - } break; - - case DW_StdOpcode_SetBasicBlock: { - vm_state.basic_block = 1; - } break; - - case DW_StdOpcode_ConstAddPc: { - U64 advance = (0xffu - vm_header.opcode_base) / vm_header.line_range; - dw_line_vm_advance(&vm_state, advance, vm_header.min_inst_len, vm_header.max_ops_for_inst); - } break; - - case DW_StdOpcode_FixedAdvancePc: { - U16 operand = 0; - unit_cursor += str8_deserial_read_struct(unit_data, unit_cursor, &operand); - vm_state.address += operand; - vm_state.op_index = 0; - } break; - - case DW_StdOpcode_SetPrologueEnd: { - vm_state.prologue_end = 1; - } break; - - case DW_StdOpcode_SetEpilogueBegin: { - vm_state.epilogue_begin = 1; - } break; - - case DW_StdOpcode_SetIsa: { - U64 v = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &v); - vm_state.isa = v; - } break; - - //- Extended opcodes - case DW_StdOpcode_ExtendedOpcode: { - U64 length = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &length); - - U64 extended_opl = unit_cursor + length; - U8 extended_opcode = 0; - unit_cursor += str8_deserial_read_struct(unit_data, unit_cursor, &extended_opcode); - - switch (extended_opcode) { - case DW_ExtOpcode_EndSequence: { - vm_state.end_sequence = 1; - if(vm_state.is_stmt) - { - dw_push_line(arena, &result, &vm_state, 0); - } - dw_line_vm_reset(&vm_state, vm_header.default_is_stmt); - end_of_seq = 1; - } break; - - case DW_ExtOpcode_SetAddress: { - U64 address = 0; - unit_cursor += str8_deserial_read(unit_data, unit_cursor, &address, vm_header.address_size, vm_header.address_size); - vm_state.address = address; - vm_state.op_index = 0; - } break; - - case DW_ExtOpcode_DefineFile: { - String8 file_name = {0}; - U64 dir_index = 0; - U64 modify_time = 0; - U64 file_size = 0; - - unit_cursor += str8_deserial_read_cstr(unit_data, unit_cursor, &file_name); - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &dir_index); - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &modify_time); - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &file_size); - - // TODO(rjf): Not fully implemented. By the DWARF V4 spec, the above is - // all that needs to be parsed, but the rest of the work that needs to - // happen here---allowing this file to be used by further opcodes---is - // not implemented. - // - // See the DWARF V4 spec (June 10, 2010), page 122. - error = 1; - AssertAlways(!"UNHANDLED DEFINE FILE!!!"); - } break; - - case DW_ExtOpcode_SetDiscriminator: { - U64 v = 0; - unit_cursor += str8_deserial_read_uleb128(unit_data, unit_cursor, &v); - vm_state.discriminator = v; - } break; - - default: break; - } - - unit_cursor = extended_opl; - } break; - } - } - - exit:; - - return result; -} - -internal DW_PubStringsTable -dw_v4_pub_strings_table_from_section_kind(Arena *arena, DW_Input *input, DW_SectionKind section_kind) -{ - Temp scratch = scratch_begin(&arena, 1); - - DW_PubStringsTable names_table = {0}; - names_table.size = 16384; - names_table.buckets = push_array(arena, DW_PubStringsBucket*, names_table.size); - - String8 section_data = input->sec[section_kind].data; - for(U64 cursor = 0; cursor < section_data.size; ) { - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(section_data, cursor, &unit_length); - if (unit_length_size == 0) { - break; - } - cursor += unit_length_size; - - U64 cursor_opl = Min(cursor + unit_length, section_data.size); - if (cursor >= cursor_opl) { - break; - } - - DW_Version unit_version = 0; - cursor += str8_deserial_read_struct(section_data, cursor, &unit_version); - if (cursor >= cursor_opl) { - break; - } - - DW_Format format = DW_FormatFromSize(unit_length); - - U64 debug_info_off = 0; - cursor += str8_deserial_read_dwarf_uint(section_data, cursor, format, &debug_info_off); - if (cursor >= cursor_opl) { - break; - } - - U64 debug_info_length = 0; - cursor += str8_deserial_read_dwarf_packed_size(section_data, cursor, &debug_info_length); - if (cursor >= cursor_opl) { - break; - } - - U64 off_size = dw_size_from_format(format); - for (; (cursor + off_size) <= cursor_opl;) { - U64 info_off = 0; - U64 info_off_size = str8_deserial_read_dwarf_uint(section_data, cursor, format, &info_off); - cursor += info_off_size; - - if (info_off_size == 0 || info_off == 0) { - break; - } - - String8 string = {0}; - cursor += str8_deserial_read_cstr(section_data, cursor, &string); - - U64 hash = dw_hash_from_string(string); - U64 bucket_idx = hash % names_table.size; - - DW_PubStringsBucket *bucket = push_array(arena, DW_PubStringsBucket, 1); - bucket->next = names_table.buckets[bucket_idx]; - bucket->string = string; - bucket->info_off = info_off; - bucket->cu_info_off = debug_info_off; - names_table.buckets[bucket_idx] = bucket; - } - } - - scratch_end(scratch); - return names_table; -} - -internal DW_Expr -dw_expr_from_data(Arena *arena, DW_Format format, U64 addr_size, String8 data) -{ - DW_Expr expr = {0}; - for (U64 cursor = 0; cursor < data.size; ) { - U64 inst_start = cursor; - - DW_ExprOp opcode = 0; - cursor += str8_deserial_read_struct(data, cursor, &opcode); - - DW_ExprOperand operands[4] = {0}; - switch (opcode) { - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { - // implicit operands - } break; - case DW_ExprOp_Const1U: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); } break; - case DW_ExprOp_Const2U: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].u16); } break; - case DW_ExprOp_Const4U: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].u32); } break; - case DW_ExprOp_Const8U: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].u64); } break; - case DW_ExprOp_Const1S: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].s8); } break; - case DW_ExprOp_Const2S: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].s16); } break; - case DW_ExprOp_Const4S: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].s32); } break; - case DW_ExprOp_Const8S: { cursor += str8_deserial_read_struct(data, cursor, &operands[0].s64); } break; - case DW_ExprOp_ConstU: { cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); } break; - case DW_ExprOp_ConstS: { cursor += str8_deserial_read_sleb128(data, cursor, &operands[0].s64); } break; - case DW_ExprOp_Addr: { cursor += str8_deserial_read(data, cursor, &operands[0].u64, addr_size, addr_size); } break; - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { - // implicit operands - } break; - case DW_ExprOp_RegX: { cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); } break; - case DW_ExprOp_ImplicitValue: { - U64 value_size = 0; String8 value = {0}; - cursor += str8_deserial_read_uleb128(data, cursor, &value_size); - cursor += str8_deserial_read_block(data, cursor, value_size, &operands[0].block); - } break; - case DW_ExprOp_Piece: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_BitPiece: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - cursor += str8_deserial_read_uleb128(data, cursor, &operands[1].u64); - } break; - case DW_ExprOp_Pick: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); - } break; - case DW_ExprOp_PlusUConst: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_Skip: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].s16); - } break; - case DW_ExprOp_Bra: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].s16); - } break; - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { - cursor += str8_deserial_read_sleb128(data, cursor, &operands[0].s64); - } break; - case DW_ExprOp_BRegX: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - cursor += str8_deserial_read_sleb128(data, cursor, &operands[1].s64); - } break; - case DW_ExprOp_FBReg: { - cursor += str8_deserial_read_sleb128(data, cursor, &operands[0].s64); - } break; - case DW_ExprOp_Deref: { - // no operands - } break; - case DW_ExprOp_DerefSize: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); - } break; - case DW_ExprOp_XDerefSize: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); - } break; - case DW_ExprOp_Call2: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u16); - } break; - case DW_ExprOp_Call4: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u32); - } break; - case DW_ExprOp_CallRef: { - cursor += str8_deserial_read_dwarf_uint(data, cursor, format, &operands[0].u64); - } break; - case DW_ExprOp_ImplicitPointer: - case DW_ExprOp_GNU_ImplicitPointer: { - cursor += str8_deserial_read_dwarf_uint(data, cursor, format, &operands[0].u64); - cursor += str8_deserial_read_sleb128(data, cursor, &operands[1].s64); - } break; - case DW_ExprOp_Convert: - case DW_ExprOp_GNU_Convert: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_GNU_ParameterRef: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u32); - } break; - case DW_ExprOp_DerefType: - case DW_ExprOp_GNU_DerefType: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); - cursor += str8_deserial_read_uleb128(data, cursor, &operands[1].u64); - } break; - case DW_ExprOp_XDerefType: { - cursor += str8_deserial_read_struct(data, cursor, &operands[0].u8); - cursor += str8_deserial_read_uleb128(data, cursor, &operands[1].u64); - } break; - case DW_ExprOp_ConstType: - case DW_ExprOp_GNU_ConstType: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - cursor += str8_deserial_read_struct(data, cursor, &operands[1].u8); - cursor += str8_deserial_read_block(data, cursor, operands[1].u8, &operands[2].block); - } break; - case DW_ExprOp_RegvalType: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - cursor += str8_deserial_read_uleb128(data, cursor, &operands[1].u64); - } break; - case DW_ExprOp_EntryValue: - case DW_ExprOp_GNU_EntryValue: { - U64 entry_value_expr_size = 0; - cursor += str8_deserial_read_uleb128(data, cursor, &entry_value_expr_size); - cursor += str8_deserial_read_block(data, cursor, entry_value_expr_size, &operands[0].block); - } break; - case DW_ExprOp_Addrx: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_Constx: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_CallFrameCfa: - case DW_ExprOp_FormTlsAddress: - case DW_ExprOp_PushObjectAddress: - case DW_ExprOp_Nop: - case DW_ExprOp_Eq: - case DW_ExprOp_Ge: - case DW_ExprOp_Gt: - case DW_ExprOp_Le: - case DW_ExprOp_Lt: - case DW_ExprOp_Ne: - case DW_ExprOp_Shl: - case DW_ExprOp_Shr: - case DW_ExprOp_Shra: - case DW_ExprOp_Xor: - case DW_ExprOp_XDeref: - case DW_ExprOp_Abs: - case DW_ExprOp_And: - case DW_ExprOp_Div: - case DW_ExprOp_Minus: - case DW_ExprOp_Mod: - case DW_ExprOp_Mul: - case DW_ExprOp_Neg: - case DW_ExprOp_Not: - case DW_ExprOp_Or: - case DW_ExprOp_Plus: - case DW_ExprOp_Rot: - case DW_ExprOp_Swap: - case DW_ExprOp_Dup: - case DW_ExprOp_Drop: - case DW_ExprOp_Over: - case DW_ExprOp_StackValue: - case DW_ExprOp_GNU_PushTlsAddress: { - // no operands - } break; - case DW_ExprOp_GNU_AddrIndex: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - case DW_ExprOp_GNU_ConstIndex: { - cursor += str8_deserial_read_uleb128(data, cursor, &operands[0].u64); - } break; - default: { InvalidPath; } break; - } - - U64 operand_count = dw_operand_count_from_expr_op(opcode); - DW_ExprInst *inst = push_array(arena, DW_ExprInst, 1); - inst->opcode = opcode; - inst->size = cursor - inst_start; - inst->operands = push_array(arena, DW_ExprOperand, operand_count); - MemoryCopy(inst->operands, operands, operand_count * sizeof(DW_ExprOperand)); - - DLLPushBack(expr.first, expr.last, inst); - expr.count += 1; - } - return expr; -} - -internal void -dw_cfa_inst_list_push_node(DW_CFA_InstList *list, DW_CFA_InstNode *n) -{ - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal DW_CFA_InstNode * -dw_cfa_inst_list_push(Arena *arena, DW_CFA_InstList *list, DW_CFA_Inst v) -{ - DW_CFA_InstNode *n = push_array(arena, DW_CFA_InstNode, 1); - n->v = v; - dw_cfa_inst_list_push_node(list, n); - return n; -} - -internal U64 -dw_read_debug_frame_ptr(String8 data, DW_CIE *cie, U64 *ptr_out) -{ - U64 read_size = 0; - if (cie->segment_selector_size) { - NotImplemented; - } else { - read_size = str8_deserial_read(data, 0, ptr_out, cie->address_size, cie->address_size); - } - return read_size; -} - -internal U64 -dw_parse_descriptor_entry_header(String8 data, U64 off, DW_DescriptorEntry *desc_out) -{ - U32 first_four_bytes = 0; - str8_deserial_read_struct(data, off, &first_four_bytes); - DW_Format format = first_four_bytes == max_U32 ? DW_Format_64Bit : DW_Format_32Bit; - - U64 length = 0; - U64 length_size = str8_deserial_read_dwarf_packed_size(data, off, &length); - if (length_size == 0) { goto exit; } - - Rng1U64 entry_range = rng_1u64(off, off + length_size + length); - String8 entry_data = str8_substr(data, entry_range); + // rjf: read tag abbrev U64 id = 0; - U64 id_size = str8_deserial_read_dwarf_uint(entry_data, length_size, format, &id); - if (id_size == 0) { goto exit; } - - U64 id_type = format == DW_Format_32Bit ? max_U32 : max_U64; - desc_out->format = format; - desc_out->type = (id == id_type) ? DW_DescriptorEntryType_CIE : DW_DescriptorEntryType_FDE; - desc_out->entry_range = entry_range; - -exit:; - return length + length_size; -} - -internal B32 -dw_parse_cie(String8 data, DW_Format format, Arch arch, DW_CIE *cie_out) -{ - B32 is_parsed = 0; - U64 cursor = format == DW_Format_32Bit ? 4 : 12; - - U64 cie_id = 0; - U64 cie_id_size = str8_deserial_read_dwarf_uint(data, cursor, format, &cie_id); - if (cie_id_size == 0) { goto exit; } - cursor += cie_id_size; - - U8 version = 0; - U64 version_size = str8_deserial_read_struct(data, cursor, &version); - if (version_size == 0) { goto exit; } - cursor += version_size; - - String8 aug_string = {0}; - U64 aug_string_size = str8_deserial_read_cstr(data, cursor, &aug_string); - if (aug_string_size == 0) { goto exit; } - cursor += aug_string_size; - - U8 address_size = 0; - U8 segment_selector_size = 0; - if (version >= DW_Version_4) { - U64 address_size_size = str8_deserial_read_struct(data, cursor, &address_size); - if (address_size_size == 0) { goto exit; } - cursor += address_size_size; - - U64 segment_selector_size_size = str8_deserial_read_struct(data, cursor, &segment_selector_size); - if (segment_selector_size_size == 0) { goto exit; } - cursor += segment_selector_size; - } else { - address_size = byte_size_from_arch(arch); + U64 tag_kind = 0; + U8 has_children = 0; + { + off += str8_deserial_read_uleb128(data, off, &id); + if(id != 0) + { + off += str8_deserial_read_uleb128(data, off, &tag_kind); + off += str8_deserial_read_struct(data, off, &has_children); + } } - - U64 code_align_factor = 0; - U64 code_align_factor_size = str8_deserial_read_uleb128(data, cursor, &code_align_factor); - if (code_align_factor_size == 0) { goto exit; } - cursor += code_align_factor_size; - - S64 data_align_factor = 0; - U64 data_align_factor_size = str8_deserial_read_sleb128(data, cursor, &data_align_factor); - if (data_align_factor_size == 0) { goto exit; } - cursor += data_align_factor_size; - - U64 ret_addr_reg = 0; - U64 ret_addr_reg_size = 0; - if (version == DW_Version_1) { ret_addr_reg_size = str8_deserial_read(data, cursor, &ret_addr_reg, sizeof(U8), sizeof(U8)); } - else { ret_addr_reg_size = str8_deserial_read_uleb128(data, cursor, &ret_addr_reg); } - if (ret_addr_reg_size == 0) { goto exit; } - cursor += ret_addr_reg_size; - - if (aug_string.size > 0) { goto exit; } - - cie_out->insts = str8_skip(data, cursor); - cie_out->aug_string = aug_string; - cie_out->code_align_factor = code_align_factor; - cie_out->data_align_factor = data_align_factor; - cie_out->ret_addr_reg = ret_addr_reg; - cie_out->format = format; - cie_out->version = version; - cie_out->address_size = address_size; - cie_out->segment_selector_size = segment_selector_size; - - is_parsed = 1; -exit:; - return is_parsed; -} - -internal B32 -dw_parse_fde(String8 data, - DW_Format format, - DW_CIEFromOffsetFunc *cie_from_offset_func, - void *cie_from_offset_ud, - DW_FDE *fde_out) -{ - B32 is_parsed = 0; - U64 cursor = format == DW_Format_32Bit ? 4 : 12; - - // extract CIE pointer - U64 cie_pointer = 0; - U64 cie_pointer_size = str8_deserial_read_dwarf_uint(data, cursor, format, &cie_pointer); - if (cie_pointer_size == 0) { goto exit; } - cursor += cie_pointer_size; - - // map offset -> CIE - DW_CIE *cie = cie_from_offset_func(cie_from_offset_ud, cie_pointer); - if (cie == 0) { goto exit; } - - // extract address of first instruction - U64 pc_begin = 0; - U64 pc_begin_size = dw_read_debug_frame_ptr(str8_skip(data, cursor), cie, &pc_begin); - if (pc_begin_size == 0) { goto exit; } - cursor += pc_begin_size; - - // extract instruction range size - U64 pc_range = 0; - U64 pc_range_size = dw_read_debug_frame_ptr(str8_skip(data, cursor), cie, &pc_range); - if (pc_range_size == 0) { goto exit; } - cursor += pc_range_size; - - // parse augmentation data - String8 aug_data = str8_substr(data, rng_1u64(cursor, cursor + cie->aug_data.size)); - cursor += cie->aug_data.size; - - // commit values to out - fde_out->format = format; - fde_out->cie_pointer = cie_pointer; - fde_out->pc_range = rng_1u64(pc_begin, pc_begin + pc_range); - fde_out->insts = str8_skip(data, cursor); - - is_parsed = 1; -exit:; - return is_parsed; -} - -internal DW_CFA_ParseErrorCode -dw_parse_cfa_inst(String8 data, - U64 code_align_factor, - S64 data_align_factor, - DW_DecodePtr *decode_ptr_func, - void *decode_ptr_ud, - U64 *bytes_read_out, - DW_CFA_Inst *inst_out) -{ - *bytes_read_out = 0; - - DW_CFA_ParseErrorCode error_code = DW_CFA_ParseErrorCode_End; - U64 cursor = 0; - - // read opcode - DW_CFA_Opcode raw_opcode = 0; - U64 raw_opcode_size = str8_deserial_read_struct(data, cursor, &raw_opcode); - if (raw_opcode_size == 0) { goto exit; } - cursor += raw_opcode_size; - - // decode opcode implicit operand - U64 opcode = raw_opcode & ~DW_CFA_Mask_OpcodeHi; - U64 implicit_operand = 0; - if ((raw_opcode & DW_CFA_Mask_OpcodeHi) != 0) { - opcode = raw_opcode & DW_CFA_Mask_OpcodeHi; - implicit_operand = raw_opcode & DW_CFA_Mask_Operand; + + // rjf: read all tag attribute abbreviations + DW2_AbbrevAttribList attribs = {0}; + if(id != 0) + { + for(;;) + { + U64 attrib_start_off = off; + U64 attrib_kind = 0; + U64 attrib_form_kind = 0; + U64 implicit_const = 0; + off += str8_deserial_read_uleb128(data, off, &attrib_kind); + off += str8_deserial_read_uleb128(data, off, &attrib_form_kind); + if(attrib_form_kind == DW_FormKind_ImplicitConst) + { + off += str8_deserial_read_uleb128(data, off, &implicit_const); + } + if(attrib_kind != 0 && attribs_out != 0) + { + DW2_AbbrevAttribNode *n = push_array(arena, DW2_AbbrevAttribNode, 1); + SLLQueuePush(attribs.first, attribs.last, n); + attribs.count += 1; + n->v.attrib_kind = attrib_kind; + n->v.form_kind = attrib_form_kind; + n->v.implicit_const = implicit_const; + } + if(off == attrib_start_off || attrib_kind == 0) + { + break; + } + } } - - // decode operands - DW_CFA_Operand operands[DW_CFA_OperandMax] = {0}; - switch (opcode) { - case DW_CFA_SetLoc: { - U64 address_size = decode_ptr_func(str8_skip(data, cursor), decode_ptr_ud, &operands[0].u64); - if (address_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += address_size; - } break; - case DW_CFA_AdvanceLoc: { - operands[0].u64 = implicit_operand * code_align_factor; - } break; - case DW_CFA_AdvanceLoc1: { - U8 delta = 0; - U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); - if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += delta_size; - operands[0].u64 = delta * code_align_factor; - } break; - case DW_CFA_AdvanceLoc2: { - U16 delta = 0; - U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); - if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += delta_size; - operands[0].u64 = delta * code_align_factor; - } break; - case DW_CFA_AdvanceLoc4: { - U32 delta = 0; - U64 delta_size = str8_deserial_read_struct(data, cursor, &delta); - if (delta_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - operands[0].u64 = delta * code_align_factor; - } break; - case DW_CFA_DefCfa: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = reg; - operands[1].u64 = offset; - } break; - case DW_CFA_DefCfaSf: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - S64 offset = 0; - U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = reg; - operands[1].s64 = offset * data_align_factor; - } break; - case DW_CFA_DefCfaRegister: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - operands[0].u64 = reg; - } break; - case DW_CFA_DefCfaOffset: { - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = offset; - } break; - case DW_CFA_DefCfaOffsetSf: { - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = offset * data_align_factor; - } break; - case DW_CFA_DefCfaExpr: { - U64 expr_size = 0; - U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); - if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += expr_size_size; - - if (cursor + expr_size > data.size) { goto exit; } - String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); - - operands[0].block = expr; - cursor += expr_size; - } break; - case DW_CFA_Undefined: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - operands[0].u64 = reg; - } break; - case DW_CFA_SameValue: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - operands[0].u64 = reg; - } break; - case DW_CFA_Offset: { - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = implicit_operand; - operands[1].s64 = (S64)offset * data_align_factor; - } break; - case DW_CFA_OffsetExt: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = reg; - operands[1].u64 = offset * data_align_factor; - } break; - case DW_CFA_OffsetExtSf: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - S64 offset = 0; - U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = reg; - operands[1].s64 = offset * data_align_factor; - } break; - case DW_CFA_ValOffset: { - U64 val = 0; - U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); - if (val_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += val_size; - - U64 offset = 0; - U64 offset_size = str8_deserial_read_uleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = val; - operands[1].u64 = offset * data_align_factor; - } break; - case DW_CFA_ValOffsetSf: { - U64 val = 0; - U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); - if (val_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += val_size; - - S64 offset = 0; - U64 offset_size = str8_deserial_read_sleb128(data, cursor, &offset); - if (offset_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += offset_size; - - operands[0].u64 = val; - operands[1].s64 = offset; - } break; - case DW_CFA_Register: { - U64 dst_reg = 0; - U64 dst_reg_size = str8_deserial_read_uleb128(data, cursor, &dst_reg); - if (dst_reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += dst_reg_size; - - U64 src_reg = 0; - U64 src_reg_size = str8_deserial_read_uleb128(data, cursor, &src_reg); - if (src_reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += src_reg_size; - - operands[0].u64 = dst_reg; - operands[1].u64 = src_reg; - } break; - case DW_CFA_Expr: { - U64 reg = 0; - U64 reg_size = str8_deserial_read_uleb128(data, cursor, ®); - if (reg_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += reg_size; - - U64 expr_size = 0; - U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); - if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += expr_size_size; - - if (cursor + expr_size > data.size) { goto exit; } - String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); - cursor += expr_size; - - operands[0].block = expr; - } break; - case DW_CFA_ValExpr: { - U64 val = 0; - U64 val_size = str8_deserial_read_uleb128(data, cursor, &val); - if (val_size == 0) { goto exit; } - cursor += val_size; - - U64 expr_size = 0; - U64 expr_size_size = str8_deserial_read_uleb128(data, cursor, &expr_size); - if (expr_size_size == 0) { error_code = DW_CFA_ParseErrorCode_OutOfData; goto exit; } - cursor += expr_size_size; - - if (cursor + expr_size > data.size) { goto exit; } - String8 expr = str8_prefix(str8_skip(data, cursor), expr_size); - cursor += expr_size; - - operands[0].u64 = val; - operands[1].block = expr; - } break; - case DW_CFA_Restore: { - operands[0].u64 = implicit_operand; - } break; - case DW_CFA_RestoreExt: {} break; - case DW_CFA_RememberState: {} break; - case DW_CFA_RestoreState: {} break; - case DW_CFA_Nop: {} break; - default: { NotImplemented; goto exit; } break; + + // rjf: fill + if(header_out != 0) + { + header_out->id = id; + header_out->tag_kind = tag_kind; + header_out->has_children = has_children; } - - // fill out output - inst_out->opcode = opcode; - MemoryCopyTyped(&inst_out->operands[0], &operands[0], DW_CFA_OperandMax); - - *bytes_read_out = cursor; - - error_code = DW_CFA_ParseErrorCode_NewInst; - -exit:; - return error_code; + if(attribs_out != 0) + { + MemoryCopyStruct(attribs_out, &attribs); + } + + U64 bytes_read = (off-start_off); + return bytes_read; } -internal DW_CFA_InstList -dw_parse_cfa_inst_list(Arena *arena, - String8 data, - U64 code_align_factor, - S64 data_align_factor, - DW_DecodePtr *decode_ptr_func, - void *decode_ptr_ud) +internal DW2_AbbrevMap +dw2_abbrev_map_from_data(Arena *arena, String8 data, U64 off) { - U64 pos = arena_pos(arena); - DW_CFA_InstList list = {0}; - for (U64 cursor = 0, inst_size;; cursor += inst_size) { - DW_CFA_Inst inst = {0}; - DW_CFA_ParseErrorCode error_code = dw_parse_cfa_inst(str8_skip(data, cursor), code_align_factor, data_align_factor, decode_ptr_func, decode_ptr_ud, &inst_size, &inst); - if (error_code == DW_CFA_ParseErrorCode_End) { break; } - if (error_code != DW_CFA_ParseErrorCode_NewInst) { - MemoryZeroStruct(&list); - arena_pop_to(arena, pos); + DW2_AbbrevMap map = {0}; + + // rjf: loop - first to determine the number of tag formats encoded + // by this abbrev table, second to actually build a hash table for + // mapping (id -> .debug_abbrev offset) + for(B32 build = 0; build <= 1; build += 1) + { + // rjf: parse whole abbrev table + U64 tag_count = 0; + for(U64 read_off = off;;) + { + U64 start_off = read_off; + + // rjf: read next abbrev + DW2_AbbrevHeader header = {0}; + read_off += dw2_read_abbrev(arena, data, read_off, &header, 0); + + // rjf: count tag + if(header.id != 0) + { + tag_count += 1; + } + + // rjf: if building (second loop) -> insert into map + if(build) + { + U64 hash = u64_hash_from_str8(str8_struct(&header.id)); + U64 slot_idx = hash%map.slots_count; + DW2_AbbrevMapNode *n = push_array(arena, DW2_AbbrevMapNode, 1); + SLLStackPush(map.slots[slot_idx], n); + n->id = header.id; + n->off = start_off; + } + + // rjf: no tag ID, or no movement? -> exit + if(read_off == start_off || header.id == 0) + { + break; + } + } + + // rjf: on first loop iteration, given the tag format count, construct the table + if(!build) + { + map.slots_count = Max(1, tag_count + tag_count/4); + map.slots = push_array(arena, DW2_AbbrevMapNode *, map.slots_count); + } + } + + return map; +} + +internal DW2_UnitAbbrevMapMap +dw2_unit_abbrev_map_map_from_data(Arena *arena, String8 data, DW2_UnitHeader *unit_headers, U64 unit_headers_count) +{ + DW2_UnitAbbrevMapMap result = {0}; + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: gather deduplicated .debug_abbrev offsets, representing beginnings + // of abbreviation tables. we want to do this because many units may refer + // to the same abbreviation table. + // + typedef struct AbbrevOffNode AbbrevOffNode; + struct AbbrevOffNode + { + AbbrevOffNode *order_next; + AbbrevOffNode *hash_next; + U64 off; + U64 idx; + }; + U64 abbrev_off_slots_count = unit_headers_count; + AbbrevOffNode **abbrev_off_slots = 0; + U64 abbrev_map_count = 0; + U64 *abbrev_map_off_from_idx_table = 0; + DW2_AbbrevMap *abbrev_map_from_idx_table = 0; + DW2_AbbrevMap **abbrev_map_from_unit_idx_table = 0; + ProfScope("gather deduplicated .debug_abbrev offsets") if(lane_idx() == 0) + { + AbbrevOffNode *abbrev_off_first = 0; + AbbrevOffNode *abbrev_off_last = 0; + abbrev_off_slots = push_array(scratch.arena, AbbrevOffNode *, abbrev_off_slots_count); + for EachIndex(unit_idx, unit_headers_count) + { + U64 abbrev_off = unit_headers[unit_idx].abbrev_off; + U64 hash = u64_hash_from_str8(str8_struct(&abbrev_off)); + U64 slot_idx = hash%abbrev_off_slots_count; + AbbrevOffNode *node = 0; + for(AbbrevOffNode *n = abbrev_off_slots[slot_idx]; n != 0; n = n->hash_next) + { + if(n->off == abbrev_off) + { + node = n; + break; + } + } + if(node == 0) + { + node = push_array(arena, AbbrevOffNode, 1); + SLLStackPush_N(abbrev_off_slots[slot_idx], node, hash_next); + SLLQueuePush_N(abbrev_off_first, abbrev_off_last, node, order_next); + node->off = abbrev_off; + node->idx = abbrev_map_count; + abbrev_map_count += 1; + } + } + abbrev_map_off_from_idx_table = push_array(scratch.arena, U64, abbrev_map_count); + abbrev_map_from_idx_table = push_array(arena, DW2_AbbrevMap, abbrev_map_count); + abbrev_map_from_unit_idx_table = push_array(arena, DW2_AbbrevMap *, unit_headers_count); + { + U64 abbrev_map_idx = 0; + for(AbbrevOffNode *n = abbrev_off_first; n != 0; n = n->order_next) + { + abbrev_map_off_from_idx_table[abbrev_map_idx] = n->off; + abbrev_map_idx += 1; + } + } + } + lane_sync_u64(&abbrev_off_slots, 0); + lane_sync_u64(&abbrev_map_count, 0); + lane_sync_u64(&abbrev_map_off_from_idx_table, 0); + lane_sync_u64(&abbrev_map_from_idx_table, 0); + lane_sync_u64(&abbrev_map_from_unit_idx_table, 0); + + //- rjf: build all unique abbreviation maps + ProfScope("build all unique abbreviation maps") + { + U64 abbrev_map_take_idx = 0; + U64 *abbrev_map_take_idx_ptr = &abbrev_map_take_idx; + lane_sync_u64(&abbrev_map_take_idx_ptr, 0); + for(;;) + { + U64 abbrev_map_idx = ins_atomic_u64_inc_eval(abbrev_map_take_idx_ptr) - 1; + if(abbrev_map_idx >= abbrev_map_count) + { + break; + } + abbrev_map_from_idx_table[abbrev_map_idx] = dw2_abbrev_map_from_data(arena, data, abbrev_map_off_from_idx_table[abbrev_map_idx]); + } + lane_sync(); + } + + //- rjf: build unit -> abbrev map table + ProfScope("build unit -> abbrev map table") + { + Rng1U64 range = lane_range(unit_headers_count); + for EachInRange(unit_idx, range) + { + U64 abbrev_off = unit_headers[unit_idx].abbrev_off; + U64 hash = u64_hash_from_str8(str8_struct(&abbrev_off)); + U64 slot_idx = hash%abbrev_off_slots_count; + U64 abbrev_map_idx = 0; + for(AbbrevOffNode *n = abbrev_off_slots[slot_idx]; n != 0; n = n->hash_next) + { + if(n->off == abbrev_off) + { + abbrev_map_idx = n->idx; + break; + } + } + abbrev_map_from_unit_idx_table[unit_idx] = &abbrev_map_from_idx_table[abbrev_map_idx]; + } + lane_sync(); + } + + //- rjf: fill result + result.map_count = abbrev_map_count; + result.map_from_idx_table = abbrev_map_from_idx_table; + result.map_from_unit_idx_table = abbrev_map_from_unit_idx_table; + + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Form Value Parsing + +internal U64 +dw2_read_form_val(DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW_FormKind form_kind, U64 implicit_const, DW2_FormVal *out) +{ + U64 start_off = off; + DW2_FormVal val = {form_kind}; + { + //- rjf: read value bytes + U64 bytes_to_read = 0; + switch(form_kind) + { + //- rjf: no-ops + default: + case DW_FormKind_Indirect: + case DW_FormKind_Null: + {}break; + + //- rjf: 1-byte uint reads + case DW_FormKind_Ref1: + case DW_FormKind_Data1: + case DW_FormKind_Flag: + case DW_FormKind_Strx1: + case DW_FormKind_Addrx1: + bytes_to_read = 1; goto read_fixed_uint; + + //- rjf: 2-byte uint reads + case DW_FormKind_Ref2: + case DW_FormKind_Data2: + case DW_FormKind_Strx2: + case DW_FormKind_Addrx2: + bytes_to_read = 2; goto read_fixed_uint; + + //- rjf: 3-byte uint reads + case DW_FormKind_Strx3: + case DW_FormKind_Addrx3: + bytes_to_read = 3; goto read_fixed_uint; + + //- rjf: 4-byte uint reads + case DW_FormKind_Data4: + case DW_FormKind_Ref4: + case DW_FormKind_RefSup4: + case DW_FormKind_Strx4: + case DW_FormKind_Addrx4: + bytes_to_read = 4; goto read_fixed_uint; + + //- rjf: 8-byte uint reads + case DW_FormKind_Data8: + case DW_FormKind_Ref8: + case DW_FormKind_RefSig8: + case DW_FormKind_RefSup8: + bytes_to_read = 8; goto read_fixed_uint; + + //- rjf: 16-byte uint reads + case DW_FormKind_Data16: + bytes_to_read = 16; goto read_fixed_uint; + + //- rjf: address-sized reads + case DW_FormKind_Addr: + bytes_to_read = ctx->addr_size; goto read_fixed_uint; + + //- rjf: format-defined-size reads + case DW_FormKind_RefAddr: + case DW_FormKind_SecOffset: + case DW_FormKind_LineStrp: + case DW_FormKind_Strp: + case DW_FormKind_StrpSup: + bytes_to_read = dw_addr_size_from_format(ctx->format); goto read_fixed_uint; + + //- rjf: fixed-size uint reads + read_fixed_uint: + { + off += str8_deserial_read(data, off, &val.u128.u64[0], bytes_to_read, bytes_to_read); + }break; + + //- rjf: uleb128 reads + case DW_FormKind_UData: + case DW_FormKind_RefUData: + case DW_FormKind_Strx: + case DW_FormKind_Addrx: + case DW_FormKind_LocListx: + case DW_FormKind_RngListx: + { + off += str8_deserial_read_uleb128(data, off, &val.u128.u64[0]); + }break; + + //- rjf: sleb128 reads + case DW_FormKind_SData: + { + off += str8_deserial_read_sleb128(data, off, (S64 *)(&val.u128.u64[0])); + }break; + + //- rjf: fixed-size uint reads / skips + case DW_FormKind_Block1: bytes_to_read = 1; goto read_fixed_uint_and_skip; + case DW_FormKind_Block2: bytes_to_read = 2; goto read_fixed_uint_and_skip; + case DW_FormKind_Block4: bytes_to_read = 4; goto read_fixed_uint_and_skip; + read_fixed_uint_and_skip: + { + U64 size = 0; + U64 og_read_off = off; + off += str8_deserial_read(data, off, &size, bytes_to_read, bytes_to_read); + val.u128.u64[0] = size; + val.u128.u64[1] = og_read_off; + off += size; + }break; + + //- rjf: uleb128 read & skip + case DW_FormKind_Block: + { + U64 size = 0; + U64 og_read_off = off; + off += str8_deserial_read_uleb128(data, off, &size); + val.string = str8_substr(data, r1u64(off, off+size)); + off += size; + }break; + + //- rjf: strings + case DW_FormKind_String: + { + String8 string = {0}; + U64 og_read_off = off; + off += str8_deserial_read_cstr(data, off, &string); + val.string = string; + }break; + + //- rjf: implicit constants (no reading in .debug_info; value comes from .debug_abbrev) + case DW_FormKind_ImplicitConst: + { + val.u128.u64[0] = implicit_const; + }break; + + //- rjf: exprloc + case DW_FormKind_ExprLoc: + { + U64 size = 0; + U64 og_read_off = off; + U64 bytes_read = str8_deserial_read_uleb128(data, off, &size); + val.u128.u64[0] = og_read_off + bytes_read; + val.u128.u64[1] = size; + val.string = str8_substr(data, r1u64(og_read_off, og_read_off+size)); + off += size + bytes_read; + }break; + + //- rjf: flag present + case DW_FormKind_FlagPresent: + { + val.u128.u64[0] = 1; + }break; + } + + //- rjf: in some cases, resolve numeric values -> strings + { + switch(form_kind) + { + default:{}break; + case DW_FormKind_Strx1: + case DW_FormKind_Strx2: + case DW_FormKind_Strx3: + case DW_FormKind_Strx4: + case DW_FormKind_Strx: + if(ctx->str_offsets_table != 0) + { + U64 entry_idx = val.u128.u64[0]; + U64 string_data_off = 0; + if(dw2_try_offset_from_table_idx(ctx->str_offsets_table, entry_idx, &string_data_off)) + { + String8 string_section_data = raw->sec[DW_SectionKind_Str].data; + val.string = str8_cstring_capped(string_section_data.str + string_data_off, + string_section_data.str + string_section_data.size); + } + }break; + case DW_FormKind_LineStrp: + { + String8 string_section_data = raw->sec[DW_SectionKind_LineStr].data; + val.string = str8_cstring_capped(string_section_data.str + val.u128.u64[0], + string_section_data.str + string_section_data.size); + }break; + case DW_FormKind_Strp: + case DW_FormKind_StrpSup: + { + String8 string_section_data = raw->sec[DW_SectionKind_Str].data; + val.string = str8_cstring_capped(string_section_data.str + val.u128.u64[0], + string_section_data.str + string_section_data.size); + }break; + } + } + + //- rjf: in some cases, resolve base numeric values -> addresses + { + switch(form_kind) + { + default:{val.addr = val.u128.u64[0];}break; + case DW_FormKind_Addrx: + case DW_FormKind_Addrx1: + case DW_FormKind_Addrx2: + case DW_FormKind_Addrx3: + case DW_FormKind_Addrx4: + if(ctx->addr_table != 0) + { + U64 addr_idx = val.u128.u64[0]; + dw2_try_offset_from_table_idx(ctx->addr_table, addr_idx, &val.addr); + }break; + } + } + } + *out = val; + U64 bytes_read = (off - start_off); + return bytes_read; +} + +//////////////////////////////// +//~ rjf: Parse Context Construction + +internal void +dw2_parse_ctx_equip_unit_header(DW2_ParseCtx *ctx_out, DW2_UnitHeader *hdr, U64 unit_base_info_off) +{ + ctx_out->version = hdr->version; + ctx_out->format = hdr->format; + ctx_out->addr_size = hdr->addr_size; + ctx_out->unit_base_info_off = unit_base_info_off; +} + +internal void +dw2_parse_ctx_equip_unit_abbrev_map(DW2_ParseCtx *ctx_out, DW2_UnitAbbrevMapMap *map, U64 unit_idx) +{ + ctx_out->abbrev_map = map->map_from_unit_idx_table[unit_idx]; +} + +internal void +dw2_parse_ctx_equip_unit_root_tag(DW2_ParseCtx *ctx_out, DW2_Tag *tag, DW2_OffsetTableSet *offset_tables) +{ + // rjf: unpack attributes + DW2_Attrib *low_pc_attrib = &dw2_attrib_nil; + DW2_Attrib *lang_attrib = &dw2_attrib_nil; + DW2_Attrib *rnglists_base_off_attrib = &dw2_attrib_nil; + DW2_Attrib *str_offsets_base_off_attrib = &dw2_attrib_nil; + DW2_Attrib *addr_base_off_attrib = &dw2_attrib_nil; + DW2_Attrib *loclist_base_off_attrib = &dw2_attrib_nil; + DW2_Attrib *comp_dir_attrib = &dw2_attrib_nil; + for EachNode(n, DW2_AttribNode, tag->attribs.first) + { + switch(n->v.attrib_kind) + { + default:{}break; +#define Case(name, name_upper) case DW_AttribKind_##name_upper:{name##_attrib = &n->v;}break + Case(low_pc, LowPc); + Case(lang, Language); + Case(rnglists_base_off, RngListsBase); + Case(str_offsets_base_off, StrOffsetsBase); + Case(addr_base_off, AddrBase); + Case(loclist_base_off, LocListsBase); + Case(comp_dir, CompDir); +#undef Case + } + } + + // rjf: fill basics + ctx_out->unit_base_addr = low_pc_attrib->val.addr; + ctx_out->language = lang_attrib->val.u128.u64[0]; + ctx_out->unit_dir = comp_dir_attrib->val.string; + + // rjf: find offset tables + Rng1U64Array rnglists_tables_ranges_array = {offset_tables->rnglists_tables_ranges, offset_tables->rnglists_tables_count}; + Rng1U64Array str_offsets_tables_ranges_array = {offset_tables->str_offsets_tables_ranges, offset_tables->str_offsets_tables_count}; + Rng1U64Array addr_tables_ranges_array = {offset_tables->addr_tables_ranges, offset_tables->addr_tables_count}; + Rng1U64Array loclist_tables_ranges_array = {offset_tables->loclists_tables_ranges, offset_tables->loclists_tables_count}; + { + // rjf: find rnglists table + { + U64 rnglists_base_off = rnglists_base_off_attrib->val.u128.u64[0]; + U64 rnglists_table_num = rng1u64_array_num_from_value__binary_search(&rnglists_tables_ranges_array, rnglists_base_off); + if(0 < rnglists_table_num && rnglists_table_num <= rnglists_tables_ranges_array.count) + { + DW2_OffsetTable *table = &offset_tables->rnglists_tables[rnglists_table_num-1]; + ctx_out->rnglists_table = table; + } + } + + // rjf: find str offsets table + { + U64 str_offsets_base_off = str_offsets_base_off_attrib->val.u128.u64[0]; + U64 str_offsets_table_num = rng1u64_array_num_from_value__binary_search(&str_offsets_tables_ranges_array, str_offsets_base_off); + if(0 < str_offsets_table_num && str_offsets_table_num <= str_offsets_tables_ranges_array.count) + { + DW2_OffsetTable *table = &offset_tables->str_offsets_tables[str_offsets_table_num-1]; + ctx_out->str_offsets_table = table; + } + } + + // rjf: find addr table + { + U64 addr_base_off = addr_base_off_attrib->val.u128.u64[0]; + U64 addr_table_num = rng1u64_array_num_from_value__binary_search(&addr_tables_ranges_array, addr_base_off); + if(0 < addr_table_num && addr_table_num <= addr_tables_ranges_array.count) + { + DW2_OffsetTable *table = &offset_tables->addr_tables[addr_table_num-1]; + ctx_out->addr_table = table; + } + } + + // rjf: find loclists table + { + U64 loclist_base_off = loclist_base_off_attrib->val.u128.u64[0]; + U64 loclist_table_num = rng1u64_array_num_from_value__binary_search(&loclist_tables_ranges_array, loclist_base_off); + if(0 < loclist_table_num && loclist_table_num <= loclist_tables_ranges_array.count) + { + DW2_OffsetTable *table = &offset_tables->loclists_tables[loclist_table_num-1]; + ctx_out->loclists_table = table; + } + } + } +} + +//////////////////////////////// +//~ rjf: Tag Parsing + +internal U64 +dw2_read_tag(Arena *arena, DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW2_Tag *tag_out) +{ + U64 start_off = off; + + // rjf: read tag's abbrev ID + U64 abbrev_id = 0; + off += str8_deserial_read_uleb128(data, off, &abbrev_id); + + // rjf: map abbrev ID -> abbrev offset + U64 abbrev_off = 0; + { + DW2_AbbrevMap *abbrev_map = ctx->abbrev_map; + U64 hash = u64_hash_from_str8(str8_struct(&abbrev_id)); + U64 slot_idx = hash%abbrev_map->slots_count; + for EachNode(n, DW2_AbbrevMapNode, abbrev_map->slots[slot_idx]) + { + if(n->id == abbrev_id) + { + abbrev_off = n->off; + break; + } + } + } + + // rjf: read abbrev header + U64 tag_kind = 0; + U8 has_children = 0; + U64 attrib_abbrev_read_off = 0; + { + String8 abbrev_data = raw->sec[DW_SectionKind_Abbrev].data; + U64 abbrev_read_off = abbrev_off; + U64 id = 0; + abbrev_read_off += str8_deserial_read_uleb128(abbrev_data, abbrev_read_off, &id); + if(id != 0) + { + abbrev_read_off += str8_deserial_read_uleb128(abbrev_data, abbrev_read_off, &tag_kind); + abbrev_read_off += str8_deserial_read_struct(abbrev_data, abbrev_read_off, &has_children); + } + attrib_abbrev_read_off = abbrev_read_off; + } + + // rjf: walk abbrev / info in lock-step; read all tag attributes + DW2_AttribList attribs = {0}; + if(abbrev_id != 0) + { + String8 abbrev_data = raw->sec[DW_SectionKind_Abbrev].data; + U64 abbrev_read_off = attrib_abbrev_read_off; + for(;;) + { + U64 abbrev_start_read_off = abbrev_read_off; + + // rjf: read next attribute abbreviation from .debug_abbrev + U64 attrib_kind = 0; + U64 attrib_form_kind = 0; + U64 implicit_const = 0; + abbrev_read_off += str8_deserial_read_uleb128(abbrev_data, abbrev_read_off, &attrib_kind); + abbrev_read_off += str8_deserial_read_uleb128(abbrev_data, abbrev_read_off, &attrib_form_kind); + if(attrib_form_kind == DW_FormKind_ImplicitConst) + { + abbrev_read_off += str8_deserial_read_uleb128(abbrev_data, abbrev_read_off, &implicit_const); + } + + // rjf: indirect form -> form kind is encoded in .debug_info (because why not) + if(attrib_form_kind == DW_FormKind_Indirect) + { + off += str8_deserial_read_uleb128(data, off, &attrib_form_kind); + } + + // rjf: read attribute's value from .debug_info + DW2_FormVal val = {0}; + if(attrib_kind != 0) + { + off += dw2_read_form_val(raw, ctx, data, off, attrib_form_kind, implicit_const, &val); + } + + // rjf: push + if(attrib_kind != 0) + { + DW2_AttribNode *n = push_array(arena, DW2_AttribNode, 1); + SLLQueuePush(attribs.first, attribs.last, n); + attribs.count += 1; + n->v.attrib_kind = attrib_kind; + n->v.val = val; + } + + // rjf: no movement, or no attrib kind -> done + if(abbrev_read_off == abbrev_start_read_off || attrib_kind == 0) + { + break; + } + } + } + + // rjf: fill output + tag_out->kind = (DW_TagKind)tag_kind; + tag_out->has_children = !!has_children; + tag_out->attribs = attribs; + + // rjf: return # of bytes read + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal DW2_Attrib * +dw2_attrib_from_kind(DW2_Tag *tag, DW_AttribKind kind) +{ + DW2_Attrib *result = &dw2_attrib_nil; + for EachNode(n, DW2_AttribNode, tag->attribs.first) + { + if(n->v.attrib_kind == kind) + { + result = &n->v; + break; + } + } + return result; +} + +internal U64 +dw2_reference_info_off_from_form_val(DW2_ParseCtx *ctx, DW2_FormVal *v) +{ + U64 result = 0; + switch(v->kind) + { + default:{}break; + case DW_FormKind_Ref1: + case DW_FormKind_Ref2: + case DW_FormKind_Ref4: + case DW_FormKind_Ref8: + { + result = ctx->unit_base_info_off + v->u128.u64[0]; + }break; + // TODO(rjf): DW_FormKind_RefAddr, DW_FormKind_RefUData, DW_FormKind_RefSig8, DW_FormKind_RefSup8, etc. + } + return result; +} + +//////////////////////////////// +//~ rjf: Line Table Parsing + +internal U64 +dw2_read_line_table_header(Arena *arena, DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW2_LineTableHeader *out) +{ + Temp scratch = scratch_begin(&arena, 1); + U64 start_off = off; + + ////////////////////////////// + //- rjf: read unit length + // + U64 unit_length = 0; + DW_Format format = DW_Format_32Bit; + off += dw2_read_initial_length(data, off, &unit_length, &format); + U64 off_opl = off + unit_length; + + ////////////////////////////// + //- rjf: read version + // + DW_Version version = DW_Version_Null; + off += str8_deserial_read_struct(data, off, &version); + + ////////////////////////////// + //- rjf: read address / segment selector sizes + // + U8 addr_size = 0; + U8 segment_selector_size = 0; + switch(version) + { + // NOTE(rjf): pre-dwarf5: assume from context + default: + { + addr_size = ctx->addr_size; + }break; + + // NOTE(rjf): @dwarf5 read address / segment selector sizes explicitly + case DW_Version_5: + { + off += str8_deserial_read_struct(data, off, &addr_size); + off += str8_deserial_read_struct(data, off, &segment_selector_size); + }break; + } + + ////////////////////////////// + //- rjf: read all remaining flat header properties + // + U64 opl_header_length_off = 0; + U64 header_length = 0; + U8 min_inst_length = 0; + U8 max_ops_per_inst = 1; + U8 default_is_stmt = 0; + S8 line_base = 0; + U8 line_range = 0; + U8 opcode_base = 0; + { + off += dw2_read_fmt_u64(data, off, format, &header_length); + opl_header_length_off = off; + off += str8_deserial_read_struct(data, off, &min_inst_length); + off += str8_deserial_read_struct(data, off, &max_ops_per_inst); + off += str8_deserial_read_struct(data, off, &default_is_stmt); + off += str8_deserial_read_struct(data, off, &line_base); + off += str8_deserial_read_struct(data, off, &line_range); + off += str8_deserial_read_struct(data, off, &opcode_base); + } + + ////////////////////////////// + //- rjf: read opcode lengths + // + U64 opcode_lengths_count = (opcode_base > 0 ? opcode_base - 1 : 0); + U8 *opcode_lengths = 0; + if(opcode_lengths_count > 0) + { + opcode_lengths = str8_skip(data, off).str; + off += sizeof(opcode_lengths[0]) * opcode_lengths_count; + } + + ////////////////////////////// + //- rjf: read directory / file tables + // + DW2_LineTableFileArray dirs = {0}; + DW2_LineTableFileArray files = {0}; + switch(version) + { + //////////////////////////// + //- rjf: pre-dwarf5: simple(r) well-defined format... still ulebs everywhere but oh well... + // just wait until the next case... + // + default: + { + //- rjf: gather directories + DW2_LineTableFileList dir_list = {0}; + { + // rjf: push compile directory as first list element, always + { + DW2_LineTableFileNode *n = push_array(scratch.arena, DW2_LineTableFileNode, 1); + SLLQueuePush(dir_list.first, dir_list.last, n); + dir_list.count += 1; + n->v.file_name = ctx->unit_dir; + } + + // rjf: gather additional directories + for(;off < off_opl;) + { + String8 dir = {0}; + off += str8_deserial_read_cstr(data, off, &dir); + if(dir.size != 0) + { + DW2_LineTableFileNode *n = push_array(scratch.arena, DW2_LineTableFileNode, 1); + SLLQueuePush(dir_list.first, dir_list.last, n); + dir_list.count += 1; + n->v.file_name = dir; + } + else + { + break; + } + } + } + + //- rjf: gather files + DW2_LineTableFileList file_list = {0}; + { + // rjf: push main compilation unit file as first list element, always + { + DW2_LineTableFileNode *n = push_array(scratch.arena, DW2_LineTableFileNode, 1); + SLLQueuePush(file_list.first, file_list.last, n); + file_list.count += 1; + n->v.file_name = ctx->unit_file; + } + + // rjf: gather additional files + for(;off < off_opl;) + { + U8 next_byte = 0; + str8_deserial_read_struct(data, off, &next_byte); + if(next_byte == 0) + { + break; + } + String8 file_name = {0}; + U64 dir_idx = 0; + U64 modify_time = 0; + U64 file_size = 0; + off += str8_deserial_read_cstr(data, off, &file_name); + off += str8_deserial_read_uleb128(data, off, &dir_idx); + off += str8_deserial_read_uleb128(data, off, &modify_time); + off += str8_deserial_read_uleb128(data, off, &file_size); + if(file_name.size != 0) + { + DW2_LineTableFileNode *n = push_array(scratch.arena, DW2_LineTableFileNode, 1); + SLLQueuePush(file_list.first, file_list.last, n); + file_list.count += 1; + n->v.file_name = file_name; + n->v.dir_idx = dir_idx; + n->v.modify_time = modify_time; + n->v.file_size = file_size; + } + } + } + + //- rjf: flatten + { + dirs.count = dir_list.count; + dirs.v = push_array(arena, DW2_LineTableFile, dirs.count); + files.count = file_list.count; + files.v = push_array(arena, DW2_LineTableFile, files.count); + { + U64 idx = 0; + for EachNode(n, DW2_LineTableFileNode, dir_list.first) + { + MemoryCopyStruct(&dirs.v[idx], &n->v); + idx += 1; + } + } + { + U64 idx = 0; + for EachNode(n, DW2_LineTableFileNode, file_list.first) + { + MemoryCopyStruct(&files.v[idx], &n->v); + idx += 1; + } + } + } + }break; + + //////////////////////////// + //- rjf: @dwarf5: another VM! d'oh. :( + // + case DW_Version_5: + { + //- rjf: read directory & file tables + for(B32 do_files = 0, do_dirs = 1; do_files <= 1; do_files += 1, do_dirs = 0) + { + // rjf: read header + U8 entry_formats_count = 0; + off += str8_deserial_read_struct(data, off, &entry_formats_count); + U64 *entry_formats = push_array(scratch.arena, U64, entry_formats_count*2); + for EachIndex(idx, entry_formats_count) + { + off += str8_deserial_read_uleb128(data, off, &entry_formats[idx*2 + 0]); + off += str8_deserial_read_uleb128(data, off, &entry_formats[idx*2 + 1]); + } + U64 table_count = 0; + off += str8_deserial_read_uleb128(data, off, &table_count); + + // rjf: read all table entries + DW2_LineTableFileArray table = {0}; + table.count = table_count; + table.v = push_array(arena, DW2_LineTableFile, table.count); + { + U64 idx = 0; + for(;off < off_opl && idx < table.count; idx += 1) + { + DW2_LineTableFile *entry_out = &table.v[idx]; + for(U64 entry_format_idx = 0; entry_format_idx < entry_formats_count; entry_format_idx += 1) + { + DW_LNCT lnct = (DW_LNCT)entry_formats[entry_format_idx*2 + 0]; + DW_FormKind form_kind = (DW_FormKind)entry_formats[entry_format_idx*2 + 1]; + DW2_FormVal form_val = {0}; + off += dw2_read_form_val(raw, ctx, data, off, form_kind, 0, &form_val); + switch(lnct) + { + default: + { + log_infof("DWARF LNCT encoding not currently supported (0x%I64x).\n", (U64)lnct); + }break; + case DW_LNCT_Path: + { + entry_out->file_name = form_val.string; + }break; + case DW_LNCT_DirectoryIndex: + { + entry_out->dir_idx = form_val.u128.u64[0]; + }break; + case DW_LNCT_TimeStamp: + { + entry_out->modify_time = form_val.u128.u64[0]; + entry_out->flags |= DW2_LineTableFileFlag_HasModifyTime; + }break; + case DW_LNCT_Size: + { + entry_out->file_size = form_val.u128.u64[0]; + }break; + case DW_LNCT_MD5: + { + entry_out->md5.u128 = form_val.u128; + entry_out->flags |= DW2_LineTableFileFlag_HasMD5; + }break; + case DW_LNCT_LLVM_Source: + { + entry_out->source = form_val.string; + }break; + } + } + } + } + + // rjf: store + if(0){} + else if(do_files) { files = table; } + else if(do_dirs) { dirs = table; } + } + + }break; + } + + ////////////////////////////// + //- rjf: fill output + // + if(out) + { + out->unit_length = unit_length; + out->format = format; + out->version = version; + out->addr_size = addr_size; + out->segment_selector_size = segment_selector_size; + out->header_length = header_length; + out->min_inst_length = min_inst_length; + out->max_ops_per_inst = max_ops_per_inst; + out->default_is_stmt = default_is_stmt; + out->line_base = line_base; + out->line_range = line_range; + out->opcode_base = opcode_base; + out->opcode_lengths_count = opcode_lengths_count; + out->opcode_lengths = opcode_lengths; + out->dirs = dirs; + out->files = files; + out->line_program_off = opl_header_length_off + header_length; + out->total_unit_data_size = (off_opl - start_off); + } + + U64 bytes_read = (off - start_off); + scratch_end(scratch); + return bytes_read; +} + +//////////////////////////////// +//~ rjf: String Offset Table Parsing (.debug_str_offsets) + +internal U64 +dw2_read_offset_table(String8 data, U64 off, DW2_OffsetTable *out) +{ + U64 start_off = off; + { + // rjf: read data length / format + U64 unit_data_length = 0; + DW_Format format = DW_Format_Null; + off += dw2_read_initial_length(data, off, &unit_data_length, &format); + U64 unit_data_off_opl = off + unit_data_length; + + // rjf: read version + DW_Version version = DW_Version_Null; + off += str8_deserial_read_struct(data, off, &version); + + // rjf: version 5: read rest (this section only exists in 5+) + if(version == DW_Version_5) + { + // rjf: read address / segment selector size (these need to be 0 in non-address offset tables) + U8 addr_size = 0; + U8 segment_selector_size = 0; + off += str8_deserial_read_struct(data, off, &addr_size); + off += str8_deserial_read_struct(data, off, &segment_selector_size); + + // rjf: determine entry size + U64 entry_size = dw_addr_size_from_format(format); + if(addr_size != 0) + { + entry_size = addr_size + segment_selector_size; + } + + // rjf: fill table info + out->format = format; + out->version = version; + out->addr_size = addr_size; + out->segment_selector_size = segment_selector_size; + out->entry_size = entry_size; + out->entries_count = (unit_data_off_opl - off) / out->entry_size; + out->entries = data.str + off; + + // rjf: skip table + off = unit_data_off_opl; + } + } + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal DW2_OffsetTableList +dw2_offset_table_list_from_data(Arena *arena, String8 data) +{ + DW2_OffsetTableList list = {0}; + for(U64 off = 0; off < data.size;) + { + U64 start_off = off; + DW2_OffsetTable table = {0}; + off += dw2_read_offset_table(data, off, &table); + if(table.entries != 0) + { + DW2_OffsetTableNode *n = push_array(arena, DW2_OffsetTableNode, 1); + SLLQueuePush(list.first, list.last, n); + n->v = table; + n->range = r1u64(start_off, off); + list.count += 1; + } + if(off == start_off) + { break; } - dw_cfa_inst_list_push(arena, &list, inst); } return list; } -internal -DW_DECODE_PTR(dw_decode_ptr_debug_frame) +internal B32 +dw2_try_offset_from_table_idx(DW2_OffsetTable *tbl, U64 idx, U64 *out) { - return dw_read_debug_frame_ptr(data, ud, ptr_out); + B32 result = 0; + if(idx < tbl->entries_count) + { + U64 entry_size = tbl->entry_size; + U64 entry_off = idx * entry_size; + if(tbl->addr_size != 0) + { + U64 segment_off = entry_off; + U64 addr_off = entry_off + tbl->segment_selector_size; + U64 segment = 0; + U64 addr = 0; + MemoryCopy(&segment, (U8 *)tbl->entries + segment_off, tbl->segment_selector_size); + MemoryCopy(&addr, (U8 *)tbl->entries + addr_off, tbl->addr_size); + // TODO(rjf): @segment_based_addressing + *out = addr; + } + else + { + MemoryCopy(out, (U8 *)tbl->entries + entry_off, entry_size); + } + result = 1; + } + return result; } +internal DW2_OffsetTableSet +dw2_offset_table_set_from_raw(Arena *arena, DW_Raw *raw) +{ + DW2_OffsetTableSet result = {0}; + { + struct + { + String8 data; + U64 *tables_count_out; + DW2_OffsetTable **tables_out; + Rng1U64 **tables_ranges_out; + } + tasks[] = + { + {raw->sec[DW_SectionKind_StrOffsets].data, &result.str_offsets_tables_count, &result.str_offsets_tables, &result.str_offsets_tables_ranges}, + {raw->sec[DW_SectionKind_RngLists].data, &result.rnglists_tables_count, &result.rnglists_tables, &result.rnglists_tables_ranges}, + {raw->sec[DW_SectionKind_Addr].data, &result.addr_tables_count, &result.addr_tables, &result.addr_tables_ranges}, + {raw->sec[DW_SectionKind_LocLists].data, &result.loclists_tables_count, &result.loclists_tables, &result.loclists_tables_ranges}, + }; + for EachElement(task_idx, tasks) + { + Temp scratch = scratch_begin(&arena, 1); + String8 data = tasks[task_idx].data; + DW2_OffsetTableList tables = dw2_offset_table_list_from_data(scratch.arena, data); + tasks[task_idx].tables_count_out[0] = tables.count; + tasks[task_idx].tables_out[0] = push_array(arena, DW2_OffsetTable, tables.count); + tasks[task_idx].tables_ranges_out[0] = push_array(arena, Rng1U64, tables.count); + { + U64 idx = 0; + for EachNode(n, DW2_OffsetTableNode, tables.first) + { + tasks[task_idx].tables_out[0][idx] = n->v; + tasks[task_idx].tables_ranges_out[0][idx] = n->range; + idx += 1; + } + } + scratch_end(scratch); + } + } + return result; +} + +//////////////////////////////// +//~ rjf: Range List Parsing (.debug_rnglists) + +internal Rng1U64List +dw2_rnglist_from_form_val(Arena *arena, DW2_ParseCtx *ctx, DW_Raw *raw, DW2_FormVal form_val) +{ + Rng1U64List result = {0}; + switch((DW_VersionEnum)ctx->version) + { + case DW_Version_Null:{}break; + + //- rjf: pre-dwarf5 + case DW_Version_1: + case DW_Version_2: + case DW_Version_3: + case DW_Version_4: + { + String8 data = raw->sec[DW_SectionKind_Ranges].data; + U64 ranges_off = ranges_off = form_val.u128.u64[0];; + U64 base_addr = ctx->unit_base_addr; + U64 sentinel = (ctx->addr_size == 4 ? max_U32 : max_U64); + for(U64 off = ranges_off; off < data.size;) + { + U64 start_off = off; + U64 range_min = 0; + U64 range_opl = 0; + off += str8_deserial_read(data, off, &range_min, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read(data, off, &range_opl, ctx->addr_size, ctx->addr_size); + // + // NOTE(rjf): interpreting tuples: + // [0, 0) -> ending range list + // [max_U32/U64, depending on addr size, X) -> set new base address to X + // [N, M) -> new [base + N, base + M) range + // + if(range_min == 0 && range_opl == 0) + { + break; + } + else if(range_min == sentinel) + { + base_addr = range_opl; + } + else if(off == start_off) + { + break; + } + else + { + rng1u64_list_push(arena, &result, r1u64(base_addr + range_min, base_addr + range_opl)); + } + if(off == start_off) + { + break; + } + } + }break; + + //- rjf: @dwarf5 + case DW_Version_5: + { + String8 data = raw->sec[DW_SectionKind_RngLists].data; + + // rjf: determine section offset - sometimes this is encoded directly, + // other times it is relative, based on the form kind - more variability + // in this awful format + U64 rnglist_off = 0; + switch(form_val.kind) + { + default:{}break; + case DW_FormKind_SecOffset: + { + rnglist_off = form_val.u128.u64[0]; + }break; + case DW_FormKind_RngListx: + if(ctx->rnglists_table != 0) + { + U64 rnglist_off_idx = form_val.u128.u64[0]; + dw2_try_offset_from_table_idx(ctx->rnglists_table, rnglist_off_idx, &rnglist_off); + }break; + } + + // rjf: in a HIGHLY UNEXPECTED TURN OF EVENTS, we now have to decode ANOTHER + // OPCODE STREAM to unpack the actual list of ranges!!! + U64 rle_sentinel = (ctx->addr_size == 4 ? max_U32 : max_U64); + U64 base_addr = ctx->unit_base_addr; + for(U64 off = rnglist_off; off < data.size;) + { + U64 start_off = off; + + // rjf: decode op kind + DW_RLE rle_kind = DW_RLE_EndOfList; + off += str8_deserial_read_struct(data, off, &rle_kind); + + // rjf: obtain range from op + B32 good_range = 1; + Rng1U64 range = {0}; + switch(rle_kind) + { + default:{good_range = 0;}break; + case DW_RLE_BaseAddressx: + { + good_range = 0; + U64 addr_idx = 0; + off += str8_deserial_read_uleb128(data, off, &addr_idx); + if(ctx->addr_table != 0) + { + U64 new_base_addr = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, addr_idx, &new_base_addr)) + { + good_range = 1; + base_addr = new_base_addr; + } + } + }break; + case DW_RLE_StartxEndx: + { + good_range = 0; + U64 start_idx = 0; + U64 end_idx = 0; + off += str8_deserial_read_uleb128(data, off, &start_idx); + off += str8_deserial_read_uleb128(data, off, &end_idx); + if(ctx->addr_table != 0) + { + U64 start = 0; + U64 end = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, start_idx, &start) && + dw2_try_offset_from_table_idx(ctx->addr_table, end_idx, &end)) + { + good_range = 1; + range = r1u64(start, end); + } + } + }break; + case DW_RLE_StartxLength: + { + good_range = 0; + U64 start_idx = 0; + U64 length = 0; + off += str8_deserial_read_uleb128(data, off, &start_idx); + off += str8_deserial_read_uleb128(data, off, &length); + if(ctx->addr_table != 0) + { + U64 start = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, start_idx, &start)) + { + good_range = 1; + range = r1u64(start, start+length); + } + } + }break; + case DW_RLE_OffsetPair: + { + U64 range_off_start = 0; + U64 range_off_end = 0; + off += str8_deserial_read_uleb128(data, off, &range_off_start); + off += str8_deserial_read_uleb128(data, off, &range_off_end); + range = r1u64(base_addr + range_off_start, base_addr + range_off_end); + }break; + case DW_RLE_BaseAddress: + { + U64 new_base_addr = 0; + off += str8_deserial_read(data, off, &new_base_addr, ctx->addr_size, ctx->addr_size); + base_addr = new_base_addr; + }break; + case DW_RLE_StartEnd: + { + U64 start = 0; + U64 end = 0; + off += str8_deserial_read(data, off, &start, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read(data, off, &end, ctx->addr_size, ctx->addr_size); + range = r1u64(start, end); + }break; + case DW_RLE_StartLength: + { + U64 start = 0; + U64 length = 0; + off += str8_deserial_read(data, off, &start, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read_uleb128(data, off, &length); + range = r1u64(start, start + length); + }break; + } + + // rjf: add range + if(good_range) + { + rng1u64_list_push(arena, &result, range); + } + + // rjf: end if no movement or end-of-list code + if(off == start_off || rle_kind == DW_RLE_EndOfList) + { + break; + } + } + }break; + } + return result; +} + +//////////////////////////////// +//~ rjf: Location List Parsing (.debug_loclists) + +internal DW2_LocList +dw2_loclist_from_form_val(Arena *arena, DW2_ParseCtx *ctx, DW_Raw *raw, DW2_FormVal form_val) +{ + DW2_LocList result = {0}; + switch((DW_VersionEnum)ctx->version) + { + case DW_Version_Null:{}break; + + //- rjf: pre-dwarf5 + case DW_Version_1: + case DW_Version_2: + case DW_Version_3: + case DW_Version_4: + { + String8 data = raw->sec[DW_SectionKind_Loc].data; + U64 locs_off = locs_off = form_val.u128.u64[0]; + U64 base_addr = ctx->unit_base_addr; + U64 sentinel = (ctx->addr_size == 4 ? max_U32 : max_U64); + for(U64 off = locs_off; off < data.size;) + { + U64 start_off = off; + U64 range_min = 0; + U64 range_opl = 0; + off += str8_deserial_read(data, off, &range_min, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read(data, off, &range_opl, ctx->addr_size, ctx->addr_size); + // + // NOTE(rjf): interpreting tuples: + // [0, 0) -> ending range list + // [max_U32/U64, depending on addr size, X) -> set new base address to X + // [N, M) -> new [base + N, base + M) range + // + if(range_min == 0 && range_opl == 0) + { + break; + } + else if(range_min == sentinel) + { + base_addr = range_opl; + } + else if(off == start_off) + { + break; + } + else + { + U16 expr_size = 0; + off += str8_deserial_read_struct(data, off, &expr_size); + DW2_LocNode *n = push_array(arena, DW2_LocNode, 1); + n->v.range = r1u64(range_min + base_addr, range_opl + base_addr); + n->v.expr = str8_substr(data, r1u64(off, off+expr_size)); + SLLQueuePush(result.first, result.last, n); + result.count += 1; + off += expr_size; + } + if(off == start_off) + { + break; + } + } + }break; + + //- rjf: @dwarf5 + case DW_Version_5: + { + String8 data = raw->sec[DW_SectionKind_LocLists].data; + + // rjf: determine section offset - sometimes this is encoded directly, + // other times it is relative, based on the form kind - more variability + // in this awful format + U64 loclist_off = 0; + switch(form_val.kind) + { + default:{}break; + case DW_FormKind_SecOffset: + { + loclist_off = form_val.u128.u64[0]; + }break; + case DW_FormKind_LocListx: + if(ctx->rnglists_table != 0) + { + U64 loclist_off_idx = form_val.u128.u64[0]; + dw2_try_offset_from_table_idx(ctx->loclists_table, loclist_off_idx, &loclist_off); + }break; + } + + // rjf: in a HIGHLY UNEXPECTED TURN OF EVENTS, we now have to decode ANOTHER + // OPCODE STREAM to unpack the actual list of locations!!! + U64 rle_sentinel = (ctx->addr_size == 4 ? max_U32 : max_U64); + U64 base_addr = ctx->unit_base_addr; + for(U64 off = loclist_off; off < data.size;) + { + U64 start_off = off; + + // rjf: decode op kind + DW_LLE lle_kind = DW_LLE_EndOfList; + off += str8_deserial_read_struct(data, off, &lle_kind); + + // rjf: obtain range from op + B32 good_loc = 1; + Rng1U64 range = {0}; + switch(lle_kind) + { + default:{good_loc = 0;}break; + case DW_LLE_BaseAddressx: + { + good_loc = 0; + U64 addr_idx = 0; + off += str8_deserial_read_uleb128(data, off, &addr_idx); + if(ctx->addr_table != 0) + { + U64 new_base_addr = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, addr_idx, &new_base_addr)) + { + good_loc = 1; + base_addr = new_base_addr; + } + } + }break; + case DW_LLE_StartxEndx: + { + good_loc = 0; + U64 start_idx = 0; + U64 end_idx = 0; + off += str8_deserial_read_uleb128(data, off, &start_idx); + off += str8_deserial_read_uleb128(data, off, &end_idx); + if(ctx->addr_table != 0) + { + U64 start = 0; + U64 end = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, start_idx, &start) && + dw2_try_offset_from_table_idx(ctx->addr_table, end_idx, &end)) + { + good_loc = 1; + range = r1u64(start, end); + } + } + }break; + case DW_LLE_StartxLength: + { + good_loc = 0; + U64 start_idx = 0; + U64 length = 0; + off += str8_deserial_read_uleb128(data, off, &start_idx); + off += str8_deserial_read_uleb128(data, off, &length); + if(ctx->addr_table != 0) + { + U64 start = 0; + if(dw2_try_offset_from_table_idx(ctx->addr_table, start_idx, &start)) + { + good_loc = 1; + range = r1u64(start, start+length); + } + } + }break; + case DW_LLE_OffsetPair: + { + U64 range_off_start = 0; + U64 range_off_end = 0; + off += str8_deserial_read_uleb128(data, off, &range_off_start); + off += str8_deserial_read_uleb128(data, off, &range_off_end); + range = r1u64(base_addr + range_off_start, base_addr + range_off_end); + }break; + case DW_LLE_DefaultLocation: + { + range = r1u64(0, max_U64); + }break; + case DW_LLE_BaseAddress: + { + U64 new_base_addr = 0; + off += str8_deserial_read(data, off, &new_base_addr, ctx->addr_size, ctx->addr_size); + base_addr = new_base_addr; + }break; + case DW_LLE_StartEnd: + { + U64 start = 0; + U64 end = 0; + off += str8_deserial_read(data, off, &start, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read(data, off, &end, ctx->addr_size, ctx->addr_size); + range = r1u64(start, end); + }break; + case DW_LLE_StartLength: + { + U64 start = 0; + U64 length = 0; + off += str8_deserial_read(data, off, &start, ctx->addr_size, ctx->addr_size); + off += str8_deserial_read_uleb128(data, off, &length); + range = r1u64(start, start + length); + }break; + } + + // rjf: read expression + String8 expr = {0}; + if(good_loc && lle_kind != DW_LLE_BaseAddress && lle_kind != DW_LLE_BaseAddressx) + { + U64 expr_size = 0; + off += str8_deserial_read_uleb128(data, off, &expr_size); + expr = str8_substr(data, r1u64(off, off+expr_size)); + off += expr_size; + } + + // rjf: add range + if(good_loc) + { + DW2_LocNode *n = push_array(arena, DW2_LocNode, 1); + n->v.range = range; + n->v.expr = expr; + SLLQueuePush(result.first, result.last, n); + result.count += 1; + } + + // rjf: end if no movement or end-of-list code + if(off == start_off || lle_kind == DW_LLE_EndOfList) + { + break; + } + } + }break; + } + return result; +} + +//////////////////////////////// +//~ rjf: Unwind Info Parsing (.debug_frame) + +internal U64 +dw2_read_cfi_header(String8 data, U64 off, DW_CFIHeader *cfi_header_out) +{ + U64 start_off = off; + + // rjf: read length / format + U64 length = 0; + DW_Format fmt = DW_Format_Null; + U64 length_size = dw2_read_initial_length(data, off, &length, &fmt); + + // rjf: find entry info, read ID + Rng1U64 entry_range = r1u64(off, off + length_size + length); + String8 entry_data = str8_substr(data, entry_range); + U64 id = 0; + U64 id_size = dw2_read_fmt_u64(entry_data, length_size, fmt, &id); + + // rjf: fill + cfi_header_out->kind = ((fmt == DW_Format_32Bit && id == max_U32) || (fmt == DW_Format_64Bit && id == max_U64)) ? DW_CFIKind_CIE : DW_CFIKind_FDE; + cfi_header_out->fmt = fmt; + cfi_header_out->entry_range = entry_range; + cfi_header_out->cie_pointer = id; + cfi_header_out->cie_pointer_off = off + length_size; + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +dw2_read_cie(String8 data, U64 off, DW_Format fmt, Arch arch, DW_CIE *cie_out) +{ + U64 start_off = off; + + // rjf: read id + U64 id = 0; + off += dw2_read_fmt_u64(data, off, fmt, &id); + + // rjf: read version + U8 version = 0; + off += str8_deserial_read_struct(data, off, &version); + + // rjf: read aug string + String8 aug_string = {0}; + U64 aug_string_off = off; + off += str8_deserial_read_cstr(data, off, &aug_string); + U64 aug_string_off_opl = off; + + // rjf: read address/segment-selector size + U8 address_size = 0; + U8 segment_selector_size = 0; + if(version >= DW_Version_4) + { + off += str8_deserial_read_struct(data, off, &address_size); + off += str8_deserial_read_struct(data, off, &segment_selector_size); + } + else + { + address_size = byte_size_from_arch(arch); + } + + // rjf: read alignments + U64 code_align_factor = 0; + U64 data_align_factor = 0; + off += str8_deserial_read_uleb128(data, off, &code_align_factor); + off += str8_deserial_read_uleb128(data, off, &data_align_factor); + + // rjf: read return address register encoding + U64 ret_addr_reg = 0; + switch(version) + { + case DW_Version_1: + { + off += str8_deserial_read(data, off, &ret_addr_reg, 1, 1); + }break; + default: + { + off += str8_deserial_read_uleb128(data, off, &ret_addr_reg); + }break; + } + + // rjf: fill output + { + cie_out->aug_string_range = r1u64(aug_string_off, aug_string_off_opl); + cie_out->code_align_factor = code_align_factor; + cie_out->data_align_factor = data_align_factor; + cie_out->ret_addr_reg = ret_addr_reg; + cie_out->format = fmt; + cie_out->version = version; + cie_out->address_size = address_size; + cie_out->segment_selector_size = segment_selector_size; + } + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +dw2_read_fde(String8 data, U64 off, DW_Format fmt, Arch arch, DW_CIE *cie, DW_FDE *fde_out) +{ + U64 start_off = off; + + // rjf: skip format-dependent prefix + off += (fmt == DW_Format_32Bit) ? 4 : 12; + + // rjf: read cie ptr + U64 cie_ptr = 0; + off += dw2_read_fmt_u64(data, off, fmt, &cie_ptr); + + // rjf: read address of first instruction + U64 pc_begin = 0; + off += str8_deserial_read(data, off, &pc_begin, cie->address_size, cie->address_size); + + // rjf: read instruction range size + U64 pc_range_size = 0; + off += str8_deserial_read(data, off, &pc_range_size, cie->address_size, cie->address_size); + + // rjf: skip aug data + off += dim_1u64(cie->aug_string_range); + + // rjf: fill output + fde_out->cie_pointer = cie_ptr; + fde_out->pc_range = r1u64(pc_begin, pc_begin + pc_range_size); + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal B32 +dw2_try_cfi_from_data(String8 data, U64 off, Arch arch, DW_CIE *cie_out, DW_FDE *fde_out) +{ + B32 result = 0; + { + DW_CFIHeader fde_header = {0}; + off += dw2_read_cfi_header(data, off, &fde_header); + if(fde_header.kind == DW_CFIKind_FDE) + { + DW_CFIHeader cie_header = {0}; + dw2_read_cfi_header(data, fde_header.cie_pointer, &cie_header); + if(cie_header.kind == DW_CFIKind_CIE) + { + result = 1; + dw2_read_cie(data, cie_header.entry_range.min, cie_header.fmt, arch, cie_out); + dw2_read_fde(data, fde_header.entry_range.min, fde_header.fmt, arch, cie_out, fde_out); + } + } + } + return result; +} diff --git a/src/dwarf/dwarf_parse.h b/src/dwarf/dwarf_parse.h index c691c38b..b8bd3554 100644 --- a/src/dwarf/dwarf_parse.h +++ b/src/dwarf/dwarf_parse.h @@ -4,562 +4,453 @@ #ifndef DWARF_PARSE_H #define DWARF_PARSE_H -typedef struct DW_Section +//////////////////////////////// +//~ rjf: Raw Section Data + +typedef struct DW_Section DW_Section; +struct DW_Section { String8 name; String8 data; - B32 is_dwo; -} DW_Section; +}; -typedef struct DW_Input +typedef struct DW_Raw DW_Raw; +struct DW_Raw { - DW_Section sec[DW_Section_Count]; - DW_Section sup[DW_Section_Count]; -} DW_Input; + DW_Section sec[DW_SectionKind_COUNT]; + DW_Section sup[DW_SectionKind_COUNT]; +}; -typedef struct DW_ListUnit +//////////////////////////////// +//~ rjf: Unit Headers + +typedef struct DW2_UnitHeader DW2_UnitHeader; +struct DW2_UnitHeader { DW_Version version; - U64 address_size; - U64 segment_selector_size; - U64 entry_size; - String8 entries; -} DW_ListUnit; + DW_Format format; + U64 abbrev_off; + U64 addr_size; + DW_CompUnitKind kind; + U64 dwo_id; +}; -typedef struct DW_ListUnitInput +//////////////////////////////// +//~ rjf: Abbreviation Map (ID -> .debug_abbrev Offset) + +typedef struct DW2_AbbrevAttrib DW2_AbbrevAttrib; +struct DW2_AbbrevAttrib { - U64 addr_count; - U64 str_offset_count; - U64 rnglist_count; - U64 loclist_count; - Rng1U64Array addr_ranges; - Rng1U64Array str_offset_ranges; - Rng1U64Array rnglist_ranges; - Rng1U64Array loclist_ranges; - DW_ListUnit *addrs; - DW_ListUnit *str_offsets; - DW_ListUnit *rnglists; - DW_ListUnit *loclists; -} DW_ListUnitInput; + DW_AttribKind attrib_kind; + DW_FormKind form_kind; + U64 implicit_const; +}; -typedef struct DW_AbbrevTableEntry +typedef struct DW2_AbbrevAttribNode DW2_AbbrevAttribNode; +struct DW2_AbbrevAttribNode +{ + DW2_AbbrevAttribNode *next; + DW2_AbbrevAttrib v; +}; + +typedef struct DW2_AbbrevAttribList DW2_AbbrevAttribList; +struct DW2_AbbrevAttribList +{ + DW2_AbbrevAttribNode *first; + DW2_AbbrevAttribNode *last; + U64 count; +}; + +typedef struct DW2_AbbrevHeader DW2_AbbrevHeader; +struct DW2_AbbrevHeader { U64 id; - U64 off; -} DW_AbbrevTableEntry; - -typedef struct DW_AbbrevTable DW_AbbrevTable; -struct DW_AbbrevTable -{ - U64 count; - DW_AbbrevTableEntry *entries; + DW_TagKind tag_kind; + B8 has_children; }; -typedef enum DW_AbbrevKind +typedef struct DW2_AbbrevMapNode DW2_AbbrevMapNode; +struct DW2_AbbrevMapNode { - DW_Abbrev_Null, - DW_Abbrev_Tag, - DW_Abbrev_Attrib, - DW_Abbrev_AttribSequenceEnd, - DW_Abbrev_DIEBegin, - DW_Abbrev_DIEEnd, -} DW_AbbrevKind; + DW2_AbbrevMapNode *next; + U64 id; + U64 off; +}; -typedef U32 DW_AbbrevFlags; +typedef struct DW2_AbbrevMap DW2_AbbrevMap; +struct DW2_AbbrevMap +{ + DW2_AbbrevMapNode **slots; + U64 slots_count; +}; + +typedef struct DW2_UnitAbbrevMapMap DW2_UnitAbbrevMapMap; +struct DW2_UnitAbbrevMapMap +{ + U64 map_count; + DW2_AbbrevMap *map_from_idx_table; + DW2_AbbrevMap **map_from_unit_idx_table; +}; + +//////////////////////////////// +//~ rjf: Offset Tables (.debug_str_offsets, .debug_rnglists) + +typedef struct DW2_OffsetTable DW2_OffsetTable; +struct DW2_OffsetTable +{ + DW_Format format; + DW_Version version; + U8 addr_size; + U8 segment_selector_size; + U64 entry_size; + U64 entries_count; + void *entries; +}; + +typedef struct DW2_OffsetTableNode DW2_OffsetTableNode; +struct DW2_OffsetTableNode +{ + DW2_OffsetTableNode *next; + DW2_OffsetTable v; + Rng1U64 range; +}; + +typedef struct DW2_OffsetTableList DW2_OffsetTableList; +struct DW2_OffsetTableList +{ + DW2_OffsetTableNode *first; + DW2_OffsetTableNode *last; + U64 count; +}; + +typedef struct DW2_OffsetTableSet DW2_OffsetTableSet; +struct DW2_OffsetTableSet +{ + // rjf: .debug_str_offsets + U64 str_offsets_tables_count; + DW2_OffsetTable *str_offsets_tables; + Rng1U64 *str_offsets_tables_ranges; + + // rjf: .debug_rnglists + U64 rnglists_tables_count; + DW2_OffsetTable *rnglists_tables; + Rng1U64 *rnglists_tables_ranges; + + // rjf: .debug_addr + U64 addr_tables_count; + DW2_OffsetTable *addr_tables; + Rng1U64 *addr_tables_ranges; + + // rjf: .debug_loclists + U64 loclists_tables_count; + DW2_OffsetTable *loclists_tables; + Rng1U64 *loclists_tables_ranges; +}; + +//////////////////////////////// +//~ rjf: Parsing Context Bundle + +typedef struct DW2_ParseCtx DW2_ParseCtx; +struct DW2_ParseCtx +{ + DW_Version version; + DW_Format format; + DW_ExtFlags exts; + U64 addr_size; + U64 unit_base_addr; + U64 unit_base_info_off; + DW2_AbbrevMap *abbrev_map; + DW2_OffsetTable *rnglists_table; + DW2_OffsetTable *str_offsets_table; + DW2_OffsetTable *addr_table; + DW2_OffsetTable *loclists_table; + String8 unit_dir; + String8 unit_file; + DW_Language language; +}; + +//////////////////////////////// +//~ rjf: Tag Attributes + +typedef struct DW2_FormVal DW2_FormVal; +struct DW2_FormVal +{ + DW_FormKind kind; + U128 u128; + String8 string; + U64 addr; +}; + +typedef struct DW2_Attrib DW2_Attrib; +struct DW2_Attrib +{ + DW_AttribKind attrib_kind; + DW2_FormVal val; +}; + +typedef struct DW2_AttribNode DW2_AttribNode; +struct DW2_AttribNode +{ + DW2_AttribNode *next; + DW2_Attrib v; +}; + +typedef struct DW2_AttribList DW2_AttribList; +struct DW2_AttribList +{ + DW2_AttribNode *first; + DW2_AttribNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Tags + +typedef struct DW2_Tag DW2_Tag; +struct DW2_Tag +{ + DW_TagKind kind; + B32 has_children; + DW2_AttribList attribs; +}; + +//////////////////////////////// +//~ rjf: Line Info + +typedef U32 DW2_LineTableFileFlags; enum { - DW_AbbrevFlag_HasImplicitConst = (1 << 0), - DW_AbbrevFlag_HasChildren = (1 << 1), + DW2_LineTableFileFlag_HasMD5 = (1<<0), + DW2_LineTableFileFlag_HasModifyTime = (1<<1), }; -typedef struct DW_Abbrev +typedef struct DW2_LineTableFile DW2_LineTableFile; +struct DW2_LineTableFile { - DW_AbbrevKind kind; - U64 sub_kind; - U64 id; - U64 const_value; - DW_AbbrevFlags flags; -} DW_Abbrev; + String8 file_name; + DW2_LineTableFileFlags flags; + U64 dir_idx; + U64 modify_time; + U64 file_size; + MD5 md5; + String8 source; +}; -typedef union DW_Form +typedef struct DW2_LineTableFileNode DW2_LineTableFileNode; +struct DW2_LineTableFileNode { - String8 addr; - String8 block; - String8 data; - String8 string; - String8 exprloc; - B8 flag; - S64 sdata; - U64 udata; - U64 sec_offset; - U64 ref; - U64 strp_sup; - U64 xval; - U64 addrx; - U64 strx; - U64 rnglistx; - U64 ptr; - U64 implicit_const; -} DW_Form; + DW2_LineTableFileNode *next; + DW2_LineTableFile v; +}; -typedef struct DW_Attrib +typedef struct DW2_LineTableFileList DW2_LineTableFileList; +struct DW2_LineTableFileList { - U64 info_off; - U64 abbrev_off; - U64 abbrev_id; - DW_AttribKind attrib_kind; - DW_FormKind form_kind; - DW_Form form; -} DW_Attrib; + DW2_LineTableFileNode *first; + DW2_LineTableFileNode *last; + U64 count; +}; -typedef struct DW_AttribNode +typedef struct DW2_LineTableFileArray DW2_LineTableFileArray; +struct DW2_LineTableFileArray { - struct DW_AttribNode *next; - DW_Attrib v; -} DW_AttribNode; + DW2_LineTableFile *v; + U64 count; +}; -typedef struct DW_AttribList +typedef struct DW2_LineTableHeader DW2_LineTableHeader; +struct DW2_LineTableHeader { - DW_AttribNode *first; - DW_AttribNode *last; - U64 count; -} DW_AttribList; + U64 unit_length; + DW_Format format; + DW_Version version; + U8 addr_size; + U8 segment_selector_size; + U64 header_length; + U8 min_inst_length; + U8 max_ops_per_inst; + U8 default_is_stmt; + S8 line_base; + U8 line_range; + U8 opcode_base; + U64 opcode_lengths_count; + U8 *opcode_lengths; + DW2_LineTableFileArray dirs; + DW2_LineTableFileArray files; + U64 line_program_off; + U64 total_unit_data_size; // NOTE(rjf): would be implied by `unit_length`, but DWARF makes that the size *past* the variable-width unit-length field itself +}; -typedef struct DW_Tag +typedef struct DW2_LineVMRegs DW2_LineVMRegs; +struct DW2_LineVMRegs { - B32 has_children; - U64 abbrev_id; - DW_TagKind kind; - DW_AttribList attribs; - U64 info_off; - U8 v[1]; -} DW_Tag; + U64 address; + U64 vliw_op_index; + U64 file_index; + U64 line; + U64 column; + B32 is_stmt; + B32 basic_block; + B32 end_sequence; + B32 prologue_end; + B32 epilogue_begin; + U64 isa; + U64 discriminator; +}; -typedef struct DW_TagNode -{ - DW_Tag tag; - struct DW_TagNode *sibling; - struct DW_TagNode *first_child; - struct DW_TagNode *last_child; -} DW_TagNode; +//////////////////////////////// +//~ rjf: Location Lists -typedef struct DW_Loc +typedef struct DW2_Loc DW2_Loc; +struct DW2_Loc { Rng1U64 range; String8 expr; -} DW_Loc; +}; -typedef struct DW_LocNode +typedef struct DW2_LocNode DW2_LocNode; +struct DW2_LocNode { - DW_Loc v; - struct DW_LocNode *next; -} DW_LocNode; + DW2_LocNode *next; + DW2_Loc v; +}; -typedef struct DW_LocList +typedef struct DW2_LocList DW2_LocList; +struct DW2_LocList { - U64 count; - DW_LocNode *first; - DW_LocNode *last; -} DW_LocList; - -typedef struct DW_CompUnit -{ - B32 relaxed; - DW_Ext ext; - DW_CompUnitKind kind; - DW_Version version; - DW_Format format; - U64 address_size; - U64 abbrev_off; - Rng1U64 info_range; - U64 first_tag_info_off; - DW_AbbrevTable abbrev_table; - String8 abbrev_data; - DW_ListUnit *addr_lu; - DW_ListUnit *str_offsets_lu; - DW_ListUnit *rnglists_lu; - DW_ListUnit *loclists_lu; - U64 low_pc; - U64 dwo_id; - DW_Tag tag; - HashTable *tag_ht; -} DW_CompUnit; - -typedef struct DW_TagTree -{ - DW_TagNode *root; - U64 tag_count; -} DW_TagTree; - -typedef struct DW_LineFile -{ - String8 file_name; - U64 dir_idx; - U64 modify_time; - U64 file_size; - U128 md5_digest; - String8 source; -} DW_LineFile; - -typedef struct DW_LineVMFileNode -{ - struct DW_LineVMFileNode *next; - DW_LineFile file; -} DW_LineVMFileNode; - -typedef struct DW_LineVMFileList -{ - U64 node_count; - DW_LineVMFileNode *first; - DW_LineVMFileNode *last; -} DW_LineVMFileList; - -typedef struct DW_LineVMFileArray -{ - U64 count; - DW_LineFile *v; -} DW_LineVMFileArray; - -typedef struct DW_LineVMHeader -{ - Rng1U64 unit_range; - DW_Version version; - U8 address_size; // Duplicates size from the compilation unit but is needed to support stripped exe that just have .debug_line and .debug_line_str. - U8 segment_selector_size; - U64 header_length; - U8 min_inst_len; - U8 max_ops_for_inst; - U8 default_is_stmt; - S8 line_base; - U8 line_range; - U8 opcode_base; - U64 num_opcode_lens; - U8 *opcode_lens; - DW_LineVMFileArray dir_table; - DW_LineVMFileArray file_table; -} DW_LineVMHeader; - -typedef struct DW_LineVMState -{ - U64 address; // Address of a machine instruction. - U32 op_index; // This is used by the VLIW instructions to indicate index of operation inside the instruction. - - // Line table doesn't contain full path to a file, instead - // DWARF encodes path as two indices. First index will point into a directory - // table, and second points into a file name table. - U32 file_index; - - U32 line; - U32 column; - - B32 is_stmt; // Indicates that "address" points to place suitable for a breakpoint. - B32 basic_block; // Indicates that the "address" is inside a basic block. - - // Indicates that "address" points to place where function starts. - // Usually prologue is the place where compiler emits instructions to - // prepare stack for a function. - B32 prologue_end; - - B32 epilogue_begin; // Indicates that "address" points to section where function exits and unwinds stack. - U64 isa; // Instruction set that is used. - U64 discriminator; // Arbitrary id that indicates to which block these instructions belong. - B32 end_sequence; // Indicates that "address" points to the first instruction in the instruction block that follows. -} DW_LineVMState; - -typedef struct DW_Line -{ - U64 file_index; - U32 line; - U32 column; - U64 address; -} DW_Line; - -typedef struct DW_LineNode -{ - struct DW_LineNode *next; - DW_Line v; -} DW_LineNode; - -typedef struct DW_LineSeqNode -{ - struct DW_LineSeqNode *next; - U64 count; - DW_LineNode *first; - DW_LineNode *last; -} DW_LineSeqNode; - -typedef struct DW_LineTableParseResult -{ - DW_LineVMHeader vm_header; - U64 seq_count; - DW_LineSeqNode *first_seq; - DW_LineSeqNode *last_seq; -} DW_LineTableParseResult; + DW2_LocNode *first; + DW2_LocNode *last; + U64 count; +}; //////////////////////////////// -// .debug_pubnames and .debug_pubtypes +//~ rjf: Unwind Info -typedef struct DW_PubStringsBucket +typedef enum DW_CFIKind { - struct DW_PubStringsBucket *next; - String8 string; - U64 info_off; - U64 cu_info_off; -} DW_PubStringsBucket; + DW_CFIKind_Null, + DW_CFIKind_CIE, // Common Information Entry + DW_CFIKind_FDE, // Frame Description Entry + DW_CFIKind_COUNT +} +DW_CFIKind; -typedef struct DW_PubStringsTable +typedef struct DW_CFIHeader DW_CFIHeader; +struct DW_CFIHeader { - U64 size; - DW_PubStringsBucket **buckets; -} DW_PubStringsTable; + DW_CFIKind kind; + DW_Format fmt; + Rng1U64 entry_range; + U64 cie_pointer_off; + U64 cie_pointer; +}; -typedef struct DW_Reference +typedef struct DW_CIE DW_CIE; +struct DW_CIE { - DW_CompUnit *cu; - U64 info_off; -} DW_Reference; - -//////////////////////////////// -//~ Expression - -typedef union DW_ExprOperand -{ - U8 u8; - U16 u16; - U32 u32; - U64 u64; - - S8 s8; - S16 s16; - S32 s32; - S64 s64; - - String8 block; -} DW_ExprOperand; - -typedef struct DW_ExprInst -{ - DW_ExprOp opcode; - DW_ExprOperand *operands; - U64 size; - struct DW_ExprInst *next; - struct DW_ExprInst *prev; -} DW_ExprInst; - -typedef struct DW_Expr -{ - U64 count; - DW_ExprInst *first; - DW_ExprInst *last; -} DW_Expr; - -//////////////////////////////// -// .debug_frame - -typedef enum -{ - DW_DescriptorEntryType_Null, - DW_DescriptorEntryType_CIE, - DW_DescriptorEntryType_FDE -} DW_DescriptorEntryType; - -typedef struct DW_DescriptorEntry -{ - DW_DescriptorEntryType type; - DW_Format format; - Rng1U64 entry_range; -} DW_DescriptorEntry; - -typedef struct DW_CIE -{ - String8 insts; - String8 aug_string; - String8 aug_data; - U64 code_align_factor; - S64 data_align_factor; - U64 ret_addr_reg; + Rng1U64 aug_string_range; + Rng1U64 aug_data_range; + U64 code_align_factor; + S64 data_align_factor; + U64 ret_addr_reg; + U64 ext[4]; DW_Format format; - U8 version; - U8 address_size; - U8 segment_selector_size; -} DW_CIE; + U8 version; + U8 address_size; + U8 segment_selector_size; +}; -typedef struct DW_FDE +typedef struct DW_FDE DW_FDE; +struct DW_FDE { - DW_Format format; - U64 cie_pointer; - Rng1U64 pc_range; - String8 insts; -} DW_FDE; + U64 cie_pointer; + Rng1U64 pc_range; +}; -typedef union DW_CFA_Operand +typedef struct DW_CFI DW_CFI; +struct DW_CFI { - U64 u64; - S64 s64; - String8 block; -} DW_CFA_Operand; + DW_CIE cie; + DW_FDE fde; +}; -typedef enum -{ - DW_CFA_ParseErrorCode_NewInst, - DW_CFA_ParseErrorCode_End, - DW_CFA_ParseErrorCode_OutOfData -} DW_CFA_ParseErrorCode; +//////////////////////////////// +//~ rjf: Globals -typedef struct DW_CFA_Inst -{ - DW_CFA_Opcode opcode; - DW_CFA_Operand operands[DW_CFA_OperandMax]; -} DW_CFA_Inst; +global read_only DW2_Attrib dw2_attrib_nil = {0}; -typedef struct DW_CFA_InstNode -{ - DW_CFA_Inst v; - struct DW_CFA_InstNode *next; -} DW_CFA_InstNode; +//////////////////////////////// +//~ rjf: Basic Parsing Helpers -typedef struct DW_CFA_InstList -{ - U64 count; - DW_CFA_InstNode *first; - DW_CFA_InstNode *last; -} DW_CFA_InstList; +internal U64 dw2_read_initial_length(String8 data, U64 off, U64 *out, DW_Format *fmt_out); +internal U64 dw2_read_fmt_u64(String8 data, U64 off, DW_Format format, U64 *out); +internal DW_SectionKind dw_section_kind_from_string(String8 string); -#define DW_DECODE_PTR(name) U64 name(String8 data, void *ud, U64 *ptr_out) -typedef DW_DECODE_PTR(DW_DecodePtr); +//////////////////////////////// +//~ rjf: Unit Range Set Parsing (Top-Level .debug_info, .debug_aranges) -#define DW_CIE_FROM_OFFSET_FUNC(name) DW_CIE * name(void *ud, U64 offset) -typedef DW_CIE_FROM_OFFSET_FUNC(DW_CIEFromOffsetFunc); +internal Rng1U64Array dw2_unit_ranges_from_data(Arena *arena, String8 data); -// hasher +//////////////////////////////// +//~ rjf: Unit Header Parsing -internal U64 dw_hash_from_string(String8 string); +internal U64 dw2_read_unit_header(String8 data, U64 off, DW2_UnitHeader *out); -// deserial helpers +//////////////////////////////// +//~ rjf: Abbreviation Map Parsing -internal U64 str8_deserial_read_dwarf_packed_size(String8 string, U64 off, U64 *size_out); -internal U64 str8_deserial_read_dwarf_uint (String8 string, U64 off, DW_Format format, U64 *uint_out); -internal U64 str8_deserial_read_uleb128 (String8 string, U64 off, U64 *value_out); -internal U64 str8_deserial_read_sleb128 (String8 string, U64 off, S64 *value_out); -internal U64 str8_deserial_read_uleb128_array(Arena *arena, String8 string, U64 off, U64 count, U64 **arr_out); -internal U64 str8_deserial_read_sleb128_array(Arena *arena, String8 string, U64 off, U64 count, S64 **arr_out); +internal U64 dw2_read_abbrev(Arena *arena, String8 data, U64 off, DW2_AbbrevHeader *header_out, DW2_AbbrevAttribList *attribs_out); +internal DW2_AbbrevMap dw2_abbrev_map_from_data(Arena *arena, String8 data, U64 off); +internal DW2_UnitAbbrevMapMap dw2_unit_abbrev_map_map_from_data(Arena *arena, String8 data, DW2_UnitHeader *unit_headers, U64 unit_headers_count); -internal Rng1U64List dw_unit_ranges_from_data(Arena *arena, String8 data); +//////////////////////////////// +//~ rjf: Form Value Parsing -// list units +internal U64 dw2_read_form_val(DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW_FormKind form_kind, U64 implicit_const, DW2_FormVal *out); -internal U64 dw_read_list_unit_header_addr (String8 unit_data, DW_ListUnit *lu_out); -internal U64 dw_read_list_unit_header_str_offsets(String8 unit_data, DW_ListUnit *lu_out); -internal U64 dw_read_list_unit_header_list (String8 unit_data, DW_ListUnit *lu_out); +//////////////////////////////// +//~ rjf: Parse Context Construction -internal DW_ListUnitInput dw_list_unit_input_from_input(Arena *arena, DW_Input *input); +internal void dw2_parse_ctx_equip_unit_header(DW2_ParseCtx *ctx_out, DW2_UnitHeader *hdr, U64 unit_base_info_off); +internal void dw2_parse_ctx_equip_unit_abbrev_map(DW2_ParseCtx *ctx_out, DW2_UnitAbbrevMapMap *map, U64 unit_idx); +internal void dw2_parse_ctx_equip_unit_root_tag(DW2_ParseCtx *ctx_out, DW2_Tag *tag, DW2_OffsetTableSet *offset_tables); -internal U64 dw_offset_from_list_unit(DW_ListUnit *lu, U64 index); -internal U64 dw_addr_from_list_unit (DW_ListUnit *lu, U64 index); +//////////////////////////////// +//~ rjf: Tag Parsing -// abbrev table +internal U64 dw2_read_tag(Arena *arena, DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW2_Tag *tag_out); +internal DW2_Attrib *dw2_attrib_from_kind(DW2_Tag *tag, DW_AttribKind kind); +internal U64 dw2_reference_info_off_from_form_val(DW2_ParseCtx *ctx, DW2_FormVal *v); -internal U64 dw_read_abbrev_tag (String8 data, U64 offset, DW_Abbrev *out_abbrev); -internal U64 dw_read_abbrev_attrib(String8 data, U64 offset, DW_Abbrev *out_abbrev); -internal DW_AbbrevTable dw_make_abbrev_table(Arena *arena, String8 abbrev_data, U64 start_abbrev_off); -internal U64 dw_abbrev_offset_from_abbrev_id(DW_AbbrevTable table, U64 abbrev_id); +//////////////////////////////// +//~ rjf: Line Table Parsing -// form and tag +internal U64 dw2_read_line_table_header(Arena *arena, DW_Raw *raw, DW2_ParseCtx *ctx, String8 data, U64 off, DW2_LineTableHeader *out); -internal U64 dw_read_form(String8 data, U64 off, DW_Version version, DW_Format unit_format, U64 address_size, DW_FormKind form_kind, U64 implicit_const, DW_Form *form_out); -internal U64 dw_read_tag (Arena *arena, String8 tag_data, U64 tag_off, U64 tag_base, DW_AbbrevTable abbrev_table, String8 abbrev_data, DW_Version version, DW_Format unit_format, U64 address_size, DW_Tag *tag_out); -internal U64 dw_read_tag_cu(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 info_off, DW_Tag *tag_out); +//////////////////////////////// +//~ rjf: Offset Table Parsing (.debug_str_offsets, .debug_rnglists) -// attrib interp +internal U64 dw2_read_offset_table(String8 data, U64 off, DW2_OffsetTable *out); +internal DW2_OffsetTableList dw2_offset_table_list_from_data(Arena *arena, String8 data); +internal B32 dw2_try_offset_from_table_idx(DW2_OffsetTable *tbl, U64 idx, U64 *out); +internal DW2_OffsetTableSet dw2_offset_table_set_from_raw(Arena *arena, DW_Raw *raw); -internal U64 dw_interp_sec_offset(DW_FormKind form_kind, DW_Form form); -internal String8 dw_interp_exprloc (DW_FormKind form_kind, DW_Form form); -internal U128 dw_interp_const_u128(DW_FormKind form_kind, DW_Form form); -internal U64 dw_interp_const_u64 (DW_FormKind form_kind, DW_Form form); -internal U32 dw_interp_const_u32 (DW_FormKind form_kind, DW_Form form); -internal S64 dw_interp_const_s64 (DW_FormKind form_kind, DW_Form form); -internal S32 dw_interp_const_s32 (DW_FormKind form_kind, DW_Form form); -internal B32 dw_interp_flag (DW_FormKind form_kind, DW_Form form); -internal U64 dw_interp_address (U64 address_size, U64 base_addr, DW_ListUnit *addr_xlist, DW_FormKind form_kind, DW_Form form); -internal String8 dw_interp_block (DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); -internal String8 dw_interp_string (DW_Input *input, DW_Format unit_format, DW_ListUnit *str_offsets, DW_FormKind form_kind, DW_Form form); -internal String8 dw_interp_line_ptr (DW_Input *input, DW_FormKind form_kind, DW_Form form); -internal DW_LineFile * dw_interp_file (DW_LineVMHeader *line_vm, DW_FormKind form_kind, DW_Form form); -internal DW_Reference dw_interp_ref (DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); -internal DW_LocList dw_interp_loclist (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); -internal Rng1U64List dw_interp_rnglist (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_FormKind form_kind, DW_Form form); +//////////////////////////////// +//~ rjf: Range List Parsing (.debug_rnglists) -internal String8 dw_exprloc_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U128 dw_const_u128_from_attrib(DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U64 dw_const_u64_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U32 dw_const_u32_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal S64 dw_const_s64_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal S32 dw_const_s32_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal B32 dw_flag_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal U64 dw_address_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_block_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_string_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal String8 dw_line_ptr_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal DW_LineFile * dw_file_from_attrib (DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Attrib *attrib); -internal DW_Reference dw_ref_from_attrib (DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal DW_LocList dw_loclist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); -internal Rng1U64List dw_rnglist_from_attrib (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Attrib *attrib); +internal Rng1U64List dw2_rnglist_from_form_val(Arena *arena, DW2_ParseCtx *ctx, DW_Raw *raw, DW2_FormVal form_val); -internal String8 dw_exprloc_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U128 dw_const_u128_from_tag_attrib_kind(DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U64 dw_const_u64_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U32 dw_const_u32_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal B32 dw_flag_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal U64 dw_address_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_block_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_string_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal String8 dw_line_ptr_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal DW_LineFile * dw_file_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_LineVMHeader *line_vm, DW_Tag tag, DW_AttribKind kind); -internal DW_Reference dw_ref_from_tag_attrib_kind (DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal DW_LocList dw_loclist_from_tag_attrib_kind (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal Rng1U64List dw_rnglist_from_tag_attrib_kind (Arena *arena, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); +//////////////////////////////// +//~ rjf: Location List Parsing (.debug_loclists) -// compile unit +internal DW2_LocList dw2_loclist_from_form_val(Arena *arena, DW2_ParseCtx *ctx, DW_Raw *raw, DW2_FormVal form_val); -internal DW_CompUnit dw_cu_from_info_off(Arena *arena, DW_Input *input, DW_ListUnitInput lu_input, U64 offset, B32 relaxed); -internal DW_TagTree dw_tag_tree_from_cu(Arena *arena, DW_Input *input, DW_CompUnit *cu); -internal HashTable * dw_make_tag_hash_table(Arena *arena, DW_TagTree tag_tree); -internal DW_TagNode * dw_tag_node_from_info_off(DW_CompUnit *cu, U64 info_off); +//////////////////////////////// +//~ rjf: Unwind Info Parsing (.debug_frame) -// line info - -internal U64 dw_read_line_file(String8 line_data, U64 line_off, DW_Input *input, DW_Version unit_version, DW_Format unit_format, DW_Ext ext, U64 address_size, DW_ListUnit *str_offsets, U64 enc_count, U64 *enc_arr, DW_LineFile *line_file_out); -internal U64 dw_read_line_vm_header(Arena *arena, String8 line_data, U64 line_off, DW_Input *input, String8 cu_dir, String8 cu_name, U8 cu_address_size, DW_ListUnit *cu_str_offsets, DW_LineVMHeader *header_out); -internal void dw_line_vm_reset(DW_LineVMState *state, B32 default_is_stmt); -internal void dw_line_vm_advance(DW_LineVMState *state, U64 advance, U64 min_inst_len, U64 max_ops_for_inst); -internal DW_LineSeqNode * dw_push_line_seq(Arena* arena, DW_LineTableParseResult *parsed_tbl); -internal DW_LineNode * dw_push_line(Arena *arena, DW_LineTableParseResult *tbl, DW_LineVMState *vm_state, B32 start_of_sequence); -internal String8 dw_path_from_file(Arena *arena, DW_LineVMHeader *vm, DW_LineFile *file); -internal String8 dw_path_from_file_idx(Arena *arena, DW_LineVMHeader *vm, U64 file_idx); - -internal DW_LineTableParseResult dw_parsed_line_table_from_data(Arena *arena, String8 unit_data, DW_Input *input, String8 cu_dir, String8 cu_name, U8 cu_address_size, DW_ListUnit *cu_str_offsets); - -// helper for .debug_pubtypes and .debug_pubnames - -internal DW_PubStringsTable dw_v4_pub_strings_table_from_section_kind(Arena *arena, DW_Input *input, DW_SectionKind section_kind); - -// expression - -internal DW_Expr dw_expr_from_data(Arena *arena, DW_Format format, U64 addr_size, String8 data); - -// debug frame - -internal void dw_cfa_inst_list_push_node(DW_CFA_InstList *list, DW_CFA_InstNode *n); -internal DW_CFA_InstNode * dw_cfa_inst_list_push(Arena *arena, DW_CFA_InstList *list, DW_CFA_Inst v); - -internal U64 dw_read_debug_frame_ptr(String8 data, DW_CIE *cie, U64 *ptr_out); - -internal U64 dw_parse_descriptor_entry_header(String8 data, U64 off, DW_DescriptorEntry *desc_out); -internal B32 dw_parse_cie(String8 data, DW_Format format, Arch arch, DW_CIE *cie_out); -internal B32 dw_parse_fde(String8 data, DW_Format format, DW_CIEFromOffsetFunc *cie_from_offset_func, void *cie_from_offset_ud, DW_FDE *fde_out); - -internal DW_CFA_ParseErrorCode dw_parse_cfa_inst(String8 data, U64 code_align_factor, S64 data_align_factor, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud, U64 *bytes_read_out, DW_CFA_Inst *inst_out); -internal DW_CFA_InstList dw_parse_cfa_inst_list(Arena *arena, String8 data, U64 code_align_factor, S64 data_align_factor, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud); +internal U64 dw2_read_cfi_header(String8 data, U64 off, DW_CFIHeader *cfi_header_out); +internal U64 dw2_read_cie(String8 data, U64 off, DW_Format fmt, Arch arch, DW_CIE *cie_out); +internal U64 dw2_read_fde(String8 data, U64 off, DW_Format fmt, Arch arch, DW_CIE *cie, DW_FDE *fde_out); +internal B32 dw2_try_cfi_from_data(String8 data, U64 off, Arch arch, DW_CIE *cie_out, DW_FDE *fde_out); #endif // DWARF_PARSE_H diff --git a/src/dwarf/dwarf_parse_coff.c b/src/dwarf/dwarf_parse_coff.c new file mode 100644 index 00000000..2c28d8be --- /dev/null +++ b/src/dwarf/dwarf_parse_coff.c @@ -0,0 +1,45 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal B32 +dw_is_dwarf_present_coff_section_table(String8 string_table, U64 section_count, COFF_SectionHeader *section_table) +{ + B32 is_dwarf_present = 0; + for EachIndex(idx, section_count) + { + COFF_SectionHeader *header = §ion_table[idx]; + String8 name = coff_name_from_section_header(string_table, header); + DW_SectionKind s = dw_section_kind_from_string(name); + is_dwarf_present = s != DW_SectionKind_Null; + if(is_dwarf_present) + { + break; + } + } + return is_dwarf_present; +} + +internal DW_Raw +dw_raw_from_coff_section_table(Arena *arena, String8 raw_image, String8 string_table, U64 section_count, COFF_SectionHeader *section_table) +{ + DW_Raw input = {0}; + B32 sect_status[ArrayCount(input.sec)] = {0}; + for EachIndex(idx, section_count) + { + COFF_SectionHeader *header = §ion_table[idx]; + Rng1U64 raw_data_range = rng_1u64(header->foff, header->vsize ? header->foff + header->vsize : header->foff + header->fsize); + String8 name = coff_name_from_section_header(string_table, header); + DW_SectionKind s = dw_section_kind_from_string(name); + if(s != DW_SectionKind_Null) + { + if(!sect_status[s]) + { + sect_status[s] = 1; + DW_Section *d = &input.sec[s]; + d->name = push_str8_copy(arena, name); + d->data = str8_substr(raw_image, raw_data_range); + } + } + } + return input; +} diff --git a/src/dwarf/dwarf_parse_coff.h b/src/dwarf/dwarf_parse_coff.h new file mode 100644 index 00000000..d7367928 --- /dev/null +++ b/src/dwarf/dwarf_parse_coff.h @@ -0,0 +1,10 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_PARSE_COFF_H +#define DWARF_PARSE_COFF_H + +internal B32 dw_is_dwarf_present_coff_section_table(String8 string_table, U64 section_count, COFF_SectionHeader *section_table); +internal DW_Raw dw_raw_from_coff_section_table(Arena *arena, String8 raw_image, String8 string_table, U64 section_count, COFF_SectionHeader *section_table); + +#endif // DWARF_PARSE_COFF_H diff --git a/src/dwarf/dwarf_elf.c b/src/dwarf/dwarf_parse_elf.c similarity index 82% rename from src/dwarf/dwarf_elf.c rename to src/dwarf/dwarf_parse_elf.c index 6ea144f8..a837c483 100644 --- a/src/dwarf/dwarf_elf.c +++ b/src/dwarf/dwarf_parse_elf.c @@ -8,14 +8,10 @@ dw_is_dwarf_present_from_elf_bin(String8 data, ELF_Bin *bin) for EachIndex(idx, bin->shdrs.count) { ELF_Shdr64 *shdr = &bin->shdrs.v[idx]; - if(shdr->sh_type != ELF_SectionCode_ProgBits) { continue; } + if(shdr->sh_type != ELF_ShType_ProgBits) { continue; } String8 name = elf_name_from_shdr64(data, bin, shdr); DW_SectionKind s = dw_section_kind_from_string(name); - if(s == DW_Section_Null) - { - s = dw_section_dwo_kind_from_string(name); - } - is_dwarf_present = (s != DW_Section_Null); + is_dwarf_present = (s != DW_SectionKind_Null); if(is_dwarf_present) { break; @@ -27,28 +23,22 @@ dw_is_dwarf_present_from_elf_bin(String8 data, ELF_Bin *bin) #define SINFL_IMPLEMENTATION #include "third_party/sinfl/sinfl.h" -internal DW_Input -dw_input_from_elf_bin(Arena *arena, String8 data, ELF_Bin *bin) +internal DW_Raw +dw_raw_from_elf_bin(Arena *arena, String8 data, ELF_Bin *bin) { - DW_Input result = {0}; + DW_Raw result = {0}; B32 is_section_present[ArrayCount(result.sec)] = {0}; for(U64 section_idx = 1; section_idx < bin->shdrs.count; section_idx += 1) { ELF_Shdr64 *shdr = &bin->shdrs.v[section_idx]; - if(shdr->sh_type != ELF_SectionCode_ProgBits) { continue; } // skip BSS sections + if(shdr->sh_type != ELF_ShType_ProgBits) { continue; } // skip BSS sections //- rjf: unpack section String8 section_name = elf_name_from_shdr64(data, bin, shdr); DW_SectionKind section_kind = dw_section_kind_from_string(section_name); String8 section_data__maybe_compressed = str8_substr(data, r1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size)); - B32 is_dwo = 0; - if(section_kind == DW_Section_Null) - { - section_kind = dw_section_dwo_kind_from_string(section_name); - is_dwo = (section_kind != DW_Section_Null); - } - if(section_kind == DW_Section_Null) { continue; } // skip unknown sections + if(section_kind == DW_SectionKind_Null) { continue; } // skip unknown sections if(is_section_present[section_kind]) { continue; } // skip duplicate sections //- rjf: decompress section data if needed @@ -108,7 +98,6 @@ dw_input_from_elf_bin(Arena *arena, String8 data, ELF_Bin *bin) DW_Section *d = &result.sec[section_kind]; d->name = push_str8_copy(arena, section_name); d->data = section_data__uncompressed; - d->is_dwo = is_dwo; } return result; } diff --git a/src/dwarf/dwarf_elf.h b/src/dwarf/dwarf_parse_elf.h similarity index 53% rename from src/dwarf/dwarf_elf.h rename to src/dwarf/dwarf_parse_elf.h index a9a54f38..06ddc8ce 100644 --- a/src/dwarf/dwarf_elf.h +++ b/src/dwarf/dwarf_parse_elf.h @@ -1,10 +1,10 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -#ifndef DWARF_ELF_H -#define DWARF_ELF_H +#ifndef DWARF_PARSE_ELF_H +#define DWARF_PARSE_ELF_H internal B32 dw_is_dwarf_present_from_elf_bin(String8 raw_image, ELF_Bin *bin); -internal DW_Input dw_input_from_elf_bin(Arena *arena, String8 raw_image, ELF_Bin *bin); +internal DW_Raw dw_raw_from_elf_bin(Arena *arena, String8 raw_image, ELF_Bin *bin); -#endif // DWARF_ELF_H +#endif // DWARF_PARSE_ELF_H diff --git a/src/dwarf/dwarf_unwind.c b/src/dwarf/dwarf_unwind.c index e899d676..ae447aab 100644 --- a/src/dwarf/dwarf_unwind.c +++ b/src/dwarf/dwarf_unwind.c @@ -1,274 +1,2 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) - -internal DW_CFA_Row * -dw_make_cfa_row(Arena *arena, U64 reg_count) -{ - DW_CFA_Row *row = push_array(arena, DW_CFA_Row, 1); - row->regs = push_array(arena, DW_CFI_Register, reg_count); - for EachIndex(reg_idx, reg_count) { - row->regs[reg_idx].rule = DW_CFI_RegisterRule_SameValue; - } - return row; -} - -internal DW_CFA_Row * -dw_copy_cfa_row(Arena *arena, U64 reg_count, DW_CFA_Row *row) -{ - DW_CFA_Row *new_row = dw_make_cfa_row(arena, reg_count); - new_row->cfa = row->cfa; - MemoryCopyTyped(new_row->regs, row->regs, reg_count); - return new_row; -} - -internal DW_CFI_Unwind * -dw_cfi_unwind_init(Arena *arena, - Arch arch, - DW_CIE *cie, - DW_FDE *fde, - DW_DecodePtr *decode_ptr_func, - void *decode_ptr_ud) -{ - Temp scratch = scratch_begin(&arena, 1); - - DW_CFI_Unwind *uw = push_array(arena, DW_CFI_Unwind, 1); - uw->insts = dw_parse_cfa_inst_list(arena, fde->insts, cie->code_align_factor, cie->data_align_factor, decode_ptr_func, decode_ptr_ud); - uw->cie = cie; - uw->fde = fde; - uw->reg_count = dw_reg_count_from_arch(arch); - uw->pc = fde->pc_range.min; - uw->arch = arch; - - // setup initial register rules - DW_CFA_InstList initial_insts = dw_parse_cfa_inst_list(scratch.arena, cie->insts, cie->code_align_factor, cie->data_align_factor, decode_ptr_func, decode_ptr_ud); - uw->row = dw_make_cfa_row(arena, uw->reg_count); - uw->curr_inst = initial_insts.first; - dw_cfi_next_row(arena, uw); - - // make first row from initial rules - uw->initial_row = uw->row; - uw->row = dw_copy_cfa_row(arena, uw->reg_count, uw->initial_row); - uw->curr_inst = uw->insts.first; - - scratch_end(scratch); - return uw; -} - -internal B32 -dw_cfi_next_row(Arena *arena, DW_CFI_Unwind *uw) -{ - B32 is_row_valid = 0; - - while (uw->curr_inst) { - DW_CFA_Inst *inst = &uw->curr_inst->v; - - // validate register operands - DW_CFA_OperandType *operand_types = dw_operand_types_from_cfa_op(inst->opcode); - U64 operand_count = dw_operand_count_from_cfa_opcode(inst->opcode); - for EachIndex(operand_idx, operand_count) { - if (operand_types[operand_idx] == DW_CFA_OperandType_Register) { - if (inst->operands[operand_idx].u64 >= uw->reg_count) { - goto exit; - } - } - } - - switch (inst->opcode) { - // Row Creation Instructions - case DW_CFA_SetLoc: { - uw->pc = inst->operands[0].u64; - } break; - case DW_CFA_AdvanceLoc: - case DW_CFA_AdvanceLoc1: - case DW_CFA_AdvanceLoc2: - case DW_CFA_AdvanceLoc4: { - uw->pc += inst->operands[0].u64; - } break; - - // CFA Definition Instructions - case DW_CFA_DefCfa: - case DW_CFA_DefCfaSf: { - U64 reg = inst->operands[0].u64; - S64 off = inst->operands[1].s64; - uw->row->cfa.rule = DW_CFA_Rule_RegOff; - uw->row->cfa.reg = reg; - uw->row->cfa.off = off; - } break; - case DW_CFA_DefCfaRegister: { - // TODO: report error: this operation is valid only if the current CFA rule is defined to register+offset - if (uw->row->cfa.rule != DW_CFA_Rule_RegOff) { goto exit; } - U64 reg = inst->operands[0].u64; - uw->row->cfa.reg = reg; - } break; - case DW_CFA_DefCfaOffset: - case DW_CFA_DefCfaOffsetSf: { - // TODO: report error: this operation is valid only if the current CFA rule is defined to register+offset - if (uw->row->cfa.rule != DW_CFA_Rule_RegOff) { goto exit; } - uw->row->cfa.off = inst->operands[0].s64; - } break; - case DW_CFA_DefCfaExpr: { - uw->row->cfa.rule = DW_CFA_Rule_Expression; - uw->row->cfa.expr = inst->operands[0].block; - } break; - - // Register Rule Instructions - case DW_CFA_Undefined: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_Undefined; - } break; - case DW_CFA_SameValue: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_SameValue; - } break; - case DW_CFA_Offset: - case DW_CFA_OffsetExt: - case DW_CFA_OffsetExtSf: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_Offset; - uw->row->regs[reg].n = inst->operands[1].s64; - } break; - case DW_CFA_ValOffset: - case DW_CFA_ValOffsetSf: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_ValOffset; - uw->row->regs[reg].n = inst->operands[1].s64; - } break; - case DW_CFA_Register: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_Register; - uw->row->regs[reg].n = inst->operands[1].s64; - } break; - case DW_CFA_Expr: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_Expression; - uw->row->regs[reg].expr = inst->operands[1].block; - } break; - case DW_CFA_ValExpr: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg].rule = DW_CFI_RegisterRule_ValExpression; - uw->row->regs[reg].expr = inst->operands[1].block; - } break; - case DW_CFA_Restore: - case DW_CFA_RestoreExt: { - U64 reg = inst->operands[0].u64; - uw->row->regs[reg] = uw->initial_row->regs[reg]; - } break; - - // Row State Instructions - case DW_CFA_RememberState: { - DW_CFA_Row *new_row = dw_copy_cfa_row(arena, uw->reg_count, uw->row); - SLLStackPush(uw->row, new_row); - } break; - case DW_CFA_RestoreState: { - if (uw->row == 0) { goto exit; } // TODO: report error: unbalanced number of pushes and pops - DW_CFA_Row *free_row = uw->row; - SLLStackPop(uw->row); - SLLStackPush(uw->free_rows, free_row); - } break; - - case DW_CFA_Nop: {} break; - - default: { NotImplemented; } break; // TODO: report error: unknown CFA opcode - } - - is_row_valid = 1; - - uw->curr_inst = uw->curr_inst->next; - if (uw->curr_inst) { - if (dw_is_new_row_cfa_opcode(uw->curr_inst->v.opcode)) { break; } - } - } - -exit:; - return is_row_valid; -} - -internal DW_UnwindStatus -dw_cfi_apply_register_rules(DW_CFI_Unwind *uw, - DW_MemRead *mem_read_func, void *mem_read_ud, - DW_RegRead *reg_read_func, void *reg_read_ud, - DW_RegWrite *reg_write_func, void *reg_write_ud) -{ - Temp scratch = scratch_begin(0,0); - DW_UnwindStatus unwind_status = DW_UnwindStatus_Ok; - - DW_CFA_Row *row = uw->row; - - // establish CFA - U64 cfa = 0; - switch (row->cfa.rule) { - case DW_CFA_Rule_Null: break; - case DW_CFA_Rule_RegOff: { - // TODO: report error (invalid register read) - U64 cfa_reg_value = 0; - U64 reg_size = dw_reg_size_from_code(uw->arch, row->cfa.reg); - AssertAlways(reg_size <= sizeof(cfa_reg_value)); - unwind_status = reg_read_func(row->cfa.reg, &cfa_reg_value, reg_size, reg_read_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - cfa = cfa_reg_value + row->cfa.off; - } break; - case DW_CFA_Rule_Expression: { - // TODO: evaluate expression - } break; - } - - U64 max_reg_size = dw_reg_max_size_from_arch(uw->arch); - void *reg_buffer = push_array(scratch.arena, U8, max_reg_size); - - for EachIndex(reg_idx, uw->reg_count) { - DW_CFI_Register *reg = &uw->row->regs[reg_idx]; - switch (reg->rule) { - case DW_CFI_RegisterRule_Undefined: { - // TODO: ??? - Assert(!"undefined"); - } break; - case DW_CFI_RegisterRule_SameValue: {} break; - case DW_CFI_RegisterRule_Offset: { - // read register value from memory - U64 addr = cfa + reg->n; - U64 reg_size = dw_reg_size_from_code(uw->arch, reg_idx); - unwind_status = mem_read_func(addr, reg_size, reg_buffer, mem_read_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - - // write register value to the thread context - unwind_status = reg_write_func(reg_idx, reg_buffer, reg_size, reg_write_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - } break; - case DW_CFI_RegisterRule_ValOffset: { - // compute register value - U64 reg_value = cfa + reg->n; - - // write register value to the thread context - U64 reg_size = dw_reg_size_from_code(uw->arch, reg_idx); - unwind_status = reg_write_func(reg_idx, ®_value, reg_size, reg_write_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - } break; - case DW_CFI_RegisterRule_Register: { - // read register value from another register - U64 reg_size = dw_reg_size_from_code(uw->arch, reg_idx); - unwind_status = reg_read_func(reg->n, reg_buffer, reg_size, reg_read_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - - // write register value to the thread context - unwind_status = reg_write_func(reg_idx, reg_buffer, reg_size, reg_write_ud); - if (unwind_status != DW_UnwindStatus_Ok) { goto exit; } - } break; - case DW_CFI_RegisterRule_Expression: { - // TODO: evaluate expression - NotImplemented; - } break; - case DW_CFI_RegisterRule_ValExpression: { - // TODO: evaluate expression - NotImplemented; - } break; - case DW_CFI_RegisterRule_Architectural: { - NotImplemented; - } break; - } - } - -exit:; - scratch_end(scratch); - return unwind_status; -} - diff --git a/src/dwarf/dwarf_unwind.h b/src/dwarf/dwarf_unwind.h index f5fde8c0..d278d9f6 100644 --- a/src/dwarf/dwarf_unwind.h +++ b/src/dwarf/dwarf_unwind.h @@ -4,90 +4,41 @@ #ifndef DWARF_UNWIND_H #define DWARF_UNWIND_H -typedef enum DW_CFI_RegisterRule +typedef enum DW_UnwindRuleCode { - DW_CFI_RegisterRule_Undefined, - DW_CFI_RegisterRule_SameValue, - DW_CFI_RegisterRule_Offset, - DW_CFI_RegisterRule_ValOffset, - DW_CFI_RegisterRule_Register, - DW_CFI_RegisterRule_Expression, - DW_CFI_RegisterRule_ValExpression, - DW_CFI_RegisterRule_Architectural -} DW_CFI_RegisterRule; + DW_UnwindRuleCode_SameVal, + DW_UnwindRuleCode_Undefined, + DW_UnwindRuleCode_Off, + DW_UnwindRuleCode_ValOff, + DW_UnwindRuleCode_Reg, + DW_UnwindRuleCode_Expr, + DW_UnwindRuleCode_ValExpr, + DW_UnwindRuleCode_Architectural, +} +DW_UnwindRuleCode; -typedef enum DW_CFA_Rule +typedef struct DW_UnwindRule DW_UnwindRule; +struct DW_UnwindRule { - DW_CFA_Rule_Null, - DW_CFA_Rule_RegOff, - DW_CFA_Rule_Expression -} DW_CFA_Rule; + DW_UnwindRuleCode code; + DW_RegCode reg_code; + S64 s64; + String8 expr; +}; -typedef struct DW_CFA +typedef struct DW_CFIRow DW_CFIRow; +struct DW_CFIRow { - DW_CFA_Rule rule; - union { - struct { - DW_Reg reg; - S64 off; - }; - String8 expr; - }; -} DW_CFA; + U64 base_pc_off; + DW_UnwindRule cfa_rule; + DW_UnwindRule *reg_rules; +}; -typedef struct DW_CFI_Register +typedef struct DW_CFIRowNode DW_CFIRowNode; +struct DW_CFIRowNode { - DW_CFI_RegisterRule rule; - union { - S64 n; - String8 expr; - }; -} DW_CFI_Register; - -typedef struct DW_CFA_Row -{ - DW_CFA cfa; - DW_CFI_Register *regs; - struct DW_CFA_Row *next; -} DW_CFA_Row; - -typedef struct DW_CFI_Unwind -{ - DW_CFA_InstList insts; - DW_CIE *cie; - DW_FDE *fde; - DW_CFA_Row *initial_row; - DW_CFA_Row *row; - DW_CFA_InstNode *curr_inst; - DW_CFA_Row *free_rows; - DW_Reg reg_count; - U64 pc; - Arch arch; -} DW_CFI_Unwind; - -typedef enum { - DW_UnwindStatus_Ok, - DW_UnwindStatus_Fail, - DW_UnwindStatus_Maybe -} DW_UnwindStatus; - -#define DW_REG_READ(name) DW_UnwindStatus name(DW_Reg reg_id, void *buffer, U64 buffer_max, void *ud) -typedef DW_REG_READ(DW_RegRead); - -#define DW_REG_WRITE(name) DW_UnwindStatus name(DW_Reg reg_id, void *value, U64 value_size, void *ud) -typedef DW_REG_WRITE(DW_RegWrite); - -#define DW_MEM_READ(name) DW_UnwindStatus name(U64 addr, U64 size, void *buffer, void *ud) -typedef DW_MEM_READ(DW_MemRead); - -//////////////////////////////// - -internal DW_CFA_Row * dw_make_cfa_row(Arena *arena, U64 reg_count); -internal DW_CFA_Row * dw_copy_cfa_row(Arena *arena, U64 reg_count, DW_CFA_Row *row); - -internal DW_CFI_Unwind * dw_cfi_unwind_init(Arena *arena, Arch arch, DW_CIE *cie, DW_FDE *fde, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud); -internal B32 dw_cfi_next_row(Arena *arena, DW_CFI_Unwind *uw); -internal DW_UnwindStatus dw_cfi_apply_register_rules(DW_CFI_Unwind *uw, DW_MemRead *mem_read_func, void *mem_read_ud, DW_RegRead *reg_read_func, void *reg_read_ud, DW_RegWrite *reg_write_func, void *reg_write_ud); + DW_CFIRowNode *next; + DW_CFIRow v; +}; #endif // DWARF_UNWIND_H - diff --git a/src/dwarf/dwarf_writer.c b/src/dwarf/dwarf_writer.c new file mode 100644 index 00000000..701bb454 --- /dev/null +++ b/src/dwarf/dwarf_writer.c @@ -0,0 +1,1511 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +// TODO(rjf): this uses concepts from the old parser + +internal DW_IntEnc +dw_int_enc_from_sint(S64 v) +{ + if ((S8)v == v) return DW_IntEnc_1Byte; + if ((S16)v == v) return DW_IntEnc_2Byte; + if ((S32)v == v) return DW_IntEnc_4Byte; + return DW_IntEnc_LEB128; +} + +internal DW_IntEnc +dw_int_enc_from_uint(U64 v) +{ + if ((U8)v == v) return DW_IntEnc_1Byte; + if ((U16)v == v) return DW_IntEnc_2Byte; + if ((U32)v == v) return DW_IntEnc_4Byte; + return DW_IntEnc_LEB128; +} + +internal U64 +dw_size_from_sint(S64 v) +{ + DW_IntEnc enc = dw_int_enc_from_sint(v); + switch (enc) { + case DW_IntEnc_Null: break; + case DW_IntEnc_1Byte: return 1; + case DW_IntEnc_2Byte: return 2; + case DW_IntEnc_4Byte: return 4; + case DW_IntEnc_LEB128: return dw_size_from_sleb128(v); + default: InvalidPath; break; + } + return 0; +} + +internal U64 +dw_size_from_uint(U64 v) +{ + DW_IntEnc enc = dw_int_enc_from_uint(v); + switch (enc) { + case DW_IntEnc_Null: break; + case DW_IntEnc_1Byte: return 1; + case DW_IntEnc_2Byte: return 2; + case DW_IntEnc_4Byte: return 4; + case DW_IntEnc_LEB128: return dw_size_from_uleb128(v); + default: InvalidPath; break; + } + return 0; +} + +internal DW_WriterFixupNode * +dw_writer_fixup_list_push(Arena *arena, DW_WriterFixupList *list, DW_WriterFixup v) +{ + DW_WriterFixupNode *n = push_array(arena, DW_WriterFixupNode, 1); + n->v = v; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + return n; +} + +internal DW_WriterAttrib * +dw_writer_attrib_chunk_list_push(Arena *arena, DW_WriterAttribChunkList *list, U64 cap) +{ + if (list->last == 0 || list->last->count >= list->last->max) { + DW_WriterAttribChunk *n = push_array(arena, DW_WriterAttribChunk, 1); + n->v = push_array_no_zero(arena, DW_WriterAttrib, cap); + n->max = cap; + SLLQueuePush(list->first, list->last, n); + list->chunk_count += 1; + } + + DW_WriterAttrib *result = &list->last->v[list->last->count++]; + MemoryZeroStruct(result); + + list->total_count += 1; + + return result; +} + +internal DW_WriterTag * +dw_writer_tag_chunk_list_push(Arena *arena, DW_WriterTagChunkList *list, U64 cap) +{ + if (list->last == 0 || list->last->count >= list->last->max) { + DW_WriterTagChunk *n = push_array(arena, DW_WriterTagChunk, 1); + n->v = push_array_no_zero(arena, DW_WriterTag, cap); + n->max = cap; + SLLQueuePush(list->first, list->last, n); + list->chunk_count += 1; + } + + DW_WriterTag *result = &list->last->v[list->last->count++]; + MemoryZeroStruct(result); + + list->total_count += 1; + + return result; +} + +internal U64 +dw_write_to_buffer_uleb128(U8 buffer[10], U64 v) +{ + U64 buffer_size = 0; + U64 value = v; + do { + U8 byte = value & 0x7f; + value >>= 7; + if (value != 0) { + byte |= 0x80; + } + Assert(buffer_size < 10); + buffer[buffer_size++] = byte; + } while (value > 0); + return buffer_size; +} + +internal U64 +dw_write_to_buffer_sleb128(U8 buffer[10], U64 v) +{ + U64 buffer_size = 0; + for (S64 value = v, more = 1; more != 0; ) { + U8 byte = value & 0x7f; + value >>= 7; + U8 sign_bit = byte & 0x40; + if ((value == 0 && sign_bit == 0) || (value == -1 && sign_bit != 0)) { + more = 0; + } else { + byte |= 0x80; + } + Assert(buffer_size < 10); + buffer[buffer_size++] = byte; + } + return buffer_size; +} + +internal String8 +dw_write_uleb128(Arena *arena, U64 v) +{ + U8 buffer[10]; + U64 buffer_size = dw_write_to_buffer_uleb128(buffer, v); + return str8_copy(arena, str8(buffer, buffer_size)); +} + +internal String8 +dw_write_sleb128(Arena *arena, S64 v) +{ + U8 buffer[10]; + U64 buffer_size = dw_write_to_buffer_sleb128(buffer, v); + return str8_copy(arena, str8(buffer, buffer_size)); +} + +internal U64 +dw_size_from_uleb128(U64 v) +{ + U8 buffer[10]; + return dw_write_to_buffer_uleb128(buffer, v); +} + +internal U64 +dw_size_from_sleb128(S64 v) +{ + U8 buffer[10]; + return dw_write_to_buffer_sleb128(buffer, v); +} + +internal void * +dw_serial_push_length(Arena *arena, String8List *srl, DW_Format format, U64 length) +{ + void *result; + if (format == DW_Format_64Bit) { + U8 buffer[sizeof(U32) + sizeof(U64)]; + MemorySet(&buffer[0], 0xff, sizeof(U32)); + MemoryCopy(buffer + sizeof(U32), &length, sizeof(length)); + result = str8_serial_push_string(arena, srl, str8_array_fixed(buffer)); + } else { + result = str8_serial_push_string(arena, srl, str8((U8 *)&length, sizeof(U32))); + } + return result; +} + +internal void * +dw_serial_push_uint(Arena *arena, String8List *srl, DW_Format format, U64 v) +{ + String8 uint; + if (format == DW_Format_64Bit) { + U64 *ptr = push_array(arena, U64, 1); + *ptr = v; + uint = str8((U8 *)ptr, sizeof(*ptr)); + } else { + U32 *ptr = push_array(arena, U32, 1); + *ptr = safe_cast_u32(v); + uint = str8((U8 *)ptr, sizeof(*ptr)); + } + return str8_serial_push_string(arena, srl, uint); +} + +internal void * +dw_serial_push_uleb128(Arena *arena, String8List *srl, U64 v) +{ + U8 buffer[10]; + U64 buffer_size = dw_write_to_buffer_uleb128(buffer, v); + return str8_serial_push_string(arena, srl, str8(buffer, buffer_size)); +} + +internal void * +dw_serial_push_sleb128(Arena *arena, String8List *srl, S64 v) +{ + U8 buffer[10]; + U64 buffer_size = dw_write_to_buffer_sleb128(buffer, v); + return str8_serial_push_string(arena, srl, str8(buffer, buffer_size)); +} + +internal DW_Writer * +dw_writer_begin(DW_Format format, DW_Version version, DW_CompUnitKind cu_kind, Arch arch) +{ + Arena *arena = arena_alloc(); + DW_Writer *writer = push_array(arena, DW_Writer, 1); + writer->arena = arena; + writer->arch = arch; + writer->format = format; + writer->version = version; + writer->cu_kind = cu_kind; + writer->address_size = byte_size_from_arch(arch); + writer->current = 0; + writer->abbrev_id_map = hash_table_init(arena, 0x2000); + writer->line.min_inst_len = min_instruction_size_from_arch(arch); + writer->line.max_ops_per_inst = max_ops_per_instruction_from_arch(arch); + writer->line.default_is_stmt = 1; + writer->line.line_base = -5; + writer->line.line_range = 14; + writer->line.opcode_base = DW_StdOpcode_Count; + writer->line.ln = 1; + Assert(writer->line.line_base < writer->line.line_range); + for EachElement(i, writer->sections) { + str8_serial_begin(arena, &writer->sections[i].srl); + } + + // write info header + { + String8List *srl = &writer->sections[DW_Section_Info].srl; + + // length + writer->sections[DW_Section_Info].length = dw_serial_push_length(writer->arena, srl, writer->format, 0); + + // version + str8_serial_push_struct(writer->arena, srl, &writer->version); + + // compile unit kind + str8_serial_push_struct(writer->arena, srl, &writer->cu_kind); + + // address size + str8_serial_push_u8(writer->arena, srl, (U8)writer->address_size); + + // reserve 'abbrev_base' + writer->abbrev_base_info_off = srl->total_size; + dw_serial_push_uint(writer->arena, srl, writer->format, 0); + + if (writer->cu_kind == DW_CompUnitKind_Skeleton) { + // TODO: write skeleton id + NotImplemented; + } + } + + return writer; +} + +internal void +dw_writer_end(DW_Writer **writer_ptr) +{ + arena_release((*writer_ptr)->arena); + *writer_ptr = 0; +} + +internal U64 +dw_serial_push_form(Arena *arena, String8List *srl, DW_Version version, DW_Format format, U8 address_size, DW_WriterFixupList *fixups, DW_WriterXForm form) +{ + U64 start_off = srl->total_size; + switch (form.reader.kind) { + case DW_Form_Addr: { + str8_serial_push_string(arena, srl, form.reader.addr); + } break; + case DW_Form_Block1: + case DW_Form_Block2: + case DW_Form_Block4: { + str8_serial_push_string(arena, srl, form.reader.block); + } break; + case DW_Form_Data1: + case DW_Form_Data2: + case DW_Form_Data4: + case DW_Form_Data8: { + str8_serial_push_string(arena, srl, form.reader.data); + } break; + case DW_Form_String: { + str8_serial_push_cstr(arena, srl, form.reader.string); + } break; + case DW_Form_Block: { + dw_serial_push_uleb128(arena, srl, form.reader.block.size); + str8_serial_push_string(arena, srl, form.reader.block); + } break; + case DW_Form_Flag: { + str8_serial_push_u8(arena, srl, form.reader.flag); + } break; + case DW_Form_SData: { + dw_serial_push_sleb128(arena, srl, form.reader.sdata); + } break; + case DW_Form_Strp: { + dw_serial_push_uint(arena, srl, format, form.reader.sec_offset); + } break; + case DW_Form_UData: { + dw_serial_push_uleb128(arena, srl, form.reader.udata); + } break; + case DW_Form_RefAddr: { + if (version < DW_Version_3) { + Assert(address_size <= sizeof(form.reader.ref)); + str8_serial_push_string(arena, srl, str8((U8 *)&form.reader.ref, address_size)); + } else { + dw_serial_push_uint(arena, srl, format, form.reader.ref); + } + } break; + case DW_Form_Ref1: { + str8_serial_push_u8(arena, srl, (U8)form.reader.ref); + } break; + case DW_Form_Ref2: { + str8_serial_push_u16(arena, srl, (U16)form.reader.ref); + } break; + case DW_Form_Ref4: { + str8_serial_push_u32(arena, srl, (U32)form.reader.ref); + } break; + case DW_Form_Ref8: { + if (form.writer.ref->info_off == 0) { + // reserve 8 bytes + void *value = str8_serial_push_u64(arena, srl, 0); + + // push fixup + dw_writer_fixup_list_push(arena, fixups, (DW_WriterFixup){ .ptr = value, .tag = form.writer.ref }); + } + } break; + case DW_Form_RefUData: { + dw_serial_push_uleb128(arena, srl, form.reader.ref); + } break; + case DW_Form_Indirect: { + NotImplemented; + } break; + case DW_Form_SecOffset: { + dw_serial_push_uint(arena, srl, format, form.reader.sec_offset); + } break; + case DW_Form_ExprLoc: { + dw_serial_push_uleb128(arena, srl, form.reader.exprloc.size); + str8_serial_push_string(arena, srl, form.reader.exprloc); + } break; + case DW_Form_FlagPresent: { + } break; + case DW_Form_RefSig8: { + NotImplemented; + } break; + case DW_Form_Strx: + case DW_Form_Addrx: + case DW_Form_RngListx: + case DW_Form_LocListx: { + dw_serial_push_uleb128(arena, srl, form.reader.xval); + } break; + case DW_Form_RefSup4: { + NotImplemented; + } break; + case DW_Form_StrpSup: { + dw_serial_push_uint(arena, srl, format, form.reader.strp_sup); + } break; + case DW_Form_Data16: { + str8_serial_push_string(arena, srl, form.reader.data); + } break; + case DW_Form_LineStrp: { + dw_serial_push_uint(arena, srl, format, form.reader.sec_offset); + } break; + case DW_Form_ImplicitConst: { + // value is stored in the abbrev entry + } break; + case DW_Form_RefSup8: { + NotImplemented; + } break; + case DW_Form_Strx1: + case DW_Form_Addrx1: { + str8_serial_push_u8(arena, srl, (U8)form.reader.xval); + } break; + case DW_Form_Strx2: + case DW_Form_Addrx2: { + str8_serial_push_u16(arena, srl, (U16)form.reader.xval); + } break; + case DW_Form_Strx3: + case DW_Form_Addrx3: { + str8_serial_push_string(arena, srl, str8((U8 *)&form.reader.xval, 3)); + } break; + case DW_Form_Strx4: + case DW_Form_Addrx4: { + str8_serial_push_u32(arena, srl, (U32)form.reader.xval); + } break; + + case DW_Form_GNU_StrpAlt: { + dw_serial_push_uint(arena, srl, format, form.reader.sec_offset); + } break; + case DW_Form_GNU_RefAlt: { + dw_serial_push_uint(arena, srl, format, form.reader.ref); + } break; + + default: InvalidPath; break; + } + return srl->total_size - start_off; +} + +internal String8 +dw_make_abbrev_entry(Arena *arena, DW_WriterTag *tag) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List srl = {0}; + str8_serial_begin(scratch.arena, &srl); + + // tag abbrev + B8 has_children = tag->first_child != 0; + dw_serial_push_uleb128(scratch.arena, &srl, tag->kind); + str8_serial_push_string(scratch.arena, &srl, str8_struct(&has_children)); + + // attrib abbrev + for EachNode(attrib, DW_WriterAttrib, tag->first_attrib) { + dw_serial_push_uleb128(scratch.arena, &srl, attrib->kind); + dw_serial_push_uleb128(scratch.arena, &srl, attrib->form.reader.kind); + if (attrib->form.reader.kind == DW_Form_ImplicitConst) { + dw_serial_push_sleb128(scratch.arena, &srl, attrib->form.reader.implicit_const); + } + } + + // closing entry + dw_serial_push_uleb128(scratch.arena, &srl, 0); + dw_serial_push_uleb128(scratch.arena, &srl, 0); + + String8 tag_abbrev = str8_serial_end(arena, &srl); + + scratch_end(scratch); + return tag_abbrev; +} + +internal DW_WriterTag * +dw_writer_tag_begin(DW_Writer *writer, DW_TagKind kind) +{ + DW_WriterTag *tag = dw_writer_tag_reserve(writer, kind); + dw_writer_tag_begin_reserved(writer, tag); + return tag; +} + +internal void +dw_writer_tag_end(DW_Writer *writer) +{ + // pop to parent + writer->current = writer->current->parent; +} + +internal DW_WriterTag * +dw_writer_tag_reserve(DW_Writer *writer, DW_TagKind kind) +{ + DW_WriterTag *tag = dw_writer_tag_chunk_list_push(writer->arena, &writer->tag_chunk_list, 512); + tag->kind = kind; + return tag; +} + +internal void +dw_writer_tag_begin_reserved(DW_Writer *writer, DW_WriterTag *tag) +{ + tag->parent = writer->current; + + // add tag to the tree + if (writer->current) { + SLLQueuePush(writer->current->first_child, writer->current->last_child, tag); + } else { + writer->root = tag; + } + writer->current = tag; +} + +internal DW_WriterAttrib * +dw_writer_push_attrib(DW_Writer *writer, DW_AttribKind kind, DW_WriterForm form) +{ + // validate attribute-form encoding + B32 is_enc_legal = 0; + DW_AttribClass attrib_class = dw_attrib_class_from_attrib(writer->version, DW_Ext_Null, kind); + for (DW_AttribClass f = attrib_class; f != 0; f &= f - 1) { + DW_AttribClass v = f & -f; + switch (v) { + case DW_AttribClass_Null: { is_enc_legal = (form.kind == DW_WriterFormKind_Null); } break; + case DW_AttribClass_Undefined: { is_enc_legal = 0; } break; + case DW_AttribClass_Address: { is_enc_legal = (form.kind == DW_WriterFormKind_Address); } break; + case DW_AttribClass_Block: { is_enc_legal = (form.kind == DW_WriterFormKind_Block); } break; + case DW_AttribClass_Const: { is_enc_legal = (form.kind == DW_WriterFormKind_SInt || + form.kind == DW_WriterFormKind_UInt || + form.kind == DW_WriterFormKind_Implicit); } break; + case DW_AttribClass_ExprLoc: { is_enc_legal = (form.kind == DW_WriterFormKind_ExprLoc); } break; + case DW_AttribClass_Flag: { is_enc_legal = (form.kind == DW_WriterFormKind_Flag); } break; + case DW_AttribClass_LinePtr: { is_enc_legal = (form.kind == DW_WriterFormKind_LinePtr); } break; + case DW_AttribClass_LocListPtr: { is_enc_legal = 0; /* TODO */ } break; + case DW_AttribClass_MacPtr: { is_enc_legal = (form.kind == DW_WriterFormKind_MacPtr); } break; + case DW_AttribClass_RngListPtr: { is_enc_legal = (form.kind == DW_WriterFormKind_RngListPtr); } break; + case DW_AttribClass_Reference: { is_enc_legal = (form.kind == DW_WriterFormKind_Ref); } break; + case DW_AttribClass_String: { is_enc_legal = (form.kind == DW_WriterFormKind_String); } break; + case DW_AttribClass_LocList: { is_enc_legal = 0; /* TODO */ } break; + case DW_AttribClass_RngList: { is_enc_legal = 0; /* TODO */ } break; + case DW_AttribClass_StrOffsetsPtr: { is_enc_legal = 0; /* TODO */ } break; + case DW_AttribClass_AddrPtr: { is_enc_legal = 0; /* TODO */ } break; + default: { InvalidPath; } break; + } + if (is_enc_legal) { break; } + } + Assert(is_enc_legal); + + DW_WriterAttrib *attrib = dw_writer_attrib_chunk_list_push(writer->arena, &writer->attrib_chunk_list, 512); + attrib->kind = kind; + attrib->form.writer = form; + SLLQueuePush(writer->current->first_attrib, writer->current->last_attrib, attrib); + writer->current->attrib_count += 1; + return attrib; +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_address(DW_Writer *writer, DW_AttribKind kind, U64 address) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Address, .address = address }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_block(DW_Writer *writer, DW_AttribKind kind, String8 block) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Block, .block = str8_copy(writer->arena, block) }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_data(DW_Writer *writer, DW_AttribKind kind, String8 data) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Data, .data = str8_copy(writer->arena, data) }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_string(DW_Writer *writer, DW_AttribKind kind, String8 string) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_String, .string = string }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_stringf(DW_Writer *writer, DW_AttribKind kind, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(writer->arena, fmt, args); + va_end(args); + return dw_writer_push_attrib_string(writer, kind, string); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_flag(DW_Writer *writer, DW_AttribKind kind, B8 flag) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Flag, .flag = flag }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_sint(DW_Writer *writer, DW_AttribKind kind, S64 sint) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_SInt, .sint = sint}); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_uint(DW_Writer *writer, DW_AttribKind kind, U64 uint) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_UInt, .uint = uint }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_enum(DW_Writer *writer, DW_AttribKind kind, S64 e) +{ + return dw_writer_push_attrib_sint(writer, kind, e); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_ref(DW_Writer *writer, DW_AttribKind kind, DW_WriterTag *ref) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Ref, .ref = ref }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_exprloc(DW_Writer *writer, DW_AttribKind kind, String8 exprloc) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_ExprLoc, .exprloc = str8_copy(writer->arena, exprloc) }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_expr(DW_Writer *writer, DW_AttribKind kind, DW_ExprEnc *encs, U64 encs_count) +{ + String8 exprloc = dw_encode_expr(writer->arena, writer->arch, writer->format, encs, encs_count); + return dw_writer_push_attrib_exprloc(writer, kind, exprloc); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_line_ptr(DW_Writer *writer, DW_AttribKind kind, U64 line_ptr) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_LinePtr, .line_ptr = line_ptr }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_mac_ptr(DW_Writer *writer, DW_AttribKind kind, void *mac_ptr) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_MacPtr, .mac_ptr = mac_ptr }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_rng_list_ptr(DW_Writer *writer, DW_AttribKind kind, void *rng_list_ptr) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_RngListPtr, .rng_list_ptr = rng_list_ptr }); +} + +internal DW_WriterAttrib * +dw_writer_push_attrib_implicit(DW_Writer *writer, DW_AttribKind kind, S64 implicit) +{ + return dw_writer_push_attrib(writer, kind, (DW_WriterForm){ .kind = DW_WriterFormKind_Implicit, .implicit = implicit }); +} + +internal void +dw_line_inst_list_push_node(DW_LineInstList *list, DW_LineInstNode *node) +{ + SLLQueuePush(list->first, list->last, node); + list->count += 1; +} + +internal DW_LineInstNode * +dw_line_inst_list_push(Arena *arena, DW_LineInstList *list, DW_LineInst v) +{ + DW_LineInstNode *node = push_array(arena, DW_LineInstNode, 1); + node->v = v; + dw_line_inst_list_push_node(list, node); + return node; +} + +internal String8 +dw_data_from_line_insts(Arena *arena, U8 address_size, DW_LineInstList insts) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List srl = {0}; + str8_serial_begin(scratch.arena, &srl); + + for EachNode(inst_n, DW_LineInstNode, insts.first) { + DW_LineInst *inst = &inst_n->v; + + str8_serial_push_struct(scratch.arena, &srl, &inst->opcode); + switch (inst->opcode) { + case DW_StdOpcode_Copy: {} break; + case DW_StdOpcode_AdvancePc: { + dw_serial_push_uleb128(arena, &srl, inst->advance_pc); + } break; + case DW_StdOpcode_AdvanceLine: { + dw_serial_push_sleb128(arena, &srl, inst->advance_line); + } break; + case DW_StdOpcode_SetFile: { + dw_serial_push_uleb128(arena, &srl, inst->set_file->file_idx); + } break; + case DW_StdOpcode_SetColumn: { + dw_serial_push_uleb128(arena, &srl, inst->set_column); + } break; + case DW_StdOpcode_NegateStmt: {} break; + case DW_StdOpcode_SetBasicBlock: {} break; + case DW_StdOpcode_ConstAddPc: {} break; + case DW_StdOpcode_FixedAdvancePc: { + str8_serial_push_u16(arena, &srl, inst->fixed_advance_pc); + } break; + case DW_StdOpcode_SetPrologueEnd: {} break; + case DW_StdOpcode_SetEpilogueBegin: {} break; + case DW_StdOpcode_SetIsa: { + dw_serial_push_uleb128(arena, &srl, inst->set_isa); + } break; + case DW_StdOpcode_ExtendedOpcode: { + // get ext size + U64 ext_size = 0; + switch (inst->ext) { + case DW_ExtOpcode_EndSequence: { ext_size = 0; } break; + case DW_ExtOpcode_SetAddress: { ext_size = address_size; } break; + case DW_ExtOpcode_DefineFile: { + NotImplemented; + } break; + case DW_ExtOpcode_SetDiscriminator: { + ext_size = dw_size_from_uleb128(inst->set_discriminator); + } break; + default: { InvalidPath; } break; + } + ext_size += sizeof(DW_ExtOpcode); + + // write ext header + dw_serial_push_uleb128(arena, &srl, ext_size); + str8_serial_push_struct(arena, &srl, &inst->ext); + + // write ext operands + switch (inst->ext) { + case DW_ExtOpcode_EndSequence: {} break; + case DW_ExtOpcode_SetAddress: { + str8_serial_push_string(arena, &srl, str8_copy(arena, str8((U8 *)&inst->set_address, address_size))); + } break; + case DW_ExtOpcode_DefineFile: { + NotImplemented; + } break; + case DW_ExtOpcode_SetDiscriminator: { + dw_serial_push_uleb128(arena, &srl, inst->set_discriminator); + } break; + default: { InvalidPath; } break; + } + } break; + // special opcode + default: { } break; + } + } + + String8 data = str8_serial_end(arena, &srl); + scratch_end(scratch); + return data; +} + +internal void +dw_writer_line_emit(DW_Writer *writer, DW_WriterFile *file, U64 ln, U64 col, U64 addr) +{ + if (writer->line.file != file) { + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_file(file)); + } + + S64 col_delta = (S64)col - (S64)writer->line.col; + if (col_delta != 0) { dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_column(col_delta)); } + + Assert(addr <= max_S64); + S64 addr_delta = (S64)addr - (S64)writer->line.addr; + S64 ln_delta = (S64)ln - (S64)writer->line.ln; + + S64 max_ln_delta = writer->line.line_range + writer->line.line_base; + S64 max_addr_delta = (max_U8 - writer->line.opcode_base - (ln_delta - writer->line.line_base)) / writer->line.line_range; + if ((ln_delta != 0 || addr_delta != 0) && + writer->line.line_base <= ln_delta && ln_delta < max_ln_delta && // check line number window + 0 <= addr_delta && addr_delta <= max_addr_delta) { // check address window + U8 opcode = (ln_delta - writer->line.line_base) + (addr_delta * writer->line.line_range) + writer->line.opcode_base; + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, (DW_LineInst){ .opcode = opcode }); + } else { + if (addr_delta != 0) { dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_pc(addr_delta)); } + if (ln_delta != 0) { dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(ln_delta)); } + if (addr_delta != 0 || ln_delta != 0 || col_delta != 0) { + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_copy()); + } + } + + // update registers + writer->line.file = file; + writer->line.ln = ln; + writer->line.col = col; + writer->line.addr = addr; +} + +internal void +dw_writer_line_set_address(DW_Writer *writer, U64 address) +{ + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_set_address(address)); +} + +internal void +dw_writer_line_set_discriminator(DW_Writer *writer, U64 d) +{ + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_set_discriminator(d)); +} + +internal void +dw_writer_line_end_sequence(DW_Writer *writer) +{ + writer->line.file = 0; + writer->line.ln = 1; + writer->line.addr = 0; + writer->line.col = 0; + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_end_sequence()); +} + +internal void +dw_writer_line_set_prologue_end(DW_Writer *writer) +{ + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_prologue_end()); +} + +internal void +dw_writer_line_epilogue_begin(DW_Writer *writer) +{ + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_epilogue_begin()); +} + +internal void +dw_writer_line_set_isa(DW_Writer *writer, U64 isa) +{ + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_isa(isa)); +} + +internal DW_WriterFile * +dw_writer_new_file(DW_Writer *writer, String8 path) +{ + DW_WriterFile *file = push_array(writer->arena, DW_WriterFile, 1); + file->path = path; + + SLLQueuePush(writer->line.first_file, writer->line.last_file, file); + writer->line.file_count += 1; + return file; +} + +internal void +dw_lower_attrib_forms(DW_Writer *writer, DW_WriterTag *tag) +{ + for EachNode(attrib, DW_WriterAttrib, tag->first_attrib) { + switch (attrib->form.writer.kind) { + case DW_WriterFormKind_Null: {} break; + case DW_WriterFormKind_Flag: { + attrib->form.reader.kind = DW_Form_Flag; + attrib->form.reader.flag = attrib->form.writer.flag; + } break; + case DW_WriterFormKind_SInt: { + switch (dw_int_enc_from_sint(attrib->form.writer.sint)) { + case DW_IntEnc_Null: attrib->form.reader.kind = 0; break; + case DW_IntEnc_1Byte: { + attrib->form.reader.kind = DW_Form_Data1; + attrib->form.reader.data = str8((U8 *)&attrib->form.writer.sint, sizeof(S8)); + } break; + case DW_IntEnc_2Byte: { + attrib->form.reader.kind = DW_Form_Data2; + attrib->form.reader.data = str8((U8 *)&attrib->form.writer.sint, sizeof(S16)); + } break; + case DW_IntEnc_4Byte: { + attrib->form.reader.kind = DW_Form_Data4; + attrib->form.reader.data = str8((U8 *)&attrib->form.writer.sint, sizeof(U32)); + } break; + case DW_IntEnc_LEB128: { + attrib->form.reader.kind = DW_Form_SData; + attrib->form.reader.sdata = attrib->form.writer.sint; + } break; + default: InvalidPath; break; + } + } break; + case DW_WriterFormKind_UInt: { + attrib->form.reader.kind = DW_Form_UData; + attrib->form.reader.udata = attrib->form.writer.uint; + } break; + case DW_WriterFormKind_Address: { + Assert(writer->address_size <= sizeof(attrib->form.writer.address)); + attrib->form.reader.kind = DW_Form_Addr; + attrib->form.reader.addr = push_str8_copy(writer->arena, str8((U8 *)&attrib->form.writer.address, writer->address_size)); + } break; + case DW_WriterFormKind_Ref: { + if (attrib->form.writer.ref->info_off == 0) { + attrib->form.reader.kind = DW_Form_Ref8; + } else { + switch (dw_int_enc_from_uint(attrib->form.writer.ref->info_off)) { + case DW_IntEnc_Null: break; + case DW_IntEnc_1Byte: { + attrib->form.reader.kind = DW_Form_Ref1; + attrib->form.reader.ref = (U8)attrib->form.writer.ref->info_off; + } break; + case DW_IntEnc_2Byte: { + attrib->form.reader.kind = DW_Form_Ref2; + attrib->form.reader.ref = (U16)attrib->form.writer.ref->info_off; + } break; + case DW_IntEnc_4Byte: { + attrib->form.reader.kind = DW_Form_Ref4; + attrib->form.reader.ref = (U32)attrib->form.writer.ref->info_off; + } break; + case DW_IntEnc_LEB128: { + attrib->form.reader.kind = DW_Form_RefUData; + attrib->form.reader.ref = attrib->form.writer.ref->info_off; + } break; + default: InvalidPath; break; + } + } + } break; + case DW_WriterFormKind_LinePtr: { + attrib->form.reader.kind = DW_Form_SecOffset; + attrib->form.reader.sec_offset = attrib->form.writer.line_ptr; + } break; + case DW_WriterFormKind_MacPtr: { + NotImplemented; + } break; + case DW_WriterFormKind_RngListPtr: { + NotImplemented; + } break; + case DW_WriterFormKind_Data: { + NotImplemented; + } break; + case DW_WriterFormKind_Block: { + attrib->form.reader.block = attrib->form.writer.block; + switch (attrib->form.writer.block.size) { + case 0 : break; + case 1 : attrib->form.reader.kind = DW_Form_Block1; break; + case 2 : attrib->form.reader.kind = DW_Form_Block2; break; + case 4 : attrib->form.reader.kind = DW_Form_Block4; break; + default: attrib->form.reader.kind = DW_Form_Block; break; + } + } break; + case DW_WriterFormKind_String: { + attrib->form.reader.kind = DW_Form_String; + attrib->form.reader.string = attrib->form.writer.string; + } break; + case DW_WriterFormKind_ExprLoc: { + attrib->form.reader.kind = DW_Form_ExprLoc; + attrib->form.reader.exprloc = attrib->form.writer.exprloc; + } break; + case DW_WriterFormKind_Implicit: { + attrib->form.reader.kind = DW_Form_ImplicitConst; + attrib->form.reader.implicit_const = attrib->form.writer.implicit; + } break; + default: { InvalidPath; } break; + } + } +} + +internal void +dw_writer_emit_tag(DW_Writer *writer, DW_WriterTag *tag) +{ + Assert(tag->info_off == 0); + + dw_lower_attrib_forms(writer, tag); + + // make abbrev id for the tag + U64 abbrev_id; + { + Temp temp = temp_begin(writer->arena); + String8 abbrev_entry = dw_make_abbrev_entry(temp.arena, tag); + + if ( ! hash_table_search_string_u64(writer->abbrev_id_map, abbrev_entry, &abbrev_id)) { + abbrev_id = writer->abbrev_id_map->count + 1; + + hash_table_push_string_u64(writer->arena, writer->abbrev_id_map, abbrev_entry, abbrev_id); + + // push abbrev entry + dw_serial_push_uleb128(writer->arena, &writer->sections[DW_Section_Abbrev].srl, abbrev_id); + str8_serial_push_string(writer->arena, &writer->sections[DW_Section_Abbrev].srl, abbrev_entry); + } else { + temp_end(temp); + } + } + + tag->abbrev_id = abbrev_id; + tag->info_off = writer->sections[DW_Section_Info].srl.total_size; + + // emit tag abbrev id + dw_serial_push_uleb128(writer->arena, &writer->sections[DW_Section_Info].srl, tag->abbrev_id); + + // emit attribs + { + String8List *debug_info = &writer->sections[DW_Section_Info].srl; + for EachNode(attrib, DW_WriterAttrib, tag->first_attrib) { + switch (attrib->form.reader.kind) { + case DW_Form_Addr: { + str8_serial_push_string(writer->arena, debug_info, attrib->form.reader.addr); + } break; + case DW_Form_Block1: + case DW_Form_Block2: + case DW_Form_Block4: { + str8_serial_push_string(writer->arena, debug_info, attrib->form.reader.block); + } break; + case DW_Form_Data1: + case DW_Form_Data2: + case DW_Form_Data4: + case DW_Form_Data8: { + str8_serial_push_string(writer->arena, debug_info, attrib->form.reader.data); + } break; + case DW_Form_String: { + str8_serial_push_cstr(writer->arena, debug_info, attrib->form.reader.string); + } break; + case DW_Form_Flag: { + str8_serial_push_u8(writer->arena, debug_info, attrib->form.reader.flag); + } break; + case DW_Form_SData: { + dw_serial_push_sleb128(writer->arena, debug_info, attrib->form.reader.sdata); + } break; + case DW_Form_Strp: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.sec_offset); + } break; + case DW_Form_UData: { + dw_serial_push_uleb128(writer->arena, debug_info, attrib->form.reader.udata); + } break; + case DW_Form_RefAddr: { + if (writer->version < DW_Version_3) { + Assert(writer->address_size <= sizeof(attrib->form.reader.ref)); + str8_serial_push_string(writer->arena, debug_info, str8((U8 *)&attrib->form.reader.ref, writer->address_size)); + } else { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.ref); + } + } break; + case DW_Form_Ref1: { + str8_serial_push_u8(writer->arena, debug_info, (U8)attrib->form.reader.ref); + } break; + case DW_Form_Ref2: { + str8_serial_push_u16(writer->arena, debug_info, (U16)attrib->form.reader.ref); + } break; + case DW_Form_Ref4: { + str8_serial_push_u32(writer->arena, debug_info, (U32)attrib->form.reader.ref); + } break; + case DW_Form_Ref8: { + if (attrib->form.writer.ref->info_off == 0) { + // reserve 8 bytes + void *value = str8_serial_push_u64(writer->arena, debug_info, 0); + + // push fixup + dw_writer_fixup_list_push(writer->arena, &writer->fixups, (DW_WriterFixup){ .tag = attrib->form.writer.ref, .ptr = value }); + } + } break; + case DW_Form_RefUData: { + dw_serial_push_uleb128(writer->arena, debug_info, attrib->form.reader.ref); + } break; + case DW_Form_Indirect: { + NotImplemented; + } break; + case DW_Form_SecOffset: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.sec_offset); + } break; + case DW_Form_ExprLoc: { + dw_serial_push_uleb128(writer->arena, debug_info, attrib->form.reader.exprloc.size); + str8_serial_push_string(writer->arena, debug_info, attrib->form.reader.exprloc); + } break; + case DW_Form_FlagPresent: { + } break; + case DW_Form_RefSig8: { + NotImplemented; + } break; + case DW_Form_Strx: + case DW_Form_Addrx: + case DW_Form_RngListx: + case DW_Form_LocListx: { + dw_serial_push_uleb128(writer->arena, debug_info, attrib->form.reader.xval); + } break; + case DW_Form_RefSup4: { + NotImplemented; + } break; + case DW_Form_StrpSup: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.strp_sup); + } break; + case DW_Form_Data16: { + str8_serial_push_string(writer->arena, debug_info, attrib->form.reader.data); + } break; + case DW_Form_LineStrp: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.sec_offset); + } break; + case DW_Form_ImplicitConst: { + // value is stored in the abbrev entry + } break; + case DW_Form_RefSup8: { + NotImplemented; + } break; + case DW_Form_Strx1: + case DW_Form_Addrx1: { + str8_serial_push_u8(writer->arena, debug_info, (U8)attrib->form.reader.xval); + } break; + case DW_Form_Strx2: + case DW_Form_Addrx2: { + str8_serial_push_u16(writer->arena, debug_info, (U16)attrib->form.reader.xval); + } break; + case DW_Form_Strx3: + case DW_Form_Addrx3: { + str8_serial_push_string(writer->arena, debug_info, str8((U8 *)&attrib->form.reader.xval, 3)); + } break; + case DW_Form_Strx4: + case DW_Form_Addrx4: { + str8_serial_push_u32(writer->arena, debug_info, (U32)attrib->form.reader.xval); + } break; + + case DW_Form_GNU_StrpAlt: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.sec_offset); + } break; + case DW_Form_GNU_RefAlt: { + dw_serial_push_uint(writer->arena, debug_info, writer->format, attrib->form.reader.ref); + } break; + + default: InvalidPath; break; + } + } + } + + // write children + for EachNode(child, DW_WriterTag, tag->first_child) { + dw_writer_emit_tag(writer, child); + } + + // close tag + if (tag->first_child) { + dw_serial_push_uleb128(writer->arena, &writer->sections[DW_Section_Info].srl, 0); + } +} + +internal void +dw_writer_emit(DW_Writer *writer) +{ + // line + { + // push line table terminator + dw_writer_line_end_sequence(writer); + + // find comp dir in the compile unit tag + String8 comp_dir = {0}; + String8 comp_name = {0}; + Assert(writer->root->kind == DW_TagKind_CompileUnit); + for EachNode(attrib, DW_WriterAttrib, writer->root->first_attrib) { + if (attrib->kind == DW_AttribKind_CompDir) { + AssertAlways(attrib->form.writer.kind == DW_WriterFormKind_String); + comp_dir = str8_chop_last_slash(attrib->form.writer.string); + } else if (attrib->kind == DW_AttribKind_Name) { + AssertAlways(attrib->form.writer.kind == DW_WriterFormKind_String); + comp_name = attrib->form.writer.string; + } + } + + String8List dir_table_srl = {0}; + str8_serial_begin(writer->arena, &dir_table_srl); + { + Temp scratch = scratch_begin(0, 0); + String8List *srl = &dir_table_srl; + + // (13) directory_entry_format_count + str8_serial_push_u8(writer->arena, srl, 1); + // (14) directory_entry_format + dw_serial_push_uleb128(writer->arena, srl, DW_LNCT_Path); + dw_serial_push_uleb128(writer->arena, srl, DW_Form_String); + + // dedup directories + String8List dirs = {0}; + HashTable *dir_ht = hash_table_init(scratch.arena, writer->line.file_count + 1); + // first entry must be compile unit directory + hash_table_push_string_u64(scratch.arena, dir_ht, comp_dir, dir_ht->count); + if (comp_dir.size == 2 && char_is_alpha(comp_dir.str[0]) && comp_dir.str[1] == ':') { + str8_list_pushf(scratch.arena, &dirs, "%S/", comp_dir); + } else { + str8_list_push(scratch.arena, &dirs, comp_dir); + } + for EachNode(file, DW_WriterFile, writer->line.first_file) { + String8 path = str8_chop_last_slash(file->path); + if (path.size == 0) { + continue; + } + if ( ! hash_table_search_string_u64(dir_ht, path, &file->dir_idx)) { + // @dir_idx + file->dir_idx = hash_table_push_string_u64(scratch.arena, dir_ht, path, dir_ht->count)->v.value_u64; + if (path.size == 2 && char_is_alpha(path.str[0]) && path.str[1] == ':') { + str8_list_pushf(scratch.arena, &dirs, "%S/", path); + } else { + str8_list_push(scratch.arena, &dirs, path); + } + } + } + + // (15) directories_count + dw_serial_push_uleb128(writer->arena, srl, dirs.node_count); + + // (16) directories + for EachNode(dir_n, String8Node, dirs.first) { + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, (DW_WriterXForm) { .reader = { .kind = DW_Form_String, .string = dir_n->string } }); + } + + scratch_end(scratch); + } + + String8List file_table_srl = {0}; + str8_serial_begin(writer->arena, &file_table_srl); + { + Temp scratch = scratch_begin(0, 0); + String8List *srl = &file_table_srl; + + struct { DW_LNCT lnct; DW_FormKind form_kind; } encs[] = { + { DW_LNCT_Path, DW_Form_String }, + { DW_LNCT_DirectoryIndex, DW_Form_UData }, + { DW_LNCT_TimeStamp, DW_Form_Null }, // DW_Form_UData + { DW_LNCT_Size, DW_Form_Null }, // DW_Form_UData + { DW_LNCT_MD5, DW_Form_Null }, // DW_Form_Block + { DW_LNCT_LLVM_Source, DW_Form_Null } // DW_Form_String + }; + + HashTable *encs_ht = hash_table_init(scratch.arena, ArrayCount(encs) * 2); + for EachElement(i, encs) { hash_table_push_u64_raw(scratch.arena, encs_ht, encs[i].lnct, &encs[i].form_kind); } + + // enable encodings in use + for EachNode(file, DW_WriterFile, writer->line.first_file) { + if (file->time_stamp != 0) { *(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_TimeStamp ) = DW_Form_UData; } + if (file->size != 0) { *(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_Size ) = DW_Form_UData; } + if ( ! u128_match(file->md5, u128_zero())) { *(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_MD5 ) = DW_Form_Block; } + if (file->source.size != 0) { *(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_LLVM_Source) = DW_Form_String; } + } + + // count needed encodings + U8 enc_count = 0; + for EachElement(i, encs) { if (encs[i].form_kind != DW_Form_Null) { enc_count += 1; } } + + // (17) file_name_entry_format_count + str8_serial_push_u8(writer->arena, srl, enc_count); + + // (18) file_name_entry_format + for EachElement(i, encs) { + if (encs[i].form_kind == DW_Form_Null) { continue; } + dw_serial_push_uleb128(writer->arena, srl, encs[i].lnct ); + dw_serial_push_uleb128(writer->arena, srl, encs[i].form_kind); + } + + // (19) file_names_count + dw_serial_push_uleb128(writer->arena, srl, writer->line.file_count); + + // (20) file_names + if (comp_name.size) { + for (DW_WriterFile *n = writer->line.first_file, *p = 0; n != 0; p = n, n = n->next) { + String8 file_name = str8_skip_last_slash(n->path); + if (str8_match(file_name, comp_name, 0)) { + if (p == 0) { + // file is already first + } else { + // move compile unit file to be first entry in the table + p->next = n->next; + n->next = writer->line.first_file; + writer->line.first_file = n; + if (writer->line.last_file == n) { + writer->line.last_file = p; + } + } + break; + } + } + } + U64 file_idx = 0; + for EachNode(file, DW_WriterFile, writer->line.first_file) { + static DW_WriterXForm null_form_udata = { .reader = { .kind = DW_Form_UData } }; + static DW_WriterXForm null_form_string = { .reader = { .kind = DW_Form_String } }; + static DW_WriterXForm null_form_block = { .reader = { .kind = DW_Form_Block } }; + + // @file_idx + file->file_idx = file_idx++; + + // path + Assert(*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_Path) == DW_Form_String); + String8 file_name = str8_skip_last_slash(file->path); + DW_WriterXForm path_form = { .reader = { .kind = DW_Form_String, .string = file_name } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, path_form); + + // directory index + Assert(*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_DirectoryIndex) == DW_Form_UData); + DW_WriterXForm dir_idx_form = { .reader = { .kind = DW_Form_UData, .udata = file->dir_idx } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, dir_idx_form); + + // time stamp + if (*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_TimeStamp) == DW_Form_UData) { + if (file->time_stamp) { + DW_WriterXForm time_stamp_form = { .reader = { .kind = DW_Form_UData, .udata = file->time_stamp } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, time_stamp_form); + } else { + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, null_form_udata); + } + } + + // size + if (*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_Size) == DW_Form_UData) { + if (file->size) { + DW_WriterXForm size_form = { .reader = { .kind = DW_Form_UData, .udata = file->size } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, size_form); + } else { + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, null_form_udata); + } + } + + // MD5 + if (*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_MD5) == DW_Form_Block) { + if ( ! u128_match(file->md5, u128_zero())) { + DW_WriterXForm md5_form = { .reader = { .kind = DW_Form_Block, .block = str8_struct(&file->md5) } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, md5_form); + } else { + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, null_form_block); + } + } + + // LLVM Source + if (*(DW_FormKind *)hash_table_search_u64_raw(encs_ht, DW_LNCT_LLVM_Source) == DW_Form_String) { + if (file->source.size) { + DW_WriterXForm source_form = { .reader = { .kind = DW_Form_String, .string = file->source } }; + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, source_form); + } else { + dw_serial_push_form(writer->arena, srl, writer->version, writer->format, writer->address_size, 0, null_form_string); + } + } + } + + scratch_end(scratch); + } + + { + String8List *srl = &writer->sections[DW_Section_Line].srl; + // (1) unit_length + writer->sections[DW_Section_Line].length = dw_serial_push_length(writer->arena, srl, writer->format, 0); + // (2) version + str8_serial_push_struct(writer->arena, srl, &writer->version); + // (3) address_size + str8_serial_push_struct(writer->arena, srl, &writer->address_size); + // (4) segment_selector_size + str8_serial_push_struct(writer->arena, srl, &writer->segsel_size); + // (5) header_length + void *header_length_ptr = dw_serial_push_uint(writer->arena, srl, writer->format, 0); + U64 header_length_offset = srl->total_size; + // (6) minimum_instruction_length + str8_serial_push_struct(writer->arena, srl, &writer->line.min_inst_len); + // (7) maximum_operations_per_instruction + str8_serial_push_struct(writer->arena, srl, &writer->line.max_ops_per_inst); + // (8) default_is_stmt + str8_serial_push_struct(writer->arena, srl, &writer->line.default_is_stmt); + // (9) line_base + str8_serial_push_struct(writer->arena, srl, &writer->line.line_base); + // (10) line_range + str8_serial_push_struct(writer->arena, srl, &writer->line.line_range); + // (11) opcode_base + str8_serial_push_struct(writer->arena, srl, &writer->line.opcode_base); + // (12) standard_opcode_lengths + U8 *std_op_lens = push_array(writer->arena, U8, writer->line.opcode_base - 1); + for (U64 i = 1; i < writer->line.opcode_base; i += 1) + { + U64 len = 0; + switch(i) + { + default:{}break; +#define X(name, code, len_) case DW_StdOpcode_##name:{len = (len_);}break; + DW_StdOpcode_XList +#undef X + } + std_op_lens[i-1] = len; + } + str8_serial_push_string(writer->arena, srl, str8(std_op_lens, writer->line.opcode_base - 1)); + // directory table + str8_list_concat_in_place(srl, &dir_table_srl); + // file table + str8_list_concat_in_place(srl, &file_table_srl); + + // fixup header length + U64 bytes_to_line_program = srl->total_size - header_length_offset; + if (writer->format == DW_Format_32Bit) { *(U32 *)header_length_ptr = bytes_to_line_program; } + else { *(U64 *)header_length_ptr = bytes_to_line_program; } + + // line program + String8 line_program_data = dw_data_from_line_insts(writer->arena, writer->address_size, writer->line.line_insts); + str8_serial_push_string(writer->arena, srl, line_program_data); + } + } + + // info + { + dw_writer_emit_tag(writer, writer->root); + + // null terminate .debug_abbrev + dw_serial_push_uleb128(writer->arena, &writer->sections[DW_Section_Abbrev].srl, 0); + + // fixup units lengths + for EachElement(i, writer->sections) { + if (writer->sections[i].length) { + if (writer->format == DW_Format_64Bit) { + U64 *length = (U64 *)((U8 *)writer->sections[i].length + sizeof(U32)); + U64 length_size = sizeof(U64) + sizeof(U32); + Assert(writer->sections[i].srl.total_size >= length_size); + memory_write64(length, writer->sections[i].srl.total_size - length_size); + } else { + U32 *length = writer->sections[i].length; + U32 length_size = sizeof(U32); + Assert(writer->sections[i].srl.total_size >= length_size); + memory_write32(length, safe_cast_u32(writer->sections[i].srl.total_size - length_size)); + } + } + } + + // fixup forward references in .debug_info + for EachNode(fixup_n, DW_WriterFixupNode, writer->fixups.first) { + DW_WriterFixup *fixup = &fixup_n->v; + Assert(fixup->tag->info_off != 0); + MemoryCopy(fixup->ptr, &fixup->tag->info_off, sizeof(U64)); + } + } +} + +#ifdef OBJ_H +internal void +dw_writer_emit_to_obj(DW_Writer *writer, OBJ *obj) +{ + dw_writer_emit(writer); + + // push obj sections + OBJ_Section *sections[DW_Section_COUNT] = {0}; + for EachElement(i, writer->sections) { + if (writer->sections[i].srl.total_size) { + sections[i] = obj_push_section(obj, dw_name_string_from_section_kind(i), OBJ_SectionFlag_Read|OBJ_SectionFlag_Write); + } + } + + // push OBJ relocation for 'abbrev base' + OBJ_Section *debug_info = sections[DW_Section_Info]; + obj_push_reloc(obj, debug_info, OBJ_RelocKind_SecRel, writer->abbrev_base_info_off, sections[DW_Section_Abbrev]->symbol); + + // copy section data from writer to obj + for EachElement(i, writer->sections) { + if (writer->sections[i].srl.total_size > 0) { + String8 data = str8_serial_end(obj->arena, &writer->sections[i].srl); + str8_list_push(obj->arena, §ions[i]->data, data); + } + } + + // zero out writer sections + MemoryZeroArray(writer->sections); +} +#endif + +internal String8 +dw_encode_expr(Arena *arena, Arch arch, DW_Format format, DW_ExprEnc *encs, U64 encs_count) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List *srl = push_array(scratch.arena, String8List, 1); + str8_serial_begin(scratch.arena, srl); + + HashTable *label_map = hash_table_init(scratch.arena, 128); + + struct Fixup { U64 offset; String8 label; struct Fixup *next; }; + struct Fixup *first_fixup = 0, *last_fixup = 0; + + for EachIndex(i, encs_count) { + DW_ExprEnc *e = &encs[i]; + + switch (e->type) { + case DW_ExprEncType_Null: {} break; + case DW_ExprEncType_Op: { + str8_serial_push_struct(scratch.arena, srl, &e->op); + } break; + case DW_ExprEncType_U8: { + str8_serial_push_struct(scratch.arena, srl, &e->u8); + } break; + case DW_ExprEncType_U16: { + str8_serial_push_struct(scratch.arena, srl, &e->u16); + } break; + case DW_ExprEncType_U32: { + str8_serial_push_struct(scratch.arena, srl, &e->u32); + } break; + case DW_ExprEncType_U64: { + str8_serial_push_struct(scratch.arena, srl, &e->u64); + } break; + case DW_ExprEncType_S8: { + str8_serial_push_struct(scratch.arena, srl, &e->s8); + } break; + case DW_ExprEncType_S16: { + str8_serial_push_struct(scratch.arena, srl, &e->s16); + } break; + case DW_ExprEncType_S32: { + str8_serial_push_struct(scratch.arena, srl, &e->s32); + } break; + case DW_ExprEncType_S64: { + str8_serial_push_struct(scratch.arena, srl, &e->s64); + } break; + case DW_ExprEncType_ULEB128: { + str8_serial_push_string(scratch.arena, srl, dw_write_uleb128(scratch.arena, e->u64)); + } break; + case DW_ExprEncType_SLEB128: { + str8_serial_push_string(scratch.arena, srl, dw_write_sleb128(scratch.arena, e->s64)); + } break; + case DW_ExprEncType_Addr: { + U64 addr_size = byte_size_from_arch(arch); + Assert(addr_size <= sizeof(e->addr)); + str8_serial_push_string(scratch.arena, srl, str8((U8 *)&e->addr, addr_size)); + } break; + case DW_ExprEncType_Block: { + Assert(e->block.size <= max_U8); + str8_serial_push_u8(scratch.arena, srl, (U8)e->block.size); + str8_serial_push_string(scratch.arena, srl, e->block); + } break; + case DW_ExprEncType_DwarfUInt: { + switch (format) { + case DW_Format_Null: {} break; + case DW_Format_32Bit: { str8_serial_push_u32(scratch.arena, srl, e->u32); } break; + case DW_Format_64Bit: { str8_serial_push_u64(scratch.arena, srl, e->u64); } break; + default: { InvalidPath; } break; + } + } break; + case DW_ExprEncType_Label: { + struct Fixup *fixup = push_array(scratch.arena, struct Fixup, 1); + fixup->offset = srl->total_size; + fixup->label = e->label; + SLLQueuePush(first_fixup, last_fixup, fixup); + + S16 delta_placeholder = 0; + str8_serial_push_struct(scratch.arena, srl, &delta_placeholder); + } break; + case DW_ExprEncType_DeclLabel: { + hash_table_push_string_u64(scratch.arena, label_map, e->label, srl->total_size); + } break; + default: { InvalidPath; } break; + } + } + + // finalize expression + String8 expr = str8_serial_end(arena, srl); + + // apply fixups + for EachNode(fixup, struct Fixup, first_fixup) { + U64 label_offset; + if (!hash_table_search_string_u64(label_map, fixup->label, &label_offset)) { + Assert(0 && "undefined label"); + continue; + } + + S64 delta = (S64)label_offset - (S64)fixup->offset; + AssertAlways(min_S16 <= delta && delta <= max_S16); + + S16 *delta_ptr = (S16 *)(expr.str + fixup->offset); + *delta_ptr = delta; + } + + scratch_end(scratch); + return expr; +} diff --git a/src/dwarf/dwarf_writer.h b/src/dwarf/dwarf_writer.h new file mode 100644 index 00000000..02fde356 --- /dev/null +++ b/src/dwarf/dwarf_writer.h @@ -0,0 +1,360 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_WRITER_H +#define DWARF_WRITER_H + +// TODO(rjf): this uses concepts from the old parser + +//////////////////////////////// + +typedef enum +{ + DW_IntEnc_Null, + DW_IntEnc_1Byte, + DW_IntEnc_2Byte, + DW_IntEnc_4Byte, + DW_IntEnc_LEB128, +} DW_IntEnc; + +//////////////////////////////// + +typedef enum +{ + DW_WriterFormKind_Null, + DW_WriterFormKind_Flag, + DW_WriterFormKind_SInt, + DW_WriterFormKind_UInt, + DW_WriterFormKind_Address, + DW_WriterFormKind_Ref, + DW_WriterFormKind_LinePtr, + DW_WriterFormKind_MacPtr, + DW_WriterFormKind_RngListPtr, + DW_WriterFormKind_Data, + DW_WriterFormKind_Block, + DW_WriterFormKind_String, + DW_WriterFormKind_ExprLoc, + DW_WriterFormKind_Implicit, +} DW_WriterFormKind; + +typedef struct DW_WriterForm +{ + DW_WriterFormKind kind; + union { + B8 flag; + S64 sint; + U64 uint; + U64 address; + S64 implicit; + union { + struct { + struct DW_WriterTag *ref; + U64 line_ptr; + void *mac_ptr; + void *rng_list_ptr; + }; + struct { + U64 ref_offset; + U64 line_offset; + U64 mac_ptr_offset; + U64 rng_list_offset; + }; + }; + String8 data; + String8 block; + String8 string; + String8 exprloc; + }; +} DW_WriterForm; + +typedef struct DW_WriterXForm +{ + DW_WriterForm writer; + DW_Form reader; +} DW_WriterXForm; + +typedef struct DW_WriterAttrib +{ + DW_AttribKindEnum kind; + DW_WriterXForm form; + struct DW_WriterAttrib *next; +} DW_WriterAttrib; + +typedef struct DW_WriterTag +{ + DW_TagKindEnum kind; + struct DW_WriterTag *next; + struct DW_WriterTag *parent; + struct DW_WriterTag *first_child; + struct DW_WriterTag *last_child; + U64 attrib_count; + U64 abbrev_id; + U64 info_off; + DW_WriterAttrib *first_attrib; + DW_WriterAttrib *last_attrib; +} DW_WriterTag; + +typedef struct DW_WriterTagChunk +{ + U64 count; + U64 max; + DW_WriterTag *v; + struct DW_WriterTagChunk *next; +} DW_WriterTagChunk; + +typedef struct DW_WriterTagChunkList +{ + U64 chunk_count; + U64 total_count; + DW_WriterTagChunk *first; + DW_WriterTagChunk *last; +} DW_WriterTagChunkList; + +typedef struct DW_WriterAttribChunk +{ + U64 count; + U64 max; + DW_WriterAttrib *v; + struct DW_WriterAttribChunk *next; +} DW_WriterAttribChunk; + +typedef struct DW_WriterAttribChunkList +{ + U64 chunk_count; + U64 total_count; + DW_WriterAttribChunk *first; + DW_WriterAttribChunk *last; +} DW_WriterAttribChunkList; + +typedef struct DW_WriterLine +{ + struct DW_WriterLine *next; +} DW_WriterLine; + +typedef struct DW_WriterFile +{ + struct DW_WriterFile *next; + String8 path; + U64 time_stamp; + U64 size; + U128 md5; + String8 source; + // computed during line table emit step + U64 file_idx; + U64 dir_idx; +} DW_WriterFile; + +typedef struct DW_LineInst +{ + DW_StdOpcode opcode; + union { + U64 advance_pc; + S64 advance_line; + DW_WriterFile *set_file; + U64 set_column; + U16 fixed_advance_pc; + U64 set_isa; + struct { + DW_ExtOpcode ext; + U64 set_address; + U64 set_discriminator; + }; + }; +} DW_LineInst; + +typedef struct DW_LineInstNode +{ + DW_LineInst v; + struct DW_LineInstNode *next; +} DW_LineInstNode; + +typedef struct DW_LineInstList +{ + U64 count; + DW_LineInstNode *first; + DW_LineInstNode *last; +} DW_LineInstList; + +typedef struct DW_WriterFixup +{ + DW_WriterTag *tag; + U8 *ptr; +} DW_WriterFixup; + +typedef struct DW_WriterFixupNode +{ + DW_WriterFixup v; + struct DW_WriterFixupNode *next; +} DW_WriterFixupNode; + +typedef struct DW_WriterFixupList +{ + U64 count; + DW_WriterFixupNode *first; + DW_WriterFixupNode *last; +} DW_WriterFixupList; + +typedef struct DW_WriterSection +{ + void *length; + String8List srl; +} DW_WriterSection; + +typedef struct DW_Writer +{ + Arena *arena; + + // Compile Unit + Arch arch; + DW_Version version; + DW_Format format; + DW_CompUnitKind cu_kind; + U8 address_size; + U8 segsel_size; + + // Abbrev + U64 abbrev_base_info_off; + HashTable *abbrev_id_map; + + // Info + DW_WriterTag *root; + DW_WriterTag *current; + + // Line + struct { + U8 min_inst_len; + U8 max_ops_per_inst; + U8 default_is_stmt; + S8 line_base; + U8 line_range; + U8 opcode_base; + DW_LineInstList line_insts; + + DW_WriterFile *file; + U64 ln; + U64 col; + U64 addr; + + U64 file_count; + DW_WriterFile *first_file; + DW_WriterFile *last_file; + } line; + + // Emit + DW_WriterFixupList fixups; + DW_WriterSection sections[DW_Section_COUNT]; + DW_WriterAttribChunkList attrib_chunk_list; + DW_WriterTagChunkList tag_chunk_list; +} DW_Writer; + + +//////////////////////////////// +// Serializers + +internal U64 dw_write_to_buffer_uleb128(U8 buffer[10], U64 v); +internal U64 dw_write_to_buffer_sleb128(U8 buffer[10], U64 v); + +internal String8 dw_write_uleb128(Arena *arena, U64 v); +internal String8 dw_write_sleb128(Arena *arena, S64 v); +internal U64 dw_size_from_uleb128(U64 v); +internal U64 dw_size_from_sleb128(S64 v); + +internal void * dw_serial_push_length(Arena *arena, String8List *srl, DW_Format format, U64 length); +internal void * dw_serial_push_uint(Arena *arena, String8List *srl, DW_Format format, U64 v); +internal void * dw_serial_push_uleb128(Arena *arena, String8List *srl, U64 v); +internal void * dw_serial_push_sleb128(Arena *arena, String8List *srl, S64 v); + +//////////////////////////////// +// Writer + +internal DW_Writer * dw_writer_begin(DW_Format format, DW_Version version, DW_CompUnitKind cu_kind, Arch arch); +internal void dw_writer_end (DW_Writer **writer_ptr); + +//////////////////////////////// +// Form + +internal U64 dw_serial_push_form(Arena *arena, String8List *srl, DW_Version version, DW_Format format, U8 address_size, DW_WriterFixupList *fixups, DW_WriterXForm form); + +//////////////////////////////// +// Info + +internal DW_WriterTag * dw_writer_tag_reserve (DW_Writer *writer, DW_TagKind kind); +internal DW_WriterTag * dw_writer_tag_begin (DW_Writer *writer, DW_TagKind kind); +internal void dw_writer_tag_begin_reserved(DW_Writer *writer, DW_WriterTag *tag); +internal void dw_writer_tag_end (DW_Writer *writer); + +internal DW_WriterAttrib * dw_writer_push_attrib (DW_Writer *writer, DW_AttribKind kind, DW_WriterForm form ); +internal DW_WriterAttrib * dw_writer_push_attrib_address (DW_Writer *writer, DW_AttribKind kind, U64 address ); +internal DW_WriterAttrib * dw_writer_push_attrib_block (DW_Writer *writer, DW_AttribKind kind, String8 block ); +internal DW_WriterAttrib * dw_writer_push_attrib_data (DW_Writer *writer, DW_AttribKind kind, String8 data ); +internal DW_WriterAttrib * dw_writer_push_attrib_string (DW_Writer *writer, DW_AttribKind kind, String8 string ); +internal DW_WriterAttrib * dw_writer_push_attrib_stringf (DW_Writer *writer, DW_AttribKind kind, char *fmt, ... ); +internal DW_WriterAttrib * dw_writer_push_attrib_flag (DW_Writer *writer, DW_AttribKind kind, B8 flag ); +internal DW_WriterAttrib * dw_writer_push_attrib_sint (DW_Writer *writer, DW_AttribKind kind, S64 sint ); +internal DW_WriterAttrib * dw_writer_push_attrib_uint (DW_Writer *writer, DW_AttribKind kind, U64 uint ); +internal DW_WriterAttrib * dw_writer_push_attrib_enum (DW_Writer *writer, DW_AttribKind kind, S64 e ); +internal DW_WriterAttrib * dw_writer_push_attrib_ref (DW_Writer *writer, DW_AttribKind kind, DW_WriterTag *ref ); +internal DW_WriterAttrib * dw_writer_push_attrib_exprloc (DW_Writer *writer, DW_AttribKind kind, String8 exprloc ); +internal DW_WriterAttrib * dw_writer_push_attrib_expr (DW_Writer *writer, DW_AttribKind kind, DW_ExprEnc *encs, U64 encs_count); +internal DW_WriterAttrib * dw_writer_push_attrib_line_ptr (DW_Writer *writer, DW_AttribKind kind, U64 line_ptr ); +internal DW_WriterAttrib * dw_writer_push_attrib_mac_ptr (DW_Writer *writer, DW_AttribKind kind, void * mac_ptr ); +internal DW_WriterAttrib * dw_writer_push_attrib_rng_list_ptr(DW_Writer *writer, DW_AttribKind kind, void * rng_list_ptr); +internal DW_WriterAttrib * dw_writer_push_attrib_implicit (DW_Writer *writer, DW_AttribKind kind, S64 implicit ); +#define dw_writer_push_attrib_exprv(w, k, ...) dw_writer_push_attrib_expr(w, k, (DW_ExprEnc[]){ __VA_ARGS__ }, ArrayCount(((DW_ExprEnc[]){ __VA_ARGS__ })) ) + +//////////////////////////////// +// Line + +internal void dw_line_inst_list_push_node(DW_LineInstList *list, DW_LineInstNode *node); +internal DW_LineInstNode * dw_line_inst_list_push (Arena *arena, DW_LineInstList *list, DW_LineInst op); + +// std opcodes +#define DW_LNS_copy() (DW_LineInst){ .opcode = DW_StdOpcode_Copy } +#define DW_LNS_advance_pc(d) (DW_LineInst){ .opcode = DW_StdOpcode_AdvancePc, .advance_pc = d } +#define DW_LNS_advance_line(s) (DW_LineInst){ .opcode = DW_StdOpcode_AdvanceLine, .advance_line = s } +#define DW_LNS_set_file(f) (DW_LineInst){ .opcode = DW_StdOpcode_SetFile, .set_file = f } +#define DW_LNS_set_column(c) (DW_LineInst){ .opcode = DW_StdOpcode_SetColumn, .set_column = c } +#define DW_LNS_negate_stmt() (DW_LineInst){ .opcode = DW_StdOpcode_NegateStmt } +#define DW_LNS_set_basic_block() (DW_LineInst){ .opcode = DW_StdOpcode_SetBasicBlock } +#define DW_LNS_const_add_pc(a) (DW_LineInst){ .opcode = DW_StdOpcode_ConstAddPc } +#define DW_LNS_fixed_advance_pc(a) (DW_LineInst){ .opcode = DW_StdOpcode_FixedAdvancePc, .fixed_advance_pc = a } +#define DW_LNS_set_prologue_end() (DW_LineInst){ .opcode = DW_StdOpcode_SetPrologueEnd } +#define DW_LNS_set_epilogue_begin() (DW_LineInst){ .opcode = DW_StdOpcode_SetEpilogueBegin } +#define DW_LNS_set_isa(i) (DW_LineInst){ .opcode = DW_StdOpcode_SetIsa, .set_isa = i } + +// ext opcodes +#define DW_LNE_end_sequence() (DW_LineInst){ .opcode = DW_StdOpcode_ExtendedOpcode, .ext = DW_ExtOpcode_EndSequence } +#define DW_LNE_set_address(a) (DW_LineInst){ .opcode = DW_StdOpcode_ExtendedOpcode, .ext = DW_ExtOpcode_SetAddress, .set_address = a } +#define DW_LNE_set_discriminator(d) (DW_LineInst){ .opcode = DW_StdOpcode_ExtendedOpcode, .ext = DW_ExtOpcode_SetDiscriminator, .set_discriminator = d } + +internal void dw_writer_line_emit (DW_Writer *writer, DW_WriterFile *file, U64 ln, U64 col, U64 addr); +internal void dw_writer_line_set_address (DW_Writer *writer, U64 address); +internal void dw_writer_line_set_discriminator(DW_Writer *writer, U64 d); +internal void dw_writer_line_end_sequence (DW_Writer *writer); +internal void dw_writer_line_set_prologue_end (DW_Writer *writer); +internal void dw_writer_line_epilogue_begin (DW_Writer *writer); +internal void dw_writer_line_set_isa (DW_Writer *writer, U64 isa); +internal DW_WriterFile * dw_writer_new_file (DW_Writer *writer, String8 path); + +//////////////////////////////// +// Emit + +internal void dw_writer_emit(DW_Writer *writer); +#ifdef OBJ_H +internal void dw_writer_emit_to_obj(DW_Writer *writer, OBJ *obj); +#endif + +//////////////////////////////// +// Format Helpers + +internal DW_IntEnc dw_int_enc_from_sint(S64 v); +internal DW_IntEnc dw_int_enc_from_uint(U64 v); + +internal U64 dw_size_from_sint(S64 v); +internal U64 dw_size_from_uint(U64 v); + +// encoder +internal String8 dw_encode_expr(Arena *arena, Arch arch, DW_Format format, DW_ExprEnc *encs, U64 encs_count); + +#endif // DWARF_WRITER_H + diff --git a/src/dwarf/generated/dwarf.meta.c b/src/dwarf/generated/dwarf.meta.c new file mode 100644 index 00000000..ceb29e6f --- /dev/null +++ b/src/dwarf/generated/dwarf.meta.c @@ -0,0 +1,74 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 dw_regular_name_from_section_kind_table[18] = +{ +str8_lit_comp(""), +str8_lit_comp(".debug_abbrev"), +str8_lit_comp(".debug_aranges"), +str8_lit_comp(".debug_frame"), +str8_lit_comp(".debug_info"), +str8_lit_comp(".debug_line"), +str8_lit_comp(".debug_loc"), +str8_lit_comp(".debug_macinfo"), +str8_lit_comp(".debug_pubnames"), +str8_lit_comp(".debug_pubtypes"), +str8_lit_comp(".debug_ranges"), +str8_lit_comp(".debug_str"), +str8_lit_comp(".debug_addr"), +str8_lit_comp(".debug_loclists"), +str8_lit_comp(".debug_rnglists"), +str8_lit_comp(".debug_str_offsets"), +str8_lit_comp(".debug_line_str"), +str8_lit_comp(".debug_names"), +}; + +String8 dw_macho_name_from_section_kind_table[18] = +{ +str8_lit_comp(""), +str8_lit_comp("__debug_abbrev"), +str8_lit_comp("__debug_aranges"), +str8_lit_comp("__debug_frame"), +str8_lit_comp("__debug_info"), +str8_lit_comp("__debug_line"), +str8_lit_comp("__debug_loc"), +str8_lit_comp("__debug_macinfo"), +str8_lit_comp("__debug_pubnames"), +str8_lit_comp("__debug_pubtypes"), +str8_lit_comp("__debug_ranges"), +str8_lit_comp("__debug_str"), +str8_lit_comp("__debug_addr"), +str8_lit_comp("__debug_loclists"), +str8_lit_comp("__debug_rnglists"), +str8_lit_comp("__debug_str_offsets"), +str8_lit_comp("__debug_line_str"), +str8_lit_comp("__debug_names"), +}; + +String8 dw_dwo_name_from_section_kind_table[18] = +{ +str8_lit_comp(""), +str8_lit_comp(".debug_abbrev.dwo"), +str8_lit_comp(".debug_aranges.dwo"), +str8_lit_comp(".debug_frame.dwo"), +str8_lit_comp(".debug_info.dwo"), +str8_lit_comp(".debug_line.dwo"), +str8_lit_comp(".debug_loc.dwo"), +str8_lit_comp(".debug_macinfo.dwo"), +str8_lit_comp(".debug_pubnames.dwo"), +str8_lit_comp(".debug_pubtypes.dwo"), +str8_lit_comp(".debug_ranges.dwo"), +str8_lit_comp(".debug_str.dwo"), +str8_lit_comp(".debug_addr.dwo"), +str8_lit_comp(".debug_loclists.dwo"), +str8_lit_comp(".debug_rnglists.dwo"), +str8_lit_comp(".debug_str_offsets.dwo"), +str8_lit_comp(".debug_line_str.dwo"), +str8_lit_comp(".debug_names.dwo"), +}; + +C_LINKAGE_END + diff --git a/src/dwarf/generated/dwarf.meta.h b/src/dwarf/generated/dwarf.meta.h new file mode 100644 index 00000000..5255dcca --- /dev/null +++ b/src/dwarf/generated/dwarf.meta.h @@ -0,0 +1,1768 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef DWARF_META_H +#define DWARF_META_H + +typedef U16 DW_Version; +typedef enum DW_VersionEnum +{ +DW_Version_Null, +DW_Version_1, +DW_Version_2, +DW_Version_3, +DW_Version_4, +DW_Version_5, +DW_Version_Last = DW_Version_5, +} DW_VersionEnum; + +typedef enum DW_Ext +{ +DW_Ext_Null, +DW_Ext_GNU, +DW_Ext_LLVM, +DW_Ext_Apple, +DW_Ext_MIPS, +} DW_Ext; + +typedef U32 DW_ExtFlags; +typedef enum DW_ExtFlagsEnum +{ +DW_ExtFlag_GNU = (1<first_child != 0; + if (writer_tag->kind != reader_tag->tag.kind) { goto exit; } + if (writer_tag->abbrev_id != reader_tag->tag.abbrev_id) { goto exit; } + if (writer_tag->attrib_count != reader_tag->tag.attribs.count) { goto exit; } + if (writer_tag->info_off != reader_tag->tag.info_off) { goto exit; } + if (writer_has_children != reader_tag->tag.has_children) { goto exit; } + + // match attribs + DW_WriterAttrib *writer_attrib = writer_tag->first_attrib; + DW_AttribNode *reader_attrib = reader_tag->tag.attribs.first; + while (writer_attrib) { + if (writer_attrib->kind != reader_attrib->v.attrib_kind) { goto exit; } + if (writer_attrib->form.reader.kind != reader_attrib->v.form.kind) { goto exit; } + if ( ! dw_test__form_match(writer_attrib->form.reader, reader_attrib->v.form)) { goto exit; } + writer_attrib = writer_attrib->next; + reader_attrib = reader_attrib->next; + } + + // visit children + DW_WriterTag *writer_child = writer_tag->first_child; + DW_TagNode *reader_child = reader_tag->first_child; + while (writer_child) { + if ( ! dwt_tags_must_match(writer_child, reader_child)) { goto exit; } + writer_child = writer_child->next; + reader_child = reader_child->sibling; + } + + is_match = 1; + exit:; + return is_match; +} + +internal DW_Raw +dw_input_from_writer(Arena *arena, DW_Writer *writer) +{ + Temp scratch = scratch_begin(&arena, 1); + + OBJ *obj = obj_alloc(0, Arch_x64); + OBJ_Section *text_section = obj_push_section(obj, str8_lit(".text"), OBJ_SectionFlag_Read|OBJ_SectionFlag_Exec|OBJ_SectionFlag_Load); + str8_serial_push_u8(obj->arena, &text_section->data, 0x90); + str8_serial_push_u8(obj->arena, &text_section->data, 0x90); + str8_serial_push_u8(obj->arena, &text_section->data, 0x90); + str8_serial_push_u8(obj->arena, &text_section->data, 0xc3); + obj_push_symbol(obj, str8_lit("entry"), OBJ_SymbolScope_Global, OBJ_RefKind_Section, text_section); + + dw_writer_emit_to_obj(writer, obj); + String8 raw_coff = coff_from_obj(scratch.arena, obj); + + t_write_file(str8_lit("dwarf.obj"), raw_coff); + t_invoke(t_radlink_path(), str8_lit("/subsystem:console /entry:entry /out:a.exe /debug:full dwarf.obj"), max_U64); + delete_file_at_path(t_make_file_path(scratch.arena, str8_lit("a.pdb"))); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)(exe.str + pe.section_table_range.min); + String8 string_table = str8_substr(exe, pe.string_table_range); + DW_Raw input = dw_raw_from_coff_section_table(arena, exe, string_table, pe.section_count, section_table); + + obj_release(&obj); + scratch_end(scratch); + return input; +} + +Test(dwarf_32bit) +{ + DW_Writer *writer = dw_writer_begin(DW_Format_32Bit, DW_Version_5, DW_CompUnitKind_Compile, Arch_x64); + dw_writer_tag_begin(writer, DW_TagKind_CompileUnit); + dw_writer_push_attrib_string(writer, DW_AttribKind_Producer, str8_lit("RAD DWARF WRITER")); + dw_writer_tag_end(writer); + + DW_Raw input = dw_input_from_writer(arena, writer); + + for EachElement(sec_idx, input.sec) { + if (sec_idx == DW_Section_Abbrev) continue; + Rng1U64Array unit_ranges = dw_unit_ranges_from_data_arr(arena, input.sec[sec_idx].data); + for EachIndex(range_idx, unit_ranges.count) { + Rng1U64 range = unit_ranges.v[range_idx]; + + U32 first_four_bytes = 0; + TestCheck(str8_deserial_read_struct(input.sec[sec_idx].data, range.min, &first_four_bytes) == sizeof(first_four_bytes)); + TestCheck(first_four_bytes + 4 == dim_1u64(range)); + + U32 unit_length = 0; + TestCheck(str8_deserial_read_struct(input.sec[sec_idx].data, range.min, &unit_length) == sizeof(U32)); + TestCheck(unit_length + 4 == dim_1u64(range)); + } + } + + dw_writer_end(&writer); +} + +Test(dwarf_64bit) +{ + DW_Writer *writer = dw_writer_begin(DW_Format_64Bit, DW_Version_5, DW_CompUnitKind_Compile, Arch_x64); + dw_writer_tag_begin(writer, DW_TagKind_CompileUnit); + dw_writer_push_attrib_string(writer, DW_AttribKind_Producer, str8_lit("RAD DWARF WRITER")); + dw_writer_tag_end(writer); + + DW_Raw input = dw_input_from_writer(arena, writer); + + for EachElement(sec_idx, input.sec) { + if (sec_idx == DW_Section_Abbrev) continue; + Rng1U64Array unit_ranges = dw_unit_ranges_from_data_arr(arena, input.sec[sec_idx].data); + for EachIndex(range_idx, unit_ranges.count) { + Rng1U64 range = unit_ranges.v[range_idx]; + + U32 first_four_bytes = 0; + TestCheck(str8_deserial_read_struct(input.sec[sec_idx].data, range.min, &first_four_bytes) == sizeof(first_four_bytes)); + TestCheck(first_four_bytes == max_U32); + + U64 unit_length = 0; + TestCheck(str8_deserial_read_struct(input.sec[sec_idx].data, range.min + sizeof(U32), &unit_length) == sizeof(U64)); + TestCheck(unit_length + 12 == dim_1u64(range)); + } + } + + dw_writer_end(&writer); +} + +Test(dwarf_line_opcodes) +{ + DW_Writer *writer = dw_writer_begin(DW_Format_32Bit, DW_Version_5, DW_CompUnitKind_Compile, Arch_x64); + String8 comp_dir = str8_lit("c:/devel/"); + String8 comp_name = str8_lit("test.c"); + U64 address = 0xDEADBEEFCAFEBABE; + dw_writer_tag_begin(writer, DW_TagKind_CompileUnit); + dw_writer_push_attrib_string(writer, DW_AttribKind_Producer, str8_lit("RAD DWARF WRITER")); + dw_writer_push_attrib_string(writer, DW_AttribKind_CompDir, comp_dir); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, comp_name); + dw_writer_push_attrib_line_ptr(writer, DW_AttribKind_StmtList, 0); + dw_writer_tag_end(writer); + + // test directory table and file table + DW_WriterFile *file2 = dw_writer_new_file(writer, str8_lit("d:/foobar/qwe.c")); + file2->time_stamp = 123; + file2->size = max_U64; + file2->md5 = *(U128 *)&((U8[sizeof(U128)]) { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, }); + file2->source = str8_lit("a quick brown fox jumps over the lazy dog\n"); + DW_WriterFile *file = dw_writer_new_file(writer, comp_name); + file->time_stamp = max_U64; + file->size = 314; + file->md5 = *(U128 *)&((U8[sizeof(U128)]) { 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, }); + file->source = str8_lit("int main() { return 057; }\n"); + + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_copy()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_pc(7)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_pc(-7)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(4)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(-4)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_file(file)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_column(max_U64)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_column(0)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_negate_stmt()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_negate_stmt()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_basic_block()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_const_add_pc()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_fixed_advance_pc(max_U16)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_prologue_end()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_epilogue_begin()); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_set_isa(max_U64)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_set_address(address)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_set_discriminator(2)); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNE_end_sequence()); + + DW_Raw input = dw_input_from_writer(arena, writer); + Rng1U64Array cu_ranges = dw_unit_ranges_from_data_arr(arena, input.sec[DW_Section_Info].data); + DW_CompUnit cu = dw_cu_from_info_off(arena, &input, (DW_ListUnitInput){0}, cu_ranges.v[0].min, 0); + DW_LineVM *line_vm = dw_line_vm_init(&input, &cu); + + TestCheck(line_vm->header.dir_table.count == 2); + TestCheck(line_vm->header.file_table.count == 2); + + TestCheck(str8_match(line_vm->header.dir_table.v[0], str8_lit("c:/devel"), 0)); + TestCheck(str8_match(line_vm->header.dir_table.v[1], str8_lit("d:/foobar"), 0)); + + DW_LineFile *file_reader = &line_vm->header.file_table.v[0]; + TestCheck(str8_match(file_reader->path, comp_name, 0)); + TestCheck(file_reader->dir_idx == 0); + TestCheck(file_reader->time_stamp == file->time_stamp); + TestCheck(u128_match(file_reader->md5, file->md5)); + TestCheck(str8_match(file_reader->source, file->source, 0)); + + DW_LineFile *file2_reader = &line_vm->header.file_table.v[1]; + TestCheck(str8_match(file2_reader->path, str8_lit("qwe.c"), 0)); + TestCheck(file2_reader->dir_idx == 1); + TestCheck(file2_reader->time_stamp == file2->time_stamp); + TestCheck(u128_match(file2_reader->md5, file2->md5)); + TestCheck(str8_match(file2_reader->source, file2->source, 0)); + + TestCheck(line_vm->new_line == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_Copy); + TestCheck(line_vm->new_line == 1); + TestCheck(line_vm->state.discriminator == 0); + TestCheck(line_vm->state.basic_block == 0); + TestCheck(line_vm->state.prologue_end == 0); + TestCheck(line_vm->state.epilogue_begin == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvancePc); + TestCheck(line_vm->state.address == 7); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvancePc); + TestCheck(line_vm->state.address == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 5); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 1); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetFile); + TestCheck(line_vm->state.file_index == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetColumn); + TestCheck(line_vm->state.column == max_U64); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetColumn); + TestCheck(line_vm->state.column == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_NegateStmt); + TestCheck(line_vm->state.is_stmt == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_NegateStmt); + TestCheck(line_vm->state.is_stmt == 1); + + TestCheck(line_vm->state.basic_block == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetBasicBlock); + TestCheck(line_vm->state.basic_block == 1); + + { + U64 addr_before = line_vm->state.address; + U64 const_advance = (0xffu - line_vm->header.opcode_base) / line_vm->header.line_range; + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(!line_vm->new_line); + TestCheck(line_vm->state.address == addr_before + const_advance); + } + + TestCheck(line_vm->state.address == 0x11); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_FixedAdvancePc); + TestCheck(line_vm->state.address == max_U16 + 0x11); + + TestCheck(line_vm->state.prologue_end == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetPrologueEnd); + TestCheck(line_vm->state.prologue_end == 1); + + TestCheck(line_vm->state.epilogue_begin == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetEpilogueBegin); + TestCheck(line_vm->state.epilogue_begin == 1); + + TestCheck(line_vm->state.isa == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetIsa); + TestCheck(line_vm->state.isa == max_U64); + + TestCheck(line_vm->state.address != address); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_ExtendedOpcode); + TestCheck(line_vm->ext_opcode == DW_ExtOpcode_SetAddress); + TestCheck(line_vm->state.address == address); + + TestCheck(line_vm->state.discriminator == 0); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_ExtendedOpcode); + TestCheck(line_vm->ext_opcode == DW_ExtOpcode_SetDiscriminator); + TestCheck(line_vm->state.discriminator == 2); + + TestCheck(!line_vm->state.end_sequence); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_ExtendedOpcode); + TestCheck(line_vm->ext_opcode == DW_ExtOpcode_EndSequence); + TestCheck(line_vm->state.end_sequence); + + dw_writer_end(&writer); +} + +Test(dwarf_line_emit) +{ + DW_Writer *writer = dw_writer_begin(DW_Format_32Bit, DW_Version_5, DW_CompUnitKind_Compile, Arch_x64); + String8 comp_dir = str8_lit("c:/devel/"); + String8 comp_name = str8_lit("test.c"); + dw_writer_tag_begin(writer, DW_TagKind_CompileUnit); + dw_writer_push_attrib_string(writer, DW_AttribKind_Producer, str8_lit("RAD DWARF WRITER")); + dw_writer_push_attrib_string(writer, DW_AttribKind_CompDir, comp_dir); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, comp_name); + dw_writer_push_attrib_line_ptr(writer, DW_AttribKind_StmtList, 0); + dw_writer_tag_end(writer); + + // test special opcode writer and reader + DW_WriterFile *file = dw_writer_new_file(writer, comp_name); + + // init sequence + dw_writer_line_emit(writer, file, 10000, 0, 1000); + + for EachIndex(i, abs_s64(writer->line.line_base) + 1) { + dw_writer_line_emit(writer, file, writer->line.ln-i, 0, writer->line.addr+1); + + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(i)); + writer->line.ln += i; + } + + // special opcode line window underflow, must emit three instructions to advance + dw_writer_line_emit(writer, file, (writer->line.ln + writer->line.line_base) - 1, 0, writer->line.addr + 1); + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(-(writer->line.line_base - 1))); + + for EachIndex(i, (writer->line.line_range + writer->line.line_base) + 1) { + dw_writer_line_emit(writer, file, writer->line.ln+i, 0, writer->line.addr+1); + + dw_line_inst_list_push(writer->arena, &writer->line.line_insts, DW_LNS_advance_line(-i)); + writer->line.ln -= i; + } + + dw_writer_line_end_sequence(writer); + dw_writer_line_emit(writer, file, 1000, 0, writer->line.addr+1); + + // test address window + S64 c = writer->line.line_range + writer->line.line_base; + U64 line_addr_count = 0; + for (S64 i = 0; i < c; ++i) { + U64 ln_delta = i + writer->line.line_base; + S64 max_ln_delta = writer->line.line_range + writer->line.line_base; + S64 max_addr_delta = (max_U8 - writer->line.opcode_base - (ln_delta - writer->line.line_base)) / writer->line.line_range; + for EachIndex(k, max_addr_delta) { + dw_writer_line_emit(writer, file, writer->line.ln + i, 0, writer->line.addr + k); + line_addr_count += 1; + } + } + + DW_Raw input = dw_input_from_writer(arena, writer); + Rng1U64Array cu_ranges = dw_unit_ranges_from_data_arr(arena, input.sec[DW_Section_Info].data); + DW_CompUnit cu = dw_cu_from_info_off(arena, &input, (DW_ListUnitInput){0}, cu_ranges.v[0].min, 0); + DW_LineVM *line_vm = dw_line_vm_init(&input, &cu); + + // check init sequence + { + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_SetFile); + TestCheck(line_vm->state.file_index == 0); + TestCheck(line_vm->new_line == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvancePc); + TestCheck(line_vm->state.address == 1000); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->new_line == 0); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_Copy); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == 1000); + TestCheck(line_vm->new_line == 1); + } + + { + U64 pc = line_vm->state.address; + for EachIndex(i, abs_s64(writer->line.line_base) + 1) { + pc += 1; + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == 0x20 - i); + TestCheck(line_vm->state.line == 10000 - i); + TestCheck(line_vm->state.address == pc); + TestCheck(line_vm->new_line == 1); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + } + + // line window underflow check + { + pc += 1; + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvancePc); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 9994); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_Copy); + TestCheck(line_vm->state.line == 9994); + TestCheck(line_vm->state.address == pc); + TestCheck(line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + } + + for EachIndex(i, writer->line.line_range + writer->line.line_base) { + pc += 1; + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == 0x20 + i); + TestCheck(line_vm->state.line == 10000 + i); + TestCheck(line_vm->state.address == pc); + TestCheck(line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + } + + // line window overflow check + { + pc += 1; + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvancePc); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10009); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_Copy); + TestCheck(line_vm->state.address == pc); + TestCheck(line_vm->state.line == 10009); + TestCheck(line_vm->new_line); + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_AdvanceLine); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(!line_vm->new_line); + } + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_ExtendedOpcode); + TestCheck(line_vm->ext_opcode == DW_ExtOpcode_EndSequence); + TestCheck(line_vm->state.line == 10000); + TestCheck(line_vm->state.address == pc); + TestCheck(line_vm->new_line); + } + + { + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(dw_line_vm_step(line_vm)); + + for EachIndex(i, line_addr_count/*first line is a noop*/-1) { + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->header.opcode_base < line_vm->opcode); + TestCheck(line_vm->new_line); + } + + TestCheck(dw_line_vm_step(line_vm)); + TestCheck(line_vm->opcode == DW_StdOpcode_ExtendedOpcode); + TestCheck(line_vm->ext_opcode == DW_ExtOpcode_EndSequence); + TestCheck(line_vm->state.line == 1586); + TestCheck(line_vm->state.address == 1161); + TestCheck(line_vm->new_line); + } +} + +Test(dwarf_writer) +{ + DW_Writer *writer = dw_writer_begin(DW_Format_32Bit, DW_Version_5, DW_CompUnitKind_Compile, Arch_x64); + // info + { + dw_writer_tag_begin(writer, DW_TagKind_CompileUnit); + dw_writer_push_attrib_string(writer, DW_AttribKind_Producer, str8_lit("RAD DWARF WRITER")); + dw_writer_push_attrib_enum(writer, DW_AttribKind_Language, DW_Language_C99); + dw_writer_push_attrib_flag(writer, DW_AttribKind_UseUtf8, 1); + dw_writer_push_attrib_address(writer, DW_AttribKind_LowPc, 0x140001000); + dw_writer_push_attrib_address(writer, DW_AttribKind_HighPc, 0x140001004); + { + DW_WriterTag *char_type = dw_writer_tag_begin(writer, DW_TagKind_BaseType); + dw_writer_push_attrib_sint(writer, DW_AttribKind_ByteSize, 1); + dw_writer_push_attrib_enum(writer, DW_AttribKind_Encoding, DW_ATE_SignedChar); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("char")); + dw_writer_tag_end(writer); + + dw_writer_tag_begin(writer, DW_TagKind_ConstType); + dw_writer_push_attrib_ref(writer, DW_AttribKind_Type, char_type); + dw_writer_tag_end(writer); + + // test abbrev dedup + DW_WriterTag *dup_char_type = dw_writer_tag_begin(writer, DW_TagKind_BaseType); + dw_writer_push_attrib_sint(writer, DW_AttribKind_ByteSize, 1); + dw_writer_push_attrib_enum(writer, DW_AttribKind_Encoding, DW_ATE_SignedChar); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("char")); + dw_writer_tag_end(writer); + + // simple struct test + DW_WriterTag *simple_struct_tag = dw_writer_tag_begin(writer, DW_TagKind_StructureType); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("FooBar")); + dw_writer_push_attrib_uint(writer, DW_AttribKind_ByteSize, 90); + { + dw_writer_tag_begin(writer, DW_TagKind_Member); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("m0")); + dw_writer_push_attrib_ref(writer, DW_AttribKind_Type, char_type); + dw_writer_push_attrib_sint(writer, DW_AttribKind_DataMemberLocation, 0); + dw_writer_tag_end(writer); + + dw_writer_tag_begin(writer, DW_TagKind_Member); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("m1")); + dw_writer_push_attrib_ref(writer, DW_AttribKind_Type, char_type); + dw_writer_push_attrib_sint(writer, DW_AttribKind_DataMemberLocation, 10); + dw_writer_push_attrib_implicit(writer, DW_AttribKind_ByteSize, 123); + dw_writer_tag_end(writer); + } + dw_writer_tag_end(writer); + + dw_writer_tag_begin(writer, DW_TagKind_SubProgram); + dw_writer_push_attrib_flag(writer, DW_AttribKind_External, 1); + dw_writer_push_attrib_flag(writer, DW_AttribKind_Prototyped, 1); + dw_writer_push_attrib_address(writer, DW_AttribKind_LowPc, 0x140001000); + dw_writer_push_attrib_address(writer, DW_AttribKind_HighPc, 0x140001004); + dw_writer_push_attrib_string(writer, DW_AttribKind_Name, str8_lit("main")); + dw_writer_push_attrib_ref(writer, DW_AttribKind_Type, simple_struct_tag); + dw_writer_push_attrib_expr(writer, DW_AttribKind_FrameBase, &(DW_ExprEnc)DW_ExprEnc_Op(Reg7), 1); + dw_writer_tag_end(writer); + } + dw_writer_tag_end(writer); + } + + DW_Raw input = dw_input_from_writer(arena, writer); + DW_ListUnitInput lu_input = dw_list_unit_input_from_input(arena, &input); + DW_CompUnit cu = dw_cu_from_info_off(arena, &input, lu_input, 0, 1); + DW_TagTree tag_tree = dw_tag_tree_from_cu(arena, &input, &cu); + AssertAlways(dwt_tags_must_match(writer->root, tag_tree.root)); + + // validate the writer + + TestCheck(writer->current == 0); + TestCheck(writer->format == DW_Format_32Bit); + TestCheck(writer->cu_kind == DW_CompUnitKind_Compile); + TestCheck(writer->version == DW_Version_5); + TestCheck(writer->address_size == 8); + TestCheck(writer->abbrev_base_info_off == 8); + TestCheck(writer->fixups.count == 0); + TestCheck(writer->abbrev_id_map->count == 7); + + DW_WriterTag *comp_unit_tag = writer->root; + { + TestCheck(comp_unit_tag->kind == DW_TagKind_CompileUnit); + TestCheck(comp_unit_tag->next == 0); + TestCheck(comp_unit_tag->parent == 0); + TestCheck(comp_unit_tag->attrib_count == 5); + TestCheck(comp_unit_tag->abbrev_id == 1); + TestCheck(comp_unit_tag->info_off == 0xc); + + DW_WriterAttrib *producer_attrib = comp_unit_tag->first_attrib; + TestCheck(producer_attrib->kind == DW_AttribKind_Producer); + TestCheck(producer_attrib->form.reader.kind == DW_Form_String); + TestCheck(str8_match(producer_attrib->form.writer.string, str8_lit("RAD DWARF WRITER"), 0)); + + DW_WriterAttrib *language_attrib = producer_attrib->next; + TestCheck(language_attrib->kind == DW_AttribKind_Language); + TestCheck(language_attrib->form.reader.kind == DW_Form_Data1); + TestCheck(language_attrib->form.reader.data.size == 1); + TestCheck(*(U8 *)language_attrib->form.reader.data.str == DW_Language_C99); + + DW_WriterAttrib *use_utf8_attrib = language_attrib->next; + TestCheck(use_utf8_attrib->kind == DW_AttribKind_UseUtf8); + TestCheck(use_utf8_attrib->form.reader.kind == DW_Form_Flag); + TestCheck(use_utf8_attrib->form.reader.flag == 1); + } + + DW_WriterTag *char_type_tag = comp_unit_tag->first_child; + { + TestCheck(char_type_tag->kind == DW_TagKind_BaseType); + TestCheck(char_type_tag->next != 0); + TestCheck(char_type_tag->parent == comp_unit_tag); + TestCheck(char_type_tag->attrib_count == 3); + TestCheck(char_type_tag->abbrev_id == 2); + TestCheck(char_type_tag->info_off == 0x30); + TestCheck(char_type_tag->first_attrib != char_type_tag->last_attrib); + + DW_WriterAttrib *byte_size_attrib = char_type_tag->first_attrib; + TestCheck(byte_size_attrib->kind == DW_AttribKind_ByteSize); + TestCheck(byte_size_attrib->form.reader.kind == DW_Form_Data1); + TestCheck(byte_size_attrib->form.reader.data.size == 1); + TestCheck(*(U8 *)byte_size_attrib->form.reader.data.str == 1); + + DW_WriterAttrib *encoding_attrib = byte_size_attrib->next; + TestCheck(encoding_attrib->kind == DW_AttribKind_Encoding); + TestCheck(encoding_attrib->form.reader.kind == DW_Form_Data1); + TestCheck(encoding_attrib->form.reader.data.size == 1); + TestCheck(*(U8 *)encoding_attrib->form.reader.data.str == DW_ATE_SignedChar); + + DW_WriterAttrib *name_attrib = encoding_attrib->next; + TestCheck(name_attrib->kind == DW_AttribKind_Name); + TestCheck(name_attrib->form.reader.kind == DW_Form_String); + TestCheck(str8_match(name_attrib->form.reader.string, str8_lit("char"), 0)); + } + + DW_WriterTag *const_type_tag = char_type_tag->next; + { + TestCheck(const_type_tag->kind == DW_TagKind_ConstType); + TestCheck(const_type_tag->next != 0); + TestCheck(const_type_tag->parent == comp_unit_tag); + TestCheck(const_type_tag->attrib_count == 1); + TestCheck(const_type_tag->abbrev_id == 3); + TestCheck(const_type_tag->info_off == 0x38); + TestCheck(const_type_tag->first_attrib && const_type_tag->first_attrib == const_type_tag->last_attrib); + + DW_WriterAttrib *type_attrib = const_type_tag->first_attrib; + TestCheck(type_attrib->kind == DW_AttribKind_Type); + TestCheck(type_attrib->form.writer.kind == DW_WriterFormKind_Ref); + TestCheck(type_attrib->form.writer.ref == char_type_tag); + } + + DW_WriterTag *dup_char_type_tag = const_type_tag->next; + { + TestCheck(dup_char_type_tag->kind == DW_TagKind_BaseType); + TestCheck(dup_char_type_tag->next != 0); + TestCheck(dup_char_type_tag->parent == comp_unit_tag); + TestCheck(dup_char_type_tag->attrib_count == 3); + TestCheck(dup_char_type_tag->abbrev_id == 2); + TestCheck(dup_char_type_tag->info_off == 0x3a); + TestCheck(dup_char_type_tag->first_attrib != dup_char_type_tag->last_attrib); + + DW_WriterAttrib *byte_size_attrib = dup_char_type_tag->first_attrib; + TestCheck(byte_size_attrib->kind == DW_AttribKind_ByteSize); + TestCheck(byte_size_attrib->form.reader.kind == DW_Form_Data1); + TestCheck(byte_size_attrib->form.reader.data.size == 1); + TestCheck(*(U8 *)byte_size_attrib->form.reader.data.str == 1); + + DW_WriterAttrib *encoding_attrib = byte_size_attrib->next; + TestCheck(encoding_attrib->kind == DW_AttribKind_Encoding); + TestCheck(encoding_attrib->form.reader.kind == DW_Form_Data1); + TestCheck(encoding_attrib->form.reader.data.size == 1); + TestCheck(*(U8 *)encoding_attrib->form.reader.data.str == DW_ATE_SignedChar); + + DW_WriterAttrib *name_attrib = encoding_attrib->next; + TestCheck(name_attrib->kind == DW_AttribKind_Name); + TestCheck(name_attrib->form.reader.kind == DW_Form_String); + TestCheck(str8_match(name_attrib->form.reader.string, str8_lit("char"), 0)); + } + + DW_WriterTag *simple_struct_tag = dup_char_type_tag->next; + { + TestCheck(simple_struct_tag->kind == DW_TagKind_StructureType); + TestCheck(simple_struct_tag->next != 0); + TestCheck(simple_struct_tag->parent == comp_unit_tag); + TestCheck(simple_struct_tag->attrib_count == 2); + TestCheck(simple_struct_tag->abbrev_id == 4); + TestCheck(simple_struct_tag->info_off == 0x42); + + DW_WriterAttrib *simple_struct_name = simple_struct_tag->first_attrib; + TestCheck(simple_struct_name->kind == DW_AttribKind_Name); + TestCheck(simple_struct_name->form.reader.kind == DW_Form_String); + TestCheck(str8_match(simple_struct_name->form.reader.string, str8_lit("FooBar"), 0)); + + DW_WriterTag *m0_tag = simple_struct_tag->first_child; + { + TestCheck(m0_tag->kind == DW_TagKind_Member); + TestCheck(m0_tag->parent == simple_struct_tag); + TestCheck(m0_tag->attrib_count == 3); + TestCheck(m0_tag->info_off == 0x4b); + TestCheck(m0_tag->abbrev_id == 5); + + DW_WriterAttrib *name = m0_tag->first_attrib; + TestCheck(name->kind == DW_AttribKind_Name); + TestCheck(name->form.reader.kind == DW_Form_String); + TestCheck(str8_match(name->form.reader.string, str8_lit("m0"), 0)); + + DW_WriterAttrib *type = name->next; + TestCheck(type->kind == DW_AttribKind_Type); + TestCheck(type->form.reader.kind == DW_Form_Ref1); + TestCheck(type->form.reader.ref == 0x30); + + DW_WriterAttrib *data_loc = type->next; + TestCheck(data_loc->kind == DW_AttribKind_DataMemberLocation); + TestCheck(data_loc->form.reader.kind == DW_Form_Data1); + TestCheck(data_loc->form.reader.data.size == 1); + TestCheck(*(U8 *)data_loc->form.reader.data.str == 0); + } + + DW_WriterTag *m1_tag = m0_tag->next; + { + TestCheck(m1_tag->kind == DW_TagKind_Member); + TestCheck(m1_tag->parent == simple_struct_tag); + TestCheck(m1_tag->attrib_count == 4); + TestCheck(m1_tag->info_off == 0x51); + TestCheck(m1_tag->abbrev_id == 6); + + DW_WriterAttrib *name = m1_tag->first_attrib; + TestCheck(name->kind == DW_AttribKind_Name); + TestCheck(name->form.reader.kind == DW_Form_String); + TestCheck(str8_match(name->form.reader.string, str8_lit("m1"), 0)); + + DW_WriterAttrib *type = name->next; + TestCheck(type->kind == DW_AttribKind_Type); + TestCheck(type->form.reader.kind == DW_Form_Ref1); + TestCheck(type->form.reader.ref == 0x30); + + DW_WriterAttrib *data_loc = type->next; + TestCheck(data_loc->kind == DW_AttribKind_DataMemberLocation); + TestCheck(data_loc->form.reader.kind == DW_Form_Data1); + TestCheck(data_loc->form.reader.data.size == 1); + TestCheck(*(U8 *)data_loc->form.reader.data.str == 10); + + DW_WriterAttrib *byte_size = data_loc->next; + TestCheck(byte_size->kind == DW_AttribKind_ByteSize); + TestCheck(byte_size->form.reader.kind == DW_Form_ImplicitConst); + TestCheck(byte_size->form.reader.implicit_const == 123); + } + } + + DW_WriterTag *main_tag = simple_struct_tag->next; + TestCheck(main_tag->next == 0); + TestCheck(main_tag->kind == DW_TagKind_SubProgram); + TestCheck(main_tag->parent == main_tag->parent); + TestCheck(main_tag->abbrev_id == 7); + { + DW_WriterAttrib *external = main_tag->first_attrib; + TestCheck(external->kind == DW_AttribKind_External); + TestCheck(external->form.reader.kind == DW_Form_Flag); + TestCheck(external->form.reader.flag); + + DW_WriterAttrib *prototyped = external->next; + TestCheck(prototyped->kind == DW_AttribKind_Prototyped); + TestCheck(prototyped->form.reader.kind == DW_Form_Flag); + TestCheck(prototyped->form.reader.flag); + + DW_WriterAttrib *low_pc = prototyped->next; + TestCheck(low_pc->kind == DW_AttribKind_LowPc); + TestCheck(low_pc->form.reader.kind == DW_Form_Addr); + TestCheck(low_pc->form.reader.addr.size == sizeof(U64)); + TestCheck(*(U64 *)low_pc->form.reader.addr.str == 0x140001000); + + DW_WriterAttrib *high_pc = low_pc->next; + TestCheck(high_pc->kind == DW_AttribKind_HighPc); + TestCheck(high_pc->form.reader.kind == DW_Form_Addr); + TestCheck(high_pc->form.reader.addr.size == sizeof(U64)); + TestCheck(*(U64 *)high_pc->form.reader.addr.str == 0x140001004); + + DW_WriterAttrib *name = high_pc->next; + TestCheck(name->kind == DW_AttribKind_Name); + TestCheck(name->form.reader.kind == DW_Form_String); + TestCheck(str8_match(name->form.reader.string, str8_lit("main"), 0)); + + DW_WriterAttrib *type = name->next; + TestCheck(type->kind == DW_AttribKind_Type); + TestCheck(type->form.reader.kind == DW_Form_Ref1); + TestCheck(type->form.reader.ref == simple_struct_tag->info_off); + + DW_WriterAttrib *frame_base = type->next; + TestCheck(frame_base->kind == DW_AttribKind_FrameBase); + TestCheck(frame_base->form.reader.kind == DW_Form_ExprLoc); + DW_Expr frame_base_expr = dw_expr_from_data(arena, writer->format, writer->address_size, frame_base->form.reader.exprloc); + TestCheck(frame_base_expr.count == 1); + TestCheck(frame_base_expr.first->opcode == DW_ExprOp_Reg7); + TestCheck(frame_base_expr.first->operands == 0); + TestCheck(frame_base_expr.first->size == 1); + TestCheck(frame_base_expr.first->next == 0); + TestCheck(frame_base_expr.first->prev == 0); + } + + dw_writer_end(&writer); +} + +Test(value_in_register) +{ + // setup register context + X64_RegBlock regs = {0}; + ARCH_Info *arch_info = arch_info_from_arch(Arch_x64); + ARCH_RegCode reg_code = arch_reg_code_from_dw(Arch_x64, DW_ExprOp_Reg3 - DW_ExprOp_Reg0); + Rng1U16 reg_range = arch_info->reg_code_rng_table[reg_code]; + U64 value = 0xc0ffee; + MemoryCopy((U8 *)®s + reg_range.min, &value, sizeof(value)); + + // compile a simple program which reads the value from register 3 + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(Reg3) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + // evaluate the program + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, ®s, 0, 0, &expr_value); + + // validate eval result + TestCheck(expr_eval == DW_ExprEvalResult_Ok); + TestCheck(expr_value.type == DW_ExprValueType_U64); + TestCheck(expr_value.u64 == value); +} + +Test(value_in_x_register) +{ + // setup register context + X64_RegBlock regs = {0}; + ARCH_Info *arch_info = arch_info_from_arch(Arch_x64); + ARCH_RegCode reg_code = arch_reg_code_from_dw(Arch_x64, DW_RegX64_FsBase); + Rng1U16 reg_range = arch_info->reg_code_rng_table[reg_code]; + U64 value = 0xc0ffee; + MemoryCopy((U8 *)®s + reg_range.min, &value, sizeof(value)); + + // compile a simple program which reads the value from register 3 + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(RegX), DW_ExprEnc_ULEB128(DW_RegX64_FsBase) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + // evaluate the program + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, ®s, 0, 0, &expr_value); + + // validate eval result + TestCheck(expr_eval == DW_ExprEvalResult_Ok); + TestCheck(expr_value.type == DW_ExprValueType_U64); + TestCheck(expr_value.u64 == value); +} + +Test(address_of_value) +{ + // compile a simple program which reads address + U64 addr = 0xdeadbeef; + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(Addr), DW_ExprEnc_U64(addr) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + // evaluate the program + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, 0, 0, 0, &expr_value); + + // validate eval result + TestCheck(expr_eval == DW_ExprEvalResult_Ok); + TestCheck(expr_value.type == DW_ExprValueType_Addr); + TestCheck(expr_value.addr == addr); +} + +Test(register_relative_variable) +{ + ARCH_Info *arch_info = arch_info_from_arch(Arch_x64); + + // setup register context + X64_RegBlock regs = {0}; + DW_Reg reg_dw_id = (DW_ExprOp_BReg11 - DW_ExprOp_BReg0); + ARCH_RegCode reg_code = arch_reg_code_from_dw(Arch_x64, reg_dw_id); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 value = 1; + MemoryCopy((U8 *)®s + reg_rng.min, &value, sizeof(value)); + + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(BReg11), DW_ExprEnc_SLEB128(44) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, ®s, 0, 0, &expr_value); + + // validate eval result + TestCheck(expr_eval == DW_ExprEvalResult_Ok); + TestCheck(expr_value.type == DW_ExprValueType_Addr); + TestCheck(expr_value.addr == (1 + 44)); +} + +Test(frame_relative_variable) +{ + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(FBReg), DW_ExprEnc_SLEB128(-50) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + U64 frame_base = 123; + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, frame_base, 0, 0, max_U64, expr, 0, 0, 0, &expr_value); + + TestCheck(expr_eval == DW_ExprEvalResult_Ok); + TestCheck(expr_value.type == DW_ExprValueType_Addr); + TestCheck(expr_value.addr == frame_base -50); +} + +internal +MACHINE_OP_MEM_READ(t_machine_op_mem_read) +{ + MemoryCopy(buffer, PtrFromInt(addr), buffer_size); + return MachineOpResult_Ok; +} + +Test(call_by_reference) +{ + U8 *memory = push_array(arena, U8, 128); + U64 value = 0xc0ffee; + MemoryCopy(memory + 32, &value, sizeof(value)); + + ARCH_Info *arch_info = arch_info_from_arch(Arch_x64); + X64_RegBlock regs = {0}; + ARCH_RegCode reg_code = arch_reg_code_from_dw(Arch_x64, 58); // fsbase + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 memory_ptr = IntFromPtr(memory); + MemoryCopy((U8 *)®s + reg_rng.min, &memory_ptr, sizeof(memory_ptr)); + + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(BRegX), DW_ExprEnc_ULEB128(58), DW_ExprEnc_SLEB128(32), DW_ExprEnc_Op(Deref) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + DW_ExprValue expr_value = { 0 }; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, ®s, t_machine_op_mem_read, 0, &expr_value); + + TestCheck(expr_value.type == DW_ExprValueType_Generic); + TestCheck(expr_value.generic.size == sizeof(U64)); + TestCheck(*(U64 *)expr_value.generic.str == value); +} + +Test(plus_uconst) +{ + U64 struct_addr = 0x123; + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(Addr), DW_ExprEnc_Addr(struct_addr), DW_ExprEnc_Op(PlusUConst), DW_ExprEnc_ULEB128(4) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, 0, t_machine_op_mem_read, 0, &expr_value); + + TestCheck(expr_value.type == DW_ExprValueType_Addr); + TestCheck(expr_value.addr == 0x123 + 4); +} + +Test(reg_split_spill) +{ + // setup register context + X64_RegBlock regs = {0}; + { + REGS_RegCode reg_code = reg_code_from_dw_reg(Arch_x64, DW_ExprOp_BReg3 - DW_ExprOp_BReg0); + Rng1U64 reg_range = regs_range_from_code(Arch_x64, 0, reg_code); + U64 value = 0xaaaa; + MemoryCopy((U8 *)®s + reg_range.min, &value, sizeof(value)); + } + { + REGS_RegCode reg_code = reg_code_from_dw_reg(Arch_x64, DW_ExprOp_BReg10 - DW_ExprOp_BReg0); + Rng1U64 reg_range = regs_range_from_code(Arch_x64, 0, reg_code); + U64 value = 0xbbbb; + MemoryCopy((U8 *)®s + reg_range.min, &value, sizeof(value)); + } + + DW_ExprEnc expr_encs[] = { DW_ExprEnc_Op(Reg3), DW_ExprEnc_Op(Piece), DW_ExprEnc_ULEB128(4), DW_ExprEnc_Op(Reg10), DW_ExprEnc_Op(Piece), DW_ExprEnc_ULEB128(2) }; + String8 expr_data = dw_encode_expr(arena, Arch_x64, DW_Format_64Bit, expr_encs, ArrayCount(expr_encs)); + DW_Expr expr = dw_expr_from_data(arena, DW_Format_64Bit, byte_size_from_arch(Arch_x64), expr_data); + + DW_ExprValue expr_value; + DW_ExprEvalResult expr_eval = dw_eval_expr(arena, Arch_x64, DW_Format_64Bit, 0, 0, 0, max_U64, expr, regs_read_dwarf_x64, ®s, 0, 0, &expr_value); +} +#endif diff --git a/src/regs/rdi/regs_rdi.c b/src/dwarf/x64/dwarf_x64.c similarity index 68% rename from src/regs/rdi/regs_rdi.c rename to src/dwarf/x64/dwarf_x64.c index 911725c1..de6cc0d3 100644 --- a/src/regs/rdi/regs_rdi.c +++ b/src/dwarf/x64/dwarf_x64.c @@ -1,4 +1,4 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#include "regs/rdi/generated/regs_rdi.meta.c" +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "dwarf/x64/generated/dwarf_x64.meta.c" diff --git a/src/dwarf/x64/dwarf_x64.h b/src/dwarf/x64/dwarf_x64.h new file mode 100644 index 00000000..0887fea2 --- /dev/null +++ b/src/dwarf/x64/dwarf_x64.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef DWARF_X64_H +#define DWARF_X64_H + +#include "dwarf/x64/generated/dwarf_x64.meta.h" + +#endif // DWARF_X64_H diff --git a/src/dwarf/x64/dwarf_x64.mdesk b/src/dwarf/x64/dwarf_x64.mdesk new file mode 100644 index 00000000..c2464c88 --- /dev/null +++ b/src/dwarf/x64/dwarf_x64.mdesk @@ -0,0 +1,7 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@data(U8) dw_reg_code_from_x64_table: +{ + @expand(X64_RegTable a) `$(a.has_dwarf == 'x' -> "DW_RegCodeX64_" .. a.name)$(a.has_dwarf != 'x' -> 0)` +} diff --git a/src/dwarf/x64/generated/dwarf_x64.meta.c b/src/dwarf/x64/generated/dwarf_x64.meta.c new file mode 100644 index 00000000..89cec99a --- /dev/null +++ b/src/dwarf/x64/generated/dwarf_x64.meta.c @@ -0,0 +1,201 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +U8 dw_reg_code_from_x64_table[189] = +{ +0, +DW_RegCodeX64_rax, +DW_RegCodeX64_rcx, +DW_RegCodeX64_rdx, +DW_RegCodeX64_rbx, +DW_RegCodeX64_rsp, +DW_RegCodeX64_rbp, +DW_RegCodeX64_rsi, +DW_RegCodeX64_rdi, +DW_RegCodeX64_r8, +DW_RegCodeX64_r9, +DW_RegCodeX64_r10, +DW_RegCodeX64_r11, +DW_RegCodeX64_r12, +DW_RegCodeX64_r13, +DW_RegCodeX64_r14, +DW_RegCodeX64_r15, +DW_RegCodeX64_fsbase, +DW_RegCodeX64_gsbase, +DW_RegCodeX64_rip, +DW_RegCodeX64_rflags, +0, +0, +0, +0, +0, +0, +0, +0, +DW_RegCodeX64_st0, +DW_RegCodeX64_st1, +DW_RegCodeX64_st2, +DW_RegCodeX64_st3, +DW_RegCodeX64_st4, +DW_RegCodeX64_st5, +DW_RegCodeX64_st6, +DW_RegCodeX64_st7, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +DW_RegCodeX64_ss, +DW_RegCodeX64_cs, +DW_RegCodeX64_ds, +DW_RegCodeX64_es, +DW_RegCodeX64_fs, +DW_RegCodeX64_gs, +DW_RegCodeX64_zmm0, +DW_RegCodeX64_zmm1, +DW_RegCodeX64_zmm2, +DW_RegCodeX64_zmm3, +DW_RegCodeX64_zmm4, +DW_RegCodeX64_zmm5, +DW_RegCodeX64_zmm6, +DW_RegCodeX64_zmm7, +DW_RegCodeX64_zmm8, +DW_RegCodeX64_zmm9, +DW_RegCodeX64_zmm10, +DW_RegCodeX64_zmm11, +DW_RegCodeX64_zmm12, +DW_RegCodeX64_zmm13, +DW_RegCodeX64_zmm14, +DW_RegCodeX64_zmm15, +DW_RegCodeX64_zmm16, +DW_RegCodeX64_zmm17, +DW_RegCodeX64_zmm18, +DW_RegCodeX64_zmm19, +DW_RegCodeX64_zmm20, +DW_RegCodeX64_zmm21, +DW_RegCodeX64_zmm22, +DW_RegCodeX64_zmm23, +DW_RegCodeX64_zmm24, +DW_RegCodeX64_zmm25, +DW_RegCodeX64_zmm26, +DW_RegCodeX64_zmm27, +DW_RegCodeX64_zmm28, +DW_RegCodeX64_zmm29, +DW_RegCodeX64_zmm30, +DW_RegCodeX64_zmm31, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +DW_RegCodeX64_mm0, +DW_RegCodeX64_mm1, +DW_RegCodeX64_mm2, +DW_RegCodeX64_mm3, +DW_RegCodeX64_mm4, +DW_RegCodeX64_mm5, +DW_RegCodeX64_mm6, +DW_RegCodeX64_mm7, +}; + +C_LINKAGE_END + diff --git a/src/dwarf/x64/generated/dwarf_x64.meta.h b/src/dwarf/x64/generated/dwarf_x64.meta.h new file mode 100644 index 00000000..e9cb5806 --- /dev/null +++ b/src/dwarf/x64/generated/dwarf_x64.meta.h @@ -0,0 +1,14 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef DWARF_X64_META_H +#define DWARF_X64_META_H + +C_LINKAGE_BEGIN +extern U8 dw_reg_code_from_x64_table[189]; + +C_LINKAGE_END + +#endif // DWARF_X64_META_H diff --git a/src/eh/eh_frame.c b/src/eh/eh_frame.c deleted file mode 100644 index 0b3f56e3..00000000 --- a/src/eh/eh_frame.c +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal U64 -eh_read_ptr(String8 frame_base, U64 off, EH_PtrCtx *ptr_ctx, EH_PtrEnc encoding, U64 *ptr_out) -{ - U64 ptr_off = off; - - // align read offset as needed - if (encoding == EH_PtrEnc_Aligned) { - ptr_off = AlignPow2(ptr_off, ptr_ctx->ptr_align); - encoding = EH_PtrEnc_Ptr; - } - - // decode pointer value - U64 decode_size = 0; - U64 raw_ptr_size = 0; - U64 raw_ptr = 0; - switch (encoding & EH_PtrEnc_TypeMask) { - default: { InvalidPath; } break; - - case EH_PtrEnc_Ptr : { raw_ptr_size = 8; } goto ufixed; - case EH_PtrEnc_UData2: { raw_ptr_size = 2; } goto ufixed; - case EH_PtrEnc_UData4: { raw_ptr_size = 4; } goto ufixed; - case EH_PtrEnc_UData8: { raw_ptr_size = 8; } goto ufixed; - ufixed: { - decode_size += str8_deserial_read(frame_base, ptr_off, &raw_ptr, raw_ptr_size, raw_ptr_size); - } break; - - // TODO: Signed is actually just a flag that indicates this int is negavite. - // There shouldn't be a read for Signed. - // For instance, (EH_PtrEnc_UData2 | EH_PtrEnc_Signed) == EH_PtrEnc_SData etc. - case EH_PtrEnc_Signed: { raw_ptr_size = 8; } goto sfixed; - - case EH_PtrEnc_SData2: { raw_ptr_size = 2; } goto sfixed; - case EH_PtrEnc_SData4: { raw_ptr_size = 4; } goto sfixed; - case EH_PtrEnc_SData8: { raw_ptr_size = 8; } goto sfixed; - sfixed: { - decode_size += str8_deserial_read(frame_base, ptr_off, &raw_ptr, raw_ptr_size, raw_ptr_size); - raw_ptr = extend_sign64(raw_ptr, raw_ptr_size); - } break; - - case EH_PtrEnc_ULEB128: { decode_size += str8_deserial_read_uleb128(frame_base, ptr_off, &raw_ptr); } break; - case EH_PtrEnc_SLEB128: { decode_size += str8_deserial_read_sleb128(frame_base, ptr_off, (S64*)&raw_ptr); } break; - } - - // apply relative bases - if (decode_size > 0) { - U64 ptr = raw_ptr; - switch (encoding & EH_PtrEnc_ModifierMask) { - case EH_PtrEnc_PcRel: { ptr = ptr_ctx->raw_base_vaddr + off + raw_ptr; } break; - case EH_PtrEnc_TextRel: { ptr = ptr_ctx->text_vaddr + raw_ptr; } break; - case EH_PtrEnc_DataRel: { ptr = ptr_ctx->data_vaddr + raw_ptr; } break; - case EH_PtrEnc_FuncRel: { - Assert(!"TODO: need a sample to verify implementation"); - ptr = ptr_ctx->func_vaddr + raw_ptr; - } break; - } - - if (ptr_out) { - *ptr_out = raw_ptr; - } - } - - return decode_size; -} - -internal U64 -eh_parse_aug_data(String8 aug_string, String8 aug_data, EH_PtrCtx *ptr_ctx, EH_Augmentation *aug_out) -{ - // TODO: - // Handle "eh" param, it indicates presence of EH Data field. - // On 32bit arch it is a 4-byte and on 64-bit 8-byte value. - // Reference: https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html - // Reference doc doesn't clarify structure for EH Data though - - U64 cursor = 0; - - EH_AugFlags aug_flags = 0; - EH_PtrEnc lsda_encoding = EH_PtrEnc_Omit; - EH_PtrEnc addr_encoding = EH_PtrEnc_UData8; - EH_PtrEnc handler_encoding = EH_PtrEnc_Omit; - U64 handler_ip = 0; - if (str8_match(str8_prefix(aug_string, 1), str8_lit("z"), 0)) { - U64 aug_cursor = 0; - for (U8 *ptr = aug_string.str; ptr < (aug_string.str+aug_string.size); ptr += 1) { - switch (*ptr) { - case 'L': { - aug_cursor += str8_deserial_read_struct(aug_data, aug_cursor, &lsda_encoding); - aug_flags |= EH_AugFlag_HasLSDA; - } break; - case 'P': { - aug_cursor += str8_deserial_read_struct(aug_data, aug_cursor, &handler_encoding); - aug_cursor += eh_read_ptr(aug_data, aug_cursor, ptr_ctx, handler_encoding, &handler_ip); - aug_flags |= EH_AugFlag_HasHandler; - } break; - case 'R': { - aug_cursor += str8_deserial_read_struct(aug_data, aug_cursor, &addr_encoding); - aug_flags |= EH_AugFlag_HasAddrEnc; - } break; - default: { Assert(!"failed to parse augmentation string"); goto exit; } break; - } - } - } - - if (aug_out) { - aug_out->handler_ip = handler_ip; - aug_out->handler_encoding = handler_encoding; - aug_out->lsda_encoding = handler_encoding; - aug_out->addr_encoding = addr_encoding; - aug_out->flags = aug_flags; - } - -exit:; - U64 parse_size = cursor; - return parse_size; -} - -internal U64 -eh_size_from_aug_data(String8 aug_string, String8 data, EH_PtrCtx *ptr_ctx) -{ - return eh_parse_aug_data(aug_string, data, ptr_ctx, 0); -} - -internal U64 -eh_frame_hdr_search_linear_x64(String8 raw_eh_frame_hdr, EH_PtrCtx *ptr_ctx, U64 location) -{ - // Table contains only addresses for first instruction in a function and we cannot - // guarantee that result is FDE that corresponds to the input location. - // So input location must be cheked against range from FDE header again. - - U64 closest_location = max_U64; - U64 closest_address = max_U64; - - U64 cursor = 0; - - U8 version = 0; - cursor += str8_deserial_read_struct(raw_eh_frame_hdr, cursor, &version); - - if (version == 1) { -#if 0 - EH_PtrCtx ptr_ctx = {0}; - // Set this to base address of .eh_frame_hdr. Entries are relative - // to this section for some reason. - ptr_ctx.data_vaddr = range.min; - // If input location is VMA then set this to address of .text. - // Pointer parsing function will adjust "init_location" to correct VMA. - ptr_ctx.text_vaddr = 0; -#endif - - EH_PtrEnc eh_frame_ptr_enc = 0, fde_count_enc = 0, table_enc = 0; - cursor += str8_deserial_read_struct(raw_eh_frame_hdr, cursor, &eh_frame_ptr_enc); - cursor += str8_deserial_read_struct(raw_eh_frame_hdr, cursor, &fde_count_enc); - cursor += str8_deserial_read_struct(raw_eh_frame_hdr, cursor, &table_enc); - - U64 eh_frame_ptr = 0, fde_count = 0; - NotImplemented; - //cursor += dw_unwind_parse_pointer_x64(raw_eh_frame_hdr.str, rng_1u64(0, raw_eh_frame_hdr.size), ptr_ctx, eh_frame_ptr_enc, cursor, &eh_frame_ptr); - //cursor += dw_unwind_parse_pointer_x64(raw_eh_frame_hdr.str, rng_1u64(0, raw_eh_frame_hdr.size), ptr_ctx, fde_count_enc, cursor, &fde_count); - - for (U64 fde_idx = 0; fde_idx < fde_count; ++fde_idx) { - U64 init_location = 0, address = 0; - NotImplemented; - //cursor += dw_unwind_parse_pointer_x64(raw_eh_frame_hdr.str, rng_1u64(0, raw_eh_frame_hdr.size), ptr_ctx, table_enc, cursor, &init_location); - //cursor += dw_unwind_parse_pointer_x64(raw_eh_frame_hdr.str, rng_1u64(0, raw_eh_frame_hdr.size), ptr_ctx, table_enc, cursor, &address); - - S64 current_delta = (S64)(location - init_location); - S64 closest_delta = (S64)(location - closest_location); - if (0 <= current_delta && current_delta < closest_delta) { - closest_location = init_location; - closest_address = address; - } - } - } - - // address where to find corresponding FDE, this is an absolute offset - // into the image file. - return closest_address; -} - -#if 0 -internal DW_CFIRecords -dw_unwind_eh_frame_hdr_from_ip_fast_x64(String8 raw_eh_frame, String8 raw_eh_frame_hdr, EH_PtrCtx *ptr_ctx, U64 ip_voff) -{ - DW_CFIRecords result = {0}; - - // find FDE offset - void *eh_frame_hdr = raw_eh_frame.str; - U64 fde_offset = dw_search_eh_frame_hdr_linear_x64(raw_eh_frame_hdr, ptr_ctx, ip_voff); - - B32 is_fde_offset_valid = (fde_offset != max_U64); - if (is_fde_offset_valid) { - U64 fde_read_offset = (fde_offset - ptr_ctx->raw_base_vaddr); - - // read FDE size - U64 fde_size = 0; - fde_read_offset += str8_deserial_read_dwarf_packed_size(raw_eh_frame, fde_read_offset, &fde_size); - - // read FDE discriminator - U32 fde_discrim = 0; - fde_read_offset += str8_deserial_read_struct(raw_eh_frame, fde_read_offset, &fde_discrim); - - // compute parent CIE offset - U64 cie_read_offset = fde_read_offset - (fde_discrim + sizeof(fde_discrim)); - - // read CIE size - U64 cie_size = 0; - cie_read_offset += str8_deserial_read_dwarf_packed_size(raw_eh_frame, cie_read_offset, &cie_size); - - // read CIE discriminator - U32 cie_discrim = max_U32; - cie_read_offset += str8_deserial_read_struct(raw_eh_frame, cie_read_offset, &cie_discrim); - - B32 is_fde = (fde_discrim != 0); - B32 is_cie = (cie_discrim == 0); - if (is_fde && is_cie) { - Rng1U64 cie_range = rng_1u64(0, cie_read_offset + (cie_size - sizeof(cie_discrim))); - Rng1U64 fde_range = rng_1u64(0, fde_read_offset + (fde_size - sizeof(fde_discrim))); - - // parse CIE - DW_CIE cie = {0}; - dw_unwind_parse_cie_x64(raw_eh_frame.str, cie_range, ptr_ctx, cie_read_offset, &cie); - - // parse FDE - DW_FDE fde = {0}; - NotImplemented; - //dw_unwind_parse_fde_x64(raw_eh_frame.str, fde_range, ptr_ctx, &cie, fde_read_offset, &fde); - - // range check instruction pointer - if (contains_1u64(fde.pc_range, ip_voff)) { - result.valid = 1; - result.cie = cie; - result.fde = fde; - } - } - } - - return result; -} -#endif - -internal String8 -eh_string_from_ptr_enc_type(EH_PtrEnc type) -{ - switch (type) { - case EH_PtrEnc_Ptr: return str8_lit("Ptr"); - case EH_PtrEnc_ULEB128: return str8_lit("ULEB128"); - case EH_PtrEnc_UData2: return str8_lit("UData2"); - case EH_PtrEnc_UData4: return str8_lit("UData4"); - case EH_PtrEnc_UData8: return str8_lit("UData8"); - case EH_PtrEnc_Signed: return str8_lit("Signed"); - case EH_PtrEnc_SLEB128: return str8_lit("SLEB128"); - case EH_PtrEnc_SData2: return str8_lit("SData2"); - case EH_PtrEnc_SData4: return str8_lit("SData4"); - case EH_PtrEnc_SData8: return str8_lit("SData8"); - } - return str8_zero(); -} - -internal String8 -eh_string_from_ptr_enc_modifier(EH_PtrEnc modifier) -{ - switch (modifier) { - case EH_PtrEnc_PcRel: return str8_lit("PcRel"); - case EH_PtrEnc_TextRel: return str8_lit("TextRel"); - case EH_PtrEnc_DataRel: return str8_lit("DataRel"); - case EH_PtrEnc_FuncRel: return str8_lit("FuncRel"); - case EH_PtrEnc_Aligned: return str8_lit("Aligned"); - } - return str8_zero(); -} - -internal String8 -eh_string_from_ptr_enc(Arena *arena, EH_PtrEnc enc) -{ - String8 type_str = eh_string_from_ptr_enc_type(enc & EH_PtrEnc_TypeMask); - String8 modifer_str = eh_string_from_ptr_enc_modifier(enc & EH_PtrEnc_ModifierMask); - String8 indir_str = enc & EH_PtrEnc_Indirect ? str8_lit("Indirect") : str8_zero(); - String8 result = str8f(arena, "Type: %S, Modifier %S (%S)", type_str, modifer_str, indir_str); - return result; -} diff --git a/src/eh/eh_frame.h b/src/eh/eh_frame.h deleted file mode 100644 index ac5840e5..00000000 --- a/src/eh/eh_frame.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef EH_FRAME_H -#define EH_FRAME_H - -typedef U8 EH_PtrEnc; -enum -{ - EH_PtrEnc_Ptr = 0x00, // Pointer sized unsigned value - EH_PtrEnc_ULEB128 = 0x01, // Unsigned LE base-128 value - EH_PtrEnc_UData2 = 0x02, // Unsigned 16-bit value - EH_PtrEnc_UData4 = 0x03, // Unsigned 32-bit value - EH_PtrEnc_UData8 = 0x04, // Unsigned 64-bit value - EH_PtrEnc_Signed = 0x08, // Signed pointer - EH_PtrEnc_SLEB128 = 0x09, // Signed LE base-128 value - EH_PtrEnc_SData2 = 0x0A, // Signed 16-bit value - EH_PtrEnc_SData4 = 0x0B, // Signed 32-bit value - EH_PtrEnc_SData8 = 0x0C, // Signed 64-bit value - - EH_PtrEnc_TypeMask = 0x0F, -}; - -enum -{ - EH_PtrEnc_PcRel = 0x10, // Value is relative to the current program counter. - EH_PtrEnc_TextRel = 0x20, // Value is relative to the .text section. - EH_PtrEnc_DataRel = 0x30, // Value is relative to the .got or .eh_frame_hdr section. - EH_PtrEnc_FuncRel = 0x40, // Value is relative to the function. - EH_PtrEnc_Aligned = 0x50, // Value is aligned to an address unit sized boundary. - - EH_PtrEnc_ModifierMask = 0x70, -}; - -enum -{ - EH_PtrEnc_Indirect = 0x80, // Value is stored in virtual memory. - EH_PtrEnc_Omit = 0xFF, -}; - -typedef struct EH_PtrCtx -{ - U64 raw_base_vaddr; // address where pointer is being read - U64 text_vaddr; // base address of section with instructions (used for encoding pointer on SH and IA64) - U64 data_vaddr; // base address of data section (used for encoding pointer on x86-64) - U64 func_vaddr; // base address of function where IP is located - U64 ptr_align; -} EH_PtrCtx; - -typedef U8 EH_AugFlags; -enum -{ - EH_AugFlag_HasLSDA = (1 << 0), - EH_AugFlag_HasHandler = (1 << 1), - EH_AugFlag_HasAddrEnc = (1 << 2), -}; - -typedef struct EH_Augmentation -{ - EH_AugFlags flags; - U64 handler_ip; - EH_PtrEnc handler_encoding; - EH_PtrEnc lsda_encoding; - EH_PtrEnc addr_encoding; -} EH_Augmentation; - -//////////////////////////////// - -internal U64 eh_read_ptr(String8 frame_base, U64 off, EH_PtrCtx *ptr_ctx, EH_PtrEnc encoding, U64 *ptr_out); -internal U64 eh_parse_aug_data(String8 aug_string, String8 aug_data, EH_PtrCtx *ptr_ctx, EH_Augmentation *aug_out); -internal U64 eh_size_from_aug_data(String8 aug_string, String8 data, EH_PtrCtx *ptr_ctx); - -//////////////////////////////// -//~ Enum -> String - -internal String8 eh_string_from_ptr_enc_type(EH_PtrEnc type); -internal String8 eh_string_from_ptr_enc_modifier(EH_PtrEnc modifier); -internal String8 eh_string_from_ptr_enc(Arena *arena, EH_PtrEnc enc); - -#endif // EH_FRAME_H - diff --git a/src/eh_frame/eh_frame.c b/src/eh_frame/eh_frame.c new file mode 100644 index 00000000..141ac5f5 --- /dev/null +++ b/src/eh_frame/eh_frame.c @@ -0,0 +1,426 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: .eh_frame Parsing Functions + +internal EH_FrameHdr +eh_parse_frame_hdr(String8 data, U64 address_size, EH_PtrCtx *ptr_ctx) +{ + EH_FrameHdr header = {0}; + U64 cursor = 0; + + U64 version_size = str8_deserial_read_struct(data, cursor, &header.version); + if (version_size == 0) { goto exit; } + cursor += version_size; + + if (header.version == 1) { + U64 eh_frame_ptr_enc_size = str8_deserial_read_struct(data, cursor, &header.eh_frame_ptr_enc); + if (eh_frame_ptr_enc_size == 0) { goto exit; } + cursor += eh_frame_ptr_enc_size; + + U64 fde_count_enc_size = str8_deserial_read_struct(data, cursor, &header.fde_count_enc); + if (fde_count_enc_size == 0) { goto exit; } + cursor += fde_count_enc_size; + + U64 table_enc_size = str8_deserial_read_struct(data, cursor, &header.table_enc); + if (table_enc_size == 0) { goto exit; } + cursor += table_enc_size; + + cursor += eh_read_ptr(data, cursor, cursor, ptr_ctx, header.eh_frame_ptr_enc, &header.eh_frame_ptr); + cursor += eh_read_ptr(data, cursor, cursor, ptr_ctx, header.fde_count_enc, &header.fde_count); + + switch (header.table_enc & EH_PtrEnc_TypeMask) { + case EH_PtrEnc_Ptr: { header.field_byte_size = address_size; } break; + case EH_PtrEnc_ULEB128: { InvalidPath; } break; // TODO: when loading module convert these to UData8 + case EH_PtrEnc_UData2: { header.field_byte_size = 2; } break; + case EH_PtrEnc_UData4: { header.field_byte_size = 4; } break; + case EH_PtrEnc_UData8: { header.field_byte_size = 8; } break; + case EH_PtrEnc_Signed: { header.field_byte_size = address_size; } break; + case EH_PtrEnc_SLEB128: { InvalidPath; } break; // TODO: when loading module convert these to UData8 + case EH_PtrEnc_SData2: { header.field_byte_size = 2; } break; + case EH_PtrEnc_SData4: { header.field_byte_size = 4; } break; + case EH_PtrEnc_SData8: { header.field_byte_size = 8; } break; + default: { InvalidPath; } break; + } + header.entry_byte_size = header.field_byte_size * 2; + + header.table = str8_skip(data, cursor); + AssertAlways(header.table.size == header.entry_byte_size * header.fde_count); + } else { + Assert(0 && "unknown version"); + } + + exit:; + return header; +} + +internal U64 +eh_read_ptr(String8 data, U64 off, U64 pc, EH_PtrCtx *ptr_ctx, EH_PtrEnc encoding, U64 *ptr_out) +{ + U64 start_off = off; + if(encoding != EH_PtrEnc_Omit) + { + // rjf: apply aligned encoding & align pointer offset + if(encoding == EH_PtrEnc_Aligned) + { + off = AlignPow2(off, ptr_ctx->ptr_align); + encoding = EH_PtrEnc_Ptr; + } + U64 start_ptr_read_off = off; + + // rjf: decode pointer value + U64 raw_ptr_size = 0; + U64 raw_ptr = 0; + switch(encoding & EH_PtrEnc_TypeMask) + { + default:{}break; + + // rjf: fixed-size pointer reads + case EH_PtrEnc_Ptr: {raw_ptr_size = 8;}goto ufixed; + case EH_PtrEnc_UData2:{raw_ptr_size = 2;}goto ufixed; + case EH_PtrEnc_UData4:{raw_ptr_size = 4;}goto ufixed; + case EH_PtrEnc_UData8:{raw_ptr_size = 8;}goto ufixed; + ufixed: + { + off += str8_deserial_read(data, off, &raw_ptr, raw_ptr_size, raw_ptr_size); + }break; + + // TODO: Signed is actually just a flag that indicates this int is negavite. + // There shouldn't be a read for Signed. + // For instance, (EH_PtrEnc_UData2 | EH_PtrEnc_Signed) == EH_PtrEnc_SData etc. + case EH_PtrEnc_Signed:{raw_ptr_size = 8;}goto sfixed; + + // rjf: fixed-size pointer reads w/ sign extension + case EH_PtrEnc_SData2:{raw_ptr_size = 2;}goto sfixed; + case EH_PtrEnc_SData4:{raw_ptr_size = 4;}goto sfixed; + case EH_PtrEnc_SData8:{raw_ptr_size = 8;}goto sfixed; + sfixed: + { + off += str8_deserial_read(data, off, &raw_ptr, raw_ptr_size, raw_ptr_size); + raw_ptr = extend_sign64(raw_ptr, raw_ptr_size); + }break; + + // rjf: uleb128/sleb128 + case EH_PtrEnc_ULEB128:{off += str8_deserial_read_uleb128(data, off, &raw_ptr); }break; + case EH_PtrEnc_SLEB128:{off += str8_deserial_read_sleb128(data, off, (S64*)&raw_ptr);}break; + } + + // rjf: apply relative bases + U64 ptr = raw_ptr; + if(off != start_ptr_read_off) + { + switch(encoding & EH_PtrEnc_ModifierMask) + { + default:{}break; + case 0:{}break; + case EH_PtrEnc_PcRel: { ptr = pc + raw_ptr; } break; + case EH_PtrEnc_TextRel:{ ptr = ptr_ctx->text_vaddr + raw_ptr; } break; + case EH_PtrEnc_DataRel:{ ptr = ptr_ctx->data_vaddr + raw_ptr; } break; + case EH_PtrEnc_FuncRel: + { + Assert(!"TODO: need a sample to verify implementation"); + ptr = ptr_ctx->func_vaddr + raw_ptr; + }break; + } + } + + // rjf: fill output + if(ptr_out) + { + *ptr_out = ptr; + } + } + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +eh_read_aug_data(String8 data, U64 off, String8 string, U64 pc, EH_PtrCtx *ptr_ctx, EH_Augmentation *aug_out) +{ + // TODO: + // Handle "eh" param, it indicates presence of EH Data field. + // On 32bit arch it is a 4-byte and on 64-bit 8-byte value. + // Reference: https://refspecs.linuxfoundation.org/LSB_3.0.0/LSB-PDA/LSB-PDA/ehframechpt.html + // Reference doc doesn't clarify structure for EH Data though + U64 start_off = off; + U64 aug_data_size = 0; + EH_AugFlags aug_flags = 0; + EH_PtrEnc lsda_encoding = EH_PtrEnc_Omit; + EH_PtrEnc addr_encoding = EH_PtrEnc_UData8; + EH_PtrEnc handler_encoding = EH_PtrEnc_Omit; + U64 handler_ip = 0; + if(str8_match(str8_prefix(string, 1), str8_lit("z"), 0)) + { + off += str8_deserial_read_uleb128(data, off, &aug_data_size); + for(U8 *ptr = string.str+1; ptr < (string.str+string.size); ptr += 1) + { + switch(*ptr) + { + default:{goto exit;}break; + case 'L': + { + off += str8_deserial_read_struct(data, off, &lsda_encoding); + aug_flags |= EH_AugFlag_HasLSDA; + }break; + case 'P': + { + off += str8_deserial_read_struct(data, off, &handler_encoding); + off += eh_read_ptr(data, off, pc + (off - start_off), ptr_ctx, handler_encoding, &handler_ip); + aug_flags |= EH_AugFlag_HasHandler; + }break; + case 'R': + { + off += str8_deserial_read_struct(data, off, &addr_encoding); + aug_flags |= EH_AugFlag_HasAddrEnc; + }break; + case 'S': + { + aug_flags |= EH_AugFlag_SignalFrame; + }break; + } + } + } + if(aug_out != 0) + { + aug_out->handler_ip = handler_ip; + aug_out->handler_encoding = handler_encoding; + aug_out->lsda_encoding = handler_encoding; + aug_out->addr_encoding = addr_encoding; + aug_out->flags = aug_flags; + aug_out->size = aug_data_size; + } + exit:; + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +eh_read_cfi_header(String8 data, U64 off, DW_CFIHeader *cfi_header_out) +{ + U64 start_off = off; + + // rjf: read length / format + U64 length = 0; + DW_Format fmt = DW_Format_Null; + U64 length_size = dw2_read_initial_length(data, off, &length, &fmt); + + // rjf: find entry info, read ID + Rng1U64 entry_range = r1u64(off, off + length_size + length); + String8 entry_data = str8_substr(data, entry_range); + U64 id = 0; + U64 id_size = dw2_read_fmt_u64(entry_data, length_size, fmt, &id); + + // rjf: fill + cfi_header_out->kind = (id == 0) ? DW_CFIKind_CIE : DW_CFIKind_FDE; + cfi_header_out->fmt = fmt; + cfi_header_out->entry_range = entry_range; + cfi_header_out->cie_pointer = id; + cfi_header_out->cie_pointer_off = off + length_size; + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +eh_read_cie(String8 data, U64 off, DW_Format fmt, Arch arch, U64 pc, EH_PtrCtx *ptr_ctx, DW_CIE *cie_out) +{ + U64 start_off = off; + + // rjf: skip format-dependent prefix + off += (fmt == DW_Format_32Bit) ? 4 : 12; + + // rjf: read id + U64 id = 0; + off += dw2_read_fmt_u64(data, off, fmt, &id); + + // rjf: read version + U8 version = 0; + off += str8_deserial_read_struct(data, off, &version); + + // rjf: read entry info + U64 aug_string_off_first = 0; + U64 aug_string_off_opl = 0; + U64 aug_data_off_first = 0; + U64 aug_data_off_opl = 0; + U64 code_align_factor = 0; + S64 data_align_factor = 0; + U64 ret_addr_reg = 0; + EH_Augmentation aug = {0}; + if(version == 1) + { + // rjf: read aug string + aug_string_off_first = off; + String8 aug_string = {0}; + off += str8_deserial_read_cstr(data, off, &aug_string); + aug_string_off_opl = off; + + // rjf: read eh data + U64 eh_data = 0; + if(str8_match(aug_string, s("eh"), 0)) + { + U64 arch_byte_size = byte_size_from_arch(arch); + off += str8_deserial_read(data, off, &eh_data, arch_byte_size, arch_byte_size); + } + + // rjf: read align factors + off += str8_deserial_read_uleb128(data, off, &code_align_factor); + off += str8_deserial_read_sleb128(data, off, &data_align_factor); + + // rjf: read return address register + off += str8_deserial_read(data, off, &ret_addr_reg, sizeof(U8), sizeof(U8)); + + // rjf: parse augmentation + aug_data_off_first = off; + U64 aug_data_size = eh_read_aug_data(data, off, aug_string, pc + (off - start_off), ptr_ctx, &aug); + aug_data_off_opl = off + aug.size; + off += aug_data_size; + } + + // rjf: fill output + cie_out->aug_string_range = r1u64(aug_string_off_first, aug_string_off_opl); + cie_out->aug_data_range = r1u64(aug_data_off_first, aug_data_off_opl); + cie_out->code_align_factor = code_align_factor; + cie_out->data_align_factor = data_align_factor; + cie_out->ret_addr_reg = ret_addr_reg; + cie_out->format = fmt; + cie_out->version = version; + cie_out->address_size = byte_size_from_arch(arch); + cie_out->segment_selector_size = 0; + cie_out->ext[EH_CIE_Ext_LSDAEnc] = EH_PtrEnc_Omit; + cie_out->ext[EH_CIE_Ext_AddrEnc] = EH_PtrEnc_Omit; + cie_out->ext[EH_CIE_Ext_HandlerEnc] = EH_PtrEnc_Omit; + if(aug.flags & EH_AugFlag_HasLSDA) + { + cie_out->ext[EH_CIE_Ext_LSDAEnc] = aug.lsda_encoding; + } + if(aug.flags & EH_AugFlag_HasAddrEnc) + { + cie_out->ext[EH_CIE_Ext_AddrEnc] = aug.addr_encoding; + } + if(aug.flags & EH_AugFlag_HasHandler) + { + cie_out->ext[EH_CIE_Ext_HandlerEnc] = aug.handler_encoding; + cie_out->ext[EH_CIE_Ext_HandlerIp ] = aug.handler_ip; + } + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal U64 +eh_read_fde(String8 data, U64 off, DW_Format fmt, Arch arch, U64 pc, EH_PtrCtx *ptr_ctx, DW_CIE *cie, DW_FDE *fde_out) +{ + U64 start_off = off; + + // rjf: skip format-dependent prefix + off += (fmt == DW_Format_32Bit) ? 8 : 20; + + // rjf: read pc begin / delta + U64 pc_begin = 0; + U64 pc_delta = 0; + EH_PtrEnc addr_enc = cie->ext[EH_CIE_Ext_AddrEnc]; + if(addr_enc != EH_PtrEnc_Omit) + { + off += eh_read_ptr(data, off, pc + (off - start_off), ptr_ctx, addr_enc, &pc_begin); + off += eh_read_ptr(data, off, pc + (off - start_off), ptr_ctx, addr_enc & EH_PtrEnc_TypeMask, &pc_delta); + } + + // rjf: skip aug data + off += dim_1u64(cie->aug_data_range); + + // rjf: fill output + fde_out->pc_range = r1u64(pc_begin, pc_begin + pc_delta); + + U64 bytes_read = (off - start_off); + return bytes_read; +} + +internal int +eh_frame_hdr_entry_sort(void *raw_a, void *raw_b) +{ + return ((EH_FrameHdrEntry *)raw_a)->addr < ((EH_FrameHdrEntry *)raw_b)->addr; +} + +internal String8 +eh_frame_hdr_from_call_frame_info(Arena *arena, U64 fde_count, U64 *fde_offsets, DW_FDE *fde) +{ + Temp scratch = scratch_begin(&arena, 1); + + // make .eh_frame_hdr + String8List srl = {0}; + str8_serial_begin(scratch.arena, &srl); + str8_serial_push_u8(scratch.arena, &srl, 1); // version + str8_serial_push_u8(scratch.arena, &srl, EH_PtrEnc_Omit); // omit eh_frame_ptr field + str8_serial_push_u8(scratch.arena, &srl, EH_PtrEnc_UData8); // fde_count encoding + str8_serial_push_u8(scratch.arena, &srl, EH_PtrEnc_UData8); // table encoding + str8_serial_push_u64(scratch.arena, &srl, fde_count); // fde_count + String8 header = str8_serial_end(scratch.arena, &srl); + + // alloc buffer for output + U64 buffer_size = header.size + sizeof(EH_FrameHdrEntry) * fde_count; + U8 *buffer = push_array(arena, U8, buffer_size); + + // copy header + MemoryCopyStr8(buffer, header); + + // write the table + EH_FrameHdrEntry *table = (EH_FrameHdrEntry *)(buffer + header.size); + for EachIndex(fde_idx, fde_count) { + table[fde_idx].addr = fde[fde_idx].pc_range.min; + table[fde_idx].fde_offset = fde_offsets[fde_idx]; + } + radsort(table, fde_count, eh_frame_hdr_entry_sort); + + String8 eh_frame_hdr = str8(buffer, buffer_size); + scratch_end(scratch); + return eh_frame_hdr; +} + +//////////////////////////////// +//~ rjf: Enum -> String + +internal String8 +eh_string_from_ptr_enc_type(EH_PtrEnc type) +{ + String8 result = {0}; + switch(type) + { + case EH_PtrEnc_Ptr: {result = s("Ptr");}break; + case EH_PtrEnc_ULEB128: {result = s("ULEB128");}break; + case EH_PtrEnc_UData2: {result = s("UData2");}break; + case EH_PtrEnc_UData4: {result = s("UData4");}break; + case EH_PtrEnc_UData8: {result = s("UData8");}break; + case EH_PtrEnc_Signed: {result = s("Signed");}break; + case EH_PtrEnc_SLEB128: {result = s("SLEB128");}break; + case EH_PtrEnc_SData2: {result = s("SData2");}break; + case EH_PtrEnc_SData4: {result = s("SData4");}break; + case EH_PtrEnc_SData8: {result = s("SData8");}break; + } + return result; +} + +internal String8 +eh_string_from_ptr_enc_modifier(EH_PtrEnc modifier) +{ + String8 result = {0}; + switch(modifier) + { + case EH_PtrEnc_PcRel: {result = s("PcRel");}break; + case EH_PtrEnc_TextRel: {result = s("TextRel");}break; + case EH_PtrEnc_DataRel: {result = s("DataRel");}break; + case EH_PtrEnc_FuncRel: {result = s("FuncRel");}break; + case EH_PtrEnc_Aligned: {result = s("Aligned");}break; + } + return result; +} + +internal String8 +eh_string_from_ptr_enc(Arena *arena, EH_PtrEnc enc) +{ + String8 type_str = eh_string_from_ptr_enc_type(enc & EH_PtrEnc_TypeMask); + String8 modifer_str = eh_string_from_ptr_enc_modifier(enc & EH_PtrEnc_ModifierMask); + String8 indir_str = enc & EH_PtrEnc_Indirect ? str8_lit("Indirect") : str8_zero(); + String8 result = str8f(arena, "Type: %S, Modifier %S (%S)", type_str, modifer_str, indir_str); + return result; +} diff --git a/src/eh_frame/eh_frame.h b/src/eh_frame/eh_frame.h new file mode 100644 index 00000000..d4803bab --- /dev/null +++ b/src/eh_frame/eh_frame.h @@ -0,0 +1,130 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef EH_FRAME_H +#define EH_FRAME_H + +//////////////////////////////// +//~ Format + +typedef U8 EH_PtrEnc; +enum +{ + EH_PtrEnc_Ptr = 0x00, // Pointer sized unsigned value + EH_PtrEnc_ULEB128 = 0x01, // Unsigned LE base-128 value + EH_PtrEnc_UData2 = 0x02, // Unsigned 16-bit value + EH_PtrEnc_UData4 = 0x03, // Unsigned 32-bit value + EH_PtrEnc_UData8 = 0x04, // Unsigned 64-bit value + EH_PtrEnc_Signed = 0x08, // Signed pointer + EH_PtrEnc_SLEB128 = 0x09, // Signed LE base-128 value + EH_PtrEnc_SData2 = 0x0A, // Signed 16-bit value + EH_PtrEnc_SData4 = 0x0B, // Signed 32-bit value + EH_PtrEnc_SData8 = 0x0C, // Signed 64-bit value + + EH_PtrEnc_TypeMask = 0x0F, +}; + +enum +{ + EH_PtrEnc_PcRel = 0x10, // Value is relative to the current program counter. + EH_PtrEnc_TextRel = 0x20, // Value is relative to the .text section. + EH_PtrEnc_DataRel = 0x30, // Value is relative to the .got or .eh_frame_hdr section. + EH_PtrEnc_FuncRel = 0x40, // Value is relative to the function. + EH_PtrEnc_Aligned = 0x50, // Value is aligned to an address unit sized boundary. + + EH_PtrEnc_ModifierMask = 0x70, +}; + +enum +{ + EH_PtrEnc_Indirect = 0x80, // Value is stored in virtual memory. + EH_PtrEnc_Omit = 0xFF, +}; + +typedef struct EH_PtrCtx +{ + U64 pc_vaddr; // address where pointer is being read + U64 text_vaddr; // base address of section with instructions (used for encoding pointer on SH and IA64) + U64 data_vaddr; // base address of data section (used for encoding pointer on x86-64) + U64 func_vaddr; // base address of function where IP is located + U64 ptr_align; +} EH_PtrCtx; + +typedef U8 EH_AugFlags; +enum +{ + EH_AugFlag_HasLSDA = (1 << 0), + EH_AugFlag_HasHandler = (1 << 1), + EH_AugFlag_HasAddrEnc = (1 << 2), + EH_AugFlag_SignalFrame = (1 << 3), +}; + +typedef struct EH_Augmentation +{ + EH_AugFlags flags; + U64 handler_ip; + EH_PtrEnc handler_encoding; + EH_PtrEnc lsda_encoding; + EH_PtrEnc addr_encoding; + U64 size; +} EH_Augmentation; + +//////////////////////////////// +//~ Parser + +enum +{ + EH_CIE_Ext_AddrEnc, + EH_CIE_Ext_LSDAEnc, + EH_CIE_Ext_HandlerEnc, + EH_CIE_Ext_HandlerIp, +} EH_CIE_Ext; + +typedef struct EH_FrameHdrEntry +{ + U64 addr; + U64 fde_offset; +} EH_FrameHdrEntry; + +typedef struct EH_FrameHdr +{ + U8 version; + EH_PtrEnc eh_frame_ptr_enc; + EH_PtrEnc fde_count_enc; + EH_PtrEnc table_enc; + U64 field_byte_size; + U64 entry_byte_size; + U64 fde_count; + U64 eh_frame_ptr; + String8 table; +} EH_FrameHdr; + +typedef struct EH_DecodePtrCtx +{ + EH_PtrEnc addr_enc; + EH_PtrCtx *ptr_ctx; +} EH_DecodePtrCtx; + +//////////////////////////////// +//~ rjf: .eh_frame Parsing Functions + +internal EH_FrameHdr eh_parse_frame_hdr(String8 data, U64 address_size, EH_PtrCtx *ptr_ctx); + +internal U64 eh_read_ptr(String8 data, U64 off, U64 pc, EH_PtrCtx *ptr_ctx, EH_PtrEnc encoding, U64 *ptr_out); +internal U64 eh_read_aug_data(String8 data, U64 off, String8 string, U64 pc, EH_PtrCtx *ptr_ctx, EH_Augmentation *aug_out); +internal U64 eh_read_cfi_header(String8 data, U64 off, DW_CFIHeader *cfi_header_out); +internal U64 eh_read_cie(String8 data, U64 off, DW_Format fmt, Arch arch, U64 pc, EH_PtrCtx *ptr_ctx, DW_CIE *cie_out); +internal U64 eh_read_fde(String8 data, U64 off, DW_Format fmt, Arch arch, U64 pc, EH_PtrCtx *ptr_ctx, DW_CIE *cie, DW_FDE *fde_out); + +internal int eh_frame_hdr_entry_sort(void *raw_a, void *raw_b); +internal String8 eh_frame_hdr_from_call_frame_info(Arena *arena, U64 fde_count, U64 *fde_offsets, struct DW_FDE *fde); + +//////////////////////////////// +//~ rjf: Enum -> String + +internal String8 eh_string_from_ptr_enc_type(EH_PtrEnc type); +internal String8 eh_string_from_ptr_enc_modifier(EH_PtrEnc modifier); +internal String8 eh_string_from_ptr_enc(Arena *arena, EH_PtrEnc enc); + +#endif // EH_FRAME_H + diff --git a/src/eh_frame/eh_frame_dump.c b/src/eh_frame/eh_frame_dump.c new file mode 100644 index 00000000..fad2a3a4 --- /dev/null +++ b/src/eh_frame/eh_frame_dump.c @@ -0,0 +1,152 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8List +eh_dump_list_from_data(Arena *arena, Arch arch, U64 eh_frame_hdr_vaddr, U64 eh_frame_vaddr, String8 eh_frame_hdr, String8 eh_frame, EH_DumpSubsetFlags subset_flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List strings = {0}; +#define dumpf(...) str8_list_pushf(arena, &strings, __VA_ARGS__) + + EH_PtrCtx ptr_ctx = {.data_vaddr = eh_frame_hdr_vaddr}; + EH_FrameHdr hdr = eh_parse_frame_hdr(eh_frame_hdr, byte_size_from_arch(arch), &ptr_ctx); + DW_ExtFlags exts = DW_ExtFlag_All; + + //- rjf: eh frame header + if(subset_flags & EH_DumpSubsetFlag_EhFrameHdr) + { + dumpf(".eh_frame_hdr:\n"); + dumpf("{\n"); + dumpf(" version: %u\n", hdr.version); + dumpf(" eh_frame_ptr_enc: %S\n", eh_string_from_ptr_enc(scratch.arena, hdr.eh_frame_ptr_enc)); + dumpf(" table_enc: %S\n", eh_string_from_ptr_enc(scratch.arena, hdr.table_enc)); + dumpf(" fde_count: %llu\n", hdr.fde_count); + if(hdr.eh_frame_ptr_enc != EH_PtrEnc_Omit) + { + dumpf(" eh_frame_ptr: 0x%I64x\n", hdr.eh_frame_ptr); + } + dumpf(" Entries:\n"); + dumpf(" {\n"); + for(U64 cursor = 0; cursor < hdr.table.size; ) + { + U64 entry_off = cursor; + U64 pc = 0; + U64 pc_size = eh_read_ptr(hdr.table, cursor, cursor, &ptr_ctx, hdr.table_enc, &pc); + if (pc_size == 0) { break; } + cursor += pc_size; + U64 fde_addr = 0; + U64 fde_addr_size = eh_read_ptr(hdr.table, cursor, cursor, &ptr_ctx, hdr.table_enc, &fde_addr); + if (fde_addr_size == 0) { break; } + cursor += fde_addr_size; + U64 fde_offset = fde_addr - eh_frame_vaddr; + dumpf(" { off=0x%04I64x, pc=0x%I64x, fde=0x%I64x }\n", entry_off, pc, fde_offset); + } + dumpf(" }\n"); + dumpf("}\n"); + } + + //- rjf: eh frame data + if(subset_flags & EH_DumpSubsetFlag_EhFrame) + { +#if 0 + dumpf(".eh_frame:\n"); + dumpf("{\n"); + for(U64 cursor = 0; cursor < eh_frame.size;) + { + DW_CFIHeader header = {0}; + U64 header_size = eh_read_cfi_header(eh_frame, cursor, &header); + switch(header.kind) + { + case DW_CFIKind_Null:{}break; + case DW_CFIKind_CIE: + { + DW_CIE cie = {0}; + eh_read_cie(eh_frame, header.entry_range.min, header.fmt, arch, eh_frame_vaddr + cursor, &ptr_ctx, &cie); + if(cie.version != 0) + { + String8List init_insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, DW_Version_5, ext, cie.format, 0, &cie, eh_decode_ptr, &ptr_ctx, cie.insts); + String8 aug_string = str8_substr(eh_frame, cie.aug_string_range); + dumpf(" CIE: // entry range: [0x%I64x, 0x%I64x)\n", header.entry_range.min, header.entry_range.max); + dumpf(" {\n"); + dumpf(" Format: %S\n", dw_string_from_format(desc.format)); + dumpf(" Version: %u\n", cie.version); + dumpf(" Aug string: \"%S\"\n", aug_string); + dumpf(" Code align: %I64u\n", cie.code_align_factor); + dumpf(" Data align: %I64d\n", cie.data_align_factor); + dumpf(" Return addr reg: %u\n", cie.ret_addr_reg); + if(cie.version > DW_Version_3) + { + dumpf(" Address size: %u\n", cie.address_size); + dumpf(" Segment selector size: %u\n", cie.segment_selector_size); + } + dumpf(" Initial Insturction:\n"); + dumpf(" {\n"); + for EachNode(n, String8Node, init_insts_str_list.first) + { + dumpf(" %S\n", n->string); + } + dumpf(" }\n"); + dumpf(" }\n"); + } + else + { + dumpf("ERROR: unable to parse CIE @ %I64x\n", header.entry_range.min); + } + }break; + case DW_CFIKind_FDE: + { + U64 cie_offset = header.cie_pointer_off - header.cie_pointer; + + DW_CIE cie = {0}; + { + DW_DescriptorEntry cie_desc = {0}; + eh_parse_descriptor_entry_header(eh_frame, cie_offset, &cie_desc); + if (cie_desc.type == DW_DescriptorEntryKind_CIE) { + String8 cie_data = str8_substr(eh_frame, cie_desc.entry_range); + eh_parse_cie(cie_data, cie_desc.format, arch, eh_frame_vaddr + cie_offset, &ptr_ctx, &cie); + } + } + + String8 fde_raw = str8_substr(eh_frame, desc.entry_range); + DW_FDE fde = {0}; + if (eh_parse_fde(fde_raw, desc.format, eh_frame_vaddr + cursor, &cie, &ptr_ctx, &fde)) { + String8List insts_str_list = dw_string_list_from_cfi_program(scratch.arena, 0, arch, hdr.version, ext, fde.format, 0, &cie, eh_decode_ptr, &ptr_ctx, fde.insts); + + dumpf(" FDE: // entry range: %r\n", desc.entry_range); + dumpf(" {\n"); + { + dumpf(" Format: %S\n", dw_string_from_format(fde.format)); + dumpf(" CIE: 0x%I64x\n", cie_offset); + dumpf(" PC range: %r\n", fde.pc_range); + dumpf(" Instructions:\n"); + dumpf(" {\n"); + for EachNode(n, String8Node, insts_str_list.first) { dumpf(" %S\n", n->string); } + dumpf(" }\n"); + + dumpf(" Unwind:\n"); + dumpf(" {\n"); + DW_CFI_Unwind *cfi_unwind = dw_cfi_unwind_init(scratch.arena, arch, &cie, &fde, eh_decode_ptr, &ptr_ctx); + do { + String8 cfa_str = dw_string_from_cfa(scratch.arena, arch, cie.address_size, hdr.version, ext, fde.format, cfi_unwind->row->cfa); + String8 cfi_row_str = dw_string_from_cfi_row(scratch.arena, arch, cie.address_size, hdr.version, ext, fde.format, cfi_unwind->row); + dumpf(" { PC: 0x%I64x, CFA: %-7S, Rules: { %S }\n", cfi_unwind->pc, cfa_str, cfi_row_str); + } while (dw_cfi_next_row(scratch.arena, cfi_unwind)); + dumpf(" }\n"); + } + } else { + dumpf("ERROR: unable to parse FDE @ %I64x\n", desc.entry_range.min); + } + dumpf(" }\n"); + } break; + } + + cursor += desc_size; + } + dumpf("}\n"); +#endif + } + +#undef dumpf + scratch_end(scratch); + return strings; +} diff --git a/src/eh_frame/eh_frame_dump.h b/src/eh_frame/eh_frame_dump.h new file mode 100644 index 00000000..7ded82bd --- /dev/null +++ b/src/eh_frame/eh_frame_dump.h @@ -0,0 +1,48 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef EH_FRAME_DUMP_H +#define EH_FRAME_DUMP_H + +//////////////////////////////// +//~ Dump Subset Types + +#define EH_DumpSubset_XList \ +X(EhFrameHdr, eh_frame_hdr, ".eh_frame_hdr") \ +X(EhFrame, eh_frame, ".eh_frame") + +typedef enum EH_DumpSubset { +#define X(name, name_lower, title) EH_DumpSubset_##name, + EH_DumpSubset_XList +#undef X +} EH_DumpSubset; + +typedef U32 EH_DumpSubsetFlags; +enum { +#define X(name, name_lower, title) EH_DumpSubsetFlag_##name = (1<unwind_info; + if(unwind_info != 0) + { + //- rjf: unpack context + EH_FrameHdr *header = &unwind_info->header; + EH_PtrCtx *ptr_ctx = &unwind_info->ptr_ctx; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 pc = arch_ip_from_reg_block(arch_info, regs); + + //- rjf: find nearest FDE entry to the IP + U64 fde_vaddr = 0; + if(header->version == 1 && header->fde_count != 0) + { + // rjf: binary search to find FDE number + U64 fde_num = 0; + { + U64 min_idx = 0; + U64 max_idx = header->fde_count-1; + for(;min_idx <= max_idx;) + { + U64 mid_idx = min_idx + (max_idx - min_idx) / 2; + U64 mid_pc_off = mid_idx*header->entry_byte_size; + U64 mid_pc = 0; + eh_read_ptr(header->table, mid_pc_off, ptr_ctx->pc_vaddr + mid_pc_off, ptr_ctx, header->table_enc, &mid_pc); + if(mid_pc > pc) + { + max_idx = mid_idx - 1; + } + else if(mid_pc < pc) + { + min_idx = mid_idx + 1; + } + else + { + fde_num = mid_idx + 1; + break; + } + } + if(fde_num == 0) + { + fde_num = min_idx > 0 ? min_idx : 1; + } + } + + // rjf: FDE number -> FDE vaddr + if(0 < fde_num && fde_num <= header->fde_count) + { + U64 fde_vaddr_off = ((fde_num-1) * header->entry_byte_size) + header->field_byte_size; + eh_read_ptr(header->table, fde_vaddr_off, ptr_ctx->pc_vaddr + fde_vaddr_off, ptr_ctx, header->table_enc, &fde_vaddr); + } + } + + //- rjf: parse info from FDE entry + DW_CIE cie = {0}; + DW_FDE fde = {0}; + U64 cie_inst_data_off = 0; + U64 fde_inst_data_off = 0; + String8 cie_inst_data = {0}; + String8 fde_inst_data = {0}; + if(fde_vaddr != 0) + { + // rjf: determine FDE's full address range + Rng1U64 fde_vaddr_range = {0}; + DW_Format fde_fmt = DW_Format_Null; + { + // rjf: read initial length data + String8 initial_length_data = {0}; + { + U8 *initial_length_data_buffer = push_array(scratch.arena, U8, 12); + Rng1U64 initial_length_vaddr_range = r1u64(fde_vaddr, fde_vaddr+12); + U64 initial_length_data_size = memory_map_read(memory_map, initial_length_vaddr_range, initial_length_data_buffer); + initial_length_data = str8(initial_length_data_buffer, initial_length_data_size); + if(initial_length_data_size < 4) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = initial_length_vaddr_range; + } + } + + // rjf: compute initial length + U64 length = 0; + if(!done) + { + dw2_read_initial_length(initial_length_data, 0, &length, &fde_fmt); + } + + // rjf: determine vaddr range of all FDE data + // + // TODO(rjf): are we sure this is supposed to *not* advance past the 8 byte length field + // when the initial 4 bytes are max_U32? this would mean that in 32-bit format, the length + // *does not* include the length encoding itself, but in 64-bit format, the length *does* + // include the length, but not the initial 4 bytes max_U32 marker. WTF? + // + fde_vaddr_range = r1u64(fde_vaddr, fde_vaddr + 4 + length); + } + + // rjf: read FDE data + String8 fde_data = {0}; + if(!done) + { + U64 fde_data_expected_size = dim_1u64(fde_vaddr_range); + U8 *fde_data_buffer = push_array(scratch.arena, U8, fde_data_expected_size); + U64 fde_data_size = memory_map_read(memory_map, fde_vaddr_range, fde_data_buffer); + if(fde_data_size != fde_data_expected_size) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = fde_vaddr_range; + } + fde_data = str8(fde_data_buffer, fde_data_size); + } + + // rjf: FDE data -> CIE address + U64 cie_vaddr = 0; + if(!done) + { + U64 cie_delta_off = (fde_fmt == DW_Format_32Bit ? 4 : 12); + U64 cie_delta = 0; + dw2_read_fmt_u64(fde_data, cie_delta_off, fde_fmt, &cie_delta); + cie_vaddr = (fde_vaddr + cie_delta_off) - cie_delta; + } + + // rjf: determine CIE's full address range + Rng1U64 cie_vaddr_range = {0}; + DW_Format cie_fmt = DW_Format_Null; + { + // rjf: read initial length data + String8 initial_length_data = {0}; + { + U8 *initial_length_data_buffer = push_array(scratch.arena, U8, 12); + Rng1U64 initial_length_vaddr_range = r1u64(cie_vaddr, cie_vaddr+12); + U64 initial_length_data_size = memory_map_read(memory_map, initial_length_vaddr_range, initial_length_data_buffer); + initial_length_data = str8(initial_length_data_buffer, initial_length_data_size); + if(initial_length_data_size < 4) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = initial_length_vaddr_range; + } + } + + // rjf: compute initial length + U64 length = 0; + if(!done) + { + dw2_read_initial_length(initial_length_data, 0, &length, &cie_fmt); + } + + // rjf: form full address range of CIE data + // + // TODO(rjf): is this busted? see above note in FDE parse + // + cie_vaddr_range = r1u64(cie_vaddr, cie_vaddr + 4 + length); + } + + // rjf: read CIE data + String8 cie_data = {0}; + if(!done) + { + U64 cie_data_expected_size = dim_1u64(cie_vaddr_range); + U8 *cie_data_buffer = push_array(scratch.arena, U8, cie_data_expected_size); + U64 cie_data_size = memory_map_read(memory_map, cie_vaddr_range, cie_data_buffer); + if(cie_data_size != cie_data_expected_size) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = cie_vaddr_range; + } + cie_data = str8(cie_data_buffer, cie_data_size); + } + + // rjf: parse CIE data, & FDE data + cie_inst_data_off = eh_read_cie(cie_data, 0, cie_fmt, arch, cie_vaddr_range.min, ptr_ctx, &cie); + fde_inst_data_off = eh_read_fde(fde_data, 0, fde_fmt, arch, fde_vaddr_range.min, ptr_ctx, &cie, &fde); + cie_inst_data = str8_skip(cie_data, cie_inst_data_off); + fde_inst_data = str8_skip(fde_data, fde_inst_data_off); + } + + //- rjf: parse CIE/FDE info, produce CFI row for this PC + U64 reg_count = dw_reg_count_from_arch(arch); + DW_CFIRow cfi_row = {0}; + cfi_row.reg_rules = push_array(scratch.arena, DW_UnwindRule, reg_count); + if(!done && contains_1u64(fde.pc_range, pc)) + { + U64 code_align_factor = cie.code_align_factor; + S64 data_align_factor = cie.data_align_factor; + DW_CFIRow initial_row = {0}; + initial_row.reg_rules = push_array(scratch.arena, DW_UnwindRule, reg_count); + DW_CFIRowNode *top_row = 0; + DW_CFIRowNode *free_row = 0; + struct + { + String8 inst_data; + U64 inst_data_off; + } + program_tasks[] = + { + {cie_inst_data, cie_inst_data_off}, + {fde_inst_data, fde_inst_data_off}, + }; + B32 computed_row = 0; + for EachElement(program_task_idx, program_tasks) + { + // rjf: exit if we computed the target row + if(computed_row) + { + break; + } + + // rjf: run unwind instruction program + String8 inst_data = program_tasks[program_task_idx].inst_data; + U64 inst_data_off = program_tasks[program_task_idx].inst_data_off; + for(U64 off = 0; off < inst_data.size;) + { + U64 start_off = off; + + // rjf: read next opcode + DW_CFAOpCode raw_opcode = DW_CFAOpCode_Nop; + off += str8_deserial_read_struct(inst_data, off, &raw_opcode); + + // rjf: unpack opcode (raw opcode can contain implicit operands) + DW_CFAOpCode opcode = raw_opcode & ~DW_CFAOpCodeMask_OpcodeHi; + U64 implicit_operand = 0; + if((raw_opcode & DW_CFAOpCodeMask_OpcodeHi) != 0) + { + opcode = (raw_opcode & DW_CFAOpCodeMask_OpcodeHi); + implicit_operand = raw_opcode & DW_CFAOpCodeMask_Operand; + } + + // rjf: apply opcode + U64 new_base_pc_off = cfi_row.base_pc_off; + switch(opcode) + { + default:{}break; + case DW_CFAOpCode_Nop:{}break; + + //- rjf: location adjustments + case DW_CFAOpCode_SetLoc: + { + off += eh_read_ptr(inst_data, off, ptr_ctx->pc_vaddr + inst_data_off + off, ptr_ctx, header->table_enc, &new_base_pc_off); + }break; + case DW_CFAOpCode_AdvanceLoc: + { + new_base_pc_off += implicit_operand * code_align_factor; + }break; + case DW_CFAOpCode_AdvanceLoc1: + { + U8 delta = 0; + off += str8_deserial_read_struct(inst_data, off, &delta); + new_base_pc_off += delta; + }break; + case DW_CFAOpCode_AdvanceLoc2: + { + U16 delta = 0; + off += str8_deserial_read_struct(inst_data, off, &delta); + new_base_pc_off += delta; + }break; + case DW_CFAOpCode_AdvanceLoc4: + { + U32 delta = 0; + off += str8_deserial_read_struct(inst_data, off, &delta); + new_base_pc_off += delta; + }break; + + //- rjf: row operations + case DW_CFAOpCode_RememberState: + { + // rjf: alloc row node + DW_CFIRowNode *n = free_row; + if(n != 0) + { + SLLStackPop(free_row); + } + else + { + n = push_array(scratch.arena, DW_CFIRowNode, 1); + n->v.reg_rules = push_array(scratch.arena, DW_UnwindRule, reg_count); + } + + // rjf: copy current state + n->v.base_pc_off = cfi_row.base_pc_off; + n->v.cfa_rule = cfi_row.cfa_rule; + MemoryCopy(n->v.reg_rules, cfi_row.reg_rules, sizeof(cfi_row.reg_rules[0])*reg_count); + + // rjf: push + SLLStackPush(top_row, n); + }break; + case DW_CFAOpCode_RestoreState: + if(top_row != 0) + { + // rjf: pop row + DW_CFIRowNode *n = top_row; + SLLStackPop(top_row); + + // rjf: copy to current state + cfi_row.base_pc_off = n->v.base_pc_off; + cfi_row.cfa_rule = n->v.cfa_rule; + MemoryCopy(cfi_row.reg_rules, n->v.reg_rules, sizeof(cfi_row.reg_rules[0])*reg_count); + + // rjf: free row + SLLStackPush(free_row, n); + }break; + + //- rjf: register rules + case DW_CFAOpCode_OffsetExt: + { + U64 reg = 0; + U64 reg_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_uleb128(inst_data, off, ®_off); + reg_off *= data_align_factor; + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_Off; + cfi_row.reg_rules[reg].s64 = (S64)reg_off; + } + }break; + case DW_CFAOpCode_OffsetExtSf: + { + U64 reg = 0; + S64 reg_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_sleb128(inst_data, off, ®_off); + reg_off *= data_align_factor; + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_Off; + cfi_row.reg_rules[reg].s64 = reg_off; + } + }break; + case DW_CFAOpCode_Undefined: + { + U64 reg = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_Undefined; + } + }break; + case DW_CFAOpCode_SameValue: + { + U64 reg = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_SameVal; + } + }break; + case DW_CFAOpCode_Register: + { + U64 dst_reg = 0; + U64 src_reg = 0; + off += str8_deserial_read_uleb128(inst_data, off, &dst_reg); + off += str8_deserial_read_uleb128(inst_data, off, &src_reg); + if(dst_reg < reg_count) + { + cfi_row.reg_rules[dst_reg].code = DW_UnwindRuleCode_Reg; + cfi_row.reg_rules[dst_reg].reg_code = src_reg; + } + }break; + case DW_CFAOpCode_Expr: + { + U64 reg = 0; + U64 expr_size = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_uleb128(inst_data, off, &expr_size); + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_Expr; + cfi_row.reg_rules[reg].expr = str8_substr(inst_data, r1u64(off, off+expr_size)); + } + }break; + case DW_CFAOpCode_ValOffset: + { + U64 reg = 0; + U64 val_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_uleb128(inst_data, off, &val_off); + val_off *= data_align_factor; + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_ValOff; + cfi_row.reg_rules[reg].s64 = (S64)val_off; + } + }break; + case DW_CFAOpCode_ValOffsetSf: + { + U64 reg = 0; + S64 val_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_sleb128(inst_data, off, &val_off); + val_off *= data_align_factor; + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_ValOff; + cfi_row.reg_rules[reg].s64 = val_off; + } + }break; + case DW_CFAOpCode_ValExpr: + { + U64 reg = 0; + U64 expr_size = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_uleb128(inst_data, off, &expr_size); + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_ValExpr; + cfi_row.reg_rules[reg].expr = str8_substr(inst_data, r1u64(off, off+expr_size)); + } + }break; + case DW_CFAOpCode_Offset: + { + U64 offset = 0; + off += str8_deserial_read_uleb128(inst_data, off, &offset); + offset *= data_align_factor; + U64 reg = implicit_operand; + if(reg < reg_count) + { + cfi_row.reg_rules[reg].code = DW_UnwindRuleCode_Off; + cfi_row.reg_rules[reg].s64 = (S64)offset; + } + }break; + + //- rjf: CFA rules + case DW_CFAOpCode_DefCfa: + { + U64 reg = 0; + U64 reg_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_uleb128(inst_data, off, ®_off); + cfi_row.cfa_rule.code = DW_UnwindRuleCode_Reg; + cfi_row.cfa_rule.reg_code = reg; + cfi_row.cfa_rule.s64 = (S64)reg_off; + }break; + case DW_CFAOpCode_DefCfaSf: + { + U64 reg = 0; + S64 reg_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + off += str8_deserial_read_sleb128(inst_data, off, ®_off); + cfi_row.cfa_rule.code = DW_UnwindRuleCode_Reg; + cfi_row.cfa_rule.reg_code = reg; + cfi_row.cfa_rule.s64 = (S64)(reg_off * data_align_factor); + }break; + case DW_CFAOpCode_DefCfaRegister: + { + U64 reg = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + cfi_row.cfa_rule.code = DW_UnwindRuleCode_Reg; + cfi_row.cfa_rule.reg_code = reg; + }break; + case DW_CFAOpCode_DefCfaOffset: + { + U64 reg_off = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®_off); + cfi_row.cfa_rule.s64 = (S64)reg_off; + }break; + case DW_CFAOpCode_DefCfaOffsetSf: + { + S64 reg_off = 0; + off += str8_deserial_read_sleb128(inst_data, off, ®_off); + cfi_row.cfa_rule.s64 = (S64)reg_off; + }break; + case DW_CFAOpCode_DefCfaExpr: + { + U64 expr_size = 0; + off += str8_deserial_read_uleb128(inst_data, off, &expr_size); + cfi_row.cfa_rule.code = DW_UnwindRuleCode_Expr; + cfi_row.cfa_rule.expr = str8_substr(inst_data, r1u64(off, off+expr_size)); + }break; + + //- rjf: register state resets + case DW_CFAOpCode_Restore: + { + U64 reg = implicit_operand; + if(reg < reg_count) + { + cfi_row.reg_rules[reg] = initial_row.reg_rules[reg]; + } + }break; + case DW_CFAOpCode_RestoreExt: + { + U64 reg = 0; + off += str8_deserial_read_uleb128(inst_data, off, ®); + if(reg < reg_count) + { + cfi_row.reg_rules[reg] = initial_row.reg_rules[reg]; + } + }break; + } + + // rjf: exit early if we found the CFI row for this pc + { + U64 pc_off = (pc - fde.pc_range.min); + if(cfi_row.base_pc_off <= pc_off && pc_off < new_base_pc_off) + { + computed_row = 1; + break; + } + } + + // rjf: commit changes to CFI row base pc + cfi_row.base_pc_off = new_base_pc_off; + + // rjf: abort if we made no parsing progress + if(off == start_off) + { + break; + } + } + + // rjf: on cie program -> save current state as 'initial state', to be + // potentially restored by fde + { + initial_row.base_pc_off = cfi_row.base_pc_off; + initial_row.cfa_rule = cfi_row.cfa_rule; + MemoryCopy(initial_row.reg_rules, cfi_row.reg_rules, sizeof(initial_row.reg_rules[0])*reg_count); + } + } + } + + //- rjf: evaluate frame base vaddr (CFA) via CFI row rule + U64 cfa = 0; + if(!done) switch(cfi_row.cfa_rule.code) + { + default:{}break; + case DW_UnwindRuleCode_Reg: + { + U64 cfa_reg_val = 0; + DW_RegCode dw_reg_code = cfi_row.cfa_rule.reg_code; + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, dw_reg_code); + arch_reg_block_read_range(arch_info, regs, arch_info->reg_code_rng_table[reg_code], &cfa_reg_val); + cfa = cfa_reg_val + cfi_row.cfa_rule.s64; + }break; + case DW_UnwindRuleCode_Expr: + { + String8 expr = cfi_row.cfa_rule.expr; + DW_EvalState eval_state = {0}; + DW_Eval eval = dw_eval(scratch.arena, cie.format, arch, memory_map, regs, 0, 0, tls_vaddr, &eval_state, expr, 1000); + if(eval.status == DW_EvalStatus_FailedMemoryRead) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = eval.missed_read_vaddr_range; + } + else + { + cfa = eval.val.u512.u64[0]; + } + }break; + } + + //- rjf: apply CFI row rules to registers + if(!done) for EachIndex(reg_idx, reg_count) + { + DW_UnwindRule *rule = &cfi_row.reg_rules[reg_idx]; + ARCH_RegCode reg_code = arch_reg_code_from_dw(arch, reg_idx); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 reg_size = dim_1u16(reg_rng); + switch(rule->code) + { + default: + case DW_UnwindRuleCode_SameVal:{}break; + case DW_UnwindRuleCode_Undefined: + { + MemoryZero((U8 *)regs + reg_rng.min, reg_size); + }break; + case DW_UnwindRuleCode_Off: + { + Temp temp = temp_begin(scratch.arena); + U64 addr = cfa + rule->s64; + Rng1U64 reg_value_vaddr_range = r1u64(addr, addr+reg_size); + U8 *reg_value_buffer = push_array(temp.arena, U8, reg_size); + if(memory_map_read(memory_map, reg_value_vaddr_range, reg_value_buffer) != reg_size) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = reg_value_vaddr_range; + } + if(!done) + { + arch_reg_block_write_range(arch_info, regs, reg_rng, reg_value_buffer); + } + temp_end(temp); + }break; + case DW_UnwindRuleCode_ValOff: + { + U64 reg_value = cfa + rule->s64; + Rng1U16 write_range = r1u16(reg_rng.min, Min(reg_rng.max, reg_rng.min + sizeof(reg_value))); + arch_reg_block_write_range(arch_info, regs, write_range, ®_value); + }break; + case DW_UnwindRuleCode_Reg: + { + Temp temp = temp_begin(scratch.arena); + DW_RegCode src_reg_code_dw = rule->reg_code; + ARCH_RegCode src_reg_code = arch_reg_code_from_dw(arch, src_reg_code_dw); + Rng1U16 src_reg_rng = arch_info->reg_code_rng_table[src_reg_code]; + U64 src_reg_size = dim_1u16(src_reg_rng); + U64 read_size = Min(src_reg_size, reg_size); + U8 *src_reg_val_buffer = push_array(temp.arena, U8, read_size); + arch_reg_block_read_range(arch_info, regs, src_reg_rng, src_reg_val_buffer); + arch_reg_block_write_range(arch_info, regs, reg_rng, src_reg_val_buffer); + temp_end(temp); + }break; + case DW_UnwindRuleCode_Expr: + { + Temp temp = temp_begin(scratch.arena); + String8 expr = rule->expr; + DW_EvalState eval_state = {0}; + DW_Eval eval = dw_eval(scratch.arena, cie.format, arch, memory_map, regs, 0, cfa, tls_vaddr, &eval_state, expr, 1000); + if(eval.status == DW_EvalStatus_FailedMemoryRead) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = eval.missed_read_vaddr_range; + } + if(!done) + { + U64 reg_val_vaddr = eval.val.u512.u64[0]; + Rng1U64 reg_value_vaddr_range = r1u64(reg_val_vaddr, reg_val_vaddr+reg_size); + U8 *reg_value_buffer = push_array(temp.arena, U8, reg_size); + if(memory_map_read(memory_map, reg_value_vaddr_range, reg_value_buffer) != reg_size) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = reg_value_vaddr_range; + } + else + { + arch_reg_block_write_range(arch_info, regs, reg_rng, reg_value_buffer); + } + } + temp_end(temp); + }break; + case DW_UnwindRuleCode_ValExpr: + { + Temp temp = temp_begin(scratch.arena); + String8 expr = rule->expr; + DW_EvalState eval_state = {0}; + DW_Eval eval = dw_eval(scratch.arena, cie.format, arch, memory_map, regs, 0, cfa, tls_vaddr, &eval_state, expr, 1000); + if(eval.status == DW_EvalStatus_FailedMemoryRead) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = eval.missed_read_vaddr_range; + } + if(!done) + { + U512 reg_val = eval.val.u512; + arch_reg_block_write_range(arch_info, regs, reg_rng, ®_val); + } + temp_end(temp); + }break; + case DW_UnwindRuleCode_Architectural: + { + // NOTE(rjf): the DWARF spec says that this code implies: + // + // "The rule is defined externally to this specification by the augmenter" + // + // so leaving this blank until we know exactly what that means. + }break; + } + } + + //- TODO(rjf): old code was replacing the stack pointer with the CFA. + // this is surely incorrect, no? isn't the entire point of the CFA + // to be *not* necessarily the stack pointer? and wouldn't the stack + // pointer be modified via the above rules? so what are we doing + // here? + // + if(!done) + { + arch_reg_block_write_sp(arch_info, regs, cfa); + } + + //- rjf: commit new register values, if we succeeded + if(!done) + { + result.status = UWND_StepStatus_Good; + } + } + scratch_end(scratch); + return result; +} diff --git a/src/eh_frame/unwind/eh_frame_unwind.h b/src/eh_frame/unwind/eh_frame_unwind.h new file mode 100644 index 00000000..d83bb5a4 --- /dev/null +++ b/src/eh_frame/unwind/eh_frame_unwind.h @@ -0,0 +1,22 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef EH_FRAME_UNWIND_H +#define EH_FRAME_UNWIND_H + +//////////////////////////////// +//~ rjf: Module Unwind Info Type + +typedef struct EH_UWND_ModuleUnwindInfo EH_UWND_ModuleUnwindInfo; +struct EH_UWND_ModuleUnwindInfo +{ + EH_FrameHdr header; + EH_PtrCtx ptr_ctx; +}; + +//////////////////////////////// +//~ rjf: Unwinding Abstraction Implementation + +internal UWND_StepResult eh_uwnd_step(Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info, U64 tls_vaddr, void *regs, U64 *cfa_out); + +#endif // EH_FRAME_UNWIND_H diff --git a/src/elf/elf.c b/src/elf/elf.c index 2eb6d0b3..e9e67346 100644 --- a/src/elf/elf.c +++ b/src/elf/elf.c @@ -112,6 +112,15 @@ elf_chdr64_from_chdr32(ELF_Chdr32 chdr32) return chdr64; } +internal ELF_Auxv64 +elf_auxv64_from_auxv32(ELF_Auxv32 auxv32) +{ + ELF_Auxv64 auxv64 = {0}; + auxv64.a_type = auxv32.a_type; + auxv64.a_val = auxv32.a_val; + return auxv64; +} + //////////////////////////////// internal String8 @@ -141,3 +150,144 @@ arch_from_elf_machine(ELF_MachineKind e_machine) } return arch; } + +//////////////////////////////// + +internal U64 +elf_phdr_size_from_class(ELF_Class elf_class) +{ + U64 result = 0; + switch (elf_class) { + case ELF_Class_None: break; + case ELF_Class_32: { result = sizeof(ELF_Phdr32); } break; + case ELF_Class_64: { result = sizeof(ELF_Phdr64); } break; + default: { NotImplemented; } break; + } + return result; +} + +internal U64 +elf_dyn_size_from_class(ELF_Class elf_class) +{ + U64 result = 0; + switch (elf_class) { + case ELF_Class_None: break; + case ELF_Class_32: { result = sizeof(ELF_Dyn32); } break; + case ELF_Class_64: { result = sizeof(ELF_Dyn64); } break; + default: { NotImplemented; } break; + } + return result; +} + +//////////////////////////////// + +internal MachineOpResult +elf_read_ehdr(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Hdr64 *ehdr_out) +{ + U8 e_ident[ELF_Identifier_Max] = {0}; + MachineOpResult result = mem_read(addr, &e_ident, sizeof(e_ident), mem_read_ud); + if (result == MachineOpResult_Ok) { + if (str8_match(str8_prefix(str8_array_fixed(e_ident), elf_magic_string.size), elf_magic_string, 0)) { + switch (e_ident[ELF_Identifier_Class]) { + default: { InvalidPath; }break; + case ELF_Class_None: { }break; + case ELF_Class_32: { + ELF_Hdr32 ehdr32 = {0}; + result = mem_read(addr, &ehdr32, sizeof(ehdr32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *ehdr_out = elf_hdr64_from_hdr32(ehdr32); + } + } break; + case ELF_Class_64: { + result = mem_read(addr, ehdr_out, sizeof(*ehdr_out), mem_read_ud); + } break; + } + } + } + return result; +} + +internal MachineOpResult +elf_read_phdr(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Phdr64 *phdr_out) +{ + MachineOpResult result = MachineOpResult_Fail; + switch (elf_class) { + case ELF_Class_None: break; + case ELF_Class_32: { + ELF_Phdr32 phdr32 = {0}; + result = mem_read(addr, &phdr32, sizeof(phdr32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *phdr_out = elf_phdr64_from_phdr32(phdr32); + } + } break; + case ELF_Class_64: { + result = mem_read(addr, phdr_out, sizeof(*phdr_out), mem_read_ud); + } break; + default: { NotImplemented; } break; + } + return result; +} + +internal MachineOpResult +elf_read_shdr(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Shdr64 *shdr_out) +{ + MachineOpResult result = MachineOpResult_Fail; + switch (elf_class) { + case ELF_Class_None: break; + case ELF_Class_32: { + ELF_Shdr32 shdr32 = {0}; + result = mem_read(addr, &shdr32, sizeof(shdr32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *shdr_out = elf_shdr64_from_shdr32(shdr32); + } + } break; + case ELF_Class_64: { + result = mem_read(addr, shdr_out, sizeof(*shdr_out), mem_read_ud); + } break; + default: { NotImplemented; } break; + } + return result; +} + +internal MachineOpResult +elf_read_dyn(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Dyn64 *dyn_out) +{ + MachineOpResult result = MachineOpResult_Fail; + switch (elf_class) { + case ELF_Class_None: {} break; + case ELF_Class_32: { + ELF_Dyn32 dyn32 = {0}; + result = mem_read(addr, &dyn32, sizeof(dyn32), mem_read_ud); + if (result == MachineOpResult_Fail) { + *dyn_out = elf_dyn64_from_dyn32(dyn32); + } + } break; + case ELF_Class_64: { + result = mem_read(addr, dyn_out, sizeof(*dyn_out), mem_read_ud); + } break; + default: { NotImplemented; } break; + } + return result; +} + +internal MachineOpResult +elf_read_symbol(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Sym64 *symbol_out) +{ + MachineOpResult result = MachineOpResult_Fail; + switch (elf_class) { + case ELF_Class_None: {} break; + case ELF_Class_32: { + ELF_Sym32 symbol32 = {0}; + result = mem_read(addr, &symbol32, sizeof(symbol32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *symbol_out = elf_sym64_from_sym32(symbol32); + } + }break; + case ELF_Class_64: { + result = mem_read(addr, symbol_out, sizeof(*symbol_out), mem_read_ud); + }break; + default: { NotImplemented; } break; + } + return result; +} + diff --git a/src/elf/elf.h b/src/elf/elf.h index 14955224..1a32fbce 100644 --- a/src/elf/elf.h +++ b/src/elf/elf.h @@ -106,6 +106,20 @@ enum ELF_Data_2MSB = 2, }; +typedef U16 ELF_Type; +enum +{ + ELF_Type_None = 0, + ELF_Type_Rel = 1, + ELF_Type_Exec = 2, + ELF_Type_Dyn = 3, + ELF_Type_Core = 4, + ELF_Type_LoOs = 0xfe00, + ELF_Type_HiOs = 0xff00, + ELF_Type_LoProc = 0xff00, + ELF_Type_HiProc = 0xffff +}; + typedef U32 ELF_PType; enum { @@ -123,15 +137,10 @@ enum ELF_PType_LowProc = 0x70000000, ELF_PType_HighProc = 0x7fffffff, - // specific to Sun - ELF_PType_LowSunW = 0x6ffffffa, - ELF_PType_SunWBSS = 0x6ffffffb, - ELF_PType_GnuEHFrame = 0x6474E550, - - ELF_PType_GnuStack = ELF_PType_LoOs + 0x474e550, // frame unwind information - ELF_PType_GnuRelro = ELF_PType_LoOs + 0x474e551, // stack flags - ELF_PType_GnuProperty = ELF_PType_LoOs + 0x474e552, // read-only after relocations - ELF_PType_SunEHFrame = ELF_PType_GnuEHFrame, + ELF_PType_GnuEHFrame = ELF_PType_LoOs + 0x474E550, // segment with .eh_frame_hdr + ELF_PType_GnuStack = ELF_PType_LoOs + 0x474e551, // frame unwind information + ELF_PType_GnuRelro = ELF_PType_LoOs + 0x474e552, // stack flags + ELF_PType_GnuProperty = ELF_PType_LoOs + 0x474e553, // read-only after relocations }; typedef U32 ELF_PFlag; @@ -142,40 +151,42 @@ enum ELF_PFlag_Read = (1 << 2), }; -typedef U32 ELF_SectionCode; +typedef U32 ELF_ShType; enum { - ELF_SectionCode_Null = 0, - ELF_SectionCode_ProgBits = 1, - ELF_SectionCode_Symtab = 2, - ELF_SectionCode_Strtab = 3, - ELF_SectionCode_Rela = 4, - ELF_SectionCode_Hash = 5, - ELF_SectionCode_Dynamic = 6, - ELF_SectionCode_Note = 7, - ELF_SectionCode_NoBits = 8, - ELF_SectionCode_Rel = 9, - ELF_SectionCode_Shlib = 10, - ELF_SectionCode_Dynsym = 11, - ELF_SectionCode_InitArray = 14, - ELF_SectionCode_FiniArray = 15, // Array of ptrs to init functions - ELF_SectionCode_PreinitArray = 16, // Array of ptrs to finish functions - ELF_SectionCode_Group = 17, // Array of ptrs to pre-init funcs - ELF_SectionCode_SymtabShndx = 18, // Section contains a section group - ELF_SectionCode_GNU_IncrementalInputs = 0x6fff4700, // Indices for SHN_XINDEX entries - ELF_SectionCode_GNU_Attributes = 0x6ffffff5, // Incremental build data - ELF_SectionCode_GNU_Hash = 0x6ffffff6, // Object attributes - ELF_SectionCode_GNU_LibList = 0x6ffffff7, // GNU style symbol hash table - ELF_SectionCode_SUNW_verdef = 0x6ffffffd, - ELF_SectionCode_SUNW_verneed = 0x6ffffffe, // Versions defined by file - ELF_SectionCode_SUNW_versym = 0x6fffffff, // Versions needed by file + ELF_ShType_Null = 0, + ELF_ShType_ProgBits = 1, + ELF_ShType_Symtab = 2, + ELF_ShType_Strtab = 3, + ELF_ShType_Rela = 4, + ELF_ShType_Hash = 5, + ELF_ShType_Dynamic = 6, + ELF_ShType_Note = 7, + ELF_ShType_NoBits = 8, + ELF_ShType_Rel = 9, + ELF_ShType_Shlib = 10, + ELF_ShType_Dynsym = 11, + ELF_ShType_InitArray = 14, + ELF_ShType_FiniArray = 15, // Array of ptrs to init functions + ELF_ShType_PreinitArray = 16, // Array of ptrs to finish functions + ELF_ShType_Group = 17, // Array of ptrs to pre-init funcs + ELF_ShType_SymtabShndx = 18, // Section contains a section group + + ELF_ShType_GNU_IncrementalInputs = 0x6fff4700, // Indices for SHN_XINDEX entries + ELF_ShType_GNU_Attributes = 0x6ffffff5, // Incremental build data + ELF_ShType_GNU_Hash = 0x6ffffff6, // Object attributes + ELF_ShType_GNU_LibList = 0x6ffffff7, // GNU style symbol hash table + + ELF_ShType_SUNW_verdef = 0x6ffffffd, + ELF_ShType_SUNW_verneed = 0x6ffffffe, // Versions defined by file + ELF_ShType_SUNW_versym = 0x6fffffff, // Versions needed by file // Symbol versions - ELF_SectionCode_GNU_verdef = ELF_SectionCode_SUNW_verdef, - ELF_SectionCode_GNU_verneed = ELF_SectionCode_SUNW_verneed, - ELF_SectionCode_GNU_versym = ELF_SectionCode_SUNW_versym, - ELF_SectionCode_Proc, - ELF_SectionCode_User, + ELF_ShType_GNU_verdef = ELF_ShType_SUNW_verdef, + ELF_ShType_GNU_verneed = ELF_ShType_SUNW_verneed, + ELF_ShType_GNU_versym = ELF_ShType_SUNW_versym, + ELF_ShType_Proc, + ELF_ShType_User, }; typedef U32 ELF_SectionIndex; @@ -205,7 +216,7 @@ enum ELF_SectionIndex_MIPS_SUndefined = 0xff04, }; -typedef U32 ELF_SectionFlag; +typedef U32 ELF_SectionFlags; enum { ELF_Shf_Write = (1 << 0), @@ -518,140 +529,7 @@ enum typedef U32 ELF_NoteType; enum { - ELF_NoteType_GNU_Abi = 1, - ELF_NoteType_GNU_HwCap = 2, - ELF_NoteType_GNU_BuildId = 3, - ELF_NoteType_GNU_GoldVersion = 4, - ELF_NoteType_GNU_PropertyType0 = 5, -}; - -typedef U32 ELF_GnuABITag; -enum -{ - ELF_GnuABITag_Linux = 0, - ELF_GnuABITag_Hurd = 1, - ELF_GnuABITag_Solaris = 2, - ELF_GnuABITag_FreeBsd = 3, - ELF_GnuABITag_NetBsd = 4, - ELF_GnuABITag_Syllable = 5, - ELF_GnuABITag_Nacl = 6, -}; - -typedef S32 ELF_GnuProperty; -enum -{ - ELF_GnuProperty_LoProc = 0xc0000000, - // processor-specific range - ELF_GnuProperty_HiProc = 0xdfffffff, - ELF_GnuProperty_LoUser = 0xe0000000, - // application-specific range - ELF_GnuProperty_HiUser = 0xffffffff, - ELF_GnuProperty_StackSize = 1, - ELF_GnuProperty_NoCopyOnProtected = 2, -}; - -typedef U32 ELF_GnuPropertyX86Isa1; -enum -{ - ELF_GnuPropertyX86Isa1_BaseLine = (1 << 0), - ELF_GnuPropertyX86Isa1_V2 = (1 << 1), - ELF_GnuPropertyX86Isa1_V3 = (1 << 2), - ELF_GnuPropertyX86Isa1_V4 = (1 << 3), -}; - -typedef U32 ELF_GnuPropertyX86Compat1Isa1; -enum -{ - ELF_GnuPropertyX86Compat1Isa1_486 = (1 << 0), - ELF_GnuPropertyX86Compat1Isa1_586 = (1 << 1), - ELF_GnuPropertyX86Compat1Isa1_686 = (1 << 2), - ELF_GnuPropertyX86Compat1Isa1_SSE = (1 << 3), - ELF_GnuPropertyX86Compat1Isa1_SSE2 = (1 << 4), - ELF_GnuPropertyX86Compat1Isa1_SSE3 = (1 << 5), - ELF_GnuPropertyX86Compat1Isa1_SSSE3 = (1 << 6), - ELF_GnuPropertyX86Compat1Isa1_SSE4_1 = (1 << 7), - ELF_GnuPropertyX86Compat1Isa1_SSE4_2 = (1 << 8), - ELF_GnuPropertyX86Compat1Isa1_AVX = (1 << 9), - ELF_GnuPropertyX86Compat1Isa1_AVX2 = (1 << 10), - ELF_GnuPropertyX86Compat1Isa1_AVX512F = (1 << 11), - ELF_GnuPropertyX86Compat1Isa1_AVX512ER = (1 << 12), - ELF_GnuPropertyX86Compat1Isa1_AVX512PF = (1 << 13), - ELF_GnuPropertyX86Compat1Isa1_AVX512VL = (1 << 14), - ELF_GnuPropertyX86Compat1Isa1_AVX512DQ = (1 << 15), - ELF_GnuPropertyX86Compat1Isa1_AVX512BW = (1 << 16), -}; - -typedef U32 ELF_GnuPropertyX86Compat2Isa1; -enum -{ - ELF_GnuPropertyX86Compat2Isa1_CMOVE = (1 << 0), - ELF_GnuPropertyX86Compat2Isa1_SSE = (1 << 1), - ELF_GnuPropertyX86Compat2Isa1_SSE2 = (1 << 2), - ELF_GnuPropertyX86Compat2Isa1_SSE3 = (1 << 3), - ELF_GnuPropertyX86Compat2Isa1_SSE4_1 = (1 << 4), - ELF_GnuPropertyX86Compat2Isa1_SSE4_2 = (1 << 5), - ELF_GnuPropertyX86Compat2Isa1_AVX = (1 << 6), - ELF_GnuPropertyX86Compat2Isa1_AVX2 = (1 << 7), - ELF_GnuPropertyX86Compat2Isa1_FMA = (1 << 8), - ELF_GnuPropertyX86Compat2Isa1_AVX512F = (1 << 9), - ELF_GnuPropertyX86Compat2Isa1_AVX512CD = (1 << 10), - ELF_GnuPropertyX86Compat2Isa1_AVX512ER = (1 << 11), - ELF_GnuPropertyX86Compat2Isa1_AVX512PF = (1 << 12), - ELF_GnuPropertyX86Compat2Isa1_AVX512VL = (1 << 13), - ELF_GnuPropertyX86Compat2Isa1_AVX512DQ = (1 << 14), - ELF_GnuPropertyX86Compat2Isa1_AVX512BW = (1 << 15), - ELF_GnuPropertyX86Compat2Isa1_AVX512_4FMAPS = (1 << 16), - ELF_GnuPropertyX86Compat2Isa1_AVX512_4VNNIW = (1 << 17), - ELF_GnuPropertyX86Compat2Isa1_AVX512_BITALG = (1 << 18), - ELF_GnuPropertyX86Compat2Isa1_AVX512_IFMA = (1 << 19), - ELF_GnuPropertyX86Compat2Isa1_AVX512_VBMI = (1 << 20), - ELF_GnuPropertyX86Compat2Isa1_AVX512_VBMI2 = (1 << 21), - ELF_GnuPropertyX86Compat2Isa1_AVX512_VNNI = (1 << 22), - ELF_GnuPropertyX86Compat2Isa1_AVX512_BF16 = (1 << 23), -}; - -typedef S32 ELF_GnuPropertyX86; -enum -{ - ELF_GnuPropertyX86_Feature1And = 0xc0000002, - ELF_GnuPropertyX86_Feature2Used = 0xc0010001, - ELF_GnuPropertyX86_Isa1needed = 0xc0008002, - ELF_GnuPropertyX86_Isa2Needed = 0xc0008001, - ELF_GnuPropertyX86_Isa1Used = 0xc0010002, - ELF_GnuPropertyX86_Compat_isa_1_used = 0xc0000000, - ELF_GnuPropertyX86_Compat_isa_1_needed = 0xc0000001, - ELF_GnuPropertyX86_UInt32AndLo = ELF_GnuPropertyX86_Feature1And, - ELF_GnuPropertyX86_UInt32AndHi = 0xc0007fff, - ELF_GnuPropertyX86_UInt32OrLo = 0xc0008000, - ELF_GnuPropertyX86_UInt32OrHi = 0xc000ffff, - ELF_GnuPropertyX86_UInt32OrAndLo = 0xc0010000, - ELF_GnuPropertyX86_UInt32OrAndHi = 0xc0017fff, -}; - -typedef U32 ELF_GnuPropertyX86Feature1; -enum -{ - ELF_GnuPropertyX86Feature1_Ibt = (1 << 0), - ELF_GnuPropertyX86Feature1_Shstk = (1 << 1), - ELF_GnuPropertyX86Feature1_LamU48 = (1 << 2), - ELF_GnuPropertyX86Feature1_LamU57 = (1 << 3), -}; - -typedef U32 ELF_GnuPropertyX86Feature2; -enum -{ - ELF_GnuPropertyX86Feature2_X86 = (1 << 0), - ELF_GnuPropertyX86Feature2_X87 = (1 << 1), - ELF_GnuPropertyX86Feature2_MMX = (1 << 2), - ELF_GnuPropertyX86Feature2_XMM = (1 << 3), - ELF_GnuPropertyX86Feature2_YMM = (1 << 4), - ELF_GnuPropertyX86Feature2_ZMM = (1 << 5), - ELF_GnuPropertyX86Feature2_FXSR = (1 << 6), - ELF_GnuPropertyX86Feature2_XSAVE = (1 << 7), - ELF_GnuPropertyX86Feature2_XSAVEOPT = (1 << 8), - ELF_GnuPropertyX86Feature2_XSAVEC = (1 << 9), - ELF_GnuPropertyX86Feature2_TMM = (1 << 10), - ELF_GnuPropertyX86Feature2_MASK = (1 << 11), + ELF_NoteType_STapSdt = 3, // System Tap probes }; #define ELF_HdrIs64Bit(e_ident) (e_ident[ELF_Identifier_Class] == ELF_Class_64) @@ -674,20 +552,6 @@ typedef enum ELF_Identifier read_only global U8 elf_magic[] = {0x7f, 'E', 'L', 'F'}; read_only global String8 elf_magic_string = {elf_magic, sizeof(elf_magic)}; -typedef U16 ELF_Type; -typedef enum ELF_TypeEnum -{ - ELF_Type_None = 0, - ELF_Type_Rel = 1, - ELF_Type_Exec = 2, - ELF_Type_Dyn = 3, - ELF_Type_Core = 4, - ELF_Type_LoOs = 0xfe00, - ELF_Type_HiOs = 0xfeff, - ELF_Type_LoProc = 0xff00, - ELF_Type_HiProc = 0xffff, -} ELF_TypeEnum; - typedef struct ELF_Hdr64 { U8 e_ident[ELF_Identifier_Max]; @@ -726,30 +590,30 @@ typedef struct ELF_Hdr32 typedef struct ELF_Shdr64 { - U32 sh_name; - U32 sh_type; - U64 sh_flags; - U64 sh_addr; - U64 sh_offset; - U64 sh_size; - U32 sh_link; - U32 sh_info; - U64 sh_addralign; - U64 sh_entsize; + U32 sh_name; + ELF_ShType sh_type; + U64 sh_flags; + U64 sh_addr; + U64 sh_offset; + U64 sh_size; + U32 sh_link; + U32 sh_info; + U64 sh_addralign; + U64 sh_entsize; } ELF_Shdr64; typedef struct ELF_Shdr32 { - U32 sh_name; - U32 sh_type; - U32 sh_flags; - U32 sh_addr; - U32 sh_offset; - U32 sh_size; - U32 sh_link; - U32 sh_info; - U32 sh_addralign; - U32 sh_entsize; + U32 sh_name; + ELF_ShType sh_type; + U32 sh_flags; + U32 sh_addr; + U32 sh_offset; + U32 sh_size; + U32 sh_link; + U32 sh_info; + U32 sh_addralign; + U32 sh_entsize; } ELF_Shdr32; typedef struct ELF_Phdr64 @@ -810,22 +674,6 @@ typedef struct ELF_Dyn64 U64 val; } ELF_Dyn64; -typedef struct ELF_LinkMap32 -{ - U32 base; - U32 name; - U32 ld; - U32 next; -} ELF_LinkMap32; - -typedef struct ELF_LinkMap64 -{ - U64 base; - U64 name; - U64 ld; - U64 next; -} ELF_LinkMap64; - //////////////////////////////// // Imports and Exports @@ -936,15 +784,6 @@ typedef struct U16 vs_vers; } ELF_ExternalVersym; -typedef struct -{ - U32 name_size; - U32 desc_size; - U32 type; - // name + desc - // U8 data[1]; -} ELF_Note; - //////////////////////////////// // Extensions @@ -987,6 +826,7 @@ internal ELF_Sym64 elf_sym64_from_sym32 (ELF_Sym32 sym32); internal ELF_Rel64 elf_rel64_from_rel32 (ELF_Rel32 rel32); internal ELF_Rela64 elf_rela64_from_rela32(ELF_Rela32 rela32); internal ELF_Chdr64 elf_chdr64_from_chdr32(ELF_Chdr32 chdr32); +internal ELF_Auxv64 elf_auxv64_from_auxv32(ELF_Auxv32 auxv32); //////////////////////////////// @@ -996,4 +836,18 @@ internal String8 elf_string_from_class(Arena *arena, ELF_Class v); internal Arch arch_from_elf_machine(ELF_MachineKind machine); +//////////////////////////////// + +internal U64 elf_phdr_size_from_class(ELF_Class elf_class); +internal U64 elf_dyn_size_from_class(ELF_Class elf_class); + +//////////////////////////////// +//~ Compat Readers + +internal MachineOpResult elf_read_ehdr (MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Hdr64 *ehdr_out); +internal MachineOpResult elf_read_phdr (MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Phdr64 *phdr_out); +internal MachineOpResult elf_read_shdr (MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Shdr64 *shdr_out); +internal MachineOpResult elf_read_dyn (MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Dyn64 *dyn_out); +internal MachineOpResult elf_read_symbol(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, ELF_Class elf_class, ELF_Sym64 *symbol_out); + #endif // ELF_H diff --git a/src/elf/elf_dump.c b/src/elf/elf_dump.c new file mode 100644 index 00000000..b7e530ca --- /dev/null +++ b/src/elf/elf_dump.c @@ -0,0 +1,215 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8List +elf_dump_note(Arena *arena, String8 raw_notes, ELF_Class elf_class, ELF_MachineKind e_machine) +{ + Temp scratch = scratch_begin(&arena, 1); + + B32 is_bad_parse = 1; + String8List strings = {0}; + U64 cursor = 0; + + for (;cursor < raw_notes.size;) { + U32 owner_size; + U64 owner_size_size = str8_deserial_read_struct(raw_notes, cursor, &owner_size); + if (owner_size_size == 0) { goto exit; } + cursor += owner_size_size; + + U32 desc_size; + U64 desc_size_size = str8_deserial_read_struct(raw_notes, cursor, &desc_size); + if (desc_size_size == 0) { goto exit; } + cursor += desc_size_size; + + ELF_NoteType note_type; + U64 type_size = str8_deserial_read_struct(raw_notes, cursor, ¬e_type); + if (type_size == 0) { goto exit; } + cursor += type_size; + + if (cursor + owner_size > raw_notes.size) { goto exit; } + String8 owner = str8_cstring_capped(raw_notes.str + cursor, raw_notes.str + cursor + owner_size); + cursor += owner_size; + + if (cursor + desc_size > raw_notes.size) { goto exit; } + String8 raw_desc = str8_substr(raw_notes, r1u64(cursor, cursor + desc_size)); + cursor += desc_size; + cursor = AlignPow2(cursor, 4); + + String8List desc_fmt = {0}; + String8 note_type_str = {0}; + if (str8_match(owner, str8_lit("GNU"), StringMatchFlag_CaseInsensitive)) { + // format description + switch (note_type) { + case GNU_NoteType_Abi: { + U64 desc_cursor = 0; + + GNU_AbiTag os = 0; + U64 os_size = str8_deserial_read_struct(raw_desc, desc_cursor, &os); + if (os_size == 0) { goto exit; } + cursor += os_size; + + U32 major = 0; + U64 major_size = str8_deserial_read_struct(raw_desc, desc_cursor, &major); + if (major_size == 0) { goto exit; } + cursor += major_size; + + U32 minor = 0; + U64 minor_size = str8_deserial_read_struct(raw_desc, desc_cursor, &minor); + if (minor_size == 0) { goto exit; } + cursor += minor_size; + + U32 sub_minor = 0; + U64 sub_minor_size = str8_deserial_read_struct(raw_desc, desc_cursor, &sub_minor); + if (sub_minor_size == 0) { goto exit; } + cursor += sub_minor_size; + + String8 os_str = gnu_string_from_abi_tag(os); + if (os_str.size == 0) os_str = str8f(scratch.arena, "0x%x", os); + + str8_list_pushf(scratch.arena, &desc_fmt, "OS: %S, ABI: %u.%u.%u", os_str, major, minor, sub_minor); + } break; + case GNU_NoteType_BuildId: { + String8List build_id = {0}; + for EachIndex(desc_cursor, desc_size) { + U8 v = 0; + U64 v_size = str8_deserial_read_struct(raw_desc, desc_cursor, &v); + if (v_size == 0) { goto exit; } + desc_cursor += v_size; + str8_list_pushf(scratch.arena, &build_id, "%02x", v); + } + String8 build_id_str = str8_list_join(scratch.arena, &build_id, 0); + str8_list_pushf(scratch.arena, &desc_fmt, "Build ID: %S", build_id_str); + } break; + case GNU_NoteType_PropertyType0: { + U64 align = elf_class == ELF_Class_64 ? 8 : 4; + for (U64 desc_cursor = 0; desc_cursor < raw_desc.size; ) { + GNU_Property type = 0; + U64 type_size = str8_deserial_read_struct(raw_desc, desc_cursor, &type); + if (type_size == 0) { goto exit; } + desc_cursor += type_size; + + U32 size = 0; + U64 size_size = str8_deserial_read_struct(raw_desc, desc_cursor, &size); + if (size_size == 0) { goto exit; } + desc_cursor += size_size; + + U32 flags = 0; + if (size == 4) { + U64 flags_size = str8_deserial_read_struct(raw_desc, desc_cursor, &flags); + if (flags_size == 0) { goto exit; } + desc_cursor += flags_size; + } + + switch (e_machine) { + case ELF_MachineKind_None: break; + case ELF_MachineKind_X86_64: { + String8 features = gnu_string_from_property_flags_x86(scratch.arena, type, flags); + str8_list_pushf(scratch.arena, &desc_fmt, "x86 features: %S", features); + } break; + default:{}break; + } + + desc_cursor = AlignPow2(desc_cursor, align); + } + } break; + default:{}break; + } + + note_type_str = gnu_string_from_note_type(note_type); + } else if (str8_match(owner, str8_lit("stapsdt"), StringMatchFlag_CaseInsensitive)) { + if (note_type == ELF_NoteType_STapSdt) { + U64 desc_cursor = 0; + U64 addr_size = elf_class == ELF_Class_64 ? 8 : 4; + + U64 pc = 0; + U64 pc_size = str8_deserial_read(raw_desc, desc_cursor, &pc, addr_size, addr_size); + if (pc_size == 0) { goto exit; } + desc_cursor += pc_size; + + U64 base_addr = 0; + U64 base_addr_size = str8_deserial_read(raw_desc, desc_cursor, &base_addr, addr_size, addr_size); + if (base_addr_size == 0) { goto exit; } + desc_cursor += base_addr_size; + + U64 semaphore = 0; + U64 semaphore_size = str8_deserial_read(raw_desc, desc_cursor, &semaphore, addr_size, addr_size); + if (semaphore_size == 0) { goto exit; } + desc_cursor += semaphore_size; + + String8 provider = str8_cstring_capped(raw_desc.str + desc_cursor, raw_desc.str + raw_desc.size); + desc_cursor += provider.size + 1; + if (desc_cursor > raw_desc.size) { goto exit; } + + String8 probe = str8_cstring_capped(raw_desc.str + desc_cursor, raw_desc.str + raw_desc.size); + desc_cursor += probe.size + 1; + if (desc_cursor > raw_desc.size) { goto exit; } + + String8 args = str8_cstring_capped(raw_desc.str + desc_cursor, raw_desc.str + raw_desc.size); + desc_cursor += args.size + 1; + if (desc_cursor > raw_desc.size) { goto exit; } + + str8_list_pushf(scratch.arena, &desc_fmt, "Provider: %S", provider); + str8_list_pushf(scratch.arena, &desc_fmt, "Probe: %S", probe); + str8_list_pushf(scratch.arena, &desc_fmt, "PC: 0x%I64x", pc); + str8_list_pushf(scratch.arena, &desc_fmt, "Base: 0x%I64x", base_addr); + str8_list_pushf(scratch.arena, &desc_fmt, "Semaphore: 0x%I64x", semaphore); + str8_list_pushf(scratch.arena, &desc_fmt, "Arguments: %S", args); + + note_type_str = str8_lit("NT_STAPSDT"); + } + } + + if (note_type_str.size == 0) note_type_str = str8f(scratch.arena, "0x%x", note_type); + + str8_list_pushf(arena, &strings, "{"); + str8_list_pushf(arena, &strings, " Owner: %S", owner); + str8_list_pushf(arena, &strings, " Data Size: 0x%x", desc_size); + str8_list_pushf(arena, &strings, " Type: %S", note_type_str); + if (desc_fmt.node_count) { + str8_list_pushf(arena, &strings, " Description:"); + str8_list_pushf(arena, &strings, " {"); + for EachNode(n, String8Node, desc_fmt.first) { str8_list_pushf(arena, &strings, " %S", n->string); } + str8_list_pushf(arena, &strings, " }"); + } + str8_list_pushf(arena, &strings, "}"); + } + + is_bad_parse = 0; + exit:; + if (is_bad_parse) { + str8_list_pushf(arena, &strings, "ERROR: unable to parse data @ 0x%Ix64", cursor); + } + scratch_end(scratch); + return strings; +} + +internal String8List +elf_dump(Arena *arena, String8 raw_elf, ELF_DumpSubsetFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List strings = {0}; + ELF_Bin elf = elf_bin_from_data(scratch.arena, raw_elf); + + if (flags & ELF_DumpSubsetFlag_Note) { + for EachIndex(sect_idx, elf.shdrs.count) { + ELF_Shdr64 *shdr = &elf.shdrs.v[sect_idx]; + if (shdr->sh_type == ELF_ShType_Note) { + String8 raw_notes = str8_substr(raw_elf, r1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size)); + String8 shdr_name = elf_name_from_shdr64(raw_elf, &elf, shdr); + str8_list_pushf(scratch.arena, &strings, "//"); + str8_list_pushf(scratch.arena, &strings, "// %S", shdr_name); + str8_list_pushf(scratch.arena, &strings, "//"); + String8List note_strings = elf_dump_note(scratch.arena, raw_notes, elf.hdr.e_ident[ELF_Identifier_Class], elf.hdr.e_machine); + str8_list_concat_in_place(&strings, ¬e_strings); + } + } + } + + String8 out = str8_list_join(arena, &strings, &(StringJoin){.sep=str8_lit("\n"), .post=str8_lit("\n")}); + String8List result = {0}; + str8_list_push(arena, &result, out); + + scratch_end(scratch); + return result; +} diff --git a/src/elf/elf_dump.h b/src/elf/elf_dump.h new file mode 100644 index 00000000..5b920ffc --- /dev/null +++ b/src/elf/elf_dump.h @@ -0,0 +1,30 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef ELF_DUMP_H +#define ELF_DUMP_H + +#define ELF_DumpSubset_XList \ + X(Note, note, "NOTE") + +typedef U32 ELF_DumpSubset; +enum +{ +#define X(name, name_lower, title) ELF_DumpSubset_##name, + ELF_DumpSubset_XList +#undef X +}; + +typedef U32 ELF_DumpSubsetFlags; +enum +{ +#define X(name, name_lower, title) ELF_DumpSubsetFlag_##name = (1 << ELF_DumpSubset_##name), + ELF_DumpSubset_XList +#undef X + ELF_DumpSubsetFlag_All = ~0, +}; + +internal String8List elf_dump(Arena *arena, String8 raw_elf, ELF_DumpSubsetFlags flags); + +#endif // ELF_DUMP_H + diff --git a/src/elf/elf_parse.c b/src/elf/elf_parse.c index 5949ebad..297965ff 100644 --- a/src/elf/elf_parse.c +++ b/src/elf/elf_parse.c @@ -125,13 +125,16 @@ internal U64 elf_base_addr_from_bin(ELF_Bin *bin) { U64 base_vaddr = 0; - for EachIndex(phdr_idx, bin->phdrs.count) + if(bin->hdr.e_type != ELF_Type_Dyn) { - ELF_Phdr64 *phdr = &bin->phdrs.v[phdr_idx]; - if(phdr->p_type == ELF_PType_Load && - (base_vaddr == 0 || phdr->p_vaddr < base_vaddr)) + for EachIndex(phdr_idx, bin->phdrs.count) { - base_vaddr = phdr->p_vaddr; + ELF_Phdr64 *phdr = &bin->phdrs.v[phdr_idx]; + if(phdr->p_type == ELF_PType_Load && + (base_vaddr == 0 || phdr->p_vaddr < base_vaddr)) + { + base_vaddr = phdr->p_vaddr; + } } } return base_vaddr; @@ -164,3 +167,48 @@ elf_gnu_debug_link_from_bin(String8 raw_data, ELF_Bin *bin) } return result; } + +internal ELF_NoteList +elf_parse_note(Arena *arena, String8 raw_note, ELF_Class elf_class, ELF_MachineKind e_machine) +{ + ELF_NoteList result = {0}; + + for (U64 cursor = 0; cursor < raw_note.size; ) { + U32 owner_size; + U64 owner_size_size = str8_deserial_read_struct(raw_note, cursor, &owner_size); + if (owner_size_size == 0) { goto exit; } + cursor += owner_size_size; + + U32 desc_size; + U64 desc_size_size = str8_deserial_read_struct(raw_note, cursor, &desc_size); + if (desc_size_size == 0) { goto exit; } + cursor += desc_size_size; + + ELF_NoteType type; + U64 type_size = str8_deserial_read_struct(raw_note, cursor, &type); + if (type_size == 0) { goto exit; } + cursor += type_size; + + if (cursor + owner_size > raw_note.size) { goto exit; } + String8 owner = str8_cstring_capped(raw_note.str + cursor, raw_note.str + cursor + owner_size); + cursor += owner_size; + + if (cursor + desc_size > raw_note.size) { goto exit; } + String8 desc = str8_substr(raw_note, r1u64(cursor, cursor + desc_size)); + cursor += desc_size; + cursor = AlignPow2(cursor, 4); + + ELF_NoteNode *n = push_array(arena, ELF_NoteNode, 1); + n->v.owner = owner; + n->v.desc = desc; + n->v.type = type; + + SLLQueuePush(result.first, result.last, n); + result.count += 1; + } + + exit:; + return result; +} + + diff --git a/src/elf/elf_parse.h b/src/elf/elf_parse.h index 70a467e8..191c7fea 100644 --- a/src/elf/elf_parse.h +++ b/src/elf/elf_parse.h @@ -10,15 +10,15 @@ typedef struct ELF_Shdr64Array ELF_Shdr64Array; struct ELF_Shdr64Array { - ELF_Shdr64 *v; U64 count; + ELF_Shdr64 *v; }; typedef struct ELF_Phdr64Array ELF_Phdr64Array; struct ELF_Phdr64Array { - ELF_Phdr64 *v; U64 count; + ELF_Phdr64 *v; }; typedef struct ELF_Bin ELF_Bin; @@ -37,6 +37,29 @@ struct ELF_GnuDebugLink U32 checksum; }; +typedef struct ELF_Note ELF_Note; +struct ELF_Note +{ + String8 owner; + ELF_NoteType type; + String8 desc; +}; + +typedef struct ELF_NoteNode ELF_NoteNode; +struct ELF_NoteNode +{ + ELF_NoteNode *next; + ELF_Note v; +}; + +typedef struct ELF_NoteList ELF_NoteList; +struct ELF_NoteList +{ + ELF_NoteNode *first; + ELF_NoteNode *last; + U64 count; +}; + //////////////////////////////// //~ rjf: Parsing Functions @@ -49,4 +72,6 @@ internal String8 elf_name_from_shdr64(String8 raw_data, ELF_Bin *bin, ELF_Shdr64 internal U64 elf_base_addr_from_bin(ELF_Bin *bin); internal ELF_GnuDebugLink elf_gnu_debug_link_from_bin(String8 raw_data, ELF_Bin *bin); +internal ELF_NoteList elf_parse_note(Arena *arena, String8 raw_note, ELF_Class elf_class, ELF_MachineKind e_machine); + #endif // ELF_PARSE_H diff --git a/src/eval/eval.mdesk b/src/eval/eval.mdesk index ae0e0459..3bf48031 100644 --- a/src/eval/eval.mdesk +++ b/src/eval/eval.mdesk @@ -10,6 +10,7 @@ E_TokenKindTable: {StringLiteral} {CharLiteral} {Symbol} + {Comment} } @table(name basic_string basic_byte_size) diff --git a/src/eval/eval_core.c b/src/eval/eval_core.c index 0adf8c3c..c8d19db4 100644 --- a/src/eval/eval_core.c +++ b/src/eval/eval_core.c @@ -9,16 +9,10 @@ //////////////////////////////// //~ rjf: Basic Helpers -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif - internal U64 e_hash_from_string(U64 seed, String8 string) { - U64 result = XXH3_64bits_withSeed(string.str, string.size, seed); + U64 result = u64_hash_from_seed_str8(seed, string); return result; } @@ -213,25 +207,28 @@ e_string2num_map_make(Arena *arena, U64 slot_count) internal void e_string2num_map_insert(Arena *arena, E_String2NumMap *map, String8 string, U64 num) { - U64 hash = e_hash_from_string(5381, string); - U64 slot_idx = hash%map->slots_count; - E_String2NumMapNode *existing_node = 0; - for(E_String2NumMapNode *node = map->slots[slot_idx].first; node != 0; node = node->hash_next) + if(string.size != 0) { - if(str8_match(node->string, string, 0) && node->num == num) + U64 hash = e_hash_from_string(5381, string); + U64 slot_idx = hash%map->slots_count; + E_String2NumMapNode *existing_node = 0; + for(E_String2NumMapNode *node = map->slots[slot_idx].first; node != 0; node = node->hash_next) { - existing_node = node; - break; + if(str8_match(node->string, string, 0) && node->num == num) + { + existing_node = node; + break; + } + } + if(existing_node == 0) + { + E_String2NumMapNode *node = push_array(arena, E_String2NumMapNode, 1); + SLLQueuePush_N(map->slots[slot_idx].first, map->slots[slot_idx].last, node, hash_next); + SLLQueuePush_N(map->first, map->last, node, order_next); + node->string = push_str8_copy(arena, string); + node->num = num; + map->node_count += 1; } - } - if(existing_node == 0) - { - E_String2NumMapNode *node = push_array(arena, E_String2NumMapNode, 1); - SLLQueuePush_N(map->slots[slot_idx].first, map->slots[slot_idx].last, node, hash_next); - SLLQueuePush_N(map->first, map->last, node, order_next); - node->string = push_str8_copy(arena, string); - node->num = num; - map->node_count += 1; } } @@ -590,7 +587,7 @@ e_push_locals_map_from_rdi_voff(Arena *arena, RDI_Parsed *rdi, U64 voff) U32 local_opl_idx = scope->local_first + scope->local_count; for(U32 local_idx = scope->local_first; local_idx < local_opl_idx; local_idx += 1) { - RDI_Local *local_var = rdi_element_from_name_idx(rdi, Locals, local_idx); + RDI_Symbol *local_var = rdi_element_from_name_idx(rdi, LocalVariables, local_idx); U64 local_name_size = 0; U8 *local_name_str = rdi_string_from_idx(rdi, local_var->name_string_idx, &local_name_size); String8 name = push_str8_copy(arena, str8(local_name_str, local_name_size)); @@ -612,10 +609,10 @@ e_push_member_map_from_rdi_voff(Arena *arena, RDI_Parsed *rdi, U64 voff) //- rjf: tightest scope -> procedure U32 proc_idx = tightest_scope->proc_idx; - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, proc_idx); + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, proc_idx); //- rjf: procedure -> udt - U32 udt_idx = procedure->container_idx; + U32 udt_idx = (procedure->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Type ? procedure->container_idx : 0; RDI_UDT *udt = rdi_element_from_name_idx(rdi, UDTs, udt_idx); //- rjf: build blank map @@ -644,6 +641,98 @@ e_push_member_map_from_rdi_voff(Arena *arena, RDI_Parsed *rdi, U64 voff) return map; } +//////////////////////////////// +//~ rjf: RDI Location Info -> Eval Op List + +internal E_OpList +e_oplist_from_location(Arena *arena, RDI_Parsed *rdi, RDI_Location loc) +{ + E_OpList result = {0}; + B32 need_extra_memread = 0; + switch((RDI_LocationKindEnum)rdi_kind_from_location(loc)) + { + case RDI_LocationKind_NULL: + case RDI_LocationKind_Set:{}break; + + //- rjf: bytecode + case RDI_LocationKind_AddrBytecodeStream: + case RDI_LocationKind_ValBytecodeStream: + { + U64 all_bytecode_size = 0; + U8 *all_bytecode = rdi_table_from_name(rdi, LocationsBytecodeData, &all_bytecode_size); + U64 bytecode_first_idx = rdi_bytecode_data_off_from_location(loc); + bytecode_first_idx = Min(bytecode_first_idx, all_bytecode_size); + U64 bytecode_opl_idx = bytecode_first_idx; + for(U64 off = bytecode_first_idx, next_off = all_bytecode_size; off < all_bytecode_size; off = next_off) + { + next_off = all_bytecode_size; + U8 opcode = all_bytecode[off]; + if(opcode == 0) + { + break; + } + U16 ctrlbits = rdi_eval_op_ctrlbits_table[opcode]; + U32 p_size = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); + bytecode_opl_idx += (1 + p_size); + next_off = (off + 1 + p_size); + } + String8 bytecode = str8(all_bytecode + bytecode_first_idx, (bytecode_opl_idx - bytecode_first_idx)); + e_oplist_push_bytecode(arena, &result, bytecode); + }break; + + //- rjf: reg + off + case RDI_LocationKind_AddrRegPlusOff: goto reg_plus_off; + case RDI_LocationKind_AddrAddrRegPlusOff: need_extra_memread = 1; goto reg_plus_off; + reg_plus_off:; + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + Arch arch = arch_from_rdi_arch(tli->arch); + U64 arch_addr_bytesize = byte_size_from_arch(arch); + RDI_RegCode regcode = rdi_regcode_from_location(loc); + S64 reg_off = rdi_regoff_from_location(loc); + e_oplist_push_op(arena, &result, RDI_EvalOp_RegRead, e_value_u64(RDI_EncodeRegReadParam(regcode, arch_addr_bytesize, 0))); + e_oplist_push_sconst(arena, &result, reg_off); + e_oplist_push_op(arena, &result, RDI_EvalOp_Add, e_value_u64(0)); + if(need_extra_memread) + { + e_oplist_push_op(arena, &result, RDI_EvalOp_MemRead, e_value_u64(arch_addr_bytesize)); + } + }break; + + //- rjf: reg + case RDI_LocationKind_ValReg: + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + Arch arch = arch_from_rdi_arch(tli->arch); + ARCH_Info *arch_info = arch_info_from_arch(arch); + RDI_RegCode rdi_regcode = rdi_regcode_from_location(loc); + ARCH_RegCode reg_code = arch_reg_code_from_rdi(arch, rdi_regcode); + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 byte_size = (U64)dim_1u16(reg_rng); + U64 byte_pos = reg_rng.min; + e_oplist_push_op(arena, &result, RDI_EvalOp_RegRead, e_value_u64(RDI_EncodeRegReadParam(rdi_regcode, byte_size, byte_pos))); + }break; + + //- rjf: space offsets + case RDI_LocationKind_ModuleOff: + { + U64 voff = rdi_voff_from_location(loc); + e_oplist_push_op(arena, &result, RDI_EvalOp_ModuleOff, e_value_u64(voff)); + }break; + case RDI_LocationKind_TLSOff: + { + U64 toff = rdi_toff_from_location(loc); + e_oplist_push_op(arena, &result, RDI_EvalOp_TLSOff, e_value_u64(toff)); + }break; + case RDI_LocationKind_ConstantDataOff: + { + U64 constant_data_off = rdi_constant_data_off_from_location(loc); + e_oplist_push_uconst(arena, &result, constant_data_off); + }break; + } + return result; +} + //////////////////////////////// //~ rjf: Cache Creation & Selection @@ -739,7 +828,6 @@ internal void e_select_ir_ctx(E_IRCtx *ctx) { if(ctx->regs_map == 0) { ctx->regs_map = &e_string2num_map_nil; } - if(ctx->reg_alias_map == 0) { ctx->reg_alias_map = &e_string2num_map_nil; } if(ctx->locals_map == 0) { ctx->locals_map = &e_string2num_map_nil; } if(ctx->member_map == 0) { ctx->member_map = &e_string2num_map_nil; } if(ctx->macro_map == 0) { ctx->macro_map = push_array(e_cache->arena, E_String2ExprMap, 1); ctx->macro_map[0] = e_string2expr_map_make(e_cache->arena, 512); } @@ -775,6 +863,74 @@ e_dbg_info_from_type_key(E_TypeKey type_key) //////////////////////////////// //~ rjf: Cache Accessing Functions +//- rjf: locals/members maps + +internal E_String2NumMap * +e_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) +{ + if(e_cache->locals_map_map_slots_count == 0) + { + e_cache->locals_map_map_slots_count = 8; + e_cache->locals_map_map_slots = push_array(e_cache->arena, E_LocalMapCacheSlot, e_cache->locals_map_map_slots_count); + } + U64 hash = u64_hash_from_seed_str8(voff, str8_struct(&dbgi_key)); + U64 slot_idx = hash%e_cache->locals_map_map_slots_count; + E_LocalMapCacheSlot *slot = &e_cache->locals_map_map_slots[slot_idx]; + E_LocalMapCacheNode *node = 0; + for(E_LocalMapCacheNode *n = slot->first; n != 0; n = n->next) + { + if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) + { + node = n; + } + } + if(node == 0) + { + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + node = push_array(e_cache->arena, E_LocalMapCacheNode, 1); + SLLQueuePush(slot->first, slot->last, node); + node->dbgi_key = dbgi_key; + node->voff = voff; + node->map = e_push_locals_map_from_rdi_voff(e_cache->arena, rdi, voff); + access_close(access); + } + return node->map; +} + +internal E_String2NumMap * +e_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff) +{ + if(e_cache->member_map_map_slots_count == 0) + { + e_cache->member_map_map_slots_count = 8; + e_cache->member_map_map_slots = push_array(e_cache->arena, E_LocalMapCacheSlot, e_cache->member_map_map_slots_count); + } + U64 hash = u64_hash_from_seed_str8(voff, str8_struct(&dbgi_key)); + U64 slot_idx = hash%e_cache->member_map_map_slots_count; + E_LocalMapCacheSlot *slot = &e_cache->member_map_map_slots[slot_idx]; + E_LocalMapCacheNode *node = 0; + for(E_LocalMapCacheNode *n = slot->first; n != 0; n = n->next) + { + if(di_key_match(n->dbgi_key, dbgi_key) && n->voff == voff) + { + node = n; + } + } + if(node == 0) + { + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + node = push_array(e_cache->arena, E_LocalMapCacheNode, 1); + SLLQueuePush(slot->first, slot->last, node); + node->dbgi_key = dbgi_key; + node->voff = voff; + node->map = e_push_member_map_from_rdi_voff(e_cache->arena, rdi, voff); + access_close(access); + } + return node->map; +} + //- rjf: parent key stack internal E_Key @@ -1073,7 +1229,7 @@ e_value_eval_from_eval(E_Eval eval) MemoryZeroStruct(&eval.value); if(!e_type_key_match(type_key, e_type_key_zero()) && type_byte_size <= sizeof(E_Value) && - e_space_read(eval.space, &eval.value, value_vaddr_range)) + e_space_read(eval.space, &eval.value, 0, value_vaddr_range)) { eval.irtree.mode = E_Mode_Value; @@ -1094,7 +1250,7 @@ e_value_eval_from_eval(E_Eval eval) // rjf: manually sign-extend switch(type_kind) { - default: break; + default:{}break; case E_TypeKind_Char8: case E_TypeKind_S8: {eval.value.s64 = (S64)*((S8 *)&eval.value.u64);}break; case E_TypeKind_Char16: diff --git a/src/eval/eval_core.h b/src/eval/eval_core.h index ed300e59..ddddebe1 100644 --- a/src/eval/eval_core.h +++ b/src/eval/eval_core.h @@ -73,6 +73,8 @@ enum { E_IRExtKind_Bytecode = RDI_EvalOp_COUNT, E_IRExtKind_SetSpace, + E_IRExtKind_SetBaseOff, + E_IRExtKind_SetTLSOff, E_IRExtKind_COUNT }; @@ -136,6 +138,7 @@ enum E_SpaceKind_File, E_SpaceKind_FileSystem, E_SpaceKind_HashStoreKey, + E_SpaceKind_DebugConstantData, E_SpaceKind_FirstUserDefined, }; @@ -164,7 +167,6 @@ typedef enum E_TypeKeyKind E_TypeKeyKind_Ext, E_TypeKeyKind_Cons, E_TypeKeyKind_Reg, - E_TypeKeyKind_RegAlias, } E_TypeKeyKind; @@ -263,6 +265,7 @@ struct E_Expr E_Value value; String8 string; String8 qualifier; + String8 disambiguator; String8 bytecode; }; @@ -573,6 +576,7 @@ struct E_DbgInfo { DI_Key dbgi_key; RDI_Parsed *rdi; + String8 name; }; //////////////////////////////// @@ -585,6 +589,7 @@ struct E_Module U32 dbg_info_num; Arch arch; E_Space space; + String8 name; }; //////////////////////////////// @@ -755,8 +760,25 @@ struct E_AutoHookParams //////////////////////////////// //~ rjf: Evaluation Context +typedef U32 E_SpaceRangeFlags; +enum +{ + E_SpaceRangeFlag_AnyByteBad = (1<<0), + E_SpaceRangeFlag_AnyByteChanged = (1<<1), + E_SpaceRangeFlag_Stale = (1<<2), +}; + +typedef struct E_SpaceRangeInfo E_SpaceRangeInfo; +struct E_SpaceRangeInfo +{ + U64 *byte_bad_flags; + U64 *byte_changed_flags; + E_SpaceRangeFlags flags; +}; + typedef U64 E_SpaceGenFunction(E_Space space); -typedef B32 E_SpaceRWFunction(E_Space space, void *out, Rng1U64 offset_range); +typedef B32 E_SpaceReadFunction(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 offset_range); +typedef B32 E_SpaceWriteFunction(E_Space space, void *out, Rng1U64 offset_range); //- rjf: base context @@ -764,9 +786,9 @@ typedef struct E_BaseCtx E_BaseCtx; struct E_BaseCtx { // rjf: instruction pointer info - U64 thread_ip_vaddr; U64 thread_ip_voff; E_Space thread_reg_space; + E_Space thread_process_space; Arch thread_arch; U64 thread_unwind_count; @@ -774,16 +796,18 @@ struct E_BaseCtx E_DbgInfo *dbg_infos; U64 dbg_infos_count; E_DbgInfo *primary_dbg_info; + E_String2NumMap *dbg_info_from_name_map; // rjf: modules E_Module *modules; U64 modules_count; E_Module *primary_module; + E_String2NumMap *module_from_name_map; // rjf: space hooks E_SpaceGenFunction *space_gen; - E_SpaceRWFunction *space_read; - E_SpaceRWFunction *space_write; + E_SpaceReadFunction *space_read; + E_SpaceWriteFunction *space_write; }; //- rjf: ir generation context @@ -792,7 +816,6 @@ typedef struct E_IRCtx E_IRCtx; struct E_IRCtx { E_String2NumMap *regs_map; - E_String2NumMap *reg_alias_map; E_String2NumMap *locals_map; // (within `primary_module`) E_String2NumMap *member_map; // (within `primary_module`) E_String2ExprMap *macro_map; @@ -1027,13 +1050,6 @@ struct E_CacheNode E_CacheBundle bundle; }; -typedef struct E_CacheLookup E_CacheLookup; -struct E_CacheLookup -{ - E_CacheNode *node; - U64 hash; -}; - typedef struct E_CacheSlot E_CacheSlot; struct E_CacheSlot { @@ -1041,6 +1057,24 @@ struct E_CacheSlot E_CacheNode *last; }; +//- rjf: locals/members cache types + +typedef struct E_LocalMapCacheNode E_LocalMapCacheNode; +struct E_LocalMapCacheNode +{ + E_LocalMapCacheNode *next; + DI_Key dbgi_key; + U64 voff; + E_String2NumMap *map; +}; + +typedef struct E_LocalMapCacheSlot E_LocalMapCacheSlot; +struct E_LocalMapCacheSlot +{ + E_LocalMapCacheNode *first; + E_LocalMapCacheNode *last; +}; + //- rjf: parent stack typedef struct E_CacheParentNode E_CacheParentNode; @@ -1073,7 +1107,7 @@ struct E_Cache E_CacheParentNode *free_parent_node; //- rjf: unpacked context - RDI_Procedure *thread_ip_procedure; + RDI_Symbol *thread_ip_procedure; //- rjf: [types] JIT-constructed types tables U64 cons_id_gen; @@ -1098,6 +1132,12 @@ struct E_Cache U64 type_cache_slots_count; E_TypeCacheSlot *type_cache_slots; + //- rjf: [locals / members] locals/members map maps + E_LocalMapCacheSlot *locals_map_map_slots; + U64 locals_map_map_slots_count; + E_LocalMapCacheSlot *member_map_map_slots; + U64 member_map_map_slots_count; + //- rjf: [ir] ir gen options B32 disallow_autohooks; B32 disallow_chained_fastpaths; @@ -1206,6 +1246,11 @@ internal void e_auto_hook_map_insert_new_(Arena *arena, E_AutoHookMap *map, E_Au internal E_String2NumMap *e_push_locals_map_from_rdi_voff(Arena *arena, RDI_Parsed *rdi, U64 voff); internal E_String2NumMap *e_push_member_map_from_rdi_voff(Arena *arena, RDI_Parsed *rdi, U64 voff); +//////////////////////////////// +//~ rjf: RDI Location Info -> Eval Op List + +internal E_OpList e_oplist_from_location(Arena *arena, RDI_Parsed *rdi, RDI_Location loc); + //////////////////////////////// //~ rjf: Cache Creation & Selection @@ -1249,6 +1294,10 @@ internal E_DbgInfo *e_dbg_info_from_type_key(E_TypeKey type_key); // "parent key stack" also implicitly parameterizes all of these (partly // because it is not relevant in 99% of cases). +//- rjf: locals/members maps +internal E_String2NumMap *e_locals_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); +internal E_String2NumMap *e_member_map_from_dbgi_key_voff(DI_Key dbgi_key, U64 voff); + //- rjf: parent key stack internal E_Key e_parent_key_push(E_Key key); internal E_Key e_parent_key_pop(void); diff --git a/src/eval/eval_interpret.c b/src/eval/eval_interpret.c index 53710f16..e314ac10 100644 --- a/src/eval/eval_interpret.c +++ b/src/eval/eval_interpret.c @@ -12,43 +12,22 @@ e_select_interpret_ctx(E_InterpretCtx *ctx, RDI_Parsed *primary_rdi, U64 ip_voff // compute and apply frame base if(primary_rdi != 0) { - E_Interpretation frame_base = { .code = ~0 }; - - RDI_Procedure *proc = rdi_procedure_from_voff(primary_rdi, ip_voff); - for(U64 loc_block_idx = proc->frame_base_location_first; loc_block_idx < proc->frame_base_location_opl; loc_block_idx += 1) + Temp scratch = scratch_begin(0, 0); + RDI_Symbol *proc = rdi_procedure_from_voff(primary_rdi, ip_voff); + RDI_Location location = rdi_location_from_location_voff(primary_rdi, proc->location, ip_voff); + E_OpList oplist = e_oplist_from_location(scratch.arena, primary_rdi, location); + String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); + E_Interpretation frame_base_interpretation = e_interpret(bytecode); + U64 frame_base = frame_base_interpretation.value.u64; + if(frame_base_interpretation.code == E_InterpretationCode_Good) { - RDI_LocationBlock *block = rdi_element_from_name_idx(primary_rdi, LocationBlocks, loc_block_idx); - if (block->scope_off_first <= ip_voff && ip_voff < block->scope_off_opl) { - U64 all_location_data_size = 0; - U8 *all_location_data = rdi_table_from_name(primary_rdi, LocationData, &all_location_data_size); - if(block->location_data_off + sizeof(RDI_LocationKind) <= all_location_data_size) - { - RDI_LocationKind loc_kind = *(RDI_LocationKind *)(all_location_data + block->location_data_off); - if(loc_kind == RDI_LocationKind_ValBytecodeStream || loc_kind == RDI_LocationKind_AddrBytecodeStream) - { - U8 *bytecode_ptr = all_location_data + block->location_data_off + sizeof(RDI_LocationKind); - U8 *bytecode_opl = all_location_data + all_location_data_size; - U64 bytecode_size = rdi_size_from_bytecode_stream(bytecode_ptr, bytecode_opl); - String8 bytecode = str8(bytecode_ptr, bytecode_size); - frame_base = e_interpret(bytecode); - } - else if(loc_kind != RDI_LocationKind_NULL) - { - NotImplemented; - } - } - break; - } - } - - if(frame_base.code == E_InterpretationCode_Good) - { - *ctx->frame_base = frame_base.value.u64; + *ctx->frame_base = frame_base; } else { ctx->frame_base = 0; } + scratch_end(scratch); } } @@ -67,7 +46,7 @@ e_space_gen(E_Space space) } internal B32 -e_space_read(E_Space space, void *out, Rng1U64 range) +e_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 range) { ProfBeginFunction(); B32 result = 0; @@ -98,6 +77,9 @@ e_space_read(E_Space space, void *out, Rng1U64 range) //- rjf: file reads case E_SpaceKind_File: { + Temp scratch = scratch_begin(0, 0); + Access *access = access_open(); + // rjf: unpack space/path U64 file_path_string_id = space.u64_0; String8 file_path = e_string_from_id(file_path_string_id); @@ -109,30 +91,96 @@ e_space_read(E_Space space, void *out, Rng1U64 range) containing_range.max += chunk_size-1; containing_range.max -= containing_range.max%chunk_size; - // rjf: map to hash + // rjf: map to hashes C_Key key = fs_key_from_path_range(file_path, containing_range, 0); - U128 hash = c_hash_from_key(key, 0); - - // rjf: look up from hash store - Access *access = access_open(); + U128 hash = {0}; + U128 prev_hash = {0}; + U64 desired_hash_count = 1; + if(out_range_info != 0 && out_range_info->byte_changed_flags != 0) { - String8 data = c_data_from_hash(access, hash); - Rng1U64 legal_range = r1u64(containing_range.min, containing_range.min + data.size); - Rng1U64 read_range = intersect_1u64(range, legal_range); - if(read_range.min < read_range.max) + desired_hash_count = 2; + } + { + U64 hashes_count = 0; + U128 hashes[2] = {0}; + for(U64 rewind_idx = 0; rewind_idx < C_KEY_HASH_HISTORY_COUNT && hashes_count < ArrayCount(hashes) && hashes_count < desired_hash_count; rewind_idx += 1) { - result = 1; - MemoryCopy(out, data.str + read_range.min - containing_range.min, dim_1u64(read_range)); + U128 h = c_hash_from_key(key, rewind_idx); + if(!u128_match(u128_zero(), h)) + { + hashes[hashes_count] = h; + hashes_count += 1; + } + } + hash = hashes[0]; + prev_hash = hashes[1]; + } + + // rjf: unpack hashes + String8 data = c_data_from_hash(access, hash); + String8 prev_data = c_data_from_hash(access, prev_hash); + + // rjf: unpack read range + Rng1U64 legal_range = r1u64(containing_range.min, containing_range.min + data.size); + Rng1U64 read_range = intersect_1u64(range, legal_range); + + // rjf: fill out byte bad flags + if(out_range_info != 0 && out_range_info->byte_bad_flags != 0) + { + // TODO(rjf): need to know whole space range here + } + + // rjf: fill out byte changed flags + if(out_range_info != 0 && out_range_info->byte_changed_flags != 0) + { + U64 num_bytes_read = dim_1u64(read_range); + if(data.size >= num_bytes_read && data.size == prev_data.size) + { + U64 byte_base_idx = read_range.min - containing_range.min; + for(U64 byte_idx = 0; byte_idx < num_bytes_read; byte_idx += 1) + { + if(data.str[byte_base_idx + byte_idx] != prev_data.str[byte_base_idx + byte_idx]) + { + out_range_info->byte_changed_flags[byte_idx/64] |= (1ull<<(byte_idx%64)); + out_range_info->flags |= E_SpaceRangeFlag_AnyByteChanged; + } + } } } + + // rjf: fill output data from data + if(read_range.min < read_range.max) + { + result = 1; + MemoryCopy(out, data.str + read_range.min - containing_range.min, dim_1u64(read_range)); + } + access_close(access); + scratch_end(scratch); + }break; + + //- rjf: debug info constant data + case E_SpaceKind_DebugConstantData: + { + U32 dbg_info_num = space.u64s[0]; + if(1 <= dbg_info_num && dbg_info_num <= e_base_ctx->dbg_infos_count) + { + E_DbgInfo *dbg_info = &e_base_ctx->dbg_infos[dbg_info_num-1]; + RDI_Parsed *rdi = dbg_info->rdi; + U64 all_constant_data_size = 0; + U8 *all_constant_data_ptr = rdi_table_from_name(rdi, LocationsConstantData, &all_constant_data_size); + String8 all_constant_data = str8(all_constant_data_ptr, all_constant_data_size); + String8 read_memory = str8_substr(all_constant_data, range); + result = (dim_1u64(range) == read_memory.size); + MemoryCopy(out, read_memory.str, read_memory.size); + } }break; //- rjf: default -> use hooks default: if(e_base_ctx->space_read != 0) { - result = e_base_ctx->space_read(space, out, range); + result = e_base_ctx->space_read(space, out, out_range_info, range); }break; } } @@ -177,6 +225,11 @@ e_interpret(String8 bytecode) { selected_space = e_interpret_ctx->primary_space; } + U64 base_off = 0; + if(e_interpret_ctx->module_base != 0) + { + base_off = e_interpret_ctx->module_base[0]; + } //- rjf: iterate bytecode & perform ops U8 *ptr = bytecode.str; @@ -193,6 +246,7 @@ e_interpret(String8 bytecode) else switch(op) { case E_IRExtKind_SetSpace:{ctrlbits = RDI_EVAL_CTRLBITS(32, 0, 0);}break; + case E_IRExtKind_SetBaseOff:{ctrlbits = RDI_EVAL_CTRLBITS(8, 0, 0);}break; default: { result.code = E_InterpretationCode_BadOp; @@ -245,6 +299,10 @@ e_interpret(String8 bytecode) { MemoryCopy(&selected_space, &imm, sizeof(selected_space)); }break; + case E_IRExtKind_SetBaseOff: + { + base_off = imm.u64; + }break; case RDI_EvalOp_Stop: { @@ -271,7 +329,7 @@ e_interpret(String8 bytecode) { U64 addr = svals[0].u64; U64 size = imm.u64; - B32 good_read = e_space_read(selected_space, &nval, r1u64(addr, addr+size)); + B32 good_read = e_space_read(selected_space, &nval, 0, r1u64(addr, addr+size)); if(!good_read) { result.code = E_InterpretationCode_BadMemRead; @@ -281,26 +339,20 @@ e_interpret(String8 bytecode) case RDI_EvalOp_RegRead: { - U8 rdi_reg_code = (imm.u64&0x0000FF)>>0; - U8 byte_size = (imm.u64&0x00FF00)>>8; - U8 byte_off = (imm.u64&0xFF0000)>>16; - REGS_RegCode base_reg_code = regs_reg_code_from_arch_rdi_code(e_interpret_ctx->reg_arch, rdi_reg_code); - REGS_Rng rng = regs_reg_code_rng_table_from_arch(e_interpret_ctx->reg_arch)[base_reg_code]; - U64 off = (U64)rng.byte_off + byte_off; - U64 size = (U64)byte_size; - B32 good_read = e_space_read(e_interpret_ctx->reg_space, &nval, r1u64(off, off+size)); - if(!good_read) + U8 rdi_reg_code = (imm.u64&0x0000FF)>>0; + U8 byte_size = (imm.u64&0x00FF00)>>8; + U8 byte_off = (imm.u64&0xFF0000)>>16; + Arch arch = e_interpret_ctx->reg_arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + ARCH_RegCode base_reg_code = arch_reg_code_from_rdi(arch, rdi_reg_code); + B32 good_read = 0; + if(0 <= base_reg_code && base_reg_code < arch_info->reg_code_count) { - result.code = E_InterpretationCode_BadRegRead; - goto done; + Rng1U16 rng = arch_info->reg_code_rng_table[base_reg_code]; + U64 off = (U64)rng.min + byte_off; + U64 size = (U64)byte_size; + good_read = e_space_read(e_interpret_ctx->reg_space, &nval, 0, r1u64(off, off+size)); } - }break; - - case RDI_EvalOp_RegReadDyn: - { - U64 off = svals[0].u64; - U64 size = bit_size_from_arch(e_interpret_ctx->reg_arch)/8; - B32 good_read = e_space_read(e_interpret_ctx->reg_space, &nval, r1u64(off, off+size)); if(!good_read) { result.code = E_InterpretationCode_BadRegRead; @@ -323,15 +375,7 @@ e_interpret(String8 bytecode) case RDI_EvalOp_ModuleOff: { - if(e_interpret_ctx->module_base != 0) - { - nval.u64 = *e_interpret_ctx->module_base + imm.u64; - } - else - { - result.code = E_InterpretationCode_BadModuleBase; - goto done; - } + nval.u64 = base_off + imm.u64; }break; case RDI_EvalOp_TLSOff: @@ -893,26 +937,6 @@ e_interpret(String8 bytecode) // do nothing - the pop is handled by the control bits }break; - case RDI_EvalOp_Insert: - { - if(stack_count > imm.u64) - { - if(imm.u64 > 0) - { - E_Value tval = stack[stack_count - 1]; - E_Value *dst = stack + stack_count - 1 - imm.u64; - E_Value *shift = dst + 1; - MemoryCopy(shift, dst, imm.u64*sizeof(E_Value)); - *dst = tval; - } - } - else - { - result.code = E_InterpretationCode_BadOp; - goto done; - } - }break; - case RDI_EvalOp_ValueRead: { U64 bytes_to_read = imm.u64; @@ -942,23 +966,57 @@ e_interpret(String8 bytecode) case RDI_EvalOp_CallSiteValue: { - NotImplemented; + // DW_OP_entry_value: requires evaluating the embedded sub-bytecode + // in this frame's entry-time register state (i.e. caller's state + // at the call instruction). that state is not currently plumbed + // into the eval context. interpreting in the current ctx gives + // wrong values for spilled args, so report BadOp instead. + // skip past the embedded sub-bytecode in the outer stream so the + // bytes are not interpreted as outer ops on resume. + U32 sub_size = imm.u32; + if(ptr + sub_size <= opl) + { + ptr += sub_size; + } + result.code = E_InterpretationCode_BadOp; + goto done; }break; case RDI_EvalOp_PartialValue: { - NotImplemented; + // DW_OP_piece marker: top-of-stack is a piece of a composite value. + // we do not assemble composites; for single-piece expressions the + // value already on the stack is the result. for multi-piece, only + // the first piece is returned (stack[0] is the final result). + result.code = E_InterpretationCode_BadOp; + goto done; }break; case RDI_EvalOp_PartialValueBit: { - NotImplemented; + // DW_OP_bit_piece marker. same caveat as PartialValue. + result.code = E_InterpretationCode_BadOp; + goto done; }break; case RDI_EvalOp_Swap: { - // TODO: add support for pushing multiple values onto the stack - NotImplemented; + if(stack_count >= 2) + { + E_Value swap = stack[stack_count-2]; + stack[stack_count-2] = stack[stack_count-1]; + stack[stack_count-1] = swap; + } + else + { + result.code = E_InterpretationCode_InsufficientStackSpace; + goto done; + } + }break; + + case RDI_EvalOp_PushCfa: + { + nval.u64 = e_interpret_ctx->cfa; }break; } diff --git a/src/eval/eval_interpret.h b/src/eval/eval_interpret.h index 590d4e4e..92fb5a6c 100644 --- a/src/eval/eval_interpret.h +++ b/src/eval/eval_interpret.h @@ -17,6 +17,7 @@ struct E_InterpretCtx U64 *module_base; U64 *frame_base; U64 *tls_base; + U64 cfa; }; //////////////////////////////// @@ -33,7 +34,7 @@ internal void e_select_interpret_ctx(E_InterpretCtx *ctx, RDI_Parsed *primary_rd //~ rjf: Space Reading Helpers internal U64 e_space_gen(E_Space space); -internal B32 e_space_read(E_Space space, void *out, Rng1U64 range); +internal B32 e_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 range); internal B32 e_space_write(E_Space space, void *in, Rng1U64 range); //////////////////////////////// diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 0293a03d..ab1974f8 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -76,6 +76,18 @@ e_oplist_push_set_space(Arena *arena, E_OpList *list, E_Space space) list->encoded_size += 1 + sizeof(space); } +internal void +e_oplist_push_set_base_off(Arena *arena, E_OpList *list, U64 off) +{ + E_Op *node = push_array_no_zero(arena, E_Op, 1); + node->opcode = E_IRExtKind_SetBaseOff; + StaticAssert(sizeof(node->value) >= sizeof(off), node_value_size_check); + MemoryCopy(&node->value, &off, sizeof(off)); + SLLQueuePush(list->first, list->last, node); + list->op_count += 1; + list->encoded_size += 1 + sizeof(off); +} + internal void e_oplist_push_string_literal(Arena *arena, E_OpList *list, String8 string) { @@ -228,19 +240,8 @@ e_irtree_mem_read_type(Arena *arena, E_IRNode *c, E_TypeKey type_key) read_node->value.u64 = byte_size; e_irnode_push_child(read_node, c); - // rjf: build a signed trunc node if needed - U64 bit_size = byte_size << 3; - E_IRNode *with_trunc = read_node; - E_TypeKind kind = e_type_kind_from_key(type_key); - if(bit_size < 64 && e_type_kind_is_signed(kind)) - { - with_trunc = e_push_irnode(arena, RDI_EvalOp_TruncSigned); - with_trunc->value.u64 = bit_size; - e_irnode_push_child(with_trunc, read_node); - } - // rjf: fill - result = with_trunc; + result = read_node; return result; } @@ -305,6 +306,10 @@ e_irtree_resolve_to_value(Arena *arena, E_Mode from_mode, E_IRNode *tree, E_Type { result = e_irtree_mem_read_type(arena, tree, type_key); } + if(from_mode == E_Mode_Offset && e_space_match(tree->space, e_base_ctx->thread_reg_space)) + { + result = e_irtree_set_space(arena, e_base_ctx->thread_process_space, result); + } if(e_type_kind_from_key(type_key) == E_TypeKind_Bitfield) { E_Type *type = e_type_from_key(type_key); @@ -657,7 +662,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I E_Type *lhs_type = e_type_from_key(lhs_irtree_try_chain->type_key); E_TypeAccessFunctionType *lhs_access = lhs_type->access; for(E_Type *lens_type = lhs_type; - lens_type->kind == E_TypeKind_Lens || lens_type->kind == E_TypeKind_Set; + lens_type->kind == E_TypeKind_Lens || lens_type->kind == E_TypeKind_Set || (E_TypeKind_FirstMeta <= lens_type->kind && lens_type->kind <= E_TypeKind_LastMeta); lens_type = e_type_from_key(lens_type->direct_type_key)) { if(lens_type->access != 0) @@ -894,10 +899,6 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { new_tree = e_irtree_trunc(arena, in_tree, cast_type); } - if(e_type_kind_is_signed(cast_type_unwrapped_kind) && e_type_kind_is_integer(casted_type_unwrapped_kind) && !e_type_kind_is_signed(casted_type_unwrapped_kind)) - { - new_tree = e_irtree_trunc(arena, in_tree, cast_type); - } result.root = new_tree; result.type_key = cast_type; result.mode = E_Mode_Value; @@ -982,18 +983,18 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I E_DbgInfo *dbg_info = e_dbg_info_from_module(module); U64 voff = interpretation.value.u64 - module->vaddr_range.min; U64 new_vaddr = 0; - RDI_Procedure *p = rdi_procedure_from_voff(dbg_info->rdi, voff); - RDI_GlobalVariable *g = rdi_global_variable_from_voff(dbg_info->rdi, voff); + RDI_Symbol *p = rdi_procedure_from_voff(dbg_info->rdi, voff); + RDI_Symbol *g = rdi_global_variable_from_voff(dbg_info->rdi, voff); U32 type_idx = 0; if(p->name_string_idx != 0) { type_idx = p->type_idx; new_vaddr = module->vaddr_range.min + rdi_first_voff_from_procedure(dbg_info->rdi, p); } - else if(g->name_string_idx != 0) + else if(g->name_string_idx != 0 && rdi_kind_from_location(g->location) == RDI_LocationKind_ModuleOff) { type_idx = g->type_idx; - new_vaddr = module->vaddr_range.min + g->voff; + new_vaddr = module->vaddr_range.min + rdi_voff_from_location(g->location); } if(type_idx != 0) { @@ -1304,6 +1305,13 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I int_root = e_irtree_binary_op_u(arena, RDI_EvalOp_Mul, ptr_size, int_root, const_root); } E_TypeKey ptr_type = ptr_tree->type_key; + { + E_Type *ptr_type_info = e_type_from_key(ptr_type); + if(ptr_type_info->flags != 0) + { + ptr_type = e_type_key_cons_ptr(ptr_type_info->arch, ptr_type_info->direct_type_key, 1, 0); + } + } if(ptr_is_decay) { ptr_type = e_type_key_cons_ptr(e_base_ctx->primary_module->arch, direct_type, 1, 0); @@ -1696,33 +1704,68 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I case E_ExprKind_LeafIdentifier: { Temp scratch = scratch_begin(&arena, 1); + String8 disambiguator = expr->disambiguator; String8 qualifier = expr->qualifier; String8 string = expr->string; String8 string__redirected = string; B32 string_mapped = 0; B32 string_is_implicit_member_name = 0; E_TypeKey mapped_type_key = zero_struct; - E_Module *mapped_location_block_module = &e_module_nil; - RDI_LocationBlock *mapped_location_block = 0; + E_DbgInfo *mapped_dbg_info = &e_dbg_info_nil; + E_Module *mapped_location_module = &e_module_nil; + RDI_Location mapped_location = 0; E_Mode mapped_bytecode_mode = E_Mode_Offset; E_Space mapped_bytecode_space = zero_struct; String8 mapped_bytecode = {0}; void *mapped_user_data = 0; B32 generated = 0; + //- rjf: determine the allowed identifier resolution path, if any + B32 do_limit_resolve_path = 0; + E_IdentifierResolutionPath limit_resolve_path = E_IdentifierResolutionPath_Local; + if(qualifier.size != 0) + { + do_limit_resolve_path = 1; + if(str8_match(qualifier, s("member"), 0)) + { + limit_resolve_path = E_IdentifierResolutionPath_ImplicitThisMember; + } + else if(str8_match(qualifier, s("local"), 0)) + { + limit_resolve_path = E_IdentifierResolutionPath_Local; + } + else if(str8_match(qualifier, s("symbol"), 0)) + { + limit_resolve_path = E_IdentifierResolutionPath_DebugInfoMatch; + } + else if(str8_match(qualifier, s("reg"), 0)) + { + limit_resolve_path = E_IdentifierResolutionPath_Registers; + } + else if(str8_match(qualifier, s("query"), 0) || + str8_match(qualifier, s("macro"), 0)) + { + limit_resolve_path = E_IdentifierResolutionPath_Macros; + } + else + { + do_limit_resolve_path = 0; + } + } + //- rjf: iterate identifier resolution rule paths, try to resolve // identifier in that order. for(U64 path_idx = 0; !generated && path_idx < identifier_resolution_rule->count; path_idx += 1) { //- rjf: try to map identifier via this path E_IdentifierResolutionPath path = identifier_resolution_rule->paths[path_idx]; - ProfScope("identifier resolution %i", path) switch(path) + ProfScope("identifier resolution %i", path) if(!do_limit_resolve_path || limit_resolve_path == path) switch(path) { default:{}break; //- rjf: try to map name as a wildcard instance case E_IdentifierResolutionPath_WildcardInst: - if(!generated && qualifier.size == 0 && !string_mapped && e_cache->first_wildcard_inst != 0) + if(!generated && !string_mapped && e_cache->first_wildcard_inst != 0) { for(E_AutoHookWildcardInst *inst = e_cache->first_wildcard_inst; inst != 0; inst = inst->next) { @@ -1737,7 +1780,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: try to map name as parent expression signifier ('$') case E_IdentifierResolutionPath_ParentExpr: - if(qualifier.size == 0 && !string_mapped && str8_match(string, str8_lit("$"), 0) && parent != 0 && (parent->root != &e_irnode_nil || parent->msgs.first != 0)) + if(!string_mapped && str8_match(string, str8_lit("$"), 0) && parent != 0 && (parent->root != &e_irnode_nil || parent->msgs.first != 0)) { E_IRTreeAndType *parent_irtree = parent; { @@ -1767,7 +1810,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: try to map name as implicit access of overridden expression ('$.member_name', where the $. prefix is omitted) case E_IdentifierResolutionPath_ParentExprMember: - if(qualifier.size == 0 && !string_mapped && parent != 0 && parent->root != &e_irnode_nil) + if(!string_mapped && parent != 0 && parent->root != &e_irnode_nil) { for(E_IRTreeAndType *prev = parent; prev != 0; prev = prev->prev) { @@ -1793,12 +1836,12 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: try to map name as member of `this` - if found, string__redirected := "this", and turn // on later implicit-member-lookup generation case E_IdentifierResolutionPath_ImplicitThisMember: - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("member"), 0))) + if(!string_mapped) { E_Module *module = e_base_ctx->primary_module; E_DbgInfo *dbg_info = e_dbg_info_from_module(module); RDI_Parsed *rdi = dbg_info->rdi; - RDI_Procedure *procedure = e_cache->thread_ip_procedure; + RDI_Symbol *procedure = e_cache->thread_ip_procedure; RDI_UDT *udt = rdi_container_udt_from_procedure(rdi, procedure); RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, udt->self_type_idx); E_TypeKey container_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), udt->self_type_idx, module->dbg_info_num); @@ -1812,7 +1855,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: try locals case E_IdentifierResolutionPath_Local: - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("local"), 0))) + if(!string_mapped) { E_Module *module = e_base_ctx->primary_module; E_DbgInfo *dbg_info = e_dbg_info_from_module(module); @@ -1820,7 +1863,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I U64 local_num = e_num_from_string(e_ir_ctx->locals_map, string__redirected); if(local_num != 0) { - RDI_Local *local = rdi_element_from_name_idx(rdi, Locals, local_num-1); + RDI_Symbol *local = rdi_element_from_name_idx(rdi, LocalVariables, local_num-1); // rjf: extract local's type key RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, local->type_idx); @@ -1829,16 +1872,13 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I // rjf: extract local's location block B32 got_location_block = 0; U64 ip_voff = e_base_ctx->thread_ip_voff; - for(U32 loc_block_idx = local->location_first; - loc_block_idx < local->location_opl; - loc_block_idx += 1) { - RDI_LocationBlock *block = rdi_element_from_name_idx(rdi, LocationBlocks, loc_block_idx); - if(block->scope_off_first <= ip_voff && ip_voff < block->scope_off_opl) + mapped_location = rdi_location_from_location_voff(rdi, local->location, ip_voff); + if(mapped_location != 0) { - mapped_location_block_module = module; - mapped_location_block = block; got_location_block = 1; + mapped_dbg_info = dbg_info; + mapped_location_module = module; } } @@ -1852,9 +1892,10 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: built-in constants case E_IdentifierResolutionPath_BuiltInConstants: + if(!string_mapped) { // rjf: "true" - if(!string_mapped && str8_match(string, str8_lit("true"), 0)) + if(str8_match(string, str8_lit("true"), 0)) { string_mapped = 1; E_OpList oplist = {0}; @@ -1865,7 +1906,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I } // rjf: "false" - if(!string_mapped && str8_match(string, str8_lit("false"), 0)) + else if(str8_match(string, str8_lit("false"), 0)) { string_mapped = 1; E_OpList oplist = {0}; @@ -1878,6 +1919,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: built-in types case E_IdentifierResolutionPath_BuiltInTypes: + if(!string_mapped) { mapped_type_key = e_leaf_builtin_type_key_from_name(string); string_mapped = !e_type_key_match(mapped_type_key, e_type_key_zero()); @@ -1885,217 +1927,219 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I //- rjf: debug info matches case E_IdentifierResolutionPath_DebugInfoMatch: + if(!string_mapped) { - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("symbol"), 0))) + Access *access = access_open(); + + // rjf: unpack qualifier (module / debug info / unit info) + U64 qualifier_module_num = 0; + U64 qualifier_dbg_info_num = 0; + String8 leftover = {0}; { - Access *access = access_open(); - - // rjf: find match - DI_Match match = di_match_from_string(string, 0, e_base_ctx->primary_dbg_info->dbgi_key, 0); - if(match.idx == 0) + U64 piece_start_off = 0; + for(U64 off = 0; off <= qualifier.size; off += 1) { - String8List namespaceified_strings = {0}; + if(off == qualifier.size || qualifier.str[off] == ':' || qualifier.str[off] == '!') { - E_Module *module = e_base_ctx->primary_module; - E_DbgInfo *dbg_info = e_dbg_info_from_module(module); - RDI_Parsed *rdi = dbg_info->rdi; - RDI_Procedure *procedure = e_cache->thread_ip_procedure; - U64 name_size = 0; - U8 *name_ptr = rdi_string_from_idx(rdi, procedure->name_string_idx, &name_size); - String8 containing_procedure_name = str8(name_ptr, name_size); - U64 last_past_scope_resolution_pos = 0; - for(;;) + String8 piece = str8_substr(qualifier, r1u64(piece_start_off, off)); + + // rjf: try to match this piece as a module + B32 was_module = 0; + if(qualifier_module_num == 0) { - U64 past_next_dbl_colon_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("::"), 0)+2; - U64 past_next_dot_pos = str8_find_needle(containing_procedure_name, last_past_scope_resolution_pos, str8_lit("."), 0)+1; - U64 past_next_scope_resolution_pos = Min(past_next_dbl_colon_pos, past_next_dot_pos); - if(past_next_scope_resolution_pos >= containing_procedure_name.size) - { - break; - } - String8 new_namespace_prefix_possibility = str8_prefix(containing_procedure_name, past_next_scope_resolution_pos); - String8 namespaceified_string = push_str8f(scratch.arena, "%S%S", new_namespace_prefix_possibility, string); - str8_list_push_front(scratch.arena, &namespaceified_strings, namespaceified_string); - last_past_scope_resolution_pos = past_next_scope_resolution_pos; + qualifier_module_num = e_num_from_string(e_base_ctx->module_from_name_map, piece); + was_module = (qualifier_module_num != 0); } - } - for(String8Node *n = namespaceified_strings.first; n != 0; n = n->next) - { - match = di_match_from_string(n->string, 0, e_base_ctx->primary_dbg_info->dbgi_key, 0); - if(match.idx != 0) + + // rjf: try to match this piece as a debug info + B32 was_dbg_info = 0; + if(qualifier_dbg_info_num == 0) { - break; + qualifier_dbg_info_num = e_num_from_string(e_base_ctx->dbg_info_from_name_map, piece); + was_dbg_info = (qualifier_dbg_info_num != 0); } + + // rjf: wasn't a debug info or module name -> keep as leftover + if(!was_module && !was_dbg_info) + { + leftover = piece; + } + + piece_start_off = off+1; } } - - // rjf: match -> RDI - RDI_Parsed *rdi = di_rdi_from_key(access, match.key, 0, 0); - - // rjf: find dbg info from rdi - E_DbgInfo *dbg_info = &e_dbg_info_nil; - U32 dbg_info_num = 0; - for EachIndex(idx, e_base_ctx->dbg_infos_count) + } + + // rjf: unpack selected debug info + B32 allow_other_dbg_infos = 1; + E_DbgInfo *target_dbg_info = e_base_ctx->primary_dbg_info; + if(1 <= qualifier_dbg_info_num && qualifier_dbg_info_num <= e_base_ctx->dbg_infos_count) + { + target_dbg_info = &e_base_ctx->dbg_infos[qualifier_dbg_info_num-1]; + allow_other_dbg_infos = 0; + } + else if(1 <= qualifier_module_num && qualifier_module_num <= e_base_ctx->modules_count) + { + E_Module *module = &e_base_ctx->modules[qualifier_module_num-1]; + target_dbg_info = e_dbg_info_from_module(module); + allow_other_dbg_infos = 0; + } + + // rjf: if we have a leftover -> try to match as a unit name + U64 unit_idx = 0; + if(leftover.size != 0 && target_dbg_info != &e_dbg_info_nil) + { + RDI_Parsed *rdi = target_dbg_info->rdi; + RDI_NameMap *unit_name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Units); + RDI_ParsedNameMap unit_name_map_parsed = {0}; + rdi_parsed_from_name_map(rdi, unit_name_map, &unit_name_map_parsed); + RDI_NameMapNode *match_node = rdi_name_map_lookup(rdi, &unit_name_map_parsed, leftover.str, leftover.size); + U32 unit_idx_match_count = 0; + U32 *unit_idx_matches = rdi_matches_from_map_node(rdi, match_node, &unit_idx_match_count); + if(unit_idx_match_count != 0) { - if(e_base_ctx->dbg_infos[idx].rdi == rdi) + unit_idx = unit_idx_matches[0]; + allow_other_dbg_infos = 0; + } + } + + // rjf: determine disambiguating index + U64 match_disambiguating_idx = 0; + if(disambiguator.size != 0) + { + try_u64_from_str8_c_rules(disambiguator, &match_disambiguating_idx); + } + + // rjf: find match + DI_Match match = di_match_from_string(string, match_disambiguating_idx, (U32)unit_idx, allow_other_dbg_infos, target_dbg_info->dbgi_key, 0); + + // rjf: match -> RDI + RDI_Parsed *rdi = di_rdi_from_key(access, match.key, 0, 0); + + // rjf: ambiguous global/thread variable in primary debug info -> try fully qualifying the name implicitly. + if((match.section_kind == RDI_SectionKind_GlobalVariables || + match.section_kind == RDI_SectionKind_ThreadVariables) && + match.count != 1 && + rdi == e_base_ctx->primary_dbg_info->rdi) + { + U64 voff = e_base_ctx->thread_ip_voff; + U32 unit_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_UnitVMap, voff); + String8 fully_qualified_name = string; + RDI_Symbol *symbol = (RDI_Symbol *)rdi_section_raw_element_from_kind_idx(rdi, match.section_kind, match.idx); + B32 symbol_is_contained = (symbol->container_idx != 0); + if(symbol_is_contained) + { + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff); + String8 procedure_name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure); + fully_qualified_name = str8f(scratch.arena, "%S.%S", procedure_name, string); + } + DI_Match fully_qualified_match_maybe = di_match_from_string(fully_qualified_name, match_disambiguating_idx, unit_idx, 0, e_base_ctx->primary_dbg_info->dbgi_key, 0); + if(fully_qualified_match_maybe.idx != 0) + { + match = fully_qualified_match_maybe; + } + } + + // rjf: find dbg info from rdi + E_DbgInfo *dbg_info = &e_dbg_info_nil; + U32 dbg_info_num = 0; + for EachIndex(idx, e_base_ctx->dbg_infos_count) + { + if(e_base_ctx->dbg_infos[idx].rdi == rdi) + { + dbg_info = &e_base_ctx->dbg_infos[idx]; + dbg_info_num = idx+1; + break; + } + } + + // rjf: find module from dbgi key + E_Module *module = &e_module_nil; + for EachIndex(idx, e_base_ctx->modules_count) + { + if(e_base_ctx->modules[idx].dbg_info_num == dbg_info_num) + { + module = &e_base_ctx->modules[idx]; + if(module == e_base_ctx->primary_module || e_space_match(module->space, e_base_ctx->primary_module->space)) { - dbg_info = &e_base_ctx->dbg_infos[idx]; - dbg_info_num = idx+1; break; } } - - // rjf: find module from dbgi key - E_Module *module = &e_module_nil; - for EachIndex(idx, e_base_ctx->modules_count) - { - if(e_base_ctx->modules[idx].dbg_info_num == dbg_info_num) - { - module = &e_base_ctx->modules[idx]; - if(module == e_base_ctx->primary_module || e_space_match(module->space, e_base_ctx->primary_module->space)) - { - break; - } - } - } - - // rjf: form result - if(match.idx != 0 && dbg_info != &e_dbg_info_nil) - { - switch(match.section_kind) - { - default:{}break; - case RDI_SectionKind_GlobalVariables: - { - RDI_GlobalVariable *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, match.idx); - U32 type_idx = global_var->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + global_var->voff)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = module->space; - }break; - case RDI_SectionKind_ThreadVariables: - { - RDI_ThreadVariable *thread_var = rdi_element_from_name_idx(rdi, ThreadVariables, match.idx); - U32 type_idx = thread_var->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_TLSOff, e_value_u64(thread_var->tls_off)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = module->space; - }break; - case RDI_SectionKind_Constants: - { - RDI_Constant *constant = rdi_element_from_name_idx(rdi, Constants, match.idx); - U32 type_idx = constant->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - RDI_U32 constant_value_off = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx); - RDI_U32 constant_value_size = *rdi_element_from_name_idx(rdi, ConstantValueTable, constant->constant_value_idx+1) - constant_value_off; - if(constant_value_size <= 8) - { - RDI_U64 constant_value_data_size = 0; - RDI_U8 *constant_value_data = rdi_table_from_name(rdi, ConstantValueData, &constant_value_data_size); - if(0 <= constant_value_off && constant_value_off + constant_value_size <= constant_value_data_size) - { - RDI_U64 value = 0; - MemoryCopy(&value, constant_value_data+constant_value_off, constant_value_size); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(value)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - mapped_bytecode_space = module->space; - break; - } - } - }break; - case RDI_SectionKind_Procedures: - { - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, match.idx); - RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); - U64 voff = *rdi_element_from_name_idx(rdi, ScopeVOffData, scope->voff_range_first); - U32 type_idx = procedure->type_idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - E_OpList oplist = {0}; - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU64, e_value_u64(module->vaddr_range.min + voff)); - string_mapped = 1; - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Value; - mapped_bytecode_space = module->space; - }break; - case RDI_SectionKind_TypeNodes: - { - U32 type_idx = match.idx; - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); - mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); - string_mapped = 1; - }break; - } - } - access_close(access); } + + // rjf: form result + if(match.idx != 0 && dbg_info != &e_dbg_info_nil) + { + switch(match.section_kind) + { + default:{}break; + case RDI_SectionKind_GlobalVariables: + case RDI_SectionKind_ThreadVariables: + case RDI_SectionKind_Constants: + { + RDI_Symbol *symbol = (RDI_Symbol *)rdi_section_raw_element_from_kind_idx(rdi, match.section_kind, match.idx); + U64 ip_voff = e_base_ctx->thread_ip_voff; + RDI_Location location = rdi_location_from_location_voff(rdi, symbol->location, ip_voff); + U32 type_idx = symbol->type_idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + string_mapped = 1; + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); + mapped_location = location; + mapped_dbg_info = dbg_info; + mapped_location_module = module; + mapped_bytecode_mode = E_Mode_Offset; + }break; + case RDI_SectionKind_Procedures: + { + RDI_Symbol *procedure = (RDI_Symbol *)rdi_section_raw_element_from_kind_idx(rdi, match.section_kind, match.idx); + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, procedure->type_idx); + U64 procedure_base_voff = rdi_first_voff_from_procedure(rdi, procedure); + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), procedure->type_idx, dbg_info_num); + mapped_location = rdi_location_voff(procedure_base_voff); + mapped_dbg_info = dbg_info; + mapped_location_module = module; + mapped_bytecode_mode = E_Mode_Value; + }break; + case RDI_SectionKind_TypeNodes: + { + U32 type_idx = match.idx; + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, type_idx); + mapped_type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), type_idx, dbg_info_num); + mapped_dbg_info = dbg_info; + string_mapped = 1; + }break; + } + } + access_close(access); }break; //- rjf: try registers case E_IdentifierResolutionPath_Registers: - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("reg"), 0))) + if(!string_mapped) { U64 reg_num = e_num_from_string(e_ir_ctx->regs_map, string); if(reg_num != 0) { string_mapped = 1; - REGS_Rng reg_rng = regs_reg_code_rng_table_from_arch(e_base_ctx->primary_module->arch)[reg_num]; + Arch arch = e_base_ctx->thread_arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + ARCH_RegCode reg_code = reg_num; + Rng1U16 reg_rng = arch_info->reg_code_rng_table[reg_code]; + U64 reg_size = dim_1u16(reg_rng); E_OpList oplist = {0}; - e_oplist_push_uconst(arena, &oplist, reg_rng.byte_off); + e_oplist_push_uconst(arena, &oplist, reg_rng.min); mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); mapped_bytecode_mode = E_Mode_Offset; mapped_bytecode_space = e_base_ctx->thread_reg_space; - REGS_UsageKind reg_usage_kind = regs_reg_code_usage_kind_table_from_arch(e_base_ctx->primary_module->arch)[reg_num]; + B32 is_vector = arch_info->reg_code_is_vector_table[reg_code]; if(0){} - else if(reg_usage_kind == REGS_UsageKind_Normal && reg_rng.byte_size == 1) {mapped_type_key = e_type_key_basic(E_TypeKind_U8);} - else if(reg_usage_kind == REGS_UsageKind_Normal && reg_rng.byte_size == 2) {mapped_type_key = e_type_key_basic(E_TypeKind_U16);} - else if(reg_usage_kind == REGS_UsageKind_Normal && reg_rng.byte_size == 4) {mapped_type_key = e_type_key_basic(E_TypeKind_U32);} - else if(reg_usage_kind == REGS_UsageKind_Normal && reg_rng.byte_size == 8) {mapped_type_key = e_type_key_basic(E_TypeKind_U64);} + else if(!is_vector && reg_size == 1) {mapped_type_key = e_type_key_basic(E_TypeKind_U8);} + else if(!is_vector && reg_size == 2) {mapped_type_key = e_type_key_basic(E_TypeKind_U16);} + else if(!is_vector && reg_size == 4) {mapped_type_key = e_type_key_basic(E_TypeKind_U32);} + else if(!is_vector && reg_size == 8) {mapped_type_key = e_type_key_basic(E_TypeKind_U64);} else { - mapped_type_key = e_type_key_reg(e_base_ctx->primary_module->arch, reg_num); - } - } - }break; - - //- rjf: try register aliases - case E_IdentifierResolutionPath_RegisterAliases: - if(!string_mapped && (qualifier.size == 0 || str8_match(qualifier, str8_lit("reg"), 0))) - { - U64 alias_num = e_num_from_string(e_ir_ctx->reg_alias_map, string); - if(alias_num != 0) - { - string_mapped = 1; - REGS_Slice alias_slice = regs_alias_code_slice_table_from_arch(e_base_ctx->primary_module->arch)[alias_num]; - REGS_Rng alias_reg_rng = regs_reg_code_rng_table_from_arch(e_base_ctx->primary_module->arch)[alias_slice.code]; - E_OpList oplist = {0}; - e_oplist_push_uconst(arena, &oplist, alias_reg_rng.byte_off + alias_slice.byte_off); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = e_base_ctx->thread_reg_space; - REGS_UsageKind reg_usage_kind = regs_alias_code_usage_kind_table_from_arch(e_base_ctx->primary_module->arch)[alias_num]; - if(0){} - else if(reg_usage_kind == REGS_UsageKind_Normal && alias_slice.byte_size == 1) {mapped_type_key = e_type_key_basic(E_TypeKind_U8);} - else if(reg_usage_kind == REGS_UsageKind_Normal && alias_slice.byte_size == 2) {mapped_type_key = e_type_key_basic(E_TypeKind_U16);} - else if(reg_usage_kind == REGS_UsageKind_Normal && alias_slice.byte_size == 4) {mapped_type_key = e_type_key_basic(E_TypeKind_U32);} - else if(reg_usage_kind == REGS_UsageKind_Normal && alias_slice.byte_size == 8) {mapped_type_key = e_type_key_basic(E_TypeKind_U64);} - else - { - mapped_type_key = e_type_key_reg_alias(e_base_ctx->primary_module->arch, alias_num); + mapped_type_key = e_type_key_reg(arch, reg_code); } } }break; @@ -2117,93 +2161,48 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I }break; } - //- rjf: mapped to location block -> extract or produce bytecode for this mapping - if(!generated && mapped_location_block != 0) + //- rjf: mapped to location -> extract or produce bytecode for this mapping + if(!generated && mapped_location != 0 && mapped_bytecode.size == 0) { - E_Module *module = mapped_location_block_module; - E_DbgInfo *dbg_info = e_dbg_info_from_module(module); + E_Module *module = mapped_location_module; + E_DbgInfo *dbg_info = mapped_dbg_info; E_Space space = module->space; Arch arch = module->arch; RDI_Parsed *rdi = dbg_info->rdi; - RDI_LocationBlock *block = mapped_location_block; - U64 all_location_data_size = 0; - U8 *all_location_data = rdi_table_from_name(rdi, LocationData, &all_location_data_size); - if(block->location_data_off + sizeof(RDI_LocationKind) <= all_location_data_size) + RDI_Location location = mapped_location; + E_OpList base_off_adjusted_oplist = {0}; + if(module != e_base_ctx->primary_module) { - RDI_LocationKind loc_kind = *((RDI_LocationKind *)(all_location_data + block->location_data_off)); - switch(loc_kind) + e_oplist_push_set_base_off(scratch.arena, &base_off_adjusted_oplist, module->vaddr_range.min); + } + E_OpList oplist = e_oplist_from_location(scratch.arena, rdi, location); + e_oplist_concat_in_place(&base_off_adjusted_oplist, &oplist); + mapped_bytecode = e_bytecode_from_oplist(arena, &base_off_adjusted_oplist); + mapped_bytecode_space = space; + if(rdi_kind_from_location(location) == RDI_LocationKind_ConstantDataOff) + { + mapped_bytecode_space = e_space_make(E_SpaceKind_DebugConstantData); + mapped_bytecode_space.u64s[0] = (dbg_info != &e_dbg_info_nil ? (dbg_info - e_base_ctx->dbg_infos) + 1 : 0); + } + if(mapped_bytecode_mode == E_Mode_Null) + { + switch(rdi_kind_from_location(mapped_location)) { default:{}break; - case RDI_LocationKind_ValBytecodeStream: {mapped_bytecode_mode = E_Mode_Value;}goto bytecode_stream; - case RDI_LocationKind_AddrBytecodeStream:{mapped_bytecode_mode = E_Mode_Offset;}goto bytecode_stream; - bytecode_stream:; - { - string_mapped = 1; - U64 bytecode_size = 0; - U64 off_first = block->location_data_off + sizeof(RDI_LocationKind); - U64 off_opl = all_location_data_size; - for(U64 off = off_first, next_off = off_opl; - off < all_location_data_size; - off = next_off) - { - next_off = off_opl; - U8 op = all_location_data[off]; - if(op == 0) - { - break; - } - U16 ctrlbits = rdi_eval_op_ctrlbits_table[op]; - U32 p_size = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); - bytecode_size += (1 + p_size); - next_off = (off + 1 + p_size); - } - mapped_bytecode = str8(all_location_data + off_first, bytecode_size); - }break; - case RDI_LocationKind_AddrRegPlusU16: - if(block->location_data_off + sizeof(RDI_LocationRegPlusU16) <= all_location_data_size) - { - string_mapped = 1; - RDI_LocationRegPlusU16 loc = *(RDI_LocationRegPlusU16 *)(all_location_data + block->location_data_off); - E_OpList oplist = {0}; - U64 byte_size = bit_size_from_arch(arch)/8; - U64 regread_param = RDI_EncodeRegReadParam(loc.reg_code, byte_size, 0); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_RegRead, e_value_u64(regread_param)); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU16, e_value_u64(loc.offset)); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_Add, e_value_u64(0)); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = space; - }break; - case RDI_LocationKind_AddrAddrRegPlusU16: - { - string_mapped = 1; - RDI_LocationRegPlusU16 loc = *(RDI_LocationRegPlusU16 *)(all_location_data + block->location_data_off); - E_OpList oplist = {0}; - U64 byte_size = bit_size_from_arch(arch)/8; - U64 regread_param = RDI_EncodeRegReadParam(loc.reg_code, byte_size, 0); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_RegRead, e_value_u64(regread_param)); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_ConstU16, e_value_u64(loc.offset)); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_Add, e_value_u64(0)); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_MemRead, e_value_u64(bit_size_from_arch(arch)/8)); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); - mapped_bytecode_mode = E_Mode_Offset; - mapped_bytecode_space = space; - }break; + case RDI_LocationKind_ValBytecodeStream: case RDI_LocationKind_ValReg: - if(block->location_data_off + sizeof(RDI_LocationReg) <= all_location_data_size) { - string_mapped = 1; - RDI_LocationReg loc = *(RDI_LocationReg *)(all_location_data + block->location_data_off); - REGS_RegCode regs_reg_code = regs_reg_code_from_arch_rdi_code(arch, loc.reg_code); - REGS_Rng reg_rng = regs_reg_code_rng_table_from_arch(arch)[regs_reg_code]; - E_OpList oplist = {0}; - U64 byte_size = (U64)reg_rng.byte_size; - U64 byte_pos = 0; - U64 regread_param = RDI_EncodeRegReadParam(loc.reg_code, byte_size, byte_pos); - e_oplist_push_op(arena, &oplist, RDI_EvalOp_RegRead, e_value_u64(regread_param)); - mapped_bytecode = e_bytecode_from_oplist(arena, &oplist); mapped_bytecode_mode = E_Mode_Value; - mapped_bytecode_space = space; + }break; + case RDI_LocationKind_AddrBytecodeStream: + case RDI_LocationKind_AddrRegPlusOff: + case RDI_LocationKind_AddrAddrRegPlusOff: + { + mapped_bytecode_mode = E_Mode_Offset; + }break; + case RDI_LocationKind_ConstantDataOff: + { + mapped_bytecode_mode = E_Mode_Offset; }break; } } @@ -2273,7 +2272,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { Temp scratch = scratch_begin(&arena, 1); String8 file_path = expr->string; - FileProperties props = os_properties_from_file_path(file_path); + FileProperties props = properties_from_file_path(file_path); if(!str8_match(expr->qualifier, str8_lit("folder"), 0) && !(props.flags & FilePropertyFlag_IsFolder) && file_path.size != 0) { E_Space space = e_space_make(E_SpaceKind_FileSystem); @@ -2284,7 +2283,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I else { String8 folder_path = str8_chop_last_slash(file_path); - props = os_properties_from_file_path(folder_path); + props = properties_from_file_path(folder_path); if(props.flags & FilePropertyFlag_IsFolder || folder_path.size == 0 || str8_match(folder_path, str8_lit("/"), StringMatchFlag_SlashInsensitive)) { E_Space space = e_space_make(E_SpaceKind_FileSystem); @@ -2392,9 +2391,13 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I if(str8_match(chained_expr->string, shorthand_lens_pair_table[shorthand_idx].shorthand, 0)) { String8 full_name = shorthand_lens_pair_table[shorthand_idx].full_name; + E_Expr *lens_spec_expr = e_string2expr_map_lookup(e_ir_ctx->macro_map, full_name); + E_TypeKey lens_spec_type_key = lens_spec_expr->type_key; + E_Type *lens_spec_type = e_type_from_key(lens_spec_type_key); result.type_key = e_type_key_cons(.kind = E_TypeKind_Lens, .direct_key = result.type_key, - .name = full_name); + .name = full_name, + .flags = lens_spec_type->flags); matches_shorthand = 1; break; } @@ -2428,7 +2431,9 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I E_Type *type = e_type_from_key(result.type_key); { E_TypeIRExtFunctionType *irext = type->irext; - for(E_Type *t = type; t->kind == E_TypeKind_Lens || t->kind == E_TypeKind_Set; t = e_type_from_key(t->direct_type_key)) + for(E_Type *t = type; + t->kind == E_TypeKind_Lens || t->kind == E_TypeKind_Set || (E_TypeKind_FirstMeta <= t->kind && t->kind <= E_TypeKind_LastMeta); + t = e_type_from_key(t->direct_type_key)) { if(t->irext != 0) { @@ -2474,7 +2479,7 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I U64 class_base_vaddr = interpret.value.u64; U64 vtable_vaddr = 0; U64 addr_size = e_type_byte_size_from_key(type_key); - if(e_space_read(interpret.space, &vtable_vaddr, r1u64(class_base_vaddr, class_base_vaddr+addr_size))) + if(e_space_read(interpret.space, &vtable_vaddr, 0, r1u64(class_base_vaddr, class_base_vaddr+addr_size))) { Arch arch = e_base_ctx->primary_module->arch; U32 dbg_info_num = 0; @@ -2496,8 +2501,8 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I { U64 vtable_voff = vtable_vaddr - module_base; U64 global_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_GlobalVMap, vtable_voff); - RDI_GlobalVariable *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, global_idx); - if(global_var->link_flags & RDI_LinkFlag_TypeScoped) + RDI_Symbol *global_var = rdi_element_from_name_idx(rdi, GlobalVariables, global_idx); + if((global_var->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Type) { RDI_UDT *udt = rdi_element_from_name_idx(rdi, UDTs, global_var->container_idx); RDI_TypeNode *type = rdi_element_from_name_idx(rdi, TypeNodes, udt->self_type_idx); @@ -2643,6 +2648,12 @@ e_append_oplist_from_irtree(Arena *arena, E_IRNode *root, E_Space *current_space { e_append_oplist_from_irtree(arena, child, current_space, out); } + e_oplist_push_set_space(arena, out, space); + }break; + + case E_IRExtKind_SetBaseOff: + { + e_oplist_push_set_base_off(arena, out, root->value.u64); }break; case RDI_EvalOp_Cond: @@ -2787,6 +2798,21 @@ e_bytecode_from_oplist(Arena *arena, E_OpList *oplist) // rjf: advance ptr = next_ptr; }break; + + case E_IRExtKind_SetBaseOff: + { + // rjf: compute bytecode advance + U64 extra_byte_count = sizeof(U64); + U8 *next_ptr = ptr + 1 + extra_byte_count; + Assert(next_ptr <= opl); + + // rjf: fill bytecode + ptr[0] = opcode; + MemoryCopy(ptr + 1, &op->value.u64, extra_byte_count); + + // rjf: advance + ptr = next_ptr; + }break; } } diff --git a/src/eval/eval_ir.h b/src/eval/eval_ir.h index 96e4194f..0f5fdb6a 100644 --- a/src/eval/eval_ir.h +++ b/src/eval/eval_ir.h @@ -18,7 +18,6 @@ typedef enum E_IdentifierResolutionPath E_IdentifierResolutionPath_BuiltInConstants, E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_Registers, - E_IdentifierResolutionPath_RegisterAliases, E_IdentifierResolutionPath_Macros, } E_IdentifierResolutionPath; @@ -59,7 +58,7 @@ struct E_IRState E_IRCtx *ctx; // rjf: unpacked ctx - RDI_Procedure *thread_ip_procedure; + RDI_Symbol *thread_ip_procedure; // rjf: overridden irtree E_IRTreeAndType *overridden_irtree; @@ -89,7 +88,6 @@ E_IdentifierResolutionPath e_default_identifier_resolution_paths[] = E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, - E_IdentifierResolutionPath_RegisterAliases, E_IdentifierResolutionPath_Macros, }; E_IdentifierResolutionRule e_default_identifier_resolution_rule = @@ -110,7 +108,6 @@ E_IdentifierResolutionPath e_callable_identifier_resolution_paths[] = E_IdentifierResolutionPath_BuiltInTypes, E_IdentifierResolutionPath_DebugInfoMatch, E_IdentifierResolutionPath_Registers, - E_IdentifierResolutionPath_RegisterAliases, }; E_IdentifierResolutionRule e_callable_identifier_resolution_rule = { @@ -127,6 +124,7 @@ internal void e_oplist_push_uconst(Arena *arena, E_OpList *list, U64 x); internal void e_oplist_push_sconst(Arena *arena, E_OpList *list, S64 x); internal void e_oplist_push_bytecode(Arena *arena, E_OpList *list, String8 bytecode); internal void e_oplist_push_set_space(Arena *arena, E_OpList *list, E_Space space); +internal void e_oplist_push_set_base_off(Arena *arena, E_OpList *list, U64 off); internal void e_oplist_push_string_literal(Arena *arena, E_OpList *list, String8 string); internal void e_oplist_concat_in_place(E_OpList *dst, E_OpList *to_push); diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index d3d0d40f..0bdb04c1 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -74,6 +74,7 @@ e_token_array_from_text(Arena *arena, String8 text) B32 active_token_kind_started_with_tick = 0; B32 escaped = 0; B32 exp = 0; + B32 comment_is_explicit_ender = 0; for(U64 idx = 0, advance = 0; idx <= text.size; idx += advance) { U8 byte = (idx+0 < text.size) ? text.str[idx+0] : 0; @@ -113,11 +114,24 @@ e_token_array_from_text(Arena *arena, String8 text) byte == '-' || byte == '=' || byte == '+' || byte == '[' || byte == ']' || byte == '{' || byte == '}' || byte == ':' || byte == ';' || byte == ',' || byte == '.' || byte == '<' || - byte == '>' || byte == '/' || byte == '?' || byte == '|') + byte == '>' || byte == '/' || byte == '?' || byte == '|' || + byte == '#' || byte == '@') { active_token_kind = E_TokenKind_Symbol; active_token_start_idx = idx; } + else if(byte == '/' && byte_next == '/') + { + active_token_kind = E_TokenKind_Comment; + active_token_start_idx = idx; + comment_is_explicit_ender = 0; + } + else if(byte == '/' && byte_next == '*') + { + active_token_kind = E_TokenKind_Comment; + active_token_start_idx = idx; + comment_is_explicit_ender = 1; + } }break; //- rjf: active tokens -> seek enders @@ -224,12 +238,25 @@ e_token_array_from_text(Arena *arena, String8 text) byte != '-' && byte != '=' && byte != '+' && byte != '[' && byte != ']' && byte != '{' && byte != '}' && byte != ':' && byte != ';' && byte != ',' && byte != '.' && byte != '<' && - byte != '>' && byte != '/' && byte != '?' && byte != '|') + byte != '>' && byte != '/' && byte != '?' && byte != '|' && + byte != '#' && byte != '@') { advance = 0; token_formed = 1; } }break; + case E_TokenKind_Comment: + { + if(byte == 0) + { + token_formed = 1; + } + else if(comment_is_explicit_ender && byte == '*' && byte_next == '/') + { + token_formed = 1; + advance = 2; + } + }break; } //- rjf: token formed -> push new formed token(s) @@ -361,9 +388,10 @@ e_expr_copy(Arena *arena, E_Expr *src) dst->space = t->src->space; dst->type_key = t->src->type_key; dst->value = t->src->value; - dst->string = push_str8_copy(arena, t->src->string); - dst->bytecode = push_str8_copy(arena, t->src->bytecode); - dst->qualifier = push_str8_copy(arena, t->src->qualifier); + dst->string = str8_copy(arena, t->src->string); + dst->bytecode = str8_copy(arena, t->src->bytecode); + dst->disambiguator = str8_copy(arena, t->src->disambiguator); + dst->qualifier = str8_copy(arena, t->src->qualifier); if(t->dst_parent == &e_expr_nil) { result = dst; @@ -468,6 +496,10 @@ e_append_strings_from_expr(Arena *arena, E_Expr *expr, String8 parent_expr_strin case E_ExprKind_LeafBytecode: case E_ExprKind_LeafIdentifier: { + if(expr->qualifier.size != 0) + { + str8_list_pushf(arena, out, "%S:", expr->qualifier); + } if(str8_match(expr->string, str8_lit("$"), 0) && parent_expr_string.size != 0) { str8_list_push(arena, out, parent_expr_string); @@ -476,6 +508,10 @@ e_append_strings_from_expr(Arena *arena, E_Expr *expr, String8 parent_expr_strin { str8_list_push(arena, out, expr->string); } + if(expr->disambiguator.size != 0) + { + str8_list_pushf(arena, out, "#%S", expr->disambiguator); + } }break; case E_ExprKind_LeafStringLiteral: { @@ -585,7 +621,7 @@ e_leaf_type_key_from_name(String8 name) E_TypeKey key = e_leaf_builtin_type_key_from_name(name); if(!e_type_key_match(e_type_key_zero(), key)) { - DI_Match match = di_match_from_string(name, 0, e_base_ctx->primary_dbg_info->dbgi_key, 0); + DI_Match match = di_match_from_string(name, 0, 0, 1, e_base_ctx->primary_dbg_info->dbgi_key, 0); if(match.section_kind == RDI_SectionKind_TypeNodes) { Access *access = access_open(); @@ -639,97 +675,6 @@ e_type_key_from_expr(E_Expr *expr) return result; } -internal E_Parse -e_push_type_parse_from_text_tokens(Arena *arena, String8 text, E_TokenArray tokens) -{ - E_Parse parse = {tokens, 0, &e_expr_nil, &e_expr_nil}; - E_Token *token_it = tokens.v; - - //- rjf: parse unsigned marker - B32 unsigned_marker = 0; - { - E_Token token = e_token_at_it(token_it, &tokens); - if(token.kind == E_TokenKind_Identifier) - { - String8 token_string = str8_substr(text, token.range); - if(str8_match(token_string, str8_lit("unsigned"), 0)) - { - token_it += 1; - unsigned_marker = 1; - } - } - } - - //- rjf: parse base type - { - E_Token token = e_token_at_it(token_it, &tokens); - if(token.kind == E_TokenKind_Identifier) - { - String8 token_string = str8_substr(text, token.range); - if(token_string.size >= 2 && - token_string.str[0] == '`' && - token_string.str[token_string.size-1] == '`') - { - token_string = str8_substr(token_string, r1u64(1, token_string.size-1)); - } - E_TypeKey type_key = e_leaf_type_key_from_name(token_string); - if(!e_type_key_match(e_type_key_zero(), type_key)) - { - token_it += 1; - - // rjf: apply unsigned marker to base type - if(unsigned_marker) switch(e_type_kind_from_key(type_key)) - { - default:{}break; - case E_TypeKind_Char8: {type_key = e_type_key_basic(E_TypeKind_UChar8);}break; - case E_TypeKind_Char16:{type_key = e_type_key_basic(E_TypeKind_UChar16);}break; - case E_TypeKind_Char32:{type_key = e_type_key_basic(E_TypeKind_UChar32);}break; - case E_TypeKind_S8: {type_key = e_type_key_basic(E_TypeKind_U8);}break; - case E_TypeKind_S16: {type_key = e_type_key_basic(E_TypeKind_U16);}break; - case E_TypeKind_S32: {type_key = e_type_key_basic(E_TypeKind_U32);}break; - case E_TypeKind_S64: {type_key = e_type_key_basic(E_TypeKind_U64);}break; - case E_TypeKind_S128:{type_key = e_type_key_basic(E_TypeKind_U128);}break; - case E_TypeKind_S256:{type_key = e_type_key_basic(E_TypeKind_U256);}break; - case E_TypeKind_S512:{type_key = e_type_key_basic(E_TypeKind_U512);}break; - } - - // rjf: construct leaf type - parse.expr = e_push_expr(arena, E_ExprKind_TypeIdent, token.range); - parse.expr->type_key = type_key; - } - } - } - - //- rjf: parse extensions - if(parse.expr != &e_expr_nil) - { - for(;;) - { - E_Token token = e_token_at_it(token_it, &tokens); - if(token.kind != E_TokenKind_Symbol) - { - break; - } - String8 token_string = str8_substr(text, token.range); - if(str8_match(token_string, str8_lit("*"), 0)) - { - token_it += 1; - E_Expr *ptee = parse.expr; - parse.expr = e_push_expr(arena, E_ExprKind_Ptr, token.range); - e_expr_push_child(parse.expr, ptee); - } - else - { - break; - } - } - } - - //- rjf: fill parse & end - parse.last_token = token_it; - return parse; -} - internal E_Parse e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray tokens, S64 max_precedence, U64 max_chain_count) { @@ -836,14 +781,14 @@ e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray t } // rjf: try 'unsigned' marker - if(str8_match(token_string, str8_lit("unsigned"), 0)) + if(token.kind == E_TokenKind_Identifier && str8_match(token_string, str8_lit("unsigned"), 0)) { prefix_unary_kind = E_ExprKind_Unsigned; prefix_unary_precedence = 2; } // rjf: try explicit cast - if(str8_match(token_string, str8_lit("cast"), 0)) + if(token.kind == E_TokenKind_Identifier && str8_match(token_string, str8_lit("cast"), 0)) { // rjf: consume cast & open paren E_Token open_paren_maybe = e_token_at_it(it+1, &tokens); @@ -910,18 +855,51 @@ e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray t // String8 resolution_qualifier = {0}; { - E_Token token = e_token_at_it(it, &tokens); - String8 token_string = str8_substr(text, token.range); - if(token.kind == E_TokenKind_Identifier) + Rng1U64 resolution_qualifier_chain_range = {0}; + for(B32 resolution_qualifiers_done = 0; !resolution_qualifiers_done;) { - E_Token next_token = e_token_at_it(it+1, &tokens); - String8 next_token_string = str8_substr(text, next_token.range); - if(next_token.range.min == token.range.max && next_token.kind == E_TokenKind_Symbol && str8_match(next_token_string, str8_lit(":"), 0)) + B32 is_qualifier = 0; + E_Token token = e_token_at_it(it, &tokens); + String8 token_string = str8_substr(text, token.range); + if(token.kind == E_TokenKind_Identifier || token.kind == E_TokenKind_StringLiteral) { - it += 2; - resolution_qualifier = token_string; + // rjf: look for extensions - for qualifiers of the form `foo.dll!bar` + U64 token_ext_count = 0; + E_Token dot_maybe_token = e_token_at_it(it+1, &tokens); + String8 dot_maybe_token_string = str8_substr(text, dot_maybe_token.range); + E_Token ext_maybe_token = e_token_at_it(it+2, &tokens); + String8 ext_maybe_token_string = str8_substr(text, ext_maybe_token.range); + if(dot_maybe_token.kind == E_TokenKind_Symbol && + ext_maybe_token.kind == E_TokenKind_Identifier && + str8_match(dot_maybe_token_string, str8_lit("."), 0)) + { + token_ext_count = 2; + } + + // rjf: look for : or ! + E_Token next_token = e_token_at_it(it+1+token_ext_count, &tokens); + String8 next_token_string = str8_substr(text, next_token.range); + if(next_token.kind == E_TokenKind_Symbol && (str8_match(next_token_string, str8_lit(":"), 0) || str8_match(next_token_string, str8_lit("!"), 0))) + { + is_qualifier = 1; + it += 2 + token_ext_count; + Rng1U64 qualifier_range = union_1u64(token.range, r1u64(token.range.min, next_token.range.min)); + if(resolution_qualifier_chain_range.max == resolution_qualifier_chain_range.min) + { + resolution_qualifier_chain_range = qualifier_range; + } + else + { + resolution_qualifier_chain_range = union_1u64(qualifier_range, resolution_qualifier_chain_range); + } + } + } + if(!is_qualifier) + { + resolution_qualifiers_done = 1; } } + resolution_qualifier = str8_substr(text, resolution_qualifier_chain_range); } //////////////////////// @@ -1046,6 +1024,27 @@ e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray t it += 1; got_new_atom = 1; } + + // rjf: equip disambiguator + if(got_new_atom) + { + E_Token possible_hash = e_token_at_it(it, &tokens); + E_Token possible_numeric = e_token_at_it(it+1, &tokens); + String8 possible_hash_string = str8_substr(text, possible_hash.range); + String8 possible_numeric_string = str8_substr(text, possible_numeric.range); + if(possible_hash.kind == E_TokenKind_Symbol && str8_match(possible_hash_string, str8_lit("#"), 0)) + { + if(possible_numeric.kind == E_TokenKind_Numeric) + { + atom->disambiguator = possible_numeric_string; + it += 2; + } + else + { + e_msgf(arena, &result.msgs, E_MsgKind_MalformedInput, possible_numeric.range, "Expected disambiguating number after `#`."); + } + } + } } //////////////////////// @@ -1546,7 +1545,7 @@ internal E_Parse e_push_parse_from_string(Arena *arena, String8 text) { Temp scratch = scratch_begin(&arena, 1); - E_TokenArray tokens = e_token_array_from_text(scratch.arena, text); + E_TokenArray tokens = e_token_array_from_text(arena, text); E_Parse parse = e_push_parse_from_string_tokens__prec(arena, text, tokens, e_max_precedence, max_U64); scratch_end(scratch); return parse; diff --git a/src/eval/eval_parse.h b/src/eval/eval_parse.h index 1f14b160..f9f8f22f 100644 --- a/src/eval/eval_parse.h +++ b/src/eval/eval_parse.h @@ -37,7 +37,6 @@ internal String8 e_string_from_expr(Arena *arena, E_Expr *expr, String8 parent_e internal E_TypeKey e_leaf_builtin_type_key_from_name(String8 name); internal E_TypeKey e_leaf_type_key_from_name(String8 name); internal E_TypeKey e_type_key_from_expr(E_Expr *expr); -internal E_Parse e_push_type_parse_from_text_tokens(Arena *arena, String8 text, E_TokenArray tokens); internal E_Parse e_push_parse_from_string_tokens__prec(Arena *arena, String8 text, E_TokenArray tokens, S64 max_precedence, U64 max_chain_count); internal E_Parse e_push_parse_from_string(Arena *arena, String8 text); diff --git a/src/eval/eval_types.c b/src/eval/eval_types.c index 7a395e3b..d1ca382f 100644 --- a/src/eval/eval_types.c +++ b/src/eval/eval_types.c @@ -288,7 +288,7 @@ e_type_key_ext(E_TypeKind kind, U32 type_idx, U32 rdi_num) } internal E_TypeKey -e_type_key_reg(Arch arch, REGS_RegCode code) +e_type_key_reg(Arch arch, ARCH_RegCode code) { E_TypeKey key = {E_TypeKeyKind_Reg}; key.u32[0] = (U32)arch; @@ -296,15 +296,6 @@ e_type_key_reg(Arch arch, REGS_RegCode code) return key; } -internal E_TypeKey -e_type_key_reg_alias(Arch arch, REGS_AliasCode code) -{ - E_TypeKey key = {E_TypeKeyKind_RegAlias}; - key.u32[0] = (U32)arch; - key.u32[1] = (U32)code; - return key; -} - //- rjf: constructed type construction internal U64 @@ -625,7 +616,6 @@ e_type_kind_from_key(E_TypeKey key) case E_TypeKeyKind_Ext: {kind = (E_TypeKind)key.u32[0];}break; case E_TypeKeyKind_Cons: {kind = (E_TypeKind)key.u32[0];}break; case E_TypeKeyKind_Reg: {kind = E_TypeKind_Union;}break; - case E_TypeKeyKind_RegAlias:{kind = E_TypeKind_Union;}break; } return kind; } @@ -714,7 +704,7 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) type = push_array(arena, E_Type, 1); type->kind = e_type_kind_from_key(node->key); type->flags = node->params.flags; - type->name = push_str8_copy(arena, node->params.name); + type->name = str8_copy(arena, node->params.name); type->direct_type_key = node->params.direct_key; type->count = node->params.count; type->depth = node->params.depth; @@ -768,16 +758,17 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); Arch arch = arch_from_rdi_arch(tli->arch); RDI_TypeNode *rdi_type = rdi_element_from_name_idx(rdi, TypeNodes, type_node_idx); - if(rdi_type->kind != RDI_TypeKind_NULL) + if(rdi_type->kind != RDI_TypeKind_Null) { E_TypeKind kind = e_type_kind_from_rdi(rdi_type->kind); //- rjf: record types => unpack name * members & produce if(RDI_TypeKind_FirstRecord <= rdi_type->kind && rdi_type->kind <= RDI_TypeKind_LastRecord) { + Temp scratch = scratch_begin(&arena, 1); + // rjf: unpack name - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, rdi_type->user_defined.name_string_idx, &name.size); + String8 name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, rdi_type); // rjf: unpack UDT info RDI_UDT *udt = rdi_element_from_name_idx(rdi, UDTs, rdi_type->user_defined.udt_idx); @@ -810,19 +801,22 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) // rjf: produce type = push_array(arena, E_Type, 1); type->kind = kind; - type->name = push_str8_copy(arena, name); + type->name = str8_copy(arena, name); type->byte_size = (U64)rdi_type->byte_size; type->count = members_count; type->arch = arch; type->members = members; + + scratch_end(scratch); } //- rjf: enum types => unpack name * values & produce else if(rdi_type->kind == RDI_TypeKind_Enum) { + Temp scratch = scratch_begin(&arena, 1); + // rjf: unpack name - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, rdi_type->user_defined.name_string_idx, &name.size); + String8 name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, rdi_type); // rjf: unpack direct type E_TypeKey direct_type_key = zero_struct; @@ -861,6 +855,8 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) type->arch = arch; type->enum_vals = enum_vals; type->direct_type_key = direct_type_key; + + scratch_end(scratch); } //- rjf: constructed types @@ -1019,9 +1015,10 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) //- rjf: alias types else if(rdi_type->kind == RDI_TypeKind_Alias) { + Temp scratch = scratch_begin(&arena, 1); + // rjf: unpack name - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, rdi_type->user_defined.name_string_idx, &name.size); + String8 name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, rdi_type); // rjf: unpack direct type E_TypeKey direct_type_key = zero_struct; @@ -1041,6 +1038,8 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) type->byte_size = direct_type_byte_size; type->direct_type_key = direct_type_key; type->arch = arch; + + scratch_end(scratch); } //- rjf: bitfields @@ -1070,17 +1069,19 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) //- rjf: incomplete types else if(RDI_TypeKind_FirstIncomplete <= rdi_type->kind && rdi_type->kind <= RDI_TypeKind_LastIncomplete) { + Temp scratch = scratch_begin(&arena, 1); + // rjf: unpack name - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, rdi_type->user_defined.name_string_idx, &name.size); + String8 name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, rdi_type); // rjf: produce type = push_array(arena, E_Type, 1); type->kind = kind; type->name = push_str8_copy(arena, name); type->arch = arch; + + scratch_end(scratch); } - } } }break; @@ -1089,16 +1090,10 @@ e_push_type_from_key(Arena *arena, E_TypeKey key) case E_TypeKeyKind_Reg: { Arch arch = (Arch)key.u32[0]; - REGS_RegCode code = (REGS_RegCode)key.u32[1]; - REGS_Rng rng = regs_reg_code_rng_table_from_arch(arch)[code]; - reg_byte_count = (U64)rng.byte_size; - }goto build_reg_type; - case E_TypeKeyKind_RegAlias: - { - Arch arch = (Arch)key.u32[0]; - REGS_AliasCode code = (REGS_AliasCode)key.u32[1]; - REGS_Slice slice = regs_alias_code_slice_table_from_arch(arch)[code]; - reg_byte_count = (U64)slice.byte_size; + ARCH_Info *arch_info = arch_info_from_arch(arch); + ARCH_RegCode code = (ARCH_RegCode)key.u32[1]; + Rng1U16 rng = arch_info->reg_code_rng_table[code]; + reg_byte_count = (U64)dim_1u16(rng); }goto build_reg_type; build_reg_type: { @@ -1671,6 +1666,8 @@ e_type_lhs_string_from_key(Arena *arena, E_TypeKey key, String8List *out, U32 pr str8_list_pushf(arena, out, "%S ", type->name); }break; + case E_TypeKind_Null:{}break; + case E_TypeKind_Bitfield: { E_Type *type = e_type_from_key(key); @@ -2588,11 +2585,11 @@ e_list_gather_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U //- rjf: unpack key // TODO(rjf): this needs to take any `E_Space`, once eval has been upgraded. - CTRL_Handle process = {0}; + D_Handle process = {0}; U64 base_off = 0; U64 member_element_off = 0; U64 member_size = 0; - E_SpaceRWFunction *space_read = 0; + E_SpaceReadFunction *space_read = 0; { U64 key_read_off = 0; key_read_off += str8_deserial_read_struct(key, key_read_off, &process); @@ -2672,7 +2669,7 @@ e_list_gather_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U //- rjf: read next offset, advance B32 read_stale = 0; - B32 read_good = ctrl_process_memory_read(process, r1u64(off + member_element_off, off + member_element_off + member_size), &read_stale, &next_off, 0); + B32 read_good = d_process_memory_read(process, r1u64(off + member_element_off, off + member_element_off + member_size), &read_stale, &next_off, 0); if(read_stale) { retry = 1; @@ -2813,11 +2810,11 @@ E_TYPE_IREXT_FUNCTION_DEF(list) #pragma pack(push, 1) struct { - CTRL_Handle process; + D_Handle process; U64 base_off; U64 member_element_off; U64 member_size; - E_SpaceRWFunction *space_read; + E_SpaceReadFunction *space_read; } key_data = { @@ -3106,23 +3103,23 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(folder) String8List folder_paths = {0}; String8List file_paths = {0}; { - OS_FileIter *iter = os_file_iter_begin(scratch.arena, folder_path, 0); - for(OS_FileInfo info = {0}; os_file_iter_next(scratch.arena, iter, &info);) + FileIter *iter = file_iter_begin(scratch.arena, folder_path, 0); + for(FileInfo info = {0}; file_iter_next(scratch.arena, iter, &info);) { FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, local_filter, info.name); if(matches.count == matches.needle_part_count) { if(info.props.flags & FilePropertyFlag_IsFolder) { - str8_list_push(scratch.arena, &folder_paths, push_str8_copy(arena, info.name)); + str8_list_push(scratch.arena, &folder_paths, str8_copy(arena, info.name)); } else { - str8_list_push(scratch.arena, &file_paths, push_str8_copy(arena, info.name)); + str8_list_push(scratch.arena, &file_paths, str8_copy(arena, info.name)); } } } - os_file_iter_end(iter); + file_iter_end(iter); } //- rjf: build accelerator @@ -3241,7 +3238,7 @@ E_TYPE_IREXT_FUNCTION_DEF(file) //- rjf: fill accel accel->file_path = push_str8_copy(arena, file_path); - accel->props = os_properties_from_file_path(file_path); + accel->props = properties_from_file_path(file_path); accel->fields = str8_array_from_list(arena, &fields); scratch_end(scratch); diff --git a/src/eval/eval_types.h b/src/eval/eval_types.h index 94f6908f..216b301a 100644 --- a/src/eval/eval_types.h +++ b/src/eval/eval_types.h @@ -71,8 +71,7 @@ internal E_EnumValArray e_enum_val_array_from_list(Arena *arena, E_EnumValList * internal E_TypeKey e_type_key_zero(void); internal E_TypeKey e_type_key_basic(E_TypeKind kind); internal E_TypeKey e_type_key_ext(E_TypeKind kind, U32 type_idx, U32 rdi_num); -internal E_TypeKey e_type_key_reg(Arch arch, REGS_RegCode code); -internal E_TypeKey e_type_key_reg_alias(Arch arch, REGS_AliasCode code); +internal E_TypeKey e_type_key_reg(Arch arch, ARCH_RegCode code); //- rjf: constructed type construction internal U64 e_hash_from_cons_type_params(E_ConsTypeParams *params); diff --git a/src/eval/generated/eval.meta.c b/src/eval/generated/eval.meta.c index 5459b3a4..e3af8aa3 100644 --- a/src/eval/generated/eval.meta.c +++ b/src/eval/generated/eval.meta.c @@ -1,271 +1,272 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 e_token_kind_strings[6] = -{ -str8_lit_comp("Null"), -str8_lit_comp("Identifier"), -str8_lit_comp("Numeric"), -str8_lit_comp("StringLiteral"), -str8_lit_comp("CharLiteral"), -str8_lit_comp("Symbol"), -}; - -String8 e_type_kind_basic_string_table[61] = -{ -str8_lit_comp(""), -str8_lit_comp("void"), -str8_lit_comp("HANDLE"), -str8_lit_comp("HRESULT"), -str8_lit_comp("char8"), -str8_lit_comp("char16"), -str8_lit_comp("char32"), -str8_lit_comp("uchar8"), -str8_lit_comp("uchar16"), -str8_lit_comp("uchar32"), -str8_lit_comp("uint8"), -str8_lit_comp("uint16"), -str8_lit_comp("uint32"), -str8_lit_comp("uint64"), -str8_lit_comp("uint128"), -str8_lit_comp("uint256"), -str8_lit_comp("uint512"), -str8_lit_comp("int8"), -str8_lit_comp("int16"), -str8_lit_comp("int32"), -str8_lit_comp("int64"), -str8_lit_comp("int128"), -str8_lit_comp("int256"), -str8_lit_comp("int512"), -str8_lit_comp("bool"), -str8_lit_comp("float16"), -str8_lit_comp("float32"), -str8_lit_comp("float32PP"), -str8_lit_comp("float48"), -str8_lit_comp("float64"), -str8_lit_comp("float80"), -str8_lit_comp("float128"), -str8_lit_comp("complex_float32"), -str8_lit_comp("complex_float64"), -str8_lit_comp("complex_float80"), -str8_lit_comp("complex_float128"), -str8_lit_comp("modifier"), -str8_lit_comp("ptr"), -str8_lit_comp("lref"), -str8_lit_comp("rref"), -str8_lit_comp("array"), -str8_lit_comp("function"), -str8_lit_comp("method"), -str8_lit_comp("member_ptr"), -str8_lit_comp("struct"), -str8_lit_comp("class"), -str8_lit_comp("union"), -str8_lit_comp("enum"), -str8_lit_comp("typedef"), -str8_lit_comp("struct"), -str8_lit_comp("union"), -str8_lit_comp("class"), -str8_lit_comp("enum"), -str8_lit_comp("bitfield"), -str8_lit_comp("variadic"), -str8_lit_comp("set"), -str8_lit_comp("lens"), -str8_lit_comp("lens_spec"), -str8_lit_comp("meta_expr"), -str8_lit_comp("meta_display_name"), -str8_lit_comp("meta_description"), -}; - -U8 e_type_kind_basic_byte_size_table[61] = -{ -0, -0, -0xFF, -4, -1, -2, -4, -1, -2, -4, -1, -2, -4, -8, -16, -32, -64, -1, -2, -4, -8, -16, -32, -64, -1, -2, -4, -4, -6, -8, -10, -16, -8, -16, -20, -32, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -0, -}; - -String8 e_expr_kind_strings[50] = -{ -str8_lit_comp("Nil"), -str8_lit_comp("Ref"), -str8_lit_comp("ArrayIndex"), -str8_lit_comp("MemberAccess"), -str8_lit_comp("Deref"), -str8_lit_comp("Address"), -str8_lit_comp("Cast"), -str8_lit_comp("Sizeof"), -str8_lit_comp("Typeof"), -str8_lit_comp("Symbolof"), -str8_lit_comp("ByteSwap"), -str8_lit_comp("Pos"), -str8_lit_comp("Neg"), -str8_lit_comp("LogNot"), -str8_lit_comp("BitNot"), -str8_lit_comp("Mul"), -str8_lit_comp("Div"), -str8_lit_comp("Mod"), -str8_lit_comp("Add"), -str8_lit_comp("Sub"), -str8_lit_comp("LShift"), -str8_lit_comp("RShift"), -str8_lit_comp("Less"), -str8_lit_comp("LsEq"), -str8_lit_comp("Grtr"), -str8_lit_comp("GrEq"), -str8_lit_comp("EqEq"), -str8_lit_comp("NtEq"), -str8_lit_comp("BitAnd"), -str8_lit_comp("BitXor"), -str8_lit_comp("BitOr"), -str8_lit_comp("LogAnd"), -str8_lit_comp("LogOr"), -str8_lit_comp("Ternary"), -str8_lit_comp("Call"), -str8_lit_comp("LeafBytecode"), -str8_lit_comp("LeafStringLiteral"), -str8_lit_comp("LeafU64"), -str8_lit_comp("LeafF64"), -str8_lit_comp("LeafF32"), -str8_lit_comp("LeafIdentifier"), -str8_lit_comp("LeafOffset"), -str8_lit_comp("LeafValue"), -str8_lit_comp("LeafFilePath"), -str8_lit_comp("TypeIdent"), -str8_lit_comp("Ptr"), -str8_lit_comp("Array"), -str8_lit_comp("Func"), -str8_lit_comp("Unsigned"), -str8_lit_comp("Define"), -}; - -E_OpInfo e_expr_kind_op_info_table[50] = -{ -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp("["), str8_lit_comp("]"), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp("."), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("*"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("&"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 1, str8_lit_comp("cast("), str8_lit_comp(")"), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("typeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("symbolof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("bswap "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("+"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("-"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("!"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("~"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" * "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" / "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" % "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 4, str8_lit_comp(""), str8_lit_comp(" + "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 4, str8_lit_comp(""), str8_lit_comp(" - "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 5, str8_lit_comp(""), str8_lit_comp(" << "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 5, str8_lit_comp(""), str8_lit_comp(" >> "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" < "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" <= "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" > "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" >= "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 7, str8_lit_comp(""), str8_lit_comp(" == "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 7, str8_lit_comp(""), str8_lit_comp(" != "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 8, str8_lit_comp(""), str8_lit_comp(" & "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 9, str8_lit_comp(""), str8_lit_comp(" ^ "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 10, str8_lit_comp(""), str8_lit_comp(" | "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 11, str8_lit_comp(""), str8_lit_comp(" && "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 12, str8_lit_comp(""), str8_lit_comp(" || "), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(" ? "), str8_lit_comp(""), str8_lit_comp(" : ") }, -{ E_OpKind_Null, 15, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(", ") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Null, 0, str8_lit_comp("unsigned "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, -{ E_OpKind_Binary, 13, str8_lit_comp(""), str8_lit_comp(" = "), str8_lit_comp(""), str8_lit_comp("") }, -}; - -String8 e_interpretation_code_display_strings[11] = -{ -str8_lit_comp(""), -str8_lit_comp("Cannot divide by zero."), -str8_lit_comp("Invalid operation."), -str8_lit_comp("Invalid operation types."), -str8_lit_comp("Failed memory read."), -str8_lit_comp("Failed register read."), -str8_lit_comp("Invalid frame base address."), -str8_lit_comp("Invalid module base address."), -str8_lit_comp("Invalid thread-local storage base address."), -str8_lit_comp("Insufficient evaluation machine stack space."), -str8_lit_comp("Malformed bytecode."), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 e_token_kind_strings[7] = +{ +str8_lit_comp("Null"), +str8_lit_comp("Identifier"), +str8_lit_comp("Numeric"), +str8_lit_comp("StringLiteral"), +str8_lit_comp("CharLiteral"), +str8_lit_comp("Symbol"), +str8_lit_comp("Comment"), +}; + +String8 e_type_kind_basic_string_table[61] = +{ +str8_lit_comp(""), +str8_lit_comp("void"), +str8_lit_comp("HANDLE"), +str8_lit_comp("HRESULT"), +str8_lit_comp("char8"), +str8_lit_comp("char16"), +str8_lit_comp("char32"), +str8_lit_comp("uchar8"), +str8_lit_comp("uchar16"), +str8_lit_comp("uchar32"), +str8_lit_comp("uint8"), +str8_lit_comp("uint16"), +str8_lit_comp("uint32"), +str8_lit_comp("uint64"), +str8_lit_comp("uint128"), +str8_lit_comp("uint256"), +str8_lit_comp("uint512"), +str8_lit_comp("int8"), +str8_lit_comp("int16"), +str8_lit_comp("int32"), +str8_lit_comp("int64"), +str8_lit_comp("int128"), +str8_lit_comp("int256"), +str8_lit_comp("int512"), +str8_lit_comp("bool"), +str8_lit_comp("float16"), +str8_lit_comp("float32"), +str8_lit_comp("float32PP"), +str8_lit_comp("float48"), +str8_lit_comp("float64"), +str8_lit_comp("float80"), +str8_lit_comp("float128"), +str8_lit_comp("complex_float32"), +str8_lit_comp("complex_float64"), +str8_lit_comp("complex_float80"), +str8_lit_comp("complex_float128"), +str8_lit_comp("modifier"), +str8_lit_comp("ptr"), +str8_lit_comp("lref"), +str8_lit_comp("rref"), +str8_lit_comp("array"), +str8_lit_comp("function"), +str8_lit_comp("method"), +str8_lit_comp("member_ptr"), +str8_lit_comp("struct"), +str8_lit_comp("class"), +str8_lit_comp("union"), +str8_lit_comp("enum"), +str8_lit_comp("typedef"), +str8_lit_comp("struct"), +str8_lit_comp("union"), +str8_lit_comp("class"), +str8_lit_comp("enum"), +str8_lit_comp("bitfield"), +str8_lit_comp("variadic"), +str8_lit_comp("set"), +str8_lit_comp("lens"), +str8_lit_comp("lens_spec"), +str8_lit_comp("meta_expr"), +str8_lit_comp("meta_display_name"), +str8_lit_comp("meta_description"), +}; + +U8 e_type_kind_basic_byte_size_table[61] = +{ +0, +0, +0xFF, +4, +1, +2, +4, +1, +2, +4, +1, +2, +4, +8, +16, +32, +64, +1, +2, +4, +8, +16, +32, +64, +1, +2, +4, +4, +6, +8, +10, +16, +8, +16, +20, +32, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +}; + +String8 e_expr_kind_strings[50] = +{ +str8_lit_comp("Nil"), +str8_lit_comp("Ref"), +str8_lit_comp("ArrayIndex"), +str8_lit_comp("MemberAccess"), +str8_lit_comp("Deref"), +str8_lit_comp("Address"), +str8_lit_comp("Cast"), +str8_lit_comp("Sizeof"), +str8_lit_comp("Typeof"), +str8_lit_comp("Symbolof"), +str8_lit_comp("ByteSwap"), +str8_lit_comp("Pos"), +str8_lit_comp("Neg"), +str8_lit_comp("LogNot"), +str8_lit_comp("BitNot"), +str8_lit_comp("Mul"), +str8_lit_comp("Div"), +str8_lit_comp("Mod"), +str8_lit_comp("Add"), +str8_lit_comp("Sub"), +str8_lit_comp("LShift"), +str8_lit_comp("RShift"), +str8_lit_comp("Less"), +str8_lit_comp("LsEq"), +str8_lit_comp("Grtr"), +str8_lit_comp("GrEq"), +str8_lit_comp("EqEq"), +str8_lit_comp("NtEq"), +str8_lit_comp("BitAnd"), +str8_lit_comp("BitXor"), +str8_lit_comp("BitOr"), +str8_lit_comp("LogAnd"), +str8_lit_comp("LogOr"), +str8_lit_comp("Ternary"), +str8_lit_comp("Call"), +str8_lit_comp("LeafBytecode"), +str8_lit_comp("LeafStringLiteral"), +str8_lit_comp("LeafU64"), +str8_lit_comp("LeafF64"), +str8_lit_comp("LeafF32"), +str8_lit_comp("LeafIdentifier"), +str8_lit_comp("LeafOffset"), +str8_lit_comp("LeafValue"), +str8_lit_comp("LeafFilePath"), +str8_lit_comp("TypeIdent"), +str8_lit_comp("Ptr"), +str8_lit_comp("Array"), +str8_lit_comp("Func"), +str8_lit_comp("Unsigned"), +str8_lit_comp("Define"), +}; + +E_OpInfo e_expr_kind_op_info_table[50] = +{ +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp("["), str8_lit_comp("]"), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp("."), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("*"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("&"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 1, str8_lit_comp("cast("), str8_lit_comp(")"), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("typeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("symbolof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 1, str8_lit_comp("bswap "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("+"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("-"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("!"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_UnaryPrefix, 2, str8_lit_comp("~"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" * "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" / "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 3, str8_lit_comp(""), str8_lit_comp(" % "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 4, str8_lit_comp(""), str8_lit_comp(" + "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 4, str8_lit_comp(""), str8_lit_comp(" - "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 5, str8_lit_comp(""), str8_lit_comp(" << "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 5, str8_lit_comp(""), str8_lit_comp(" >> "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" < "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" <= "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" > "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(" >= "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 7, str8_lit_comp(""), str8_lit_comp(" == "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 7, str8_lit_comp(""), str8_lit_comp(" != "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 8, str8_lit_comp(""), str8_lit_comp(" & "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 9, str8_lit_comp(""), str8_lit_comp(" ^ "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 10, str8_lit_comp(""), str8_lit_comp(" | "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 11, str8_lit_comp(""), str8_lit_comp(" && "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 12, str8_lit_comp(""), str8_lit_comp(" || "), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(" ? "), str8_lit_comp(""), str8_lit_comp(" : ") }, +{ E_OpKind_Null, 15, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(", ") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Null, 0, str8_lit_comp("unsigned "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("") }, +{ E_OpKind_Binary, 13, str8_lit_comp(""), str8_lit_comp(" = "), str8_lit_comp(""), str8_lit_comp("") }, +}; + +String8 e_interpretation_code_display_strings[11] = +{ +str8_lit_comp(""), +str8_lit_comp("Cannot divide by zero."), +str8_lit_comp("Invalid operation."), +str8_lit_comp("Invalid operation types."), +str8_lit_comp("Failed memory read."), +str8_lit_comp("Failed register read."), +str8_lit_comp("Invalid frame base address."), +str8_lit_comp("Invalid module base address."), +str8_lit_comp("Invalid thread-local storage base address."), +str8_lit_comp("Insufficient evaluation machine stack space."), +str8_lit_comp("Malformed bytecode."), +}; + +C_LINKAGE_END + diff --git a/src/eval/generated/eval.meta.h b/src/eval/generated/eval.meta.h index 26785c11..03a7d5b7 100644 --- a/src/eval/generated/eval.meta.h +++ b/src/eval/generated/eval.meta.h @@ -1,180 +1,181 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef EVAL_META_H -#define EVAL_META_H - -typedef enum E_TokenKind -{ -E_TokenKind_Null, -E_TokenKind_Identifier, -E_TokenKind_Numeric, -E_TokenKind_StringLiteral, -E_TokenKind_CharLiteral, -E_TokenKind_Symbol, -E_TokenKind_COUNT, -} E_TokenKind; - -typedef enum E_TypeKind -{ -E_TypeKind_Null, -E_TypeKind_Void, -E_TypeKind_Handle, -E_TypeKind_HResult, -E_TypeKind_Char8, -E_TypeKind_Char16, -E_TypeKind_Char32, -E_TypeKind_UChar8, -E_TypeKind_UChar16, -E_TypeKind_UChar32, -E_TypeKind_U8, -E_TypeKind_U16, -E_TypeKind_U32, -E_TypeKind_U64, -E_TypeKind_U128, -E_TypeKind_U256, -E_TypeKind_U512, -E_TypeKind_S8, -E_TypeKind_S16, -E_TypeKind_S32, -E_TypeKind_S64, -E_TypeKind_S128, -E_TypeKind_S256, -E_TypeKind_S512, -E_TypeKind_Bool, -E_TypeKind_F16, -E_TypeKind_F32, -E_TypeKind_F32PP, -E_TypeKind_F48, -E_TypeKind_F64, -E_TypeKind_F80, -E_TypeKind_F128, -E_TypeKind_ComplexF32, -E_TypeKind_ComplexF64, -E_TypeKind_ComplexF80, -E_TypeKind_ComplexF128, -E_TypeKind_Modifier, -E_TypeKind_Ptr, -E_TypeKind_LRef, -E_TypeKind_RRef, -E_TypeKind_Array, -E_TypeKind_Function, -E_TypeKind_Method, -E_TypeKind_MemberPtr, -E_TypeKind_Struct, -E_TypeKind_Class, -E_TypeKind_Union, -E_TypeKind_Enum, -E_TypeKind_Alias, -E_TypeKind_IncompleteStruct, -E_TypeKind_IncompleteUnion, -E_TypeKind_IncompleteClass, -E_TypeKind_IncompleteEnum, -E_TypeKind_Bitfield, -E_TypeKind_Variadic, -E_TypeKind_Set, -E_TypeKind_Lens, -E_TypeKind_LensSpec, -E_TypeKind_MetaExpr, -E_TypeKind_MetaDisplayName, -E_TypeKind_MetaDescription, -E_TypeKind_COUNT, -E_TypeKind_FirstBasic = E_TypeKind_Void, -E_TypeKind_LastBasic = E_TypeKind_ComplexF128, -E_TypeKind_FirstInteger = E_TypeKind_Char8, -E_TypeKind_LastInteger = E_TypeKind_S512, -E_TypeKind_FirstSigned1 = E_TypeKind_Char8, -E_TypeKind_LastSigned1 = E_TypeKind_Char32, -E_TypeKind_FirstSigned2 = E_TypeKind_S8, -E_TypeKind_LastSigned2 = E_TypeKind_S512, -E_TypeKind_FirstIncomplete = E_TypeKind_IncompleteStruct, -E_TypeKind_LastIncomplete = E_TypeKind_IncompleteEnum, -E_TypeKind_FirstMeta = E_TypeKind_MetaExpr, -E_TypeKind_LastMeta = E_TypeKind_MetaDescription, -} E_TypeKind; - -typedef U32 E_ExprKind; -typedef enum E_ExprKindEnum -{ -E_ExprKind_Nil, -E_ExprKind_Ref, -E_ExprKind_ArrayIndex, -E_ExprKind_MemberAccess, -E_ExprKind_Deref, -E_ExprKind_Address, -E_ExprKind_Cast, -E_ExprKind_Sizeof, -E_ExprKind_Typeof, -E_ExprKind_Symbolof, -E_ExprKind_ByteSwap, -E_ExprKind_Pos, -E_ExprKind_Neg, -E_ExprKind_LogNot, -E_ExprKind_BitNot, -E_ExprKind_Mul, -E_ExprKind_Div, -E_ExprKind_Mod, -E_ExprKind_Add, -E_ExprKind_Sub, -E_ExprKind_LShift, -E_ExprKind_RShift, -E_ExprKind_Less, -E_ExprKind_LsEq, -E_ExprKind_Grtr, -E_ExprKind_GrEq, -E_ExprKind_EqEq, -E_ExprKind_NtEq, -E_ExprKind_BitAnd, -E_ExprKind_BitXor, -E_ExprKind_BitOr, -E_ExprKind_LogAnd, -E_ExprKind_LogOr, -E_ExprKind_Ternary, -E_ExprKind_Call, -E_ExprKind_LeafBytecode, -E_ExprKind_LeafStringLiteral, -E_ExprKind_LeafU64, -E_ExprKind_LeafF64, -E_ExprKind_LeafF32, -E_ExprKind_LeafIdentifier, -E_ExprKind_LeafOffset, -E_ExprKind_LeafValue, -E_ExprKind_LeafFilePath, -E_ExprKind_TypeIdent, -E_ExprKind_Ptr, -E_ExprKind_Array, -E_ExprKind_Func, -E_ExprKind_Unsigned, -E_ExprKind_Define, -E_ExprKind_COUNT, -} E_ExprKindEnum; - -typedef enum E_InterpretationCode -{ -E_InterpretationCode_Good, -E_InterpretationCode_DivideByZero, -E_InterpretationCode_BadOp, -E_InterpretationCode_BadOpTypes, -E_InterpretationCode_BadMemRead, -E_InterpretationCode_BadRegRead, -E_InterpretationCode_BadFrameBase, -E_InterpretationCode_BadModuleBase, -E_InterpretationCode_BadTLSBase, -E_InterpretationCode_InsufficientStackSpace, -E_InterpretationCode_MalformedBytecode, -E_InterpretationCode_COUNT, -} E_InterpretationCode; - -C_LINKAGE_BEGIN -extern String8 e_token_kind_strings[6]; -extern String8 e_type_kind_basic_string_table[61]; -extern U8 e_type_kind_basic_byte_size_table[61]; -extern String8 e_expr_kind_strings[50]; -extern E_OpInfo e_expr_kind_op_info_table[50]; -extern String8 e_interpretation_code_display_strings[11]; - -C_LINKAGE_END - -#endif // EVAL_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef EVAL_META_H +#define EVAL_META_H + +typedef enum E_TokenKind +{ +E_TokenKind_Null, +E_TokenKind_Identifier, +E_TokenKind_Numeric, +E_TokenKind_StringLiteral, +E_TokenKind_CharLiteral, +E_TokenKind_Symbol, +E_TokenKind_Comment, +E_TokenKind_COUNT, +} E_TokenKind; + +typedef enum E_TypeKind +{ +E_TypeKind_Null, +E_TypeKind_Void, +E_TypeKind_Handle, +E_TypeKind_HResult, +E_TypeKind_Char8, +E_TypeKind_Char16, +E_TypeKind_Char32, +E_TypeKind_UChar8, +E_TypeKind_UChar16, +E_TypeKind_UChar32, +E_TypeKind_U8, +E_TypeKind_U16, +E_TypeKind_U32, +E_TypeKind_U64, +E_TypeKind_U128, +E_TypeKind_U256, +E_TypeKind_U512, +E_TypeKind_S8, +E_TypeKind_S16, +E_TypeKind_S32, +E_TypeKind_S64, +E_TypeKind_S128, +E_TypeKind_S256, +E_TypeKind_S512, +E_TypeKind_Bool, +E_TypeKind_F16, +E_TypeKind_F32, +E_TypeKind_F32PP, +E_TypeKind_F48, +E_TypeKind_F64, +E_TypeKind_F80, +E_TypeKind_F128, +E_TypeKind_ComplexF32, +E_TypeKind_ComplexF64, +E_TypeKind_ComplexF80, +E_TypeKind_ComplexF128, +E_TypeKind_Modifier, +E_TypeKind_Ptr, +E_TypeKind_LRef, +E_TypeKind_RRef, +E_TypeKind_Array, +E_TypeKind_Function, +E_TypeKind_Method, +E_TypeKind_MemberPtr, +E_TypeKind_Struct, +E_TypeKind_Class, +E_TypeKind_Union, +E_TypeKind_Enum, +E_TypeKind_Alias, +E_TypeKind_IncompleteStruct, +E_TypeKind_IncompleteUnion, +E_TypeKind_IncompleteClass, +E_TypeKind_IncompleteEnum, +E_TypeKind_Bitfield, +E_TypeKind_Variadic, +E_TypeKind_Set, +E_TypeKind_Lens, +E_TypeKind_LensSpec, +E_TypeKind_MetaExpr, +E_TypeKind_MetaDisplayName, +E_TypeKind_MetaDescription, +E_TypeKind_COUNT, +E_TypeKind_FirstBasic = E_TypeKind_Void, +E_TypeKind_LastBasic = E_TypeKind_ComplexF128, +E_TypeKind_FirstInteger = E_TypeKind_Char8, +E_TypeKind_LastInteger = E_TypeKind_S512, +E_TypeKind_FirstSigned1 = E_TypeKind_Char8, +E_TypeKind_LastSigned1 = E_TypeKind_Char32, +E_TypeKind_FirstSigned2 = E_TypeKind_S8, +E_TypeKind_LastSigned2 = E_TypeKind_S512, +E_TypeKind_FirstIncomplete = E_TypeKind_IncompleteStruct, +E_TypeKind_LastIncomplete = E_TypeKind_IncompleteEnum, +E_TypeKind_FirstMeta = E_TypeKind_MetaExpr, +E_TypeKind_LastMeta = E_TypeKind_MetaDescription, +} E_TypeKind; + +typedef U32 E_ExprKind; +typedef enum E_ExprKindEnum +{ +E_ExprKind_Nil, +E_ExprKind_Ref, +E_ExprKind_ArrayIndex, +E_ExprKind_MemberAccess, +E_ExprKind_Deref, +E_ExprKind_Address, +E_ExprKind_Cast, +E_ExprKind_Sizeof, +E_ExprKind_Typeof, +E_ExprKind_Symbolof, +E_ExprKind_ByteSwap, +E_ExprKind_Pos, +E_ExprKind_Neg, +E_ExprKind_LogNot, +E_ExprKind_BitNot, +E_ExprKind_Mul, +E_ExprKind_Div, +E_ExprKind_Mod, +E_ExprKind_Add, +E_ExprKind_Sub, +E_ExprKind_LShift, +E_ExprKind_RShift, +E_ExprKind_Less, +E_ExprKind_LsEq, +E_ExprKind_Grtr, +E_ExprKind_GrEq, +E_ExprKind_EqEq, +E_ExprKind_NtEq, +E_ExprKind_BitAnd, +E_ExprKind_BitXor, +E_ExprKind_BitOr, +E_ExprKind_LogAnd, +E_ExprKind_LogOr, +E_ExprKind_Ternary, +E_ExprKind_Call, +E_ExprKind_LeafBytecode, +E_ExprKind_LeafStringLiteral, +E_ExprKind_LeafU64, +E_ExprKind_LeafF64, +E_ExprKind_LeafF32, +E_ExprKind_LeafIdentifier, +E_ExprKind_LeafOffset, +E_ExprKind_LeafValue, +E_ExprKind_LeafFilePath, +E_ExprKind_TypeIdent, +E_ExprKind_Ptr, +E_ExprKind_Array, +E_ExprKind_Func, +E_ExprKind_Unsigned, +E_ExprKind_Define, +E_ExprKind_COUNT, +} E_ExprKindEnum; + +typedef enum E_InterpretationCode +{ +E_InterpretationCode_Good, +E_InterpretationCode_DivideByZero, +E_InterpretationCode_BadOp, +E_InterpretationCode_BadOpTypes, +E_InterpretationCode_BadMemRead, +E_InterpretationCode_BadRegRead, +E_InterpretationCode_BadFrameBase, +E_InterpretationCode_BadModuleBase, +E_InterpretationCode_BadTLSBase, +E_InterpretationCode_InsufficientStackSpace, +E_InterpretationCode_MalformedBytecode, +E_InterpretationCode_COUNT, +} E_InterpretationCode; + +C_LINKAGE_BEGIN +extern String8 e_token_kind_strings[7]; +extern String8 e_type_kind_basic_string_table[61]; +extern U8 e_type_kind_basic_byte_size_table[61]; +extern String8 e_expr_kind_strings[50]; +extern E_OpInfo e_expr_kind_op_info_table[50]; +extern String8 e_interpretation_code_display_strings[11]; + +C_LINKAGE_END + +#endif // EVAL_META_H diff --git a/src/eval2/eval2.c b/src/eval2/eval2.c new file mode 100644 index 00000000..9ee5e7be --- /dev/null +++ b/src/eval2/eval2.c @@ -0,0 +1,2546 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Generated Code + +#include "eval2/generated/eval2.meta.c" + +//////////////////////////////// +//~ rjf: Space -> Memory Map Helpers + +internal void +e2_space_map_push(Arena *arena, E2_SpaceMap *map, E2_SpaceID space_id, Rng1U64 addr_range, void *data) +{ + if(map->slots_count == 0) + { + map->slots_count = 8; + map->slots = push_array(arena, E2_SpaceMapNode *, map->slots_count); + } + U64 hash = u64_hash_from_str8(str8_struct(&space_id)); + U64 slot_idx = hash%map->slots_count; + E2_SpaceMapNode *node = 0; + for(E2_SpaceMapNode *n = map->slots[slot_idx]; n != 0; n = n->next) + { + if(n->space_id == space_id) + { + node = n; + break; + } + } + if(node == 0) + { + node = push_array(arena, E2_SpaceMapNode, 1); + SLLStackPush(map->slots[slot_idx], node); + } + memory_map_push(arena, &node->memory_map, addr_range, data); +} + +internal U64 +e2_space_map_read(E2_SpaceMap *map, E2_SpaceID space_id, Rng1U64 addr_range, void *out) +{ + U64 result = 0; + { + U64 hash = u64_hash_from_str8(str8_struct(&space_id)); + U64 slot_idx = hash%map->slots_count; + E2_SpaceMapNode *node = 0; + for(E2_SpaceMapNode *n = map->slots[slot_idx]; n != 0; n = n->next) + { + if(n->space_id == space_id) + { + node = n; + break; + } + } + if(node != 0) + { + result = memory_map_read(&node->memory_map, addr_range, out); + } + } + return result; +} + +//////////////////////////////// +//~ rjf: Name -> Expr Map Helpers + +internal void +e2_expr_map_push(Arena *arena, E2_ExprMap *map, String8 name, E2_Expr *expr) +{ + if(map->slots_count == 0) + { + map->slots_count = 8; + map->slots = push_array(arena, E2_ExprMapNode *, map->slots_count); + } + U64 hash = u64_hash_from_str8(name); + U64 slot_idx = hash%map->slots_count; + E2_ExprMapNode *node = 0; + for(E2_ExprMapNode *n = map->slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->name, name, 0)) + { + node = n; + break; + } + } + if(node == 0) + { + node = push_array(arena, E2_ExprMapNode, 1); + node->name = str8_copy(arena, name); + node->expr = expr; + SLLStackPush(map->slots[slot_idx], node); + } +} + +internal E2_Expr * +e2_expr_from_name(E2_ExprMap *map, String8 name) +{ + E2_Expr *expr = &e2_expr_nil; + if(map->slots_count != 0) + { + U64 hash = u64_hash_from_str8(name); + U64 slot_idx = hash%map->slots_count; + E2_ExprMapNode *node = 0; + for(E2_ExprMapNode *n = map->slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->name, name, 0)) + { + node = n; + break; + } + } + if(node != 0) + { + expr = node->expr; + } + } + return expr; +} + +//////////////////////////////// +//~ rjf: Messages + +internal E2_Msg * +e2_msg(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, String8 string) +{ + E2_Msg *msg = push_array(arena, E2_Msg, 1); + SLLQueuePush(msgs->first, msgs->last, msg); + msgs->count += 1; + msg->src_range = src_range; + msg->string = str8_copy(arena, string); + return msg; +} + +internal E2_Msg * +e2_msgf(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, char *fmt, ...) +{ + Temp scratch = scratch_begin(&arena, 1); + va_list args; + va_start(args, fmt); + String8 string = str8fv(scratch.arena, fmt, args); + E2_Msg *msg = e2_msg(arena, msgs, src_range, string); + va_end(args); + scratch_end(scratch); + return msg; +} + +//////////////////////////////// +//~ rjf: Assets + +internal void +e2_select_assets(E2_Assets *assets) +{ + e2_assets = assets; +} + +internal E2_DbgInfo * +e2_dbgi_from_num(U32 num) +{ + E2_DbgInfo *result = &e2_dbg_info_nil; + if(0 < num && num <= e2_assets->dbg_infos_count) + { + result = &e2_assets->dbg_infos[num-1]; + } + return result; +} + +//////////////////////////////// +//~ rjf: Type Keys + +//- rjf: RDI -> eval enum conversions + +internal E2_TypeKind +e2_type_kind_from_rdi(RDI_TypeKind k) +{ + E2_TypeKind result = E2_TypeKind_Null; + switch((RDI_TypeKindEnum)k) + { + case RDI_TypeKind_Null:{}break; + case RDI_TypeKind_COUNT:{}break; + case RDI_TypeKind_Void: {result = E2_TypeKind_Void;}break; + case RDI_TypeKind_Handle: {result = E2_TypeKind_Handle;}break; + case RDI_TypeKind_HResult: {result = E2_TypeKind_HResult;}break; + case RDI_TypeKind_Char8: {result = E2_TypeKind_Char8;}break; + case RDI_TypeKind_Char16: {result = E2_TypeKind_Char16;}break; + case RDI_TypeKind_Char32: {result = E2_TypeKind_Char32;}break; + case RDI_TypeKind_UChar8: {result = E2_TypeKind_UChar8;}break; + case RDI_TypeKind_UChar16: {result = E2_TypeKind_UChar16;}break; + case RDI_TypeKind_UChar32: {result = E2_TypeKind_UChar32;}break; + case RDI_TypeKind_U8: {result = E2_TypeKind_U8;}break; + case RDI_TypeKind_U16: {result = E2_TypeKind_U16;}break; + case RDI_TypeKind_U32: {result = E2_TypeKind_U32;}break; + case RDI_TypeKind_U64: {result = E2_TypeKind_U64;}break; + case RDI_TypeKind_U128: {result = E2_TypeKind_U128;}break; + case RDI_TypeKind_U256: {result = E2_TypeKind_U256;}break; + case RDI_TypeKind_U512: {result = E2_TypeKind_U512;}break; + case RDI_TypeKind_S8: {result = E2_TypeKind_S8;}break; + case RDI_TypeKind_S16: {result = E2_TypeKind_S16;}break; + case RDI_TypeKind_S32: {result = E2_TypeKind_S32;}break; + case RDI_TypeKind_S64: {result = E2_TypeKind_S64;}break; + case RDI_TypeKind_S128: {result = E2_TypeKind_S128;}break; + case RDI_TypeKind_S256: {result = E2_TypeKind_S256;}break; + case RDI_TypeKind_S512: {result = E2_TypeKind_S512;}break; + case RDI_TypeKind_Bool: {result = E2_TypeKind_Bool;}break; + case RDI_TypeKind_F16: {result = E2_TypeKind_F16;}break; + case RDI_TypeKind_F32: {result = E2_TypeKind_F32;}break; + case RDI_TypeKind_F32PP: {result = E2_TypeKind_F32PP;}break; + case RDI_TypeKind_F48: {result = E2_TypeKind_F48;}break; + case RDI_TypeKind_F64: {result = E2_TypeKind_F64;}break; + case RDI_TypeKind_F80: {result = E2_TypeKind_F80;}break; + case RDI_TypeKind_F128: {result = E2_TypeKind_F128;}break; + case RDI_TypeKind_ComplexF32: {result = E2_TypeKind_ComplexF32;}break; + case RDI_TypeKind_ComplexF64: {result = E2_TypeKind_ComplexF64;}break; + case RDI_TypeKind_ComplexF80: {result = E2_TypeKind_ComplexF80;}break; + case RDI_TypeKind_ComplexF128: {result = E2_TypeKind_ComplexF128;}break; + case RDI_TypeKind_Modifier: {result = E2_TypeKind_Modifier;}break; + case RDI_TypeKind_Ptr: {result = E2_TypeKind_Ptr;}break; + case RDI_TypeKind_LRef: {result = E2_TypeKind_LRef;}break; + case RDI_TypeKind_RRef: {result = E2_TypeKind_RRef;}break; + case RDI_TypeKind_Array: {result = E2_TypeKind_Array;}break; + case RDI_TypeKind_Function: {result = E2_TypeKind_Function;}break; + case RDI_TypeKind_Method: {result = E2_TypeKind_Method;}break; + case RDI_TypeKind_MemberPtr: {result = E2_TypeKind_MemberPtr;}break; + case RDI_TypeKind_Struct: {result = E2_TypeKind_Struct;}break; + case RDI_TypeKind_Class: {result = E2_TypeKind_Class;}break; + case RDI_TypeKind_Union: {result = E2_TypeKind_Union;}break; + case RDI_TypeKind_Enum: {result = E2_TypeKind_Enum;}break; + case RDI_TypeKind_Alias: {result = E2_TypeKind_Alias;}break; + case RDI_TypeKind_IncompleteStruct: {result = E2_TypeKind_IncompleteStruct;}break; + case RDI_TypeKind_IncompleteUnion: {result = E2_TypeKind_IncompleteUnion;}break; + case RDI_TypeKind_IncompleteClass: {result = E2_TypeKind_IncompleteClass;}break; + case RDI_TypeKind_IncompleteEnum: {result = E2_TypeKind_IncompleteEnum;}break; + case RDI_TypeKind_Bitfield: {result = E2_TypeKind_Bitfield;}break; + case RDI_TypeKind_Variadic: {result = E2_TypeKind_Variadic;}break; + + case RDI_TypeKind_BF16: + case RDI_TypeKind_F96: + case RDI_TypeKind_Decimal32: + case RDI_TypeKind_Decimal64: + case RDI_TypeKind_Decimal128: + { + // NOTE(rjf): currently unsupported + }break; + } + return result; +} + +internal RDI_EvalTypeGroup +e2_type_group_from_kind(E2_TypeKind k) +{ + RDI_EvalTypeGroup result = 0; + switch(k) + { + case E2_TypeKind_COUNT:{}break; + + case E2_TypeKind_Null: case E2_TypeKind_Void: + case E2_TypeKind_F16: case E2_TypeKind_F32PP: case E2_TypeKind_F48: + case E2_TypeKind_F80: case E2_TypeKind_F128: + case E2_TypeKind_ComplexF32: case E2_TypeKind_ComplexF64: + case E2_TypeKind_ComplexF80: case E2_TypeKind_ComplexF128: + case E2_TypeKind_Modifier: case E2_TypeKind_Array: + case E2_TypeKind_Struct: case E2_TypeKind_Class: case E2_TypeKind_Union: + case E2_TypeKind_Enum: case E2_TypeKind_Alias: + case E2_TypeKind_IncompleteStruct: case E2_TypeKind_IncompleteClass: + case E2_TypeKind_IncompleteUnion: case E2_TypeKind_IncompleteEnum: + case E2_TypeKind_Bitfield: + case E2_TypeKind_Variadic: + case E2_TypeKind_HResult: + case E2_TypeKind_Set: + case E2_TypeKind_Lens: + case E2_TypeKind_LensSpec: + case E2_TypeKind_MetaExpr: + case E2_TypeKind_MetaDisplayName: + case E2_TypeKind_MetaDescription: + {result = RDI_EvalTypeGroup_Other;}break; + + case E2_TypeKind_Handle: + case E2_TypeKind_UChar8: case E2_TypeKind_UChar16: case E2_TypeKind_UChar32: + case E2_TypeKind_U8: case E2_TypeKind_U16: case E2_TypeKind_U32: + case E2_TypeKind_U64: case E2_TypeKind_U128: case E2_TypeKind_U256: + case E2_TypeKind_U512: + case E2_TypeKind_Ptr: case E2_TypeKind_LRef: case E2_TypeKind_RRef: + case E2_TypeKind_Function: case E2_TypeKind_Method: case E2_TypeKind_MemberPtr: + {result = RDI_EvalTypeGroup_U;}break; + + case E2_TypeKind_Char8: case E2_TypeKind_Char16: case E2_TypeKind_Char32: + case E2_TypeKind_S8: case E2_TypeKind_S16: case E2_TypeKind_S32: + case E2_TypeKind_S64: case E2_TypeKind_S128: case E2_TypeKind_S256: + case E2_TypeKind_S512: + case E2_TypeKind_Bool: + {result = RDI_EvalTypeGroup_S;}break; + + case E2_TypeKind_F32:{result = RDI_EvalTypeGroup_F32;}break; + case E2_TypeKind_F64:{result = RDI_EvalTypeGroup_F64;}break; + } + return result; +} + +internal B32 +e2_type_kind_is_ptr_or_ref(E2_TypeKind k) +{ + B32 result = (k == E2_TypeKind_Ptr || k == E2_TypeKind_LRef || k == E2_TypeKind_RRef); + return result; +} + +internal B32 +e2_type_kind_is_integer(E2_TypeKind k) +{ + B32 result = (E2_TypeKind_FirstInteger <= k && k <= E2_TypeKind_LastInteger); + return result; +} + +internal B32 +e2_type_kind_is_float(E2_TypeKind k) +{ + B32 result = (k == E2_TypeKind_F32 || k == E2_TypeKind_F64); + return result; +} + +internal B32 +e2_type_kind_is_signed(E2_TypeKind k) +{ + B32 result = ((E2_TypeKind_FirstSigned1 <= k && k <= E2_TypeKind_LastSigned1) || + (E2_TypeKind_FirstSigned2 <= k && k <= E2_TypeKind_LastSigned2)); + return result; +} + +internal B32 +e2_type_kind_is_unsigned(E2_TypeKind k) +{ + B32 result = !e2_type_kind_is_signed(k) && e2_type_kind_is_integer(k); + return result; +} + +//- rjf: basic key constructors + +internal E2_TypeKey +e2_type_key_zero(void) +{ + E2_TypeKey key = {E2_TypeKeyKind_Null}; + return key; +} + +internal E2_TypeKey +e2_type_key_basic(E2_TypeKind kind) +{ + E2_TypeKey key = {E2_TypeKeyKind_Basic}; + key.u32[0] = (U32)kind; + return key; +} + +internal E2_TypeKey +e2_type_key_dbgi(E2_TypeKind kind, U32 dbg_info_num, U32 type_idx) +{ + E2_TypeKey key = {E2_TypeKeyKind_DbgInfo}; + key.u32[0] = kind; + key.u32[1] = dbg_info_num; + key.u32[2] = type_idx; + return key; +} + +internal E2_TypeKey +e2_type_key_reg(Arch arch, ARCH_RegCode reg_code) +{ + E2_TypeKey key = {E2_TypeKeyKind_Reg}; + key.u32[0] = arch; + key.u32[1] = reg_code; + return key; +} + +//- rjf: constructed type constructor + +internal E2_TypeKey +e2_type_key_cons_(E2_ConsTypeParams *params) +{ + E2_TypeKey result = {E2_TypeKeyKind_Null}; + // TODO(rjf) + return result; +} + +//- rjf: basic type key type functions + +internal B32 +e2_type_key_match(E2_TypeKey a, E2_TypeKey b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +//- rjf: type key -> info + +internal E2_TypeKind +e2_type_kind_from_key(E2_TypeKey k) +{ + E2_TypeKind result = E2_TypeKind_Null; + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic: + case E2_TypeKeyKind_DbgInfo: + case E2_TypeKeyKind_Cons: + { + result = (E2_TypeKind)k.u32[0]; + }break; + case E2_TypeKeyKind_Reg: + { + result = E2_TypeKind_Union; + }break; + } + return result; +} + +internal U64 +e2_byte_size_from_type_key(E2_TypeKey k) +{ + U64 result = 0; + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic: + { + result = e2_type_kind_basic_byte_size_table[k.u32[0]]; + }break; + case E2_TypeKeyKind_DbgInfo: + { + E2_DbgInfo *dbgi = e2_dbgi_from_type_key(k); + U32 dbgi_type_idx = e2_dbgi_type_idx_from_key(k); + RDI_TypeNode *type_node = rdi_element_from_name_idx(dbgi->rdi, TypeNodes, dbgi_type_idx); + result = type_node->byte_size; + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg: + { + // TODO(rjf) + }break; + } + return result; +} + +internal U32 +e2_dbgi_num_from_type_key(E2_TypeKey k) +{ + U32 result = 0; + if(k.kind == E2_TypeKeyKind_DbgInfo) + { + result = k.u32[1]; + } + return result; +} + +internal E2_DbgInfo * +e2_dbgi_from_type_key(E2_TypeKey k) +{ + U32 dbgi_num = e2_dbgi_num_from_type_key(k); + E2_DbgInfo *dbg_info = e2_dbgi_from_num(dbgi_num); + return dbg_info; +} + +internal U32 +e2_dbgi_type_idx_from_key(E2_TypeKey k) +{ + U32 result = 0; + if(k.kind == E2_TypeKeyKind_DbgInfo) + { + result = k.u32[2]; + } + return result; +} + +internal U64 +e2_shift_from_type_key(E2_TypeKey k) +{ + U64 result = 0; + if(e2_type_kind_from_key(k) == E2_TypeKind_Bitfield) + { + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic:{}break; + case E2_TypeKeyKind_DbgInfo: + { + E2_DbgInfo *dbgi = e2_dbgi_from_type_key(k); + U32 dbgi_type_idx = e2_dbgi_type_idx_from_key(k); + RDI_TypeNode *type_node = rdi_element_from_name_idx(dbgi->rdi, TypeNodes, dbgi_type_idx); + result = type_node->bitfield.off; + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg:{}break; + } + } + return result; +} + +internal U64 +e2_mask_count_from_type_key(E2_TypeKey k) +{ + U64 result = 0; + if(e2_type_kind_from_key(k) == E2_TypeKind_Bitfield) + { + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic:{}break; + case E2_TypeKeyKind_DbgInfo: + { + E2_DbgInfo *dbgi = e2_dbgi_from_type_key(k); + U32 dbgi_type_idx = e2_dbgi_type_idx_from_key(k); + RDI_TypeNode *type_node = rdi_element_from_name_idx(dbgi->rdi, TypeNodes, dbgi_type_idx); + result = type_node->bitfield.size; + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg:{}break; + } + } + return result; +} + +internal Arch +e2_arch_from_type_key(E2_TypeKey k) +{ + Arch arch = Arch_Null; + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic:{}break; + case E2_TypeKeyKind_DbgInfo: + { + E2_DbgInfo *dbgi = e2_dbgi_from_type_key(k); + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(dbgi->rdi, TopLevelInfo, 0); + RDI_Arch rdi_arch = tli->arch; + arch = arch_from_rdi_arch(rdi_arch); + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg: + { + arch = k.u32[0]; + }break; + } + return arch; +} + +//- rjf: type graph traversal primitives + +internal E2_TypeKey +e2_type_key_direct(E2_TypeKey k) +{ + E2_TypeKey result = {E2_TypeKeyKind_Null}; + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic:{}break; + case E2_TypeKeyKind_DbgInfo: + { + U32 dbgi_num = e2_dbgi_num_from_type_key(k); + U32 dbgi_type_idx = e2_dbgi_type_idx_from_key(k); + E2_DbgInfo *dbgi = e2_dbgi_from_num(dbgi_num); + RDI_TypeNode *type_node = rdi_element_from_name_idx(dbgi->rdi, TypeNodes, dbgi_type_idx); + U32 direct_type_idx = 0; + if(RDI_TypeKind_FirstConstructed <= type_node->kind && type_node->kind <= RDI_TypeKind_LastConstructed) + { + direct_type_idx = type_node->constructed.direct_type_idx; + } + else if(RDI_TypeKind_FirstUserDefined <= type_node->kind && type_node->kind <= RDI_TypeKind_LastUserDefined) + { + direct_type_idx = type_node->user_defined.direct_type_idx; + } + else if(type_node->kind == RDI_TypeKind_Bitfield) + { + direct_type_idx = type_node->bitfield.direct_type_idx; + } + result = e2_type_key_dbgi(e2_type_kind_from_rdi(type_node->kind), dbgi_num, direct_type_idx); + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg:{}break; + } + return result; +} + +internal E2_TypeKey +e2_type_key_owner(E2_TypeKey k) +{ + E2_TypeKey result = {E2_TypeKeyKind_Null}; + if(e2_type_kind_from_key(k) == E2_TypeKind_MemberPtr) + { + switch(k.kind) + { + case E2_TypeKeyKind_Null:{}break; + case E2_TypeKeyKind_Basic:{}break; + case E2_TypeKeyKind_DbgInfo: + { + U32 dbgi_num = e2_dbgi_num_from_type_key(k); + U32 dbgi_type_idx = e2_dbgi_type_idx_from_key(k); + E2_DbgInfo *dbgi = e2_dbgi_from_num(dbgi_num); + RDI_TypeNode *type_node = rdi_element_from_name_idx(dbgi->rdi, TypeNodes, dbgi_type_idx); + U32 owner_type_idx = type_node->constructed.owner_type_idx; + result = e2_type_key_dbgi(e2_type_kind_from_rdi(type_node->kind), dbgi_num, owner_type_idx); + }break; + case E2_TypeKeyKind_Cons: + { + // TODO(rjf) + }break; + case E2_TypeKeyKind_Reg:{}break; + } + } + return result; +} + +//- rjf: type unwrapping (helpers for advancing past categories of direct type chains) + +internal E2_TypeKey +e2_type_key_unwrap(E2_TypeKey k, E2_TypeUnwrapFlags flags) +{ + E2_TypeKey result = k; + E2_TypeKind kind = e2_type_kind_from_key(result); + B32 did_ptr = 0; + for(;;) + { + B32 done = 0; + switch(kind) + { + default:{done = 1;}break; + case E2_TypeKind_Modifier: {done = !(flags & E2_TypeUnwrapFlag_Modifiers);}break; + case E2_TypeKind_Lens: {done = !(flags & E2_TypeUnwrapFlag_Lenses);}break; + case E2_TypeKind_MetaDisplayName: + case E2_TypeKind_MetaDescription: + case E2_TypeKind_MetaExpr: {done = !(flags & E2_TypeUnwrapFlag_Meta);}break; + case E2_TypeKind_Enum: {done = !(flags & E2_TypeUnwrapFlag_Enums);}break; + case E2_TypeKind_Alias: {done = !(flags & E2_TypeUnwrapFlag_Aliases);}break; + case E2_TypeKind_Bitfield: {done = !(flags & E2_TypeUnwrapFlag_Bitfields);}break; + case E2_TypeKind_Array: + case E2_TypeKind_Ptr: + case E2_TypeKind_RRef: + case E2_TypeKind_LRef: + case E2_TypeKind_MemberPtr: + { + done = (did_ptr || !(flags & E2_TypeUnwrapFlag_Pointers)); + did_ptr = 1; + }break; + } + if(done) + { + break; + } + result = e2_type_key_direct(result); + kind = e2_type_kind_from_key(result); + } + return result; +} + +//- rjf: type coercion + +internal E2_TypeKey +e2_coerced_type_key_from_operands(E2_TypeKey lhs, E2_TypeKey rhs) +{ + E2_TypeKey result = lhs; + { + E2_TypeKind lhs_kind = e2_type_kind_from_key(lhs); + E2_TypeKind rhs_kind = e2_type_kind_from_key(rhs); + U64 lhs_size = e2_byte_size_from_type_key(lhs); + U64 rhs_size = e2_byte_size_from_type_key(rhs); + + //- rjf: f? + f? -> pick biggest + if(e2_type_kind_is_float(lhs_kind) && e2_type_kind_is_float(rhs_kind) && lhs_size > rhs_size) + { + result = lhs; + } + else if(e2_type_kind_is_float(lhs_kind) && e2_type_kind_is_float(rhs_kind) && lhs_size < rhs_size) + { + result = rhs; + } + + //- rjf: f? + i? -> pick float + else if(e2_type_kind_is_float(lhs_kind) && e2_type_kind_is_integer(rhs_kind)) + { + result = lhs; + } + else if(e2_type_kind_is_integer(lhs_kind) && e2_type_kind_is_float(rhs_kind)) + { + result = rhs; + } + + //- rjf: i? + i? -> pick biggest + else if(e2_type_kind_is_integer(lhs_kind) && e2_type_kind_is_integer(rhs_kind) && lhs_size > rhs_size) + { + result = lhs; + } + else if(e2_type_kind_is_integer(lhs_kind) && e2_type_kind_is_integer(rhs_kind) && lhs_size < rhs_size) + { + result = rhs; + } + + //- rjf: i? + u? -> unsigned wins + else if(e2_type_kind_is_signed(lhs_kind) && e2_type_kind_is_unsigned(rhs_kind) && lhs_size == rhs_size) + { + result = rhs; + } + else if(e2_type_kind_is_unsigned(lhs_kind) && e2_type_kind_is_signed(rhs_kind) && lhs_size == rhs_size) + { + result = lhs; + } + } + return result; +} + +//////////////////////////////// +//~ rjf: Expression Constructors + +internal E2_Expr * +e2_expr(Arena *arena) +{ + E2_Expr *expr = push_array(arena, E2_Expr, 1); + MemoryCopyStruct(expr, &e2_expr_nil); + return expr; +} + +internal E2_Expr * +e2_expr_const_u64_or_smaller(Arena *arena, U64 u) +{ + E2_Expr *e = e2_expr(arena); + { + e->mode = E2_Mode_Value; + e->val.u64 = u; + if(u <= 0x7fffffff) + { + e->op = RDI_EvalOp_ConstU32; + e->type_key = e2_type_key_basic(E2_TypeKind_S32); + } + else if(u <= 0xffffffff) + { + e->op = RDI_EvalOp_ConstU32; + e->type_key = e2_type_key_basic(E2_TypeKind_U32); + } + else if(u <= 0x7fffffffffffffffull) + { + e->op = RDI_EvalOp_ConstU64; + e->type_key = e2_type_key_basic(E2_TypeKind_S64); + } + else if(u <= 0xffffffffffffffffull) + { + e->op = RDI_EvalOp_ConstU64; + e->type_key = e2_type_key_basic(E2_TypeKind_U64); + } + } + return e; +} + +internal E2_Expr * +e2_expr_const_f32(Arena *arena, F32 f32) +{ + E2_Expr *e = e2_expr(arena); + e->mode = E2_Mode_Value; + e->val.f32 = f32; + e->op = RDI_EvalOp_ConstU32; + e->type_key = e2_type_key_basic(E2_TypeKind_F32); + return e; +} + +internal E2_Expr * +e2_expr_const_f64(Arena *arena, F64 f64) +{ + E2_Expr *e = e2_expr(arena); + e->mode = E2_Mode_Value; + e->val.f64 = f64; + e->op = RDI_EvalOp_ConstU64; + e->type_key = e2_type_key_basic(E2_TypeKind_F64); + return e; +} + +internal E2_Expr * +e2_expr_unary_op(Arena *arena, E2_TypeKey type_key, RDI_EvalOp op, E2_Expr *operand) +{ + E2_Expr *e = e2_expr(arena); + e->type_key = type_key; + e->op = op; + e->mode = E2_Mode_Value; + e->val.u512.u8[0] = e2_type_group_from_kind(e2_type_kind_from_key(type_key)); + e->val.u512.u8[1] = 8*e2_byte_size_from_type_key(type_key); + e2_expr_push_child(e, operand); + return e; +} + +internal E2_Expr * +e2_expr_binary_op(Arena *arena, E2_TypeKey type_key, RDI_EvalOp op, E2_Expr *lhs, E2_Expr *rhs) +{ + E2_Expr *e = e2_expr(arena); + e->type_key = type_key; + e->op = op; + e->mode = E2_Mode_Value; + e->val.u512.u8[0] = e2_type_group_from_kind(e2_type_kind_from_key(type_key)); + e->val.u512.u8[1] = 8*e2_byte_size_from_type_key(type_key); + e2_expr_push_child(e, lhs); + e2_expr_push_child(e, rhs); + return e; +} + +internal E2_Expr * +e2_expr_resolve_to_value(Arena *arena, E2_Expr *expr) +{ + E2_Expr *result = expr; + + // rjf: address evaluations of arrays -> create value of pointer to first element + if(expr->mode == E2_Mode_Address && e2_type_kind_from_key(e2_type_key_undecorate(expr->type_key)) == E2_TypeKind_Array) + { + result = e2_expr(arena); + result->type_key = e2_type_key_direct(e2_type_key_undecorate(expr->type_key)); + result->mode = E2_Mode_Value; + e2_expr_push_child(result, expr); + } + + // rjf: address evaluations -> read value from space + else if(expr->mode == E2_Mode_Address) + { + U64 memread_byte_size = e2_byte_size_from_type_key(expr->type_key); + memread_byte_size = Min(64, memread_byte_size); + E2_Expr *memread_expr = e2_expr(arena); + memread_expr->op = RDI_EvalOp_MemRead; + memread_expr->mode = E2_Mode_Value; + memread_expr->type_key = expr->type_key; + memread_expr->val.u64 = memread_byte_size; + e2_expr_push_child(memread_expr, expr); + result = memread_expr; + } + + // rjf: bitfields -> shift & mask + E2_TypeKey core_type_key = e2_type_key_undecorate(expr->type_key); + if(e2_type_kind_from_key(core_type_key) == E2_TypeKind_Bitfield) + { + // rjf: unpack bitfield params + U64 shift = e2_shift_from_type_key(result->type_key); + U64 mask_count = e2_mask_count_from_type_key(result->type_key); + U64 valid_bits_mask = 0; + for EachIndex(idx, mask_count) + { + valid_bits_mask |= (1ull<type_key = dst_type_key; + result->op = dst_type_is_signed ? RDI_EvalOp_TruncSigned : RDI_EvalOp_Trunc; + result->val.u64 = dst_type_byte_size*8; + e2_expr_push_child(result, expr); + } + return result; +} + +internal E2_Expr * +e2_expr_convert_if_possible(Arena *arena, E2_Expr *expr, E2_TypeKey dst_type_key) +{ + E2_Expr *result = expr; + { + // rjf: unpack src / dst types + E2_TypeKey src_type_key = expr->type_key; + E2_TypeKind src_type_kind = e2_type_kind_from_key(src_type_key); + E2_TypeKind dst_type_kind = e2_type_kind_from_key(dst_type_key); + RDI_EvalTypeGroup src_type_group = e2_type_group_from_kind(src_type_kind); + RDI_EvalTypeGroup dst_type_group = e2_type_group_from_kind(dst_type_kind); + U64 src_byte_size = e2_byte_size_from_type_key(src_type_key); + U64 dst_byte_size = e2_byte_size_from_type_key(dst_type_key); + + // rjf: convert from src -> dst + RDI_EvalConversionKind conversion_kind = rdi_eval_conversion_kind_from_typegroups(src_type_group, dst_type_group); + if(conversion_kind == RDI_EvalConversionKind_Legal) + { + result = e2_expr(arena); + result->mode = E2_Mode_Value; + result->type_key = dst_type_key; + result->op = RDI_EvalOp_Convert; + result->val.u64 = src_type_group | (dst_type_group << 8); + e2_expr_push_child(result, expr); + } + + // rjf: if shrinking integer sizes, truncate + if(dst_byte_size < src_byte_size && e2_type_kind_is_integer(dst_type_kind)) + { + result = e2_expr_truncate(arena, expr, dst_type_key); + } + } + return result; +} + +internal void +e2_expr_push_child(E2_Expr *parent, E2_Expr *expr) +{ + SLLQueuePush_NZ(&e2_expr_nil, parent->first, parent->last, expr, next); +} + +//////////////////////////////// +//~ rjf: String -> Expression + +internal E2_Token +e2_token_from_string_off(String8 string, U64 start_off) +{ + E2_Token token = {E2_TokenKind_Null}; + B32 identifier_tick_mode = 0; + B32 comment_is_explicit_ender = 0; + B32 numeric_exponent = 0; + B32 escaped = 0; + B32 done = 0; + for(U64 off = start_off; !done && off <= string.size; off += 1) + { + U8 next_byte = (off < string.size ? string.str[off] : 0); + U8 next2_byte = (off+1 < string.size ? string.str[off+1] : 0); + U8 next3_byte = (off+2 < string.size ? string.str[off+2] : 0); + switch(token.kind) + { + //- rjf: no set token kind => look for starters + default: + { + if(next_byte == 0) + { + done = 1; + } + else if(next_byte <= 32) + { + token.kind = E2_TokenKind_Whitespace; + token.range.min = token.range.max = off; + } + else if(next_byte == '$' || next_byte == '_' || next_byte == '`' || + ('A' <= next_byte && next_byte <= 'Z') || + ('a' <= next_byte && next_byte <= 'z')) + { + token.kind = E2_TokenKind_Identifier; + token.range.min = token.range.max = off; + identifier_tick_mode = (next_byte == '`'); + } + else if(('0' <= next_byte && next_byte <= '9') || + (next_byte == '.' && '0' <= next2_byte && next2_byte <= '9')) + { + token.kind = E2_TokenKind_Numeric; + token.range.min = token.range.max = off; + } + else if(next_byte == '\'') + { + token.kind = E2_TokenKind_CharLiteral; + token.range.min = token.range.max = off; + } + else if(next_byte == '"') + { + token.kind = E2_TokenKind_StringLiteral; + token.range.min = token.range.max = off; + } + else if(next_byte == '/' && next2_byte == '/') + { + token.kind = E2_TokenKind_Comment; + token.range.min = token.range.max = off; + } + else if(next_byte == '/' && next2_byte == '*') + { + token.kind = E2_TokenKind_Comment; + token.range.min = token.range.max = off; + comment_is_explicit_ender = 1; + } + else if(next_byte == '~' || next_byte == '!' || next_byte == '%' || + next_byte == '^' || next_byte == '&' || next_byte == '*' || + next_byte == '(' || next_byte == ')' || next_byte == '[' || + next_byte == ']' || next_byte == '{' || next_byte == '}' || + next_byte == '-' || next_byte == '=' || next_byte == '+' || + next_byte == ':' || next_byte == ';' || next_byte == ',' || + next_byte == '.' || next_byte == '<' || next_byte == '>' || + next_byte == '/' || next_byte == '?' || next_byte == '#' || + next_byte == '@' || next_byte == '|') + { + token.kind = E2_TokenKind_Symbol; + token.range.min = token.range.max = off; + } + }break; + + //- rjf: active tokens -> seek enders + case E2_TokenKind_Whitespace: + if(next_byte > 32) + { + done = 1; + token.range.max = off; + }break; + case E2_TokenKind_Comment: + if(comment_is_explicit_ender && next_byte == '*' && next2_byte == '/') + { + done = 1; + token.range.max = off+2; + }break; + case E2_TokenKind_Identifier: + { + if(identifier_tick_mode && (next_byte == '`' || next_byte == '\'')) + { + identifier_tick_mode = 0; + } + else if(!identifier_tick_mode && + (next_byte < 'a' || 'z' < next_byte) && + (next_byte < 'A' || 'Z' < next_byte) && + (next_byte < '0' || '9' < next_byte) && + next_byte != '$' && + next_byte != '_' && + next_byte != '@') + { + done = 1; + token.range.max = off; + } + }break; + case E2_TokenKind_Numeric: + { + if(numeric_exponent && (next_byte == '+' || next_byte == '-')){} + else if((next_byte < 'a' || 'z' < next_byte) && + (next_byte < 'A' || 'Z' < next_byte) && + (next_byte < '0' || '9' < next_byte) && + next_byte != '.' && + next_byte != ':') + { + done = 1; + token.range.max = off; + } + else + { + numeric_exponent = (next_byte == 'e'); + } + }break; + case E2_TokenKind_Symbol: + if(next_byte != '~' && next_byte != '!' && next_byte != '%' && + next_byte != '^' && next_byte != '&' && next_byte != '*' && + next_byte != '(' && next_byte != ')' && next_byte != '[' && + next_byte != ']' && next_byte != '{' && next_byte != '}' && + next_byte != '-' && next_byte != '=' && next_byte != '+' && + next_byte != ':' && next_byte != ';' && next_byte != ',' && + next_byte != '.' && next_byte != '<' && next_byte != '>' && + next_byte != '/' && next_byte != '?' && next_byte != '#' && + next_byte != '@' && next_byte != '|') + { + done = 1; + token.range.max = off; + String8 token_string = str8_substr(string, token.range); + U64 biggest_match_size = 0; + for EachNonZeroEnumVal(E2_OpKind, k) + { + String8 op_symbol = (e2_op_kind_info_table[k].pre.size != 0) ? e2_op_kind_info_table[k].pre : e2_op_kind_info_table[k].sep; + if(biggest_match_size < op_symbol.size && str8_match(op_symbol, str8_prefix(token_string, op_symbol.size), 0)) + { + biggest_match_size = op_symbol.size; + token.range.max = token.range.min + op_symbol.size; + } + } + if(biggest_match_size == 0) + { + token.range.max = token.range.min + 1; + } + }break; + case E2_TokenKind_CharLiteral: + case E2_TokenKind_StringLiteral: + { + if(!escaped && next_byte == '\\') + { + escaped = 1; + } + else if(escaped) + { + escaped = 0; + } + else if(!escaped && ((next_byte == '"' && token.kind == E2_TokenKind_StringLiteral) || + (next_byte == '\'' && token.kind == E2_TokenKind_CharLiteral))) + { + done = 1; + token.range.max = off+1; + } + }break; + } + if(token.range.max > off+1) + { + off += (token.range.max - (off+1)); + } + if(!done && off == string.size) + { + done = 1; + token.range.max = off; + } + } + return token; +} + +internal U64 +e2_read_token(String8 string, U64 off, E2_Token *token_out) +{ + E2_Token token = e2_token_from_string_off(string, off); + if(token_out != 0) + { + token_out[0] = token; + } + U64 result = dim_1u64(token.range); + return result; +} + +internal B32 +e2_try_token(String8 string, E2_TokenKind kind, String8 expected_string, U64 *off_out, E2_Token *token_out) +{ + B32 result = 0; + U64 off = off_out[0]; + for(;;) + { + E2_Token next_token = {E2_TokenKind_Null}; + off += e2_read_token(string, off, &next_token); + if(next_token.kind == kind && (expected_string.size == 0 || str8_match(str8_substr(string, next_token.range), expected_string, 0))) + { + result = 1; + if(token_out != 0) + { + token_out[0] = next_token; + } + break; + } + else if(next_token.kind != E2_TokenKind_Comment && next_token.kind != E2_TokenKind_Whitespace) + { + break; + } + } + if(result && off_out != 0) + { + off_out[0] = off; + } + return result; +} + +internal E2_Parse +e2_parse_from_string(Arena *arena, E2_ParseState *state, E2_ExprMap *expr_map, E2_Expr *access_result, String8 string) +{ + U64 off = state->string_off; + E2_Parse parse = {E2_ParseStatus_Error, .expr = &e2_expr_nil, .params_expr = &e2_expr_nil}; + E2_Expr *next_access_result = access_result; + + //- rjf: parse & attach to top parsing task - if we don't have a top task + // then it is just the result + E2_Expr *expr = &e2_expr_nil; + for(B32 done = 0; !done;) + { + U64 start_off = off; + S64 max_precedence = state->top_task ? state->top_task->max_precedence : max_S64; + B32 need_new_expr = (expr == &e2_expr_nil && !state->caller_info_completes_task); + E2_Token token = {0}; + + //- rjf: skip leading whitespace / comments + for(;;) + { + E2_Token next_token = {0}; + U64 next_off = off + e2_read_token(string, off, &next_token); + if(next_token.kind == E2_TokenKind_Whitespace || + next_token.kind == E2_TokenKind_Comment) + { + off = next_off; + } + else + { + break; + } + } + + //- rjf: nested sub-expressions + if(need_new_expr && e2_try_token(string, E2_TokenKind_Symbol, s("("), &off, &token)) + { + E2_ParseTask *task = state->free_task; + if(task != 0) + { + SLLStackPop(state->free_task); + } + else + { + task = push_array_no_zero(arena, E2_ParseTask, 1); + } + MemoryZeroStruct(task); + task->src_range = token.range; + task->expected_closer = s(")"); + task->child_count_target = 1; + task->max_precedence = max_S64; + SLLStackPush(state->top_task, task); + } + + //- rjf: symbols (possible prefix unaries, *or* unexpected) + else if(need_new_expr && e2_try_token(string, E2_TokenKind_Symbol, s(""), &off, &token)) + { + // rjf: string -> operator kind + E2_OpKind op_kind = E2_OpKind_Null; + String8 closer = {0}; + { + String8 token_string = str8_substr(string, token.range); + for EachNonZeroEnumVal(E2_OpKind, k) + { + if(e2_op_kind_info_table[k].parse_kind == E2_OpParseKind_UnaryPrefix && + e2_op_kind_info_table[k].precedence <= max_precedence && + str8_match(token_string, e2_op_kind_info_table[k].pre, 0)) + { + op_kind = k; + closer = e2_op_kind_info_table[k].post; + break; + } + } + } + + // rjf: push task for operand + if(op_kind != E2_OpKind_Null) + { + E2_ParseTask *task = state->free_task; + if(task != 0) + { + SLLStackPop(state->free_task); + } + else + { + task = push_array_no_zero(arena, E2_ParseTask, 1); + } + MemoryZeroStruct(task); + task->src_range = token.range; + task->child_count_target = 1; + task->op_kind = op_kind; + task->max_precedence = e2_op_kind_info_table[op_kind].precedence; + task->expected_closer = closer; + SLLStackPush(state->top_task, task); + } + + // rjf: report unexpected symbols + if(op_kind == E2_OpKind_Null) + { + String8 token_string = str8_substr(string, token.range); + e2_msgf(arena, &parse.msgs, token.range, "Unexpected `%S`.", token_string); + } + } + + //- rjf: identifiers with an active dot op kind -> member access + else if(need_new_expr && state->top_task != 0 && state->top_task->op_kind == E2_OpKind_Dot && e2_try_token(string, E2_TokenKind_Identifier, s(""), &off, &token)) + { + // rjf: if we have a caller-provided access result, use that as our new expression + if(next_access_result != &e2_expr_nil) + { + expr = next_access_result; + next_access_result = &e2_expr_nil; + } + + // rjf: if we don't, ask for it - reset the offset to before this token + else + { + done = 1; + parse.status = E2_ParseStatus_MemberAccess; + parse.expr = state->top_task->first_child ? state->top_task->first_child->v : &e2_expr_nil; + parse.member_name = str8_substr(string, token.range); + state->last_requested_member_name = parse.member_name; + off = start_off; + } + } + + //- rjf: standalone identifiers (also could be operator keyword) + else if(need_new_expr && e2_try_token(string, E2_TokenKind_Identifier, s(""), &off, &token)) + { + String8 identifier = str8_substr(string, token.range); + B32 identifier_mapped = 0; + + // rjf: first try to resolve as an operator name + if(!identifier_mapped) + { + // rjf: string -> op kind + E2_OpKind op_kind = E2_OpKind_Null; + { + String8 token_string = str8_substr(string, token.range); + for EachNonZeroEnumVal(E2_OpKind, k) + { + if(e2_op_kind_info_table[k].parse_kind == E2_OpParseKind_UnaryPrefix && + e2_op_kind_info_table[k].precedence <= max_precedence && + str8_match(token_string, str8_skip_chop_whitespace(e2_op_kind_info_table[k].pre), 0)) + { + op_kind = k; + break; + } + } + } + + // rjf: push task for operand + if(op_kind != E2_OpKind_Null) + { + identifier_mapped = 1; + E2_ParseTask *task = state->free_task; + if(task != 0) + { + SLLStackPop(state->free_task); + } + else + { + task = push_array_no_zero(arena, E2_ParseTask, 1); + } + MemoryZeroStruct(task); + task->src_range = token.range; + task->child_count_target = 1; + task->op_kind = op_kind; + task->max_precedence = e2_op_kind_info_table[op_kind].precedence; + SLLStackPush(state->top_task, task); + } + } + + // rjf: try to resolve via caller-provided named expressions + if(!identifier_mapped) + { + expr = e2_expr_from_name(expr_map, identifier); + identifier_mapped = (expr != &e2_expr_nil); + } + + // rjf: couldn't map -> ask caller to resolve it + if(!identifier_mapped) + { + done = 1; + parse.status = E2_ParseStatus_MissedIdentifierResolution; + parse.missed_identifier = identifier; + off = start_off; + } + } + + //- rjf: leaf numerics + else if(need_new_expr && e2_try_token(string, E2_TokenKind_Numeric, s(""), &off, &token)) + { + U64 u64_val = 0; + String8 numeric_string = str8_substr(string, token.range); + U64 dot_pos = str8_find_needle(numeric_string, 0, s("."), 0); + B32 f_suffix = str8_match(str8_postfix(numeric_string, 1), s("f"), 0); + U64 colon_pos = str8_find_needle(numeric_string, 0, s(":"), 0); + if(dot_pos < numeric_string.size && f_suffix) + { + expr = e2_expr_const_f32(arena, (F32)f64_from_str8(numeric_string)); + } + else if(dot_pos < numeric_string.size && !f_suffix) + { + expr = e2_expr_const_f64(arena, f64_from_str8(numeric_string)); + } + else if(colon_pos < numeric_string.size) + { + Temp scratch = scratch_begin(&arena, 1); + String8List parts = str8_split(scratch.arena, numeric_string, (U8 *)":", 1, 0); + U64 u64_idx = 0; + expr = e2_expr(arena); + for EachNode(n, String8Node, parts.first) + { + if(u64_idx >= ArrayCount(expr->val.u512.u64)) + { + break; + } + try_u64_from_str8_c_rules(n->string, &expr->val.u512.u64[u64_idx]); + u64_idx += 1; + } + switch(u64_idx) + { + case 1:{expr->op = RDI_EvalOp_ConstU64; expr->type_key = e2_type_key_basic(E2_TypeKind_U64);}break; + case 2:{expr->op = RDI_EvalOp_ConstU128; expr->type_key = e2_type_key_basic(E2_TypeKind_U128);}break; + case 4:{expr->op = RDI_EvalOp_ConstU256; expr->type_key = e2_type_key_basic(E2_TypeKind_U256);}break; + case 8:{expr->op = RDI_EvalOp_ConstU512; expr->type_key = e2_type_key_basic(E2_TypeKind_U512);}break; + default: + { + e2_msgf(arena, &parse.msgs, token.range, "Invalid number of numeric portions specified (%I64u; must be 2, 4, or 8).", u64_idx); + }break; + } + scratch_end(scratch); + } + else if(try_u64_from_str8_c_rules(numeric_string, &u64_val)) + { + expr = e2_expr_const_u64_or_smaller(arena, u64_val); + } + } + + //- rjf: extend parsed expression tree with trailing operators + if(!state->caller_info_completes_task && expr != &e2_expr_nil) + { + U64 trailing_symbol_off = off; + if(e2_try_token(string, E2_TokenKind_Symbol, s(""), &trailing_symbol_off, &token)) + { + // rjf: token string -> operator kind + E2_OpKind op_kind = E2_OpKind_Null; + U64 child_count_target = 2; + String8 splitter = {0}; + String8 closer = {0}; + B32 splitter_is_required = 0; + { + String8 token_string = str8_substr(string, token.range); + for EachNonZeroEnumVal(E2_OpKind, k) + { + E2_OpInfo *op_info = &e2_op_kind_info_table[k]; + if(op_info->precedence <= max_precedence && str8_match(token_string, op_info->sep, 0)) + { + switch(op_info->parse_kind) + { + default:{}break; + case E2_OpParseKind_Binary: {child_count_target = 2;}break; + case E2_OpParseKind_Ternary: {child_count_target = 3; splitter_is_required = 1;}break; + case E2_OpParseKind_Call: {child_count_target = max_U64;}break; + } + splitter = op_info->chain; + closer = op_info->post; + op_kind = k; + break; + } + } + } + + // rjf: non-null operator kind -> build binary expression node, push task to fill other child + if(op_kind != E2_OpKind_Null) + { + E2_ParseTask *task = state->free_task; + if(task != 0) + { + SLLStackPop(state->free_task); + } + else + { + task = push_array_no_zero(arena, E2_ParseTask, 1); + } + MemoryZeroStruct(task); + task->src_range = token.range; + task->child_count = 0; + task->child_count_target = child_count_target; + task->op_kind = op_kind; + task->max_precedence = e2_op_kind_info_table[op_kind].precedence; + task->expected_splitter = splitter; + task->expected_closer = closer; + task->splitter_is_required = splitter_is_required; + SLLStackPush(state->top_task, task); + off = trailing_symbol_off; + } + } + } + + //- rjf: attach formed expressions to parent task exprs; pop tasks when they're done. + // if we have no parent task, then we just fill the result, and we're done with the parse. + if(state->caller_info_completes_task || expr != &e2_expr_nil) + { + //- rjf: pop finished expressions + for(;state->top_task != 0 && !done;) + { + //- rjf: gather finished expression to current task; increase task child count + if(!state->caller_info_completes_task) + { + E2_ExprNode *n = push_array(arena, E2_ExprNode, 1); + SLLQueuePush(state->top_task->first_child, state->top_task->last_child, n); + n->v = expr; + state->top_task->child_count += 1; + } + + //- rjf: consume expected splitters + if(!state->caller_info_completes_task && + state->top_task->child_count > 1 && + state->top_task->expected_splitter.size != 0 && + state->top_task->child_count < state->top_task->child_count_target) + { + if(!e2_try_token(string, E2_TokenKind_Symbol, state->top_task->expected_splitter, &off, 0) && state->top_task->splitter_is_required) + { + e2_msgf(arena, &parse.msgs, r1u64(off, off), "Expected `%S`.", state->top_task->expected_splitter); + } + } + + //- rjf: consume expected closers - can terminate a child list early + B32 closer_found = 0; + if(!state->caller_info_completes_task && state->top_task->expected_closer.size != 0) + { + closer_found = e2_try_token(string, E2_TokenKind_Symbol, state->top_task->expected_closer, &off, 0); + } + + //- rjf: caller-provided info completes a task, *or* closer found, + // *or* task child count hits limit -> complete this subtree + if(state->caller_info_completes_task || closer_found || state->top_task->child_count >= state->top_task->child_count_target) + { + B32 completed_with_caller_info = state->caller_info_completes_task; + state->caller_info_completes_task = 0; + E2_ParseTask *completed_task = state->top_task; + + //- rjf: produced finished expression tree, given all children + E2_Expr *finished_root = &e2_expr_nil; + E2_Expr *lhs = completed_task->first_child ? completed_task->first_child->v : &e2_expr_nil; + E2_Expr *rhs = completed_task->last_child ? completed_task->last_child->v : &e2_expr_nil; + E2_Expr *mhs = completed_task->child_count == 3 ? lhs->next : &e2_expr_nil; + { + RDI_EvalOp op = RDI_EvalOp_Stop; + E2_TypeKey dst_type_key = {E2_TypeKeyKind_Null}; + switch(completed_task->op_kind) + { + //- rjf: no op -> just a sub-expression + default: + { + if(lhs != rhs) + { + finished_root = e2_expr(arena); + for EachNode(n, E2_ExprNode, completed_task->first_child) + { + e2_expr_push_child(finished_root, n->v); + } + } + else + { + finished_root = lhs; + } + }break; + + //- rjf: member accesses -> at this point we should have a resolved access + // expression submitted to us by the user (the parser reports it first) + // stored as the second child in the list. we just want to use the + // second expression - the initial child was just the accessed evaluation. + case E2_OpKind_Dot: + { + finished_root = rhs; + }break; + + //- rjf: indexes + case E2_OpKind_Index: + { + E2_TypeKey lhs_type_key = e2_type_key_undecorate(lhs->type_key); + E2_TypeKind lhs_type_kind = e2_type_kind_from_key(lhs_type_key); + + // rjf: array/pointer *address* indexes + if(lhs_type_kind == E2_TypeKind_Ptr || lhs_type_kind == E2_TypeKind_Array) + { + E2_TypeKey element_type_key = e2_type_key_direct(lhs_type_key); + U64 element_byte_size = e2_byte_size_from_type_key(element_type_key); + E2_Expr *base_addr_value_expr = e2_expr_resolve_to_value(arena, lhs); + E2_Expr *index_value_expr = e2_expr_resolve_to_value(arena, rhs); + E2_Expr *offset_value_expr = index_value_expr; + if(element_byte_size != 1) + { + E2_Expr *element_size_value_expr = e2_expr_const_u64_or_smaller(arena, element_byte_size); + offset_value_expr = e2_expr_binary_op(arena, e2_type_key_basic(E2_TypeKind_U64), RDI_EvalOp_Mul, index_value_expr, element_size_value_expr); + } + E2_Expr *element_addr_value_expr = e2_expr_binary_op(arena, e2_type_key_basic(E2_TypeKind_U64), RDI_EvalOp_Add, base_addr_value_expr, offset_value_expr); + element_addr_value_expr->type_key = element_type_key; + element_addr_value_expr->mode = E2_Mode_Address; + finished_root = element_addr_value_expr; + } + + // rjf: fallback case: ask the caller for fancy indexing operations + else + { + if(next_access_result != &e2_expr_nil) + { + finished_root = next_access_result; + next_access_result = &e2_expr_nil; + } + else + { + done = 1; + parse.status = E2_ParseStatus_IndexAccess; + parse.expr = lhs; + parse.params_expr = rhs; + state->caller_info_completes_task = 1; + } + } + }break; + + //- rjf: calls + case E2_OpKind_Call: + { + // TODO(rjf) + }break; + + //- rjf: sizeof + case E2_OpKind_SizeOf: + { + E2_TypeKey rhs_type_key = e2_type_key_unwrap(rhs->type_key, E2_TypeUnwrapFlag_AllDecorative & ~E2_TypeUnwrapFlag_Enums); + U64 rhs_size = e2_byte_size_from_type_key(rhs_type_key); + finished_root = e2_expr_const_u64_or_smaller(arena, rhs_size); + finished_root->type_key = e2_type_key_basic(E2_TypeKind_U64); + }break; + + //- rjf: dereferences + case E2_OpKind_Deref: + case E2_OpKind_DerefAsm: + { + // rjf: unpack operand + E2_TypeKey rhs_type_key = e2_type_key_unwrap(rhs->type_key, E2_TypeUnwrapFlag_AllDecorative & ~E2_TypeUnwrapFlag_Enums); + E2_TypeKind rhs_type_kind = e2_type_kind_from_key(rhs_type_key); + E2_TypeKey dereferenced_type = e2_type_key_unwrap(rhs->type_key, E2_TypeUnwrapFlag_All & ~E2_TypeUnwrapFlag_Enums); + U64 dereferenced_type_size = e2_byte_size_from_type_key(dereferenced_type); + + // rjf: collect info about malformed situations + B32 malformed = 0; + if(dereferenced_type_size == 0 && e2_type_kind_is_ptr_or_ref(rhs_type_kind)) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot dereference pointers to zero-sized types."); + } + else if(dereferenced_type_size == 0 && rhs_type_kind == E2_TypeKind_Array) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot dereference arrays of zero-sized types."); + } + else if(!e2_type_kind_is_ptr_or_ref(rhs_type_kind) && rhs_type_kind != E2_TypeKind_Array && + completed_task->op_kind != E2_OpKind_DerefAsm) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot dereference this type."); + } + + // rjf: asm-style deref -> go to u64 if the address expression isn't + // an array or pointer + // + // TODO(rjf): probably we should get an absolute-fallback-architecture here, + // which ultimately is sourced by the selected thread, to choose an address-sized + // integer type. + // + if(!e2_type_kind_is_ptr_or_ref(rhs_type_kind) && rhs_type_kind != E2_TypeKind_Array && + completed_task->op_kind == E2_OpKind_DerefAsm) + { + dereferenced_type = e2_type_key_basic(E2_TypeKind_U64); + } + + // rjf: not malformed -> equip info + if(!malformed) + { + B32 is_only_type_eval = (rhs->mode == E2_Mode_Type); + E2_Expr *addr_value_tree = e2_expr_resolve_to_value(arena, rhs); + addr_value_tree->type_key = dereferenced_type; + if(is_only_type_eval) + { + addr_value_tree->mode = E2_Mode_Type; + } + else + { + addr_value_tree->mode = E2_Mode_Address; + } + finished_root = addr_value_tree; + } + }break; + + //- rjf: address-of + case E2_OpKind_Address: + { + // rjf: determine if malformed + B32 malformed = 0; + if(rhs->mode != E2_Mode_Address) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot take an address of a value; it does not exist in memory."); + } + + // rjf: generate + if(!malformed) + { + Arch arch = e2_arch_from_type_key(rhs->type_key); + finished_root = rhs; + finished_root->mode = E2_Mode_Value; + finished_root->type_key = e2_type_key_cons_ptr(arch, rhs->type_key); + } + }break; + + //- rjf: positive (no-op, just take the right-hand-side) + case E2_OpKind_Pos: + { + finished_root = rhs; + }break; + + //- rjf: unary ops + case E2_OpKind_Neg: {op = RDI_EvalOp_Neg;}goto unary_op; + case E2_OpKind_LogNot: {op = RDI_EvalOp_LogNot;}goto unary_op; + case E2_OpKind_BitNot: {op = RDI_EvalOp_BitNot;}goto unary_op; + unary_op:; + { + // rjf: unpack operand + E2_TypeKey rhs_type_key = e2_type_key_unwrap(rhs->type_key, E2_TypeUnwrapFlag_AllDecorative & ~E2_TypeUnwrapFlag_Enums); + E2_TypeKind rhs_type_kind = e2_type_kind_from_key(rhs_type_key); + RDI_EvalTypeGroup rhs_type_group = e2_type_group_from_kind(rhs_type_kind); + + // rjf: determine if malformed + B32 malformed = 0; + if(!rdi_eval_op_typegroup_are_compatible(op, rhs_type_group)) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot use this operator on this type."); + } + + // rjf: generate + if(!malformed) + { + E2_TypeKey dst_type = rhs_type_key; + if(RDI_EvalOp_FirstLogical <= op && op <= RDI_EvalOp_LastLogical) + { + dst_type = e2_type_key_basic(E2_TypeKind_Bool); + } + else if(rhs_type_kind == E2_TypeKind_Bool || + rhs_type_kind == E2_TypeKind_S8 || + rhs_type_kind == E2_TypeKind_S16 || + rhs_type_kind == E2_TypeKind_U8 || + rhs_type_kind == E2_TypeKind_U16) + { + dst_type = e2_type_key_basic(E2_TypeKind_S32); + } + E2_Expr *operand = e2_expr_resolve_to_value(arena, rhs); + E2_Expr *operand__converted = e2_expr_convert_if_possible(arena, operand, dst_type); + finished_root = e2_expr_unary_op(arena, dst_type, op, operand__converted); + } + }break; + + //- rjf: binary ops + case E2_OpKind_Mul: {op = RDI_EvalOp_Mul;}goto binary_op; + case E2_OpKind_Div: {op = RDI_EvalOp_Div;}goto binary_op; + case E2_OpKind_Mod: {op = RDI_EvalOp_Mod;}goto binary_op; + case E2_OpKind_Add: {op = RDI_EvalOp_Add;}goto binary_op; + case E2_OpKind_Sub: {op = RDI_EvalOp_Sub;}goto binary_op; + case E2_OpKind_LShift:{op = RDI_EvalOp_LShift;}goto binary_op; + case E2_OpKind_RShift:{op = RDI_EvalOp_RShift;}goto binary_op; + case E2_OpKind_Less: {op = RDI_EvalOp_Less;}goto binary_op; + case E2_OpKind_LtEq: {op = RDI_EvalOp_LsEq;}goto binary_op; + case E2_OpKind_Grtr: {op = RDI_EvalOp_Grtr;}goto binary_op; + case E2_OpKind_GrEq: {op = RDI_EvalOp_GrEq;}goto binary_op; + case E2_OpKind_EqEq: {op = RDI_EvalOp_EqEq;}goto binary_op; + case E2_OpKind_NtEq: {op = RDI_EvalOp_NtEq;}goto binary_op; + case E2_OpKind_BitAnd:{op = RDI_EvalOp_BitAnd;}goto binary_op; + case E2_OpKind_BitXor:{op = RDI_EvalOp_BitXor;}goto binary_op; + case E2_OpKind_BitOr: {op = RDI_EvalOp_BitOr;}goto binary_op; + case E2_OpKind_LogAnd:{op = RDI_EvalOp_LogAnd;}goto binary_op; + case E2_OpKind_LogOr: {op = RDI_EvalOp_LogOr;}goto binary_op; + binary_op:; + { + // rjf: resolve lhs / rhs to values + E2_Expr *lhs_value = e2_expr_resolve_to_value(arena, lhs); + E2_Expr *rhs_value = e2_expr_resolve_to_value(arena, rhs); + + // rjf: unpack resolved lhs/rhs + E2_TypeKey lhs_type_key = e2_type_key_undecorate(lhs_value->type_key); + E2_TypeKey rhs_type_key = e2_type_key_undecorate(rhs_value->type_key); + E2_TypeKind lhs_type_kind = e2_type_kind_from_key(lhs_type_key); + E2_TypeKind rhs_type_kind = e2_type_kind_from_key(rhs_type_key); + RDI_EvalTypeGroup lhs_type_group = e2_type_group_from_kind(lhs_type_kind); + RDI_EvalTypeGroup rhs_type_group = e2_type_group_from_kind(rhs_type_kind); + U64 lhs_type_size = e2_byte_size_from_type_key(lhs_type_key); + U64 rhs_type_size = e2_byte_size_from_type_key(rhs_type_key); + + // rjf: determine kind of arithmetic + typedef enum ArithKind + { + ArithKind_Normal, + ArithKind_PtrAdd, + ArithKind_PtrSub, + ArithKind_PtrArrayCompare, + ArithKind_TypeCompare, + } + ArithKind; + ArithKind arith_kind = ArithKind_Normal; + { + if(lhs_value->mode == E2_Mode_Type || rhs_value->mode == E2_Mode_Type) + { + arith_kind = ArithKind_TypeCompare; + } + else if((op == RDI_EvalOp_Add || op == RDI_EvalOp_Sub) && + ((e2_type_kind_is_ptr_or_ref(lhs_type_kind) && e2_type_kind_is_integer(rhs_type_kind)) || + (e2_type_kind_is_ptr_or_ref(rhs_type_kind) && e2_type_kind_is_integer(lhs_type_kind)))) + { + arith_kind = ArithKind_PtrAdd; + } + else if(op == RDI_EvalOp_Sub && e2_type_kind_is_ptr_or_ref(lhs_type_kind) && e2_type_kind_is_ptr_or_ref(rhs_type_kind)) + { + arith_kind = ArithKind_PtrSub; + } + else if((op == RDI_EvalOp_EqEq || op == RDI_EvalOp_NtEq) && + ((e2_type_kind_is_ptr_or_ref(lhs_type_kind) && rhs_type_kind == E2_TypeKind_Array) || + (e2_type_kind_is_ptr_or_ref(rhs_type_kind) && lhs_type_kind == E2_TypeKind_Array))) + { + arith_kind = ArithKind_PtrArrayCompare; + } + } + + // rjf: generate + switch(arith_kind) + { + //- rjf: normal arithmetic + case ArithKind_Normal: + { + // rjf: check malformation + B32 malformed = 0; + if(!rdi_eval_op_typegroup_are_compatible(op, lhs_type_group) || + !rdi_eval_op_typegroup_are_compatible(op, rhs_type_group)) + { + malformed = 1; + e2_msgf(arena, &parse.msgs, completed_task->src_range, "Cannot use this operator on this type."); + } + + // rjf: generate + if(!malformed) + { + E2_TypeKey dst_type_key = lhs_type_key; + if(RDI_EvalOp_FirstLogical <= op && op <= RDI_EvalOp_LastLogical) + { + dst_type_key = e2_type_key_basic(E2_TypeKind_Bool); + } + else + { + dst_type_key = e2_coerced_type_key_from_operands(lhs_type_key, rhs_type_key); + } + E2_Expr *lhs_converted = e2_expr_convert_if_possible(arena, lhs_value, dst_type_key); + E2_Expr *rhs_converted = e2_expr_convert_if_possible(arena, rhs_value, dst_type_key); + finished_root = e2_expr_binary_op(arena, dst_type_key, op, lhs_converted, rhs_converted); + } + }break; + + //- rjf: pointer-add arithmetic + case ArithKind_PtrAdd: + { + + }break; + + //- rjf: pointer-sub arithmetic + case ArithKind_PtrSub: + { + + }break; + + //- rjf: pointer-array comparisons + case ArithKind_PtrArrayCompare: + { + + }break; + + //- rjf: type comparisons + case ArithKind_TypeCompare: + { + + }break; + } + }break; + + //- rjf: definitions (TODO(rjf): tricky with the 'user resolves expressions' model - let's figure it out once basics are in) + case E2_OpKind_Define:{}break; + + //- rjf: conditionals + case E2_OpKind_Cond: + { + // TODO(rjf) + }break; + } + } + + //- rjf: report missing closers + if(!completed_with_caller_info && completed_task->expected_closer.size != 0 && !closer_found) + { + e2_msgf(arena, &parse.msgs, r1u64(off, off), "Expected `%S`.", completed_task->expected_closer); + } + + //- rjf: work on the parent of the finished expression next + expr = finished_root; + + //- rjf: release task + if(!done) + { + SLLStackPop(state->top_task); + SLLStackPush(state->free_task, completed_task); + } + } + + //- rjf: if the top task is not done -> break & continue - reset expression, because we need to parse another. + else + { + expr = &e2_expr_nil; + break; + } + } + + //- rjf: for the last finished expression, if we do not have any further tasks, + // this is our result. + if(state->top_task == 0 && off >= string.size) + { + parse.expr = expr; + if(parse.status == E2_ParseStatus_Error) + { + parse.status = E2_ParseStatus_Good; + } + break; + } + } + + //- rjf: we're always done if there's nothing left to parse + if(off >= string.size) + { + done = 1; + } + } + + //- rjf: asking caller for info? -> if we already did this at this offset, + // the user couldn't provide the info, so we just fail out. + if(e2_parse_status_is_caller_request(parse.status)) + { + if(state->caller_request_count > 0 && state->last_caller_request_string_off == state->string_off) + { + if(parse.status == E2_ParseStatus_MissedIdentifierResolution) + { + e2_msgf(arena, &parse.msgs, r1u64(state->string_off, state->string_off + parse.missed_identifier.size), "`%S` couldn't be resolved.", parse.missed_identifier); + } + parse.status = E2_ParseStatus_Error; + } + state->caller_request_count += 1; + state->last_caller_request_string_off = state->string_off; + } + + //- rjf: report incomplete tasks + if(off >= string.size && !e2_parse_status_is_caller_request(parse.status)) + { + for(E2_ParseTask *t = state->top_task; t != 0; t = t->next) + { + if(t->child_count == 1 && t->child_count_target == 2 && t->op_kind == E2_OpKind_Dot) + { + e2_msgf(arena, &parse.msgs, t->src_range, "Couldn't access member `%S`.", state->last_requested_member_name); + } + else if(t->child_count == 2 && t->child_count_target == 2 && t->op_kind == E2_OpKind_Index) + { + e2_msgf(arena, &parse.msgs, t->src_range, "Couldn't index into this type."); + } + else if(t->child_count == 1 && t->child_count_target == 2 && t->op_kind != E2_OpKind_Null) + { + e2_msgf(arena, &parse.msgs, t->src_range, "Expected expression after binary operator `%S`.", e2_op_kind_info_table[t->op_kind].sep); + } + else if(t->child_count == 0 && t->child_count_target == 1 && t->op_kind != E2_OpKind_Null) + { + e2_msgf(arena, &parse.msgs, t->src_range, "Expected expression after unary operator `%S`.", e2_op_kind_info_table[t->op_kind].pre); + } + else + { + e2_msgf(arena, &parse.msgs, t->src_range, "Expected expression."); + } + } + } + + //- rjf: commit offset + { + state->string_off = off; + } + + return parse; +} + +//////////////////////////////// +//~ rjf: Expression -> Bytecode + +internal String8 +e2_bytecode_from_expr(Arena *arena, E2_Expr *expr) +{ + String8 result = {0}; + { + Temp scratch = scratch_begin(&arena, 1); + String8List strings = {0}; + typedef struct Task Task; + struct Task + { + Task *next; + E2_Expr *e; + E2_Expr *last_pushed_child; + U64 pushed_child_count; + }; + Task start_task = {0, expr, &e2_expr_nil}; + Task *top_task = &start_task; + Task *free_task = 0; + for(Task *t = top_task; t != 0; t = top_task) + { + E2_Expr *e = t->e; + + //- rjf: unpack this op + U16 ctrlbits = rdi_eval_op_ctrlbits_table[e->op]; + U64 child_count = RDI_POPN_FROM_CTRLBITS(ctrlbits); + + //- rjf: push the next child task if we can + if(t->pushed_child_count < child_count) + { + t->pushed_child_count += 1; + E2_Expr *next_child = (t->last_pushed_child == &e2_expr_nil ? e->first : t->last_pushed_child->next); + Task *child_task = free_task; + if(child_task != 0) + { + SLLStackPop(free_task); + } + else + { + child_task = push_array_no_zero(scratch.arena, Task, 1); + } + MemoryZeroStruct(child_task); + SLLStackPush(top_task, child_task); + child_task->e = next_child; + child_task->last_pushed_child = &e2_expr_nil; + child_task->pushed_child_count = 0; + t->last_pushed_child = next_child; + } + + //- rjf: did push of all children -> push this expr's op, pop off stack + else + { + U16 ctrlbits = 0; + if(e->op < RDI_EvalOp_COUNT) + { + ctrlbits = rdi_eval_op_ctrlbits_table[e->op]; + } + U64 decode_byte_count = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); + U64 op_size = 1 + decode_byte_count; + U8 *op_buffer = push_array(scratch.arena, U8, op_size); + op_buffer[0] = e->op; + MemoryCopy(op_buffer+1, &e->val, decode_byte_count); + str8_list_push(scratch.arena, &strings, str8(op_buffer, op_size)); + SLLStackPop(top_task); + SLLStackPush(free_task, t); + } + } + result = str8_list_join(arena, &strings, 0); + scratch_end(scratch); + } + return result; +} + +//////////////////////////////// +//~ rjf: Bytecode -> Result + +internal E2_Interp +e2_interp_from_bytecode(Arena *arena, E2_InterpState *state, E2_SpaceMap *space_map, String8 bytecode) +{ + E2_Interp interp = {E2_InterpStatus_Error}; + { + U64 off = state->bytecode_off; + U64 off_opl = bytecode.size; + B32 done = 0; + B32 good = 1; + + //- rjf: execute bytecode + for(;off < off_opl && !done && good;) + { + Temp scratch = scratch_begin(&arena, 1); + U64 start_off = off; + + //- rjf: read next opcode + RDI_EvalOp op = 0; + off += str8_deserial_read_struct(bytecode, off, &op); + + //- rjf: opcode -> ctrl bits + U16 ctrlbits = 0; + switch(op) + { + default: + if(op < RDI_EvalOp_COUNT) + { + ctrlbits = rdi_eval_op_ctrlbits_table[op]; + }break; + case E2_EvalOp_SetCtxID:{ctrlbits = RDI_EVAL_CTRLBITS(8, 0, 0);}break; + } + + //- rjf: ctrlbits -> push/pop/decode count + U64 decode_size = RDI_DECODEN_FROM_CTRLBITS(ctrlbits); + U64 push_count = RDI_PUSHN_FROM_CTRLBITS(ctrlbits); + U64 pop_count = RDI_POPN_FROM_CTRLBITS(ctrlbits); + + //- rjf: do extra decode + String8 decode_data = str8_substr(bytecode, r1u64(off, off+decode_size)); + E2_Val decode_val = {0}; + MemoryCopy(&decode_val, decode_data.str, Min(sizeof(decode_val), decode_data.size)); + RDI_EvalTypeGroup type_group = (RDI_EvalTypeGroup)decode_val.u512.u8[0]; + U64 op_arithmetic_size = (U64)decode_val.u512.u8[1]; + off += decode_size; + + //- rjf: prepare popped stack values & to-push stack values + E2_Val *popped_vals = push_array(scratch.arena, E2_Val, pop_count); + E2_Val *push_vals = push_array(scratch.arena, E2_Val, push_count); + { + E2_InterpStackValNode *node = state->top_val; + for(U64 pop_idx = 0; node != 0 && pop_idx < pop_count; pop_idx += 1, node = node->next) + { + popped_vals[pop_idx] = node->val; + } + } + + //- rjf: do opcode + E2_CtxFlags ctx_flags = 0; + U64 ctx_base_addr = 0; + switch(op) + { + default:{}break; + + case E2_EvalOp_SetCtxID: + { + interp.status = E2_InterpStatus_NewCtxID; + interp.ctx_id = decode_val.u64; + }break; + + case RDI_EvalOp_Stop: + { + done = 1; + }break; + case RDI_EvalOp_Noop:{}break; + case RDI_EvalOp_Cond: + if(popped_vals[0].u64 != 0) + { + off += decode_val.u64; + }break; + case RDI_EvalOp_Skip: + { + off += decode_val.u64; + }break; + case RDI_EvalOp_MemRead: + { + U64 addr = popped_vals[0].u64; + U64 size = decode_val.u64; + Rng1U64 space_addr_range = r1u64(addr, addr+size); + void *read_dst = &push_vals[0]; + if(size > sizeof(push_vals[0].u512)) + { + read_dst = push_array(arena, U8, size); + } + U64 read_size = e2_space_map_read(space_map, state->selected_ctx.space_id, space_addr_range, read_dst); + arena_pop(arena, size - read_size); + push_vals[0].string = str8(read_dst, read_size); + if(read_size != size) + { + good = 0; + interp.status = E2_InterpStatus_MissedSpaceRead; + interp.missed_read_space_addr_range = space_addr_range; + } + }break; + case RDI_EvalOp_RegRead: + { + U8 rdi_reg_code = (decode_val.u64&0x0000FF)>>0; + U8 byte_size = (decode_val.u64&0x00FF00)>>8; + U8 byte_off = (decode_val.u64&0xFF0000)>>16; + Arch arch = state->selected_ctx.arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + ARCH_RegCode base_reg_code = arch_reg_code_from_rdi(arch, rdi_reg_code); + if(0 <= base_reg_code && base_reg_code < arch_info->reg_code_count) + { + Rng1U16 reg_rng = arch_info->reg_code_rng_table[base_reg_code]; + U64 off = (U64)reg_rng.min + byte_off; + U64 size = (U64)byte_size; + Rng1U64 space_addr_range = r1u64(off, off+size); + U64 read_size = e2_space_map_read(space_map, state->selected_ctx.reg_space_id, space_addr_range, &push_vals[0]); + if(read_size != size) + { + good = 0; + interp.status = E2_InterpStatus_MissedSpaceRead; + interp.missed_read_space_addr_range = space_addr_range; + } + } + else + { + good = 0; + interp.status = E2_InterpStatus_BadRegCode; + } + }break; + case RDI_EvalOp_FrameOff: {ctx_flags = E2_CtxFlag_HasFrameBase; ctx_base_addr = state->selected_ctx.frame_base_addr;}goto optional_base_off; + case RDI_EvalOp_ModuleOff: {ctx_flags = E2_CtxFlag_HasModuleBase; ctx_base_addr = state->selected_ctx.module_base_addr;}goto optional_base_off; + case RDI_EvalOp_TLSOff: {ctx_flags = E2_CtxFlag_HasTLSBase; ctx_base_addr = state->selected_ctx.tls_base_addr;}goto optional_base_off; + case RDI_EvalOp_PushCfa: {ctx_flags = E2_CtxFlag_HasCFA; ctx_base_addr = state->selected_ctx.cfa_addr;}goto optional_base_off; + optional_base_off:; + { + if(state->selected_ctx.flags & ctx_flags) + { + push_vals[0].u64 = ctx_base_addr + decode_val.u64; + } + else + { + good = 0; + interp.status = E2_InterpStatus_MissingCtxFlag; + interp.missing_ctx_flags |= ctx_flags; + } + }break; + + case RDI_EvalOp_ConstU8: + case RDI_EvalOp_ConstU16: + case RDI_EvalOp_ConstU32: + case RDI_EvalOp_ConstU64: + case RDI_EvalOp_ConstU128: + { + push_vals[0] = decode_val; + }break; + + case RDI_EvalOp_ConstString: + { + U64 string_size = decode_val.u64; + String8 string = str8_substr(bytecode, r1u64(off, off+string_size)); + off += string_size; + push_vals[0].string = string; + }break; + + case RDI_EvalOp_Abs: + { + if(0){} +#define CaseA(target_type_group, target_type) else if(type_group == (RDI_EvalTypeGroup_##target_type_group)) do{push_vals[0].target_type = (popped_vals[0].target_type < 0 ? -popped_vals[0].target_type : +popped_vals[0].target_type);}while(0) +#define CaseB(target_type_group, size, target_type) else if(type_group == (RDI_EvalTypeGroup_##target_type_group) && op_arithmetic_size == (size)) do{push_vals[0].target_type = (popped_vals[0].target_type < 0 ? -popped_vals[0].target_type : +popped_vals[0].target_type);}while(0) + CaseA(F32, f32); + CaseA(F64, f64); + CaseB(S, 8, s8); + CaseB(S, 16, s16); + CaseB(S, 32, s32); + CaseB(S, 64, s64); + else { MemoryCopyStruct(&push_vals[0], &popped_vals[0]); } +#undef CaseA +#undef CaseB + }break; + + case RDI_EvalOp_Neg: + { + if(0){} +#define CaseA(target_type_group, target_type) else if(type_group == (RDI_EvalTypeGroup_##target_type_group)) do{push_vals[0].target_type = (-popped_vals[0].target_type);}while(0) +#define CaseB(target_type_group, size, target_type) else if(type_group == (RDI_EvalTypeGroup_##target_type_group) && op_arithmetic_size == (size)) do{push_vals[0].target_type = (-popped_vals[0].target_type);}while(0) + CaseA(F32, f32); + CaseA(F64, f64); + CaseB(S, 8, s8); + CaseB(S, 16, s16); + CaseB(S, 32, s32); + CaseB(S, 64, s64); + else { MemoryCopyStruct(&push_vals[0], &popped_vals[0]); } +#undef CaseA +#undef CaseB + }break; + +#define BinOp(target_type_group, dst_type, src_type, symbol) else if(type_group == (RDI_EvalTypeGroup_##target_type_group)) do{push_vals[0].dst_type = popped_vals[1].src_type symbol popped_vals[0].src_type;}while(0) +#define SizedBinOp(target_type_group, size, dst_type, src_type, symbol) else if(type_group == (RDI_EvalTypeGroup_##target_type_group) && op_arithmetic_size == (size)) do{push_vals[0].dst_type = popped_vals[1].src_type symbol popped_vals[0].src_type;}while(0) +#define BinOpDiv(target_type_group, dst_type, src_type, symbol) else if(type_group == (RDI_EvalTypeGroup_##target_type_group)) do{if(popped_vals[0].src_type != 0) { push_vals[0].dst_type = popped_vals[1].src_type symbol popped_vals[0].src_type; } else {interp.status = E2_InterpStatus_DivideByZero; good = 0;} }while(0) +#define SizedBinOpDiv(target_type_group, size, dst_type, src_type, symbol) else if(type_group == (RDI_EvalTypeGroup_##target_type_group) && op_arithmetic_size == (size)) do{if(popped_vals[0].src_type != 0) { push_vals[0].dst_type = popped_vals[1].src_type symbol popped_vals[0].src_type; } else {interp.status = E2_InterpStatus_DivideByZero; good = 0;} }while(0) +#define BinOpDivFn(target_type_group, dst_type, src_type, fn) else if(type_group == (RDI_EvalTypeGroup_##target_type_group)) do{if(popped_vals[0].src_type != 0) { push_vals[0].dst_type = fn(popped_vals[1].src_type, popped_vals[0].src_type); } else {interp.status = E2_InterpStatus_DivideByZero; good = 0;} }while(0) +#define ArithTypeCasesInt(symbol)\ +SizedBinOp(S, 8, s8, s8, symbol);\ +SizedBinOp(S, 16, s16, s16, symbol);\ +SizedBinOp(S, 32, s32, s32, symbol);\ +SizedBinOp(S, 64, s64, s64, symbol);\ +SizedBinOp(U, 8, u8, u8, symbol);\ +SizedBinOp(U, 16, u16, u16, symbol);\ +SizedBinOp(U, 32, u32, u32, symbol);\ +SizedBinOp(U, 64, u64, u64, symbol); +#define ArithTypeCasesIntDiv(symbol)\ +SizedBinOpDiv(S, 8, s8, s8, symbol);\ +SizedBinOpDiv(S, 16, s16, s16, symbol);\ +SizedBinOpDiv(S, 32, s32, s32, symbol);\ +SizedBinOpDiv(S, 64, s64, s64, symbol);\ +SizedBinOpDiv(U, 8, u8, u8, symbol);\ +SizedBinOpDiv(U, 16, u16, u16, symbol);\ +SizedBinOpDiv(U, 32, u32, u32, symbol);\ +SizedBinOpDiv(U, 64, u64, u64, symbol); +#define LogTypeCases(symbol)\ +BinOp(F32, u64, f32, symbol);\ +BinOp(F64, u64, f64, symbol);\ +ArithTypeCasesInt(symbol) +#define ArithTypeCases(symbol)\ +BinOp(F32, f32, f32, symbol);\ +BinOp(F64, f64, f64, symbol);\ +ArithTypeCasesInt(symbol) +#define ArithTypeCasesDiv(symbol)\ +BinOpDiv(F32, f32, f32, symbol);\ +BinOpDiv(F64, f64, f64, symbol);\ +ArithTypeCasesIntDiv(symbol) +#define ArithTypeCasesIntAllU64(symbol)\ +BinOp(S, u64, u64, symbol);\ +BinOp(U, u64, u64, symbol); +#define Case(name, ...) case RDI_EvalOp_##name:{if(0){} __VA_ARGS__ else {interp.status = E2_InterpStatus_BadOpTypes; good = 0;}}break + Case(Add, ArithTypeCases(+)); + Case(Sub, ArithTypeCases(-)); + Case(Mul, ArithTypeCases(*)); + Case(Div, ArithTypeCasesDiv(/)); + Case(Mod, ArithTypeCasesIntDiv(%) BinOpDivFn(F32, f32, f32, mod_f32); BinOpDivFn(F64, f64, f64, mod_f64);); + Case(LShift, ArithTypeCasesInt(<<)); + Case(RShift, ArithTypeCasesInt(>>)); + Case(BitAnd, ArithTypeCasesIntAllU64(&)); + Case(BitOr, ArithTypeCasesIntAllU64(|)); + Case(BitXor, ArithTypeCasesIntAllU64(^)); + Case(LogAnd, ArithTypeCasesIntAllU64(&&)); + Case(LogOr, ArithTypeCasesIntAllU64(||)); + Case(LsEq, LogTypeCases(<=)); + Case(GrEq, LogTypeCases(>=)); + Case(Less, LogTypeCases(<)); + Case(Grtr, LogTypeCases(>)); +#undef Case +#undef BinOp +#undef SizedBinOp +#undef BinOpDiv +#undef SizedBinOpDiv +#undef BinOpDivFn +#undef ArithTypeCasesInt +#undef ArithTypeCasesIntDiv +#undef ArithTypeCases +#undef ArithTypeCasesDiv +#undef ArithTypeCasesIntAllU64 + + case RDI_EvalOp_LogNot: + { + push_vals[0].u64 = !popped_vals[0].u64; + }break; + case RDI_EvalOp_BitNot: + { + push_vals[0].u64 = ~popped_vals[0].u64; + }break; + + case RDI_EvalOp_EqEq: + case RDI_EvalOp_NtEq: + { + if(popped_vals[0].string.size != 0 && popped_vals[1].string.size != 0) + { + push_vals[0].u64 = str8_match(popped_vals[0].string, popped_vals[1].string, 0); + } + else + { + push_vals[0].u64 = MemoryMatchStruct(&popped_vals[0].u512, &popped_vals[1].u512); + } + if(op == RDI_EvalOp_NtEq) + { + push_vals[0].u64 = !push_vals[0].u64; + } + }break; + + case RDI_EvalOp_Trunc: + { + if(0 < decode_val.u64) + { + U64 mask = 0; + if(decode_val.u64 < 64) + { + mask = max_U64 >> (64 - decode_val.u64); + } + push_vals[0].u64 = popped_vals[0].u64&mask; + } + }break; + + case RDI_EvalOp_TruncSigned: + { + if(0 < decode_val.u64) + { + U64 mask = 0; + if(decode_val.u64 < 64) + { + mask = max_U64 >> (64 - decode_val.u64); + } + U64 high = 0; + if(popped_vals[0].u64 & (1 << (decode_val.u64 - 1))) + { + high = ~mask; + } + push_vals[0].u64 = high|(popped_vals[0].u64&mask); + } + }break; + + case RDI_EvalOp_Convert: + { + U32 in = decode_val.u64&0xFF; + U32 out = (decode_val.u64 >> 8)&0xFF; + if(in != 0) + { + switch(in + out*RDI_EvalTypeGroup_COUNT) + { + default:{good = 0; interp.status = E2_InterpStatus_BadOpTypes;}break; +#define Case(dst_tg, dst_slot, dst_type, src_tg, src_slot) case RDI_EvalTypeGroup_##src_tg + RDI_EvalTypeGroup_##dst_tg*RDI_EvalTypeGroup_COUNT:{push_vals[0].dst_slot = (dst_type)popped_vals[0].src_slot;}break + Case(U, u64, U64, F32, f32); + Case(U, u64, U64, F64, f64); + Case(S, s64, S64, F32, f32); + Case(S, s64, S64, F64, f64); + Case(F32, f32, F32, S, s64); + Case(F64, f64, F64, S, s64); + Case(F32, f32, F32, U, u64); + Case(F64, f64, F64, U, u64); + Case(F32, f32, F32, F64, f64); + Case(F64, f64, F64, F32, f32); +#undef Case + } + } + }break; + + case RDI_EvalOp_Pick: + { + U64 target_idx = decode_val.u64; + U64 idx = 0; + B32 found = 0; + for(E2_InterpStackValNode *n = state->top_val; n != 0; n = n->next, idx += 1) + { + if(idx == target_idx) + { + found = 1; + push_vals[0] = n->val; + break; + } + } + if(!found) + { + good = 0; + interp.status = E2_InterpStatus_InsufficientStackSpace; + } + }break; + + case RDI_EvalOp_Swap: + { + push_vals[0] = popped_vals[1]; + push_vals[1] = popped_vals[0]; + }break; + + case RDI_EvalOp_Pop:{NoOp;}break; + + case RDI_EvalOp_ValueRead: + { + U64 bytes_to_read = decode_val.u64; + U64 offset = popped_vals[0].u64; + if(offset + bytes_to_read <= popped_vals[1].string.size) + { + MemoryCopy(&push_vals[0].u512, popped_vals[1].string.str + offset, bytes_to_read); + } + else + { + good = 0; + interp.status = E2_InterpStatus_BadOffset; + } + }break; + + case RDI_EvalOp_ByteSwap: + { + U64 byte_size = decode_val.u64; + switch(byte_size) + { + default: + { + good = 0; + interp.status = E2_InterpStatus_UnsupportedOp; + }break; + case 2:{push_vals[0].u16 = bswap_u16(popped_vals[0].u16);}break; + case 4:{push_vals[0].u32 = bswap_u32(popped_vals[0].u32);}break; + case 8:{push_vals[0].u64 = bswap_u64(popped_vals[0].u64);}break; + } + }break; + + case RDI_EvalOp_CallSiteValue: + { + // DW_OP_entry_value: requires evaluating the embedded sub-bytecode + // in this frame's entry-time register state (i.e. caller's state + // at the call instruction). that state is not currently plumbed + // into the eval context. interpreting in the current ctx gives + // wrong values for spilled args, so report BadOp instead. + // skip past the embedded sub-bytecode in the outer stream so the + // bytes are not interpreted as outer ops on resume. + good = 0; + interp.status = E2_InterpStatus_UnsupportedOp; + }break; + + case RDI_EvalOp_PartialValue: + { + // DW_OP_piece marker: top-of-stack is a piece of a composite value. + // we do not assemble composites; for single-piece expressions the + // value already on the stack is the result. for multi-piece, only + // the first piece is returned (stack[0] is the final result). + good = 0; + interp.status = E2_InterpStatus_UnsupportedOp; + }break; + + case RDI_EvalOp_PartialValueBit: + { + // DW_OP_bit_piece marker. same caveat as PartialValue. + good = 0; + interp.status = E2_InterpStatus_UnsupportedOp; + }break; + } + + //- rjf: if opcode successful -> do stack pops + if(good) for EachIndex(pop_idx, pop_count) + { + E2_InterpStackValNode *popped = state->top_val; + if(popped != 0) + { + SLLStackPop(state->top_val); + SLLStackPush(state->free_val, popped); + } + else + { + break; + } + } + + //- rjf: if opcode successful -> do stack pushes + if(good) for EachIndex(push_idx, push_count) + { + E2_InterpStackValNode *node = state->free_val; + if(node != 0) + { + SLLStackPop(state->free_val); + } + else + { + node = push_array(arena, E2_InterpStackValNode, 1); + } + node->val = push_vals[push_idx]; + SLLStackPush(state->top_val, node); + } + + //- rjf: if opcode successful -> commit new bytecode offset + if(good) + { + state->bytecode_off = off; + } + + scratch_end(scratch); + if(off == start_off) + { + break; + } + } + + //- rjf: asking caller for info? -> if we already did this at this offset, + // the user couldn't provide the info, so we just fail out. + if(e2_interp_status_is_caller_request(interp.status)) + { + if(state->caller_request_count > 0 && state->last_caller_request_bytecode_off == state->bytecode_off) + { + switch(interp.status) + { + default:{}break; + case E2_InterpStatus_MissedSpaceRead: + { + e2_msgf(arena, &interp.msgs, r1u64(state->bytecode_off, state->bytecode_off+1), "Couldn't read address range [0x%I64x, 0x%I64x) in space 0x%I64x.", + interp.missed_read_space_addr_range.min, + interp.missed_read_space_addr_range.max, + interp.space_id); + }break; + } + interp.status = E2_InterpStatus_Error; + } + state->caller_request_count += 1; + state->last_caller_request_bytecode_off = state->bytecode_off; + } + + //- rjf: if we're done with the bytecode stream, report success / value + if(off == off_opl && good) + { + interp.status = E2_InterpStatus_Good; + if(state->top_val != 0) + { + interp.val = state->top_val->val; + } + } + } + return interp; +} diff --git a/src/eval2/eval2.h b/src/eval2/eval2.h new file mode 100644 index 00000000..f920d69e --- /dev/null +++ b/src/eval2/eval2.h @@ -0,0 +1,589 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef EVAL2_H +#define EVAL2_H + +//////////////////////////////// +//~ rjf: Operator Info Tables + +typedef enum E2_OpParseKind +{ + E2_OpParseKind_Null, + E2_OpParseKind_UnaryPrefix, + E2_OpParseKind_Binary, + E2_OpParseKind_Ternary, + E2_OpParseKind_Call, +} +E2_OpParseKind; + +typedef struct E2_OpInfo E2_OpInfo; +struct E2_OpInfo +{ + E2_OpParseKind parse_kind; + S64 precedence; + String8 pre; + String8 sep; + String8 post; + String8 chain; +}; + +//////////////////////////////// +//~ rjf: Generated Code + +#include "eval2/generated/eval2.meta.h" + +//////////////////////////////// +//~ rjf: Extended Opcodes + +enum +{ + E2_EvalOp_SetCtxID = RDI_EvalOp_COUNT, +}; + +//////////////////////////////// +//~ rjf: Parse Statuses + +typedef enum E2_ParseStatus +{ + //- rjf: terminals + E2_ParseStatus_Good, + E2_ParseStatus_Error, + E2_ParseStatus_FirstTerminal = E2_ParseStatus_Good, + E2_ParseStatus_LastTerminal = E2_ParseStatus_Error, + + //- rjf: caller-provided info + E2_ParseStatus_MissedIdentifierResolution, + E2_ParseStatus_MemberAccess, + E2_ParseStatus_IndexAccess, + E2_ParseStatus_Call, + E2_ParseStatus_FirstCallerRequest = E2_ParseStatus_MissedIdentifierResolution, + E2_ParseStatus_LastCallerRequest = E2_ParseStatus_Call, +} +E2_ParseStatus; + +#define e2_parse_status_is_terminal(s) (E2_ParseStatus_FirstTerminal <= (s) && (s) <= E2_ParseStatus_LastTerminal) +#define e2_parse_status_is_caller_request(s) (E2_ParseStatus_FirstCallerRequest <= (s) && (s) <= E2_ParseStatus_LastCallerRequest) + +//////////////////////////////// +//~ rjf: Interpretation Statuses + +typedef enum E2_InterpStatus +{ + //- rjf: terminals + E2_InterpStatus_Good, + E2_InterpStatus_BadRegCode, + E2_InterpStatus_MissingCtxFlag, + E2_InterpStatus_DivideByZero, + E2_InterpStatus_InsufficientStackSpace, + E2_InterpStatus_BadOpTypes, + E2_InterpStatus_UnsupportedOp, + E2_InterpStatus_BadOffset, + E2_InterpStatus_Error, + E2_InterpStatus_FirstTerminal = E2_InterpStatus_Good, + E2_InterpStatus_LastTerminal = E2_InterpStatus_Error, + + //- rjf: caller-provided info + E2_InterpStatus_MissedSpaceRead, + E2_InterpStatus_NewCtxID, + E2_InterpStatus_FirstCallerRequest = E2_InterpStatus_MissedSpaceRead, + E2_InterpStatus_LastCallerRequest = E2_InterpStatus_NewCtxID, +} +E2_InterpStatus; + +#define e2_interp_status_is_terminal(s) (E2_InterpStatus_FirstTerminal <= (s) && (s) <= E2_InterpStatus_LastTerminal) +#define e2_interp_status_is_caller_request(s) (E2_InterpStatus_FirstCallerRequest <= (s) && (s) <= E2_InterpStatus_LastCallerRequest) + +//////////////////////////////// +//~ rjf: Type Keys + +typedef enum E2_TypeKeyKind +{ + E2_TypeKeyKind_Null, + E2_TypeKeyKind_Basic, + E2_TypeKeyKind_DbgInfo, + E2_TypeKeyKind_Cons, + E2_TypeKeyKind_Reg, +} +E2_TypeKeyKind; + +typedef struct E2_TypeKey E2_TypeKey; +struct E2_TypeKey +{ + E2_TypeKeyKind kind; + U32 u32[3]; + // [0] -> E_TypeKind (Basic, Cons, DbgInfo); Arch (Reg) + // [1] -> Debug Info Number (DbgInfo); Code (Reg); Type Index In Constructed (Cons) + // [2] -> Type Index In Debug Info (DbgInfo) +}; + +typedef struct E2_TypeKeyNode E2_TypeKeyNode; +struct E2_TypeKeyNode +{ + E2_TypeKeyNode *next; + E2_TypeKey v; +}; + +typedef struct E2_TypeKeyList E2_TypeKeyList; +struct E2_TypeKeyList +{ + E2_TypeKeyNode *first; + E2_TypeKeyNode *last; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Unpacked Type Info + +typedef enum E2_MemberKind +{ + E2_MemberKind_Null, + E2_MemberKind_DataField, + E2_MemberKind_StaticData, + E2_MemberKind_Method, + E2_MemberKind_StaticMethod, + E2_MemberKind_VirtualMethod, + E2_MemberKind_VTablePtr, + E2_MemberKind_Base, + E2_MemberKind_VirtualBase, + E2_MemberKind_NestedType, + E2_MemberKind_Padding, + E2_MemberKind_COUNT +} +E2_MemberKind; + +typedef U32 E2_TypeFlags; +enum +{ + E2_TypeFlag_Const = (1<<0), + E2_TypeFlag_Volatile = (1<<1), + E2_TypeFlag_Restrict = (1<<2), +}; + +typedef struct E2_EnumVal E2_EnumVal; +struct E2_EnumVal +{ + String8 name; + U64 val; +}; + +typedef struct E2_Member E2_Member; +struct E2_Member +{ + E2_MemberKind kind; + E2_TypeKey type_key; + String8 name; + U64 off; + E2_TypeKeyList inheritees; +}; + +typedef struct E2_Type E2_Type; +struct E2_Type +{ + E2_TypeKind kind; + E2_TypeFlags flags; + String8 name; + U64 byte_size; + U64 count; + U64 depth; + U32 off; + Arch arch; + E2_TypeKey direct_type_key; + E2_TypeKey owner_type_key; + E2_TypeKey *param_type_keys; + E2_Member *members; + E2_EnumVal *enum_vals; + struct E2_Expr **args; +}; + +//////////////////////////////// +//~ rjf: Evaluation Values + +typedef enum E2_Mode +{ + E2_Mode_Type, // no value content - just type content + E2_Mode_Address, // value is an address into a space + E2_Mode_Value, // value is just a value, does not refer elsewhere + E2_Mode_COUNT +} +E2_Mode; + +typedef struct E2_Val E2_Val; +struct E2_Val +{ + union + { + U512 u512; + U256 u256; + U128 u128; + U64 u64; + U32 u32; + U16 u16; + U8 u8; + S64 s64; + S32 s32; + S16 s16; + S8 s8; + F64 f64; + F32 f32; + }; + String8 string; +}; + +//////////////////////////////// +//~ rjf: Evaluation "Asset" Parameters (Debug Info / Modules) + +typedef U64 E2_SpaceID; + +typedef struct E2_DbgInfo E2_DbgInfo; +struct E2_DbgInfo +{ + DI_Key dbgi_key; + RDI_Parsed *rdi; +}; + +typedef struct E2_Assets E2_Assets; +struct E2_Assets +{ + U32 dbg_infos_count; + E2_DbgInfo *dbg_infos; +}; + +//////////////////////////////// +//~ rjf: Evaluation Contexts + +typedef U64 E2_CtxID; + +typedef U32 E2_CtxFlags; +enum +{ + E2_CtxFlag_HasFrameBase = (1<<0), + E2_CtxFlag_HasCFA = (1<<1), + E2_CtxFlag_HasModuleBase = (1<<2), + E2_CtxFlag_HasTLSBase = (1<<3), +}; + +typedef struct E2_Ctx E2_Ctx; +struct E2_Ctx +{ + // rjf: base info + E2_CtxID id; + E2_SpaceID space_id; + E2_SpaceID reg_space_id; + Arch arch; + U64 addr; + + // rjf: optional extensions + E2_CtxFlags flags; + U64 frame_base_addr; + U64 cfa_addr; + U64 module_base_addr; + U64 tls_base_addr; +}; + +//////////////////////////////// +//~ rjf: Tokens + +typedef enum E2_TokenKind +{ + E2_TokenKind_Null, + E2_TokenKind_Whitespace, + E2_TokenKind_Comment, + E2_TokenKind_Identifier, + E2_TokenKind_Numeric, + E2_TokenKind_Symbol, + E2_TokenKind_CharLiteral, + E2_TokenKind_StringLiteral, + E2_TokenKind_COUNT +} +E2_TokenKind; + +typedef struct E2_Token E2_Token; +struct E2_Token +{ + E2_TokenKind kind; + U32 unused; + Rng1U64 range; +}; + +//////////////////////////////// +//~ rjf: Expression Tree Building + +typedef struct E2_Expr E2_Expr; +struct E2_Expr +{ + E2_Expr *first; + E2_Expr *last; + E2_Expr *next; + Rng1U64 src_range; + String8 string; + RDI_EvalOp op; + E2_TypeKey type_key; + E2_Mode mode; + E2_Val val; +}; + +typedef struct E2_ExprNode E2_ExprNode; +struct E2_ExprNode +{ + E2_ExprNode *next; + E2_Expr *v; +}; + +typedef struct E2_ExprMapNode E2_ExprMapNode; +struct E2_ExprMapNode +{ + E2_ExprMapNode *next; + String8 name; + E2_Expr *expr; +}; + +typedef struct E2_ExprMap E2_ExprMap; +struct E2_ExprMap +{ + E2_ExprMapNode **slots; + U64 slots_count; +}; + +typedef struct E2_ParseTask E2_ParseTask; +struct E2_ParseTask +{ + E2_ParseTask *next; + Rng1U64 src_range; + E2_ExprNode *first_child; + E2_ExprNode *last_child; + U64 child_count; + U64 child_count_target; + S64 max_precedence; + E2_OpKind op_kind; + String8 expected_closer; + String8 expected_splitter; + B32 splitter_is_required; +}; + +typedef struct E2_ParseState E2_ParseState; +struct E2_ParseState +{ + U64 string_off; + E2_ParseTask *top_task; + E2_ParseTask *free_task; + U64 last_caller_request_string_off; + U64 caller_request_count; + String8 last_requested_member_name; + B32 caller_info_completes_task; +}; + +typedef struct E2_Msg E2_Msg; +struct E2_Msg +{ + E2_Msg *next; + Rng1U64 src_range; + String8 string; +}; + +typedef struct E2_MsgList E2_MsgList; +struct E2_MsgList +{ + E2_Msg *first; + E2_Msg *last; + U64 count; +}; + +typedef struct E2_Parse E2_Parse; +struct E2_Parse +{ + E2_ParseStatus status; + String8 missed_identifier; + E2_Expr *expr; + String8 member_name; + E2_Expr *params_expr; + E2_MsgList msgs; +}; + +//////////////////////////////// +//~ rjf: Interpretation + +typedef struct E2_SpaceMapNode E2_SpaceMapNode; +struct E2_SpaceMapNode +{ + E2_SpaceMapNode *next; + E2_SpaceID space_id; + MemoryMap memory_map; +}; + +typedef struct E2_SpaceMap E2_SpaceMap; +struct E2_SpaceMap +{ + E2_SpaceMapNode **slots; + U64 slots_count; +}; + +typedef struct E2_InterpStackValNode E2_InterpStackValNode; +struct E2_InterpStackValNode +{ + E2_InterpStackValNode *next; + E2_Val val; +}; + +typedef struct E2_InterpState E2_InterpState; +struct E2_InterpState +{ + U64 bytecode_off; + E2_Ctx selected_ctx; + E2_InterpStackValNode *top_val; + E2_InterpStackValNode *free_val; + U64 last_caller_request_bytecode_off; + U64 caller_request_count; +}; + +typedef struct E2_Interp E2_Interp; +struct E2_Interp +{ + E2_InterpStatus status; + E2_SpaceID space_id; + Rng1U64 missed_read_space_addr_range; + E2_CtxID ctx_id; + E2_CtxFlags missing_ctx_flags; + E2_Val val; + E2_MsgList msgs; +}; + +//////////////////////////////// +//~ rjf: Globals + +thread_static E2_Assets *e2_assets = 0; +read_only global E2_DbgInfo e2_dbg_info_nil = {{0}, &rdi_parsed_nil}; +read_only global E2_Expr e2_expr_nil = {&e2_expr_nil, &e2_expr_nil, &e2_expr_nil}; + +//////////////////////////////// +//~ rjf: Space -> Memory Map Helpers + +internal void e2_space_map_push(Arena *arena, E2_SpaceMap *map, E2_SpaceID space_id, Rng1U64 addr_range, void *data); +internal U64 e2_space_map_read(E2_SpaceMap *map, E2_SpaceID space_id, Rng1U64 addr_range, void *out); + +//////////////////////////////// +//~ rjf: Name -> Expr Map Helpers + +internal void e2_expr_map_push(Arena *arena, E2_ExprMap *map, String8 name, E2_Expr *expr); +internal E2_Expr *e2_expr_from_name(E2_ExprMap *map, String8 name); + +//////////////////////////////// +//~ rjf: Messages + +internal E2_Msg *e2_msg(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, String8 string); +internal E2_Msg *e2_msgf(Arena *arena, E2_MsgList *msgs, Rng1U64 src_range, char *fmt, ...); + +//////////////////////////////// +//~ rjf: Assets + +internal void e2_select_assets(E2_Assets *assets); +internal E2_DbgInfo *e2_dbgi_from_num(U32 num); + +//////////////////////////////// +//~ rjf: Type Keys + +//- rjf: enums +internal E2_TypeKind e2_type_kind_from_rdi(RDI_TypeKind k); +internal RDI_EvalTypeGroup e2_type_group_from_kind(E2_TypeKind k); +internal B32 e2_type_kind_is_ptr_or_ref(E2_TypeKind k); +internal B32 e2_type_kind_is_integer(E2_TypeKind k); +internal B32 e2_type_kind_is_float(E2_TypeKind k); +internal B32 e2_type_kind_is_signed(E2_TypeKind k); +internal B32 e2_type_kind_is_unsigned(E2_TypeKind k); + +//- rjf: basic key constructors +internal E2_TypeKey e2_type_key_zero(void); +internal E2_TypeKey e2_type_key_basic(E2_TypeKind kind); +internal E2_TypeKey e2_type_key_dbgi(E2_TypeKind kind, U32 dbg_info_num, U32 type_idx); +internal E2_TypeKey e2_type_key_reg(Arch arch, ARCH_RegCode reg_code); + +//- rjf: constructed type constructor +typedef struct E2_ConsTypeParams E2_ConsTypeParams; +struct E2_ConsTypeParams +{ + Arch arch; + E2_TypeKind kind; + E2_TypeFlags flags; + String8 name; + E2_TypeKey direct_type_key; + U64 count; + U64 depth; + E2_Expr **args; +}; +internal E2_TypeKey e2_type_key_cons_(E2_ConsTypeParams *params); +#define e2_type_key_cons(k, ...) e2_type_key_cons_(&(E2_ConsTypeParams){.kind = (k), __VA_ARGS__}) + +//- rjf: constructed type constructor helpers +#define e2_type_key_cons_array(element_type_key, count_, ...) e2_type_key_cons(E2_TypeKind_Array, .direct_type_key = (element_type_key), .count = (count_), __VA_ARGS__) +#define e2_type_key_cons_ptr(arch, ptee_type_key, ...) e2_type_key_cons(E2_TypeKind_Ptr, .direct_type_key = (ptee_type_key), __VA_ARGS__) + +//- rjf: basic type key type functions +internal B32 e2_type_key_match(E2_TypeKey a, E2_TypeKey b); + +//- rjf: type key -> info +internal E2_TypeKind e2_type_kind_from_key(E2_TypeKey k); +internal U64 e2_byte_size_from_type_key(E2_TypeKey k); +internal U32 e2_dbgi_num_from_type_key(E2_TypeKey k); +internal E2_DbgInfo *e2_dbgi_from_type_key(E2_TypeKey k); +internal U32 e2_dbgi_type_idx_from_key(E2_TypeKey k); +internal U64 e2_shift_from_type_key(E2_TypeKey k); +internal U64 e2_mask_count_from_type_key(E2_TypeKey k); +internal Arch e2_arch_from_type_key(E2_TypeKey k); + +//- rjf: type graph traversal primitives +internal E2_TypeKey e2_type_key_direct(E2_TypeKey k); +internal E2_TypeKey e2_type_key_owner(E2_TypeKey k); + +//- rjf: type unwrapping (helpers for advancing past categories of direct type chains) +typedef U32 E2_TypeUnwrapFlags; +enum +{ + E2_TypeUnwrapFlag_Modifiers = (1<<0), + E2_TypeUnwrapFlag_Pointers = (1<<1), + E2_TypeUnwrapFlag_Lenses = (1<<2), + E2_TypeUnwrapFlag_Meta = (1<<3), + E2_TypeUnwrapFlag_Enums = (1<<4), + E2_TypeUnwrapFlag_Aliases = (1<<5), + E2_TypeUnwrapFlag_Bitfields = (1<<6), + E2_TypeUnwrapFlag_All = 0xffffffff, + E2_TypeUnwrapFlag_AllDecorative = (E2_TypeUnwrapFlag_All & ~(E2_TypeUnwrapFlag_Pointers|E2_TypeUnwrapFlag_Bitfields)) +}; +internal E2_TypeKey e2_type_key_unwrap(E2_TypeKey k, E2_TypeUnwrapFlags flags); +#define e2_type_key_undecorate(k) e2_type_key_unwrap((k), E2_TypeUnwrapFlag_AllDecorative) + +//- rjf: type coercion +internal E2_TypeKey e2_coerced_type_key_from_operands(E2_TypeKey lhs, E2_TypeKey rhs); + +//////////////////////////////// +//~ rjf: Expression Constructors + +internal E2_Expr *e2_expr(Arena *arena); +internal E2_Expr *e2_expr_const_u64_or_smaller(Arena *arena, U64 u); +internal E2_Expr *e2_expr_const_f32(Arena *arena, F32 f32); +internal E2_Expr *e2_expr_const_f64(Arena *arena, F64 f64); +internal E2_Expr *e2_expr_unary_op(Arena *arena, E2_TypeKey type_key, RDI_EvalOp op, E2_Expr *operand); +internal E2_Expr *e2_expr_binary_op(Arena *arena, E2_TypeKey type_key, RDI_EvalOp op, E2_Expr *lhs, E2_Expr *rhs); +internal E2_Expr *e2_expr_resolve_to_value(Arena *arena, E2_Expr *expr); +internal E2_Expr *e2_expr_truncate(Arena *arena, E2_Expr *expr, E2_TypeKey dst_type_key); +internal E2_Expr *e2_expr_convert_if_possible(Arena *arena, E2_Expr *expr, E2_TypeKey dst_type_key); +internal void e2_expr_push_child(E2_Expr *parent, E2_Expr *expr); + +//////////////////////////////// +//~ rjf: String -> Expression + +internal E2_Token e2_token_from_string_off(String8 string, U64 start_off); +internal U64 e2_read_token(String8 string, U64 off, E2_Token *token_out); +internal B32 e2_try_token(String8 string, E2_TokenKind kind, String8 expected_string, U64 *off_out, E2_Token *token_out); +internal E2_Parse e2_parse_from_string(Arena *arena, E2_ParseState *state, E2_ExprMap *expr_map, E2_Expr *access_result, String8 string); + +//////////////////////////////// +//~ rjf: Expression -> Bytecode + +internal String8 e2_bytecode_from_expr(Arena *arena, E2_Expr *expr); + +//////////////////////////////// +//~ rjf: Bytecode -> Result + +internal E2_Interp e2_interp_from_bytecode(Arena *arena, E2_InterpState *state, E2_SpaceMap *space_map, String8 bytecode); + +#endif // EVAL2_H diff --git a/src/eval2/eval2.mdesk b/src/eval2/eval2.mdesk new file mode 100644 index 00000000..2f07c727 --- /dev/null +++ b/src/eval2/eval2.mdesk @@ -0,0 +1,147 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@table(name parse_kind precedence pre sep pos chain) +E2_OpTable: +{ + {Dot Binary 1 "" "." "" "" } + {Index Binary 1 "" "[" "]" "" } + {Call Call 1 "" "(" ")" ","} + {DerefAsm UnaryPrefix 1 "[" "" "]" "" } + {SizeOf UnaryPrefix 1 "sizeof " "" "" "" } + {Deref UnaryPrefix 2 "*" "" "" "" } + {Address UnaryPrefix 2 "&" "" "" "" } + {Pos UnaryPrefix 2 "+" "" "" "" } + {Neg UnaryPrefix 2 "-" "" "" "" } + {LogNot UnaryPrefix 2 "!" "" "" "" } + {BitNot UnaryPrefix 2 "~" "" "" "" } + {Mul Binary 3 "" "*" "" "" } + {Div Binary 3 "" "/" "" "" } + {Mod Binary 3 "" "%" "" "" } + {Add Binary 4 "" "+" "" "" } + {Sub Binary 4 "" "-" "" "" } + {LShift Binary 5 "" "<<" "" "" } + {RShift Binary 5 "" ">>" "" "" } + {Less Binary 6 "" "<" "" "" } + {LtEq Binary 6 "" "<=" "" "" } + {Grtr Binary 6 "" ">" "" "" } + {GrEq Binary 6 "" ">=" "" "" } + {EqEq Binary 7 "" "==" "" "" } + {NtEq Binary 7 "" "!=" "" "" } + {BitAnd Binary 8 "" "&" "" "" } + {BitXor Binary 9 "" "^" "" "" } + {BitOr Binary 10 "" "|" "" "" } + {LogAnd Binary 11 "" "&&" "" "" } + {LogOr Binary 12 "" "||" "" "" } + {Define Binary 13 "" "=" "" "" } + {Cond Ternary 14 "" "?" "" ":"} +} + +@enum E2_OpKind: +{ + Null, + @expand(E2_OpTable a) `$(a.name)`, + COUNT, +} + +@data(E2_OpInfo) e2_op_kind_info_table: +{ + `{0}`, + @expand(E2_OpTable a) `{E2_OpParseKind_$(a.parse_kind), $(a.precedence), str8_lit_comp("$(a.pre)"), str8_lit_comp("$(a.sep)"), str8_lit_comp("$(a.pos)"), str8_lit_comp("$(a.chain)")}` +} + +@table(name basic_string basic_byte_size) +// NOTE(rjf): basic_byte_size == 0xFF? => address sized +E2_TypeKindTable: +{ + {Null "" 0 } + {Void "void" 0 } + {Handle "HANDLE" 0xFF } + {HResult "HRESULT" 4 } + {Char8 "char8" 1 } + {Char16 "char16" 2 } + {Char32 "char32" 4 } + {UChar8 "uchar8" 1 } + {UChar16 "uchar16" 2 } + {UChar32 "uchar32" 4 } + {U8 "uint8" 1 } + {U16 "uint16" 2 } + {U32 "uint32" 4 } + {U64 "uint64" 8 } + {U128 "uint128" 16 } + {U256 "uint256" 32 } + {U512 "uint512" 64 } + {S8 "int8" 1 } + {S16 "int16" 2 } + {S32 "int32" 4 } + {S64 "int64" 8 } + {S128 "int128" 16 } + {S256 "int256" 32 } + {S512 "int512" 64 } + {Bool "bool" 1 } + {F16 "float16" 2 } + {F32 "float32" 4 } + {F32PP "float32PP" 4 } + {F48 "float48" 6 } + {F64 "float64" 8 } + {F80 "float80" 10 } + {F128 "float128" 16 } + {ComplexF32 "complex_float32" 8 } + {ComplexF64 "complex_float64" 16 } + {ComplexF80 "complex_float80" 20 } + {ComplexF128 "complex_float128" 32 } + {Modifier "modifier" 0 } + {Ptr "ptr" 0 } + {LRef "lref" 0 } + {RRef "rref" 0 } + {Array "array" 0 } + {Function "function" 0 } + {Method "method" 0 } + {MemberPtr "member_ptr" 0 } + {Struct "struct" 0 } + {Class "class" 0 } + {Union "union" 0 } + {Enum "enum" 0 } + {Alias "typedef" 0 } + {IncompleteStruct "struct" 0 } + {IncompleteUnion "union" 0 } + {IncompleteClass "class" 0 } + {IncompleteEnum "enum" 0 } + {Bitfield "bitfield" 0 } + {Variadic "variadic" 0 } + {Set "set" 0 } + {Lens "lens" 0 } + {LensSpec "lens_spec" 0 } + {MetaExpr "meta_expr" 0 } + {MetaDisplayName "meta_display_name" 0 } + {MetaDescription "meta_description" 0 } +} + +@enum E2_TypeKind: +{ + @expand(E2_TypeKindTable a) `$(a.name)`, + COUNT, + `FirstBasic = E2_TypeKind_Void`, + `LastBasic = E2_TypeKind_ComplexF128`, + `FirstInteger = E2_TypeKind_Char8`, + `LastInteger = E2_TypeKind_S512`, + `FirstSigned1 = E2_TypeKind_Char8`, + `LastSigned1 = E2_TypeKind_Char32`, + `FirstSigned2 = E2_TypeKind_S8`, + `LastSigned2 = E2_TypeKind_S512`, + `FirstIncomplete = E2_TypeKind_IncompleteStruct`, + `LastIncomplete = E2_TypeKind_IncompleteEnum`, + `FirstMeta = E2_TypeKind_MetaExpr`, + `LastMeta = E2_TypeKind_MetaDescription`, +} + +@data(U8) e2_type_kind_basic_byte_size_table: +{ + @expand(E2_TypeKindTable a) `$(a.basic_byte_size)` +} + +@data(String8) e2_type_kind_basic_string_table: +{ + @expand(E2_TypeKindTable a) `str8_lit_comp("$(a.basic_string)")` +} + diff --git a/src/eval2/generated/eval2.meta.c b/src/eval2/generated/eval2.meta.c new file mode 100644 index 00000000..0b8b63b1 --- /dev/null +++ b/src/eval2/generated/eval2.meta.c @@ -0,0 +1,174 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +E2_OpInfo e2_op_kind_info_table[32] = +{ +{0}, +{E2_OpParseKind_Binary, 1, str8_lit_comp(""), str8_lit_comp("."), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 1, str8_lit_comp(""), str8_lit_comp("["), str8_lit_comp("]"), str8_lit_comp("")}, +{E2_OpParseKind_Call, 1, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(",")}, +{E2_OpParseKind_UnaryPrefix, 1, str8_lit_comp("["), str8_lit_comp(""), str8_lit_comp("]"), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 1, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("*"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("&"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("+"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("-"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("!"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_UnaryPrefix, 2, str8_lit_comp("~"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 3, str8_lit_comp(""), str8_lit_comp("*"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 3, str8_lit_comp(""), str8_lit_comp("/"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 3, str8_lit_comp(""), str8_lit_comp("%"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 4, str8_lit_comp(""), str8_lit_comp("+"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 4, str8_lit_comp(""), str8_lit_comp("-"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 5, str8_lit_comp(""), str8_lit_comp("<<"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 5, str8_lit_comp(""), str8_lit_comp(">>"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 6, str8_lit_comp(""), str8_lit_comp("<"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 6, str8_lit_comp(""), str8_lit_comp("<="), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(">"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 6, str8_lit_comp(""), str8_lit_comp(">="), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 7, str8_lit_comp(""), str8_lit_comp("=="), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 7, str8_lit_comp(""), str8_lit_comp("!="), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 8, str8_lit_comp(""), str8_lit_comp("&"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 9, str8_lit_comp(""), str8_lit_comp("^"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 10, str8_lit_comp(""), str8_lit_comp("|"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 11, str8_lit_comp(""), str8_lit_comp("&&"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 12, str8_lit_comp(""), str8_lit_comp("||"), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Binary, 13, str8_lit_comp(""), str8_lit_comp("="), str8_lit_comp(""), str8_lit_comp("")}, +{E2_OpParseKind_Ternary, 14, str8_lit_comp(""), str8_lit_comp("?"), str8_lit_comp(""), str8_lit_comp(":")}, +}; + +U8 e2_type_kind_basic_byte_size_table[61] = +{ +0, +0, +0xFF, +4, +1, +2, +4, +1, +2, +4, +1, +2, +4, +8, +16, +32, +64, +1, +2, +4, +8, +16, +32, +64, +1, +2, +4, +4, +6, +8, +10, +16, +8, +16, +20, +32, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +}; + +String8 e2_type_kind_basic_string_table[61] = +{ +str8_lit_comp(""), +str8_lit_comp("void"), +str8_lit_comp("HANDLE"), +str8_lit_comp("HRESULT"), +str8_lit_comp("char8"), +str8_lit_comp("char16"), +str8_lit_comp("char32"), +str8_lit_comp("uchar8"), +str8_lit_comp("uchar16"), +str8_lit_comp("uchar32"), +str8_lit_comp("uint8"), +str8_lit_comp("uint16"), +str8_lit_comp("uint32"), +str8_lit_comp("uint64"), +str8_lit_comp("uint128"), +str8_lit_comp("uint256"), +str8_lit_comp("uint512"), +str8_lit_comp("int8"), +str8_lit_comp("int16"), +str8_lit_comp("int32"), +str8_lit_comp("int64"), +str8_lit_comp("int128"), +str8_lit_comp("int256"), +str8_lit_comp("int512"), +str8_lit_comp("bool"), +str8_lit_comp("float16"), +str8_lit_comp("float32"), +str8_lit_comp("float32PP"), +str8_lit_comp("float48"), +str8_lit_comp("float64"), +str8_lit_comp("float80"), +str8_lit_comp("float128"), +str8_lit_comp("complex_float32"), +str8_lit_comp("complex_float64"), +str8_lit_comp("complex_float80"), +str8_lit_comp("complex_float128"), +str8_lit_comp("modifier"), +str8_lit_comp("ptr"), +str8_lit_comp("lref"), +str8_lit_comp("rref"), +str8_lit_comp("array"), +str8_lit_comp("function"), +str8_lit_comp("method"), +str8_lit_comp("member_ptr"), +str8_lit_comp("struct"), +str8_lit_comp("class"), +str8_lit_comp("union"), +str8_lit_comp("enum"), +str8_lit_comp("typedef"), +str8_lit_comp("struct"), +str8_lit_comp("union"), +str8_lit_comp("class"), +str8_lit_comp("enum"), +str8_lit_comp("bitfield"), +str8_lit_comp("variadic"), +str8_lit_comp("set"), +str8_lit_comp("lens"), +str8_lit_comp("lens_spec"), +str8_lit_comp("meta_expr"), +str8_lit_comp("meta_display_name"), +str8_lit_comp("meta_description"), +}; + +C_LINKAGE_END + diff --git a/src/eval2/generated/eval2.meta.h b/src/eval2/generated/eval2.meta.h new file mode 100644 index 00000000..eedb460f --- /dev/null +++ b/src/eval2/generated/eval2.meta.h @@ -0,0 +1,131 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef EVAL2_META_H +#define EVAL2_META_H + +typedef enum E2_OpKind +{ +E2_OpKind_Null, +E2_OpKind_Dot, +E2_OpKind_Index, +E2_OpKind_Call, +E2_OpKind_DerefAsm, +E2_OpKind_SizeOf, +E2_OpKind_Deref, +E2_OpKind_Address, +E2_OpKind_Pos, +E2_OpKind_Neg, +E2_OpKind_LogNot, +E2_OpKind_BitNot, +E2_OpKind_Mul, +E2_OpKind_Div, +E2_OpKind_Mod, +E2_OpKind_Add, +E2_OpKind_Sub, +E2_OpKind_LShift, +E2_OpKind_RShift, +E2_OpKind_Less, +E2_OpKind_LtEq, +E2_OpKind_Grtr, +E2_OpKind_GrEq, +E2_OpKind_EqEq, +E2_OpKind_NtEq, +E2_OpKind_BitAnd, +E2_OpKind_BitXor, +E2_OpKind_BitOr, +E2_OpKind_LogAnd, +E2_OpKind_LogOr, +E2_OpKind_Define, +E2_OpKind_Cond, +E2_OpKind_COUNT, +} E2_OpKind; + +typedef enum E2_TypeKind +{ +E2_TypeKind_Null, +E2_TypeKind_Void, +E2_TypeKind_Handle, +E2_TypeKind_HResult, +E2_TypeKind_Char8, +E2_TypeKind_Char16, +E2_TypeKind_Char32, +E2_TypeKind_UChar8, +E2_TypeKind_UChar16, +E2_TypeKind_UChar32, +E2_TypeKind_U8, +E2_TypeKind_U16, +E2_TypeKind_U32, +E2_TypeKind_U64, +E2_TypeKind_U128, +E2_TypeKind_U256, +E2_TypeKind_U512, +E2_TypeKind_S8, +E2_TypeKind_S16, +E2_TypeKind_S32, +E2_TypeKind_S64, +E2_TypeKind_S128, +E2_TypeKind_S256, +E2_TypeKind_S512, +E2_TypeKind_Bool, +E2_TypeKind_F16, +E2_TypeKind_F32, +E2_TypeKind_F32PP, +E2_TypeKind_F48, +E2_TypeKind_F64, +E2_TypeKind_F80, +E2_TypeKind_F128, +E2_TypeKind_ComplexF32, +E2_TypeKind_ComplexF64, +E2_TypeKind_ComplexF80, +E2_TypeKind_ComplexF128, +E2_TypeKind_Modifier, +E2_TypeKind_Ptr, +E2_TypeKind_LRef, +E2_TypeKind_RRef, +E2_TypeKind_Array, +E2_TypeKind_Function, +E2_TypeKind_Method, +E2_TypeKind_MemberPtr, +E2_TypeKind_Struct, +E2_TypeKind_Class, +E2_TypeKind_Union, +E2_TypeKind_Enum, +E2_TypeKind_Alias, +E2_TypeKind_IncompleteStruct, +E2_TypeKind_IncompleteUnion, +E2_TypeKind_IncompleteClass, +E2_TypeKind_IncompleteEnum, +E2_TypeKind_Bitfield, +E2_TypeKind_Variadic, +E2_TypeKind_Set, +E2_TypeKind_Lens, +E2_TypeKind_LensSpec, +E2_TypeKind_MetaExpr, +E2_TypeKind_MetaDisplayName, +E2_TypeKind_MetaDescription, +E2_TypeKind_COUNT, +E2_TypeKind_FirstBasic = E2_TypeKind_Void, +E2_TypeKind_LastBasic = E2_TypeKind_ComplexF128, +E2_TypeKind_FirstInteger = E2_TypeKind_Char8, +E2_TypeKind_LastInteger = E2_TypeKind_S512, +E2_TypeKind_FirstSigned1 = E2_TypeKind_Char8, +E2_TypeKind_LastSigned1 = E2_TypeKind_Char32, +E2_TypeKind_FirstSigned2 = E2_TypeKind_S8, +E2_TypeKind_LastSigned2 = E2_TypeKind_S512, +E2_TypeKind_FirstIncomplete = E2_TypeKind_IncompleteStruct, +E2_TypeKind_LastIncomplete = E2_TypeKind_IncompleteEnum, +E2_TypeKind_FirstMeta = E2_TypeKind_MetaExpr, +E2_TypeKind_LastMeta = E2_TypeKind_MetaDescription, +} E2_TypeKind; + +C_LINKAGE_BEGIN +extern E2_OpInfo e2_op_kind_info_table[32]; +extern U8 e2_type_kind_basic_byte_size_table[61]; +extern String8 e2_type_kind_basic_string_table[61]; + +C_LINKAGE_END + +#endif // EVAL2_META_H diff --git a/src/eval_visualization/eval_visualization_core.c b/src/eval_visualization/eval_visualization_core.c index dc2493f4..23cd64e3 100644 --- a/src/eval_visualization/eval_visualization_core.c +++ b/src/eval_visualization/eval_visualization_core.c @@ -13,12 +13,6 @@ EV_EXPAND_RULE_INFO_FUNCTION_DEF(nil) //////////////////////////////// //~ rjf: Key Functions -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif - internal EV_Key ev_key_make(U64 parent_hash, U64 child_id) { @@ -54,7 +48,7 @@ ev_key_match(EV_Key a, EV_Key b) internal U64 ev_hash_from_seed_string(U64 seed, String8 string) { - U64 result = XXH3_64bits_withSeed(string.str, string.size, seed); + U64 result = u64_hash_from_seed_str8(seed, string); return result; } @@ -1795,6 +1789,13 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) case E_TypeKind_RRef: case E_TypeKind_Array: { + E_Type *type = e_type_from_key(type_key); + if(type->flags & E_TypeFlag_ArrayLikeExpansion) + { + expansion_opener_symbol = str8_lit("["); + expansion_closer_symbol = str8_lit("]"); + goto arrays_and_sets_and_structs; + } if(type_kind == E_TypeKind_Array && it->top_task->redirect_to_sets_and_structs) { expansion_opener_symbol = str8_lit("["); @@ -1812,6 +1813,8 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) B32 did_prefix_content; B32 did_prefix_string; B32 did_redirect; + B32 did_pre_prefix_ptr; + B32 addr_is_good; }; EV_StringPtrData *ptr_data = it->top_task->user_data; if(ptr_data == 0) @@ -1824,6 +1827,17 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) ptr_data->ptee_has_string = ((E_TypeKind_Char8 <= ptr_data->direct_type->kind && ptr_data->direct_type->kind <= E_TypeKind_UChar32) || ptr_data->direct_type->kind == E_TypeKind_S8 || ptr_data->direct_type->kind == E_TypeKind_U8); + U8 byte = 0; + U64 byte_bad_flags = 0; + E_SpaceRangeInfo range_info = {.byte_bad_flags = &byte_bad_flags}; + if(ptr_data->value_eval.space.kind == E_SpaceKind_Null) + { + ptr_data->addr_is_good = 1; + } + else if(e_space_read(ptr_data->value_eval.space, &byte, &range_info, r1u64(ptr_data->value_eval.value.u64, ptr_data->value_eval.value.u64+1))) + { + ptr_data->addr_is_good = !(byte_bad_flags & 1); + } } if(ptr_data->did_redirect) { @@ -1833,10 +1847,36 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) { default:{}break; - //- rjf: step 0 -> try "prefix content", which we want to print before the pointer value, - // like strings or symbol names + //- rjf: step 0: do pre-prefix pointer value if requested case 0: { + if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_AddressesBeforeContent) + { + Temp scratch = scratch_begin(&arena, 1); + String8 ptr_value_string = str8_from_u64(scratch.arena, ptr_data->value_eval.value.u64, + ptr_data->value_eval.value.u64 != 0 ? 16 : 10, 0, 0); + if(params->flags & EV_StringFlag_DisplayAddressUnmappedStatus && ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good && params->flags & EV_StringFlag_ReadOnlyDisplayRules) + { + ptr_value_string = str8f(scratch.arena, "%S (unmapped)", ptr_value_string); + } + *out_string = str8_copy(arena, ptr_value_string); + ptr_data->did_pre_prefix_ptr = 1; + scratch_end(scratch); + } + need_pop = 0; + }break; + + //- rjf: step 1 -> try "prefix content", which we want to print before the pointer value, + // like strings or symbol names + case 1: + { + // rjf: choose prefix + String8 pre_prefix = {0}; + if(ptr_data->did_pre_prefix_ptr) + { + pre_prefix = str8_lit(" -> "); + } + // rjf: try strings if(!(ptr_data->type->flags & E_TypeFlag_IsNotText) && !ptr_data->did_prefix_content && ptr_data->ptee_has_string && @@ -1860,7 +1900,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) U64 string_memory_addr = ptr_data->value_eval.value.u64; for(U64 try_size = string_buffer_size; try_size >= 16; try_size /= 2) { - B32 read_good = e_space_read(eval.space, string_buffer, r1u64(string_memory_addr, string_memory_addr+try_size)); + B32 read_good = e_space_read(eval.space, string_buffer, 0, r1u64(string_memory_addr, string_memory_addr+try_size)); if(read_good) { break; @@ -1899,7 +1939,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) } // rjf: report - *out_string = push_str8_copy(arena, string__escaped_and_quoted); + *out_string = str8f(arena, "%S%S", pre_prefix, string__escaped_and_quoted); ptr_data->did_prefix_content = 1; ptr_data->did_prefix_string = 1; @@ -1985,6 +2025,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) { Temp scratch = scratch_begin(&arena, 1); String8List list = {0}; + str8_list_push(scratch.arena, &list, pre_prefix); str8_list_pushf(scratch.arena, &list, "[inlined] "); e_type_lhs_string_from_key(scratch.arena, type, &list, 0, 0); str8_list_push(scratch.arena, &list, name); @@ -2006,22 +2047,22 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) Temp scratch = scratch_begin(&arena, 1); RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, scope_idx); U64 proc_idx = scope->proc_idx; - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, proc_idx); + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, proc_idx); RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, procedure->type_idx); E_TypeKey type = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), procedure->type_idx, dbg_info_num); - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); + String8 name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure); if(procedure->type_idx != 0) { String8List list = {0}; e_type_lhs_string_from_key(scratch.arena, type, &list, 0, 0); str8_list_push(scratch.arena, &list, name); e_type_rhs_string_from_key(scratch.arena, type, &list, 0); - *out_string = str8_list_join(arena, &list, 0); + String8 joined = str8_list_join(scratch.arena, &list, 0); + *out_string = str8f(arena, "%S%S", pre_prefix, joined); } - else + else if(name.size != 0) { - *out_string = push_str8_copy(arena, name); + *out_string = str8f(arena, "%S%S", pre_prefix, name); } good_symbol_match = (out_string->size != 0); @@ -2031,7 +2072,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // rjf: if we have a function type, but we did not generate any name, then just put a ??? if(out_string->size == 0 && e_type_kind_from_key(ptr_data->type->direct_type_key) == E_TypeKind_Function) { - *out_string = str8_lit("???"); + *out_string = str8f(arena, "%S???", pre_prefix); good_symbol_match = 1; } } @@ -2039,17 +2080,21 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // NOTE(rjf): non-read-only -> only generate thing which can be parsed, so just procedure name else { + Temp scratch = scratch_begin(&arena, 1); + // rjf: voff -> scope U64 scope_idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_ScopeVMap, voff); RDI_Scope *scope = rdi_scope_from_voff(rdi, voff); // rjf: scope -> procedure / string - RDI_Procedure *procedure = rdi_procedure_from_scope(rdi, scope); - String8 procedure_name = {0}; - procedure_name.str = rdi_name_from_procedure(rdi, procedure, &procedure_name.size); - - *out_string = procedure_name; + RDI_Symbol *procedure = rdi_procedure_from_scope(rdi, scope); + String8 procedure_name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure); + if(procedure_name.size != 0) + { + *out_string = str8f(arena, "%S%S", pre_prefix, procedure_name); + } good_symbol_match = (procedure_name.size != 0); + scratch_end(scratch); } ptr_data->did_prefix_content = good_symbol_match; @@ -2081,11 +2126,15 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) } }break; - //- rjf: step 1 -> do pointer value + descend if needed - case 1: + //- rjf: step 2 -> do pointer value + descend if needed + case 2: { Temp scratch = scratch_begin(&arena, 1); - String8 ptr_value_string = str8_from_u64(scratch.arena, ptr_data->value_eval.value.u64, 16, 0, 0); + String8 ptr_value_string = str8_from_u64(scratch.arena, ptr_data->value_eval.value.u64, ptr_data->value_eval.value.u64 != 0 ? 16 : 10, 0, 0); + if(params->flags & EV_StringFlag_DisplayAddressUnmappedStatus && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good) + { + ptr_value_string = str8f(scratch.arena, "%S (unmapped)", ptr_value_string); + } // // NOTE(rjf): currently, we are not using the string-generation radix parameter when // generating a pointer value - it is weird to want to change pointer value visualization @@ -2093,7 +2142,8 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // // rjf: [read only] if we did prefix content, do a parenthesized pointer value - if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && + if(!ptr_data->did_pre_prefix_ptr && + !(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->did_prefix_content) { *out_string = push_str8f(arena, " (%S)", ptr_value_string); @@ -2101,7 +2151,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) // rjf: [read only] if we did *not* do any prefix content, but we have content, // do " -> " then descend - else if(params->flags & EV_StringFlag_ReadOnlyDisplayRules && !ptr_data->did_prefix_content && ptr_data->ptee_has_content) + else if(!ptr_data->did_pre_prefix_ptr && params->flags & EV_StringFlag_ReadOnlyDisplayRules && !ptr_data->did_prefix_content && ptr_data->ptee_has_content) { if(!(params->flags & EV_StringFlag_DisableAddresses)) { @@ -2126,7 +2176,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) } // rjf: [writeable, catchall] if we did *not* do any prefix content, do "" - else if(!ptr_data->did_prefix_content) + else if(!ptr_data->did_pre_prefix_ptr && !ptr_data->did_prefix_content) { *out_string = push_str8_copy(arena, ptr_value_string); } @@ -2246,3 +2296,27 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string) return result; } + +//- rjf: eval -> string path + +internal String8 +ev_value_string_from_eval(Arena *arena, EV_StringParams *params, E_Eval eval, U64 cap) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List strs = {0}; + EV_StringIter *iter = ev_string_iter_begin(scratch.arena, eval, params); + for(String8 string = {0}; ev_string_iter_next(scratch.arena, iter, &string);) + { + if(strs.total_size + string.size > cap) + { + String8 allowed_string = str8_chop(string, ((strs.total_size + string.size) - cap) + 3); + str8_list_push(scratch.arena, &strs, allowed_string); + str8_list_push(scratch.arena, &strs, str8_lit("...")); + break; + } + str8_list_push(scratch.arena, &strs, string); + } + String8 result = str8_list_join(arena, &strs, 0); + scratch_end(scratch); + return result; +} diff --git a/src/eval_visualization/eval_visualization_core.h b/src/eval_visualization/eval_visualization_core.h index daf46c2e..d3a4d35b 100644 --- a/src/eval_visualization/eval_visualization_core.h +++ b/src/eval_visualization/eval_visualization_core.h @@ -227,12 +227,14 @@ struct EV_WindowedRowList typedef U32 EV_StringFlags; enum { - EV_StringFlag_ReadOnlyDisplayRules = (1<<0), - EV_StringFlag_PrettyNames = (1<<1), - EV_StringFlag_DisableAddresses = (1<<2), - EV_StringFlag_DisableStrings = (1<<3), - EV_StringFlag_DisableChars = (1<<4), - EV_StringFlag_DisableStringQuotes = (1<<5), + EV_StringFlag_ReadOnlyDisplayRules = (1<<0), + EV_StringFlag_DisablePrettyNames = (1<<1), + EV_StringFlag_DisableAddresses = (1<<2), + EV_StringFlag_DisableStrings = (1<<3), + EV_StringFlag_DisableChars = (1<<4), + EV_StringFlag_DisableStringQuotes = (1<<5), + EV_StringFlag_AddressesBeforeContent = (1<<6), + EV_StringFlag_DisplayAddressUnmappedStatus = (1<<7), }; typedef struct EV_StringParams EV_StringParams; @@ -381,4 +383,7 @@ internal String8 ev_escaped_from_raw_string(Arena *arena, String8 raw); internal EV_StringIter *ev_string_iter_begin(Arena *arena, E_Eval eval, EV_StringParams *params); internal B32 ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string); +//- rjf: eval -> string path +internal String8 ev_value_string_from_eval(Arena *arena, EV_StringParams *params, E_Eval eval, U64 cap); + #endif // EVAL_VISUALIZATION_CORE_H diff --git a/src/file_stream/file_stream.c b/src/file_stream/file_stream.c index 88383adb..26533c17 100644 --- a/src/file_stream/file_stream.c +++ b/src/file_stream/file_stream.c @@ -53,7 +53,7 @@ fs_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out FileProperties pre_props = {0}; if(lane_idx() == 0) { - pre_props = os_properties_from_file_path(path); + pre_props = properties_from_file_path(path); file_is_good = (pre_props.modified != 0); } lane_sync_u64(&file_is_good, 0); @@ -80,16 +80,16 @@ fs_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out } //- rjf: open file - OS_Handle file = {0}; + File file = {0}; if(file_is_good) { if(lane_idx() == 0) { - file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite, path); + file = file_open(AccessFlag_Read|AccessFlag_ShareRead|AccessFlag_ShareWrite, path); } lane_sync_u64(&file, 0); } - B32 file_handle_is_valid = !os_handle_match(os_handle_zero(), file); + B32 file_handle_is_valid = !file_match(file_zero(), file); //- rjf: do read U64 total_bytes_read = 0; @@ -104,7 +104,7 @@ fs_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out ProfScope("read \"%.*s\" [0x%I64x, 0x%I64x)", str8_varg(path), range.min, range.max) { Rng1U64 lane_read_range = lane_range(data_buffer_size); - U64 bytes_read = os_file_read(file, shift_1u64(lane_read_range, range.min), data_buffer + lane_read_range.min); + U64 bytes_read = file_read(file, shift_1u64(lane_read_range, range.min), data_buffer + lane_read_range.min); ins_atomic_u64_add_eval(total_bytes_read_ptr, bytes_read); } lane_sync(); @@ -116,7 +116,7 @@ fs_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out { if(lane_idx() == 0) { - os_file_close(file); + file_close(file); } } @@ -124,7 +124,7 @@ fs_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_out FileProperties post_props = {0}; if(lane_idx() == 0) { - post_props = os_properties_from_file_path(path); + post_props = properties_from_file_path(path); } //- rjf: form content key @@ -303,7 +303,7 @@ fs_async_tick(void) { for(FS_Node *n = slot->first; n != 0; n = n->next) { - FileProperties props = os_properties_from_file_path(n->path); + FileProperties props = properties_from_file_path(n->path); if(props.modified != n->last_modified_timestamp) { found_work = 1; diff --git a/src/font_cache/font_cache.c b/src/font_cache/font_cache.c index 6779aa72..c84cb17b 100644 --- a/src/font_cache/font_cache.c +++ b/src/font_cache/font_cache.c @@ -4,12 +4,6 @@ //////////////////////////////// //~ rjf: Basic Functions -#if !defined(XXH_IMPLEMENTATION) -# define XXH_IMPLEMENTATION -# define XXH_STATIC_LINKING_ONLY -# include "third_party/xxHash/xxhash.h" -#endif - internal U128 fnt_hash_from_string(String8 string) { @@ -725,7 +719,7 @@ fnt_run_from_string(FNT_Tag tag, F32 size, F32 base_align_px, F32 tab_size_px, F FP_RasterFlags fp_flags = 0; if(flags & FNT_RasterFlag_Smooth) { fp_flags |= FP_RasterFlag_Smooth; } if(flags & FNT_RasterFlag_Hinted) { fp_flags |= FP_RasterFlag_Hinted; } - raster = fp_raster(scratch.arena, font_handle, floor_f32(size), flags, piece_substring); + raster = fp_raster(scratch.arena, font_handle, floor_f32(size), fp_flags, piece_substring); } // rjf: allocate portion of an atlas to upload the rasterization diff --git a/src/font_cache/font_cache.h b/src/font_cache/font_cache.h index 647cfaf4..a79f2abc 100644 --- a/src/font_cache/font_cache.h +++ b/src/font_cache/font_cache.h @@ -10,8 +10,8 @@ typedef U32 FNT_RasterFlags; enum { - FNT_RasterFlag_Smooth = (1<<0), - FNT_RasterFlag_Hinted = (1<<1), + FNT_RasterFlag_Smooth = (1<<0), + FNT_RasterFlag_Hinted = (1<<1), }; //////////////////////////////// diff --git a/src/font_provider/dwrite/font_provider_dwrite.c b/src/font_provider/dwrite/font_provider_dwrite.c index 66c4a235..75a725aa 100644 --- a/src/font_provider/dwrite/font_provider_dwrite.c +++ b/src/font_provider/dwrite/font_provider_dwrite.c @@ -163,6 +163,8 @@ fp_init(void) { ProfBeginFunction(); HRESULT error = 0; + F32 default_gamma = 1.5f; + F32 default_enhanced_contrast = 1.f; //- rjf: initialize main state { @@ -191,8 +193,9 @@ fp_init(void) //- rjf: make sharp-hinted rendering params { FLOAT gamma = IDWriteRenderingParams_GetGamma(fp_dwrite_state->base_rendering_params); - gamma = 1.f; FLOAT enhanced_contrast = IDWriteRenderingParams_GetEnhancedContrast(fp_dwrite_state->base_rendering_params); + gamma = default_gamma; + enhanced_contrast = default_enhanced_contrast; if(fp_dwrite_state->dwrite2_is_supported) { error = IDWriteFactory2_CreateCustomRenderingParams2((IDWriteFactory2 *)fp_dwrite_state->factory, @@ -220,8 +223,9 @@ fp_init(void) //- rjf: make sharp-unhinted rendering params { FLOAT gamma = IDWriteRenderingParams_GetGamma(fp_dwrite_state->base_rendering_params); - gamma = 1.f; FLOAT enhanced_contrast = IDWriteRenderingParams_GetEnhancedContrast(fp_dwrite_state->base_rendering_params); + gamma = default_gamma; + enhanced_contrast = default_enhanced_contrast; if(fp_dwrite_state->dwrite2_is_supported) { error = IDWriteFactory2_CreateCustomRenderingParams2((IDWriteFactory2 *)fp_dwrite_state->factory, @@ -249,8 +253,9 @@ fp_init(void) //- rjf: make smooth-hinted rendering params { FLOAT gamma = IDWriteRenderingParams_GetGamma(fp_dwrite_state->base_rendering_params); - gamma = 1.f; FLOAT enhanced_contrast = IDWriteRenderingParams_GetEnhancedContrast(fp_dwrite_state->base_rendering_params); + gamma = default_gamma; + enhanced_contrast = default_enhanced_contrast; if(fp_dwrite_state->dwrite2_is_supported) { error = IDWriteFactory2_CreateCustomRenderingParams2((IDWriteFactory2 *)fp_dwrite_state->factory, @@ -277,7 +282,7 @@ fp_init(void) //- rjf: make smooth rendering params { - FLOAT gamma = 1.f; + FLOAT gamma = default_gamma; FLOAT enhanced_contrast = 0.f; if(fp_dwrite_state->dwrite2_is_supported) { @@ -335,7 +340,7 @@ fp_font_open(String8 path) //- rjf: try to open font for(PathTask *t = first_task; t != 0 && font.file == 0; t = t->next) { - B32 file_exists = (os_properties_from_file_path(t->path).created != 0); + B32 file_exists = (properties_from_file_path(t->path).created != 0); String16 path16 = str16_from_8(scratch.arena, t->path); if(file_exists) { @@ -447,7 +452,7 @@ fp_metrics_from_font(FP_Handle handle) return result; } -fp_hook NO_ASAN FP_RasterResult +fp_hook ASAN_NO_ADDR FP_RasterResult fp_raster(Arena *arena, FP_Handle font_handle, F32 size, FP_RasterFlags flags, String8 string) { ProfBeginFunction(); @@ -583,7 +588,7 @@ fp_raster(Arena *arena, FP_Handle font_handle, F32 size, FP_RasterFlags flags, S // rjf: fill basics result.atlas_dim = atlas_dim; result.atlas = push_array_no_zero(arena, U8, atlas_dim.x*atlas_dim.y*4); - result.advance = floor_f32(advance); + result.advance = round_f32(advance); // rjf: fill atlas { diff --git a/src/font_provider/font_provider.h b/src/font_provider/font_provider.h index 80fd608d..5b57c7e7 100644 --- a/src/font_provider/font_provider.h +++ b/src/font_provider/font_provider.h @@ -12,8 +12,8 @@ typedef U32 FP_RasterFlags; enum { - FP_RasterFlag_Smooth = (1<<0), - FP_RasterFlag_Hinted = (1<<1), + FP_RasterFlag_Smooth = (1<<0), + FP_RasterFlag_Hinted = (1<<1), }; typedef struct FP_Handle FP_Handle; @@ -54,6 +54,6 @@ fp_hook FP_Handle fp_font_open(String8 path); fp_hook FP_Handle fp_font_open_from_static_data_string(String8 *data_ptr); fp_hook void fp_font_close(FP_Handle handle); fp_hook FP_Metrics fp_metrics_from_font(FP_Handle font); -fp_hook NO_ASAN FP_RasterResult fp_raster(Arena *arena, FP_Handle font, F32 size, FP_RasterFlags flags, String8 string); +fp_hook ASAN_NO_ADDR FP_RasterResult fp_raster(Arena *arena, FP_Handle font, F32 size, FP_RasterFlags flags, String8 string); #endif // FONT_PROVIDER_H diff --git a/src/gnu/gnu.c b/src/gnu/gnu.c new file mode 100644 index 00000000..9586fa32 --- /dev/null +++ b/src/gnu/gnu.c @@ -0,0 +1,315 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal GNU_LinkMap64 +gnu_linkmap64_from_linkmap32(GNU_LinkMap32 linkmap32) +{ + GNU_LinkMap64 linkmap64 = {0}; + linkmap64.addr_vaddr = linkmap32.addr_vaddr; + linkmap64.name_vaddr = linkmap32.name_vaddr; + linkmap64.ld_vaddr = linkmap32.ld_vaddr; + linkmap64.next_vaddr = linkmap32.next_vaddr; + linkmap64.prev_vaddr = linkmap32.prev_vaddr; + return linkmap64; +} + +internal U64 +gnu_rdebug_info_size_from_arch(Arch arch) +{ + U64 size = 0; + switch (byte_size_from_arch(arch)) { + case 0: break; + case 4: size = sizeof(GNU_RDebugInfo32); break; + case 8: size = sizeof(GNU_RDebugInfo64); break; + default: InvalidPath; break; + } + return size; +} + +internal U64 +gnu_r_brk_offset_from_arch(Arch arch) +{ + U64 offset = 0; + switch (gnu_rdebug_info_size_from_arch(arch)) { + case 0: offset = 0; break; + case sizeof(GNU_RDebugInfo32): offset = OffsetOf(GNU_RDebugInfo32, r_brk); break; + case sizeof(GNU_RDebugInfo64): offset = OffsetOf(GNU_RDebugInfo64, r_brk); break; + default: InvalidPath; break; + } + return offset; +} + +internal GNU_RDebugInfo64 +gnu_rdebug_info64_from_rdebug_info32(GNU_RDebugInfo32 rdebug32) +{ + GNU_RDebugInfo64 result = {0}; + result.r_version = rdebug32.r_version; + result.r_map = rdebug32.r_map; + result.r_brk = rdebug32.r_brk; + result.r_state = rdebug32.r_state; + result.r_ldbase = rdebug32.r_ldbase; + return result; +} + +internal String8 +gnu_string_from_abi_tag(GNU_AbiTag abi_tag) +{ + switch (abi_tag) { + case GNU_AbiTag_Linux: return str8_lit("Linux"); + case GNU_AbiTag_Hurd: return str8_lit("Hurd"); + case GNU_AbiTag_Solaris: return str8_lit("Solaris"); + case GNU_AbiTag_FreeBsd: return str8_lit("FreeBsd"); + case GNU_AbiTag_NetBsd: return str8_lit("NetBsd"); + case GNU_AbiTag_Syllable: return str8_lit("Syllable"); + case GNU_AbiTag_Nacl: return str8_lit("Nacl"); + } + return str8_zero(); +} + +internal String8 +gnu_string_from_note_type(GNU_NoteType note_type) +{ + switch (note_type) { + case GNU_NoteType_Abi: return str8_lit("GNU_Abi"); + case GNU_NoteType_HwCap: return str8_lit("GNU_HwCap"); + case GNU_NoteType_BuildId: return str8_lit("GNU_BuildId"); + case GNU_NoteType_GoldVersion: return str8_lit("GNU_GoldVersion"); + case GNU_NoteType_PropertyType0: return str8_lit("GNU_PropertyType0"); + } + return str8_zero(); +} + +internal String8 +gnu_string_from_property_x86(GNU_PropertyX86 prop) +{ + switch (prop) { + case GNU_PropertyX86_Feature1And: return str8_lit("Feature1And"); + case GNU_PropertyX86_Feature2Used: return str8_lit("Feature2Used"); + case GNU_PropertyX86_Isa1needed: return str8_lit("Isa1needed"); + case GNU_PropertyX86_Isa2Needed: return str8_lit("Isa2Needed"); + case GNU_PropertyX86_Isa1Used: return str8_lit("Isa1Used"); + case GNU_PropertyX86_Compat_isa_1_used: return str8_lit("Compat_isa_1_used"); + case GNU_PropertyX86_Compat_isa_1_needed: return str8_lit("Compat_isa_1_needed"); + case GNU_PropertyX86_UInt32AndHi: return str8_lit("UInt32AndHi"); + case GNU_PropertyX86_UInt32OrLo: return str8_lit("UInt32OrLo"); + case GNU_PropertyX86_UInt32OrHi: return str8_lit("UInt32OrHi"); + case GNU_PropertyX86_UInt32OrAndLo: return str8_lit("UInt32OrAndLo"); + case GNU_PropertyX86_UInt32OrAndHi: return str8_lit("UInt32OrAndHi"); + } + return str8_zero(); +} + +internal String8 +gnu_string_from_property_flags_x86(Arena *arena, GNU_PropertyX86 prop, U32 flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List fmt = {0}; + if (flags == 0) { + str8_list_pushf(scratch.arena, &fmt, "None"); + } + switch (prop) { + case GNU_PropertyX86_Isa1needed: + case GNU_PropertyX86_Isa1Used: { + if (flags & GNU_PropertyX86Isa1_BaseLine) { + str8_list_pushf(scratch.arena, &fmt, "BaseLine"); + flags &= ~GNU_PropertyX86Isa1_BaseLine; + } + if (flags & GNU_PropertyX86Isa1_V2) { + str8_list_pushf(scratch.arena, &fmt, "V2"); + flags &= ~GNU_PropertyX86Isa1_V2; + } + if (flags & GNU_PropertyX86Isa1_V3) { + str8_list_pushf(scratch.arena, &fmt, "V3"); + flags &= ~GNU_PropertyX86Isa1_V3; + } + if (flags & GNU_PropertyX86Isa1_V4) { + str8_list_pushf(scratch.arena, &fmt, "V4"); + flags &= ~GNU_PropertyX86Isa1_V4; + } + } break; + case GNU_PropertyX86_Feature1And: { + if (flags & GNU_PropertyX86Feature1_Ibt) { + str8_list_pushf(scratch.arena, &fmt, "Ibt"); + flags &= ~GNU_PropertyX86Feature1_Ibt; + } + if (flags & GNU_PropertyX86Feature1_Shstk) { + str8_list_pushf(scratch.arena, &fmt, "Shstk"); + flags &= ~GNU_PropertyX86Feature1_Shstk; + } + if (flags & GNU_PropertyX86Feature1_LamU48) { + str8_list_pushf(scratch.arena, &fmt, "LamU48"); + flags &= ~GNU_PropertyX86Feature1_LamU48; + } + if (flags & GNU_PropertyX86Feature1_LamU57) { + str8_list_pushf(scratch.arena, &fmt, "LamU57"); + flags &= ~GNU_PropertyX86Feature1_LamU57; + } + } break; + case GNU_PropertyX86_Feature2Used: { + if (flags & GNU_PropertyX86Feature2_X86) { + str8_list_pushf(scratch.arena, &fmt, "X86"); + flags &= ~GNU_PropertyX86Feature2_X86; + } + if (flags & GNU_PropertyX86Feature2_X87) { + str8_list_pushf(scratch.arena, &fmt, "X87"); + flags &= ~GNU_PropertyX86Feature2_X87; + } + if (flags & GNU_PropertyX86Feature2_MMX) { + str8_list_pushf(scratch.arena, &fmt, "MMX"); + flags &= ~GNU_PropertyX86Feature2_MMX; + } + if (flags & GNU_PropertyX86Feature2_XMM) { + str8_list_pushf(scratch.arena, &fmt, "XMM"); + flags &= ~GNU_PropertyX86Feature2_XMM; + } + if (flags & GNU_PropertyX86Feature2_YMM) { + str8_list_pushf(scratch.arena, &fmt, "YMM"); + flags &= ~GNU_PropertyX86Feature2_YMM; + } + if (flags & GNU_PropertyX86Feature2_ZMM) { + str8_list_pushf(scratch.arena, &fmt, "ZMM"); + flags &= ~GNU_PropertyX86Feature2_ZMM; + } + if (flags & GNU_PropertyX86Feature2_FXSR) { + str8_list_pushf(scratch.arena, &fmt, "FXSR"); + flags &= ~GNU_PropertyX86Feature2_FXSR; + } + if (flags & GNU_PropertyX86Feature2_XSAVE) { + str8_list_pushf(scratch.arena, &fmt, "XSAVE"); + flags &= ~GNU_PropertyX86Feature2_XSAVE; + } + if (flags & GNU_PropertyX86Feature2_XSAVEOPT) { + str8_list_pushf(scratch.arena, &fmt, "XSAVEOPT"); + flags &= ~GNU_PropertyX86Feature2_XSAVEOPT; + } + if (flags & GNU_PropertyX86Feature2_XSAVEC) { + str8_list_pushf(scratch.arena, &fmt, "XSAVEC"); + flags &= ~GNU_PropertyX86Feature2_XSAVEC; + } + if (flags & GNU_PropertyX86Feature2_TMM) { + str8_list_pushf(scratch.arena, &fmt, "TMM"); + flags &= ~GNU_PropertyX86Feature2_TMM; + } + if (flags & GNU_PropertyX86Feature2_MASK) { + str8_list_pushf(scratch.arena, &fmt, "MASK"); + flags &= ~GNU_PropertyX86Feature2_MASK; + } + } break; + case GNU_PropertyX86_Compat_isa_1_used: + case GNU_PropertyX86_Compat_isa_1_needed: { + if (flags & GNU_PropertyX86Compat1Isa1_486) { + str8_list_pushf(scratch.arena, &fmt, "486"); + flags &= ~GNU_PropertyX86Compat1Isa1_486; + } + if (flags & GNU_PropertyX86Compat1Isa1_586) { + str8_list_pushf(scratch.arena, &fmt, "586"); + flags &= ~GNU_PropertyX86Compat1Isa1_586; + } + if (flags & GNU_PropertyX86Compat1Isa1_686) { + str8_list_pushf(scratch.arena, &fmt, "686"); + flags &= ~GNU_PropertyX86Compat1Isa1_686; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSE) { + str8_list_pushf(scratch.arena, &fmt, "SSE"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSE; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSE2) { + str8_list_pushf(scratch.arena, &fmt, "SSE2"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSE2; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSE3) { + str8_list_pushf(scratch.arena, &fmt, "SSE3"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSE3; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSSE3) { + str8_list_pushf(scratch.arena, &fmt, "SSSE3"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSSE3; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSE4_1) { + str8_list_pushf(scratch.arena, &fmt, "SSE4_1"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSE4_1; + } + if (flags & GNU_PropertyX86Compat1Isa1_SSE4_2) { + str8_list_pushf(scratch.arena, &fmt, "SSE4_2"); + flags &= ~GNU_PropertyX86Compat1Isa1_SSE4_2; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX) { + str8_list_pushf(scratch.arena, &fmt, "AVX"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX2) { + str8_list_pushf(scratch.arena, &fmt, "AVX2"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX2; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512F) { + str8_list_pushf(scratch.arena, &fmt, "AVX512F"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512F; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512ER) { + str8_list_pushf(scratch.arena, &fmt, "AVX512ER"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512ER; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512PF) { + str8_list_pushf(scratch.arena, &fmt, "AVX512PF"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512PF; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512VL) { + str8_list_pushf(scratch.arena, &fmt, "AVX512VL"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512VL; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512DQ) { + str8_list_pushf(scratch.arena, &fmt, "AVX512DQ"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512DQ; + } + if (flags & GNU_PropertyX86Compat1Isa1_AVX512BW) { + str8_list_pushf(scratch.arena, &fmt, "AVX512BW"); + flags &= ~GNU_PropertyX86Compat1Isa1_AVX512BW; + } + } break; + } + if (flags) { + str8_list_pushf(scratch.arena, &fmt, "Unknown: 0x%x", flags); + } + + String8 result = str8_list_join(arena, &fmt, &(StringJoin){.sep = str8_lit(", ")}); + scratch_end(scratch); + return result; +} + +internal MachineOpResult +gnu_read_link_map(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, B32 is_64bit, GNU_LinkMap64 *link_map_out) +{ + MachineOpResult result = MachineOpResult_Fail; + if (is_64bit) { + result = mem_read(addr, link_map_out, sizeof(*link_map_out), mem_read_ud); + } else { + GNU_LinkMap32 link_map_32 = {0}; + result = mem_read(addr, &link_map_32, sizeof(link_map_32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *link_map_out = gnu_linkmap64_from_linkmap32(link_map_32); + } + } + return result; +} + +internal MachineOpResult +gnu_read_r_debug(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, Arch arch, GNU_RDebugInfo64 *rdebug_out) +{ + MachineOpResult result = MachineOpResult_Fail; + switch (gnu_rdebug_info_size_from_arch(arch)) { + case 0: {} break; + case sizeof(GNU_RDebugInfo32): { + GNU_RDebugInfo32 rdebug32 = {0}; + result = mem_read(addr, &rdebug32, sizeof(rdebug32), mem_read_ud); + if (result == MachineOpResult_Ok) { + *rdebug_out = gnu_rdebug_info64_from_rdebug_info32(rdebug32); + } + } break; + case sizeof(GNU_RDebugInfo64): { + result = mem_read(addr, rdebug_out, sizeof(*rdebug_out), mem_read_ud); + } break; + default: { InvalidPath; } break; + } + return result; +} + diff --git a/src/gnu/gnu.h b/src/gnu/gnu.h new file mode 100644 index 00000000..22ba9aaf --- /dev/null +++ b/src/gnu/gnu.h @@ -0,0 +1,210 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef GNU_H +#define GNU_H + +typedef ELF_NoteType GNU_NoteType; +enum +{ + GNU_NoteType_Abi = 1, + GNU_NoteType_HwCap = 2, + GNU_NoteType_BuildId = 3, + GNU_NoteType_GoldVersion = 4, + GNU_NoteType_PropertyType0 = 5, +}; + +typedef U32 GNU_Property; +enum +{ + GNU_Property_LoProc = 0xc0000000, + // processor-specific range + GNU_Property_HiProc = 0xdfffffff, + GNU_Property_LoUser = 0xe0000000, + // application-specific range + GNU_Property_HiUser = 0xffffffff, + GNU_Property_StackSize = 1, + GNU_Property_NoCopyOnProtected = 2, +}; + +typedef U32 GNU_PropertyX86Isa1; +enum +{ + GNU_PropertyX86Isa1_BaseLine = (1 << 0), + GNU_PropertyX86Isa1_V2 = (1 << 1), + GNU_PropertyX86Isa1_V3 = (1 << 2), + GNU_PropertyX86Isa1_V4 = (1 << 3), +}; + +typedef U32 GNU_PropertyX86Compat1Isa1; +enum +{ + GNU_PropertyX86Compat1Isa1_486 = (1 << 0), + GNU_PropertyX86Compat1Isa1_586 = (1 << 1), + GNU_PropertyX86Compat1Isa1_686 = (1 << 2), + GNU_PropertyX86Compat1Isa1_SSE = (1 << 3), + GNU_PropertyX86Compat1Isa1_SSE2 = (1 << 4), + GNU_PropertyX86Compat1Isa1_SSE3 = (1 << 5), + GNU_PropertyX86Compat1Isa1_SSSE3 = (1 << 6), + GNU_PropertyX86Compat1Isa1_SSE4_1 = (1 << 7), + GNU_PropertyX86Compat1Isa1_SSE4_2 = (1 << 8), + GNU_PropertyX86Compat1Isa1_AVX = (1 << 9), + GNU_PropertyX86Compat1Isa1_AVX2 = (1 << 10), + GNU_PropertyX86Compat1Isa1_AVX512F = (1 << 11), + GNU_PropertyX86Compat1Isa1_AVX512ER = (1 << 12), + GNU_PropertyX86Compat1Isa1_AVX512PF = (1 << 13), + GNU_PropertyX86Compat1Isa1_AVX512VL = (1 << 14), + GNU_PropertyX86Compat1Isa1_AVX512DQ = (1 << 15), + GNU_PropertyX86Compat1Isa1_AVX512BW = (1 << 16), +}; + +typedef U32 GNU_PropertyX86Compat2Isa1; +enum +{ + GNU_PropertyX86Compat2Isa1_CMOVE = (1 << 0), + GNU_PropertyX86Compat2Isa1_SSE = (1 << 1), + GNU_PropertyX86Compat2Isa1_SSE2 = (1 << 2), + GNU_PropertyX86Compat2Isa1_SSE3 = (1 << 3), + GNU_PropertyX86Compat2Isa1_SSE4_1 = (1 << 4), + GNU_PropertyX86Compat2Isa1_SSE4_2 = (1 << 5), + GNU_PropertyX86Compat2Isa1_AVX = (1 << 6), + GNU_PropertyX86Compat2Isa1_AVX2 = (1 << 7), + GNU_PropertyX86Compat2Isa1_FMA = (1 << 8), + GNU_PropertyX86Compat2Isa1_AVX512F = (1 << 9), + GNU_PropertyX86Compat2Isa1_AVX512CD = (1 << 10), + GNU_PropertyX86Compat2Isa1_AVX512ER = (1 << 11), + GNU_PropertyX86Compat2Isa1_AVX512PF = (1 << 12), + GNU_PropertyX86Compat2Isa1_AVX512VL = (1 << 13), + GNU_PropertyX86Compat2Isa1_AVX512DQ = (1 << 14), + GNU_PropertyX86Compat2Isa1_AVX512BW = (1 << 15), + GNU_PropertyX86Compat2Isa1_AVX512_4FMAPS = (1 << 16), + GNU_PropertyX86Compat2Isa1_AVX512_4VNNIW = (1 << 17), + GNU_PropertyX86Compat2Isa1_AVX512_BITALG = (1 << 18), + GNU_PropertyX86Compat2Isa1_AVX512_IFMA = (1 << 19), + GNU_PropertyX86Compat2Isa1_AVX512_VBMI = (1 << 20), + GNU_PropertyX86Compat2Isa1_AVX512_VBMI2 = (1 << 21), + GNU_PropertyX86Compat2Isa1_AVX512_VNNI = (1 << 22), + GNU_PropertyX86Compat2Isa1_AVX512_BF16 = (1 << 23), +}; + +typedef GNU_Property GNU_PropertyX86; +enum +{ + GNU_PropertyX86_Feature1And = 0xc0000002, + GNU_PropertyX86_Feature2Used = 0xc0010001, + GNU_PropertyX86_Isa1needed = 0xc0008002, + GNU_PropertyX86_Isa2Needed = 0xc0008001, + GNU_PropertyX86_Isa1Used = 0xc0010002, + GNU_PropertyX86_Compat_isa_1_used = 0xc0000000, + GNU_PropertyX86_Compat_isa_1_needed = 0xc0000001, + GNU_PropertyX86_UInt32AndLo = GNU_PropertyX86_Feature1And, + GNU_PropertyX86_UInt32AndHi = 0xc0007fff, + GNU_PropertyX86_UInt32OrLo = 0xc0008000, + GNU_PropertyX86_UInt32OrHi = 0xc000ffff, + GNU_PropertyX86_UInt32OrAndLo = 0xc0010000, + GNU_PropertyX86_UInt32OrAndHi = 0xc0017fff, +}; + +typedef U32 GNU_PropertyX86Feature1; +enum +{ + GNU_PropertyX86Feature1_Ibt = (1 << 0), + GNU_PropertyX86Feature1_Shstk = (1 << 1), + GNU_PropertyX86Feature1_LamU48 = (1 << 2), + GNU_PropertyX86Feature1_LamU57 = (1 << 3), +}; + +typedef U32 GNU_PropertyX86Feature2; +enum +{ + GNU_PropertyX86Feature2_X86 = (1 << 0), + GNU_PropertyX86Feature2_X87 = (1 << 1), + GNU_PropertyX86Feature2_MMX = (1 << 2), + GNU_PropertyX86Feature2_XMM = (1 << 3), + GNU_PropertyX86Feature2_YMM = (1 << 4), + GNU_PropertyX86Feature2_ZMM = (1 << 5), + GNU_PropertyX86Feature2_FXSR = (1 << 6), + GNU_PropertyX86Feature2_XSAVE = (1 << 7), + GNU_PropertyX86Feature2_XSAVEOPT = (1 << 8), + GNU_PropertyX86Feature2_XSAVEC = (1 << 9), + GNU_PropertyX86Feature2_TMM = (1 << 10), + GNU_PropertyX86Feature2_MASK = (1 << 11), +}; + +typedef U32 GNU_AbiTag; +enum +{ + GNU_AbiTag_Linux = 0, + GNU_AbiTag_Hurd = 1, + GNU_AbiTag_Solaris = 2, + GNU_AbiTag_FreeBsd = 3, + GNU_AbiTag_NetBsd = 4, + GNU_AbiTag_Syllable = 5, + GNU_AbiTag_Nacl = 6, +}; + +typedef struct GNU_LinkMap64 +{ + U64 addr_vaddr; + U64 name_vaddr; + U64 ld_vaddr; // address of the dynamic section + U64 next_vaddr; + U64 prev_vaddr; +} GNU_LinkMap64; + +typedef struct GNU_LinkMap32 +{ + U32 addr_vaddr; + U32 name_vaddr; + U32 ld_vaddr; + U32 next_vaddr; + U32 prev_vaddr; +} GNU_LinkMap32; + +typedef U32 GNU_RT; +enum +{ + GNU_RT_Consistent = 0, + GNU_RT_Add = 1, + GNU_RT_Delete = 2, +}; + +// struct reflects r_debug from /usr/include/link.h +typedef struct GNU_RDebugInfo64 +{ + S32 r_version; // must be greater than 0 + U64 r_map; // address of first loaded object + U64 r_brk; // when module is loared/unloaded DL calls this function + GNU_RT r_state; + U64 r_ldbase; // base addres of dynamic linker +} GNU_RDebugInfo64; + +typedef struct GNU_RDebugInfo32 +{ + S32 r_version; + U32 r_map; + U32 r_brk; + GNU_RT r_state; + U32 r_ldbase; +} GNU_RDebugInfo32; + +//////////////////////////////// + +internal GNU_LinkMap64 elf_linkmap64_from_linkmap32(GNU_LinkMap32 linkmap32); +internal U64 gnu_rdebug_info_size_from_arch(Arch arch); +internal U64 gnu_r_brk_offset_from_arch(Arch arch); + +//////////////////////////////// +//~ enum + +internal String8 gnu_string_from_abi_tag(GNU_AbiTag abi_tag); +internal String8 gnu_string_from_note_type(GNU_NoteType note_type); +internal String8 gnu_string_from_property_x86(GNU_PropertyX86 prop); + +//////////////////////////////// +//~ Compat Readers + +internal MachineOpResult gnu_read_link_map(MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, B32 is_64bit, GNU_LinkMap64 *link_map_out); +internal MachineOpResult gnu_read_r_debug (MachineOp_MemRead *mem_read, void *mem_read_ud, U64 addr, Arch arch, GNU_RDebugInfo64 *rdebug_out); + +#endif // GNU_H diff --git a/src/gnu/gnu_parse.c b/src/gnu/gnu_parse.c new file mode 100644 index 00000000..dbd90f3c --- /dev/null +++ b/src/gnu/gnu_parse.c @@ -0,0 +1,63 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal GNU_RDebugInfoList +gnu_parse_rdebug(Arena *arena, B32 is_64bit, U64 first_rdebug_vaddr, MachineOp_MemRead *mem_read_func, void *mem_read_ud) +{ + GNU_RDebugInfoList result = {0}; + + for (U64 rdebug_vaddr = first_rdebug_vaddr, rdebug_next = 0; rdebug_vaddr != 0; rdebug_vaddr = rdebug_next) { + GNU_RDebugInfo64 rdebug; + if (is_64bit) { + MachineOpResult read_result = mem_read_func(rdebug_vaddr, &rdebug, sizeof(rdebug),mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + } else { + GNU_RDebugInfo32 rdebug32; + MachineOpResult read_result = mem_read_func(rdebug_vaddr, &rdebug32, sizeof(rdebug32), mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + } + if (rdebug.r_version < 1) { goto exit; } + + if (rdebug.r_version > 1) { + MachineOpResult read_result = mem_read_func(rdebug_vaddr + sizeof(rdebug), &rdebug_next, sizeof(rdebug_next), mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + } + + GNU_RDebugInfoNode *rdebug_n = push_array(arena, GNU_RDebugInfoNode, 1); + rdebug_n->v = rdebug; + SLLQueuePush(result.first, result.last, rdebug_n); + result.count += 1; + } + + exit:; + return result; +} + +internal GNU_LinkMapList +gnu_parse_link_map_list(Arena *arena, B32 is_64bit, U64 first_link_map_vaddr, MachineOp_MemRead *mem_read_func, void *mem_read_ud) +{ + GNU_LinkMapList result = {0}; + + GNU_LinkMap64 link_map = {0}; + for (U64 link_map_vaddr = first_link_map_vaddr; link_map_vaddr != 0; link_map_vaddr = link_map.next_vaddr) { + if (is_64bit) { + MachineOpResult read_result = mem_read_func(link_map_vaddr, &link_map, sizeof(link_map), mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + } else { + GNU_LinkMap32 link_map32 = {0}; + MachineOpResult read_result = mem_read_func(link_map_vaddr, &link_map32, sizeof(link_map32), mem_read_ud); + if (read_result != MachineOpResult_Ok) { goto exit; } + gnu_linkmap64_from_linkmap32(link_map32); + } + + GNU_LinkMapNode *n = push_array(arena, GNU_LinkMapNode, 1); + n->v = link_map; + SLLQueuePush(result.first, result.last, n); + result.count += 1; + } + + exit:; + return result; +} + + diff --git a/src/gnu/gnu_parse.h b/src/gnu/gnu_parse.h new file mode 100644 index 00000000..57fd74e3 --- /dev/null +++ b/src/gnu/gnu_parse.h @@ -0,0 +1,39 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef GNU_PARSE_H +#define GNU_PARSE_H + +typedef struct GNU_LinkMapNode +{ + GNU_LinkMap64 v; + struct GNU_LinkMapNode *next; +} GNU_LinkMapNode; + +typedef struct GNU_LinkMapList +{ + U64 count; + GNU_LinkMapNode *first; + GNU_LinkMapNode *last; +} GNU_LinkMapList; + +typedef struct GNU_RDebugInfoNode +{ + GNU_RDebugInfo64 v; + struct GNU_RDebugInfoNode *next; +} GNU_RDebugInfoNode; + +typedef struct GNU_RDebugInfoList +{ + U64 count; + GNU_RDebugInfoNode *first; + GNU_RDebugInfoNode *last; +} GNU_RDebugInfoList; + +//////////////////////////////// + +internal GNU_RDebugInfoList gnu_parse_rdebug(Arena *arena, B32 is_64bit, U64 first_rdebug_vaddr, MachineOp_MemRead *mem_read_func, void *mem_read_ud); +internal GNU_LinkMapList gnu_parse_link_map_list(Arena *arena, B32 is_64bit, U64 first_link_map_vaddr, MachineOp_MemRead *mem_read_func, void *mem_read_ud); + +#endif + diff --git a/src/http/http.c b/src/http/http.c new file mode 100644 index 00000000..db9ec6ca --- /dev/null +++ b/src/http/http.c @@ -0,0 +1,33 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ rjf: Basic Type Functions + +internal HTTP_StatusKind +http_status_kind_from_code(HTTP_StatusCode code) +{ + HTTP_StatusKind kind = HTTP_StatusKind_Null; + if(0){} + else if(HTTP_StatusCode_FirstInformational <= code && code <= HTTP_StatusCode_LastInformational) + { + kind = HTTP_StatusKind_Informational; + } + else if(HTTP_StatusCode_FirstSuccessful <= code && code <= HTTP_StatusCode_LastSuccessful) + { + kind = HTTP_StatusKind_Successful; + } + else if(HTTP_StatusCode_FirstRedirection <= code && code <= HTTP_StatusCode_LastRedirection) + { + kind = HTTP_StatusKind_Redirection; + } + else if(HTTP_StatusCode_FirstClientError <= code && code <= HTTP_StatusCode_LastClientError) + { + kind = HTTP_StatusKind_ClientError; + } + else if(HTTP_StatusCode_FirstServerError <= code && code <= HTTP_StatusCode_LastServerError) + { + kind = HTTP_StatusKind_ServerError; + } + return kind; +} diff --git a/src/http/http.h b/src/http/http.h new file mode 100644 index 00000000..c7d570b8 --- /dev/null +++ b/src/http/http.h @@ -0,0 +1,173 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef HTTP_H +#define HTTP_H + +//////////////////////////////////////////////////////////////// +//~ rjf: Status Codes + +typedef enum HTTP_StatusKind +{ + HTTP_StatusKind_Null, + HTTP_StatusKind_Informational, + HTTP_StatusKind_Successful, + HTTP_StatusKind_Redirection, + HTTP_StatusKind_ClientError, + HTTP_StatusKind_ServerError, + HTTP_StatusKind_COUNT +} +HTTP_StatusKind; + +typedef U32 HTTP_StatusCode; +typedef enum HTTP_StatusCodeEnum +{ + //- rjf: informational messages + HTTP_StatusCode_FirstInformational = 100, + HTTP_StatusCode_LastInformational = 199, + HTTP_StatusCode_Continue = 100, + HTTP_StatusCode_SwitchingProtocols = 101, + HTTP_StatusCode_Processing = 102, + HTTP_StatusCode_EarlyHints = 103, + + //- rjf: successful messages + HTTP_StatusCode_FirstSuccessful = 200, + HTTP_StatusCode_LastSuccessful = 299, + HTTP_StatusCode_OK = 200, + HTTP_StatusCode_Created = 201, + HTTP_StatusCode_Accepted = 202, + HTTP_StatusCode_NonAuthoritativeInformation = 203, + HTTP_StatusCode_NoContent = 204, + HTTP_StatusCode_ResetContent = 205, + HTTP_StatusCode_PartialContent = 206, + HTTP_StatusCode_MultiStatus = 207, + HTTP_StatusCode_AlreadyReported = 208, + HTTP_StatusCode_IMUsed = 226, + + //- rjf: redirection messages + HTTP_StatusCode_FirstRedirection = 300, + HTTP_StatusCode_LastRedirection = 399, + HTTP_StatusCode_MultipleChoices = 300, + HTTP_StatusCode_MovedPermanently = 301, + HTTP_StatusCode_Found = 302, + HTTP_StatusCode_SeeOther = 303, + HTTP_StatusCode_NotModified = 304, + HTTP_StatusCode_UseProxy = 305, + HTTP_StatusCode_TemporaryRedirect = 307, + HTTP_StatusCode_PermanentRedirect = 308, + + //- rjf: client error responses + HTTP_StatusCode_FirstClientError = 400, + HTTP_StatusCode_LastClientError = 499, + HTTP_StatusCode_BadRequest = 400, + HTTP_StatusCode_Unauthorized = 401, + HTTP_StatusCode_PaymentRequired = 402, + HTTP_StatusCode_Forbidden = 403, + HTTP_StatusCode_NotFound = 404, + HTTP_StatusCode_MethodNotAllowed = 405, + HTTP_StatusCode_NotAcceptable = 406, + HTTP_StatusCode_ProxyAuthenticationRequired = 407, + HTTP_StatusCode_RequestTimeout = 408, + HTTP_StatusCode_Conflict = 409, + HTTP_StatusCode_Gone = 410, + HTTP_StatusCode_LengthRequired = 411, + HTTP_StatusCode_PreconditionFailed = 412, + HTTP_StatusCode_PayloadTooLarge = 413, + HTTP_StatusCode_URITooLong = 414, + HTTP_StatusCode_UnsupportedMediaType = 415, + HTTP_StatusCode_RangeNotSatisfiable = 416, + HTTP_StatusCode_ExpectationFailed = 417, + HTTP_StatusCode_ImATeapot = 418, + HTTP_StatusCode_MisdirectedRequest = 421, + HTTP_StatusCode_UnprocessableContent = 422, + HTTP_StatusCode_Locked = 423, + HTTP_StatusCode_FailedDependency = 424, + HTTP_StatusCode_TooEarly = 425, + HTTP_StatusCode_UpgradeRequired = 426, + HTTP_StatusCode_PreconditionRequired = 428, + HTTP_StatusCode_TooManyRequests = 429, + HTTP_StatusCode_RequestHeaderFieldsTooLarge = 431, + HTTP_StatusCode_UnavailableForLegalReasons = 451, + + //- rjf: servor error responses + HTTP_StatusCode_FirstServerError = 500, + HTTP_StatusCode_LastServerError = 599, + HTTP_StatusCode_InternalServerError = 500, + HTTP_StatusCode_NotImplemented = 501, + HTTP_StatusCode_BadGateway = 502, + HTTP_StatusCode_ServiceUnavailable = 503, + HTTP_StatusCode_GatewayTimeout = 504, + HTTP_StatusCode_HTTPVersionNotSupported = 505, + HTTP_StatusCode_VariantAlsoNegotiates = 506, + HTTP_StatusCode_InsufficientStorage = 507, + HTTP_StatusCode_LoopDetected = 508, + HTTP_StatusCode_NotExtended = 510, + HTTP_StatusCode_NetworkAuthenticationRequired = 511, +} +HTTP_StatusCodeEnum; + +//////////////////////////////////////////////////////////////// +//~ rjf: Method Kinds + +typedef enum HTTP_Method +{ + HTTP_Method_Get, + HTTP_Method_Head, + HTTP_Method_Post, + HTTP_Method_Put, + HTTP_Method_Delete, + HTTP_Method_Connect, + HTTP_Method_Options, + HTTP_Method_Trace, + HTTP_Method_Patch, + HTTP_Method_COUNT +} +HTTP_Method; + +//////////////////////////////////////////////////////////////// +//~ rjf: Request Parameters Bundle + +typedef struct HTTP_RequestParams HTTP_RequestParams; +struct HTTP_RequestParams +{ + U64 id; + HTTP_Method method; + String8 url; + String8 body; + String8 user_agent; + String8 authorization; + String8 content_type; +}; + +//////////////////////////////////////////////////////////////// +//~ rjf: Response + +typedef struct HTTP_Response HTTP_Response; +struct HTTP_Response +{ + U64 id; + U64 off; + U64 off_opl; + B32 has_more; + HTTP_StatusCode code; + String8 body; +}; + +//////////////////////////////////////////////////////////////// +//~ rjf: Basic Type Functions + +internal HTTP_StatusKind http_status_kind_from_code(HTTP_StatusCode code); + +//////////////////////////////////////////////////////////////// +//~ rjf: @per_os_impl Top-Level Layer Calls + +internal void http_init(void); +internal void http_async_tick(void); + +//////////////////////////////////////////////////////////////// +//~ rjf: @per_os_impl I/O Ring Functions + +internal B32 http_push_request(GuardedRing *out_ring, HTTP_RequestParams *params, U64 endt_us); +internal B32 http_pop_response(Arena *arena, GuardedRing *out_ring, HTTP_Response *response_out, U64 endt_us); + +#endif // HTTP_H diff --git a/src/http/http_inc.c b/src/http/http_inc.c new file mode 100644 index 00000000..b8242b35 --- /dev/null +++ b/src/http/http_inc.c @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "http.c" +#if OS_WINDOWS +# include "win32/http/win32_http.c" +#else +# include "http_stub.c" +#endif diff --git a/src/http/http_inc.h b/src/http/http_inc.h new file mode 100644 index 00000000..a839a7f1 --- /dev/null +++ b/src/http/http_inc.h @@ -0,0 +1,14 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef HTTP_INC_H +#define HTTP_INC_H + +#include "http.h" +#if OS_WINDOWS +# include "win32/http/win32_http.h" +#else +# include "http_stub.h" +#endif + +#endif // HTTP_INC_H diff --git a/src/http/http_stub.c b/src/http/http_stub.c new file mode 100644 index 00000000..73db16a5 --- /dev/null +++ b/src/http/http_stub.c @@ -0,0 +1,23 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ rjf: @per_os_impl Top-Level Layer Calls + +internal void http_init(void){} +internal void http_async_tick(void){} + +//////////////////////////////////////////////////////////////// +//~ rjf: @per_os_impl I/O Ring Functions + +internal B32 +http_push_request(GuardedRing *out_ring, HTTP_RequestParams *params, U64 endt_us) +{ + return 0; +} + +internal B32 +http_pop_response(Arena *arena, GuardedRing *out_ring, HTTP_Response *response_out, U64 endt_us) +{ + return 0; +} diff --git a/src/os/gfx/stub/os_gfx_stub.h b/src/http/http_stub.h similarity index 59% rename from src/os/gfx/stub/os_gfx_stub.h rename to src/http/http_stub.h index 009f9802..d644b7d0 100644 --- a/src/os/gfx/stub/os_gfx_stub.h +++ b/src/http/http_stub.h @@ -1,7 +1,7 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_GFX_STUB_H -#define OS_GFX_STUB_H - -#endif // OS_GFX_STUB_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef HTTP_STUB_H +#define HTTP_STUB_H + +#endif // HTTP_STUB_H diff --git a/src/lib_raddbg_markup/raddbg_markup.h b/src/lib_raddbg_markup/raddbg_markup.h index dab7bdba..a12f64b8 100644 --- a/src/lib_raddbg_markup/raddbg_markup.h +++ b/src/lib_raddbg_markup/raddbg_markup.h @@ -22,8 +22,8 @@ #if !defined(RADDBG_MARKUP_STUBS) # define raddbg_is_attached(...) raddbg_is_attached__impl() # define raddbg_thread_id(...) raddbg_thread_id__impl() -# define raddbg_thread_name(fmt, ...) raddbg_thread_name__impl(raddbg_thread_id(), (fmt), __VA_ARGS__) -# define raddbg_thread_id_name(id, fmt, ...) raddbg_thread_name__impl((id), (fmt), __VA_ARGS__) +# define raddbg_thread_name(...) raddbg_thread_name__impl(raddbg_thread_id(), __VA_ARGS__) +# define raddbg_thread_id_name(id, ...) raddbg_thread_name__impl((id), __VA_ARGS__) # define raddbg_thread_color_u32(u32) raddbg_thread_color__impl(raddbg_thread_id(), (u32)) # define raddbg_thread_color_rgba(r, g, b, a) raddbg_thread_color__impl(raddbg_thread_id(), ((unsigned int)((r)*255) << 24) | ((unsigned int)((g)*255) << 16) | ((unsigned int)((b)*255) << 8) | ((unsigned int)(a)*255)) # define raddbg_thread_id_color_u32(id, u32) raddbg_thread_color__impl((id), (u32)) @@ -32,7 +32,7 @@ # define raddbg_break_if(expr, ...) ((expr) ? raddbg_break__impl() : (void)0) # define raddbg_watch(fmt, ...) raddbg_watch__impl((fmt), __VA_ARGS__) # define raddbg_pin(expr, ...) /* NOTE(rjf): inspected by debugger ui - does not change program execution */ -# define raddbg_log(fmt, ...) raddbg_log__impl((fmt), __VA_ARGS__) +# define raddbg_log(...) raddbg_log__impl(__VA_ARGS__) # define raddbg_entry_point(...) raddbg_exe_data char raddbg_gen_data_id()[] = ("entry_point: \"" #__VA_ARGS__ "\"") # define raddbg_type_view(type, ...) raddbg_exe_data char raddbg_gen_data_id()[] = ("type_view: {type: ```" #type "```, expr: ```" #__VA_ARGS__ "```}") # define raddbg_add_breakpoint(ptr, size, r, w, x) raddbg_add_or_remove_breakpoint__impl((ptr), (1), (size), (r), (w), (x)) diff --git a/src/lib_rdi/rdi.c b/src/lib_rdi/rdi.c index d60dc325..84f35ba9 100644 --- a/src/lib_rdi/rdi.c +++ b/src/lib_rdi/rdi.c @@ -1,342 +1,353 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ (R)AD (D)ebug (I)nfo Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_C -#define RDI_C - -RDI_U16 rdi_section_element_size_table[44] = -{ -sizeof(RDI_U8), -sizeof(RDI_TopLevelInfo), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_BinarySection), -sizeof(RDI_FilePathNode), -sizeof(RDI_SourceFile), -sizeof(RDI_LineTable), -sizeof(RDI_U64), -sizeof(RDI_Line), -sizeof(RDI_Column), -sizeof(RDI_SourceLineMap), -sizeof(RDI_U32), -sizeof(RDI_U32), -sizeof(RDI_U64), -sizeof(RDI_Unit), -sizeof(RDI_VMapEntry), -sizeof(RDI_TypeNode), -sizeof(RDI_UDT), -sizeof(RDI_Member), -sizeof(RDI_EnumMember), -sizeof(RDI_GlobalVariable), -sizeof(RDI_VMapEntry), -sizeof(RDI_ThreadVariable), -sizeof(RDI_Constant), -sizeof(RDI_Procedure), -sizeof(RDI_Scope), -sizeof(RDI_U64), -sizeof(RDI_VMapEntry), -sizeof(RDI_InlineSite), -sizeof(RDI_Local), -sizeof(RDI_LocationBlock), -sizeof(RDI_U8), -sizeof(RDI_U8), -sizeof(RDI_U32), -sizeof(RDI_MD5), -sizeof(RDI_SHA1), -sizeof(RDI_SHA256), -sizeof(RDI_U64), -sizeof(RDI_NameMap), -sizeof(RDI_NameMapBucket), -sizeof(RDI_NameMapNode), -sizeof(RDI_U8), -}; - -RDI_U16 rdi_eval_op_ctrlbits_table[53] = -{ -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 0), -RDI_EVAL_CTRLBITS(2, 0, 0), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(0, 0, 0), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(2, 0, 1), -RDI_EVAL_CTRLBITS(4, 0, 1), -RDI_EVAL_CTRLBITS(8, 0, 1), -RDI_EVAL_CTRLBITS(16, 0, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(2, 2, 1), -RDI_EVAL_CTRLBITS(2, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(2, 1, 1), -RDI_EVAL_CTRLBITS(1, 0, 1), -RDI_EVAL_CTRLBITS(0, 1, 0), -RDI_EVAL_CTRLBITS(1, 0, 0), -RDI_EVAL_CTRLBITS(1, 2, 1), -RDI_EVAL_CTRLBITS(1, 1, 1), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(4, 0, 0), -RDI_EVAL_CTRLBITS(8, 0, 0), -RDI_EVAL_CTRLBITS(0, 2, 2), -RDI_EVAL_CTRLBITS(0, 0, 0), -}; - -struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] = -{ -{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, -{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, -{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, -}; - -struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = -{ -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"", sizeof("")}, -{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, -{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, -{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, -{(RDI_U8 *)"", sizeof("")}, -}; - -RDI_PROC RDI_U64 -rdi_hash(RDI_U8 *ptr, RDI_U64 size) -{ - RDI_U64 result = 0; - if(size != 0) - { - result = 5381; - RDI_U8 *opl = ptr + size; - for(;ptr < opl; ptr += 1) - { - result = ((result << 5) + result) + *ptr; - } - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) -{ -RDI_U8 *result = 0; -*size_out = 0; -switch (kind) -{ -default:{}break; -case RDI_TypeKind_NULL: {result = (RDI_U8*)"NULL"; *size_out = sizeof("NULL")-1;}break; -case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; -case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; -case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; -case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; -case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; -case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; -case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; -case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; -case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; -case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; -case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; -case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; -case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; -case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; -case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; -case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; -case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; -case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; -case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; -case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; -case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; -case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; -case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; -case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; -case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; -case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; -case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; -case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; -case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; -case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; -case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; -case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; -case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; -case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; -case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; -case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; -case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; -case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; -case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; -case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; -case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; -case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; -case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; -case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; -case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; -case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; -case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; -case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; -case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; -case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; -case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; -case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; -case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; -case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; -case RDI_TypeKind_Count: {result = (RDI_U8*)"Count"; *size_out = sizeof("Count")-1;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_size_from_basic_type_kind(RDI_TypeKind kind) -{ -RDI_U32 result = 0; -switch(kind) -{ -default:{}break; -case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; -case RDI_TypeKind_HResult:{result = 4;}break; -case RDI_TypeKind_Char8:{result = 1;}break; -case RDI_TypeKind_Char16:{result = 2;}break; -case RDI_TypeKind_Char32:{result = 4;}break; -case RDI_TypeKind_UChar8:{result = 1;}break; -case RDI_TypeKind_UChar16:{result = 2;}break; -case RDI_TypeKind_UChar32:{result = 4;}break; -case RDI_TypeKind_U8:{result = 1;}break; -case RDI_TypeKind_U16:{result = 2;}break; -case RDI_TypeKind_U32:{result = 4;}break; -case RDI_TypeKind_U64:{result = 8;}break; -case RDI_TypeKind_U128:{result = 16;}break; -case RDI_TypeKind_U256:{result = 32;}break; -case RDI_TypeKind_U512:{result = 64;}break; -case RDI_TypeKind_S8:{result = 1;}break; -case RDI_TypeKind_S16:{result = 2;}break; -case RDI_TypeKind_S32:{result = 4;}break; -case RDI_TypeKind_S64:{result = 8;}break; -case RDI_TypeKind_S128:{result = 16;}break; -case RDI_TypeKind_S256:{result = 32;}break; -case RDI_TypeKind_S512:{result = 64;}break; -case RDI_TypeKind_Bool:{result = 1;}break; -case RDI_TypeKind_F16:{result = 2;}break; -case RDI_TypeKind_F32:{result = 4;}break; -case RDI_TypeKind_F32PP:{result = 4;}break; -case RDI_TypeKind_F48:{result = 6;}break; -case RDI_TypeKind_F64:{result = 8;}break; -case RDI_TypeKind_F80:{result = 10;}break; -case RDI_TypeKind_F128:{result = 16;}break; -case RDI_TypeKind_ComplexF32:{result = 8;}break; -case RDI_TypeKind_ComplexF64:{result = 16;}break; -case RDI_TypeKind_ComplexF80:{result = 20;}break; -case RDI_TypeKind_ComplexF128:{result = 32;}break; -} -return result; -} - -RDI_PROC RDI_U32 -rdi_addr_size_from_arch(RDI_Arch arch) -{ -RDI_U32 result = 0; -switch(arch) -{ -default:{}break; -case RDI_Arch_X86:{result = 4;}break; -case RDI_Arch_X64:{result = 8;}break; -} -return result; -} - -RDI_PROC RDI_EvalConversionKind -rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) -{ - RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; - return k; -} - -RDI_PROC RDI_S32 -rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) -{ - RDI_S32 result = 0; - switch(op) - { - case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: - case RDI_EvalOp_Mul: case RDI_EvalOp_Div: - case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: - case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: - case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: - { - if(group != RDI_EvalTypeGroup_Other) - { - result = 1; - } - }break; - case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: - case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: - case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: - case RDI_EvalOp_LogOr: - { - if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) - { - result = 1; - } - }break; - } - return result; -} - -RDI_PROC RDI_U8 * -rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) -{ - *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; - return rdi_eval_conversion_kind_message_string_table[kind].str; -} - -RDI_PROC RDI_SectionKind -rdi_section_kind_from_checksum_kind(RDI_ChecksumKind kind) -{ -RDI_SectionKind result = 0; -switch(kind) -{ -default:{}break; -case RDI_ChecksumKind_NULL:{result = RDI_SectionKind_NULL;}break; -case RDI_ChecksumKind_MD5:{result = RDI_SectionKind_MD5Checksums;}break; -case RDI_ChecksumKind_SHA1:{result = RDI_SectionKind_SHA1Checksums;}break; -case RDI_ChecksumKind_SHA256:{result = RDI_SectionKind_SHA256Checksums;}break; -case RDI_ChecksumKind_Timestamp:{result = RDI_SectionKind_Timestamps;}break; -case RDI_ChecksumKind_COUNT:{result = RDI_SectionKind_NULL;}break; -} -return result; -} - -#endif // RDI_C +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_C +#define RDI_C + +RDI_U16 rdi_section_element_size_table[44] = +{ +sizeof(RDI_U8), +sizeof(RDI_TopLevelInfo), +sizeof(RDI_U8), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_BinarySection), +sizeof(RDI_FilePathNode), +sizeof(RDI_SourceFile), +sizeof(RDI_LineTable), +sizeof(RDI_U64), +sizeof(RDI_Line), +sizeof(RDI_Column), +sizeof(RDI_SourceLineMap), +sizeof(RDI_U32), +sizeof(RDI_U32), +sizeof(RDI_U64), +sizeof(RDI_Unit), +sizeof(RDI_VMapEntry), +sizeof(RDI_Namespace), +sizeof(RDI_TypeNode), +sizeof(RDI_UDT), +sizeof(RDI_Member), +sizeof(RDI_EnumMember), +sizeof(RDI_Scope), +sizeof(RDI_U64), +sizeof(RDI_VMapEntry), +sizeof(RDI_InlineSite), +sizeof(RDI_Symbol), +sizeof(RDI_VMapEntry), +sizeof(RDI_Symbol), +sizeof(RDI_Symbol), +sizeof(RDI_Symbol), +sizeof(RDI_Symbol), +sizeof(RDI_U8), +sizeof(RDI_U8), +sizeof(RDI_LocationSetElement), +sizeof(RDI_MD5), +sizeof(RDI_SHA1), +sizeof(RDI_SHA256), +sizeof(RDI_U64), +sizeof(RDI_NameMap), +sizeof(RDI_NameMapBucket), +sizeof(RDI_NameMapNode), +sizeof(RDI_U8), +}; + +RDI_U16 rdi_eval_op_ctrlbits_table[54] = +{ +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(2, 1, 0), +RDI_EVAL_CTRLBITS(2, 0, 0), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(0, 0, 0), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(2, 0, 1), +RDI_EVAL_CTRLBITS(4, 0, 1), +RDI_EVAL_CTRLBITS(8, 0, 1), +RDI_EVAL_CTRLBITS(16, 0, 1), +RDI_EVAL_CTRLBITS(32, 0, 1), +RDI_EVAL_CTRLBITS(64, 0, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 2, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(2, 1, 1), +RDI_EVAL_CTRLBITS(1, 0, 1), +RDI_EVAL_CTRLBITS(0, 1, 0), +RDI_EVAL_CTRLBITS(1, 2, 1), +RDI_EVAL_CTRLBITS(1, 1, 1), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(4, 0, 0), +RDI_EVAL_CTRLBITS(8, 0, 0), +RDI_EVAL_CTRLBITS(0, 2, 2), +RDI_EVAL_CTRLBITS(0, 0, 1), +RDI_EVAL_CTRLBITS(0, 0, 0), +}; + +struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[8] = +{ +{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}}, +{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}}, +}; + +struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] = +{ +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"", sizeof("")}, +{(RDI_U8 *)"Cannot convert between these types.", sizeof("Cannot convert between these types.")}, +{(RDI_U8 *)"Cannot convert to this type.", sizeof("Cannot convert to this type.")}, +{(RDI_U8 *)"Cannot convert this type.", sizeof("Cannot convert this type.")}, +{(RDI_U8 *)"", sizeof("")}, +}; + +RDI_PROC RDI_U64 +rdi_hash(RDI_U8 *ptr, RDI_U64 size) +{ + RDI_U64 result = 0; + if(size != 0) + { + result = 5381; + RDI_U8 *opl = ptr + size; + for(;ptr < opl; ptr += 1) + { + result = ((result << 5) + result) + *ptr; + } + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out) +{ +RDI_U8 *result = 0; +*size_out = 0; +switch (kind) +{ +default:{}break; +case RDI_TypeKind_Void: {result = (RDI_U8*)"Void"; *size_out = sizeof("Void")-1;}break; +case RDI_TypeKind_Handle: {result = (RDI_U8*)"Handle"; *size_out = sizeof("Handle")-1;}break; +case RDI_TypeKind_HResult: {result = (RDI_U8*)"HResult"; *size_out = sizeof("HResult")-1;}break; +case RDI_TypeKind_Char8: {result = (RDI_U8*)"Char8"; *size_out = sizeof("Char8")-1;}break; +case RDI_TypeKind_Char16: {result = (RDI_U8*)"Char16"; *size_out = sizeof("Char16")-1;}break; +case RDI_TypeKind_Char32: {result = (RDI_U8*)"Char32"; *size_out = sizeof("Char32")-1;}break; +case RDI_TypeKind_UChar8: {result = (RDI_U8*)"UChar8"; *size_out = sizeof("UChar8")-1;}break; +case RDI_TypeKind_UChar16: {result = (RDI_U8*)"UChar16"; *size_out = sizeof("UChar16")-1;}break; +case RDI_TypeKind_UChar32: {result = (RDI_U8*)"UChar32"; *size_out = sizeof("UChar32")-1;}break; +case RDI_TypeKind_U8: {result = (RDI_U8*)"U8"; *size_out = sizeof("U8")-1;}break; +case RDI_TypeKind_U16: {result = (RDI_U8*)"U16"; *size_out = sizeof("U16")-1;}break; +case RDI_TypeKind_U32: {result = (RDI_U8*)"U32"; *size_out = sizeof("U32")-1;}break; +case RDI_TypeKind_U64: {result = (RDI_U8*)"U64"; *size_out = sizeof("U64")-1;}break; +case RDI_TypeKind_U128: {result = (RDI_U8*)"U128"; *size_out = sizeof("U128")-1;}break; +case RDI_TypeKind_U256: {result = (RDI_U8*)"U256"; *size_out = sizeof("U256")-1;}break; +case RDI_TypeKind_U512: {result = (RDI_U8*)"U512"; *size_out = sizeof("U512")-1;}break; +case RDI_TypeKind_S8: {result = (RDI_U8*)"S8"; *size_out = sizeof("S8")-1;}break; +case RDI_TypeKind_S16: {result = (RDI_U8*)"S16"; *size_out = sizeof("S16")-1;}break; +case RDI_TypeKind_S32: {result = (RDI_U8*)"S32"; *size_out = sizeof("S32")-1;}break; +case RDI_TypeKind_S64: {result = (RDI_U8*)"S64"; *size_out = sizeof("S64")-1;}break; +case RDI_TypeKind_S128: {result = (RDI_U8*)"S128"; *size_out = sizeof("S128")-1;}break; +case RDI_TypeKind_S256: {result = (RDI_U8*)"S256"; *size_out = sizeof("S256")-1;}break; +case RDI_TypeKind_S512: {result = (RDI_U8*)"S512"; *size_out = sizeof("S512")-1;}break; +case RDI_TypeKind_Bool: {result = (RDI_U8*)"Bool"; *size_out = sizeof("Bool")-1;}break; +case RDI_TypeKind_BF16: {result = (RDI_U8*)"BF16"; *size_out = sizeof("BF16")-1;}break; +case RDI_TypeKind_F16: {result = (RDI_U8*)"F16"; *size_out = sizeof("F16")-1;}break; +case RDI_TypeKind_F32: {result = (RDI_U8*)"F32"; *size_out = sizeof("F32")-1;}break; +case RDI_TypeKind_F32PP: {result = (RDI_U8*)"F32PP"; *size_out = sizeof("F32PP")-1;}break; +case RDI_TypeKind_F48: {result = (RDI_U8*)"F48"; *size_out = sizeof("F48")-1;}break; +case RDI_TypeKind_F64: {result = (RDI_U8*)"F64"; *size_out = sizeof("F64")-1;}break; +case RDI_TypeKind_F80: {result = (RDI_U8*)"F80"; *size_out = sizeof("F80")-1;}break; +case RDI_TypeKind_F96: {result = (RDI_U8*)"F96"; *size_out = sizeof("F96")-1;}break; +case RDI_TypeKind_F128: {result = (RDI_U8*)"F128"; *size_out = sizeof("F128")-1;}break; +case RDI_TypeKind_ComplexF32: {result = (RDI_U8*)"ComplexF32"; *size_out = sizeof("ComplexF32")-1;}break; +case RDI_TypeKind_ComplexF64: {result = (RDI_U8*)"ComplexF64"; *size_out = sizeof("ComplexF64")-1;}break; +case RDI_TypeKind_ComplexF80: {result = (RDI_U8*)"ComplexF80"; *size_out = sizeof("ComplexF80")-1;}break; +case RDI_TypeKind_ComplexF128: {result = (RDI_U8*)"ComplexF128"; *size_out = sizeof("ComplexF128")-1;}break; +case RDI_TypeKind_Decimal32: {result = (RDI_U8*)"Decimal32"; *size_out = sizeof("Decimal32")-1;}break; +case RDI_TypeKind_Decimal64: {result = (RDI_U8*)"Decimal64"; *size_out = sizeof("Decimal64")-1;}break; +case RDI_TypeKind_Decimal128: {result = (RDI_U8*)"Decimal128"; *size_out = sizeof("Decimal128")-1;}break; +case RDI_TypeKind_Variadic: {result = (RDI_U8*)"Variadic"; *size_out = sizeof("Variadic")-1;}break; +case RDI_TypeKind_Modifier: {result = (RDI_U8*)"Modifier"; *size_out = sizeof("Modifier")-1;}break; +case RDI_TypeKind_Ptr: {result = (RDI_U8*)"Ptr"; *size_out = sizeof("Ptr")-1;}break; +case RDI_TypeKind_LRef: {result = (RDI_U8*)"LRef"; *size_out = sizeof("LRef")-1;}break; +case RDI_TypeKind_RRef: {result = (RDI_U8*)"RRef"; *size_out = sizeof("RRef")-1;}break; +case RDI_TypeKind_Array: {result = (RDI_U8*)"Array"; *size_out = sizeof("Array")-1;}break; +case RDI_TypeKind_Function: {result = (RDI_U8*)"Function"; *size_out = sizeof("Function")-1;}break; +case RDI_TypeKind_Method: {result = (RDI_U8*)"Method"; *size_out = sizeof("Method")-1;}break; +case RDI_TypeKind_MemberPtr: {result = (RDI_U8*)"MemberPtr"; *size_out = sizeof("MemberPtr")-1;}break; +case RDI_TypeKind_Struct: {result = (RDI_U8*)"Struct"; *size_out = sizeof("Struct")-1;}break; +case RDI_TypeKind_Class: {result = (RDI_U8*)"Class"; *size_out = sizeof("Class")-1;}break; +case RDI_TypeKind_Union: {result = (RDI_U8*)"Union"; *size_out = sizeof("Union")-1;}break; +case RDI_TypeKind_Enum: {result = (RDI_U8*)"Enum"; *size_out = sizeof("Enum")-1;}break; +case RDI_TypeKind_Alias: {result = (RDI_U8*)"Alias"; *size_out = sizeof("Alias")-1;}break; +case RDI_TypeKind_IncompleteStruct: {result = (RDI_U8*)"IncompleteStruct"; *size_out = sizeof("IncompleteStruct")-1;}break; +case RDI_TypeKind_IncompleteUnion: {result = (RDI_U8*)"IncompleteUnion"; *size_out = sizeof("IncompleteUnion")-1;}break; +case RDI_TypeKind_IncompleteClass: {result = (RDI_U8*)"IncompleteClass"; *size_out = sizeof("IncompleteClass")-1;}break; +case RDI_TypeKind_IncompleteEnum: {result = (RDI_U8*)"IncompleteEnum"; *size_out = sizeof("IncompleteEnum")-1;}break; +case RDI_TypeKind_Bitfield: {result = (RDI_U8*)"Bitfield"; *size_out = sizeof("Bitfield")-1;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_size_from_basic_type_kind(RDI_TypeKind kind) +{ +RDI_U32 result = 0; +switch(kind) +{ +default:{}break; +case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break; +case RDI_TypeKind_HResult:{result = 4;}break; +case RDI_TypeKind_Char8:{result = 1;}break; +case RDI_TypeKind_Char16:{result = 2;}break; +case RDI_TypeKind_Char32:{result = 4;}break; +case RDI_TypeKind_UChar8:{result = 1;}break; +case RDI_TypeKind_UChar16:{result = 2;}break; +case RDI_TypeKind_UChar32:{result = 4;}break; +case RDI_TypeKind_U8:{result = 1;}break; +case RDI_TypeKind_U16:{result = 2;}break; +case RDI_TypeKind_U32:{result = 4;}break; +case RDI_TypeKind_U64:{result = 8;}break; +case RDI_TypeKind_U128:{result = 16;}break; +case RDI_TypeKind_U256:{result = 32;}break; +case RDI_TypeKind_U512:{result = 64;}break; +case RDI_TypeKind_S8:{result = 1;}break; +case RDI_TypeKind_S16:{result = 2;}break; +case RDI_TypeKind_S32:{result = 4;}break; +case RDI_TypeKind_S64:{result = 8;}break; +case RDI_TypeKind_S128:{result = 16;}break; +case RDI_TypeKind_S256:{result = 32;}break; +case RDI_TypeKind_S512:{result = 64;}break; +case RDI_TypeKind_Bool:{result = 1;}break; +case RDI_TypeKind_BF16:{result = 2;}break; +case RDI_TypeKind_F16:{result = 2;}break; +case RDI_TypeKind_F32:{result = 4;}break; +case RDI_TypeKind_F32PP:{result = 4;}break; +case RDI_TypeKind_F48:{result = 6;}break; +case RDI_TypeKind_F64:{result = 8;}break; +case RDI_TypeKind_F80:{result = 10;}break; +case RDI_TypeKind_F96:{result = 12;}break; +case RDI_TypeKind_F128:{result = 16;}break; +case RDI_TypeKind_ComplexF32:{result = 8;}break; +case RDI_TypeKind_ComplexF64:{result = 16;}break; +case RDI_TypeKind_ComplexF80:{result = 20;}break; +case RDI_TypeKind_ComplexF128:{result = 32;}break; +case RDI_TypeKind_Decimal32:{result = 4;}break; +case RDI_TypeKind_Decimal64:{result = 8;}break; +case RDI_TypeKind_Decimal128:{result = 16;}break; +} +return result; +} + +RDI_PROC RDI_U32 +rdi_addr_size_from_arch(RDI_Arch arch) +{ +RDI_U32 result = 0; +switch(arch) +{ +default:{}break; +case RDI_Arch_X64:{result = 8;}break; +case RDI_Arch_X86:{result = 4;}break; +} +return result; +} + +RDI_PROC RDI_EvalConversionKind +rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out) +{ + RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out]; + return k; +} + +RDI_PROC RDI_S32 +rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group) +{ + RDI_S32 result = 0; + switch(op) + { + case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub: + case RDI_EvalOp_Mul: case RDI_EvalOp_Div: + case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq: + case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq: + case RDI_EvalOp_Less:case RDI_EvalOp_Grtr: + { + if(group != RDI_EvalTypeGroup_Other) + { + result = 1; + } + }break; + case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift: + case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor: + case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd: + case RDI_EvalOp_LogOr: + { + if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U) + { + result = 1; + } + }break; + } + return result; +} + +RDI_PROC RDI_U8 * +rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out) +{ + *size_out = rdi_eval_conversion_kind_message_string_table[kind].size; + return rdi_eval_conversion_kind_message_string_table[kind].str; +} + +RDI_PROC RDI_SectionKind +rdi_section_kind_from_checksum_kind(RDI_ChecksumKind kind) +{ +RDI_SectionKind result = 0; +switch(kind) +{ +default:{}break; +case RDI_ChecksumKind_NULL:{result = RDI_SectionKind_NULL;}break; +case RDI_ChecksumKind_MD5:{result = RDI_SectionKind_MD5Checksums;}break; +case RDI_ChecksumKind_SHA1:{result = RDI_SectionKind_SHA1Checksums;}break; +case RDI_ChecksumKind_SHA256:{result = RDI_SectionKind_SHA256Checksums;}break; +case RDI_ChecksumKind_Timestamp:{result = RDI_SectionKind_Timestamps;}break; +case RDI_ChecksumKind_COUNT:{result = RDI_SectionKind_NULL;}break; +} +return result; +} + +#endif // RDI_C diff --git a/src/lib_rdi/rdi.h b/src/lib_rdi/rdi.h index 7096399b..0cdf1f3c 100644 --- a/src/lib_rdi/rdi.h +++ b/src/lib_rdi/rdi.h @@ -1,1635 +1,1485 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////////////////////////////////////// -//~ (R)AD (D)ebug (I)nfo Format Library -// -// Defines standard RDI debug information format types and -// functions. - -#ifndef RDI_H -#define RDI_H - -//////////////////////////////////////////////////////////////// -//~ Overridable Procedure Decoration - -#if !defined(RDI_PROC) -# define RDI_PROC static -#endif - -//////////////////////////////////////////////////////////////// -//~ Overridable Basic Integer Types - -#if !defined(RDI_U8) -# define RDI_U8 RDI_U8 -# define RDI_U16 RDI_U16 -# define RDI_U32 RDI_U32 -# define RDI_U64 RDI_U64 -# define RDI_S8 RDI_S8 -# define RDI_S16 RDI_S16 -# define RDI_S32 RDI_S32 -# define RDI_S64 RDI_S64 -#include -typedef uint8_t RDI_U8; -typedef uint16_t RDI_U16; -typedef uint32_t RDI_U32; -typedef uint64_t RDI_U64; -typedef int8_t RDI_S8; -typedef int16_t RDI_S16; -typedef int32_t RDI_S32; -typedef int64_t RDI_S64; -#endif - -//////////////////////////////////////////////////////////////// -//~ Checksum Types - -typedef union RDI_MD5 RDI_MD5; -union RDI_MD5 {RDI_U8 u8[16]; RDI_U64 u64[2];}; - -typedef union RDI_SHA1 RDI_SHA1; -union RDI_SHA1 {RDI_U8 u8[20];}; - -typedef union RDI_SHA256 RDI_SHA256; -union RDI_SHA256 {RDI_U8 u8[32]; RDI_U64 u64[4];}; - -typedef union RDI_GUID RDI_GUID; -union RDI_GUID {RDI_U8 u8[16]; RDI_U64 u64[2];}; - -//////////////////////////////////////////////////////////////// -//~ Overridable Enabling/Disabling Of Table Index Typechecking - -#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) -# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 -#endif - -//////////////////////////////////////////////////////////////// -//~ Format Constants - -// "raddbg\0\0" -#define RDI_MAGIC_CONSTANT 0x0000676264646172 -#define RDI_ENCODING_VERSION 17 - -//////////////////////////////////////////////////////////////// -//~ Format Types & Functions - -typedef RDI_U32 RDI_SectionKind; -typedef enum RDI_SectionKindEnum -{ -RDI_SectionKind_NULL = 0x0000, -RDI_SectionKind_TopLevelInfo = 0x0001, -RDI_SectionKind_StringData = 0x0002, -RDI_SectionKind_StringTable = 0x0003, -RDI_SectionKind_IndexRuns = 0x0004, -RDI_SectionKind_BinarySections = 0x0005, -RDI_SectionKind_FilePathNodes = 0x0006, -RDI_SectionKind_SourceFiles = 0x0007, -RDI_SectionKind_LineTables = 0x0008, -RDI_SectionKind_LineInfoVOffs = 0x0009, -RDI_SectionKind_LineInfoLines = 0x000A, -RDI_SectionKind_LineInfoColumns = 0x000B, -RDI_SectionKind_SourceLineMaps = 0x000C, -RDI_SectionKind_SourceLineMapNumbers = 0x000D, -RDI_SectionKind_SourceLineMapRanges = 0x000E, -RDI_SectionKind_SourceLineMapVOffs = 0x000F, -RDI_SectionKind_Units = 0x0010, -RDI_SectionKind_UnitVMap = 0x0011, -RDI_SectionKind_TypeNodes = 0x0012, -RDI_SectionKind_UDTs = 0x0013, -RDI_SectionKind_Members = 0x0014, -RDI_SectionKind_EnumMembers = 0x0015, -RDI_SectionKind_GlobalVariables = 0x0016, -RDI_SectionKind_GlobalVMap = 0x0017, -RDI_SectionKind_ThreadVariables = 0x0018, -RDI_SectionKind_Constants = 0x0019, -RDI_SectionKind_Procedures = 0x001A, -RDI_SectionKind_Scopes = 0x001B, -RDI_SectionKind_ScopeVOffData = 0x001C, -RDI_SectionKind_ScopeVMap = 0x001D, -RDI_SectionKind_InlineSites = 0x001E, -RDI_SectionKind_Locals = 0x001F, -RDI_SectionKind_LocationBlocks = 0x0020, -RDI_SectionKind_LocationData = 0x0021, -RDI_SectionKind_ConstantValueData = 0x0022, -RDI_SectionKind_ConstantValueTable = 0x0023, -RDI_SectionKind_MD5Checksums = 0x0024, -RDI_SectionKind_SHA1Checksums = 0x0025, -RDI_SectionKind_SHA256Checksums = 0x0026, -RDI_SectionKind_Timestamps = 0x0027, -RDI_SectionKind_NameMaps = 0x0028, -RDI_SectionKind_NameMapBuckets = 0x0029, -RDI_SectionKind_NameMapNodes = 0x002A, -RDI_SectionKind_COUNT = 0x002B, -} RDI_SectionKindEnum; - -typedef RDI_U32 RDI_SectionEncoding; -typedef enum RDI_SectionEncodingEnum -{ -RDI_SectionEncoding_Unpacked = 0, -RDI_SectionEncoding_LZB = 1, -} RDI_SectionEncodingEnum; - -typedef RDI_U32 RDI_Arch; -typedef enum RDI_ArchEnum -{ -RDI_Arch_NULL = 0, -RDI_Arch_X86 = 1, -RDI_Arch_X64 = 2, -} RDI_ArchEnum; - -typedef RDI_U8 RDI_RegCode; -typedef enum RDI_RegCodeEnum -{ -RDI_RegCode_nil, -} RDI_RegCodeEnum; - -typedef RDI_U8 RDI_RegCodeX86; -typedef enum RDI_RegCodeX86Enum -{ -RDI_RegCodeX86_nil = 0, -RDI_RegCodeX86_eax = 1, -RDI_RegCodeX86_ecx = 2, -RDI_RegCodeX86_edx = 3, -RDI_RegCodeX86_ebx = 4, -RDI_RegCodeX86_esp = 5, -RDI_RegCodeX86_ebp = 6, -RDI_RegCodeX86_esi = 7, -RDI_RegCodeX86_edi = 8, -RDI_RegCodeX86_fsbase = 9, -RDI_RegCodeX86_gsbase = 10, -RDI_RegCodeX86_eflags = 11, -RDI_RegCodeX86_eip = 12, -RDI_RegCodeX86_dr0 = 13, -RDI_RegCodeX86_dr1 = 14, -RDI_RegCodeX86_dr2 = 15, -RDI_RegCodeX86_dr3 = 16, -RDI_RegCodeX86_dr4 = 17, -RDI_RegCodeX86_dr5 = 18, -RDI_RegCodeX86_dr6 = 19, -RDI_RegCodeX86_dr7 = 20, -RDI_RegCodeX86_fpr0 = 21, -RDI_RegCodeX86_fpr1 = 22, -RDI_RegCodeX86_fpr2 = 23, -RDI_RegCodeX86_fpr3 = 24, -RDI_RegCodeX86_fpr4 = 25, -RDI_RegCodeX86_fpr5 = 26, -RDI_RegCodeX86_fpr6 = 27, -RDI_RegCodeX86_fpr7 = 28, -RDI_RegCodeX86_st0 = 29, -RDI_RegCodeX86_st1 = 30, -RDI_RegCodeX86_st2 = 31, -RDI_RegCodeX86_st3 = 32, -RDI_RegCodeX86_st4 = 33, -RDI_RegCodeX86_st5 = 34, -RDI_RegCodeX86_st6 = 35, -RDI_RegCodeX86_st7 = 36, -RDI_RegCodeX86_fcw = 37, -RDI_RegCodeX86_fsw = 38, -RDI_RegCodeX86_ftw = 39, -RDI_RegCodeX86_fop = 40, -RDI_RegCodeX86_fcs = 41, -RDI_RegCodeX86_fds = 42, -RDI_RegCodeX86_fip = 43, -RDI_RegCodeX86_fdp = 44, -RDI_RegCodeX86_mxcsr = 45, -RDI_RegCodeX86_mxcsr_mask = 46, -RDI_RegCodeX86_ss = 47, -RDI_RegCodeX86_cs = 48, -RDI_RegCodeX86_ds = 49, -RDI_RegCodeX86_es = 50, -RDI_RegCodeX86_fs = 51, -RDI_RegCodeX86_gs = 52, -RDI_RegCodeX86_ymm0 = 53, -RDI_RegCodeX86_ymm1 = 54, -RDI_RegCodeX86_ymm2 = 55, -RDI_RegCodeX86_ymm3 = 56, -RDI_RegCodeX86_ymm4 = 57, -RDI_RegCodeX86_ymm5 = 58, -RDI_RegCodeX86_ymm6 = 59, -RDI_RegCodeX86_ymm7 = 60, -} RDI_RegCodeX86Enum; - -typedef RDI_U8 RDI_RegCodeX64; -typedef enum RDI_RegCodeX64Enum -{ -RDI_RegCodeX64_nil = 0, -RDI_RegCodeX64_rax = 1, -RDI_RegCodeX64_rcx = 2, -RDI_RegCodeX64_rdx = 3, -RDI_RegCodeX64_rbx = 4, -RDI_RegCodeX64_rsp = 5, -RDI_RegCodeX64_rbp = 6, -RDI_RegCodeX64_rsi = 7, -RDI_RegCodeX64_rdi = 8, -RDI_RegCodeX64_r8 = 9, -RDI_RegCodeX64_r9 = 10, -RDI_RegCodeX64_r10 = 11, -RDI_RegCodeX64_r11 = 12, -RDI_RegCodeX64_r12 = 13, -RDI_RegCodeX64_r13 = 14, -RDI_RegCodeX64_r14 = 15, -RDI_RegCodeX64_r15 = 16, -RDI_RegCodeX64_es = 17, -RDI_RegCodeX64_cs = 18, -RDI_RegCodeX64_ss = 19, -RDI_RegCodeX64_ds = 20, -RDI_RegCodeX64_fs = 21, -RDI_RegCodeX64_gs = 22, -RDI_RegCodeX64_rip = 23, -RDI_RegCodeX64_rflags = 24, -RDI_RegCodeX64_dr0 = 25, -RDI_RegCodeX64_dr1 = 26, -RDI_RegCodeX64_dr2 = 27, -RDI_RegCodeX64_dr3 = 28, -RDI_RegCodeX64_dr4 = 29, -RDI_RegCodeX64_dr5 = 30, -RDI_RegCodeX64_dr6 = 31, -RDI_RegCodeX64_dr7 = 32, -RDI_RegCodeX64_st0 = 33, -RDI_RegCodeX64_st1 = 34, -RDI_RegCodeX64_st2 = 35, -RDI_RegCodeX64_st3 = 36, -RDI_RegCodeX64_st4 = 37, -RDI_RegCodeX64_st5 = 38, -RDI_RegCodeX64_st6 = 39, -RDI_RegCodeX64_st7 = 40, -RDI_RegCodeX64_fpr0 = 41, -RDI_RegCodeX64_fpr1 = 42, -RDI_RegCodeX64_fpr2 = 43, -RDI_RegCodeX64_fpr3 = 44, -RDI_RegCodeX64_fpr4 = 45, -RDI_RegCodeX64_fpr5 = 46, -RDI_RegCodeX64_fpr6 = 47, -RDI_RegCodeX64_fpr7 = 48, -RDI_RegCodeX64_zmm0 = 49, -RDI_RegCodeX64_zmm1 = 50, -RDI_RegCodeX64_zmm2 = 51, -RDI_RegCodeX64_zmm3 = 52, -RDI_RegCodeX64_zmm4 = 53, -RDI_RegCodeX64_zmm5 = 54, -RDI_RegCodeX64_zmm6 = 55, -RDI_RegCodeX64_zmm7 = 56, -RDI_RegCodeX64_zmm8 = 57, -RDI_RegCodeX64_zmm9 = 58, -RDI_RegCodeX64_zmm10 = 59, -RDI_RegCodeX64_zmm11 = 60, -RDI_RegCodeX64_zmm12 = 61, -RDI_RegCodeX64_zmm13 = 62, -RDI_RegCodeX64_zmm14 = 63, -RDI_RegCodeX64_zmm15 = 64, -RDI_RegCodeX64_zmm16 = 65, -RDI_RegCodeX64_zmm17 = 66, -RDI_RegCodeX64_zmm18 = 67, -RDI_RegCodeX64_zmm19 = 68, -RDI_RegCodeX64_zmm20 = 69, -RDI_RegCodeX64_zmm21 = 70, -RDI_RegCodeX64_zmm22 = 71, -RDI_RegCodeX64_zmm23 = 72, -RDI_RegCodeX64_zmm24 = 73, -RDI_RegCodeX64_zmm25 = 74, -RDI_RegCodeX64_zmm26 = 75, -RDI_RegCodeX64_zmm27 = 76, -RDI_RegCodeX64_zmm28 = 77, -RDI_RegCodeX64_zmm29 = 78, -RDI_RegCodeX64_zmm30 = 79, -RDI_RegCodeX64_zmm31 = 80, -RDI_RegCodeX64_k0 = 81, -RDI_RegCodeX64_k1 = 82, -RDI_RegCodeX64_k2 = 83, -RDI_RegCodeX64_k3 = 84, -RDI_RegCodeX64_k4 = 85, -RDI_RegCodeX64_k5 = 86, -RDI_RegCodeX64_k6 = 87, -RDI_RegCodeX64_k7 = 88, -RDI_RegCodeX64_mxcsr = 89, -RDI_RegCodeX64_fsbase = 90, -RDI_RegCodeX64_gsbase = 91, -RDI_RegCodeX64_fcw = 92, -RDI_RegCodeX64_fsw = 93, -RDI_RegCodeX64_ftw = 94, -RDI_RegCodeX64_fop = 95, -RDI_RegCodeX64_fcs = 96, -RDI_RegCodeX64_fds = 97, -RDI_RegCodeX64_fip = 98, -RDI_RegCodeX64_fdp = 99, -RDI_RegCodeX64_mxcsr_mask = 100, -RDI_RegCodeX64_cetmsr = 101, -RDI_RegCodeX64_cetssp = 102, -} RDI_RegCodeX64Enum; - -typedef RDI_U32 RDI_BinarySectionFlags; -typedef enum RDI_BinarySectionFlagsEnum -{ -RDI_BinarySectionFlag_Read = 1<<0, -RDI_BinarySectionFlag_Write = 1<<1, -RDI_BinarySectionFlag_Execute = 1<<2, -} RDI_BinarySectionFlagsEnum; - -typedef RDI_U32 RDI_ChecksumKind; -typedef enum RDI_ChecksumKindEnum -{ -RDI_ChecksumKind_NULL = 0, -RDI_ChecksumKind_MD5 = 1, -RDI_ChecksumKind_SHA1 = 2, -RDI_ChecksumKind_SHA256 = 3, -RDI_ChecksumKind_Timestamp = 4, -RDI_ChecksumKind_COUNT = 5, -} RDI_ChecksumKindEnum; - -typedef RDI_U32 RDI_Language; -typedef enum RDI_LanguageEnum -{ -RDI_Language_NULL = 0, -RDI_Language_C = 1, -RDI_Language_CPlusPlus = 2, -RDI_Language_Masm = 3, -RDI_Language_COUNT = 4, -} RDI_LanguageEnum; - -typedef RDI_U16 RDI_TypeKind; -typedef enum RDI_TypeKindEnum -{ -RDI_TypeKind_NULL = 0x0000, -RDI_TypeKind_Void = 0x0001, -RDI_TypeKind_Handle = 0x0002, -RDI_TypeKind_HResult = 0x0003, -RDI_TypeKind_Char8 = 0x0004, -RDI_TypeKind_Char16 = 0x0005, -RDI_TypeKind_Char32 = 0x0006, -RDI_TypeKind_UChar8 = 0x0007, -RDI_TypeKind_UChar16 = 0x0008, -RDI_TypeKind_UChar32 = 0x0009, -RDI_TypeKind_U8 = 0x000A, -RDI_TypeKind_U16 = 0x000B, -RDI_TypeKind_U32 = 0x000C, -RDI_TypeKind_U64 = 0x000D, -RDI_TypeKind_U128 = 0x000E, -RDI_TypeKind_U256 = 0x000F, -RDI_TypeKind_U512 = 0x0010, -RDI_TypeKind_S8 = 0x0011, -RDI_TypeKind_S16 = 0x0012, -RDI_TypeKind_S32 = 0x0013, -RDI_TypeKind_S64 = 0x0014, -RDI_TypeKind_S128 = 0x0015, -RDI_TypeKind_S256 = 0x0016, -RDI_TypeKind_S512 = 0x0017, -RDI_TypeKind_Bool = 0x0018, -RDI_TypeKind_F16 = 0x0019, -RDI_TypeKind_F32 = 0x001A, -RDI_TypeKind_F32PP = 0x001B, -RDI_TypeKind_F48 = 0x001C, -RDI_TypeKind_F64 = 0x001D, -RDI_TypeKind_F80 = 0x001E, -RDI_TypeKind_F128 = 0x001F, -RDI_TypeKind_ComplexF32 = 0x0020, -RDI_TypeKind_ComplexF64 = 0x0021, -RDI_TypeKind_ComplexF80 = 0x0022, -RDI_TypeKind_ComplexF128 = 0x0023, -RDI_TypeKind_Modifier = 0x1000, -RDI_TypeKind_Ptr = 0x1001, -RDI_TypeKind_LRef = 0x1002, -RDI_TypeKind_RRef = 0x1003, -RDI_TypeKind_Array = 0x1004, -RDI_TypeKind_Function = 0x1005, -RDI_TypeKind_Method = 0x1006, -RDI_TypeKind_MemberPtr = 0x1007, -RDI_TypeKind_Struct = 0x2000, -RDI_TypeKind_Class = 0x2001, -RDI_TypeKind_Union = 0x2002, -RDI_TypeKind_Enum = 0x2003, -RDI_TypeKind_Alias = 0x2004, -RDI_TypeKind_IncompleteStruct = 0x2005, -RDI_TypeKind_IncompleteUnion = 0x2006, -RDI_TypeKind_IncompleteClass = 0x2007, -RDI_TypeKind_IncompleteEnum = 0x2008, -RDI_TypeKind_Bitfield = 0xF000, -RDI_TypeKind_Variadic = 0xF001, -RDI_TypeKind_Count = 0xF002, -RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, -RDI_TypeKind_LastBuiltIn = RDI_TypeKind_ComplexF128, -RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, -RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, -RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, -RDI_TypeKind_LastRecord = RDI_TypeKind_Union, -RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, -RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, -RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, -RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, -} RDI_TypeKindEnum; - -typedef RDI_U16 RDI_TypeModifierFlags; -typedef enum RDI_TypeModifierFlagsEnum -{ -RDI_TypeModifierFlag_Const = 1<<0, -RDI_TypeModifierFlag_Volatile = 1<<1, -RDI_TypeModifierFlag_Restrict = 1<<2, -} RDI_TypeModifierFlagsEnum; - -typedef RDI_U32 RDI_UDTFlags; -typedef enum RDI_UDTFlagsEnum -{ -RDI_UDTFlag_EnumMembers = 1<<0, -} RDI_UDTFlagsEnum; - -typedef RDI_U16 RDI_MemberKind; -typedef enum RDI_MemberKindEnum -{ -RDI_MemberKind_NULL = 0x0000, -RDI_MemberKind_DataField = 0x0001, -RDI_MemberKind_StaticData = 0x0002, -RDI_MemberKind_Method = 0x0100, -RDI_MemberKind_StaticMethod = 0x0101, -RDI_MemberKind_VirtualMethod = 0x0102, -RDI_MemberKind_VTablePtr = 0x0200, -RDI_MemberKind_Base = 0x0201, -RDI_MemberKind_VirtualBase = 0x0202, -RDI_MemberKind_NestedType = 0x0300, -} RDI_MemberKindEnum; - -typedef RDI_U32 RDI_LinkFlags; -typedef enum RDI_LinkFlagsEnum -{ -RDI_LinkFlag_External = 1<<0, -RDI_LinkFlag_TypeScoped = 1<<1, -RDI_LinkFlag_ProcScoped = 1<<2, -} RDI_LinkFlagsEnum; - -typedef RDI_U32 RDI_LocalKind; -typedef enum RDI_LocalKindEnum -{ -RDI_LocalKind_NULL = 0x0, -RDI_LocalKind_Parameter = 0x1, -RDI_LocalKind_Variable = 0x2, -} RDI_LocalKindEnum; - -typedef RDI_U8 RDI_LocationKind; -typedef enum RDI_LocationKindEnum -{ -RDI_LocationKind_NULL = 0x0, -RDI_LocationKind_AddrBytecodeStream = 0x1, -RDI_LocationKind_ValBytecodeStream = 0x2, -RDI_LocationKind_AddrRegPlusU16 = 0x3, -RDI_LocationKind_AddrAddrRegPlusU16 = 0x4, -RDI_LocationKind_ValReg = 0x5, -} RDI_LocationKindEnum; - -typedef RDI_U8 RDI_EvalOp; -typedef enum RDI_EvalOpEnum -{ -RDI_EvalOp_Stop = 0, -RDI_EvalOp_Noop = 1, -RDI_EvalOp_Cond = 2, -RDI_EvalOp_Skip = 3, -RDI_EvalOp_MemRead = 4, -RDI_EvalOp_RegRead = 5, -RDI_EvalOp_RegReadDyn = 6, -RDI_EvalOp_FrameOff = 7, -RDI_EvalOp_ModuleOff = 8, -RDI_EvalOp_TLSOff = 9, -RDI_EvalOp_ObjectOff = 10, -RDI_EvalOp_CFA = 11, -RDI_EvalOp_ConstU8 = 12, -RDI_EvalOp_ConstU16 = 13, -RDI_EvalOp_ConstU32 = 14, -RDI_EvalOp_ConstU64 = 15, -RDI_EvalOp_ConstU128 = 16, -RDI_EvalOp_ConstString = 17, -RDI_EvalOp_Abs = 18, -RDI_EvalOp_Neg = 19, -RDI_EvalOp_Add = 20, -RDI_EvalOp_Sub = 21, -RDI_EvalOp_Mul = 22, -RDI_EvalOp_Div = 23, -RDI_EvalOp_Mod = 24, -RDI_EvalOp_LShift = 25, -RDI_EvalOp_RShift = 26, -RDI_EvalOp_BitAnd = 27, -RDI_EvalOp_BitOr = 28, -RDI_EvalOp_BitXor = 29, -RDI_EvalOp_BitNot = 30, -RDI_EvalOp_LogAnd = 31, -RDI_EvalOp_LogOr = 32, -RDI_EvalOp_LogNot = 33, -RDI_EvalOp_EqEq = 34, -RDI_EvalOp_NtEq = 35, -RDI_EvalOp_LsEq = 36, -RDI_EvalOp_GrEq = 37, -RDI_EvalOp_Less = 38, -RDI_EvalOp_Grtr = 39, -RDI_EvalOp_Trunc = 40, -RDI_EvalOp_TruncSigned = 41, -RDI_EvalOp_Convert = 42, -RDI_EvalOp_Pick = 43, -RDI_EvalOp_Pop = 44, -RDI_EvalOp_Insert = 45, -RDI_EvalOp_ValueRead = 46, -RDI_EvalOp_ByteSwap = 47, -RDI_EvalOp_CallSiteValue = 48, -RDI_EvalOp_PartialValue = 49, -RDI_EvalOp_PartialValueBit = 50, -RDI_EvalOp_Swap = 51, -RDI_EvalOp_COUNT = 52, -} RDI_EvalOpEnum; - -typedef RDI_U8 RDI_EvalTypeGroup; -typedef enum RDI_EvalTypeGroupEnum -{ -RDI_EvalTypeGroup_Other = 0, -RDI_EvalTypeGroup_U = 1, -RDI_EvalTypeGroup_S = 2, -RDI_EvalTypeGroup_F32 = 3, -RDI_EvalTypeGroup_F64 = 4, -RDI_EvalTypeGroup_COUNT = 5, -} RDI_EvalTypeGroupEnum; - -typedef RDI_U8 RDI_EvalConversionKind; -typedef enum RDI_EvalConversionKindEnum -{ -RDI_EvalConversionKind_Noop = 0, -RDI_EvalConversionKind_Legal = 1, -RDI_EvalConversionKind_OtherToOther = 2, -RDI_EvalConversionKind_ToOther = 3, -RDI_EvalConversionKind_FromOther = 4, -RDI_EvalConversionKind_COUNT = 5, -} RDI_EvalConversionKindEnum; - -typedef RDI_U32 RDI_NameMapKind; -typedef enum RDI_NameMapKindEnum -{ -RDI_NameMapKind_NULL = 0, -RDI_NameMapKind_GlobalVariables = 1, -RDI_NameMapKind_ThreadVariables = 2, -RDI_NameMapKind_Constants = 3, -RDI_NameMapKind_Procedures = 4, -RDI_NameMapKind_Types = 5, -RDI_NameMapKind_LinkNameProcedures = 6, -RDI_NameMapKind_NormalSourcePaths = 7, -RDI_NameMapKind_COUNT = 8, -} RDI_NameMapKindEnum; - -#define RDI_Header_XList \ -X(RDI_U64, magic)\ -X(RDI_U32, encoding_version)\ -X(RDI_U32, data_section_off)\ -X(RDI_U32, data_section_count)\ - -#define RDI_SectionKind_XList \ -X(NULL, null, RDI_U8)\ -X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ -X(StringData, string_data, RDI_U8)\ -X(StringTable, string_table, RDI_U32)\ -X(IndexRuns, index_runs, RDI_U32)\ -X(BinarySections, binary_sections, RDI_BinarySection)\ -X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ -X(SourceFiles, source_files, RDI_SourceFile)\ -X(LineTables, line_tables, RDI_LineTable)\ -X(LineInfoVOffs, line_info_voffs, RDI_U64)\ -X(LineInfoLines, line_info_lines, RDI_Line)\ -X(LineInfoColumns, line_info_columns, RDI_Column)\ -X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ -X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ -X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ -X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ -X(Units, units, RDI_Unit)\ -X(UnitVMap, unit_vmap, RDI_VMapEntry)\ -X(TypeNodes, type_nodes, RDI_TypeNode)\ -X(UDTs, udts, RDI_UDT)\ -X(Members, members, RDI_Member)\ -X(EnumMembers, enum_members, RDI_EnumMember)\ -X(GlobalVariables, global_variables, RDI_GlobalVariable)\ -X(GlobalVMap, global_vmap, RDI_VMapEntry)\ -X(ThreadVariables, thread_variables, RDI_ThreadVariable)\ -X(Constants, constants, RDI_Constant)\ -X(Procedures, procedures, RDI_Procedure)\ -X(Scopes, scopes, RDI_Scope)\ -X(ScopeVOffData, scope_voff_data, RDI_U64)\ -X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ -X(InlineSites, inline_sites, RDI_InlineSite)\ -X(Locals, locals, RDI_Local)\ -X(LocationBlocks, location_blocks, RDI_LocationBlock)\ -X(LocationData, location_data, RDI_U8)\ -X(ConstantValueData, constant_value_data, RDI_U8)\ -X(ConstantValueTable, constant_value_table, RDI_U32)\ -X(MD5Checksums, md5_checksums, RDI_MD5)\ -X(SHA1Checksums, sha1_checksums, RDI_SHA1)\ -X(SHA256Checksums, sha256_checksums, RDI_SHA256)\ -X(Timestamps, timestamps, RDI_U64)\ -X(NameMaps, name_maps, RDI_NameMap)\ -X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ -X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ - -#define RDI_SectionEncoding_XList \ -X(Unpacked)\ -X(LZB)\ - -#define RDI_Section_XList \ -X(RDI_SectionEncoding, encoding)\ -X(RDI_U32, pad)\ -X(RDI_U64, off)\ -X(RDI_U64, encoded_size)\ -X(RDI_U64, unpacked_size)\ - -#define RDI_VMapEntry_XList \ -X(RDI_U64, voff)\ -X(RDI_U64, idx)\ - -#define RDI_Arch_XList \ -X(NULL)\ -X(X86)\ -X(X64)\ - -#define RDI_RegCodeX86_XList \ -X(nil, 0)\ -X(eax, 1)\ -X(ecx, 2)\ -X(edx, 3)\ -X(ebx, 4)\ -X(esp, 5)\ -X(ebp, 6)\ -X(esi, 7)\ -X(edi, 8)\ -X(fsbase, 9)\ -X(gsbase, 10)\ -X(eflags, 11)\ -X(eip, 12)\ -X(dr0, 13)\ -X(dr1, 14)\ -X(dr2, 15)\ -X(dr3, 16)\ -X(dr4, 17)\ -X(dr5, 18)\ -X(dr6, 19)\ -X(dr7, 20)\ -X(fpr0, 21)\ -X(fpr1, 22)\ -X(fpr2, 23)\ -X(fpr3, 24)\ -X(fpr4, 25)\ -X(fpr5, 26)\ -X(fpr6, 27)\ -X(fpr7, 28)\ -X(st0, 29)\ -X(st1, 30)\ -X(st2, 31)\ -X(st3, 32)\ -X(st4, 33)\ -X(st5, 34)\ -X(st6, 35)\ -X(st7, 36)\ -X(fcw, 37)\ -X(fsw, 38)\ -X(ftw, 39)\ -X(fop, 40)\ -X(fcs, 41)\ -X(fds, 42)\ -X(fip, 43)\ -X(fdp, 44)\ -X(mxcsr, 45)\ -X(mxcsr_mask, 46)\ -X(ss, 47)\ -X(cs, 48)\ -X(ds, 49)\ -X(es, 50)\ -X(fs, 51)\ -X(gs, 52)\ -X(ymm0, 53)\ -X(ymm1, 54)\ -X(ymm2, 55)\ -X(ymm3, 56)\ -X(ymm4, 57)\ -X(ymm5, 58)\ -X(ymm6, 59)\ -X(ymm7, 60)\ - -#define RDI_RegCodeX64_XList \ -X(nil, 0)\ -X(rax, 1)\ -X(rcx, 2)\ -X(rdx, 3)\ -X(rbx, 4)\ -X(rsp, 5)\ -X(rbp, 6)\ -X(rsi, 7)\ -X(rdi, 8)\ -X(r8, 9)\ -X(r9, 10)\ -X(r10, 11)\ -X(r11, 12)\ -X(r12, 13)\ -X(r13, 14)\ -X(r14, 15)\ -X(r15, 16)\ -X(es, 17)\ -X(cs, 18)\ -X(ss, 19)\ -X(ds, 20)\ -X(fs, 21)\ -X(gs, 22)\ -X(rip, 23)\ -X(rflags, 24)\ -X(dr0, 25)\ -X(dr1, 26)\ -X(dr2, 27)\ -X(dr3, 28)\ -X(dr4, 29)\ -X(dr5, 30)\ -X(dr6, 31)\ -X(dr7, 32)\ -X(st0, 33)\ -X(st1, 34)\ -X(st2, 35)\ -X(st3, 36)\ -X(st4, 37)\ -X(st5, 38)\ -X(st6, 39)\ -X(st7, 40)\ -X(fpr0, 41)\ -X(fpr1, 42)\ -X(fpr2, 43)\ -X(fpr3, 44)\ -X(fpr4, 45)\ -X(fpr5, 46)\ -X(fpr6, 47)\ -X(fpr7, 48)\ -X(zmm0, 49)\ -X(zmm1, 50)\ -X(zmm2, 51)\ -X(zmm3, 52)\ -X(zmm4, 53)\ -X(zmm5, 54)\ -X(zmm6, 55)\ -X(zmm7, 56)\ -X(zmm8, 57)\ -X(zmm9, 58)\ -X(zmm10, 59)\ -X(zmm11, 60)\ -X(zmm12, 61)\ -X(zmm13, 62)\ -X(zmm14, 63)\ -X(zmm15, 64)\ -X(zmm16, 65)\ -X(zmm17, 66)\ -X(zmm18, 67)\ -X(zmm19, 68)\ -X(zmm20, 69)\ -X(zmm21, 70)\ -X(zmm22, 71)\ -X(zmm23, 72)\ -X(zmm24, 73)\ -X(zmm25, 74)\ -X(zmm26, 75)\ -X(zmm27, 76)\ -X(zmm28, 77)\ -X(zmm29, 78)\ -X(zmm30, 79)\ -X(zmm31, 80)\ -X(k0, 81)\ -X(k1, 82)\ -X(k2, 83)\ -X(k3, 84)\ -X(k4, 85)\ -X(k5, 86)\ -X(k6, 87)\ -X(k7, 88)\ -X(mxcsr, 89)\ -X(fsbase, 90)\ -X(gsbase, 91)\ -X(fcw, 92)\ -X(fsw, 93)\ -X(ftw, 94)\ -X(fop, 95)\ -X(fcs, 96)\ -X(fds, 97)\ -X(fip, 98)\ -X(fdp, 99)\ -X(mxcsr_mask, 100)\ -X(cetmsr, 101)\ -X(cetssp, 102)\ - -#define RDI_TopLevelInfo_XList \ -X(RDI_Arch, arch)\ -X(RDI_U32, exe_name_string_idx)\ -X(RDI_U64, exe_hash)\ -X(RDI_U64, voff_max)\ -X(RDI_GUID, guid)\ -X(RDI_U32, producer_name_string_idx)\ - -#define RDI_BinarySectionFlags_XList \ -X(Read)\ -X(Write)\ -X(Execute)\ - -#define RDI_BinarySection_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_BinarySectionFlags, flags)\ -X(RDI_U64, voff_first)\ -X(RDI_U64, voff_opl)\ -X(RDI_U64, foff_first)\ -X(RDI_U64, foff_opl)\ - -#define RDI_ChecksumKind_XList \ -X(NULL, NULL)\ -X(MD5, MD5Checksums)\ -X(SHA1, SHA1Checksums)\ -X(SHA256, SHA256Checksums)\ -X(Timestamp, Timestamps)\ -X(COUNT, NULL)\ - -#define RDI_FilePathNode_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, parent_path_node)\ -X(RDI_U32, first_child)\ -X(RDI_U32, next_sibling)\ -X(RDI_U32, source_file_idx)\ - -#define RDI_SourceFile_XList \ -X(RDI_U32, file_path_node_idx)\ -X(RDI_U32, normal_full_path_string_idx)\ -X(RDI_U32, source_line_map_idx)\ -X(RDI_ChecksumKind, checksum_kind)\ -X(RDI_U32, checksum_idx)\ - -#define RDI_Unit_XList \ -X(RDI_U32, unit_name_string_idx)\ -X(RDI_U32, compiler_name_string_idx)\ -X(RDI_U32, source_file_path_node)\ -X(RDI_U32, object_file_path_node)\ -X(RDI_U32, archive_file_path_node)\ -X(RDI_U32, build_path_node)\ -X(RDI_Language, language)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_LineTable_XList \ -X(RDI_U32, voffs_base_idx)\ -X(RDI_U32, lines_base_idx)\ -X(RDI_U32, cols_base_idx)\ -X(RDI_U32, lines_count)\ -X(RDI_U32, cols_count)\ - -#define RDI_Line_XList \ -X(RDI_U32, file_idx)\ -X(RDI_U32, line_num)\ - -#define RDI_Column_XList \ -X(RDI_U16, col_first)\ -X(RDI_U16, col_opl)\ - -#define RDI_SourceLineMapMemberTable \ -X(RDI_U32, line_count)\ -X(RDI_U32, voff_count)\ -X(RDI_U32, line_map_nums_base_idx)\ -X(RDI_U32, line_map_range_base_idx)\ -X(RDI_U32, line_map_voff_base_idx)\ - -#define RDI_Language_XList \ -X(NULL)\ -X(C)\ -X(CPlusPlus)\ -X(Masm)\ -X(COUNT)\ - -#define RDI_TypeKind_XList \ -X(NULL)\ -X(Void)\ -X(Handle)\ -X(HResult)\ -X(Char8)\ -X(Char16)\ -X(Char32)\ -X(UChar8)\ -X(UChar16)\ -X(UChar32)\ -X(U8)\ -X(U16)\ -X(U32)\ -X(U64)\ -X(U128)\ -X(U256)\ -X(U512)\ -X(S8)\ -X(S16)\ -X(S32)\ -X(S64)\ -X(S128)\ -X(S256)\ -X(S512)\ -X(Bool)\ -X(F16)\ -X(F32)\ -X(F32PP)\ -X(F48)\ -X(F64)\ -X(F80)\ -X(F128)\ -X(ComplexF32)\ -X(ComplexF64)\ -X(ComplexF80)\ -X(ComplexF128)\ -X(Modifier)\ -X(Ptr)\ -X(LRef)\ -X(RRef)\ -X(Array)\ -X(Function)\ -X(Method)\ -X(MemberPtr)\ -X(Struct)\ -X(Class)\ -X(Union)\ -X(Enum)\ -X(Alias)\ -X(IncompleteStruct)\ -X(IncompleteUnion)\ -X(IncompleteClass)\ -X(IncompleteEnum)\ -X(Bitfield)\ -X(Variadic)\ -X(Count)\ - -#define RDI_TypeModifierFlags_XList \ -X(Const)\ -X(Volatile)\ -X(Restrict)\ - -#define RDI_TypeNode_XList \ -X(RDI_TypeKind, kind)\ -X(RDI_U16, flags)\ -X(RDI_U32, byte_size)\ - -#define RDI_UDTFlags_XList \ -X(EnumMembers)\ - -#define RDI_UDT_XList \ -X(RDI_U32, self_type_idx)\ -X(RDI_UDTFlags, flags)\ -X(RDI_U32, member_first)\ -X(RDI_U32, member_count)\ -X(RDI_U32, file_idx)\ -X(RDI_U32, line)\ -X(RDI_U32, col)\ - -#define RDI_MemberKind_XList \ -X(NULL)\ -X(DataField)\ -X(StaticData)\ -X(Method)\ -X(StaticMethod)\ -X(VirtualMethod)\ -X(VTablePtr)\ -X(Base)\ -X(VirtualBase)\ -X(NestedType)\ - -#define RDI_Member_XList \ -X(RDI_MemberKind, kind)\ -X(RDI_U16, pad)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, off)\ - -#define RDI_EnumMember_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, pad)\ -X(RDI_U64, val)\ - -#define RDI_LinkFlags_XList \ -X(External)\ -X(TypeScoped)\ -X(ProcScoped)\ - -#define RDI_LocalKind_XList \ -X(NULL)\ -X(Parameter)\ -X(Variable)\ - -#define RDI_LocationKind_XList \ -X(NULL)\ -X(AddrBytecodeStream)\ -X(ValBytecodeStream)\ -X(AddrRegPlusU16)\ -X(AddrAddrRegPlusU16)\ -X(ValReg)\ - -#define RDI_GlobalVariable_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U64, voff)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, container_idx)\ - -#define RDI_ThreadVariable_XList \ -X(type, name_string_idx)\ -X(type, link_flags)\ -X(type, tls_off)\ -X(type, type_idx)\ -X(type, container_idx)\ - -#define RDI_Procedure_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, link_name_string_idx)\ -X(RDI_LinkFlags, link_flags)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, root_scope_idx)\ -X(RDI_U32, container_idx)\ -X(RDI_U32, frame_base_location_first)\ -X(RDI_U32, frame_base_location_opl)\ - -#define RDI_Scope_XList \ -X(RDI_U32, proc_idx)\ -X(RDI_U32, parent_scope_idx)\ -X(RDI_U32, first_child_scope_idx)\ -X(RDI_U32, next_sibling_scope_idx)\ -X(RDI_U32, voff_range_first)\ -X(RDI_U32, voff_range_opl)\ -X(RDI_U32, local_first)\ -X(RDI_U32, local_count)\ -X(RDI_U32, inline_site_idx)\ - -#define RDI_InlineSite_XList \ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, owner_type_idx)\ -X(RDI_U32, line_table_idx)\ - -#define RDI_Local_XList \ -X(RDI_LocalKind, kind)\ -X(RDI_U32, name_string_idx)\ -X(RDI_U32, type_idx)\ -X(RDI_U32, pad)\ -X(RDI_U32, location_first)\ -X(RDI_U32, location_opl)\ - -#define RDI_LocationBlock_XList \ -X(RDI_U32, scope_off_first)\ -X(RDI_U32, scope_off_opl)\ -X(RDI_U32, location_data_off)\ - -#define RDI_LocationBytecodeStream_XList \ -X(RDI_LocationKind, kind)\ - -#define RDI_LocationRegPlusU16_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ -X(RDI_U16, offset)\ - -#define RDI_LocationReg_XList \ -X(RDI_LocationKind, kind)\ -X(RDI_RegCode, reg_code)\ - -#define RDI_EvalOp_XList \ -X(Stop)\ -X(Noop)\ -X(Cond)\ -X(Skip)\ -X(MemRead)\ -X(RegRead)\ -X(RegReadDyn)\ -X(FrameOff)\ -X(ModuleOff)\ -X(TLSOff)\ -X(ObjectOff)\ -X(CFA)\ -X(ConstU8)\ -X(ConstU16)\ -X(ConstU32)\ -X(ConstU64)\ -X(ConstU128)\ -X(ConstString)\ -X(Abs)\ -X(Neg)\ -X(Add)\ -X(Sub)\ -X(Mul)\ -X(Div)\ -X(Mod)\ -X(LShift)\ -X(RShift)\ -X(BitAnd)\ -X(BitOr)\ -X(BitXor)\ -X(BitNot)\ -X(LogAnd)\ -X(LogOr)\ -X(LogNot)\ -X(EqEq)\ -X(NtEq)\ -X(LsEq)\ -X(GrEq)\ -X(Less)\ -X(Grtr)\ -X(Trunc)\ -X(TruncSigned)\ -X(Convert)\ -X(Pick)\ -X(Pop)\ -X(Insert)\ -X(ValueRead)\ -X(ByteSwap)\ -X(CallSiteValue)\ -X(PartialValue)\ -X(PartialValueBit)\ -X(Swap)\ - -#define RDI_EvalTypeGroup_XList \ -X(Other)\ -X(U)\ -X(S)\ -X(F32)\ -X(F64)\ - -#define RDI_EvalConversionKind_XList \ -X(Noop)\ -X(Legal)\ -X(OtherToOther)\ -X(ToOther)\ -X(FromOther)\ - -#define RDI_NameMapKind_XList \ -X(NULL)\ -X(GlobalVariables)\ -X(ThreadVariables)\ -X(Constants)\ -X(Procedures)\ -X(Types)\ -X(LinkNameProcedures)\ -X(NormalSourcePaths)\ - -#define RDI_NameMap_XList \ -X(RDI_U32, bucket_base_idx)\ -X(RDI_U32, node_base_idx)\ -X(RDI_U32, bucket_count)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapBucket_XList \ -X(RDI_U32, first_node)\ -X(RDI_U32, node_count)\ - -#define RDI_NameMapNode_XList \ -X(RDI_U32, string_idx)\ -X(RDI_U32, match_count)\ -X(RDI_U32, match_idx_or_idx_run_first)\ - -#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING -typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; -typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; -typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; -typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; -typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; -typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; -typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; -typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; -typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; -typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; -typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; -typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; -typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; -typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; -typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; -typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; -typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; -typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; -typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; -typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; -typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; -typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; -typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; -typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; -typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; -typedef struct RDI_U32_Locals { RDI_U32 v; } RDI_U32_Locals; -typedef struct RDI_U32_LocationBlocks { RDI_U32 v; } RDI_U32_LocationBlocks; -typedef struct RDI_U32_LocationData { RDI_U32 v; } RDI_U32_LocationData; -typedef struct RDI_U32_ConstantValueData { RDI_U32 v; } RDI_U32_ConstantValueData; -typedef struct RDI_U32_ConstantValueTable { RDI_U32 v; } RDI_U32_ConstantValueTable; -typedef struct RDI_U32_MD5Checksums { RDI_U32 v; } RDI_U32_MD5Checksums; -typedef struct RDI_U32_SHA1Checksums { RDI_U32 v; } RDI_U32_SHA1Checksums; -typedef struct RDI_U32_SHA256Checksums { RDI_U32 v; } RDI_U32_SHA256Checksums; -typedef struct RDI_U32_Timestamps { RDI_U32 v; } RDI_U32_Timestamps; -typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; -typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; -typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; -#else -typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; -typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; -typedef RDI_U32_Table RDI_U32_StringTable; -typedef RDI_U32_Table RDI_U32_IndexRuns; -typedef RDI_U32_Table RDI_U32_BinarySections; -typedef RDI_U32_Table RDI_U32_FilePathNodes; -typedef RDI_U32_Table RDI_U32_SourceFiles; -typedef RDI_U32_Table RDI_U32_LineTables; -typedef RDI_U32_Table RDI_U32_LineInfoVOffs; -typedef RDI_U32_Table RDI_U32_LineInfoLines; -typedef RDI_U32_Table RDI_U32_LineInfoColumns; -typedef RDI_U32_Table RDI_U32_SourceLineMaps; -typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; -typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; -typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; -typedef RDI_U32_Table RDI_U32_Units; -typedef RDI_U32_Table RDI_U32_TypeNodes; -typedef RDI_U32_Table RDI_U32_UDTs; -typedef RDI_U32_Table RDI_U32_Members; -typedef RDI_U32_Table RDI_U32_EnumMembers; -typedef RDI_U32_Table RDI_U32_GlobalVariables; -typedef RDI_U32_Table RDI_U32_ThreadVariables; -typedef RDI_U32_Table RDI_U32_Constants; -typedef RDI_U32_Table RDI_U32_Procedures; -typedef RDI_U32_Table RDI_U32_Scopes; -typedef RDI_U32_Table RDI_U32_ScopeVOffData; -typedef RDI_U32_Table RDI_U32_InlineSites; -typedef RDI_U32_Table RDI_U32_Locals; -typedef RDI_U32_Table RDI_U32_LocationBlocks; -typedef RDI_U32_Table RDI_U32_LocationData; -typedef RDI_U32_Table RDI_U32_ConstantValueData; -typedef RDI_U32_Table RDI_U32_ConstantValueTable; -typedef RDI_U32_Table RDI_U32_MD5Checksums; -typedef RDI_U32_Table RDI_U32_SHA1Checksums; -typedef RDI_U32_Table RDI_U32_SHA256Checksums; -typedef RDI_U32_Table RDI_U32_Timestamps; -typedef RDI_U32_Table RDI_U32_NameMaps; -typedef RDI_U32_Table RDI_U32_NameMapBuckets; -typedef RDI_U32_Table RDI_U32_NameMapNodes; -#endif - -#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) -#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) -#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) -#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) -#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) - -typedef struct RDI_Header RDI_Header; -struct RDI_Header -{ -RDI_U64 magic; -RDI_U32 encoding_version; -RDI_U32 data_section_off; -RDI_U32 data_section_count; -}; - -typedef struct RDI_Section RDI_Section; -struct RDI_Section -{ -RDI_SectionEncoding encoding; -RDI_U32 pad; -RDI_U64 off; -RDI_U64 encoded_size; -RDI_U64 unpacked_size; -}; - -typedef struct RDI_VMapEntry RDI_VMapEntry; -struct RDI_VMapEntry -{ -RDI_U64 voff; -RDI_U64 idx; -}; - -typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; -struct RDI_TopLevelInfo -{ -RDI_Arch arch; -RDI_U32 exe_name_string_idx; -RDI_U64 exe_hash; -RDI_U64 voff_max; -RDI_GUID guid; -RDI_U32 producer_name_string_idx; -}; - -typedef struct RDI_BinarySection RDI_BinarySection; -struct RDI_BinarySection -{ -RDI_U32 name_string_idx; -RDI_BinarySectionFlags flags; -RDI_U64 voff_first; -RDI_U64 voff_opl; -RDI_U64 foff_first; -RDI_U64 foff_opl; -}; - -typedef struct RDI_FilePathNode RDI_FilePathNode; -struct RDI_FilePathNode -{ -RDI_U32 name_string_idx; -RDI_U32 parent_path_node; -RDI_U32 first_child; -RDI_U32 next_sibling; -RDI_U32 source_file_idx; -}; - -typedef struct RDI_SourceFile RDI_SourceFile; -struct RDI_SourceFile -{ -RDI_U32 file_path_node_idx; -RDI_U32 normal_full_path_string_idx; -RDI_U32 source_line_map_idx; -RDI_ChecksumKind checksum_kind; -RDI_U32 checksum_idx; -}; - -typedef struct RDI_Unit RDI_Unit; -struct RDI_Unit -{ -RDI_U32 unit_name_string_idx; -RDI_U32 compiler_name_string_idx; -RDI_U32 source_file_path_node; -RDI_U32 object_file_path_node; -RDI_U32 archive_file_path_node; -RDI_U32 build_path_node; -RDI_Language language; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_LineTable RDI_LineTable; -struct RDI_LineTable -{ -RDI_U32 voffs_base_idx; -RDI_U32 lines_base_idx; -RDI_U32 cols_base_idx; -RDI_U32 lines_count; -RDI_U32 cols_count; -}; - -typedef struct RDI_Line RDI_Line; -struct RDI_Line -{ -RDI_U32 file_idx; -RDI_U32 line_num; -}; - -typedef struct RDI_Column RDI_Column; -struct RDI_Column -{ -RDI_U16 col_first; -RDI_U16 col_opl; -}; - -typedef struct RDI_SourceLineMap RDI_SourceLineMap; -struct RDI_SourceLineMap -{ -RDI_U32 line_count; -RDI_U32 voff_count; -RDI_U32 line_map_nums_base_idx; -RDI_U32 line_map_range_base_idx; -RDI_U32 line_map_voff_base_idx; -}; - -typedef struct RDI_TypeNode RDI_TypeNode; -struct RDI_TypeNode -{ -RDI_TypeKind kind; -RDI_U16 flags; -RDI_U32 byte_size; - - union - { - // kind is 'built-in' - struct - { - RDI_U32 name_string_idx; - } built_in; - - // kind is 'constructed' - struct - { - RDI_U32 direct_type_idx; - RDI_U32 count; - union - { - // when kind is 'Function' or 'Method' - RDI_U32 param_idx_run_first; - // when kind is 'MemberPtr' - RDI_U32 owner_type_idx; - }; - } - constructed; - - // kind is 'user defined' - struct - { - RDI_U32 name_string_idx; - RDI_U32 direct_type_idx; - RDI_U32 udt_idx; - } - user_defined; - - // (kind = Bitfield) - struct - { - RDI_U32 direct_type_idx; - RDI_U32 off; - RDI_U32 size; - } - bitfield; - } - ; -}; - -typedef struct RDI_UDT RDI_UDT; -struct RDI_UDT -{ -RDI_U32 self_type_idx; -RDI_UDTFlags flags; -RDI_U32 member_first; -RDI_U32 member_count; -RDI_U32 file_idx; -RDI_U32 line; -RDI_U32 col; -}; - -typedef struct RDI_Member RDI_Member; -struct RDI_Member -{ -RDI_MemberKind kind; -RDI_U16 pad; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 off; -}; - -typedef struct RDI_EnumMember RDI_EnumMember; -struct RDI_EnumMember -{ -RDI_U32 name_string_idx; -RDI_U32 pad; -RDI_U64 val; -}; - -typedef struct RDI_GlobalVariable RDI_GlobalVariable; -struct RDI_GlobalVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U64 voff; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_ThreadVariable RDI_ThreadVariable; -struct RDI_ThreadVariable -{ -RDI_U32 name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 tls_off; -RDI_U32 type_idx; -RDI_U32 container_idx; -}; - -typedef struct RDI_Constant RDI_Constant; -struct RDI_Constant -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 constant_value_idx; -}; - -typedef struct RDI_Procedure RDI_Procedure; -struct RDI_Procedure -{ -RDI_U32 name_string_idx; -RDI_U32 link_name_string_idx; -RDI_LinkFlags link_flags; -RDI_U32 type_idx; -RDI_U32 root_scope_idx; -RDI_U32 container_idx; -RDI_U32 frame_base_location_first; -RDI_U32 frame_base_location_opl; -}; - -typedef struct RDI_Scope RDI_Scope; -struct RDI_Scope -{ -RDI_U32 proc_idx; -RDI_U32 parent_scope_idx; -RDI_U32 first_child_scope_idx; -RDI_U32 next_sibling_scope_idx; -RDI_U32 voff_range_first; -RDI_U32 voff_range_opl; -RDI_U32 local_first; -RDI_U32 local_count; -RDI_U32 inline_site_idx; -}; - -typedef struct RDI_InlineSite RDI_InlineSite; -struct RDI_InlineSite -{ -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 owner_type_idx; -RDI_U32 line_table_idx; -}; - -typedef struct RDI_Local RDI_Local; -struct RDI_Local -{ -RDI_LocalKind kind; -RDI_U32 name_string_idx; -RDI_U32 type_idx; -RDI_U32 pad; -RDI_U32 location_first; -RDI_U32 location_opl; -}; - -typedef struct RDI_LocationBlock RDI_LocationBlock; -struct RDI_LocationBlock -{ -RDI_U32 scope_off_first; -RDI_U32 scope_off_opl; -RDI_U32 location_data_off; -}; - -typedef struct RDI_LocationBytecodeStream RDI_LocationBytecodeStream; -struct RDI_LocationBytecodeStream -{ -RDI_LocationKind kind; -}; - -typedef struct RDI_LocationRegPlusU16 RDI_LocationRegPlusU16; -struct RDI_LocationRegPlusU16 -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -RDI_U16 offset; -}; - -typedef struct RDI_LocationReg RDI_LocationReg; -struct RDI_LocationReg -{ -RDI_LocationKind kind; -RDI_RegCode reg_code; -}; - -typedef struct RDI_NameMap RDI_NameMap; -struct RDI_NameMap -{ -RDI_U32 bucket_base_idx; -RDI_U32 node_base_idx; -RDI_U32 bucket_count; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapBucket RDI_NameMapBucket; -struct RDI_NameMapBucket -{ -RDI_U32 first_node; -RDI_U32 node_count; -}; - -typedef struct RDI_NameMapNode RDI_NameMapNode; -struct RDI_NameMapNode -{ -RDI_U32 string_idx; -RDI_U32 match_count; -RDI_U32 match_idx_or_idx_run_first; -}; - -typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; -typedef RDI_U8 RDI_SectionElementType_StringData; -typedef RDI_U32 RDI_SectionElementType_StringTable; -typedef RDI_U32 RDI_SectionElementType_IndexRuns; -typedef RDI_BinarySection RDI_SectionElementType_BinarySections; -typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; -typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; -typedef RDI_LineTable RDI_SectionElementType_LineTables; -typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; -typedef RDI_Line RDI_SectionElementType_LineInfoLines; -typedef RDI_Column RDI_SectionElementType_LineInfoColumns; -typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; -typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; -typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; -typedef RDI_Unit RDI_SectionElementType_Units; -typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; -typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; -typedef RDI_UDT RDI_SectionElementType_UDTs; -typedef RDI_Member RDI_SectionElementType_Members; -typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; -typedef RDI_GlobalVariable RDI_SectionElementType_GlobalVariables; -typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; -typedef RDI_ThreadVariable RDI_SectionElementType_ThreadVariables; -typedef RDI_Constant RDI_SectionElementType_Constants; -typedef RDI_Procedure RDI_SectionElementType_Procedures; -typedef RDI_Scope RDI_SectionElementType_Scopes; -typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; -typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; -typedef RDI_InlineSite RDI_SectionElementType_InlineSites; -typedef RDI_Local RDI_SectionElementType_Locals; -typedef RDI_LocationBlock RDI_SectionElementType_LocationBlocks; -typedef RDI_U8 RDI_SectionElementType_LocationData; -typedef RDI_U8 RDI_SectionElementType_ConstantValueData; -typedef RDI_U32 RDI_SectionElementType_ConstantValueTable; -typedef RDI_MD5 RDI_SectionElementType_MD5Checksums; -typedef RDI_SHA1 RDI_SectionElementType_SHA1Checksums; -typedef RDI_SHA256 RDI_SectionElementType_SHA256Checksums; -typedef RDI_U64 RDI_SectionElementType_Timestamps; -typedef RDI_NameMap RDI_SectionElementType_NameMaps; -typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; -typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; - -RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); -RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); -RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); -RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); -RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); -RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); -RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); - -extern RDI_U16 rdi_section_element_size_table[44]; -extern RDI_U16 rdi_eval_op_ctrlbits_table[53]; - -#endif // RDI_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////////////////////////////////////// +//~ (R)AD (D)ebug (I)nfo Format Library +// +// Defines standard RDI debug information format types and +// functions. + +#ifndef RDI_H +#define RDI_H + +//////////////////////////////////////////////////////////////// +//~ Overridable Procedure Decoration + +#if !defined(RDI_PROC) +# define RDI_PROC static +#endif + +//////////////////////////////////////////////////////////////// +//~ Overridable Basic Integer Types + +#if !defined(RDI_U8) +# define RDI_U8 RDI_U8 +# define RDI_U16 RDI_U16 +# define RDI_U32 RDI_U32 +# define RDI_U64 RDI_U64 +# define RDI_S8 RDI_S8 +# define RDI_S16 RDI_S16 +# define RDI_S32 RDI_S32 +# define RDI_S64 RDI_S64 +#include +typedef uint8_t RDI_U8; +typedef uint16_t RDI_U16; +typedef uint32_t RDI_U32; +typedef uint64_t RDI_U64; +typedef int8_t RDI_S8; +typedef int16_t RDI_S16; +typedef int32_t RDI_S32; +typedef int64_t RDI_S64; +#endif + +//////////////////////////////////////////////////////////////// +//~ Checksum Types + +typedef union RDI_MD5 RDI_MD5; +union RDI_MD5 {RDI_U8 u8[16]; RDI_U64 u64[2];}; + +typedef union RDI_SHA1 RDI_SHA1; +union RDI_SHA1 {RDI_U8 u8[20];}; + +typedef union RDI_SHA256 RDI_SHA256; +union RDI_SHA256 {RDI_U8 u8[32]; RDI_U64 u64[4];}; + +typedef union RDI_GUID RDI_GUID; +union RDI_GUID {RDI_U8 u8[16]; RDI_U64 u64[2];}; + +//////////////////////////////////////////////////////////////// +//~ Overridable Enabling/Disabling Of Table Index Typechecking + +#if !defined(RDI_DISABLE_TABLE_INDEX_TYPECHECKING) +# define RDI_DISABLE_TABLE_INDEX_TYPECHECKING 0 +#endif + +//////////////////////////////////////////////////////////////// +//~ Format Constants + +// "raddbg\0\0" +#define RDI_MAGIC_CONSTANT 0x0000676264646172 +#define RDI_ENCODING_VERSION 23 + +//////////////////////////////////////////////////////////////// +//~ Format Types & Functions + +typedef RDI_U32 RDI_SectionKind; +typedef enum RDI_SectionKindEnum +{ +RDI_SectionKind_NULL = 0x0000, +RDI_SectionKind_TopLevelInfo = 0x0001, +RDI_SectionKind_StringData = 0x0002, +RDI_SectionKind_StringTable = 0x0003, +RDI_SectionKind_IndexRuns = 0x0004, +RDI_SectionKind_BinarySections = 0x0005, +RDI_SectionKind_FilePathNodes = 0x0006, +RDI_SectionKind_SourceFiles = 0x0007, +RDI_SectionKind_LineTables = 0x0008, +RDI_SectionKind_LineInfoVOffs = 0x0009, +RDI_SectionKind_LineInfoLines = 0x000A, +RDI_SectionKind_LineInfoColumns = 0x000B, +RDI_SectionKind_SourceLineMaps = 0x000C, +RDI_SectionKind_SourceLineMapNumbers = 0x000D, +RDI_SectionKind_SourceLineMapRanges = 0x000E, +RDI_SectionKind_SourceLineMapVOffs = 0x000F, +RDI_SectionKind_Units = 0x0010, +RDI_SectionKind_UnitVMap = 0x0011, +RDI_SectionKind_Namespaces = 0x0012, +RDI_SectionKind_TypeNodes = 0x0013, +RDI_SectionKind_UDTs = 0x0014, +RDI_SectionKind_Members = 0x0015, +RDI_SectionKind_EnumMembers = 0x0016, +RDI_SectionKind_Scopes = 0x0017, +RDI_SectionKind_ScopeVOffData = 0x0018, +RDI_SectionKind_ScopeVMap = 0x0019, +RDI_SectionKind_InlineSites = 0x001A, +RDI_SectionKind_GlobalVariables = 0x001B, +RDI_SectionKind_GlobalVMap = 0x001C, +RDI_SectionKind_ThreadVariables = 0x001D, +RDI_SectionKind_Constants = 0x001E, +RDI_SectionKind_Procedures = 0x001F, +RDI_SectionKind_LocalVariables = 0x0020, +RDI_SectionKind_LocationsBytecodeData = 0x0021, +RDI_SectionKind_LocationsConstantData = 0x0022, +RDI_SectionKind_LocationsSetElements = 0x0023, +RDI_SectionKind_MD5Checksums = 0x0024, +RDI_SectionKind_SHA1Checksums = 0x0025, +RDI_SectionKind_SHA256Checksums = 0x0026, +RDI_SectionKind_Timestamps = 0x0027, +RDI_SectionKind_NameMaps = 0x0028, +RDI_SectionKind_NameMapBuckets = 0x0029, +RDI_SectionKind_NameMapNodes = 0x002A, +RDI_SectionKind_COUNT = 0x002B, +} RDI_SectionKindEnum; + +typedef RDI_U32 RDI_SectionEncoding; +typedef enum RDI_SectionEncodingEnum +{ +RDI_SectionEncoding_Unpacked = 0, +RDI_SectionEncoding_LZB = 1, +} RDI_SectionEncodingEnum; + +typedef RDI_U32 RDI_Arch; +typedef enum RDI_ArchEnum +{ +RDI_Arch_NULL = 0, +RDI_Arch_X64 = 1, +RDI_Arch_X86 = 2, +} RDI_ArchEnum; + +typedef RDI_U8 RDI_RegCode; +typedef enum RDI_RegCodeEnum +{ +RDI_RegCode_nil, +} RDI_RegCodeEnum; + +typedef RDI_U8 RDI_RegCodeX64; +typedef enum RDI_RegCodeX64Enum +{ +RDI_RegCodeX64_nil = 0, +RDI_RegCodeX64_rax = 1, +RDI_RegCodeX64_rcx = 2, +RDI_RegCodeX64_rdx = 3, +RDI_RegCodeX64_rbx = 4, +RDI_RegCodeX64_rsp = 5, +RDI_RegCodeX64_rbp = 6, +RDI_RegCodeX64_rsi = 7, +RDI_RegCodeX64_rdi = 8, +RDI_RegCodeX64_r8 = 9, +RDI_RegCodeX64_r9 = 10, +RDI_RegCodeX64_r10 = 11, +RDI_RegCodeX64_r11 = 12, +RDI_RegCodeX64_r12 = 13, +RDI_RegCodeX64_r13 = 14, +RDI_RegCodeX64_r14 = 15, +RDI_RegCodeX64_r15 = 16, +RDI_RegCodeX64_es = 17, +RDI_RegCodeX64_cs = 18, +RDI_RegCodeX64_ss = 19, +RDI_RegCodeX64_ds = 20, +RDI_RegCodeX64_fs = 21, +RDI_RegCodeX64_gs = 22, +RDI_RegCodeX64_rip = 23, +RDI_RegCodeX64_rflags = 24, +RDI_RegCodeX64_dr0 = 25, +RDI_RegCodeX64_dr1 = 26, +RDI_RegCodeX64_dr2 = 27, +RDI_RegCodeX64_dr3 = 28, +RDI_RegCodeX64_dr4 = 29, +RDI_RegCodeX64_dr5 = 30, +RDI_RegCodeX64_dr6 = 31, +RDI_RegCodeX64_dr7 = 32, +RDI_RegCodeX64_st0 = 33, +RDI_RegCodeX64_st1 = 34, +RDI_RegCodeX64_st2 = 35, +RDI_RegCodeX64_st3 = 36, +RDI_RegCodeX64_st4 = 37, +RDI_RegCodeX64_st5 = 38, +RDI_RegCodeX64_st6 = 39, +RDI_RegCodeX64_st7 = 40, +RDI_RegCodeX64_zmm0 = 41, +RDI_RegCodeX64_zmm1 = 42, +RDI_RegCodeX64_zmm2 = 43, +RDI_RegCodeX64_zmm3 = 44, +RDI_RegCodeX64_zmm4 = 45, +RDI_RegCodeX64_zmm5 = 46, +RDI_RegCodeX64_zmm6 = 47, +RDI_RegCodeX64_zmm7 = 48, +RDI_RegCodeX64_zmm8 = 49, +RDI_RegCodeX64_zmm9 = 50, +RDI_RegCodeX64_zmm10 = 51, +RDI_RegCodeX64_zmm11 = 52, +RDI_RegCodeX64_zmm12 = 53, +RDI_RegCodeX64_zmm13 = 54, +RDI_RegCodeX64_zmm14 = 55, +RDI_RegCodeX64_zmm15 = 56, +RDI_RegCodeX64_zmm16 = 57, +RDI_RegCodeX64_zmm17 = 58, +RDI_RegCodeX64_zmm18 = 59, +RDI_RegCodeX64_zmm19 = 60, +RDI_RegCodeX64_zmm20 = 61, +RDI_RegCodeX64_zmm21 = 62, +RDI_RegCodeX64_zmm22 = 63, +RDI_RegCodeX64_zmm23 = 64, +RDI_RegCodeX64_zmm24 = 65, +RDI_RegCodeX64_zmm25 = 66, +RDI_RegCodeX64_zmm26 = 67, +RDI_RegCodeX64_zmm27 = 68, +RDI_RegCodeX64_zmm28 = 69, +RDI_RegCodeX64_zmm29 = 70, +RDI_RegCodeX64_zmm30 = 71, +RDI_RegCodeX64_zmm31 = 72, +RDI_RegCodeX64_k0 = 73, +RDI_RegCodeX64_k1 = 74, +RDI_RegCodeX64_k2 = 75, +RDI_RegCodeX64_k3 = 76, +RDI_RegCodeX64_k4 = 77, +RDI_RegCodeX64_k5 = 78, +RDI_RegCodeX64_k6 = 79, +RDI_RegCodeX64_k7 = 80, +RDI_RegCodeX64_mxcsr = 81, +RDI_RegCodeX64_fsbase = 82, +RDI_RegCodeX64_gsbase = 83, +RDI_RegCodeX64_fcw = 84, +RDI_RegCodeX64_fsw = 85, +RDI_RegCodeX64_ftw = 86, +RDI_RegCodeX64_fop = 87, +RDI_RegCodeX64_fcs = 88, +RDI_RegCodeX64_fds = 89, +RDI_RegCodeX64_fip = 90, +RDI_RegCodeX64_fdp = 91, +RDI_RegCodeX64_mxcsr_mask = 92, +RDI_RegCodeX64_cetmsr = 93, +RDI_RegCodeX64_cetssp = 94, +} RDI_RegCodeX64Enum; + +typedef RDI_U32 RDI_BinarySectionFlags; +typedef enum RDI_BinarySectionFlagsEnum +{ +RDI_BinarySectionFlag_Read = 1<<0, +RDI_BinarySectionFlag_Write = 1<<1, +RDI_BinarySectionFlag_Execute = 1<<2, +} RDI_BinarySectionFlagsEnum; + +typedef RDI_U32 RDI_ChecksumKind; +typedef enum RDI_ChecksumKindEnum +{ +RDI_ChecksumKind_NULL = 0, +RDI_ChecksumKind_MD5 = 1, +RDI_ChecksumKind_SHA1 = 2, +RDI_ChecksumKind_SHA256 = 3, +RDI_ChecksumKind_Timestamp = 4, +RDI_ChecksumKind_COUNT = 5, +} RDI_ChecksumKindEnum; + +typedef RDI_U32 RDI_Language; +typedef enum RDI_LanguageEnum +{ +RDI_Language_NULL = 0, +RDI_Language_C = 1, +RDI_Language_CPlusPlus = 2, +RDI_Language_Masm = 3, +RDI_Language_COUNT = 4, +} RDI_LanguageEnum; + +typedef RDI_U16 RDI_TypeKind; +typedef enum RDI_TypeKindEnum +{ +RDI_TypeKind_Null, +RDI_TypeKind_Void = 0x0001, +RDI_TypeKind_Handle = 0x0002, +RDI_TypeKind_HResult = 0x0003, +RDI_TypeKind_Char8 = 0x0004, +RDI_TypeKind_Char16 = 0x0005, +RDI_TypeKind_Char32 = 0x0006, +RDI_TypeKind_UChar8 = 0x0007, +RDI_TypeKind_UChar16 = 0x0008, +RDI_TypeKind_UChar32 = 0x0009, +RDI_TypeKind_U8 = 0x000A, +RDI_TypeKind_U16 = 0x000B, +RDI_TypeKind_U32 = 0x000C, +RDI_TypeKind_U64 = 0x000D, +RDI_TypeKind_U128 = 0x000E, +RDI_TypeKind_U256 = 0x000F, +RDI_TypeKind_U512 = 0x0010, +RDI_TypeKind_S8 = 0x0011, +RDI_TypeKind_S16 = 0x0012, +RDI_TypeKind_S32 = 0x0013, +RDI_TypeKind_S64 = 0x0014, +RDI_TypeKind_S128 = 0x0015, +RDI_TypeKind_S256 = 0x0016, +RDI_TypeKind_S512 = 0x0017, +RDI_TypeKind_Bool = 0x0018, +RDI_TypeKind_BF16 = 0x0019, +RDI_TypeKind_F16 = 0x001A, +RDI_TypeKind_F32 = 0x001B, +RDI_TypeKind_F32PP = 0x001C, +RDI_TypeKind_F48 = 0x001D, +RDI_TypeKind_F64 = 0x001E, +RDI_TypeKind_F80 = 0x001F, +RDI_TypeKind_F96 = 0x0020, +RDI_TypeKind_F128 = 0x0021, +RDI_TypeKind_ComplexF32 = 0x0022, +RDI_TypeKind_ComplexF64 = 0x0023, +RDI_TypeKind_ComplexF80 = 0x0024, +RDI_TypeKind_ComplexF128 = 0x0025, +RDI_TypeKind_Decimal32 = 0x0026, +RDI_TypeKind_Decimal64 = 0x0027, +RDI_TypeKind_Decimal128 = 0x0028, +RDI_TypeKind_Variadic = 0x0029, +RDI_TypeKind_Modifier = 0x1000, +RDI_TypeKind_Ptr = 0x1001, +RDI_TypeKind_LRef = 0x1002, +RDI_TypeKind_RRef = 0x1003, +RDI_TypeKind_Array = 0x1004, +RDI_TypeKind_Function = 0x1005, +RDI_TypeKind_Method = 0x1006, +RDI_TypeKind_MemberPtr = 0x1007, +RDI_TypeKind_Struct = 0x2000, +RDI_TypeKind_Class = 0x2001, +RDI_TypeKind_Union = 0x2002, +RDI_TypeKind_Enum = 0x2003, +RDI_TypeKind_Alias = 0x2004, +RDI_TypeKind_IncompleteStruct = 0x2005, +RDI_TypeKind_IncompleteUnion = 0x2006, +RDI_TypeKind_IncompleteClass = 0x2007, +RDI_TypeKind_IncompleteEnum = 0x2008, +RDI_TypeKind_Bitfield = 0xF000, +RDI_TypeKind_FirstBuiltIn = RDI_TypeKind_Void, +RDI_TypeKind_LastBuiltIn = RDI_TypeKind_Variadic, +RDI_TypeKind_FirstConstructed = RDI_TypeKind_Modifier, +RDI_TypeKind_LastConstructed = RDI_TypeKind_MemberPtr, +RDI_TypeKind_FirstUserDefined = RDI_TypeKind_Struct, +RDI_TypeKind_LastRecord = RDI_TypeKind_Union, +RDI_TypeKind_FirstIncomplete = RDI_TypeKind_IncompleteStruct, +RDI_TypeKind_LastIncomplete = RDI_TypeKind_IncompleteEnum, +RDI_TypeKind_FirstRecord = RDI_TypeKind_Struct, +RDI_TypeKind_LastUserDefined = RDI_TypeKind_IncompleteEnum, +RDI_TypeKind_COUNT, +} RDI_TypeKindEnum; + +typedef RDI_U16 RDI_TypeModifierFlags; +typedef enum RDI_TypeModifierFlagsEnum +{ +RDI_TypeModifierFlag_Const = 1<<0, +RDI_TypeModifierFlag_Volatile = 1<<1, +RDI_TypeModifierFlag_Restrict = 1<<2, +} RDI_TypeModifierFlagsEnum; + +typedef RDI_U8 RDI_UDTFlags; +typedef enum RDI_UDTFlagsEnum +{ +RDI_UDTFlag_EnumMembers = 1<<0, +} RDI_UDTFlagsEnum; + +typedef RDI_U16 RDI_MemberKind; +typedef enum RDI_MemberKindEnum +{ +RDI_MemberKind_NULL = 0x0000, +RDI_MemberKind_DataField = 0x0001, +RDI_MemberKind_StaticData = 0x0002, +RDI_MemberKind_Method = 0x0100, +RDI_MemberKind_StaticMethod = 0x0101, +RDI_MemberKind_VirtualMethod = 0x0102, +RDI_MemberKind_VTablePtr = 0x0200, +RDI_MemberKind_Base = 0x0201, +RDI_MemberKind_VirtualBase = 0x0202, +RDI_MemberKind_NestedType = 0x0300, +} RDI_MemberKindEnum; + +typedef RDI_U8 RDI_ContainerKind; +typedef enum RDI_ContainerKindEnum +{ +RDI_ContainerKind_NULL = 0x0, +RDI_ContainerKind_Type = 0x1, +RDI_ContainerKind_Scope = 0x2, +RDI_ContainerKind_Namespace = 0x3, +} RDI_ContainerKindEnum; + +typedef RDI_U8 RDI_ContainerFlags; +typedef enum RDI_ContainerFlagsEnum +{ +RDI_ContainerFlag_External = 1u<<7, +RDI_ContainerFlag_KindMask = 0x7f, +} RDI_ContainerFlagsEnum; + +typedef RDI_U8 RDI_SymbolFlags; +typedef enum RDI_SymbolFlagsEnum +{ +RDI_SymbolFlag_IsParam = 0x1, +RDI_SymbolFlag_IsThunk = 0x2, +} RDI_SymbolFlagsEnum; + +typedef RDI_U8 RDI_LocationKind; +typedef enum RDI_LocationKindEnum +{ +RDI_LocationKind_NULL = 0x0, +RDI_LocationKind_AddrBytecodeStream = 0x1, +RDI_LocationKind_ValBytecodeStream = 0x2, +RDI_LocationKind_AddrRegPlusOff = 0x3, +RDI_LocationKind_AddrAddrRegPlusOff = 0x4, +RDI_LocationKind_ValReg = 0x5, +RDI_LocationKind_ModuleOff = 0x6, +RDI_LocationKind_TLSOff = 0x7, +RDI_LocationKind_ConstantDataOff = 0x8, +RDI_LocationKind_Set = 0x9, +} RDI_LocationKindEnum; + +typedef RDI_U8 RDI_EvalOp; +typedef enum RDI_EvalOpEnum +{ +RDI_EvalOp_Stop = 0, +RDI_EvalOp_Noop = 1, +RDI_EvalOp_Cond = 2, +RDI_EvalOp_Skip = 3, +RDI_EvalOp_MemRead = 4, +RDI_EvalOp_RegRead = 5, +RDI_EvalOp_FrameOff = 6, +RDI_EvalOp_ModuleOff = 7, +RDI_EvalOp_TLSOff = 8, +RDI_EvalOp_ObjectOff = 9, +RDI_EvalOp_CFA = 10, +RDI_EvalOp_ConstU8 = 11, +RDI_EvalOp_ConstU16 = 12, +RDI_EvalOp_ConstU32 = 13, +RDI_EvalOp_ConstU64 = 14, +RDI_EvalOp_ConstU128 = 15, +RDI_EvalOp_ConstU256 = 16, +RDI_EvalOp_ConstU512 = 17, +RDI_EvalOp_ConstString = 18, +RDI_EvalOp_Abs = 19, +RDI_EvalOp_Neg = 20, +RDI_EvalOp_Add = 21, +RDI_EvalOp_Sub = 22, +RDI_EvalOp_Mul = 23, +RDI_EvalOp_Div = 24, +RDI_EvalOp_Mod = 25, +RDI_EvalOp_LShift = 26, +RDI_EvalOp_RShift = 27, +RDI_EvalOp_BitAnd = 28, +RDI_EvalOp_BitOr = 29, +RDI_EvalOp_BitXor = 30, +RDI_EvalOp_BitNot = 31, +RDI_EvalOp_LogAnd = 32, +RDI_EvalOp_LogOr = 33, +RDI_EvalOp_LogNot = 34, +RDI_EvalOp_EqEq = 35, +RDI_EvalOp_NtEq = 36, +RDI_EvalOp_LsEq = 37, +RDI_EvalOp_GrEq = 38, +RDI_EvalOp_Less = 39, +RDI_EvalOp_Grtr = 40, +RDI_EvalOp_Trunc = 41, +RDI_EvalOp_TruncSigned = 42, +RDI_EvalOp_Convert = 43, +RDI_EvalOp_Pick = 44, +RDI_EvalOp_Pop = 45, +RDI_EvalOp_ValueRead = 46, +RDI_EvalOp_ByteSwap = 47, +RDI_EvalOp_CallSiteValue = 48, +RDI_EvalOp_PartialValue = 49, +RDI_EvalOp_PartialValueBit = 50, +RDI_EvalOp_Swap = 51, +RDI_EvalOp_PushCfa = 52, +RDI_EvalOp_COUNT = 53, +RDI_EvalOp_FirstLogical = RDI_EvalOp_LogAnd, +RDI_EvalOp_LastLogical = RDI_EvalOp_Grtr, +} RDI_EvalOpEnum; + +typedef RDI_U8 RDI_EvalTypeGroup; +typedef enum RDI_EvalTypeGroupEnum +{ +RDI_EvalTypeGroup_Other = 0, +RDI_EvalTypeGroup_U = 1, +RDI_EvalTypeGroup_S = 2, +RDI_EvalTypeGroup_F32 = 3, +RDI_EvalTypeGroup_F64 = 4, +RDI_EvalTypeGroup_F80 = 5, +RDI_EvalTypeGroup_F128 = 6, +RDI_EvalTypeGroup_COUNT = 7, +} RDI_EvalTypeGroupEnum; + +typedef RDI_U8 RDI_EvalConversionKind; +typedef enum RDI_EvalConversionKindEnum +{ +RDI_EvalConversionKind_Noop = 0, +RDI_EvalConversionKind_Legal = 1, +RDI_EvalConversionKind_OtherToOther = 2, +RDI_EvalConversionKind_ToOther = 3, +RDI_EvalConversionKind_FromOther = 4, +RDI_EvalConversionKind_COUNT = 5, +} RDI_EvalConversionKindEnum; + +typedef RDI_U32 RDI_NameMapKind; +typedef enum RDI_NameMapKindEnum +{ +RDI_NameMapKind_NULL = 0, +RDI_NameMapKind_GlobalVariables = 1, +RDI_NameMapKind_ThreadVariables = 2, +RDI_NameMapKind_Constants = 3, +RDI_NameMapKind_Procedures = 4, +RDI_NameMapKind_Types = 5, +RDI_NameMapKind_LinkNameProcedures = 6, +RDI_NameMapKind_NormalSourcePaths = 7, +RDI_NameMapKind_Units = 8, +RDI_NameMapKind_COUNT = 9, +} RDI_NameMapKindEnum; + +#define RDI_Header_XList \ +X(RDI_U64, magic)\ +X(RDI_U32, encoding_version)\ +X(RDI_U32, data_section_off)\ +X(RDI_U32, data_section_count)\ + +#define RDI_SectionKind_XList \ +X(NULL, null, RDI_U8)\ +X(TopLevelInfo, top_level_info, RDI_TopLevelInfo)\ +X(StringData, string_data, RDI_U8)\ +X(StringTable, string_table, RDI_U32)\ +X(IndexRuns, index_runs, RDI_U32)\ +X(BinarySections, binary_sections, RDI_BinarySection)\ +X(FilePathNodes, file_path_nodes, RDI_FilePathNode)\ +X(SourceFiles, source_files, RDI_SourceFile)\ +X(LineTables, line_tables, RDI_LineTable)\ +X(LineInfoVOffs, line_info_voffs, RDI_U64)\ +X(LineInfoLines, line_info_lines, RDI_Line)\ +X(LineInfoColumns, line_info_columns, RDI_Column)\ +X(SourceLineMaps, source_line_maps, RDI_SourceLineMap)\ +X(SourceLineMapNumbers, source_line_map_numbers, RDI_U32)\ +X(SourceLineMapRanges, source_line_map_ranges, RDI_U32)\ +X(SourceLineMapVOffs, source_line_map_voffs, RDI_U64)\ +X(Units, units, RDI_Unit)\ +X(UnitVMap, unit_vmap, RDI_VMapEntry)\ +X(Namespaces, namespaces, RDI_Namespace)\ +X(TypeNodes, type_nodes, RDI_TypeNode)\ +X(UDTs, udts, RDI_UDT)\ +X(Members, members, RDI_Member)\ +X(EnumMembers, enum_members, RDI_EnumMember)\ +X(Scopes, scopes, RDI_Scope)\ +X(ScopeVOffData, scope_voff_data, RDI_U64)\ +X(ScopeVMap, scope_vmap, RDI_VMapEntry)\ +X(InlineSites, inline_sites, RDI_InlineSite)\ +X(GlobalVariables, global_variables, RDI_Symbol)\ +X(GlobalVMap, global_vmap, RDI_VMapEntry)\ +X(ThreadVariables, thread_variables, RDI_Symbol)\ +X(Constants, constants, RDI_Symbol)\ +X(Procedures, procedures, RDI_Symbol)\ +X(LocalVariables, local_variables, RDI_Symbol)\ +X(LocationsBytecodeData, locations_bytecode_data, RDI_U8)\ +X(LocationsConstantData, locations_constant_data, RDI_U8)\ +X(LocationsSetElements, locations_set_elements, RDI_LocationSetElement)\ +X(MD5Checksums, md5_checksums, RDI_MD5)\ +X(SHA1Checksums, sha1_checksums, RDI_SHA1)\ +X(SHA256Checksums, sha256_checksums, RDI_SHA256)\ +X(Timestamps, timestamps, RDI_U64)\ +X(NameMaps, name_maps, RDI_NameMap)\ +X(NameMapBuckets, name_map_buckets, RDI_NameMapBucket)\ +X(NameMapNodes, name_map_nodes, RDI_NameMapNode)\ + +#define RDI_SectionEncoding_XList \ +X(Unpacked)\ +X(LZB)\ + +#define RDI_Section_XList \ +X(RDI_SectionEncoding, encoding)\ +X(RDI_U32, pad)\ +X(RDI_U64, off)\ +X(RDI_U64, encoded_size)\ +X(RDI_U64, unpacked_size)\ + +#define RDI_VMapEntry_XList \ +X(RDI_U64, voff)\ +X(RDI_U64, idx)\ + +#define RDI_Arch_XList \ +X(NULL)\ +X(X64)\ +X(X86)\ + +#define RDI_RegCodeX64_XList \ +X(nil, 0)\ +X(rax, 1)\ +X(rcx, 2)\ +X(rdx, 3)\ +X(rbx, 4)\ +X(rsp, 5)\ +X(rbp, 6)\ +X(rsi, 7)\ +X(rdi, 8)\ +X(r8, 9)\ +X(r9, 10)\ +X(r10, 11)\ +X(r11, 12)\ +X(r12, 13)\ +X(r13, 14)\ +X(r14, 15)\ +X(r15, 16)\ +X(es, 17)\ +X(cs, 18)\ +X(ss, 19)\ +X(ds, 20)\ +X(fs, 21)\ +X(gs, 22)\ +X(rip, 23)\ +X(rflags, 24)\ +X(dr0, 25)\ +X(dr1, 26)\ +X(dr2, 27)\ +X(dr3, 28)\ +X(dr4, 29)\ +X(dr5, 30)\ +X(dr6, 31)\ +X(dr7, 32)\ +X(st0, 33)\ +X(st1, 34)\ +X(st2, 35)\ +X(st3, 36)\ +X(st4, 37)\ +X(st5, 38)\ +X(st6, 39)\ +X(st7, 40)\ +X(zmm0, 41)\ +X(zmm1, 42)\ +X(zmm2, 43)\ +X(zmm3, 44)\ +X(zmm4, 45)\ +X(zmm5, 46)\ +X(zmm6, 47)\ +X(zmm7, 48)\ +X(zmm8, 49)\ +X(zmm9, 50)\ +X(zmm10, 51)\ +X(zmm11, 52)\ +X(zmm12, 53)\ +X(zmm13, 54)\ +X(zmm14, 55)\ +X(zmm15, 56)\ +X(zmm16, 57)\ +X(zmm17, 58)\ +X(zmm18, 59)\ +X(zmm19, 60)\ +X(zmm20, 61)\ +X(zmm21, 62)\ +X(zmm22, 63)\ +X(zmm23, 64)\ +X(zmm24, 65)\ +X(zmm25, 66)\ +X(zmm26, 67)\ +X(zmm27, 68)\ +X(zmm28, 69)\ +X(zmm29, 70)\ +X(zmm30, 71)\ +X(zmm31, 72)\ +X(k0, 73)\ +X(k1, 74)\ +X(k2, 75)\ +X(k3, 76)\ +X(k4, 77)\ +X(k5, 78)\ +X(k6, 79)\ +X(k7, 80)\ +X(mxcsr, 81)\ +X(fsbase, 82)\ +X(gsbase, 83)\ +X(fcw, 84)\ +X(fsw, 85)\ +X(ftw, 86)\ +X(fop, 87)\ +X(fcs, 88)\ +X(fds, 89)\ +X(fip, 90)\ +X(fdp, 91)\ +X(mxcsr_mask, 92)\ +X(cetmsr, 93)\ +X(cetssp, 94)\ + +#define RDI_TopLevelInfo_XList \ +X(RDI_Arch, arch)\ +X(RDI_U32, exe_name_string_idx)\ +X(RDI_U64, exe_hash)\ +X(RDI_U64, voff_max)\ +X(RDI_GUID, guid)\ +X(RDI_U32, producer_name_string_idx)\ + +#define RDI_BinarySectionFlags_XList \ +X(Read)\ +X(Write)\ +X(Execute)\ + +#define RDI_BinarySection_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_BinarySectionFlags, flags)\ +X(RDI_U64, voff_first)\ +X(RDI_U64, voff_opl)\ +X(RDI_U64, foff_first)\ +X(RDI_U64, foff_opl)\ + +#define RDI_ChecksumKind_XList \ +X(NULL, NULL)\ +X(MD5, MD5Checksums)\ +X(SHA1, SHA1Checksums)\ +X(SHA256, SHA256Checksums)\ +X(Timestamp, Timestamps)\ +X(COUNT, NULL)\ + +#define RDI_FilePathNode_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, parent_path_node)\ +X(RDI_U32, first_child)\ +X(RDI_U32, next_sibling)\ +X(RDI_U32, source_file_idx)\ + +#define RDI_SourceFile_XList \ +X(RDI_U32, file_path_node_idx)\ +X(RDI_U32, normal_full_path_string_idx)\ +X(RDI_U32, source_line_map_idx)\ +X(RDI_ChecksumKind, checksum_kind)\ +X(RDI_U32, checksum_idx)\ + +#define RDI_Unit_XList \ +X(RDI_U32, unit_name_string_idx)\ +X(RDI_U32, compiler_name_string_idx)\ +X(RDI_U32, source_file_path_node)\ +X(RDI_U32, object_file_path_node)\ +X(RDI_U32, archive_file_path_node)\ +X(RDI_U32, build_path_node)\ +X(RDI_Language, language)\ +X(RDI_U32, line_table_idx)\ +X(RDI_U32, procedures_first_idx)\ +X(RDI_U32, procedures_count)\ +X(RDI_U32, global_variables_first_idx)\ +X(RDI_U32, global_variables_count)\ +X(RDI_U32, thread_variables_first_idx)\ +X(RDI_U32, thread_variables_count)\ +X(RDI_U32, constants_first_idx)\ +X(RDI_U32, constants_count)\ + +#define RDI_LineTable_XList \ +X(RDI_U32, voffs_base_idx)\ +X(RDI_U32, lines_base_idx)\ +X(RDI_U32, cols_base_idx)\ +X(RDI_U32, lines_count)\ +X(RDI_U32, cols_count)\ + +#define RDI_Line_XList \ +X(RDI_U32, file_idx)\ +X(RDI_U32, line_num)\ + +#define RDI_Column_XList \ +X(RDI_U16, col_first)\ +X(RDI_U16, col_opl)\ + +#define RDI_SourceLineMapMemberTable \ +X(RDI_U32, line_count)\ +X(RDI_U32, voff_count)\ +X(RDI_U32, line_map_nums_base_idx)\ +X(RDI_U32, line_map_range_base_idx)\ +X(RDI_U32, line_map_voff_base_idx)\ + +#define RDI_Language_XList \ +X(NULL)\ +X(C)\ +X(CPlusPlus)\ +X(Masm)\ +X(COUNT)\ + +#define RDI_TypeKind_XList \ +X(Void)\ +X(Handle)\ +X(HResult)\ +X(Char8)\ +X(Char16)\ +X(Char32)\ +X(UChar8)\ +X(UChar16)\ +X(UChar32)\ +X(U8)\ +X(U16)\ +X(U32)\ +X(U64)\ +X(U128)\ +X(U256)\ +X(U512)\ +X(S8)\ +X(S16)\ +X(S32)\ +X(S64)\ +X(S128)\ +X(S256)\ +X(S512)\ +X(Bool)\ +X(BF16)\ +X(F16)\ +X(F32)\ +X(F32PP)\ +X(F48)\ +X(F64)\ +X(F80)\ +X(F96)\ +X(F128)\ +X(ComplexF32)\ +X(ComplexF64)\ +X(ComplexF80)\ +X(ComplexF128)\ +X(Decimal32)\ +X(Decimal64)\ +X(Decimal128)\ +X(Variadic)\ +X(Modifier)\ +X(Ptr)\ +X(LRef)\ +X(RRef)\ +X(Array)\ +X(Function)\ +X(Method)\ +X(MemberPtr)\ +X(Struct)\ +X(Class)\ +X(Union)\ +X(Enum)\ +X(Alias)\ +X(IncompleteStruct)\ +X(IncompleteUnion)\ +X(IncompleteClass)\ +X(IncompleteEnum)\ +X(Bitfield)\ + +#define RDI_TypeModifierFlags_XList \ +X(Const)\ +X(Volatile)\ +X(Restrict)\ + +#define RDI_TypeNode_XList \ +X(RDI_TypeKind, kind)\ +X(RDI_U16, flags)\ +X(RDI_U32, byte_size)\ + +#define RDI_UDTFlags_XList \ +X(EnumMembers)\ + +#define RDI_UDT_XList \ +X(RDI_U32, self_type_idx)\ +X(RDI_UDTFlags, flags)\ +X(RDI_ContainerFlags, container_flags)\ +X(RDI_U16, reserved_0)\ +X(RDI_U32, member_first)\ +X(RDI_U32, member_count)\ +X(RDI_U32, file_idx)\ +X(RDI_U32, line)\ +X(RDI_U32, col)\ +X(RDI_U32, container_idx)\ + +#define RDI_MemberKind_XList \ +X(NULL)\ +X(DataField)\ +X(StaticData)\ +X(Method)\ +X(StaticMethod)\ +X(VirtualMethod)\ +X(VTablePtr)\ +X(Base)\ +X(VirtualBase)\ +X(NestedType)\ + +#define RDI_Member_XList \ +X(RDI_MemberKind, kind)\ +X(RDI_U16, pad)\ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, off)\ + +#define RDI_EnumMember_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, pad)\ +X(RDI_U64, val)\ + +#define RDI_LinkFlags_XList \ +X($(a.name != COUNT -> a.name))\ + +#define RDI_LocationKind_XList \ +X(NULL)\ +X(AddrBytecodeStream)\ +X(ValBytecodeStream)\ +X(AddrRegPlusOff)\ +X(AddrAddrRegPlusOff)\ +X(ValReg)\ +X(ModuleOff)\ +X(TLSOff)\ +X(ConstantDataOff)\ +X(Set)\ + +#define RDI_Namespace_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_ContainerFlags, container_flags)\ +X(RDI_U8, padding_0)\ +X(RDI_U16, padding_1)\ +X(RDI_U32, container_idx)\ + +#define RDI_Symbol_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_SymbolFlags, symbol_flags)\ +X(RDI_ContainerFlags, container_flags)\ +X(RDI_U16, reserved_0)\ +X(RDI_Location, location)\ +X(RDI_U32, container_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, root_scope_idx)\ +X(RDI_U32, link_name_string_idx)\ + +#define RDI_Scope_XList \ +X(RDI_U32, proc_idx)\ +X(RDI_U32, parent_scope_idx)\ +X(RDI_U32, first_child_scope_idx)\ +X(RDI_U32, next_sibling_scope_idx)\ +X(RDI_U32, voff_range_first)\ +X(RDI_U32, voff_range_opl)\ +X(RDI_U32, local_first)\ +X(RDI_U32, local_count)\ +X(RDI_U32, inline_site_idx)\ + +#define RDI_InlineSite_XList \ +X(RDI_U32, name_string_idx)\ +X(RDI_U32, type_idx)\ +X(RDI_U32, owner_type_idx)\ +X(RDI_U32, line_table_idx)\ + +#define RDI_EvalOp_XList \ +X(Stop)\ +X(Noop)\ +X(Cond)\ +X(Skip)\ +X(MemRead)\ +X(RegRead)\ +X(FrameOff)\ +X(ModuleOff)\ +X(TLSOff)\ +X(ObjectOff)\ +X(CFA)\ +X(ConstU8)\ +X(ConstU16)\ +X(ConstU32)\ +X(ConstU64)\ +X(ConstU128)\ +X(ConstU256)\ +X(ConstU512)\ +X(ConstString)\ +X(Abs)\ +X(Neg)\ +X(Add)\ +X(Sub)\ +X(Mul)\ +X(Div)\ +X(Mod)\ +X(LShift)\ +X(RShift)\ +X(BitAnd)\ +X(BitOr)\ +X(BitXor)\ +X(BitNot)\ +X(LogAnd)\ +X(LogOr)\ +X(LogNot)\ +X(EqEq)\ +X(NtEq)\ +X(LsEq)\ +X(GrEq)\ +X(Less)\ +X(Grtr)\ +X(Trunc)\ +X(TruncSigned)\ +X(Convert)\ +X(Pick)\ +X(Pop)\ +X(ValueRead)\ +X(ByteSwap)\ +X(CallSiteValue)\ +X(PartialValue)\ +X(PartialValueBit)\ +X(Swap)\ +X(PushCfa)\ + +#define RDI_EvalTypeGroup_XList \ +X(Other)\ +X(U)\ +X(S)\ +X(F32)\ +X(F64)\ +X(F80)\ +X(F128)\ + +#define RDI_EvalConversionKind_XList \ +X(Noop)\ +X(Legal)\ +X(OtherToOther)\ +X(ToOther)\ +X(FromOther)\ + +#define RDI_NameMapKind_XList \ +X(NULL)\ +X(GlobalVariables)\ +X(ThreadVariables)\ +X(Constants)\ +X(Procedures)\ +X(Types)\ +X(LinkNameProcedures)\ +X(NormalSourcePaths)\ +X(Units)\ + +#define RDI_NameMap_XList \ +X(RDI_U32, bucket_base_idx)\ +X(RDI_U32, node_base_idx)\ +X(RDI_U32, bucket_count)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapBucket_XList \ +X(RDI_U32, first_node)\ +X(RDI_U32, node_count)\ + +#define RDI_NameMapNode_XList \ +X(RDI_U32, string_idx)\ +X(RDI_U32, match_count)\ +X(RDI_U32, match_idx_or_idx_run_first)\ + +#if !RDI_DISABLE_TABLE_INDEX_TYPECHECKING +typedef struct RDI_U32_StringTable { RDI_U32 v; } RDI_U32_StringTable; +typedef struct RDI_U32_IndexRuns { RDI_U32 v; } RDI_U32_IndexRuns; +typedef struct RDI_U32_BinarySections { RDI_U32 v; } RDI_U32_BinarySections; +typedef struct RDI_U32_FilePathNodes { RDI_U32 v; } RDI_U32_FilePathNodes; +typedef struct RDI_U32_SourceFiles { RDI_U32 v; } RDI_U32_SourceFiles; +typedef struct RDI_U32_LineTables { RDI_U32 v; } RDI_U32_LineTables; +typedef struct RDI_U32_LineInfoVOffs { RDI_U32 v; } RDI_U32_LineInfoVOffs; +typedef struct RDI_U32_LineInfoLines { RDI_U32 v; } RDI_U32_LineInfoLines; +typedef struct RDI_U32_LineInfoColumns { RDI_U32 v; } RDI_U32_LineInfoColumns; +typedef struct RDI_U32_SourceLineMaps { RDI_U32 v; } RDI_U32_SourceLineMaps; +typedef struct RDI_U32_SourceLineMapNumbers { RDI_U32 v; } RDI_U32_SourceLineMapNumbers; +typedef struct RDI_U32_SourceLineMapRanges { RDI_U32 v; } RDI_U32_SourceLineMapRanges; +typedef struct RDI_U32_SourceLineMapVOffs { RDI_U32 v; } RDI_U32_SourceLineMapVOffs; +typedef struct RDI_U32_Units { RDI_U32 v; } RDI_U32_Units; +typedef struct RDI_U32_Namespaces { RDI_U32 v; } RDI_U32_Namespaces; +typedef struct RDI_U32_TypeNodes { RDI_U32 v; } RDI_U32_TypeNodes; +typedef struct RDI_U32_UDTs { RDI_U32 v; } RDI_U32_UDTs; +typedef struct RDI_U32_Members { RDI_U32 v; } RDI_U32_Members; +typedef struct RDI_U32_EnumMembers { RDI_U32 v; } RDI_U32_EnumMembers; +typedef struct RDI_U32_Scopes { RDI_U32 v; } RDI_U32_Scopes; +typedef struct RDI_U32_ScopeVOffData { RDI_U32 v; } RDI_U32_ScopeVOffData; +typedef struct RDI_U32_InlineSites { RDI_U32 v; } RDI_U32_InlineSites; +typedef struct RDI_U32_GlobalVariables { RDI_U32 v; } RDI_U32_GlobalVariables; +typedef struct RDI_U32_ThreadVariables { RDI_U32 v; } RDI_U32_ThreadVariables; +typedef struct RDI_U32_Constants { RDI_U32 v; } RDI_U32_Constants; +typedef struct RDI_U32_Procedures { RDI_U32 v; } RDI_U32_Procedures; +typedef struct RDI_U32_LocalVariables { RDI_U32 v; } RDI_U32_LocalVariables; +typedef struct RDI_U32_LocationsBytecodeData { RDI_U32 v; } RDI_U32_LocationsBytecodeData; +typedef struct RDI_U32_LocationsConstantData { RDI_U32 v; } RDI_U32_LocationsConstantData; +typedef struct RDI_U32_LocationsSetElements { RDI_U32 v; } RDI_U32_LocationsSetElements; +typedef struct RDI_U32_MD5Checksums { RDI_U32 v; } RDI_U32_MD5Checksums; +typedef struct RDI_U32_SHA1Checksums { RDI_U32 v; } RDI_U32_SHA1Checksums; +typedef struct RDI_U32_SHA256Checksums { RDI_U32 v; } RDI_U32_SHA256Checksums; +typedef struct RDI_U32_Timestamps { RDI_U32 v; } RDI_U32_Timestamps; +typedef struct RDI_U32_NameMaps { RDI_U32 v; } RDI_U32_NameMaps; +typedef struct RDI_U32_NameMapBuckets { RDI_U32 v; } RDI_U32_NameMapBuckets; +typedef struct RDI_U32_NameMapNodes { RDI_U32 v; } RDI_U32_NameMapNodes; +#else +typedef struct RDI_U32_Table { RDI_U32 v; } RDI_U32_Table; +typedef struct RDI_U64_Table { RDI_U64 v; } RDI_U64_Table; +typedef RDI_U32_Table RDI_U32_StringTable; +typedef RDI_U32_Table RDI_U32_IndexRuns; +typedef RDI_U32_Table RDI_U32_BinarySections; +typedef RDI_U32_Table RDI_U32_FilePathNodes; +typedef RDI_U32_Table RDI_U32_SourceFiles; +typedef RDI_U32_Table RDI_U32_LineTables; +typedef RDI_U32_Table RDI_U32_LineInfoVOffs; +typedef RDI_U32_Table RDI_U32_LineInfoLines; +typedef RDI_U32_Table RDI_U32_LineInfoColumns; +typedef RDI_U32_Table RDI_U32_SourceLineMaps; +typedef RDI_U32_Table RDI_U32_SourceLineMapNumbers; +typedef RDI_U32_Table RDI_U32_SourceLineMapRanges; +typedef RDI_U32_Table RDI_U32_SourceLineMapVOffs; +typedef RDI_U32_Table RDI_U32_Units; +typedef RDI_U32_Table RDI_U32_Namespaces; +typedef RDI_U32_Table RDI_U32_TypeNodes; +typedef RDI_U32_Table RDI_U32_UDTs; +typedef RDI_U32_Table RDI_U32_Members; +typedef RDI_U32_Table RDI_U32_EnumMembers; +typedef RDI_U32_Table RDI_U32_Scopes; +typedef RDI_U32_Table RDI_U32_ScopeVOffData; +typedef RDI_U32_Table RDI_U32_InlineSites; +typedef RDI_U32_Table RDI_U32_GlobalVariables; +typedef RDI_U32_Table RDI_U32_ThreadVariables; +typedef RDI_U32_Table RDI_U32_Constants; +typedef RDI_U32_Table RDI_U32_Procedures; +typedef RDI_U32_Table RDI_U32_LocalVariables; +typedef RDI_U32_Table RDI_U32_LocationsBytecodeData; +typedef RDI_U32_Table RDI_U32_LocationsConstantData; +typedef RDI_U32_Table RDI_U32_LocationsSetElements; +typedef RDI_U32_Table RDI_U32_MD5Checksums; +typedef RDI_U32_Table RDI_U32_SHA1Checksums; +typedef RDI_U32_Table RDI_U32_SHA256Checksums; +typedef RDI_U32_Table RDI_U32_Timestamps; +typedef RDI_U32_Table RDI_U32_NameMaps; +typedef RDI_U32_Table RDI_U32_NameMapBuckets; +typedef RDI_U32_Table RDI_U32_NameMapNodes; +#endif + +typedef RDI_U64 RDI_Location; +#define RDI_Location_KindMask 0xff00000000000000ull +#define RDI_Location_KindShift 56 +#define RDI_Location_OffMask 0x00ffffffffffffffull +#define RDI_Location_OffShift 0 +#define RDI_Location_SetFirstIndexMask 0x00000000ffffffffull +#define RDI_Location_SetFirstIndexShift 0 +#define RDI_Location_SetCountMask 0x00ffffff00000000ull +#define RDI_Location_SetCountShift 32 +#define RDI_Location_RegCodeMask 0x00ff000000000000ull +#define RDI_Location_RegCodeShift 48 +#define RDI_Location_RegOffMask 0x0000ffff00000000ull +#define RDI_Location_RegOffShift 32 +#define rdi_kind_from_location(l) ((((l) & RDI_Location_KindMask) >> RDI_Location_KindShift)) +#define rdi_regcode_from_location(l) ((rdi_kind_from_location(l) == RDI_LocationKind_AddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_AddrAddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_ValReg) ? (((l) & RDI_Location_RegCodeMask) >> RDI_Location_RegCodeShift) : 0) +#define rdi_regoff_from_location(l) (RDI_S64)(RDI_S32)(RDI_S16)((rdi_kind_from_location(l) == RDI_LocationKind_AddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_AddrAddrRegPlusOff) ? (((l) & RDI_Location_RegOffMask) >> RDI_Location_RegOffShift) : 0) +#define rdi_voff_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_ModuleOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0) +#define rdi_toff_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_TLSOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0) +#define rdi_constant_data_off_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_ConstantDataOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0) +#define rdi_bytecode_data_off_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_AddrBytecodeStream || rdi_kind_from_location(l) == RDI_LocationKind_ValBytecodeStream ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0) +#define rdi_set_first_index_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_Set ? (((l) & RDI_Location_SetFirstIndexMask) >> RDI_Location_SetFirstIndexShift) : 0) +#define rdi_set_count_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_Set ? (((l) & RDI_Location_SetCountMask) >> RDI_Location_SetCountShift) : 0) +#define rdi_location_voff(voff) ((((RDI_U64)RDI_LocationKind_ModuleOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((voff) & ~RDI_Location_KindMask)) +#define rdi_location_toff(toff) ((((RDI_U64)RDI_LocationKind_TLSOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((toff) & ~RDI_Location_KindMask)) +#define rdi_location_constant_data_off(off) ((((RDI_U64)RDI_LocationKind_ConstantDataOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((off) & ~RDI_Location_KindMask)) +#define rdi_location_reg(kind, reg, off) ((((RDI_U64)(kind) << RDI_Location_KindShift) & RDI_Location_KindMask) | (((RDI_U64)(reg) << RDI_Location_RegCodeShift) & RDI_Location_RegCodeMask) | (((RDI_U64)(off) << RDI_Location_RegOffShift) & RDI_Location_RegOffMask)) +#define rdi_location_bytecode(kind, off) ((((RDI_U64)(kind) << RDI_Location_KindShift) & RDI_Location_KindMask) | (((RDI_U64)(off) << RDI_Location_OffShift) & RDI_Location_OffMask)) +#define RDI_EVAL_CTRLBITS(decodeN,popN,pushN) (((decodeN) << 8) | ((popN) << 4) | ((pushN) << 0)) +#define RDI_DECODEN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 8) & 0xff) +#define RDI_POPN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 4) & 0xf) +#define RDI_PUSHN_FROM_CTRLBITS(ctrlbits) (((ctrlbits) >> 0) & 0xf) +#define RDI_EncodeRegReadParam(reg,bytesize,bytepos) ((reg)|((bytesize)<<8)|((bytepos)<<16)) + +typedef struct RDI_Header RDI_Header; +struct RDI_Header +{ +RDI_U64 magic; +RDI_U32 encoding_version; +RDI_U32 data_section_off; +RDI_U32 data_section_count; +}; + +typedef struct RDI_Section RDI_Section; +struct RDI_Section +{ +RDI_SectionEncoding encoding; +RDI_U32 pad; +RDI_U64 off; +RDI_U64 encoded_size; +RDI_U64 unpacked_size; +}; + +typedef struct RDI_VMapEntry RDI_VMapEntry; +struct RDI_VMapEntry +{ +RDI_U64 voff; +RDI_U64 idx; +}; + +typedef struct RDI_TopLevelInfo RDI_TopLevelInfo; +struct RDI_TopLevelInfo +{ +RDI_Arch arch; +RDI_U32 exe_name_string_idx; +RDI_U64 exe_hash; +RDI_U64 voff_max; +RDI_GUID guid; +RDI_U32 producer_name_string_idx; +}; + +typedef struct RDI_BinarySection RDI_BinarySection; +struct RDI_BinarySection +{ +RDI_U32 name_string_idx; +RDI_BinarySectionFlags flags; +RDI_U64 voff_first; +RDI_U64 voff_opl; +RDI_U64 foff_first; +RDI_U64 foff_opl; +}; + +typedef struct RDI_FilePathNode RDI_FilePathNode; +struct RDI_FilePathNode +{ +RDI_U32 name_string_idx; +RDI_U32 parent_path_node; +RDI_U32 first_child; +RDI_U32 next_sibling; +RDI_U32 source_file_idx; +}; + +typedef struct RDI_SourceFile RDI_SourceFile; +struct RDI_SourceFile +{ +RDI_U32 file_path_node_idx; +RDI_U32 normal_full_path_string_idx; +RDI_U32 source_line_map_idx; +RDI_ChecksumKind checksum_kind; +RDI_U32 checksum_idx; +}; + +typedef struct RDI_Unit RDI_Unit; +struct RDI_Unit +{ +RDI_U32 unit_name_string_idx; +RDI_U32 compiler_name_string_idx; +RDI_U32 source_file_path_node; +RDI_U32 object_file_path_node; +RDI_U32 archive_file_path_node; +RDI_U32 build_path_node; +RDI_Language language; +RDI_U32 line_table_idx; +RDI_U32 procedures_first_idx; +RDI_U32 procedures_count; +RDI_U32 global_variables_first_idx; +RDI_U32 global_variables_count; +RDI_U32 thread_variables_first_idx; +RDI_U32 thread_variables_count; +RDI_U32 constants_first_idx; +RDI_U32 constants_count; +}; + +typedef struct RDI_LineTable RDI_LineTable; +struct RDI_LineTable +{ +RDI_U32 voffs_base_idx; +RDI_U32 lines_base_idx; +RDI_U32 cols_base_idx; +RDI_U32 lines_count; +RDI_U32 cols_count; +}; + +typedef struct RDI_Line RDI_Line; +struct RDI_Line +{ +RDI_U32 file_idx; +RDI_U32 line_num; +}; + +typedef struct RDI_Column RDI_Column; +struct RDI_Column +{ +RDI_U16 col_first; +RDI_U16 col_opl; +}; + +typedef struct RDI_SourceLineMap RDI_SourceLineMap; +struct RDI_SourceLineMap +{ +RDI_U32 line_count; +RDI_U32 voff_count; +RDI_U32 line_map_nums_base_idx; +RDI_U32 line_map_range_base_idx; +RDI_U32 line_map_voff_base_idx; +}; + +typedef struct RDI_TypeNode RDI_TypeNode; +struct RDI_TypeNode +{ +RDI_TypeKind kind; +RDI_U16 flags; +RDI_U32 byte_size; + + union + { + // kind is 'built-in' + struct + { + RDI_U32 name_string_idx; + } built_in; + + // kind is 'constructed' + struct + { + RDI_U32 direct_type_idx; + RDI_U32 count; + union + { + // when kind is 'Function' or 'Method' + RDI_U32 param_idx_run_first; + // when kind is 'MemberPtr' + RDI_U32 owner_type_idx; + }; + } + constructed; + + // kind is 'user defined' + struct + { + RDI_U32 name_string_idx; + RDI_U32 direct_type_idx; + RDI_U32 udt_idx; + } + user_defined; + + // (kind = Bitfield) + struct + { + RDI_U32 direct_type_idx; + RDI_U32 off; + RDI_U32 size; + } + bitfield; + } + ; +}; + +typedef struct RDI_UDT RDI_UDT; +struct RDI_UDT +{ +RDI_U32 self_type_idx; +RDI_UDTFlags flags; +RDI_ContainerFlags container_flags; +RDI_U16 reserved_0; +RDI_U32 member_first; +RDI_U32 member_count; +RDI_U32 file_idx; +RDI_U32 line; +RDI_U32 col; +RDI_U32 container_idx; +}; + +typedef struct RDI_Member RDI_Member; +struct RDI_Member +{ +RDI_MemberKind kind; +RDI_U16 pad; +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 off; +}; + +typedef struct RDI_EnumMember RDI_EnumMember; +struct RDI_EnumMember +{ +RDI_U32 name_string_idx; +RDI_U32 pad; +RDI_U64 val; +}; + +typedef struct RDI_Namespace RDI_Namespace; +struct RDI_Namespace +{ +RDI_U32 name_string_idx; +RDI_ContainerFlags container_flags; +RDI_U8 padding_0; +RDI_U16 padding_1; +RDI_U32 container_idx; +}; + +typedef struct RDI_Symbol RDI_Symbol; +struct RDI_Symbol +{ +RDI_U32 name_string_idx; +RDI_SymbolFlags symbol_flags; +RDI_ContainerFlags container_flags; +RDI_U16 reserved_0; +RDI_Location location; +RDI_U32 container_idx; +RDI_U32 type_idx; +RDI_U32 root_scope_idx; +RDI_U32 link_name_string_idx; +}; + +typedef struct RDI_Scope RDI_Scope; +struct RDI_Scope +{ +RDI_U32 proc_idx; +RDI_U32 parent_scope_idx; +RDI_U32 first_child_scope_idx; +RDI_U32 next_sibling_scope_idx; +RDI_U32 voff_range_first; +RDI_U32 voff_range_opl; +RDI_U32 local_first; +RDI_U32 local_count; +RDI_U32 inline_site_idx; +}; + +typedef struct RDI_InlineSite RDI_InlineSite; +struct RDI_InlineSite +{ +RDI_U32 name_string_idx; +RDI_U32 type_idx; +RDI_U32 owner_type_idx; +RDI_U32 line_table_idx; +}; + +typedef struct RDI_LocationSetElement RDI_LocationSetElement; +struct RDI_LocationSetElement +{ +RDI_U64 voff_first; +RDI_U64 voff_opl; +RDI_Location location; +}; + +typedef struct RDI_NameMap RDI_NameMap; +struct RDI_NameMap +{ +RDI_U32 bucket_base_idx; +RDI_U32 node_base_idx; +RDI_U32 bucket_count; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapBucket RDI_NameMapBucket; +struct RDI_NameMapBucket +{ +RDI_U32 first_node; +RDI_U32 node_count; +}; + +typedef struct RDI_NameMapNode RDI_NameMapNode; +struct RDI_NameMapNode +{ +RDI_U32 string_idx; +RDI_U32 match_count; +RDI_U32 match_idx_or_idx_run_first; +}; + +typedef RDI_TopLevelInfo RDI_SectionElementType_TopLevelInfo; +typedef RDI_U8 RDI_SectionElementType_StringData; +typedef RDI_U32 RDI_SectionElementType_StringTable; +typedef RDI_U32 RDI_SectionElementType_IndexRuns; +typedef RDI_BinarySection RDI_SectionElementType_BinarySections; +typedef RDI_FilePathNode RDI_SectionElementType_FilePathNodes; +typedef RDI_SourceFile RDI_SectionElementType_SourceFiles; +typedef RDI_LineTable RDI_SectionElementType_LineTables; +typedef RDI_U64 RDI_SectionElementType_LineInfoVOffs; +typedef RDI_Line RDI_SectionElementType_LineInfoLines; +typedef RDI_Column RDI_SectionElementType_LineInfoColumns; +typedef RDI_SourceLineMap RDI_SectionElementType_SourceLineMaps; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapNumbers; +typedef RDI_U32 RDI_SectionElementType_SourceLineMapRanges; +typedef RDI_U64 RDI_SectionElementType_SourceLineMapVOffs; +typedef RDI_Unit RDI_SectionElementType_Units; +typedef RDI_VMapEntry RDI_SectionElementType_UnitVMap; +typedef RDI_Namespace RDI_SectionElementType_Namespaces; +typedef RDI_TypeNode RDI_SectionElementType_TypeNodes; +typedef RDI_UDT RDI_SectionElementType_UDTs; +typedef RDI_Member RDI_SectionElementType_Members; +typedef RDI_EnumMember RDI_SectionElementType_EnumMembers; +typedef RDI_Scope RDI_SectionElementType_Scopes; +typedef RDI_U64 RDI_SectionElementType_ScopeVOffData; +typedef RDI_VMapEntry RDI_SectionElementType_ScopeVMap; +typedef RDI_InlineSite RDI_SectionElementType_InlineSites; +typedef RDI_Symbol RDI_SectionElementType_GlobalVariables; +typedef RDI_VMapEntry RDI_SectionElementType_GlobalVMap; +typedef RDI_Symbol RDI_SectionElementType_ThreadVariables; +typedef RDI_Symbol RDI_SectionElementType_Constants; +typedef RDI_Symbol RDI_SectionElementType_Procedures; +typedef RDI_Symbol RDI_SectionElementType_LocalVariables; +typedef RDI_U8 RDI_SectionElementType_LocationsBytecodeData; +typedef RDI_U8 RDI_SectionElementType_LocationsConstantData; +typedef RDI_LocationSetElement RDI_SectionElementType_LocationsSetElements; +typedef RDI_MD5 RDI_SectionElementType_MD5Checksums; +typedef RDI_SHA1 RDI_SectionElementType_SHA1Checksums; +typedef RDI_SHA256 RDI_SectionElementType_SHA256Checksums; +typedef RDI_U64 RDI_SectionElementType_Timestamps; +typedef RDI_NameMap RDI_SectionElementType_NameMaps; +typedef RDI_NameMapBucket RDI_SectionElementType_NameMapBuckets; +typedef RDI_NameMapNode RDI_SectionElementType_NameMapNodes; + +RDI_PROC RDI_U64 rdi_hash(RDI_U8 *ptr, RDI_U64 size); +RDI_PROC RDI_U8 *rdi_string_from_type_kind(RDI_TypeKind kind, RDI_U64 *size_out); +RDI_PROC RDI_U32 rdi_size_from_basic_type_kind(RDI_TypeKind kind); +RDI_PROC RDI_U32 rdi_addr_size_from_arch(RDI_Arch arch); +RDI_PROC RDI_EvalConversionKind rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); +RDI_PROC RDI_S32 rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group); +RDI_PROC RDI_U8 *rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out); + +extern RDI_U16 rdi_section_element_size_table[44]; +extern RDI_U16 rdi_eval_op_ctrlbits_table[54]; + +#endif // RDI_H diff --git a/src/lib_rdi/rdi_parse.c b/src/lib_rdi/rdi_parse.c index b0ea1ff4..375a07fb 100644 --- a/src/lib_rdi/rdi_parse.c +++ b/src/lib_rdi/rdi_parse.c @@ -342,12 +342,12 @@ rdi_string_from_idx(RDI_Parsed *rdi, RDI_U32 idx, RDI_U64 *len_out) { RDI_U64 string_offs_count = 0; RDI_U32 *string_offs = rdi_table_from_name(rdi, StringTable, &string_offs_count); - if(idx < string_offs_count) + if(idx < string_offs_count && string_offs_count > 1) { RDI_U64 string_data_size = 0; RDI_U8 *string_data = rdi_table_from_name(rdi, StringData, &string_data_size); RDI_U32 off_raw = string_offs[idx]; - RDI_U32 opl_raw = string_offs[idx + 1]; + RDI_U32 opl_raw = idx + 1 < string_offs_count ? string_offs[idx + 1] : string_data_size; RDI_U32 opl = rdi_parse__min(opl_raw, string_data_size); RDI_U32 off = rdi_parse__min(off_raw, opl); result_base = string_data + off; @@ -414,7 +414,7 @@ rdi_parsed_from_line_table(RDI_Parsed *rdi, RDI_LineTable *line_table, RDI_Parse RDI_PROC RDI_U64 rdi_line_info_idx_range_from_voff(RDI_ParsedLineTable *line_info, RDI_U64 voff, RDI_U64 *n_out) { - RDI_U64 result = 0; + RDI_U64 result = max_U64; RDI_U64 n = 0; if(line_info->count > 0 && line_info->voffs[0] <= voff && voff < line_info->voffs[line_info->count - 1]) { @@ -728,7 +728,7 @@ rdi_matches_from_map_node(RDI_Parsed *p, RDI_NameMapNode *node, RDI_U32 *n_out) //- procedures -RDI_PROC RDI_Procedure * +RDI_PROC RDI_Symbol * rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size) { RDI_NameMap *map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Procedures); @@ -742,35 +742,35 @@ rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size) { procedure_idx = ids[0]; } - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_idx); + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, procedure_idx); return procedure; } -RDI_PROC RDI_Procedure * +RDI_PROC RDI_Symbol * rdi_procedure_from_name_cstr(RDI_Parsed *rdi, char *cstr) { - RDI_Procedure *result = rdi_procedure_from_name(rdi, (RDI_U8 *)cstr, rdi_cstring_length(cstr)); + RDI_Symbol *result = rdi_procedure_from_name(rdi, (RDI_U8 *)cstr, rdi_cstring_length(cstr)); return result; } RDI_PROC RDI_U8 * -rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure, RDI_U64 *len_out) +rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure, RDI_U64 *len_out) { return rdi_string_from_idx(rdi, procedure->name_string_idx, len_out); } RDI_PROC RDI_Scope * -rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) +rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure) { RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); return scope; } RDI_PROC RDI_UDT * -rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) +rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure) { RDI_U64 idx = 0; - if(procedure->link_flags & RDI_LinkFlag_TypeScoped) + if((procedure->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Type) { idx = procedure->container_idx; } @@ -778,20 +778,20 @@ rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) return udt; } -RDI_PROC RDI_Procedure * -rdi_container_procedure_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) +RDI_PROC RDI_Scope * +rdi_container_scope_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure) { RDI_U64 idx = 0; - if(procedure->link_flags & RDI_LinkFlag_ProcScoped) + if((procedure->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Scope) { idx = procedure->container_idx; } - RDI_Procedure *container_procedure = rdi_element_from_name_idx(rdi, Procedures, idx); - return container_procedure; + RDI_Scope *container_scope = rdi_element_from_name_idx(rdi, Scopes, idx); + return container_scope; } RDI_PROC RDI_U64 -rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) +rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure) { RDI_Scope *scope = rdi_root_scope_from_procedure(rdi, procedure); RDI_U64 result = rdi_first_voff_from_scope(rdi, scope); @@ -799,18 +799,18 @@ rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) } RDI_PROC RDI_U64 -rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure) +rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure) { RDI_Scope *scope = rdi_root_scope_from_procedure(rdi, procedure); RDI_U64 result = rdi_opl_voff_from_scope(rdi, scope); return result; } -RDI_PROC RDI_Procedure * +RDI_PROC RDI_Symbol * rdi_procedure_from_voff(RDI_Parsed *rdi, RDI_U64 voff) { RDI_Scope *scope = rdi_scope_from_voff(rdi, voff); - RDI_Procedure *procedure = rdi_procedure_from_scope(rdi, scope); + RDI_Symbol *procedure = rdi_procedure_from_scope(rdi, scope); return procedure; } @@ -851,10 +851,10 @@ rdi_parent_from_scope(RDI_Parsed *rdi, RDI_Scope *scope) return parent; } -RDI_PROC RDI_Procedure * +RDI_PROC RDI_Symbol * rdi_procedure_from_scope(RDI_Parsed *rdi, RDI_Scope *scope) { - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, scope->proc_idx); + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, scope->proc_idx); return procedure; } @@ -867,14 +867,49 @@ rdi_inline_site_from_scope(RDI_Parsed *rdi, RDI_Scope *scope) //- global variables -RDI_PROC RDI_GlobalVariable * +RDI_PROC RDI_Symbol * rdi_global_variable_from_voff(RDI_Parsed *rdi, RDI_U64 voff) { RDI_U32 idx = rdi_vmap_idx_from_section_kind_voff(rdi, RDI_SectionKind_GlobalVMap, voff); - RDI_GlobalVariable *gvar = rdi_element_from_name_idx(rdi, GlobalVariables, idx); + RDI_Symbol *gvar = rdi_element_from_name_idx(rdi, GlobalVariables, idx); return gvar; } +//- location picking + +RDI_PROC RDI_Location +rdi_location_from_location_voff(RDI_Parsed *rdi, RDI_Location location, RDI_U64 voff) +{ + RDI_Location result = 0; + if(rdi_kind_from_location(location) != RDI_LocationKind_Set) + { + result = location; + } + else + { + RDI_U64 set_first_idx = rdi_set_first_index_from_location(location); + RDI_U64 set_count = rdi_set_count_from_location(location); + RDI_U64 set_opl_idx = set_first_idx + set_count; + RDI_U64 all_elems_count = 0; + RDI_LocationSetElement *all_elems = rdi_table_from_name(rdi, LocationsSetElements, &all_elems_count); + if(set_opl_idx > all_elems_count) + { + set_opl_idx = all_elems_count; + } + RDI_LocationSetElement *set_first = all_elems + set_first_idx; + RDI_LocationSetElement *set_opl = all_elems + set_opl_idx; + for(RDI_LocationSetElement *e = set_first; e < set_opl; e += 1) + { + if(e->voff_first <= voff && voff <= e->voff_opl) + { + result = e->location; + break; + } + } + } + return result; +} + //- units RDI_PROC RDI_Unit * @@ -2446,5 +2481,3 @@ SINTa rr_lzb_simple_encode_veryfast(rr_lzb_simple_context * fh, #undef DO_FAST_LAZY_MATCH #undef DO_FAST_2ND_HASH -//===================================================== -// vim:noet:sw=4:ts=4 diff --git a/src/lib_rdi/rdi_parse.h b/src/lib_rdi/rdi_parse.h index b03f0bc4..5349348d 100644 --- a/src/lib_rdi/rdi_parse.h +++ b/src/lib_rdi/rdi_parse.h @@ -122,13 +122,10 @@ static union RDI_UDT udt; RDI_Member member; RDI_EnumMember enum_member; - RDI_GlobalVariable global_variable; - RDI_ThreadVariable thread_variable; - RDI_Procedure procedure; + RDI_Symbol symbol; RDI_Scope scope; RDI_U64 voff; - RDI_LocationBlock location_block; - RDI_Local local; + RDI_LocationSetElement location_set_element; } rdi_nil_element_union = {0}; static RDI_Parsed rdi_parsed_nil = {0}; @@ -171,8 +168,7 @@ RDI_PROC RDI_U64 *rdi_line_voffs_from_num(RDI_ParsedSourceLineMap *map, RDI_U32 RDI_PROC RDI_U64 rdi_vmap_idx_from_voff(RDI_VMapEntry *vmap, RDI_U64 vmap_count, RDI_U64 voff); //- name maps -RDI_PROC RDI_NameMap *rdi_name_map_from_kind(RDI_Parsed *p, RDI_NameMapKind kind); -RDI_PROC void rdi_name_map_parse(RDI_Parsed* p, RDI_NameMap *mapptr, RDI_ParsedNameMap *out); +RDI_PROC void rdi_parsed_from_name_map(RDI_Parsed* p, RDI_NameMap *mapptr, RDI_ParsedNameMap *out); RDI_PROC RDI_NameMapNode *rdi_name_map_lookup(RDI_Parsed *p, RDI_ParsedNameMap *map, RDI_U8 *str, RDI_U64 len); RDI_PROC RDI_U32 *rdi_matches_from_map_node(RDI_Parsed *p, RDI_NameMapNode *node, RDI_U32 *n_out); @@ -180,26 +176,29 @@ RDI_PROC RDI_U32 *rdi_matches_from_map_node(RDI_Parsed *p, RDI_NameMapNode *node //~ High-Level Composite Lookup Functions //- procedures -RDI_PROC RDI_Procedure *rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); -RDI_PROC RDI_Procedure *rdi_procedure_from_name_cstr(RDI_Parsed *rdi, char *cstr); -RDI_PROC RDI_U8 *rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure, RDI_U64 *len_out); -RDI_PROC RDI_Scope *rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_UDT *rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_Procedure *rdi_container_procedure_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_U64 rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_U64 rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Procedure *procedure); -RDI_PROC RDI_Procedure *rdi_procedure_from_voff(RDI_Parsed *rdi, RDI_U64 voff); +RDI_PROC RDI_Symbol *rdi_procedure_from_name(RDI_Parsed *rdi, RDI_U8 *name, RDI_U64 name_size); +RDI_PROC RDI_Symbol *rdi_procedure_from_name_cstr(RDI_Parsed *rdi, char *cstr); +RDI_PROC RDI_U8 *rdi_name_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure, RDI_U64 *len_out); +RDI_PROC RDI_Scope *rdi_root_scope_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure); +RDI_PROC RDI_UDT *rdi_container_udt_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure); +RDI_PROC RDI_Scope *rdi_container_scope_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure); +RDI_PROC RDI_U64 rdi_first_voff_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure); +RDI_PROC RDI_U64 rdi_opl_voff_from_procedure(RDI_Parsed *rdi, RDI_Symbol *procedure); +RDI_PROC RDI_Symbol *rdi_procedure_from_voff(RDI_Parsed *rdi, RDI_U64 voff); //- scopes RDI_PROC RDI_U64 rdi_first_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); RDI_PROC RDI_U64 rdi_opl_voff_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); RDI_PROC RDI_Scope *rdi_scope_from_voff(RDI_Parsed *rdi, RDI_U64 voff); RDI_PROC RDI_Scope *rdi_parent_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); -RDI_PROC RDI_Procedure *rdi_procedure_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); +RDI_PROC RDI_Symbol *rdi_procedure_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); RDI_PROC RDI_InlineSite *rdi_inline_site_from_scope(RDI_Parsed *rdi, RDI_Scope *scope); //- global variables -RDI_PROC RDI_GlobalVariable *rdi_global_variable_from_voff(RDI_Parsed *rdi, RDI_U64 voff); +RDI_PROC RDI_Symbol *rdi_global_variable_from_voff(RDI_Parsed *rdi, RDI_U64 voff); + +//- location picking +RDI_PROC RDI_Location rdi_location_from_location_voff(RDI_Parsed *rdi, RDI_Location location, RDI_U64 voff); //- units RDI_PROC RDI_Unit *rdi_unit_from_voff(RDI_Parsed *rdi, RDI_U64 voff); diff --git a/src/lib_rdi_make/rdi_make.c b/src/lib_rdi_make/rdi_make.c index 3a26b89d..86f9970d 100644 --- a/src/lib_rdi_make/rdi_make.c +++ b/src/lib_rdi_make/rdi_make.c @@ -5,50 +5,50 @@ //~ rjf: API Implementation Helper Macros #define RDIM_IdxedChunkListPush(arena, list, chunk_type, element_type, cap_value, result, ...) \ -element_type *result = 0;\ -do\ -{\ -chunk_type *n = list->last;\ -if(n == 0 || n->count >= n->cap)\ -{\ -n = rdim_push_array(arena, chunk_type, 1);\ -n->cap = cap_value;\ -n->base_idx = list->total_count;\ -__VA_ARGS__;\ -n->v = rdim_push_array_no_zero(arena, element_type, n->cap);\ -RDIM_SLLQueuePush(list->first, list->last, n);\ -list->chunk_count += 1;\ -}\ -result = &n->v[n->count];\ -result->chunk = n;\ -n->count += 1;\ -list->total_count += 1;\ +element_type *result = 0; \ +do \ +{ \ +chunk_type *n = list->last; \ +if(n == 0 || n->count >= n->cap) \ +{ \ +n = rdim_push_array(arena, chunk_type, 1); \ +n->cap = cap_value; \ +n->base_idx = list->total_count; \ +__VA_ARGS__; \ +n->v = rdim_push_array_no_zero(arena, element_type, n->cap); \ +RDIM_SLLQueuePush(list->first, list->last, n); \ +list->chunk_count += 1; \ +} \ +result = &n->v[n->count]; \ +result->chunk = n; \ +n->count += 1; \ +list->total_count += 1; \ }while(0) -#define RDIM_IdxedChunkListElementGetIdx(ptr, result) \ -RDI_U64 idx = 0;\ -if(ptr != 0 && ptr->chunk != 0)\ -{\ -idx = ptr->chunk->base_idx + (ptr - ptr->chunk->v) + 1;\ +#define RDIM_IdxedChunkListElementGetIdx(ptr, result) \ +RDI_U64 idx = 0; \ +if(ptr != 0 && ptr->chunk != 0) \ +{ \ +idx = ptr->chunk->base_idx + (ptr - ptr->chunk->v) + 1; \ } #define RDIM_IdxedChunkListConcatInPlace(chunk_type, dst, to_push, ...) \ -for(chunk_type *n = to_push->first; n != 0; n = n->next)\ -{\ -n->base_idx += dst->total_count;\ -}\ -if(dst->last != 0 && to_push->first != 0)\ -{\ -dst->last->next = to_push->first;\ -dst->last = to_push->last;\ -dst->chunk_count += to_push->chunk_count;\ -dst->total_count += to_push->total_count;\ -__VA_ARGS__;\ -}\ -else if(dst->first == 0)\ -{\ -rdim_memcpy_struct(dst, to_push);\ -}\ +for(chunk_type *n = to_push->first; n != 0; n = n->next) \ +{ \ +n->base_idx += dst->total_count; \ +} \ +if(dst->last != 0 && to_push->first != 0) \ +{ \ +dst->last->next = to_push->first; \ +dst->last = to_push->last; \ +dst->chunk_count += to_push->chunk_count; \ +dst->total_count += to_push->total_count; \ +__VA_ARGS__; \ +} \ +else if(dst->first == 0) \ +{ \ +rdim_memcpy_struct(dst, to_push); \ +} \ rdim_memzero_struct(to_push); //////////////////////////////// @@ -255,6 +255,20 @@ rdim_lower_from_str8(RDIM_Arena *arena, RDIM_String8 string) return result; } +RDI_PROC RDIM_String8 +rdim_normalized_from_path(RDIM_Arena *arena, RDIM_String8 path) +{ + RDIM_String8 result = rdim_lower_from_str8(arena, path); + for(RDI_U64 i = 0; i < result.RDIM_String8_SizeMember; i += 1) + { + if(result.RDIM_String8_BaseMember[i] == '\\') + { + result.RDIM_String8_BaseMember[i] = '/'; + } + } + return result; +} + //- rjf: string lists RDI_PROC void @@ -531,7 +545,7 @@ rdim_rng1u64_chunk_list_push(RDIM_Arena *arena, RDIM_Rng1U64ChunkList *list, RDI RDI_PROC RDI_TypeKind rdim_short_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -547,7 +561,7 @@ rdim_short_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_unsigned_short_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -563,7 +577,7 @@ rdim_unsigned_short_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_int_type_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -579,7 +593,7 @@ rdim_int_type_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -595,7 +609,7 @@ rdim_unsigned_int_type_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_long_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -611,7 +625,7 @@ rdim_long_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_unsigned_long_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -627,7 +641,7 @@ rdim_unsigned_long_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_long_long_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -643,7 +657,7 @@ rdim_long_long_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_unsigned_long_long_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -659,7 +673,7 @@ rdim_unsigned_long_long_type_kind_from_data_model(RDIM_DataModel data_model) RDI_PROC RDI_TypeKind rdim_pointer_size_t_type_kind_from_data_model(RDIM_DataModel data_model) { - RDI_TypeKind result = RDI_TypeKind_NULL; + RDI_TypeKind result = RDI_TypeKind_Null; switch((RDIM_DataModelEnum)data_model) { case RDIM_DataModel_Null:{}break; @@ -792,6 +806,29 @@ rdim_unit_chunk_list_concat_in_place(RDIM_UnitChunkList *dst, RDIM_UnitChunkList RDIM_IdxedChunkListConcatInPlace(RDIM_UnitChunkNode, dst, to_push); } +//////////////////////////////// +//~ rjf: [Building] Namespace Info Building + +RDI_PROC RDIM_Namespace * +rdim_namespace_chunk_list_push(RDIM_Arena *arena, RDIM_NamespaceChunkList *list, RDI_U64 cap) +{ + RDIM_IdxedChunkListPush(arena, list, RDIM_NamespaceChunkNode, RDIM_Namespace, cap, result); + return result; +} + +RDI_PROC RDI_U64 +rdim_idx_from_namespace(RDIM_Namespace *ns) +{ + RDIM_IdxedChunkListElementGetIdx(ns, idx); + return idx; +} + +RDI_PROC void +rdim_namespace_chunk_list_concat_in_place(RDIM_NamespaceChunkList *dst, RDIM_NamespaceChunkList *to_push) +{ + RDIM_IdxedChunkListConcatInPlace(RDIM_NamespaceChunkNode, dst, to_push); +} + //////////////////////////////// //~ rjf: [Building] Type Info Building @@ -903,14 +940,7 @@ rdim_idx_from_symbol(RDIM_Symbol *symbol) RDI_PROC void rdim_symbol_chunk_list_concat_in_place(RDIM_SymbolChunkList *dst, RDIM_SymbolChunkList *to_push) { - RDIM_IdxedChunkListConcatInPlace(RDIM_SymbolChunkNode, dst, to_push, dst->total_value_data_size += to_push->total_value_data_size); -} - -internal void -rdim_symbol_push_value_data(RDIM_Arena *arena, RDIM_SymbolChunkList *list, RDIM_Symbol *symbol, RDIM_String8 data) -{ - symbol->value_data = rdim_str8_copy(arena, data); - list->total_value_data_size += data.size; + RDIM_IdxedChunkListConcatInPlace(RDIM_SymbolChunkNode, dst, to_push); } //////////////////////////////// @@ -939,8 +969,6 @@ rdim_inline_site_chunk_list_concat_in_place(RDIM_InlineSiteChunkList *dst, RDIM_ //////////////////////////////// //~ rjf: [Building] Location Info Building -//- rjf: bytecode - RDI_PROC RDIM_EvalBytecodeOp * rdim_bytecode_push_op(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_EvalOp op, RDI_U64 p) { @@ -1045,69 +1073,14 @@ rdim_is_bytecode_tls_dependent(RDIM_EvalBytecode bytecode) return result; } -//- rjf: locations - -RDI_PROC RDI_U64 -rdim_encoded_size_from_location_info(RDIM_LocationInfo *info) -{ - RDI_U64 result = 0; - switch((RDI_LocationKindEnum)info->kind) - { - case RDI_LocationKind_NULL:{}break; - - case RDI_LocationKind_AddrBytecodeStream: - case RDI_LocationKind_ValBytecodeStream: - { - result = sizeof(RDI_LocationBytecodeStream) + info->bytecode.encoded_size + 1; - }break; - - case RDI_LocationKind_AddrRegPlusU16: - case RDI_LocationKind_AddrAddrRegPlusU16: - { - result = sizeof(RDI_LocationRegPlusU16); - }break; - - case RDI_LocationKind_ValReg: - { - result = sizeof(RDI_LocationReg); - }break; - } - return result; -} - -RDI_PROC RDIM_Location * -rdim_location_chunk_list_push_new(RDIM_Arena *arena, RDIM_LocationChunkList *list, RDI_U64 cap, RDIM_LocationInfo *info) -{ - RDIM_IdxedChunkListPush(arena, list, RDIM_LocationChunkNode, RDIM_Location, cap, result, n->base_encoding_off = list->total_encoded_size); - { - RDI_U64 encoded_size = rdim_encoded_size_from_location_info(info); - rdim_memcpy_struct(&result->info, info); - result->relative_encoding_off = list->last->encoded_size; - list->last->encoded_size += encoded_size; - list->total_encoded_size += encoded_size; - } - return result; -} - -RDI_PROC RDI_U64 -rdim_off_from_location(RDIM_Location *location) -{ - RDI_U64 off = 0; - if(location != 0 && location->chunk != 0) - { - off = location->chunk->base_encoding_off + location->relative_encoding_off + 1; - } - return off; -} - RDI_PROC void -rdim_location_chunk_list_concat_in_place(RDIM_LocationChunkList *dst, RDIM_LocationChunkList *to_push) +rdim_location_case_list_push(RDIM_Arena *arena, RDIM_LocationCaseList *cases, RDIM_Location loc, RDIM_Rng1U64 range) { - for(RDIM_LocationChunkNode *n = to_push->first; n != 0; n = n->next) - { - n->base_encoding_off += dst->total_encoded_size; - } - RDIM_IdxedChunkListConcatInPlace(RDIM_LocationChunkNode, dst, to_push, dst->total_encoded_size += to_push->total_encoded_size); + RDIM_LocationCase *n = rdim_push_array(arena, RDIM_LocationCase, 1); + RDIM_SLLQueuePush(cases->first, cases->last, n); + cases->count += 1; + n->location = loc; + n->voff_range = range; } //////////////////////////////// @@ -1132,8 +1105,7 @@ rdim_scope_chunk_list_concat_in_place(RDIM_ScopeChunkList *dst, RDIM_ScopeChunkL { RDIM_IdxedChunkListConcatInPlace(RDIM_ScopeChunkNode, dst, to_push, dst->scope_voff_count += to_push->scope_voff_count, - dst->local_count += to_push->local_count, - dst->location_case_count += to_push->location_case_count); + dst->local_count += to_push->local_count); } RDI_PROC void @@ -1143,34 +1115,6 @@ rdim_scope_push_voff_range(RDIM_Arena *arena, RDIM_ScopeChunkList *list, RDIM_Sc list->scope_voff_count += 2; } -RDI_PROC RDIM_Local * -rdim_scope_push_local(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *scope) -{ - RDIM_Local *local = rdim_push_array(arena, RDIM_Local, 1); - RDIM_SLLQueuePush(scope->first_local, scope->last_local, local); - scope->local_count += 1; - scopes->local_count += 1; - return local; -} - -RDI_PROC RDIM_LocationCase * -rdim_push_location_case(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_LocationCaseList *list, RDIM_Location *location, RDIM_Rng1U64 voff_range) -{ - RDIM_LocationCase *n = rdim_push_array(arena, RDIM_LocationCase, 1); - RDIM_SLLQueuePush(list->first, list->last, n); - list->count += 1; - n->location = location; - n->voff_range = voff_range; - scopes->location_case_count += 1; - return n; -} - -RDI_PROC RDIM_LocationCase * -rdim_local_push_location_case(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Local *local, RDIM_Location *location, RDIM_Rng1U64 voff_range) -{ - return rdim_push_location_case(arena, scopes, &local->location_cases, location, voff_range); -} - //////////////////////////////// //~ rjf: [Building] Bake Parameter Joining @@ -1250,13 +1194,7 @@ rdim_bake_params_concat_in_place(RDIM_BakeParams *dst, RDIM_BakeParams *src) rdim_udt_chunk_list_concat_in_place(&dst->udts, &src->udts); rdim_src_file_chunk_list_concat_in_place(&dst->src_files, &src->src_files); rdim_line_table_chunk_list_concat_in_place(&dst->line_tables, &src->line_tables); - rdim_location_chunk_list_concat_in_place(&dst->locations, &src->locations); - rdim_symbol_chunk_list_concat_in_place(&dst->global_variables, &src->global_variables); - rdim_symbol_chunk_list_concat_in_place(&dst->thread_variables, &src->thread_variables); - rdim_symbol_chunk_list_concat_in_place(&dst->constants, &src->constants); - rdim_symbol_chunk_list_concat_in_place(&dst->procedures, &src->procedures); - rdim_scope_chunk_list_concat_in_place(&dst->scopes, &src->scopes); - rdim_inline_site_chunk_list_concat_in_place(&dst->inline_sites, &src->inline_sites); + rdim_namespace_chunk_list_concat_in_place(&dst->namespaces, &src->namespaces); } } @@ -1685,7 +1623,7 @@ RDI_PROC RDI_U32 rdim_bake_idx_from_idx_run(RDIM_BakeIdxRunMap *map, RDI_U32 *idxes, RDI_U32 count) { RDI_U32 idx = 0; - if(count != 0) + if(count != 0 && map->slots_count != 0) { RDI_U64 hash = rdim_hash_from_idx_run(idxes, count); RDI_U64 slot_idx = hash%map->slots_count; @@ -1872,10 +1810,10 @@ rdim_bake_name_map_insert(RDIM_Arena *arena, RDIM_BakeNameMapTopology *map_topol RDI_S32 is_duplicate = 0; for(RDIM_BakeNameChunkNode *n = slot->first; n != 0; n = n->next) { - for(RDI_U64 idx = 0; idx < n->count; idx += 1) + for(RDI_U64 n_idx = 0; n_idx < n->count; n_idx += 1) { - if(rdim_str8_match(n->v[idx].string, string, 0) && - n->v[idx].idx == idx) + if(rdim_str8_match(n->v[n_idx].string, string, 0) && + n->v[n_idx].idx == idx) { is_duplicate = 1; goto break_all; @@ -1904,12 +1842,26 @@ rdim_bake_path_node_from_string(RDIM_BakePathTree *tree, RDIM_String8 string) RDI_U8 *opl = string.str + string.size; for(;ptr < opl && node != 0;) { - // rjf: skip past slashes - for(;ptr < opl && (*ptr == '/' || *ptr == '\\'); ptr += 1); + // rjf: skip past non-leading slashes + RDI_U32 leading_slash = 0; + if(ptr > string.str) + { + for(;ptr < opl && (*ptr == '/' || *ptr == '\\'); ptr += 1); + } + else if(ptr < opl) + { + leading_slash = (*ptr == '/'); + } // rjf: save beginning of non-slash range RDI_U8 *range_first = ptr; + // rjf: advance past leading slash + if(leading_slash) + { + ptr += 1; + } + // rjf: skip past non-slashes for(;ptr < opl && !(*ptr == '/' || *ptr == '\\'); ptr += 1); @@ -1933,15 +1885,12 @@ rdim_bake_path_node_from_string(RDIM_BakePathTree *tree, RDIM_String8 string) } // rjf: .. -> go up - if(sub_dir.RDIM_String8_SizeMember == 2 && - sub_dir.RDIM_String8_BaseMember[0] == '.' && - sub_dir.RDIM_String8_BaseMember[1] == '.') + if(node->parent != 0 && + (sub_dir.RDIM_String8_SizeMember == 2 && + sub_dir.RDIM_String8_BaseMember[0] == '.' && + sub_dir.RDIM_String8_BaseMember[1] == '.')) { sub_dir_node = node->parent; - if(sub_dir_node == 0) - { - sub_dir_node = &tree->root; - } } // rjf: . -> stay here @@ -1977,12 +1926,26 @@ rdim_bake_path_tree_insert(RDIM_Arena *arena, RDIM_BakePathTree *tree, RDIM_Stri RDI_U8 *opl = string.str + string.size; for(;ptr < opl;) { - // rjf: skip past slashes - for(;ptr < opl && (*ptr == '/' || *ptr == '\\'); ptr += 1); + // rjf: skip past non-leading slashes + RDI_U32 leading_slash = 0; + if(ptr > string.str) + { + for(;ptr < opl && (*ptr == '/' || *ptr == '\\'); ptr += 1); + } + else if(ptr < opl) + { + leading_slash = (*ptr == '/'); + } - // rjf: save beginning of non-slash range + // rjf: save beginning of path part RDI_U8 *range_first = ptr; + // rjf: advance past leading slash + if(leading_slash) + { + ptr += 1; + } + // rjf: skip past non-slashes for(;ptr < opl && !(*ptr == '/' || *ptr == '\\'); ptr += 1); @@ -2006,15 +1969,12 @@ rdim_bake_path_tree_insert(RDIM_Arena *arena, RDIM_BakePathTree *tree, RDIM_Stri } // rjf: .. -> go up - if(sub_dir.RDIM_String8_SizeMember == 2 && - sub_dir.RDIM_String8_BaseMember[0] == '.' && - sub_dir.RDIM_String8_BaseMember[1] == '.') + if(node->parent != 0 && + (sub_dir.RDIM_String8_SizeMember == 2 && + sub_dir.RDIM_String8_BaseMember[0] == '.' && + sub_dir.RDIM_String8_BaseMember[1] == '.')) { sub_dir_node = node->parent; - if(sub_dir_node == 0) - { - sub_dir_node = &tree->root; - } } // rjf: . -> stay here @@ -2098,55 +2058,6 @@ rdim_serialized_section_make_unpacked(void *data, RDI_U64 size) return s; } -RDI_PROC RDIM_SerializedSectionBundle -rdim_serialized_section_bundle_from_bake_results(RDIM_BakeResults *results) -{ - RDIM_SerializedSectionBundle bundle; - rdim_memzero_struct(&bundle); - bundle.sections[RDI_SectionKind_TopLevelInfo] = rdim_serialized_section_make_unpacked_struct(&results->top_level_info.top_level_info); - bundle.sections[RDI_SectionKind_StringData] = rdim_serialized_section_make_unpacked_array(results->strings.string_data, results->strings.string_data_size); - bundle.sections[RDI_SectionKind_StringTable] = rdim_serialized_section_make_unpacked_array(results->strings.string_offs, results->strings.string_offs_count); - bundle.sections[RDI_SectionKind_IndexRuns] = rdim_serialized_section_make_unpacked_array(results->idx_runs.idx_runs, results->idx_runs.idx_count); - bundle.sections[RDI_SectionKind_BinarySections] = rdim_serialized_section_make_unpacked_array(results->binary_sections.binary_sections, results->binary_sections.binary_sections_count); - bundle.sections[RDI_SectionKind_FilePathNodes] = rdim_serialized_section_make_unpacked_array(results->file_paths.nodes, results->file_paths.nodes_count); - bundle.sections[RDI_SectionKind_SourceFiles] = rdim_serialized_section_make_unpacked_array(results->src_files.source_files, results->src_files.source_files_count); - bundle.sections[RDI_SectionKind_LineTables] = rdim_serialized_section_make_unpacked_array(results->line_tables.line_tables, results->line_tables.line_tables_count); - bundle.sections[RDI_SectionKind_LineInfoVOffs] = rdim_serialized_section_make_unpacked_array(results->line_tables.line_table_voffs, results->line_tables.line_table_voffs_count); - bundle.sections[RDI_SectionKind_LineInfoLines] = rdim_serialized_section_make_unpacked_array(results->line_tables.line_table_lines, results->line_tables.line_table_lines_count); - bundle.sections[RDI_SectionKind_LineInfoColumns] = rdim_serialized_section_make_unpacked_array(results->line_tables.line_table_columns, results->line_tables.line_table_columns_count); - bundle.sections[RDI_SectionKind_SourceLineMaps] = rdim_serialized_section_make_unpacked_array(results->src_files.source_line_maps, results->src_files.source_line_maps_count); - bundle.sections[RDI_SectionKind_SourceLineMapNumbers] = rdim_serialized_section_make_unpacked_array(results->src_files.source_line_map_nums, results->src_files.source_line_map_nums_count); - bundle.sections[RDI_SectionKind_SourceLineMapRanges] = rdim_serialized_section_make_unpacked_array(results->src_files.source_line_map_rngs, results->src_files.source_line_map_rngs_count); - bundle.sections[RDI_SectionKind_SourceLineMapVOffs] = rdim_serialized_section_make_unpacked_array(results->src_files.source_line_map_voffs, results->src_files.source_line_map_voffs_count); - bundle.sections[RDI_SectionKind_Units] = rdim_serialized_section_make_unpacked_array(results->units.units, results->units.units_count); - bundle.sections[RDI_SectionKind_UnitVMap] = rdim_serialized_section_make_unpacked_array(results->unit_vmap.vmap.vmap, results->unit_vmap.vmap.count); - bundle.sections[RDI_SectionKind_TypeNodes] = rdim_serialized_section_make_unpacked_array(results->type_nodes.type_nodes, results->type_nodes.type_nodes_count); - bundle.sections[RDI_SectionKind_UDTs] = rdim_serialized_section_make_unpacked_array(results->udts.udts, results->udts.udts_count); - bundle.sections[RDI_SectionKind_Members] = rdim_serialized_section_make_unpacked_array(results->udts.members, results->udts.members_count); - bundle.sections[RDI_SectionKind_EnumMembers] = rdim_serialized_section_make_unpacked_array(results->udts.enum_members, results->udts.enum_members_count); - bundle.sections[RDI_SectionKind_GlobalVariables] = rdim_serialized_section_make_unpacked_array(results->global_variables.global_variables, results->global_variables.global_variables_count); - bundle.sections[RDI_SectionKind_GlobalVMap] = rdim_serialized_section_make_unpacked_array(results->global_vmap.vmap.vmap, results->global_vmap.vmap.count); - bundle.sections[RDI_SectionKind_ThreadVariables] = rdim_serialized_section_make_unpacked_array(results->thread_variables.thread_variables, results->thread_variables.thread_variables_count); - bundle.sections[RDI_SectionKind_Constants] = rdim_serialized_section_make_unpacked_array(results->constants.constants, results->constants.constants_count); - bundle.sections[RDI_SectionKind_Procedures] = rdim_serialized_section_make_unpacked_array(results->procedures.procedures, results->procedures.procedures_count); - bundle.sections[RDI_SectionKind_Scopes] = rdim_serialized_section_make_unpacked_array(results->scopes.scopes, results->scopes.scopes_count); - bundle.sections[RDI_SectionKind_ScopeVOffData] = rdim_serialized_section_make_unpacked_array(results->scopes.scope_voffs, results->scopes.scope_voffs_count); - bundle.sections[RDI_SectionKind_ScopeVMap] = rdim_serialized_section_make_unpacked_array(results->scope_vmap.vmap.vmap, results->scope_vmap.vmap.count); - bundle.sections[RDI_SectionKind_InlineSites] = rdim_serialized_section_make_unpacked_array(results->inline_sites.inline_sites, results->inline_sites.inline_sites_count); - bundle.sections[RDI_SectionKind_Locals] = rdim_serialized_section_make_unpacked_array(results->scopes.locals, results->scopes.locals_count); - bundle.sections[RDI_SectionKind_LocationBlocks] = rdim_serialized_section_make_unpacked_array(results->location_blocks.location_blocks, results->location_blocks.location_blocks_count); - bundle.sections[RDI_SectionKind_LocationData] = rdim_serialized_section_make_unpacked_array(results->locations.location_data, results->locations.location_data_size); - bundle.sections[RDI_SectionKind_ConstantValueData] = rdim_serialized_section_make_unpacked_array(results->constants.constant_value_data, results->constants.constant_value_data_size); - bundle.sections[RDI_SectionKind_ConstantValueTable] = rdim_serialized_section_make_unpacked_array(results->constants.constant_values, results->constants.constant_values_count); - bundle.sections[RDI_SectionKind_MD5Checksums] = rdim_serialized_section_make_unpacked_array(results->checksums.md5s, results->checksums.md5s_count); - bundle.sections[RDI_SectionKind_SHA1Checksums] = rdim_serialized_section_make_unpacked_array(results->checksums.sha1s, results->checksums.sha1s_count); - bundle.sections[RDI_SectionKind_SHA256Checksums] = rdim_serialized_section_make_unpacked_array(results->checksums.sha256s, results->checksums.sha256s_count); - bundle.sections[RDI_SectionKind_NameMaps] = rdim_serialized_section_make_unpacked_array(results->top_level_name_maps.name_maps, results->top_level_name_maps.name_maps_count); - bundle.sections[RDI_SectionKind_NameMapBuckets] = rdim_serialized_section_make_unpacked_array(results->name_maps.buckets, results->name_maps.buckets_count); - bundle.sections[RDI_SectionKind_NameMapNodes] = rdim_serialized_section_make_unpacked_array(results->name_maps.nodes, results->name_maps.nodes_count); - return bundle; -} - RDI_PROC RDIM_String8List rdim_file_blobs_from_section_bundle(RDIM_Arena *arena, RDIM_SerializedSectionBundle *bundle) { diff --git a/src/lib_rdi_make/rdi_make.h b/src/lib_rdi_make/rdi_make.h index 9eb8829d..f7ee2a40 100644 --- a/src/lib_rdi_make/rdi_make.h +++ b/src/lib_rdi_make/rdi_make.h @@ -9,7 +9,7 @@ // proper flattened RDI format. // // Requires prior inclusion of the RAD Debug Info, (R)AD(D)BG(I) -// Format Library, in rdi_format.h. +// Format Library, in rdi.h. #ifndef RDI_MAKE_H #define RDI_MAKE_H @@ -629,38 +629,33 @@ struct RDIM_LineTableChunkList }; //////////////////////////////// -//~ rjf: Per-Compilation-Unit Info Types +//~ rjf: Namespace Types -typedef struct RDIM_Unit RDIM_Unit; -struct RDIM_Unit +typedef struct RDIM_Namespace RDIM_Namespace; +struct RDIM_Namespace { - struct RDIM_UnitChunkNode *chunk; - RDIM_String8 unit_name; - RDIM_String8 compiler_name; - RDIM_String8 source_file; - RDIM_String8 object_file; - RDIM_String8 archive_file; - RDIM_String8 build_path; - RDI_Language language; - RDIM_LineTable *line_table; - RDIM_Rng1U64ChunkList voff_ranges; + struct RDIM_NamespaceChunkNode *chunk; + RDIM_Namespace *parent_namespace; + struct RDIM_Scope *parent_scope; + struct RDIM_Type *parent_type; + RDIM_String8 name; }; -typedef struct RDIM_UnitChunkNode RDIM_UnitChunkNode; -struct RDIM_UnitChunkNode +typedef struct RDIM_NamespaceChunkNode RDIM_NamespaceChunkNode; +struct RDIM_NamespaceChunkNode { - RDIM_UnitChunkNode *next; - RDIM_Unit *v; + RDIM_NamespaceChunkNode *next; + RDIM_Namespace *v; RDI_U64 count; RDI_U64 cap; RDI_U64 base_idx; }; -typedef struct RDIM_UnitChunkList RDIM_UnitChunkList; -struct RDIM_UnitChunkList +typedef struct RDIM_NamespaceChunkList RDIM_NamespaceChunkList; +struct RDIM_NamespaceChunkList { - RDIM_UnitChunkNode *first; - RDIM_UnitChunkNode *last; + RDIM_NamespaceChunkNode *first; + RDIM_NamespaceChunkNode *last; RDI_U64 chunk_count; RDI_U64 total_count; }; @@ -690,7 +685,6 @@ struct RDIM_Type RDI_U32 off; RDI_U32 count; RDIM_String8 name; - RDIM_String8 link_name; RDIM_Type *direct_type; RDIM_Type **param_types; struct RDIM_UDT *udt; @@ -706,9 +700,9 @@ struct RDIM_TypeNode typedef struct RDIM_TypeList RDIM_TypeList; struct RDIM_TypeList { - U64 count; RDIM_TypeNode *first; RDIM_TypeNode *last; + U64 count; }; typedef struct RDIM_TypeChunkNode RDIM_TypeChunkNode; @@ -771,6 +765,9 @@ struct RDIM_UDT RDIM_SrcFile *src_file; RDI_U32 line; RDI_U32 col; + struct RDIM_Scope *container_scope; + RDIM_Namespace *container_namespace; + RDIM_Type *container_type; }; typedef struct RDIM_UDTChunkNode RDIM_UDTChunkNode; @@ -819,52 +816,21 @@ struct RDIM_EvalBytecode //- rjf: location types -typedef struct RDIM_LocationInfo RDIM_LocationInfo; -struct RDIM_LocationInfo -{ - RDI_LocationKind kind; - RDI_U8 reg_code; - RDI_U16 offset; - RDIM_EvalBytecode bytecode; -}; - typedef struct RDIM_Location RDIM_Location; struct RDIM_Location { - struct RDIM_LocationChunkNode *chunk; - RDIM_LocationInfo info; - RDI_U64 relative_encoding_off; + RDI_LocationKind kind; + RDI_U8 reg_code; + RDI_U64 offset; + RDIM_EvalBytecode bytecode; + String8 value_data; }; -typedef struct RDIM_LocationChunkNode RDIM_LocationChunkNode; -struct RDIM_LocationChunkNode -{ - RDIM_LocationChunkNode *next; - RDIM_Location *v; - RDI_U64 count; - RDI_U64 cap; - RDI_U64 base_idx; - RDI_U64 base_encoding_off; - RDI_U64 encoded_size; -}; - -typedef struct RDIM_LocationChunkList RDIM_LocationChunkList; -struct RDIM_LocationChunkList -{ - RDIM_LocationChunkNode *first; - RDIM_LocationChunkNode *last; - RDI_U64 chunk_count; - RDI_U64 total_count; - RDI_U64 total_encoded_size; -}; - -//- rjf: location cases - typedef struct RDIM_LocationCase RDIM_LocationCase; struct RDIM_LocationCase { RDIM_LocationCase *next; - RDIM_Location *location; + RDIM_Location location; RDIM_Rng1U64 voff_range; }; @@ -883,16 +849,17 @@ typedef struct RDIM_Symbol RDIM_Symbol; struct RDIM_Symbol { struct RDIM_SymbolChunkNode *chunk; + RDI_S32 is_thunk; RDI_S32 is_extern; + RDI_S32 is_param; RDIM_String8 name; RDIM_String8 link_name; RDIM_Type *type; - RDI_U64 offset; - RDIM_Symbol *container_symbol; + struct RDIM_Scope *container_scope; RDIM_Type *container_type; + RDIM_Namespace *container_namespace; struct RDIM_Scope *root_scope; RDIM_LocationCaseList location_cases; - RDIM_String8 value_data; }; typedef struct RDIM_SymbolChunkNode RDIM_SymbolChunkNode; @@ -912,7 +879,6 @@ struct RDIM_SymbolChunkList RDIM_SymbolChunkNode *last; RDI_U64 chunk_count; RDI_U64 total_count; - RDI_U64 total_value_data_size; }; //////////////////////////////// @@ -950,16 +916,6 @@ struct RDIM_InlineSiteChunkList //////////////////////////////// //~ rjf: Scope Info Types -typedef struct RDIM_Local RDIM_Local; -struct RDIM_Local -{ - RDIM_Local *next; - RDI_LocalKind kind; - RDIM_String8 name; - RDIM_Type *type; - RDIM_LocationCaseList location_cases; -}; - typedef struct RDIM_Scope RDIM_Scope; struct RDIM_Scope { @@ -970,10 +926,8 @@ struct RDIM_Scope RDIM_Scope *last_child; RDIM_Scope *next_sibling; RDIM_Rng1U64List voff_ranges; - RDIM_Local *first_local; - RDIM_Local *last_local; - RDI_U32 local_count; RDIM_InlineSite *inline_site; + RDIM_SymbolChunkList locals; }; typedef struct RDIM_ScopeChunkNode RDIM_ScopeChunkNode; @@ -995,7 +949,49 @@ struct RDIM_ScopeChunkList RDI_U64 total_count; RDI_U64 scope_voff_count; RDI_U64 local_count; - RDI_U64 location_case_count; +}; + +//////////////////////////////// +//~ rjf: Per-Compilation-Unit Info Types + +typedef struct RDIM_Unit RDIM_Unit; +struct RDIM_Unit +{ + struct RDIM_UnitChunkNode *chunk; + RDIM_String8 unit_name; + RDIM_String8 compiler_name; + RDIM_String8 source_file; + RDIM_String8 object_file; + RDIM_String8 archive_file; + RDIM_String8 build_path; + RDI_Language language; + RDIM_LineTable *line_table; + RDIM_Rng1U64ChunkList voff_ranges; + RDIM_SymbolChunkList global_variables; + RDIM_SymbolChunkList thread_variables; + RDIM_SymbolChunkList constants; + RDIM_SymbolChunkList procedures; + RDIM_ScopeChunkList scopes; + RDIM_InlineSiteChunkList inline_sites; +}; + +typedef struct RDIM_UnitChunkNode RDIM_UnitChunkNode; +struct RDIM_UnitChunkNode +{ + RDIM_UnitChunkNode *next; + RDIM_Unit *v; + RDI_U64 count; + RDI_U64 cap; + RDI_U64 base_idx; +}; + +typedef struct RDIM_UnitChunkList RDIM_UnitChunkList; +struct RDIM_UnitChunkList +{ + RDIM_UnitChunkNode *first; + RDIM_UnitChunkNode *last; + RDI_U64 chunk_count; + RDI_U64 total_count; }; //////////////////////////////// @@ -1010,17 +1006,11 @@ struct RDIM_BakeParams RDIM_TopLevelInfo top_level_info; RDIM_BinarySectionList binary_sections; RDIM_UnitChunkList units; + RDIM_NamespaceChunkList namespaces; RDIM_TypeChunkList types; RDIM_UDTChunkList udts; RDIM_SrcFileChunkList src_files; RDIM_LineTableChunkList line_tables; - RDIM_LocationChunkList locations; - RDIM_SymbolChunkList global_variables; - RDIM_SymbolChunkList thread_variables; - RDIM_SymbolChunkList constants; - RDIM_SymbolChunkList procedures; - RDIM_ScopeChunkList scopes; - RDIM_InlineSiteChunkList inline_sites; }; //- rjf: data sections @@ -1282,238 +1272,6 @@ struct RDIM_LineRec //- rjf: baking results -typedef struct RDIM_TopLevelInfoBakeResult RDIM_TopLevelInfoBakeResult; -struct RDIM_TopLevelInfoBakeResult -{ - RDI_TopLevelInfo top_level_info; -}; - -typedef struct RDIM_BinarySectionBakeResult RDIM_BinarySectionBakeResult; -struct RDIM_BinarySectionBakeResult -{ - RDI_BinarySection *binary_sections; - RDI_U64 binary_sections_count; -}; - -typedef struct RDIM_UnitBakeResult RDIM_UnitBakeResult; -struct RDIM_UnitBakeResult -{ - RDI_Unit *units; - RDI_U64 units_count; -}; - -typedef struct RDIM_UnitVMapBakeResult RDIM_UnitVMapBakeResult; -struct RDIM_UnitVMapBakeResult -{ - RDIM_BakeVMap vmap; -}; - -typedef struct RDIM_SrcFileBakeResult RDIM_SrcFileBakeResult; -struct RDIM_SrcFileBakeResult -{ - RDI_SourceFile *source_files; - RDI_U64 source_files_count; - RDI_SourceLineMap *source_line_maps; - RDI_U64 source_line_maps_count; - RDI_U32 *source_line_map_nums; - RDI_U32 *source_line_map_rngs; - RDI_U64 *source_line_map_voffs; - RDI_U64 source_line_map_nums_count; - RDI_U64 source_line_map_rngs_count; - RDI_U64 source_line_map_voffs_count; -}; - -typedef struct RDIM_ChecksumBakeResult RDIM_ChecksumBakeResult; -struct RDIM_ChecksumBakeResult -{ - RDI_MD5 *md5s; - RDI_U64 md5s_count; - RDI_SHA1 *sha1s; - RDI_U64 sha1s_count; - RDI_SHA256 *sha256s; - RDI_U64 sha256s_count; - RDI_U64 *timestamps; - RDI_U64 timestamps_count; -}; - -typedef struct RDIM_LineTableBakeResult RDIM_LineTableBakeResult; -struct RDIM_LineTableBakeResult -{ - RDI_LineTable *line_tables; - RDI_U64 line_tables_count; - RDI_U64 *line_table_voffs; - RDI_U64 line_table_voffs_count; - RDI_Line *line_table_lines; - RDI_U64 line_table_lines_count; - RDI_Column *line_table_columns; - RDI_U64 line_table_columns_count; -}; - -typedef struct RDIM_TypeNodeBakeResult RDIM_TypeNodeBakeResult; -struct RDIM_TypeNodeBakeResult -{ - RDI_TypeNode *type_nodes; - RDI_U64 type_nodes_count; -}; - -typedef struct RDIM_UDTBakeResult RDIM_UDTBakeResult; -struct RDIM_UDTBakeResult -{ - RDI_UDT *udts; - RDI_U64 udts_count; - RDI_Member *members; - RDI_U64 members_count; - RDI_EnumMember *enum_members; - RDI_U64 enum_members_count; -}; - -typedef struct RDIM_LocationBakeResult RDIM_LocationBakeResult; -struct RDIM_LocationBakeResult -{ - RDI_U8 *location_data; - RDI_U64 location_data_size; -}; - -typedef struct RDIM_LocationBlockBakeResult RDIM_LocationBlockBakeResult; -struct RDIM_LocationBlockBakeResult -{ - RDI_LocationBlock *location_blocks; - RDI_U64 location_blocks_count; -}; - -typedef struct RDIM_GlobalVariableBakeResult RDIM_GlobalVariableBakeResult; -struct RDIM_GlobalVariableBakeResult -{ - RDI_GlobalVariable *global_variables; - RDI_U64 global_variables_count; -}; - -typedef struct RDIM_GlobalVMapBakeResult RDIM_GlobalVMapBakeResult; -struct RDIM_GlobalVMapBakeResult -{ - RDIM_BakeVMap vmap; -}; - -typedef struct RDIM_ThreadVariableBakeResult RDIM_ThreadVariableBakeResult; -struct RDIM_ThreadVariableBakeResult -{ - RDI_ThreadVariable *thread_variables; - RDI_U64 thread_variables_count; -}; - -typedef struct RDIM_ConstantsBakeResult RDIM_ConstantsBakeResult; -struct RDIM_ConstantsBakeResult -{ - RDI_Constant *constants; - RDI_U64 constants_count; - RDI_U32 *constant_values; - RDI_U64 constant_values_count; - RDI_U8 *constant_value_data; - RDI_U64 constant_value_data_size; -}; - -typedef struct RDIM_ProcedureBakeResult RDIM_ProcedureBakeResult; -struct RDIM_ProcedureBakeResult -{ - RDI_Procedure *procedures; - RDI_U64 procedures_count; -}; - -typedef struct RDIM_ScopeBakeResult RDIM_ScopeBakeResult; -struct RDIM_ScopeBakeResult -{ - RDI_Scope *scopes; - RDI_U64 scopes_count; - RDI_U64 *scope_voffs; - RDI_U64 scope_voffs_count; - RDI_Local *locals; - RDI_U64 locals_count; -}; - -typedef struct RDIM_ScopeVMapBakeResult RDIM_ScopeVMapBakeResult; -struct RDIM_ScopeVMapBakeResult -{ - RDIM_BakeVMap vmap; -}; - -typedef struct RDIM_InlineSiteBakeResult RDIM_InlineSiteBakeResult; -struct RDIM_InlineSiteBakeResult -{ - RDI_InlineSite *inline_sites; - RDI_U64 inline_sites_count; -}; - -typedef struct RDIM_TopLevelNameMapBakeResult RDIM_TopLevelNameMapBakeResult; -struct RDIM_TopLevelNameMapBakeResult -{ - RDI_NameMap *name_maps; - RDI_U64 name_maps_count; -}; - -typedef struct RDIM_NameMapBakeResult RDIM_NameMapBakeResult; -struct RDIM_NameMapBakeResult -{ - RDI_NameMapBucket *buckets; - RDI_U64 buckets_count; - RDI_NameMapNode *nodes; - RDI_U64 nodes_count; -}; - -typedef struct RDIM_FilePathBakeResult RDIM_FilePathBakeResult; -struct RDIM_FilePathBakeResult -{ - RDI_FilePathNode *nodes; - RDI_U64 nodes_count; -}; - -typedef struct RDIM_StringBakeResult RDIM_StringBakeResult; -struct RDIM_StringBakeResult -{ - RDI_U32 *string_offs; - RDI_U64 string_offs_count; - RDI_U8 *string_data; - RDI_U64 string_data_size; -}; - -typedef struct RDIM_IndexRunBakeResult RDIM_IndexRunBakeResult; -struct RDIM_IndexRunBakeResult -{ - RDI_U32 *idx_runs; - RDI_U64 idx_count; -}; - -typedef struct RDIM_BakeResults RDIM_BakeResults; -struct RDIM_BakeResults -{ - RDIM_TopLevelInfoBakeResult top_level_info; - RDIM_BinarySectionBakeResult binary_sections; - RDIM_UnitBakeResult units; - RDIM_UnitVMapBakeResult unit_vmap; - RDIM_SrcFileBakeResult src_files; - RDIM_ChecksumBakeResult checksums; - RDIM_LineTableBakeResult line_tables; - RDIM_TypeNodeBakeResult type_nodes; - RDIM_UDTBakeResult udts; - RDIM_GlobalVariableBakeResult global_variables; - RDIM_GlobalVMapBakeResult global_vmap; - RDIM_ThreadVariableBakeResult thread_variables; - RDIM_ConstantsBakeResult constants; - RDIM_ProcedureBakeResult procedures; - RDIM_ScopeBakeResult scopes; - RDIM_InlineSiteBakeResult inline_sites; - RDIM_ScopeVMapBakeResult scope_vmap; - RDIM_TopLevelNameMapBakeResult top_level_name_maps; - RDIM_NameMapBakeResult name_maps; - RDIM_FilePathBakeResult file_paths; - RDIM_StringBakeResult strings; - RDIM_IndexRunBakeResult idx_runs; - RDIM_LocationBakeResult locations; - RDIM_LocationBlockBakeResult location_blocks; -}; - -//////////////////////////////// -//~ rjf: Serialization Types - typedef struct RDIM_SerializedSection RDIM_SerializedSection; struct RDIM_SerializedSection { @@ -1529,6 +1287,12 @@ struct RDIM_SerializedSectionBundle RDIM_SerializedSection sections[RDI_SectionKind_COUNT]; }; +typedef struct RDIM_BakeResults RDIM_BakeResults; +struct RDIM_BakeResults +{ + RDIM_SerializedSectionBundle section_bundle; +}; + //////////////////////////////// //~ rjf: Basic Helpers @@ -1570,6 +1334,7 @@ RDI_PROC RDI_S32 rdim_str8_match(RDIM_String8 a, RDIM_String8 b, RDIM_StringMatc #define rdim_str8_struct(S) rdim_str8((RDI_U8*)(S), sizeof(*(S))) #define rdim_str8_struct_array(S, C) rdim_str8((RDI_U8*)(S), sizeof(*(S)) * (C)) RDI_PROC RDIM_String8 rdim_lower_from_str8(RDIM_Arena *arena, RDIM_String8 string); +RDI_PROC RDIM_String8 rdim_normalized_from_path(RDIM_Arena *arena, RDIM_String8 path); //- rjf: string lists RDI_PROC void rdim_str8_list_push(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 string); @@ -1625,6 +1390,13 @@ RDI_PROC RDIM_Unit *rdim_unit_chunk_list_push(RDIM_Arena *arena, RDIM_UnitChunkL RDI_PROC RDI_U64 rdim_idx_from_unit(RDIM_Unit *unit); RDI_PROC void rdim_unit_chunk_list_concat_in_place(RDIM_UnitChunkList *dst, RDIM_UnitChunkList *to_push); +//////////////////////////////// +//~ rjf: [Building] Namespace Info Building + +RDI_PROC RDIM_Namespace *rdim_namespace_chunk_list_push(RDIM_Arena *arena, RDIM_NamespaceChunkList *list, RDI_U64 cap); +RDI_PROC RDI_U64 rdim_idx_from_namespace(RDIM_Namespace *ns); +RDI_PROC void rdim_namespace_chunk_list_concat_in_place(RDIM_NamespaceChunkList *dst, RDIM_NamespaceChunkList *to_push); + //////////////////////////////// //~ rjf: [Building] Type Info & UDT Building @@ -1646,7 +1418,6 @@ RDI_PROC RDIM_UDTEnumVal *rdim_udt_push_enum_val(RDIM_Arena *arena, RDIM_UDTChun RDI_PROC RDIM_Symbol *rdim_symbol_chunk_list_push(RDIM_Arena *arena, RDIM_SymbolChunkList *list, RDI_U64 cap); RDI_PROC RDI_U64 rdim_idx_from_symbol(RDIM_Symbol *symbol); RDI_PROC void rdim_symbol_chunk_list_concat_in_place(RDIM_SymbolChunkList *dst, RDIM_SymbolChunkList *to_push); -internal void rdim_symbol_push_value_data(RDIM_Arena *arena, RDIM_SymbolChunkList *list, RDIM_Symbol *symbol, RDIM_String8 data); //////////////////////////////// //~ rjf: [Building] Inline Site Info Building @@ -1658,19 +1429,13 @@ RDI_PROC void rdim_inline_site_chunk_list_concat_in_place(RDIM_InlineSiteChunkLi //////////////////////////////// //~ rjf: [Building] Location Info Building -//- rjf: bytecode -RDI_PROC RDIM_EvalBytecodeOp * rdim_bytecode_push_op(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_EvalOp op, RDI_U64 p); +RDI_PROC RDIM_EvalBytecodeOp *rdim_bytecode_push_op(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_EvalOp op, RDI_U64 p); RDI_PROC void rdim_bytecode_push_uconst(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_U64 x); RDI_PROC void rdim_bytecode_push_sconst(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_S64 x); RDI_PROC void rdim_bytecode_push_convert(RDIM_Arena *arena, RDIM_EvalBytecode *bytecode, RDI_EvalTypeGroup in, RDI_EvalTypeGroup out); RDI_PROC void rdim_bytecode_concat_in_place(RDIM_EvalBytecode *left_dst, RDIM_EvalBytecode *right_destroyed); RDI_PROC B32 rdim_is_bytecode_tls_dependent(RDIM_EvalBytecode bytecode); - -//- rjf: locations -RDI_PROC RDI_U64 rdim_encoded_size_from_location_info(RDIM_LocationInfo *info); -RDI_PROC RDIM_Location *rdim_location_chunk_list_push_new(RDIM_Arena *arena, RDIM_LocationChunkList *list, RDI_U64 cap, RDIM_LocationInfo *info); -RDI_PROC RDI_U64 rdim_off_from_location(RDIM_Location *location); -RDI_PROC void rdim_location_chunk_list_concat_in_place(RDIM_LocationChunkList *dst, RDIM_LocationChunkList *to_push); +RDI_PROC void rdim_location_case_list_push(RDIM_Arena *arena, RDIM_LocationCaseList *cases, RDIM_Location loc, RDIM_Rng1U64 range); //////////////////////////////// //~ rjf: [Building] Scope Info Building @@ -1679,8 +1444,6 @@ RDI_PROC RDIM_Scope *rdim_scope_chunk_list_push(RDIM_Arena *arena, RDIM_ScopeChu RDI_PROC RDI_U64 rdim_idx_from_scope(RDIM_Scope *scope); RDI_PROC void rdim_scope_chunk_list_concat_in_place(RDIM_ScopeChunkList *dst, RDIM_ScopeChunkList *to_push); RDI_PROC void rdim_scope_push_voff_range(RDIM_Arena *arena, RDIM_ScopeChunkList *list, RDIM_Scope *scope, RDIM_Rng1U64 range); -RDI_PROC RDIM_Local *rdim_scope_push_local(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *scope); -RDI_PROC RDIM_LocationCase *rdim_local_push_location_case(RDIM_Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Local *local, RDIM_Location *location, RDIM_Rng1U64 voff_range); //////////////////////////////// //~ rjf: [Building] Bake Parameter Joining @@ -1753,7 +1516,6 @@ RDI_PROC void rdim_bake_section_list_concat_in_place(RDIM_BakeSectionList *dst, RDI_PROC RDIM_SerializedSection rdim_serialized_section_make_unpacked(void *data, RDI_U64 size); #define rdim_serialized_section_make_unpacked_struct(ptr) rdim_serialized_section_make_unpacked((ptr), sizeof(*(ptr))) #define rdim_serialized_section_make_unpacked_array(ptr, count) rdim_serialized_section_make_unpacked((ptr), sizeof(*(ptr))*(count)) -RDI_PROC RDIM_SerializedSectionBundle rdim_serialized_section_bundle_from_bake_results(RDIM_BakeResults *results); RDI_PROC RDIM_String8List rdim_file_blobs_from_section_bundle(RDIM_Arena *arena, RDIM_SerializedSectionBundle *bundle); #endif // RDI_MAKE_H diff --git a/src/linker/base_ext/base_arena.c b/src/linker/base_ext/base_arena.c index 166d3ea6..c6e25fe4 100644 --- a/src/linker/base_ext/base_arena.c +++ b/src/linker/base_ext/base_arena.c @@ -25,16 +25,35 @@ push_array_copy_u64(Arena *arena, U64 *v, U64 count) return result; } -internal U64 ** -push_matrix_u64(Arena *arena, U64 rows, U64 columns) +internal Arena ** +alloc_arena_many(Arena *arena, U64 count, U64 *sizes) { - U64 **result = push_array_no_zero(arena, U64 *, rows); - for (U64 row_idx = 0; row_idx < rows; row_idx += 1) { - result[row_idx] = push_array(arena, U64, columns); + Arena **result = push_array(arena, Arena *, count); + U64 total_size = sum_array_u64(count, sizes); + U8 *buffer = push_array(arena, U8, total_size + (ARENA_HEADER_SIZE * count)); + U64 offset = 0; + for EachIndex(i, count) { + if (sizes[i] > 0) { + void *backing_buffer = buffer + offset; + result[i] = arena_alloc_(&(ArenaParams){ .flags = ArenaFlag_NoChain, .optional_backing_buffer = backing_buffer, .reserve_size = ARENA_HEADER_SIZE + sizes[i], .commit_size = ARENA_HEADER_SIZE + sizes[i] }); + offset += ARENA_HEADER_SIZE; + offset += sizes[i]; + } } return result; } +internal Arena ** +alloc_arena_array_(Arena *arena, U64 count, U64 *counts, U64 element_size) +{ + Temp scratch = scratch_begin(&arena, 1); + U64 *sizes = push_array(scratch.arena, U64, count); + for EachIndex(i, count) { sizes[i] = counts[i] * element_size; } + Arena **result = alloc_arena_many(arena, count, sizes); + scratch_end(scratch); + return result; +} + internal Arena ** alloc_fixed_size_arena_array(Arena *arena, U64 count, U64 res, U64 cmt) { @@ -44,26 +63,11 @@ alloc_fixed_size_arena_array(Arena *arena, U64 count, U64 res, U64 cmt) Arena **arr = (Arena **)(count_ptr + 1); *count_ptr = count; - ArenaParams params = {0}; - params.reserve_size = res; - params.commit_size = cmt; - - for (U64 i = 0; i < count; i += 1) { - Arena *fixed_arena = arena_alloc_(¶ms); + for EachIndex(i, count) { + Arena *fixed_arena = arena_alloc_(&(ArenaParams){ .reserve_size = res, .commit_size = cmt }); arr[i] = fixed_arena; } return arr; } -internal void -release_arena_array(Arena **arr) -{ - U64 *count_ptr = (U64 *)arr - 1; - U64 count = *count_ptr; - for (U64 i = 0; i < count; i += 1) { - arena_release(arr[i]); - arr[i] = 0; - } -} - diff --git a/src/linker/base_ext/base_arena.h b/src/linker/base_ext/base_arena.h index 4cb25d21..f8996eb6 100644 --- a/src/linker/base_ext/base_arena.h +++ b/src/linker/base_ext/base_arena.h @@ -3,11 +3,9 @@ #pragma once -internal U64 * push_u64 (Arena *arena, U64 value); -internal U32 * push_array_copy_u32(Arena *arena, U32 *v, U64 count); -internal U64 * push_array_copy_u64(Arena *arena, U64 *v, U64 count); -internal U64 ** push_matrix_u64 (Arena *arena, U64 rows, U64 columns); - +internal U64 * push_u64 (Arena *arena, U64 value); +internal U32 * push_array_copy_u32(Arena *arena, U32 *v, U64 count); +internal U64 * push_array_copy_u64(Arena *arena, U64 *v, U64 count); internal Arena ** alloc_fixed_size_arena_array(Arena *arena, U64 count, U64 res, U64 cmt); -internal void release_arena_array(Arena **arr); +#define alloc_arena_array(_arena_, _arena_count_, _counts_, T) alloc_arena_array_(_arena_, _arena_count_, _counts_, sizeof(T)) diff --git a/src/linker/base_ext/base_arrays.c b/src/linker/base_ext/base_arrays.c index fa50c36f..834f4540 100644 --- a/src/linker/base_ext/base_arrays.c +++ b/src/linker/base_ext/base_arrays.c @@ -5,9 +5,7 @@ internal U64 void_list_count_nodes(VoidNode *head) { U64 node_count = 0; - for (VoidNode *curr = head; curr != 0; curr = curr->next) { - ++node_count; - } + for EachNode(curr, VoidNode, head) { node_count += 1; } return node_count; } @@ -26,16 +24,30 @@ void_node_concat_atomic(VoidNode **head, VoidNode *node) node->next = ins_atomic_ptr_eval_assign(head, node); } +internal VoidNode * +void_list_push(Arena *arena, VoidList *list, void *v) +{ + VoidNode *n = push_array(arena, VoidNode, 1); + n->v = v; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + return n; +} + +internal void +u64_list_push_node(U64List *list, U64Node *n) +{ + SLLQueuePush(list->first, list->last, n); + list->count += 1; +} + internal U64Node * u64_list_push(Arena *arena, U64List *list, U64 data) { U64Node *n = push_array(arena, U64Node, 1); n->next = 0; n->data = data; - - SLLQueuePush(list->first, list->last, n); - ++list->count; - + u64_list_push_node(list, n); return n; } @@ -45,15 +57,33 @@ u64_list_concat_in_place(U64List *list, U64List *to_concat) SLLConcatInPlace(list, to_concat); } -internal U64Array -u64_array_from_list(Arena *arena, U64List *list) +internal B32 +u32_array_compare(U32Array a, U32Array b) { - U64Array result; - result.count = 0; - result.v = push_array(arena, U64, list->count); - for (U64Node *n = list->first; n != NULL; n = n->next) { - result.v[result.count++] = n->data; + B32 are_equal = 0; + if (a.count == b.count) { + int cmp = MemoryCompare(a.v, b.v, sizeof(a.v[0]) * a.count); + are_equal = (cmp == 0); } + return are_equal; +} + +internal void +u32_array_counts_to_offsets(U64 count, U32 *arr) +{ + U32 next_offset = 0; + for (U64 i = 0; i < count; i += 1) { + U32 current_offset = next_offset; + next_offset += arr[i]; + arr[i] = current_offset; + } +} + +internal U32 * +u32_array_offsets_from_counts(Arena *arena, U32 *v, U64 count) +{ + U32 *result = push_array_copy_u32(arena, v, count); + u32_array_counts_to_offsets(count, result); return result; } @@ -64,13 +94,7 @@ u32_array_sort(U64 count, U32 *v) } internal void -u64_array_sort(U64 count, U64 *v) -{ - radsort(v, count, u64_is_before); -} - -internal void -u32_pair_radix_sort(U64 count, PairU32 *arr) +u32_pair_sort_radix(U64 count, PairU32 *arr) { Temp scratch = scratch_begin(0,0); @@ -94,9 +118,9 @@ u32_pair_radix_sort(U64 count, PairU32 *arr) ++count2[digit2]; } - counts_to_offsets_array_u32((1 << bit_count0), count0); - counts_to_offsets_array_u32((1 << bit_count1), count1); - counts_to_offsets_array_u32((1 << bit_count2), count2); + u32_array_counts_to_offsets((1 << bit_count0), count0); + u32_array_counts_to_offsets((1 << bit_count1), count1); + u32_array_counts_to_offsets((1 << bit_count2), count2); for (U64 i = 0; i < count; ++i) { U32 digit0 = (arr[i].v0 >> 0) % (1 << bit_count0); @@ -118,15 +142,59 @@ u32_pair_radix_sort(U64 count, PairU32 *arr) scratch_end(scratch); } -internal B32 -u32_array_compare(U32Array a, U32Array b) +internal U64 * +offsets_from_counts_array_u64(Arena *arena, U64 *v, U64 count) { - B32 are_equal = 0; - if (a.count == b.count) { - int cmp = MemoryCompare(a.v, b.v, sizeof(a.v[0]) * a.count); - are_equal = (cmp == 0); + U64 *result = push_array_copy_u64(arena, v, count); + u64_array_counts_to_offsets(count, result); + return result; +} + +internal void +u64_array_counts_to_offsets(U64 count, U64 *arr) +{ + U64 next_offset = 0; + for (U64 i = 0; i < count; i += 1) { + U64 current_offset = next_offset; + next_offset += arr[i]; + arr[i] = current_offset; } - return are_equal; +} + +internal void +u64_array_sort(U64 count, U64 *v) +{ + radsort(v, count, u64_is_before); +} + +internal U64 +u64_array_max(U64 count, U64 *v) +{ + U64 result = 0; + for (U64 i = 0; i < count; i += 1) { + result = Max(v[i], result); + } + return result; +} + +internal U64 +u64_array_min(U64 count, U64 *v) +{ + U64 result = max_U64; + for (U64 i = 0; i < count; i += 1) { + result = Min(v[i], result); + } + return result; +} + +internal U64 +sum_array_u64(U64 count, U64 *v) +{ + U64 result = 0; + for (U64 i = 0; i < count; i += 1) { + result += v[i]; + } + return result; } internal U64Array @@ -156,81 +224,44 @@ u64_array_remove_duplicates(Arena *arena, U64Array in) return result; } -internal U64 -sum_array_u64(U64 count, U64 *v) +internal void +s64_list_push_node(S64List *list, S64Node *n) { - U64 result = 0; - for (U64 i = 0; i < count; i += 1) { - result += v[i]; - } - return result; + SLLQueuePush(list->first, list->last, n); + list->count += 1; } -internal U64 -sum_matrix_u64(U64 rows, U64 cols, U64 **v) +internal S64Node * +s64_list_push(Arena *arena, S64List *list, S64 v) { - U64 result = 0; - for (U64 i = 0; i < rows; ++i) { - result += sum_array_u64(cols, v[i]); - } - return result; -} - -internal U64 -max_array_u64(U64 count, U64 *v) -{ - U64 result = 0; - for (U64 i = 0; i < count; i += 1) { - result = Max(v[i], result); - } - return result; -} - -internal U64 -min_array_u64(U64 count, U64 *v) -{ - U64 result = max_U64; - for (U64 i = 0; i < count; i += 1) { - result = Min(v[i], result); - } - return result; + S64Node *n = push_array(arena, S64Node, 1); + n->next = 0; + n->v = v; + s64_list_push_node(list, n); + return n; } internal void -counts_to_offsets_array_u32(U64 count, U32 *arr) +s64_list_concat_in_place(S64List *list, S64List *to_concat) { - U32 next_offset = 0; - for (U64 i = 0; i < count; i += 1) { - U32 current_offset = next_offset; - next_offset += arr[i]; - arr[i] = current_offset; - } + SLLConcatInPlace(list, to_concat); } -internal void -counts_to_offsets_array_u64(U64 count, U64 *arr) +internal U64Array +u64_array_from_list(Arena *arena, U64List *list) { - U64 next_offset = 0; - for (U64 i = 0; i < count; i += 1) { - U64 current_offset = next_offset; - next_offset += arr[i]; - arr[i] = current_offset; - } -} - -internal U32 * -offsets_from_counts_array_u32(Arena *arena, U32 *v, U64 count) -{ - U32 *result = push_array_copy_u32(arena, v, count); - counts_to_offsets_array_u32(count, result); + U64Array result = {0}; + result.v = push_array(arena, U64, list->count); + for EachNode(n, U64Node, list->first) { result.v[result.count++] = n->data; } return result; } -internal U64 * -offsets_from_counts_array_u64(Arena *arena, U64 *v, U64 count) +internal S64Array +s64_array_from_list(Arena *arena, S64List *list) { - U64 *result = push_array_copy_u64(arena, v, count); - counts_to_offsets_array_u64(count, result); + S64Array result = {0}; + result.v = push_array(arena, S64, list->count); + for EachNode(n, S64Node, list->first) { result.v[result.count++] = n->v; } return result; } diff --git a/src/linker/base_ext/base_arrays.h b/src/linker/base_ext/base_arrays.h index 45ad68e8..97350685 100644 --- a/src/linker/base_ext/base_arrays.h +++ b/src/linker/base_ext/base_arrays.h @@ -3,50 +3,45 @@ #pragma once -typedef struct U32Node -{ - struct U32Node *next; - U32 data; -} U32Node; +typedef struct VoidNode { void *v; struct VoidNode *next; } VoidNode; +typedef struct U32Node { U32 data; struct U32Node *next; } U32Node; +typedef struct U64Node { U64 data; struct U64Node *next; } U64Node; +typedef struct S64Node { S64 v; struct S64Node *next; } S64Node; -typedef struct U64Node -{ - struct U64Node *next; - U64 data; -} U64Node; +typedef struct VoidList { U64 count; VoidNode *first, *last; } VoidList; +typedef struct U64List { U64 count; U64Node *first, *last; } U64List; +typedef struct S64List { U64 count; S64Node *first, *last; } S64List; -typedef struct U64List -{ - U64 count; - U64Node *first; - U64Node *last; -} U64List; - -typedef struct VoidNode -{ - struct VoidNode *next; - void *v; -} VoidNode; +typedef struct S64Array { U64 count; S64 *v; } S64Array; //////////////////////////////// -internal U64Node * u64_list_push(Arena *arena, U64List *list, U64 data); +internal U64 void_list_count_nodes (VoidNode *head); +internal void void_node_concat (VoidNode **head, VoidNode *node); +internal void void_node_concat_atomic(VoidNode **head, VoidNode *node); + +internal void u64_list_push_node (U64List *list, U64Node *n); +internal U64Node * u64_list_push (Arena *arena, U64List *list, U64 v); internal void u64_list_concat_in_place(U64List *list, U64List *to_concat); -internal U64Array u64_array_from_list(Arena *arena, U64List *list); -internal U64Array u64_array_remove_duplicates(Arena *arena, U64Array in); +internal B32 u32_array_compare (U32Array a, U32Array b); +internal U32 * u32_array_offsets_from_counts(Arena *arena, U32 *v, U64 count); +internal void u32_array_counts_to_offsets (U64 count, U32 *arr); +internal void u32_array_sort (U64 count, U32 *v); +internal void u32_pair_sort_radix (U64 count, PairU32 *arr); -internal void u32_array_sort(U64 count, U32 *v); -internal void u64_array_sort(U64 count, U64 *v); -internal B32 u32_array_compare(U32Array a, U32Array b); +internal U64 * offsets_from_counts_array_u64(Arena *arena, U64 *v, U64 count); +internal void u64_array_counts_to_offsets (U64 count, U64 *arr); +internal void u64_array_sort (U64 count, U64 *v); +internal U64 u64_array_max (U64 count, U64 *v); +internal U64 u64_array_min (U64 count, U64 *v); +internal U64 sum_array_u64 (U64 count, U64 *v); +internal U64 sum_array_u64 (U64 count, U64 *v); +internal U64Array u64_array_remove_duplicates (Arena *arena, U64Array in); +internal U64Array u64_array_from_list (Arena *arena, U64List *list); -internal U64 sum_array_u64(U64 count, U64 *v); -internal U64 max_array_u64(U64 count, U64 *v); -internal U64 min_array_u64(U64 count, U64 *v); - -internal void counts_to_offsets_array_u32(U64 count, U32 *arr); -internal void counts_to_offsets_array_u64(U64 count, U64 *arr); - -internal U32 * offsets_from_counts_array_u32(Arena *arena, U32 *v, U64 count); -internal U64 * offsets_from_counts_array_u64(Arena *arena, U64 *v, U64 count); +internal void s64_list_push_node (S64List *list, S64Node *n); +internal S64Node * s64_list_push (Arena *arena, S64List *list, S64 v); +internal void s64_list_concat_in_place(S64List *list, S64List *to_concat); +internal S64Array s64_array_from_list (Arena *arena, S64List *list); diff --git a/src/linker/base_ext/base_bit_array.c b/src/linker/base_ext/base_bit_array.c index a4f39b4a..3cb4f7c4 100644 --- a/src/linker/base_ext/base_bit_array.c +++ b/src/linker/base_ext/base_bit_array.c @@ -1,234 +1,25 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +#include "third_party/martins_bitscan/bitscan.h" + internal U32Array -bit_array_init32(Arena *arena, U64 word_count) +bit_array_init32(Arena *arena, U64 bit_count) { - U32Array result; - result.count = CeilIntegerDiv(word_count, 32); - result.v = push_array(arena, U32, word_count); - return result; + U64 count = CeilIntegerDiv(bit_count, 32); + return (U32Array){ .count = count, .v = push_array(arena, U32, count) }; } internal U64 bit_array_scan_left_to_right32(U32Array bit_array, U64 lo, U64 hi, B32 state) { - Assert(lo < bit_array.count*32); - Assert(hi <= bit_array.count*32); - Assert(lo <= hi); - Assert(state == 0 || state == 1); - - U64 word_lo = lo / 32; - U64 word_hi = CeilIntegerDiv(hi, 32) - 1; - - U64 word_idx = word_lo; - U64 bit_idx = 0; - - U64 scan_count = hi - lo; - if (scan_count < 32) { - U64 bit_lo = lo % 32; - U64 bit_hi = hi % 32; - U64 word = bit_array.v[word_idx]; - word ^= state - 1; - word &= (1U << bit_hi) - (1U << bit_lo); - if (word) { - bit_idx = ctz32(word); - goto exit; - } - } else { - U32 first_word = bit_array.v[word_idx]; - first_word ^= state - 1; - first_word &= ~0u << (lo % 32); - if (first_word) { - bit_idx = ctz32(first_word); - goto exit; - } - - for (word_idx += 1; word_idx < word_hi; word_idx += 1) { - U32 word = bit_array.v[word_idx]; - word ^= state - 1; - if (word != 0) { - bit_idx = ctz32(word); - goto exit; - } - } - - U64 bit_hi = hi - (word_idx * 32); - U32 last_word = bit_array.v[word_idx]; - last_word ^= state - 1; - last_word &= (1 << bit_hi) - 1; - if (last_word) { - bit_idx = ctz32(last_word); - goto exit; - } - } - - word_idx = 0; - bit_idx = max_U32; - - exit:; - - U64 result = word_idx * 32 + bit_idx; - return result; + return bitscan_lsb_index32(bit_array.v, lo, hi, state); } internal U64 bit_array_scan_right_to_left32(U32Array bit_array, U64 lo, U64 hi, B32 state) { - Assert(lo <= hi); - Assert(state == 0 || state == 1); - - S64 word_lo = lo / 32; - S64 word_hi = CeilIntegerDiv(hi, 32) - 1; - - S64 word_idx = word_hi; - S64 bit_idx = -1; - - U64 scan_count = hi - lo; - if (scan_count < 32) { - S64 bit_lo = lo % 32; - S64 bit_hi = bit_lo + scan_count; - U32 word = bit_array.v[word_idx]; - for (bit_idx = bit_hi; bit_idx >= bit_lo; bit_idx -= 1) { - U32 bit = ExtractBit(word, bit_idx); - if (bit == state) { - goto exit; - } - } - } else { - U32 last_word = bit_array.v[word_idx]; - S64 bit_hi = hi % 32; - for (bit_idx = bit_hi; bit_idx >= 0; bit_idx -= 1) { - U32 bit = ExtractBit(last_word, bit_idx); - if (bit == state) { - goto exit; - } - } - - for (word_idx -= 1; word_idx > word_lo; word_idx -= 1) { - U32 word = bit_array.v[word_idx]; - for (bit_idx = 32 - 1; bit_idx >= 0; bit_idx -= 1) { - U32 bit = ExtractBit(word, bit_idx); - if (bit == state) { - goto exit; - } - } - } - - U32 first_word = bit_array.v[word_idx]; - S64 bit_lo = lo % 32; - for (bit_idx = 32 - 1; bit_idx >= bit_lo; bit_idx -= 1) { - U32 bit = ExtractBit(first_word, bit_idx); - if (bit == state) { - goto exit; - } - } - } - - word_idx = 0; - bit_idx = max_U32; - - exit:; - - S64 result_s64 = word_idx * 32 + bit_idx; - U64 result_u64 = (U64)result_s64; - return result_u64; -} - -internal Rng1U64 -bit_array_scan_left_to_right32_contiguous(U32Array bit_array, U64 lo, U64 hi, B32 state, U64 in_row_count) -{ - Rng1U64 result = rng_1u64(max_U64, max_U64); - - U64 curr_count = 0, rover = lo; - while (curr_count < in_row_count) { - rover = bit_array_scan_left_to_right32(bit_array, rover, hi, state); - - // no more bits in range - if (rover >= hi) { - break; - } - - // set first match - if (result.v[0] == max_U64) { - result = rng_1u64(rover, rover); - continue; - } - - // reset on non-contiguous range - B32 is_bit_index_not_adjoined = (result.v[0] + 1 < rover); - if (is_bit_index_not_adjoined) { - curr_count = 0; - result = rng_1u64(max_U64, max_U64); - continue; - } - - // advance - result.v[1] = rover; - curr_count -= 1; - } - - // did we allocate enough bits? - if (curr_count != in_row_count) { - result = rng_1u64(max_U64, max_U64); - } - - return result; -} - -internal Rng1U64 -bit_array_scan_right_to_left32_contiguous(U32Array bit_array, U64 lo, U64 hi, B32 state, U64 in_row_count) -{ - Rng1U64 result = rng_1u64(max_U64, max_U64); - - U64 curr_count = 0, rover = lo; - while (curr_count < in_row_count) { - rover = bit_array_scan_right_to_left32(bit_array, lo, rover, state); - - // no more bits in range - if (rover >= hi) { - break; - } - - // set first match - if (result.v[0] == max_U64) { - result = rng_1u64(rover, rover); - continue; - } - - // reset on non-contiguous range - B32 is_bit_index_not_adjoined = (result.v[0] + 1 < rover); - if (is_bit_index_not_adjoined) { - curr_count = 0; - result = rng_1u64(max_U64, max_U64); - continue; - } - - // advance - result.v[0] = rover; - curr_count -= 1; - } - - // did we allocate enough bits? - if (curr_count != in_row_count) { - result = rng_1u64(max_U64, max_U64); - } - - return result; -} - -internal U64 -bit_array_find_next_unset_bit32(U32Array bit_array) -{ - U64 result = bit_array_scan_left_to_right32(bit_array, 0, bit_array.count*32, 0); - return result; -} - -internal U64 -bit_array_find_next_set_bit32(U32Array bit_array) -{ - U64 result = bit_array_scan_left_to_right32(bit_array, 0, bit_array.count*32, 1); - return result; + return bitscan_msb_index32(bit_array.v, lo, hi, state); } internal void @@ -238,17 +29,9 @@ bit_array_set_bit32(U32Array bit_array, U64 idx, B32 state) U64 word_idx = idx / 32; U64 bit_idx = idx % 32; if (state) { - bit_array.v[word_idx] |= (1 << bit_idx); + bit_array.v[word_idx] |= (1u << bit_idx); } else { - bit_array.v[word_idx] &= ~(1 << bit_idx); - } -} - -internal void -bit_array_set_bit_range32(U32Array bit_array, Rng1U64 range, B32 state) -{ - for (U64 idx = range.min ; idx < range.max; idx += 1) { - bit_array_set_bit32(bit_array, idx, state); + bit_array.v[word_idx] &= ~(1u << bit_idx); } } @@ -269,7 +52,7 @@ bit_array_is_bit_set(U32Array bit_arr, U64 bit_pos) Assert(word_idx < bit_arr.count); U32 word = bit_arr.v[word_idx]; U64 bit_idx = bit_pos % 32; - B32 is_set = !!(word & (1 << bit_idx)); + B32 is_set = !!(word & (1u << bit_idx)); return is_set; } diff --git a/src/linker/base_ext/base_bit_array.h b/src/linker/base_ext/base_bit_array.h index 995facd7..5c76ef32 100644 --- a/src/linker/base_ext/base_bit_array.h +++ b/src/linker/base_ext/base_bit_array.h @@ -3,16 +3,10 @@ #pragma once -internal U32Array bit_array_init32 (Arena *arena, U64 word_count); -internal U64 bit_array_scan_left_to_right32 (U32Array bit_array, U64 lo, U64 hi, B32 state); -internal U64 bit_array_scan_right_to_left32 (U32Array bit_array, U64 lo, U64 hi, B32 state); -internal Rng1U64 bit_array_scan_left_to_right32_contiguous(U32Array bit_array, U64 lo, U64 hi, B32 state, U64 in_row_count); -internal Rng1U64 bit_array_scan_right_to_left32_contiguous(U32Array bit_array, U64 lo, U64 hi, B32 state, U64 in_row_count); -internal B32 byte_scan_right_to_left (U8 *start, U8 *opl, U8 byte, U64 *offset_out); -internal U64 bit_array_find_next_unset_bit32 (U32Array bit_array); -internal U64 bit_array_find_next_set_bit32 (U32Array bit_array); -internal void bit_array_set_bit32 (U32Array bit_array, U64 idx, B32 state); -internal void bit_array_set_bit_range32 (U32Array bit_array, Rng1U64 range, B32 state); -internal U32 bit_array_get_bit32 (U32Array bit_array, U64 idx); +internal U32Array bit_array_init32 (Arena *arena, U64 word_count); +internal U64 bit_array_scan_left_to_right32(U32Array bit_array, U64 lo, U64 hi, B32 state); +internal U64 bit_array_scan_right_to_left32(U32Array bit_array, U64 lo, U64 hi, B32 state); +internal void bit_array_set_bit32 (U32Array bit_array, U64 idx, B32 state); +internal U32 bit_array_get_bit32 (U32Array bit_array, U64 idx); diff --git a/src/linker/base_ext/base_blake3.h b/src/linker/base_ext/base_blake3.h index 4c426ea2..e80c1e35 100644 --- a/src/linker/base_ext/base_blake3.h +++ b/src/linker/base_ext/base_blake3.h @@ -6,31 +6,6 @@ #define BLAKE3_API static #define BLAKE3_PRIVATE static -#if defined(__clang__) && defined(__x86_64__) -# if defined(__IMMINTRIN_H) -# error "include this header before immintrin.h / x86intrin.h / intrin.h" -# endif -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Wreserved-macro-identifier" -# pragma push_macro("__AVX__") -# pragma push_macro("__AVX2__") -# pragma push_macro("__SSE4_1__") -# pragma push_macro("__AVX512F__") -# pragma push_macro("__AVX512VL__") -# define __AVX__ 1 -# define __AVX2__ 1 -# define __SSE4_1__ 1 -# define __AVX512F__ 1 -# define __AVX512VL__ 1 -# include -# pragma pop_macro("__AVX512VL__") -# pragma pop_macro("__AVX512F__") -# pragma pop_macro("__SSE4_1__") -# pragma pop_macro("__AVX2__") -# pragma pop_macro("__AVX__") -# pragma clang diagnostic pop -#endif - #include "third_party/blake3/c/blake3.h" static void diff --git a/src/linker/base_ext/base_strings.c b/src/linker/base_ext/base_strings.c index 232a4f99..b0952373 100644 --- a/src/linker/base_ext/base_strings.c +++ b/src/linker/base_ext/base_strings.c @@ -1,26 +1,6 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal B32 -str8_starts_with(String8 string, String8 expected_prefix) -{ - return str8_match(str8_prefix(string, expected_prefix.size), expected_prefix, 0); -} - -internal String8Node * -str8_list_pop_front(String8List *list) -{ - String8Node *node = 0; - if (list->node_count) { - node = list->first; - Assert(list->total_size >= list->first->string.size); - list->node_count -= 1; - list->total_size -= list->first->string.size; - SLLQueuePop(list->first, list->last); - } - return node; -} - internal U64 str8_array_bsearch(String8Array arr, String8 value) { diff --git a/src/linker/base_ext/base_strings.h b/src/linker/base_ext/base_strings.h index c982e700..ae9e5eb5 100644 --- a/src/linker/base_ext/base_strings.h +++ b/src/linker/base_ext/base_strings.h @@ -3,9 +3,4 @@ #pragma once -// TODO: remove -internal String8Node * str8_list_pop_front(String8List *list); - -internal B32 str8_starts_with(String8 string, String8 expected_prefix); - internal U64 str8_array_bsearch(String8Array arr, String8 value); diff --git a/src/linker/codeview_ext/codeview.c b/src/linker/codeview_ext/codeview.c index 4dceeaa2..4c55c73d 100644 --- a/src/linker/codeview_ext/codeview.c +++ b/src/linker/codeview_ext/codeview.c @@ -16,45 +16,142 @@ hash_from_cv_symbol(CV_Symbol *symbol) } //////////////////////////////// +//~ Leaf Helpers -internal CV_ObjInfo -cv_obj_info_from_symbol(CV_Symbol symbol) +internal U64 +cv_size_from_leaf(String8 data, U64 align) { - CV_ObjInfo result; MemoryZeroStruct(&result); - switch (symbol.kind) { - case CV_SymKind_OBJNAME: { - CV_SymObjName *obj_name = (CV_SymObjName *) symbol.data.str; - result.sig = obj_name->sig; - str8_deserial_read_cstr(symbol.data, sizeof(CV_SymObjName), &result.name); - } break; - case CV_SymKind_OBJNAME_ST: { - NotImplemented; - } break; - default: { - InvalidPath; - } break; - } + U64 size = 0; + size += sizeof(CV_LeafSize); + size += sizeof(CV_LeafKind); + size += data.size; + size = AlignPow2(size, align); + return size; +} + +internal U64 +cv_write_leaf(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_LeafKind kind, String8 data, U64 align) +{ + U64 buffer_cursor_start = buffer_cursor; + + // compute record size + U64 record_size = sizeof(kind) + data.size; + Assert(record_size <= CV_LeafSize_Max); + CV_LeafSize record_size16 = (CV_LeafSize)record_size; + + // compute pad + static U8 LEAF_PAD_ARR[] = { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; + U64 pad_size = AlignPadPow2(data.size, align); + Assert(pad_size <= ArrayCount(LEAF_PAD_ARR)); + + // write header + CV_LeafHeader *header_ptr = (CV_LeafHeader *)(buffer + buffer_cursor); + header_ptr->size = record_size16; + header_ptr->kind = kind; + buffer_cursor += sizeof(*header_ptr); + + // write body + U8 *leaf_data_ptr = buffer + buffer_cursor; + MemoryCopy(leaf_data_ptr, data.str, data.size); + buffer_cursor += data.size; + + // write pad + U8 *pad_data_ptr = buffer + buffer_cursor; + MemoryCopy(pad_data_ptr, &LEAF_PAD_ARR[0], pad_size); + buffer_cursor += pad_size; + + U64 write_size = buffer_cursor - buffer_cursor_start; + return write_size; +} + +internal String8 +cv_make_leaf(Arena *arena, CV_LeafKind kind, String8 data, U64 align) +{ + U64 buffer_size = cv_size_from_leaf(data, align); + U8 *buffer = push_array_no_zero(arena, U8, buffer_size); + U64 size = cv_write_leaf(buffer, 0, buffer_size, kind, data, align); + String8 raw_leaf = str8(buffer, size); + return raw_leaf; +} + +internal String8 +cv_data_from_leaf(Arena *arena, CV_Leaf *leaf, U64 align) +{ + return cv_make_leaf(arena, leaf->kind, leaf->data, align); +} + +internal U64 +cv_read_leaf(String8 raw_data, U64 off, U64 align, CV_Leaf *leaf_out) +{ + // do we have enough bytes to read header? + if (raw_data.size < sizeof(CV_LeafHeader)) { return 0; } + + U8 *leaf_ptr = raw_data.str + off; + + StaticAssert(sizeof(CV_LeafHeader) == 4, g_leaf_header_size_check); + CV_LeafHeader header = { .v = memory_read32(leaf_ptr) }; + + // leaf size must have enough bytes for the kind enum + if (header.size < sizeof(CV_LeafKind)) { return 0; } + + // do we have enough bytes to read leaf data? + if (sizeof(CV_LeafSize) + header.size > raw_data.size) { return 0; } + + // fill out leaf + leaf_out->kind = header.kind; + leaf_out->data = str8(leaf_ptr + sizeof(CV_LeafHeader), header.size - sizeof(CV_LeafKind)); + + U64 leaf_size = AlignPow2(sizeof(CV_LeafHeader) + leaf_out->data.size, align); + if (leaf_size > raw_data.size) { return 0; } + + return leaf_size; +} + +internal CV_Leaf +cv_leaf_from_string(String8 raw_data) +{ + CV_Leaf result; + cv_read_leaf(raw_data, 0, 1, &result); return result; } +internal CV_Leaf +cv_leaf_from_ptr(U8 *ptr) +{ + CV_Leaf leaf = {0}; + cv_read_leaf(str8(ptr, max_U64), 0, 1, &leaf); + return leaf; +} + +internal U16 +cv_leaf_size_from_ptr(U8 *ptr) +{ + CV_LeafSize size = memory_read16(ptr); + return size + sizeof(size); +} + +internal String8 +cv_raw_leaf_from_ptr(U8 *ptr) +{ + return str8(ptr, cv_leaf_size_from_ptr(ptr)); +} + internal CV_TypeServerInfo cv_type_server_info_from_leaf(CV_Leaf leaf) { CV_TypeServerInfo result = {0}; switch (leaf.kind) { case CV_LeafKind_TYPESERVER: { - CV_LeafTypeServer *ts = (CV_LeafTypeServer *) leaf.data.str; - - result.name = str8_cstring_capped_reverse(ts + 1, leaf.data.str + leaf.data.size); + CV_LeafTypeServer *ts = (CV_LeafTypeServer *) leaf.data.str; + result.name = str8_cstring_capped(ts + 1, leaf.data.str + leaf.data.size); result.sig.data1 = ts->sig; result.age = ts->age; } break; case CV_LeafKind_TYPESERVER2: { CV_LeafTypeServer2 *ts = (CV_LeafTypeServer2 *) leaf.data.str; - Assert(sizeof(result.sig) == sizeof(ts->sig70)); MemoryCopy(&result.sig, &ts->sig70, sizeof(ts->sig70)); - result.name = str8_cstring_capped_reverse(ts + 1, leaf.data.str + leaf.data.size); + result.name = str8_cstring_capped(ts + 1, leaf.data.str + leaf.data.size); result.age = ts->age; } break; case CV_LeafKind_TYPESERVER_ST: { @@ -90,164 +187,109 @@ cv_precomp_info_from_leaf(CV_Leaf leaf) return result; } -//////////////////////////////// -//~ Leaf Helpers - -internal U64 -cv_compute_leaf_record_size(String8 data, U64 align) -{ - U64 size = 0; - size += sizeof(CV_LeafSize); - size += sizeof(CV_LeafKind); - size += data.size; - size = AlignPow2(size, align); - return size; -} - -internal U64 -cv_serialize_leaf_to_buffer(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_LeafKind kind, String8 data, U64 align) -{ - U64 buffer_cursor_start = buffer_cursor; - - // compute record size - U64 record_size = sizeof(kind) + data.size; - Assert(record_size <= CV_LeafSize_Max); - CV_LeafSize record_size16 = (CV_LeafSize)record_size; - - // compute pad - static U8 LEAF_PAD_ARR[] = { 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; - U64 pad_size = AlignPadPow2(data.size, align); - Assert(pad_size <= ArrayCount(LEAF_PAD_ARR)); - - // write header - CV_LeafHeader *header_ptr = (CV_LeafHeader *)(buffer + buffer_cursor); - header_ptr->size = record_size16; - header_ptr->kind = kind; - buffer_cursor += sizeof(*header_ptr); - - // write body - U8 *leaf_data_ptr = buffer + buffer_cursor; - MemoryCopy(leaf_data_ptr, data.str, data.size); - buffer_cursor += data.size; - - // write pad - U8 *pad_data_ptr = buffer + buffer_cursor; - MemoryCopy(pad_data_ptr, &LEAF_PAD_ARR[0], pad_size); - buffer_cursor += pad_size; - - U64 write_size = buffer_cursor - buffer_cursor_start; - return write_size; -} - -internal String8 -cv_serialize_raw_leaf(Arena *arena, CV_LeafKind kind, String8 data, U64 align) -{ - U64 buffer_size = cv_compute_leaf_record_size(data, align); - U8 *buffer = push_array_no_zero(arena, U8, buffer_size); - U64 size = cv_serialize_leaf_to_buffer(buffer, 0, buffer_size, kind, data, align); - String8 raw_leaf = str8(buffer, size); - return raw_leaf; -} - -internal String8 -cv_serialize_leaf(Arena *arena, CV_Leaf *leaf, U64 align) -{ - return cv_serialize_raw_leaf(arena, leaf->kind, leaf->data, align); -} - -internal CV_Leaf -cv_make_leaf(Arena *arena, CV_LeafKind kind, String8 data) -{ - CV_Leaf result = {0}; - String8 raw_leaf = cv_serialize_raw_leaf(arena, kind, data, 1); - cv_deserial_leaf(raw_leaf, 0, 1, &result); - return result; -} - -internal U64 -cv_deserial_leaf(String8 raw_data, U64 off, U64 align, CV_Leaf *leaf_out) -{ - // do we have enough bytes to read header? - Assert(raw_data.size >= sizeof(CV_LeafHeader)); - - CV_LeafHeader *header = (CV_LeafHeader*)(raw_data.str + off); - - // leaf size must have enough bytes for the kind enum - Assert(header->size >= sizeof(CV_LeafKind)); - - // do we have enough bytes to read leaf data? - Assert(sizeof(CV_LeafSize) + header->size <= raw_data.size); - - // fill out leaf - leaf_out->kind = header->kind; - leaf_out->data = str8(raw_data.str + sizeof(CV_LeafHeader), header->size - sizeof(CV_LeafKind)); - - U64 leaf_size = AlignPow2(sizeof(CV_LeafHeader) + leaf_out->data.size, align); - Assert(leaf_size <= raw_data.size); - return leaf_size; -} - -internal CV_Leaf -cv_leaf_from_string(String8 raw_data) -{ - CV_Leaf result; - cv_deserial_leaf(raw_data, 0, 1, &result); - return result; -} - //////////////////////////////// //~ Symbol Helpers internal U64 -cv_compute_symbol_record_size(CV_Symbol *symbol, U64 align) +cv_write_symbol_buf(String8Node *buf, U64 *buf_pos, CV_Symbol *symbol, U64 align) { - U64 size = 0; - size += sizeof(CV_SymSize); - size += sizeof(CV_SymKind); - size += AlignPow2(symbol->data.size, align); - return size; -} + CV_SymbolHeader header = { .size = sizeof(CV_SymKind) + symbol->data.size, .kind = symbol->kind }; + U64 pad_size = AlignPadPow2(header.size + sizeof(CV_SymSize), align); + header.size += pad_size; -internal U64 -cv_serialize_symbol_to_buffer(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_Symbol *symbol, U64 align) -{ - U64 write_size = cv_compute_symbol_record_size(symbol, align); - Assert(buffer_cursor + write_size <= buffer_size); - - U64 record_size = 0; - record_size += sizeof(symbol->kind); - record_size += AlignPow2(symbol->data.size, align); - - Assert(record_size <= CV_SymSize_Max); - CV_SymSize record_size16 = (CV_SymSize)record_size; - - // init header - CV_SymbolHeader *header = (CV_SymbolHeader *)(buffer + buffer_cursor); - header->size = record_size16; - header->kind = symbol->kind; - - // copy symbol data - U8 *data_dst = (U8 *)(header + 1); - MemoryCopy(data_dst, symbol->data.str, symbol->data.size); - - // set pad bytes - U64 pad_size = AlignPadPow2(symbol->data.size, align); - U8 *pad_dst = data_dst + symbol->data.size; - MemorySet(&pad_dst[0], 0, pad_size); + U64 write_size = 0; + write_size += str8_buffer_write(buf, buf_pos, str8_struct(&header)); + write_size += str8_buffer_write(buf, buf_pos, symbol->data); + write_size += str8_buffer_write_zeroes(buf, buf_pos, pad_size); return write_size; } -internal String8 -cv_serialize_symbol(Arena *arena, CV_Symbol *symbol, U64 align) +internal U64 +cv_write_symbol(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_Symbol *symbol, U64 align) { - U64 buffer_size = cv_compute_symbol_record_size(symbol, align); + String8Node dummy_curr = { .string = str8(buffer + buffer_cursor, buffer_size - buffer_cursor) }; + U64 dummy_pos = 0; + return cv_write_symbol_buf(&dummy_curr, &dummy_pos, symbol, align); +} + +internal U64 +cv_size_from_symbol(CV_Symbol *symbol, U64 align) +{ + return cv_write_symbol_buf(0, 0, symbol, align); +} + +internal String8 +cv_data_from_symbol(Arena *arena, CV_Symbol *symbol, U64 align) +{ + U64 buffer_size = cv_size_from_symbol(symbol, align); U8 *buffer = push_array(arena, U8, buffer_size); - cv_serialize_symbol_to_buffer(buffer, 0, buffer_size, symbol, align); + cv_write_symbol(buffer, 0, buffer_size, symbol, align); String8 result = str8(buffer, buffer_size); return result; } +internal U64 +cv_read_symbol(String8 raw_data, U64 off, U64 align, CV_Symbol *symbol_out) +{ + Assert(raw_data.size >= sizeof(CV_SymbolHeader)); + + U8 *symbol_ptr = raw_data.str + off; + CV_SymbolHeader header = { .v = memory_read32(symbol_ptr) }; + + Assert(header.size >= sizeof(CV_SymKind)); + Assert(sizeof(CV_SymSize) + header.size <= raw_data.size); + + symbol_out->kind = header.kind; + symbol_out->data = str8(symbol_ptr + sizeof(CV_SymbolHeader), header.size - sizeof(CV_SymKind)); + + U64 symbol_size = AlignPow2(sizeof(CV_SymSize) + header.size, align); + Assert(symbol_size <= raw_data.size); + return symbol_size; +} + +internal U8 * +cv_ptr_from_symbol(CV_Symbol symbol) +{ + return symbol.data.str - sizeof(CV_SymbolHeader); +} + +internal CV_SymKind * +cv_kind_ptr_from_symbol(CV_Symbol symbol) +{ + return &((CV_SymbolHeader *)cv_ptr_from_symbol(symbol))->kind; +} + +internal CV_Symbol +cv_symbol_from_ptr(U8 *ptr) +{ + CV_Symbol symbol = {0}; + cv_read_symbol(str8(ptr, max_U64), 0, 1, &symbol); + return symbol; +} + +internal String8 +cv_raw_from_symbol(void *ptr) +{ + CV_SymbolHeader *header = ptr; + return str8(ptr, header->size + sizeof(header->size)); +} + +internal B32 +cv_symbol_match(CV_Symbol a, CV_Symbol b) +{ + B32 is_match = 0; + + CV_SymbolHeader *a_ptr = (CV_SymbolHeader *)cv_ptr_from_symbol(a); + CV_SymbolHeader *b_ptr = (CV_SymbolHeader *)cv_ptr_from_symbol(b); + + if (a_ptr->size == b_ptr->size) { + is_match = MemoryMatch((U8*)a_ptr + sizeof(CV_SymSize), (U8*)b_ptr + sizeof(CV_SymSize), a_ptr->size); + } + + return is_match; +} + internal String8 cv_make_symbol(Arena *arena, CV_SymKind kind, String8 data) { @@ -337,6 +379,80 @@ cv_make_envblock(Arena *arena, String8List string_list) return result; } +internal String8 +cv_make_proc32(Arena *arena, CV_SymProc32 proc, String8 name) +{ + U64 buf_size = sizeof(proc) + name.size + 1; + U8 *buf = push_array(arena, U8, buf_size); + CV_SymProc32 *proc_dst = (CV_SymProc32 *)buf; + MemoryCopy(proc_dst, &proc, sizeof(proc)); + MemoryCopy(proc_dst + 1, name.str, name.size); + MemorySet((U8 *)(proc_dst + 1) + name.size , 0, 1); + String8 result = str8(buf, buf_size); + return result; +} + +internal String8 +cv_make_end(Arena *arena) +{ (void)arena; + return str8_zero(); +} + +internal String8 +cv_make_data32(Arena *arena, CV_SymData32 data, String8 name) +{ + U64 buf_size = sizeof(data) + name.size + 1; + U8 *buf = push_array(arena, U8, buf_size); + CV_SymData32 *data_dst = (CV_SymData32 *)buf; + MemoryCopy(data_dst, &data, sizeof(data)); + MemoryCopy(data_dst + 1, name.str, name.size); + buf[sizeof(data) + name.size] = 0; + return str8(buf, buf_size); +} + +internal String8 +cv_make_const(Arena *arena, CV_SymConstant v, U16 value, String8 name) +{ + U64 buf_size = sizeof(v) + sizeof(value) + name.size + 1; + U8 *buf = push_array(arena, U8, buf_size); + CV_SymConstant *data_dst = (CV_SymConstant *)buf; + MemoryCopy(buf, &v, sizeof(v)); + MemoryCopy(buf + sizeof(v), &value, sizeof(value)); + MemoryCopy(buf + sizeof(v) + sizeof(value), name.str, name.size); + buf[sizeof(v) + sizeof(value) + name.size] = 0; + return str8(buf, buf_size); +} + +internal String8 +cv_make_udt(Arena *arena, CV_SymUDT v, String8 name) +{ + U64 buf_size = sizeof(v) + name.size + 1; + U8 *buf = push_array(arena, U8, buf_size); + CV_SymUDT *data_dst = (CV_SymUDT *)buf; + MemoryCopy(data_dst, &v, sizeof(v)); + MemoryCopy(data_dst + 1, name.str, name.size); + buf[sizeof(v) + name.size] = 0; + return str8(buf, buf_size); +} + +internal String8 +cv_make_inline_site(Arena *arena, CV_SymInlineSite inline_site, String8 annots) +{ + U64 buf_size = sizeof(inline_site) + annots.size; + U8 *buf = push_array(arena, U8, buf_size); + CV_SymInlineSite *inline_dst = (CV_SymInlineSite *)buf; + MemoryCopy(inline_dst, &inline_site, sizeof(inline_site)); + MemoryCopy(inline_dst + 1, annots.str, annots.size); + String8 result = str8(buf, buf_size); + return result; +} + +internal String8 +cv_make_inline_site_end(Arena *arena) +{ (void)arena; + return str8_zero(); +} + internal CV_Symbol cv_make_proc_ref(Arena *arena, CV_ModIndex imod, U32 stream_offset, String8 name, B32 is_local) { @@ -382,32 +498,68 @@ cv_make_pub32(Arena *arena, CV_Pub32Flags flags, U32 off, U16 isect, String8 nam return symbol; } -internal CV_SymbolList -cv_make_proc_refs(Arena *arena, CV_ModIndex imod, CV_SymbolList symbol_list) +internal B32 +cv_is_gproc(CV_Symbol symbol) { - CV_SymbolList proc_ref_list = {0}; - for (CV_SymbolNode *symbol_node = symbol_list.first; symbol_node != 0; symbol_node = symbol_node->next) { - CV_Symbol *symbol = &symbol_node->data; - if (symbol->kind == CV_SymKind_GPROC32) { - String8 name = cv_name_from_symbol(symbol->kind, symbol->data); - CV_Symbol ref = cv_make_proc_ref(arena, imod, safe_cast_u32(symbol->offset), name, /* is_local: */ 0); - CV_SymbolNode *proc_ref_node = cv_symbol_list_push(arena, &proc_ref_list); - proc_ref_node->data = ref; - } else if (symbol->kind == CV_SymKind_LPROC32) { - String8 name = cv_name_from_symbol(symbol->kind, symbol->data); - CV_Symbol ref = cv_make_proc_ref(arena, imod, safe_cast_u32(symbol->offset), name, /* is_local */ 1); - CV_SymbolNode *proc_ref_node = cv_symbol_list_push(arena, &proc_ref_list); - proc_ref_node->data = ref; - } + return symbol.kind == CV_SymKind_GPROC32 || + symbol.kind == CV_SymKind_GPROCMIPS || + symbol.kind == CV_SymKind_GPROCIA64 || + symbol.kind == CV_SymKind_GPROC32_ID || + symbol.kind == CV_SymKind_GPROCMIPS_ID || + symbol.kind == CV_SymKind_GPROCIA64_ID || + symbol.kind == CV_SymKind_GPROC16 || + symbol.kind == CV_SymKind_GPROC32_16t || + symbol.kind == CV_SymKind_GPROCMIPS_16t || + symbol.kind == CV_SymKind_GPROC32_ST || + symbol.kind == CV_SymKind_GPROCMIPS_ST || + symbol.kind == CV_SymKind_GPROCIA64_ST; +} + +internal B32 +cv_is_lproc(CV_Symbol symbol) +{ + return symbol.kind == CV_SymKind_LPROC32 || + symbol.kind == CV_SymKind_LPROCMIPS || + symbol.kind == CV_SymKind_LPROCIA64 || + symbol.kind == CV_SymKind_LPROC32_ID || + symbol.kind == CV_SymKind_LPROCMIPS_ID || + symbol.kind == CV_SymKind_LPROCIA64_ID || + symbol.kind == CV_SymKind_LPROC32_DPC || + symbol.kind == CV_SymKind_LPROC32_DPC_ID || + symbol.kind == CV_SymKind_LPROC16 || + symbol.kind == CV_SymKind_LPROC32_16t || + symbol.kind == CV_SymKind_LPROCMIPS_16t || + symbol.kind == CV_SymKind_LPROC32_ST || + symbol.kind == CV_SymKind_LPROCMIPS_ST || + symbol.kind == CV_SymKind_LPROCIA64_ST; +} + +internal B32 +cv_is_obj_info(CV_Symbol symbol) +{ + return symbol.kind == CV_SymKind_OBJNAME; +} + +internal CV_ObjInfo +cv_obj_info_from_symbol(CV_Symbol symbol) +{ + CV_ObjInfo result; MemoryZeroStruct(&result); + switch (symbol.kind) { + case CV_SymKind_OBJNAME: { + CV_SymObjName *obj_name = (CV_SymObjName *) symbol.data.str; + result.sig = obj_name->sig; + str8_deserial_read_cstr(symbol.data, sizeof(CV_SymObjName), &result.name); + } break; + default: { InvalidPath; } break; } - return proc_ref_list; + return result; } //////////////////////////////// //~ .debug$S helpers internal void -cv_parse_debug_s_c13_(Arena *arena, CV_DebugS *debug_s, String8 raw_debug_s) +cv_debug_s_from_data_c13_(Arena *arena, CV_DebugS *debug_s, String8 raw_debug_s) { for (U64 cursor = 0; cursor + sizeof(CV_C13SubSectionHeader) <= raw_debug_s.size; ) { // read header @@ -431,34 +583,32 @@ cv_parse_debug_s_c13_(Arena *arena, CV_DebugS *debug_s, String8 raw_debug_s) } } -internal CV_DebugS -cv_parse_debug_s_c13(Arena *arena, String8 raw_debug_s) +internal force_inline UBSAN_NO_ALIGN CV_Signature +cv_signature_from_debug_s(String8 raw_debug_s) { - CV_DebugS debug_s = {0}; - cv_parse_debug_s_c13_(arena, &debug_s, raw_debug_s); - return debug_s; + CV_Signature sig; + MemoryCopy(&sig, raw_debug_s.str, sizeof(sig)); + return sig; } internal CV_DebugS -cv_parse_debug_s_c13_list(Arena *arena, String8List raw_debug_s) +cv_debug_s_from_data_c13(Arena *arena, String8 raw_debug_s) { CV_DebugS debug_s = {0}; - for (String8Node *node = raw_debug_s.first; node != 0; node = node->next) { - cv_parse_debug_s_c13_(arena, &debug_s, node->string); - } + cv_debug_s_from_data_c13_(arena, &debug_s, raw_debug_s); return debug_s; } internal CV_DebugS -cv_parse_debug_s(Arena *arena, String8 raw_debug_s) +cv_debug_s_from_data(Arena *arena, String8 raw_debug_s) { CV_DebugS result; MemoryZeroStruct(&result); if (raw_debug_s.size >= sizeof(CV_Signature)) { - CV_Signature sig = *(CV_Signature *)raw_debug_s.str; + CV_Signature sig = cv_signature_from_debug_s(raw_debug_s); switch (sig) { case CV_Signature_C13: { String8 raw_debug_s_past_sig = str8_substr(raw_debug_s, r1u64(sizeof(sig), raw_debug_s.size)); - result = cv_parse_debug_s_c13(arena, raw_debug_s_past_sig); + result = cv_debug_s_from_data_c13(arena, raw_debug_s_past_sig); } break; case CV_Signature_C6: { Assert(!"TODO: handle C6"); @@ -483,8 +633,31 @@ cv_debug_s_concat_in_place(CV_DebugS *dst, CV_DebugS *src) } } +internal U64 +cv_size_from_debug_s(CV_DebugS *debug_s, U64 align) +{ + U64 size = 0; + for EachElement(i, debug_s->data_list) { + if (i == CV_C13SubSectionIdxKind_Lines) { continue; } + if (debug_s->data_list[i].total_size == 0) { continue; } + size += sizeof(CV_C13SubSectionKind) + sizeof(U32); // header + size += debug_s->data_list[i].total_size; + size = AlignPow2(size, align); + } + + String8List *line_data = cv_sub_section_ptr_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); + for EachNode(line_n, String8Node, line_data->first) { + if (line_n->string.size == 0) { continue; } + size += sizeof(CV_C13SubSectionKind) + sizeof(U32); // header + size += line_n->string.size; + size = AlignPow2(size, align); + } + + return size; +} + internal String8List -cv_data_c13_from_debug_s(Arena *arena, CV_DebugS *debug_s, B32 write_sig) +cv_data_from_debug_s_c13(Arena *arena, CV_DebugS *debug_s, B32 write_sig) { String8List srl = {0}; str8_serial_begin(arena, &srl); @@ -494,26 +667,10 @@ cv_data_c13_from_debug_s(Arena *arena, CV_DebugS *debug_s, B32 write_sig) str8_serial_push_struct(arena, &srl, &sig); } - static CV_C13SubSectionKind layout_arr[] = { - CV_C13SubSectionKind_Symbols, - //CV_C13SubSectionKind_Lines, - CV_C13SubSectionKind_FileChksms, - CV_C13SubSectionKind_FrameData, - CV_C13SubSectionKind_InlineeLines, - CV_C13SubSectionKind_IlLines, - CV_C13SubSectionKind_CrossScopeImports, - CV_C13SubSectionKind_CrossScopeExports, - CV_C13SubSectionKind_FuncMDTokenMap, - CV_C13SubSectionKind_TypeMDTokenMap, - CV_C13SubSectionKind_MergedAssemblyInput, - CV_C13SubSectionKind_CoffSymbolRVA, - CV_C13SubSectionKind_XfgHashType, - CV_C13SubSectionKind_XfgHashVirtual, - }; - - for (U64 layout_idx = 0; layout_idx < ArrayCount(layout_arr); layout_idx += 1) { - CV_C13SubSectionKind kind = layout_arr[layout_idx]; - String8List *data = cv_sub_section_ptr_from_debug_s(debug_s, kind); + for EachIndex(i, CV_C13SubSectionIdxKind_COUNT) { + if (i == CV_C13SubSectionIdxKind_Lines) { continue; } + CV_C13SubSectionKind kind = cv_c13_sub_section_kind_from_idx(i); + String8List *data = cv_sub_section_ptr_from_debug_s(debug_s, kind); if (data->total_size > 0) { U32 size32 = safe_cast_u32(data->total_size); str8_serial_push_u32(arena, &srl, kind); @@ -524,16 +681,27 @@ cv_data_c13_from_debug_s(Arena *arena, CV_DebugS *debug_s, B32 write_sig) } String8List *line_data = cv_sub_section_ptr_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); - for (String8Node *line_node = line_data->first; line_node != 0; line_node = line_node->next) { + for EachNode(line_n, String8Node, line_data->first) { str8_serial_push_u32(arena, &srl, CV_C13SubSectionKind_Lines); - str8_serial_push_u32(arena, &srl, safe_cast_u32(line_node->string.size)); - str8_serial_push_string(arena, &srl, line_node->string); + str8_serial_push_u32(arena, &srl, safe_cast_u32(line_n->string.size)); + str8_serial_push_string(arena, &srl, line_n->string); str8_serial_push_align(arena, &srl, 4); } return srl; } +internal CV_C13SubSectionKind +cv_c13_sub_section_kind_from_idx(CV_C13SubSectionIdxKind idx) +{ + switch (idx) { +#define X(n, c) case CV_C13SubSectionIdxKind_##n: return c; + CV_C13SubSectionKindXList(X) +#undef X + } + return 0; +} + internal CV_C13SubSectionIdxKind cv_c13_sub_section_idx_from_kind(CV_C13SubSectionKind kind) { @@ -919,355 +1087,198 @@ cv_pack_string_hash_table(Arena *arena, TP_Context *tp, CV_StringHashTable strin //////////////////////////////// //~ Symbol Deduper -internal int -cv_symbol_deduper_is_before(void *raw_a, void *raw_b) +internal void * +cv_symbol_deduper_insert_or_update(void **buckets, U64 bucket_cap, U64 hash, void *symbol_ptr) { - return raw_a < raw_b; -} - -internal CV_SymbolNode ** -cv_symbol_deduper_insert_or_update(CV_SymbolNode ***buckets, U64 cap, U64 hash, CV_SymbolNode **new_bucket) -{ - CV_SymbolNode **result = 0; - B32 is_inserted_or_updated = 0; - - U64 best_idx = hash % cap; - U64 idx = best_idx; - + CV_Symbol symbol = cv_symbol_from_ptr(symbol_ptr); + U8 *result = 0; + B32 is_inserted_or_updated = 0; + U64 best_idx = hash % bucket_cap; + U64 bucket_idx = best_idx; do { retry:; - CV_SymbolNode **curr_bucket = buckets[idx]; + void *curr_ptr = buckets[bucket_idx]; + Assert(curr_ptr != symbol_ptr); - Assert(curr_bucket != new_bucket); - - if (curr_bucket == 0) { - CV_SymbolNode **compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { + if (curr_ptr == 0) { + U8 *cmp = ins_atomic_ptr_eval_cond_assign(&buckets[bucket_idx], symbol_ptr, curr_ptr); + if (cmp == curr_ptr) { // success, bucket was inserted is_inserted_or_updated = 1; break; } - // another thread took the bucket... goto retry; - } else if ((*curr_bucket)->data.kind == (*new_bucket)->data.kind && - (*curr_bucket)->data.data.size == (*new_bucket)->data.data.size && - MemoryMatch((*curr_bucket)->data.data.str, (*new_bucket)->data.data.str, (*new_bucket)->data.data.size)) { - if (cv_symbol_deduper_is_before(curr_bucket, new_bucket)) { - result = new_bucket; + } else { + CV_Symbol curr = cv_symbol_from_ptr(curr_ptr); - is_inserted_or_updated = 1; + if (cv_symbol_match(curr, symbol)) { + if (curr_ptr < symbol_ptr) { + // do not update, more recent symbol is in the bucket + result = symbol_ptr; + is_inserted_or_updated = 1; + break; + } - // don't need to update, more recent leaf is in the bucket - break; + void *cmp = ins_atomic_ptr_eval_cond_assign(&buckets[bucket_idx], symbol_ptr, curr_ptr); + if (cmp == curr_ptr) { + result = cmp; + is_inserted_or_updated = 1; + break; + } + + // another thread took the bucket... + goto retry; } - - CV_SymbolNode **compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - if (compare_bucket == curr_bucket) { - result = compare_bucket; - - is_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; } // advance - idx = (idx + 1) % cap; - } while (idx != best_idx); - + bucket_idx = (bucket_idx + 1) == bucket_cap ? 0 : bucket_idx + 1; + } while (bucket_idx != best_idx); Assert(is_inserted_or_updated); - return result; } -internal -THREAD_POOL_TASK_FUNC(cv_symbol_deduper_insert_task) -{ - ProfBeginFunction(); - CV_SymbolDeduperTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - for (U64 symbol_idx = range.min; symbol_idx < range.max; ++symbol_idx) { - CV_SymbolNode **symbol_node = &task->symbols[symbol_idx]; - U64 hash = hash_from_cv_symbol(&(*symbol_node)->data); - cv_symbol_deduper_insert_or_update(task->u.buckets, task->cap, hash, symbol_node); - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(cv_symbol_deduper_deref_buckets_task) -{ - ProfBeginFunction(); - CV_SymbolDeduperTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - for (U64 bucket_idx = range.min; bucket_idx < range.max; ++bucket_idx) { - CV_SymbolNode **bucket = task->u.buckets[bucket_idx]; - if (bucket) { - task->u.deref_buckets[bucket_idx] = *bucket; - } - } - ProfEnd(); -} - -internal void -cv_dedup_symbol_ptr_array(TP_Context *tp, CV_SymbolPtrArray *symbols) -{ - ProfBeginDynamic("Dedup Symbols [Count %llu]", symbols->count); - Temp scratch = scratch_begin(0, 0); - - ProfBegin("Setup Task"); - CV_SymbolDeduperTask task = {0}; - task.symbols = symbols->v; - task.cap = (U64)((F64)symbols->count * 1.3); - task.u.buckets = push_array(scratch.arena, CV_SymbolNode **, task.cap); - ProfEnd(); - - ProfBegin("Dedup"); - task.ranges = tp_divide_work(scratch.arena, symbols->count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, cv_symbol_deduper_insert_task, &task); - ProfEnd(); - - ProfBegin("Deref Buckets"); - task.ranges = tp_divide_work(scratch.arena, task.cap, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, cv_symbol_deduper_deref_buckets_task, &task); - ProfEnd(); - - ProfBegin("Copy Extant Buckets"); - U64 unique_symbol_count = 0; - for (U64 bucket_idx = 0; bucket_idx < task.cap; ++bucket_idx) { - CV_SymbolNode *bucket = task.u.deref_buckets[bucket_idx]; - if (bucket) { - symbols->v[unique_symbol_count++] = bucket; - } - } - ProfEnd(); - - Assert(unique_symbol_count <= symbols->count); - symbols->count = unique_symbol_count; - - ProfBeginDynamic("Sort [Count %llu]", symbols->count); - radsort(symbols->v, symbols->count, cv_symbol_deduper_is_before); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); -} - //////////////////////////////// //~ .debug$T helpers internal CV_DebugT -cv_debug_t_from_data_arr(Arena *arena, String8Array data_arr, U64 align) +cv_debug_t_from_data(Arena *arena, String8 data, U64 align) { - ProfBegin("Upfront parse"); - U64 max_leaf_count = 0; - for (U64 data_idx = 0; data_idx < data_arr.count; data_idx += 1) { - String8 data = data_arr.v[data_idx]; - for (U64 cursor = 0; cursor < data.size; ) { - CV_Leaf leaf; - cursor += cv_deserial_leaf(data, cursor, align, &leaf); - max_leaf_count += 1; - } + CV_DebugT debug_t = { .data = data }; + + ProfBegin("Upfront parse for counts"); + for (U64 cursor = 0, prev_cursor = 0, ti = CV_MinComplexTypeIndex; cursor < data.size; ti += 1) { + CV_Leaf leaf = {0}; + TryRead(cv_read_leaf(data, cursor, align, &leaf), cursor, count_stop); + debug_t.source_counts[cv_type_index_source_from_leaf_kind(leaf.kind)] += 1; } +count_stop: ProfEnd(); - U8 **leaf_arr = push_array_no_zero(arena, U8 *, max_leaf_count); - U64 leaf_count = 0; - for (U64 data_idx = 0; data_idx < data_arr.count; data_idx += 1) { - String8 data = data_arr.v[data_idx]; + for EachElement(i, debug_t.source_counts) { debug_t.count += debug_t.source_counts[i]; } - U64 cursor = 0; - while (cursor < data.size) { - CV_Leaf leaf; - U64 read_size = cv_deserial_leaf(data, cursor, align, &leaf); + ProfBegin("store leaf offsets"); + debug_t.offsets = push_array_no_zero(arena, U32, debug_t.count); + for (U64 cursor = 0, idx = 0; cursor < data.size && idx < debug_t.count; idx += 1) { + debug_t.offsets[idx] = cursor; + TryRead(cv_read_leaf(data, cursor, align, &(CV_Leaf){0}), cursor, store_stop); + } +store_stop: - Assert(leaf_count < max_leaf_count); - leaf_arr[leaf_count] = str8_deserial_get_raw_ptr(data, cursor, read_size); - leaf_count += 1; + for EachElement(i, debug_t.ti_ranges) { debug_t.ti_ranges[i] = r1u64(CV_MinComplexTypeIndex, CV_MinComplexTypeIndex + debug_t.count); } - // advance cursor - cursor += read_size; - } + // shift upper type index bound to include precompiled types + CV_Leaf leaf = cv_debug_t_get_leaf(&debug_t, 0); + if (leaf.kind == CV_LeafKind_PRECOMP) { + CV_PrecompInfo precomp_info = cv_precomp_info_from_leaf(leaf); + for EachElement(i, debug_t.ti_ranges) { debug_t.ti_ranges[i].max += precomp_info.leaf_count; } } - CV_DebugT debug_t = {0}; - debug_t.count = leaf_count; - debug_t.v = leaf_arr; + ProfEnd(); return debug_t; } -internal CV_DebugT -cv_debug_t_from_data(Arena *arena, String8 data, U64 align) -{ - String8Array arr = {0}; - arr.count = 1; - arr.v = &data; - return cv_debug_t_from_data_arr(arena, arr, align); -} - internal CV_Leaf -cv_debug_t_get_leaf(CV_DebugT debug_t, U64 leaf_idx) +cv_debug_t_get_leaf(CV_DebugT *debug_t, U64 leaf_idx) { - Assert(leaf_idx < debug_t.count); - - U8 *ptr = debug_t.v[leaf_idx]; - String8 data = str8(ptr, max_U64); - - CV_Leaf leaf; - cv_deserial_leaf(data, 0, 1, &leaf); - - U64 size = cv_header_struct_size_from_leaf_kind(leaf.kind); - Assert(size <= leaf.data.size); - + CV_Leaf leaf = {0}; + if (debug_t->count > 0) { + Assert(leaf_idx < debug_t->count); + cv_read_leaf(debug_t->data, debug_t->offsets[leaf_idx], 1, &leaf); + Assert(cv_header_struct_size_from_leaf_kind(leaf.kind) <= leaf.data.size); + } return leaf; } -internal String8 -cv_debug_t_get_raw_leaf(CV_DebugT debug_t, U64 leaf_idx) +internal U64 +cv_leaf_idx_from_ti(CV_DebugT *debug_t, CV_TypeIndexSource source, CV_TypeIndex ti) { - Assert(leaf_idx < debug_t.count); - U8 *leaf_ptr = debug_t.v[leaf_idx]; - CV_LeafSize *size_ptr = (CV_LeafSize *)leaf_ptr; - CV_LeafSize total_size = sizeof(*size_ptr) + *size_ptr; - String8 raw_leaf = str8(leaf_ptr, total_size); - return raw_leaf; + // validate TI + Assert(contains_1u64(debug_t->ti_ranges[source], ti)); + + // no PCH indirection + Assert(!contains_1u64(debug_t->pch_ti_range[source], ti)); + + U64 leaf_idx = ti; + Assert(leaf_idx >= debug_t->ti_ranges[source].min); + + // strip type index range + leaf_idx -= debug_t->ti_ranges[source].min; + Assert(leaf_idx >= dim_1u64(debug_t->pch_ti_range[source])); + + // strip PCH indirection + leaf_idx -= dim_1u64(debug_t->pch_ti_range[source]); + leaf_idx += debug_t->source_offsets[source]; + + Assert(leaf_idx < debug_t->count); + return leaf_idx; +} + +internal CV_TypeIndex +cv_ti_from_leaf_idx(CV_DebugT *debug_t, CV_TypeIndexSource source, U64 leaf_idx) +{ + U64 pch_count = dim_1u64(debug_t->pch_ti_range[source]); + CV_TypeIndex ti = debug_t->ti_ranges[source].min + pch_count + leaf_idx; + return ti; +} + +internal CV_Leaf +cv_leaf_from_ti(CV_DebugT *debug_t, CV_TypeIndexSource source, CV_TypeIndex ti) +{ + U64 leaf_idx = cv_leaf_idx_from_ti(debug_t, source, ti); + return cv_debug_t_get_leaf(debug_t, leaf_idx); +} + +internal String8 +cv_debug_t_get_raw_leaf(CV_DebugT *debug_t, U64 leaf_idx) +{ + Assert(leaf_idx < debug_t->count); + U8 *leaf_ptr = debug_t->data.str + debug_t->offsets[leaf_idx]; + CV_LeafSize leaf_size = memory_read16(leaf_ptr); + return str8(leaf_ptr, leaf_size + sizeof(leaf_size)); } internal CV_LeafHeader * -cv_debug_t_get_leaf_header(CV_DebugT debug_t, U64 leaf_idx) +cv_debug_t_get_leaf_header(CV_DebugT *debug_t, U64 leaf_idx) { - Assert(leaf_idx < debug_t.count); - CV_LeafHeader *leaf_header = (CV_LeafHeader *) debug_t.v[leaf_idx]; - return leaf_header; + CV_LeafHeader *header = 0; + if (leaf_idx < debug_t->count) { + header = (CV_LeafHeader *)(debug_t->data.str + debug_t->offsets[leaf_idx]); + } + return header; } -internal B32 -cv_debug_t_is_pch(CV_DebugT debug_t) +internal CV_TypeIndex +cv_debug_t_get_type_index(CV_DebugT *debug_t, CV_TypeIndexSource ti_source, U64 leaf_idx) { - if (debug_t.count > 0) { - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, 0); - return cv_is_leaf_pch(leaf.kind); - } - return 0; -} - -internal B32 -cv_debug_t_is_type_server(CV_DebugT debug_t) -{ - if (debug_t.count > 0) { - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, 0); - return cv_is_leaf_type_server(leaf.kind); - } - return 0; + CV_TypeIndex ti = debug_t->ti_ranges[ti_source].min + leaf_idx; + Assert(contains_1u64(debug_t->ti_ranges[ti_source], ti)); + return ti; } internal U64 -cv_debug_t_array_count_leaves(U64 count, CV_DebugT *arr) +cv_debug_t_get_leaf_index(CV_DebugT *debug_t, CV_TypeIndexSource ti_source, CV_TypeIndex ti) { - U64 total_leaf_count = 0; - for (U64 i = 0; i < count; i += 1) { - total_leaf_count += arr[i].count; - } - return total_leaf_count; + Assert(contains_1u64(debug_t->ti_ranges[ti_source], ti)); + U64 leaf_idx = ti - debug_t->ti_ranges[ti_source].min; + return leaf_idx; } -internal -THREAD_POOL_TASK_FUNC(cv_str8_list_from_debug_t_task) +internal B32 +cv_debug_t_is_pch(CV_DebugT *debug_t) { - CV_Str8ListFromDebugT *task = raw_task; - for (U64 leaf_idx = task->ranges[task_id].min; leaf_idx < task->ranges[task_id].max; ++leaf_idx) { - String8Node *node = &task->nodes[leaf_idx]; - node->string = cv_debug_t_get_raw_leaf(task->debug_t, leaf_idx); - str8_list_push_node(&task->lists[task_id], node); - } + return cv_is_leaf_pch(cv_debug_t_get_leaf(debug_t, 0).kind); } -internal String8List -cv_str8_list_from_debug_t_parallel(TP_Context *tp, Arena *arena, CV_DebugT debug_t) +internal B32 +cv_debug_t_is_type_server_ref(CV_DebugT *debug_t) { - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - // build lists in parallel - CV_Str8ListFromDebugT task = {0}; - task.debug_t = debug_t; - task.ranges = tp_divide_work(scratch.arena, debug_t.count, tp->worker_count); - task.lists = push_array(scratch.arena, String8List, tp->worker_count); - task.nodes = push_array_no_zero(arena, String8Node, debug_t.count); - tp_for_parallel(tp, 0, tp->worker_count, cv_str8_list_from_debug_t_task, &task); - - // concat output lists - String8List list = {0}; - for (U64 task_id = 0; task_id < tp->worker_count; ++task_id) { - str8_list_concat_in_place(&list, &task.lists[task_id]); - } - - scratch_end(scratch); - ProfEnd(); - return list; + return cv_is_leaf_type_server(cv_debug_t_get_leaf(debug_t, 0).kind); } // $$Symbols -internal void -cv_parse_symbol_sub_section_capped(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align, U64 cap) -{ - U64 count = 0; - for (U64 cursor = 0, opl = data.size; cursor < opl && count < cap; count += 1) { - // read symbol header - CV_SymbolHeader header; - cursor += str8_deserial_read_struct(data, cursor, &header); - - // size from header has to be larger than 2 bytes - if (header.size < sizeof(header.kind)) { - Assert(!"TODO: error handle invalid symbol data"); - break; - } - - // is there enough bytes in the range? - U64 symbol_opl = cursor + (header.size - sizeof(header.kind)); - if (symbol_opl > opl) { - Assert(!"TODO: error handle corrupted symbol data"); - break; - } - - // get symbol data - Rng1U64 symbol_data_range = r1u64(cursor, symbol_opl); - String8 symbol_data = str8_substr(data, symbol_data_range); - - // init symbol - CV_SymbolNode *node = cv_symbol_list_push(arena, list); - node->data.offset = offset_base + cursor; - node->data.kind = header.kind; - node->data.data = symbol_data; - - // advance cursor - cursor = symbol_opl; - cursor = AlignPow2(cursor, align); - } -} - -internal void -cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align) -{ - cv_parse_symbol_sub_section_capped(arena, list, offset_base, data, align, max_U64); -} - -internal CV_SymbolList -cv_symbol_list_from_data_list(Arena *arena, String8List data_list, U64 align) -{ - CV_SymbolList symbol_list = {0}; - U64 cursor = 0; - for (String8Node *sect = data_list.first; sect != 0; cursor += sect->string.size, sect = sect->next) { - cv_parse_symbol_sub_section(arena, &symbol_list, cursor, sect->string, align); - } - return symbol_list; -} - internal void cv_symbol_list_push_node(CV_SymbolList *list, CV_SymbolNode *node) { @@ -1278,259 +1289,79 @@ cv_symbol_list_push_node(CV_SymbolList *list, CV_SymbolNode *node) } internal CV_SymbolNode * -cv_symbol_list_push(Arena *arena, CV_SymbolList *list) +cv_symbol_list_push(Arena *arena, CV_SymbolList *list, CV_Symbol v) { CV_SymbolNode *node = push_array(arena, CV_SymbolNode, 1); + node->data = v; cv_symbol_list_push_node(list, node); return node; } -internal CV_SymbolNode * -cv_symbol_list_push_data(Arena *arena, CV_SymbolList *list, CV_SymKind kind, String8 data) -{ - CV_SymbolNode *node = cv_symbol_list_push(arena, list); - node->data.kind = kind; - node->data.data = data; - return node; -} - -internal CV_SymbolNode * -cv_symbol_list_push_many(Arena *arena, CV_SymbolList *list, U64 count) -{ - CV_SymbolNode *node_arr = push_array_no_zero(arena, CV_SymbolNode, 1); - for (U64 node_idx = 0; node_idx < count; node_idx += 1) { - cv_symbol_list_push_node(list, &node_arr[node_idx]); - } - return node_arr; -} - -internal void -cv_symbol_list_remove_node(CV_SymbolList *list, CV_SymbolNode *node) -{ - Assert(list->count > 0); - list->count -= 1; - DLLRemove(list->first, list->last, node); -} - -internal void -cv_symbol_list_concat_in_place(CV_SymbolList *list, CV_SymbolList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -cv_symbol_list_concat_in_place_arr(CV_SymbolList *list, U64 count, CV_SymbolList *to_concat) -{ - SLLConcatInPlaceArray(list, to_concat, count); -} - internal U64 -cv_symbol_list_arr_get_count(U64 count, CV_SymbolList *list_arr) -{ - U64 result = 0; - for (U64 idx = 0; idx < count; idx += 1) { - result += list_arr[idx].count; - } - return result; -} - -internal String8List -cv_data_from_symbol_list(Arena *arena, CV_SymbolList symbol_list, U64 align) -{ - String8List data_list = {0}; - for (CV_SymbolNode *node = symbol_list.first; node != 0; node = node->next) { - String8 data = cv_serialize_symbol(arena, &node->data, align); - str8_list_push(arena, &data_list, data); - } - return data_list; -} - -internal -THREAD_POOL_TASK_FUNC(cv_symbol_list_syncer) -{ - ProfBeginFunction(); - - CV_SymbolListSyncer *task = raw_task; - - // context shortcuts - Rng1U64 list_range = task->list_range_arr[task_id]; - U64 symbol_base = task->symbol_base_arr[task_id]; - - for (U64 list_idx = list_range.min, symbol_idx = symbol_base; list_idx < list_range.max; list_idx += 1) { - // pick up assigned list - CV_SymbolList list = task->list_arr[list_idx]; - - // fill out assigned range in the symbol array - for (CV_SymbolNode *node = list.first; node != 0; node = node->next, symbol_idx += 1) { - task->symbol_arr[symbol_idx] = node; - } - } - - ProfEnd(); -} - -internal CV_SymbolPtrArray -cv_symbol_ptr_array_from_list(Arena *arena, TP_Context *tp, U64 count, CV_SymbolList *list_arr) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - U64 total_count = cv_symbol_list_arr_get_count(count, list_arr); - - CV_SymbolListSyncer task = {0}; - task.list_arr = list_arr; - task.symbol_arr = push_array_no_zero(arena, CV_SymbolNode *, total_count); - task.symbol_base_arr = push_array_no_zero(scratch.arena, U64, tp->worker_count); - task.list_range_arr = tp_divide_work(scratch.arena, count, tp->worker_count); - - for (U64 thread_idx = 0, symbol_base = 0; thread_idx < tp->worker_count; thread_idx += 1) { - task.symbol_base_arr[thread_idx] = symbol_base; - Rng1U64 range = task.list_range_arr[thread_idx]; - for (U64 list_idx = range.min; list_idx < range.max; list_idx += 1) { - symbol_base += list_arr[list_idx].count; - } - } - - tp_for_parallel(tp, 0, tp->worker_count, cv_symbol_list_syncer, &task); - - CV_SymbolPtrArray result = {0}; - result.count = total_count; - result.v = task.symbol_arr; - - scratch_end(scratch); - ProfEnd(); - return result; -} - -internal CV_Scope * -cv_scope_list_push(Arena *arena, CV_ScopeList *list) -{ - CV_Scope *node = push_array(arena, CV_Scope, 1); - SLLQueuePush(list->first, list->last, node); - return node; -} - -internal CV_SymbolList -cv_global_scope_symbols_from_list(Arena *arena, CV_SymbolList list) -{ - CV_SymbolList gsym_list = {0}; - S64 scope_depth = 0; - for (CV_SymbolNode *symbol_n = list.first; symbol_n != 0; symbol_n = symbol_n->next) { - CV_Symbol symbol = symbol_n->data; - if (cv_is_global_symbol(symbol.kind) && scope_depth == 0) { - cv_symbol_list_push_data(arena, &gsym_list, symbol.kind, symbol.data); - } else if (cv_is_scope_symbol(symbol.kind)) { - scope_depth += 1; - } else if (cv_is_end_symbol(symbol.kind)) { - scope_depth -= 1; - if (scope_depth < 0) { - break; - } - } - } - return gsym_list; -} - -internal CV_ScopeList -cv_symbol_tree_from_symbol_list(Arena *arena, CV_SymbolList list) -{ - Temp scratch = scratch_begin(&arena, 1); - - CV_ScopeList root = {0}; - - // setup root frame - CV_ScopeFrame *stack = push_array(scratch.arena, CV_ScopeFrame, 1); - stack->list = &root; - - for (CV_SymbolNode *symbol_node = list.first; symbol_node != 0; symbol_node = symbol_node->next) { - // store symbol in current scope - CV_Scope *scope = cv_scope_list_push(arena, stack->list); - scope->symbol = symbol_node->data; - - // does this symbol define a new scope? - if (cv_is_scope_symbol(symbol_node->data.kind)) { - CV_ScopeFrame *frame = push_array(scratch.arena, CV_ScopeFrame, 1); - frame->list = push_array(arena, CV_ScopeList, 1); - SLLStackPush(stack, frame); - } - // does this symbol end current scope? - else if (cv_is_end_symbol(symbol_node->data.kind)) { - CV_ScopeFrame *prev_stack_frame = stack->next; - if (prev_stack_frame) { - // set children in parent scope - CV_Scope *parent_scope = prev_stack_frame->list->last; - parent_scope->children = stack->list; - } - - // pop frame - SLLStackPop(stack); - } - } - - scratch_end(scratch); - return root; -} - -internal U64 -cv_patch_symbol_tree_offsets(CV_SymbolList list, U64 base_offset, U64 align) +cv_patch_symbol_tree_offsets(String8List raw_symbols, U64 base_offset, U64 align) { Temp scratch = scratch_begin(0, 0); - struct Stack { - struct Stack *next; - CV_Symbol *symbol; - U64 offset; - }; - struct Stack *stack = 0; - struct Stack *free_list = 0; + struct Stack { struct Stack *next; String8Node symbol_buf; U64 symbol_pos; U64 offset; }; + struct Stack *stack = 0, *free_list = 0; - U64 cursor = base_offset; + String8Node buf = *raw_symbols.first; + U64 buf_pos = 0; + U64 symbol_offset = base_offset; + U64 depth = 0; - for (CV_SymbolNode *symbol_n = list.first; symbol_n != 0; symbol_n = symbol_n->next) { - CV_Symbol symbol = symbol_n->data; - if (cv_is_scope_symbol(symbol.kind)) { + for (;;) { + CV_SymbolHeader symbol_header; + if (str8_buffer_peek(&buf, &buf_pos, sizeof(symbol_header), &symbol_header) != sizeof(symbol_header)) { break; } + + if (cv_is_scope_symbol(symbol_header.kind)) { // NOTE: We don't patch 'next' offset in PROC symbols because // it's not used by visual studio and MSVC leaves the offsets // zeroed. LLD is on the same page. - Assert(symbol.data.size >= sizeof(U32)*2); + Assert(symbol_header.size >= sizeof(CV_SymKind) + sizeof(U32)*2); - // patch symbol parent + // patch parent symbol offset if (stack) { - U32 *parent_off_ptr = (U32 *)symbol.data.str; - *parent_off_ptr = stack->offset; + String8Node temp_buf = buf; + U64 temp_pos = buf_pos + sizeof(CV_SymbolHeader); + str8_buffer_write_u32(&temp_buf, &temp_pos, stack->offset); } // reuse/alloc frame - struct Stack *frame; - if (free_list) { - frame = free_list; - SLLStackPop(free_list); - } else { - frame = push_array_no_zero(scratch.arena, struct Stack, 1); - } + struct Stack *frame = free_list; + if (frame) { SLLStackPop(free_list); } + else { frame = push_array_no_zero(scratch.arena, struct Stack, 1); } // push frame to the stack - frame->symbol = &symbol_n->data; - frame->offset = cursor; + frame->symbol_buf = buf; + frame->symbol_pos = buf_pos + sizeof(CV_SymbolHeader); + frame->offset = safe_cast_u32(symbol_offset); SLLStackPush(stack, frame); - } else if (cv_is_end_symbol(symbol.kind)) { + + depth += 1; + } else if (cv_is_end_symbol(symbol_header.kind)) { // patch symbol end - U32 *end_off_ptr = (U32 *)stack->symbol->data.str + /* skip parent off */ 1; - *end_off_ptr = cursor; + String8Node temp_buf = stack->symbol_buf; + U64 temp_pos = stack->symbol_pos; + str8_buffer_skip(&temp_buf, &temp_pos, sizeof(U32)); // skip parent offset + str8_buffer_write_u32(&temp_buf, &temp_pos, symbol_offset); // recycle frame struct Stack *free_frame = stack; SLLStackPop(stack); SLLStackPush(free_list, free_frame); + + if (depth == 0) { Assert(0 && "malformed symbol stream"); continue; } + depth -= 1; } - // advance cursor - cursor += cv_compute_symbol_record_size(&symbol, align); + // advance symbol offset + symbol_offset += AlignPow2(sizeof(CV_SymSize) + symbol_header.size, align); + str8_buffer_skip(&buf, &buf_pos, AlignPow2(symbol_header.size + sizeof(CV_SymSize), align)); } scratch_end(scratch); - U64 serial_size = cursor - base_offset; - return serial_size; + return symbol_offset - base_offset; } // $$FileChksms @@ -1570,8 +1401,8 @@ internal CV_ChecksumList cv_c13_parse_checksum_data_list(Arena *arena, String8List checksum_data_list) { CV_ChecksumList result = {0}; - for (String8Node *node = checksum_data_list.first; node != 0; node = node->next) { - cv_parse_checksum_data(arena, &result, node->string); + for EachNode(n, String8Node, checksum_data_list.first) { + cv_parse_checksum_data(arena, &result, n->string); } return result; } @@ -1579,13 +1410,12 @@ cv_c13_parse_checksum_data_list(Arena *arena, String8List checksum_data_list) internal void cv_c13_patch_string_offsets_in_checksum_list(CV_ChecksumList checksum_list, String8 string_data, U64 string_data_base_offset, CV_StringHashTable string_ht) { - for (CV_ChecksumNode *node = checksum_list.first; node != 0; node = node->next) { - CV_Checksum *checksum = &node->data; - CV_C13Checksum *header = checksum->header; - String8 name = str8_cstring_capped(string_data.str + header->name_off, string_data.str + string_data.size); - CV_StringBucket *bucket = cv_string_hash_table_lookup(string_ht, name); - - U64 name_off64 = string_data_base_offset + bucket->u.offset; + for EachNode(node, CV_ChecksumNode, checksum_list.first) { + CV_Checksum *checksum = &node->data; + CV_C13Checksum *header = checksum->header; + String8 name = str8_cstring_capped(string_data.str + header->name_off, string_data.str + string_data.size); + CV_StringBucket *bucket = cv_string_hash_table_lookup(string_ht, name); + U64 name_off64 = string_data_base_offset + bucket->u.offset; header->name_off = safe_cast_u32(name_off64); } } diff --git a/src/linker/codeview_ext/codeview.h b/src/linker/codeview_ext/codeview.h index 421af3c2..985f2dce 100644 --- a/src/linker/codeview_ext/codeview.h +++ b/src/linker/codeview_ext/codeview.h @@ -5,16 +5,22 @@ //- Symbol and Leaf Headers -typedef struct CV_LeafHeader +typedef union CV_LeafHeader { - CV_LeafSize size; - CV_LeafKind kind; + struct { + CV_LeafSize size; + CV_LeafKind kind; + }; + U32 v; } CV_LeafHeader; -typedef struct CV_SymbolHeader +typedef union CV_SymbolHeader { - CV_SymSize size; - CV_SymKind kind; + struct { + CV_SymSize size; + CV_SymKind kind; + }; + U32 v; } CV_SymbolHeader; //////////////////////////////// @@ -36,12 +42,6 @@ typedef struct CV_SymbolNode CV_Symbol data; } CV_SymbolNode; -typedef struct CV_SymbolPtrNode -{ - struct CV_SymbolPtrNode *next; - CV_Symbol *data; -} CV_SymbolPtrNode; - typedef struct CV_SymbolList { U64 count; @@ -56,36 +56,6 @@ typedef struct CV_SymbolListArray CV_SymbolList *v; } CV_SymbolListArray; -typedef struct CV_SymbolPtrArray -{ - U64 count; - CV_SymbolNode **v; -} CV_SymbolPtrArray; - -typedef struct CV_Scope -{ - struct CV_ScopeList *children; - struct CV_Scope *next; - struct CV_Scope *prev; - CV_Symbol symbol; -} CV_Scope; - -typedef struct CV_ScopeList -{ - CV_Scope *first; - CV_Scope *last; -} CV_ScopeList; - -typedef struct CV_ScopeFrame -{ - struct CV_ScopeFrame *next; - CV_ScopeList *list; - CV_Scope *curr; - U64 symbol_off; - U32 *parent_off_ptr; - U32 *end_off_ptr; -} CV_ScopeFrame; - //- $$FileChksms typedef struct CV_Checksum @@ -250,11 +220,27 @@ typedef struct CV_DebugS String8List data_list[CV_C13SubSectionIdxKind_COUNT]; } CV_DebugS; +typedef struct CV_DebugH +{ + U64 count; + U64 *v; +} CV_DebugH; + typedef struct CV_DebugT { - U64 size; - U64 count; - U8 **v; + String8 data; + U64 count; + U32 *offsets; + + // type server + U64 source_counts [CV_TypeIndexSource_COUNT]; + U64 source_offsets[CV_TypeIndexSource_COUNT]; + U32 ti_base [CV_TypeIndexSource_COUNT]; + Rng1U64 ti_ranges [CV_TypeIndexSource_COUNT]; + + // PCH + Rng1U64 pch_ti_range[CV_TypeIndexSource_COUNT]; + U32 pch_obj_idx; } CV_DebugT; //////////////////////////////// @@ -318,25 +304,6 @@ typedef struct CV_StringHashTableResult //////////////////////////////// //~ Task Contexts -typedef struct -{ - U64 cap; - union { - CV_SymbolNode ***buckets; - CV_SymbolNode **deref_buckets; - } u; - Rng1U64 *ranges; - CV_SymbolNode **symbols; -} CV_SymbolDeduperTask; - -typedef struct -{ - CV_SymbolList *list_arr; - Rng1U64 *list_range_arr; - U64 *symbol_base_arr; - CV_SymbolNode **symbol_arr; -} CV_SymbolListSyncer; - typedef struct { CV_DebugS *arr; @@ -355,96 +322,97 @@ typedef struct CV_StringBucket **buckets; } CV_PackStringHashTableTask; -typedef struct -{ - CV_DebugT debug_t; - Rng1U64 *ranges; - String8List *lists; - String8Node *nodes; -} CV_Str8ListFromDebugT; - //////////////////////////////// +//~ Leaf helpers + +internal U64 cv_size_from_leaf(String8 data, U64 align); +internal U64 cv_write_leaf(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_LeafKind kind, String8 data, U64 align); +internal String8 cv_make_leaf(Arena *arena, CV_LeafKind kind, String8 data, U64 align); +internal String8 cv_data_from_leaf(Arena *arena, CV_Leaf *leaf, U64 align); + +internal U64 cv_read_leaf(String8 raw_data, U64 off, U64 align, CV_Leaf *leaf_out); +internal CV_Leaf cv_leaf_from_string(String8 raw_data); +internal CV_Leaf cv_leaf_from_ptr(U8 *ptr); +internal U16 cv_leaf_size_from_ptr(U8 *ptr); +internal String8 cv_raw_leaf_from_ptr(U8 *ptr); -internal CV_ObjInfo cv_obj_info_from_symbol(CV_Symbol symbol); internal CV_TypeServerInfo cv_type_server_info_from_leaf(CV_Leaf leaf); internal CV_PrecompInfo cv_precomp_info_from_leaf(CV_Leaf leaf); //////////////////////////////// -//~ Leaf Helpers +//~ Symbol helpers -internal U64 cv_compute_leaf_record_size(String8 data, U64 align); -internal U64 cv_serialize_leaf_to_buffer(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_LeafKind kind, String8 data, U64 align); -internal String8 cv_serialize_raw_leaf(Arena *arena, CV_LeafKind kind, String8 data, U64 align); -internal String8 cv_serialize_leaf(Arena *arena, CV_Leaf *leaf, U64 align); -internal CV_Leaf cv_make_leaf(Arena *arena, CV_LeafKind kind, String8 data); -internal U64 cv_deserial_leaf(String8 raw_data, U64 off, U64 align, CV_Leaf *leaf_out); -internal CV_Leaf cv_leaf_from_string(String8 raw_data); +internal U64 cv_size_from_symbol(CV_Symbol *symbol, U64 align); +internal U64 cv_write_symbol(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_Symbol *symbol, U64 align); +internal String8 cv_data_from_symbol(Arena *arena, CV_Symbol *symbol, U64 align); + +internal U64 cv_read_symbol(String8 raw_data, U64 off, U64 align, CV_Symbol *symbol_out); +internal U8 * cv_ptr_from_symbol(CV_Symbol symbol); +internal CV_SymKind * cv_kind_ptr_from_symbol(CV_Symbol symbol); +internal CV_Symbol cv_symbol_from_ptr(U8 *ptr); +internal String8 cv_raw_from_symbol(void *ptr); +internal B32 cv_symbol_match(CV_Symbol a, CV_Symbol b); + +internal String8 cv_make_symbol(Arena *arena, CV_SymKind kind, String8 data); +internal String8 cv_make_obj_name(Arena *arena, String8 obj_path, U32 sig); +internal String8 cv_make_comp3(Arena *arena, CV_Compile3Flags flags, CV_Language lang, CV_Arch arch, U16 ver_fe_major, U16 ver_fe_minor, U16 ver_fe_build, U16 ver_feqfe, U16 ver_major, U16 ver_minor, U16 ver_build, U16 ver_qfe, String8 version_string); +internal String8 cv_make_envblock(Arena *arena, String8List string_list); +internal String8 cv_make_end(Arena *arena); +internal String8 cv_make_data32(Arena *arena, CV_SymData32 data, String8 name); +internal String8 cv_make_const(Arena *arena, CV_SymConstant v, U16 value, String8 name); +internal String8 cv_make_udt(Arena *arena, CV_SymUDT v, String8 name); +internal CV_Symbol cv_make_proc_ref(Arena *arena, CV_ModIndex imod, U32 stream_offset, String8 name, B32 is_local); +internal CV_Symbol cv_make_pub32(Arena *arena, CV_Pub32Flags flags, U32 off, U16 isect, String8 name); + +internal U64 cv_read_symbol(String8 raw_data, U64 off, U64 align, CV_Symbol *symbol_out); +internal CV_Symbol cv_symbol_from_string(String8 raw_data); + +internal B32 cv_is_gproc(CV_Symbol symbol); +internal B32 cv_is_lproc(CV_Symbol symbol); +internal B32 cv_is_obj_info(CV_Symbol symbol); +internal CV_ObjInfo cv_obj_info_from_symbol(CV_Symbol symbol); //////////////////////////////// -//~ Symbol Helpers +// .debug$S helpers -internal U64 cv_compute_symbol_record_size(CV_Symbol *symbol, U64 align); -internal U64 cv_serialize_symbol_to_buffer(U8 *buffer, U64 buffer_cursor, U64 buffer_size, CV_Symbol *symbol, U64 align); -internal String8 cv_serialize_symbol(Arena *arena, CV_Symbol *symbol, U64 align); - -internal String8 cv_make_symbol(Arena *arena, CV_SymKind kind, String8 data); -internal String8 cv_make_obj_name(Arena *arena, String8 obj_path, U32 sig); -internal String8 cv_make_comp3(Arena *arena, - CV_Compile3Flags flags, CV_Language lang, CV_Arch arch, - U16 ver_fe_major, U16 ver_fe_minor, U16 ver_fe_build, U16 ver_feqfe, - U16 ver_major, U16 ver_minor, U16 ver_build, U16 ver_qfe, - String8 version_string); -internal String8 cv_make_envblock(Arena *arena, String8List string_list); -internal CV_Symbol cv_make_proc_ref(Arena *arena, CV_ModIndex imod, U32 stream_offset, String8 name, B32 is_local); -internal CV_Symbol cv_make_pub32(Arena *arena, CV_Pub32Flags flags, U32 off, U16 isect, String8 name); -internal CV_SymbolList cv_make_proc_refs(Arena *arena, CV_ModIndex imod, CV_SymbolList symbol_list); - -//////////////////////////////// -// .debug$S Helpers - -internal CV_DebugS cv_parse_debug_s_c13(Arena *arena, String8 raw_debug_s); -internal CV_DebugS cv_parse_debug_s_c13_list(Arena *arena, String8List raw_debug_s); -internal CV_DebugS cv_parse_debug_s(Arena *arena, String8 raw_debug_s); +internal CV_Signature cv_signature_from_debug_s(String8 raw_debug_s); +internal CV_DebugS cv_debug_s_from_data_c13(Arena *arena, String8 raw_debug_s); +internal CV_DebugS cv_debug_s_from_data(Arena *arena, String8 raw_debug_s); internal void cv_debug_s_concat_in_place(CV_DebugS *dst, CV_DebugS *src); -internal String8List cv_data_c13_from_debug_s(Arena *arena, CV_DebugS *debug_s, B32 write_sig); +internal U64 cv_size_from_debug_s(CV_DebugS *debug_s, U64 align); +internal String8List cv_data_from_debug_s_c13(Arena *arena, CV_DebugS *debug_s, B32 write_sig); +internal CV_C13SubSectionKind cv_c13_sub_section_kind_from_idx(CV_C13SubSectionIdxKind idx); internal CV_C13SubSectionIdxKind cv_c13_sub_section_idx_from_kind(CV_C13SubSectionKind kind); -internal String8List * cv_sub_section_ptr_from_debug_s(CV_DebugS *debug_s, CV_C13SubSectionKind kind); -internal String8List cv_sub_section_from_debug_s(CV_DebugS debug_s, CV_C13SubSectionKind kind); -internal String8 cv_string_table_from_debug_s(CV_DebugS debug_s); -internal String8 cv_file_chksms_from_debug_s(CV_DebugS debug_s); + +internal String8List * cv_sub_section_ptr_from_debug_s(CV_DebugS *debug_s, CV_C13SubSectionKind kind); +internal String8List cv_sub_section_from_debug_s(CV_DebugS debug_s, CV_C13SubSectionKind kind); +internal String8 cv_string_table_from_debug_s(CV_DebugS debug_s); +internal String8 cv_file_chksms_from_debug_s(CV_DebugS debug_s); //////////////////////////////// //~ .debug$T helpers -internal CV_DebugT cv_debug_t_from_data_arr(Arena *arena, String8Array data_arr, U64 align); -internal CV_DebugT cv_debug_t_from_data(Arena *arena, String8 data, U64 align); -internal CV_Leaf cv_debug_t_get_leaf(CV_DebugT debug_t, U64 leaf_idx); -internal String8 cv_debug_t_get_raw_leaf(CV_DebugT debug_t, U64 leaf_idx); -internal CV_LeafHeader * cv_debug_t_get_leaf_header(CV_DebugT debug_t, U64 leaf_idx); -internal B32 cv_debug_t_is_pch(CV_DebugT debug_t); -internal B32 cv_debug_t_is_type_server(CV_DebugT debug_t); -internal U64 cv_debug_t_array_count_leaves(U64 count, CV_DebugT *arr); - -internal String8List cv_str8_list_from_debug_t_parallel(TP_Context *tp, Arena *arena, CV_DebugT types); +internal CV_DebugT cv_debug_t_from_data (Arena *arena, String8 data, U64 align); +internal U64 cv_leaf_idx_from_ti (CV_DebugT *debug_t, CV_TypeIndexSource source, CV_TypeIndex ti); +internal CV_TypeIndex cv_ti_from_leaf_idx (CV_DebugT *debug_t, CV_TypeIndexSource source, U64 leaf_idx); +internal CV_Leaf cv_debug_t_get_leaf (CV_DebugT *debug_t, U64 leaf_idx); +internal CV_Leaf cv_debug_t_get_leaf_from_ti (CV_DebugT *debug_t, CV_TypeIndexSource source, CV_TypeIndex ti); +internal String8 cv_debug_t_get_raw_leaf (CV_DebugT *debug_t, U64 leaf_idx); +internal CV_LeafHeader * cv_debug_t_get_leaf_header (CV_DebugT *debug_t, U64 leaf_idx); +internal CV_TypeIndex cv_debug_t_get_type_index (CV_DebugT *debug_t, CV_TypeIndexSource ti_source, U64 leaf_idx); +internal U64 cv_debug_t_get_leaf_index (CV_DebugT *debug_t, CV_TypeIndexSource ti_source, CV_TypeIndex ti); +internal B32 cv_debug_t_is_pch (CV_DebugT *debug_t); +internal B32 cv_debug_t_is_type_server_ref(CV_DebugT *debug_t); //////////////////////////////// //~ Sub Section helpers // $$Symbols -internal void cv_parse_symbol_sub_section_capped(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align, U64 cap); -internal void cv_parse_symbol_sub_section(Arena *arena, CV_SymbolList *list, U64 offset_base, String8 data, U64 align); -internal void cv_symbol_list_push_node(CV_SymbolList *list, CV_SymbolNode *node); -internal CV_SymbolNode * cv_symbol_list_push(Arena *arena, CV_SymbolList *list); -internal CV_SymbolNode * cv_symbol_list_push_data(Arena *arena, CV_SymbolList *list, CV_SymKind kind, String8 data); -internal CV_SymbolNode * cv_symbol_list_push_many(Arena *arena, CV_SymbolList *list, U64 count); -internal void cv_symbol_list_remove_node(CV_SymbolList *list, CV_SymbolNode *node); -internal void cv_symbol_list_concat_in_place(CV_SymbolList *list, CV_SymbolList *to_concat); -internal void cv_symbol_list_concat_in_place_arr(CV_SymbolList *list, U64 count, CV_SymbolList *to_concat); -internal U64 cv_symbol_list_arr_get_count(U64 count, CV_SymbolList *list_arr); -internal String8List cv_data_from_symbol_list(Arena *arena, CV_SymbolList symbol_list, U64 align); -internal CV_SymbolList cv_global_scope_symbols_from_list(Arena *arena, CV_SymbolList list); -internal CV_SymbolPtrArray cv_symbol_ptr_array_from_list(Arena *arena, TP_Context *tp, U64 count, CV_SymbolList *symbol_list_arr); +internal void cv_symbol_list_push_node(CV_SymbolList *list, CV_SymbolNode *node); +internal CV_SymbolNode * cv_symbol_list_push(Arena *arena, CV_SymbolList *list, CV_Symbol v); + +internal U64 cv_patch_symbol_tree_offsets(String8List raw_symbols, U64 base_offset, U64 align); // $$FileChksms #define CV_MAP_STRING_TO_OFFSET_FUNC(name) U64 name(void *ud, String8 string) diff --git a/src/linker/hash_table.c b/src/linker/hash_table.c index 22276591..45591cbb 100644 --- a/src/linker/hash_table.c +++ b/src/linker/hash_table.c @@ -64,8 +64,8 @@ hash_table_push(Arena *arena, HashTable *ht, U64 hash, KeyValuePair v) node->v = v; U64 ibucket = hash % ht->cap; - SLLQueuePush(ht->buckets[ibucket].first, ht->buckets[ibucket].last, node); - ++ht->count; + DLLPushBack(ht->buckets[ibucket].first, ht->buckets[ibucket].last, node); + ht->count += 1; return node; } @@ -162,69 +162,71 @@ hash_table_push_path_raw(Arena *arena, HashTable *ht, String8 path, void *value) //////////////////////////////// -internal KeyValuePair * +internal BucketNode * +hash_table_bucket_from_hash(HashTable *ht, U64 hash) +{ + BucketNode *bucket = 0; + if (ht->cap > 0) { + bucket = ht->buckets[hash % ht->cap].first; + } + return bucket; +} + +internal BucketNode * hash_table_search_string(HashTable *ht, String8 key_string) { - U64 hash = hash_table_hasher(key_string); - U64 ibucket = hash % ht->cap; - BucketList *bucket = ht->buckets + ibucket; - for (BucketNode *n = bucket->first; n != 0; n = n->next) { + BucketNode *bucket = hash_table_bucket_from_hash(ht, hash_table_hasher(key_string)); + for EachNode(n, BucketNode, bucket) { if (str8_match(n->v.key_string, key_string, 0)) { - return &n->v; + return n; } } return 0; } -internal KeyValuePair * +internal BucketNode * hash_table_search_u32(HashTable *ht, U32 key_u32) { - U64 hash = hash_table_hasher(str8_struct(&key_u32)); - U64 ibucket = hash % ht->cap; - BucketList *bucket = ht->buckets + ibucket; - for (BucketNode *n = bucket->first; n != 0; n = n->next) { + BucketNode *bucket = hash_table_bucket_from_hash(ht, hash_table_hasher(str8_struct(&key_u32))); + for EachNode(n, BucketNode, bucket) { if (n->v.key_u32 == key_u32) { - return &n->v; + return n; } } return 0; } -internal KeyValuePair * +internal BucketNode * hash_table_search_u64(HashTable *ht, U64 key_u64) { - U64 hash = hash_table_hasher(str8_struct(&key_u64)); - U64 ibucket = hash % ht->cap; - BucketList *bucket = ht->buckets + ibucket; - for (BucketNode *n = bucket->first; n != 0; n = n->next) { + BucketNode *bucket = hash_table_bucket_from_hash(ht, hash_table_hasher(str8_struct(&key_u64))); + for EachNode(n, BucketNode, bucket) { if (n->v.key_u64 == key_u64) { - return &n->v; + return n; } } return 0; } -internal KeyValuePair * +internal BucketNode * hash_table_search_path(HashTable *ht, String8 path) { Temp scratch = scratch_begin(0,0); String8 path_canon = path; path_canon = lower_from_str8(scratch.arena, path_canon); path_canon = path_convert_slashes(scratch.arena, path_canon, PathStyle_UnixAbsolute); - KeyValuePair *result = hash_table_search_string(ht, path_canon); + BucketNode *result = hash_table_search_string(ht, path_canon); scratch_end(scratch); return result; } -internal KeyValuePair * +internal BucketNode * hash_table_search_raw(HashTable *ht, void *key) { - U64 hash = hash_table_hasher(str8_struct(&key)); - U64 ibucket = hash % ht->cap; - BucketList *bucket = ht->buckets + ibucket; - for (BucketNode *n = bucket->first; n != 0; n = n->next) { + BucketNode *bucket = hash_table_bucket_from_hash(ht, hash_table_hasher(str8_struct(&key))); + for EachNode(n, BucketNode, bucket) { if (n->v.key_raw == key) { - return &n->v; + return n; } } return 0; @@ -233,10 +235,10 @@ hash_table_search_raw(HashTable *ht, void *key) internal B32 hash_table_search_path_u64(HashTable *ht, String8 key, U64 *value_out) { - KeyValuePair *result = hash_table_search_path(ht, key); + BucketNode *result = hash_table_search_path(ht, key); if (result != 0) { if (value_out != 0) { - *value_out = result->value_u64; + *value_out = result->v.value_u64; } return 1; } @@ -260,10 +262,10 @@ hash_table_push_raw_raw(Arena *arena, HashTable *ht, void *key, void *value) internal B32 hash_table_search_string_u64(HashTable *ht, String8 key, U64 *value_out) { - KeyValuePair *result = hash_table_search_string(ht, key); + BucketNode *result = hash_table_search_string(ht, key); if (result != 0) { if (value_out != 0) { - *value_out = result->value_u64; + *value_out = result->v.value_u64; } return 1; } @@ -273,10 +275,10 @@ hash_table_search_string_u64(HashTable *ht, String8 key, U64 *value_out) internal B32 hash_table_search_string_string(HashTable *ht, String8 key, String8 *value_out) { - KeyValuePair *result = hash_table_search_string(ht, key); + BucketNode *result = hash_table_search_string(ht, key); if (result) { if (value_out) { - *value_out = result->value_string; + *value_out = result->v.value_string; } return 1; } @@ -286,10 +288,10 @@ hash_table_search_string_string(HashTable *ht, String8 key, String8 *value_out) internal B32 hash_table_search_u32_u32(HashTable *ht, U32 key, U32 *value_out) { - KeyValuePair *result = hash_table_search_u32(ht, key); + BucketNode *result = hash_table_search_u32(ht, key); if (result) { if (value_out) { - *value_out = result->value_u32; + *value_out = result->v.value_u32; } return 1; } @@ -299,9 +301,9 @@ hash_table_search_u32_u32(HashTable *ht, U32 key, U32 *value_out) internal void * hash_table_search_string_raw(HashTable *ht, String8 key) { - KeyValuePair *result = hash_table_search_string(ht, key); + BucketNode *result = hash_table_search_string(ht, key); if (result) { - return result->value_raw; + return result->v.value_raw; } return 0; } @@ -309,22 +311,54 @@ hash_table_search_string_raw(HashTable *ht, String8 key) internal void * hash_table_search_u64_raw(HashTable *ht, U64 key_u64) { - KeyValuePair *kv = hash_table_search_u64(ht, key_u64); - return kv ? kv->value_raw : 0; + BucketNode *n = hash_table_search_u64(ht, key_u64); + return n ? n->v.value_raw : 0; } internal void * hash_table_search_path_raw(HashTable *ht, String8 path) { - KeyValuePair *kv = hash_table_search_path(ht, path); - return kv ? kv->value_raw : 0; + BucketNode *n = hash_table_search_path(ht, path); + return n ? n->v.value_raw : 0; } internal void * hash_table_search_raw_raw(HashTable *ht, void *key) { - KeyValuePair *kv = hash_table_search_raw(ht, key); - return kv ? kv->value_raw : 0; + BucketNode *n = hash_table_search_raw(ht, key); + return n ? n->v.value_raw : 0; +} + +internal void +hash_table_purge_item(HashTable *ht, U64 hash, BucketNode *node) +{ + U64 bucket_idx = hash % ht->cap; + DLLRemove(ht->buckets[bucket_idx].first, ht->buckets[bucket_idx].last, node); + ht->count -= 1; +} + +internal B32 +hash_table_purge_u64(HashTable *ht, U64 key) +{ + U64 hash = hash_table_hasher(str8_struct(&key)); + BucketNode *n = hash_table_search_u64(ht, key); + if (n) { + hash_table_purge_item(ht, hash, n); + return 1; + } + return 0; +} + +internal B32 +hash_table_purge_string(HashTable *ht, String8 key) +{ + U64 hash = hash_table_hasher(key); + BucketNode *n = hash_table_search_string(ht, key); + if (n) { + hash_table_purge_item(ht, hash, n); + return 1; + } + return 0; } internal int @@ -451,7 +485,7 @@ remove_duplicates_u64_array(Arena *arena, U64Array arr) HashTable *ht = hash_table_init(scratch.arena, ((U64)(F64)arr.count * 0.5)); for (U64 i = 0; i < arr.count; ++i) { - KeyValuePair *is_present = hash_table_search_u64(ht, arr.v[i]); + BucketNode *is_present = hash_table_search_u64(ht, arr.v[i]); if (!is_present) { hash_table_push_u64_raw(scratch.arena, ht, arr.v[i], 0); } @@ -474,7 +508,7 @@ remove_duplicates_str8_list(Arena *arena, String8List list) HashTable *ht = hash_table_init(scratch.arena, list.node_count); for (String8Node *node = list.first; node != 0; node = node->next) { - KeyValuePair *is_present = hash_table_search_string(ht, node->string); + BucketNode *is_present = hash_table_search_string(ht, node->string); if (!is_present) { hash_table_push_string_raw(scratch.arena, ht, node->string, 0); str8_list_push(arena, &result, node->string); @@ -485,3 +519,453 @@ remove_duplicates_str8_list(Arena *arena, String8List list) return result; } +internal String8 ** +str8_from_key_value_pairs(Arena *arena, KeyValuePair *v, U64 count) +{ + String8 **result = push_array(arena, String8 *, count); + for EachIndex(i, count) { + result[i] = &v[i].value_string; + } + return result; +} + +//////////////////////////////// + +internal U64 +hash_map_hasher(String8 string) +{ + return u64_hash_from_str8(string); +} + +internal HashMapNode ** +hash_map_search_(HashMap *hm, U64 hash, HashMapKey key, HashMapKeyMatchFunc *match_func, B32 *found_out) +{ + HashMapNode **n = &hm->root; + HashMapNode **last_tombstone = 0; + + *found_out = 0; + + for (U64 h = hash; *n != 0; h <<= 2) { + if ((*n)->is_live) { + if (match_func(&(*n)->v.key, &key)) { + *found_out = 1; + return n; + } + } else { + last_tombstone = n; + } + n = &(*n)->children[h >> 62]; + } + + if (last_tombstone != 0) { + hm->tombstone_count -= 1; + return last_tombstone; + } + + return n; +} + +internal HashMapNode * +hash_map_search(HashMap *hm, U64 hash, HashMapKey key, HashMapKeyMatchFunc *match_func) +{ + B32 found = 0; + HashMapNode **n = hash_map_search_(hm, hash, key, match_func, &found); + return found ? *n : 0; +} + +internal HashMapNode * +hash_map_push(Arena *arena, HashMap *hm, U64 hash, HashMapKeyValue key_value, HashMapKeyMatchFunc *match_func) +{ + B32 found = 0; + HashMapNode **n = hash_map_search_(hm, hash, key_value.key, match_func, &found); + if (found) { return *n; } + + if (*n == 0) { + *n = hm->free_list; + if (hm->free_list) { SLLStackPop(hm->free_list); } + else { *n = push_array(arena, HashMapNode, 1); } + } + + (*n)->v = key_value; + (*n)->is_live = 1; + + hm->count += 1; + return *n; +} + +internal B32 +hash_map_purge_item(HashMap *hm, U64 hash, HashMapKey key, HashMapKeyMatchFunc *match_func) +{ + B32 found = 0; + HashMapNode **n = hash_map_search_(hm, hash, key, match_func, &found); + if (found) { + (*n)->is_live = 0; + hm->count -= 1; + hm->tombstone_count += 1; + } + return found; +} + +internal void +hash_map_purge(HashMap *hm) +{ + Temp scratch = scratch_begin(0,0); + + typedef struct Stack { + struct Stack *next; + HashMapNode *node; + U32 next_child_idx; + } Stack; + + Stack *free_list = 0; + Stack *stack = 0; + + if (hm->count > 0) { + stack = push_array(scratch.arena, Stack, 1); + stack->node = hm->root; + } + + while (stack) { + // descend + while (stack->next_child_idx < ArrayCount(stack->node->children)) { + HashMapNode *child = stack->node->children[stack->next_child_idx]; + stack->next_child_idx += 1; + + if (child) { + Stack *f = free_list; + if (f) { SLLStackPop(free_list); } + else { f = push_array(scratch.arena, Stack, 1); } + + f->node = child; + SLLStackPush(stack, f); + break; + } + } + + // ascend + if (stack->next_child_idx >= ArrayCount(stack->node->children)) { + SLLStackPush(hm->free_list, stack->node); + SLLStackPop(stack); + } + } + + scratch_end(scratch); +} + +//////////////////////////////// + +force_inline HASH_MAP_KEY_MATCH(hash_map_match_u32) { return a->key_u32 == b->key_u32; } +force_inline HASH_MAP_KEY_MATCH(hash_map_match_u64) { return a->key_u64 == b->key_u64; } +force_inline HASH_MAP_KEY_MATCH(hash_map_match_raw) { return a->key_raw == b->key_raw; } +force_inline HASH_MAP_KEY_MATCH(hash_map_match_string) { return str8_match(a->key_string, b->key_string, 0); } +force_inline HASH_MAP_KEY_MATCH(hash_map_match_path) { return str8_match(a->key_string, b->key_string, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive); } + +internal U64 +hash_map_hash_from_path(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + + String8 path_canon = path; + path_canon = lower_from_str8(scratch.arena, path_canon); + path_canon = path_convert_slashes(scratch.arena, path_canon, PathStyle_UnixAbsolute); + + U64 hash = hash_map_hasher(path_canon); + + scratch_end(scratch); + return hash; +} + +//////////////////////////////// + +internal HashMapNode * +hash_map_push_string_string(Arena *arena, HashMap *hm, String8 key, String8 value) +{ + key = push_str8_copy(arena, key); + value = push_str8_copy(arena, value); + return hash_map_push(arena, hm, hash_map_hasher(key), (HashMapKeyValue){ .key = { .key_string = key }, .value = { .value_string = value } }, hash_map_match_string); +} + +internal HashMapNode * +hash_map_push_string_raw(Arena *arena, HashMap *hm, String8 key, void *value) +{ + key = push_str8_copy(arena, key); + return hash_map_push(arena, hm, hash_map_hasher(key), (HashMapKeyValue){ .key = { .key_string = key }, .value = { .value_raw = value } }, hash_map_match_string); +} + +internal HashMapNode * +hash_map_push_string_u64(Arena *arena, HashMap *hm, String8 key, U64 value) +{ + key = push_str8_copy(arena, key); + return hash_map_push(arena, hm, hash_map_hasher(key), (HashMapKeyValue){ .key = { .key_string = key }, .value = { .value_u64 = value } }, hash_map_match_string); +} + +internal HashMapNode * +hash_map_push_u32_raw(Arena *arena, HashMap *hm, U32 key, void *value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_u32 = key }, .value = { .value_raw = value } }, hash_map_match_u32); +} + +internal HashMapNode * +hash_map_push_u32_string(Arena *arena, HashMap *hm, U32 key, String8 value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_u32 = key }, .value = { .value_string = value } }, hash_map_match_u32); +} + +internal HashMapNode * +hash_map_push_u64_raw(Arena *arena, HashMap *hm, U64 key, void *value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_u64 = key }, .value = { .value_raw = value } }, hash_map_match_u64); +} + +internal HashMapNode * +hash_map_push_u64_string(Arena *arena, HashMap *hm, U64 key, String8 value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_u64 = key }, .value = { .value_string = value } }, hash_map_match_u64); +} + +internal HashMapNode * +hash_map_push_u64_u64(Arena *arena, HashMap *hm, U64 key, U64 value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_u64 = key }, .value = { .value_u64 = value } }, hash_map_match_u64); +} + +internal HashMapNode * +hash_map_push_raw_raw(Arena *arena, HashMap *hm, void *key, void *value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_raw = key }, .value = { .value_raw = value } }, hash_map_match_raw); +} + +internal HashMapNode * +hash_map_push_raw_u64(Arena *arena, HashMap *hm, void *key, U64 value) +{ + return hash_map_push(arena, hm, hash_map_hasher(str8_struct(&key)), (HashMapKeyValue){ .key = { .key_raw = key }, .value = { .value_u64 = value } }, hash_map_match_u64); +} + +internal HashMapNode * +hash_map_push_path_u64(Arena *arena, HashMap *hm, String8 path, U64 value) +{ + path = push_str8_copy(arena, path); + return hash_map_push(arena, hm, hash_map_hash_from_path(path), (HashMapKeyValue){ .key = { .key_string = path }, .value = { .value_u64 = value } }, hash_map_match_path); +} + +internal HashMapNode * +hash_map_push_path_string(Arena *arena, HashMap *hm, String8 path, String8 value) +{ + path = push_str8_copy(arena, path); + value = push_str8_copy(arena, value); + return hash_map_push(arena, hm, hash_map_hash_from_path(path), (HashMapKeyValue){ .key = { .key_string = path }, .value = { .value_string = value } }, hash_map_match_path); +} + +internal HashMapNode * +hash_map_push_path_raw(Arena *arena, HashMap *hm, String8 path, void *value) +{ + path = push_str8_copy(arena, path); + return hash_map_push(arena, hm, hash_map_hash_from_path(path), (HashMapKeyValue){ .key = { .key_string = path }, .value = { .value_raw = value } }, hash_map_match_path); +} + +//////////////////////////////// + +internal void * +hash_map_search_stringf_raw(HashMap *hm, char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(scratch.arena, fmt, args); + void *raw = hash_map_search_string_raw(hm, string); + va_end(args); + scratch_end(scratch); + return raw; +} + +internal void * +hash_map_search_string_raw(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(key), (HashMapKey){ .key_string = key }, hash_map_match_string); + return n ? n->v.value.value_raw : 0; +} + +internal String8 * +hash_map_search_string_string(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(key), (HashMapKey){ .key_string = key }, hash_map_match_string); + return n ? &n->v.value.value_string : 0; +} + +internal U32 * +hash_map_search_string_u32(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(key), (HashMapKey){ .key_string = key }, hash_map_match_string); + return n ? &n->v.value.value_u32 : 0; +} + +internal U64 * +hash_map_search_string_u64(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(key), (HashMapKey){ .key_string = key }, hash_map_match_string); + return n ? &n->v.value.value_u64 : 0; +} + +internal U64 * +hash_map_search_path_u64(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hash_from_path(key), (HashMapKey){ .key_string = key }, hash_map_match_path); + return n ? &n->v.value.value_u64 : 0; +} + +internal String8 * +hash_map_search_path_string(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hash_from_path(key), (HashMapKey){ .key_string = key }, hash_map_match_path); + return n ? &n->v.value.value_string : 0; +} + +internal void * +hash_map_search_path_raw(HashMap *hm, String8 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hash_from_path(key), (HashMapKey){ .key_string = key }, hash_map_match_path); + return n ? n->v.value.value_raw : 0; +} + +internal void * +hash_map_search_u64_raw(HashMap *hm, U64 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_u64 = key }, hash_map_match_u64); + return n ? n->v.value.value_raw : 0; +} + +internal U64 * +hash_map_search_u64_u64(HashMap *hm, U64 key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_u64 = key }, hash_map_match_u64); + return n ? &n->v.value.value_u64 : 0; +} + +internal void * +hash_map_search_raw_raw(HashMap *hm, void *key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_raw = key }, hash_map_match_raw); + return n ? n->v.value.value_raw : 0; +} + +internal U64 * +hash_map_search_raw_u64(HashMap *hm, void *key) +{ + HashMapNode *n = hash_map_search(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_raw = key }, hash_map_match_raw); + return n ? &n->v.value.value_u64 : 0; +} + +//////////////////////////////// + +internal B32 hash_map_purge_u32(HashMap *hm, U32 key) { return hash_map_purge_item(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_u32 = key }, hash_map_match_u32); } +internal B32 hash_map_purge_u64(HashMap *hm, U64 key) { return hash_map_purge_item(hm, hash_map_hasher(str8_struct(&key)), (HashMapKey){ .key_u64 = key }, hash_map_match_u64); } +internal B32 hash_map_purge_string(HashMap *hm, String8 key) { return hash_map_purge_item(hm, hash_map_hasher(key), (HashMapKey){ .key_string = key }, hash_map_match_string); } + +//////////////////////////////// + +#define HASH_MAP_EXTRACT_FUNC(name) void name(HashMapKeyValue *kv, void *buffer) +typedef HASH_MAP_EXTRACT_FUNC(HashMapExtractFunc); + +typedef struct +{ + void *keys; + void *values; +} HashMapExtract; + +internal HashMapExtract +hash_map_extract(Arena *arena, + HashMap *hm, + HashMapExtractFunc *key_func, U64 key_size, + HashMapExtractFunc *value_func, U64 value_size) +{ + Temp scratch = scratch_begin(&arena, 1); + + U64 key_offset = 0; + U64 value_offset = 0; + U8 *key_buffer = 0; + U8 *value_buffer = 0; + if (key_func && key_size) { key_buffer = push_array_no_zero(arena, U8, key_size * hm->count); } + if (value_func && value_size) { value_buffer = push_array_no_zero(arena, U8, value_size * hm->count); } + + typedef struct Stack { + struct Stack *next; + HashMapNode *node; + U32 next_child_idx; + } Stack; + + Stack *free_list = 0; + Stack *stack = 0; + + if (hm->count > 0) { + stack = push_array(scratch.arena, Stack, 1); + stack->node = hm->root; + } + + while (stack) { + // descend + while (stack->next_child_idx < ArrayCount(stack->node->children)) { + HashMapNode *child = stack->node->children[stack->next_child_idx]; + stack->next_child_idx += 1; + + if (child) { + Stack *f = free_list; + if (f) { SLLStackPop(free_list); } + else { f = push_array(scratch.arena, Stack, 1); } + + f->node = child; + SLLStackPush(stack, f); + break; + } + } + + // ascend + if (stack->next_child_idx >= ArrayCount(stack->node->children)) { + + if (stack->node->is_live) { + if (key_func) { + key_func(&stack->node->v, key_buffer + key_offset); + key_offset += key_size; + } + if (value_func) { + value_func(&stack->node->v, value_buffer + value_offset); + value_offset += value_size; + } + } + + SLLStackPop(stack); + } + } + + scratch_end(scratch); + return (HashMapExtract){ .keys = key_buffer, .values = value_buffer }; +} + +// { keys, value } +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_key_value) { MemoryCopy(buffer, kv, sizeof(*kv)); } +internal HashMapKeyValue * key_value_from_hash_map ( Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, hash_map_extract_key_value, sizeof(HashMapKeyValue), 0, 0).keys; } + +// keys +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_key_u32) { MemoryCopy(buffer, &kv->key.key_u32, sizeof(kv->key.key_u32)); } +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_key_u64) { MemoryCopy(buffer, &kv->key.key_u64, sizeof(kv->key.key_u64)); } +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_key_string) { MemoryCopy(buffer, &kv->key.key_string, sizeof(kv->key.key_string)); } +internal U32 * keys_from_hash_map_u32 ( Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, hash_map_extract_key_u32, sizeof(U32), 0, 0).keys; } +internal U64 * keys_from_hash_map_u64 ( Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, hash_map_extract_key_u64, sizeof(U64), 0, 0).keys; } +internal String8 * keys_from_hash_map_string( Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, hash_map_extract_key_string, sizeof(String8), 0, 0).keys; } +internal void * keys_from_hash_map_raw ( Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, hash_map_extract_key_string, sizeof(void *), 0, 0).keys; } + +// values +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_value_u64) { MemoryCopy(buffer, &kv->value.value_u64, sizeof(kv->value.value_u64)); } +force_inline HASH_MAP_EXTRACT_FUNC(hash_map_extract_value_raw) { MemoryCopy(buffer, &kv->value.value_raw, sizeof(kv->value.value_raw)); } +internal U64 * values_from_hash_map_u64(Arena *arena, HashMap *hm) { return hash_map_extract(arena, hm, 0, 0, hash_map_extract_value_u64, sizeof(U64)).values; } +internal void * values_from_hash_map_raw(Arena *arena, HashMap *hm) {return hash_map_extract(arena, hm, 0, 0, hash_map_extract_value_raw, sizeof(void *)).values; } + +//////////////////////////////// + +force_inline int hash_map_key_is_before_u32(void *a, void *b) { return ((HashMapKeyValue*)a)->key.key_u32 < ((HashMapKeyValue*)b)->key.key_u32; } +force_inline int hash_map_key_is_before_u64(void *a, void *b) { return ((HashMapKeyValue*)a)->key.key_u64 < ((HashMapKeyValue*)b)->key.key_u64; } +force_inline int hash_map_key_is_before_string(void *a, void *b) { return str8_is_before_case_sensitive(a, b); } + +internal void sort_hash_map_key_value_u32(HashMapKeyValue *pairs, U64 count) { radsort(pairs, count, hash_map_key_is_before_u32); } +internal void sort_hash_map_key_value_u64(HashMapKeyValue *pairs, U64 count) { radsort(pairs, count, hash_map_key_is_before_u64); } +internal void sort_hash_map_key_value_string(HashMapKeyValue *pairs, U64 count) { radsort(pairs, count, hash_map_key_is_before_string); } + diff --git a/src/linker/hash_table.h b/src/linker/hash_table.h index 67e9e3dd..f9e89d67 100644 --- a/src/linker/hash_table.h +++ b/src/linker/hash_table.h @@ -21,8 +21,9 @@ typedef struct KeyValuePair typedef struct BucketNode { - struct BucketNode *next; KeyValuePair v; + struct BucketNode *next; + struct BucketNode *prev; } BucketNode; typedef struct BucketList @@ -56,6 +57,8 @@ internal BucketNode * hash_table_push(Arena *arena, HashTable *ht, U64 hash, internal BucketNode * hash_table_push_u32_string (Arena *arena, HashTable *ht, U32 key, String8 value); internal BucketNode * hash_table_push_u64_string (Arena *arena, HashTable *ht, U64 key, String8 value); internal BucketNode * hash_table_push_string_string(Arena *arena, HashTable *ht, String8 key, String8 value); +internal BucketNode * hash_table_push_string_raw (Arena *arena, HashTable *ht, String8 key, void *value); +internal BucketNode * hash_table_push_string_u64 (Arena *arena, HashTable *ht, String8 key, U64 value); internal BucketNode * hash_table_push_path_string (Arena *arena, HashTable *ht, String8 key, String8 value); internal BucketNode * hash_table_push_u32_raw (Arena *arena, HashTable *ht, U32 key, void *value); internal BucketNode * hash_table_push_u64_raw (Arena *arena, HashTable *ht, U64 key, void *value); @@ -63,12 +66,13 @@ internal BucketNode * hash_table_push_path_raw (Arena *arena, HashTable *ht, internal BucketNode * hash_table_push_path_u64 (Arena *arena, HashTable *ht, String8 path, U64 value); internal BucketNode * hash_table_push_u64_u64 (Arena *arena, HashTable *ht, U64 key, U64 value); internal BucketNode * hash_table_push_u32_u32 (Arena *arena, HashTable *ht, U32 key, U32 value); +internal BucketNode * hash_table_push_raw_raw (Arena *arena, HashTable *ht, void *key, void *value); -internal KeyValuePair * hash_table_search_string (HashTable *ht, String8 key); -internal KeyValuePair * hash_table_search_u32 (HashTable *ht, U32 key); -internal KeyValuePair * hash_table_search_u64 (HashTable *ht, U64 key); -internal KeyValuePair * hash_table_search_path (HashTable *ht, String8 key); -internal KeyValuePair * hash_table_search_raw (HashTable *ht, void *key); +internal BucketNode * hash_table_search_string (HashTable *ht, String8 key); +internal BucketNode * hash_table_search_u32 (HashTable *ht, U32 key); +internal BucketNode * hash_table_search_u64 (HashTable *ht, U64 key); +internal BucketNode * hash_table_search_path (HashTable *ht, String8 key); +internal BucketNode * hash_table_search_raw (HashTable *ht, void *key); internal B32 hash_table_search_path_u64 (HashTable *ht, String8 key, U64 *value_out); internal B32 hash_table_search_string_u64 (HashTable *ht, String8 key, U64 *value_out); @@ -80,22 +84,118 @@ internal void * hash_table_search_u64_raw (HashTable *ht, U64 key); internal void * hash_table_search_path_raw (HashTable *ht, String8 key); internal void * hash_table_search_raw_raw (HashTable *ht, void *key); +internal void hash_table_purge_item (HashTable *ht, U64 hash, BucketNode *node); +internal B32 hash_table_purge_u64 (HashTable *ht, U64 key); +internal B32 hash_table_purge_string(HashTable *ht, String8 key); + // --- Key Value Helpers ------------------------------------------------------- internal U32 * keys_from_hash_table_u32 (Arena *arena, HashTable *ht); internal U64 * keys_from_hash_table_u64 (Arena *arena, HashTable *ht); +internal void * keys_from_hash_table_raw (Arena *arena, HashTable *ht); + internal String8 keys_from_hash_table_str8 (Arena *arena, HashTable *ht); internal KeyValuePair * key_value_pairs_from_hash_table(Arena *arena, HashTable *ht); -internal void * keys_from_hash_table_raw (Arena *arena, HashTable *ht); -internal void * values_from_hash_table_raw(Arena *arena, HashTable *ht); - internal void sort_key_value_pairs_as_u32 (KeyValuePair *pairs, U64 count); internal void sort_key_value_pairs_as_u64 (KeyValuePair *pairs, U64 count); internal void sort_key_value_pairs_as_string_sensitive(KeyValuePair *pairs, U64 count); +internal String8 ** str8_from_key_value_pairs(Arena *arena, KeyValuePair *v, U64 count); + // --- Misc -------------------------------------------------------------------- internal U64Array remove_duplicates_u64_array(Arena *arena, U64Array arr); internal String8List remove_duplicates_str8_list(Arena *arena, String8List list); +/////////////////////////////////////////////////////////////////////////////////////////// + +typedef union +{ + String8 key_string; + void *key_raw; + U32 key_u32; + U64 key_u64; +} HashMapKey; + +typedef union +{ + String8 value_string; + void *value_raw; + U32 value_u32; + U64 value_u64; +} HashMapValue; + +typedef struct +{ + HashMapKey key; + HashMapValue value; +} HashMapKeyValue; + +typedef union HashMapNode HashMapNode; +union HashMapNode +{ + struct { + HashMapNode *children[4]; + HashMapKeyValue v; + B32 is_live; + }; + HashMapNode *next; +}; + +typedef struct HashMap +{ + HashMapNode *root; + U64 count; + U64 tombstone_count; + HashMapNode *free_list; +} HashMap; + +#define HASH_MAP_KEY_MATCH(name) B32 name(HashMapKey *a, HashMapKey *b) +typedef HASH_MAP_KEY_MATCH(HashMapKeyMatchFunc); + +internal U64 hash_map_hasher(String8 string); + +internal HashMapNode * hash_map_search(HashMap *hm, U64 hash, HashMapKey key, HashMapKeyMatchFunc *match_func); +internal HashMapNode * hash_map_push(Arena *arena, HashMap *hm, U64 hash, HashMapKeyValue key_value, HashMapKeyMatchFunc *match_func); +internal B32 hash_map_purge_item(HashMap *hm, U64 hash, HashMapKey key, HashMapKeyMatchFunc *match_func); +internal void hash_map_purge(HashMap *hm); + +internal HashMapNode * hash_map_push_string_string(Arena *arena, HashMap *hm, String8 key, String8 value); +internal HashMapNode * hash_map_push_string_raw (Arena *arena, HashMap *hm, String8 key, void *value); +internal HashMapNode * hash_map_push_string_u64 (Arena *arena, HashMap *hm, String8 key, U64 value); +internal HashMapNode * hash_map_push_u32_raw (Arena *arena, HashMap *hm, U32 key, void *value); +internal HashMapNode * hash_map_push_u32_string (Arena *arena, HashMap *hm, U32 key, String8 value); +internal HashMapNode * hash_map_push_u64_raw (Arena *arena, HashMap *hm, U64 key, void *value); +internal HashMapNode * hash_map_push_u64_string (Arena *arena, HashMap *hm, U64 key, String8 value); +internal HashMapNode * hash_map_push_u64_u64 (Arena *arena, HashMap *hm, U64 key, U64 value); +internal HashMapNode * hash_map_push_raw_raw (Arena *arena, HashMap *hm, void *key, void *value); +internal HashMapNode * hash_map_push_raw_u64 (Arena *arena, HashMap *hm, void *key, U64 value); +internal HashMapNode * hash_map_push_path_u64 (Arena *arena, HashMap *hm, String8 path, U64 value); +internal HashMapNode * hash_map_push_path_string (Arena *arena, HashMap *hm, String8 path, String8 value); +internal HashMapNode * hash_map_push_path_raw (Arena *arena, HashMap *hm, String8 path, void *value); + +internal void * hash_map_search_stringf_raw (HashMap *hm, char *fmt, ...); +internal void * hash_map_search_string_raw (HashMap *hm, String8 key); +internal String8 * hash_map_search_string_string(HashMap *hm, String8 key); +internal U32 * hash_map_search_string_u32 (HashMap *hm, String8 key); +internal U64 * hash_map_search_string_u64 (HashMap *hm, String8 key); +internal U64 * hash_map_search_path_u64 (HashMap *hm, String8 key); +internal String8 * hash_map_search_path_string (HashMap *hm, String8 key); +internal void * hash_map_search_path_raw (HashMap *hm, String8 key); +internal void * hash_map_search_u64_raw (HashMap *hm, U64 key); +internal U64 * hash_map_search_u64_u64 (HashMap *hm, U64 key); +internal void * hash_map_search_raw_raw (HashMap *hm, void *key); +internal U64 * hash_map_search_raw_u64 (HashMap *hm, void *key); + +internal HashMapKeyValue * key_value_from_hash_map (Arena *arena, HashMap *hm); +internal U32 * keys_from_hash_map_u32 (Arena *arena, HashMap *hm); +internal U64 * keys_from_hash_map_u64 (Arena *arena, HashMap *hm); +internal String8 * keys_from_hash_map_string(Arena *arena, HashMap *hm); +internal void * keys_from_hash_map_raw (Arena *arena, HashMap *hm); +internal U64 * values_from_hash_map_u64 (Arena *arena, HashMap *hm); + +internal void sort_hash_map_key_value_u32 (HashMapKeyValue *pairs, U64 count); +internal void sort_hash_map_key_value_u64 (HashMapKeyValue *pairs, U64 count); +internal void sort_hash_map_key_value_string(HashMapKeyValue *pairs, U64 count); + diff --git a/src/linker/lf_hash_table.c b/src/linker/lf_hash_table.c new file mode 100644 index 00000000..6a2f86a7 --- /dev/null +++ b/src/linker/lf_hash_table.c @@ -0,0 +1,89 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal B32 +lfht_insert(Arena *arena, + LFHT_NodeChunkList *node_chunks, + LFHT_Node **root_ptr, + U64 hash, + void *data, + LFHT_IsKeyEqualFunc *is_key_equal, + void *is_key_equal_ud) +{ + B32 was_inserted = 0; + LFHT_Node **curr_ptr = root_ptr; + for (U64 h = hash; ; h <<= 2) { + LFHT_Node *curr = ins_atomic_ptr_eval(curr_ptr); + + if (curr == 0) { + if (node_chunks->last == 0 || node_chunks->last->count >= node_chunks->last->max) { + LFHT_NodeChunk *c = push_array(arena, LFHT_NodeChunk, 1); + c->max = 1024; + c->count = 0; + c->v = push_array_no_zero(arena, LFHT_Node, 1024); + + SLLQueuePush(node_chunks->first, node_chunks->last, c); + node_chunks->chunk_count += 1; + } + + LFHT_Node *n = &node_chunks->last->v[node_chunks->last->count]; + MemoryZeroStruct(n); + n->data = data; + + LFHT_Node *cmp = ins_atomic_ptr_eval_cond_assign(curr_ptr, n, curr); + if (cmp == curr) { + node_chunks->last->count += 1; + node_chunks->total_count += 1; + was_inserted = 1; + break; + } + } + + // was the key already inserted? + if (is_key_equal(is_key_equal_ud, curr->data, data)) { break; } + + // descend + curr_ptr = &curr->children[h >> 62]; + } + return was_inserted; +} + +internal void * +lfht_search(LFHT_Node *root, U64 hash, void *data, LFHT_IsKeyEqualFunc *is_key_equal, void *is_key_equal_ud) +{ + LFHT_Node *curr = root; + for (U64 h = hash; ; h <<= 2) { + if (curr == 0) { break; } + if (is_key_equal(is_key_equal_ud, curr->data, data)) { break; } + curr = curr->children[h >> 62]; + } + return curr ? curr->data : 0; +} + +internal U64 +lfht_total_count_from_node_chunk_lists(U64 list_count, LFHT_NodeChunkList *lists) +{ + U64 total_count = 0; + for EachIndex(i, list_count) { total_count += lists[i].total_count; } + return total_count; +} + +internal void ** +lfht_data_from_node_chunk_lists(Arena *arena, U64 total_count, U64 list_count, LFHT_NodeChunkList *lists) +{ + U64 result_count = 0; + void **result = push_array(arena, void *, total_count); + for EachIndex(list_idx, list_count) { + LFHT_NodeChunkList l = lists[list_idx]; + for EachNode(c, LFHT_NodeChunk, l.first) { + Assert(result_count + c->count <= total_count); + for EachIndex(item_idx, c->count) { + result[result_count++] = c->v[item_idx].data; + } + } + } + + return result; +} + + diff --git a/src/linker/lf_hash_table.h b/src/linker/lf_hash_table.h new file mode 100644 index 00000000..08ea041d --- /dev/null +++ b/src/linker/lf_hash_table.h @@ -0,0 +1,36 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef LF_HASH_TABLE_H +#define LF_HASH_TABLE_H + +typedef struct LFHT_Node +{ + void *data; + struct LFHT_Node *children[4]; +} LFHT_Node; + +typedef struct LFHT_NodeChunk +{ + struct LFHT_NodeChunk *next; + U64 max; + U64 count; + LFHT_Node *v; +} LFHT_NodeChunk; + +typedef struct LFHT_NodeChunkList +{ + U64 chunk_count; + U64 total_count; + LFHT_NodeChunk *first; + LFHT_NodeChunk *last; +} LFHT_NodeChunkList; + +#define LFHT_IS_KEY_EQUAL_FUNC(name) B32 name(void *ud, void *a, void *b) +typedef LFHT_IS_KEY_EQUAL_FUNC(LFHT_IsKeyEqualFunc); + +internal B32 lfht_insert(Arena *arena, LFHT_NodeChunkList *node_chunks, LFHT_Node **root_ptr, U64 hash, void *data, LFHT_IsKeyEqualFunc *is_key_equal, void *is_key_equal_ud); + +internal void ** lfht_data_from_node_chunk_lists(Arena *arena, U64 total_count, U64 list_count, LFHT_NodeChunkList *lists); + +#endif // LF_HASH_TABLE_H diff --git a/src/linker/linker.natvis b/src/linker/linker.natvis index 64de6bfb..84296c9c 100644 --- a/src/linker/linker.natvis +++ b/src/linker/linker.natvis @@ -102,6 +102,27 @@ + + + v + + + + + + name + + + + + + node + node = node->next + + + + + count diff --git a/src/linker/lnk.c b/src/linker/lnk.c index 1a1c9b19..2850b08b 100644 --- a/src/linker/lnk.c +++ b/src/linker/lnk.c @@ -6,25 +6,13 @@ #define BUILD_CONSOLE_INTERFACE 1 #define BUILD_TITLE "Epic Games Tools (R) RAD PE/COFF Linker" -// --- Arena ------------------------------------------------------------------- - #define ARENA_FREE_LIST 1 - -// --- Third Party ------------------------------------------------------------- - -#include "base_ext/base_blake3.h" -#include "base_ext/base_blake3.c" -#define XXH_INLINE_ALL -#define XXH_IMPLEMENTATION -#define XXH_STATIC_LINKING_ONLY -#include "third_party/xxHash/xxhash.c" -#include "third_party/xxHash/xxhash.h" -#include "third_party/radsort/radsort.h" +#define NO_ASYNC 1 // --- Code Base --------------------------------------------------------------- #include "base/base_inc.h" -#include "os/os_inc.h" +#include "x64/x64.h" #include "hash_table.h" #include "coff/coff.h" #include "coff/coff_parse.h" @@ -41,9 +29,12 @@ #include "msf/msf_parse.h" #include "pdb/pdb.h" #include "msvc_crt/msvc_crt.h" +#include "llvm/llvm.h" +#include "dwarf/dwarf.h" +#include "dwarf/x64/dwarf_x64.h" #include "base/base_inc.c" -#include "os/os_inc.c" +#include "x64/x64.c" #include "hash_table.c" #include "coff/coff.c" #include "coff/coff_parse.c" @@ -59,11 +50,13 @@ #include "msf/msf_parse.c" #include "pdb/pdb.c" #include "msvc_crt/msvc_crt.c" +#include "llvm/llvm.c" +#include "dwarf/x64/dwarf_x64.c" -// --- RDI --------------------------------------------------------------------- +// --- Third Party ------------------------------------------------------------- -#include "rdi/rdi_local.h" -#include "rdi/rdi_local.c" +#include "base_ext/base_blake3.h" +#include "base_ext/base_blake3.c" // --- Code Base Extensions ---------------------------------------------------- @@ -71,31 +64,42 @@ #include "thread_pool/thread_pool.h" #include "codeview_ext/codeview.h" #include "pdb_ext/msf_builder.h" -#include "pdb_ext/pdb.h" -#include "pdb_ext/pdb_helpers.h" -#include "pdb_ext/pdb_builder.h" #include "base_ext/base_inc.c" #include "thread_pool/thread_pool.c" #include "codeview_ext/codeview.c" + +// --- PDB Extensions- --------------------------------------------------------- + +#include "pdb_ext/pdb.h" +#include "pdb_ext/pdb_helpers.h" +#include "pdb_ext/pdb_builder.h" + #include "pdb_ext/msf_builder.c" #include "pdb_ext/pdb.c" #include "pdb_ext/pdb_helpers.c" #include "pdb_ext/pdb_builder.c" -// --- RDI Builder ------------------------------------------------------------- +// --- RDI --------------------------------------------------------------------- -#include "rdi/rdi_builder.h" -#include "rdi/rdi_coff.h" -#include "rdi/rdi_cv.h" +#include "pdb/pdb_parse.h" +#include "rdi/rdi_local.h" +#include "rdi_make/rdi_make_local.h" +#include "rdi_from_coff/rdi_from_coff.h" +#include "rdi_from_codeview/rdi_from_codeview.h" +#include "rdi_from_pdb/rdi_from_pdb.h" +#include "arch/arch_inc.h" -#include "rdi/rdi_builder.c" -#include "rdi/rdi_coff.c" -#include "rdi/rdi_cv.c" +#include "pdb/pdb_parse.c" +#include "rdi/rdi_local.c" +#include "rdi_make/rdi_make_local.c" +#include "rdi_from_coff/rdi_from_coff.c" +#include "rdi_from_codeview/rdi_from_codeview.c" +#include "rdi_from_pdb/rdi_from_pdb.c" +#include "arch/arch_inc.c" // --- Linker ------------------------------------------------------------------ -#include "lnk_error.h" #include "lnk_log.h" #include "lnk_timer.h" #include "lnk_io.h" @@ -109,7 +113,6 @@ #include "lnk_debug_info.h" #include "lnk.h" -#include "lnk_error.c" #include "lnk_log.c" #include "lnk_timer.c" #include "lnk_io.c" @@ -124,115 +127,151 @@ // ----------------------------------------------------------------------------- -internal LNK_Config * -lnk_config_from_argcv(Arena *arena, int argc, char **argv) +internal LNK_CmdLine +lnk_make_default_cmd_line(Arena *arena, LNK_CmdLine user_cmd_line) { Temp scratch = scratch_begin(&arena, 1); + LNK_CmdLine cmd_line = {0}; - String8List raw_cmd_line = {0}; - for EachIndex(i, argc) { - str8_list_push(arena, &raw_cmd_line, str8_cstring(argv[i])); + char *default_opts[] = { + "/ALIGN:4096", + "/DEBUG:none", + "/FILEALIGN:512", + "/HIGHENTROPYVA", + "/MANIFESTUAC:\"level='asInvoker' uiAccess='false'\"", + "/NXCOMPAT", + "/LARGEADDRESSAWARE", + "/PDBALTPATH:%_RAD_PDB_PATH%", + "/PDBPAGESIZE:4096", + (char*)str8f(scratch.arena, "/HEAP:%llu,%llu", MB(1), KB(4)).str, + (char*)str8f(scratch.arena, "/STACK:%llu,%llu", MB(1), KB(4)).str, + + "/RAD_BOOT_MODE:LINKER", + //"/RAD_BUILD_EXP", + "/RAD_BUILD_IMPLIB", + "/RAD_TPYE_HASH_ALG:BLAKE3", + "/RAD_AGE:1", + "/RAD_CHECK_UNUSED_DELAY_LOAD_DLL", + "/RAD_DO_MERGE", + "/RAD_ENV_LIB", + "/RAD_EXE", + "/RAD_GUID:imageblake3", + "/RAD_LARGE_PAGES:no", + "/RAD_LINK_VER:14.0", + "/RAD_OS_VER:6.0", + "/RAD_PAGE_SIZE:4096", + "/RAD_PATH_STYLE:system", + "/RAD_PDB_HASH_TYPE_NAMES:NONE", + "/RAD_PDB_HASH_TYPE_NAME_LENGTH:8", + "/RAD_DEBUGALTPATH:%_RAD_RDI_PATH%", + "/RAD_MEMORY_MAP_FILES", + "/RAD_MAP_LINES_FOR_UNRESOLVED_SYMBOLS", + "/RAD_UNRESOLVED_SYMBOL_LIMIT:1000", + "/RAD_UNRESOLVED_SYMBOL_REF_LIMIT:10", + "/RAD_SORT_IMPORTS", + (char*)str8f(scratch.arena, "/RAD_MT_PATH:%s", LNK_MANIFEST_MERGE_TOOL_NAME).str, + (char*)str8f(scratch.arena, "/RAD_DATA_DIR_COUNT:%u", PE_DataDirectoryIndex_COUNT).str, + }; + + char *push_opts[] = { + "/MERGE:.xdata=.rdata", + "/MERGE:.00cfg=.rdata", + // TODO: .tls must be always first contribution in .data section because compiler generates TLS relative movs + //"/MERGE:.tls=.data", + "/MERGE:.idata=.data", + "/MERGE:.didat=.data", + "/MERGE:.edata=.rdata", + "/MERGE:.RAD_LINK_PE_DEBUG_DIR=.rdata", + "/MERGE:.RAD_LINK_PE_DEBUG_DATA=.rdata", + + "/RAD_REMOVE_SECTION:.debug", + "/RAD_REMOVE_SECTION:.gehcont", + "/RAD_REMOVE_SECTION:.gfids", + "/RAD_REMOVE_SECTION:.gxfg", + + (char*)str8f(scratch.arena, "/RAD_WORKERS:%u", get_system_info()->logical_processor_count).str, + + // errors that are too verbose in release build + (char*)str8f(scratch.arena, "/RAD_IGNORE:%d", LNK_Warning_UnknownSwitch * (BUILD_DEBUG ? -1 : 1)).str, + (char*)str8f(scratch.arena, "/RAD_IGNORE:%d", LNK_Warning_UnknownDirective * (BUILD_DEBUG ? -1 : 1)).str, + (char*)str8f(scratch.arena, "/RAD_IGNORE:%d", LNK_Error_InvalidTypeIndex * (BUILD_DEBUG ? -1 : 1)).str, + + #if BUILD_DEBUG + "/RAD_LOG:debug", + "/RAD_LOG:io_write", + #else + (char*)str8f(scratch.arena, "/RAD_IGNORE:%u", LNK_Error_InvalidTypeIndex).str, + #endif + }; + +#define DefaultOpt(...) do { \ + LNK_CmdLine parsed_cmd_line = lnk_cmd_line_from_stringf_windows_rules(arena, __VA_ARGS__); \ + for EachNode(cmd, LNK_CmdOption, parsed_cmd_line.first_option) { \ + if (!lnk_cmd_line_has_switch(user_cmd_line, lnk_cmd_switch_type_from_string(cmd->string))) { \ + String8List value_strings = str8_list_copy(arena, &cmd->value_strings); \ + lnk_cmd_line_push_option_list(arena, &cmd_line, cmd->string, value_strings); \ + } \ + } \ +} while (0) + +#define PushOpt(...) do { \ + LNK_CmdLine parsed_cmd_line = lnk_cmd_line_from_stringf_windows_rules(arena, __VA_ARGS__); \ + lnk_cmd_line_concat_in_place(&cmd_line, &parsed_cmd_line); \ +} while (0) + + if (lnk_cmd_line_has_switch(user_cmd_line, LNK_CmdSwitch_Dll)) { + DefaultOpt("/SUBSYSTEM:%S", pe_string_from_subsystem(PE_WindowsSubsystem_WINDOWS_GUI)); + } + if (!lnk_cmd_line_has_switch(user_cmd_line, LNK_CmdSwitch_Brepro)) { + DefaultOpt("/RAD_TIME_STAMP:%u", get_process_start_time_unix()); + } + for EachIndex(i, ArrayCount(default_opts)) { + DefaultOpt("%s", default_opts[i]); } - // remove exe name first argument - str8_list_pop_front(&raw_cmd_line); - - // parse command line - String8List unwrapped_cmd_line = lnk_unwrap_rsp(scratch.arena, raw_cmd_line); - LNK_CmdLine cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, unwrapped_cmd_line); - - // setup default flags - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Align, "%u", KB(4)); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Debug, "none"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_FileAlign, "%u", 512); - if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Dll)) { - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_SubSystem, "%S", pe_string_from_subsystem(PE_WindowsSubsystem_WINDOWS_GUI)); - } - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_HighEntropyVa, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_ManifestUac, "\"level='asInvoker' uiAccess='false'\""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_NxCompat, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_LargeAddressAware, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbAltPath, "%%_RAD_PDB_PATH%%"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_PdbPageSize, "%u", KB(4)); - if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Brepro)) { - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TimeStamp, "%u", os_get_process_start_time_unix()); - } - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Age, "%u", 1); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DoMerge, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_EnvLib, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Exe, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Guid, "imageblake3"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LargePages, "no"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_LinkVer, "14.0"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_OsVer, "6.0"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PageSize, "%u", KB(4)); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_PathStyle, "system"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Workers, "%u", os_get_system_info()->logical_processor_count); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_TargetOs, "windows"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_DebugAltPath, "%%_RAD_RDI_PATH%%"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MemoryMapFiles, ""); -#if BUILD_DEBUG - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "debug"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_Log, "io_write"); -#else - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SuppressError, "%u", LNK_Error_InvalidTypeIndex); -#endif - - // default section merges - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".xdata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".00cfg=.rdata"); - // TODO: .tls must be always first contribution in .data section because compiler generates TLS relative movs - //lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".tls=.data"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".idata=.data"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".didat=.data"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".edata=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DIR=.rdata"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Merge, ".RAD_LINK_PE_DEBUG_DATA=.rdata"); - - // sections to remove from the image - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".debug"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gehcont"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gfids"); - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_RemoveSection, ".gxfg"); - - // set limits on unresolved symbol errors - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MapLinesForUnresolvedSymbols, ""); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_UnresolvedSymbolLimit, "1000"); - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_UnresolvedSymbolRefLimit, "10"); - - // set default max worker count - if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool)) { - lnk_cmd_line_push_optionf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, ""); - } - - if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_MtPath)) { - lnk_cmd_line_push_option_if_not_presentf(scratch.arena, &cmd_line, LNK_CmdSwitch_Rad_MtPath, "%s", LNK_MANIFEST_MERGE_TOOL_NAME); + for EachIndex(i, ArrayCount(push_opts)) { + PushOpt("%s", push_opts[i]); } // when /FORCE is specified on the command line, do not stop on these errors +#if 0 if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Force)) { g_error_mode_arr[LNK_Error_UnresolvedSymbol] = LNK_ErrorMode_Continue; } - - // init config - LNK_Config *config = lnk_config_from_cmd_line(raw_cmd_line, cmd_line); - -#if PROFILE_TELEMETRY - { - String8 cmdl = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); - tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(cmdl)); - } #endif - if (lnk_get_log_status(LNK_Log_Debug)) { - String8 full_cmd_line = str8_list_join(scratch.arena, &raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); - fprintf(stderr, "--------------------------------------------------------------------------------\n"); - fprintf(stderr, "Command Line: %.*s\n", str8_varg(full_cmd_line)); - fprintf(stderr, "Work Dir : %.*s\n", str8_varg(config->work_dir)); - fprintf(stderr, "--------------------------------------------------------------------------------\n"); +#undef DefaultOpt +#undef PushOpt + scratch_end(scratch); + return cmd_line; +} + +internal LNK_Config * +lnk_config_from_argcv(CmdLine *cmdline) +{ + Temp scratch = scratch_begin(0,0); + + String8List raw_cmd_line = {0}; + for (U64 i = 1; i < cmdline->argc; i += 1) { str8_list_push(scratch.arena, &raw_cmd_line, str8_cstring(cmdline->argv[i])); } + +#if PROFILE_TELEMETRY + tmMessage(0, TMMF_ICON_NOTE, "Command Line: %.*s", str8_varg(str8_list_join(scratch.arena, &raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }))); +#endif + + // make command line + LNK_CmdLine cmd_line_msvc = {0}; + { + String8List unwrapped_cmd_line = lnk_unwrap_rsp(scratch.arena, raw_cmd_line); + LNK_CmdLine user_cmd_line = lnk_cmd_line_parse_windows_rules(scratch.arena, unwrapped_cmd_line); + user_cmd_line.raw_cmd_line = raw_cmd_line; + LNK_CmdLine default_cmd_line = lnk_make_default_cmd_line(scratch.arena, user_cmd_line); + lnk_cmd_line_concat_in_place(&cmd_line_msvc, &default_cmd_line); + lnk_cmd_line_concat_in_place(&cmd_line_msvc, &user_cmd_line); } + // init config + LNK_Config *config = lnk_config_init(cmd_line_msvc); + scratch_end(scratch); return config; } @@ -375,7 +414,7 @@ lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest str8_list_pushf(scratch.arena, &cmd_line, "-nologo"); // register input manifest files on command line - String8 work_dir = os_get_current_path(scratch.arena); + String8 work_dir = get_current_path(scratch.arena); for (String8Node *man_node = manifest_path_list.first; man_node != 0; man_node = man_node->next) { @@ -391,16 +430,15 @@ lnk_merge_manifest_files(String8 mt_path, String8 out_name, String8List manifest } // launch mt.exe with our command line - OS_ProcessLaunchParams launch_opts = {0}; + ProcessLaunchParams launch_opts = {0}; launch_opts.cmd_line = cmd_line; launch_opts.inherit_env = 1; launch_opts.consoleless = 0; - OS_Handle mt_handle = os_process_launch(&launch_opts); - if (os_handle_match(mt_handle, os_handle_zero())) { + Process mt_handle = process_launch(&launch_opts); + if (process_match(mt_handle, process_zero())) { lnk_error(LNK_Error_Mt, "unable to start process: %S", mt_path); } else { - os_process_join(mt_handle, max_U64, 0); - os_process_detach(mt_handle); + process_join(mt_handle, max_U64, 0); } scratch_end(scratch); @@ -449,8 +487,8 @@ lnk_manifest_from_inputs(Arena *arena, } // cleanup disk - os_delete_file_at_path(linker_manifest_path); - os_delete_file_at_path(merged_manifest_path); + delete_file_at_path(linker_manifest_path); + delete_file_at_path(merged_manifest_path); ProfEnd(); } else { @@ -475,7 +513,7 @@ lnk_make_null_obj(Arena *arena) // push .debug$T sections with null leaf String8 null_debug_data; { - String8 raw_null_leaf = cv_serialize_raw_leaf(obj_writer->arena, CV_LeafKind_NOTYPE, str8(0,0), 1); + String8 raw_null_leaf = cv_make_leaf(obj_writer->arena, CV_LeafKind_NOTYPE, str8(0,0), 1); String8List srl = {0}; str8_serial_begin(obj_writer->arena, &srl); @@ -493,8 +531,8 @@ lnk_make_null_obj(Arena *arena) internal int lnk_res_string_id_is_before(void *raw_a, void *raw_b) { - PE_Resource *a = raw_a; - PE_Resource *b = raw_b; + PE_Resource *a = *(PE_Resource **)raw_a; + PE_Resource *b = *(PE_Resource **)raw_b; Assert(a->id.type == COFF_ResourceIDType_String); Assert(b->id.type == COFF_ResourceIDType_String); int is_before = str8_is_before_case_sensitive(&a->id.u.string, &b->id.u.string); @@ -504,8 +542,8 @@ lnk_res_string_id_is_before(void *raw_a, void *raw_b) internal int lnk_res_number_id_is_before(void *raw_a, void *raw_b) { - PE_Resource *a = raw_a; - PE_Resource *b = raw_b; + PE_Resource *a = *(PE_Resource **)raw_a; + PE_Resource *b = *(PE_Resource **)raw_b; Assert(a->id.type == COFF_ResourceIDType_Number); Assert(b->id.type == COFF_ResourceIDType_Number); int is_before = u16_is_before(&a->id.u.number, &b->id.u.number); @@ -576,10 +614,25 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_ dir_header->id_entry_count = res->u.dir->id_list.count; // sort input resources - PE_ResourceArray named_array = pe_resource_list_to_array(scratch.arena, &res->u.dir->named_list); - PE_ResourceArray id_array = pe_resource_list_to_array(scratch.arena, &res->u.dir->id_list); - radsort(named_array.v, named_array.count, lnk_res_string_id_is_before); - radsort(id_array.v, id_array.count, lnk_res_number_id_is_before); + PE_ResourceArray named_array; + PE_ResourceArray id_array; + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + named_array = pe_resource_list_to_array(scratch2.arena, &res->u.dir->named_list); + id_array = pe_resource_list_to_array(scratch2.arena, &res->u.dir->id_list); + + PE_ResourcePtrArray named_ptr_array = pe_resource_ptr_from_array(scratch2.arena, named_array); + PE_ResourcePtrArray id_ptr_array = pe_resource_ptr_from_array(scratch2.arena, id_array); + + radsort(named_ptr_array.v, named_ptr_array.count, lnk_res_string_id_is_before); + radsort(id_ptr_array.v, id_ptr_array.count, lnk_res_number_id_is_before); + + named_array = pe_resource_from_ptr_array(scratch.arena, named_ptr_array); + id_array = pe_resource_from_ptr_array(scratch.arena, id_ptr_array); + + scratch_end(scratch2); + } // allocate COFF entries COFF_ResourceDirEntry *named_entries = push_array(obj_writer->arena, COFF_ResourceDirEntry, named_array.count); @@ -624,18 +677,20 @@ lnk_serialize_pe_resource_tree(COFF_ObjWriter *obj_writer, PE_ResourceDir *root_ case PE_ResDataKind_COFF_RESOURCE: { // fill out resource header COFF_ResourceDataEntry *coff_res = push_array(obj_writer->arena, COFF_ResourceDataEntry, 1); - coff_res->data_size = res->u.coff_res.data.size; - coff_res->data_voff = 0; // relocated - coff_res->code_page = 0; // TODO: whats this for? (lld-link writes zero) + coff_res->data_size = res->u.coff_res.data.size; + coff_res->data_voff = 0; // relocated + coff_res->code_page = 0; // TODO: whats this for? - // emit symbol for resource data - U32 resdat_off = safe_cast_u32(rsrc2->data.total_size); - COFF_ObjSymbol *resdat = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("resdat"), resdat_off, rsrc2); + if (res->u.coff_res.data.size >= sizeof(U32)) { + // emit symbol for resource data + U32 resdat_off = safe_cast_u32(rsrc2->data.total_size); + COFF_ObjSymbol *resdat = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("resdat"), resdat_off, rsrc2); - // emit reloc for 'data_voff' - U64 apply_off = rsrc1->data.total_size + OffsetOf(COFF_ResourceDataEntry, data_voff); - U32 apply_off32 = safe_cast_u32(apply_off); - coff_obj_writer_section_push_reloc(obj_writer, rsrc1, apply_off32, resdat, COFF_Reloc_X64_Addr32Nb); + // emit reloc for 'data_voff' + U64 apply_off = rsrc1->data.total_size + OffsetOf(COFF_ResourceDataEntry, data_voff); + U32 apply_off32 = safe_cast_u32(apply_off); + coff_obj_writer_section_push_reloc_voff(obj_writer, rsrc1, apply_off32, resdat); + } // push resource entry & data str8_list_push(obj_writer->arena, &rsrc1->data, str8_struct(coff_res)); @@ -791,7 +846,7 @@ lnk_make_res_obj(Arena *arena, } // convert res to obj - OS_ProcessInfo *process_info = os_get_process_info(); + ProcessInfo *process_info = get_process_info(); String8List exe_path_strs = {0}; str8_list_push(scratch.arena, &exe_path_strs, process_info->binary_path); String8 exe_path = str8_list_first(&exe_path_strs); @@ -834,16 +889,11 @@ lnk_make_linker_coff_obj(Arena *arena, String8 debug_symbols = {0}; { - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - - // S_OBJ - String8 obj_data = cv_make_obj_name(scratch.arena, obj_name, 0); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); - - // S_COMPILE3 - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + String8List symbols = {0}; + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_OBJNAME, cv_make_obj_name(scratch.arena, obj_name, 0))); + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, lnk_make_linker_compile3(scratch.arena, machine))); + // S_ENVBLOCK String8List env_list = {0}; str8_list_push(scratch.arena, &env_list, str8_lit("cwd")); @@ -856,12 +906,12 @@ lnk_make_linker_coff_obj(Arena *arena, str8_list_push(scratch.arena, &env_list, cmd_line); str8_list_push(scratch.arena, &env_list, str8_lit("")); str8_list_push(scratch.arena, &env_list, str8_lit("")); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_ENVBLOCK, cv_make_envblock(scratch.arena, env_list)); + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_ENVBLOCK, cv_make_envblock(scratch.arena, env_list))); // TODO: emit S_SECTION and S_COFFGROUP // TODO: emit S_TRAMPOLINE - debug_symbols = lnk_make_debug_s(scratch.arena, symbol_list); + debug_symbols = lnk_make_debug_s(scratch.arena, symbols); } String8 obj; @@ -958,7 +1008,7 @@ lnk_array_from_input_list(Arena *arena, LNK_InputList list) internal LNK_Inputer * lnk_inputer_init(void) { - Arena *arena = arena_alloc(); + Arena *arena = arena_alloc(.name = "INPUTER"); LNK_Inputer *inputer = push_array(arena, LNK_Inputer, 1); inputer->arena = arena; inputer->objs_ht = hash_table_init(arena, 0x20000); @@ -1024,7 +1074,7 @@ lnk_inputer_push_obj_thin(LNK_Inputer *inputer, LNK_LibMemberRef *link_member, S { lnk_log(LNK_Log_InputObj, "Input Obj: %S", path); Temp scratch = scratch_begin(0,0); - String8 full_path = os_full_path_from_path(scratch.arena, path); + String8 full_path = full_path_from_path(scratch.arena, path); LNK_Input *input = lnk_inputer_push_thin(inputer->arena, &inputer->new_objs, inputer->objs_ht, full_path); input->link_member = link_member; scratch_end(scratch); @@ -1051,7 +1101,7 @@ lnk_input_from_path(HashTable *load_ht, String8 path) LNK_Input *input = hash_table_search_path_raw(load_ht, path); if (input == 0) { Temp scratch = scratch_begin(0, 0); - String8 full_path = os_full_path_from_path(scratch.arena, path); + String8 full_path = full_path_from_path(scratch.arena, path); input = hash_table_search_path_raw(load_ht, full_path); scratch_end(scratch); } @@ -1086,7 +1136,7 @@ lnk_inputer_push_lib_thin(LNK_Inputer *inputer, LNK_Config *config, LNK_InputSou // warn about missing library if (first_match.size == 0) { - KeyValuePair *was_reported = hash_table_search_path(inputer->missing_lib_ht, path); + BucketNode *was_reported = hash_table_search_path(inputer->missing_lib_ht, path); if (was_reported == 0) { hash_table_push_path_u64(inputer->arena, inputer->missing_lib_ht, path, 0); lnk_error(LNK_Warning_FileNotFound, "unable to find library `%S`", path); @@ -1196,13 +1246,29 @@ lnk_lib_member_ref_list_concat_in_place_array(LNK_LibMemberRefList *list, LNK_Li SLLConcatInPlaceArray(list, to_concat_arr, count); } -internal int +static LNK_LibMemberInfo *g_sort_lib_member_context; + +force_inline int lnk_lib_member_ref_is_before(void *raw_a, void *raw_b) { LNK_LibMemberRef **a = raw_a, **b = raw_b; - LNK_Symbol *a_pull_in_ref = (*a)->lib->member_links[(*a)->member_idx]; - LNK_Symbol *b_pull_in_ref = (*b)->lib->member_links[(*b)->member_idx]; - return lnk_symbol_is_before(a_pull_in_ref, b_pull_in_ref); + return lnk_symbol_is_before(g_sort_lib_member_context[(*a)->member_idx].link, + g_sort_lib_member_context[(*b)->member_idx].link); +} + +force_inline int +lnk_import_ref_is_before(void *raw_a, void *raw_b) +{ + LNK_LibMemberRef **a_ptr = raw_a, **b_ptr = raw_b; + LNK_LibMemberRef *a = *a_ptr, *b = *b_ptr; + int cmp = u64_compar(&a->lib->input_idx, &b->lib->input_idx); + if (cmp == 0) { + cmp = u32_compar(&a->member_idx, &b->member_idx); + } +#if LNK_PARANOID + if (a != b) Assert(cmp != 0); +#endif + return cmp < 0; } internal LNK_LibMemberRef ** @@ -1216,6 +1282,20 @@ lnk_array_from_lib_member_list(Arena *arena, LNK_LibMemberRefList list) return result; } +internal LNK_Link * +lnk_link_init(TP_Arena *arena, LNK_Config *config) +{ + LNK_Link *link = push_array(arena->v[0], LNK_Link, 1); + link->arena = arena_alloc(.name = "LINK"); + link->last_symbol_input = &link->objs.first; + link->last_include = &config->include_symbol_list.first; + link->last_default_lib = &config->input_default_lib_list.first; + link->last_obj_lib = &config->input_obj_lib_list.first; + link->last_cmd_lib = &config->input_list[LNK_Input_Lib].first; + link->try_to_resolve_entry_point = 1; + return link; +} + internal LNK_ObjNode * lnk_load_objs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab, LNK_Link *link, U64 *objs_count_out) { @@ -1231,7 +1311,7 @@ lnk_load_objs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer * lnk_log(LNK_Log_InputObj, "[ Obj Input Size %M ]", input_size); } - LNK_ObjNode *new_objs = lnk_obj_from_input_many(tp, arena, config->machine, new_input_objs.count, new_input_objs.v); + LNK_ObjNode *new_objs = lnk_obj_from_input_many(tp, arena, config, new_input_objs.count, new_input_objs.v); // if machine type was unspecified on the command line, derive it from obj file if (config->machine == COFF_MachineType_Unknown) { @@ -1344,7 +1424,7 @@ lnk_load_inputs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer AssertAlways(include_obj_count == 1); if (obj_with_includes) { - DLLInsert(link->objs.first, link->objs.last, obj_with_includes->node, include_obj); + DLLInsert(link->objs.first, link->objs.last, obj_with_includes->self, include_obj); link->objs.count += 1; } else { lnk_obj_list_push_node(&link->objs, include_obj); @@ -1481,14 +1561,73 @@ lnk_load_inputs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer } internal void -lnk_queue_lib_member(Arena *arena, LNK_LibMemberRefList *queued_members, LNK_Symbol *link_symbol, LNK_Lib *lib, U32 member_idx) +lnk_queue_lib_member(Arena *arena, + HashMap *imports_hm, + HashMap lib_member_info_hm, + LNK_LibMemberRefList *queued_members, + LNK_Symbol *link_symbol, + LNK_Lib *lib, + LNK_LibMemberInfo *member_infos, + U32 member_idx) { - B32 was_linked = lnk_lib_set_link_symbol(lib, member_idx, link_symbol); - if (was_linked) { - LNK_LibMemberRef *member_ref = push_array(arena, LNK_LibMemberRef, 1); - member_ref->lib = lib; - member_ref->member_idx = member_idx; - lnk_lib_member_ref_list_push_node(queued_members, member_ref); + // associate link symbol to lib member + for (LNK_Symbol *leader = link_symbol;;) { + LNK_Symbol *slot = ins_atomic_ptr_eval_assign(&member_infos[member_idx].link, 0); + + // update slot symbol if it is empty or link symbol comes before symbol in the slot + if (slot) { + if (lnk_symbol_is_before(slot, leader)) { + leader = slot; + } + } else { + leader = link_symbol; + } + + // try to insert back updated slot symbol + LNK_Symbol *swap = ins_atomic_ptr_eval_cond_assign(&member_infos[member_idx].link, leader, 0); + + // exit if slot symbol was null + if (swap == 0) { + break; + } + } + + LNK_LibMemberRef *is_thunk_import; + LNK_LibMemberRef *is_addr_import; + if (str8_starts_with(link_symbol->name, str8_lit("__imp_"))) { + is_thunk_import = hash_map_search_string_raw(imports_hm, str8_skip(link_symbol->name, 6)); + is_addr_import = hash_map_search_string_raw(imports_hm, link_symbol->name); + } else { + is_thunk_import = hash_map_search_string_raw(imports_hm, link_symbol->name); + is_addr_import = hash_map_search_stringf_raw(imports_hm, "__imp_%S", link_symbol->name); + } + + LNK_LibMemberRef *is_queued_import = is_thunk_import ? is_thunk_import : + is_addr_import ? is_addr_import : 0; + + if (is_queued_import) { + // do not queue second import member link -> flag member and continue + U8 flag = str8_starts_with(link_symbol->name, str8_lit("__imp_")) ? LNK_LibMemberFlag_LinkedImp : LNK_LibMemberFlag_LinkedRegular; + LNK_LibMemberInfo *import_member_infos = hash_map_search_raw_raw(&lib_member_info_hm, is_queued_import->lib); + ins_atomic_u8_or(&import_member_infos[is_queued_import->member_idx].flags, flag); + } else { + B32 do_queue; + if (str8_starts_with(link_symbol->name, str8_lit("__imp_"))) { + U8 member_flags = ins_atomic_u8_or(&member_infos[member_idx].flags, LNK_LibMemberFlag_LinkedImp); + do_queue = !(member_flags & LNK_LibMemberFlag_LinkedImp); + } else { + U8 flag = LNK_LibMemberFlag_LinkedRegular; + U8 member_flags = ins_atomic_u8_or(&member_infos[member_idx].flags, LNK_LibMemberFlag_LinkedRegular); + do_queue = !(member_flags & LNK_LibMemberFlag_LinkedRegular); + } + + if (do_queue) { + LNK_LibMemberRef *member_ref = push_array(arena, LNK_LibMemberRef, 1); + member_ref->lib = lib; + member_ref->member_idx = member_idx; + member_ref->link_symbol = link_symbol; + lnk_lib_member_ref_list_push_node(queued_members, member_ref); + } } } @@ -1499,6 +1638,7 @@ THREAD_POOL_TASK_FUNC(lnk_search_lib_task) LNK_Lib *lib = task->lib; LNK_SymbolTable *symtab = task->symtab; B32 search_anti_deps = task->search_anti_deps; + LNK_LibMemberInfo *lib_member_infos = task->lib_member_infos; LNK_LibMemberRefList *member_ref_list = &task->member_ref_lists[task_id]; for EachNode(c, LNK_SymbolHashTrieChunk, symtab->search_chunks[task_id].first) { @@ -1511,14 +1651,14 @@ THREAD_POOL_TASK_FUNC(lnk_search_lib_task) if (symbol_interp == COFF_SymbolValueInterp_Undefined) { U32 member_idx; if (lnk_search_lib(lib, symbol->name, &member_idx)) { - lnk_queue_lib_member(arena, member_ref_list, symbol, lib, member_idx); + lnk_queue_lib_member(arena, task->imports_hm, task->link->lib_member_infos_hm, member_ref_list, symbol, lib, lib_member_infos, member_idx); } } else if (symbol_interp == COFF_SymbolValueInterp_Weak) { COFF_SymbolWeakExt *weak_ext = coff_parse_weak_tag(symbol_parsed, symbol_ref.obj->header.is_big_obj); if (weak_ext->characteristics == COFF_WeakExt_SearchLibrary) { U32 member_idx; if (lnk_search_lib(lib, symbol->name, &member_idx)) { - lnk_queue_lib_member(arena, member_ref_list, symbol, lib, member_idx); + lnk_queue_lib_member(arena, task->imports_hm, task->link->lib_member_infos_hm, member_ref_list, symbol, lib, lib_member_infos, member_idx); } } else if (weak_ext->characteristics == COFF_WeakExt_AntiDependency) { if (search_anti_deps) { @@ -1529,7 +1669,7 @@ THREAD_POOL_TASK_FUNC(lnk_search_lib_task) if (dep_interp == COFF_SymbolValueInterp_Weak) { U32 member_idx; if (lnk_search_lib(lib, symbol_parsed.name, &member_idx)) { - lnk_queue_lib_member(arena, member_ref_list, symbol, lib, member_idx); + lnk_queue_lib_member(arena, task->imports_hm, task->link->lib_member_infos_hm, member_ref_list, symbol, lib, lib_member_infos, member_idx); } } } @@ -1540,6 +1680,40 @@ THREAD_POOL_TASK_FUNC(lnk_search_lib_task) } } +internal LNK_Lib * +lnk_find_first_crt_lib(LNK_Config *config, LNK_Inputer *inputer) +{ + Temp scratch = scratch_begin(0, 0); + + LNK_Lib *result = 0; + + String8 crt_lib_names[] = { + str8_lit("msvcrt"), + str8_lit("msvcrtd"), + str8_lit("libcmt"), + str8_lit("libcmtd"), + }; + + for EachNode(n, LNK_Input, inputer->libs.first) { + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(n->path)); + for EachElement(i, crt_lib_names) { + if (str8_match(lib_name, crt_lib_names[i], StringMatchFlag_CaseInsensitive)) { + if (result == 0) { + result = hash_table_search_path_raw(inputer->libs_ht, n->path); + break; + } else { + LNK_Lib *lib = hash_table_search_path_raw(inputer->libs_ht, n->path); + result = lib->input_idx < result->input_idx ? lib : result; + break; + } + } + } + } + + scratch_end(scratch); + return result; +} + internal void lnk_link_inputs(TP_Context *tp, TP_Arena *arena, @@ -1551,6 +1725,8 @@ lnk_link_inputs(TP_Context *tp, ProfBeginFunction(); Temp scratch = scratch_begin(arena->v, arena->count); + HashMap imports_hm = {0}; + LNK_LibMemberRefList *member_ref_lists = push_array(scratch.arena, LNK_LibMemberRefList, tp->worker_count); B32 search_anti_deps = 0; for (U64 resolved_members_count = 0; ; resolved_members_count = 0) { @@ -1559,20 +1735,105 @@ lnk_link_inputs(TP_Context *tp, for EachNode(lib_n, LNK_LibNode, link->libs.first) { LNK_Lib *lib = &lib_n->data; + if (config->machine != COFF_MachineType_Unknown) { + if (config->infer_asan_libs == LNK_SwitchState_Yes) { + if ( ! link->asan_libs_resolved) { + LNK_Lib *crt_lib = lnk_find_first_crt_lib(config, inputer); + if (crt_lib != 0) { + String8 crt_lib_name = str8_chop_last_dot(str8_skip_last_slash(crt_lib->path)); + + String8 arch_name = {0}; + if (config->machine == COFF_MachineType_X64) { + arch_name = str8_lit("x86_64"); + } else if (config->machine == COFF_MachineType_X86) { + arch_name = str8_lit("i386"); + } + + if (arch_name.size) { + B32 link_vc_libs = lnk_symbol_table_searchf(symtab, "__you_must_link_with_VCAsan_lib") != 0 || + lnk_symbol_table_searchf(symtab, "___you_must_link_with_VCAsan_lib") != 0; + if (str8_match(crt_lib_name, str8_lit("msvcrt"), StringMatchFlag_CaseInsensitive) || str8_match(crt_lib_name, str8_lit("msvcrtd"), StringMatchFlag_CaseInsensitive)) { + String8 dynamic_lib_name = str8f(inputer->arena, "clang_rt.asan_dynamic-%S.lib", arch_name); + String8 thunk_lib_name = str8f(inputer->arena, "clang_rt.asan_dynamic_runtime_thunk-%S.lib", arch_name); + lnk_whole_archive(config, thunk_lib_name); + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, dynamic_lib_name); + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, thunk_lib_name); + if (link_vc_libs) { + if (str8_match(crt_lib_name, str8_lit("msvcrtd"), StringMatchFlag_CaseInsensitive)) { + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, str8_lit("libvcasand.lib")); + } else { + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, str8_lit("libvcasan.lib")); + } + } + } else if (str8_match(crt_lib_name, str8_lit("libcmt"), StringMatchFlag_CaseInsensitive) || str8_match(crt_lib_name, str8_lit("libcmtd"), StringMatchFlag_CaseInsensitive)) { + String8 dynamic_lib_name = str8f(inputer->arena, "clang_rt.asan_dynamic-%S.lib", arch_name); + String8 thunk_lib_name = str8f(inputer->arena, "clang_rt.asan_static_runtime_thunk-%S.lib", arch_name); + lnk_whole_archive(config, thunk_lib_name); + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, dynamic_lib_name); + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, thunk_lib_name); + if (link_vc_libs) { + if (str8_match(crt_lib_name, str8_lit("libcmtd"), StringMatchFlag_CaseInsensitive)) { + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, str8_lit("vcasand.lib")); + } else { + lnk_inputer_push_lib_thin(inputer, config, LNK_InputSource_Obj, str8_lit("vcasan.lib")); + } + } + } + link->asan_libs_resolved = 1; + } + } + } + } + } + + LNK_LibMemberInfo *lib_member_infos = hash_map_search_raw_raw(&link->lib_member_infos_hm, lib); + if (lib_member_infos == 0) { + lib_member_infos = push_array(link->arena, LNK_LibMemberInfo, lib->member_count); + hash_map_push_raw_raw(link->arena, &link->lib_member_infos_hm, lib, lib_member_infos); + } + + B32 link_whole_archive = config->whole_archive_all; + if ( ! link_whole_archive) { + String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(lib->path)); + link_whole_archive = hash_map_search_path_u64(&config->whole_archive_ht, lib_name) != 0; + } + ProfBeginV("Search %S", str8_skip_last_slash(lib->path)); do { lnk_load_inputs(tp, arena, config, inputer, symtab, link); - // search symbols in lib - MemoryZeroTyped(member_ref_lists, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_search_lib_task, &(LNK_SearchLibTask){ .search_anti_deps = search_anti_deps, .lib = lib, .symtab = symtab, .member_ref_lists = member_ref_lists }); + if (link_whole_archive) { + local_persist LNK_Symbol *null_symbol = 0; + if (null_symbol == 0) { + null_symbol = push_array(inputer->arena, LNK_Symbol, 1); + null_symbol->first_ref = push_array(inputer->arena, LNK_ObjSymbolRefNode, 1); + null_symbol->first_ref->v.obj = &link->objs.first->data; + } + LNK_LibMemberRef *member_refs = push_array(scratch.arena, LNK_LibMemberRef, lib->member_count); + for EachIndex(member_idx, lib->member_count) { + lnk_queue_lib_member(arena->v[0], &imports_hm, link->lib_member_infos_hm, &member_ref_lists[0], null_symbol, lib, lib_member_infos, member_idx); + } + } else { + // search symbols in lib + MemoryZeroTyped(member_ref_lists, tp->worker_count); + LNK_SearchLibTask search_task = { + .search_anti_deps = search_anti_deps, + .link = link, + .imports_hm = &imports_hm, + .lib = lib, + .symtab = symtab, + .lib_member_infos = lib_member_infos, + .member_ref_lists = member_ref_lists + }; + tp_for_parallel(tp, arena, tp->worker_count, lnk_search_lib_task, &search_task); + } LNK_LibMemberRefList queued_members = {0}; lnk_lib_member_ref_list_concat_in_place_array(&queued_members, member_ref_lists, tp->worker_count); // sort library member refs to match the order of their appearance in obj symbol tables LNK_LibMemberRef **member_refs = lnk_array_from_lib_member_list(scratch.arena, queued_members); - //qsort(member_refs, queued_members.count, sizeof(member_refs[0]), lnk_lib_member_ref_compar); + g_sort_lib_member_context = lib_member_infos; radsort(member_refs, queued_members.count, lnk_lib_member_ref_is_before); if (queued_members.count) { @@ -1583,11 +1844,12 @@ lnk_link_inputs(TP_Context *tp, LNK_LibMemberRef *member_ref = member_refs[i]; LNK_Lib *lib = member_ref->lib; - LNK_Symbol *link_symbol = lib->member_links[member_ref->member_idx]; + LNK_Symbol *link_symbol = member_ref->link_symbol; - COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, lib->member_offsets[member_ref->member_idx]); - COFF_DataType member_type = coff_data_type_from_data(member_info.data); - String8 member_name = coff_decode_member_name(lib->long_names, member_info.header.name); + U32 member_offset = memory_read32(lib->member_offsets + member_ref->member_idx); + COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, member_offset); + COFF_DataType member_type = coff_data_type_from_data(member_info.data); + String8 member_name = coff_decode_member_name(lib->long_names, member_info.header.name); U64 refs_count = 0; LNK_ObjSymbolRef **refs = lnk_ref_from_symbol_many(temp.arena, link_symbol, &refs_count); @@ -1599,52 +1861,59 @@ lnk_link_inputs(TP_Context *tp, temp_end(temp); } } - + // push inputs for lib member refs for EachIndex(i, queued_members.count) { LNK_LibMemberRef *member_ref = member_refs[i]; U64 member_idx = member_ref->member_idx; // parse member info - COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, lib->member_offsets[member_idx]); - COFF_DataType member_type = coff_data_type_from_data(member_info.data); - String8 member_name = coff_decode_member_name(lib->long_names, member_info.header.name); + U32 member_offset = memory_read32(lib->member_offsets + member_idx); + COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, member_offset); + COFF_DataType member_type = coff_data_type_from_data(member_info.data); + String8 member_name = coff_decode_member_name(lib->long_names, member_info.header.name); switch (member_type) { case COFF_DataType_Import: { - LNK_Symbol *link_symbol = lib->member_links[member_idx]; - - LNK_Symbol *import_symbols[2] = {0}; - if (str8_starts_with(link_symbol->name, str8_lit("__imp_"))) { - import_symbols[0] = link_symbol; - import_symbols[1] = lnk_symbol_table_search(symtab, str8_skip(link_symbol->name, str8_lit("__imp_").size)); - } else { - Temp temp = temp_begin(scratch.arena); - String8 imp_name = push_str8f(temp.arena, "__imp_%S", link_symbol->name); - import_symbols[0] = lnk_symbol_table_search(symtab, imp_name); - import_symbols[1] = link_symbol; - temp_end(temp); + { + LNK_LibMemberRef *is_thunk_import; + LNK_LibMemberRef *is_addr_import; + if (str8_starts_with(member_ref->link_symbol->name, str8_lit("__imp_"))) { + is_thunk_import = hash_map_search_string_raw(&imports_hm, str8_skip(member_ref->link_symbol->name, 6)); + is_addr_import = hash_map_search_string_raw(&imports_hm, member_ref->link_symbol->name); + } else { + is_thunk_import = hash_map_search_string_raw(&imports_hm, member_ref->link_symbol->name); + is_addr_import = hash_map_search_stringf_raw(&imports_hm, "__imp_%S", member_ref->link_symbol->name); + } + if (is_thunk_import != 0 || is_addr_import != 0) { + lnk_log(LNK_Log_Paranoid, "duplicate import member queue detected: %S", member_ref->link_symbol->name); + break; + } } - for EachIndex(i, ArrayCount(import_symbols)) { - LNK_Symbol *import_symbol = import_symbols[i]; - if (import_symbol == 0) { continue; } + // store lib member ref to import + hash_map_push_string_raw(scratch.arena, &imports_hm, member_ref->link_symbol->name, member_ref); - LNK_Symbol *import_stub = lnk_symbol_table_search(symtab, str8_lit(LNK_IMPORT_STUB)); + // find import stub + LNK_Symbol *import_stub = lnk_symbol_table_search(symtab, str8_lit(LNK_IMPORT_STUB)); - // same import symbol must never be queued more than once, if it is, there is a bug in the link set logic - AssertAlways(import_symbol->refs != import_stub->refs); + // same import symbol must never be queued more than once, if it is, there is a bug in the link set logic + AssertAlways(member_ref->link_symbol->first_ref != import_stub->first_ref); - // replace the import symbol with a stub, which is later replaced with the real import symbol once import obj is ready - import_symbol->refs = import_stub->refs; - } + // replace the import symbol with a stub, which is later replaced with the real import symbol once import obj is ready. + member_ref->link_symbol->first_ref = import_stub->first_ref; + member_ref->link_symbol->last_ref = import_stub->last_ref; // push import member for import obj generation lnk_lib_member_ref_list_push_node(&link->imports, member_ref); + lib_member_infos[member_ref->member_idx].flags |= LNK_LibMemberFlag_WasGenQueued; } break; case COFF_DataType_BigObj: case COFF_DataType_Obj: { if (lib->type == COFF_Archive_Thin) { + Assert(!(lib_member_infos[member_ref->member_idx].flags & LNK_LibMemberFlag_WasGenQueued)); + lib_member_infos[member_ref->member_idx].flags |= LNK_LibMemberFlag_WasGenQueued; + // obj path in thin archive is relative to the directory with lib String8List obj_path_list = {0}; str8_list_push(scratch.arena, &obj_path_list, str8_chop_last_slash(lib->path)); @@ -1710,22 +1979,14 @@ lnk_link_inputs(TP_Context *tp, ProfEnd(); } -internal LNK_Link * + +internal LNK_LinkResult lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab) { ProfBeginFunction(); Temp scratch = scratch_begin(arena->v, arena->count); - // - // init link context - // - LNK_Link *link = push_array(arena->v[0], LNK_Link, 1); - link->last_symbol_input = &link->objs.first; - link->last_include = &config->include_symbol_list.first; - link->last_default_lib = &config->input_default_lib_list.first; - link->last_obj_lib = &config->input_obj_lib_list.first; - link->last_cmd_lib = &config->input_list[LNK_Input_Lib].first; - link->try_to_resolve_entry_point = 1; + LNK_Link *link = lnk_link_init(arena, config); // TODO: factor out // input :null_obj String8 null_obj = lnk_make_null_obj(inputer->arena); @@ -1758,17 +2019,27 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer // make imports // { - HashTable *static_imports_ht = hash_table_init(scratch.arena, 0x1000); - HashTable *delayed_imports_ht = hash_table_init(scratch.arena, 0x1000); - String8List delayed_dll_names = {0}; - String8List static_dll_names = {0}; + HashMap static_imports_hm = {0}; + HashMap delayed_imports_hm = {0}; + String8List delayed_dll_names = {0}; + String8List static_dll_names = {0}; - for EachNode(member_ref, LNK_LibMemberRef, link->imports.first) { - LNK_Lib *lib = member_ref->lib; - U64 member_idx = member_ref->member_idx; - LNK_Symbol *link_symbol = lib->member_links[member_idx]; + LNK_LibMemberRef **import_member_refs = lnk_array_from_lib_member_list(scratch.arena, link->imports); - COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, lib->member_offsets[member_idx]); + // optionally sort import library member refs by input index + if (config->sort_imports == LNK_SwitchState_Yes) { + radsort(import_member_refs, link->imports.count, lnk_import_ref_is_before); + } + + for EachIndex(import_member_idx, link->imports.count) { + LNK_LibMemberRef *member_ref = import_member_refs[import_member_idx]; + LNK_Lib *lib = member_ref->lib; + U64 member_idx = member_ref->member_idx; + LNK_LibMemberInfo *member_infos = hash_map_search_raw_raw(&link->lib_member_infos_hm, lib); + LNK_Symbol *link_symbol = member_infos[member_idx].link; + + U32 member_offset = memory_read32(lib->member_offsets + member_idx); + COFF_ArchiveMember member_info = coff_archive_member_from_offset(lib->data, member_offset); COFF_DataType member_type = coff_data_type_from_data(member_info.data); String8 member_name = coff_decode_member_name(lib->long_names, member_info.header.name); COFF_ParsedArchiveImportHeader import_header = coff_archive_import_from_data(member_info.data); @@ -1789,41 +2060,36 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer // find DLL with import symbols B32 is_delay_load = lnk_is_dll_delay_load(config, import_header.dll_name); String8List *dll_names = is_delay_load ? &delayed_dll_names : &static_dll_names; - HashTable *imports_ht = is_delay_load ? delayed_imports_ht : static_imports_ht; - PE_MakeImportList *import_symbols = hash_table_search_path_raw(imports_ht, import_header.dll_name); + HashMap *imports_hm = is_delay_load ? &delayed_imports_hm : &static_imports_hm; + PE_MakeImportList *import_symbols = hash_map_search_path_raw(imports_hm, import_header.dll_name); // create record for a first time-DLL if (import_symbols == 0) { import_symbols = push_array(scratch.arena, PE_MakeImportList, 1); str8_list_push(scratch.arena, dll_names, import_header.dll_name); - hash_table_push_path_raw(scratch.arena, imports_ht, import_header.dll_name, import_symbols); - } - - B32 make_jump_thunk = 1; - if (str8_starts_with(link_symbol->name, str8_lit("__imp_"))) { - LNK_Symbol *thunk_symbol = lnk_symbol_table_search(symtab, str8_skip(link_symbol->name, str8_lit("__imp_").size)); - make_jump_thunk = thunk_symbol != 0; + hash_map_push_path_raw(scratch.arena, imports_hm, import_header.dll_name, import_symbols); } // push make import info + B32 make_jump_thunk = !!(member_infos[member_idx].flags & LNK_LibMemberFlag_LinkedRegular); pe_make_import_header_list_push(scratch.arena, import_symbols, (PE_MakeImport){ .header = member_info.data, .make_jump_thunk = make_jump_thunk }); } - AssertAlways(delayed_dll_names.node_count == delayed_imports_ht->count); - AssertAlways(static_dll_names.node_count == static_imports_ht->count); + AssertAlways(delayed_dll_names.node_count == delayed_imports_hm.count); + AssertAlways(static_dll_names.node_count == static_imports_hm.count); // make and input delayed imports - if (delayed_imports_ht->count) { + if (delayed_imports_hm.count) { ProfBegin("Build Delay Import Table"); COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; B32 emit_biat = config->import_table_emit_biat == LNK_SwitchState_Yes; B32 emit_uiat = config->import_table_emit_uiat == LNK_SwitchState_Yes; - for (String8Node *dll_name_n = delayed_dll_names.first; dll_name_n != 0; dll_name_n = dll_name_n->next) { - PE_MakeImportList *imports = hash_table_search_path_raw(delayed_imports_ht, dll_name_n->string); - String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_name_n->string); - String8 import_obj = pe_make_import_dll_obj_delayed(arena->v[0], time_stamp, config->machine, dll_name_n->string, config->delay_load_helper_name, import_debug_symbols, *imports, emit_biat, emit_uiat); - lnk_inputer_push_obj(inputer, 0, dll_name_n->string, import_obj); + for EachNode(name, String8Node, delayed_dll_names.first) { + PE_MakeImportList *imports = hash_map_search_path_raw(&delayed_imports_hm, name->string); + String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, name->string); + String8 import_obj = pe_make_import_dll_obj_delayed(arena->v[0], time_stamp, config->machine, name->string, config->delay_load_helper_name, import_debug_symbols, *imports, emit_biat, emit_uiat); + lnk_inputer_push_obj(inputer, 0, str8f(inputer->arena, "Import:%S", name->string), import_obj); } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(arena->v[0], config->machine); @@ -1836,16 +2102,16 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer } // make and input static imports - if (static_imports_ht->count) { + if (static_imports_hm.count) { ProfBegin("Build Static Import Table"); COFF_TimeStamp time_stamp = COFF_TimeStamp_Max; for (String8Node *dll_name_n = static_dll_names.first; dll_name_n != 0; dll_name_n = dll_name_n->next) { - PE_MakeImportList *imports = hash_table_search_path_raw(static_imports_ht, dll_name_n->string); - String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_name_n->string); - String8 import_obj = pe_make_import_dll_obj_static(arena->v[0], time_stamp, config->machine, dll_name_n->string, import_debug_symbols, *imports); - lnk_inputer_push_obj(inputer, 0, dll_name_n->string, import_obj); + PE_MakeImportList *imports = hash_map_search_path_raw(&static_imports_hm, dll_name_n->string); + String8 import_debug_symbols = lnk_make_dll_import_debug_symbols(scratch.arena, config->machine, dll_name_n->string); + String8 import_obj = pe_make_import_dll_obj_static(arena->v[0], time_stamp, config->machine, dll_name_n->string, import_debug_symbols, *imports); + lnk_inputer_push_obj(inputer, 0, str8f(inputer->arena, "Import:%S", dll_name_n->string), import_obj); } String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); @@ -1859,9 +2125,9 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer // warn about unused delayloads if (config->flags & LNK_ConfigFlag_CheckUnusedDelayLoadDll) { - for (String8Node *dll_name_n = config->delay_load_dll_list.first; dll_name_n != 0; dll_name_n = dll_name_n->next) { - if (!hash_table_search_path_raw(delayed_imports_ht, dll_name_n->string)) { - lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: %S found no imports", dll_name_n->string); + for EachNode(name, String8Node, config->delay_load_dll_list.first) { + if (!hash_map_search_path_raw(&delayed_imports_hm, name->string)) { + lnk_error(LNK_Warning_UnusedDelayLoadDll, "/DELAYLOAD: found no imports in %S", name->string); } } } @@ -1875,10 +2141,10 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer exp_n_next = exp_n->next; PE_ExportParse *exp = &exp_n->data; - if (str8_match(exp->name, config->entry_point_name, 0)) { + if (exp->name.size && str8_match(exp->name, config->entry_point_name, 0)) { lnk_error_with_loc(LNK_Warning_TryingToExportEntryPoint, exp->obj_path, exp->lib_path, "exported entry point \"%S\"", exp->name); } - if (str8_match(exp->alias, config->entry_point_name, 0)) { + if (exp->alias.size && str8_match(exp->alias, config->entry_point_name, 0)) { lnk_error_with_loc(LNK_Warning_TryingToExportEntryPoint, exp->obj_path, exp->lib_path, "alias exports entry point \"%S=%S\"", exp->name, exp->alias); continue; } @@ -1897,7 +2163,7 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer } PE_FinalizedExports finalized_exports = pe_finalize_export_list(scratch.arena, resolved_exports); - String8 edata_obj = pe_make_edata_obj(arena->v[0], str8_skip_last_slash(config->image_name), COFF_TimeStamp_Max, config->machine, finalized_exports); + String8 edata_obj = pe_make_edata_obj(arena->v[0], lnk_get_image_name(config), COFF_TimeStamp_Max, config->machine, finalized_exports); lnk_inputer_push_obj_linkgen(inputer, 0, str8_lit("* Exports *"), edata_obj); ProfEnd(); @@ -1972,13 +2238,13 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer ProfBegin("Build * Linker * Obj"); String8 obj_name = str8_lit("* Linker *"); String8 raw_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }); - String8 obj_data = lnk_make_linker_coff_obj(arena->v[0], config->time_stamp, config->machine, config->work_dir, config->image_name, config->pdb_name, raw_cmd_line, obj_name); + String8 obj_data = lnk_make_linker_coff_obj(arena->v[0], config->time_stamp, config->machine, config->work_dir, lnk_get_image_name(config), config->pdb_name, raw_cmd_line, obj_name); lnk_inputer_push_obj_linkgen(inputer, 0, obj_name, obj_data); ProfEnd(); } ProfBegin("Build * Debug Directories *"); - if (config->debug_mode != LNK_DebugMode_None && config->debug_mode != LNK_DebugMode_Null) { + if (lnk_do_debug_info(config)) { String8 pdb_dir_obj = pe_make_debug_directory_pdb_obj(arena->v[0], config->machine, config->guid, config->age, config->time_stamp, config->pdb_alt_path); lnk_inputer_push_obj_linkgen(inputer, 0, str8_lit("* Debug Directory PDB *"), pdb_dir_obj); } @@ -2046,79 +2312,89 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer radsort(unresolved_symbols, unresolved_symbols_count, lnk_symbol_ptr_is_before); } - for EachIndex(i, unresolved_symbols_count) { - LNK_Symbol *symbol = unresolved_symbols[i]; + if (unresolved_symbols_count) { + Temp debug_scratch = scratch_begin(&scratch.arena, 1); - if (i > config->unresolved_symbol_limit) { - lnk_error(LNK_Error_UnresolvedSymbol, "too many unresolved symbol errors, stopping now"); - break; - } + for EachIndex(i, unresolved_symbols_count) { + LNK_Symbol *symbol = unresolved_symbols[i]; - String8List supp_info = {0}; - { - U64 refs_count = 0; - LNK_ObjSymbolRef **refs = lnk_ref_from_symbol_many(scratch.arena, symbol, &refs_count); - for EachIndex(ref_idx, refs_count) { - LNK_ObjSymbolRef *ref = refs[ref_idx]; - LNK_Obj *obj = ref->obj; - COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); - String8 string_table = lnk_coff_string_table_from_obj(obj); + if (i > config->unresolved_symbol_limit) { + lnk_error(LNK_Error_UnresolvedSymbol, "too many unresolved symbol errors, stopping now"); + break; + } - CV_DebugS debug_s = {0}; - CV_LinesAccel *debug_lines = 0; - String8 debug_checksums = {0}; - String8 debug_strings = {0}; + String8List supp_info = {0}; + { + U64 refs_count = 0; + LNK_ObjSymbolRef **refs = lnk_ref_from_symbol_many(scratch.arena, symbol, &refs_count); + for EachIndex(ref_idx, refs_count) { + LNK_ObjSymbolRef *ref = refs[ref_idx]; + LNK_Obj *obj = ref->obj; + COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); + String8 string_table = lnk_coff_string_table_from_obj(obj); - for EachIndex(sect_idx, obj->header.section_count_no_null) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - if (section_header->flags & LNK_SECTION_FLAG_DEBUG) { continue; } + Temp debug_temp = temp_begin(debug_scratch.arena); + CV_DebugS debug_s = {0}; + CV_LinesAccel *debug_lines = 0; + String8 debug_checksums = {0}; + String8 debug_strings = {0}; - String8 section_name = coff_name_from_section_header(string_table, section_header); - U64 section_number = sect_idx+1; - COFF_RelocArray relocs = lnk_coff_relocs_from_section_header(obj, section_header); - for EachIndex(reloc_idx, relocs.count) { - if (supp_info.node_count > config->unresolved_symbol_ref_limit) { - str8_list_pushf(scratch.arena, &supp_info, "too many unresolved symbol references reported, stopping now"); - goto next_undefined_symbol; - } - COFF_Reloc *reloc = &relocs.v[reloc_idx]; - if (reloc->isymbol == ref->symbol_idx) { - U64 line_matches_count = 0; - CV_Line *line_matches = 0; - if (config->map_lines_for_unresolved_symbols == LNK_SwitchState_Yes) { - if (debug_lines == 0) { - debug_s = lnk_debug_s_from_obj(scratch.arena, obj); - String8List raw_checksums = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FileChksms); - String8List raw_strings = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_StringTable); - debug_lines = cv_lines_accel_from_debug_s(scratch.arena, debug_s); - debug_checksums = str8_list_first(&raw_checksums); - debug_strings = str8_list_first(&raw_strings); - } - line_matches_count = 0; - line_matches = cv_line_from_voff(debug_lines, reloc->apply_off, &line_matches_count); + for EachIndex(sect_idx, obj->header.section_count_no_null) { + if (obj->section_flags[sect_idx] & LNK_SECTION_FLAG_DEBUG) { continue; } + + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + String8 section_name = coff_name_from_section_header(string_table, section_header); + U64 section_number = sect_idx+1; + COFF_RelocArray relocs = lnk_coff_relocs_from_section_header(obj, section_header); + for EachIndex(reloc_idx, relocs.count) { + if (supp_info.node_count > config->unresolved_symbol_ref_limit) { + str8_list_pushf(scratch.arena, &supp_info, "too many unresolved symbol references reported, stopping now"); + temp_end(debug_temp); + goto next_undefined_symbol; } + COFF_Reloc *reloc = &relocs.v[reloc_idx]; + if (reloc->isymbol == ref->symbol_idx) { + U64 line_matches_count = 0; + CV_Line *line_matches = 0; + if (config->map_lines_for_unresolved_symbols == LNK_SwitchState_Yes) { + if (debug_lines == 0) { + debug_s = lnk_debug_s_from_obj(debug_temp.arena, obj); + String8List raw_checksums = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FileChksms); + String8List raw_strings = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_StringTable); + debug_lines = cv_lines_accel_from_debug_s(debug_temp.arena, debug_s); + debug_checksums = str8_list_first(&raw_checksums); + debug_strings = str8_list_first(&raw_strings); + } + line_matches_count = 0; + line_matches = cv_line_from_voff(debug_lines, reloc->apply_off, &line_matches_count); + } - if (line_matches) { - for EachIndex(i, line_matches_count) { - CV_Line line = line_matches[i]; - CV_C13Checksum checksum = {0}; - String8 file_name = {0}; - str8_deserial_read_struct(debug_checksums, line.file_off, &checksum); - str8_deserial_read_cstr(debug_strings, checksum.name_off, &file_name); - str8_list_pushf(scratch.arena, &supp_info, "%S: %S:%u", lnk_loc_from_obj(scratch.arena, obj), file_name, line.line_num); + if (line_matches) { + for EachIndex(i, line_matches_count) { + CV_Line line = line_matches[i]; + CV_C13Checksum checksum = {0}; + String8 file_name = {0}; + str8_deserial_read_struct(debug_checksums, line.file_off, &checksum); + str8_deserial_read_cstr(debug_strings, checksum.name_off, &file_name); + str8_list_pushf(scratch.arena, &supp_info, "%S: %S:%u", lnk_loc_from_obj(debug_temp.arena, obj), file_name, line.line_num); + } + } else { + str8_list_pushf(scratch.arena, &supp_info, "%S: %S(%llx)+%x", lnk_loc_from_obj(debug_temp.arena, obj), section_name, section_number, reloc->apply_off); } - } else { - str8_list_pushf(scratch.arena, &supp_info, "%S: %S(%llx)+%x", lnk_loc_from_obj(scratch.arena, obj), section_name, section_number, reloc->apply_off); } } } + + temp_end(debug_temp); } + next_undefined_symbol:; } - next_undefined_symbol:; + + lnk_error(LNK_Error_UnresolvedSymbol, "unresolved symbol %S", symbol->name); + lnk_supplement_error_list(supp_info); } - lnk_error(LNK_Error_UnresolvedSymbol, "unresolved symbol %S", symbol->name); - lnk_supplement_error_list(supp_info); + scratch_end(debug_scratch); } // TODO: /FORCE @@ -2144,6 +2420,18 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer config->infer_function_pad_min = 0; } + // + // fill out result + // + LNK_LinkResult result = {0}; + result.objs = link->objs; + result.libs = link->libs; + + // + // release link context + // + arena_release(link->arena); + // // log // @@ -2160,66 +2448,57 @@ lnk_link_image(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer scratch_end(scratch); ProfEnd(); - return link; + return result; } internal void -lnk_reloc_refs_list_push_node(LNK_RelocRefsList *list, LNK_RelocRefsNode *node) +lnk_reloc_ref_batch_list_push_node(LNK_RelocRefsBatchList *list, LNK_RelocRefsBatch *node) { - LNK_RelocRefsPointer old_head = list->head; + LNK_RelocRefsBatchPointer old_head = list->head; node->next = old_head.node; - list->head = (LNK_RelocRefsPointer){ .node = node, .tag = old_head.tag + 1 }; + list->head = (LNK_RelocRefsBatchPointer){ .node = node, .tag = old_head.tag + 1 }; } -internal LNK_RelocRefsNode * -lnk_reloc_refs_list_pop_node(LNK_RelocRefsList *list) +internal void +lnk_reloc_ref_batch_list_push(Arena *arena, LNK_RelocRefsBatchList *list, LNK_RelocRefs v) { - LNK_RelocRefsPointer old_head = list->head; + LNK_RelocRefsBatch *batch = list->head.node; + if (list->head.node == 0 || list->head.node->count >= ArrayCount(list->head.node->v)) { + batch = push_array(arena, LNK_RelocRefsBatch, 1); + lnk_reloc_ref_batch_list_push_node(list, batch); + } + batch->v[batch->count++] = v; +} + +internal LNK_RelocRefsBatch * +lnk_reloc_ref_batch_list_pop(LNK_RelocRefsBatchList *list) +{ + LNK_RelocRefsBatchPointer old_head = list->head; if (old_head.node) { - list->head = (LNK_RelocRefsPointer){ .node = old_head.node->next, .tag = old_head.tag + 1}; + list->head = (LNK_RelocRefsBatchPointer){ .node = old_head.node->next, .tag = old_head.tag + 1}; } return old_head.node; } -internal LNK_RelocRefsNode * -lnk_reloc_refs_list_push(Arena *arena, LNK_RelocRefsList *list, LNK_RelocRefs *v) +internal LNK_RelocRefsBatch * +lnk_reloc_ref_batch_list_pop_atomic(LNK_RelocRefsBatchList *list) { - LNK_RelocRefsNode *node = push_array(arena, LNK_RelocRefsNode, 1); - node->v = v; - lnk_reloc_refs_list_push_node(list, node); - return node; -} - -internal LNK_RelocRefsNode * -lnk_reloc_refs_list_pop_node_atomic(LNK_RelocRefsList *list) -{ - LNK_RelocRefsPointer old_head = { .node = ins_atomic_ptr_eval(&list->head.node), .tag = ins_atomic_u64_eval(&list->head.tag) }; + LNK_RelocRefsBatchPointer old_head = { .node = ins_atomic_ptr_eval(&list->head.node), .tag = ins_atomic_u64_eval(&list->head.tag) }; for (;;) { if (old_head.node == 0) { break; } - LNK_RelocRefsPointer new_head = { .node = old_head.node->next, .tag = old_head.tag + 1 }; + LNK_RelocRefsBatchPointer new_head = { .node = old_head.node->next, .tag = old_head.tag + 1 }; if (ins_atomic_u128_eval_cond_assign(&list->head, &new_head, &old_head)) { break; } } return old_head.node; } internal void -lnk_reloc_refs_list_push_node_atomic(LNK_RelocRefsList *list, LNK_RelocRefsNode *node) +lnk_reloc_ref_batch_list_concat_in_place_atomic(LNK_RelocRefsBatchList *list, LNK_RelocRefsBatch *first, LNK_RelocRefsBatch *last) { - LNK_RelocRefsPointer old_head = { .node = ins_atomic_ptr_eval(&list->head.node), .tag = ins_atomic_u64_eval(&list->head.tag) }; - for (;;) { - node->next = old_head.node; - LNK_RelocRefsPointer new_head = { .node = node, .tag = old_head.tag + 1 }; - if (ins_atomic_u128_eval_cond_assign(&list->head, &new_head, &old_head)) { break; } - } -} - -internal void -lnk_reloc_refs_list_concat_in_place(LNK_RelocRefsList *list, LNK_RelocRefsNode *first, LNK_RelocRefsNode *last) -{ - LNK_RelocRefsPointer old_head = { .node = ins_atomic_ptr_eval(&list->head.node), .tag = ins_atomic_u64_eval(&list->head.tag) }; + LNK_RelocRefsBatchPointer old_head = { .node = ins_atomic_ptr_eval(&list->head.node), .tag = ins_atomic_u64_eval(&list->head.tag) }; for (;;) { last->next = old_head.node; - LNK_RelocRefsPointer new_head = { .node = first, .tag = old_head.tag + 1 }; + LNK_RelocRefsBatchPointer new_head = { .node = first, .tag = old_head.tag + 1 }; if (ins_atomic_u128_eval_cond_assign(&list->head, &new_head, &old_head)) { break; } } } @@ -2228,133 +2507,288 @@ internal THREAD_POOL_TASK_FUNC(lnk_walk_relocs_and_mark_ref_sections_task) { ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); + + Temp scratch = scratch_begin(0,0); + Temp scratch2 = scratch_begin(&scratch.arena, 1); LNK_OptRefTask *task = raw_task; LNK_SymbolTable *symtab = task->symtab; + LNK_Config *config = task->config; + LNK_ObjList objs = task->objs; - LNK_RelocRefsList free_list = {0}; + U8 **is_live = 0; + U64 *active_thread_count = 0; + LNK_RelocRefsBatchList *global_batch_list = 0; + if (task_id == 0) { + active_thread_count = push_array(scratch.arena, U64, 1); + global_batch_list = push_array(scratch.arena, LNK_RelocRefsBatchList, 1); + + // alloc live flags and set live status on every non-COMDAT section + is_live = push_array_no_zero(scratch.arena, U8 *, objs.count); + { + U64 obj_idx = 0; + for EachNode(n, LNK_ObjNode, task->objs.first) { + is_live[obj_idx] = push_array(scratch.arena, U8, n->data.header.section_count_no_null + 1); + + for EachIndex(sect_idx, n->data.header.section_count_no_null) { + is_live[obj_idx][sect_idx + 1] = !(n->data.section_flags[sect_idx] & COFF_SectionFlag_LnkCOMDAT); + } + + obj_idx += 1; + } + } + + // define roots + { + // tls + LNK_Symbol *tls_symbol = lnk_symbol_table_searchf(symtab, MSCRT_TLS_SYMBOL_NAME); + if (tls_symbol) { + lnk_include_symbol(config, str8_lit(MSCRT_TLS_SYMBOL_NAME), 0); + } + + // push tasks for each root symbol + for EachNode(root_n, LNK_IncludeSymbolNode, config->include_symbol_list.first) { + LNK_Symbol *root = lnk_symbol_table_search(symtab, root_n->v.name); + LNK_ObjSymbolRef root_ref = lnk_ref_from_symbol(root); + + LNK_RelocRefs r = {0}; + r.obj = root_ref.obj; + r.relocs.count = 1; + r.relocs.v = push_array(scratch.arena, COFF_Reloc, 1); + r.relocs.v[0].isymbol = root_ref.symbol_idx; + + lnk_reloc_ref_batch_list_push(scratch.arena, global_batch_list, r); + } + + // push task for every non-COMDAT section + for EachNode(obj_n, LNK_ObjNode, objs.first) { + LNK_Obj *obj = &obj_n->data; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + U32 section_number = sect_idx+1; + COFF_SectionFlags section_flags = obj->section_flags[sect_idx]; + + // is section eligible for walking? + if (section_flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_flags & COFF_SectionFlag_LnkCOMDAT) { continue; } + if (section_flags & COFF_SectionFlag_LnkInfo) { continue; } + if (section_flags & LNK_SECTION_FLAG_DEBUG) { continue; } + + // divide relocs and push task for each reloc block + COFF_RelocArray relocs = lnk_coff_reloc_info_from_section_number(obj, section_number); + U64 relocs_per_batch = 1000; + U64 new_task_count = CeilIntegerDiv(relocs.count, relocs_per_batch); + for EachIndex(new_task_idx, new_task_count) { + LNK_RelocRefs r = {0}; + r.obj = obj; + r.relocs.count = Min(relocs_per_batch, relocs.count - (new_task_idx * relocs_per_batch)); + r.relocs.v = relocs.v + (new_task_idx * relocs_per_batch); + lnk_reloc_ref_batch_list_push(scratch.arena, global_batch_list, r); + } + } + } + } + } + tp_broadcast(&is_live); + tp_broadcast(&global_batch_list); + tp_broadcast(&active_thread_count); + + LNK_RelocRefsBatchList free_list = {0}; for (;;) { // update active thread count - ins_atomic_u32_inc_eval(&task->active_thread_count); + ins_atomic_u32_inc_eval(active_thread_count); for (;;) { - // pop head node - LNK_RelocRefsNode *node = lnk_reloc_refs_list_pop_node_atomic(task->reloc_refs); - if (!node) { break; } + // pop batch + LNK_RelocRefsBatch *batch = lnk_reloc_ref_batch_list_pop_atomic(global_batch_list); + if (!batch) { break; } - LNK_RelocRefs *reloc_refs = node->v; + // walk batch relocations + LNK_RelocRefsBatch *first_batch = 0, *last_batch = 0; + for EachIndex(i, batch->count) { + for EachIndex(reloc_idx, batch->v[i].relocs.count) { + COFF_Reloc *reloc = &batch->v[i].relocs.v[reloc_idx]; - LNK_RelocRefsNode *first_node = 0, *last_node = 0; - for EachIndex(reloc_idx, reloc_refs->relocs.count) { - COFF_Reloc *reloc = &reloc_refs->relocs.v[reloc_idx]; - LNK_ObjSymbolRef reloc_defn = (LNK_ObjSymbolRef){ .obj = reloc_refs->obj, .symbol_idx = reloc->isymbol }; - COFF_ParsedSymbol reloc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(reloc_defn.obj, reloc_defn.symbol_idx); - COFF_SymbolValueInterpType reloc_interp = coff_interp_from_parsed_symbol(reloc_parsed); + // reloc -> symbol + LNK_ObjSymbolRef ref_symbol = (LNK_ObjSymbolRef){ .obj = batch->v[i].obj, .symbol_idx = reloc->isymbol }; + { + Temp temp = temp_begin(scratch2.arena); + HashMap seen_hm = {0}; + B32 keep_walking = 1; + do { + // detect cyclic chains + U64 symbol_key = ((U64)ref_symbol.obj->input_idx << 32ull) | (U64)ref_symbol.symbol_idx; + if (hash_map_search_u64_u64(&seen_hm, symbol_key) == 0) { + hash_map_push_u64_u64(temp.arena, &seen_hm, symbol_key, 1); + } else { + COFF_ParsedSymbol reloc_parsed = lnk_parsed_symbol_from_coff_symbol_idx(batch->v[i].obj, reloc->isymbol); + lnk_error_obj(LNK_Warning_CyclicSymbol, batch->v[i].obj, "symbol %S forms a cyclic chain (/OPT:REF)", reloc_parsed.name); + MemoryZeroStruct(&ref_symbol); + break; + } - LNK_ObjSymbolRef ref_symbol = reloc_defn; - for (;;) { - COFF_ParsedSymbol ref_parsed = lnk_parsed_symbol_from_coff_symbol_idx(ref_symbol.obj, ref_symbol.symbol_idx); - COFF_SymbolValueInterpType ref_interp = coff_interp_from_parsed_symbol(ref_parsed); + // unpack symbol + COFF_ParsedSymbol ref_parsed = lnk_parsed_symbol_from_coff_symbol_idx(ref_symbol.obj, ref_symbol.symbol_idx); + COFF_SymbolValueInterpType ref_interp = coff_interp_from_parsed_symbol(ref_parsed); + + // resolve symbol + LNK_ObjSymbolRef next_ref = {0}; + if (lnk_resolve_symbol(symtab, ref_symbol, &next_ref)) { + keep_walking = (ref_interp == COFF_SymbolValueInterp_Weak || ref_interp == COFF_SymbolValueInterp_Undefined); + ref_symbol = next_ref; + } else { + keep_walking = 0; + } + } while (keep_walking); + temp_end(temp); + } + + // skip unresolved symbol + if (ref_symbol.obj == 0) { continue; } + + // unpack resolved symbol + COFF_ParsedSymbol ref_parsed = lnk_parsed_symbol_from_coff_symbol_idx(ref_symbol.obj, ref_symbol.symbol_idx); + COFF_SymbolValueInterpType ref_interp = coff_interp_from_parsed_symbol(ref_parsed); - LNK_ObjSymbolRef next_ref = {0}; if (ref_interp == COFF_SymbolValueInterp_Regular) { - LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(ref_symbol.obj, ref_parsed.section_number); - if (symlink) { - ref_symbol = lnk_ref_from_symbol(symlink); - } - break; - } else if (ref_interp == COFF_SymbolValueInterp_Undefined) { - if (reloc_parsed.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, ref_parsed.name); - next_ref = lnk_ref_from_symbol(defn); - } else { - MemoryZeroStruct(&ref_symbol); - break; - } - } else if (ref_interp == COFF_SymbolValueInterp_Weak) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, ref_parsed.name); - next_ref = lnk_ref_from_symbol(defn); - } else { - break; - } + Temp temp = temp_begin(scratch2.arena); - if (MemoryMatchStruct(&next_ref, &ref_symbol)) { - MemoryZeroStruct(&ref_symbol); - break; - } - ref_symbol = next_ref; - } + HashMap visited_sections_hm = {0}; + U32Node *stack = push_array(temp.arena, U32Node, 1); + stack->data = ref_parsed.section_number; + do { + U32 section_number = stack->data; + SLLStackPop(stack); - // skip unresolved symbol - if (ref_symbol.obj == 0) { continue; } + // is section number valid? + if (section_number == 0 || section_number > ref_symbol.obj->header.section_count_no_null) { continue; } - COFF_ParsedSymbol ref_parsed = lnk_parsed_symbol_from_coff_symbol_idx(ref_symbol.obj, ref_symbol.symbol_idx); - COFF_SymbolValueInterpType ref_interp = coff_interp_from_parsed_symbol(ref_parsed); - LNK_Obj *ref_obj = ref_symbol.obj; + // detect cyclic associative sections + if (hash_map_search_u64_u64(&visited_sections_hm, section_number)) { continue; } + hash_map_push_u64_u64(temp.arena, &visited_sections_hm, section_number, 1); - if (ref_interp == COFF_SymbolValueInterp_Regular) { - // make section number list (reloc section + associates) - U32Node *section_number_list = push_array(scratch.arena, U32Node, 1); - section_number_list->data = ref_parsed.section_number; - section_number_list->next = ref_obj->associated_sections[ref_parsed.section_number]; + // push associated section + for EachNode(associated_n, U32Node, ref_symbol.obj->associated_sections[section_number]) { + if (hash_map_search_u64_u64(&visited_sections_hm, associated_n->data)) { continue; } + U32Node *stack_n = push_array(temp.arena, U32Node, 1); + stack_n->data = associated_n->data; + SLLStackPush(stack, stack_n); + } - // push section headers relocations to the task stack - for EachNode(section_number_n, U32Node, section_number_list) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(ref_obj, section_number_n->data); + COFF_SectionFlags section_flags = ref_symbol.obj->section_flags[section_number-1]; - // is section eligible for walking? - if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - if (section_header->flags & COFF_SectionFlag_LnkInfo) { continue; } - if (section_header->flags & LNK_SECTION_FLAG_DEBUG) { continue; } - if (section_header->flags & LNK_SECTION_FLAG_LIVE) { continue; } + // on first section visit, set live flag and enqueue section + U8 was_visited = ins_atomic_u8_eval_assign(&is_live[ref_symbol.obj->input_idx][section_number], 1); + if (was_visited) { continue; } - // mark section live - section_header->flags |= LNK_SECTION_FLAG_LIVE; + // is section eligible for walking? + if (section_flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_flags & COFF_SectionFlag_LnkInfo) { continue; } + if (section_flags & LNK_SECTION_FLAG_DEBUG) { continue; } - LNK_RelocRefsNode *node; - if (free_list.head.node) { - node = lnk_reloc_refs_list_pop_node(&free_list); - } else { - node = push_array(scratch.arena, LNK_RelocRefsNode, 1); - node->v = push_array(scratch.arena, LNK_RelocRefs, 1); - } + LNK_RelocRefs refs = {0}; + refs.obj = ref_symbol.obj; + refs.relocs = lnk_coff_reloc_info_from_section_number(ref_symbol.obj, section_number); - node->v->obj = ref_obj; - node->v->relocs = lnk_coff_reloc_info_from_section_number(ref_obj, section_number_n->data); + // get a batch node + LNK_RelocRefsBatch *batch = last_batch; + if (last_batch == 0 || last_batch->count >= ArrayCount(last_batch->v)) { + if (free_list.head.node) { + batch = lnk_reloc_ref_batch_list_pop(&free_list); + MemoryZeroStruct(batch); + } else { + batch = push_array(scratch.arena, LNK_RelocRefsBatch, 1); + } + SLLQueuePush(first_batch, last_batch, batch); + } - if (first_node == 0) { - first_node = node; - last_node = node; - } else { - node->next = first_node; - first_node = node; - } + batch->v[batch->count++] = refs; + + } while (stack); + + temp_end(temp); } } } - lnk_reloc_refs_list_push_node(&free_list, node); - - if (first_node && last_node) { - lnk_reloc_refs_list_concat_in_place(task->reloc_refs, first_node, last_node); + // queue new walks + if (first_batch && last_batch) { + lnk_reloc_ref_batch_list_concat_in_place_atomic(global_batch_list, first_batch, last_batch); } + + // put batch on the free list + lnk_reloc_ref_batch_list_push_node(&free_list, batch); } // are all threads done walking? - U32 active_thread_count = ins_atomic_u32_dec_eval(&task->active_thread_count); - if (active_thread_count == 0 && ins_atomic_ptr_eval(&task->reloc_refs->head.node) == 0) { - break; + { + U32 c = ins_atomic_u32_dec_eval(active_thread_count); + if (c == 0 && ins_atomic_ptr_eval(&global_batch_list->head.node) == 0) { + break; + } } // comprehensive solution to the waiting problem - for (; ins_atomic_ptr_eval(&task->reloc_refs->head.node) == 0; ) { + for (; ins_atomic_ptr_eval(&global_batch_list->head.node) == 0; ) { // was signaled to exit? - if (ins_atomic_u64_eval(&task->active_thread_count) == 0) { goto exit; } + if (ins_atomic_u32_eval(active_thread_count) == 0) { goto exit; } } } exit:; + barrier_wait(tp->barrier); + // TODO: thread + if (task_id == 0) { + ProfBegin("Remove Unreachable Sections"); + + typedef struct { U64 vsize; U64 fsize; U64 section_count; } Stat; + enum { Stat_Null, Stat_Code, Stat_Data, Stat_Debug, Stat_Count }; + Stat stats[Stat_Count] = {0}; + + for EachNode(obj_n, LNK_ObjNode, objs.first) { + LNK_Obj *obj = &obj_n->data; + + for EachIndex(sect_idx, obj->header.section_count_no_null) { + U32 section_number = sect_idx+1; + if (is_live[obj->input_idx][section_number]) { continue; } + + COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); + obj->section_flags[sect_idx] |= COFF_SectionFlag_LnkRemove; + COFF_SectionFlags section_flags = obj->section_flags[sect_idx]; + + U64 stat_kind = Stat_Null; + if (section_flags & LNK_SECTION_FLAG_DEBUG) { stat_kind = Stat_Debug; } + else if (section_flags & COFF_SectionFlag_CntCode) { stat_kind = Stat_Code; } + else { stat_kind = Stat_Data; } + + if (section_flags & COFF_SectionFlag_CntUninitializedData) { + stats[stat_kind].vsize += section_header->vsize; + } else { + stats[stat_kind].fsize += section_header->fsize; + } + stats[stat_kind].section_count += 1; + } + } + + if (lnk_get_log_status(LNK_Log_Debug)) { + U64 total_fsize = 0, total_section_count = 0; + for EachElement(i, stats) { + total_fsize += stats[i].fsize; + total_section_count += stats[i].section_count; + } + String8List stat_list = {0}; + str8_list_pushf(scratch.arena, &stat_list, "Code : %M, %S sections", stats[Stat_Code].fsize, str8_from_count(scratch.arena, stats[Stat_Code].section_count )); + str8_list_pushf(scratch.arena, &stat_list, "Data : %M, %S sections", stats[Stat_Data].fsize, str8_from_count(scratch.arena, stats[Stat_Data].section_count )); + str8_list_pushf(scratch.arena, &stat_list, "Debug: %M, %S sections", stats[Stat_Debug].fsize, str8_from_count(scratch.arena, stats[Stat_Debug].section_count)); + str8_list_pushf(scratch.arena, &stat_list, "Total: %M, %S sections", total_fsize, str8_from_count(scratch.arena, total_section_count)); + String8 stat_str = str8_list_join(scratch.arena, &stat_list, &(StringJoin){.pre = str8_lit(" "), .sep = str8_lit("\n ")}); + lnk_log(LNK_Log_Debug, "/OPT:REF Stats:\n%S", stat_str); + } + + ProfEnd(); + } + barrier_wait(tp->barrier); + + scratch_end(scratch2); scratch_end(scratch); ProfEnd(); } @@ -2362,161 +2796,12 @@ THREAD_POOL_TASK_FUNC(lnk_walk_relocs_and_mark_ref_sections_task) internal void lnk_opt_ref(TP_Context *tp, LNK_SymbolTable *symtab, LNK_Config *config, LNK_ObjList objs) { - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_RelocRefsList reloc_refs = {0}; - - // - // reset live flag on sections - // - for EachNode(obj_n, LNK_ObjNode, objs.first) { - for EachIndex(sect_idx, obj_n->data.header.section_count_no_null) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(&obj_n->data, sect_idx+1); - section_header->flags &= ~LNK_SECTION_FLAG_LIVE; - } - } - - // - // define roots - // - { - // tls - LNK_Symbol *tls_symbol = lnk_symbol_table_searchf(symtab, MSCRT_TLS_SYMBOL_NAME); - if (tls_symbol) { - lnk_include_symbol(config, str8_lit(MSCRT_TLS_SYMBOL_NAME), 0); - } - - // push tasks for each root symbol - for EachNode(root_n, LNK_IncludeSymbolNode, config->include_symbol_list.first) { - LNK_Symbol *root = lnk_symbol_table_search(symtab, root_n->v.name); - LNK_ObjSymbolRef root_ref = lnk_ref_from_symbol(root); - - LNK_RelocRefs *r = push_array(scratch.arena, LNK_RelocRefs, 1); - r->obj = root_ref.obj; - r->relocs.count = 1; - r->relocs.v = push_array(scratch.arena, COFF_Reloc, 1); - r->relocs.v[0].isymbol = root_ref.symbol_idx; - - lnk_reloc_refs_list_push(scratch.arena, &reloc_refs, r); - } - - // push task for every non-COMDAT section - for EachNode(obj_n, LNK_ObjNode, objs.first) { - LNK_Obj *obj = &obj_n->data; - for EachIndex(sect_idx, obj->header.section_count_no_null) { - U32 section_number = sect_idx+1; - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); - - // is section eligible for walking? - if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - if (section_header->flags & COFF_SectionFlag_LnkCOMDAT) { continue; } - if (section_header->flags & COFF_SectionFlag_LnkInfo) { continue; } - if (section_header->flags & LNK_SECTION_FLAG_DEBUG) { continue; } - - // divide relocs and push task for each reloc block - COFF_RelocArray relocs = lnk_coff_reloc_info_from_section_number(obj, section_number); - U64 new_task_count = CeilIntegerDiv(relocs.count, LNK_RELOCS_PER_TASK); - LNK_RelocRefs *new_tasks = push_array(scratch.arena, LNK_RelocRefs, new_task_count); - for EachIndex(new_task_idx, new_task_count) { - LNK_RelocRefs *r = new_tasks + new_task_idx; - r->obj = obj; - r->relocs.count = Min(LNK_RELOCS_PER_TASK, relocs.count - (new_task_idx * LNK_RELOCS_PER_TASK)); - r->relocs.v = relocs.v + (new_task_idx * LNK_RELOCS_PER_TASK); - - lnk_reloc_refs_list_push(scratch.arena, &reloc_refs, r); - } - } - } - } - - // - // walk relocations and mark referenced sections with live flag - // - LNK_OptRefTask task = {0}; - task.symtab = symtab; - task.reloc_refs = &reloc_refs; - tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_walk_relocs_and_mark_ref_sections_task, &task, "Mark Live Sections"); - - ProfBegin("Remove Unreachable Sections"); - for EachNode(obj_n, LNK_ObjNode, objs.first) { - LNK_Obj *obj = &obj_n->data; - - for EachIndex(sect_idx, obj->header.section_count_no_null) { - U32 section_number = sect_idx+1; - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); - - if (section_header->flags & LNK_SECTION_FLAG_DEBUG) { continue; } - - // remove unreferenced sections - if (~section_header->flags & LNK_SECTION_FLAG_LIVE && section_header->flags & COFF_SectionFlag_LnkCOMDAT) { - section_header->flags |= COFF_SectionFlag_LnkRemove; - } - - // remove associated sections - if (section_header->flags & COFF_SectionFlag_LnkRemove) { - for EachNode(section_number_n, U32Node, obj->associated_sections[section_number]) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number_n->data); - section_header->flags |= COFF_SectionFlag_LnkRemove; - } - } - - // TODO: Reset reserved flag so it does not get propagated to the image sections. - // We need to mask out reserved flags when gathering section definitions to actually - // prevent propagation. - section_header->flags &= ~LNK_SECTION_FLAG_LIVE; - } - } - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); -} - -internal B32 -lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_ObjSymbolRef symbol, LNK_ObjSymbolRef *symbol_out) -{ - B32 is_resolved = 1; - COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); - COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); - switch (symbol_interp) { - case COFF_SymbolValueInterp_Regular: { - LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(symbol.obj, symbol_parsed.section_number); - *symbol_out = symlink ? lnk_ref_from_symbol(symlink) : symbol; - } break; - case COFF_SymbolValueInterp_Weak: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); - COFF_ParsedSymbol defn_parsed = lnk_parsed_from_symbol(defn); - COFF_SymbolValueInterpType defn_interp = lnk_interp_from_symbol(defn); - if (defn_interp != COFF_SymbolValueInterp_Undefined) { - *symbol_out = lnk_ref_from_symbol(defn); - } else { - is_resolved = 0; - } - } break; - case COFF_SymbolValueInterp_Undefined: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); - if (defn) { - *symbol_out = lnk_ref_from_symbol(defn); - } else { - is_resolved = 0; - } - } break; - case COFF_SymbolValueInterp_Common: { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); - *symbol_out = lnk_ref_from_symbol(defn); - } break; - case COFF_SymbolValueInterp_Abs: { - if (symbol_parsed.storage_class == COFF_SymStorageClass_External) { - LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); - *symbol_out = lnk_ref_from_symbol(defn); - } else { - *symbol_out = symbol; - } - } break; - case COFF_SymbolValueInterp_Debug: { *symbol_out = symbol; } break; - } - return is_resolved; + ProfScope("Mark Live Sections") + tp_for_parallel(tp, + 0, + tp->worker_count, + lnk_walk_relocs_and_mark_ref_sections_task, + &(LNK_OptRefTask){ .symtab = symtab, .config = config, .objs = objs }); } internal @@ -2534,13 +2819,14 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_definitions_task) for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + COFF_SectionFlags sect_flags = obj->section_flags[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove && ~sect_header->flags & COFF_SectionFlag_LnkInfo && sect_header->fsize > 0) { + if (~sect_flags & COFF_SectionFlag_LnkRemove && ~sect_flags & COFF_SectionFlag_LnkInfo && sect_header->fsize > 0) { Temp temp = temp_begin(scratch.arena); // was section defined? String8 sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_flags & ~COFF_SectionFlags_LnkFlags); LNK_SectionDefinition *sect_defn = hash_table_search_string_raw(sect_defn_ht, sect_name_with_flags); // push new section definition @@ -2549,7 +2835,7 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_definitions_task) sect_defn->name = sect_name; sect_defn->obj = obj; sect_defn->obj_sect_idx = sect_idx; - sect_defn->flags = sect_header->flags & ~COFF_SectionFlags_LnkFlags; + sect_defn->flags = sect_flags & ~COFF_SectionFlags_LnkFlags; sect_name_with_flags = push_str8_copy(arena, sect_name_with_flags); hash_table_push_string_raw(arena, sect_defn_ht, sect_name_with_flags, sect_defn); @@ -2581,25 +2867,26 @@ THREAD_POOL_TASK_FUNC(lnk_gather_section_contribs_task) for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { LNK_SectionContrib *sc = task->null_sc; COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove && ~sect_header->flags & COFF_SectionFlag_LnkInfo && sect_header->fsize > 0) { + COFF_SectionFlags sect_flags = obj->section_flags[sect_idx]; + if (~sect_flags & COFF_SectionFlag_LnkRemove && ~sect_flags & COFF_SectionFlag_LnkInfo && sect_header->fsize > 0) { LNK_SectionContribChunk *sc_chunk = 0; { Temp temp = temp_begin(scratch.arena); String8 sect_name = coff_name_from_section_header(string_table, sect_header); - String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_header->flags & ~COFF_SectionFlags_LnkFlags); + String8 sect_name_with_flags = lnk_make_name_with_flags(temp.arena, sect_name, sect_flags & ~COFF_SectionFlags_LnkFlags); sc_chunk = hash_table_search_string_raw(task->contribs_ht, sect_name_with_flags); temp_end(temp); } if (sc_chunk) { String8 data; - if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + if (sect_flags & COFF_SectionFlag_CntUninitializedData) { data = str8(0, sect_header->fsize); } else { data = str8_substr(obj->data, rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize)); } - U16 sc_align = coff_align_size_from_section_flags(sect_header->flags); + U16 sc_align = coff_align_size_from_section_flags(sect_flags); sc = lnk_section_contrib_chunk_push_atomic(sc_chunk, 1); sc->first_data_node.next = 0; sc->first_data_node.string = data; @@ -2627,8 +2914,7 @@ THREAD_POOL_TASK_FUNC(lnk_set_comdat_leaders_contribs_task) for EachIndex(sect_idx, obj->header.section_count_no_null) { U64 section_number = sect_idx+1; - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); - if (~section_header->flags & COFF_SectionFlag_LnkCOMDAT) { continue; } + if (~obj->section_flags[sect_idx] & COFF_SectionFlag_LnkCOMDAT) { continue; } LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(obj, section_number); if (symlink == 0) { continue; } @@ -2652,8 +2938,7 @@ THREAD_POOL_TASK_FUNC(lnk_flag_debug_symbols_task) symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (section_header->flags & LNK_SECTION_FLAG_DEBUG) { + if (obj->section_flags[symbol.section_number-1] & LNK_SECTION_FLAG_DEBUG) { task->u.patch_symtabs.was_symbol_patched[obj_idx][symbol_idx] = 1; } } @@ -2994,13 +3279,14 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) for EachIndex(sect_idx, obj_header.section_count_no_null) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; + COFF_SectionFlags section_flags = obj->section_flags[sect_idx]; - if (section_header->flags & COFF_SectionFlag_LnkInfo) { continue; } - if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - if (section_header->flags & COFF_SectionFlag_CntUninitializedData) { continue; } + if (section_flags & COFF_SectionFlag_LnkInfo) { continue; } + if (section_flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_flags & COFF_SectionFlag_CntUninitializedData) { continue; } // get section bytes (special case debug info because it is not copied to the image) - String8 data = section_header->flags & LNK_SECTION_FLAG_DEBUG ? obj->data : task->image_data; + String8 data = section_flags & LNK_SECTION_FLAG_DEBUG ? obj->data : task->image_data; Rng1U64 section_frange = rng_1u64(section_header->foff, section_header->foff + section_header->fsize); String8 section_data = str8_substr(data, section_frange); @@ -3031,7 +3317,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_reloc_patcher) COFF_SymbolValueInterpType interp = coff_interp_from_parsed_symbol(symbol); if (interp == COFF_SymbolValueInterp_Regular) { if (symbol.section_number == lnk_obj_get_removed_section_number(obj)) { - if (~section_header->flags & LNK_SECTION_FLAG_DEBUG) { + if (~section_flags & LNK_SECTION_FLAG_DEBUG) { String8 sect_name = coff_name_from_section_header(string_table, §ion_table[sect_idx]); lnk_error_obj(LNK_Error_RelocationAgainstRemovedSection, obj, "relocating against symbol that is in a removed section (symbol: %S, reloc-section: %S 0x%llx, reloc-index: 0x%llx)", symbol.name, sect_name, sect_idx+1, reloc_idx); } @@ -3145,10 +3431,9 @@ THREAD_POOL_TASK_FUNC(lnk_flag_hotpatch_contribs_task) symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular && COFF_SymbolType_IsFunc(symbol.type)) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); LNK_SectionContrib *sc = task->sect_map[obj_idx][symbol.section_number-1]; if (sc != task->null_sc) { - sc->hotpatch = !!(section_header->flags & COFF_SectionFlag_CntCode); + sc->hotpatch = !!(obj->section_flags[symbol.section_number-1] & COFF_SectionFlag_CntCode); } } } @@ -3512,7 +3797,7 @@ THREAD_POOL_TASK_FUNC(lnk_patch_virtual_offsets_and_sizes_in_obj_section_headers COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (~sect_header->flags & COFF_SectionFlag_LnkRemove) { + if (~obj->section_flags[sect_idx] & COFF_SectionFlag_LnkRemove) { LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; sect_header->vsize = lnk_size_from_section_contrib(sc); @@ -3533,8 +3818,9 @@ THREAD_POOL_TASK_FUNC(lnk_patch_file_offsets_and_sizes_in_obj_section_headers_ta COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - B32 patch_section_header = (~sect_header->flags & COFF_SectionFlag_LnkRemove) && - (~sect_header->flags & LNK_SECTION_FLAG_DEBUG); + COFF_SectionFlags sect_flags = obj->section_flags[sect_idx]; + B32 patch_section_header = (~sect_flags & COFF_SectionFlag_LnkRemove) && + (~sect_flags & LNK_SECTION_FLAG_DEBUG); if (patch_section_header) { LNK_SectionContrib *sc = task->sect_map[obj_idx][sect_idx]; LNK_Section *sect = task->image_sects.v[sc->u.sect_idx]; @@ -3561,8 +3847,27 @@ THREAD_POOL_TASK_FUNC(lnk_patch_section_symbols_task) COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Undefined) { if (symbol.storage_class == COFF_SymStorageClass_Section) { + B32 is_referenced = 0; + COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); + for EachIndex(sect_idx, obj->header.section_count_no_null) { + COFF_SectionHeader *section_header = §ion_table[sect_idx]; + COFF_SectionFlags section_flags = obj->section_flags[sect_idx]; + if (section_flags & COFF_SectionFlag_LnkRemove) { continue; } + if (section_flags & COFF_SectionFlag_LnkInfo) { continue; } + if (section_flags & LNK_SECTION_FLAG_DEBUG) { continue; } + COFF_RelocArray relocs = lnk_coff_relocs_from_section_header(obj, section_header); + for EachIndex(reloc_idx, relocs.count) { + if (relocs.v[reloc_idx].isymbol == symbol_idx) { + is_referenced = 1; + break; + } + } + if (is_referenced) { break; } + } + if (!is_referenced) { continue; } + LNK_Section *sect = lnk_section_table_search(task->sectab, symbol.name, symbol.value); - if (sect) { + if (sect && (~sect->flags & COFF_SectionFlag_LnkRemove)) { if (~sect->flags & COFF_SectionFlag_MemDiscardable) { LNK_SectionContrib *first_sc = lnk_get_first_section_contrib(sect); if (obj->header.is_big_obj) { @@ -3580,7 +3885,32 @@ THREAD_POOL_TASK_FUNC(lnk_patch_section_symbols_task) lnk_error_obj(LNK_Error_SectRefsDiscardedMemory, obj, "symbol %S (No. 0x%llx) references section with discard flag", symbol.name, symbol_idx); } } else { - lnk_error_obj(LNK_Error_UnresolvedSymbol, obj, "undefined section symbol %S (No 0x%llx) refers to an image section that doesn't exist", symbol.name, symbol_idx); + U64 fallback_voff = 0; + U64 fallback_align = Max(task->sect_align, KB(4)); + for EachIndex(sect_idx, task->image_sects.count) { + LNK_Section *image_sect = task->image_sects.v[sect_idx]; + U64 image_sect_size = AlignPow2(Max(image_sect->vsize, image_sect->fsize), fallback_align); + if (image_sect_size == 0) { image_sect_size = fallback_align; } + fallback_voff = Max(fallback_voff, image_sect->voff + image_sect_size); + } + fallback_voff = AlignPow2(fallback_voff, fallback_align); + + LNK_Section *fallback_sect = task->image_sects.v[task->image_sects.count-1]; + U32 fallback_section_number = safe_cast_u32(fallback_sect->sect_idx + 1); + U32 fallback_section_offset = safe_cast_u32(fallback_voff - fallback_sect->voff); + if (obj->header.is_big_obj) { + COFF_Symbol32 *symbol32 = symbol.raw_symbol; + symbol32->section_number = fallback_section_number; + symbol32->value = fallback_section_offset; + symbol32->storage_class = COFF_SymStorageClass_Static; + } else { + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = safe_cast_u16(fallback_section_number); + symbol16->value = fallback_section_offset; + symbol16->storage_class = COFF_SymStorageClass_Static; + } + + lnk_error_obj(LNK_Warning_UndefinedSectionSymbol, obj, "undefined section symbol %S (No. 0x%llx) refers to an image section that doesn't exist; patching to %#llx", symbol.name, symbol_idx, fallback_voff); } } } @@ -3600,7 +3930,7 @@ THREAD_POOL_TASK_FUNC(lnk_gather_base_reloc_pages_task) ProfBeginV("%S", obj->path); for EachIndex(sect_idx, obj->header.section_count_no_null) { COFF_SectionHeader *sect_header = §_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (obj->section_flags[sect_idx] & COFF_SectionFlag_LnkRemove) { continue; } COFF_RelocArray relocs = lnk_coff_relocs_from_section_header(obj, sect_header); for EachIndex(reloc_idx, relocs.count) { @@ -3650,44 +3980,59 @@ THREAD_POOL_TASK_FUNC(lnk_gather_base_reloc_pages_task) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_filter_out_duplicate_base_reloc_entries_task) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(0, 0); + + LNK_BaseRelocsTask *task = raw_task; + + HashTable *voff_ht = hash_table_init(scratch.arena, task->page_size); + for EachInRange(page_idx, task->serialize.ranges[task_id]) { + LNK_BaseRelocPage *page = &task->serialize.pages.v[page_idx]; + + U64List unique_entries32 = {0}; + U64List unique_entries64 = {0}; + + // filter out duplicate 32-bit virtual offsets + for (U64Node *curr = page->entries_addr32->first, *next; curr != 0; curr = next) { + next = curr->next; + if (hash_table_search_u64(voff_ht, curr->data)) { continue; } + hash_table_push_u64_u64(scratch.arena, voff_ht, curr->data, 0); + u64_list_push_node(&unique_entries32, curr); + } + + // filter out duplicate 64-bit virtual offsets + for (U64Node *curr = page->entries_addr64->first, *next; curr != 0; curr = next) { + next = curr->next; + if (hash_table_search_u64(voff_ht, curr->data)) { continue; } + hash_table_push_u64_u64(scratch.arena, voff_ht, curr->data, 0); + u64_list_push_node(&unique_entries64, curr); + } + + *page->entries_addr32 = unique_entries32; + *page->entries_addr64 = unique_entries64; + + // purge hash table for the next run + hash_table_purge(voff_ht); + } + + scratch_end(scratch); + ProfEnd(); +} + internal THREAD_POOL_TASK_FUNC(lnk_serialize_base_reloc_pages_task) { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); - LNK_BaseRelocsTask *task = raw_task; - HashTable *voff_ht = hash_table_init(scratch.arena, task->page_size); - - U64 voffs_max = task->page_size; - U32 *voffs32 = push_array(scratch.arena, U32, voffs_max); - U64 *voffs64 = push_array(scratch.arena, U64, voffs_max); + LNK_BaseRelocsTask *task = raw_task; for EachInRange(page_idx, task->serialize.ranges[task_id]) { LNK_BaseRelocPage *page = &task->serialize.pages.v[page_idx]; - // filter out duplicate 32-bit virtual offsets - U64 voff_count32 = 0; - for EachNode(voff_n, U64Node, page->entries_addr32->first) { - if (hash_table_search_u64(voff_ht, voff_n->data)) { continue; } - hash_table_push_u64_u64(scratch.arena, voff_ht, voff_n->data, 0); - voffs32[voff_count32] = voff_n->data; - voff_count32 += 1; - } - - // filter out duplicate 64-bit virtual offsets - U64 voff_count64 = 0; - for EachNode(voff_n, U64Node, page->entries_addr64->first) { - if (hash_table_search_u64(voff_ht, voff_n->data)) { continue; } - hash_table_push_u64_u64(scratch.arena, voff_ht, voff_n->data, 0); - voffs64[voff_count64] = voff_n->data; - voff_count64 += 1; - } - - // gather step is not deterministic - radsort(voffs32, voff_count32, u32_is_before); - radsort(voffs64, voff_count64, u64_is_before); - // find block bytes in the buffer void *block = task->serialize.buffer + page->buffer_offset; @@ -3698,18 +4043,22 @@ THREAD_POOL_TASK_FUNC(lnk_serialize_base_reloc_pages_task) U16 *reloc_arr_ptr = reloc_arr_base; // write 32-bit relocation entries - for EachIndex(i, voff_count32) { - U64 rel_off = voffs32[i] - page->voff; + U16 *reloc_entries32 = reloc_arr_ptr; + for EachNode(n, U64Node, page->entries_addr32->first) { + U64 rel_off = n->data - page->voff; *reloc_arr_ptr = PE_BaseRelocMake(PE_BaseRelocKind_HIGHLOW, rel_off); reloc_arr_ptr += 1; } + radsort(reloc_entries32, page->entries_addr32->count, u16_is_before); // write 64-bit relocation entries - for EachIndex(i, voff_count64) { - U64 rel_off = voffs64[i] - page->voff; + U16 *reloc_entries64 = reloc_arr_ptr; + for EachNode(n, U64Node, page->entries_addr64->first) { + U64 rel_off = n->data - page->voff; *reloc_arr_ptr = PE_BaseRelocMake(PE_BaseRelocKind_DIR64, rel_off); reloc_arr_ptr += 1; } + radsort(reloc_entries64, page->entries_addr64->count, u16_is_before); // compute block size U64 reloc_arr_size = IntFromPtr(reloc_arr_ptr - reloc_arr_base) * sizeof(reloc_arr_ptr[0]); @@ -3723,9 +4072,6 @@ THREAD_POOL_TASK_FUNC(lnk_serialize_base_reloc_pages_task) // write page header *page_voff_ptr = safe_cast_u32(page->voff); *block_size_ptr = safe_cast_u32(block_size_aligned); - - // purge hash table for the next run - hash_table_purge(voff_ht); } scratch_end(scratch); @@ -3799,6 +4145,10 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 String8 base_relocs = {0}; { + task.serialize.pages = pages; + task.serialize.ranges = tp_divide_work(scratch.arena, pages.count, tp->worker_count); + tp_for_parallel(tp, 0, tp->worker_count, lnk_filter_out_duplicate_base_reloc_entries_task, &task); + ProfBegin("Compute Buffer Size"); U64 buffer_size = 0; for EachIndex(page_idx, pages.count) { @@ -3817,8 +4167,6 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 task.serialize.buffer_size = buffer_size; task.serialize.buffer = buffer; - task.serialize.pages = pages; - task.serialize.ranges = tp_divide_work(scratch.arena, pages.count, tp->worker_count); tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_serialize_base_reloc_pages_task, &task, "Serialize"); base_relocs = str8(task.serialize.buffer, task.serialize.buffer_size); @@ -3831,7 +4179,7 @@ lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U6 } internal String8List -lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size) +lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sects, U64 expected_image_header_size, U64 *file_header_offset_out, String8List *string_table_out) { ProfBeginFunction(); @@ -3890,6 +4238,8 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config file_header->section_count = sects.count; file_header->optional_header_size = (has_pe_plus_header ? sizeof(PE_OptionalHeader32Plus) : sizeof(PE_OptionalHeader32)) + (sizeof(PE_DataDirectory) * config->data_dir_count); file_header->flags = config->file_characteristics; + + *file_header_offset_out = result.total_size; str8_list_push(arena, &result, str8_struct(file_header)); } @@ -4000,13 +4350,21 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config if (coff_section->flags & COFF_SectionFlag_LnkRemove) { continue; } - // TODO: for objs we can store long name in string table and write here /offset + String8 section_name = sect->name; + + // use string table extension to store long section names if (sect->name.size > sizeof(coff_section->name)) { - lnk_error(LNK_Warning_LongSectionName, "not enough space in COFF section header to store entire name \"%S\"", sect->name); + if (string_table_out->node_count == 0) { + U32 *string_table_size = push_array(arena, U32, 1); + str8_list_push_front(arena, string_table_out, str8_struct(string_table_size)); + } + U64 name_offset = string_table_out->total_size; + str8_list_push(arena, string_table_out, push_cstr(arena, sect->name)); + section_name = push_str8f(arena, "/%u", name_offset); } MemorySet(&coff_section->name[0], 0, sizeof(coff_section->name)); - MemoryCopy(&coff_section->name[0], sect->name.str, Min(sect->name.size, sizeof(coff_section->name))); + MemoryCopy(&coff_section->name[0], section_name.str, Min(section_name.size, sizeof(coff_section->name))); coff_section->vsize = sect->vsize; coff_section->voff = sect->voff; coff_section->fsize = sect->fsize; @@ -4024,11 +4382,7 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config } // align image headers - { - U64 image_headers_align_size = AlignPadPow2(result.total_size, config->file_align); - U8 *image_headers_align = push_array(arena, U8, image_headers_align_size); - str8_list_push(arena, &result, str8(image_headers_align, image_headers_align_size)); - } + str8_list_push_aligner(arena, &result, 0, config->file_align); // // entry point @@ -4047,6 +4401,12 @@ lnk_build_win32_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config scratch_end(scratch); } + // write string table size + if (string_table_out->total_size) { + U32 *string_table_size = (U32 *)string_table_out->first->string.str; + *string_table_size = safe_cast_u32(string_table_out->total_size); + } + Assert(result.total_size == expected_image_header_size); ProfEnd(); return result; @@ -4078,6 +4438,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT .objs = objs, .function_pad_min = config->function_pad_min, .default_align = coff_default_align_from_machine(config->machine), + .sect_align = config->sect_align, .null_sc = push_array(arena->v[0], LNK_SectionContrib, 1), }; @@ -4239,7 +4600,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT // compute .bss virtual size - this marks start of the common block lnk_finalize_section_layout(common_block_sect, config->file_align, config->function_pad_min); - U64 common_block_cursor = common_block_sect->vsize; + U32 common_block_cursor = common_block_sect->vsize; // compute and assign offsets into the common block for EachIndex(contrib_idx, common_block_contribs_count) { @@ -4392,8 +4753,10 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT } // build win32 image header + U64 image_file_header_off = 0; + String8List image_string_table = {0}; { - String8List image_header_data = lnk_build_win32_header(sectab->arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align)); + String8List image_header_data = lnk_build_win32_header(sectab->arena, symtab, config, task.image_sects, AlignPow2(expected_image_header_size, config->file_align), &image_file_header_off, &image_string_table); LNK_Section *image_header_sect = lnk_section_table_push(sectab, str8_lit(".rad_linker_image_header_section"), 0); LNK_SectionContribChunk *image_header_sc_chunk = lnk_section_contrib_chunk_list_push_chunk(sectab->arena, &image_header_sect->contribs, 1, str8_zero()); LNK_SectionContrib *image_header_sc = lnk_section_contrib_chunk_push(image_header_sc_chunk, 1); @@ -4410,7 +4773,7 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT ProfBegin("Image Fill"); ProfBeginV("Alloc Image Buffer [%M]", lnk_section_table_total_fsize(sectab)); - image_data.size = lnk_section_table_total_fsize(sectab); + image_data.size = lnk_section_table_total_fsize(sectab) + image_string_table.total_size; image_data.str = push_array_no_zero(arena->v[0], U8, image_data.size); ProfEnd(); @@ -4461,6 +4824,17 @@ lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolT task.u.image_fill.fill_nodes = fill_nodes; tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_image_fill_task, &task, "Fill"); + if (image_string_table.total_size) { + ProfBegin("Copy String Table"); + String8 buffer = str8_list_join(scratch.arena, &image_string_table, 0); + MemoryCopy(image_data.str + (image_data.size - buffer.size), buffer.str, buffer.size); + ProfEnd(); + + // patch string table offset + COFF_FileHeader *file_header = (COFF_FileHeader *)(image_data.str + image_file_header_off); + file_header->symbol_table_foff = safe_cast_u32(image_data.size - buffer.size); + } + temp_end(temp); ProfEnd(); @@ -4710,7 +5084,7 @@ lnk_obj_sect_idx_from_section(Arena *arena, U64 objs_count, LNK_Obj **objs, LNK_ String8 section_name, section_postfix; coff_parse_section_name(full_section_name, §ion_name, §ion_postfix); - if (section_header->flags & COFF_SectionFlag_LnkRemove) { continue; } + if (obj->section_flags[sect_idx] & COFF_SectionFlag_LnkRemove) { continue; } if (section_header->fsize == 0) { continue; } if (lnk_is_section_removed(config, section_name)) { continue; } @@ -4881,7 +5255,8 @@ lnk_build_rad_map(Arena *arena, String8 image_data, LNK_Config *config, U64 objs COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(obj->data, obj->header.section_table_range.min, 0); for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *section_header = §ion_table[sect_idx]; - if (~section_header->flags & COFF_SectionFlag_LnkRemove && section_header->flags & LNK_SECTION_FLAG_DEBUG) { + COFF_SectionFlags section_flags = obj->section_flags[sect_idx]; + if (~section_flags & COFF_SectionFlag_LnkRemove && section_flags & LNK_SECTION_FLAG_DEBUG) { LNK_Lib *lib = lnk_obj_get_lib(obj); if (lib) { String8 lib_name = str8_chop_last_dot(str8_skip_last_slash(lib->path)); @@ -4951,8 +5326,63 @@ lnk_log_timers(void) scratch_end(scratch); } +internal +THREAD_POOL_TASK_FUNC(lnk_p2r_worker) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_P2R *ctx = raw_task; + + P2R_ConvertParams p2r_params = {0}; + if (task_id == 0) { + p2r_params.input_pdb_name = lnk_get_pdb_name(ctx->config); + p2r_params.input_pdb_data = ctx->pdb_data; + p2r_params.input_exe_name = lnk_get_image_name(ctx->config); + p2r_params.input_exe_data = ctx->image_data; + p2r_params.subset_flags = max_U32; + } + tp_broadcast(&p2r_params); + + LaneCtx lctx = { .lane_idx = task_id, .lane_count = tp->worker_count, .barrier = tp->barrier, .broadcast_memory = tp->broadcast }; + lane_ctx(lctx); + + Arena *bake_arena = arena_alloc(); + RDIM_BakeParams bake_params = p2r_convert2(bake_arena, &p2r_params); + barrier_wait(tp->barrier); + + RDIM_BakeResults bake_results = rdim_bake(arena, &bake_params); + barrier_wait(tp->barrier); + + if (task_id == 0) { + ctx->bake_results = bake_results; + } + + scratch_end(scratch); +} + +internal LNK_Obj ** +lnk_debug_filter_objs(Arena *arena, LNK_Obj **objs, U64 objs_count, U64 *count_out) +{ + U64 debug_info_objs_count = 0; + LNK_Obj **debug_info_objs = push_array(arena, LNK_Obj *, objs_count); + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + + // filter out internal objs from debug info output + if (obj->exclude_from_debug_info) { + continue; + } + + debug_info_objs[debug_info_objs_count++] = obj; + } + if (count_out) { + *count_out = debug_info_objs_count; + } + return debug_info_objs; +} + internal void -lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) +lnk_run_linker(TP_Context *tp, TP_Arena *arena, LNK_Config *config) { ProfBeginFunction(); @@ -4971,12 +5401,12 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) // // Link Image // - LNK_Link *link = lnk_link_image(tp, arena, config, inputer, symtab); + LNK_LinkResult link = lnk_link_image(tp, arena, config, inputer, symtab); - U64 objs_count = link->objs.count; - U64 libs_count = link->libs.count; - LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, link->objs); - LNK_Lib **libs = lnk_array_from_lib_list(scratch.arena, link->libs); + U64 objs_count = link.objs.count; + U64 libs_count = link.libs.count; + LNK_Obj **objs = lnk_array_from_obj_list(scratch.arena, link.objs); + LNK_Lib **libs = lnk_array_from_lib_list(scratch.arena, link.libs); // // Layout Image @@ -4985,8 +5415,8 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) // Write image in the background LNK_WriteThreadContext *image_write_ctx = push_array(scratch.arena, LNK_WriteThreadContext, 1); - image_write_ctx->path = config->image_name; - image_write_ctx->temp_path = config->temp_image_name; + image_write_ctx->path = config->out_path; + image_write_ctx->temp_path = config->temp_out_path; image_write_ctx->data = image_ctx.image_data; Thread image_write_thread = thread_launch(lnk_write_thread, image_write_ctx); @@ -5005,7 +5435,7 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) ProfBegin("Build Import Library"); lnk_timer_begin(LNK_Timer_Lib); String8 linker_debug_symbols = lnk_make_linker_debug_symbols(scratch.arena, config->machine); - String8 lib = pe_make_import_lib(arena->v[0], config->machine, config->time_stamp, str8_skip_last_slash(config->image_name), linker_debug_symbols, config->export_symbol_list); + String8 lib = pe_make_import_lib(arena->v[0], config->machine, config->time_stamp, lnk_get_image_name(config), linker_debug_symbols, config->export_symbol_list); lnk_write_data_to_file_path(config->imp_lib_name, str8_zero(), lib); lnk_timer_end(LNK_Timer_Lib); ProfEnd(); @@ -5019,71 +5449,124 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) lnk_timer_begin(LNK_Timer_Debug); U64 debug_info_objs_count = 0; - LNK_Obj **debug_info_objs = push_array(scratch.arena, LNK_Obj *, objs_count); - for EachIndex(obj_idx, objs_count) { - LNK_Obj *obj = objs[obj_idx]; - if (obj->exclude_from_debug_info) { continue; } - debug_info_objs[debug_info_objs_count++] = obj; - } + LNK_Obj **debug_info_objs = lnk_debug_filter_objs(scratch.arena, objs, objs_count, &debug_info_objs_count); // // CodeView // - LNK_CodeViewInput input = lnk_make_code_view_input(tp, arena, config->io_flags, config->lib_dir_list, config->alt_pch_dirs, debug_info_objs_count, debug_info_objs); - CV_DebugT *types = lnk_import_types(tp, arena, &input); + LNK_RRT_Array rrt_input = lnk_rrt_array_from_config(arena->v[0], config); + LNK_CodeViewInput cv = lnk_make_code_view_input(tp, arena, config, debug_info_objs_count, debug_info_objs, rrt_input); + LNK_MergedTypes cv_types = lnk_merge_types(tp, arena, &cv, 0); // - // RDI - // - if (config->rad_debug == LNK_SwitchState_Yes) { - lnk_timer_begin(LNK_Timer_Rdi); - - String8List rdi_data = lnk_build_rad_debug_info(tp, - arena, - config->target_os, - rdi_arch_from_coff_machine(config->machine), - config->image_name, - image_ctx.image_data, - input.count, - input.obj_arr, - input.debug_s_arr, - input.total_symbol_input_count, - input.symbol_inputs, - input.parsed_symbols, - types); - - lnk_write_data_list_to_file_path(config->rad_debug_name, config->temp_rad_debug_name, rdi_data); - - lnk_timer_end(LNK_Timer_Rdi); - } - - // - // PDB + // Debug Info // // TODO: Parallel debug info builds are currently blocked by the patch // strings in $$FILE_CHECKSUM step in `lnk_process_c13_data_task`. - if (config->debug_mode == LNK_DebugMode_Full) { - lnk_timer_begin(LNK_Timer_Pdb); + if (config->debug_mode == LNK_DebugMode_Full || config->rad_debug == LNK_SwitchState_Yes) { + Temp huge_arena_temp = temp_begin(lnk_get_huge_arena()); - if (config->pdb_hash_type_names != LNK_TypeNameHashMode_Null && config->pdb_hash_type_names != LNK_TypeNameHashMode_None) { - lnk_replace_type_names_with_hashes(tp, arena, types[CV_TypeIndexSource_TPI], config->pdb_hash_type_names, config->pdb_hash_type_name_length, config->pdb_hash_type_name_map); + String8List pdb_data = {0}; + { + lnk_timer_begin(LNK_Timer_Pdb); + if (config->pdb_hash_type_names != LNK_TypeNameHashMode_Null && config->pdb_hash_type_names != LNK_TypeNameHashMode_None) { + lnk_replace_type_names_with_hashes(tp, + arena, + cv_types.count[CV_TypeIndexSource_TPI], + cv_types.v [CV_TypeIndexSource_TPI], + config->pdb_hash_type_names, + config->pdb_hash_type_name_length, + config->pdb_hash_type_name_map); + } + pdb_data = lnk_build_pdb(tp, arena, image_ctx.image_data, config, symtab, &cv, cv_types, LNK_PDB_BuilderFlag_All); + if (config->debug_mode == LNK_DebugMode_Full) { + lnk_write_data_list_to_file_path(config->pdb_name, config->temp_pdb_name, pdb_data); + } + lnk_timer_end(LNK_Timer_Pdb); } - String8List pdb_data = lnk_build_pdb(tp, - arena, - image_ctx.image_data, - config, - symtab, - input.count, - input.obj_arr, - input.debug_s_arr, - input.total_symbol_input_count, - input.symbol_inputs, - input.parsed_symbols, - types); + if (config->rad_debug == LNK_SwitchState_Yes) { + lnk_timer_begin(LNK_Timer_Rdi); - lnk_write_data_list_to_file_path(config->pdb_name, config->temp_pdb_name, pdb_data); - lnk_timer_end(LNK_Timer_Pdb); + LNK_P2R p2r = { .config = config, .pdb_data = str8_list_join(lnk_get_huge_arena(), &pdb_data, 0), .image_data = image_ctx.image_data }; + tp_for_parallel(tp, arena, tp->worker_count, lnk_p2r_worker, &p2r); + + String8List rdi_blobs = rdim_file_blobs_from_section_bundle(scratch.arena, &p2r.bake_results.section_bundle); + lnk_write_data_list_to_file_path(config->rad_debug_name, config->temp_rad_debug_name, rdi_blobs); + + lnk_timer_end(LNK_Timer_Rdi); + } + + temp_end(huge_arena_temp); + } + + // + // stripped PDB + // + if (config->pdb_stripped_name.size != 0) { + CV_DebugS *debug_s_arr = push_array(scratch.arena, CV_DebugS, cv.obj_count); + for EachIndex(obj_idx, cv.obj_count) { + + CV_DebugS *debug_s_dst = &debug_s_arr[obj_idx]; + CV_DebugS *debug_s_src = &cv.debug_s_arr[obj_idx]; + String8List *dst = &debug_s_dst->data_list[CV_C13SubSectionIdxKind_Symbols]; + String8List *src = &debug_s_src->data_list[CV_C13SubSectionIdxKind_Symbols]; + + U64 proc_count = 0; + U64 proc_size = 0; + U64 section = 0; + for EachNode(n, String8Node, src->first) { + for (U64 cursor = 0; cursor < n->string.size; ) { + U64 c = cursor; + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(n->string, cursor, CV_SymbolAlign, &symbol), cursor); + if (symbol.kind == CV_SymKind_SKIP) { continue; } + if (cv_is_lproc(symbol)) { + proc_count += 1; + proc_size += AlignPow2(sizeof(CV_SymbolHeader) + symbol.data.size, CV_SymbolAlign); + proc_size += AlignPow2(sizeof(CV_SymbolHeader), CV_SymbolAlign); // S_END + } + } + section += 1; + } + + if (proc_count) { + U64 end_count = proc_count; + U64 symbol_count = proc_count + end_count; + U64 buffer_size = proc_size; + U8 *buffer = push_array(scratch.arena, U8, buffer_size); + U64 buffer_cursor = 0; + + for EachNode(n, String8Node, src->first) { + for (U64 cursor = 0; cursor < n->string.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(n->string, cursor, CV_SymbolAlign, &symbol), cursor); + if (symbol.kind == CV_SymKind_SKIP) { continue; } + if (cv_is_lproc(symbol)) { + CV_SymProc32 *src_proc = str8_deserial_get_raw_ptr(symbol.data, 0, sizeof(*src_proc)); + memory_write32(&src_proc->itype, 0); // strip type index + buffer_cursor += cv_write_symbol(buffer, buffer_cursor, buffer_size, &symbol, CV_SymbolAlign); + buffer_cursor += cv_write_symbol(buffer, buffer_cursor, buffer_size, &(CV_Symbol){ .kind = CV_SymKind_END }, CV_SymbolAlign); + } + } + } + Assert(buffer_cursor == buffer_size); + + str8_list_push(scratch.arena, dst, str8(buffer, buffer_size)); + } + } + + LNK_CodeViewInput stripped_cv = {0}; + stripped_cv.config = config; + stripped_cv.is_stripped = 1; + stripped_cv.obj_arr = cv.obj_arr; + stripped_cv.obj_count = cv.obj_count; + stripped_cv.count = cv.obj_count; + stripped_cv.debug_s_arr = debug_s_arr; + stripped_cv.symbol_input_ranges = push_array(scratch.arena, Rng1U64, tp->worker_count); + + String8List pdb_data = lnk_build_pdb(tp, arena, image_ctx.image_data, config, symtab, &stripped_cv, (LNK_MergedTypes){0}, LNK_PDB_BuilderFlag_All); + lnk_write_data_list_to_file_path(config->pdb_stripped_name, str8f(scratch.arena, "%S.tmp", config->pdb_stripped_name), pdb_data); } lnk_timer_end(LNK_Timer_Debug); @@ -5104,15 +5587,293 @@ lnk_run(TP_Context *tp, TP_Arena *arena, LNK_Config *config) ProfEnd(); } +internal +THREAD_POOL_TASK_FUNC(lnk_serialize_rrt_type_data_task) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_RRTTypeDataSerializer *task = raw_task; + LNK_MergedTypes *cv_types = task->cv_types; + + // set up per task size array + U64 **source_sizes = 0; + Rng1U64 *ranges[CV_TypeIndexSource_COUNT]; + if (task_id == 0) { + source_sizes = push_array(scratch.arena, U64 *, CV_TypeIndexSource_COUNT); + for EachIndex(i, CV_TypeIndexSource_COUNT) { + source_sizes[i] = push_array(scratch.arena, U64, tp->worker_count); + } + + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + ranges[ti_source] = tp_divide_work(scratch.arena, cv_types->count[ti_source], tp->worker_count); + } + } + tp_broadcast(&source_sizes); + tp_broadcast(&ranges); + + // compute size of each source per task + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + for EachInRange(i, ranges[ti_source][task_id]) { + CV_LeafHeader *leaf = (CV_LeafHeader *)cv_types->v[ti_source][i]; + String8 leaf_data = str8((U8 *)(leaf + 1), leaf->size - sizeof(leaf->kind)); + U64 leaf_size = cv_size_from_leaf(leaf_data, PDB_LEAF_ALIGN); + source_sizes[ti_source][task_id] += leaf_size; + } + } + barrier_wait(tp->barrier); + + // alloc buffer & set up buffer offsets for each task + U64 *chunk_sizes = 0; + U64 *source_base_offsets = 0; + U64 *source_task_offsets = 0; + if (task_id == 0) { + // compute chunk sizes per task + chunk_sizes = push_array(scratch.arena, U64, tp->worker_count); + for EachIndex(i, tp->worker_count) { + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + chunk_sizes[i] += source_sizes[ti_source][i]; + } + } + + // alloc output buffer for the serializer + U64 total_type_size = sum_array_u64(tp->worker_count, chunk_sizes); + *task->type_data_out = str8(push_array_no_zero(arena, U8, total_type_size), total_type_size); + + // output data ranges and source base offsets + source_base_offsets = push_array(scratch.arena, U64, CV_TypeIndexSource_COUNT); + U64 prev_off = 0; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + source_base_offsets[ti_source] = prev_off; + U64 source_size = sum_array_u64(tp->worker_count, source_sizes[ti_source]); + task->type_data_ranges_out[ti_source] = r1u64(prev_off, prev_off + source_size); + prev_off += source_size; + } + + // compute per-source, per-task offsets into the output buffer + source_task_offsets = push_array(scratch.arena, U64, CV_TypeIndexSource_COUNT*tp->worker_count); + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + U64 source_cursor = source_base_offsets[ti_source]; + for EachIndex(worker_idx, tp->worker_count) { + source_task_offsets[ti_source*tp->worker_count + worker_idx] = source_cursor; + source_cursor += source_sizes[ti_source][worker_idx]; + } + } + } + tp_broadcast(&chunk_sizes); + tp_broadcast(&source_task_offsets); + + // serialize types + U64 chunk_cursor = 0; + U8 *type_data_ptr = task->type_data_out->str; + U64 type_data_max = task->type_data_out->size; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + U64 cursor = source_task_offsets[ti_source*tp->worker_count + task_id]; + for EachInRange(i, ranges[ti_source][task_id]) { + CV_LeafHeader *leaf = (CV_LeafHeader *)cv_types->v[ti_source][i]; + String8 leaf_data = str8((U8 *)(leaf + 1), leaf->size - sizeof(leaf->kind)); + U64 write_size = cv_write_leaf(type_data_ptr, cursor, type_data_max, leaf->kind, leaf_data, PDB_LEAF_ALIGN); + cursor += write_size; + chunk_cursor += write_size; + } + Assert(cursor == source_task_offsets[ti_source*tp->worker_count + task_id] + source_sizes[ti_source][task_id]); + } + Assert(chunk_cursor == chunk_sizes[task_id]); + barrier_wait(tp->barrier); + + scratch_end(scratch); +} + +internal void +lnk_run_type_server(TP_Context *tp, TP_Arena *arena, LNK_Config *config) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(arena->v, arena->count); + + // push default type-server switches + lnk_config_pushf(config, "/DEBUG:GHASH"); + lnk_config_pushf(config, "/NOD"); + lnk_config_pushf(config, "/RAD_WRITE_TEMP_FILES"); + + // load objs + U64 objs_count = 0; + LNK_Obj **objs = 0; + { + LNK_Inputer *inputer = lnk_inputer_init(); + LNK_Link *link = lnk_link_init(arena, config); + + // input :null_obj + String8 null_obj = lnk_make_null_obj(inputer->arena); + lnk_inputer_push_obj_linkgen(inputer, 0, str8_lit("* Null *"), null_obj); + + // input objs on command line + for (String8Node *obj_path = config->input_list[LNK_Input_Obj].first; obj_path != 0; obj_path = obj_path->next) { + lnk_inputer_push_obj_thin(inputer, 0, obj_path->string); + } + + LNK_ObjNode *obj_nodes = lnk_load_objs(tp, arena, config, inputer, 0, link, &objs_count); + objs = push_array(scratch.arena, LNK_Obj *, objs_count); + for EachIndex(obj_idx, objs_count) { objs[obj_idx] = &obj_nodes[obj_idx].data; } + } + + // obj filter + objs = lnk_debug_filter_objs(scratch.arena, objs, objs_count, &objs_count); + + // parse & merge types + LNK_CodeViewInput cv = lnk_make_code_view_input(tp, arena, config, objs_count, objs, (LNK_RRT_Array){0}); + LNK_MergedTypes cv_types = lnk_merge_types(tp, arena, &cv, LNK_MergeTypeFlag_SkipSymbolTypeFixup | LNK_MergeTypeFlag_BuildObjTiMap | LNK_MergeTypeFlag_ExportHashes); + + U64Array include_objs = {0}; + { + U64List include_obj_list = {0}; + for EachIndex(obj_idx, objs_count) { + LNK_Obj *obj = objs[obj_idx]; + + // skip objs in libraries + if (obj->link_member) { continue; } + + // does obj have debug types? + if (obj->debug_p_sect_idx < obj->header.section_count_no_null) { + u64_list_push(scratch.arena, &include_obj_list, obj_idx); + } else if (obj->debug_t_sect_idx < obj->header.section_count_no_null) { + // read first leaf + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, obj->debug_t_sect_idx); + String8 raw_debug_t = str8_substr(obj->data, section.frange); + CV_Leaf leaf = {0}; + cv_read_leaf(raw_debug_t, 0, 1, &leaf); + + // is this /Z7 obj? + if ( ! cv_is_leaf_type_server(leaf.kind)) { + u64_list_push(scratch.arena, &include_obj_list, obj_idx); + } + } + } + include_objs = u64_array_from_list(scratch.arena, &include_obj_list); + } + + LNK_RRT rrt = {0}; + ProfScope("Pack Type Data & Data Ranges") + { + LNK_RRTTypeDataSerializer task = { &cv_types, &rrt.type_data_raw, rrt.type_data_ranges }; + tp_for_parallel(tp, arena, tp->worker_count, lnk_serialize_rrt_type_data_task, &task); + + // pack type index ranges + for EachIndex(i, CV_TypeIndexSource_COUNT) { + rrt.ti_ranges[i] = r1u64(cv_types.min_type_indices[i], cv_types.min_type_indices[i] + cv_types.count[i]); + } + + // copy pointers to type hashes + MemoryCopyArray(rrt.type_hashes_unpacked, cv_types.hashes); + } + + rrt.obj_count = include_objs.count; + + // copy per object leaf counts + rrt.obj_leaf_counts = push_array(scratch.arena, U64, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + CV_DebugT *debug_t = &cv.debug_t_arr[obj_idx]; + rrt.obj_leaf_counts[i] = debug_t->count; + } + + // copy per object type index ranges + rrt.obj_ti_ranges = push_array(scratch.arena, Rng1U64, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + LNK_Obj *obj = objs[obj_idx]; + CV_DebugT *debug_t = &cv.debug_t_arr[obj_idx]; + rrt.obj_ti_ranges[i] = debug_t->ti_ranges[CV_TypeIndexSource_TPI]; + } + + // copy obj time stamps + rrt.obj_time_stamps = push_array(scratch.arena, U64, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + LNK_Obj *obj = objs[obj_idx]; + FileProperties obj_file_props = properties_from_file_path(obj->path); + rrt.obj_time_stamps[i] = obj_file_props.modified; + } + + // copy obj file paths + rrt.obj_paths = str8_array_reserve(scratch.arena, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + LNK_Obj *obj = objs[obj_idx]; + rrt.obj_paths.v[rrt.obj_paths.count++] = obj->path; + } + + // wire per object file type index map + rrt.obj_ti_maps = push_array(scratch.arena, CV_TypeIndex *, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + rrt.obj_ti_maps[i] = cv_types.obj_ti_maps[obj_idx]; + } + + // obj idx -> RRT obj idx hash map + HashMap obj_to_rrt_obj_hm = {0}; + for EachIndex(i, include_objs.count) { + hash_map_push_u64_u64(scratch.arena, &obj_to_rrt_obj_hm, include_objs.v[i], i); + } + + // pack PCH info + rrt.obj_pch_indices = push_array(scratch.arena, U32, include_objs.count); + rrt.obj_pch_ti_ranges = push_array(scratch.arena, Rng1U64, include_objs.count); + for EachIndex(i, include_objs.count) { + U64 obj_idx = include_objs.v[i]; + CV_DebugT *debug_t = &cv.debug_t_arr[obj_idx]; + if (dim_1u64(debug_t->pch_ti_range[CV_TypeIndexSource_TPI]) > 0) { + rrt.obj_pch_indices [i] = safe_cast_u32(*hash_map_search_u64_u64(&obj_to_rrt_obj_hm, debug_t->pch_obj_idx)); + rrt.obj_pch_ti_ranges[i] = debug_t->pch_ti_range[CV_TypeIndexSource_TPI]; + } else { + rrt.obj_pch_indices [i] = max_U32; + rrt.obj_pch_ti_ranges[i] = r1u64(0,0); + } + } + + String8List rrt_data = lnk_string_list_from_rrt(scratch.arena, &rrt); + lnk_write_data_list_to_file_path(config->type_server_name, config->temp_type_server_name, rrt_data); + + scratch_end(scratch); + ProfEnd(); +} + internal void entry_point(CmdLine *cmdline) { Temp scratch = scratch_begin(0,0); - lnk_init_error_handler(); - LNK_Config *config = lnk_config_from_argcv(scratch.arena, cmdline->argc, cmdline->argv); + lnk_log_begin(); + + LNK_Config *config = lnk_config_from_argcv(cmdline); TP_Context *tp = tp_alloc(scratch.arena, config->worker_count, config->max_worker_count, config->shared_thread_pool_name); TP_Arena *tp_arena = tp_arena_alloc(tp); - lnk_run(tp, tp_arena, config); + + // detect type server from the environment + { + HashMap env = lnk_env_vars_from_process_info(scratch.arena, get_process_info(), LNK_EnvVarRule_Current); + LNK_EnvVar *type_server_var = lnk_env_var_from_mapf(&env, "RAD_TYPE_SERVER"); + if (type_server_var) { + U64 do_type_server = 0; + if (lnk_env_var_to_u64(&env, type_server_var, &do_type_server)) { + if (do_type_server) { + lnk_config_pushf(config, "/RAD_TYPE_SERVER"); + lnk_log(LNK_Log_Debug, "type server mode was enabled from the environment\n"); + } + } + } + } + + if (lnk_get_log_status(LNK_Log_Debug)) { + String8 full_cmd_line = str8_list_join(scratch.arena, &config->raw_cmd_line, &(StringJoin){ .sep = str8_lit_comp(" ") }); + lnk_fprintf(stderr, "--------------------------------------------------------------------------------\n"); + lnk_fprintf(stderr, "Command Line: %.*s\n", str8_varg(full_cmd_line)); + lnk_fprintf(stderr, "Work Dir : %.*s\n", str8_varg(config->work_dir)); + lnk_fprintf(stderr, "--------------------------------------------------------------------------------\n"); + } + + switch (config->boot_mode) { + case LNK_BootMode_Linker: lnk_run_linker (tp, tp_arena, config); break; + case LNK_BootMode_TypeServer: lnk_run_type_server(tp, tp_arena, config); break; + } + + lnk_log_end(); scratch_end(scratch); } - diff --git a/src/linker/lnk.h b/src/linker/lnk.h index fd96e826..d6388d0a 100644 --- a/src/linker/lnk.h +++ b/src/linker/lnk.h @@ -7,8 +7,9 @@ typedef struct LNK_LibMemberRef { - LNK_Lib *lib; - U32 member_idx; + LNK_Lib *lib; + U32 member_idx; + LNK_Symbol *link_symbol; struct LNK_LibMemberRef *next; } LNK_LibMemberRef; @@ -36,7 +37,6 @@ typedef struct LNK_Input B32 has_disk_read_failed; B32 exclude_from_debug_info; LNK_LibMemberRef *link_member; - void *loaded_input; struct LNK_Input *next; } LNK_Input; @@ -73,11 +73,25 @@ typedef struct LNK_Inputer #define LNK_IMPORT_STUB "*** RAD_IMPORT_STUB ***" #define LNK_NULL_SYMBOL "*** RAD_NULL_SYMBOL ***" -#define LNK_SECTION_FLAG_LIVE (1 << 0) -#define LNK_SECTION_FLAG_DEBUG (1 << 1) +#define LNK_SECTION_FLAG_DEBUG (1 << 0) + +typedef U8 LNK_LibMemberFlags; +enum +{ + LNK_LibMemberFlag_LinkedRegular = (1 << 0), + LNK_LibMemberFlag_LinkedImp = (1 << 1), + LNK_LibMemberFlag_WasGenQueued = (1 << 2), +}; + +typedef struct LNK_LibMemberInfo +{ + LNK_Symbol *link; + LNK_LibMemberFlags flags; +} LNK_LibMemberInfo; typedef struct LNK_Link { + Arena *arena; LNK_ObjList objs; LNK_LibList libs; LNK_ObjNode **last_symbol_input; @@ -85,10 +99,18 @@ typedef struct LNK_Link String8Node **last_cmd_lib; String8Node **last_default_lib; String8Node **last_obj_lib; + HashMap lib_member_infos_hm; LNK_LibMemberRefList imports; B32 try_to_resolve_entry_point; + B32 asan_libs_resolved; } LNK_Link; +typedef struct LNK_LinkResult +{ + LNK_ObjList objs; + LNK_LibList libs; +} LNK_LinkResult; + // -- Image Layout ------------------------------------------------------------ #define LNK_REMOVED_SECTION_NUMBER_32 (U32)-3 @@ -118,9 +140,7 @@ typedef struct LNK_CommonBlockContrib } u; } LNK_CommonBlockContrib; -// --- Ref --------------------------------------------------------------------- - -#define LNK_RELOCS_PER_TASK 0x1000 +// --- Reloc Ref --------------------------------------------------------------- typedef struct LNK_RelocRefs { @@ -128,25 +148,27 @@ typedef struct LNK_RelocRefs COFF_RelocArray relocs; } LNK_RelocRefs; -typedef struct LNK_RelocRefsNode +typedef struct LNK_RelocRefsBatch LNK_RelocRefsBatch; +struct LNK_RelocRefsBatch { - LNK_RelocRefs *v; - struct LNK_RelocRefsNode *next; -} LNK_RelocRefsNode; + LNK_RelocRefsBatch *next; + U64 count; + LNK_RelocRefs v[64]; +}; -typedef union LNK_RelocRefsPointer +typedef union { struct { - LNK_RelocRefsNode *node; + LNK_RelocRefsBatch *node; U64 tag; }; U64 v[2]; -} LNK_RelocRefsPointer; +} LNK_RelocRefsBatchPointer; -typedef struct AlignType(16) LNK_RelocRefsList +typedef struct AlignType(16) { - LNK_RelocRefsPointer head; -} LNK_RelocRefsList; + LNK_RelocRefsBatchPointer head; +} LNK_RelocRefsBatchList; // --- Base Reloc -------------------------------------------------------------- @@ -182,16 +204,20 @@ typedef struct LNK_BaseRelocPageArray typedef struct { B32 search_anti_deps; + LNK_Link *link; + HashMap *imports_hm; LNK_SymbolTable *symtab; + LNK_Symbol *import_stub; LNK_Lib *lib; + LNK_LibMemberInfo *lib_member_infos; LNK_LibMemberRefList *member_ref_lists; } LNK_SearchLibTask; typedef struct { - LNK_SymbolTable *symtab; - U32 active_thread_count; - LNK_RelocRefsList *reloc_refs; + LNK_SymbolTable *symtab; + LNK_Config *config; + LNK_ObjList objs; } LNK_OptRefTask; typedef struct @@ -238,6 +264,7 @@ typedef struct LNK_Obj **objs; U64 function_pad_min; U64 default_align; + U64 sect_align; LNK_SectionContrib *null_sc; LNK_SectionContrib ***sect_map; HashTable *contribs_ht; @@ -282,9 +309,24 @@ typedef struct U128 *hashes; } LNK_Blake3Hasher; +typedef struct +{ + LNK_MergedTypes *cv_types; + String8 *type_data_out; + Rng1U64 *type_data_ranges_out; +} LNK_RRTTypeDataSerializer; + +typedef struct +{ + RDIM_BakeResults bake_results; + LNK_Config *config; + String8 pdb_data; + String8 image_data; +} LNK_P2R; + // --- Config ----------------------------------------------------------------- -internal LNK_Config * lnk_config_from_argcv(Arena *arena, int argc, char **argv); +internal LNK_Config * lnk_config_from_cmdline(CmdLine *cmdline); // --- Entry Point ------------------------------------------------------------- @@ -340,10 +382,11 @@ internal void lnk_lib_member_ref_list_concat_in_place_array(LNK_L internal int lnk_lib_member_ref_is_before(void *raw_a, void *raw_b); internal LNK_LibMemberRef ** lnk_array_from_lib_member_list(Arena *arena, LNK_LibMemberRefList list); -internal LNK_ObjNode * lnk_load_objs (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab, LNK_Link *link, U64 *objs_count_out); -internal void lnk_load_libs (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_Link *link); -internal void lnk_link_inputs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab, LNK_Link *link); -internal LNK_Link * lnk_link_image (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab); +internal LNK_Link * lnk_link_init (TP_Arena *arena, LNK_Config *config); +internal LNK_ObjNode * lnk_load_objs (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab, LNK_Link *link, U64 *objs_count_out); +internal void lnk_load_libs (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_Link *link); +internal void lnk_link_inputs(TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab, LNK_Link *link); +internal LNK_LinkResult lnk_link_image (TP_Context *tp, TP_Arena *arena, LNK_Config *config, LNK_Inputer *inputer, LNK_SymbolTable *symtab); // --- Optimizations ----------------------------------------------------------- @@ -353,7 +396,7 @@ internal void lnk_opt_ref(TP_Context *tp, LNK_SymbolTable *symtab, LNK_Config *c internal String8List lnk_build_guard_tables(TP_Context *tp, LNK_SectionTable *sectab, LNK_SymbolTable *symtab, U64 objs_count, LNK_Obj **objs, COFF_MachineType machine, String8 entry_point_name, LNK_GuardFlags guard_flags, B32 emit_suppress_flag); internal String8 lnk_build_base_relocs(TP_Context *tp, TP_Arena *tp_temp, LNK_Config *config, U64 objs_count, LNK_Obj **objs); -internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size); +internal String8List lnk_build_win32_image_header(Arena *arena, LNK_SymbolTable *symtab, LNK_Config *config, LNK_SectionArray sect_arr, U64 expected_image_header_size, U64 *file_header_offset_out, String8List *string_table_out); internal LNK_ImageContext lnk_build_image(TP_Arena *arena, TP_Context *tp, LNK_Config *config, LNK_SymbolTable *symtab, U64 obj_count, LNK_Obj **objs); // --- Logger ------------------------------------------------------------------ diff --git a/src/linker/lnk_cmd_line.c b/src/linker/lnk_cmd_line.c index cf1909dd..89c86bd2 100644 --- a/src/linker/lnk_cmd_line.c +++ b/src/linker/lnk_cmd_line.c @@ -12,7 +12,7 @@ lnk_arg_list_parse_windows_rules(Arena *arena, String8 string) U8 *opl = string.str + string.size; while (ptr < opl) { // skip white space and new lines - for (;;) { + while(ptr < opl) { U64 size = (U64)(opl - ptr); UnicodeDecode uni = utf8_decode(ptr, size); if (uni.codepoint != ' ' && uni.codepoint != '\n' && uni.codepoint != '\r') { @@ -21,7 +21,7 @@ lnk_arg_list_parse_windows_rules(Arena *arena, String8 string) ptr += uni.inc; } - if (*ptr == '\0') { + if (ptr >= opl || *ptr == '\0') { break; } @@ -92,8 +92,7 @@ internal LNK_CmdOption * lnk_cmd_line_push_option_list(Arena *arena, LNK_CmdLine *cmd_line, String8 string, String8List value_strings) { // fill out node - LNK_CmdOption *opt = push_array_no_zero(arena, LNK_CmdOption, 1); - opt->next = 0; + LNK_CmdOption *opt = push_array(arena, LNK_CmdOption, 1); opt->string = string; opt->value_strings = value_strings; @@ -126,9 +125,25 @@ lnk_cmd_line_push_option_if_not_present(Arena *arena, LNK_CmdLine *cmd_line, cha return 0; } +internal void +lnk_cmd_line_concat_in_place(LNK_CmdLine *list, LNK_CmdLine *to_concat) +{ + if (list->option_count > 0) { + list->option_count += to_concat->option_count; + list->last_option->next = to_concat->first_option; + list->last_option = to_concat->last_option; + str8_list_concat_in_place(&list->input_list, &to_concat->input_list); + str8_list_concat_in_place(&list->raw_cmd_line, &to_concat->raw_cmd_line); + } else { + *list = *to_concat; + } + MemoryZeroStruct(to_concat); +} + internal LNK_CmdLine lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list) { + Temp scratch = scratch_begin(&arena, 1); LNK_CmdLine cmd_line = {0}; cmd_line.raw_cmd_line = str8_list_copy(arena, &arg_list); @@ -147,17 +162,41 @@ lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list) String8 value_string = str8_skip(arg, param_start_pos + 1); // make value list - String8List value_list = str8_split_by_string_chars(arena, value_string, str8_lit(","), 0); + String8List value_list_unowned = str8_split_by_string_chars(scratch.arena, value_string, str8_lit(","), 0); + String8List value_list = str8_list_copy(arena, &value_list_unowned); // push command + option_name = push_str8_copy(arena, option_name); lnk_cmd_line_push_option_list(arena, &cmd_line, option_name, value_list); } else { - str8_list_push(arena, &cmd_line.input_list, arg); + str8_list_push(arena, &cmd_line.input_list, push_str8_copy(arena, arg)); } } + scratch_end(scratch); return cmd_line; } +internal LNK_CmdLine +lnk_cmd_line_from_stringfv_windows_rules(Arena *arena, char *fmt, va_list args) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 string = push_str8fv(scratch.arena, fmt, args); + String8List arg_list = lnk_arg_list_parse_windows_rules(scratch.arena, string); + LNK_CmdLine result = lnk_cmd_line_parse_windows_rules(arena, arg_list); + scratch_end(scratch); + return result; +} + +internal LNK_CmdLine +lnk_cmd_line_from_stringf_windows_rules(Arena *arena, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + LNK_CmdLine result = lnk_cmd_line_from_stringfv_windows_rules(arena, fmt, args); + va_end(args); + return result; +} + internal LNK_CmdOption * lnk_cmd_line_option_from_string(LNK_CmdLine cmd_line, String8 string) { @@ -229,3 +268,199 @@ lnk_data_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line) return result; } + +internal String8 +lnk_env_var_chain_separator_from_rule(LNK_EnvVarRule rule) +{ + String8 result = {0}; + switch (rule) { + case LNK_EnvVarRule_Batch: { result = str8_lit(";"); } break; + case LNK_EnvVarRule_Bash: { result = str8_lit(":"); } break; + default: break; + } + return result; +} + +internal LNK_EnvVar * +lnk_env_var_push(Arena *arena, HashMap *env_vars, String8 key, String8 value, LNK_EnvVarRule rule) +{ + LNK_EnvVar *env_var = lnk_env_var_from_map(env_vars, key); + if (env_var == 0) { + env_var = push_array(arena, LNK_EnvVar, 1); + env_var->raw_value = value; + env_var->rule = rule; + hash_map_push_path_raw(arena, env_vars, key, env_var); + } + return env_var; +} + +internal LNK_EnvVar * +lnk_env_var_push_string(Arena *arena, HashMap *env_vars, String8 string, LNK_EnvVarRule rule) +{ + LNK_EnvVar *result = 0; + + string = str8_skip_chop_whitespace(string); + + // string -> (key, value) + String8 key = {0}; + String8 val = {0}; + switch (rule) { + case LNK_EnvVarRule_Batch: { + if (string.size >= 2) { + if (str8_match_wildcard(string, str8_lit("\"*\""), 0)) { + string = str8_chop(str8_skip(string, 1), 1); + } + } + + U64 sep_idx = str8_find_needle(string, 0, str8_lit("="), 0); + if (sep_idx < string.size) { + // extract key and value + key = str8_skip_chop_whitespace(str8_prefix(string, sep_idx)); + val = str8_skip_chop_whitespace(str8_skip(string, sep_idx+1)); + + // strip quotes + if (str8_match_wildcard(val, str8_lit("\"*\""), 0) || // "*" + str8_match_wildcard(val, str8_lit("\'*\'"), 0)) { // '*' + val = str8_chop(str8_skip(val, 1), 1); + } + } + } break; + + case LNK_EnvVarRule_Bash: { + U64 sep_idx = str8_find_needle(string, 0, str8_lit("="), 0); + if (sep_idx < string.size) { + // extract key and value + key = str8_skip_chop_whitespace(str8_prefix(string, sep_idx)); + val = str8_skip_chop_whitespace(str8_skip(string, sep_idx+1)); + + // strip quotes + if (str8_match_wildcard(val, str8_lit("\"*\""), 0) || // "*" + str8_match_wildcard(val, str8_lit("\'*\'"), 0)) { // '*' + val = str8_chop(str8_skip(val, 1), 1); + } + } + } break; + + default: break; + } + + if (key.size > 0) { + result = lnk_env_var_push(arena, env_vars, key, val, rule); + } + + return result; +} + +internal LNK_EnvVar * +lnk_env_var_push_batch(Arena *arena, HashMap *env_vars, String8 string) +{ + return lnk_env_var_push_string(arena, env_vars, string, LNK_EnvVarRule_Batch); +} + +internal LNK_EnvVar * +lnk_env_var_push_bash(Arena *arena, HashMap *env_vars, String8 string) +{ + return lnk_env_var_push_string(arena, env_vars, string, LNK_EnvVarRule_Bash); +} + +internal LNK_EnvVar * +lnk_env_var_batchf(Arena *arena, HashMap *env_vars, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(arena, fmt, args); + va_end(args); + LNK_EnvVar *result = lnk_env_var_push_string(arena, env_vars, string, LNK_EnvVarRule_Batch); + return result; +} + +internal LNK_EnvVar * +lnk_env_var_bashf(Arena *arena, HashMap *env_vars, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(arena, fmt, args); + va_end(args); + LNK_EnvVar *result = lnk_env_var_push_string(arena, env_vars, string, LNK_EnvVarRule_Bash); + return result; +} + +internal LNK_EnvVar * +lnk_env_var_from_mapf(HashMap *env_vars, char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 key = push_str8fv(scratch.arena, fmt, args); + va_end(args); + LNK_EnvVar *result = hash_map_search_path_raw(env_vars, key); + scratch_end(scratch); + return result; +} + +internal LNK_EnvVar * +lnk_env_var_from_map(HashMap *env_vars, String8 key) +{ + return hash_map_search_path_raw(env_vars, key); +} + +internal String8List +lnk_value_list_from_env_var(Arena *arena, LNK_EnvVar *env_var) +{ + return str8_split_by_string_chars(arena, env_var->raw_value, lnk_env_var_chain_separator_from_rule(env_var->rule), 0); +} + +internal B32 +lnk_env_var_to_u64(HashMap *env_vars, LNK_EnvVar *env_var, U64 *value_out) +{ + String8 value = str8_skip_chop_whitespace(env_var->raw_value); + if (str8_match_wildcard(value, str8_lit("\"*\""), 0) || + str8_match_wildcard(value, str8_lit("\'*\'"), 0)) { + value = str8_chop(str8_skip(value, 1), 1); + } + return try_u64_from_str8_c_rules(value, value_out); +} + +internal String8 +lnk_expand_env_vars_windows(Arena *arena, HashMap *env_vars, String8 string) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List list = {0}; + for (U64 i = 0; i < string.size; ) { + U64 open = str8_find_needle(string, i, str8_lit("%"), 0); + U64 close = str8_find_needle(string, open+1, str8_lit("%"), 0); + + String8 text = str8_substr(string, rng_1u64(i, open)); + str8_list_push(scratch.arena, &list, text); + i += text.size; + + if (open < close) { + String8 env_var_name = str8_substr(string, rng_1u64(open+1, close)); + LNK_EnvVar *env_var = lnk_env_var_from_map(env_vars, env_var_name); + if (env_var) { + str8_list_push(scratch.arena, &list, env_var->raw_value); + i = close+1; + } else { + str8_list_pushf(scratch.arena, &list, "%%%S", env_var_name); + i = close; + } + } + } + + String8 result = str8_list_join(arena, &list, 0); + + scratch_end(scratch); + return result; +} + +internal HashMap +lnk_env_vars_from_process_info(Arena *arena, ProcessInfo *proc_info, LNK_EnvVarRule rule) +{ + HashMap env_vars = {0}; + for EachNode(node, String8Node, proc_info->environment.first) { + lnk_env_var_push_string(arena, &env_vars, str8_copy(arena, node->string), rule); + } + return env_vars; +} + diff --git a/src/linker/lnk_cmd_line.h b/src/linker/lnk_cmd_line.h index 4330bc09..083a651f 100644 --- a/src/linker/lnk_cmd_line.h +++ b/src/linker/lnk_cmd_line.h @@ -19,14 +19,56 @@ typedef struct LNK_CmdLine String8List raw_cmd_line; } LNK_CmdLine; -internal String8List lnk_arg_list_parse_windows_rules(Arena *arena, String8 string); -internal LNK_CmdLine lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list); -internal LNK_CmdOption * lnk_cmd_line_option_from_string(LNK_CmdLine cmd_line, String8 string); -internal B32 lnk_cmd_line_has_option_string(LNK_CmdLine cmd_line, String8 string); -internal B32 lnk_cmd_line_has_option(LNK_CmdLine cmd_line, char *string); +typedef enum LNK_EnvVarRule +{ + LNK_EnvVarRule_Null, + LNK_EnvVarRule_Batch, + LNK_EnvVarRule_Bash, +#if OS_WINDOWS + LNK_EnvVarRule_Current, +#elif OS_LINUX + LNK_EnvVarRule_Current, +#else +# error "define env var rules" +#endif +} LNK_EnvVarRule; -internal LNK_CmdOption * lnk_cmd_line_push_option(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); -internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_present(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); +typedef struct LNK_EnvVar +{ + LNK_EnvVarRule rule; + String8 raw_value; + String8List chain_values; +} LNK_EnvVar; -internal String8List lnk_data_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line); +// --- List Helpers ------------------------------------------------------------ +internal void lnk_cmd_line_concat_in_place(LNK_CmdLine *list, LNK_CmdLine *to_concat); + +// --- Command Line ------------------------------------------------------------ + +internal String8List lnk_arg_list_parse_windows_rules (Arena *arena, String8 string); +internal LNK_CmdLine lnk_cmd_line_parse_windows_rules (Arena *arena, String8List arg_list); +internal LNK_CmdLine lnk_cmd_line_from_stringfv_windows_rules(Arena *arena, char *fmt, va_list args); +internal LNK_CmdLine lnk_cmd_line_from_stringf_windows_rules (Arena *arena, char *fmt, ...); +internal LNK_CmdOption * lnk_cmd_line_push_option_list (Arena *arena, LNK_CmdLine *cmd_line, String8 string, String8List value_strings); +internal LNK_CmdOption * lnk_cmd_line_push_option (Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); +internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_present (Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value); +internal String8List lnk_data_from_cmd_line (Arena *arena, LNK_CmdLine cmd_line); +internal LNK_CmdOption * lnk_cmd_line_option_from_string (LNK_CmdLine cmd_line, String8 string); +internal B32 lnk_cmd_line_has_option_string (LNK_CmdLine cmd_line, String8 string); +internal B32 lnk_cmd_line_has_option (LNK_CmdLine cmd_line, char *string); + +// --- Env Vars ---------------------------------------------------------------- + +internal HashMap lnk_env_vars_from_process_info(Arena *arena, ProcessInfo *proc_info, LNK_EnvVarRule rule); + +internal LNK_EnvVar * lnk_env_var_from_map (HashMap *env, String8 key); +internal LNK_EnvVar * lnk_env_var_from_mapf (HashMap *env, char *fmt, ...); +internal LNK_EnvVar * lnk_env_var_push (Arena *arena, HashMap *env, String8 key, String8 value, LNK_EnvVarRule rule); +internal LNK_EnvVar * lnk_env_var_push_string (Arena *arena, HashMap *env, String8 string, LNK_EnvVarRule rule); +internal LNK_EnvVar * lnk_env_var_push_batch (Arena *arena, HashMap *env, String8 string); +internal LNK_EnvVar * lnk_env_var_push_bash (Arena *arena, HashMap *env, String8 string); +internal LNK_EnvVar * lnk_env_var_pushf (Arena *arena, HashMap *env, LNK_EnvVarRule rule, char *fmt, ...); +internal String8List lnk_value_list_from_env_var(Arena *arena, LNK_EnvVar *env_var); +internal B32 lnk_env_var_to_u64 (HashMap *env, LNK_EnvVar *var, U64 *value_out); +internal String8 lnk_expand_env_vars_windows(Arena *arena, HashMap *env, String8 string); diff --git a/src/linker/lnk_config.c b/src/linker/lnk_config.c index a06de23b..ac624c0e 100644 --- a/src/linker/lnk_config.c +++ b/src/linker/lnk_config.c @@ -3,162 +3,108 @@ global read_only LNK_CmdSwitch g_cmd_switch_map[] = { - { LNK_CmdSwitch_Null, 0, "", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "NOT_IMPLEMENTED", "", "" }, - { LNK_CmdSwitch_Align, 0, "ALIGN", ":#", "" }, - { LNK_CmdSwitch_AllowBind, 0, "ALLOWBIND", "[:NO]", "" }, - { LNK_CmdSwitch_AllowIsolation, 0, "ALLOWISOLATION", "[:NO]", "" }, - { LNK_CmdSwitch_AlternateName, 1, "ALTERNATENAME", "Creates an a symbol alias \"FROM=TO\"." }, - { LNK_CmdSwitch_AppContainer, 0, "APPCONTAINER", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYDEBUG", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYLINKRESOURCE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYMODULE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "ASSEMBLYRESOURCE", "", "" }, // .NET - { LNK_CmdSwitch_Base, 0, "BASE", "{ADDRESS[,SIZE]|@FILENAME,KEY}", "" }, - { LNK_CmdSwitch_Brepro, 0, "BREPRO", "", "Not supported" }, - { LNK_CmdSwitch_NotImplemented, 0, "CLRIMAGETYPE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "CLRLOADEROPTIMIZATION","", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "CLRSUPPORTLASTERROR", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "CLRTHREADATTRIBUTE", "", "" }, // .NET - { LNK_CmdSwitch_NotImplemented, 0, "CLRUNMANAGEDCODECHECK","", "" }, // .NET - { LNK_CmdSwitch_Debug, 0, "DEBUG", "[:{FULL|NONE}]", "" }, - { LNK_CmdSwitch_Dump, 0, "DUMP", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "DEF", ":FILENAME", "" }, - { LNK_CmdSwitch_DefaultLib, 1, "DEFAULTLIB", ":LIBNAME", "" }, - { LNK_CmdSwitch_Delay, 0, "DELAY", ":{NOBIND|UNLOAD}", "" }, - { LNK_CmdSwitch_DelayLoad, 0, "DELAYLOAD", ":DLL", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "DELAYSIGN", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "DEPENDENTLOADFLAG", "", "" }, - { LNK_CmdSwitch_Dll, 0, "DLL", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "DRIVER", "", "" }, - { LNK_CmdSwitch_DisallowLib, 1, "DISALLOWLIB", ":LIBRARY", "", }, - { LNK_CmdSwitch_D2, 0, "D2", "" }, - { LNK_CmdSwitch_EditAndContinue, 1, "EDITANDCONTINUE", "[:NO]", "" }, - { LNK_CmdSwitch_DynamicBase, 0, "DYNAMICBASE", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "EMITVOLATILEMETADATA", "", "" }, - { LNK_CmdSwitch_Entry, 1, "ENTRY", ":FUNCTION", "" }, - { LNK_CmdSwitch_ErrorReport, 0, "ERRORREPORT", "", "Deprecated starting Windows Vista." }, - { LNK_CmdSwitch_Export, 1, "EXPORT", ":SYMBOL", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "EXPORTADMIN", "", "" }, - { LNK_CmdSwitch_FastFail, 0, "FASTFAIL", "", "Not used." }, - { LNK_CmdSwitch_NotImplemented, 0, "FASTGENPROFILE", "", "" }, - { LNK_CmdSwitch_FailIfMismatch, 1, "FAILIFMISMATCH", "", "" }, - { LNK_CmdSwitch_FileAlign, 0, "FILEALIGN", ":#", "" }, - { LNK_CmdSwitch_Fixed, 0, "FIXED", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "FORCE", "", "" }, - { LNK_CmdSwitch_FunctionPadMin, 0, "FUNCTIONPADMIN", ":#", "Not Implemented" }, - { LNK_CmdSwitch_NotImplemented, 0, "GUARD", "", "" }, - { LNK_CmdSwitch_GuardSym, 1, "GUARDSYM", "", "", }, - { LNK_CmdSwitch_NotImplemented, 0, "GENPROFILE", "", "" }, - { LNK_CmdSwitch_Heap, 0, "HEAP", "RESERVE[,COMMIT]", "" }, - { LNK_CmdSwitch_HighEntropyVa, 0, "HIGHENTROPYVA", "[:NO]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "IDLOUT", "", "" }, - { LNK_CmdSwitch_Ignore, 0, "IGNORE", ":#", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "IGNOREIDL", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "ILK", "", "" }, - { LNK_CmdSwitch_ImpLib, 0, "IMPLIB", ":FILENAME", "" }, - { LNK_CmdSwitch_Include, 1, "INCLUDE", "", "" }, - { LNK_CmdSwitch_Incremental, 0, "INCREMENTAL", "[:NO]", "Incremental linking is not supported." }, - { LNK_CmdSwitch_NotImplemented, 0, "INTEGRITYCHECK", "", "" }, - { LNK_CmdSwitch_InferAsanLibs, 1, "INFERASANLIBS", "[:NO]", "" }, - { LNK_CmdSwitch_InferAsanLibsNo, 1, "INFERASANLIBSNO", "", "", }, - { LNK_CmdSwitch_NotImplemented, 0, "KERNEL", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "KEYCONTAINER", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "KEYFILE", "", "" }, - { LNK_CmdSwitch_LargeAddressAware, 0, "LARGEADDRESSAWARE", "[:NO]", "" }, - { LNK_CmdSwitch_Lib, 0, "LIB", "" }, - { LNK_CmdSwitch_LibPath, 0, "LIBPATH", ":DIR", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "LINKERREPO", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "LINKERREPOTARGET", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "LTCG", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "LTCGOUT", "", "" }, - { LNK_CmdSwitch_Machine, 0, "MACHINE", ":{X64|X86}", "" }, - { LNK_CmdSwitch_Manifest, 0, "MANIFEST", "[:{EMBED[,ID=#]|NO]", "" }, - { LNK_CmdSwitch_ManifestDependency, 1, "MANIFESTDEPENDENCY", ":\"manifest dependency XML string\"", "" }, - { LNK_CmdSwitch_ManifestFile, 0, "MANIFESTFILE", ":FILENAME", "" }, - { LNK_CmdSwitch_ManifestInput, 0, "MANIFESTINPUT", ":FILENAME", "" }, - { LNK_CmdSwitch_ManifestUac, 0, "MANIFESTUAC", ":{NO|{'level'={'asInvoker'|'highestAvailable'|'requireAdministrator'} ['uiAccess'={'true'|'false'}]}}", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "MAP", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "MAPINFO", "", "" }, - { LNK_CmdSwitch_Merge, 1, "MERGE", ":from=to", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "MIDL", "", "" }, - { LNK_CmdSwitch_Natvis, 0, "NATVIS", ":FILENAME", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "NOASSEMBLY", "", "" }, - { LNK_CmdSwitch_NoDefaultLib, 1, "NODEFAULTLIB", ":LIBNAME", "" }, - { LNK_CmdSwitch_NoDefaultLib, 0, "NOD", ":LIBNAME", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "NOENTRY", "", "" }, - { LNK_CmdSwitch_NoExp, 0, "NOEXP", "", ".exp is not supported." }, - { LNK_CmdSwitch_NoImpLib, 0, "NOIMPLIB", "", "" }, - { LNK_CmdSwitch_NoLogo, 0, "NOLOGO", "", "" }, - { LNK_CmdSwitch_NxCompat, 0, "NXCOMPAT", "[:NO]", "" }, - { LNK_CmdSwitch_Opt, 0, "OPT", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "ORDER", "", "" }, - { LNK_CmdSwitch_Out, 0, "OUT", ":FILENAME", "" }, - { LNK_CmdSwitch_Pdb, 0, "PDB", ":FILENAME", "" }, - { LNK_CmdSwitch_PdbAltPath, 0, "PDBALTPATH", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "PDBSTRIPPED", "", "" }, - { LNK_CmdSwitch_PdbPageSize, 0, "PDBPAGESIZE", ":#", "Page size must be power of two" }, - { LNK_CmdSwitch_NotImplemented, 0, "PROFILE", "", "" }, - { LNK_CmdSwitch_Release, 1, "RELEASE", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "SAFESEH", "", "" }, - { LNK_CmdSwitch_Section, 1, "SECTION", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "SOURCELINK", "", "" }, - { LNK_CmdSwitch_Stack, 1, "STACK", ":RESERVE[,COMMIT]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "STUB", "", "" }, - { LNK_CmdSwitch_SubSystem, 1, "SUBSYSTEM", ":{CONSOLE|NATIVE|WINDOWS}[,#[.##]]", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "SWAPRUN", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "TLBID", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "TLBOUT", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "TIME", "", "" }, - { LNK_CmdSwitch_TsAware, 0, "TSAWARE", "[:NO]", "" }, - { LNK_CmdSwitch_ThrowingNew, 1, "THROWINGNEW", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "USERPROFILE", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "VERBOSE", "", "" }, - { LNK_CmdSwitch_Version, 0, "VERSION", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WINMD", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WINMDDELAYSIGN", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WINMDKEYCONTAINER", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WINMDKEYFILE", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WHOLEARCHIVE", "", "" }, - { LNK_CmdSwitch_NotImplemented, 0, "WX", "", "" }, + { LNK_CmdSwitch_Null, 0, "", "", "" }, + { LNK_CmdSwitch_NotImplemented, 0, "NOT_IMPLEMENTED", "", "" }, + { LNK_CmdSwitch_Align, 0, "ALIGN", ":#", "Set section alignment in the virtual address space." }, + { LNK_CmdSwitch_AllowBind, 0, "ALLOWBIND", "[:NO]", "Toggles bind bit in the image header." }, + { LNK_CmdSwitch_AllowIsolation, 0, "ALLOWISOLATION", "[:NO]", "Toggles isolation bit in the image header." }, + { LNK_CmdSwitch_AlternateName, 1, "ALTERNATENAME", ":FROM=TO", "Creates a symbol alias \"FROM=TO\"." }, + { LNK_CmdSwitch_AppContainer, 0, "APPCONTAINER", "[:NO]", "Toggles app container bit in the image header." }, + { LNK_CmdSwitch_Base, 0, "BASE", "{ADDRESS[,SIZE]|@FILENAME,KEY}", "Set default image base address." }, + { LNK_CmdSwitch_Brepro, 0, "BREPRO", "", "No support." }, + { LNK_CmdSwitch_Debug, 0, "DEBUG", "[:{FULL|NONE}]", "Controls debug info level." }, + { LNK_CmdSwitch_DefaultLib, 1, "DEFAULTLIB", ":LIBNAME", "Set default library." }, + { LNK_CmdSwitch_Delay, 0, "DELAY", ":{NOBIND|UNLOAD}", "Controls emission of unload and bind tables." }, + { LNK_CmdSwitch_DelayLoad, 0, "DELAYLOAD", ":DLL", "Delay load DLL." }, + { LNK_CmdSwitch_Dll, 0, "DLL", "", "Link to a DLL." }, + { LNK_CmdSwitch_DisallowLib, 1, "DISALLOWLIB", ":LIBRARY", "Prevents LIBRARY from being linked.", }, + { LNK_CmdSwitch_DynamicBase, 0, "DYNAMICBASE", "[:NO]", "Enable random base address in the linked image." }, + { LNK_CmdSwitch_Entry, 1, "ENTRY", ":FUNCTION", "Name of the entry point symbol." }, + { LNK_CmdSwitch_Export, 1, "EXPORT", ":SYMBOL", "Create an export entry for SYMBOL." }, + { LNK_CmdSwitch_FailIfMismatch, 1, "FAILIFMISMATCH", "{id=value}", "Fails to link if same ids have conflicting values." }, + { LNK_CmdSwitch_FileAlign, 0, "FILEALIGN", ":#", "Set section alignment in the file." }, + { LNK_CmdSwitch_Fixed, 0, "FIXED", "[:NO]", "Load the image at the default base address." }, + { LNK_CmdSwitch_FunctionPadMin, 0, "FUNCTIONPADMIN", ":#", "Minimum function byte size." }, + { LNK_CmdSwitch_Heap, 0, "HEAP", "RESERVE[,COMMIT]", "Set reserve and commit size for the heap." }, + { LNK_CmdSwitch_HighEntropyVa, 0, "HIGHENTROPYVA", "[:NO]", "Indicate that image supports full 64-bit address space ASLR." }, + { LNK_CmdSwitch_Ignore, 0, "IGNORE", ":#", "Ignore a warning." }, + { LNK_CmdSwitch_ImpLib, 0, "IMPLIB", ":FILENAME", "Set file name for the import library." }, + { LNK_CmdSwitch_Include, 1, "INCLUDE", ":SYMBOL", "Force a link against SYMBOL." }, + { LNK_CmdSwitch_InferAsanLibs, 1, "INFERASANLIBS", "[:NO]", "No support." }, + { LNK_CmdSwitch_InferAsanLibsNo, 1, "INFERASANLIBSNO", "", "No support.", }, + { LNK_CmdSwitch_LargeAddressAware, 0, "LARGEADDRESSAWARE", "[:NO]", "For images that can handle addresses > 2GiB." }, + { LNK_CmdSwitch_Lib, 0, "LIB", "", "Turn linker into lib.exe." }, + { LNK_CmdSwitch_LibPath, 0, "LIBPATH", ":DIR", "Add DIR for the linker to search for libraries." }, + { LNK_CmdSwitch_Machine, 0, "MACHINE", ":{X64|X86}", "Image target platform." }, + { LNK_CmdSwitch_Manifest, 0, "MANIFEST", "[:{EMBED[,ID=#]|NO]", "Controls whether the linker should create a side manifest." }, + { LNK_CmdSwitch_ManifestDependency, 1, "MANIFESTDEPENDENCY", ":\"manifest dependency XML string\"", "Add a manifest dependency." }, + { LNK_CmdSwitch_ManifestFile, 0, "MANIFESTFILE", ":FILENAME", "Specifies a manifest file." }, + { LNK_CmdSwitch_ManifestInput, 0, "MANIFESTINPUT", ":FILENAME", "Manifest that is embedded in the image." }, + { LNK_CmdSwitch_ManifestUac, 0, "MANIFESTUAC", ":{NO|{'level'={'asInvoker'|'highestAvailable'|'requireAdministrator'} ['uiAccess'={'true'|'false'}]}}", "Controls UAC information in the manifest." }, + { LNK_CmdSwitch_Merge, 1, "MERGE", ":FROM=TO", "Merges sections." }, + { LNK_CmdSwitch_Natvis, 0, "NATVIS", ":FILENAME", "NATVIS to embed in the PDB." }, + { LNK_CmdSwitch_NoDefaultLib, 1, "NODEFAULTLIB", ":LIBNAME", "Ignore a /DEFAULTLIB." }, + { LNK_CmdSwitch_NoDefaultLib, 0, "NOD", ":LIBNAME", "Alias for /NODEFAULTLIB." }, + { LNK_CmdSwitch_NoExp, 0, "NOEXP", "", "No support." }, + { LNK_CmdSwitch_NoImpLib, 0, "NOIMPLIB", "", "Do not create the import library." }, + { LNK_CmdSwitch_NxCompat, 0, "NXCOMPAT", "[:NO]", "Image is compatible with data execution prevention." }, + { LNK_CmdSwitch_Opt, 0, "OPT", "{REF|ICF}", "Optimizations." }, + { LNK_CmdSwitch_Out, 0, "OUT", ":FILENAME", "File name of the output image." }, + { LNK_CmdSwitch_Pdb, 0, "PDB", ":FILENAME", "File name of the output PDB." }, + { LNK_CmdSwitch_PdbAltPath, 0, "PDBALTPATH", ":PATH", "Alternative output path for the PDB." }, + { LNK_CmdSwitch_PdbPageSize, 0, "PDBPAGESIZE", ":#", "Page size must be power of two." }, + { LNK_CmdSwitch_PdbStripped, 0, "PDBSTRIPPED", ":FILENAME", "Create a stripped PDB containing public symbols, a section map, and a list of object files." }, + { LNK_CmdSwitch_Release, 1, "RELEASE", "", "Write image checksum." }, + { LNK_CmdSwitch_Stack, 1, "STACK", ":RESERVE[,COMMIT]", "Set reserve and commit size for the stack." }, + { LNK_CmdSwitch_SubSystem, 1, "SUBSYSTEM", ":{CONSOLE|NATIVE|WINDOWS}[,#[.##]]", "Set subsystem for the image." }, + { LNK_CmdSwitch_TsAware, 0, "TSAWARE", "[:NO]", "Image is terminal server aware." }, + { LNK_CmdSwitch_Version, 0, "VERSION", "", "Image version." }, + { LNK_CmdSwitch_WholeArchive, 0, "WHOLEARCHIVE", "[:LIBNAME]", "Force linker to pull in all objs from the specified lib." }, - //- internal switches { LNK_CmdSwitch_Rad_Age, 0, "RAD_AGE", ":#", "Age embeded in EXE and PDB, used to validate incremental build. Default is 1." }, - { LNK_CmdSwitch_Rad_AltPchDir, 0, "RAD_ALT_PCH_DIR", ":PATH", "Alternative directory to search for PCH object files." }, + //{ LNK_CmdSwitch_Rad_BuildExp, 0, "RAD_BUILD_EXP", "[:NO]", "Build export data." }, { LNK_CmdSwitch_Rad_BuildInfo, 0, "RAD_BUILD_INFO", "", "Print build info and exit." }, - { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "" }, + { LNK_CmdSwitch_Rad_BuildImpLib, 0, "RAD_BUILD_IMPLIB", "[:NO]", "Build import library." }, + { LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, 0, "RAD_CHECK_UNUSED_DELAY_LOAD_DLL", "[:NO]", "Check for unused delay load dlls." }, + { LNK_CmdSwitch_Rad_DataDirCount, 0, "RAD_DATA_DIR_COUNT", ":#", "Internal default for PE optional header data directory count." }, { LNK_CmdSwitch_Rad_Map, 0, "RAD_MAP", ":FILENAME", "Emit file with the output image's layout description." }, { LNK_CmdSwitch_Rad_MapLinesForUnresolvedSymbols, 0, "RAD_MAP_LINES_FOR_UNRESOLVED_SYMBOLS", "[:NO]", "Use debug info to print source file location for unresolved symbol" }, - { LNK_CmdSwitch_Rad_MemoryMapFiles, 0, "RAD_MEMORY_MAP_FILES", "[:NO]", "When enabled, files are memory-mapped instead of being read entirely on request." }, + { LNK_CmdSwitch_Rad_MemoryMapFiles, 0, "RAD_MEMORY_MAP_FILES", "[:{NO|READ_ONLY|READ_WRITE}]", "When enabled, files are memory-mapped instead of being read entirely on request." }, + { LNK_CmdSwitch_Rad_BootMode, 0, "RAD_BOOT_MODE", "[:LINKER|TYPE_SERVER]", "Overrides default boot program." }, { LNK_CmdSwitch_Rad_Debug, 0, "RAD_DEBUG", "[:NO]", "Emit RAD debug info file." }, - { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", "", "" }, - { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Sets file name for RAD debug info file." }, - { LNK_CmdSwitch_Rad_DelayBind, 0, "RAD_DELAY_BIND", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_DoMerge, 0, "RAD_DO_MERGE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_EnvLib, 0, "RAD_ENV_LIB", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Exe, 0, "RAD_EXE", "[:NO]", "" }, - { LNK_CmdSwitch_Rad_Guid, 0, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "" }, + { LNK_CmdSwitch_Rad_DebugAltPath, 0, "RAD_DEBUGALTPATH", ":PATH", "Alternative output path for the RDI." }, + { LNK_CmdSwitch_Rad_DebugName, 0, "RAD_DEBUG_NAME", ":FILENAME", "Set file name for RAD debug info file." }, + { LNK_CmdSwitch_Rad_DelayBind, 0, "RAD_DELAY_BIND", "[:NO]", "Emit bindable imports." }, + { LNK_CmdSwitch_Rad_DoMerge, 0, "RAD_DO_MERGE", "[:NO]", "Set whether the linker should execute /MERGE." }, + { LNK_CmdSwitch_Rad_EnvLib, 0, "RAD_ENV_LIB", "[:NO]", "Collect libraries from %%LIB%% and %%LIBPATH%% varibles." }, + { LNK_CmdSwitch_Rad_Exe, 0, "RAD_EXE", "[:NO]", "Set EXE bit in the image header." }, + { LNK_CmdSwitch_Rad_Guid, 0, "RAD_GUID", ":{IMAGEBLAKE3|XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX}", "The image guid that is embeded in the debug info." }, { LNK_CmdSwitch_Rad_LargePages, 0, "RAD_LARGE_PAGES", "[:NO]", "Disabled by default on Windows." }, - { LNK_CmdSwitch_Rad_LinkVer, 0, "RAD_LINK_VER", ":##,##", "" }, - { LNK_CmdSwitch_Rad_Log, 0, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "" }, - { LNK_CmdSwitch_Rad_MtPath, 0, "RAD_MT_PATH", ":EXEPATH", "Exe path to manifest tool, default: " LNK_MANIFEST_MERGE_TOOL_NAME }, - { LNK_CmdSwitch_Rad_OsVer, 0, "RAD_OS_VER", ":##,##", "" }, + { LNK_CmdSwitch_Rad_LinkVer, 0, "RAD_LINK_VER", ":##,##", "Linker version." }, + { LNK_CmdSwitch_Rad_Log, 0, "RAD_LOG", ":{ALL,INPUT_OBJ,INPUT_LIB,IO,LINK_STATS,TIMERS}", "Loggers." }, + { LNK_CmdSwitch_Rad_MtPath, 0, "RAD_MT_PATH", ":EXEPATH", "Exe path to the manifest tool (default: " LNK_MANIFEST_MERGE_TOOL_NAME ")" }, + { LNK_CmdSwitch_Rad_OsVer, 0, "RAD_OS_VER", ":##,##", "OS version." }, { LNK_CmdSwitch_Rad_PageSize, 0, "RAD_PAGE_SIZE", ":#", "Must be power of two." }, - { LNK_CmdSwitch_Rad_PathStyle, 0, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "" }, + { LNK_CmdSwitch_Rad_PathStyle, 0, "RAD_PATH_STYLE", ":{WindowsAbsolute|UnixAbsolute}", "Set path style in the PDB." }, { LNK_CmdSwitch_Rad_PdbHashTypeNameLength, 0, "RAD_PDB_HASH_TYPE_NAME_LENGTH", ":#", "Number of hash bytes to use to replace type name. Default 8 bytes (Max 16)." }, { LNK_CmdSwitch_Rad_PdbHashTypeNameMap, 0, "RAD_PDB_HASH_TYPE_NAME_MAP", ":FILENAME", "Produce map file with hash -> type name mappings." }, { LNK_CmdSwitch_Rad_PdbHashTypeNames, 0, "RAD_PDB_HASH_TYPE_NAMES", ":{NONE|LENIENT|FULL}", "Replace type names in LF_STRUCTURE and LF_CLASS with hashes." }, - { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from output image." }, + { LNK_CmdSwitch_Rad_RemoveSection, 0, "RAD_REMOVE_SECTION", ":NAME", "Removes a section from the image." }, { LNK_CmdSwitch_Rad_SharedThreadPool, 0, "RAD_SHARED_THREAD_POOL", "[:STRING]", "Default value \"" LNK_DEFAULT_THREAD_POOL_NAME "\"" }, - { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Sets maximum number of workers in a thread pool." }, - { LNK_CmdSwitch_Rad_SuppressError, 0, "RAD_SUPPRESS_ERROR", ":#", "" }, - { LNK_CmdSwitch_Rad_TargetOs, 0, "RAD_TARGET_OS", ":{WINDOWS,LINUX,MAC}" }, + { LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, 0, "RAD_SHARED_THREAD_POOL_MAX_WORKERS", ":#", "Set maximum number of workers in a thread pool." }, + { LNK_CmdSwitch_Rad_SortImports, 0, "RAD_SORT_IMPORTS", "[:NO]", "Sort static and delayed import tables by their order of appearance in libs, without assuming link order." }, + { LNK_CmdSwitch_Rad_Ignore, 0, "RAD_IGNORE", ":#", "Ignore the specified RAD linker warning." }, + { LNK_CmdSwitch_Rad_ImageAltPath, 0, "RAD_IMAGEALTPATH", ":FILENAME", "Alternative name for the image" }, { LNK_CmdSwitch_Rad_WriteTempFiles, 0, "RAD_WRITE_TEMP_FILES", "[:NO]", "When speicifed linker writes image and debug info to temporary files and renames after link is done." }, { LNK_CmdSwitch_Rad_TimeStamp, 0, "RAD_TIME_STAMP", ":#", "Time stamp embeded in EXE and PDB." }, + { LNK_CmdSwitch_Rad_TypeHashAlg, 0, "RAD_TPYE_HASH_ALG", ":{BLAKE3}", "Sets hashing algorithm for type merging." }, { LNK_CmdSwitch_Rad_UnresolvedSymbolLimit, 0, "RAD_UNRESOLVED_SYMBOL_LIMIT", ":#", "Limits number of unresolved symbol errors linker reports." }, { LNK_CmdSwitch_Rad_UnresolvedSymbolRefLimit, 0, "RAD_UNRESOLVED_SYMBOL_REF_LIMIT", ":#", "Limit number of unresolved symbol references linker reports." }, { LNK_CmdSwitch_Rad_Version, 0, "RAD_VERSION", "", "Print version and exit." }, - { LNK_CmdSwitch_Rad_Workers, 0, "RAD_WORKERS", ":#", "Sets number of workers created in the pool. Number is capped at 1024. When /RAD_SHARED_THREAD_POOL is specified this number cant exceed /RAD_SHARED_THREAD_POOL_MAX_WORKERS." }, + { LNK_CmdSwitch_Rad_Workers, 0, "RAD_WORKERS", ":#", "Set number of workers created in the pool. Number is capped at 1024. When /RAD_SHARED_THREAD_POOL is specified this number cant exceed /RAD_SHARED_THREAD_POOL_MAX_WORKERS." }, + { LNK_CmdSwitch_Rad_WorkDir, 0, "RAD_WORK_DIR", ":PATH", "Working directory used for stable debug paths." }, + + { LNK_CmdSwitch_RadTypeServer, 0, "RAD_TYPE_SERVER", ":FILENAME", "Merge types and store them in the specified file. The filename must have the .rrt extension." }, { LNK_CmdSwitch_Help, 0, "HELP", "", "" }, { LNK_CmdSwitch_Help, 0, "?", "", "" }, @@ -173,7 +119,9 @@ global read_only struct { "obj", LNK_Input_Obj }, { "lib", LNK_Input_Lib }, { "rlib", LNK_Input_Lib }, // rust libs + { "a", LNK_Input_Lib }, // GNU lib { "res", LNK_Input_Res }, + { "rrt", LNK_Input_RRT }, }; global read_only struct @@ -271,32 +219,18 @@ lnk_type_name_hash_mode_from_string(String8 name) return LNK_TypeNameHashMode_Null; } -internal LNK_CmdOption * -lnk_cmd_line_push_option_if_not_presentf(Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...) +internal String8List +lnk_cmd_line_values_from_switch(Arena *arena, LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch) { - LNK_CmdOption *opt = 0; - String8 cmd_switch_name = lnk_string_from_cmd_switch_type(cmd_switch_type); - if (!lnk_cmd_line_has_option_string(*cmd_line, cmd_switch_name)) { - va_list param_args; - va_start(param_args, param_fmt); - String8 param_str = push_str8fv(arena, param_fmt, param_args); - va_end(param_args); - - opt = lnk_cmd_line_push_option_string(arena, cmd_line, cmd_switch_name, param_str); - } - return opt; -} - -internal LNK_CmdOption * -lnk_cmd_line_push_optionf(Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch, char *param_fmt, ...) -{ - va_list param_args; - va_start(param_args, param_fmt); - String8 param_str = push_str8fv(arena, param_fmt, param_args); - va_end(param_args); + String8List values = {0}; String8 cmd_switch_name = lnk_string_from_cmd_switch_type(cmd_switch); - LNK_CmdOption *opt = lnk_cmd_line_push_option_string(arena, cmd_line, cmd_switch_name, param_str); - return opt; + for EachNode(cmd, LNK_CmdOption, cmd_line.first_option) { + if (str8_match(cmd->string, cmd_switch_name, StringMatchFlag_CaseInsensitive)) { + String8List value_strings = str8_list_copy(arena, &cmd->value_strings); + str8_list_concat_in_place(&values, &value_strings); + } + } + return values; } internal B32 @@ -397,7 +331,7 @@ lnk_cmd_switch_parse_version(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8 lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse major version"); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } exit:; @@ -424,13 +358,13 @@ lnk_cmd_switch_parse_tuple(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8Li tuple_out->v[1] = b; return 1; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable ot parse second parameter \"%S\"", value_strings.last->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse second parameter \"%S\"", value_strings.last->string); } } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse first parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } return 0; } @@ -453,6 +387,24 @@ lnk_try_parse_u64(String8 string, LNK_ParseU64Flags flags, U64 *value_out) return 1; } +internal B32 + +lnk_try_parse_s64(String8 string, LNK_ParseU64Flags flags, S64 *value_out) +{ + if (try_s64_from_str8_c_rules(string, value_out)) { + if (flags & LNK_ParseU64Flag_CheckUnder32bit) { + if (*value_out > max_S64) { + return 0; + } + } + if (flags & LNK_ParseU64Flag_CheckPow2) { + if (!IsPow2(*value_out)) { + return 0; + } + } + } + return 1; +} internal B32 lnk_cmd_switch_parse_u64(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, U64 *value_out, LNK_ParseU64Flags flags) @@ -492,6 +444,19 @@ lnk_cmd_switch_parse_u64_list(Arena *arena, LNK_Obj *obj, LNK_CmdSwitchType cmd_ return 1; } +internal B32 +lnk_cmd_switch_parse_s64_list(Arena *arena, LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, S64List *list_out, LNK_ParseU64Flags flags) +{ + for EachNode(string_n, String8Node, value_strings.first) { + S64 v; + if (!lnk_try_parse_s64(string_n->string, flags, &v)) { + return 0; + } + s64_list_push(arena, list_out, v); + } + return 1; +} + internal B32 lnk_cmd_switch_parse_flag(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8List value_strings, LNK_SwitchState *value_out) { @@ -594,7 +559,7 @@ lnk_cmd_switch_parse_string(LNK_Obj *obj, LNK_CmdSwitchType cmd_switch, String8L lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "empty string is not permitted"); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } return 0; } @@ -783,12 +748,19 @@ lnk_merge_directive_list_push(Arena *arena, LNK_MergeDirectiveList *list, LNK_Me internal String8 lnk_get_image_name(LNK_Config *config) { - String8 image_name = config->image_name; - image_name = str8_skip_last_slash(image_name); - image_name = str8_chop_last_dot(image_name); + String8 image_path = config->image_alt_path.size ? config->image_alt_path : config->out_path; + String8 image_name = str8_skip_last_slash(image_path); return image_name; } +internal String8 +lnk_get_pdb_name(LNK_Config *config) +{ + String8 pdb_path = config->pdb_alt_path.size ? config->pdb_alt_path : config->pdb_name; + String8 pdb_name = str8_skip_last_slash(pdb_path); + return pdb_name; +} + internal U64 lnk_get_default_function_pad_min(COFF_MachineType machine) { @@ -953,7 +925,7 @@ lnk_is_section_removed(LNK_Config *config, String8 section_name) internal B32 lnk_is_dll_delay_load(LNK_Config *config, String8 dll_name) { - return hash_table_search_path_u64(config->delay_load_ht, dll_name, 0); + return hash_map_search_path_u64(&config->delay_load_ht, dll_name) != 0; } internal String8 @@ -977,21 +949,21 @@ internal void lnk_push_disallow_lib(LNK_Config *config, String8 path) { String8 lib_name = lnk_get_lib_name(path); - hash_table_push_path_u64(config->arena, config->disallow_lib_ht, lib_name, 0); + hash_map_push_path_u64(config->arena, &config->disallow_lib_ht, lib_name, 1); } internal B32 lnk_is_lib_disallowed(LNK_Config *config, String8 path) { String8 lib_name = lnk_get_lib_name(path); - return hash_table_search_path(config->disallow_lib_ht, lib_name) != 0; + return hash_map_search_path_u64(&config->disallow_lib_ht, lib_name) != 0; } internal void lnk_include_symbol(LNK_Config *config, String8 name, LNK_Obj *obj) { // is this a duplicate symbol? - if (hash_table_search_string_raw(config->include_symbol_ht, name)) { + if (hash_map_search_string_raw(&config->include_symbol_ht, name)) { return; } @@ -1004,16 +976,25 @@ lnk_include_symbol(LNK_Config *config, String8 name, LNK_Obj *obj) SLLQueuePush(config->include_symbol_list.first, config->include_symbol_list.last, node); config->include_symbol_list.count += 1; - hash_table_push_string_raw(config->arena, config->include_symbol_ht, name, node); + hash_map_push_string_raw(config->arena, &config->include_symbol_ht, name, node); +} + +internal void +lnk_whole_archive(LNK_Config *config, String8 lib_name) +{ + String8Node value = { .string = lib_name }; + String8List value_strings = {0}; + str8_list_push_node(&value_strings, &value); + lnk_apply_cmd_option_to_config(config, str8_lit("wholearchive"), value_strings, 0); } internal void lnk_print_build_info() { - fprintf(stdout, " Compiler: %s\n", COMPILER_STRING); - fprintf(stdout, " Mode : %s\n", BUILD_MODE_STRING); - fprintf(stdout, " Date : %s %s\n", __TIME__, __DATE__); - fprintf(stdout, " Version : %s\n", BUILD_VERSION_STRING_LITERAL); + lnk_fprintf(stdout, " Compiler: %s\n", COMPILER_STRING); + lnk_fprintf(stdout, " Mode : %s\n", BUILD_MODE_STRING); + lnk_fprintf(stdout, " Date : %s %s\n", __TIME__, __DATE__); + lnk_fprintf(stdout, " Version : %s\n", BUILD_VERSION_STRING_LITERAL); } internal void @@ -1021,75 +1002,76 @@ lnk_print_help(void) { Temp scratch = scratch_begin(0,0); - fprintf(stdout, "--- Help -------------------------------------------------------\n"); - fprintf(stdout, " %s\n", BUILD_TITLE_STRING_LITERAL); - fprintf(stdout, "\n"); - fprintf(stdout, " Usage: radlink.exe [Options] [Files] [@rsp]\n"); - fprintf(stdout, "\n"); + static char spaces[] = " "; + U64 name_max_size = 0; + U64 args_max_size = 0; + U64 desc_max_size = 0; + for EachElement(i, g_cmd_switch_map) { + name_max_size = Max(name_max_size, strlen(g_cmd_switch_map[i].name)); + args_max_size = Max(args_max_size, strlen(g_cmd_switch_map[i].args)); + desc_max_size = Max(desc_max_size, strlen(g_cmd_switch_map[i].desc)); + } - fprintf(stdout, " Options:\n"); - for (U64 i = 0; i < ArrayCount(g_cmd_switch_map); ++i) { + lnk_fprintf(stdout, "--- Help -------------------------------------------------------------------------------------------------------------------\n"); + lnk_fprintf(stdout, " %s\n", BUILD_TITLE_STRING_LITERAL); + lnk_fprintf(stdout, "\n"); + lnk_fprintf(stdout, " Usage: radlink.exe [Options] [Files] [@rsp]\n"); + lnk_fprintf(stdout, "\n"); + + lnk_fprintf(stdout, " Options:\n"); + U64 option_indent_size = 4; + U64 option_name_max_size = 60; + for EachElement(i, g_cmd_switch_map) { Temp temp = temp_begin(scratch.arena); + U64 name_size = strlen(g_cmd_switch_map[i].name); + U64 args_size = strlen(g_cmd_switch_map[i].args); + U64 desc_size = strlen(g_cmd_switch_map[i].desc); + char *name = g_cmd_switch_map[i].name; char *args = g_cmd_switch_map[i].args; char *desc = g_cmd_switch_map[i].desc; LNK_CmdSwitchType type = g_cmd_switch_map[i].type; - if (strcmp(name, "") == 0 || - strcmp(name, "NOT_IMPLEMENTED") == 0 || - type == LNK_CmdSwitch_Help) { + if (strcmp(name, "") == 0 || strcmp(name, "NOT_IMPLEMENTED") == 0 || type == LNK_CmdSwitch_Help) { continue; } - String8 name_args = push_str8f(temp.arena, "%s%s", name, args); + String8List fmt = {0}; - fprintf(stdout, " /%-32.*s %s%s\n", - str8_varg(name_args), - desc, - type == LNK_CmdSwitch_NotImplemented ? "Not Implemented" : ""); + str8_list_pushf(temp.arena, &fmt, "%.*s", option_indent_size, spaces); + + str8_list_pushf(temp.arena, &fmt, "/"); + + B32 put_option_args_on_new_line = name_size + args_size > option_name_max_size; + if (put_option_args_on_new_line) { + str8_list_pushf(temp.arena, &fmt, "%s%s", name, args[0] == ':' ? ":" : ""); + } else { + str8_list_pushf(temp.arena, &fmt, "%s%s", name, args); + } + + U64 desc_indent_size = fmt.total_size < option_name_max_size ? option_name_max_size - fmt.total_size : 0; + str8_list_pushf(temp.arena, &fmt, "%.*s", desc_indent_size, spaces); + + str8_list_pushf(temp.arena, &fmt, "%s", desc); + str8_list_pushf(temp.arena, &fmt, "\n"); + + if (put_option_args_on_new_line) { + str8_list_pushf(temp.arena, &fmt, "%.*s", Min(option_name_max_size, option_indent_size + name_size + 1), spaces); + str8_list_pushf(temp.arena, &fmt, "%s\n", args[0] == ':' ? args + 1 : args); + } + + String8 line = str8_list_join(temp.arena, &fmt, 0); + lnk_fprintf(stdout, "%.*s", str8_varg(line)); temp_end(temp); } - fprintf(stdout, "\n"); + lnk_fprintf(stdout, "\n"); scratch_end(scratch); } -internal String8 -lnk_expand_env_vars_windows(Arena *arena, HashTable *env_vars, String8 string) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8List list = {0}; - for (U64 i = 0; i < string.size; ) { - U64 open = str8_find_needle(string, i, str8_lit("%"), 0); - U64 close = str8_find_needle(string, open+1, str8_lit("%"), 0); - - String8 text = str8_substr(string, rng_1u64(i, open)); - str8_list_push(scratch.arena, &list, text); - i += text.size; - - if (open < close) { - String8 env_var_name = str8_substr(string, rng_1u64(open+1, close)); - KeyValuePair *match = hash_table_search_path(env_vars, env_var_name); - if (match) { - str8_list_push(scratch.arena, &list, match->value_string); - i = close+1; - } else { - str8_list_pushf(scratch.arena, &list, "%%%S", env_var_name); - i = close; - } - } - } - - String8 result = str8_list_join(arena, &list, 0); - - scratch_end(scratch); - return result; -} - internal String8List lnk_unwrap_rsp(Arena *arena, String8List arg_list) { @@ -1103,7 +1085,7 @@ lnk_unwrap_rsp(Arena *arena, String8List arg_list) // remove "@" String8 name = str8_skip(curr->string, 1); - if (os_file_path_exists(name)) { + if (file_path_exists(name)) { // read rsp from disk String8 file = lnk_read_data_from_file_path(scratch.arena, 0, name); @@ -1130,6 +1112,26 @@ lnk_unwrap_rsp(Arena *arena, String8List arg_list) return result; } +internal void +lnk_apply_write_temp_files(Arena *arena, LNK_Config *config) +{ + if (config->rad_chunk_map_name.size) { + config->temp_rad_chunk_map_name = push_str8f(arena, "%S.tmp%x", config->rad_chunk_map_name, config->time_stamp); + } + if (config->out_path.size) { + config->temp_out_path = push_str8f(arena, "%S.tmp%x", config->out_path, config->time_stamp); + } + if (config->pdb_name.size) { + config->temp_pdb_name = push_str8f(arena, "%S.tmp%x", config->pdb_name, config->time_stamp); + } + if (config->rad_debug_name.size) { + config->temp_rad_debug_name = push_str8f(arena, "%S.tmp%x", config->rad_debug_name, config->time_stamp); + } + if (config->type_server_name.size) { + config->temp_type_server_name = push_str8f(arena, "%S.tmp%x", config->type_server_name, config->time_stamp); + } +} + internal void lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List value_strings, LNK_Obj *obj) { @@ -1166,23 +1168,23 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List if (value_strings.node_count == 1) { LNK_AltName alt_name; if (lnk_parse_alt_name_directive(value_strings.first->string, obj, &alt_name)) { - String8 to_extant = {0}; - if (hash_table_search_string_string(config->alt_name_ht, alt_name.from, &to_extant)) { - if (str8_match(to_extant, alt_name.to, 0)) { + String8 *to_extant = hash_map_search_string_string(&config->alt_name_ht, alt_name.from); + if (to_extant) { + if (str8_match(*to_extant, alt_name.to, 0)) { // ignore, duplicate } else { - lnk_error_obj(LNK_Error_AlternateNameConflict, obj, "conflicting alternative name: existing '%S=%S' vs. new '%S=%S'", alt_name.from, to_extant, alt_name.from, alt_name.to); + lnk_error_obj(LNK_Error_AlternateNameConflict, obj, "conflicting alternative name: existing '%S=%S' vs. new '%S=%S'", alt_name.from, *to_extant, alt_name.from, alt_name.to); } } else { alt_name.from = push_str8_copy(config->arena, alt_name.from); alt_name.to = push_str8_copy(config->arena, alt_name.to); lnk_alt_name_list_push(config->arena, &config->alt_name_list, alt_name); - hash_table_push_string_string(config->arena, config->alt_name_ht, alt_name.from, alt_name.to); + hash_map_push_string_string(config->arena, &config->alt_name_ht, alt_name.from, alt_name.to); } } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1218,10 +1220,6 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; - case LNK_CmdSwitch_Brepro: { - // not supported -- ignore - } break; - case LNK_CmdSwitch_Debug: { if (value_strings.node_count == 0) { config->debug_mode = LNK_DebugMode_Full; @@ -1229,7 +1227,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List LNK_DebugMode debug_mode = lnk_debug_mode_from_string(value_strings.first->string); if (debug_mode == LNK_DebugMode_GHash) { config->debug_mode = LNK_DebugMode_Full; - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "GHASH is not supported, switching to FULL"); + config->ghash = 1; } else if (debug_mode == LNK_DebugMode_FastLink) { config->debug_mode = LNK_DebugMode_Full; lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "FASTLINK is not supported, switching to FULL"); @@ -1239,7 +1237,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1254,13 +1252,13 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List case LNK_CmdSwitch_Delay: { if (value_strings.node_count == 0 || value_strings.node_count > 1) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } else { String8 value = value_strings.first->string; if (str8_match_lit("unload", value, StringMatchFlag_CaseInsensitive)) { - config->import_table_emit_uiat = 1; + config->import_table_emit_uiat = LNK_SwitchState_Yes; } else if (str8_match_lit("nobind", value, StringMatchFlag_CaseInsensitive)) { - config->import_table_emit_biat = 0; + config->import_table_emit_biat = LNK_SwitchState_No; } else { lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value); } @@ -1269,9 +1267,9 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List case LNK_CmdSwitch_DelayLoad: { for (String8Node *name_n = value_strings.first; name_n != 0; name_n = name_n->next) { - if (hash_table_search_path_u64(config->delay_load_ht, name_n->string, 0)) { continue; } + if (hash_map_search_path_u64(&config->delay_load_ht, name_n->string)) { continue; } String8 name = push_str8_copy(config->arena, name_n->string); - hash_table_push_path_u64(config->arena, config->delay_load_ht, name, 0); + hash_map_push_path_u64(config->arena, &config->delay_load_ht, name, 1); str8_list_push(config->arena, &config->delay_load_dll_list, name); } } break; @@ -1284,14 +1282,6 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_DYNAMIC_BASE); } break; - case LNK_CmdSwitch_Dump: { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unsupported switch; binary dump is done by passing /DUMP to link.exe"); - } break; - - case LNK_CmdSwitch_D2: { - // not supported -- ignore - } break; - case LNK_CmdSwitch_Entry: { String8 new_entry_point_name = {0}; lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &new_entry_point_name); @@ -1304,15 +1294,11 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List config->entry_point_name = new_entry_point_name; } break; - case LNK_CmdSwitch_ErrorReport: { - // not supported -- ignore - } break; - case LNK_CmdSwitch_Export: { PE_ExportParse export_parse = {0}; if (lnk_parse_export_directive_ex(config->arena, value_strings, obj, &export_parse)) { String8 export_name = pe_name_from_export_parse(&export_parse); - PE_ExportParseNode *exp_n = hash_table_search_string_raw(config->export_ht, export_name); + PE_ExportParseNode *exp_n = hash_map_search_string_raw(&config->export_ht, export_name); if (exp_n == 0) { // make sure export is defined @@ -1323,7 +1309,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List // push new export exp_n = pe_export_parse_list_push(config->arena, &config->export_symbol_list, export_parse); - hash_table_push_string_raw(config->arena, config->export_ht, export_name, exp_n); + hash_map_push_string_raw(config->arena, &config->export_ht, export_name, exp_n); } else { B32 is_ambiguous = 1; PE_ExportParse *extant_export = &exp_n->data; @@ -1350,8 +1336,34 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; - case LNK_CmdSwitch_FastFail: { - // do nothing + case LNK_CmdSwitch_FailIfMismatch: { + if (value_strings.node_count != 1) { + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); + break; + } + + LNK_AltName dir; + if ( ! lnk_parse_alt_name_directive(value_strings.first->string, obj, &dir)) { + break; + } + + LNK_AltName *current = hash_map_search_string_raw(&config->fail_if_mismatch_ht, dir.from); + if (current) { + if ( ! str8_match(current->to, dir.to, 0)) { + lnk_error_cmd_switch(LNK_Error_FailIfMismatch, obj, cmd_switch, + "'%S=%S' mismatch in:\n" + " %S: /FAILIFMISMATCH:%S=%S\n", + dir.from, dir.to, + lnk_loc_from_obj(scratch.arena, current->obj), current->from, current->to); + break; + } + } else { + LNK_AltName *n = push_array(config->arena, LNK_AltName, 1); + n->from = push_str8_copy(config->arena, dir.from); + n->to = push_str8_copy(config->arena, dir.to); + n->obj = obj; + hash_map_push_string_raw(config->arena, &config->fail_if_mismatch_ht, n->from, n); + } } break; case LNK_CmdSwitch_FileAlign: { @@ -1405,16 +1417,18 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &error_code, 0)) { switch (error_code) { case LNK_MsWarningCode_UnsuedDelayLoadDll: { - lnk_suppress_error(LNK_Warning_UnusedDelayLoadDll); + lnk_ignore_error(LNK_Warning_UnusedDelayLoadDll); } break; case LNK_MsWarningCode_MissingExternalTypeServer: { - lnk_suppress_error(LNK_Warning_MissingExternalTypeServer); + lnk_ignore_error(LNK_Warning_MissingExternalTypeServer); } break; case LNK_MsWarningCode_SectionFlagsConflict: { - lnk_suppress_error(LNK_Warning_SectionFlagsConflict); + lnk_ignore_error(LNK_Warning_SectionFlagsConflict); } break; default: { + #if BUILD_DEBUG lnk_not_implemented("TODO: /IGNORE:%llu", error_code); + #endif } break; } } @@ -1430,13 +1444,8 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; - case LNK_CmdSwitch_Incremental: { - LNK_SwitchState state; - if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { - if (state == LNK_SwitchState_Yes) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "incremental linkage is not supported"); - } - } + case LNK_CmdSwitch_InferAsanLibs: { + lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->infer_asan_libs); } break; case LNK_CmdSwitch_LargeAddressAware: { @@ -1450,8 +1459,8 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List case LNK_CmdSwitch_LibPath: { String8List lib_dir_list = str8_list_copy(config->arena, &value_strings); for (String8Node *dir_n = lib_dir_list.first; dir_n != 0; dir_n = dir_n->next) { - if (!os_folder_path_exists(dir_n->string)) { - String8 full_path = os_full_path_from_path(scratch.arena, dir_n->string); + if (!folder_path_exists(dir_n->string)) { + String8 full_path = full_path_from_path(scratch.arena, dir_n->string); lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "path doesn't exist %S", full_path); } } @@ -1467,7 +1476,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1598,7 +1607,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_merge_directive_list_push(config->arena, &config->merge_list, merge); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters %d", value_strings.node_count); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1622,10 +1631,10 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } else { for (String8Node *lib_n = value_strings.first; lib_n != 0; lib_n = lib_n->next) { String8 lib_name = lnk_get_lib_name(lib_n->string); - if (hash_table_search_path_raw(config->disallow_lib_ht, lib_name)) { + if (hash_map_search_path_u64(&config->disallow_lib_ht, lib_name)) { continue; } - hash_table_push_path_raw(config->arena, config->disallow_lib_ht, lib_name, 0); + hash_map_push_path_u64(config->arena, &config->disallow_lib_ht, lib_name, 1); } } } break; @@ -1638,10 +1647,6 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List config->build_imp_lib = 0; } break; - case LNK_CmdSwitch_NoLogo: { - // we don't print logo - } break; - case LNK_CmdSwitch_NxCompat: { lnk_cmd_switch_set_flag_16(obj, cmd_switch, value_strings, &config->dll_characteristics, PE_DllCharacteristic_NX_COMPAT); } break; @@ -1681,7 +1686,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } break; case LNK_CmdSwitch_Out: { - lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->image_name); + lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->out_path); } break; case LNK_CmdSwitch_Pdb: { @@ -1708,11 +1713,18 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; + case LNK_CmdSwitch_PdbStripped: { + String8 file_name; + if (lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, &file_name)) { + config->pdb_stripped_name = str8_copy(config->arena, file_name); + } + } break; + case LNK_CmdSwitch_Release: { if (value_strings.node_count == 0) { config->flags |= LNK_ConfigFlag_WriteImageChecksum; } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1746,9 +1758,11 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List PE_WindowsSubsystem subsystem = pe_subsystem_from_string(value_strings.first->string); if (subsystem != PE_WindowsSubsystem_UNKNOWN) { if (config->subsystem != PE_WindowsSubsystem_UNKNOWN) { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "overriding subystem \"%S\" with \"%S\"", - pe_string_from_subsystem(config->subsystem), - pe_string_from_subsystem(subsystem)); + if (config->subsystem != subsystem) { + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "overriding subystem \"%S\" with \"%S\"", + pe_string_from_subsystem(config->subsystem), + pe_string_from_subsystem(subsystem)); + } } config->subsystem = subsystem; @@ -1761,7 +1775,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid subsystem \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1776,28 +1790,56 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_cmd_switch_parse_version(obj, cmd_switch, value_strings, &config->image_ver); } break; + case LNK_CmdSwitch_WholeArchive: { + if (value_strings.node_count == 0) { + config->whole_archive_all = 1; + } else { + String8 lib_name; + if (lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, &lib_name)) { + lib_name = str8_chop_last_dot(str8_skip_last_slash(lib_name)); + hash_map_push_path_u64(config->arena, &config->whole_archive_ht, lib_name, 1); + } + } + } break; + case LNK_CmdSwitch_Rad_Age: { lnk_cmd_switch_parse_u32(obj, cmd_switch, value_strings, &config->age, 0); } break; - case LNK_CmdSwitch_Rad_AltPchDir: { - if (value_strings.node_count == 0) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "missing parameters"); - break; - } - String8List dirs = str8_list_copy(config->arena, &value_strings); - str8_list_concat_in_place(&config->alt_pch_dirs, &dirs); - } break; + //case LNK_CmdSwitch_Rad_BuildExp: { + // LNK_SwitchState state; + // if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { + // config->build_exp = (state == LNK_SwitchState_Yes); + // } + //} break; case LNK_CmdSwitch_Rad_BuildInfo: { lnk_print_build_info(); - os_abort(0); + abort_self(0); + } break; + + case LNK_CmdSwitch_Rad_BuildImpLib: { + LNK_SwitchState state; + if (lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &state)) { + config->build_imp_lib = (state == LNK_SwitchState_Yes); + } } break; case LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll: { lnk_cmd_switch_set_flag_64(obj, cmd_switch, value_strings, &config->flags, LNK_ConfigFlag_CheckUnusedDelayLoadDll); } break; + case LNK_CmdSwitch_Rad_DataDirCount: { + U64 data_dir_count = 0; + if (lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &data_dir_count, LNK_ParseU64Flag_CheckUnder32bit)) { + if (1 <= data_dir_count && data_dir_count <= PE_DataDirectoryIndex_COUNT) { + config->data_dir_count = data_dir_count; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid data directory count %llu, expected 1 through %u", data_dir_count, PE_DataDirectoryIndex_COUNT); + } + } + } break; + case LNK_CmdSwitch_Rad_Map: { lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->rad_chunk_map_name); config->rad_chunk_map = LNK_SwitchState_Yes; @@ -1808,7 +1850,39 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } break; case LNK_CmdSwitch_Rad_MemoryMapFiles: { - lnk_cmd_switch_set_flag_32(obj, cmd_switch, value_strings, &config->io_flags, LNK_IO_Flags_MemoryMapFiles); + if (value_strings.node_count == 0) { + config->io_flags &= ~LNK_IO_Flags_MemoryMapFilesReadWrite; + config->io_flags |= LNK_IO_Flags_MemoryMapFilesReadOnly; + } else if (value_strings.node_count == 1) { + String8 value = value_strings.first->string; + if (str8_matchi(value, str8_lit("no"))) { + config->io_flags &= ~(LNK_IO_Flags_MemoryMapFilesReadOnly|LNK_IO_Flags_MemoryMapFilesReadWrite); + } else if (str8_matchi(value, str8_lit("yes")) || str8_matchi(value, str8_lit("read_only"))) { + config->io_flags &= ~LNK_IO_Flags_MemoryMapFilesReadWrite; + config->io_flags |= LNK_IO_Flags_MemoryMapFilesReadOnly; + } else if (str8_matchi(value, str8_lit("read_write"))) { + config->io_flags &= ~LNK_IO_Flags_MemoryMapFilesReadOnly; + config->io_flags |= LNK_IO_Flags_MemoryMapFilesReadWrite; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter: \"%S\", expected NO, READ_ONLY, or READ_WRITE", value); + } + } else { + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); + } + } break; + + case LNK_CmdSwitch_Rad_BootMode: { + if (value_strings.node_count == 1) { + if (str8_matchi(value_strings.first->string, str8_lit("linker"))) { + config->boot_mode = LNK_BootMode_Linker; + } else if (str8_matchi(value_strings.first->string, str8_lit("type_server"))) { + config->boot_mode = LNK_BootMode_TypeServer; + } else { + lnk_error_cmd_switch(LNK_Error_Boot, obj, cmd_switch, "unknown value: \"%S\".", value_strings.first->string); + } + } else { + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Boot, obj, cmd_switch); + } } break; case LNK_CmdSwitch_Rad_Debug: { @@ -1845,7 +1919,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List if (str8_match_lit("imageblake3", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { config->guid_type = Lnk_DebugInfoGuid_ImageBlake3; } else if (str8_match_lit("random", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { - config->guid = os_make_guid(); + config->guid = make_guid(); } else { Guid guid; if (try_guid_from_string(value_strings.first->string, &guid)) { @@ -1861,7 +1935,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List case LNK_CmdSwitch_Rad_LargePages: { if (value_strings.node_count == 0) { - OS_ProcessInfo *process_info = os_get_process_info(); + ProcessInfo *process_info = get_process_info(); if (process_info->large_pages_allowed) { arena_default_flags |= ArenaFlag_LargePages; } else { @@ -1878,7 +1952,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } else if (value_strings.node_count == 1) { if (str8_match_lit("quiet", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { - OS_ProcessInfo *process_info = os_get_process_info(); + ProcessInfo *process_info = get_process_info(); if (process_info->large_pages_allowed) { arena_default_flags |= ArenaFlag_LargePages; } @@ -1888,7 +1962,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid parameter: \"%S\", expected NO or QUIET", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1898,23 +1972,31 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List case LNK_CmdSwitch_Rad_Log: { if (value_strings.node_count == 1) { - if (str8_match_lit("all", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { + String8 value = value_strings.first->string; + + B32 status = 1; + if (str8_starts_with(value, str8_lit("-"))) { + value = str8_skip(value, 1); + status = 0; + } + + if (str8_match_lit("all", value, StringMatchFlag_CaseInsensitive)) { for (U64 ilog = 0; ilog < LNK_Log_Count; ilog += 1) { - lnk_set_log_status((LNK_LogType)ilog, 1); + lnk_set_log_status((LNK_LogType)ilog, status); } - } else if (str8_match_lit("io", value_strings.first->string, StringMatchFlag_CaseInsensitive)) { - lnk_set_log_status(LNK_Log_IO_Read, 1); - lnk_set_log_status(LNK_Log_IO_Write, 1); + } else if (str8_match_lit("io", value, StringMatchFlag_CaseInsensitive)) { + lnk_set_log_status(LNK_Log_IO_Read, status); + lnk_set_log_status(LNK_Log_IO_Write, status); } else { - LNK_LogType log_type = lnk_log_type_from_string(value_strings.first->string); + LNK_LogType log_type = lnk_log_type_from_string(value); if (log_type == LNK_Log_Null) { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value_strings.first->string); + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown parameter \"%S\"", value); } else { - lnk_set_log_status(log_type, 1); + lnk_set_log_status(log_type, status); } } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters, expected 1"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1939,7 +2021,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unable to parse parameter \"%S\"", value_strings.first->string); } } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "invalid number of parameters"); + lnk_error_cmd_switch_invalid_param_count(LNK_Error_Cmdl, obj, cmd_switch); } } break; @@ -1987,7 +2069,7 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } break; case LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers: { - OS_SystemInfo *sysinfo = os_get_system_info(); + SystemInfo *sysinfo = get_system_info(); if (value_strings.node_count == 0) { config->max_worker_count = sysinfo->logical_processor_count; } else { @@ -2001,41 +2083,59 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; - case LNK_CmdSwitch_Rad_SuppressError: { - U64List error_code_list = {0}; - if (lnk_cmd_switch_parse_u64_list(scratch.arena, obj, cmd_switch, value_strings, &error_code_list, 0)) { - for (U64Node *error_code_n = error_code_list.first; error_code_n != 0; error_code_n = error_code_n->next) { - if (error_code_n->data < LNK_Error_Count) { - lnk_suppress_error(error_code_n->data); - } else { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "unknown error code %llu", error_code_n->data); - } + case LNK_CmdSwitch_Rad_SortImports: { + lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->sort_imports); + } break; + + case LNK_CmdSwitch_Rad_Ignore: { + S64List error_code_list = {0}; + if ( ! lnk_cmd_switch_parse_s64_list(scratch.arena, obj, cmd_switch, value_strings, &error_code_list, 0)) { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "failed to parse input code"); + break; + } + + for EachNode(error_code_n, S64Node, error_code_list.first) { + S64 code = error_code_n->v; + + if (abs_s64(code) >= LNK_Error_Count) { + lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "unknown error code %llu", (U64)abs_s64(code)); + continue; + } + + if (code > 0) { + lnk_ignore_error(code); + } else if (code < 0) { + lnk_activate_error(abs_s64(code)); } } } break; - case LNK_CmdSwitch_Rad_TargetOs: { - if (value_strings.node_count == 1) { - String8 os_string = str8_list_first(&value_strings); - OperatingSystem target_os = operating_system_from_string(os_string); - if (target_os != OperatingSystem_Null) { - config->target_os = target_os; - } else { - lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown operating system type %S", os_string); - } - } else { - lnk_error_cmd_switch(LNK_Warning_Cmdl, obj, cmd_switch, "expected 1 parameter"); - } + case LNK_CmdSwitch_Rad_ImageAltPath: { + lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->image_alt_path); } break; case LNK_CmdSwitch_Rad_WriteTempFiles: { lnk_cmd_switch_parse_flag(obj, cmd_switch, value_strings, &config->write_temp_files); + if (config->write_temp_files == LNK_SwitchState_Yes) { + lnk_apply_write_temp_files(config->arena, config); + } } break; case LNK_CmdSwitch_Rad_TimeStamp: { lnk_cmd_switch_parse_u32(obj, cmd_switch, value_strings, &config->time_stamp, 0); } break; + case LNK_CmdSwitch_Rad_TypeHashAlg: { + String8 alg = {0}; + if (lnk_cmd_switch_parse_string(obj, cmd_switch, value_strings, &alg)) { + if (str8_match(alg, str8_lit("BLAKE3"), StringMatchFlag_CaseInsensitive)) { + config->type_hash_alg = LLVM_GHashAlg_BLAKE3; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "unknown hash alg: %S", alg); + } + } + } break; + case LNK_CmdSwitch_Rad_UnresolvedSymbolLimit: { lnk_cmd_switch_parse_u64(obj, cmd_switch, value_strings, &config->unresolved_symbol_limit, 0); } break; @@ -2045,8 +2145,8 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } break; case LNK_CmdSwitch_Rad_Version: { - fprintf(stdout, "%s\n", BUILD_TITLE_STRING_LITERAL); - os_abort(0); + lnk_fprintf(stdout, "%s\n", BUILD_TITLE_STRING_LITERAL); + abort_self(0); } break; case LNK_CmdSwitch_Rad_Workers: { @@ -2056,56 +2156,75 @@ lnk_apply_cmd_option_to_config(LNK_Config *config, String8 cmd_name, String8List } } break; + case LNK_CmdSwitch_Rad_WorkDir: { + lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->work_dir); + } break; + case LNK_CmdSwitch_Help: { lnk_print_help(); - os_abort(0); + abort_self(0); + } break; + + case LNK_CmdSwitch_RadTypeServer: { + lnk_cmd_switch_parse_string_copy(config->arena, obj, cmd_switch, value_strings, &config->type_server_name); + + if (config->type_server_name.size) { + String8 ext = str8_postfix(config->type_server_name, s("rrt").size); + if (str8_matchi(ext, s("rrt"))) { + config->boot_mode = LNK_BootMode_TypeServer; + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "missing .rrt file extension after type server name %S", config->type_server_name); + } + } else { + lnk_error_cmd_switch(LNK_Error_Cmdl, obj, cmd_switch, "missing type server file path"); + } } break; } scratch_end(scratch); } +internal void +lnk_config_pushf(LNK_Config *config, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + LNK_CmdLine cmd_line = lnk_cmd_line_from_stringfv_windows_rules(config->arena, fmt, args); + va_end(args); + + for EachNode(cmd, LNK_CmdOption, cmd_line.first_option) { + lnk_apply_cmd_option_to_config(config, cmd->string, cmd->value_strings, &(LNK_Obj){0}); + } +} + internal LNK_Config * -lnk_config_from_cmd_line(String8List raw_cmd_line, LNK_CmdLine cmd_line) +lnk_config_init(LNK_CmdLine cmd_line) { ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); + Temp scratch = scratch_begin(0,0); Arena *arena = arena_alloc(); LNK_Config *config = push_array(arena, LNK_Config, 1); - config->arena = arena; - config->raw_cmd_line = str8_list_copy(arena, &raw_cmd_line); - config->work_dir = os_get_current_path(arena); - config->build_imp_lib = 1; - config->build_exp = 1; - config->heap_reserve = MB(1); - config->heap_commit = KB(1); - config->stack_reserve = MB(1); - config->stack_commit = KB(1); - config->pdb_hash_type_names = LNK_TypeNameHashMode_None; - config->pdb_hash_type_name_length = 8; - config->data_dir_count = PE_DataDirectoryIndex_COUNT; - config->export_ht = hash_table_init(arena, max_U16/2); - config->alt_name_ht = hash_table_init(arena, 0x100); - config->include_symbol_ht = hash_table_init(arena, 0x100); - config->delay_load_ht = hash_table_init(arena, 0x100); - config->disallow_lib_ht = hash_table_init(arena, 0x100); + config->arena = arena; + config->raw_cmd_line = str8_list_copy(arena, &cmd_line.raw_cmd_line); + config->work_dir = get_current_path(arena); - // process command line switches - for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { + // apply command line switches + for EachNode(cmd, LNK_CmdOption, cmd_line.first_option) { lnk_apply_cmd_option_to_config(config, cmd->string, cmd->value_strings, 0); } + // in shared thread pool mode force fixed number of workers + if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPool) && + !lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers)) { + config->max_worker_count = get_system_info()->logical_processor_count; + } + // :manifest_input if (lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_ManifestInput)) { if (config->manifest_opt == LNK_ManifestOpt_Embed) { - for (LNK_CmdOption *cmd = cmd_line.first_option; cmd != 0; cmd = cmd->next) { - LNK_CmdSwitchType cmd_switch = lnk_cmd_switch_type_from_string(cmd->string); - if (cmd_switch == LNK_CmdSwitch_ManifestInput) { - String8List manifest_list = str8_list_copy(arena, &cmd->value_strings); - str8_list_concat_in_place(&config->input_list[LNK_Input_Manifest], &manifest_list); - } - } + String8List manifest_list = lnk_cmd_line_values_from_switch(arena, cmd_line, LNK_CmdSwitch_ManifestInput); + str8_list_concat_in_place(&config->input_list[LNK_Input_Manifest], &manifest_list); } else { lnk_error_cmd_switch(LNK_Error_Cmdl, 0, LNK_CmdSwitch_ManifestInput, "missing /MANIFEST:EMBED"); } @@ -2121,9 +2240,9 @@ lnk_config_from_cmd_line(String8List raw_cmd_line, LNK_CmdLine cmd_line) } // input files - for (String8Node *input_node = cmd_line.input_list.first; input_node != 0; input_node = input_node->next) { + for EachNode(input_node, String8Node, cmd_line.input_list.first) { String8 path = push_str8_copy(arena, input_node->string); - String8 ext = str8_skip_last_dot(path); + String8 ext = str8_skip_last_dot(path); // map file extension to input type LNK_InputType input_type = lnk_input_type_from_string(ext); @@ -2147,6 +2266,13 @@ lnk_config_from_cmd_line(String8List raw_cmd_line, LNK_CmdLine cmd_line) if (config->dll_characteristics & PE_DllCharacteristic_NO_BIND) { config->import_table_emit_biat = LNK_SwitchState_No; } + + if (config->import_table_emit_biat == LNK_SwitchState_Null) { + config->import_table_emit_biat = LNK_SwitchState_Yes; + } + if (config->import_table_emit_uiat == LNK_SwitchState_Null) { + config->import_table_emit_uiat = LNK_SwitchState_Yes; + } // set flags for /OPT { @@ -2214,96 +2340,82 @@ lnk_config_from_cmd_line(String8List raw_cmd_line, LNK_CmdLine cmd_line) // handle empty /OUT if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Out)) { - String8 name = str8_list_first(&config->input_list[LNK_Input_Obj]); - String8 ext = (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) ? str8_lit("dll") : str8_lit("exe"); - config->image_name = path_replace_file_extension(scratch.arena, name, ext); + String8 name = str8_list_first(&config->input_list[LNK_Input_Obj]); + String8 ext = (config->file_characteristics & PE_ImageFileCharacteristic_FILE_DLL) ? str8_lit("dll") : str8_lit("exe"); + config->out_path = path_replace_file_extension(scratch.arena, name, ext); } // handle empty /PDB if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Pdb)) { - config->pdb_name = path_replace_file_extension(scratch.arena, config->image_name, str8_lit("pdb")); + config->pdb_name = path_replace_file_extension(scratch.arena, config->out_path, str8_lit("pdb")); } // handle empty /RAD_DEBUG_NAME if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_Rad_DebugName)) { - config->rad_debug_name = path_replace_file_extension(scratch.arena, config->image_name, str8_lit("rdi")); + config->rad_debug_name = path_replace_file_extension(scratch.arena, config->out_path, str8_lit("rdi")); } // handle empty /IMPLIB if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_ImpLib)) { - config->imp_lib_name = path_replace_file_extension(scratch.arena, config->image_name, str8_lit("lib")); + config->imp_lib_name = path_replace_file_extension(scratch.arena, config->out_path, str8_lit("lib")); } // handle empty /MANIFESTFILE if (!lnk_cmd_line_has_switch(cmd_line, LNK_CmdSwitch_ManifestFile)) { - config->manifest_name = push_str8f(scratch.arena, "%S.manifest", config->image_name); + config->manifest_name = push_str8f(scratch.arena, "%S.manifest", config->out_path); } // convert to full paths - config->image_name = os_full_path_from_path(arena, config->image_name); - config->pdb_name = os_full_path_from_path(arena, config->pdb_name); - config->rad_debug_name = os_full_path_from_path(arena, config->rad_debug_name); - config->imp_lib_name = os_full_path_from_path(arena, config->imp_lib_name); - config->manifest_name = os_full_path_from_path(arena, config->manifest_name); + config->out_path = full_path_from_path(arena, config->out_path); + config->pdb_name = full_path_from_path(arena, config->pdb_name); + config->rad_debug_name = full_path_from_path(arena, config->rad_debug_name); + config->imp_lib_name = full_path_from_path(arena, config->imp_lib_name); + config->manifest_name = full_path_from_path(arena, config->manifest_name); - // collect env vars - HashTable *env_vars = hash_table_init(scratch.arena, 512); + // set up env vars + HashMap env_vars = lnk_env_vars_from_process_info(scratch.arena, get_process_info(), LNK_EnvVarRule_Batch); { -#if OS_WINDOWS - OS_ProcessInfo *process_info = os_get_process_info(); - for (String8Node *node = process_info->environment.first; node != 0; node = node->next) { - String8List list = str8_split_by_string_chars(scratch.arena, node->string, str8_lit("="), 0); - - String8 key = list.first->string; - String8 val = str8_zero(); - if (list.node_count == 2) { - val = list.last->string; - } else if (list.node_count > 2) { - U64 sep_idx = str8_find_needle(node->string, node->string.size, str8_lit("="), 0); - val = str8_skip(node->string, sep_idx+1); + // define linker env vars + struct { String8 key, value; } key_value_str8_table[] = { + { str8_lit("_pdb"), str8_skip_last_slash(config->pdb_name) }, + { str8_lit("_ext"), str8_skip_last_dot(config->out_path) }, + { str8_lit("_rad_pdb_path"), config->pdb_name }, + { str8_lit("_rad_rdi"), str8_skip_last_slash(config->rad_debug_name) }, + { str8_lit("_radi_rdi_path"), config->rad_debug_name }, + }; + for EachElement(i, key_value_str8_table) { + if (lnk_env_var_from_map(&env_vars, key_value_str8_table[i].key)) { + lnk_log(LNK_Log_Debug, "Env var already exists: %S\n",key_value_str8_table[i].key); } - - hash_table_push_path_string(scratch.arena, env_vars, key, val); - } -#endif - } - - // define linker env vars - hash_table_push_path_string(scratch.arena, env_vars, str8_lit("_pdb"), str8_skip_last_slash(config->pdb_name)); - hash_table_push_path_string(scratch.arena, env_vars, str8_lit("_ext"), str8_skip_last_dot(config->image_name)); - hash_table_push_path_string(scratch.arena, env_vars, str8_lit("_rad_pdb_path"), config->pdb_name); - hash_table_push_path_string(scratch.arena, env_vars, str8_lit("_rad_rdi"), str8_skip_last_slash(config->rad_debug_name)); - hash_table_push_path_string(scratch.arena, env_vars, str8_lit("_rad_rdi_path"), config->rad_debug_name); - - // collect LIB and LIBPATH - if (config->flags & LNK_ConfigFlag_EnvLib) { - KeyValuePair *lib = hash_table_search_path(env_vars, str8_lit("lib")); - if (lib) { - String8List val_list = str8_split_by_string_chars(scratch.arena, lib->value_string, str8_lit(";"), 0); - String8List val_list_copy = str8_list_copy(arena, &val_list); - str8_list_concat_in_place(&config->lib_dir_list, &val_list_copy); + lnk_env_var_batchf(scratch.arena, &env_vars, "%S=%S", key_value_str8_table[i].key, key_value_str8_table[i].value); } - KeyValuePair *lib_path = hash_table_search_path(env_vars, str8_lit("libpath")); - if (lib_path) { - String8List val_list = str8_split_by_string_chars(scratch.arena, lib->value_string, str8_lit(";"), 0); - String8List val_list_copy = str8_list_copy(arena, &val_list); - str8_list_concat_in_place(&config->lib_dir_list, &val_list_copy); + if (config->flags & LNK_ConfigFlag_EnvLib) { + // collect LIB and LIBPATH + struct { String8List *config_list; char *key; } key_str8_list[] = { + { &config->lib_dir_list, "lib" }, + { &config->lib_dir_list, "lib_path" }, + }; + for EachElement(i, key_str8_list) { + LNK_EnvVar *var = lnk_env_var_from_mapf(&env_vars, key_str8_list[i].key); + if (var) { + String8List value = lnk_value_list_from_env_var(arena, var); + String8List value_copy = str8_list_copy(config->arena, &value); + str8_list_concat_in_place(key_str8_list[i].config_list, &value_copy); + } + } } } // :PdbAltPath - config->pdb_alt_path = lnk_expand_env_vars_windows(arena, env_vars, config->pdb_alt_path); + config->pdb_alt_path = lnk_expand_env_vars_windows(arena, &env_vars, config->pdb_alt_path); // :Rad_DebugAltPath - config->rad_debug_alt_path = lnk_expand_env_vars_windows(arena, env_vars, config->rad_debug_alt_path); + config->rad_debug_alt_path = lnk_expand_env_vars_windows(arena, &env_vars, config->rad_debug_alt_path); // create temporary files names if (config->write_temp_files == LNK_SwitchState_Yes) { - config->temp_rad_chunk_map_name = push_str8f(arena, "%S.tmp%x", config->rad_chunk_map_name, config->time_stamp); - config->temp_image_name = push_str8f(arena, "%S.tmp%x", config->image_name, config->time_stamp); - config->temp_pdb_name = push_str8f(arena, "%S.tmp%x", config->pdb_name, config->time_stamp); - config->temp_rad_debug_name = push_str8f(arena, "%S.tmp%x", config->rad_debug_name, config->time_stamp); + lnk_apply_write_temp_files(arena, config); } scratch_end(scratch); diff --git a/src/linker/lnk_config.h b/src/linker/lnk_config.h index 3638ea29..a781d664 100644 --- a/src/linker/lnk_config.h +++ b/src/linker/lnk_config.h @@ -3,6 +3,13 @@ #pragma once +// entry points +typedef enum +{ + LNK_BootMode_Linker, + LNK_BootMode_TypeServer, +} LNK_BootMode; + #if OS_WINDOWS # define LNK_MANIFEST_MERGE_TOOL_NAME "mt.exe" #elif OS_LINUX || OS_MAC @@ -42,23 +49,23 @@ typedef enum LNK_CmdSwitch_DefaultLib, LNK_CmdSwitch_Delay, LNK_CmdSwitch_DelayLoad, + LNK_CmdSwitch_DisallowLib, LNK_CmdSwitch_Dll, LNK_CmdSwitch_DynamicBase, - LNK_CmdSwitch_Dump, - LNK_CmdSwitch_D2, LNK_CmdSwitch_Entry, - LNK_CmdSwitch_ErrorReport, LNK_CmdSwitch_Export, - LNK_CmdSwitch_FastFail, + LNK_CmdSwitch_FailIfMismatch, LNK_CmdSwitch_FileAlign, LNK_CmdSwitch_Fixed, + LNK_CmdSwitch_Force, LNK_CmdSwitch_FunctionPadMin, LNK_CmdSwitch_Heap, LNK_CmdSwitch_HighEntropyVa, LNK_CmdSwitch_Ignore, LNK_CmdSwitch_ImpLib, LNK_CmdSwitch_Include, - LNK_CmdSwitch_Incremental, + LNK_CmdSwitch_InferAsanLibs, + LNK_CmdSwitch_InferAsanLibsNo, LNK_CmdSwitch_LargeAddressAware, LNK_CmdSwitch_Lib, LNK_CmdSwitch_LibPath, @@ -73,87 +80,28 @@ typedef enum LNK_CmdSwitch_NoDefaultLib, LNK_CmdSwitch_NoExp, LNK_CmdSwitch_NoImpLib, - LNK_CmdSwitch_NoLogo, LNK_CmdSwitch_NxCompat, LNK_CmdSwitch_Opt, LNK_CmdSwitch_Out, LNK_CmdSwitch_Pdb, LNK_CmdSwitch_PdbAltPath, LNK_CmdSwitch_PdbPageSize, + LNK_CmdSwitch_PdbStripped, + LNK_CmdSwitch_Release, LNK_CmdSwitch_Stack, LNK_CmdSwitch_SubSystem, LNK_CmdSwitch_Time, LNK_CmdSwitch_TsAware, - - // -- NOT Implemented: - - LNK_CmdSwitch_AssemblyDebug, - LNK_CmdSwitch_AssemblyLinkResource, - LNK_CmdSwitch_AssemblyModule, - LNK_CmdSwitch_AssemblyResource, - LNK_CmdSwitch_ClrImageType, - LNK_CmdSwitch_ClrLoaderOptimization, - LNK_CmdSwitch_ClrSupportLastError, - LNK_CmdSwitch_ClrThreadAttribute, - LNK_CmdSwitch_ClrRunManagedCodeCheck, - LNK_CmdSwitch_ClrUnmanagedCheck, - LNK_CmdSwitch_Def, - LNK_CmdSwitch_DelaySign, - LNK_CmdSwitch_DependentLoadFlag, - LNK_CmdSwitch_Driver, - LNK_CmdSwitch_DisallowLib, - LNK_CmdSwitch_EditAndContinue, - LNK_CmdSwitch_EmitVolatileMetadata, - LNK_CmdSwitch_ExportAdmin, - LNK_CmdSwitch_FastGenProfile, - LNK_CmdSwitch_FailIfMismatch, - LNK_CmdSwitch_Force, - LNK_CmdSwitch_Guard, - LNK_CmdSwitch_GuardSym, - LNK_CmdSwitch_GenProfile, - LNK_CmdSwitch_IdlOut, - LNK_CmdSwitch_IgnoreIdl, - LNK_CmdSwitch_Ilk, - LNK_CmdSwitch_IntegrityCheck, - LNK_CmdSwitch_InferAsanLibs, - LNK_CmdSwitch_InferAsanLibsNo, - LNK_CmdSwitch_Kernel, - LNK_CmdSwitch_KeyContainer, - LNK_CmdSwitch_KeyFile, - LNK_CmdSwitch_LinkerRepro, - LNK_CmdSwitch_LinkerReproTarget, - LNK_CmdSwitch_Ltcg, - LNK_CmdSwitch_LtcgOut, - LNK_CmdSwitch_Map, - LNK_CmdSwitch_MapInfo, - LNK_CmdSwitch_Midl, - LNK_CmdSwitch_NoAssembly, - LNK_CmdSwitch_NoEntry, - LNK_CmdSwitch_Order, - LNK_CmdSwitch_PdbStripped, - LNK_CmdSwitch_Profile, - LNK_CmdSwitch_Release, - LNK_CmdSwitch_SafeSeh, - LNK_CmdSwitch_Section, - LNK_CmdSwitch_SourceLink, - LNK_CmdSwitch_Stub, - LNK_CmdSwitch_SwapRun, - LNK_CmdSwitch_TlbId, - LNK_CmdSwitch_ThrowingNew, - LNK_CmdSwitch_UserProfile, - LNK_CmdSwitch_Verbose, LNK_CmdSwitch_Version, - LNK_CmdSwitch_Winmd, - LNK_CmdSwitch_WinmdDelaySign, - LNK_CmdSwitch_WinmdKeyContainer, - LNK_CmdSwitch_WinmdKeyFile, LNK_CmdSwitch_WholeArchive, - LNK_CmdSwitch_Wx, LNK_CmdSwitch_Rad_Age, - LNK_CmdSwitch_Rad_AltPchDir, + LNK_CmdSwitch_Rad_BootMode, + LNK_CmdSwitch_Rad_BuildExp, + LNK_CmdSwitch_Rad_BuildImpLib, LNK_CmdSwitch_Rad_BuildInfo, LNK_CmdSwitch_Rad_CheckUnusedDelayLoadDll, + LNK_CmdSwitch_Rad_DataDirCount, LNK_CmdSwitch_Rad_Debug, LNK_CmdSwitch_Rad_DebugAltPath, LNK_CmdSwitch_Rad_DebugName, @@ -162,6 +110,8 @@ typedef enum LNK_CmdSwitch_Rad_EnvLib, LNK_CmdSwitch_Rad_Exe, LNK_CmdSwitch_Rad_Guid, + LNK_CmdSwitch_Rad_Ignore, + LNK_CmdSwitch_Rad_ImageAltPath, LNK_CmdSwitch_Rad_LargePages, LNK_CmdSwitch_Rad_LinkVer, LNK_CmdSwitch_Rad_Log, @@ -169,6 +119,7 @@ typedef enum LNK_CmdSwitch_Rad_Map, LNK_CmdSwitch_Rad_MapLinesForUnresolvedSymbols, LNK_CmdSwitch_Rad_MemoryMapFiles, + LNK_CmdSwitch_Rad_Mode, LNK_CmdSwitch_Rad_MtPath, LNK_CmdSwitch_Rad_OsVer, LNK_CmdSwitch_Rad_PageSize, @@ -179,15 +130,19 @@ typedef enum LNK_CmdSwitch_Rad_RemoveSection, LNK_CmdSwitch_Rad_SharedThreadPool, LNK_CmdSwitch_Rad_SharedThreadPoolMaxWorkers, - LNK_CmdSwitch_Rad_SuppressError, - LNK_CmdSwitch_Rad_TargetOs, + LNK_CmdSwitch_Rad_SortImports, LNK_CmdSwitch_Rad_TimeStamp, + LNK_CmdSwitch_Rad_TypeHashAlg, LNK_CmdSwitch_Rad_UnresolvedSymbolLimit, LNK_CmdSwitch_Rad_UnresolvedSymbolRefLimit, LNK_CmdSwitch_Rad_Version, + LNK_CmdSwitch_Rad_WorkDir, LNK_CmdSwitch_Rad_Workers, LNK_CmdSwitch_Rad_WriteTempFiles, + LNK_CmdSwitch_RadTypeServer, + LNK_CmdSwitch_RadTypeServer_MatchObj, + LNK_CmdSwitch_Help, LNK_CmdSwitch_Count @@ -209,6 +164,7 @@ typedef enum LNK_Input_Lib, LNK_Input_Res, LNK_Input_Manifest, + LNK_Input_RRT, LNK_Input_Count } LNK_InputType; @@ -323,11 +279,14 @@ typedef enum LNK_TypeNameHashMode_Full, } LNK_TypeNameHashMode; + typedef struct LNK_Config { Arena *arena; + LNK_BootMode boot_mode; LNK_ConfigFlags flags; LNK_DebugMode debug_mode; + B32 ghash; LNK_SwitchState opt_ref; LNK_SwitchState opt_icf; LNK_SwitchState opt_lbr; @@ -357,10 +316,10 @@ typedef struct LNK_Config U64 function_pad_min; U64 *manifest_resource_id; B32 no_default_libs; + LNK_SwitchState infer_asan_libs; Version link_ver; Version os_ver; Version image_ver; - OperatingSystem target_os; COFF_MachineType machine; PE_WindowsSubsystem subsystem; Version subsystem_ver; @@ -371,11 +330,13 @@ typedef struct LNK_Config PathStyle path_style; LNK_ManifestOpt manifest_opt; String8 work_dir; - String8 image_name; + String8 out_path; + String8 image_alt_path; String8 imp_lib_name; String8List raw_cmd_line; String8 pdb_name; String8 pdb_alt_path; + String8 pdb_stripped_name; String8 mt_path; LNK_TypeNameHashMode pdb_hash_type_names; String8 pdb_hash_type_name_map; @@ -403,22 +364,29 @@ typedef struct LNK_Config B32 build_imp_lib; B32 build_exp; LNK_SwitchState write_temp_files; - String8 temp_image_name; + String8 temp_out_path; String8 temp_pdb_name; String8 temp_rad_debug_name; String8 temp_rad_chunk_map_name; + String8 temp_type_server_name; String8 delay_load_helper_name; String8List remove_sections; LNK_IO_Flags io_flags; - HashTable *export_ht; - HashTable *alt_name_ht; - HashTable *include_symbol_ht; - HashTable *delay_load_ht; - HashTable *disallow_lib_ht; + HashMap export_ht; + HashMap alt_name_ht; + HashMap include_symbol_ht; + HashMap delay_load_ht; + HashMap disallow_lib_ht; + HashMap fail_if_mismatch_ht; + HashMap whole_archive_ht; + B32 whole_archive_all; U64 unresolved_symbol_limit; U64 unresolved_symbol_ref_limit; LNK_SwitchState map_lines_for_unresolved_symbols; - String8List alt_pch_dirs; + LLVM_GHashAlg type_hash_alg; + String8 type_server_name; + LNK_SwitchState type_server; + LNK_SwitchState sort_imports; } LNK_Config; // --- MSVC Error Codes -------------------------------------------------------- @@ -557,12 +525,8 @@ internal LNK_InputType lnk_input_type_from_string(String8 string); internal LNK_DebugMode lnk_debug_mode_from_string(String8 string); internal LNK_TypeNameHashMode lnk_type_name_hash_mode_from_string(String8 string); -// --- Command Line Helpers ---------------------------------------------------- - -internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_presentf(Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...); -internal LNK_CmdOption * lnk_cmd_line_push_optionf (Arena *arena, LNK_CmdLine *cmd_line, LNK_CmdSwitchType cmd_switch_type, char *param_fmt, ...); - -internal B32 lnk_cmd_line_has_switch(LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch_type); +internal String8List lnk_cmd_line_values_from_switch(Arena *arena, LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch_type); +internal B32 lnk_cmd_line_has_switch (LNK_CmdLine cmd_line, LNK_CmdSwitchType cmd_switch_type); // --- Errors ------------------------------------------------------------------ @@ -596,6 +560,7 @@ internal LNK_MergeDirectiveNode * lnk_merge_directive_list_push(Arena *arena, LN // --- Getters ----------------------------------------------------------------- internal String8 lnk_get_image_name (LNK_Config *config); +internal String8 lnk_get_pdb_name (LNK_Config *config); internal U64 lnk_get_default_function_pad_min (COFF_MachineType machine); internal U64 lnk_get_base_addr (LNK_Config *config); internal Version lnk_get_default_subsystem_version(PE_WindowsSubsystem subsystem, COFF_MachineType machine); @@ -612,9 +577,12 @@ internal B32 lnk_is_lib_disallowed(LNK_Config *config, String8 path); internal void lnk_include_symbol(LNK_Config *config, String8 name, struct LNK_Obj *obj); +internal void lnk_whole_archive(LNK_Config *config, String8 lib_name); + // --- Config ------------------------------------------------------------------ internal void lnk_apply_cmd_option_to_config(LNK_Config *config, String8 name, String8List value_list, struct LNK_Obj *obj); +internal void lnk_config_pushf(LNK_Config *config, char *fmt, ...); -internal LNK_Config * lnk_config_from_cmd_line(String8List raw_cmd_line, LNK_CmdLine cmd_line); +internal LNK_Config * lnk_config_init(LNK_CmdLine cmd_line); diff --git a/src/linker/lnk_debug_helper.c b/src/linker/lnk_debug_helper.c index 7d1b7017..fbf9bb36 100644 --- a/src/linker/lnk_debug_helper.c +++ b/src/linker/lnk_debug_helper.c @@ -4,32 +4,30 @@ internal String8 lnk_make_linker_compile3(Arena *arena, COFF_MachineType machine) { - String8 comp3_data = cv_make_comp3(arena, - 0, - CV_Language_LINK, - cv_arch_from_coff_machine(machine), - /* ver_fe_major */ 0, - /* ver_fe_minor */ 0, - /* ver_fe_build */ 0, - /* ver_feqfe */ 0, - /* ver_major */ 14, - /* ver_minor */ 36, - /* ver_build */ 32537, - /* ver_qfe */ 0, - str8_lit(BUILD_TITLE)); - return comp3_data; + return cv_make_comp3(arena, + 0, + CV_Language_LINK, + cv_arch_from_coff_machine(machine), + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); } internal String8 -lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list) +lnk_make_debug_s(Arena *arena, String8List symbols) { Temp scratch = scratch_begin(&arena, 1); - CV_DebugS debug_s = {0}; - String8List *symbol_list_ptr = cv_sub_section_ptr_from_debug_s(&debug_s, CV_C13SubSectionKind_Symbols); - *symbol_list_ptr = cv_data_from_symbol_list(scratch.arena, symbol_list, CV_SymbolAlign); + cv_patch_symbol_tree_offsets(symbols, sizeof(CV_Signature), CV_SymbolAlign); - String8List debug_s_data_list = cv_data_c13_from_debug_s(scratch.arena, &debug_s, 1); + CV_DebugS debug_s = { .data_list[CV_C13SubSectionIdxKind_Symbols] = symbols }; + String8List debug_s_data_list = cv_data_from_debug_s_c13(scratch.arena, &debug_s, 1); String8 debug_s_data = str8_list_join(arena, &debug_s_data_list, 0); scratch_end(scratch); @@ -40,10 +38,11 @@ internal String8 lnk_make_linker_debug_symbols(Arena *arena, COFF_MachineType machine) { Temp scratch = scratch_begin(&arena, 1); - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); - String8 debug_symbols = lnk_make_debug_s(arena, symbol_list); + + String8List symbols = {0}; + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, lnk_make_linker_compile3(scratch.arena, machine))); + String8 debug_symbols = lnk_make_debug_s(arena, symbols); + scratch_end(scratch); return debug_symbols; } @@ -53,20 +52,14 @@ lnk_make_dll_import_debug_symbols(Arena *arena, COFF_MachineType machine, String { Temp scratch = scratch_begin(&arena,1); - CV_SymbolList symbol_list = { .signature = CV_Signature_C13 }; - - // S_OBJ - String8 obj_data = cv_make_obj_name(scratch.arena, dll_name, 0); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_OBJNAME, obj_data); - - // S_COMPILE3 - String8 comp3_data = lnk_make_linker_compile3(scratch.arena, machine); - cv_symbol_list_push_data(scratch.arena, &symbol_list, CV_SymKind_COMPILE3, comp3_data); + String8List symbols = {0}; + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_OBJNAME, cv_make_obj_name(scratch.arena, dll_name, 0))); + str8_list_push(scratch.arena, &symbols, cv_make_symbol(scratch.arena, CV_SymKind_COMPILE3, lnk_make_linker_compile3(scratch.arena, machine))); // TODO: add thunks // serialize symbols - String8 debug_symbols = lnk_make_debug_s(arena, symbol_list); + String8 debug_symbols = lnk_make_debug_s(arena, symbols); scratch_end(scratch); return debug_symbols; diff --git a/src/linker/lnk_debug_helper.h b/src/linker/lnk_debug_helper.h index dd1df4b3..14904168 100644 --- a/src/linker/lnk_debug_helper.h +++ b/src/linker/lnk_debug_helper.h @@ -4,5 +4,5 @@ #pragma once internal String8 lnk_make_linker_compile3(Arena *arena, COFF_MachineType machine); -internal String8 lnk_make_debug_s(Arena *arena, CV_SymbolList symbol_list); +internal String8 lnk_make_debug_s(Arena *arena, String8List symbols); diff --git a/src/linker/lnk_debug_info.c b/src/linker/lnk_debug_info.c index d277bee8..fe125133 100644 --- a/src/linker/lnk_debug_info.c +++ b/src/linker/lnk_debug_info.c @@ -1,95 +1,146 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +static Arena *g_huge_arena = 0; + +internal Arena * +lnk_get_huge_arena(void) +{ + if (g_huge_arena == 0) { + g_huge_arena = arena_alloc(.name = "HUGE"); + } + return g_huge_arena; +} + +internal void +lnk_discard_cv_debug_info(LNK_CodeViewInput *input, U64 obj_idx) +{ + // discard types + MemoryZeroStruct(&input->debug_t_arr[obj_idx]); + + // discard symbols + String8List *symbols_ptr = cv_sub_section_ptr_from_debug_s(&input->debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); + MemoryZeroStruct(symbols_ptr); + + // discard inline sites + String8List *inlineelines_ptr = cv_sub_section_ptr_from_debug_s(&input->debug_s_arr[obj_idx], CV_C13SubSectionKind_InlineeLines); + MemoryZeroStruct(inlineelines_ptr); +} + internal THREAD_POOL_TASK_FUNC(lnk_parse_debug_s_task) { - U64 obj_idx = task_id; - LNK_ParseDebugSTaskData *task = raw_task; + U64 obj_idx = task_id; + LNK_CodeViewInput *task = raw_task; - LNK_Obj *obj = task->obj_arr[obj_idx]; - String8List sect_list = task->sect_list_arr[obj_idx]; - CV_DebugS *debug_s = &task->debug_s_arr[obj_idx]; + String8List sect_list = task->debug_s_list_arr[obj_idx]; + CV_DebugS *debug_s = &task->debug_s_arr [obj_idx]; - for (String8Node *node = sect_list.first; node != 0; node = node->next) { + for EachNode(n, String8Node, sect_list.first) { // parse & merge sub sections - CV_DebugS ds = cv_parse_debug_s(arena, node->string); + CV_DebugS ds = cv_debug_s_from_data(arena, n->string); cv_debug_s_concat_in_place(debug_s, &ds); // make sure there is one string table String8List string_data_list = cv_sub_section_from_debug_s(*debug_s, CV_C13SubSectionKind_StringTable); if (string_data_list.node_count > 1) { // TODO: print section index - lnk_error_obj(LNK_Warning_IllData, obj, ".debug$S has %u string table sub-sections defined, picking first sub-section", string_data_list.node_count); + lnk_error_obj(LNK_Warning_IllData, task->obj_arr[obj_idx], ".debug$S has %u string table sub-sections defined, picking first sub-section", string_data_list.node_count); } // make sure there is one file checksum table String8List checksum_data_list = cv_sub_section_from_debug_s(*debug_s, CV_C13SubSectionKind_FileChksms); if (checksum_data_list.node_count > 1) { // TODO: print section index - lnk_error_obj(LNK_Warning_IllData, obj, ".debug$S has %u file checksum sub-sections defined, picking first sub-section", checksum_data_list.node_count); + lnk_error_obj(LNK_Warning_IllData, task->obj_arr[obj_idx], ".debug$S has %u file checksum sub-sections defined, picking first sub-section", checksum_data_list.node_count); } } } -internal CV_DebugS * -lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *sect_list_arr) +internal +THREAD_POOL_TASK_FUNC(lnk_parse_debug_h_task) { - ProfBeginFunction(); + U64 obj_idx = task_id; + LNK_CodeViewInput *task = raw_task; - LNK_ParseDebugSTaskData task_data = {0}; - task_data.obj_arr = obj_arr; - task_data.sect_list_arr = sect_list_arr; - task_data.debug_s_arr = push_array(arena->v[0], CV_DebugS, obj_count); + LNK_Obj *obj = task->obj_arr[obj_idx]; + if (obj->debug_h_sect_idx < obj->header.section_count_no_null) { + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, obj->debug_h_sect_idx); - tp_for_parallel(tp, arena, obj_count, lnk_parse_debug_s_task, &task_data); + String8 raw_debug_h = str8_substr(obj->data, section.frange); + CV_DebugH *debug_h = &task->debug_h_arr[obj_idx]; + LLVM_GHash ghash = {0}; + U64 ghash_read_size = str8_deserial_read_struct(raw_debug_h, 0, &ghash); - ProfEnd(); - return task_data.debug_s_arr; + // was header read completely? + if (ghash_read_size != sizeof(ghash)) { + lnk_error_obj(LNK_Warning_GHash, task->obj_arr[obj_idx], + ".debug$H section is too small to contain the header"); + goto exit; + } + + // validate magic + if (ghash.magic != LLVM_GHash_Magic) { + lnk_error_obj(LNK_Warning_GHash, task->obj_arr[obj_idx], + ".debug$H contains invalid magic: got 0x%x, expected 0x%x", ghash.magic, LLVM_GHash_Magic); + goto exit; + } + + // validate version + if (ghash.version != LLVM_GHash_CurrentVersion) { + lnk_error_obj(LNK_Warning_GHash, task->obj_arr[obj_idx], + "mismatched .debug$H version: got %u, expected %u", + ghash.version, LLVM_GHash_CurrentVersion); + goto exit; + } + + // validate hashing algorithm + if (ghash.hash_alg != task->config->type_hash_alg) { + lnk_error_obj(LNK_Warning_GHash, task->obj_arr[obj_idx], + "mismatched .debug$H hash algorithm: got %S, expected %S", + llvm_string_from_ghash_alg(ghash.hash_alg), + llvm_string_from_ghash_alg(task->config->type_hash_alg)); + goto exit; + } + + // input.debug_h_arr must be 1:1 with input.debug_t_arr + U64 hash_size = llvm_hash_size_from_alg(ghash.hash_alg); + U64 hash_count = (raw_debug_h.size - sizeof(ghash)) / hash_size; + if (hash_count != task->debug_t_arr[obj_idx].count) { + lnk_error_obj(LNK_Warning_GHash, task->obj_arr[obj_idx], + "mismatched .debug$H hash count and type count: got %llu hashes for %llu types", + hash_count, task->debug_t_arr[obj_idx].count); + goto exit; + } + + // load hashes + String8 hashes = str8_substr(raw_debug_h, r1u64(sizeof(ghash), raw_debug_h.size)); + debug_h->count = hash_count; + debug_h->v = (U64 *)hashes.str; + } + + exit:; } internal -THREAD_POOL_TASK_FUNC(lnk_check_debug_t_sig_and_get_data_task) +THREAD_POOL_TASK_FUNC(lnk_strip_debug_t_sig_task) { - U64 obj_idx = task_id; - LNK_CheckDebugTSigTaskData *task = raw_task; + U64 obj_idx = task_id; + LNK_ParseCvTypes *task = raw_task; - String8Array data_arr = task->data_arr_arr[obj_idx]; - LNK_Obj *obj = task->obj_arr[obj_idx]; + for EachIndex(i, task->raw_types[obj_idx].count) { + String8 *d = task->raw_types[obj_idx].v + i; + if (d->size == 0) { continue; } + if (d->size < sizeof(CV_Signature)) { lnk_error_obj(LNK_Error_IllData, task->input->obj_arr[obj_idx], ".debug$T must have at least 4 bytes for CodeView signature"); continue; } - for (String8 *data_ptr = &data_arr.v[0], *data_opl = data_arr.v + data_arr.count; - data_ptr < data_opl; - ++data_ptr) { - if (data_ptr->size == 0) { - continue; - } - - if (data_ptr->size < sizeof(CV_Signature)) { - // TODO: print section index - lnk_error_obj(LNK_Error_IllData, obj, ".debug$T must have at least 4 bytes for CodeView signature"); - } - - CV_Signature *sig_ptr = (CV_Signature *)data_ptr->str; - switch (*sig_ptr) { + CV_Signature sig = cv_signature_from_debug_s(*d); + switch (sig) { default: { - lnk_error_obj(LNK_Warning_IllData, obj, "unknown CodeView type signature in section (TODO: print section index)"); - *data_ptr = str8(0,0); - } break; - case CV_Signature_C6: { - lnk_not_implemented("TODO: C6 types"); - *data_ptr = str8(0,0); - } break; - case CV_Signature_C7: { - lnk_not_implemented("TODO: C7 types"); - *data_ptr = str8(0,0); - } break; - case CV_Signature_C11: { - lnk_not_implemented("TODO: C11 types"); - *data_ptr = str8(0,0); + lnk_error_obj(LNK_Warning_IllData, task->input->obj_arr[obj_idx], "unknown CodeView type signature in section (TODO: print section index)"); + *d = str8(0,0); } break; case CV_Signature_C13: { - data_ptr->str += sizeof(CV_Signature); - data_ptr->size -= sizeof(CV_Signature); + *d = str8_skip(*d, sizeof(CV_Signature)); } break; } } @@ -99,1238 +150,1219 @@ internal THREAD_POOL_TASK_FUNC(lnk_parse_debug_t_task) { ProfBeginFunction(); - U64 obj_idx = task_id; - LNK_ParseDebugTTaskData *task = raw_task; - String8Array data_arr = task->data_arr_arr[obj_idx]; - CV_DebugT *debug_t = &task->debug_t_arr[obj_idx]; - *debug_t = cv_debug_t_from_data_arr(arena, data_arr, CV_LeafAlign); + LNK_ParseCvTypes *task = raw_task; + if (task->raw_types[task_id].count > 0) { + task->out_types[task_id] = cv_debug_t_from_data(arena, task->raw_types[task_id].v[0], CV_LeafAlign); + } else { + MemoryZeroStruct(&task->out_types[task_id]); + } ProfEnd(); } -internal CV_DebugT * -lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *debug_t_list_arr) -{ - ProfBeginFunction(); - - // list -> array - String8Array *data_arr_arr = str8_array_from_list_arr(arena->v[0], debug_t_list_arr, obj_count); - - // validate signatures - LNK_CheckDebugTSigTaskData check_sig; - check_sig.obj_arr = obj_arr; - check_sig.data_arr_arr = data_arr_arr; - tp_for_parallel(tp, 0, obj_count, lnk_check_debug_t_sig_and_get_data_task, &check_sig); - - // parse debug types - LNK_ParseDebugTTaskData parse; - parse.data_arr_arr = data_arr_arr; - parse.debug_t_arr = push_array_no_zero(arena->v[0], CV_DebugT, obj_count); - tp_for_parallel(tp, arena, obj_count, lnk_parse_debug_t_task, &parse); - - ProfEnd(); - return parse.debug_t_arr; -} - internal -THREAD_POOL_TASK_FUNC(lnk_parse_cv_symbols_task) +THREAD_POOL_TASK_FUNC(lnk_read_type_servers_task) { - LNK_ParseCVSymbolsTaskData *task = raw_task; - LNK_CodeViewSymbolsInput *input = &task->inputs[task_id]; - cv_parse_symbol_sub_section(arena, input->symbol_list, 0, input->raw_symbols, CV_SymbolAlign); + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + LNK_CodeViewInput *task = raw_task; + + B32 discard_debug_info = 1; + U64 ts_idx = task_id; + LNK_TypeServer *ts = &task->ts_arr.v[ts_idx]; + + String8 type_data_raw = {0}; + String8 source_data_arr[CV_TypeIndexSource_COUNT] = {0}; + Rng1U64 ti_ranges [CV_TypeIndexSource_COUNT] = {0}; + + switch (ts->ts_kind) { + case LNK_TypeServerKind_Null: break; + case LNK_TypeServerKind_RRT: { + type_data_raw = ts->rrt->type_data_raw; + MemoryCopyArray(source_data_arr, ts->rrt->type_data); + MemoryCopyArray(ti_ranges, ts->rrt->ti_ranges); + } break; + case LNK_TypeServerKind_PDB: { + // read PDB from disk + String8 msf_data = lnk_read_data_from_file_path(scratch.arena, task->config->io_flags, ts->ts_path); + + // check magic + if (!msf_check_magic_70(msf_data) && msf_check_magic_20(msf_data)) { goto exit; } + + // read the stream table + MSF_RawStreamTable *st = msf_raw_stream_table_from_data(scratch.arena, msf_data); + if (st == 0) { goto exit; } + + // PDB must have these streams + if (PDB_FixedStream_Tpi >= st->stream_count || PDB_FixedStream_Ipi >= st->stream_count || PDB_FixedStream_Info >= st->stream_count) { goto exit; } + + // read info stream + String8 info_data = msf_data_from_stream_number(scratch.arena, msf_data, st, PDB_FixedStream_Info); + PDB_InfoParse info_parse = {0}; + pdb_info_parse_from_data(info_data, &info_parse); + + // match GUID from obj against one in the type server + if (!MemoryMatchStruct(&info_parse.guid, &ts->ts_info.sig)) { + lnk_error(LNK_Warning_MismatchedTypeServerSignature, + "%S: signature mismatch in type server read from disk, expected %S, got %S", + ts->ts_info.name, + string_from_guid(scratch.arena, ts->ts_info.sig), + string_from_guid(scratch.arena, info_parse.guid)); + goto exit; + } + + MSF_StreamNumber type_streams[CV_TypeIndexSource_COUNT] = {0}; + type_streams[CV_TypeIndexSource_TPI] = PDB_FixedStream_Tpi; + type_streams[CV_TypeIndexSource_IPI] = PDB_FixedStream_Ipi; + + Rng1U64 leaf_ranges[CV_TypeIndexSource_COUNT] = {0}; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + MSF_StreamNumber sn = type_streams[ti_source]; + if (sn == 0) { continue; } + if (!pdb_extract_type_server_info(msf_data, st, sn, &ti_ranges[ti_source], &leaf_ranges[ti_source])) { goto exit; } + } + + // alloc buffer where TPI and IPI are adjacent + U64 buffer_size = 0; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { buffer_size += dim_1u64(leaf_ranges[ti_source]); } + buffer_size = AlignPow2(buffer_size, 4) + ARENA_HEADER_SIZE; + U8 *buffer = push_array(arena, U8, buffer_size); + Arena *fixed = arena_alloc( .reserve_size = buffer_size, .commit_size = buffer_size, .optional_backing_buffer = buffer ); + + // read both streams into a contiguous buffer + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + MSF_StreamNumber sn = type_streams[ti_source]; + if (sn == 0) { continue; } + source_data_arr[ti_source] = msf_data_from_stream_number_ex(fixed, msf_data, st, sn, leaf_ranges[ti_source], PDB_LEAF_ALIGN); + Assert(source_data_arr[ti_source].size == dim_1u64(leaf_ranges[ti_source])); + } + // assert streams are adjacent in the buffer + for (U64 i = 1; i+1 < CV_TypeIndexSource_COUNT; i += 1) { AssertAlways(source_data_arr[i].str + source_data_arr[i].size == source_data_arr[i+1].str); } + type_data_raw = str8(buffer + ARENA_HEADER_SIZE, buffer_size - ARENA_HEADER_SIZE); + } break; + default: InvalidPath; break; + } + + // map type server to -> .debug$T + U64 obj_idx = task->type_server_indices.v[task_id]; + CV_DebugT *debug_t = &task->debug_t_arr[obj_idx]; + + // read types + CV_DebugT d = cv_debug_t_from_data(arena, type_data_raw, PDB_LEAF_ALIGN); + + // @type_server .debugtype_data + debug_t->count = d.count; + debug_t->data = d.data; + debug_t->offsets = d.offsets; + for EachIndex(i, CV_TypeIndexSource_COUNT) { debug_t->ti_ranges[i] = ti_ranges[i]; } + for EachIndex(i, CV_TypeIndexSource_COUNT) { debug_t->ti_base[i] = IntFromPtr(source_data_arr[i].str - type_data_raw.str); } + MemoryCopyTyped(debug_t->source_counts, d.source_counts, CV_TypeIndexSource_COUNT); + MemoryCopyTyped(debug_t->source_offsets, d.source_counts, CV_TypeIndexSource_COUNT); + u64_array_counts_to_offsets(CV_TypeIndexSource_COUNT, debug_t->source_offsets); + + discard_debug_info = 0; + exit:; + if (discard_debug_info) { + // an error occurred while loading external type server, discard + // parts debug info in dependent objs that rely on types + for EachNode(n, U64Node, task->ts_arr.v[ts_idx].obj_indices.first) { + lnk_discard_cv_debug_info(task, n->data); + } + } + + task->is_type_server_discarded[task_id] = discard_debug_info; + + ProfEnd(); + scratch_end(scratch); } -internal LNK_PchInfo * -lnk_setup_pch(Arena *arena, U64 obj_count, LNK_Obj **obj_arr, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr, CV_SymbolListArray *parsed_symbols, String8List alt_pch_dirs) +internal String8List +lnk_string_list_from_rrt(Arena *arena, LNK_RRT *rrt) { + ProfBeginFunction(); + + // pack obj file paths + String8 obj_paths = {0}; + { + U64 total_obj_file_path_size = 0; + for EachIndex(i, rrt->obj_count) { + total_obj_file_path_size += rrt->obj_paths.v[i].size + 1; + } + + U8 *file_paths_buffer = push_array_no_zero(arena, U8, total_obj_file_path_size); + U64 file_paths_cursor = 0; + for EachIndex(i, rrt->obj_count) { + MemoryCopyStr8(file_paths_buffer + file_paths_cursor, rrt->obj_paths.v[i]); + file_paths_cursor += rrt->obj_paths.v[i].size; + + file_paths_buffer[file_paths_cursor] = 0; + file_paths_cursor += 1; + } + Assert(file_paths_cursor == total_obj_file_path_size); + + obj_paths = str8(file_paths_buffer, file_paths_cursor); + } + + String8List rrt_data = {0}; + + // (1) magic + str8_list_push(arena, &rrt_data, g_rrt_magic); + + // (2) version + str8_list_push(arena, &rrt_data, str8_struct(&g_rrt_version)); + + // (3) type data ranges + str8_list_push(arena, &rrt_data, str8_array_fixed(rrt->type_data_ranges)); + + // (4) type data + str8_list_push(arena, &rrt_data, rrt->type_data_raw); + + // (5) type index ranges + str8_list_push(arena, &rrt_data, str8_array_fixed(rrt->ti_ranges)); + + // (6) type hashes size + U64 total_hash_count = 0; + for EachIndex(i, CV_TypeIndexSource_COUNT) { total_hash_count += dim_1u64(rrt->ti_ranges[i]); } + U64 type_hashes_size = sizeof(**rrt->type_hashes_unpacked) * total_hash_count; + str8_list_push(arena, &rrt_data, str8_struct(push_u64(arena, type_hashes_size))); + + // (7) type hashes + for EachIndex(i, CV_TypeIndexSource_COUNT) { + U64 type_count = dim_1u64(rrt->ti_ranges[i]); + str8_list_push(arena, &rrt_data, str8_array(rrt->type_hashes_unpacked[i], type_count)); + } + + // (8) object count + str8_list_push(arena, &rrt_data, str8_struct(&rrt->obj_count)); + + // (9) per object type index ranges + str8_list_push(arena, &rrt_data, str8_array(rrt->obj_ti_ranges, rrt->obj_count)); + + // (10) per object time stamps + str8_list_push(arena, &rrt_data, str8_array(rrt->obj_time_stamps, rrt->obj_count)); + + // (11) per object leaf counts + str8_list_push(arena, &rrt_data, str8_array(rrt->obj_leaf_counts, rrt->obj_count)); + + // (12) per object file reverse lookup table for type indices + for EachIndex(obj_idx, rrt->obj_count) { + CV_TypeIndex *obj_ti_map = rrt->obj_ti_maps[obj_idx]; + U64 obj_ti_count = rrt->obj_leaf_counts[obj_idx]; + Assert(dim_1u64(rrt->obj_pch_ti_ranges[obj_idx]) + obj_ti_count <= dim_1u64(rrt->obj_ti_ranges[obj_idx])); + str8_list_push(arena, &rrt_data, str8_array(obj_ti_map, obj_ti_count)); + } + + // (13) object file paths size + str8_list_push(arena, &rrt_data, str8_struct(push_u64(arena, obj_paths.size))); + + // (14) object file paths block + str8_list_push(arena, &rrt_data, obj_paths); + + // (15) PCH type index ranges + str8_list_push(arena, &rrt_data, str8_array(rrt->obj_pch_ti_ranges, rrt->obj_count)); + + // (16) PCH object indices + str8_list_push(arena, &rrt_data, str8_array(rrt->obj_pch_indices, rrt->obj_count)); + + ProfEnd(); + return rrt_data; +} + +internal B32 +lnk_rrt_from_string(Arena *arena, String8 rrt_data, String8 path, LNK_RRT *rrt_out) +{ + B32 is_ok = 0; + U64 cursor = 0; + + // (1) magic + if (rrt_data.size < g_rrt_magic.size || + ! str8_match(str8_prefix(rrt_data, g_rrt_magic.size), g_rrt_magic, 0)) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file has invalid magic value", path); + goto exit; + } + cursor += g_rrt_magic.size; + + // (2) version + U64 version = 0; + U64 version_size = str8_deserial_read_struct(rrt_data, cursor, &version); + if (version_size != sizeof(version)) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file does not contain enough bytes to read the version", path); + goto exit; + } + cursor += version_size; + + // match version + if (version != g_rrt_version) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT version mismatch, got %llu, expected %llu", path, version, g_rrt_version); + goto exit; + } + + // (3) type data ranges + Rng1U64 type_data_ranges[CV_TypeIndexSource_COUNT] = {0}; + U64 type_data_ranges_size = str8_deserial_read_array(rrt_data, cursor, type_data_ranges, ArrayCount(type_data_ranges)); + if (type_data_ranges_size != sizeof(type_data_ranges)) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT is missing type data ranges", path); + goto exit; + } + cursor += type_data_ranges_size; + + // comppute size types from all the sources + U64 total_type_data_size = 0; + for EachElement(i, type_data_ranges) total_type_data_size += dim_1u64(type_data_ranges[i]); + + // (4) type data + String8 type_data_raw = {0}; + U64 type_data_raw_size = str8_deserial_read_block(rrt_data, cursor, total_type_data_size, &type_data_raw); + if (type_data_raw_size != total_type_data_size) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read type data file (%M)", path, total_type_data_size); + goto exit; + } + cursor += type_data_raw_size; + + // (5) type index ranges + Rng1U64 ti_ranges[CV_TypeIndexSource_COUNT] = {0}; + U64 ti_ranges_size = str8_deserial_read_array(rrt_data, cursor, ti_ranges, ArrayCount(ti_ranges)); + if (ti_ranges_size != sizeof(ti_ranges)) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file does not contain type indices", path); + goto exit; + } + cursor += ti_ranges_size; + + // (6) type hashes size + U64 type_hashes_size = 0; + U64 type_hashes_size_size = str8_deserial_read_struct(rrt_data, cursor, &type_hashes_size); + if (type_hashes_size_size != sizeof(type_hashes_size)) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read type hashes", path); + goto exit; + } + cursor += type_hashes_size_size; + + // validate type hashes size + if (type_hashes_size) { + U64 type_count = 0; + for EachIndex(i, CV_TypeIndexSource_COUNT) { type_count += dim_1u64(ti_ranges[i]); } + U64 expected_size = type_count * sizeof(U64); + if (expected_size != type_hashes_size) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file type hash size (%llu) does not match expected size (%llu)", path, type_hashes_size, expected_size); + goto exit; + } + } + + // (7) type hashes + String8 type_hashes = {0}; + U64 type_hashes_read_size = str8_deserial_read_block(rrt_data, cursor, type_hashes_size, &type_hashes); + if (type_hashes_read_size != type_hashes_size) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read type hashes (%M)", path, type_hashes_size); + goto exit; + } + cursor += type_hashes_read_size; + + // hash count must match type count + if (type_hashes_size) { + U64 type_count = 0; + for EachIndex(i, CV_TypeIndexSource_COUNT) { type_count += dim_1u64(ti_ranges[i]); } + U64 hash_count = type_hashes.size / sizeof(U64); + if (type_count != hash_count) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file hash count (%llu) does not match type count (%llu)", path, hash_count, type_count); + goto exit; + } + } + + // (8) object count + U64 obj_count = 0; + U64 obj_count_size = str8_deserial_read_struct(rrt_data, cursor, &obj_count); + if (obj_count_size == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read the object count", path); + goto exit; + } + cursor += obj_count_size; + + // (9) per object type index ranges + Rng1U64 *obj_ti_ranges = str8_deserial_get_raw_ptr(rrt_data, cursor, sizeof(*obj_ti_ranges) * obj_count); + if (obj_ti_ranges == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is missing the object type index ranges", path); + goto exit; + } + cursor += sizeof(*obj_ti_ranges) * obj_count; + + // (10) last observed time stamp of the object files + U64 *obj_time_stamps = str8_deserial_get_raw_ptr(rrt_data, cursor, sizeof(*obj_time_stamps) * obj_count); + if (obj_time_stamps == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is missing the object timestamps", path); + goto exit; + } + cursor += sizeof(*obj_time_stamps) * obj_count; + + // (11) per object leaf counts + U64 *obj_leaf_counts = str8_deserial_get_raw_ptr(rrt_data, cursor, sizeof(*obj_leaf_counts) * obj_count); + if (obj_leaf_counts == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is missing the object leaf counts", path); + goto exit; + } + cursor += sizeof(*obj_leaf_counts) * obj_count; + + // (12) per object file reverse lookup table for type indices + CV_TypeIndex **obj_ti_maps = push_array(arena, CV_TypeIndex *, obj_count); + for EachIndex(obj_idx, obj_count) { + U64 obj_ti_count = obj_leaf_counts[obj_idx]; + obj_ti_maps[obj_idx] = str8_deserial_get_raw_ptr(rrt_data, cursor, obj_ti_count * sizeof(*obj_ti_maps[obj_idx])); + if (obj_ti_maps[obj_idx] == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: failed to read objects type index map from RRT file", path); + goto exit; + } + cursor += obj_ti_count * sizeof(*obj_ti_maps[obj_idx]); + } + + // (13) object file paths size + U64 obj_file_paths_size = 0; + U64 obj_file_paths_size_size = str8_deserial_read_struct(rrt_data, cursor, &obj_file_paths_size); + if (obj_file_paths_size_size == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read the object file path block size", path); + goto exit; + } + cursor += obj_file_paths_size_size; + + // (14) object file paths block + String8 obj_file_paths_block = {0}; + U64 obj_file_paths_block_size = str8_deserial_read_block(rrt_data, cursor, obj_file_paths_size, &obj_file_paths_block); + if (obj_file_paths_block_size != obj_file_paths_size) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read the object file path block (%M)", path, obj_file_paths_size); + goto exit; + } + cursor += obj_file_paths_block_size; + + // (15) PCH type index ranges + Rng1U64 *obj_pch_ti_ranges = str8_deserial_get_raw_ptr(rrt_data, cursor, obj_count * sizeof(*obj_pch_ti_ranges)); + if (obj_pch_ti_ranges == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read object PCH type index ranges"); + goto exit; + } + cursor += obj_count * sizeof(*obj_pch_ti_ranges); + + U32 *obj_pch_indices = str8_deserial_get_raw_ptr(rrt_data, cursor, obj_count * sizeof(*obj_pch_indices)); + if (obj_pch_indices == 0) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT file is too small to read object PCH indices"); + goto exit; + } + cursor += obj_count * sizeof(*obj_pch_indices); + + for EachIndex(obj_idx, obj_count) { + if (dim_1u64(obj_pch_ti_ranges[obj_idx]) + obj_leaf_counts[obj_idx] > dim_1u64(obj_ti_ranges[obj_idx])) { + lnk_error(LNK_Error_IllData, "ERROR: %S: RRT object leaf count exceeds object type index range", path); + goto exit; + } + } + + if (cursor != rrt_data.size) { + lnk_error(LNK_Error_IllData, "ERROR: %S: failed to parse RRT file", path); + goto exit; + } + + // unpack type data + String8 type_data[CV_TypeIndexSource_COUNT] = {0}; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + type_data[ti_source] = str8_substr(type_data_raw, type_data_ranges[ti_source]); + } + + // unpack obj file paths Temp scratch = scratch_begin(&arena, 1); + String8List obj_file_paths_list = str8_split_by_string_chars(scratch.arena, obj_file_paths_block, str8_lit("\0"), 0); + String8Array obj_paths = str8_array_from_list(arena, &obj_file_paths_list); + scratch_end(scratch); - String8 work_dir = os_get_current_path(scratch.arena); + // fill out result + if (rrt_out) { + rrt_out->path = path; + rrt_out->type_data_raw = type_data_raw; + rrt_out->type_hashes = type_hashes; + MemoryCopyArray(rrt_out->type_data_ranges, type_data_ranges); + MemoryCopyArray(rrt_out->type_data, type_data); + MemoryCopyArray(rrt_out->ti_ranges, ti_ranges); + rrt_out->obj_count = obj_count; + rrt_out->obj_leaf_counts = obj_leaf_counts; + rrt_out->obj_time_stamps = obj_time_stamps; + rrt_out->obj_ti_ranges = obj_ti_ranges; + rrt_out->obj_ti_maps = obj_ti_maps; + rrt_out->obj_ti_ranges = obj_ti_ranges; + rrt_out->obj_ti_maps = obj_ti_maps; + rrt_out->obj_paths = obj_paths; + rrt_out->obj_pch_ti_ranges = obj_pch_ti_ranges; + rrt_out->obj_pch_indices = obj_pch_indices; + } - HashTable *debug_p_ht = hash_table_init(scratch.arena, obj_count); - CV_LeafHeader **endprecomp_arr = push_array(scratch.arena, CV_LeafHeader *, obj_count); + is_ok = 1; + exit:; + return is_ok; +} - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - CV_DebugT *debug_p = &debug_p_arr[obj_idx]; - CV_DebugT *debug_t = &debug_t_arr[obj_idx]; - - if (debug_t->count && debug_p->count) { - lnk_error_obj(LNK_Warning_MultipleDebugTAndDebugP, - obj_arr[obj_idx], - "multiple sections with debug types detected, obj must have either .debug$T or .debug$P (using .debug$T for type server)"); +internal LNK_RRT_Array +lnk_rrt_array_from_config(Arena *arena, LNK_Config *config) +{ + ProfBegin("Parse RRT"); + LNK_RRT_Array rrt_arr = { .v = push_array(arena, LNK_RRT, config->input_list[LNK_Input_RRT].node_count) }; + for EachNode(n, String8Node, config->input_list[LNK_Input_RRT].first) { + String8 rrt_path = n->string; + String8 raw_rrt = lnk_read_data_from_file_path(arena, config->io_flags, rrt_path); + if (raw_rrt.size == 0) { + lnk_error(LNK_Error_IllData, "ERROR: failed to open \"%S\"", rrt_path); continue; } - - if (debug_p->count) { - String8 obj_path = obj_arr[obj_idx]->path; - obj_path = path_absolute_dst_from_relative_dst_src(scratch.arena, obj_path, work_dir); - if (hash_table_search_path(debug_p_ht, obj_path)) { - lnk_error_obj(LNK_Warning_DuplicateObjPath, obj_arr[obj_idx], "duplicate obj path %S", obj_path); - } else { - hash_table_push_path_u64(scratch.arena, debug_p_ht, obj_path, obj_idx); - } - } + LNK_RRT rrt = {0}; + lnk_rrt_from_string(arena, raw_rrt, n->string, &rrt); + rrt_arr.v[rrt_arr.count++] = rrt; } - - LNK_PchInfo* pch_arr = push_array_no_zero(arena, LNK_PchInfo, obj_count); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - CV_DebugT debug_t = debug_t_arr[obj_idx]; - if (cv_debug_t_is_pch(debug_t)) { - CV_Leaf precomp_leaf = cv_debug_t_get_leaf(debug_t, 0); - CV_PrecompInfo precomp = cv_precomp_info_from_leaf(precomp_leaf); - - String8 obj_path = path_absolute_dst_from_relative_dst_src(scratch.arena, precomp.obj_name, work_dir); - - // map obj name in LF_PRECOMP to obj index - U64 debug_p_obj_idx = max_U64; - if (!hash_table_search_path_u64(debug_p_ht, obj_path, &debug_p_obj_idx)) { - String8 obj_name = str8_skip_last_slash(obj_path); - for EachNode(alt_dir_n, String8Node, alt_pch_dirs.first) { - String8 alt_obj_path = str8f(scratch.arena, "%S/%S", alt_dir_n->string, obj_name); - if (hash_table_search_path_u64(debug_p_ht, alt_obj_path, &debug_p_obj_idx)) { - break; - } - } - } - - if (debug_p_obj_idx == max_U64) { - lnk_error_obj(LNK_Error_PrecompObjNotFound, obj_arr[obj_idx], "LF_PRECOMP references non-existent obj %S", obj_path); - lnk_exit(LNK_Error_PrecompObjNotFound); - } - - // get LF_PRECOMP - CV_DebugT debug_p = debug_p_arr[debug_p_obj_idx]; - CV_Leaf endprecomp_leaf = cv_debug_t_get_leaf(debug_p, precomp.leaf_count); - CV_LeafEndPreComp *endprecomp = (CV_LeafEndPreComp*) endprecomp_leaf.data.str; - - // error check LF_PRECOMP - if (precomp.start_index > CV_MinComplexTypeIndex) { - lnk_error_obj(LNK_Warning_AtypicalStartIndex, obj_arr[obj_idx], "atypical start index 0x%X in LF_PRECOMP", precomp.start_index); - } - if (precomp.start_index < CV_MinComplexTypeIndex) { - lnk_error_obj(LNK_Error_InvalidStartIndex, obj_arr[obj_idx], "invalid start index 0x%X in LF_PRECOMP; must be >= 0x%X", precomp.start_index, CV_MinComplexTypeIndex); - } - if (precomp.leaf_count > debug_p.count) { - lnk_error_obj(LNK_Error_InvalidPrecompLeafCount, obj_arr[obj_idx], "leaf count %u LF_PRECOMP exceeds leaf count %u in .debug$P in %S", precomp.leaf_count, debug_p.count, obj_arr[debug_p_obj_idx]->path); - } - - // error check LF_ENDPRECOMP - if (endprecomp_leaf.kind != CV_LeafKind_ENDPRECOMP) { - lnk_error_obj(LNK_Error_EndprecompNotFound, obj_arr[obj_idx], "unable to find LF_ENDPRECOMP @ 0x%X in %S", precomp.leaf_count, obj_arr[debug_p_obj_idx]->path); - } - if (endprecomp_leaf.data.size != sizeof(CV_LeafEndPreComp)) { - lnk_error_obj(LNK_Error_IllData, obj_arr[obj_idx], "invalid size 0x%X for LF_ENDPRECOMP", endprecomp_leaf.data.size); - } - if (endprecomp->sig != precomp.sig) { - lnk_error_obj(LNK_Error_PrecompSigMismatch, obj_arr[obj_idx], "signature mismatch between LF_PRECOMP(0x%X) and LF_ENDPRECOMP(0x%X); precomp obj %S", precomp.sig, endprecomp->sig, obj_arr[debug_p_obj_idx]->path); - } - { // check against S_OBJNAME sig in precompiled obj $$SYMBOLS - CV_SymbolList symbol_list = parsed_symbols[debug_p_obj_idx].v[0]; - if (symbol_list.count) { - CV_ObjInfo obj_info = cv_obj_info_from_symbol(symbol_list.first->data); - if (obj_info.sig != 0 && obj_info.sig != precomp.sig) { - lnk_error_obj(LNK_Error_PrecompSigMismatch, obj_arr[obj_idx], "signature mismatch between LF_PRECOMP(0x%X) and S_OBJNAME(0x%X) in %S", precomp.sig, obj_info.sig, obj_arr[debug_p_obj_idx]->path); - } - } else { - lnk_error_obj(LNK_Warning_PrecompObjSymbolsNotFound, obj_arr[obj_idx], "symbols not found, unable to chceck LF_PRECOMP signature against S_OBJ"); - } - } - - // see :pch_check - LNK_PchInfo *pch = &pch_arr[obj_idx]; - pch->ti_lo = precomp.start_index; - pch->ti_hi = precomp.start_index + precomp.leaf_count; - pch->debug_p_obj_idx = debug_p_obj_idx; - - // [start_index, start_index+type_index_count) - debug_t_arr[obj_idx].count -= 1; - debug_t_arr[obj_idx].v += 1; - - endprecomp_arr[debug_p_obj_idx] = cv_debug_t_get_leaf_header(debug_p, precomp.leaf_count); - } else { - LNK_PchInfo *pch = &pch_arr[obj_idx]; - pch->ti_lo = CV_MinComplexTypeIndex; - pch->ti_hi = CV_MinComplexTypeIndex; - pch->debug_p_obj_idx = 0; // :null_obj - } - } - - // remove LF_ENDPRECOMP - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - if (endprecomp_arr[obj_idx]) { - endprecomp_arr[obj_idx]->kind = CV_LeafKind_NOTYPE; - endprecomp_arr[obj_idx]->size = sizeof(CV_LeafKind); - } - } - - scratch_end(scratch); - return pch_arr; -} - -internal void -lnk_do_debug_info_discard(CV_DebugS *debug_s_arr, CV_SymbolListArray *parsed_symbols, U64 obj_idx) -{ - // remove symbols - for (U64 i = 0; i < parsed_symbols[obj_idx].count; ++i) { - MemoryZeroStruct(&parsed_symbols[obj_idx].v[i]); - } - - // remove inline sites - String8List *inlineelines_ptr = cv_sub_section_ptr_from_debug_s(&debug_s_arr[obj_idx], CV_C13SubSectionKind_InlineeLines); - MemoryZeroStruct(inlineelines_ptr); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_msf_parsed_from_data_task) -{ - ProfBeginFunction(); - LNK_MsfParsedFromDataTask *task = raw_task; - // TODO: pick Info, TPI and IPI to flattten to make sure we don't waste compute on throw-away streams - task->msf_parse_arr[task_id] = msf_parsed_from_data(arena, task->data_arr.v[task_id]); ProfEnd(); -} - -internal MSF_Parsed ** -lnk_msf_parsed_from_data_parallel(TP_Arena *arena, TP_Context *tp, String8Array data_arr) -{ - ProfBeginFunction(); - LNK_MsfParsedFromDataTask task = {0}; - task.data_arr = data_arr; - task.msf_parse_arr = push_array_no_zero(arena->v[0], MSF_Parsed *, data_arr.count); - tp_for_parallel(tp, arena, data_arr.count, lnk_msf_parsed_from_data_task, &task); - ProfEnd(); - return task.msf_parse_arr; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_get_external_leaves_task) -{ - ProfBeginFunction(); - - U64 ts_idx = task_id; - LNK_GetExternalLeavesTask *task = raw_task; - MSF_Parsed *msf_parse = task->msf_parse_arr[ts_idx]; - - task->external_ti_ranges[ts_idx] = push_array(arena, Rng1U64, CV_TypeIndexSource_COUNT); - task->external_leaves[ts_idx] = push_array(arena, CV_DebugT, CV_TypeIndexSource_COUNT); - task->is_corrupted[ts_idx] = 1; - - if (msf_parse) { - PDB_OpenTypeServerError tpi_error = PDB_OpenTypeServerError_UNKNOWN; - PDB_OpenTypeServerError ipi_error = PDB_OpenTypeServerError_UNKNOWN; - - PDB_TypeServerParse tpi_parse, ipi_parse; - if (PDB_FixedStream_Tpi < msf_parse->stream_count && PDB_FixedStream_Ipi < msf_parse->stream_count) { - tpi_error = pdb_type_server_parse_from_data(msf_parse->streams[PDB_FixedStream_Tpi], &tpi_parse); - ipi_error = pdb_type_server_parse_from_data(msf_parse->streams[PDB_FixedStream_Ipi], &ipi_parse); - } - - if (tpi_error == PDB_OpenTypeServerError_OK && ipi_error == PDB_OpenTypeServerError_OK) { - task->is_corrupted[ts_idx] = 0; - - task->external_ti_ranges[ts_idx][CV_TypeIndexSource_NULL] = rng_1u64(0,0); - task->external_ti_ranges[ts_idx][CV_TypeIndexSource_TPI ] = tpi_parse.ti_range; - task->external_ti_ranges[ts_idx][CV_TypeIndexSource_IPI ] = ipi_parse.ti_range; - - MemoryZeroStruct(&task->external_leaves[ts_idx][CV_TypeIndexSource_NULL]); - task->external_leaves[ts_idx][CV_TypeIndexSource_TPI] = cv_debug_t_from_data(arena, tpi_parse.leaf_data, PDB_LEAF_ALIGN); - task->external_leaves[ts_idx][CV_TypeIndexSource_IPI] = cv_debug_t_from_data(arena, ipi_parse.leaf_data, PDB_LEAF_ALIGN); - } else { - if (tpi_error != PDB_OpenTypeServerError_OK) { - lnk_error(LNK_Error_UnableToOpenTypeServer, "failed to open TPI in %S, reson %S", task->ts_info_arr[ts_idx].name, pdb_string_from_open_type_server_error(tpi_error)); - } - if (ipi_error != PDB_OpenTypeServerError_OK) { - lnk_error(LNK_Error_UnableToOpenTypeServer, "failed to open IPI in %S, reason %S", task->ts_info_arr[ts_idx].name, pdb_string_from_open_type_server_error(ipi_error)); - } - } - } - - ProfEnd(); -} - -internal CV_DebugT * -lnk_merge_debug_t_and_debug_p(Arena *arena, U64 obj_count, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr) -{ - CV_DebugT *result = push_array_no_zero(arena, CV_DebugT, obj_count); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - CV_DebugT *debug_p = &debug_p_arr[obj_idx]; - CV_DebugT *debug_t = &debug_t_arr[obj_idx]; - if (debug_p->count) { - Assert(!debug_t->count); - result[obj_idx] = *debug_p; - } else if (debug_t->count) { - Assert(!debug_p->count); - result[obj_idx] = *debug_t; - } else { - MemoryZeroStruct(&result[obj_idx]); - } - } - return result; + return rrt_arr; } internal LNK_CodeViewInput -lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_flags, String8List lib_dir_list, String8List alt_pch_dirs, U64 obj_count, LNK_Obj **obj_arr) +lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U64 obj_count, LNK_Obj **obj_arr, LNK_RRT_Array rrt_input) { ProfBegin("Extract CodeView"); Temp scratch = scratch_begin(0,0); + + LNK_CodeViewInput input = { .config = config, .obj_count = obj_count, .count = obj_count, .obj_arr = obj_arr, .rrt_input = rrt_input, .ts_obj_range = r1u64(0,0) }; + + HashMap rrt_hm = {0}; + ProfScope("Make obj path -> RRT hash map") + { + for EachIndex(rrt_idx, rrt_input.count) { + for EachIndex(obj_idx, rrt_input.v[rrt_idx].obj_paths.count) { + hash_map_push_path_u64(scratch.arena, &rrt_hm, rrt_input.v[rrt_idx].obj_paths.v[obj_idx], Compose64Bit(rrt_idx, obj_idx)); + } + } + } + + ProfBegin("Apply RRT to Objs"); + + // hash map (obj path, obj idx) + HashMap obj_path_hm = {0}; + for EachIndex(obj_idx, obj_count) { + hash_map_push_path_u64(scratch.arena, &obj_path_hm, obj_arr[obj_idx]->path, obj_idx); + } + + for EachIndex(obj_idx, obj_count) { + LNK_Obj *obj = obj_arr[obj_idx]; + U64 *packed_rrt_idx = hash_map_search_path_u64(&rrt_hm, obj->path); + + // obj is not part of any input RRT + if (packed_rrt_idx == 0) { continue; } + + // unpack index + U32 rrt_idx = *packed_rrt_idx >> 32; + U32 rrt_obj_idx = *packed_rrt_idx & max_U32; + LNK_RRT *rrt = &rrt_input.v[rrt_idx]; + + // obj was recompiled, do not apply RRT indirection + FileProperties obj_file_props = properties_from_file_path(obj->path); + if (rrt->obj_time_stamps[rrt_obj_idx] != obj_file_props.modified) { continue; } + + // invalidate debug section pointers + obj->debug_t_sect_idx = ~0; + obj->debug_p_sect_idx = ~0; + obj->debug_h_sect_idx = ~0; + + // apply type index map + obj->ti_range = rrt->obj_ti_ranges[rrt_obj_idx]; + obj->ti_map = rrt->obj_ti_maps [rrt_obj_idx]; + + // apply PCH info + U32 rrt_pch_obj_idx = rrt->obj_pch_indices[rrt_obj_idx]; + if (rrt_pch_obj_idx < rrt->obj_count) { + String8 rrt_pch_obj_path = rrt->obj_paths.v[rrt_pch_obj_idx]; + U64 pch_obj_idx = *hash_map_search_path_u64(&obj_path_hm, rrt_pch_obj_path); + obj->pch_ti_range = rrt->obj_pch_ti_ranges[rrt_obj_idx]; + obj->pch_obj_idx = pch_obj_idx; + } else { + obj->pch_ti_range = r1u64(0,0); + obj->pch_obj_idx = ~0; + } + } + ProfEnd(); - // gather debug info sections from objs ProfBegin("Collect CodeView"); - // TODO: fix memory leak, we need a Temp wrapper for pool arena - B32 collect_discarded_flag = 0; - String8List *debug_s_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$S"), collect_discarded_flag); - String8List *debug_p_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$P"), collect_discarded_flag); - String8List *debug_t_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$T"), collect_discarded_flag); + input.debug_s_list_arr = lnk_collect_obj_sections(tp, tp_arena, obj_count, obj_arr, str8_lit(".debug$S"), 0); ProfEnd(); + // profiler info if (lnk_get_log_status(LNK_Log_Debug) || PROFILE_TELEMETRY) { - U64 total_debug_s_size = 0, total_debug_t_size = 0, total_debug_p_size = 0; - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - for (String8Node *chunk = debug_s_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_s_size += chunk->string.size; + U64 total_debug_s_size = 0, total_debug_t_size = 0, total_debug_p_size = 0, total_debug_h_size = 0; + for EachIndex(obj_idx, obj_count) { + LNK_Obj *obj = obj_arr[obj_idx]; + + for EachNode(n, String8Node, input.debug_s_list_arr[obj_idx].first) { total_debug_s_size += n->string.size; } + + if (obj->debug_t_sect_idx < obj->header.section_count_no_null) { + total_debug_t_size += lnk_obj_section_from_sect_idx(obj, obj->debug_t_sect_idx).header->fsize; } - for (String8Node *chunk = debug_t_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_t_size += chunk->string.size; + if (obj->debug_p_sect_idx < obj->header.section_count_no_null) { + total_debug_p_size += lnk_obj_section_from_sect_idx(obj, obj->debug_p_sect_idx).header->fsize; } - for (String8Node *chunk = debug_p_list_arr[obj_idx].first; chunk != 0; chunk = chunk->next) { - total_debug_p_size += chunk->string.size; + if (config->ghash) { + if (obj->debug_h_sect_idx < obj->header.section_count_no_null) { + total_debug_h_size += lnk_obj_section_from_sect_idx(obj, obj->debug_h_sect_idx).header->fsize; + } } } + + U64 total_rrt_type_size = 0; + U64 total_rrt_hash_size = 0; + for EachIndex(rrt_idx, rrt_input.count) { + total_rrt_type_size += rrt_input.v[rrt_idx].type_data_raw.size; + total_rrt_hash_size += rrt_input.v[rrt_idx].type_hashes.size; + } ProfNoteV("Total .debug$S Input Size: %M", total_debug_s_size); ProfNoteV("Total .debug$T Input Size: %M", total_debug_t_size); ProfNoteV("Total .debug$P Input Size: %M", total_debug_p_size); + ProfNoteV("Total .debug$H Input Size: %M", total_debug_h_size); + ProfNoteV("Total RRT-Type Input Size: %M", total_rrt_type_size); + ProfNoteV("Total RRT-Hash Input Size: %M", total_rrt_hash_size); if (lnk_get_log_status(LNK_Log_Debug)) { lnk_log(LNK_Log_Debug, "[Total .debug$S Input Size %M]", total_debug_s_size); lnk_log(LNK_Log_Debug, "[Total .debug$T Input Size %M]", total_debug_t_size); lnk_log(LNK_Log_Debug, "[Total .debug$P Input Size %M]", total_debug_p_size); + lnk_log(LNK_Log_Debug, "[Total .debug$H Input Size %M]", total_debug_h_size); + lnk_log(LNK_Log_Debug, "[Total RRT-Type Input Size %M]", total_rrt_type_size); + lnk_log(LNK_Log_Debug, "[Total RRT-Hash Input Size %M]", total_rrt_hash_size); } } ProfBegin("Parse CodeView"); - CV_DebugS *debug_s_arr = lnk_parse_debug_s_sections(tp, tp_arena, obj_count, obj_arr, debug_s_list_arr); - CV_DebugT *debug_p_arr = lnk_parse_debug_t_sections(tp, tp_arena, obj_count, obj_arr, debug_p_list_arr); - CV_DebugT *debug_t_arr = lnk_parse_debug_t_sections(tp, tp_arena, obj_count, obj_arr, debug_t_list_arr); + CV_DebugT *debug_p_arr; + { + // parse .debug$S + input.debug_s_arr = push_array(tp_arena->v[0], CV_DebugS, input.obj_count); + tp_for_parallel_prof(tp, tp_arena, obj_count, lnk_parse_debug_s_task, &input, "Parse .debug$S"); + + // collect .debug$P and .debug$T + String8Array *raw_debug_p_arr = push_array(scratch.arena, String8Array, obj_count); + String8Array *raw_debug_t_arr = push_array(scratch.arena, String8Array, obj_count); + for EachIndex(obj_idx, obj_count) { + LNK_Obj *obj = obj_arr[obj_idx]; + + if (obj->debug_t_sect_idx < obj->header.section_count_no_null) { + LNK_ObjSection debug_t_sect = lnk_obj_section_from_sect_idx(obj, obj->debug_t_sect_idx); + raw_debug_t_arr[obj_idx].count = 1; + raw_debug_t_arr[obj_idx].v = push_array(scratch.arena, String8, 1); + raw_debug_t_arr[obj_idx].v[0] = str8_substr(obj->data, debug_t_sect.frange); + } + + if (obj->debug_p_sect_idx < obj->header.section_count_no_null) { + LNK_ObjSection debug_p_sect = lnk_obj_section_from_sect_idx(obj, obj->debug_p_sect_idx); + raw_debug_p_arr[obj_idx].count = 1; + raw_debug_p_arr[obj_idx].v = push_array(scratch.arena, String8, 1); + raw_debug_p_arr[obj_idx].v[0] = str8_substr(obj->data, debug_p_sect.frange); + } + } + + LNK_ParseCvTypes parse_types = { .input = &input }; + + // parse .debug$P + debug_p_arr = push_array(tp_arena->v[0], CV_DebugT, obj_count); + parse_types.raw_types = raw_debug_p_arr; + parse_types.out_types = debug_p_arr; + tp_for_parallel_prof(tp, 0, obj_count, lnk_strip_debug_t_sig_task, &parse_types, "Strip .debug$P"); + tp_for_parallel_prof(tp, tp_arena, obj_count, lnk_parse_debug_t_task, &parse_types, "Parse .debug$P"); + + // parse .debug$T + input.debug_t_arr = push_array(tp_arena->v[0], CV_DebugT, obj_count); + parse_types.raw_types = raw_debug_t_arr; + parse_types.out_types = input.debug_t_arr; + tp_for_parallel_prof(tp, 0, obj_count, lnk_strip_debug_t_sig_task, &parse_types, "Strip .debug$T"); + tp_for_parallel_prof(tp, tp_arena, obj_count, lnk_parse_debug_t_task, &parse_types, "Parse .debug$T"); + + // parse .debug$H + input.debug_h_arr = push_array(tp_arena->v[0], CV_DebugH, input.obj_count); + if (config->ghash) { + tp_for_parallel_prof(tp, tp_arena, obj_count, lnk_parse_debug_h_task, &input, "Parse .debug$H"); + } + } ProfEnd(); - - ProfBegin("Sort Type Servers"); - U64 external_count = 0, internal_count = 0; - LNK_Obj **sorted_obj_arr = push_array_no_zero(tp_arena->v[0], LNK_Obj *, obj_count); - CV_DebugS *sorted_debug_s_arr = push_array_no_zero(tp_arena->v[0], CV_DebugS, obj_count); - CV_DebugT *sorted_debug_t_arr = push_array_no_zero(tp_arena->v[0], CV_DebugT, obj_count); - CV_DebugT *sorted_debug_p_arr = push_array_no_zero(tp_arena->v[0], CV_DebugT, obj_count); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - B32 is_type_server = cv_debug_t_is_type_server(debug_t_arr[obj_idx]); - if (is_type_server) { - Assert(internal_count + external_count < obj_count); - U64 slot_idx = (obj_count - external_count - 1); - ++external_count; + // sort objs based on type: PCH, /Zi (external), /Z7 (internal) + input.debug_p_indices.v = push_array(tp_arena->v[0], U32, obj_count); + input.ext_obj_indices.v = push_array(tp_arena->v[0], U32, obj_count); + input.int_obj_indices.v = push_array(tp_arena->v[0], U32, obj_count); + for EachIndex(obj_idx, obj_count) { + CV_DebugT *debug_t = &input.debug_t_arr[obj_idx]; + CV_DebugT *debug_p = &debug_p_arr[obj_idx]; + U32Array *arr_ptr; + if (hash_map_search_path_u64(&rrt_hm, obj_arr[obj_idx]->path)) { arr_ptr = &input.ext_obj_indices; } + else if (debug_p->count > 0 && debug_t->count == 0) { arr_ptr = &input.debug_p_indices; } + else if (cv_debug_t_is_type_server_ref(debug_t)) { arr_ptr = &input.ext_obj_indices; } + else { arr_ptr = &input.int_obj_indices; } + arr_ptr->v[arr_ptr->count++] = obj_idx; - // TODO: report error: somehow obj was compiled with /Zi and /Yc - Assert(debug_p_arr[obj_idx].count == 0); - - sorted_obj_arr[slot_idx] = obj_arr[obj_idx]; - sorted_debug_s_arr[slot_idx] = debug_s_arr[obj_idx]; - sorted_debug_t_arr[slot_idx] = debug_t_arr[obj_idx]; - MemoryZeroStruct(&sorted_debug_p_arr[slot_idx]); - } else { - Assert(internal_count + external_count < obj_count); - U64 slot_idx = internal_count; - ++internal_count; - - sorted_obj_arr[slot_idx] = obj_arr[obj_idx]; - sorted_debug_s_arr[slot_idx] = debug_s_arr[obj_idx]; - sorted_debug_t_arr[slot_idx] = debug_t_arr[obj_idx]; - sorted_debug_p_arr[slot_idx] = debug_p_arr[obj_idx]; + if (debug_t->count == 0 && debug_p->count > 0) { + *debug_t = *debug_p; + } else if (debug_t->count && debug_p->count) { + lnk_error_obj(LNK_Warning_MultipleDebugTAndDebugP, obj_arr[obj_idx], "multiple sections with debug types detected, obj must have either .debug$T or .debug$P; discarding both sections"); + MemoryZeroStruct(debug_t); + MemoryZeroStruct(debug_p); } } - ProfEnd(); - - // setup pointers to arrays - LNK_Obj **internal_obj_arr = sorted_obj_arr; - LNK_Obj **external_obj_arr = sorted_obj_arr + internal_count; - CV_DebugS *internal_debug_s_arr = sorted_debug_s_arr; - CV_DebugS *external_debug_s_arr = sorted_debug_s_arr + internal_count; - CV_DebugT *internal_debug_t_arr = sorted_debug_t_arr; - CV_DebugT *external_debug_t_arr = sorted_debug_t_arr + internal_count; - CV_DebugT *internal_debug_p_arr = sorted_debug_p_arr; - CV_DebugT *external_debug_p_arr = sorted_debug_p_arr + internal_count; - - ProfBegin("Parse Symbols"); - - ProfBegin("Count Symbol Inputs"); - U64 internal_total_symbol_input_count = 0; - U64 external_total_symbol_input_count = 0; - for (U64 obj_idx = 0; obj_idx < internal_count; ++obj_idx) { - String8List raw_symbols = cv_sub_section_from_debug_s(internal_debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); - internal_total_symbol_input_count += raw_symbols.node_count; - } - for (U64 obj_idx = 0; obj_idx < external_count; ++obj_idx) { - String8List raw_symbols = cv_sub_section_from_debug_s(external_debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); - external_total_symbol_input_count += raw_symbols.node_count; - } - ProfEnd(); - - ProfBegin("Prepare Symbol Inputs"); - U64 total_symbol_input_count = internal_total_symbol_input_count + external_total_symbol_input_count; - LNK_CodeViewSymbolsInput *symbol_inputs = push_array_no_zero(tp_arena->v[0], LNK_CodeViewSymbolsInput, total_symbol_input_count); - CV_SymbolListArray *parsed_symbols = push_array_no_zero(tp_arena->v[0], CV_SymbolListArray, obj_count); + ProfScope("Set up PDB and RRT") { - CV_SymbolList *reserved_lists = push_array(tp_arena->v[0], CV_SymbolList, total_symbol_input_count); - for (U64 obj_idx = 0, input_idx = 0; obj_idx < obj_count; ++obj_idx) { - String8List raw_symbols = cv_sub_section_from_debug_s(sorted_debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); + input.obj_to_ts = push_array(tp_arena->v[0], U64, input.count); + MemorySet(input.obj_to_ts, 0xff, input.count * sizeof(input.obj_to_ts[0])); - // init parse output - if (raw_symbols.node_count > 0) { - parsed_symbols[obj_idx].count = raw_symbols.node_count; - parsed_symbols[obj_idx].v = reserved_lists + input_idx; + LNK_TypeServerList ts_list = {0}; + HashTable *ts_ht = hash_table_init(scratch.arena, 256); + + // push null type server (slots with broken type servers are set to null) + LNK_TypeServerNode *null_ts = push_array(scratch.arena, LNK_TypeServerNode, 1); + SLLQueuePush(ts_list.first, ts_list.last, null_ts); + ts_list.count += 1; + null_ts->v.ts_path = str8_lit(""); + hash_table_push_path_raw(scratch.arena, ts_ht, str8_lit(""), null_ts); + + for EachIndex(i, input.ext_obj_indices.count) { + // first leaf is always type server + U64 obj_idx = input.ext_obj_indices.v[i]; + + U64 *packed_rrt_info = hash_map_search_path_u64(&rrt_hm, obj_arr[obj_idx]->path); + + LNK_TypeServerKind ts_kind = LNK_TypeServerKind_Null; + CV_TypeServerInfo ts_info = {0}; + String8 ts_path = {0}; + LNK_RRT *rrt = 0; + if (packed_rrt_info) { + U32 rrt_idx = *packed_rrt_info >> 32; + rrt = &rrt_input.v[rrt_idx]; + ts_kind = LNK_TypeServerKind_RRT; + ts_path = rrt->path; } else { - parsed_symbols[obj_idx].count = 0; - parsed_symbols[obj_idx].v = 0; + CV_DebugT *debug_t = &input.debug_t_arr[obj_idx]; + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, 0); + ts_kind = LNK_TypeServerKind_PDB; + ts_info = cv_type_server_info_from_leaf(leaf); + ts_path = lnk_find_first_file(scratch.arena, config->lib_dir_list, ts_info.name); } - // init worker input - for (String8Node *data_n = raw_symbols.first; data_n != 0; data_n = data_n->next, ++input_idx) { - Assert(input_idx < total_symbol_input_count); - LNK_CodeViewSymbolsInput *in = &symbol_inputs[input_idx]; - in->obj_idx = obj_idx; - in->symbol_list = &reserved_lists[input_idx]; - in->raw_symbols = data_n->string; - } - } - } - ProfEnd(); - - ProfBegin("Symbol Parse"); - LNK_ParseCVSymbolsTaskData task = {0}; - task.inputs = symbol_inputs; - tp_for_parallel(tp, tp_arena, total_symbol_input_count, lnk_parse_cv_symbols_task, &task); - ProfEnd(); - - // TODO: do we rely on this behaviour? - // - // :zero_out_symbol_sub_section - ProfBegin("Zero-out Symbols Sub-sections"); - for (U64 i = 0; i < obj_count; ++i) { - CV_DebugS *debug_s = &sorted_debug_s_arr[i]; - String8List *symbols_ptr = cv_sub_section_ptr_from_debug_s(debug_s, CV_C13SubSectionKind_Symbols); - MemoryZeroStruct(symbols_ptr); - } - ProfEnd(); - - ProfEnd(); - - CV_SymbolListArray *internal_parsed_symbols = parsed_symbols; - CV_SymbolListArray *external_parsed_symbols = parsed_symbols + internal_count; - LNK_CodeViewSymbolsInput *internal_symbol_inputs = symbol_inputs; - LNK_CodeViewSymbolsInput *external_symbol_inputs = symbol_inputs + internal_count; - - LNK_PchInfo *pch_arr = lnk_setup_pch(tp_arena->v[0], - internal_count, - internal_obj_arr, - internal_debug_t_arr, - internal_debug_p_arr, - internal_parsed_symbols, - alt_pch_dirs); - - CV_DebugT *merged_debug_t_p_arr = lnk_merge_debug_t_and_debug_p(tp_arena->v[0], internal_count, internal_debug_t_arr, internal_debug_p_arr); - - ProfBegin("Analyze & Read External Type Server Files"); - String8Array ts_path_arr; - Rng1U64 **external_ti_ranges; - CV_DebugT **external_leaves; - U64 *obj_to_ts_idx_arr = push_array_no_zero(tp_arena->v[0], U64, external_count + 1); - U64List *ts_to_obj_arr = push_array(tp_arena->v[0], U64List, external_count + 1); - { - HashTable *type_server_path_ht = hash_table_init(scratch.arena, 256); - HashTable *ignored_path_ht = hash_table_init(scratch.arena, 256); - CV_TypeServerInfoList ts_info_list = {0}; - - // push null - CV_TypeServerInfoNode *null_ts_info = push_array(scratch.arena, CV_TypeServerInfoNode, 1); - null_ts_info->data.name = str8_lit("\0"); - SLLQueuePush(ts_info_list.first, ts_info_list.last, null_ts_info); - ++ts_info_list.count; - - for (U64 obj_idx = 0; obj_idx < external_count; ++obj_idx) { - // first leaf always type server - CV_DebugT debug_t = external_debug_t_arr[obj_idx]; - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, 0); - CV_TypeServerInfo ts = cv_type_server_info_from_leaf(leaf); - - // search disk for type server - String8 type_server_path = lnk_find_first_file(scratch.arena, lib_dir_list, ts.name); - - // report no match - B32 do_debug_info_discard = 0; - if (type_server_path.size == 0) { - if (!hash_table_search_path(ignored_path_ht, ts.name)) { - hash_table_push_string_u64(scratch.arena, ignored_path_ht, ts.name, 0); - lnk_error_obj(LNK_Warning_MissingExternalTypeServer, obj_arr[obj_idx], "unable to open external type server %S", ts.name); - } - do_debug_info_discard = 1; - } - - // external type server is missing, discard parts of debug info that need types - if (do_debug_info_discard) { - lnk_do_debug_info_discard(external_debug_s_arr, external_parsed_symbols, obj_idx); + if (ts_path.size == 0) { + lnk_discard_cv_debug_info(&input, obj_idx); continue; } - { - struct HT_Value { - CV_TypeServerInfo ts; - LNK_Obj *obj; - U64 ts_idx; - }; + // insert new type server + LNK_TypeServer *ts = hash_table_search_path_raw(ts_ht, ts_path); + if (ts == 0) { + LNK_TypeServerNode *n = push_array(scratch.arena, LNK_TypeServerNode, 1); + SLLQueuePush(ts_list.first, ts_list.last, n); + ts_list.count += 1; + ts = &n->v; + ts->ts_info = ts_info; + ts->ts_idx = ts_ht->count; + ts->ts_kind = ts_kind; + ts->ts_path = push_str8_copy(tp_arena->v[0], ts_path); + ts->rrt = rrt; + hash_table_push_path_raw(scratch.arena, ts_ht, ts->ts_path, ts); + } + + // signature check + if ( ! MemoryMatchStruct(&ts_info.sig, &ts->ts_info.sig)) { + lnk_error_obj(LNK_Error_ExternalTypeServerConflict, + obj_arr[obj_idx], + "type server signature conflicts with type server from '%S'", + obj_arr[ts->obj_indices.first->data]->path); + lnk_discard_cv_debug_info(&input, obj_idx); + continue; + } - // was this type server queued? - KeyValuePair *is_path_queued = hash_table_search_path(type_server_path_ht, type_server_path); - if (is_path_queued) { - struct HT_Value *present = is_path_queued->value_raw; - - // make sure type servers sigs match - if (MemoryMatchStruct(&ts.sig, &present->ts.sig)) { - // wire obj to type server data - obj_to_ts_idx_arr[obj_idx] = present->ts_idx; + // type server -> obj + u64_list_push(tp_arena->v[0], &ts->obj_indices, obj_idx); - // wire type server to obj - u64_list_push(tp_arena->v[0], &ts_to_obj_arr[present->ts_idx], obj_idx); - } else { - lnk_error_obj(LNK_Error_ExternalTypeServerConflict, - obj_arr[obj_idx], - "external type server signature conflicts with type server loaded from '%S'", - present->obj->path); - } - } else { - U64 ts_idx = ts_info_list.count; + // obj -> type server + input.obj_to_ts[obj_idx] = ts->ts_idx; + } - // when we search matches on disk we store path on scratch, - // make path copy in case we need it for error reporting - type_server_path = push_str8_copy(tp_arena->v[0], type_server_path); + // list -> array + LNK_TypeServerArray ts_arr = { .v = push_array(tp_arena->v[0], LNK_TypeServer, ts_list.count) }; + for EachNode(n, LNK_TypeServerNode, ts_list.first) { ts_arr.v[ts_arr.count++] = n->v; } - // fill out type server info we read from obj - CV_TypeServerInfoNode *ts_info_node = push_array(scratch.arena, CV_TypeServerInfoNode, 1); - ts_info_node->data = ts; - ts_info_node->data.name = type_server_path; + // extend arrays to include type servers + if (ts_arr.count) { + LNK_CodeViewInput prev = input; - // push to type server info list - SLLQueuePush(ts_info_list.first, ts_info_list.last, ts_info_node); - ts_info_list.count += 1; - - // wire obj to type server - obj_to_ts_idx_arr[obj_idx] = ts_idx; + input.count += ts_arr.count; + input.obj_arr = push_array(tp_arena->v[0], LNK_Obj *, input.count); + input.debug_s_arr = push_array(tp_arena->v[0], CV_DebugS, input.count); + input.debug_t_arr = push_array(tp_arena->v[0], CV_DebugT, input.count); + input.debug_h_arr = push_array(tp_arena->v[0], CV_DebugH, input.count); + input.obj_to_ts = push_array(tp_arena->v[0], U64, input.count); - // wire type server to obj - u64_list_push(tp_arena->v[0], &ts_to_obj_arr[ts_idx], obj_idx); - - // fill out value - struct HT_Value *value = push_array(scratch.arena, struct HT_Value, 1); - value->ts = ts; - value->obj = obj_arr[obj_idx]; - value->ts_idx = ts_idx; - - // update hash table - hash_table_push_path_raw(scratch.arena, type_server_path_ht, type_server_path, value); - } + MemoryCopyTyped(input.obj_arr, prev.obj_arr, prev.count); + MemoryCopyTyped(input.debug_s_arr, prev.debug_s_arr, prev.count); + MemoryCopyTyped(input.debug_t_arr, prev.debug_t_arr, prev.count); + MemoryCopyTyped(input.debug_h_arr, prev.debug_h_arr, prev.count); + MemoryCopyTyped(input.obj_to_ts, prev.obj_to_ts, prev.count); + MemorySet(input.obj_to_ts + input.obj_count, 0xff, ts_arr.count * sizeof(input.obj_to_ts[0])); + + input.ts_obj_range = r1u64(prev.count, input.count); + + // alloc dummy objs with for each loaded type server + for EachIndex(i, ts_arr.count) { + LNK_Obj *ts_obj = push_array(tp_arena->v[0], LNK_Obj, ts_arr.count); + ts_obj->path = ts_arr.v[i].ts_path; + input.obj_arr[prev.count + i] = ts_obj; + } + + // make type server indices + input.type_server_indices.count = ts_arr.count; + input.type_server_indices.v = push_array(tp_arena->v[0], U32, ts_arr.count); + for EachIndex(i, ts_arr.count) { input.type_server_indices.v[i] = prev.count + i; } + } + + input.ts_arr = ts_arr; + input.is_type_server_discarded = push_array(tp_arena->v[0], B32, input.ts_arr.count); + tp_for_parallel_prof(tp, tp_arena, input.ts_arr.count, lnk_read_type_servers_task, &input, "read type servers"); + + // undiscard null type server + input.is_type_server_discarded[0] = 0; + + // wire RRT hashes to type servers .debug$H + for EachIndex(ts_idx, ts_arr.count) { + LNK_TypeServer *ts = &ts_arr.v[ts_idx]; + if (ts->rrt) { + U64 ts_obj_idx = input.ts_obj_range.min + ts_idx; + CV_DebugT *debug_t = &input.debug_t_arr[ts_obj_idx]; + CV_DebugH *debug_h = &input.debug_h_arr[ts_obj_idx]; + debug_h->count = ts->rrt->type_hashes.size / sizeof(U64); + debug_h->v = (U64 *)ts->rrt->type_hashes.str; } } - // type server info list -> array - ts_path_arr.count = ts_info_list.count; - ts_path_arr.v = push_array(tp_arena->v[0], String8, ts_info_list.count); - CV_TypeServerInfo *ts_info_arr = push_array(scratch.arena, CV_TypeServerInfo, ts_info_list.count); - { - U64 idx = 0; - for (CV_TypeServerInfoNode *n = ts_info_list.first; n != 0; n = n->next, ++idx) { - ts_path_arr.v[idx] = n->data.name; - ts_info_arr[idx] = n->data; + // report bad type servers + String8List unopen_type_server_list = {0}; + for EachIndex(ts_idx, ts_arr.count) { + if ( ! input.is_type_server_discarded[ts_idx]) { continue; } + str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t%S\n", ts_arr.v[ts_idx].ts_path); + str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t\tDependent objs:\n"); + for EachNode(n, U64Node, input.ts_arr.v[ts_idx].obj_indices.first) { + str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t\t\t%S\n", obj_arr[n->data]->path); } } + if (unopen_type_server_list.node_count) { + String8List error_msg_list = {0}; + str8_list_pushf(scratch.arena, &error_msg_list, "unable to open external type server(s):\n"); + str8_list_concat_in_place(&error_msg_list, &unopen_type_server_list); + lnk_error(LNK_Error_UnableToOpenTypeServer, "%S", str8_list_join(scratch.arena, &error_msg_list, 0)); + } + } + + ProfBegin("Set up PCH"); + { + // register PCH file paths + HashMap debug_p_hm_path = {0}; + HashMap debug_p_hm_name = {0}; // (obj name, U64List of PCH obj indices) + for EachIndex(i, input.debug_p_indices.count) { + U64 obj_idx = input.debug_p_indices.v[i]; + LNK_Obj *obj = obj_arr[obj_idx]; - // read type servers from disk in parallel - { - ProfBegin("Read External Type Servers"); - String8Array msf_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, 0, ts_path_arr); - ProfEnd(); - - MSF_Parsed **msf_parse_arr = lnk_msf_parsed_from_data_parallel(tp_arena, tp, msf_data_arr); - - ProfBegin("Error check type servers"); - for (U64 ts_idx = 0; ts_idx < msf_data_arr.count; ++ts_idx) { - MSF_Parsed *msf_parse = msf_parse_arr[ts_idx]; - - B32 do_debug_info_discard = 0; - - if (!msf_parse) { - do_debug_info_discard = 1; - } else { - PDB_InfoParse info_parse = {0}; - pdb_info_parse_from_data(msf_parse->streams[PDB_FixedStream_Info], &info_parse); - if (!MemoryMatchStruct(&info_parse.guid, &ts_info_arr[ts_idx].sig)) { - Temp scratch = scratch_begin(0,0); - String8 expected_sig_str = string_from_guid(scratch.arena, ts_info_arr[ts_idx].sig); - String8 on_disk_sig_str = string_from_guid(scratch.arena, info_parse.guid); - lnk_error(LNK_Warning_MismatchedTypeServerSignature, "%S: signature mismatch in type server read from disk, expected %S, got %S", - ts_info_arr[ts_idx].name, expected_sig_str, on_disk_sig_str); - scratch_end(scratch); - - do_debug_info_discard = 1; - } - } - - if (do_debug_info_discard) { - U64List obj_idx_list = ts_to_obj_arr[ts_idx]; - for (U64Node *obj_idx_n = obj_idx_list.first; obj_idx_n != 0; obj_idx_n = obj_idx_n->next) { - lnk_do_debug_info_discard(external_debug_s_arr, external_parsed_symbols, obj_idx_n->data); - } - } + // register file path -> obj idx map + String8 obj_path = path_absolute_dst_from_relative_dst_src(scratch.arena, obj_arr[obj_idx]->path, config->work_dir); + if (hash_map_search_path_u64(&debug_p_hm_path, obj_path)) { + lnk_error_obj(LNK_Warning_DuplicateObjPath, obj, "duplicate obj path %S", obj_path); + } else { + hash_map_push_path_u64(scratch.arena, &debug_p_hm_path, obj_path, obj_idx); } - ProfEnd(); - ProfBeginDynamic("Open External Type Servers [Count %llu]", ts_path_arr.count); - LNK_GetExternalLeavesTask task = {0}; - task.ts_info_arr = ts_info_arr; - task.msf_parse_arr = msf_parse_arr; - task.external_ti_ranges = push_array_no_zero(tp_arena->v[0], Rng1U64 *, msf_data_arr.count); - task.external_leaves = push_array_no_zero(tp_arena->v[0], CV_DebugT *, msf_data_arr.count); - task.is_corrupted = push_array_no_zero(scratch.arena, B8, msf_data_arr.count); - tp_for_parallel(tp, tp_arena, msf_data_arr.count, lnk_get_external_leaves_task, &task); - ProfEnd(); + // register file name -> obj idx map + String8 obj_name = str8_skip_last_slash(obj_path); + U64List *match_indices = hash_map_search_path_raw(&debug_p_hm_name, obj_name); + if (match_indices == 0) { + match_indices = push_array(scratch.arena, U64List, 1); + hash_map_push_path_raw(scratch.arena, &debug_p_hm_name, obj_name, match_indices); + } + u64_list_push(scratch.arena, match_indices, obj_idx); + } - String8List unopen_type_server_list = {0}; + for EachIndex(i, input.int_obj_indices.count) { + U64 obj_idx = input.int_obj_indices.v[i]; + CV_DebugT *debug_t = &input.debug_t_arr[obj_idx]; - // discard debug info that depends on the missing type server - for (U64 ts_idx = 1; ts_idx < msf_data_arr.count; ++ts_idx) { - if (task.is_corrupted[ts_idx]) { - U64List obj_idx_list = ts_to_obj_arr[ts_idx]; - for (U64Node *node = obj_idx_list.first; node != 0; node = node->next) { - lnk_do_debug_info_discard(external_debug_s_arr, external_parsed_symbols, node->data); - } + // skip objs that do not depend on PCH + if ( ! cv_debug_t_is_pch(debug_t)) { continue; } + + // find PCH obj by file path + CV_PrecompInfo precomp = cv_precomp_info_from_leaf(cv_debug_t_get_leaf(debug_t, 0)); + String8 obj_path = path_absolute_dst_from_relative_dst_src(scratch.arena, precomp.obj_name, config->work_dir); + U64 *debug_p_obj_idx_ptr = hash_map_search_path_u64(&debug_p_hm_path, obj_path); + U64 debug_p_obj_idx = debug_p_obj_idx_ptr ? *debug_p_obj_idx_ptr : max_U64; + + // find PCH obj by signature + if (debug_p_obj_idx_ptr == 0) { + for EachIndex(pch_i, input.debug_p_indices.count) { + U64 pch_obj_idx = input.debug_p_indices.v[pch_i]; + CV_DebugT *pch_debug_t = &input.debug_t_arr[pch_obj_idx]; + if (precomp.leaf_count >= pch_debug_t->count) { continue; } + + CV_Leaf end_leaf = cv_debug_t_get_leaf(pch_debug_t, precomp.leaf_count); + if (end_leaf.kind != CV_LeafKind_ENDPRECOMP) { continue; } + if (end_leaf.data.size < sizeof(CV_LeafEndPreComp)) { continue; } + + CV_LeafEndPreComp *end_precomp = str8_deserial_get_raw_ptr(end_leaf.data, 0, sizeof(*end_precomp)); + if (end_precomp->sig != precomp.sig) { continue; } + + debug_p_obj_idx = pch_obj_idx; + break; } } - // format error - for (U64 ts_idx = 1; ts_idx < msf_data_arr.count; ++ts_idx) { - if (task.is_corrupted[ts_idx]) { - U64List obj_idx_list = ts_to_obj_arr[ts_idx]; - str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t%S\n", ts_path_arr.v[ts_idx]); - str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t\tDependent obj(s):\n"); - for (U64Node *obj_idx_node = obj_idx_list.first; obj_idx_node != 0; obj_idx_node = obj_idx_node->next) { - String8 obj_path = external_obj_arr[obj_idx_node->data]->path; - str8_list_pushf(scratch.arena, &unopen_type_server_list, "\t\t\t%S\n", obj_path); - } - } - } - if (unopen_type_server_list.node_count) { - String8List error_msg_list = { 0 }; - str8_list_pushf(scratch.arena, &error_msg_list, "unable to open external type server(s):\n"); - str8_list_concat_in_place(&error_msg_list, &unopen_type_server_list); - String8 error_msg = str8_list_join(scratch.arena, &error_msg_list, 0); - lnk_error(LNK_Error_UnableToOpenTypeServer, "%S", error_msg); + if (debug_p_obj_idx > input.obj_count) { + lnk_error_obj(LNK_Error_PrecompObjNotFound, obj_arr[obj_idx], "LF_PRECOMP references non-existent obj %S; discarding debug info", obj_path); + lnk_discard_cv_debug_info(&input, obj_idx); + continue; } - // output - external_ti_ranges = task.external_ti_ranges; - external_leaves = task.external_leaves; + // get PCH leaf data + CV_DebugT *debug_p = &input.debug_t_arr[debug_p_obj_idx]; + + // error check LF_PRECOMP + if (precomp.start_index > CV_MinComplexTypeIndex) { lnk_error_obj(LNK_Warning_AtypicalStartIndex, obj_arr[obj_idx], "atypical start index 0x%x in LF_PRECOMP", precomp.start_index); } + if (precomp.start_index < CV_MinComplexTypeIndex) { lnk_error_obj(LNK_Error_InvalidStartIndex, obj_arr[obj_idx], "invalid start index 0x%x in LF_PRECOMP; must be >= 0x%x", precomp.start_index, CV_MinComplexTypeIndex); continue; } + if (precomp.leaf_count >= debug_p->count) { lnk_error_obj(LNK_Error_InvalidPrecompLeafCount, obj_arr[obj_idx], "leaf count %u LF_PRECOMP exceeds leaf count %u in .debug$P in %S", precomp.leaf_count, debug_p->count, obj_arr[debug_p_obj_idx]->path); continue; } + + // get LF_PRECOMP + CV_Leaf endprecomp_leaf = cv_debug_t_get_leaf(debug_p, precomp.leaf_count); + CV_LeafEndPreComp *endprecomp = str8_deserial_get_raw_ptr(endprecomp_leaf.data, 0, sizeof(*endprecomp)); + + // error check LF_ENDPRECOMP + if (endprecomp_leaf.kind != CV_LeafKind_ENDPRECOMP) { lnk_error_obj(LNK_Error_EndprecompNotFound, obj_arr[obj_idx], "missing LF_ENDPRECOMP [0x%x] in %S", precomp.leaf_count, obj_arr[debug_p_obj_idx]->path); continue; } + if (endprecomp_leaf.data.size != sizeof(CV_LeafEndPreComp)) { lnk_error_obj(LNK_Error_IllData, obj_arr[obj_idx], "invalid size 0x%x for LF_ENDPRECOMP", endprecomp_leaf.data.size); continue; } + if (endprecomp->sig != precomp.sig) { lnk_error_obj(LNK_Error_PrecompSigMismatch, obj_arr[obj_idx], "PCH signature mismatch, expected 0x%x got 0x%x; PCH obj %S", precomp.sig, endprecomp->sig, obj_arr[debug_p_obj_idx]->path); continue; } + + for (U64 i = 1; i < CV_TypeIndexSource_COUNT; i += 1) { debug_t->pch_ti_range[i] = r1u64(precomp.start_index, precomp.start_index + precomp.leaf_count); } + debug_t->pch_obj_idx = debug_p_obj_idx; + + // remove CV_LeafKind_PRECOMP + debug_t->count -= 1; + debug_t->offsets += 1; + } + + // remove LF_ENDPRECOMP from .debug$P + for EachIndex(i, input.debug_p_indices.count) { + U64 debug_p_idx = input.debug_p_indices.v[i]; + CV_DebugT *debug_p = &input.debug_t_arr[debug_p_idx]; + for EachIndex(i, debug_p->count) { + U64 lf_idx = debug_p->count - (i + 1); + CV_LeafHeader *lf = cv_debug_t_get_leaf_header(debug_p, lf_idx); + if (lf->kind == CV_LeafKind_ENDPRECOMP) { + memory_write16(&lf->size, sizeof(lf->kind)); + memory_write16(&lf->kind, CV_LeafKind_NOTYPE); + break; + } + } } } ProfEnd(); - // fill out result - LNK_CodeViewInput cv = {0}; - cv.count = obj_count; - cv.internal_count = internal_count; - cv.external_count = external_count; - cv.type_server_count = ts_path_arr.count; - cv.type_server_path_arr = ts_path_arr.v; - cv.ts_to_obj_arr = ts_to_obj_arr; - cv.obj_arr = sorted_obj_arr; - cv.pch_arr = pch_arr; - cv.debug_s_arr = sorted_debug_s_arr; - cv.debug_p_arr = sorted_debug_p_arr; - cv.debug_t_arr = sorted_debug_t_arr; - cv.merged_debug_t_p_arr = merged_debug_t_p_arr; - cv.total_symbol_input_count = total_symbol_input_count; - cv.symbol_inputs = symbol_inputs; - cv.parsed_symbols = parsed_symbols; - cv.internal_obj_arr = internal_obj_arr; - cv.external_obj_arr = external_obj_arr; - cv.internal_debug_s_arr = internal_debug_s_arr; - cv.external_debug_s_arr = external_debug_s_arr; - cv.internal_debug_t_arr = internal_debug_t_arr; - cv.external_debug_t_arr = external_debug_t_arr; - cv.internal_debug_p_arr = internal_debug_p_arr; - cv.external_debug_p_arr = external_debug_p_arr; - cv.internal_total_symbol_input_count = internal_total_symbol_input_count; - cv.internal_symbol_inputs = internal_symbol_inputs; - cv.internal_parsed_symbols = internal_parsed_symbols; - cv.external_total_symbol_input_count = external_total_symbol_input_count; - cv.external_symbol_inputs = external_symbol_inputs; - cv.external_parsed_symbols = external_parsed_symbols; - cv.external_ti_ranges = external_ti_ranges; - cv.external_leaves = external_leaves; - cv.external_obj_to_ts_idx_arr = obj_to_ts_idx_arr; - cv.external_obj_range = rng_1u64(internal_count, internal_count + external_count); + // set default min type index + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { input.min_type_indices[ti_source] = CV_MinComplexTypeIndex; } + + // PCH and /Z7 objs have default min type index set to CV_MinComplexTypeIndex + // but type servers can bump up the lower bound. In practice nobody does this. + // But to cover all our bases loop through type servers and compute max + // lower bound. + for EachInRange(ts_idx, input.ts_obj_range) { + CV_DebugT *debug_t = &input.debug_t_arr[ts_idx]; + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + input.min_type_indices[ti_source] = Max(input.min_type_indices[ti_source], debug_t->ti_ranges[ti_source].min); + } + } + + ProfBegin("Make Symbol Inputs"); + { + // count symbol blocks + for EachIndex(obj_idx, input.count) { + String8List s = cv_sub_section_from_debug_s(input.debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); + input.symbol_input_count += s.node_count; + } + // alloc block pointers + input.symbol_inputs = push_array_no_zero(tp_arena->v[0], LNK_SymbolInput, input.symbol_input_count); + + U64 symbol_input_count = 0; + for EachIndex(obj_idx, input.count) { + String8List s = cv_sub_section_from_debug_s(input.debug_s_arr[obj_idx], CV_C13SubSectionKind_Symbols); + for EachNode(n, String8Node, s.first) { + Assert(symbol_input_count < input.symbol_input_count); + LNK_SymbolInput *in = &input.symbol_inputs[symbol_input_count++]; + in->obj_idx = obj_idx; + in->raw_symbols = n->string; + } + } + + ProfBegin("Make Ranges"); + U64 total_input_size = 0; + for EachIndex(i, input.symbol_input_count) { total_input_size += input.symbol_inputs[i].raw_symbols.size; } + + U64 max_weight = CeilIntegerDiv(total_input_size, tp->worker_count); + U64 cursor = 0; + input.symbol_input_ranges = push_array(tp_arena->v[0], Rng1U64, tp->worker_count); + for EachIndex(i, tp->worker_count) { + if (cursor >= input.symbol_input_count) { break; } + U64 begin = cursor; + U64 weight = 0; + for (; cursor < input.symbol_input_count; cursor += 1) { + if (weight >= max_weight) { break; } + weight += input.symbol_inputs[cursor].raw_symbols.size; + } + input.symbol_input_ranges[i] = r1u64(begin, cursor); + } + ProfEnd(); + } + ProfEnd(); + scratch_end(scratch); ProfEnd(); - return cv; + return input; } internal LNK_LeafRef -lnk_leaf_ref(U32 enc_loc_idx, U32 enc_leaf_idx) +lnk_leaf_ref_from_ti(LNK_CodeViewInput *input, U32 obj_idx, CV_TypeIndexSource source, CV_TypeIndex ti) { - LNK_LeafRef ref; - ref.enc_loc_idx = enc_loc_idx; - ref.enc_leaf_idx = enc_leaf_idx; - return ref; -} + // ti range: external type server + U64 ts_idx = input->obj_to_ts[obj_idx]; + if (ts_idx != max_U64) { + U64 ts_debug_t_idx = input->ts_obj_range.min + ts_idx; + CV_DebugT *ts_debug_t = input->debug_t_arr + ts_debug_t_idx; + LNK_TypeServer *ts = &input->ts_arr.v[ts_idx]; -internal LNK_LeafRef -lnk_obj_leaf_ref(U32 obj_idx, U32 leaf_idx) -{ - return lnk_leaf_ref(obj_idx, leaf_idx); -} + // RRT indirection + if (ts->rrt) { + LNK_Obj *obj = input->obj_arr[obj_idx]; -internal LNK_LeafRef -lnk_ts_leaf_ref(CV_TypeIndexSource ti_source, U32 ts_idx, U32 leaf_idx) -{ - ts_idx |= LNK_LeafRefFlag_LocIdxExternal; + // RRT-PCH indirection + if (contains_1u64(obj->pch_ti_range, ti)) { + obj_idx = obj->pch_obj_idx; + obj = input->obj_arr[obj_idx]; + } - if (ti_source == CV_TypeIndexSource_IPI) { - leaf_idx |= LNK_LeafRefFlag_LeafIdxIPI; + Assert(contains_1u64(obj->ti_range, ti)); + + // translate type index to original leaf index + U64 leaf_idx_og = (ti - obj->ti_range.min); + leaf_idx_og -= dim_1u64(obj->pch_ti_range); + + // map original leaf index to RRT type index + CV_TypeIndex final_ti = obj->ti_map[leaf_idx_og]; + return (LNK_LeafRef){ ts_debug_t_idx, cv_leaf_idx_from_ti(ts_debug_t, source, final_ti) }; + } + + return (LNK_LeafRef){ ts_debug_t_idx, cv_leaf_idx_from_ti(ts_debug_t, source, ti) }; } - return lnk_leaf_ref(ts_idx, leaf_idx); + CV_DebugT *debug_t = input->debug_t_arr + obj_idx; + + // ti_range: PCH + if (contains_1u64(debug_t->pch_ti_range[source], ti)) { + return (LNK_LeafRef){ debug_t->pch_obj_idx, + cv_leaf_idx_from_ti(&input->debug_t_arr[debug_t->pch_obj_idx], source, ti) }; + } + + // ti range: internal type server + return (LNK_LeafRef){ obj_idx, cv_leaf_idx_from_ti(debug_t, source, ti) }; +} + +internal U64 +lnk_hash_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) +{ + return input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx]; } internal int lnk_leaf_ref_compare(LNK_LeafRef a, LNK_LeafRef b) { - int cmp = 0; - if (a.enc_loc_idx < b.enc_loc_idx) { - cmp = -1; - } else if (a.enc_loc_idx > b.enc_loc_idx) { - cmp = +1; - } else { - if (a.enc_leaf_idx < b.enc_leaf_idx) { - cmp = -1; - } else if (a.enc_leaf_idx > b.enc_leaf_idx) { - cmp = +1; - } + if (a.obj_idx == b.obj_idx) { + return a.leaf_idx < b.leaf_idx ? -1 : + a.leaf_idx > b.leaf_idx ? +1 : 0; } - return cmp; + return a.obj_idx < b.obj_idx ? -1 : + a.obj_idx > b.obj_idx ? +1 : 0; } internal int lnk_leaf_ref_is_before(void *raw_a, void *raw_b) { - LNK_LeafRef **a = raw_a; - LNK_LeafRef **b = raw_b; - int is_before; - if ((*a)->enc_loc_idx == (*b)->enc_loc_idx) { - is_before = (*a)->enc_leaf_idx < (*b)->enc_leaf_idx; - } else { - is_before = (*a)->enc_loc_idx < (*b)->enc_loc_idx; - } - return is_before; + return lnk_leaf_ref_compare(**(LNK_LeafRef **)raw_a, **(LNK_LeafRef **)raw_b) < 0; } -internal LNK_LeafLocType -lnk_loc_type_from_leaf_ref(LNK_LeafRef leaf_ref) +internal B32 +lnk_match_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef a, LNK_LeafRef b) { - if (leaf_ref.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal) { - return LNK_LeafLocType_External; - } - return LNK_LeafLocType_Internal; -} - -internal LNK_LeafLocType -lnk_loc_type_from_obj_idx(LNK_CodeViewInput *input, U64 obj_idx) -{ - if (input->external_obj_range.min <= obj_idx && obj_idx < input->external_obj_range.max) { - return LNK_LeafLocType_External; - } - return LNK_LeafLocType_Internal; + U64 a_hash = lnk_hash_from_leaf_ref(input, a); + U64 b_hash = lnk_hash_from_leaf_ref(input, b); + return a_hash == b_hash; } internal U64 -lnk_loc_idx_from_obj_idx(LNK_CodeViewInput *input, U64 obj_idx) +lnk_hash_cv_leaf(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref, CV_TypeIndexInfoList ti_info_list, B32 discard_cycles) { - if (input->external_obj_range.min <= obj_idx && obj_idx < input->external_obj_range.max) { - return input->external_obj_to_ts_idx_arr[obj_idx - input->external_obj_range.min]; - } - return obj_idx; -} + CV_DebugT *debug_t = &input->debug_t_arr[leaf_ref.obj_idx]; + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_ref.leaf_idx); + CV_TypeIndexSource curr_ti_source = cv_type_index_source_from_leaf_kind(leaf.kind); + CV_TypeIndex curr_ti = cv_ti_from_leaf_idx(debug_t, curr_ti_source, leaf_ref.leaf_idx); -internal CV_TypeIndex -lnk_ti_lo_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) -{ - CV_TypeIndex ti_lo; - - LNK_LeafLocType loc_type = lnk_loc_type_from_leaf_ref(leaf_ref); - switch (loc_type) { - case LNK_LeafLocType_Internal: { - ti_lo = CV_MinComplexTypeIndex; - } break; - case LNK_LeafLocType_External: { - U64 ts_idx = leaf_ref.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - CV_TypeIndexSource ti_source = (leaf_ref.enc_loc_idx & LNK_LeafRefFlag_LeafIdxIPI) ? CV_TypeIndexSource_IPI : CV_TypeIndexSource_TPI; - ti_lo = input->external_ti_ranges[ts_idx][ti_source].min; - } break; - default: ti_lo = 0; break; - } - - return ti_lo; -} - -internal CV_TypeIndex -lnk_ti_lo_from_loc(LNK_CodeViewInput *input, LNK_LeafLocType loc_type, U64 loc_idx, CV_TypeIndexSource ti_source) -{ - CV_TypeIndex ti_lo = 0; - if (loc_type == LNK_LeafLocType_Internal) { - ti_lo = CV_MinComplexTypeIndex; - } else if (loc_type == LNK_LeafLocType_External) { - ti_lo = input->external_ti_ranges[loc_idx][ti_source].min; - } - return ti_lo; -} - -internal String8 -lnk_data_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) -{ - String8 data; - - LNK_LeafLocType loc_type = lnk_loc_type_from_leaf_ref(leaf_ref); - switch (loc_type) { - case LNK_LeafLocType_Internal: { - U32 obj_idx = leaf_ref.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - U32 leaf_idx = leaf_ref.enc_leaf_idx; - CV_DebugT debug_t = input->merged_debug_t_p_arr[obj_idx]; - data = cv_debug_t_get_raw_leaf(debug_t, leaf_idx); - } break; - - case LNK_LeafLocType_External: { - U64 ts_idx = leaf_ref.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - U64 leaf_idx = leaf_ref.enc_leaf_idx & ~LNK_LeafRefFlag_LeafIdxIPI; - CV_TypeIndexSource ti_source = leaf_ref.enc_leaf_idx & LNK_LeafRefFlag_LeafIdxIPI ? CV_TypeIndexSource_IPI : CV_TypeIndexSource_TPI; - CV_DebugT debug_t = input->external_leaves[ts_idx][ti_source]; - data = cv_debug_t_get_raw_leaf(debug_t, leaf_idx); - } break; - - default: data = str8(0,0); break; - } - - return data; -} - -internal CV_TypeIndex -lnk_type_index_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) -{ - CV_TypeIndex type_index = 0; - LNK_LeafLocType loc_type = lnk_loc_type_from_leaf_ref(leaf_ref); - switch (loc_type) { - case LNK_LeafLocType_Internal: { - LNK_PchInfo pch_info = input->pch_arr[leaf_ref.enc_loc_idx]; - type_index = pch_info.ti_hi + leaf_ref.enc_leaf_idx; - } break; - case LNK_LeafLocType_External: { - CV_TypeIndex lo = lnk_ti_lo_from_leaf_ref(input, leaf_ref); - type_index = lo + leaf_ref.enc_leaf_idx & ~LNK_LeafRefFlag_LeafIdxIPI; - } break; - default: InvalidPath; - } - return type_index; -} - -internal CV_Leaf -lnk_cv_leaf_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) -{ - String8 raw_leaf = lnk_data_from_leaf_ref(input, leaf_ref); - CV_Leaf leaf; - cv_deserial_leaf(raw_leaf, 0, 1, &leaf); - return leaf; -} - -internal U128 -lnk_hash_from_leaf_ref(LNK_LeafHashes *hashes, LNK_LeafRef leaf_ref) -{ - LNK_LeafLocType loc_type; - CV_TypeIndexSource ti_source; - if (leaf_ref.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal) { - loc_type = LNK_LeafLocType_External; - ti_source = (leaf_ref.enc_leaf_idx & LNK_LeafRefFlag_LeafIdxIPI) ? CV_TypeIndexSource_IPI : CV_TypeIndexSource_TPI; - } else { - loc_type = LNK_LeafLocType_Internal; - ti_source = CV_TypeIndexSource_TPI; - } - - U32 loc_idx = leaf_ref.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - U32 leaf_idx = leaf_ref.enc_leaf_idx & ~LNK_LeafRefFlag_LeafIdxIPI; - U128 hash = hashes->v[loc_type][loc_idx][ti_source].v[leaf_idx]; - - return hash; -} - -internal LNK_LeafRef -lnk_leaf_ref_from_loc_idx_and_ti(LNK_CodeViewInput *input, - LNK_LeafLocType loc_type, - CV_TypeIndexSource ti_source, - U64 loc_idx, - CV_TypeIndex obj_ti) -{ - LNK_LeafRef leaf_ref; - - switch (loc_type) { - case LNK_LeafLocType_External: { - U64 ts_idx = loc_idx; - - CV_TypeIndex ti_lo = input->external_ti_ranges[ts_idx][ti_source].min; - Assert(obj_ti >= ti_lo); - - // encode leaf index for type server - leaf_ref = lnk_ts_leaf_ref(ti_source, ts_idx, obj_ti - ti_lo); - } break; - - case LNK_LeafLocType_Internal: { - U64 obj_idx = loc_idx; - - LNK_PchInfo pch = input->pch_arr[obj_idx]; - if (obj_ti < pch.ti_lo) { - CV_TypeIndex ti_lo = CV_MinComplexTypeIndex; - Assert(obj_ti >= ti_lo); - leaf_ref = lnk_obj_leaf_ref(obj_idx, obj_ti - ti_lo); - } - // PCH indirection - else if (obj_ti < pch.ti_hi) { - // we don't support nested precompiled types - Assert(input->pch_arr[pch.debug_p_obj_idx].debug_p_obj_idx == /* null_obj: */ 0); - Assert(input->pch_arr[pch.debug_p_obj_idx].ti_lo == input->pch_arr[pch.debug_p_obj_idx].ti_hi); - leaf_ref = lnk_obj_leaf_ref(pch.debug_p_obj_idx, obj_ti - pch.ti_lo); - } else { - leaf_ref = lnk_obj_leaf_ref(obj_idx, pch.ti_lo + (obj_ti - pch.ti_hi) - CV_MinComplexTypeIndex); - } - } break; - - default: leaf_ref = lnk_leaf_ref(0, 0); break; - } - - return leaf_ref; -} - -internal B32 -lnk_match_leaf_ref(LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef a, LNK_LeafRef b) -{ - B32 are_same = 0; - - U128 a_hash = lnk_hash_from_leaf_ref(hashes, a); - U128 b_hash = lnk_hash_from_leaf_ref(hashes, b); - - if (u128_match(a_hash, b_hash)) { - CV_Leaf a_leaf = lnk_cv_leaf_from_leaf_ref(input, a); - CV_Leaf b_leaf = lnk_cv_leaf_from_leaf_ref(input, b); - Assert(a_leaf.kind == b_leaf.kind); -#if 0 - { - Temp scratch = scratch_begin(0,0); - CV_TypeIndexInfoList ti_info_list = cv_get_leaf_type_index_offsets(scratch.arena, a_leaf.kind, a_leaf.data); - String8Array a_raw_data_arr = cv_get_data_around_type_indices(scratch.arena, ti_info_list, a_leaf.data); - String8Array b_raw_data_arr = cv_get_data_around_type_indices(scratch.arena, ti_info_list, b_leaf.data); - for (U64 i = 0; i < a_raw_data_arr.count; ++i) { - String8 a_chunk = a_raw_data_arr.v[i]; - String8 b_chunk = b_raw_data_arr.v[i]; - Assert(str8_match(a_chunk, b_chunk, 0)); - } - scratch_end(scratch); - } -#endif - are_same = 1; - } - - return are_same; -} - -internal B32 -lnk_match_leaf_ref_deep(Arena *arena, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef a, LNK_LeafRef b) -{ - B32 are_equal = 0; - - U128 a_hash = lnk_hash_from_leaf_ref(hashes, a); - U128 b_hash = lnk_hash_from_leaf_ref(hashes, b); - - if (u128_match(a_hash, b_hash)) { - String8 a_raw_leaf = lnk_data_from_leaf_ref(input, a); - String8 b_raw_leaf = lnk_data_from_leaf_ref(input, b); - - CV_LeafHeader *a_header = (CV_LeafHeader *) a_raw_leaf.str; - CV_LeafHeader *b_header = (CV_LeafHeader *) b_raw_leaf.str; - - if (a_header->kind == b_header->kind && a_header->size == b_header->size) { - CV_Leaf a_leaf = cv_leaf_from_string(a_raw_leaf); - CV_Leaf b_leaf = cv_leaf_from_string(b_raw_leaf); - - Temp temp = temp_begin(arena); - - CV_TypeIndexInfoList ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, a_leaf.kind, a_leaf.data); - String8Array a_raw_data_arr = cv_get_data_around_type_indices(temp.arena, ti_info_list, a_leaf.data); - String8Array b_raw_data_arr = cv_get_data_around_type_indices(temp.arena, ti_info_list, b_leaf.data); - - are_equal = 1; - - for (U64 i = 0; i < a_raw_data_arr.count; ++i) { - String8 a_chunk = a_raw_data_arr.v[i]; - String8 b_chunk = b_raw_data_arr.v[i]; - Assert(a_chunk.size == b_chunk.size); - are_equal = str8_match(a_chunk, b_chunk, 0); - if (!are_equal) { - goto skip_type_index_compare; - } - } - - CV_TypeIndex a_ti_lo = lnk_ti_lo_from_leaf_ref(input, a); - CV_TypeIndex b_ti_lo = lnk_ti_lo_from_leaf_ref(input, b); - AssertAlways(a_ti_lo == b_ti_lo); - - for (CV_TypeIndexInfo *ti_info = ti_info_list.first; ti_info != 0; ti_info = ti_info->next) { - CV_TypeIndex *a_ti_ptr = (CV_TypeIndex *) (a_leaf.data.str + ti_info->offset); - CV_TypeIndex *b_ti_ptr = (CV_TypeIndex *)(b_leaf.data.str + ti_info->offset); - - if (*a_ti_ptr >= a_ti_lo && *b_ti_ptr >= b_ti_lo) { - LNK_LeafLocType a_loc_type = (a.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal) >> 31; - LNK_LeafLocType b_loc_type = (b.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal) >> 31; - - U64 a_loc_idx = a.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - U64 b_loc_idx = b.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - - LNK_LeafRef a_sub_leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(input, a_loc_type, ti_info->source, a_loc_idx, *a_ti_ptr); - LNK_LeafRef b_sub_leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(input, b_loc_type, ti_info->source, b_loc_idx, *b_ti_ptr); - - are_equal = lnk_match_leaf_ref_deep(arena, input, hashes, a_sub_leaf_ref, b_sub_leaf_ref); - if (!are_equal) { - break; - } - } - // compare simple leaves - else { - are_equal = *a_ti_ptr == *b_ti_ptr; - if (!are_equal) { - break; - } - } - } - -skip_type_index_compare:; - temp_end(temp); - } - } - - return are_equal; -} - -internal U128 -lnk_hash_cv_leaf(Arena *arena, - LNK_CodeViewInput *input, - LNK_LeafHashes *hashes, - LNK_LeafLocType loc_type, - U32 loc_idx, - Rng1U64 *ti_ranges, - CV_TypeIndex curr_ti, - CV_Leaf leaf, - CV_TypeIndexInfoList ti_info_list) -{ // init hasher blake3_hasher hasher; blake3_hasher_init(&hasher); - // hash leaf size - blake3_hasher_update(&hasher, &leaf.data.size, sizeof leaf.data.size); - - // hash leaf kind - blake3_hasher_update(&hasher, &leaf.kind, sizeof leaf.kind); - // hash bytes around indices { - Temp temp = temp_begin(arena); - String8Array raw_data_arr = cv_get_data_around_type_indices(temp.arena, ti_info_list, leaf.data); - for (U64 i = 0; i < raw_data_arr.count; ++i) { - blake3_hasher_update(&hasher, raw_data_arr.v[i].str, raw_data_arr.v[i].size); + U64 last_ti_off = 0; + for EachNode(ti_info, CV_TypeIndexInfo, ti_info_list.first) { + U8 *bytes = leaf.data.str + last_ti_off; + U64 size = ti_info->offset - last_ti_off; + blake3_hasher_update(&hasher, bytes, size); + last_ti_off = ti_info->offset + sizeof(CV_TypeIndex); } - temp_end(temp); + + Assert(leaf.data.size >= last_ti_off); + U8 *bytes = leaf.data.str + last_ti_off; + U64 size = leaf.data.size - last_ti_off; + blake3_hasher_update(&hasher, bytes, size); } // mix-in sub leaf hashes - for (CV_TypeIndexInfo *ti_n = ti_info_list.first; ti_n != 0; ti_n = ti_n->next) { - CV_TypeIndex sub_ti = *(CV_TypeIndex *) (leaf.data.str + ti_n->offset); - - // is type index complex? - if (sub_ti >= ti_ranges[ti_n->source].min) { - // Mostly leaves are laid out as DAG and we can get to sub leaf hash through index lookup, - // however MASM doesn't follow DAG rule, for example: - // - // Engine\Source\Developer\Windows\LiveCoding\Private\External\LC_JumpToSelf.asm - // .debug$T (No. 4): - // LF_PROCEDURE (0x1000) [0008-0014] - // Return type: 3 - // Call Convention: Near C - // Function Attribs: NULL - // Argumnet Count: 0 - // Argument List Type: 1001 - // LF_ARGLIST (0x1001) [0018-001C] - // Types 0 - // LF_LABEL (0x1002) [0020-0024] - // $UNDEFINED: E - // - // Note: LF_ARGLIST(0x1001) > LF_PROCEDURE(0x1000) - // - // Luckily we don't have many leaves that break DAG rule and we can skip without - // much memory and perf penalty (In Ancient Game we skip 7 leaves) - if (sub_ti < curr_ti) { - LNK_LeafRef sub_leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(input, loc_type, ti_n->source, loc_idx, sub_ti); - - // query sub hash - U128 sub_hash = lnk_hash_from_leaf_ref(hashes, sub_leaf_ref); - - // make sure sub hash was computed (:zero_hash_array) - Assert(!u128_match(sub_hash, u128_zero())); - - // mix-in sub hash - blake3_hasher_update(&hasher, &sub_hash, sizeof sub_hash); - } else { - Temp scratch = scratch_begin(0,0); - String8 leaf_kind_str = cv_string_from_leaf_kind(leaf.kind); - String8 leaf_info = push_str8f(scratch.arena, "LF_%S(type_index: 0x%x) forward refs member type index 0x%x (leaf struct offset: 0x%llx)", leaf_kind_str, curr_ti, sub_ti, ti_n->offset); - if (loc_type == LNK_LeafLocType_Internal) { - lnk_error_obj(LNK_Error_InvalidTypeIndex, input->internal_obj_arr[loc_idx], "%S", leaf_info); - } else if (loc_type == LNK_LeafLocType_External) { - lnk_error(LNK_Error_InvalidTypeIndex, "%S: %S", input->type_server_path_arr[loc_idx], leaf_info); - } else { - InvalidPath; - } - scratch_end(scratch); - } - } + for EachNode(sub_ti_n, CV_TypeIndexInfo, ti_info_list.first) { + CV_TypeIndex *sub_ti_ptr = str8_deserial_get_raw_ptr(leaf.data, sub_ti_n->offset, sizeof(*sub_ti_ptr)); + CV_TypeIndex sub_ti = memory_read32(sub_ti_ptr); + // simple indices are stable across compile units - else { - blake3_hasher_update(&hasher, &sub_ti, sizeof sub_ti); + if (sub_ti < debug_t->ti_ranges[sub_ti_n->source].min) { + blake3_hasher_update(&hasher, &sub_ti, sizeof(sub_ti)); + continue; } + + if (sub_ti >= debug_t->ti_ranges[sub_ti_n->source].max) { + // discard type + U32 leaf_idx = curr_ti - debug_t->ti_ranges[curr_ti_source].min; + U8 *leaf_header = debug_t->data.str + debug_t->offsets[leaf_idx]; + memory_write16(leaf_header + OffsetOf(CV_LeafHeader, kind), CV_LeafKind_NOTYPE); + memory_write16(leaf_header + OffsetOf(CV_LeafHeader, size), sizeof(CV_LeafKind)); + + // reset hasher + blake3_hasher_init(&hasher); + + // log error + Temp scratch = scratch_begin(0,0); + String8 leaf_kind_str = cv_string_from_leaf_kind(leaf.kind); + String8 error_msg = push_str8f(scratch.arena, "LF_%S(type_index: 0x%x) out of bounds type index 0x%x (leaf struct offset: 0x%llx)", leaf_kind_str, curr_ti, sub_ti, sub_ti_n->offset); + lnk_error_obj(LNK_Error_InvalidTypeIndex, input->obj_arr[leaf_ref.obj_idx], "%S", error_msg); + scratch_end(scratch); + + break; + } + + // discard type with a cyclic-ref + B32 is_type_graph_cyclic = discard_cycles && sub_ti > 0 && sub_ti > curr_ti; + if (is_type_graph_cyclic) { + // discard type + U32 leaf_idx = curr_ti - debug_t->ti_ranges[curr_ti_source].min; + U8 *leaf_header = debug_t->data.str + debug_t->offsets[leaf_idx]; + memory_write16(leaf_header + OffsetOf(CV_LeafHeader, kind), CV_LeafKind_NOTYPE); + memory_write16(leaf_header + OffsetOf(CV_LeafHeader, size), sizeof(CV_LeafKind)); + + // reset hasher + blake3_hasher_init(&hasher); + + // log error + Temp scratch = scratch_begin(0,0); + String8 leaf_kind_str = cv_string_from_leaf_kind(leaf.kind); + String8 error_msg = push_str8f(scratch.arena, "LF_%S(type_index: 0x%x) forward refs member type index 0x%x (leaf struct offset: 0x%llx)", leaf_kind_str, curr_ti, sub_ti, sub_ti_n->offset); + lnk_error_obj(LNK_Error_InvalidTypeIndex, input->obj_arr[leaf_ref.obj_idx], "%S", error_msg); + scratch_end(scratch); + + break; + } + + // type index -> hash + LNK_LeafRef sub_ref = lnk_leaf_ref_from_ti(input, leaf_ref.obj_idx, sub_ti_n->source, sub_ti); + U64 sub_hash = input->debug_h_arr[sub_ref.obj_idx].v[sub_ref.leaf_idx]; + + // mix-in sub-type hash + blake3_hasher_update(&hasher, &sub_hash, sizeof(sub_hash)); } - U128 hash; - blake3_hasher_finalize(&hasher, (U8 *) &hash, sizeof hash); + // hash leaf header + CV_LeafHeader *leaf_header = cv_debug_t_get_leaf_header(debug_t, leaf_ref.leaf_idx); + blake3_hasher_update(&hasher, leaf_header, sizeof(*leaf_header)); + U64 hash; + blake3_hasher_finalize(&hasher, (U8 *) &hash, sizeof(hash)); + + Assert(hash != 0); + Assert(input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx] == 0 || + input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx] == 1); + input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx] = hash; return hash; } internal void lnk_hash_cv_leaf_deep(Arena *arena, LNK_CodeViewInput *input, - Rng1U64 *ti_ranges, - CV_DebugT *leaves, - LNK_LeafHashes *hashes, - LNK_LeafLocType loc_type, - U32 loc_idx, - CV_TypeIndexInfoList ti_info_list, - String8 data) + LNK_LeafRef root_leaf_ref, + CV_TypeIndexInfoList root_ti_info_list) { Temp temp = temp_begin(arena); - struct stack_s { - struct stack_s *next; + typedef struct HashStack { + struct HashStack *next; + LNK_LeafRef leaf_ref; CV_TypeIndexInfoList ti_info_list; CV_TypeIndexInfo *ti_info; CV_Leaf leaf; - String8 data; CV_TypeIndex ti; CV_TypeIndexSource ti_source; - }; + } HashStack; // set up root frame - struct stack_s *root_frame = push_array_no_zero(temp.arena, struct stack_s, 1); - root_frame->next = 0; - root_frame->ti_info_list = ti_info_list; - root_frame->ti_info = ti_info_list.first; - root_frame->data = data; - root_frame->ti = 0; - root_frame->ti_source = CV_TypeIndexSource_NULL; - MemoryZeroStruct(&root_frame->leaf); + CV_DebugT *root_debug_t = &input->debug_t_arr[root_leaf_ref.obj_idx]; + HashStack *root_frame = push_array(temp.arena, HashStack, 1); + root_frame->leaf_ref = root_leaf_ref; + root_frame->ti_info_list = root_ti_info_list; + root_frame->ti_info = root_ti_info_list.first; + root_frame->leaf = cv_debug_t_get_leaf(root_debug_t, root_leaf_ref.leaf_idx); + root_frame->ti_source = cv_type_index_source_from_leaf_kind(root_frame->leaf.kind); + root_frame->ti = cv_ti_from_leaf_idx(root_debug_t, root_frame->ti_source, root_leaf_ref.leaf_idx); - U128Array *curr_hashes = hashes->v[loc_type][loc_idx]; - - struct stack_s *stack = root_frame; + HashStack *stack = root_frame; while (stack) { while (stack->ti_info) { - CV_TypeIndexInfo *curr_ti_info = stack->ti_info; + CV_TypeIndexInfo *ti_info = stack->ti_info; // advance iterator stack->ti_info = stack->ti_info->next; // get type index info - CV_TypeIndex *ti_ptr = (CV_TypeIndex *) (stack->data.str + curr_ti_info->offset); + CV_TypeIndex *ti_ptr = str8_deserial_get_raw_ptr(stack->leaf.data, ti_info->offset, sizeof(*ti_ptr)); + CV_TypeIndex ti = memory_read32(ti_ptr); - // is index complex? - if (*ti_ptr >= ti_ranges[curr_ti_info->source].min) { - // TODO: handle malformed index - AssertAlways(*ti_ptr < ti_ranges[curr_ti_info->source].max); - U64 ti_idx = (*ti_ptr - ti_ranges[curr_ti_info->source].min); + // skip out of bounds indices + if ( ! contains_1u64(input->debug_t_arr[root_leaf_ref.obj_idx].ti_ranges[ti_info->source], ti)) { continue; } - // was leaf hashed? - if (MemoryIsZeroStruct(&curr_hashes[curr_ti_info->source].v[ti_idx])) { // :zero_hash_array - CV_Leaf leaf = cv_debug_t_get_leaf(leaves[curr_ti_info->source], ti_idx); + // skip hashed types + LNK_LeafRef leaf_ref = lnk_leaf_ref_from_ti(input, root_leaf_ref.obj_idx, ti_info->source, ti); + if (input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx] != 0) { continue; } + input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx] = 1; - // find index offsets - CV_TypeIndexInfoList sub_ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); - - // do we have sub leaves? - if (sub_ti_info_list.count) { - // fill out new frame - struct stack_s *frame = push_array_no_zero(temp.arena, struct stack_s, 1); - frame->next = 0; - frame->ti_info_list = sub_ti_info_list; - frame->ti_info = sub_ti_info_list.first; - frame->leaf = leaf; - frame->data = leaf.data; - frame->ti = *ti_ptr; - frame->ti_source = curr_ti_info->source; - - // recurse to sub leaf - SLLStackPush(stack, frame); - break; - } else { - curr_hashes[curr_ti_info->source].v[ti_idx] = lnk_hash_cv_leaf(temp.arena, - input, - hashes, - loc_type, - loc_idx, - ti_ranges, - CV_TypeIndex_Max, - leaf, - sub_ti_info_list); - } - } - } + // recurse down to sub types + HashStack *frame = push_array(temp.arena, HashStack, 1); + frame->leaf_ref = leaf_ref; + frame->leaf = cv_debug_t_get_leaf(&input->debug_t_arr[leaf_ref.obj_idx], leaf_ref.leaf_idx); + frame->ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, frame->leaf.kind, frame->leaf.data); + frame->ti_info = frame->ti_info_list.first; + frame->ti = ti; + frame->ti_source = ti_info->source; + SLLStackPush(stack, frame); + break; } // no more type indices, pop frame - if (!stack->ti_info) { - - if (stack != root_frame) { - // sub leaves are hashed we can now hash parent leaf - Temp temp2 = temp_begin(temp.arena); - U64 leaf_idx = stack->ti - ti_ranges[stack->ti_source].min; - curr_hashes[stack->ti_source].v[leaf_idx] = lnk_hash_cv_leaf(temp2.arena, - input, - hashes, - loc_type, - loc_idx, - ti_ranges, - CV_TypeIndex_Max, - stack->leaf, - stack->ti_info_list); - temp_end(temp2); - } - + if ( ! stack->ti_info) { + lnk_hash_cv_leaf(input, stack->leaf_ref, stack->ti_info_list, 0); SLLStackPop(stack); } } @@ -1338,305 +1370,174 @@ lnk_hash_cv_leaf_deep(Arena *arena, temp_end(temp); } -internal LNK_LeafBucket * -lnk_leaf_hash_table_insert_or_update(LNK_LeafHashTable *leaf_ht, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, U128 new_hash, LNK_LeafBucket *new_bucket) +internal LNK_LeafRef * +lnk_leaf_hash_table_search(LNK_LeafHashTable *ht, LNK_CodeViewInput *input, LNK_LeafRef leaf_ref) { - LNK_LeafBucket *result = 0; - B32 is_inserted_or_updated = 0; - - U64 best_idx = u128_mod64(new_hash, leaf_ht->cap); - U64 idx = best_idx; + LNK_LeafRef *match = 0; + CV_DebugT *debug_t = &input->debug_t_arr[leaf_ref.obj_idx]; + CV_DebugH *debug_h = &input->debug_h_arr[leaf_ref.obj_idx]; + U64 hash = debug_h->v[leaf_ref.leaf_idx]; + U64 best_bucket_idx = hash % ht->cap; + U64 bucket_idx = best_bucket_idx; do { - retry:; - LNK_LeafBucket *curr_bucket = leaf_ht->bucket_arr[idx]; + LNK_LeafRef *bucket = ht->bucket_arr[bucket_idx]; + if (bucket == 0) { break; } - if (curr_bucket == 0) { - LNK_LeafBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&leaf_ht->bucket_arr[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - is_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } else if (lnk_match_leaf_ref(input, hashes, curr_bucket->leaf_ref, new_bucket->leaf_ref)) { - int leaf_cmp = lnk_leaf_ref_compare(curr_bucket->leaf_ref, new_bucket->leaf_ref); - - if (leaf_cmp <= 0) { - // are we inserting bucket that was already inserterd? - Assert(leaf_cmp < 0); - - result = new_bucket; - - is_inserted_or_updated = 1; - - // don't need to update, more recent leaf is in the bucket - break; - } - - LNK_LeafBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&leaf_ht->bucket_arr[idx], new_bucket, curr_bucket); - if (compare_bucket == curr_bucket) { - result = compare_bucket; - - is_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } - - // advance - idx = (idx + 1) % leaf_ht->cap; - } while (idx != best_idx); - - Assert(is_inserted_or_updated); - - return result; -} - -internal LNK_LeafBucket * -lnk_leaf_hash_table_search(LNK_LeafHashTable *ht, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef leaf_ref) -{ - LNK_LeafBucket *match = 0; - - U128 hash = lnk_hash_from_leaf_ref(hashes, leaf_ref); - U64 best_bucket_idx = u128_mod64(hash, ht->cap); - U64 bucket_idx = best_bucket_idx; - - do { - LNK_LeafBucket *bucket = ht->bucket_arr[bucket_idx]; - - if (bucket == 0) { - break; - } - - if (lnk_match_leaf_ref(input, hashes, bucket->leaf_ref, leaf_ref)) { + if (lnk_match_leaf_ref(input, *bucket, leaf_ref)) { match = bucket; break; } - bucket_idx = (bucket_idx + 1) % ht->cap; + bucket_idx = (bucket_idx + 1) == ht->cap ? 0 : (bucket_idx + 1); } while (bucket_idx != best_bucket_idx); return match; } -internal -THREAD_POOL_TASK_FUNC(lnk_count_per_source_leaf_task) -{ - ProfBeginFunction(); - - LNK_CountPerSourceLeafTask *task = raw_task; - LNK_LeafRangeList leaf_range_list = task->leaf_ranges_per_task[task_id]; - - for (LNK_LeafRange *leaf_range = leaf_range_list.first; leaf_range != 0; leaf_range = leaf_range->next) { - CV_DebugT debug_t = *leaf_range->debug_t; - for (U64 leaf_idx = leaf_range->range.min; leaf_idx < leaf_range->range.max; ++leaf_idx) { - CV_LeafHeader *leaf_header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); - CV_TypeIndexSource leaf_source = cv_type_index_source_from_leaf_kind(leaf_header->kind); - task->count_arr_arr[leaf_source][task_id] += 1; - } - } - - ProfEnd(); -} - -internal void -lnk_cv_debug_t_count_leaves_per_source(TP_Context *tp, U64 count, CV_DebugT *debug_t_arr, U64 per_source_count_arr[CV_TypeIndexSource_COUNT]) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - ProfBegin("Compute Per Task Ranges"); - U64 per_task_leaf_count = 10000; - LNK_LeafRangeList *leaf_ranges_per_task = push_array(scratch.arena, LNK_LeafRangeList, tp->worker_count); - for (U64 i = 0, task_weight = 0, task_id = 0; i < count; ++i) { - CV_DebugT *debug_t = &debug_t_arr[i]; - for (U64 k = 0; k < debug_t->count; k += per_task_leaf_count) { - U64 cap = per_task_leaf_count - task_weight; - - LNK_LeafRange *leaf_range = push_array(scratch.arena, LNK_LeafRange, 1); - leaf_range->range = rng_1u64(k, Min(k + cap, debug_t->count)); - leaf_range->debug_t = debug_t; - - LNK_LeafRangeList *list = &leaf_ranges_per_task[task_id]; - SLLQueuePush(list->first, list->last, leaf_range); - ++list->count; - - task_weight += dim_1u64(leaf_range->range); - if (task_weight >= per_task_leaf_count) { - task_id = (task_id + 1) % tp->worker_count; - task_weight = 0; - } - } - } - ProfEnd(); - - - LNK_CountPerSourceLeafTask task; - task.leaf_ranges_per_task = leaf_ranges_per_task; - task.count_arr_arr = push_matrix_u64(scratch.arena, CV_TypeIndexSource_COUNT, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_count_per_source_leaf_task, &task); - - for (U64 i = 0; i < CV_TypeIndexSource_COUNT; ++i) { - per_source_count_arr[i] += sum_array_u64(tp->worker_count, task.count_arr_arr[i]); - } - - scratch_end(scratch); - ProfEnd(); -} - internal THREAD_POOL_TASK_FUNC(lnk_hash_debug_t_task) { ProfBeginFunction(); - - U64 obj_idx = task_id; - LNK_LeafHasherTask *task = raw_task; - - Arena *fixed_arena = task->fixed_arenas[worker_id]; - CV_DebugT debug_t = task->debug_t_arr[obj_idx]; - U128Array out_hashes = task->hashes->v[LNK_LeafLocType_Internal][obj_idx][CV_TypeIndexSource_TPI]; - - Rng1U64 ti_ranges[CV_TypeIndexSource_COUNT]; - for (U64 ti_source = 0; ti_source < ArrayCount(ti_ranges); ++ti_source) { - ti_ranges[ti_source] = rng_1u64(task->input->pch_arr[obj_idx].ti_lo, task->input->pch_arr[obj_idx].ti_hi + debug_t.count); - } - - for (U64 leaf_idx = 0; leaf_idx < debug_t.count; ++leaf_idx) { - Temp temp = temp_begin(fixed_arena); - - // :debug_zero_hash_assert make sure we don't write same hash more than once - //Assert(MemoryIsZeroStruct(&out_hash_arr.v[leaf_idx])); - - CV_TypeIndex curr_ti = lnk_type_index_from_leaf_ref(task->input, lnk_leaf_ref(obj_idx, leaf_idx)); - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); - CV_TypeIndexInfoList ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); - - out_hashes.v[leaf_idx] = lnk_hash_cv_leaf(temp.arena, - task->input, - task->hashes, - LNK_LeafLocType_Internal, - obj_idx, - ti_ranges, - curr_ti, - leaf, - ti_info_list); - + LNK_MergeTypes *task = raw_task; + U32 obj_idx = task->indices.v[task_id]; + CV_DebugT *debug_t = &task->input->debug_t_arr[obj_idx]; + for EachIndex(leaf_idx, debug_t->count) { + Temp temp = temp_begin(task->fixed_arenas[worker_id]); + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + CV_TypeIndexInfoList ti_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); + lnk_hash_cv_leaf(task->input, (LNK_LeafRef){ obj_idx, leaf_idx }, ti_list, 1); temp_end(temp); } - ProfEnd(); } internal -THREAD_POOL_TASK_FUNC(lnk_hash_type_server_leaves_task) +THREAD_POOL_TASK_FUNC(lnk_hash_debug_t_deep_task) { ProfBeginFunction(); - - LNK_LeafHasherTask *task = raw_task; - U64 obj_idx = task_id; - - LNK_CodeViewInput *input = task->input; - LNK_LeafHashes *hashes = task->hashes; - - CV_SymbolListArray parsed_symbols = input->external_parsed_symbols[obj_idx]; - CV_DebugS debug_s = input->external_debug_s_arr[obj_idx]; - U64 ts_idx = input->external_obj_to_ts_idx_arr[obj_idx]; - CV_DebugT *leaves = input->external_leaves[ts_idx]; - Rng1U64 *ti_ranges = input->external_ti_ranges[ts_idx]; - - // hash leaves referenced in symbols - for (U64 i = 0; i < parsed_symbols.count; ++i) { - CV_SymbolList symbol_list = parsed_symbols.v[i]; - for (CV_SymbolNode *symnode = symbol_list.first; symnode != 0; symnode = symnode->next) { - Temp temp = temp_begin(task->fixed_arenas[worker_id]); - CV_TypeIndexInfoList ti_info_list = cv_get_symbol_type_index_offsets(temp.arena, symnode->data.kind, symnode->data.data); - lnk_hash_cv_leaf_deep(temp.arena, task->input, ti_ranges, leaves, hashes, LNK_LeafLocType_External, ts_idx, ti_info_list, symnode->data.data); - temp_end(temp); - } - } - - // hash leaves referenced in inlinees - String8List inline_data_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_InlineeLines); - for (String8Node *inline_data_node = inline_data_list.first; inline_data_node != 0; inline_data_node = inline_data_node->next) { - Temp temp = temp_begin(task->fixed_arenas[worker_id]); - CV_TypeIndexInfoList ti_info_list = cv_get_inlinee_type_index_offsets(temp.arena, inline_data_node->string); - lnk_hash_cv_leaf_deep(temp.arena, task->input, ti_ranges, leaves, hashes, LNK_LeafLocType_External, ts_idx, ti_info_list, inline_data_node->string); + LNK_MergeTypes *task = raw_task; + U64 obj_idx = task->indices.v[task_id]; + CV_DebugT *debug_t = &task->input->debug_t_arr[obj_idx]; + for EachIndex(leaf_idx, debug_t->count) { + if (task->input->debug_h_arr[obj_idx].v[leaf_idx] != 0) { continue; } + Temp temp = temp_begin(task->fixed_arenas[worker_id]); + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + CV_TypeIndexInfoList ti_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); + lnk_hash_cv_leaf_deep(temp.arena, task->input, (LNK_LeafRef){ obj_idx, leaf_idx }, ti_list); temp_end(temp); } - ProfEnd(); } internal -THREAD_POOL_TASK_FUNC(lnk_leaf_dedup_internal_task) +THREAD_POOL_TASK_FUNC(lnk_populate_leaf_ht) { - LNK_LeafDedupInternal *task = raw_task; - U64 obj_idx = task_id; - CV_DebugT debug_t = task->debug_t_arr[obj_idx]; + LNK_MergeTypes *task = raw_task; - ProfBeginDynamic("Leaf Dedup Task 0x%X [Leaf Count %u]", obj_idx, task->debug_t_arr[obj_idx].count); - - LNK_LeafBucket *bucket = 0; - for (U64 leaf_idx = 0; leaf_idx < debug_t.count; ++leaf_idx) { - CV_LeafHeader *leaf_header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); - CV_TypeIndexSource ti_source = cv_type_index_source_from_leaf_kind(leaf_header->kind); - LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[ti_source]; + U64 obj_idx = task->pop_obj_idx; + CV_DebugT *debug_t = &task->input->debug_t_arr[task->pop_obj_idx]; + CV_DebugH *debug_h = &task->input->debug_h_arr[task->pop_obj_idx]; - LNK_LeafRef leaf_ref = lnk_obj_leaf_ref(obj_idx, leaf_idx); - U128 leaf_hash = lnk_hash_from_leaf_ref(task->hashes, leaf_ref); + for EachInRange(leaf_idx, task->pop_range[task_id]) { + LNK_LeafRef *bucket = 0; - if (bucket == 0) { - bucket = push_array_no_zero(arena, LNK_LeafBucket, 1); - } - bucket->leaf_ref = leaf_ref; + // alloc new bucket and assign type ref + if (bucket == 0) { bucket = push_array_no_zero(arena, LNK_LeafRef, 1); } - LNK_LeafBucket *inserted_or_updated = lnk_leaf_hash_table_insert_or_update(leaf_ht, task->input, task->hashes, leaf_hash, bucket); + // fill bucket + *bucket = (LNK_LeafRef){ .obj_idx = obj_idx, .leaf_idx = leaf_idx }; - if (inserted_or_updated != bucket) { - bucket = 0; - } + B32 is_inserted_or_updated = 1; + + CV_LeafHeader *header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); // leaf index -> leaf header + CV_LeafKind kind = memory_read16(MemberFromPtr(CV_LeafHeader, header, kind)); // leaf header -> leaf kind + CV_TypeIndexSource leaf_source = cv_type_index_source_from_leaf_kind(kind); // leaf kind -> type stream + LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[leaf_source]; // type stream -> hash table + U64 best_idx = debug_h->v[leaf_idx] % leaf_ht->cap; // leaf ref -> hash -> bucket index + U64 idx = best_idx; + do { + // load leaf ref + LNK_LeafRef *curr = ins_atomic_ptr_eval(&leaf_ht->bucket_arr[idx]); + + while (curr == 0) { + // exit if leaf ref is not recent + if (curr != 0 && lnk_leaf_ref_compare(*bucket, *curr) >= 0) { + goto exit; + } + + // try to update the bucket + LNK_LeafRef *cmp = ins_atomic_ptr_eval_cond_assign(&leaf_ht->bucket_arr[idx], bucket, curr); + if (cmp == curr) { + bucket = 0; + goto exit; + } + + // another thread updated the bucket -- retry + curr = cmp; + } + + // advance to next bucket + idx = ((idx + 1) == leaf_ht->cap ? 0 : (idx + 1)); + } while (idx != best_idx); + is_inserted_or_updated = 0; + exit:; + Assert(is_inserted_or_updated); } - - ProfEnd(); } internal -THREAD_POOL_TASK_FUNC(lnk_leaf_dedup_external_task) +THREAD_POOL_TASK_FUNC(lnk_leaf_dedup_task) { - ProfBeginFunction(); + LNK_MergeTypes *task = raw_task; + U64 obj_idx = task->indices.v[task_id]; + CV_DebugT *debug_t = &task->input->debug_t_arr[obj_idx]; + CV_DebugH *debug_h = &task->input->debug_h_arr[obj_idx]; + ProfBeginDynamic("dedup in obj 0x%llx (%.*s) leaf count %llu", obj_idx, str8_varg(task->input->obj_arr[obj_idx]->path), debug_t->count); - LNK_LeafDedupExternal *task = raw_task; - U64 ts_idx = task_id; + LNK_LeafRef *bucket = 0; + for EachIndex(leaf_idx, debug_t->count) { + // alloc new bucket and assign type ref + if (bucket == 0) { bucket = push_array_no_zero(arena, LNK_LeafRef, 1); } - LNK_CodeViewInput *input = task->input; - LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[task->dedup_ti_source]; - U128Array hashes = task->hashes->external_hashes[ts_idx][task->dedup_ti_source]; - U64 leaf_count = dim_1u64(input->external_ti_ranges[ts_idx][task->dedup_ti_source]); + // fill bucket + *bucket = (LNK_LeafRef){ .obj_idx = obj_idx, .leaf_idx = leaf_idx }; - LNK_LeafBucket *bucket = 0; + B32 is_inserted_or_updated = 1; - for (U64 leaf_idx = 0; leaf_idx < leaf_count; ++leaf_idx) { - if (!MemoryIsZeroStruct(&hashes.v[leaf_idx])) { // :zero_hash_check - LNK_LeafRef leaf_ref = lnk_ts_leaf_ref(task->dedup_ti_source, ts_idx, leaf_idx); - U128 leaf_hash = lnk_hash_from_leaf_ref(task->hashes, leaf_ref); + CV_LeafHeader *header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); // leaf index -> leaf header + CV_LeafKind kind = memory_read16(MemberFromPtr(CV_LeafHeader, header, kind)); // leaf header -> leaf kind + CV_TypeIndexSource leaf_source = cv_type_index_source_from_leaf_kind(kind); // leaf kind -> type stream + LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[leaf_source]; // type stream -> hash table + U64 best_idx = debug_h->v[leaf_idx] % leaf_ht->cap; // leaf ref -> hash -> bucket index + U64 idx = best_idx; + do { + // load leaf ref + LNK_LeafRef *curr = ins_atomic_ptr_eval(&leaf_ht->bucket_arr[idx]); - if (bucket == 0) { - bucket = push_array_no_zero(arena, LNK_LeafBucket, 1); + while (curr == 0 || lnk_match_leaf_ref(task->input, *curr, *bucket)) { + // exit if leaf ref is not recent + if (curr != 0 && lnk_leaf_ref_compare(*bucket, *curr) >= 0) { + goto exit; + } + + // try to update the bucket + LNK_LeafRef *cmp = ins_atomic_ptr_eval_cond_assign(&leaf_ht->bucket_arr[idx], bucket, curr); + if (cmp == curr) { + bucket = 0; + goto exit; + } + + // another thread updated the bucket -- retry + curr = cmp; } - bucket->leaf_ref = leaf_ref; - LNK_LeafBucket *inserted_or_updated = lnk_leaf_hash_table_insert_or_update(leaf_ht, task->input, task->hashes, leaf_hash, bucket); - - if (inserted_or_updated != bucket) { - bucket = 0; - } - } + // advance to next bucket + idx = ((idx + 1) == leaf_ht->cap ? 0 : (idx + 1)); + } while (idx != best_idx); + is_inserted_or_updated = 0; + exit:; + Assert(is_inserted_or_updated); } ProfEnd(); @@ -1646,12 +1547,16 @@ internal THREAD_POOL_TASK_FUNC(lnk_count_present_buckets_task) { ProfBeginFunction(); - LNK_GetPresentBucketsTask *task = raw_task; - for (U64 bucket_idx = task->range_arr[task_id].min; bucket_idx < task->range_arr[task_id].max; ++bucket_idx) { - if (task->ht->bucket_arr[bucket_idx] != 0) { - task->count_arr[task_id] += 1; + + LNK_MergeTypes *task = raw_task; + LNK_LeafHashTable *ht = &task->leaf_ht_arr[task->ti_source]; + + for EachInRange(bucket_idx, task->ranges[task_id]) { + if (ht->bucket_arr[bucket_idx] != 0) { + task->counts[task->ti_source][task_id] += 1; } } + ProfEnd(); } @@ -1660,107 +1565,78 @@ THREAD_POOL_TASK_FUNC(lnk_get_present_buckets_task) { ProfBeginFunction(); - LNK_GetPresentBucketsTask *task = raw_task; + LNK_MergeTypes *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - U64 cursor = task->offset_arr[task_id]; - LNK_LeafHashTable *ht = task->ht; + U64 cursor = task->offsets[task->ti_source][task_id]; + LNK_LeafHashTable *ht = &task->leaf_ht_arr[task->ti_source]; + LNK_LeafRefArray unique_leaf_refs = task->unique_leaf_refs_arr[task->ti_source]; - for (U64 bucket_idx = range.min; bucket_idx < range.max; ++bucket_idx) { + for EachInRange(bucket_idx, task->ranges[task_id]) { if (ht->bucket_arr[bucket_idx]) { - task->result.v[cursor++] = ht->bucket_arr[bucket_idx]; + unique_leaf_refs.v[cursor++] = ht->bucket_arr[bucket_idx]; } } ProfEnd(); } -internal LNK_LeafBucketArray -lnk_present_bucket_array_from_leaf_hash_table(TP_Context *tp, Arena *arena, LNK_LeafHashTable *ht) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_GetPresentBucketsTask task = {0}; - task.ht = ht; - task.count_arr = push_array(scratch.arena, U64, tp->worker_count); - task.range_arr = tp_divide_work(scratch.arena, ht->cap, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_count_present_buckets_task, &task); - - LNK_LeafBucketArray result; - result.count = sum_array_u64(tp->worker_count, task.count_arr); - result.v = push_array_no_zero(arena, LNK_LeafBucket *, result.count); - - task.result = result; - task.offset_arr = offsets_from_counts_array_u64(scratch.arena, task.count_arr, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_get_present_buckets_task, &task); - - scratch_end(scratch); - ProfEnd(); - return result; -} - internal THREAD_POOL_TASK_FUNC(lnk_leaf_ref_histo_task) { ProfBeginFunction(); - LNK_LeafRadixSortTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - U32 *counts_ptr = task->counts_arr[task_id]; + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + U32 *counts_ptr = task->counts_arr[task_id]; - U32 loc_idx_bit_count_0 = task->loc_idx_bit_count_0; - U32 loc_idx_bit_count_1 = task->loc_idx_bit_count_1; - U32 loc_idx_bit_count_2 = task->loc_idx_bit_count_2; + U32 obj_idx_bit_count_0 = task->obj_idx_bit_count_0; + U32 obj_idx_bit_count_1 = task->obj_idx_bit_count_1; + U32 obj_idx_bit_count_2 = task->obj_idx_bit_count_2; MemoryZeroTyped(task->counts_arr[task_id], task->counts_max); switch (task->pass_idx) { case 0: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit0 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 10, 0); - ++counts_ptr[leaf_digit0]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit0 = BitExtract(bucket->leaf_idx, 10, 0); + counts_ptr[leaf_digit0] += 1; } } break; case 1: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit1 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 11, 10); - ++counts_ptr[leaf_digit1]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit1 = BitExtract(bucket->leaf_idx, 11, 10); + counts_ptr[leaf_digit1] += 1; } } break; case 2: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit2 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 11, 21 - 1); // don't take into account IPI flag - ++counts_ptr[leaf_digit2]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit2 = BitExtract(bucket->leaf_idx, 11, 21); + counts_ptr[leaf_digit2] += 1; } } break; case 3: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit0 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_0, 0); - ++counts_ptr[digit0]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit0 = BitExtract(bucket->obj_idx, obj_idx_bit_count_0, 0); + counts_ptr[digit0] += 1; } } break; case 4: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit1 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_1, loc_idx_bit_count_0); - ++counts_ptr[digit1]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit1 = BitExtract(bucket->obj_idx, obj_idx_bit_count_1, obj_idx_bit_count_0); + counts_ptr[digit1] += 1; } } break; case 5: { - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit2 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_2, loc_idx_bit_count_0 + loc_idx_bit_count_1); - - U64 loc_bit = !!(bucket->leaf_ref.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal); - digit2 |= loc_bit << loc_idx_bit_count_2; - - ++counts_ptr[digit2]; + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit2 = BitExtract(bucket->obj_idx, obj_idx_bit_count_2, obj_idx_bit_count_0 + obj_idx_bit_count_1); + counts_ptr[digit2] += 1; } } break; default: InvalidPath; @@ -1774,12 +1650,12 @@ THREAD_POOL_TASK_FUNC(lnk_loc_idx_radix_sort_task) { ProfBeginFunction(); - LNK_LeafRadixSortTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - U32 *counts_ptr = task->counts_arr[task_id]; - U32 loc_idx_bit_count_0 = task->loc_idx_bit_count_0; - U32 loc_idx_bit_count_1 = task->loc_idx_bit_count_1; - U32 loc_idx_bit_count_2 = task->loc_idx_bit_count_2; + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + U32 *counts_ptr = task->counts_arr[task_id]; + U32 obj_idx_bit_count_0 = task->obj_idx_bit_count_0; + U32 obj_idx_bit_count_1 = task->obj_idx_bit_count_1; + U32 obj_idx_bit_count_2 = task->obj_idx_bit_count_2; switch (task->pass_idx) { // @@ -1787,27 +1663,27 @@ THREAD_POOL_TASK_FUNC(lnk_loc_idx_radix_sort_task) // case 0: { ProfBegin("Leaf Sort Low"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit0 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 10, 0); + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit0 = BitExtract(bucket->leaf_idx, 10, 0); task->dst[counts_ptr[leaf_digit0]++] = bucket; } ProfEnd(); } break; case 1: { ProfBegin("Leaf Sort Mid"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit1 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 11, 10); + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit1 = BitExtract(bucket->leaf_idx, 11, 10); task->dst[counts_ptr[leaf_digit1]++] = bucket; } ProfEnd(); } break; case 2: { ProfBegin("Leaf Sort High"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 leaf_digit2 = BitExtract(bucket->leaf_ref.enc_leaf_idx, 11, 21 - 1); // don't take into account IPI flag + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 leaf_digit2 = BitExtract(bucket->leaf_idx, 11, 21); task->dst[counts_ptr[leaf_digit2]++] = bucket; } ProfEnd(); @@ -1817,32 +1693,28 @@ THREAD_POOL_TASK_FUNC(lnk_loc_idx_radix_sort_task) // Sort items on obj and type server index // case 3: { - ProfBegin("Loc Sort Low"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit0 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_0, 0); + ProfBegin("Obj Sort Low"); + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit0 = BitExtract(bucket->obj_idx, obj_idx_bit_count_0, 0); task->dst[counts_ptr[digit0]++] = bucket; } ProfEnd(); } break; case 4: { - ProfBegin("Loc Sort Mid"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit1 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_1, loc_idx_bit_count_0); + ProfBegin("Obj Sort Mid"); + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit1 = BitExtract(bucket->obj_idx, obj_idx_bit_count_1, obj_idx_bit_count_0); task->dst[counts_ptr[digit1]++] = bucket; } ProfEnd(); } break; case 5: { - ProfBegin("Loc Sort High"); - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->src[i]; - U64 digit2 = BitExtract(bucket->leaf_ref.enc_loc_idx, loc_idx_bit_count_2, loc_idx_bit_count_0 + loc_idx_bit_count_1); - - U64 loc_bit = !!(bucket->leaf_ref.enc_loc_idx & LNK_LeafRefFlag_LocIdxExternal); - digit2 |= loc_bit << loc_idx_bit_count_2; - + ProfBegin("Obj Sort High"); + for EachInRange(i, range) { + LNK_LeafRef *bucket = task->src[i]; + U64 digit2 = BitExtract(bucket->obj_idx, obj_idx_bit_count_2, obj_idx_bit_count_0 + obj_idx_bit_count_1); Assert(counts_ptr[digit2] != max_U32); task->dst[counts_ptr[digit2]++] = bucket; } @@ -1856,96 +1728,12 @@ THREAD_POOL_TASK_FUNC(lnk_loc_idx_radix_sort_task) } internal void -lnk_leaf_bucket_array_sort(TP_Context *tp, LNK_LeafBucketArray arr, U64 obj_count, U64 type_server_count) +lnk_leaf_ref_array_sort(TP_Context *tp, LNK_CodeViewInput *input, LNK_LeafRefArray arr, U64 debug_t_count) { Temp scratch = scratch_begin(0,0); -#if PROFILE_TELEMETRY - String8 leaf_count_string = str8_from_count(scratch.arena, arr.count); - String8 obj_count_string = str8_from_count(scratch.arena, obj_count); - String8 type_server_count_string = str8_from_count(scratch.arena, type_server_count); - ProfBeginDynamic("Leaf Sort [Leaf Count: %.*s, Obj Count: %.*s, Type Server Count: %.*s]", str8_varg(leaf_count_string), str8_varg(obj_count_string), str8_varg(type_server_count_string)); -#endif + ProfBeginDynamic("Leaf Sort [Leaf Count: %.*s]", str8_varg(str8_from_count(scratch.arena, arr.count))); - if (arr.count > 140000) { - ProfBegin("Radix"); - - U32 loc_idx_max_bits = 32 - clz32(Max(obj_count, type_server_count)); - - LNK_LeafRadixSortTask task = {0}; - task.loc_idx_bit_count_0 = Clamp(0, (S32)loc_idx_max_bits - 21, 11); - task.loc_idx_bit_count_1 = Clamp(0, (S32)loc_idx_max_bits - 10, 11); - task.loc_idx_bit_count_2 = Clamp(0, (S32)loc_idx_max_bits, 10); - task.counts_max = (1 << 11); - task.loc_idx_max = arr.count; - task.ranges = tp_divide_work(scratch.arena, arr.count, tp->worker_count); - task.dst = push_array_no_zero(scratch.arena, LNK_LeafBucket *, arr.count); - task.src = arr.v; - - ProfBegin("Push Counts"); - task.counts_arr = push_array_no_zero(scratch.arena, U32 *, tp->worker_count); - for (U64 i = 0; i < tp->worker_count; ++i) { - // zero-out happens in histogram step - task.counts_arr[i] = push_array_no_zero(scratch.arena, U32, task.counts_max); - } - ProfEnd(); - - for (task.pass_idx = 0; task.pass_idx < 6; ++task.pass_idx) { - ProfBeginDynamic("Pass: %u", task.pass_idx); - - ProfBegin("Histo"); - tp_for_parallel(tp, 0, tp->worker_count, lnk_leaf_ref_histo_task, &task); - ProfEnd(); - - B32 is_range_not_empty = 0; - for (U64 task_id = 0; task_id < tp->worker_count; ++task_id) { - is_range_not_empty = task.counts_arr[task_id][0] != dim_1u64(task.ranges[task_id]); - if (is_range_not_empty) { - break; - } - } - - ProfBegin("Counts -> Offsets"); - { - U64 digit_cursor = 0; - for (U64 digit_idx = 0; digit_idx < task.counts_max; ++digit_idx) { - for (U64 task_id = 0; task_id < tp->worker_count; ++task_id) { - U64 count = task.counts_arr[task_id][digit_idx]; - task.counts_arr[task_id][digit_idx] = digit_cursor; - digit_cursor += count; - } - } - Assert(digit_cursor == arr.count); - } - ProfEnd(); - - ProfBegin("Sort"); - tp_for_parallel(tp, 0, tp->worker_count, lnk_loc_idx_radix_sort_task, &task); - Swap(LNK_LeafBucket **, task.src, task.dst); - ProfEnd(); - - ProfEnd(); - } - - if (task.src != arr.v) { - MemoryCopyTyped(arr.v, task.dst, arr.count); - } - -#if 0 - for (U64 i = 1; i < arr.count; ++i) { - AssertAlways(arr.v[i-1]->leaf_ref.enc_loc_idx <= arr.v[i]->leaf_ref.enc_loc_idx); - if (arr.v[i-1]->leaf_ref.enc_loc_idx == arr.v[i]->leaf_ref.enc_loc_idx) { - AssertAlways(arr.v[i-1]->leaf_ref.enc_leaf_idx <= arr.v[i]->leaf_ref.enc_leaf_idx); - } - } -#endif - - ProfEnd(); - } else { - ProfBegin("Radsort"); - radsort(arr.v, arr.count, lnk_leaf_ref_is_before); - ProfEnd(); - } scratch_end(scratch); ProfEnd(); @@ -1954,65 +1742,108 @@ lnk_leaf_bucket_array_sort(TP_Context *tp, LNK_LeafBucketArray arr, U64 obj_coun internal THREAD_POOL_TASK_FUNC(lnk_assign_type_indices_task) { - LNK_AssignTypeIndicesTask *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - for (U64 i = range.min; i < range.max; ++i) { - LNK_LeafBucket *bucket = task->bucket_arr.v[i]; - bucket->type_index = task->min_type_index + i; + LNK_MergeTypes *task = raw_task; + + CV_TypeIndexSource ti_source = task->ti_source; + LNK_LeafRefArray unique_leaf_refs = task->unique_leaf_refs_arr[ti_source]; + CV_TypeIndex min_type_index = task->min_type_indices[ti_source]; + U64 assigned_type_cap = task->assigned_type_caps[ti_source]; + CV_TypeIndex *assigned_type_ht = task->assigned_type_hts[ti_source]; + + for EachInRange(i, task->ranges[task_id]) { + LNK_LeafRef *leaf_ref = unique_leaf_refs.v[i]; + CV_TypeIndex type_index = min_type_index + i; + + U64 hash = u64_hash_from_str8(str8_struct(leaf_ref)); + U64 best_idx = hash % assigned_type_cap; + U64 idx = best_idx; + + B32 is_inserted = 0; + do { + CV_TypeIndex curr_type_index = assigned_type_ht[idx]; + if (curr_type_index == 0) { + CV_TypeIndex cmp_type_index = ins_atomic_u32_eval_cond_assign(&assigned_type_ht[idx], type_index, curr_type_index); + if (cmp_type_index == curr_type_index) { + is_inserted = 1; + break; + } + } + // advance + idx = (idx + 1) == assigned_type_cap ? 0 : (idx + 1); + } while (idx != best_idx); + Assert(is_inserted); } } -internal void -lnk_assign_type_indices(TP_Context *tp, LNK_LeafBucketArray bucket_arr, CV_TypeIndex min_type_index) +internal CV_TypeIndex +lnk_assigned_type_ht_search(U64 cap, CV_TypeIndex *ht, CV_TypeIndex min_type_index, LNK_LeafRefArray unique_leaf_refs, LNK_LeafRef *v, U64 hash) { - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); + U64 best_idx = hash % cap; + U64 idx = best_idx; + do { + CV_TypeIndex type_index = ht[idx]; + if (type_index < min_type_index) { break; } - LNK_AssignTypeIndicesTask task; - task.range_arr = tp_divide_work(scratch.arena, bucket_arr.count, tp->worker_count); - task.bucket_arr = bucket_arr; - task.min_type_index = min_type_index; - tp_for_parallel(tp, 0, tp->worker_count, lnk_assign_type_indices_task, &task); + U64 leaf_idx = type_index - min_type_index; + LNK_LeafRef *compar = unique_leaf_refs.v[leaf_idx]; + if (MemoryMatchStruct(compar,v)) { return type_index; } + + idx = (idx + 1) == cap ? 0 : (idx + 1); + } while(idx != best_idx); - ProfEnd(); - scratch_end(scratch); + InvalidPath; + return 0; +} + +internal void +lnk_fixup_cv_type_indices(LNK_MergeTypes *ctx, U32 obj_idx, String8 data, CV_TypeIndexInfoList ti_info_list) +{ + for EachNode(n, CV_TypeIndexInfo, ti_info_list.first) { + CV_TypeIndex *ti_ptr = str8_deserial_get_raw_ptr(data, n->offset, sizeof(*ti_ptr)); + CV_TypeIndex ti = memory_read32(ti_ptr); + + // skip basic types + if (ti < ctx->input->min_type_indices[n->source]) { continue; } + + CV_TypeIndex final_ti = 0; + LNK_LeafRef leaf_ref = lnk_leaf_ref_from_ti(ctx->input, obj_idx, n->source, ti); + LNK_LeafHashTable *leaf_ht = &ctx->leaf_ht_arr[n->source]; + LNK_LeafRef *final_leaf = lnk_leaf_hash_table_search(leaf_ht, ctx->input, leaf_ref); + if (final_leaf) { + U64 final_hash = u64_hash_from_str8(str8_struct(final_leaf)); + final_ti = lnk_assigned_type_ht_search(ctx->assigned_type_caps [n->source], + ctx->assigned_type_hts [n->source], + ctx->min_type_indices [n->source], + ctx->unique_leaf_refs_arr[n->source], + final_leaf, + final_hash); + } +#if BUILD_DEBUG + else { + lnk_error_obj(LNK_Error_InvalidTypeIndex, ctx->input->obj_arr[obj_idx], "no itype 0x%x", ti); + } +#endif + + memory_write32(ti_ptr, final_ti); + } } internal -THREAD_POOL_TASK_FUNC(lnk_patch_symbols_task) +THREAD_POOL_TASK_FUNC(lnk_cv_patcher_symbols_task) { ProfBeginFunction(); - LNK_PatchSymbolTypesTask *task = raw_task; - Arena *fixed_arena = task->arena_arr[task_id]; + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->input->symbol_input_ranges[task_id]; + for EachInRange(i, range) { + LNK_SymbolInput symbols = task->input->symbol_inputs[i]; + for (U64 cursor = 0; cursor + sizeof(CV_SymbolHeader) <= symbols.raw_symbols.size; ) { + Temp temp = temp_begin(task->fixed_arenas[task_id]); - for EachInRange(symbol_input_idx, task->ranges[task_id]) { - LNK_CodeViewSymbolsInput symbol_input = task->input->symbol_inputs[symbol_input_idx]; - LNK_LeafLocType loc_type = lnk_loc_type_from_obj_idx(task->input, symbol_input.obj_idx); - U64 loc_idx = lnk_loc_idx_from_obj_idx(task->input, symbol_input.obj_idx); + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(symbols.raw_symbols, cursor, CV_SymbolAlign, &symbol), cursor); - CV_TypeIndex ti_lo_arr[CV_TypeIndexSource_COUNT]; - ti_lo_arr[CV_TypeIndexSource_NULL] = lnk_ti_lo_from_loc(task->input, loc_type, loc_idx, CV_TypeIndexSource_NULL); - ti_lo_arr[CV_TypeIndexSource_TPI ] = lnk_ti_lo_from_loc(task->input, loc_type, loc_idx, CV_TypeIndexSource_TPI); - ti_lo_arr[CV_TypeIndexSource_IPI ] = lnk_ti_lo_from_loc(task->input, loc_type, loc_idx, CV_TypeIndexSource_IPI); - - for (CV_SymbolNode *symnode = symbol_input.symbol_list->first; symnode != 0; symnode = symnode->next) { - Temp temp = temp_begin(fixed_arena); - - // find type index offsets in symbol - CV_TypeIndexInfoList ti_list = cv_get_symbol_type_index_offsets(temp.arena, symnode->data.kind, symnode->data.data); - - // overwrite type indices in symbol - for (CV_TypeIndexInfo *ti_info = ti_list.first; ti_info != 0; ti_info = ti_info->next) { - CV_TypeIndex *ti_ptr = (CV_TypeIndex *) (symnode->data.data.str + ti_info->offset); - if (*ti_ptr >= ti_lo_arr[ti_info->source]) { - LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[ti_info->source]; - LNK_LeafRef leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(task->input, loc_type, ti_info->source, loc_idx, *ti_ptr); - LNK_LeafBucket *leaf_bucket = lnk_leaf_hash_table_search(leaf_ht, task->input, task->hashes, leaf_ref); - - // we overwrite section memory directly - *ti_ptr = leaf_bucket->type_index; - } - } + CV_TypeIndexInfoList ti_info_list = cv_get_symbol_type_index_offsets(temp.arena, symbol.kind, symbol.data); + lnk_fixup_cv_type_indices(task, symbols.obj_idx, symbol.data, ti_info_list); temp_end(temp); } @@ -2020,438 +1851,466 @@ THREAD_POOL_TASK_FUNC(lnk_patch_symbols_task) ProfEnd(); } -internal void -lnk_patch_symbols(TP_Context *tp, - LNK_CodeViewInput *input, - LNK_LeafHashes *hashes, - LNK_LeafHashTable *leaf_ht_arr) +internal +THREAD_POOL_TASK_FUNC(lnk_cv_patcher_inlines_task) { ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - U64 max_ti_list_size = sizeof(CV_TypeIndexInfo) * (max_U16 / sizeof(CV_TypeIndex)); - - LNK_PatchSymbolTypesTask task = {0}; - task.ranges = tp_divide_work(scratch.arena, input->total_symbol_input_count, tp->worker_count); - task.input = input; - task.hashes = hashes; - task.leaf_ht_arr = leaf_ht_arr; - task.arena_arr = alloc_fixed_size_arena_array(scratch.arena, tp->worker_count, max_ti_list_size, max_ti_list_size); - tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_symbols_task, &task); - - scratch_end(scratch); + LNK_MergeTypes *task = raw_task; + U64 obj_idx = task_id; + String8List inlinee_lines = cv_sub_section_from_debug_s(task->input->debug_s_arr[obj_idx], CV_C13SubSectionKind_InlineeLines); + Arena *fixed_arena = task->fixed_arenas[worker_id]; + for EachNode(inline_data_n, String8Node, inlinee_lines.first) { + Temp temp = temp_begin(fixed_arena); + CV_TypeIndexInfoList ti_info_list = cv_get_inlinee_type_index_offsets(temp.arena, inline_data_n->string); + lnk_fixup_cv_type_indices(task, obj_idx, inline_data_n->string, ti_info_list); + temp_end(temp); + } ProfEnd(); } internal -THREAD_POOL_TASK_FUNC(lnk_patch_inlines_task) +THREAD_POOL_TASK_FUNC(lnk_cv_patcher_leaves_task) { ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - LNK_PatchInlinesTask *task = raw_task; - - U64 loc_idx = lnk_loc_idx_from_obj_idx(task->input, task_id); - LNK_LeafLocType loc_type = lnk_loc_type_from_obj_idx(task->input, task_id); - String8List inline_data_list = cv_sub_section_from_debug_s(task->debug_s_arr[task_id], CV_C13SubSectionKind_InlineeLines); - - for (String8Node *inline_data_node = inline_data_list.first; inline_data_node != 0; inline_data_node = inline_data_node->next) { - Temp temp = temp_begin(scratch.arena); - - // get indices offsets - CV_TypeIndexInfoList ti_info_list = cv_get_inlinee_type_index_offsets(temp.arena, inline_data_node->string); - - for (CV_TypeIndexInfo *ti_info = ti_info_list.first; ti_info != 0; ti_info = ti_info->next) { - CV_TypeIndex *ti_ptr = (CV_TypeIndex *) (inline_data_node->string.str + ti_info->offset); - CV_TypeIndex ti_lo = lnk_ti_lo_from_loc(task->input, loc_type, loc_idx, ti_info->source); - if (*ti_ptr >= ti_lo) { - LNK_LeafRef leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(task->input, loc_type, ti_info->source, loc_idx, *ti_ptr); - LNK_LeafBucket *leaf_bucket = lnk_leaf_hash_table_search(&task->leaf_ht_arr[ti_info->source], task->input, task->hashes, leaf_ref); - - // patch index - *ti_ptr = leaf_bucket->type_index; - } - } - + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + Arena *fixed_arena = task->fixed_arenas[task_id]; + for EachInRange(leaf_ref_idx, range) { + Temp temp = temp_begin(fixed_arena); + LNK_LeafRef *patch = task->unique_leaf_refs_arr[task->ti_source].v[leaf_ref_idx]; + CV_DebugT *debug_t = &task->input->debug_t_arr[patch->obj_idx]; + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, patch->leaf_idx); + CV_TypeIndexInfoList ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); + lnk_fixup_cv_type_indices(task, patch->obj_idx, leaf.data, ti_info_list); temp_end(temp); } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -lnk_patch_inlines(TP_Context *tp, - LNK_CodeViewInput *input, - LNK_LeafHashes *hashes, - LNK_LeafHashTable *leaf_ht_arr, - U64 obj_count, - CV_DebugS *debug_s_arr) -{ - ProfBeginFunction(); - - LNK_PatchInlinesTask task = {0}; - task.input = input; - task.hashes = hashes; - task.leaf_ht_arr = leaf_ht_arr; - task.debug_s_arr = debug_s_arr; - tp_for_parallel(tp, 0, obj_count, lnk_patch_inlines_task, &task); - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_patch_leaves_task) -{ - ProfBeginFunction(); - - LNK_PatchLeavesTask *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - - for (U64 bucket_idx = range.min; bucket_idx < range.max; ++bucket_idx) { - Temp temp = temp_begin(task->fixed_arena_arr[task_id]); - - LNK_LeafBucket *bucket = task->bucket_arr[bucket_idx]; - - U64 loc_idx = bucket->leaf_ref.enc_loc_idx & ~LNK_LeafRefFlag_LocIdxExternal; - LNK_LeafLocType loc_type = lnk_loc_type_from_leaf_ref(bucket->leaf_ref); - CV_TypeIndex ti_lo = lnk_ti_lo_from_leaf_ref(task->input, bucket->leaf_ref); - String8 raw_leaf = lnk_data_from_leaf_ref(task->input, bucket->leaf_ref); - CV_Leaf leaf = cv_leaf_from_string(raw_leaf); - - // get type indices offsets - CV_TypeIndexInfoList ti_info_list = cv_get_leaf_type_index_offsets(temp.arena, leaf.kind, leaf.data); - for (CV_TypeIndexInfo *ti_info = ti_info_list.first; ti_info != 0; ti_info = ti_info->next) { - CV_TypeIndex *ti_ptr = (CV_TypeIndex *) (leaf.data.str + ti_info->offset); - if (*ti_ptr >= ti_lo) { - LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[ti_info->source]; - LNK_LeafRef sub_leaf_ref = lnk_leaf_ref_from_loc_idx_and_ti(task->input, loc_type, ti_info->source, loc_idx, *ti_ptr); - LNK_LeafBucket *sub_leaf_bucket = lnk_leaf_hash_table_search(leaf_ht, task->input, task->hashes, sub_leaf_ref); - - // patch index - *ti_ptr = sub_leaf_bucket->type_index; - } - } - - temp_end(temp); - } - - ProfEnd(); -} - -internal void -lnk_patch_leaves(TP_Context *tp, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafHashTable *leaf_ht_arr, LNK_LeafBucketArray bucket_arr) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - LNK_PatchLeavesTask task; - task.input = input; - task.hashes = hashes; - task.leaf_ht_arr = leaf_ht_arr; - task.bucket_arr = bucket_arr.v; - task.range_arr = tp_divide_work(scratch.arena, bucket_arr.count, tp->worker_count); - task.fixed_arena_arr = alloc_fixed_size_arena_array(scratch.arena, tp->worker_count, MB(1), MB(1)); - tp_for_parallel(tp, 0, tp->worker_count, lnk_patch_leaves_task, &task); - - scratch_end(scratch); ProfEnd(); } internal THREAD_POOL_TASK_FUNC(lnk_unbucket_raw_leaves_task) { - LNK_UnbucketRawLeavesTask *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - for (U64 i = range.min; i < range.max; ++i) { - String8 raw_leaf = lnk_data_from_leaf_ref(task->input, task->bucket_arr[i]->leaf_ref); - task->raw_leaf_arr[i] = raw_leaf.str; + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + for EachInRange(i, range) { + LNK_LeafRef leaf_ref = *task->unique_leaf_refs_arr[task->ti_source].v[i]; + CV_DebugT *debug_t = &task->input->debug_t_arr[leaf_ref.obj_idx]; + String8 raw_leaf = cv_debug_t_get_raw_leaf(debug_t, leaf_ref.leaf_idx); + task->result.v[task->ti_source][i] = raw_leaf.str; } } -internal CV_DebugT -lnk_unbucket_leaf_array(TP_Context *tp, Arena *arena, LNK_CodeViewInput *input, LNK_LeafBucketArray bucket_arr) -{ - ProfBeginDynamic("Unbucket Leaves [Count %llu]", bucket_arr.count); - Temp scratch = scratch_begin(&arena, 1); - - LNK_UnbucketRawLeavesTask task = {0}; - task.input = input; - task.bucket_arr = bucket_arr.v; - task.raw_leaf_arr = push_array_no_zero(arena, U8 *, bucket_arr.count); - task.range_arr = tp_divide_work(scratch.arena, bucket_arr.count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_unbucket_raw_leaves_task, &task); - - CV_DebugT debug_t = {0}; - debug_t.count = bucket_arr.count; - debug_t.v = task.raw_leaf_arr; - - scratch_end(scratch); - ProfEnd(); - return debug_t; -} - internal -THREAD_POOL_TASK_FUNC(lnk_post_process_cv_symbols_task) +THREAD_POOL_TASK_FUNC(lnk_unbucket_hashes_task) { - LNK_PostProcessCvSymbolsTask *task = raw_task; - LNK_CodeViewSymbolsInput symbol_input = task->symbol_inputs[task_id]; + LNK_MergeTypes *task = raw_task; + Rng1U64 range = task->ranges[task_id]; + for EachInRange(i, range) { + LNK_LeafRef leaf_ref = *task->unique_leaf_refs_arr[task->ti_source].v[i]; + CV_DebugT *debug_t = &task->input->debug_t_arr[leaf_ref.obj_idx]; + String8 raw_leaf = cv_debug_t_get_raw_leaf(debug_t, leaf_ref.leaf_idx); + task->result.hashes[task->ti_source][i] = task->input->debug_h_arr[leaf_ref.obj_idx].v[leaf_ref.leaf_idx]; + } +} - for (CV_SymbolNode *symnode = symbol_input.symbol_list->first; symnode != 0; symnode = symnode->next) { - CV_Symbol *symbol = &symnode->data; +internal +THREAD_POOL_TASK_FUNC(lnk_fixup_symbols_task) +{ + LNK_MergeTypes *task = raw_task; - if (symbol->kind == CV_SymKind_LPROC32_ID || symbol->kind == CV_SymKind_GPROC32_ID || symbol->kind == CV_SymKind_LPROC32_DPC) { - CV_SymProc32 *proc32 = (CV_SymProc32 *) symbol->data.str; - if (proc32->itype >= task->ipi_min_type_index) { - if ((proc32->itype - task->ipi_min_type_index) < task->ipi_types.count) { - U64 leaf_idx = proc32->itype - task->ipi_min_type_index; - CV_Leaf leaf = cv_debug_t_get_leaf(task->ipi_types, leaf_idx); + LNK_SymbolInput symbols = task->input->symbol_inputs[task_id]; + U64 leaf_count_ipi = task->result.count [CV_TypeIndexSource_IPI]; + U8 **leaf_arr_ipi = task->result.v [CV_TypeIndexSource_IPI]; + CV_TypeIndex min_ti_ipi = task->min_type_indices[CV_TypeIndexSource_IPI]; - if (leaf.kind == CV_LeafKind_FUNC_ID) { - if (leaf.data.size >= sizeof(CV_LeafFuncId)) { - proc32->itype = ((CV_LeafFuncId *) leaf.data.str)->itype; - } else { - Assert(!"TODO: error handle corrupt leaf"); - } - } else if (leaf.kind == CV_LeafKind_MFUNC_ID) { - if (leaf.data.size >= sizeof(CV_LeafMFuncId)) { - proc32->itype = ((CV_LeafMFuncId *) leaf.data.str)->itype; - } else { - Assert(!"TODO: error handle corrupt leaf"); - } - } else { - Assert(!"TODO: erorr handle unexpected leaf type"); - } - } else { - Assert("TODO: error handle corrupted type index"); - } - } else { - // TODO: in some cases destructors don't have a type, need a repro - } - } + for (U64 cursor = 0; cursor + sizeof(CV_SymbolHeader) <= symbols.raw_symbols.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(symbols.raw_symbols, cursor, CV_SymbolAlign, &symbol), cursor); // convert symbol to final type - switch (symbol->kind) { - case CV_SymKind_LPROC32_ID: symbol->kind = CV_SymKind_LPROC32; break; - case CV_SymKind_GPROC32_ID: symbol->kind = CV_SymKind_GPROC32; break; - case CV_SymKind_LPROC32_DPC_ID: symbol->kind = CV_SymKind_LPROC32_DPC; break; - case CV_SymKind_LPROCMIPS_ID: symbol->kind = CV_SymKind_LPROCMIPS; break; - case CV_SymKind_GPROCMIPS_ID: symbol->kind = CV_SymKind_GPROCMIPS; break; - case CV_SymKind_LPROCIA64_ID: symbol->kind = CV_SymKind_LPROCIA64; break; - case CV_SymKind_GPROCIA64_ID: symbol->kind = CV_SymKind_GPROCIA64; break; - case CV_SymKind_PROC_ID_END: symbol->kind = CV_SymKind_END; break; + CV_SymKind *sym_kind_ptr = cv_kind_ptr_from_symbol(symbol); + switch (*sym_kind_ptr) { + case CV_SymKind_PROC_ID_END: *sym_kind_ptr = CV_SymKind_END; break; + + case CV_SymKind_LPROC32_ID: *sym_kind_ptr = CV_SymKind_LPROC32; goto fixup_id; + case CV_SymKind_GPROC32_ID: *sym_kind_ptr = CV_SymKind_GPROC32; goto fixup_id; + case CV_SymKind_LPROC32_DPC_ID: *sym_kind_ptr = CV_SymKind_LPROC32_DPC; goto fixup_id; + case CV_SymKind_LPROCMIPS_ID: *sym_kind_ptr = CV_SymKind_LPROCMIPS; goto fixup_id; + case CV_SymKind_GPROCMIPS_ID: *sym_kind_ptr = CV_SymKind_GPROCMIPS; goto fixup_id; + case CV_SymKind_LPROCIA64_ID: *sym_kind_ptr = CV_SymKind_LPROCIA64; goto fixup_id; + case CV_SymKind_GPROCIA64_ID: *sym_kind_ptr = CV_SymKind_GPROCIA64; goto fixup_id; + fixup_id:; { + CV_SymProc32 *proc32 = str8_deserial_get_raw_ptr(symbol.data, 0, sizeof(*proc32)); + if (proc32->itype < min_ti_ipi) { + // TODO: in some cases destructors don't have a type, need a repro + break; + } + + if ((proc32->itype - min_ti_ipi) > leaf_count_ipi) { + Assert(0 && "TODO: error handle corrupted type index"); + break; + } + + U64 leaf_idx = proc32->itype - min_ti_ipi; + String8 leaf_data = str8(leaf_arr_ipi[leaf_idx], max_U64); + + CV_Leaf leaf; + if (cv_read_leaf(leaf_data, 0, 1, &leaf) == 0) { InvalidPath; } + + U64 min_leaf_size = cv_header_struct_size_from_leaf_kind(leaf.kind); + if (min_leaf_size > leaf.data.size) { Assert(!"TODO: error handle corrupt leaf"); break; } + + if (leaf.kind == CV_LeafKind_FUNC_ID) { + CV_LeafFuncId *func_id = str8_deserial_get_raw_ptr(leaf.data, 0, sizeof(*func_id)); + proc32->itype = func_id->itype; + } else if (leaf.kind == CV_LeafKind_MFUNC_ID) { + CV_LeafMFuncId *mfunc_id = str8_deserial_get_raw_ptr(leaf.data, 0, sizeof(*mfunc_id)); + proc32->itype = mfunc_id->itype; + } else { + Assert(!"TODO: erorr handle unexpected leaf type"); + break; + } + } break; } } } -internal CV_DebugT * -lnk_import_types(TP_Context *tp, TP_Arena *tp_temp, LNK_CodeViewInput *input) +internal +THREAD_POOL_TASK_FUNC(lnk_build_obj_ti_map) { - ProfBegin("Import Types"); + LNK_MergeTypes *task = raw_task; + LNK_CodeViewInput *input = task->input; - ProfBegin("Hash Leaves"); - LNK_LeafHashes *hashes = push_array(tp_temp->v[0], LNK_LeafHashes, 1); + U64 obj_idx = task_id; + CV_DebugT *debug_t = &input->debug_t_arr[obj_idx]; + CV_TypeIndex *obj_ti_map = task->obj_ti_batch + task->obj_ti_map_offsets[obj_idx]; + + for EachIndex(leaf_idx, debug_t->count) { + CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + CV_TypeIndexSource source = cv_type_index_source_from_leaf_kind(leaf.kind); + LNK_LeafRef leaf_ref = { obj_idx, leaf_idx }; + LNK_LeafHashTable *leaf_ht = &task->leaf_ht_arr[source]; + LNK_LeafRef *final_leaf = lnk_leaf_hash_table_search(leaf_ht, input, leaf_ref); + + if (final_leaf) { + U64 final_hash = u64_hash_from_str8(str8_struct(final_leaf)); + CV_TypeIndex final_ti = lnk_assigned_type_ht_search(task->assigned_type_caps [source], + task->assigned_type_hts [source], + task->min_type_indices [source], + task->unique_leaf_refs_arr[source], + final_leaf, + final_hash); + + obj_ti_map[leaf_idx] = final_ti; + } else { + obj_ti_map[leaf_idx] = 0; + } + } + + task->result.obj_ti_maps[obj_idx] = obj_ti_map; +} + +internal LNK_MergedTypes +lnk_merge_types(TP_Context *tp, TP_Arena *tp_temp, LNK_CodeViewInput *input, LNK_MergeTypeFlags merge_flags) +{ + ProfBeginFunction(); + Temp scratch = temp_begin(lnk_get_huge_arena()); + + LNK_MergeTypes task = { .input = input }; + U64 max_ti_list_size = sizeof(CV_TypeIndexInfo) * (max_U16 / sizeof(CV_TypeIndex)); + task.fixed_arenas = alloc_fixed_size_arena_array(scratch.arena, tp->worker_count, max_ti_list_size, max_ti_list_size); + + ProfBegin("Produce Hashes"); { - Temp scratch = scratch_begin(tp_temp->v, tp_temp->count); + ProfBegin("Alloc Hashes"); + struct HashTarget { + TP_TaskFunc *hasher_task; + U32Array indices; + U32Array hash_indices; + } hash_targets[] = { + { lnk_hash_debug_t_task, input->debug_p_indices }, // hash .debug$P first so we can mix in hashes for precompiled sub leaves when hashing leaves in .debug$T + { lnk_hash_debug_t_task, input->int_obj_indices }, + { lnk_hash_debug_t_deep_task, input->type_server_indices }, + }; - // push internal hash arrays - // - // TPI and IPI leaves in .debug$T are stored in one array (we don't move them - // to respective arrays before this point to save on memory move) - ProfBegin("Push Internal Hash Arrays"); - hashes->internal_hashes = push_array_no_zero(tp_temp->v[0], U128Array *, input->internal_count); - for (U64 obj_idx = 0; obj_idx < input->internal_count; ++obj_idx) { - CV_DebugT debug_t = input->merged_debug_t_p_arr[obj_idx]; + for EachElement(i, hash_targets) { + // reserve array for obj indices that need hashing + U32Array *h = &hash_targets[i].hash_indices; + h->count = 0; + h->v = push_array(scratch.arena, U32, hash_targets[i].indices.count); + + for EachIndex(k, hash_targets[i].indices.count) { + U32 obj_idx = hash_targets[i].indices.v[k]; + CV_DebugH *debug_h = &input->debug_h_arr[obj_idx]; + + if (debug_h->count == 0) { + // alloc hashes + CV_DebugT *debug_t = &input->debug_t_arr[obj_idx]; + debug_h->count = debug_t->count; + debug_h->v = push_array(scratch.arena, U64, debug_h->count); + + // schedule obj types to be hashed + h->v[h->count++] = obj_idx; + } else { + // hash was loaded from .debug$H + } + } + } + ProfEnd(); + + for EachElement(i, hash_targets) { + task.indices = hash_targets[i].hash_indices; + ProfBegin("Hash [Count: %.*s]", str8_varg(str8_from_count(scratch.arena, task.indices.count))); + tp_for_parallel(tp, 0, task.indices.count, hash_targets[i].hasher_task, &task); + ProfEnd(); + } - U128Array arr = {0}; - arr.count = debug_t.count; - arr.v = push_array_no_zero(tp_temp->v[0], U128, debug_t.count); - // :debug_zero_hash_assert #if BUILD_DEBUG - MemoryZeroTyped(arr.v, arr.count); -#endif - - hashes->internal_hashes[obj_idx] = push_array(tp_temp->v[0], U128Array, CV_TypeIndexSource_COUNT); - for (U64 ti_source = 0; ti_source < CV_TypeIndexSource_COUNT; ++ti_source) { - hashes->internal_hashes[obj_idx][ti_source] = arr; + for EachIndex(i, input->count) { + for EachIndex(k, input->debug_h_arr[i].count) { + Assert(input->debug_h_arr[i].v[k] != 0); } } - ProfEnd(); - - // push external hash arrays - ProfBegin("Push External Hash Arrays"); - hashes->external_hashes = push_array_no_zero(tp_temp->v[0], U128Array *, input->type_server_count); - for (U64 ts_idx = 0; ts_idx < input->type_server_count; ++ts_idx) { - hashes->external_hashes[ts_idx] = push_array_no_zero(tp_temp->v[0], U128Array, CV_TypeIndexSource_COUNT); - for (U64 ti_source = 0; ti_source < CV_TypeIndexSource_COUNT; ++ti_source) { - U64 leaf_count = dim_1u64(input->external_ti_ranges[ts_idx][ti_source]); - hashes->external_hashes[ts_idx][ti_source].count = leaf_count; - hashes->external_hashes[ts_idx][ti_source].v = push_array(tp_temp->v[0], U128, leaf_count); // :zero_hash_check - } - } - ProfEnd(); - - LNK_LeafHasherTask task = {0}; - task.input = input; - task.hashes = hashes; - task.fixed_arenas = alloc_fixed_size_arena_array(scratch.arena, tp->worker_count, MB(1), MB(1)); - - // hash .debug$P first so we can mix in hashes for precompiled sub leaves when hashing leaves in .debug$T - ProfBeginDynamic("Hash .debug$P [Count: %llu]", input->internal_count); - task.debug_t_arr = input->internal_debug_p_arr; - tp_for_parallel(tp, 0, input->internal_count, lnk_hash_debug_t_task, &task); - ProfEnd(); - -#if PROFILE_TELEMETRY - String8 count_string = str8_from_count(scratch.arena, input->internal_count); - ProfBegin("Hash .debug$T [Count: %.*s]", str8_varg(count_string)); #endif - task.debug_t_arr = input->internal_debug_t_arr; - tp_for_parallel(tp, 0, input->internal_count, lnk_hash_debug_t_task, &task); - ProfEnd(); - ProfBegin("Hash Type Server Leaves [Count: %.*s]", str8_varg(count_string)); - tp_for_parallel(tp, 0, input->external_count, lnk_hash_type_server_leaves_task, &task); - ProfEnd(); - - scratch_end(scratch); + // for external objs wire hash sections to type servers hashes + for EachIndex(i, input->ext_obj_indices.count) { + U64 dst_obj_idx = input->ext_obj_indices.v[i]; + U64 src_obj_idx = input->obj_to_ts[dst_obj_idx]; + CV_DebugH *dst_debug_h = &input->debug_h_arr[dst_obj_idx]; + CV_DebugH *src_debug_h = &input->debug_h_arr[src_obj_idx]; + *dst_debug_h = *src_debug_h; + } } ProfEnd(); ProfBegin("Leaf Hash Table Init"); - LNK_LeafHashTable leaf_ht_arr[CV_TypeIndexSource_COUNT] = { 0 }; - U64 internal_per_source_count[CV_TypeIndexSource_COUNT] = { 0 }; - U64 external_per_source_count[CV_TypeIndexSource_COUNT] = { 0 }; - { - // count internal leaves - lnk_cv_debug_t_count_leaves_per_source(tp, input->internal_count, input->internal_debug_p_arr, internal_per_source_count); - lnk_cv_debug_t_count_leaves_per_source(tp, input->internal_count, input->internal_debug_t_arr, internal_per_source_count); + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + U64 total_count = 0; + for EachIndex(obj_idx, input->count) { total_count += input->debug_t_arr[obj_idx].source_counts[ti_source]; } - // count external leaves - for (U64 ts_idx = 0; ts_idx < input->type_server_count; ++ts_idx) { - for (U64 ti_source = 0; ti_source < CV_TypeIndexSource_COUNT; ++ti_source) { - external_per_source_count[ti_source] += dim_1u64(input->external_ti_ranges[ts_idx][ti_source]); + task.leaf_ht_arr[ti_source].cap = total_count; + task.leaf_ht_arr[ti_source].cap = 1 + ((task.leaf_ht_arr[ti_source].cap * 13) / 10); // * 1.3 + task.leaf_ht_arr[ti_source].bucket_arr = push_array(scratch.arena, LNK_LeafRef *, task.leaf_ht_arr[ti_source].cap); + +#if PROFILE_TELEMETRY + tmMessage(0, TMMF_ICON_NOTE, "%.*s Bucket Count: %.*s", str8_varg(cv_string_from_type_index_source(ti_source)), str8_varg(str8_from_count(scratch.arena, task.leaf_ht_arr[ti_source].cap))); +#endif + } + ProfEnd(); + + U32Array dedup_type_server_indices = input->type_server_indices; + + ProfBegin("Prepopulate hash table with largest type-set"); + { + LNK_TypeServer *largest_ts = 0; + for EachIndex(i, input->ts_arr.count) { + LNK_TypeServer *ts = &input->ts_arr.v[i]; + if (ts->rrt == 0) { continue; } + if (largest_ts == 0 || (largest_ts->rrt->type_data_raw.size < ts->rrt->type_data_raw.size)) { + largest_ts = ts; } } - // push buckets per source - for (U64 ti_source = 0; ti_source < CV_TypeIndexSource_COUNT; ++ti_source) { - U64 bucket_cap = 0; - bucket_cap += internal_per_source_count[ti_source]; - bucket_cap += external_per_source_count[ti_source]; - bucket_cap = (U64) ((F64) bucket_cap * 1.3); + if (largest_ts) { + task.pop_obj_idx = input->ts_obj_range.min + largest_ts->ts_idx; + task.pop_range = tp_divide_work(scratch.arena, task.input->debug_t_arr[task.pop_obj_idx].count, tp->worker_count); + tp_for_parallel(tp, tp_temp, tp->worker_count, lnk_populate_leaf_ht, &task); - #if PROFILE_TELEMETRY - tmMessage(0, TMMF_ICON_NOTE, "%.*s Bucket Count: %llu", str8_varg(cv_string_from_type_index_source(ti_source)), bucket_cap); - #endif - - leaf_ht_arr[ti_source].cap = bucket_cap; - leaf_ht_arr[ti_source].bucket_arr = push_array(tp_temp->v[0], LNK_LeafBucket *, bucket_cap); + U32Array new_dedup_type_server_indices = { .v = push_array(scratch.arena, U32, input->type_server_indices.count) }; + for EachIndex(i, input->type_server_indices.count) { + if (input->type_server_indices.v[i] == task.pop_obj_idx) { continue; } + new_dedup_type_server_indices.v[new_dedup_type_server_indices.count++] = input->type_server_indices.v[i]; + } + dedup_type_server_indices = new_dedup_type_server_indices; } } ProfEnd(); -#if PROFILE_TELEMETRY - String8 obj_count_string = str8_from_count(tp_temp->v[0], input->internal_count); - String8 tpi_count_string = str8_from_count(tp_temp->v[0], internal_per_source_count[CV_TypeIndexSource_TPI]); - String8 ipi_count_string = str8_from_count(tp_temp->v[0], internal_per_source_count[CV_TypeIndexSource_IPI]); - ProfBeginDynamic("Internal Leaf Dedup [Obj Count: %.*s, TPI: %.*s, IPI: %.*s]", - str8_varg(obj_count_string), - str8_varg(tpi_count_string), - str8_varg(ipi_count_string)); + ProfBegin("Leaf Dedup"); + task.indices = input->debug_p_indices; + tp_for_parallel_prof(tp, tp_temp, task.indices.count, lnk_leaf_dedup_task, &task, ".debug$P"); + + task.indices = input->int_obj_indices; + tp_for_parallel_prof(tp, tp_temp, task.indices.count, lnk_leaf_dedup_task, &task, ".debug$T"); + + task.indices = dedup_type_server_indices; + tp_for_parallel_prof(tp, tp_temp, task.indices.count, lnk_leaf_dedup_task, &task, "Type Servers"); + ProfEnd(); + + ProfBegin("Extract present buckets from the leaf hash tables"); + + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + task.ti_source = ti_source; + task.counts[ti_source] = push_array(scratch.arena, U64, tp->worker_count); + task.ranges = tp_divide_work(scratch.arena, task.leaf_ht_arr[ti_source].cap, tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_count_present_buckets_task, &task, "Count present buckets"); + + task.unique_leaf_refs_arr[ti_source].count = sum_array_u64(tp->worker_count, task.counts[ti_source]); + task.unique_leaf_refs_arr[ti_source].v = push_array_no_zero(scratch.arena, LNK_LeafRef *, task.unique_leaf_refs_arr[ti_source].count); + task.offsets[ti_source] = offsets_from_counts_array_u64(scratch.arena, task.counts[ti_source], tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_get_present_buckets_task, &task, "Copy present buckets"); + + // sort output leaves based on { location index, leaf index } to guarantee determinism + { + LNK_LeafRefArray arr = task.unique_leaf_refs_arr[ti_source]; + if (arr.count > 140000) { + ProfBegin("Radix"); + + U32 obj_idx_max_bits = 32 - clz32(input->count); + + task.obj_idx_bit_count_0 = Clamp(0, (S32)obj_idx_max_bits - 21, 11); + task.obj_idx_bit_count_1 = Clamp(0, (S32)obj_idx_max_bits - 10, 11); + task.obj_idx_bit_count_2 = Clamp(0, (S32)obj_idx_max_bits, 10); + task.counts_max = (1 << 11); + task.ranges = tp_divide_work(scratch.arena, arr.count, tp->worker_count); + task.dst = push_array_no_zero(scratch.arena, LNK_LeafRef *, arr.count); + task.src = arr.v; + + ProfBegin("Push Counts"); + task.counts_arr = push_array_no_zero(scratch.arena, U32 *, tp->worker_count); + for (U64 i = 0; i < tp->worker_count; ++i) { + // zero-out happens in histogram step + task.counts_arr[i] = push_array_no_zero(scratch.arena, U32, task.counts_max); + } + ProfEnd(); + + for (task.pass_idx = 0; task.pass_idx < 6; ++task.pass_idx) { + ProfBeginDynamic("Pass: %u", task.pass_idx); + + ProfBegin("Histo"); + tp_for_parallel(tp, 0, tp->worker_count, lnk_leaf_ref_histo_task, &task); + ProfEnd(); + + B32 is_range_not_empty = 0; + for (U64 task_id = 0; task_id < tp->worker_count; ++task_id) { + is_range_not_empty = task.counts_arr[task_id][0] != dim_1u64(task.ranges[task_id]); + if (is_range_not_empty) { + break; + } + } + + ProfBegin("Counts -> Offsets"); + { + U64 digit_cursor = 0; + for EachIndex(digit_idx, task.counts_max) { + for EachIndex(task_id, tp->worker_count) { + U64 count = task.counts_arr[task_id][digit_idx]; + task.counts_arr[task_id][digit_idx] = digit_cursor; + digit_cursor += count; + } + } + Assert(digit_cursor == arr.count); + } + ProfEnd(); + + ProfBegin("Sort"); + tp_for_parallel(tp, 0, tp->worker_count, lnk_loc_idx_radix_sort_task, &task); + Swap(LNK_LeafRef **, task.src, task.dst); + ProfEnd(); + + ProfEnd(); + } + + if (task.src != arr.v) { + MemoryCopyTyped(arr.v, task.dst, arr.count); + } + + ProfEnd(); + } else { + ProfBegin("Radsort"); + radsort(arr.v, arr.count, lnk_leaf_ref_is_before); + ProfEnd(); + } + +#if 0 + for (U64 i = 1; i < arr.count; ++i) { + AssertAlways(arr.v[i-1]->obj_idx <= arr.v[i]->obj_idx); + if (arr.v[i-1]->obj_idx == arr.v[i]->obj_idx) { + AssertAlways(arr.v[i-1]->obj_idx <= arr.v[i]->obj_idx); + } + } #endif - { - - LNK_LeafDedupInternal task; - task.input = input; - task.hashes = hashes; - task.leaf_ht_arr = leaf_ht_arr; - - ProfBegin("Dedup .debug$P"); - task.debug_t_arr = input->internal_debug_p_arr; - tp_for_parallel(tp, tp_temp, input->internal_count, lnk_leaf_dedup_internal_task, &task); - ProfEnd(); - - ProfBegin("Dedup .debug$T"); - task.debug_t_arr = input->internal_debug_t_arr; - tp_for_parallel(tp, tp_temp, input->internal_count, lnk_leaf_dedup_internal_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBeginDynamic("External Leaf Import [Type Server Count: %llu, Dependent Obj Count: %llu]", input->type_server_count, input->external_count); - { - LNK_LeafDedupExternal task = {0}; - task.input = input; - task.hashes = hashes; - task.leaf_ht_arr = leaf_ht_arr; - - ProfBeginDynamic("Dedup TPI [Leaf Count %llu]", external_per_source_count[CV_TypeIndexSource_TPI]); - task.dedup_ti_source = CV_TypeIndexSource_TPI; - tp_for_parallel(tp, tp_temp, input->type_server_count, lnk_leaf_dedup_external_task, &task); - ProfEnd(); - - ProfBeginDynamic("Dedup IPI [Leaf Count %llu]", external_per_source_count[CV_TypeIndexSource_IPI]); - task.dedup_ti_source = CV_TypeIndexSource_IPI; - tp_for_parallel(tp, tp_temp, input->type_server_count, lnk_leaf_dedup_external_task, &task); - ProfEnd(); - } - ProfEnd(); - - // extract present buckets from the hash tables - LNK_LeafBucketArray tpi_arr = lnk_present_bucket_array_from_leaf_hash_table(tp, tp_temp->v[0], &leaf_ht_arr[CV_TypeIndexSource_TPI]); - LNK_LeafBucketArray ipi_arr = lnk_present_bucket_array_from_leaf_hash_table(tp, tp_temp->v[0], &leaf_ht_arr[CV_TypeIndexSource_IPI]); - - // sort output leaves based on { location index, leaf index } to guarantee determinism - lnk_leaf_bucket_array_sort(tp, ipi_arr, input->internal_count, input->type_server_count); - lnk_leaf_bucket_array_sort(tp, tpi_arr, input->internal_count, input->type_server_count); - - // assign type indices to each bucket - lnk_assign_type_indices(tp, tpi_arr, CV_MinComplexTypeIndex); - lnk_assign_type_indices(tp, ipi_arr, CV_MinComplexTypeIndex); - - // patch indices in symbols, inline sites, and leaves - lnk_patch_symbols(tp, input, hashes, leaf_ht_arr); - lnk_patch_inlines(tp, input, hashes, leaf_ht_arr, input->count, input->debug_s_arr); - lnk_patch_leaves(tp, input, hashes, leaf_ht_arr, tpi_arr); - lnk_patch_leaves(tp, input, hashes, leaf_ht_arr, ipi_arr); - - CV_DebugT tpi_types = lnk_unbucket_leaf_array(tp, tp_temp->v[0], input, tpi_arr); - CV_DebugT ipi_types = lnk_unbucket_leaf_array(tp, tp_temp->v[0], input, ipi_arr); - - ProfBegin("Post Process CV Symbols"); - { - LNK_PostProcessCvSymbolsTask task = {0}; - task.ipi_min_type_index = CV_MinComplexTypeIndex; - task.ipi_types = ipi_types; - task.symbol_inputs = input->symbol_inputs; - task.parsed_symbols = input->parsed_symbols; - tp_for_parallel(tp, 0, input->total_symbol_input_count, lnk_post_process_cv_symbols_task, &task); - } - ProfEnd(); - - CV_DebugT *types = push_array(tp_temp->v[0], CV_DebugT, CV_TypeIndexSource_COUNT); - types[CV_TypeIndexSource_TPI] = tpi_types; - types[CV_TypeIndexSource_IPI] = ipi_types; - - ProfEnd(); - return types; -} - -internal U64 -lnk_format_u128(U8 *buf, U64 buf_max, U64 length, U128 v) -{ - U64 size = 0; - if (length > 0 && buf_max > 0) { - if (length <= 8) { - U64 mask = length == 8 ? max_U64 : (1ull << (length*8)) - 1; - size = raddbg_snprintf((char*)buf, buf_max - 1, "%llX", (long long)(v.u64[0] & mask)); - } else { - U64 mask1 = length == 16 ? max_U64 : (1ull << ((length-8)*8)) - 1; - size = raddbg_snprintf((char*)buf, buf_max, "%llX%llX", (long long)(v.u64[1] & mask1), (long long)v.u64[0]); } } - return size; + + #if PROFILE_TELEMETRY + tmMessage(0, TMMF_ICON_NOTE, "TPI Count: %.*s", str8_varg(str8_from_count(scratch.arena, task.unique_leaf_refs_arr[CV_TypeIndexSource_TPI].count))); + tmMessage(0, TMMF_ICON_NOTE, "IPI Count: %.*s", str8_varg(str8_from_count(scratch.arena, task.unique_leaf_refs_arr[CV_TypeIndexSource_IPI].count))); + #endif + + ProfEnd(); + + ProfBegin("Fixup Type Indices"); + { + ProfBegin("Assign type indices"); + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + task.ti_source = ti_source; + task.assigned_type_caps[ti_source] = (task.unique_leaf_refs_arr[ti_source].count * 13) / 10; + task.assigned_type_hts [ti_source] = push_array(scratch.arena, CV_TypeIndex, task.assigned_type_caps[ti_source]); + task.min_type_indices [ti_source] = CV_MinComplexTypeIndex; + task.ranges = tp_divide_work(scratch.arena, task.unique_leaf_refs_arr[ti_source].count, tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_assign_type_indices_task, &task, "Assign Type Indices"); + } + ProfEnd(); + + if (~merge_flags & LNK_MergeTypeFlag_SkipSymbolTypeFixup) { + task.ranges = tp_divide_work(scratch.arena, input->symbol_input_count, tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_cv_patcher_symbols_task, &task, "Fixup Symbol Type Indices"); + + task.ranges = 0; + task.debug_s_arr = input->debug_s_arr; + tp_for_parallel_prof(tp, 0, input->count, lnk_cv_patcher_inlines_task, &task, "Fixup Inlines Type Indices"); + } + + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + task.ti_source = ti_source; + task.ranges = tp_divide_work(scratch.arena, task.unique_leaf_refs_arr[ti_source].count, tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_cv_patcher_leaves_task, &task, "Fixup Types Type Indices"); + } + } + ProfEnd(); + + // @type_server + if (merge_flags & LNK_MergeTypeFlag_BuildObjTiMap) { + task.result.obj_ti_maps = push_array(tp_temp->v[0], CV_TypeIndex *, input->obj_count); + task.obj_ti_map_counts = push_array(scratch.arena, U64, input->obj_count); + for EachIndex(obj_idx, input->obj_count) { + task.obj_ti_map_counts[obj_idx] = input->debug_t_arr[obj_idx].count; + } + + U64 total_ti_count = sum_array_u64(input->obj_count, task.obj_ti_map_counts); + task.obj_ti_map_offsets = offsets_from_counts_array_u64(scratch.arena, task.obj_ti_map_counts, input->obj_count); + task.obj_ti_batch = push_array_no_zero(tp_temp->v[0], CV_TypeIndex, total_ti_count); + task.result.obj_ti_maps = push_array_no_zero(tp_temp->v[0], CV_TypeIndex *, input->obj_count); + + tp_for_parallel_prof(tp, 0, input->obj_count, lnk_build_obj_ti_map, &task, "Build TI Map"); + } + + for EachIndex(ti_source, CV_TypeIndexSource_COUNT) { + LNK_LeafRefArray unique_leaf_refs = task.unique_leaf_refs_arr[ti_source]; + + task.ti_source = ti_source; + task.result.count[ti_source] = unique_leaf_refs.count; + task.result.v [ti_source] = push_array(tp_temp->v[0], U8 *, unique_leaf_refs.count); + task.ranges = tp_divide_work(scratch.arena, unique_leaf_refs.count, tp->worker_count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_unbucket_raw_leaves_task, &task, "Unbucket Leaves"); + + if (merge_flags & LNK_MergeTypeFlag_ExportHashes) { + task.result.hashes[ti_source] = push_array_no_zero(tp_temp->v[0], U64, unique_leaf_refs.count); + tp_for_parallel_prof(tp, 0, tp->worker_count, lnk_unbucket_hashes_task, &task, "Export Hashes"); + } + } + + if (~merge_flags & LNK_MergeTypeFlag_SkipSymbolTypeFixup) { + tp_for_parallel_prof(tp, 0, input->symbol_input_count, lnk_fixup_symbols_task, &task, "Fixup ID Symbols"); + } + + MemoryCopyTyped(task.result.min_type_indices, input->min_type_indices, CV_TypeIndexSource_COUNT); + + temp_end(scratch); + ProfEnd(); + return task.result; } internal @@ -2461,7 +2320,8 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_lenient_task) LNK_TypeNameReplacer *task = raw_task; Rng1U64 range = task->ranges[task_id]; - CV_DebugT debug_t = task->debug_t; + U64 leaf_count = task->leaf_count; + U8 **leaf_arr = task->leaf_arr; U64 hash_length = task->hash_length; B32 make_map = task->make_map; @@ -2472,11 +2332,11 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_lenient_task) map = &task->maps[task_id]; } - U64 hash_max_chars = hash_length*2; - U8 temp[128]; + U64 hash_max_chars = hash_length*2; + char temp[128]; - for (U64 leaf_idx = range.min; leaf_idx < range.max; ++leaf_idx) { - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + for EachInRange(leaf_idx, range) { + CV_Leaf leaf = cv_leaf_from_ptr(leaf_arr[leaf_idx]); if (leaf.kind == CV_LeafKind_STRUCTURE || leaf.kind == CV_LeafKind_CLASS) { CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); @@ -2484,15 +2344,14 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_lenient_task) udt_info.unique_name.size > hash_max_chars && udt_info.name.size > hash_max_chars) { // hash unique name - U128 name_hash; + U64 name_hash; blake3_hasher hasher; blake3_hasher_init(&hasher); blake3_hasher_update(&hasher, udt_info.unique_name.str, udt_info.unique_name.size); blake3_hasher_finalize(&hasher, (U8*)&name_hash, sizeof(name_hash)); // emit hash -> unique name map if (make_map) { - lnk_format_u128(temp, sizeof(temp), hash_length, name_hash); - str8_list_pushf(map_arena, map, "%s %S\n", temp, str8_varg(udt_info.unique_name)); + str8_list_pushf(map_arena, map, "%llx %S\n", name_hash, str8_varg(udt_info.unique_name)); } // parse leaf size @@ -2504,7 +2363,7 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_lenient_task) B32 is_lambda = colon_pos != 0; if (is_lambda) { - U64 size = lnk_format_u128(temp, sizeof(temp), hash_length, name_hash); + U64 size = raddbg_snprintf(temp, sizeof(temp), "%llx", (long long)name_hash); Assert(size < udt_info.name.size); Assert(size < udt_info.unique_name.size); MemoryCopy(udt_info.name.str, temp, size+1); @@ -2513,24 +2372,28 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_lenient_task) udt_info.unique_name.size = size; // update leaf header - CV_LeafHeader *header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); - header->size = sizeof(CV_LeafKind) + - sizeof(CV_LeafStruct) + - numeric_size + - udt_info.name.size + 1 + - udt_info.unique_name.size + 1; + U64 new_size = sizeof(CV_LeafKind) + + sizeof(CV_LeafStruct) + + numeric_size + + udt_info.name.size + 1 + + udt_info.unique_name.size + 1; + CV_LeafHeader *header = (CV_LeafHeader *)leaf_arr[leaf_idx]; + Assert(new_size <= max_U16); + memory_write16(MemberFromPtr(CV_LeafHeader, header, size), (U16)new_size); } else { // replace uniuqe type name with hash udt_info.unique_name.str = udt_info.name.str + udt_info.name.size + 1; - udt_info.unique_name.size = lnk_format_u128(udt_info.unique_name.str, udt_info.unique_name.size, hash_length, name_hash); + udt_info.unique_name.size = raddbg_snprintf((char *)udt_info.unique_name.str, udt_info.unique_name.size, "%llx", (long long)name_hash); // update leaf header - CV_LeafHeader *header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); - header->size = sizeof(CV_LeafKind) + - sizeof(CV_LeafStruct) + - numeric_size + - udt_info.name.size + 1 + - udt_info.unique_name.size + 1; + U64 new_size = sizeof(CV_LeafKind) + + sizeof(CV_LeafStruct) + + numeric_size + + udt_info.name.size + 1 + + udt_info.unique_name.size + 1; + CV_LeafHeader *header = (CV_LeafHeader *)leaf_arr[leaf_idx]; + Assert(new_size <= max_U16); + memory_write16(MemberFromPtr(CV_LeafHeader, header, size), (U16)new_size); } } } @@ -2546,7 +2409,8 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_full_task) LNK_TypeNameReplacer *task = raw_task; Rng1U64 range = task->ranges[task_id]; - CV_DebugT debug_t = task->debug_t; + U64 leaf_count = task->leaf_count; + U8 **leaf_arr = task->leaf_arr; U64 hash_length = task->hash_length; B32 make_map = task->make_map; @@ -2558,10 +2422,9 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_full_task) } U64 hash_max_chars = hash_length*2; - U8 temp[128]; - for (U64 leaf_idx = range.min; leaf_idx < range.max; ++leaf_idx) { - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + for EachInRange(leaf_idx, range) { + CV_Leaf leaf = cv_leaf_from_ptr(leaf_arr[leaf_idx]); if (leaf.kind == CV_LeafKind_STRUCTURE || leaf.kind == CV_LeafKind_CLASS) { CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); @@ -2575,27 +2438,28 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_full_task) } // hash name - U128 name_hash; - blake3_hasher hasher; blake3_hasher_init(&hasher); + U64 name_hash; + blake3_hasher hasher = {0}; blake3_hasher_init(&hasher); blake3_hasher_update(&hasher, udt_info.name.str, udt_info.name.size); blake3_hasher_finalize(&hasher, (U8*)&name_hash, sizeof(name_hash)); // emit hash -> name map if (make_map) { - lnk_format_u128(temp, sizeof(temp), hash_length, name_hash); - str8_list_pushf(map_arena, map, "%s %.*s\n", temp, str8_varg(name)); + str8_list_pushf(map_arena, map, "%llx %S\n", name_hash, name); } // replace name with hash - udt_info.name.size = lnk_format_u128(udt_info.name.str, udt_info.name.size, hash_length, name_hash); + udt_info.name.size = raddbg_snprintf((char *)udt_info.name.str, udt_info.name.size, "%llx", (long long)name_hash); // parse struct size CV_NumericParsed dummy; U64 numeric_size = cv_read_numeric(leaf.data, sizeof(CV_LeafStruct), &dummy); // update header - CV_LeafHeader *header = cv_debug_t_get_leaf_header(debug_t, leaf_idx); - header->size = sizeof(CV_LeafKind) + sizeof(CV_LeafStruct) + numeric_size + udt_info.name.size + 1; + U64 new_size = sizeof(CV_LeafKind) + sizeof(CV_LeafStruct) + numeric_size + udt_info.name.size + 1; + CV_LeafHeader *header = (CV_LeafHeader *)leaf_arr[leaf_idx]; + Assert(new_size <= max_U16); + memory_write16(MemberFromPtr(CV_LeafHeader, header, size), (U16)new_size); // discard unique name CV_LeafStruct *lf = (CV_LeafStruct *)(header + 1); @@ -2608,15 +2472,16 @@ THREAD_POOL_TASK_FUNC(lnk_replace_type_names_with_hashes_full_task) } internal void -lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, LNK_TypeNameHashMode mode, U64 hash_length, String8 map_name) +lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, U64 leaf_count, U8 **leaf_arr, LNK_TypeNameHashMode mode, U64 hash_length, String8 map_name) { ProfBeginFunction(); Temp scratch = scratch_begin(arena->v, arena->count); // init task context LNK_TypeNameReplacer task = {0}; - task.debug_t = debug_t; - task.ranges = tp_divide_work(scratch.arena, debug_t.count, tp->worker_count); + task.leaf_count = leaf_count; + task.leaf_arr = leaf_arr; + task.ranges = tp_divide_work(scratch.arena, leaf_count, tp->worker_count); task.hash_length = Clamp(1, hash_length, 16); if (map_name.size > 0) { @@ -2652,284 +2517,542 @@ lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, CV_DebugT de } internal -THREAD_POOL_TASK_FUNC(lnk_filter_out_gsi_symbols_task) +THREAD_POOL_TASK_FUNC(lnk_move_global_symbols_to_gsi) { - U64 obj_idx = task_id; - LNK_ProcessSymDataTaskData *task = raw_task; - CV_SymbolList *gsi_list = &task->gsi_list_arr[obj_idx]; - CV_SymbolListArray parsed_symbols = task->parsed_symbols[obj_idx]; - - CV_SymbolList global_list = {0}; - CV_SymbolList typedef_list = {0}; - for (U64 i = 0; i < parsed_symbols.count; ++i) { - CV_SymbolList *list = &parsed_symbols.v[i]; - U64 depth = 0; - for (CV_SymbolNode *curr = list->first, *next; curr != 0; curr = next) { - next = curr->next; - - if (cv_is_global_symbol(curr->data.kind)) { - cv_symbol_list_remove_node(list, curr); - cv_symbol_list_push_node(&global_list, curr); - } else if (cv_is_typedef(curr->data.kind)) { - if (depth == 0) { - cv_symbol_list_remove_node(list, curr); - cv_symbol_list_push_node(&typedef_list, curr); - } - } - // Undocumented symbol that appears only in objs. - // MSVC removes these symbols from output. - // - // LLD-link replaces symbol with S_SKIP: - // https://github.com/llvm/llvm-project/blob/main/lld/COFF/PDB.cpp#L575 - else if (curr->data.kind == 0x1176) { - cv_symbol_list_remove_node(list, curr); - } - - if (cv_is_scope_symbol(curr->data.kind)) { - ++depth; - } else if (cv_is_end_symbol(curr->data.kind)) { - Assert(depth > 0); - --depth; - } - } - } - - // collect GSI symbols - Assert(gsi_list->count == 0); - cv_symbol_list_concat_in_place(gsi_list, &global_list); - cv_symbol_list_concat_in_place(gsi_list, &typedef_list); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_make_proc_refs_task) -{ - ProfBeginFunction(); - - U64 obj_idx = task_id; - LNK_ProcessSymDataTaskData *task = raw_task; - PDB_DbiModule *mod = task->mod_arr[obj_idx]; - CV_SymbolList *gsi_list = &task->gsi_list_arr[obj_idx]; - CV_SymbolListArray parsed_symbols = task->parsed_symbols[obj_idx]; - - for (U64 i = 0; i < parsed_symbols.count; ++i) { - CV_SymbolList list = parsed_symbols.v[i]; - CV_SymbolList proc_refs = cv_make_proc_refs(arena, mod->imod, list); - cv_symbol_list_concat_in_place(gsi_list, &proc_refs); - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_process_sym_data_task) -{ - ProfBeginFunction(); - - U64 obj_idx = task_id; - LNK_ProcessSymDataTaskData *task = raw_task; - CV_SymbolListArray parsed_symbols = task->parsed_symbols[obj_idx]; - - static CV_Signature MODULE_SYMBOL_SIGNATURE = CV_Signature_C13; - - ProfBegin("Compute Buffer Size"); - U64 buffer_size = sizeof(MODULE_SYMBOL_SIGNATURE); - for (U64 i = 0; i < parsed_symbols.count; ++i) { - CV_SymbolList list = parsed_symbols.v[i]; - U64 data_size = cv_patch_symbol_tree_offsets(list, buffer_size, PDB_SYMBOL_ALIGN); - buffer_size += data_size; - } - ProfEnd(); - - // alloc buffer - U8 *buffer = push_array_no_zero(arena, U8, buffer_size); - U64 buffer_cursor = 0; - - // MS Symbol and Type Information p.4: - // "The first four bytes of the $$SYMBOLS segment is used as a signature to specify the version of - // the Symbol and Type OMF contained in the $$SYMBOLS segment." - CV_Signature *sig_ptr = (CV_Signature *) (buffer + buffer_cursor); - *sig_ptr = MODULE_SYMBOL_SIGNATURE; - buffer_cursor += sizeof(*sig_ptr); - - ProfBegin("Serialize Symbols"); - for (U64 i = 0; i < parsed_symbols.count; ++i) { - CV_SymbolList list = parsed_symbols.v[i]; - for (CV_SymbolNode *symbol_n = list.first; symbol_n != 0; symbol_n = symbol_n->next) { - symbol_n->data.offset = buffer_cursor; - buffer_cursor += cv_serialize_symbol_to_buffer(buffer, buffer_cursor, buffer_size, &symbol_n->data, PDB_SYMBOL_ALIGN); - } - } - ProfEnd(); - - // output - Assert(task->symbol_data_arr[obj_idx].total_size == 0); - str8_list_push(arena, &task->symbol_data_arr[obj_idx], str8(buffer, buffer_size)); - - ProfEnd(); -} - -internal LNK_ProcessedCodeViewC11Data -lnk_process_c11_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr) -{ - // TODO: handle c11 data - String8List *data_list_arr = push_array(arena->v[0], String8List, obj_count); - LNK_ProcessedCodeViewC11Data result; - result.data_list_arr = data_list_arr; - return result; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_process_c13_data_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena,1); - - U64 obj_idx = task_id; - LNK_ProcessC13DataTask *task = raw_task; - CV_DebugS debug_s = task->debug_s_arr[obj_idx]; - - // parse checksum data - String8List checksum_data = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FileChksms); - CV_ChecksumList checksum_list = cv_c13_parse_checksum_data_list(scratch.arena, checksum_data); - - // get strings sub-section - String8 string_data = cv_string_table_from_debug_s(debug_s); - - // collect source file names from checksum headers - String8List source_file_names_list = cv_c13_collect_source_file_names(arena, checksum_list, string_data); - - // relocate checksum data - cv_c13_patch_string_offsets_in_checksum_list(checksum_list, string_data, task->string_data_base_offset, task->string_ht); - - // get module sub-sections - PDB_DbiModule *mod = task->dbi_mod_arr[obj_idx]; - String8 mod_c13_data = dbi_module_read_c13_data(scratch.arena, task->msf, mod); - CV_DebugS mod_debug_s = cv_parse_debug_s_c13(scratch.arena, mod_c13_data); - - // relocate line and frame data - String8List *mod_checksum_data = cv_sub_section_ptr_from_debug_s(&mod_debug_s, CV_C13SubSectionKind_FileChksms); - U64 checksum_base = mod_checksum_data->total_size; - B32 is_checksum_patch_needed = checksum_base > 0; - if (is_checksum_patch_needed) { - String8List line_data = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); - String8List frame_data = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FrameData); - cv_c13_patch_checksum_offsets_in_line_data_list(line_data, checksum_base); - cv_c13_patch_checksum_offsets_in_frame_data_list(frame_data, checksum_base); - } - - // push obj c13 data to module - cv_debug_s_concat_in_place(&mod_debug_s, &debug_s); - - // serialize c13 data - B32 include_sig = 0; - String8List c13_data = cv_data_c13_from_debug_s(arena, &mod_debug_s, include_sig); - - // store for later pass - task->c13_data_arr[obj_idx] = c13_data; - task->source_file_names_list_arr[obj_idx] = source_file_names_list; - - scratch_end(scratch); - ProfEnd(); -} - -internal LNK_ProcessedCodeViewC13Data -lnk_process_c13_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr) -{ - ProfBeginFunction(); - - LNK_ProcessC13DataTask task = {0}; - task.debug_s_arr = debug_s_arr; - task.msf = msf; - task.dbi_mod_arr = mod_arr; - task.c13_data_arr = push_array_no_zero(arena->v[0], String8List, obj_count); - task.source_file_names_list_arr = push_array_no_zero(arena->v[0], String8List, obj_count); - task.string_data_base_offset = string_data_base_offset; - task.string_ht = string_ht; - tp_for_parallel(tp, arena, obj_count, lnk_process_c13_data_task, &task); - - // fill out result - LNK_ProcessedCodeViewC13Data result = {0}; - result.data_list_arr = task.c13_data_arr; - result.source_file_names_list_arr = task.source_file_names_list_arr; - - ProfEnd(); - return result; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_write_module_data_task) -{ - U64 obj_idx = task_id; - LNK_WriteModuleDataTask *task = raw_task; - - PDB_DbiModule *mod = task->mod_arr[obj_idx]; - String8List sym_data = task->symbol_data_arr[obj_idx]; - String8List c11_data = task->c11_data_list_arr[obj_idx]; - String8List c13_data = task->c13_data_list_arr[obj_idx]; - String8List globrefs = task->globrefs_arr[obj_idx]; - - U32 sym_data_size32 = safe_cast_u32(sym_data.total_size); - U32 c11_data_size32 = safe_cast_u32(c11_data.total_size); - U32 c13_data_size32 = safe_cast_u32(c13_data.total_size); - U32 globrefs_size32 = safe_cast_u32(globrefs.total_size); - - // layout module data - String8List module_data = {0}; - str8_list_concat_in_place(&module_data, &sym_data); - str8_list_concat_in_place(&module_data, &c11_data); - str8_list_concat_in_place(&module_data, &c13_data); - str8_list_concat_in_place(&module_data, &globrefs); - - // make stream has enough memory so it doens't trigger memory allocations in MSF - // during multi-thread write - MSF_UInt stream_pos = msf_stream_get_pos(task->msf, mod->sn); - if (stream_pos != 0) { - Assert(!"stream must be at start position"); - } - MSF_UInt stream_cap = msf_stream_get_cap(task->msf, mod->sn); - if (stream_cap < module_data.total_size) { - Assert(!"not enough bytes in destination stream to copy module data"); - } - - // write data - B32 is_write_ok = msf_stream_write_list(task->msf, mod->sn, module_data); - - // update module data sizes - if (is_write_ok) { - mod->sym_data_size = sym_data_size32; - mod->c11_data_size = c11_data_size32; - mod->c13_data_size = c13_data_size32; - mod->globrefs_size = globrefs_size32; - } else { - // TODO: error handle - } -} - -internal -THREAD_POOL_TASK_FUNC(lnk_cv_symbol_ptr_array_hasher) -{ - LNK_CvSymbolPtrArrayHasher *task = raw_task; - Rng1U64 range = task->range_arr[task_id]; - for (U64 symbol_idx = range.min; symbol_idx < range.max; ++symbol_idx) { - task->hash_arr[symbol_idx] = XXH3_64bits(task->arr[symbol_idx]->data.data.str, task->arr[symbol_idx]->data.data.size); - } -} - -internal U64 * -lnk_hash_cv_symbol_ptr_arr(TP_Context *tp, Arena *arena, CV_SymbolPtrArray arr) -{ - ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); - LNK_CvSymbolPtrArrayHasher task = {0}; - task.hash_arr = push_array_no_zero(arena, U64, arr.count); - task.arr = arr.v; - task.range_arr = tp_divide_work(scratch.arena, arr.count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, lnk_cv_symbol_ptr_array_hasher, &task); + LNK_BuildPdb *task = raw_task; + PDB_GsiContext *gsi = task->pdb->gsi; + PDB_PsiContext *psi = task->pdb->psi; + U32Array obj_indices = task->obj_indices[task_id]; + + ProfBegin("Global Symbols"); + { + VoidList global_symbols = {0}; + for EachInRange(i, task->cv->symbol_input_ranges[task_id]) { + LNK_SymbolInput symbols = task->cv->symbol_inputs[i]; + for (U64 cursor = 0, depth = 0; cursor + sizeof(CV_SymbolHeader) <= symbols.raw_symbols.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(symbols.raw_symbols, cursor, CV_SymbolAlign, &symbol), cursor); + + if (cv_is_global_symbol(symbol.kind) || (depth == 0 && cv_is_typedef(symbol.kind))) { + void *ptr = cv_ptr_from_symbol(symbol); + void_list_push(scratch.arena, &global_symbols, ptr); + } + + if (cv_is_scope_symbol(symbol.kind)) { + depth += 1; + } else if (cv_is_end_symbol(symbol.kind)) { + if (depth == 0) { Assert(0 && "malformed symbol stream"); break; } + depth -= 1; + } + } + } + + // collect global data and global typedefs + U64 global_symbol_count = tp_sum_u64(tp, task_id, global_symbols.count); + + U64 bucket_cap; + void **buckets; + if (task_id == 0) { + bucket_cap = global_symbol_count * 13 / 10; + buckets = push_array(scratch.arena, void *, bucket_cap); + } + tp_broadcast(&bucket_cap); + tp_broadcast(&buckets); + + // insert symbols into hash table + for EachNode(n, VoidNode, global_symbols.first) { + String8 raw = cv_raw_from_symbol(n->v); + U64 hash = u64_hash_from_str8(raw); + cv_symbol_deduper_insert_or_update(buckets, bucket_cap, hash, n->v); + } + barrier_wait(tp->barrier); + + U64 symbol_count = 0; + void **symbol_arr = 0; // [symbol_count] + Rng1U64 *symbol_ranges = 0; // [worker_count] + U32 *symbol_hashes = 0; // [symbol_count] + if (task_id == 0) { + ProfBeginV("Compact Buckets [bucket_cap %llu]", bucket_cap); + for EachIndex(src, bucket_cap) { + buckets[symbol_count] = buckets[src]; + symbol_count += buckets[src] != 0; + } + ProfEnd(); + + symbol_arr = buckets; + symbol_ranges = tp_divide_work(scratch.arena, symbol_count, tp->worker_count); + symbol_hashes = push_array_no_zero(scratch.arena, U32, symbol_count); + } + tp_broadcast(&symbol_count); + tp_broadcast(&symbol_arr); + tp_broadcast(&symbol_ranges); + tp_broadcast(&symbol_hashes); + + // hash symbols + Rng1U64 symbol_range = symbol_ranges[task_id]; + for EachInRange(i, symbol_range) { + CV_Symbol symbol = cv_symbol_from_ptr(symbol_arr[i]); + String8 name = cv_name_from_symbol(symbol.kind, symbol.data); + symbol_hashes[i] = gsi_hash(gsi, name); + } + barrier_wait(tp->barrier); + + // push global symbols + if (task_id == 0) { + CV_SymbolNode *nodes = push_array_no_zero(gsi->arena, CV_SymbolNode, symbol_count); + for EachIndex(i, symbol_count) { + CV_SymbolNode *n = &nodes[i]; + n->prev = n->next = 0; + n->data = cv_symbol_from_ptr(symbol_arr[i]); + n->data.offset = i; + gsi_push_(gsi, symbol_hashes[i], n); + } + } + } + ProfEnd(); + + ProfBegin("Proc Refs"); + { + U64 *proc_ref_sizes = 0; + U64 *proc_ref_counts = 0; + if (task_id == 0) { + proc_ref_sizes = push_array(scratch.arena, U64, tp->worker_count); + proc_ref_counts = push_array(scratch.arena, U64, tp->worker_count); + } + tp_broadcast(&proc_ref_sizes); + tp_broadcast(&proc_ref_counts); + + U64 proc_ref_size = 0; + U64 proc_ref_count = 0; + for EachIndex(i, obj_indices.count) { + U64 obj_idx = obj_indices.v[i]; + CV_DebugS debug_s = task->cv->debug_s_arr[obj_idx]; + String8List symbols = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Symbols); + for EachNode(n, String8Node, symbols.first) { + for (U64 cursor = 0; cursor + sizeof(CV_SymbolHeader) <= n->string.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(n->string, cursor, CV_SymbolAlign, &symbol), cursor); + + if (symbol.kind == CV_SymKind_GPROC32 || symbol.kind == CV_SymKind_LPROC32) { + String8 name = cv_name_from_symbol(symbol.kind, symbol.data); + proc_ref_size += AlignPow2(sizeof(CV_SymRef2) + name.size + 1, sizeof(void *)); + proc_ref_count += 1; + } + } + } + } + proc_ref_sizes[task_id] = proc_ref_size; + proc_ref_counts[task_id] = proc_ref_count; + barrier_wait(tp->barrier); + + U64 total_proc_ref_size = tp_sum_u64(tp, task_id, proc_ref_size); + U64 total_proc_ref_count = tp_sum_u64(tp, task_id, proc_ref_count); + + U64 *proc_ref_hashes = 0; + U64 *proc_ref_indices = 0; + Arena **proc_ref_arenas = 0; + CV_SymbolNode *proc_ref_nodes = 0; + if (task_id == 0) { + proc_ref_hashes = push_array(scratch.arena, U64, total_proc_ref_count); + proc_ref_indices = offsets_from_counts_array_u64(scratch.arena, proc_ref_counts, tp->worker_count); + proc_ref_arenas = alloc_arena_many(gsi->arena, tp->worker_count, proc_ref_sizes); + proc_ref_nodes = push_array(gsi->arena, CV_SymbolNode, total_proc_ref_count); + } + tp_broadcast(&proc_ref_hashes); + tp_broadcast(&proc_ref_indices); + tp_broadcast(&proc_ref_arenas); + tp_broadcast(&proc_ref_nodes); + + Arena *proc_ref_arena = proc_ref_arenas[task_id]; + U64 proc_ref_idx = proc_ref_indices[task_id]; + for EachIndex(i, obj_indices.count) { + U64 obj_idx = obj_indices.v[i]; + CV_DebugS debug_s = task->cv->debug_s_arr[obj_idx]; + String8List symbols = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Symbols); + CV_ModIndex imod = task->mod_arr[obj_idx]->imod; + U64 symbol_cursor = sizeof(CV_Signature); + U64 scope_depth = 0; + for EachNode(n, String8Node, symbols.first) { + for (U64 cursor = 0; cursor + sizeof(CV_SymbolHeader) <= n->string.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(n->string, cursor, CV_SymbolAlign, &symbol), cursor); + + if (symbol.kind == CV_SymKind_SKIP) { continue; } + else if (cv_is_global_symbol(symbol.kind)) { continue; } + else if (cv_is_typedef(symbol.kind) && scope_depth == 0) { continue; } + else if (symbol.kind == 0x1176) { continue; } + + if (cv_is_scope_symbol(symbol.kind)) { scope_depth += 1; } + else if (cv_is_end_symbol(symbol.kind)) { scope_depth -= 1; } + + if (symbol.kind == CV_SymKind_GPROC32 || symbol.kind == CV_SymKind_LPROC32) { + String8 name = cv_name_from_symbol(symbol.kind, symbol.data); + proc_ref_nodes [proc_ref_idx].data = cv_make_proc_ref(proc_ref_arena, imod, symbol_cursor, name, cv_is_lproc(symbol)); + proc_ref_nodes [proc_ref_idx].data.offset = symbol_cursor; + proc_ref_hashes[proc_ref_idx] = gsi_hash(gsi, name); + proc_ref_idx += 1; + } + + symbol_cursor += cv_write_symbol_buf(0, 0, &symbol, PDB_SYMBOL_ALIGN); + } + } + } + barrier_wait(tp->barrier); + + // push proc refs + if (task_id == 0) { + U64 total_proc_ref_count = sum_array_u64(tp->worker_count, proc_ref_counts); + for EachIndex(i, total_proc_ref_count) { gsi_push_(gsi, proc_ref_hashes[i], &proc_ref_nodes[i]); } + } + barrier_wait(tp->barrier); + } + ProfEnd(); + + ProfBegin("Public Symbols"); + { + U64 *public_symbol_sizes = 0; // [worker_count] + U64 *public_symbol_node_counts = 0; // [worker_count] + if (task_id == 0) { + public_symbol_sizes = push_array(scratch.arena, U64, tp->worker_count); + public_symbol_node_counts = push_array(scratch.arena, U64, tp->worker_count); + } + tp_broadcast(&public_symbol_sizes); + tp_broadcast(&public_symbol_node_counts); + + // compute buffer size for CV public symbols + LNK_SymbolHashTrieChunkList symbol_chunks = task->symtab->chunks[task_id]; + U64 public_symbol_size = 0; + U64 public_symbol_count = 0; + for EachNode(chunk, LNK_SymbolHashTrieChunk, symbol_chunks.first) { + for EachIndex(i, chunk->count) { + LNK_Symbol *symbol = chunk->v[i].symbol; + LNK_ObjSymbolRef symbol_ref = lnk_ref_from_symbol(symbol); + COFF_ParsedSymbol symbol_parsed = lnk_parsed_from_symbol(symbol); + + if (symbol_parsed.section_number == lnk_obj_get_removed_section_number(symbol_ref.obj)) { continue; } + COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); + if (symbol_interp != COFF_SymbolValueInterp_Regular) { continue; } + + public_symbol_size += AlignPow2(sizeof(CV_SymPub32) + symbol->name.size + 1, sizeof(void *)); + public_symbol_count += 1; + public_symbol_node_counts[task_id] += 1; + } + } + public_symbol_sizes [task_id] += public_symbol_size; + public_symbol_node_counts[task_id] += public_symbol_count; + barrier_wait(tp->barrier); + + Arena **public_symbol_arenas = 0; + Arena **public_symbol_node_arenas = 0; + CV_SymbolList *public_symbols = 0; // [worker_count] + U32 **public_symbol_hashes = 0; // [worker_count][public_symbol.count] + if (task_id == 0) { + U64 public_symbol_total_count = sum_array_u64(tp->worker_count, public_symbol_node_counts); + public_symbol_arenas = alloc_arena_many(psi->gsi->arena, tp->worker_count, public_symbol_sizes); + public_symbol_node_arenas = alloc_arena_array(psi->gsi->arena, tp->worker_count, public_symbol_node_counts, CV_SymbolNode); + public_symbols = push_array(scratch.arena, CV_SymbolList, tp->worker_count); + public_symbol_hashes = push_array(scratch.arena, U32 *, tp->worker_count); + } + tp_broadcast(&public_symbol_arenas); + tp_broadcast(&public_symbol_node_arenas); + tp_broadcast(&public_symbols); + tp_broadcast(&public_symbol_hashes); + + // make CV public symbols + Arena *public_symbol_arena = public_symbol_arenas [task_id]; + Arena *public_symbol_node_arena = public_symbol_node_arenas[task_id]; + CV_SymbolList *public_symbol_list = &public_symbols [task_id]; + for EachNode(chunk, LNK_SymbolHashTrieChunk, symbol_chunks.first) { + for EachIndex(i, chunk->count) { + LNK_Symbol *symbol = chunk->v[i].symbol; + LNK_ObjSymbolRef symbol_ref = lnk_ref_from_symbol(symbol); + COFF_ParsedSymbol symbol_parsed = lnk_parsed_from_symbol(symbol); + + // discard removed and non-section symbols + if (symbol_parsed.section_number == lnk_obj_get_removed_section_number(symbol_ref.obj)) { continue; } + COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); + if (symbol_interp != COFF_SymbolValueInterp_Regular) { continue; } + + CV_Pub32Flags flags = COFF_SymbolType_IsFunc(symbol_parsed.type) ? CV_Pub32Flag_Function : 0; + ISectOff sc = lnk_sc_from_symbol(symbol); + CV_Symbol pub_symbol = cv_make_pub32(public_symbol_arena, flags, safe_cast_u32(sc.off), safe_cast_u16(sc.isect), symbol->name); + cv_symbol_list_push(public_symbol_node_arena, public_symbol_list, pub_symbol); + } + } + barrier_wait(tp->barrier); + + // hash public symbols + { + U64 hash_idx = 0; + U32 *hashes = push_array(scratch.arena, U32, public_symbols[task_id].count); + for EachNode(n, CV_SymbolNode, public_symbols[task_id].first) { + String8 name = cv_name_from_symbol(n->data.kind, n->data.data); + hashes[hash_idx++] = gsi_hash(gsi, name); + } + public_symbol_hashes[task_id] = hashes; + } + barrier_wait(tp->barrier); + + // insert public symbols into PSI + if (task_id == 0) { + for EachIndex(i, tp->worker_count) { + U64 k = 0; + for (CV_SymbolNode *curr = public_symbols[i].first, *next = 0; curr != 0; curr = next, k += 1) { + next = curr->next; + curr->next = 0; + gsi_push_(psi->gsi, public_symbol_hashes[i][k], curr); + } + } + } + barrier_wait(tp->barrier); + } + ProfEnd(); + + scratch_end(scratch); +} + +internal U64 +lnk_write_debug_s_to_pdb_module(PDB_DbiModule *mod, CV_DebugS debug_s, String8Node *buf, U64 *buf_pos) +{ + U64 mod_cursor = 0; + + mod->sym_data_size = 0; + mod->c11_data_size = 0; + mod->c13_data_size = 0; + mod->globrefs_size = 0; + + String8List symbols = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Symbols); + + if (symbols.total_size) { + // signature + U64 sig_size = str8_buffer_write_u32(buf, buf_pos, CV_Signature_C13); + mod->sym_data_size += sig_size; + mod_cursor += sig_size; + + // write symbols + U64 scope_depth = 0; + for EachNode(n, String8Node, symbols.first) { + for (U64 cursor = 0; cursor + sizeof(CV_SymbolHeader) <= n->string.size; ) { + CV_Symbol symbol = {0}; + TryReadBreak(cv_read_symbol(n->string, cursor, CV_SymbolAlign, &symbol), cursor); + + if (symbol.kind == CV_SymKind_SKIP) { continue; } + else if (cv_is_global_symbol(symbol.kind)) { continue; } + else if (cv_is_typedef(symbol.kind) && scope_depth == 0) { continue; } + else if (symbol.kind == 0x1176) { continue; } + + if (cv_is_scope_symbol(symbol.kind)) { scope_depth += 1; } + else if (cv_is_end_symbol(symbol.kind)) { scope_depth -= 1; } + + U64 symbol_size = cv_write_symbol_buf(buf, buf_pos, &symbol, PDB_SYMBOL_ALIGN); + mod_cursor += symbol_size; + mod->sym_data_size += symbol_size; + } + } + } + + // write file checksums, inlinee lines etc. + CV_C13SubSectionKind mod_c13_layout[] = { + CV_C13SubSectionKind_FileChksms, + CV_C13SubSectionKind_FrameData, + CV_C13SubSectionKind_InlineeLines, + CV_C13SubSectionKind_CrossScopeImports, + CV_C13SubSectionKind_CrossScopeExports, + CV_C13SubSectionKind_IlLines, + CV_C13SubSectionKind_FuncMDTokenMap, + CV_C13SubSectionKind_TypeMDTokenMap, + CV_C13SubSectionKind_MergedAssemblyInput, + CV_C13SubSectionKind_CoffSymbolRVA, + CV_C13SubSectionKind_XfgHashType, + CV_C13SubSectionKind_XfgHashVirtual, + }; + for EachElement(i, mod_c13_layout) { + String8List data = cv_sub_section_from_debug_s(debug_s, mod_c13_layout[i]); + if (data.total_size == 0) { continue; } + U64 ss_size = 0; + ss_size += str8_buffer_write(buf, buf_pos, str8_struct((&(CV_C13SubSectionHeader ){ .kind = mod_c13_layout[i], .size = safe_cast_u32(data.total_size) }))); + ss_size += str8_buffer_write_string_list(buf, buf_pos, data); + ss_size += str8_buffer_write_zeroes(buf, buf_pos, AlignPadPow2(mod_cursor + ss_size, CV_C13SubSectionAlign)); + mod_cursor += ss_size; + mod->c13_data_size += ss_size; + } + + // write line tables + String8List lines = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); + for EachNode(n, String8Node, lines.first) { + if (n->string.size == 0) { continue; } + U64 ss_size = 0; + ss_size += str8_buffer_write(buf, buf_pos, str8_struct((&(CV_C13SubSectionHeader){ .kind = CV_C13SubSectionKind_Lines, .size = safe_cast_u32(n->string.size) }))); + ss_size += str8_buffer_write(buf, buf_pos, n->string); + ss_size += str8_buffer_write_zeroes(buf, buf_pos, AlignPadPow2(mod_cursor + ss_size, CV_C13SubSectionAlign)); + mod_cursor += ss_size; + mod->c13_data_size += ss_size; + } + + // write global refs + if (mod->sym_data_size) { + String8List globrefs = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_GlobalRefs); + mod->globrefs_size += str8_buffer_write_u32(buf, buf_pos, safe_cast_u32(globrefs.total_size)); + mod->globrefs_size += str8_buffer_write_string_list(buf, buf_pos, globrefs); + mod_cursor += mod->globrefs_size; + } + + return mod_cursor; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_write_pdb_modules) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNK_BuildPdb *task = raw_task; + U32Array obj_indices = task->obj_indices[task_id]; + + // compute sizes for module streams + for EachIndex(i, obj_indices.count) { + U64 obj_idx = obj_indices.v[i]; + lnk_write_debug_s_to_pdb_module(task->mod_arr[obj_idx], task->cv->debug_s_arr[obj_idx], 0, 0); + } + barrier_wait(tp->barrier); + + // alloc module streams + if (task_id == 0) { + for EachIndex(obj_idx, task->cv->obj_count) { + PDB_DbiModule *mod = task->mod_arr[obj_idx]; + U64 mod_size = mod->sym_data_size + mod->c11_data_size + mod->c13_data_size + mod->globrefs_size; + if (mod_size > 0) { + task->mod_arr[obj_idx]->sn = msf_stream_alloc_ex(task->pdb->msf, mod_size); + } + } + } + barrier_wait(tp->barrier); + + // write .debug$S to modules + for EachIndex(i, obj_indices.count) { + Temp temp = temp_begin(scratch.arena); + + U64 obj_idx = obj_indices.v[i]; + PDB_DbiModule *mod = task->mod_arr[obj_idx]; + + if (mod->sn == MSF_INVALID_STREAM_NUMBER) { continue; } + + CV_DebugS debug_s = task->cv->debug_s_arr[obj_idx]; + String8List mod_data = msf_data_from_sn(temp.arena, task->pdb->msf, mod->sn); + + if (mod_data.node_count) { + String8Node buf = *mod_data.first; + U64 pos = 0; + lnk_write_debug_s_to_pdb_module(mod, debug_s, &buf, &pos); + + // sub range symbol data pages and patch symbol tree offsets + if (mod->sym_data_size) { + Rng1U64 sym_data_range = r1u64(sizeof(CV_Signature), mod->sym_data_size); + String8List mod_symbols = str8_list_substr(temp.arena, mod_data, sym_data_range); + Assert(mod_symbols.total_size == dim_1u64(sym_data_range)); + cv_patch_symbol_tree_offsets(mod_symbols, sizeof(CV_Signature), PDB_SYMBOL_ALIGN); + } + } + + temp_end(temp); + } + barrier_wait(tp->barrier); + + { + // count strings in string tables + U64 *string_counts; + { + if (task_id == 0) { + string_counts = push_array(scratch.arena, U64, tp->worker_count); + } + tp_broadcast(&string_counts); + + for EachIndex(i, obj_indices.count) { + U64 obj_idx = obj_indices.v[i]; + CV_DebugS debug_s = task->cv->debug_s_arr[obj_idx]; + String8 string_table = cv_string_table_from_debug_s(debug_s); + U64 string_count = 0; + for (U64 cursor = 0; cursor < string_table.size; cursor += 1) { + if (string_table.str[cursor] == '\0') { + string_counts[task_id] += 1; + } + } + } + barrier_wait(tp->barrier); + } + + Arena **string_arenas = 0; + if (task_id == 0) { + string_arenas = alloc_arena_array(task->pdb->dbi->arena, tp->worker_count, string_counts, String8Node); + } + tp_broadcast(&string_arenas); + + for EachIndex(i, obj_indices.count) { + Temp temp = temp_begin(scratch.arena); + + U64 obj_idx = obj_indices.v[i]; + PDB_DbiModule *mod = task->mod_arr[obj_idx]; + + if (mod->sn == MSF_INVALID_STREAM_NUMBER) { continue; } + + String8List mod_data = msf_data_from_sn(temp.arena, task->pdb->msf, mod->sn); + Rng1U64 c13_data_range = r1u64(mod->sym_data_size + mod->c11_data_size, mod->sym_data_size + mod->c11_data_size + mod->c13_data_size); + String8List c13_data = str8_list_substr(temp.arena, mod_data, c13_data_range); + + CV_DebugS debug_s = task->cv->debug_s_arr[obj_idx]; + String8 string_table = cv_string_table_from_debug_s(debug_s); + + // checksum is always at the head of C13 data + String8List file_chksms_raw = {0}; + { + String8Node buf = *c13_data.first; + U64 buf_pos = 0; + + CV_C13SubSectionHeader header = {0}; + str8_buffer_read(&buf, &buf_pos, sizeof(header), &header); + + if (header.kind == CV_C13SubSectionKind_FileChksms) { + Rng1U64 file_chksms_range = r1u64(sizeof(CV_C13SubSectionHeader), sizeof(CV_C13SubSectionHeader) + header.size); + file_chksms_raw = str8_list_substr(temp.arena, c13_data, file_chksms_range); + } + } + + // fixup file name offsets in checksum headers + if (file_chksms_raw.total_size) { + String8Node buf = *file_chksms_raw.first; + U64 buf_pos = 0; + U64 cursor = 0; + for (;;) { + CV_C13Checksum header = {0}; + if (str8_buffer_peek(&buf, &buf_pos, sizeof(header), &header) != sizeof(header)) { break; } + + String8 name = str8_cstring_capped(string_table.str + header.name_off, string_table.str + string_table.size); + CV_StringBucket *bucket = cv_string_hash_table_lookup(task->string_ht, name); + U64 name_off = task->pdb->info->strtab.size + bucket->u.offset; + + // update name offset + { + String8Node buf_copy = buf; + U64 buf_pos_copy = buf_pos; + str8_buffer_skip(&buf_copy, &buf_pos_copy, OffsetOf(CV_C13Checksum, name_off)); + str8_buffer_write_u32(&buf_copy, &buf_pos_copy, safe_cast_u32(name_off)); + } + + str8_buffer_skip(&buf, &buf_pos, AlignPow2(sizeof(header) + header.len, CV_FileCheckSumsAlign)); + } + } + + // collect mod source files + String8List source_file_list = str8_split_by_string_chars(string_arenas[task_id], string_table, str8_lit("\0"), 0); + str8_list_concat_in_place(&mod->source_file_list, &source_file_list); + + temp_end(temp); + } + barrier_wait(tp->barrier); + } scratch_end(scratch); - ProfEnd(); - return task.hash_arr; } internal @@ -2939,43 +3062,47 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) // TODO: put back unused sc nodes // TODO: compute CRC for relocations - U64 obj_idx = task_id; - LNK_PushDbiSecContribTaskData *task = raw_task; - PDB_DbiModule *mod = task->mod_arr[obj_idx]; - LNK_Obj *obj = task->obj_arr[obj_idx]; + U64 obj_idx = task_id; + LNK_BuildPdb *task = raw_task; + PDB_DbiModule *mod = task->mod_arr [obj_idx]; + LNK_Obj *obj = task->cv->obj_arr[obj_idx]; - COFF_SectionHeader *obj_section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - PDB_DbiSectionContribNode *sc_arr = push_array_no_zero(arena, PDB_DbiSectionContribNode, obj->header.section_count_no_null); - U64 sc_count = 0; + PDB_DbiSectionContribNode *sc_arr = push_array_no_zero(arena, PDB_DbiSectionContribNode, obj->header.section_count_no_null); + U64 sc_count = 0; - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *obj_sect_header = &obj_section_table[sect_idx]; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, sect_idx); - if (obj_sect_header->flags & COFF_SectionFlag_LnkInfo) { continue; } - if (obj_sect_header->flags & COFF_SectionFlag_LnkRemove) { continue; } - if (obj_sect_header->flags & LNK_SECTION_FLAG_DEBUG) { continue; } + if (*section.flags & COFF_SectionFlag_LnkInfo) { continue; } + if (*section.flags & COFF_SectionFlag_LnkRemove) { continue; } + if (*section.flags & LNK_SECTION_FLAG_DEBUG) { continue; } + + String8 section_name = lnk_obj_section_name_from_sect_idx(obj, sect_idx); + if (str8_match(section_name, str8_lit(".pdata"), 0)) { continue; } U64 sect_number; String8 sect_data; U32 sect_off; U32 data_crc; - if (obj_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - if (obj_sect_header->vsize == 0) { - continue; - } - sect_number = rng_1u64_array_bsearch(task->image_section_virt_ranges, obj_sect_header->voff); + if (*section.flags & COFF_SectionFlag_CntUninitializedData) { + if (dim_1u64(section.vrange) == 0) { continue; } + + U64 search_result = rng1u64_array_num_from_value__binary_search(&task->image_section_virt_ranges, section.vrange.min); + sect_number = search_result-1; Assert(sect_number < task->image_section_virt_ranges.count); + sect_data = str8_zero(); - sect_off = obj_sect_header->voff - task->image_section_virt_ranges.v[sect_number].min; + sect_off = section.vrange.min - task->image_section_virt_ranges.v[sect_number].min; data_crc = 0; } else { - if (obj_sect_header->fsize == 0) { - continue; - } - sect_number = rng_1u64_array_bsearch(task->image_section_file_ranges, obj_sect_header->foff); + if (dim_1u64(section.frange) == 0) { continue; } + + U64 search_result = rng1u64_array_num_from_value__binary_search(&task->image_section_file_ranges, section.frange.min); + sect_number = search_result-1; Assert(sect_number < task->image_section_file_ranges.count); - sect_data = str8_substr(task->image_data, rng_1u64(obj_sect_header->foff, obj_sect_header->foff + obj_sect_header->fsize)); - sect_off = obj_sect_header->foff - task->image_section_file_ranges.v[sect_number].min; + + sect_data = str8_substr(task->image_data, section.frange); + sect_off = section.frange.min - task->image_section_file_ranges.v[sect_number].min; data_crc = update_crc32(0, sect_data.str, sect_data.size); } @@ -2984,8 +3111,8 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) sc->data.base.sec = (U16)sect_number; sc->data.base.pad0 = 0; sc->data.base.sec_off = sect_off; - sc->data.base.size = obj_sect_header->vsize; - sc->data.base.flags = obj_sect_header->flags; + sc->data.base.size = dim_1u64(section.vrange); + sc->data.base.flags = *section.flags; sc->data.base.mod = mod->imod; sc->data.base.pad1 = 0; sc->data.data_crc = 0; @@ -3005,321 +3132,142 @@ THREAD_POOL_TASK_FUNC(lnk_push_dbi_sec_contrib_task) } } -internal -THREAD_POOL_TASK_FUNC(lnk_build_pdb_public_symbols_defined_task) -{ - ProfBeginFunction(); - - LNK_BuildPublicSymbolsTask *task = raw_task; - for (LNK_SymbolHashTrieChunk *chunk = task->chunk_lists[task_id].first; chunk != 0; chunk = chunk->next) { - CV_SymbolNode *nodes = push_array_no_zero(arena, CV_SymbolNode, chunk->count); - U64 node_idx = 0; - for EachIndex(i, chunk->count) { - LNK_Symbol *symbol = chunk->v[i].symbol; - LNK_ObjSymbolRef symbol_ref = lnk_ref_from_symbol(symbol); - COFF_ParsedSymbol symbol_parsed = lnk_parsed_from_symbol(symbol); - - if (symbol_parsed.section_number == lnk_obj_get_removed_section_number(symbol_ref.obj)) { continue; } - - COFF_SymbolValueInterpType symbol_interp = coff_interp_from_parsed_symbol(symbol_parsed); - if (symbol_interp != COFF_SymbolValueInterp_Regular) { continue; } - - CV_Pub32Flags flags = 0; - if (COFF_SymbolType_IsFunc(symbol_parsed.type)) { flags |= CV_Pub32Flag_Function; } - - ISectOff sc = lnk_sc_from_symbol(symbol); - U16 symbol_isect16 = safe_cast_u16(sc.isect); - U32 symbol_off32 = safe_cast_u32(sc.off); - - nodes[node_idx].data = cv_make_pub32(arena, flags, symbol_off32, symbol_isect16, symbol->name); - cv_symbol_list_push_node(&task->pub_list_arr[task_id], &nodes[node_idx]); - node_idx += 1; - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_gsi_hash_cv_list_task) -{ - ProfBeginFunction(); - - LNK_BuildPublicSymbolsTask *task = raw_task; - Rng1U64 range = task->symbol_ranges[task_id]; - - for (U64 symbol_idx = range.min; symbol_idx < range.max; ++symbol_idx) { - CV_Symbol *symbol = &task->symbols.v[symbol_idx]->data; - String8 name = cv_name_from_symbol(symbol->kind, symbol->data); - task->hashes[symbol_idx] = gsi_hash(task->gsi, name); - } - - ProfEnd(); -} - -internal void -lnk_build_pdb_public_symbols(TP_Context *tp, - TP_Arena *arena, - LNK_SymbolTable *symtab, - PDB_PsiContext *psi) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Defined"); - LNK_BuildPublicSymbolsTask task = {0}; - task.pub_list_arr = push_array(scratch.arena, CV_SymbolList, tp->worker_count); - task.chunk_lists = symtab->chunks; - tp_for_parallel(tp, arena, tp->worker_count, lnk_build_pdb_public_symbols_defined_task, &task); - ProfEnd(); - - CV_SymbolPtrArray symbols = cv_symbol_ptr_array_from_list(scratch.arena, tp, tp->worker_count, task.pub_list_arr); - - ProfBegin("GSI Push"); - gsi_push_many_arr(tp, psi->gsi, symbols.count, symbols.v); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); -} - internal String8List -lnk_build_pdb(TP_Context *tp, - TP_Arena *tp_arena, - String8 image_data, - LNK_Config *config, - LNK_SymbolTable *symtab, - U64 obj_count, - LNK_Obj **obj_arr, - CV_DebugS *debug_s_arr, - U64 total_symbol_input_count, - LNK_CodeViewSymbolsInput *symbol_inputs, - CV_SymbolListArray *parsed_symbols, - CV_DebugT types[CV_TypeIndexSource_COUNT]) +lnk_build_pdb(TP_Context *tp, TP_Arena *tp_arena, String8 image_data, LNK_Config *config, LNK_SymbolTable *symtab, LNK_CodeViewInput *cv, LNK_MergedTypes cv_types, LNK_PDB_BuilderFlags builder_flags) { - ProfBegin("PDB"); + ProfBeginFunction(); Temp scratch = scratch_begin(tp_arena->v, tp_arena->count); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); - COFF_SectionHeader **image_section_table = coff_section_table_from_data(scratch.arena, image_data, pe.section_table_range); - U64 image_section_table_count = pe.section_count+1; - - ProfBegin("Setup PDB Context"); - PDB_Context *pdb = pdb_alloc(config->pdb_page_size, config->machine, config->time_stamp, config->age, config->guid); - ProfEnd(); - - // move patched type data - // - // leaf data is stored in g_file_arena which has linker's life-time - // and this way we skip redundant leaf copy to the type server to make things faster - pdb_type_server_push_parallel(tp, pdb->type_servers[CV_TypeIndexSource_IPI], types[CV_TypeIndexSource_IPI]); - pdb_type_server_push_parallel(tp, pdb->type_servers[CV_TypeIndexSource_TPI], types[CV_TypeIndexSource_TPI]); - - ProfBegin("Collect Symbols for GSI"); - CV_SymbolList *gsi_list_arr = push_array(scratch.arena, CV_SymbolList, obj_count); - { - LNK_ProcessSymDataTaskData task = {0}; - task.gsi_list_arr = gsi_list_arr; - task.parsed_symbols = parsed_symbols; - tp_for_parallel(tp, 0, obj_count, lnk_filter_out_gsi_symbols_task, &task); + if (builder_flags == LNK_PDB_BuilderFlag_All) { + builder_flags = ~0; } - ProfEnd(); - ProfBegin("Reserve DBI Modules"); - PDB_DbiModule **mod_arr = push_array(tp_arena->v[0], PDB_DbiModule *, obj_count); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - LNK_Obj *obj = obj_arr[obj_idx]; - mod_arr[obj_idx] = dbi_push_module(pdb->dbi, obj->path, lnk_obj_get_lib_path(obj)); + LNK_BuildPdb task = { + .image_data = image_data, + .symtab = symtab, + .cv = cv, + .pdb = pdb_alloc_(lnk_get_huge_arena(), config->pdb_page_size, config->machine, config->time_stamp, config->age, config->guid), + .mod_arr = push_array(scratch.arena, PDB_DbiModule *, cv->obj_count), + .pe = pe_bin_info_from_data(scratch.arena, image_data), + .image_section_table = coff_section_table_from_data(scratch.arena, image_data, task.pe.section_table_range), + .image_section_table_count = task.pe.section_count+1, + .image_section_virt_ranges.count = task.image_section_table_count, + .image_section_virt_ranges.v = push_array(scratch.arena, Rng1U64, task.image_section_table_count), + .image_section_file_ranges.v = push_array(scratch.arena, Rng1U64, task.image_section_table_count), + }; - // we don't support symbol append - Assert(mod_arr[obj_idx]->sn == MSF_INVALID_STREAM_NUMBER); - } - ProfEnd(); + // set min type indices + for EachElement(ti_source, cv_types.min_type_indices) { task.pdb->type_servers[ti_source]->ti_lo = cv_types.min_type_indices[ti_source]; } - ProfBegin("Build String Table"); - CV_StringHashTable string_ht = cv_dedup_string_tables(tp_arena, tp, obj_count, debug_s_arr); - cv_string_hash_table_assign_buffer_offsets(tp, string_ht); - U64 string_data_base_offset = pdb->info->strtab.size; - pdb_strtab_add_cv_string_hash_table(&pdb->info->strtab, string_ht); - ProfEnd(); - - ProfBegin("Build DBI Modules"); + // per worker obj indices { - TP_Temp temp = tp_temp_begin(tp_arena); + U64 objs_per_worker = CeilIntegerDiv(cv->obj_count, tp->worker_count); + task.obj_indices = push_array(scratch.arena, U32Array, tp->worker_count); + for EachIndex(i, tp->worker_count) { task.obj_indices[i].v = push_array(scratch.arena, U32, objs_per_worker); } + for EachIndex(obj_idx, cv->obj_count) { + U32Array *obj_indices = &task.obj_indices[obj_idx % tp->worker_count]; + obj_indices->v[obj_indices->count++] = obj_idx; + } + } + + // push types + if (builder_flags & LNK_PDB_BuilderFlag_Ipi) { + pdb_type_server_push_parallel(tp, task.pdb->type_servers[CV_TypeIndexSource_IPI], cv_types.count[CV_TypeIndexSource_IPI], cv_types.v[CV_TypeIndexSource_IPI]); + } + if (builder_flags & LNK_PDB_BuilderFlag_Tpi) { + pdb_type_server_push_parallel(tp, task.pdb->type_servers[CV_TypeIndexSource_TPI], cv_types.count[CV_TypeIndexSource_TPI], cv_types.v[CV_TypeIndexSource_TPI]); + } + + ProfBegin("Merge String Tables"); + task.string_ht = cv_dedup_string_tables(tp_arena, tp, cv->obj_count, cv->debug_s_arr); + cv_string_hash_table_assign_buffer_offsets(tp, task.string_ht); + ProfEnd(); + + if (builder_flags & LNK_PDB_BuilderFlag_Modules) { + ProfScope ("Alloc Modules") + for EachIndex(obj_idx, cv->obj_count) + task.mod_arr[obj_idx] = dbi_push_module(task.pdb->dbi, cv->obj_arr[obj_idx]->path, lnk_obj_get_lib_path(cv->obj_arr[obj_idx])); + + ProfScope("Move Global Symbols") + tp_for_parallel(tp, 0, tp->worker_count, lnk_move_global_symbols_to_gsi, &task); + + ProfScope("Build GSI and PSI") + pdb_build_gsi_psi(tp, task.pdb); + + ProfScope("Write Modules") + tp_for_parallel(tp, 0, tp->worker_count, lnk_write_pdb_modules, &task); + } + + ProfBegin("Add string tables"); + pdb_strtab_add_cv_string_hash_table(&task.pdb->info->strtab, task.string_ht); + ProfEnd(); + + if (builder_flags & LNK_PDB_BuilderFlag_SC) { + ProfBegin("Build Section Contrib Map"); { - ProfBegin("Reloc Module Data"); - - ProfBegin("Serialize Symbols"); - String8List *serialized_symbol_data = push_array(scratch.arena, String8List, obj_count); - { - LNK_ProcessSymDataTaskData task = {0}; - task.symbol_inputs = symbol_inputs; - task.parsed_symbols = parsed_symbols; - task.mod_arr = mod_arr; - task.symbol_data_arr = serialized_symbol_data; - tp_for_parallel(tp, tp_arena, obj_count, lnk_process_sym_data_task, &task); + ProfBegin("Build DBI Section Headers"); + for (U64 sect_idx = 1; sect_idx < task.image_section_table_count; sect_idx += 1) { + dbi_push_section(task.pdb->dbi, task.image_section_table[sect_idx]); } ProfEnd(); - LNK_ProcessedCodeViewC11Data processed_c11 = lnk_process_c11_data(tp, tp_arena, obj_count, debug_s_arr, string_data_base_offset, string_ht, pdb->msf, mod_arr); - LNK_ProcessedCodeViewC13Data processed_c13 = lnk_process_c13_data(tp, tp_arena, obj_count, debug_s_arr, string_data_base_offset, string_ht, pdb->msf, mod_arr); - - ProfEnd(); - - // TODO: actually collect offsets and pass them here - ProfBegin("Build Empty Global Reference Array"); - String8List *globrefs_arr = push_array(tp_arena->v[0], String8List, obj_count); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - String8List *globrefs = &globrefs_arr[obj_idx]; - str8_serial_begin(tp_arena->v[0], globrefs); - Assert(globrefs->total_size == 0); - str8_serial_push_u32(tp_arena->v[0], globrefs, globrefs->total_size); + for EachIndex(i, task.image_section_table_count) { + COFF_SectionHeader *sect_header = task.image_section_table[i]; + if (~sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + task.image_section_file_ranges.v[task.image_section_file_ranges.count++] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); + } + task.image_section_virt_ranges.v[i] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); } - ProfEnd(); - // reserve memory for module streams - ProfBegin("Reserve Modules Memory"); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - // compute number of bytes needed for module data - U64 mod_size = 0; - mod_size += serialized_symbol_data[obj_idx].total_size; - mod_size += processed_c11.data_list_arr[obj_idx].total_size; - mod_size += processed_c13.data_list_arr[obj_idx].total_size; - mod_size += globrefs_arr[obj_idx].total_size; - - U32 mod_size32 = safe_cast_u32(mod_size); - - // allocate stream for module - PDB_DbiModule *mod = mod_arr[obj_idx]; - mod->sn = msf_stream_alloc_ex(pdb->msf, mod_size32); - } - ProfEnd(); - - // copy data to module streams - ProfBegin("Write Modules Data"); - LNK_WriteModuleDataTask write_module_data_task_data; - write_module_data_task_data.msf = pdb->msf; - write_module_data_task_data.mod_arr = mod_arr; - write_module_data_task_data.symbol_data_arr = serialized_symbol_data; - write_module_data_task_data.c11_data_list_arr = processed_c11.data_list_arr; - write_module_data_task_data.c13_data_list_arr = processed_c13.data_list_arr; - write_module_data_task_data.globrefs_arr = globrefs_arr; - tp_for_parallel(tp, 0, obj_count, lnk_write_module_data_task, &write_module_data_task_data); - ProfEnd(); - - // push source files per module info - ProfBegin("Build Source Files List"); - for (U64 obj_idx = 0; obj_idx < obj_count; ++obj_idx) { - PDB_DbiModule *mod = mod_arr[obj_idx]; - String8List source_file_list_scratch = processed_c13.source_file_names_list_arr[obj_idx]; - String8List source_file_list = str8_list_copy(pdb->dbi->arena, &source_file_list_scratch); - str8_list_concat_in_place(&mod->source_file_list, &source_file_list); - } - ProfEnd(); + task.sc_list = push_array(scratch.arena, PDB_DbiSectionContribList, cv->obj_count); + tp_for_parallel(tp, tp_arena, cv->obj_count, lnk_push_dbi_sec_contrib_task, &task); + dbi_sec_list_concat_arr(&task.pdb->dbi->sec_contrib_list, cv->obj_count, task.sc_list); } - tp_temp_end(temp); + ProfEnd(); } - ProfEnd(); - ProfBegin("Make Proc Refs"); - { - LNK_ProcessSymDataTaskData task = {0}; - task.mod_arr = mod_arr; - task.gsi_list_arr = gsi_list_arr; - task.parsed_symbols = parsed_symbols; - tp_for_parallel(tp, tp_arena, obj_count, lnk_make_proc_refs_task, &task); - } - ProfEnd(); + if (builder_flags & LNK_PDB_BuilderFlag_NATVIS) { + ProfBegin("Build NatVis"); + { + String8Array natvis_file_path_arr = str8_array_from_list(scratch.arena, &config->natvis_list); + String8Array natvis_file_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, config->io_flags, natvis_file_path_arr); - ProfBegin("Push Global Symbols"); - { - CV_SymbolPtrArray global_symbols = cv_symbol_ptr_array_from_list(scratch.arena, tp, obj_count, gsi_list_arr); - cv_dedup_symbol_ptr_array(tp, &global_symbols); - gsi_push_many_arr(tp, pdb->gsi, global_symbols.count, global_symbols.v); - } - ProfEnd(); - - ProfBegin("Build DBI Section Headers"); - { - for (U64 sect_idx = 1; sect_idx < image_section_table_count; sect_idx += 1) { - dbi_push_section(pdb->dbi, image_section_table[sect_idx]); - } - } - ProfEnd(); + for EachIndex(i, natvis_file_data_arr.count) { + String8 natvis_file_path = natvis_file_path_arr.v[i]; + String8 natvis_file_data = natvis_file_data_arr.v[i]; - ProfBegin("Build Section Contrib Map"); - { + // did we read the file? + if (natvis_file_data.size == 0) { + lnk_error(LNK_Warning_FileNotFound, "unable to open natvis file \"%S\"", natvis_file_path); + continue; + } - Rng1U64Array image_section_file_ranges = {0}; - image_section_file_ranges.count = 0; - image_section_file_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); - Rng1U64Array image_section_virt_ranges = {0}; - image_section_virt_ranges.count = image_section_table_count; - image_section_virt_ranges.v = push_array(scratch.arena, Rng1U64, image_section_table_count); - for (U64 i = 0; i < image_section_table_count; i += 1) { - COFF_SectionHeader *sect_header = image_section_table[i]; - if (~sect_header->flags & COFF_SectionFlag_CntUninitializedData) { - image_section_file_ranges.v[image_section_file_ranges.count++] = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); - } - image_section_virt_ranges.v[i] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); - } + // sanity check file extension or VS wont load NatVis + String8 ext = str8_skip_last_dot(natvis_file_path); + if (!str8_match(ext, str8_lit("natvis"), StringMatchFlag_CaseInsensitive)) { + lnk_error(LNK_Warning_Natvis, "Visual Studio expects .natvis extension: \"%S\"", natvis_file_path); + } - LNK_PushDbiSecContribTaskData task = {0}; - task.obj_arr = obj_arr; - task.mod_arr = mod_arr; - task.sc_list = push_array(scratch.arena, PDB_DbiSectionContribList, obj_count); - task.image_data = image_data; - task.image_section_file_ranges = image_section_file_ranges; - task.image_section_virt_ranges = image_section_virt_ranges; - tp_for_parallel(tp, tp_arena, obj_count, lnk_push_dbi_sec_contrib_task, &task); - - dbi_sec_list_concat_arr(&pdb->dbi->sec_contrib_list, obj_count, task.sc_list); - } - ProfEnd(); - - ProfBegin("Build NatVis"); - { - String8Array natvis_file_path_arr = str8_array_from_list(scratch.arena, &config->natvis_list); - String8Array natvis_file_data_arr = lnk_read_data_from_file_path_parallel(tp, scratch.arena, config->io_flags, natvis_file_path_arr); - - for (U64 i = 0; i < natvis_file_data_arr.count; ++i) { - String8 natvis_file_path = natvis_file_path_arr.v[i]; - String8 natvis_file_data = natvis_file_data_arr.v[i]; - - // did we read the file? - if (natvis_file_data.size == 0) { - lnk_error(LNK_Warning_FileNotFound, "unable to open natvis file \"%S\"", natvis_file_path); - continue; - } - - // sanity check file extension or VS wont load NatVis - String8 ext = str8_skip_last_dot(natvis_file_path); - if (!str8_match(ext, str8_lit("natvis"), StringMatchFlag_CaseInsensitive)) { - lnk_error(LNK_Warning_Natvis, "Visual Studio expects .natvis extension: \"%S\"", natvis_file_path); - } - - // add natvis to PDB - PDB_SrcError error = pdb_add_src(pdb->info, pdb->msf, natvis_file_path, natvis_file_data, PDB_SrcComp_NULL); - if (error != PDB_SrcError_OK) { - lnk_error(LNK_Error_Natvis, "%S", pdb_string_from_src_error(error)); + // add natvis to PDB + PDB_SrcError error = pdb_add_src(task.pdb->info, task.pdb->msf, natvis_file_path, natvis_file_data, PDB_SrcComp_NULL); + if (error != PDB_SrcError_OK) { + lnk_error(LNK_Error_Natvis, "%S", pdb_string_from_src_error(error)); + } } } + ProfEnd(); } - ProfEnd(); - - lnk_build_pdb_public_symbols(tp, tp_arena, symtab, pdb->psi); - - pdb_build(tp, tp_arena, pdb, string_ht); - MSF_Error msf_err = msf_build(pdb->msf); + pdb_build(tp, tp_arena, task.pdb, task.string_ht, 0, cv->is_stripped); + + MSF_Error msf_err = msf_build(task.pdb->msf); if (msf_err != MSF_Error_OK) { lnk_error(LNK_Error_UnableToSerializeMsf, "unable to serialize MSF: %s", msf_error_to_string(msf_err)); } ProfBegin("Get Page Nodes"); - String8List page_data_list = msf_get_page_data_nodes(tp_arena->v[0], pdb->msf); + String8List page_data_list = msf_get_page_data_nodes(tp_arena->v[0], task.pdb->msf); ProfEnd(); - // NOTE: linker is about to exit so we can skip memory release // and let windows free memory since it does this faster @@ -3333,2257 +3281,3 @@ lnk_build_pdb(TP_Context *tp, ProfEnd(); return page_data_list; } - -internal U64 -lnk_udt_name_hash_table_hash(String8 string) -{ - return XXH3_64bits(string.str, string.size); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_build_udt_name_hash_table_task) -{ - LNK_BuildUDTNameHashTableTask *task = raw_task; - - LNK_UDTNameBucket *new_bucket = 0; - - for (U64 leaf_idx = task->ranges[task_id].min; leaf_idx < task->ranges[task_id].max; ++leaf_idx) { - CV_Leaf leaf = cv_debug_t_get_leaf(task->debug_t, leaf_idx); - if (cv_is_udt(leaf.kind)) { - CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); - if (~udt_info.props & CV_TypeProp_FwdRef) { - if (!cv_is_udt_name_anon(udt_info.name)) { - String8 name = cv_name_from_udt_info(udt_info); - U64 hash = lnk_udt_name_hash_table_hash(name); - U64 best_idx = hash % task->buckets_cap; - U64 bucket_idx = best_idx; - - if (new_bucket == 0) { - new_bucket = push_array(arena, LNK_UDTNameBucket, 1); - } - new_bucket->name = name; - new_bucket->leaf_idx = leaf_idx; - - B32 is_inserted_or_updated = 0; - do { - retry:; - LNK_UDTNameBucket *curr_bucket = task->buckets[bucket_idx]; - - if (curr_bucket == 0) { - LNK_UDTNameBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&task->buckets[bucket_idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - is_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } else if (str8_match(curr_bucket->name, name, 0)) { - // there is more than one UDT with identical name, pick most recent and ignore others - - if (leaf_idx < curr_bucket->leaf_idx) { - LNK_UDTNameBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&task->buckets[bucket_idx], new_bucket, curr_bucket); - if (compare_bucket == curr_bucket) { - is_inserted_or_updated = 1; - break; - } - } else { - // don't need to update, more recent leaf is in the bucket - break; - } - - // another thread took the bucket... - goto retry; - } - - // advance - bucket_idx = (bucket_idx + 1) % task->buckets_cap; - } while (bucket_idx != best_idx); - - if (is_inserted_or_updated) { - new_bucket = 0; - } - } - } - } - } -} - - -internal LNK_UDTNameBucket ** -lnk_udt_name_hash_table_from_debug_t(TP_Context *tp, - TP_Arena *arena, - CV_DebugT debug_t, - U64 *buckets_cap_out) -{ - Temp scratch = scratch_begin(&arena->v[0], 1); - LNK_BuildUDTNameHashTableTask task = {0}; - task.debug_t = debug_t; - task.buckets_cap = (U64)((F64)debug_t.count * 1.3); - task.buckets = push_array(arena->v[0], LNK_UDTNameBucket *, task.buckets_cap); - task.ranges = tp_divide_work(scratch.arena, debug_t.count, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, lnk_build_udt_name_hash_table_task, &task); - *buckets_cap_out = task.buckets_cap; - scratch_end(scratch); - return task.buckets; -} - -internal LNK_UDTNameBucket * -lnk_udt_name_hash_table_lookup(LNK_UDTNameBucket **buckets, U64 cap, String8 name) -{ - U64 hash = lnk_udt_name_hash_table_hash(name); - U64 best_idx = hash % cap; - U64 bucket_idx = best_idx; - do { - if (buckets[bucket_idx] == 0) { - break; - } - if (str8_match(buckets[bucket_idx]->name, name, 0)) { - return buckets[bucket_idx]; - } - bucket_idx = (bucket_idx + 1) % cap; - } while (bucket_idx != best_idx); - return 0; -} - -internal CV_TypeIndex -lnk_udt_name_hash_table_lookup_itype(LNK_UDTNameBucket **buckets, U64 cap, String8 name) -{ - LNK_UDTNameBucket *bucket = lnk_udt_name_hash_table_lookup(buckets, cap, name); - if (bucket != 0) { - return CV_MinComplexTypeIndex + bucket->leaf_idx; - } - return 0; -} - -internal RDIB_Type * -lnk_push_converted_codeview_type(Arena *arena, RDIB_TypeChunkList *list, RDIB_Type **itype_map, CV_TypeIndex itype) -{ - RDIB_Type *type = rdib_type_chunk_list_push(arena, list, 8196); - type->final_idx = 0; - type->itype = itype; - - Assert(itype_map[itype] == 0); - itype_map[itype] = type; - - return type; -} - -internal void -lnk_push_basic_itypes(Arena *arena, RDIB_DataModel data_model, RDIB_Type **itype_map, RDIB_TypeChunkList *rdib_types_list) -{ - RDI_TypeKind short_type = rdib_short_type_from_data_model(data_model); - RDI_TypeKind ushort_type = rdib_unsigned_short_type_from_data_model(data_model); - RDI_TypeKind int_type = rdib_int_type_from_data_model(data_model); - RDI_TypeKind uint_type = rdib_unsigned_int_type_from_data_model(data_model); - RDI_TypeKind long_type = rdib_long_type_from_data_model(data_model); - RDI_TypeKind ulong_type = rdib_unsigned_long_type_from_data_model(data_model); - RDI_TypeKind long_long_type = rdib_long_long_type_from_data_model(data_model); - RDI_TypeKind ulong_long_type = rdib_unsigned_long_long_type_from_data_model(data_model); - RDI_TypeKind ptr_type = rdib_pointer_size_t_type_from_data_model(data_model); - - struct { - char * name; - RDI_TypeKind kind_rdi; - CV_LeafKind kind_cv; - B32 make_pointer_near; - B32 make_pointer_32; - B32 make_pointer_64; - } table[] = { - { "void" , RDI_TypeKind_Void , CV_BasicType_VOID , 1, 1, 1 }, - { "HRESULT" , RDI_TypeKind_Handle , CV_BasicType_HRESULT , 0, 1, 1 }, - { "signed char" , RDI_TypeKind_Char8 , CV_BasicType_CHAR , 1, 1, 1 }, // TODO: we need Signed Char8 in RDI - { "short" , short_type , CV_BasicType_SHORT , 1, 1, 1 }, - { "long" , long_type , CV_BasicType_LONG , 1, 1, 1 }, - { "long long" , long_long_type , CV_BasicType_QUAD , 1, 1, 1 }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_OCT , 1, 1, 1 }, // GCC/Clang type - { "unsigned char" , RDI_TypeKind_UChar8 , CV_BasicType_UCHAR , 1, 1, 1 }, - { "unsigned short" , ushort_type , CV_BasicType_USHORT , 1, 1, 1 }, - { "unsigned long" , ulong_type , CV_BasicType_ULONG , 1, 1, 1 }, - { "unsigned long long" , ulong_long_type , CV_BasicType_UQUAD , 1, 1, 1 }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UOCT , 1, 1, 1 }, // GCC/Clang type - { "bool" , RDI_TypeKind_S8 , CV_BasicType_BOOL8 , 1, 1, 1 }, // TODO: we need a actual boolean type in RDI so we can format value as true/false. - { "__bool16" , RDI_TypeKind_S16 , CV_BasicType_BOOL16 , 1, 1, 1 }, // not real C type - { "__bool32" , RDI_TypeKind_S32 , CV_BasicType_BOOL32 , 1, 1, 1 }, // not real C type - { "float" , RDI_TypeKind_F32 , CV_BasicType_FLOAT32 , 1, 1, 1 }, - { "double" , RDI_TypeKind_F64 , CV_BasicType_FLOAT64 , 1, 1, 1 }, - { "long double" , RDI_TypeKind_F80 , CV_BasicType_FLOAT80 , 1, 1, 1 }, - { "__float128" , RDI_TypeKind_F128 , CV_BasicType_FLOAT128 , 1, 1, 1 }, // GCC/Clang type - { "__float48" , RDI_TypeKind_F48 , CV_BasicType_FLOAT48 , 1, 1, 1 }, // not real C type - { "__float32pp" , RDI_TypeKind_F32PP , CV_BasicType_FLOAT32PP , 1, 1, 1 }, // not real C type - { "_Complex float" , RDI_TypeKind_ComplexF32 , CV_BasicType_COMPLEX32 , 0, 0, 0 }, - { "_Complex double" , RDI_TypeKind_ComplexF64 , CV_BasicType_COMPLEX64 , 0, 0, 0 }, - { "_Complex long double" , RDI_TypeKind_ComplexF80 , CV_BasicType_COMPLEX80 , 0, 0, 0 }, - { "_Complex __float128" , RDI_TypeKind_ComplexF128, CV_BasicType_COMPLEX128 , 0, 0, 0 }, - { "__int8" , RDI_TypeKind_S8 , CV_BasicType_INT8 , 1, 1, 1 }, - { "__uint8" , RDI_TypeKind_U8 , CV_BasicType_UINT8 , 1, 1, 1 }, - { "__int16" , RDI_TypeKind_S16 , CV_BasicType_INT16 , 1, 1, 1 }, - { "__uint16" , RDI_TypeKind_U16 , CV_BasicType_UINT16 , 1, 1, 1 }, - { "int" , int_type , CV_BasicType_INT32 , 1, 1, 1 }, - { "unsigned int" , uint_type , CV_BasicType_UINT32 , 1, 1, 1 }, - { "__int64" , RDI_TypeKind_S64 , CV_BasicType_INT64 , 1, 1, 1 }, - { "__uint64" , RDI_TypeKind_U64 , CV_BasicType_UINT64 , 1, 1, 1 }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_INT128 , 1, 1, 1 }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UINT128 , 1, 1, 1 }, - { "char" , RDI_TypeKind_Char8 , CV_BasicType_RCHAR , 1, 1, 1 }, // always ASCII - { "wchar_t" , RDI_TypeKind_UChar16 , CV_BasicType_WCHAR , 1, 1, 1 }, // on windows always UTF-16 - { "char8_t" , RDI_TypeKind_Char8 , CV_BasicType_CHAR8 , 1, 1, 1 }, // always UTF-8 - { "char16_t" , RDI_TypeKind_Char16 , CV_BasicType_CHAR16 , 1, 1, 1 }, // always UTF-16 - { "char32_t" , RDI_TypeKind_Char32 , CV_BasicType_CHAR32 , 1, 1, 1 }, // always UTF-32 - { "__pointer" , ptr_type , CV_BasicType_PTR , 0, 0, 0 } - }; - - for (U64 i = 0; i < ArrayCount(table); ++i) { - U64 builtin_size; - if (table[i].kind_rdi == RDI_TypeKind_Void || table[i].kind_rdi == RDI_TypeKind_Handle) { - builtin_size = rdi_size_from_basic_type_kind(ptr_type); - } else { - builtin_size = rdi_size_from_basic_type_kind(table[i].kind_rdi); - } - - RDIB_Type *builtin = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv); - builtin->kind = table[i].kind_rdi; - builtin->builtin.name = str8_cstring(table[i].name); - builtin->builtin.size = builtin_size; - - RDIB_Type **wrapper = push_array(arena, RDIB_Type *, 1); - *wrapper = builtin; - - if (table[i].make_pointer_near) { - RDIB_Type *ptr_near = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x100); - ptr_near->kind = RDI_TypeKind_Ptr; - ptr_near->ptr.size = rdi_size_from_basic_type_kind(ptr_type); - ptr_near->ptr.type_ref = wrapper; - } - if (table[i].make_pointer_32) { - RDIB_Type *ptr_32 = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x400); - ptr_32->kind = RDI_TypeKind_Ptr; - ptr_32->ptr.size = 4; - ptr_32->ptr.type_ref = wrapper; - } - if (table[i].make_pointer_64) { - RDIB_Type *ptr_64 = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x600); - ptr_64->kind = RDI_TypeKind_Ptr; - ptr_64->ptr.size = 8; - ptr_64->ptr.type_ref = wrapper; - } - -#if 0 - RDIB_Type *ptr_far = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x200); - RDIB_Type *ptr_huge = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x300); - RDIB_Type *ptr_16_32 = lnk_push_converted_codeview_type(arena, rdib_types_list, itype_map, table[i].kind_cv | 0x500); - - ptr_far->kind = RDI_TypeKind_Ptr; - ptr_far->ptr.size = rdi_size_from_basic_type_kind(ptr_type); - ptr_far->ptr.type_ref = wrapper; - - ptr_huge->kind = RDI_TypeKind_Ptr; - ptr_huge->ptr.size = 4; - ptr_huge->ptr.type_ref = wrapper; - - - ptr_16_32->kind = RDI_TypeKind_Ptr; - ptr_16_32->ptr.size = 6; - ptr_16_32->ptr.type_ref = wrapper; -#endif - } -} - -internal RDIB_TypeRef -lnk_rdib_type_from_itype(LNK_ConvertTypesToRDI *task, CV_TypeIndex itype) -{ - RDIB_TypeRef result = &task->tpi_itype_map[0]; - Rng1U64 tpi_range = task->itype_ranges[CV_TypeIndexSource_TPI]; - - if (itype < tpi_range.min) { - // check for supported CodeView pointer formats: - AssertAlways(BitExtract(itype, 8, 8) == /* near */ 0x1 || - BitExtract(itype, 8, 8) == /* 32 bit */ 0x4 || - BitExtract(itype, 8, 8) == /* 64 bit */ 0x6 || - BitExtract(itype, 8, 8) == /* regular */ 0x0); - } - - if (itype < tpi_range.max) { - CV_TypeIndex final_itype = itype; - - // try to resovle forward reference (defn might be missing) - if (itype >= tpi_range.min) { - U64 leaf_idx = itype - tpi_range.min; - CV_Leaf leaf = cv_debug_t_get_leaf(task->types[CV_TypeIndexSource_TPI], leaf_idx); - if (cv_is_udt(leaf.kind)) { - CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); - if (udt_info.props & CV_TypeProp_FwdRef) { - String8 name = cv_name_from_udt_info(udt_info); - CV_TypeIndex resolved_itype = lnk_udt_name_hash_table_lookup_itype(task->udt_name_buckets, task->udt_name_bucket_cap, name); - if (resolved_itype != 0) { - final_itype = resolved_itype; - } - } - } - } - - result = &task->tpi_itype_map[final_itype]; - } - - return result; -} - -internal RDI_MemberKind -lnk_rdib_method_kind_from_cv_prop(CV_MethodProp prop) -{ - switch (prop) { - case CV_MethodProp_Vanilla: return RDI_MemberKind_Method; - case CV_MethodProp_Virtual: return RDI_MemberKind_VirtualMethod; - case CV_MethodProp_Static: return RDI_MemberKind_StaticMethod; - case CV_MethodProp_Friend: NotImplemented; - case CV_MethodProp_Intro: return RDI_MemberKind_VirtualMethod; - case CV_MethodProp_PureVirtual: return RDI_MemberKind_VirtualMethod; - case CV_MethodProp_PureIntro: return RDI_MemberKind_VirtualMethod; - } - return RDI_MemberKind_NULL; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_convert_types_to_rdi_task) -{ - ProfBeginFunction(); - LNK_ConvertTypesToRDI *task = raw_task; - - // upfront push output type array - U64 leaf_count = dim_1u64(task->ranges[task_id]); - rdib_type_chunk_list_reserve(arena, &task->rdib_types_lists[task_id], leaf_count); - - for(U64 leaf_idx = task->ranges[task_id].min; leaf_idx < task->ranges[task_id].max; ++leaf_idx) { - U64 itype = task->itype_ranges[CV_TypeIndexSource_TPI].min + leaf_idx; - CV_Leaf src = cv_debug_t_get_leaf(task->types[CV_TypeIndexSource_TPI], leaf_idx); - - switch (src.kind) { - case CV_LeafKind_MODIFIER: { - CV_LeafModifier *modifier = (CV_LeafModifier *) src.data.str; - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKind_Modifier; - dst->modifier.flags = rdi_type_modifier_flags_from_cv_modifier_flags(modifier->flags); - dst->modifier.type_ref = lnk_rdib_type_from_itype(task, modifier->itype); - } break; - case CV_LeafKind_POINTER: { - CV_LeafPointer *ptr = (CV_LeafPointer *) src.data.str; - CV_PointerKind ptr_kind = CV_PointerAttribs_Extract_Kind(ptr->attribs); - CV_PointerMode ptr_mode = CV_PointerAttribs_Extract_Mode(ptr->attribs); - U32 ptr_size = CV_PointerAttribs_Extract_Size(ptr->attribs); - (void)ptr_kind; - - // parse ahead type chain and squash modifiers - RDI_TypeModifierFlags modifier_flags = rdi_type_modifier_flags_from_cv_pointer_attribs(ptr->attribs); - CV_TypeIndex next_itype; - for (next_itype = ptr->itype; task->itype_ranges[CV_TypeIndexSource_TPI].min <= next_itype && next_itype < task->itype_ranges[CV_TypeIndexSource_TPI].max;) { - U64 next_leaf_idx = next_itype - task->itype_ranges[CV_TypeIndexSource_TPI].min; - CV_Leaf next_leaf = cv_debug_t_get_leaf(task->types[CV_TypeIndexSource_TPI], next_leaf_idx); - if (next_leaf.kind != CV_LeafKind_MODIFIER) { - break; - } - - // parse LF_MODIFIER - CV_LeafModifier *sym_modifier = (CV_LeafModifier *) next_leaf.data.str; - RDI_TypeModifierFlags flags = rdi_type_modifier_flags_from_cv_modifier_flags(sym_modifier->flags); - - // accumulate modifier flags - modifier_flags |= flags; - - // advance - next_itype = sym_modifier->itype; - } - - if (modifier_flags == 0) { - // No modifer just generate pointer type. - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = rdi_type_kind_from_pointer(ptr->attribs, ptr_mode); - dst->ptr.size = ptr_size; - dst->ptr.type_ref = lnk_rdib_type_from_itype(task, ptr->itype); - } else { - // CodeView embeds modifier in pointer struct, we don't have an equivalent - // so generate a modifier type in pointer slot and link with pointer type. - - RDIB_Type *ptr_type = rdib_type_chunk_list_push(arena, &task->rdib_types_lists[task_id], task->type_cap); - ptr_type->kind = rdi_type_kind_from_pointer(ptr->attribs, ptr_mode); - ptr_type->ptr.type_ref = lnk_rdib_type_from_itype(task, next_itype); - RDIB_Type **indirect_ptr_type = push_array(arena, RDIB_Type *, 1); - *indirect_ptr_type = ptr_type; - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKind_Modifier; - dst->modifier.flags = modifier_flags; - dst->modifier.type_ref = indirect_ptr_type; - } - } break; - case CV_LeafKind_PROCEDURE: { - CV_LeafProcedure *proc = (CV_LeafProcedure *) src.data.str; - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKind_Function; - dst->func.return_type = lnk_rdib_type_from_itype(task, proc->ret_itype); - dst->func.params_type = lnk_rdib_type_from_itype(task, proc->arg_itype); - } break; - case CV_LeafKind_MFUNCTION: { - CV_LeafMFunction *mfunc = (CV_LeafMFunction *) src.data.str; - B32 is_static_method = mfunc->this_itype == 0; - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - - if (is_static_method) { - dst->kind = RDI_TypeKindExt_StaticMethod; - dst->static_method.class_type = lnk_rdib_type_from_itype(task, mfunc->class_itype); - dst->static_method.return_type = lnk_rdib_type_from_itype(task, mfunc->ret_itype); - dst->static_method.params_type = lnk_rdib_type_from_itype(task, mfunc->arg_itype); - } else { - dst->kind = RDI_TypeKind_Method; - dst->method.class_type = lnk_rdib_type_from_itype(task, mfunc->class_itype); - dst->method.this_type = lnk_rdib_type_from_itype(task, mfunc->this_itype); - dst->method.return_type = lnk_rdib_type_from_itype(task, mfunc->ret_itype); - dst->method.params_type = lnk_rdib_type_from_itype(task, mfunc->arg_itype); - } - } break; - case CV_LeafKind_BITFIELD: { - CV_LeafBitField *bitfield = (CV_LeafBitField *) src.data.str; - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKind_Bitfield; - dst->bitfield.off = bitfield->pos; - dst->bitfield.count = bitfield->len; - dst->bitfield.value_type = lnk_rdib_type_from_itype(task, bitfield->itype); - } break; - case CV_LeafKind_ARRAY: { - CV_LeafArray *array = (CV_LeafArray *) src.data.str; - CV_NumericParsed size = cv_numeric_from_data_range(src.data.str + sizeof(CV_LeafArray), src.data.str + src.data.size); - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKind_Array; - dst->array.entry_type = lnk_rdib_type_from_itype(task, array->entry_itype); - dst->array.size = cv_u64_from_numeric(&size); - } break; - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: { - CV_LeafStruct *udt = (CV_LeafStruct *) src.data.str; - CV_NumericParsed size = cv_numeric_from_data_range(src.data.str + sizeof(CV_LeafStruct), src.data.str + src.data.size); - - String8 name; - String8 link_name; - if (udt->props & CV_TypeProp_HasUniqueName) { - name = str8_cstring_capped(src.data.str + sizeof(CV_LeafStruct) + size.encoded_size, src.data.str + src.data.size); - link_name = str8_cstring_capped_reverse(name.str + name.size + 1, src.data.str + src.data.size); - } else { - name = str8_cstring_capped_reverse(src.data.str + sizeof(CV_LeafStruct) + size.encoded_size, src.data.str + src.data.size); - link_name = name; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_struct_lists[task_id], task->tpi_itype_map, itype); - dst->udt.name = name; - dst->udt.link_name = link_name; - dst->udt.members = lnk_rdib_type_from_itype(task, udt->field_itype); - dst->udt.struct_type.size = cv_u64_from_numeric(&size); - dst->udt.struct_type.derived = lnk_rdib_type_from_itype(task, udt->derived_itype); - dst->udt.struct_type.vtshape = lnk_rdib_type_from_itype(task, udt->vshape_itype); - - if (udt->props & CV_TypeProp_FwdRef) { - dst->kind = src.kind == CV_LeafKind_CLASS ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct; - } else { - dst->kind = src.kind == CV_LeafKind_CLASS ? RDI_TypeKind_Class : RDI_TypeKind_Struct; - } - } break; - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: { - CV_LeafStruct2 *udt = (CV_LeafStruct2 *) src.data.str; - CV_NumericParsed size = cv_numeric_from_data_range(src.data.str + sizeof(CV_LeafStruct2), src.data.str + src.data.size); - - String8 name; - String8 link_name; - if (udt->props & CV_TypeProp_HasUniqueName) { - name = str8_cstring_capped(src.data.str + sizeof(CV_LeafStruct2) + size.encoded_size, src.data.str + src.data.size); - link_name = str8_cstring_capped_reverse(name.str + name.size + 1, src.data.str + src.data.size); - } else { - name = str8_cstring_capped_reverse(src.data.str + sizeof(CV_LeafStruct2) + size.encoded_size, src.data.str + src.data.size); - link_name = name; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_struct_lists[task_id], task->tpi_itype_map, itype); - dst->udt.name = name; - dst->udt.link_name = link_name; - dst->udt.members = lnk_rdib_type_from_itype(task, udt->field_itype); - dst->udt.struct_type.size = cv_u64_from_numeric(&size); - dst->udt.struct_type.derived = lnk_rdib_type_from_itype(task, udt->derived_itype); - dst->udt.struct_type.vtshape = lnk_rdib_type_from_itype(task, udt->vshape_itype); - - if (udt->props & CV_TypeProp_FwdRef) { - dst->kind = src.kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct; - } else { - dst->kind = src.kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_Class : RDI_TypeKind_Struct; - } - } break; - case CV_LeafKind_UNION: { - CV_LeafUnion *udt = (CV_LeafUnion *) src.data.str; - CV_NumericParsed size = cv_numeric_from_data_range(src.data.str + sizeof(CV_LeafUnion), src.data.str + src.data.size); - - String8 name; - String8 link_name; - if (udt->props & CV_TypeProp_HasUniqueName) { - name = str8_cstring_capped(src.data.str + sizeof(CV_LeafUnion) + size.encoded_size, src.data.str + src.data.size); - link_name = str8_cstring_capped_reverse(name.str + name.size + 1, src.data.str + src.data.size); - } else { - name = str8_cstring_capped_reverse(src.data.str + sizeof(CV_LeafUnion) + size.encoded_size, src.data.str + src.data.size); - link_name = name; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_union_lists[task_id], task->tpi_itype_map, itype); - dst->udt.name = name; - dst->udt.link_name = link_name; - dst->udt.members = lnk_rdib_type_from_itype(task, udt->field_itype); - dst->udt.union_type.size = cv_u64_from_numeric(&size); - - if (udt->props & CV_TypeProp_FwdRef) { - dst->kind = RDI_TypeKind_IncompleteUnion; - } else { - dst->kind = RDI_TypeKind_Union; - } - } break; - case CV_LeafKind_ENUM: { - CV_LeafEnum *udt = (CV_LeafEnum *) src.data.str; - - String8 name; - String8 link_name; - if (udt->props & CV_TypeProp_HasUniqueName) { - name = str8_cstring_capped(src.data.str + sizeof(*udt), src.data.str + src.data.size); - link_name = str8_cstring_capped_reverse(name.str + name.size + 1, src.data.str + src.data.size); - } else { - name = str8_cstring_capped_reverse(src.data.str + sizeof(*udt), src.data.str + src.data.size); - link_name = name; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_enum_lists[task_id], task->tpi_itype_map, itype); - dst->kind = (RDI_TypeKindExt)RDI_TypeKind_Enum; - dst->udt.name = name; - dst->udt.link_name = link_name; - dst->udt.members = lnk_rdib_type_from_itype(task, udt->field_itype); - dst->udt.enum_type.base_type = lnk_rdib_type_from_itype(task, udt->base_itype); - - if (udt->props & CV_TypeProp_FwdRef) { - dst->kind = RDI_TypeKind_IncompleteEnum; - } else { - dst->kind = (RDI_TypeKindExt)RDI_TypeKind_Enum; - } - } break; - case CV_LeafKind_ARGLIST: { - CV_LeafArgList *arglist = (CV_LeafArgList *) src.data.str; - CV_TypeIndex *itypes = (CV_TypeIndex *) (arglist + 1); - - if (arglist->count * sizeof(CV_TypeIndex) + sizeof(CV_LeafArgList) > src.data.size) { - AssertAlways("error: ill-formed LF_ARGLIST"); - break; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_params_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKindExt_Params; // there is no Params kind in RDI - dst->params.count = arglist->count; - dst->params.types = push_array(arena, RDIB_TypeRef, arglist->count); - for (U64 param_idx = 0; param_idx < arglist->count; ++param_idx) { - // strange way to encode variadic params, when outside LF_ARGLIST LF_NOTYPE actually means null... - if (itypes[param_idx] == CV_LeafKind_NOTYPE) { - dst->params.types[param_idx] = task->variadic_type_ref; - } else { - dst->params.types[param_idx] = lnk_rdib_type_from_itype(task, itypes[param_idx]); - } - } - } break; - case CV_LeafKind_FIELDLIST: { - RDIB_UDTMemberChunkList *rdib_member_list; - RDIB_TypeChunkList *rdib_member_types; - B32 is_enum = sizeof(CV_LeafKind) <= src.data.size && (*(CV_LeafKind *)src.data.str == CV_LeafKind_ENUMERATE); - if (is_enum) { - rdib_member_list = &task->rdib_enum_members_lists[worker_id]; - rdib_member_types = &task->rdib_types_enum_members_lists[worker_id]; - } else { - rdib_member_list = &task->rdib_udt_members_lists[worker_id]; - rdib_member_types = &task->rdib_types_udt_members_lists[worker_id]; - } - - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, rdib_member_types, task->tpi_itype_map, itype); - dst->kind = RDI_TypeKindExt_Members; - - for (U64 cursor = 0; cursor + sizeof(CV_LeafKind) <= src.data.size; ) { - CV_LeafKind field_kind = *(CV_LeafKind *) (src.data.str + cursor); - cursor += sizeof(field_kind); - - // do we have bytes to read? - U64 header_size = cv_header_struct_size_from_leaf_kind(field_kind); - if (cursor + header_size > src.data.size) { - break; - } - - switch (field_kind) { - case CV_LeafKind_INDEX: { - CV_LeafIndex *index = (CV_LeafIndex *) (src.data.str + cursor); - cursor += sizeof(*index); - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB member list pointer - member->kind = RDI_MemberKindExt_MemberListPointer; - member->member_list_pointer = lnk_rdib_type_from_itype(task, index->itype); - } break; - case CV_LeafKind_MEMBER: { - // prase CodeView struct/class/union data member - CV_LeafMember *leaf_member = (CV_LeafMember *) (src.data.str + cursor); - CV_NumericParsed offset = cv_numeric_from_data_range((U8 *)(leaf_member + 1), src.data.str + src.data.size); - String8 name = str8_cstring_capped(src.data.str + cursor + sizeof(CV_LeafMember) + offset.encoded_size, src.data.str + src.data.size); - cursor += sizeof(CV_LeafMember); - cursor += offset.encoded_size; - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB data member - member->kind = RDI_MemberKind_DataField; - member->data_field.name = name; - member->data_field.type_ref = lnk_rdib_type_from_itype(task, leaf_member->itype); - member->data_field.offset = cv_u64_from_numeric(&offset); - } break; - case CV_LeafKind_STMEMBER: { - // parse CodeView static member - CV_LeafStMember *st_member = (CV_LeafStMember *) (src.data.str + cursor); - String8 name = str8_cstring_capped(st_member + 1, src.data.str + src.data.size); - cursor += sizeof(CV_LeafStMember); - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB static member - member->kind = RDI_MemberKind_StaticData; - member->static_data.name = name; - member->static_data.type_ref = lnk_rdib_type_from_itype(task, st_member->itype); - } break; - case CV_LeafKind_METHOD: { - // parse CodeView over-loaded method - CV_LeafMethod *method = (CV_LeafMethod *) (src.data.str + cursor); - String8 name = str8_cstring_capped(method + 1, src.data.str + src.data.size); - cursor += sizeof(CV_LeafMethod); - cursor += name.size + 1; - - if (contains_1u64(task->itype_ranges[CV_TypeIndexSource_TPI], method->list_itype)) { - U64 method_list_leaf_idx = method->list_itype - task->itype_ranges[CV_TypeIndexSource_TPI].min; - CV_Leaf method_list_leaf = cv_debug_t_get_leaf(task->types[CV_TypeIndexSource_TPI], method_list_leaf_idx); - if (method_list_leaf.kind == CV_LeafKind_METHODLIST) { - for (U64 cursor = 0; cursor + sizeof(CV_LeafMethodListMember) <= method_list_leaf.data.size; ) { - // parse CodeView method overload info - CV_LeafMethodListMember *list_member = (CV_LeafMethodListMember *) (method_list_leaf.data.str + cursor); - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(list_member->attribs); - cursor += sizeof(CV_LeafMethodListMember); - U32 vftable_offset = 0; - if (prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) { - str8_deserial_read_struct(src.data, cursor, &vftable_offset); - cursor += sizeof(vftable_offset); - } - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB method - member->kind = RDI_MemberKind_Method; - member->method.kind = lnk_rdib_method_kind_from_cv_prop(prop); - member->method.name = name; - member->method.type_ref = lnk_rdib_type_from_itype(task, list_member->itype); - member->method.vftable_offset = vftable_offset; - } - } else { - Assert(!"error: expected LF_METHODLIST"); - } - } - } break; - case CV_LeafKind_ONEMETHOD: { - // parse CodeView method - CV_LeafOneMethod *one_method = (CV_LeafOneMethod *) (src.data.str + cursor); - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(one_method->attribs); - cursor += sizeof(CV_LeafOneMethod); - U32 vftable_offset = 0; - if (prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) { - str8_deserial_read_struct(src.data, cursor, &vftable_offset); - cursor += sizeof(vftable_offset); - } - String8 name = str8_cstring_capped(src.data.str + cursor, src.data.str + src.data.size); - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB member - member->kind = RDI_MemberKind_Method; - member->method.kind = lnk_rdib_method_kind_from_cv_prop(prop); - member->method.name = name; - member->method.type_ref = lnk_rdib_type_from_itype(task, one_method->itype); - member->method.vftable_offset = vftable_offset; - } break; - case CV_LeafKind_NESTTYPE: { - // parse CodeView nested type - CV_LeafNestType *nest_type = (CV_LeafNestType *) (src.data.str + cursor); - String8 name = str8_cstring_capped(nest_type + 1, src.data.str + src.data.size); - cursor += sizeof(CV_LeafNestType); - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB nested type member - member->kind = RDI_MemberKind_NestedType; - member->nested_type.name = name; - member->nested_type.type_ref = lnk_rdib_type_from_itype(task, nest_type->itype); - } break; - case CV_LeafKind_NESTTYPEEX: { - // parse CodeView nested type extended - CV_LeafNestTypeEx *nest_type_ex = (CV_LeafNestTypeEx *) (src.data.str + cursor); - String8 name = str8_cstring_capped(nest_type_ex + 1, src.data.str + src.data.size); - cursor += sizeof(CV_LeafNestTypeEx); - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB nested type member - member->kind = RDI_MemberKind_NestedType; - member->nested_type.name = name; - member->nested_type.type_ref = lnk_rdib_type_from_itype(task, nest_type_ex->itype); - } break; - case CV_LeafKind_BCLASS: { - // parse CodeView base class member - CV_LeafBClass *bclass = (CV_LeafBClass *) (src.data.str + cursor); - CV_NumericParsed offset = cv_numeric_from_data_range((U8 *)(bclass + 1), src.data.str + src.data.size); - cursor += sizeof(CV_LeafBClass); - cursor += offset.encoded_size; - - U64 offset64 = cv_u64_from_numeric(&offset); - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB base class member - member->kind = RDI_MemberKind_Base; - member->base_class.type_ref = lnk_rdib_type_from_itype(task, bclass->itype); - member->base_class.offset = offset64; - } break; - case CV_LeafKind_VBCLASS: - case CV_LeafKind_IVBCLASS: { - // parse CodeView virtual base class - CV_LeafVBClass *vbclass = (CV_LeafVBClass *) (src.data.str + cursor); - CV_NumericParsed vbptr_off = cv_numeric_from_data_range(src.data.str + cursor + sizeof(*vbclass), src.data.str + src.data.size); - CV_NumericParsed vtable_off = cv_numeric_from_data_range(src.data.str + cursor + sizeof(*vbclass) + vbptr_off.encoded_size, src.data.str + src.data.size); - cursor += sizeof(CV_LeafVBClass); - cursor += vbptr_off.encoded_size; - cursor += vtable_off.encoded_size; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB virtual base class member - member->kind = RDI_MemberKind_VirtualBase; - member->virtual_base_class.type_ref = lnk_rdib_type_from_itype(task, vbclass->itype); - member->virtual_base_class.vbptr_off = cv_u64_from_numeric(&vbptr_off); - member->virtual_base_class.vtable_off = cv_u64_from_numeric(&vtable_off); - } break; - case CV_LeafKind_VFUNCTAB: { - // parse CodeView virtual function table - CV_LeafVFuncTab *vfunc_tab = (CV_LeafVFuncTab *) (src.data.str + cursor); - cursor += sizeof(*vfunc_tab); - - // TODO: we don't have an equivalent in RDI - } break; - case CV_LeafKind_ENUMERATE: { - // parse CodeView enum member - CV_LeafEnumerate *enumerate = (CV_LeafEnumerate *) (src.data.str + cursor); - CV_NumericParsed value = cv_numeric_from_data_range((U8 *) (enumerate + 1), src.data.str + src.data.size); - String8 name = str8_cstring_capped(src.data.str + cursor + sizeof(CV_LeafEnumerate) + value.encoded_size, src.data.str + src.data.size); - cursor += sizeof(CV_LeafEnumerate); - cursor += value.encoded_size; - cursor += name.size + 1; - - // push new node - RDIB_UDTMember *member = rdib_udt_member_chunk_list_push(arena, rdib_member_list, task->udt_cap); - rdib_udt_member_list_push_node(&dst->members.list, member); - - // fill out RDIB enum member - member->kind = RDI_MemberKind_NULL; - member->enumerate.name = name; - member->enumerate.value = cv_u64_from_numeric(&value); - } break; - default: InvalidPath; - } - - cursor = AlignPow2(cursor, 4); - } - } break; - case CV_LeafKind_METHODLIST: { - // see CV_LeafKind_METHOD - } break; - case CV_LeafKind_LABEL: { - // ??? - } break; - case CV_LeafKind_VTSHAPE: { - RDIB_Type *dst = lnk_push_converted_codeview_type(arena, &task->rdib_types_lists[task_id], task->tpi_itype_map, itype); - dst->kind = RDI_TypeKindExt_VirtualTable; - // ??? - } break; - case CV_LeafKind_VFTABLE: { - // ??? - } break; - default: InvalidPath; break; - } - -#undef push_converted_type - } - ProfEnd(); -} - -internal U64 -lnk_src_file_hash_cv(String8 normal_full_path, CV_C13ChecksumKind checksum_kind, String8 checksum) -{ - XXH3_state_t state; - XXH3_INITSTATE(&state); - XXH3_64bits_reset(&state); - XXH3_64bits_update(&state, normal_full_path.str, normal_full_path.size); - XXH3_64bits_update(&state, &checksum_kind, sizeof(checksum_kind)); - XXH3_64bits_update(&state, checksum.str, checksum.size); - XXH64_hash_t result = XXH3_64bits_digest(&state); - return result; -} - -internal String8 -lnk_normalize_src_file_path(Arena *arena, String8 file_path) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 result = file_path; - result = lower_from_str8(scratch.arena, result); - result = path_convert_slashes(scratch.arena, result, PathStyle_UnixAbsolute); - result = push_str8_copy(arena, result); - scratch_end(scratch); - return result; -} - -internal LNK_SourceFileBucket * -lnk_src_file_hash_table_lookup_slot(LNK_SourceFileBucket **buckets, - U64 cap, - U64 hash, - String8 normal_path, - CV_C13ChecksumKind checksum_kind, - String8 checksum) -{ - U64 best_idx = hash % cap; - U64 bucket_idx = best_idx; - - RDIB_SourceFile temp = {0}; - temp.normal_full_path = normal_path; - temp.checksum_kind = checksum_kind; - temp.checksum = checksum; - - do { - if (buckets[bucket_idx] == 0) { - break; - } - if (rdib_source_file_match(buckets[bucket_idx]->src_file, &temp, OperatingSystem_CURRENT)) { - return buckets[bucket_idx]; - } - bucket_idx = (bucket_idx + 1) % cap; - } while (bucket_idx != best_idx); - - return 0; -} - - -internal LNK_SourceFileBucket * -lnk_src_file_insert_or_update(LNK_SourceFileBucket **buckets, U64 cap, U64 hash, LNK_SourceFileBucket *new_bucket) -{ - LNK_SourceFileBucket *result = 0; - - U64 best_idx = hash % cap; - U64 idx = best_idx; - do { - retry:; - LNK_SourceFileBucket *curr_bucket = buckets[idx]; - - if (curr_bucket == 0) { - LNK_SourceFileBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - result = curr_bucket; - break; - } - - // another thread took the bucket... - goto retry; - } else if (rdib_source_file_match(curr_bucket->src_file, new_bucket->src_file, OperatingSystem_CURRENT)) { - // do we need to update value in the bucket? - int cmp = u64_compar(&curr_bucket->obj_idx, &new_bucket->obj_idx); - if (cmp <= 0) { - // are we inserting bucket that was already inserterd? - Assert(cmp < 0); - - // don't need to update, more recent value is in the bucket - break; - } - - LNK_SourceFileBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - result = compare_bucket; - break; - } - - // another thread took the bucket... - goto retry; - } - - // advance - idx = (idx + 1); - idx = idx == cap ? 0 : idx; - } while (idx != best_idx); - - return result; -} - -internal -THREAD_POOL_TASK_FUNC(lnk_count_source_files_task) -{ - U64 unit_idx = task_id; - LNK_ConvertSourceFilesToRDITask *task = raw_task; - CV_DebugS debug_s = task->debug_s_arr[unit_idx]; - String8List raw_chksms_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FileChksms); - - U64 count = 0; - - for (String8Node *raw_chksms_n = raw_chksms_list.first; raw_chksms_n != 0; raw_chksms_n = raw_chksms_n->next) { - for(U64 cursor = 0; cursor + sizeof(CV_C13Checksum) <= raw_chksms_n->string.size; ) { - // parse header - CV_C13Checksum *header = (CV_C13Checksum *) (raw_chksms_n->string.str + cursor); - - // update count - ++count; - - // advance cursor - cursor += sizeof(*header); - cursor += header->len; - cursor = AlignPow2(cursor, CV_FileCheckSumsAlign); - } - } - - // update total count - ins_atomic_u64_add_eval(&task->total_src_file_count, count); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_insert_src_files_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - U64 obj_idx = task_id; - LNK_ConvertSourceFilesToRDITask *task = raw_task; - CV_DebugS debug_s = task->debug_s_arr[obj_idx]; - String8List raw_chksms_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_FileChksms); - String8List raw_strtab_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_StringTable); - - if (raw_strtab_list.node_count > 1) { - lnk_error_obj(LNK_Warning_IllData, task->obj_arr[obj_idx], "Multiple string table sub-sections, picking first one."); - } - if (raw_chksms_list.node_count > 1) { - lnk_error_obj(LNK_Warning_IllData, task->obj_arr[obj_idx], "Multiple file checksum sub-sections, picking first one."); - } - - String8 string_table = cv_string_table_from_debug_s(debug_s); - LNK_SourceFileBucket *curr_bucket = 0; - - for (String8Node *raw_chksms_n = raw_chksms_list.first; raw_chksms_n != 0; raw_chksms_n = raw_chksms_n->next) { - for (U64 cursor = 0; cursor + sizeof(CV_C13Checksum) <= raw_chksms_n->string.size; ) { - // parse header - CV_C13Checksum *header = (CV_C13Checksum *) (raw_chksms_n->string.str + cursor); - - // grab checksum - String8 checksum = str8_substr(raw_chksms_n->string, rng_1u64(cursor + sizeof(CV_C13Checksum), - cursor + sizeof(CV_C13Checksum) + header->len)); - - // grab file path - Assert(header->name_off < string_table.size); - String8 file_path = str8_cstring_capped(string_table.str + header->name_off, string_table.str + string_table.size); - - // normalize file path - String8 normal_path = lnk_normalize_src_file_path(arena, file_path); - - // push new bucket - if (curr_bucket == 0) { - curr_bucket = push_array(arena, LNK_SourceFileBucket, 1); - curr_bucket->src_file = push_array(arena, RDIB_SourceFile, 1); - } - - // fill out obj idx so we can decide which source file to keep in the hash table - curr_bucket->obj_idx = obj_idx; - - // fill out part with source file info - curr_bucket->src_file->file_path = file_path; - curr_bucket->src_file->normal_full_path = normal_path; - curr_bucket->src_file->checksum_kind = rdi_checksum_from_cv_c13(header->kind); - curr_bucket->src_file->checksum = checksum; - curr_bucket->src_file->line_table_frags = 0; - - // insert bucket - U64 normal_path_hash = lnk_src_file_hash_cv(normal_path, header->kind, checksum); - LNK_SourceFileBucket *insert_result = lnk_src_file_insert_or_update(task->src_file_buckets, task->src_file_buckets_cap, normal_path_hash, curr_bucket); - - if (curr_bucket == insert_result) { - // bucket was inserted into empty slot, reset current bucket - curr_bucket = 0; - } else if (curr_bucket != insert_result) { - // reuse evicted bucket - curr_bucket = insert_result; - } - - // advance cursor - cursor += sizeof(*header); - cursor += header->len; - cursor = AlignPow2(cursor, CV_FileCheckSumsAlign); - } - } - - scratch_end(scratch); - ProfEnd(); -} - -internal RDIB_Type * -lnk_find_container_type(String8 name, Rng1U64 tpi_itype_range, LNK_UDTNameBucket **udt_name_buckets, U64 udt_name_buckets_cap, RDIB_Type **tpi_itype_map) -{ - CV_TypeIndex container_itype = 0; - - String8 delim = str8_lit("::"); - U64 delim_pos = str8_find_needle_reverse(name, 0, delim, 0); - if (delim_pos > 0) { - U64 container_name_size = delim_pos - delim.size; - String8 container_name = str8_prefix(name, container_name_size); - container_itype = lnk_udt_name_hash_table_lookup_itype(udt_name_buckets, udt_name_buckets_cap, container_name); - } - - RDIB_Type *container = 0; - if (container_itype > 0) { - Assert(container_itype < tpi_itype_range.max); - container = tpi_itype_map[container_itype]; - } - - return container; -} - -internal RDIB_Type * -lnk_type_from_itype(CV_TypeIndex itype, Rng1U64 tpi_itype_range, RDIB_Type **tpi_itype_map, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) -{ - RDIB_Type *type = 0; - if (itype < tpi_itype_range.max) { - type = tpi_itype_map[itype]; - } else { - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds type index 0x%x in S_%S @ 0x%llx.", - itype, cv_string_from_sym_kind(symbol_kind), symbol_offset); - } - return type; -} - -internal U64 -lnk_voff_from_sect_off(U64 sect_idx, U64 sect_off, COFF_SectionHeaderArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) -{ - U64 voff = 0; - if (sect_idx < image_sects.count) { - voff = image_sects.v[sect_idx].voff + sect_off; - } else { - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", - sect_idx, cv_string_from_sym_kind(symbol_kind), symbol_offset); - } - return voff; -} - -internal Rng1U64 -lnk_virt_range_from_sect_off_size(U64 sect_idx, U64 sect_off, U64 size, COFF_SectionHeaderArray image_sects, LNK_Obj *obj, CV_SymKind symbol_kind, U64 symbol_offset) -{ - Rng1U64 virt_range = {0}; - if (sect_idx < image_sects.count) { - U64 voff = image_sects.v[sect_idx].voff + sect_off; - virt_range = rng_1u64(voff, voff + size); - } else { - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Out of bounds section index 0x%x in S_%S @ 0x%llx.", - sect_idx, cv_string_from_sym_kind(symbol_kind), symbol_offset); - } - return virt_range; -} - -internal void -lnk_error_on_invalid_defrange_symbol(LNK_Obj *obj, CV_Symbol symbol) -{ - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Unable to parse symbol stream, unexpected S_%S without preceding S_LOCAL @ 0x%llx.", - cv_string_from_sym_kind(symbol.kind), symbol.offset); -} - -internal void -lnk_error_on_missing_cv_frameproc(LNK_Obj *obj, CV_Symbol symbol) -{ - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Missing S_FRAMEPROC, unable to parse S_%S @ 0x%llx.", - cv_string_from_sym_kind(symbol.kind), symbol.offset); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_find_obj_compiler_info_task) -{ - ProfBeginFunction(); - - LNK_ConvertUnitToRDITask *task = raw_task; - CV_SymbolListArray parsed_symbols = task->parsed_symbols[task_id]; - LNK_CodeViewCompilerInfo *comp_info = &task->comp_info_arr[task_id]; - - comp_info->arch = (CV_Arch)~0u; - comp_info->language = (CV_Language)~0u; - comp_info->compiler_name = str8_zero(); - - // infer unit compiler data from S_COMPILE* which always follows S_OBJ - for (U64 symbol_list_idx = 0; symbol_list_idx < parsed_symbols.count; ++symbol_list_idx) { - CV_SymbolList symbol_list = parsed_symbols.v[symbol_list_idx]; - for (CV_SymbolNode *symbol_n = symbol_list.first; symbol_n != 0; symbol_n = symbol_n->next) { - CV_Symbol symbol = symbol_n->data; - if (symbol.kind == CV_SymKind_COMPILE) { - AssertAlways(sizeof(CV_SymCompile) <= symbol.data.size); - CV_SymCompile *compile = (CV_SymCompile *)symbol.data.str; - comp_info->arch = compile->machine; - comp_info->language = CV_CompileFlags_Extract_Language(compile->flags); - comp_info->compiler_name = str8_cstring_capped(compile + 1, symbol.data.str + symbol.data.size); - goto exit; - } else if (symbol.kind == CV_SymKind_COMPILE2) { - AssertAlways(sizeof(CV_SymCompile2) <= symbol.data.size); - CV_SymCompile2 *compile2 = (CV_SymCompile2 *)symbol.data.str; - comp_info->arch = compile2->machine; - comp_info->language = CV_Compile2Flags_Extract_Language(compile2->flags); - comp_info->compiler_name = str8_cstring_capped(compile2 + 1, symbol.data.str + symbol.data.size); - goto exit; - } else if (symbol.kind == CV_SymKind_COMPILE3) { - AssertAlways(sizeof(CV_SymCompile3) <= symbol.data.size); - CV_SymCompile3 *compile3 = (CV_SymCompile3 *)symbol.data.str; - comp_info->arch = compile3->machine; - comp_info->language = CV_Compile3Flags_Extract_Language(compile3->flags); - comp_info->compiler_name = str8_cstring_capped(compile3 + 1, symbol.data.str + symbol.data.size); - goto exit; - } - } - } - exit:; - - LNK_Obj *obj = task->obj_arr[task_id]; - - // fill out unit info - U64 unit_chunk_idx = task_id / task->unit_chunk_cap; - U64 local_unit_idx = task_id - unit_chunk_idx * task->unit_chunk_cap; - - RDIB_Unit *dst = &task->units[unit_chunk_idx].v[local_unit_idx]; - dst->arch = rdi_arch_from_cv_arch(comp_info->arch); - dst->unit_name = str8_skip_last_slash(obj->path); - dst->compiler_name = comp_info->compiler_name; - dst->source_file = str8_zero(); - dst->object_file = push_str8_copy(arena, obj->path); - dst->archive_file = lnk_obj_get_lib_path(obj); - dst->build_path = str8_zero(); - dst->language = rdi_language_from_cv_language(comp_info->language); - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_convert_line_tables_to_rdi_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - U64 unit_idx = task_id; - LNK_ConvertUnitToRDITask *task = raw_task; - LNK_Obj *obj = task->obj_arr[unit_idx]; - CV_DebugS debug_s = task->debug_s_arr[unit_idx]; - - U64 unit_chunk_idx = unit_idx / task->unit_chunk_cap; - U64 local_unit_idx = unit_idx - unit_chunk_idx * task->unit_chunk_cap; - RDIB_Unit *dst = &task->units[unit_chunk_idx].v[local_unit_idx]; - - // find sub sections - String8 raw_string_table = cv_string_table_from_debug_s(debug_s); - String8 raw_file_chksms = cv_file_chksms_from_debug_s(debug_s); - String8List raw_lines_list = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_Lines); - - // emit line table fragments for each source file from C13 line info - dst->line_table = rdib_line_table_chunk_list_push(arena, &task->line_tables[worker_id], task->line_table_cap); - - for (String8Node *raw_lines_node = raw_lines_list.first; raw_lines_node != 0; raw_lines_node = raw_lines_node->next) { - String8 raw_lines = raw_lines_node->string; - CV_C13LinesHeaderList parsed_list = cv_c13_lines_from_sub_sections(scratch.arena, raw_lines, rng_1u64(0, raw_lines.size)); - for (CV_C13LinesHeaderNode *lines_node = parsed_list.first; lines_node != 0; lines_node = lines_node->next) { - CV_C13LinesHeader parsed_lines = lines_node->v; - - // parse checksum header - if (parsed_lines.file_off + sizeof(CV_C13Checksum) > raw_file_chksms.size) { - lnk_error_obj(LNK_Warning_IllData, obj, "Out of bounds $$FILE_CHECKSUM offset (0x%llx) in line table header.", parsed_lines.file_off); - continue; - } - CV_C13Checksum *checksum_header = (CV_C13Checksum *) (raw_file_chksms.str + parsed_lines.file_off); - if (parsed_lines.file_off + sizeof(CV_C13Checksum) + checksum_header->len > raw_file_chksms.size) { - lnk_error_obj(LNK_Warning_IllData, obj, "Not enough bytes to read file checksum @ 0x%llx.", parsed_lines.file_off); - continue; - } - String8 file_path = str8_cstring_capped(raw_string_table.str + checksum_header->name_off, raw_string_table.str + raw_string_table.size); - String8 checksum_bytes = str8((U8 *) (checksum_header + 1), checksum_header->len); - - // read out lines - if (0 == parsed_lines.sec_idx || parsed_lines.sec_idx > task->image_sects.count) { - lnk_error_obj(LNK_Warning_IllData, obj, "Out of bounds section index (%u) in $$LINES; skip line info for \"%S\".", parsed_lines.sec_idx, file_path); - continue; - } - COFF_SectionHeader *sect = &task->image_sects.v[parsed_lines.sec_idx]; - CV_LineArray lines = cv_c13_line_array_from_data(arena, raw_lines, sect->voff, parsed_lines); - - // find source file for this line table - String8 normal_path = lnk_normalize_src_file_path(scratch.arena, file_path); - U64 src_file_hash = lnk_src_file_hash_cv(normal_path, checksum_header->kind, checksum_bytes); - LNK_SourceFileBucket *src_file_bucket = lnk_src_file_hash_table_lookup_slot(task->src_file_buckets, task->src_file_buckets_cap, src_file_hash, normal_path, checksum_header->kind, checksum_bytes); - if (src_file_bucket == 0) { - lnk_error_obj(LNK_Error_UnexpectedCodePath, obj, "Unable to find source file in the hash table: \"%S\".", file_path); - continue; - } - RDIB_SourceFile *src_file = src_file_bucket->src_file; - - // fill out line table fragment and atomically insert - RDIB_LineTableFragment *frag = rdib_line_table_push(arena, dst->line_table); - frag->src_file = src_file; - frag->voffs = lines.voffs; - frag->line_nums = lines.line_nums; - frag->col_nums = lines.col_nums; - frag->line_count = lines.line_count; - frag->col_count = lines.col_count; - - // build list of line table fragments per file - frag->next_src_file = ins_atomic_ptr_eval_assign(&src_file->line_table_frags, frag); - } - } - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_build_inlinee_lines_accels_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_ConvertUnitToRDITask *task = raw_task; - CV_DebugS debug_s = task->debug_s_arr[task_id]; - - String8List raw_inlinee_lines = cv_sub_section_from_debug_s(debug_s, CV_C13SubSectionKind_InlineeLines); - CV_C13InlineeLinesParsedList inlinee_lines = cv_c13_inlinee_lines_from_sub_sections(arena, raw_inlinee_lines); - CV_InlineeLinesAccel *inlinee_lines_accel = cv_c13_make_inlinee_lines_accel(arena, inlinee_lines); - - task->inlinee_lines_accel_arr[task_id] = inlinee_lines_accel; - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_convert_symbols_to_rdi_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_ConvertUnitToRDITask *task = raw_task; - LNK_CodeViewSymbolsInput symbols_input = task->symbol_inputs[task_id]; - LNK_Obj *obj = task->obj_arr[symbols_input.obj_idx]; - LNK_CodeViewCompilerInfo comp_info = task->comp_info_arr[symbols_input.obj_idx]; - CV_InlineeLinesAccel *inlinee_lines_accel = task->inlinee_lines_accel_arr[symbols_input.obj_idx]; - - RDI_Arch arch_rdi = rdi_arch_from_cv_arch(comp_info.arch); - - struct ScopeFrame { - struct ScopeFrame *prev; - RDIB_Scope *scope; - RDIB_Procedure *proc; - CV_ProcFlags proc_flags; - CV_SymFrameproc *frameproc; - U64 param_count; - U64 regrel32_idx; - RDIB_Variable *defrange_target; - }; -#define push_scope_frame() do { \ - struct ScopeFrame *frame; \ - if (free_scope_stack != 0) { \ - frame = free_scope_stack; \ - SLLStackPop_N(free_scope_stack, prev); \ - } else { \ - frame = push_array(scratch.arena, struct ScopeFrame, 1); \ - } \ - SLLStackPush_N(scope_stack, frame, prev); \ -} while (0) - - struct ScopeFrame *scope_stack = 0; - struct ScopeFrame *free_scope_stack = 0; - - // root frame - push_scope_frame(); - - for (CV_SymbolNode *symbol_n = symbols_input.symbol_list->first; symbol_n != 0; symbol_n = symbol_n->next) { - CV_Symbol symbol = symbol_n->data; - - switch (symbol.kind) { - case CV_SymKind_COMPILE: - case CV_SymKind_COMPILE2: - case CV_SymKind_COMPILE3: { - // handled above - } break; - case CV_SymKind_INLINESITE_END: - case CV_SymKind_END: { - if (scope_stack != 0) { - // move top frame to free stack - struct ScopeFrame *free_frame = scope_stack; - SLLStackPop_N(scope_stack, prev); - SLLStackPush_N(free_scope_stack, free_frame, prev); - } else { - lnk_error_obj(LNK_Error_CvIllSymbolData, obj, "Encountered unbalanced blocks. Unable to finish symbol parse."); - goto exit; - } - } break; - case CV_SymKind_BLOCK32: { - CV_SymBlock32 *block32 = (CV_SymBlock32 *) symbol.data.str; - Rng1U64 virt_range = lnk_virt_range_from_sect_off_size(block32->sec, block32->off, block32->len, task->image_sects, obj, symbol.kind, symbol.offset); - - // push new scope node - RDIB_Scope *scope = rdib_scope_chunk_list_push(arena, &task->scopes[worker_id], task->symbol_chunk_cap); - - // fill out scope - scope->container_proc = scope_stack->proc; - scope->parent = scope_stack->scope; - SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, scope, next_sibling); - rng1u64_list_push(arena, &scope->ranges, virt_range); - -#if 0 - if (scope->parent) { - Assert(virt_range.min >= scope->parent->ranges.first->v.min); - Assert(virt_range.max <= scope->parent->ranges.first->v.max); - } -#endif - - // push new scope stack frame - push_scope_frame(); - scope_stack->scope = scope; - scope_stack->proc = scope->container_proc; - scope_stack->proc_flags = scope_stack->proc_flags; - scope_stack->frameproc = scope_stack->prev->frameproc; - } break; - case CV_SymKind_GDATA32: - case CV_SymKind_LDATA32: { - CV_SymData32 *data32 = (CV_SymData32 *) symbol.data.str; - String8 name = str8_cstring_capped(data32 + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(data32->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - RDIB_Type *container_type = lnk_find_container_type(name, task->tpi_itype_range, task->udt_name_buckets, task->udt_name_buckets_cap, task->tpi_itype_map); - U64 data_voff = lnk_voff_from_sect_off(data32->sec, data32->off, task->image_sects, obj, symbol.kind, symbol.offset); - - B32 is_comp_gen = symbol.kind == CV_SymKind_LDATA32 && name.size == 0 && type == 0; - if (!is_comp_gen) { - - // get link name through virtual offset look up - String8 link_name = {0}; - if (symbol.kind == CV_SymKind_GDATA32) { - KeyValuePair *pair = hash_table_search_u64(task->extern_symbol_voff_ht, data_voff); - if (pair != 0) { - LNK_Symbol *link_symbol = pair->value_raw; - link_name = link_symbol->name; - } - } - - // make module relative location - RDIB_LocationList locations = {0}; - { - RDIB_EvalBytecode bytecode = {0}; - rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_ModuleOff, data_voff); - - U64 data_size = rdib_size_from_type(type); - if (data_size == 0) { - data_size = max_U64; - } - - Rng1U64List ranges = {0}; - rng1u64_list_push(arena, &ranges, rng_1u64(data_voff, data_voff + data_size)); - - RDIB_Location location = rdib_make_location_addr_byte_stream(ranges, bytecode); - rdib_location_list_push(arena, &locations, location); - } - - RDIB_VariableChunkList *var_chunk_list = symbol.kind == CV_SymKind_GDATA32 ? - &task->extern_gvars[worker_id] : &task->static_gvars[worker_id]; - - // push new node - RDIB_Variable *gvar = rdib_variable_chunk_list_push(arena, var_chunk_list, task->symbol_chunk_cap); - gvar->link_flags = symbol.kind == CV_SymKind_GDATA32 ? RDI_LinkFlag_External : 0; - gvar->name = name; - gvar->link_name = link_name; - gvar->type = type; - gvar->container_type = container_type; - gvar->container_proc = scope_stack->proc; - gvar->locations = locations; - } - } break; - case CV_SymKind_LTHREAD32: - case CV_SymKind_GTHREAD32: { - CV_SymThread32 *thread32 = (CV_SymThread32 *) symbol.data.str; - String8 name = str8_cstring_capped(thread32 + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(thread32->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - RDIB_Type *container_type = lnk_find_container_type(name, task->tpi_itype_range, task->udt_name_buckets, task->udt_name_buckets_cap, task->tpi_itype_map); - - // make TLS offset location - RDIB_LocationList locations = {0}; - { - RDIB_EvalBytecode bytecode = {0}; - rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_TLSOff, thread32->tls_off); - - Rng1U64List ranges = {0}; - rng1u64_list_push(arena, &ranges, rng_1u64(0, max_U64)); - - RDIB_Location location = rdib_make_location_addr_byte_stream(ranges, bytecode); - rdib_location_list_push(arena, &locations, location); - } - - // push new node - RDIB_VariableChunkList *tvar_list = symbol.kind == CV_SymKind_GTHREAD32 ? &task->extern_tvars[worker_id] : &task->static_tvars[worker_id]; - RDIB_Variable *tvar = rdib_variable_chunk_list_push(arena, tvar_list, task->symbol_chunk_cap); - - // fill out thread variable - tvar->link_flags = symbol.kind == CV_SymKind_GTHREAD32 ? RDI_LinkFlag_External : 0; - tvar->name = name; - tvar->link_name = str8(0,0); - tvar->type = type; - tvar->container_type = container_type; - tvar->container_proc = scope_stack->proc; - tvar->locations = locations; - } break; - case CV_SymKind_LPROC32_ID: - case CV_SymKind_GPROC32_ID: { - AssertAlways(!"linker converts *_ID symbols in post-process step, if we ever get to this case then we have a bug in post-process step"); - } break; - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: { - CV_SymProc32 *proc32 = (CV_SymProc32 *) symbol.data.str; - String8 name = str8_cstring_capped(proc32 + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(proc32->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - Rng1U64 virt_range = lnk_virt_range_from_sect_off_size(proc32->sec, proc32->off, proc32->len, task->image_sects, obj, symbol.kind, symbol.offset); - - // infer container type for method - RDIB_Type *container_type = 0; - if (type != 0) { - if (type->kind == RDI_TypeKind_Method) { - container_type = (RDIB_Type *) type->method.class_type; - } else if (type->kind == RDI_TypeKindExt_StaticMethod) { - container_type = (RDIB_Type *) type->static_method.class_type; - } - } - - // get link name through virtual offset look up - String8 link_name = str8(0,0); - if (symbol.kind == CV_SymKind_GPROC32) { - KeyValuePair *pair = hash_table_search_u64(task->extern_symbol_voff_ht, virt_range.min); - if (pair != 0) { - LNK_Symbol *link_symbol = pair->value_raw; - link_name = link_symbol->name; - } - } - - // scan ahead for context S_FRAMEPROC (must be defined in scope of PROC symbol) - CV_SymFrameproc *frameproc = 0; - { - U64 depth = 1; - for (CV_SymbolNode *lookahead = symbol_n->next; lookahead != 0; lookahead = lookahead->next) { - if (lookahead->data.kind == CV_SymKind_FRAMEPROC) { - frameproc = (CV_SymFrameproc *) lookahead->data.data.str; - break; - } - if (cv_is_scope_symbol(lookahead->data.kind)) { - ++depth; - } else if (cv_is_end_symbol(lookahead->data.kind)) { - --depth; - if (depth == 0) { - break; - } - } - } - } - - // push new procedure node - RDIB_ProcedureChunkList *proc_list = symbol.kind == CV_SymKind_GPROC32 ? &task->extern_procs[worker_id] : &task->static_procs[worker_id]; - RDIB_Procedure *proc = rdib_procedure_chunk_list_push(arena, proc_list, task->symbol_chunk_cap); - - // push new scope node - RDIB_Scope *root_scope = rdib_scope_chunk_list_push(arena, &task->scopes[worker_id], task->symbol_chunk_cap); - root_scope->container_proc = proc; - root_scope->parent = scope_stack->scope; - if (scope_stack->scope != 0) { - SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, root_scope, next_sibling); - } - rng1u64_list_push(arena, &root_scope->ranges, virt_range); - - // fill out procedure - proc->link_flags = symbol.kind == CV_SymKind_GPROC32 ? RDI_LinkFlag_External : 0; - proc->name = name; - proc->link_name = link_name; - proc->type = type; - proc->container_type = container_type; - proc->container_proc = scope_stack->proc; - proc->scope = root_scope; - - // push scope frame - push_scope_frame(); - scope_stack->scope = root_scope; - scope_stack->proc = proc; - scope_stack->proc_flags = proc32->flags; - scope_stack->frameproc = frameproc; - - // set number of params for procedure on scope so we can figure out which S_REGREL32 is param - { - B32 is_proc_scope = (scope_stack->proc->scope == scope_stack->scope); - if (is_proc_scope) { - RDIB_Type *params = 0; - if (scope_stack->proc != 0) { - RDIB_Type *proc_type = scope_stack->proc->type; - if (proc_type != 0) { - if (proc_type->kind == RDI_TypeKind_NULL) { - // compiler generates procedures with no type for __try/__except, lambdas, and etc. - } else if (proc_type->kind == RDI_TypeKind_Function) { - params = (RDIB_Type *)proc_type->func.params_type; - } else if (proc_type->kind == RDI_TypeKind_Method) { - params = (RDIB_Type *)proc_type->method.params_type; - } else if (proc_type->kind == RDI_TypeKindExt_StaticMethod) { - params = (RDIB_Type *)proc_type->static_method.params_type; - } else { - InvalidPath; - } - } - } - if (params != 0) { - AssertAlways(params->kind == RDI_TypeKindExt_Params); - scope_stack->param_count = params->params.count; - scope_stack->regrel32_idx = 0; - } - } - } - } break; - case CV_SymKind_THUNK32: { - CV_SymThunk32 *thunk32 = (CV_SymThunk32 *) symbol.data.str; - String8 name = str8_cstring_capped(thunk32 + 1, symbol.data.str + symbol.data.size); - Rng1U64 virt_range = lnk_virt_range_from_sect_off_size(thunk32->sec, thunk32->off, thunk32->len, task->image_sects, obj, symbol.kind, symbol.offset); - - // scan ahead for context S_FRAMEPROC (must be defined in scope of PROC symbol) - CV_SymFrameproc *frameproc = 0; - { - U64 depth = 1; - for (CV_SymbolNode *lookahead = symbol_n->next; lookahead != 0; lookahead = lookahead->next) { - if (lookahead->data.kind == CV_SymKind_FRAMEPROC) { - frameproc = (CV_SymFrameproc *) lookahead->data.data.str; - break; - } - if (cv_is_scope_symbol(lookahead->data.kind)) { - ++depth; - } else if (cv_is_end_symbol(lookahead->data.kind)) { - --depth; - if (depth == 0) { - break; - } - } - } - } - - // push new procedure node - RDIB_ProcedureChunkList *proc_list = &task->static_procs[worker_id]; - RDIB_Procedure *thunk = rdib_procedure_chunk_list_push(arena, proc_list, task->symbol_chunk_cap); - - // push new scope node - RDIB_Scope *root_scope = rdib_scope_chunk_list_push(arena, &task->scopes[worker_id], task->symbol_chunk_cap); - root_scope->container_proc = thunk; - root_scope->parent = scope_stack->scope; - if (scope_stack->scope != 0) { - SLLQueuePush_N(scope_stack->scope->first_child, scope_stack->scope->last_child, root_scope, next_sibling); - } - rng1u64_list_push(arena, &root_scope->ranges, virt_range); - - // fill out procedure - thunk->name = name; - thunk->type = 0; - thunk->scope = root_scope; - - // push scope frame - push_scope_frame(); - scope_stack->scope = root_scope; - scope_stack->proc = thunk; - scope_stack->proc_flags = 0; - scope_stack->frameproc = frameproc; - } break; - case CV_SymKind_REGREL32: { - if (~scope_stack->proc_flags & CV_ProcFlag_OptDbgInfo) { - CV_SymRegrel32 *regrel32 = (CV_SymRegrel32 *) symbol.data.str; - String8 name = str8_cstring_capped(regrel32 + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(regrel32->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - - RDI_LocalKind local_kind = RDI_LocalKind_Variable; - B32 is_ref = 0; - if (scope_stack->regrel32_idx < scope_stack->param_count) { - local_kind = RDI_LocalKind_Parameter; - if (type != 0) { - U64 byte_size = rdib_size_from_type(type); - switch (comp_info.arch) { - case CV_Arch_8086: is_ref = byte_size > 4 || !IsPow2OrZero(byte_size); break; - case CV_Arch_X64: is_ref = byte_size > 8 || !IsPow2OrZero(byte_size); break; - default: NotImplemented; - } - } - } - - // push node - RDIB_Variable *local = rdib_variable_chunk_list_push(arena, &task->locals[worker_id], task->symbol_chunk_cap); - SLLQueuePush(scope_stack->scope->local_first, scope_stack->scope->local_last, local); - ++scope_stack->scope->local_count; - - // fill out local - local->link_flags = 0; - local->name = name; - local->kind = local_kind; - local->type = type; - - // encode location - RDI_RegCode reg_code = rdi_reg_code_from_cv(comp_info.arch, regrel32->reg); - U32 value_size = 8; - U32 value_pos = 0; - rdib_push_location_addr_reg_off(arena, &local->locations, arch_rdi, reg_code, value_size, value_pos, (S64)regrel32->reg_off, is_ref, scope_stack->scope->ranges); - - // advance reg rel index - ++scope_stack->regrel32_idx; - } - } break; - case CV_SymKind_LOCAL: { - CV_SymLocal *sym_local = (CV_SymLocal *) symbol.data.str; - String8 name = str8_cstring_capped(sym_local + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(sym_local->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - - // reset defrange target - scope_stack->defrange_target = 0; - - if (sym_local->flags & CV_LocalFlag_Global) { - // TODO: apply global modifications - } else if (sym_local->flags & CV_LocalFlag_Static) { - // TODO: apply local modifications - } - - // push New node - RDIB_Variable *local = rdib_variable_chunk_list_push(arena, &task->locals[worker_id], task->symbol_chunk_cap); - SLLQueuePush(scope_stack->scope->local_first, scope_stack->scope->local_last, local); - ++scope_stack->scope->local_count; - - // fill out local - local->link_flags = 0; - local->kind = sym_local->flags & CV_LocalFlag_Param ? RDI_LocalKind_Parameter : RDI_LocalKind_Variable; - local->name = name; - local->type = type; - - scope_stack->defrange_target = local; - } break; - case CV_SymKind_FILESTATIC: { - CV_SymFileStatic *file_static = (CV_SymFileStatic *) symbol.data.str; - String8 name = str8_cstring_capped(file_static + 1, symbol.data.str + symbol.data.size); - RDIB_Type *type = lnk_type_from_itype(file_static->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - - // push New node - RDIB_Variable *local = rdib_variable_chunk_list_push(arena, &task->locals[worker_id], task->symbol_chunk_cap); - SLLQueuePush(scope_stack->scope->local_first, scope_stack->scope->local_last, local); - ++scope_stack->scope->local_count; - - // fill out local - local->link_flags = 0; - local->kind = RDI_LocalKind_Variable; - local->name = name; - local->type = type; - - // set target for following defrange modifications - scope_stack->defrange_target = local; - } break; - case CV_SymKind_DEFRANGE_REGISTER: { - if (scope_stack->defrange_target == 0) { - lnk_error_on_invalid_defrange_symbol(obj, symbol); - break; - } - - CV_SymDefrangeRegister *defrange_reg = (CV_SymDefrangeRegister *) symbol.data.str; - RDI_RegCode reg_code = rdi_reg_code_from_cv(comp_info.arch, defrange_reg->reg); - CV_LvarAddrGap *gaps = (CV_LvarAddrGap *) (defrange_reg + 1); - U64 gap_count = (symbol.data.size - sizeof(*defrange_reg)) / sizeof(*gaps); - - Rng1U64 defrange = lnk_virt_range_from_sect_off_size(defrange_reg->range.sec, defrange_reg->range.off, defrange_reg->range.len, task->image_sects, obj, symbol.kind, symbol.offset); - Rng1U64List ranges = cv_make_defined_range_list_from_gaps(arena, defrange, gaps, gap_count); - RDIB_Location location = rdib_make_location_val_reg(ranges, reg_code); - - rdib_location_list_push(arena, &scope_stack->defrange_target->locations, location); - } break; - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL: { - if (scope_stack->defrange_target == 0) { - lnk_error_on_invalid_defrange_symbol(obj, symbol); - break; - } - if (scope_stack->frameproc == 0) { - lnk_error_on_missing_cv_frameproc(obj, symbol); - break; - } - - CV_SymDefrangeFramepointerRel *defrange_fprel = (CV_SymDefrangeFramepointerRel *)symbol.data.str; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap *) (defrange_fprel + 1); - U64 gap_count = (symbol.data.size - sizeof(*defrange_fprel)) / sizeof(gaps[0]); - - B32 is_local_param = scope_stack->defrange_target->kind == RDI_LocalKind_Parameter; - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(scope_stack->frameproc, is_local_param); - CV_Reg fp_reg = cv_decode_fp_reg(comp_info.arch, encoded_fp_reg); - RDI_RegCode fp_reg_rdi = rdi_reg_code_from_cv(comp_info.arch, fp_reg); - Rng1U64 defrange = lnk_virt_range_from_sect_off_size(defrange_fprel->range.sec, defrange_fprel->range.off, defrange_fprel->range.len, task->image_sects, obj, symbol.kind, symbol.offset); - Rng1U64List ranges = cv_make_defined_range_list_from_gaps(arena, defrange, gaps, gap_count); - U32 value_pos = 0; - U32 value_size = rdi_addr_size_from_arch(arch_rdi); - - rdib_push_location_addr_reg_off(arena, &scope_stack->defrange_target->locations, arch_rdi, fp_reg_rdi, value_size, value_pos, (S64)defrange_fprel->off, 0, ranges); - } break; - case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER: { - if (scope_stack->defrange_target == 0) { - lnk_error_on_invalid_defrange_symbol(obj, symbol); - break; - } - - CV_SymDefrangeSubfieldRegister *defrange_subfield_register = (CV_SymDefrangeSubfieldRegister *) symbol.data.str; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap *) (defrange_subfield_register + 1); - U64 gap_count = (symbol.data.size - sizeof(*defrange_subfield_register)) / sizeof(gaps[0]); - RDI_RegCode reg_rdi = rdi_reg_code_from_cv(comp_info.arch, defrange_subfield_register->reg); - U32 value_pos = CV_DefrangeSubfieldRegister_Extract_ParentOffset(defrange_subfield_register->field_offset); - U32 value_size = cv_size_from_reg(comp_info.arch, defrange_subfield_register->reg) - value_pos; - Rng1U64 defrange = lnk_virt_range_from_sect_off_size(defrange_subfield_register->range.sec, defrange_subfield_register->range.off, defrange_subfield_register->range.len, task->image_sects, obj, symbol.kind, symbol.offset); - Rng1U64List ranges = cv_make_defined_range_list_from_gaps(arena, defrange, gaps, gap_count); - - rdib_push_location_addr_reg_off(arena, &scope_stack->defrange_target->locations, arch_rdi, reg_rdi, value_size, value_pos, 0, 0, ranges); - } break; - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE: { - if (scope_stack->defrange_target == 0) { - lnk_error_on_invalid_defrange_symbol(obj, symbol); - break; - } - if (scope_stack->frameproc == 0) { - lnk_error_on_missing_cv_frameproc(obj, symbol); - break; - } - - CV_SymDefrangeFramepointerRelFullScope *defrange_fprelfs = (CV_SymDefrangeFramepointerRelFullScope *) symbol.data.str; - B32 is_local_param = scope_stack->defrange_target->kind == RDI_LocalKind_Parameter; - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(scope_stack->frameproc, is_local_param); - CV_Reg fp_reg = cv_decode_fp_reg(comp_info.arch, encoded_fp_reg); - RDI_RegCode fp_reg_rdi = rdi_reg_code_from_cv(comp_info.arch, fp_reg); - U32 value_size = cv_size_from_reg(comp_info.arch, fp_reg); - U32 value_pos = 0; - Rng1U64List ranges = scope_stack->scope->ranges; // variable is available everywhere in the scope - - rdib_push_location_addr_reg_off(arena, &scope_stack->defrange_target->locations, arch_rdi, fp_reg_rdi, value_size, value_pos, (S64)defrange_fprelfs->off, 0, ranges); - } break; - case CV_SymKind_DEFRANGE_REGISTER_REL: { - if (scope_stack->defrange_target == 0) { - lnk_error_on_invalid_defrange_symbol(obj, symbol); - break; - } - - CV_SymDefrangeRegisterRel *defrange_register_rel = (CV_SymDefrangeRegisterRel *) symbol.data.str; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap *) (defrange_register_rel + 1); - U64 gap_count = (symbol.data.size - sizeof(*defrange_register_rel)) / sizeof(gaps[0]); - RDI_RegCode reg_rdi = rdi_reg_code_from_cv(comp_info.arch, defrange_register_rel->reg); - U64 value_size = cv_size_from_reg(comp_info.arch, defrange_register_rel->reg); - U64 value_pos = 0; - Rng1U64 defrange = lnk_virt_range_from_sect_off_size(defrange_register_rel->range.sec, defrange_register_rel->range.off, defrange_register_rel->range.len, task->image_sects, obj, symbol.kind, symbol.offset); - Rng1U64List ranges = cv_make_defined_range_list_from_gaps(arena, defrange, gaps, gap_count); - - rdib_push_location_addr_reg_off(arena, &scope_stack->defrange_target->locations, arch_rdi, reg_rdi, value_size, value_pos, (S64)defrange_register_rel->reg_off, 0, ranges); - } break; - case CV_SymKind_INLINESITE: { - CV_SymInlineSite *sym_inline_site = (CV_SymInlineSite *) symbol.data.str; - String8 binary_annots = str8_skip(symbol.data, sizeof(*sym_inline_site)); - - U64 parent_voff = 0; - if (scope_stack != 0) { - RDIB_Scope *proc_scope = scope_stack->proc->scope; - Assert(proc_scope->ranges.count == 1); - Rng1U64 scope_vrange = proc_scope->ranges.first->v; - parent_voff = scope_vrange.min; - } else { - Assert(!"S_INLINESITE doesn't have a parent procedure symbol"); - } - - // parse binary annots - CV_C13InlineeLinesParsed *inlinee_parsed = cv_c13_inlinee_lines_accel_find(inlinee_lines_accel, sym_inline_site->inlinee); - CV_InlineBinaryAnnotsParsed binary_annots_parsed = cv_c13_parse_inline_binary_annots(arena, parent_voff, inlinee_parsed, binary_annots); - - String8 name = str8_zero(); - RDIB_Type *type = 0; - RDIB_Type *owner = 0; - if (task->ipi_itype_range.min <= sym_inline_site->inlinee && sym_inline_site->inlinee < task->ipi_itype_range.max) { - U64 leaf_idx = sym_inline_site->inlinee - task->tpi_itype_range.min; - CV_Leaf leaf = cv_debug_t_get_leaf(task->ipi, leaf_idx); - if (leaf.kind == CV_LeafKind_MFUNC_ID) { - if (sizeof(CV_LeafMFuncId) <= leaf.data.size) { - CV_LeafMFuncId *mfunc_id = (CV_LeafMFuncId *) leaf.data.str; - name = str8_cstring_capped_reverse(mfunc_id + 1, leaf.data.str + leaf.data.size); - type = lnk_type_from_itype(mfunc_id->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - owner = lnk_type_from_itype(mfunc_id->owner_itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - } else { - Assert(!"invalid leaf size"); - } - } else if (leaf.kind == CV_LeafKind_FUNC_ID) { - if (sizeof(CV_LeafFuncId) <= leaf.data.size) { - CV_LeafFuncId *func_id = (CV_LeafFuncId *) leaf.data.str; - name = str8_cstring_capped_reverse(func_id + 1, leaf.data.str + leaf.data.size); - type = lnk_type_from_itype(func_id->itype, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - owner = lnk_type_from_itype(func_id->scope_string_id, task->tpi_itype_range, task->tpi_itype_map, obj, symbol.kind, symbol.offset); - } else { - Assert(!"invalid leaf size"); - } - } else { - Assert(!"inlinee must pointer to LF_FUNC_ID or LF_MFUNC_ID"); - } - } else { - Assert(!"out of bounds inlinee"); - } - - // fill out inline site - RDIB_InlineSite *inline_site = rdib_inline_site_chunk_list_push(arena, &task->inline_sites[worker_id], task->inline_site_cap); - inline_site->name = name; - inline_site->type = type; - inline_site->owner = owner; - - inline_site->convert_ref.ud0 = binary_annots_parsed.lines; - inline_site->convert_ref.ud1 = binary_annots_parsed.lines_count; - inline_site->convert_ref.ud2 = symbols_input.obj_idx; - - // fill out scope - RDIB_Scope *scope = rdib_scope_chunk_list_push(arena, &task->scopes[worker_id], task->symbol_chunk_cap); - scope->container_proc = scope_stack->proc; - scope->parent = scope_stack->scope; - scope->inline_site = inline_site; - scope->ranges = binary_annots_parsed.code_ranges; - - // push new scope stack frame - push_scope_frame(); - scope_stack->scope = scope; - scope_stack->proc = scope->container_proc; - scope_stack->proc_flags = scope_stack->proc_flags; - scope_stack->frameproc = scope_stack->prev->frameproc; - } break; - default: break; - } - } - exit:; - -#undef push_scope_frame - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_convert_inline_site_line_tables_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - LNK_ConvertUnitToRDITask *task = raw_task; - RDIB_InlineSiteChunk *chunk = task->inline_site_chunks[task_id]; - - RDIB_LineTableFragmentChunkList frag_chunk_list = {0}; - - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_InlineSite *inline_site = &chunk->v[i]; - - CV_LineArray *lines_arr = inline_site->convert_ref.ud0; - U64 lines_count = inline_site->convert_ref.ud1; - U64 obj_idx = inline_site->convert_ref.ud2; - - CV_DebugS debug_s = task->debug_s_arr[obj_idx]; - String8 raw_string_table = cv_string_table_from_debug_s(debug_s); - String8 raw_file_chksms = cv_file_chksms_from_debug_s(debug_s); - - if (lines_count > 0) { - inline_site->line_table = rdib_line_table_chunk_list_push(arena, &task->line_tables[worker_id], task->line_table_cap); - } else { - inline_site->line_table = task->null_line_table; - } - - // emit line tables for each file (yes, it is possbile to split inline site among two or more files via #include) - for (U64 file_idx = 0; file_idx < lines_count; ++file_idx) { - CV_LineArray lines = lines_arr[file_idx]; - - // prase checksum header - CV_C13Checksum *checksum_header = (CV_C13Checksum *) (raw_file_chksms.str + lines.file_off); - if (lines.file_off + sizeof(CV_C13Checksum) + checksum_header->len > raw_file_chksms.size) { - lnk_error_obj(LNK_Warning_IllData, task->obj_arr[obj_idx], "Not enough bytes to read file checksum @ 0x%llx.", lines.file_off); - continue; - } - String8 file_path = str8_cstring_capped(raw_string_table.str + checksum_header->name_off, raw_string_table.str + raw_string_table.size); - String8 checksum_bytes = str8((U8 *) (checksum_header + 1), checksum_header->len); - - // find source file for this line table - String8 normal_path = lnk_normalize_src_file_path(scratch.arena, file_path); - U64 src_file_hash = lnk_src_file_hash_cv(normal_path, checksum_header->kind, checksum_bytes); - LNK_SourceFileBucket *src_file_bucket = lnk_src_file_hash_table_lookup_slot(task->src_file_buckets, task->src_file_buckets_cap, src_file_hash, normal_path, checksum_header->kind, checksum_bytes); - if (src_file_bucket == 0) { - lnk_error_obj(LNK_Error_UnexpectedCodePath, task->obj_arr[obj_idx], "Unable to find source file in the hash table: \"%S\".", file_path); - continue; - } - RDIB_SourceFile *src_file = src_file_bucket->src_file; - - // fill out line table fragment - RDIB_LineTableFragment *frag = rdib_line_table_fragment_chunk_list_push(arena, &frag_chunk_list, chunk->count); - frag->src_file = src_file; - frag->voffs = lines.voffs; - frag->line_nums = lines.line_nums; - frag->col_nums = lines.col_nums; - frag->line_count = lines.line_count; - frag->col_count = lines.col_count; - - // build list of fragments per line table - rdib_line_table_push_fragment_node(inline_site->line_table, frag); - - // build list of line table fragments per file - frag->next_src_file = ins_atomic_ptr_eval_assign(&src_file->line_table_frags, frag); - } - } - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(lnk_collect_obj_virtual_ranges_task) -{ - ProfBeginFunction(); - - LNK_ConvertUnitToRDITask *task = raw_task; - - U64 unit_idx = task_id; - LNK_Obj *obj = task->obj_arr[unit_idx]; - - U64 unit_chunk_idx = unit_idx / task->unit_chunk_cap; - U64 local_unit_idx = unit_idx - unit_chunk_idx * task->unit_chunk_cap; - - RDIB_Unit *dst = &task->units[unit_chunk_idx].v[local_unit_idx]; - dst->virt_range_count = 0; - dst->virt_ranges = push_array_no_zero(arena, Rng1U64, obj->header.section_count_no_null); - - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - - for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { - continue; - } - if (sect_header->vsize == 0) { - continue; - } - - dst->virt_ranges[dst->virt_range_count] = rng_1u64(sect_header->voff, sect_header->voff + sect_header->vsize); - ++dst->virt_range_count; - } - - // free unused memory - arena_pop(arena, sizeof(dst->virt_ranges[0]) * (obj->header.section_count_no_null - dst->virt_range_count)); - - ProfEnd(); -} - -internal String8List -lnk_build_rad_debug_info(TP_Context *tp, - TP_Arena *tp_arena, - OperatingSystem os, - RDI_Arch arch, - String8 image_name, - String8 image_data, - U64 obj_count, - LNK_Obj **obj_arr, - CV_DebugS *debug_s_arr, - U64 total_symbol_input_count, - LNK_CodeViewSymbolsInput *symbol_inputs, - CV_SymbolListArray *parsed_symbols, - CV_DebugT types[CV_TypeIndexSource_COUNT]) -{ - ProfBegin("RDI"); - Temp scratch = scratch_begin(tp_arena->v,tp_arena->count); - - RDIB_Input input = rdib_init_input(scratch.arena); - - COFF_SectionHeaderArray image_sects; - String8 image_strtab; - { - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, image_data); - image_sects.count = pe.section_count; - image_sects.v = (COFF_SectionHeader *)str8_substr(image_data, pe.section_table_range).str; - image_strtab = str8_substr(image_data, pe.string_table_range); - } - - ProfBegin("Top Level Info"); - { - U64 image_vsize = 0; - for (U64 sect_idx = 0; sect_idx < image_sects.count; sect_idx++) { - COFF_SectionHeader *sect = &image_sects.v[sect_idx]; - image_vsize = Max(image_vsize, sect->voff + sect->vsize); - } - - input.top_level_info.arch = arch; - input.top_level_info.exe_name = image_name; - input.top_level_info.exe_hash = rdi_hash(image_data.str, image_data.size); - input.top_level_info.voff_max = image_vsize; - input.top_level_info.producer_string = push_str8f(scratch.arena, "%s [Debug Info: CodeView]", BUILD_VERSION_STRING_LITERAL); - } - ProfEnd(); - - ProfBegin("Sections"); - { - input.sect_count = image_sects.count; - input.sections = push_array(scratch.arena, RDIB_BinarySection, image_sects.count); - for (U64 sect_idx = 0; sect_idx < image_sects.count; ++sect_idx) { - COFF_SectionHeader *src = &image_sects.v[sect_idx]; - RDIB_BinarySection *dst = &input.sections[sect_idx]; - String8 sect_name = coff_name_from_section_header(image_strtab, src); - - dst->name = push_str8_copy(scratch.arena, sect_name); - dst->flags = rdi_binary_section_flags_from_coff_section_flags(src->flags); - dst->voff_first = src->voff; - dst->voff_opl = src->voff + src->vsize; - dst->foff_first = src->foff; - dst->foff_opl = src->foff + src->fsize; - } - } - ProfEnd(); - - // assing low and high type indices per source - Rng1U64 itype_ranges[CV_TypeIndexSource_COUNT]; - for (U64 i = 0; i < ArrayCount(itype_ranges); ++i) { - itype_ranges[i] = rng_1u64(CV_MinComplexTypeIndex, CV_MinComplexTypeIndex + types[i].count); - } - - ProfBegin("Convert Types"); - U64 udt_name_buckets_cap; - LNK_UDTNameBucket **udt_name_buckets; - RDIB_Type **tpi_itype_map; - { - ProfBegin("Push TPI itype -> RDIB Type map"); - tpi_itype_map = push_array(scratch.arena, RDIB_Type *, itype_ranges[CV_TypeIndexSource_TPI].max); - ProfEnd(); - - ProfBegin("Push Built-in Types"); - RDIB_DataModel data_model = rdib_infer_data_model(os, arch); - lnk_push_basic_itypes(scratch.arena, data_model, tpi_itype_map, &input.types); - ProfEnd(); - - Assert(tpi_itype_map[0] == 0); - tpi_itype_map[0] = input.null_type; - - ProfBegin("Build UDT Name Hash Table"); - // TODO: fix memory life-time - udt_name_buckets_cap = 0; - udt_name_buckets = lnk_udt_name_hash_table_from_debug_t(tp, tp_arena, types[CV_TypeIndexSource_TPI], &udt_name_buckets_cap); - ProfEnd(); - - - ProfBegin("Convert CodeView types to RDIB Types"); - LNK_ConvertTypesToRDI task = {0}; - task.types = types; - task.type_cap = input.type_cap; - task.udt_cap = input.udt_cap; - task.variadic_type_ref = rdib_make_type_ref(scratch.arena, input.variadic_type); - task.itype_ranges = itype_ranges; - task.tpi_itype_map = tpi_itype_map; - task.udt_name_bucket_cap = udt_name_buckets_cap; - task.udt_name_buckets = udt_name_buckets; - task.rdib_types_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_struct_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_union_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_enum_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_udt_members_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_enum_members_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_types_params_lists = push_array(scratch.arena, RDIB_TypeChunkList, tp->worker_count); - task.rdib_udt_members_lists = push_array(scratch.arena, RDIB_UDTMemberChunkList, tp->worker_count); - task.rdib_enum_members_lists = push_array(scratch.arena, RDIB_UDTMemberChunkList, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, types[CV_TypeIndexSource_TPI].count, tp->worker_count); - tp_for_parallel(tp, tp_arena, tp->worker_count, lnk_convert_types_to_rdi_task, &task); - ProfEnd(); - - ProfBegin("Concat converted types"); - rdib_type_chunk_list_concat_in_place_many (&input.types, task.rdib_types_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.struct_list, task.rdib_types_struct_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.union_list, task.rdib_types_union_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.enum_list, task.rdib_types_enum_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.param_types, task.rdib_types_params_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.member_types, task.rdib_types_udt_members_lists, tp->worker_count); - rdib_type_chunk_list_concat_in_place_many (&input.enum_types, task.rdib_types_enum_members_lists, tp->worker_count); - rdib_udt_member_chunk_list_concat_in_place_many(&input.udt_members, task.rdib_udt_members_lists, tp->worker_count); - rdib_udt_member_chunk_list_concat_in_place_many(&input.enum_members, task.rdib_enum_members_lists, tp->worker_count); - ProfEnd(); - - // types are converted and we can remove indirection and release 'itype_map' - ProfBegin("Deref Type Refs"); - rdib_deref_type_refs(tp, &input.types); - rdib_deref_type_refs(tp, &input.struct_list); - rdib_deref_type_refs(tp, &input.union_list); - rdib_deref_type_refs(tp, &input.enum_list); - rdib_deref_type_refs(tp, &input.param_types); - rdib_deref_type_refs(tp, &input.member_types); - rdib_deref_type_refs(tp, &input.enum_types); - ProfEnd(); - } - ProfEnd(); - - // Loop over source files in objs and build a hash table - // for path -> source file maps. During symbol conversion - // we use the hash table to lookup source files and append - // inline site line tables. - U64 src_file_buckets_cap; - LNK_SourceFileBucket **src_file_buckets; - { - ProfBegin("Build Source File Hash Table"); - - LNK_ConvertSourceFilesToRDITask task = {0}; - task.obj_arr = obj_arr; - task.debug_s_arr = debug_s_arr; - - ProfBegin("Count Source Files"); - tp_for_parallel(tp, 0, obj_count, lnk_count_source_files_task, &task); - ProfEnd(); - - ProfBeginDynamic("Insert Source Files [Count %llu]", task.total_src_file_count); - task.src_file_buckets_cap = (U64)(task.total_src_file_count * 1.3); - task.src_file_buckets = push_array(tp_arena->v[0], LNK_SourceFileBucket*, task.src_file_buckets_cap); - tp_for_parallel(tp, tp_arena, obj_count, lnk_insert_src_files_task, &task); - ProfEnd(); - - src_file_buckets_cap = task.src_file_buckets_cap; - src_file_buckets = task.src_file_buckets; - - ProfEnd(); - } - - // Copy source files to a contiguous array and update source file pointers - // in buckets so we can do lookup and compute source file index in output array - // with a pointer subtraction. - ProfBegin("Source Files"); - for (U64 bucket_idx = 0; bucket_idx < src_file_buckets_cap; ++bucket_idx) { - LNK_SourceFileBucket *bucket = src_file_buckets[bucket_idx]; - if (bucket != 0) { - RDIB_SourceFile *new_src_file = rdib_source_file_chunk_list_push(scratch.arena, &input.src_files, input.src_file_chunk_cap); - - // restore chunk pointer after copy - RDIB_SourceFileChunk *new_src_file_chunk = new_src_file->chunk; - *new_src_file = *bucket->src_file; - new_src_file->chunk = new_src_file_chunk; - - bucket->src_file = new_src_file; - } - } - ProfEnd(); - - ProfBegin("Units"); - { - LNK_ConvertUnitToRDITask task = {0}; - task.image_sects = image_sects; - task.obj_arr = obj_arr; - task.debug_s_arr = debug_s_arr; - task.ipi = types[CV_TypeIndexSource_IPI]; - task.symbol_inputs = symbol_inputs; - task.parsed_symbols = parsed_symbols; - task.ipi_itype_range = itype_ranges[CV_TypeIndexSource_IPI]; - task.tpi_itype_range = itype_ranges[CV_TypeIndexSource_TPI]; - task.tpi_itype_map = tpi_itype_map; - task.src_file_buckets_cap = src_file_buckets_cap; - task.src_file_buckets = src_file_buckets; - task.udt_name_buckets = udt_name_buckets; - task.udt_name_buckets_cap = udt_name_buckets_cap; - task.src_file_chunk_cap = input.src_file_chunk_cap; - task.line_table_cap = input.line_table_cap; - task.symbol_chunk_cap = input.symbol_chunk_cap; - task.unit_chunk_cap = input.unit_chunk_cap; - task.inline_site_cap = input.inline_site_cap; - task.null_line_table = input.null_line_table; - task.extern_symbol_voff_ht = hash_table_init(scratch.arena, 256); - task.units = rdib_unit_chunk_list_reserve_ex(scratch.arena, &input.units, input.unit_chunk_cap, obj_count); - task.scopes = push_array(scratch.arena, RDIB_ScopeChunkList, tp->worker_count); - task.locals = push_array(scratch.arena, RDIB_VariableChunkList, tp->worker_count); - task.extern_gvars = push_array(scratch.arena, RDIB_VariableChunkList, tp->worker_count); - task.static_gvars = push_array(scratch.arena, RDIB_VariableChunkList, tp->worker_count); - task.extern_tvars = push_array(scratch.arena, RDIB_VariableChunkList, tp->worker_count); - task.static_tvars = push_array(scratch.arena, RDIB_VariableChunkList, tp->worker_count); - task.extern_procs = push_array(scratch.arena, RDIB_ProcedureChunkList, tp->worker_count); - task.static_procs = push_array(scratch.arena, RDIB_ProcedureChunkList, tp->worker_count); - task.inline_sites = push_array(scratch.arena, RDIB_InlineSiteChunkList, tp->worker_count); - task.line_tables = push_array(scratch.arena, RDIB_LineTableChunkList, tp->worker_count); - - ProfBegin("Gather Compiler Info"); - task.comp_info_arr = push_array(scratch.arena, LNK_CodeViewCompilerInfo, obj_count); - tp_for_parallel(tp, tp_arena, obj_count, lnk_find_obj_compiler_info_task, &task); - ProfEnd(); - - ProfBegin("Convert Line Tables"); - tp_for_parallel(tp, tp_arena, obj_count, lnk_convert_line_tables_to_rdi_task, &task); - ProfEnd(); - - ProfBegin("Build Inlinee Lines Accels"); - task.inlinee_lines_accel_arr = push_array(scratch.arena, CV_InlineeLinesAccel *, obj_count); - tp_for_parallel(tp, tp_arena, obj_count, lnk_build_inlinee_lines_accels_task, &task); - ProfEnd(); - - ProfBegin("Convert Symbols"); - tp_for_parallel(tp, tp_arena, total_symbol_input_count, lnk_convert_symbols_to_rdi_task, &task); - ProfEnd(); - - ProfBegin("Convert Inline Sites Line Tables"); - rdib_inline_site_chunk_list_concat_in_place_many(&input.inline_sites, task.inline_sites, tp->worker_count); - task.inline_site_chunks = rdib_array_from_inline_site_chunk_list(scratch.arena, input.inline_sites); - tp_for_parallel(tp, tp_arena, input.inline_sites.count, lnk_convert_inline_site_line_tables_task, &task); - ProfEnd(); - - ProfBegin("Collect Units Virtual Ranges"); - tp_for_parallel(tp, tp_arena, obj_count, lnk_collect_obj_virtual_ranges_task, &task); - ProfEnd(); - - rdib_line_table_chunk_list_concat_in_place_many(&input.line_tables, task.line_tables, tp->worker_count); - rdib_scope_chunk_list_concat_in_place_many(&input.scopes, task.scopes, tp->worker_count); - rdib_variable_chunk_list_concat_in_place_many(&input.locals, task.locals, tp->worker_count); - rdib_variable_chunk_list_concat_in_place_many(&input.extern_gvars, task.extern_gvars, tp->worker_count); - rdib_variable_chunk_list_concat_in_place_many(&input.static_gvars, task.static_gvars, tp->worker_count); - rdib_variable_chunk_list_concat_in_place_many(&input.extern_tvars, task.extern_tvars, tp->worker_count); - rdib_variable_chunk_list_concat_in_place_many(&input.static_tvars, task.static_tvars, tp->worker_count); - rdib_procedure_chunk_list_concat_in_place_many(&input.extern_procs, task.extern_procs, tp->worker_count); - rdib_procedure_chunk_list_concat_in_place_many(&input.static_procs, task.static_procs, tp->worker_count); - } - ProfEnd(); - - String8List rdi_data = rdib_finish(tp, tp_arena, &input); - - scratch_end(scratch); - ProfEnd(); - return rdi_data; -} - diff --git a/src/linker/lnk_debug_info.h b/src/linker/lnk_debug_info.h index 5d93dd36..dc094e0f 100644 --- a/src/linker/lnk_debug_info.h +++ b/src/linker/lnk_debug_info.h @@ -3,79 +3,121 @@ #pragma once -// --- Code View Input --------------------------------------------------------- +//////////////////////////////// +// RRT -typedef struct LNK_PchInfo +global read_only String8 g_rrt_magic = str8_lit_comp("RAD-TYPE-SERVER\0"); +global read_only U64 g_rrt_version = 2; + +typedef struct LNK_RRT { - CV_TypeIndex ti_lo; - CV_TypeIndex ti_hi; - U64 debug_p_obj_idx; -} LNK_PchInfo; + String8 path; -typedef struct LNK_CodeViewSymbolsInput + String8 type_data_raw; + union { + String8 type_hashes; + U64 **type_hashes_unpacked[CV_TypeIndexSource_COUNT]; + }; + Rng1U64 type_data_ranges[CV_TypeIndexSource_COUNT]; + String8 type_data [CV_TypeIndexSource_COUNT]; + Rng1U64 ti_ranges [CV_TypeIndexSource_COUNT]; + + U64 obj_count; + U64 *obj_leaf_counts; + U64 *obj_time_stamps; + Rng1U64 *obj_ti_ranges; + CV_TypeIndex **obj_ti_maps; + String8Array obj_paths; + Rng1U64 *obj_pch_ti_ranges; + U32 *obj_pch_indices; +} LNK_RRT; + +typedef struct { - U64 obj_idx; - CV_SymbolList *symbol_list; - String8 raw_symbols; -} LNK_CodeViewSymbolsInput; + U64 count; + LNK_RRT *v; +} LNK_RRT_Array; -typedef struct LNK_CodeViewInput -{ - U64 count; - U64 internal_count; - U64 external_count; - U64 type_server_count; - String8 *type_server_path_arr; // [type_server_count] - String8 *type_server_data_arr; // [type_server_count] - U64List *ts_to_obj_arr; // [type_server_count] - LNK_Obj **obj_arr; // [count] - LNK_PchInfo *pch_arr; // [count] - CV_DebugS *debug_s_arr; // [count] - CV_DebugT *debug_p_arr; // [count] - CV_DebugT *debug_t_arr; // [count] - CV_DebugT *merged_debug_t_p_arr; // [count] - - U64 total_symbol_input_count; - LNK_CodeViewSymbolsInput *symbol_inputs; // [total_symbol_input_count] - CV_SymbolListArray *parsed_symbols; // [count] - - LNK_Obj **internal_obj_arr; // [internal_count] - CV_DebugS *internal_debug_s_arr; // [internal_count] - CV_DebugT *internal_debug_t_arr; // [internal_count] - CV_DebugT *internal_debug_p_arr; // [internal_count] - U64 internal_total_symbol_input_count; - LNK_CodeViewSymbolsInput *internal_symbol_inputs; // [internal_total_symbol_input_count] - CV_SymbolListArray *internal_parsed_symbols; // [internal_count] - - LNK_Obj **external_obj_arr; // [external_count] - CV_DebugS *external_debug_s_arr; // [external_count] - CV_DebugT *external_debug_t_arr; // [external_count] - CV_DebugT *external_debug_p_arr; // [external_count] - U64 external_total_symbol_input_count; - LNK_CodeViewSymbolsInput *external_symbol_inputs; // [exteranl_total_symbol_input_count] - CV_SymbolListArray *external_parsed_symbols; // [external_count] - Rng1U64 **external_ti_ranges; // [type_server_count] - CV_DebugT **external_leaves; // [type_server_count] - U64 *external_obj_to_ts_idx_arr; // [external_count] - Rng1U64 external_obj_range; -} LNK_CodeViewInput; - -// --- Leaf Ref ---------------------------------------------------------------- +//////////////////////////////// +// CodeView typedef enum { - LNK_LeafLocType_Internal, - LNK_LeafLocType_External, - LNK_LeafLocType_Count -} LNK_LeafLocType; + LNK_TypeServerKind_Null, + LNK_TypeServerKind_PDB, + LNK_TypeServerKind_RRT, +} LNK_TypeServerKind; -#define LNK_LeafRefFlag_LocIdxExternal (1 << 31) -#define LNK_LeafRefFlag_LeafIdxIPI (1 << 31) typedef struct { - U32 enc_loc_idx; - U32 enc_leaf_idx; -} LNK_LeafRef; + CV_TypeServerInfo ts_info; + U64 ts_idx; + LNK_TypeServerKind ts_kind; + String8 ts_path; + U64List obj_indices; + LNK_RRT *rrt; + CV_DebugH *debug_h; +} LNK_TypeServer; +typedef struct LNK_TypeServerNode { LNK_TypeServer v; struct LNK_TypeServerNode *next; } LNK_TypeServerNode; +typedef struct LNK_TypeServerList { U64 count; LNK_TypeServerNode *first, *last; } LNK_TypeServerList; +typedef struct LNK_TypeServerArray { U64 count; LNK_TypeServer *v; } LNK_TypeServerArray; + +typedef struct LNK_SymbolInput +{ + U64 obj_idx; + String8 raw_symbols; +} LNK_SymbolInput; + +typedef struct +{ + LNK_Config *config; + U64 obj_count; + B32 is_stripped; + + LNK_RRT_Array rrt_input; + + U64 count; + LNK_Obj **obj_arr; + CV_DebugS *debug_s_arr; + CV_DebugT *debug_t_arr; + CV_DebugH *debug_h_arr; + U64 *obj_to_ts; + + String8List *debug_s_list_arr; + + U32Array int_obj_indices; + U32Array ext_obj_indices; + U32Array debug_p_indices; + U32Array type_server_indices; + + Rng1U64 ts_obj_range; + LNK_TypeServerArray ts_arr; + B32 *is_type_server_discarded; // [ts_arr.count] + CV_TypeIndex min_type_indices[CV_TypeIndexSource_COUNT]; + + U64 symbol_input_count; + LNK_SymbolInput *symbol_inputs; // [symbol_input_count] + Rng1U64 *symbol_input_ranges; // [worker_count] +} LNK_CodeViewInput; + +typedef struct +{ + LNK_CodeViewInput *input; + String8Array *raw_types; // [obj_count] + CV_DebugT *out_types; // [obj_count] +} LNK_ParseCvTypes; + +//////////////////////////////// +// Type Merging + +typedef struct { U32 obj_idx; U32 leaf_idx; } LNK_LeafRef; +typedef struct { U64 count; LNK_LeafRef **v; } LNK_LeafRefArray; + +typedef struct +{ + U64 cap; + LNK_LeafRef **bucket_arr; +} LNK_LeafHashTable; typedef struct LNK_LeafRange { @@ -83,295 +125,108 @@ typedef struct LNK_LeafRange Rng1U64 range; CV_DebugT *debug_t; } LNK_LeafRange; +typedef struct { U64 count; LNK_LeafRange *first, *last; } LNK_LeafRangeList; -typedef struct LNK_LeafRangeList +typedef enum { - U64 count; - LNK_LeafRange *first; - LNK_LeafRange *last; -} LNK_LeafRangeList; + LNK_MergeTypeFlag_BuildObjTiMap = (1 << 0), + LNK_MergeTypeFlag_SkipSymbolTypeFixup = (1 << 1), + LNK_MergeTypeFlag_ExportHashes = (1 << 2), +} LNK_MergeTypeFlags; typedef struct { - LNK_LeafRef leaf_ref; - CV_TypeIndex type_index; -} LNK_LeafBucket; + CV_TypeIndex min_type_indices[CV_TypeIndexSource_COUNT]; + U64 count [CV_TypeIndexSource_COUNT]; + U8 **v [CV_TypeIndexSource_COUNT]; -typedef struct -{ - U64 count; - LNK_LeafBucket **v; -} LNK_LeafBucketArray; - -typedef struct -{ - U64 cap; - LNK_LeafBucket **bucket_arr; -} LNK_LeafHashTable; - -typedef union -{ - struct { - U128Array **internal_hashes; - U128Array **external_hashes; - }; - U128Array **v[CV_TypeIndexSource_COUNT]; -} LNK_LeafHashes; - -// --- Symbol Parsing Tasks ---------------------------------------------------- - -typedef struct -{ - LNK_Obj **obj_arr; - String8List *sect_list_arr; - CV_DebugS *debug_s_arr; -} LNK_ParseDebugSTaskData; - -typedef struct -{ - LNK_Obj **obj_arr; - String8Array *data_arr_arr; -} LNK_CheckDebugTSigTaskData; - -typedef struct -{ - LNK_Obj **obj_arr; - String8Array *data_arr_arr; - CV_DebugT *debug_t_arr; -} LNK_ParseDebugTTaskData; - -typedef struct -{ - String8Array data_arr; - MSF_Parsed **msf_parse_arr; -} LNK_MsfParsedFromDataTask; - -typedef struct -{ - CV_TypeServerInfo *ts_info_arr; - MSF_Parsed **msf_parse_arr; - Rng1U64 **external_ti_ranges; - CV_DebugT **external_leaves; - B8 *is_corrupted; -} LNK_GetExternalLeavesTask; - -// --- Leaf Deduping Tasks ----------------------------------------------------- - -typedef struct -{ - LNK_LeafRangeList *leaf_ranges_per_task; - U64 **count_arr_arr; -} LNK_CountPerSourceLeafTask; - -typedef struct -{ - LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - Arena **fixed_arenas; - CV_DebugT *debug_t_arr; -} LNK_LeafHasherTask; + // @type_server + CV_TypeIndex **obj_ti_maps; + U64 *hashes[CV_TypeIndexSource_COUNT]; +} LNK_MergedTypes; typedef struct { LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - LNK_LeafHashTable *leaf_ht_arr; - CV_DebugT *debug_t_arr; -} LNK_LeafDedupInternal; - -typedef struct -{ - LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - LNK_LeafHashTable *leaf_ht_arr; - CV_TypeIndexSource dedup_ti_source; -} LNK_LeafDedupExternal; - -typedef struct -{ - LNK_LeafHashTable *ht; - U64 *count_arr; - Rng1U64 *range_arr; - U64 *offset_arr; - LNK_LeafBucketArray result; -} LNK_GetPresentBucketsTask; - -typedef struct -{ - U64 loc_idx_bit_count_0; - U64 loc_idx_bit_count_1; - U64 loc_idx_bit_count_2; - U64 counts_max; - U32 **counts_arr; - Rng1U64 *ranges; - LNK_LeafBucket **dst; - LNK_LeafBucket **src; - U64 loc_idx_max; - U64 pass_idx; -} LNK_LeafRadixSortTask; - -typedef struct -{ - U32 *counts; - U32 *offsets; - LNK_LeafBucket **dst; - LNK_LeafBucket **src; - Rng1U64 *ranges; -} LNK_LeafLocRadixSortTask; - -typedef struct -{ - Rng1U64 *range_arr; - CV_TypeIndex min_type_index; - LNK_LeafBucketArray bucket_arr; -} LNK_AssignTypeIndicesTask; - -typedef struct -{ - LNK_CodeViewInput *input; - LNK_LeafBucket **bucket_arr; - U8 **raw_leaf_arr; - Rng1U64 *range_arr; -} LNK_UnbucketRawLeavesTask; - -typedef struct -{ - Rng1U64 *ranges; - LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - LNK_LeafHashTable *leaf_ht_arr; - CV_SymbolList *symbol_list_arr; - Arena **arena_arr; -} LNK_PatchSymbolTypesTask; - -typedef struct -{ - LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - LNK_LeafHashTable *leaf_ht_arr; - CV_DebugS *debug_s_arr; -} LNK_PatchInlinesTask; - -typedef struct -{ - LNK_CodeViewInput *input; - LNK_LeafHashes *hashes; - LNK_LeafHashTable *leaf_ht_arr; - LNK_LeafBucket **bucket_arr; - Rng1U64 *range_arr; - Arena **fixed_arena_arr; -} LNK_PatchLeavesTask; - -// --- Code View Processing Trasks --------------------------------------------- - -typedef struct -{ - String8List *data_list_arr; -} LNK_ProcessedCodeViewC11Data; - -typedef struct -{ - String8List *data_list_arr; - String8List *source_file_names_list_arr; -} LNK_ProcessedCodeViewC13Data; - -typedef struct -{ - LNK_CodeViewSymbolsInput *inputs; -} LNK_ParseCVSymbolsTaskData; - -typedef struct -{ - U64 total_symbol_input_count; - LNK_CodeViewSymbolsInput *symbol_inputs; - CV_SymbolListArray *parsed_symbols; - PDB_DbiModule **mod_arr; - String8List *symbol_data_arr; - CV_SymbolList *gsi_list_arr; -} LNK_ProcessSymDataTaskData; - -typedef struct -{ CV_DebugS *debug_s_arr; - MSF_Context *msf; - PDB_DbiModule **dbi_mod_arr; - String8List *c13_data_arr; - String8List *source_file_names_list_arr; - U64 string_data_base_offset; - CV_StringHashTable string_ht; -} LNK_ProcessC13DataTask; + LNK_LeafHashTable leaf_ht_arr[CV_TypeIndexSource_COUNT]; + Arena **fixed_arenas; + CV_TypeIndexSource ti_source; + U32Array indices; + Rng1U64 *ranges; + + // count types per source + LNK_LeafRangeList *leaf_ranges_per_task; + U64 per_source_count[CV_TypeIndexSource_COUNT]; + + // extract present buckets + U64 *counts [CV_TypeIndexSource_COUNT]; + U64 *offsets[CV_TypeIndexSource_COUNT]; + + // leaf ref radix sort + U64 obj_idx_bit_count_0; + U64 obj_idx_bit_count_1; + U64 obj_idx_bit_count_2; + U64 counts_max; + U32 **counts_arr; + LNK_LeafRef **dst; + LNK_LeafRef **src; + U64 pass_idx; + + // assign type indices + U64 assigned_type_caps [CV_TypeIndexSource_COUNT]; + CV_TypeIndex *assigned_type_hts [CV_TypeIndexSource_COUNT]; + CV_TypeIndex min_type_indices [CV_TypeIndexSource_COUNT]; + LNK_LeafRefArray unique_leaf_refs_arr[CV_TypeIndexSource_COUNT]; + + U64 *obj_ti_map_counts; + U64 *obj_ti_map_offsets; + CV_TypeIndex *obj_ti_batch; + + U64 pop_obj_idx; + Rng1U64 *pop_range; + + LNK_MergedTypes result; +} LNK_MergeTypes; + +//////////////////////////////// +// PDB + +typedef enum +{ + LNK_PDB_BuilderFlag_All = 0, + LNK_PDB_BuilderFlag_Tpi = (1<<0), + LNK_PDB_BuilderFlag_Ipi = (1<<1), + LNK_PDB_BuilderFlag_Modules = (1<<2), + LNK_PDB_BuilderFlag_SC = (1<<4), + LNK_PDB_BuilderFlag_NATVIS = (1<<5), +} LNK_PDB_BuilderFlags; typedef struct { - MSF_Context *msf; - PDB_DbiModule **mod_arr; - String8List *symbol_data_arr; - String8List *c11_data_list_arr; - String8List *c13_data_list_arr; - String8List *globrefs_arr; -} LNK_WriteModuleDataTask; + String8 image_data; + LNK_SymbolTable *symtab; + LNK_CodeViewInput *cv; + PDB_Context *pdb; + CV_StringHashTable string_ht; + PDB_DbiModule **mod_arr; // [obj_count] + U32Array *obj_indices; // [obj_count] -typedef struct -{ - LNK_Obj **obj_arr; - PDB_DbiModule **mod_arr; - PDB_DbiSectionContribList *sc_list; - String8 image_data; + U64 symbol_count; + + // push DBI SC Map + PE_BinInfo pe; + COFF_SectionHeader **image_section_table; + U64 image_section_table_count; Rng1U64Array image_section_file_ranges; Rng1U64Array image_section_virt_ranges; -} LNK_PushDbiSecContribTaskData; + PDB_DbiSectionContribList *sc_list; // [obj_count] +} LNK_BuildPdb; typedef struct { - U32Array *hash_arr_arr; - CV_SymbolList *list_arr; -} LNK_HashCVSymbolListTask; - -typedef struct -{ - U64 *hash_arr; - CV_SymbolNode **arr; - Rng1U64 *range_arr; -} LNK_CvSymbolPtrArrayHasher; - -typedef struct -{ - LNK_SymbolHashTrieChunkList *chunk_lists; - CV_SymbolList *pub_list_arr; - - Rng1U64 *symbol_ranges; - PDB_GsiContext *gsi; - CV_SymbolPtrArray symbols; - U32 *hashes; -} LNK_BuildPublicSymbolsTask; - -typedef struct -{ - CV_TypeIndex ipi_min_type_index; - CV_DebugT ipi_types; - LNK_CodeViewSymbolsInput *symbol_inputs; - CV_SymbolListArray *parsed_symbols; -} LNK_PostProcessCvSymbolsTask; - -typedef struct -{ - Rng1U64 *range_arr; - CV_SymbolPtrNode **bucket_arr; - CV_SymbolPtrNode **out_arr; - U64 *out_count_arr; -} LNK_GsiDeduper; - -typedef struct -{ - Rng1U64 *range_arr; - CV_SymbolPtrNode **bucket_arr; - U64 *symbol_base_arr; - CV_SymbolNode **symbol_arr; -} LNK_GsiUnbucket; - -typedef struct -{ - CV_DebugT debug_t; + U64 leaf_count; + U8 **leaf_arr; Rng1U64 *ranges; U64 hash_length; B32 make_map; @@ -379,224 +234,28 @@ typedef struct String8List *maps; } LNK_TypeNameReplacer; -// --- RAD Debug Info ---------------------------------------------------------- +//////////////////////////////// +// RRT -typedef struct -{ - String8 name; - U64 leaf_idx; -} LNK_UDTNameBucket; +internal String8List lnk_string_list_from_rrt(Arena *arena, LNK_RRT *rrt); +internal B32 lnk_rrt_from_string (Arena *arena, String8 rrt_data, String8 path, LNK_RRT *rrt_out); -typedef struct -{ - CV_DebugT debug_t; - Rng1U64 *ranges; - U64 buckets_cap; - LNK_UDTNameBucket **buckets; -} LNK_BuildUDTNameHashTableTask; +//////////////////////////////// +// CodeView -typedef struct -{ - CV_DebugT debug_t; - CV_TypeIndex ti_lo; - Rng1U64 *ranges; - U64 udt_name_buckets_cap; - LNK_UDTNameBucket **udt_name_buckets; - CV_TypeIndex *fwdmap; -} LNK_BuildUDTFwdMapTask; +internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_Config *config, U64 objs_count, LNK_Obj **objs, LNK_RRT_Array rrt_input); -// --- RDI Conversion Tasks ---------------------------------------------------- +internal int lnk_leaf_ref_compare (LNK_LeafRef a, LNK_LeafRef b); +internal int lnk_leaf_ref_is_before (void *raw_a, void *raw_b); +internal B32 lnk_match_leaf_ref (LNK_CodeViewInput *input, LNK_LeafRef a, LNK_LeafRef b); +internal U64 lnk_hash_cv_leaf (LNK_CodeViewInput *input, LNK_LeafRef leaf_ref, CV_TypeIndexInfoList ti_info_list, B32 discard_cycles); +internal void lnk_hash_cv_leaf_deep (Arena *arena, LNK_CodeViewInput *input, LNK_LeafRef leaf_ref, CV_TypeIndexInfoList ti_info_list); +internal LNK_LeafRef * lnk_leaf_hash_table_insert_or_update(LNK_LeafHashTable *leaf_ht, LNK_CodeViewInput *input, CV_DebugH *hashes, U64 hash, LNK_LeafRef *new_bucket); +internal LNK_LeafRef * lnk_leaf_hash_table_search (LNK_LeafHashTable *ht, LNK_CodeViewInput *input, LNK_LeafRef leaf_ref); +internal LNK_MergedTypes lnk_merge_types (TP_Context *tp, TP_Arena *tp_temp, LNK_CodeViewInput *input, LNK_MergeTypeFlags merge_flags); +internal void lnk_replace_type_names_with_hashes (TP_Context *tp, TP_Arena *arena, U64 leaf_count, U8 **leaf_arr, LNK_TypeNameHashMode mode, U64 hash_length, String8 map_name); -typedef struct -{ - CV_DebugT *types; - U64 type_cap; - U64 udt_cap; - RDIB_TypeRef variadic_type_ref; - Rng1U64 *itype_ranges; - U64 udt_name_bucket_cap; - LNK_UDTNameBucket **udt_name_buckets; - RDIB_Type **tpi_itype_map; - RDIB_TypeChunkList *rdib_types_lists; - RDIB_TypeChunkList *rdib_types_struct_lists; - RDIB_TypeChunkList *rdib_types_union_lists; - RDIB_TypeChunkList *rdib_types_enum_lists; - RDIB_TypeChunkList *rdib_types_params_lists; - RDIB_TypeChunkList *rdib_types_udt_members_lists; - RDIB_TypeChunkList *rdib_types_enum_members_lists; - RDIB_UDTMemberChunkList *rdib_udt_members_lists; - RDIB_UDTMemberChunkList *rdib_enum_members_lists; - Rng1U64 *ranges; -} LNK_ConvertTypesToRDI; - -typedef struct -{ - U64 obj_idx; - RDIB_SourceFile *src_file; -} LNK_SourceFileBucket; - -typedef struct -{ - LNK_Obj **obj_arr; - CV_DebugS *debug_s_arr; - U64 total_src_file_count; - LNK_SourceFileBucket **src_file_buckets; - U64 src_file_buckets_cap; -} LNK_ConvertSourceFilesToRDITask; - -typedef struct -{ - CV_Arch arch; - CV_Language language; - String8 compiler_name; -} LNK_CodeViewCompilerInfo; - -typedef struct -{ - COFF_SectionHeaderArray image_sects; - LNK_Obj **obj_arr; - CV_DebugS *debug_s_arr; - CV_DebugT ipi; - LNK_CodeViewSymbolsInput *symbol_inputs; - CV_SymbolListArray *parsed_symbols; - Rng1U64 ipi_itype_range; - Rng1U64 tpi_itype_range; - RDIB_Type **tpi_itype_map; - U64 src_file_buckets_cap; - LNK_SourceFileBucket **src_file_buckets; - LNK_UDTNameBucket **udt_name_buckets; - U64 line_table_cap; - U64 udt_name_buckets_cap; - U64 src_file_chunk_cap; - U64 symbol_chunk_cap; - U64 unit_chunk_cap; - U64 inline_site_cap; - RDIB_LineTable *null_line_table; - HashTable *extern_symbol_voff_ht; - LNK_CodeViewCompilerInfo *comp_info_arr; - CV_InlineeLinesAccel **inlinee_lines_accel_arr; - - RDIB_InlineSiteChunk **inline_site_chunks; - - // output - RDIB_UnitChunk *units; - RDIB_VariableChunkList *locals; - RDIB_ScopeChunkList *scopes; - RDIB_VariableChunkList *extern_gvars; - RDIB_VariableChunkList *static_gvars; - RDIB_VariableChunkList *extern_tvars; - RDIB_VariableChunkList *static_tvars; - RDIB_ProcedureChunkList *extern_procs; - RDIB_ProcedureChunkList *static_procs; - RDIB_InlineSiteChunkList *inline_sites; - RDIB_LineTableChunkList *line_tables; -} LNK_ConvertUnitToRDITask; - -// --- CodeView ---------------------------------------------------------------- - -internal CV_DebugS * lnk_parse_debug_s_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *sect_list_arr); -internal CV_DebugT * lnk_parse_debug_t_sections(TP_Context *tp, TP_Arena *arena, U64 obj_count, LNK_Obj **obj_arr, String8List *debug_t_list_arr); -internal CV_SymbolList * lnk_cv_symbol_list_arr_from_debug_s_arr(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr); -internal LNK_PchInfo * lnk_setup_pch(Arena *arena, U64 obj_count, LNK_Obj **obj_arr, CV_DebugT *debug_t_arr, CV_DebugT *debug_p_arr, CV_SymbolListArray *parsed_symbols, String8List alt_pch_dirs); - -internal LNK_CodeViewInput lnk_make_code_view_input(TP_Context *tp, TP_Arena *tp_arena, LNK_IO_Flags io_flags, String8List lib_dir_list, String8List alt_pch_dirs, U64 objs_count, LNK_Obj **objs); - -internal LNK_LeafRef lnk_leaf_ref(U32 idx, U32 leaf_idx); -internal LNK_LeafRef lnk_obj_leaf_ref(U32 obj_idx, U32 leaf_idx); -internal LNK_LeafRef lnk_ts_leaf_ref(CV_TypeIndexSource ti_source, U32 ts_idx, U32 leaf_idx); -internal int lnk_leaf_ref_compare(LNK_LeafRef a, LNK_LeafRef b); -internal LNK_LeafLocType lnk_loc_type_from_leaf_ref(LNK_LeafRef leaf_ref); -internal LNK_LeafLocType lnk_loc_type_from_obj_idx(LNK_CodeViewInput *input, U64 obj_idx); -internal U64 lnk_loc_idx_from_obj_idx(LNK_CodeViewInput *input, U64 obj_idx); -internal CV_TypeIndex lnk_ti_lo_from_loc(LNK_CodeViewInput *input, LNK_LeafLocType loc_type, U64 loc_idx, CV_TypeIndexSource ti_source); -internal CV_TypeIndex lnk_ti_lo_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref); -internal String8 lnk_data_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref); -internal CV_Leaf lnk_cv_leaf_from_leaf_ref(LNK_CodeViewInput *input, LNK_LeafRef leaf_ref); -internal U128 lnk_hash_from_leaf_ref(LNK_LeafHashes *hashes, LNK_LeafRef leaf_ref); -internal LNK_LeafRef lnk_leaf_ref_from_loc_idx_and_ti(LNK_CodeViewInput *input, LNK_LeafLocType loc_type, CV_TypeIndexSource ti_source, U64 loc_idx, CV_TypeIndex obj_ti); -internal B32 lnk_match_leaf_ref(LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef a, LNK_LeafRef b); -internal B32 lnk_match_leaf_ref_deep(Arena *arena, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef a, LNK_LeafRef b); -internal U128 lnk_hash_cv_leaf(Arena *arena, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafLocType loc_type, U32 loc_idx, Rng1U64 *ti_ranges, CV_TypeIndex curr_ti, CV_Leaf leaf, CV_TypeIndexInfoList ti_info_list); -internal void lnk_hash_cv_leaf_deep(Arena *arena, LNK_CodeViewInput *input, Rng1U64 *ti_ranges, CV_DebugT *leaves, LNK_LeafHashes *hashes, LNK_LeafLocType loc_type, U32 loc_idx, CV_TypeIndexInfoList ti_info_list, String8 data); -internal LNK_LeafBucket * lnk_leaf_hash_table_insert_or_update(LNK_LeafHashTable *leaf_ht, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, U128 hash, LNK_LeafBucket *new_bucket); -internal LNK_LeafBucket * lnk_leaf_hash_table_search(LNK_LeafHashTable *ht, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafRef leaf_ref); - -internal void lnk_cv_debug_t_count_leaves_per_source(TP_Context *tp, U64 count, CV_DebugT *debug_t_arr, U64 *per_source_count_arr); -internal void lnk_hash_debug_t_arr(TP_Context *tp, Arena *arena, U64 obj_count, CV_DebugT *debug_t_arr, U128Array *hash_arr_arr); -internal LNK_LeafBucketArray lnk_present_bucket_array_from_leaf_hash_table(TP_Context *tp, Arena *arena, LNK_LeafHashTable *ht); -internal void lnk_leaf_bucket_array_sort_radix_subset_parallel(TP_Context *tp, U64 bucket_count, U64 loc_idx_max, LNK_LeafBucket **dst, LNK_LeafBucket **src); -internal void lnk_leaf_bucket_array_sort_radix_parallel(TP_Context *tp, LNK_LeafBucketArray arr, U64 obj_count, U64 type_server_count); -internal void lnk_assign_type_indices(TP_Context *tp, LNK_LeafBucketArray bucket_arr, CV_TypeIndex min_type_index); -internal void lnk_patch_symbols(TP_Context *tp, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafHashTable *leaf_ht_arr); -internal void lnk_patch_inlines(TP_Context *tp, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafHashTable *leaf_ht_arr, U64 obj_count, CV_DebugS *debug_s_arr); -internal void lnk_patch_leaves(TP_Context *tp, LNK_CodeViewInput *input, LNK_LeafHashes *hashes, LNK_LeafHashTable *leaf_ht_arr, LNK_LeafBucketArray bucket_arr); -internal String8Node * lnk_copy_raw_leaf_arr_to_type_server(TP_Context *tp, CV_DebugT types, PDB_TypeServer *type_server); -internal CV_DebugT * lnk_import_types(TP_Context *tp, TP_Arena *tp_temp, LNK_CodeViewInput *input); - -internal void lnk_replace_type_names_with_hashes(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, LNK_TypeNameHashMode mode, U64 hash_length, String8 map_name); - -// --- RAD Debug info ---------------------------------------------------------- - -internal U64 lnk_udt_name_hash_table_hash(String8 string); -internal LNK_UDTNameBucket ** lnk_udt_name_hash_table_from_debug_t(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, U64 *buckets_cap_out); -internal LNK_UDTNameBucket * lnk_udt_name_hash_table_lookup(LNK_UDTNameBucket **buckets, U64 cap, String8 name); -internal CV_TypeIndex * lnk_build_udt_fwdmap(TP_Context *tp, Arena *arena, CV_DebugT debug_t, CV_TypeIndex ti_lo, LNK_UDTNameBucket **udt_name_buckets, U64 udt_name_buckets_cap); - -internal RDIB_TypeRef lnk_rdib_type_from_itype(LNK_ConvertTypesToRDI *task, CV_TypeIndex itype); -internal RDI_MemberKind lnk_rdib_method_kind_from_cv_prop(CV_MethodProp prop); -internal LNK_SourceFileBucket * lnk_src_file_hash_table_hash(String8 file_path, CV_C13ChecksumKind checksum_kind, String8 checksum_bytes); -internal LNK_SourceFileBucket * lnk_src_file_hash_table_lookup_slot(LNK_SourceFileBucket **src_file_buckets, U64 src_file_buckets_cap, U64 hash, String8 file_path, CV_C13ChecksumKind checksum_kind, String8 checksum_bytes); - -internal String8List lnk_build_rad_debug_info(TP_Context *tp, - TP_Arena *tp_arena, - OperatingSystem os, - RDI_Arch arch, - String8 image_name, - String8 image_data, - U64 obj_count, - LNK_Obj **obj_arr, - CV_DebugS *debug_s_arr, - U64 total_symbol_input_count, - LNK_CodeViewSymbolsInput *symbol_inputs, - CV_SymbolListArray *parsed_symbols, - CV_DebugT types[CV_TypeIndexSource_COUNT]); - -// --- PDB --------------------------------------------------------------------- - -internal LNK_ProcessedCodeViewC11Data lnk_process_c11_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr); -internal LNK_ProcessedCodeViewC13Data lnk_process_c13_data(TP_Context *tp, TP_Arena *arena, U64 obj_count, CV_DebugS *debug_s_arr, U64 string_data_base_offset, CV_StringHashTable string_ht, MSF_Context *msf, PDB_DbiModule **mod_arr); -internal U64 * lnk_hash_cv_symbol_ptr_arr(TP_Context *tp, Arena *arena, CV_SymbolPtrArray arr); -internal CV_SymbolPtrArray lnk_dedup_gsi_symbols(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 obj_count, CV_SymbolList *symbol_list_arr); - -internal void lnk_build_pdb_public_symbols(TP_Context *tp, TP_Arena *arena, LNK_SymbolTable *symtab, PDB_PsiContext *psi); - -internal String8List lnk_build_pdb(TP_Context *tp, - TP_Arena *tp_arena, - String8 image_data, - LNK_Config *config, - LNK_SymbolTable *symtab, - U64 obj_count, - LNK_Obj **obj_arr, - CV_DebugS *debug_s_arr, - U64 total_symbol_input_count, - LNK_CodeViewSymbolsInput *symbol_inputs, - CV_SymbolListArray *parsed_symbols, - CV_DebugT types[CV_TypeIndexSource_COUNT]); - -// --- RAD Debug Info ---------------------------------------------------------- - -internal U64 lnk_udt_name_hash_table_hash(String8 string); -internal LNK_UDTNameBucket ** lnk_udt_name_hash_table_from_debug_t(TP_Context *tp, TP_Arena *arena, CV_DebugT debug_t, U64 *buckets_cap_out); -internal LNK_UDTNameBucket * lnk_udt_name_hash_table_lookup(LNK_UDTNameBucket **buckets, U64 cap, String8 name); - -internal CV_TypeIndex * lnk_build_udt_fwdmap(TP_Context *tp, - Arena *arena, - CV_DebugT debug_t, - CV_TypeIndex ti_lo, - LNK_UDTNameBucket **udt_name_buckets, - U64 udt_name_buckets_cap); - -internal void lnk_init_rdib_itype_map(Arena *arena, RDI_Arch arch, RDIB_Type **itype_map, RDIB_TypeChunkList *rdib_types_list); -internal RDIB_TypeRef lnk_rdib_type_from_itype(LNK_ConvertTypesToRDI *task, CV_TypeIndex itype); -internal RDI_MemberKind lnk_rdib_method_kind_from_cv_prop(CV_MethodProp prop); +//////////////////////////////// +// PDB +internal String8List lnk_build_pdb(TP_Context *tp, TP_Arena *tp_arena, String8 image_data, LNK_Config *config, LNK_SymbolTable *symtab, LNK_CodeViewInput *cv, LNK_MergedTypes cv_types, LNK_PDB_BuilderFlags builder_flags); diff --git a/src/linker/lnk_error.c b/src/linker/lnk_error.c deleted file mode 100644 index f06a3b7e..00000000 --- a/src/linker/lnk_error.c +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -static LNK_ErrorMode g_error_mode_arr[LNK_Error_Count]; -static LNK_ErrorCodeStatus g_error_code_status_arr[LNK_Error_Count]; -static B32 g_log_status[LNK_Log_Count]; - -internal void -lnk_exit(int code) -{ - exit(code); -} - -internal void -lnk_init_error_handler(void) -{ - for (int i = LNK_Error_StopFirst; i < LNK_Error_StopLast; ++i) { - g_error_mode_arr[i] = LNK_ErrorMode_Stop; - } - for (int i = LNK_Error_First; i < LNK_Error_Last; ++i) { - g_error_mode_arr[i] = LNK_ErrorMode_Continue; - } - for (int i = LNK_Warning_First; i < LNK_Warning_Last; ++i) { - g_error_mode_arr[i] = LNK_ErrorMode_Warn; - } -} - -internal String8 -lnk_string_from_error_mode(LNK_ErrorMode mode) -{ - switch (mode) { - case LNK_ErrorMode_Ignore: return str8_lit("Ignore"); - case LNK_ErrorMode_Continue: return str8_lit("Error"); - case LNK_ErrorMode_Stop: return str8_lit("Error"); - case LNK_ErrorMode_Warn: return str8_lit("Warning"); - } - return str8_zero(); -} - -internal void -lnk_errorfv(LNK_ErrorCode code, char *fmt, va_list args) -{ - if (g_error_mode_arr[code] == LNK_ErrorMode_Ignore) { - return; - } - if (lnk_is_error_code_ignored(code)) { - return; - } - - Temp scratch = scratch_begin(0,0); - String8 message = push_str8fv(scratch.arena, fmt, args); - String8 string = push_str8f(scratch.arena, "%S(%03d): %S\n", lnk_string_from_error_mode(g_error_mode_arr[code]), code, message); - fprintf(stderr, "%.*s", str8_varg(string)); - scratch_end(scratch); - - if (g_error_mode_arr[code] == LNK_ErrorMode_Stop) { - lnk_exit(code); - } -} - -internal void -lnk_error(LNK_ErrorCode code, char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - lnk_errorfv(code, fmt, args); - va_end(args); -} - -internal void -lnk_error_with_loc_fv(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, va_list args) -{ - Temp scratch = scratch_begin(0, 0); - String8 text = push_str8fv(scratch.arena, fmt, args); - if (obj_path.size) { - if (lib_path.size) { - lnk_error(code, "%S(%S): %S", lib_path, str8_skip_last_slash(obj_path), text); - } else { - lnk_error(code, "%S: %S", obj_path, text); - } - } else { - lnk_error(code, "RADLINK: %S", text); - } - scratch_end(scratch); -} - -internal void -lnk_error_with_loc(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, ...) -{ - va_list args; va_start(args, fmt); - lnk_error_with_loc_fv(code, obj_path, lib_path, fmt, args); - va_end(args); -} - -internal void -lnk_supplement_error(char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - - Temp scratch = scratch_begin(0,0); - String8 string = push_str8fv(scratch.arena, fmt, args); - - fprintf(stderr, "\t"); - fprintf(stderr, "%.*s", str8_varg(string)); - fprintf(stderr, "\n"); - - va_end(args); - scratch_end(scratch); -} - -internal void -lnk_supplement_error_list(String8List list) -{ - for (String8Node *node = list.first; node != 0; node = node->next) { - lnk_supplement_error("%.*s", str8_varg(node->string)); - } -} - -internal void -lnk_suppress_error(LNK_ErrorCode code) -{ - g_error_code_status_arr[code] = LNK_ErrorCodeStatus_Ignore; -} - -internal LNK_ErrorCodeStatus -lnk_get_error_code_status(LNK_ErrorCode code) -{ - return g_error_code_status_arr[code]; -} - -internal void -lnk_internal_error(LNK_InternalError code, char *file, int line, char *fmt, ...) -{ - Temp scratch = scratch_begin(0,0); - va_list args; - va_start(args, fmt); - - String8 issue = push_str8fv(scratch.arena, fmt, args); - fprintf(stderr, "internal error #%03d in %s:%u\n", code, file, line); - fprintf(stderr, "\t%.*s\n", str8_varg(issue)); - - va_end(args); - scratch_end(scratch); -} - diff --git a/src/linker/lnk_error.h b/src/linker/lnk_error.h deleted file mode 100644 index 7a7e4a28..00000000 --- a/src/linker/lnk_error.h +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -typedef enum -{ - LNK_Error_Null, - - LNK_Error_StopFirst, - LNK_Error_Cmdl, - LNK_Error_EndprecompNotFound, - LNK_Error_EntryPoint, - LNK_Error_ExternalTypeServerConflict, - LNK_Error_FileNotFound, - LNK_Error_IllData, - LNK_Error_IllExport, - LNK_Error_IncomatibleCmdOptions, - LNK_Error_IncompatibleMachine, - LNK_Error_InvalidPrecompLeafCount, - LNK_Error_InvalidStartIndex, - LNK_Error_NoAccess, - LNK_Error_NoSubsystem, - LNK_Error_OutOfExportOrdinals, - LNK_Error_PrecompObjNotFound, - LNK_Error_PrecompSigMismatch, - LNK_Error_Telemetry, - LNK_Error_UnsupportedMachine, - LNK_Error_Mt, - LNK_Error_UnableToSerializeMsf, - LNK_Error_LoadRes, - LNK_Error_IO, - LNK_Error_LargeAddrAwareRequired, - LNK_Error_InvalidPath, - LNK_Error_MultiplyDefinedSymbol, - LNK_Error_SectRefsDiscardedMemory, - LNK_Error_IllegalSectionMerge, - LNK_Error_IllegalRelocation, - LNK_Error_CircularMerge, - LNK_Error_AssociativeLoop, - LNK_Error_AlternateNameConflict, - LNK_Error_RelocationAgainstRemovedSection, - LNK_Error_StopLast, - - LNK_Error_First, - LNK_Error_AlreadyDefinedSymbol, - LNK_Error_CvPrecomp, - LNK_Error_Natvis, - LNK_Error_TooManyFiles, - LNK_Error_UnableToOpenTypeServer, - LNK_Error_UnexpectedCodePath, - LNK_Error_CvIllSymbolData, - LNK_Error_InvalidTypeIndex, - LNK_Error_UndefinedIsWeak, - LNK_Error_WeakCycle, - LNK_Error_InvalidLib, - LNK_Error_UnresolvedSymbol, - LNK_Error_Last, - - LNK_Warning_First, - LNK_Warning_InvalidMergeDirectiveFormat, - LNK_Warning_AmbiguousMerge, - LNK_Warning_AtypicalStartIndex, - LNK_Warning_Cmdl, - LNK_Warning_Directive, - LNK_Warning_DuplicateObjPath, - LNK_Warning_ExternalTypeServerAgeMismatch, - LNK_Warning_FileNotFound, - LNK_Warning_IllData, - LNK_Warning_IllExport, - LNK_Warning_InvalidNatvisFileExt, - LNK_Warning_LargePages, - LNK_Warning_LargePagesNotEnabled, - LNK_Warning_MismatchedTypeServerSignature, - LNK_Warning_MissingExternalTypeServer, - LNK_Warning_MultipleDebugTAndDebugP, - LNK_Warning_MultipleExternalTypeServers, - LNK_Warning_MultipleLibMatch, - LNK_Warning_MultiplyDefinedImport, - LNK_Warning_Natvis, - LNK_Warning_PrecompObjSymbolsNotFound, - LNK_Warning_SectionFlagsConflict, - LNK_Warning_Subsystem, - LNK_Warning_UnknownDirective, - LNK_Warning_IllegalDirective, - LNK_Warning_UnresolvedComdat, - LNK_Warning_UnusedDelayLoadDll, - LNK_Warning_LongSectionName, - LNK_Warning_UnknownSwitch, - LNK_Warning_TLSAlign, - LNK_Warning_DirectiveSectionWithRelocs, - LNK_Warning_NoLargeAddressAwarenessForDll, - LNK_Warning_TryingToExportEntryPoint, - LNK_Warning_Last, - - LNK_Error_Count -} LNK_ErrorCode; - -typedef enum -{ - LNK_ErrorMode_Ignore, - LNK_ErrorMode_Stop, - LNK_ErrorMode_Continue, - LNK_ErrorMode_Warn, -} LNK_ErrorMode; - -typedef enum -{ - LNK_InternalError_Null, - LNK_InternalError_NotImplemented, - LNK_InternalError_InvalidPath, - LNK_InternalError_IncompleteSwitch, - LNK_InternalError_OutOfMemory -} LNK_InternalError; - -typedef enum -{ - LNK_ErrorCodeStatus_Active, - LNK_ErrorCodeStatus_Ignore, -} LNK_ErrorCodeStatus; - -internal void lnk_init_error_handler(void); -internal void lnk_errorfv(LNK_ErrorCode code, char *fmt, va_list args); -internal void lnk_error(LNK_ErrorCode code, char *fmt, ...); -internal void lnk_error_with_loc(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, ...); -internal void lnk_supplement_error(char *fmt, ...); -internal void lnk_supplement_error_list(String8List list); -internal void lnk_suppress_error(LNK_ErrorCode code); - -#define lnk_is_error_code_active(code) (lnk_get_error_code_status(code) == LNK_ErrorCodeStatus_Active) -#define lnk_is_error_code_ignored(code) (lnk_get_error_code_status(code) == LNK_ErrorCodeStatus_Ignore) -internal LNK_ErrorCodeStatus lnk_get_error_code_status(LNK_ErrorCode code); - -internal void lnk_internal_error(LNK_InternalError code, char *file, int line, char *fmt, ...); -#define lnk_invalid_path(...) lnk_internal_error(LNK_InternalError_InvalidPath, __FILE__, __LINE__, __VA_ARGS__) -#define lnk_not_implemented(...) lnk_internal_error(LNK_InternalError_NotImplemented, __FILE__, __LINE__, __VA_ARGS__) -#define lnk_incomplete_switch(...) lnk_internal_error(LNK_InternalError_IncompleteSwitch, __FILE__, __LINE__, __VA_ARGS__) - diff --git a/src/linker/lnk_io.c b/src/linker/lnk_io.c index 1125c884..8af41797 100644 --- a/src/linker/lnk_io.c +++ b/src/linker/lnk_io.c @@ -1,41 +1,41 @@ shared_function int lnk_open_file_read(char *path, uint64_t path_size, void *handle_buffer, uint64_t handle_buffer_max) { - OS_Handle handle = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, str8((U8*)path, path_size)); + File handle = file_open(AccessFlag_Read|AccessFlag_ShareRead, str8((U8*)path, path_size)); Assert(sizeof(handle) <= handle_buffer_max); MemoryCopy(handle_buffer, &handle, sizeof(handle)); - return !os_handle_match(handle, os_handle_zero()); + return !file_match(handle, file_zero()); } shared_function int lnk_open_file_write(char *path, uint64_t path_size, void *handle_buffer, uint64_t handle_buffer_max) { - OS_Handle handle = os_file_open(OS_AccessFlag_Write, str8((U8*)path, path_size)); + File handle = file_open(AccessFlag_Write, str8((U8*)path, path_size)); Assert(sizeof(handle) <= handle_buffer_max); MemoryCopy(handle_buffer, &handle, sizeof(handle)); - return !os_handle_match(handle, os_handle_zero()); + return !file_match(handle, file_zero()); } shared_function void lnk_close_file(void *raw_handle) { - OS_Handle handle = *(OS_Handle *)raw_handle; - os_file_close(handle); + File handle = *(File *)raw_handle; + file_close(handle); } shared_function uint64_t lnk_size_from_file(void *raw_handle) { - OS_Handle handle = *(OS_Handle *)raw_handle; - FileProperties props = os_properties_from_file(handle); + File handle = *(File *)raw_handle; + FileProperties props = properties_from_file(handle); return props.size; } shared_function uint64_t lnk_read_file(void *raw_handle, void *buffer, uint64_t buffer_max) { - OS_Handle handle = *(OS_Handle *)raw_handle; - U64 read_size = os_file_read(handle, rng_1u64(0, buffer_max), buffer); + File handle = *(File *)raw_handle; + U64 read_size = file_read(handle, rng_1u64(0, buffer_max), buffer); Assert(read_size == buffer_max); return read_size; } @@ -43,8 +43,9 @@ lnk_read_file(void *raw_handle, void *buffer, uint64_t buffer_max) shared_function uint64_t lnk_write_file(void *raw_handle, uint64_t offset, void *buffer, uint64_t buffer_size) { - OS_Handle handle = *(OS_Handle*)raw_handle; - U64 write_size = os_file_write(handle, r1u64(offset, offset + buffer_size), buffer); + File handle = *(File*)raw_handle; + U64 write_size = file_write(handle, r1u64(offset, offset + buffer_size), buffer); + Assert(write_size == buffer_size); return write_size; } @@ -54,10 +55,10 @@ lnk_find_first_file(Arena *arena, String8List dir_list, String8 path) ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); String8 result = {0}; - if (os_file_path_exists(path)) { + if (file_path_exists(path)) { PathStyle path_style = path_style_from_str8(path); if (path_style == PathStyle_Relative) { - String8 current_path = os_get_current_path(scratch.arena); + String8 current_path = get_current_path(scratch.arena); String8List l = {0}; str8_list_push(scratch.arena, &l, current_path); str8_list_push(scratch.arena, &l, path); @@ -69,7 +70,7 @@ lnk_find_first_file(Arena *arena, String8List dir_list, String8 path) String8 file_name = str8_skip_last_slash(path); for EachNode(n, String8Node, dir_list.first) { String8 full_path = push_str8f(scratch.arena, "%S/%S", n->string, file_name); - if (os_file_path_exists(full_path)) { + if (file_path_exists(full_path)) { result = push_str8_copy(arena, full_path); break; } @@ -80,10 +81,10 @@ lnk_find_first_file(Arena *arena, String8List dir_list, String8 path) return result; } -internal OS_Handle +internal File lnk_file_open_with_rename_permissions(String8 path) { - OS_Handle file_handle = os_handle_zero(); + File file_handle = file_zero(); #if OS_WINDOWS Temp scratch = scratch_begin(0,0); @@ -103,18 +104,22 @@ lnk_file_open_with_rename_permissions(String8 path) scratch_end(scratch); #else -# error "TODO: file rename" + file_handle = file_open(AccessFlag_Read|AccessFlag_Write, path); #endif return file_handle; } internal B32 -lnk_file_set_delete_on_close(OS_Handle handle, B32 delete_file) +lnk_file_set_delete_on_close(File handle, B32 delete_file) { + B32 is_set = 0; #if OS_WINDOWS FILE_DISPOSITION_INFO file_disposition = {0}; file_disposition.DeleteFile = (BOOL)delete_file; - B32 is_set = SetFileInformationByHandle((HANDLE)handle.u64[0], FileDispositionInfo, &file_disposition, sizeof(file_disposition)); + is_set = SetFileInformationByHandle((HANDLE)handle.u64[0], FileDispositionInfo, &file_disposition, sizeof(file_disposition)); +#elif OS_LINUX + // no equivalent + is_set = 1; #else # error "TODO: file rename" #endif @@ -122,9 +127,10 @@ lnk_file_set_delete_on_close(OS_Handle handle, B32 delete_file) } internal B32 -lnk_file_rename(OS_Handle handle, String8 new_name) +lnk_file_rename(File handle, String8 new_name) { Temp scratch = scratch_begin(0,0); + B32 is_renamed = 0; #if OS_WINDOWS String16 new_name16 = str16_from_8(scratch.arena, new_name); @@ -137,9 +143,18 @@ lnk_file_rename(OS_Handle handle, String8 new_name) rename_info->FileNameLength = new_name16.size * sizeof(new_name16.str[0]); MemoryCopy(rename_info->FileName, new_name16.str, new_name16.size * sizeof(new_name16.str[0])); - B32 is_renamed = SetFileInformationByHandle((HANDLE)handle.u64[0], FileRenameInfo, buffer, buffer_size); + is_renamed = SetFileInformationByHandle((HANDLE)handle.u64[0], FileRenameInfo, buffer, buffer_size); #else -#error "TODO: file rename" + char fd_proc_path[128]; + raddbg_snprintf(fd_proc_path, sizeof(fd_proc_path), "/proc/self/fd/%d", (int)handle.u64[0]); + + U64 path_max = 4096; + char *path = push_array(scratch.arena, char, path_max); + ssize_t path_size = readlink(fd_proc_path, path, path_max); + + if (path_size > 0) { + is_renamed = rename(path, (char *)push_cstr(scratch.arena, new_name).str) == 0; + } #endif scratch_end(scratch); return is_renamed; @@ -167,7 +182,7 @@ THREAD_POOL_TASK_FUNC(lnk_data_size_from_file_path_task) LNK_DiskReader *task = raw_task; String8 path = task->path_arr.v[task_id]; - OS_Handle handle = {0}; + File handle = {0}; U64 size = 0; int is_open = lnk_open_file_read((char*)path.str, path.size, &handle, sizeof(handle)); @@ -184,7 +199,7 @@ THREAD_POOL_TASK_FUNC(lnk_data_from_file_path_task) { LNK_DiskReader *task = raw_task; - OS_Handle handle = task->handle_arr[task_id]; + File handle = task->handle_arr[task_id]; U64 buffer_size = task->size_arr[task_id]; U8 *buffer = task->buffer + task->off_arr[task_id]; @@ -198,37 +213,65 @@ internal THREAD_POOL_TASK_FUNC(lnk_memory_map_file_task) { LNK_DiskReader *task = raw_task; -#if OS_WINDOWS Temp scratch = scratch_begin(&arena, 1); +#if OS_WINDOWS String16 path16 = str16_from_8(scratch.arena, task->path_arr.v[task_id]); - HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); - if (file_handle != INVALID_HANDLE_VALUE) { - HANDLE mapping_handle = CreateFileMappingA(file_handle, 0, PAGE_WRITECOPY, 0, 0, 0); - if (mapping_handle != INVALID_HANDLE_VALUE) { - LARGE_INTEGER file_size = {0}; - GetFileSizeEx(file_handle, &file_size); - void *file_data = MapViewOfFile(mapping_handle, FILE_MAP_COPY, 0, 0, file_size.QuadPart); - if (file_data) { - // asan crashes for an unknown reason on memory-mapped files, even though the allocation is perfectly fine - AsanUnpoisonMemoryRegion(file_data, file_size.QuadPart); - task->data_arr.v[task_id] = str8(file_data, file_size.QuadPart); + if (task->io_flags & LNK_IO_Flags_MemoryMapFilesReadWrite) { + HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if (file_handle != INVALID_HANDLE_VALUE) { + HANDLE mapping_handle = CreateFileMappingA(file_handle, 0, PAGE_READWRITE, 0, 0, 0); + if (mapping_handle != INVALID_HANDLE_VALUE) { + LARGE_INTEGER file_size = {0}; + GetFileSizeEx(file_handle, &file_size); + void *file_data = MapViewOfFile(mapping_handle, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, file_size.QuadPart); + if (file_data) { + task->data_arr.v[task_id] = str8(file_data, file_size.QuadPart); + } + CloseHandle(mapping_handle); } - CloseHandle(mapping_handle); + CloseHandle(file_handle); + } + } else { + HANDLE file_handle = CreateFileW(path16.str, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + if (file_handle != INVALID_HANDLE_VALUE) { + HANDLE mapping_handle = CreateFileMappingA(file_handle, 0, PAGE_WRITECOPY, 0, 0, 0); + if (mapping_handle != INVALID_HANDLE_VALUE) { + LARGE_INTEGER file_size = {0}; + GetFileSizeEx(file_handle, &file_size); + void *file_data = MapViewOfFile(mapping_handle, FILE_MAP_COPY, 0, 0, file_size.QuadPart); + if (file_data) { + task->data_arr.v[task_id] = str8(file_data, file_size.QuadPart); + } + CloseHandle(mapping_handle); + } + CloseHandle(file_handle); } - CloseHandle(file_handle); } - scratch_end(scratch); +#elif OS_LINUX + int fd = open((char *)push_cstr(scratch.arena, task->path_arr.v[task_id]).str, O_RDONLY); + if (fd != -1) { + struct stat st = {0}; + if (fstat(fd, &st) == 0) { + void *file_data = mmap(0, st.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); + if (file_data != MAP_FAILED) { + task->data_arr.v[task_id] = str8(file_data, st.st_size); + } + } + close(fd); + } #else # error "memory mapping files is not supported on this platform" #endif + scratch_end(scratch); } internal String8Array lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags io_flags, String8Array path_arr) { + ProfBeginFunction(); LNK_DiskReader reader = {0}; - if (io_flags & LNK_IO_Flags_MemoryMapFiles) { + if (io_flags & (LNK_IO_Flags_MemoryMapFilesReadWrite|LNK_IO_Flags_MemoryMapFilesReadOnly)) { reader.io_flags = io_flags; reader.path_arr = path_arr; reader.data_arr.count = path_arr.count; @@ -238,7 +281,7 @@ lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags Temp scratch = scratch_begin(&arena,1); reader.path_arr = path_arr; - reader.handle_arr = push_array_no_zero(scratch.arena, OS_Handle, path_arr.count); + reader.handle_arr = push_array_no_zero(scratch.arena, File, path_arr.count); reader.size_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); // open handles and get sizes @@ -250,7 +293,7 @@ lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags // assign offsets into file buffer U64 *off_arr = push_array_no_zero(scratch.arena, U64, path_arr.count); MemoryCopyTyped(off_arr, reader.size_arr, path_arr.count); - counts_to_offsets_array_u64(path_arr.count, off_arr); + u64_array_counts_to_offsets(path_arr.count, off_arr); reader.io_flags = io_flags; reader.data_arr = str8_array_reserve(arena, path_arr.count); @@ -273,6 +316,7 @@ lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags } } + ProfEnd(); return result; } @@ -282,7 +326,7 @@ lnk_write_data_list_to_file_path(String8 path, String8 temp_path, String8List da ProfBeginV("Write %M to %S", data.total_size, path); B32 open_with_rename = (temp_path.size > 0); - OS_Handle file_handle = {0}; + File file_handle = {0}; String8 open_file_path = {0}; if (open_with_rename) { file_handle = lnk_file_open_with_rename_permissions(temp_path); @@ -297,9 +341,9 @@ lnk_write_data_list_to_file_path(String8 path, String8 temp_path, String8List da open_file_path = path; } - if (!os_handle_match(file_handle, os_handle_zero())) { + if (!file_match(file_handle, file_zero())) { // try to reserve up front file size - if (!os_file_reserve_size(file_handle, data.total_size)) { + if (!file_reserve_size(file_handle, data.total_size)) { lnk_log(LNK_Log_IO_Write, "Failed to pre-allocate file %S with size %M", open_file_path, data.total_size); } @@ -357,4 +401,3 @@ lnk_write_data_to_file_path(String8 path, String8 temp_path, String8 data) lnk_write_data_list_to_file_path(path, temp_path, data_list); scratch_end(scratch); } - diff --git a/src/linker/lnk_io.h b/src/linker/lnk_io.h index 76795427..ffa35a62 100644 --- a/src/linker/lnk_io.h +++ b/src/linker/lnk_io.h @@ -3,7 +3,8 @@ typedef U32 LNK_IO_Flags; enum { - LNK_IO_Flags_MemoryMapFiles = (1 << 0), + LNK_IO_Flags_MemoryMapFilesReadOnly = (1 << 0), + LNK_IO_Flags_MemoryMapFilesReadWrite = (1 << 1), }; typedef struct @@ -11,7 +12,7 @@ typedef struct LNK_IO_Flags io_flags; String8Array path_arr; String8Array data_arr; - OS_Handle *handle_arr; + File *handle_arr; U64 *size_arr; U64 *off_arr; U8 *buffer; @@ -28,9 +29,9 @@ shared_function uint64_t lnk_write_file(void *raw_handle, uint64_t offset, void // --- IO Functions ------------------------------------------------------------ -internal OS_Handle lnk_file_open_with_rename_permissions(String8 path); -internal B32 lnk_file_set_delete_on_close(OS_Handle handle, B32 delete_file); -internal B32 lnk_file_rename(OS_Handle handle, String8 new_name); +internal File lnk_file_open_with_rename_permissions(String8 path); +internal B32 lnk_file_set_delete_on_close(File handle, B32 delete_file); +internal B32 lnk_file_rename(File handle, String8 new_name); internal String8 lnk_read_data_from_file_path(Arena *arena, LNK_IO_Flags io_flags, String8 path); internal String8Array lnk_read_data_from_file_path_parallel(TP_Context *tp, Arena *arena, LNK_IO_Flags io_flags, String8Array path_arr); diff --git a/src/linker/lnk_lib.c b/src/linker/lnk_lib.c index 28ab3673..7f546e88 100644 --- a/src/linker/lnk_lib.c +++ b/src/linker/lnk_lib.c @@ -141,7 +141,6 @@ lnk_lib_from_data(Arena *arena, String8 data, String8 path, U64 input_idx, LNK_L lib_out->symbol_count = Min(symbol_count, symbol_names.count); // TODO: warn about mismatched number of symbol names and symbol count in the header lib_out->member_offsets = member_offsets; lib_out->symbol_indices = symbol_indices; - lib_out->member_links = push_array(arena, LNK_Symbol *, member_count); lib_out->symbol_names = symbol_names; lib_out->long_names = parse.long_names; lib_out->input_idx = input_idx; @@ -221,40 +220,6 @@ lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, U return result; } -internal B32 -lnk_lib_set_link_symbol(LNK_Lib *lib, U32 member_idx, LNK_Symbol *link_symbol) -{ - local_persist LNK_Symbol null_symbol; - - LNK_Symbol *slot = ins_atomic_ptr_eval_assign(&lib->member_links[member_idx], &null_symbol); - - B32 was_linked = (slot == 0); - - for (LNK_Symbol *leader = link_symbol;;) { - // update slot symbol if it is empty or link symbol comes before symbol in the slot - if (slot && slot != &null_symbol) { - if (lnk_symbol_is_before(slot, leader)) { - leader = slot; - } - } else { - leader = link_symbol; - } - - // try to insert back updated slot symbol - LNK_Symbol *swap = ins_atomic_ptr_eval_cond_assign(&lib->member_links[member_idx], leader, &null_symbol); - - // exit if slot symbol was null - if (swap == &null_symbol) { - break; - } - - // reload slot symbol - slot = ins_atomic_ptr_eval_assign(&lib->member_links[member_idx], &null_symbol); - } - - return was_linked; -} - internal force_inline B32 lnk_search_lib(LNK_Lib *lib, String8 symbol_name, U32 *member_idx_out) { diff --git a/src/linker/lnk_lib.h b/src/linker/lnk_lib.h index 0cbdd673..eed5e2de 100644 --- a/src/linker/lnk_lib.h +++ b/src/linker/lnk_lib.h @@ -12,7 +12,6 @@ typedef struct LNK_Lib U32 symbol_count; U32 *member_offsets; U16 *symbol_indices; - LNK_Symbol **member_links; String8Array symbol_names; String8 long_names; U64 input_idx; @@ -67,7 +66,5 @@ internal LNK_Lib ** lnk_array_from_lib_list(Arena *arena, LNK_LibList list internal void lnk_lib_list_push_node(LNK_LibList *list, LNK_LibNode *node); internal LNK_LibNodeArray lnk_lib_list_push_parallel(TP_Context *tp, TP_Arena *arena, LNK_LibList *list, U64 inputs_count, struct LNK_Input **inputs); -internal B32 lnk_lib_set_link_symbol(LNK_Lib *lib, U32 member_idx, LNK_Symbol *link_symbol); - -internal B32 lnk_search_lib(LNK_Lib *lib, String8 symbol_name, U32 *member_idx_out); +internal force_inline B32 lnk_search_lib(LNK_Lib *lib, String8 symbol_name, U32 *member_idx_out); diff --git a/src/linker/lnk_log.c b/src/linker/lnk_log.c index 1904996c..c15abb0e 100644 --- a/src/linker/lnk_log.c +++ b/src/linker/lnk_log.c @@ -1,6 +1,165 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) +static Mutex g_log_mutex; +static B32 g_log_status [LNK_Log_Count]; +static LNK_ErrorMode g_error_mode_arr [LNK_Error_Count]; +static LNK_ErrorCodeStatus g_error_code_status_arr[LNK_Error_Count]; + +internal void +lnk_fprintf(FILE *f, char *fmt, ...) +{ + Temp scratch = scratch_begin(0, 0); + va_list args; + va_start(args, fmt); + String8 string = push_str8fv(scratch.arena, fmt, args); + mutex_take(g_log_mutex); + fprintf(f, "%.*s", str8_varg(string)); + mutex_drop(g_log_mutex); + va_end(args); + scratch_end(scratch); +} + +internal void +lnk_exit(int code) +{ + mutex_take(g_log_mutex); + fflush(stdout); + fflush(stderr); + _exit(code); + InvalidPath; +} + +internal void +lnk_log_begin(void) +{ + for (int i = LNK_Error_StopFirst; i < LNK_Error_StopLast; ++i) { g_error_mode_arr[i] = LNK_ErrorMode_Stop; } + for (int i = LNK_Error_ContinueFirst; i < LNK_Error_ContinueLast; ++i) { g_error_mode_arr[i] = LNK_ErrorMode_Continue; } + for (int i = LNK_Warning_First; i < LNK_Warning_Last; ++i) { g_error_mode_arr[i] = LNK_ErrorMode_Warn; } + g_log_mutex = mutex_alloc(); +} + +internal void +lnk_log_end(void) +{ + mutex_release(g_log_mutex); +} + +internal String8 +lnk_string_from_error_mode(LNK_ErrorMode mode) +{ + switch (mode) { + case LNK_ErrorMode_Ignore: return str8_lit("Ignore"); + case LNK_ErrorMode_Continue: return str8_lit("Error"); + case LNK_ErrorMode_Stop: return str8_lit("Error"); + case LNK_ErrorMode_Warn: return str8_lit("Warning"); + } + return str8_zero(); +} + +internal void +lnk_errorfv(LNK_ErrorCode code, char *fmt, va_list args) +{ + if (lnk_is_error_code_ignored(code)) { return; } + Temp scratch = scratch_begin(0,0); + String8 message = push_str8fv(scratch.arena, fmt, args); + lnk_fprintf(stderr, "%S(%03d): %S\n", lnk_string_from_error_mode(g_error_mode_arr[code]), code, message); + scratch_end(scratch); + if (g_error_mode_arr[code] == LNK_ErrorMode_Stop) { lnk_exit(code); } +} + +internal void +lnk_error(LNK_ErrorCode code, char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + lnk_errorfv(code, fmt, args); + va_end(args); +} + +internal void +lnk_error_with_loc_fv(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, va_list args) +{ + Temp scratch = scratch_begin(0, 0); + String8 text = push_str8fv(scratch.arena, fmt, args); + if (obj_path.size) { + if (lib_path.size) { + lnk_error(code, "%S(%S): %S", lib_path, str8_skip_last_slash(obj_path), text); + } else { + lnk_error(code, "%S: %S", obj_path, text); + } + } else { + lnk_error(code, "RADLINK: %S", text); + } + scratch_end(scratch); +} + +internal void +lnk_error_with_loc(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, ...) +{ + va_list args; va_start(args, fmt); + lnk_error_with_loc_fv(code, obj_path, lib_path, fmt, args); + va_end(args); +} + +internal void +lnk_supplement_error(char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + + Temp scratch = scratch_begin(0,0); + String8 string = push_str8fv(scratch.arena, fmt, args); + + lnk_fprintf(stderr, "\t"); + lnk_fprintf(stderr, "%.*s", str8_varg(string)); + lnk_fprintf(stderr, "\n"); + + va_end(args); + scratch_end(scratch); +} + +internal void +lnk_supplement_error_list(String8List list) +{ + for (String8Node *node = list.first; node != 0; node = node->next) { + lnk_supplement_error("%.*s", str8_varg(node->string)); + } +} + +internal void +lnk_ignore_error(LNK_ErrorCode code) +{ + g_error_code_status_arr[code] = LNK_ErrorCodeStatus_Ignore; +} + +internal void +lnk_activate_error(LNK_ErrorCode code) +{ + g_error_code_status_arr[code] = LNK_ErrorCodeStatus_Active; +} + +internal LNK_ErrorCodeStatus +lnk_get_error_code_status(LNK_ErrorCode code) +{ + return g_error_code_status_arr[code]; +} + +internal void +lnk_internal_error(LNK_InternalError code, char *file, int line, char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + + String8 issue = push_str8fv(scratch.arena, fmt, args); + lnk_fprintf(stderr, "internal error #%03d in %s:%u\n", code, file, line); + lnk_fprintf(stderr, "\t%.*s\n", str8_varg(issue)); + + va_end(args); + scratch_end(scratch); +} + internal void lnk_set_log_status(LNK_LogType type, B32 is_enabled) { @@ -23,7 +182,7 @@ lnk_log(LNK_LogType type, char *fmt, ...) va_list args; va_start(args, fmt); String8 string = push_str8fv(scratch.arena, fmt, args); - fprintf(stdout, "%.*s\n", str8_varg(string)); + lnk_fprintf(stdout, "%.*s\n", str8_varg(string)); va_end(args); scratch_end(scratch); } @@ -32,29 +191,9 @@ lnk_log(LNK_LogType type, char *fmt, ...) internal LNK_LogType lnk_log_type_from_string(String8 string) { - static struct { - char *name; - LNK_LogType type; - } map[] = { - "Null", LNK_Log_Null, - "Debug", LNK_Log_Debug, - "InputObj", LNK_Log_InputObj, - "InputLib", LNK_Log_InputLib, - "IO_Read", LNK_Log_IO_Read, - "IO_Write", LNK_Log_IO_Write, - "SizeBreakdown", LNK_Log_SizeBreakdown, - "LinkStats", LNK_Log_LinkStats, - "Timers", LNK_Log_Timers, - "Links", LNK_Log_Links, - }; - Assert(ArrayCount(map) == LNK_Log_Count); - - for (U64 i = 0; i < ArrayCount(map); ++i) { - if (str8_match(str8_cstring(map[i].name), string, StringMatchFlag_CaseInsensitive)) { - return map[i].type; - } - } - +#define X(name, ...) if (str8_matchi(str8_lit(Stringify(name)), string)) { return LNK_Log_##name; } +LNK_LogType_XList +#undef X return LNK_Log_Null; } diff --git a/src/linker/lnk_log.h b/src/linker/lnk_log.h index a1e24157..8c087009 100644 --- a/src/linker/lnk_log.h +++ b/src/linker/lnk_log.h @@ -3,24 +3,171 @@ #pragma once +#define LNK_LogType_XList \ + X(Debug) \ + X(Paranoid) \ + X(InputObj) \ + X(InputLib) \ + X(IO_Read) \ + X(IO_Write) \ + X(SizeBreakdown) \ + X(LinkStats) \ + X(Timers) \ + X(Links) + typedef enum { LNK_Log_Null, - LNK_Log_Debug, - LNK_Log_InputObj, - LNK_Log_InputLib, - LNK_Log_IO_Read, - LNK_Log_IO_Write, - LNK_Log_SizeBreakdown, - LNK_Log_LinkStats, - LNK_Log_Timers, - LNK_Log_Links, +#define X(name, ...) LNK_Log_##name, + LNK_LogType_XList +#undef X LNK_Log_Count } LNK_LogType; +typedef enum +{ + LNK_Error_Null, + + LNK_Error_StopFirst, + LNK_Error_Cmdl, + LNK_Error_EndprecompNotFound, + LNK_Error_EntryPoint, + LNK_Error_ExternalTypeServerConflict, + LNK_Error_FileNotFound, + LNK_Error_IllData, + LNK_Error_IllExport, + LNK_Error_IncomatibleCmdOptions, + LNK_Error_IncompatibleMachine, + LNK_Error_InvalidPrecompLeafCount, + LNK_Error_InvalidStartIndex, + LNK_Error_NoAccess, + LNK_Error_NoSubsystem, + LNK_Error_OutOfExportOrdinals, + LNK_Error_Telemetry, + LNK_Error_UnsupportedMachine, + LNK_Error_Mt, + LNK_Error_UnableToSerializeMsf, + LNK_Error_LoadRes, + LNK_Error_IO, + LNK_Error_LargeAddrAwareRequired, + LNK_Error_InvalidPath, + LNK_Error_MultiplyDefinedSymbol, + LNK_Error_SectRefsDiscardedMemory, + LNK_Error_IllegalSectionMerge, + LNK_Error_IllegalRelocation, + LNK_Error_CircularMerge, + LNK_Error_AssociativeLoop, + LNK_Error_AlternateNameConflict, + LNK_Error_RelocationAgainstRemovedSection, + LNK_Error_FailIfMismatch, + LNK_Error_Boot, + LNK_Error_StopLast, + + LNK_Error_ContinueFirst, + LNK_Error_AlreadyDefinedSymbol, + LNK_Error_CvPrecomp, + LNK_Error_Natvis, + LNK_Error_TooManyFiles, + LNK_Error_UnableToOpenTypeServer, + LNK_Error_UnexpectedCodePath, + LNK_Error_CvIllSymbolData, + LNK_Error_InvalidTypeIndex, + LNK_Error_UndefinedIsWeak, + LNK_Error_WeakCycle, + LNK_Error_InvalidLib, + LNK_Error_UnresolvedSymbol, + LNK_Error_PrecompSigMismatch, + LNK_Error_PrecompObjNotFound, + LNK_Error_ContinueLast, + + LNK_Warning_First, + LNK_Warning_InvalidMergeDirectiveFormat, + LNK_Warning_AmbiguousMerge, + LNK_Warning_AtypicalStartIndex, + LNK_Warning_Cmdl, + LNK_Warning_Directive, + LNK_Warning_DuplicateObjPath, + LNK_Warning_ExternalTypeServerAgeMismatch, + LNK_Warning_FileNotFound, + LNK_Warning_IllData, + LNK_Warning_IllExport, + LNK_Warning_InvalidNatvisFileExt, + LNK_Warning_LargePages, + LNK_Warning_LargePagesNotEnabled, + LNK_Warning_MismatchedTypeServerSignature, + LNK_Warning_MissingExternalTypeServer, + LNK_Warning_MultipleDebugTAndDebugP, + LNK_Warning_MultipleExternalTypeServers, + LNK_Warning_MultipleLibMatch, + LNK_Warning_MultiplyDefinedImport, + LNK_Warning_Natvis, + LNK_Warning_PrecompObjSymbolsNotFound, + LNK_Warning_SectionFlagsConflict, + LNK_Warning_Subsystem, + LNK_Warning_UnknownDirective, + LNK_Warning_IllegalDirective, + LNK_Warning_UnresolvedComdat, + LNK_Warning_UnusedDelayLoadDll, + LNK_Warning_LongSectionName, + LNK_Warning_UnknownSwitch, + LNK_Warning_TLSAlign, + LNK_Warning_DirectiveSectionWithRelocs, + LNK_Warning_NoLargeAddressAwarenessForDll, + LNK_Warning_TryingToExportEntryPoint, + LNK_Warning_InferAsanFail, + LNK_Warning_GHash, + LNK_Warning_UndefinedSectionSymbol, + LNK_Warning_CyclicSymbol, + LNK_Warning_Last, + + LNK_Error_Count +} LNK_ErrorCode; + +typedef enum +{ + LNK_ErrorMode_Ignore, + LNK_ErrorMode_Stop, + LNK_ErrorMode_Continue, + LNK_ErrorMode_Warn, +} LNK_ErrorMode; + +typedef enum +{ + LNK_InternalError_Null, + LNK_InternalError_NotImplemented, + LNK_InternalError_InvalidPath, + LNK_InternalError_IncompleteSwitch, + LNK_InternalError_OutOfMemory +} LNK_InternalError; + +typedef enum +{ + LNK_ErrorCodeStatus_Active, + LNK_ErrorCodeStatus_Ignore, +} LNK_ErrorCodeStatus; + +internal void lnk_log_begin(void); +internal void lnk_log_end(void); internal void set_log_level(LNK_LogType type, B32 is_enabled); internal B32 lnk_get_log_status(LNK_LogType type); internal void lnk_log(LNK_LogType type, char *fmt, ...); +internal void lnk_errorfv(LNK_ErrorCode code, char *fmt, va_list args); +internal void lnk_error(LNK_ErrorCode code, char *fmt, ...); +internal void lnk_error_with_loc(LNK_ErrorCode code, String8 obj_path, String8 lib_path, char *fmt, ...); +internal void lnk_supplement_error(char *fmt, ...); +internal void lnk_supplement_error_list(String8List list); +internal void lnk_ignore_error(LNK_ErrorCode code); +internal void lnk_activate_error(LNK_ErrorCode code); + internal LNK_LogType lnk_log_type_from_string(String8 string); +#define lnk_is_error_code_active(code) (lnk_get_error_code_status(code) == LNK_ErrorCodeStatus_Active) +#define lnk_is_error_code_ignored(code) (lnk_get_error_code_status(code) == LNK_ErrorCodeStatus_Ignore) +internal LNK_ErrorCodeStatus lnk_get_error_code_status(LNK_ErrorCode code); + +internal void lnk_internal_error(LNK_InternalError code, char *file, int line, char *fmt, ...); +#define lnk_invalid_path(...) lnk_internal_error(LNK_InternalError_InvalidPath, __FILE__, __LINE__, ## __VA_ARGS__) +#define lnk_not_implemented(...) lnk_internal_error(LNK_InternalError_NotImplemented, __FILE__, __LINE__, ## __VA_ARGS__) +#define lnk_incomplete_switch(...) lnk_internal_error(LNK_InternalError_IncompleteSwitch, __FILE__, __LINE__, ## __VA_ARGS__) + diff --git a/src/linker/lnk_obj.c b/src/linker/lnk_obj.c index 7a8e1a88..c2f9649e 100644 --- a/src/linker/lnk_obj.c +++ b/src/linker/lnk_obj.c @@ -97,10 +97,12 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // error check section headers // COFF_SectionHeader *coff_section_table = (COFF_SectionHeader *)raw_coff_section_table.str; + COFF_SectionFlags *section_flags = push_array_no_zero(arena, COFF_SectionFlags, header.section_count_no_null); for (U64 sect_idx = 0; sect_idx < header.section_count_no_null; sect_idx += 1) { COFF_SectionHeader *coff_sect_header = &coff_section_table[sect_idx]; + section_flags[sect_idx] = coff_sect_header->flags; String8 sect_name = coff_name_from_section_header(raw_coff_string_table, coff_sect_header); - if (~coff_sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + if (~section_flags[sect_idx] & COFF_SectionFlag_CntUninitializedData) { if (coff_sect_header->fsize > 0) { Rng1U64 sect_range = rng_1u64(coff_sect_header->foff, coff_sect_header->foff + coff_sect_header->fsize); if (contains_1u64(header.header_range, coff_sect_header->foff) || @@ -166,7 +168,7 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) if (symbol.storage_class == COFF_SymStorageClass_Static) { if (symbol.section_number > 0 && symbol.section_number <= header.section_count_no_null) { COFF_SectionHeader *sect_header = &coff_section_table[symbol.section_number-1]; - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + if (section_flags[symbol.section_number-1] & COFF_SectionFlag_LnkCOMDAT) { if (symbol.aux_symbol_count) { U32 section_length = 0; coff_parse_secdef(symbol, header.is_big_obj, 0, 0, §ion_length, 0); @@ -270,14 +272,14 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) // debug info if (str8_starts_with(sect_name, str8_lit(".debug$"))) { - sect_header->flags |= LNK_SECTION_FLAG_DEBUG; + section_flags[sect_idx] |= LNK_SECTION_FLAG_DEBUG; } // function overrides if (str8_ends_with(sect_name, str8_lit("$fo$"), 0) || str8_ends_with(sect_name, str8_lit("$fo_rvas$"), 0) || str8_ends_with(sect_name, str8_lit("$fo_bdd$"), 0)) { - sect_header->flags |= COFF_SectionFlag_LnkInfo; + section_flags[sect_idx] |= COFF_SectionFlag_LnkInfo; } } } @@ -295,21 +297,23 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) CV_Symbol comp_symbol = {0}; for EachIndex(sect_idx, header.section_count_no_null) { COFF_SectionHeader *sect_header = &coff_section_table[sect_idx]; - if (sect_header->flags & LNK_SECTION_FLAG_DEBUG) { + if (section_flags[sect_idx] & LNK_SECTION_FLAG_DEBUG) { String8 name = str8_cstring_capped(sect_header->name, sect_header->name+sizeof(sect_header->name)); if (str8_match(name, str8_lit(".debug$S"), 0)) { Temp temp = temp_begin(scratch.arena); String8 debug_s_data = str8_substr(input->data, rng_1u64(sect_header->foff, sect_header->foff+sect_header->fsize)); - CV_DebugS debug_s = cv_parse_debug_s(temp.arena, debug_s_data); + CV_DebugS debug_s = cv_debug_s_from_data(temp.arena, debug_s_data); for EachNode(symbols_n, String8Node, debug_s.data_list[CV_C13SubSectionIdxKind_Symbols].first) { - CV_SymbolList symbol_list = {0}; - cv_parse_symbol_sub_section_capped(scratch.arena, &symbol_list, 0, symbols_n->string, CV_SymbolAlign, 2); - if (symbol_list.first->data.kind == CV_SymKind_COMPILE3) { - comp_symbol = symbol_list.first->data; - goto found_comp_symbol; - } else if (symbol_list.last->data.kind == CV_SymKind_COMPILE3) { - comp_symbol = symbol_list.last->data; - goto found_comp_symbol; + for (U64 cursor = 0, count = 0; cursor < symbols_n->string.size && count < 2; count += 1) { + CV_SymbolHeader symbol_header; + TryReadBreak(str8_deserial_read_struct(symbols_n->string, cursor, &symbol_header), cursor); + if (symbol_header.kind == CV_SymKind_COMPILE3) { + String8 raw_symbol = str8_substr(symbols_n->string, r1u64(cursor, cursor + symbol_header.size + sizeof(CV_SymSize))); + comp_symbol = cv_symbol_from_ptr(raw_symbol.str); + goto found_comp_symbol; + } + cursor += symbol_header.size + sizeof(CV_SymSize); + cursor = AlignPow2(cursor, CV_SymbolAlign); } } temp_end(temp); @@ -330,32 +334,56 @@ THREAD_POOL_TASK_FUNC(lnk_obj_initer) obj->data = input->data; obj->path = push_str8_copy(arena, input->path); obj->header = header; + obj->section_flags = section_flags; obj->comdats = comdats; obj->exclude_from_debug_info = input->exclude_from_debug_info; obj->hotpatch = hotpatch; obj->associated_sections = associated_sections; - obj->node = &task->objs[task_id]; + obj->self = &task->objs[task_id]; obj->link_member = input->link_member; + obj->debug_t_sect_idx = ~0; + obj->debug_p_sect_idx = ~0; + obj->debug_h_sect_idx = ~0; +} + +internal +THREAD_POOL_TASK_FUNC(lnk_obj_find_debug_t) +{ + LNK_Obj *obj = &((LNK_ObjNode *)raw_task)[task_id].data; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + String8 section_name = lnk_obj_section_name_from_sect_idx(obj, sect_idx); + if (str8_match(section_name, str8_lit(".debug$T"), 0)) { + obj->debug_t_sect_idx = sect_idx; + } else if (str8_match(section_name, str8_lit(".debug$P"), 0)) { + obj->debug_p_sect_idx = sect_idx; + } else if (str8_match(section_name, str8_lit(".debug$H"), 0)) { + obj->debug_h_sect_idx = sect_idx; + } + } } internal LNK_ObjNode * -lnk_obj_from_input_many(TP_Context *tp, TP_Arena *arena, COFF_MachineType machine, U64 inputs_count, LNK_Input **inputs) +lnk_obj_from_input_many(TP_Context *tp, TP_Arena *arena, LNK_Config *config, U64 inputs_count, LNK_Input **inputs) { LNK_ObjNode *objs = 0; if (inputs_count) { objs = push_array(arena->v[0], LNK_ObjNode, inputs_count); - tp_for_parallel(tp, arena, inputs_count, lnk_obj_initer, &(LNK_ObjIniter){ .inputs = inputs, .objs = objs, .machine = machine }); + tp_for_parallel(tp, arena, inputs_count, lnk_obj_initer, &(LNK_ObjIniter){ .inputs = inputs, .objs = objs, .machine = config->machine }); + + if (lnk_do_debug_info(config)) { + tp_for_parallel(tp, arena, inputs_count, lnk_obj_find_debug_t, objs); + } } return objs; } internal LNK_ObjNode * -lnk_obj_from_input(Arena *arena, COFF_MachineType machine, LNK_Input *input) +lnk_obj_from_input(Arena *arena, LNK_Config *config, LNK_Input *input) { Temp scratch = scratch_begin(&arena, 1); TP_Context *tp = tp_alloc(scratch.arena, 1, 1, str8_zero()); TP_Arena tp_arena = { .count = 1, .v = &arena }; - LNK_ObjNode *result = lnk_obj_from_input_many(tp, &tp_arena, machine, 1, &input); + LNK_ObjNode *result = lnk_obj_from_input_many(tp, &tp_arena, config, 1, &input); scratch_end(scratch); return result; } @@ -387,8 +415,8 @@ THREAD_POOL_TASK_FUNC(lnk_input_coff_symbol_table) switch (interp) { case COFF_SymbolValueInterp_Regular: { if (symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkRemove) { + LNK_ObjSection section = lnk_obj_section_from_section_number(obj, symbol.section_number); + if (*section.flags & COFF_SectionFlag_LnkRemove) { break; } LNK_Symbol *defn = lnk_make_symbol(arena, symbol.name, obj, symbol_idx); @@ -432,8 +460,8 @@ lnk_symlinks_from_obj(Arena *arena, LNK_SymbolTable *symtab, LNK_Obj *obj) symbol = lnk_parsed_symbol_from_coff_symbol_idx(obj, symbol_idx); COFF_SymbolValueInterpType interp = coff_interp_symbol(symbol.section_number, symbol.value, symbol.storage_class); if (interp == COFF_SymbolValueInterp_Regular && symbol.aux_symbol_count == 0 && symbol.storage_class == COFF_SymStorageClass_External) { - COFF_SectionHeader *sect_header = lnk_coff_section_header_from_section_number(obj, symbol.section_number); - if (sect_header->flags & COFF_SectionFlag_LnkCOMDAT) { + LNK_ObjSection section = lnk_obj_section_from_section_number(obj, symbol.section_number); + if (*section.flags & COFF_SectionFlag_LnkCOMDAT) { if (symlinks[symbol.section_number] == 0 || symbol.value == 0) { symlinks[symbol.section_number] = lnk_symbol_table_search_(symtab, symbol.name); } @@ -523,11 +551,60 @@ lnk_obj_get_comdat_symlink(LNK_Obj *obj, U64 section_number) } internal COFF_SectionHeader * -lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) +lnk_coff_section_table_from_obj(LNK_Obj *obj) { - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - COFF_SectionHeader *section_header = §ion_table[section_number-1]; - return section_header; + return (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; +} + +internal U64 +lnk_obj_sect_idx_from_section_number(LNK_Obj *obj, U64 section_number) +{ + Assert(1 <= section_number && section_number <= obj->header.section_count_no_null); + return section_number-1; +} + +internal U64 +lnk_obj_section_number_from_sect_idx(LNK_Obj *obj, U64 sect_idx) +{ + Assert(sect_idx < obj->header.section_count_no_null); + return sect_idx+1; +} + +internal String8 +lnk_obj_section_name_from_sect_idx(LNK_Obj *obj, U64 sect_idx) +{ + COFF_SectionHeader *section_header = &lnk_coff_section_table_from_obj(obj)[sect_idx]; + return coff_name_from_section_header(lnk_coff_string_table_from_obj(obj), section_header); +} + +internal String8 +lnk_obj_section_name_from_section_number(LNK_Obj *obj, U64 section_number) +{ + Assert(section_number > 0); + return lnk_obj_section_name_from_sect_idx(obj, section_number-1); +} + +internal LNK_ObjSection +lnk_obj_section_from_sect_idx(LNK_Obj *obj, U64 sect_idx) +{ + Assert(sect_idx < obj->header.section_count_no_null); + LNK_ObjSection section = {0}; + section.obj = obj; + section.sect_idx = sect_idx; + section.section_number = sect_idx+1; + section.header = &lnk_coff_section_table_from_obj(obj)[sect_idx]; + section.flags = &obj->section_flags[sect_idx]; + section.vrange = rng_1u64(section.header->voff, section.header->voff + section.header->vsize); + section.frange = rng_1u64(section.header->foff, section.header->foff + section.header->fsize); + section.reloc_count = section.header->reloc_count; + return section; +} + +internal LNK_ObjSection +lnk_obj_section_from_section_number(LNK_Obj *obj, U64 section_number) +{ + U64 sect_idx = lnk_obj_sect_idx_from_section_number(obj, section_number); + return lnk_obj_section_from_sect_idx(obj, sect_idx); } internal COFF_RelocArray @@ -539,12 +616,6 @@ lnk_coff_relocs_from_section_header(LNK_Obj *obj, COFF_SectionHeader *section_he return result; } -internal COFF_SectionHeader * -lnk_coff_section_table_from_obj(LNK_Obj *obj) -{ - return (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; -} - internal String8 lnk_coff_string_table_from_obj(LNK_Obj *obj) { @@ -560,10 +631,10 @@ lnk_coff_symbol_table_from_obj(LNK_Obj *obj) internal COFF_RelocArray lnk_coff_reloc_info_from_section_number(LNK_Obj *obj, U64 section_number) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(obj, section_number); - COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section_header); - COFF_Reloc *relocs = str8_deserial_get_raw_ptr(obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); - COFF_RelocArray result = { .count = reloc_info.count, .v = relocs }; + LNK_ObjSection section = lnk_obj_section_from_section_number(obj, section_number); + COFF_RelocInfo reloc_info = coff_reloc_info_from_section_header(obj->data, section.header); + COFF_Reloc *relocs = str8_deserial_get_raw_ptr(obj->data, reloc_info.array_off, sizeof(*relocs)*reloc_info.count); + COFF_RelocArray result = { .count = reloc_info.count, .v = relocs }; return result; } @@ -580,6 +651,15 @@ lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ return 0; } +internal COFF_SectionHeader * +lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number) +{ + Assert(section_number > 0); + U64 sect_idx = section_number - 1; + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(obj->data, obj->header.section_table_range.min, dim_1u64(obj->header.section_table_range)); + return §ion_table[sect_idx]; +} + internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx) { @@ -602,20 +682,16 @@ THREAD_POOL_TASK_FUNC(lnk_collect_obj_chunks_task) LNK_SectionCollector *task = raw_task; LNK_Obj *obj = task->objs[task_id]; - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(obj->data, obj->header.section_table_range).str; - String8 string_table = str8_substr(obj->data, obj->header.string_table_range); - for (U32 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; + for EachIndex(sect_idx, obj->header.section_count_no_null) { + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, sect_idx); - if (section_header->flags & COFF_SectionFlag_LnkRemove) { - if (!task->collect_discarded) { - continue; - } + if (*section.flags & COFF_SectionFlag_LnkRemove && !task->collect_discarded) { + continue; } - String8 section_name = coff_name_from_section_header(string_table, section_header); + String8 section_name = lnk_obj_section_name_from_sect_idx(obj, sect_idx); if (str8_match(section_name, task->name, 0)) { - String8 section_data = str8_substr(obj->data, rng_1u64(section_header->foff, section_header->foff + section_header->fsize)); + String8 section_data = str8_substr(obj->data, section.frange); str8_list_push(arena, &task->out_lists[task_id], section_data); } } @@ -690,27 +766,25 @@ lnk_parse_msvc_linker_directive(Arena *arena, LNK_Obj *obj, LNK_DirectiveInfo *d internal String8List lnk_raw_directives_from_obj(Arena *arena, LNK_Obj *obj) { - COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); String8List drectve_data = {0}; for (U64 sect_idx = 0; sect_idx < obj->header.section_count_no_null; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (sect_header->flags & COFF_SectionFlag_LnkInfo) { - String8 sect_name = str8_cstring_capped(sect_header->name, sect_header->name + sizeof(sect_header->name)); - if (str8_match(sect_name, str8_lit(".drectve"), 0)) { - if (sect_header->flags & COFF_SectionFlag_CntUninitializedData) { + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, sect_idx); + if (*section.flags & COFF_SectionFlag_LnkInfo) { + String8 section_name = lnk_obj_section_name_from_sect_idx(obj, sect_idx); + if (str8_match(section_name, str8_lit(".drectve"), 0)) { + if (*section.flags & COFF_SectionFlag_CntUninitializedData) { lnk_error_obj(LNK_Error_IllData, obj, ".drectve section header has flag COFF_SectionFlag_CntUninitializedData"); break; } - if (sect_header->fsize < 3) { + if (dim_1u64(section.frange) < 3) { lnk_error_obj(LNK_Error_IllData, obj, "not enough bytes to parse .drectve"); break; } - if (sect_header->reloc_count > 0) { + if (section.reloc_count > 0) { lnk_error_obj(LNK_Error_IllData, obj, ".drectve must not have relocations"); break; } - Rng1U64 sect_range = rng_1u64(sect_header->foff, sect_header->foff + sect_header->fsize); - str8_list_push(arena, &drectve_data, str8_substr(obj->data, sect_range)); + str8_list_push(arena, &drectve_data, str8_substr(obj->data, section.frange)); } } } @@ -734,13 +808,11 @@ lnk_debug_s_from_obj(Arena *arena, LNK_Obj *obj) String8List raw_debug_s = {0}; { - COFF_SectionHeader *section_table = lnk_coff_section_table_from_obj(obj); - String8 string_table = lnk_coff_string_table_from_obj(obj); for EachIndex(sect_idx, obj->header.section_count_no_null) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - String8 section_name = coff_name_from_section_header(string_table, section_header); + LNK_ObjSection section = lnk_obj_section_from_sect_idx(obj, sect_idx); + String8 section_name = lnk_obj_section_name_from_sect_idx(obj, sect_idx); if (str8_match(section_name, str8_lit(".debug$S"), 0)) { - String8 debug_s = str8_substr(obj->data, rng_1u64(section_header->foff, section_header->foff + section_header->fsize)); + String8 debug_s = str8_substr(obj->data, section.frange); str8_list_push(scratch.arena, &raw_debug_s, debug_s); } } @@ -750,7 +822,7 @@ lnk_debug_s_from_obj(Arena *arena, LNK_Obj *obj) { for (String8Node *node = raw_debug_s.first; node != 0; node = node->next) { // parse & merge sub sections - CV_DebugS ds = cv_parse_debug_s(scratch.arena, node->string); + CV_DebugS ds = cv_debug_s_from_data(arena, node->string); cv_debug_s_concat_in_place(&debug_s, &ds); // make sure there is one string table @@ -770,4 +842,3 @@ lnk_debug_s_from_obj(Arena *arena, LNK_Obj *obj) scratch_end(scratch); return debug_s; } - diff --git a/src/linker/lnk_obj.h b/src/linker/lnk_obj.h index 9fca1cb5..9a21de59 100644 --- a/src/linker/lnk_obj.h +++ b/src/linker/lnk_obj.h @@ -7,21 +7,51 @@ typedef struct LNK_Obj { - String8 path; - String8 data; - U32 input_idx; - COFF_FileHeaderInfo header; - U32 *comdats; - B8 hotpatch; - B8 exclude_from_debug_info; - U32Node **associated_sections; - LNK_SymbolHashTrie **symlinks; + String8 path; + String8 data; + COFF_FileHeaderInfo header; + COFF_SectionFlags *section_flags; + + // flags + B8 hotpatch; + B8 exclude_from_debug_info; + + U32 input_idx; + + // COMDAT + U32 *comdats; + U32Node **associated_sections; + LNK_SymbolHashTrie **symlinks; + + // link struct LNK_LibMemberRef *link_member; + struct LNK_ObjNode *self; - struct LNK_ObjNode *node; + // type info + U32 debug_t_sect_idx; + U32 debug_p_sect_idx; + U32 debug_h_sect_idx; + + // @type_server + Rng1U64 ti_range; + CV_TypeIndex *ti_map; + Rng1U64 pch_ti_range; + U64 pch_obj_idx; } LNK_Obj; +typedef struct LNK_ObjSection +{ + LNK_Obj *obj; + U64 sect_idx; + U64 section_number; + COFF_SectionHeader *header; + COFF_SectionFlags *flags; + Rng1U64 vrange; + Rng1U64 frange; + U32 reloc_count; +} LNK_ObjSection; + typedef struct LNK_ObjNode { struct LNK_ObjNode *next; @@ -113,11 +143,15 @@ internal LNK_Symbol * lnk_obj_get_comdat_symlink(LNK_Obj *obj, U64 section_n // --- Symbol & Section Helpers ------------------------------------------------ -internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff(LNK_Obj *obj, void *coff_symbol); -internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); internal COFF_SectionHeader * lnk_coff_section_header_from_section_number(LNK_Obj *obj, U64 section_number); +internal COFF_ParsedSymbol lnk_parsed_symbol_from_coff_symbol_idx(LNK_Obj *obj, U64 symbol_idx); +internal U64 lnk_obj_sect_idx_from_section_number(LNK_Obj *obj, U64 section_number); +internal U64 lnk_obj_section_number_from_sect_idx(LNK_Obj *obj, U64 sect_idx); +internal String8 lnk_obj_section_name_from_section_number(LNK_Obj *obj, U64 section_number); +internal String8 lnk_obj_section_name_from_sect_idx(LNK_Obj *obj, U64 sect_idx); +internal LNK_ObjSection lnk_obj_section_from_sect_idx(LNK_Obj *obj, U64 sect_idx); +internal LNK_ObjSection lnk_obj_section_from_section_number(LNK_Obj *obj, U64 section_number); internal COFF_RelocArray lnk_coff_relocs_from_section_header(LNK_Obj *obj, COFF_SectionHeader *section_header); -internal COFF_SectionHeader * lnk_coff_section_table_from_obj(LNK_Obj *obj); internal String8 lnk_coff_string_table_from_obj(LNK_Obj *obj); internal String8 lnk_coff_symbol_table_from_obj(LNK_Obj *obj); internal B32 lnk_try_comdat_props_from_section_number(LNK_Obj *obj, U32 section_number, COFF_ComdatSelectType *select_out, U32 *section_number_out, U32 *section_length_out, U32 *check_sum_out); @@ -136,4 +170,3 @@ internal LNK_DirectiveInfo lnk_directive_info_from_raw_directives(Arena *arena, // --- Debug Info -------------------------------------------------------------- internal CV_DebugS lnk_debug_s_from_obj(Arena *arena, LNK_Obj *obj); - diff --git a/src/linker/lnk_section_table.c b/src/linker/lnk_section_table.c index 7c3a464e..a095e64e 100644 --- a/src/linker/lnk_section_table.c +++ b/src/linker/lnk_section_table.c @@ -161,9 +161,7 @@ lnk_section_table_purge(LNK_SectionTable *sectab, String8 name) LNK_SectionNode *node = lnk_section_table_remove(sectab, name); String8 name_with_flags = lnk_make_name_with_flags(scratch.arena, name, node->data.flags); - KeyValuePair *kv = hash_table_search_string(sectab->sect_ht, name_with_flags); - kv->key_string = str8_zero(); - kv->value_raw = 0; + hash_table_purge_string(sectab->sect_ht, name_with_flags); scratch_end(scratch); } diff --git a/src/linker/lnk_symbol_table.c b/src/linker/lnk_symbol_table.c index dc9f37a0..8cb6c4e5 100644 --- a/src/linker/lnk_symbol_table.c +++ b/src/linker/lnk_symbol_table.c @@ -8,9 +8,9 @@ lnk_make_symbol(Arena *arena, String8 name, LNK_Obj *obj, U32 symbol_idx) ref->v.obj = obj; ref->v.symbol_idx = symbol_idx; - LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); - symbol->name = name; - symbol->refs = ref; + LNK_Symbol *symbol = push_array(arena, LNK_Symbol, 1); + symbol->name = name; + SLLQueuePush(symbol->first_ref, symbol->last_ref, ref); return symbol; } @@ -286,11 +286,12 @@ lnk_can_replace_symbol(LNK_Symbol *dst, LNK_Symbol *src) } } break; case COFF_ComdatSelect_ExactMatch: { - COFF_SectionHeader *dst_sect_header = lnk_coff_section_header_from_section_number(dst_obj, dst_parsed.section_number); - COFF_SectionHeader *src_sect_header = lnk_coff_section_header_from_section_number(src_obj, src_parsed.section_number); - String8 dst_data = str8_substr(dst_obj->data, rng_1u64(dst_sect_header->foff, dst_sect_header->foff + dst_sect_header->fsize)); - String8 src_data = str8_substr(src_obj->data, rng_1u64(src_sect_header->foff, src_sect_header->foff + src_sect_header->fsize)); - B32 is_exact_match = 0; + LNK_ObjSection dst_section = lnk_obj_section_from_section_number(dst_obj, dst_parsed.section_number); + LNK_ObjSection src_section = lnk_obj_section_from_section_number(src_obj, src_parsed.section_number); + String8 dst_data = str8_substr(dst_obj->data, dst_section.frange); + String8 src_data = str8_substr(src_obj->data, src_section.frange); + + B32 is_exact_match = 0; if (dst_check_sum != 0 && src_check_sum != 0) { is_exact_match = dst_check_sum == src_check_sum && str8_match(dst_data, src_data, 0); } else { @@ -337,22 +338,21 @@ lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) if (dst_interp == COFF_SymbolValueInterp_Regular) { // remove replaced section from the output - COFF_SectionHeader *dst_sect = lnk_coff_section_header_from_section_number(dst_ref.obj, dst_parsed.section_number); - dst_sect->flags |= COFF_SectionFlag_LnkRemove; + LNK_ObjSection dst_section = lnk_obj_section_from_section_number(dst_ref.obj, dst_parsed.section_number); + *dst_section.flags |= COFF_SectionFlag_LnkRemove; // remove associated sections from the output for (U32Node *associated_section = dst_ref.obj->associated_sections[dst_parsed.section_number]; associated_section != 0; associated_section = associated_section->next) { - COFF_SectionHeader *section_header = lnk_coff_section_header_from_section_number(dst_ref.obj, associated_section->data); - section_header->flags |= COFF_SectionFlag_LnkRemove; + LNK_ObjSection section = lnk_obj_section_from_section_number(dst_ref.obj, associated_section->data); + *section.flags |= COFF_SectionFlag_LnkRemove; } } // merge symbol refs - LNK_ObjSymbolRefNode *src_last_ref; - for (src_last_ref = src->refs; src_last_ref->next != 0; src_last_ref = src_last_ref->next); - src_last_ref->next = dst->refs; + src->last_ref->next = dst->first_ref; + src->last_ref = dst->last_ref; // assert leader section is live #if BUILD_DEBUG @@ -362,8 +362,9 @@ lnk_on_symbol_replace(LNK_Symbol *dst, LNK_Symbol *src) LNK_ObjSymbolRef src_ref = lnk_ref_from_symbol(src); if (src_interp == COFF_SymbolValueInterp_Regular) { - COFF_SectionHeader *src_sect = lnk_coff_section_header_from_section_number(src_ref.obj, src_parsed.section_number); - AssertAlways(~src_sect->flags & COFF_SectionFlag_LnkRemove); + LNK_ObjSection src_section = lnk_obj_section_from_section_number(src_ref.obj, src_parsed.section_number); + COFF_SectionFlags src_flags = *src_section.flags; + AssertAlways(~src_flags & COFF_SectionFlag_LnkRemove); } } #endif @@ -492,14 +493,14 @@ lnk_array_from_symbol_hash_trie_chunk_list(Arena *arena, LNK_SymbolHashTrieChunk internal LNK_ObjSymbolRef lnk_ref_from_symbol(LNK_Symbol *symbol) { - return symbol->refs->v; + return symbol->first_ref->v; } internal U64 lnk_ref_count_from_symbol(LNK_Symbol *symbol) { U64 count = 0; - for (LNK_ObjSymbolRefNode *node = symbol->refs; node != 0; node = node->next, count += 1); + for (LNK_ObjSymbolRefNode *node = symbol->first_ref; node != 0; node = node->next, count += 1); return count; } @@ -510,7 +511,7 @@ lnk_ref_from_symbol_many(Arena *arena, LNK_Symbol *symbol, U64 *count_out) U64 refs_count = lnk_ref_count_from_symbol(symbol); LNK_ObjSymbolRef **refs = push_array(arena, LNK_ObjSymbolRef *, refs_count); U64 i = 0; - for (LNK_ObjSymbolRefNode *node = symbol->refs; node != 0; node = node->next, i += 1) { + for (LNK_ObjSymbolRefNode *node = symbol->first_ref; node != 0; node = node->next, i += 1) { refs[i] = &node->v; } radsort(refs, refs_count, lnk_obj_symbol_ref_ptr_is_before); @@ -708,6 +709,52 @@ exit:; return is_resolved; } +internal B32 +lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_ObjSymbolRef symbol, LNK_ObjSymbolRef *symbol_out) +{ + B32 is_resolved = 1; + COFF_ParsedSymbol symbol_parsed = lnk_parsed_symbol_from_coff_symbol_idx(symbol.obj, symbol.symbol_idx); + COFF_SymbolValueInterpType symbol_interp = coff_interp_symbol(symbol_parsed.section_number, symbol_parsed.value, symbol_parsed.storage_class); + switch (symbol_interp) { + case COFF_SymbolValueInterp_Regular: { + LNK_Symbol *symlink = lnk_obj_get_comdat_symlink(symbol.obj, symbol_parsed.section_number); + *symbol_out = symlink ? lnk_ref_from_symbol(symlink) : symbol; + } break; + case COFF_SymbolValueInterp_Weak: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); + COFF_ParsedSymbol defn_parsed = lnk_parsed_from_symbol(defn); + COFF_SymbolValueInterpType defn_interp = lnk_interp_from_symbol(defn); + if (defn_interp != COFF_SymbolValueInterp_Undefined) { + *symbol_out = lnk_ref_from_symbol(defn); + } else { + is_resolved = 0; + } + } break; + case COFF_SymbolValueInterp_Undefined: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); + if (defn) { + *symbol_out = lnk_ref_from_symbol(defn); + } else { + is_resolved = 0; + } + } break; + case COFF_SymbolValueInterp_Common: { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); + *symbol_out = lnk_ref_from_symbol(defn); + } break; + case COFF_SymbolValueInterp_Abs: { + if (symbol_parsed.storage_class == COFF_SymStorageClass_External) { + LNK_Symbol *defn = lnk_symbol_table_search(symtab, symbol_parsed.name); + *symbol_out = lnk_ref_from_symbol(defn); + } else { + *symbol_out = symbol; + } + } break; + case COFF_SymbolValueInterp_Debug: { *symbol_out = symbol; } break; + } + return is_resolved; +} + internal THREAD_POOL_TASK_FUNC(lnk_replace_weak_with_default_symbol_task) { @@ -737,7 +784,7 @@ THREAD_POOL_TASK_FUNC(lnk_replace_weak_with_default_symbol_task) symbol16->storage_class = COFF_SymStorageClass_External; } } else { - symbol->refs->v = resolve; + symbol->first_ref->v = resolve; } } } @@ -758,4 +805,3 @@ lnk_replace_weak_with_default_symbols(TP_Context *tp, LNK_SymbolTable *symtab) ProfEnd(); } - diff --git a/src/linker/lnk_symbol_table.h b/src/linker/lnk_symbol_table.h index 7ca55350..da579bb1 100644 --- a/src/linker/lnk_symbol_table.h +++ b/src/linker/lnk_symbol_table.h @@ -20,7 +20,8 @@ typedef struct LNK_ObjSymbolRefNode typedef struct LNK_Symbol { String8 name; - LNK_ObjSymbolRefNode *refs; + LNK_ObjSymbolRefNode *first_ref; + LNK_ObjSymbolRefNode *last_ref; } LNK_Symbol; // --- Symbol Containers ------------------------------------------------------- @@ -134,6 +135,7 @@ internal U64 lnk_foff_from_symbol(COFF_SectionHeader **image_section_table, // --- Weak Symbol ------------------------------------------------------------- internal B32 lnk_resolve_weak_symbol(LNK_SymbolTable *symtab, LNK_ObjSymbolRef symbol, LNK_ObjSymbolRef *resolved_symbol_out); +internal B32 lnk_resolve_symbol(LNK_SymbolTable *symtab, LNK_ObjSymbolRef symbol, LNK_ObjSymbolRef *symbol_out); internal void lnk_replace_weak_with_default_symbols(TP_Context *tp, LNK_SymbolTable *symtab); diff --git a/src/linker/lnk_timer.c b/src/linker/lnk_timer.c index 4ce4522e..b94817d7 100644 --- a/src/linker/lnk_timer.c +++ b/src/linker/lnk_timer.c @@ -6,13 +6,13 @@ global LNK_Timer g_timers[LNK_Timer_Count]; internal void lnk_timer_begin(LNK_TimerType timer) { - g_timers[timer].begin = os_now_microseconds(); + g_timers[timer].begin = now_time_us(); } internal void lnk_timer_end(LNK_TimerType timer) { - g_timers[timer].end = os_now_microseconds(); + g_timers[timer].end = now_time_us(); } internal String8 diff --git a/src/linker/pdb_ext/msf_builder.c b/src/linker/pdb_ext/msf_builder.c index b0e9bfc2..b19560af 100644 --- a/src/linker/pdb_ext/msf_builder.c +++ b/src/linker/pdb_ext/msf_builder.c @@ -626,32 +626,31 @@ msf_find_max_pn_(MSF_PageDataList page_data_list, MSF_UInt page_size, MSF_PageNu for (MSF_Int fpm_pn_idx = (MSF_Int)fpm_pn_arr.count - 1; fpm_pn_idx >= 0; fpm_pn_idx -= 1) { MSF_PageNumber fpm_pn = fpm_pn_arr.v[fpm_pn_idx]; U32Array fpm_data = msf_fpm_data_from_pn(page_data_list, page_size, fpm_pn); - - // we have to work around the fact that FPM bits are always alloced - // and also there is a trail of unused FPM groups too - U32 bit_idx = max_U32; - for (MSF_Int i = fpm_page_count - 1; i >= 0; i -= 1) { - U32 fpm_lo = i * fpm_interval_wrong + 3; // skip first page bit and FPM group bits - U32 fpm_hi = i * fpm_interval_wrong + fpm_interval_wrong; - bit_idx = bit_array_scan_right_to_left32(fpm_data, fpm_lo, fpm_hi, MSF_PAGE_STATE_ALLOC); - if (bit_idx <= fpm_interval_correct) { - break; - } - } - - // check first page bit - if (bit_idx >= fpm_interval_correct) { - bit_idx = bit_array_scan_left_to_right32(fpm_data, 0, 1, MSF_PAGE_STATE_ALLOC); - if (bit_idx >= fpm_interval_correct) { + + U64 bit_idx = max_U64; + U64 hi = fpm_data.count*32; + while (hi > 0) { + U64 msb_idx = bit_array_scan_right_to_left32(fpm_data, 0, hi, MSF_PAGE_STATE_ALLOC); + + // FPM is empty + if (msb_idx >= hi) { break; } + + // hit FPM page -- keep going + U64 k = msb_idx % fpm_interval_wrong; + if (k < 3) { + hi = msb_idx; continue; } + + bit_idx = msb_idx; + break; + } + + // stop if there is a page + if (bit_idx != max_U64) { + max_pn = Max(bit_idx, 2) + fpm_pn_idx * fpm_interval_correct; + break; } - - // compute max page number - MSF_PageNumber pn = bit_idx + (MSF_UInt)fpm_pn_idx * fpm_interval_correct; - max_pn = Max(max_pn, pn); - - break; } return max_pn; @@ -666,6 +665,7 @@ msf_find_max_pn(MSF_PageDataList page_data_list, MSF_UInt page_size) MSF_PageNumber fpm0_max = msf_find_max_pn_(page_data_list, page_size, fpm0_pn_arr); MSF_PageNumber fpm1_max = msf_find_max_pn_(page_data_list, page_size, fpm1_pn_arr); MSF_PageNumber max_pn = Max(fpm0_max, fpm1_max); + Assert(max_pn > 1); scratch_end(scratch); return max_pn; } @@ -830,8 +830,8 @@ msf_stream_resize_ex(MSF_Context *msf, MSF_Stream *stream, MSF_UInt size) } // update stream - stream->size = Min(stream->size, stream->page_list.count * msf->page_size); - stream->pos = Min(stream->pos, stream->size); + stream->size = size; + stream->pos = Min(stream->pos, stream->size); stream->pos_page = 0; return 1; @@ -1155,9 +1155,9 @@ msf_stream_write_parallel(TP_Context *tp, MSF_Context *msf, MSF_StreamNumber sn, if (is_write_ok) { U64 expected_pos = stream->pos + buffer_size; - U64 pre_size = Min(AlignPadPow2(stream->pos, msf->page_size), buffer_size); - U64 mid_size = AlignDownPow2(buffer_size - pre_size, msf->page_size); - U64 end_size = buffer_size - (pre_size + mid_size); + MSF_UInt pre_size = Min(AlignPadPow2(stream->pos, msf->page_size), buffer_size); + MSF_UInt mid_size = AlignDownPow2(buffer_size - pre_size, msf->page_size); + MSF_UInt end_size = buffer_size - (pre_size + mid_size); U8 *pre_ptr = (U8*)buffer; U8 *mid_ptr = (U8*)buffer + pre_size; @@ -1211,6 +1211,52 @@ msf_stream_write_string_parallel(TP_Context *tp, MSF_Context *msf, MSF_StreamNum return msf_stream_write_parallel(tp, msf, sn, string.str, string.size); } +internal String8List +msf_data_from_sn(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn) +{ + String8List result = {0}; + + MSF_Stream *stream = msf_find_stream(msf, sn); + String8 acc = {0}; + + MSF_PageNode *n; + for (n = stream->page_list.first; n != stream->page_list.last; n = n->next) { + String8 page = msf_data_from_pn(msf->page_data_list, msf->page_size, n->pn); + + if (acc.str + acc.size != page.str) { + if (acc.size) { + str8_list_push(arena, &result, acc); + } + acc = page; + } else { + acc.size += page.size; + } + } + + if (acc.size) { + str8_list_push(arena, &result, acc); + MemoryZeroStruct(&acc); + } + + if (n) { + String8 page = msf_data_from_pn(msf->page_data_list, msf->page_size, n->pn); + if (acc.str + acc.size != page.str) { + acc = page; + } else { + acc.size += page.size; + } + + acc.size = Min(stream->size - result.total_size, acc.size); + + if (acc.size) { + str8_list_push(arena, &result, acc); + } + } + + Assert(result.total_size == stream->size); + return result; +} + //////////////////////////////// internal MSF_UInt @@ -1335,22 +1381,27 @@ msf_stream_read_string(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn) internal void msf_stream_align(MSF_Context *msf, MSF_StreamNumber sn, MSF_UInt align) { + local_persist U8 zeroes[64]; MSF_UInt pos = msf_stream_get_pos(msf, sn); - MSF_UInt pos_aligned = AlignPow2(pos, align); - msf_stream_seek(msf, sn, pos_aligned); + MSF_UInt pad = AlignPadPow2(pos, align); + if (pad > 0) { + if (pad < sizeof(zeroes)) { + msf_stream_write(msf, sn, zeroes, pad); + } else { + NotImplemented; + } + } } //////////////////////////////// internal MSF_Context * -msf_alloc__(MSF_UInt page_size, MSF_PageNumber active_fpm) +msf_alloc__(Arena *arena, MSF_UInt page_size, MSF_PageNumber active_fpm) { ProfBeginFunction(); Assert(active_fpm == MSF_FPM0 || active_fpm == MSF_FPM1); Assert(IsPow2(page_size)); - Arena *arena = arena_alloc(); - MSF_Context *msf = push_array(arena, MSF_Context, 1); msf->arena = arena; msf->page_size = page_size; @@ -1361,9 +1412,9 @@ msf_alloc__(MSF_UInt page_size, MSF_PageNumber active_fpm) } internal MSF_Context * -msf_alloc(MSF_UInt page_size, MSF_UInt active_fpm) +msf_alloc_(Arena *arena, MSF_UInt page_size, MSF_UInt active_fpm) { - MSF_Context *msf = msf_alloc__(page_size, active_fpm); + MSF_Context *msf = msf_alloc__(arena, page_size, active_fpm); // reserve first page for header msf->header_page_list = msf_alloc_pages(msf, 1); @@ -1378,6 +1429,12 @@ msf_alloc(MSF_UInt page_size, MSF_UInt active_fpm) return msf; } +internal MSF_Context * +msf_alloc(MSF_UInt page_size, MSF_UInt active_fpm) +{ + return msf_alloc_(arena_alloc( .name = "MSF"), page_size, active_fpm); +} + internal MSF_StreamNode * msf_find_stream_node(MSF_Context *msf, MSF_StreamNumber sn) { @@ -1401,280 +1458,10 @@ msf_find_stream(MSF_Context *msf, MSF_StreamNumber sn) return data; } -internal MSF_Error -msf_open_header(Arena *arena, MSF_PageDataList page_data_list, MSF_UInt page_size, MSF_PageList *page_list) -{ - ProfBeginFunction(); - msf_page_list_push_extant_page(arena, page_list, page_data_list, page_size, 0); - ProfEnd(); - return MSF_Error_OK; -} - -internal MSF_Error -msf_open_root(Arena *arena, MSF_PageDataList page_data_list, MSF_UInt page_size, MSF_PageNumber root_pn, MSF_UInt stream_table_size, MSF_PageList *page_list) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - MSF_PageNumber st_page_count = msf_count_pages(page_size, stream_table_size); - MSF_UInt st_pn_size = sizeof(MSF_PageNumber) * st_page_count; - MSF_PageNumber root_pn_count = msf_count_pages(page_size, st_pn_size); - MSF_PageNumber *root_pn_arr = push_array(scratch.arena, MSF_PageNumber, root_pn_count); - for (MSF_UInt i = 0; i < root_pn_count; i += 1) { - root_pn_arr[i] = root_pn + i; - } - msf_page_list_push_extant_page_arr(arena, page_list, page_data_list, page_size, root_pn_arr, root_pn_count); - scratch_end(scratch); - ProfEnd(); - return MSF_Error_OK; -} - -internal MSF_Error -msf_open_stream_table_page_list(Arena *arena, MSF_PageDataList page_data_list, MSF_UInt page_size, MSF_PageList root_page_list, MSF_UInt stream_table_size, MSF_PageList *page_list) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - MSF_Error error = MSF_Error_OK; - MSF_UInt st_pn_count = msf_count_pages(page_size, stream_table_size); - MSF_UInt st_pn_size = st_pn_count * sizeof(MSF_PageNumber); - MSF_PageNumber *st_pn_arr = push_array(scratch.arena, MSF_PageNumber, st_pn_count); - MSF_UInt st_pn_read_size = msf_read(page_data_list, page_size, root_page_list, 0, st_pn_arr, st_pn_size); - if (st_pn_read_size == st_pn_size) { - msf_page_list_push_extant_page_arr(arena, page_list, page_data_list, page_size, st_pn_arr, st_pn_count); - } else { - error = MSF_OpenError_UNABLE_TO_READ_STREAM_TABLE_PAGE_NUMBERS; - } - scratch_end(scratch); - ProfEnd(); - return error; -} - -internal MSF_Error -msf_open_stream_table(Arena *arena, MSF_PageDataList page_data_list, MSF_UInt page_size, MSF_PageList st_page_list, MSF_UInt stream_table_size, MSF_StreamList *stream_list) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - MSF_Error error = MSF_Error_OK; - - // read out entire stream table - U8 *st_buffer = push_array(scratch.arena, U8, stream_table_size); - MSF_UInt st_read_size = msf_read(page_data_list, page_size, st_page_list, 0, st_buffer, stream_table_size); - if (st_read_size != stream_table_size) { - error = MSF_OpenError_INVALID_STREAM_TABLE; - goto exit; - } - - // setup buffer reader - String8 st_data = str8(st_buffer, st_read_size); - U64 st_cursor = 0; - - MSF_UInt stream_count = 0; - st_cursor += str8_deserial_read_struct(st_data, st_cursor, &stream_count); - - // stream count is a 32-bit but stream number is 16-bit?! - if (stream_count > MSF_STREAM_NUMBER_MAX) { - error = MSF_OpenError_STREAM_COUNT_OVERFLOW; - goto exit; - } - - // is there enoguh bytes to read streams sizes? - U64 size_arr_end = st_cursor + (U64)stream_count * sizeof(MSF_UInt); - if (size_arr_end > st_data.size) { - error = MSF_OpenError_UNABLE_TO_READ_STREAM_SIZES; - goto exit; - } - - // make pointer to stream sizes array - MSF_UInt *stream_size_arr = (MSF_UInt*)(st_buffer + st_cursor); - st_cursor += sizeof(stream_size_arr[0]) * stream_count; - - U64 arena_pos_before_stream_allocations = arena_pos(arena); - - // open streams - for (MSF_UInt stream_idx = 0; stream_idx < stream_count; stream_idx += 1) { - MSF_UInt stream_size = stream_size_arr[stream_idx]; - B32 is_present = stream_size != MSF_DELETED_STREAM_STAMP; - if (is_present) { - MSF_PageNumber pn_count = msf_count_pages(page_size, stream_size); - - // is there enough bytes in buffer to build stream page list? - MSF_UInt st_pn_end = st_cursor + pn_count * sizeof(MSF_PageNumber); - if (st_pn_end > stream_table_size) { - break; - } - - // setup page number array - MSF_PageNumber *pn_arr = (MSF_PageNumber*)(st_buffer + st_cursor); - st_cursor += sizeof(pn_arr[0]) * pn_count; - - // build stream page list - MSF_PageList page_list = {0}; - msf_page_list_push_extant_page_arr(arena, &page_list, page_data_list, page_size, pn_arr, pn_count); - - // alloc stream with opened pages - MSF_StreamNode *stream_node = msf_stream_alloc_(arena, stream_list); - stream_node->data.size = stream_size; - stream_node->data.page_list = page_list; - } - // stream was deleted but slot was kept to be reused in subsequent allocations - else { - MSF_StreamNode *stream_node = msf_stream_alloc_(arena, stream_list); - stream_node->data.size = stream_size; - } - } - - if (stream_list->count != stream_count) { - arena_pop_to(arena, arena_pos_before_stream_allocations); - error = MSF_OpenError_INVALID_STREAM_TABLE; - goto exit; - } - -exit:; - scratch_end(scratch); - ProfEnd(); - return error; -} - -internal MSF_Error -msf_open(String8 data, MSF_Context **msf_out) -{ - ProfBeginFunction(); - - MSF_Error error = MSF_Error_OK; - MSF_Context *msf = 0; - MSF_PageDataList page_data_list = {0}; - - // are there enough bytes for header? - if (sizeof(MSF_Header70) > data.size) { - error = MSF_OpenError_NOT_ENOUGH_BYTES_TO_READ_HEADER; - goto exit; - } - - // is this MSF 7.0? - MSF_Header70 *header = (MSF_Header70*)data.str; - if (MemoryCompare(header->magic, msf_msf70_magic, sizeof(msf_msf70_magic)) != 0) { - error = MSF_OpenError_INVALID_MAGIC; - goto exit; - } - - // validate page size - if (!IsPow2(header->page_size)) { - error = MSF_OpenError_PAGE_SIZE_IS_NOT_POW2; - goto exit; - } - - // validate page count - MSF_UInt file_page_count = msf_count_pages(header->page_size, data.size); - if (file_page_count != header->page_count) { - error = MSF_OpenError_PAGE_COUNT_DOESNT_MATCH_DATA_SIZE; - goto exit; - } - - // validate FPM - if (header->page_size < MSF_MIN_PAGE_SIZE) { - error = MSF_OpenError_INVALID_PAGE_SIZE; - goto exit; - } - if (header->page_size > MSF_MAX_PAGE_SIZE) { - error = MSF_OpenError_INVALID_PAGE_SIZE; - goto exit; - } - - // is there enough bytes to initialize PDB? - MSF_UInt check_size = header->page_size*3 + header->stream_table_size; - if (check_size > data.size) { - error = MSF_OpenError_NOT_ENOUGH_PAGES_TO_INIT; - goto exit; - } - - // validate FPM - if (header->active_fpm != MSF_FPM0 && header->active_fpm != MSF_FPM1) { - error = MSF_OpenError_INVALID_ACTIVE_FPM; - goto exit; - } - - // is there enough bytes to initialize root stream? - MSF_UInt root_pn_offset = OffsetOf(MSF_Header70, root_pn); - if (root_pn_offset + header->stream_table_size > data.size) { - error = MSF_OpenError_INVALID_ROOT_STREAM_PAGE_NUMBER; - goto exit; - } - - // validate root directory - MSF_UInt root_directory_page_count = msf_count_pages(header->page_size, header->stream_table_size); - MSF_UInt root_directory_max_page_count = header->page_size / sizeof(MSF_UInt); - if (root_directory_page_count > root_directory_max_page_count) { - error = MSF_Error_STREAM_TABLE_HAS_TOO_MANY_PAGES; - goto exit; - } - - // allocate MSF context and don't reserve special pages - msf = msf_alloc__(header->page_size, header->active_fpm); - - // divide data into fixed size nodes (with 4KB page each node is 128MB) - msf_set_page_data_list(msf->arena, &page_data_list, header->page_size, data); - - do { - MSF_PageList header_page_list = {0}; - error = msf_open_header(msf->arena, page_data_list, header->page_size, &header_page_list); - if (error != MSF_Error_OK) { - break; - } - - MSF_PageList root_page_list = {0}; - error = msf_open_root(msf->arena, page_data_list, header->page_size, header->root_pn, header->stream_table_size, &root_page_list); - if (error != MSF_Error_OK) { - break; - } - - MSF_PageList st_page_list = {0}; - error = msf_open_stream_table_page_list(msf->arena, page_data_list, header->page_size, root_page_list, header->stream_table_size, &st_page_list); - if (error != MSF_Error_OK) { - break; - } - - MSF_StreamList stream_list = {0}; - error = msf_open_stream_table(msf->arena, page_data_list, header->page_size, st_page_list, header->stream_table_size, &stream_list); - if (error != MSF_Error_OK) { - break; - } - - Assert(msf->page_size == header->page_size); - Assert(msf->active_fpm == header->active_fpm); - msf->page_count = header->page_count; - msf->page_data_list = page_data_list; - msf->header_page_list = header_page_list; - msf->root_page_list = root_page_list; - msf->st_page_list = st_page_list; - msf->sectab = stream_list; - - *msf_out = msf; - -#if LNK_PARANOID - msf_check_fpm_bits_for_page_list(page_data_list, msf->page_size, msf->active_fpm, header_page_list, MSF_PAGE_STATE_ALLOC); - msf_check_fpm_bits_for_page_list(page_data_list, msf->page_size, msf->active_fpm, root_page_list, MSF_PAGE_STATE_ALLOC); - msf_check_fpm_bits_for_page_list(page_data_list, msf->page_size, msf->active_fpm, st_page_list, MSF_PAGE_STATE_ALLOC); - for (MSF_StreamNode *stream_node = stream_list.first; stream_node != 0; stream_node = stream_node->next) { - msf_check_fpm_bits_for_page_list(page_data_list, msf->page_size, msf->active_fpm, stream_node->data.page_list, MSF_PAGE_STATE_ALLOC); - } -#endif - } while(0); - -exit:; - if (error != MSF_Error_OK) { - if (msf) { - msf_release(&msf); - } - } - - ProfEnd(); - return error; -} - internal void -msf_release(MSF_Context **msf_ptr) +msf_release(MSF_Context *msf) { - arena_release((*msf_ptr)->arena); - *msf_ptr = 0; + arena_release(msf->arena); } internal String8List @@ -1867,6 +1654,8 @@ msf_build(MSF_Context *msf) internal String8List msf_get_page_data_nodes(Arena *arena, MSF_Context *msf) { + ProfBeginFunction(); + String8List list; MemoryZeroStruct(&list); U64 total_size = msf_get_save_size(msf); @@ -1881,19 +1670,17 @@ msf_get_page_data_nodes(Arena *arena, MSF_Context *msf) String8 data = str8(data_node->data, to_copy); str8_list_push(arena, &list, data); } + + ProfEnd(); return list; } internal U64 msf_get_save_size(MSF_Context *msf) { -#if 0 - MSF_PageNumber max_pn = msf_find_max_pn(msf->page_data_list, msf->page_size); - U64 size = ((U64)max_pn + 1) * (U64)msf->page_size; - Assert(msf_count_pages(size, msf->page_size) == msf->page_count); -#else - U64 size = (U64)msf->page_count * msf->page_size; -#endif + MSF_PageNumber max_pn = msf_find_max_pn(msf->page_data_list, msf->page_size); + U64 page_count = max_pn + 1; + U64 size = page_count * msf->page_size; return size; } diff --git a/src/linker/pdb_ext/msf_builder.h b/src/linker/pdb_ext/msf_builder.h index e39ef838..c07b582a 100644 --- a/src/linker/pdb_ext/msf_builder.h +++ b/src/linker/pdb_ext/msf_builder.h @@ -127,8 +127,7 @@ typedef struct //////////////////////////////// internal MSF_Context * msf_alloc(MSF_UInt page_size, MSF_UInt active_fpm); -internal MSF_Error msf_open(String8 data, MSF_Context **msf_out); -internal void msf_release(MSF_Context **msf_ptr); +internal void msf_release(MSF_Context *msf_ptr); internal MSF_Error msf_build(MSF_Context *msf); internal U64 msf_get_save_size(MSF_Context *msf); internal String8List msf_get_page_data_nodes(Arena *arena, MSF_Context *msf); @@ -188,6 +187,8 @@ internal B32 msf_stream_write_parallel(TP_Context *tp, MSF_Context *msf, MSF_Str #define msf_stream_write_array(m, s, v, c) msf_stream_write(m, s, (void*)(v), sizeof(*(v)) * (c)) #define msf_stream_write_struct(m, s, v ) msf_stream_write_array(m, s, v, 1) +internal String8List msf_data_from_sn(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn); + internal MSF_UInt msf_count_pages(MSF_UInt page_size, U64 data_size); internal MSF_PageNumber msf_get_page_count_cap(MSF_PageDataList page_data_list, MSF_UInt page_size); internal MSF_UInt msf_get_fpm_interval_correct(MSF_UInt page_size); diff --git a/src/linker/pdb_ext/pdb_builder.c b/src/linker/pdb_ext/pdb_builder.c index 153bc759..be696012 100644 --- a/src/linker/pdb_ext/pdb_builder.c +++ b/src/linker/pdb_ext/pdb_builder.c @@ -21,7 +21,6 @@ pdb_hash_table_alloc(PDB_HashTable *ht, U32 max) ht->deleted_bits = bit_array_init32(ht->arena, max); ht->max = max; ht->count = 0; - bit_array_set_bit_range32(ht->deleted_bits, rng_1u64(0, max), 1); ProfEnd(); } @@ -148,51 +147,48 @@ pdb_hash_table_from_data(PDB_HashTable *ht, return error; } +internal int +pdb_hash_table_bucket_is_before(void *raw_a, void *raw_b) +{ + PDB_HashTableBucket *a = *(PDB_HashTableBucket **)raw_a, *b = *(PDB_HashTableBucket **)raw_b; + return a->insert_idx < b->insert_idx; +} + internal String8 -pdb_data_from_hash_table(Arena *arena, - PDB_HashTable *ht, - B32 has_local_data, - PDB_HashTablePackFunc *pack_func, - void *pack_ud) +pdb_data_from_hash_table(Arena *arena, PDB_HashTable *ht, PDB_HashTablePackFunc *pack_func, void *pack_ud) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); - String8Array key_arr = {0}; - String8Array value_arr = {0}; - pdb_hash_table_get_present_keys_and_values(scratch.arena, ht, &key_arr, &value_arr); + String8List kv_srl = {0}; str8_serial_begin(scratch.arena, &kv_srl); + PDB_HashTableBucket **buckets = pdb_hash_table_get_present_buckets(scratch.arena, ht); + for EachIndex(i, ht->count) { pack_func(scratch.arena, &kv_srl, buckets[i], buckets[i]->key, buckets[i]->value, pack_ud); } - String8List local_data_srl = {0}; - String8List key_value_srl = {0}; - str8_serial_begin(scratch.arena, &local_data_srl); - str8_serial_begin(scratch.arena, &key_value_srl); + // compute count of present words that are needed + U64 present_word_count = 0; + U64 present_msb = bit_array_scan_right_to_left32(ht->present_bits, 0, ht->present_bits.count*32, 1); + if (present_msb < ht->present_bits.count*32) { present_word_count = present_msb / 32 + 1; } - for (U64 i = 0; i < ht->count; i += 1) { - String8 key = key_arr.v[i]; - String8 value = value_arr.v[i]; - pack_func(scratch.arena, &local_data_srl, &key_value_srl, key, value, pack_ud); - } + // compute count of deleted words that are needed + U64 deleted_word_count = 0; + U64 deleted_msb = bit_array_scan_right_to_left32(ht->deleted_bits, 0, ht->deleted_bits.count*32, 1); + if (deleted_msb < ht->deleted_bits.count*32) { deleted_word_count = deleted_msb / 32 + 1; } - // serialize hash table - String8List srl = {0}; - str8_serial_begin(scratch.arena, &srl); - if (has_local_data) { - U32 local_data_size32 = safe_cast_u32(local_data_srl.total_size); - str8_serial_push_u32(scratch.arena, &srl, local_data_size32); - str8_list_concat_in_place(&srl, &local_data_srl); - } - str8_serial_push_u32(scratch.arena, &srl, ht->count); - str8_serial_push_u32(scratch.arena, &srl, ht->max); - str8_serial_push_u32(scratch.arena, &srl, ht->present_bits.count); - str8_serial_push_array(scratch.arena, &srl, &ht->present_bits.v[0], ht->present_bits.count); - str8_serial_push_u32(scratch.arena, &srl, ht->deleted_bits.count); - str8_serial_push_array(scratch.arena, &srl, &ht->deleted_bits.v[0], ht->deleted_bits.count); - str8_list_concat_in_place(&srl, &key_value_srl); - String8 data = str8_serial_end(arena, &srl); + // write hash table + String8List ht_srl = {0}; str8_serial_begin(scratch.arena, &ht_srl); + str8_serial_push_u32 (scratch.arena, &ht_srl, ht->count); + str8_serial_push_u32 (scratch.arena, &ht_srl, ht->max); + str8_serial_push_u32 (scratch.arena, &ht_srl, present_word_count); + str8_serial_push_array(scratch.arena, &ht_srl, &ht->present_bits.v[0], present_word_count); + str8_serial_push_u32 (scratch.arena, &ht_srl, deleted_word_count); + str8_serial_push_array(scratch.arena, &ht_srl, &ht->deleted_bits.v[0], deleted_word_count); + str8_list_concat_in_place(&ht_srl, &kv_srl); + + String8 result = str8_serial_end(arena, &ht_srl); scratch_end(scratch); ProfEnd(); - return data; + return result; } internal void @@ -204,7 +200,8 @@ pdb_hash_table_grow(PDB_HashTable *ht, U64 new_capacity) for (U32 i = 0; i < ht->max; ++i) { if (bit_array_is_bit_set(ht->present_bits, i)) { PDB_HashTableBucket *bucket = &ht->bucket_arr[i]; - B32 is_set = pdb_hash_table_try_set(&new_ht, bucket->key, bucket->value); + PDB_HashTableBucket *is_set = pdb_hash_table_try_set(&new_ht, bucket->key, bucket->value); + is_set->insert_idx = bucket->insert_idx; Assert(is_set); } } @@ -219,25 +216,26 @@ pdb_hash_table_hash(String8 key) return (U16)pdb_hash_v1(key); } -internal B32 +internal PDB_HashTableBucket * pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value) { ProfBeginFunction(); - B32 is_set = 0; + PDB_HashTableBucket *is_set = 0; U32 best_ibucket = pdb_hash_table_hash(key) % ht->max; U32 ibucket = best_ibucket; do { B32 is_present = pdb_hash_table_is_present(ht, ibucket); if ( ! is_present) { PDB_HashTableBucket *bucket = &ht->bucket_arr[ibucket]; - bucket->key = push_str8_copy(ht->arena, key); - bucket->value = push_str8_copy(ht->arena, value); + bucket->key = push_str8_copy(ht->arena, key); + bucket->value = push_str8_copy(ht->arena, value); + bucket->insert_idx = ht->count; bit_array_set_bit32(ht->present_bits, ibucket, 1); bit_array_set_bit32(ht->deleted_bits, ibucket, 0); ht->count += 1; - is_set = 1; + is_set = bucket; break; } ibucket = (ibucket + 1) % ht->max; @@ -254,11 +252,11 @@ pdb_hash_table_set(PDB_HashTable *ht, String8 key, String8 value) // should resize? U64 load_factor = pdb_hash_table_compute_load_factor(ht->max); if (ht->count + 1 >= load_factor) { - pdb_hash_table_grow(ht, ht->max * 2); + pdb_hash_table_grow(ht, load_factor * 2); } // set new item - B32 is_set = pdb_hash_table_try_set(ht, key, value); + PDB_HashTableBucket *is_set = pdb_hash_table_try_set(ht, key, value); AssertAlways(is_set); ProfEnd(); @@ -328,6 +326,21 @@ pdb_hash_table_is_deleted(PDB_HashTable *ht, U32 k) return bit_array_is_bit_set(ht->deleted_bits, k); } +internal PDB_HashTableBucket ** +pdb_hash_table_get_present_buckets(Arena *arena, PDB_HashTable *ht) +{ + U64 result_count = 0; + PDB_HashTableBucket **result = push_array(arena, PDB_HashTableBucket *, ht->count); + for EachIndex(bucket_idx, ht->max) { + if (bit_array_is_bit_set(ht->present_bits, bucket_idx)) { + PDB_HashTableBucket *bucket = &ht->bucket_arr[bucket_idx]; + Assert(result_count < ht->count); + result[result_count++] = bucket; + } + } + return result; +} + internal void pdb_hash_table_get_present_keys_and_values(Arena *arena, PDB_HashTable *ht, String8Array *keys_out, String8Array *values_out) { @@ -422,12 +435,7 @@ PDB_HASH_TABLE_PACK_FUNC(pdb_named_stream_ht_pack) { Assert(!ud); Assert(value.size == sizeof(U32)); - - U64 key_data_offset = local_data_srl->total_size; - str8_serial_push_cstr(arena, local_data_srl, key); - - U32 key_data_offset32 = safe_cast_u32(key_data_offset); - str8_serial_push_u32(arena, key_value_srl, key_data_offset32); + str8_serial_push_u32(arena, key_value_srl, bucket->key_offset); str8_serial_push_string(arena, key_value_srl, value); } @@ -436,7 +444,7 @@ PDB_HASH_TABLE_PACK_FUNC(pdb_hash_adj_ht_pack) { Assert(value.size == sizeof(CV_TypeIndex)); - PDB_StringTable *strtab = (PDB_StringTable*)ud; + PDB_StringTable *strtab = ud; PDB_StringIndex string_idx = PDB_INVALID_STRING_INDEX; B32 is_found = pdb_strtab_search(strtab, key, &string_idx); @@ -453,7 +461,7 @@ PDB_HASH_TABLE_PACK_FUNC(pdb_src_header_block_ht_pack) { Assert(value.size == sizeof(PDB_SrcHeaderBlockEntry)); - PDB_StringTable *strtab = (PDB_StringTable*)ud; + PDB_StringTable *strtab = ud; PDB_StringIndex path_idx = 0; B32 is_found = pdb_strtab_search(strtab, key, &path_idx); @@ -488,22 +496,44 @@ pdb_named_stream_ht_from_data(PDB_HashTable *ht, String8 data, U64 *read_bytes_o internal String8 pdb_data_from_hash_adj_hash_table(Arena *arena, PDB_HashTable *ht, PDB_StringTable *strtab) { - String8 data = pdb_data_from_hash_table(arena, ht, 0, pdb_hash_adj_ht_pack, strtab); - return data; + return pdb_data_from_hash_table(arena, ht, pdb_hash_adj_ht_pack, strtab); } internal String8 pdb_data_from_src_header_block_ht(Arena *arena, PDB_HashTable *ht, PDB_StringTable *strtab) { - String8 data = pdb_data_from_hash_table(arena, ht, 0, pdb_src_header_block_ht_pack, strtab); - return data; + return pdb_data_from_hash_table(arena, ht, pdb_src_header_block_ht_pack, strtab); } internal String8 pdb_data_from_named_stream_ht(Arena *arena, PDB_HashTable *ht) { - String8 data = pdb_data_from_hash_table(arena, ht, 1, pdb_named_stream_ht_pack, 0); - return data; + Temp scratch = scratch_begin(&arena, 1); + + // serialize names (layout must be in insert order) + String8List key_data_srl = {0}; str8_serial_begin(scratch.arena, &key_data_srl); + { + PDB_HashTableBucket **buckets = pdb_hash_table_get_present_buckets(scratch.arena, ht); + radsort(buckets, ht->count, pdb_hash_table_bucket_is_before); + for EachIndex(i, ht->count) { + buckets[i]->key_offset = key_data_srl.total_size; + str8_serial_push_cstr(scratch.arena, &key_data_srl, buckets[i]->key); + } + } + + // serialize hash table + String8 ht_data = pdb_data_from_hash_table(arena, ht, pdb_named_stream_ht_pack, 0); + + // put names and hash table together + String8List srl = {0}; str8_serial_begin(scratch.arena, &srl); + str8_serial_push_u32(scratch.arena, &srl, safe_cast_u32(key_data_srl.total_size)); + str8_serial_push_data_list(scratch.arena, &srl, key_data_srl.first); + str8_serial_push_string(scratch.arena, &srl, ht_data); + + String8 result = str8_serial_end(arena, &srl); + + scratch_end(scratch); + return result; } //////////////////////////////// @@ -531,130 +561,6 @@ pdb_strtab_alloc(PDB_StringTable *strtab, U32 max) ProfEnd(); } -internal PDB_StringTableOpenError -pdb_strtab_open(PDB_StringTable *strtab, MSF_Context *msf, MSF_StreamNumber sn) -{ - ProfBeginFunction(); - - PDB_StringTableOpenError err = PDB_StringTableOpenError_OK; - - Arena *arena = 0; - String8 string_buffer; - U32 bucket_max; - U32 bucket_count; - U32 *ibucket_array; - PDB_StringTableBucket **bucket_array; - - PDB_StringTableHeader header = {0}; - msf_stream_read_struct(msf, sn, &header); - - if (header.magic == PDB_StringTableHeader_MAGIC) { - if (header.version == PDB_StringTableHeader_CurrentVersion) { - Temp scratch = scratch_begin(0,0); - - arena = arena_alloc(); - - U32 string_size; - String8 offset_buffer; - - // read table data - string_size = msf_stream_read_u32(msf, sn); - string_buffer = msf_stream_read_block(arena, msf, sn, string_size); - bucket_max = msf_stream_read_u32(msf, sn); - offset_buffer = msf_stream_read_block(scratch.arena, msf, sn, bucket_max * sizeof(U32)); - bucket_count = msf_stream_read_u32(msf, sn); - - U64 expected_size = sizeof(PDB_StringTableHeader) + - string_buffer.size + - sizeof(bucket_max) + - offset_buffer.size + - sizeof(bucket_count); - U64 actual_size = msf_stream_get_size(msf, sn); - - if (expected_size <= actual_size && - string_buffer.size == string_size && - offset_buffer.size == sizeof(U32)*bucket_max && - bucket_count <= bucket_max) { - // init string table - ibucket_array = push_array_no_zero(arena, U32, bucket_max); - bucket_array = push_array_no_zero(arena, PDB_StringTableBucket *, bucket_max); - - // open buckets - PDB_StringTableBucket *node_arr = push_array_no_zero(arena, PDB_StringTableBucket, bucket_count); - U8 *string_buffer_ptr = string_buffer.str; - U8 *string_buffer_opl = string_buffer.str + string_buffer.size; - U32 *offset_array = (U32*)offset_buffer.str; - U32 bucket_read_idx = 0; - - for (U32 bucket_idx = 0; bucket_idx < bucket_max; bucket_idx += 1) { - U32 string_offset = offset_array[bucket_idx]; - - // sanity check offset - if (string_offset >= string_buffer.size) { - err = PDB_StringTableOpenError_STRING_OFFSET_OUT_OF_BOUNDS; - break; - } - - // empty bucket - else if (string_offset == 0) { - ibucket_array[bucket_idx] = 0; - bucket_array[bucket_idx] = 0; - } - - // bucket with string - else { - if (bucket_read_idx >= bucket_count) { - err = PDB_StringTableOpenError_OFFSETS_EXCEED_BUCKET_COUNT; - break; - } - - // get bucket - PDB_StringTableBucket *bucket = &node_arr[bucket_read_idx]; - - // init bucket - bucket->data = str8_cstring_capped(string_buffer_ptr + string_offset, string_buffer_opl); - bucket->offset = string_offset; - bucket->istr = bucket_read_idx; - - // assign bucket - bucket_array[bucket_idx] = bucket; - ibucket_array[bucket_idx] = bucket_read_idx; - - // advance - bucket_read_idx += 1; - } - } - } else { - err = PDB_StringTableOpenError_CORRUPTED; - } - - scratch_end(scratch); - } else { - err = PDB_StringTableOpenError_UNKNOWN_VERSION; - } - } else { - err = PDB_StringTableOpenError_BAD_MAGIC; - } - - if (err == PDB_StringTableOpenError_OK) { - strtab->arena = arena; - strtab->version = header.version; - strtab->size = string_buffer.size; - strtab->bucket_count = bucket_count; - strtab->bucket_max = bucket_max; - strtab->ibucket_array = ibucket_array; - strtab->bucket_array = bucket_array; - } else { - if (arena) { - arena_release(arena); - } - } - - ProfEnd(); - - return err; -} - internal void pdb_strtab_build(PDB_StringTable *strtab, MSF_Context *msf, MSF_StreamNumber sn) { @@ -900,74 +806,39 @@ pdb_strtab_string_to_offset(PDB_StringTable *strtab, PDB_StringIndex stridx) return offset; } -internal String8 -pdb_string_from_string_table_open_error(PDB_StringTableOpenError err) -{ - String8 result = str8(0,0); - switch (err) { - case PDB_StringTableOpenError_OK: break; - case PDB_StringTableOpenError_BAD_MAGIC: result = str8_lit("BAD_MAGIC"); break; - case PDB_StringTableOpenError_UNKNOWN_VERSION: result = str8_lit("UNKNOWN_VERSION"); break; - case PDB_StringTableOpenError_CORRUPTED: result = str8_lit("CORRUPTED"); break; - case PDB_StringTableOpenError_OFFSETS_EXCEED_BUCKET_COUNT: result = str8_lit("OFFSETS_EXCEED_BUCKET_COUNT"); break; - case PDB_StringTableOpenError_STRING_OFFSET_OUT_OF_BOUNDS: result = str8_lit("STRING_OFFSET_OUT_OF_BOUNDS"); break; - } - return result; -} - //////////////////////////////// -internal PDB_OpenTypeServerError -pdb_type_server_parse_from_data_v80(String8 data, PDB_TypeServerParse *parse) +internal B32 +pdb_extract_type_server_info(String8 raw_msf, MSF_RawStreamTable *st, MSF_StreamNumber sn, Rng1U64 *ti_range_out, Rng1U64 *leaf_range_out) { - ProfBeginFunction(); - - PDB_OpenTypeServerError error = PDB_OpenTypeServerError_UNKNOWN; - - PDB_TpiHeader header; MemoryZeroStruct(&header); - str8_deserial_read_struct(data, 0, &header); - Assert(header.version == PDB_TpiVersion_IMPV80); - - if (header.ti_lo >= CV_MinComplexTypeIndex && - header.ti_lo <= header.ti_hi) { - if (header.hash_bucket_count > 0 && - header.hash_bucket_count <= PDB_TYPE_SERVER_HASH_BUCKET_COUNT_MAX) { - parse->ti_range = rng_1u64(header.ti_lo, header.ti_hi); - parse->leaf_data = str8_substr(data, rng_1u64(sizeof(PDB_TpiHeader), sizeof(PDB_TpiHeader) + header.leaf_data_size )); - error = PDB_OpenTypeServerError_OK; - } else { - error = PDB_OpenTypeServerError_INVALID_BUCKET_COUNT; + Temp scratch = scratch_begin(0,0); + B32 is_ok = 0; + String8 version_data = msf_data_from_stream_number_ex(scratch.arena, raw_msf, st, sn, r1u64(0, sizeof(PDB_TpiVersion)), 8); + PDB_TpiVersion *version = str8_deserial_get_raw_ptr(version_data, 0, sizeof(*version)); + if (version) { + switch (*version) { + case PDB_TpiVersion_IMPV80: { + String8 header_size_data = msf_data_from_stream_number_ex(scratch.arena, raw_msf, st, sn, r1u64(sizeof(*version), sizeof(*version) + sizeof(U32)), 8); + U32 *header_size = str8_deserial_get_raw_ptr(header_size_data, 0, sizeof(*header_size)); + if (header_size && *header_size >= sizeof(PDB_TpiVersion) + sizeof(U32)) { + String8 header_data = msf_data_from_stream_number_ex(scratch.arena, raw_msf, st, sn, r1u64(0, *header_size), 8); + PDB_TpiHeader *header = str8_deserial_get_raw_ptr(header_data, 0, sizeof(*header)); + if (*header_size + header->leaf_data_size <= st->streams[sn].size) { + *ti_range_out = r1u64(header->ti_lo, header->ti_hi); + *leaf_range_out = r1u64(*header_size, *header_size + header->leaf_data_size); + is_ok = 1; + } else { + NotImplemented; // TODO: handle error + } + } else { + NotImplemented; // TODO: handle error + } + } break; + default: break; } - } else { - error = PDB_OpenTypeServerError_INVALID_TI_RANGE; } - - ProfEnd(); - return error; -} - -internal PDB_OpenTypeServerError -pdb_type_server_parse_from_data(String8 data, PDB_TypeServerParse *parse_out) -{ - PDB_OpenTypeServerError error = PDB_OpenTypeServerError_UNKNOWN; - - PDB_TpiVersion version = 0; - str8_deserial_read_struct(data, 0, &version); - - switch (version) { - case PDB_TpiVersion_IMPV80: - error = pdb_type_server_parse_from_data_v80(data, parse_out); - break; - case PDB_TpiVersion_INTV_VC2: - case PDB_TpiVersion_IMPV40: - case PDB_TpiVersion_IMPV50_INTERIM: - case PDB_TpiVersion_IMPV70: - error = PDB_OpenTypeServerError_UNSUPPORTED_VERSION; - break; - default: Assert(!"unknown TPI version"); break; - } - - return error; + scratch_end(scratch); + return is_ok; } internal PDB_TypeServer * @@ -989,154 +860,6 @@ pdb_type_server_alloc(U64 bucket_cap) return ts; } -internal PDB_TypeServer * -pdb_type_server_open_v80(MSF_Context *msf, MSF_StreamNumber sn, PDB_StringTable *strtab) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - PDB_TypeServer *ts = NULL; - - PDB_TpiHeader header = {0}; - msf_stream_seek(msf, sn, 0); - MSF_UInt read_header_size = msf_stream_read_struct(msf, sn, &header); - - // have we read enough bytes? - if (read_header_size != sizeof(PDB_TpiHeader)) { - goto exit; - } - // is lowest non-simple type index valid? - if (header.ti_lo < CV_MinComplexTypeIndex) { - goto exit; - } - // is high non-simple type index valid? - if (header.ti_lo > header.ti_hi) { - goto exit; - } - - // validate hash bucket count - if (header.hash_bucket_count == 0) { - goto exit; - } - if (header.hash_bucket_count > PDB_TYPE_SERVER_HASH_BUCKET_COUNT_MAX) { - goto exit; - } - - // are there enough bytes in the stream to read hash values? - U64 hash_stream_size = msf_stream_get_size(msf, header.hash_sn); - if (header.hash_vals.off + header.hash_vals.size > hash_stream_size) { - goto exit; - } - - ts = pdb_type_server_alloc(header.hash_bucket_count); - - // read & parse code view types - String8 types_data = msf_stream_read_block(ts->arena, msf, sn, header.leaf_data_size); - CV_DebugT debug_t = cv_debug_t_from_data(scratch.arena, types_data, PDB_LEAF_ALIGN); - - // read hash data - U8 *hash_buffer = push_array(scratch.arena, U8, header.hash_vals.size); - msf_stream_seek(msf, header.hash_sn, header.hash_vals.off); - MSF_UInt hash_buffer_size = msf_stream_read(msf, header.hash_sn, hash_buffer, header.hash_vals.size); - Assert(hash_buffer_size == header.hash_vals.size); - - // rebuild type buckets - for (U64 cursor = 0, leaf_idx = 0; - cursor + header.hash_key_size <= hash_buffer_size; - cursor += header.hash_key_size, leaf_idx += 1) { - String8 raw_leaf = cv_debug_t_get_raw_leaf(debug_t, leaf_idx); - - str8_list_push(ts->arena, &ts->leaf_list, raw_leaf); - - // read out bucket hash - U64 hash = 0; - MemoryCopy(&hash, hash_buffer + cursor, header.hash_key_size); - - // push bucket - PDB_TypeBucket *bucket = push_array(ts->arena, PDB_TypeBucket, 1); - bucket->raw_leaf = raw_leaf; - bucket->type_index = header.ti_lo + leaf_idx; - SLLStackPush(ts->buckets[hash], bucket); - } - - // adjust type buckets - msf_stream_seek(msf, header.hash_sn, header.hash_adj.off); - String8 adjust_data = msf_stream_read_block(scratch.arena, msf, header.hash_sn, header.hash_adj.size); - - // open adjust hash table - PDB_HashTableParseError hash_adj_parse_error = pdb_hash_adj_hash_table_from_data(&ts->hash_adj, adjust_data, strtab, 0); - if (hash_adj_parse_error == PDB_HashTableParseError_OUT_OF_BYTES) { - pdb_hash_table_alloc(&ts->hash_adj, 16); - } else { - Assert(hash_adj_parse_error == PDB_HashTableParseError_OK); - } - - // grab keys and values - String8Array key_arr = {0}; - String8Array value_arr = {0}; - pdb_hash_table_get_present_keys_and_values(scratch.arena, &ts->hash_adj, &key_arr, &value_arr); - - // adjust type buckets - for (U64 i = 0; i < ts->hash_adj.count; i += 1) { - String8 type_name = key_arr.v[i]; - CV_TypeIndex type_index = *(CV_TypeIndex*)value_arr.v[i].str; - - // name -> hash - U64 hash = pdb_hash_v1(type_name); - hash %= ts->bucket_cap; - - // search for type bucket - PDB_TypeBucket *curr, *prev; - for (curr = ts->buckets[hash], prev = 0; curr != 0; prev = curr, curr = curr->next) { - if (curr->type_index == type_index) { - break; - } - } - - // move type to the head - if (prev && curr) { - prev->next = curr->next; - curr->next = ts->buckets[hash]; - ts->buckets[hash] = curr; - } - - Assert(curr); - } - - exit:; - scratch_end(scratch); - ProfEnd(); - return ts; -} - -internal PDB_TypeServer * -pdb_type_server_open(MSF_Context *msf, MSF_StreamNumber sn, PDB_StringTable *strtab) -{ - ProfBeginFunction(); - - PDB_TypeServer *ts = NULL; - - PDB_TpiVersion version = 0; - msf_stream_seek(msf, sn, 0); - msf_stream_read_struct(msf, sn, &version); - - switch (version) { - case PDB_TpiVersion_IMPV80: { - ts = pdb_type_server_open_v80(msf, sn, strtab); - } break; - case PDB_TpiVersion_INTV_VC2: - case PDB_TpiVersion_IMPV40: - case PDB_TpiVersion_IMPV50_INTERIM: - case PDB_TpiVersion_IMPV70: { - NotImplemented; - } break; - default: Assert(!"unknown TPI version"); break; - } - - ProfEnd(); - return ts; -} - internal THREAD_POOL_TASK_FUNC(pdb_write_type_to_bucket_map_32_task) { @@ -1181,8 +904,6 @@ pdb_type_hash_stream_build(TP_Context *tp, ProfEnd(); } - // write bucket adjust info - String8 hash_adj_data = pdb_data_from_hash_adj_hash_table(scratch.arena, &ts->hash_adj, strtab); ProfBegin("MSF Write"); @@ -1202,10 +923,14 @@ pdb_type_hash_stream_build(TP_Context *tp, hint_offs.size = sizeof(hint_arr[0]) * hint_count; msf_stream_write(msf, ts->hash_sn, &hint_arr[0], hint_offs.size); - PDB_OffsetSize hash_adj; - hash_adj.off = msf_stream_get_pos(msf, ts->hash_sn); - hash_adj.size = hash_adj_data.size; - msf_stream_write_string(msf, ts->hash_sn, hash_adj_data); + PDB_OffsetSize hash_adj = {0}; + if (ts->hash_adj.count) { + // write bucket adjust info + String8 hash_adj_data = pdb_data_from_hash_adj_hash_table(scratch.arena, &ts->hash_adj, strtab); + hash_adj.off = msf_stream_get_pos(msf, ts->hash_sn); + hash_adj.size = hash_adj_data.size; + msf_stream_write_string(msf, ts->hash_sn, hash_adj_data); + } ProfEnd(); @@ -1336,7 +1061,7 @@ pdb_type_server_make_leaf(PDB_TypeServer *ts, CV_LeafKind kind, String8 data) { ProfBeginFunction(); - String8 leaf = cv_serialize_raw_leaf(ts->arena, kind, data, PDB_LEAF_ALIGN); + String8 leaf = cv_make_leaf(ts->arena, kind, data, PDB_LEAF_ALIGN); String8Node *node = str8_list_push(ts->arena, &ts->leaf_list, leaf); ProfEnd(); @@ -1427,7 +1152,7 @@ pdb_type_server_push(PDB_TypeServer *ts, String8 raw_leaf) ProfBeginFunction(); CV_Leaf leaf; - cv_deserial_leaf(raw_leaf, 0, 1, &leaf); + cv_read_leaf(raw_leaf, 0, 1, &leaf); if (cv_is_udt(leaf.kind)) { CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); @@ -1445,13 +1170,14 @@ internal THREAD_POOL_TASK_FUNC(pdb_count_udt_task) { PDB_PushLeafTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - for (U64 leaf_idx = range.min; leaf_idx < range.max; ++leaf_idx) { - CV_Leaf leaf = cv_debug_t_get_leaf(task->debug_t, leaf_idx); + for EachInRange(leaf_idx, task->ranges[task_id]) { + CV_Leaf leaf; + cv_read_leaf(str8(task->leaf_arr[leaf_idx], max_U64), 0, 1, &leaf); + if (cv_is_udt(leaf.kind)) { CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); if (~udt_info.props & CV_TypeProp_FwdRef) { - ++task->udt_counts[task_id]; + task->udt_counts[task_id] += 1; } } } @@ -1462,27 +1188,27 @@ THREAD_POOL_TASK_FUNC(pdb_push_udt_leaf_task) { PDB_PushLeafTask *task = raw_task; PDB_TypeServer *type_server = task->type_server; - Rng1U64 range = task->ranges[task_id]; U64 bucket_cursor = task->udt_offsets[task_id]; - CV_DebugT debug_t = task->debug_t; PDB_TypeBucket *new_buckets = task->udt_buckets; U64 type_ht_cap = type_server->bucket_cap; PDB_TypeBucket **type_ht_buckets = type_server->buckets; U64 base_type_index = type_server->ti_lo + type_server->leaf_list.node_count; - for (U64 leaf_idx = range.min; leaf_idx < range.max; ++leaf_idx) { - CV_Leaf leaf = cv_debug_t_get_leaf(debug_t, leaf_idx); + for EachInRange(leaf_idx, task->ranges[task_id]) { + CV_Leaf leaf; + cv_read_leaf(str8(task->leaf_arr[leaf_idx], max_U64), 0, 1, &leaf); + if (cv_is_udt(leaf.kind)) { CV_UDTInfo udt_info = cv_get_udt_info(leaf.kind, leaf.data); if (~udt_info.props & CV_TypeProp_FwdRef) { // hash udt and compute bucket index - U32 hash = pdb_hash_udt(udt_info, leaf.data); + U32 hash = pdb_hash_udt(udt_info, leaf.data); U32 bucket_idx = hash % type_ht_cap; // fill out & insert bucket PDB_TypeBucket *bucket = &new_buckets[bucket_cursor++]; - bucket->raw_leaf = cv_debug_t_get_raw_leaf(debug_t, leaf_idx); + bucket->raw_leaf = leaf.data; bucket->type_index = base_type_index + leaf_idx; bucket->next = ins_atomic_ptr_eval_assign(&type_ht_buckets[bucket_idx], bucket); } @@ -1490,16 +1216,36 @@ THREAD_POOL_TASK_FUNC(pdb_push_udt_leaf_task) } } +typedef struct +{ + Rng1U64 *ranges; + U8 **leaf_arr; + String8List *lists; + String8Node *nodes; +} PDB_String8ListFromLeafArray; + +internal +THREAD_POOL_TASK_FUNC(pdb_str8_list_from_leaf_array_task) +{ + PDB_String8ListFromLeafArray *task = raw_task; + for EachInRange(leaf_idx, task->ranges[task_id]) { + String8Node *node = &task->nodes[leaf_idx]; + node->string = cv_raw_leaf_from_ptr(task->leaf_arr[leaf_idx]); + str8_list_push_node(&task->lists[task_id], node); + } +} + internal void -pdb_type_server_push_parallel(TP_Context *tp, PDB_TypeServer *type_server, CV_DebugT debug_t) +pdb_type_server_push_parallel(TP_Context *tp, PDB_TypeServer *type_server, U64 leaf_count, U8 **leaf_arr) { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); PDB_PushLeafTask task = {0}; - task.debug_t = debug_t; + task.leaf_count = leaf_count; + task.leaf_arr = leaf_arr; task.type_server = type_server; - task.ranges = tp_divide_work(scratch.arena, debug_t.count, tp->worker_count); + task.ranges = tp_divide_work(scratch.arena, leaf_count, tp->worker_count); ProfBegin("Count UDT"); task.udt_counts = push_array(scratch.arena, U64, tp->worker_count); @@ -1514,8 +1260,18 @@ pdb_type_server_push_parallel(TP_Context *tp, PDB_TypeServer *type_server, CV_De ProfEnd(); ProfBegin("Append New Leaves"); - String8List new_leaves = cv_str8_list_from_debug_t_parallel(tp, type_server->arena, debug_t); - str8_list_concat_in_place(&type_server->leaf_list, &new_leaves); + { + PDB_String8ListFromLeafArray task = {0}; + task.leaf_arr = leaf_arr; + task.ranges = tp_divide_work(scratch.arena, leaf_count, tp->worker_count); + task.lists = push_array(scratch.arena, String8List, tp->worker_count); + task.nodes = push_array_no_zero(type_server->arena, String8Node, leaf_count); + tp_for_parallel(tp, 0, tp->worker_count, pdb_str8_list_from_leaf_array_task, &task); + + // concat output lists + String8List list = {0}; + for EachIndex(task_id, tp->worker_count) { str8_list_concat_in_place(&type_server->leaf_list, &task.lists[task_id]); } + } ProfEnd(); scratch_end(scratch); @@ -1665,7 +1421,7 @@ pdb_info_alloc(U32 age, COFF_TimeStamp time_stamp, Guid guid) info->age = age; info->guid = guid; pdb_strtab_alloc(&info->strtab, 0x3fff); - pdb_hash_table_alloc(&info->named_stream_ht, 4); + pdb_hash_table_alloc(&info->named_stream_ht, 1); pdb_hash_table_alloc(&info->src_header_block_ht, 8); ProfEnd(); return info; @@ -1706,86 +1462,6 @@ pdb_info_parse_from_data(String8 data, PDB_InfoParse *parse_out) } } -internal PDB_InfoContext * -pdb_info_open(MSF_Context *msf, MSF_StreamNumber sn) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - U64 info_size = msf_stream_get_size(msf, sn); - String8 info_data = msf_stream_read_block(scratch.arena, msf, sn, info_size); - - PDB_InfoParse parse = {0}; - pdb_info_parse_from_data(info_data, &parse); - - PDB_FeatureFlags flags = 0; - PDB_HashTable named_stream_ht = {0}; - if (parse.version == PDB_InfoVersion_VC70) { - // open named stream hash table - U64 cursor = 0; - U64 named_stream_ht_size = 0; - PDB_HashTableParseError named_stream_ht_error = pdb_named_stream_ht_from_data(&named_stream_ht, parse.extra_info, &named_stream_ht_size); - if (named_stream_ht_error == PDB_HashTableParseError_OK) { - cursor += named_stream_ht_size; - - // read PDB features - while (cursor < info_data.size) { - PDB_FeatureSig sig = 0; - cursor += str8_deserial_read_struct(parse.extra_info, cursor, &sig); - switch (sig) { - case PDB_FeatureSig_NULL: break; - case PDB_FeatureSig_VC140: { - flags |= PDB_FeatureFlag_HAS_ID_STREAM; - } break; - case PDB_FeatureSig_NO_TYPE_MERGE: { - flags |= PDB_FeatureFlag_NO_TYPE_MERGE; - } break; - case PDB_FeatureSig_MINIMAL_DEBUG_INFO: { - flags |= PDB_FeatureFlag_MINIMAL_DBG_INFO; - } break; - default: Assert(!"unknown feature sig"); break; - } - } - } else { - Assert(!"unable to open named stream hash table"); - } - } - - // open string table - PDB_StringTable strtab = {0}; - MSF_StreamNumber strtab_sn = pdb_find_named_stream(&named_stream_ht, PDB_NAMES_STREAM_NAME); - if (strtab_sn != MSF_INVALID_STREAM_NUMBER) { - PDB_StringTableOpenError err = pdb_strtab_open(&strtab, msf, strtab_sn); - Assert(err == PDB_StringTableOpenError_OK); - } - - // open injected source files - PDB_HashTable src_header_block_ht = {0}; - MSF_StreamNumber src_header_block_sn = pdb_find_named_stream(&named_stream_ht, PDB_SRC_HEADER_BLOCK_STREAM_NAME); - if (src_header_block_sn != MSF_INVALID_STREAM_NUMBER) { - U64 src_header_block_stream_size = msf_stream_get_size(msf, src_header_block_sn); - String8 src_header_block_data = msf_stream_read_block(scratch.arena, msf, src_header_block_sn, src_header_block_stream_size); - PDB_HashTableParseError err = pdb_src_header_block_ht_from_data(&src_header_block_ht, src_header_block_data, &strtab, 0); - Assert(err == PDB_HashTableParseError_OK); - } - - // fill out info - Arena *arena = arena_alloc(); - PDB_InfoContext *info = push_array_no_zero(arena, PDB_InfoContext, 1); - info->arena = arena; - info->time_stamp = parse.time_stamp; - info->age = parse.age; - info->guid = parse.guid; - info->flags = flags; - info->named_stream_ht = named_stream_ht; - info->src_header_block_ht = src_header_block_ht; - info->strtab = strtab; - - scratch_end(scratch); - ProfEnd(); - return info; -} - internal void pdb_info_build_src_header_block(PDB_InfoContext *info, MSF_Context *msf) { @@ -1851,9 +1527,13 @@ pdb_info_build(PDB_InfoContext *info, MSF_Context *msf, MSF_StreamNumber sn) Temp scratch = scratch_begin(0,0); // finalize named streams - pdb_info_build_src_header_block(info, msf); + if (info->src_header_block_ht.count) { + pdb_info_build_src_header_block(info, msf); + } pdb_info_build_link_info(info, msf); - pdb_info_build_names(info, msf); + if (info->strtab.bucket_count > 1) { + pdb_info_build_names(info, msf); + } // serialize named streams hash table String8 named_stream_ht_data = pdb_data_from_named_stream_ht(scratch.arena, &info->named_stream_ht); @@ -1870,6 +1550,7 @@ pdb_info_build(PDB_InfoContext *info, MSF_Context *msf, MSF_StreamNumber sn) str8_serial_begin(scratch.arena, &info_srl); str8_serial_push_struct(scratch.arena, &info_srl, &header); str8_serial_push_string(scratch.arena, &info_srl, named_stream_ht_data); + str8_serial_push_u32(scratch.arena, &info_srl, 0); if (info->flags & PDB_FeatureFlag_HAS_ID_STREAM) { str8_serial_push_u32(scratch.arena, &info_srl, PDB_FeatureSig_VC140); } @@ -1902,12 +1583,9 @@ internal MSF_StreamNumber pdb_push_named_stream(PDB_HashTable *named_stream_ht, MSF_Context *msf, String8 name) { ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); MSF_StreamNumber sn = msf_stream_alloc(msf); - String8 name_cstr = push_cstr(scratch.arena, name); U32 sn32 = (U32)sn; - pdb_hash_table_set(named_stream_ht, name_cstr, str8_struct(&sn32)); - scratch_end(scratch); + pdb_hash_table_set(named_stream_ht, name, str8_struct(&sn32)); ProfEnd(); return sn; } @@ -1935,7 +1613,7 @@ pdb_add_src(PDB_InfoContext *info, MSF_Context *msf, String8 file_path, String8 if (comp == PDB_SrcComp_NULL) { // process path so it passes VS validity checks String8 virt_path = file_path; - String8 work_dir = os_get_current_path(scratch.arena); + String8 work_dir = get_current_path(scratch.arena); virt_path = path_absolute_dst_from_relative_dst_src(scratch.arena, virt_path, work_dir); virt_path = lower_from_str8(scratch.arena, virt_path); virt_path = path_convert_slashes(scratch.arena, virt_path, PathStyle_UnixAbsolute); @@ -2020,119 +1698,11 @@ gsi_alloc(void) return gsi; } -internal PDB_GsiContext * -gsi_open(MSF_Context *msf, MSF_StreamNumber sn, String8 symbol_data) -{ - ProfBeginFunction(); - - PDB_GsiHeader header = {0}; - msf_stream_read_struct(msf, sn, &header); - - Arena *arena = arena_alloc(); - PDB_GsiContext *gsi = push_array(arena, PDB_GsiContext, 1); - gsi->arena = arena; - gsi->word_size = PDB_GSI_V70_WORD_SIZE; - gsi->symbol_align = PDB_GSI_V70_SYMBOL_ALIGN; - gsi->bucket_count = PDB_GSI_V70_BUCKET_COUNT; - gsi->bucket_arr = push_array(gsi->arena, CV_SymbolList, gsi->bucket_count); - - if (header.signature == PDB_GsiSignature_Basic) { - if (header.version == PDB_GsiVersion_V70) { - Temp scratch = scratch_begin(0, 0); - - Assert(header.bucket_data_size >= PDB_GSI_V70_BITMAP_SIZE); // TODO: error handle - - U64 hash_record_count = header.hash_record_arr_size / sizeof(PDB_GsiHashRecord); - PDB_GsiHashRecord *hash_record_array = push_array(scratch.arena, PDB_GsiHashRecord, hash_record_count); - msf_stream_read_array(msf, sn, &hash_record_array[0], hash_record_count); - - U32 *bitmap = push_array(scratch.arena, U32, PDB_GSI_V70_BITMAP_COUNT); - msf_stream_read_array(msf, sn, &bitmap[0], PDB_GSI_V70_BITMAP_COUNT); - - U32 compressed_offset_count = (header.bucket_data_size - PDB_GSI_V70_BITMAP_SIZE) / sizeof(U32); - U32 *compressed_offset_array = push_array(scratch.arena, U32, compressed_offset_count); - msf_stream_read_array(msf, sn, &compressed_offset_array[0], compressed_offset_count); - - U32 *compressed_offset_ptr = &compressed_offset_array[0]; - U32 *compressed_offset_opl = &compressed_offset_array[0] + compressed_offset_count; - - U32 compressed_offset_max = (header.bucket_data_size / sizeof(PDB_GsiHashRecord)) * sizeof(PDB_GsiHashRecordOffsetCalc); - - for (U32 imask = 0; imask < PDB_GSI_V70_BITMAP_COUNT; imask += 1) { - for (U32 ibit = 0; ibit < PDB_GSI_V70_WORD_SIZE; ibit += 1) { - B32 is_bucket_compressed = !!(bitmap[imask] & (1 << ibit)); - if (is_bucket_compressed) { - Assert(compressed_offset_ptr < compressed_offset_opl); - - U32 next_compressed_offset = compressed_offset_max; - if (compressed_offset_ptr + 1 < compressed_offset_opl) { - next_compressed_offset = compressed_offset_ptr[1]; - } - U32 compressed_count = (next_compressed_offset - *compressed_offset_ptr) / sizeof(PDB_GsiHashRecordOffsetCalc); - - U64 hash_record_index = *compressed_offset_ptr / sizeof(PDB_GsiHashRecordOffsetCalc); - Assert(hash_record_index < hash_record_count); - - for (PDB_GsiHashRecord *hash_record_ptr = &hash_record_array[hash_record_index], *hash_record_opl = hash_record_ptr + compressed_count; - hash_record_ptr < hash_record_opl; - hash_record_ptr += 1) { - Assert(hash_record_ptr->symbol_off > 0); - Assert(hash_record_ptr->cref > 0); - - U32 symbol_off = hash_record_ptr->symbol_off -1; - U8 *symbol_ptr = symbol_data.str + symbol_off; - U16 *size_ptr = (U16*)symbol_ptr; - CV_SymKind *kind_ptr = (CV_SymKind*)(size_ptr + 1); - U8 *data_ptr = (U8*)(kind_ptr + 1); - - if (*size_ptr >= sizeof(*kind_ptr)) { - CV_Symbol symbol; - symbol.kind = *kind_ptr; - symbol.data = str8(data_ptr, *size_ptr - sizeof(*kind_ptr)); - gsi_push(gsi, &symbol); - } else { - Assert(!"invalid global codeview symbol"); - } - } - - compressed_offset_ptr += 1; - } - } - } - - scratch_end(scratch); - } else { - Assert(!"unknown GSI version"); - } - } - - // check if buckets are sorted -#if 0 - { - for (U64 i = 0; i < gsi->bucket_count; ++i) { - CV_SymbolList *bucket = &gsi->bucket_arr[i]; - for (CV_SymbolNode *prev = bucket->first, *curr = bucket->first ? bucket->first->next : NULL; - curr != NULL; - prev = curr, curr = curr->next) { - String8 a = pdb_get_symbol_name(prev->symbol.kind, prev->symbol.data); - String8 b = pdb_get_symbol_name(curr->symbol.kind, curr->symbol.data); - int compar = string_compar(a, b, false); - Assert(compar >= 0); - } - } - } -#endif - - ProfEnd(); - return gsi; -} - internal void -gsi_release(PDB_GsiContext **gsi_ptr) +gsi_release(PDB_GsiContext *gsi) { ProfBeginFunction(); - arena_release((*gsi_ptr)->arena); - *gsi_ptr = NULL; + arena_release(gsi->arena); ProfEnd(); } @@ -2213,7 +1783,7 @@ psi_addr_map_compar_is_before(void *raw_a, void *raw_b) } else if (a->isect_off.off != b->isect_off.off) { is_before = a->isect_off.off < b->isect_off.off; } else { - is_before = str8_compar_case_sensitive(&a->name, &b->name); + is_before = str8_compar_case_sensitive(&a->name, &b->name) < 0; } return is_before; @@ -2242,17 +1812,87 @@ THREAD_POOL_TASK_FUNC(gsi_size_buckets_task) PDB_GsiSerializeSymbolsTask *task = raw_task; CV_SymbolList *bucket_list = &task->bucket_arr[bucket_idx]; for (CV_SymbolNode *node = bucket_list->first; node != 0; node = node->next) { - task->bucket_size_arr[bucket_idx] += cv_compute_symbol_record_size(&node->data, task->symbol_align); + task->bucket_size_arr[bucket_idx] += cv_size_from_symbol(&node->data, task->symbol_align); } } +force_inline int +gsi_symbol_is_before(void *raw_a, void *raw_b) +{ + CV_Symbol *a = *(CV_Symbol **)raw_a; + CV_Symbol *b = *(CV_Symbol **)raw_b; + + String8 a_name = cv_name_from_symbol(a->kind, a->data); + String8 b_name = cv_name_from_symbol(b->kind, b->data); + + int is_before; + if (a_name.size != b_name.size) { + is_before = a_name.size < b_name.size; + } else { + int cmp = str8_compar_ignore_case(&a_name, &b_name); + if (cmp == 0) { + cmp = u64_compar(&a->offset, &b->offset); + if (cmp == 0) { + cmp = a->kind < b->kind ? -1 : a->kind > b->kind ? +1 : 0; + if (cmp == 0) { + cmp = str8_compar(a->data, b->data, 0); + } + } + } + is_before = cmp < 0; + } + + return is_before; +} + +force_inline int +gsi_pub_symbol_is_before(void *raw_a, void *raw_b) +{ + CV_Symbol *a = *(CV_Symbol **)raw_a; + CV_Symbol *b = *(CV_Symbol **)raw_b; + + String8 a_name = cv_name_from_symbol(a->kind, a->data); + String8 b_name = cv_name_from_symbol(b->kind, b->data); + + int is_before; + if (a_name.size != b_name.size) { + is_before = a_name.size < b_name.size; + } else { + int cmp = str8_compar_ignore_case(&a_name, &b_name); + if (cmp == 0) { + CV_SymPub32 *a_sym = (CV_SymPub32 *)a->data.str; + CV_SymPub32 *b_sym = (CV_SymPub32 *)b->data.str; + cmp = u16_compar(&a_sym->sec, &b_sym->sec); + if (cmp == 0) { + cmp = u32_compar(&a_sym->off, &b_sym->off); + if (cmp == 0) { + cmp = str8_compar(a->data, b->data, 0); + } + } + } + is_before = cmp < 0; + } + + return is_before; +} + internal THREAD_POOL_TASK_FUNC(gsi_serialize_pub32) { + Temp scratch = scratch_begin(&arena, 1); + U64 bucket_idx = task_id; PDB_GsiSerializeSymbolsTask *task = raw_task; - CV_SymbolList bucket_list = task->bucket_arr[bucket_idx]; + CV_SymbolList bucket = task->bucket_arr[bucket_idx]; + + CV_Symbol **symbol_arr = push_array(scratch.arena, CV_Symbol *, bucket.count); + U64 symbol_arr_count = 0; + for EachNode(n, CV_SymbolNode, bucket.first) { symbol_arr[symbol_arr_count++] = &n->data; } + + // sort symbols within bucket + radsort(symbol_arr, bucket.count, gsi_pub_symbol_is_before); + PDB_GsiSortRecord *sort_record_arr = task->sort_record_arr_arr[bucket_idx]; U64 buffer_size = task->bucket_size_arr[bucket_idx]; U64 buffer_base = task->bucket_off_arr[bucket_idx]; @@ -2260,74 +1900,77 @@ THREAD_POOL_TASK_FUNC(gsi_serialize_pub32) U64 sort_idx = 0; U64 buffer_cursor = 0; + for EachIndex(i, bucket.count) { + Assert(symbol_arr[i]->kind == CV_SymKind_PUB32); - for (CV_SymbolNode *node = bucket_list.first; node != 0; node = node->next) { - CV_Symbol *symbol = &node->data; - Assert(symbol->kind == CV_SymKind_PUB32); - - CV_SymPub32 *pub32 = (CV_SymPub32 *)symbol->data.str; - U8 *str_ptr = (U8 *)(pub32 + 1); - U64 str_size = symbol->data.size - sizeof(*pub32); - String8 name = str8(str_ptr, str_size); + CV_SymPub32 *pub32 = (CV_SymPub32 *)symbol_arr[i]->data.str; + U8 *str_ptr = (U8 *)(pub32 + 1); + U64 str_cap = symbol_arr[i]->data.size - sizeof(*pub32); + String8 name = str8_cstring_capped(str_ptr, str_ptr + str_cap); // init sort record PDB_GsiSortRecord *sr = &sort_record_arr[sort_idx]; sr->isect_off = isect_off(pub32->sec, pub32->off); sr->name = name; - sr->offset = buffer_cursor; + sr->offset = task->symbol_data_base + buffer_base + buffer_cursor; // serialize symbol - U64 serial_size = cv_serialize_symbol_to_buffer(buffer, buffer_cursor, buffer_size, symbol, task->symbol_align); + U64 serial_size = cv_write_symbol(buffer, buffer_cursor, buffer_size, symbol_arr[i], task->symbol_align); // advance sort_idx += 1; buffer_cursor += serial_size; } - - Assert(sort_idx == bucket_list.count); + Assert(sort_idx == bucket.count); Assert(buffer_cursor == buffer_size); - // sort symbols by name within bucket - gsi_record_sort_by_name(sort_record_arr, bucket_list.count); + scratch_end(scratch); } internal THREAD_POOL_TASK_FUNC(gsi_serialize_symbols_task) { - U64 bucket_idx = task_id; - PDB_GsiSerializeSymbolsTask *task = raw_task; + Temp scratch = scratch_begin(&arena, 1); - CV_SymbolList bucket_list = task->bucket_arr[bucket_idx]; - PDB_GsiSortRecord *sort_record_arr = task->sort_record_arr_arr[bucket_idx]; - U64 buffer_size = task->bucket_size_arr[bucket_idx]; - U64 buffer_base = task->bucket_off_arr[bucket_idx]; - U8 *buffer = task->buffer + buffer_base; + U64 bucket_idx = task_id; + PDB_GsiSerializeSymbolsTask *task = raw_task; + CV_SymbolList bucket = task->bucket_arr[bucket_idx]; - U64 sort_idx = 0; - U64 buffer_cursor = 0; - - for (CV_SymbolNode *node = bucket_list.first; node != 0; node = node->next) { - CV_Symbol *symbol = &node->data; - - // init sort record - PDB_GsiSortRecord *sr = &sort_record_arr[sort_idx]; - //sr->isect_off = isect_off(0,0); - sr->name = cv_name_from_symbol(symbol->kind, symbol->data); - sr->offset = buffer_cursor; - - // serialize symbol - U64 serial_size = cv_serialize_symbol_to_buffer(buffer, buffer_cursor, buffer_size, symbol, task->symbol_align); - - // advance - sort_idx += 1; - buffer_cursor += serial_size; + CV_Symbol **symbol_arr = push_array(scratch.arena, CV_Symbol *, bucket.count); + { + U64 i = 0; + for EachNode(n, CV_SymbolNode, bucket.first) { symbol_arr[i++] = &n->data; } } - Assert(sort_idx == bucket_list.count); - Assert(buffer_cursor == buffer_size); + // sort symbols within bucket + radsort(symbol_arr, bucket.count, gsi_symbol_is_before); - // sort symbols by name within bucket - gsi_record_sort_by_name(sort_record_arr, bucket_list.count); + // symbol -> GSI sort record + { + PDB_GsiSortRecord *sort_record_arr = task->sort_record_arr_arr[bucket_idx]; + U64 buffer_size = task->bucket_size_arr[bucket_idx]; + U64 buffer_base = task->bucket_off_arr[bucket_idx]; + U8 *buffer = task->buffer + buffer_base; + + U64 sort_idx = 0; + U64 buffer_cursor = 0; + for EachIndex(i, bucket.count) { + // init sort record + PDB_GsiSortRecord *sr = &sort_record_arr[sort_idx]; + sr->name = cv_name_from_symbol(symbol_arr[i]->kind, symbol_arr[i]->data); + sr->offset = task->symbol_data_base + buffer_base + buffer_cursor; + sort_idx += 1; + + // serialize symbol + U64 serial_size = cv_write_symbol(buffer, buffer_cursor, buffer_size, symbol_arr[i], task->symbol_align); + buffer_cursor += serial_size; + } + + Assert(sort_idx == bucket.count); + Assert(buffer_cursor == buffer_size); + } + + scratch_end(scratch); } internal PDB_GsiBuildResult @@ -2338,10 +1981,11 @@ gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_ ProfBegin("Serialize & Sort Symbols"); - PDB_GsiSerializeSymbolsTask serial_task; - serial_task.symbol_align = gsi->symbol_align; - serial_task.bucket_arr = gsi->bucket_arr; - serial_task.bucket_size_arr = push_array(scratch.arena, U64, gsi->bucket_count); + PDB_GsiSerializeSymbolsTask serial_task = {0}; + serial_task.symbol_data_base = symbol_data_base; + serial_task.symbol_align = gsi->symbol_align; + serial_task.bucket_arr = gsi->bucket_arr; + serial_task.bucket_size_arr = push_array(scratch.arena, U64, gsi->bucket_count); // estimate each bucket size tp_for_parallel(tp, 0, gsi->bucket_count, gsi_size_buckets_task, &serial_task); @@ -2350,7 +1994,7 @@ gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_ U64 buffer_size = sum_array_u64(gsi->bucket_count, serial_task.bucket_size_arr); serial_task.buffer = push_array_no_zero(arena, U8, buffer_size); serial_task.bucket_off_arr = push_array_copy_u64(scratch.arena, serial_task.bucket_size_arr, gsi->bucket_count); - counts_to_offsets_array_u64(gsi->bucket_count, serial_task.bucket_off_arr); + u64_array_counts_to_offsets(gsi->bucket_count, serial_task.bucket_off_arr); // prepare GSI records serial_task.sort_record_arr_arr = push_array_no_zero(scratch.arena, PDB_GsiSortRecord *, gsi->bucket_count); @@ -2373,18 +2017,14 @@ gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_ U32 *compressed_offset_arr = push_array_no_zero(arena, U32, gsi->bucket_count); PDB_GsiHashRecord *hash_record_arr = push_array_no_zero(arena, PDB_GsiHashRecord, hash_record_count); - // offsets for symbol stream are shifted by one to tell apart from null and zero (see GSI1::fixSymRecs) - U64 offset_cursor = (1 + symbol_data_base); - U64 hash_idx = 0; - ProfBegin("Write Bitmap & Record Offsets"); - for (U64 bucket_idx = 0; bucket_idx < gsi->bucket_count; bucket_idx += 1) { + for (U64 bucket_idx = 0, hash_idx = 0; bucket_idx < gsi->bucket_count; bucket_idx += 1) { // set bit for each occupied bucket CV_SymbolList bucket_list = gsi->bucket_arr[bucket_idx]; if (bucket_list.count) { U64 word_idx = bucket_idx / gsi->word_size; Assert(word_idx < bitmap_count); - bitmap[word_idx] |= 1 << (bucket_idx % gsi->word_size); + bitmap[word_idx] |= 1u << (bucket_idx % gsi->word_size); compressed_offset_arr[compressed_offset_count] = hash_idx * sizeof(PDB_GsiHashRecordOffsetCalc); // store in-memory offset for first bucket compressed_offset_count += 1; } @@ -2393,12 +2033,9 @@ gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_ PDB_GsiSortRecord *sort_record_arr = serial_task.sort_record_arr_arr[bucket_idx]; for (U64 sr_idx = 0; sr_idx < gsi->bucket_arr[bucket_idx].count; sr_idx += 1, hash_idx += 1) { PDB_GsiHashRecord *hr = &hash_record_arr[hash_idx]; - hr->symbol_off = offset_cursor + sort_record_arr[sr_idx].offset; + hr->symbol_off = sort_record_arr[sr_idx].offset + 1; // off-by-one because 0 is reserved for null hr->cref = 1; } - - // advance offset cursor - offset_cursor += serial_task.bucket_size_arr[bucket_idx]; } ProfEnd(); @@ -2560,26 +2197,6 @@ psi_alloc(void) return psi; } -internal PDB_PsiContext * -psi_open(MSF_Context *msf, MSF_StreamNumber sn, String8 symbol_data) -{ - ProfBeginFunction(); - - Arena *arena = arena_alloc(); - PDB_PsiContext *psi = push_array(arena, PDB_PsiContext, 1); - psi->arena = arena; - - // TODO: read out address table - - PDB_PsiHeader header = {0}; - msf_stream_read_struct(msf, sn, &header); - - psi->gsi = gsi_open(msf, sn, symbol_data); - - ProfEnd(); - return psi; -} - internal void psi_build(TP_Context *tp, PDB_PsiContext *psi, MSF_Context *msf, MSF_StreamNumber sn, MSF_StreamNumber symbols_sn) { @@ -2627,12 +2244,11 @@ psi_build(TP_Context *tp, PDB_PsiContext *psi, MSF_Context *msf, MSF_StreamNumbe } internal void -psi_release(PDB_PsiContext **psi_ptr) +psi_release(PDB_PsiContext *psi) { ProfBeginFunction(); - gsi_release(&(*psi_ptr)->gsi); - arena_release((*psi_ptr)->arena); - *psi_ptr = NULL; + gsi_release(psi->gsi); + arena_release(psi->arena); ProfEnd(); } @@ -2837,102 +2453,6 @@ dbi_open_sec_contrib(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn, PDB_Db return sec_contrib; } -internal PDB_StringTable -dbi_open_ec_names(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn, PDB_DbiHeader *dbi_header) -{ - ProfBeginFunction(); - PDB_StringTable ec_names = {0}; - if (dbi_header->ec_info_size >= sizeof(PDB_StringTableHeader)) { - MSF_UInt ec_names_pos = sizeof(PDB_DbiHeader) - + dbi_header->module_info_size - + dbi_header->sec_con_size - + dbi_header->sec_map_size - + dbi_header->file_info_size - + dbi_header->tsm_size; - msf_stream_seek(msf, sn, ec_names_pos); - pdb_strtab_open(&ec_names, msf, sn); - } - ProfEnd(); - return ec_names; -} - -internal void -dbi_open_dbg_streams(MSF_StreamNumber *dbg_streams, MSF_Context *msf, MSF_StreamNumber sn, PDB_DbiHeader *dbi_header) -{ - ProfBeginFunction(); - Assert(dbi_header->dbg_header_size % sizeof(dbg_streams[0]) == 0); // TODO: error handle - MSF_UInt dbg_stream_pos = sizeof(PDB_DbiHeader) - + dbi_header->module_info_size - + dbi_header->sec_con_size - + dbi_header->sec_map_size - + dbi_header->file_info_size - + dbi_header->tsm_size - + dbi_header->ec_info_size; - msf_stream_seek(msf, sn, dbg_stream_pos); - msf_stream_read(msf, sn, &dbg_streams[0], dbi_header->dbg_header_size); - ProfEnd(); -} - -internal PDB_DbiSectionList -dbi_open_section_headers(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn) -{ - ProfBeginFunction(); - PDB_DbiSectionList sec_list = {0}; - U64 sec_count = msf_stream_get_size(msf, sn) / sizeof(PDB_DbiSectionNode); - PDB_DbiSectionNode *sec_nodes = push_array(arena, PDB_DbiSectionNode, sec_count); - for (U64 isec = 0; isec < sec_count; isec += 1) { - PDB_DbiSectionNode *sec = &sec_nodes[isec]; - msf_stream_read_struct(msf, sn, &sec->data); - SLLQueuePush(sec_list.first, sec_list.last, sec); - sec_list.count += 1; - } - ProfEnd(); - return sec_list; -} - -internal PDB_DbiContext * -dbi_open(MSF_Context *msf, MSF_StreamNumber sn) -{ - ProfBeginFunction(); - - PDB_DbiHeader header = {0}; - msf_stream_read_struct(msf, sn, &header); - - Arena *arena = arena_alloc(); - PDB_DbiContext *dbi = push_array(arena, PDB_DbiContext, 1); - dbi->arena = arena; - dbi->age = header.age; - dbi->machine = header.machine; - dbi->globals_sn = header.gsi_sn; - dbi->publics_sn = header.psi_sn; - dbi->symbols_sn = header.sym_sn; - - if (header.sig == PDB_DbiHeaderSignature_V1) { - switch (header.version) { - case PDB_DbiVersion_41: - case PDB_DbiVersion_50: - case PDB_DbiVersion_60: - case PDB_DbiVersion_110: { - Assert(!"TODO: support for older DBI versions"); - } break; - case PDB_DbiVersion_70: { - String8List *file_info = dbi_open_file_info(dbi->arena, msf, sn, &header); - dbi->module_list = dbi_open_module_info(dbi->arena, msf, sn, &header, file_info); - dbi->sec_contrib_list = dbi_open_sec_contrib(dbi->arena, msf, sn, &header); - // TODO: section map - //dbi->sec_map = dbi_open_sec_map(dbi->arena, msf, sn, &header); - dbi->ec_names = dbi_open_ec_names(dbi->arena, msf, sn, &header); - dbi_open_dbg_streams(&dbi->dbg_streams[0], msf, sn, &header); - dbi->section_list = dbi_open_section_headers(dbi->arena, msf, dbi->dbg_streams[PDB_DbiStream_SECTION_HEADER]); - } break; - } - } - - ProfEnd(); - return dbi; - -} - internal void dbi_build_section_header_stream(PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber sn) { @@ -3061,8 +2581,6 @@ dbi_build_module_info(Arena *arena, PDB_DbiContext *dbi, MSF_Context *msf) // TODO: generate EC info header->src_file = 0; header->pdb_file = 0; - - Assert(header->sn != MSF_INVALID_STREAM_NUMBER); // push module info str8_serial_push_struct(arena, &module_info_list, header); @@ -3337,7 +2855,7 @@ dbi_build_dbg_header(Arena *arena, PDB_DbiContext *dbi, MSF_Context *msf) } internal void -dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber dbi_sn, CV_StringHashTable string_ht) +dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber dbi_sn, CV_StringHashTable string_ht, B32 is_stripped) { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); @@ -3372,6 +2890,10 @@ dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumbe header.flags = 0; header.machine = dbi->machine; header.reserved = 0; + + if (is_stripped) { + header.flags |= PDB_DbiHeaderFlag_Stripped; + } ProfBegin("MSF Write"); @@ -3399,11 +2921,10 @@ dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumbe } internal void -dbi_release(PDB_DbiContext **dbi_ptr) +dbi_release(PDB_DbiContext *dbi) { ProfBeginFunction(); - arena_release((*dbi_ptr)->arena); - *dbi_ptr = 0; + arena_release(dbi->arena); ProfEnd(); } @@ -3516,10 +3037,10 @@ dbi_push_section(PDB_DbiContext *dbi, COFF_SectionHeader *hdr) //////////////////////////////// internal MSF_Context * -pdb_alloc_msf(U64 page_size) +pdb_alloc_msf(Arena *arena, U64 page_size) { ProfBeginFunction(); - MSF_Context *msf = msf_alloc(page_size, MSF_DEFAULT_FPM); + MSF_Context *msf = msf_alloc_(arena, page_size, MSF_DEFAULT_FPM); MSF_StreamNumber null_sn = msf_stream_alloc(msf); MSF_StreamNumber info_sn = msf_stream_alloc(msf); MSF_StreamNumber tpi_sn = msf_stream_alloc(msf); @@ -3535,13 +3056,12 @@ pdb_alloc_msf(U64 page_size) } internal PDB_Context * -pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U32 age, Guid guid) +pdb_alloc_(Arena *arena, U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U32 age, Guid guid) { ProfBeginFunction(); - Arena *arena = arena_alloc(); PDB_Context *pdb = push_array(arena, PDB_Context, 1); pdb->arena = arena; - pdb->msf = pdb_alloc_msf(page_size); + pdb->msf = pdb_alloc_msf(arena, page_size); pdb->info = pdb_info_alloc(age, time_stamp, guid); pdb->dbi = dbi_alloc(machine, age); pdb->gsi = gsi_alloc(); @@ -3555,54 +3075,19 @@ pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U3 } internal PDB_Context * -pdb_open(String8 data) +pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U32 age, Guid guid) { - ProfBeginFunction(); - Temp scratch = scratch_begin(0, 0); - - PDB_Context *pdb = 0; - - MSF_Context *msf = 0; - MSF_Error msf_err = msf_open(data, &msf); - if (msf_err == MSF_Error_OK) { - Arena *arena = arena_alloc(); - pdb = push_array(arena, PDB_Context, 1); - pdb->arena = arena; - pdb->msf = msf; - pdb->info = pdb_info_open(pdb->msf, PDB_FixedStream_Info); - pdb->dbi = dbi_open(pdb->msf, PDB_FixedStream_Dbi); - if (pdb->dbi) { - MSF_UInt sym_data_size = msf_stream_get_size(pdb->msf, pdb->dbi->symbols_sn); - String8 symbol_data = msf_stream_read_block(scratch.arena, pdb->msf, pdb->dbi->symbols_sn, sym_data_size); - pdb->gsi = gsi_open(pdb->msf, pdb->dbi->globals_sn, symbol_data); - pdb->psi = psi_open(pdb->msf, pdb->dbi->publics_sn, symbol_data); - } - PDB_StringTable *strtab = &pdb->info->strtab; - pdb->type_servers[CV_TypeIndexSource_NULL] = push_array(pdb->arena, PDB_TypeServer, 1); - pdb->type_servers[CV_TypeIndexSource_TPI] = pdb_type_server_open(pdb->msf, PDB_FixedStream_Tpi, strtab); - if (pdb->info->flags & PDB_FeatureFlag_HAS_ID_STREAM) { - pdb->type_servers[CV_TypeIndexSource_IPI] = pdb_type_server_open(pdb->msf, PDB_FixedStream_Ipi, strtab); - } - } - - scratch_end(scratch); - ProfEnd(); - return pdb; + return pdb_alloc_(arena_alloc(.name = "PDB"), page_size, machine, time_stamp, age, guid); } internal void -pdb_release(PDB_Context **pdb_ptr) +pdb_release(PDB_Context *pdb) { ProfBeginFunction(); - PDB_Context *pdb = *pdb_ptr; - msf_release(&pdb->msf); - dbi_release(&pdb->dbi); - gsi_release(&pdb->gsi); - for (U64 i = 1; i < ArrayCount(pdb->type_servers); ++i) { - pdb_type_server_release(&pdb->type_servers[i]); - } + dbi_release(pdb->dbi); + gsi_release(pdb->gsi); + for (U64 i = 1; i < ArrayCount(pdb->type_servers); ++i) { pdb_type_server_release(&pdb->type_servers[i]); } arena_release(pdb->arena); - *pdb_ptr = 0; ProfEnd(); } @@ -3656,7 +3141,25 @@ pdb_get_guid(PDB_Context *pdb) } internal void -pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTable string_ht) +pdb_build_gsi_psi(TP_Context *tp, PDB_Context *pdb) +{ + PDB_DbiContext *dbi = pdb->dbi; + + if (pdb->psi->gsi->symbol_count) { + if (dbi->publics_sn == MSF_INVALID_STREAM_NUMBER) { dbi->publics_sn = msf_stream_alloc(pdb->msf); } + if (dbi->symbols_sn == MSF_INVALID_STREAM_NUMBER) { dbi->symbols_sn = msf_stream_alloc(pdb->msf); } + psi_build(tp, pdb->psi, pdb->msf, dbi->publics_sn, dbi->symbols_sn); + } + + if (pdb->gsi->symbol_count) { + if (dbi->globals_sn == MSF_INVALID_STREAM_NUMBER) { dbi->globals_sn = msf_stream_alloc(pdb->msf); } + if (dbi->symbols_sn == MSF_INVALID_STREAM_NUMBER) { dbi->symbols_sn = msf_stream_alloc(pdb->msf); } + gsi_build(tp, pdb->gsi, pdb->msf, dbi->globals_sn, dbi->symbols_sn); + } +} + +internal void +pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTable string_ht, B32 build_gsi, B32 is_stripped) { ProfBeginFunction(); @@ -3666,24 +3169,16 @@ pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTa PDB_TypeServer *tpi = pdb->type_servers[CV_TypeIndexSource_TPI]; PDB_TypeServer *ipi = pdb->type_servers[CV_TypeIndexSource_IPI]; - if (dbi->globals_sn == MSF_INVALID_STREAM_NUMBER) { - dbi->globals_sn = msf_stream_alloc(pdb->msf); - } - if (dbi->publics_sn == MSF_INVALID_STREAM_NUMBER) { - dbi->publics_sn = msf_stream_alloc(pdb->msf); - } - if (dbi->symbols_sn == MSF_INVALID_STREAM_NUMBER) { - dbi->symbols_sn = msf_stream_alloc(pdb->msf); - } - pdb_type_server_build(tp, tpi, strtab, pdb->msf, PDB_FixedStream_Tpi); if (info->flags & PDB_FeatureFlag_HAS_ID_STREAM) { pdb_type_server_build(tp, ipi, strtab, pdb->msf, PDB_FixedStream_Ipi); } - psi_build(tp, pdb->psi, pdb->msf, dbi->publics_sn, dbi->symbols_sn); - gsi_build(tp, pdb->gsi, pdb->msf, dbi->globals_sn, dbi->symbols_sn); - dbi_build(tp, pdb->dbi, pdb->msf, PDB_FixedStream_Dbi, string_ht); + if (build_gsi) { + pdb_build_gsi_psi(tp, pdb); + } + + dbi_build(tp, pdb->dbi, pdb->msf, PDB_FixedStream_Dbi, string_ht, is_stripped); pdb_info_build(pdb->info, pdb->msf, PDB_FixedStream_Info); ProfEnd(); @@ -3704,17 +3199,3 @@ pdb_string_from_src_error(PDB_SrcError error) } return str8(0,0); } - -internal String8 -pdb_string_from_open_type_server_error(PDB_OpenTypeServerError error) -{ - switch (error) { - case PDB_OpenTypeServerError_OK: return str8_lit("OK"); - case PDB_OpenTypeServerError_UNKNOWN: return str8_lit("UNKNOWN"); - case PDB_OpenTypeServerError_INVALID_BUCKET_COUNT: return str8_lit("INVALID_BUCKET_COUNT"); - case PDB_OpenTypeServerError_INVALID_TI_RANGE: return str8_lit("INVALID_TI_RANGE"); - case PDB_OpenTypeServerError_UNSUPPORTED_VERSION: return str8_lit("UNSUPPORTED_VERSION"); - } - return str8(0,0); -} - diff --git a/src/linker/pdb_ext/pdb_builder.h b/src/linker/pdb_ext/pdb_builder.h index f682e31e..b4d0909e 100644 --- a/src/linker/pdb_ext/pdb_builder.h +++ b/src/linker/pdb_ext/pdb_builder.h @@ -11,16 +11,12 @@ //////////////////////////////// // Hash table -#define PDB_HASH_TABLE_PACK_FUNC(name) void name(Arena *arena, String8List *local_data_srl, String8List *key_value_srl, String8 key, String8 value, void *ud) -typedef PDB_HASH_TABLE_PACK_FUNC(PDB_HashTablePackFunc); - -#define PDB_HASH_TABLE_UNPACK_FUNC(name) B32 name(void *ud, String8 local_data, String8 key_value_data, U64 *key_value_cursor, String8 *key_out, String8 *value_out) -typedef PDB_HASH_TABLE_UNPACK_FUNC(PDB_HashTableUnpackFunc); - typedef struct PDB_HashTableBucket { String8 key; String8 value; + U32 key_offset; + U32 insert_idx; } PDB_HashTableBucket; typedef struct PDB_HashTable @@ -33,6 +29,12 @@ typedef struct PDB_HashTable U32 count; } PDB_HashTable; +#define PDB_HASH_TABLE_PACK_FUNC(name) void name(Arena *arena, String8List *key_value_srl, PDB_HashTableBucket *bucket, String8 key, String8 value, void *ud) +typedef PDB_HASH_TABLE_PACK_FUNC(PDB_HashTablePackFunc); + +#define PDB_HASH_TABLE_UNPACK_FUNC(name) B32 name(void *ud, String8 local_data, String8 key_value_data, U64 *key_value_cursor, String8 *key_out, String8 *value_out) +typedef PDB_HASH_TABLE_UNPACK_FUNC(PDB_HashTableUnpackFunc); + typedef enum { PDB_HashTableParseError_OK, @@ -61,31 +63,12 @@ typedef struct PDB_StringTable PDB_StringTableBucket **bucket_array; } PDB_StringTable; -typedef enum -{ - PDB_StringTableOpenError_OK, - PDB_StringTableOpenError_BAD_MAGIC, - PDB_StringTableOpenError_UNKNOWN_VERSION, - PDB_StringTableOpenError_CORRUPTED, - PDB_StringTableOpenError_STRING_OFFSET_OUT_OF_BOUNDS, - PDB_StringTableOpenError_OFFSETS_EXCEED_BUCKET_COUNT -} PDB_StringTableOpenError; - //////////////////////////////// // Type Server #define PDB_TYPE_HINT_STEP 128 #define PDB_LEAF_ALIGN PDB_NATURAL_ALIGN -typedef enum -{ - PDB_OpenTypeServerError_OK, - PDB_OpenTypeServerError_UNKNOWN, - PDB_OpenTypeServerError_INVALID_BUCKET_COUNT, - PDB_OpenTypeServerError_INVALID_TI_RANGE, - PDB_OpenTypeServerError_UNSUPPORTED_VERSION, -} PDB_OpenTypeServerError; - typedef struct PDB_TypeBucket { struct PDB_TypeBucket *next; @@ -119,7 +102,8 @@ typedef struct PDB_TypeServerParse typedef struct { - CV_DebugT debug_t; + U64 leaf_count; + U8 **leaf_arr; U64 *udt_counts; U64 *udt_offsets; Rng1U64 *ranges; @@ -225,6 +209,7 @@ typedef struct PDB_GsiBuildResult typedef struct PDB_GsiSerializeSymbolsTask { + U64 symbol_data_base; U64 symbol_align; CV_SymbolList *bucket_arr; U64 *bucket_size_arr; @@ -257,7 +242,7 @@ typedef struct PDB_DbiModule U64 sym_data_size; U64 c11_data_size; U64 c13_data_size; - U64 globrefs_size; // TODO: what is this for? + U64 globrefs_size; String8 obj_path; String8 lib_path; String8List source_file_list; @@ -348,9 +333,8 @@ typedef struct // PDB internal PDB_Context * pdb_alloc(U64 page_size, COFF_MachineType machine, COFF_TimeStamp time_stamp, U32 age, Guid guid); -internal PDB_Context * pdb_open(String8 data); -internal void pdb_release(PDB_Context **pdb_ptr); -internal void pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTable string_ht); +internal void pdb_release(PDB_Context *pdb); +internal void pdb_build(TP_Context *tp, TP_Arena *pool_temp, PDB_Context *pdb, CV_StringHashTable string_ht, B32 build_gsi, B32 is_stripped); internal void pdb_set_machine(PDB_Context *pdb, COFF_MachineType machine); internal void pdb_set_guid(PDB_Context *pdb, Guid guid); internal void pdb_set_time_stamp(PDB_Context *pdb, COFF_TimeStamp time_stamp); @@ -365,7 +349,6 @@ internal Guid pdb_get_guid(PDB_Context *pdb); internal PDB_InfoContext * pdb_info_alloc(U32 age, COFF_TimeStamp time_stamp, Guid guid); internal void pdb_info_parse_from_data(String8 data, PDB_InfoParse *parse_out); -internal PDB_InfoContext * pdb_info_open(MSF_Context *msf, MSF_StreamNumber sn); internal void pdb_info_build(PDB_InfoContext *info, MSF_Context *msf, MSF_StreamNumber sn); internal void pdb_info_release(PDB_InfoContext **info_ptr); internal MSF_StreamNumber pdb_push_named_stream(PDB_HashTable *named_stream_ht, MSF_Context *msf, String8 name); @@ -376,9 +359,8 @@ internal PDB_SrcError pdb_add_src(PDB_InfoContext *info, MSF_Context *msf, // GSI internal PDB_GsiContext * gsi_alloc(void); -internal PDB_GsiContext * gsi_open(MSF_Context *msf, MSF_StreamNumber sn, String8 symbol_data); internal void gsi_build(TP_Context *tp, PDB_GsiContext *gsi, MSF_Context *msf, MSF_StreamNumber gsi_sn, MSF_StreamNumber symbols_sn); -internal void gsi_release(PDB_GsiContext **gsi_ptr); +internal void gsi_release(PDB_GsiContext *gsi); internal void gsi_write_build_result(TP_Context *tp, PDB_GsiBuildResult build, MSF_Context *msf, MSF_StreamNumber sn, MSF_StreamNumber symbols_sn); internal PDB_GsiBuildResult gsi_build_ex(TP_Context *tp, Arena *arena, PDB_GsiContext *gsi, U64 symbol_data_base, B32 export_symbol_ptr_arr, U64 msf_page_size); internal U32 gsi_hash(PDB_GsiContext *gsi, String8 input); @@ -391,9 +373,8 @@ internal CV_SymbolNode * gsi_search(PDB_GsiContext *gsi, CV_Symbol *symbol); // PSI internal PDB_PsiContext * psi_alloc(void); -internal PDB_PsiContext * psi_open(MSF_Context *msf, MSF_StreamNumber sn, String8 symbol_data); internal void psi_build(TP_Context *tp, PDB_PsiContext *psi, MSF_Context *msf, MSF_StreamNumber sn, MSF_StreamNumber symbols_sn); -internal void psi_release(PDB_PsiContext **psi_ptr); +internal void psi_release(PDB_PsiContext *psi); internal CV_SymbolNode * psi_push(PDB_PsiContext *psi, CV_Pub32Flags flags, U32 offset, U16 isect, String8 name); // TODO: @@ -404,9 +385,8 @@ internal CV_SymbolNode * psi_push(PDB_PsiContext *psi, CV_Pub32Flags flags, U32 // DBI internal PDB_DbiContext * dbi_alloc(COFF_MachineType machine, U32 age); -internal PDB_DbiContext * dbi_open(MSF_Context *msf, MSF_StreamNumber sn); -internal void dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber dbi_sn, CV_StringHashTable string_ht); -internal void dbi_release(PDB_DbiContext **dbi_ptr); +internal void dbi_build(TP_Context *tp, PDB_DbiContext *dbi, MSF_Context *msf, MSF_StreamNumber dbi_sn, CV_StringHashTable string_ht, B32 is_stripped); +internal void dbi_release(PDB_DbiContext *dbi); internal PDB_DbiModule * dbi_push_module(PDB_DbiContext *dbi, String8 obj_path, String8 lib_path); internal String8 dbi_module_read_symbol_data(Arena *arena, MSF_Context *msf, PDB_DbiModule *mod); internal String8 dbi_module_read_c11_data(Arena *arena, MSF_Context *msf, PDB_DbiModule *mod); @@ -426,15 +406,16 @@ internal void dbi_build_section_header_stream(PDB_DbiContex internal void pdb_hash_table_alloc(PDB_HashTable *ht, U32 max); internal void pdb_hash_table_release(PDB_HashTable *ht); internal PDB_HashTableParseError pdb_hash_table_from_data(PDB_HashTable *ht, String8 data, B32 has_local_data, PDB_HashTableUnpackFunc *unpack_func, void *unpack_ud, U64 *read_bytes_out); -internal String8 pdb_data_from_hash_table(Arena *arena, PDB_HashTable *ht, B32 has_local_data, PDB_HashTablePackFunc *pack_func, void *pack_ud); +internal String8 pdb_data_from_hash_table(Arena *arena, PDB_HashTable *ht, PDB_HashTablePackFunc *pack_func, void *pack_ud); internal void pdb_hash_table_set(PDB_HashTable *ht, String8 key, String8 value); internal B32 pdb_hash_table_get(PDB_HashTable *ht, String8 key, String8 *value_out); internal void pdb_hash_table_delete(PDB_HashTable *ht, String8 key); -internal B32 pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value); +internal PDB_HashTableBucket * pdb_hash_table_try_set(PDB_HashTable *ht, String8 key, String8 value); internal B32 pdb_hash_table_is_present(PDB_HashTable *ht, U32 k); internal B32 pdb_hash_table_is_deleted(PDB_HashTable *ht, U32 k); internal U32 pdb_hash_table_hash(String8 key); internal void pdb_hash_table_grow(PDB_HashTable *ht, U64 new_capacity); +internal PDB_HashTableBucket ** pdb_hash_table_get_present_buckets(Arena *arena, PDB_HashTable *ht); internal void pdb_hash_table_get_present_keys_and_values(Arena *arena, PDB_HashTable *ht, String8Array *keys_out, String8Array *values_out); //////////////////////////////// @@ -451,7 +432,6 @@ internal String8 pdb_data_from_named_stream_ht(Arena *arena, PDB_HashTable *ht); // String Table internal void pdb_strtab_alloc(PDB_StringTable *strtab, U32 max); -internal PDB_StringTableOpenError pdb_strtab_open(PDB_StringTable *strtab, MSF_Context *msf, MSF_StreamNumber sn); internal void pdb_strtab_build(PDB_StringTable *strtab, MSF_Context *msf, MSF_StreamNumber sn); internal void pdb_strtab_release(PDB_StringTable *strtab); internal PDB_StringIndex pdb_strtab_add(PDB_StringTable *strtab, String8 string); @@ -466,16 +446,12 @@ internal U32 pdb_strtab_hash(PDB_StringTable *strtab, Strin //////////////////////////////// // Type Server -internal PDB_OpenTypeServerError pdb_type_server_parse_from_data_v80(String8 data, PDB_TypeServerParse *parse_out); -internal PDB_OpenTypeServerError pdb_type_server_parse_from_data(String8 data, PDB_TypeServerParse *parse_out); internal PDB_TypeServer * pdb_type_server_alloc(U64 bucket_count); internal PDB_TypeServer * pdb_type_server_open_v80(MSF_Context *msf, MSF_StreamNumber sn, PDB_StringTable *strtab); -internal PDB_TypeServer * pdb_type_server_open(MSF_Context *msf, MSF_StreamNumber sn, PDB_StringTable *strtab); internal void pdb_type_server_build(TP_Context *tp, PDB_TypeServer *ts, PDB_StringTable *strtab, MSF_Context *msf, MSF_StreamNumber sn); internal void pdb_type_server_release(PDB_TypeServer **serv_ptr); internal void pdb_type_server_push(PDB_TypeServer *ts, String8 raw_leaf); -internal void pdb_type_server_push_parallel(TP_Context *tp, PDB_TypeServer *ts, CV_DebugT types); -//internal CV_LeafNode * pdb_type_server_leaf_from_string(PDB_TypeServer *ts, String8 string); +internal void pdb_type_server_push_parallel(TP_Context *tp, PDB_TypeServer *ts, U64 leaf_count, U8 **leaf_arr); internal String8Node * pdb_type_server_reserve(PDB_TypeServer *ts, U64 count); internal String8Node * pdb_type_server_make_leaf(PDB_TypeServer *ts, CV_LeafKind kind, String8 data); internal void pdb_type_server_push_bucket(PDB_TypeServer *ts, CV_Leaf *leaf); @@ -485,6 +461,5 @@ internal PDB_TypeHashStreamInfo pdb_type_hash_stream_build(TP_Context *tp, PDB_ // Enum -> String internal String8 pdb_string_from_src_error(PDB_SrcError error); -internal String8 pdb_string_from_open_type_server_error(PDB_OpenTypeServerError error); diff --git a/src/linker/rdi/rdi_builder.c b/src/linker/rdi/rdi_builder.c deleted file mode 100644 index 91a31d7a..00000000 --- a/src/linker/rdi/rdi_builder.c +++ /dev/null @@ -1,5597 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal RDIB_DataModel -rdib_infer_data_model(OperatingSystem os, RDI_Arch arch) -{ - RDIB_DataModel data_model = RDIB_DataModel_Null; - switch (os) { - case OperatingSystem_Null: break; - case OperatingSystem_Windows: { - switch (arch) { - case RDI_Arch_X86: - case RDI_Arch_X64: - data_model = RDIB_DataModel_LLP64; break; - default: NotImplemented; - } - } break; - case OperatingSystem_Linux: { - switch (arch) { - case RDI_Arch_X86: data_model = RDIB_DataModel_ILP32; break; - case RDI_Arch_X64: data_model = RDIB_DataModel_LLP64; break; - default: NotImplemented; - } - } break; - case OperatingSystem_Mac: { - switch (arch) { - case RDI_Arch_X86: NotImplemented; break; - case RDI_Arch_X64: data_model = RDIB_DataModel_LP64; break; - } - } break; - default: InvalidPath; - } - return data_model; -} - -internal RDI_TypeKind -rdib_short_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_S16; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_S16; - case RDIB_DataModel_LP64 : return RDI_TypeKind_S16; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_S16; - case RDIB_DataModel_SILP64: return RDI_TypeKind_S64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_unsigned_short_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_U16; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_U16; - case RDIB_DataModel_LP64 : return RDI_TypeKind_U16; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_U16; - case RDIB_DataModel_SILP64: return RDI_TypeKind_U64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_int_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_S32; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_S32; - case RDIB_DataModel_LP64 : return RDI_TypeKind_S32; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_S64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_unsigned_int_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_U32; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_U32; - case RDIB_DataModel_LP64 : return RDI_TypeKind_U32; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_U64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_long_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_S32; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_S32; - case RDIB_DataModel_LP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_S64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_unsigned_long_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_U32; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_U32; - case RDIB_DataModel_LP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_U64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_long_long_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_S64; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_LP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_S64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_S64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_unsigned_long_long_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_U64; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_LP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_U64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -internal RDI_TypeKind -rdib_pointer_size_t_type_from_data_model(RDIB_DataModel data_model) -{ - switch (data_model) { - case RDIB_DataModel_Null : break; - case RDIB_DataModel_ILP32 : return RDI_TypeKind_U32; - case RDIB_DataModel_LLP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_LP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_ILP64 : return RDI_TypeKind_U64; - case RDIB_DataModel_SILP64: return RDI_TypeKind_U64; - default: InvalidPath; - } - return RDI_TypeKind_NULL; -} - -//////////////////////////////// - -internal void -rdib_udt_member_list_push_node(RDIB_UDTMemberList *list, RDIB_UDTMember *node) -{ - SLLQueuePushCount(list, node); -} - -internal void -rdib_udt_member_list_concat_in_place(RDIB_UDTMemberList *list, RDIB_UDTMemberList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -rdib_line_table_push_fragment_node(RDIB_LineTable *list, RDIB_LineTableFragment *n) -{ - SLLQueuePush_N(list->first, list->last, n, next_line_table); - ++list->count; -} - -internal RDIB_LineTableFragment * -rdib_line_table_push(Arena *arena, RDIB_LineTable *list) -{ - RDIB_LineTableFragment *n = push_array(arena, RDIB_LineTableFragment, 1); - rdib_line_table_push_fragment_node(list, n); - return n; -} - -//////////////////////////////// - -internal RDIB_LineTableFragment * -rdib_line_table_fragment_chunk_list_push(Arena *arena, RDIB_LineTableFragmentChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_LineTableFragment); - return SLLChunkListLastItem(list); -} - -internal RDIB_Unit * -rdib_unit_chunk_list_push(Arena *arena, RDIB_UnitChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_Unit); - return SLLChunkListLastItem(list); -} - -internal RDIB_Scope * -rdib_scope_chunk_list_push(Arena *arena, RDIB_ScopeChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_Scope); - return SLLChunkListLastItem(list); -} - -internal RDIB_Procedure * -rdib_procedure_chunk_list_push(Arena *arena, RDIB_ProcedureChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_Procedure); - return SLLChunkListLastItem(list); -} - -internal RDIB_Variable * -rdib_variable_chunk_list_push(Arena *arena, RDIB_VariableChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_Variable); - return SLLChunkListLastItem(list); -} - -internal RDIB_LineTable * -rdib_line_table_chunk_list_push(Arena *arena, RDIB_LineTableChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_LineTable); - return SLLChunkListLastItem(list); -} - -internal RDIB_Type * -rdib_type_chunk_list_push(Arena *arena, RDIB_TypeChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_Type); - RDIB_Type *type = SLLChunkListLastItem(list); - type->final_idx = 0; - return type; -} - -internal RDIB_UDTMember * -rdib_udt_member_chunk_list_push(Arena *arena, RDIB_UDTMemberChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_UDTMember); - return SLLChunkListLastItem(list); -} - -internal RDIB_SourceFile * -rdib_source_file_chunk_list_push(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_SourceFile); - return SLLChunkListLastItem(list); -} - -internal RDIB_InlineSite * -rdib_inline_site_chunk_list_push(Arena *arena, RDIB_InlineSiteChunkList *list, U64 cap) -{ - SLLChunkListPush(arena, list, cap, RDIB_InlineSite); - return SLLChunkListLastItem(list); -} - -internal RDIB_Unit * -rdib_unit_chunk_list_push_zero(Arena *arena, RDIB_UnitChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_Unit); - return SLLChunkListLastItem(list); -} - -internal RDIB_Scope * -rdib_scope_chunk_list_push_zero(Arena *arena, RDIB_ScopeChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_Scope); - return SLLChunkListLastItem(list); -} - -internal RDIB_Procedure * -rdib_procedure_chunk_list_push_zero(Arena *arena, RDIB_ProcedureChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_Procedure); - return SLLChunkListLastItem(list); -} - -internal RDIB_Variable * -rdib_variable_chunk_list_push_zero(Arena *arena, RDIB_VariableChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_Variable); - return SLLChunkListLastItem(list); -} - -internal RDIB_LineTable * -rdib_line_table_chunk_list_push_zero(Arena *arena, RDIB_LineTableChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_LineTable); - return SLLChunkListLastItem(list); -} - -internal RDIB_Type * -rdib_type_chunk_list_push_zero(Arena *arena, RDIB_TypeChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_Type); - return SLLChunkListLastItem(list); -} - -internal RDIB_UDTMember * -rdib_udt_member_chunk_list_push_zero(Arena *arena, RDIB_UDTMemberChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_UDTMember); - return SLLChunkListLastItem(list); -} - -internal RDIB_SourceFile * -rdib_source_file_chunk_list_push_zero(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_SourceFile); - return SLLChunkListLastItem(list); -} - -internal RDIB_InlineSite * -rdib_inline_site_chunk_list_push_zero(Arena *arena, RDIB_InlineSiteChunkList *list, U64 cap) -{ - SLLChunkListPushZero(arena, list, cap, RDIB_InlineSite); - return SLLChunkListLastItem(list); -} - -internal RDIB_UnitChunk * -rdib_unit_chunk_list_reserve_ex(Arena *arena, RDIB_UnitChunkList *list, U64 count_per_chunk, U64 item_count) -{ - U64 chunk_count = CeilIntegerDiv(item_count, count_per_chunk); - RDIB_UnitChunk *chunks = push_array(arena, RDIB_UnitChunk, chunk_count); - U64 base = list->last ? list->last->base : 0; - - for (U64 i = 0; i+1 < chunk_count; i += 1, item_count -= count_per_chunk, base += count_per_chunk) { - chunks[i].base = base; - chunks[i].count = count_per_chunk; - chunks[i].cap = count_per_chunk; - chunks[i].v = push_array(arena, RDIB_Unit, count_per_chunk); - SLLQueuePush(list->first, list->last, &chunks[i]); - - for (U64 k = 0; k < count_per_chunk; ++k) { - chunks[i].v[k].chunk = &chunks[i]; - } - } - - chunks[chunk_count-1].base = base; - chunks[chunk_count-1].count = item_count; - chunks[chunk_count-1].cap = item_count; - chunks[chunk_count-1].v = push_array(arena, RDIB_Unit, item_count); - for (U64 k = 0; k < item_count; ++k) { - chunks[chunk_count-1].v[k].chunk = &chunks[chunk_count-1]; - } - - SLLQueuePush(list->first, list->last, &chunks[chunk_count-1]); - list->count += chunk_count; - - return chunks; -} - -internal void -rdib_unit_chunk_list_reserve(Arena *arena, RDIB_UnitChunkList *list, U64 cap) -{ - // fill out node - RDIB_UnitChunk *chunk = push_array(arena, RDIB_UnitChunk, 1); - chunk->cap = cap; - chunk->v = push_array(arena, RDIB_Unit, cap); - - // push node to list - SLLQueuePush(list->first, list->last, chunk); - list->count += 1; -} - -internal void -rdib_type_chunk_list_reserve(Arena *arena, RDIB_TypeChunkList *list, U64 cap) -{ - // fill out node - RDIB_TypeChunk *chunk = push_array(arena, RDIB_TypeChunk, 1); - chunk->cap = cap; - chunk->v = push_array(arena, RDIB_Type, cap); - - // push node to list - SLLQueuePush(list->first, list->last, chunk); - list->count += 1; -} - -internal void -rdib_source_file_list_reserve(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap) -{ - // fill out node - RDIB_SourceFileChunk *chunk = push_array(arena, RDIB_SourceFileChunk, 1); - chunk->cap = cap; - chunk->v = push_array(arena, RDIB_SourceFile, cap); - - // push node to list - SLLQueuePush(list->first, list->last, chunk); - list->count += 1; -} - -internal void -rdib_unit_chunk_list_concat_in_place(RDIB_UnitChunkList *list, RDIB_UnitChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_UnitChunk); -} - -internal void -rdib_scope_chunk_list_concat_in_place(RDIB_ScopeChunkList *list, RDIB_ScopeChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_ScopeChunk); -} - -internal void -rdib_udt_member_chunk_list_concat_in_place(RDIB_UDTMemberChunkList *list, RDIB_UDTMemberChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_UDTMemberChunk); -} - -internal void -rdib_procedure_chunk_list_concat_in_place(RDIB_ProcedureChunkList *list, RDIB_ProcedureChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_ProcedureChunk); -} - -internal void -rdib_variable_chunk_list_concat_in_place(RDIB_VariableChunkList *list, RDIB_VariableChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_VariableChunk); -} - -internal void -rdib_line_table_chunk_list_concat_in_place(RDIB_LineTableChunkList *list, RDIB_LineTableChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_LineTableChunk); -} - -internal void -rdib_inline_site_chunk_list_concat_in_place(RDIB_InlineSiteChunkList *list, RDIB_InlineSiteChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_InlineSiteChunk); -} - -internal void -rdib_type_chunk_list_concat_in_place(RDIB_TypeChunkList *list, RDIB_TypeChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_TypeChunk); -} - -internal void -rdib_source_file_chunk_list_concat_in_place(RDIB_SourceFileChunkList *list, RDIB_SourceFileChunkList *to_concat) -{ - SLLConcatInPlaceChunkList(list, to_concat, RDIB_SourceFileChunk); -} - -internal void -rdib_line_table_chunk_list_concat_in_place_many(RDIB_LineTableChunkList *list, RDIB_LineTableChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_LineTableChunk, count); -} - -internal void -rdib_scope_chunk_list_concat_in_place_many(RDIB_ScopeChunkList *list, RDIB_ScopeChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_ScopeChunk, count); -} - -internal void -rdib_variable_chunk_list_concat_in_place_many(RDIB_VariableChunkList *list, RDIB_VariableChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_VariableChunk, count); -} - -internal void -rdib_procedure_chunk_list_concat_in_place_many(RDIB_ProcedureChunkList *list, RDIB_ProcedureChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_ProcedureChunk, count); -} - -internal void -rdib_inline_site_chunk_list_concat_in_place_many(RDIB_InlineSiteChunkList *list, RDIB_InlineSiteChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_InlineSiteChunk, count); -} - -internal void -rdib_type_chunk_list_concat_in_place_many(RDIB_TypeChunkList *list, RDIB_TypeChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_TypeChunk, count); -} - -internal void -rdib_udt_member_chunk_list_concat_in_place_many(RDIB_UDTMemberChunkList *list, RDIB_UDTMemberChunkList *to_concat, U64 count) -{ - SLLConcatInPlaceChunkListArray(list, to_concat, RDIB_UDTMemberChunk, count); -} - -internal RDIB_UnitChunk ** -rdib_array_from_unit_chunk_list(Arena *arena, RDIB_UnitChunkList list) -{ - ProfBeginFunction(); - RDIB_UnitChunk **result = push_array_no_zero(arena, RDIB_UnitChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_UnitChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_ScopeChunk ** -rdib_array_from_scope_chunk_list(Arena *arena, RDIB_ScopeChunkList list) -{ - ProfBeginFunction(); - RDIB_ScopeChunk **result = push_array_no_zero(arena, RDIB_ScopeChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_ScopeChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_VariableChunk ** -rdib_array_from_variable_chunk_list(Arena *arena, RDIB_VariableChunkList list) -{ - ProfBeginFunction(); - RDIB_VariableChunk **result = push_array_no_zero(arena, RDIB_VariableChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_VariableChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_LineTableChunk ** -rdib_array_from_line_table_chunk_list(Arena *arena, RDIB_LineTableChunkList list) -{ - ProfBeginFunction(); - RDIB_LineTableChunk **result = push_array_no_zero(arena, RDIB_LineTableChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_LineTableChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_ProcedureChunk ** -rdib_array_from_procedure_chunk_list(Arena *arena, RDIB_ProcedureChunkList list) -{ - ProfBeginFunction(); - RDIB_ProcedureChunk **result = push_array_no_zero(arena, RDIB_ProcedureChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_ProcedureChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_InlineSiteChunk ** -rdib_array_from_inline_site_chunk_list(Arena *arena, RDIB_InlineSiteChunkList list) -{ - ProfBeginFunction(); - RDIB_InlineSiteChunk **result = push_array_no_zero(arena, RDIB_InlineSiteChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_InlineSiteChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_UDTMemberChunk ** -rdib_array_from_udt_member_chunk_list(Arena *arena, RDIB_UDTMemberChunkList list) -{ - ProfBeginFunction(); - RDIB_UDTMemberChunk **result = push_array_no_zero(arena, RDIB_UDTMemberChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_UDTMemberChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_TypeChunk ** -rdib_array_from_type_chunk_list(Arena *arena, RDIB_TypeChunkList list) -{ - ProfBeginFunction(); - RDIB_TypeChunk **result = push_array_no_zero(arena, RDIB_TypeChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_TypeChunk *chunk = list.first; chunk != 0; chunk = chunk->next, ++chunk_idx) { - result[chunk_idx] = chunk; - } - ProfEnd(); - return result; -} - -internal RDIB_SourceFileChunk ** -rdib_array_from_source_file_chunk_list(Arena *arena, RDIB_SourceFileChunkList list) -{ - ProfBeginFunction(); - RDIB_SourceFileChunk **result = push_array_no_zero(arena, RDIB_SourceFileChunk *, list.count); - U64 chunk_idx = 0; - for (RDIB_SourceFileChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - result[chunk_idx++] = chunk; - } - ProfEnd(); - return result; -} - -internal U64 -rdib_unit_chunk_list_total_count(RDIB_UnitChunkList list) -{ - U64 total_count = 0; - for (RDIB_UnitChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_scope_chunk_list_total_count(RDIB_ScopeChunkList list) -{ - U64 total_count = 0; - for (RDIB_ScopeChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_variable_chunk_list_total_count(RDIB_VariableChunkList list) -{ - U64 total_count = 0; - for (RDIB_VariableChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_line_table_chunk_list_total_count(RDIB_LineTableChunkList list) -{ - U64 total_count = 0; - for (RDIB_LineTableChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_procedure_chunk_list_total_count(RDIB_ProcedureChunkList list) -{ - U64 total_count = 0; - for (RDIB_ProcedureChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_inline_site_chunk_list_total_count(RDIB_InlineSiteChunkList list) -{ - U64 total_count = 0; - for (RDIB_InlineSiteChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_udt_member_chunk_list_total_count(RDIB_UDTMemberChunkList list) -{ - U64 total_count = 0; - for (RDIB_UDTMemberChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_type_chunk_list_total_count(RDIB_TypeChunkList list) -{ - U64 total_count = 0; - for (RDIB_TypeChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U64 -rdib_source_file_chunk_list_total_count(RDIB_SourceFileChunkList list) -{ - U64 total_count = 0; - for (RDIB_SourceFileChunk *chunk = list.first; chunk != 0; chunk = chunk->next) { - total_count += chunk->count; - } - return total_count; -} - -internal U32 -rdib_idx_from_unit(RDIB_Unit *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_scope(RDIB_Scope *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_inline_site(RDIB_InlineSite *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_variable(RDIB_Variable *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_procedure(RDIB_Procedure *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_source_file(RDIB_SourceFile *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_line_table(RDIB_LineTable *n) -{ - U32 idx = 0; - if (n) { - Assert(n->chunk->v <= n && n < (n->chunk->v + n->chunk->count)); - idx = safe_cast_u32(n->chunk->base + (n - n->chunk->v)); - Assert(idx - n->chunk->base < n->chunk->count); - } - return idx; -} - -internal U32 -rdib_idx_from_type(RDIB_Type *n) -{ - U32 idx = 0; - if (n) { - idx = safe_cast_u32(n->final_idx); - } - return idx; -} - -internal U32 -rdib_idx_from_udt_type(RDIB_Type *n) -{ - U32 idx = 0; - if (n && RDI_IsUserDefinedType(n->kind)) { - idx = safe_cast_u32(n->udt.udt_idx); - } - return idx; -} - -//////////////////////////////// -// Source File - -internal B32 -rdib_source_file_match(RDIB_SourceFile *a, RDIB_SourceFile *b, OperatingSystem os) -{ - StringMatchFlags match_flags = path_match_flags_from_os(os); - if (str8_match(a->normal_full_path, b->normal_full_path, match_flags)) { - if (a->checksum_kind == b->checksum_kind) { - if (str8_match(a->checksum, b->checksum, 0)) { - return 1; - } - } - } - return 0; -} - -//////////////////////////////// -// Eval Ops - -internal RDIB_EvalBytecodeOp * -rdib_bytecode_push_op(Arena *arena, RDIB_EvalBytecode *bytecode, RDI_EvalOp op, RDI_U64 p) -{ - RDIB_EvalBytecodeOp *node = push_array(arena, RDIB_EvalBytecodeOp, 1); - node->op = op; - node->p_size = RDI_DECODEN_FROM_CTRLBITS(rdi_eval_op_ctrlbits_table[op]); - node->p = p; - - SLLQueuePush(bytecode->first, bytecode->last, node); - bytecode->count += 1; - bytecode->size += 1 + node->p_size; - - return node; -} - -internal void -rdib_bytecode_push_ucsont(Arena *arena, RDIB_EvalBytecode *bytecode, RDI_U64 uconst) -{ - if (uconst <= max_U8) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU8, uconst); - } else if (uconst <= max_U16) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU16, uconst); - } else if (uconst <= max_U32) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU32, uconst); - } else { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU64, uconst); - } -} - -internal void -rdib_bytecode_push_sconst(Arena *arena, RDIB_EvalBytecode *bytecode, RDI_S64 sconst) -{ - if (min_S8 <= sconst && sconst <= max_S8) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU8, (RDI_U64)sconst); - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_TruncSigned, 8); - } else if (min_S16 <= sconst && sconst <= max_S16) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU16, (RDI_U64)sconst); - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_TruncSigned, 16); - } else if (min_S32 <= sconst && sconst <= max_S32) { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU32, (RDI_U64)sconst); - } else { - rdib_bytecode_push_op(arena, bytecode, RDI_EvalOp_ConstU64, (RDI_U64)sconst); - } -} - -//////////////////////////////// -// Location - -internal RDIB_Location -rdib_make_location_addr_byte_stream(Rng1U64List ranges, RDIB_EvalBytecode bytecode) -{ - RDIB_Location loc = {0}; - loc.ranges = ranges; - loc.kind = RDI_LocationKind_AddrBytecodeStream; - loc.bytecode = bytecode; - return loc; -} - -internal RDIB_Location -rdib_make_location_addr_bytecode_stream(Rng1U64List ranges, RDIB_EvalBytecode bytecode) -{ - RDIB_Location loc = {0}; - loc.ranges = ranges; - loc.kind = RDI_LocationKind_AddrBytecodeStream; - loc.bytecode = bytecode; - return loc; -} - -internal RDIB_Location -rdib_make_location_val_bytecode_stream(Rng1U64List ranges, RDIB_EvalBytecode bytecode) -{ - RDIB_Location loc = {0}; - loc.ranges = ranges; - loc.kind = RDI_LocationKind_ValBytecodeStream; - loc.bytecode = bytecode; - return loc; -} - -internal RDIB_Location -rdib_make_location_addr_reg_plus_u16(Rng1U64List ranges, RDI_RegCode reg_code, RDI_U16 offset) -{ - RDIB_Location loc = {0}; - loc.ranges = ranges; - loc.kind = RDI_LocationKind_AddrRegPlusU16; - loc.reg_code = reg_code; - loc.offset = offset; - return loc; -} - -internal RDIB_Location -rdib_make_location_addr_addr_reg_plus_u16(Rng1U64List ranges, RDI_RegCode reg_code, RDI_U16 offset) -{ - RDIB_Location loc = {0}; - loc.kind = RDI_LocationKind_AddrAddrRegPlusU16; - loc.ranges = ranges; - loc.reg_code = reg_code; - loc.offset = offset; - return loc; -} - -internal RDIB_Location -rdib_make_location_val_reg(Rng1U64List ranges, RDI_RegCode reg_code) -{ - RDIB_Location loc = {0}; - loc.kind = RDI_LocationKind_ValReg; - loc.ranges = ranges; - loc.reg_code = reg_code; - return loc; -} - -internal RDIB_LocationNode * -rdib_location_list_push(Arena *arena, RDIB_LocationList *list, RDIB_Location v) -{ - RDIB_LocationNode *node = push_array(arena, RDIB_LocationNode, 1); - node->v = v; - SLLQueuePush(list->first, list->last, node); - ++list->count; - return node; -} - -internal RDIB_LocationNode * -rdib_push_location_addr_reg_off(Arena *arena, RDIB_LocationList *list, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 is_reference, Rng1U64List ranges) -{ - RDIB_Location loc; - - if (0 <= offset && offset <= (S64)max_U16) { - if (is_reference) { - loc = rdib_make_location_addr_addr_reg_plus_u16(ranges, reg_code, (U16)offset); - } else { - loc = rdib_make_location_addr_reg_plus_u16(ranges, reg_code, (U16)offset); - } - } - - // long offset, emit byte code - else { - RDIB_EvalBytecode bytecode = {0}; - U32 reg_read_param = RDI_EncodeRegReadParam(reg_code, reg_byte_size, reg_byte_pos); - rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_RegRead, reg_read_param); - rdib_bytecode_push_sconst(arena, &bytecode, offset); - rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_Add, 0); - - if (is_reference) { - U64 addr_size = rdi_addr_size_from_arch(arch); - rdib_bytecode_push_op(arena, &bytecode, RDI_EvalOp_MemRead, addr_size); - } - - loc = rdib_make_location_addr_bytecode_stream(ranges, bytecode); - } - - RDIB_LocationNode *node = rdib_location_list_push(arena, list, loc); - return node; -} - -internal void -rdib_variable_list_push_node(RDIB_VariableList *list, RDIB_VariableNode *node) -{ - SLLQueuePush(list->first, list->last, node); - ++list->count; -} - -internal RDIB_VariableNode * -rdib_variable_list_push(Arena *arena, RDIB_VariableList *list) -{ - RDIB_VariableNode *node = push_array(arena, RDIB_VariableNode, 1); - rdib_variable_list_push_node(list, node); - return node; -} - -//////////////////////////////// -// Types - -internal U64 -rdib_size_from_type(RDIB_Type *type) -{ - if (type) { - switch (type->kind) { - case RDI_TypeKind_Void: - case RDI_TypeKind_Char8: - case RDI_TypeKind_Char16: - case RDI_TypeKind_Char32: - case RDI_TypeKind_UChar8: - case RDI_TypeKind_UChar16: - case RDI_TypeKind_UChar32: - case RDI_TypeKind_U8: - case RDI_TypeKind_U16: - case RDI_TypeKind_U32: - case RDI_TypeKind_U64: - case RDI_TypeKind_U128: - case RDI_TypeKind_U256: - case RDI_TypeKind_U512: - case RDI_TypeKind_S8: - case RDI_TypeKind_S16: - case RDI_TypeKind_S32: - case RDI_TypeKind_S64: - case RDI_TypeKind_S128: - case RDI_TypeKind_S256: - case RDI_TypeKind_S512: - case RDI_TypeKind_Bool: - case RDI_TypeKind_F16: - case RDI_TypeKind_F32: - case RDI_TypeKind_F32PP: - case RDI_TypeKind_F48: - case RDI_TypeKind_F64: - case RDI_TypeKind_F80: - case RDI_TypeKind_F128: - case RDI_TypeKind_ComplexF32: - case RDI_TypeKind_ComplexF64: - case RDI_TypeKind_ComplexF80: - case RDI_TypeKind_ComplexF128: - case RDI_TypeKind_Handle: - return type->builtin.size; - case RDI_TypeKind_Modifier: - return rdib_size_from_type((RDIB_Type *)type->modifier.type_ref); - case RDI_TypeKind_Ptr: - case RDI_TypeKind_LRef: - case RDI_TypeKind_RRef: - return type->ptr.size; - case RDI_TypeKind_Array: - return type->array.size; - - case RDI_TypeKind_Function: - case RDI_TypeKind_Method: - case RDI_TypeKindExt_StaticMethod: { - Assert(!"check"); - return 0; - } - case RDI_TypeKind_Struct: - case RDI_TypeKind_Class: - case RDI_TypeKind_IncompleteStruct: - case RDI_TypeKind_IncompleteClass: - return type->udt.struct_type.size; - - case RDI_TypeKind_Union: - case RDI_TypeKind_IncompleteUnion: - return type->udt.union_type.size; - - case RDI_TypeKind_Alias: - Assert(!"check"); - - case RDI_TypeKind_Enum: - case RDI_TypeKind_IncompleteEnum: - return rdib_size_from_type(type->udt.enum_type.base_type); - - case RDI_TypeKind_MemberPtr: - case RDI_TypeKind_Bitfield: - case RDI_TypeKind_Variadic: - case RDI_TypeKindExt_Members: - case RDI_TypeKindExt_Params: - InvalidPath; // no size - } - } - return 0; -} - -internal RDIB_TypeRef -rdib_make_type_ref(Arena *arena, RDIB_Type *type) -{ - RDIB_Type **ref = push_array(arena, RDIB_Type *, 1); - ref[0] = type; - return ref; -} - -internal void -rdib_deref_type_refs(TP_Context *tp, RDIB_TypeChunkList *list) -{ - for (RDIB_TypeChunk *chunk = list->first; chunk != 0; chunk = chunk->next) { - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - if (type->kind == RDI_TypeKind_Struct || type->kind == RDI_TypeKind_Class || - type->kind == RDI_TypeKind_IncompleteStruct || type->kind == RDI_TypeKind_IncompleteClass) { - type->udt.members = *(RDIB_Type **)type->udt.members; - type->udt.struct_type.derived = *(RDIB_Type **)type->udt.struct_type.derived; - type->udt.struct_type.vtshape = *(RDIB_Type **)type->udt.struct_type.vtshape; - } else if (type->kind == RDI_TypeKind_Enum || type->kind == RDI_TypeKind_IncompleteEnum) { - type->udt.members = *(RDIB_Type **)type->udt.members; - type->udt.enum_type.base_type = *(RDIB_Type **)type->udt.enum_type.base_type; - } else if (type->kind == RDI_TypeKind_Union || type->kind == RDI_TypeKind_IncompleteUnion) { - type->udt.members = *(RDIB_Type **)type->udt.members; - } else if (type->kind == RDI_TypeKind_Array) { - type->array.entry_type = *(RDIB_Type **)type->array.entry_type; - } else if (type->kind == RDI_TypeKind_Function) { - type->func.return_type = *(RDIB_Type **)type->func.return_type; - type->func.params_type = *(RDIB_Type **)type->func.params_type; - } else if (type->kind == RDI_TypeKind_Method) { - type->method.class_type = *(RDIB_Type **)type->method.class_type; - type->method.this_type = *(RDIB_Type **)type->method.this_type; - type->method.return_type = *(RDIB_Type **)type->method.return_type; - type->method.params_type = *(RDIB_Type **)type->method.params_type; - } else if (type->kind == RDI_TypeKindExt_StaticMethod) { - type->static_method.class_type = *(RDIB_Type **)type->static_method.class_type; - type->static_method.return_type = *(RDIB_Type **)type->static_method.return_type; - type->static_method.params_type = *(RDIB_Type **)type->static_method.params_type; - } else if (type->kind == RDI_TypeKind_Ptr || type->kind == RDI_TypeKind_LRef || type->kind == RDI_TypeKind_RRef) { - type->ptr.type_ref = *(RDIB_Type **)type->ptr.type_ref; - } else if (type->kind == RDI_TypeKind_Modifier) { - type->modifier.type_ref = *(RDIB_Type **)type->modifier.type_ref; - } else if (type->kind == RDI_TypeKind_Bitfield) { - type->bitfield.value_type = *(RDIB_Type **)type->bitfield.value_type; - } else if (type->kind == RDI_TypeKindExt_Params) { - for (U64 i = 0; i < type->params.count; ++i) { - type->params.types[i] = *(RDIB_Type **)type->params.types[i]; - } - } else if (type->kind == RDI_TypeKindExt_Members) { - for (RDIB_UDTMember *member = type->members.list.first; member != 0; member = member->next) { - switch (member->kind) { - case RDI_MemberKind_NULL: break; - case RDI_MemberKind_DataField: { - member->data_field.type_ref = *(RDIB_Type **)member->data_field.type_ref; - } break; - case RDI_MemberKind_StaticData: { - member->static_data.type_ref = *(RDIB_Type **)member->static_data.type_ref; - } break; - case RDI_MemberKind_Method: { - member->method.type_ref = *(RDIB_Type **)member->method.type_ref; - } break; - case RDI_MemberKind_NestedType: { - member->nested_type.type_ref = *(RDIB_Type **)member->nested_type.type_ref; - } break; - case RDI_MemberKind_Base: { - member->base_class.type_ref = *(RDIB_Type **)member->base_class.type_ref; - } break; - case RDI_MemberKind_VirtualBase: { - member->virtual_base_class.type_ref = *(RDIB_Type **)member->virtual_base_class.type_ref; - } break; - case RDI_MemberKindExt_MemberListPointer: { - member->member_list_pointer = *(RDIB_Type **)member->member_list_pointer; - } break; -#if 0 - case RDI_MemberKind_Enumerate: { - // no types - } break; -#endif - default: InvalidPath; - } - } - } - } - } -} - -internal U64 -rdib_sizeof_type(RDIB_Type *type) -{ - U64 size = 0; - if (RDI_TypeKind_FirstBuiltIn <= type->kind && type->kind < RDI_TypeKind_LastBuiltIn) { - size = type->builtin.size; - } else if (type->kind == RDI_TypeKind_Modifier) { - size = rdib_sizeof_type(type->modifier.type_ref); - } else if (type->kind == RDI_TypeKind_Ptr || type->kind == RDI_TypeKind_LRef || type->kind == RDI_TypeKind_RRef) { - size = type->ptr.size; - } else if (type->kind == RDI_TypeKind_Struct || type->kind == RDI_TypeKind_Class || - type->kind == RDI_TypeKind_IncompleteStruct || type->kind == RDI_TypeKind_IncompleteClass) { - size = type->udt.struct_type.size; - } else if (type->kind == RDI_TypeKind_Union || type->kind == RDI_TypeKind_IncompleteUnion) { - size = type->udt.union_type.size; - } else if (type->kind == RDI_TypeKind_Enum || type->kind == RDI_TypeKind_IncompleteEnum) { - size = rdib_sizeof_type(type->udt.enum_type.base_type); - } else if (type->kind == RDI_TypeKind_Bitfield) { - size = rdib_sizeof_type(type->bitfield.value_type); - } else if (type->kind == RDI_TypeKind_Array) { - size = type->array.size; - } else { - Assert(!"error: type doens't have a size"); - } - return size; -} - -internal U64 -rdib_count_members_deep(RDIB_Type *type) -{ - U64 member_count = 0; - for (RDIB_UDTMember *member = type->members.list.first; member != 0; member = member->next) { - if (member->kind == RDI_MemberKindExt_MemberListPointer) { - member_count += rdib_count_members_deep(member->member_list_pointer); - } else { - member_count += 1; - } - } - return member_count; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_type_stats_task) -{ - ProfBeginFunction(); - - RDIB_TypeStatsTask *task = raw_task; - RDIB_TypeChunk *chunk = task->chunks[task_id]; - - for (U64 itype = 0; itype < chunk->count; ++itype) { - RDIB_Type *type = chunk->v + itype; - - if (type->kind == RDI_TypeKind_Class || type->kind == RDI_TypeKind_Struct || type->kind == RDI_TypeKind_Union || type->kind == RDI_TypeKind_Enum) { - task->type_stats->udt_counts[task_id] += 1; - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_concat_members_task) -{ - ProfBeginFunction(); - RDIB_MembersTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_TypeChunk *chunk = task->type_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - RDIB_UDTMemberList acc = {0}; - - for (RDIB_Type *curr = type; ;) { - // concat members - rdib_udt_member_list_concat_in_place(&acc, &curr->members.list); - - // does this type continue member list? - if (acc.count == 0 || acc.last->kind != RDI_MemberKindExt_MemberListPointer) { - break; - } - - // remove member list pointer - RDIB_UDTMember *continuation = acc.last; - SLLQueuePop(acc.first, acc.last); - --acc.count; - - // advance to next type - curr = continuation->member_list_pointer; - - // other types should not reference any part of member list except for head type. - Assert(curr->kind == RDI_TypeKindExt_Members); - curr->kind = RDI_TypeKind_NULL; - } - - // update member list - type->members.list = acc; - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_count_head_members_task) -{ - ProfBeginFunction(); - RDIB_MembersTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_TypeChunk *chunk = task->type_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - if (type->kind == RDI_TypeKindExt_Members) { - task->counts[task_id] += type->members.list.count; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_assign_head_member_indices_task) -{ - ProfBeginFunction(); - RDIB_MembersTask *task = raw_task; - U64 cursor = task->offsets[task_id]; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_TypeChunk *chunk = task->type_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - if (type->kind == RDI_TypeKindExt_Members) { - type->members.first_member_idx = cursor; - cursor += type->members.list.count; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_udt_members_task) -{ - ProfBeginFunction(); - RDIB_MembersTask *task = raw_task; - RDIB_TypeChunk *chunk = task->type_chunks[task_id]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = chunk->v + i; - Assert(type->kind == RDI_TypeKindExt_Members); - - U64 member_idx = 0; - for (RDIB_UDTMember *src = type->members.list.first; src != 0; src = src->next, ++member_idx) { - U64 idx = type->members.first_member_idx + member_idx; - RDI_Member *dst = &task->udt_members_rdi[idx]; - - switch (src->kind) { - case RDI_MemberKind_NULL: { - MemoryZeroStruct(dst); - } break; - case RDI_MemberKind_DataField: { - dst->kind = RDI_MemberKind_DataField; - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->data_field.name); - dst->type_idx = rdib_idx_from_type(src->data_field.type_ref); - dst->off = src->data_field.offset; - } break; - case RDI_MemberKind_StaticData: { - dst->kind = RDI_MemberKind_StaticData; - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->static_data.name); - dst->type_idx = rdib_idx_from_type(src->static_data.type_ref); - } break; - case RDI_MemberKind_Method: - case RDI_MemberKind_StaticMethod: - case RDI_MemberKind_VirtualMethod: { - dst->kind = src->kind; - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->method.name); - dst->type_idx = rdib_idx_from_type(src->method.type_ref); - dst->off = src->method.vftable_offset; - } break; - case RDI_MemberKind_Base: { - dst->kind = RDI_MemberKind_Base; - dst->name_string_idx = 0; - dst->type_idx = rdib_idx_from_type(src->base_class.type_ref); - dst->off = src->base_class.offset; - } break; - case RDI_MemberKind_VirtualBase: { - dst->kind = RDI_MemberKind_VirtualBase; - dst->name_string_idx = 0; - dst->type_idx = rdib_idx_from_type(src->virtual_base_class.type_ref); - dst->off = 0; // TODO: ??? - } break; - case RDI_MemberKind_NestedType: { - dst->kind = RDI_MemberKind_NestedType; - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->nested_type.name); - dst->type_idx = rdib_idx_from_type(src->nested_type.type_ref); - dst->off = 0; - } break; - case RDI_MemberKindExt_MemberListPointer: { - InvalidPath; - } break; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_enum_members_task) -{ - ProfBeginFunction(); - RDIB_MembersTask *task = raw_task; - RDIB_TypeChunk *chunk = task->type_chunks[task_id]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = chunk->v + i; - - if (type->kind != RDI_TypeKindExt_Members) continue; - - U64 member_idx = 0; - for (RDIB_UDTMember *src = type->members.list.first; src != 0; src = src->next, ++member_idx) { - U64 idx = type->members.first_member_idx + member_idx; - RDI_EnumMember *dst = &task->enum_members_rdi[idx]; - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->enumerate.name); - dst->val = src->enumerate.value; - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_udts_task) -{ - ProfBeginFunction(); - RDIB_UserDefinesTask *task = raw_task; - - U64 ichunk = task_id; - RDIB_TypeChunk *chunk = task->type_chunks[ichunk]; - U64 udt_cursor = task->udt_base_idx[ichunk]; - U64 udt_cap = task->type_stats.udt_counts[ichunk]; - - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - - if (RDI_IsCompleteUserDefinedTypeKind(type->kind)) { - RDIB_Type *members_type = type->udt.members; - - // assign UDT idx - type->udt.udt_idx = udt_cursor; - - // fill out struct/class UDT - Assert(udt_cursor < task->udt_base_idx[ichunk] + udt_cap); - RDI_UDT *udt = &task->udts[udt_cursor++]; - udt->self_type_idx = rdib_idx_from_type(type); - udt->flags = type->kind == RDI_TypeKind_Enum ? RDI_UDTFlag_EnumMembers : 0; - if (members_type->members.list.count > 0) { - udt->member_first = members_type->members.first_member_idx; - udt->member_count = members_type->members.list.count; - } else { - udt->member_first = 0; - udt->member_count = 0; - } - udt->file_idx = 0; - udt->line = 0; - udt->col = 0; - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_type_nodes_task) -{ - Temp scratch = scratch_begin(0, 0); - - U64 ichunk = task_id; - RDIB_TypeNodesTask *task = raw_task; - RDIB_TypeChunk *chunk = task->type_chunks[ichunk]; - - for (U64 itype = 0; itype < chunk->count; ++itype) { - RDIB_Type *src = &chunk->v[itype]; - U64 dst_idx = rdib_idx_from_type(src); - RDI_TypeNode *dst = &task->type_nodes[dst_idx]; - - if (src->kind == RDI_TypeKind_NULL) { - MemoryZeroStruct(dst); - dst->kind = RDI_TypeKind_NULL; - } else if (RDI_TypeKind_FirstBuiltIn <= src->kind && src->kind <= RDI_TypeKind_LastBuiltIn) { - dst->kind = src->kind; - dst->flags = 0; - dst->byte_size = src->builtin.size; - dst->built_in.name_string_idx = rdib_idx_from_string_map(task->string_map, src->builtin.name); - } else if (src->kind == RDI_TypeKind_Modifier) { - dst->kind = RDI_TypeKind_Modifier; - dst->byte_size = rdib_sizeof_type(src->modifier.type_ref); - dst->flags = src->modifier.flags; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->modifier.type_ref); - } else if (src->kind == RDI_TypeKind_Ptr || src->kind == RDI_TypeKind_LRef || src->kind == RDI_TypeKind_RRef) { - dst->kind = src->kind; - dst->byte_size = src->ptr.size; - dst->flags = 0; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->ptr.type_ref); - } else if (src->kind == RDI_TypeKind_Method) { - RDIB_Type *params_type = src->method.params_type; - Assert(params_type->kind == RDI_TypeKindExt_Params); - RDIB_IndexRunBucket *param_idx_run = task->idx_run_map->buckets[src->method.param_idx_run_bucket_idx]; - - dst->kind = RDI_TypeKind_Method; - dst->flags = 0; - dst->byte_size = 0; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->method.return_type); - dst->constructed.count = param_idx_run->indices.count; - dst->constructed.param_idx_run_first = param_idx_run->index_in_output_array; - } else if (src->kind == RDI_TypeKindExt_StaticMethod) { - RDIB_Type *params_type = src->static_method.params_type; - Assert(params_type->kind == RDI_TypeKindExt_Params); - RDIB_IndexRunBucket *param_idx_run = task->idx_run_map->buckets[src->static_method.param_idx_run_bucket_idx]; - - dst->kind = RDI_TypeKind_Method; - dst->flags = 0; - dst->byte_size = 0; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->static_method.return_type); - dst->constructed.count = param_idx_run->indices.count; - dst->constructed.param_idx_run_first = param_idx_run->index_in_output_array; - } else if (src->kind == RDI_TypeKind_Function) { - RDIB_Type *params_type = src->func.params_type; - Assert(params_type->kind == RDI_TypeKindExt_Params); - RDIB_IndexRunBucket *param_idx_run = task->idx_run_map->buckets[src->func.param_idx_run_bucket_idx]; - - dst->kind = RDI_TypeKind_Function; - dst->flags = 0; - dst->byte_size = 0; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->func.return_type); - dst->constructed.count = param_idx_run->indices.count; - dst->constructed.param_idx_run_first = param_idx_run->index_in_output_array; - } else if (src->kind == RDI_TypeKind_Array) { - U64 entry_size = rdib_size_from_type(src->array.entry_type); - U64 array_size = src->array.size; - U64 array_count = entry_size > 0 ? array_size / entry_size : 0; - - dst->kind = src->kind; - dst->flags = 0; - dst->byte_size = array_size; - dst->constructed.direct_type_idx = rdib_idx_from_type(src->array.entry_type); - dst->constructed.count = array_count; - } else if (src->kind == RDI_TypeKind_Bitfield) { - dst->kind = RDI_TypeKind_Bitfield; - dst->flags = 0; - dst->byte_size = rdib_sizeof_type(src->bitfield.value_type); - dst->bitfield.direct_type_idx = rdib_idx_from_type(src->bitfield.value_type); - dst->bitfield.off = src->bitfield.off; - dst->bitfield.size = src->bitfield.count; - } else if (src->kind == RDI_TypeKind_Struct || src->kind == RDI_TypeKind_Class || - src->kind == RDI_TypeKind_IncompleteStruct || src->kind == RDI_TypeKind_IncompleteClass) { - dst->kind = src->kind; - dst->flags = 0; - dst->byte_size = src->udt.struct_type.size; - dst->user_defined.name_string_idx = rdib_idx_from_string_map(task->string_map, src->udt.name); - dst->user_defined.udt_idx = src->udt.udt_idx; - dst->user_defined.direct_type_idx = 0; - } else if (src->kind == RDI_TypeKind_Union || src->kind == RDI_TypeKind_IncompleteUnion) { - dst->kind = src->kind; - dst->flags = 0; - dst->byte_size = src->udt.union_type.size; - dst->user_defined.name_string_idx = rdib_idx_from_string_map(task->string_map, src->udt.name); - dst->user_defined.udt_idx = src->udt.udt_idx; - dst->user_defined.direct_type_idx = 0; - } else if (src->kind == RDI_TypeKind_Enum || src->kind == RDI_TypeKind_IncompleteEnum) { - dst->kind = RDI_TypeKind_Enum; - dst->flags = 0; - dst->byte_size = rdib_size_from_type(src->udt.enum_type.base_type); - dst->user_defined.name_string_idx = rdib_idx_from_string_map(task->string_map, src->udt.name); - dst->user_defined.udt_idx = src->udt.udt_idx; - dst->user_defined.direct_type_idx = rdib_idx_from_type(src->udt.enum_type.base_type); - } else if (src->kind == RDI_TypeKind_Alias) { - // TODO - NotImplemented; - } else if (src->kind == RDI_TypeKind_MemberPtr) { - // TODO - NotImplemented; - } else if (src->kind == RDI_TypeKind_Variadic) { - MemoryZeroStruct(dst); - dst->kind = RDI_TypeKind_Variadic; - } else if (src->kind == RDI_TypeKindExt_VirtualTable) { - // TODO - MemoryZeroStruct(dst); - dst->kind = RDI_TypeKind_NULL; - } else { - InvalidPath; - } - } - - scratch_end(scratch); -} - -internal void -rdib_data_sections_from_types(TP_Context *tp, - Arena *arena, - RDIB_DataSectionList *sect_list, - RDI_Arch arch, - RDIB_StringMap *string_map, - RDIB_IndexRunMap *idx_run_map, - U64 udt_member_chunk_count, - RDIB_TypeChunk **udt_member_type_chunks, - U64 enum_member_chunk_count, - RDIB_TypeChunk **enum_member_type_chunks, - U64 total_type_node_count, - U64 type_chunk_count, - RDIB_TypeChunk **type_chunks, - RDIB_TypeStats type_stats) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - ProfBegin("UDT Members"); - U64 udt_member_count_rdi; - RDI_Member *udt_members_rdi; - { - RDIB_MembersTask task = {0}; - - ProfBegin("Concat"); - task.ranges = tp_divide_work(scratch.arena, udt_member_chunk_count, tp->worker_count); - task.type_chunks = udt_member_type_chunks; - tp_for_parallel(tp, 0, tp->worker_count, rdib_concat_members_task, &task); - ProfEnd(); - - ProfBegin("Count"); - task.counts = push_array(scratch.arena, U64, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_count_head_members_task, &task); - ProfEnd(); - - ProfBegin("Assign Indices"); - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_assign_head_member_indices_task, &task); - ProfEnd(); - - udt_member_count_rdi = sum_array_u64(tp->worker_count, task.counts); - udt_members_rdi = push_array_no_zero(arena, RDI_Member, udt_member_count_rdi); - - ProfBegin("Fill"); - task.string_map = string_map; - task.udt_members_rdi = udt_members_rdi; - tp_for_parallel(tp, 0, udt_member_chunk_count, rdib_fill_udt_members_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Enum Members"); - U64 enum_member_count_rdi; - RDI_EnumMember *enum_members_rdi; - { - RDIB_MembersTask task = {0}; - - ProfBegin("Concat"); - task.ranges = tp_divide_work(scratch.arena, enum_member_chunk_count, tp->worker_count); - task.type_chunks = enum_member_type_chunks; - tp_for_parallel(tp, 0, tp->worker_count, rdib_concat_members_task, &task); - ProfEnd(); - - ProfBegin("Count"); - task.counts = push_array(scratch.arena, U64, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_count_head_members_task, &task); - ProfEnd(); - - ProfBegin("Assign Indices"); - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_assign_head_member_indices_task, &task); - ProfEnd(); - - enum_member_count_rdi = sum_array_u64(tp->worker_count, task.counts); - enum_members_rdi = push_array_no_zero(arena, RDI_EnumMember, enum_member_count_rdi); - - ProfBegin("Fill"); - task.string_map = string_map; - task.enum_members_rdi = enum_members_rdi; - tp_for_parallel(tp, 0, enum_member_chunk_count, rdib_fill_enum_members_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Sum type stats"); - U64 total_udt_count = sum_array_u64(type_chunk_count, type_stats.udt_counts); - ProfEnd(); - - ProfBegin("Up front pushes"); - RDI_UDT *udts = push_array_no_zero(arena, RDI_UDT, total_udt_count ); - RDI_TypeNode *type_nodes = push_array_no_zero(arena, RDI_TypeNode, total_type_node_count); - ProfEnd(); - - ProfBegin("Fill out UDTs"); - RDIB_UserDefinesTask udts_task = {0}; - udts_task.type_chunks = type_chunks; - udts_task.type_stats = type_stats; - udts_task.udt_base_idx = offsets_from_counts_array_u64(scratch.arena, type_stats.udt_counts, type_chunk_count); - udts_task.udts = udts; - tp_for_parallel(tp, 0, type_chunk_count, rdib_fill_udts_task, &udts_task); - ProfEnd(); - - ProfBegin("Fill out type nodes"); - RDIB_TypeNodesTask type_nodes_task = {0}; - type_nodes_task.addr_size = rdi_addr_size_from_arch(arch); - type_nodes_task.string_map = string_map; - type_nodes_task.idx_run_map = idx_run_map; - type_nodes_task.type_chunks = type_chunks; - type_nodes_task.type_stats = type_stats; - type_nodes_task.type_nodes = type_nodes; - tp_for_parallel(tp, 0, type_chunk_count, rdib_type_nodes_task, &type_nodes_task); - ProfEnd(); - - RDIB_DataSection udt_member_sect = { .tag = RDI_SectionKind_Members }; - RDIB_DataSection enum_member_sect = { .tag = RDI_SectionKind_EnumMembers }; - RDIB_DataSection udt_sect = { .tag = RDI_SectionKind_UDTs }; - RDIB_DataSection type_nodes_sect = { .tag = RDI_SectionKind_TypeNodes }; - - str8_list_push(arena, &udt_member_sect.data, str8_array(udt_members_rdi, udt_member_count_rdi )); - str8_list_push(arena, &enum_member_sect.data, str8_array(enum_members_rdi, enum_member_count_rdi)); - str8_list_push(arena, &udt_sect.data, str8_array(udts, total_udt_count )); - str8_list_push(arena, &type_nodes_sect.data, str8_array(type_nodes, total_type_node_count)); - - rdib_data_section_list_push(arena, sect_list, enum_member_sect); - rdib_data_section_list_push(arena, sect_list, udt_member_sect ); - rdib_data_section_list_push(arena, sect_list, udt_sect ); - rdib_data_section_list_push(arena, sect_list, type_nodes_sect ); - - scratch_end(scratch); - ProfEnd(); -} - -//////////////////////////////// - -internal RDIB_PathTree * -rdib_path_tree_init(Arena *arena, U64 list_count) -{ - RDIB_PathTree *tree = push_array(arena, RDIB_PathTree, 1); - tree->root = push_array(arena, RDIB_PathTreeNode, 1); - tree->list_count = list_count; - tree->node_lists = push_array(arena, RDIB_PathTreeNodeList, list_count); - return tree; -} - -internal void -rdib_path_tree_insert(Arena *arena, RDIB_PathTree *tree, String8 path, RDIB_SourceFile *src_file) -{ - Temp scratch = scratch_begin(&arena, 1); - - RDIB_PathTreeNode *curr_sub_path = tree->root; - String8List sub_paths = str8_split_path(scratch.arena, path); - str8_path_list_resolve_dots_in_place(&sub_paths, path_style_from_str8(path)); - - for (String8Node *n = sub_paths.first; n != 0; n = n->next) { - RDIB_PathTreeNode *sub_child; - - // is there directory or file defined on this level? - for (sub_child = curr_sub_path->first_child; sub_child != 0; sub_child = sub_child->next_sibling) { - if (str8_match(sub_child->sub_path, n->string, 0)) { - break; - } - } - - // new directory/file - if (sub_child == 0) { - sub_child = push_array(arena, RDIB_PathTreeNode, 1); - sub_child->node_idx = tree->node_count; - sub_child->parent = curr_sub_path; - sub_child->sub_path = n->string; - sub_child->src_file = 0; - SLLQueuePush_N(curr_sub_path->first_child, curr_sub_path->last_child, sub_child, next_sibling); - ++tree->node_count; - - // last node, insert file - if (n->next == 0) { - sub_child->src_file = src_file; - } - - // HACK: setup node list per thread for serialization step - U64 list_idx = tree->next_list_idx % tree->list_count; - SLLQueuePush_N(tree->node_lists[list_idx].first, tree->node_lists[list_idx].last, sub_child, next_order); - ++tree->next_list_idx; - } - - // descend to sub node - curr_sub_path = sub_child; - } - - scratch_end(scratch); -} - -internal U32 -rdib_idx_from_path_tree(RDIB_PathTree *tree, String8 path) -{ - Temp scratch = scratch_begin(0,0); - - // redirect to special nil string - if (path.size == 0) { - path = RDIB_PATH_TREE_NIL_STRING; - } - - // begin traverse from tree root - RDIB_PathTreeNode *curr_sub_path = tree->root; - - // split path & resolve dots - String8List sub_paths = str8_split_path(scratch.arena, path); - str8_path_list_resolve_dots_in_place(&sub_paths, path_style_from_str8(path)); - - for (String8Node *n = sub_paths.first; n != 0; n = n->next) { - // scan children sub-path match - RDIB_PathTreeNode *sub_child; - for (sub_child = curr_sub_path->first_child; sub_child != 0; sub_child = sub_child->next_sibling) { - if (str8_match(sub_child->sub_path, n->string, 0)) { - break; - } - } - - // found match? - if (sub_child == 0) { - break; - } - - // descend to sub directory - curr_sub_path = sub_child; - } - - // did we find source file? - U64 idx = 0; - if (curr_sub_path != 0 && curr_sub_path->src_file != 0) { - idx = curr_sub_path->node_idx; - } else { - Assert(!"unable to find source file path"); - } - - scratch_end(scratch); - return safe_cast_u32(idx); -} - - -//////////////////////////////// - -internal U64 -rdib_string_map_hash(String8 string) -{ - XXH64_hash_t hash64 = XXH3_64bits(string.str, string.size); - return hash64; -} - -internal RDIB_StringMap * -rdib_init_string_map(Arena *arena, U64 cap) -{ - RDIB_StringMap *string_map = push_array(arena, RDIB_StringMap, 1); - string_map->cap = (U64)((F64)cap * 1.3); - string_map->buckets = push_array(arena, RDIB_StringMapBucket *, string_map->cap); - return string_map; -} - -internal U32 -rdib_idx_from_string_map(RDIB_StringMap *string_map, String8 string) -{ - U64 hash = rdib_string_map_hash(string); - U64 best_idx = hash % string_map->cap; - U64 idx = best_idx; - - do { - RDIB_StringMapBucket *bucket = string_map->buckets[idx]; - - if (bucket == 0) { - break; - } - - if (str8_match(bucket->string, string, 0)) { - return safe_cast_u32(bucket->idx); - } - - idx = (idx + 1) % string_map->cap; - } while (idx != best_idx); - - Assert(!"incomplete string map"); - return max_U32; -} - -internal RDIB_StringMapBucket * -rdib_string_map_insert_or_update(RDIB_StringMapBucket **buckets, U64 cap, U64 hash, RDIB_StringMapBucket *new_bucket, RDIB_StringMapUpdateFunc *update_func) -{ - RDIB_StringMapBucket *result = 0; - B32 was_bucket_inserted_or_updated = 0; - - U64 best_idx = hash % cap; - U64 idx = best_idx; - - do { - retry:; - RDIB_StringMapBucket *curr_bucket = buckets[idx]; - - if (curr_bucket == 0) { - RDIB_StringMapBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - was_bucket_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } else if (str8_match(curr_bucket->string, new_bucket->string, 0)) { - if (curr_bucket->sorter.v <= new_bucket->sorter.v) { - if (new_bucket->raw_values != 0) { - void_node_concat_atomic(&curr_bucket->raw_values, new_bucket->raw_values); - new_bucket->raw_values = 0; - } - - // recycle bucket - result = new_bucket; - - // don't need to update, more recent leaf is in the bucket - was_bucket_inserted_or_updated = 1; - - break; - } - - if (new_bucket->raw_values) { - new_bucket->raw_values->next = buckets[idx]->raw_values; - } - - RDIB_StringMapBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - - // recycle bucket - result = compare_bucket; - - // new bucket is in the hash table, exit - was_bucket_inserted_or_updated = 1; - break; - } - - if (new_bucket->raw_values) { - new_bucket->raw_values->next = 0; - } - - // another thread took the bucket... - goto retry; - } - - // advance - idx = (idx + 1) % cap; - } while (idx != best_idx); - - // are there enough free buckets? - Assert(was_bucket_inserted_or_updated); - - return result; -} - -internal void -rdib_string_map_insert_item(Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string, void *value) -{ - // do we have a free bucket? - RDIB_StringMapBucket **bucket = &task->free_buckets[task_id]; - if (*bucket == 0) { - *bucket = push_array(arena, RDIB_StringMapBucket, 1); - } - - // fill out bucket - (*bucket)->string = string; - (*bucket)->raw_values = value; - (*bucket)->sorter.hi = safe_cast_u32(task_id); - (*bucket)->sorter.lo = safe_cast_u32(task->element_indices[task_id]); - - // insert bucket into string map - U64 hash = rdib_string_map_hash(string); - RDIB_StringMapBucket *insert_or_update = rdib_string_map_insert_or_update(task->string_map->buckets, task->string_map->cap, hash, *bucket, task->string_map_update_func); - - // advance element index - if (insert_or_update != *bucket) { - ++task->element_indices[task_id]; - } - - // recycle bucket - *bucket = insert_or_update; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_count_extant_buckets_string_map_task) -{ - ProfBeginFunction(); - RDIB_GetExtantBucketsStringMapTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - if (task->string_map->buckets[bucket_idx] != 0) { - task->counts[task_id] += 1; - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_get_extant_buckets_string_map_task) -{ - ProfBeginFunction(); - RDIB_GetExtantBucketsStringMapTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min, cursor = task->offsets[task_id]; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_StringMapBucket *bucket = task->string_map->buckets[bucket_idx]; - if (bucket != 0) { - task->result[cursor] = bucket; - ++cursor; - } - } - ProfEnd(); -} - -internal RDIB_StringMapBucket ** -rdib_extant_buckets_from_string_map(TP_Context *tp, Arena *arena, RDIB_StringMap *string_map, U64 *bucket_count_out) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - RDIB_GetExtantBucketsStringMapTask task = {0}; - task.string_map = string_map; - - ProfBegin("Count Extant Buckets"); - task.counts = push_array(scratch.arena, U64, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, string_map->cap, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_count_extant_buckets_string_map_task, &task); - ProfEnd(); - - *bucket_count_out = sum_array_u64(tp->worker_count, task.counts); - - ProfBegin("Copy Extant Buckets"); - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - task.result = push_array(arena, RDIB_StringMapBucket *, *bucket_count_out); - tp_for_parallel(tp, 0, tp->worker_count, rdib_get_extant_buckets_string_map_task, &task); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return task.result; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_string_map_bucket_chunk_idx_histo_task) -{ - ProfBeginFunction(); - RDIB_StringMapRadixSort *task = raw_task; - Temp scratch = scratch_begin(0,0); - - U32 *range_histo = push_array(scratch.arena, U32, task->chunk_idx_opl); - - // count items per sorter - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_StringMapBucket *bucket = task->src[bucket_idx]; - U64 chunk_idx = bucket->sorter.hi; - Assert(chunk_idx < task->chunk_idx_opl); - ++range_histo[chunk_idx]; - } - - // add in per thread sorter counts - for (U64 i = 0; i < task->chunk_idx_opl; ++i) { - ins_atomic_u32_add_eval(&task->chunk_histo[i], range_histo[i]); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_string_map_radix_sort_chunk_idx_task) -{ - ProfBeginFunction(); - RDIB_StringMapRadixSort *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_StringMapBucket *bucket = task->src[bucket_idx]; - U32 chunk_idx = bucket->sorter.hi; - U32 dst_idx = ins_atomic_u32_inc_eval(&task->chunk_offsets[chunk_idx]) - 1; - task->dst[dst_idx] = bucket; - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_string_map_radix_sort_element_idx_task) -{ - ProfBeginFunction(); - RDIB_StringMapRadixSort *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - U64 range_lo = task->chunk_offsets[chunk_idx]; - U64 range_hi = task->chunk_offsets[chunk_idx] + task->chunk_histo[chunk_idx]; - - ProfBegin("Zero out Histogram"); - U32 histo_bot[1 << 10]; MemoryZeroArray(histo_bot); - U32 histo_mid[1 << 11]; MemoryZeroArray(histo_mid); - U32 histo_top[1 << 11]; MemoryZeroArray(histo_top); - ProfEnd(); - - ProfBegin("Element Histogram"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_StringMapBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit_bot = (elem_idx >> 0) % ArrayCount(histo_bot); - U32 digit_mid = (elem_idx >> 10) % ArrayCount(histo_mid); - U32 digit_top = (elem_idx >> 21) % ArrayCount(histo_top); - histo_bot[digit_bot] += 1; - histo_mid[digit_mid] += 1; - histo_top[digit_top] += 1; - } - ProfEnd(); - - ProfBegin("Histogram Counts -> Offsets"); - counts_to_offsets_array_u32(ArrayCount(histo_bot), &histo_bot[0]); - counts_to_offsets_array_u32(ArrayCount(histo_mid), &histo_mid[0]); - counts_to_offsets_array_u32(ArrayCount(histo_top), &histo_top[0]); - ProfEnd(); - - ProfBegin("Sort Bot"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_StringMapBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 0) % ArrayCount(histo_bot); - U32 src_idx = range_lo + histo_bot[digit]++; - task->src[src_idx] = elem; - } - ProfEnd(); - - ProfBegin("Sort Mid"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_StringMapBucket *elem = task->src[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 10) % ArrayCount(histo_mid); - U32 dst_idx = range_lo + histo_mid[digit]++; - task->dst[dst_idx] = elem; - } - ProfEnd(); - - ProfBegin("Sort Top"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_StringMapBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 21) % ArrayCount(histo_top); - U32 src_idx = range_lo + histo_top[digit]++; - task->src[src_idx] = elem; - } - ProfEnd(); - } - - ProfEnd(); -} - -internal void -rdib_string_map_sort_buckets(TP_Context *tp, RDIB_StringMapBucket **buckets, U64 bucket_count, U64 chunk_idx_opl) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - RDIB_StringMapRadixSort task = {0}; - task.chunk_idx_opl = chunk_idx_opl; - task.ranges = tp_divide_work(scratch.arena, bucket_count, tp->worker_count); - task.src = buckets; - task.dst = push_array_no_zero(scratch.arena, RDIB_StringMapBucket *, bucket_count); - - ProfBegin("Chunk Index Histogram"); - task.chunk_histo = push_array(scratch.arena, U32, chunk_idx_opl); - tp_for_parallel(tp, 0, tp->worker_count, rdib_string_map_bucket_chunk_idx_histo_task, &task); - ProfEnd(); - - // sort correctness check on chunk index -#if 0 - for (U64 i = 1; i < bucket_count; ++i) { - RDIB_StringMapBucket *prev = buckets[i - 1]; - RDIB_StringMapBucket *curr = buckets[i + 0]; - U32 prev_chunk_idx = prev->sorter.hi; - U32 curr_chunk_idx = curr->sorter.hi; - AssertAlways(prev_chunk_idx <= curr_chunk_idx); - } -#endif - - ProfBegin("Chunk Histo -> Offsets"); - task.chunk_offsets = offsets_from_counts_array_u32(scratch.arena, task.chunk_histo, chunk_idx_opl); - ProfEnd(); - - ProfBegin("Sort on chunk index"); - tp_for_parallel(tp, 0, tp->worker_count, rdib_string_map_radix_sort_chunk_idx_task, &task); - ProfEnd(); - - ProfBegin("Sort on element index"); - task.chunk_offsets = offsets_from_counts_array_u32(scratch.arena, task.chunk_histo, chunk_idx_opl); - task.ranges = tp_divide_work(scratch.arena, chunk_idx_opl, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_string_map_radix_sort_element_idx_task, &task); - ProfEnd(); - - // sort correctness check on element index -#if 0 - { - for (U64 i = 1; i < bucket_count; ++i) { - RDIB_StringMapBucket *prev = buckets[i - 1]; - RDIB_StringMapBucket *curr = buckets[i + 0]; - U32 prev_chunk_idx = prev->sorter.hi; - U32 curr_chunk_idx = curr->sorter.hi; - if (prev_chunk_idx == curr_chunk_idx) { - U32 prev_elem_idx = prev->sorter.lo; - U32 curr_elem_idx = curr->sorter.lo; - AssertAlways(prev_elem_idx < curr_elem_idx); - } - } - } -#endif - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_string_map_assign_indices(RDIB_StringMapBucket **buckets, U64 bucket_count) -{ - ProfBeginFunction(); - for (U64 idx = 0; idx < bucket_count; ++idx) { - buckets[idx]->idx = idx; - } - ProfEnd(); -} - -// Specialized Inserts - -internal void -rdib_string_map_insert_string_table_item(Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string) -{ - rdib_string_map_insert_item(arena, task, task_id, string, 0); -} - -internal void -rdib_string_map_insert_name_map_item(Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string, VoidNode *node) -{ - rdib_string_map_insert_item(arena, task, task_id, string, node); -} - -internal -RDIB_STRING_MAP_UPDATE_FUNC(rdib_string_map_update_null) -{ - // null update -} - -internal -RDIB_STRING_MAP_UPDATE_FUNC(rdib_string_map_update_concat_void_list_atomic) -{ - node->next = ins_atomic_ptr_eval_assign(head, node); -} - -//////////////////////////////// -// String Table Tasks - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_sects_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 sect_idx = task->ranges[task_id].min; sect_idx < task->ranges[task_id].max; ++sect_idx) { - RDIB_BinarySection *sect = &task->sects[sect_idx]; - rdib_string_map_insert_string_table_item(arena, task, task_id, sect->name); - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_units_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_UnitChunk *chunk = task->units[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Unit *unit = &chunk->v[i]; - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->unit_name); - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->compiler_name); - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->source_file); - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->object_file); - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->archive_file); - rdib_string_map_insert_string_table_item(arena, task, task_id, unit->build_path); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_source_files_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = task->src_file_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_SourceFile *src_file = chunk->v + i; - rdib_string_map_insert_string_table_item(arena, task, task_id, src_file->normal_full_path); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_vars_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->vars[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Variable *var = &chunk->v[i]; - rdib_string_map_insert_string_table_item(arena, task, task_id, var->name); - rdib_string_map_insert_string_table_item(arena, task, task_id, var->link_name); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_procs_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ProcedureChunk *chunk = task->procs[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Procedure *proc = &chunk->v[i]; - rdib_string_map_insert_string_table_item(arena, task, task_id, proc->name); - rdib_string_map_insert_string_table_item(arena, task, task_id, proc->link_name); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_inline_sites_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_InlineSiteChunk *chunk = task->inline_sites[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_InlineSite *inline_site = &chunk->v[i]; - rdib_string_map_insert_string_table_item(arena, task, task_id, inline_site->name); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_udt_members_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_UDTMemberChunk *chunk = task->udt_members[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_UDTMember *udt_member = &chunk->v[i]; - switch (udt_member->kind) { - case RDI_MemberKind_NULL : break; - case RDI_MemberKind_DataField : rdib_string_map_insert_string_table_item(arena, task, task_id, udt_member->data_field.name ); break; - case RDI_MemberKind_StaticData : rdib_string_map_insert_string_table_item(arena, task, task_id, udt_member->static_data.name); break; - case RDI_MemberKind_Method : rdib_string_map_insert_string_table_item(arena, task, task_id, udt_member->method.name ); break; - case RDI_MemberKind_NestedType : rdib_string_map_insert_string_table_item(arena, task, task_id, udt_member->nested_type.name); break; - case RDI_MemberKind_Base : break; - case RDI_MemberKind_VirtualBase : break; - //case RDI_MemberKind_Enumerate : rdib_string_map_insert_string_table_item(arena, task, task_id, udt_member->enumerate.name); break; - case RDI_MemberKindExt_MemberListPointer: break; - default: InvalidPath; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_enum_members_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_UDTMemberChunk *chunk = task->enum_members[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - rdib_string_map_insert_string_table_item(arena, task, task_id, chunk->v[i].enumerate.name); - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_types_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_TypeChunk *chunk = task->types[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Type *type = &chunk->v[i]; - if (RDI_TypeKind_FirstBuiltIn <= type->kind && type->kind <= RDI_TypeKind_LastBuiltIn) { - rdib_string_map_insert_string_table_item(arena, task, task_id, type->builtin.name); - } else if (RDI_IsUserDefinedType(type->kind)) { - rdib_string_map_insert_string_table_item(arena, task, task_id, type->udt.name); - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_collect_strings_path_nodes_task) -{ - ProfBeginFunction(); - RDIB_CollectStringsTask *task = raw_task; - for (RDIB_PathTreeNode *n = task->path_node_lists[task_id].first; n != 0; n = n->next_order) { - rdib_string_map_insert_string_table_item(arena, task, task_id, n->sub_path); - } - ProfEnd(); -} - -//////////////////////////////// -// Name Map Tasks - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_var_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->vars[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - for (U64 var_idx = 0; var_idx < chunk->count; ++var_idx) { - RDIB_Variable *n = &chunk->v[var_idx]; - nodes[var_idx].v = n; - rdib_string_map_insert_name_map_item(arena, task, task_id, n->name, &nodes[var_idx]); - } - } -} - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_var_link_name_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->vars[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - for (U64 var_idx = 0; var_idx < chunk->count; ++var_idx) { - RDIB_Variable *n = &chunk->v[var_idx]; - nodes[var_idx].v = n; - rdib_string_map_insert_name_map_item(arena, task, task_id, n->link_name, &nodes[var_idx]); - } - } -} - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_procedure_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ProcedureChunk *chunk = task->procs[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - for (U64 proc_idx = 0; proc_idx < chunk->count; ++proc_idx) { - RDIB_Procedure *n = &chunk->v[proc_idx]; - nodes[proc_idx].v = n; - rdib_string_map_insert_name_map_item(arena, task, task_id, n->name, &nodes[proc_idx]); - } - } -} - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_procedures_link_name_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ProcedureChunk *chunk = task->procs[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - for (U64 proc_idx = 0; proc_idx < chunk->count; ++proc_idx) { - RDIB_Procedure *n = &chunk->v[proc_idx]; - nodes[proc_idx].v = n; - rdib_string_map_insert_name_map_item(arena, task, task_id, n->link_name, &nodes[proc_idx]); - } - } -} - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_types_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_TypeChunk *chunk = task->types[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - VoidNode *node_cursor = nodes; - for (U64 type_idx = 0; type_idx < chunk->count; ++type_idx) { - RDIB_Type *type = &chunk->v[type_idx]; - node_cursor->v = type; - - if (RDI_IsUserDefinedType(type->kind)) { - rdib_string_map_insert_name_map_item(arena, task, task_id, type->udt.name, node_cursor); - ++node_cursor; - } - } - } -} - -internal -THREAD_POOL_TASK_FUNC(rdib_name_map_normal_paths_task) -{ - RDIB_CollectStringsTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = task->src_file_chunks[chunk_idx]; - VoidNode *nodes = push_array(arena, VoidNode, chunk->count); - VoidNode *node_cursor = nodes; - for (U64 i = 0; i < chunk->count; ++i, ++node_cursor) { - node_cursor->v = &chunk->v[i]; - rdib_string_map_insert_name_map_item(arena, task, task_id, chunk->v[i].normal_full_path, node_cursor); - } - } -} - -//////////////////////////////// -// Index Run Map - -internal U64 -rdib_index_run_hash(U32 count, U32 *idxs) -{ - XXH64_hash_t hash64 = XXH3_64bits(idxs, count * sizeof(idxs[0])); - return hash64; -} - -internal RDIB_IndexRunMap * -rdib_init_index_run_map(Arena *arena, U64 cap) -{ - ProfBeginFunction(); - RDIB_IndexRunMap *map = push_array(arena, RDIB_IndexRunMap, 1); - map->cap = cap; - map->buckets = push_array(arena, RDIB_IndexRunBucket *, cap); - ProfEnd(); - return map; -} - -internal RDIB_IndexRunBucket * -rdib_index_run_map_insert_or_update(Arena *arena, RDIB_IndexRunBucket **buckets, U64 cap, U64 hash, RDIB_IndexRunBucket *new_bucket, U64 *bucket_idx_out) -{ - B32 was_bucket_inserted_or_updated = 0; - - RDIB_IndexRunBucket *result = 0; - - U64 best_idx = hash % cap; - U64 idx = best_idx; - - do { - retry:; - RDIB_IndexRunBucket *curr_bucket = buckets[idx]; - - if (curr_bucket == 0) { - RDIB_IndexRunBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - - if (compare_bucket == curr_bucket) { - // success, bucket was inserted - was_bucket_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } else if (u32_array_compare(curr_bucket->indices, new_bucket->indices)) { - if (curr_bucket->sorter.v <= new_bucket->sorter.v) { - // recycle bucket - result = new_bucket; - - // don't need to update, more recent leaf is in the bucket - was_bucket_inserted_or_updated = 1; - break; - } - - RDIB_IndexRunBucket *compare_bucket = ins_atomic_ptr_eval_cond_assign(&buckets[idx], new_bucket, curr_bucket); - if (compare_bucket == curr_bucket) { - // recycle bucket - result = compare_bucket; - - // new bucket is in the hash table, exit - was_bucket_inserted_or_updated = 1; - break; - } - - // another thread took the bucket... - goto retry; - } - - // advance - idx = (idx + 1) % cap; - } while (idx != best_idx); - - // are there enough free buckets? - Assert(was_bucket_inserted_or_updated); - - // output bucket index - *bucket_idx_out = idx; - - return result; -} - -internal U32 -rdib_idx_run_from_bucket_idx(RDIB_IndexRunMap *map, U64 bucket_idx) -{ - RDIB_IndexRunBucket *bucket = map->buckets[bucket_idx]; - U32 idx_run32 = safe_cast_u32(bucket->index_in_output_array); - return idx_run32; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_count_extant_buckets_index_run_map_task) -{ - ProfBeginFunction(); - RDIB_GetExtantBucketsIndexRunMapTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - if (task->idx_run_map->buckets[bucket_idx] != 0) { - task->counts[task_id] += 1; - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_get_extant_buckets_index_run_map_task) -{ - ProfBeginFunction(); - RDIB_GetExtantBucketsIndexRunMapTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min, cursor = task->offsets[task_id]; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_IndexRunBucket *bucket = task->idx_run_map->buckets[bucket_idx]; - if (bucket != 0) { - task->result[cursor] = bucket; - ++cursor; - } - } - ProfEnd(); -} - -internal RDIB_IndexRunBucket ** -rdib_extant_buckets_from_index_run_map(TP_Context *tp, Arena *arena, RDIB_IndexRunMap *idx_run_map, U64 *bucket_count_out) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - RDIB_GetExtantBucketsIndexRunMapTask task = {0}; - task.idx_run_map = idx_run_map; - - ProfBegin("Count Extant Buckets"); - task.counts = push_array(scratch.arena, U64, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, idx_run_map->cap, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_count_extant_buckets_index_run_map_task, &task); - ProfEnd(); - - *bucket_count_out = sum_array_u64(tp->worker_count, task.counts); - - ProfBegin("Copy Extant Buckets"); - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - task.result = push_array(arena, RDIB_IndexRunBucket *, *bucket_count_out); - tp_for_parallel(tp, 0, tp->worker_count, rdib_get_extant_buckets_index_run_map_task, &task); - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return task.result; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_index_run_map_bucket_chunk_idx_histo_task) -{ - ProfBeginFunction(); - RDIB_IndexRunMapRadixSort *task = raw_task; - Temp scratch = scratch_begin(0,0); - - U32 *range_histo = push_array(scratch.arena, U32, task->chunk_idx_opl); - - // count items per sorter - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_IndexRunBucket *bucket = task->src[bucket_idx]; - U32 chunk_idx = bucket->sorter.hi; - Assert(chunk_idx < task->chunk_idx_opl); - ++range_histo[chunk_idx]; - } - - // add in per thread sorter counts - for (U64 i = 0; i < task->chunk_idx_opl; ++i) { - ins_atomic_u32_add_eval(&task->chunk_histo[i], range_histo[i]); - } - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_index_run_map_radix_sort_chunk_idx_task) -{ - ProfBeginFunction(); - RDIB_IndexRunMapRadixSort *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_IndexRunBucket *bucket = task->src[bucket_idx]; - U32 chunk_idx = bucket->sorter.hi; - U32 dst_idx = ins_atomic_u32_inc_eval(&task->chunk_offsets[chunk_idx]) - 1; - task->dst[dst_idx] = bucket; - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_index_run_map_radix_sort_element_idx_task) -{ - ProfBeginFunction(); - RDIB_IndexRunMapRadixSort *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - U64 range_lo = task->chunk_offsets[chunk_idx]; - U64 range_hi = task->chunk_offsets[chunk_idx] + task->chunk_histo[chunk_idx]; - - ProfBegin("Zero out Histogram"); - U32 histo_bot[1 << 10]; MemoryZeroArray(histo_bot); - U32 histo_mid[1 << 11]; MemoryZeroArray(histo_mid); - U32 histo_top[1 << 11]; MemoryZeroArray(histo_top); - ProfEnd(); - - ProfBegin("Element Histogram"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_IndexRunBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit_bot = (elem_idx >> 0) % ArrayCount(histo_bot); - U32 digit_mid = (elem_idx >> 10) % ArrayCount(histo_mid); - U32 digit_top = (elem_idx >> 21) % ArrayCount(histo_top); - histo_bot[digit_bot] += 1; - histo_mid[digit_mid] += 1; - histo_top[digit_top] += 1; - } - ProfEnd(); - - ProfBegin("Histogram Counts -> Offsets"); - counts_to_offsets_array_u32(ArrayCount(histo_bot), &histo_bot[0]); - counts_to_offsets_array_u32(ArrayCount(histo_mid), &histo_mid[0]); - counts_to_offsets_array_u32(ArrayCount(histo_top), &histo_top[0]); - ProfEnd(); - - ProfBegin("Sort Bot"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_IndexRunBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 0) % ArrayCount(histo_bot); - U32 src_idx = range_lo + histo_bot[digit]++; - task->src[src_idx] = elem; - } - ProfEnd(); - - ProfBegin("Sort Mid"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_IndexRunBucket *elem = task->src[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 10) % ArrayCount(histo_mid); - U32 dst_idx = range_lo + histo_mid[digit]++; - task->dst[dst_idx] = elem; - } - ProfEnd(); - - ProfBegin("Sort Top"); - for (U64 i = range_lo; i < range_hi; ++i) { - RDIB_IndexRunBucket *elem = task->dst[i]; - U32 elem_idx = elem->sorter.lo; - U32 digit = (elem_idx >> 21) % ArrayCount(histo_top); - U32 src_idx = range_lo + histo_top[digit]++; - task->src[src_idx] = elem; - } - ProfEnd(); - } - - ProfEnd(); -} - -internal void -rdib_index_run_map_sort_buckets(TP_Context *tp, RDIB_IndexRunBucket **buckets, U64 bucket_count, U64 chunk_idx_opl) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - RDIB_IndexRunMapRadixSort task = {0}; - task.chunk_idx_opl = chunk_idx_opl; - task.ranges = tp_divide_work(scratch.arena, bucket_count, tp->worker_count); - task.src = buckets; - task.dst = push_array_no_zero(scratch.arena, RDIB_IndexRunBucket *, bucket_count); - - ProfBegin("Chunk Index Histogram"); - task.chunk_histo = push_array(scratch.arena, U32, chunk_idx_opl); - tp_for_parallel(tp, 0, tp->worker_count, rdib_index_run_map_bucket_chunk_idx_histo_task, &task); - ProfEnd(); - - // sort correctness check on chunk index -#if 0 - for (U64 i = 1; i < bucket_count; ++i) { - RDIB_StringMapBucket *prev = buckets[i - 1]; - RDIB_StringMapBucket *curr = buckets[i + 0]; - U32 prev_chunk_idx = RDIB_StringMap_ChunkIdx32FromSorter(prev->sorter); - U32 curr_chunk_idx = RDIB_StringMap_ChunkIdx32FromSorter(curr->sorter); - AssertAlways(prev_chunk_idx <= curr_chunk_idx); - } -#endif - - ProfBegin("Chunk Histo -> Offsets"); - task.chunk_offsets = offsets_from_counts_array_u32(scratch.arena, task.chunk_histo, chunk_idx_opl); - ProfEnd(); - - ProfBegin("Sort on chunk index"); - tp_for_parallel(tp, 0, tp->worker_count, rdib_index_run_map_radix_sort_chunk_idx_task, &task); - ProfEnd(); - - ProfBegin("Sort on element index"); - task.chunk_offsets = offsets_from_counts_array_u32(scratch.arena, task.chunk_histo, chunk_idx_opl); - task.ranges = tp_divide_work(scratch.arena, chunk_idx_opl, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_index_run_map_radix_sort_element_idx_task, &task); - ProfEnd(); - - // sort correctness check on element index -#if 0 - { - for (U64 i = 1; i < bucket_count; ++i) { - RDIB_IndexRunBucket *prev = buckets[i - 1]; - RDIB_IndexRunBucket *curr = buckets[i + 0]; - U32 prev_chunk_idx = prev->sorter.hi; - U32 curr_chunk_idx = curr->sorter.hi; - if (prev_chunk_idx == curr_chunk_idx) { - U32 prev_elem_idx = prev->sorter.lo; - U32 curr_elem_idx = curr->sorter.lo; - AssertAlways(prev_elem_idx < curr_elem_idx); - } - } - } -#endif - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_index_run_map_assign_indices(RDIB_IndexRunBucket **buckets, U64 bucket_count) -{ - ProfBeginFunction(); - for (U64 bucket_idx = 0, cursor = 0; bucket_idx < bucket_count; ++bucket_idx) { - buckets[bucket_idx]->index_in_output_array = cursor; - cursor += buckets[bucket_idx]->indices.count; - } - ProfEnd(); -} - -// index run map specialization - -internal U64 -rdib_index_run_map_insert_item(Arena *arena, RDIB_BuildIndexRunsTask *task, U64 worker_id, U64 item_idx, U64 count, U32 *idxs) -{ - Assert(item_idx < max_U32); - - // do we have a free bucket? - RDIB_IndexRunBucket *bucket = task->free_buckets[worker_id]; - if (bucket == 0) { - bucket = push_array(arena, RDIB_IndexRunBucket, 1); - } - - // fill out bucket - bucket->indices.count = count; - bucket->indices.v = idxs; - bucket->sorter.v = task->sorter_idx << 32 | (U32)item_idx; - - // insert bucket - U64 hash = rdib_index_run_hash(count, idxs); - U64 bucket_idx = max_U64; - RDIB_IndexRunBucket *free_bucket = rdib_index_run_map_insert_or_update(arena, - task->idx_run_map->buckets, - task->idx_run_map->cap, - hash, - bucket, - &bucket_idx); - Assert(bucket_idx != max_U64); - - // recycle bucket - task->free_buckets[worker_id] = free_bucket; - - return bucket_idx; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_idx_runs_params_task) -{ - ProfBeginFunction(); - - RDIB_BuildIndexRunsTask *task = raw_task; - RDIB_TypeChunk *chunk = task->type_chunks[task_id]; - - for (RDIB_Type *type = &chunk->v[0], *opl = chunk->v + chunk->count; type < opl; ++type) { - if (type->kind == RDI_TypeKind_Function) { - RDIB_Type *params = type->func.params_type; - - // pack params - U64 type_index_count = params->params.count; - U32 *type_indices = push_array_no_zero(arena, U32, type_index_count); - for (U64 param_idx = 0; param_idx < params->params.count; ++param_idx) { - type_indices[param_idx] = rdib_idx_from_type(params->params.types[param_idx]); - } - - // insert type indices - U32 func_type_idx = rdib_idx_from_type(type); - type->func.param_idx_run_bucket_idx = rdib_index_run_map_insert_item(arena, task, worker_id, func_type_idx, type_index_count, type_indices); - } else if (type->kind == RDI_TypeKind_Method) { - RDIB_Type *params = type->method.params_type; - - U64 type_index_count = params->params.count + 1; - U32 *type_indices = push_array_no_zero(arena, U32, type_index_count); - U64 type_idx_cursor = 0; - - // pack 'this' type - type_indices[type_idx_cursor++] = rdib_idx_from_type(type->method.this_type); - - // pack params - for (U64 param_idx = 0; param_idx < params->params.count; ++param_idx) { - type_indices[type_idx_cursor++] = rdib_idx_from_type(params->params.types[param_idx]); - } - - // insert type indices - U32 method_type_idx = rdib_idx_from_type(type); - type->method.param_idx_run_bucket_idx = rdib_index_run_map_insert_item(arena, task, worker_id, method_type_idx, type_index_count, type_indices); - } else if (type->kind == RDI_TypeKindExt_StaticMethod) { - RDIB_Type *params = type->static_method.params_type; - - U64 type_index_count = params->params.count + 1; - U32 *type_indices = push_array_no_zero(arena, U32, type_index_count); - U64 type_idx_cursor = 0; - - // static methods don't have 'this' - type_indices[type_idx_cursor++] = 0; - - // pack params - for (U64 param_idx = 0; param_idx < params->params.count; ++param_idx) { - type_indices[type_idx_cursor++] = rdib_idx_from_type(params->params.types[param_idx]); - } - - // insert type indices - U32 static_method_type_idx = rdib_idx_from_type(type); - type->static_method.param_idx_run_bucket_idx = rdib_index_run_map_insert_item(arena, task, worker_id, static_method_type_idx, type_index_count, type_indices); - } - } - - ProfEnd(); -} - -internal U32 -rdib_idx_from_name_map_void_node(RDIB_BuildIndexRunsTask *task, VoidNode *node) -{ - U64 idx = 0; - switch (task->name_map_kind) { - case RDI_NameMapKind_NULL : break; - case RDI_NameMapKind_GlobalVariables : idx = rdib_idx_from_variable ((RDIB_Variable* ) node); break; - case RDI_NameMapKind_ThreadVariables : idx = rdib_idx_from_variable ((RDIB_Variable * ) node); break; - case RDI_NameMapKind_Procedures : idx = rdib_idx_from_procedure ((RDIB_Procedure * ) node); break; - case RDI_NameMapKind_Types : idx = rdib_idx_from_type ((RDIB_Type * ) node); break; - case RDI_NameMapKind_LinkNameProcedures: idx = rdib_idx_from_procedure ((RDIB_Procedure * ) node); break; - case RDI_NameMapKind_NormalSourcePaths : idx = rdib_idx_from_source_file((RDIB_SourceFile *) node); break; - default: InvalidPath; - } - U32 idx32 = safe_cast_u32(idx); - return idx32; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_idx_runs_name_map_buckets_task) -{ - ProfBeginFunction(); - - RDIB_BuildIndexRunsTask *task = raw_task; - - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_StringMapBucket *bucket = task->name_map_buckets[bucket_idx]; - U64 count = void_list_count_nodes(bucket->raw_values); - - if (count > 1) { - // build array of indices that point to name map respective arrays - U32 *idxs = push_array_no_zero(arena, U32, count); - { - U64 curr_idx = 0; - for (VoidNode *curr = bucket->raw_values; curr != 0; curr = curr->next, ++curr_idx) { - idxs[curr_idx] = rdib_idx_from_name_map_void_node(task, curr->v); - } - } - - // make index array deterministic - u32_array_sort(count, idxs); // TODO: we don't need to sort with one worker thread - - // :string_map_bucket_sorter_copy - U64 idx_run_bucket_idx = rdib_index_run_map_insert_item(arena, task, worker_id, bucket_idx, count, idxs); // TODO: fix `idx` leak when we insert same runs - - // fill out bucket - bucket->count = count; - bucket->idx_run_bucket_idx = idx_run_bucket_idx; - } if (count == 1) { - U32 match_idx = rdib_idx_from_name_map_void_node(task, bucket->raw_values->v); - - // fill out bucket - bucket->count = 1; - bucket->match_idx = match_idx; - } - } - - ProfEnd(); -} - -//////////////////////////////// - -#if 0 -internal U32 -rdib_idx_from_params(RDIB_IndexRunMap *map, RDIB_Type *params) -{ - Assert(params->kind == RDI_TypeKindExt_Params); - U32 idx = params->params.idx_run_bucket->index_in_output_array; - return idx; -} -#endif - -//////////////////////////////// -// Data Sections - -internal void -rdib_data_section_list_push_node(RDIB_DataSectionList *list, RDIB_DataSectionNode *node) -{ - SLLQueuePushCount(list, node); -} - -internal RDIB_DataSectionNode * -rdib_data_section_list_push(Arena *arena, RDIB_DataSectionList *list, RDIB_DataSection v) -{ - RDIB_DataSectionNode *node = push_array(arena, RDIB_DataSectionNode, 1); - node->v = v; - rdib_data_section_list_push_node(list, node); - return node; -} - -internal void -rdib_data_section_list_concat_in_place(RDIB_DataSectionList *list, RDIB_DataSectionList *to_concat) -{ - SLLConcatInPlace(list, to_concat); -} - -internal void -rdib_data_sections_from_top_level_info(Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_TopLevelInfo *src) -{ - ProfBeginFunction(); - - RDI_TopLevelInfo *dst = push_array(arena, RDI_TopLevelInfo, 1); - dst->arch = src->arch; - dst->exe_name_string_idx = rdib_idx_from_string_map(string_map, src->exe_name); - dst->exe_hash = src->exe_hash; - dst->voff_max = src->voff_max; - dst->producer_name_string_idx = rdib_idx_from_string_map(string_map, src->producer_string); - - RDIB_DataSection sect = { .tag = RDI_SectionKind_TopLevelInfo }; - str8_list_push(arena, §.data, str8_struct(dst)); - rdib_data_section_list_push(arena, sect_list, sect); - - ProfEnd(); -} - -internal void -rdib_data_sections_from_binary_sections(Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_BinarySection *binary_sects, U64 binary_sects_count) -{ - ProfBeginFunction(); - - RDI_BinarySection *dst_arr = push_array(arena, RDI_BinarySection, binary_sects_count); - - for (U64 sect_idx = 0; sect_idx < binary_sects_count; ++sect_idx) { - RDIB_BinarySection *src = &binary_sects[sect_idx]; - RDI_BinarySection *dst = &dst_arr[sect_idx]; - - dst->name_string_idx = rdib_idx_from_string_map(string_map, src->name); - dst->flags = src->flags; - dst->voff_first = src->voff_first; - dst->voff_opl = src->voff_opl; - dst->foff_first = src->foff_first; - dst->foff_opl = src->foff_opl; - } - - RDIB_DataSection sect = { .tag = RDI_SectionKind_BinarySections }; - str8_list_push(arena, §.data, str8_array(dst_arr, binary_sects_count)); - rdib_data_section_list_push(arena, sect_list, sect); - - ProfEnd(); -} - -internal void -rdib_data_sections_from_units(Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - RDIB_PathTree *path_tree, - U64 total_unit_count, - U64 unit_chunk_count, - RDIB_UnitChunk **unit_chunks) -{ - ProfBeginFunction(); - - RDI_Unit *dst_arr = push_array(arena, RDI_Unit, total_unit_count); - for (U64 chunk_idx = 0; chunk_idx < unit_chunk_count; chunk_idx += 1) { - RDIB_UnitChunk *chunk = unit_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; i += 1) { - RDIB_Unit *src = &chunk->v[i]; - U64 unit_idx = rdib_idx_from_unit(src); - RDI_Unit *dst = &dst_arr[unit_idx]; - dst->unit_name_string_idx = rdib_idx_from_string_map(string_map, src->unit_name); - dst->compiler_name_string_idx = rdib_idx_from_string_map(string_map, src->compiler_name); - dst->source_file_path_node = rdib_idx_from_path_tree(path_tree, src->source_file); - dst->object_file_path_node = rdib_idx_from_path_tree(path_tree, src->object_file); - dst->archive_file_path_node = rdib_idx_from_path_tree(path_tree, src->archive_file); - dst->build_path_node = rdib_idx_from_path_tree(path_tree, src->build_path); - dst->language = src->language; - dst->line_table_idx = src->line_table->output_array_idx; - } - } - - RDIB_DataSection sect = { .tag = RDI_SectionKind_Units }; - str8_list_push(arena, §.data, str8_array(dst_arr, total_unit_count)); - rdib_data_section_list_push(arena, sect_list, sect); - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_vmap_count_ranges_unit_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_UnitChunk *chunk = task->unit_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Unit *unit = &chunk->v[i]; - task->counts[task_id] += unit->virt_range_count; - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_vmap_count_ranges_gvar_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->gvar_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Variable *var = &chunk->v[i]; - for (RDIB_LocationNode *loc_n = var->locations.first; loc_n != 0; loc_n = loc_n->next) { - task->counts[task_id] += loc_n->v.ranges.count; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_vmap_count_ranges_scope_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ScopeChunk *chunk = task->scope_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - task->counts[task_id] += chunk->v[i].ranges.count; - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_vmap_entries_unit_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - U64 range_cursor = task->offsets[task_id]; - U64 range_cursor_opl = task->offsets[task_id] + task->counts[task_id]; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_UnitChunk *chunk = task->unit_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Unit *unit = &chunk->v[i]; - for (Rng1U64 *range_ptr = unit->virt_ranges, *range_opl = unit->virt_ranges + unit->virt_range_count; - range_ptr < range_opl; ++range_ptr) { - Assert(range_cursor < range_cursor_opl); - Assert(range_ptr->min <= range_ptr->max); - - RDIB_VMapRange *vmap_range = task->vmap + range_cursor; - vmap_range->voff = range_ptr->min; - vmap_range->size = range_ptr->max - range_ptr->min; - vmap_range->idx = rdib_idx_from_unit(unit); - range_cursor += 1; - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_vmap_entries_gvar_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - - U64 range_cursor = task->offsets[task_id]; - U64 range_cursor_opl = task->offsets[task_id] + task->counts[task_id]; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->gvar_chunks[chunk_idx]; - for (U64 var_idx = 0; var_idx < chunk->count; ++var_idx) { - RDIB_Variable *var = &chunk->v[var_idx]; - for (RDIB_LocationNode *loc_n = var->locations.first; loc_n != 0; loc_n = loc_n->next) { - for (Rng1U64Node *range_n = loc_n->v.ranges.first; range_n != 0; range_n = range_n->next) { - Assert(range_cursor < range_cursor_opl); - Assert(range_n->v.min <= range_n->v.max); - U64 size = range_n->v.max - range_n->v.min; - - RDIB_VMapRange *vmap_range = task->vmap + range_cursor; - vmap_range->voff = range_n->v.min; - vmap_range->size = size; - vmap_range->idx = rdib_idx_from_variable(var); - range_cursor += 1; - } - } - } - } - - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_vmap_entries_scope_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - - U64 range_cursor = task->offsets[task_id]; - U64 range_cursor_opl = task->offsets[task_id] + task->counts[task_id]; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ScopeChunk *chunk = task->scope_chunks[chunk_idx]; - for (U64 scope_idx = 0; scope_idx < chunk->count; ++scope_idx) { - RDIB_Scope *scope = &chunk->v[scope_idx]; - for (Rng1U64Node *range_n = scope->ranges.first; range_n != 0; range_n = range_n->next) { - Assert(range_cursor < range_cursor_opl); - Assert(range_n->v.min <= range_n->v.max); - - RDIB_VMapRange *vmap_range = task->vmap + range_cursor; - vmap_range->voff = range_n->v.min; - vmap_range->size = range_n->v.max - range_n->v.min; - vmap_range->idx = rdib_idx_from_scope(scope); - range_cursor += 1; - } - } - } - - ProfEnd(); -} - -internal void -rdib_sort_procs_radix_32(RDIB_Procedure **v, U64 count) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - RDIB_Procedure **temp = push_array_no_zero(scratch.arena, RDIB_Procedure *, count); - RDIB_Procedure **src = v; - RDIB_Procedure **dst = temp; - - ProfBegin("Count Memzero"); - U32 count_8lo[256]; MemoryZeroArray(count_8lo); - U32 count_8hi[256]; MemoryZeroArray(count_8hi); - U32 count_16[1 << 16]; MemoryZeroArray(count_16); - ProfEnd(); - - ProfBegin("Histogram"); - for (U64 i = 0; i < count; i += 1) { - RDIB_Procedure *p = src[i]; - - U64 digit_8lo = (p->scope->ranges.first->v.min >> 0) % ArrayCount(count_8lo); - U64 digit_8hi = (p->scope->ranges.first->v.min >> 8) % ArrayCount(count_8hi); - U64 digit_16 = (p->scope->ranges.first->v.min >> 16) % ArrayCount(count_16); - - count_8lo[digit_8lo] += 1; - count_8hi[digit_8hi] += 1; - count_16[digit_16] += 1; - } - ProfEnd(); - - ProfBegin("Counts -> Offsets"); - counts_to_offsets_array_u32(ArrayCount(count_8lo), count_8lo); - counts_to_offsets_array_u32(ArrayCount(count_8hi), count_8hi); - counts_to_offsets_array_u32(ArrayCount(count_16), count_16 ); - ProfEnd(); - - ProfBegin("Order 8 Lo"); - for (U64 i = 0; i < count; i += 1) { - RDIB_Procedure *p = src[i]; - U64 digit = (p->scope->ranges.first->v.min >> 0) % ArrayCount(count_8lo); - dst[count_8lo[digit]++] = p; - } - ProfEnd(); - - ProfBegin("Order 8 Hi"); - for (U64 i = 0; i < count; i += 1) { - RDIB_Procedure *p = dst[i]; - U64 digit = (p->scope->ranges.first->v.min >> 8) % ArrayCount(count_8hi); - src[count_8hi[digit]++] = p; - } - ProfEnd(); - - ProfBegin("Order 16"); - for (U64 i = 0; i < count; i += 1) { - RDIB_Procedure *p = src[i]; - U64 digit = (p->scope->ranges.first->v.min >> 16) % ArrayCount(count_16); - dst[count_16[digit]++] = p; - } - ProfEnd(); - - MemoryCopyTyped(src, dst, count); - - scratch_end(scratch); - ProfEnd(); -} - -internal String8List -rdib_data_from_vmap(Arena *arena, U64 range_count, RDIB_VMapRange *ranges) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - const U64 size_bit_count0 = 8; - const U64 size_bit_count1 = 8; - const U64 size_bit_count2 = 16; - - const U64 voff_bit_count0 = 11; - const U64 voff_bit_count1 = 11; - const U64 voff_bit_count2 = 10; - - ProfBegin("Push shared buffer"); - U64 radix_memory_size = sizeof(RDIB_VMapRange) * range_count + - sizeof(U32) * ((1 << size_bit_count0) + (1 << size_bit_count1) + (1 << size_bit_count2)) + - sizeof(U32) * ((1 << voff_bit_count0) + (1 << voff_bit_count1) + (1 << voff_bit_count2)); - U8 *radix_memory = push_array_no_zero(arena, U8, radix_memory_size); - ProfEnd(); - - // TODO: windows caps images at 4GiB so we use 32-bit radix sort, but on linux - // images can have > 4GiB and we need to detect when vmap uses upper 32bits - // in voffs do a 64-bit radix sort. - ProfBegin("Sort"); - { - RDIB_VMapRange *src = ranges; - RDIB_VMapRange *dst = (RDIB_VMapRange *)radix_memory; - - U32 *size_count0 = (U32 *)(dst + range_count); - U32 *size_count1 = size_count0 + (1 << size_bit_count0); - U32 *size_count2 = size_count1 + (1 << size_bit_count1); - - U32 *voff_count0 = size_count2 + (1 << size_bit_count2); - U32 *voff_count1 = voff_count0 + (1 << voff_bit_count0); - U32 *voff_count2 = voff_count1 + (1 << voff_bit_count1); - - // - // Build histogram - // - - MemoryZeroTyped(size_count0, 1 << size_bit_count0); - MemoryZeroTyped(size_count1, 1 << size_bit_count1); - MemoryZeroTyped(size_count2, 1 << size_bit_count2); - - MemoryZeroTyped(voff_count0, 1 << voff_bit_count0); - MemoryZeroTyped(voff_count1, 1 << voff_bit_count1); - MemoryZeroTyped(voff_count2, 1 << voff_bit_count2); - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange *r = src+i; - - U32 size_digit0 = (-r->size >> 0) % (1 << size_bit_count0); - U32 size_digit1 = (-r->size >> size_bit_count0) % (1 << size_bit_count1); - U32 size_digit2 = (-r->size >> (size_bit_count0 + size_bit_count1)) % (1 << size_bit_count2); - - U64 voff_digit0 = (r->voff >> 0) % (1 << voff_bit_count0); - U64 voff_digit1 = (r->voff >> voff_bit_count0) % (1 << voff_bit_count1); - U64 voff_digit2 = (r->voff >> (voff_bit_count0 + voff_bit_count1)) % (1 << voff_bit_count2); - - ++size_count0[size_digit0]; - ++size_count1[size_digit1]; - ++size_count2[size_digit2]; - - ++voff_count0[voff_digit0]; - ++voff_count1[voff_digit1]; - ++voff_count2[voff_digit2]; - } - - counts_to_offsets_array_u32((1 << size_bit_count0), size_count0); - counts_to_offsets_array_u32((1 << size_bit_count1), size_count1); - counts_to_offsets_array_u32((1 << size_bit_count2), size_count2); - - counts_to_offsets_array_u32((1 << voff_bit_count0), voff_count0); - counts_to_offsets_array_u32((1 << voff_bit_count1), voff_count1); - counts_to_offsets_array_u32((1 << voff_bit_count2), voff_count2); - - // - // Sort on range size (high to low) - // - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = src[i]; - U32 digit = (-r.size >> 0) % (1 << size_bit_count0); - dst[size_count0[digit]++] = r; - } - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = dst[i]; - U32 digit = (-r.size >> size_bit_count0) % (1 << size_bit_count1); - src[size_count1[digit]++] = r; - } - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = src[i]; - U32 digit = (-r.size >> (size_bit_count0 + size_bit_count1)) % (1 << size_bit_count2); - dst[size_count2[digit]++] = r; - } - - // - // Sort on range voff (low to high) - // - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = dst[i]; - U32 digit = (r.voff >> 0) % (1 << voff_bit_count0); - src[voff_count0[digit]++] = r; - } - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = src[i]; - U32 digit = (r.voff >> voff_bit_count0) % (1 << voff_bit_count1); - dst[voff_count1[digit]++] = r; - } - - for (U64 i = 0; i < range_count; ++i) { - RDIB_VMapRange r = dst[i]; - U32 digit = (r.voff >> (voff_bit_count0 + voff_bit_count1)) % (1 << voff_bit_count2); - src[voff_count2[digit]++] = r; - } - } - ProfEnd(); - - ProfBegin("Layout virtual map"); - String8List raw_vmap = {0}; - { - U64 default_vme_cap = 4096; - U64 vme_block_cap = radix_memory_size / sizeof(RDI_VMapEntry); - U64 vme_block_size = 0; - RDI_VMapEntry *vme_block = (RDI_VMapEntry *)radix_memory; - - // Recycle radix sort memory - str8_list_push(arena, &raw_vmap, str8_array(vme_block, vme_block_cap)); - -#define push_vme() (vme_block_size < raw_vmap.last->string.size/sizeof(vme_block[0])) ? &vme_block[vme_block_size++] : \ - (vme_block = push_array(arena, RDI_VMapEntry, vme_block_cap), \ - vme_block_cap = default_vme_cap, \ - vme_block_size = 0, \ - str8_list_push(arena, &raw_vmap, str8_array(vme_block, vme_block_cap)), \ - &vme_block[vme_block_size++]) - - struct Stack { - RDIB_VMapRange *range; - struct Stack *next; - }; - struct Stack *stack = 0; - struct Stack *free_stack = 0; - stack = push_array(scratch.arena, struct Stack, 1); - stack->range = &ranges[0]; - - for (U64 range_idx = 1; range_idx < range_count; ++range_idx) { - RDIB_VMapRange *r = ranges+range_idx; - RDIB_VMapRange *last_bot_range = stack->range; - RDIB_VMapRange *last_pop_range = 0; - while (stack->range->idx != 0) { - if (r->voff < stack->range->voff + stack->range->size) { - // Current range is a subset, keep building stack - break; - } - - struct Stack *frame = stack; - SLLStackPop(stack); - - // Did we reach bottom most range? - if (last_pop_range == 0) { - // Don't push VME for index with adjacent ranges - if (vme_block_size > 0 && vme_block[vme_block_size-1].idx != frame->range->idx) { - RDI_VMapEntry *vme = push_vme(); - vme->voff = frame->range->voff; - vme->idx = frame->range->idx; - } - } - - // Reopen parent range - // - // Does parent range extend past child range? - if (stack->range->voff + stack->range->size != frame->range->voff + frame->range->size && - // Does next range open on where stack range ends? - r->voff != frame->range->voff + frame->range->size) { - RDI_VMapEntry *vme = push_vme(); - vme->idx = stack->range->idx; - vme->voff = frame->range->voff + frame->range->size; - } - - last_pop_range = stack->range; - - // Recycle stack frame - SLLStackPush(free_stack, frame); - } - - // Prefix - if (last_pop_range == 0 && last_bot_range->voff != r->voff) { - RDI_VMapEntry* vme = push_vme(); - vme->voff = last_bot_range->voff; - vme->idx = last_bot_range->idx; - } - - struct Stack *frame; - if (free_stack == 0) { - frame = push_array(scratch.arena, struct Stack, 1); - } else { - frame = free_stack; - SLLStackPop(free_stack); - } - frame->range = r; - SLLStackPush(stack, frame); - } - - // Empty stack - { - RDIB_VMapRange *last_pop_range = 0; - while (stack->range->idx != 0) { - struct Stack *frame = stack; - SLLStackPop(stack); - - if (last_pop_range == 0) { - if (vme_block_size > 0 && vme_block[vme_block_size-1].idx != frame->range->idx) { - RDI_VMapEntry *vme = push_vme(); - vme->voff = frame->range->voff; - vme->idx = frame->range->idx; - } - } - - if (stack->range->voff + stack->range->size != frame->range->voff + frame->range->size) { - RDI_VMapEntry *vme = push_vme(); - vme->voff = frame->range->voff + frame->range->size; - vme->idx = stack->range->idx; - } - - last_pop_range = stack->range; - } - } - - // Subtract unsued vmap entries - U64 last_vme_unused = raw_vmap.last->string.size - sizeof(vme_block[0]) * vme_block_size; - raw_vmap.last->string.size -= last_vme_unused; - raw_vmap.total_size -= last_vme_unused; - -#undef push_vme - } - ProfEnd(); - - - // duplicate voff check -#if 0 - U64 prev = max_U64; - for (String8Node *node = raw_vmap.first; node != 0; node = node->next) { - RDI_VMapEntry *e = (RDI_VMapEntry*)node->string.str; - for (U64 i = 0, c = node->string.size / sizeof(RDI_VMapEntry); i < c; ++i) { - Assert(e[i].voff != prev); - prev = e[i].voff; - } - } -#endif - - scratch_end(scratch); - ProfEnd(); - return raw_vmap; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_scope_vmaps_task) -{ - ProfBeginFunction(); - RDIB_VMapBuilderTask *task = raw_task; - task->raw_vmaps[task_id] = rdib_data_from_vmap(arena, task->vmap_counts[task_id], task->vmaps[task_id]); - ProfEnd(); -} - -internal void -rdib_data_sections_from_unit_gvar_scope_vmaps(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - U64 unit_chunk_count, RDIB_UnitChunk **unit_chunks, - U64 gvar_chunk_count, RDIB_VariableChunk **gvar_chunks, - U64 scope_chunk_count, RDIB_ScopeChunk **scope_chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - RDIB_VMapBuilderTask task = {0}; - task.counts = push_array(scratch.arena, U64, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, unit_chunk_count, tp->worker_count); - - ProfBegin("Unit VMap"); - U64 unit_vmap_count; - RDIB_VMapRange *unit_vmaps; - { - ProfBegin("Count Ranges"); - MemoryZeroTyped(task.counts, tp->worker_count); - task.unit_chunks = unit_chunks; - task.ranges = tp_divide_work(scratch.arena, unit_chunk_count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_vmap_count_ranges_unit_task, &task); - ProfEnd(); - - ProfBegin("Push"); - unit_vmap_count = sum_array_u64(tp->worker_count, task.counts); - unit_vmaps = push_array_no_zero(scratch.arena, RDIB_VMapRange, unit_vmap_count); - ProfEnd(); - - ProfBegin("Fill"); - task.vmap = unit_vmaps; - task.unit_chunks = unit_chunks; - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_fill_vmap_entries_unit_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Global Variables"); - U64 gvar_vmap_count; - RDIB_VMapRange *gvar_vmaps; - { - ProfBegin("Count"); - MemoryZeroTyped(task.counts, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, gvar_chunk_count, tp->worker_count); - task.gvar_chunks = gvar_chunks; - tp_for_parallel(tp, 0, tp->worker_count, rdib_vmap_count_ranges_gvar_task, &task); - ProfEnd(); - - ProfBegin("Push"); - gvar_vmap_count = sum_array_u64(tp->worker_count, task.counts); - gvar_vmaps = push_array_no_zero(scratch.arena, RDIB_VMapRange, gvar_vmap_count); - ProfEnd(); - - ProfBegin("Fill"); - task.vmap = gvar_vmaps; - task.gvar_chunks = gvar_chunks; - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_fill_vmap_entries_gvar_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Scopes"); - U64 scope_vmap_count; - RDIB_VMapRange *scope_vmaps; - { - ProfBegin("Count"); - MemoryZeroTyped(task.counts, tp->worker_count); - task.ranges = tp_divide_work(scratch.arena, scope_chunk_count, tp->worker_count); - task.scope_chunks = scope_chunks; - tp_for_parallel(tp, 0, tp->worker_count, rdib_vmap_count_ranges_scope_task, &task); - ProfEnd(); - - ProfBegin("Push"); - scope_vmap_count = sum_array_u64(tp->worker_count, task.counts); - scope_vmaps = push_array_no_zero(scratch.arena, RDIB_VMapRange, scope_vmap_count); - ProfEnd(); - - ProfBegin("Fill"); - task.vmap = scope_vmaps; - task.scope_chunks = scope_chunks; - task.offsets = offsets_from_counts_array_u64(scratch.arena, task.counts, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_fill_vmap_entries_scope_task, &task); - ProfEnd(); - } - ProfEnd(); - - task.vmap_counts[0] = unit_vmap_count; - task.vmap_counts[1] = gvar_vmap_count; - task.vmap_counts[2] = scope_vmap_count; - task.vmaps[0] = unit_vmaps; - task.vmaps[1] = gvar_vmaps; - task.vmaps[2] = scope_vmaps; - - ProfBegin("Fill RDI VMaps"); - MemoryZeroArray(task.raw_vmaps); - tp_for_parallel(tp, arena, 3, rdib_fill_scope_vmaps_task, &task); - ProfEnd(); - - RDIB_DataSection unit_vmap_sect = { .tag = RDI_SectionKind_UnitVMap, .data = task.raw_vmaps[0] }; - RDIB_DataSection gvar_vmap_sect = { .tag = RDI_SectionKind_GlobalVMap, .data = task.raw_vmaps[1] }; - RDIB_DataSection scope_vmap_sect = { .tag = RDI_SectionKind_ScopeVMap, .data = task.raw_vmaps[2] }; - rdib_data_section_list_push(arena->v[0], sect_list, unit_vmap_sect ); - rdib_data_section_list_push(arena->v[0], sect_list, gvar_vmap_sect ); - rdib_data_section_list_push(arena->v[0], sect_list, scope_vmap_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_copy_string_data_task) -{ - RDIB_CopyStringDataTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_StringMapBucket *bucket = task->buckets[bucket_idx]; - U64 string_table_offset = task->string_table[bucket_idx]; - Assert(string_table_offset + bucket->string.size <= task->string_data_size); - MemoryCopy(task->string_data + string_table_offset, bucket->string.str, bucket->string.size); - } -} - -internal void -rdib_data_sections_from_string_map(TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMapBucket **buckets, U64 bucket_count) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - // assign string table offset for each bucket - U64 cursor = 0; - U32 *string_table = push_array_no_zero(arena, U32, bucket_count); - for (U64 bucket_idx = 0; bucket_idx < bucket_count; ++bucket_idx) { - string_table[bucket_idx] = cursor; - cursor += buckets[bucket_idx]->string.size; - } - - // populate string data buffer with bucket strings - RDIB_CopyStringDataTask task = {0}; - task.string_table = string_table; - task.string_data_size = cursor; - task.string_data = push_array_no_zero(arena, U8, task.string_data_size); - task.buckets = buckets; - task.ranges = tp_divide_work(scratch.arena, bucket_count, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_copy_string_data_task, &task); - - // fill out string table section - RDIB_DataSection string_table_sect = {0}; - string_table_sect.tag = RDI_SectionKind_StringTable; - str8_list_push(arena, &string_table_sect.data, str8((U8 *)task.string_table, sizeof(task.string_table[0]) * bucket_count)); - - // fill out string data section - RDIB_DataSection string_data_sect = { .tag = RDI_SectionKind_StringData }; - str8_list_push(arena, &string_data_sect.data, str8(task.string_data, task.string_data_size)); - - // push sections to list - rdib_data_section_list_push(arena, sect_list, string_table_sect); - rdib_data_section_list_push(arena, sect_list, string_data_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_idx_run_copy_task) -{ - RDIB_IdxRunCopyTask *task = raw_task; - for (U64 bucket_idx = task->ranges[task_id].min; bucket_idx < task->ranges[task_id].max; ++bucket_idx) { - RDIB_IndexRunBucket *bucket = task->buckets[bucket_idx]; - MemoryCopyTyped(&task->output_array[bucket->index_in_output_array], bucket->indices.v, bucket->indices.count); - } -} - -internal void -rdib_data_sections_from_index_runs(TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_IndexRunBucket **buckets, U64 bucket_count) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - ProfBegin("Count Indices"); - U64 total_index_count = 0; - for (U64 bucket_idx = 0; bucket_idx < bucket_count; ++bucket_idx) { - total_index_count += buckets[bucket_idx]->indices.count; - } - ProfEnd(); - - U32 *output_array = push_array_no_zero(arena, U32, total_index_count); - - RDIB_IdxRunCopyTask task = {0}; - task.buckets = buckets; - task.ranges = tp_divide_work(scratch.arena, bucket_count, tp->worker_count); - task.output_array = output_array; - tp_for_parallel(tp, 0, tp->worker_count, rdib_idx_run_copy_task, &task); - - RDIB_DataSection data_sect = { .tag = RDI_SectionKind_IndexRuns }; - str8_list_push(arena, &data_sect.data, str8_array(output_array, total_index_count)); - - rdib_data_section_list_push(arena, sect_list, data_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_file_path_nodes_task) -{ - ProfBeginFunction(); - RDIB_BuildFilePathNodesTask *task = raw_task; - RDIB_StringMap *string_map = task->string_map; - RDIB_PathTree *path_tree = task->path_tree; - for (RDIB_PathTreeNode *n = path_tree->node_lists[task_id].first; n != 0; n = n->next_order) { - RDI_FilePathNode *dst = task->nodes_dst + n->node_idx; - dst->name_string_idx = rdib_idx_from_string_map(string_map, n->sub_path); - - B32 is_source_file_node = (n->first_child == 0); - if (is_source_file_node) { - dst->source_file_idx = rdib_idx_from_source_file(n->src_file); - } else { - // directories don't have a source file - Assert(n->src_file == 0); - dst->source_file_idx = 0; - } - - if(n->parent) { - dst->parent_path_node = n->parent->node_idx; - } - if (n->first_child) { - dst->first_child = n->first_child->node_idx; - } - if (n->next_sibling) { - dst->next_sibling = n->next_sibling->node_idx; - } - } - ProfEnd(); -} - -internal void -rdib_data_sections_from_path_tree(TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_PathTree *path_tree) -{ - ProfBeginFunction(); - RDI_FilePathNode *nodes_dst = push_array_no_zero(arena, RDI_FilePathNode, path_tree->node_count); - - RDIB_BuildFilePathNodesTask task = {0}; - task.path_tree = path_tree; - task.string_map = string_map; - task.nodes_dst = nodes_dst; - tp_for_parallel(tp, 0, path_tree->list_count, rdib_build_file_path_nodes_task, &task); - - RDIB_DataSection data_sect = { .tag = RDI_SectionKind_FilePathNodes }; - str8_list_push(arena, &data_sect.data, str8_array(nodes_dst, path_tree->node_count)); - - rdib_data_section_list_push(arena, sect_list, data_sect); - - ProfEnd(); -} - -internal RDIB_PathTree * -rdib_build_path_tree(Arena *arena, - U64 worker_count, - RDIB_SourceFile *null_src_file, - U64 unit_chunk_count, - RDIB_UnitChunk **unit_chunks, - U64 src_file_chunk_count, - RDIB_SourceFileChunk **src_file_chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - - RDIB_PathTree *tree = rdib_path_tree_init(arena, worker_count); - rdib_path_tree_insert(arena, tree, RDIB_PATH_TREE_NIL_STRING, null_src_file); - - ProfBegin("Units"); - for (U64 ichunk = 0; ichunk < unit_chunk_count; ++ichunk) { - RDIB_UnitChunk *chunk = unit_chunks[ichunk]; - for (U64 iunit = 0; iunit < chunk->count; ++iunit) { - RDIB_Unit *unit = &chunk->v[iunit]; - rdib_path_tree_insert(arena, tree, unit->source_file, null_src_file); - rdib_path_tree_insert(arena, tree, unit->object_file, null_src_file); - rdib_path_tree_insert(arena, tree, unit->archive_file, null_src_file); - rdib_path_tree_insert(arena, tree, unit->build_path, null_src_file); - } - } - ProfEnd(); - - ProfBegin("Source Files"); - for (U64 chunk_idx = 0; chunk_idx < src_file_chunk_count; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = src_file_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_SourceFile *src_file = chunk->v + i; - rdib_path_tree_insert(arena, tree, src_file->file_path, src_file); - } - } - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return tree; -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_var_section_task) -{ - ProfBeginDynamic("Global Variables Task %llu", task_id); - RDIB_BuildSymbolSectionTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->gvars_rdib[chunk_idx]; - RDI_GlobalVariable *vars = push_array_no_zero(arena, RDI_GlobalVariable, chunk->count); - - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Variable *src = &chunk->v[i]; - RDI_GlobalVariable *dst = &vars[i]; - - // TODO: temporary hack while we don't have bytecode eval in RDI_GlobalVariable - U64 voff = 0; - if (src->locations.first != 0) { - if (src->locations.first->v.kind == RDI_LocationKind_AddrBytecodeStream && src->locations.first->v.bytecode.first->op == RDI_EvalOp_ModuleOff) { - voff = src->locations.first->v.bytecode.first->p; - } - } - - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->name); - dst->voff = voff; - dst->type_idx = rdib_idx_from_type(src->type); - dst->link_flags = src->link_flags; - - if (src->container_type != 0) { - Assert(!src->container_proc); - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = rdib_idx_from_udt_type(src->container_type); - } - if (src->container_proc != 0) { - Assert(!src->container_type); - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = rdib_idx_from_procedure(src->container_proc); - } - } - - str8_list_push(arena, &task->gvars_out[task_id], str8_array(vars, chunk->count)); - } - - ProfEnd(); -} - -internal void -rdib_data_sections_from_global_variables(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - U64 total_count, - U64 chunk_count, - RDIB_VariableChunk **chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Build"); - RDIB_BuildSymbolSectionTask task = {0}; - task.string_map = string_map; - task.ranges = tp_divide_work(scratch.arena, chunk_count, tp->worker_count); - task.gvars_rdib = chunks; - task.gvars_out = push_array(scratch.arena, String8List, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, rdib_build_var_section_task, &task); - ProfEnd(); - - RDIB_DataSection gvars_sect = { .tag = RDI_SectionKind_GlobalVariables }; - str8_list_concat_in_place_array(&gvars_sect.data, task.gvars_out, tp->worker_count); - rdib_data_section_list_push(arena->v[0], sect_list, gvars_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_tvar_section_task) -{ - RDIB_BuildSymbolSectionTask *task = raw_task; - ProfBeginDynamic("Thread Variables Task [Chunk Count: %llu]", task->ranges[task_id].max - task->ranges[task_id].min); - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_VariableChunk *chunk = task->tvars_rdib[chunk_idx]; - RDI_ThreadVariable *vars = push_array_no_zero(arena, RDI_ThreadVariable, chunk->count); - - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Variable *src = &chunk->v[i]; - RDI_ThreadVariable *dst = &vars[i]; - - U32 tls_off = 0; - if (src->locations.first != 0) { - if (src->locations.first->v.kind == RDI_LocationKind_AddrBytecodeStream && src->locations.first->v.bytecode.first->op == RDI_EvalOp_TLSOff) { - tls_off = src->locations.first->v.bytecode.first->p; - } - } - - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->name); - dst->tls_off = tls_off; - dst->type_idx = rdib_idx_from_type(src->type); - - if (src->container_type != 0) { - Assert(!src->container_proc); - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = rdib_idx_from_udt_type(src->container_type); - } - if (src->container_proc != 0) { - Assert(!src->container_type); - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = rdib_idx_from_procedure(src->container_proc); - } - } - - str8_list_push(arena, &task->tvars_out[task_id], str8_array(vars, chunk->count)); - } - - ProfEnd(); -} - -internal void -rdib_data_sections_from_thread_variables(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - U64 total_count, - U64 chunk_count, - RDIB_VariableChunk **chunks) -{ - ProfBeginDynamic("Thread Variables [Chunk Count: %llu, Total Count %llu]", total_count, chunk_count); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Build"); - RDIB_BuildSymbolSectionTask task = {0}; - task.string_map = string_map; - task.ranges = tp_divide_work(scratch.arena, chunk_count, tp->worker_count); - task.tvars_rdib = chunks; - task.tvars_out = push_array(scratch.arena, String8List, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, rdib_build_tvar_section_task, &task); - ProfEnd(); - - RDIB_DataSection tvars_sect = { .tag = RDI_SectionKind_ThreadVariables }; - str8_list_concat_in_place_array(&tvars_sect.data, task.tvars_out, tp->worker_count); - rdib_data_section_list_push(arena->v[0], sect_list, tvars_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_procs_section_task) -{ - RDIB_BuildSymbolSectionTask *task = raw_task; - ProfBeginDynamic("Procedures Task [Chunk Count: %llu]", task->ranges[task_id].max - task->ranges[task_id].min); - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ProcedureChunk *chunk = task->procs_rdib[chunk_idx]; - RDI_Procedure *procs = push_array_no_zero(arena, RDI_Procedure, chunk->count); - - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_Procedure *src = &chunk->v[i]; - RDI_Procedure *dst = &procs[i]; - - dst->name_string_idx = rdib_idx_from_string_map(task->string_map, src->name); - dst->link_name_string_idx = rdib_idx_from_string_map(task->string_map, src->link_name); - dst->link_flags = src->link_flags; - dst->type_idx = rdib_idx_from_type(src->type); - dst->root_scope_idx = rdib_idx_from_scope(src->scope); - - if (src->container_type != 0) { - AssertAlways(!src->container_proc); - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = rdib_idx_from_udt_type(src->container_type); - } - - if (src->container_proc != 0) { - AssertAlways(!src->container_type); - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = rdib_idx_from_procedure(0); Assert(!"TODO"); // src->container_proc - } - } - - str8_list_push(arena, &task->procs_out[task_id], str8_array(procs, chunk->count)); - } - - ProfEnd(); -} - -internal void -rdib_data_sections_from_procedures(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - U64 total_count, - U64 chunk_count, - RDIB_ProcedureChunk **chunks) -{ - ProfBeginDynamic("Procedures [Total Count: %llu, Chunk Count: %llu]", total_count, chunk_count); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Build"); - RDIB_BuildSymbolSectionTask task = {0}; - task.string_map = string_map; - task.ranges = tp_divide_work(scratch.arena, chunk_count, tp->worker_count); - task.procs_rdib = chunks; - task.procs_out = push_array(scratch.arena, String8List, tp->worker_count); - tp_for_parallel(tp, arena, tp->worker_count, rdib_build_procs_section_task, &task); - ProfEnd(); - - RDIB_DataSection procs_sect = { .tag = RDI_SectionKind_Procedures }; - str8_list_concat_in_place_array(&procs_sect.data, task.procs_out, tp->worker_count); - rdib_data_section_list_push(arena->v[0], sect_list, procs_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_count_scopes_task) -{ - ProfBeginFunction(); - RDIB_BuildSymbolSectionTask *task = raw_task; - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_ScopeChunk *chunk = task->scopes_rdib[chunk_idx]; - for (U64 scope_i = 0; scope_i < chunk->count; ++scope_i) { - RDIB_Scope *scope = &chunk->v[scope_i]; - - task->scope_voff_counts[task_id] += scope->ranges.count * 2; - task->local_counts[task_id] += scope->local_count; - - for (RDIB_Variable *var = scope->local_first; var != 0; var = var->next) { - for (RDIB_LocationNode *loc_n = var->locations.first; loc_n != 0; loc_n = loc_n->next) { - switch (loc_n->v.kind) { - case RDI_LocationKind_NULL: break; - case RDI_LocationKind_AddrBytecodeStream: - case RDI_LocationKind_ValBytecodeStream: { - task->loc_data_sizes[task_id] += loc_n->v.bytecode.size + /* stream ender: */ 1; - } break; - case RDI_LocationKind_ValReg: { - task->loc_data_sizes[task_id] += sizeof(RDI_LocationReg); - } break; - case RDI_LocationKind_AddrRegPlusU16: - case RDI_LocationKind_AddrAddrRegPlusU16: { - task->loc_data_sizes[task_id] += sizeof(RDI_LocationRegPlusU16); - } break; - default: InvalidPath; - } - - task->loc_block_counts[task_id] += loc_n->v.ranges.count; - task->loc_data_sizes[task_id] += AlignPadPow2(task->loc_data_sizes[task_id], 8); - } - } - } - } - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_scopes_task) -{ - RDIB_BuildSymbolSectionTask *task = raw_task; - ProfBeginDynamic("Scopes [Chunk Count: %llu]", task->ranges[task_id].max - task->ranges[task_id].min); - - // scope voff fill info - U64 scope_voff_cursor = task->scope_voff_offsets[task_id]; - U64 scope_voff_max = task->scope_voff_offsets[task_id] + task->scope_voff_counts[task_id]; - U64 *scope_voff_ptr = task->scope_voffs_rdi; - - // local fill info - U64 local_cursor = task->local_offsets[task_id]; - U64 local_max = task->local_offsets[task_id] + task->local_counts[task_id]; - RDI_Local *locals = task->locals_rdi; - - // location data fill info - U64 loc_data_max = task->loc_data_offsets[task_id] + task->loc_data_sizes[task_id]; - U64 loc_data_cursor = task->loc_data_offsets[task_id]; - U8 *loc_data = task->loc_data_rdi; - - // location block fill info - U64 loc_block_cursor = task->loc_block_offsets[task_id]; - U64 loc_block_max = task->loc_block_offsets[task_id] + task->loc_block_counts[task_id]; - RDI_LocationBlock *loc_blocks = task->loc_blocks_rdi; - - for (U64 ichunk = task->ranges[task_id].min; ichunk < task->ranges[task_id].max; ++ichunk) { - RDIB_ScopeChunk *chunk = task->scopes_rdib[ichunk]; - for (U64 iscope = 0; iscope < chunk->count; ++iscope) { - RDIB_Scope *scope_src = &chunk->v[iscope]; - U64 scope_idx = rdib_idx_from_scope(scope_src); - RDI_Scope *scope_dst = &task->scopes_rdi[scope_idx]; - - scope_dst->proc_idx = rdib_idx_from_procedure(scope_src->container_proc); - scope_dst->parent_scope_idx = rdib_idx_from_scope(scope_src->parent); - scope_dst->first_child_scope_idx = rdib_idx_from_scope(scope_src->first_child); - scope_dst->next_sibling_scope_idx = rdib_idx_from_scope(scope_src->next_sibling); - scope_dst->voff_range_first = scope_voff_cursor; - scope_dst->voff_range_opl = scope_voff_cursor + scope_src->ranges.count * 2; - scope_dst->local_count = scope_src->local_count; - if (scope_src->local_count > 0) { - scope_dst->local_first = local_cursor; - } else { - scope_dst->local_first = 0; - } - // TODO: static locals can be exported as local variables - //scope_dst->static_local_idx_run_first = ???; - //scope_dst->static_local_count = ???; - scope_dst->inline_site_idx = rdib_idx_from_inline_site(scope_src->inline_site); - - // fill out scope voffs - for (Rng1U64Node *range_n = scope_src->ranges.first; range_n != 0; range_n = range_n->next) { - Assert(scope_voff_cursor + 2 <= scope_voff_max); - scope_voff_ptr[scope_voff_cursor + 0] = range_n->v.min; - scope_voff_ptr[scope_voff_cursor + 1] = range_n->v.max; - scope_voff_cursor += 2; - } - - // fill out locals & locations - for (RDIB_Variable *local_src = scope_src->local_first; local_src != 0; local_src = local_src->next, ++local_cursor) { - U64 loc_block_first = loc_block_cursor; - - for (RDIB_LocationNode *loc_n = local_src->locations.first; loc_n != 0; loc_n = loc_n->next) { - RDIB_Location *loc = &loc_n->v; - - // fill out location data - U64 location_data_off = loc_data_cursor; - switch (loc->kind) { - case RDI_LocationKind_NULL: break; - case RDI_LocationKind_AddrBytecodeStream: - case RDI_LocationKind_ValBytecodeStream: { - // write opcodes & operands - for (RDIB_EvalBytecodeOp *op_node = loc->bytecode.first; op_node != 0; op_node = op_node->next) { - // opcode - Assert(loc_data_cursor + sizeof(op_node->op) <= loc_data_max); - MemoryCopy(loc_data + loc_data_cursor, &op_node->op, sizeof(op_node->op)); - loc_data_cursor += sizeof(op_node->op); - - // operand - Assert(loc_data_cursor + op_node->p_size <= loc_data_max); - MemoryCopy(loc_data + loc_data_cursor, &op_node->p, op_node->p_size); - loc_data_cursor += op_node->p_size; - } - - // stream ender - Assert(loc_data_cursor + 1 <= loc_data_max); - loc_data[loc_data_cursor] = 0; - loc_data_cursor += 1; - } break; - case RDI_LocationKind_AddrRegPlusU16: - case RDI_LocationKind_AddrAddrRegPlusU16: { - Assert(loc_data_cursor + sizeof(RDI_LocationRegPlusU16) <= loc_data_max); - RDI_LocationRegPlusU16 *dst = (RDI_LocationRegPlusU16 *) (loc_data + loc_data_cursor); - dst->kind = loc->kind; - dst->reg_code = loc->reg_code; - dst->offset = loc->offset; - - loc_data_cursor += sizeof(*dst); - } break; - case RDI_LocationKind_ValReg: { - Assert(loc_data_cursor + sizeof(RDI_LocationReg) <= loc_data_max); - RDI_LocationReg *dst = (RDI_LocationReg *) (loc_data + loc_data_cursor); - dst->kind = loc->kind; - dst->reg_code = loc->reg_code; - loc_data_cursor += sizeof(*dst); - } break; - default: InvalidPath; - } - - // zero out align bytes - U64 align_size = AlignPadPow2(loc_data_cursor, 8); - Assert(loc_data_cursor + align_size <= loc_data_max); - MemorySet(loc_data + loc_data_cursor, 0, align_size); - loc_data_cursor += align_size; - - // fill out location block - for (Rng1U64Node *range_n = loc->ranges.first; range_n != 0; range_n = range_n->next, ++loc_block_cursor) { - Assert(loc_block_cursor < loc_block_max); - RDI_LocationBlock *loc_block_dst = &loc_blocks[loc_block_cursor]; - loc_block_dst->scope_off_first = range_n->v.min; - loc_block_dst->scope_off_opl = range_n->v.max; - loc_block_dst->location_data_off = location_data_off; - } - } - - Assert(local_cursor <= local_max); - RDI_Local *local_dst = &locals[local_cursor]; - local_dst->kind = local_src->kind; - local_dst->name_string_idx = rdib_idx_from_string_map(task->string_map, local_src->name); - local_dst->type_idx = rdib_idx_from_type(local_src->type); - if (local_src->locations.count > 0) { - local_dst->location_first = loc_block_first; - local_dst->location_opl = loc_block_cursor; - } else { - local_dst->location_first = 0; - local_dst->location_opl = 0; - } - } - } - } - - Assert(scope_voff_cursor == scope_voff_max); - Assert(local_cursor == local_max); - Assert(loc_data_cursor == loc_data_max); - - ProfEnd(); -} - -internal void -rdib_data_sections_from_scopes(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - U64 total_scope_count, - U64 chunk_count, - RDIB_ScopeChunk **scopes) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - RDIB_BuildSymbolSectionTask task = {0}; - task.string_map = string_map; - task.ranges = tp_divide_work(scratch.arena, chunk_count, tp->worker_count); - task.scopes_rdib = scopes; - - ProfBegin("Count Locals & Locations"); - task.scope_voff_counts = push_array(scratch.arena, U64, tp->worker_count); - task.local_counts = push_array(scratch.arena, U64, tp->worker_count); - task.loc_block_counts = push_array(scratch.arena, U64, tp->worker_count); - task.loc_data_sizes = push_array(scratch.arena, U64, tp->worker_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_count_scopes_task, &task); - ProfEnd(); - - U64 total_scope_voff_count = sum_array_u64(tp->worker_count, task.scope_voff_counts); - U64 total_local_count = sum_array_u64(tp->worker_count, task.local_counts ); - U64 total_loc_block_count = sum_array_u64(tp->worker_count, task.loc_block_counts ); - U64 total_loc_data_size = sum_array_u64(tp->worker_count, task.loc_data_sizes ); - - ProfBegin("Fill out scopes, locals, location blocks, and location data"); - task.scope_voff_offsets = offsets_from_counts_array_u64(scratch.arena, task.scope_voff_counts, tp->worker_count); - task.local_offsets = offsets_from_counts_array_u64(scratch.arena, task.local_counts, tp->worker_count); - task.loc_block_offsets = offsets_from_counts_array_u64(scratch.arena, task.loc_block_counts, tp->worker_count); - task.loc_data_offsets = offsets_from_counts_array_u64(scratch.arena, task.loc_data_sizes, tp->worker_count); - - ProfBegin("Push"); - task.scope_voffs_rdi = push_array_no_zero(arena->v[0], U64, total_scope_voff_count); - task.scopes_rdi = push_array_no_zero(arena->v[0], RDI_Scope, total_scope_count ); - task.locals_rdi = push_array_no_zero(arena->v[0], RDI_Local, total_local_count ); - task.loc_blocks_rdi = push_array_no_zero(arena->v[0], RDI_LocationBlock, total_loc_block_count ); - task.loc_data_rdi = push_array_no_zero(arena->v[0], U8, total_loc_data_size ); - ProfEnd(); - - tp_for_parallel(tp, 0, tp->worker_count, rdib_build_scopes_task, &task); - ProfEnd(); - - RDIB_DataSection scopes_sect = { .tag = RDI_SectionKind_Scopes }; - RDIB_DataSection scope_voffs_sect = { .tag = RDI_SectionKind_ScopeVOffData }; - RDIB_DataSection locals_sect = { .tag = RDI_SectionKind_Locals }; - RDIB_DataSection loc_blocks_sect = { .tag = RDI_SectionKind_LocationBlocks }; - RDIB_DataSection loc_data_sect = { .tag = RDI_SectionKind_LocationData }; - - str8_list_push(arena->v[0], &scopes_sect.data, str8_array(task.scopes_rdi, total_scope_count )); - str8_list_push(arena->v[0], &scope_voffs_sect.data, str8_array(task.scope_voffs_rdi, total_scope_voff_count)); - str8_list_push(arena->v[0], &locals_sect.data, str8_array(task.locals_rdi, total_local_count )); - str8_list_push(arena->v[0], &loc_blocks_sect.data, str8_array(task.loc_blocks_rdi, total_loc_block_count )); - str8_list_push(arena->v[0], &loc_data_sect.data, str8_array(task.loc_data_rdi, total_loc_data_size )); - - rdib_data_section_list_push(arena->v[0], sect_list, scopes_sect ); - rdib_data_section_list_push(arena->v[0], sect_list, scope_voffs_sect); - rdib_data_section_list_push(arena->v[0], sect_list, locals_sect ); - rdib_data_section_list_push(arena->v[0], sect_list, loc_blocks_sect ); - rdib_data_section_list_push(arena->v[0], sect_list, loc_data_sect ); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_name_map_task) -{ - ProfBeginFunction("Build Name Map"); - Temp scratch = scratch_begin(&arena, 1); - - RDIB_NameMapBuilderTask *task = raw_task; - RDI_NameMapKind name_map_idx = (RDI_NameMapKind)task_id; - - U64 out_node_count = task->in_bucket_counts[name_map_idx]; - U64 load_factor = 4; - U64 out_bucket_count = CeilIntegerDiv(out_node_count, load_factor); - - ProfBegin("Build temp hash map"); - struct Node { - struct Node *next; - RDIB_StringMapBucket *name; - }; - struct NodeList { - struct Node *first; - struct Node *last; - U64 node_count; - }; - struct NodeList *temp_map = push_array(scratch.arena, struct NodeList, out_bucket_count); - struct Node *temp_nodes = push_array_no_zero(scratch.arena, struct Node, out_node_count); - for (U64 i = 0; i < task->in_bucket_counts[name_map_idx]; ++i) { - RDIB_StringMapBucket *src_bucket = task->in_buckets[name_map_idx][i]; - - U64 hash = rdi_hash(src_bucket->string.str, src_bucket->string.size); - U64 bucket_idx = hash % out_bucket_count; - - struct Node *node = temp_nodes + i; - node->next = 0; - node->name = src_bucket; - - SLLQueuePush(temp_map[bucket_idx].first, temp_map[bucket_idx].last, node); - ++temp_map[bucket_idx].node_count; - } - ProfEnd(); - - ProfBegin("Push buckets and nodes"); - RDI_NameMapBucket *out_buckets = push_array_no_zero(arena, RDI_NameMapBucket, out_bucket_count); - RDI_NameMapNode *out_nodes = push_array_no_zero(arena, RDI_NameMapNode, out_node_count); - ProfEnd(); - - ProfBegin("Fill out buckets"); - for (U64 bucket_idx = 0, node_cursor = 0; bucket_idx < out_bucket_count; ++bucket_idx) { - struct NodeList *src_bucket = &temp_map[bucket_idx]; - RDI_NameMapBucket *dst_bucket = &out_buckets[bucket_idx]; - - if (src_bucket->node_count == 0) { - dst_bucket->first_node = 0; - dst_bucket->node_count = 0; - continue; - } - - dst_bucket->first_node = safe_cast_u32(node_cursor); - dst_bucket->node_count = src_bucket->node_count; - - for (struct Node *n = src_bucket->first; n != 0; n = n->next, ++node_cursor) { - RDIB_StringMapBucket *src_name = n->name; - - RDI_NameMapNode *dst_node = &out_nodes[node_cursor]; - dst_node->string_idx = rdib_idx_from_string_map(task->string_map, src_name->string); - dst_node->match_count = src_name->count; - if (src_name->count > 1) { - dst_node->match_idx_or_idx_run_first = task->idx_run_map->buckets[src_name->idx_run_bucket_idx]->index_in_output_array; - } else { - dst_node->match_idx_or_idx_run_first = src_name->match_idx; - } - } - } - ProfEnd(); - - // fill out output - task->out_buckets[name_map_idx] = out_buckets; - task->out_nodes[name_map_idx] = out_nodes; - task->out_bucket_counts[name_map_idx] = out_bucket_count; - task->out_node_counts[name_map_idx] = out_node_count; - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_data_sections_from_name_maps(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - RDIB_IndexRunMap *idx_run_map, - RDIB_StringMapBucket **src_name_maps[RDI_NameMapKind_COUNT], - U64 src_name_map_counts[RDI_NameMapKind_COUNT]) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Build Name Maps"); - RDIB_NameMapBuilderTask task = {0}; - task.string_map = string_map; - task.idx_run_map = idx_run_map; - task.in_bucket_counts = src_name_map_counts; - task.in_buckets = src_name_maps; - task.out_buckets = push_array(scratch.arena, RDI_NameMapBucket *, RDI_NameMapKind_COUNT); - task.out_nodes = push_array(scratch.arena, RDI_NameMapNode *, RDI_NameMapKind_COUNT); - task.out_bucket_counts = push_array(scratch.arena, U64, RDI_NameMapKind_COUNT); - task.out_node_counts = push_array(scratch.arena, U64, RDI_NameMapKind_COUNT); - tp_for_parallel(tp, arena, RDI_NameMapKind_COUNT, rdib_build_name_map_task, &task); - ProfEnd(); - - U64 *bucket_offsets = offsets_from_counts_array_u64(scratch.arena, task.out_bucket_counts, RDI_NameMapKind_COUNT); - U64 *node_offsets = offsets_from_counts_array_u64(scratch.arena, task.out_node_counts, RDI_NameMapKind_COUNT); - - String8List raw_name_maps = {0}, raw_name_map_buckets = {0}, raw_name_map_nodes = {0}; - for (U64 i = 0; i < RDI_NameMapKind_COUNT; ++i) { - RDI_NameMap *dst_name_map = push_array(arena->v[0], RDI_NameMap, 1); - dst_name_map->bucket_base_idx = bucket_offsets[i]; - dst_name_map->node_base_idx = node_offsets[i]; - dst_name_map->bucket_count = task.out_bucket_counts[i]; - dst_name_map->node_count = task.out_node_counts[i]; - - str8_list_push(arena->v[0], &raw_name_maps, str8_struct(dst_name_map)); - str8_list_push(arena->v[0], &raw_name_map_buckets, str8_array(task.out_buckets[i], task.out_bucket_counts[i])); - str8_list_push(arena->v[0], &raw_name_map_nodes, str8_array(task.out_nodes[i], task.out_node_counts[i])); - } - - RDIB_DataSection name_maps_sect = { .tag = RDI_SectionKind_NameMaps, .data = raw_name_maps }; - RDIB_DataSection name_map_buckets_sect = { .tag = RDI_SectionKind_NameMapBuckets, .data = raw_name_map_buckets }; - RDIB_DataSection name_map_nodes_sect = { .tag = RDI_SectionKind_NameMapNodes, .data = raw_name_map_nodes }; - rdib_data_section_list_push(arena->v[0], sect_list, name_maps_sect); - rdib_data_section_list_push(arena->v[0], sect_list, name_map_buckets_sect); - rdib_data_section_list_push(arena->v[0], sect_list, name_map_nodes_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_src_line_map_task) -{ - // Line tables are ordered to perform 'virtual offset -> line number' maps, - // and thus we potentially can have multiple virtual offsets map to same line number. - // (e.g. in C/C++ if for-loop declaration site is on one line, intial-statment-condition - // and expression parts map to same line number). And so to make things easy on debugger - // we remove duplicates from source line map and reorient mapping to 'line number -> virtual offset' - // this way debugger can quickly compute virtual offsets when placing a breakpoint on a source line. - - Temp scratch = scratch_begin(&arena, 1); - RDIB_SrcLineMapsTask *task = raw_task; - - RDIB_SourceFile *src_file = task->src_file_arr[task_id]; - U64 src_file_idx = rdib_idx_from_source_file(src_file); - - //ProfBeginDynamic("Build Source Line Map [%.*s]", str8_varg(src_file->file_path)); - ProfBegin("Build Source Line Map"); - - ProfBegin("Count lines/virt offsets"); - U64 ln_voff_count = 0; - for (RDIB_LineTableFragment *frag = src_file->line_table_frags; frag != 0; frag = frag->next_src_file) { - ln_voff_count += frag->line_count; - } - ProfEnd(); - - ProfBegin("Push ln_voff_arr"); - PairU32 *ln_voff_arr = push_array_no_zero(scratch.arena, PairU32, ln_voff_count); - ProfEnd(); - - ProfBegin("Fill out ln_voff_arr"); - { - U64 cursor = 0; - for (RDIB_LineTableFragment *frag = src_file->line_table_frags; frag != 0; frag = frag->next_src_file) { - for (U64 line_idx = 0; line_idx < frag->line_count; ++line_idx) { - ln_voff_arr[cursor].v0 = frag->line_nums[line_idx]; - ln_voff_arr[cursor].v1 = frag->voffs[line_idx]; - ++cursor; - } - } - } - ProfEnd(); - - // sort on line number - ProfBegin("Sort"); - if (ln_voff_count < 512) { - // TODO: Radsort is buggy and inifte loops if we sort pair of u64. - // Check-in with Jeff on Monday about bugfix. For now workaround - // the bug wiht pair of u32s. There is no virtual offset larger - // than 4GiB in line table anyway. - radsort(ln_voff_arr, ln_voff_count, pair_u32_is_before_v0); - } else { - u32_pair_radix_sort(ln_voff_count, ln_voff_arr); - } - ProfEnd(); - - // TODO: leak, precompute unique line number count and push exact array lengths - U32 *line_nums = push_array_no_zero(arena, U32, ln_voff_count); - U32 *line_ranges = push_array_no_zero(arena, U32, ln_voff_count + 1); - U64 *voffs = push_array_no_zero(arena, U64, ln_voff_count); - - U64 voff_cursor = 0; - U64 line_num_cursor = 0; - if (ln_voff_count > 0) { - line_nums[line_num_cursor] = ln_voff_arr[0].v0; - voffs[voff_cursor] = ln_voff_arr[0].v1; - line_ranges[line_num_cursor] = voff_cursor; - - ++voff_cursor; - ++line_num_cursor; - - ProfBegin("Fill out output array"); - for (U64 i = 1; i < ln_voff_count; ++i) { - // does this voff belong to next line number? - if (ln_voff_arr[i].v0 != line_nums[line_num_cursor-1]) { - line_nums[line_num_cursor] = ln_voff_arr[i].v0; - line_ranges[line_num_cursor] = (U32)voff_cursor; - ++line_num_cursor; - } - voffs[voff_cursor++] = ln_voff_arr[i].v1; - } - ProfEnd(); - - // did we fill out voff array correctly? - Assert(voff_cursor == ln_voff_count); - - // close last line range - line_ranges[line_num_cursor] = voff_cursor; - } - - // fill out result - task->out_line_counts[src_file_idx] = line_num_cursor; - task->out_voff_counts[src_file_idx] = safe_cast_u32(voff_cursor); - task->out_line_nums[src_file_idx] = line_nums; - task->out_line_ranges[src_file_idx] = line_ranges; - task->out_voffs[src_file_idx] = voffs; - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_data_sections_from_source_line_maps(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - U64 total_src_file_count, - U64 src_file_chunk_count, - RDIB_SourceFileChunk **src_file_chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - ProfBegin("Prepare Source File Array"); - RDIB_SourceFile **src_file_arr = push_array_no_zero(scratch.arena, RDIB_SourceFile *, total_src_file_count); - for (U64 chunk_idx = 0, cursor = 0; chunk_idx < src_file_chunk_count; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = src_file_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - src_file_arr[cursor++] = &chunk->v[i]; - } - } - ProfEnd(); - - ProfBegin("Init Task Context"); - RDIB_SrcLineMapsTask task = {0}; - task.src_file_arr = src_file_arr; - task.out_line_counts = push_array_no_zero(scratch.arena, U32, total_src_file_count); - task.out_voff_counts = push_array_no_zero(scratch.arena, U32, total_src_file_count); - task.out_line_nums = push_array_no_zero(scratch.arena, U32 *, total_src_file_count); - task.out_line_ranges = push_array_no_zero(scratch.arena, U32 *, total_src_file_count); - task.out_voffs = push_array_no_zero(scratch.arena, U64 *, total_src_file_count); - ProfEnd(); - - ProfBegin("Build Source Line Maps"); - tp_for_parallel(tp, arena, total_src_file_count, rdib_build_src_line_map_task, &task); - ProfEnd(); - - ProfBegin("Fill out Source Line Maps"); - RDIB_DataSection src_line_maps_sect = { .tag = RDI_SectionKind_SourceLineMaps }; - RDIB_DataSection src_line_nums_sect = { .tag = RDI_SectionKind_SourceLineMapNumbers }; - RDIB_DataSection src_line_ranges_sect = { .tag = RDI_SectionKind_SourceLineMapRanges }; - RDIB_DataSection src_line_voffs_sect = { .tag = RDI_SectionKind_SourceLineMapVOffs }; - - ProfBegin("Push"); - RDI_SourceLineMap *src_line_maps = push_array_no_zero(arena->v[0], RDI_SourceLineMap, total_src_file_count + 1); - ProfEnd(); - - U64 src_line_map_cursor = 0; - U64 line_num_cursor = 0; - U64 line_range_cursor = 0; - U64 voff_cursor = 0; - - // zero-out null source line map - MemoryZeroStruct(&src_line_maps[src_line_map_cursor]); - ++src_line_map_cursor; - - for (U64 chunk_idx = 0; chunk_idx < src_file_chunk_count; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = src_file_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_SourceFile *src_file = chunk->v + i; - U64 src_file_idx = rdib_idx_from_source_file(src_file); - - if (task.out_line_counts[src_file_idx] > 0) { - src_file->src_line_map_idx = src_line_map_cursor; - - RDI_SourceLineMap *sm = src_line_maps + src_line_map_cursor++; - sm->line_count = task.out_line_counts[src_file_idx]; - sm->voff_count = task.out_voff_counts[src_file_idx]; - sm->line_map_nums_base_idx = line_num_cursor; - sm->line_map_range_base_idx = line_range_cursor; - sm->line_map_voff_base_idx = voff_cursor; - - str8_list_push(arena->v[0], &src_line_nums_sect.data, str8_array(task.out_line_nums[src_file_idx], task.out_line_counts[src_file_idx])); - str8_list_push(arena->v[0], &src_line_ranges_sect.data, str8_array(task.out_line_ranges[src_file_idx], task.out_line_counts[src_file_idx] + 1)); - str8_list_push(arena->v[0], &src_line_voffs_sect.data, str8_array(task.out_voffs[src_file_idx], task.out_voff_counts[src_file_idx])); - - line_num_cursor += task.out_line_counts[src_file_idx]; - line_range_cursor += task.out_line_counts[src_file_idx] + 1; - voff_cursor += task.out_voff_counts[src_file_idx]; - } else { - src_file->src_line_map_idx = 0; - } - } - } - ProfEnd(); - - str8_list_push(arena->v[0], &src_line_maps_sect.data, str8_array(src_line_maps, src_line_map_cursor)); - - rdib_data_section_list_push(arena->v[0], sect_list, src_line_maps_sect); - rdib_data_section_list_push(arena->v[0], sect_list, src_line_nums_sect); - rdib_data_section_list_push(arena->v[0], sect_list, src_line_ranges_sect); - rdib_data_section_list_push(arena->v[0], sect_list, src_line_voffs_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_build_line_tables_task) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(&arena, 1); - RDIB_BuildLineTablesTask *task = raw_task; - Rng1U64 range = task->ranges[task_id]; - - for (U64 chunk_idx = range.min; chunk_idx < range.max; ++chunk_idx) { - RDIB_LineTableChunk *chunk = task->chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_LineTable *line_table = &chunk->v[i]; - U64 line_table_idx = chunk->base + i; - - U64 total_line_count = 0; - for (RDIB_LineTableFragment *frag = line_table->first; frag != 0; frag = frag->next_line_table) { - total_line_count += frag->line_count + /* range terminator */ 1; - } - - if (total_line_count > 0) { - struct Value { - U32 src_file_idx; - U32 line_num; - U16 col_first; - U16 col_opl; - }; - KeyValuePair *pairs = push_array_no_zero(scratch.arena, KeyValuePair, total_line_count); - struct Value *values = push_array_no_zero(scratch.arena, struct Value, total_line_count); - U64 pair_cursor = 0; - - for (RDIB_LineTableFragment *frag = line_table->first; frag != 0; frag = frag->next_line_table) { - for (U64 line_idx = 0; line_idx < frag->line_count; ++line_idx, ++pair_cursor) { - struct Value *value = &values[pair_cursor]; - KeyValuePair *pair = &pairs[pair_cursor]; - - value->src_file_idx = rdib_idx_from_source_file(frag->src_file); - value->line_num = frag->line_nums[line_idx]; - if (frag->col_count > 0) { - value->col_first = frag->col_nums[line_idx*2]; - value->col_opl = frag->col_nums[line_idx*2 + 1]; - } else { - value->col_first = 0; - value->col_opl = 0; - } - - pair->key_u64 = frag->voffs[line_idx]; - pair->value_raw = value; - } - - // emit terminator - { - KeyValuePair *pair = &pairs[pair_cursor]; - struct Value *value = &values[pair_cursor]; - pair_cursor += 1; - - value->src_file_idx = 0; - value->line_num = 0; - value->col_first = 0; - value->col_opl = 0; - - pair->key_u64 = frag->voffs[frag->line_count]; - pair->value_raw = value; - } - } - - // sort on virtual offset - sort_key_value_pairs_as_u64(pairs, pair_cursor); - - // fill out RDI_Line output - U64 line_count = pair_cursor + 1; - U64 *voffs = push_array_no_zero(arena, U64, line_count); - RDI_Line *lines = push_array_no_zero(arena, RDI_Line, line_count); - - U64 line_cursor = 0; - for (U64 line_idx = 0; line_idx < pair_cursor; ++line_idx) { - // remove terminator if there is a real line number - if (line_idx + 1 < pair_cursor && pairs[line_idx].key_u64 == pairs[line_idx+1].key_u64) { - continue; - } - struct Value *value = pairs[line_idx].value_raw; - voffs[line_cursor] = pairs[line_idx].key_u64; - lines[line_cursor].file_idx = value->src_file_idx; - lines[line_cursor].line_num = value->line_num; - line_cursor += 1; - } - - // fill out terminators - voffs[line_cursor] = ~0llu; - MemoryZeroStruct(&lines[line_cursor]); - line_cursor += 1; - - // fill out line table output - task->out_line_table_counts[line_table_idx] = line_cursor; - task->out_line_table_voffs[line_table_idx] = voffs; - task->out_line_table_lines[line_table_idx] = lines; - } else { - task->out_line_table_counts[line_table_idx] = 0; - task->out_line_table_voffs[line_table_idx] = 0; - task->out_line_table_lines[line_table_idx] = 0; - } - } - } - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_data_sections_from_line_tables(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - U64 total_line_table_count, - U64 chunk_count, - RDIB_LineTableChunk **chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(0,0); - - ProfBegin("Build Line Tables"); - RDIB_BuildLineTablesTask task = {0}; - task.chunks = chunks; - task.ranges = tp_divide_work(scratch.arena, chunk_count, tp->worker_count); - task.out_line_table_counts = push_array_no_zero(scratch.arena, U64, total_line_table_count); - task.out_line_table_voffs = push_array_no_zero(scratch.arena, U64 *, total_line_table_count); - task.out_line_table_lines = push_array_no_zero(scratch.arena, RDI_Line *, total_line_table_count); - tp_for_parallel(tp, arena, tp->worker_count, rdib_build_line_tables_task, &task); - ProfEnd(); - - RDIB_DataSection line_tables_sect = { .tag = RDI_SectionKind_LineTables }; - RDIB_DataSection line_table_voffs_sect = { .tag = RDI_SectionKind_LineInfoVOffs }; - RDIB_DataSection line_table_lines_sect = { .tag = RDI_SectionKind_LineInfoLines }; - RDIB_DataSection line_table_cols_sect = { .tag = RDI_SectionKind_LineInfoColumns }; - - ProfBegin("Fill out Line Tables"); - - ProfBegin("Push"); - RDI_LineTable *line_tables_rdi = push_array_no_zero(arena->v[0], RDI_LineTable, total_line_table_count); - ProfEnd(); - - U64 line_table_cursor = 0; - U64 line_table_voff_cursor = 0; - U64 line_table_line_cursor = 0; - - for (U64 chunk_idx = 0; chunk_idx < chunk_count; ++chunk_idx) { - RDIB_LineTableChunk *chunk = chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_LineTable *src = &chunk->v[i]; - U64 src_idx = rdib_idx_from_line_table(src); - if (task.out_line_table_counts[src_idx] > 0) { - RDI_LineTable *dst = &line_tables_rdi[line_table_cursor]; - - src->output_array_idx = line_table_cursor; - - dst->voffs_base_idx = line_table_voff_cursor; - dst->lines_base_idx = line_table_line_cursor; - dst->cols_base_idx = 0; - dst->lines_count = task.out_line_table_counts[src_idx] - 1; - dst->cols_count = 0; - - str8_list_push(arena->v[0], &line_table_voffs_sect.data, str8_array(task.out_line_table_voffs[src_idx], task.out_line_table_counts[src_idx])); - str8_list_push(arena->v[0], &line_table_lines_sect.data, str8_array(task.out_line_table_lines[src_idx], task.out_line_table_counts[src_idx])); - - line_table_voff_cursor += task.out_line_table_counts[src_idx]; - line_table_line_cursor += task.out_line_table_counts[src_idx]; - - line_table_cursor += 1; - } else { - src->output_array_idx = 0; - } - } - } - - str8_list_push(arena->v[0], &line_tables_sect.data, str8_array(line_tables_rdi, line_table_cursor)); - - ProfEnd(); - - rdib_data_section_list_push(arena->v[0], sect_list, line_tables_sect); - rdib_data_section_list_push(arena->v[0], sect_list, line_table_voffs_sect); - rdib_data_section_list_push(arena->v[0], sect_list, line_table_lines_sect); - rdib_data_section_list_push(arena->v[0], sect_list, line_table_cols_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal -THREAD_POOL_TASK_FUNC(rdib_fill_src_files_task) -{ - RDIB_FillSourceFilesTask *task = raw_task; - - for (U64 chunk_idx = task->ranges[task_id].min; chunk_idx < task->ranges[task_id].max; ++chunk_idx) { - RDIB_SourceFileChunk *chunk = task->src_file_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_SourceFile *src = chunk->v + i; - U32 src_file_idx = rdib_idx_from_source_file(src); - RDI_SourceFile *dst = task->src_files_dst + src_file_idx; - - dst->file_path_node_idx = rdib_idx_from_path_tree(task->path_tree, src->file_path); - dst->normal_full_path_string_idx = rdib_idx_from_string_map(task->string_map, src->normal_full_path); - dst->source_line_map_idx = src->src_line_map_idx; - } - } -} - -internal void -rdib_data_sections_from_source_files(TP_Context *tp, - TP_Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - RDIB_PathTree *path_tree, - U64 total_src_file_count, - U64 src_file_chunk_count, - RDIB_SourceFileChunk **src_file_chunks) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - RDIB_FillSourceFilesTask task = {0}; - task.ranges = tp_divide_work(scratch.arena, src_file_chunk_count, tp->worker_count); - task.string_map = string_map; - task.path_tree = path_tree; - task.src_file_chunks = src_file_chunks; - task.src_files_dst = push_array_no_zero(arena->v[0], RDI_SourceFile, total_src_file_count); - tp_for_parallel(tp, 0, tp->worker_count, rdib_fill_src_files_task, &task); - - RDIB_DataSection src_files_sect = { .tag = RDI_SectionKind_SourceFiles }; - str8_list_push(arena->v[0], &src_files_sect.data, str8_array(task.src_files_dst, total_src_file_count)); - rdib_data_section_list_push(arena->v[0], sect_list, src_files_sect); - - scratch_end(scratch); - ProfEnd(); -} - -internal void -rdib_data_sections_from_inline_sites(TP_Context *tp, - Arena *arena, - RDIB_DataSectionList *sect_list, - RDIB_StringMap *string_map, - U64 total_inline_site_count, - U64 inline_site_chunk_count, - RDIB_InlineSiteChunk **inline_site_chunks) -{ - ProfBeginFunction(); - - RDI_InlineSite *dst_arr = push_array(arena, RDI_InlineSite, total_inline_site_count); - - for (U64 chunk_idx = 0; chunk_idx < inline_site_chunk_count; ++chunk_idx) { - RDIB_InlineSiteChunk *chunk = inline_site_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - RDIB_InlineSite *src = &chunk->v[i]; - U64 idx = rdib_idx_from_inline_site(src); - RDI_InlineSite *dst = &dst_arr[idx]; - - dst->name_string_idx = rdib_idx_from_string_map(string_map, src->name); - dst->type_idx = rdib_idx_from_type(src->type); - dst->owner_type_idx = rdib_idx_from_type(src->owner); - dst->line_table_idx = src->line_table->output_array_idx; - } - } - - RDIB_DataSection inline_site_sect = { .tag = RDI_SectionKind_InlineSites }; - str8_list_push(arena, &inline_site_sect.data, str8_array(dst_arr, total_inline_site_count)); - rdib_data_section_list_push(arena, sect_list, inline_site_sect); - - ProfEnd(); -} - -internal void -rdib_data_sections_from_checksums(TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list) -{ - NotImplemented; -} - -//////////////////////////////// - -internal RDIB_Input -rdib_init_input(Arena *arena) -{ - ProfBeginFunction(); - - RDIB_Input input = {0}; - input.unit_chunk_cap = 128; - input.src_file_chunk_cap = 4096; - input.symbol_chunk_cap = 4096; - input.line_table_cap = 4096; - input.inline_site_cap = 4096; - input.type_cap = 1024; - input.udt_cap = 4096; - - RDIB_SourceFile *null_src_file = rdib_source_file_chunk_list_push_zero(arena, &input.src_files, 1); - RDIB_LineTable *null_line_table = rdib_line_table_chunk_list_push_zero (arena, &input.line_tables, 1); - RDIB_LineTableFragment *null_frag = rdib_line_table_push (arena, null_line_table); - RDIB_Type *null_type = rdib_type_chunk_list_push_zero (arena, &input.types, 1); - RDIB_Scope *null_scope = rdib_scope_chunk_list_push_zero (arena, &input.scopes, 1); - RDIB_Unit *null_unit = rdib_unit_chunk_list_push_zero (arena, &input.units, 1); - RDIB_Procedure *null_proc = rdib_procedure_chunk_list_push_zero (arena, &input.procs, 1); - RDIB_Variable *null_local = rdib_variable_chunk_list_push_zero (arena, &input.locals, 1); - RDIB_Variable *null_gvar = rdib_variable_chunk_list_push_zero (arena, &input.gvars, 1); - RDIB_Variable *null_tvar = rdib_variable_chunk_list_push_zero (arena, &input.tvars, 1); - RDIB_UDTMember *null_udt_member = rdib_udt_member_chunk_list_push_zero (arena, &input.udt_members, 1); - RDIB_UDTMember *null_enum_member = rdib_udt_member_chunk_list_push_zero (arena, &input.enum_members, 1); - RDIB_InlineSite *null_inline_site = rdib_inline_site_chunk_list_push_zero(arena, &input.inline_sites, 1); - { - // Line Table Fragment - null_frag->src_file = null_src_file; - null_frag->voffs = push_array(arena, U64, 1); - - // Source File - null_src_file->line_table_frags = null_frag; - - // Unit - null_unit->arch = RDI_Arch_NULL; - null_unit->unit_name = str8_zero(); - null_unit->compiler_name = str8_zero(); - null_unit->source_file = str8_zero(); - null_unit->object_file = str8_zero(); - null_unit->archive_file = str8_zero(); - null_unit->build_path = str8_zero(); - null_unit->virt_range_count = 1; - null_unit->virt_ranges = push_array(arena, Rng1U64, 1); - null_unit->virt_ranges[0] = rng_1u64(0,0); - null_unit->line_table = null_line_table; - - // Scope - rng1u64_list_push(arena, &null_scope->ranges, rng_1u64(0,max_U32)); - - // Location - RDIB_Location null_loc = {0}; - rng1u64_list_push(arena, &null_loc.ranges, rng_1u64(0,0)); - RDIB_LocationList null_loc_list = {0}; - rdib_location_list_push(arena, &null_loc_list, null_loc); - - // Proc - null_proc->type = null_type; - null_proc->scope = null_scope; - - // Global Var - null_gvar->link_flags = RDI_LinkFlag_External; - null_gvar->type = null_type; - null_gvar->locations = null_loc_list; - - // Thread Var - null_tvar->link_flags = RDI_LinkFlag_External; - null_tvar->type = null_type; - null_tvar->locations = null_loc_list; - - // Local Var - null_local->type = null_type; - null_local->locations = null_loc_list; - - // Inline Site - null_inline_site->type = null_type; - null_inline_site->owner = 0; - null_inline_site->line_table = null_line_table; - } - - input.null_src_file = null_src_file; - input.null_line_table = null_line_table; - input.null_frag = null_frag; - input.null_type = null_type; - input.null_scope = null_scope; - input.null_unit = null_unit; - input.null_proc = null_proc; - input.null_local = null_local; - input.null_gvar = null_gvar; - input.null_tvar = null_tvar; - input.null_udt_member = null_udt_member; - input.null_enum_member = null_enum_member; - input.null_inline_site = null_inline_site; - - input.variadic_type = rdib_type_chunk_list_push(arena, &input.types, 1); - input.variadic_type->kind = RDI_TypeKind_Variadic; - - ProfEnd(); - return input; -} - -internal String8List -rdib_finish(TP_Context *tp, TP_Arena *arena, RDIB_Input *input) -{ - ProfBeginFunction(); - Temp scratch = scratch_begin(arena->v, arena->count); - - RDIB_UnitChunkList all_units = {0}; - RDIB_SourceFileChunkList all_src_files = {0}; - RDIB_LineTableChunkList all_line_tables = {0}; - RDIB_VariableChunkList all_locals = {0}; - RDIB_VariableChunkList all_tvars = {0}; - RDIB_VariableChunkList all_gvars = {0}; - RDIB_ProcedureChunkList all_procs = {0}; - RDIB_ScopeChunkList all_scopes = {0}; - RDIB_InlineSiteChunkList all_inline_sites = {0}; - RDIB_TypeChunkList all_types = {0}; - RDIB_TypeChunkList all_param_types = {0}; - RDIB_TypeChunkList all_udt_member_types = {0}; - RDIB_TypeChunkList all_enum_member_types = {0}; - RDIB_UDTMemberChunkList all_udt_members = {0}; - RDIB_UDTMemberChunkList all_enum_members = {0}; - - //U64 type_chunk_count = types.count; - //U64 struct_chunk_count = struct_list.count; - //U64 union_chunk_count = union_list.count; - //U64 enum_chunk_count = enum_list.count; - //U64 total_struct_count = rdib_type_chunk_list_total_count(struct_list); - //U64 total_union_count = rdib_type_chunk_list_total_count(union_list); - //U64 total_enum_count = rdib_type_chunk_list_total_count(enum_list); - //U64 extern_gvar_chunk_count = extern_gvars.count; - //U64 extern_tvar_chunk_count = extern_tvars.count; - //U64 extern_proc_chunk_count = extern_procs.count; - //U64 static_gvar_chunk_count = static_gvars.count; - //U64 static_tvar_chunk_count = static_tvars.count; - //U64 static_proc_chunk_count = static_procs.count; - //U64 total_extern_gvar_count = rdib_variable_chunk_list_total_count (extern_gvars); - //U64 total_extern_tvar_count = rdib_variable_chunk_list_total_count (extern_tvars); - //U64 total_extern_proc_count = rdib_procedure_chunk_list_total_count(extern_procs); - - ProfBegin("Concat Chunk Lists"); - rdib_unit_chunk_list_concat_in_place (&all_units, &input->units ); - rdib_source_file_chunk_list_concat_in_place(&all_src_files, &input->src_files ); - rdib_line_table_chunk_list_concat_in_place (&all_line_tables, &input->line_tables ); - rdib_scope_chunk_list_concat_in_place (&all_scopes, &input->scopes ); - rdib_variable_chunk_list_concat_in_place (&all_locals, &input->locals ); - rdib_variable_chunk_list_concat_in_place (&all_tvars, &input->tvars ); - rdib_variable_chunk_list_concat_in_place (&all_tvars, &input->extern_tvars ); - rdib_variable_chunk_list_concat_in_place (&all_tvars, &input->static_tvars ); - rdib_variable_chunk_list_concat_in_place (&all_gvars, &input->gvars ); - rdib_variable_chunk_list_concat_in_place (&all_gvars, &input->extern_gvars ); - rdib_variable_chunk_list_concat_in_place (&all_gvars, &input->static_gvars ); - rdib_procedure_chunk_list_concat_in_place (&all_procs, &input->procs ); - rdib_procedure_chunk_list_concat_in_place (&all_procs, &input->extern_procs ); - rdib_procedure_chunk_list_concat_in_place (&all_procs, &input->static_procs ); - rdib_inline_site_chunk_list_concat_in_place(&all_inline_sites, &input->inline_sites ); - rdib_type_chunk_list_concat_in_place (&all_types, &input->types ); - rdib_type_chunk_list_concat_in_place (&all_types, &input->struct_list ); - rdib_type_chunk_list_concat_in_place (&all_types, &input->union_list ); - rdib_type_chunk_list_concat_in_place (&all_types, &input->enum_list ); - rdib_type_chunk_list_concat_in_place (&all_param_types, &input->param_types ); - rdib_type_chunk_list_concat_in_place (&all_udt_member_types, &input->member_types ); - rdib_type_chunk_list_concat_in_place (&all_enum_member_types, &input->enum_types ); - rdib_udt_member_chunk_list_concat_in_place (&all_udt_members, &input->udt_members ); - rdib_udt_member_chunk_list_concat_in_place (&all_enum_members, &input->enum_members ); - ProfEnd(); - - ProfBegin("Chunk Lists -> Chunk Arrays"); - RDIB_UnitChunk **all_unit_chunks = rdib_array_from_unit_chunk_list (scratch.arena, all_units ); - RDIB_SourceFileChunk **all_src_file_chunks = rdib_array_from_source_file_chunk_list(scratch.arena, all_src_files ); - RDIB_LineTableChunk **all_line_table_chunks = rdib_array_from_line_table_chunk_list (scratch.arena, all_line_tables ); - RDIB_ScopeChunk **all_scope_chunks = rdib_array_from_scope_chunk_list (scratch.arena, all_scopes ); - RDIB_VariableChunk **all_local_chunks = rdib_array_from_variable_chunk_list (scratch.arena, all_locals ); - RDIB_VariableChunk **all_gvar_chunks = rdib_array_from_variable_chunk_list (scratch.arena, all_gvars ); - RDIB_VariableChunk **all_tvar_chunks = rdib_array_from_variable_chunk_list (scratch.arena, all_tvars ); - RDIB_ProcedureChunk **all_proc_chunks = rdib_array_from_procedure_chunk_list (scratch.arena, all_procs ); - RDIB_InlineSiteChunk **all_inline_site_chunks = rdib_array_from_inline_site_chunk_list(scratch.arena, all_inline_sites ); - RDIB_TypeChunk **all_type_chunks = rdib_array_from_type_chunk_list (scratch.arena, all_types ); - //RDIB_TypeChunk **all_param_type_chunks = rdib_array_from_type_chunk_list (scratch.arena, all_param_types ); - RDIB_TypeChunk **all_udt_member_type_chunks = rdib_array_from_type_chunk_list (scratch.arena, all_udt_member_types ); - RDIB_TypeChunk **all_enum_member_type_chunks = rdib_array_from_type_chunk_list (scratch.arena, all_enum_member_types); - RDIB_UDTMemberChunk **all_udt_member_chunks = rdib_array_from_udt_member_chunk_list (scratch.arena, all_udt_members ); - RDIB_UDTMemberChunk **all_enum_member_chunks = rdib_array_from_udt_member_chunk_list (scratch.arena, all_enum_members ); - ProfEnd(); - - ProfBegin("Count Symbols, Types, and etc."); - U64 total_unit_count = rdib_unit_chunk_list_total_count (all_units ); - U64 total_src_file_count = rdib_source_file_chunk_list_total_count(all_src_files ); - U64 total_line_table_count = rdib_line_table_chunk_list_total_count (all_line_tables ); - U64 total_scope_count = rdib_scope_chunk_list_total_count (all_scopes ); - U64 total_local_count = rdib_variable_chunk_list_total_count (all_locals ); - U64 total_inline_site_count = rdib_inline_site_chunk_list_total_count(all_inline_sites ); - U64 total_udt_member_count = rdib_udt_member_chunk_list_total_count (all_udt_members ); - U64 total_enum_member_count = rdib_udt_member_chunk_list_total_count (all_enum_members ); - U64 total_type_count = rdib_type_chunk_list_total_count (all_types ); - U64 total_param_type_count = rdib_type_chunk_list_total_count (all_param_types ); - //U64 total_udt_member_type_count = rdib_type_chunk_list_total_count (all_udt_member_types ); - //U64 total_enum_member_type_count = rdib_type_chunk_list_total_count (all_enum_member_types); - U64 total_tvar_count = rdib_variable_chunk_list_total_count (all_tvars ); - U64 total_gvar_count = rdib_variable_chunk_list_total_count (all_gvars ); - U64 total_proc_count = rdib_procedure_chunk_list_total_count (all_procs ); - ProfEnd(); - - // +1 to skip nulls - //RDIB_VariableChunk **extern_gvar_chunks = all_gvar_chunks + 1; - //RDIB_VariableChunk **extern_tvar_chunks = all_tvar_chunks + 1; - //RDIB_ProcedureChunk **extern_proc_chunks = all_proc_chunks + 1; - //RDIB_VariableChunk **static_gvar_chunks = extern_gvar_chunks + extern_gvar_chunk_count; - //RDIB_VariableChunk **static_tvar_chunks = extern_tvar_chunks + extern_tvar_chunk_count; - //RDIB_ProcedureChunk **static_proc_chunks = extern_proc_chunks + extern_proc_chunk_count; - //RDIB_TypeChunk **type_chunks = all_type_chunks + 1; - //RDIB_TypeChunk **struct_chunks = type_chunks + type_chunk_count; - //RDIB_TypeChunk **union_chunks = struct_chunks + struct_chunk_count; - //RDIB_TypeChunk **enum_chunks = union_chunks + union_chunk_count; - //RDIB_TypeChunk **udt_chunks = struct_chunks; - //U64 udt_chunk_count = struct_chunk_count + union_chunk_count + enum_chunk_count; - - ProfBegin("Assign Type Indices"); - U64 total_type_node_count = 1; - { - struct TypeNode { - struct TypeNode *next; - RDIB_Type *type; - }; - struct TypeNode *stack = 0; - struct TypeNode *free_nodes = 0; -#define push_node(t) do { \ -if (((RDIB_Type*)(t))->kind == RDI_TypeKindExt_VirtualTable) break; \ - struct TypeNode *n; \ - if (free_nodes == 0) { \ - n = push_array(scratch.arena, struct TypeNode, 1); \ - } else { \ - n = free_nodes; \ - SLLStackPop(free_nodes); \ - } \ - Assert(t); \ - n->type = t; \ - SLLStackPush(stack, n); \ -} while (0) - - for (U64 chunk_idx = 0; chunk_idx < all_types.count; ++chunk_idx) { - RDIB_TypeChunk *chunk = all_type_chunks[chunk_idx]; - for (U64 i = 0; i < chunk->count; ++i) { - push_node(&chunk->v[i]); - - for (struct TypeNode *cursor = stack; cursor != 0; cursor = cursor->next) { - if (cursor->type->kind == RDI_TypeKind_NULL){ - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_Variadic) { - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_Union) { - // no type refs - } else if (RDI_IsBuiltinType(cursor->type->kind)) { - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_IncompleteStruct) { - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_IncompleteUnion) { - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_IncompleteClass) { - // no type refs - } else if (cursor->type->kind == RDI_TypeKind_IncompleteEnum) { - push_node(cursor->type->udt.enum_type.base_type); - } else if (cursor->type->kind == RDI_TypeKind_Modifier) { - push_node(cursor->type->modifier.type_ref); - } else if (RDI_IsPtrType(cursor->type->kind)) { - push_node(cursor->type->ptr.type_ref); - } else if (cursor->type->kind == RDI_TypeKind_Function) { - push_node(cursor->type->func.return_type); - push_node(cursor->type->func.params_type); - RDIB_Type *params = cursor->type->func.params_type; - for (U64 i = 0; i < params->params.count; ++i) { - push_node(params->params.types[i]); - } - } else if (cursor->type->kind == RDI_TypeKind_Method) { - push_node(cursor->type->method.class_type); - push_node(cursor->type->method.this_type); - push_node(cursor->type->method.return_type); - RDIB_Type *params = cursor->type->method.params_type; - for (U64 i = 0; i < params->params.count; ++i) { - push_node(params->params.types[i]); - } - } else if (cursor->type->kind == RDI_TypeKindExt_StaticMethod) { - push_node(cursor->type->static_method.class_type); - push_node(cursor->type->static_method.return_type); - RDIB_Type *params = cursor->type->static_method.params_type; - for (U64 i = 0; i < params->params.count; ++i) { - push_node(params->params.types[i]); - } - } else if (cursor->type->kind == RDI_TypeKind_Bitfield) { - push_node(cursor->type->bitfield.value_type); - } else if (cursor->type->kind == RDI_TypeKind_Array) { - push_node(cursor->type->array.entry_type); - } else if (cursor->type->kind == RDI_TypeKind_Struct || cursor->type->kind == RDI_TypeKind_Class) { - if (cursor->type->udt.struct_type.derived != 0) { - push_node(cursor->type->udt.struct_type.derived); - } - //push_node(cursor->type->udt.struct_type.vtshape); - } else if (cursor->type->kind == RDI_TypeKind_Enum) { - push_node(cursor->type->udt.enum_type.base_type); - } else if (cursor->type->kind > RDI_TypeKindExt_Lo) { - InvalidPath; - } else { - InvalidPath; - } - } - - for (struct TypeNode *cursor = stack; cursor != 0; cursor = cursor->next) { - // was this type visisted? - if (cursor->type != input->null_type && cursor->type->final_idx == 0) { - cursor->type->final_idx = total_type_node_count; - ++total_type_node_count; - } - } - - free_nodes = stack; - stack = 0; - } - } -#undef push_node - } - ProfEnd(); - - ProfBegin("Type Stats"); - RDIB_TypeStats type_stats = {0}; - { - type_stats.udt_counts = push_array(scratch.arena, U64, all_types.count); - RDIB_TypeStatsTask task = { .chunks = all_type_chunks, .type_stats = &type_stats }; - tp_for_parallel(tp, 0, all_types.count, rdib_type_stats_task, &task); - } - ProfEnd(); - - RDIB_PathTree *path_tree = rdib_build_path_tree(arena->v[0], - tp->worker_count, - input->null_src_file, - all_units.count, - all_unit_chunks, - all_src_files.count, - all_src_file_chunks); - - // loop over structs and build a map with every possible string - ProfBegin("String Map"); - RDIB_StringMap *string_map; - { - U64 top_level_string_count = 2; - U64 sect_string_count = 1; - U64 src_file_string_count = 1; - U64 unit_string_count = 6; - U64 variable_string_count = 2; - U64 procedure_string_count = 2; - U64 scope_string_count = 0; - U64 inline_site_string_count = 0; - U64 member_string_count = 2; - U64 type_string_count = 3; - U64 path_tree_node_count = 1; - - U64 total_string_count = 1 /* :string_map_null */ + - 1 * top_level_string_count + - input->sect_count * sect_string_count + - total_src_file_count * src_file_string_count + - total_unit_count * unit_string_count + - total_local_count * variable_string_count + - total_gvar_count * variable_string_count + - total_tvar_count * variable_string_count + - total_proc_count * procedure_string_count + - total_inline_site_count * inline_site_string_count + - total_udt_member_count * member_string_count + - total_enum_member_count * member_string_count + - total_type_count * type_string_count + - path_tree->node_count * path_tree_node_count + - total_scope_count * scope_string_count; - - string_map = rdib_init_string_map(arena->v[0], total_string_count); - - RDIB_CollectStringsTask task = {0}; - task.string_map = string_map; - task.string_map_update_func = rdib_string_map_update_null; - task.free_buckets = push_array(scratch.arena, RDIB_StringMapBucket *, tp->worker_count); - task.element_indices = push_array(scratch.arena, U64, tp->worker_count); - - // :string_map_null - rdib_string_map_insert_string_table_item(arena->v[0], &task, 0, str8_lit("")); - - // top level info - rdib_string_map_insert_string_table_item(arena->v[0], &task, 0, input->top_level_info.exe_name); - rdib_string_map_insert_string_table_item(arena->v[0], &task, 0, input->top_level_info.producer_string); - - ProfBegin("Sections"); - task.ranges = tp_divide_work(scratch.arena, input->sect_count, tp->worker_count); - task.sects = input->sections; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_sects_task, &task); - ProfEnd(); - - ProfBegin("Units"); - task.ranges = tp_divide_work(scratch.arena, all_units.count, tp->worker_count); - task.units = all_unit_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_units_task, &task); - ProfEnd(); - - ProfBegin("Source Files"); - task.ranges = tp_divide_work(scratch.arena, all_src_files.count, tp->worker_count); - task.src_file_chunks = all_src_file_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_source_files_task, &task); - ProfEnd(); - - ProfBegin("Locals"); - task.ranges = tp_divide_work(scratch.arena, all_locals.count, tp->worker_count); - task.vars = all_local_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_vars_task, &task); - ProfEnd(); - - ProfBegin("Global Variables"); - task.ranges = tp_divide_work(scratch.arena, all_gvars.count, tp->worker_count); - task.vars = all_gvar_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_vars_task, &task); - ProfEnd(); - - ProfBegin("Thread Variables"); - task.ranges = tp_divide_work(scratch.arena, all_tvars.count, tp->worker_count); - task.vars = all_tvar_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_vars_task, &task); - ProfEnd(); - - ProfBegin("Procedures"); - task.ranges = tp_divide_work(scratch.arena, all_procs.count, tp->worker_count); - task.procs = all_proc_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_procs_task, &task); - ProfEnd(); - - ProfBegin("Inline Sites"); - task.ranges = tp_divide_work(scratch.arena, all_inline_sites.count, tp->worker_count); - task.inline_sites = all_inline_site_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_inline_sites_task, &task); - ProfEnd(); - - ProfBegin("UDT Members"); - task.ranges = tp_divide_work(scratch.arena, all_udt_members.count, tp->worker_count); - task.udt_members = all_udt_member_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_udt_members_task, &task); - ProfEnd(); - - ProfBegin("Enum Members"); - task.ranges = tp_divide_work(scratch.arena, all_enum_members.count, tp->worker_count); - task.udt_members = all_enum_member_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_enum_members_task, &task); - ProfEnd(); - - ProfBegin("Types"); - task.ranges = tp_divide_work(scratch.arena, all_types.count, tp->worker_count); - task.types = all_type_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_types_task, &task); - ProfEnd(); - - ProfBegin("Path Tree"); - task.ranges = tp_divide_work(scratch.arena, path_tree->list_count, tp->worker_count); - task.path_node_lists = path_tree->node_lists; - tp_for_parallel(tp, arena, tp->worker_count, rdib_collect_strings_path_nodes_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Name Maps"); - RDIB_StringMap *name_maps[RDI_NameMapKind_COUNT] = {0}; - { - name_maps[RDI_NameMapKind_NULL ] = rdib_init_string_map(scratch.arena, 1 ); - name_maps[RDI_NameMapKind_GlobalVariables ] = rdib_init_string_map(scratch.arena, total_gvar_count ); - name_maps[RDI_NameMapKind_ThreadVariables ] = rdib_init_string_map(scratch.arena, total_tvar_count ); - name_maps[RDI_NameMapKind_Procedures ] = rdib_init_string_map(scratch.arena, total_proc_count ); - name_maps[RDI_NameMapKind_Types ] = rdib_init_string_map(scratch.arena, total_type_count ); - name_maps[RDI_NameMapKind_LinkNameProcedures] = rdib_init_string_map(scratch.arena, total_proc_count ); - name_maps[RDI_NameMapKind_NormalSourcePaths ] = rdib_init_string_map(scratch.arena, total_src_file_count); - - RDIB_CollectStringsTask task = {0}; - task.string_map = 0; - task.string_map_update_func = rdib_string_map_update_concat_void_list_atomic; - task.free_buckets = push_array(scratch.arena, RDIB_StringMapBucket *, tp->worker_count); - task.element_indices = push_array(scratch.arena, U64, tp->worker_count); - - ProfBegin("Global Variables"); - task.string_map = name_maps[RDI_NameMapKind_GlobalVariables]; - task.ranges = tp_divide_work(scratch.arena, all_gvars.count, tp->worker_count); - task.vars = all_gvar_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_name_map_var_task, &task); - ProfEnd(); - - ProfBegin("Thread Variables"); - task.string_map = name_maps[RDI_NameMapKind_ThreadVariables]; - task.ranges = tp_divide_work(scratch.arena, all_tvars.count, tp->worker_count); - task.vars = all_tvar_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_name_map_var_task, &task); - ProfEnd(); - - ProfBegin("Procedure Names"); - task.string_map = name_maps[RDI_NameMapKind_Procedures]; - task.ranges = tp_divide_work(scratch.arena, all_procs.count, tp->worker_count); - task.procs = all_proc_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_name_map_procedure_task, &task); - ProfEnd(); - - ProfBegin("Types"); - task.string_map = name_maps[RDI_NameMapKind_Types]; - task.ranges = tp_divide_work(scratch.arena, all_types.count, tp->worker_count); - task.types = all_type_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_name_map_types_task, &task); - ProfEnd(); - - ProfBegin("Normal Source Paths"); - task.string_map = name_maps[RDI_NameMapKind_NormalSourcePaths]; - task.ranges = tp_divide_work(scratch.arena, all_src_files.count, tp->worker_count); - task.src_file_chunks = all_src_file_chunks; - tp_for_parallel(tp, arena, tp->worker_count, rdib_name_map_normal_paths_task, &task); - ProfEnd(); - } - ProfEnd(); - - ProfBeginDynamic("Extract String Table Buckets [Cap: %llu]", string_map->cap); - U64 string_map_bucket_count; - RDIB_StringMapBucket **string_map_buckets = rdib_extant_buckets_from_string_map(tp, scratch.arena, string_map, &string_map_bucket_count); - rdib_string_map_sort_buckets(tp, string_map_buckets, string_map_bucket_count, tp->worker_count); - rdib_string_map_assign_indices(string_map_buckets, string_map_bucket_count); - ProfEnd(); - - ProfBegin("Extract Name Maps Buckets"); - RDIB_StringMapBucket **name_map_buckets[RDI_NameMapKind_COUNT]; - U64 name_map_bucket_counts[RDI_NameMapKind_COUNT]; - for (U64 i = 0; i < ArrayCount(name_map_buckets); ++i) { - ProfBeginDynamic("Name Map: %.*s", str8_varg(rdi_string_from_name_map_kind(i))); - name_map_buckets[i] = rdib_extant_buckets_from_string_map(tp, scratch.arena, name_maps[i], &name_map_bucket_counts[i]); - rdib_string_map_sort_buckets(tp, name_map_buckets[i], name_map_bucket_counts[i], tp->worker_count); - rdib_string_map_assign_indices(name_map_buckets[i], name_map_bucket_counts[i]); - ProfEnd(); - } - ProfEnd(); - - ProfBegin("Index Run Map"); - RDIB_IndexRunMap *idx_run_map; - RDIB_IndexRunBucket **idx_run_buckets; - U64 idx_run_bucket_count; - { - // TODO: we over-allocate for name map index runs since not every bucket has > 1 value - U64 total_name_map_value_count = 0; - for (U64 i = 0; i < ArrayCount(name_map_bucket_counts); ++i) { - total_name_map_value_count += name_map_bucket_counts[i]; - } - - // rough bucket estimate - U64 idx_run_cap = (total_param_type_count + total_name_map_value_count) * 2; - idx_run_map = rdib_init_index_run_map(arena->v[0], idx_run_cap); - - // setup task context - RDIB_BuildIndexRunsTask task = {0}; - task.idx_run_map = idx_run_map; - task.free_buckets = push_array(scratch.arena, RDIB_IndexRunBucket *, tp->worker_count); - - ProfBegin("Type Params Pass"); - task.type_chunks = all_type_chunks; - tp_for_parallel(tp, arena, all_types.count, rdib_build_idx_runs_params_task, &task); - task.sorter_idx += 1; - ProfEnd(); - - ProfBegin("Name Maps Pass - Build Index Runs"); - for (U64 name_map_kind = 0; name_map_kind < ArrayCount(name_maps); ++name_map_kind) { - ProfBeginDynamic("Name Map: %.*s", str8_varg(rdi_string_from_name_map_kind(name_map_kind))); - task.name_map_kind = name_map_kind; - task.ranges = tp_divide_work(scratch.arena, name_map_bucket_counts[name_map_kind], tp->worker_count); - task.name_map_buckets = name_map_buckets[name_map_kind]; - tp_for_parallel(tp, arena, tp->worker_count, rdib_build_idx_runs_name_map_buckets_task, &task); - task.sorter_idx += 1; - ProfEnd(); - } - ProfEnd(); - - idx_run_buckets = rdib_extant_buckets_from_index_run_map(tp, arena->v[0], idx_run_map, &idx_run_bucket_count); - rdib_index_run_map_sort_buckets(tp, idx_run_buckets, idx_run_bucket_count, task.sorter_idx); - rdib_index_run_map_assign_indices(idx_run_buckets, idx_run_bucket_count); - } - ProfEnd(); - - ProfBegin("Serialize Data Sections"); - RDIB_DataSectionList sections = {0}; - rdib_data_sections_from_top_level_info(arena->v[0], §ions, string_map, &input->top_level_info); - rdib_data_sections_from_binary_sections(arena->v[0], §ions, string_map, input->sections, input->sect_count); - rdib_data_sections_from_path_tree(tp, arena->v[0], §ions, string_map, path_tree); - rdib_data_sections_from_string_map(tp, arena->v[0], §ions, string_map_buckets, string_map_bucket_count); - rdib_data_sections_from_index_runs(tp, arena->v[0], §ions, idx_run_buckets, idx_run_bucket_count); - rdib_data_sections_from_name_maps(tp, arena, §ions, string_map, idx_run_map, name_map_buckets, name_map_bucket_counts); - rdib_data_sections_from_types(tp, arena->v[0], §ions, input->top_level_info.arch, string_map, idx_run_map, all_udt_member_types.count, all_udt_member_type_chunks, all_enum_member_types.count, all_enum_member_type_chunks, total_type_node_count, all_types.count, all_type_chunks, type_stats); - rdib_data_sections_from_line_tables(tp, arena, §ions, total_line_table_count, all_line_tables.count, all_line_table_chunks); - rdib_data_sections_from_source_line_maps(tp, arena, §ions, total_src_file_count, all_src_files.count, all_src_file_chunks); - rdib_data_sections_from_source_files(tp, arena, §ions, string_map, path_tree, total_src_file_count, all_src_files.count, all_src_file_chunks); - rdib_data_sections_from_units(arena->v[0], §ions, string_map, path_tree, total_unit_count, all_units.count, all_unit_chunks); - rdib_data_sections_from_global_variables(tp, arena, §ions, string_map, total_gvar_count, all_gvars.count, all_gvar_chunks); - rdib_data_sections_from_thread_variables(tp, arena, §ions, string_map, total_tvar_count, all_tvars.count, all_tvar_chunks); - rdib_data_sections_from_procedures(tp, arena, §ions, string_map, total_proc_count, all_procs.count, all_proc_chunks); - rdib_data_sections_from_scopes(tp, arena, §ions, string_map, total_scope_count, all_scopes.count, all_scope_chunks); - rdib_data_sections_from_unit_gvar_scope_vmaps(tp, arena, §ions, all_units.count, all_unit_chunks, all_gvars.count, all_gvar_chunks, all_scopes.count, all_scope_chunks); - rdib_data_sections_from_inline_sites(tp, arena->v[0], §ions, string_map, total_inline_site_count, all_inline_sites.count, all_inline_site_chunks); - //rdib_data_sections_from_checksums(tp, arena->v[0], §ions); - ProfEnd(); - - ProfBegin("Make RDI header and sections"); - String8List rdi_data = {0}; - { - // concat section datas - String8List raw_section_datas[RDI_SectionKind_COUNT] = {0}; - for (RDIB_DataSectionNode *n = sections.first; n != 0; n = n->next) { - str8_list_concat_in_place(&raw_section_datas[n->v.tag], &n->v.data); - } - - RDI_Header *rdi_header = push_array(arena->v[0], RDI_Header, 1); - RDI_Section *rdi_sections = push_array(arena->v[0], RDI_Section, RDI_SectionKind_COUNT); - - rdi_header->magic = RDI_MAGIC_CONSTANT; - rdi_header->encoding_version = RDI_ENCODING_VERSION; - rdi_header->data_section_off = sizeof(*rdi_header); - rdi_header->data_section_count = RDI_SectionKind_COUNT; - - str8_list_push(arena->v[0], &rdi_data, str8_struct(rdi_header)); - str8_list_push(arena->v[0], &rdi_data, str8_array(rdi_sections, RDI_SectionKind_COUNT)); - - for (U64 sect_idx = 0; sect_idx < RDI_SectionKind_COUNT; ++sect_idx) { - RDI_Section *dst = &rdi_sections[sect_idx]; - dst->encoding = RDI_SectionEncoding_Unpacked; - dst->pad = 0; - dst->off = 0; - dst->encoded_size = 0; - dst->unpacked_size = 0; - - if (raw_section_datas[sect_idx].total_size > 0) { - str8_list_push_aligner(arena->v[0], &rdi_data, 0, 8); - - dst->off = rdi_data.total_size; - dst->encoded_size = raw_section_datas[sect_idx].total_size; - dst->unpacked_size = raw_section_datas[sect_idx].total_size; - - str8_list_concat_in_place(&rdi_data, &raw_section_datas[sect_idx]); - -#if BUILD_DEBUG - { - U64 expected_total_size = 0; - for (String8Node *n = rdi_data.first; n != 0; n = n->next) { - expected_total_size += n->string.size; - } - Assert(expected_total_size == rdi_data.total_size); - } -#endif - } - } - } - ProfEnd(); - - scratch_end(scratch); - ProfEnd(); - return rdi_data; -} - diff --git a/src/linker/rdi/rdi_builder.h b/src/linker/rdi/rdi_builder.h deleted file mode 100644 index fa529f71..00000000 --- a/src/linker/rdi/rdi_builder.h +++ /dev/null @@ -1,1234 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -StaticAssert(sizeof(RDI_Header) == AlignPow2(sizeof(RDI_Header), 8), g_rdi_header_align_check); - -//////////////////////////////// -// TODO: move to rdi_format.h - -#define RDI_IsCompleteUserDefinedTypeKind(x) ((x) == RDI_TypeKind_Class || (x) == RDI_TypeKind_Struct || (x) == RDI_TypeKind_Union || (x) == RDI_TypeKind_Enum) -#define RDI_IsIncompleteUsedDefinedTypeKind(x) (RDI_TypeKind_FirstIncomplete <= (x) && (x) <= RDI_TypeKind_LastIncomplete) -#define RDI_IsUserDefinedType(x) (RDI_IsCompleteUserDefinedTypeKind(x) || RDI_IsIncompleteUsedDefinedTypeKind(x)) -#define RDI_IsBuiltinType(x) (RDI_TypeKind_FirstBuiltIn <= (x) && (x) <= RDI_TypeKind_LastBuiltIn) -#define RDI_IsPtrType(x) ((x) == RDI_TypeKind_Ptr || (x) == RDI_TypeKind_LRef || (x) == RDI_TypeKind_RRef) - -//////////////////////////////// - -typedef enum -{ - RDIB_DataModel_Null, - RDIB_DataModel_ILP32, - RDIB_DataModel_LLP64, - RDIB_DataModel_LP64, - RDIB_DataModel_ILP64, - RDIB_DataModel_SILP64 -} RDIB_DataModel; - -//////////////////////////////// - -typedef void * RDIB_TypeRef; - -typedef struct RDIB_EvalBytecodeOp -{ - struct RDIB_EvalBytecodeOp *next; - RDI_EvalOp op; - U64 p_size; - U64 p; -} RDIB_EvalBytecodeOp; - -typedef struct RDIB_EvalBytecode -{ - U64 count; - U64 size; - RDIB_EvalBytecodeOp *first; - RDIB_EvalBytecodeOp *last; -} RDIB_EvalBytecode; - -typedef struct RDIB_Location -{ - RDI_LocationKind kind; - Rng1U64List ranges; - union { - struct { - RDI_RegCode reg_code; - U64 offset; - }; - RDIB_EvalBytecode bytecode; - }; - - // used by RDI builder - U64 data_offset; -} RDIB_Location; - -typedef struct RDIB_LocationNode -{ - struct RDIB_LocationNode *next; - RDIB_Location v; -} RDIB_LocationNode; - -typedef struct RDIB_LocationList -{ - U64 count; - RDIB_LocationNode *first; - RDIB_LocationNode *last; -} RDIB_LocationList; - - -typedef struct RDIB_Variable -{ - RDI_LinkFlags link_flags; - String8 name; - String8 link_name; - RDI_LocalKind kind; - struct RDIB_Type *type; - struct RDIB_Type *container_type; - struct RDIB_Procedure *container_proc; - RDIB_LocationList locations; - struct RDIB_VariableChunk *chunk; - struct RDIB_Variable *next; -} RDIB_Variable; - -typedef struct RDIB_VariableNode -{ - struct RDIB_VariableNode *next; - RDIB_Variable v; -} RDIB_VariableNode; - -typedef struct RDIB_VariableList -{ - U64 count; - RDIB_VariableNode *first; - RDIB_VariableNode *last; -} RDIB_VariableList; - -//////////////////////////////// - -typedef struct -{ - RDI_Arch arch; - U64 exe_hash; - U64 voff_max; - String8 exe_name; - String8 producer_string; -} RDIB_TopLevelInfo; - -typedef struct -{ - String8 name; - RDI_BinarySectionFlags flags; - U64 voff_first; - U64 voff_opl; - U64 foff_first; - U64 foff_opl; -} RDIB_BinarySection; - -typedef struct RDIB_LineTableFragment -{ - struct RDIB_SourceFile *src_file; - PairU32 ln_voff; - U64 *voffs; - U32 *line_nums; - U16 *col_nums; - U64 line_count; - U64 col_count; - struct RDIB_LineTableFragment *next_src_file; - struct RDIB_LineTableFragment *next_line_table; - struct RDIB_LineTableFragmentChunk *chunk; -} RDIB_LineTableFragment; - -typedef struct RDIB_LineTableFragmentChunk -{ - struct RDIB_LineTableFragmentChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_LineTableFragment *v; -} RDIB_LineTableFragmentChunk; - -typedef struct RDIB_LineTableFragmentChunkList -{ - U64 count; - RDIB_LineTableFragmentChunk *first; - RDIB_LineTableFragmentChunk *last; -} RDIB_LineTableFragmentChunkList; - -typedef struct RDIB_LineTable -{ - struct RDIB_LineTableChunk *chunk; - U64 count; - RDIB_LineTableFragment *first; - RDIB_LineTableFragment *last; - U32 output_array_idx; -} RDIB_LineTable; - -typedef struct RDIB_LineTableChunk -{ - struct RDIB_LineTableChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_LineTable *v; -} RDIB_LineTableChunk; - -typedef struct RDIB_LineTableChunkList -{ - U64 count; - RDIB_LineTableChunk *first; - RDIB_LineTableChunk *last; -} RDIB_LineTableChunkList; - -typedef struct RDIB_SourceFile -{ - String8 file_path; - String8 normal_full_path; - RDI_ChecksumKind checksum_kind; - String8 checksum; - RDIB_LineTableFragment *line_table_frags; - - U64 src_line_map_idx; - U64 line_table_idx; - - struct RDIB_SourceFileChunk *chunk; -} RDIB_SourceFile; - -typedef struct RDIB_SourceFileChunk -{ - struct RDIB_SourceFileChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_SourceFile *v; -} RDIB_SourceFileChunk; - -typedef struct RDIB_SourceFileChunkList -{ - U64 count; - RDIB_SourceFileChunk *first; - RDIB_SourceFileChunk *last; -} RDIB_SourceFileChunkList; - -typedef struct RDIB_Procedure -{ - RDI_LinkFlags link_flags; - String8 name; - String8 link_name; - struct RDIB_Type *type; - struct RDIB_Type *container_type; - struct RDIB_Procedure *container_proc; - - struct RDIB_Scope *scope; - struct RDIB_ScopeNode *scope_first; - struct RDIB_ScopeNode *scope_last; - - U64 scope_count; - struct RDIB_ProcedureChunk *chunk; -} RDIB_Procedure; - -typedef struct RDIB_Scope -{ - struct RDIB_Scope *parent; - struct RDIB_Scope *first_child; - struct RDIB_Scope *last_child; - struct RDIB_Scope *next_sibling; - struct RDIB_Procedure *container_proc; - Rng1U64List ranges; - RDIB_Variable *local_first; - RDIB_Variable *local_last; - U64 local_count; - struct RDIB_InlineSite *inline_site; - - // used by RDI builder - U64 local_first_idx; - - struct RDIB_ScopeChunk *chunk; -} RDIB_Scope; - -typedef struct RDIB_InlineSite -{ - String8 name; - struct RDIB_Type *type; - struct RDIB_Type *owner; - struct RDIB_InlineSiteChunk *chunk; - union { - struct RDIB_LineTable *line_table; - struct { - void *ud0; - U64 ud1; - U64 ud2; - } convert_ref; - }; -} RDIB_InlineSite; - -typedef RDI_MemberKind RDI_MemberKindExt; -enum -{ - RDI_MemberKind_COUNT = RDI_MemberKind_NestedType, - RDI_MemberKindExt_MemberListPointer // NOTE: must always be last in the list! -}; - -typedef struct RDIB_UDTMember -{ - RDI_MemberKindExt kind; - union { - struct { - String8 name; - U64 offset; - RDIB_TypeRef type_ref; - } data_field; - struct { - String8 name; - RDIB_TypeRef type_ref; - } static_data; - RDIB_TypeRef member_list_pointer; - struct { - RDI_MemberKind kind; - String8 name; - RDIB_TypeRef type_ref; - U64 vftable_offset; - } method; - struct { - String8 name; - RDIB_TypeRef type_ref; - } nested_type; - struct { - RDIB_TypeRef type_ref; - U64 offset; - } base_class; - struct { - RDIB_TypeRef type_ref; - U64 vbptr_off; - U64 vtable_off; - } virtual_base_class; - struct { - String8 name; - U64 value; - } enumerate; - }; - struct RDIB_UDTMember *next; - struct RDIB_UDTMemberChunk *chunk; -} RDIB_UDTMember; - -typedef struct RDIB_UDTMemberList -{ - U64 count; - RDIB_UDTMember *first; - RDIB_UDTMember *last; -} RDIB_UDTMemberList; - -typedef struct RDIB_UDT -{ - struct RDIB_Type *self_type; - struct RDIB_Type *members; - RDIB_SourceFile *decl_src_file; - U32 decl_line_num; - U32 decl_col_num; -} RDIB_UDT; - -enum -{ - RDI_TypeKindExt_Lo = RDI_TypeKind_Count, - RDI_TypeKindExt_VirtualTable, - RDI_TypeKindExt_StaticMethod, - RDI_TypeKindExt_Members, - RDI_TypeKindExt_Params, - RDI_TypeKindExt_Count, -}; -typedef RDI_TypeKind RDI_TypeKindExt; - -typedef struct RDIB_Type -{ - RDI_TypeKindExt kind; - U64 final_idx; - U64 itype; - union { - struct { - String8 name; - U64 size; - } builtin; - struct { - RDI_TypeModifierFlags flags; - RDIB_TypeRef type_ref; - } modifier; - struct { - RDIB_TypeRef type_ref; - U64 size; - } ptr; - struct { - RDIB_TypeRef return_type; - RDIB_TypeRef params_type; - - U64 param_idx_run_bucket_idx; - } func; - struct { - RDIB_TypeRef class_type; - RDIB_TypeRef this_type; - RDIB_TypeRef return_type; - RDIB_TypeRef params_type; - - U64 param_idx_run_bucket_idx; - } method; - struct { - RDIB_TypeRef class_type; - RDIB_TypeRef return_type; - RDIB_TypeRef params_type; - - U64 param_idx_run_bucket_idx; - } static_method; - struct { - U64 off; - U64 count; - RDIB_TypeRef value_type; - } bitfield; - struct { - RDIB_TypeRef entry_type; - U64 size; - } array; - struct { - String8 name; - String8 link_name; - RDIB_TypeRef members; - // assigned in UDT build step - U64 udt_idx; - union { - struct { - U64 size; - RDIB_TypeRef derived; - RDIB_TypeRef vtshape; - } struct_type; - struct { - U64 size; - } union_type; - struct { - String8 name; - RDIB_TypeRef base_type; - } enum_type; - }; - } udt; - struct { - U64 count; - RDIB_TypeRef *types; - } params; - struct { - RDIB_UDTMemberList list; - - // assigned in member build step - B32 is_head; - U64 first_member_idx; - } members, enum_members; - }; - struct RDIB_TypeChunk *chunk; -} RDIB_Type; - -typedef struct RDIB_Unit -{ - RDI_Arch arch; - String8 unit_name; - String8 compiler_name; - String8 source_file; - String8 object_file; - String8 archive_file; - String8 build_path; - RDI_Language language; - RDIB_LineTable *line_table; - U64 virt_range_count; - Rng1U64 *virt_ranges; - - struct RDIB_UnitChunk *chunk; -} RDIB_Unit; - -typedef struct RDIB_DataSection -{ - RDI_SectionKind tag; - String8List data; -} RDIB_DataSection; - -typedef struct RDIB_DataSectionNode -{ - struct RDIB_DataSectionNode *next; - RDIB_DataSection v; -} RDIB_DataSectionNode; - -typedef struct RDIB_DataSectionList -{ - U64 count; - RDIB_DataSectionNode *first; - RDIB_DataSectionNode *last; -} RDIB_DataSectionList; - - -typedef struct RDIB_UnitChunk -{ - U64 base; - U64 count; - U64 cap; - RDIB_Unit *v; - struct RDIB_UnitChunk *next; -} RDIB_UnitChunk; - -typedef struct RDIB_UnitChunkList -{ - U64 count; - RDIB_UnitChunk *first; - RDIB_UnitChunk *last; -} RDIB_UnitChunkList; - -typedef struct RDIB_VariableChunk -{ - struct RDIB_VariableChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_Variable *v; -} RDIB_VariableChunk; - -typedef struct RDIB_VariableChunkList -{ - U64 count; - RDIB_VariableChunk *first; - RDIB_VariableChunk *last; -} RDIB_VariableChunkList; - -typedef struct RDIB_ProcedureChunk -{ - struct RDIB_ProcedureChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_Procedure *v; -} RDIB_ProcedureChunk; - -typedef struct RDIB_ProcedureChunkList -{ - U64 count; - RDIB_ProcedureChunk *first; - RDIB_ProcedureChunk *last; -} RDIB_ProcedureChunkList; - -typedef struct RDIB_ScopeChunk -{ - struct RDIB_ScopeChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_Scope *v; -} RDIB_ScopeChunk; - -typedef struct RDIB_ScopeChunkList -{ - U64 count; - RDIB_ScopeChunk *first; - RDIB_ScopeChunk *last; -} RDIB_ScopeChunkList; - -typedef struct RDIB_ScopeNode -{ - struct RDIB_ScopeNode *next; - RDIB_Scope *v; -} RDIB_ScopeNode; - -typedef struct RDIB_ScopeList -{ - U64 count; - RDIB_Scope *first; - RDIB_Scope *last; -} RDIB_ScopeList; - -typedef struct RDIB_InlineSiteChunk -{ - struct RDIB_InlineSiteChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_InlineSite *v; -} RDIB_InlineSiteChunk; - -typedef struct RDIB_InlineSiteChunkList -{ - U64 count; - RDIB_InlineSiteChunk *first; - RDIB_InlineSiteChunk *last; -} RDIB_InlineSiteChunkList; - -typedef struct RDIB_TypeChunk -{ - struct RDIB_TypeChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_Type *v; -} RDIB_TypeChunk; - -typedef struct -{ - U64 count; - RDIB_TypeChunk *first; - RDIB_TypeChunk *last; -} RDIB_TypeChunkList; - -typedef struct RDIB_UDTMemberChunk -{ - struct RDIB_UDTMemberChunk *next; - U64 base; - U64 count; - U64 cap; - RDIB_UDTMember *v; -} RDIB_UDTMemberChunk; - -typedef struct RDIB_UDTMemberChunkList -{ - U64 count; - RDIB_UDTMemberChunk *first; - RDIB_UDTMemberChunk *last; -} RDIB_UDTMemberChunkList; - -//////////////////////////////// -// UDT Forward Ref Map - -typedef struct -{ - struct RDIB_Type *type; - U64 idx; -} RDIB_UDTFwdrefBucket; - -//////////////////////////////// -// String Map - -typedef struct RDIB_StringMapBucket -{ - String8 string; - - union { - // to get deterministic output we assign each bucket a unique index - union { - struct { - U32 lo; - U32 hi; - }; - U64 v; - } sorter; - - // after buckets are sorted we replace 'sorter' with indices into output array - U64 idx; - }; - - union { - // depending on the usage context sotres: pointers to variables, procedures, and etc. - VoidNode *raw_values; - - // during index-run-map build step 'raw_values' are replaced with index-run bucket index - struct { - U32 count; - // if we have single index - store it in the bucket - union { - U64 idx_run_bucket_idx; - U32 match_idx; - }; - }; - }; -} RDIB_StringMapBucket; - -typedef struct RDIB_StringMap -{ - U64 cap; - RDIB_StringMapBucket **buckets; -} RDIB_StringMap; - -#define RDIB_STRING_MAP_UPDATE_FUNC(name) void name(VoidNode **head, VoidNode *node) -typedef RDIB_STRING_MAP_UPDATE_FUNC(RDIB_StringMapUpdateFunc); - -typedef struct -{ - RDIB_StringMap *string_map; - Rng1U64 *ranges; - U64 *counts; - U64 *offsets; - RDIB_StringMapBucket **result; -} RDIB_GetExtantBucketsStringMapTask; - -typedef struct -{ - U32 *string_table; - U64 string_data_size; - U8 *string_data; - RDIB_StringMapBucket **buckets; - Rng1U64 *ranges; -} RDIB_CopyStringDataTask; - -typedef struct -{ - U64 chunk_idx_opl; - Rng1U64 *ranges; - RDIB_StringMapBucket **src; - RDIB_StringMapBucket **dst; - U32 *chunk_histo; - U32 *chunk_offsets; -} RDIB_StringMapRadixSort; - -//////////////////////////////// -// Index Run Map - -typedef struct RDIB_IndexRunBucket -{ - union { - struct { - U32 lo; - U32 hi; - }; - U64 v; - } sorter; - U32Array indices; - U64 index_in_output_array; -} RDIB_IndexRunBucket; - -typedef struct RDIB_IndexRunMap -{ - U64 cap; - RDIB_IndexRunBucket **buckets; -} RDIB_IndexRunMap; - -//////////////////////////////// - -typedef struct -{ - U64 voff; - U32 size; - U32 idx; -} RDIB_VMapRange; - -//////////////////////////////// - -#define RDIB_PATH_TREE_NIL_STRING str8_lit("") - -typedef struct RDIB_PathTreeNode -{ - struct RDIB_PathTreeNode *parent; - struct RDIB_PathTreeNode *next_order; - struct RDIB_PathTreeNode *next_sibling; - struct RDIB_PathTreeNode *first_child; - struct RDIB_PathTreeNode *last_child; - U64 node_idx; - String8 sub_path; - RDIB_SourceFile *src_file; -} RDIB_PathTreeNode; - -typedef struct RDIB_PathTreeNodeList -{ - U64 count; - RDIB_PathTreeNode *first; - RDIB_PathTreeNode *last; -} RDIB_PathTreeNodeList; - -typedef struct RDIB_PathTree -{ - RDIB_PathTreeNode *root; - U64 node_count; - U64 next_list_idx; - U64 list_count; - RDIB_PathTreeNodeList *node_lists; -} RDIB_PathTree; - -//////////////////////////////// - -typedef struct RDIB_Input -{ - U64 unit_chunk_cap; - U64 src_file_chunk_cap; - U64 symbol_chunk_cap; - U64 line_table_cap; - U64 inline_site_cap; - U64 type_cap; - U64 udt_cap; - - RDIB_TopLevelInfo top_level_info; - U64 sect_count; - RDIB_BinarySection *sections; - RDIB_UnitChunkList units; - RDIB_SourceFileChunkList src_files; - RDIB_LineTableChunkList line_tables; - RDIB_ScopeChunkList scopes; - RDIB_VariableChunkList locals; - RDIB_VariableChunkList gvars; - RDIB_VariableChunkList extern_gvars; - RDIB_VariableChunkList static_gvars; - RDIB_VariableChunkList tvars; - RDIB_VariableChunkList extern_tvars; - RDIB_VariableChunkList static_tvars; - RDIB_ProcedureChunkList procs; - RDIB_ProcedureChunkList extern_procs; - RDIB_ProcedureChunkList static_procs; - RDIB_InlineSiteChunkList inline_sites; - RDIB_TypeChunkList types; - RDIB_TypeChunkList struct_list; - RDIB_TypeChunkList union_list; - RDIB_TypeChunkList enum_list; - RDIB_TypeChunkList param_types; - RDIB_TypeChunkList member_types; - RDIB_TypeChunkList enum_types; - RDIB_UDTMemberChunkList udt_members; - RDIB_UDTMemberChunkList enum_members; - - RDIB_SourceFile *null_src_file; - RDIB_LineTable *null_line_table; - RDIB_LineTableFragment *null_frag; - RDIB_Type *null_type; - RDIB_Scope *null_scope; - RDIB_Unit *null_unit; - RDIB_Procedure *null_proc; - RDIB_Variable *null_local; - RDIB_Variable *null_gvar; - RDIB_Variable *null_tvar; - RDIB_UDTMember *null_udt_member; - RDIB_UDTMember *null_enum_member; - RDIB_InlineSite *null_inline_site; - - RDIB_Type *variadic_type; - - //RDIB_TypeChunkList struct_list; - //RDIB_TypeChunkList union_list; - //RDIB_TypeChunkList enum_list; - //RDIB_TypeChunkList param_types; -} RDIB_Input; - -//////////////////////////////// -// Parallel For Tasks - -typedef struct -{ - U64 *udt_counts; -} RDIB_TypeStats; - -typedef struct -{ - RDIB_TypeChunk **chunks; - RDIB_TypeStats *type_stats; -} RDIB_TypeStatsTask; - -typedef struct -{ - Rng1U64 *ranges; - U64 *counts; - U64 *offsets; - RDIB_TypeChunk **type_chunks; - RDIB_StringMap *string_map; - union { - RDI_Member *udt_members_rdi; - RDI_EnumMember *enum_members_rdi; - }; -} RDIB_MembersTask; - -typedef struct -{ - RDIB_TypeChunk **type_chunks; - RDIB_TypeStats type_stats; - U64 *udt_base_idx; - RDI_UDT *udts; -} RDIB_UserDefinesTask; - -typedef struct -{ - U64 addr_size; - RDIB_StringMap *string_map; - RDIB_IndexRunMap *idx_run_map; - RDIB_TypeChunk **type_chunks; - RDIB_TypeStats type_stats; - RDI_TypeNode *type_nodes; -} RDIB_TypeNodesTask; - -typedef struct -{ - RDIB_StringMap *string_map; - Rng1U64 *ranges; - RDIB_StringMapUpdateFunc *string_map_update_func; - RDIB_StringMapBucket **free_buckets; - U64 *insert_counts; - U64 *element_indices; - union - { - RDIB_UnitChunk **units; - RDIB_BinarySection *sects; - RDIB_SourceFileChunk **src_file_chunks; - RDIB_VariableChunk **vars; - RDIB_ProcedureChunk **procs; - RDIB_InlineSiteChunk **inline_sites; - RDIB_UDTMemberChunk **udt_members; - RDIB_UDTMemberChunk **enum_members; - RDIB_TypeChunk **types; - RDIB_PathTreeNodeList *path_node_lists; - }; -} RDIB_CollectStringsTask; - -typedef struct -{ - RDIB_StringMap *string_map; - Rng1U64 *ranges; - RDIB_TypeChunk **chunks; - String8List *data_lists; -} RDIB_BuildTypeDataTask; - -typedef struct -{ - RDIB_StringMap *string_map; - Rng1U64 *ranges; - union { - struct { - RDIB_VariableChunk **gvars_rdib; - String8List *gvars_out; - }; - struct { - RDIB_VariableChunk **tvars_rdib; - String8List *tvars_out; - }; - struct { - RDIB_ProcedureChunk **procs_rdib; - String8List *procs_out; - }; - struct { - RDIB_ScopeChunk **scopes_rdib; - U64 *scope_voff_counts; - U64 *loc_data_sizes; - U64 *local_counts; - U64 *loc_block_counts; - U64 *scope_voff_offsets; - U64 *local_offsets; - U64 *loc_block_offsets; - U64 *loc_data_offsets; - U64 *scope_voffs_rdi; - RDI_Scope *scopes_rdi; - RDI_Local *locals_rdi; - RDI_LocationBlock *loc_blocks_rdi; - U8 *loc_data_rdi; - }; - }; -} RDIB_BuildSymbolSectionTask; - -typedef union -{ - struct { - U64 *counts; - U64 *offsets; - Rng1U64 *ranges; - RDIB_VMapRange *vmap; - union { - RDIB_UnitChunk **unit_chunks; - RDIB_VariableChunk **gvar_chunks; - RDIB_ScopeChunk **scope_chunks; - }; - }; - - struct { - U64 vmap_counts[3]; - RDIB_VMapRange *vmaps[3]; - String8List raw_vmaps[3]; - }; -} RDIB_VMapBuilderTask; - -typedef struct -{ - U64 sorter_idx; - RDI_NameMapKind name_map_kind; - RDIB_IndexRunMap *idx_run_map; - RDIB_IndexRunBucket **free_buckets; - Rng1U64 *ranges; - union { - RDIB_TypeChunk **type_chunks; - RDIB_StringMapBucket **name_map_buckets; - }; -} RDIB_BuildIndexRunsTask; - -typedef struct -{ - RDIB_IndexRunBucket **buckets; - Rng1U64 *ranges; - U32 *output_array; -} RDIB_IdxRunCopyTask; - -typedef struct -{ - RDIB_IndexRunMap *idx_run_map; - Rng1U64 *ranges; - U64 *counts; - U64 *offsets; - RDIB_IndexRunBucket **result; -} RDIB_GetExtantBucketsIndexRunMapTask; - -typedef struct -{ - U64 chunk_idx_opl; - Rng1U64 *ranges; - RDIB_IndexRunBucket **src; - RDIB_IndexRunBucket **dst; - U32 *chunk_histo; - U32 *chunk_offsets; -} RDIB_IndexRunMapRadixSort; - -typedef struct -{ - RDIB_StringMap *string_map; - RDIB_IndexRunMap *idx_run_map; - U64 *in_bucket_counts; - RDIB_StringMapBucket ***in_buckets; - - RDI_NameMapBucket **out_buckets; - RDI_NameMapNode **out_nodes; - U64 *out_bucket_counts; - U64 *out_node_counts; -} RDIB_NameMapBuilderTask; - -typedef struct -{ - RDIB_PathTree *path_tree; - RDIB_StringMap *string_map; - RDI_FilePathNode *nodes_dst; -} RDIB_BuildFilePathNodesTask; - -typedef struct -{ - RDIB_SourceFile **src_file_arr; - U32 *out_line_counts; - U32 *out_voff_counts; - U32 **out_line_nums; - U32 **out_line_ranges; - U64 **out_voffs; -} RDIB_SrcLineMapsTask; - -typedef struct -{ - RDIB_LineTableChunk **chunks; - Rng1U64 *ranges; - - U64 *out_line_table_counts; - U64 **out_line_table_voffs; - RDI_Line **out_line_table_lines; -} RDIB_BuildLineTablesTask; - -typedef struct -{ - Rng1U64 *ranges; - RDIB_StringMap *string_map; - RDIB_PathTree *path_tree; - RDIB_SourceFileChunk **src_file_chunks; - RDI_SourceFile *src_files_dst; -} RDIB_FillSourceFilesTask; - -//////////////////////////////// -// Data Model Helpers - -internal RDIB_DataModel rdib_infer_data_model(OperatingSystem os, RDI_Arch arch); - -internal RDI_TypeKind rdib_short_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_unsigned_short_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_int_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_unsigned_int_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_long_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_unsigned_long_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_long_long_type_from_data_model (RDIB_DataModel data_model); -internal RDI_TypeKind rdib_unsigned_long_long_type_from_data_model(RDIB_DataModel data_model); -internal RDI_TypeKind rdib_pointer_size_t_type_from_data_model (RDIB_DataModel data_model); - -//////////////////////////////// - -internal void rdib_udt_member_list_push_node (RDIB_UDTMemberList *list, RDIB_UDTMember *node); -internal void rdib_udt_member_list_concat_in_place(RDIB_UDTMemberList *list, RDIB_UDTMemberList *to_concat); - -internal RDIB_LineTableFragment * rdib_line_table_push(Arena *arena, RDIB_LineTable *list); - -//////////////////////////////// -// Chunk Lists - -// push -internal RDIB_Unit * rdib_unit_chunk_list_push (Arena *arena, RDIB_UnitChunkList *list, U64 cap); -internal RDIB_Scope * rdib_scope_chunk_list_push (Arena *arena, RDIB_ScopeChunkList *list, U64 cap); -internal RDIB_Procedure * rdib_procedure_chunk_list_push (Arena *arena, RDIB_ProcedureChunkList *list, U64 cap); -internal RDIB_Variable * rdib_variable_chunk_list_push (Arena *arena, RDIB_VariableChunkList *list, U64 cap); -internal RDIB_LineTable * rdib_line_table_chunk_list_push (Arena *arena, RDIB_LineTableChunkList *list, U64 cap); -internal RDIB_Type * rdib_type_chunk_list_push (Arena *arena, RDIB_TypeChunkList *list, U64 cap); -internal RDIB_UDTMember * rdib_udt_member_chunk_list_push (Arena *arena, RDIB_UDTMemberChunkList *list, U64 cap); -internal RDIB_SourceFile * rdib_source_file_chunk_list_push(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap); -internal RDIB_InlineSite * rdib_inline_site_chunk_list_push(Arena *arena, RDIB_InlineSiteChunkList *list, U64 cap); - -internal RDIB_Scope * rdib_scope_chunk_list_push_zero (Arena *arena, RDIB_ScopeChunkList *list, U64 cap); -internal RDIB_Procedure * rdib_procedure_chunk_list_push_zero (Arena *arena, RDIB_ProcedureChunkList *list, U64 cap); -internal RDIB_Variable * rdib_variable_chunk_list_push_zero (Arena *arena, RDIB_VariableChunkList *list, U64 cap); -internal RDIB_LineTable * rdib_line_table_chunk_list_push_zero (Arena *arena, RDIB_LineTableChunkList *list, U64 cap); -internal RDIB_Type * rdib_type_chunk_list_push_zero (Arena *arena, RDIB_TypeChunkList *list, U64 cap); -internal RDIB_UDTMember * rdib_udt_member_chunk_list_push_zero (Arena *arena, RDIB_UDTMemberChunkList *list, U64 cap); -internal RDIB_SourceFile * rdib_source_file_chunk_list_push_zero(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap); -internal RDIB_InlineSite * rdib_inline_site_chunk_list_push_zero(Arena *arena, RDIB_InlineSiteChunkList *list, U64 cap); - -// push many -internal RDIB_UnitChunk * rdib_unit_chunk_list_reserve_ex(Arena *arena, RDIB_UnitChunkList *list, U64 chunk_count, U64 item_count); - -internal void rdib_unit_chunk_list_reserve (Arena *arena, RDIB_UnitChunkList *list, U64 cap); -internal void rdib_type_chunk_list_reserve (Arena *arena, RDIB_TypeChunkList *list, U64 cap); -internal void rdib_source_file_chunk_list_reserve(Arena *arena, RDIB_SourceFileChunkList *list, U64 cap); - -// concat in place -internal void rdib_scope_chunk_list_concat_in_place (RDIB_ScopeChunkList *list, RDIB_ScopeChunkList *to_concat); -internal void rdib_udt_member_chunk_list_concat_in_place (RDIB_UDTMemberChunkList *list, RDIB_UDTMemberChunkList *to_concat); -internal void rdib_procedure_chunk_list_concat_in_place (RDIB_ProcedureChunkList *list, RDIB_ProcedureChunkList *to_concat); -internal void rdib_variable_chunk_list_concat_in_place (RDIB_VariableChunkList *list, RDIB_VariableChunkList *to_concat); -internal void rdib_inline_site_chunk_list_concat_in_place(RDIB_InlineSiteChunkList *list, RDIB_InlineSiteChunkList *to_concat); -internal void rdib_inline_site_chunk_list_concat_in_place(RDIB_InlineSiteChunkList *list, RDIB_InlineSiteChunkList *to_concat); -internal void rdib_type_chunk_list_concat_in_place (RDIB_TypeChunkList *list, RDIB_TypeChunkList *to_concat); -internal void rdib_source_file_chunk_list_concat_in_place(RDIB_SourceFileChunkList *list, RDIB_SourceFileChunkList *to_concat); - -// concat in place many -internal void rdib_type_chunk_list_concat_in_place_many (RDIB_TypeChunkList *list, RDIB_TypeChunkList *to_concat, U64 count); -internal void rdib_udt_member_chunk_list_concat_in_place_many(RDIB_UDTMemberChunkList *list, RDIB_UDTMemberChunkList *to_concat, U64 count); - -// array from chunk list -internal RDIB_UnitChunk ** rdib_array_from_unit_chunk_list (Arena *arena, RDIB_UnitChunkList list); -internal RDIB_ScopeChunk ** rdib_array_from_scope_chunk_list (Arena *arena, RDIB_ScopeChunkList list); -internal RDIB_ProcedureChunk ** rdib_array_from_procedure_chunk_list (Arena *arena, RDIB_ProcedureChunkList list); -internal RDIB_VariableChunk ** rdib_array_from_variable_chunk_list (Arena *arena, RDIB_VariableChunkList list); -internal RDIB_LineTableChunk ** rdib_array_from_line_table_chunk_list (Arena *arena, RDIB_LineTableChunkList list); -internal RDIB_InlineSiteChunk ** rdib_array_from_inline_site_chunk_list(Arena *arena, RDIB_InlineSiteChunkList list); -internal RDIB_UDTMemberChunk ** rdib_array_from_udt_member_chunk_list (Arena *arena, RDIB_UDTMemberChunkList list); -internal RDIB_TypeChunk ** rdib_array_from_type_chunk_list (Arena *arena, RDIB_TypeChunkList list); -internal RDIB_SourceFileChunk ** rdib_array_from_source_file_chunk_list(Arena *arena, RDIB_SourceFileChunkList list); - -// total count from chunk list -internal U64 rdib_unit_chunk_list_total_count (RDIB_UnitChunkList list); -internal U64 rdib_scope_chunk_list_total_count (RDIB_ScopeChunkList list); -internal U64 rdib_variable_chunk_list_total_count (RDIB_VariableChunkList list); -internal U64 rdib_line_table_chunk_list_total_count (RDIB_LineTableChunkList list); -internal U64 rdib_procedure_chunk_list_total_count (RDIB_ProcedureChunkList list); -internal U64 rdib_inline_site_chunk_list_total_count(RDIB_InlineSiteChunkList list); -internal U64 rdib_udt_member_chunk_list_total_count (RDIB_UDTMemberChunkList list); -internal U64 rdib_type_chunk_list_total_count (RDIB_TypeChunkList list); -internal U64 rdib_source_file_chunk_list_total_count(RDIB_SourceFileChunkList list); - -// pointer -> array index -internal U32 rdib_idx_from_unit (RDIB_Unit *n); -internal U32 rdib_idx_from_scope (RDIB_Scope *n); -internal U32 rdib_idx_from_variable (RDIB_Variable *n); -internal U32 rdib_idx_from_procedure (RDIB_Procedure *n); -internal U32 rdib_idx_from_source_file(RDIB_SourceFile *n); -internal U32 rdib_idx_from_line_table (RDIB_LineTable *n); -internal U32 rdib_idx_from_type (RDIB_Type *n); -internal U32 rdib_idx_from_udt_type (RDIB_Type *n); -internal U32 rdib_idx_from_inline_site(RDIB_InlineSite *n); - -//////////////////////////////// - -//- Source File - -internal B32 rdib_source_file_match(RDIB_SourceFile *a, RDIB_SourceFile *b, OperatingSystem os); - -//- Eval Ops - -internal RDIB_EvalBytecodeOp * rdib_bytecode_push_op (Arena *arena, RDIB_EvalBytecode *bytecode, RDI_EvalOp op, RDI_U64 p); -internal void rdib_bytecode_push_ucsont(Arena *arena, RDIB_EvalBytecode *bytecode, RDI_U64 uconst); -internal void rdib_bytecode_push_sconst(Arena *arena, RDIB_EvalBytecode *bytecode, RDI_S64 sconst); - -//- Location - -internal RDIB_Location rdib_make_location_addr_byte_stream (Rng1U64List ranges, RDIB_EvalBytecode bytecode); -internal RDIB_Location rdib_make_location_addr_bytecode_stream (Rng1U64List ranges, RDIB_EvalBytecode bytecode); -internal RDIB_Location rdib_make_location_val_bytecode_stream (Rng1U64List ranges, RDIB_EvalBytecode bytecode); -internal RDIB_Location rdib_make_location_addr_reg_plus_u16 (Rng1U64List ranges, RDI_RegCode reg_code, RDI_U16 offset); - -internal RDIB_Location rdib_make_location_addr_addr_reg_plus_u16(Rng1U64List ranges, RDI_RegCode reg_code, RDI_U16 offset); -internal RDIB_Location rdib_make_location_addr_reg_plus_u16 (Rng1U64List ranges, RDI_RegCode reg_code, RDI_U16 offset); -internal RDIB_Location rdib_make_location_val_reg (Rng1U64List ranges, RDI_RegCode reg_code); - -internal RDIB_LocationNode * rdib_push_location_addr_reg_off(Arena *arena, RDIB_LocationList *list, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 is_reference, Rng1U64List ranges); - -//- UDT Fwdrefs - -internal U64 rdib_udt_fwdref_map_hash(String8 string); -internal RDIB_UDTFwdrefBucket * rdib_udt_fwdref_map_insert_or_update(RDIB_UDTFwdrefBucket **buckets, U64 cap, U64 hash, RDIB_UDTFwdrefBucket *new_bucket); -internal RDIB_UDTFwdrefBucket * rdib_udt_fwdrefmap_map_lookup(RDIB_UDTFwdrefBucket **buckets, U64 cap, U64 hash, String8 name); - -//- Types - -internal RDIB_TypeRef rdib_make_type_ref(Arena *arena, RDIB_Type *type); -internal void rdib_deref_type_refs(TP_Context *tp, RDIB_TypeChunkList *list); - -internal RDIB_TypeStats rdib_sum_type_stats (RDIB_TypeStats *stats, U64 count); -internal U64 rdib_udt_count_from_type_stats (RDIB_TypeStats *stats); -internal U64 rdib_type_node_count_from_type_stats(RDIB_TypeStats *stats); - -internal U64 rdib_size_from_type (RDIB_Type *type); -internal U64 rdib_count_members_deep(RDIB_Type *type); - -//- Path Tree - -internal RDIB_PathTree * rdib_path_tree_init (Arena *arena, U64 list_count); -internal void rdib_path_tree_insert (Arena *arena, RDIB_PathTree *tree, String8 path, RDIB_SourceFile *src_file); -internal U32 rdib_idx_from_path_tree(RDIB_PathTree *tree, String8 path); - - -//- String Map - -internal U64 rdib_string_map_hash (String8 string); -internal RDIB_StringMap * rdib_init_string_map (Arena *arena, U64 cap); -internal U32 rdib_idx_from_string_map (RDIB_StringMap *string_map, String8 string); -internal RDIB_StringMapBucket * rdib_string_map_insert_or_update (RDIB_StringMapBucket **buckets, U64 cap, U64 hash, RDIB_StringMapBucket *new_bucket, RDIB_StringMapUpdateFunc *update_func); -internal void rdib_string_map_assign_indices (RDIB_StringMapBucket **buckets, U64 bucket_count); -internal RDIB_StringMapBucket ** rdib_extant_buckets_from_string_map(TP_Context *tp, Arena *arena, RDIB_StringMap *string_map, U64 *bucket_count_out); -internal void rdib_string_map_sort_buckets (TP_Context *tp, RDIB_StringMapBucket **buckets, U64 bucket_count, U64 max_sorter); - -//- String Map Specialized Inserters - -internal void rdib_string_map_insert_item (Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string, void *value); -internal void rdib_string_map_insert_string_table_item(Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string); -internal void rdib_string_map_insert_name_map_item (Arena *arena, RDIB_CollectStringsTask *task, U64 task_id, String8 string, VoidNode *node); - -//- Index Run Map - -internal U64 rdib_index_run_hash (U32 count, U32 *idxs); -internal RDIB_IndexRunMap * rdib_init_index_run_map (Arena *arena, U64 cap); -internal RDIB_IndexRunBucket * rdib_index_run_map_insert_or_update (Arena *arena, RDIB_IndexRunBucket **buckets, U64 cap, U64 hash, RDIB_IndexRunBucket *new_bucket, U64 *bucket_idx_out); -internal U32 rdib_idx_run_from_bucket_idx (RDIB_IndexRunMap *map, U64 bucket_idx); -internal void rdib_index_run_map_assign_indices (RDIB_IndexRunBucket **buckets, U64 bucket_count); -internal RDIB_IndexRunBucket ** rdib_extant_buckets_from_index_run_map(TP_Context *tp, Arena *arena, RDIB_IndexRunMap *idx_run_map, U64 *bucket_count_out); -internal void rdib_index_run_map_sort_buckets (TP_Context *tp, RDIB_IndexRunBucket **buckets, U64 bucket_count, U64 chunk_idx_opl); - -//- Index Map Spesialized Query - -internal U32 rdib_idx_from_params(RDIB_IndexRunMap *map, RDIB_Type *params); - -//- Data Sections - -internal void rdib_data_section_list_push_node (RDIB_DataSectionList *list, RDIB_DataSectionNode *node); -internal RDIB_DataSectionNode * rdib_data_section_list_push (Arena *arena, RDIB_DataSectionList *list, RDIB_DataSection v); -internal void rdib_data_section_list_concat_in_place(RDIB_DataSectionList *list, RDIB_DataSectionList *to_concat); - -internal void rdib_data_sections_from_top_level_info (Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_TopLevelInfo *src); -internal void rdib_data_sections_from_binary_sections (Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_BinarySection *binary_sects, U64 binary_sects_count); -internal void rdib_data_sections_from_string_map (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMapBucket **buckets, U64 bucket_count); -internal void rdib_data_sections_from_index_runs (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_IndexRunBucket **buckets, U64 bucket_count); -internal void rdib_data_sections_from_file_path_nodes (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_PathTree *tree); -internal void rdib_data_sections_from_source_files (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_PathTree *path_tree, U64 total_src_file_count, U64 src_file_chunk_count, RDIB_SourceFileChunk **src_file_chunks); -internal void rdib_data_sections_from_units (Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_PathTree *path_tree, U64 total_unit_count, U64 unit_chunk_count, RDIB_UnitChunk **unit_chunks); -internal void rdib_data_sections_from_string_map (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMapBucket **buckets, U64 bucket_count); -internal void rdib_data_sections_from_types(TP_Context *tp, - Arena *arena, - RDIB_DataSectionList *sect_list, - RDI_Arch arch, - RDIB_StringMap *string_map, - RDIB_IndexRunMap *idx_run_map, - U64 udt_member_chunk_count, - RDIB_TypeChunk **udt_member_type_chunks, - U64 enum_member_chunk_count, - RDIB_TypeChunk **enum_member_type_chunks, - U64 total_type_node_count, - U64 type_chunk_count, - RDIB_TypeChunk **type_chunks, - RDIB_TypeStats type_stats); -internal void rdib_data_sections_from_global_variables (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, U64 total_count, U64 chunk_count, RDIB_VariableChunk **chunks); -internal void rdib_data_sections_from_thread_variables (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, U64 total_count, U64 chunk_count, RDIB_VariableChunk **chunks); -internal void rdib_data_sections_from_procedures (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, U64 total_count, U64 chunk_count, RDIB_ProcedureChunk **chunks); -internal void rdib_data_sections_from_scopes (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, U64 total_count, U64 chunk_count, RDIB_ScopeChunk **chunks); -internal void rdib_data_sections_from_name_maps (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, RDIB_IndexRunMap *idx_run_map, RDIB_StringMapBucket **src_name_maps[RDI_NameMapKind_COUNT], U64 src_name_map_counts[RDI_NameMapKind_COUNT]); -internal void rdib_data_sections_from_source_line_maps (TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, U64 total_src_file_count, U64 src_file_chunk_count, RDIB_SourceFileChunk **src_fille_chunks); -internal void rdib_data_sections_from_unit_gvar_scope_vmaps(TP_Context *tp, TP_Arena *arena, RDIB_DataSectionList *sect_list, U64 unit_chunk_count, RDIB_UnitChunk **unit_chunks, U64 gvar_chunk_count, RDIB_VariableChunk **gvar_chunks, U64 scope_chunk_count, RDIB_ScopeChunk **scope_chunks); -internal void rdib_data_sections_from_inline_sites (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list, RDIB_StringMap *string_map, U64 total_inline_site_count, U64 inline_site_chunk_count, RDIB_InlineSiteChunk **inline_site_chunks); -internal void rdib_data_sections_from_checksums (TP_Context *tp, Arena *arena, RDIB_DataSectionList *sect_list); - -internal RDIB_Input rdib_init_input(Arena *arena); -internal String8List rdib_finish(TP_Context *tp, TP_Arena *arena, RDIB_Input *input); - diff --git a/src/linker/rdi/rdi_coff.c b/src/linker/rdi/rdi_coff.c deleted file mode 100644 index 4db328bc..00000000 --- a/src/linker/rdi/rdi_coff.c +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal RDI_Arch -rdi_arch_from_coff_machine(COFF_MachineType machine) -{ - switch (machine) { - case COFF_MachineType_X86: return RDI_Arch_X86; - case COFF_MachineType_X64: return RDI_Arch_X64; - - case COFF_MachineType_Unknown: - case COFF_MachineType_Am33: - case COFF_MachineType_Arm: - case COFF_MachineType_Arm64: - case COFF_MachineType_ArmNt: - case COFF_MachineType_Ebc: - case COFF_MachineType_Ia64: - case COFF_MachineType_M32R: - case COFF_MachineType_Mips16: - case COFF_MachineType_MipsFpu: - case COFF_MachineType_MipsFpu16: - case COFF_MachineType_PowerPc: - case COFF_MachineType_PowerPcFp: - case COFF_MachineType_R4000: - case COFF_MachineType_RiscV32: - case COFF_MachineType_RiscV64: - case COFF_MachineType_Sh3: - case COFF_MachineType_Sh3Dsp: - case COFF_MachineType_Sh4: - case COFF_MachineType_Sh5: - case COFF_MachineType_Thumb: - case COFF_MachineType_WceMipsV2: - NotImplemented; - default: - return RDI_Arch_NULL; - } -} - -internal RDI_BinarySectionFlags -rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags) -{ - RDI_BinarySectionFlags result = 0; - if (flags & COFF_SectionFlag_MemRead) { - result |= RDI_BinarySectionFlag_Read; - } - if (flags & COFF_SectionFlag_MemWrite) { - result |= RDI_BinarySectionFlag_Write; - } - if (flags & COFF_SectionFlag_MemExecute) { - result |= RDI_BinarySectionFlag_Execute; - } - return result; -} diff --git a/src/linker/rdi/rdi_cv.c b/src/linker/rdi/rdi_cv.c deleted file mode 100644 index ac0b99f2..00000000 --- a/src/linker/rdi/rdi_cv.c +++ /dev/null @@ -1,243 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal RDI_Arch -rdi_arch_from_cv_arch(CV_Arch arch) -{ - switch (arch) { - case CV_Arch_8086: return RDI_Arch_X86; - case CV_Arch_X64: return RDI_Arch_X64; - - case CV_Arch_8080: - case CV_Arch_80286: - case CV_Arch_80386: - case CV_Arch_80486: - case CV_Arch_PENTIUM: - case CV_Arch_PENTIUMII: - case CV_Arch_PENTIUMIII: - case CV_Arch_MIPS: - case CV_Arch_MIPS16: - case CV_Arch_MIPS32: - case CV_Arch_MIPS64: - case CV_Arch_MIPSI: - case CV_Arch_MIPSII: - case CV_Arch_MIPSIII: - case CV_Arch_MIPSIV: - case CV_Arch_MIPSV: - case CV_Arch_M68000: - case CV_Arch_M68010: - case CV_Arch_M68020: - case CV_Arch_M68030: - case CV_Arch_M68040: - case CV_Arch_ALPHA: - case CV_Arch_ALPHA_21164: - case CV_Arch_ALPHA_21164A: - case CV_Arch_ALPHA_21264: - case CV_Arch_ALPHA_21364: - case CV_Arch_PPC601: - case CV_Arch_PPC603: - case CV_Arch_PPC604: - case CV_Arch_PPC620: - case CV_Arch_PPCFP: - case CV_Arch_PPCBE: - case CV_Arch_SH3: - case CV_Arch_SH3E: - case CV_Arch_SH3DSP: - case CV_Arch_SH4: - case CV_Arch_SHMEDIA: - case CV_Arch_ARM3: - case CV_Arch_ARM4: - case CV_Arch_ARM4T: - case CV_Arch_ARM5: - case CV_Arch_ARM5T: - case CV_Arch_ARM6: - case CV_Arch_ARM_XMAC: - case CV_Arch_ARM_WMMX: - case CV_Arch_ARM7: - case CV_Arch_OMNI: - case CV_Arch_IA64_1: - case CV_Arch_IA64_2: - case CV_Arch_CEE: - case CV_Arch_AM33: - case CV_Arch_M32R: - case CV_Arch_TRICORE: - case CV_Arch_EBC: - case CV_Arch_THUMB: - case CV_Arch_ARMNT: - case CV_Arch_ARM64: - case CV_Arch_D3D11_SHADER: - NotImplemented; - default: - return RDI_Arch_NULL; - } -} - -internal RDI_Language -rdi_language_from_cv_language(CV_Language language) -{ - switch (language) { - case CV_Language_C: return RDI_Language_C; - case CV_Language_CXX: return RDI_Language_CPlusPlus; - case CV_Language_MASM: return RDI_Language_Masm; - case CV_Language_LINK: return RDI_Language_NULL; - case CV_Language_CVTRES: return RDI_Language_NULL; - - case CV_Language_FORTRAN: - case CV_Language_PASCAL: - case CV_Language_BASIC: - case CV_Language_COBOL: - case CV_Language_CVTPGD: - case CV_Language_CSHARP: - case CV_Language_VB: - case CV_Language_ILASM: - case CV_Language_JAVA: - case CV_Language_JSCRIPT: - case CV_Language_MSIL: - case CV_Language_HLSL: - NotImplemented; - default: - return RDI_Language_NULL; - } -} - -internal RDI_TypeModifierFlags -rdi_type_modifier_flags_from_cv_modifier_flags(CV_ModifierFlags flags) -{ - RDI_TypeModifierFlags result = 0; - if (flags & CV_ModifierFlag_Const) { - result |= RDI_TypeModifierFlag_Const; - } - if (flags & CV_ModifierFlag_Volatile) { - result |= RDI_TypeModifierFlag_Volatile; - } - return result; -} - -internal RDI_TypeModifierFlags -rdi_type_modifier_flags_from_cv_pointer_attribs(CV_PointerAttribs attribs) -{ - RDI_TypeModifierFlags result = 0; - if (attribs & CV_PointerAttrib_Const) { - result |= RDI_TypeModifierFlag_Const; - } - if (attribs & CV_PointerAttrib_Volatile) { - result |= RDI_TypeModifierFlag_Volatile; - } - return result; -} - -internal RDI_TypeKind -rdi_type_kind_from_pointer(CV_PointerAttribs attribs, CV_PointerMode mode) -{ - RDI_TypeKind result = RDI_TypeKind_Ptr; - - if (attribs & CV_PointerAttrib_LRef) { - result = RDI_TypeKind_LRef; - } else if (attribs & CV_PointerAttrib_RRef) { - result = RDI_TypeKind_RRef; - } - - if (mode == CV_PointerMode_LRef) { - result = RDI_TypeKind_LRef; - } else if (mode == CV_PointerMode_RRef) { - result = RDI_TypeKind_RRef; - } - - return result; -} - -internal RDI_TypeKind -rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type) -{ - switch (basic_type) { - case CV_BasicType_NOTYPE : return RDI_TypeKind_NULL; - case CV_BasicType_ABS : return RDI_TypeKind_NULL; - case CV_BasicType_SEGMENT : return RDI_TypeKind_NULL; - case CV_BasicType_VOID : return RDI_TypeKind_Void; - case CV_BasicType_CURRENCY : return RDI_TypeKind_NULL; - case CV_BasicType_NBASICSTR : return RDI_TypeKind_NULL; - case CV_BasicType_FBASICSTR : return RDI_TypeKind_NULL; - case CV_BasicType_HRESULT : return RDI_TypeKind_Handle; - case CV_BasicType_CHAR : return RDI_TypeKind_Char8; - case CV_BasicType_SHORT : return RDI_TypeKind_S16; - case CV_BasicType_LONG : return RDI_TypeKind_S32; - case CV_BasicType_QUAD : return RDI_TypeKind_S64; - case CV_BasicType_OCT : return RDI_TypeKind_S128; - case CV_BasicType_UCHAR : return RDI_TypeKind_UChar8; - case CV_BasicType_USHORT : return RDI_TypeKind_U16; - case CV_BasicType_ULONG : return RDI_TypeKind_U32; - case CV_BasicType_UQUAD : return RDI_TypeKind_U64; - case CV_BasicType_UOCT : return RDI_TypeKind_U128; - case CV_BasicType_BOOL8 : return RDI_TypeKind_S8; - case CV_BasicType_BOOL16 : return RDI_TypeKind_S16; - case CV_BasicType_BOOL32 : return RDI_TypeKind_S32; - case CV_BasicType_BOOL64 : return RDI_TypeKind_S64; - case CV_BasicType_FLOAT32 : return RDI_TypeKind_F32; - case CV_BasicType_FLOAT64 : return RDI_TypeKind_F64; - case CV_BasicType_FLOAT80 : return RDI_TypeKind_F80; - case CV_BasicType_FLOAT128 : return RDI_TypeKind_F128; - case CV_BasicType_FLOAT48 : return RDI_TypeKind_F48; - case CV_BasicType_FLOAT32PP : return RDI_TypeKind_F32PP; - case CV_BasicType_FLOAT16 : return RDI_TypeKind_F16; - case CV_BasicType_COMPLEX32 : return RDI_TypeKind_ComplexF32; - case CV_BasicType_COMPLEX64 : return RDI_TypeKind_ComplexF64; - case CV_BasicType_COMPLEX80 : return RDI_TypeKind_ComplexF80; - case CV_BasicType_COMPLEX128: return RDI_TypeKind_ComplexF128; - case CV_BasicType_BIT : return RDI_TypeKind_NULL; - case CV_BasicType_PASCHAR : return RDI_TypeKind_NULL; - case CV_BasicType_BOOL32FF : return RDI_TypeKind_NULL; - case CV_BasicType_INT8 : return RDI_TypeKind_S8; - case CV_BasicType_UINT8 : return RDI_TypeKind_U8; - case CV_BasicType_RCHAR : return RDI_TypeKind_Char8; - case CV_BasicType_WCHAR : return RDI_TypeKind_UChar16; - case CV_BasicType_CHAR16 : return RDI_TypeKind_Char16; - case CV_BasicType_CHAR32 : return RDI_TypeKind_Char32; - case CV_BasicType_INT16 : return RDI_TypeKind_S16; - case CV_BasicType_UINT16 : return RDI_TypeKind_U16; - case CV_BasicType_INT32 : return RDI_TypeKind_S32; - case CV_BasicType_UINT32 : return RDI_TypeKind_U32; - case CV_BasicType_INT64 : return RDI_TypeKind_S64; - case CV_BasicType_UINT64 : return RDI_TypeKind_U64; - case CV_BasicType_INT128 : return RDI_TypeKind_S128; - case CV_BasicType_UINT128 : return RDI_TypeKind_U128; - case CV_BasicType_CHAR8 : return RDI_TypeKind_Char8; - case CV_BasicType_PTR : return RDI_TypeKind_Ptr; - } - return RDI_TypeKind_NULL; -} - -internal RDI_RegCode -rdi_reg_code_from_cv(CV_Arch arch, CV_Reg reg) -{ - RDI_RegCode result = 0; - switch (arch) { - case CV_Arch_8086: { - switch (reg) { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX86_##RDN; break; - CV_Reg_X86_XList(X) -#undef X - } - } break; - case CV_Arch_X64: { - switch (reg) { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX64_##RDN; break; - CV_Reg_X64_XList(X) -#undef X - } - } break; - default: NotImplemented; - } - return result; -} - -internal RDI_ChecksumKind -rdi_checksum_from_cv_c13(CV_C13ChecksumKind kind) -{ - switch (kind) { - case CV_C13ChecksumKind_Null: return RDI_ChecksumKind_NULL; - case CV_C13ChecksumKind_MD5: return RDI_ChecksumKind_MD5; - case CV_C13ChecksumKind_SHA1: return RDI_ChecksumKind_SHA1; - case CV_C13ChecksumKind_SHA256: return RDI_ChecksumKind_SHA256; - } - return RDI_ChecksumKind_NULL; -} diff --git a/src/linker/rdi/rdi_cv.h b/src/linker/rdi/rdi_cv.h deleted file mode 100644 index 98aa8244..00000000 --- a/src/linker/rdi/rdi_cv.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#pragma once - -internal RDI_Arch rdi_arch_from_cv_arch(CV_Arch arch); -internal RDI_Language rdi_language_from_cv_language(CV_Language language); -internal RDI_TypeModifierFlags rdi_type_modifier_flags_from_cv_pointer_attribs(CV_PointerAttribs attribs); -internal RDI_TypeKind rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type); -internal RDI_RegCode rdi_reg_code_from_cv(CV_Arch arch, CV_Reg reg); - -internal RDI_ChecksumKind rdi_checksum_from_cv_c13(CV_C13ChecksumKind kind); - - diff --git a/src/linker/rdi/rdi_overrides.h b/src/linker/rdi/rdi_overrides.h deleted file mode 100644 index b593000e..00000000 --- a/src/linker/rdi/rdi_overrides.h +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once - -typedef U8 RDI_U8; -typedef U16 RDI_U16; -typedef U32 RDI_U32; -typedef U64 RDI_U64; -typedef S8 RDI_S8; -typedef S16 RDI_S16; -typedef S32 RDI_S32; -typedef S64 RDI_S64; - -#define RDI_PROC internal -#define RDIM_MEMSET_OVERRIDE -#define rdim_memset MemorySet - -#define RDIM_MEMCPY_OVERRIDE -#define rdim_memcpy MemoryCopy - -#define rdim_vsnprintf raddbg_vsnprintf - diff --git a/src/linker/scripts/obj_paths_from_pdb.py b/src/linker/scripts/obj_paths_from_pdb.py deleted file mode 100644 index 2bd11b50..00000000 --- a/src/linker/scripts/obj_paths_from_pdb.py +++ /dev/null @@ -1,16 +0,0 @@ -import subprocess -import sys -import os - -def get_sorted_objs(pdb_path): - result = subprocess.run(["llvm-pdbutil", "dump", "--modules", pdb_path], stdout=subprocess.PIPE, text=True) - lines = result.stdout.strip().split('\n') - filtered_lines = [line for line in lines if line.lstrip().startswith("Mod ")] - # sort by the obj_path portion (line format: "Mod ") - def extract_path(line): return line.split(maxsplit=2)[2].lower() - #sorted_lines = sorted(filtered_lines, key=extract_path) - return filtered_lines - -if __name__ == "__main__": - sorted_objs = get_sorted_objs(sys.argv[1]) - for l in sorted_objs: print(l.lstrip()) diff --git a/src/linker/tests/linker_tests.c b/src/linker/tests/linker_tests.c new file mode 100644 index 00000000..3221abe0 --- /dev/null +++ b/src/linker/tests/linker_tests.c @@ -0,0 +1,7579 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +// TODO: +// [x] defer_duplicate_imp_link +// [ ] opt_ref_comdat_undef_section +// [ ] opt_ref_weak_alias_comdat +// [ ] reloc_apply_off_out_of_bounds +// [ ] lib_member_reloc_apply_off_out_of_bounds +// [ ] fold_two_funcs +// [ ] same_but_different +// [ ] fold_diamond +// [ ] cyclic_icf +// [ ] fold_with_largest_align +// [ ] relocate_undefined_section_symbol + +//////////////////////////////// +// Def -> COFF + +#define T_COFF_DefSetMachine(v) &(COFF_MachineType){ COFF_MachineType_##v } +#define T_COFF_DefSetTimeStamp(v) &(COFF_TimeStamp){ v } +#define T_COFF_DefGetMachine(v) (v ? *v : COFF_MachineType_X64) +#define T_COFF_DefGetTimeStamp(v) (v ? *v : 0) + +typedef enum +{ + T_COFF_DefSymbol_Null, + T_COFF_DefSymbol_Extern, + T_COFF_DefSymbol_ExternFunc, + T_COFF_DefSymbol_Static, + T_COFF_DefSymbol_Secdef, + T_COFF_DefSymbol_Associative, + T_COFF_DefSymbol_Weak, + T_COFF_DefSymbol_Abs, + T_COFF_DefSymbol_Undef, + T_COFF_DefSymbol_UndefFunc, + T_COFF_DefSymbol_UndefSec, + T_COFF_DefSymbol_Sect, + T_COFF_DefSymbol_Common, +} T_COFF_DefSymbolType; + +typedef struct +{ + T_COFF_DefSymbolType type; + char *name; + char *section; + char *head; + char *associate; + char *tag; + U64 value; + U64 size; + COFF_ComdatSelectType selection; + COFF_WeakExtType characteristics; + COFF_SymStorageClass storage_class; +} T_COFF_DefSymbol; + +#define T_COFF_DefSymbol_Abs(name_, value_, storage_class_, ...) { .type = T_COFF_DefSymbol_Abs, .name = name_, .value = value_, .storage_class = storage_class_,##__VA_ARGS__ } +#define T_COFF_DefSymbol_AbsExtern(name_, value_, ...) T_COFF_DefSymbol_Abs(name_, value_, COFF_SymStorageClass_External, ## __VA_ARGS__) +#define T_COFF_DefSymbol_AbsStatic(name_, value_, ...) T_COFF_DefSymbol_Abs(name_, value_, COFF_SymStorageClass_Static , ## __VA_ARGS__) +#define T_COFF_DefSymbol_Associative(head_, associate_, ...) { .type = T_COFF_DefSymbol_Associative, .head = head_, .associate = associate_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Common(name_, size_, ...) { .type = T_COFF_DefSymbol_Common, .name = name_, .size = size_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Extern(name_, section_, value_, ...) { .type = T_COFF_DefSymbol_Extern, .name = name_, .section = section_, .value = value_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_ExternFunc(name_, section_, value_, ...) { .type = T_COFF_DefSymbol_ExternFunc, .name = name_, .section = section_, .value = value_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Secdef(section_, selection_, ...) { .type = T_COFF_DefSymbol_Secdef, .section = section_, .selection = selection_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Sect(name_, section_, ...) { .type = T_COFF_DefSymbol_Sect, .name = name_, .section = section_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Static(name_, section_, value_, ...) { .type = T_COFF_DefSymbol_Static, .name = name_, .section = section_, .value = value_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Undef(name_, ...) { .type = T_COFF_DefSymbol_Undef, .name = name_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_UndefFunc(name_, ...) { .type = T_COFF_DefSymbol_UndefFunc, .name = name_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_UndefSec(name_, value_, ...) { .type = T_COFF_DefSymbol_UndefSec, .name = name_, .value = value_ , ## __VA_ARGS__ } +#define T_COFF_DefSymbol_Weak(name_, characteristics_, tag_, ...) { .type = T_COFF_DefSymbol_Weak, .name = name_, .characteristics = characteristics_, .tag = tag_, ## __VA_ARGS__ } + +#define T_COFF_DefReloc_SetType(v) &(COFF_RelocType){ COFF_Reloc_##v } +#define T_COFF_DefReloc(type_, apply_off_, symbol_) { .type = T_COFF_DefReloc_SetType(type_), .apply_off = apply_off_, .symbol = symbol_ } +typedef struct +{ + COFF_RelocType *type; + U64 apply_off; + char *symbol; +} T_COFF_DefReloc; + +typedef struct +{ + char *id; + char *name; + String8 data; + char *flags; + COFF_SectionFlags raw_flags; + T_COFF_DefReloc *relocs; +} T_COFF_DefSection; + +typedef struct +{ + COFF_MachineType *machine; + COFF_TimeStamp *time_stamp; + T_COFF_DefSection *sections; + T_COFF_DefSymbol *symbols; + char **directives; + String8 path; +} T_COFF_DefObj; + +typedef struct +{ + char *dll; + char *name; + COFF_ImportByType import_by; + COFF_ImportType type; + U64 hit_or_ordinal; + COFF_TimeStamp *time_stamp; + COFF_MachineType *machine; +} T_COFF_DefImport; + +typedef struct +{ + char *name; + COFF_MachineType *machine; + COFF_TimeStamp *time_stamp; +} T_COFF_DefDllImport; + +typedef enum +{ + T_COFF_DefLibMember_Null, + T_COFF_DefLibMember_Obj, + T_COFF_DefLibMember_Import, + T_COFF_DefLibMember_DllImportStatic, +} T_COFF_DefLibMemberType; + +typedef struct +{ + T_COFF_DefLibMemberType type; + union { + T_COFF_DefObj obj; + T_COFF_DefImport import; + T_COFF_DefDllImport dll_import; + }; +} T_COFF_DefLibMember; + +typedef struct +{ + U16 mode; + B32 emit_second_member; + T_COFF_DefLibMember *members; +} T_COFF_DefLib; + +typedef enum +{ + T_COFF_DefRootType_Null, + T_COFF_DefRootType_Obj, + T_COFF_DefRootType_Lib +} T_COFF_DefRootType; + +typedef struct +{ + T_COFF_DefRootType type; + union { + T_COFF_DefObj obj; + T_COFF_DefLib lib; + }; +} T_COFF_DefRoot; + +internal COFF_ObjSection * +t_coff_from_def_require_section(HashTable *section_ht, String8 id) +{ + COFF_ObjSection *result = hash_table_search_string_raw(section_ht, id); + AssertAlways(result != 0); + return result; +} + +internal COFF_ObjSymbol * +t_coff_from_def_require_symbol(HashTable *symbol_ht, String8 id) +{ + COFF_ObjSymbol *result = hash_table_search_string_raw(symbol_ht, id); + AssertAlways(result != 0); + return result; +} + +internal COFF_SectionFlags +t_coff_section_flags_from_cstr(char *v) +{ + COFF_SectionFlags f = 0; + for (char *p = v; p && *p; ++p) { + switch (*p) { + case 'r': f |= COFF_SectionFlag_MemRead; break; + case 'w': f |= COFF_SectionFlag_MemWrite; break; + case 'x': f |= COFF_SectionFlag_MemExecute; break; + case ':': { + char *type_begin = p + 1; + char *type_end = type_begin; + for (; *type_end && *type_end != '@'; ++type_end) {} + String8 type = str8((U8 *)type_begin, (U64)(type_end - type_begin)); + if (str8_match(type, str8_lit("bss"), StringMatchFlag_CaseInsensitive)) { + f |= COFF_SectionFlag_CntUninitializedData; + } else if (str8_match(type, str8_lit("data"), StringMatchFlag_CaseInsensitive)) { + f |= COFF_SectionFlag_CntInitializedData; + } else if (str8_match(type, str8_lit("code"), StringMatchFlag_CaseInsensitive)) { + f |= COFF_SectionFlag_CntCode; + } + p = type_end - 1; + } break; + case '@': { + char *align_begin = p + 1; + char *align_end = align_begin; + for (; char_is_digit(*align_end, 10); ++align_end) {} + AssertAlways(align_end > align_begin); + U64 align = u64_from_str8(str8((U8 *)align_begin, (U64)(align_end - align_begin)), 10); + COFF_SectionFlags align_flags = coff_section_flag_from_align_size(align); + AssertAlways(align_flags != 0); + f |= align_flags; + p = align_end - 1; + } break; + default: AssertAlways(0 && "unknown flag"); break; + } + } + return f; +} + +internal String8 +t_coff_from_def_obj(Arena *arena, T_COFF_DefObj obj) +{ + Temp scratch = scratch_begin(&arena, 1); + HashTable *section_ht = hash_table_init(scratch.arena, 1000); + HashTable *symbol_ht = hash_table_init(scratch.arena, 1000); + COFF_ObjWriter *writer = coff_obj_writer_alloc(T_COFF_DefGetTimeStamp(obj.time_stamp), T_COFF_DefGetMachine(obj.machine)); + + // push sections + for (T_COFF_DefSection *section = obj.sections; section && section->id != 0; ++section) { + String8 id = str8_cstring(section->id); + String8 name = str8_cstring(section->name); + if (hash_table_search_string_raw(section_ht, id) == 0) { + COFF_SectionFlags flags = section->raw_flags; + flags |= t_coff_section_flags_from_cstr(section->flags); + COFF_ObjSection *sect = coff_obj_writer_push_section(writer, name, flags, section->data); + hash_table_push_string_raw(scratch.arena, section_ht, id, sect); + } else { + AssertAlways(!"error: identifier is already reserved"); + } + } + + // push directives + for (char **dir = obj.directives; dir && *dir; ++dir) { + coff_obj_writer_push_directive(writer, str8_cstring(*dir)); + } + + // push symbols + for (T_COFF_DefSymbol *symbol = obj.symbols; symbol && symbol->type != 0; ++symbol) { + String8 name = str8_cstring(symbol->name); + String8 section = str8_cstring(symbol->section); + String8 head = str8_cstring(symbol->head); + String8 associate = str8_cstring(symbol->associate); + String8 tag = str8_cstring(symbol->tag); + + COFF_ObjSymbol *ptr = 0; + switch (symbol->type) { + case T_COFF_DefSymbol_ExternFunc: { ptr = coff_obj_writer_push_symbol_extern_func(writer, name, safe_cast_u32(symbol->value), t_coff_from_def_require_section(section_ht, section)); } break; + case T_COFF_DefSymbol_Extern: { ptr = coff_obj_writer_push_symbol_extern (writer, name, safe_cast_u32(symbol->value), t_coff_from_def_require_section(section_ht, section)); } break; + case T_COFF_DefSymbol_Static: { ptr = coff_obj_writer_push_symbol_static (writer, name, safe_cast_u32(symbol->value), t_coff_from_def_require_section(section_ht, section)); } break; + case T_COFF_DefSymbol_Secdef: { ptr = coff_obj_writer_push_symbol_secdef (writer, t_coff_from_def_require_section(section_ht, section), symbol->selection); } break; + case T_COFF_DefSymbol_Associative: { ptr = coff_obj_writer_push_symbol_associative(writer, t_coff_from_def_require_section(section_ht, head), t_coff_from_def_require_section(section_ht, associate)); } break; + case T_COFF_DefSymbol_Weak: { ptr = coff_obj_writer_push_symbol_weak (writer, name, symbol->characteristics, t_coff_from_def_require_symbol(symbol_ht, tag)); } break; + case T_COFF_DefSymbol_Abs: { ptr = coff_obj_writer_push_symbol_abs (writer, name, safe_cast_u32(symbol->value), symbol->storage_class); } break; + case T_COFF_DefSymbol_Undef: { ptr = coff_obj_writer_push_symbol_undef (writer, name); } break; + case T_COFF_DefSymbol_UndefFunc: { ptr = coff_obj_writer_push_symbol_undef_func (writer, name); } break; + case T_COFF_DefSymbol_UndefSec: { ptr = coff_obj_writer_push_symbol_undef_sect (writer, name, safe_cast_u32(symbol->value)); } break; + case T_COFF_DefSymbol_Sect: { ptr = coff_obj_writer_push_symbol_sect (writer, name, t_coff_from_def_require_section(section_ht, section)); } break; + case T_COFF_DefSymbol_Common: { ptr = coff_obj_writer_push_symbol_common (writer, name, safe_cast_u32(symbol->size)); } break; + default: { InvalidPath; } break; + } + + if (name.size != 0) { + if (hash_table_search_string_raw(symbol_ht, name) == 0) { + hash_table_push_string_raw(scratch.arena, symbol_ht, name, ptr); + } else { + AssertAlways(!"error: identifier is already reserved"); + } + } + } + + // push relocs + for (T_COFF_DefSection *section = obj.sections; section && section->id != 0; ++section) { + COFF_ObjSection *sect = t_coff_from_def_require_section(section_ht, str8_cstring(section->id)); + for (T_COFF_DefReloc *reloc = section->relocs; reloc && reloc->type != 0; ++reloc) { + COFF_ObjSymbol *symbol = t_coff_from_def_require_symbol(symbol_ht, str8_cstring(reloc->symbol)); + coff_obj_writer_section_push_reloc(writer, sect, safe_cast_u32(reloc->apply_off), symbol, *reloc->type); + } + } + + String8 result = coff_obj_writer_serialize(arena, writer); + coff_obj_writer_release(&writer); + scratch_end(scratch); + return result; +} + +internal String8 +t_coff_from_def_lib(Arena *arena, T_COFF_DefLib lib) +{ + COFF_LibWriter *writer = coff_lib_writer_alloc(); + COFF_TimeStamp time_stamp = 0; + + for (T_COFF_DefLibMember *member = lib.members; member && member->type != 0; ++member) { + switch (member->type) { + case T_COFF_DefLibMember_Obj: + { + T_COFF_DefObj obj = member->obj; + String8 path = obj.path.size == 0 ? push_str8f(arena, "member_%llu.obj", (U64)(member - lib.members)) : obj.path; + String8 data = t_coff_from_def_obj(arena, obj); + coff_lib_writer_push_obj(writer, path, data); + } break; + case T_COFF_DefLibMember_Import: + { + T_COFF_DefImport import = member->import; + coff_lib_writer_push_import(writer, + T_COFF_DefGetMachine(import.machine), + T_COFF_DefGetTimeStamp(import.time_stamp), + str8_cstring(import.dll), + import.import_by, + str8_cstring(import.name), + safe_cast_u16(import.hit_or_ordinal), + import.type); + } break; + case T_COFF_DefLibMember_DllImportStatic: { + String8 dll_name = str8_chop_last_dot(str8_cstring(member->dll_import.name)); + String8 null_import_debug = lnk_make_linker_debug_symbols(writer->arena, T_COFF_DefGetMachine(member->dll_import.machine)); + String8 import_entry_obj = pe_make_import_entry_obj(writer->arena, + dll_name, + T_COFF_DefGetTimeStamp(member->dll_import.time_stamp), + T_COFF_DefGetMachine(member->dll_import.machine), + null_import_debug); + String8 null_import_obj = pe_make_null_import_descriptor_obj(writer->arena, + T_COFF_DefGetTimeStamp(member->dll_import.time_stamp), + T_COFF_DefGetMachine(member->dll_import.machine), + null_import_debug); + String8 null_thunk_obj = pe_make_null_thunk_data_obj(writer->arena, + dll_name, + T_COFF_DefGetTimeStamp(member->dll_import.time_stamp), + T_COFF_DefGetMachine(member->dll_import.machine), + null_import_debug); + coff_lib_writer_push_obj(writer, dll_name, import_entry_obj); + coff_lib_writer_push_obj(writer, dll_name, null_import_obj); + coff_lib_writer_push_obj(writer, dll_name, null_thunk_obj); + } break; + case T_COFF_DefLibMember_Null: break; + default: InvalidPath; break; + } + } + + String8 result = coff_lib_writer_serialize(arena, writer, time_stamp, lib.mode, lib.emit_second_member); + coff_lib_writer_release(&writer); + return result; +} + +internal String8 +t_coff_from_def_root(Arena *arena, T_COFF_DefRoot root) +{ + switch (root.type) { + case T_COFF_DefRootType_Obj: return t_coff_from_def_obj(arena, root.obj); + case T_COFF_DefRootType_Lib: return t_coff_from_def_lib(arena, root.lib); + case T_COFF_DefRootType_Null: break; + default: { NotImplemented; } break; + } + return str8_zero(); +} + +internal B32 +t_write_def_obj(char *path, T_COFF_DefObj obj) +{ + Temp scratch = scratch_begin(0,0); + B32 is_ok = t_write_file(str8_cstring(path), t_coff_from_def_obj(scratch.arena, obj)); + scratch_end(scratch); + return is_ok; +} + +internal B32 +t_write_def_lib(char *path, T_COFF_DefLib lib) +{ + Temp scratch = scratch_begin(0,0); + B32 is_ok = t_write_file(str8_cstring(path), t_coff_from_def_lib(scratch.arena, lib)); + scratch_end(scratch); + return is_ok; +} + +//////////////////////////////// + +internal String8 +t_make_sec_defn_obj(Arena *arena, String8 payload) +{ + return t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "mysect", ".mysect", payload, .flags = "r:data@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("mysect", COFF_ComdatSelect_Null), + {0} + } + }); +} + +internal String8 +t_make_obj_with_directive(Arena *arena, String8 directive) +{ + String8 directive_cstr = push_cstr(arena, directive); + return t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .directives = (char *[]){ (char *)directive_cstr.str, 0 } + }); +} + +internal String8 +t_make_entry_obj(Arena *arena) +{ + return t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]) { + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + }); +} + +internal B32 +t_write_entry_obj(void) +{ + Temp scratch = scratch_begin(0,0); + String8 obj = t_make_entry_obj(scratch.arena); + B32 is_ok = t_write_file(str8_lit("entry.obj"), obj); + scratch_end(scratch); + return is_ok; +} + +//////////////////////////////// + +TEST(machine_compat_check) +{ + // unknown.obj + T_Ok(t_write_def_obj("unknown.obj", (T_COFF_DefObj){ + .machine = &(COFF_MachineType){ COFF_MachineType_Unknown }, + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("unknown"), .flags = "rw:data" }, + {0} + } + })); + + // x64.obj + T_Ok(t_write_def_obj("x64.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("x64"), .flags = "rw:data" }, + {0} + } + })); + + // entry.obj + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + // arm64.obj + T_Ok(t_write_def_obj("arm64.obj", (T_COFF_DefObj){ + .machine = &(COFF_MachineType){ COFF_MachineType_Arm64 }, + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("arm64"), .flags = "rw:data" }, + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj"); + T_Ok(g_last_exit_code == 0); + + // test objs with conflicting machines + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj arm64.obj"); + T_Ok(g_last_exit_code != 0); + + // check /MACHINE switch + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /machine:amd64 arm64.obj entry.obj"); + T_Ok(g_last_exit_code != 0); +} + +TEST(simple_link_test) +{ + U8 text_payload[] = { 0xC3 }; + + String8 main_obj; + { + main_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_array_fixed(text_payload), .flags = "rx:code" }, + { "data", ".data", str8_lit("qwe"), .flags = "rw:data" }, + { "zero", ".zero", str8(0, 5), .flags = "rw:bss" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + }); + } + + String8 main_obj_name = str8_lit("main.obj"); + T_Ok(t_write_file(main_obj_name, main_obj)); + + int file_align = 512; + int virt_align = 4096; + String8 out_name = str8_lit("a.exe"); + t_invoke_linkerf("/entry:my_entry /subsystem:console /fixed /filealign:%d /align:%d /out:%S %S", file_align, virt_align, out_name, main_obj_name); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, out_name); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + T_Ok(!pe.is_pe32); + T_Ok(pe.section_count == 3); + T_Ok(pe.arch == Arch_x64); + T_Ok(pe.subsystem == PE_WindowsSubsystem_WINDOWS_CUI); + T_Ok(pe.virt_section_align == virt_align); + T_Ok(pe.file_section_align == file_align); + T_Ok(pe.symbol_count == 0); + T_Ok(pe.data_dir_count == PE_DataDirectoryIndex_COUNT); + + // check section alignment + for EachIndex(sect_idx, pe.section_count) { + COFF_SectionHeader *sect_header = §ion_table[sect_idx]; + T_Ok(AlignPadPow2(sect_header->fsize, file_align) == 0); + T_Ok(AlignPadPow2(sect_header->voff, virt_align) == 0); + } + + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_section != 0); + T_Ok(text_section->foff == file_align); + T_Ok(pe.entry_point == text_section->voff); + + COFF_SectionHeader *data_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(data_section != 0); + + COFF_SectionHeader *zero_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".zero")); + T_Ok(zero_section != 0); + + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text_data, str8_array_fixed(text_payload), 0)); + + PE_OptionalHeader32Plus *opt = str8_deserial_get_raw_ptr(exe, pe.optional_header_off, sizeof(*opt)); + T_Ok(opt->sizeof_code == text_section->fsize); + T_Ok(opt->sizeof_inited_data == (text_section->fsize + data_section->fsize)); + T_Ok(opt->sizeof_uninited_data == 0x200); + T_Ok(opt->code_base == 0x1000); + T_Ok(opt->image_base == 0x140000000); + T_Ok(opt->major_os_ver == 6); + T_Ok(opt->minor_os_ver == 0); + T_Ok(opt->major_img_ver == 0); + T_Ok(opt->minor_img_ver == 0); + T_Ok(opt->major_subsystem_ver == 6); + T_Ok(opt->minor_subsystem_ver == 0); + T_Ok(opt->win32_version_value == 0); + T_Ok(opt->sizeof_image == 0x4000); + T_Ok(opt->sizeof_headers == 0x200); + T_Ok(opt->dll_characteristics == 0x8120); + T_Ok(opt->loader_flags == 0); +} + + +TEST(out_of_bounds_section_number) +{ + // bad.obj + { + String8 obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "foo", ".foo", str8_lit("foo"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("foo", "foo", 0), + {0} + } + }); + { + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); + String8 string_table = str8_substr(obj, header.string_table_range); + String8 symbol_table = str8_substr(obj, header.symbol_table_range); + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 0); + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + symbol16->section_number = 123; + } + T_Ok(t_write_file(str8_lit("bad.obj"), obj)); + } + + // entry.obj + { + String8 obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00\xC3"), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "foo"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("foo"), + {0} + } + }); + T_Ok(t_write_file(str8_lit("entry.obj"), obj)); + } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); + T_Ok(g_last_exit_code != 0); +} + + +TEST(merge) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test", str8_lit("hello, world"), .flags = "rw:data" }, + {0} + } + })); + + T_Ok(t_write_entry_obj()); + + // circular merge + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.test entry.obj test.obj"); + T_Ok(g_last_exit_code != 0); + + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_CircularMerge); + } + + // circular merge with extra link + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.data /merge:.data=.test entry.obj test.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_CircularMerge); + } + + // merge with non-defined section + { + g_last_exit_code; + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe entry.obj test.obj"); + T_Ok(g_last_exit_code == 0); + + // make sure linker created .qwe and merged .test into it + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".qwe")); + T_Ok(sect != 0); + T_Ok(sect->flags == PE_DATA_SECTION_FLAGS); + String8 qwe = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(qwe, str8_lit("hello, world"),0)); + } + + // illegal merge with .reloc + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.reloc entry.obj test.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_IllegalSectionMerge); + } + + // illegal merge with .rsrc + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.rsrc entry.obj test.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_IllegalSectionMerge); + } + + // merge non-defined section with defined section + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.qwe=.test entry.obj test.obj"); + T_Ok(g_last_exit_code == 0); + + // merge .test -> .qwe -> .data + { + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe /merge:.qwe=.data entry.obj test.obj"); + T_Ok(g_last_exit_code == 0); + + // make sure linker merged .test into .data + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); + T_Ok(sect != 0); + T_Ok(sect->flags == PE_DATA_SECTION_FLAGS); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("hello, world"),0)); + } +} + +TEST(link_undef) +{ + T_Ok(t_write_def_obj("undef.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("undef"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00\xC3"), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "undef"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("undef"), + {0} + } + })); + + // try linking unresolved symbol and see if linker picks up on that + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj undef.obj"); + T_Ok(g_last_exit_code == LNK_Error_UnresolvedSymbol); +} + +TEST(link_unref_undef) +{ + T_Ok(t_write_def_obj("undef.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("undef"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + // try linking unreferenced unresolved symbol, this must link + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj undef.obj"); + T_Ok(g_last_exit_code != 0); +} + +TEST(weak_lib_vs_weak_lib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "e"), + {0} + } + })); + + // linker must pick weak symbol from a.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x111; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_lib_vs_weak_nolib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "e"), + {0} + } + })); + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_lib_vs_weak_alias) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "e"), + {0} + } + })); + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); +} + +TEST(weak_lib_vs_weak_antidep) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "e"), + {0} + } + })); + + // linker must pick weak symbol from a.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_alias_vs_weak_alias) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("qwe", 0x111), + T_COFF_DefSymbol_Weak("sym", COFF_WeakExt_SearchAlias, "qwe"), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("ewq", 0x222), + T_COFF_DefSymbol_Weak("sym", COFF_WeakExt_SearchAlias, "ewq"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "sym"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("sym"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); +} + +TEST(weak_alias_vs_weak_lib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" + "\xC3" + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "e"), + {0} + } + })); + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_alias_vs_weak_nolib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" + "\xC3" + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "e"), + {0} + } + })); + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_alias_vs_weak_antidep) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "q"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" + "\xC3" + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "e"), + {0} + } + })); + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_nolib_vs_weak_nolib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_nolib_vs_weak_lib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_nolib_vs_weak_alias) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); +} + +TEST(weak_nolib_vs_weak_antidep) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_antidep_vs_weak_antidep) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "e"), + {0} + } + })); + + // linker must pick weak symbol from a.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x111; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } + + // linker must pick weak symbol from entry.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_antidep_vs_weak_nolib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_NoLibrary, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_antidep_vs_weak_lib) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x222; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_antidep_vs_weak_alias) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("q", 0x111), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchAlias, "q"), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 3, "w"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_AbsExtern("e", 0x222), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_AntiDependency, "e"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + String8 imm = str8_substr(text_data, rng_1u64(3, 7)); + U32 expected = 0x111; + T_Ok(str8_match(imm, str8_struct(&expected), 0)); + } +} + +TEST(weak_vs_common) +{ + T_Ok(t_write_def_obj("weak.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "a", ".a", str8_lit("a"), .flags = "rw:data" }, {0} }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Static("_a", "a", 0), + T_COFF_DefSymbol_Weak("w", COFF_WeakExt_SearchLibrary, "_a"), + {0} + } + })); + T_Ok(t_write_def_obj("common.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Common("w", 2), {0} } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ T_COFF_DefReloc(X64_Addr32Nb, 0, "w"), {0} } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("w"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe common.obj weak.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe weak.obj common.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *bss = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); + T_Ok(bss); + T_Ok(bss->fsize == 0); + T_Ok(bss->vsize == 2); +} + +TEST(abs_vs_weak) +{ + U32 abs_value = 0x123; + U8 text_code[] = { 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3 }; + + T_Ok(t_write_def_obj("abs.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("foo", abs_value), + {0}, + } + })); + + T_Ok(t_write_def_obj("text.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "mydata", ".mydata", str8_lit("mydata"), .flags = "rx:code@1" }, + { + "text", ".text", str8_array_fixed(text_code), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr64, 2, "foo"), + {0}, + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("mydata", "mydata", 0), + T_COFF_DefSymbol_Weak("foo", COFF_WeakExt_NoLibrary, "mydata"), + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe text.obj abs.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_section != 0); + + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); + String8 inst = str8_prefix(text_data, 2); + T_Ok(str8_match(inst, str8_array(text_code, 2), 0)); + + String8 imm = str8_prefix(str8_skip(text_data, 2), 8); + U64 expected_imm = abs_value; + T_Ok(str8_match(imm, str8_struct(&expected_imm), 0)); +} + +TEST(abs_vs_regular) +{ + String8 shared_symbol_name = str8_lit("foo"); + + U8 regular_payload[] = { 0xC0, 0xFF, 0xEE }; + String8 regular_obj_name = str8_lit("regular.obj"); + + T_Ok(t_write_def_obj("regular.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "data", ".data", str8_array_fixed(regular_payload), .flags = "rw:data" }, {0}, }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Extern("foo", "data", 0), {0}, } + })); + + String8 abs_obj_name = str8_lit("abs.obj"); + T_Ok(t_write_def_obj("abs.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_AbsExtern("foo", 0x1234), {0}, } + })); + + U8 entry_text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm + 0xC3 // ret + }; + String8 entry_obj_name = str8_lit("entry.obj"); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_array_fixed(entry_text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "foo"), + {0}, + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + T_COFF_DefSymbol_Undef("foo"), + {0}, + } + })); + + // TODO: validate that linker issues multiply defined symbol error + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj regular.obj entry.obj"); + // linker should complain about multiply defined symbol + T_Ok(g_last_exit_code != 0); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); + // linker should complain even in case regular is before abs + T_Ok(g_last_exit_code != 0); +} + +TEST(abs_vs_common) +{ + String8 shared_symbol_name = str8_lit("foo"); + + String8 common_obj_name = str8_lit("common.obj"); + + T_Ok(t_write_def_obj("common.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Common("foo", 321), {0}, } + })); + + String8 abs_obj_name = str8_lit("abs.obj"); + T_Ok(t_write_def_obj("abs.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_AbsExtern("foo", 0x1234), {0}, } + })); + + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "text", ".text", str8_array_fixed(entry_text), .flags = "rx:code@1" }, {0}, }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Extern("my_entry", "text", 0), {0}, } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj common.obj entry.obj"); + if (g_last_exit_code == 0) { + // TODO: validate that linker issues multiply defined symbol error + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe common.obj abs.obj entry.obj"); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); + } else { + T_Ok(g_last_exit_code != 0); + } + } +} + +TEST(abs_vs_abs) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_AbsExtern("foo", 'a'), {0}, }, + })); + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_AbsExtern("foo", 'b'), {0}, }, + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); +} + +TEST(undef_weak_lib) +{ + T_Ok(t_write_def_obj("weak.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("b", 0xc3000000), + T_COFF_DefSymbol_Weak("a", COFF_WeakExt_SearchLibrary, "b"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ T_COFF_DefReloc(X64_Addr32Nb, 0, "a"), {0} } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("a"), + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0}, + } + })); + + // undefined symbol must always replace weak symbol with search library + t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry entry.obj weak.obj"); + T_Ok(g_last_exit_code == LNK_Error_UnresolvedSymbol); +} + +TEST(undef_weak_search_alias) +{ + Temp scratch = scratch_begin(0,0); + + T_Ok(t_write_def_obj("weak.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "data", ".data", str8_lit_comp("\xde\xad\xbe\xef"), .flags = "rw:data" }, {0} }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("ptr"), + T_COFF_DefSymbol_Weak("foo", COFF_WeakExt_SearchAlias, "ptr"), + {0} + } + })); + + T_Ok(t_write_def_obj("ptr.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("entry"), + T_COFF_DefSymbol_Weak("ptr", COFF_WeakExt_SearchAlias, "entry"), + {0} + } + })); + + T_Ok(t_write_def_obj("undef.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ T_COFF_DefReloc(X64_Addr32Nb, 0, "foo"), {0} } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Undef("foo"), {0} } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, {0} }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Extern("entry", "text", 0), {0} } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe weak.obj entry.obj ptr.obj undef.obj"); + T_Ok(g_last_exit_code == 0); +} + +TEST(weak_cycle) +{ + String8 ab_obj_name = str8_lit("ab.obj"); + + T_Ok(t_write_def_obj("ab.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("B"), + T_COFF_DefSymbol_Weak("A", COFF_WeakExt_SearchAlias, "B"), + {0}, + } + })); + + String8 ba_obj_name = str8_lit("ba.obj"); + T_Ok(t_write_def_obj("ba.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("A"), + T_COFF_DefSymbol_Weak("B", COFF_WeakExt_SearchAlias, "A"), + {0}, + } + })); + + String8 entry_obj_name = str8_lit("entry.obj"); + U8 entry_payload[] = { 0xC3 }; + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "text", ".text", str8_array_fixed(entry_payload), .flags = "rx:code@1" }, {0} }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Extern("my_entry", "text", 0), {0} } + })); + + U64 timeout = now_time_us() + 3 * 1000 * 1000; // give a generous 3 seconds + t_invoke_linker_timeoutf(timeout, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); +} + +TEST(weak_tag) +{ + U32 weak_tag_expected_value = 0x12345678; + String8 weak_tag_obj_name = str8_lit("weak_tag.obj"); + + T_Ok(t_write_def_obj("weak_tag.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ T_COFF_DefReloc(X64_Addr32, 0, "strong_second"), {0} } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsStatic("abs", weak_tag_expected_value), + T_COFF_DefSymbol_Weak("strong_first", COFF_WeakExt_SearchAlias, "abs"), + T_COFF_DefSymbol_Weak("strong_second", COFF_WeakExt_SearchAlias, "strong_first"), + {0} + } + })); + + String8 entry_name = str8_lit("my_entry"); + U8 entry_text[] = { 0xC3 }; + String8 entry_obj_name = str8_lit("entry.obj"); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ { "text", ".text", str8_array_fixed(entry_text), .flags = "rx:code@1" }, {0} }, + .symbols = (T_COFF_DefSymbol[]){ T_COFF_DefSymbol_Extern((char *)entry_name.str, "text", 0), {0} } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe %S %S", weak_tag_obj_name, entry_obj_name); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + T_Ok(data_section); + T_Ok(data_section->vsize == 4); + T_Ok(str8_match(data, str8_struct(&weak_tag_expected_value), 0)); +} + +TEST(undef_section) +{ + U8 payload[] = { 1, 2, 3 }; + String8 sec_defn_obj = t_make_sec_defn_obj(arena, str8_array_fixed(payload)); + + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, ".mysect"), + {0} + } + }, + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_UndefSec(".mysect", COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead), + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj"); + if (g_last_exit_code == 0) { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *data_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + COFF_SectionHeader *mysect_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".mysect")); + if (data_section && mysect_section) { + if (data_section->vsize == 4 && mysect_section->vsize == 3) { + String8 addr32nb = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + String8 expected_voff = str8_struct(&mysect_section->voff); + T_Ok(str8_match(addr32nb, expected_voff, 0)); + } + } + } +} + +TEST(sect_symbol) +{ + String8 sect_payload = str8_lit("hello, world"); + T_Ok(t_write_def_obj("sect.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "mysect1", ".mysect$1", sect_payload, .flags = "rw:data@1" }, + {0} + }, + .directives = (char *[]){ "/merge:.mysect=.data", 0 } + })); + + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr64, 0, ".mysect$2222"), + {0} + } + }, + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_UndefSec(".mysect$2222", t_coff_section_flags_from_cstr("rw:data")), + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sect.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + + T_Ok(sect != 0); + + String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + + String8 addr_data = str8_substr(sect_data, rng_1u64(0, sizeof(U64))); + T_Ok(addr_data.size == sizeof(U64)); + + U64 addr = *(U64 *)addr_data.str; + T_Ok(addr - (pe.image_base + sect->voff) == 8); + + String8 payload_got = str8_substr(sect_data, rng_1u64(8, sect_data.size)); + T_Ok(str8_match(payload_got, sect_payload, 0)); +} + +TEST(undef_reloc_section) +{ + U8 payload[] = { 1, 2, 3 }; + String8 sec_defn_obj = t_make_sec_defn_obj(arena, str8_array_fixed(payload)); + + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code" }, + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr64, 0, ".reloc"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + T_COFF_DefSymbol_UndefSec(".reloc", PE_RELOC_SECTION_FLAGS), + {0} + } + })); + T_Ok(t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj)); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj"); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_SectRefsDiscardedMemory); + } else { + T_Ok(g_last_exit_code != 0); + } +} + +TEST(find_merged_pdata) +{ + U8 foobar_payload[] = { + 0x40, 0x57, 0x48, 0x81, 0xEC, 0x00, 0x02, 0x00, 0x00, 0x48, 0x8B, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x48, 0x33, 0xC4, 0x48, 0x89, 0x84, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, 0x8D, 0x04, 0x24, 0x48, + 0x8B, 0xF8, 0x33, 0xC0, 0xB9, 0xEC, 0x01, 0x00, 0x00, 0xF3, 0xAA, 0xB8, 0x04, 0x00, 0x00, 0x00, + 0x48, 0x6B, 0xC0, 0x02, 0x8B, 0x04, 0x04, 0x48, 0x8B, 0x8C, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, + 0x33, 0xCC, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x81, 0xC4, 0x00, 0x02, 0x00, 0x00, 0x5F, 0xC3, + 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, + 0x48, 0x83, 0xEC, 0x28, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0x28, 0xC3 + }; + U8 xdata_payload[] = { + 0x19, 0x1B, 0x03, 0x00, 0x09, 0x01, 0x40, 0x00, 0x02, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xF0, 0x01, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x04, 0x42, 0x00, 0x00 + }; + PE_IntelPdata intel_pdata = {0}; + U8 text_payload[] = { 0xC3 }; + + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "xdata", ".xdata", str8_array_fixed(xdata_payload), .flags = "r:data@4" }, + { + "pdata", ".pdata", str8_struct(&intel_pdata), .flags = "r:data@4", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, OffsetOf(PE_IntelPdata, voff_unwind_info), "$unwind$foobar"), + T_COFF_DefReloc(X64_Addr32Nb, OffsetOf(PE_IntelPdata, voff_first), "foobar"), + T_COFF_DefReloc(X64_Addr32Nb, OffsetOf(PE_IntelPdata, voff_one_past_last), "foobar"), + {0} + } + }, + { "foobar", ".foobar", str8_array_fixed(foobar_payload), .flags = "rx:code@1" }, + { "text", ".text", str8_array_fixed(text_payload), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Static("foobar", "foobar", 0), + T_COFF_DefSymbol_Secdef("xdata", COFF_ComdatSelect_Null), + T_COFF_DefSymbol_Static("$unwind$foobar", "xdata", 0), + T_COFF_DefSymbol_Secdef("pdata", COFF_ComdatSelect_Null), + T_COFF_DefSymbol_Static("$pdata$foobar", "pdata", 0), + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj /merge:.pdata=.rdata"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + T_Ok(dim_1u64(pe.data_dir_franges[PE_DataDirectoryIndex_EXCEPTIONS]) == 0xC); +} + +TEST(section_sort) +{ + COFF_SectionFlags data_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes; + T_Ok(t_write_def_obj("data.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data_z", ".data$z", str8_lit("five"), .raw_flags = data_flags }, + { "data_a", ".data$a", str8_lit("three"), .raw_flags = data_flags }, + { "data_bbbbb", ".data$bbbbb", str8_lit("four"), .raw_flags = data_flags }, + { "data_empty", ".data$", str8_lit("two"), .raw_flags = data_flags }, + { "data", ".data", str8_lit("one"), .raw_flags = data_flags }, + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe data.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *data_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(data_section); + + String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); + String8 expected_data = str8_lit("onetwothreefourfive"); + T_Ok(str8_match(data, expected_data, 0)); +} + +TEST(flag_conf) +{ + COFF_SectionFlags my_sect0_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute; + COFF_SectionFlags my_sect1_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; + T_Ok(t_write_def_obj("conf.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".mysect", str8_lit("one"), .raw_flags = my_sect0_flags }, + { "b", ".mysect", str8_lit("two"), .raw_flags = my_sect1_flags }, + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe conf.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeaderArray my_sects = coff_section_header_array_from_name(arena, string_table, section_table, pe.section_count, str8_lit(".mysect")); + T_Ok(my_sects.count == 2); + + COFF_SectionHeader *my_sect0 = &my_sects.v[0]; + COFF_SectionHeader *my_sect1 = &my_sects.v[1]; + T_Ok(my_sect0->flags == my_sect0_flags); + T_Ok(my_sect1->flags == my_sect1_flags); +} + +TEST(invalid_bss) +{ + COFF_SectionFlags bss_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead; + String8 bss_data = str8_lit("Hello, World"); + T_Ok(t_write_def_obj("bss.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "bss", ".bss", bss_data, .raw_flags = bss_flags }, + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe bss.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *bss_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); + T_Ok(bss_sect != 0); + T_Ok(bss_sect->vsize == 0xC); + T_Ok(bss_sect->flags == bss_flags); + String8 data = str8_substr(exe, rng_1u64(bss_sect->foff, bss_sect->foff + bss_sect->vsize)); + T_Ok(str8_match(data, bss_data, 0)); +} + +TEST(common_block) +{ + U8 a_data[6] = {0}; + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_array_fixed(a_data), .flags = "rw:data@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 0, "A"), + {0} + } + }, + { "bss", ".bss", str8(0, 1), .flags = "rw:bss" }, // shift common block's initial position + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Common("A", 3), + {0} + } + })); + + U8 b_data[9] = { 0 }; + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_array_fixed(b_data), .flags = "rw:data@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr64, 0, "B"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Common("B", 6), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /fixed /largeaddressaware:no /merge:.bss=.comm a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + COFF_SectionHeader *comm_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".comm")); + COFF_SectionHeader *data_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(comm_sect != 0); + T_Ok(data_sect != 0); + + // blocks must be sorted in descending order to reduce alignment padding + T_Ok(comm_sect->vsize == 0x13); + + // ensure linker correctly patched addresses for symbols pointing into common block + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); + U32 *a_addr = (U32 *)data.str; + U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); + T_Ok(*a_addr == (pe.image_base + comm_sect->voff + 0x10)); + T_Ok(*b_addr == (pe.image_base + comm_sect->voff + 0x8)); +} + +TEST(base_relocs) +{ + // main.obj + String8 entry_name = str8_lit("my_entry"); + U64 mov_func_name64 = 2; + U64 mov_func_name32 = 16; + U8 main_text[] = { + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, func_name + 0xff, 0xd0, // call rax + 0x48, 0x31, 0xc0, // xor rax, rax + 0xb8, 0x00, 0x00, 0x00, 0x00, // mov eax, func_name + 0xff, 0xd0, // call rax + 0xc3 // ret + }; + + // func.obj + String8 func_name = str8_lit("foo"); + U8 func_text[] = { 0xc3 }; + + // linker must not produce base relocations for absolute symbol + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_array_fixed(main_text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr64, mov_func_name64, "foo"), + T_COFF_DefReloc(X64_Addr32, mov_func_name32, "foo"), + {0} + } + }, + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rw:data", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, 0, "abs"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("foo"), + T_COFF_DefSymbol_AbsStatic("abs", 0x12345678), + T_COFF_DefSymbol_Extern((char *)entry_name.str, "text", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("func.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_array_fixed(func_text), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern((char *)func_name.str, "text", 0), + {0} + } + })); + + String8 out_name = str8_lit("a.exe"); + t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe main.obj func.obj"); + T_Ok(g_last_exit_code == 0); + + // it is illegal to merge .reloc with other sections + t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.reloc=.rdata main.obj func.obj"); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_IllegalSectionMerge); + } else { + T_Ok(g_last_exit_code != 0); + } + + // the other way around is illegal too + t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.rdata=.reloc main.obj func.obj"); + if (t_id_linker() == Linker_radlink) { + T_Ok(g_last_exit_code == LNK_Error_IllegalSectionMerge); + } else { + T_Ok(g_last_exit_code != 0); + } +} + +TEST(simple_lib_test) +{ + String8 test_payload = str8_lit("The quick brown fox jumps over the lazy dog"); + + T_Ok(t_write_def_lib("test.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("test.obj"), + .machine = T_COFF_DefSetMachine(Unknown), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8(test_payload.str, test_payload.size+1), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("test", "data", 0), + {0} + } + } + }, + {0} + } + })); + + U8 entry_text[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, + 0xC3 + }; + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_array_fixed(entry_text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "test"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("test"), + T_COFF_DefSymbol_Extern("my_entry", "text", 7), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj test.lib"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + COFF_SectionHeader *data_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->fsize)); + String8 data_data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); + + // was test payload linked? + String8 data_string = str8_cstring_capped(data_data.str, data_data.str + data_data.size); + T_Ok(str8_match(data_string, test_payload, 0)); + + // do we have enough bytes to read text? + T_Ok(text_data.size >= sizeof(entry_text)); + + // linker must pull-in test.obj and patch relocation for "test" symbol + U32 *data_addr32nb = (U32 *)(text_data.str+3); + T_Ok(*data_addr32nb == data_sect->voff); +} + +#if OS_WINDOWS +TEST(import_export) +{ + // write objs + T_Ok(t_write_def_obj("import.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + .id = "data", + .name = ".data", + .flags = "rw:data", + .data = str8_array_fixed((U8[1024]){0}), + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0*4, "__imp_foo"), + T_COFF_DefReloc(X64_Addr32Nb, 1*4, "__imp_bar"), + T_COFF_DefReloc(X64_Addr32Nb, 2*4, "__imp_baz"), + T_COFF_DefReloc(X64_Addr32Nb, 3*4, "__imp_baf"), + T_COFF_DefReloc(X64_Addr32Nb, 4*4, "__imp_ord"), + T_COFF_DefReloc(X64_Addr32Nb, 5*4, "bar"), + T_COFF_DefReloc(X64_Addr32Nb, 6*4, "foo"), + T_COFF_DefReloc(X64_Addr32Nb, 7*4, "ord"), + {0}, + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("__imp_foo"), + T_COFF_DefSymbol_Undef("__imp_bar"), + T_COFF_DefSymbol_Undef("__imp_baz"), + T_COFF_DefSymbol_Undef("__imp_baf"), + T_COFF_DefSymbol_Undef("__imp_ord"), + T_COFF_DefSymbol_Undef("bar"), + T_COFF_DefSymbol_Undef("foo"), + T_COFF_DefSymbol_Undef("ord"), + //"baf", + //"baz", + //"__imp_ord2", + //"__imp_ord4", + {0}, + }, + })); + + T_Ok(t_write_def_obj("export.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("test"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("foo", "data", 0), + T_COFF_DefSymbol_Extern("ord", "data", 1), + T_COFF_DefSymbol_Extern("ord2", "data", 2), + T_COFF_DefSymbol_Extern("ord3", "data", 9), + T_COFF_DefSymbol_Extern("ord4", "data", 10), + {0} + }, + .directives = (char*[]){ + "/export:foo=foo", + "/export:bar=foo", + "/export:ord,@5", + "/export:ord2,@6,DATA", + "/export:ord3,@7,NONAME,PRIVATE", + "/export:ord4,@8,NONAME,DATA", + "/export:baz=BAZ.qwe", + "/export:baf=BAZ.#1", + 0, + } + })); + + T_Ok(t_write_def_obj("baz.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "s1", ".s1", str8_lit("s1"), .flags = "rw:data" }, + { "s2", ".s2", str8_lit("s2"), .flags = "rw:data" }, + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("_DllMainCRTStartup", "text", 0), + T_COFF_DefSymbol_Extern("s1", "s1", 0), + T_COFF_DefSymbol_Extern("s2", "s2", 0), + {0} + }, + .directives = (char*[]){ + "/export:baf=s1", + "/export:baz=s2", + 0, + } + })); + + T_Ok(t_write_entry_obj()); + + // link dlls + t_invoke_linkerf("/dll /out:export.dll libcmt.lib export.obj"); // export.dll + T_Ok(g_last_exit_code == 0); + t_invoke_linkerf("/dll /out:baz.dll /export:s1,@1,NONAME /export:qwe=s2 baz.obj"); // baz.dll + T_Ok(g_last_exit_code == 0); + + // validate export table in export.dll + if (t_id_linker() == Linker_radlink) { + // validate export table in export.dll + { + String8 dll = t_read_file(arena, str8_lit("export.dll")); + PE_BinInfo pe = pe_bin_info_from_data(arena, dll); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; + PE_ParsedExportTable export_table = pe_exports_from_data(arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); + COFF_SectionHeader *data_sect = coff_section_header_from_name(str8_zero(), section_table, pe.section_count, str8_lit(".data")); + + // validate header + T_Ok(export_table.flags == 0); + T_Ok(export_table.time_stamp == COFF_TimeStamp_Max); + T_Ok(export_table.major_ver == 0); + T_Ok(export_table.minor_ver == 0); + T_Ok(export_table.ordinal_base == 5); + T_Ok(export_table.export_count == 8); + + // validate names + T_Ok(str8_match(export_table.exports[0].name, str8_lit("baf"), 0)); + T_Ok(str8_match(export_table.exports[1].name, str8_lit("bar"), 0)); + T_Ok(str8_match(export_table.exports[2].name, str8_lit("baz"), 0)); + T_Ok(str8_match(export_table.exports[3].name, str8_lit("foo"), 0)); + T_Ok(str8_match(export_table.exports[4].name, str8_lit("ord"), 0)); + T_Ok(str8_match(export_table.exports[5].name, str8_lit("ord2"), 0)); + T_Ok(export_table.exports[6].name.size == 0); + T_Ok(export_table.exports[7].name.size == 0); + + // validate forwarders + T_Ok(str8_match(export_table.exports[0].forwarder, str8_lit("BAZ.#1"), 0)); + T_Ok(export_table.exports[1].forwarder.size == 0); + T_Ok(str8_match(export_table.exports[2].forwarder, str8_lit("BAZ.qwe"), 0)); + T_Ok(export_table.exports[3].forwarder.size == 0); + T_Ok(export_table.exports[4].forwarder.size == 0); + T_Ok(export_table.exports[5].forwarder.size == 0); + T_Ok(export_table.exports[6].forwarder.size == 0); + T_Ok(export_table.exports[7].forwarder.size == 0); + + // validate voffs + T_Ok(export_table.exports[1].voff == data_sect->voff + 0x0); + T_Ok(export_table.exports[3].voff == data_sect->voff + 0x0); + T_Ok(export_table.exports[4].voff == data_sect->voff + 0x1); + T_Ok(export_table.exports[5].voff == data_sect->voff + 0x2); + T_Ok(export_table.exports[6].voff == data_sect->voff + 0x9); + T_Ok(export_table.exports[7].voff == data_sect->voff + 0xa); + + // validate ordinals + T_Ok(export_table.exports[0].ordinal == 9); + T_Ok(export_table.exports[1].ordinal == 10); + T_Ok(export_table.exports[2].ordinal == 11); + T_Ok(export_table.exports[3].ordinal == 12); + T_Ok(export_table.exports[4].ordinal == 5); + T_Ok(export_table.exports[5].ordinal == 6); + T_Ok(export_table.exports[6].ordinal == 7); + T_Ok(export_table.exports[7].ordinal == 8); + } + + // validate export table in baz.dll + { + String8 dll = t_read_file(arena, str8_lit("baz.dll")); + PE_BinInfo pe = pe_bin_info_from_data(arena, dll); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; + PE_ParsedExportTable export_table = pe_exports_from_data(arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); + + // validate header + T_Ok(export_table.flags == 0); + T_Ok(export_table.time_stamp == COFF_TimeStamp_Max); + T_Ok(export_table.major_ver == 0); + T_Ok(export_table.minor_ver == 0); + T_Ok(export_table.ordinal_base == 1); + T_Ok(export_table.export_count == 4); + + // validate names + T_Ok(str8_match(export_table.exports[0].name, str8_lit("baf"), 0)); + T_Ok(str8_match(export_table.exports[1].name, str8_lit("baz"), 0)); + T_Ok(str8_match(export_table.exports[2].name, str8_lit("qwe"), 0)); + T_Ok(str8_match(export_table.exports[3].name, str8_zero(), 0)); + + // validate forwarders + T_Ok(str8_match(export_table.exports[0].forwarder, str8_zero(), 0)); + T_Ok(str8_match(export_table.exports[1].forwarder, str8_zero(), 0)); + T_Ok(str8_match(export_table.exports[2].forwarder, str8_zero(), 0)); + T_Ok(str8_match(export_table.exports[3].forwarder, str8_zero(), 0)); + + // validate voffs + T_Ok(export_table.exports[0].voff == 0x3000); + T_Ok(export_table.exports[1].voff == 0x4000); + T_Ok(export_table.exports[2].voff == 0x4000); + T_Ok(export_table.exports[3].voff == 0x3000); + + // validate ordinals + T_Ok(export_table.exports[0].ordinal == 2); + T_Ok(export_table.exports[1].ordinal == 3); + T_Ok(export_table.exports[2].ordinal == 4); + T_Ok(export_table.exports[3].ordinal == 1); + } + } + + { + T_Ok(SetDllDirectoryA((LPCSTR)g_wdir.str)); + HANDLE export_dll = LoadLibrary("export.dll"); + T_Ok(export_dll); + + // test query by function name + //T_Ok(GetProcAddress(export_dll, "baf")); + T_Ok(GetProcAddress(export_dll, "bar")); + //T_Ok(GetProcAddress(export_dll, "baz")); + T_Ok(GetProcAddress(export_dll, "foo")); + T_Ok(GetProcAddress(export_dll, "ord")); + T_Ok(GetProcAddress(export_dll, "ord2")); + + // test query by ordinal + //T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(9))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(10))); + //T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(11))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(12))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(5))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(6))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(7))); + T_Ok(GetProcAddress(export_dll, MAKEINTRESOURCE(8))); + } + + //T_Ok(t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /delayload:export.dll /export:entry kernel32.Lib delayimp.lib libcmt.lib export.lib import.obj entry.obj") == 0); + // TODO: check import table +} +#endif + +TEST(image_base) +{ + T_Ok(t_write_def_obj("image_base.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", + ".text", + str8_lit_comp( + "\x48\x8D\x0D\x00\x00\x00\x00" // lea rcx, [__ImageBase] + "\x48\xB8\x00\x00\x00\x00\x00\x00\x00\x00" // mov rax, __ImageBase + "\xB8\x00\x00\x00\x00" // mov eax, __ImageBase + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 3, "__ImageBase"), + T_COFF_DefReloc(X64_Addr64, 9, "__ImageBase"), + T_COFF_DefReloc(X64_Addr32Nb, 18, "__ImageBase"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("__ImageBase"), + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /base:0x2000000140000000 /out:a.exe image_base.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_section); + + U8 expected_text[] = { + 0x48, 0x8D, 0x0D, 0xF9, 0xEF, 0xFF, 0xFF, + 0x48, 0xB8, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, + 0xB8, 0x00, 0x00, 0x00, 0x00, + 0xC3 + }; + String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + sizeof(expected_text))); + T_Ok(str8_match(text_data, str8_array_fixed(expected_text), 0)); +} + +TEST(comdat_any) +{ + T_Ok(t_write_def_obj("1.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test$mn", str8_lit("1"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("test", COFF_ComdatSelect_Any), + T_COFF_DefSymbol_ExternFunc("TEST", "test", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("2.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test$mn", str8_lit("2"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("test", COFF_ComdatSelect_Any), + T_COFF_DefSymbol_Extern("TEST", "test", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3"), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + { + t_invoke_linkerf("/subsystem:console /entry:entry /out:1.exe 1.obj 2.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + String8 exe = t_read_file(arena, str8_lit("1.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("1"), 0)); + } + + { + t_invoke_linkerf("/subsystem:console /entry:entry /out:2.exe 2.obj 1.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + String8 exe = t_read_file(arena, str8_lit("2.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("2"), 0)); + } +} + +TEST(comdat_no_duplicates) +{ + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "a"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("a"), + {0} + } + })); + + String8 test_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test", str8_lit("a"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("test", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Extern("a", "test", 0), + {0} + } + }); + T_Ok(t_write_file(str8_lit("a.obj"), test_obj)); + T_Ok(t_write_file(str8_lit("b.obj"), test_obj)); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); + T_Ok(sect); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("a"), 0)); +} + +TEST(comdat_same_size) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_SameSize), + T_COFF_DefSymbol_Extern("TEST", "a", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "b", ".b", str8_lit("b"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_SameSize), + T_COFF_DefSymbol_Extern("TEST", "b", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("c.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "c", ".c", str8_lit("cc"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("c", COFF_ComdatSelect_SameSize), + T_COFF_DefSymbol_Extern("TEST", "c", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + T_Ok(sect != 0); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("a"), 0)); + } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj b.obj c.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { T_Ok(g_last_exit_code == LNK_Error_MultiplyDefinedSymbol); } +} + +TEST(comdat_exact_match) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_ExactMatch), + T_COFF_DefSymbol_Extern("TEST", "a", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("a2.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a2", ".a2", str8_lit("a"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a2", COFF_ComdatSelect_ExactMatch), + T_COFF_DefSymbol_Extern("TEST", "a2", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "b", ".b", str8_lit("b"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_ExactMatch), + T_COFF_DefSymbol_Extern("TEST", "b", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); + T_Ok(g_last_exit_code != 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe entry.obj a2.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a2")); + T_Ok(sect != 0); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("a"), 0)); + } +} + +TEST(comdat_largest) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "a", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "b", ".b", str8_lit("bb"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "b", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("c.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "c", ".c", str8_lit("c"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("c", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "c", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry entry.obj a.obj b.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *discard_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + T_Ok(discard_sect == 0); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + T_Ok(sect != 0); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("bb"), 0)); + } + + t_invoke_linkerf("/subsystem:console /out:b.exe /entry:entry entry.obj c.obj a.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 exe = t_read_file(arena, str8_lit("b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".c")); + T_Ok(sect != 0); + String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + T_Ok(str8_match(data, str8_lit("c"), 0)); + } +} + +TEST(comdat_associative) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", "a", str8_lit("a"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "aa", "aa", str8_lit("aa"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "a", 0), + T_COFF_DefSymbol_Associative("aa", "a"), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "bb", "bb", str8_lit("bb"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "b", "b", str8_lit("b"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "bbb", "bbb", str8_lit("bbb"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("bb", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Associative("b", "bb"), + T_COFF_DefSymbol_Associative("bbb", "bb"), + T_COFF_DefSymbol_Extern("TEST", "bb", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *a = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("a")); + COFF_SectionHeader *aa = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("aa")); + COFF_SectionHeader *b = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("b")); + COFF_SectionHeader *bb = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bb")); + COFF_SectionHeader *bbb = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bbb")); + T_Ok(a == 0); + T_Ok(aa == 0); + T_Ok(b != 0); + T_Ok(bb != 0); + T_Ok(bbb != 0); + String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); + String8 bb_data = str8_substr(exe, rng_1u64(bb->foff, bb->foff + bb->vsize)); + String8 bbb_data = str8_substr(exe, rng_1u64(bbb->foff, bbb->foff + bbb->vsize)); + T_Ok(str8_match(b_data, str8_lit("b"), 0)); + T_Ok(str8_match(bb_data, str8_lit("bb"), 0)); + T_Ok(str8_match(bbb_data, str8_lit("bbb"), 0)); +} + +TEST(comdat_associative_loop) +{ + T_Ok(t_write_def_obj("loop.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "aaaa", ".aaaa", str8_lit("aaaa"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "aa", ".aa", str8_lit("aa"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "a", ".a", str8_lit("a"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "aaa", ".aaa", str8_lit("aaa"), .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Associative("aaa", "aa"), + T_COFF_DefSymbol_Associative("aaaa", "aaa"), + T_COFF_DefSymbol_Associative("a", "aa"), + T_COFF_DefSymbol_Associative("aa", "a"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe loop.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { T_Ok(g_last_exit_code == LNK_Error_AssociativeLoop); } +} + +TEST(comdat_associative_non_comdat) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data" }, + { "b", ".b", str8_lit("b"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("TEST", "a", 0), + T_COFF_DefSymbol_Associative("b", "a"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj test.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *a = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + COFF_SectionHeader *b = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + T_Ok(a != 0); + T_Ok(b != 0); + String8 a_data = str8_substr(exe, rng_1u64(a->foff, a->foff + a->vsize)); + String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); + T_Ok(str8_match(a_data, str8_lit("a"), 0)); + T_Ok(str8_match(b_data, str8_lit("b"), 0)); +} + +TEST(comdat_associative_out_of_bounds) +{ + { + String8 obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "aa", ".aa", str8_lit("aa"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_Any), + T_COFF_DefSymbol_Extern("TEST", "a", 0), + T_COFF_DefSymbol_Associative("aa", "a"), + {0} + } + }); + { + COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); + String8 string_table = str8_substr(obj, header.string_table_range); + String8 symbol_table = str8_substr(obj, header.symbol_table_range); + COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 3); + AssertAlways(str8_match(symbol.name, str8_lit(".aa"), 0)); + AssertAlways(symbol.aux_symbol_count == 1); + COFF_Symbol16 *symbol16 = symbol.raw_symbol; + COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol16 + 1); + secdef->number_lo = 321; + } + T_Ok(t_write_file(str8_lit("bad.obj"), obj)); + } + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { T_Ok(g_last_exit_code == LNK_Error_IllData); } +} + +TEST(comdat_with_offset) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "rdata", ".rdata", str8_lit_cstr("1Hello, World!"), .flags = "r:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("rdata", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "rdata", 1), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "rdata", ".rdata", str8_lit_cstr("Hello, World!"), .flags = "r:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("rdata", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "rdata", 1), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" // ret + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); +} + +TEST(reloc_against_removed_comdat) +{ + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "rdata", ".rdata", str8_lit_cstr("1Hello, World!"), .flags = "r:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("rdata", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "rdata", 1), + {0} + } + })); + + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "comdat", ".rdata", str8_lit_cstr("H"), .flags = "r:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { + "regular", ".rdata", str8_lit_comp("\x00\x00\x00\x00"), .flags = "r:data", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "STATIC"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("comdat", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "comdat", 1), + T_COFF_DefSymbol_Static("STATIC", "comdat", 2), + {0} + } + })); + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == LNK_Error_RelocationAgainstRemovedSection); +} + +TEST(sect_align) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "shift", ".a", str8_lit("q"), .flags = "rw:data" }, + { "none", ".a", str8_lit("abc"), .flags = "rw:data" }, + { "a1", ".a", str8_lit("wr"), .flags = "rw:data@1" }, + { "a2", ".a", str8_lit("e"), .flags = "rw:data@2" }, + { "a4", ".a", str8_lit("ttttt"), .flags = "rw:data@4" }, + { "a8", ".a", str8_lit("g"), .flags = "rw:data@8" }, + { "a16", ".a", str8_lit("o"), .flags = "rw:data@16" }, + { "a32", ".a", str8_lit("p"), .flags = "rw:data@32" }, + { "a64", ".a", str8_lit("f"), .flags = "rw:data@64" }, + { "a128", ".a", str8_lit("x"), .flags = "rw:data@128" }, + { "a256", ".a", str8_lit("c"), .flags = "rw:data@256" }, + { "a512", ".a", str8_lit("v"), .flags = "rw:data@512" }, + { "a1024", ".a", str8_lit("b"), .flags = "rw:data@1024" }, + { "a2048", ".a", str8_lit("n"), .flags = "rw:data@2048" }, + { "a4096", ".a", str8_lit("m"), .flags = "rw:data@4096" }, + { "a8192", ".a", str8_lit("z"), .flags = "rw:data@8192" }, + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("my_entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /align:8192 test.obj"); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".a")); + T_Ok(sect); + String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); + + String8 shift = str8_substr(sect_data, rng_1u64(0, 1)); + T_Ok(str8_match(shift, str8_lit("q"), 0)); + String8 a_none = str8_substr(sect_data, rng_1u64(16, 16 + 3)); + T_Ok(str8_match(a_none, str8_lit("abc"), 0)); + String8 a_1 = str8_substr(sect_data, rng_1u64(19, 21)); + T_Ok(str8_match(a_1, str8_lit("wr"), 0)); + String8 a_2 = str8_substr(sect_data, rng_1u64(22, 23)); + T_Ok(str8_match(a_2, str8_lit("e"), 0)); + String8 a_4 = str8_substr(sect_data, rng_1u64(24, 29)); + T_Ok(str8_match(a_4, str8_lit("ttttt"), 0)); + String8 a_8 = str8_substr(sect_data, rng_1u64(32, 33)); + T_Ok(str8_match(a_8, str8_lit("g"), 0)); + String8 a_16 = str8_substr(sect_data, rng_1u64(48, 49)); + T_Ok(str8_match(a_16, str8_lit("o"), 0)); + String8 a_32 = str8_substr(sect_data, rng_1u64(64, 65)); + T_Ok(str8_match(a_32, str8_lit("p"), 0)); + String8 a_64 = str8_substr(sect_data, rng_1u64(128, 129)); + T_Ok(str8_match(a_64, str8_lit("f"), 0)); + String8 a_128 = str8_substr(sect_data, rng_1u64(256, 257)); + T_Ok(str8_match(a_128, str8_lit("x"), 0)); + String8 a_256 = str8_substr(sect_data, rng_1u64(512, 513)); + T_Ok(str8_match(a_256, str8_lit("c"), 0)); + String8 a_512 = str8_substr(sect_data, rng_1u64(1024, 1025)); + T_Ok(str8_match(a_512, str8_lit("v"), 0)); + String8 a_1024 = str8_substr(sect_data, rng_1u64(2048, 2049)); + T_Ok(str8_match(a_1024, str8_lit("b"), 0)); + String8 a_2048 = str8_substr(sect_data, rng_1u64(4096, 4097)); + T_Ok(str8_match(a_2048, str8_lit("n"), 0)); + String8 a_4096 = str8_substr(sect_data, rng_1u64(8192, 8193)); + T_Ok(str8_match(a_4096, str8_lit("m"), 0)); + String8 a_8192 = str8_substr(sect_data, rng_1u64(16384, 16385)); + T_Ok(str8_match(a_8192, str8_lit("z"), 0)); +} + +TEST(alt_name) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("test"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("test", "data", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("foo.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("foo"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("foo", "data", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "foo"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("foo"), + {0} + } + })); + + // basic alternate name test + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test test.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + // linker should not chase alt name links + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe /alternatename:foo=bar /alternatename:bar=test test.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // alt name conflict + t_invoke_linkerf("/subsystem:console /entry:entry /out:c.exe /alternatename:foo=test /alternatename:foo=qwe test.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:d.exe /alternatename:foo foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:e.exe /alternatename:foo-oof foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test=bar foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo= foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:= foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // syntax error + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename: foo.obj entry.obj"); + T_Ok(g_last_exit_code != 0); + + // TODO: check that RAD Linker prints these warnings + + // warn about alt name to self alt name? + t_invoke_linkerf("/subsystem:console /entry:entry /out:f.exe /alternatename:foo=foo foo.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + // warn about alt name to unknown symbol? + t_invoke_linkerf("/subsystem:console /entry:entry /out:g.exe /alternatename:qwe=ewq foo.obj entry.obj"); + T_Ok(g_last_exit_code == 0); +} + +TEST(include) +{ + T_Ok(t_write_def_lib("include.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("include.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("foo"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("foo", "data", 0), + {0} + } + } + }, + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "entry"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + // simple include test + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:foo entry.obj include.lib"); + T_Ok(g_last_exit_code == 0); + + // validate that linker pulled-in include.obj + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *foo_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(foo_sect != 0); + String8 foo_data = str8_substr(exe, rng_1u64(foo_sect->foff, foo_sect->foff + foo_sect->vsize)); + T_Ok(str8_match(foo_data, str8_lit("foo"), 0)); + } + + // test unresolved include + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:ewq entry.obj"); + T_Ok(g_last_exit_code != 0); + if (t_id_linker() == Linker_radlink) { T_Ok(g_last_exit_code == LNK_Error_UnresolvedSymbol); } +} + +TEST(communal_var_vs_regular) +{ + T_Ok(t_write_def_obj("communal.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Common("TEST", 1), + {0} + } + })); + + T_Ok(t_write_def_obj("defn.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("test"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("TEST", "data", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + // linker should replace communal TEST with .data TEST + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj defn.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe defn.obj communal.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + char *exes[] = { "a.exe", "b.exe" }; + for EachElement(i, exes) { + String8 exe = t_read_file(arena, str8_cstring(exes[i])); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(data_sect); + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); + T_Ok(str8_match(data, str8_lit("test"), 0)); + } +} + +TEST(communal_var_vs_regular_comdat) +{ + T_Ok(t_write_def_obj("communal.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Common("TEST", 1), + {0} + } + })); + + T_Ok(t_write_def_obj("large.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit("test"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("data", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("TEST", "data", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("TEST"), + {0} + } + })); + + // linker should replace communal TEST with .data TEST + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj large.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe large.obj communal.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + char *exes[] = { "a.exe", "b.exe" }; + for EachElement(i, exes) { + String8 exe = t_read_file(arena, str8_cstring(exes[i])); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *data_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); + T_Ok(data_sect); + String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); + T_Ok(str8_match(data, str8_lit("test"), 0)); + } +} + +#if OS_WINDOWS +TEST(import_kernel32) +{ + T_Ok(t_write_def_obj("import.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "data", ".data", str8_lit_cstr("test"), .flags = "rw:data" }, + { + "text", ".text", + str8_lit_comp( + "\x48\x83\xEC\x68" // sub rsp,68h ; alloc space on stack + "\xC7\x44\x24\x48\x18\x00\x00\x00" // mov dword ptr [rsp+48h],18h ; SECURITY_ATTRIBUTES.nLength + "\x48\xC7\x44\x24\x50\x00\x00\x00\x00" // mov qword ptr [rsp+50h],0 ; SECURITY_ATTRIBUTES.lpSecurityDescriptor + "\xC7\x44\x24\x58\x00\x00\x00\x00" // mov dword ptr [rsp+58h],0 ; SECURITY_ATTRIBUTES.bInheritHandle + "\x48\xC7\x44\x24\x30\x00\x00\x00\x00" // mov qword ptr [rsp+30h],0 ; hTemplateFile + "\xC7\x44\x24\x28\x80\x00\x00\x00" // mov dword ptr [rsp+28h],80h ; dwFlagsAndAttributes + "\xC7\x44\x24\x20\x02\x00\x00\x00" // mov dword ptr [rsp+20h],2 ; dwCreationDisposition + "\x4C\x8D\x4C\x24\x48" // lea r9,[rsp+48h] ; lpSecurityAttributes + "\x45\x33\xC0" // xor r8d,r8d ; dwShareMode + "\xBA\x00\x00\x00\x40" // mov edx,40000000h ; dwDesiredAccess + "\x48\x8D\x0D\x00\x00\x00\x00" // lea rcx,[test] ; lpFileName + "\xFF\x15\x00\x00\x00\x00" // call qword ptr [__imp_CreateFileA] ; call CreateFileA + "\x48\x89\xC1" // mov rcx,rax ; hObject + "\xFF\x15\x00\x00\x00\x00" // call qword ptr [__imp_CloseHandle] ; call CloseHandle + "\x33\xC0" // xor eax,eax ; clear result + "\x48\x83\xC4\x68" // add rsp,68h ; dealloc stack + "\xC3" // ret ; return + ), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 70, "test"), + T_COFF_DefReloc(X64_Rel32, 76, "__imp_CreateFileA"), + T_COFF_DefReloc(X64_Rel32, 85, "__imp_CloseHandle"), + {0}, + } + }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("test", "data", 0), + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("__imp_CreateFileA"), + T_COFF_DefSymbol_Undef("__imp_CloseHandle"), + {0}, + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed import.obj kernel32.lib"); + T_Ok(g_last_exit_code == 0); + + { + String8 test_file_path = push_str8f(arena, "%S/test", g_wdir); + delete_file_at_path(test_file_path); + + ProcessLaunchParams launch_opts = {0}; + launch_opts.inherit_env = 0; + launch_opts.path = g_wdir; + str8_list_pushf(arena, &launch_opts.cmd_line, "%S/a.exe", g_wdir); + Process handle = process_launch(&launch_opts); + AssertAlways(!process_match(handle, process_zero())); + U64 exit_code = max_U64; + process_join(handle, max_U64, &exit_code); + T_Ok(exit_code == 0); + T_Ok(file_path_exists(test_file_path)); + } +} + +TEST(delay_import) +{ + { + U8 return_0[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 + 0xc3 // ret + }; + U8 return_1[] = { + 0x48, 0xC7, 0xC0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 + 0xc3 // ret + }; + U8 return_2[] = { + 0x48, 0xC7, 0xC0, 0x02, 0x00, 0x00, 0x00, // mov rax, 2 + 0xc3 // ret + }; + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "return_0", ".text", str8_array_fixed(return_0), .flags = "rx:code@1" }, + { "return_1", ".text", str8_array_fixed(return_1), .flags = "rx:code@1" }, + { "return_2", ".text", str8_array_fixed(return_2), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("return_1", "return_1", 0), + T_COFF_DefSymbol_ExternFunc("return_2", "return_2", 0), + {0} + } + })); + } + + { + U8 return_0[] = { + 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 + 0xc3 // ret + }; + U8 return_123[] = { + 0x48, 0xC7, 0xC0, 0x7B, 0x00, 0x00, 0x00, // mov rax, 123 + 0xc3 // ret + }; + U8 return_321[] = { + 0x48, 0xC7, 0xC0, 0x41, 0x01, 0x00, 0x00, // mov rax, 321 + 0xc3 // ret + }; + T_Ok(t_write_def_obj("b.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "return_0", ".text", str8_array_fixed(return_0), .flags = "rx:code@1" }, + { "return_123", ".text", str8_array_fixed(return_123), .flags = "rx:code@1" }, + { "return_321", ".text", str8_array_fixed(return_321), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("return_123", "return_123", 0), + T_COFF_DefSymbol_ExternFunc("return_321", "return_321", 0), + {0} + } + })); + } + + { + U8 text[] = { + 0x56, // push rsi + 0x57, // push rdi + 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_1 + 0x89, 0xC6, // mov esi,eax + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_2 + 0x89, 0xC7, // mov edi,eax + 0x01, 0xF7, // add edi,esi + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_123 + 0x89, 0xC6, // mov esi,eax + 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_321 + 0x01, 0xF0, // add eax,esi + 0x01, 0xF8, // add eax,edi + 0x48, 0x83, 0xC4, 0x28, // add rsp,28h + 0x5F, // pop rdi + 0x5E, // pop rsi + 0xC3, // ret + }; + T_Ok(t_write_def_obj("main.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_array_fixed(text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 7, "return_1"), + T_COFF_DefReloc(X64_Rel32, 14, "return_2"), + T_COFF_DefReloc(X64_Rel32, 23, "return_123"), + T_COFF_DefReloc(X64_Rel32, 30, "return_321"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("return_1"), + T_COFF_DefSymbol_Undef("return_2"), + T_COFF_DefSymbol_Undef("return_123"), + T_COFF_DefSymbol_Undef("return_321"), + {0} + } + })); + } + + t_invoke_linkerf("/dll /implib:a.lib /export:return_1 /export:return_2 /rad_time_stamp:0x69EB0E28 a.obj libcmt.lib"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/dll /implib:b.lib /export:return_123 /export:return_321 /rad_time_stamp:0x69EB0E28 b.obj libcmt.lib"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed /debug:full /rad_time_stamp:0x69EB0E28 main.obj a.lib b.lib kernel32.lib delayimp.lib libcmt.lib /delayload:a.dll /delayload:b.dll"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + PE_ParsedDelayImportTable delay_import_table = pe_delay_imports_from_data(arena, pe.is_pe32, pe.section_count, section_table, exe, pe.data_dir_franges[PE_DataDirectoryIndex_DELAY_IMPORT]); + + PE_ParsedDelayDLLImport *a_import = &delay_import_table.v[0]; + T_Ok(a_import->attributes == 1); + T_Ok(str8_match(a_import->name, str8_lit("a.dll"), 0)); + T_Ok(a_import->module_handle_voff != 0); + T_Ok(a_import->name_table_voff != 0); + T_Ok(a_import->bound_table_voff != 0); + T_Ok(a_import->unload_table_voff != 0); + T_Ok(a_import->time_stamp == 0); + T_Ok(a_import->bound_table_count == 2); + T_Ok(a_import->unload_table_count == 2); + T_Ok(a_import->import_count == 2); + + PE_ParsedImport *return_1 = &a_import->imports[0]; + T_Ok(return_1->type == PE_ParsedImport_Name); + T_Ok(str8_match(return_1->u.name.string, str8_lit("return_1"), 0)); + T_Ok(return_1->u.name.hint == 0); + + PE_ParsedImport *return_2 = &a_import->imports[1]; + T_Ok(return_2->type == PE_ParsedImport_Name); + T_Ok(str8_match(return_2->u.name.string, str8_lit("return_2"), 0)); + T_Ok(return_2->u.name.hint == 1); + + PE_ParsedDelayDLLImport *b_import = &delay_import_table.v[1]; + T_Ok(b_import->attributes == 1); + T_Ok(str8_match(b_import->name, str8_lit("b.dll"), 0)); + T_Ok(b_import->module_handle_voff != 0); + T_Ok(b_import->name_table_voff != 0); + T_Ok(b_import->bound_table_voff != 0); + T_Ok(b_import->unload_table_voff != 0); + T_Ok(b_import->time_stamp == 0); + T_Ok(b_import->bound_table_count == 2); + T_Ok(b_import->unload_table_count == 2); + T_Ok(b_import->import_count == 2); + + PE_ParsedImport *return_123 = &b_import->imports[0]; + T_Ok(return_123->type == PE_ParsedImport_Name); + T_Ok(str8_match(return_123->u.name.string, str8_lit("return_123"), 0)); + T_Ok(return_123->u.name.hint == 0); + + PE_ParsedImport *return_321 = &b_import->imports[1]; + T_Ok(return_321->type == PE_ParsedImport_Name); + T_Ok(str8_match(return_321->u.name.string, str8_lit("return_321"), 0)); + T_Ok(return_321->u.name.hint == 1); +} + +TEST(delay_import_user32) +{ + { + U64 msg_off = 0; + U64 caption_off = 5; + String8 str_payload = str8_lit_comp("test\0foo\0"); + U8 text[] = { + 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h + 0x45, 0x33, 0xC9, // xor r9d,r9d + 0x4C, 0x8D, 0x05, 0x00, 0x00, 0x00, 0x00, // lea r8,[msg] + 0x48, 0x8D, 0x15, 0x00, 0x00, 0x00, 0x00, // lea rdx,[caption] + 0x33, 0xC9, // xor ecx,ecx + 0xFF, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_MessageBoxA] + 0x33, 0xC0, // xor eax,eax + 0x48, 0x83, 0xC4, 0x28, // add rsp,28h + 0xC3, // ret + }; + T_Ok(t_write_def_obj("delay_import.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "str", ".str", str_payload, .flags = "rw:data" }, + { + "text", ".text", str8_array_fixed(text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 10, "msg"), + T_COFF_DefReloc(X64_Rel32, 17, "caption"), + T_COFF_DefReloc(X64_Rel32, 25, "__imp_MessageBoxA"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("msg", "str", msg_off), + T_COFF_DefSymbol_Extern("caption", "str", caption_off), + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("__imp_MessageBoxA"), + {0} + } + })); + } + + t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry /fixed /delayload:user32.dll kernel32.lib user32.lib libcmt.lib delayimp.lib delay_import.obj /debug:full"); + T_Ok(g_last_exit_code == 0); +} + +#endif + +TEST(empty_section) +{ + T_Ok(t_write_def_obj("empty_section.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test", str8(0,0), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("TEST", "test", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("TEST"), + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe empty_section.obj entry.obj"); + T_Ok(g_last_exit_code != 0); +} + +TEST(removed_section) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "test", ".test", str8_lit_comp("\xC3"), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkRemove }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("TEST", "test", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "TEST"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("TEST"), + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.obj entry.obj"); + T_Ok(g_last_exit_code != 0); +} + +TEST(function_pad_min) +{ + T_Ok(t_write_def_obj("funcs.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@4" }, + { "b", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@4" }, + { "c", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("A", "a", 0), + T_COFF_DefSymbol_ExternFunc("B", "b", 0), + T_COFF_DefSymbol_ExternFunc("C", "c", 0), + {0}, + } + })); + + t_invoke_linkerf("/subsystem:console /entry:A /functionpadmin:1 /out:a.exe funcs.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + T_Ok(text_sect != 0); + String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); + + U8 expected_text[] = { + 0xcc, 0xcc, 0xcc, 0xcc, 0xc3, + 0xcc, 0xcc, 0xcc, 0xc3, + 0xcc, 0xc3, + }; + T_Ok(str8_match(text_data, str8_array_fixed(expected_text), 0)); +} + +TEST(first_member_header) +{ + T_Ok(t_write_def_lib("test.lib", (T_COFF_DefLib){ + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("obj.obj"), + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("8", 0x8), + T_COFF_DefSymbol_AbsExtern("1", 0x1), + T_COFF_DefSymbol_AbsExtern("9", 0x9), + T_COFF_DefSymbol_AbsExtern("7", 0x7), + T_COFF_DefSymbol_AbsExtern("4", 0x4), + T_COFF_DefSymbol_AbsExtern("5", 0x5), + T_COFF_DefSymbol_AbsExtern("2", 0x2), + T_COFF_DefSymbol_AbsExtern("3", 0x3), + T_COFF_DefSymbol_AbsExtern("6", 0x6), + {0} + } + } + }, + {0} + } + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.lib entry.obj /include:1 /include:2 /include:3 /include:4 /include:5 /include:6 /include:7 /include:8 /include:9"); + T_Ok(g_last_exit_code == 0); +} + +TEST(second_member_header) +{ + T_Ok(t_write_def_lib("test.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("obj.obj"), + .machine = T_COFF_DefSetMachine(X64), + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsExtern("8", 0x8), + T_COFF_DefSymbol_AbsExtern("1", 0x1), + T_COFF_DefSymbol_AbsExtern("9", 0x9), + T_COFF_DefSymbol_AbsExtern("7", 0x7), + T_COFF_DefSymbol_AbsExtern("4", 0x4), + T_COFF_DefSymbol_AbsExtern("5", 0x5), + T_COFF_DefSymbol_AbsExtern("2", 0x2), + T_COFF_DefSymbol_AbsExtern("3", 0x3), + T_COFF_DefSymbol_AbsExtern("6", 0x6), + {0} + } + } + }, + {0} + } + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.lib entry.obj /include:1 /include:2 /include:3 /include:4 /include:5 /include:6 /include:7 /include:8 /include:9"); + T_Ok(g_last_exit_code == 0); +} + +TEST(defer_impl_link_to_second_search_pass) +{ + T_Ok(t_write_def_obj("imp_ref.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("entry", "text", 0), + T_COFF_DefSymbol_Undef("__imp_foo"), + T_COFF_DefSymbol_Undef("func"), + {0} + } + })); + + T_Ok(t_write_def_lib("impl_ref.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("impl_ref.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xc3"), .flags = "rx:code" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("func", "text", 0), + T_COFF_DefSymbol_Undef("foo"), + {0} + } + } + }, + {0} + } + })); + + T_Ok(t_write_def_lib("foo.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Import, + .import = { + "foo.dll", "foo", COFF_ImportBy_Name, COFF_ImportHeader_Code, + .hit_or_ordinal = 0, + .time_stamp = T_COFF_DefSetTimeStamp(~0u), + .machine = T_COFF_DefSetMachine(X64) + } + }, + {0} + } + })); + + T_Ok(t_write_def_lib("foo2.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Import, + .import = { + "foo.dll", "foo", COFF_ImportBy_Name, COFF_ImportHeader_Code, + .hit_or_ordinal = 0, + .time_stamp = T_COFF_DefSetTimeStamp(~0u), + .machine = T_COFF_DefSetMachine(X64) + } + }, + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe foo.lib foo2.lib imp_ref.obj impl_ref.lib"); + T_Ok(g_last_exit_code == 0); +} + +TEST(defer_duplicate_imp_link) +{ + T_COFF_DefLib bar_lib_any = { + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_DllImportStatic, + .dll_import = { .name = "bar.dll" } + }, + { + .type = T_COFF_DefLibMember_Import, + .import = { "bar.dll", "bar", COFF_ImportBy_Name, COFF_ImportHeader_Code, .hit_or_ordinal = 0 } + }, + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\xff\x25\x00\x00\x00\x00"), .flags = "rx:code" + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("__imp_bar"), + T_COFF_DefSymbol_ExternFunc("qwe", "text", 0), + {0}, + } + } + }, + {0} + } + }; + + T_COFF_DefLib foo_lib_any = { + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_DllImportStatic, + .dll_import = { .name = "foo.dll" } + }, + { + .type = T_COFF_DefLibMember_Import, + .import = { "foo.dll", "bar", COFF_ImportBy_Name, COFF_ImportHeader_Code, .hit_or_ordinal = 0 } + }, + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp("\xff\x25\x00\x00\x00\x00"), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 2, "bar"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("bar"), + T_COFF_DefSymbol_Undef("qwe"), + T_COFF_DefSymbol_ExternFunc("thunk", "text", 0), + {0}, + } + } + }, + {0} + } + }; + + String8 bar_lib = t_coff_from_def_lib(arena, bar_lib_any); + String8 foo_lib = t_coff_from_def_lib(arena, foo_lib_any); + + T_Ok(t_write_file(str8_lit("bar.lib"), bar_lib)); + T_Ok(t_write_file(str8_lit("foo.lib"), foo_lib)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe bar.lib foo.lib entry.obj /include:thunk"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + PE_ParsedStaticImportTable static_imptab = pe_static_imports_from_data(arena, pe.is_pe32, pe.section_count, section_table, exe, pe.data_dir_franges[PE_DataDirectoryIndex_IMPORT]); + COFF_SectionHeader *data_sect = coff_section_header_from_name(str8_zero(), section_table, pe.section_count, str8_lit(".data")); + + T_Ok(static_imptab.count == 1); + + PE_ParsedStaticDLLImport *dll = &static_imptab.v[0]; + T_Ok(str8_match(dll->name, str8_lit("foo.dll"), StringMatchFlag_CaseInsensitive)); + + T_Ok(dll->import_count == 1); + PE_ParsedImport *imp = &dll->imports[0]; + T_Ok(imp->type == PE_ParsedImport_Name); + T_Ok(str8_match(imp->u.name.string, str8_lit("bar"), 0)); + + U64 iat_foff = pe_foff_from_voff(exe, &pe, dll->import_address_table_voff); + U64 ilt_foff = pe_foff_from_voff(exe, &pe, dll->import_name_table_voff); + + U64 bar_idx = 0; + U64 bar_iat_addr = 0; + U64 bar_ilt_addr = 0; + str8_deserial_read_struct(exe, iat_foff + bar_idx * sizeof(U64), &bar_iat_addr); + str8_deserial_read_struct(exe, ilt_foff + bar_idx * sizeof(U64), &bar_ilt_addr); + + T_Ok(bar_iat_addr != 0); + T_Ok(bar_ilt_addr != 0); + T_Ok(bar_iat_addr == bar_ilt_addr); + T_Ok(data_sect->voff <= bar_iat_addr && bar_iat_addr < data_sect->voff + data_sect->vsize); +} + +TEST(opt_ref_dangling_section) +{ + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp( + "\x48\xC7\xC0\x00\x00\x00\x00" // mov rax, $imm + "\xC3" + ), // ret + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "f"), + {0} + } + }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("f"), + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_cstr("A0000"), .flags = "rw:data", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 0, "q"), + {0} + } + }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("q"), + T_COFF_DefSymbol_Secdef("data", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("f", "data", 0), + {0} + } + })); + + T_Ok(t_write_def_lib("b.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("b.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "q", ".q", str8_lit_comp("\x1\x2\x3\x4"), .flags = "rw:data" }, + { + "data", ".data", str8_lit_cstr("BBBBBBBBBBBBBBB"), + .flags = "rw:data", + .raw_flags = COFF_SectionFlag_LnkCOMDAT + }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("q", "q", 0), + T_COFF_DefSymbol_Secdef("data", COFF_ComdatSelect_Largest), + T_COFF_DefSymbol_Extern("f", "data", 0), + {0}, + } + } + }, + {0}, + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.lib"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".q")); + T_Ok(sect != 0); +} + +// TODO: relocations against undefined section symbols +#if 1 +TEST(relocate_undefined_section_symbol) +{ + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00\xC3"), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "caller"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("caller"), + {0} + } + })); + + U64 target_count = 25; + + String8 caller_data = str8( + push_array(arena, U8, target_count * 4), target_count * 4); + T_COFF_DefReloc *caller_relocs = push_array(arena, T_COFF_DefReloc, target_count + 1); + T_COFF_DefSymbol *caller_symbols = push_array(arena, T_COFF_DefSymbol, target_count + 3); + + caller_symbols[0] = (T_COFF_DefSymbol)T_COFF_DefSymbol_Secdef("caller", COFF_ComdatSelect_Any); + caller_symbols[1] = (T_COFF_DefSymbol)T_COFF_DefSymbol_Extern("caller", "caller", 0); + + String8List targets = {0}; + + for EachIndex(i, target_count) { + char *obj_name = (char *)str8f(arena, "target%u.obj", i).str; + char *target_name = (char *)str8f(arena, "target%u", i).str; + char *sect_name = (char *)str8f(arena, ".target%u", i).str; + T_Ok(t_write_def_obj(obj_name, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { target_name, sect_name, str8_cstring(target_name), .flags = "r:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef(target_name, COFF_ComdatSelect_Any), + T_COFF_DefSymbol_Extern(target_name, target_name, 0), + {0} + } + })); + + caller_relocs[i] = (T_COFF_DefReloc)T_COFF_DefReloc(X64_Addr32Nb, i * 4, sect_name); + caller_symbols[i + 2] = (T_COFF_DefSymbol)T_COFF_DefSymbol_UndefSec(sect_name, COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); + + str8_list_pushf(arena, &targets, obj_name); + } + + T_Ok(t_write_def_obj("caller.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "caller", ".caller", caller_data, .flags = "rw:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT, .relocs = caller_relocs}, + {0} + }, + .symbols = caller_symbols, + })); + + String8 target_paths = str8_list_join(arena, &targets, &(StringJoin){.sep=str8_lit(" ")}); + T_Ok(t_invoke_linkerf("/subsystem:console /entry:entry /opt:ref /out:a.exe entry.obj caller.obj %S", target_paths) && g_last_exit_code == 0); + + String8 output = g_errors; + U64 match_count = 0; + while (output.size) { + if (t_match_line(&output, str8_lit("WARNING(*): *: relocation * in section *+* points to an undefined symbol *(*)"))) { + match_count += 1; + } + } + //T_Ok(match_count > 0); +} +#endif + +#if 1 +TEST(opt_ref_weak_alias_comdat) +{ + T_Ok(t_write_def_obj("weak.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "target", ".target", str8_lit("target"), .flags = "r:data@1", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("target", COFF_ComdatSelect_Any), + T_COFF_DefSymbol_Extern("target", "target", 0), + T_COFF_DefSymbol_Weak("weak_target", COFF_WeakExt_SearchAlias, "target"), + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\x48\xC7\xC0\x00\x00\x00\x00\xC3"), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32Nb, 3, "weak_target"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + T_COFF_DefSymbol_Undef("weak_target"), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /opt:ref /out:a.exe entry.obj weak.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *target_sect = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".target")); + T_Ok(target_sect != 0); +} +#endif + + +TEST(fail_if_mismatch) +{ + T_Ok(t_write_entry_obj()); + + // ------------------------------------------------------------ + // try linking two objs with mismatching directives + + String8 a1 = t_make_obj_with_directive(arena, str8_lit("/FAILIFMISMATCH:a=1")); + String8 a2 = t_make_obj_with_directive(arena, str8_lit("/FAILIFMISMATCH:a=2")); + T_Ok(t_write_file(str8_lit("a1.obj"), a1)); + T_Ok(t_write_file(str8_lit("a2.obj"), a2)); + + t_invoke_linkerf("entry.obj a1.obj a2.obj /entry:entry /subsystem:console /out:a2.exe"); + if (t_id_linker() == Linker_radlink) T_Ok(g_last_exit_code == LNK_Error_FailIfMismatch); + else T_Ok(g_last_exit_code != 0); + + // ------------------------------------------------------------ + // happy case + + T_Ok(t_write_file(str8_lit("a1_copy.obj"), a1)); + + t_invoke_linkerf("entry.obj a1.obj a1_copy.obj /entry:entry /subsystem:console /out:a1.exe"); + T_Ok(g_last_exit_code == 0); + + // ------------------------------------------------------------ + // test conflicting directives in obj + + String8 conf_dirs = t_make_obj_with_directive(arena, str8_lit("/FAILIFMISMATCH:a=1 /FAILIFMISMATCH:a=2")); + T_Ok(t_write_file(str8_lit("conf_dirs.obj"), conf_dirs)); + + t_invoke_linkerf("entry.obj conf_dirs.obj /entry:entry /subsystem:console /out:conf_dirs.exe"); + if (t_id_linker() == Linker_radlink) T_Ok(g_last_exit_code == LNK_Error_FailIfMismatch); + else T_Ok(g_last_exit_code != 0); + + // ------------------------------------------------------------ + // passing switch on command line + + t_invoke_linkerf("entry.obj a1.obj /FAILIFMISMATCH:a=2 /out:cmddir.exe"); + if (t_id_linker() == Linker_radlink) T_Ok(g_last_exit_code == LNK_Error_FailIfMismatch); + else T_Ok(g_last_exit_code != 0); +} + +TEST(long_section_name) +{ + Arch arch = Arch_x64; + + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code" }, + { "debug_info", ".debug_info", str8_lit("DEBUG_INFO"), .flags = "rw:data" }, + { "debug_abbrev", ".debug_abbrev", str8_lit("DEBUG_ABBREV"), .flags = "rw:data" }, + {0}, + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + // link test.obj + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.obj"); + T_Ok(g_last_exit_code == 0); + + // load linked exe + String8 exe = t_read_file(arena, str8_lit("a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + + COFF_SectionHeader *debug_info = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".debug_info")); + T_Ok(debug_info); + + COFF_SectionHeader *debug_abbrev = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".debug_abbrev")); + T_Ok(debug_abbrev); +} + +TEST(debug_p_sig_mismatch) +{ + String8 a_obj_name = str8_lit("a.obj"); + String8 b_obj_name = str8_lit("b.obj"); + U32 a_sig = 0xCAFEBABE; + U32 b_sig = 0xDEADBEEF; + + String8 a_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = a_sig; + String8 obj_name_string = a_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + a_debug_s = str8_serial_end(arena, &srl); + } + String8 a_debug_p; + { + String8List srl; + str8_serial_begin(arena, &srl); + + // signature + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + // duplicate in a.obj + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(ptr)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // unique procedure type + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearPascal }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(proc)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // PCH ender + CV_LeafEndPreComp endprecomp = { .sig = a_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(endprecomp)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_ENDPRECOMP); + str8_serial_push_struct(arena, &srl, &endprecomp); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + a_debug_p = str8_serial_end(arena, &srl); + } + + String8 b_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = b_sig; + String8 obj_name_string = a_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + b_debug_s = str8_serial_end(arena, &srl); + } + + String8 b_debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_LeafPreComp precomp = { .start_index = CV_MinComplexTypeIndex, .count = 2, sig = b_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(precomp) + a_obj_name.size + 1); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PRECOMP); + str8_serial_push_struct(arena, &srl, &precomp); + str8_serial_push_cstr(arena, &srl, a_obj_name); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + b_debug_t = str8_serial_end(arena, &srl); + } + + String8 a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_p", ".debug$P", a_debug_p, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", a_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", b_debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", b_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("a.obj"), a_obj)); + T_Ok(t_write_file(str8_lit("b.obj"), b_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + B32 found_error = 0; + String8 a_obj_path = t_make_file_path(arena, str8_lit("a.obj")); + String8 b_obj_path = t_make_file_path(arena, str8_lit("b.obj")); + String8 expected_line = str8f(arena, "Error(%03d): %S: PCH signature mismatch, expected 0x%x got 0x%x; PCH obj %S", LNK_Error_PrecompSigMismatch, b_obj_path, b_sig, a_sig, a_obj_path); + + String8 output = g_errors; + while (output.size) { + String8 line = t_chop_line(&output); + found_error = str8_match(line, expected_line, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive); + if (found_error) { break; } + } + T_Ok(found_error); +} + +TEST(pch_sig_fallback) +{ + String8 a_obj_file_path = t_make_file_path(arena, str8_lit("a.obj")); + String8 b_obj_file_path = t_make_file_path(arena, str8_lit("b.obj")); + U32 a_sig = 0xCAFEBABE; + U32 b_sig = 0xCAFEBABE; + + String8 a_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = a_sig; + String8 obj_name_string = a_obj_file_path; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + a_debug_s = str8_serial_end(arena, &srl); + } + String8 a_debug_p; + { + String8List srl; + str8_serial_begin(arena, &srl); + + // signature + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + // duplicate in a.obj + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(ptr)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // unique procedure type + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearPascal }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(proc)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // PCH ender + CV_LeafEndPreComp endprecomp = { .sig = a_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(endprecomp)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_ENDPRECOMP); + str8_serial_push_struct(arena, &srl, &endprecomp); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + a_debug_p = str8_serial_end(arena, &srl); + } + + String8 b_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = b_sig; + String8 obj_name_string = a_obj_file_path; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + b_debug_s = str8_serial_end(arena, &srl); + } + + String8 b_debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + String8 corrupt_pch_path = str8_lit("corrupt-pch-file-path.obj"); + + CV_LeafPreComp precomp = { .start_index = CV_MinComplexTypeIndex, .count = 2, sig = b_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(precomp) + corrupt_pch_path.size + 1); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PRECOMP); + str8_serial_push_struct(arena, &srl, &precomp); + str8_serial_push_cstr(arena, &srl, corrupt_pch_path); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + b_debug_t = str8_serial_end(arena, &srl); + } + + String8 a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_p", ".debug$P", a_debug_p, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", a_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", b_debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", b_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(write_data_to_file_path(a_obj_file_path, a_obj)); + T_Ok(write_data_to_file_path(b_obj_file_path, b_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); +} + +TEST(gen_rrt) +{ + String8 a_obj_file_path = t_make_file_path(arena, str8_lit("a.obj")); + String8 b_obj_file_path = t_make_file_path(arena, str8_lit("b.obj")); + U32 a_sig = 0xCAFEBABE; + U32 b_sig = 0xCAFEBABE; + + String8 a_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = a_sig; + String8 obj_name_string = a_obj_file_path; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + a_debug_s = str8_serial_end(arena, &srl); + } + String8 a_debug_p; + { + String8List srl; + str8_serial_begin(arena, &srl); + + // signature + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + // duplicate in a.obj + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(ptr)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // unique procedure type + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearPascal }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(proc)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // PCH ender + CV_LeafEndPreComp endprecomp = { .sig = a_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(endprecomp)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_ENDPRECOMP); + str8_serial_push_struct(arena, &srl, &endprecomp); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + a_debug_p = str8_serial_end(arena, &srl); + } + + String8 b_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = b_sig; + String8 obj_name_string = a_obj_file_path; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + b_debug_s = str8_serial_end(arena, &srl); + } + + String8 b_debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + String8 corrupt_pch_path = str8_lit("corrupt-pch-file-path.obj"); + + CV_LeafPreComp precomp = { .start_index = CV_MinComplexTypeIndex, .count = 2, sig = b_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(precomp) + corrupt_pch_path.size + 1); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PRECOMP); + str8_serial_push_struct(arena, &srl, &precomp); + str8_serial_push_cstr(arena, &srl, corrupt_pch_path); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + b_debug_t = str8_serial_end(arena, &srl); + } + + String8 a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_p", ".debug$P", a_debug_p, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", a_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", b_debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", b_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(write_data_to_file_path(a_obj_file_path, a_obj)); + T_Ok(write_data_to_file_path(b_obj_file_path, b_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full /rad_type_server:foo.rrt a.obj b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash a.obj foo.rrt b.obj entry.obj"); + T_Ok(g_last_exit_code == 0); +} + +TEST(debug_p_and_debug_t_in_obj) +{ + U32 pch_sig = 0xCAFEBABE; + String8 pch_obj_name = str8_lit("pch.obj"); + + String8 pch_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = pch_sig; + String8 obj_name_string = pch_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + pch_debug_s = str8_serial_end(arena, &srl); + } + + String8 pch_debug_p; + { + String8List srl; + str8_serial_begin(arena, &srl); + + // signature + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(ptr)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // PCH ender + CV_LeafEndPreComp endprecomp = { .sig = pch_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(endprecomp)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_ENDPRECOMP); + str8_serial_push_struct(arena, &srl, &endprecomp); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + pch_debug_p = str8_serial_end(arena, &srl); + } + + String8 pch_debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_LeafPreComp precomp = { .start_index = CV_MinComplexTypeIndex, .count = 1, sig = pch_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(precomp) + pch_obj_name.size + 1); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PRECOMP); + str8_serial_push_struct(arena, &srl, &precomp); + str8_serial_push_cstr(arena, &srl, pch_obj_name); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + pch_debug_t = str8_serial_end(arena, &srl); + } + + T_Ok(t_write_def_obj("pch.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_p", ".debug$P", pch_debug_p, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_t", ".debug$T", pch_debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", pch_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + })); + T_Ok(t_write_entry_obj()); + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full pch.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + + String8 output = g_errors; + B32 found_warning = 0; + String8 pch_obj_path = t_make_file_path(arena, str8_lit("pch.obj")); + String8 expected_line = str8f(arena, "Warning(%03d): %S: multiple sections with debug types detected, obj must have either .debug$T or .debug$P; discarding both sections", LNK_Warning_MultipleDebugTAndDebugP, pch_obj_path); + while (output.size) { + String8 line = t_chop_line(&output); + found_warning = str8_match(line, expected_line, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive); + if (found_warning) { break; } + } + T_Ok(found_warning); +} + +TEST(merge_duplicate_types) +{ + { + U32 pch_sig = 0xCAFEBABE; + String8 pch_obj_name = str8_lit("pch.obj"); + String8 a_obj_name = str8_lit("a.obj"); + String8 c_obj_name = str8_lit("c.obj"); + + String8 pch_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = pch_sig; + String8 obj_name_string = pch_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + pch_debug_s = str8_serial_end(arena, &srl); + } + String8 debug_p; + { + String8List srl; + str8_serial_begin(arena, &srl); + + // signature + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + // duplicate in a.obj + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(ptr)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // unique procedure type + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearPascal }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(proc)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + // PCH ender + CV_LeafEndPreComp endprecomp = { .sig = pch_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(endprecomp)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_ENDPRECOMP); + str8_serial_push_struct(arena, &srl, &endprecomp); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + debug_p = str8_serial_end(arena, &srl); + } + + String8 a_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + CV_SymObjName obj_name = {0}; + obj_name.sig = pch_sig; + String8 obj_name_string = a_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + a_debug_s = str8_serial_end(arena, &srl); + } + + String8 debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_LeafPreComp precomp = { .start_index = CV_MinComplexTypeIndex, .count = 2, sig = pch_sig }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(precomp) + pch_obj_name.size + 1); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PRECOMP); + str8_serial_push_struct(arena, &srl, &precomp); + str8_serial_push_cstr(arena, &srl, pch_obj_name); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafPointer ptr = { .itype = CV_BasicType_VOID }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + debug_t = str8_serial_end(arena, &srl); + } + + String8 c_debug_t; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_LeafPointer ptr = { .itype = CV_BasicType_SHORT }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafPointer)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_POINTER); + str8_serial_push_struct(arena, &srl, &ptr); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + CV_LeafProcedure proc = { .ret_itype = 0x1000, .call_kind = CV_CallKind_NearC }; + str8_serial_push_u16(arena, &srl, sizeof(CV_LeafKind) + sizeof(CV_LeafProcedure)); + str8_serial_push_u16(arena, &srl, CV_LeafKind_PROCEDURE); + str8_serial_push_struct(arena, &srl, &proc); + str8_serial_push_align(arena, &srl, CV_LeafAlign); + + c_debug_t = str8_serial_end(arena, &srl); + } + + String8 c_debug_s; + { + String8List srl; + str8_serial_begin(arena, &srl); + + CV_Signature sig = CV_Signature_C13; + str8_serial_push_struct(arena, &srl, &sig); + + CV_C13SubSectionHeader *ss_header = str8_serial_push_size(arena, &srl, sizeof(*ss_header)); + U64 ss_start_off = srl.total_size; + + // S_OBJNAME + CV_SymObjName obj_name = {0}; + obj_name.sig = pch_sig; + String8 obj_name_string = c_obj_name; + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + sizeof(obj_name) + obj_name_string.size + 1); + str8_serial_push_u16(arena, &srl, CV_SymKind_OBJNAME); + str8_serial_push_struct(arena, &srl, &obj_name); + str8_serial_push_cstr(arena, &srl, obj_name_string); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + // S_COMPILE3 + String8 comp3_data = cv_make_comp3(arena, + 0, + CV_Language_C, + CV_Arch_X64, + /* ver_fe_major */ 0, + /* ver_fe_minor */ 0, + /* ver_fe_build */ 0, + /* ver_feqfe */ 0, + /* ver_major */ 14, + /* ver_minor */ 36, + /* ver_build */ 32537, + /* ver_qfe */ 0, + str8_lit(BUILD_TITLE)); + str8_serial_push_u16(arena, &srl, sizeof(CV_SymKind) + comp3_data.size); + str8_serial_push_u16(arena, &srl, CV_SymKind_COMPILE3); + str8_serial_push_string(arena, &srl, comp3_data); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + // S_LPROC32 + U16 *foo_size = str8_serial_push_size(arena, &srl, sizeof(*foo_size)); + U64 foo_off = srl.total_size; + str8_serial_push_u16(arena, &srl, CV_SymKind_LPROC32); + CV_SymProc32 *foo_proc = str8_serial_push_size(arena, &srl, sizeof(*foo_proc)); + foo_proc->itype = 0x1001; + foo_proc->sec = 1; + foo_proc->len = 1; + str8_serial_push_cstr(arena, &srl, str8_lit("foo")); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + *foo_size = srl.total_size - foo_off; + + // S_PROC_ID_END + str8_serial_push_u16(arena, &srl, 2); + str8_serial_push_u16(arena, &srl, CV_SymKind_END); + str8_serial_push_align(arena, &srl, CV_SymbolAlign); + + // $$Symbols header + ss_header->kind = CV_C13SubSectionKind_Symbols; + ss_header->size = srl.total_size - ss_start_off; + str8_serial_push_align(arena, &srl, CV_C13SubSectionAlign); + + c_debug_s = str8_serial_end(arena, &srl); + } + + String8 pch_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_p", ".debug$P", debug_p, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", pch_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", a_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 c_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp(""), .flags = "rx:code" }, + { "debug_t", ".debug$T", c_debug_t, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", c_debug_s, .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + String8 entry_obj = t_make_entry_obj(arena); + + T_Ok(t_write_file(str8_lit("entry.obj"), entry_obj)); + T_Ok(t_write_file(str8_lit("pch.obj"), pch_obj)); + T_Ok(t_write_file(str8_lit("a.obj"), a_obj)); + T_Ok(t_write_file(str8_lit("b.obj"), b_obj)); + T_Ok(t_write_file(str8_lit("c.obj"), c_obj)); + + t_invoke_linkerf("/subsystem:console /entry:entry /debug:full /out:a.exe pch.obj a.obj b.obj c.obj entry.obj"); + T_Ok(g_last_exit_code == 0); + } + + // load msf + String8 pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf = msf_parsed_from_data(arena, pdb); + // find named streams + String8 info_data = msf_data_from_stream(msf, PDB_FixedStream_Info); + PDB_Info *pdb_info = pdb_info_from_data(arena, info_data); + PDB_NamedStreamTable *named_streams = pdb_named_stream_table_from_info(arena, pdb_info); + // find string table + MSF_StreamNumber strtbl_sn = named_streams->sn[PDB_NamedStream_StringTable]; + String8 strtbl_data = msf_data_from_stream(msf, strtbl_sn); + PDB_Strtbl *strtbl = pdb_strtbl_from_data(arena, strtbl_data); + // find TPI + String8 tpi_data = msf_data_from_stream(msf, PDB_FixedStream_Tpi); + PDB_TpiParsed *tpi = pdb_tpi_from_data(arena, tpi_data); + + U64 type_count = tpi->itype_opl - tpi->itype_first; + T_Ok(type_count == 5); + + CV_DebugT debug_t = cv_debug_t_from_data(arena, pdb_leaf_data_from_tpi(tpi), 4); + T_Ok(debug_t.count == type_count); + + { + CV_Leaf ptr_leaf = cv_debug_t_get_leaf(&debug_t, 0); + T_Ok(ptr_leaf.kind == CV_LeafKind_POINTER); + T_Ok(ptr_leaf.data.size == sizeof(CV_LeafPointer)); + + CV_LeafPointer *ptr = (CV_LeafPointer *)ptr_leaf.data.str; + T_Ok(ptr->itype == CV_BasicType_VOID); + T_Ok(ptr->attribs == 0); + } + + { + CV_Leaf proc_leaf = cv_debug_t_get_leaf(&debug_t, 1); + T_Ok(proc_leaf.kind == CV_LeafKind_PROCEDURE); + T_Ok(proc_leaf.data.size == sizeof(CV_LeafProcedure)); + + CV_LeafProcedure *proc = (CV_LeafProcedure *)proc_leaf.data.str; + T_Ok(proc->ret_itype == 0x1000); + T_Ok(proc->call_kind == CV_CallKind_NearPascal); + } + + { + CV_Leaf proc_leaf = cv_debug_t_get_leaf(&debug_t, 2); + T_Ok(proc_leaf.kind == CV_LeafKind_PROCEDURE); + T_Ok(proc_leaf.data.size == sizeof(CV_LeafProcedure)); + + CV_LeafProcedure *proc = (CV_LeafProcedure *)proc_leaf.data.str; + T_Ok(proc->ret_itype == 0x1000); + T_Ok(proc->call_kind == CV_CallKind_NearC); + } + + { + CV_Leaf ptr_leaf = cv_debug_t_get_leaf(&debug_t, 3); + T_Ok(ptr_leaf.kind == CV_LeafKind_POINTER); + T_Ok(ptr_leaf.data.size == sizeof(CV_LeafPointer)); + + CV_LeafPointer *ptr = (CV_LeafPointer *)ptr_leaf.data.str; + T_Ok(ptr->itype == CV_BasicType_SHORT); + T_Ok(ptr->attribs == 0); + } + + { + CV_Leaf proc_leaf = cv_debug_t_get_leaf(&debug_t, 4); + T_Ok(proc_leaf.kind == CV_LeafKind_PROCEDURE); + T_Ok(proc_leaf.data.size == sizeof(CV_LeafProcedure)); + + CV_LeafProcedure *proc = (CV_LeafProcedure *)proc_leaf.data.str; + T_Ok(proc->ret_itype == 0x1003); + T_Ok(proc->call_kind == CV_CallKind_NearC); + } +} + +TEST(cyclic_type) +{ + String8List *debug_t = push_array(arena, String8List, 1); + str8_serial_begin(arena, debug_t); + str8_serial_push_u32(arena, debug_t, CV_Signature_C13); + str8_serial_push_string(arena, debug_t, cv_make_leaf(arena, CV_LeafKind_POINTER, str8_struct((&(CV_LeafPointer){ .itype = 0x1001 })), CV_LeafAlign)); + str8_serial_push_string(arena, debug_t, cv_make_leaf(arena, CV_LeafKind_POINTER, str8_struct((&(CV_LeafPointer){ .itype = 0x1000 })), CV_LeafAlign)); + + CV_DebugS debug_s = {0}; + str8_list_push(arena, &debug_s.data_list[CV_C13SubSectionIdxKind_Symbols], cv_make_symbol(arena, CV_SymKind_GPROC32, cv_make_proc32(arena, (CV_SymProc32){ .itype = 0x1001 }, str8_lit("foo")))); + String8List debug_s_string = cv_data_from_debug_s_c13(arena, &debug_s, 1); + + String8 raw_coff = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", str8_serial_end(arena, debug_t), .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_s", ".debug$S", str8_list_join(arena, &debug_s_string, 0), .flags = "r:data@1", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_entry_obj()); + T_Ok(t_write_file(str8_lit("cycle.obj"), raw_coff)); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full /rad_ignore:-%u cycle.obj entry.obj", LNK_Error_InvalidTypeIndex); + T_Ok(g_last_exit_code == 0); + + String8 output = g_errors; + B32 is_cycle_detected = 0; + while (output.size && !is_cycle_detected) { + String8 line = str8_chop_line(&output); + is_cycle_detected = str8_match_wildcard(line, str8_lit("Error(*): *: LF_POINTER(type_index: *) forward refs member type index * (leaf struct offset: *)"), StringMatchFlag_CaseInsensitive); + t_chop_line(&output); + } + T_Ok(is_cycle_detected); +} + +TEST(get_msf_stream_pages) +{ + MSF_Context *msf = msf_alloc(MSF_DEFAULT_PAGE_SIZE, MSF_DEFAULT_FPM); + + { + U64 stream_size = MB(150) + 1; + + MSF_StreamNumber sn = msf_stream_alloc_ex(msf, stream_size); + + U8 *test = push_array(arena, U8, stream_size); + MemorySet(test, 0xca, stream_size/2); + MemorySet(test + stream_size/2, 0xbe, stream_size/2); + + String8List stream_data = msf_data_from_sn(arena, msf, sn); + T_Ok(stream_data.total_size == stream_size); + T_Ok(stream_data.node_count == 12); + + String8Array a = str8_array_from_list(arena, &stream_data); + T_Ok(a.v[0].size == 0xffd000); + T_Ok(a.v[1].size == 0xffe000); + T_Ok(a.v[2].size == 0xffe000); + T_Ok(a.v[3].size == 0xffe000); + T_Ok(a.v[4].size == 0xffe000); + T_Ok(a.v[5].size == 0xffe000); + T_Ok(a.v[6].size == 0xffe000); + T_Ok(a.v[7].size == 0xffd000); + T_Ok(a.v[8].size == 0x1000); + T_Ok(a.v[9].size == 0xffe000); + T_Ok(a.v[10].size == 0x613000); + T_Ok(a.v[11].size == 1); + + String8Node buf = *stream_data.first; + U64 buf_pos = 0; + str8_buffer_write(&buf, &buf_pos, str8(test, stream_size)); + + String8 cmp = msf_stream_read_block(arena, msf, sn, stream_size); + T_Ok(cmp.size == stream_size); + T_Ok(MemoryCompare(cmp.str, test, stream_size) == 0); + } + + { + MSF_StreamNumber sn = msf_stream_alloc_ex(msf, 1); + String8List stream_data = msf_data_from_sn(arena, msf, sn); + T_Ok(stream_data.node_count == 1); + T_Ok(stream_data.total_size == 1); + T_Ok(stream_data.first->string.size == 1); + } + + msf_release(msf); +} + +internal String8 +data_from_pdb(Arena *arena, PDB_Context *pdb) +{ + TP_Context *tp = tp_alloc(arena, 1, 1, str8_lit("foo")); + TP_Arena *tp_arena = tp_arena_alloc(tp); + pdb_build(tp, tp_arena, pdb, (CV_StringHashTable){0}, 1, 0); + + AssertAlways(msf_build(pdb->msf) == MSF_Error_OK); + String8List raw_msf_list = msf_get_page_data_nodes(arena, pdb->msf); + AssertAlways(t_write_file_list(str8_lit("test.pdb"), raw_msf_list)); + + String8 data = str8_list_join(arena, &raw_msf_list, 0); + + tp_arena_release(&tp_arena); + tp_release(tp); + + return data; +} + +TEST(validate_info_stream) +{ + COFF_TimeStamp time_stamp = 123; + U32 age = 1; + Guid guid = { .data1 = max_U32, .data2 = max_U16 - 1, .data3 = max_U16 - 2, .data4 = { 1, 2, 3, 4, 5, 6, 7, 8 } }; + PDB_Context *pdb = pdb_alloc(MSF_DEFAULT_PAGE_SIZE, COFF_MachineType_X64, time_stamp, age, guid); + + char *stream_names[] = { "one", "two", "three", "four", "five" }; + MSF_StreamNumber stream_numbers[ArrayCount(stream_names)] = {0}; + + for EachElement(i, stream_names) { + stream_numbers[i] = pdb_push_named_stream(&pdb->info->named_stream_ht, pdb->msf, str8_cstring(stream_names[i])); + T_Ok(stream_numbers[i] != MSF_INVALID_STREAM_NUMBER); + } + + String8 raw_msf = data_from_pdb(arena, pdb); + MSF_Parsed *msf_parsed = msf_parsed_from_data(arena, raw_msf); + String8 info_data = msf_data_from_stream(msf_parsed, PDB_FixedStream_Info); + +#if 0 + fprintf(stderr, "\n"); + for EachIndex(i, info_data.size) { + fprintf(stderr, "0x%02x, ", info_data.str[i]); + if (i % 19 == 18 && i > 0) { fprintf(stderr, "\n"); } + } +#endif + U8 expected_info_data[] = { + 0x94, 0x2e, 0x31, 0x01, 0x7b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xfd, + 0xff, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x22, 0x00, 0x00, 0x00, 0x6f, 0x6e, 0x65, 0x00, 0x74, 0x77, + 0x6f, 0x00, 0x74, 0x68, 0x72, 0x65, 0x65, 0x00, 0x66, 0x6f, 0x75, 0x72, 0x00, 0x66, 0x69, 0x76, 0x65, 0x00, 0x2f, + 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, + 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x51, 0x33, 0x01, + }; + T_Ok(str8_match(info_data, str8_array_fixed(expected_info_data), 0)); + + pdb_release(pdb); +} + +TEST(validate_gsi) +{ + String8 raw_symbols[] = { + cv_make_symbol(arena, CV_SymKind_CONSTANT, cv_make_const(arena, (CV_SymConstant){ .itype = 0 }, 263, str8_lit("CV_SymKind_BLOCK16"))), + cv_make_symbol(arena, CV_SymKind_GDATA32, cv_make_data32(arena, (CV_SymData32) { .itype = 0, .off = 0x25440, .sec = 2 }, str8_lit("__newclmap"))), + cv_make_symbol(arena, CV_SymKind_GDATA32, cv_make_data32(arena, (CV_SymData32) { .itype = 0, .off = 123, .sec = 1 }, str8_lit("coffeebabe"))), + cv_make_symbol(arena, CV_SymKind_GDATA32, cv_make_data32(arena, (CV_SymData32) { .itype = 0, .off = 123, .sec = 1 }, str8_lit("deadbeef"))), + }; + + CV_Symbol symbols[ArrayCount(raw_symbols)] = {0}; + for EachElement(i, raw_symbols) { symbols[i] = cv_symbol_from_ptr(raw_symbols[i].str); } + + CV_DebugS debug_s = {0}; + for EachElement(i, symbols) { str8_list_push(arena, &debug_s.data_list[CV_C13SubSectionIdxKind_Symbols], cv_data_from_symbol(arena, &symbols[i], CV_SymbolAlign)); } + String8List raw_debug_s_list = cv_data_from_debug_s_c13(arena, &debug_s, 1); + String8 raw_debug_s = str8_list_join(arena, &raw_debug_s_list, 0); + + T_Ok(t_write_def_obj("debug.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_s", ".debug$S", raw_debug_s, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /debug:full /out:a.exe entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + String8 raw_pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf = msf_parsed_from_data(arena, raw_pdb); + String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(arena, dbi_data); + String8 gsi_data = msf_data_from_stream(msf, dbi->gsi_sn); + PDB_GsiParsed *gsi = pdb_gsi_from_data(arena, gsi_data); + String8 symbol_data = msf_data_from_stream(msf, dbi->sym_sn); + + for EachElement(i, symbols) { + CV_Symbol symbol = symbols[i]; + + String8 string = cv_name_from_symbol(symbols[i].kind, symbols[i].data); + U64 symbol_off = pdb_gsi_symbol_from_string(gsi, symbol_data, string); + T_Ok(symbol_off < symbol_data.size); + + CV_Symbol test_symbol = {0}; + U64 test_symbol_size = cv_read_symbol(str8_skip(symbol_data, symbol_off), 0, 1, &test_symbol); + T_Ok(test_symbol_size > 0); + + String8 test_symbol_name = cv_name_from_symbol(test_symbol.kind, test_symbol.data); + T_Ok(str8_match(test_symbol_name, string, 0)); + } +} + +TEST(validate_gsi_procs_and_typedefs) +{ + String8 raw_symbols[] = { + cv_make_symbol(arena, CV_SymKind_OBJNAME, cv_make_obj_name(arena, str8_lit("debug.obj"), 0x123)), + cv_make_symbol(arena, CV_SymKind_GPROC32_ID, cv_make_proc32(arena, (CV_SymProc32){0}, str8_lit("global_proc"))), + cv_make_symbol(arena, CV_SymKind_PROC_ID_END, cv_make_end(arena)), + + cv_make_symbol(arena, CV_SymKind_UDT, cv_make_udt(arena, (CV_SymUDT){0}, str8_lit("global_typedef"))), + + cv_make_symbol(arena, CV_SymKind_OBJNAME, cv_make_obj_name(arena, str8_lit("debug.obj"), 0x123)), + cv_make_symbol(arena, CV_SymKind_LPROC32_ID, cv_make_proc32(arena, (CV_SymProc32){0}, str8_lit("local_proc"))), + cv_make_symbol(arena, CV_SymKind_UDT, cv_make_udt(arena, (CV_SymUDT){0}, str8_lit("local_typedef"))), + cv_make_symbol(arena, CV_SymKind_PROC_ID_END, cv_make_end(arena)), + }; + + CV_Symbol symbols[ArrayCount(raw_symbols)] = {0}; + for EachElement(i, raw_symbols) { symbols[i] = cv_symbol_from_ptr(raw_symbols[i].str); } + + CV_DebugS debug_s = {0}; + for EachElement(i, symbols) { str8_list_push(arena, &debug_s.data_list[CV_C13SubSectionIdxKind_Symbols], cv_data_from_symbol(arena, &symbols[i], CV_SymbolAlign)); } + String8List raw_debug_s_list = cv_data_from_debug_s_c13(arena, &debug_s, 1); + String8 raw_debug_s = str8_list_join(arena, &raw_debug_s_list, 0); + + T_Ok(t_write_def_obj("debug.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_s", ".debug$S", raw_debug_s, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /debug:full /out:a.exe entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + String8 raw_pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf = msf_parsed_from_data(arena, raw_pdb); + String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(arena, dbi_data); + String8 gsi_data = msf_data_from_stream(msf, dbi->gsi_sn); + PDB_GsiParsed *gsi = pdb_gsi_from_data(arena, gsi_data); + String8 symbol_data = msf_data_from_stream(msf, dbi->sym_sn); + + struct { + char *name; + B32 is_global; + U64 offset; + U64 imod; + } procs[] = { + { "global_proc", 1, 0x18, 2, }, + { "local_proc", 0, 0x64, 2, }, + }; + for EachElement(i, procs) { + U64 symbol_off = pdb_gsi_symbol_from_string(gsi, symbol_data, str8_cstring(procs[i].name)); + T_Ok(symbol_off < symbol_data.size); + + CV_Symbol test_symbol = {0}; + U64 test_symbol_size = cv_read_symbol(str8_skip(symbol_data, symbol_off), 0, 1, &test_symbol); + String8 test_symbol_name = cv_name_from_symbol(test_symbol.kind, test_symbol.data); + T_Ok(test_symbol_size > 0); + T_Ok(str8_match(str8_cstring(procs[i].name), test_symbol_name, 0)); + T_Ok(test_symbol.kind == (procs[i].is_global ? CV_SymKind_PROCREF : CV_SymKind_LPROCREF)); + + CV_SymRef2 *proc_ref = str8_deserial_get_raw_ptr(test_symbol.data, 0, sizeof(*proc_ref)); + T_Ok(proc_ref->suc_name == 0); + T_Ok(proc_ref->sym_off == procs[i].offset); + T_Ok(proc_ref->imod == procs[i].imod); + } + + struct { + char *name; + B32 is_global; + } typedefs[] = { + { "global_typedef", 1 }, + { "local_typedef", 0 }, + }; + for EachElement(i, typedefs) { + U64 symbol_off = pdb_gsi_symbol_from_string(gsi, symbol_data, str8_cstring(typedefs[i].name)); + if (typedefs[i].is_global) { + T_Ok(symbol_off < symbol_data.size); + CV_Symbol test_symbol = {0}; + U64 test_symbol_size = cv_read_symbol(str8_skip(symbol_data, symbol_off), 0, 1, &test_symbol); + String8 test_symbol_name = cv_name_from_symbol(test_symbol.kind, test_symbol.data); + T_Ok(test_symbol_size > 0); + T_Ok(str8_match(str8_cstring(typedefs[i].name), test_symbol_name, 0)); + T_Ok(test_symbol.kind == CV_SymKind_UDT); + } else { + T_Ok(symbol_off >= symbol_data.size); + } + } +} + +TEST(validate_psi) +{ + T_Ok(t_write_def_obj("test.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit("FOOBAR"), .flags = "rx:code" }, + { "data", ".data", str8_lit("QWE"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("global_func", "text", 1), + T_COFF_DefSymbol_Extern("global_var", "data", 1), + T_COFF_DefSymbol_Static("static_var", "data", 1), + {0} + } + })); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full entry.obj test.obj"); + T_Ok(g_last_exit_code == 0); + + String8 raw_pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf = msf_parsed_from_data(arena, raw_pdb); + String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(arena, dbi_data); + String8 psi_data = msf_data_from_stream(msf, dbi->psi_sn); + String8 psi_gsi_data = str8_range(psi_data.str + sizeof(PDB_PsiHeader), psi_data.str+psi_data.size); + PDB_GsiParsed *psi = pdb_gsi_from_data(arena, psi_gsi_data); + String8 symbol_data = msf_data_from_stream(msf, dbi->sym_sn); + + struct { + char *name; + B32 is_global; + CV_Pub32Flags flags; + } pubs[] = { + { "global_func", 1, CV_Pub32Flag_Function }, + { "global_var", 1, 0 }, + { "static_var", 0, 0 }, + }; + for EachElement(i, pubs) { + U64 symbol_off = pdb_gsi_symbol_from_string(psi, symbol_data, str8_cstring(pubs[i].name)); + if (pubs[i].is_global) { + T_Ok(symbol_off < symbol_data.size); + CV_Symbol test_symbol = {0}; + U64 test_symbol_size = cv_read_symbol(str8_skip(symbol_data, symbol_off), 0, 1, &test_symbol); + String8 test_symbol_name = cv_name_from_symbol(test_symbol.kind, test_symbol.data); + T_Ok(test_symbol_size > 0); + T_Ok(str8_match(str8_cstring(pubs[i].name), test_symbol_name, 0)); + T_Ok(test_symbol.kind == CV_SymKind_PUB32); + CV_SymPub32 *pub32 = str8_deserial_get_raw_ptr(test_symbol.data, 0, sizeof(*pub32)); + T_Ok(pub32->sec > 0); + T_Ok(pubs[i].flags == pub32->flags); + } else { + T_Ok(symbol_off >= symbol_data.size); + } + } + + U64 pub32_count = 0; + for EachElement(i, psi->buckets) { + PDB_GsiBucket bucket = psi->buckets[i]; + for EachIndex(k, bucket.count) { + CV_Symbol test_symbol = {0}; + U64 test_symbol_size = cv_read_symbol(str8_skip(symbol_data, bucket.offs[k]), 0, 1, &test_symbol); + T_Ok(test_symbol_size >= sizeof(CV_SymPub32)); + T_Ok(test_symbol.kind == CV_SymKind_PUB32); + pub32_count += 1; + } + } + T_Ok(pub32_count > 0); +} + +TEST(pdbstripped) +{ + String8 debug_obj; + { + String8 raw_symbols[] = { + cv_make_symbol(arena, CV_SymKind_OBJNAME, cv_make_obj_name(arena, str8_lit("debug.obj"), 0x123)), + cv_make_symbol(arena, CV_SymKind_GPROC32_ID, cv_make_proc32(arena, (CV_SymProc32){0}, str8_lit("global_proc"))), + cv_make_symbol(arena, CV_SymKind_PROC_ID_END, cv_make_end(arena)), + + cv_make_symbol(arena, CV_SymKind_UDT, cv_make_udt(arena, (CV_SymUDT){0}, str8_lit("global_typedef"))), + + cv_make_symbol(arena, CV_SymKind_LPROC32_ID, cv_make_proc32(arena, (CV_SymProc32){0}, str8_lit("local_proc"))), + cv_make_symbol(arena, CV_SymKind_UDT, cv_make_udt(arena, (CV_SymUDT){0}, str8_lit("local_typedef"))), + cv_make_symbol(arena, CV_SymKind_PROC_ID_END, cv_make_end(arena)), + }; + + CV_Symbol symbols[ArrayCount(raw_symbols)] = {0}; + for EachElement(i, raw_symbols) { symbols[i] = cv_symbol_from_ptr(raw_symbols[i].str); } + + CV_DebugS debug_s = {0}; + for EachElement(i, symbols) { str8_list_push(arena, &debug_s.data_list[CV_C13SubSectionIdxKind_Symbols], cv_data_from_symbol(arena, &symbols[i], CV_SymbolAlign)); } + String8List raw_debug_s_list = cv_data_from_debug_s_c13(arena, &debug_s, 1); + String8 raw_debug_s = str8_list_join(arena, &raw_debug_s_list, 0); + + debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_s", ".debug$S", raw_debug_s, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + } + + String8 pub_obj; + { + pub_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit("FOOBAR"), .flags = "rx:code" }, + { "data", ".data", str8_lit("QWE"), .flags = "rw:data" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_ExternFunc("global_func", "text", 1), + T_COFF_DefSymbol_Extern("global_var", "data", 1), + T_COFF_DefSymbol_Static("static_var", "data", 1), + {0} + } + }); + } + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_file(str8_lit("pub.obj"), pub_obj)); + T_Ok(t_write_entry_obj()); + t_invoke_linkerf("/subsystem:console /entry:entry /debug:full /out:a.exe /pdbstripped:a.stripped.pdb entry.obj pub.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + String8 raw_pdb = t_read_file(arena, str8_lit("a.stripped.pdb")); + MSF_Parsed *msf = msf_parsed_from_data(arena, raw_pdb); + String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(arena, dbi_data); + + String8 mods_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo); + PDB_CompUnitArray *mods = pdb_comp_unit_array_from_data(arena, mods_data); + T_Ok(mods->count > 0); + + // modules must contain only stubs for static procs + for EachIndex(i, mods->count) { + PDB_CompUnit *mod = mods->units[i]; + U64 sym_data_size = mod->range_off[PDB_DbiCompUnitRange_Symbols + 1] - mod->range_off[PDB_DbiCompUnitRange_Symbols]; + U64 c11_data_size = mod->range_off[PDB_DbiCompUnitRange_C11 + 1] - mod->range_off[PDB_DbiCompUnitRange_C11]; + U64 c13_data_size = mod->range_off[PDB_DbiCompUnitRange_C13 + 1] - mod->range_off[PDB_DbiCompUnitRange_C13]; + T_Ok(c11_data_size == 0); + T_Ok(c13_data_size == 0); + if (str8_match(str8_skip_last_slash(mod->obj_name), str8_lit("debug.obj"), 0)) { + T_Ok(sym_data_size > 0); + } else { + T_Ok(sym_data_size == 0); + } + + String8 mod_data = msf_data_from_stream(msf, mod->sn); + String8 sym_data = str8_substr(mod_data, r1u64(mod->range_off[PDB_DbiCompUnitRange_Symbols], mod->range_off[PDB_DbiCompUnitRange_Symbols + 1])); + for (U64 cursor = 0; cursor < sym_data_size; ) { + CV_Symbol symbol = {0}; + U64 read_size = cv_read_symbol(sym_data, cursor, PDB_SYMBOL_ALIGN, &symbol); + T_Ok(read_size > 0); + cursor += read_size; + T_Ok(symbol.kind == CV_SymKind_LPROC32 || symbol.kind == CV_SymKind_END); + } + } + + // global symbol stream must have public and references to the static stubs + String8 symbol_data = msf_data_from_stream(msf, dbi->sym_sn); + for (U64 cursor = 0; cursor < symbol_data.size; ) { + CV_Symbol symbol = {0}; + U64 read_size = cv_read_symbol(symbol_data, cursor, PDB_SYMBOL_ALIGN, &symbol); + T_Ok(read_size > 0); + cursor += read_size; + T_Ok(symbol.kind == CV_SymKind_PUB32 || + symbol.kind == CV_SymKind_LPROCREF); + } + + // types must be stripped + String8 tpi = msf_data_from_stream(msf, PDB_FixedStream_Tpi); + T_Ok(tpi.size == sizeof(PDB_TpiHeader)); + String8 ipi = msf_data_from_stream(msf, PDB_FixedStream_Ipi); + T_Ok(ipi.size == sizeof(PDB_TpiHeader)); +} + +TEST(ghash_check_corrupt) +{ + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + + String8List h = {0}; str8_serial_begin(arena, &h); + String8 debug_h = str8_serial_end(arena, &h); + + String8 debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + B32 is_warning_found = 0; + String8 debug_obj_path = t_make_file_path(arena, str8_lit("debug.obj")); + String8 expected_line = str8f(arena, "Warning(*): *: .debug$H section is too small to contain the header"); + for (String8 i = g_errors; i.size > 0 && !is_warning_found; ) { + String8 line = t_chop_line(&i); + is_warning_found = str8_match_wildcard(line, expected_line, StringMatchFlag_CaseInsensitive); + } + T_Ok(is_warning_found); +} + +TEST(ghash_check_magic) +{ + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + +#if 0 + U64 *hashes = push_array(arena, U64, t.node_count); + U64 i = 0; + for EachNode(n, String8Node, t.first->next) { + blake3(&hashes[i], sizeof(hashes[i]), n->string.str, n->string.size); + i += 1; + } +#endif + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = 123, .hash_alg = LLVM_GHashAlg_BLAKE3, .version = LLVM_GHash_CurrentVersion })); + str8_serial_push_u64(arena, &h, 0x6ebacae08af4fda5ull); + str8_serial_push_u64(arena, &h, 0xc385876694f9769aull); + str8_serial_push_u64(arena, &h, 0x7ea8a529a89b2288ull); + String8 debug_h = str8_serial_end(arena, &h); + + String8 debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + B32 is_warning_found = 0; + String8 debug_obj_path = t_make_file_path(arena, str8_lit("debug.obj")); + String8 expected_line = str8f(arena, "Warning(*): *: .debug$H contains invalid magic: got 0x7b, expected 0x%x", LLVM_GHash_Magic); + for (String8 i = g_errors; i.size > 0 && !is_warning_found; ) { + String8 line = t_chop_line(&i); + is_warning_found = str8_match_wildcard(line, expected_line, StringMatchFlag_CaseInsensitive); + } + T_Ok(is_warning_found); +} + +TEST(ghash_check_version) +{ + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + +#if 0 + U64 *hashes = push_array(arena, U64, t.node_count); + U64 i = 0; + for EachNode(n, String8Node, t.first->next) { + blake3(&hashes[i], sizeof(hashes[i]), n->string.str, n->string.size); + i += 1; + } +#endif + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = LLVM_GHash_Magic, .hash_alg = LLVM_GHashAlg_BLAKE3, .version = 0xbeef })); + str8_serial_push_u64(arena, &h, 0x6ebacae08af4fda5ull); + str8_serial_push_u64(arena, &h, 0xc385876694f9769aull); + str8_serial_push_u64(arena, &h, 0x7ea8a529a89b2288ull); + String8 debug_h = str8_serial_end(arena, &h); + + String8 debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + B32 is_warning_found = 0; + String8 debug_obj_path = t_make_file_path(arena, str8_lit("debug.obj")); + String8 expected_line = str8f(arena, "Warning(*): *: mismatched .debug$H version: got %u, expected %u", 0xbeef, LLVM_GHash_CurrentVersion); + for (String8 i = g_errors; i.size > 0 && !is_warning_found; ) { + String8 line = t_chop_line(&i); + is_warning_found = str8_match_wildcard(line, expected_line, StringMatchFlag_CaseInsensitive); + } + T_Ok(is_warning_found); +} + +TEST(ghash_check_hash_alg) +{ + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = LLVM_GHash_Magic, .hash_alg = LLVM_GHashAlg_SHA1_8, .version = LLVM_GHash_CurrentVersion })); + str8_serial_push_u64(arena, &h, 0x6ebacae08af4fda5ull); + str8_serial_push_u64(arena, &h, 0xc385876694f9769aull); + str8_serial_push_u64(arena, &h, 0x7ea8a529a89b2288ull); + String8 debug_h = str8_serial_end(arena, &h); + + String8 debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + B32 is_warning_found = 0; + String8 debug_obj_path = t_make_file_path(arena, str8_lit("debug.obj")); + String8 expected_line = str8f(arena, "Warning(*): *: mismatched .debug$H hash algorithm: got SHA1_8, expected BLAKE3"); + for (String8 i = g_errors; i.size > 0 && !is_warning_found; ) { + String8 line = t_chop_line(&i); + is_warning_found = str8_match_wildcard(line, expected_line, StringMatchFlag_CaseInsensitive); + } + T_Ok(is_warning_found); +} + +TEST(ghash_match_debug_t) +{ + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + //str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = LLVM_GHash_Magic, .hash_alg = LLVM_GHashAlg_BLAKE3, .version = LLVM_GHash_CurrentVersion })); + str8_serial_push_u64(arena, &h, 0x6ebacae08af4fda5ull); + str8_serial_push_u64(arena, &h, 0xc385876694f9769aull); + str8_serial_push_u64(arena, &h, 0x7ea8a529a89b2288ull); + String8 debug_h = str8_serial_end(arena, &h); + + String8 debug_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + + T_Ok(t_write_file(str8_lit("debug.obj"), debug_obj)); + T_Ok(t_write_entry_obj()); + + String8 output = {0}; + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj debug.obj"); + T_Ok(g_last_exit_code == 0); + + B32 is_warning_found = 0; + String8 debug_obj_path = t_make_file_path(arena, str8_lit("debug.obj")); + String8 expected_line = str8f(arena, "Warning(*): *: mismatched .debug$H hash count and type count: got 3 hashes for 2 types"); + for (String8 i = g_errors; i.size > 0 && !is_warning_found; ) { + String8 line = t_chop_line(&i); + is_warning_found = str8_match_wildcard(line, expected_line, StringMatchFlag_CaseInsensitive); + } + T_Ok(is_warning_found); +} + +TEST(ghash_basic) +{ + String8 a_obj; + { + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = LLVM_GHash_Magic, .hash_alg = LLVM_GHashAlg_BLAKE3, .version = LLVM_GHash_CurrentVersion })); + str8_serial_push_u64(arena, &h, 1); + str8_serial_push_u64(arena, &h, 2); + str8_serial_push_u64(arena, &h, 3); + String8 debug_h = str8_serial_end(arena, &h); + + a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + } + + String8 b_obj; + { + String8List t = {0}; str8_serial_begin(arena, &t); + str8_serial_push_u32(arena, &t, CV_Signature_C13); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_STRUCTURE, str8_struct(&(CV_LeafStruct){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_UNION, str8_struct(&(CV_LeafUnion){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + str8_serial_push_string(arena, &t, cv_make_leaf(arena, CV_LeafKind_ENUM, str8_struct(&(CV_LeafEnum){ .props = CV_TypeProp_FwdRef }), CV_LeafAlign)); + String8 debug_t = str8_serial_end(arena, &t); + + String8List h = {0}; str8_serial_begin(arena, &h); + str8_serial_push_struct(arena, &h, (&(LLVM_GHash){ .magic = LLVM_GHash_Magic, .hash_alg = LLVM_GHashAlg_BLAKE3, .version = LLVM_GHash_CurrentVersion })); + str8_serial_push_u64(arena, &h, 4); + str8_serial_push_u64(arena, &h, 5); + str8_serial_push_u64(arena, &h, 6); + String8 debug_h = str8_serial_end(arena, &h); + + b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "debug_t", ".debug$T", debug_t, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + { "debug_h", ".debug$H", debug_h, .flags = "r:data", .raw_flags = COFF_SectionFlag_MemDiscardable }, + {0} + } + }); + } + + T_Ok(t_write_file(str8_lit("a.obj"), a_obj)); + T_Ok(t_write_file(str8_lit("b.obj"), b_obj)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:ghash entry.obj a.obj b.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 raw_pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf_parsed = msf_parsed_from_data(arena, raw_pdb); + String8 raw_tpi = msf_data_from_stream(msf_parsed, PDB_FixedStream_Tpi); + PDB_TpiParsed *tpi = pdb_tpi_from_data(arena, raw_tpi); + U64 leaf_count = tpi->itype_opl - tpi->itype_first; + T_Ok(leaf_count == 6); + } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /debug:full entry.obj a.obj b.obj"); + T_Ok(g_last_exit_code == 0); + + { + String8 raw_pdb = t_read_file(arena, str8_lit("a.pdb")); + MSF_Parsed *msf_parsed = msf_parsed_from_data(arena, raw_pdb); + String8 raw_tpi = msf_data_from_stream(msf_parsed, PDB_FixedStream_Tpi); + PDB_TpiParsed *tpi = pdb_tpi_from_data(arena, raw_tpi); + U64 leaf_count = tpi->itype_opl - tpi->itype_first; + T_Ok(leaf_count == 3); + } +} + +TEST(patch_cv_symbol_tree) +{ + String8List raw_symbols = {0}; + str8_list_push(arena, &raw_symbols, cv_make_symbol(arena, CV_SymKind_OBJNAME, cv_make_obj_name(arena, str8_lit("foo.obj"), 123))); + str8_list_push(arena, &raw_symbols, cv_make_symbol(arena, CV_SymKind_GPROC32, cv_make_proc32(arena, (CV_SymProc32){0}, str8_lit("Proc")))); + str8_list_push(arena, &raw_symbols, cv_make_symbol(arena, CV_SymKind_INLINESITE, cv_make_inline_site(arena, (CV_SymInlineSite){0}, str8_zero()))); + str8_list_push(arena, &raw_symbols, cv_make_symbol(arena, CV_SymKind_INLINESITE_END, cv_make_inline_site_end(arena))); + str8_list_push(arena, &raw_symbols, cv_make_symbol(arena, CV_SymKind_END, cv_make_end(arena))); + + U64 tree_size = cv_patch_symbol_tree_offsets(raw_symbols, sizeof(CV_Signature), 4); + T_Ok(tree_size == 84); + + { + String8Node buf = *raw_symbols.first; + U64 buf_pos = 0; + + CV_SymbolHeader obj_header; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(obj_header), &obj_header) == sizeof(obj_header)); + T_Ok(obj_header.kind == CV_SymKind_OBJNAME); + T_Ok(str8_buffer_skip(&buf, &buf_pos, obj_header.size - sizeof(CV_SymKind))); + + CV_SymbolHeader proc_header; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(proc_header), &proc_header) == sizeof(proc_header)); + T_Ok(proc_header.kind == CV_SymKind_GPROC32); + + CV_SymProc32 proc; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(proc), &proc) == sizeof(proc)); + T_Ok(proc.end == 0x54); + T_Ok(str8_buffer_skip(&buf, &buf_pos, proc_header.size - sizeof(CV_SymKind) - sizeof(proc))); + + CV_SymbolHeader inline_site_header; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(inline_site_header), &inline_site_header) == sizeof(inline_site_header)); + T_Ok(inline_site_header.kind == CV_SymKind_INLINESITE); + + CV_SymInlineSite inline_site; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(inline_site), &inline_site)); + T_Ok(inline_site.parent == 0x14); + T_Ok(inline_site.end == 0x50); + T_Ok(str8_buffer_skip(&buf, &buf_pos, inline_site_header.size - sizeof(CV_SymKind) - sizeof(inline_site))); + + CV_SymbolHeader inline_end_header; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(inline_end_header), &inline_end_header) == sizeof(inline_end_header)); + T_Ok(inline_end_header.kind == CV_SymKind_INLINESITE_END); + + CV_SymbolHeader proc_end_header; + T_Ok(str8_buffer_read(&buf, &buf_pos, sizeof(proc_end_header), &proc_end_header) == sizeof(proc_end_header)); + T_Ok(proc_end_header.kind == CV_SymKind_END); + + T_Ok(buf.string.size == 0); + T_Ok(buf.string.str == 0); + T_Ok(buf_pos == 0); + } +} + +TEST(whole_archive) +{ + T_Ok(t_write_entry_obj()); + T_Ok(t_write_def_lib("a.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("a.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".a", str8_lit("a"), .flags = "rw:data" }, + {0} + } + } + }, + {0} + } + })); + T_Ok(t_write_def_lib("b.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("b.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "b", ".b", str8_lit("b"), .flags = "rw:data" }, + {0} + } + } + }, + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:all_libs.exe entry.obj /wholearchive a.lib b.lib"); + T_Ok(g_last_exit_code == 0); + { + String8 exe = t_read_file(arena, str8_lit("all_libs.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *a_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + COFF_SectionHeader *b_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + T_Ok(a_sect != 0); + T_Ok(b_sect != 0); + } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:only_a.exe entry.obj /wholearchive:a.lib a.lib b.lib"); + T_Ok(g_last_exit_code == 0); + { + String8 exe = t_read_file(arena, str8_lit("only_a.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *a_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + COFF_SectionHeader *b_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + T_Ok(a_sect != 0); + T_Ok(b_sect == 0); + } + + t_invoke_linkerf("/subsystem:console /entry:entry /out:only_b.exe /wholearchive:b.lib a.lib b.lib entry.obj"); + T_Ok(g_last_exit_code == 0); + { + String8 exe = t_read_file(arena, str8_lit("only_b.exe")); + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *a_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); + COFF_SectionHeader *b_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); + T_Ok(a_sect == 0); + T_Ok(b_sect != 0); + } +} +#if OS_WINDOWS + +internal B32 +t_radlink_validate_asan_out(String8 obj_name) +{ + Temp scratch = scratch_begin(0,0); + B32 is_ok = 0; + + t_invoke_linkerf("%S /debug:full", obj_name); + if (g_last_exit_code != 0) { goto exit; } + + String8 exe_path = t_make_file_path(scratch.arena, str8f(scratch.arena, "%S.exe", str8_chop_last_dot(obj_name))); + + char *old_path_cstr = getenv("PATH"); + String8List env = {0}; + str8_list_pushf(scratch.arena, &env, "PATH=%S;%S", str8_chop_last_slash(t_cl_path()), str8_cstring(old_path_cstr)); + t_invoke_env(exe_path, str8_zero(), env, max_U64); + + String8 s = g_errors; + + String8 header = t_chop_line(&s); + if ( ! str8_match(header, str8_lit("================================================================="), 0)) { + goto exit; + } + + String8 cause = t_chop_line(&s); + if ( str8_find_needle(cause, 0, str8_lit("AddressSanitizer: heap-use-after-free on address"), 0) >= cause.size) { + goto exit; + } + + is_ok = 1; + exit:; + scratch_end(scratch); + return is_ok; +} + +TEST(infer_asan) +{ + char *program = + "#include \n" + " int main(void) {\n" + "int *foo = malloc(sizeof(*foo));\n" + "free(foo);\n" + "*foo = 1;\n" + "}\n" + ; + + // /MD + { + T_Ok(t_write_file(str8_lit("main.c"), str8_cstring(program))); + t_invoke_cl("/MD /fsanitize=address /Z7 /c /Fo:main_md.obj main.c"); + T_Ok(g_last_exit_code == 0); + T_Ok(t_radlink_validate_asan_out(str8_lit("main_md.obj"))); + } + + // /MDd + { + T_Ok(t_write_file(str8_lit("main.c"), str8_cstring(program))); + t_invoke_cl("/MDd /fsanitize=address /Z7 /c /Fo:main_mdd.obj main.c"); + T_Ok(g_last_exit_code == 0); + T_Ok(t_radlink_validate_asan_out(str8_lit("main_mdd.obj"))); + } + + // /MT + { + T_Ok(t_write_file(str8_lit("main.c"), str8_cstring(program))); + t_invoke_cl("/MT /fsanitize=address /Z7 /c /Fo:main_mt.obj main.c"); + T_Ok(g_last_exit_code == 0); + T_Ok(t_radlink_validate_asan_out(str8_lit("main_mt.obj"))); + } + + // /MTd + { + T_Ok(t_write_file(str8_lit("main.c"), str8_cstring(program))); + t_invoke_cl("/MT /fsanitize=address /Z7 /c /Fo:main_mtd.obj main.c"); + T_Ok(g_last_exit_code == 0); + T_Ok(t_radlink_validate_asan_out(str8_lit("main_mtd.obj"))); + } +} + +#endif + +#if OS_WINDOWS +TEST(determ_test) +{ + // compile the test target (torture) + t_invoke_cl("/fsanitize=address /c /Z7 /Fo:test.obj -I%S /Zc:preprocessor %S/torture/torture_main.c", t_src_path(), t_src_path()); + T_Ok(g_last_exit_code == 0); + + U64 run_count = 25; + T_Ok(run_count > 1); + String8 test_path = t_make_file_path(arena, str8_lit("test.obj")); + + // single-threaded link + t_invoke_linkerf("%S /debug:full /rad_time_stamp:0 /rad_workers:1 /pdbaltpath:main.pdb /rad_log:-all /rad_ignore:74 /out:main.exe", test_path); + T_Ok(g_last_exit_code == 0); + + // read b + String8 main_exe = t_read_file(arena, str8_lit("main.exe")); + String8 main_pdb = t_read_file(arena, str8_lit("main.pdb")); + + // multi-threaded links + ProcessList linkers = {0}; + for EachIndex(i, run_count) { + String8 out_path = t_make_file_path(arena, str8f(arena, "%llu.exe", i)); + String8 cmdl = str8f(arena, "%S %S /debug:full /rad_time_stamp:0 /rad_imagealtpath:main.exe /pdbaltpath:main.pdb /rad_log:-all /rad_ignore:74 /out:%S", t_radlink_path(), test_path, out_path); + Process process_handle = launch_cmd_line(cmdl); + T_Ok(!process_match(process_zero(), process_handle)); + process_list_push(arena, &linkers, process_handle); + } + + // wait for linkers + for EachNode(n, ProcessNode, linkers.first) { process_join(n->v, max_U64, 0); } + + for EachIndex(i, run_count) { + Temp temp = temp_begin(arena); + String8 exe = t_read_file(temp.arena, str8f(temp.arena, "%llu.exe", i)); + String8 pdb = t_read_file(temp.arena, str8f(temp.arena, "%llu.pdb", i)); + T_Ok(exe.size); + T_Ok(pdb.size); + T_Ok(str8_match(main_exe, exe, 0)); + T_Ok(str8_match(main_pdb, pdb, 0)); + temp_end(temp); + } +} + +#endif + +#if 0 + +TEST(fold_two_funcs) +{ + U8 same_text[] = { + 0x48, 0x31, 0xc0, // xor rax, rax + 0xc3 // ret + }; + U8 entry_text[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, // call a + 0xe8, 0x00, 0x00, 0x00, 0x00, // call b + 0xc3, // ret + }; + T_Ok(t_write_def_obj("ident_funcs.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "a", ".text$mn", str8_array_fixed(same_text), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "b", ".text$mb", str8_array_fixed(same_text), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { + "entry", ".text", str8_array_fixed(entry_text), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "a"), + T_COFF_DefReloc(X64_Rel32, 6, "b"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_ExternFunc("a", "a", 0), + T_COFF_DefSymbol_ExternFunc("b", "b", 0), + T_COFF_DefSymbol_ExternFunc("entry", "entry", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /opt:icf ident_funcs.obj"); + T_Ok(g_last_exit_code == 0); + + String8 exe = t_read_file(arena, str8_lit("ident_funcs.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_sect = coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".text")); + + // validate .text header + T_Ok(text_sect->voff == 0x1000); + T_Ok(text_sect->vsize >= 0x14); + T_Ok(text_sect->fsize == 0x200); + + T_Ok(text_sect->foff + text_sect->vsize <= exe.size); + String8 text_data = str8_substr(exe, r1u64(text_sect->foff, text_sect->foff + 0x14)); + + U8 expected_text[] = { + // entry + 0xe8, 0x0b, 0x00, 0x00, 0x00, + 0xe8, 0x06, 0x00, 0x00, 0x00, + 0xc3, + + // pad + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + + // a and b folded + 0x48, 0x31, 0xc0, + 0xc3, + }; + T_Ok(str8_match(text_data, str8_array_fixed(expected_text), 0)); +} + + +TEST(same_but_different) +{ + U8 text[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, // call $ + 0xc3 + }; + U8 return_1[] = { + 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 + 0xc3 // ret + }; + U8 return_2[] = { + 0x48, 0xc7, 0xc0, 0x02, 0x00, 0x00, 0x00, // mov rax, 2 + 0xc3 // ret + }; + U8 call_a_and_b[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xc3 + }; + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "entry", ".text", str8_array_fixed(call_a_and_b), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "a"), + T_COFF_DefReloc(X64_Rel32, 6, "b"), + {0} + } + }, + { + "a", ".text", str8_array_fixed(text), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "c"), + {0} + } + }, + { + "b", ".text", str8_array_fixed(text), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "d"), + {0} + } + }, + { "c", ".text", str8_array_fixed(return_1), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "d", ".text", str8_array_fixed(return_2), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("c", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("d", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Extern("entry", "entry", 0), + T_COFF_DefSymbol_Extern("a", "a", 0), + T_COFF_DefSymbol_Extern("b", "b", 0), + T_COFF_DefSymbol_Extern("c", "c", 0), + T_COFF_DefSymbol_Extern("d", "d", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /opt:icf a.obj"); + T_Ok(g_last_exit_code == 0); + + // validate output + { + U8 expected_text[] = { + 0xe8, 0x0b, 0x00, 0x00, 0x00, // call a + 0xe8, 0x16, 0x00, 0x00, 0x00, // call b + 0xc3, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xe8, 0x1b, 0x00, 0x00, 0x00, // call c + 0xc3, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xe8, 0x1b, 0x00, 0x00, 0x00, // call d + 0xc3, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 + 0xc3, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0x48, 0xc7, 0xc0, 0x02, 0x00, 0x00, 0x00, // mov rax, 2 + 0xc3, + }; + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + T_Ok(text_section); + T_Ok(text_section->foff + sizeof(expected_text) <= exe.size); + + String8 text = str8_substr(exe, r1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text, str8_array_fixed(expected_text), 0)); + } +} + + +TEST(fold_diamond) +{ + U8 call_b_and_c[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xc3 + }; + U8 call_and_return[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xc3 + }; + U8 clear_and_return[] = { + 0x48, 0x31, 0xc0, + 0xc3 + }; + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "a", ".text", str8_array_fixed(call_b_and_c), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "b"), + T_COFF_DefReloc(X64_Rel32, 6, "c"), + {0} + } + }, + { + "b", ".text", str8_array_fixed(call_and_return), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "d"), + {0} + } + }, + { + "c", ".text", str8_array_fixed(call_and_return), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT, + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "d"), + {0} + } + }, + { "d", ".text", str8_array_fixed(clear_and_return), .flags = "rx:code", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("c", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("d", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Extern("a", "a", 0), + T_COFF_DefSymbol_Extern("b", "b", 0), + T_COFF_DefSymbol_Extern("c", "c", 0), + T_COFF_DefSymbol_Extern("d", "d", 0), + {0} + } + })); + t_invoke_linkerf("/subsystem:console /entry:a /out:a.exe /opt:icf a.obj"); + T_Ok(g_last_exit_code == 0); + + // validate output + { + U8 expected_text[] = { + 0xe8, 0x0b, 0x00, 0x00, 0x00, + 0xe8, 0x06, 0x00, 0x00, 0x00, + 0xc3, + + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + + 0xe8, 0x0b, 0x00, 0x00, 0x00, + 0xc3, + + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + + 0x48, 0x31, 0xc0, + 0xc3 + }; + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + T_Ok(text_section); + T_Ok(text_section->foff + sizeof(expected_text) <= exe.size); + + String8 text = str8_substr(exe, r1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text, str8_array_fixed(expected_text), 0)); + } +} + + +TEST(cyclic_icf) +{ + U8 text[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xc3 + }; + T_Ok(t_write_def_obj("a.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "a", ".text", str8_array_fixed(text), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "b"), + {0} + } + }, + { + "b", ".text", str8_array_fixed(text), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "a"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("a", "a", 0), + T_COFF_DefSymbol_Static("b", "b", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /out:a.exe /entry:a /opt:icf a.obj"); + T_Ok(g_last_exit_code == 0); + + // validate output + { + U8 expected_text[] = { + 0xe8, 0x0b, 0x00, 0x00, 0x00, // a + 0xc3, + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, + 0xe8, 0xeb, 0xff, 0xff, 0xff, // b + 0xc3, + }; + + String8 exe = t_read_file(arena, str8_lit("a.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + T_Ok(text_section); + T_Ok(text_section->foff + sizeof(expected_text) <= exe.size); + + String8 text = str8_substr(exe, r1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text, str8_array_fixed(expected_text), 0)); + } +} + + +TEST(fold_with_largest_align) +{ + U8 text[] = { + 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 + 0xc3 + }; + U8 call_a_and_b[] = { + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xe8, 0x00, 0x00, 0x00, 0x00, + 0xc3 + }; + + String8 a_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "entry", ".text", str8_array_fixed(call_a_and_b), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "a"), + T_COFF_DefReloc(X64_Rel32, 6, "b"), + {0} + } + }, + { "a", ".text", str8_array_fixed(text), .flags = "rx:code@4", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "b", ".text", str8_array_fixed(text), .flags = "rx:code@8", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Extern("entry", "entry", 0), + T_COFF_DefSymbol_Static("a", "a", 0), + T_COFF_DefSymbol_Static("b", "b", 0), + {0} + } + }); + + // swap sections for a and b + String8 b_obj = t_coff_from_def_obj(arena, (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "entry", ".text", str8_array_fixed(call_a_and_b), .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 1, "a"), + T_COFF_DefReloc(X64_Rel32, 6, "b"), + {0} + } + }, + { "a", ".text", str8_array_fixed(text), .flags = "rx:code@8", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + { "b", ".text", str8_array_fixed(text), .flags = "rx:code@4", .raw_flags = COFF_SectionFlag_LnkCOMDAT }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Secdef("a", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Secdef("b", COFF_ComdatSelect_NoDuplicates), + T_COFF_DefSymbol_Extern("entry", "entry", 0), + T_COFF_DefSymbol_Static("a", "a", 0), + T_COFF_DefSymbol_Static("b", "b", 0), + {0} + } + }); + + T_Ok(t_write_file(str8_lit("a.obj"), a_obj)); + T_Ok(t_write_file(str8_lit("b.obj"), b_obj)); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj"); + T_Ok(g_last_exit_code == 0); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe b.obj"); + T_Ok(g_last_exit_code == 0); + + U8 expected_text[] = { + 0xe8, 0x0b, 0x00, 0x00, 0x00, + 0xe8, 0x06, 0x00, 0x00, 0x00, + 0xc3, + 0xcc, + 0xcc, + 0xcc, + 0xcc, + 0xcc, + 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, + 0x00, + 0xc3, + }; + + // validate output in a.exe + { + String8 exe = t_read_file(arena, str8_lit("a.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + T_Ok(text_section); + T_Ok(text_section->foff + sizeof(expected_text) <= exe.size); + + String8 text = str8_substr(exe, r1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text, str8_array_fixed(expected_text), 0)); + } + + // validate output in b.exe + { + String8 exe = t_read_file(arena, str8_lit("b.exe")); + T_Ok(exe.size); + + PE_BinInfo pe = pe_bin_info_from_data(arena, exe); + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; + String8 string_table = str8_substr(exe, pe.string_table_range); + COFF_SectionHeader *text_section = coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); + + T_Ok(text_section); + T_Ok(text_section->foff + sizeof(expected_text) <= exe.size); + + String8 text = str8_substr(exe, r1u64(text_section->foff, text_section->foff + text_section->vsize)); + T_Ok(str8_match(text, str8_array_fixed(expected_text), 0)); + } +} + +#endif + +#if 0 +TEST(defer_imp_link) +{ + T_COFF_DefLib bar_lib_any = { + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_DllImportStatic, + .dll_import = { .name = "bar.dll" } + }, + { + .type = T_COFF_DefLibMember_Import, + .import = { "bar.dll", "bar", COFF_ImportBy_Name, COFF_ImportHeader_Code, .hit_or_ordinal = 0 } + }, + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\xff\x25\x00\x00\x00\x00"), .flags = "rx:code" + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("__imp_bar"), + T_COFF_DefSymbol_ExternFunc("qwe", "text", 0), + {0}, + } + } + }, + {0} + } + }; + + T_COFF_DefLib foo_lib_any = { + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_DllImportStatic, + .dll_import = { .name = "foo.dll" } + }, + { + .type = T_COFF_DefLibMember_Import, + .import = { "foo.dll", "bar", COFF_ImportBy_Name, COFF_ImportHeader_Code, .hit_or_ordinal = 0 } + }, + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", + str8_lit_comp("\xff\x25\x00\x00\x00\x00"), + .flags = "rx:code", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Rel32, 2, "bar"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Undef("bar"), + T_COFF_DefSymbol_Undef("qwe"), + T_COFF_DefSymbol_ExternFunc("thunk", "text", 0), + {0}, + } + } + }, + {0} + } + }; + + String8 bar_lib = t_coff_from_def_lib(arena, bar_lib_any); + String8 foo_lib = t_coff_from_def_lib(arena, foo_lib_any); + + T_Ok(t_write_file(str8_lit("bar.lib"), bar_lib)); + T_Ok(t_write_file(str8_lit("foo.lib"), foo_lib)); + T_Ok(t_write_entry_obj()); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe bar.lib foo.lib entry.obj /include:thunk"); + T_Ok(g_last_exit_code == 0); +} +#endif + +#if 0 +TEST(reloc_apply_off_out_of_bounds) +{ + T_Ok(t_write_def_obj("bad.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "text", ".text", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rx:code@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, max_U32, "target"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsStatic("target", 0), + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe bad.obj"); + T_Ok(g_last_exit_code != 0); +} +#endif + +#if 0 +TEST(lib_member_reloc_apply_off_out_of_bounds) +{ + T_Ok(t_write_def_lib("bad.lib", (T_COFF_DefLib){ + .emit_second_member = 1, + .members = (T_COFF_DefLibMember[]){ + { + .type = T_COFF_DefLibMember_Obj, + .obj = { + .path = str8_lit("bad_member.obj"), + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { + "data", ".data", str8_lit_comp("\x00\x00\x00\x00"), .flags = "rw:data@1", + .relocs = (T_COFF_DefReloc[]){ + T_COFF_DefReloc(X64_Addr32, max_U32, "target"), + {0} + } + }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_AbsStatic("target", 0), + T_COFF_DefSymbol_Extern("bad", "data", 0), + {0} + } + } + }, + {0} + } + })); + + T_Ok(t_write_def_obj("entry.obj", (T_COFF_DefObj){ + .machine = T_COFF_DefSetMachine(X64), + .sections = (T_COFF_DefSection[]){ + { "text", ".text", str8_lit_comp("\xC3"), .flags = "rx:code@1" }, + {0} + }, + .symbols = (T_COFF_DefSymbol[]){ + T_COFF_DefSymbol_Extern("entry", "text", 0), + {0} + } + })); + + t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:bad entry.obj bad.lib"); + T_Ok(g_last_exit_code != 0); +} +#endif + diff --git a/src/linker/thread_pool/thread_pool.c b/src/linker/thread_pool/thread_pool.c index da2f7814..0d16213c 100644 --- a/src/linker/thread_pool/thread_pool.c +++ b/src/linker/thread_pool/thread_pool.c @@ -4,6 +4,8 @@ internal void tp_run_tasks(TP_Context *pool, TP_Worker *worker) { + barrier_wait(pool->barrier); + for (;;) { S64 task_left = ins_atomic_u64_dec_eval(&pool->task_left); @@ -15,17 +17,16 @@ tp_run_tasks(TP_Context *pool, TP_Worker *worker) // run task Arena *arena = pool->task_arena ? pool->task_arena->v[worker->id] : 0; U64 task_id = pool->task_count - (task_left+1); - pool->task_func(arena, worker->id, task_id, pool->task_data); + pool->task_func(arena, worker->id, task_id, pool->task_data, pool); // cache task count so we dont touch pool memory after atomic inc U64 task_count = pool->task_count; - // on last task ping main thread - U64 task_done = ins_atomic_u64_inc_eval(&pool->task_done); - if (task_done == task_count) { - os_semaphore_drop(pool->main_semaphore); - } + // update task done count + ins_atomic_u64_inc_eval(&pool->task_done); } + + barrier_wait(pool->barrier); } internal void @@ -34,9 +35,7 @@ tp_worker_main(void *raw_worker) TP_Worker *worker = raw_worker; TP_Context *pool = worker->pool; for (; pool->is_live; ) { - if (os_semaphore_take(pool->task_semaphore, max_U64)) { - tp_run_tasks(pool, worker); - } + tp_run_tasks(pool, worker); } } @@ -46,10 +45,8 @@ tp_worker_main_shared(void *raw_worker) TP_Worker *worker = raw_worker; TP_Context *pool = worker->pool; for (; pool->is_live; ) { - if (os_semaphore_take(pool->exec_semaphore, max_U64)) { - if (os_semaphore_take(pool->task_semaphore, max_U64)) { - tp_run_tasks(pool, worker); - } + if (semaphore_take(pool->exec_semaphore, max_U64)) { + tp_run_tasks(pool, worker); } } } @@ -63,17 +60,11 @@ tp_alloc(Arena *arena, U32 worker_count, U32 max_worker_count, String8 name) B32 is_shared = (name.size > 0); // alloc semaphores - Semaphore main_semaphore = {0}; - Semaphore task_semaphore = {0}; Semaphore exec_semaphore = {0}; if (worker_count > 1) { - main_semaphore = os_semaphore_alloc(0, 1, str8_zero()); if (is_shared) { AssertAlways(worker_count <= max_worker_count); - task_semaphore = os_semaphore_alloc(0, max_worker_count, name); - exec_semaphore = os_semaphore_alloc(0, worker_count, str8_zero()); - } else { - task_semaphore = os_semaphore_alloc(0, worker_count, str8_zero()); + exec_semaphore = semaphore_alloc(0, worker_count, str8_zero()); } } @@ -81,13 +72,12 @@ tp_alloc(Arena *arena, U32 worker_count, U32 max_worker_count, String8 name) void *worker_entry = is_shared ? tp_worker_main_shared : tp_worker_main; // init pool - TP_Context *pool = push_array(arena, TP_Context, 1); - pool->exec_semaphore = exec_semaphore; - pool->task_semaphore = task_semaphore; - pool->main_semaphore = main_semaphore; - pool->is_live = 1; - pool->worker_count = worker_count; - pool->worker_arr = push_array(arena, TP_Worker, worker_count); + TP_Context *pool = push_array(arena, TP_Context, 1); + pool->exec_semaphore = exec_semaphore; + pool->barrier = barrier_alloc(worker_count); + pool->is_live = 1; + pool->worker_count = worker_count; + pool->worker_arr = push_array(arena, TP_Worker, worker_count); // init worker data for (U64 i = 0; i < worker_count; i += 1) { @@ -113,21 +103,17 @@ tp_release(TP_Context *pool) B32 is_shared = pool->exec_semaphore.u64[0] != 0; if (is_shared) { - for (U64 i = 0; i < pool->worker_count; ++i) { + for EachIndex(i, pool->worker_count) { semaphore_drop(pool->exec_semaphore); } } - for (U64 i = 0; i < pool->worker_count; ++i) { - semaphore_drop(pool->task_semaphore); - } for (U64 i = 1; i < pool->worker_count; i += 1) { thread_detach(pool->worker_arr[i].handle); } if (is_shared) { semaphore_release(pool->exec_semaphore); } - semaphore_release(pool->task_semaphore); - semaphore_release(pool->main_semaphore); + barrier_release(pool->barrier); MemoryZeroStruct(pool); } @@ -139,7 +125,7 @@ tp_arena_alloc(TP_Context *pool) Temp scratch = scratch_begin(0,0); Arena **arr = push_array(scratch.arena, Arena *, pool->worker_count); for (U64 i = 0; i < pool->worker_count; ++i) { - arr[i] = arena_alloc(); + arr[i] = arena_alloc("THREAD_POOL"); } Arena **dst = push_array(arr[0], Arena *, pool->worker_count); MemoryCopy(dst, arr, sizeof(Arena*) * pool->worker_count); @@ -197,34 +183,24 @@ tp_temp_end(TP_Temp temp) internal void tp_for_parallel(TP_Context *pool, TP_Arena *task_arena, U64 task_count, TP_TaskFunc *task_func, void *task_data) { - if (task_count > 0) { + if (task_count) { // init run pool->task_arena = task_arena; pool->task_func = task_func; pool->task_data = task_data; pool->task_count = task_count; pool->task_done = 0; - ins_atomic_u64_eval_assign(&pool->task_left, task_count); + pool->task_left = task_count; - U64 drop_count = Min(task_count, pool->worker_count); + // if we are in shared mode -> ping + if (*pool->exec_semaphore.u64) { + U64 drop_count64 = Min(task_count, pool->worker_count); + U32 drop_count = safe_cast_u32(drop_count64); + semaphore_drop_count(pool->exec_semaphore, drop_count); + } - // if we are in shared mode ping local semaphore - if (pool->exec_semaphore.u64[0] != 0) { - for (U64 worker_idx = 0; worker_idx < drop_count; worker_idx +=1) { - os_semaphore_drop(pool->exec_semaphore); - } - } - - // ping shared semaphore - for (U64 worker_idx = 0; worker_idx < drop_count; worker_idx += 1) { - os_semaphore_drop(pool->task_semaphore); - } - // run tasks on main worker - tp_run_tasks(pool, &pool->worker_arr[0]); - - // wait for workers to finish tasks - os_semaphore_take(pool->main_semaphore, max_U64); + tp_run_tasks(pool, pool->worker_arr); } } @@ -243,3 +219,35 @@ tp_divide_work(Arena *arena, U64 item_count, U32 worker_count) return range_arr; } + +internal void +tp_broadcast_(TP_Context *tp, U64 task_id, void *ptr, U64 ptr_size) +{ + if (task_id == 0) { + tp->broadcast = ptr; + tp->broadcast_size = ptr_size; + } + barrier_wait(tp->barrier); + + if (task_id != 0) { + MemoryCopy(ptr, tp->broadcast, tp->broadcast_size); + } + barrier_wait(tp->barrier); +} + +internal U64 +tp_sum_u64(TP_Context *tp, U64 task_id, U64 v) +{ + if (task_id == 0) { + tp->sum = 0; + } + barrier_wait(tp->barrier); + + ins_atomic_u64_add_eval(&tp->sum, v); + barrier_wait(tp->barrier); + + U64 result = tp->sum; + barrier_wait(tp->barrier); + return result; +} + diff --git a/src/linker/thread_pool/thread_pool.h b/src/linker/thread_pool/thread_pool.h index abae8606..8d7f8f22 100644 --- a/src/linker/thread_pool/thread_pool.h +++ b/src/linker/thread_pool/thread_pool.h @@ -3,7 +3,8 @@ #pragma once -#define THREAD_POOL_TASK_FUNC(name) void name(Arena *arena, U64 worker_id, U64 task_id, void *raw_task) +struct TP_Context; +#define THREAD_POOL_TASK_FUNC(name) void name(Arena *arena, U64 worker_id, U64 task_id, void *raw_task, struct TP_Context *tp) typedef THREAD_POOL_TASK_FUNC(TP_TaskFunc); typedef struct TP_Arena @@ -31,6 +32,10 @@ typedef struct TP_Context Semaphore exec_semaphore; Semaphore task_semaphore; Semaphore main_semaphore; + Barrier barrier; + void *broadcast; + U64 broadcast_size; + U64 sum; U32 worker_count; TP_Worker *worker_arr; @@ -52,4 +57,5 @@ internal void tp_temp_end(TP_Temp temp); #define tp_for_parallel_prof(pool, arena, task_count, task_func, task_data, zone_name) ProfBegin(zone_name); tp_for_parallel(pool, arena, task_count, task_func, task_data); ProfEnd(); internal void tp_for_parallel(TP_Context *pool, TP_Arena *arena, U64 task_count, TP_TaskFunc *task_func, void *task_data); internal Rng1U64 * tp_divide_work(Arena *arena, U64 item_count, U32 worker_count); +#define tp_broadcast(p) tp_broadcast_(tp, task_id, p, sizeof(*p)) diff --git a/src/linux/base/linux_base.c b/src/linux/base/linux_base.c new file mode 100644 index 00000000..67c26313 --- /dev/null +++ b/src/linux/base/linux_base.c @@ -0,0 +1,1614 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Helpers + +internal DateTime +lnx_date_time_from_tm(tm in, U32 msec) +{ + DateTime dt = {0}; + dt.sec = in.tm_sec; + dt.min = in.tm_min; + dt.hour = in.tm_hour; + dt.day = in.tm_mday-1; + dt.mon = in.tm_mon; + dt.year = in.tm_year+1900; + dt.msec = msec; + return dt; +} + +internal tm +lnx_tm_from_date_time(DateTime dt) +{ + tm result = {0}; + result.tm_sec = dt.sec; + result.tm_min = dt.min; + result.tm_hour= dt.hour; + result.tm_mday= dt.day+1; + result.tm_mon = dt.mon; + result.tm_year= dt.year-1900; + return result; +} + +internal timespec +lnx_timespec_from_date_time(DateTime dt) +{ + tm tm_val = lnx_tm_from_date_time(dt); + time_t seconds = timegm(&tm_val); + timespec result = {0}; + result.tv_sec = seconds; + return result; +} + +internal DenseTime +lnx_dense_time_from_timespec(timespec in) +{ + DenseTime result = 0; + { + struct tm tm_time = {0}; + gmtime_r(&in.tv_sec, &tm_time); + DateTime date_time = lnx_date_time_from_tm(tm_time, in.tv_nsec/Million(1)); + result = dense_time_from_date_time(date_time); + } + return result; +} + +internal FileProperties +lnx_file_properties_from_stat(struct stat *s) +{ + FileProperties props = {0}; + props.size = s->st_size; + props.created = lnx_dense_time_from_timespec(s->st_ctim); + props.modified = lnx_dense_time_from_timespec(s->st_mtim); + if(s->st_mode & S_IFDIR) + { + props.flags |= FilePropertyFlag_IsFolder; + } + return props; +} + +internal void +lnx_safe_call_sig_handler(int x) +{ + LNX_SafeCallChain *chain = lnx_safe_call_chain; + if(chain != 0 && chain->fail_handler != 0) + { + chain->fail_handler(chain->ptr); + } + abort(); +} + +//////////////////////////////// +//~ rjf: Entities + +internal LNX_Entity * +lnx_entity_alloc(LNX_EntityKind kind) +{ + LNX_Entity *entity = 0; + DeferLoop(pthread_mutex_lock(&lnx_state.entity_mutex), + pthread_mutex_unlock(&lnx_state.entity_mutex)) + { + entity = lnx_state.entity_free; + if(entity) + { + SLLStackPop(lnx_state.entity_free); + } + else + { + entity = push_array_no_zero(lnx_state.entity_arena, LNX_Entity, 1); + } + } + MemoryZeroStruct(entity); + entity->kind = kind; + return entity; +} + +internal void +lnx_entity_release(LNX_Entity *entity) +{ + DeferLoop(pthread_mutex_lock(&lnx_state.entity_mutex), + pthread_mutex_unlock(&lnx_state.entity_mutex)) + { + SLLStackPush(lnx_state.entity_free, entity); + } +} + +//////////////////////////////// +//~ rjf: Thread Entry Point + +internal void * +lnx_thread_entry_point(void *ptr) +{ + LNX_Entity *entity = (LNX_Entity *)ptr; + ThreadEntryPointFunctionType *func = entity->thread.func; + void *thread_ptr = entity->thread.ptr; + supplement_thread_base_entry_point(func, thread_ptr); + return 0; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Debugger Attachment Checking + +internal B32 +debugger_is_attached(void) +{ + B32 result = 0; + // TODO(rjf) + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Time Functions + +internal U64 +now_time_us(void) +{ + struct timespec t; + clock_gettime(CLOCK_MONOTONIC, &t); + U64 result = t.tv_sec*Million(1) + (t.tv_nsec/Thousand(1)); + return result; +} + +internal U32 +now_time_unix(void) +{ + time_t t = time(0); + return (U32)t; +} + +internal DateTime +now_time_universal(void) +{ + time_t t = 0; + time(&t); + struct tm universal_tm = {0}; + gmtime_r(&t, &universal_tm); + DateTime result = lnx_date_time_from_tm(universal_tm, 0); + return result; +} + +internal DateTime +universal_from_local_time(DateTime *dt) +{ + // rjf: local DateTime -> universal time_t + tm local_tm = lnx_tm_from_date_time(*dt); + local_tm.tm_isdst = -1; + time_t universal_t = mktime(&local_tm); + + // rjf: universal time_t -> DateTime + tm universal_tm = {0}; + gmtime_r(&universal_t, &universal_tm); + DateTime result = lnx_date_time_from_tm(universal_tm, 0); + return result; +} + +internal DateTime +local_from_universal_time(DateTime *dt) +{ + // rjf: universal DateTime -> local time_t + tm universal_tm = lnx_tm_from_date_time(*dt); + universal_tm.tm_isdst = -1; + time_t universal_t = timegm(&universal_tm); + tm local_tm = {0}; + localtime_r(&universal_t, &local_tm); + + // rjf: local tm -> DateTime + DateTime result = lnx_date_time_from_tm(local_tm, 0); + return result; +} + +internal void +sleep_ms(U32 ms) +{ + usleep(ms*Thousand(1)); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform GUID Functions + +internal Guid +make_guid(void) +{ + Guid guid = {0}; + getrandom(guid.v, sizeof(guid.v), 0); + guid.data3 &= 0x0fff; + guid.data3 |= (4 << 12); + guid.data4[0] &= 0x3f; + guid.data4[0] |= 0x80; + return guid; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Memory Allocation + +//- rjf: basic + +internal void * +reserve_memory(U64 size) +{ + void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + if(result == MAP_FAILED) + { + result = 0; + } + return result; +} + +internal B32 +commit_memory(void *ptr, U64 size) +{ + mprotect(ptr, size, PROT_READ|PROT_WRITE); + return 1; +} + +internal void +decommit_memory(void *ptr, U64 size) +{ + madvise(ptr, size, MADV_DONTNEED); + mprotect(ptr, size, PROT_NONE); +} + +internal void +release_memory(void *ptr, U64 size) +{ + munmap(ptr, size); +} + +//- rjf: large pages + +internal void * +reserve_memory_large(U64 size) +{ + void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0); + if(result == MAP_FAILED) + { + result = 0; + } + return result; +} + +internal B32 +commit_memory_large(void *ptr, U64 size) +{ + mprotect(ptr, size, PROT_READ|PROT_WRITE); + return 1; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Shared Memory + +internal SharedMemory +shared_memory_alloc(U64 size, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String8 name_copy = push_str8_copy(scratch.arena, name); + int id = shm_open((char *)name_copy.str, O_RDWR|O_CREAT, 0666); + ftruncate(id, size); + SharedMemory result = {(U64)id}; + scratch_end(scratch); + return result; +} + +internal SharedMemory +shared_memory_open(String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String8 name_copy = push_str8_copy(scratch.arena, name); + int id = shm_open((char *)name_copy.str, O_RDWR, 0); + SharedMemory result = {(U64)id}; + scratch_end(scratch); + return result; +} + +internal void +shared_memory_close(SharedMemory handle) +{ + if(MemoryIsZeroStruct(&handle)){return;} + int id = (int)handle.u64[0]; + close(id); +} + +internal void * +shared_memory_view_open(SharedMemory handle, Rng1U64 range) +{ + if(MemoryIsZeroStruct(&handle)){return 0;} + int id = (int)handle.u64[0]; + void *base = mmap(0, dim_1u64(range), PROT_READ|PROT_WRITE, MAP_SHARED, id, range.min); + if(base == MAP_FAILED) + { + base = 0; + } + return base; +} + +internal void +shared_memory_view_close(SharedMemory handle, void *ptr, Rng1U64 range) +{ + if(MemoryIsZeroStruct(&handle)){return;} + munmap(ptr, dim_1u64(range)); +} + +//////////////////////////////// +//~ rjf: @per_os_impl System Info + +internal SystemInfo * +get_system_info(void) +{ + return &lnx_state.system_info; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Current Thread Info + +internal U32 +tid(void) +{ + U32 result = gettid(); + return result; +} + +internal void +set_platform_thread_name(String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String8 name_copy = str8_copy(scratch.arena, name); + pthread_t current_thread = pthread_self(); + pthread_setname_np(current_thread, (char *)name_copy.str); + scratch_end(scratch); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Thread Functions + +internal Thread +thread_launch(ThreadEntryPointFunctionType *f, void *p) +{ + LNX_Entity *entity = lnx_entity_alloc(LNX_EntityKind_Thread); + entity->thread.func = f; + entity->thread.ptr = p; + { + int pthread_result = pthread_create(&entity->thread.handle, 0, lnx_thread_entry_point, entity); + if(pthread_result == -1) + { + lnx_entity_release(entity); + entity = 0; + } + } + Thread handle = {(U64)entity}; + return handle; +} + +internal B32 +thread_join(Thread thread, U64 endt_us) +{ + if(MemoryIsZeroStruct(&thread)) { return 0; } + LNX_Entity *entity = (LNX_Entity *)thread.u64[0]; + int join_result = pthread_join(entity->thread.handle, 0); + B32 result = (join_result == 0); + lnx_entity_release(entity); + return result; +} + +internal void +thread_detach(Thread thread) +{ + if(MemoryIsZeroStruct(&thread)) { return; } + LNX_Entity *entity = (LNX_Entity *)thread.u64[0]; + lnx_entity_release(entity); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Synchronization Primitive Functions + +//- rjf: recursive mutexes + +internal Mutex +mutex_alloc(void) +{ + LNX_Entity *entity = lnx_entity_alloc(LNX_EntityKind_Mutex); + int init_result = pthread_mutex_init(&entity->mutex_handle, 0); + if(init_result == -1) + { + lnx_entity_release(entity); + entity = 0; + } + Mutex handle = {(U64)entity}; + return handle; +} + +internal void +mutex_release(Mutex mutex) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + pthread_mutex_destroy(&entity->mutex_handle); + lnx_entity_release(entity); +} + +internal void +mutex_take(Mutex mutex) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + pthread_mutex_lock(&entity->mutex_handle); +} + +internal void +mutex_drop(Mutex mutex) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + pthread_mutex_unlock(&entity->mutex_handle); +} + +//- rjf: reader/writer mutexes + +internal RWMutex +rw_mutex_alloc(void) +{ + LNX_Entity *entity = lnx_entity_alloc(LNX_EntityKind_RWMutex); + int init_result = pthread_rwlock_init(&entity->rwmutex_handle, 0); + if(init_result == -1) + { + lnx_entity_release(entity); + entity = 0; + } + RWMutex handle = {(U64)entity}; + return handle; +} + +internal void +rw_mutex_release(RWMutex mutex) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + pthread_rwlock_destroy(&entity->rwmutex_handle); + lnx_entity_release(entity); +} + +internal void +rw_mutex_take(RWMutex mutex, B32 write_mode) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + if(write_mode) + { + pthread_rwlock_wrlock(&entity->rwmutex_handle); + } + else + { + pthread_rwlock_rdlock(&entity->rwmutex_handle); + } +} + +internal void +rw_mutex_drop(RWMutex mutex, B32 write_mode) +{ + if(MemoryIsZeroStruct(&mutex)) { return; } + LNX_Entity *entity = (LNX_Entity *)mutex.u64[0]; + pthread_rwlock_unlock(&entity->rwmutex_handle); +} + +//- rjf: condition variables + +internal CondVar +cond_var_alloc(void) +{ + LNX_Entity *entity = lnx_entity_alloc(LNX_EntityKind_ConditionVariable); + pthread_condattr_t attr; + pthread_condattr_init(&attr); + pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); + int init_result = pthread_cond_init(&entity->cv.cond_handle, &attr); + pthread_condattr_destroy(&attr); + if(init_result == -1) + { + lnx_entity_release(entity); + entity = 0; + } + int init2_result = 0; + if(entity) + { + init2_result = pthread_mutex_init(&entity->cv.rwlock_mutex_handle, 0); + } + if(init2_result == -1) + { + pthread_cond_destroy(&entity->cv.cond_handle); + lnx_entity_release(entity); + entity = 0; + } + CondVar handle = {(U64)entity}; + return handle; +} + +internal void +cond_var_release(CondVar cv) +{ + if(MemoryIsZeroStruct(&cv)) { return; } + LNX_Entity *entity = (LNX_Entity *)cv.u64[0]; + pthread_cond_destroy(&entity->cv.cond_handle); + pthread_mutex_destroy(&entity->cv.rwlock_mutex_handle); + lnx_entity_release(entity); +} + +internal B32 +cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us) +{ + if(MemoryIsZeroStruct(&cv)) { return 0; } + if(MemoryIsZeroStruct(&mutex)) { return 0; } + LNX_Entity *cv_entity = (LNX_Entity *)cv.u64[0]; + LNX_Entity *mutex_entity = (LNX_Entity *)mutex.u64[0]; + struct timespec endt_timespec; + endt_timespec.tv_sec = endt_us/Million(1); + endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); + int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &mutex_entity->mutex_handle, &endt_timespec); + B32 result = (wait_result != ETIMEDOUT); + return result; +} + +internal B32 +cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us) +{ + // TODO(rjf): because pthread does not supply cv/rw natively, I had to hack + // this together, but this would probably just be a lot better if we just + // implemented the primitives ourselves with e.g. futexes + // + if(MemoryIsZeroStruct(&cv)) { return 0; } + if(MemoryIsZeroStruct(&mutex_rw)) { return 0; } + LNX_Entity *cv_entity = (LNX_Entity *)cv.u64[0]; + LNX_Entity *rw_mutex_entity = (LNX_Entity *)mutex_rw.u64[0]; + struct timespec endt_timespec; + endt_timespec.tv_sec = endt_us/Million(1); + endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); + B32 result = 0; + pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); + pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); + for(;;) + { + int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); + if(wait_result != ETIMEDOUT) + { + if(write_mode) + { + pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); + } + else + { + pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); + } + result = 1; + break; + } + if(wait_result == ETIMEDOUT) + { + if(write_mode) + { + pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); + } + else + { + pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); + } + break; + } + } + pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); + return result; +} + +internal void +cond_var_signal(CondVar cv) +{ + if(MemoryIsZeroStruct(&cv)) { return; } + LNX_Entity *cv_entity = (LNX_Entity *)cv.u64[0]; + pthread_cond_signal(&cv_entity->cv.cond_handle); +} + +internal void +cond_var_broadcast(CondVar cv) +{ + if(MemoryIsZeroStruct(&cv)) { return; } + LNX_Entity *cv_entity = (LNX_Entity *)cv.u64[0]; + pthread_cond_broadcast(&cv_entity->cv.cond_handle); +} + +//- rjf: cross-process semaphores + +internal Semaphore +semaphore_alloc(U32 initial_count, U32 max_count, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + Semaphore result = {0}; + if(name.size > 0) + { + for EachIndex(attempt_idx, 64) + { + String8 name_copy = str8_copy(scratch.arena, name); + sem_t *s = sem_open((char *)name_copy.str, O_CREAT | O_EXCL, 0666, initial_count); + if(s == SEM_FAILED) + { + s = sem_open((char *)name_copy.str, 0); + } + if(s != SEM_FAILED) + { + result.u64[0] = (U64)s; + break; + } + } + } + else + { + sem_t *s = mmap(0, sizeof(*s), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); + AssertAlways(s != MAP_FAILED); + int err = sem_init(s, 0, initial_count); + if(err == 0) + { + result.u64[0] = (U64)s; + } + } + scratch_end(scratch); + return result; +} + +internal void +semaphore_release(Semaphore semaphore) +{ + int err = munmap((void*)semaphore.u64[0], sizeof(sem_t)); + AssertAlways(err == 0); +} + +internal Semaphore +semaphore_open(String8 name) +{ + Semaphore result = {0}; + { + Temp scratch = scratch_begin(0, 0); + String8 name_copy = str8_copy(scratch.arena, name); + sem_t *s = sem_open((char *)name_copy.str, 0); + if(s != SEM_FAILED) + { + result.u64[0] = (U64)s; + } + scratch_end(scratch); + } + return result; +} + +internal void +semaphore_close(Semaphore semaphore) +{ + if(semaphore.u64[0] != 0) + { + sem_t *s = (sem_t *)semaphore.u64[0]; + sem_close(s); + } +} + +internal B32 +semaphore_take(Semaphore semaphore, U64 endt_us) +{ + int err = -1; + if(semaphore.u64[0] != 0) + { + struct timespec t = { .tv_sec = endt_us / 1000000, .tv_nsec = (endt_us % 1000000) * 1000 }; + err = LNX_RETRY_ON_EINTR(sem_clockwait((sem_t*)semaphore.u64[0], CLOCK_MONOTONIC, &t)); + } + return err == 0; +} + +internal void +semaphore_drop_count(Semaphore semaphore, U64 count) +{ + for EachIndex(i, count) { + int err = -1; + if(semaphore.u64[0] != 0) + { + err = LNX_RETRY_ON_EINTR(sem_post((sem_t*)*semaphore.u64)); + Assert(err == 0); + } + } +} + +//- rjf: barriers + +internal Barrier +barrier_alloc(U64 count) +{ + LNX_Entity *entity = lnx_entity_alloc(LNX_EntityKind_Barrier); + if(entity != 0) + { + pthread_barrier_init(&entity->barrier, 0, count); + } + Barrier result = {IntFromPtr(entity)}; + return result; +} + +internal void +barrier_release(Barrier barrier) +{ + LNX_Entity *entity = (LNX_Entity*)PtrFromInt(barrier.u64[0]); + if(entity != 0) + { + pthread_barrier_destroy(&entity->barrier); + lnx_entity_release(entity); + } +} + +internal void +barrier_wait(Barrier barrier) +{ + LNX_Entity *entity = (LNX_Entity*)PtrFromInt(barrier.u64[0]); + if(entity != 0) + { + pthread_barrier_wait(&entity->barrier); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Safe Calls + +internal void +safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr) +{ + // rjf: push handler to chain + LNX_SafeCallChain chain = {0}; + SLLStackPush(lnx_safe_call_chain, &chain); + chain.fail_handler = fail_handler; + chain.ptr = ptr; + + // rjf: set up sig handler info + struct sigaction new_act = {0}; + new_act.sa_handler = lnx_safe_call_sig_handler; + int signals_to_handle[] = + { + SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, + }; + struct sigaction og_act[ArrayCount(signals_to_handle)] = {0}; + + // rjf: attach handler info for all signals + for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) + { + sigaction(signals_to_handle[i], &new_act, &og_act[i]); + } + + // rjf: call function + func(ptr); + + // rjf: reset handler info for all signals + for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) + { + sigaction(signals_to_handle[i], &og_act[i], 0); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl File System (Implemented Per-OS) + +//- rjf: files + +internal File +file_open(AccessFlags flags, String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String8 path_copy = push_str8_copy(scratch.arena, path); + int lnx_flags = 0; + if(flags & AccessFlag_Read && flags & AccessFlag_Write) + { + lnx_flags = O_RDWR; + } + else if(flags & AccessFlag_Write) + { + lnx_flags = O_WRONLY; + } + else if(flags & AccessFlag_Read) + { + lnx_flags = O_RDONLY; + } + if(flags & AccessFlag_Append) + { + lnx_flags |= O_APPEND; + } + if(flags & (AccessFlag_Write|AccessFlag_Append)) + { + lnx_flags |= O_CREAT; + } + lnx_flags |= O_CLOEXEC; + int fd = open((char *)path_copy.str, lnx_flags, 0755); + File handle = {0}; + if(fd != -1) + { + handle.u64[0] = fd; + } + scratch_end(scratch); + return handle; +} + +internal void +file_close(File file) +{ + if(file_match(file, file_zero())) { return; } + int fd = (int)file.u64[0]; + close(fd); +} + +internal U64 +file_read(File file, Rng1U64 rng, void *out_data) +{ + if(file_match(file, file_zero())) { return 0; } + int fd = (int)file.u64[0]; + U64 total_num_bytes_to_read = dim_1u64(rng); + U64 total_num_bytes_read = 0; + U64 total_num_bytes_left_to_read = total_num_bytes_to_read; + for(;total_num_bytes_left_to_read > 0;) + { + int read_result = pread(fd, (U8 *)out_data + total_num_bytes_read, total_num_bytes_left_to_read, rng.min + total_num_bytes_read); + if(read_result >= 0) + { + total_num_bytes_read += read_result; + total_num_bytes_left_to_read -= read_result; + } + else if(errno != EINTR) + { + break; + } + } + return total_num_bytes_read; +} + +internal U64 +file_write(File file, Rng1U64 rng, void *data) +{ + if(file_match(file, file_zero())) { return 0; } + int fd = (int)file.u64[0]; + U64 total_num_bytes_to_write = dim_1u64(rng); + U64 total_num_bytes_written = 0; + U64 total_num_bytes_left_to_write = total_num_bytes_to_write; + for(;total_num_bytes_left_to_write > 0;) + { + int write_result = pwrite(fd, (U8 *)data + total_num_bytes_written, total_num_bytes_left_to_write, rng.min + total_num_bytes_written); + if(write_result >= 0) + { + total_num_bytes_written += write_result; + total_num_bytes_left_to_write -= write_result; + } + else if(errno != EINTR) + { + break; + } + } + return total_num_bytes_written; +} + +internal B32 +file_set_times(File file, DateTime date_time) +{ + if(file_match(file, file_zero())) { return 0; } + int fd = (int)file.u64[0]; + timespec time = lnx_timespec_from_date_time(date_time); + timespec times[2] = {time, time}; + int futimens_result = futimens(fd, times); + B32 good = (futimens_result != -1); + return good; +} + +internal FileProperties +properties_from_file(File file) +{ + if(file_match(file, file_zero())) { return (FileProperties){0}; } + int fd = (int)file.u64[0]; + struct stat fd_stat = {0}; + int fstat_result = fstat(fd, &fd_stat); + FileProperties props = {0}; + if(fstat_result != -1) + { + props = lnx_file_properties_from_stat(&fd_stat); + } + return props; +} + +internal FileID +id_from_file(File file) +{ + if(file_match(file, file_zero())) { return (FileID){0}; } + int fd = (int)file.u64[0]; + struct stat fd_stat = {0}; + int fstat_result = fstat(fd, &fd_stat); + FileID id = {0}; + if(fstat_result != -1) + { + id.v[0] = fd_stat.st_dev; + id.v[1] = fd_stat.st_ino; + } + return id; +} + +internal B32 +file_reserve_size(File file, U64 size) +{ + int status = fallocate((int)file.u64[0], FALLOC_FL_KEEP_SIZE, 0, size); + return status == 0; +} + +internal B32 +delete_file_at_path(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + B32 result = 0; + String8 path_copy = push_str8_copy(scratch.arena, path); + if(remove((char *)path_copy.str) != -1) + { + result = 1; + } + scratch_end(scratch); + return result; +} + +internal B32 +copy_file_path(String8 dst, String8 src) +{ + B32 result = 0; + File src_h = file_open(AccessFlag_Read, src); + File dst_h = file_open(AccessFlag_Write, dst); + if(!file_match(src_h, file_zero()) && + !file_match(dst_h, file_zero())) + { + int src_fd = (int)src_h.u64[0]; + int dst_fd = (int)dst_h.u64[0]; + FileProperties src_props = properties_from_file(src_h); + U64 size = src_props.size; + U64 total_bytes_copied = 0; + U64 bytes_left_to_copy = size; + for(;bytes_left_to_copy > 0;) + { + off_t sendfile_off = total_bytes_copied; + int send_result = sendfile(dst_fd, src_fd, &sendfile_off, bytes_left_to_copy); + if(send_result <= 0) + { + break; + } + U64 bytes_copied = (U64)send_result; + bytes_left_to_copy -= bytes_copied; + total_bytes_copied += bytes_copied; + } + } + file_close(src_h); + file_close(dst_h); + return result; +} + +internal B32 +move_file_path(String8 dst, String8 src) +{ + B32 good = 0; + Temp scratch = scratch_begin(0, 0); + { + char *src_cstr = (char *)str8_copy(scratch.arena, src).str; + char *dst_cstr = (char *)str8_copy(scratch.arena, dst).str; + int rename_result = rename(src_cstr, dst_cstr); + good = (rename_result != -1); + } + scratch_end(scratch); + return good; +} + +internal String8 +full_path_from_path(Arena *arena, String8 path) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 path_copy = str8_copy(scratch.arena, path); + char buffer[PATH_MAX] = {0}; + realpath((char *)path_copy.str, buffer); + String8 result = str8_copy(arena, str8_cstring(buffer)); + scratch_end(scratch); + return result; +} + +internal B32 +file_path_exists(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String8 path_copy = push_str8_copy(scratch.arena, path); + int access_result = access((char *)path_copy.str, F_OK); + B32 result = 0; + if(access_result == 0) + { + result = 1; + } + scratch_end(scratch); + return result; +} + +internal B32 +folder_path_exists(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + B32 exists = 0; + String8 path_copy = str8_copy(scratch.arena, path); + DIR *handle = opendir((char *)path_copy.str); + if(handle) + { + closedir(handle); + exists = 1; + } + scratch_end(scratch); + return exists; +} + +internal FileProperties +properties_from_file_path(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String8 path_copy = str8_copy(scratch.arena, path); + struct stat f_stat = {0}; + int stat_result = stat((char *)path_copy.str, &f_stat); + FileProperties props = {0}; + if(stat_result != -1) + { + props = lnx_file_properties_from_stat(&f_stat); + } + scratch_end(scratch); + return props; +} + +//- rjf: file maps + +internal FileMap +file_map_open(AccessFlags flags, File file) +{ + FileMap map = {file.u64[0]}; + return map; +} + +internal void +file_map_close(FileMap map) +{ + // NOTE(rjf): nothing to do; `map` handles are the same as `file` handles in + // the linux implementation (on Windows they require separate handles) +} + +internal void * +file_map_view_open(FileMap map, AccessFlags flags, Rng1U64 range) +{ + if(MemoryIsZeroStruct(&map)) { return 0; } + int fd = (int)map.u64[0]; + int prot_flags = 0; + if(flags & AccessFlag_Write) { prot_flags |= PROT_WRITE; } + if(flags & AccessFlag_Read) { prot_flags |= PROT_READ; } + int map_flags = MAP_PRIVATE; + void *base = mmap(0, dim_1u64(range), prot_flags, map_flags, fd, range.min); + if(base == MAP_FAILED) + { + base = 0; + } + return base; +} + +internal void +file_map_view_close(FileMap map, void *ptr, Rng1U64 range) +{ + munmap(ptr, dim_1u64(range)); +} + +//- rjf: directory iteration + +internal FileIter * +file_iter_begin(Arena *arena, String8 path, FileIterFlags flags) +{ + FileIter *base_iter = push_array(arena, FileIter, 1); + base_iter->flags = flags; + LNX_FileIter *iter = (LNX_FileIter *)base_iter->memory; + { + String8 path_copy = push_str8_copy(arena, path); + iter->dir = opendir((char *)path_copy.str); + iter->path = path_copy; + } + return base_iter; +} + +internal B32 +file_iter_next(Arena *arena, FileIter *iter, FileInfo *info_out) +{ + B32 good = 0; + LNX_FileIter *lnx_iter = (LNX_FileIter *)iter->memory; + for(;lnx_iter->dir != 0;) + { + // rjf: get next entry + lnx_iter->dp = readdir(lnx_iter->dir); + good = (lnx_iter->dp != 0); + + // rjf: unpack entry info + struct stat st = {0}; + int stat_result = 0; + if(good) + { + Temp scratch = scratch_begin(&arena, 1); + String8 full_path = push_str8f(scratch.arena, "%S/%s", lnx_iter->path, lnx_iter->dp->d_name); + stat_result = stat((char *)full_path.str, &st); + scratch_end(scratch); + } + + // rjf: determine if filtered + B32 filtered = 0; + if(good) + { + filtered = ((st.st_mode == S_IFDIR && iter->flags & FileIterFlag_SkipFolders) || + (st.st_mode == S_IFREG && iter->flags & FileIterFlag_SkipFiles) || + (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == 0) || + (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == '.' && lnx_iter->dp->d_name[2] == 0)); + } + + // rjf: output & exit, if good & unfiltered + if(good && !filtered) + { + info_out->name = push_str8_copy(arena, str8_cstring(lnx_iter->dp->d_name)); + if(stat_result != -1) + { + info_out->props = lnx_file_properties_from_stat(&st); + } + break; + } + + // rjf: exit if not good + if(!good) + { + break; + } + } + return good; +} + +internal void +file_iter_end(FileIter *iter) +{ + LNX_FileIter *lnx_iter = (LNX_FileIter *)iter->memory; + closedir(lnx_iter->dir); +} + +//- rjf: directory creation + +internal B32 +make_directory(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + B32 result = 0; + String8 path_copy = push_str8_copy(scratch.arena, path); + if(mkdir((char *)path_copy.str, 0755) != -1) + { + result = 1; + } + else + { + // match windows behavior + result = file_path_exists(path); + } + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Aborting + +internal void +abort_self(U64 exit_code) +{ + exit((int)exit_code); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Process Info + +internal ProcessInfo * +get_process_info(void) +{ + return &lnx_state.process_info; +} + +internal String8 +get_current_path(Arena *arena) +{ + char *cwdir = getcwd(0, 0); + String8 string = str8_copy(arena, str8_cstring(cwdir)); + free(cwdir); + return string; +} + +internal U32 +get_process_start_time_unix(void) +{ + Temp scratch = scratch_begin(0,0); + U64 start_time = 0; + pid_t pid = getpid(); + String8 path = str8f(scratch.arena, "/proc/%u", pid); + struct stat st; + int err = stat((char *)path.str, &st); + if(err == 0) + { + start_time = st.st_mtime; + } + scratch_end(scratch); + return (U32)start_time; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Child Processes + +internal Process +process_launch(ProcessLaunchParams *params) +{ + Process handle = {0}; + posix_spawn_file_actions_t file_actions = {0}; + int file_actions_init_code = posix_spawn_file_actions_init(&file_actions); + if(file_actions_init_code == 0) + { + Temp scratch = scratch_begin(0, 0); + if(params->path.size != 0) + { + int chdir_code = posix_spawn_file_actions_addchdir_np(&file_actions, (char *)push_cstr(scratch.arena, params->path).str); + Assert(chdir_code == 0); + } + int stdout_code = posix_spawn_file_actions_adddup2(&file_actions, (int)params->stdout_file.u64[0], STDOUT_FILENO); + int stderr_code = posix_spawn_file_actions_adddup2(&file_actions, (int)params->stderr_file.u64[0], STDERR_FILENO); + int stdin_code = posix_spawn_file_actions_adddup2(&file_actions, (int)params->stdin_file.u64[0], STDIN_FILENO); + posix_spawnattr_t attr = {0}; + int attr_init_code = posix_spawnattr_init(&attr); + if(attr_init_code == 0) + { + // package argv + char **argv = push_array(scratch.arena, char *, params->cmd_line.node_count + 1); + { + argv[0] = (char *)push_cstr(scratch.arena, params->cmd_line.first->string).str; + U64 arg_idx = 1; + for EachNode(n, String8Node, params->cmd_line.first->next) + { + argv[arg_idx] = (char *)push_cstr(scratch.arena, n->string).str; + arg_idx += 1; + } + } + + // package envp + char **envp = 0; + if(params->inherit_env) + { + envp = lnx_state.default_env; + } + else + { + envp = push_array(scratch.arena, char *, params->env.node_count + 2); + U64 env_idx = 0; + for EachNode(n, String8Node, params->cmd_line.first) + { + envp[env_idx] = (char *)n->string.str; + env_idx += 1; + } + } + + // spawn process + pid_t pid = 0; + int spawn_code = posix_spawnp(&pid, argv[0], &file_actions, &attr, argv, envp); + if(spawn_code == 0) + { + handle.u64[0] = (U64)pid; + } + + // clean up attributes + int attr_destroy_code = posix_spawnattr_destroy(&attr); + } + scratch_end(scratch); + + // clean up file actions + int file_actions_destroy_code = posix_spawn_file_actions_destroy(&file_actions); + } + return handle; +} + +internal U64 +pid_from_process(Process process) +{ + U64 result = process.u64[0]; + return result; +} + +internal B32 +process_join(Process process, U64 endt_us, U64 *exit_code_out) +{ + B32 result = 0; + + pid_t pid = (pid_t)process.u64[0]; + for(;;) + { + int status = 0; + pid_t wait_result = LNX_RETRY_ON_EINTR(waitpid(pid, &status, (endt_us == max_U64) ? 0 : WNOHANG)); + + if((wait_result == pid) && (WIFEXITED(status) || WIFSIGNALED(status))) + { + result = 1; + if(exit_code_out != 0) + { + if (WIFEXITED(status)) { *exit_code_out = WEXITSTATUS(status); } + else if(WIFSIGNALED(status)) { *exit_code_out = WTERMSIG(status) + 128; } + } + break; + } + + if(wait_result == -1) { break; } + if(endt_us == 0) { break; } + + U64 now_us = now_time_us(); + if(now_us >= endt_us) { break; } + + U64 left_us = endt_us - now_us; + U64 sleep_us = Min(left_us, Thousand(1)); + usleep((useconds_t)sleep_us); + } + return result; +} + +internal void +process_detach(Process process) +{ + // no need to close pid +} + +internal B32 +process_kill(Process process) +{ + int error_code = kill((pid_t)process.u64[0], SIGKILL); + B32 is_killed = error_code == 0; + return is_killed; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Dynamically-Loaded Libraries + +internal Library +library_open(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + char *path_cstr = (char *)str8_copy(scratch.arena, path).str; + void *so = dlopen(path_cstr, RTLD_LAZY|RTLD_LOCAL); + Library lib = { (U64)so }; + scratch_end(scratch); + return lib; +} + +internal void +library_close(Library lib) +{ + void *so = (void *)lib.u64; + dlclose(so); +} + +internal VoidProc * +library_load_proc(Library lib, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + void *so = (void *)lib.u64; + char *name_cstr = (char *)str8_copy(scratch.arena, name).str; + VoidProc *proc = (VoidProc *)dlsym(so, name_cstr); + scratch_end(scratch); + return proc; +} + +//////////////////////////////// +//~ rjf: Entry Point + +internal void +lnx_signal_handler(int sig, siginfo_t *info, void *arg) +{ + local_persist volatile U32 first = 0; + if (ins_atomic_u32_eval_cond_assign(&first, 1, 0) != 0) + { + for(;;) + { + sleep(UINT32_MAX); + } + } + + local_persist void *ips[4096]; + int ips_count = backtrace(ips, ArrayCount(ips)); + + fprintf(stderr, "A fatal signal was received: %s (%d). The process is terminating.\n", strsignal(sig), sig); + fprintf(stderr, "Create a new issue with this report at %s.\n\n", BUILD_ISSUES_LINK_STRING_LITERAL); + fprintf(stderr, "Callstack:\n"); + for EachIndex(i, ips_count) + { + Dl_info info = {0}; + dladdr(ips[i], &info); + + char cmd[2048]; + snprintf(cmd, sizeof(cmd), "llvm-symbolizer --relative-address -f -e %s %lu", info.dli_fname, (unsigned long)ips[i] - (unsigned long)info.dli_fbase); + FILE *f = popen(cmd, "r"); + if(f) + { + char func_name[256], file_name[256]; + if(fgets(func_name, sizeof(func_name), f) && fgets(file_name, sizeof(file_name), f)) + { + String8 func = str8_cstring(func_name); + if(func.size > 0) func.size -= 1; + String8 module = str8_skip_last_slash(str8_cstring(info.dli_fname)); + String8 file = str8_skip_last_slash(str8_cstring_capped(file_name, file_name + sizeof(file_name))); + if(file.size > 0) file.size -= 1; + + B32 no_func = str8_match(func, str8_lit("??"), StringMatchFlag_RightSideSloppy); + B32 no_file = str8_match(file, str8_lit("??"), StringMatchFlag_RightSideSloppy); + if(no_func) { func = str8_zero(); } + if(no_file) { file = str8_zero(); } + + fprintf(stderr, "%ld. [0x%016lx] %.*s%s%.*s %.*s\n", i+1, (unsigned long)ips[i], (int)module.size, module.str, (!no_func || !no_file) ? ", " : "", (int)func.size, func.str, (int)file.size, file.str); + } + pclose(f); + } + else + { + fprintf(stderr, "%ld. [0x%016lx] %s\n", i+1, (unsigned long)ips[i], info.dli_fname); + } + } + fprintf(stderr, "\nVersion: %s%s\n\n", BUILD_VERSION_STRING_LITERAL, BUILD_GIT_HASH_STRING_LITERAL_APPEND); + + _exit(1); +} + +int +main(int argc, char **argv) +{ + // install signal handler for the crash call stacks + { + struct sigaction handler = { .sa_sigaction = lnx_signal_handler, .sa_flags = SA_SIGINFO, }; + sigfillset(&handler.sa_mask); + sigaction(SIGILL, &handler, NULL); + sigaction(SIGTRAP, &handler, NULL); + sigaction(SIGABRT, &handler, NULL); + sigaction(SIGFPE, &handler, NULL); + sigaction(SIGBUS, &handler, NULL); + sigaction(SIGSEGV, &handler, NULL); + sigaction(SIGQUIT, &handler, NULL); + } + + //- rjf: set up OS layer + { + //- rjf: get statically-allocated system/process info + { + SystemInfo *info = &lnx_state.system_info; + info->logical_processor_count = (U32)get_nprocs(); + info->page_size = (U64)getpagesize(); + info->large_page_size = MB(2); + info->allocation_granularity = info->page_size; + } + { + ProcessInfo *info = &lnx_state.process_info; + info->pid = (U32)getpid(); + } + + //- rjf: set up thread context + TCTX *tctx = tctx_alloc(); + tctx_select(tctx); + + //- rjf: set up dynamically allocated state + lnx_state.arena = arena_alloc(); + lnx_state.entity_arena = arena_alloc(); + pthread_mutex_init(&lnx_state.entity_mutex, 0); + + // cache default environment + { + U64 env_count = 0; + for(; __environ[env_count] != 0; env_count += 1) {} + char **default_env = push_array(lnx_state.arena, char *, env_count+1); + for EachIndex(idx, env_count) + { + default_env[idx] = (char *)str8_copy(lnx_state.arena, str8_cstring(__environ[idx])).str; + } + default_env[env_count] = 0; + lnx_state.default_env_count = env_count; + lnx_state.default_env = default_env; + } + + //- rjf: grab dynamically allocated system info + { + Temp scratch = scratch_begin(0, 0); + SystemInfo *info = &lnx_state.system_info; + + // rjf: get machine name + B32 got_final_result = 0; + U8 *buffer = 0; + int size = 0; + for(S64 cap = 4096, r = 0; r < 4; cap *= 2, r += 1) + { + scratch_end(scratch); + buffer = push_array(scratch.arena, U8, cap); + int gethostname_result = gethostname((char*)buffer, cap); + size = cstring8_length(buffer); + if(gethostname_result == 0 && size < cap) + { + got_final_result = 1; + break; + } + } + + // rjf: save name to info + if(got_final_result && size > 0) + { + info->machine_name.size = size; + info->machine_name.str = push_array_no_zero(lnx_state.arena, U8, info->machine_name.size + 1); + MemoryCopy(info->machine_name.str, buffer, info->machine_name.size); + info->machine_name.str[info->machine_name.size] = 0; + } + + scratch_end(scratch); + } + + //- rjf: grab dynamically allocated process info + { + Temp scratch = scratch_begin(0, 0); + ProcessInfo *info = &lnx_state.process_info; + + // rjf: grab binary path + { + // rjf: get self string + B32 got_final_result = 0; + U8 *buffer = 0; + int size = 0; + for(S64 cap = PATH_MAX, r = 0; r < 4; cap *= 2, r += 1) + { + scratch_end(scratch); + buffer = push_array_no_zero(scratch.arena, U8, cap); + size = readlink("/proc/self/exe", (char*)buffer, cap); + if(size < cap) + { + got_final_result = 1; + break; + } + } + + // rjf: save + if(got_final_result && size > 0) + { + String8 full_name = str8(buffer, size); + info->binary_file_path = push_str8_copy(lnx_state.arena, full_name); + info->binary_path = str8_chop_last_slash(info->binary_file_path); + } + } + + // rjf: grab initial directory + { + info->initial_path = get_current_path(lnx_state.arena); + } + + // rjf: grab program/user data paths + { + char *home = getenv("HOME"); + char *xdg_config_home = getenv("XDG_CONFIG_HOME"); + char *xdg_cache_home = getenv("XDG_CACHE_HOME"); + char *xdg_state_home = getenv("XDG_STATE_HOME"); + if(xdg_config_home != 0) + { + info->user_program_config_data_path = str8_cstring(xdg_config_home); + } + else + { + info->user_program_config_data_path = str8f(lnx_state.arena, "%s/.config", home); + } + if(xdg_cache_home != 0) + { + info->user_program_cache_data_path = str8_cstring(xdg_cache_home); + } + else + { + info->user_program_cache_data_path = str8f(lnx_state.arena, "%s/.cache", home); + } + if(xdg_state_home != 0) + { + info->user_program_logs_data_path = str8_cstring(xdg_state_home); + } + else + { + info->user_program_logs_data_path = str8f(lnx_state.arena, "%s/.local/state", home); + } + } + + scratch_end(scratch); + } + } + + //- rjf: call into "real" entry point + main_thread_base_entry_point(argc, argv); +} diff --git a/src/linux/base/linux_base.h b/src/linux/base/linux_base.h new file mode 100644 index 00000000..9b3be274 --- /dev/null +++ b/src/linux/base/linux_base.h @@ -0,0 +1,157 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef LINUX_BASE_H +#define LINUX_BASE_H + +//////////////////////////////// +//~ rjf: Includes + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +pid_t gettid(void); +int pthread_setname_np(pthread_t thread, const char *name); +int pthread_getname_np(pthread_t thread, char *name, size_t size); + +typedef struct tm tm; +typedef struct timespec timespec; + +//////////////////////////////// +//~ rjf: Linux Call Interruption Retry Helper + +#define LNX_RETRY_ON_EINTR(expr) \ +(__extension__({ \ +__typeof__(expr) __ret; \ +do { \ +__ret = (expr); \ +} while ((__ret == -1) && errno == EINTR); \ +__ret; \ +})) + + +//////////////////////////////// +//~ rjf: File Iterator + +typedef struct LNX_FileIter LNX_FileIter; +struct LNX_FileIter +{ + DIR *dir; + struct dirent *dp; + String8 path; +}; +StaticAssert(sizeof(Member(FileIter, memory)) >= sizeof(LNX_FileIter), lnx_file_iter_size_check); + +//////////////////////////////// +//~ rjf: Safe Call Handler Chain + +typedef struct LNX_SafeCallChain LNX_SafeCallChain; +struct LNX_SafeCallChain +{ + LNX_SafeCallChain *next; + ThreadEntryPointFunctionType *fail_handler; + void *ptr; +}; + +//////////////////////////////// +//~ rjf: Entities + +typedef enum LNX_EntityKind +{ + LNX_EntityKind_Thread, + LNX_EntityKind_Mutex, + LNX_EntityKind_RWMutex, + LNX_EntityKind_ConditionVariable, + LNX_EntityKind_Barrier, +} +LNX_EntityKind; + +typedef struct LNX_Entity LNX_Entity; +struct LNX_Entity +{ + LNX_Entity *next; + LNX_EntityKind kind; + union + { + struct + { + pthread_t handle; + ThreadEntryPointFunctionType *func; + void *ptr; + } thread; + pthread_mutex_t mutex_handle; + pthread_rwlock_t rwmutex_handle; + struct + { + pthread_cond_t cond_handle; + pthread_mutex_t rwlock_mutex_handle; + } cv; + pthread_barrier_t barrier; + }; +}; + +//////////////////////////////// +//~ rjf: State + +typedef struct LNX_State LNX_State; +struct LNX_State +{ + Arena *arena; + SystemInfo system_info; + ProcessInfo process_info; + pthread_mutex_t entity_mutex; + Arena *entity_arena; + LNX_Entity *entity_free; + U64 default_env_count; + char **default_env; +}; + +//////////////////////////////// +//~ rjf: Globals + +global LNX_State lnx_state = {0}; +thread_static LNX_SafeCallChain *lnx_safe_call_chain = 0; + +//////////////////////////////// +//~ rjf: Helpers + +internal DateTime lnx_date_time_from_tm(tm in, U32 msec); +internal tm lnx_tm_from_date_time(DateTime dt); +internal timespec lnx_timespec_from_date_time(DateTime dt); +internal DenseTime lnx_dense_time_from_timespec(timespec in); +internal FileProperties lnx_file_properties_from_stat(struct stat *s); +internal void lnx_safe_call_sig_handler(int x); + +//////////////////////////////// +//~ rjf: Entities + +internal LNX_Entity *lnx_entity_alloc(LNX_EntityKind kind); +internal void lnx_entity_release(LNX_Entity *entity); + +//////////////////////////////// +//~ rjf: Thread Entry Point + +internal void *lnx_thread_entry_point(void *ptr); + +#endif // LINUX_BASE_H diff --git a/src/linux/demon/linux_demon.c b/src/linux/demon/linux_demon.c new file mode 100644 index 00000000..152e3951 --- /dev/null +++ b/src/linux/demon/linux_demon.c @@ -0,0 +1,3464 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ Includes + +#include +#include +#include + +//////////////////////////////// + +internal U64 +lnx_dmn_size_from_fd(int memory_fd, U64 cap) +{ + U8 temp[4096]; + size_t cursor = 0; + while(cursor < cap) + { + ssize_t actual_read = LNX_RETRY_ON_EINTR(pread(memory_fd, temp, sizeof(temp), cursor)); + if(actual_read <= 0) { break; } + cursor += (U64)actual_read; + } + return (U64)cursor; +} + +internal U64 +lnx_dmn_read(int memory_fd, Rng1U64 range, void *dst) +{ + size_t cursor = 0, size = dim_1u64(range); + while(cursor < size) + { + size_t to_read = size - cursor; + ssize_t actual_read = LNX_RETRY_ON_EINTR(pread(memory_fd, (U8 *)dst + cursor, to_read, range.min + cursor)); + if(actual_read < 0) { break; } + if(actual_read == 0) { break; } + cursor += actual_read; + } + return cursor; +} + +internal B32 +lnx_dmn_write(int memory_fd, Rng1U64 range, void *src) +{ + size_t cursor = 0, size = dim_1u64(range); + while(cursor < size) + { + size_t to_write = size - cursor; + ssize_t actual_write = LNX_RETRY_ON_EINTR(pwrite(memory_fd, (U8 *)src + cursor, to_write, range.min + cursor)); + if(actual_write <= 0) { break; } + cursor += actual_write; + } + B32 is_written = (cursor == size); + return is_written; +} + +internal String8 +lnx_dmn_read_string_capped(Arena *arena, int memory_fd, U64 base_vaddr, U64 cap_size) +{ + String8 result = {0}; + U64 string_size = 0; + for(U64 vaddr = base_vaddr; string_size < cap_size; vaddr += 1, string_size += 1) + { + char byte = 0; + if(LNX_RETRY_ON_EINTR(pread(memory_fd, &byte, sizeof(byte), vaddr) <= 0)) + { + break; + } + if(byte == '\0' || byte == '\n') + { + break; + } + } + if(string_size != 0) + { + char *buf = push_array_no_zero(arena, char, string_size+1); + LNX_RETRY_ON_EINTR(pread(memory_fd, buf, string_size, base_vaddr)); + buf[string_size] = '\0'; + result = str8((U8 *)buf, string_size); + } + return result; +} + +internal String8 +lnx_dmn_read_string(Arena *arena, int memory_fd, U64 vaddr) +{ + return lnx_dmn_read_string_capped(arena, memory_fd, vaddr, 4096); +} + +internal +MACHINE_OP_MEM_READ(lnx_dmn_machine_op_mem_read) +{ + U64 read_size = lnx_dmn_read(*(int *)ud, r1u64(addr, addr + buffer_size), buffer); + return read_size == buffer_size ? MachineOpResult_Ok : MachineOpResult_Fail; +} + +internal int +lnx_dmn_ptrace_seize(pid_t pid) +{ + // TODO: PTRACE_O_TRACEVFORK | PTRACE_O_TRACEVFORKDONE | PTRACE_O_TRACEFORK + return LNX_RETRY_ON_EINTR(ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_TRACEEXEC | PTRACE_O_EXITKILL | PTRACE_O_TRACECLONE)); +} + +internal String8 +lnx_dmn_exe_path_from_pid(Arena *arena, pid_t pid) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 exe_link_path = str8f(scratch.arena, "/proc/%d/exe", pid); + String8List parts = {0}; + int readlink_result = 0; + for(S64 r = 0, cap = PATH_MAX; r < 4; cap *= 2, r += 1) + { + U8 *buffer = push_array(arena, U8, cap); + readlink_result = readlink((char *)exe_link_path.str, (char *)buffer, cap); + + if(readlink_result < 0) + { + break; + } + + str8_list_push(scratch.arena, &parts, str8(buffer, readlink_result)); + + if(readlink_result < cap) + { + break; + } + } + + String8 result = str8_list_join(arena, &parts, 0); + scratch_end(scratch); + return result; +} + +internal String8 +lnx_dmn_dl_path_from_pid(Arena *arena, pid_t pid, U64 auxv_base) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8 dl_path = {0}; + + int maps_fd = LNX_RETRY_ON_EINTR(open((char *)str8f(scratch.arena, "/proc/%d/maps", pid).str, O_RDONLY)); + if(maps_fd != -1) + { + // read entire /proc/pid/maps + U64 maps_size = lnx_dmn_size_from_fd(maps_fd, MB(1)); + U8 *maps_ptr = push_array(scratch.arena, U8, maps_size); + U64 read_size = lnx_dmn_read(maps_fd, r1u64(0, maps_size), maps_ptr); + + // split map file on lines + String8List lines = str8_split_by_string_chars(scratch.arena, str8(maps_ptr, maps_size), str8_lit("\n"), 0); + + // scan each line until a virtual mapping whose low part matches the DL base address is found + for EachNode(n, String8Node, lines.first) + { + String8 line = n->string; + + // split the string while respecting escape sequences + String8List parts = {0}; + for EachIndex(cursor, line.size) + { + if(parts.node_count > 5) { break; } + if(line.str[cursor] == ' ') { continue; } + + // scan forward to the closing delimiter + U64 token_start = cursor; + for(; cursor < line.size; cursor += 1) + { + if(line.str[cursor] == '\\') + { + cursor += 1; + continue; + } + if(line.str[cursor] == ' ') { break; } + } + + // push sub-string to the list + str8_list_push(scratch.arena, &parts, str8_substr(line, r1u64(token_start, cursor))); + } + + // was line parsed correctly? + if(parts.node_count < 5) { Assert(0 && "failed to parse map line"); continue; } + + // parse map virtual range + String8List vaddr_list = str8_split_by_string_chars(scratch.arena, parts.first->string, str8_lit("-"), 0); + if(vaddr_list.node_count != 2) { Assert(0 && "failed to parse virtual range portion of map line"); continue; } + + // does the low part match DL base address? + U64 lo_vaddr = u64_from_str8(vaddr_list.first->string, 16); + if(lo_vaddr == auxv_base) + { + dl_path = parts.node_count == 5 ? str8_zero() : parts.last->string; + dl_path = push_str8_copy(arena, dl_path); + break; + } + } + + LNX_RETRY_ON_EINTR(close(maps_fd)); + } + else { Assert(0 && "failed to open DL fd"); } + + scratch_end(scratch); + Assert(dl_path.size); + return dl_path; +} + +internal ELF_Hdr64 +lnx_dmn_ehdr_from_pid(pid_t pid) +{ + Temp scratch = scratch_begin(0, 0); + + ELF_Hdr64 exe = {0}; + B32 is_read = 0; + + char *exe_path = (char *)str8f(scratch.arena, "/proc/%d/exe", pid).str; + int exe_fd = LNX_RETRY_ON_EINTR(open(exe_path, O_RDONLY)); + + if(exe_fd >= 0) + { + is_read = elf_read_ehdr(lnx_dmn_machine_op_mem_read, &exe_fd, 0, &exe); + LNX_RETRY_ON_EINTR(close(exe_fd)); + } + + Assert(is_read); + scratch_end(scratch); + return exe; +} + +internal LNX_DMN_Auxv +lnx_dmn_auxv_from_pid(pid_t pid, ELF_Class elf_class) +{ + Temp scratch = scratch_begin(0, 0); + LNX_DMN_Auxv result = {0}; + + // rjf: open aux data + String8 auxv_path = str8f(scratch.arena, "/proc/%d/auxv", pid); + int auxv_fd = LNX_RETRY_ON_EINTR(open((char *)auxv_path.str, O_RDONLY)); + + // rjf: scan aux data + if(auxv_fd >= 0) + { + for(;;) + { + // rjf: read next aux + ELF_Auxv64 auxv = {0}; + switch(elf_class) + { + case ELF_Class_None:{}break; + case ELF_Class_32: + { + ELF_Auxv32 auxv32 = {0}; + if(read(auxv_fd, &auxv32, sizeof(auxv32)) != sizeof(auxv32)) { goto brkloop; } + auxv = elf_auxv64_from_auxv32(auxv32); + }break; + case ELF_Class_64: + { + if(read(auxv_fd, &auxv, sizeof(auxv)) != sizeof(auxv)) { goto brkloop; } + }break; + default:{NotImplemented;}break; + } + + // rjf: fill result + switch(auxv.a_type) + { + default:{}break; + case ELF_AuxType_Null: goto brkloop; break; + case ELF_AuxType_Base: result.base = auxv.a_val; break; + case ELF_AuxType_Phnum: result.phnum = auxv.a_val; break; + case ELF_AuxType_Phent: result.phent = auxv.a_val; break; + case ELF_AuxType_Phdr: result.phdr = auxv.a_val; break; + case ELF_AuxType_ExecFn: result.execfn = auxv.a_val; break; + case ELF_AuxType_Pagesz: result.pagesz = auxv.a_val; break; + } + } + brkloop:; + LNX_RETRY_ON_EINTR(close(auxv_fd)); + } + + scratch_end(scratch); + return result; +} + +internal LNX_DMN_Thread * +lnx_dmn_thread_from_pid(pid_t tid) +{ + return hash_table_search_u64_raw(lnx_dmn_state->tid_ht, tid); +} + +internal LNX_DMN_Process * +lnx_dmn_process_from_pid(pid_t pid) +{ + return hash_table_search_u64_raw(lnx_dmn_state->pid_ht, pid); +} + +//////////////////////////////// +//~ rjf: Module Info Parsing + +internal DMN_ModuleInfo * +lnx_dmn_module_info_from_process_module(Arena *arena, pid_t pid, int memory_fd, U64 base_vaddr, U64 name_vaddr, B32 is_main) +{ + DMN_ModuleInfo *info = push_array(arena, DMN_ModuleInfo, 1); + Temp scratch = scratch_begin(&arena, 1); + { + //- rjf: read ELF signature + U8 elf_sig_maybe[ELF_Identifier_Max] = {0}; + lnx_dmn_read(memory_fd, r1u64(base_vaddr, base_vaddr + sizeof(elf_sig_maybe)), elf_sig_maybe); + + //- rjf: unpack elf header info + Arch arch = Arch_Null; + U64 entry_point_voff = 0; + ELF_Type elf_type = ELF_Type_None; + U64 phdrs_off = 0; + U64 phdrs_entry_size = 0; + U64 phdrs_count = 0; + U64 shdrs_off = 0; + U64 shdrs_entry_size = 0; + U64 shdrs_count = 0; + U64 shdrs_strings_idx = 0; + { + // rjf: read ehdr + ELF_Hdr64 ehdr = {0}; + switch(elf_sig_maybe[ELF_Identifier_Class]) + { + default: + case ELF_Class_None: + {}break; + case ELF_Class_32: + { + ELF_Hdr32 ehdr32 = {0}; + lnx_dmn_read_struct(memory_fd, base_vaddr, &ehdr32); + MemoryCopy(ehdr.e_ident, ehdr32.e_ident, sizeof(ehdr.e_ident)); + ehdr.e_type = ehdr32.e_type; + ehdr.e_machine = ehdr32.e_machine; + ehdr.e_version = ehdr32.e_version; + ehdr.e_entry = (U64)ehdr32.e_entry; + ehdr.e_phoff = (U64)ehdr32.e_phoff; + ehdr.e_shoff = (U64)ehdr32.e_shoff; + ehdr.e_flags = ehdr32.e_flags; + ehdr.e_ehsize = ehdr32.e_ehsize; + ehdr.e_phentsize = ehdr32.e_phentsize; + ehdr.e_phnum = ehdr32.e_phnum; + ehdr.e_shentsize = ehdr32.e_shentsize; + ehdr.e_shnum = ehdr32.e_shnum; + ehdr.e_shstrndx = ehdr32.e_shstrndx; + }break; + case ELF_Class_64: + { + lnx_dmn_read_struct(memory_fd, base_vaddr, &ehdr); + }break; + } + + // rjf: unpack ehdr + arch = arch_from_elf_machine(ehdr.e_machine); + entry_point_voff = ehdr.e_entry - base_vaddr; + elf_type = ehdr.e_type; + phdrs_off = ehdr.e_phoff; + phdrs_entry_size = ehdr.e_phentsize; + phdrs_count = ehdr.e_phnum; + shdrs_off = ehdr.e_shoff; + shdrs_entry_size = ehdr.e_shentsize; + shdrs_count = ehdr.e_shnum; + shdrs_strings_idx = ehdr.e_shstrndx; + } + + //- rjf: decide on rebase for this module + U64 module_rebase = 0; + if(elf_type == ELF_Type_Dyn) + { + module_rebase = base_vaddr; + } + + //- rjf: determine shdrs/phdrs addresses + U64 phdrs_vaddr = module_rebase + phdrs_off; + U64 phdrs_vaddr_opl = phdrs_vaddr + phdrs_count*phdrs_entry_size; + U64 shdrs_vaddr = module_rebase + shdrs_off; + + //- rjf: scan phdrs, unpack info + U64 image_vsize = 0; + Rng1U64 eh_frame_header_vaddr_range = {0}; + { + for EachIndex(phdr_idx, phdrs_count) + { + U64 phdr_vaddr = phdrs_vaddr + phdr_idx*phdrs_entry_size; + ELF_Phdr64 phdr = {0}; + switch(elf_sig_maybe[ELF_Identifier_Class]) + { + default:{}break; + case ELF_Class_32: + { + ELF_Phdr32 phdr32 = {0}; + lnx_dmn_read_struct(memory_fd, phdr_vaddr, &phdr32); + phdr.p_type = phdr32.p_type; + phdr.p_flags = phdr32.p_flags; + phdr.p_offset = (U64)phdr32.p_offset; + phdr.p_vaddr = (U64)phdr32.p_vaddr; + phdr.p_paddr = (U64)phdr32.p_paddr; + phdr.p_filesz = (U64)phdr32.p_filesz; + phdr.p_memsz = (U64)phdr32.p_memsz; + phdr.p_align = (U64)phdr32.p_align; + }break; + case ELF_Class_64: + { + lnx_dmn_read_struct(memory_fd, phdr_vaddr, &phdr); + }break; + } + if(phdr.p_type == ELF_PType_Load) + { + image_vsize = (module_rebase + phdr.p_vaddr + phdr.p_memsz) - base_vaddr; + } + if(phdr.p_type == ELF_PType_GnuEHFrame) + { + eh_frame_header_vaddr_range = r1u64(module_rebase + phdr.p_vaddr, module_rebase + phdr.p_vaddr + phdr.p_memsz); + } + } + } + + //- rjf: scan shdrs, unpack info + Rng1U64 raddbg_info_voff_range = {0}; + U64 raddbg_is_attached_marker_voff = 0; + { + // rjf: read all shdrs + ELF_Shdr64 *shdrs = push_array(scratch.arena, ELF_Shdr64, shdrs_count); + for EachIndex(shdr_idx, shdrs_count) + { + U64 shdr_vaddr = shdrs_vaddr + shdr_idx*shdrs_entry_size; + switch(elf_sig_maybe[ELF_Identifier_Class]) + { + case ELF_Class_32: + { + ELF_Shdr32 shdr32 = {0}; + lnx_dmn_read_struct(memory_fd, shdr_vaddr, &shdr32); + shdrs[shdr_idx].sh_name = shdr32.sh_name; + shdrs[shdr_idx].sh_type = shdr32.sh_type; + shdrs[shdr_idx].sh_flags = (U64)shdr32.sh_flags; + shdrs[shdr_idx].sh_addr = (U64)shdr32.sh_addr; + shdrs[shdr_idx].sh_offset = (U64)shdr32.sh_offset; + shdrs[shdr_idx].sh_size = (U64)shdr32.sh_size; + shdrs[shdr_idx].sh_link = shdr32.sh_link; + shdrs[shdr_idx].sh_info = shdr32.sh_info; + shdrs[shdr_idx].sh_addralign= (U64)shdr32.sh_addralign; + shdrs[shdr_idx].sh_entsize = (U64)shdr32.sh_entsize; + }break; + case ELF_Class_64: + { + lnx_dmn_read_struct(memory_fd, shdr_vaddr, &shdrs[shdr_idx]); + }break; + } + } + + // rjf: get string shdr + ELF_Shdr64 *string_shdr = 0; + if(shdrs_strings_idx < shdrs_count) + { + string_shdr = &shdrs[shdrs_strings_idx]; + } + + // rjf: scan shdrs, using names + if(string_shdr != 0) + { + for EachIndex(shdr_idx, shdrs_count) + { + ELF_Shdr64 *shdr = &shdrs[shdr_idx]; + U64 name_vaddr = string_shdr->sh_addr + shdr->sh_name; + String8 shdr_name = lnx_dmn_read_string(scratch.arena, memory_fd, name_vaddr); + if(str8_match(shdr_name, s(".raddbg"), 0)) + { + raddbg_info_voff_range = r1u64(shdr->sh_addr - base_vaddr, shdr->sh_addr - base_vaddr + shdr->sh_size); + } + if(str8_match(shdr_name, s(".rdbgia"), 0)) + { + raddbg_is_attached_marker_voff = (shdr->sh_addr - base_vaddr); + } + } + } + } + + //- rjf: unpack tls info + U64 tls_index = max_U64; + U64 tls_offset = max_U64; + if(is_main) + { + tls_index = 1; + tls_offset = 0; + } + else if(lnx_dmn_state->is_tls_detected) + { + Rng1U64 tls_modid_range = r1u64(lnx_dmn_state->tls_modid_desc.offset, lnx_dmn_state->tls_modid_desc.offset + lnx_dmn_state->tls_modid_desc.bit_size / 8); + Rng1U64 tls_offset_range = r1u64(lnx_dmn_state->tls_offset_desc.offset, lnx_dmn_state->tls_offset_desc.offset + lnx_dmn_state->tls_offset_desc.bit_size / 8); + tls_modid_range = shift_1u64(tls_modid_range, base_vaddr); + tls_offset_range = shift_1u64(tls_offset_range, base_vaddr); + tls_modid_range.max = Min(tls_modid_range.max, tls_modid_range.min + sizeof(tls_index)); + tls_offset_range.max = Min(tls_offset_range.max, tls_offset_range.min + sizeof(tls_offset)); + lnx_dmn_read(memory_fd, tls_modid_range, &tls_index); + lnx_dmn_read(memory_fd, tls_offset_range, &tls_offset); + } + + //- rjf: read module path + String8 module_path = lnx_dmn_read_string(arena, memory_fd, name_vaddr); + + //- rjf: decide on debug info key info + String8 debug_info_path = module_path; + Guid debug_info_guid = {0}; + U64 debug_info_timestamp = 0; + U64 debug_info_age = 0; + + //- rjf: fill result + info->arch = arch; + info->vsize = image_vsize; + info->entry_point_voff = entry_point_voff; + info->module_path = module_path; + info->debug_info_path = debug_info_path; + info->debug_info_guid = debug_info_guid; + info->debug_info_timestamp = debug_info_timestamp; + info->debug_info_age = debug_info_age; + info->tls_index = tls_index; + info->tls_offset = tls_offset; + info->eh_frame_header_vaddr_range = eh_frame_header_vaddr_range; + info->raddbg_info_voff_range = raddbg_info_voff_range; + info->raddbg_is_attached_marker_voff = raddbg_is_attached_marker_voff; + } + scratch_end(scratch); + return info; +} + +//////////////////////////////// +//~ rjf: Trap Setting + +internal LNX_DMN_ActiveTrap * +lnx_dmn_set_trap(Arena *arena, DMN_Trap *trap) +{ + ARCH_Info *arch = arch_info_from_arch(Arch_CURRENT); + String8 trap_inst = arch->trap_instruction; + U8 *swap_bytes = push_array(arena, U8, trap_inst.size); + B32 good_read = dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), swap_bytes); + B32 good_write = 0; + if(good_read) + { + good_write = dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr + trap_inst.size), trap_inst.str); + } + LNX_DMN_ActiveTrap *result = push_array(arena, LNX_DMN_ActiveTrap, 1); + result->good = (good_read && good_write); + result->trap = trap; + result->swap_bytes = str8(swap_bytes, trap_inst.size); + return result; +} + +internal Rng1U64 +lnx_dmn_compute_image_vrange(int memory_fd, ELF_Class elf_class, U64 rebase, U64 e_phaddr, U64 e_phentsize, U64 e_phnum) +{ + Rng1U64 result = { .min = max_U64 }; + + for(U64 ph_cursor = e_phaddr, ph_opl = (e_phaddr + e_phentsize * e_phnum); ph_cursor < ph_opl; ph_cursor += e_phentsize) + { + ELF_Phdr64 phdr = {0}; + if(elf_read_phdr(lnx_dmn_machine_op_mem_read, &memory_fd, ph_cursor, elf_class, &phdr) != MachineOpResult_Ok) + { + Assert(0 && "unable to read a program header"); + } + + if(phdr.p_type == ELF_PType_Load) + { + U64 min = rebase + phdr.p_vaddr; + U64 max = rebase + phdr.p_vaddr + phdr.p_memsz; + result.min = Min(result.min, min); + result.max = Max(result.max, max); + } + } + + return result; +} + +internal LNX_DMN_DynamicInfo +lnx_dmn_dynamic_info_from_memory(int memory_fd, ELF_Class elf_class, U64 rebase, U64 dynamic_vaddr) +{ + LNX_DMN_DynamicInfo dynamic_info = {0}; + for(U64 dynamic_cursor = dynamic_vaddr; ; dynamic_cursor += elf_dyn_size_from_class(elf_class)) + { + // rjf: read next dyn entry + ELF_Dyn64 dyn = {0}; + if(elf_read_dyn(lnx_dmn_machine_op_mem_read, &memory_fd, dynamic_cursor, elf_class, &dyn) != MachineOpResult_Ok) { Assert(0 && "unable to read dynamic"); } + + // rjf: break on zero + if(dyn.tag == ELF_DynTag_Null) { break; } + + // extract reuiqred values out of dynamic section + if(dyn.tag == ELF_DynTag_Strtab) + { + dynamic_info.strtab_vaddr = rebase + dyn.val; + } + else if(dyn.tag == ELF_DynTag_Strsz) + { + dynamic_info.strtab_size = dyn.val; + } + else if(dyn.tag == ELF_DynTag_Symtab) + { + dynamic_info.symtab_vaddr = rebase + dyn.val; + } + else if(dyn.tag == ELF_DynTag_Syment) + { + dynamic_info.symtab_entry_size = dyn.val; + } + else if(dyn.tag == ELF_DynTag_Hash) + { + dynamic_info.hash_vaddr = rebase + dyn.val; + } + else if(dyn.tag == ELF_DynTag_GNU_Hash) + { + dynamic_info.gnu_hash_vaddr = rebase + dyn.val; + } + } + return dynamic_info; +} + +internal U64 +lnx_dmn_find_dynamic_phdr(int memory_fd, ELF_Class elf_class, U64 rebase, U64 e_phaddr, U64 e_phentsize, U64 e_phnum) +{ + U64 result = max_U64; + + for(U64 ph_cursor = e_phaddr, ph_opl = (e_phaddr + e_phentsize * e_phnum); ph_cursor < ph_opl; ph_cursor += e_phentsize) + { + ELF_Phdr64 phdr = {0}; + if(elf_read_phdr(lnx_dmn_machine_op_mem_read, &memory_fd, ph_cursor, elf_class, &phdr) != MachineOpResult_Ok) + { + Assert(0 && "unable to read a program header"); + } + + if(phdr.p_type == ELF_PType_Dynamic) + { + result = rebase + phdr.p_vaddr; + break; + } + } + + return result; +} + +internal U64 +lnx_dmn_rdebug_vaddr_from_memory(int memory_fd, U64 loader_vbase, B32 is_rebased) +{ + Temp scratch = scratch_begin(0, 0); + + U64 rdebug_vaddr = 0; + + // load DL's header + ELF_Hdr64 ehdr = {0}; + if(elf_read_ehdr(lnx_dmn_machine_op_mem_read, &memory_fd, loader_vbase, &ehdr) != MachineOpResult_Ok) { Assert(0 && "failed to read interp's header"); goto exit; } + + U64 rebase = ehdr.e_type == ELF_Type_Dyn ? loader_vbase : 0; + ELF_Class elf_class = ehdr.e_ident[ELF_Identifier_Class]; + + // find dynamic program header + U64 phdr_vaddr = loader_vbase + ehdr.e_phoff; + U64 dynamic_vaddr = lnx_dmn_find_dynamic_phdr(memory_fd, elf_class, rebase, phdr_vaddr, ehdr.e_phentsize, ehdr.e_phentsize); + + // extract necessary info out of dynamic program header + U64 dynamic_info_rebase = is_rebased ? 0 : rebase; + LNX_DMN_DynamicInfo dynamic_info = lnx_dmn_dynamic_info_from_memory(memory_fd, elf_class, dynamic_info_rebase, dynamic_vaddr); + + // extract symbol table count from available options + U64 symbol_count = 0; + if(dynamic_info.hash_vaddr) + { + U64 hash_entry_size = 4; + if(elf_class == ELF_Class_64 && (ehdr.e_machine == ELF_MachineKind_ALPHA || ehdr.e_machine == ELF_MachineKind_S390 || ehdr.e_machine == ELF_MachineKind_S390_OLD)) + { + hash_entry_size = 8; + } + + U64 chain_count = 0; + if(lnx_dmn_read(memory_fd, r1u64(dynamic_info.hash_vaddr, dynamic_info.hash_vaddr + hash_entry_size), &chain_count) == hash_entry_size) + { + symbol_count = chain_count; + } + else + { + Assert(0 && "failed to read hash table's chain count out of HASH"); + } + } + else if(dynamic_info.gnu_hash_vaddr) + { + // GNU_HASH header: u32 nbuckets, u32 symoffset, u32 bloom_size, u32 bloom_shift, + // followed by bloom[bloom_size] (word size = 4 on 32-bit ELF, 8 on 64-bit), + // buckets[nbuckets] (u32), chains[...] (u32, terminated by entry w/ LSB set). + U32 gnu_header[4] = {0}; + if(lnx_dmn_read(memory_fd, r1u64(dynamic_info.gnu_hash_vaddr, dynamic_info.gnu_hash_vaddr + sizeof(gnu_header)), gnu_header) == sizeof(gnu_header)) + { + U32 nbuckets = gnu_header[0]; + U32 symoffset = gnu_header[1]; + U32 bloom_size = gnu_header[2]; + U64 bloom_word = (elf_class == ELF_Class_64) ? 8 : 4; + U64 buckets_vaddr = dynamic_info.gnu_hash_vaddr + sizeof(gnu_header) + bloom_size * bloom_word; + U64 chain_vaddr = buckets_vaddr + (U64)nbuckets * sizeof(U32); + + // find largest symbol index referenced by any bucket + U32 max_bucket = 0; + for(U32 b = 0; b < nbuckets; b += 1) + { + U32 entry = 0; + if(lnx_dmn_read(memory_fd, r1u64(buckets_vaddr + b*sizeof(U32), buckets_vaddr + (b+1)*sizeof(U32)), &entry) != sizeof(U32)) + { + break; + } + if(entry > max_bucket) { max_bucket = entry; } + } + + if(max_bucket < symoffset) + { + // no symbols in hash; total count is symoffset + symbol_count = symoffset; + } + else + { + // walk chain from max_bucket until terminator (entry w/ LSB set) + U64 idx = max_bucket; + for(;;) + { + U32 chain_entry = 0; + U64 entry_vaddr = chain_vaddr + (idx - symoffset) * sizeof(U32); + if(lnx_dmn_read(memory_fd, r1u64(entry_vaddr, entry_vaddr + sizeof(U32)), &chain_entry) != sizeof(U32)) + { + break; + } + if(chain_entry & 1) + { + symbol_count = idx + 1; + break; + } + idx += 1; + if(idx - max_bucket > (1u<<24)) + { + // sanity bound: don't loop forever on a corrupt chain + break; + } + } + } + } + } + + // scan symbol table for the rendezvous symbol + if(dynamic_info.symtab_vaddr && dynamic_info.symtab_entry_size && symbol_count) + { + for EachIndex(symbol_idx, symbol_count) + { + ELF_Sym64 symbol = {0}; + if(elf_read_symbol(lnx_dmn_machine_op_mem_read, &memory_fd, dynamic_info.symtab_vaddr + symbol_idx * dynamic_info.symtab_entry_size, elf_class, &symbol) != MachineOpResult_Ok) + { + Assert(0 && "failed to read symbol table"); + break; + } + + Temp temp = temp_begin(scratch.arena); + + String8 symbol_name = {0}; + if(symbol.st_name < dynamic_info.strtab_size) + { + U64 cap = dynamic_info.strtab_size - symbol.st_name; + symbol_name = lnx_dmn_read_string_capped(temp.arena, memory_fd, dynamic_info.strtab_vaddr + symbol.st_name, cap); + } + + if(str8_match(symbol_name, str8_lit("_r_debug"), 0)) + { + ELF_SymType symbol_type = ELF_ST_TYPE(symbol.st_info); + if(symbol_type == ELF_SymType_Object && symbol.st_size > 0) + { + rdebug_vaddr = rebase + symbol.st_value; + break; + } + } + + temp_end(temp); + } + } + + exit:; + scratch_end(scratch); + return rdebug_vaddr; +} + +internal LNX_DMN_ProbeList +lnx_dmn_read_probes(Arena *arena, int fd, U64 offset, U64 image_base) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNX_DMN_ProbeList probes = {0}; + + ELF_Hdr64 ehdr = {0}; + if(elf_read_ehdr(lnx_dmn_machine_op_mem_read, &fd, offset, &ehdr) != MachineOpResult_Ok) { goto exit; } + + U64 strtab_shdr_offset = offset + ehdr.e_shoff + ehdr.e_shstrndx * ehdr.e_shentsize; + ELF_Shdr64 strtab_shdr = {0}; + if(elf_read_shdr(lnx_dmn_machine_op_mem_read, &fd, strtab_shdr_offset, ehdr.e_ident[ELF_Identifier_Class], &strtab_shdr) != MachineOpResult_Ok) { goto exit; } + + B32 found_probes = 0; + B32 found_probes_base = 0; + ELF_Shdr64 text_shdr = {0}; + ELF_Shdr64 stapsdt_base_shdr = {0}; + ELF_Shdr64 stapsdt_shdr = {0}; + for(U64 shdr_off = offset + ehdr.e_shoff, shdr_opl = shdr_off + ehdr.e_shentsize * ehdr.e_shnum; + shdr_off < shdr_opl; + shdr_off += ehdr.e_shentsize) { + ELF_Shdr64 shdr = {0}; + if(elf_read_shdr(lnx_dmn_machine_op_mem_read, &fd, shdr_off, ehdr.e_ident[ELF_Identifier_Class], &shdr) != MachineOpResult_Ok) { goto exit; } + + if(shdr.sh_type == ELF_ShType_Note) + { + U64 name_offset = offset + strtab_shdr.sh_offset + shdr.sh_name; + U64 name_cap = offset + strtab_shdr.sh_offset + strtab_shdr.sh_size; + String8 name = lnx_dmn_read_string_capped(scratch.arena, fd, name_offset, name_cap); + + if(str8_match(name, str8_lit(".note.stapsdt"), 0)) + { + stapsdt_shdr = shdr; + found_probes = 1; + } + } + else if(shdr.sh_type == ELF_ShType_ProgBits) + { + U64 name_offset = offset + strtab_shdr.sh_offset + shdr.sh_name; + U64 name_cap = offset + strtab_shdr.sh_offset + strtab_shdr.sh_size; + String8 name = lnx_dmn_read_string_capped(scratch.arena, fd, name_offset, name_cap); + + if(str8_match(name, str8_lit(".stapsdt.base"), 0)) + { + stapsdt_base_shdr = shdr; + found_probes_base = 1; + } else if(str8_match(name, str8_lit(".text"), 0)) + { + text_shdr = shdr; + } + } + + if(found_probes && found_probes_base) { break; } + } + + if(!found_probes || !found_probes_base) { goto exit; } + + U64 probes_base = stapsdt_base_shdr.sh_addr; + + Rng1U64 note_range = shift_1u64(r1u64(stapsdt_shdr.sh_offset, stapsdt_shdr.sh_offset + stapsdt_shdr.sh_size), offset); + void *raw_note = push_array(arena, U8, stapsdt_shdr.sh_size); + U64 note_read_size = lnx_dmn_read(fd, note_range, raw_note); + if(note_read_size != dim_1u64(note_range)) { goto exit; } + + Arch arch = arch_from_elf_machine(ehdr.e_machine); + ELF_NoteList note = elf_parse_note(scratch.arena, str8(raw_note, dim_1u64(note_range)), ehdr.e_ident[ELF_Identifier_Class], ehdr.e_machine); + + for EachNode(n, ELF_NoteNode, note.first) + { + ELF_Note *note = &n->v; + if(!str8_match(note->owner, str8_lit("stapsdt"), 0)) { continue; } + if(note->type != ELF_NoteType_STapSdt) { continue; } + + LNX_DMN_Probe probe = {0}; + { + U64 cursor = 0; + U64 addr_size = ehdr.e_ident[ELF_Identifier_Class] == ELF_Class_64 ? 8 : 4; + + U64 pc = 0; + U64 pc_size = str8_deserial_read(note->desc, cursor, &pc, addr_size, addr_size); + if (pc_size == 0) { goto exit; } + cursor += pc_size; + + U64 base_addr = 0; + U64 base_addr_size = str8_deserial_read(note->desc, cursor, &base_addr, addr_size, addr_size); + if (base_addr_size == 0) { goto exit; } + cursor += base_addr_size; + + U64 semaphore = 0; + U64 semaphore_size = str8_deserial_read(note->desc, cursor, &semaphore, addr_size, addr_size); + if (semaphore_size == 0) { goto exit; } + cursor += semaphore_size; + + String8 provider = str8_cstring_capped(note->desc.str + cursor, note->desc.str + note->desc.size); + cursor += provider.size + 1; + if (cursor > note->desc.size) { goto exit; } + + String8 name = str8_cstring_capped(note->desc.str + cursor, note->desc.str + note->desc.size); + cursor += name.size + 1; + if (cursor > note->desc.size) { goto exit; } + + String8 args = str8_cstring_capped(note->desc.str + cursor, note->desc.str + note->desc.size); + cursor += args.size + 1; + if (cursor > note->desc.size) { goto exit; } + + U64 probe_rebase = image_base + (base_addr - probes_base); + + probe.provider = provider; + probe.name = name; + probe.args = stap_arg_array_from_string(arena, arch, args); + probe.pc = pc + probe_rebase; + probe.semaphore = semaphore ? semaphore + probe_rebase : 0; + } + + LNX_DMN_ProbeNode *n = push_array(arena, LNX_DMN_ProbeNode, 1); + n->v = probe; + SLLQueuePush(probes.first, probes.last, n); + probes.count += 1; + } + + exit:; + scratch_end(scratch); + return probes; +} + +internal +STAP_MEMORY_READ(lnx_dmn_stap_memory_read) +{ + LNX_DMN_Process *process = raw_ctx; + U64 bytes_read = lnx_dmn_read(process->fd, r1u64(addr, addr + read_size), buffer); + return bytes_read == read_size; +} + +internal LNX_DMN_Entity * +lnx_dmn_entity_alloc(LNX_DMN_EntityKind kind) +{ + LNX_DMN_Entity *entity = lnx_dmn_state->free_entity; + if(entity != 0) + { + SLLStackPop(lnx_dmn_state->free_entity); + } + else + { + entity = push_array(lnx_dmn_state->entities_arena, LNX_DMN_Entity, 1); + lnx_dmn_state->entities_count += 1; + } + U32 gen = entity->gen; + entity->gen += 1; + entity->kind = kind; + return entity; +} + +internal LNX_DMN_Process * +lnx_dmn_process_alloc(pid_t pid, LNX_DMN_ProcessState state, LNX_DMN_Process *parent_process, B32 debug_subprocesses, B32 is_cow) +{ + Temp scratch = scratch_begin(0, 0); + + LNX_DMN_Process *process = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_Process)->process; + process->pid = pid; + process->fd = LNX_RETRY_ON_EINTR(open((char *)str8f(scratch.arena, "/proc/%d/mem", pid).str, O_RDWR)); + process->state = state; + process->debug_subprocesses = debug_subprocesses; + process->is_cow = is_cow; + process->parent_process = parent_process; + + // update pending process tracker + if(state != LNX_DMN_ProcessState_Normal) + { + lnx_dmn_state->process_pending_creation += 1; + } + + // add process to the list + DLLPushBack(lnx_dmn_state->first_process, lnx_dmn_state->last_process, process); + lnx_dmn_state->process_count += 1; + + // push pid -> LNX_DMN_Process mapping + hash_table_push_u64_raw(lnx_dmn_state->arena, lnx_dmn_state->pid_ht, pid, process); + + scratch_end(scratch); + return process; +} + +internal LNX_DMN_ProcessCtx * +lnx_dmn_process_ctx_alloc(LNX_DMN_Process *process, B32 is_rebased) +{ + LNX_DMN_ProcessCtx *ctx = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_ProcessCtx)->process_ctx; + + ELF_Hdr64 exe_ehdr = lnx_dmn_ehdr_from_pid(process->pid); + LNX_DMN_Auxv auxv = lnx_dmn_auxv_from_pid(process->pid, exe_ehdr.e_ident[ELF_Identifier_Class]); + Arch arch = arch_from_elf_machine(exe_ehdr.e_machine); + U64 rdebug_vaddr = lnx_dmn_rdebug_vaddr_from_memory(process->fd, auxv.base, is_rebased); + U64 base_vaddr = (auxv.phdr & ~(auxv.pagesz-1)); + U64 rebase = exe_ehdr.e_type == ELF_Type_Dyn ? base_vaddr : 0; + Rng1U64 image_vrange = lnx_dmn_compute_image_vrange(process->fd, exe_ehdr.e_ident[ELF_Identifier_Class], rebase, auxv.phdr, auxv.phent, auxv.phnum); + Arena *ctx_arena = arena_alloc(); + + ELF_Class dl_class; + { + ELF_Hdr64 ehdr = {0}; + if(elf_read_ehdr(lnx_dmn_machine_op_mem_read, &process->fd, auxv.base, &ehdr) != MachineOpResult_Ok) { Assert(0 && "failed to read interp's header"); } + dl_class = ehdr.e_ident[ELF_Identifier_Class]; + } + + // query xsave layout + U64 xcr0 = 0; + U64 xsave_size = 0; + X64_XSaveLayout xsave_layout = {0}; + if(arch == Arch_x64) + { + X64_XSave xsave = {0}; + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETREGSET, process->pid, (void *)NT_X86_XSTATE, &(struct iovec){.iov_base = &xsave, .iov_len = sizeof(xsave) }) >= 0)) + { + // Linux stores xcr0 bits in fxstate padding, + // see https://github.com/torvalds/linux/blob/6548d364a3e850326831799d7e3ea2d7bb97ba08/arch/x86/include/asm/user.h#L25 + xcr0 = *(U64 *)((U8 *)&xsave + 464); + xsave_size = x64_get_xsave_size(); + xsave_layout = x64_get_xsave_layout(xcr0); + } + else { Assert(0 && "failed to get xstate"); } + } + + // gather probes + LNX_DMN_Probe **known_probes = push_array(ctx_arena, LNX_DMN_Probe *, LNX_DMN_ProbeType_Count); + { + Temp scratch = scratch_begin(0, 0); + + String8 dl_path = lnx_dmn_dl_path_from_pid(scratch.arena, process->pid, auxv.base); + int dl_fd = LNX_RETRY_ON_EINTR(open((char *)dl_path.str, O_RDONLY)); + + LNX_DMN_ProbeList probes = {0}; + if(dl_fd >= 0) + { + probes = lnx_dmn_read_probes(ctx_arena, dl_fd, 0, auxv.base); + LNX_RETRY_ON_EINTR(close(dl_fd)); + } + + for EachNode(n, LNX_DMN_ProbeNode, probes.first) + { + LNX_DMN_Probe *p = &n->v; + if(str8_match(p->provider, str8_lit("rtld"), 0)) + { +#define X(_N,_A,_S) if(str8_match(p->name, str8_lit(_S), 0)) { AssertAlways(p->args.count == _A); known_probes[LNX_DMN_ProbeType_##_N] = p; continue ; } + LNX_DMN_Probe_XList +#undef X + } + } + + scratch_end(scratch); + } + + ctx = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_ProcessCtx)->process_ctx; + ctx->arena = arena_alloc(); + ctx->arch = arch; + ctx->rdebug_vaddr = rdebug_vaddr; + ctx->dl_class = dl_class; + ctx->loaded_modules_ht = hash_table_init(ctx_arena, 0x1000); + ctx->probes = known_probes; + ctx->xcr0 = xcr0; + ctx->xsave_size = Max(xsave_size, sizeof(X64_XSave)); + ctx->xsave_layout = xsave_layout; + + // create main module + LNX_DMN_Module *main_module = lnx_dmn_module_alloc(ctx, process->fd, base_vaddr, auxv.execfn, 1, 1); + + // glibc has a shortcut mapping for the main module + hash_table_push_u64_raw(ctx->arena, ctx->loaded_modules_ht, 0, main_module); + + return ctx; +} + +internal LNX_DMN_Thread * +lnx_dmn_thread_alloc(LNX_DMN_Process *process, LNX_DMN_ThreadState thread_state, pid_t tid) +{ + void *reg_block; + if(process->ctx->free_reg_blocks.node_count) + { + String8Node *n = str8_list_pop_front(&process->ctx->free_reg_blocks); + reg_block = n->string.str; + str8_list_push_node(&process->ctx->free_reg_block_nodes, n); + } + else + { + ARCH_Info *arch_info = arch_info_from_arch(process->ctx->arch); + U64 reg_block_size = arch_info->reg_block_size; + reg_block = push_array(process->ctx->arena, U8, reg_block_size); + } + + LNX_DMN_Thread *thread = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_Thread)->thread; + thread->tid = tid; + thread->state = thread_state; + thread->process = process; + thread->reg_block = reg_block; + thread->dtv_base_vaddr = lnx_dmn_tls_root_vaddr_from_reg_block(process->fd, process->ctx->arch, reg_block); + if(thread_state == LNX_DMN_ThreadState_Stopped) + { + thread->is_reg_block_dirty = !lnx_dmn_thread_read_reg_block(thread); + } + + // add thread to the list + DLLPushBack(process->first_thread, process->last_thread, thread); + process->thread_count += 1; + + // push tid -> thread mapping + hash_table_push_u64_raw(lnx_dmn_state->arena, lnx_dmn_state->tid_ht, thread->tid, thread); + + // update global thread counter + if(thread_state == LNX_DMN_ThreadState_PendingCreation) + { + lnx_dmn_state->threads_pending_creation += 1; + } + + return thread; +} + +internal LNX_DMN_Module * +lnx_dmn_module_alloc(LNX_DMN_ProcessCtx *ctx, int memory_fd, U64 base_vaddr, U64 name_vaddr, U64 name_space_id, B32 is_main) +{ + LNX_DMN_Module *module = hash_table_search_u64_raw(ctx->loaded_modules_ht, base_vaddr); + if(module) { goto exit; } + + // parse out module's ELF header + ELF_Hdr64 module_ehdr = {0}; + if(elf_read_ehdr(lnx_dmn_machine_op_mem_read, &memory_fd, base_vaddr, &module_ehdr) != MachineOpResult_Ok) { goto exit; } + + // gather info about module + U64 module_rebase = module_ehdr.e_type == ELF_Type_Dyn ? base_vaddr : 0; + U64 module_phdr_vaddr = module_rebase + module_ehdr.e_phoff; + Rng1U64 module_vrange = lnx_dmn_compute_image_vrange(memory_fd, module_ehdr.e_ident[ELF_Identifier_Class], module_rebase, module_phdr_vaddr, module_ehdr.e_phentsize, module_ehdr.e_phnum); + + // read TLS index and TLS offset + U64 tls_index = max_U64; + U64 tls_offset = max_U64; + if(is_main) + { + tls_index = 1; + tls_offset = 0; + } + else + { + if(lnx_dmn_state->is_tls_detected) + { + Rng1U64 tls_modid_range = r1u64(lnx_dmn_state->tls_modid_desc.offset, lnx_dmn_state->tls_modid_desc.offset + lnx_dmn_state->tls_modid_desc.bit_size / 8); + Rng1U64 tls_offset_range = r1u64(lnx_dmn_state->tls_offset_desc.offset, lnx_dmn_state->tls_offset_desc.offset + lnx_dmn_state->tls_offset_desc.bit_size / 8); + tls_modid_range = shift_1u64(tls_modid_range, base_vaddr); + tls_offset_range = shift_1u64(tls_offset_range, base_vaddr); + if(!lnx_dmn_read(memory_fd, tls_modid_range, &tls_index)) { Assert(0 && "failed to read TLS index"); } + if(!lnx_dmn_read(memory_fd, tls_offset_range, &tls_offset)) { Assert(0 && "failed to read TLS offset"); } + } + } + + module = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_Module)->module; + module->base_vaddr = base_vaddr; + module->name_vaddr = name_vaddr; + module->name_space_id = name_space_id; + module->size = dim_1u64(module_vrange); + module->phvaddr = base_vaddr + module_ehdr.e_phoff; + module->phcount = module_ehdr.e_phnum; + module->phentsize = module_ehdr.e_phentsize; + module->tls_index = tls_index; + module->tls_offset = tls_offset; + module->is_main = is_main; + + // add module to the list + DLLPushBack(ctx->first_module, ctx->last_module, module); + ctx->module_count += 1; + + // push base address -> module mapping + hash_table_push_u64_raw(ctx->arena, ctx->loaded_modules_ht, base_vaddr, module); + + exit:; + return module; +} + +internal void +lnx_dmn_entity_release(LNX_DMN_Entity *entity) +{ + U32 gen = entity->gen + 1; + MemoryZeroStruct(entity); + entity->gen = gen; + SLLStackPush(lnx_dmn_state->free_entity, entity); +} + +internal void +lnx_dmn_process_release(LNX_DMN_Process *process) +{ + // update global state + AssertAlways(lnx_dmn_state->process_count > 0); + DLLRemove(lnx_dmn_state->first_process, lnx_dmn_state->last_process, process); + lnx_dmn_state->process_count -= 1; + + // update pending process tracker + if(process->state != LNX_DMN_ProcessState_Normal) + { + Assert(lnx_dmn_state->process_pending_creation > 0); + lnx_dmn_state->process_pending_creation -= 1; + } + + // close memory handle + if(LNX_RETRY_ON_EINTR(close(process->fd)) < 0) { Assert(0 && "failed to close memory descriptor"); } + + // remove pid mapping + hash_table_purge_u64(lnx_dmn_state->pid_ht, process->pid); + + // release the context + if(process->ctx) + { + lnx_dmn_process_ctx_release(process->ctx); + } + + // release process entity + lnx_dmn_entity_release((LNX_DMN_Entity *)process); +} + +internal void +lnx_dmn_process_ctx_release(LNX_DMN_ProcessCtx *ctx) +{ + Assert(ctx->ref_count > 0); + ctx->ref_count -= 1; + + if(ctx->ref_count == 0) + { + arena_release(ctx->arena); + lnx_dmn_entity_release((LNX_DMN_Entity *)ctx); + } +} + +internal void +lnx_dmn_thread_release(LNX_DMN_Thread *thread) +{ + LNX_DMN_Process *process = thread->process; + + // purge tid mapping + hash_table_purge_u64(lnx_dmn_state->tid_ht, thread->tid); + + // update global thread counter + if(thread->state == LNX_DMN_ThreadState_PendingCreation) + { + AssertAlways(lnx_dmn_state->threads_pending_creation > 0); + lnx_dmn_state->threads_pending_creation -= 1; + } + + // remove thread from the list + Assert(process->thread_count > 0); + DLLRemove(process->first_thread, process->last_thread, thread); + process->thread_count -= 1; + + // push reg block to the free list + String8Node *reg_block_node; + if(process->ctx->free_reg_block_nodes.node_count) + { + reg_block_node = str8_list_pop_front(&process->ctx->free_reg_block_nodes); + } + else + { + reg_block_node = push_array(process->ctx->arena, String8Node, 1); + } + reg_block_node->string = str8(thread->reg_block, 0); + str8_list_push_node(&process->ctx->free_reg_blocks, reg_block_node); + + lnx_dmn_entity_release((LNX_DMN_Entity *)thread); +} + +internal void +lnx_dmn_module_release(LNX_DMN_ProcessCtx *ctx, LNX_DMN_Module *module) +{ + // remove module from the list + Assert(ctx->module_count > 0); + DLLRemove(ctx->first_module, ctx->last_module, module); + ctx->module_count -= 1; + + // purge base addr -> module mapping + hash_table_purge_u64(ctx->loaded_modules_ht, module->base_vaddr); + + lnx_dmn_entity_release((LNX_DMN_Entity *)module); +} + +internal LNX_DMN_ProcessCtx * +lnx_dmn_process_ctx_clone(LNX_DMN_Process *new_owner, LNX_DMN_ProcessCtx *ctx) +{ + LNX_DMN_ProcessCtx *result = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_ProcessCtx)->process_ctx; + + result->arena = arena_alloc(); + result->arch = ctx->arch; + result->rdebug_vaddr = ctx->rdebug_vaddr; + result->dl_class = ctx->dl_class; + result->loaded_modules_ht = hash_table_init(result->arena, ctx->loaded_modules_ht->cap); + result->xcr0 = ctx->xcr0; + result->xsave_size = ctx->xsave_size; + result->xsave_layout = ctx->xsave_layout; + + // clone probes + result->probes = push_array(result->arena, LNX_DMN_Probe *, LNX_DMN_ProbeType_Count); + for EachIndex(probe_idx, LNX_DMN_ProbeType_Count) + { + LNX_DMN_Probe *dst = result->probes[probe_idx]; + LNX_DMN_Probe *src = ctx->probes[probe_idx]; + + dst->provider = str8_copy(result->arena, src->provider); + dst->name = str8_copy(result->arena, src->name); + dst->args_string = str8_copy(result->arena, src->args_string); + dst->args = stap_arg_array_copy(result->arena, src->args); + dst->pc = src->pc; + dst->semaphore = src->semaphore; + } + + // clone probe traps + for EachNode(src, LNX_DMN_ActiveTrap, ctx->first_probe_trap) + { + DMN_Trap *src_trap = src->trap; + DMN_Trap *dst_trap = push_array(result->arena, DMN_Trap, 1); + dst_trap->process = lnx_dmn_handle_from_process(new_owner); + dst_trap->vaddr = src_trap->vaddr; + dst_trap->id = src_trap->id; + dst_trap->flags = src_trap->flags; + dst_trap->size = src_trap->size; + + LNX_DMN_ActiveTrap *dst = push_array(result->arena, LNX_DMN_ActiveTrap, 1); + dst->trap = dst_trap; + dst->swap_bytes = str8_copy(result->arena, src->swap_bytes); + + SLLQueuePush(result->first_probe_trap, result->last_probe_trap, dst); + } + + // clone modules + for EachNode(module, LNX_DMN_Module, ctx->first_module) + { + lnx_dmn_module_clone(result, module); + } + + return result; +} + +internal LNX_DMN_Module * +lnx_dmn_module_clone(LNX_DMN_ProcessCtx *process_ctx, LNX_DMN_Module *module) +{ + LNX_DMN_Module *result = &lnx_dmn_entity_alloc(LNX_DMN_EntityKind_Module)->module; + *result = *module; + result->next = result->prev = 0; + + // clone base addr mapping + hash_table_push_u64_raw(process_ctx->arena, process_ctx->loaded_modules_ht, result->base_vaddr, result); + + // push module to the list + DLLPushBack(process_ctx->first_module, process_ctx->last_module, module); + process_ctx->module_count += 1; + + return result; +} + +internal DMN_Handle +lnx_dmn_handle_from_entity(LNX_DMN_Entity *entity) +{ + DMN_Handle handle = {0}; + U64 index = IntFromPtr(entity - lnx_dmn_state->entities_base); + if(index <= max_U32) + { + handle.u32[0] = index; + handle.u32[1] = entity->gen; + } + else + { + Assert(0 && "failed to make a handle for the entity"); + } + return handle; +} + +internal DMN_Handle +lnx_dmn_handle_from_process(LNX_DMN_Process *process) +{ + return lnx_dmn_handle_from_entity((LNX_DMN_Entity *)process); +} + +internal DMN_Handle +lnx_dmn_handle_from_process_ctx(LNX_DMN_ProcessCtx *process_ctx) +{ + return lnx_dmn_handle_from_entity((LNX_DMN_Entity *)process_ctx); +} + +internal DMN_Handle +lnx_dmn_handle_from_thread(LNX_DMN_Thread *thread) +{ + return lnx_dmn_handle_from_entity((LNX_DMN_Entity *)thread); +} + +internal DMN_Handle +lnx_dmn_handle_from_module(LNX_DMN_Module *module) +{ + return lnx_dmn_handle_from_entity((LNX_DMN_Entity *)module); +} + +internal LNX_DMN_Entity * +lnx_dmn_entity_from_handle(DMN_Handle handle, LNX_DMN_EntityKind expected_kind) +{ + LNX_DMN_Entity *result = 0; + U32 index = handle.u32[0]; + U32 gen = handle.u32[1]; + if(index < lnx_dmn_state->entities_count && lnx_dmn_state->entities_base[index].gen == gen) + { + if(lnx_dmn_state->entities_base[index].kind == expected_kind) + { + result = &lnx_dmn_state->entities_base[index]; + } + } + return result; +} + +internal LNX_DMN_Process * +lnx_dmn_process_from_handle(DMN_Handle process_handle) +{ + return (LNX_DMN_Process *)lnx_dmn_entity_from_handle(process_handle, LNX_DMN_EntityKind_Process); +} + +internal LNX_DMN_ProcessCtx * +lnx_dmn_process_ctx_from_handle(DMN_Handle process_ctx_handle) +{ + return (LNX_DMN_ProcessCtx *)lnx_dmn_entity_from_handle(process_ctx_handle, LNX_DMN_EntityKind_ProcessCtx); +} + +internal LNX_DMN_Thread * +lnx_dmn_thread_from_handle(DMN_Handle thread_handle) +{ + return (LNX_DMN_Thread *)lnx_dmn_entity_from_handle(thread_handle, LNX_DMN_EntityKind_Thread); +} + +internal LNX_DMN_Module * +lnx_dmn_module_from_handle(DMN_Handle module_handle) +{ + return (LNX_DMN_Module *)lnx_dmn_entity_from_handle(module_handle, LNX_DMN_EntityKind_Module); +} + +internal void +lnx_dmn_process_trap_probes(LNX_DMN_Process *process) +{ + for EachIndex(i, LNX_DMN_ProbeType_Count) + { + if(process->ctx->probes[i] == 0) { continue; } + + DMN_Trap *trap = push_array(process->ctx->arena, DMN_Trap, 1); + trap->process = lnx_dmn_handle_from_process(process); + trap->vaddr = process->ctx->probes[i]->pc; + trap->id = i; + + LNX_DMN_ActiveTrap *active_trap = lnx_dmn_set_trap(process->ctx->arena, trap); + SLLQueuePush(process->ctx->first_probe_trap, process->ctx->last_probe_trap, active_trap); + + if(BUILD_DEBUG && process->ctx->arch == Arch_x64) + { + Assert(active_trap->swap_bytes.size == 1 && active_trap->swap_bytes.str[0] == 0x90); + } + } +} + +internal void +lnx_dmn_process_untrap_probes(LNX_DMN_Process *process) +{ + NotImplemented; +} + +internal U64 +lnx_dmn_thread_read_ip(LNX_DMN_Thread *thread) +{ + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + U64 result = arch_ip_from_reg_block(arch_info, thread->reg_block); + return result; +} + +internal U64 +lnx_dmn_thread_read_sp(LNX_DMN_Thread *thread) +{ + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + U64 result = arch_sp_from_reg_block(arch_info, thread->reg_block); + return result; +} + +internal void +lnx_dmn_thread_write_ip(LNX_DMN_Thread *thread, U64 ip) +{ + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + arch_reg_block_write_ip(arch_info, thread->reg_block, ip); + thread->is_reg_block_dirty = 1; +} + +internal void +lnx_dmn_thread_write_sp(LNX_DMN_Thread *thread, U64 sp) +{ + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + arch_reg_block_write_sp(arch_info, thread->reg_block, sp); + thread->is_reg_block_dirty = 1; +} + +internal B32 +lnx_dmn_thread_read_reg_block(LNX_DMN_Thread *thread) +{ + B32 is_reg_block_read = 0; + if(thread->state == LNX_DMN_ThreadState_Stopped) + { + switch(thread->process->ctx->arch) + { + default:{}break; + case Arch_x64: + { + LNX_DMN_ProcessCtx *process_ctx = thread->process->ctx; + X64_RegBlock *dst = thread->reg_block; + + // general purpose registers + { + LNX_DMN_GprsX64 src; + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETREGSET, thread->tid, (void *)NT_PRSTATUS, &(struct iovec){ .iov_len = sizeof(src), .iov_base = &src })); + if(ptrace_result < 0) { goto exit; } + + dst->r15 = src.r15; + dst->r14 = src.r14; + dst->r13 = src.r13; + dst->r12 = src.r12; + dst->rbp = src.rbp; + dst->rbx = src.rbx; + dst->r11 = src.r11; + dst->r10 = src.r10; + dst->r9 = src.r9; + dst->r8 = src.r8; + dst->rax = src.rax; + dst->rcx = src.rcx; + dst->rdx = src.rdx; + dst->rsi = src.rsi; + dst->rdi = src.rdi; + dst->rip = src.rip; + dst->cs = src.cs; + dst->rflags = src.rflags; + dst->rsp = src.rsp; + dst->ss = src.ss; + dst->fsbase = src.fsbase; + dst->gsbase = src.gsbase; + dst->ds = src.ds; + dst->es = src.es; + dst->fs = src.fs; + dst->gs = src.gs; + thread->orig_rax = src.orig_rax; + } + + // xsave + { + Temp scratch = scratch_begin(0, 0); + + X64_XSave *xsave = 0; + X64_FXSave *fxsave = 0; + + // get xsave + if(x64_is_xsave_supported()) + { + void *xsave_raw = push_array(scratch.arena, U8, process_ctx->xsave_size); + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETREGSET, thread->tid, (void *)NT_X86_XSTATE, &(struct iovec){ .iov_len = process_ctx->xsave_size, .iov_base = xsave_raw })); + if(ptrace_result < 0) { goto exit; } + xsave = xsave_raw; + fxsave = &xsave->fxsave; + } + + // get fxsave + if(fxsave == 0) + { + fxsave = push_array(scratch.arena, X64_FXSave, 1); + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETREGSET, thread->tid, (void *)NT_FPREGSET, &(struct iovec){ .iov_len = sizeof(*fxsave), .iov_base = fxsave })); + if(ptrace_result < 0) { goto exit; } + fxsave = 0; + } + + // copy fxsave registers + if(fxsave) + { + X64_FXSave *src = fxsave; + + // copy x87 registers + dst->fcw = src->fcw; + dst->fsw = src->fsw; + dst->ftw = src->ftw; + dst->fop = src->fop; + dst->fip = src->fip; + dst->fdp = src->fdp; + dst->mxcsr = src->mxcsr; + dst->mxcsr_mask = src->mxcsr_mask; + for EachIndex(i, 8) + { + MemoryCopy(&dst->st0 + i, src->st_space + i, sizeof(U80)); + } + + // SSE registers are always available in x64 + { + U128 *xmm_d = fxsave->xmm_space; + U512 *zmm_s = &dst->zmm0; + for EachIndex(i, 16) + { + MemoryCopy(&zmm_s[i], &xmm_d[i], sizeof(*xmm_d)); + } + } + } + + // copy xsave registers + // + // compact register layout is not supported (xsave->header.xcomp_bv == 0) + // + if(xsave && xsave->header.xcomp_bv == 0) + { + if(xsave->header.xstate_bv & X64_XStateComponentFlag_AVX && + process_ctx->xsave_layout.avx_offset + 16*sizeof(U128) <= process_ctx->xsave_size) + { + U128 *avx_s = (U128 *)((U8 *)xsave + process_ctx->xsave_layout.avx_offset); + U512 *zmm_d = &dst->zmm0; + for EachIndex(n, 16) + { + MemoryCopy(&zmm_d[n].u8[16], &avx_s[n], sizeof(U128)); + } + } + + if(xsave->header.xstate_bv & X64_XStateComponentFlag_OPMASK && + process_ctx->xsave_layout.opmask_offset + sizeof(U64) * 8 <= process_ctx->xsave_size) + { + U64 *kmask_s = (U64 *)((U8 *)xsave + process_ctx->xsave_layout.opmask_offset); + U64 *kmask_d = &dst->k0; + for EachIndex(n, 8) + { + MemoryCopy(&kmask_d[n], &kmask_s[n], sizeof(U64)); + } + } + + if(xsave->header.xstate_bv & X64_XStateComponentFlag_ZMM_H && + process_ctx->xsave_layout.zmm_h_offset + sizeof(U256) * 16 <= process_ctx->xsave_size) + { + U256 *avx512h_s = (U256 *)((U8 *)xsave + process_ctx->xsave_layout.zmm_h_offset); + U512 *zmmh_d = &dst->zmm0; + for EachIndex(n, 16) + { + MemoryCopy(&zmmh_d[n].u8[32], &avx512h_s[n], sizeof(U256)); + } + } + + if(xsave->header.xstate_bv & X64_XStateComponentFlag_ZMM && + process_ctx->xsave_layout.zmm_offset + sizeof(U512) * 16 <= process_ctx->xsave_size) + { + U512 *avx512_s = (U512 *)((U8 *)xsave + process_ctx->xsave_layout.zmm_offset); + U512 *zmm_d = &dst->zmm16; + for EachIndex(n, 16) + { + MemoryCopy(&zmm_d[n], &avx512_s[n], sizeof(U512)); + } + } + + if(xsave->header.xstate_bv & X64_XStateComponentFlag_CETU && + process_ctx->xsave_layout.cet_u_offset + sizeof(U64)*2 <= process_ctx->xsave_size) + { + U64 *cet_u = (U64 *)((U8 *)xsave + process_ctx->xsave_layout.cet_u_offset); + dst->cetmsr = cet_u[0]; + dst->cetssp = cet_u[1]; + } + } + + scratch_end(scratch); + } + + // debug registers + { + U64 *dr_d = &dst->dr0; + for EachIndex(n, 8) + { + if(n != 4 && n != 5) + { + U64 offset = OffsetOf(LNX_DMN_UserX64, u_debugreg[n]); + errno = 0; + long peek_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_PEEKUSER, thread->tid, PtrFromInt(offset), 0)); + if(errno != 0) { goto exit; } + dr_d[n] = peek_result; + } + } + } + + is_reg_block_read = 1; + }break; + } + } + exit:; + return is_reg_block_read; +} + +internal B32 +lnx_dmn_thread_write_reg_block(LNX_DMN_Thread *thread) +{ + AssertAlways(thread->state == LNX_DMN_ThreadState_Stopped); + + B32 is_reg_block_written = 0; + + switch(thread->process->ctx->arch) + { + case Arch_Null: {} break; + case Arch_x64: + { + LNX_DMN_ProcessCtx *process_ctx = thread->process->ctx; + X64_RegBlock *src = thread->reg_block; + + // general purpose registers + { + LNX_DMN_GprsX64 dst; + dst.r15 = src->r15; + dst.r14 = src->r14; + dst.r13 = src->r13; + dst.r12 = src->r12; + dst.rbp = src->rbp; + dst.rbx = src->rbx; + dst.r11 = src->r11; + dst.r10 = src->r10; + dst.r9 = src->r9; + dst.r8 = src->r8; + dst.rax = src->rax; + dst.rcx = src->rcx; + dst.rdx = src->rdx; + dst.rsi = src->rsi; + dst.rdi = src->rdi; + dst.orig_rax = thread->orig_rax; + dst.rip = src->rip; + dst.cs = src->cs; + dst.rflags = src->rflags; + dst.rsp = src->rsp; + dst.ss = src->ss; + dst.fsbase = src->fsbase; + dst.gsbase = src->gsbase; + dst.ds = src->ds; + dst.es = src->es; + dst.fs = src->fs; + dst.gs = src->gs; + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_SETREGSET, thread->tid, (void *)NT_PRSTATUS, &(struct iovec){ .iov_base = &dst, .iov_len = sizeof(dst) })); + if(ptrace_result < 0) { goto exit; } + } + + // xsave + { + Temp scratch = scratch_begin(0, 0); + + X64_FXSave dst_fxsave = {0}; + { + dst_fxsave.fcw = src->fcw; + dst_fxsave.fsw = src->fsw; + dst_fxsave.ftw = src->ftw; + dst_fxsave.fop = src->fop; + dst_fxsave.fip = src->fip; + dst_fxsave.fdp = src->fdp; + dst_fxsave.mxcsr = src->mxcsr; + dst_fxsave.mxcsr_mask = src->mxcsr_mask; + + U128 *st_d = (U128 *)dst_fxsave.st_space; + U80 *st_s = &src->st0; + for EachIndex(n, 8) + { + MemoryCopy(&st_d[n], &st_s[n], sizeof(U80)); + } + + U128 *xmm_d = (U128 *)dst_fxsave.xmm_space; + U512 *xmm_s = &src->zmm0; + for EachIndex(n, 16) + { + MemoryCopy(&xmm_d[n], &xmm_s[n], sizeof(U128)); + } + } + + if(x64_is_xsave_supported()) + { + U8 *xsave_raw = push_array(scratch.arena, U8, process_ctx->xsave_size); + X64_XSave *dst = (X64_XSave *)xsave_raw; + dst->fxsave = dst_fxsave; + dst->header.xstate_bv |= X64_XStateComponentFlag_FP; + dst->header.xstate_bv |= X64_XStateComponentFlag_SSE; + + if(process_ctx->xsave_layout.avx_offset) + { + if(process_ctx->xsave_layout.avx_offset + sizeof(U128) * 16 <= process_ctx->xsave_size) + { + U128 *avx_d = (U128 *)(xsave_raw + process_ctx->xsave_layout.avx_offset); + U512 *zmm_s = &src->zmm0; + for EachIndex(n, 16) + { + MemoryCopy(&avx_d[n], &zmm_s[n].u8[16], sizeof(U128)); + } + dst->header.xstate_bv |= X64_XStateComponentFlag_AVX; + } + } + + if(process_ctx->xsave_layout.opmask_offset) + { + if(process_ctx->xsave_layout.opmask_offset + sizeof(U64) * 8 <= process_ctx->xsave_size) + { + U64 *kmask_d = (U64 *)(xsave_raw + process_ctx->xsave_layout.opmask_offset); + U64 *kmask_s = &src->k0; + for EachIndex(n, 8) + { + MemoryCopy(&kmask_d[n], &kmask_s[n], sizeof(U64)); + } + dst->header.xstate_bv |= X64_XStateComponentFlag_OPMASK; + } + else { Assert(0 && "invalid xsave size"); goto exit; } + } + + if(process_ctx->xsave_layout.zmm_h_offset) + { + if(process_ctx->xsave_layout.zmm_h_offset + sizeof(U256) * 16 <= process_ctx->xsave_size) + { + U256 *avx512h_d = (U256 *)(xsave_raw + process_ctx->xsave_layout.zmm_h_offset); + U512 *zmmh_s = &src->zmm0; + for EachIndex(n, 16) + { + MemoryCopy(&avx512h_d[n], &zmmh_s[n].u8[32], sizeof(U256)); + } + dst->header.xstate_bv |= X64_XStateComponentFlag_ZMM_H; + } + else { Assert(0 && "invalid xsave size"); goto exit; } + } + + if(process_ctx->xsave_layout.zmm_offset) + { + if(process_ctx->xsave_layout.zmm_offset + sizeof(U512) * 16 <= process_ctx->xsave_size) + { + U512 *avx512_d = (U512 *)(xsave_raw + process_ctx->xsave_layout.zmm_offset); + U512 *zmm_s = &src->zmm16; + for EachIndex(n, 16) + { + MemoryCopy(&avx512_d[n], &zmm_s[n], sizeof(U512)); + } + dst->header.xstate_bv |= X64_XStateComponentFlag_ZMM; + } + else { Assert(0 && "invalid xsave size"); goto exit; } + } + + if(process_ctx->xsave_layout.cet_u_offset) + { + if(process_ctx->xsave_layout.cet_u_offset + sizeof(U64) * 2 <= process_ctx->xsave_size) + { + U64 *cet_u = (U64 *)(xsave_raw + process_ctx->xsave_layout.cet_u_offset); + cet_u[0] = src->cetmsr; + cet_u[1] = src->cetssp; + dst->header.xstate_bv |= X64_XStateComponentFlag_CETU; + } + else { Assert(0 && "invalid xsave size"); goto exit; } + } + + // xsave + Assert(dst->header.xcomp_bv == 0); // must always be zero + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_SETREGSET, thread->tid, (void *)NT_X86_XSTATE, &(struct iovec){ .iov_base = dst, .iov_len = process_ctx->xsave_size })); + if(ptrace_result < 0) { goto exit; } + } + + scratch_end(scratch); + } + + // debug registers + { + src->dr7 |= (1 << 10); + + U64 *dr_s = &src->dr0; + for EachIndex(n, 8) + { + if(n != 4 && n != 5) + { + U64 offset = OffsetOf(LNX_DMN_UserX64, u_debugreg[n]); + int ptrace_result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_POKEUSER, thread->tid, PtrFromInt(offset), (void*)(uintptr_t)dr_s[n])); + if(ptrace_result < 0) { goto exit; } + } + } + } + + is_reg_block_written = 1; + } break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: { NotImplemented; }break; + default: { InvalidPath; } break; + } + + exit:; + return is_reg_block_written; +} + +internal B32 +lnx_dmn_set_single_step_flag(LNX_DMN_Thread *thread, B32 is_on) +{ + B32 is_flag_set = 0; + switch(thread->process->ctx->arch) + { + case Arch_Null: {} break; + case Arch_x64: + { + X64_RegBlock *reg_block = thread->reg_block; + if(is_on) { reg_block->rflags |= X64_RFlag_Trap; } + else { reg_block->rflags &= ~X64_RFlag_Trap; } + thread->is_reg_block_dirty = 1; + is_flag_set = 1; + } break; + case Arch_x86: + case Arch_arm32: + case Arch_arm64: { NotImplemented; }break; + default: { InvalidPath; } break; + } + Assert(is_flag_set); + return is_flag_set; +} + +internal U64 +lnx_dmn_tls_root_vaddr_from_reg_block(int fd, Arch arch, void *reg_block) +{ + U64 result = 0; + switch(arch) + { + case Arch_x86: + case Arch_arm32: + case Arch_arm64: + case Arch_Null: + case Arch_COUNT:{}break; + case Arch_x64: + { + X64_RegBlock *reg_block_x64 = (X64_RegBlock *)reg_block; + U64 dtv_pointer = 0; + if(lnx_dmn_read_struct(fd, reg_block_x64->fsbase + 8, &dtv_pointer)) + { + result = dtv_pointer; + } + }break; + } + return result; +} + +internal void +lnx_dmn_thread_ptr_list_push_node(LNX_DMN_ThreadPtrList *list, LNX_DMN_ThreadPtrNode *n) +{ + DLLPushBack(list->first, list->last, n); + list->count += 1; +} + +internal LNX_DMN_ThreadPtrNode * +lnx_dmn_thread_ptr_list_push(Arena *arena, LNX_DMN_ThreadPtrList *list, LNX_DMN_Thread *v) +{ + LNX_DMN_ThreadPtrNode *n = push_array(arena, LNX_DMN_ThreadPtrNode, 1); + n->v = v; + lnx_dmn_thread_ptr_list_push_node(list, n); + return n; +} + +internal void +lnx_dmn_thread_ptr_list_remove(LNX_DMN_ThreadPtrList *list, LNX_DMN_ThreadPtrNode *n) +{ + DLLRemove(list->first, list->last, n); + list->count -= 1; +} + +internal LNX_DMN_ModulePtrNode * +lnx_dmn_module_ptr_list_push(Arena *arena, LNX_DMN_ModulePtrList *list, LNX_DMN_Module *v) +{ + LNX_DMN_ModulePtrNode *n = push_array(arena, LNX_DMN_ModulePtrNode, 1); + n->v = v; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + return n; +} + +internal LNX_DMN_ProcessPtrNode * +lnx_dmn_process_ptr_list_push(Arena *arena, LNX_DMN_ProcessPtrList *list, LNX_DMN_Process *v) +{ + LNX_DMN_ProcessPtrNode *n = push_array(arena, LNX_DMN_ProcessPtrNode, 1); + n->v = v; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + return n; +} + +internal void +lnx_dmn_push_event_create_process(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process) +{ + // push create process event + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_CreateProcess; + e->process = lnx_dmn_handle_from_process(process); + e->arch = process->ctx->arch; + e->code = process->pid; + e->tls_model = DMN_TlsModel_Gnu; // TODO: use dynamic linker path to figure out correct enum here +} + +internal void +lnx_dmn_push_event_exit_process(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_ExitProcess; + e->process = lnx_dmn_handle_from_process(process); + e->code = process->main_thread_exit_code; +} + +internal void +lnx_dmn_push_event_create_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_CreateThread; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->arch = thread->process->ctx->arch; + e->code = thread->tid; + // TODO(rjf): e->stack_pointer = ???; + e->tls_root_vaddr = thread->dtv_base_vaddr; +} + +internal void +lnx_dmn_push_event_exit_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 exit_code) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_ExitThread; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->code = exit_code; +} + +internal void +lnx_dmn_push_event_load_module(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, LNX_DMN_Module *module) +{ + // TODO: reporting this module breaks ctrl thread + LNX_DMN_Process *process = thread->process; + DMN_ModuleInfo *module_info = lnx_dmn_module_info_from_process_module(arena, process->pid, process->fd, module->base_vaddr, module->name_vaddr, module->is_main); + String8 module_name = module_info->module_path; + if(!str8_match(module_name, str8_lit("linux-vdso.so.1"), 0)) + { + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_LoadModule; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->module = lnx_dmn_handle_from_module(module); + e->arch = module_info->arch; + e->address = module->base_vaddr; + e->size = module->size; + e->string = module_name; + e->module_info = module_info; + } +} + +internal void +lnx_dmn_push_event_unload_module(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, LNX_DMN_Module *module) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_UnloadModule; + e->process = lnx_dmn_handle_from_process(process); + e->module = lnx_dmn_handle_from_module(module); +} + +internal void +lnx_dmn_push_event_handshake_complete(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_HandshakeComplete; + e->process = lnx_dmn_handle_from_process(process); + e->thread = lnx_dmn_handle_from_thread(process->first_thread); + e->arch = process->ctx->arch; +} + +internal void +lnx_dmn_push_event_breakpoint(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 address) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_Breakpoint; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->instruction_pointer = address; + e->address = address; +} + +internal void +lnx_dmn_push_event_single_step(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_SingleStep; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->instruction_pointer = lnx_dmn_thread_read_ip(thread); + e->address = e->instruction_pointer; +} + +internal void +lnx_dmn_push_event_exception(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 signo) +{ + local_persist B8 is_repeatable[] = + { + 0, // null + 1, // 1 SIGHUP + 1, // 2 SIGINT + 1, // 3 SIGQUIT + 1, // 4 SIGTRAP + 1, // 5 SIGABRT + 1, // 6 SIGIOT + 1, // 7 SIGBUS + 1, // 8 SIGFPE + 1, // 9 SIGKILL + 1, // 10 SIGUSR1 + 1, // 11 SIGSEGV + 1, // 12 SIGUSR2 + 1, // 13 SIGPIPE + 1, // 14 SIGALRM + 1, // 15 SIGTERM + 1, // 16 SIGTKFLT + 0, // 17 SIGCHLD + 0, // 18 SIGCONT + 1, // 19 SIGSTOP + 1, // 20 SIGTSP + 1, // 21 SIGTTIN + 1, // 22 SIGTTOU + 0, // 23 SIGURG + 1, // 24 SIGXCPU + 1, // 25 SIGXFSZ + 1, // 26 SIGVTALRM + 1, // 27 SIGPROF + 0, // 28 SIGWINCH + 1, // 29 SIGIO + 1, // 30 SIGPWR + 1, // 31 SIGSYS + 1, // 32 SIGUNUSED + }; + + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_Exception; + e->process = lnx_dmn_handle_from_process(thread->process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->instruction_pointer = lnx_dmn_thread_read_ip(thread); + e->address = e->instruction_pointer; + e->code = signo; + e->exception_repeated = signo < ArrayCount(is_repeatable) ? is_repeatable[signo] : 0; + + if(signo == SIGSEGV) + { + siginfo_t si = {0}; + LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETSIGINFO, thread->tid, 0, &si)); + e->address = (U64)si.si_addr; + } +} + +internal void +lnx_dmn_push_event_halt(Arena *arena, DMN_EventList *events) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_Halt; +} + +internal void +lnx_dmn_push_event_not_attached(Arena *arena, DMN_EventList *events) +{ + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_Error; + e->error_kind = DMN_ErrorKind_NotAttached; +} + +internal LNX_DMN_Thread * +lnx_dmn_event_create_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, pid_t tid) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_alloc(process, LNX_DMN_ThreadState_Stopped, tid); + lnx_dmn_push_event_create_thread(arena, events, thread); + return thread; +} + +internal void +lnx_dmn_event_exit_thread(Arena *arena, DMN_EventList *events, pid_t tid, U64 exit_code) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(tid); + LNX_DMN_Process *process = thread->process; + + // store main thread's exit code + if(thread->tid == thread->process->pid) + { + thread->process->main_thread_exit_code = exit_code; + } + + // push exit event + lnx_dmn_push_event_exit_thread(arena, events, thread, exit_code); + + // release entity + lnx_dmn_thread_release(thread); + + // auto exit process on last thread + if(process->thread_count == 0) + { + lnx_dmn_event_exit_process(arena, events, process->pid); + } +} + +internal LNX_DMN_Process * +lnx_dmn_event_create_process(Arena *arena, DMN_EventList *events, pid_t pid, LNX_DMN_Process *parent_process, LNX_DMN_CreateProcessFlags flags) +{ + LNX_DMN_Process *process = lnx_dmn_process_alloc(pid, LNX_DMN_ProcessState_Normal, parent_process, !!(flags & LNX_DMN_CreateProcessFlag_DebugSubprocesses), !!(flags & LNX_DMN_CreateProcessFlag_Cow)); + + if(flags & LNX_DMN_CreateProcessFlag_ClonedMemory) + { + process->ctx = parent_process->ctx; + } + else + { + process->ctx = lnx_dmn_process_ctx_alloc(process, !!(flags & LNX_DMN_CreateProcessFlag_Rebased)); + } + process->ctx->ref_count += 1; + + // install probes in a process that does not have a cloned memory + if(!(flags & LNX_DMN_CreateProcessFlag_ClonedMemory)) + { + lnx_dmn_process_trap_probes(process); + } + + // create main thread + lnx_dmn_thread_alloc(process, LNX_DMN_ThreadState_Stopped, pid); + + // push events + lnx_dmn_push_event_create_process(arena, events, process); + for EachNode(thread, LNX_DMN_Thread, process->first_thread) + { + lnx_dmn_push_event_create_thread(arena, events, thread); + } + for EachNode(module, LNX_DMN_Module, process->ctx->first_module) + { + lnx_dmn_push_event_load_module(arena, events, process->first_thread, module); + } + lnx_dmn_push_event_handshake_complete(arena, events, process); + + return process; +} + +internal void +lnx_dmn_event_exit_process(Arena *arena, DMN_EventList *events, pid_t pid) +{ + LNX_DMN_Process *process = lnx_dmn_process_from_pid(pid); + AssertAlways(process->thread_count == 0); + + // push module events + for EachNode(module, LNX_DMN_Module, process->ctx->first_module) + { + lnx_dmn_push_event_unload_module(arena, events, process, module); + } + + // push process exit event + lnx_dmn_push_event_exit_process(arena, events, process); + + // release process + lnx_dmn_process_release(process); +} + +internal void +lnx_dmn_event_load_module(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 name_space_id, U64 new_link_map_vaddr) +{ + LNX_DMN_Process *process = thread->process; + + GNU_LinkMap64 map = {0}; + for(U64 map_vaddr = new_link_map_vaddr; map_vaddr != 0; map_vaddr = map.next_vaddr) + { + // read out new link map item + if(gnu_read_link_map(lnx_dmn_machine_op_mem_read, &process->fd, map_vaddr, process->ctx->dl_class, &map) != MachineOpResult_Ok) { break; } + + // was module already loaded? + LNX_DMN_Module *module = hash_table_search_u64_raw(process->ctx->loaded_modules_ht, map.addr_vaddr); + if(module) { continue; } + + // clone process ctx + if(process->is_cow) + { + process->is_cow = 0; + process->ctx = lnx_dmn_process_ctx_clone(process, process->ctx); + } + + // alloc module + module = lnx_dmn_module_alloc(process->ctx, process->fd, map.addr_vaddr, map.name_vaddr, name_space_id, 0); + + // push load module event + lnx_dmn_push_event_load_module(arena, events, thread, module); + } +} + +internal void +lnx_dmn_event_unload_module(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, U64 rdebug_vaddr) +{ + Temp scratch = scratch_begin(&arena, 1); + + LNX_DMN_ProcessCtx *ctx = process->ctx; + + // flag every module as inactive + for EachNode(module, LNX_DMN_Module, ctx->first_module) + { + module->is_live = 0; + } + + // mark live modules + B32 is_64bit = ctx->dl_class == ELF_Class_64; + GNU_RDebugInfoList rdebug_list = gnu_parse_rdebug(scratch.arena, is_64bit, rdebug_vaddr, lnx_dmn_machine_op_mem_read, &process->fd); + for EachNode(rdebug_n, GNU_RDebugInfoNode, rdebug_list.first) + { + GNU_LinkMapList link_map_list = gnu_parse_link_map_list(scratch.arena, is_64bit, rdebug_n->v.r_map, lnx_dmn_machine_op_mem_read, &process->fd); + for EachNode(link_map_n, GNU_LinkMapNode, link_map_list.first) + { + LNX_DMN_Module *module = hash_table_search_u64_raw(ctx->loaded_modules_ht, link_map_n->v.addr_vaddr); + module->is_live = 1; + } + } + + // collect unloaded modules + LNX_DMN_ModulePtrList to_release = {0}; + for EachNode(module, LNX_DMN_Module, ctx->first_module) + { + if(!module->is_live) + { + lnx_dmn_module_ptr_list_push(scratch.arena, &to_release, module); + } + } + + // clone process context + if(to_release.count > 0) + { + if(process->is_cow) + { + process->is_cow = 0; + process->ctx = lnx_dmn_process_ctx_clone(process, process->ctx); + } + } + + // push events and clean up unloaded modules + for EachNode(module_n, LNX_DMN_ModulePtrNode, to_release.first) + { + lnx_dmn_push_event_unload_module(arena, events, process, module_n->v); + lnx_dmn_module_release(process->ctx, module_n->v); + } + + scratch_end(scratch); +} + +internal void +lnx_dmn_event_breakpoint(Arena *arena, DMN_EventList *events, LNX_DMN_ActiveTrap *user_traps, pid_t tid) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(tid); + LNX_DMN_Process *process = thread->process; + U64 ip = lnx_dmn_thread_read_ip(thread); + + // is this user trap? + LNX_DMN_ActiveTrap *hit_user_trap = 0; + { + DMN_Handle process_handle = lnx_dmn_handle_from_process(process); + for EachNode(active_trap, LNX_DMN_ActiveTrap, user_traps) + { + if(MemoryCompare(&active_trap->trap->process, &process_handle, sizeof(DMN_Handle)) == 0) + { + if(active_trap->trap->vaddr == ip-1) + { + hit_user_trap = active_trap; + break; + } + } + } + } + + // is this a probe trap? + LNX_DMN_ProbeType probe_type = LNX_DMN_ProbeType_Null; + if(hit_user_trap == 0) + { + for EachNode(active_trap, LNX_DMN_ActiveTrap, process->ctx->first_probe_trap) + { + if(active_trap->trap->vaddr == ip-1) + { + probe_type = active_trap->trap->id; + break; + } + } + } + + if(probe_type == LNX_DMN_ProbeType_InitComplete) + { + B32 is_init_completed = 0; + + LNX_DMN_Probe *probe = process->ctx->probes[LNX_DMN_ProbeType_InitComplete]; + U64 name_space_id = 0, rdebug_addr = 0; + if(!stap_read_arg_u(probe->args.v[0], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &name_space_id)) { goto init_complete_exit; } + if(!stap_read_arg_u(probe->args.v[1], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &rdebug_addr)) { goto init_complete_exit; } + + GNU_RDebugInfo64 rdebug = {0}; + if(gnu_read_r_debug(lnx_dmn_machine_op_mem_read, &process->fd, rdebug_addr, process->ctx->arch, &rdebug) != MachineOpResult_Ok) { goto init_complete_exit; } + if(rdebug.r_version < 1) { goto init_complete_exit; } + + lnx_dmn_event_load_module(arena, events, thread, name_space_id, rdebug.r_map); + + is_init_completed = 1; + init_complete_exit:; + AssertAlways(is_init_completed); + } + else if(probe_type == LNX_DMN_ProbeType_RelocComplete) + { + B32 is_reloc_completed = 0; + + LNX_DMN_Probe *probe = process->ctx->probes[LNX_DMN_ProbeType_RelocComplete]; + U64 name_space_id = 0, new_link_map_addr = 0; + if(!stap_read_arg_u(probe->args.v[0], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &name_space_id)) { goto reloc_complete_exit; } + if(!stap_read_arg_u(probe->args.v[2], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &new_link_map_addr)) { goto reloc_complete_exit; } + + lnx_dmn_event_load_module(arena, events, thread, name_space_id, new_link_map_addr); + + is_reloc_completed = 1; + reloc_complete_exit:; + AssertAlways(is_reloc_completed); + } + else if(probe_type == LNX_DMN_ProbeType_UnmapComplete) + { + B32 is_unmap_completed = 0; + + LNX_DMN_Probe *probe = process->ctx->probes[LNX_DMN_ProbeType_UnmapComplete]; + U64 name_space_id = 0, rdebug_vaddr = 0; + if(!stap_read_arg_u(probe->args.v[0], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &name_space_id)) { goto unmap_complete_exit; } + if(!stap_read_arg_u(probe->args.v[1], process->ctx->arch, thread->reg_block, lnx_dmn_stap_memory_read, process, &rdebug_vaddr)) { goto unmap_complete_exit; } + + lnx_dmn_event_unload_module(arena, events, process, rdebug_vaddr); + + is_unmap_completed = 1; + unmap_complete_exit:; + AssertAlways(is_unmap_completed); + } + + if(probe_type == LNX_DMN_ProbeType_Null) + { + // rollback IP on user traps + if(hit_user_trap) + { + U64 ip = lnx_dmn_thread_read_ip(thread); + lnx_dmn_thread_write_ip(thread, ip - 1); + } + + DMN_Event *e = dmn_event_list_push(arena, events); + e->kind = DMN_EventKind_Breakpoint; + e->process = lnx_dmn_handle_from_process(process); + e->thread = lnx_dmn_handle_from_thread(thread); + e->instruction_pointer = lnx_dmn_thread_read_ip(thread); + } +} + +internal void +lnx_dmn_event_data_breakpoint(Arena *arena, DMN_EventList *events, pid_t tid) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(tid); + + B32 is_valid = 1; + U64 address = 0; + switch(thread->process->ctx->arch) + { + default:{}break; + case Arch_x64: + { + X64_RegBlock *regs_x64 = thread->reg_block; + if(regs_x64->dr6 & X64_DebugStatusFlag_B0) + { + address = regs_x64->dr0; + } + else if(regs_x64->dr6 & X64_DebugStatusFlag_B1) + { + address = regs_x64->dr1; + } + else if(regs_x64->dr6 & X64_DebugStatusFlag_B2) + { + address = regs_x64->dr2; + } + else if(regs_x64->dr6 & X64_DebugStatusFlag_B3) + { + address = regs_x64->dr3; + } + else + { + is_valid = 0; + } + }break; + } + + if(is_valid) + { + lnx_dmn_push_event_breakpoint(arena, events, thread, address); + } +} + +internal void +lnx_dmn_event_halt(Arena *arena, DMN_EventList *events) +{ + lnx_dmn_push_event_halt(arena, events); +} + +internal void +lnx_dmn_event_single_step(Arena *arena, DMN_EventList *events, pid_t tid) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(tid); + + // clear single step flag + lnx_dmn_set_single_step_flag(thread, 0); + + // push event + lnx_dmn_push_event_single_step(arena, events, thread); +} + +internal void +lnx_dmn_event_exception(Arena *arena, DMN_EventList *events, pid_t tid, U64 signo) +{ + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(tid); + + thread->pass_through_signal = 1; + thread->pass_through_signo = signo; + + lnx_dmn_push_event_exception(arena, events, thread, signo); +} + +internal LNX_DMN_Process * +lnx_dmn_event_attach(Arena *arena, DMN_EventList *events, pid_t pid) +{ + Temp scratch = scratch_begin(&arena, 1); + + // create process + LNX_DMN_Process *process = lnx_dmn_event_create_process(arena, events, pid, 0, LNX_DMN_CreateProcessFlag_DebugSubprocesses|LNX_DMN_CreateProcessFlag_Rebased); + + // extract threads from /proc/pid/task + { + String8 task_path = str8f(scratch.arena, "/proc/%d/task", pid); + DIR *task_dirp = opendir((char *)task_path.str); + if(task_dirp) + { + for(;;) + { + struct dirent *dirent = readdir(task_dirp); + if(dirent == 0) { break; } + + String8 tid_str = str8_cstring_capped(dirent->d_name, dirent->d_name + NAME_MAX); + if(str8_match(tid_str, str8_lit(".."), 0) || str8_match(tid_str, str8_lit("."), 0)) { continue; } + U64 tid_64 = u64_from_str8(tid_str, 10); + pid_t tid = (pid_t)tid_64; + AssertAlways(tid == tid_64); + + if(tid == pid) { continue; } // main thread was created during create process sequence + lnx_dmn_event_create_thread(arena, events, process, tid); + } + + LNX_RETRY_ON_EINTR(closedir(task_dirp)); + } + } + + // extract modules from r_debug + { + B32 is_64bit = process->ctx->dl_class == ELF_Class_64; + GNU_RDebugInfoList rdebug_list = gnu_parse_rdebug(scratch.arena, is_64bit, process->ctx->rdebug_vaddr, lnx_dmn_machine_op_mem_read, &process->fd); + U64 name_space_id = 0; + for EachNode(rdebug_n, GNU_RDebugInfoNode, rdebug_list.first) + { + lnx_dmn_event_load_module(arena, events, process->first_thread, name_space_id, rdebug_n->v.r_map); + name_space_id += 1; + } + } + + // handshake complete + lnx_dmn_push_event_handshake_complete(arena, events, process); + + scratch_end(scratch); + return process; +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) + +internal void +dmn_init(void) +{ + if(lnx_dmn_state == 0) + { + local_persist LNX_DMN_State state; + lnx_dmn_state = &state; + + lnx_dmn_state->arena = arena_alloc(); + lnx_dmn_state->access_mutex = mutex_alloc(); + lnx_dmn_state->entities_arena = arena_alloc(.reserve_size = GB(32), .commit_size = KB(64), .flags = ArenaFlag_NoChain); + lnx_dmn_state->entities_base = push_array(lnx_dmn_state->entities_arena, LNX_DMN_Entity, 0); + lnx_dmn_state->tid_ht = hash_table_init(lnx_dmn_state->arena, 0x2000); + lnx_dmn_state->pid_ht = hash_table_init(lnx_dmn_state->arena, 0x400); + lnx_dmn_state->halter_mutex = mutex_alloc(); + lnx_dmn_entity_alloc(LNX_DMN_EntityKind_Null); + + // find offsets of TLS index and TLS offset in the link_map struct + // + // TODO: assuming that target is using same libc version as debugger + { + LNX_DMN_DbDesc *tls_modid_desc = dlsym(RTLD_DEFAULT, "_thread_db_link_map_l_tls_modid"); + LNX_DMN_DbDesc *tls_offset_desc = dlsym(RTLD_DEFAULT, "_thread_db_link_map_l_tls_offset"); + if(tls_modid_desc && tls_offset_desc) + { + if(tls_modid_desc->bit_size <= 64 && tls_offset_desc->bit_size <= 64) + { + lnx_dmn_state->tls_modid_desc = *tls_modid_desc; + lnx_dmn_state->tls_offset_desc = *tls_offset_desc; + lnx_dmn_state->is_tls_detected = 1; + } + else { Assert(0 && "invalid TLS desc"); } + } + } + } +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Blocking Control Thread Operations (Implemented Per-OS) + +internal DMN_CtrlCtx * +dmn_ctrl_begin(void) +{ + DMN_CtrlCtx *ctx = (DMN_CtrlCtx *)1; + lnx_dmn_ctrl_thread = 1; + return ctx; +} + +internal void +dmn_ctrl_exclusive_access_begin(void) +{ + MutexScope(lnx_dmn_state->access_mutex) + { + lnx_dmn_state->access_run_state = 1; + } +} + +internal void +dmn_ctrl_exclusive_access_end(void) +{ + MutexScope(lnx_dmn_state->access_mutex) + { + lnx_dmn_state->access_run_state = 0; + } +} + +internal U32 +dmn_ctrl_launch(DMN_CtrlCtx *ctx, ProcessLaunchParams *params) +{ + Temp scratch = scratch_begin(0, 0); + + // setup target command line + U64 argc = params->cmd_line.node_count + 1; + char **argv = push_array(scratch.arena, char *, argc); + { + U64 idx = 0; + for EachNode(n, String8Node, params->cmd_line.first) + { + argv[idx] = (char *)str8_copy(scratch.arena, n->string).str; + idx += 1; + } + } + + // setup target environment + U64 envc = lnx_state.default_env_count + params->env.node_count + 1; + char **envp = push_array(scratch.arena, char *, envc); + { + // copy default environment + MemoryCopyTyped(envp, lnx_state.default_env, lnx_state.default_env_count); + + // copy user environment + U64 idx = lnx_state.default_env_count; + for EachNode(n, String8Node, params->env.first) + { + envp[idx] = (char *)str8_copy(scratch.arena, n->string).str; + idx += 1; + } + } + + // create zero-terminated work directory path + char *work_dir_path = (char *)str8_copy(scratch.arena, params->path).str; + + // fork process + pid_t pid = fork(); + + // child process + if(pid == 0) + { + // wait for seize + if(LNX_RETRY_ON_EINTR(raise(SIGSTOP)) < 0) { goto child_exit; } + + // change work directory to tracee + if(LNX_RETRY_ON_EINTR(chdir(work_dir_path)) < 0) { goto child_exit; } + + // replace process with target program + if(LNX_RETRY_ON_EINTR(execve(argv[0], argv, envp)) < 0) { goto child_exit; } + + child_exit:; + exit(0); + } + // parent process + else if(pid > 0) + { + // try to seize child process + if(lnx_dmn_ptrace_seize(pid) >= 0) + { + // tracee was successfully seized, create process + lnx_dmn_process_alloc(pid, LNX_DMN_ProcessState_Launch, 0, params->debug_subprocesses, 0); + } + else + { + Assert(0 && "failed to ptrace child process"); + LNX_RETRY_ON_EINTR(kill(SIGKILL, pid)); + LNX_RETRY_ON_EINTR(waitpid(pid, 0, WNOHANG)); + pid = 0; + } + } + + scratch_end(scratch); + return pid; +} + +internal B32 +dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid) +{ + B32 is_attached = 0; + if(lnx_dmn_ptrace_seize(pid) >= 0) + { + if(LNX_RETRY_ON_EINTR(kill(pid, SIGSTOP)) >= 0) + { + lnx_dmn_process_alloc(pid, LNX_DMN_ProcessState_Attach, 0, 1, 0); + is_attached = 1; + } + else + { + LNX_RETRY_ON_EINTR(ptrace(PTRACE_DETACH, pid, 0, 0)); + } + } + return is_attached; +} + +internal B32 +dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process_handle, U32 exit_code) +{ + B32 result = 0; + mutex_take(lnx_dmn_state->halter_mutex); + LNX_DMN_Process *process = lnx_dmn_process_from_handle(process_handle); + if(process) + { + result = LNX_RETRY_ON_EINTR(kill(process->pid, SIGKILL)) >= 0; + } + mutex_drop(lnx_dmn_state->halter_mutex); + return result; +} + +internal B32 +dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process_handle) +{ + B32 result = 0; + mutex_take(lnx_dmn_state->halter_mutex); + LNX_DMN_Process *process = lnx_dmn_process_from_handle(process_handle); + if(process) + { + result = LNX_RETRY_ON_EINTR(ptrace(PTRACE_DETACH, process->pid, 0, 0)) >= 0; + } + mutex_drop(lnx_dmn_state->halter_mutex); + return result; +} + +internal DMN_EventList +dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) +{ + Temp scratch = scratch_begin(&arena, 1); + DMN_EventList events = {0}; + + mutex_take(lnx_dmn_state->halter_mutex); + + // wait for signals from the running threads + if(lnx_dmn_state->process_count > 0) + { + // write traps to memory + LNX_DMN_ActiveTrap *active_trap_first = 0, *active_trap_last = 0; + { + HashTable *process_ht = hash_table_init(scratch.arena, lnx_dmn_state->process_count); + for EachNode(n, DMN_TrapChunkNode, ctrls->traps.first) + { + for EachIndex(n_idx, n->count) + { + // skip hardware breakpoints + DMN_Trap *trap = n->v+n_idx; + if(trap->flags) { continue; } + + HashTable *active_trap_ht = hash_table_search_u64_raw(process_ht, trap->process.u64[0]); + if(active_trap_ht == 0) + { + active_trap_ht = hash_table_init(scratch.arena, ctrls->traps.trap_count); + hash_table_push_u64_raw(scratch.arena, process_ht, trap->process.u64[0], active_trap_ht); + } + + // TODO: ctrl sends down duplicate traps + LNX_DMN_ActiveTrap *is_set = hash_table_search_u64_raw(active_trap_ht, trap->vaddr); + if(is_set) { continue; } + + // TODO: ctrl sends down traps for exited process + LNX_DMN_Process *process = lnx_dmn_process_from_handle(trap->process); + if(!process) { continue; } + + // trap instruction + LNX_DMN_ActiveTrap *active_trap = lnx_dmn_set_trap(scratch.arena, trap); + + // add trap to the active list + SLLQueuePush(active_trap_first, active_trap_last, active_trap); + + // add (address -> trap) + hash_table_push_u64_raw(scratch.arena, active_trap_ht, trap->vaddr, active_trap); + } + } + } + + // enable single stepping + if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) + { + LNX_DMN_Thread *single_step_thread = lnx_dmn_thread_from_handle(ctrls->single_step_thread); + if(single_step_thread) + { + lnx_dmn_set_single_step_flag(single_step_thread, 1); + } + else + { + Assert(0 && "invalid single_step_thread handle"); + } + } + + // schedule threads to run + LNX_DMN_ThreadPtrList running_threads = {0}; + { + for EachNode(process, LNX_DMN_Process, lnx_dmn_state->first_process) + { + //- rjf: determine if this process is frozen + B32 process_is_frozen = 0; + if(ctrls->run_entities_are_processes) + { + for EachIndex(idx, ctrls->run_entity_count) + { + if(dmn_handle_match(ctrls->run_entities[idx], lnx_dmn_handle_from_process(process))) + { + process_is_frozen = 1; + break; + } + } + } + + for EachNode(thread, LNX_DMN_Thread, process->first_thread) + { + //- rjf: determine if this thread is frozen + B32 is_frozen = 0; + + // rjf: not single-stepping? determine based on run controls freezing info + if(dmn_handle_match(dmn_handle_zero(), ctrls->single_step_thread)) + { + if(ctrls->run_entities_are_processes) + { + is_frozen = process_is_frozen; + } + else + { + for EachIndex(idx, ctrls->run_entity_count) + { + if(dmn_handle_match(ctrls->run_entities[idx], lnx_dmn_handle_from_thread(thread))) + { + is_frozen = 1; + break; + } + } + } + if(ctrls->run_entities_are_unfrozen) + { + is_frozen ^= 1; + } + } + // rjf: single-step? freeze if not the single-step thread. + else + { + is_frozen = !dmn_handle_match(lnx_dmn_handle_from_thread(thread), ctrls->single_step_thread); + } + + // resume thread + if(!is_frozen) + { + AssertAlways(thread->state == LNX_DMN_ThreadState_Stopped); + + // write registers + if(thread->is_reg_block_dirty) + { + thread->is_reg_block_dirty = !lnx_dmn_thread_write_reg_block(thread); + } + + // pass signal to the child process + void *sig_code = 0; + if(thread->pass_through_signal) + { + thread->pass_through_signal = 0; + if(!ctrls->ignore_previous_exception) + { + sig_code = (void *)(uintptr_t)thread->pass_through_signo; + } + } + + // resume thread + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_CONT, thread->tid, 0, sig_code)) >= 0) + { + thread->state = LNX_DMN_ThreadState_Running; + thread->is_reg_block_dirty = 1; + lnx_dmn_thread_ptr_list_push(scratch.arena, &running_threads, thread); + } + else + { + if(errno == ESRCH) + { + // Race note: In multithreaded programs, ptrace(PTRACE_CONT) may fail if a running thread calls + // exit_group while we are resuming threads. The kernel begins tearing down the thread group so + // the target might not be in a ptrace-soppped state anymore. Handle this by ignoring, on waitpid + // we will get chance to report exit event. + // + // TODO: unfortunatley, kernel also sends us ESRCH whenever ptrace(PTRACE_CONT) is sent to a tracee + // that is not in a ptace-stop, so how can we tell these errors apart? + } + else + { + InvalidPath; + } + } + } + } + } + } + + // hash running threads tids + HashTable *running_threads_ht = hash_table_init(scratch.arena, running_threads.count * 2); + for EachNode(n, LNX_DMN_ThreadPtrNode, running_threads.first) + { + hash_table_push_u64_raw(scratch.arena, running_threads_ht, n->v->tid, n); + } + + B32 is_halt_done = 0; + LNX_DMN_ThreadPtrList stopped_threads = {0}; + do + { + // wait for a signal + int status = 0; + pid_t wait_id = 0; + { + mutex_drop(lnx_dmn_state->halter_mutex); + for(;;) + { + wait_id = LNX_RETRY_ON_EINTR(waitpid(-1, &status, __WALL|__WNOTHREAD)); + if(wait_id == -1) { InvalidPath; } // TODO: graceful exit + break; + } + mutex_take(lnx_dmn_state->halter_mutex); + } + + // unpack status + int wifexited = WIFEXITED(status); + int wifsignaled = WIFSIGNALED(status); + int wifstopped = WIFSTOPPED(status); + int wstopsig = WSTOPSIG(status); + int event_code = (status >> 16); + + // intercept initing processes + { + LNX_DMN_Process *process = lnx_dmn_process_from_pid(wait_id); + + if(process && process->state != LNX_DMN_ProcessState_Normal) + { + switch(process->state) + { + case LNX_DMN_ProcessState_Null: + case LNX_DMN_ProcessState_Normal: + { + InvalidPath; + } break; + case LNX_DMN_ProcessState_Launch: + { + if(wstopsig == SIGSTOP) + { + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_CONT, process->pid, 0, 0)) >= 0) + { + process->state = LNX_DMN_ProcessState_WaitForExec; + goto wait_for_signal; + } + else { Assert(0 && "failed to resume tracee"); } + } + // else { Assert(0 && "unexpected signal"); } + } break; + case LNX_DMN_ProcessState_WaitForExec: + { + if(wstopsig == SIGTRAP && event_code == PTRACE_EVENT_EXEC) + { + LNX_DMN_CreateProcessFlags create_flags = process->debug_subprocesses ? LNX_DMN_CreateProcessFlag_DebugSubprocesses : 0; + lnx_dmn_process_release(process); + lnx_dmn_event_create_process(arena, &events, wait_id, 0, create_flags); + goto wait_for_signal; + } + //else { Assert(0 && "unexpected signal"); } + } break; + case LNX_DMN_ProcessState_ExecFailedDoExit: + { + if(wifexited) + { + lnx_dmn_process_release(process); + goto wait_for_signal; + } + else { Assert(0 && "unexpected signal"); } + } break; + case LNX_DMN_ProcessState_Attach: + { + if(wstopsig == SIGSTOP) + { + LNX_DMN_CreateProcessFlags create_flags = process->debug_subprocesses ? LNX_DMN_CreateProcessFlag_DebugSubprocesses : 0; + lnx_dmn_process_release(process); + lnx_dmn_event_create_process(arena, &events, wait_id, 0, create_flags); + goto wait_for_signal; + } + else { Assert(0 && "unexpected signal"); } + } break; + } + + // shutdown process + { + if(LNX_RETRY_ON_EINTR(kill(wait_id, SIGKILL)) >= 0) + { + process->state = LNX_DMN_ProcessState_ExecFailedDoExit; + } + else + { + //Assert(0 && "failed to send kill signal to the tracee"); + lnx_dmn_process_release(process); + } + } + + wait_for_signal:; + continue; + } + } + + if(wifstopped || wifsignaled || wifexited) + { + LNX_DMN_ThreadPtrNode *thread_n = hash_table_search_u64_raw(running_threads_ht, wait_id); + if(thread_n) + { + LNX_DMN_Thread *thread = thread_n->v; + AssertAlways(thread->state == LNX_DMN_ThreadState_Running); + + // remove mapping + hash_table_purge_u64(running_threads_ht, thread->tid); + + // move thread to the stopped list + lnx_dmn_thread_ptr_list_remove(&running_threads, thread_n); + lnx_dmn_thread_ptr_list_push_node(&stopped_threads, thread_n); + + // update thread state + if(wifstopped && !wifsignaled && !wifexited) + { + thread->state = LNX_DMN_ThreadState_Stopped; + } + else if(!wifstopped && (wifsignaled || wifexited)) + { + thread->state = LNX_DMN_ThreadState_Exited; + } + else { InvalidPath; } + + // stop all other threads + if(stopped_threads.count == 1) + { + for EachNode(n, LNX_DMN_ThreadPtrNode, running_threads.first) + { + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_INTERRUPT, n->v->tid, 0, 0)) < 0) { Assert(0 && "failed to interrupt process"); } + } + } + } + } + + // normal child exit via _exit or exit() + if(wifexited) + { + lnx_dmn_event_exit_thread(arena, &events, wait_id, WEXITSTATUS(status)); + } + + // exit because child did not handle a signal + else if(wifsignaled) + { + lnx_dmn_event_exit_thread(arena, &events, wait_id, WTERMSIG(status)); + } + // thread or group stop + else if(wifstopped) + { + // read thread registers + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(wait_id); + if(thread && thread->state != LNX_DMN_ThreadState_PendingCreation) + { + thread->is_reg_block_dirty = !lnx_dmn_thread_read_reg_block(thread); + Assert(!thread->is_reg_block_dirty); + } + } + + if(wstopsig == SIGTRAP) + { + switch(event_code) + { + case 0: + { + // translate signal code to DEMON event + siginfo_t siginfo = {0}; + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETSIGINFO, wait_id, 0, &siginfo)) >= 0) + { + switch(siginfo.si_code) + { + case SI_KERNEL: { lnx_dmn_event_breakpoint(arena, &events, active_trap_first, wait_id); } break; + case TRAP_BRKPT: { lnx_dmn_event_breakpoint(arena, &events, active_trap_first, wait_id); } break; + case TRAP_TRACE: { lnx_dmn_event_single_step(arena, &events, wait_id); } break; + case TRAP_HWBKPT: { lnx_dmn_event_data_breakpoint(arena, &events, wait_id); } break; + case TRAP_BRANCH: { NotImplemented; }break; + case TRAP_UNK: { NotImplemented; }break; + default: { InvalidPath; } break; + } + } else { Assert(0 && "failed to get signal info"); } + }break; + case PTRACE_EVENT_FORK: + { + NotImplemented; + }break; + case PTRACE_EVENT_VFORK: + { + NotImplemented; + }break; + case PTRACE_EVENT_VFORK_DONE: + { + NotImplemented; + }break; + case PTRACE_EVENT_CLONE: + { + // kernel stopped the parent just before scheduling the child to + // give us a chance to prepare to trace it; next event for the child + // will be a PTRACE_EVENT_STOP + + pid_t new_tid; + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETEVENTMSG, wait_id, 0, &new_tid)) >= 0) + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(wait_id); + + // create a new partially inited thread + lnx_dmn_thread_alloc(thread->process, LNX_DMN_ThreadState_PendingCreation, new_tid); + } + else { Assert(0 && "failed to get new tid"); } + }break; + case PTRACE_EVENT_EXEC: + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(wait_id); + LNX_DMN_Process *process = thread->process; + if(process->debug_subprocesses) + { + lnx_dmn_event_exit_thread(arena, &events, wait_id, 0); + lnx_dmn_event_create_process(arena, &events, wait_id, 0, LNX_DMN_CreateProcessFlag_DebugSubprocesses); + } + else + { + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_DETACH, wait_id, 0, 0)) >= 0) + { + lnx_dmn_event_exit_thread(arena, &events, wait_id, 0); + } + else { Assert(0 && "failed to detach"); } + } + }break; + case PTRACE_EVENT_EXIT: + { + AssertAlways(0 && "exit tracing is disabled, this event should not be delivered"); + }break; + case PTRACE_EVENT_SECCOMP: + { + NotImplemented; + }break; + case PTRACE_EVENT_STOP: + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_pid(wait_id); + if(thread->state == LNX_DMN_ThreadState_PendingCreation) + { + LNX_DMN_Process *process = thread->process; + lnx_dmn_thread_release(thread); + thread = lnx_dmn_event_create_thread(arena, &events, process, wait_id); + } + else + { + AssertAlways(thread->state == LNX_DMN_ThreadState_Stopped); + } + }break; + default: { Assert(0 && "unexpected ptrace code"); } break; + } + } + else if(wstopsig == SIGSTOP) + { + siginfo_t siginfo = {0}; + if(LNX_RETRY_ON_EINTR(ptrace(PTRACE_GETSIGINFO, wait_id, 0, &siginfo)) >= 0) + { + // finish halting if this is our SIGSTOP + if(siginfo.si_pid == lnx_dmn_state->halter_tid) + { + is_halt_done = 1; + } + else + { + // TODO: handle SIGSTOP + } + } + } + else + { + lnx_dmn_event_exception(arena, &events, wait_id, wstopsig); + } + } + else { Assert(0 && "unexpected stop code"); } + } while(running_threads.count > 0 || lnx_dmn_state->process_pending_creation > 0 || lnx_dmn_state->threads_pending_creation > 0); + + // finalize halter state + if(is_halt_done) + { + // push event + lnx_dmn_event_halt(arena, &events); + + // reset state + lnx_dmn_state->halter_tid = 0; + lnx_dmn_state->halt_code = 0; + lnx_dmn_state->halt_user_data = 0; + lnx_dmn_state->is_halting = 0; + } + + // restore original instruction bytes + for EachNode(active_trap, LNX_DMN_ActiveTrap, active_trap_first) + { + // skip process that exited during the wait + LNX_DMN_Process *process = lnx_dmn_process_from_handle(active_trap->trap->process); + if(!process) { continue; } + + if(!dmn_process_write(active_trap->trap->process, r1u64(active_trap->trap->vaddr, active_trap->trap->vaddr + active_trap->swap_bytes.size), active_trap->swap_bytes.str) && + active_trap->good) + { + // TODO(rjf): log an error here? - we wrote the trap successfully, but we did not remove it successfully, + // implying a change in address mapping. this is maybe not even a bug, since the address is simply now + // unmapped. + } + } + } + + if(events.count == 0 && lnx_dmn_state->process_count == 0) + { + lnx_dmn_push_event_not_attached(arena, &events); + } + + mutex_drop(lnx_dmn_state->halter_mutex); + scratch_end(scratch); + return events; +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Halting (Implemented Per-OS) + +internal void +dmn_halt(U64 code, U64 user_data) +{ + mutex_take(lnx_dmn_state->halter_mutex); + if(lnx_dmn_state->process_count) + { + lnx_dmn_state->halter_tid = gettid(); + lnx_dmn_state->halt_code = code; + lnx_dmn_state->halt_user_data = user_data; + for EachNode(process, LNX_DMN_Process, lnx_dmn_state->first_process) + { + if(LNX_RETRY_ON_EINTR(kill(process->pid, SIGSTOP)) < 0) { Assert(0 && "failed to send SIGSTOP"); } + } + } + mutex_drop(lnx_dmn_state->halter_mutex); +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) + +//- rjf: non-blocking-control-thread access barriers + +internal B32 +dmn_access_open(void) +{ + B32 result = 0; + if(lnx_dmn_ctrl_thread) + { + result = 1; + } + else + { + mutex_take(lnx_dmn_state->access_mutex); + result = !lnx_dmn_state->access_run_state; + } + return result; +} + +internal void +dmn_access_close(void) +{ + if(!lnx_dmn_ctrl_thread) + { + mutex_drop(lnx_dmn_state->access_mutex); + } +} + +//- rjf: processes + +internal U64 +dmn_process_memory_reserve(DMN_Handle process, U64 vaddr, U64 size) +{ + return 0; +} + +internal void +dmn_process_memory_commit(DMN_Handle process, U64 vaddr, U64 size) +{ +} + +internal void +dmn_process_memory_decommit(DMN_Handle process, U64 vaddr, U64 size) +{ +} + +internal void +dmn_process_memory_release(DMN_Handle process, U64 vaddr, U64 size) +{ +} + +internal void +dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, AccessFlags flags) +{ +} + +internal U64 +dmn_process_read(DMN_Handle process_handle, Rng1U64 range, void *dst) +{ + LNX_DMN_Process *process = lnx_dmn_process_from_handle(process_handle); + U64 result = 0; + if(process) + { + result = lnx_dmn_read(process->fd, range, dst); + } + return result; +} + +internal B32 +dmn_process_write(DMN_Handle process_handle, Rng1U64 range, void *src) +{ + LNX_DMN_Process *process = lnx_dmn_process_from_handle(process_handle); + B32 result = 0; + if(process) + { + result = lnx_dmn_write(process->fd, range, src); + } + return result; +} + +//- rjf: threads + +internal B32 +dmn_thread_read_reg_block(DMN_Handle thread_handle, void *reg_block) +{ + B32 result = 0; + DMN_AccessScope + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_handle(thread_handle); + if(thread) + { + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + U64 reg_block_size = arch_info->reg_block_size; + MemoryCopy(reg_block, thread->reg_block, reg_block_size); + } + result = 1; + } + return result; +} + +internal B32 +dmn_thread_write_reg_block(DMN_Handle thread_handle, void *reg_block) +{ + B32 result = 0; + DMN_AccessScope + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_handle(thread_handle); + if(thread) + { + ARCH_Info *arch_info = arch_info_from_arch(thread->process->ctx->arch); + U64 reg_block_size = arch_info->reg_block_size; + MemoryCopy(thread->reg_block, reg_block, reg_block_size); + thread->is_reg_block_dirty = 1; + result = 1; + } + } + return result; +} + +internal B32 +dmn_thread_get_module_tls_vaddr(DMN_Handle thread_handle, DMN_Handle module_handle, U64 *vaddr_out) +{ + B32 result = 0; + DMN_AccessScope + { + LNX_DMN_Thread *thread = lnx_dmn_thread_from_handle(thread_handle); + if(thread != 0) + { + LNX_DMN_Process *process = thread->process; + LNX_DMN_Module *module = lnx_dmn_module_from_handle(module_handle); + if(process != 0 && module != 0) + { + Arch arch = thread->process->ctx->arch; + U64 addr_size = byte_size_from_arch(arch); + U64 dtv_base_vaddr = thread->dtv_base_vaddr; + U64 dtv_entry_size = 2 * addr_size; + U64 module_dtv_ptr_vaddr = dtv_base_vaddr + module->tls_index * dtv_entry_size; + U64 module_dtv_vaddr = 0; + if(lnx_dmn_read(process->fd, r1u64(module_dtv_ptr_vaddr, module_dtv_ptr_vaddr+addr_size), &module_dtv_vaddr) == addr_size) + { + U64 unallocated_dtv_vaddr_marker = (addr_size == 4 ? max_U32 : max_U64); + if(module_dtv_vaddr != unallocated_dtv_vaddr_marker) + { + vaddr_out[0] = module_dtv_vaddr + module->tls_offset; + result = 1; + } + } + } + } + } + return result; +} + +//- rjf: system process listing + +internal void +dmn_process_iter_begin(DMN_ProcessIter *iter) +{ + DIR *dir = opendir("/proc"); + MemoryZeroStruct(iter); + iter->v[0] = IntFromPtr(dir); +} + +internal B32 +dmn_process_iter_next(Arena *arena, DMN_ProcessIter *iter, DMN_ProcessInfo *info_out) +{ + // rjf: scan for the next process ID in the directory + B32 got_pid = 0; + String8 pid_string = {0}; + { + DIR *dir = (DIR*)PtrFromInt(iter->v[0]); + if(dir != 0 && iter->v[1] == 0) + { + for(;;) + { + // rjf: get next entry + struct dirent *d = readdir(dir); + if(d == 0) + { + break; + } + + // rjf: check file name is integer + String8 file_name = str8_cstring((char*)d->d_name); + B32 is_integer = str8_is_integer(file_name, 10); + + // rjf: break on integers (which represent processes) + if(is_integer) + { + got_pid = 1; + pid_string = file_name; + break; + } + } + } + } + + // rjf: if we found a process id, map id => info + B32 result = 0; + if(got_pid) + { + pid_t pid = u64_from_str8(pid_string, 10); + String8 name = lnx_dmn_exe_path_from_pid(arena, pid); + if(name.size == 0) + { + name = str8_lit("(unknown process)"); + } + info_out->name = name; + info_out->pid = pid; + result = 1; + } + + return result; +} + +internal void +dmn_process_iter_end(DMN_ProcessIter *iter) +{ + DIR *dir = (DIR*)PtrFromInt(iter->v[0]); + if(dir != 0) + { + closedir(dir); + } + MemoryZeroStruct(iter); +} diff --git a/src/linux/demon/linux_demon.h b/src/linux/demon/linux_demon.h new file mode 100644 index 00000000..64a40edc --- /dev/null +++ b/src/linux/demon/linux_demon.h @@ -0,0 +1,522 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef LINUX_DEMON_H +#define LINUX_DEMON_H + +//////////////////////////////// +//~ rjf: Register Layouts +// +// These are defined in , but only for one architecture at a time + +typedef struct LNX_DMN_GprsX64 LNX_DMN_GprsX64; +struct LNX_DMN_GprsX64 +{ + U64 r15; + U64 r14; + U64 r13; + U64 r12; + U64 rbp; + U64 rbx; + U64 r11; + U64 r10; + U64 r9; + U64 r8; + U64 rax; + U64 rcx; + U64 rdx; + U64 rsi; + U64 rdi; + U64 orig_rax; + U64 rip; + U64 cs; + U64 rflags; + U64 rsp; + U64 ss; + U64 fsbase; + U64 gsbase; + U64 ds; + U64 es; + U64 fs; + U64 gs; +}; + +typedef struct LNX_DMN_UserX64 LNX_DMN_UserX64; +struct LNX_DMN_UserX64 +{ + LNX_DMN_GprsX64 regs; + S32 u_fpvalid; + U32 _pad0; + X64_FXSave i387; + U64 u_tsize; + U64 u_dsize; + U64 u_ssize; + U64 start_code; + U64 start_stack; + U64 signal; + U32 reserved; + U32 _pad1; + U64 u_ar0; + U64 u_fpstate; + U64 magic; + U8 u_comm[32]; + U64 u_debugreg[8]; +}; +StaticAssert(sizeof(LNX_DMN_UserX64) == 912, lnx_user_x64_size_check); + +//////////////////////////////// +//~ TLS + +typedef struct LNX_DMN_DbDesc +{ + U32 bit_size; + U32 count; + U32 offset; +} LNX_DMN_DbDesc; + +//////////////////////////////// +//~ SDT Probes + +typedef struct LNX_DMN_Probe +{ + String8 provider; + String8 name; + String8 args_string; + STAP_ArgArray args; + U64 pc; + U64 semaphore; +} LNX_DMN_Probe; + +typedef struct LNX_DMN_ProbeNode +{ + LNX_DMN_Probe v; + struct LNX_DMN_ProbeNode *next; +} LNX_DMN_ProbeNode; + +typedef struct LNX_DMN_ProbeList +{ + U64 count; + LNX_DMN_ProbeNode *first; + LNX_DMN_ProbeNode *last; +} LNX_DMN_ProbeList; + +#define LNX_DMN_Probe_XList \ +X(InitStart, 2, "init_start") \ +X(InitComplete, 2, "init_complete") \ +X(RelocStart, 2, "reloc_start") \ +X(RelocComplete, 3, "reloc_complete") \ +X(MapStart, 2, "map_start") \ +X(MapComplete, 3, "map_complete") \ +X(UnmapStart, 2, "unmap_start") \ +X(UnmapComplete, 2, "unmap_complete") \ +X(LongJmp, 3, "longjmp") \ +X(LongJmpTarget, 3, "longjmp_target") \ +X(SetJmp, 3, "setjmp") + +typedef enum +{ + LNX_DMN_ProbeType_Null, +#define X(_N,...) LNX_DMN_ProbeType_##_N, + LNX_DMN_Probe_XList +#undef X + LNX_DMN_ProbeType_Count, +} LNX_DMN_ProbeType; + +//////////////////////////////// +//~ Process Info + +typedef struct LNX_DMN_Auxv +{ + U64 base; + U64 phnum; + U64 phent; + U64 phdr; + U64 execfn; + U64 pagesz; +} LNX_DMN_Auxv; + +typedef struct LNX_DMN_DynamicInfo +{ + U64 hash_vaddr; + U64 gnu_hash_vaddr; + U64 strtab_vaddr; + U64 strtab_size; + U64 symtab_vaddr; + U64 symtab_entry_size; +} LNX_DMN_DynamicInfo; + +//////////////////////////////// +//~ Entities + +typedef enum LNX_DMN_EntityKind +{ + LNX_DMN_EntityKind_Null, + LNX_DMN_EntityKind_Process, + LNX_DMN_EntityKind_ProcessCtx, + LNX_DMN_EntityKind_Thread, + LNX_DMN_EntityKind_Module, +} LNX_DMN_EntityKind; + +typedef enum LNX_DMN_ThreadState +{ + LNX_DMN_ThreadState_Null, + LNX_DMN_ThreadState_Running, + LNX_DMN_ThreadState_Stopped, + LNX_DMN_ThreadState_Exited, + LNX_DMN_ThreadState_PendingCreation, +} LNX_DMN_ThreadState; + +typedef struct LNX_DMN_Thread +{ + pid_t tid; + LNX_DMN_ThreadState state; + struct LNX_DMN_Process *process; + void *reg_block; + B32 is_reg_block_dirty; + B32 pass_through_signal; + U64 pass_through_signo; + U64 orig_rax; + U64 dtv_base_vaddr; + + struct LNX_DMN_Thread *next; + struct LNX_DMN_Thread *prev; +} LNX_DMN_Thread; + +typedef struct LNX_DMN_ThreadPtrNode +{ + LNX_DMN_Thread *v; + struct LNX_DMN_ThreadPtrNode *next; + struct LNX_DMN_ThreadPtrNode *prev; +} LNX_DMN_ThreadPtrNode; + +typedef struct LNX_DMN_ThreadPtrList +{ + U64 count; + LNX_DMN_ThreadPtrNode *first; + LNX_DMN_ThreadPtrNode *last; +} LNX_DMN_ThreadPtrList; + +typedef struct LNX_DMN_Module +{ + U64 name_vaddr; + U64 base_vaddr; + U64 name_space_id; + U64 size; + U64 phvaddr; + U64 phentsize; + U64 phcount; + U64 tls_index; + U64 tls_offset; + B8 is_live; + B8 is_main; + + struct LNX_DMN_Module *next; + struct LNX_DMN_Module *prev; +} LNX_DMN_Module; + +typedef struct LNX_DMN_ModulePtrNode +{ + LNX_DMN_Module *v; + struct LNX_DMN_ModulePtrNode *next; +} LNX_DMN_ModulePtrNode; + +typedef struct LNX_DMN_ModulePtrList +{ + U64 count; + LNX_DMN_ModulePtrNode *first; + LNX_DMN_ModulePtrNode *last; +} LNX_DMN_ModulePtrList; + +typedef enum +{ + LNX_DMN_ProcessState_Null, + LNX_DMN_ProcessState_Launch, + LNX_DMN_ProcessState_Attach, + LNX_DMN_ProcessState_WaitForExec, + LNX_DMN_ProcessState_ExecFailedDoExit, + LNX_DMN_ProcessState_Normal, +} LNX_DMN_ProcessState; + +typedef enum +{ + LNX_DMN_CreateProcessFlag_DebugSubprocesses = (1 << 0), + LNX_DMN_CreateProcessFlag_Rebased = (1 << 1), + LNX_DMN_CreateProcessFlag_Cow = (1 << 2), + LNX_DMN_CreateProcessFlag_ClonedMemory = (1 << 3), +} LNX_DMN_CreateProcessFlags; + +typedef struct LNX_DMN_Process +{ + pid_t pid; + int fd; + LNX_DMN_ProcessState state; + B32 debug_subprocesses; + B32 is_cow; + B32 vfork_with_spoof; + U64 thread_count; + LNX_DMN_Thread *first_thread; + LNX_DMN_Thread *last_thread; + U64 main_thread_exit_code; + struct LNX_DMN_Process *parent_process; + struct LNX_DMN_ProcessCtx *ctx; + + + struct LNX_DMN_Process *next; + struct LNX_DMN_Process *prev; +} LNX_DMN_Process; + +typedef struct LNX_DMN_ProcessPtrNode +{ + LNX_DMN_Process *v; + struct LNX_DMN_ProcessPtrNode *next; +} LNX_DMN_ProcessPtrNode; + +typedef struct LNX_DMN_ProcessPtrList +{ + U64 count; + LNX_DMN_ProcessPtrNode *first; + LNX_DMN_ProcessPtrNode *last; +} LNX_DMN_ProcessPtrList; + +typedef struct LNX_DMN_ActiveTrap LNX_DMN_ActiveTrap; +struct LNX_DMN_ActiveTrap +{ + LNX_DMN_ActiveTrap *next; + B32 good; + DMN_Trap *trap; + String8 swap_bytes; +}; + +typedef struct LNX_DMN_ProcessCtx +{ + Arena *arena; + Arch arch; + U64 rdebug_vaddr; + ELF_Class dl_class; + HashTable *loaded_modules_ht; + LNX_DMN_Probe **probes; + LNX_DMN_ActiveTrap *first_probe_trap; + LNX_DMN_ActiveTrap *last_probe_trap; + LNX_DMN_Module *first_module; + LNX_DMN_Module *last_module; + U64 module_count; + U64 ref_count; + + String8List free_reg_blocks; + String8List free_reg_block_nodes; + + // x64 + U64 xcr0; + U64 xsave_size; + X64_XSaveLayout xsave_layout; +} LNX_DMN_ProcessCtx; + +typedef struct LNX_DMN_Entity +{ + union + { + LNX_DMN_Process process; + LNX_DMN_ProcessCtx process_ctx; + LNX_DMN_Thread thread; + LNX_DMN_Module module; + struct + { + struct LNX_DMN_Entity *next; + }; + }; + U32 gen; + LNX_DMN_EntityKind kind; +} LNX_DMN_Entity; + +typedef struct LNX_DMN_EntityNode +{ + LNX_DMN_Entity *v; + struct LNX_DMN_EntityNode *next; +} LNX_DMN_EntityNode; + +typedef struct LNX_DMN_EntityList +{ + U64 count; + LNX_DMN_EntityNode *first; + LNX_DMN_EntityNode *last; +} LNX_DMN_EntityList; + +//////////////////////////////// +//~ Global State + +typedef struct LNX_DMN_State +{ + Arena *arena; + + // rjf: access locking mechanism + Mutex access_mutex; + B32 access_run_state; + + // rjf: entity storage + Arena *entities_arena; + LNX_DMN_Entity *entities_base; + LNX_DMN_Entity *free_entity; + U64 entities_count; + + HashTable *tid_ht; // thread id -> thread entity + HashTable *pid_ht; // process id -> process entity + + // process tracking + U64 process_count; + LNX_DMN_Process *first_process; + LNX_DMN_Process *last_process; + + // process/thread creation tracking + U64 process_pending_creation; + U64 threads_pending_creation; + + // halter + Mutex halter_mutex; + pid_t halter_tid; + U64 halt_code; + U64 halt_user_data; + B32 is_halting; + + // TLS + B32 is_tls_detected; + LNX_DMN_DbDesc tls_modid_desc; + LNX_DMN_DbDesc tls_offset_desc; +} LNX_DMN_State; + +//////////////////////////////// +//~ Globals + +global B32 lnx_dmn_ctrl_thread; +global LNX_DMN_State *lnx_dmn_state; + +//////////////////////////////// +//~ Memory R/W + +internal U64 lnx_dmn_read(int memory_fd, Rng1U64 range, void *dst); +internal B32 lnx_dmn_write(int memory_fd, Rng1U64 range, void *src); +internal String8 lnx_dmn_read_string_capped(Arena *arena, int memory_fd, U64 base_vaddr, U64 cap_size); +internal String8 lnx_dmn_read_string(Arena *arena, int memory_fd, U64 base_vaddr); +#define lnx_dmn_read_struct(fd, vaddr, ptr) lnx_dmn_read((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) +#define lnx_dmn_write_struct(fd, vaddr, ptr) lnx_dmn_write((fd), r1u64((vaddr), (vaddr)+sizeof(*(ptr))), (ptr)) + +//////////////////////////////// +//~ rjf: Trap Setting + +internal LNX_DMN_ActiveTrap *lnx_dmn_set_trap(Arena *arena, DMN_Trap *trap); + +//////////////////////////////// +//~ ELF/GNU info + +internal Rng1U64 lnx_dmn_compute_image_vrange(int memory_fd, ELF_Class elf_class, U64 rebase, U64 e_phaddr, U64 e_phentsize, U64 e_phnum); +internal LNX_DMN_DynamicInfo lnx_dmn_dynamic_info_from_memory(int memory_fd, ELF_Class elf_Class, U64 rebase, U64 dynamic_vaddr); +internal U64 lnx_dmn_rdebug_vaddr_from_memory(int memory_fd, U64 loader_vaddr, B32 is_rebased); + +//////////////////////////////// +//~ Process Info + +internal String8 lnx_dmn_exe_path_from_pid(Arena *arena, pid_t pid); +internal String8 lnx_dmn_dl_path_from_pid(Arena *arena, pid_t pid, U64 auxv_base); +internal ELF_Hdr64 lnx_dmn_ehdr_from_pid(pid_t pid); +internal LNX_DMN_Auxv lnx_dmn_auxv_from_pid(pid_t pid, ELF_Class elf_class); +internal LNX_DMN_Thread * lnx_dmn_thread_from_pid(pid_t pid); +internal LNX_DMN_Process * lnx_dmn_process_from_pid(pid_t pid); + +//////////////////////////////// +//~ rjf: Module Info Parsing + +internal DMN_ModuleInfo *lnx_dmn_module_info_from_process_module(Arena *arena, pid_t pid, int memory_fd, U64 base_vaddr, U64 link_map_vaddr, B32 is_main); + +//////////////////////////////// +//~ Entity + +// alloc +internal LNX_DMN_Entity * lnx_dmn_entity_alloc(LNX_DMN_EntityKind kind); +internal LNX_DMN_Process * lnx_dmn_process_alloc(pid_t pid, LNX_DMN_ProcessState state, LNX_DMN_Process *parent_process, B32 debug_subprocess, B32 is_cow); +internal LNX_DMN_ProcessCtx * lnx_dmn_process_ctx_alloc(LNX_DMN_Process *process, B32 is_rebased); +internal LNX_DMN_Thread * lnx_dmn_thread_alloc(LNX_DMN_Process *process, LNX_DMN_ThreadState thread_state, pid_t tid); +internal LNX_DMN_Module * lnx_dmn_module_alloc(LNX_DMN_ProcessCtx *ctx, int memory_fd, U64 base_vaddr, U64 name_vaddr, U64 name_space_id, B32 is_main); + +// release +internal void lnx_dmn_entity_release(LNX_DMN_Entity *entity); +internal void lnx_dmn_process_release(LNX_DMN_Process *process); +internal void lnx_dmn_process_ctx_release(LNX_DMN_ProcessCtx *process_ctx); +internal void lnx_dmn_thread_release(LNX_DMN_Thread *thread); +internal void lnx_dmn_module_release(LNX_DMN_ProcessCtx *ctx, LNX_DMN_Module *module); + +// clone +internal LNX_DMN_ProcessCtx * lnx_dmn_process_ctx_clone(LNX_DMN_Process *process, LNX_DMN_ProcessCtx *ctx); +internal LNX_DMN_Module * lnx_dmn_module_clone(LNX_DMN_ProcessCtx *process_ctx, LNX_DMN_Module *module); + +// entity -> handle +internal DMN_Handle lnx_dmn_handle_from_entity(LNX_DMN_Entity *entity); +internal DMN_Handle lnx_dmn_handle_from_process(LNX_DMN_Process *process); +internal DMN_Handle lnx_dmn_handle_from_process_ctx(LNX_DMN_ProcessCtx *process_ctx); +internal DMN_Handle lnx_dmn_handle_from_thread(LNX_DMN_Thread *thread); +internal DMN_Handle lnx_dmn_handle_from_module(LNX_DMN_Module *module); + +// handle -> entity +internal LNX_DMN_Entity * lnx_dmn_entity_from_handle(DMN_Handle handle, LNX_DMN_EntityKind expected_kind); +internal LNX_DMN_Process * lnx_dmn_process_from_handle(DMN_Handle process_handle); +internal LNX_DMN_ProcessCtx * lnx_dmn_process_ctx_from_handle(DMN_Handle process_ctx_handle); +internal LNX_DMN_Thread * lnx_dmn_thread_from_handle(DMN_Handle thread_handle); +internal LNX_DMN_Module * lnx_dmn_module_from_handle(DMN_Handle module_handle); + +//////////////////////////////// +//~ Process Helpers + +internal void lnx_dmn_process_trap_probes(LNX_DMN_Process *process); +internal void lnx_dmn_process_untrap_probes(LNX_DMN_Process *process); + +//////////////////////////////// +//~ Thread Helpers + +internal U64 lnx_dmn_thread_read_ip(LNX_DMN_Thread *thread); +internal U64 lnx_dmn_thread_read_sp(LNX_DMN_Thread *thread); +internal void lnx_dmn_thread_write_ip(LNX_DMN_Thread *thread, U64 ip); +internal void lnx_dmn_thread_write_sp(LNX_DMN_Thread *thread, U64 sp); +internal B32 lnx_dmn_thread_read_reg_block(LNX_DMN_Thread *thread); +internal B32 lnx_dmn_thread_write_reg_block(LNX_DMN_Thread *thread); +internal B32 lnx_dmn_set_single_step_flag(LNX_DMN_Thread *thread, B32 is_on); +internal U64 lnx_dmn_tls_root_vaddr_from_reg_block(int fd, Arch arch, void *reg_block); + +//////////////////////////////// +//~ List Helpers + +internal void lnx_dmn_thread_ptr_list_push_node(LNX_DMN_ThreadPtrList *list, LNX_DMN_ThreadPtrNode *n); +internal LNX_DMN_ThreadPtrNode * lnx_dmn_thread_ptr_list_push(Arena *arena, LNX_DMN_ThreadPtrList *list, LNX_DMN_Thread *v); +internal LNX_DMN_ModulePtrNode * lnx_dmn_module_ptr_list_push(Arena *arena, LNX_DMN_ModulePtrList *list, LNX_DMN_Module *v); +internal LNX_DMN_ProcessPtrNode * lnx_dmn_process_ptr_list_push(Arena *arena, LNX_DMN_ProcessPtrList *list, LNX_DMN_Process *v); + +//////////////////////////////// +//~ Debug Event Pushers + +internal void lnx_dmn_push_event_create_process(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process); +internal void lnx_dmn_push_event_exit_process(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process); +internal void lnx_dmn_push_event_create_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread); +internal void lnx_dmn_push_event_exit_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 exit_code); +internal void lnx_dmn_push_event_load_module(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, LNX_DMN_Module *module); +internal void lnx_dmn_push_event_unload_module(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, LNX_DMN_Module *module); +internal void lnx_dmn_push_event_handshake_complete(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process); +internal void lnx_dmn_push_event_breakpoint(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 address); +internal void lnx_dmn_push_event_single_step(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread); +internal void lnx_dmn_push_event_exception(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 signo); +internal void lnx_dmn_push_event_halt(Arena *arena, DMN_EventList *events); +internal void lnx_dmn_push_event_not_attached(Arena *arena, DMN_EventList *events); + +//////////////////////////////// +//~ Debug Event + +internal LNX_DMN_Thread * lnx_dmn_event_create_thread(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, pid_t tid); +internal void lnx_dmn_event_exit_thread(Arena *arena, DMN_EventList *events, pid_t tid, U64 exit_code); +internal LNX_DMN_Process * lnx_dmn_event_create_process(Arena *arena, DMN_EventList *events, pid_t pid, LNX_DMN_Process *parent_process, LNX_DMN_CreateProcessFlags flags); +internal void lnx_dmn_event_exit_process(Arena *arena, DMN_EventList *events, pid_t pid); +internal void lnx_dmn_event_load_module(Arena *arena, DMN_EventList *events, LNX_DMN_Thread *thread, U64 name_space_id, U64 new_link_map_vaddr); +internal void lnx_dmn_event_unload_module(Arena *arena, DMN_EventList *events, LNX_DMN_Process *process, U64 rdebug_vaddr); +internal void lnx_dmn_event_breakpoint(Arena *arena, DMN_EventList *events, LNX_DMN_ActiveTrap *user_traps, pid_t tid); +internal void lnx_dmn_event_data_breakpoint(Arena *arena, DMN_EventList *events, pid_t tid); +internal void lnx_dmn_event_halt(Arena *arena, DMN_EventList *events); +internal void lnx_dmn_event_single_step(Arena *arena, DMN_EventList *events, pid_t tid); +internal void lnx_dmn_event_exception(Arena *arena, DMN_EventList *events, pid_t tid, U64 signo); +internal LNX_DMN_Process * lnx_dmn_event_attach(Arena *arena, DMN_EventList *events, pid_t pid); + +#endif // LINUX_DEMON_H diff --git a/src/linux/window_manager/linux_window_manager.c b/src/linux/window_manager/linux_window_manager.c new file mode 100644 index 00000000..16ff1117 --- /dev/null +++ b/src/linux/window_manager/linux_window_manager.c @@ -0,0 +1,778 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Helpers + +internal LNX_WM_Window * +lnx_window_from_x11window(Window window) +{ + LNX_WM_Window *result = 0; + for(LNX_WM_Window *w = lnx_wm_state->first_window; w != 0; w = w->next) + { + if(w->window == window) + { + result = w; + break; + } + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Main Initialization API (Implemented Per-OS) + +internal void +wm_init(void) +{ + //- rjf: initialize basics + Arena *arena = arena_alloc(); + lnx_wm_state = push_array(arena, LNX_WM_State, 1); + lnx_wm_state->arena = arena; + lnx_wm_state->display = XOpenDisplay(0); + + //- rjf: calculate atoms + lnx_wm_state->wm_delete_window_atom = XInternAtom(lnx_wm_state->display, "WM_DELETE_WINDOW", 0); + lnx_wm_state->wm_sync_request_atom = XInternAtom(lnx_wm_state->display, "_NET_WM_SYNC_REQUEST", 0); + lnx_wm_state->wm_sync_request_counter_atom = XInternAtom(lnx_wm_state->display, "_NET_WM_SYNC_REQUEST_COUNTER", 0); + + //- rjf: open im + lnx_wm_state->xim = XOpenIM(lnx_wm_state->display, 0, 0, 0); + + //- rjf: fill out gfx info + lnx_wm_state->gfx_info.double_click_time = 0.5f; + lnx_wm_state->gfx_info.caret_blink_time = 0.5f; + lnx_wm_state->gfx_info.default_refresh_rate = 60.f; + + //- rjf: fill out cursors + { + struct + { + WM_Cursor cursor; + unsigned int id; + } + map[] = + { + {WM_Cursor_Pointer, XC_left_ptr}, + {WM_Cursor_IBar, XC_xterm}, + {WM_Cursor_LeftRight, XC_sb_h_double_arrow}, + {WM_Cursor_UpDown, XC_sb_v_double_arrow}, + {WM_Cursor_DownRight, XC_bottom_right_corner}, + {WM_Cursor_UpRight, XC_top_right_corner}, + {WM_Cursor_UpDownLeftRight, XC_fleur}, + {WM_Cursor_HandPoint, XC_hand1}, + {WM_Cursor_Disabled, XC_X_cursor}, + }; + for EachElement(idx, map) + { + lnx_wm_state->cursors[map[idx].cursor] = XCreateFontCursor(lnx_wm_state->display, map[idx].id); + } + } + + // create wakeup event for polling + lnx_wm_state->wakeup_fd = eventfd(0, EFD_CLOEXEC); + Assert(lnx_wm_state->wakeup_fd > 0); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Graphics System Info (Implemented Per-OS) + +internal WM_SystemInfo * +wm_get_system_info(void) +{ + return &lnx_wm_state->gfx_info; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Clipboards (Implemented Per-OS) + +internal void +wm_set_clipboard_text(String8 string) +{ + +} + +internal String8 +wm_get_clipboard_text(Arena *arena) +{ + String8 result = {0}; + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Windows (Implemented Per-OS) + +internal WM_Window +wm_window_open(Rng2F32 rect, WM_WindowFlags flags, String8 title) +{ + Vec2F32 resolution = dim_2f32(rect); + + //- rjf: allocate window + LNX_WM_Window *w = lnx_wm_state->free_window; + if(w) + { + SLLStackPop(lnx_wm_state->free_window); + } + else + { + w = push_array_no_zero(lnx_wm_state->arena, LNX_WM_Window, 1); + } + MemoryZeroStruct(w); + DLLPushBack(lnx_wm_state->first_window, lnx_wm_state->last_window, w); + + //- rjf: create window & equip with x11 info + Visual *visual = lnx_wm_state->window_visual; + int depth = lnx_wm_state->window_depth; + Colormap colormap = lnx_wm_state->window_colormap; + unsigned long attr_mask = 0; + XSetWindowAttributes window_attribs = {0}; + if(visual == 0) + { + visual = (Visual *)CopyFromParent; + depth = CopyFromParent; + } + else + { + window_attribs.background_pixmap = None; + window_attribs.border_pixel = 0; + window_attribs.colormap = colormap; + attr_mask = CWBackPixmap|CWBorderPixel|CWColormap; + } + w->window = XCreateWindow(lnx_wm_state->display, + XDefaultRootWindow(lnx_wm_state->display), + 0, 0, resolution.x, resolution.y, + 0, + depth, + InputOutput, + visual, + attr_mask, + &window_attribs); + XSelectInput(lnx_wm_state->display, w->window, + ExposureMask| + PointerMotionMask| + ButtonPressMask| + ButtonReleaseMask| + KeyPressMask| + KeyReleaseMask| + FocusChangeMask); + Atom protocols[] = + { + lnx_wm_state->wm_delete_window_atom, + lnx_wm_state->wm_sync_request_atom, + }; + XSetWMProtocols(lnx_wm_state->display, w->window, protocols, ArrayCount(protocols)); + { + XSyncValue initial_value; + XSyncIntToValue(&initial_value, 0); + w->counter_xid = XSyncCreateCounter(lnx_wm_state->display, initial_value); + } + XChangeProperty(lnx_wm_state->display, w->window, lnx_wm_state->wm_sync_request_counter_atom, XA_CARDINAL, 32, PropModeReplace, (U8 *)&w->counter_xid, 1); + + //- rjf: create xic + w->xic = XCreateIC(lnx_wm_state->xim, + XNInputStyle, XIMPreeditNothing|XIMStatusNothing, + XNClientWindow, w->window, + XNFocusWindow, w->window, + NULL); + + //- rjf: attach name + Temp scratch = scratch_begin(0, 0); + String8 title_copy = push_str8_copy(scratch.arena, title); + XStoreName(lnx_wm_state->display, w->window, (char *)title_copy.str); + scratch_end(scratch); + + //- rjf: convert to handle & return + WM_Window handle = {(U64)w}; + return handle; +} + +internal void +wm_window_close(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + XDestroyWindow(lnx_wm_state->display, w->window); +} + +internal void +wm_window_set_title(WM_Window handle, String8 title) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + Temp scratch = scratch_begin(0, 0); + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + String8 title_copy = push_str8_copy(scratch.arena, title); + XStoreName(lnx_wm_state->display, w->window, (char *)title_copy.str); + scratch_end(scratch); +} + +internal void +wm_window_first_paint(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + XMapWindow(lnx_wm_state->display, w->window); + XFlush(lnx_wm_state->display); +} + +internal void +wm_window_focus(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + // + // TODO: if the target is lightweight, the debugger may launch it even before the first frame is drawn; + // this is a problem because XSetInputFocus is now called before XMapWindow, we need a guard + // to prevent an X server error: + // + // X Error of failed request: BadMatch (invalid parameter attributes) + // Major opcode of failed request: 42 (X_SetInputFocus) + // Serial number of failed request: 373 + // Current serial number in output stream: 374 + // + XSetInputFocus(lnx_wm_state->display, w->window, RevertToNone, CurrentTime); +} + +internal B32 +wm_window_is_focused(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return 0;} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + Window focused_window = 0; + int revert_to = 0; + XGetInputFocus(lnx_wm_state->display, &focused_window, &revert_to); + B32 result = (w->window == focused_window); + return result; +} + +internal B32 +wm_window_is_fullscreen(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return 0;} + // TODO(rjf) + return 0; +} + +internal void +wm_window_set_fullscreen(WM_Window handle, B32 fullscreen) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal B32 +wm_window_is_maximized(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return 0;} + // TODO(rjf) + return 0; +} + +internal void +wm_window_set_maximized(WM_Window handle, B32 maximized) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal B32 +wm_window_is_minimized(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return 0;} + // TODO(rjf) + return 0; +} + +internal void +wm_window_set_minimized(WM_Window handle, B32 minimized) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_bring_to_front(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_set_monitor(WM_Window handle, WM_Monitor monitor) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_clear_custom_border_data(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_push_custom_title_bar(WM_Window handle, F32 thickness) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_push_custom_edges(WM_Window handle, F32 thickness) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal void +wm_window_push_custom_title_bar_client_area(WM_Window handle, Rng2F32 rect) +{ + if(wm_window_match(handle, wm_window_zero())) {return;} + // TODO(rjf) +} + +internal Rng2F32 +wm_rect_from_window(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return r2f32p(0, 0, 0, 0);} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + XWindowAttributes atts = {0}; + Status s = XGetWindowAttributes(lnx_wm_state->display, w->window, &atts); + Rng2F32 result = r2f32p((F32)atts.x, (F32)atts.y, (F32)atts.x + (F32)atts.width, (F32)atts.y + (F32)atts.height); + return result; +} + +internal Rng2F32 +wm_client_rect_from_window(WM_Window handle) +{ + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + XWindowAttributes atts = {0}; + Status s = XGetWindowAttributes(lnx_wm_state->display, w->window, &atts); + Rng2F32 result = r2f32p(0, 0, (F32)atts.width, (F32)atts.height); + return result; +} + +internal F32 +wm_dpi_from_window(WM_Window handle) +{ + // TODO(rjf) + return 96.f; +} + +//////////////////////////////// +//~ rjf: @per_os_impl External Windows (Implemented Per-OS) + +internal WM_ExtWindow +wm_focused_external_window(void) +{ + WM_ExtWindow result = {0}; + // TODO(rjf) + return result; +} + +internal void +wm_focus_external_window(WM_ExtWindow handle) +{ + // TODO(rjf) +} + +//////////////////////////////// +//~ rjf: @per_os_impl Monitors (Implemented Per-OS) + +internal WM_MonitorArray +wm_push_monitors_array(Arena *arena) +{ + WM_MonitorArray result = {0}; + // TODO(rjf) + return result; +} + +internal WM_Monitor +wm_primary_monitor(void) +{ + WM_Monitor result = {0}; + // TODO(rjf) + return result; +} + +internal WM_Monitor +wm_monitor_from_window(WM_Window window) +{ + WM_Monitor result = {0}; + // TODO(rjf) + return result; +} + +internal String8 +wm_name_from_monitor(Arena *arena, WM_Monitor monitor) +{ + // TODO(rjf) + return str8_zero(); +} + +internal Vec2F32 +wm_dim_from_monitor(WM_Monitor monitor) +{ + // TODO(rjf) + return v2f32(0, 0); +} + +internal F32 +wm_dpi_from_monitor(WM_Monitor monitor) +{ + // TODO(rjf) + return 96.f; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Events (Implemented Per-OS) + +internal void +wm_send_wakeup_event(void) +{ + U64 dummy = 1; + ssize_t size = LNX_RETRY_ON_EINTR(write(lnx_wm_state->wakeup_fd, &dummy, sizeof(dummy))); + Assert(size == sizeof(dummy)); +} + +internal WM_EventList +wm_get_events(Arena *arena, B32 wait) +{ + WM_EventList evts = {0}; + for(;;) + { + if(XPending(lnx_wm_state->display) == 0) + { + struct pollfd poll_fds[2] = + { + { .fd = ConnectionNumber(lnx_wm_state->display), .events = POLLIN }, + { .fd = lnx_wm_state->wakeup_fd, .events = POLLIN }, + }; + int timeout = wait && evts.count == 0 ? -1 : 0; + int poll_status = poll(poll_fds, ArrayCount(poll_fds), timeout); + Assert(poll_status >= 0); + if(poll_fds[1].revents & POLLIN) + { + U64 dummy = 0; + read(lnx_wm_state->wakeup_fd, &dummy, sizeof(dummy)); + wait = 0; + } + } + while(XPending(lnx_wm_state->display)) + { + XEvent evt = {0}; + XNextEvent(lnx_wm_state->display, &evt); + B32 set_mouse_cursor = 0; + switch(evt.type) + { + default:{}break; + + //- rjf: key presses/releases + case KeyPress: + case KeyRelease: + { + // rjf: determine flags + WM_Modifiers modifiers = 0; + if(evt.xkey.state & ShiftMask) { modifiers |= WM_Modifier_Shift; } + if(evt.xkey.state & ControlMask) { modifiers |= WM_Modifier_Ctrl; } + if(evt.xkey.state & Mod1Mask) { modifiers |= WM_Modifier_Alt; } + + // rjf: map keycode -> keysym & codepoint + LNX_WM_Window *window = lnx_window_from_x11window(evt.xkey.window); + KeySym keysym = 0; + U8 text[256] = {0}; + U64 text_size = Xutf8LookupString(window->xic, &evt.xkey, (char *)text, sizeof(text), &keysym, 0); + + // rjf: map keysym -> WM_Key + B32 is_right_sided = 0; + WM_Key key = WM_Key_Null; + switch(keysym) + { + default: + { + if(0){} + else if(XK_F1 <= keysym && keysym <= XK_F24) { key = (WM_Key)(WM_Key_F1 + (keysym - XK_F1)); } + else if('0' <= keysym && keysym <= '9') { key = WM_Key_0 + (keysym-'0'); } + }break; + case XK_Escape:{key = WM_Key_Esc;};break; + case XK_BackSpace:{key = WM_Key_Backspace;}break; + case XK_Delete:{key = WM_Key_Delete;}break; + case XK_Return:{key = WM_Key_Return;}break; + case XK_Pause:{key = WM_Key_Pause;}break; + case XK_Tab:{key = WM_Key_Tab;}break; + case XK_Left:{key = WM_Key_Left;}break; + case XK_Right:{key = WM_Key_Right;}break; + case XK_Up:{key = WM_Key_Up;}break; + case XK_Down:{key = WM_Key_Down;}break; + case XK_Home:{key = WM_Key_Home;}break; + case XK_End:{key = WM_Key_End;}break; + case XK_Page_Up:{key = WM_Key_PageUp;}break; + case XK_Page_Down:{key = WM_Key_PageDown;}break; + case XK_Alt_L:{ key = WM_Key_Alt; }break; + case XK_Alt_R:{ key = WM_Key_Alt; is_right_sided = 1;}break; + case XK_Shift_L:{ key = WM_Key_Shift; }break; + case XK_Shift_R:{ key = WM_Key_Shift; is_right_sided = 1;}break; + case XK_Control_L:{ key = WM_Key_Ctrl; }break; + case XK_Control_R:{ key = WM_Key_Ctrl; is_right_sided = 1;}break; + case '-':{key = WM_Key_Minus;}break; + case '=':{key = WM_Key_Equal;}break; + case '[':{key = WM_Key_LeftBracket;}break; + case ']':{key = WM_Key_RightBracket;}break; + case ';':{key = WM_Key_Semicolon;}break; + case '\'':{key = WM_Key_Quote;}break; + case '.':{key = WM_Key_Period;}break; + case ',':{key = WM_Key_Comma;}break; + case '/':{key = WM_Key_Slash;}break; + case '\\':{key = WM_Key_BackSlash;}break; + case '\t':{key = WM_Key_Tab;}break; + case 'a':case 'A':{key = WM_Key_A;}break; + case 'b':case 'B':{key = WM_Key_B;}break; + case 'c':case 'C':{key = WM_Key_C;}break; + case 'd':case 'D':{key = WM_Key_D;}break; + case 'e':case 'E':{key = WM_Key_E;}break; + case 'f':case 'F':{key = WM_Key_F;}break; + case 'g':case 'G':{key = WM_Key_G;}break; + case 'h':case 'H':{key = WM_Key_H;}break; + case 'i':case 'I':{key = WM_Key_I;}break; + case 'j':case 'J':{key = WM_Key_J;}break; + case 'k':case 'K':{key = WM_Key_K;}break; + case 'l':case 'L':{key = WM_Key_L;}break; + case 'm':case 'M':{key = WM_Key_M;}break; + case 'n':case 'N':{key = WM_Key_N;}break; + case 'o':case 'O':{key = WM_Key_O;}break; + case 'p':case 'P':{key = WM_Key_P;}break; + case 'q':case 'Q':{key = WM_Key_Q;}break; + case 'r':case 'R':{key = WM_Key_R;}break; + case 's':case 'S':{key = WM_Key_S;}break; + case 't':case 'T':{key = WM_Key_T;}break; + case 'u':case 'U':{key = WM_Key_U;}break; + case 'v':case 'V':{key = WM_Key_V;}break; + case 'w':case 'W':{key = WM_Key_W;}break; + case 'x':case 'X':{key = WM_Key_X;}break; + case 'y':case 'Y':{key = WM_Key_Y;}break; + case 'z':case 'Z':{key = WM_Key_Z;}break; + case ' ':{key = WM_Key_Space;}break; + } + + // rjf: push text event + if(evt.type == KeyPress && text_size != 0) + { + for(U64 off = 0; off < text_size;) + { + UnicodeDecode decode = utf8_decode(text+off, text_size-off); + if(decode.codepoint != 0 && decode.codepoint != 127 && (decode.codepoint >= 32 || decode.codepoint == '\t')) + { + WM_Event *e = wm_event_list_push_new(arena, &evts, WM_EventKind_Text); + e->window.u64[0] = (U64)window; + e->character = decode.codepoint; + } + if(decode.inc == 0) + { + break; + } + off += decode.inc; + } + } + + // rjf: push key event + { + WM_Event *e = wm_event_list_push_new(arena, &evts, evt.type == KeyPress ? WM_EventKind_Press : WM_EventKind_Release); + e->window.u64[0] = (U64)window; + e->modifiers = modifiers; + e->key = key; + e->right_sided = is_right_sided; + } + }break; + + //- rjf: mouse button presses/releases + case ButtonPress: + case ButtonRelease: + { + // rjf: determine flags + WM_Modifiers modifiers = 0; + if(evt.xbutton.state & ShiftMask) { modifiers |= WM_Modifier_Shift; } + if(evt.xbutton.state & ControlMask) { modifiers |= WM_Modifier_Ctrl; } + if(evt.xbutton.state & Mod1Mask) { modifiers |= WM_Modifier_Alt; } + + // rjf: map button -> WM_Key + WM_Key key = WM_Key_Null; + switch(evt.xbutton.button) + { + default:{}break; + case Button1:{key = WM_Key_LeftMouseButton;}break; + case Button2:{key = WM_Key_MiddleMouseButton;}break; + case Button3:{key = WM_Key_RightMouseButton;}break; + } + + // rjf: push event + LNX_WM_Window *window = lnx_window_from_x11window(evt.xbutton.window); + if(key != WM_Key_Null) + { + WM_Event *e = wm_event_list_push_new(arena, &evts, evt.type == ButtonPress ? WM_EventKind_Press : WM_EventKind_Release); + e->window.u64[0] = (U64)window; + e->modifiers = modifiers; + e->key = key; + e->pos = v2f32((F32)evt.xbutton.x, (F32)evt.xbutton.y); + } + else if(evt.xbutton.button == Button4 || + evt.xbutton.button == Button5) + { + WM_Event *e = wm_event_list_push_new(arena, &evts, WM_EventKind_Scroll); + e->window.u64[0] = (U64)window; + e->modifiers = modifiers; + e->delta = v2f32(0, evt.xbutton.button == Button4 ? -1.f : +1.f); + e->pos = v2f32((F32)evt.xbutton.x, (F32)evt.xbutton.y); + } + }break; + + //- rjf: mouse motion + case MotionNotify: + { + LNX_WM_Window *window = lnx_window_from_x11window(evt.xclient.window); + WM_Event *e = wm_event_list_push_new(arena, &evts, WM_EventKind_MouseMove); + e->window.u64[0] = (U64)window; + e->pos.x = (F32)evt.xmotion.x; + e->pos.y = (F32)evt.xmotion.y; + set_mouse_cursor = 1; + }break; + + //- rjf: window focus/unfocus + case FocusIn: + { + }break; + case FocusOut: + { + LNX_WM_Window *window = lnx_window_from_x11window(evt.xfocus.window); + WM_Event *e = wm_event_list_push_new(arena, &evts, WM_EventKind_WindowLoseFocus); + e->window.u64[0] = (U64)window; + }break; + + //- rjf: client messages + case ClientMessage: + { + if((Atom)evt.xclient.data.l[0] == lnx_wm_state->wm_delete_window_atom) + { + LNX_WM_Window *window = lnx_window_from_x11window(evt.xclient.window); + WM_Event *e = wm_event_list_push_new(arena, &evts, WM_EventKind_WindowClose); + e->window.u64[0] = (U64)window; + } + else if((Atom)evt.xclient.data.l[0] == lnx_wm_state->wm_sync_request_atom) + { + LNX_WM_Window *window = lnx_window_from_x11window(evt.xclient.window); + if(window != 0) + { + window->counter_value = 0; + window->counter_value |= evt.xclient.data.l[2]; + window->counter_value |= (evt.xclient.data.l[3] << 32); + XSyncValue value; + XSyncIntToValue(&value, window->counter_value); + XSyncSetCounter(lnx_wm_state->display, window->counter_xid, value); + } + } + }break; + } + + if(set_mouse_cursor) + { + Window root_window = 0; + Window child_window = 0; + int root_rel_x = 0; + int root_rel_y = 0; + int child_rel_x = 0; + int child_rel_y = 0; + unsigned int mask = 0; + if(XQueryPointer(lnx_wm_state->display, XDefaultRootWindow(lnx_wm_state->display), &root_window, &child_window, &root_rel_x, &root_rel_y, &child_rel_x, &child_rel_y, &mask)) + { + XDefineCursor(lnx_wm_state->display, root_window, lnx_wm_state->cursors[lnx_wm_state->last_set_cursor]); + XFlush(lnx_wm_state->display); + } + } + } + if(evts.count > 0 || (wait == 0 && evts.count == 0)) + { + break; + } + } + return evts; +} + +internal WM_Modifiers +wm_get_modifiers(void) +{ + // TODO(rjf) + return 0; +} + +internal B32 +wm_key_is_down(WM_Key key) +{ + // TODO(rjf) + return 0; +} + +internal Vec2F32 +wm_mouse_from_window(WM_Window handle) +{ + if(wm_window_match(handle, wm_window_zero())) {return v2f32(0, 0);} + LNX_WM_Window *w = (LNX_WM_Window *)handle.u64[0]; + Vec2F32 result = {0}; + { + Window root_window = 0; + Window child_window = 0; + int root_rel_x = 0; + int root_rel_y = 0; + int child_rel_x = 0; + int child_rel_y = 0; + unsigned int mask = 0; + if(XQueryPointer(lnx_wm_state->display, w->window, &root_window, &child_window, &root_rel_x, &root_rel_y, &child_rel_x, &child_rel_y, &mask)) + { + result.x = child_rel_x; + result.y = child_rel_y; + } + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Cursors (Implemented Per-OS) + +internal void +wm_set_cursor(WM_Cursor cursor) +{ + lnx_wm_state->last_set_cursor = cursor; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Native User-Facing Graphical Messages (Implemented Per-OS) + +internal void +wm_graphical_message(B32 error, String8 title, String8 message) +{ + if(error) + { + fprintf(stderr, "[X] "); + } + fprintf(stderr, "%.*s\n", str8_varg(title)); + fprintf(stderr, "%.*s\n\n", str8_varg(message)); +} + +internal String8 +wm_graphical_pick_file(Arena *arena, String8 initial_path) +{ + return str8_zero(); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Shell Operations + +internal void +wm_show_in_filesystem_ui(String8 path) +{ + // TODO(rjf) +} + +internal void +wm_open_in_browser(String8 url) +{ + // TODO(rjf) +} diff --git a/src/os/gfx/linux/os_gfx_linux.h b/src/linux/window_manager/linux_window_manager.h similarity index 52% rename from src/os/gfx/linux/os_gfx_linux.h rename to src/linux/window_manager/linux_window_manager.h index 58e51f27..7ef8cb56 100644 --- a/src/os/gfx/linux/os_gfx_linux.h +++ b/src/linux/window_manager/linux_window_manager.h @@ -1,61 +1,67 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_GFX_LINUX_H -#define OS_GFX_LINUX_H - -//////////////////////////////// -//~ rjf: Includes - -#include -#include -#include -#include -#include -#include - -//////////////////////////////// -//~ rjf: Window State - -typedef struct OS_LNX_Window OS_LNX_Window; -struct OS_LNX_Window -{ - OS_LNX_Window *next; - OS_LNX_Window *prev; - Window window; - XIC xic; - XID counter_xid; - U64 counter_value; -}; - -//////////////////////////////// -//~ rjf: State Bundle - -typedef struct OS_LNX_GfxState OS_LNX_GfxState; -struct OS_LNX_GfxState -{ - Arena *arena; - Display *display; - XIM xim; - OS_LNX_Window *first_window; - OS_LNX_Window *last_window; - OS_LNX_Window *free_window; - Atom wm_delete_window_atom; - Atom wm_sync_request_atom; - Atom wm_sync_request_counter_atom; - Cursor cursors[OS_Cursor_COUNT]; - OS_Cursor last_set_cursor; - OS_GfxInfo gfx_info; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_LNX_GfxState *os_lnx_gfx_state = 0; - -//////////////////////////////// -//~ rjf: Helpers - -internal OS_LNX_Window *os_lnx_window_from_x11window(Window window); - -#endif // OS_GFX_LINUX_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef LINUX_WINDOW_MANAGER_H +#define LINUX_WINDOW_MANAGER_H + +//////////////////////////////// +//~ rjf: Includes + +#include +#include +#include +#include +#include +#include +#include +#include + +//////////////////////////////// +//~ rjf: Window State + +typedef struct LNX_WM_Window LNX_WM_Window; +struct LNX_WM_Window +{ + LNX_WM_Window *next; + LNX_WM_Window *prev; + Window window; + XIC xic; + XID counter_xid; + U64 counter_value; +}; + +//////////////////////////////// +//~ rjf: State Bundle + +typedef struct LNX_WM_State LNX_WM_State; +struct LNX_WM_State +{ + Arena *arena; + Display *display; + XIM xim; + LNX_WM_Window *first_window; + LNX_WM_Window *last_window; + LNX_WM_Window *free_window; + Atom wm_delete_window_atom; + Atom wm_sync_request_atom; + Atom wm_sync_request_counter_atom; + Cursor cursors[WM_Cursor_COUNT]; + WM_Cursor last_set_cursor; + WM_SystemInfo gfx_info; + int wakeup_fd; + Visual *window_visual; + int window_depth; + Colormap window_colormap; +}; + +//////////////////////////////// +//~ rjf: Globals + +global LNX_WM_State *lnx_wm_state = 0; + +//////////////////////////////// +//~ rjf: Helpers + +internal LNX_WM_Window *lnx_window_from_x11window(Window window); + +#endif // LINUX_WINDOW_MANAGER_H diff --git a/src/llvm/llvm.c b/src/llvm/llvm.c new file mode 100644 index 00000000..f5a0f364 --- /dev/null +++ b/src/llvm/llvm.c @@ -0,0 +1,24 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal String8 +llvm_string_from_ghash_alg(LLVM_GHashAlg v) +{ + switch (v) { + case LLVM_GHashAlg_SHA1: return str8_lit("SHA1"); + case LLVM_GHashAlg_SHA1_8: return str8_lit("SHA1_8"); + case LLVM_GHashAlg_BLAKE3: return str8_lit("BLAKE3"); + } + return str8_zero(); +} + +internal U64 +llvm_hash_size_from_alg(LLVM_GHashAlg v) +{ + switch (v) { + case LLVM_GHashAlg_SHA1: return 20; + case LLVM_GHashAlg_SHA1_8: return 8; + case LLVM_GHashAlg_BLAKE3: return 8; + } + return 0; +} diff --git a/src/llvm/llvm.h b/src/llvm/llvm.h new file mode 100644 index 00000000..0ddc399f --- /dev/null +++ b/src/llvm/llvm.h @@ -0,0 +1,30 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef LLVM_H +#define LLVM_H + +#define LLVM_GHash_Magic 0x133c9c5 +#define LLVM_GHash_CurrentVersion 0 + +typedef U16 LLVM_GHashAlg; +typedef enum LLVM_GHashAlgEnum +{ + LLVM_GHashAlg_SHA1 = 0, + LLVM_GHashAlg_SHA1_8 = 1, + LLVM_GHashAlg_BLAKE3 = 2, +} LLVM_GHashAlgEnum; + +typedef struct LLVM_GHash +{ + U32 magic; + U16 version; + LLVM_GHashAlg hash_alg; + // * hashes[] +} LLVM_GHash; + +internal String8 llvm_string_from_ghash_alg(LLVM_GHashAlg v); +internal U64 llvm_hash_size_from_alg(LLVM_GHashAlg v); + +#endif // LLVM_H + diff --git a/src/mdesk/mdesk.c b/src/mdesk/mdesk.c index efe2a52f..46af783d 100644 --- a/src/mdesk/mdesk.c +++ b/src/mdesk/mdesk.c @@ -1205,6 +1205,110 @@ md_debug_string_list_from_tree(Arena *arena, MD_Node *root) return strings; } +internal String8List +md_string_list_from_tree(Arena *arena, MD_Node *root) +{ + String8List strings = {0}; + { + char *indentation = " "; + S32 depth = 0; + B32 delimit_with_newlines = 1; + for(MD_Node *node = root, *next = &md_nil_node; !md_node_is_nil(node); node = next) + { + Temp scratch = scratch_begin(&arena, 1); + + // rjf: get next recursion + MD_NodeRec rec = md_node_rec_depth_first_pre(node, root); + next = rec.next; + + // rjf: sanitize string + String8 node_string_sanitized = node->string; + { + MD_TokenizeResult tokenize = md_tokenize_from_text(scratch.arena, node_string_sanitized); + B32 is_simple_string = (tokenize.tokens.count == 1 && (tokenize.tokens.v[0].flags & (MD_TokenFlag_Identifier| + MD_TokenFlag_Numeric))); + if(tokenize.tokens.count > 0 && !is_simple_string) + { + node_string_sanitized = str8f(scratch.arena, "\"%S\"", escaped_from_raw_str8(scratch.arena, node_string_sanitized)); + } + if(node_string_sanitized.size == 0 && node->first == &md_nil_node) + { + node_string_sanitized = s("\"\""); + } + } + + // rjf: turn off newline delimiting for implicit child sets + B32 next_delimit_with_newlines = delimit_with_newlines; + if(node->first != &md_nil_node && !(node->flags & (MD_NodeFlag_HasParenLeft|MD_NodeFlag_HasBracketLeft|MD_NodeFlag_HasBraceLeft))) + { + next_delimit_with_newlines = 0; + } + + // rjf: push node line + if(node_string_sanitized.size != 0) + { + str8_list_pushf(arena, &strings, "%.*s%S%S%S", delimit_with_newlines ? depth : 1, indentation, node_string_sanitized, + (rec.push_count != 0 && node_string_sanitized.size != 0) ? s(":") : s(""), + next_delimit_with_newlines ? s("\n") : s("")); + } + + // rjf: children -> open brace + if(rec.push_count != 0) + { + String8 opener_symbol = s(""); + if(node->flags & MD_NodeFlag_HasParenLeft) { opener_symbol = s("("); } + if(node->flags & MD_NodeFlag_HasBracketLeft) { opener_symbol = s("["); } + if(node->flags & MD_NodeFlag_HasBraceLeft) { opener_symbol = s("{"); } + if(opener_symbol.size != 0) + { + str8_list_pushf(arena, &strings, "%.*s%S\n", depth, indentation, opener_symbol); + } + } + + // rjf: descend + depth += rec.push_count; + delimit_with_newlines = next_delimit_with_newlines; + + // rjf: popping -> close braces + { + MD_Node *popped = node->parent; + for(S32 pop_idx = 0; pop_idx < rec.pop_count; pop_idx += 1, popped = popped->parent) + { + String8 closer_symbol = s(""); + if(popped->flags & MD_NodeFlag_HasParenRight) { closer_symbol = s(")"); } + if(popped->flags & MD_NodeFlag_HasBracketRight) { closer_symbol = s("]"); } + if(popped->flags & MD_NodeFlag_HasBraceRight) { closer_symbol = s("}"); } + if(!delimit_with_newlines) + { + str8_list_push(arena, &strings, s("\n")); + delimit_with_newlines = 1; + } + else if(closer_symbol.size != 0) + { + str8_list_pushf(arena, &strings, "%.*s%S\n", (depth-1-pop_idx), indentation, closer_symbol); + } + } + } + + // rjf: ascend + depth -= rec.pop_count; + + scratch_end(scratch); + } + } + return strings; +} + +internal String8 +md_string_from_tree(Arena *arena, MD_Node *root) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List strings = md_string_list_from_tree(scratch.arena, root); + String8 string = str8_list_join(arena, &strings, 0); + scratch_end(scratch); + return string; +} + //////////////////////////////// //~ rjf: Node Pointer List Functions diff --git a/src/mdesk/mdesk.h b/src/mdesk/mdesk.h index e7a55473..d6c6e5fe 100644 --- a/src/mdesk/mdesk.h +++ b/src/mdesk/mdesk.h @@ -336,6 +336,8 @@ internal MD_ParseResult md_parse_from_text(Arena *arena, String8 filename, Strin //~ rjf: Tree -> Text Functions internal String8List md_debug_string_list_from_tree(Arena *arena, MD_Node *root); +internal String8List md_string_list_from_tree(Arena *arena, MD_Node *root); +internal String8 md_string_from_tree(Arena *arena, MD_Node *root); //////////////////////////////// //~ rjf: Node Pointer List Functions diff --git a/src/mdesk/tests/mdesk_tests.c b/src/mdesk/tests/mdesk_tests.c new file mode 100644 index 00000000..d9c34880 --- /dev/null +++ b/src/mdesk/tests/mdesk_tests.c @@ -0,0 +1,129 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +SkippedTest(tokenizer) +{ + MD_TokenizeResult result; + + // empty + result = md_tokenize_from_text(arena, str8_lit("")); + T_Ok(result.tokens.count == 0); + T_Ok(result.msgs.count == 0); + + // identifiers + char *ids[] = { + "a", + "abc", + "_", + "_abc", + "abc123", + "abc_def123", + }; + for EachElement(i, ids) { + String8 in = str8_cstring(ids[i]); + result = md_tokenize_from_text(arena, in); + + T_Ok(result.tokens.count == 1); + T_Ok(result.tokens.v[0].range.min == 0); + T_Ok(result.tokens.v[0].range.max == in.size); + T_Ok(result.tokens.v[0].flags & MD_TokenFlag_Identifier); + T_Ok((result.tokens.v[0].flags & ~MD_TokenFlag_Identifier) == 0); + T_Ok(result.msgs.count == 0); + } + + // numerics + char *numerics[] = { + "0", + "123", + "123.456", + ".5", + "-1", + "-123.45" + "123_abc", + "1.2.3", + }; + for EachElement(i, numerics) { + String8 in = str8_cstring(numerics[i]); + result = md_tokenize_from_text(arena, in); + + T_Ok(result.tokens.count == 1); + T_Ok(result.tokens.v[0].range.min == 0); + T_Ok(result.tokens.v[0].range.max == in.size); + T_Ok(result.tokens.v[0].flags & MD_TokenFlag_Numeric); + T_Ok((result.tokens.v[0].flags & ~MD_TokenFlag_Numeric) == 0); + T_Ok(result.msgs.count == 0); + } + + // comments + char *good_comments[] = { + "/**/", + "/* */", + "/* abc */", + "/* ** */", + "/**/", + "/**************/", + "/*abc*/", + "//foo", + "// bar", + "//" + }; + B32 good_comments_passed = 0; + for EachElement(i, good_comments) { + String8 in = str8_cstring(good_comments[i]); + result = md_tokenize_from_text(arena, in); + + T_Ok(result.tokens.count == 1); + T_Ok(dim_1u64(result.tokens.v[0].range) == in.size); + T_Ok(result.tokens.v[0].flags & MD_TokenFlag_Comment); + T_Ok((result.tokens.v[0].flags & ~MD_TokenFlag_Comment) == 0); + T_Ok(result.msgs.count == 0); + } + + char *broken_comments[] = { + "/*", + "/*/", + }; + for EachElement(i, broken_comments) { + String8 in = str8_cstring(broken_comments[i]); + result = md_tokenize_from_text(arena, in); + T_Ok(result.msgs.worst_message_kind == MD_MsgKind_Error); + T_Ok(result.msgs.count > 0); + } + + // unterminated string + result = md_tokenize_from_text(arena, str8_lit("\"abc\nc")); + T_Ok(result.msgs.worst_message_kind == MD_MsgKind_Error); + T_Ok(result.msgs.count > 0); + + // terminated string + // + // TODO: strings with \n in the middle are not correctly tokenized + result = md_tokenize_from_text(arena, str8_lit("\"abc\"")); + T_Ok(result.msgs.count == 0); + + // line column tracking + { + result = md_tokenize_from_text(arena, str8_lit("a\nb")); + T_Ok(result.tokens.count == 3); + + // verify 'a' + T_Ok(result.tokens.v[0].flags & MD_TokenFlag_Identifier); + + // verify '\n' + T_Ok(result.tokens.v[1].flags & MD_TokenFlag_Newline); + + // verify 'b' + T_Ok(result.tokens.v[2].flags & MD_TokenFlag_Identifier); + } + { + result = md_tokenize_from_text(arena, str8_lit(" abc")); + T_Ok(result.tokens.count == 2); + T_Ok(result.msgs.count == 0); + + // verify white space + T_Ok(result.tokens.v[0].flags & MD_TokenFlag_Whitespace); + + // verify identifier + T_Ok(result.tokens.v[1].flags & MD_TokenFlag_Identifier); + } +} diff --git a/src/metagen/metagen.c b/src/metagen/metagen.c index 2bce9e88..0d3e1f98 100644 --- a/src/metagen/metagen.c +++ b/src/metagen/metagen.c @@ -686,8 +686,8 @@ mg_string_from_row_desc_idx(MD_Node *row_parent, MG_ColumnDescArray descs, U64 i cell_idx -= 1; } } - MD_Node *node = md_child_from_index(row_parent, cell_idx); - result = node->string; + MD_Node *node = md_child_from_index(row_parent, cell_idx); + result = node->string; }break; case MG_ColumnKind_CheckForTag: @@ -828,8 +828,8 @@ mg_eval_table_expand_expr__string(Arena *arena, MG_StrExpr *expr, MG_TableExpand }break; case MG_StrExprOp_Null: - { - str8_list_push(arena, out, expr->node->string); + { + str8_list_push(arena, out, expr->node->string); }break; case MG_StrExprOp_Dot: @@ -900,14 +900,14 @@ mg_eval_table_expand_expr__string(Arena *arena, MG_StrExpr *expr, MG_TableExpand } // rjf: push lookup string - { - B32 is_multiline = (str8_find_needle(lookup_string, 0, str8_lit("\n"), 0) < lookup_string.size); - if(is_multiline) - { - lookup_string = indented_from_string(mg_arena, lookup_string); - lookup_string = escaped_from_raw_str8(mg_arena, lookup_string); - lookup_string = escaped_from_raw_str8(mg_arena, lookup_string); - } + { + B32 is_multiline = (str8_find_needle(lookup_string, 0, str8_lit("\n"), 0) < lookup_string.size); + if(is_multiline) + { + lookup_string = indented_from_string(mg_arena, lookup_string); + lookup_string = escaped_from_raw_str8(mg_arena, lookup_string); + lookup_string = escaped_from_raw_str8(mg_arena, lookup_string); + } str8_list_push(arena, out, lookup_string); } }break; @@ -1017,10 +1017,10 @@ mg_loop_table_column_expansion(Arena *arena, String8 strexpr, MG_TableExpandInfo char_idx += 1; } } - String8 expansion_str = str8_list_join(arena, &expansion_strs, 0); + String8 expansion_str = str8_list_join(arena, &expansion_strs, 0); if(expansion_str.size != 0) - { - expansion_str = raw_from_escaped_str8(mg_arena, expansion_str); + { + expansion_str = raw_from_escaped_str8(mg_arena, expansion_str); str8_list_push(arena, out, expansion_str); } } diff --git a/src/metagen/metagen_base/metagen_base_arena.c b/src/metagen/metagen_base/metagen_base_arena.c deleted file mode 100644 index 68ad2544..00000000 --- a/src/metagen/metagen_base/metagen_base_arena.c +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Arena Functions - -//- rjf: arena creation/destruction - -internal Arena * -arena_alloc_(ArenaParams *params) -{ - // rjf: round up reserve/commit sizes - U64 reserve_size = params->reserve_size; - U64 commit_size = params->commit_size; - if(params->flags & ArenaFlag_LargePages) - { - reserve_size = AlignPow2(reserve_size, os_get_system_info()->large_page_size); - commit_size = AlignPow2(commit_size, os_get_system_info()->large_page_size); - } - else - { - reserve_size = AlignPow2(reserve_size, os_get_system_info()->page_size); - commit_size = AlignPow2(commit_size, os_get_system_info()->page_size); - } - - // rjf: reserve/commit initial block - void *base = params->optional_backing_buffer; - if(base == 0) - { - if(params->flags & ArenaFlag_LargePages) - { - base = os_reserve_large(reserve_size); - os_commit_large(base, commit_size); - } - else - { - base = os_reserve(reserve_size); - os_commit(base, commit_size); - } - } - - // rjf: panic on arena creation failure -#if OS_FEATURE_GRAPHICAL - if(Unlikely(base == 0)) - { - os_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); - os_abort(1); - } -#endif - - // rjf: extract arena header & fill - Arena *arena = (Arena *)base; - arena->current = arena; - arena->flags = params->flags; - arena->cmt_size = params->commit_size; - arena->res_size = params->reserve_size; - arena->base_pos = 0; - arena->pos = ARENA_HEADER_SIZE; - arena->cmt = commit_size; - arena->res = reserve_size; -#if ARENA_FREE_LIST - arena->free_size = 0; - arena->free_last = 0; -#endif - AsanPoisonMemoryRegion(base, commit_size); - AsanUnpoisonMemoryRegion(base, ARENA_HEADER_SIZE); - return arena; -} - -internal void -arena_release(Arena *arena) -{ - for(Arena *n = arena->current, *prev = 0; n != 0; n = prev) - { - prev = n->prev; - os_release(n, n->res); - } -} - -//- rjf: arena push/pop core functions - -internal void * -arena_push(Arena *arena, U64 size, U64 align) -{ - Arena *current = arena->current; - U64 pos_pre = AlignPow2(current->pos, align); - U64 pos_pst = pos_pre + size; - - // rjf: chain, if needed - if(current->res < pos_pst && !(arena->flags & ArenaFlag_NoChain)) - { - Arena *new_block = 0; - -#if ARENA_FREE_LIST - Arena *prev_block; - for(new_block = arena->free_last, prev_block = 0; new_block != 0; prev_block = new_block, new_block = new_block->prev) - { - if(new_block->res >= AlignPow2(size, align)) - { - if(prev_block) - { - prev_block->prev = new_block->prev; - } - else - { - arena->free_last = new_block->prev; - } - arena->free_size -= new_block->res_size; - AsanUnpoisonMemoryRegion((U8*)new_block + ARENA_HEADER_SIZE, new_block->res_size - ARENA_HEADER_SIZE); - break; - } - } -#endif - - if(new_block == 0) - { - U64 res_size = current->res_size; - U64 cmt_size = current->cmt_size; - if(size + ARENA_HEADER_SIZE > res_size) - { - res_size = AlignPow2(size + ARENA_HEADER_SIZE, align); - cmt_size = AlignPow2(size + ARENA_HEADER_SIZE, align); - } - new_block = arena_alloc(.reserve_size = res_size, - .commit_size = cmt_size, - .flags = current->flags); - } - - new_block->base_pos = current->base_pos + current->res; - SLLStackPush_N(arena->current, new_block, prev); - - current = new_block; - pos_pre = AlignPow2(current->pos, align); - pos_pst = pos_pre + size; - } - - // rjf: commit new pages, if needed - if(current->cmt < pos_pst) - { - U64 cmt_pst_aligned = pos_pst + current->cmt_size-1; - cmt_pst_aligned -= cmt_pst_aligned%current->cmt_size; - U64 cmt_pst_clamped = ClampTop(cmt_pst_aligned, current->res); - U64 cmt_size = cmt_pst_clamped - current->cmt; - U8 *cmt_ptr = (U8 *)current + current->cmt; - if(current->flags & ArenaFlag_LargePages) - { - os_commit_large(cmt_ptr, cmt_size); - } - else - { - os_commit(cmt_ptr, cmt_size); - } - current->cmt = cmt_pst_clamped; - } - - // rjf: push onto current block - void *result = 0; - if(current->cmt >= pos_pst) - { - result = (U8 *)current+pos_pre; - current->pos = pos_pst; - AsanUnpoisonMemoryRegion(result, size); - } - - // rjf: panic on failure -#if OS_FEATURE_GRAPHICAL - if(Unlikely(result == 0)) - { - os_graphical_message(1, str8_lit("Fatal Allocation Failure"), str8_lit("Unexpected memory allocation failure.")); - os_abort(1); - } -#endif - - return result; -} - -internal U64 -arena_pos(Arena *arena) -{ - Arena *current = arena->current; - U64 pos = current->base_pos + current->pos; - return pos; -} - -internal void -arena_pop_to(Arena *arena, U64 pos) -{ - U64 big_pos = ClampBot(ARENA_HEADER_SIZE, pos); - Arena *current = arena->current; - -#if ARENA_FREE_LIST - for(Arena *prev = 0; current->base_pos >= big_pos; current = prev) - { - prev = current->prev; - current->pos = ARENA_HEADER_SIZE; - arena->free_size += current->res_size; - SLLStackPush_N(arena->free_last, current, prev); - AsanPoisonMemoryRegion((U8*)current + ARENA_HEADER_SIZE, current->res_size - ARENA_HEADER_SIZE); - } -#else - for(Arena *prev = 0; current->base_pos >= big_pos; current = prev) - { - prev = current->prev; - os_release(current, current->res); - } -#endif - arena->current = current; - U64 new_pos = big_pos - current->base_pos; - AssertAlways(new_pos <= current->pos); - AsanPoisonMemoryRegion((U8*)current + new_pos, (current->pos - new_pos)); - current->pos = new_pos; -} - -//- rjf: arena push/pop helpers - -internal void -arena_clear(Arena *arena) -{ - arena_pop_to(arena, 0); -} - -internal void -arena_pop(Arena *arena, U64 amt) -{ - U64 pos_old = arena_pos(arena); - U64 pos_new = pos_old; - if(amt < pos_old) - { - pos_new = pos_old - amt; - } - arena_pop_to(arena, pos_new); -} - -//- rjf: temporary arena scopes - -internal Temp -temp_begin(Arena *arena) -{ - U64 pos = arena_pos(arena); - Temp temp = {arena, pos}; - return temp; -} - -internal void -temp_end(Temp temp) -{ - arena_pop_to(temp.arena, temp.pos); -} diff --git a/src/metagen/metagen_base/metagen_base_arena.h b/src/metagen/metagen_base/metagen_base_arena.h deleted file mode 100644 index 8696f49f..00000000 --- a/src/metagen/metagen_base/metagen_base_arena.h +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_ARENA_H -#define BASE_ARENA_H - -//////////////////////////////// -//~ rjf: Constants - -#define ARENA_HEADER_SIZE 128 - -//////////////////////////////// -//~ rjf: Types - -typedef U64 ArenaFlags; -enum -{ - ArenaFlag_NoChain = (1<<0), - ArenaFlag_LargePages = (1<<1), -}; - -typedef struct ArenaParams ArenaParams; -struct ArenaParams -{ - ArenaFlags flags; - U64 reserve_size; - U64 commit_size; - void *optional_backing_buffer; -}; - -typedef struct Arena Arena; -struct Arena -{ - Arena *prev; // previous arena in chain - Arena *current; // current arena in chain - ArenaFlags flags; - U64 cmt_size; - U64 res_size; - U64 base_pos; - U64 pos; - U64 cmt; - U64 res; -#if ARENA_FREE_LIST - U64 free_size; - Arena *free_last; -#endif -}; -StaticAssert(sizeof(Arena) <= ARENA_HEADER_SIZE, arena_header_size_check); - -typedef struct Temp Temp; -struct Temp -{ - Arena *arena; - U64 pos; -}; - -//////////////////////////////// -//~ rjf: Global Defaults - -global U64 arena_default_reserve_size = MB(64); -global U64 arena_default_commit_size = KB(64); -global ArenaFlags arena_default_flags = 0; - -//////////////////////////////// -//~ rjf: Arena Functions - -//- rjf: arena creation/destruction -internal Arena *arena_alloc_(ArenaParams *params); -#define arena_alloc(...) arena_alloc_(&(ArenaParams){.reserve_size = arena_default_reserve_size, .commit_size = arena_default_commit_size, .flags = arena_default_flags, __VA_ARGS__}) -internal void arena_release(Arena *arena); - -//- rjf: arena push/pop/pos core functions -internal void *arena_push(Arena *arena, U64 size, U64 align); -internal U64 arena_pos(Arena *arena); -internal void arena_pop_to(Arena *arena, U64 pos); - -//- rjf: arena push/pop helpers -internal void arena_clear(Arena *arena); -internal void arena_pop(Arena *arena, U64 amt); - -//- rjf: temporary arena scopes -internal Temp temp_begin(Arena *arena); -internal void temp_end(Temp temp); - -//- rjf: push helper macros -#define push_array_no_zero_aligned(a, T, c, align) (T *)arena_push((a), sizeof(T)*(c), (align)) -#define push_array_aligned(a, T, c, align) (T *)MemoryZero(push_array_no_zero_aligned(a, T, c, align), sizeof(T)*(c)) -#define push_array_no_zero(a, T, c) push_array_no_zero_aligned(a, T, c, Max(8, AlignOf(T))) -#define push_array(a, T, c) push_array_aligned(a, T, c, Max(8, AlignOf(T))) - -#endif // BASE_ARENA_H diff --git a/src/metagen/metagen_base/metagen_base_command_line.c b/src/metagen/metagen_base/metagen_base_command_line.c deleted file mode 100644 index ec726752..00000000 --- a/src/metagen/metagen_base/metagen_base_command_line.c +++ /dev/null @@ -1,250 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ NOTE(rjf): Command Line Option Parsing - -internal U64 -cmd_line_hash_from_string(String8 string) -{ - U64 result = 5381; - for(U64 i = 0; i < string.size; i += 1) - { - result = ((result << 5) + result) + string.str[i]; - } - return result; -} - -internal CmdLineOpt ** -cmd_line_slot_from_string(CmdLine *cmd_line, String8 string) -{ - CmdLineOpt **slot = 0; - if(cmd_line->option_table_size != 0) - { - U64 hash = cmd_line_hash_from_string(string); - U64 bucket = hash % cmd_line->option_table_size; - slot = &cmd_line->option_table[bucket]; - } - return slot; -} - -internal CmdLineOpt * -cmd_line_opt_from_slot(CmdLineOpt **slot, String8 string) -{ - CmdLineOpt *result = 0; - for(CmdLineOpt *var = *slot; var; var = var->hash_next) - { - if(str8_match(string, var->string, 0)) - { - result = var; - break; - } - } - return result; -} - -internal void -cmd_line_push_opt(CmdLineOptList *list, CmdLineOpt *var) -{ - SLLQueuePush(list->first, list->last, var); - list->count += 1; -} - -internal CmdLineOpt * -cmd_line_insert_opt(Arena *arena, CmdLine *cmd_line, String8 string, String8List values) -{ - CmdLineOpt *var = 0; - CmdLineOpt **slot = cmd_line_slot_from_string(cmd_line, string); - CmdLineOpt *existing_var = cmd_line_opt_from_slot(slot, string); - if(existing_var != 0) - { - var = existing_var; - } - else - { - var = push_array(arena, CmdLineOpt, 1); - var->hash_next = *slot; - var->hash = cmd_line_hash_from_string(string); - var->string = push_str8_copy(arena, string); - var->value_strings = values; - StringJoin join = {0}; - join.pre = str8_lit(""); - join.sep = str8_lit(","); - join.post = str8_lit(""); - var->value_string = str8_list_join(arena, &var->value_strings, &join); - *slot = var; - cmd_line_push_opt(&cmd_line->options, var); - } - return var; -} - -internal CmdLine -cmd_line_from_string_list(Arena *arena, String8List command_line) -{ - CmdLine parsed = {0}; - parsed.exe_name = command_line.first->string; - - // NOTE(rjf): Set up config option table. - { - parsed.option_table_size = 4096; - parsed.option_table = push_array(arena, CmdLineOpt *, parsed.option_table_size); - } - - // NOTE(rjf): Parse command line. - B32 after_passthrough_option = 0; - B32 first_passthrough = 1; - for(String8Node *node = command_line.first->next, *next = 0; node != 0; node = next) - { - next = node->next; - String8 option_name = node->string; - - // NOTE(rjf): Look at --, -, or / (only on Windows) at the start of an - // argument to determine if it's a flag option. All arguments after a - // single "--" (with no trailing string on the command line will be - // considered as input files. - B32 is_option = 1; - if(after_passthrough_option == 0) - { - if(str8_match(node->string, str8_lit("--"), 0)) - { - after_passthrough_option = 1; - is_option = 0; - } - else if(str8_match(str8_prefix(node->string, 2), str8_lit("--"), 0)) - { - option_name = str8_skip(option_name, 2); - } - else if(str8_match(str8_prefix(node->string, 1), str8_lit("-"), 0)) - { - option_name = str8_skip(option_name, 1); - } - else if(operating_system_from_context() == OperatingSystem_Windows && - str8_match(str8_prefix(node->string, 1), str8_lit("/"), 0)) - { - option_name = str8_skip(option_name, 1); - } - else - { - is_option = 0; - } - } - else - { - is_option = 0; - } - - // NOTE(rjf): This string is an option. - if(is_option) - { - B32 has_arguments = 0; - U64 arg_signifier_position1 = str8_find_needle(option_name, 0, str8_lit(":"), 0); - U64 arg_signifier_position2 = str8_find_needle(option_name, 0, str8_lit("="), 0); - U64 arg_signifier_position = Min(arg_signifier_position1, arg_signifier_position2); - String8 arg_portion_this_string = str8_skip(option_name, arg_signifier_position+1); - if(arg_signifier_position < option_name.size) - { - has_arguments = 1; - } - option_name = str8_prefix(option_name, arg_signifier_position); - - String8List arguments = {0}; - - // NOTE(rjf): Parse arguments. - if(has_arguments) - { - for(String8Node *n = node; n; n = n->next) - { - next = n->next; - - String8 string = n->string; - if(n == node) - { - string = arg_portion_this_string; - } - - U8 splits[] = { ',' }; - String8List args_in_this_string = str8_split(arena, string, splits, ArrayCount(splits), 0); - for(String8Node *sub_arg = args_in_this_string.first; sub_arg; sub_arg = sub_arg->next) - { - str8_list_push(arena, &arguments, sub_arg->string); - } - if(!str8_match(str8_postfix(n->string, 1), str8_lit(","), 0) && - (n != node || arg_portion_this_string.size != 0)) - { - break; - } - } - } - - // NOTE(rjf): Register config variable. - cmd_line_insert_opt(arena, &parsed, option_name, arguments); - } - - // NOTE(rjf): Default path, treat as a passthrough config option to be - // handled by tool-specific code. - else if(!str8_match(node->string, str8_lit("--"), 0) || !first_passthrough) - { - str8_list_push(arena, &parsed.inputs, node->string); - after_passthrough_option = 1; - first_passthrough = 0; - } - } - - // rjf: fill argc/argv - parsed.argc = command_line.node_count; - parsed.argv = push_array(arena, char *, parsed.argc); - { - U64 idx = 0; - for(String8Node *n = command_line.first; n != 0; n = n->next) - { - parsed.argv[idx] = (char *)push_str8_copy(arena, n->string).str; - idx += 1; - } - } - - return parsed; -} - -internal CmdLineOpt * -cmd_line_opt_from_string(CmdLine *cmd_line, String8 name) -{ - return cmd_line_opt_from_slot(cmd_line_slot_from_string(cmd_line, name), name); -} - -internal String8List -cmd_line_strings(CmdLine *cmd_line, String8 name) -{ - String8List result = {0}; - CmdLineOpt *var = cmd_line_opt_from_string(cmd_line, name); - if(var != 0) - { - result = var->value_strings; - } - return result; -} - -internal String8 -cmd_line_string(CmdLine *cmd_line, String8 name) -{ - String8 result = {0}; - CmdLineOpt *var = cmd_line_opt_from_string(cmd_line, name); - if(var != 0) - { - result = var->value_string; - } - return result; -} - -internal B32 -cmd_line_has_flag(CmdLine *cmd_line, String8 name) -{ - CmdLineOpt *var = cmd_line_opt_from_string(cmd_line, name); - return(var != 0); -} - -internal B32 -cmd_line_has_argument(CmdLine *cmd_line, String8 name) -{ - CmdLineOpt *var = cmd_line_opt_from_string(cmd_line, name); - return(var != 0 && var->value_strings.node_count > 0); -} diff --git a/src/metagen/metagen_base/metagen_base_command_line.h b/src/metagen/metagen_base/metagen_base_command_line.h deleted file mode 100644 index acd7f17b..00000000 --- a/src/metagen/metagen_base/metagen_base_command_line.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_COMMAND_LINE_H -#define BASE_COMMAND_LINE_H - -//////////////////////////////// -//~ rjf: Parsed Command Line Types - -typedef struct CmdLineOpt CmdLineOpt; -struct CmdLineOpt -{ - CmdLineOpt *next; - CmdLineOpt *hash_next; - U64 hash; - String8 string; - String8List value_strings; - String8 value_string; -}; - -typedef struct CmdLineOptList CmdLineOptList; -struct CmdLineOptList -{ - U64 count; - CmdLineOpt *first; - CmdLineOpt *last; -}; - -typedef struct CmdLine CmdLine; -struct CmdLine -{ - String8 exe_name; - CmdLineOptList options; - String8List inputs; - U64 option_table_size; - CmdLineOpt **option_table; - U64 argc; - char **argv; -}; - -//////////////////////////////// -//~ NOTE(rjf): Command Line Option Parsing - -internal U64 cmd_line_hash_from_string(String8 string); -internal CmdLineOpt** cmd_line_slot_from_string(CmdLine *cmd_line, String8 string); -internal CmdLineOpt* cmd_line_opt_from_slot(CmdLineOpt **slot, String8 string); -internal void cmd_line_push_opt(CmdLineOptList *list, CmdLineOpt *var); -internal CmdLineOpt* cmd_line_insert_opt(Arena *arena, CmdLine *cmd_line, String8 string, String8List values); -internal CmdLine cmd_line_from_string_list(Arena *arena, String8List arguments); -internal CmdLineOpt* cmd_line_opt_from_string(CmdLine *cmd_line, String8 name); -internal String8List cmd_line_strings(CmdLine *cmd_line, String8 name); -internal String8 cmd_line_string(CmdLine *cmd_line, String8 name); -internal B32 cmd_line_has_flag(CmdLine *cmd_line, String8 name); -internal B32 cmd_line_has_argument(CmdLine *cmd_line, String8 name); - -#endif // BASE_COMMAND_LINE_H diff --git a/src/metagen/metagen_base/metagen_base_context_cracking.h b/src/metagen/metagen_base/metagen_base_context_cracking.h deleted file mode 100644 index bac701dd..00000000 --- a/src/metagen/metagen_base/metagen_base_context_cracking.h +++ /dev/null @@ -1,247 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_CONTEXT_CRACKING_H -#define BASE_CONTEXT_CRACKING_H - -//////////////////////////////// -//~ rjf: Clang OS/Arch Cracking - -#if defined(__clang__) - -# define COMPILER_CLANG 1 - -# if defined(_WIN32) -# define OS_WINDOWS 1 -# elif defined(__gnu_linux__) || defined(__linux__) -# define OS_LINUX 1 -# elif defined(__APPLE__) && defined(__MACH__) -# define OS_MAC 1 -# else -# error This compiler/OS combo is not supported. -# endif - -# if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) -# define ARCH_X64 1 -# elif defined(i386) || defined(__i386) || defined(__i386__) -# define ARCH_X86 1 -# elif defined(__aarch64__) -# define ARCH_ARM64 1 -# elif defined(__arm__) -# define ARCH_ARM32 1 -# else -# error Architecture not supported. -# endif - -//////////////////////////////// -//~ rjf: MSVC OS/Arch Cracking - -#elif defined(_MSC_VER) - -# define COMPILER_MSVC 1 - -# if _MSC_VER >= 1920 -# define COMPILER_MSVC_YEAR 2019 -# elif _MSC_VER >= 1910 -# define COMPILER_MSVC_YEAR 2017 -# elif _MSC_VER >= 1900 -# define COMPILER_MSVC_YEAR 2015 -# elif _MSC_VER >= 1800 -# define COMPILER_MSVC_YEAR 2013 -# elif _MSC_VER >= 1700 -# define COMPILER_MSVC_YEAR 2012 -# elif _MSC_VER >= 1600 -# define COMPILER_MSVC_YEAR 2010 -# elif _MSC_VER >= 1500 -# define COMPILER_MSVC_YEAR 2008 -# elif _MSC_VER >= 1400 -# define COMPILER_MSVC_YEAR 2005 -# else -# define COMPILER_MSVC_YEAR 0 -# endif - -# if defined(_WIN32) -# define OS_WINDOWS 1 -# else -# error This compiler/OS combo is not supported. -# endif - -# if defined(_M_AMD64) -# define ARCH_X64 1 -# elif defined(_M_IX86) -# define ARCH_X86 1 -# elif defined(_M_ARM64) -# define ARCH_ARM64 1 -# elif defined(_M_ARM) -# define ARCH_ARM32 1 -# else -# error Architecture not supported. -# endif - -//////////////////////////////// -//~ rjf: GCC OS/Arch Cracking - -#elif defined(__GNUC__) || defined(__GNUG__) - -# define COMPILER_GCC 1 - -# if defined(__gnu_linux__) || defined(__linux__) -# define OS_LINUX 1 -# else -# error This compiler/OS combo is not supported. -# endif - -# if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) -# define ARCH_X64 1 -# elif defined(i386) || defined(__i386) || defined(__i386__) -# define ARCH_X86 1 -# elif defined(__aarch64__) -# define ARCH_ARM64 1 -# elif defined(__arm__) -# define ARCH_ARM32 1 -# else -# error Architecture not supported. -# endif - -#else -# error Compiler not supported. -#endif - -//////////////////////////////// -//~ rjf: Arch Cracking - -#if defined(ARCH_X64) -# define ARCH_64BIT 1 -#elif defined(ARCH_X86) -# define ARCH_32BIT 1 -#endif - -#if ARCH_ARM32 || ARCH_ARM64 || ARCH_X64 || ARCH_X86 -# define ARCH_LITTLE_ENDIAN 1 -#else -# error Endianness of this architecture not understood by context cracker. -#endif - -//////////////////////////////// -//~ rjf: Language Cracking - -#if defined(__cplusplus) -# define LANG_CPP 1 -#else -# define LANG_C 1 -#endif - -//////////////////////////////// -//~ rjf: Build Option Cracking - -#if !defined(BUILD_DEBUG) -# define BUILD_DEBUG 1 -#endif - -#if !defined(BUILD_SUPPLEMENTARY_UNIT) -# define BUILD_SUPPLEMENTARY_UNIT 0 -#endif - -#if !defined(BUILD_ENTRY_DEFINING_UNIT) -# define BUILD_ENTRY_DEFINING_UNIT 1 -#endif - -#if !defined(BUILD_CONSOLE_INTERFACE) -# define BUILD_CONSOLE_INTERFACE 0 -#endif - -#if !defined(BUILD_VERSION_MAJOR) -# define BUILD_VERSION_MAJOR 0 -#endif - -#if !defined(BUILD_VERSION_MINOR) -# define BUILD_VERSION_MINOR 9 -#endif - -#if !defined(BUILD_VERSION_PATCH) -# define BUILD_VERSION_PATCH 14 -#endif - -#define BUILD_VERSION_STRING_LITERAL Stringify(BUILD_VERSION_MAJOR) "." Stringify(BUILD_VERSION_MINOR) "." Stringify(BUILD_VERSION_PATCH) -#if BUILD_DEBUG -# define BUILD_MODE_STRING_LITERAL_APPEND " [Debug]" -#else -# define BUILD_MODE_STRING_LITERAL_APPEND "" -#endif -#if defined(BUILD_GIT_HASH) -# define BUILD_GIT_HASH_STRING_LITERAL_APPEND " [" BUILD_GIT_HASH "]" -#else -# define BUILD_GIT_HASH_STRING_LITERAL_APPEND "" -#endif - -#if !defined(BUILD_TITLE) -# define BUILD_TITLE "Untitled" -#endif - -#if !defined(BUILD_RELEASE_PHASE_STRING_LITERAL) -# define BUILD_RELEASE_PHASE_STRING_LITERAL "ALPHA" -#endif - -#if !defined(BUILD_ISSUES_LINK_STRING_LITERAL) -# define BUILD_ISSUES_LINK_STRING_LITERAL "https://github.com/EpicGamesExt/raddebugger/issues" -#endif - -#define BUILD_TITLE_STRING_LITERAL BUILD_TITLE " (" BUILD_VERSION_STRING_LITERAL " " BUILD_RELEASE_PHASE_STRING_LITERAL ") - " __DATE__ "" BUILD_GIT_HASH_STRING_LITERAL_APPEND BUILD_MODE_STRING_LITERAL_APPEND - -//////////////////////////////// -//~ rjf: Zero All Undefined Options - -#if !defined(ARCH_32BIT) -# define ARCH_32BIT 0 -#endif -#if !defined(ARCH_64BIT) -# define ARCH_64BIT 0 -#endif -#if !defined(ARCH_X64) -# define ARCH_X64 0 -#endif -#if !defined(ARCH_X86) -# define ARCH_X86 0 -#endif -#if !defined(ARCH_ARM64) -# define ARCH_ARM64 0 -#endif -#if !defined(ARCH_ARM32) -# define ARCH_ARM32 0 -#endif -#if !defined(COMPILER_MSVC) -# define COMPILER_MSVC 0 -#endif -#if !defined(COMPILER_GCC) -# define COMPILER_GCC 0 -#endif -#if !defined(COMPILER_CLANG) -# define COMPILER_CLANG 0 -#endif -#if !defined(OS_WINDOWS) -# define OS_WINDOWS 0 -#endif -#if !defined(OS_LINUX) -# define OS_LINUX 0 -#endif -#if !defined(OS_MAC) -# define OS_MAC 0 -#endif -#if !defined(LANG_CPP) -# define LANG_CPP 0 -#endif -#if !defined(LANG_C) -# define LANG_C 0 -#endif - -//////////////////////////////// -//~ rjf: Unsupported Errors - -#if ARCH_X86 -# error You tried to build in x86 (32 bit) mode, but currently, only building in x64 (64 bit) mode is supported. -#endif -#if !ARCH_X64 -# error You tried to build with an unsupported architecture. Currently, only building in x64 mode is supported. -#endif - -#endif // BASE_CONTEXT_CRACKING_H diff --git a/src/metagen/metagen_base/metagen_base_core.c b/src/metagen/metagen_base/metagen_base_core.c deleted file mode 100644 index b392e4a0..00000000 --- a/src/metagen/metagen_base/metagen_base_core.c +++ /dev/null @@ -1,604 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Safe Casts - -internal U16 -safe_cast_u16(U32 x) -{ - AssertAlways(x <= max_U16); - U16 result = (U16)x; - return result; -} - -internal U32 -safe_cast_u32(U64 x) -{ - AssertAlways(x <= max_U32); - U32 result = (U32)x; - return result; -} - -internal S32 -safe_cast_s32(S64 x) -{ - AssertAlways(x <= max_S32); - S32 result = (S32)x; - return result; -} - -//////////////////////////////// -//~ rjf: Large Base Type Functions - -internal U128 -u128_zero(void) -{ - U128 v = {0}; - return v; -} - -internal U128 -u128_make(U64 v0, U64 v1) -{ - U128 v = {v0, v1}; - return v; -} - -internal B32 -u128_match(U128 a, U128 b) -{ - return MemoryMatchStruct(&a, &b); -} - -//////////////////////////////// -//~ rjf: Bit Patterns - -internal U32 -u32_from_u64_saturate(U64 x){ - U32 x32 = (x > max_U32)?max_U32:(U32)x; - return(x32); -} - -internal U64 -u64_up_to_pow2(U64 x){ - if (x == 0){ - x = 1; - } - else{ - x -= 1; - x |= (x >> 1); - x |= (x >> 2); - x |= (x >> 4); - x |= (x >> 8); - x |= (x >> 16); - x |= (x >> 32); - x += 1; - } - return(x); -} - -internal S32 -extend_sign32(U32 x, U32 size){ - U32 high_bit = size * 8; - U32 shift = 32 - high_bit; - S32 result = ((S32)x << shift) >> shift; - return result; -} - -internal S64 -extend_sign64(U64 x, U64 size){ - U64 high_bit = size * 8; - U64 shift = 64 - high_bit; - S64 result = ((S64)x << shift) >> shift; - return result; -} - -internal F32 -inf32(void){ - union { U32 u; F32 f; } x; - x.u = exponent32; - return(x.f); -} - -internal F32 -neg_inf32(void){ - union { U32 u; F32 f; } x; - x.u = sign32 | exponent32; - return(x.f); -} - -internal U16 -bswap_u16(U16 x) -{ - U16 result = (((x & 0xFF00) >> 8) | - ((x & 0x00FF) << 8)); - return result; -} - -internal U32 -bswap_u32(U32 x) -{ - U32 result = (((x & 0xFF000000) >> 24) | - ((x & 0x00FF0000) >> 8) | - ((x & 0x0000FF00) << 8) | - ((x & 0x000000FF) << 24)); - return result; -} - -internal U64 -bswap_u64(U64 x) -{ - // TODO(nick): naive bswap, replace with something that is faster like an intrinsic - U64 result = (((x & 0xFF00000000000000ULL) >> 56) | - ((x & 0x00FF000000000000ULL) >> 40) | - ((x & 0x0000FF0000000000ULL) >> 24) | - ((x & 0x000000FF00000000ULL) >> 8) | - ((x & 0x00000000FF000000ULL) << 8) | - ((x & 0x0000000000FF0000ULL) << 24) | - ((x & 0x000000000000FF00ULL) << 40) | - ((x & 0x00000000000000FFULL) << 56)); - return result; -} - -#if COMPILER_MSVC || (COMPILER_CLANG && OS_WINDOWS) - -internal U64 -count_bits_set32(U32 val) -{ - return __popcnt(val); -} - -internal U64 -count_bits_set64(U64 val) -{ - return __popcnt64(val); -} - -internal U64 -ctz32(U32 mask) -{ - unsigned long idx; - _BitScanForward(&idx, mask); - return idx; -} - -internal U64 -ctz64(U64 mask) -{ - unsigned long idx; - _BitScanForward64(&idx, mask); - return idx; -} - -internal U64 -clz32(U32 mask) -{ - unsigned long idx; - _BitScanReverse(&idx, mask); - return 31 - idx; -} - -internal U64 -clz64(U64 mask) -{ - unsigned long idx; - _BitScanReverse64(&idx, mask); - return 63 - idx; -} - -#elif COMPILER_CLANG || COMPILER_GCC - -internal U64 -count_bits_set32(U32 val) -{ - return __builtin_popcount(val); -} - -internal U64 -count_bits_set64(U64 val) -{ - return __builtin_popcountll(val); -} - -internal U64 -ctz32(U32 val) -{ - return __builtin_ctz(val); -} - -internal U64 -clz32(U32 val) -{ - return __builtin_clz(val); -} - -internal U64 -ctz64(U64 val) -{ - return __builtin_ctzll(val); -} - -internal U64 -clz64(U64 val) -{ - return __builtin_clzll(val); -} - -#else -# error "Bit intrinsic functions not defined for this compiler." -#endif - -//////////////////////////////// -//~ rjf: Enum -> Sign - -internal S32 -sign_from_side_S32(Side side){ - return((side == Side_Min)?-1:1); -} - -internal F32 -sign_from_side_F32(Side side){ - return((side == Side_Min)?-1.f:1.f); -} - -//////////////////////////////// -//~ rjf: Memory Functions - -internal B32 -memory_is_zero(void *ptr, U64 size){ - B32 result = 1; - - // break down size - U64 extra = (size&0x7); - U64 count8 = (size >> 3); - - // check with 8-byte stride - U64 *p64 = (U64*)ptr; - if(result) - { - for (U64 i = 0; i < count8; i += 1, p64 += 1){ - if (*p64 != 0){ - result = 0; - goto done; - } - } - } - - // check extra - if(result) - { - U8 *p8 = (U8*)p64; - for (U64 i = 0; i < extra; i += 1, p8 += 1){ - if (*p8 != 0){ - result = 0; - goto done; - } - } - } - - done:; - return(result); -} - -//////////////////////////////// -//~ rjf: Text 2D Coordinate/Range Functions - -internal TxtPt -txt_pt(S64 line, S64 column) -{ - TxtPt p = {0}; - p.line = line; - p.column = column; - return p; -} - -internal B32 -txt_pt_match(TxtPt a, TxtPt b) -{ - return a.line == b.line && a.column == b.column; -} - -internal B32 -txt_pt_less_than(TxtPt a, TxtPt b) -{ - B32 result = 0; - if(a.line < b.line) - { - result = 1; - } - else if(a.line == b.line) - { - result = a.column < b.column; - } - return result; -} - -internal TxtPt -txt_pt_min(TxtPt a, TxtPt b) -{ - TxtPt result = b; - if(txt_pt_less_than(a, b)) - { - result = a; - } - return result; -} - -internal TxtPt -txt_pt_max(TxtPt a, TxtPt b) -{ - TxtPt result = a; - if(txt_pt_less_than(a, b)) - { - result = b; - } - return result; -} - -internal TxtRng -txt_rng(TxtPt min, TxtPt max) -{ - TxtRng range = {0}; - if(txt_pt_less_than(min, max)) - { - range.min = min; - range.max = max; - } - else - { - range.min = max; - range.max = min; - } - return range; -} - -internal TxtRng -txt_rng_intersect(TxtRng a, TxtRng b) -{ - TxtRng result = {0}; - result.min = txt_pt_max(a.min, b.min); - result.max = txt_pt_min(a.max, b.max); - if(txt_pt_less_than(result.max, result.min)) - { - MemoryZeroStruct(&result); - } - return result; -} - -internal TxtRng -txt_rng_union(TxtRng a, TxtRng b) -{ - TxtRng result = {0}; - result.min = txt_pt_min(a.min, b.min); - result.max = txt_pt_max(a.max, b.max); - return result; -} - -internal B32 -txt_rng_contains(TxtRng r, TxtPt pt) -{ - B32 result = ((txt_pt_less_than(r.min, pt) || txt_pt_match(r.min, pt)) && - txt_pt_less_than(pt, r.max)); - return result; -} - -//////////////////////////////// -//~ rjf: Toolchain/Environment Enum Functions - -internal U64 -bit_size_from_arch(Arch arch) -{ - // TODO(rjf): metacode - U64 arch_bitsize = 0; - switch(arch) - { - case Arch_x64: arch_bitsize = 64; break; - case Arch_x86: arch_bitsize = 32; break; - case Arch_arm64: arch_bitsize = 64; break; - case Arch_arm32: arch_bitsize = 32; break; - default: break; - } - return arch_bitsize; -} - -internal U64 -max_instruction_size_from_arch(Arch arch) -{ - // TODO(rjf): make this real - return 64; -} - -internal OperatingSystem -operating_system_from_context(void){ - OperatingSystem os = OperatingSystem_Null; -#if OS_WINDOWS - os = OperatingSystem_Windows; -#elif OS_LINUX - os = OperatingSystem_Linux; -#elif OS_MAC - os = OperatingSystem_Mac; -#endif - return os; -} - -internal Arch -arch_from_context(void){ - Arch arch = Arch_Null; -#if ARCH_X64 - arch = Arch_x64; -#elif ARCH_X86 - arch = Arch_x86; -#elif ARCH_ARM64 - arch = Arch_arm64; -#elif ARCH_ARM32 - arch = Arch_arm32; -#endif - return arch; -} - -internal Compiler -compiler_from_context(void){ - Compiler compiler = Compiler_Null; -#if COMPILER_MSVC - compiler = Compiler_msvc; -#elif COMPILER_GCC - compiler = Compiler_gcc; -#elif COMPILER_CLANG - compiler = Compiler_clang; -#endif - return compiler; -} - -//////////////////////////////// -//~ rjf: Time Functions - -internal DenseTime -dense_time_from_date_time(DateTime date_time){ - DenseTime result = 0; - result += date_time.year; - result *= 12; - result += date_time.mon; - result *= 31; - result += date_time.day; - result *= 24; - result += date_time.hour; - result *= 60; - result += date_time.min; - result *= 61; - result += date_time.sec; - result *= 1000; - result += date_time.msec; - return(result); -} - -internal DateTime -date_time_from_dense_time(DenseTime time){ - DateTime result = {0}; - result.msec = time%1000; - time /= 1000; - result.sec = time%61; - time /= 61; - result.min = time%60; - time /= 60; - result.hour = time%24; - time /= 24; - result.day = time%31; - time /= 31; - result.mon = time%12; - time /= 12; - Assert(time <= max_U32); - result.year = (U32)time; - return(result); -} - -internal DateTime -date_time_from_micro_seconds(U64 time){ - DateTime result = {0}; - result.micro_sec = time%1000; - time /= 1000; - result.msec = time%1000; - time /= 1000; - result.sec = time%60; - time /= 60; - result.min = time%60; - time /= 60; - result.hour = time%24; - time /= 24; - result.day = time%31; - time /= 31; - result.mon = time%12; - time /= 12; - Assert(time <= max_U32); - result.year = (U32)time; - return(result); -} - -internal DateTime -date_time_from_unix_time(U64 unix_time) -{ - DateTime date = {0}; - date.year = 1970; - date.day = 1 + (unix_time / 86400); - date.sec = (U32)unix_time % 60; - date.min = (U32)(unix_time / 60) % 60; - date.hour = (U32)(unix_time / 3600) % 24; - - for(;;) - { - for(date.month = 0; date.month < 12; ++date.month) - { - U64 c = 0; - switch(date.month) - { - case Month_Jan: c = 31; break; - case Month_Feb: - { - if((date.year % 4 == 0) && ((date.year % 100) != 0 || (date.year % 400) == 0)) - { - c = 29; - } - else - { - c = 28; - } - } break; - case Month_Mar: c = 31; break; - case Month_Apr: c = 30; break; - case Month_May: c = 31; break; - case Month_Jun: c = 30; break; - case Month_Jul: c = 31; break; - case Month_Aug: c = 31; break; - case Month_Sep: c = 30; break; - case Month_Oct: c = 31; break; - case Month_Nov: c = 30; break; - case Month_Dec: c = 31; break; - default: InvalidPath; - } - if(date.day <= c) - { - goto exit; - } - date.day -= c; - } - ++date.year; - } - exit:; - - return date; -} - -//////////////////////////////// -//~ rjf: Non-Fancy Ring Buffer Reads/Writes - -internal U64 -ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size) -{ - Assert(src_data_size <= ring_size); - { - U64 ring_off = ring_pos%ring_size; - U64 bytes_before_split = ring_size-ring_off; - U64 pre_split_bytes = Min(bytes_before_split, src_data_size); - U64 pst_split_bytes = src_data_size-pre_split_bytes; - void *pre_split_data = src_data; - void *pst_split_data = ((U8 *)src_data + pre_split_bytes); - MemoryCopy(ring_base+ring_off, pre_split_data, pre_split_bytes); - MemoryCopy(ring_base+0, pst_split_data, pst_split_bytes); - } - return src_data_size; -} - -internal U64 -ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size) -{ - Assert(read_size <= ring_size); - { - U64 ring_off = ring_pos%ring_size; - U64 bytes_before_split = ring_size-ring_off; - U64 pre_split_bytes = Min(bytes_before_split, read_size); - U64 pst_split_bytes = read_size-pre_split_bytes; - MemoryCopy(dst_data, ring_base+ring_off, pre_split_bytes); - MemoryCopy((U8 *)dst_data + pre_split_bytes, ring_base+0, pst_split_bytes); - } - return read_size; -} diff --git a/src/metagen/metagen_base/metagen_base_core.h b/src/metagen/metagen_base/metagen_base_core.h deleted file mode 100644 index 191e1e7f..00000000 --- a/src/metagen/metagen_base/metagen_base_core.h +++ /dev/null @@ -1,888 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_CORE_H -#define BASE_CORE_H - -//////////////////////////////// -//~ rjf: Foreign Includes - -#include -#include -#include -#include -#include - -//////////////////////////////// -//~ rjf: Codebase Keywords - -#define internal static -#define global static -#define local_persist static - -#if COMPILER_MSVC || (COMPILER_CLANG && OS_WINDOWS) -# pragma section(".rdata$", read) -# define read_only __declspec(allocate(".rdata$")) -#elif (COMPILER_CLANG && OS_LINUX) -# define read_only __attribute__((section(".rodata"))) -#else -// NOTE(rjf): I don't know of a useful way to do this in GCC land. -// __attribute__((section(".rodata"))) looked promising, but it introduces a -// strange warning about malformed section attributes, and it doesn't look -// like writing to that section reliably produces access violations, strangely -// enough. (It does on Clang) -# define read_only -#endif - -#if COMPILER_MSVC -# define thread_static __declspec(thread) -#elif COMPILER_CLANG || COMPILER_GCC -# define thread_static __thread -#endif - -#if COMPILER_MSVC -# define force_inline __forceinline -#elif COMPILER_CLANG || COMPILER_GCC -# define force_inline __attribute__((always_inline)) -#endif - -//////////////////////////////// -//~ rjf: Linkage Keyword Macros - -#if OS_WINDOWS -# define shared_function C_LINKAGE __declspec(dllexport) -#else -# define shared_function C_LINKAGE -#endif - -#if LANG_CPP -# define C_LINKAGE_BEGIN extern "C"{ -# define C_LINKAGE_END } -# define C_LINKAGE extern "C" -#else -# define C_LINKAGE_BEGIN -# define C_LINKAGE_END -# define C_LINKAGE -#endif - -//////////////////////////////// -//~ rjf: Units - -#define KB(n) (((U64)(n)) << 10) -#define MB(n) (((U64)(n)) << 20) -#define GB(n) (((U64)(n)) << 30) -#define TB(n) (((U64)(n)) << 40) -#define Thousand(n) ((n)*1000) -#define Million(n) ((n)*1000000) -#define Billion(n) ((n)*1000000000) - -//////////////////////////////// -//~ rjf: Branch Predictor Hints - -#if defined(__clang__) -# define Expect(expr, val) __builtin_expect((expr), (val)) -#else -# define Expect(expr, val) (expr) -#endif - -#define Likely(expr) Expect(expr,1) -#define Unlikely(expr) Expect(expr,0) - -//////////////////////////////// -//~ rjf: Clamps, Mins, Maxes - -#define Min(A,B) (((A)<(B))?(A):(B)) -#define Max(A,B) (((A)>(B))?(A):(B)) -#define ClampTop(A,X) Min(A,X) -#define ClampBot(X,B) Max(X,B) -#define Clamp(A,X,B) (((X)<(A))?(A):((X)>(B))?(B):(X)) - -//////////////////////////////// -//~ rjf: Type -> Alignment - -#if COMPILER_MSVC -# define AlignOf(T) __alignof(T) -#elif COMPILER_CLANG -# define AlignOf(T) __alignof(T) -#elif COMPILER_GCC -# define AlignOf(T) __alignof__(T) -#else -# error AlignOf not defined for this compiler. -#endif - -//////////////////////////////// -//~ rjf: Member Offsets - -#define Member(T,m) (((T*)0)->m) -#define OffsetOf(T,m) IntFromPtr(&Member(T,m)) -#define MemberFromOffset(T,ptr,off) (T)((((U8 *)ptr)+(off))) -#define CastFromMember(T,m,ptr) (T*)(((U8*)ptr) - OffsetOf(T,m)) - -//////////////////////////////// -//~ rjf: For-Loop Construct Macros - -#define DeferLoop(begin, end) for(int _i_ = ((begin), 0); !_i_; _i_ += 1, (end)) -#define DeferLoopChecked(begin, end) for(int _i_ = 2 * !(begin); (_i_ == 2 ? ((end), 0) : !_i_); _i_ += 1, (end)) - -#define EachIndex(it, count) (U64 it = 0; it < (count); it += 1) -#define EachElement(it, array) (U64 it = 0; it < ArrayCount(array); it += 1) -#define EachEnumVal(type, it) (type it = (type)0; it < type##_COUNT; it = (type)(it+1)) -#define EachNonZeroEnumVal(type, it) (type it = (type)1; it < type##_COUNT; it = (type)(it+1)) - -//////////////////////////////// -//~ rjf: Memory Operation Macros - -#define MemoryCopy(dst, src, size) memmove((dst), (src), (size)) -#define MemorySet(dst, byte, size) memset((dst), (byte), (size)) -#define MemoryCompare(a, b, size) memcmp((a), (b), (size)) -#define MemoryStrlen(ptr) strlen(ptr) - -#define MemoryCopyStruct(d,s) MemoryCopy((d),(s),sizeof(*(d))) -#define MemoryCopyArray(d,s) MemoryCopy((d),(s),sizeof(d)) -#define MemoryCopyTyped(d,s,c) MemoryCopy((d),(s),sizeof(*(d))*(c)) - -#define MemoryZero(s,z) memset((s),0,(z)) -#define MemoryZeroStruct(s) MemoryZero((s),sizeof(*(s))) -#define MemoryZeroArray(a) MemoryZero((a),sizeof(a)) -#define MemoryZeroTyped(m,c) MemoryZero((m),sizeof(*(m))*(c)) - -#define MemoryMatch(a,b,z) (MemoryCompare((a),(b),(z)) == 0) -#define MemoryMatchStruct(a,b) MemoryMatch((a),(b),sizeof(*(a))) -#define MemoryMatchArray(a,b) MemoryMatch((a),(b),sizeof(a)) - -#define MemoryRead(T,p,e) ( ((p)+sizeof(T)<=(e))?(*(T*)(p)):(0) ) -#define MemoryConsume(T,p,e) ( ((p)+sizeof(T)<=(e))?((p)+=sizeof(T),*(T*)((p)-sizeof(T))):((p)=(e),0) ) - -//////////////////////////////// -//~ rjf: Asserts - -#if COMPILER_MSVC -# define Trap() __debugbreak() -#elif COMPILER_CLANG || COMPILER_GCC -# define Trap() __builtin_trap() -#else -# error Unknown trap intrinsic for this compiler. -#endif - -#define AssertAlways(x) do{if(!(x)) {Trap();}}while(0) -#if BUILD_DEBUG -# define Assert(x) AssertAlways(x) -#else -# define Assert(x) (void)(x) -#endif -#define InvalidPath Assert(!"Invalid Path!") -#define NotImplemented Assert(!"Not Implemented!") -#define NoOp ((void)0) -#define StaticAssert(C, ID) global U8 Glue(ID, __LINE__)[(C)?1:-1] - -//////////////////////////////// -//~ rjf: Atomic Operations - -#if COMPILER_MSVC -# include -# if ARCH_X64 -# define ins_atomic_u64_eval(x) *((volatile U64 *)(x)) -# define ins_atomic_u64_inc_eval(x) InterlockedIncrement64((volatile __int64 *)(x)) -# define ins_atomic_u64_dec_eval(x) InterlockedDecrement64((volatile __int64 *)(x)) -# define ins_atomic_u64_eval_assign(x,c) InterlockedExchange64((volatile __int64 *)(x),(c)) -# define ins_atomic_u64_add_eval(x,c) InterlockedAdd64((volatile __int64 *)(x), c) -# define ins_atomic_u64_eval_cond_assign(x,k,c) InterlockedCompareExchange64((volatile __int64 *)(x),(k),(c)) -# define ins_atomic_u32_eval(x) *((volatile U32 *)(x)) -# define ins_atomic_u32_inc_eval(x) InterlockedIncrement((volatile LONG *)x) -# define ins_atomic_u32_eval_assign(x,c) InterlockedExchange((volatile LONG *)(x),(c)) -# define ins_atomic_u32_eval_cond_assign(x,k,c) InterlockedCompareExchange((volatile LONG *)(x),(k),(c)) -# define ins_atomic_u32_add_eval(x,c) InterlockedAdd((volatile LONG *)(x), c) -# else -# error Atomic intrinsics not defined for this compiler / architecture combination. -# endif -#elif COMPILER_CLANG || COMPILER_GCC -# define ins_atomic_u64_eval(x) __atomic_load_n(x, __ATOMIC_SEQ_CST) -# define ins_atomic_u64_inc_eval(x) (__atomic_fetch_add((volatile U64 *)(x), 1, __ATOMIC_SEQ_CST) + 1) -# define ins_atomic_u64_dec_eval(x) (__atomic_fetch_sub((volatile U64 *)(x), 1, __ATOMIC_SEQ_CST) - 1) -# define ins_atomic_u64_eval_assign(x,c) __atomic_exchange_n(x, c, __ATOMIC_SEQ_CST) -# define ins_atomic_u64_add_eval(x,c) (__atomic_fetch_add((volatile U64 *)(x), c, __ATOMIC_SEQ_CST) + (c)) -# define ins_atomic_u64_eval_cond_assign(x,k,c) ({ U64 _new = (c); __atomic_compare_exchange_n((volatile U64 *)(x),&_new,(k),0,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST); _new; }) -# define ins_atomic_u32_eval(x) __atomic_load_n(x, __ATOMIC_SEQ_CST) -# define ins_atomic_u32_inc_eval(x) (__atomic_fetch_add((volatile U32 *)(x), 1, __ATOMIC_SEQ_CST) + 1) -# define ins_atomic_u32_add_eval(x,c) (__atomic_fetch_add((volatile U32 *)(x), c, __ATOMIC_SEQ_CST) + (c)) -# define ins_atomic_u32_eval_assign(x,c) __atomic_exchange_n(x, c, __ATOMIC_SEQ_CST) -# define ins_atomic_u32_eval_cond_assign(x,k,c) ({ U32 _new = (c); __atomic_compare_exchange_n((volatile U32 *)(x),&_new,(k),0,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST); _new; }) -#else -# error Atomic intrinsics not defined for this compiler / architecture. -#endif - -#if ARCH_64BIT -# define ins_atomic_ptr_eval_cond_assign(x,k,c) (void*)ins_atomic_u64_eval_cond_assign((volatile U64 *)(x), (U64)(k), (U64)(c)) -# define ins_atomic_ptr_eval_assign(x,c) (void*)ins_atomic_u64_eval_assign((volatile U64 *)(x), (U64)(c)) -# define ins_atomic_ptr_eval(x) (void*)ins_atomic_u64_eval((volatile U64 *)x) -#elif ARCH_32BIT -# define ins_atomic_ptr_eval_cond_assign(x,k,c) (void*)ins_atomic_u32_eval_cond_assign((volatile U32 *)(x), (U32)(k), (U32)(c)) -# define ins_atomic_ptr_eval_assign(x,c) (void*)ins_atomic_u32_eval_assign((volatile U32 *)(x), (U32)(c)) -# define ins_atomic_ptr_eval(x) (void*)ins_atomic_u32_eval((volatile U32 *)x) -#else -# error Atomic intrinsics for pointers not defined for this architecture. -#endif - -//////////////////////////////// -//~ rjf: Linked List Building Macros - -//- rjf: linked list macro helpers -#define CheckNil(nil,p) ((p) == 0 || (p) == nil) -#define SetNil(nil,p) ((p) = nil) - -//- rjf: doubly-linked-lists -#define DLLInsert_NPZ(nil,f,l,p,n,next,prev) (CheckNil(nil,f) ? \ -((f) = (l) = (n), SetNil(nil,(n)->next), SetNil(nil,(n)->prev)) :\ -CheckNil(nil,p) ? \ -((n)->next = (f), (f)->prev = (n), (f) = (n), SetNil(nil,(n)->prev)) :\ -((p)==(l)) ? \ -((l)->next = (n), (n)->prev = (l), (l) = (n), SetNil(nil, (n)->next)) :\ -(((!CheckNil(nil,p) && CheckNil(nil,(p)->next)) ? (0) : ((p)->next->prev = (n))), ((n)->next = (p)->next), ((p)->next = (n)), ((n)->prev = (p)))) -#define DLLPushBack_NPZ(nil,f,l,n,next,prev) DLLInsert_NPZ(nil,f,l,l,n,next,prev) -#define DLLPushFront_NPZ(nil,f,l,n,next,prev) DLLInsert_NPZ(nil,l,f,f,n,prev,next) -#define DLLRemove_NPZ(nil,f,l,n,next,prev) (((n) == (f) ? (f) = (n)->next : (0)),\ -((n) == (l) ? (l) = (l)->prev : (0)),\ -(CheckNil(nil,(n)->prev) ? (0) :\ -((n)->prev->next = (n)->next)),\ -(CheckNil(nil,(n)->next) ? (0) :\ -((n)->next->prev = (n)->prev))) - -//- rjf: singly-linked, doubly-headed lists (queues) -#define SLLQueuePush_NZ(nil,f,l,n,next) (CheckNil(nil,f)?\ -((f)=(l)=(n),SetNil(nil,(n)->next)):\ -((l)->next=(n),(l)=(n),SetNil(nil,(n)->next))) -#define SLLQueuePushFront_NZ(nil,f,l,n,next) (CheckNil(nil,f)?\ -((f)=(l)=(n),SetNil(nil,(n)->next)):\ -((n)->next=(f),(f)=(n))) -#define SLLQueuePop_NZ(nil,f,l,next) ((f)==(l)?\ -(SetNil(nil,f),SetNil(nil,l)):\ -((f)=(f)->next)) - -//- rjf: singly-linked, singly-headed lists (stacks) -#define SLLStackPush_N(f,n,next) ((n)->next=(f), (f)=(n)) -#define SLLStackPop_N(f,next) ((f)=(f)->next) - -//- rjf: doubly-linked-list helpers -#define DLLInsert_NP(f,l,p,n,next,prev) DLLInsert_NPZ(0,f,l,p,n,next,prev) -#define DLLPushBack_NP(f,l,n,next,prev) DLLPushBack_NPZ(0,f,l,n,next,prev) -#define DLLPushFront_NP(f,l,n,next,prev) DLLPushFront_NPZ(0,f,l,n,next,prev) -#define DLLRemove_NP(f,l,n,next,prev) DLLRemove_NPZ(0,f,l,n,next,prev) -#define DLLInsert(f,l,p,n) DLLInsert_NPZ(0,f,l,p,n,next,prev) -#define DLLPushBack(f,l,n) DLLPushBack_NPZ(0,f,l,n,next,prev) -#define DLLPushFront(f,l,n) DLLPushFront_NPZ(0,f,l,n,next,prev) -#define DLLRemove(f,l,n) DLLRemove_NPZ(0,f,l,n,next,prev) - -//- rjf: singly-linked, doubly-headed list helpers -#define SLLQueuePush_N(f,l,n,next) SLLQueuePush_NZ(0,f,l,n,next) -#define SLLQueuePushFront_N(f,l,n,next) SLLQueuePushFront_NZ(0,f,l,n,next) -#define SLLQueuePop_N(f,l,next) SLLQueuePop_NZ(0,f,l,next) -#define SLLQueuePush(f,l,n) SLLQueuePush_NZ(0,f,l,n,next) -#define SLLQueuePushFront(f,l,n) SLLQueuePushFront_NZ(0,f,l,n,next) -#define SLLQueuePop(f,l) SLLQueuePop_NZ(0,f,l,next) - -//- rjf: singly-linked, singly-headed list helpers -#define SLLStackPush(f,n) SLLStackPush_N(f,n,next) -#define SLLStackPop(f) SLLStackPop_N(f,next) - -//////////////////////////////// -//~ rjf: Address Sanitizer Markup - -#if COMPILER_MSVC -# if defined(__SANITIZE_ADDRESS__) -# define ASAN_ENABLED 1 -# define NO_ASAN __declspec(no_sanitize_address) -# else -# define NO_ASAN -# endif -#elif COMPILER_CLANG -# if defined(__has_feature) -# if __has_feature(address_sanitizer) || defined(__SANITIZE_ADDRESS__) -# define ASAN_ENABLED 1 -# endif -# endif -# define NO_ASAN __attribute__((no_sanitize("address"))) -#else -# define NO_ASAN -#endif - -#if ASAN_ENABLED -#pragma comment(lib, "clang_rt.asan-x86_64.lib") -C_LINKAGE void __asan_poison_memory_region(void const volatile *addr, size_t size); -C_LINKAGE void __asan_unpoison_memory_region(void const volatile *addr, size_t size); -# define AsanPoisonMemoryRegion(addr, size) __asan_poison_memory_region((addr), (size)) -# define AsanUnpoisonMemoryRegion(addr, size) __asan_unpoison_memory_region((addr), (size)) -#else -# define AsanPoisonMemoryRegion(addr, size) ((void)(addr), (void)(size)) -# define AsanUnpoisonMemoryRegion(addr, size) ((void)(addr), (void)(size)) -#endif - -//////////////////////////////// -//~ rjf: Misc. Helper Macros - -#define Stringify_(S) #S -#define Stringify(S) Stringify_(S) - -#define Glue_(A,B) A##B -#define Glue(A,B) Glue_(A,B) - -#define ArrayCount(a) (sizeof(a) / sizeof((a)[0])) - -#define CeilIntegerDiv(a,b) (((a) + (b) - 1)/(b)) - -#define Swap(T,a,b) do{T t__ = a; a = b; b = t__;}while(0) - -#if ARCH_64BIT -# define IntFromPtr(ptr) ((U64)(ptr)) -#elif ARCH_32BIT -# define IntFromPtr(ptr) ((U32)(ptr)) -#else -# error Missing pointer-to-integer cast for this architecture. -#endif -#define PtrFromInt(i) (void*)((U8*)0 + (i)) - -#define Compose64Bit(a,b) ((((U64)a) << 32) | ((U64)b)); -#define AlignPow2(x,b) (((x) + (b) - 1)&(~((b) - 1))) -#define AlignDownPow2(x,b) ((x)&(~((b) - 1))) -#define AlignPadPow2(x,b) ((0-(x)) & ((b) - 1)) -#define IsPow2(x) ((x)!=0 && ((x)&((x)-1))==0) -#define IsPow2OrZero(x) ((((x) - 1)&(x)) == 0) - -#define ExtractBit(word, idx) (((word) >> (idx)) & 1) - -#if LANG_CPP -# define zero_struct {} -#else -# define zero_struct {0} -#endif - -#if COMPILER_MSVC && COMPILER_MSVC_YEAR < 2015 -# define this_function_name "unknown" -#else -# define this_function_name __func__ -#endif - -//////////////////////////////// -//~ rjf: Base Types - -typedef uint8_t U8; -typedef uint16_t U16; -typedef uint32_t U32; -typedef uint64_t U64; -typedef int8_t S8; -typedef int16_t S16; -typedef int32_t S32; -typedef int64_t S64; -typedef S8 B8; -typedef S16 B16; -typedef S32 B32; -typedef S64 B64; -typedef float F32; -typedef double F64; -typedef void VoidProc(void); -typedef struct U128 U128; -struct U128 -{ - U64 u64[2]; -}; - -//////////////////////////////// -//~ rjf: Basic Types & Spaces - -typedef enum Dimension -{ - Dimension_X, - Dimension_Y, - Dimension_Z, - Dimension_W, -} -Dimension; - -typedef enum Side -{ - Side_Invalid = -1, - Side_Min, - Side_Max, - Side_COUNT, -} -Side; -#define side_flip(s) ((Side)(!(s))) - -typedef enum Axis2 -{ - Axis2_Invalid = -1, - Axis2_X, - Axis2_Y, - Axis2_COUNT, -} -Axis2; -#define axis2_flip(a) ((Axis2)(!(a))) - -typedef enum Corner -{ - Corner_Invalid = -1, - Corner_00, - Corner_01, - Corner_10, - Corner_11, - Corner_COUNT -} -Corner; - -typedef enum Dir2 -{ - Dir2_Invalid = -1, - Dir2_Left, - Dir2_Up, - Dir2_Right, - Dir2_Down, - Dir2_COUNT -} -Dir2; -#define axis2_from_dir2(d) (((d) & 1) ? Axis2_Y : Axis2_X) -#define side_from_dir2(d) (((d) < Dir2_Right) ? Side_Min : Side_Max) - -//////////////////////////////// -//~ rjf: Toolchain/Environment Enums - -typedef enum OperatingSystem -{ - OperatingSystem_Null, - OperatingSystem_Windows, - OperatingSystem_Linux, - OperatingSystem_Mac, - OperatingSystem_COUNT, -} -OperatingSystem; - -typedef enum ImageType -{ - Image_Null, - Image_CoffPe, - Image_Elf32, - Image_Elf64, - Image_Macho -} ImageType; - -typedef enum Arch -{ - Arch_Null, - Arch_x64, - Arch_x86, - Arch_arm64, - Arch_arm32, - Arch_COUNT, -} -Arch; - -typedef enum Compiler -{ - Compiler_Null, - Compiler_msvc, - Compiler_gcc, - Compiler_clang, - Compiler_COUNT, -} -Compiler; - -//////////////////////////////// -//~ rjf: Text 2D Coordinates & Ranges - -typedef struct TxtPt TxtPt; -struct TxtPt -{ - S64 line; - S64 column; -}; - -typedef struct TxtRng TxtRng; -struct TxtRng -{ - TxtPt min; - TxtPt max; -}; - -//////////////////////////////// -//~ Globally Unique Ids - -typedef union Guid Guid; -union Guid -{ - struct - { - U32 data1; - U16 data2; - U16 data3; - U8 data4[8]; - }; - U8 v[16]; -}; -StaticAssert(sizeof(Guid) == 16, g_guid_size_check); - -//////////////////////////////// -//~ Arrays - -typedef struct U16Array U16Array; -struct U16Array -{ - U64 count; - U16 *v; -}; -typedef struct U32Array U32Array; -struct U32Array -{ - U64 count; - U32 *v; -}; -typedef struct U64Array U64Array; -struct U64Array -{ - U64 count; - U64 *v; -}; -typedef struct U128Array U128Array; -struct U128Array -{ - U64 count; - U128 *v; -}; - -//////////////////////////////// -//~ NOTE(allen): Constants - -global U32 sign32 = 0x80000000; -global U32 exponent32 = 0x7F800000; -global U32 mantissa32 = 0x007FFFFF; - -global F32 big_golden32 = 1.61803398875f; -global F32 small_golden32 = 0.61803398875f; - -global F32 pi32 = 3.1415926535897f; - -global F64 machine_epsilon64 = 4.94065645841247e-324; - -global U64 max_U64 = 0xffffffffffffffffull; -global U32 max_U32 = 0xffffffff; -global U16 max_U16 = 0xffff; -global U8 max_U8 = 0xff; - -global S64 max_S64 = (S64)0x7fffffffffffffffull; -global S32 max_S32 = (S32)0x7fffffff; -global S16 max_S16 = (S16)0x7fff; -global S8 max_S8 = (S8)0x7f; - -global S64 min_S64 = (S64)0xffffffffffffffffull; -global S32 min_S32 = (S32)0xffffffff; -global S16 min_S16 = (S16)0xffff; -global S8 min_S8 = (S8)0xff; - -global const U32 bitmask1 = 0x00000001; -global const U32 bitmask2 = 0x00000003; -global const U32 bitmask3 = 0x00000007; -global const U32 bitmask4 = 0x0000000f; -global const U32 bitmask5 = 0x0000001f; -global const U32 bitmask6 = 0x0000003f; -global const U32 bitmask7 = 0x0000007f; -global const U32 bitmask8 = 0x000000ff; -global const U32 bitmask9 = 0x000001ff; -global const U32 bitmask10 = 0x000003ff; -global const U32 bitmask11 = 0x000007ff; -global const U32 bitmask12 = 0x00000fff; -global const U32 bitmask13 = 0x00001fff; -global const U32 bitmask14 = 0x00003fff; -global const U32 bitmask15 = 0x00007fff; -global const U32 bitmask16 = 0x0000ffff; -global const U32 bitmask17 = 0x0001ffff; -global const U32 bitmask18 = 0x0003ffff; -global const U32 bitmask19 = 0x0007ffff; -global const U32 bitmask20 = 0x000fffff; -global const U32 bitmask21 = 0x001fffff; -global const U32 bitmask22 = 0x003fffff; -global const U32 bitmask23 = 0x007fffff; -global const U32 bitmask24 = 0x00ffffff; -global const U32 bitmask25 = 0x01ffffff; -global const U32 bitmask26 = 0x03ffffff; -global const U32 bitmask27 = 0x07ffffff; -global const U32 bitmask28 = 0x0fffffff; -global const U32 bitmask29 = 0x1fffffff; -global const U32 bitmask30 = 0x3fffffff; -global const U32 bitmask31 = 0x7fffffff; -global const U32 bitmask32 = 0xffffffff; - -global const U64 bitmask33 = 0x00000001ffffffffull; -global const U64 bitmask34 = 0x00000003ffffffffull; -global const U64 bitmask35 = 0x00000007ffffffffull; -global const U64 bitmask36 = 0x0000000fffffffffull; -global const U64 bitmask37 = 0x0000001fffffffffull; -global const U64 bitmask38 = 0x0000003fffffffffull; -global const U64 bitmask39 = 0x0000007fffffffffull; -global const U64 bitmask40 = 0x000000ffffffffffull; -global const U64 bitmask41 = 0x000001ffffffffffull; -global const U64 bitmask42 = 0x000003ffffffffffull; -global const U64 bitmask43 = 0x000007ffffffffffull; -global const U64 bitmask44 = 0x00000fffffffffffull; -global const U64 bitmask45 = 0x00001fffffffffffull; -global const U64 bitmask46 = 0x00003fffffffffffull; -global const U64 bitmask47 = 0x00007fffffffffffull; -global const U64 bitmask48 = 0x0000ffffffffffffull; -global const U64 bitmask49 = 0x0001ffffffffffffull; -global const U64 bitmask50 = 0x0003ffffffffffffull; -global const U64 bitmask51 = 0x0007ffffffffffffull; -global const U64 bitmask52 = 0x000fffffffffffffull; -global const U64 bitmask53 = 0x001fffffffffffffull; -global const U64 bitmask54 = 0x003fffffffffffffull; -global const U64 bitmask55 = 0x007fffffffffffffull; -global const U64 bitmask56 = 0x00ffffffffffffffull; -global const U64 bitmask57 = 0x01ffffffffffffffull; -global const U64 bitmask58 = 0x03ffffffffffffffull; -global const U64 bitmask59 = 0x07ffffffffffffffull; -global const U64 bitmask60 = 0x0fffffffffffffffull; -global const U64 bitmask61 = 0x1fffffffffffffffull; -global const U64 bitmask62 = 0x3fffffffffffffffull; -global const U64 bitmask63 = 0x7fffffffffffffffull; -global const U64 bitmask64 = 0xffffffffffffffffull; - -global const U32 bit1 = (1<<0); -global const U32 bit2 = (1<<1); -global const U32 bit3 = (1<<2); -global const U32 bit4 = (1<<3); -global const U32 bit5 = (1<<4); -global const U32 bit6 = (1<<5); -global const U32 bit7 = (1<<6); -global const U32 bit8 = (1<<7); -global const U32 bit9 = (1<<8); -global const U32 bit10 = (1<<9); -global const U32 bit11 = (1<<10); -global const U32 bit12 = (1<<11); -global const U32 bit13 = (1<<12); -global const U32 bit14 = (1<<13); -global const U32 bit15 = (1<<14); -global const U32 bit16 = (1<<15); -global const U32 bit17 = (1<<16); -global const U32 bit18 = (1<<17); -global const U32 bit19 = (1<<18); -global const U32 bit20 = (1<<19); -global const U32 bit21 = (1<<20); -global const U32 bit22 = (1<<21); -global const U32 bit23 = (1<<22); -global const U32 bit24 = (1<<23); -global const U32 bit25 = (1<<24); -global const U32 bit26 = (1<<25); -global const U32 bit27 = (1<<26); -global const U32 bit28 = (1<<27); -global const U32 bit29 = (1<<28); -global const U32 bit30 = (1<<29); -global const U32 bit31 = (1<<30); -global const U32 bit32 = (1<<31); - -global const U64 bit33 = (1ull<<32); -global const U64 bit34 = (1ull<<33); -global const U64 bit35 = (1ull<<34); -global const U64 bit36 = (1ull<<35); -global const U64 bit37 = (1ull<<36); -global const U64 bit38 = (1ull<<37); -global const U64 bit39 = (1ull<<38); -global const U64 bit40 = (1ull<<39); -global const U64 bit41 = (1ull<<40); -global const U64 bit42 = (1ull<<41); -global const U64 bit43 = (1ull<<42); -global const U64 bit44 = (1ull<<43); -global const U64 bit45 = (1ull<<44); -global const U64 bit46 = (1ull<<45); -global const U64 bit47 = (1ull<<46); -global const U64 bit48 = (1ull<<47); -global const U64 bit49 = (1ull<<48); -global const U64 bit50 = (1ull<<49); -global const U64 bit51 = (1ull<<50); -global const U64 bit52 = (1ull<<51); -global const U64 bit53 = (1ull<<52); -global const U64 bit54 = (1ull<<53); -global const U64 bit55 = (1ull<<54); -global const U64 bit56 = (1ull<<55); -global const U64 bit57 = (1ull<<56); -global const U64 bit58 = (1ull<<57); -global const U64 bit59 = (1ull<<58); -global const U64 bit60 = (1ull<<59); -global const U64 bit61 = (1ull<<60); -global const U64 bit62 = (1ull<<61); -global const U64 bit63 = (1ull<<62); -global const U64 bit64 = (1ull<<63); - -//////////////////////////////// -//~ allen: Time - -typedef enum WeekDay -{ - WeekDay_Sun, - WeekDay_Mon, - WeekDay_Tue, - WeekDay_Wed, - WeekDay_Thu, - WeekDay_Fri, - WeekDay_Sat, - WeekDay_COUNT, -} -WeekDay; - -typedef enum Month -{ - Month_Jan, - Month_Feb, - Month_Mar, - Month_Apr, - Month_May, - Month_Jun, - Month_Jul, - Month_Aug, - Month_Sep, - Month_Oct, - Month_Nov, - Month_Dec, - Month_COUNT, -} -Month; - -typedef struct DateTime DateTime; -struct DateTime -{ - U16 micro_sec; // [0,999] - U16 msec; // [0,999] - U16 sec; // [0,60] - U16 min; // [0,59] - U16 hour; // [0,24] - U16 day; // [0,30] - union - { - WeekDay week_day; - U32 wday; - }; - union - { - Month month; - U32 mon; - }; - U32 year; // 1 = 1 CE, 0 = 1 BC -}; - -typedef U64 DenseTime; - -//////////////////////////////// -//~ allen: Files - -typedef U32 FilePropertyFlags; -enum -{ - FilePropertyFlag_IsFolder = (1 << 0), -}; - -typedef struct FileProperties FileProperties; -struct FileProperties -{ - U64 size; - DenseTime modified; - DenseTime created; - FilePropertyFlags flags; -}; - -//////////////////////////////// -//~ rjf: Safe Casts - -internal U16 safe_cast_u16(U32 x); -internal U32 safe_cast_u32(U64 x); -internal S32 safe_cast_s32(S64 x); - -//////////////////////////////// -//~ rjf: Large Base Type Functions - -internal U128 u128_zero(void); -internal U128 u128_make(U64 v0, U64 v1); -internal B32 u128_match(U128 a, U128 b); - -//////////////////////////////// -//~ rjf: Bit Patterns - -internal U32 u32_from_u64_saturate(U64 x); -internal U64 u64_up_to_pow2(U64 x); -internal S32 extend_sign32(U32 x, U32 size); -internal S64 extend_sign64(U64 x, U64 size); - -internal F32 inf32(void); -internal F32 neg_inf32(void); - -internal U16 bswap_u16(U16 x); -internal U32 bswap_u32(U32 x); -internal U64 bswap_u64(U64 x); - -#if ARCH_LITTLE_ENDIAN -# define from_be_u16(x) bswap_u16(x) -# define from_be_u32(x) bswap_u32(x) -# define from_be_u64(x) bswap_u64(x) -#else -# define from_be_u16(x) (x) -# define from_be_u32(x) (x) -# define from_be_u64(x) (x) -#endif - -internal U64 count_bits_set32(U32 val); -internal U64 count_bits_set64(U64 val); - -internal U64 ctz32(U32 val); -internal U64 ctz64(U64 val); -internal U64 clz32(U32 val); -internal U64 clz64(U64 val); - -//////////////////////////////// -//~ rjf: Enum -> Sign - -internal S32 sign_from_side_S32(Side side); -internal F32 sign_from_side_F32(Side side); - -//////////////////////////////// -//~ rjf: Memory Functions - -internal B32 memory_is_zero(void *ptr, U64 size); - -//////////////////////////////// -//~ rjf: Text 2D Coordinate/Range Functions - -internal TxtPt txt_pt(S64 line, S64 column); -internal B32 txt_pt_match(TxtPt a, TxtPt b); -internal B32 txt_pt_less_than(TxtPt a, TxtPt b); -internal TxtPt txt_pt_min(TxtPt a, TxtPt b); -internal TxtPt txt_pt_max(TxtPt a, TxtPt b); -internal TxtRng txt_rng(TxtPt min, TxtPt max); -internal TxtRng txt_rng_intersect(TxtRng a, TxtRng b); -internal TxtRng txt_rng_union(TxtRng a, TxtRng b); -internal B32 txt_rng_contains(TxtRng r, TxtPt pt); - -//////////////////////////////// -//~ rjf: Toolchain/Environment Enum Functions - -internal U64 bit_size_from_arch(Arch arch); -internal U64 max_instruction_size_from_arch(Arch arch); - -internal OperatingSystem operating_system_from_context(void); -internal Arch arch_from_context(void); -internal Compiler compiler_from_context(void); - -//////////////////////////////// -//~ rjf: Time Functions - -internal DenseTime dense_time_from_date_time(DateTime date_time); -internal DateTime date_time_from_dense_time(DenseTime time); -internal DateTime date_time_from_micro_seconds(U64 time); -internal DateTime date_time_from_unix_time(U64 unix_time); - -//////////////////////////////// -//~ rjf: Non-Fancy Ring Buffer Reads/Writes - -internal U64 ring_write(U8 *ring_base, U64 ring_size, U64 ring_pos, void *src_data, U64 src_data_size); -internal U64 ring_read(U8 *ring_base, U64 ring_size, U64 ring_pos, void *dst_data, U64 read_size); -#define ring_write_struct(ring_base, ring_size, ring_pos, ptr) ring_write((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) -#define ring_read_struct(ring_base, ring_size, ring_pos, ptr) ring_read((ring_base), (ring_size), (ring_pos), (ptr), sizeof(*(ptr))) - -//////////////////////////////// -//~ rjf: Sorts - -#define quick_sort(ptr, count, element_size, cmp_function) qsort((ptr), (count), (element_size), (int (*)(const void *, const void *))(cmp_function)) - -#endif // BASE_CORE_H diff --git a/src/metagen/metagen_base/metagen_base_entry_point.c b/src/metagen/metagen_base/metagen_base_entry_point.c deleted file mode 100644 index 21bbc363..00000000 --- a/src/metagen/metagen_base/metagen_base_entry_point.c +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -global U64 global_update_tick_idx = 0; - -internal void -main_thread_base_entry_point(int arguments_count, char **arguments) -{ - Temp scratch = scratch_begin(0, 0); - ThreadNameF("[main thread]"); - - //- rjf: set up telemetry -#if PROFILE_TELEMETRY - local_persist char tm_data[MB(64)]; - tmLoadLibrary(TM_RELEASE); - tmSetMaxThreadCount(256); - tmInitialize(sizeof(tm_data), tm_data); -#endif - - //- rjf: parse command line - String8List command_line_argument_strings = os_string_list_from_argcv(scratch.arena, arguments_count, arguments); - CmdLine cmdline = cmd_line_from_string_list(scratch.arena, command_line_argument_strings); - - //- rjf: begin captures - B32 capture = cmd_line_has_flag(&cmdline, str8_lit("capture")); - if(capture) - { - ProfBeginCapture(arguments[0]); - } - -#if PROFILE_TELEMETRY - tmMessage(0, TMMF_ICON_NOTE, BUILD_TITLE); -#endif - - //- rjf: initialize all included layers -#if defined(ASYNC_H) && !defined(ASYNC_INIT_MANUAL) - async_init(&cmdline); -#endif -#if defined(RDI_FROM_PDB_H) && !defined(P2R_INIT_MANUAL) - p2r_init(); -#endif -#if defined(HASH_STORE_H) && !defined(HS_INIT_MANUAL) - hs_init(); -#endif -#if defined(FILE_STREAM_H) && !defined(FS_INIT_MANUAL) - fs_init(); -#endif -#if defined(TEXT_CACHE_H) && !defined(TXT_INIT_MANUAL) - txt_init(); -#endif -#if defined(MUTABLE_TEXT_H) && !defined(MTX_INIT_MANUAL) - mtx_init(); -#endif -#if defined(DASM_CACHE_H) && !defined(DASM_INIT_MANUAL) - dasm_init(); -#endif -#if defined(DBGI_H) && !defined(DI_INIT_MANUAL) - di_init(); -#endif -#if defined(DEMON_CORE_H) && !defined(DMN_INIT_MANUAL) - dmn_init(); -#endif -#if defined(CTRL_CORE_H) && !defined(CTRL_INIT_MANUAL) - ctrl_init(); -#endif -#if defined(OS_GFX_H) && !defined(OS_GFX_INIT_MANUAL) - os_gfx_init(); -#endif -#if defined(FONT_PROVIDER_H) && !defined(FP_INIT_MANUAL) - fp_init(); -#endif -#if defined(RENDER_CORE_H) && !defined(R_INIT_MANUAL) - r_init(&cmdline); -#endif -#if defined(TEXTURE_CACHE_H) && !defined(TEX_INIT_MANUAL) - tex_init(); -#endif -#if defined(GEO_CACHE_H) && !defined(GEO_INIT_MANUAL) - geo_init(); -#endif -#if defined(FONT_CACHE_H) && !defined(FNT_INIT_MANUAL) - fnt_init(); -#endif -#if defined(DBG_ENGINE_CORE_H) && !defined(D_INIT_MANUAL) - d_init(); -#endif -#if defined(RADDBG_CORE_H) && !defined(RD_INIT_MANUAL) - rd_init(&cmdline); -#endif - - //- rjf: call into entry point - entry_point(&cmdline); - - //- rjf: end captures - if(capture) - { - ProfEndCapture(); - } - - scratch_end(scratch); -} - -internal void -supplement_thread_base_entry_point(void (*entry_point)(void *params), void *params) -{ - TCTX tctx; - tctx_init_and_equip(&tctx); - entry_point(params); - tctx_release(); -} - -internal U64 -update_tick_idx(void) -{ - U64 result = ins_atomic_u64_eval(&global_update_tick_idx); - return result; -} - -internal B32 -update(void) -{ - ProfTick(0); - ins_atomic_u64_inc_eval(&global_update_tick_idx); -#if OS_FEATURE_GRAPHICAL - B32 result = frame(); -#else - B32 result = 0; -#endif - return result; -} diff --git a/src/metagen/metagen_base/metagen_base_entry_point.h b/src/metagen/metagen_base/metagen_base_entry_point.h deleted file mode 100644 index 318f8d9f..00000000 --- a/src/metagen/metagen_base/metagen_base_entry_point.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_ENTRY_POINT_H -#define BASE_ENTRY_POINT_H - -internal void main_thread_base_entry_point(int argc, char **argv); -internal void supplement_thread_base_entry_point(void (*entry_point)(void *params), void *params); -internal U64 update_tick_idx(void); -internal B32 update(void); - -#endif // BASE_ENTRY_POINT_H diff --git a/src/metagen/metagen_base/metagen_base_inc.c b/src/metagen/metagen_base/metagen_base_inc.c deleted file mode 100644 index 57aa2113..00000000 --- a/src/metagen/metagen_base/metagen_base_inc.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Base Includes - -#undef MARKUP_LAYER_COLOR -#define MARKUP_LAYER_COLOR 0.20f, 0.60f, 0.80f - -#include "metagen_base_core.c" -#include "metagen_base_profile.c" -#include "metagen_base_arena.c" -#include "metagen_base_math.c" -#include "metagen_base_strings.c" -#include "metagen_base_thread_context.c" -#include "metagen_base_command_line.c" -#include "metagen_base_markup.c" -#include "metagen_base_meta.c" -#include "metagen_base_log.c" -#include "metagen_base_entry_point.c" diff --git a/src/metagen/metagen_base/metagen_base_inc.h b/src/metagen/metagen_base/metagen_base_inc.h deleted file mode 100644 index 55e2ebe7..00000000 --- a/src/metagen/metagen_base/metagen_base_inc.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_INC_H -#define BASE_INC_H - -//////////////////////////////// -//~ rjf: Base Includes - -#include "metagen_base_context_cracking.h" - -#include "metagen_base_core.h" -#include "metagen_base_profile.h" -#include "metagen_base_arena.h" -#include "metagen_base_math.h" -#include "metagen_base_strings.h" -#include "metagen_base_thread_context.h" -#include "metagen_base_command_line.h" -#include "metagen_base_markup.h" -#include "metagen_base_meta.h" -#include "metagen_base_log.h" -#include "metagen_base_entry_point.h" - -#endif // BASE_INC_H diff --git a/src/metagen/metagen_base/metagen_base_log.c b/src/metagen/metagen_base/metagen_base_log.c deleted file mode 100644 index 1c2a05f8..00000000 --- a/src/metagen/metagen_base/metagen_base_log.c +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Globals/Thread-Locals - -C_LINKAGE thread_static Log *log_active; -#if !BUILD_SUPPLEMENTARY_UNIT -C_LINKAGE thread_static Log *log_active = 0; -#endif - -//////////////////////////////// -//~ rjf: Log Creation/Selection - -internal Log * -log_alloc(void) -{ - Arena *arena = arena_alloc(); - Log *log = push_array(arena, Log, 1); - log->arena = arena; - return log; -} - -internal void -log_release(Log *log) -{ - arena_release(log->arena); -} - -internal void -log_select(Log *log) -{ - log_active = log; -} - -//////////////////////////////// -//~ rjf: Log Building/Clearing - -internal void -log_msg(LogMsgKind kind, String8 string) -{ - if(log_active != 0 && log_active->top_scope != 0) - { - String8 string_copy = push_str8_copy(log_active->arena, string); - str8_list_push(log_active->arena, &log_active->top_scope->strings[kind], string_copy); - } -} - -internal void -log_msgf(LogMsgKind kind, char *fmt, ...) -{ - if(log_active != 0) - { - Temp scratch = scratch_begin(0, 0); - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(scratch.arena, fmt, args); - log_msg(kind, string); - va_end(args); - scratch_end(scratch); - } -} - -//////////////////////////////// -//~ rjf: Log Scopes - -internal void -log_scope_begin(void) -{ - if(log_active != 0) - { - U64 pos = arena_pos(log_active->arena); - LogScope *scope = push_array(log_active->arena, LogScope, 1); - scope->pos = pos; - SLLStackPush(log_active->top_scope, scope); - } -} - -internal LogScopeResult -log_scope_end(Arena *arena) -{ - LogScopeResult result = {0}; - if(log_active != 0) - { - LogScope *scope = log_active->top_scope; - if(scope != 0) - { - SLLStackPop(log_active->top_scope); - if(arena != 0) - { - for EachEnumVal(LogMsgKind, kind) - { - Temp scratch = scratch_begin(&arena, 1); - String8 result_unindented = str8_list_join(scratch.arena, &scope->strings[kind], 0); - result.strings[kind] = indented_from_string(arena, result_unindented); - scratch_end(scratch); - } - } - arena_pop_to(log_active->arena, scope->pos); - } - } - return result; -} diff --git a/src/metagen/metagen_base/metagen_base_log.h b/src/metagen/metagen_base/metagen_base_log.h deleted file mode 100644 index 3687390e..00000000 --- a/src/metagen/metagen_base/metagen_base_log.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_LOG_H -#define BASE_LOG_H - -//////////////////////////////// -//~ rjf: Log Types - -typedef enum LogMsgKind -{ - LogMsgKind_Info, - LogMsgKind_UserError, - LogMsgKind_COUNT -} -LogMsgKind; - -typedef struct LogScope LogScope; -struct LogScope -{ - LogScope *next; - U64 pos; - String8List strings[LogMsgKind_COUNT]; -}; - -typedef struct LogScopeResult LogScopeResult; -struct LogScopeResult -{ - String8 strings[LogMsgKind_COUNT]; -}; - -typedef struct Log Log; -struct Log -{ - Arena *arena; - LogScope *top_scope; -}; - -//////////////////////////////// -//~ rjf: Log Creation/Selection - -internal Log *log_alloc(void); -internal void log_release(Log *log); -internal void log_select(Log *log); - -//////////////////////////////// -//~ rjf: Log Building - -internal void log_msg(LogMsgKind kind, String8 string); -internal void log_msgf(LogMsgKind kind, char *fmt, ...); -#define log_info(s) log_msg(LogMsgKind_Info, (s)) -#define log_infof(fmt, ...) log_msgf(LogMsgKind_Info, (fmt), __VA_ARGS__) -#define log_user_error(s) log_msg(LogMsgKind_UserError, (s)) -#define log_user_errorf(fmt, ...) log_msgf(LogMsgKind_UserError, (fmt), __VA_ARGS__) - -#define LogInfoNamedBlock(s) DeferLoop(log_infof("%S:\n{\n", (s)), log_infof("}\n")) -#define LogInfoNamedBlockF(fmt, ...) DeferLoop((log_infof(fmt, __VA_ARGS__), log_infof(":\n{\n")), log_infof("}\n")) - -//////////////////////////////// -//~ rjf: Log Scopes - -internal void log_scope_begin(void); -internal LogScopeResult log_scope_end(Arena *arena); - -#endif // BASE_LOG_H diff --git a/src/metagen/metagen_base/metagen_base_markup.c b/src/metagen/metagen_base/metagen_base_markup.c deleted file mode 100644 index 5ad47ef5..00000000 --- a/src/metagen/metagen_base/metagen_base_markup.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -internal void -set_thread_name(String8 string) -{ - ProfThreadName("%.*s", str8_varg(string)); - os_set_thread_name(string); -} - -internal void -set_thread_namef(char *fmt, ...) -{ - Temp scratch = scratch_begin(0, 0); - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(scratch.arena, fmt, args); - set_thread_name(string); - va_end(args); - scratch_end(scratch); -} diff --git a/src/metagen/metagen_base/metagen_base_markup.h b/src/metagen/metagen_base/metagen_base_markup.h deleted file mode 100644 index fd291375..00000000 --- a/src/metagen/metagen_base/metagen_base_markup.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_MARKUP_H -#define BASE_MARKUP_H - -internal void set_thread_name(String8 string); -internal void set_thread_namef(char *fmt, ...); -#define ThreadNameF(...) (set_thread_namef(__VA_ARGS__)) -#define ThreadName(str) (set_thread_name(str)) - -#endif // BASE_MARKUP_H diff --git a/src/metagen/metagen_base/metagen_base_math.c b/src/metagen/metagen_base/metagen_base_math.c deleted file mode 100644 index 2c6201f3..00000000 --- a/src/metagen/metagen_base/metagen_base_math.c +++ /dev/null @@ -1,659 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Scalar Ops - -internal F32 -mix_1f32(F32 a, F32 b, F32 t) -{ - F32 c = (a + (b-a) * Clamp(0.f, t, 1.f)); - return c; -} - -internal F64 -mix_1f64(F64 a, F64 b, F64 t) -{ - F64 c = (a + (b-a) * Clamp(0.0, t, 1.0)); - return c; -} - -//////////////////////////////// -//~ rjf: Vector Ops - -internal Vec2F32 vec_2f32(F32 x, F32 y) {Vec2F32 v = {x, y}; return v;} -internal Vec2F32 add_2f32(Vec2F32 a, Vec2F32 b) {Vec2F32 c = {a.x+b.x, a.y+b.y}; return c;} -internal Vec2F32 sub_2f32(Vec2F32 a, Vec2F32 b) {Vec2F32 c = {a.x-b.x, a.y-b.y}; return c;} -internal Vec2F32 mul_2f32(Vec2F32 a, Vec2F32 b) {Vec2F32 c = {a.x*b.x, a.y*b.y}; return c;} -internal Vec2F32 div_2f32(Vec2F32 a, Vec2F32 b) {Vec2F32 c = {a.x/b.x, a.y/b.y}; return c;} -internal Vec2F32 scale_2f32(Vec2F32 v, F32 s) {Vec2F32 c = {v.x*s, v.y*s}; return c;} -internal F32 dot_2f32(Vec2F32 a, Vec2F32 b) {F32 c = a.x*b.x + a.y*b.y; return c;} -internal F32 length_squared_2f32(Vec2F32 v) {F32 c = v.x*v.x + v.y*v.y; return c;} -internal F32 length_2f32(Vec2F32 v) {F32 c = sqrt_f32(v.x*v.x + v.y*v.y); return c;} -internal Vec2F32 normalize_2f32(Vec2F32 v) {v = scale_2f32(v, 1.f/length_2f32(v)); return v;} -internal Vec2F32 mix_2f32(Vec2F32 a, Vec2F32 b, F32 t) {Vec2F32 c = {mix_1f32(a.x, b.x, t), mix_1f32(a.y, b.y, t)}; return c;} - -internal Vec2S64 vec_2s64(S64 x, S64 y) {Vec2S64 v = {x, y}; return v;} -internal Vec2S64 add_2s64(Vec2S64 a, Vec2S64 b) {Vec2S64 c = {a.x+b.x, a.y+b.y}; return c;} -internal Vec2S64 sub_2s64(Vec2S64 a, Vec2S64 b) {Vec2S64 c = {a.x-b.x, a.y-b.y}; return c;} -internal Vec2S64 mul_2s64(Vec2S64 a, Vec2S64 b) {Vec2S64 c = {a.x*b.x, a.y*b.y}; return c;} -internal Vec2S64 div_2s64(Vec2S64 a, Vec2S64 b) {Vec2S64 c = {a.x/b.x, a.y/b.y}; return c;} -internal Vec2S64 scale_2s64(Vec2S64 v, S64 s) {Vec2S64 c = {v.x*s, v.y*s}; return c;} -internal S64 dot_2s64(Vec2S64 a, Vec2S64 b) {S64 c = a.x*b.x + a.y*b.y; return c;} -internal S64 length_squared_2s64(Vec2S64 v) {S64 c = v.x*v.x + v.y*v.y; return c;} -internal S64 length_2s64(Vec2S64 v) {S64 c = (S64)sqrt_f64((F64)(v.x*v.x + v.y*v.y)); return c;} -internal Vec2S64 normalize_2s64(Vec2S64 v) {v = scale_2s64(v, (S64)(1.f/length_2s64(v))); return v;} -internal Vec2S64 mix_2s64(Vec2S64 a, Vec2S64 b, F32 t) {Vec2S64 c = {(S64)mix_1f32((F32)a.x, (F32)b.x, t), (S64)mix_1f32((F32)a.y, (F32)b.y, t)}; return c;} - -internal Vec2S32 vec_2s32(S32 x, S32 y) {Vec2S32 v = {x, y}; return v;} -internal Vec2S32 add_2s32(Vec2S32 a, Vec2S32 b) {Vec2S32 c = {a.x+b.x, a.y+b.y}; return c;} -internal Vec2S32 sub_2s32(Vec2S32 a, Vec2S32 b) {Vec2S32 c = {a.x-b.x, a.y-b.y}; return c;} -internal Vec2S32 mul_2s32(Vec2S32 a, Vec2S32 b) {Vec2S32 c = {a.x*b.x, a.y*b.y}; return c;} -internal Vec2S32 div_2s32(Vec2S32 a, Vec2S32 b) {Vec2S32 c = {a.x/b.x, a.y/b.y}; return c;} -internal Vec2S32 scale_2s32(Vec2S32 v, S32 s) {Vec2S32 c = {v.x*s, v.y*s}; return c;} -internal S32 dot_2s32(Vec2S32 a, Vec2S32 b) {S32 c = a.x*b.x + a.y*b.y; return c;} -internal S32 length_squared_2s32(Vec2S32 v) {S32 c = v.x*v.x + v.y*v.y; return c;} -internal S32 length_2s32(Vec2S32 v) {S32 c = (S32)sqrt_f32((F32)v.x*(F32)v.x + (F32)v.y*(F32)v.y); return c;} -internal Vec2S32 normalize_2s32(Vec2S32 v) {v = scale_2s32(v, (S32)(1.f/length_2s32(v))); return v;} -internal Vec2S32 mix_2s32(Vec2S32 a, Vec2S32 b, F32 t) {Vec2S32 c = {(S32)mix_1f32((F32)a.x, (F32)b.x, t), (S32)mix_1f32((F32)a.y, (F32)b.y, t)}; return c;} - -internal Vec2S16 vec_2s16(S16 x, S16 y) {Vec2S16 v = {x, y}; return v;} -internal Vec2S16 add_2s16(Vec2S16 a, Vec2S16 b) {Vec2S16 c = {(S16)(a.x+b.x), (S16)(a.y+b.y)}; return c;} -internal Vec2S16 sub_2s16(Vec2S16 a, Vec2S16 b) {Vec2S16 c = {(S16)(a.x-b.x), (S16)(a.y-b.y)}; return c;} -internal Vec2S16 mul_2s16(Vec2S16 a, Vec2S16 b) {Vec2S16 c = {(S16)(a.x*b.x), (S16)(a.y*b.y)}; return c;} -internal Vec2S16 div_2s16(Vec2S16 a, Vec2S16 b) {Vec2S16 c = {(S16)(a.x/b.x), (S16)(a.y/b.y)}; return c;} -internal Vec2S16 scale_2s16(Vec2S16 v, S16 s) {Vec2S16 c = {(S16)(v.x*s), (S16)(v.y*s)}; return c;} -internal S16 dot_2s16(Vec2S16 a, Vec2S16 b) {S16 c = a.x*b.x + a.y*b.y; return c;} -internal S16 length_squared_2s16(Vec2S16 v) {S16 c = v.x*v.x + v.y*v.y; return c;} -internal S16 length_2s16(Vec2S16 v) {S16 c = (S16)sqrt_f32((F32)(v.x*v.x + v.y*v.y)); return c;} -internal Vec2S16 normalize_2s16(Vec2S16 v) {v = scale_2s16(v, (S16)(1.f/length_2s16(v))); return v;} -internal Vec2S16 mix_2s16(Vec2S16 a, Vec2S16 b, F32 t) {Vec2S16 c = {(S16)mix_1f32((F32)a.x, (F32)b.x, t), (S16)mix_1f32((F32)a.y, (F32)b.y, t)}; return c;} - -internal Vec3F32 vec_3f32(F32 x, F32 y, F32 z) {Vec3F32 v = {x, y, z}; return v;} -internal Vec3F32 add_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.x+b.x, a.y+b.y, a.z+b.z}; return c;} -internal Vec3F32 sub_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.x-b.x, a.y-b.y, a.z-b.z}; return c;} -internal Vec3F32 mul_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.x*b.x, a.y*b.y, a.z*b.z}; return c;} -internal Vec3F32 div_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.x/b.x, a.y/b.y, a.z/b.z}; return c;} -internal Vec3F32 scale_3f32(Vec3F32 v, F32 s) {Vec3F32 c = {v.x*s, v.y*s, v.z*s}; return c;} -internal F32 dot_3f32(Vec3F32 a, Vec3F32 b) {F32 c = a.x*b.x + a.y*b.y + a.z*b.z; return c;} -internal F32 length_squared_3f32(Vec3F32 v) {F32 c = v.x*v.x + v.y*v.y + v.z*v.z; return c;} -internal F32 length_3f32(Vec3F32 v) {F32 c = sqrt_f32(v.x*v.x + v.y*v.y + v.z*v.z); return c;} -internal Vec3F32 normalize_3f32(Vec3F32 v) {v = scale_3f32(v, 1.f/length_3f32(v)); return v;} -internal Vec3F32 mix_3f32(Vec3F32 a, Vec3F32 b, F32 t) {Vec3F32 c = {mix_1f32(a.x, b.x, t), mix_1f32(a.y, b.y, t), mix_1f32(a.z, b.z, t)}; return c;} -internal Vec3F32 cross_3f32(Vec3F32 a, Vec3F32 b) {Vec3F32 c = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x}; return c;} - -internal Vec3S32 vec_3s32(S32 x, S32 y, S32 z) {Vec3S32 v = {x, y, z}; return v;} -internal Vec3S32 add_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.x+b.x, a.y+b.y, a.z+b.z}; return c;} -internal Vec3S32 sub_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.x-b.x, a.y-b.y, a.z-b.z}; return c;} -internal Vec3S32 mul_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.x*b.x, a.y*b.y, a.z*b.z}; return c;} -internal Vec3S32 div_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.x/b.x, a.y/b.y, a.z/b.z}; return c;} -internal Vec3S32 scale_3s32(Vec3S32 v, S32 s) {Vec3S32 c = {v.x*s, v.y*s, v.z*s}; return c;} -internal S32 dot_3s32(Vec3S32 a, Vec3S32 b) {S32 c = a.x*b.x + a.y*b.y + a.z*b.z; return c;} -internal S32 length_squared_3s32(Vec3S32 v) {S32 c = v.x*v.x + v.y*v.y + v.z*v.z; return c;} -internal S32 length_3s32(Vec3S32 v) {S32 c = (S32)sqrt_f32((F32)(v.x*v.x + v.y*v.y + v.z*v.z)); return c;} -internal Vec3S32 normalize_3s32(Vec3S32 v) {v = scale_3s32(v, (S32)(1.f/length_3s32(v))); return v;} -internal Vec3S32 mix_3s32(Vec3S32 a, Vec3S32 b, F32 t) {Vec3S32 c = {(S32)mix_1f32((F32)a.x, (F32)b.x, t), (S32)mix_1f32((F32)a.y, (F32)b.y, t), (S32)mix_1f32((F32)a.z, (F32)b.z, t)}; return c;} -internal Vec3S32 cross_3s32(Vec3S32 a, Vec3S32 b) {Vec3S32 c = {a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x}; return c;} - -internal Vec4F32 vec_4f32(F32 x, F32 y, F32 z, F32 w) {Vec4F32 v = {x, y, z, w}; return v;} -internal Vec4F32 add_4f32(Vec4F32 a, Vec4F32 b) {Vec4F32 c = {a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w}; return c;} -internal Vec4F32 sub_4f32(Vec4F32 a, Vec4F32 b) {Vec4F32 c = {a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w}; return c;} -internal Vec4F32 mul_4f32(Vec4F32 a, Vec4F32 b) {Vec4F32 c = {a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w}; return c;} -internal Vec4F32 div_4f32(Vec4F32 a, Vec4F32 b) {Vec4F32 c = {a.x/b.x, a.y/b.y, a.z/b.z, a.w/b.w}; return c;} -internal Vec4F32 scale_4f32(Vec4F32 v, F32 s) {Vec4F32 c = {v.x*s, v.y*s, v.z*s, v.w*s}; return c;} -internal F32 dot_4f32(Vec4F32 a, Vec4F32 b) {F32 c = a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; return c;} -internal F32 length_squared_4f32(Vec4F32 v) {F32 c = v.x*v.x + v.y*v.y + v.z*v.z + v.w*v.w; return c;} -internal F32 length_4f32(Vec4F32 v) {F32 c = sqrt_f32(v.x*v.x + v.y*v.y + v.z*v.z + v.w*v.w); return c;} -internal Vec4F32 normalize_4f32(Vec4F32 v) {v = scale_4f32(v, 1.f/length_4f32(v)); return v;} -internal Vec4F32 mix_4f32(Vec4F32 a, Vec4F32 b, F32 t) {Vec4F32 c = {mix_1f32(a.x, b.x, t), mix_1f32(a.y, b.y, t), mix_1f32(a.z, b.z, t), mix_1f32(a.w, b.w, t)}; return c;} - -internal Vec4S32 vec_4s32(S32 x, S32 y, S32 z, S32 w) {Vec4S32 v = {x, y, z, w}; return v;} -internal Vec4S32 add_4s32(Vec4S32 a, Vec4S32 b) {Vec4S32 c = {a.x+b.x, a.y+b.y, a.z+b.z, a.w+b.w}; return c;} -internal Vec4S32 sub_4s32(Vec4S32 a, Vec4S32 b) {Vec4S32 c = {a.x-b.x, a.y-b.y, a.z-b.z, a.w-b.w}; return c;} -internal Vec4S32 mul_4s32(Vec4S32 a, Vec4S32 b) {Vec4S32 c = {a.x*b.x, a.y*b.y, a.z*b.z, a.w*b.w}; return c;} -internal Vec4S32 div_4s32(Vec4S32 a, Vec4S32 b) {Vec4S32 c = {a.x/b.x, a.y/b.y, a.z/b.z, a.w/b.w}; return c;} -internal Vec4S32 scale_4s32(Vec4S32 v, S32 s) {Vec4S32 c = {v.x*s, v.y*s, v.z*s, v.w*s}; return c;} -internal S32 dot_4s32(Vec4S32 a, Vec4S32 b) {S32 c = a.x*b.x + a.y*b.y + a.z*b.z + a.w*b.w; return c;} -internal S32 length_squared_4s32(Vec4S32 v) {S32 c = v.x*v.x + v.y*v.y + v.z*v.z + v.w*v.w; return c;} -internal S32 length_4s32(Vec4S32 v) {S32 c = (S32)sqrt_f32((F32)(v.x*v.x + v.y*v.y + v.z*v.z + v.w*v.w)); return c;} -internal Vec4S32 normalize_4s32(Vec4S32 v) {v = scale_4s32(v, (S32)(1.f/length_4s32(v))); return v;} -internal Vec4S32 mix_4s32(Vec4S32 a, Vec4S32 b, F32 t) {Vec4S32 c = {(S32)mix_1f32((F32)a.x, (F32)b.x, t), (S32)mix_1f32((F32)a.y, (F32)b.y, t), (S32)mix_1f32((F32)a.z, (F32)b.z, t), (S32)mix_1f32((F32)a.w, (F32)b.w, t)}; return c;} - -//////////////////////////////// -//~ rjf: Matrix Ops - -internal Mat3x3F32 -mat_3x3f32(F32 diagonal) -{ - Mat3x3F32 result = {0}; - result.v[0][0] = diagonal; - result.v[1][1] = diagonal; - result.v[2][2] = diagonal; - return result; -} - -internal Mat3x3F32 -make_translate_3x3f32(Vec2F32 delta) -{ - Mat3x3F32 mat = mat_3x3f32(1.f); - mat.v[2][0] = delta.x; - mat.v[2][1] = delta.y; - return mat; -} - -internal Mat3x3F32 -make_scale_3x3f32(Vec2F32 scale) -{ - Mat3x3F32 mat = mat_3x3f32(1.f); - mat.v[0][0] = scale.x; - mat.v[1][1] = scale.y; - return mat; -} - -internal Mat3x3F32 -mul_3x3f32(Mat3x3F32 a, Mat3x3F32 b) -{ - Mat3x3F32 c = {0}; - for(int j = 0; j < 3; j += 1) - { - for(int i = 0; i < 3; i += 1) - { - c.v[i][j] = (a.v[0][j]*b.v[i][0] + - a.v[1][j]*b.v[i][1] + - a.v[2][j]*b.v[i][2]); - } - } - return c; -} - -internal Mat4x4F32 -mat_4x4f32(F32 diagonal) -{ - Mat4x4F32 result = {0}; - result.v[0][0] = diagonal; - result.v[1][1] = diagonal; - result.v[2][2] = diagonal; - result.v[3][3] = diagonal; - return result; -} - -internal Mat4x4F32 -make_translate_4x4f32(Vec3F32 delta) -{ - Mat4x4F32 result = mat_4x4f32(1.f); - result.v[3][0] = delta.x; - result.v[3][1] = delta.y; - result.v[3][2] = delta.z; - return result; -} - -internal Mat4x4F32 -make_scale_4x4f32(Vec3F32 scale) -{ - Mat4x4F32 result = mat_4x4f32(1.f); - result.v[0][0] = scale.x; - result.v[1][1] = scale.y; - result.v[2][2] = scale.z; - return result; -} - -internal Mat4x4F32 -make_perspective_4x4f32(F32 fov, F32 aspect_ratio, F32 near_z, F32 far_z) -{ - Mat4x4F32 result = mat_4x4f32(1.f); - F32 tan_theta_over_2 = tan_f32(fov / 2); - result.v[0][0] = 1.f / tan_theta_over_2; - result.v[1][1] = aspect_ratio / tan_theta_over_2; - result.v[2][3] = 1.f; - result.v[2][2] = -(near_z + far_z) / (near_z - far_z); - result.v[3][2] = (2.f * near_z * far_z) / (near_z - far_z); - result.v[3][3] = 0.f; - return result; -} - -internal Mat4x4F32 -make_orthographic_4x4f32(F32 left, F32 right, F32 bottom, F32 top, F32 near_z, F32 far_z) -{ - Mat4x4F32 result = mat_4x4f32(1.f); - - result.v[0][0] = 2.f / (right - left); - result.v[1][1] = 2.f / (top - bottom); - result.v[2][2] = 2.f / (far_z - near_z); - result.v[3][3] = 1.f; - - result.v[3][0] = (left + right) / (left - right); - result.v[3][1] = (bottom + top) / (bottom - top); - result.v[3][2] = (near_z + far_z) / (near_z - far_z); - - return result; -} - -internal Mat4x4F32 -make_look_at_4x4f32(Vec3F32 eye, Vec3F32 center, Vec3F32 up) -{ - Mat4x4F32 result; - Vec3F32 f = normalize_3f32(sub_3f32(eye, center)); - Vec3F32 s = normalize_3f32(cross_3f32(f, up)); - Vec3F32 u = cross_3f32(s, f); - result.v[0][0] = s.x; - result.v[0][1] = u.x; - result.v[0][2] = -f.x; - result.v[0][3] = 0.0f; - result.v[1][0] = s.y; - result.v[1][1] = u.y; - result.v[1][2] = -f.y; - result.v[1][3] = 0.0f; - result.v[2][0] = s.z; - result.v[2][1] = u.z; - result.v[2][2] = -f.z; - result.v[2][3] = 0.0f; - result.v[3][0] = -dot_3f32(s, eye); - result.v[3][1] = -dot_3f32(u, eye); - result.v[3][2] = dot_3f32(f, eye); - result.v[3][3] = 1.0f; - return result; -} - -internal Mat4x4F32 -make_rotate_4x4f32(Vec3F32 axis, F32 turns) -{ - Mat4x4F32 result = mat_4x4f32(1.f); - axis = normalize_3f32(axis); - F32 sin_theta = sin_f32(turns); - F32 cos_theta = cos_f32(turns); - F32 cos_value = 1.f - cos_theta; - result.v[0][0] = (axis.x * axis.x * cos_value) + cos_theta; - result.v[0][1] = (axis.x * axis.y * cos_value) + (axis.z * sin_theta); - result.v[0][2] = (axis.x * axis.z * cos_value) - (axis.y * sin_theta); - result.v[1][0] = (axis.y * axis.x * cos_value) - (axis.z * sin_theta); - result.v[1][1] = (axis.y * axis.y * cos_value) + cos_theta; - result.v[1][2] = (axis.y * axis.z * cos_value) + (axis.x * sin_theta); - result.v[2][0] = (axis.z * axis.x * cos_value) + (axis.y * sin_theta); - result.v[2][1] = (axis.z * axis.y * cos_value) - (axis.x * sin_theta); - result.v[2][2] = (axis.z * axis.z * cos_value) + cos_theta; - return result; -} - -internal Mat4x4F32 -mul_4x4f32(Mat4x4F32 a, Mat4x4F32 b) -{ - Mat4x4F32 c = {0}; - for(int j = 0; j < 4; j += 1) - { - for(int i = 0; i < 4; i += 1) - { - c.v[i][j] = (a.v[0][j]*b.v[i][0] + - a.v[1][j]*b.v[i][1] + - a.v[2][j]*b.v[i][2] + - a.v[3][j]*b.v[i][3]); - } - } - return c; -} - -internal Mat4x4F32 -scale_4x4f32(Mat4x4F32 m, F32 scale) -{ - for(int j = 0; j < 4; j += 1) - { - for(int i = 0; i < 4; i += 1) - { - m.v[i][j] *= scale; - } - } - return m; -} - -internal Mat4x4F32 -inverse_4x4f32(Mat4x4F32 m) -{ - F32 coef00 = m.v[2][2] * m.v[3][3] - m.v[3][2] * m.v[2][3]; - F32 coef02 = m.v[1][2] * m.v[3][3] - m.v[3][2] * m.v[1][3]; - F32 coef03 = m.v[1][2] * m.v[2][3] - m.v[2][2] * m.v[1][3]; - F32 coef04 = m.v[2][1] * m.v[3][3] - m.v[3][1] * m.v[2][3]; - F32 coef06 = m.v[1][1] * m.v[3][3] - m.v[3][1] * m.v[1][3]; - F32 coef07 = m.v[1][1] * m.v[2][3] - m.v[2][1] * m.v[1][3]; - F32 coef08 = m.v[2][1] * m.v[3][2] - m.v[3][1] * m.v[2][2]; - F32 coef10 = m.v[1][1] * m.v[3][2] - m.v[3][1] * m.v[1][2]; - F32 coef11 = m.v[1][1] * m.v[2][2] - m.v[2][1] * m.v[1][2]; - F32 coef12 = m.v[2][0] * m.v[3][3] - m.v[3][0] * m.v[2][3]; - F32 coef14 = m.v[1][0] * m.v[3][3] - m.v[3][0] * m.v[1][3]; - F32 coef15 = m.v[1][0] * m.v[2][3] - m.v[2][0] * m.v[1][3]; - F32 coef16 = m.v[2][0] * m.v[3][2] - m.v[3][0] * m.v[2][2]; - F32 coef18 = m.v[1][0] * m.v[3][2] - m.v[3][0] * m.v[1][2]; - F32 coef19 = m.v[1][0] * m.v[2][2] - m.v[2][0] * m.v[1][2]; - F32 coef20 = m.v[2][0] * m.v[3][1] - m.v[3][0] * m.v[2][1]; - F32 coef22 = m.v[1][0] * m.v[3][1] - m.v[3][0] * m.v[1][1]; - F32 coef23 = m.v[1][0] * m.v[2][1] - m.v[2][0] * m.v[1][1]; - - Vec4F32 fac0 = { coef00, coef00, coef02, coef03 }; - Vec4F32 fac1 = { coef04, coef04, coef06, coef07 }; - Vec4F32 fac2 = { coef08, coef08, coef10, coef11 }; - Vec4F32 fac3 = { coef12, coef12, coef14, coef15 }; - Vec4F32 fac4 = { coef16, coef16, coef18, coef19 }; - Vec4F32 fac5 = { coef20, coef20, coef22, coef23 }; - - Vec4F32 vec0 = { m.v[1][0], m.v[0][0], m.v[0][0], m.v[0][0] }; - Vec4F32 vec1 = { m.v[1][1], m.v[0][1], m.v[0][1], m.v[0][1] }; - Vec4F32 vec2 = { m.v[1][2], m.v[0][2], m.v[0][2], m.v[0][2] }; - Vec4F32 vec3 = { m.v[1][3], m.v[0][3], m.v[0][3], m.v[0][3] }; - - Vec4F32 inv0 = add_4f32(sub_4f32(mul_4f32(vec1, fac0), mul_4f32(vec2, fac1)), mul_4f32(vec3, fac2)); - Vec4F32 inv1 = add_4f32(sub_4f32(mul_4f32(vec0, fac0), mul_4f32(vec2, fac3)), mul_4f32(vec3, fac4)); - Vec4F32 inv2 = add_4f32(sub_4f32(mul_4f32(vec0, fac1), mul_4f32(vec1, fac3)), mul_4f32(vec3, fac5)); - Vec4F32 inv3 = add_4f32(sub_4f32(mul_4f32(vec0, fac2), mul_4f32(vec1, fac4)), mul_4f32(vec2, fac5)); - - Vec4F32 sign_a = { +1, -1, +1, -1 }; - Vec4F32 sign_b = { -1, +1, -1, +1 }; - - Mat4x4F32 inverse; - for(U32 i = 0; i < 4; i += 1) - { - inverse.v[0][i] = inv0.v[i] * sign_a.v[i]; - inverse.v[1][i] = inv1.v[i] * sign_b.v[i]; - inverse.v[2][i] = inv2.v[i] * sign_a.v[i]; - inverse.v[3][i] = inv3.v[i] * sign_b.v[i]; - } - - Vec4F32 row0 = { inverse.v[0][0], inverse.v[1][0], inverse.v[2][0], inverse.v[3][0] }; - Vec4F32 m0 = { m.v[0][0], m.v[0][1], m.v[0][2], m.v[0][3] }; - Vec4F32 dot0 = mul_4f32(m0, row0); - F32 dot1 = (dot0.x + dot0.y) + (dot0.z + dot0.w); - - F32 one_over_det = 1 / dot1; - - return scale_4x4f32(inverse, one_over_det); -} - -internal Mat4x4F32 -derotate_4x4f32(Mat4x4F32 mat) -{ - Vec3F32 scale = - { - length_3f32(v3f32(mat.v[0][0], mat.v[0][1], mat.v[0][2])), - length_3f32(v3f32(mat.v[1][0], mat.v[1][1], mat.v[1][2])), - length_3f32(v3f32(mat.v[2][0], mat.v[2][1], mat.v[2][2])), - }; - mat.v[0][0] = scale.x; - mat.v[1][0] = 0.f; - mat.v[2][0] = 0.f; - mat.v[0][1] = 0.f; - mat.v[1][1] = scale.y; - mat.v[2][1] = 0.f; - mat.v[0][2] = 0.f; - mat.v[1][2] = 0.f; - mat.v[2][2] = scale.z; - return mat; -} - -//////////////////////////////// -//~ rjf: Range Ops - -internal Rng1U32 rng_1u32(U32 min, U32 max) {Rng1U32 r = {min, max}; if(r.min > r.max) { Swap(U32, r.min, r.max); } return r;} -internal Rng1U32 shift_1u32(Rng1U32 r, U32 x) {r.min += x; r.max += x; return r;} -internal Rng1U32 pad_1u32(Rng1U32 r, U32 x) {r.min -= x; r.max += x; return r;} -internal U32 center_1u32(Rng1U32 r) {U32 c = (r.min+r.max)/2; return c;} -internal B32 contains_1u32(Rng1U32 r, U32 x) {B32 c = (r.min <= x && x < r.max); return c;} -internal U32 dim_1u32(Rng1U32 r) {U32 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} -internal Rng1U32 union_1u32(Rng1U32 a, Rng1U32 b) {Rng1U32 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} -internal Rng1U32 intersect_1u32(Rng1U32 a, Rng1U32 b) {Rng1U32 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} -internal U32 clamp_1u32(Rng1U32 r, U32 v) {v = Clamp(r.min, v, r.max); return v;} - -internal Rng1S32 rng_1s32(S32 min, S32 max) {Rng1S32 r = {min, max}; if(r.min > r.max) { Swap(S32, r.min, r.max); } return r;} -internal Rng1S32 shift_1s32(Rng1S32 r, S32 x) {r.min += x; r.max += x; return r;} -internal Rng1S32 pad_1s32(Rng1S32 r, S32 x) {r.min -= x; r.max += x; return r;} -internal S32 center_1s32(Rng1S32 r) {S32 c = (r.min+r.max)/2; return c;} -internal B32 contains_1s32(Rng1S32 r, S32 x) {B32 c = (r.min <= x && x < r.max); return c;} -internal S32 dim_1s32(Rng1S32 r) {S32 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} -internal Rng1S32 union_1s32(Rng1S32 a, Rng1S32 b) {Rng1S32 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} -internal Rng1S32 intersect_1s32(Rng1S32 a, Rng1S32 b) {Rng1S32 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} -internal S32 clamp_1s32(Rng1S32 r, S32 v) {v = Clamp(r.min, v, r.max); return v;} - -internal Rng1U64 rng_1u64(U64 min, U64 max) {Rng1U64 r = {min, max}; if(r.min > r.max) { Swap(U64, r.min, r.max); } return r;} -internal Rng1U64 shift_1u64(Rng1U64 r, U64 x) {r.min += x; r.max += x; return r;} -internal Rng1U64 pad_1u64(Rng1U64 r, U64 x) {r.min -= x; r.max += x; return r;} -internal U64 center_1u64(Rng1U64 r) {U64 c = (r.min+r.max)/2; return c;} -internal B32 contains_1u64(Rng1U64 r, U64 x) {B32 c = (r.min <= x && x < r.max); return c;} -internal U64 dim_1u64(Rng1U64 r) {U64 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} -internal Rng1U64 union_1u64(Rng1U64 a, Rng1U64 b) {Rng1U64 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} -internal Rng1U64 intersect_1u64(Rng1U64 a, Rng1U64 b) {Rng1U64 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} -internal U64 clamp_1u64(Rng1U64 r, U64 v) {v = Clamp(r.min, v, r.max); return v;} - -internal Rng1S64 rng_1s64(S64 min, S64 max) {Rng1S64 r = {min, max}; if(r.min > r.max) { Swap(S64, r.min, r.max); } return r;} -internal Rng1S64 shift_1s64(Rng1S64 r, S64 x) {r.min += x; r.max += x; return r;} -internal Rng1S64 pad_1s64(Rng1S64 r, S64 x) {r.min -= x; r.max += x; return r;} -internal S64 center_1s64(Rng1S64 r) {S64 c = (r.min+r.max)/2; return c;} -internal B32 contains_1s64(Rng1S64 r, S64 x) {B32 c = (r.min <= x && x < r.max); return c;} -internal S64 dim_1s64(Rng1S64 r) {S64 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} -internal Rng1S64 union_1s64(Rng1S64 a, Rng1S64 b) {Rng1S64 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} -internal Rng1S64 intersect_1s64(Rng1S64 a, Rng1S64 b) {Rng1S64 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} -internal S64 clamp_1s64(Rng1S64 r, S64 v) {v = Clamp(r.min, v, r.max); return v;} - -internal Rng1F32 rng_1f32(F32 min, F32 max) {Rng1F32 r = {min, max}; if(r.min > r.max) { Swap(F32, r.min, r.max); } return r;} -internal Rng1F32 shift_1f32(Rng1F32 r, F32 x) {r.min += x; r.max += x; return r;} -internal Rng1F32 pad_1f32(Rng1F32 r, F32 x) {r.min -= x; r.max += x; return r;} -internal F32 center_1f32(Rng1F32 r) {F32 c = (r.min+r.max)/2; return c;} -internal B32 contains_1f32(Rng1F32 r, F32 x) {B32 c = (r.min <= x && x < r.max); return c;} -internal F32 dim_1f32(Rng1F32 r) {F32 c = ((r.max > r.min) ? (r.max - r.min) : 0); return c;} -internal Rng1F32 union_1f32(Rng1F32 a, Rng1F32 b) {Rng1F32 c = {Min(a.min, b.min), Max(a.max, b.max)}; return c;} -internal Rng1F32 intersect_1f32(Rng1F32 a, Rng1F32 b) {Rng1F32 c = {Max(a.min, b.min), Min(a.max, b.max)}; return c;} -internal F32 clamp_1f32(Rng1F32 r, F32 v) {v = Clamp(r.min, v, r.max); return v;} - -internal Rng2S16 rng_2s16(Vec2S16 min, Vec2S16 max) {Rng2S16 r = {min, max}; return r;} -internal Rng2S16 shift_2s16(Rng2S16 r, Vec2S16 x) {r.min = add_2s16(r.min, x); r.max = add_2s16(r.max, x); return r;} -internal Rng2S16 pad_2s16(Rng2S16 r, S16 x) {Vec2S16 xv = {x, x}; r.min = sub_2s16(r.min, xv); r.max = add_2s16(r.max, xv); return r;} -internal Vec2S16 center_2s16(Rng2S16 r) {Vec2S16 c = {(S16)((r.min.x+r.max.x)/2), (S16)((r.min.y+r.max.y)/2)}; return c;} -internal B32 contains_2s16(Rng2S16 r, Vec2S16 x) {B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c;} -internal Vec2S16 dim_2s16(Rng2S16 r) {Vec2S16 dim = {(S16)(((r.max.x > r.min.x) ? (r.max.x - r.min.x) : 0)), (S16)(((r.max.y > r.min.y) ? (r.max.y - r.min.y) : 0))}; return dim;} -internal Rng2S16 union_2s16(Rng2S16 a, Rng2S16 b) {Rng2S16 c; c.p0.x = Min(a.min.x, b.min.x); c.p0.y = Min(a.min.y, b.min.y); c.p1.x = Max(a.max.x, b.max.x); c.p1.y = Max(a.max.y, b.max.y); return c;} -internal Rng2S16 intersect_2s16(Rng2S16 a, Rng2S16 b) {Rng2S16 c; c.p0.x = Max(a.min.x, b.min.x); c.p0.y = Max(a.min.y, b.min.y); c.p1.x = Min(a.max.x, b.max.x); c.p1.y = Min(a.max.y, b.max.y); return c;} -internal Vec2S16 clamp_2s16(Rng2S16 r, Vec2S16 v) {v.x = Clamp(r.min.x, v.x, r.max.x); v.y = Clamp(r.min.y, v.y, r.max.y); return v;} - -internal Rng2S32 rng_2s32(Vec2S32 min, Vec2S32 max) {Rng2S32 r = {min, max}; return r;} -internal Rng2S32 shift_2s32(Rng2S32 r, Vec2S32 x) {r.min = add_2s32(r.min, x); r.max = add_2s32(r.max, x); return r;} -internal Rng2S32 pad_2s32(Rng2S32 r, S32 x) {Vec2S32 xv = {x, x}; r.min = sub_2s32(r.min, xv); r.max = add_2s32(r.max, xv); return r;} -internal Vec2S32 center_2s32(Rng2S32 r) {Vec2S32 c = {(r.min.x+r.max.x)/2, (r.min.y+r.max.y)/2}; return c;} -internal B32 contains_2s32(Rng2S32 r, Vec2S32 x) {B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c;} -internal Vec2S32 dim_2s32(Rng2S32 r) {Vec2S32 dim = {((r.max.x > r.min.x) ? (r.max.x - r.min.x) : 0), ((r.max.y > r.min.y) ? (r.max.y - r.min.y) : 0)}; return dim;} -internal Rng2S32 union_2s32(Rng2S32 a, Rng2S32 b) {Rng2S32 c; c.p0.x = Min(a.min.x, b.min.x); c.p0.y = Min(a.min.y, b.min.y); c.p1.x = Max(a.max.x, b.max.x); c.p1.y = Max(a.max.y, b.max.y); return c;} -internal Rng2S32 intersect_2s32(Rng2S32 a, Rng2S32 b) {Rng2S32 c; c.p0.x = Max(a.min.x, b.min.x); c.p0.y = Max(a.min.y, b.min.y); c.p1.x = Min(a.max.x, b.max.x); c.p1.y = Min(a.max.y, b.max.y); return c;} -internal Vec2S32 clamp_2s32(Rng2S32 r, Vec2S32 v) {v.x = Clamp(r.min.x, v.x, r.max.x); v.y = Clamp(r.min.y, v.y, r.max.y); return v;} - -internal Rng2S64 rng_2s64(Vec2S64 min, Vec2S64 max) {Rng2S64 r = {min, max}; return r;} -internal Rng2S64 shift_2s64(Rng2S64 r, Vec2S64 x) {r.min = add_2s64(r.min, x); r.max = add_2s64(r.max, x); return r;} -internal Rng2S64 pad_2s64(Rng2S64 r, S64 x) {Vec2S64 xv = {x, x}; r.min = sub_2s64(r.min, xv); r.max = add_2s64(r.max, xv); return r;} -internal Vec2S64 center_2s64(Rng2S64 r) {Vec2S64 c = {(r.min.x+r.max.x)/2, (r.min.y+r.max.y)/2}; return c;} -internal B32 contains_2s64(Rng2S64 r, Vec2S64 x) {B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c;} -internal Vec2S64 dim_2s64(Rng2S64 r) {Vec2S64 dim = {((r.max.x > r.min.x) ? (r.max.x - r.min.x) : 0), ((r.max.y > r.min.y) ? (r.max.y - r.min.y) : 0)}; return dim;} -internal Rng2S64 union_2s64(Rng2S64 a, Rng2S64 b) {Rng2S64 c; c.p0.x = Min(a.min.x, b.min.x); c.p0.y = Min(a.min.y, b.min.y); c.p1.x = Max(a.max.x, b.max.x); c.p1.y = Max(a.max.y, b.max.y); return c;} -internal Rng2S64 intersect_2s64(Rng2S64 a, Rng2S64 b) {Rng2S64 c; c.p0.x = Max(a.min.x, b.min.x); c.p0.y = Max(a.min.y, b.min.y); c.p1.x = Min(a.max.x, b.max.x); c.p1.y = Min(a.max.y, b.max.y); return c;} -internal Vec2S64 clamp_2s64(Rng2S64 r, Vec2S64 v) {v.x = Clamp(r.min.x, v.x, r.max.x); v.y = Clamp(r.min.y, v.y, r.max.y); return v;} - -internal Rng2F32 rng_2f32(Vec2F32 min, Vec2F32 max) {Rng2F32 r = {min, max}; return r;} -internal Rng2F32 shift_2f32(Rng2F32 r, Vec2F32 x) {r.min = add_2f32(r.min, x); r.max = add_2f32(r.max, x); return r;} -internal Rng2F32 pad_2f32(Rng2F32 r, F32 x) {Vec2F32 xv = {x, x}; r.min = sub_2f32(r.min, xv); r.max = add_2f32(r.max, xv); return r;} -internal Vec2F32 center_2f32(Rng2F32 r) {Vec2F32 c = {(r.min.x+r.max.x)/2, (r.min.y+r.max.y)/2}; return c;} -internal B32 contains_2f32(Rng2F32 r, Vec2F32 x) {B32 c = (r.min.x <= x.x && x.x < r.max.x && r.min.y <= x.y && x.y < r.max.y); return c;} -internal Vec2F32 dim_2f32(Rng2F32 r) {Vec2F32 dim = {((r.max.x > r.min.x) ? (r.max.x - r.min.x) : 0), ((r.max.y > r.min.y) ? (r.max.y - r.min.y) : 0)}; return dim;} -internal Rng2F32 union_2f32(Rng2F32 a, Rng2F32 b) {Rng2F32 c; c.p0.x = Min(a.min.x, b.min.x); c.p0.y = Min(a.min.y, b.min.y); c.p1.x = Max(a.max.x, b.max.x); c.p1.y = Max(a.max.y, b.max.y); return c;} -internal Rng2F32 intersect_2f32(Rng2F32 a, Rng2F32 b) {Rng2F32 c; c.p0.x = Max(a.min.x, b.min.x); c.p0.y = Max(a.min.y, b.min.y); c.p1.x = Min(a.max.x, b.max.x); c.p1.y = Min(a.max.y, b.max.y); return c;} -internal Vec2F32 clamp_2f32(Rng2F32 r, Vec2F32 v) {v.x = Clamp(r.min.x, v.x, r.max.x); v.y = Clamp(r.min.y, v.y, r.max.y); return v;} - -//////////////////////////////// -//~ rjf: Miscellaneous Ops - -internal Vec3F32 -hsv_from_rgb(Vec3F32 rgb) -{ - F32 c_max = Max(rgb.x, Max(rgb.y, rgb.z)); - F32 c_min = Min(rgb.x, Min(rgb.y, rgb.z)); - F32 delta = c_max - c_min; - F32 h = ((delta == 0.f) ? 0.f : - (c_max == rgb.x) ? mod_f32((rgb.y - rgb.z)/delta + 6.f, 6.f) : - (c_max == rgb.y) ? (rgb.z - rgb.x)/delta + 2.f : - (c_max == rgb.z) ? (rgb.x - rgb.y)/delta + 4.f : - 0.f); - F32 s = (c_max == 0.f) ? 0.f : (delta/c_max); - F32 v = c_max; - Vec3F32 hsv = {h/6.f, s, v}; - return hsv; -} - -internal Vec3F32 -rgb_from_hsv(Vec3F32 hsv) -{ - F32 h = mod_f32(hsv.x * 360.f, 360.f); - F32 s = hsv.y; - F32 v = hsv.z; - - F32 c = v*s; - F32 x = c*(1.f - abs_f32(mod_f32(h/60.f, 2.f) - 1.f)); - F32 m = v - c; - - F32 r = 0; - F32 g = 0; - F32 b = 0; - - if ((h >= 0.f && h < 60.f) || (h >= 360.f && h < 420.f)){ - r = c; - g = x; - b = 0; - } - else if (h >= 60.f && h < 120.f){ - r = x; - g = c; - b = 0; - } - else if (h >= 120.f && h < 180.f){ - r = 0; - g = c; - b = x; - } - else if (h >= 180.f && h < 240.f){ - r = 0; - g = x; - b = c; - } - else if (h >= 240.f && h < 300.f){ - r = x; - g = 0; - b = c; - } - else if ((h >= 300.f && h <= 360.f) || (h >= -60.f && h <= 0.f)){ - r = c; - g = 0; - b = x; - } - - Vec3F32 rgb = {r + m, g + m, b + m}; - return(rgb); -} - -internal Vec4F32 -hsva_from_rgba(Vec4F32 rgba) -{ - Vec3F32 rgb = v3f32(rgba.x, rgba.y, rgba.z); - Vec3F32 hsv = hsv_from_rgb(rgb); - Vec4F32 hsva = v4f32(hsv.x, hsv.y, hsv.z, rgba.w); - return hsva; -} - -internal Vec4F32 -rgba_from_hsva(Vec4F32 hsva) -{ - Vec3F32 hsv = v3f32(hsva.x, hsva.y, hsva.z); - Vec3F32 rgb = rgb_from_hsv(hsv); - Vec4F32 rgba = v4f32(rgb.x, rgb.y, rgb.z, hsva.w); - return rgba; -} - -internal Vec4F32 -rgba_from_u32(U32 hex) -{ - Vec4F32 result = v4f32(((hex&0xff000000)>>24)/255.f, - ((hex&0x00ff0000)>>16)/255.f, - ((hex&0x0000ff00)>> 8)/255.f, - ((hex&0x000000ff)>> 0)/255.f); - return result; -} - -internal U32 -u32_from_rgba(Vec4F32 rgba) -{ - U32 result = 0; - result |= ((U32)((U8)(rgba.x*255.f))) << 24; - result |= ((U32)((U8)(rgba.y*255.f))) << 16; - result |= ((U32)((U8)(rgba.z*255.f))) << 8; - result |= ((U32)((U8)(rgba.w*255.f))) << 0; - return result; -} - -//////////////////////////////// -//~ rjf: List Type Functions - -internal void -rng1u64_list_push(Arena *arena, Rng1U64List *list, Rng1U64 rng) -{ - Rng1U64Node *n = push_array(arena, Rng1U64Node, 1); - MemoryCopyStruct(&n->v, &rng); - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal void -rng1u64_list_concat(Rng1U64List *list, Rng1U64List *to_concat) -{ - if(to_concat->first) - { - if(list->first) - { - list->last->next = to_concat->first; - list->last = to_concat->last; - } - else - { - list->first = to_concat->first; - list->last = to_concat->last; - } - MemoryZeroStruct(to_concat); - } -} - -internal Rng1U64Array -rng1u64_array_from_list(Arena *arena, Rng1U64List *list) -{ - Rng1U64Array arr = {0}; - arr.count = list->count; - arr.v = push_array_no_zero(arena, Rng1U64, arr.count); - U64 idx = 0; - for(Rng1U64Node *n = list->first; n != 0; n = n->next) - { - arr.v[idx] = n->v; - idx += 1; - } - return arr; -} - -internal void -rng1s64_list_push(Arena *arena, Rng1S64List *list, Rng1S64 rng) -{ - Rng1S64Node *n = push_array(arena, Rng1S64Node, 1); - MemoryCopyStruct(&n->v, &rng); - SLLQueuePush(list->first, list->last, n); - list->count += 1; -} - -internal Rng1S64Array -rng1s64_array_from_list(Arena *arena, Rng1S64List *list) -{ - Rng1S64Array arr = {0}; - arr.count = list->count; - arr.v = push_array_no_zero(arena, Rng1S64, arr.count); - U64 idx = 0; - for(Rng1S64Node *n = list->first; n != 0; n = n->next) - { - arr.v[idx] = n->v; - idx += 1; - } - return arr; -} diff --git a/src/metagen/metagen_base/metagen_base_math.h b/src/metagen/metagen_base/metagen_base_math.h deleted file mode 100644 index b6063ad5..00000000 --- a/src/metagen/metagen_base/metagen_base_math.h +++ /dev/null @@ -1,675 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_MATH_H -#define BASE_MATH_H - -//////////////////////////////// -//~ rjf: Vector Types - -//- rjf: 2-vectors - -typedef union Vec2F32 Vec2F32; -union Vec2F32 -{ - struct - { - F32 x; - F32 y; - }; - F32 v[2]; -}; - -typedef union Vec2S64 Vec2S64; -union Vec2S64 -{ - struct - { - S64 x; - S64 y; - }; - S64 v[2]; -}; - -typedef union Vec2S32 Vec2S32; -union Vec2S32 -{ - struct - { - S32 x; - S32 y; - }; - S32 v[2]; -}; - -typedef union Vec2S16 Vec2S16; -union Vec2S16 -{ - struct - { - S16 x; - S16 y; - }; - S16 v[2]; -}; - -//- rjf: 3-vectors - -typedef union Vec3F32 Vec3F32; -union Vec3F32 -{ - struct - { - F32 x; - F32 y; - F32 z; - }; - struct - { - Vec2F32 xy; - F32 _z0; - }; - struct - { - F32 _x0; - Vec2F32 yz; - }; - F32 v[3]; -}; - -typedef union Vec3S32 Vec3S32; -union Vec3S32 -{ - struct - { - S32 x; - S32 y; - S32 z; - }; - struct - { - Vec2S32 xy; - S32 _z0; - }; - struct - { - S32 _x0; - Vec2S32 yz; - }; - S32 v[3]; -}; - -//- rjf: 4-vectors - -typedef union Vec4F32 Vec4F32; -union Vec4F32 -{ - struct - { - F32 x; - F32 y; - F32 z; - F32 w; - }; - struct - { - Vec2F32 xy; - Vec2F32 zw; - }; - struct - { - Vec3F32 xyz; - F32 _z0; - }; - struct - { - F32 _x0; - Vec3F32 yzw; - }; - F32 v[4]; -}; - -typedef union Vec4S32 Vec4S32; -union Vec4S32 -{ - struct - { - S32 x; - S32 y; - S32 z; - S32 w; - }; - struct - { - Vec2S32 xy; - Vec2S32 zw; - }; - struct - { - Vec3S32 xyz; - S32 _z0; - }; - struct - { - S32 _x0; - Vec3S32 yzw; - }; - S32 v[4]; -}; - -//////////////////////////////// -//~ rjf: Matrix Types - -typedef struct Mat3x3F32 Mat3x3F32; -struct Mat3x3F32 -{ - F32 v[3][3]; -}; - -typedef struct Mat4x4F32 Mat4x4F32; -struct Mat4x4F32 -{ - F32 v[4][4]; -}; - -//////////////////////////////// -//~ rjf: Range Types - -//- rjf: 1-range - -typedef union Rng1U32 Rng1U32; -union Rng1U32 -{ - struct - { - U32 min; - U32 max; - }; - U32 v[2]; -}; - -typedef union Rng1S32 Rng1S32; -union Rng1S32 -{ - struct - { - S32 min; - S32 max; - }; - S32 v[2]; -}; - -typedef union Rng1U64 Rng1U64; -union Rng1U64 -{ - struct - { - U64 min; - U64 max; - }; - U64 v[2]; -}; - -typedef union Rng1S64 Rng1S64; -union Rng1S64 -{ - struct - { - S64 min; - S64 max; - }; - S64 v[2]; -}; - -typedef union Rng1F32 Rng1F32; -union Rng1F32 -{ - struct - { - F32 min; - F32 max; - }; - F32 v[2]; -}; - -//- rjf: 2-range (rectangles) - -typedef union Rng2S16 Rng2S16; -union Rng2S16 -{ - struct - { - Vec2S16 min; - Vec2S16 max; - }; - struct - { - Vec2S16 p0; - Vec2S16 p1; - }; - struct - { - S16 x0; - S16 y0; - S16 x1; - S16 y1; - }; - Vec2S16 v[2]; -}; - -typedef union Rng2S32 Rng2S32; -union Rng2S32 -{ - struct - { - Vec2S32 min; - Vec2S32 max; - }; - struct - { - Vec2S32 p0; - Vec2S32 p1; - }; - struct - { - S32 x0; - S32 y0; - S32 x1; - S32 y1; - }; - Vec2S32 v[2]; -}; - -typedef union Rng2F32 Rng2F32; -union Rng2F32 -{ - struct - { - Vec2F32 min; - Vec2F32 max; - }; - struct - { - Vec2F32 p0; - Vec2F32 p1; - }; - struct - { - F32 x0; - F32 y0; - F32 x1; - F32 y1; - }; - Vec2F32 v[2]; -}; - -typedef union Rng2S64 Rng2S64; -union Rng2S64 -{ - struct - { - Vec2S64 min; - Vec2S64 max; - }; - struct - { - Vec2S64 p0; - Vec2S64 p1; - }; - struct - { - S64 x0; - S64 y0; - S64 x1; - S64 y1; - }; - Vec2S64 v[2]; -}; - -//////////////////////////////// -//~ rjf: List Types - -typedef struct Rng1U64Node Rng1U64Node; -struct Rng1U64Node -{ - Rng1U64Node *next; - Rng1U64 v; -}; - -typedef struct Rng1U64List Rng1U64List; -struct Rng1U64List -{ - U64 count; - Rng1U64Node *first; - Rng1U64Node *last; -}; - -typedef struct Rng1U64Array Rng1U64Array; -struct Rng1U64Array -{ - Rng1U64 *v; - U64 count; -}; - -typedef struct Rng1S64Node Rng1S64Node; -struct Rng1S64Node -{ - Rng1S64Node *next; - Rng1S64 v; -}; - -typedef struct Rng1S64List Rng1S64List; -struct Rng1S64List -{ - Rng1S64Node *first; - Rng1S64Node *last; - U64 count; -}; - -typedef struct Rng1S64Array Rng1S64Array; -struct Rng1S64Array -{ - Rng1S64 *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Scalar Ops - -#define abs_s64(v) (S64)llabs(v) - -#define sqrt_f32(v) sqrtf(v) -#define mod_f32(a, b) fmodf((a), (b)) -#define pow_f32(b, e) powf((b), (e)) -#define ceil_f32(v) ceilf(v) -#define floor_f32(v) floorf(v) -#define round_f32(v) roundf(v) -#define abs_f32(v) fabsf(v) -#define radians_from_turns_f32(v) ((v)*2*3.1415926535897f) -#define turns_from_radians_f32(v) ((v)/2*3.1415926535897f) -#define degrees_from_turns_f32(v) ((v)*360.f) -#define turns_from_degrees_f32(v) ((v)/360.f) -#define degrees_from_radians_f32(v) (degrees_from_turns_f32(turns_from_radians_f32(v))) -#define radians_from_degrees_f32(v) (radians_from_turns_f32(turns_from_degrees_f32(v))) -#define sin_f32(v) sinf(radians_from_turns_f32(v)) -#define cos_f32(v) cosf(radians_from_turns_f32(v)) -#define tan_f32(v) tanf(radians_from_turns_f32(v)) - -#define sqrt_f64(v) sqrt(v) -#define mod_f64(a, b) fmod((a), (b)) -#define pow_f64(b, e) pow((b), (e)) -#define ceil_f64(v) ceil(v) -#define floor_f64(v) floor(v) -#define round_f64(v) round(v) -#define abs_f64(v) fabs(v) -#define radians_from_turns_f64(v) ((v)*2*3.1415926535897) -#define turns_from_radians_f64(v) ((v)/2*3.1415926535897) -#define degrees_from_turns_f64(v) ((v)*360.0) -#define turns_from_degrees_f64(v) ((v)/360.0) -#define degrees_from_radians_f64(v) (degrees_from_turns_f64(turns_from_radians_f64(v))) -#define radians_from_degrees_f64(v) (radians_from_turns_f64(turns_from_degrees_f64(v))) -#define sin_f64(v) sin(radians_from_turns_f64(v)) -#define cos_f64(v) cos(radians_from_turns_f64(v)) -#define tan_f64(v) tan(radians_from_turns_f64(v)) - -internal F32 mix_1f32(F32 a, F32 b, F32 t); -internal F64 mix_1f64(F64 a, F64 b, F64 t); - -//////////////////////////////// -//~ rjf: Vector Ops - -#define v2f32(x, y) vec_2f32((x), (y)) -internal Vec2F32 vec_2f32(F32 x, F32 y); -internal Vec2F32 add_2f32(Vec2F32 a, Vec2F32 b); -internal Vec2F32 sub_2f32(Vec2F32 a, Vec2F32 b); -internal Vec2F32 mul_2f32(Vec2F32 a, Vec2F32 b); -internal Vec2F32 div_2f32(Vec2F32 a, Vec2F32 b); -internal Vec2F32 scale_2f32(Vec2F32 v, F32 s); -internal F32 dot_2f32(Vec2F32 a, Vec2F32 b); -internal F32 length_squared_2f32(Vec2F32 v); -internal F32 length_2f32(Vec2F32 v); -internal Vec2F32 normalize_2f32(Vec2F32 v); -internal Vec2F32 mix_2f32(Vec2F32 a, Vec2F32 b, F32 t); - -#define v2s64(x, y) vec_2s64((x), (y)) -internal Vec2S64 vec_2s64(S64 x, S64 y); -internal Vec2S64 add_2s64(Vec2S64 a, Vec2S64 b); -internal Vec2S64 sub_2s64(Vec2S64 a, Vec2S64 b); -internal Vec2S64 mul_2s64(Vec2S64 a, Vec2S64 b); -internal Vec2S64 div_2s64(Vec2S64 a, Vec2S64 b); -internal Vec2S64 scale_2s64(Vec2S64 v, S64 s); -internal S64 dot_2s64(Vec2S64 a, Vec2S64 b); -internal S64 length_squared_2s64(Vec2S64 v); -internal S64 length_2s64(Vec2S64 v); -internal Vec2S64 normalize_2s64(Vec2S64 v); -internal Vec2S64 mix_2s64(Vec2S64 a, Vec2S64 b, F32 t); - -#define v2s32(x, y) vec_2s32((x), (y)) -internal Vec2S32 vec_2s32(S32 x, S32 y); -internal Vec2S32 add_2s32(Vec2S32 a, Vec2S32 b); -internal Vec2S32 sub_2s32(Vec2S32 a, Vec2S32 b); -internal Vec2S32 mul_2s32(Vec2S32 a, Vec2S32 b); -internal Vec2S32 div_2s32(Vec2S32 a, Vec2S32 b); -internal Vec2S32 scale_2s32(Vec2S32 v, S32 s); -internal S32 dot_2s32(Vec2S32 a, Vec2S32 b); -internal S32 length_squared_2s32(Vec2S32 v); -internal S32 length_2s32(Vec2S32 v); -internal Vec2S32 normalize_2s32(Vec2S32 v); -internal Vec2S32 mix_2s32(Vec2S32 a, Vec2S32 b, F32 t); - -#define v2s16(x, y) vec_2s16((x), (y)) -internal Vec2S16 vec_2s16(S16 x, S16 y); -internal Vec2S16 add_2s16(Vec2S16 a, Vec2S16 b); -internal Vec2S16 sub_2s16(Vec2S16 a, Vec2S16 b); -internal Vec2S16 mul_2s16(Vec2S16 a, Vec2S16 b); -internal Vec2S16 div_2s16(Vec2S16 a, Vec2S16 b); -internal Vec2S16 scale_2s16(Vec2S16 v, S16 s); -internal S16 dot_2s16(Vec2S16 a, Vec2S16 b); -internal S16 length_squared_2s16(Vec2S16 v); -internal S16 length_2s16(Vec2S16 v); -internal Vec2S16 normalize_2s16(Vec2S16 v); -internal Vec2S16 mix_2s16(Vec2S16 a, Vec2S16 b, F32 t); - -#define v3f32(x, y, z) vec_3f32((x), (y), (z)) -internal Vec3F32 vec_3f32(F32 x, F32 y, F32 z); -internal Vec3F32 add_3f32(Vec3F32 a, Vec3F32 b); -internal Vec3F32 sub_3f32(Vec3F32 a, Vec3F32 b); -internal Vec3F32 mul_3f32(Vec3F32 a, Vec3F32 b); -internal Vec3F32 div_3f32(Vec3F32 a, Vec3F32 b); -internal Vec3F32 scale_3f32(Vec3F32 v, F32 s); -internal F32 dot_3f32(Vec3F32 a, Vec3F32 b); -internal F32 length_squared_3f32(Vec3F32 v); -internal F32 length_3f32(Vec3F32 v); -internal Vec3F32 normalize_3f32(Vec3F32 v); -internal Vec3F32 mix_3f32(Vec3F32 a, Vec3F32 b, F32 t); -internal Vec3F32 cross_3f32(Vec3F32 a, Vec3F32 b); - -#define v3s32(x, y, z) vec_3s32((x), (y), (z)) -internal Vec3S32 vec_3s32(S32 x, S32 y, S32 z); -internal Vec3S32 add_3s32(Vec3S32 a, Vec3S32 b); -internal Vec3S32 sub_3s32(Vec3S32 a, Vec3S32 b); -internal Vec3S32 mul_3s32(Vec3S32 a, Vec3S32 b); -internal Vec3S32 div_3s32(Vec3S32 a, Vec3S32 b); -internal Vec3S32 scale_3s32(Vec3S32 v, S32 s); -internal S32 dot_3s32(Vec3S32 a, Vec3S32 b); -internal S32 length_squared_3s32(Vec3S32 v); -internal S32 length_3s32(Vec3S32 v); -internal Vec3S32 normalize_3s32(Vec3S32 v); -internal Vec3S32 mix_3s32(Vec3S32 a, Vec3S32 b, F32 t); -internal Vec3S32 cross_3s32(Vec3S32 a, Vec3S32 b); - -#define v4f32(x, y, z, w) vec_4f32((x), (y), (z), (w)) -internal Vec4F32 vec_4f32(F32 x, F32 y, F32 z, F32 w); -internal Vec4F32 add_4f32(Vec4F32 a, Vec4F32 b); -internal Vec4F32 sub_4f32(Vec4F32 a, Vec4F32 b); -internal Vec4F32 mul_4f32(Vec4F32 a, Vec4F32 b); -internal Vec4F32 div_4f32(Vec4F32 a, Vec4F32 b); -internal Vec4F32 scale_4f32(Vec4F32 v, F32 s); -internal F32 dot_4f32(Vec4F32 a, Vec4F32 b); -internal F32 length_squared_4f32(Vec4F32 v); -internal F32 length_4f32(Vec4F32 v); -internal Vec4F32 normalize_4f32(Vec4F32 v); -internal Vec4F32 mix_4f32(Vec4F32 a, Vec4F32 b, F32 t); - -#define v4s32(x, y, z, w) vec_4s32((x), (y), (z), (w)) -internal Vec4S32 vec_4s32(S32 x, S32 y, S32 z, S32 w); -internal Vec4S32 add_4s32(Vec4S32 a, Vec4S32 b); -internal Vec4S32 sub_4s32(Vec4S32 a, Vec4S32 b); -internal Vec4S32 mul_4s32(Vec4S32 a, Vec4S32 b); -internal Vec4S32 div_4s32(Vec4S32 a, Vec4S32 b); -internal Vec4S32 scale_4s32(Vec4S32 v, S32 s); -internal S32 dot_4s32(Vec4S32 a, Vec4S32 b); -internal S32 length_squared_4s32(Vec4S32 v); -internal S32 length_4s32(Vec4S32 v); -internal Vec4S32 normalize_4s32(Vec4S32 v); -internal Vec4S32 mix_4s32(Vec4S32 a, Vec4S32 b, F32 t); - -//////////////////////////////// -//~ rjf: Matrix Ops - -internal Mat3x3F32 mat_3x3f32(F32 diagonal); -internal Mat3x3F32 make_translate_3x3f32(Vec2F32 delta); -internal Mat3x3F32 make_scale_3x3f32(Vec2F32 scale); -internal Mat3x3F32 mul_3x3f32(Mat3x3F32 a, Mat3x3F32 b); - -internal Mat4x4F32 mat_4x4f32(F32 diagonal); -internal Mat4x4F32 make_translate_4x4f32(Vec3F32 delta); -internal Mat4x4F32 make_scale_4x4f32(Vec3F32 scale); -internal Mat4x4F32 make_perspective_4x4f32(F32 fov, F32 aspect_ratio, F32 near_z, F32 far_z); -internal Mat4x4F32 make_orthographic_4x4f32(F32 left, F32 right, F32 bottom, F32 top, F32 near_z, F32 far_z); -internal Mat4x4F32 make_look_at_4x4f32(Vec3F32 eye, Vec3F32 center, Vec3F32 up); -internal Mat4x4F32 make_rotate_4x4f32(Vec3F32 axis, F32 turns); -internal Mat4x4F32 mul_4x4f32(Mat4x4F32 a, Mat4x4F32 b); -internal Mat4x4F32 scale_4x4f32(Mat4x4F32 m, F32 scale); -internal Mat4x4F32 inverse_4x4f32(Mat4x4F32 m); -internal Mat4x4F32 derotate_4x4f32(Mat4x4F32 mat); - -//////////////////////////////// -//~ rjf: Range Ops - -#define r1u32(min, max) rng_1u32((min), (max)) -internal Rng1U32 rng_1u32(U32 min, U32 max); -internal Rng1U32 shift_1u32(Rng1U32 r, U32 x); -internal Rng1U32 pad_1u32(Rng1U32 r, U32 x); -internal U32 center_1u32(Rng1U32 r); -internal B32 contains_1u32(Rng1U32 r, U32 x); -internal U32 dim_1u32(Rng1U32 r); -internal Rng1U32 union_1u32(Rng1U32 a, Rng1U32 b); -internal Rng1U32 intersect_1u32(Rng1U32 a, Rng1U32 b); -internal U32 clamp_1u32(Rng1U32 r, U32 v); - -#define r1s32(min, max) rng_1s32((min), (max)) -internal Rng1S32 rng_1s32(S32 min, S32 max); -internal Rng1S32 shift_1s32(Rng1S32 r, S32 x); -internal Rng1S32 pad_1s32(Rng1S32 r, S32 x); -internal S32 center_1s32(Rng1S32 r); -internal B32 contains_1s32(Rng1S32 r, S32 x); -internal S32 dim_1s32(Rng1S32 r); -internal Rng1S32 union_1s32(Rng1S32 a, Rng1S32 b); -internal Rng1S32 intersect_1s32(Rng1S32 a, Rng1S32 b); -internal S32 clamp_1s32(Rng1S32 r, S32 v); - -#define r1u64(min, max) rng_1u64((min), (max)) -internal Rng1U64 rng_1u64(U64 min, U64 max); -internal Rng1U64 shift_1u64(Rng1U64 r, U64 x); -internal Rng1U64 pad_1u64(Rng1U64 r, U64 x); -internal U64 center_1u64(Rng1U64 r); -internal B32 contains_1u64(Rng1U64 r, U64 x); -internal U64 dim_1u64(Rng1U64 r); -internal Rng1U64 union_1u64(Rng1U64 a, Rng1U64 b); -internal Rng1U64 intersect_1u64(Rng1U64 a, Rng1U64 b); -internal U64 clamp_1u64(Rng1U64 r, U64 v); - -#define r1s64(min, max) rng_1s64((min), (max)) -internal Rng1S64 rng_1s64(S64 min, S64 max); -internal Rng1S64 shift_1s64(Rng1S64 r, S64 x); -internal Rng1S64 pad_1s64(Rng1S64 r, S64 x); -internal S64 center_1s64(Rng1S64 r); -internal B32 contains_1s64(Rng1S64 r, S64 x); -internal S64 dim_1s64(Rng1S64 r); -internal Rng1S64 union_1s64(Rng1S64 a, Rng1S64 b); -internal Rng1S64 intersect_1s64(Rng1S64 a, Rng1S64 b); -internal S64 clamp_1s64(Rng1S64 r, S64 v); - -#define r1f32(min, max) rng_1f32((min), (max)) -internal Rng1F32 rng_1f32(F32 min, F32 max); -internal Rng1F32 shift_1f32(Rng1F32 r, F32 x); -internal Rng1F32 pad_1f32(Rng1F32 r, F32 x); -internal F32 center_1f32(Rng1F32 r); -internal B32 contains_1f32(Rng1F32 r, F32 x); -internal F32 dim_1f32(Rng1F32 r); -internal Rng1F32 union_1f32(Rng1F32 a, Rng1F32 b); -internal Rng1F32 intersect_1f32(Rng1F32 a, Rng1F32 b); -internal F32 clamp_1f32(Rng1F32 r, F32 v); - -#define r2s16(min, max) rng_2s16((min), (max)) -#define r2s16p(x, y, z, w) r2s16(v2s16((x), (y)), v2s16((z), (w))) -internal Rng2S16 rng_2s16(Vec2S16 min, Vec2S16 max); -internal Rng2S16 shift_2s16(Rng2S16 r, Vec2S16 x); -internal Rng2S16 pad_2s16(Rng2S16 r, S16 x); -internal Vec2S16 center_2s16(Rng2S16 r); -internal B32 contains_2s16(Rng2S16 r, Vec2S16 x); -internal Vec2S16 dim_2s16(Rng2S16 r); -internal Rng2S16 union_2s16(Rng2S16 a, Rng2S16 b); -internal Rng2S16 intersect_2s16(Rng2S16 a, Rng2S16 b); -internal Vec2S16 clamp_2s16(Rng2S16 r, Vec2S16 v); - -#define r2s32(min, max) rng_2s32((min), (max)) -#define r2s32p(x, y, z, w) r2s32(v2s32((x), (y)), v2s32((z), (w))) -internal Rng2S32 rng_2s32(Vec2S32 min, Vec2S32 max); -internal Rng2S32 shift_2s32(Rng2S32 r, Vec2S32 x); -internal Rng2S32 pad_2s32(Rng2S32 r, S32 x); -internal Vec2S32 center_2s32(Rng2S32 r); -internal B32 contains_2s32(Rng2S32 r, Vec2S32 x); -internal Vec2S32 dim_2s32(Rng2S32 r); -internal Rng2S32 union_2s32(Rng2S32 a, Rng2S32 b); -internal Rng2S32 intersect_2s32(Rng2S32 a, Rng2S32 b); -internal Vec2S32 clamp_2s32(Rng2S32 r, Vec2S32 v); - -#define r2s64(min, max) rng_2s64((min), (max)) -#define r2s64p(x, y, z, w) r2s64(v2s64((x), (y)), v2s64((z), (w))) -internal Rng2S64 rng_2s64(Vec2S64 min, Vec2S64 max); -internal Rng2S64 shift_2s64(Rng2S64 r, Vec2S64 x); -internal Rng2S64 pad_2s64(Rng2S64 r, S64 x); -internal Vec2S64 center_2s64(Rng2S64 r); -internal B32 contains_2s64(Rng2S64 r, Vec2S64 x); -internal Vec2S64 dim_2s64(Rng2S64 r); -internal Rng2S64 union_2s64(Rng2S64 a, Rng2S64 b); -internal Rng2S64 intersect_2s64(Rng2S64 a, Rng2S64 b); -internal Vec2S64 clamp_2s64(Rng2S64 r, Vec2S64 v); - -#define r2f32(min, max) rng_2f32((min), (max)) -#define r2f32p(x, y, z, w) r2f32(v2f32((x), (y)), v2f32((z), (w))) -internal Rng2F32 rng_2f32(Vec2F32 min, Vec2F32 max); -internal Rng2F32 shift_2f32(Rng2F32 r, Vec2F32 x); -internal Rng2F32 pad_2f32(Rng2F32 r, F32 x); -internal Vec2F32 center_2f32(Rng2F32 r); -internal B32 contains_2f32(Rng2F32 r, Vec2F32 x); -internal Vec2F32 dim_2f32(Rng2F32 r); -internal Rng2F32 union_2f32(Rng2F32 a, Rng2F32 b); -internal Rng2F32 intersect_2f32(Rng2F32 a, Rng2F32 b); -internal Vec2F32 clamp_2f32(Rng2F32 r, Vec2F32 v); - -//////////////////////////////// -//~ rjf: Miscellaneous Ops - -internal Vec3F32 hsv_from_rgb(Vec3F32 rgb); -internal Vec3F32 rgb_from_hsv(Vec3F32 hsv); -internal Vec4F32 hsva_from_rgba(Vec4F32 rgba); -internal Vec4F32 rgba_from_hsva(Vec4F32 hsva); -internal Vec4F32 rgba_from_u32(U32 hex); -internal U32 u32_from_rgba(Vec4F32 rgba); - -#define rgba_from_u32_lit_comp(h) { (((h)&0xff000000)>>24)/255.f, (((h)&0x00ff0000)>>16)/255.f, (((h)&0x0000ff00)>> 8)/255.f, (((h)&0x000000ff)>> 0)/255.f } - -//////////////////////////////// -//~ rjf: List Type Functions - -internal void rng1u64_list_push(Arena *arena, Rng1U64List *list, Rng1U64 rng); -internal void rng1u64_list_concat(Rng1U64List *list, Rng1U64List *to_concat); -internal Rng1U64Array rng1u64_array_from_list(Arena *arena, Rng1U64List *list); - -internal void rng1s64_list_push(Arena *arena, Rng1S64List *list, Rng1S64 rng); -internal Rng1S64Array rng1s64_array_from_list(Arena *arena, Rng1S64List *list); - -#endif // BASE_MATH_H diff --git a/src/metagen/metagen_base/metagen_base_meta.c b/src/metagen/metagen_base/metagen_base_meta.c index c60dc237..8b137891 100644 --- a/src/metagen/metagen_base/metagen_base_meta.c +++ b/src/metagen/metagen_base/metagen_base_meta.c @@ -1,422 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Type Info Lookups - -internal Member * -member_from_name(Type *type, String8 name) -{ - Member *member = &member_nil; - if(type->members != 0 && name.size != 0) - { - for(U64 idx = 0; idx < type->count; idx += 1) - { - if(str8_match(type->members[idx].name, name, 0)) - { - member = &type->members[idx]; - break; - } - } - } - return member; -} - -//////////////////////////////// -//~ rjf: Type Info * Instance Operations - -internal void -typed_data_rebase_ptrs(Type *type, String8 data, void *base_ptr) -{ - Temp scratch = scratch_begin(0, 0); - typedef struct RebaseTypeTask RebaseTypeTask; - struct RebaseTypeTask - { - RebaseTypeTask *next; - Type *type; - U8 *ptr; - }; - RebaseTypeTask start_task = {0, type, data.str}; - RebaseTypeTask *first_task = &start_task; - RebaseTypeTask *last_task = first_task; - for(RebaseTypeTask *t = first_task; t != 0; t = t->next) - { - switch(t->type->kind) - { - default:{}break; - case TypeKind_Ptr: - if(!(t->type->flags & TypeFlag_IsExternal)) - { - *(U64 *)t->ptr = ((U64)(*(U8 **)t->ptr - (U8 *)base_ptr)); - }break; - case TypeKind_Array: - { - for(U64 idx = 0; idx < t->type->count; idx += 1) - { - RebaseTypeTask *task = push_array(scratch.arena, RebaseTypeTask, 1); - task->type = t->type->direct; - task->ptr = t->ptr + t->type->direct->size * idx; - SLLQueuePush(first_task, last_task, task); - } - }break; - case TypeKind_Struct: - { - for(U64 idx = 0; idx < t->type->count; idx += 1) - { - Member *member = &t->type->members[idx]; - RebaseTypeTask *task = push_array(scratch.arena, RebaseTypeTask, 1); - task->type = member->type; - task->ptr = t->ptr + member->value; - SLLQueuePush(first_task, last_task, task); - } - }break; - } - } - scratch_end(scratch); -} - -internal String8 -serialized_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List strings = {0}; - str8_serial_begin(scratch.arena, &strings); - { - typedef struct SerializeTypeTask SerializeTypeTask; - struct SerializeTypeTask - { - SerializeTypeTask *next; - Type *type; - U64 count; - U8 *src; - Type *containing_type; - U8 *containing_ptr; - B32 is_post_header; - }; - SerializeTypeTask start_task = {0, type, 1, data.str}; - SerializeTypeTask *first_task = &start_task; - SerializeTypeTask *last_task = first_task; - for(SerializeTypeTask *t = first_task; t != 0; t = t->next) - { - switch(t->type->kind) - { - //- rjf: leaf -> just copy the data directly - default: - if(TypeKind_FirstLeaf <= t->type->kind && t->type->kind <= TypeKind_LastLeaf) - { - str8_serial_push_string(scratch.arena, &strings, str8(t->src, t->type->size*t->count)); - }break; - - //- rjf: pointers -> try to interpret/understand pointer & read/write, otherwise just write as plain data - case TypeKind_Ptr: - { - // rjf: unpack info about this pointer - TypeSerializePtrRefInfo *ptr_ref_info = 0; - for(U64 idx = 0; idx < params->ptr_ref_infos_count; idx += 1) - { - if(params->ptr_ref_infos[idx].type == t->type->direct) - { - ptr_ref_info = ¶ms->ptr_ref_infos[idx]; - break; - } - } - - // rjf: indexification -> subtract base, divide direct size, write index - if(ptr_ref_info != 0 && ptr_ref_info->indexify_base != 0) - { - U64 ptr_value = 0; - MemoryCopy(&ptr_value, t->src, sizeof(ptr_value)); - U64 ptr_write_value = ((U64)((U8 *)ptr_value - (U8 *)ptr_ref_info->indexify_base)/t->type->direct->size); - str8_serial_push_struct(scratch.arena, &strings, &ptr_write_value); - } - - // rjf: offsetification -> subtract base, write offsets - else if(ptr_ref_info != 0 && ptr_ref_info->offsetify_base != 0) - { - U64 ptr_value = 0; - MemoryCopy(&ptr_value, t->src, sizeof(ptr_value)); - U64 ptr_write_value = (U64)((U8 *)ptr_value - (U8 *)ptr_ref_info->offsetify_base); - str8_serial_push_struct(scratch.arena, &strings, &ptr_write_value); - } - - // rjf: size-by-member (pre-header): still potentially dependent on other members which - // delimit our size, so push a new post-header task for pointer. - else if(t->type->count_delimiter_name.size != 0 && !t->is_post_header) - { - SerializeTypeTask *task = push_array(scratch.arena, SerializeTypeTask, 1); - task->type = t->type; - task->count = t->count; - task->src = t->src; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - task->is_post_header = 1; - SLLQueuePush(first_task, last_task, task); - } - - // rjf: size-by-member (post-header): all flat parts of containing struct have been - // iterated, so now we can read the size, & descend to new task to read pointer - // destination contents - else if(t->type->count_delimiter_name.size != 0 && t->is_post_header) - { - // rjf: determine count of this pointer - U64 count = 0; - { - Member *count_member = member_from_name(t->containing_type, t->type->count_delimiter_name); - MemoryCopy(&count, t->containing_ptr + count_member->value, count_member->type->size); - } - - // rjf: push task - SerializeTypeTask *task = push_array(scratch.arena, SerializeTypeTask, 1); - task->type = t->type->direct; - task->count = count; - task->src = *(void **)t->src; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - } - - // rjf: catch-all: write pointer value - else - { - str8_serial_push_string(scratch.arena, &strings, str8(t->src, t->type->size*t->count)); - } - }break; - - //- rjf: arrays -> descend to underlying type, + count - case TypeKind_Array: - { - SerializeTypeTask *task = push_array(scratch.arena, SerializeTypeTask, 1); - task->type = t->type->direct; - task->count = t->type->count; - task->src = t->src; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - }break; - - //- rjf: struct -> descend to members - case TypeKind_Struct: - { - U64 off = 0; - for(U64 idx = 0; idx < t->count; idx += 1) - { - for(U64 member_idx = 0; member_idx < t->type->count; member_idx += 1) - { - if(t->type->members[member_idx].flags & MemberFlag_DoNotSerialize) - { - continue; - } - SerializeTypeTask *task = push_array(scratch.arena, SerializeTypeTask, 1); - task->type = t->type->members[member_idx].type; - task->count = 1; - task->src = t->src + idx*t->type->size + t->type->members[member_idx].value; - task->containing_type = t->type; - task->containing_ptr = t->src; - SLLQueuePush(first_task, last_task, task); - } - } - }break; - - //- rjf: enum -> descend to basic type interpretation - case TypeKind_Enum: - { - SerializeTypeTask *task = push_array(scratch.arena, SerializeTypeTask, 1); - task->type = t->type->direct; - task->count = t->count; - task->src = t->src; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - }break; - } - } - } - String8 result = str8_serial_end(arena, &strings); - scratch_end(scratch); - return result; -} - -internal String8 -deserialized_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params) -{ - String8 result = {0}; - result.size = type->size; - result.str = push_array(arena, U8, result.size); - { - Temp scratch = scratch_begin(&arena, 1); - typedef struct DeserializeTypeTask DeserializeTypeTask; - struct DeserializeTypeTask - { - DeserializeTypeTask *next; - Type *type; - U64 count; - U8 *dst; - Type *containing_type; - U8 *containing_ptr; - B32 is_post_header; - }; - U64 read_off = 0; - DeserializeTypeTask start_task = {0, type, 1, result.str}; - DeserializeTypeTask *first_task = &start_task; - DeserializeTypeTask *last_task = first_task; - for(DeserializeTypeTask *t = first_task; t != 0; t = t->next) - { - U8 *t_src = data.str + read_off; - switch(t->type->kind) - { - //- rjf: leaf -> copy the data directly - default: - if(TypeKind_FirstLeaf <= t->type->kind && t->type->kind <= TypeKind_LastLeaf) - { - MemoryCopy(t->dst, t_src, t->type->size*t->count); - read_off += t->type->size*t->count; - }break; - - //- rjf: pointers -> try to interpret/understand pointer & read/write, otherwise skip - case TypeKind_Ptr: - { - // rjf: unpack info about this pointer - TypeSerializePtrRefInfo *ptr_ref_info = 0; - for(U64 idx = 0; idx < params->ptr_ref_infos_count; idx += 1) - { - if(params->ptr_ref_infos[idx].type == t->type->direct) - { - ptr_ref_info = ¶ms->ptr_ref_infos[idx]; - break; - } - } - - // rjf: indexification -> add base, multiply direct size - if(ptr_ref_info != 0 && ptr_ref_info->indexify_base != 0) - { - U64 ptr_value = 0; - MemoryCopy(&ptr_value, t_src, sizeof(ptr_value)); - U64 ptr_write_value = (ptr_value + (U64)ptr_ref_info->indexify_base) * t->type->direct->size; - MemoryCopy(t->dst, &ptr_write_value, sizeof(ptr_write_value)); - read_off += sizeof(ptr_value); - } - - // rjf: offsetification -> subtract base, write offsets - else if(ptr_ref_info != 0 && ptr_ref_info->offsetify_base != 0) - { - U64 ptr_value = 0; - MemoryCopy(&ptr_value, t_src, sizeof(ptr_value)); - U64 ptr_write_value = ptr_value + (U64)ptr_ref_info->offsetify_base; - MemoryCopy(t->dst, &ptr_write_value, sizeof(ptr_write_value)); - read_off += sizeof(ptr_value); - } - - // rjf: size-by-member (pre-header): still potentially dependent on other members which - // delimit our size, so push a new post-header task for pointer. - else if(t->type->count_delimiter_name.size != 0 && !t->is_post_header) - { - DeserializeTypeTask *task = push_array(scratch.arena, DeserializeTypeTask, 1); - task->type = t->type; - task->count = t->count; - task->dst = t->dst; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - task->is_post_header = 1; - SLLQueuePush(first_task, last_task, task); - } - - // rjf: size-by-member (post-header): all flat parts of containing struct have been - // iterated, so now we can read the size, & descend to new task to read pointer - // destination contents - else if(t->type->count_delimiter_name.size != 0 && t->is_post_header) - { - // rjf: determine count of this pointer - U64 count = 0; - { - Member *count_member = member_from_name(t->containing_type, t->type->count_delimiter_name); - MemoryCopy(&count, t->containing_ptr + count_member->value, count_member->type->size); - } - - // rjf: allocate buffer for pointer destination; write address into pointer value slot - U64 ptr_dest_buffer_size = (count+1)*t->type->direct->size; - U8 *ptr_dest_buffer = push_array(arena, U8, ptr_dest_buffer_size); - MemoryCopy(t->dst, &ptr_dest_buffer, sizeof(ptr_dest_buffer)); - - // rjf: push task - DeserializeTypeTask *task = push_array(scratch.arena, DeserializeTypeTask, 1); - task->type = t->type->direct; - task->count = count; - task->dst = ptr_dest_buffer; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - } - - // rjf: catch-all: read pointer value - else - { - MemoryCopy(t->dst, t_src, t->type->size*t->count); - read_off += t->type->size*t->count; - } - }break; - - //- rjf: arrays -> descend to underlying type, + count - case TypeKind_Array: - { - DeserializeTypeTask *task = push_array(scratch.arena, DeserializeTypeTask, 1); - task->type = t->type->direct; - task->count = t->type->count; - task->dst = t->dst; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - }break; - - //- rjf: struct -> descend to members - case TypeKind_Struct: - { - for(U64 idx = 0; idx < t->count; idx += 1) - { - for(U64 member_idx = 0; member_idx < t->type->count; member_idx += 1) - { - if(t->type->members[member_idx].flags & MemberFlag_DoNotSerialize) - { - continue; - } - DeserializeTypeTask *task = push_array(scratch.arena, DeserializeTypeTask, 1); - task->type = t->type->members[member_idx].type; - task->count = 1; - task->dst = t->dst + idx*t->type->size + t->type->members[member_idx].value; - task->containing_type = t->type; - task->containing_ptr = t->dst; - SLLQueuePush(first_task, last_task, task); - } - } - }break; - - //- rjf: enum -> descend to basic type interpretation - case TypeKind_Enum: - { - DeserializeTypeTask *task = push_array(scratch.arena, DeserializeTypeTask, 1); - task->type = t->type->direct; - task->count = t->count; - task->dst = t->dst; - task->containing_type = t->containing_type; - task->containing_ptr = t->containing_ptr; - SLLQueuePush(first_task, last_task, task); - }break; - } - } - if(params->advance_out != 0) - { - params->advance_out[0] = read_off; - } - scratch_end(scratch); - } - return result; -} - -internal String8 -deep_copy_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 data_srlz = serialized_from_typed_data(scratch.arena, type, data, params); - String8 data_copy = deserialized_from_typed_data(arena, type, data_srlz, params); - scratch_end(scratch); - return data_copy; -} + diff --git a/src/metagen/metagen_base/metagen_base_meta.h b/src/metagen/metagen_base/metagen_base_meta.h deleted file mode 100644 index 45d01e72..00000000 --- a/src/metagen/metagen_base/metagen_base_meta.h +++ /dev/null @@ -1,298 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_META_H -#define BASE_META_H - -//////////////////////////////// -//~ rjf: Meta Markup Features - -#define EmbedFile(name, path) -#define TweakB32(name, default) (TWEAK_##name) -#define TweakF32(name, default, min, max) (TWEAK_##name) - -//////////////////////////////// -//~ rjf: Tweak Info Tables - -typedef struct TweakB32Info TweakB32Info; -struct TweakB32Info -{ - String8 name; - B32 default_value; - B32 *value_ptr; -}; - -typedef struct TweakF32Info TweakF32Info; -struct TweakF32Info -{ - String8 name; - F32 default_value; - Rng1F32 value_range; - F32 *value_ptr; -}; - -typedef struct TweakB32InfoTable TweakB32InfoTable; -struct TweakB32InfoTable -{ - TweakB32Info *v; - U64 count; -}; - -typedef struct TweakF32InfoTable TweakF32InfoTable; -struct TweakF32InfoTable -{ - TweakF32Info *v; - U64 count; -}; - -typedef struct EmbedInfo EmbedInfo; -struct EmbedInfo -{ - String8 name; - String8 *data; - U128 *hash; -}; - -typedef struct EmbedInfoTable EmbedInfoTable; -struct EmbedInfoTable -{ - EmbedInfo *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Type Info Types - -typedef enum TypeKind -{ - TypeKind_Null, - - // rjf: leaves - TypeKind_Void, TypeKind_FirstLeaf = TypeKind_Void, - TypeKind_U8, - TypeKind_U16, - TypeKind_U32, - TypeKind_U64, - TypeKind_S8, - TypeKind_S16, - TypeKind_S32, - TypeKind_S64, - TypeKind_B8, - TypeKind_B16, - TypeKind_B32, - TypeKind_B64, - TypeKind_F32, - TypeKind_F64, TypeKind_LastLeaf = TypeKind_F64, - - // rjf: operators - TypeKind_Ptr, - TypeKind_Array, - - // rjf: user-defined-types - TypeKind_Struct, - TypeKind_Union, - TypeKind_Enum, - - TypeKind_COUNT -} -TypeKind; - -typedef U32 TypeFlags; -enum -{ - TypeFlag_IsExternal = (1<<0), - TypeFlag_IsPlainText = (1<<1), - TypeFlag_IsCodeText = (1<<2), - TypeFlag_IsPathText = (1<<3), -}; - -typedef U32 MemberFlags; -enum -{ - MemberFlag_DoNotSerialize = (1<<0), -}; - -typedef struct Type Type; -typedef struct Member Member; -struct Member -{ - String8 name; - String8 pretty_name; - Type *type; - U64 value; - MemberFlags flags; -}; - -typedef struct Type Type; -struct Type -{ - TypeKind kind; - TypeFlags flags; - U64 size; - Type *direct; - String8 name; - String8 count_delimiter_name; // gathered from surrounding members, turns *->[1] into *->[N] - U64 count; - Member *members; -}; - -//////////////////////////////// -//~ rjf: Type Serialization Parameters - -typedef struct TypeSerializePtrRefInfo TypeSerializePtrRefInfo; -struct TypeSerializePtrRefInfo -{ - Type *type; // pointers to this - void *indexify_base; // can be indexified using this - void *offsetify_base; // can be offsetified using this - void *nil_ptr; // is terminal if matching 0 or this -}; - -typedef struct TypeSerializeParams TypeSerializeParams; -struct TypeSerializeParams -{ - U64 *advance_out; - TypeSerializePtrRefInfo *ptr_ref_infos; - U64 ptr_ref_infos_count; -}; - -//////////////////////////////// -//~ rjf: Type Name -> Type Info - -#define type(T) (&T##__type) - -//////////////////////////////// -//~ rjf: Type Info Table Initializer Helpers - -#define member_lit_comp(S, ti, m, ...) {str8_lit_comp(#m), {0}, (ti), OffsetOf(S, m), __VA_ARGS__} -#define struct_members(S) read_only global Member S##__members[] = -#define struct_type(S, ...) read_only global Type S##__type = {TypeKind_Struct, 0, sizeof(S), &type_nil, str8_lit_comp(#S), {0}, ArrayCount(S##__members), S##__members, __VA_ARGS__} -#define named_struct_type(name, S, ...) read_only global Type name##__type = {TypeKind_Struct, 0, sizeof(S), &type_nil, str8_lit_comp(#name), {0}, ArrayCount(name##__members), name##__members, __VA_ARGS__} -#define ptr_type(name, ti, ...) read_only global Type name = {TypeKind_Ptr, 0, sizeof(void *), (ti), __VA_ARGS__} - -//////////////////////////////// -//~ rjf: Globals - -read_only global Type type_nil = {TypeKind_Null, 0, 0, &type_nil}; -read_only global Member member_nil = {{0}, {0}, &type_nil}; - -//////////////////////////////// -//~ rjf: Built-In Types - -//- rjf: leaves -read_only global Type void__type = {TypeKind_Void, 0, 0, &type_nil, str8_lit_comp("void")}; -read_only global Type U8__type = {TypeKind_U8, 0, sizeof(U8), &type_nil, str8_lit_comp("U8")}; -read_only global Type U16__type = {TypeKind_U16, 0, sizeof(U16), &type_nil, str8_lit_comp("U16")}; -read_only global Type U32__type = {TypeKind_U32, 0, sizeof(U32), &type_nil, str8_lit_comp("U32")}; -read_only global Type U64__type = {TypeKind_U64, 0, sizeof(U64), &type_nil, str8_lit_comp("U64")}; -read_only global Type S8__type = {TypeKind_S8, 0, sizeof(S8), &type_nil, str8_lit_comp("S8")}; -read_only global Type S16__type = {TypeKind_S16, 0, sizeof(S16), &type_nil, str8_lit_comp("S16")}; -read_only global Type S32__type = {TypeKind_S32, 0, sizeof(S32), &type_nil, str8_lit_comp("S32")}; -read_only global Type S64__type = {TypeKind_S64, 0, sizeof(S64), &type_nil, str8_lit_comp("S64")}; -read_only global Type B8__type = {TypeKind_B8, 0, sizeof(B8), &type_nil, str8_lit_comp("B8")}; -read_only global Type B16__type = {TypeKind_B16, 0, sizeof(B16), &type_nil, str8_lit_comp("B16")}; -read_only global Type B32__type = {TypeKind_B32, 0, sizeof(B32), &type_nil, str8_lit_comp("B32")}; -read_only global Type B64__type = {TypeKind_B64, 0, sizeof(B64), &type_nil, str8_lit_comp("B64")}; -read_only global Type F32__type = {TypeKind_F32, 0, sizeof(F32), &type_nil, str8_lit_comp("F32")}; -read_only global Type F64__type = {TypeKind_F64, 0, sizeof(F64), &type_nil, str8_lit_comp("F64")}; -read_only global Type *type_kind_type_table[] = -{ - &type_nil, - type(void), - type(U8), - type(U16), - type(U32), - type(U64), - type(S8), - type(S16), - type(S32), - type(S64), - type(B8), - type(B16), - type(B32), - type(B64), - type(F32), - type(F64), - &type_nil, - &type_nil, - &type_nil, - &type_nil, - &type_nil, -}; - -//- rjf: Rng1U64 -struct_members(Rng1U64) -{ - member_lit_comp(Rng1U64, type(U64), min), - member_lit_comp(Rng1U64, type(U64), max), -}; -struct_type(Rng1U64); - -//- rjf: String8 -ptr_type(String8__str_ptr_type, type(U8), str8_lit_comp("size")); -struct_members(String8) -{ - member_lit_comp(String8, &String8__str_ptr_type, str), - member_lit_comp(String8, type(U64), size), -}; -struct_type(String8); - -//- rjf: String8Node -extern Type String8Node__type; -Type String8Node__ptr_type = {TypeKind_Ptr, 0, sizeof(void *), &String8Node__type}; -Member String8Node__members[] = -{ - {str8_lit_comp("next"), {0}, &String8Node__ptr_type, OffsetOf(String8Node, next)}, - {str8_lit_comp("string"), {0}, type(String8), OffsetOf(String8Node, string)}, -}; -Type String8Node__type = -{ - TypeKind_Struct, - 0, - sizeof(String8Node), - &type_nil, - str8_lit_comp("String8Node"), - {0}, - ArrayCount(String8Node__members), - String8Node__members, -}; - -//- rjf: String8List -Member String8List__members[] = -{ - {str8_lit_comp("first"), {0}, &String8Node__ptr_type, OffsetOf(String8List, first)}, - {str8_lit_comp("last"), {0}, &String8Node__ptr_type, OffsetOf(String8List, last), MemberFlag_DoNotSerialize}, - {str8_lit_comp("node_count"), {0}, type(U64), OffsetOf(String8List, node_count)}, - {str8_lit_comp("total_size"), {0}, type(U64), OffsetOf(String8List, total_size)}, -}; -Type String8List__type = -{ - TypeKind_Struct, - 0, - sizeof(String8List), - &type_nil, - str8_lit_comp("String8List"), - {0}, - ArrayCount(String8List__members), - String8List__members, -}; - -//////////////////////////////// -//~ rjf: Type Info Lookups - -internal Member *member_from_name(Type *type, String8 name); -#define EachMember(T, it) (Member *it = (type(T))->members; it != 0 && it < (type(T))->members + (type(T))->count; it += 1) - -//////////////////////////////// -//~ rjf: Type Info * Instance Operations - -internal void typed_data_rebase_ptrs(Type *type, String8 data, void *base_ptr); -internal String8 serialized_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params); -internal String8 deserialized_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params); -internal String8 deep_copy_from_typed_data(Arena *arena, Type *type, String8 data, TypeSerializeParams *params); -#define struct_rebase_ptrs(T, ptr, base) typed_data_rebase_ptrs(type(T), str8_struct(ptr), (base)) -#define serialized_from_struct(arena, T, ptr, ...) serialized_from_typed_data((arena), type(T), str8_struct(ptr), &(TypeSerializeParams){.ptr_ref_infos = 0, __VA_ARGS__}) -#define struct_from_serialized(arena, T, string, ...) (T *)deserialized_from_typed_data((arena), type(T), (string), &(TypeSerializeParams){.ptr_ref_infos = 0, __VA_ARGS__}).str -#define deep_copy_from_struct(arena, T, ptr, ...) (T *)deep_copy_from_typed_data((arena), type(T), str8_struct(ptr), &(TypeSerializeParams){.ptr_ref_infos = 0, __VA_ARGS__}).str - -#endif // BASE_META_H diff --git a/src/metagen/metagen_base/metagen_base_profile.h b/src/metagen/metagen_base/metagen_base_profile.h deleted file mode 100644 index 1e0d938b..00000000 --- a/src/metagen/metagen_base/metagen_base_profile.h +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_PROFILE_H -#define BASE_PROFILE_H - -//////////////////////////////// -//~ rjf: Zero Settings - -#if !defined(PROFILE_TELEMETRY) -# define PROFILE_TELEMETRY 0 -#endif - -#if !defined(MARKUP_LAYER_COLOR) -# define MARKUP_LAYER_COLOR 1.00f, 0.00f, 1.00f -#endif - -//////////////////////////////// -//~ rjf: Third Party Includes - -#if PROFILE_TELEMETRY -# include "rad_tm.h" -# if OS_WINDOWS -# pragma comment(lib, "ws2_32.lib") -# pragma comment(lib, "rad_tm_win64.lib") -# endif -#endif - -//////////////////////////////// -//~ rjf: Telemetry Profile Defines - -#if PROFILE_TELEMETRY -# define ProfBegin(...) tmEnter(0, 0, __VA_ARGS__) -# define ProfBeginDynamic(...) (TM_API_PTR ? TM_API_PTR->_tmEnterZoneV_Core(0, 0, __FILE__, &g_telemetry_filename_id, __LINE__, __VA_ARGS__) : (void)0) -# define ProfEnd(...) (TM_API_PTR ? TM_API_PTR->_tmLeaveZone(0) : (void)0) -# define ProfTick(...) tmTick(0) -# define ProfIsCapturing(...) tmRunning() -# define ProfBeginCapture(...) tmOpen(0, __VA_ARGS__, __DATE__, "localhost", TMCT_TCP, TELEMETRY_DEFAULT_PORT, TMOF_INIT_NETWORKING|TMOF_CAPTURE_CONTEXT_SWITCHES, 100) -# define ProfEndCapture(...) tmClose(0) -# define ProfThreadName(...) (TM_API_PTR ? TM_API_PTR->_tmThreadName(0, 0, __VA_ARGS__) : (void)0) -# define ProfMsg(...) (TM_API_PTR ? TM_API_PTR->_tmMessageV_Core(0, TMMF_ICON_NOTE, __FILE__, &g_telemetry_filename_id, __LINE__, __VA_ARGS__) : (void)0) -# define ProfBeginLockWait(...) tmStartWaitForLock(0, 0, __VA_ARGS__) -# define ProfEndLockWait(...) tmEndWaitForLock(0) -# define ProfLockTake(...) tmAcquiredLock(0, 0, __VA_ARGS__) -# define ProfLockDrop(...) tmReleasedLock(0, __VA_ARGS__) -# define ProfColor(color) tmZoneColorSticky(color) -# define ProfBeginV(...) \ -if (TM_API_PTR) { \ -static tm_uint64 file_id = 0; TM_API_PTR->_tmStaticString(&file_id, __FILE__); \ -Temp scratch = scratch_begin(0,0); \ -String8 string = push_str8f(scratch.arena, __VA_ARGS__); \ -tm_uint64 hash = TM_API_PTR->_tmHash((char*)string.str, string.size); \ -hash = TM_API_PTR->_tmSendDynamicString(hash, (char*)string.str); \ -TM_API_PTR->_tmEnterZoneFast_Core(0, 0, file_id, __LINE__, hash); \ -scratch_end(scratch); \ -} -# define ProfNoteV(...) \ -if (TM_API_PTR) { \ -static tm_uint64 file_id = 0; TM_API_PTR->_tmStaticString(&file_id, __FILE__); \ -Temp scratch = scratch_begin(0,0); \ -String8 string = push_str8f(scratch.arena, __VA_ARGS__); \ -tm_uint64 hash = TM_API_PTR->_tmHash((char*)string.str, string.size); \ -hash = TM_API_PTR->_tmSendDynamicString(hash, (char*)string.str); \ -TM_API_PTR->_tmMessageFast_Core(0, TMMF_ICON_NOTE, file_id, __LINE__, hash); \ -scratch_end(scratch); \ -} -#endif - -//////////////////////////////// -//~ rjf: Zeroify Undefined Defines - -#if !defined(ProfBegin) -# define ProfBegin(...) (0) -# define ProfBeginDynamic(...) (0) -# define ProfEnd(...) (0) -# define ProfTick(...) (0) -# define ProfIsCapturing(...) (0) -# define ProfBeginCapture(...) (0) -# define ProfEndCapture(...) (0) -# define ProfThreadName(...) (0) -# define ProfMsg(...) (0) -# define ProfBeginLockWait(...) (0) -# define ProfEndLockWait(...) (0) -# define ProfLockTake(...) (0) -# define ProfLockDrop(...) (0) -# define ProfColor(...) (0) -# define ProfBeginV(...) (0) -# define ProfNoteV(...) (0) -#endif - -//////////////////////////////// -//~ rjf: Helper Wrappers - -#define ProfBeginFunction(...) ProfBegin(this_function_name) -#define ProfScope(...) DeferLoop(ProfBeginDynamic(__VA_ARGS__), ProfEnd()) - -#endif // BASE_PROFILE_H diff --git a/src/metagen/metagen_base/metagen_base_strings.c b/src/metagen/metagen_base/metagen_base_strings.c deleted file mode 100644 index 9e42e0cd..00000000 --- a/src/metagen/metagen_base/metagen_base_strings.c +++ /dev/null @@ -1,2446 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Third Party Includes - -#if !BUILD_SUPPLEMENTARY_UNIT -# define STB_SPRINTF_IMPLEMENTATION -# define STB_SPRINTF_STATIC -# include "third_party/stb/stb_sprintf.h" -#endif - -//////////////////////////////// -//~ NOTE(allen): String <-> Integer Tables - -read_only global U8 integer_symbols[16] = { - '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F', -}; - -// NOTE(allen): Includes reverses for uppercase and lowercase hex. -read_only global U8 integer_symbol_reverse[128] = { - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -read_only global U8 base64[64] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', - 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', - 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - '_', '$', -}; - -read_only global U8 base64_reverse[128] = { - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0xFF,0xFF,0xFF,0xFF,0xFF,0x00, - 0xFF,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32, - 0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0xFF,0xFF,0xFF,0xFF,0x3E, - 0xFF,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, - 0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20,0x21,0x22,0x23,0xFF,0xFF,0xFF,0xFF,0xFF, -}; - -//////////////////////////////// -//~ rjf: Character Classification & Conversion Functions - -internal B32 -char_is_space(U8 c){ - return(c == ' ' || c == '\n' || c == '\t' || c == '\r' || c == '\f' || c == '\v'); -} - -internal B32 -char_is_upper(U8 c){ - return('A' <= c && c <= 'Z'); -} - -internal B32 -char_is_lower(U8 c){ - return('a' <= c && c <= 'z'); -} - -internal B32 -char_is_alpha(U8 c){ - return(char_is_upper(c) || char_is_lower(c)); -} - -internal B32 -char_is_slash(U8 c){ - return(c == '/' || c == '\\'); -} - -internal B32 -char_is_digit(U8 c, U32 base){ - B32 result = 0; - if (0 < base && base <= 16){ - U8 val = integer_symbol_reverse[c]; - if (val < base){ - result = 1; - } - } - return(result); -} - -internal U8 -char_to_lower(U8 c){ - if (char_is_upper(c)){ - c += ('a' - 'A'); - } - return(c); -} - -internal U8 -char_to_upper(U8 c){ - if (char_is_lower(c)){ - c += ('A' - 'a'); - } - return(c); -} - -internal U8 -char_to_correct_slash(U8 c){ - if(char_is_slash(c)){ - c = '/'; - } - return(c); -} - -//////////////////////////////// -//~ rjf: C-String Measurement - -internal U64 -cstring8_length(U8 *c){ - U8 *p = c; - for (;*p != 0; p += 1); - return(p - c); -} - -internal U64 -cstring16_length(U16 *c){ - U16 *p = c; - for (;*p != 0; p += 1); - return(p - c); -} - -internal U64 -cstring32_length(U32 *c){ - U32 *p = c; - for (;*p != 0; p += 1); - return(p - c); -} - -//////////////////////////////// -//~ rjf: String Constructors - -internal String8 -str8(U8 *str, U64 size){ - String8 result = {str, size}; - return(result); -} - -internal String8 -str8_range(U8 *first, U8 *one_past_last){ - String8 result = {first, (U64)(one_past_last - first)}; - return(result); -} - -internal String8 -str8_zero(void){ - String8 result = {0}; - return(result); -} - -internal String16 -str16(U16 *str, U64 size){ - String16 result = {str, size}; - return(result); -} - -internal String16 -str16_range(U16 *first, U16 *one_past_last){ - String16 result = {first, (U64)(one_past_last - first)}; - return(result); -} - -internal String16 -str16_zero(void){ - String16 result = {0}; - return(result); -} - -internal String32 -str32(U32 *str, U64 size){ - String32 result = {str, size}; - return(result); -} - -internal String32 -str32_range(U32 *first, U32 *one_past_last){ - String32 result = {first, (U64)(one_past_last - first)}; - return(result); -} - -internal String32 -str32_zero(void){ - String32 result = {0}; - return(result); -} - -internal String8 -str8_cstring(char *c){ - String8 result = {(U8*)c, cstring8_length((U8*)c)}; - return(result); -} - -internal String16 -str16_cstring(U16 *c){ - String16 result = {(U16*)c, cstring16_length((U16*)c)}; - return(result); -} - -internal String32 -str32_cstring(U32 *c){ - String32 result = {(U32*)c, cstring32_length((U32*)c)}; - return(result); -} - -internal String8 -str8_cstring_capped(void *cstr, void *cap) -{ - char *ptr = (char *)cstr; - char *opl = (char *)cap; - for (;ptr < opl && *ptr != 0; ptr += 1); - U64 size = (U64)(ptr - (char *)cstr); - String8 result = str8((U8*)cstr, size); - return result; -} - -internal String16 -str16_cstring_capped(void *cstr, void *cap) -{ - U16 *ptr = (U16 *)cstr; - U16 *opl = (U16 *)cap; - for (;ptr < opl && *ptr != 0; ptr += 1); - U64 size = (U64)(ptr - (U16 *)cstr); - String16 result = str16(cstr, size); - return result; -} - -internal String8 -str8_cstring_capped_reverse(void *raw_start, void *raw_cap) -{ - U8 *start = raw_start; - U8 *ptr = raw_cap; - for(; ptr > start; ) - { - ptr -= 1; - - if (*ptr == '\0') - { - break; - } - } - U64 size = (U64)(ptr - start); - String8 result = str8(start, size); - return result; -} - -//////////////////////////////// -//~ rjf: String Stylization - -internal String8 -upper_from_str8(Arena *arena, String8 string) -{ - string = push_str8_copy(arena, string); - for(U64 idx = 0; idx < string.size; idx += 1) - { - string.str[idx] = char_to_upper(string.str[idx]); - } - return string; -} - -internal String8 -lower_from_str8(Arena *arena, String8 string) -{ - string = push_str8_copy(arena, string); - for(U64 idx = 0; idx < string.size; idx += 1) - { - string.str[idx] = char_to_lower(string.str[idx]); - } - return string; -} - -internal String8 -backslashed_from_str8(Arena *arena, String8 string) -{ - string = push_str8_copy(arena, string); - for(U64 idx = 0; idx < string.size; idx += 1) - { - string.str[idx] = char_is_slash(string.str[idx]) ? '\\' : string.str[idx]; - } - return string; -} - -//////////////////////////////// -//~ rjf: String Matching - -internal B32 -str8_match(String8 a, String8 b, StringMatchFlags flags) -{ - B32 result = 0; - if(a.size == b.size && flags == 0) - { - result = MemoryMatch(a.str, b.str, b.size); - } - else if(a.size == b.size || (flags & StringMatchFlag_RightSideSloppy)) - { - B32 case_insensitive = (flags & StringMatchFlag_CaseInsensitive); - B32 slash_insensitive = (flags & StringMatchFlag_SlashInsensitive); - U64 size = Min(a.size, b.size); - result = 1; - for(U64 i = 0; i < size; i += 1) - { - U8 at = a.str[i]; - U8 bt = b.str[i]; - if(case_insensitive) - { - at = char_to_upper(at); - bt = char_to_upper(bt); - } - if(slash_insensitive) - { - at = char_to_correct_slash(at); - bt = char_to_correct_slash(bt); - } - if(at != bt) - { - result = 0; - break; - } - } - } - return result; -} - -internal U64 -str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags){ - U8 *p = string.str + start_pos; - U64 stop_offset = Max(string.size + 1, needle.size) - needle.size; - U8 *stop_p = string.str + stop_offset; - if (needle.size > 0){ - U8 *string_opl = string.str + string.size; - String8 needle_tail = str8_skip(needle, 1); - StringMatchFlags adjusted_flags = flags | StringMatchFlag_RightSideSloppy; - U8 needle_first_char_adjusted = needle.str[0]; - if(adjusted_flags & StringMatchFlag_CaseInsensitive){ - needle_first_char_adjusted = char_to_upper(needle_first_char_adjusted); - } - for (;p < stop_p; p += 1){ - U8 haystack_char_adjusted = *p; - if(adjusted_flags & StringMatchFlag_CaseInsensitive){ - haystack_char_adjusted = char_to_upper(haystack_char_adjusted); - } - if (haystack_char_adjusted == needle_first_char_adjusted){ - if (str8_match(str8_range(p + 1, string_opl), needle_tail, adjusted_flags)){ - break; - } - } - } - } - U64 result = string.size; - if (p < stop_p){ - result = (U64)(p - string.str); - } - return(result); -} - -internal U64 -str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags) -{ - U64 result = 0; - for(S64 i = string.size - start_pos - needle.size; i >= 0; --i) - { - String8 haystack = str8_substr(string, rng_1u64(i, i + needle.size)); - if(str8_match(haystack, needle, flags)) - { - result = (U64)i + needle.size; - break; - } - } - return result; -} - -internal B32 -str8_ends_with(String8 string, String8 end, StringMatchFlags flags){ - String8 postfix = str8_postfix(string, end.size); - B32 is_match = str8_match(end, postfix, flags); - return is_match; -} - -//////////////////////////////// -//~ rjf: String Slicing - -internal String8 -str8_substr(String8 str, Rng1U64 range){ - range.min = ClampTop(range.min, str.size); - range.max = ClampTop(range.max, str.size); - str.str += range.min; - str.size = dim_1u64(range); - return(str); -} - -internal String8 -str8_prefix(String8 str, U64 size){ - str.size = ClampTop(size, str.size); - return(str); -} - -internal String8 -str8_skip(String8 str, U64 amt){ - amt = ClampTop(amt, str.size); - str.str += amt; - str.size -= amt; - return(str); -} - -internal String8 -str8_postfix(String8 str, U64 size){ - size = ClampTop(size, str.size); - str.str = (str.str + str.size) - size; - str.size = size; - return(str); -} - -internal String8 -str8_chop(String8 str, U64 amt){ - amt = ClampTop(amt, str.size); - str.size -= amt; - return(str); -} - -internal String8 -str8_skip_chop_whitespace(String8 string){ - U8 *first = string.str; - U8 *opl = first + string.size; - for (;first < opl; first += 1){ - if (!char_is_space(*first)){ - break; - } - } - for (;opl > first;){ - opl -= 1; - if (!char_is_space(*opl)){ - opl += 1; - break; - } - } - String8 result = str8_range(first, opl); - return(result); -} - -//////////////////////////////// -//~ rjf: String Formatting & Copying - -internal String8 -push_str8_cat(Arena *arena, String8 s1, String8 s2){ - String8 str; - str.size = s1.size + s2.size; - str.str = push_array_no_zero(arena, U8, str.size + 1); - MemoryCopy(str.str, s1.str, s1.size); - MemoryCopy(str.str + s1.size, s2.str, s2.size); - str.str[str.size] = 0; - return(str); -} - -internal String8 -push_str8_copy(Arena *arena, String8 s){ - String8 str; - str.size = s.size; - str.str = push_array_no_zero(arena, U8, str.size + 1); - MemoryCopy(str.str, s.str, s.size); - str.str[str.size] = 0; - return(str); -} - -internal String8 -push_str8fv(Arena *arena, char *fmt, va_list args){ - va_list args2; - va_copy(args2, args); - U32 needed_bytes = raddbg_vsnprintf(0, 0, fmt, args) + 1; - String8 result = {0}; - result.str = push_array_no_zero(arena, U8, needed_bytes); - result.size = raddbg_vsnprintf((char*)result.str, needed_bytes, fmt, args2); - result.str[result.size] = 0; - va_end(args2); - return(result); -} - -internal String8 -push_str8f(Arena *arena, char *fmt, ...){ - va_list args; - va_start(args, fmt); - String8 result = push_str8fv(arena, fmt, args); - va_end(args); - return(result); -} - -//////////////////////////////// -//~ rjf: String <=> Integer Conversions - -//- rjf: string -> integer - -internal S64 -sign_from_str8(String8 string, String8 *string_tail){ - // count negative signs - U64 neg_count = 0; - U64 i = 0; - for (; i < string.size; i += 1){ - if (string.str[i] == '-'){ - neg_count += 1; - } - else if (string.str[i] != '+'){ - break; - } - } - - // output part of string after signs - *string_tail = str8_skip(string, i); - - // output integer sign - S64 sign = (neg_count & 1)?-1:+1; - return(sign); -} - -internal B32 -str8_is_integer(String8 string, U32 radix){ - B32 result = 0; - if (string.size > 0){ - if (1 < radix && radix <= 16){ - result = 1; - for (U64 i = 0; i < string.size; i += 1){ - U8 c = string.str[i]; - if (!(c < 0x80) || integer_symbol_reverse[c] >= radix){ - result = 0; - break; - } - } - } - } - return(result); -} - -internal U64 -u64_from_str8(String8 string, U32 radix){ - U64 x = 0; - if (1 < radix && radix <= 16){ - for (U64 i = 0; i < string.size; i += 1){ - x *= radix; - x += integer_symbol_reverse[string.str[i]&0x7F]; - } - } - return(x); -} - -internal S64 -s64_from_str8(String8 string, U32 radix){ - S64 sign = sign_from_str8(string, &string); - S64 x = (S64)u64_from_str8(string, radix) * sign; - return(x); -} - -internal U32 -u32_from_str8(String8 string, U32 radix) -{ - U64 x64 = u64_from_str8(string, radix); - U32 x32 = safe_cast_u32(x64); - return x32; -} - -internal S32 -s32_from_str8(String8 string, U32 radix) -{ - S64 x64 = s64_from_str8(string, radix); - S32 x32 = safe_cast_s32(x64); - return x32; -} - -internal B32 -try_u64_from_str8_c_rules(String8 string, U64 *x){ - B32 is_integer = 0; - if (str8_is_integer(string, 10)){ - is_integer = 1; - *x = u64_from_str8(string, 10); - } - else{ - String8 hex_string = str8_skip(string, 2); - if (str8_match(str8_prefix(string, 2), str8_lit("0x"), 0) && - str8_is_integer(hex_string, 0x10)){ - is_integer = 1; - *x = u64_from_str8(hex_string, 0x10); - } - else if (str8_match(str8_prefix(string, 2), str8_lit("0b"), 0) && - str8_is_integer(hex_string, 2)){ - is_integer = 1; - *x = u64_from_str8(hex_string, 2); - } - else{ - String8 oct_string = str8_skip(string, 1); - if (str8_match(str8_prefix(string, 1), str8_lit("0"), 0) && - str8_is_integer(hex_string, 010)){ - is_integer = 1; - *x = u64_from_str8(oct_string, 010); - } - } - } - return(is_integer); -} - -internal B32 -try_s64_from_str8_c_rules(String8 string, S64 *x){ - String8 string_tail = {0}; - S64 sign = sign_from_str8(string, &string_tail); - U64 x_u64 = 0; - B32 is_integer = try_u64_from_str8_c_rules(string_tail, &x_u64); - *x = x_u64*sign; - return(is_integer); -} - -//- rjf: integer -> string - -internal String8 -str8_from_memory_size(Arena *arena, U64 size) -{ - String8 result; - - if(size < KB(1)) - { - result = push_str8f(arena, "%llu Bytes", size); - } - else if(size < MB(1)) - { - result = push_str8f(arena, "%llu.%02llu KiB", size / KB(1), ((size * 100) / KB(1)) % 100); - } - else if(size < GB(1)) - { - result = push_str8f(arena, "%llu.%02llu MiB", size / MB(1), ((size * 100) / MB(1)) % 100); - } - else if(size < TB(1)) - { - result = push_str8f(arena, "%llu.%02llu GiB", size / GB(1), ((size * 100) / GB(1)) % 100); - } - else - { - result = push_str8f(arena, "%llu.%02llu TiB", size / TB(1), ((size * 100) / TB(1)) % 100); - } - - return result; -} - -internal String8 -str8_from_count(Arena *arena, U64 count) -{ - String8 result; - - if(count < 1 * 1000) - { - result = push_str8f(arena, "%llu", count); - } - else if(count < 1000000) - { - U64 frac = ((count * 100) / 1000) % 100; - if(frac > 0) - { - result = push_str8f(arena, "%llu.%02lluK", count / 1000, frac); - } - else - { - result = push_str8f(arena, "%lluK", count / 1000); - } - } - else if(count < 1000000000) - { - U64 frac = ((count * 100) / 1000000) % 100; - if(frac > 0) - { - result = push_str8f(arena, "%llu.%02lluM", count / 1000000, frac); - } - else - { - result = push_str8f(arena, "%lluM", count / 1000000); - } - } - else - { - U64 frac = ((count * 100) * 1000000000) % 100; - if(frac > 0) - { - result = push_str8f(arena, "%llu.%02lluB", count / 1000000000, frac); - } - else - { - result = push_str8f(arena, "%lluB", count / 1000000000, frac); - } - } - - return result; -} - -internal String8 -str8_from_bits_u32(Arena *arena, U32 x) -{ - U8 c0 = 'a' + ((x >> 28) & 0xf); - U8 c1 = 'a' + ((x >> 24) & 0xf); - U8 c2 = 'a' + ((x >> 20) & 0xf); - U8 c3 = 'a' + ((x >> 16) & 0xf); - U8 c4 = 'a' + ((x >> 12) & 0xf); - U8 c5 = 'a' + ((x >> 8) & 0xf); - U8 c6 = 'a' + ((x >> 4) & 0xf); - U8 c7 = 'a' + ((x >> 0) & 0xf); - String8 result = push_str8f(arena, "%c%c%c%c%c%c%c%c", c0, c1, c2, c3, c4, c5, c6, c7); - return result; -} - -internal String8 -str8_from_bits_u64(Arena *arena, U64 x) -{ - U8 c0 = 'a' + ((x >> 60) & 0xf); - U8 c1 = 'a' + ((x >> 56) & 0xf); - U8 c2 = 'a' + ((x >> 52) & 0xf); - U8 c3 = 'a' + ((x >> 48) & 0xf); - U8 c4 = 'a' + ((x >> 44) & 0xf); - U8 c5 = 'a' + ((x >> 40) & 0xf); - U8 c6 = 'a' + ((x >> 36) & 0xf); - U8 c7 = 'a' + ((x >> 32) & 0xf); - U8 c8 = 'a' + ((x >> 28) & 0xf); - U8 c9 = 'a' + ((x >> 24) & 0xf); - U8 ca = 'a' + ((x >> 20) & 0xf); - U8 cb = 'a' + ((x >> 16) & 0xf); - U8 cc = 'a' + ((x >> 12) & 0xf); - U8 cd = 'a' + ((x >> 8) & 0xf); - U8 ce = 'a' + ((x >> 4) & 0xf); - U8 cf = 'a' + ((x >> 0) & 0xf); - String8 result = push_str8f(arena, - "%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", - c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf); - return result; -} - -internal String8 -str8_from_u64(Arena *arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator) -{ - String8 result = {0}; - { - // rjf: prefix - String8 prefix = {0}; - switch(radix) - { - case 16:{prefix = str8_lit("0x");}break; - case 8: {prefix = str8_lit("0o");}break; - case 2: {prefix = str8_lit("0b");}break; - } - - // rjf: determine # of chars between separators - U8 digit_group_size = 3; - switch(radix) - { - default:break; - case 2: - case 8: - case 16: - {digit_group_size = 4;}break; - } - - // rjf: prep - U64 needed_leading_0s = 0; - { - U64 needed_digits = 1; - { - U64 u64_reduce = u64; - for(;;) - { - u64_reduce /= radix; - if(u64_reduce == 0) - { - break; - } - needed_digits += 1; - } - } - needed_leading_0s = (min_digits > needed_digits) ? min_digits - needed_digits : 0; - U64 needed_separators = 0; - if(digit_group_separator != 0) - { - needed_separators = (needed_digits+needed_leading_0s)/digit_group_size; - if(needed_separators > 0 && (needed_digits+needed_leading_0s)%digit_group_size == 0) - { - needed_separators -= 1; - } - } - result.size = prefix.size + needed_leading_0s + needed_separators + needed_digits; - result.str = push_array_no_zero(arena, U8, result.size + 1); - result.str[result.size] = 0; - } - - // rjf: fill contents - { - U64 u64_reduce = u64; - U64 digits_until_separator = digit_group_size; - for(U64 idx = 0; idx < result.size; idx += 1) - { - if(digits_until_separator == 0 && digit_group_separator != 0) - { - result.str[result.size - idx - 1] = digit_group_separator; - digits_until_separator = digit_group_size+1; - } - else - { - result.str[result.size - idx - 1] = char_to_lower(integer_symbols[u64_reduce%radix]); - u64_reduce /= radix; - } - digits_until_separator -= 1; - if(u64_reduce == 0) - { - break; - } - } - for(U64 leading_0_idx = 0; leading_0_idx < needed_leading_0s; leading_0_idx += 1) - { - result.str[prefix.size + leading_0_idx] = '0'; - } - } - - // rjf: fill prefix - if(prefix.size != 0) - { - MemoryCopy(result.str, prefix.str, prefix.size); - } - } - return result; -} - -internal String8 -str8_from_s64(Arena *arena, S64 s64, U32 radix, U8 min_digits, U8 digit_group_separator) -{ - String8 result = {0}; - // TODO(rjf): preeeeetty sloppy... - if(s64 < 0) - { - Temp scratch = scratch_begin(&arena, 1); - String8 numeric_part = str8_from_u64(scratch.arena, (U64)(-s64), radix, min_digits, digit_group_separator); - result = push_str8f(arena, "-%S", numeric_part); - scratch_end(scratch); - } - else - { - result = str8_from_u64(arena, (U64)s64, radix, min_digits, digit_group_separator); - } - return result; -} - -//////////////////////////////// -//~ rjf: String <=> Float Conversions - -internal F64 -f64_from_str8(String8 string) -{ - // TODO(rjf): crappy implementation for now that just uses atof. - F64 result = 0; - if(string.size > 0) - { - // rjf: find starting pos of numeric string, as well as sign - F64 sign = +1.0; - if(string.str[0] == '-') - { - sign = -1.0; - } - else if(string.str[0] == '+') - { - sign = 1.0; - } - - // rjf: gather numerics - U64 num_valid_chars = 0; - char buffer[64]; - B32 exp = 0; - for(U64 idx = 0; idx < string.size && num_valid_chars < sizeof(buffer)-1; idx += 1) - { - if(char_is_digit(string.str[idx], 10) || string.str[idx] == '.' || string.str[idx] == 'e' || - (exp && (string.str[idx] == '+' || string.str[idx] == '-'))) - { - buffer[num_valid_chars] = string.str[idx]; - num_valid_chars += 1; - exp = 0; - exp = (string.str[idx] == 'e'); - } - } - - // rjf: null-terminate (the reason for all of this!!!!!!) - buffer[num_valid_chars] = 0; - - // rjf: do final conversion - result = sign * atof(buffer); - } - return result; -} - -//////////////////////////////// -//~ rjf: String List Construction Functions - -internal String8Node* -str8_list_push_node(String8List *list, String8Node *node){ - SLLQueuePush(list->first, list->last, node); - list->node_count += 1; - list->total_size += node->string.size; - return(node); -} - -internal String8Node* -str8_list_push_node_set_string(String8List *list, String8Node *node, String8 string){ - SLLQueuePush(list->first, list->last, node); - list->node_count += 1; - list->total_size += string.size; - node->string = string; - return(node); -} - -internal String8Node* -str8_list_push_node_front(String8List *list, String8Node *node){ - SLLQueuePushFront(list->first, list->last, node); - list->node_count += 1; - list->total_size += node->string.size; - return(node); -} - -internal String8Node* -str8_list_push_node_front_set_string(String8List *list, String8Node *node, String8 string){ - SLLQueuePushFront(list->first, list->last, node); - list->node_count += 1; - list->total_size += string.size; - node->string = string; - return(node); -} - -internal String8Node* -str8_list_push(Arena *arena, String8List *list, String8 string){ - String8Node *node = push_array_no_zero(arena, String8Node, 1); - str8_list_push_node_set_string(list, node, string); - return(node); -} - -internal String8Node* -str8_list_push_front(Arena *arena, String8List *list, String8 string){ - String8Node *node = push_array_no_zero(arena, String8Node, 1); - str8_list_push_node_front_set_string(list, node, string); - return(node); -} - -internal void -str8_list_concat_in_place(String8List *list, String8List *to_push){ - if(to_push->node_count != 0){ - if (list->last){ - list->node_count += to_push->node_count; - list->total_size += to_push->total_size; - list->last->next = to_push->first; - list->last = to_push->last; - } - else{ - *list = *to_push; - } - MemoryZeroStruct(to_push); - } -} - -internal String8Node* -str8_list_push_aligner(Arena *arena, String8List *list, U64 min, U64 align){ - String8Node *node = push_array_no_zero(arena, String8Node, 1); - U64 new_size = list->total_size + min; - U64 increase_size = 0; - if (align > 1){ - // NOTE(allen): assert is power of 2 - Assert(((align - 1) & align) == 0); - U64 mask = align - 1; - new_size += mask; - new_size &= (~mask); - increase_size = new_size - list->total_size; - } - local_persist const U8 zeroes_buffer[64] = {0}; - Assert(increase_size <= ArrayCount(zeroes_buffer)); - SLLQueuePush(list->first, list->last, node); - list->node_count += 1; - list->total_size = new_size; - node->string.str = (U8*)zeroes_buffer; - node->string.size = increase_size; - return(node); -} - -internal String8Node* -str8_list_pushf(Arena *arena, String8List *list, char *fmt, ...){ - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(arena, fmt, args); - String8Node *result = str8_list_push(arena, list, string); - va_end(args); - return(result); -} - -internal String8Node* -str8_list_push_frontf(Arena *arena, String8List *list, char *fmt, ...){ - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(arena, fmt, args); - String8Node *result = str8_list_push_front(arena, list, string); - va_end(args); - return(result); -} - -internal String8List -str8_list_copy(Arena *arena, String8List *list){ - String8List result = {0}; - for (String8Node *node = list->first; - node != 0; - node = node->next){ - String8Node *new_node = push_array_no_zero(arena, String8Node, 1); - String8 new_string = push_str8_copy(arena, node->string); - str8_list_push_node_set_string(&result, new_node, new_string); - } - return(result); -} - -internal String8List -str8_split(Arena *arena, String8 string, U8 *split_chars, U64 split_char_count, StringSplitFlags flags){ - String8List list = {0}; - - B32 keep_empties = (flags & StringSplitFlag_KeepEmpties); - - U8 *ptr = string.str; - U8 *opl = string.str + string.size; - for (;ptr < opl;){ - U8 *first = ptr; - for (;ptr < opl; ptr += 1){ - U8 c = *ptr; - B32 is_split = 0; - for (U64 i = 0; i < split_char_count; i += 1){ - if (split_chars[i] == c){ - is_split = 1; - break; - } - } - if (is_split){ - break; - } - } - - String8 string = str8_range(first, ptr); - if (keep_empties || string.size > 0){ - str8_list_push(arena, &list, string); - } - ptr += 1; - } - - return(list); -} - -internal String8List -str8_split_by_string_chars(Arena *arena, String8 string, String8 split_chars, StringSplitFlags flags){ - String8List list = str8_split(arena, string, split_chars.str, split_chars.size, flags); - return list; -} - -internal String8List -str8_list_split_by_string_chars(Arena *arena, String8List list, String8 split_chars, StringSplitFlags flags){ - String8List result = {0}; - for (String8Node *node = list.first; node != 0; node = node->next){ - String8List split = str8_split_by_string_chars(arena, node->string, split_chars, flags); - str8_list_concat_in_place(&result, &split); - } - return result; -} - -internal String8 -str8_list_join(Arena *arena, String8List *list, StringJoin *optional_params){ - StringJoin join = {0}; - if (optional_params != 0){ - MemoryCopyStruct(&join, optional_params); - } - - U64 sep_count = 0; - if (list->node_count > 0){ - sep_count = list->node_count - 1; - } - - String8 result; - result.size = join.pre.size + join.post.size + sep_count*join.sep.size + list->total_size; - U8 *ptr = result.str = push_array_no_zero(arena, U8, result.size + 1); - - MemoryCopy(ptr, join.pre.str, join.pre.size); - ptr += join.pre.size; - for (String8Node *node = list->first; - node != 0; - node = node->next){ - MemoryCopy(ptr, node->string.str, node->string.size); - ptr += node->string.size; - if (node->next != 0){ - MemoryCopy(ptr, join.sep.str, join.sep.size); - ptr += join.sep.size; - } - } - MemoryCopy(ptr, join.post.str, join.post.size); - ptr += join.post.size; - - *ptr = 0; - - return(result); -} - -internal void -str8_list_from_flags(Arena *arena, String8List *list, - U32 flags, String8 *flag_string_table, U32 flag_string_count){ - for (U32 i = 0; i < flag_string_count; i += 1){ - U32 flag = (1 << i); - if (flags & flag){ - str8_list_push(arena, list, flag_string_table[i]); - } - } -} - -//////////////////////////////// -//~ rjf; String Arrays - -internal String8Array -str8_array_from_list(Arena *arena, String8List *list) -{ - String8Array array; - array.count = list->node_count; - array.v = push_array_no_zero(arena, String8, array.count); - U64 idx = 0; - for(String8Node *n = list->first; n != 0; n = n->next, idx += 1) - { - array.v[idx] = n->string; - } - return array; -} - -internal String8Array -str8_array_reserve(Arena *arena, U64 count) -{ - String8Array arr; - arr.count = 0; - arr.v = push_array(arena, String8, count); - return arr; -} - -//////////////////////////////// -//~ rjf: String Path Helpers - -internal String8 -str8_chop_last_slash(String8 string){ - if (string.size > 0){ - U8 *ptr = string.str + string.size - 1; - for (;ptr >= string.str; ptr -= 1){ - if (*ptr == '/' || *ptr == '\\'){ - break; - } - } - if (ptr >= string.str){ - string.size = (U64)(ptr - string.str); - } - else{ - string.size = 0; - } - } - return(string); -} - -internal String8 -str8_skip_last_slash(String8 string){ - if (string.size > 0){ - U8 *ptr = string.str + string.size - 1; - for (;ptr >= string.str; ptr -= 1){ - if (*ptr == '/' || *ptr == '\\'){ - break; - } - } - if (ptr >= string.str){ - ptr += 1; - string.size = (U64)(string.str + string.size - ptr); - string.str = ptr; - } - } - return(string); -} - -internal String8 -str8_chop_last_dot(String8 string) -{ - String8 result = string; - U64 p = string.size; - for (;p > 0;){ - p -= 1; - if (string.str[p] == '.'){ - result = str8_prefix(string, p); - break; - } - } - return(result); -} - -internal String8 -str8_skip_last_dot(String8 string){ - String8 result = string; - U64 p = string.size; - for (;p > 0;){ - p -= 1; - if (string.str[p] == '.'){ - result = str8_skip(string, p + 1); - break; - } - } - return(result); -} - -internal PathStyle -path_style_from_str8(String8 string){ - PathStyle result = PathStyle_Relative; - if (string.size >= 1 && string.str[0] == '/'){ - result = PathStyle_UnixAbsolute; - } - else if (string.size >= 2 && - char_is_alpha(string.str[0]) && - string.str[1] == ':'){ - if (string.size == 2 || - char_is_slash(string.str[2])){ - result = PathStyle_WindowsAbsolute; - } - } - return(result); -} - -internal String8List -str8_split_path(Arena *arena, String8 string){ - String8List result = str8_split(arena, string, (U8*)"/\\", 2, 0); - return(result); -} - -internal void -str8_path_list_resolve_dots_in_place(String8List *path, PathStyle style){ - Temp scratch = scratch_begin(0, 0); - - String8MetaNode *stack = 0; - String8MetaNode *free_meta_node = 0; - String8Node *first = path->first; - - MemoryZeroStruct(path); - for (String8Node *node = first, *next = 0; - node != 0; - node = next){ - // save next now - next = node->next; - - // cases: - if (node == first && style == PathStyle_WindowsAbsolute){ - goto save_without_stack; - } - if (node->string.size == 1 && node->string.str[0] == '.'){ - goto do_nothing; - } - if (node->string.size == 2 && node->string.str[0] == '.' && node->string.str[1] == '.'){ - if (stack != 0){ - goto eliminate_stack_top; - } - else{ - goto save_without_stack; - } - } - goto save_with_stack; - - - // handlers: - save_with_stack: - { - str8_list_push_node(path, node); - - String8MetaNode *stack_node = free_meta_node; - if (stack_node != 0){ - SLLStackPop(free_meta_node); - } - else{ - stack_node = push_array_no_zero(scratch.arena, String8MetaNode, 1); - } - SLLStackPush(stack, stack_node); - stack_node->node = node; - - continue; - } - - save_without_stack: - { - str8_list_push_node(path, node); - - continue; - } - - eliminate_stack_top: - { - path->node_count -= 1; - path->total_size -= stack->node->string.size; - - SLLStackPop(stack); - - if (stack == 0){ - path->last = path->first; - } - else{ - path->last = stack->node; - } - continue; - } - - do_nothing: continue; - } - scratch_end(scratch); -} - -internal String8 -str8_path_list_join_by_style(Arena *arena, String8List *path, PathStyle style){ - StringJoin params = {0}; - switch(style) - { - case PathStyle_Null:{}break; - case PathStyle_Relative: - case PathStyle_WindowsAbsolute: - { - params.sep = str8_lit("/"); - }break; - - case PathStyle_UnixAbsolute: - { - params.pre = str8_lit("/"); - params.sep = str8_lit("/"); - }break; - } - String8 result = str8_list_join(arena, path, ¶ms); - return result; -} - -internal String8TxtPtPair -str8_txt_pt_pair_from_string(String8 string) -{ - String8TxtPtPair pair = {0}; - { - String8 file_part = {0}; - String8 line_part = {0}; - String8 col_part = {0}; - - // rjf: grab file part - for(U64 idx = 0; idx <= string.size; idx += 1) - { - U8 byte = (idx < string.size) ? (string.str[idx]) : 0; - U8 next_byte = ((idx+1 < string.size) ? (string.str[idx+1]) : 0); - if(byte == ':' && next_byte != '/' && next_byte != '\\') - { - file_part = str8_prefix(string, idx); - line_part = str8_skip(string, idx+1); - break; - } - else if(byte == 0) - { - file_part = string; - break; - } - } - - // rjf: grab line/column - { - U64 colon_pos = str8_find_needle(line_part, 0, str8_lit(":"), 0); - if(colon_pos < line_part.size) - { - col_part = str8_skip(line_part, colon_pos+1); - line_part = str8_prefix(line_part, colon_pos); - } - } - - // rjf: convert line/column strings to numerics - U64 line = 0; - U64 column = 0; - try_u64_from_str8_c_rules(line_part, &line); - try_u64_from_str8_c_rules(col_part, &column); - - // rjf: fill - pair.string = file_part; - pair.pt = txt_pt((S64)line, (S64)column); - if(pair.pt.line == 0) { pair.pt.line = 1; } - if(pair.pt.column == 0) { pair.pt.column = 1; } - } - return pair; -} - -//////////////////////////////// -//~ rjf: UTF-8 & UTF-16 Decoding/Encoding - -read_only global U8 utf8_class[32] = { - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,2,2,2,2,3,3,4,5, -}; - -internal UnicodeDecode -utf8_decode(U8 *str, U64 max){ - UnicodeDecode result = {1, max_U32}; - U8 byte = str[0]; - U8 byte_class = utf8_class[byte >> 3]; - switch (byte_class) - { - case 1: - { - result.codepoint = byte; - }break; - case 2: - { - if (2 < max) - { - U8 cont_byte = str[1]; - if (utf8_class[cont_byte >> 3] == 0) - { - result.codepoint = (byte & bitmask5) << 6; - result.codepoint |= (cont_byte & bitmask6); - result.inc = 2; - } - } - }break; - case 3: - { - if (2 < max) - { - U8 cont_byte[2] = {str[1], str[2]}; - if (utf8_class[cont_byte[0] >> 3] == 0 && - utf8_class[cont_byte[1] >> 3] == 0) - { - result.codepoint = (byte & bitmask4) << 12; - result.codepoint |= ((cont_byte[0] & bitmask6) << 6); - result.codepoint |= (cont_byte[1] & bitmask6); - result.inc = 3; - } - } - }break; - case 4: - { - if (3 < max) - { - U8 cont_byte[3] = {str[1], str[2], str[3]}; - if (utf8_class[cont_byte[0] >> 3] == 0 && - utf8_class[cont_byte[1] >> 3] == 0 && - utf8_class[cont_byte[2] >> 3] == 0) - { - result.codepoint = (byte & bitmask3) << 18; - result.codepoint |= ((cont_byte[0] & bitmask6) << 12); - result.codepoint |= ((cont_byte[1] & bitmask6) << 6); - result.codepoint |= (cont_byte[2] & bitmask6); - result.inc = 4; - } - } - } - } - return(result); -} - -internal UnicodeDecode -utf16_decode(U16 *str, U64 max){ - UnicodeDecode result = {1, max_U32}; - result.codepoint = str[0]; - result.inc = 1; - if (max > 1 && 0xD800 <= str[0] && str[0] < 0xDC00 && 0xDC00 <= str[1] && str[1] < 0xE000){ - result.codepoint = ((str[0] - 0xD800) << 10) | ((str[1] - 0xDC00) + 0x10000); - result.inc = 2; - } - return(result); -} - -internal U32 -utf8_encode(U8 *str, U32 codepoint){ - U32 inc = 0; - if (codepoint <= 0x7F){ - str[0] = (U8)codepoint; - inc = 1; - } - else if (codepoint <= 0x7FF){ - str[0] = (bitmask2 << 6) | ((codepoint >> 6) & bitmask5); - str[1] = bit8 | (codepoint & bitmask6); - inc = 2; - } - else if (codepoint <= 0xFFFF){ - str[0] = (bitmask3 << 5) | ((codepoint >> 12) & bitmask4); - str[1] = bit8 | ((codepoint >> 6) & bitmask6); - str[2] = bit8 | ( codepoint & bitmask6); - inc = 3; - } - else if (codepoint <= 0x10FFFF){ - str[0] = (bitmask4 << 4) | ((codepoint >> 18) & bitmask3); - str[1] = bit8 | ((codepoint >> 12) & bitmask6); - str[2] = bit8 | ((codepoint >> 6) & bitmask6); - str[3] = bit8 | ( codepoint & bitmask6); - inc = 4; - } - else{ - str[0] = '?'; - inc = 1; - } - return(inc); -} - -internal U32 -utf16_encode(U16 *str, U32 codepoint){ - U32 inc = 1; - if (codepoint == max_U32){ - str[0] = (U16)'?'; - } - else if (codepoint < 0x10000){ - str[0] = (U16)codepoint; - } - else{ - U32 v = codepoint - 0x10000; - str[0] = safe_cast_u16(0xD800 + (v >> 10)); - str[1] = safe_cast_u16(0xDC00 + (v & bitmask10)); - inc = 2; - } - return(inc); -} - -internal U32 -utf8_from_utf32_single(U8 *buffer, U32 character){ - return(utf8_encode(buffer, character)); -} - -//////////////////////////////// -//~ rjf: Unicode String Conversions - -internal String8 -str8_from_16(Arena *arena, String16 in) -{ - String8 result = str8_zero(); - if(in.size) - { - U64 cap = in.size*3; - U8 *str = push_array_no_zero(arena, U8, cap + 1); - U16 *ptr = in.str; - U16 *opl = ptr + in.size; - U64 size = 0; - UnicodeDecode consume; - for(;ptr < opl; ptr += consume.inc) - { - consume = utf16_decode(ptr, opl - ptr); - size += utf8_encode(str + size, consume.codepoint); - } - str[size] = 0; - arena_pop(arena, (cap - size)); - result = str8(str, size); - } - return result; -} - -internal String16 -str16_from_8(Arena *arena, String8 in) -{ - String16 result = str16_zero(); - if(in.size) - { - U64 cap = in.size*2; - U16 *str = push_array_no_zero(arena, U16, cap + 1); - U8 *ptr = in.str; - U8 *opl = ptr + in.size; - U64 size = 0; - UnicodeDecode consume; - for(;ptr < opl; ptr += consume.inc) - { - consume = utf8_decode(ptr, opl - ptr); - size += utf16_encode(str + size, consume.codepoint); - } - str[size] = 0; - arena_pop(arena, (cap - size)*2); - result = str16(str, size); - } - return result; -} - -internal String8 -str8_from_32(Arena *arena, String32 in) -{ - String8 result = str8_zero(); - if(in.size) - { - U64 cap = in.size*4; - U8 *str = push_array_no_zero(arena, U8, cap + 1); - U32 *ptr = in.str; - U32 *opl = ptr + in.size; - U64 size = 0; - for(;ptr < opl; ptr += 1) - { - size += utf8_encode(str + size, *ptr); - } - str[size] = 0; - arena_pop(arena, (cap - size)); - result = str8(str, size); - } - return result; -} - -internal String32 -str32_from_8(Arena *arena, String8 in) -{ - String32 result = str32_zero(); - if(in.size) - { - U64 cap = in.size; - U32 *str = push_array_no_zero(arena, U32, cap + 1); - U8 *ptr = in.str; - U8 *opl = ptr + in.size; - U64 size = 0; - UnicodeDecode consume; - for(;ptr < opl; ptr += consume.inc) - { - consume = utf8_decode(ptr, opl - ptr); - str[size] = consume.codepoint; - size += 1; - } - str[size] = 0; - arena_pop(arena, (cap - size)*4); - result = str32(str, size); - } - return result; -} - -//////////////////////////////// -//~ String -> Enum Conversions - -read_only global struct -{ - String8 string; - OperatingSystem os; -} g_os_enum_map[] = -{ - { str8_lit_comp(""), OperatingSystem_Null }, - { str8_lit_comp("Windows"), OperatingSystem_Windows, }, - { str8_lit_comp("Linux"), OperatingSystem_Linux, }, - { str8_lit_comp("Mac"), OperatingSystem_Mac, }, -}; -StaticAssert(ArrayCount(g_os_enum_map) == OperatingSystem_COUNT, g_os_enum_map_count_check); - -internal OperatingSystem -operating_system_from_string(String8 string) -{ - for(U64 i = 0; i < ArrayCount(g_os_enum_map); ++i) - { - if(str8_match(g_os_enum_map[i].string, string, StringMatchFlag_CaseInsensitive)) - { - return g_os_enum_map[i].os; - } - } - return OperatingSystem_Null; -} - -//////////////////////////////// -//~ rjf: Basic Types & Space Enum -> String Conversions - -internal String8 -string_from_dimension(Dimension dimension){ - local_persist String8 strings[] = { - str8_lit_comp("X"), - str8_lit_comp("Y"), - str8_lit_comp("Z"), - str8_lit_comp("W"), - }; - String8 result = str8_lit("error"); - if ((U32)dimension < 4){ - result = strings[dimension]; - } - return(result); -} - -internal String8 -string_from_side(Side side){ - local_persist String8 strings[] = { - str8_lit_comp("Min"), - str8_lit_comp("Max"), - }; - String8 result = str8_lit("error"); - if ((U32)side < 2){ - result = strings[side]; - } - return(result); -} - -internal String8 -string_from_operating_system(OperatingSystem os) -{ - String8 result = g_os_enum_map[OperatingSystem_Null].string; - if(os < ArrayCount(g_os_enum_map)) - { - result = g_os_enum_map[os].string; - } - return result; -} - -internal String8 -string_from_arch(Arch arch){ - local_persist String8 strings[] = { - str8_lit_comp("Null"), - str8_lit_comp("x64"), - str8_lit_comp("x86"), - str8_lit_comp("arm64"), - str8_lit_comp("arm32"), - }; - String8 result = str8_lit("error"); - if (arch < Arch_COUNT){ - result = strings[arch]; - } - return(result); -} - -//////////////////////////////// -//~ rjf: Time Types -> String - -internal String8 -string_from_week_day(WeekDay week_day){ - local_persist String8 strings[] = { - str8_lit_comp("Sun"), - str8_lit_comp("Mon"), - str8_lit_comp("Tue"), - str8_lit_comp("Wed"), - str8_lit_comp("Thu"), - str8_lit_comp("Fri"), - str8_lit_comp("Sat"), - }; - String8 result = str8_lit("Err"); - if ((U32)week_day < WeekDay_COUNT){ - result = strings[week_day]; - } - return(result); -} - -internal String8 -string_from_month(Month month){ - local_persist String8 strings[] = { - str8_lit_comp("Jan"), - str8_lit_comp("Feb"), - str8_lit_comp("Mar"), - str8_lit_comp("Apr"), - str8_lit_comp("May"), - str8_lit_comp("Jun"), - str8_lit_comp("Jul"), - str8_lit_comp("Aug"), - str8_lit_comp("Sep"), - str8_lit_comp("Oct"), - str8_lit_comp("Nov"), - str8_lit_comp("Dec"), - }; - String8 result = str8_lit("Err"); - if ((U32)month < Month_COUNT){ - result = strings[month]; - } - return(result); -} - -internal String8 -push_date_time_string(Arena *arena, DateTime *date_time){ - char *mon_str = (char*)string_from_month(date_time->month).str; - U32 adjusted_hour = date_time->hour%12; - if (adjusted_hour == 0){ - adjusted_hour = 12; - } - char *ampm = "am"; - if (date_time->hour >= 12){ - ampm = "pm"; - } - String8 result = push_str8f(arena, "%d %s %d, %02d:%02d:%02d %s", - date_time->day, mon_str, date_time->year, - adjusted_hour, date_time->min, date_time->sec, ampm); - return(result); -} - -internal String8 -push_file_name_date_time_string(Arena *arena, DateTime *date_time){ - char *mon_str = (char*)string_from_month(date_time->month).str; - String8 result = push_str8f(arena, "%d-%s-%0d--%02d-%02d-%02d", - date_time->year, mon_str, date_time->day, - date_time->hour, date_time->min, date_time->sec); - return(result); -} - -internal String8 -string_from_elapsed_time(Arena *arena, DateTime dt){ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - if (dt.year){ - str8_list_pushf(scratch.arena, &list, "%dy", dt.year); - str8_list_pushf(scratch.arena, &list, "%um", dt.mon); - str8_list_pushf(scratch.arena, &list, "%ud", dt.day); - } else if (dt.mon){ - str8_list_pushf(scratch.arena, &list, "%um", dt.mon); - str8_list_pushf(scratch.arena, &list, "%ud", dt.day); - } else if (dt.day){ - str8_list_pushf(scratch.arena, &list, "%ud", dt.day); - } - str8_list_pushf(scratch.arena, &list, "%u:%u:%u:%u ms", dt.hour, dt.min, dt.sec, dt.msec); - StringJoin join = { str8_lit_comp(""), str8_lit_comp(" "), str8_lit_comp("") }; - String8 result = str8_list_join(arena, &list, &join); - scratch_end(scratch); - return(result); -} - -//////////////////////////////// -//~ Globally UNique Ids - -internal String8 -string_from_guid(Arena *arena, Guid guid) -{ - String8 result = push_str8f(arena, "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", - guid.data1, - guid.data2, - guid.data3, - guid.data4[0], - guid.data4[1], - guid.data4[2], - guid.data4[3], - guid.data4[4], - guid.data4[5], - guid.data4[6], - guid.data4[7]); - return result; -} - -internal B32 -try_guid_from_string(String8 string, Guid *guid_out) -{ - Temp scratch = scratch_begin(0,0); - B32 is_parsed = 0; - String8List list = str8_split_by_string_chars(scratch.arena, string, str8_lit("-"), StringSplitFlag_KeepEmpties); - if(list.node_count == 5) - { - String8 data1_str = list.first->string; - String8 data2_str = list.first->next->string; - String8 data3_str = list.first->next->next->string; - String8 data4_hi_str = list.first->next->next->next->string; - String8 data4_lo_str = list.first->next->next->next->next->string; - if(str8_is_integer(data1_str, 16) && - str8_is_integer(data2_str, 16) && - str8_is_integer(data3_str, 16) && - str8_is_integer(data4_hi_str, 16) && - str8_is_integer(data4_lo_str, 16)) - { - U64 data1 = u64_from_str8(data1_str, 16); - U64 data2 = u64_from_str8(data2_str, 16); - U64 data3 = u64_from_str8(data3_str, 16); - U64 data4_hi = u64_from_str8(data4_hi_str, 16); - U64 data4_lo = u64_from_str8(data4_lo_str, 16); - if(data1 <= max_U32 && - data2 <= max_U16 && - data3 <= max_U16 && - data4_hi <= max_U16 && - data4_lo <= 0xffffffffffff) - { - guid_out->data1 = (U32)data1; - guid_out->data2 = (U16)data2; - guid_out->data3 = (U16)data3; - U64 data4 = (data4_hi << 48) | data4_lo; - MemoryCopy(&guid_out->data4[0], &data4, sizeof(data4)); - is_parsed = 1; - } - } - } - scratch_end(scratch); - return is_parsed; -} - -internal Guid -guid_from_string(String8 string) -{ - Guid guid = {0}; - try_guid_from_string(string, &guid); - return guid; -} - -//////////////////////////////// -//~ rjf: Basic Text Indentation - -internal String8 -indented_from_string(Arena *arena, String8 string) -{ - Temp scratch = scratch_begin(&arena, 1); - read_only local_persist U8 indentation_bytes[] = " "; - String8List indented_strings = {0}; - S64 depth = 0; - S64 next_depth = 0; - U64 line_begin_off = 0; - for(U64 off = 0; off <= string.size; off += 1) - { - U8 byte = off width_this_line){ - String8 line = str8_substr(string, line_range); - if (wrapped_indent_level > 0){ - line = push_str8f(arena, "%.*s%S", wrapped_indent_level, spaces, line); - } - str8_list_push(arena, &list, line); - line_range = r1u64(line_range.max+1, candidate_line_range.max); - wrapped_indent_level = ClampTop(64, wrap_indent); - } - else{ - line_range = candidate_line_range; - } - } - } - if (line_range.min < string.size && line_range.max > line_range.min){ - String8 line = str8_substr(string, line_range); - if (wrapped_indent_level > 0){ - line = push_str8f(arena, "%.*s%S", wrapped_indent_level, spaces, line); - } - str8_list_push(arena, &list, line); - } - return list; -} - -//////////////////////////////// -//~ rjf: String <-> Color - -internal String8 -hex_string_from_rgba_4f32(Arena *arena, Vec4F32 rgba) -{ - String8 hex_string = push_str8f(arena, "%02x%02x%02x%02x", (U8)(rgba.x*255.f), (U8)(rgba.y*255.f), (U8)(rgba.z*255.f), (U8)(rgba.w*255.f)); - return hex_string; -} - -internal Vec4F32 -rgba_from_hex_string_4f32(String8 hex_string) -{ - U8 byte_text[8] = {0}; - U64 byte_text_idx = 0; - for(U64 idx = 0; idx < hex_string.size && byte_text_idx < ArrayCount(byte_text); idx += 1) - { - if(char_is_digit(hex_string.str[idx], 16)) - { - byte_text[byte_text_idx] = char_to_lower(hex_string.str[idx]); - byte_text_idx += 1; - } - } - U8 byte_vals[4] = {0}; - for(U64 idx = 0; idx < 4; idx += 1) - { - byte_vals[idx] = (U8)u64_from_str8(str8(&byte_text[idx*2], 2), 16); - } - Vec4F32 rgba = v4f32(byte_vals[0]/255.f, byte_vals[1]/255.f, byte_vals[2]/255.f, byte_vals[3]/255.f); - return rgba; -} - -//////////////////////////////// -//~ rjf: String Fuzzy Matching - -internal FuzzyMatchRangeList -fuzzy_match_find(Arena *arena, String8 needle, String8 haystack) -{ - FuzzyMatchRangeList result = {0}; - Temp scratch = scratch_begin(&arena, 1); - String8List needles = str8_split(scratch.arena, needle, (U8*)" ", 1, 0); - result.needle_part_count = needles.node_count; - for(String8Node *needle_n = needles.first; needle_n != 0; needle_n = needle_n->next) - { - U64 find_pos = 0; - for(;find_pos < haystack.size;) - { - find_pos = str8_find_needle(haystack, find_pos, needle_n->string, StringMatchFlag_CaseInsensitive); - B32 is_in_gathered_ranges = 0; - for(FuzzyMatchRangeNode *n = result.first; n != 0; n = n->next) - { - if(n->range.min <= find_pos && find_pos < n->range.max) - { - is_in_gathered_ranges = 1; - find_pos = n->range.max; - break; - } - } - if(!is_in_gathered_ranges) - { - break; - } - } - if(find_pos < haystack.size) - { - Rng1U64 range = r1u64(find_pos, find_pos+needle_n->string.size); - FuzzyMatchRangeNode *n = push_array(arena, FuzzyMatchRangeNode, 1); - n->range = range; - SLLQueuePush(result.first, result.last, n); - result.count += 1; - result.total_dim += dim_1u64(range); - } - } - scratch_end(scratch); - return result; -} - -internal FuzzyMatchRangeList -fuzzy_match_range_list_copy(Arena *arena, FuzzyMatchRangeList *src) -{ - FuzzyMatchRangeList dst = {0}; - for(FuzzyMatchRangeNode *src_n = src->first; src_n != 0; src_n = src_n->next) - { - FuzzyMatchRangeNode *dst_n = push_array(arena, FuzzyMatchRangeNode, 1); - SLLQueuePush(dst.first, dst.last, dst_n); - dst_n->range = src_n->range; - } - dst.count = src->count; - dst.needle_part_count = src->needle_part_count; - dst.total_dim = src->total_dim; - return dst; -} - -//////////////////////////////// -//~ NOTE(allen): Serialization Helpers - -internal void -str8_serial_begin(Arena *arena, String8List *srl){ - String8Node *node = push_array(arena, String8Node, 1); - node->string.str = push_array_no_zero(arena, U8, 0); - srl->first = srl->last = node; - srl->node_count = 1; - srl->total_size = 0; -} - -internal String8 -str8_serial_end(Arena *arena, String8List *srl){ - U64 size = srl->total_size; - U8 *out = push_array_no_zero(arena, U8, size); - str8_serial_write_to_dst(srl, out); - String8 result = str8(out, size); - return result; -} - -internal void -str8_serial_write_to_dst(String8List *srl, void *out){ - U8 *ptr = (U8*)out; - for (String8Node *node = srl->first; - node != 0; - node = node->next){ - U64 size = node->string.size; - MemoryCopy(ptr, node->string.str, size); - ptr += size; - } -} - -internal U64 -str8_serial_push_align(Arena *arena, String8List *srl, U64 align){ - Assert(IsPow2(align)); - - U64 pos = srl->total_size; - U64 new_pos = AlignPow2(pos, align); - U64 size = (new_pos - pos); - - if(size != 0) - { - U8 *buf = push_array(arena, U8, size); - - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += size; - srl->total_size += size; - } - else{ - str8_list_push(arena, srl, str8(buf, size)); - } - } - return size; -} - -internal void * -str8_serial_push_size(Arena *arena, String8List *srl, U64 size) -{ - void *result = 0; - if(size != 0) - { - U8 *buf = push_array_no_zero(arena, U8, size); - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += size; - srl->total_size += size; - } - else{ - str8_list_push(arena, srl, str8(buf, size)); - } - result = buf; - } - return result; -} - -internal void * -str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size){ - void *result = str8_serial_push_size(arena, srl, size); - if(result != 0) - { - MemoryCopy(result, data, size); - } - return result; -} - -internal void -str8_serial_push_data_list(Arena *arena, String8List *srl, String8Node *first){ - for (String8Node *node = first; - node != 0; - node = node->next){ - str8_serial_push_data(arena, srl, node->string.str, node->string.size); - } -} - -internal void -str8_serial_push_u64(Arena *arena, String8List *srl, U64 x){ - U8 *buf = push_array_no_zero(arena, U8, 8); - MemoryCopy(buf, &x, 8); - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += 8; - srl->total_size += 8; - } - else{ - str8_list_push(arena, srl, str8(buf, 8)); - } -} - -internal void -str8_serial_push_u32(Arena *arena, String8List *srl, U32 x){ - U8 *buf = push_array_no_zero(arena, U8, 4); - MemoryCopy(buf, &x, 4); - String8 *str = &srl->last->string; - if (str->str + str->size == buf){ - srl->last->string.size += 4; - srl->total_size += 4; - } - else{ - str8_list_push(arena, srl, str8(buf, 4)); - } -} - -internal void -str8_serial_push_u16(Arena *arena, String8List *srl, U16 x){ - str8_serial_push_data(arena, srl, &x, sizeof(x)); -} - -internal void -str8_serial_push_u8(Arena *arena, String8List *srl, U8 x){ - str8_serial_push_data(arena, srl, &x, sizeof(x)); -} - -internal void -str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str){ - str8_serial_push_data(arena, srl, str.str, str.size); - str8_serial_push_u8(arena, srl, 0); -} - -internal void -str8_serial_push_string(Arena *arena, String8List *srl, String8 str){ - str8_serial_push_data(arena, srl, str.str, str.size); -} - -//////////////////////////////// -//~ rjf: Deserialization Helpers - -internal U64 -str8_deserial_read(String8 string, U64 off, void *read_dst, U64 read_size, U64 granularity) -{ - U64 bytes_left = string.size-Min(off, string.size); - U64 actually_readable_size = Min(bytes_left, read_size); - U64 legally_readable_size = actually_readable_size - actually_readable_size%granularity; - if(legally_readable_size > 0) - { - MemoryCopy(read_dst, string.str+off, legally_readable_size); - } - return legally_readable_size; -} - -internal U64 -str8_deserial_find_first_match(String8 string, U64 off, U16 scan_val) -{ - U64 cursor = off; - for (;;) { - U16 val = 0; - str8_deserial_read_struct(string, cursor, &val); - if (val == scan_val) { - break; - } - cursor += sizeof(val); - } - return cursor; -} - -internal void * -str8_deserial_get_raw_ptr(String8 string, U64 off, U64 size) -{ - void *raw_ptr = 0; - if (off + size <= string.size) { - raw_ptr = string.str + off; - } - return raw_ptr; -} - -internal U64 -str8_deserial_read_cstr(String8 string, U64 off, String8 *cstr_out) -{ - U64 cstr_size = 0; - if (off < string.size) { - U8 *ptr = string.str + off; - U8 *cap = string.str + string.size; - *cstr_out = str8_cstring_capped(ptr, cap); - cstr_size = (cstr_out->size + 1); - } - return cstr_size; -} - -internal U64 -str8_deserial_read_windows_utf16_string16(String8 string, U64 off, String16 *str_out) -{ - U64 null_off = str8_deserial_find_first_match(string, off, 0); - U64 size = null_off - off; - U16 *str = (U16 *)str8_deserial_get_raw_ptr(string, off, size); - U64 count = size / sizeof(*str); - *str_out = str16(str, count); - - U64 read_size_with_null = size + sizeof(*str); - return read_size_with_null; -} - -internal U64 -str8_deserial_read_block(String8 string, U64 off, U64 size, String8 *block_out) -{ - Rng1U64 range = rng_1u64(off, off + size); - *block_out = str8_substr(string, range); - return block_out->size; -} - -internal U64 -str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out) -{ - U64 value = 0; - U64 shift = 0; - U64 cursor = off; - for(;;) - { - U8 byte = 0; - U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); - - if(bytes_read != sizeof(byte)) - { - break; - } - - U8 val = byte & 0x7fu; - value |= ((U64)val) << shift; - - cursor += bytes_read; - shift += 7u; - - if((byte & 0x80u) == 0) - { - break; - } - } - if(value_out != 0) - { - *value_out = value; - } - U64 bytes_read = cursor - off; - return bytes_read; -} - -internal U64 -str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out) -{ - U64 value = 0; - U64 shift = 0; - U64 cursor = off; - for(;;) - { - U8 byte; - U64 bytes_read = str8_deserial_read_struct(string, cursor, &byte); - if(bytes_read != sizeof(byte)) - { - break; - } - - U8 val = byte & 0x7fu; - value |= ((U64)val) << shift; - - cursor += bytes_read; - shift += 7u; - - if((byte & 0x80u) == 0) - { - if(shift < sizeof(value) * 8 && (byte & 0x40u) != 0) - { - value |= -(S64)(1ull << shift); - } - break; - } - } - if(value_out != 0) - { - *value_out = value; - } - U64 bytes_read = cursor - off; - return bytes_read; -} - diff --git a/src/metagen/metagen_base/metagen_base_strings.h b/src/metagen/metagen_base/metagen_base_strings.h index fc946dd8..8b137891 100644 --- a/src/metagen/metagen_base/metagen_base_strings.h +++ b/src/metagen/metagen_base/metagen_base_strings.h @@ -1,412 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_STRINGS_H -#define BASE_STRINGS_H - -//////////////////////////////// -//~ rjf: Third Party Includes - -#define STB_SPRINTF_DECORATE(name) raddbg_##name -#include "third_party/stb/stb_sprintf.h" - -//////////////////////////////// -//~ rjf: String Types - -typedef struct String8 String8; -struct String8 -{ - U8 *str; - U64 size; -}; - -typedef struct String16 String16; -struct String16 -{ - U16 *str; - U64 size; -}; - -typedef struct String32 String32; -struct String32 -{ - U32 *str; - U64 size; -}; - -//////////////////////////////// -//~ rjf: String List & Array Types - -typedef struct String8Node String8Node; -struct String8Node -{ - String8Node *next; - String8 string; -}; - -typedef struct String8MetaNode String8MetaNode; -struct String8MetaNode -{ - String8MetaNode *next; - String8Node *node; -}; - -typedef struct String8List String8List; -struct String8List -{ - String8Node *first; - String8Node *last; - U64 node_count; - U64 total_size; -}; - -typedef struct String8Array String8Array; -struct String8Array -{ - String8 *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: String Matching, Splitting, & Joining Types - -typedef U32 StringMatchFlags; -enum -{ - StringMatchFlag_CaseInsensitive = (1 << 0), - StringMatchFlag_RightSideSloppy = (1 << 1), - StringMatchFlag_SlashInsensitive = (1 << 2), -}; - -typedef U32 StringSplitFlags; -enum -{ - StringSplitFlag_KeepEmpties = (1 << 0), -}; - -typedef enum PathStyle -{ - PathStyle_Null, - PathStyle_Relative, - PathStyle_WindowsAbsolute, - PathStyle_UnixAbsolute, - -#if OS_WINDOWS - PathStyle_SystemAbsolute = PathStyle_WindowsAbsolute -#elif OS_LINUX - PathStyle_SystemAbsolute = PathStyle_UnixAbsolute -#else -# error "absolute path style is undefined for this OS" -#endif -} -PathStyle; - -typedef struct StringJoin StringJoin; -struct StringJoin -{ - String8 pre; - String8 sep; - String8 post; -}; - -//////////////////////////////// -//~ rjf: String Pair Types - -typedef struct String8TxtPtPair String8TxtPtPair; -struct String8TxtPtPair -{ - String8 string; - TxtPt pt; -}; - -//////////////////////////////// -//~ rjf: UTF Decoding Types - -typedef struct UnicodeDecode UnicodeDecode; -struct UnicodeDecode -{ - U32 inc; - U32 codepoint; -}; - -//////////////////////////////// -//~ rjf: String Fuzzy Matching Types - -typedef struct FuzzyMatchRangeNode FuzzyMatchRangeNode; -struct FuzzyMatchRangeNode -{ - FuzzyMatchRangeNode *next; - Rng1U64 range; -}; - -typedef struct FuzzyMatchRangeList FuzzyMatchRangeList; -struct FuzzyMatchRangeList -{ - FuzzyMatchRangeNode *first; - FuzzyMatchRangeNode *last; - U64 count; - U64 needle_part_count; - U64 total_dim; -}; - -//////////////////////////////// -//~ rjf: Character Classification & Conversion Functions - -internal B32 char_is_space(U8 c); -internal B32 char_is_upper(U8 c); -internal B32 char_is_lower(U8 c); -internal B32 char_is_alpha(U8 c); -internal B32 char_is_slash(U8 c); -internal B32 char_is_digit(U8 c, U32 base); -internal U8 char_to_lower(U8 c); -internal U8 char_to_upper(U8 c); -internal U8 char_to_correct_slash(U8 c); - -//////////////////////////////// -//~ rjf: C-String Measurement - -internal U64 cstring8_length(U8 *c); -internal U64 cstring16_length(U16 *c); -internal U64 cstring32_length(U32 *c); - -//////////////////////////////// -//~ rjf: String Constructors - -#define str8_lit(S) str8((U8*)(S), sizeof(S) - 1) -#define str8_lit_comp(S) {(U8*)(S), sizeof(S) - 1,} -#define str8_varg(S) (int)((S).size), ((S).str) - -#define str8_array(S,C) str8((U8*)(S), sizeof(*(S))*(C)) -#define str8_array_fixed(S) str8((U8*)(S), sizeof(S)) -#define str8_struct(S) str8((U8*)(S), sizeof(*(S))) - -internal String8 str8(U8 *str, U64 size); -internal String8 str8_range(U8 *first, U8 *one_past_last); -internal String8 str8_zero(void); -internal String16 str16(U16 *str, U64 size); -internal String16 str16_range(U16 *first, U16 *one_past_last); -internal String16 str16_zero(void); -internal String32 str32(U32 *str, U64 size); -internal String32 str32_range(U32 *first, U32 *one_past_last); -internal String32 str32_zero(void); -internal String8 str8_cstring(char *c); -internal String16 str16_cstring(U16 *c); -internal String32 str32_cstring(U32 *c); -internal String8 str8_cstring_capped(void *cstr, void *cap); -internal String16 str16_cstring_capped(void *cstr, void *cap); -internal String8 str8_cstring_capped_reverse(void *raw_start, void *raw_cap); - -//////////////////////////////// -//~ rjf: String Stylization - -internal String8 upper_from_str8(Arena *arena, String8 string); -internal String8 lower_from_str8(Arena *arena, String8 string); -internal String8 backslashed_from_str8(Arena *arena, String8 string); - -//////////////////////////////// -//~ rjf: String Matching - -internal B32 str8_match(String8 a, String8 b, StringMatchFlags flags); -internal U64 str8_find_needle(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags); -internal U64 str8_find_needle_reverse(String8 string, U64 start_pos, String8 needle, StringMatchFlags flags); -internal B32 str8_ends_with(String8 string, String8 end, StringMatchFlags flags); - -//////////////////////////////// -//~ rjf: String Slicing - -internal String8 str8_substr(String8 str, Rng1U64 range); -internal String8 str8_prefix(String8 str, U64 size); -internal String8 str8_skip(String8 str, U64 amt); -internal String8 str8_postfix(String8 str, U64 size); -internal String8 str8_chop(String8 str, U64 amt); -internal String8 str8_skip_chop_whitespace(String8 string); - -//////////////////////////////// -//~ rjf: String Formatting & Copying - -internal String8 push_str8_cat(Arena *arena, String8 s1, String8 s2); -internal String8 push_str8_copy(Arena *arena, String8 s); -internal String8 push_str8fv(Arena *arena, char *fmt, va_list args); -internal String8 push_str8f(Arena *arena, char *fmt, ...); - -//////////////////////////////// -//~ rjf: String <=> Integer Conversions - -//- rjf: string -> integer -internal S64 sign_from_str8(String8 string, String8 *string_tail); -internal B32 str8_is_integer(String8 string, U32 radix); - -internal U64 u64_from_str8(String8 string, U32 radix); -internal S64 s64_from_str8(String8 string, U32 radix); -internal U32 u32_from_str8(String8 string, U32 radix); -internal S32 s32_from_str8(String8 string, U32 radix); -internal B32 try_u64_from_str8_c_rules(String8 string, U64 *x); -internal B32 try_s64_from_str8_c_rules(String8 string, S64 *x); - -//- rjf: integer -> string -internal String8 str8_from_memory_size(Arena *arena, U64 size); -internal String8 str8_from_count(Arena *arena, U64 count); -internal String8 str8_from_bits_u32(Arena *arena, U32 x); -internal String8 str8_from_bits_u64(Arena *arena, U64 x); -internal String8 str8_from_u64(Arena *arena, U64 u64, U32 radix, U8 min_digits, U8 digit_group_separator); -internal String8 str8_from_s64(Arena *arena, S64 s64, U32 radix, U8 min_digits, U8 digit_group_separator); - -//////////////////////////////// -//~ rjf: String <=> Float Conversions - -internal F64 f64_from_str8(String8 string); - -//////////////////////////////// -//~ rjf: String List Construction Functions - -internal String8Node* str8_list_push_node(String8List *list, String8Node *node); -internal String8Node* str8_list_push_node_set_string(String8List *list, String8Node *node, String8 string); -internal String8Node* str8_list_push_node_front(String8List *list, String8Node *node); -internal String8Node* str8_list_push_node_front_set_string(String8List *list, String8Node *node, String8 string); -internal String8Node* str8_list_push(Arena *arena, String8List *list, String8 string); -internal String8Node* str8_list_push_front(Arena *arena, String8List *list, String8 string); -internal void str8_list_concat_in_place(String8List *list, String8List *to_push); -internal String8Node* str8_list_push_aligner(Arena *arena, String8List *list, U64 min, U64 align); -internal String8Node* str8_list_pushf(Arena *arena, String8List *list, char *fmt, ...); -internal String8Node* str8_list_push_frontf(Arena *arena, String8List *list, char *fmt, ...); -internal String8List str8_list_copy(Arena *arena, String8List *list); -#define str8_list_first(list) ((list)->first ? (list)->first->string : str8_zero()) - -//////////////////////////////// -//~ rjf: String Splitting & Joining - -internal String8List str8_split(Arena *arena, String8 string, U8 *split_chars, U64 split_char_count, StringSplitFlags flags); -internal String8List str8_split_by_string_chars(Arena *arena, String8 string, String8 split_chars, StringSplitFlags flags); -internal String8List str8_list_split_by_string_chars(Arena *arena, String8List list, String8 split_chars, StringSplitFlags flags); -internal String8 str8_list_join(Arena *arena, String8List *list, StringJoin *optional_params); -internal void str8_list_from_flags(Arena *arena, String8List *list, U32 flags, String8 *flag_string_table, U32 flag_string_count); - -//////////////////////////////// -//~ rjf; String Arrays - -internal String8Array str8_array_from_list(Arena *arena, String8List *list); -internal String8Array str8_array_reserve(Arena *arena, U64 count); - -//////////////////////////////// -//~ rjf: String Path Helpers - -internal String8 str8_chop_last_slash(String8 string); -internal String8 str8_skip_last_slash(String8 string); -internal String8 str8_chop_last_dot(String8 string); -internal String8 str8_skip_last_dot(String8 string); - -internal PathStyle path_style_from_str8(String8 string); -internal String8List str8_split_path(Arena *arena, String8 string); -internal void str8_path_list_resolve_dots_in_place(String8List *path, PathStyle style); -internal String8 str8_path_list_join_by_style(Arena *arena, String8List *path, PathStyle style); - -internal String8TxtPtPair str8_txt_pt_pair_from_string(String8 string); - -//////////////////////////////// -//~ rjf: UTF-8 & UTF-16 Decoding/Encoding - -internal UnicodeDecode utf8_decode(U8 *str, U64 max); -internal UnicodeDecode utf16_decode(U16 *str, U64 max); -internal U32 utf8_encode(U8 *str, U32 codepoint); -internal U32 utf16_encode(U16 *str, U32 codepoint); -internal U32 utf8_from_utf32_single(U8 *buffer, U32 character); - -//////////////////////////////// -//~ rjf: Unicode String Conversions - -internal String8 str8_from_16(Arena *arena, String16 in); -internal String16 str16_from_8(Arena *arena, String8 in); -internal String8 str8_from_32(Arena *arena, String32 in); -internal String32 str32_from_8(Arena *arena, String8 in); - -//////////////////////////////// -//~ String -> Enum Conversions - -internal OperatingSystem operating_system_from_string(String8 string); - -//////////////////////////////// -//~ rjf: Basic Types & Space Enum -> String Conversions - -internal String8 string_from_dimension(Dimension dimension); -internal String8 string_from_side(Side side); -internal String8 string_from_operating_system(OperatingSystem os); -internal String8 string_from_arch(Arch arch); - -//////////////////////////////// -//~ rjf: Time Types -> String - -internal String8 string_from_week_day(WeekDay week_day); -internal String8 string_from_month(Month month); -internal String8 push_date_time_string(Arena *arena, DateTime *date_time); -internal String8 push_file_name_date_time_string(Arena *arena, DateTime *date_time); -internal String8 string_from_elapsed_time(Arena *arena, DateTime dt); - -//////////////////////////////// -//~ Globally Unique Ids - -internal String8 string_from_guid(Arena *arena, Guid guid); -internal B32 try_guid_from_string(String8 string, Guid *guid_out); -internal Guid guid_from_string(String8 string); - -//////////////////////////////// -//~ rjf: Basic Text Indentation - -internal String8 indented_from_string(Arena *arena, String8 string); - -//////////////////////////////// -//~ rjf: Text Escaping - -internal String8 escaped_from_raw_str8(Arena *arena, String8 string); -internal String8 raw_from_escaped_str8(Arena *arena, String8 string); - -//////////////////////////////// -//~ rjf: Text Wrapping - -internal String8List wrapped_lines_from_string(Arena *arena, String8 string, U64 first_line_max_width, U64 max_width, U64 wrap_indent); - -//////////////////////////////// -//~ rjf: String <-> Color - -internal String8 hex_string_from_rgba_4f32(Arena *arena, Vec4F32 rgba); -internal Vec4F32 rgba_from_hex_string_4f32(String8 hex_string); - -//////////////////////////////// -//~ rjf: String Fuzzy Matching - -internal FuzzyMatchRangeList fuzzy_match_find(Arena *arena, String8 needle, String8 haystack); -internal FuzzyMatchRangeList fuzzy_match_range_list_copy(Arena *arena, FuzzyMatchRangeList *src); - -//////////////////////////////// -//~ NOTE(allen): Serialization Helpers - -internal void str8_serial_begin(Arena *arena, String8List *srl); -internal String8 str8_serial_end(Arena *arena, String8List *srl); -internal void str8_serial_write_to_dst(String8List *srl, void *out); -internal U64 str8_serial_push_align(Arena *arena, String8List *srl, U64 align); -internal void * str8_serial_push_size(Arena *arena, String8List *srl, U64 size); -internal void * str8_serial_push_data(Arena *arena, String8List *srl, void *data, U64 size); -internal void str8_serial_push_data_list(Arena *arena, String8List *srl, String8Node *first); -internal void str8_serial_push_u64(Arena *arena, String8List *srl, U64 x); -internal void str8_serial_push_u32(Arena *arena, String8List *srl, U32 x); -internal void str8_serial_push_u16(Arena *arena, String8List *srl, U16 x); -internal void str8_serial_push_u8(Arena *arena, String8List *srl, U8 x); -internal void str8_serial_push_cstr(Arena *arena, String8List *srl, String8 str); -internal void str8_serial_push_string(Arena *arena, String8List *srl, String8 str); -#define str8_serial_push_array(arena, srl, ptr, count) str8_serial_push_data(arena, srl, ptr, sizeof(*(ptr)) * (count)) -#define str8_serial_push_struct(arena, srl, ptr) str8_serial_push_array(arena, srl, ptr, 1) - -//////////////////////////////// -//~ rjf: Deserialization Helpers - -internal U64 str8_deserial_read(String8 string, U64 off, void *read_dst, U64 read_size, U64 granularity); -internal U64 str8_deserial_find_first_match(String8 string, U64 off, U16 scan_val); -internal void * str8_deserial_get_raw_ptr(String8 string, U64 off, U64 size); -internal U64 str8_deserial_read_cstr(String8 string, U64 off, String8 *cstr_out); -internal U64 str8_deserial_read_windows_utf16_string16(String8 string, U64 off, String16 *str_out); -internal U64 str8_deserial_read_block(String8 string, U64 off, U64 size, String8 *block_out); -internal U64 str8_deserial_read_uleb128(String8 string, U64 off, U64 *value_out); -internal U64 str8_deserial_read_sleb128(String8 string, U64 off, S64 *value_out); -#define str8_deserial_read_array(string, off, ptr, count) str8_deserial_read((string), (off), (ptr), sizeof(*(ptr))*(count), sizeof(*(ptr))) -#define str8_deserial_read_struct(string, off, ptr) str8_deserial_read_array(string, off, ptr, 1) - -#endif // BASE_STRINGS_H + diff --git a/src/metagen/metagen_base/metagen_base_thread_context.c b/src/metagen/metagen_base/metagen_base_thread_context.c deleted file mode 100644 index 1a3f84ed..00000000 --- a/src/metagen/metagen_base/metagen_base_thread_context.c +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -// NOTE(allen): Thread Context Functions - -C_LINKAGE thread_static TCTX* tctx_thread_local; -#if !BUILD_SUPPLEMENTARY_UNIT -C_LINKAGE thread_static TCTX* tctx_thread_local = 0; -#endif - -internal void -tctx_init_and_equip(TCTX *tctx){ - MemoryZeroStruct(tctx); - Arena **arena_ptr = tctx->arenas; - for (U64 i = 0; i < ArrayCount(tctx->arenas); i += 1, arena_ptr += 1){ - *arena_ptr = arena_alloc(); - } - tctx_thread_local = tctx; -} - -internal void -tctx_release(void) -{ - for(U64 i = 0; i < ArrayCount(tctx_thread_local->arenas); i += 1) - { - arena_release(tctx_thread_local->arenas[i]); - } -} - -internal TCTX* -tctx_get_equipped(void){ - return(tctx_thread_local); -} - -internal Arena* -tctx_get_scratch(Arena **conflicts, U64 count){ - TCTX *tctx = tctx_get_equipped(); - - Arena *result = 0; - Arena **arena_ptr = tctx->arenas; - for (U64 i = 0; i < ArrayCount(tctx->arenas); i += 1, arena_ptr += 1){ - Arena **conflict_ptr = conflicts; - B32 has_conflict = 0; - for (U64 j = 0; j < count; j += 1, conflict_ptr += 1){ - if (*arena_ptr == *conflict_ptr){ - has_conflict = 1; - break; - } - } - if (!has_conflict){ - result = *arena_ptr; - break; - } - } - - return(result); -} - -internal void -tctx_set_thread_name(String8 string){ - TCTX *tctx = tctx_get_equipped(); - U64 size = ClampTop(string.size, sizeof(tctx->thread_name)); - MemoryCopy(tctx->thread_name, string.str, size); - tctx->thread_name_size = size; -} - -internal String8 -tctx_get_thread_name(void){ - TCTX *tctx = tctx_get_equipped(); - String8 result = str8(tctx->thread_name, tctx->thread_name_size); - return(result); -} - -internal void -tctx_write_srcloc(char *file_name, U64 line_number){ - TCTX *tctx = tctx_get_equipped(); - tctx->file_name = file_name; - tctx->line_number = line_number; -} - -internal void -tctx_read_srcloc(char **file_name, U64 *line_number){ - TCTX *tctx = tctx_get_equipped(); - *file_name = tctx->file_name; - *line_number = tctx->line_number; -} diff --git a/src/metagen/metagen_base/metagen_base_thread_context.h b/src/metagen/metagen_base/metagen_base_thread_context.h deleted file mode 100644 index b2515c93..00000000 --- a/src/metagen/metagen_base/metagen_base_thread_context.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef BASE_THREAD_CONTEXT_H -#define BASE_THREAD_CONTEXT_H - -//////////////////////////////// -// NOTE(allen): Thread Context - -typedef struct TCTX TCTX; -struct TCTX -{ - Arena *arenas[2]; - - U8 thread_name[32]; - U64 thread_name_size; - - char *file_name; - U64 line_number; -}; - -//////////////////////////////// -// NOTE(allen): Thread Context Functions - -internal void tctx_init_and_equip(TCTX *tctx); -internal void tctx_release(void); -internal TCTX* tctx_get_equipped(void); - -internal Arena* tctx_get_scratch(Arena **conflicts, U64 countt); - -internal void tctx_set_thread_name(String8 name); -internal String8 tctx_get_thread_name(void); - -internal void tctx_write_srcloc(char *file_name, U64 line_number); -internal void tctx_read_srcloc(char **file_name, U64 *line_number); -#define tctx_write_this_srcloc() tctx_write_srcloc(__FILE__, __LINE__) - -#define scratch_begin(conflicts, count) temp_begin(tctx_get_scratch((conflicts), (count))) -#define scratch_end(scratch) temp_end(scratch) - -#endif // BASE_THREAD_CONTEXT_H diff --git a/src/metagen/metagen_main.c b/src/metagen/metagen_main.c index 1c19ac5d..198a3409 100644 --- a/src/metagen/metagen_main.c +++ b/src/metagen/metagen_main.c @@ -10,14 +10,12 @@ //~ rjf: Includes //- rjf: headers -#include "metagen/metagen_base/metagen_base_inc.h" -#include "metagen/metagen_os/metagen_os_inc.h" +#include "base/base_inc.h" #include "mdesk/mdesk.h" #include "metagen.h" //- rjf: impls -#include "metagen/metagen_base/metagen_base_inc.c" -#include "metagen/metagen_os/metagen_os_inc.c" +#include "base/base_inc.c" #include "mdesk/mdesk.c" #include "metagen.c" @@ -39,9 +37,9 @@ entry_point(CmdLine *cmdline) ////////////////////////////// //- rjf: extract paths // - String8 build_dir_path = os_get_process_info()->binary_path; + String8 build_dir_path = get_process_info()->binary_path; String8 project_dir_path = str8_chop_last_slash(build_dir_path); - String8 code_dir_path = push_str8f(mg_arena, "%S/src", project_dir_path); + String8 code_dir_path = str8f(mg_arena, "%S/src", project_dir_path); ////////////////////////////// //- rjf: search code directories for all files to consider @@ -60,8 +58,8 @@ entry_point(CmdLine *cmdline) Task *last_task = &start_task; for(Task *task = first_task; task != 0; task = task->next) { - OS_FileIter *it = os_file_iter_begin(mg_arena, task->path, 0); - for(OS_FileInfo info = {0}; os_file_iter_next(mg_arena, it, &info);) + FileIter *it = file_iter_begin(mg_arena, task->path, 0); + for(FileInfo info = {0}; file_iter_next(mg_arena, it, &info);) { String8 file_path = push_str8f(mg_arena, "%S/%S", task->path, info.name); if(info.props.flags & FilePropertyFlag_IsFolder) @@ -75,7 +73,7 @@ entry_point(CmdLine *cmdline) str8_list_push(mg_arena, &file_paths, file_path); } } - os_file_iter_end(it); + file_iter_end(it); } } @@ -91,7 +89,7 @@ entry_point(CmdLine *cmdline) String8 file_ext = str8_skip_last_dot(file_path); if(str8_match(file_ext, str8_lit("mdesk"), 0)) { - String8 data = os_data_from_file_path(mg_arena, file_path); + String8 data = data_from_file_path(mg_arena, file_path); MD_TokenizeResult tokenize = md_tokenize_from_text(mg_arena, data); MD_ParseResult parse = md_parse_from_text_tokens(mg_arena, file_path, data, tokenize.tokens); for(MD_Msg *m = parse.msgs.first; m != 0; m = m->next) @@ -222,7 +220,24 @@ entry_point(CmdLine *cmdline) MD_Node *file = n->v.root; for MD_EachNode(node, file->first) { + // rjf: @enum tags -> generate strings from table generators MD_Node *tag = md_tag_from_string(node, str8_lit("enum"), 0); + String8List gen_strings = {0}; + if(!md_node_is_nil(tag)) + { + gen_strings = mg_string_list_from_table_gen(mg_arena, table_grid_map, table_col_map, str8_lit(""), node); + } + + // rjf: @table_enum tags -> generate strings from 'name' column from table + if(md_node_is_nil(tag)) + { + tag = md_tag_from_string(node, str8_lit("table_enum"), 0); + String8 gen_string = str8f(mg_arena, "{ expand(%S a) `$(a.name) = $(a.code)` }", node->string); + MD_Node *gen_node = md_tree_from_string(mg_arena, gen_string); + gen_strings = mg_string_list_from_table_gen(mg_arena, table_grid_map, table_col_map, str8_lit(""), node); + } + + // rjf: generate if(!md_node_is_nil(tag)) { String8 enum_name = node->string; @@ -234,7 +249,6 @@ entry_point(CmdLine *cmdline) String8 enum_base_type_name = tag->first->string; String8 layer_key = mg_layer_key_from_path(file->string); MG_Layer *layer = mg_layer_from_key(layer_key); - String8List gen_strings = mg_string_list_from_table_gen(mg_arena, table_grid_map, table_col_map, str8_lit(""), node); if(enum_base_type_name.size == 0) { str8_list_pushf(mg_arena, &layer->enums, "typedef enum %S\n{\n", enum_name); @@ -421,7 +435,7 @@ entry_point(CmdLine *cmdline) { String8 layer_key = mg_layer_key_from_path(file->string); MG_Layer *layer = mg_layer_from_key(layer_key); - String8 data = os_data_from_file_path(mg_arena, node->first->string); + String8 data = data_from_file_path(mg_arena, node->first->string); String8 embed_string = mg_c_array_literal_contents_from_data(data); str8_list_pushf(mg_arena, &layer->h_tables, "read_only global U8 %S__data[] =\n{\n", node->string); str8_list_push (mg_arena, &layer->h_tables, embed_string); @@ -517,7 +531,7 @@ entry_point(CmdLine *cmdline) String8 gen_folder = str8_lit("generated"); layer_generated_folder = push_str8f(mg_arena, "%S/%S/%S", code_dir_path, layer->key, gen_folder); } - if(os_make_directory(layer_generated_folder)) + if(make_directory(layer_generated_folder)) { String8List layer_key_parts = str8_split_path(mg_arena, layer->key); StringJoin join = {0}; @@ -535,7 +549,7 @@ entry_point(CmdLine *cmdline) c_path = push_str8f(mg_arena, "%S/%S", layer_generated_folder, str8_skip_last_slash(layer->c_name_override)); } { - FILE *h = fopen((char *)h_path.str, "w"); + FILE *h = fopen((char *)h_path.str, "wb"); fprintf(h, "// Copyright (c) Epic Games Tools\n"); fprintf(h, "// Licensed under the MIT license (https://opensource.org/license/mit/)\n\n"); if(layer->h_header.first == 0) @@ -591,7 +605,7 @@ entry_point(CmdLine *cmdline) fclose(h); } { - FILE *c = fopen((char *)c_path.str, "w"); + FILE *c = fopen((char *)c_path.str, "wb"); fprintf(c, "// Copyright (c) Epic Games Tools\n"); fprintf(c, "// Licensed under the MIT license (https://opensource.org/license/mit/)\n\n"); if(layer->c_header.first == 0) diff --git a/src/metagen/metagen_os/core/linux/metagen_os_core_linux.c b/src/metagen/metagen_os/core/linux/metagen_os_core_linux.c index 23ec77cf..8b137891 100644 --- a/src/metagen/metagen_os/core/linux/metagen_os_core_linux.c +++ b/src/metagen/metagen_os/core/linux/metagen_os_core_linux.c @@ -1,1337 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Helpers - -internal DateTime -os_lnx_date_time_from_tm(tm in, U32 msec) -{ - DateTime dt = {0}; - dt.sec = in.tm_sec; - dt.min = in.tm_min; - dt.hour = in.tm_hour; - dt.day = in.tm_mday-1; - dt.mon = in.tm_mon; - dt.year = in.tm_year+1900; - dt.msec = msec; - return dt; -} - -internal tm -os_lnx_tm_from_date_time(DateTime dt) -{ - tm result = {0}; - result.tm_sec = dt.sec; - result.tm_min = dt.min; - result.tm_hour= dt.hour; - result.tm_mday= dt.day+1; - result.tm_mon = dt.mon; - result.tm_year= dt.year-1900; - return result; -} - -internal timespec -os_lnx_timespec_from_date_time(DateTime dt) -{ - tm tm_val = os_lnx_tm_from_date_time(dt); - time_t seconds = timegm(&tm_val); - timespec result = {0}; - result.tv_sec = seconds; - return result; -} - -internal DenseTime -os_lnx_dense_time_from_timespec(timespec in) -{ - DenseTime result = 0; - { - struct tm tm_time = {0}; - gmtime_r(&in.tv_sec, &tm_time); - DateTime date_time = os_lnx_date_time_from_tm(tm_time, in.tv_nsec/Million(1)); - result = dense_time_from_date_time(date_time); - } - return result; -} - -internal FileProperties -os_lnx_file_properties_from_stat(struct stat *s) -{ - FileProperties props = {0}; - props.size = s->st_size; - props.created = os_lnx_dense_time_from_timespec(s->st_ctim); - props.modified = os_lnx_dense_time_from_timespec(s->st_mtim); - if(s->st_mode & S_IFDIR) - { - props.flags |= FilePropertyFlag_IsFolder; - } - return props; -} - -internal void -os_lnx_safe_call_sig_handler(int x) -{ - OS_LNX_SafeCallChain *chain = os_lnx_safe_call_chain; - if(chain != 0 && chain->fail_handler != 0) - { - chain->fail_handler(chain->ptr); - } - abort(); -} - -//////////////////////////////// -//~ rjf: Entities - -internal OS_LNX_Entity * -os_lnx_entity_alloc(OS_LNX_EntityKind kind) -{ - OS_LNX_Entity *entity = 0; - DeferLoop(pthread_mutex_lock(&os_lnx_state.entity_mutex), - pthread_mutex_unlock(&os_lnx_state.entity_mutex)) - { - entity = os_lnx_state.entity_free; - if(entity) - { - SLLStackPop(os_lnx_state.entity_free); - } - else - { - entity = push_array_no_zero(os_lnx_state.entity_arena, OS_LNX_Entity, 1); - } - } - MemoryZeroStruct(entity); - entity->kind = kind; - return entity; -} - -internal void -os_lnx_entity_release(OS_LNX_Entity *entity) -{ - DeferLoop(pthread_mutex_lock(&os_lnx_state.entity_mutex), - pthread_mutex_unlock(&os_lnx_state.entity_mutex)) - { - SLLStackPush(os_lnx_state.entity_free, entity); - } -} - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal void * -os_lnx_thread_entry_point(void *ptr) -{ - OS_LNX_Entity *entity = (OS_LNX_Entity *)ptr; - OS_ThreadFunctionType *func = entity->thread.func; - void *thread_ptr = entity->thread.ptr; - TCTX tctx_; - tctx_init_and_equip(&tctx_); - func(thread_ptr); - tctx_release(); - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo * -os_get_system_info(void) -{ - return &os_lnx_state.system_info; -} - -internal OS_ProcessInfo * -os_get_process_info(void) -{ - return &os_lnx_state.process_info; -} - -internal String8 -os_get_current_path(Arena *arena) -{ - char *cwdir = getcwd(0, 0); - String8 string = push_str8_copy(arena, str8_cstring(cwdir)); - free(cwdir); - return string; -} - -internal U32 -os_get_process_start_time_unix(void) -{ - Temp scratch = scratch_begin(0,0); - U64 start_time = 0; - pid_t pid = getpid(); - String8 path = push_str8f(scratch.arena, "/proc/%u", pid); - struct stat st; - int err = stat((char*)path.str, &st); - if(err == 0) - { - start_time = st.st_mtime; - } - scratch_end(scratch); - return (U32)start_time; -} - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic - -internal void * -os_reserve(U64 size) -{ - void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - if(result == MAP_FAILED) - { - result = 0; - } - return result; -} - -internal B32 -os_commit(void *ptr, U64 size) -{ - mprotect(ptr, size, PROT_READ|PROT_WRITE); - return 1; -} - -internal void -os_decommit(void *ptr, U64 size) -{ - madvise(ptr, size, MADV_DONTNEED); - mprotect(ptr, size, PROT_NONE); -} - -internal void -os_release(void *ptr, U64 size) -{ - munmap(ptr, size); -} - -//- rjf: large pages - -internal void * -os_reserve_large(U64 size) -{ - void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0); - if(result == MAP_FAILED) - { - result = 0; - } - return result; -} - -internal B32 -os_commit_large(void *ptr, U64 size) -{ - mprotect(ptr, size, PROT_READ|PROT_WRITE); - return 1; -} - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 -os_tid(void) -{ - U32 result = gettid(); - return result; -} - -internal void -os_set_thread_name(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - pthread_t current_thread = pthread_self(); - pthread_setname_np(current_thread, (char *)name_copy.str); - scratch_end(scratch); -} - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void -os_abort(S32 exit_code) -{ - exit(exit_code); -} - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files - -internal OS_Handle -os_file_open(OS_AccessFlags flags, String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - int lnx_flags = 0; - if(flags & OS_AccessFlag_Read && flags & OS_AccessFlag_Write) - { - lnx_flags = O_RDWR; - } - else if(flags & OS_AccessFlag_Write) - { - lnx_flags = O_WRONLY; - } - else if(flags & OS_AccessFlag_Read) - { - lnx_flags = O_RDONLY; - } - if(flags & OS_AccessFlag_Append) - { - lnx_flags |= O_APPEND; - } - if(flags & (OS_AccessFlag_Write|OS_AccessFlag_Append)) - { - lnx_flags |= O_CREAT; - } - int fd = open((char *)path_copy.str, lnx_flags, 0755); - OS_Handle handle = {0}; - if(fd != -1) - { - handle.u64[0] = fd; - } - scratch_end(scratch); - return handle; -} - -internal void -os_file_close(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return; } - int fd = (int)file.u64[0]; - close(fd); -} - -internal U64 -os_file_read(OS_Handle file, Rng1U64 rng, void *out_data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - U64 total_num_bytes_to_read = dim_1u64(rng); - U64 total_num_bytes_read = 0; - U64 total_num_bytes_left_to_read = total_num_bytes_to_read; - for(;total_num_bytes_left_to_read > 0;) - { - int read_result = pread(fd, (U8 *)out_data + total_num_bytes_read, total_num_bytes_left_to_read, rng.min + total_num_bytes_read); - if(read_result >= 0) - { - total_num_bytes_read += read_result; - total_num_bytes_left_to_read -= read_result; - } - else if(errno != EINTR) - { - break; - } - } - return total_num_bytes_read; -} - -internal U64 -os_file_write(OS_Handle file, Rng1U64 rng, void *data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - U64 total_num_bytes_to_write = dim_1u64(rng); - U64 total_num_bytes_written = 0; - U64 total_num_bytes_left_to_write = total_num_bytes_to_write; - for(;total_num_bytes_left_to_write > 0;) - { - int write_result = pwrite(fd, (U8 *)data + total_num_bytes_written, total_num_bytes_left_to_write, rng.min + total_num_bytes_written); - if(write_result >= 0) - { - total_num_bytes_written += write_result; - total_num_bytes_left_to_write -= write_result; - } - else if(errno != EINTR) - { - break; - } - } - return total_num_bytes_written; -} - -internal B32 -os_file_set_times(OS_Handle file, DateTime date_time) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - timespec time = os_lnx_timespec_from_date_time(date_time); - timespec times[2] = {time, time}; - int futimens_result = futimens(fd, times); - B32 good = (futimens_result != -1); - return good; -} - -internal FileProperties -os_properties_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return (FileProperties){0}; } - int fd = (int)file.u64[0]; - struct stat fd_stat = {0}; - int fstat_result = fstat(fd, &fd_stat); - FileProperties props = {0}; - if(fstat_result != -1) - { - props = os_lnx_file_properties_from_stat(&fd_stat); - } - return props; -} - -internal OS_FileID -os_id_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return (OS_FileID){0}; } - int fd = (int)file.u64[0]; - struct stat fd_stat = {0}; - int fstat_result = fstat(fd, &fd_stat); - OS_FileID id = {0}; - if(fstat_result != -1) - { - id.v[0] = fd_stat.st_dev; - id.v[1] = fd_stat.st_ino; - } - return id; -} - -internal B32 -os_delete_file_at_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - if(remove((char*)path_copy.str) != -1) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -internal B32 -os_copy_file_path(String8 dst, String8 src) -{ - B32 result = 0; - OS_Handle src_h = os_file_open(OS_AccessFlag_Read, src); - OS_Handle dst_h = os_file_open(OS_AccessFlag_Write, dst); - if(!os_handle_match(src_h, os_handle_zero()) && - !os_handle_match(dst_h, os_handle_zero())) - { - int src_fd = (int)src_h.u64[0]; - int dst_fd = (int)dst_h.u64[0]; - FileProperties src_props = os_properties_from_file(src_h); - U64 size = src_props.size; - U64 total_bytes_copied = 0; - U64 bytes_left_to_copy = size; - for(;bytes_left_to_copy > 0;) - { - off_t sendfile_off = total_bytes_copied; - int send_result = sendfile(dst_fd, src_fd, &sendfile_off, bytes_left_to_copy); - if(send_result <= 0) - { - break; - } - U64 bytes_copied = (U64)send_result; - bytes_left_to_copy -= bytes_copied; - total_bytes_copied += bytes_copied; - } - } - os_file_close(src_h); - os_file_close(dst_h); - return result; -} - -internal B32 -os_move_file_path(String8 dst, String8 src) -{ - // TODO(rjf) - return 0; -} - -internal String8 -os_full_path_from_path(Arena *arena, String8 path) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 path_copy = push_str8_copy(scratch.arena, path); - char buffer[PATH_MAX] = {0}; - realpath((char *)path_copy.str, buffer); - String8 result = push_str8_copy(arena, str8_cstring(buffer)); - scratch_end(scratch); - return result; -} - -internal B32 -os_file_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - int access_result = access((char *)path_copy.str, F_OK); - B32 result = 0; - if(access_result == 0) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -internal B32 -os_folder_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 exists = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - DIR *handle = opendir((char*)path_copy.str); - if(handle) - { - closedir(handle); - exists = 1; - } - scratch_end(scratch); - return exists; -} - -internal FileProperties -os_properties_from_file_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - struct stat f_stat = {0}; - int stat_result = stat((char *)path_copy.str, &f_stat); - FileProperties props = {0}; - if(stat_result != -1) - { - props = os_lnx_file_properties_from_stat(&f_stat); - } - scratch_end(scratch); - return props; -} - -//- rjf: file maps - -internal OS_Handle -os_file_map_open(OS_AccessFlags flags, OS_Handle file) -{ - OS_Handle map = file; - return map; -} - -internal void -os_file_map_close(OS_Handle map) -{ - // NOTE(rjf): nothing to do; `map` handles are the same as `file` handles in - // the linux implementation (on Windows they require separate handles) -} - -internal void * -os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range) -{ - if(os_handle_match(map, os_handle_zero())) { return 0; } - int fd = (int)map.u64[0]; - int prot_flags = 0; - if(flags & OS_AccessFlag_Write) { prot_flags |= PROT_WRITE; } - if(flags & OS_AccessFlag_Read) { prot_flags |= PROT_READ; } - int map_flags = MAP_PRIVATE; - void *base = mmap(0, dim_1u64(range), prot_flags, map_flags, fd, range.min); - if(base == MAP_FAILED) - { - base = 0; - } - return base; -} - -internal void -os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range) -{ - munmap(ptr, dim_1u64(range)); -} - -//- rjf: directory iteration - -internal OS_FileIter * -os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags) -{ - OS_FileIter *base_iter = push_array(arena, OS_FileIter, 1); - base_iter->flags = flags; - OS_LNX_FileIter *iter = (OS_LNX_FileIter *)base_iter->memory; - { - String8 path_copy = push_str8_copy(arena, path); - iter->dir = opendir((char *)path_copy.str); - iter->path = path_copy; - } - return base_iter; -} - -internal B32 -os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out) -{ - B32 good = 0; - OS_LNX_FileIter *lnx_iter = (OS_LNX_FileIter *)iter->memory; - for(;;) - { - // rjf: get next entry - lnx_iter->dp = readdir(lnx_iter->dir); - good = (lnx_iter->dp != 0); - - // rjf: unpack entry info - struct stat st = {0}; - int stat_result = 0; - if(good) - { - Temp scratch = scratch_begin(&arena, 1); - String8 full_path = push_str8f(scratch.arena, "%S/%s", lnx_iter->path, lnx_iter->dp->d_name); - stat_result = stat((char *)full_path.str, &st); - scratch_end(scratch); - } - - // rjf: determine if filtered - B32 filtered = 0; - if(good) - { - filtered = ((st.st_mode == S_IFDIR && iter->flags & OS_FileIterFlag_SkipFolders) || - (st.st_mode == S_IFREG && iter->flags & OS_FileIterFlag_SkipFiles) || - (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == 0) || - (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == '.' && lnx_iter->dp->d_name[2] == 0)); - } - - // rjf: output & exit, if good & unfiltered - if(good && !filtered) - { - info_out->name = push_str8_copy(arena, str8_cstring(lnx_iter->dp->d_name)); - if(stat_result != -1) - { - info_out->props = os_lnx_file_properties_from_stat(&st); - } - break; - } - - // rjf: exit if not good - if(!good) - { - break; - } - } - return good; -} - -internal void -os_file_iter_end(OS_FileIter *iter) -{ - OS_LNX_FileIter *lnx_iter = (OS_LNX_FileIter *)iter->memory; - closedir(lnx_iter->dir); -} - -//- rjf: directory creation - -internal B32 -os_make_directory(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - if(mkdir((char*)path_copy.str, 0755) != -1) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle -os_shared_memory_alloc(U64 size, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - int id = shm_open((char *)name_copy.str, O_RDWR, 0); - ftruncate(id, size); - OS_Handle result = {(U64)id}; - scratch_end(scratch); - return result; -} - -internal OS_Handle -os_shared_memory_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - int id = shm_open((char *)name_copy.str, O_RDWR, 0); - OS_Handle result = {(U64)id}; - scratch_end(scratch); - return result; -} - -internal void -os_shared_memory_close(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())){return;} - int id = (int)handle.u64[0]; - close(id); -} - -internal void * -os_shared_memory_view_open(OS_Handle handle, Rng1U64 range) -{ - if(os_handle_match(handle, os_handle_zero())){return 0;} - int id = (int)handle.u64[0]; - void *base = mmap(0, dim_1u64(range), PROT_READ|PROT_WRITE, MAP_SHARED, id, range.min); - if(base == MAP_FAILED) - { - base = 0; - } - return base; -} - -internal void -os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range) -{ - if(os_handle_match(handle, os_handle_zero())){return;} - munmap(ptr, dim_1u64(range)); -} - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 -os_now_microseconds(void) -{ - struct timespec t; - clock_gettime(CLOCK_MONOTONIC, &t); - U64 result = t.tv_sec*Million(1) + (t.tv_nsec/Thousand(1)); - return result; -} - -internal U32 -os_now_unix(void) -{ - time_t t = time(0); - return (U32)t; -} - -internal DateTime -os_now_universal_time(void) -{ - time_t t = 0; - time(&t); - struct tm universal_tm = {0}; - gmtime_r(&t, &universal_tm); - DateTime result = os_lnx_date_time_from_tm(universal_tm, 0); - return result; -} - -internal DateTime -os_universal_time_from_local(DateTime *date_time) -{ - // rjf: local DateTime -> universal time_t - tm local_tm = os_lnx_tm_from_date_time(*date_time); - local_tm.tm_isdst = -1; - time_t universal_t = mktime(&local_tm); - - // rjf: universal time_t -> DateTime - tm universal_tm = {0}; - gmtime_r(&universal_t, &universal_tm); - DateTime result = os_lnx_date_time_from_tm(universal_tm, 0); - return result; -} - -internal DateTime -os_local_time_from_universal(DateTime *date_time) -{ - // rjf: universal DateTime -> local time_t - tm universal_tm = os_lnx_tm_from_date_time(*date_time); - universal_tm.tm_isdst = -1; - time_t universal_t = timegm(&universal_tm); - tm local_tm = {0}; - localtime_r(&universal_t, &local_tm); - - // rjf: local tm -> DateTime - DateTime result = os_lnx_date_time_from_tm(local_tm, 0); - return result; -} - -internal void -os_sleep_milliseconds(U32 msec) -{ - usleep(msec*Thousand(1)); -} - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle -os_process_launch(OS_ProcessLaunchParams *params) -{ - NotImplemented; -} - -internal B32 -os_process_join(OS_Handle handle, U64 endt_us) -{ - NotImplemented; -} - -internal void -os_process_detach(OS_Handle handle) -{ - NotImplemented; -} - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal OS_Handle -os_thread_launch(OS_ThreadFunctionType *func, void *ptr, void *params) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_Thread); - entity->thread.func = func; - entity->thread.ptr = ptr; - { - int pthread_result = pthread_create(&entity->thread.handle, 0, os_lnx_thread_entry_point, entity); - if(pthread_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - } - OS_Handle handle = {(U64)entity}; - return handle; -} - -internal B32 -os_thread_join(OS_Handle handle, U64 endt_us) -{ - if(os_handle_match(handle, os_handle_zero())) { return 0; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)handle.u64[0]; - int join_result = pthread_join(entity->thread.handle, 0); - B32 result = (join_result == 0); - os_lnx_entity_release(entity); - return result; -} - -internal void -os_thread_detach(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)handle.u64[0]; - os_lnx_entity_release(entity); -} - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: mutexes - -internal OS_Handle -os_mutex_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_Mutex); - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - int init_result = pthread_mutex_init(&entity->mutex_handle, &attr); - pthread_mutexattr_destroy(&attr); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - OS_Handle handle = {(U64)entity}; - return handle; -} - -internal void -os_mutex_release(OS_Handle mutex) -{ - if(os_handle_match(mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_destroy(&entity->mutex_handle); - os_lnx_entity_release(entity); -} - -internal void -os_mutex_take(OS_Handle mutex) -{ - if(os_handle_match(mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_lock(&entity->mutex_handle); -} - -internal void -os_mutex_drop(OS_Handle mutex) -{ - if(os_handle_match(mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_unlock(&entity->mutex_handle); -} - -//- rjf: reader/writer mutexes - -internal OS_Handle -os_rw_mutex_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_RWMutex); - int init_result = pthread_rwlock_init(&entity->rwmutex_handle, 0); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - OS_Handle handle = {(U64)entity}; - return handle; -} - -internal void -os_rw_mutex_release(OS_Handle rw_mutex) -{ - if(os_handle_match(rw_mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_destroy(&entity->rwmutex_handle); - os_lnx_entity_release(entity); -} - -internal void -os_rw_mutex_take_r(OS_Handle rw_mutex) -{ - if(os_handle_match(rw_mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_rdlock(&entity->rwmutex_handle); -} - -internal void -os_rw_mutex_drop_r(OS_Handle rw_mutex) -{ - if(os_handle_match(rw_mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_unlock(&entity->rwmutex_handle); -} - -internal void -os_rw_mutex_take_w(OS_Handle rw_mutex) -{ - if(os_handle_match(rw_mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_wrlock(&entity->rwmutex_handle); -} - -internal void -os_rw_mutex_drop_w(OS_Handle rw_mutex) -{ - if(os_handle_match(rw_mutex, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_unlock(&entity->rwmutex_handle); -} - -//- rjf: condition variables - -internal OS_Handle -os_condition_variable_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_ConditionVariable); - int init_result = pthread_cond_init(&entity->cv.cond_handle, 0); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - int init2_result = 0; - if(entity) - { - init2_result = pthread_mutex_init(&entity->cv.rwlock_mutex_handle, 0); - } - if(init2_result == -1) - { - pthread_cond_destroy(&entity->cv.cond_handle); - os_lnx_entity_release(entity); - entity = 0; - } - OS_Handle handle = {(U64)entity}; - return handle; -} - -internal void -os_condition_variable_release(OS_Handle cv) -{ - if(os_handle_match(cv, os_handle_zero())) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_destroy(&entity->cv.cond_handle); - pthread_mutex_destroy(&entity->cv.rwlock_mutex_handle); - os_lnx_entity_release(entity); -} - -internal B32 -os_condition_variable_wait(OS_Handle cv, OS_Handle mutex, U64 endt_us) -{ - if(os_handle_match(cv, os_handle_zero())) { return 0; } - if(os_handle_match(mutex, os_handle_zero())) { return 0; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - OS_LNX_Entity *mutex_entity = (OS_LNX_Entity *)mutex.u64[0]; - struct timespec endt_timespec; - endt_timespec.tv_sec = endt_us/Million(1); - endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); - int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &mutex_entity->mutex_handle, &endt_timespec); - B32 result = (wait_result != ETIMEDOUT); - return result; -} - -internal B32 -os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - // TODO(rjf): because pthread does not supply cv/rw natively, I had to hack - // this together, but this would probably just be a lot better if we just - // implemented the primitives ourselves with e.g. futexes - // - if(os_handle_match(cv, os_handle_zero())) { return 0; } - if(os_handle_match(mutex_rw, os_handle_zero())) { return 0; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - OS_LNX_Entity *rw_mutex_entity = (OS_LNX_Entity *)mutex_rw.u64[0]; - struct timespec endt_timespec; - endt_timespec.tv_sec = endt_us/Million(1); - endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); - B32 result = 0; - for(;;) - { - pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); - int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); - if(wait_result != ETIMEDOUT) - { - pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); - result = 1; - break; - } - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); - if(wait_result == ETIMEDOUT) - { - break; - } - } - return result; -} - -internal B32 -os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - // TODO(rjf): because pthread does not supply cv/rw natively, I had to hack - // this together, but this would probably just be a lot better if we just - // implemented the primitives ourselves with e.g. futexes - // - if(os_handle_match(cv, os_handle_zero())) { return 0; } - if(os_handle_match(mutex_rw, os_handle_zero())) { return 0; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - OS_LNX_Entity *rw_mutex_entity = (OS_LNX_Entity *)mutex_rw.u64[0]; - struct timespec endt_timespec; - endt_timespec.tv_sec = endt_us/Million(1); - endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); - B32 result = 0; - for(;;) - { - pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); - int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); - if(wait_result != ETIMEDOUT) - { - pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); - result = 1; - break; - } - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); - if(wait_result == ETIMEDOUT) - { - break; - } - } - return result; -} - -internal void -os_condition_variable_signal(OS_Handle cv) -{ - if(os_handle_match(cv, os_handle_zero())) { return; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_signal(&cv_entity->cv.cond_handle); -} - -internal void -os_condition_variable_broadcast(OS_Handle cv) -{ - if(os_handle_match(cv, os_handle_zero())) { return; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_broadcast(&cv_entity->cv.cond_handle); -} - -//- rjf: cross-process semaphores - -internal OS_Handle -os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name) -{ - OS_Handle result = {0}; - if (name.size > 0) { - // TODO: we need to allocate shared memory to store sem_t - NotImplemented; - } else { - sem_t *s = mmap(0, sizeof(*s), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - AssertAlways(s != MAP_FAILED); - int err = sem_init(s, 0, initial_count); - if (err == 0) { - result.u64[0] = (U64)s; - } - } - return result; -} - -internal void -os_semaphore_release(OS_Handle semaphore) -{ - int err = munmap((void*)semaphore.u64[0], sizeof(sem_t)); - AssertAlways(err == 0); -} - -internal OS_Handle -os_semaphore_open(String8 name) -{ - NotImplemented; -} - -internal void -os_semaphore_close(OS_Handle semaphore) -{ - NotImplemented; -} - -internal B32 -os_semaphore_take(OS_Handle semaphore, U64 endt_us) -{ - AssertAlways(endt_us == max_U64); - for (;;) { - int err = sem_wait((sem_t*)semaphore.u64[0]); - if (err == 0) { - break; - } else { - if (errno == EAGAIN) { - continue; - } - } - InvalidPath; - break; - } - return 1; -} - -internal void -os_semaphore_drop(OS_Handle semaphore) -{ - for (;;) { - int err = sem_post((sem_t*)semaphore.u64[0]); - if (err == 0) { - break; - } else { - if (errno == EAGAIN) { - continue; - } - } - InvalidPath; - break; - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle -os_library_open(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - char *path_cstr = (char *)push_str8_copy(scratch.arena, path).str; - void *so = dlopen(path_cstr, RTLD_LAZY|RTLD_LOCAL); - OS_Handle lib = { (U64)so }; - scratch_end(scratch); - return lib; -} - -internal VoidProc* -os_library_load_proc(OS_Handle lib, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - void *so = (void *)lib.u64; - char *name_cstr = (char *)push_str8_copy(scratch.arena, name).str; - VoidProc *proc = (VoidProc *)dlsym(so, name_cstr); - scratch_end(scratch); - return proc; -} - -internal void -os_library_close(OS_Handle lib) -{ - void *so = (void *)lib.u64; - dlclose(so); -} - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void -os_safe_call(OS_ThreadFunctionType *func, OS_ThreadFunctionType *fail_handler, void *ptr) -{ - // rjf: push handler to chain - OS_LNX_SafeCallChain chain = {0}; - SLLStackPush(os_lnx_safe_call_chain, &chain); - chain.fail_handler = fail_handler; - chain.ptr = ptr; - - // rjf: set up sig handler info - struct sigaction new_act = {0}; - new_act.sa_handler = os_lnx_safe_call_sig_handler; - int signals_to_handle[] = - { - SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, - }; - struct sigaction og_act[ArrayCount(signals_to_handle)] = {0}; - - // rjf: attach handler info for all signals - for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) - { - sigaction(signals_to_handle[i], &new_act, &og_act[i]); - } - - // rjf: call function - func(ptr); - - // rjf: reset handler info for all signals - for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) - { - sigaction(signals_to_handle[i], &og_act[i], 0); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid -os_make_guid(void) -{ - Guid guid = {0}; - getrandom(guid.v, sizeof(guid.v), 0); - guid.data3 &= 0x0fff; - guid.data3 |= (4 << 12); - guid.data4[0] &= 0x3f; - guid.data4[0] |= 0x80; - return guid; -} - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -int -main(int argc, char **argv) -{ - //- rjf: set up OS layer - { - //- rjf: get statically-allocated system/process info - { - OS_SystemInfo *info = &os_lnx_state.system_info; - info->logical_processor_count = (U32)get_nprocs(); - info->page_size = (U64)getpagesize(); - info->large_page_size = MB(2); - info->allocation_granularity = info->page_size; - } - { - OS_ProcessInfo *info = &os_lnx_state.process_info; - info->pid = (U32)getpid(); - } - - //- rjf: set up thread context - local_persist TCTX tctx; - tctx_init_and_equip(&tctx); - - //- rjf: set up dynamically allocated state - os_lnx_state.arena = arena_alloc(); - os_lnx_state.entity_arena = arena_alloc(); - pthread_mutex_init(&os_lnx_state.entity_mutex, 0); - - //- rjf: grab dynamically allocated system info - { - Temp scratch = scratch_begin(0, 0); - OS_SystemInfo *info = &os_lnx_state.system_info; - - // rjf: get machine name - B32 got_final_result = 0; - U8 *buffer = 0; - int size = 0; - for(S64 cap = 4096, r = 0; r < 4; cap *= 2, r += 1) - { - scratch_end(scratch); - buffer = push_array_no_zero(scratch.arena, U8, cap); - size = gethostname((char*)buffer, cap); - if(size < cap) - { - got_final_result = 1; - break; - } - } - - // rjf: save name to info - if(got_final_result && size > 0) - { - info->machine_name.size = size; - info->machine_name.str = push_array_no_zero(os_lnx_state.arena, U8, info->machine_name.size + 1); - MemoryCopy(info->machine_name.str, buffer, info->machine_name.size); - info->machine_name.str[info->machine_name.size] = 0; - } - - scratch_end(scratch); - } - - //- rjf: grab dynamically allocated process info - { - Temp scratch = scratch_begin(0, 0); - OS_ProcessInfo *info = &os_lnx_state.process_info; - - // rjf: grab binary path - { - // rjf: get self string - B32 got_final_result = 0; - U8 *buffer = 0; - int size = 0; - for(S64 cap = PATH_MAX, r = 0; r < 4; cap *= 2, r += 1) - { - scratch_end(scratch); - buffer = push_array_no_zero(scratch.arena, U8, cap); - size = readlink("/proc/self/exe", (char*)buffer, cap); - if(size < cap) - { - got_final_result = 1; - break; - } - } - - // rjf: save - if(got_final_result && size > 0) - { - String8 full_name = str8(buffer, size); - String8 name_chopped = str8_chop_last_slash(full_name); - info->binary_path = push_str8_copy(os_lnx_state.arena, name_chopped); - } - } - - // rjf: grab initial directory - { - info->initial_path = os_get_current_path(os_lnx_state.arena); - } - - // rjf: grab home directory - { - char *home = getenv("HOME"); - info->user_program_data_path = str8_cstring(home); - } - - scratch_end(scratch); - } - } - - //- rjf: call into "real" entry point - main_thread_base_entry_point(argc, argv); -} + diff --git a/src/metagen/metagen_os/core/linux/metagen_os_core_linux.h b/src/metagen/metagen_os/core/linux/metagen_os_core_linux.h index e7d2ba5a..8b137891 100644 --- a/src/metagen/metagen_os/core/linux/metagen_os_core_linux.h +++ b/src/metagen/metagen_os/core/linux/metagen_os_core_linux.h @@ -1,137 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_LINUX_H -#define OS_CORE_LINUX_H - -//////////////////////////////// -//~ rjf: Includes - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -pid_t gettid(void); -int pthread_setname_np(pthread_t thread, const char *name); -int pthread_getname_np(pthread_t thread, char *name, size_t size); - -typedef struct tm tm; -typedef struct timespec timespec; - -//////////////////////////////// -//~ rjf: File Iterator - -typedef struct OS_LNX_FileIter OS_LNX_FileIter; -struct OS_LNX_FileIter -{ - DIR *dir; - struct dirent *dp; - String8 path; -}; -StaticAssert(sizeof(Member(OS_FileIter, memory)) >= sizeof(OS_LNX_FileIter), os_lnx_file_iter_size_check); - -//////////////////////////////// -//~ rjf: Safe Call Handler Chain - -typedef struct OS_LNX_SafeCallChain OS_LNX_SafeCallChain; -struct OS_LNX_SafeCallChain -{ - OS_LNX_SafeCallChain *next; - OS_ThreadFunctionType *fail_handler; - void *ptr; -}; - -//////////////////////////////// -//~ rjf: Entities - -typedef enum OS_LNX_EntityKind -{ - OS_LNX_EntityKind_Thread, - OS_LNX_EntityKind_Mutex, - OS_LNX_EntityKind_RWMutex, - OS_LNX_EntityKind_ConditionVariable, -} -OS_LNX_EntityKind; - -typedef struct OS_LNX_Entity OS_LNX_Entity; -struct OS_LNX_Entity -{ - OS_LNX_Entity *next; - OS_LNX_EntityKind kind; - union - { - struct - { - pthread_t handle; - OS_ThreadFunctionType *func; - void *ptr; - } thread; - pthread_mutex_t mutex_handle; - pthread_rwlock_t rwmutex_handle; - struct - { - pthread_cond_t cond_handle; - pthread_mutex_t rwlock_mutex_handle; - } cv; - }; -}; - -//////////////////////////////// -//~ rjf: State - -typedef struct OS_LNX_State OS_LNX_State; -struct OS_LNX_State -{ - Arena *arena; - OS_SystemInfo system_info; - OS_ProcessInfo process_info; - pthread_mutex_t entity_mutex; - Arena *entity_arena; - OS_LNX_Entity *entity_free; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_LNX_State os_lnx_state = {0}; -thread_static OS_LNX_SafeCallChain *os_lnx_safe_call_chain = 0; - -//////////////////////////////// -//~ rjf: Helpers - -internal DateTime os_lnx_date_time_from_tm(tm in, U32 msec); -internal tm os_lnx_tm_from_date_time(DateTime dt); -internal timespec os_lnx_timespec_from_date_time(DateTime dt); -internal DenseTime os_lnx_dense_time_from_timespec(timespec in); -internal FileProperties os_lnx_file_properties_from_stat(struct stat *s); -internal void os_lnx_safe_call_sig_handler(int x); - -//////////////////////////////// -//~ rjf: Entities - -internal OS_LNX_Entity *os_lnx_entity_alloc(OS_LNX_EntityKind kind); -internal void os_lnx_entity_release(OS_LNX_Entity *entity); - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal void *os_lnx_thread_entry_point(void *ptr); - -#endif // OS_CORE_LINUX_H + diff --git a/src/metagen/metagen_os/core/metagen_os_core.c b/src/metagen/metagen_os/core/metagen_os_core.c deleted file mode 100644 index 21a0a413..00000000 --- a/src/metagen/metagen_os/core/metagen_os_core.c +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Handle Type Functions (Helpers, Implemented Once) - -internal OS_Handle -os_handle_zero(void) -{ - OS_Handle handle = {0}; - return handle; -} - -internal B32 -os_handle_match(OS_Handle a, OS_Handle b) -{ - return a.u64[0] == b.u64[0]; -} - -internal void -os_handle_list_push(Arena *arena, OS_HandleList *handles, OS_Handle handle) -{ - OS_HandleNode *n = push_array(arena, OS_HandleNode, 1); - n->v = handle; - SLLQueuePush(handles->first, handles->last, n); - handles->count += 1; -} - -internal OS_HandleArray -os_handle_array_from_list(Arena *arena, OS_HandleList *list) -{ - OS_HandleArray result = {0}; - result.count = list->count; - result.v = push_array_no_zero(arena, OS_Handle, result.count); - U64 idx = 0; - for(OS_HandleNode *n = list->first; n != 0; n = n->next, idx += 1) - { - result.v[idx] = n->v; - } - return result; -} - -//////////////////////////////// -//~ rjf: Command Line Argc/Argv Helper (Helper, Implemented Once) - -internal String8List -os_string_list_from_argcv(Arena *arena, int argc, char **argv) -{ - String8List result = {0}; - for(int i = 0; i < argc; i += 1) - { - String8 str = str8_cstring(argv[i]); - str8_list_push(arena, &result, str); - } - return result; -} - -//////////////////////////////// -//~ rjf: Filesystem Helpers (Helpers, Implemented Once) - -internal String8 -os_data_from_file_path(Arena *arena, String8 path) -{ - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, path); - FileProperties props = os_properties_from_file(file); - String8 data = os_string_from_file_range(arena, file, r1u64(0, props.size)); - os_file_close(file); - return data; -} - -internal B32 -os_write_data_to_file_path(String8 path, String8 data) -{ - B32 good = 0; - OS_Handle file = os_file_open(OS_AccessFlag_Write, path); - if(!os_handle_match(file, os_handle_zero())) - { - good = 1; - os_file_write(file, r1u64(0, data.size), data.str); - os_file_close(file); - } - return good; -} - -internal B32 -os_write_data_list_to_file_path(String8 path, String8List list) -{ - B32 good = 0; - OS_Handle file = os_file_open(OS_AccessFlag_Write, path); - if(!os_handle_match(file, os_handle_zero())) - { - good = 1; - U64 off = 0; - for(String8Node *n = list.first; n != 0; n = n->next) - { - os_file_write(file, r1u64(off, off+n->string.size), n->string.str); - off += n->string.size; - } - os_file_close(file); - } - return good; -} - -internal B32 -os_append_data_to_file_path(String8 path, String8 data) -{ - B32 good = 0; - if(data.size != 0) - { - OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append, path); - if(!os_handle_match(file, os_handle_zero())) - { - good = 1; - U64 pos = os_properties_from_file(file).size; - os_file_write(file, r1u64(pos, pos+data.size), data.str); - os_file_close(file); - } - } - return good; -} - -internal OS_FileID -os_id_from_file_path(String8 path) -{ - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, path); - OS_FileID id = os_id_from_file(file); - os_file_close(file); - return id; -} - -internal S64 -os_file_id_compare(OS_FileID a, OS_FileID b) -{ - S64 cmp = MemoryCompare((void*)&a.v[0], (void*)&b.v[0], sizeof(a.v)); - return cmp; -} - -internal String8 -os_string_from_file_range(Arena *arena, OS_Handle file, Rng1U64 range) -{ - U64 pre_pos = arena_pos(arena); - String8 result; - result.size = dim_1u64(range); - result.str = push_array_no_zero(arena, U8, result.size); - U64 actual_read_size = os_file_read(file, range, result.str); - if(actual_read_size < result.size) - { - arena_pop_to(arena, pre_pos + actual_read_size); - result.size = actual_read_size; - } - return result; -} - -//////////////////////////////// -//~ rjf: Process Launcher Helpers - -internal OS_Handle -os_cmd_line_launch(String8 string) -{ - Temp scratch = scratch_begin(0, 0); - U8 split_chars[] = {' '}; - String8List parts = str8_split(scratch.arena, string, split_chars, ArrayCount(split_chars), 0); - OS_Handle handle = {0}; - if(parts.node_count != 0) - { - // rjf: unpack exe part - String8 exe = parts.first->string; - String8 exe_folder = str8_chop_last_slash(exe); - if(exe_folder.size == 0) - { - exe_folder = os_get_current_path(scratch.arena); - } - - // rjf: find stdout delimiter - String8Node *stdout_delimiter_n = 0; - for(String8Node *n = parts.first; n != 0; n = n->next) - { - if(str8_match(n->string, str8_lit(">"), 0)) - { - stdout_delimiter_n = n; - break; - } - } - - // rjf: read stdout path - String8 stdout_path = {0}; - if(stdout_delimiter_n && stdout_delimiter_n->next) - { - stdout_path = stdout_delimiter_n->next->string; - } - - // rjf: open stdout handle - OS_Handle stdout_handle = {0}; - if(stdout_path.size != 0) - { - OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Read, stdout_path); - os_file_close(file); - stdout_handle = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, stdout_path); - } - - // rjf: form command line - String8List cmdline = {0}; - for(String8Node *n = parts.first; n != stdout_delimiter_n && n != 0; n = n->next) - { - str8_list_push(scratch.arena, &cmdline, n->string); - } - - // rjf: launch - OS_ProcessLaunchParams params = {0}; - params.cmd_line = cmdline; - params.path = exe_folder; - params.inherit_env = 1; - params.stdout_file = stdout_handle; - handle = os_process_launch(¶ms); - - // rjf: close stdout handle - { - if(stdout_path.size != 0) - { - os_file_close(stdout_handle); - } - } - } - scratch_end(scratch); - return handle; -} - -internal OS_Handle -os_cmd_line_launchf(char *fmt, ...) -{ - Temp scratch = scratch_begin(0, 0); - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(scratch.arena, fmt, args); - OS_Handle result = os_cmd_line_launch(string); - va_end(args); - scratch_end(scratch); - return result; -} - diff --git a/src/metagen/metagen_os/core/metagen_os_core.h b/src/metagen/metagen_os/core/metagen_os_core.h index e3a02048..8b137891 100644 --- a/src/metagen/metagen_os/core/metagen_os_core.h +++ b/src/metagen/metagen_os/core/metagen_os_core.h @@ -1,335 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_H -#define OS_CORE_H - -//////////////////////////////// -//~ rjf: System Info - -typedef struct OS_SystemInfo OS_SystemInfo; -struct OS_SystemInfo -{ - U32 logical_processor_count; - U64 page_size; - U64 large_page_size; - U64 allocation_granularity; - String8 machine_name; -}; - -//////////////////////////////// -//~ rjf: Process Info - -typedef struct OS_ProcessInfo OS_ProcessInfo; -struct OS_ProcessInfo -{ - U32 pid; - B32 large_pages_allowed; - String8 binary_path; - String8 initial_path; - String8 user_program_data_path; - String8List module_load_paths; - String8List environment; -}; - -//////////////////////////////// -//~ rjf: Access Flags - -typedef U32 OS_AccessFlags; -enum -{ - OS_AccessFlag_Read = (1<<0), - OS_AccessFlag_Write = (1<<1), - OS_AccessFlag_Execute = (1<<2), - OS_AccessFlag_Append = (1<<3), - OS_AccessFlag_ShareRead = (1<<4), - OS_AccessFlag_ShareWrite = (1<<5), - OS_AccessFlag_Inherited = (1<<6), -}; - -//////////////////////////////// -//~ rjf: Files - -typedef U32 OS_FileIterFlags; -enum -{ - OS_FileIterFlag_SkipFolders = (1 << 0), - OS_FileIterFlag_SkipFiles = (1 << 1), - OS_FileIterFlag_SkipHiddenFiles = (1 << 2), - OS_FileIterFlag_Done = (1 << 31), -}; - -typedef struct OS_FileIter OS_FileIter; -struct OS_FileIter -{ - OS_FileIterFlags flags; - U8 memory[800]; -}; - -typedef struct OS_FileInfo OS_FileInfo; -struct OS_FileInfo -{ - String8 name; - FileProperties props; -}; - -// nick: on-disk file identifier -typedef struct OS_FileID OS_FileID; -struct OS_FileID -{ - U64 v[3]; -}; - -//////////////////////////////// -//~ rjf: Handle Type - -typedef struct OS_Handle OS_Handle; -struct OS_Handle -{ - U64 u64[1]; -}; - -typedef struct OS_HandleNode OS_HandleNode; -struct OS_HandleNode -{ - OS_HandleNode *next; - OS_Handle v; -}; - -typedef struct OS_HandleList OS_HandleList; -struct OS_HandleList -{ - OS_HandleNode *first; - OS_HandleNode *last; - U64 count; -}; - -typedef struct OS_HandleArray OS_HandleArray; -struct OS_HandleArray -{ - OS_Handle *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Process Launch Parameters - -typedef struct OS_ProcessLaunchParams OS_ProcessLaunchParams; -struct OS_ProcessLaunchParams -{ - String8List cmd_line; - String8 path; - String8List env; - B32 inherit_env; - B32 debug_subprocesses; - B32 consoleless; - OS_Handle stdout_file; - OS_Handle stderr_file; - OS_Handle stdin_file; -}; - -//////////////////////////////// -//~ rjf: Thread Types - -typedef void OS_ThreadFunctionType(void *ptr); - -//////////////////////////////// -//~ rjf: Handle Type Functions (Helpers, Implemented Once) - -internal OS_Handle os_handle_zero(void); -internal B32 os_handle_match(OS_Handle a, OS_Handle b); -internal void os_handle_list_push(Arena *arena, OS_HandleList *handles, OS_Handle handle); -internal OS_HandleArray os_handle_array_from_list(Arena *arena, OS_HandleList *list); - -//////////////////////////////// -//~ rjf: Command Line Argc/Argv Helper (Helper, Implemented Once) - -internal String8List os_string_list_from_argcv(Arena *arena, int argc, char **argv); - -//////////////////////////////// -//~ rjf: Filesystem Helpers (Helpers, Implemented Once) - -internal String8 os_data_from_file_path(Arena *arena, String8 path); -internal B32 os_write_data_to_file_path(String8 path, String8 data); -internal B32 os_write_data_list_to_file_path(String8 path, String8List list); -internal B32 os_append_data_to_file_path(String8 path, String8 data); -internal OS_FileID os_id_from_file_path(String8 path); -internal S64 os_file_id_compare(OS_FileID a, OS_FileID b); -internal String8 os_string_from_file_range(Arena *arena, OS_Handle file, Rng1U64 range); - -//////////////////////////////// -//~ rjf: Process Launcher Helpers - -internal OS_Handle os_cmd_line_launch(String8 string); -internal OS_Handle os_cmd_line_launchf(char *fmt, ...); - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo *os_get_system_info(void); -internal OS_ProcessInfo *os_get_process_info(void); -internal String8 os_get_current_path(Arena *arena); -internal U32 os_get_process_start_time_unix(void); - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic -internal void *os_reserve(U64 size); -internal B32 os_commit(void *ptr, U64 size); -internal void os_decommit(void *ptr, U64 size); -internal void os_release(void *ptr, U64 size); - -//- rjf: large pages -internal void *os_reserve_large(U64 size); -internal B32 os_commit_large(void *ptr, U64 size); - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 os_tid(void); -internal void os_set_thread_name(String8 string); - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void os_abort(S32 exit_code); - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files -internal OS_Handle os_file_open(OS_AccessFlags flags, String8 path); -internal void os_file_close(OS_Handle file); -internal U64 os_file_read(OS_Handle file, Rng1U64 rng, void *out_data); -#define os_file_read_struct(f, off, ptr) os_file_read((f), r1u64((off), (off)+sizeof(*(ptr))), (ptr)) -internal U64 os_file_write(OS_Handle file, Rng1U64 rng, void *data); -internal B32 os_file_set_times(OS_Handle file, DateTime time); -internal FileProperties os_properties_from_file(OS_Handle file); -internal OS_FileID os_id_from_file(OS_Handle file); -internal B32 os_file_reserve_size(OS_Handle file, U64 size); -internal B32 os_delete_file_at_path(String8 path); -internal B32 os_copy_file_path(String8 dst, String8 src); -internal B32 os_move_file_path(String8 dst, String8 src); -internal String8 os_full_path_from_path(Arena *arena, String8 path); -internal B32 os_file_path_exists(String8 path); -internal B32 os_folder_path_exists(String8 path); -internal FileProperties os_properties_from_file_path(String8 path); - -//- rjf: file maps -internal OS_Handle os_file_map_open(OS_AccessFlags flags, OS_Handle file); -internal void os_file_map_close(OS_Handle map); -internal void * os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range); -internal void os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range); - -//- rjf: directory iteration -internal OS_FileIter *os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags); -internal B32 os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out); -internal void os_file_iter_end(OS_FileIter *iter); - -//- rjf: directory creation -internal B32 os_make_directory(String8 path); - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle os_shared_memory_alloc(U64 size, String8 name); -internal OS_Handle os_shared_memory_open(String8 name); -internal void os_shared_memory_close(OS_Handle handle); -internal void * os_shared_memory_view_open(OS_Handle handle, Rng1U64 range); -internal void os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range); - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 os_now_microseconds(void); -internal U32 os_now_unix(void); -internal DateTime os_now_universal_time(void); -internal DateTime os_universal_time_from_local(DateTime *local_time); -internal DateTime os_local_time_from_universal(DateTime *universal_time); -internal void os_sleep_milliseconds(U32 msec); - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle os_process_launch(OS_ProcessLaunchParams *params); -internal B32 os_process_join(OS_Handle handle, U64 endt_us); -internal void os_process_detach(OS_Handle handle); - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal OS_Handle os_thread_launch(OS_ThreadFunctionType *func, void *ptr, void *params); -internal B32 os_thread_join(OS_Handle handle, U64 endt_us); -internal void os_thread_detach(OS_Handle handle); - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: recursive mutexes -internal OS_Handle os_mutex_alloc(void); -internal void os_mutex_release(OS_Handle mutex); -internal void os_mutex_take(OS_Handle mutex); -internal void os_mutex_drop(OS_Handle mutex); - -//- rjf: reader/writer mutexes -internal OS_Handle os_rw_mutex_alloc(void); -internal void os_rw_mutex_release(OS_Handle rw_mutex); -internal void os_rw_mutex_take_r(OS_Handle mutex); -internal void os_rw_mutex_drop_r(OS_Handle mutex); -internal void os_rw_mutex_take_w(OS_Handle mutex); -internal void os_rw_mutex_drop_w(OS_Handle mutex); - -//- rjf: condition variables -internal OS_Handle os_condition_variable_alloc(void); -internal void os_condition_variable_release(OS_Handle cv); -// returns false on timeout, true on signal, (max_wait_ms = max_U64) -> no timeout -internal B32 os_condition_variable_wait(OS_Handle cv, OS_Handle mutex, U64 endt_us); -internal B32 os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us); -internal B32 os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us); -internal void os_condition_variable_signal(OS_Handle cv); -internal void os_condition_variable_broadcast(OS_Handle cv); - -//- rjf: cross-process semaphores -internal OS_Handle os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name); -internal void os_semaphore_release(OS_Handle semaphore); -internal OS_Handle os_semaphore_open(String8 name); -internal void os_semaphore_close(OS_Handle semaphore); -internal B32 os_semaphore_take(OS_Handle semaphore, U64 endt_us); -internal void os_semaphore_drop(OS_Handle semaphore); - -//- rjf: scope macros -#define OS_MutexScope(mutex) DeferLoop(os_mutex_take(mutex), os_mutex_drop(mutex)) -#define OS_MutexScopeR(mutex) DeferLoop(os_rw_mutex_take_r(mutex), os_rw_mutex_drop_r(mutex)) -#define OS_MutexScopeW(mutex) DeferLoop(os_rw_mutex_take_w(mutex), os_rw_mutex_drop_w(mutex)) -#define OS_MutexScopeRWPromote(mutex) DeferLoop((os_rw_mutex_drop_r(mutex), os_rw_mutex_take_w(mutex)), (os_rw_mutex_drop_w(mutex), os_rw_mutex_take_r(mutex))) - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle os_library_open(String8 path); -internal void os_library_close(OS_Handle lib); -internal VoidProc *os_library_load_proc(OS_Handle lib, String8 name); - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void os_safe_call(OS_ThreadFunctionType *func, OS_ThreadFunctionType *fail_handler, void *ptr); - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid os_make_guid(void); - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -// NOTE(rjf): The implementation of `os_core` will define low-level entry -// points if BUILD_ENTRY_DEFINING_UNIT is defined to 1. These will call -// into the standard codebase program entry points, named "entry_point". - -#if BUILD_ENTRY_DEFINING_UNIT -internal void entry_point(CmdLine *cmdline); -#endif - -#endif // OS_CORE_H + diff --git a/src/metagen/metagen_os/core/win32/metagen_os_core_win32.c b/src/metagen/metagen_os/core/win32/metagen_os_core_win32.c index 6cc494f0..8b137891 100644 --- a/src/metagen/metagen_os/core/win32/metagen_os_core_win32.c +++ b/src/metagen/metagen_os/core/win32/metagen_os_core_win32.c @@ -1,1785 +1 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Modern Windows SDK Functions -// -// (We must dynamically link to them, since they can be missing in older SDKs) - -typedef HRESULT W32_SetThreadDescription_Type(HANDLE hThread, PCWSTR lpThreadDescription); -global W32_SetThreadDescription_Type *w32_SetThreadDescription_func = 0; - -//////////////////////////////// -//~ rjf: File Info Conversion Helpers - -internal FilePropertyFlags -os_w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes) -{ - FilePropertyFlags flags = 0; - if(dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - flags |= FilePropertyFlag_IsFolder; - } - return flags; -} - -internal void -os_w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes) -{ - properties->size = Compose64Bit(attributes->nFileSizeHigh, attributes->nFileSizeLow); - os_w32_dense_time_from_file_time(&properties->created, &attributes->ftCreationTime); - os_w32_dense_time_from_file_time(&properties->modified, &attributes->ftLastWriteTime); - properties->flags = os_w32_file_property_flags_from_dwFileAttributes(attributes->dwFileAttributes); -} - -//////////////////////////////// -//~ rjf: Time Conversion Helpers - -internal void -os_w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in) -{ - out->year = in->wYear; - out->mon = in->wMonth - 1; - out->wday = in->wDayOfWeek; - out->day = in->wDay; - out->hour = in->wHour; - out->min = in->wMinute; - out->sec = in->wSecond; - out->msec = in->wMilliseconds; -} - -internal void -os_w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in) -{ - out->wYear = (WORD)(in->year); - out->wMonth = in->mon + 1; - out->wDay = in->day; - out->wHour = in->hour; - out->wMinute = in->min; - out->wSecond = in->sec; - out->wMilliseconds = in->msec; -} - -internal void -os_w32_dense_time_from_file_time(DenseTime *out, FILETIME *in) -{ - SYSTEMTIME systime = {0}; - FileTimeToSystemTime(in, &systime); - DateTime date_time = {0}; - os_w32_date_time_from_system_time(&date_time, &systime); - *out = dense_time_from_date_time(date_time); -} - -internal U32 -os_w32_sleep_ms_from_endt_us(U64 endt_us) -{ - U32 sleep_ms = 0; - if(endt_us == max_U64) - { - sleep_ms = INFINITE; - } - else - { - U64 begint = os_now_microseconds(); - if(begint < endt_us) - { - U64 sleep_us = endt_us - begint; - sleep_ms = (U32)((sleep_us + 999)/1000); - } - } - return sleep_ms; -} - -internal U32 -os_w32_unix_time_from_file_time(FILETIME file_time) -{ - U64 win32_time = ((U64)file_time.dwHighDateTime << 32) | file_time.dwLowDateTime; - U64 unix_time64 = ((win32_time - 0x19DB1DED53E8000ULL) / 10000000); - - Assert(unix_time64 <= max_U32); - U32 unix_time32 = (U32)unix_time64; - - return unix_time32; -} - -//////////////////////////////// -//~ rjf: Entity Functions - -internal OS_W32_Entity * -os_w32_entity_alloc(OS_W32_EntityKind kind) -{ - OS_W32_Entity *result = 0; - EnterCriticalSection(&os_w32_state.entity_mutex); - { - result = os_w32_state.entity_free; - if(result) - { - SLLStackPop(os_w32_state.entity_free); - } - else - { - result = push_array_no_zero(os_w32_state.entity_arena, OS_W32_Entity, 1); - } - MemoryZeroStruct(result); - } - LeaveCriticalSection(&os_w32_state.entity_mutex); - result->kind = kind; - return result; -} - -internal void -os_w32_entity_release(OS_W32_Entity *entity) -{ - entity->kind = OS_W32_EntityKind_Null; - EnterCriticalSection(&os_w32_state.entity_mutex); - SLLStackPush(os_w32_state.entity_free, entity); - LeaveCriticalSection(&os_w32_state.entity_mutex); -} - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal DWORD -os_w32_thread_entry_point(void *ptr) -{ - OS_W32_Entity *entity = (OS_W32_Entity *)ptr; - OS_ThreadFunctionType *func = entity->thread.func; - void *thread_ptr = entity->thread.ptr; - TCTX tctx_; - tctx_init_and_equip(&tctx_); - func(thread_ptr); - tctx_release(); - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo * -os_get_system_info(void) -{ - return &os_w32_state.system_info; -} - -internal OS_ProcessInfo * -os_get_process_info(void) -{ - return &os_w32_state.process_info; -} - -internal String8 -os_get_current_path(Arena *arena) -{ - Temp scratch = scratch_begin(&arena, 1); - DWORD length = GetCurrentDirectoryW(0, 0); - U16 *memory = push_array_no_zero(scratch.arena, U16, length + 1); - length = GetCurrentDirectoryW(length + 1, (WCHAR*)memory); - String8 name = str8_from_16(arena, str16(memory, length)); - scratch_end(scratch); - return name; -} - -internal U32 -os_get_process_start_time_unix(void) -{ - HANDLE handle = GetCurrentProcess(); - FILETIME start_time = {0}; - FILETIME exit_time; - FILETIME kernel_time; - FILETIME user_time; - if(GetProcessTimes(handle, &start_time, &exit_time, &kernel_time, &user_time)) - { - return os_w32_unix_time_from_file_time(start_time); - } - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic - -internal void * -os_reserve(U64 size) -{ - void *result = VirtualAlloc(0, size, MEM_RESERVE, PAGE_READWRITE); - return result; -} - -internal B32 -os_commit(void *ptr, U64 size) -{ - B32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); - return result; -} - -internal void -os_decommit(void *ptr, U64 size) -{ - VirtualFree(ptr, size, MEM_DECOMMIT); -} - -internal void -os_release(void *ptr, U64 size) -{ - // NOTE(rjf): size not used - not necessary on Windows, but necessary for other OSes. - VirtualFree(ptr, 0, MEM_RELEASE); -} - -//- rjf: large pages - -internal void * -os_reserve_large(U64 size) -{ - // we commit on reserve because windows - void *result = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_LARGE_PAGES, PAGE_READWRITE); - return result; -} - -internal B32 -os_commit_large(void *ptr, U64 size) -{ - return 1; -} - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 -os_tid(void) -{ - DWORD id = GetCurrentThreadId(); - return (U32)id; -} - -internal void -os_set_thread_name(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - - // rjf: windows 10 style - if(w32_SetThreadDescription_func) - { - String16 name16 = str16_from_8(scratch.arena, name); - HRESULT hr = w32_SetThreadDescription_func(GetCurrentThread(), (WCHAR*)name16.str); - } - - // rjf: raise-exception style - { - String8 name_copy = push_str8_copy(scratch.arena, name); -#pragma pack(push,8) - typedef struct THREADNAME_INFO THREADNAME_INFO; - struct THREADNAME_INFO - { - U32 dwType; // Must be 0x1000. - char *szName; // Pointer to name (in user addr space). - U32 dwThreadID; // Thread ID (-1=caller thread). - U32 dwFlags; // Reserved for future use, must be zero. - }; -#pragma pack(pop) - THREADNAME_INFO info; - info.dwType = 0x1000; - info.szName = (char *)name_copy.str; - info.dwThreadID = os_tid(); - info.dwFlags = 0; -#pragma warning(push) -#pragma warning(disable: 6320 6322) - __try - { - RaiseException(0x406D1388, 0, sizeof(info) / sizeof(void *), (const ULONG_PTR *)&info); - } - __except (EXCEPTION_EXECUTE_HANDLER) - { - } -#pragma warning(pop) - } - - scratch_end(scratch); -} - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void -os_abort(S32 exit_code) -{ - ExitProcess(exit_code); -} - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files - -internal OS_Handle -os_file_open(OS_AccessFlags flags, String8 path) -{ - OS_Handle result = {0}; - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD access_flags = 0; - DWORD share_mode = 0; - DWORD creation_disposition = OPEN_EXISTING; - SECURITY_ATTRIBUTES security_attributes = {sizeof(security_attributes), 0, 0}; - if(flags & OS_AccessFlag_Read) {access_flags |= GENERIC_READ;} - if(flags & OS_AccessFlag_Write) {access_flags |= GENERIC_WRITE;} - if(flags & OS_AccessFlag_Execute) {access_flags |= GENERIC_EXECUTE;} - if(flags & OS_AccessFlag_ShareRead) {share_mode |= FILE_SHARE_READ;} - if(flags & OS_AccessFlag_ShareWrite) {share_mode |= FILE_SHARE_WRITE|FILE_SHARE_DELETE;} - if(flags & OS_AccessFlag_Write) {creation_disposition = CREATE_ALWAYS;} - if(flags & OS_AccessFlag_Append) {creation_disposition = OPEN_ALWAYS; access_flags |= FILE_APPEND_DATA; } - if(flags & OS_AccessFlag_Inherited) - { - security_attributes.bInheritHandle = 1; - } - HANDLE file = CreateFileW((WCHAR *)path16.str, access_flags, share_mode, &security_attributes, creation_disposition, FILE_ATTRIBUTE_NORMAL, 0); - if(file != INVALID_HANDLE_VALUE) - { - result.u64[0] = (U64)file; - } - scratch_end(scratch); - return result; -} - -internal void -os_file_close(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return; } - HANDLE handle = (HANDLE)file.u64[0]; - BOOL result = CloseHandle(handle); - (void)result; -} - -internal U64 -os_file_read(OS_Handle file, Rng1U64 rng, void *out_data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - HANDLE handle = (HANDLE)file.u64[0]; - - // rjf: clamp range by file size - U64 size = 0; - GetFileSizeEx(handle, (LARGE_INTEGER *)&size); - Rng1U64 rng_clamped = r1u64(ClampTop(rng.min, size), ClampTop(rng.max, size)); - U64 total_read_size = 0; - - // rjf: read loop - { - U64 to_read = dim_1u64(rng_clamped); - for(U64 off = rng.min; total_read_size < to_read;) - { - U64 amt64 = to_read - total_read_size; - U32 amt32 = u32_from_u64_saturate(amt64); - DWORD read_size = 0; - OVERLAPPED overlapped = {0}; - overlapped.Offset = (off&0x00000000ffffffffull); - overlapped.OffsetHigh = (off&0xffffffff00000000ull) >> 32; - ReadFile(handle, (U8 *)out_data + total_read_size, amt32, &read_size, &overlapped); - off += read_size; - total_read_size += read_size; - if(read_size != amt32) - { - break; - } - } - } - - return total_read_size; -} - -internal U64 -os_file_write(OS_Handle file, Rng1U64 rng, void *data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - HANDLE win_handle = (HANDLE)file.u64[0]; - U64 src_off = 0; - U64 dst_off = rng.min; - U64 total_write_size = dim_1u64(rng); - for(;;) - { - void *bytes_src = (U8 *)data + src_off; - U64 bytes_left = total_write_size - src_off; - DWORD write_size = Min(MB(1), bytes_left); - DWORD bytes_written = 0; - OVERLAPPED overlapped = {0}; - overlapped.Offset = (dst_off&0x00000000ffffffffull); - overlapped.OffsetHigh = (dst_off&0xffffffff00000000ull) >> 32; - BOOL success = WriteFile(win_handle, bytes_src, write_size, &bytes_written, &overlapped); - if(success == 0) - { - break; - } - src_off += bytes_written; - dst_off += bytes_written; - if(bytes_left == 0) - { - break; - } - } - return src_off; -} - -internal B32 -os_file_set_time(OS_Handle file, DateTime time) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - B32 result = 0; - HANDLE handle = (HANDLE)file.u64[0]; - SYSTEMTIME system_time = {0}; - os_w32_system_time_from_date_time(&system_time, &time); - FILETIME file_time = {0}; - result = (SystemTimeToFileTime(&system_time, &file_time) && - SetFileTime(handle, &file_time, &file_time, &file_time)); - return result; -} - -internal FileProperties -os_properties_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { FileProperties r = {0}; return r; } - FileProperties props = {0}; - HANDLE handle = (HANDLE)file.u64[0]; - BY_HANDLE_FILE_INFORMATION info; - BOOL info_good = GetFileInformationByHandle(handle, &info); - if(info_good) - { - U32 size_lo = info.nFileSizeLow; - U32 size_hi = info.nFileSizeHigh; - props.size = (U64)size_lo | (((U64)size_hi)<<32); - os_w32_dense_time_from_file_time(&props.modified, &info.ftLastWriteTime); - os_w32_dense_time_from_file_time(&props.created, &info.ftCreationTime); - props.flags = os_w32_file_property_flags_from_dwFileAttributes(info.dwFileAttributes); - } - return props; -} - -internal OS_FileID -os_id_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { OS_FileID r = {0}; return r; } - OS_FileID result = {0}; - HANDLE handle = (HANDLE)file.u64[0]; - BY_HANDLE_FILE_INFORMATION info; - BOOL is_ok = GetFileInformationByHandle(handle, &info); - if(is_ok) - { - result.v[0] = info.dwVolumeSerialNumber; - result.v[1] = info.nFileIndexLow; - result.v[2] = info.nFileIndexHigh; - } - return result; -} - -internal B32 -os_file_reserve_size(OS_Handle file, U64 size) -{ - HANDLE handle = (HANDLE)file.u64[0]; - - FILE_ALLOCATION_INFO alloc_info = {0}; - alloc_info.AllocationSize.LowPart = size & max_U32; - alloc_info.AllocationSize.HighPart = (size >> 32) & max_U32; - - BOOL is_reserved = SetFileInformationByHandle(handle, FileAllocationInfo, &alloc_info, sizeof(alloc_info)); - return is_reserved; -} - -internal B32 -os_delete_file_at_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - B32 result = DeleteFileW((WCHAR*)path16.str); - scratch_end(scratch); - return result; -} - -internal B32 -os_copy_file_path(String8 dst, String8 src) -{ - Temp scratch = scratch_begin(0, 0); - String16 dst16 = str16_from_8(scratch.arena, dst); - String16 src16 = str16_from_8(scratch.arena, src); - B32 result = CopyFileW((WCHAR*)src16.str, (WCHAR*)dst16.str, 0); - scratch_end(scratch); - return result; -} - -internal B32 -os_move_file_path(String8 dst, String8 src) -{ - Temp scratch = scratch_begin(0, 0); - String16 dst16 = str16_from_8(scratch.arena, dst); - String16 src16 = str16_from_8(scratch.arena, src); - B32 result = MoveFileW((WCHAR*)src16.str, (WCHAR*)dst16.str); - scratch_end(scratch); - return result; -} - -internal String8 -os_full_path_from_path(Arena *arena, String8 path) -{ - Temp scratch = scratch_begin(&arena, 1); - DWORD buffer_size = Max(MAX_PATH, path.size * 2) + 1; - String16 path16 = str16_from_8(scratch.arena, path); - WCHAR *buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); - DWORD path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); - if(path16_size > buffer_size) - { - arena_pop(scratch.arena, buffer_size); - buffer_size = path16_size + 1; - buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); - path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); - } - String8 full_path = str8_from_16(arena, str16((U16*)buffer, path16_size)); - scratch_end(scratch); - return full_path; -} - -internal B32 -os_file_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0,0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); - B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && !!(~attributes & FILE_ATTRIBUTE_DIRECTORY); - scratch_end(scratch); - return exists; -} - -internal B32 -os_folder_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0,0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); - B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && (attributes & FILE_ATTRIBUTE_DIRECTORY); - scratch_end(scratch); - return exists; -} - -internal FileProperties -os_properties_from_file_path(String8 path) -{ - WIN32_FIND_DATAW find_data = {0}; - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - HANDLE handle = FindFirstFileW((WCHAR *)path16.str, &find_data); - FileProperties props = {0}; - if(handle != INVALID_HANDLE_VALUE) - { - props.size = Compose64Bit(find_data.nFileSizeHigh, find_data.nFileSizeLow); - os_w32_dense_time_from_file_time(&props.created, &find_data.ftCreationTime); - os_w32_dense_time_from_file_time(&props.modified, &find_data.ftLastWriteTime); - props.flags = os_w32_file_property_flags_from_dwFileAttributes(find_data.dwFileAttributes); - } - else - { - Temp scratch = scratch_begin(0, 0); - WCHAR buffer[512] = {0}; - DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); - U64 last_slash_pos = 0; - for(;last_slash_pos < path.size; last_slash_pos = str8_find_needle(path, last_slash_pos+1, str8_lit("/"), StringMatchFlag_SlashInsensitive)); - String8 path_trimmed = str8_prefix(path, last_slash_pos); - for(U64 off = 0; off < (U64)length;) - { - String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); - off += next_drive_string_16.size+1; - String8 next_drive_string = str8_from_16(scratch.arena, next_drive_string_16); - next_drive_string = str8_chop_last_slash(next_drive_string); - if(str8_match(path_trimmed, next_drive_string, StringMatchFlag_CaseInsensitive)) - { - props.flags |= FilePropertyFlag_IsFolder; - break; - } - } - scratch_end(scratch); - } - FindClose(handle); - scratch_end(scratch); - return props; -} - -//- rjf: file maps - -internal OS_Handle -os_file_map_open(OS_AccessFlags flags, OS_Handle file) -{ - OS_Handle map = {0}; - { - HANDLE file_handle = (HANDLE)file.u64[0]; - DWORD protect_flags = 0; - { - switch(flags) - { - default:{}break; - case OS_AccessFlag_Read: - {protect_flags = PAGE_READONLY;}break; - case OS_AccessFlag_Write: - case OS_AccessFlag_Read|OS_AccessFlag_Write: - {protect_flags = PAGE_READWRITE;}break; - case OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Execute: - {protect_flags = PAGE_EXECUTE_READ;}break; - case OS_AccessFlag_Execute|OS_AccessFlag_Write|OS_AccessFlag_Read: - case OS_AccessFlag_Execute|OS_AccessFlag_Write: - {protect_flags = PAGE_EXECUTE_READWRITE;}break; - } - } - HANDLE map_handle = CreateFileMappingA(file_handle, 0, protect_flags, 0, 0, 0); - map.u64[0] = (U64)map_handle; - } - return map; -} - -internal void -os_file_map_close(OS_Handle map) -{ - HANDLE handle = (HANDLE)map.u64[0]; - BOOL result = CloseHandle(handle); - (void)result; -} - -internal void * -os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range) -{ - HANDLE handle = (HANDLE)map.u64[0]; - U32 off_lo = (U32)((range.min&0x00000000ffffffffull)>>0); - U32 off_hi = (U32)((range.min&0xffffffff00000000ull)>>32); - U64 size = dim_1u64(range); - DWORD access_flags = 0; - { - switch(flags) - { - default:{}break; - case OS_AccessFlag_Read: - { - access_flags = FILE_MAP_READ; - }break; - case OS_AccessFlag_Write: - { - access_flags = FILE_MAP_WRITE; - }break; - case OS_AccessFlag_Read|OS_AccessFlag_Write: - { - access_flags = FILE_MAP_ALL_ACCESS; - }break; - case OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Execute: - case OS_AccessFlag_Write|OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Write|OS_AccessFlag_Execute: - { - access_flags = FILE_MAP_ALL_ACCESS|FILE_MAP_EXECUTE; - }break; - } - } - void *result = MapViewOfFile(handle, access_flags, off_hi, off_lo, size); - return result; -} - -internal void -os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range) -{ - BOOL result = UnmapViewOfFile(ptr); - (void)result; -} - -//- rjf: directory iteration - -internal OS_FileIter * -os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 path_with_wildcard = push_str8_cat(scratch.arena, path, str8_lit("\\*")); - String16 path16 = str16_from_8(scratch.arena, path_with_wildcard); - OS_FileIter *iter = push_array(arena, OS_FileIter, 1); - iter->flags = flags; - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - if(path.size == 0) - { - w32_iter->is_volume_iter = 1; - WCHAR buffer[512] = {0}; - DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); - String8List drive_strings = {0}; - for(U64 off = 0; off < (U64)length;) - { - String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); - off += next_drive_string_16.size+1; - String8 next_drive_string = str8_from_16(arena, next_drive_string_16); - next_drive_string = str8_chop_last_slash(next_drive_string); - str8_list_push(scratch.arena, &drive_strings, next_drive_string); - } - w32_iter->drive_strings = str8_array_from_list(arena, &drive_strings); - w32_iter->drive_strings_iter_idx = 0; - } - else - { - w32_iter->handle = FindFirstFileW((WCHAR*)path16.str, &w32_iter->find_data); - } - scratch_end(scratch); - return iter; -} - -internal B32 -os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out) -{ - B32 result = 0; - OS_FileIterFlags flags = iter->flags; - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - switch(w32_iter->is_volume_iter) - { - //- rjf: file iteration - default: - case 0: - { - if (!(flags & OS_FileIterFlag_Done) && w32_iter->handle != INVALID_HANDLE_VALUE) - { - do - { - // check is usable - B32 usable_file = 1; - - WCHAR *file_name = w32_iter->find_data.cFileName; - DWORD attributes = w32_iter->find_data.dwFileAttributes; - if (file_name[0] == '.'){ - if (flags & OS_FileIterFlag_SkipHiddenFiles){ - usable_file = 0; - } - else if (file_name[1] == 0){ - usable_file = 0; - } - else if (file_name[1] == '.' && file_name[2] == 0){ - usable_file = 0; - } - } - if (attributes & FILE_ATTRIBUTE_DIRECTORY){ - if (flags & OS_FileIterFlag_SkipFolders){ - usable_file = 0; - } - } - else{ - if (flags & OS_FileIterFlag_SkipFiles){ - usable_file = 0; - } - } - - // emit if usable - if (usable_file){ - info_out->name = str8_from_16(arena, str16_cstring((U16*)file_name)); - info_out->props.size = (U64)w32_iter->find_data.nFileSizeLow | (((U64)w32_iter->find_data.nFileSizeHigh)<<32); - os_w32_dense_time_from_file_time(&info_out->props.created, &w32_iter->find_data.ftCreationTime); - os_w32_dense_time_from_file_time(&info_out->props.modified, &w32_iter->find_data.ftLastWriteTime); - info_out->props.flags = os_w32_file_property_flags_from_dwFileAttributes(attributes); - result = 1; - if (!FindNextFileW(w32_iter->handle, &w32_iter->find_data)){ - iter->flags |= OS_FileIterFlag_Done; - } - break; - } - }while(FindNextFileW(w32_iter->handle, &w32_iter->find_data)); - } - }break; - - //- rjf: volume iteration - case 1: - { - result = w32_iter->drive_strings_iter_idx < w32_iter->drive_strings.count; - if(result != 0) - { - MemoryZeroStruct(info_out); - info_out->name = w32_iter->drive_strings.v[w32_iter->drive_strings_iter_idx]; - info_out->props.flags |= FilePropertyFlag_IsFolder; - w32_iter->drive_strings_iter_idx += 1; - } - }break; - } - if(!result) - { - iter->flags |= OS_FileIterFlag_Done; - } - return result; -} - -internal void -os_file_iter_end(OS_FileIter *iter) -{ - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - HANDLE zero_handle; - MemoryZeroStruct(&zero_handle); - if(!MemoryMatchStruct(&zero_handle, &w32_iter->handle)) - { - FindClose(w32_iter->handle); - } -} - -//- rjf: directory creation - -internal B32 -os_make_directory(String8 path) -{ - B32 result = 0; - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, path); - WIN32_FILE_ATTRIBUTE_DATA attributes = {0}; - GetFileAttributesExW((WCHAR*)name16.str, GetFileExInfoStandard, &attributes); - if(attributes.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - result = 1; - } - else if(CreateDirectoryW((WCHAR*)name16.str, 0)) - { - result = 1; - } - scratch_end(scratch); - return(result); -} - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle -os_shared_memory_alloc(U64 size, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE file = CreateFileMappingW(INVALID_HANDLE_VALUE, - 0, - PAGE_READWRITE, - (U32)((size & 0xffffffff00000000) >> 32), - (U32)((size & 0x00000000ffffffff)), - (WCHAR *)name16.str); - OS_Handle result = {(U64)file}; - scratch_end(scratch); - return result; -} - -internal OS_Handle -os_shared_memory_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE file = OpenFileMappingW(FILE_MAP_ALL_ACCESS, 0, (WCHAR *)name16.str); - OS_Handle result = {(U64)file}; - scratch_end(scratch); - return result; -} - -internal void -os_shared_memory_close(OS_Handle handle) -{ - HANDLE file = (HANDLE)(handle.u64[0]); - CloseHandle(file); -} - -internal void * -os_shared_memory_view_open(OS_Handle handle, Rng1U64 range) -{ - HANDLE file = (HANDLE)(handle.u64[0]); - U64 offset = range.min; - U64 size = range.max-range.min; - void *ptr = MapViewOfFile(file, FILE_MAP_ALL_ACCESS, - (U32)((offset & 0xffffffff00000000) >> 32), - (U32)((offset & 0x00000000ffffffff)), - size); - return ptr; -} - -internal void -os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range) -{ - UnmapViewOfFile(ptr); -} - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 -os_now_microseconds(void) -{ - U64 result = 0; - LARGE_INTEGER large_int_counter; - if(QueryPerformanceCounter(&large_int_counter)) - { - result = (large_int_counter.QuadPart*Million(1))/os_w32_state.microsecond_resolution; - } - return result; -} - -internal U32 -os_now_unix(void) -{ - FILETIME file_time; - GetSystemTimeAsFileTime(&file_time); - U32 unix_time = os_w32_unix_time_from_file_time(file_time); - return unix_time; -} - -internal DateTime -os_now_universal_time(void) -{ - SYSTEMTIME systime = {0}; - GetSystemTime(&systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal DateTime -os_universal_time_from_local(DateTime *date_time) -{ - SYSTEMTIME systime = {0}; - os_w32_system_time_from_date_time(&systime, date_time); - FILETIME ftime = {0}; - SystemTimeToFileTime(&systime, &ftime); - FILETIME ftime_local = {0}; - LocalFileTimeToFileTime(&ftime, &ftime_local); - FileTimeToSystemTime(&ftime_local, &systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal DateTime -os_local_time_from_universal(DateTime *date_time) -{ - SYSTEMTIME systime = {0}; - os_w32_system_time_from_date_time(&systime, date_time); - FILETIME ftime = {0}; - SystemTimeToFileTime(&systime, &ftime); - FILETIME ftime_local = {0}; - FileTimeToLocalFileTime(&ftime, &ftime_local); - FileTimeToSystemTime(&ftime_local, &systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal void -os_sleep_milliseconds(U32 msec) -{ - Sleep(msec); -} - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle -os_process_launch(OS_ProcessLaunchParams *params) -{ - OS_Handle result = {0}; - Temp scratch = scratch_begin(0, 0); - - //- rjf: form full command string - String8 cmd = {0}; - { - StringJoin join_params = {0}; - join_params.pre = str8_lit("\""); - join_params.sep = str8_lit("\" \""); - join_params.post = str8_lit("\""); - cmd = str8_list_join(scratch.arena, ¶ms->cmd_line, &join_params); - } - - //- rjf: form environment - B32 use_null_env_arg = 0; - String8 env = {0}; - { - StringJoin join_params2 = {0}; - join_params2.sep = str8_lit("\0"); - join_params2.post = str8_lit("\0"); - String8List all_opts = params->env; - if(params->inherit_env != 0) - { - if(all_opts.node_count != 0) - { - MemoryZeroStruct(&all_opts); - for(String8Node *n = params->env.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - for(String8Node *n = os_w32_state.process_info.environment.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - } - else - { - use_null_env_arg = 1; - } - } - if(use_null_env_arg == 0) - { - env = str8_list_join(scratch.arena, &all_opts, &join_params2); - } - } - - //- rjf: utf-8 -> utf-16 - String16 cmd16 = str16_from_8(scratch.arena, cmd); - String16 dir16 = str16_from_8(scratch.arena, params->path); - String16 env16 = {0}; - if(use_null_env_arg == 0) - { - env16 = str16_from_8(scratch.arena, env); - } - - //- rjf: determine creation flags - DWORD creation_flags = CREATE_UNICODE_ENVIRONMENT; - if(params->consoleless) - { - creation_flags |= CREATE_NO_WINDOW; - } - - //- rjf: launch - BOOL inherit_handles = 0; - STARTUPINFOW startup_info = {sizeof(startup_info)}; - if(!os_handle_match(params->stdout_file, os_handle_zero())) - { - HANDLE stdout_handle = (HANDLE)params->stdout_file.u64[0]; - startup_info.hStdOutput = stdout_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stderr_file, os_handle_zero())) - { - HANDLE stderr_handle = (HANDLE)params->stderr_file.u64[0]; - startup_info.hStdError = stderr_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stdin_file, os_handle_zero())) - { - HANDLE stdin_handle = (HANDLE)params->stdin_file.u64[0]; - startup_info.hStdInput = stdin_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - PROCESS_INFORMATION process_info = {0}; - if(CreateProcessW(0, (WCHAR*)cmd16.str, 0, 0, inherit_handles, creation_flags, use_null_env_arg ? 0 : (WCHAR*)env16.str, (WCHAR*)dir16.str, &startup_info, &process_info)) - { - result.u64[0] = (U64)process_info.hProcess; - CloseHandle(process_info.hThread); - } - - scratch_end(scratch); - return result; -} - -internal B32 -os_process_join(OS_Handle handle, U64 endt_us) -{ - HANDLE process = (HANDLE)(handle.u64[0]); - DWORD sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - DWORD result = WaitForSingleObject(process, sleep_ms); - return (result == WAIT_OBJECT_0); -} - -internal void -os_process_detach(OS_Handle handle) -{ - HANDLE process = (HANDLE)(handle.u64[0]); - CloseHandle(process); -} - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal OS_Handle -os_thread_launch(OS_ThreadFunctionType *func, void *ptr, void *params) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_Thread); - entity->thread.func = func; - entity->thread.ptr = ptr; - entity->thread.handle = CreateThread(0, 0, os_w32_thread_entry_point, entity, 0, &entity->thread.tid); - OS_Handle result = {IntFromPtr(entity)}; - return result; -} - -internal B32 -os_thread_join(OS_Handle handle, U64 endt_us) -{ - DWORD sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - OS_W32_Entity *entity = (OS_W32_Entity *)PtrFromInt(handle.u64[0]); - DWORD wait_result = WAIT_OBJECT_0; - if(entity != 0) - { - wait_result = WaitForSingleObject(entity->thread.handle, sleep_ms); - CloseHandle(entity->thread.handle); - os_w32_entity_release(entity); - } - return (wait_result == WAIT_OBJECT_0); -} - -internal void -os_thread_detach(OS_Handle thread) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(thread.u64[0]); - if(entity != 0) - { - CloseHandle(entity->thread.handle); - os_w32_entity_release(entity); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: mutexes - -internal OS_Handle -os_mutex_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_Mutex); - InitializeCriticalSection(&entity->mutex); - OS_Handle result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_mutex_release(OS_Handle mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - os_w32_entity_release(entity); -} - -internal void -os_mutex_take(OS_Handle mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - EnterCriticalSection(&entity->mutex); -} - -internal void -os_mutex_drop(OS_Handle mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - LeaveCriticalSection(&entity->mutex); -} - -//- rjf: reader/writer mutexes - -internal OS_Handle -os_rw_mutex_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_RWMutex); - InitializeSRWLock(&entity->rw_mutex); - OS_Handle result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_rw_mutex_release(OS_Handle rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - os_w32_entity_release(entity); -} - -internal void -os_rw_mutex_take_r(OS_Handle rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - AcquireSRWLockShared(&entity->rw_mutex); -} - -internal void -os_rw_mutex_drop_r(OS_Handle rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - ReleaseSRWLockShared(&entity->rw_mutex); -} - -internal void -os_rw_mutex_take_w(OS_Handle rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - AcquireSRWLockExclusive(&entity->rw_mutex); -} - -internal void -os_rw_mutex_drop_w(OS_Handle rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - ReleaseSRWLockExclusive(&entity->rw_mutex); -} - -//- rjf: condition variables - -internal OS_Handle -os_condition_variable_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_ConditionVariable); - InitializeConditionVariable(&entity->cv); - OS_Handle result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_condition_variable_release(OS_Handle cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - os_w32_entity_release(entity); -} - -internal B32 -os_condition_variable_wait(OS_Handle cv, OS_Handle mutex, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - BOOL result = 0; - if(sleep_ms > 0) - { - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - OS_W32_Entity *mutex_entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - result = SleepConditionVariableCS(&entity->cv, &mutex_entity->mutex, sleep_ms); - } - return result; -} - -internal B32 -os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - BOOL result = 0; - if(sleep_ms > 0) - { - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - OS_W32_Entity *mutex_entity = (OS_W32_Entity*)PtrFromInt(mutex_rw.u64[0]); - result = SleepConditionVariableSRW(&entity->cv, &mutex_entity->rw_mutex, sleep_ms, - CONDITION_VARIABLE_LOCKMODE_SHARED); - } - return result; -} - -internal B32 -os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - BOOL result = 0; - if(sleep_ms > 0) - { - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - OS_W32_Entity *mutex_entity = (OS_W32_Entity*)PtrFromInt(mutex_rw.u64[0]); - result = SleepConditionVariableSRW(&entity->cv, &mutex_entity->rw_mutex, sleep_ms, 0); - } - return result; -} - -internal void -os_condition_variable_signal(OS_Handle cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - WakeConditionVariable(&entity->cv); -} - -internal void -os_condition_variable_broadcast(OS_Handle cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - WakeAllConditionVariable(&entity->cv); -} - -//- rjf: cross-process semaphores - -internal OS_Handle -os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE handle = CreateSemaphoreW(0, initial_count, max_count, (WCHAR *)name16.str); - OS_Handle result = {(U64)handle}; - scratch_end(scratch); - return result; -} - -internal void -os_semaphore_release(OS_Handle semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - CloseHandle(handle); -} - -internal OS_Handle -os_semaphore_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE handle = OpenSemaphoreW(SEMAPHORE_ALL_ACCESS , 0, (WCHAR *)name16.str); - OS_Handle result = {(U64)handle}; - scratch_end(scratch); - return result; -} - -internal void -os_semaphore_close(OS_Handle semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - CloseHandle(handle); -} - -internal B32 -os_semaphore_take(OS_Handle semaphore, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - HANDLE handle = (HANDLE)semaphore.u64[0]; - DWORD wait_result = WaitForSingleObject(handle, sleep_ms); - B32 result = (wait_result == WAIT_OBJECT_0); - return result; -} - -internal void -os_semaphore_drop(OS_Handle semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - ReleaseSemaphore(handle, 1, 0); -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle -os_library_open(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - HMODULE mod = LoadLibraryW((LPCWSTR)path16.str); - OS_Handle result = { (U64)mod }; - scratch_end(scratch); - return result; -} - -internal VoidProc* -os_library_load_proc(OS_Handle lib, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - HMODULE mod = (HMODULE)lib.u64[0]; - name = push_str8_copy(scratch.arena, name); - VoidProc *result = (VoidProc*)GetProcAddress(mod, (LPCSTR)name.str); - scratch_end(scratch); - return result; -} - -internal void -os_library_close(OS_Handle lib) -{ - HMODULE mod = (HMODULE)lib.u64[0]; - FreeLibrary(mod); -} - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void -os_safe_call(OS_ThreadFunctionType *func, OS_ThreadFunctionType *fail_handler, void *ptr) -{ - __try - { - func(ptr); - } - __except (EXCEPTION_EXECUTE_HANDLER) - { - if(fail_handler != 0) - { - fail_handler(ptr); - } - ExitProcess(1); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid -os_make_guid(void) -{ - Guid result; MemoryZeroStruct(&result); - UUID uuid; - RPC_STATUS rpc_status = UuidCreate(&uuid); - if(rpc_status == RPC_S_OK) - { - result.data1 = uuid.Data1; - result.data2 = uuid.Data2; - result.data3 = uuid.Data3; - MemoryCopyArray(result.data4, uuid.Data4); - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -#include -#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside -#include - -internal B32 win32_g_is_quiet = 0; - -internal HRESULT WINAPI -win32_dialog_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, LONG_PTR data) -{ - if(msg == TDN_HYPERLINK_CLICKED) - { - ShellExecuteW(NULL, L"open", (LPWSTR)lparam, NULL, NULL, SW_SHOWNORMAL); - } - return S_OK; -} - -internal LONG WINAPI -win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs) -{ - if(win32_g_is_quiet) - { - ExitProcess(1); - } - - static volatile LONG first = 0; - if(InterlockedCompareExchange(&first, 1, 0) != 0) - { - // prevent failures in other threads to popup same message box - // this handler just shows first thread that crashes - // we are terminating afterwards anyway - for (;;) Sleep(1000); - } - - WCHAR buffer[4096] = {0}; - int buflen = 0; - - DWORD exception_code = exception_ptrs->ExceptionRecord->ExceptionCode; - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"A fatal exception (code 0x%x) occurred. The process is terminating.\n", exception_code); - - // load dbghelp dynamically just in case if it is missing - HMODULE dbghelp = LoadLibraryA("dbghelp.dll"); - if(dbghelp) - { - DWORD (WINAPI *dbg_SymSetOptions)(DWORD SymOptions); - BOOL (WINAPI *dbg_SymInitializeW)(HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess); - BOOL (WINAPI *dbg_StackWalk64)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, - LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, - PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, - PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); - PVOID (WINAPI *dbg_SymFunctionTableAccess64)(HANDLE hProcess, DWORD64 AddrBase); - DWORD64 (WINAPI *dbg_SymGetModuleBase64)(HANDLE hProcess, DWORD64 qwAddr); - BOOL (WINAPI *dbg_SymFromAddrW)(HANDLE hProcess, DWORD64 Address, PDWORD64 Displacement, PSYMBOL_INFOW Symbol); - BOOL (WINAPI *dbg_SymGetLineFromAddrW64)(HANDLE hProcess, DWORD64 dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINEW64 Line); - BOOL (WINAPI *dbg_SymGetModuleInfoW64)(HANDLE hProcess, DWORD64 qwAddr, PIMAGEHLP_MODULEW64 ModuleInfo); - - *(FARPROC*)&dbg_SymSetOptions = GetProcAddress(dbghelp, "SymSetOptions"); - *(FARPROC*)&dbg_SymInitializeW = GetProcAddress(dbghelp, "SymInitializeW"); - *(FARPROC*)&dbg_StackWalk64 = GetProcAddress(dbghelp, "StackWalk64"); - *(FARPROC*)&dbg_SymFunctionTableAccess64 = GetProcAddress(dbghelp, "SymFunctionTableAccess64"); - *(FARPROC*)&dbg_SymGetModuleBase64 = GetProcAddress(dbghelp, "SymGetModuleBase64"); - *(FARPROC*)&dbg_SymFromAddrW = GetProcAddress(dbghelp, "SymFromAddrW"); - *(FARPROC*)&dbg_SymGetLineFromAddrW64 = GetProcAddress(dbghelp, "SymGetLineFromAddrW64"); - *(FARPROC*)&dbg_SymGetModuleInfoW64 = GetProcAddress(dbghelp, "SymGetModuleInfoW64"); - - if(dbg_SymSetOptions && dbg_SymInitializeW && dbg_StackWalk64 && dbg_SymFunctionTableAccess64 && dbg_SymGetModuleBase64 && dbg_SymFromAddrW && dbg_SymGetLineFromAddrW64 && dbg_SymGetModuleInfoW64) - { - HANDLE process = GetCurrentProcess(); - HANDLE thread = GetCurrentThread(); - CONTEXT* context = exception_ptrs->ContextRecord; - - WCHAR module_path[MAX_PATH]; - GetModuleFileNameW(NULL, module_path, ArrayCount(module_path)); - PathRemoveFileSpecW(module_path); - - dbg_SymSetOptions(SYMOPT_EXACT_SYMBOLS | SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_LOAD_LINES | SYMOPT_UNDNAME); - if(dbg_SymInitializeW(process, module_path, TRUE)) - { - // check that raddbg.pdb file is good - B32 raddbg_pdb_valid = 0; - { - IMAGEHLP_MODULEW64 module = {0}; - module.SizeOfStruct = sizeof(module); - if(dbg_SymGetModuleInfoW64(process, (DWORD64)&win32_exception_filter, &module)) - { - raddbg_pdb_valid = (module.SymType == SymPdb); - } - } - - if(!raddbg_pdb_valid) - { - buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, - L"\nThe PDB debug information file for this executable is not valid or was not found. Please rebuild binary to get the call stack.\n"); - } - else - { - STACKFRAME64 frame = {0}; - DWORD image_type; -#if defined(_M_AMD64) - image_type = IMAGE_FILE_MACHINE_AMD64; - frame.AddrPC.Offset = context->Rip; - frame.AddrPC.Mode = AddrModeFlat; - frame.AddrFrame.Offset = context->Rbp; - frame.AddrFrame.Mode = AddrModeFlat; - frame.AddrStack.Offset = context->Rsp; - frame.AddrStack.Mode = AddrModeFlat; -#elif defined(_M_ARM64) - image_type = IMAGE_FILE_MACHINE_ARM64; - frame.AddrPC.Offset = context->Pc; - frame.AddrPC.Mode = AddrModeFlat; - frame.AddrFrame.Offset = context->Fp; - frame.AddrFrame.Mode = AddrModeFlat; - frame.AddrStack.Offset = context->Sp; - frame.AddrStack.Mode = AddrModeFlat; -#else -# error Arch not supported! -#endif - - for(U32 idx=0; ;idx++) - { - const U32 max_frames = 32; - if(idx == max_frames) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"..."); - break; - } - - if(!dbg_StackWalk64(image_type, process, thread, &frame, context, 0, dbg_SymFunctionTableAccess64, dbg_SymGetModuleBase64, 0)) - { - break; - } - - U64 address = frame.AddrPC.Offset; - if(address == 0) - { - break; - } - - if(idx==0) - { -#if BUILD_CONSOLE_INTERFACE - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nCreate a new issue with this report at %S.\n\n", BUILD_ISSUES_LINK_STRING_LITERAL); -#else - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, - L"\nPress Ctrl+C to copy this text to clipboard, then create a new issue at\n" - L"%S\n\n", BUILD_ISSUES_LINK_STRING_LITERAL, BUILD_ISSUES_LINK_STRING_LITERAL); -#endif - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"Call stack:\n"); - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"%u. [0x%I64x]", idx + 1, address); - - struct { - SYMBOL_INFOW info; - WCHAR name[MAX_SYM_NAME]; - } symbol = {0}; - - symbol.info.SizeOfStruct = sizeof(symbol.info); - symbol.info.MaxNameLen = MAX_SYM_NAME; - - DWORD64 displacement = 0; - if(dbg_SymFromAddrW(process, address, &displacement, &symbol.info)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s +%u", symbol.info.Name, (DWORD)displacement); - - IMAGEHLP_LINEW64 line = {0}; - line.SizeOfStruct = sizeof(line); - - DWORD line_displacement = 0; - if(dbg_SymGetLineFromAddrW64(process, address, &line_displacement, &line)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L", %s line %u", PathFindFileNameW(line.FileName), line.LineNumber); - } - } - else - { - IMAGEHLP_MODULEW64 module = {0}; - module.SizeOfStruct = sizeof(module); - if(dbg_SymGetModuleInfoW64(process, address, &module)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s", module.ModuleName); - } - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\n"); - } - } - } - } - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nVersion: %S%S", BUILD_VERSION_STRING_LITERAL, BUILD_GIT_HASH_STRING_LITERAL_APPEND); - -#if BUILD_CONSOLE_INTERFACE - fwprintf(stderr, L"\n--- Fatal Exception ---\n"); - fwprintf(stderr, L"%s\n\n", buffer); -#else - TASKDIALOGCONFIG dialog = {0}; - dialog.cbSize = sizeof(dialog); - dialog.dwFlags = TDF_SIZE_TO_CONTENT | TDF_ENABLE_HYPERLINKS | TDF_ALLOW_DIALOG_CANCELLATION; - dialog.pszMainIcon = TD_ERROR_ICON; - dialog.dwCommonButtons = TDCBF_CLOSE_BUTTON; - dialog.pszWindowTitle = L"Fatal Exception"; - dialog.pszContent = buffer; - dialog.pfCallback = &win32_dialog_callback; - TaskDialogIndirect(&dialog, 0, 0, 0); -#endif - - ExitProcess(1); -} - -#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside -#define OS_WINDOWS 1 - -internal void -w32_entry_point_caller(int argc, WCHAR **wargv) -{ - SetUnhandledExceptionFilter(&win32_exception_filter); - - //- rjf: dynamically load windows functions which are not guaranteed - // in all SDKs - { - HMODULE module = LoadLibraryA("kernel32.dll"); - w32_SetThreadDescription_func = (W32_SetThreadDescription_Type *)GetProcAddress(module, "SetThreadDescription"); - FreeLibrary(module); - } - - //- rjf: try to allow large pages if we can - B32 large_pages_allowed = 0; - { - HANDLE token; - if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token)) - { - LUID luid; - if(LookupPrivilegeValue(0, SE_LOCK_MEMORY_NAME, &luid)) - { - TOKEN_PRIVILEGES priv; - priv.PrivilegeCount = 1; - priv.Privileges[0].Luid = luid; - priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - large_pages_allowed = !!AdjustTokenPrivileges(token, 0, &priv, sizeof(priv), 0, 0); - } - CloseHandle(token); - } - } - - //- rjf: get system info - SYSTEM_INFO sysinfo = {0}; - GetSystemInfo(&sysinfo); - - //- rjf: set up non-dynamically-alloc'd state - // - // (we need to set up some basics before this layer can supply - // memory allocation primitives) - { - os_w32_state.microsecond_resolution = 1; - LARGE_INTEGER large_int_resolution; - if(QueryPerformanceFrequency(&large_int_resolution)) - { - os_w32_state.microsecond_resolution = large_int_resolution.QuadPart; - } - } - { - OS_SystemInfo *info = &os_w32_state.system_info; - info->logical_processor_count = (U64)sysinfo.dwNumberOfProcessors; - info->page_size = sysinfo.dwPageSize; - info->large_page_size = GetLargePageMinimum(); - info->allocation_granularity = sysinfo.dwAllocationGranularity; - } - { - OS_ProcessInfo *info = &os_w32_state.process_info; - info->large_pages_allowed = large_pages_allowed; - info->pid = GetCurrentProcessId(); - } - - //- rjf: extract arguments - Arena *args_arena = arena_alloc(.reserve_size = MB(1), .commit_size = KB(32)); - char **argv = push_array(args_arena, char *, argc); - for(int i = 0; i < argc; i += 1) - { - String16 arg16 = str16_cstring((U16 *)wargv[i]); - String8 arg8 = str8_from_16(args_arena, arg16); - if(str8_match(arg8, str8_lit("--quiet"), StringMatchFlag_CaseInsensitive) || - str8_match(arg8, str8_lit("-quiet"), StringMatchFlag_CaseInsensitive)) - { - win32_g_is_quiet = 1; - } - if(str8_match(arg8, str8_lit("--large_pages"), StringMatchFlag_CaseInsensitive) || - str8_match(arg8, str8_lit("-large_pages"), StringMatchFlag_CaseInsensitive)) - { - arena_default_flags = ArenaFlag_LargePages; - arena_default_reserve_size = Max(MB(64), os_w32_state.system_info.large_page_size); - arena_default_commit_size = arena_default_reserve_size; - } - argv[i] = (char *)arg8.str; - } - - //- rjf: set up thread context - local_persist TCTX tctx; - tctx_init_and_equip(&tctx); - - //- rjf: set up dynamically-alloc'd state - Arena *arena = arena_alloc(); - { - os_w32_state.arena = arena; - { - OS_SystemInfo *info = &os_w32_state.system_info; - U8 buffer[MAX_COMPUTERNAME_LENGTH + 1] = {0}; - DWORD size = MAX_COMPUTERNAME_LENGTH + 1; - if(GetComputerNameA((char*)buffer, &size)) - { - info->machine_name = push_str8_copy(arena, str8(buffer, size)); - } - } - } - { - OS_ProcessInfo *info = &os_w32_state.process_info; - { - Temp scratch = scratch_begin(0, 0); - DWORD size = KB(32); - U16 *buffer = push_array_no_zero(scratch.arena, U16, size); - DWORD length = GetModuleFileNameW(0, (WCHAR*)buffer, size); - String8 name8 = str8_from_16(scratch.arena, str16(buffer, length)); - String8 name_chopped = str8_chop_last_slash(name8); - info->binary_path = push_str8_copy(arena, name_chopped); - scratch_end(scratch); - } - info->initial_path = os_get_current_path(arena); - { - Temp scratch = scratch_begin(0, 0); - U64 size = KB(32); - U16 *buffer = push_array_no_zero(scratch.arena, U16, size); - if(SUCCEEDED(SHGetFolderPathW(0, CSIDL_APPDATA, 0, 0, (WCHAR*)buffer))) - { - info->user_program_data_path = str8_from_16(arena, str16_cstring(buffer)); - } - scratch_end(scratch); - } - { - WCHAR *this_proc_env = GetEnvironmentStringsW(); - U64 start_idx = 0; - for(U64 idx = 0;; idx += 1) - { - if(this_proc_env[idx] == 0) - { - if(start_idx == idx) - { - break; - } - else - { - String16 string16 = str16((U16 *)this_proc_env + start_idx, idx - start_idx); - String8 string = str8_from_16(arena, string16); - str8_list_push(arena, &info->environment, string); - start_idx = idx+1; - } - } - } - } - } - - //- rjf: set up entity storage - InitializeCriticalSection(&os_w32_state.entity_mutex); - os_w32_state.entity_arena = arena_alloc(); - - //- rjf: call into "real" entry point - main_thread_base_entry_point(argc, argv); -} - -#if BUILD_CONSOLE_INTERFACE -int wmain(int argc, WCHAR **argv) -{ - w32_entry_point_caller(argc, argv); - return 0; -} -#else -int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) -{ - w32_entry_point_caller(__argc, __wargv); - return 0; -} -#endif + diff --git a/src/metagen/metagen_os/core/win32/metagen_os_core_win32.h b/src/metagen/metagen_os/core/win32/metagen_os_core_win32.h deleted file mode 100644 index 9a8f0d12..00000000 --- a/src/metagen/metagen_os/core/win32/metagen_os_core_win32.h +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_WIN32_H -#define OS_CORE_WIN32_H - -//////////////////////////////// -//~ rjf: Includes / Libraries - -#include -#include -#include -#include -#include -#include -#pragma comment(lib, "user32") -#pragma comment(lib, "winmm") -#pragma comment(lib, "shell32") -#pragma comment(lib, "advapi32") -#pragma comment(lib, "rpcrt4") -#pragma comment(lib, "shlwapi") -#pragma comment(lib, "comctl32") -#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") // this is required for loading correct comctl32 dll file - -//////////////////////////////// -//~ rjf: File Iterator Types - -typedef struct OS_W32_FileIter OS_W32_FileIter; -struct OS_W32_FileIter -{ - HANDLE handle; - WIN32_FIND_DATAW find_data; - B32 is_volume_iter; - String8Array drive_strings; - U64 drive_strings_iter_idx; -}; -StaticAssert(sizeof(Member(OS_FileIter, memory)) >= sizeof(OS_W32_FileIter), file_iter_memory_size); - -//////////////////////////////// -//~ rjf: Entity Types - -typedef enum OS_W32_EntityKind -{ - OS_W32_EntityKind_Null, - OS_W32_EntityKind_Thread, - OS_W32_EntityKind_Mutex, - OS_W32_EntityKind_RWMutex, - OS_W32_EntityKind_ConditionVariable, -} -OS_W32_EntityKind; - -typedef struct OS_W32_Entity OS_W32_Entity; -struct OS_W32_Entity -{ - OS_W32_Entity *next; - OS_W32_EntityKind kind; - union - { - struct - { - OS_ThreadFunctionType *func; - void *ptr; - HANDLE handle; - DWORD tid; - } thread; - CRITICAL_SECTION mutex; - SRWLOCK rw_mutex; - CONDITION_VARIABLE cv; - }; -}; - -//////////////////////////////// -//~ rjf: State - -typedef struct OS_W32_State OS_W32_State; -struct OS_W32_State -{ - Arena *arena; - - // rjf: info - OS_SystemInfo system_info; - OS_ProcessInfo process_info; - U64 microsecond_resolution; - - // rjf: entity storage - CRITICAL_SECTION entity_mutex; - Arena *entity_arena; - OS_W32_Entity *entity_free; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_W32_State os_w32_state = {0}; - -//////////////////////////////// -//~ rjf: File Info Conversion Helpers - -internal FilePropertyFlags os_w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes); -internal void os_w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes); - -//////////////////////////////// -//~ rjf: Time Conversion Helpers - -internal void os_w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in); -internal void os_w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in); -internal void os_w32_dense_time_from_file_time(DenseTime *out, FILETIME *in); -internal U32 os_w32_sleep_ms_from_endt_us(U64 endt_us); - -//////////////////////////////// -//~ rjf: Entity Functions - -internal OS_W32_Entity *os_w32_entity_alloc(OS_W32_EntityKind kind); -internal void os_w32_entity_release(OS_W32_Entity *entity); - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal DWORD os_w32_thread_entry_point(void *ptr); - -#endif // OS_CORE_WIN32_H diff --git a/src/metagen/metagen_os/metagen_os_inc.c b/src/metagen/metagen_os/metagen_os_inc.c deleted file mode 100644 index 70bb1565..00000000 --- a/src/metagen/metagen_os/metagen_os_inc.c +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#include "metagen/metagen_os/core/metagen_os_core.c" - -#if OS_WINDOWS -# include "metagen/metagen_os/core/win32/metagen_os_core_win32.c" -#elif OS_LINUX -# include "metagen/metagen_os/core/linux/metagen_os_core_linux.c" -#else -# error OS core layer not implemented for this operating system. -#endif diff --git a/src/metagen/metagen_os/metagen_os_inc.h b/src/metagen/metagen_os/metagen_os_inc.h deleted file mode 100644 index b2d96f02..00000000 --- a/src/metagen/metagen_os/metagen_os_inc.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_INC_H -#define OS_INC_H - -#if !defined(OS_FEATURE_GRAPHICAL) -# define OS_FEATURE_GRAPHICAL 0 -#endif - -#include "metagen/metagen_os/core/metagen_os_core.h" - -#if OS_WINDOWS -# include "metagen/metagen_os/core/win32/metagen_os_core_win32.h" -#elif OS_LINUX -# include "metagen/metagen_os/core/linux/metagen_os_core_linux.h" -#else -# error OS core layer not implemented for this operating system. -#endif - -#endif // OS_INC_H diff --git a/src/minidump/minidump.c b/src/minidump/minidump.c new file mode 100644 index 00000000..ae447aab --- /dev/null +++ b/src/minidump/minidump.c @@ -0,0 +1,2 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/minidump/minidump.h b/src/minidump/minidump.h new file mode 100644 index 00000000..aab59e03 --- /dev/null +++ b/src/minidump/minidump.h @@ -0,0 +1,233 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef MINIDUMP_H +#define MINIDUMP_H + +#pragma pack(push, 1) + +typedef enum MDMP_DumpKind +{ + MDMP_DumpKind_Normal = 0x00000000, + MDMP_DumpKind_WithDataSegs = 0x00000001, + MDMP_DumpKind_WithFullMemory = 0x00000002, + MDMP_DumpKind_WithHandleData = 0x00000004, + MDMP_DumpKind_FilterMemory = 0x00000008, + MDMP_DumpKind_ScanMemory = 0x00000010, + MDMP_DumpKind_WithUnloadedModules = 0x00000020, + MDMP_DumpKind_WithIndirectlyReferencedMemory = 0x00000040, + MDMP_DumpKind_FilterModulePaths = 0x00000080, + MDMP_DumpKind_WithProcessThreadData = 0x00000100, + MDMP_DumpKind_WithPrivateReadWriteMemory = 0x00000200, + MDMP_DumpKind_WithoutOptionalData = 0x00000400, + MDMP_DumpKind_WithFullMemoryInfo = 0x00000800, + MDMP_DumpKind_WithThreadInfo = 0x00001000, + MDMP_DumpKind_WithCodeSegs = 0x00002000, + MDMP_DumpKind_WithoutAuxiliaryState = 0x00004000, + MDMP_DumpKind_WithFullAuxiliaryState = 0x00008000, + MDMP_DumpKind_WithPrivateWriteCopyMemory = 0x00010000, + MDMP_DumpKind_IgnoreInaccessibleMemory = 0x00020000, + MDMP_DumpKind_WithTokenInformation = 0x00040000, + MDMP_DumpKind_WithModuleHeaders = 0x00080000, + MDMP_DumpKind_FilterTriage = 0x00100000, + MDMP_DumpKind_WithAvxXStateContext = 0x00200000, + MDMP_DumpKind_WithIptTrace = 0x00400000, + MDMP_DumpKind_ScanInaccessiblePartialPages = 0x00800000, + MDMP_DumpKind_FilterWriteCombinedMemory, + MDMP_DumpKind_ValidTypeFlags = 0x01ffffff, + MDMP_DumpKind_NoIgnoreInaccessibleMemory, + MDMP_DumpKind_ValidTypeFlagsEx +} +MDMP_DumpKind; + +typedef enum MDMP_StreamKind +{ + MDMP_StreamKind_Unused = 0, + MDMP_StreamKind_Reserved0 = 1, + MDMP_StreamKind_Reserved1 = 2, + MDMP_StreamKind_ThreadList = 3, + MDMP_StreamKind_ModuleList = 4, + MDMP_StreamKind_MemoryList = 5, + MDMP_StreamKind_Exception = 6, + MDMP_StreamKind_SystemInfo = 7, + MDMP_StreamKind_ThreadExList = 8, + MDMP_StreamKind_Memory64List = 9, + MDMP_StreamKind_CommentA = 10, + MDMP_StreamKind_CommentW = 11, + MDMP_StreamKind_HandleData = 12, + MDMP_StreamKind_FunctionTable = 13, + MDMP_StreamKind_UnloadedModuleList = 14, + MDMP_StreamKind_MiscInfo = 15, + MDMP_StreamKind_MemoryInfoList = 16, + MDMP_StreamKind_ThreadInfoList = 17, + MDMP_StreamKind_HandleOperationList = 18, + MDMP_StreamKind_Token = 19, + MDMP_StreamKind_JavaScriptData = 20, + MDMP_StreamKind_SystemMemoryInfo = 21, + MDMP_StreamKind_ProcessVmCounters = 22, + MDMP_StreamKind_IptTrace = 23, + MDMP_StreamKind_ThreadNames = 24, + MDMP_StreamKind_ceNull = 0x8000, + MDMP_StreamKind_ceSystemInfo = 0x8001, + MDMP_StreamKind_ceException = 0x8002, + MDMP_StreamKind_ceModuleList = 0x8003, + MDMP_StreamKind_ceProcessList = 0x8004, + MDMP_StreamKind_ceThreadList = 0x8005, + MDMP_StreamKind_ceThreadContextList = 0x8006, + MDMP_StreamKind_ceThreadCallStackList = 0x8007, + MDMP_StreamKind_ceMemoryVirtualList = 0x8008, + MDMP_StreamKind_ceMemoryPhysicalList = 0x8009, + MDMP_StreamKind_ceBucketParameters = 0x800A, + MDMP_StreamKind_ceProcessModuleMap = 0x800B, + MDMP_StreamKind_ceDiagnosisList = 0x800C, + MDMP_StreamKind_LastReserved = 0xffff +} +MDMP_StreamKind; + +#define MDMP_MAGIC 0x504d444d + +typedef struct MDMP_Header MDMP_Header; +struct MDMP_Header +{ + U32 magic; + U32 version; + U32 number_of_streams; + U32 stream_directory_foff; + U32 checksum; + U32 reserved_or_time_date_stamp; + U64 flags; // MDMP_DumpKind +}; + +typedef struct MDMP_LocationDescriptor32 MDMP_LocationDescriptor32; +struct MDMP_LocationDescriptor32 +{ + U32 data_size; + U32 foff; +}; + +typedef struct MDMP_LocationDescriptor64 MDMP_LocationDescriptor64; +struct MDMP_LocationDescriptor64 +{ + U64 data_size; + U64 foff; +}; + +typedef struct MDMP_Directory MDMP_Directory; +struct MDMP_Directory +{ + U32 stream_kind; + MDMP_LocationDescriptor32 location; +}; + +typedef struct MDMP_MemoryDescriptor32 MDMP_MemoryDescriptor32; +struct MDMP_MemoryDescriptor32 +{ + U64 start_of_memory_range; + MDMP_LocationDescriptor32 memory_location; +}; + +typedef struct MDMP_MemoryDescriptor64 MDMP_MemoryDescriptor64; +struct MDMP_MemoryDescriptor64 +{ + U64 start_of_memory_range; + U64 size; +}; + +typedef struct MDMP_Thread MDMP_Thread; +struct MDMP_Thread +{ + U32 id; + U32 suspend_count; + U32 priority_class; + U32 priority; + U64 teb; + MDMP_MemoryDescriptor32 stack; + MDMP_LocationDescriptor32 thread_context; +}; + +typedef struct MDMP_FixedFileInfo MDMP_FixedFileInfo; +struct MDMP_FixedFileInfo +{ + U32 signature; + U32 struct_version; + U32 file_version_ms; + U32 file_version_ls; + U32 product_version_ms; + U32 product_version_ls; + U32 file_flags_mask; + U32 file_flags; + U32 file_os; + U32 file_type; + U32 file_subtype; + U32 file_date_ms; + U32 file_date_ls; +}; + +typedef struct MDMP_Module MDMP_Module; +struct MDMP_Module +{ + U64 image_base_vaddr; + U32 image_size; + U32 checksum; + U32 time_date_stamp; + U32 module_name_foff; + MDMP_FixedFileInfo version_info; + MDMP_LocationDescriptor32 cv_record; + MDMP_LocationDescriptor32 misc_record; + U64 reserved_0; + U64 reserved_1; +}; + +typedef struct MDMP_Exception MDMP_Exception; +struct MDMP_Exception +{ + U32 exception_code; + U32 exception_flags; + U64 exception_record; + U64 exception_addr; + U32 number_parameters; + U32 unused_alignment; + U64 exception_information[15]; +}; + +typedef struct MDMP_ExceptionStream MDMP_ExceptionStream; +struct MDMP_ExceptionStream +{ + U32 thread_id; + U32 padding; + MDMP_Exception exception; + MDMP_LocationDescriptor32 thread_context; +}; + +typedef U16 MDMP_Arch; +typedef enum MDMP_ArchEnum +{ + MDMP_Arch_x86 = 0, + MDMP_Arch_Arm = 5, + MDMP_Arch_IA64 = 6, + MDMP_Arch_x64 = 9, + MDMP_Arch_Unknown = 0xffff, +} +MDMP_ArchEnum; + +typedef struct MDMP_SystemInfo MDMP_SystemInfo; +struct MDMP_SystemInfo +{ + MDMP_Arch processor_architecture; + U16 processor_level; + U16 processor_revision; + U8 number_of_processors; + U8 product_type; + U32 major_version; + U32 minor_version; + U32 build_number; + U32 platform_id; + U32 csd_version_rva; + U16 suite_mask; + U16 padding; + // CPU_INFORMATION Cpu; (architecture dependent) +}; + +#pragma pack(pop) + +#endif // MINIDUMP_H diff --git a/src/ctrl/ctrl_inc.c b/src/minidump/minidump_parse.c similarity index 56% rename from src/ctrl/ctrl_inc.c rename to src/minidump/minidump_parse.c index 45213b22..654f300c 100644 --- a/src/ctrl/ctrl_inc.c +++ b/src/minidump/minidump_parse.c @@ -1,7 +1,3 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#undef LAYER_COLOR -#define LAYER_COLOR 0x969696ff - -#include "ctrl_core.c" +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + diff --git a/src/minidump/minidump_parse.h b/src/minidump/minidump_parse.h new file mode 100644 index 00000000..8b9d4225 --- /dev/null +++ b/src/minidump/minidump_parse.h @@ -0,0 +1,28 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef MINIDUMP_PARSE_H +#define MINIDUMP_PARSE_H + +typedef struct MDMP_ThreadArray MDMP_ThreadArray; +struct MDMP_ThreadArray +{ + MDMP_Thread *v; + U64 count; +}; + +typedef struct MDMP_ModuleArray MDMP_ModuleArray; +struct MDMP_ModuleArray +{ + MDMP_Module *v; + U64 count; +}; + +typedef struct MDMP_MemoryArray MDMP_MemoryArray; +struct MDMP_MemoryArray +{ + MDMP_MemoryDescriptor64 *v; + U64 count; +}; + +#endif // MINIDUMP_PARSE_H diff --git a/src/msf/msf_parse.c b/src/msf/msf_parse.c index 02912ab7..40c84813 100644 --- a/src/msf/msf_parse.c +++ b/src/msf/msf_parse.c @@ -9,7 +9,7 @@ msf_raw_stream_table_from_data(Arena *arena, String8 msf_data) { Temp scratch = scratch_begin(&arena, 1); - MSF_RawStreamTable *result = 0; + MSF_RawStreamTable *result = push_array(arena, MSF_RawStreamTable, 1); //- determine msf type U32 index_size = 0; @@ -214,7 +214,6 @@ msf_raw_stream_table_from_data(Arena *arena, String8 msf_data) } if (got_streams) { - result = push_array(arena, MSF_RawStreamTable, 1); result->total_page_count = whole_file_page_count; result->index_size = index_size; result->page_size = page_size; @@ -228,51 +227,63 @@ msf_raw_stream_table_from_data(Arena *arena, String8 msf_data) } internal String8 -msf_data_from_stream_number(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn) +msf_data_from_stream_number_ex(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn, Rng1U64 range, U64 align) { ProfBeginFunction(); String8 result = {0}; if(sn < st->stream_count) { - MSF_RawStream stream = st->streams[sn]; - U8 *stream_buf = push_array_no_zero(arena, U8, stream.size); - U8 *stream_out_ptr = stream_buf; - for (U32 i = 0; i < stream.page_count; ++i) { - U64 page_idx; - if (st->index_size == 4) { - page_idx = stream.u.page_indices_u32[i]; - } else { - page_idx = stream.u.page_indices_u16[i]; + MSF_RawStream stream = st->streams[sn]; + Rng1U64 range_clamped = { .min = Min(range.min, stream.size), .max = Min(range.max, stream.size) }; + U64 page_count = CeilIntegerDiv(dim_1u64(range_clamped), st->page_size); + U64 pn_base = range_clamped.min / st->page_size; + + result = (String8){ .str = push_array_aligned(arena, U8, dim_1u64(range_clamped), align) }; + + for EachIndex(page_idx, page_count) { + U64 pn_begin; + if (st->index_size == 4) { pn_begin = stream.u.page_indices_u32[pn_base + page_idx]; } + else { pn_begin = stream.u.page_indices_u16[pn_base + page_idx]; } + + U64 pn_end = pn_begin; + for (; page_idx+1 < page_count; page_idx += 1) { + U64 next_pn = 0; + if (st->index_size == 4) { next_pn = stream.u.page_indices_u32[pn_base + page_idx + 1]; } + else { next_pn = stream.u.page_indices_u16[pn_base + page_idx + 1]; } + if ((pn_end + 1) != next_pn) { break; } + pn_end = next_pn; } - - U64 stream_page_off = (U64)page_idx * st->page_size; - if (stream_page_off + st->page_size > msf_data.size) { - break; - } - - U8 *stream_page_base = msf_data.str + stream_page_off; - - // clamp copy size by end of stream - U32 stream_pos = (U32) (stream_out_ptr - stream_buf); - U32 remaining_size = stream.size - stream_pos; - U32 copy_size = ClampTop(st->page_size, remaining_size); - + pn_end += 1; + + U64 read_off = result.size + range_clamped.min; + U64 to_read = dim_1u64(range_clamped) - result.size; + U64 read_size = Min(to_read, (pn_end - pn_begin) * st->page_size - (read_off % st->page_size)); + + U64 page_off = (pn_begin * st->page_size) + (read_off % st->page_size); + String8 page = str8_substr(msf_data, r1u64(page_off, page_off + read_size)); + if (page.size != read_size) { break; } + // copy page data - MemoryCopy(stream_out_ptr, stream_page_base, copy_size); - stream_out_ptr += copy_size; + Assert(result.size + read_size <= dim_1u64(range_clamped)); + U8 *ptr = result.str + result.size; + MemoryCopy(ptr, page.str, read_size); + result.size += read_size; } - - U64 copy_size = (U64)(stream_out_ptr - stream_buf); - - U64 unused_buf_size = stream.size - copy_size; + + // release unused bytes + U64 unused_buf_size = dim_1u64(range_clamped) - result.size; arena_pop(arena, unused_buf_size); - - result = str8(stream_buf, copy_size); } ProfEnd(); return result; } +internal String8 +msf_data_from_stream_number(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn) +{ + return msf_data_from_stream_number_ex(arena, msf_data, st, sn, r1u64(0, max_U64), 8); +} + internal MSF_Parsed * msf_parsed_from_data(Arena *arena, String8 msf_data) { diff --git a/src/msf/msf_parse.h b/src/msf/msf_parse.h index df4afb85..afd1c3c2 100644 --- a/src/msf/msf_parse.h +++ b/src/msf/msf_parse.h @@ -41,6 +41,8 @@ struct MSF_Parsed //~ rjf: MSF Parser Functions internal MSF_RawStreamTable* msf_raw_stream_table_from_data(Arena *arena, String8 msf_data); +internal U64 msf_size_from_stream_number(MSF_RawStreamTable *st, MSF_StreamNumber sn); +internal String8 msf_data_from_stream_number_ex(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn, Rng1U64 range, U64 align); internal String8 msf_data_from_stream_number(Arena *arena, String8 msf_data, MSF_RawStreamTable *st, MSF_StreamNumber sn); internal MSF_Parsed* msf_parsed_from_data(Arena *arena, String8 msf_data); internal String8 msf_data_from_stream(MSF_Parsed *msf, MSF_StreamNumber sn); diff --git a/src/mule/mule_c.c b/src/mule/mule_c.c index e67e42fd..50a0f206 100644 --- a/src/mule/mule_c.c +++ b/src/mule/mule_c.c @@ -98,6 +98,9 @@ struct BitfieldType64 uint64_t is_free : 1; }; +static int mut_xarray[4] = {100, 101, 102, 103}; +static float mut_farray[4] = {100.5f, 101.5f, 102.5f, 103.5f}; + void c_type_with_bitfield_usage(void) { @@ -113,5 +116,11 @@ c_type_with_bitfield_usage(void) BitfieldType64 b64 = {0}; b64.size = 524288; b64.is_free = 1; - int abc = 0; + int abc = mut_xarray[0]; + mut_xarray[0] += 1; + abc += mut_xarray[0]; + abc += mut_xarray[1]; + abc += mut_xarray[2]; + float f = mut_farray[0] + mut_farray[1] + mut_farray[2] + mut_farray[3]; + int w = 0; } diff --git a/src/mule/mule_main.cpp b/src/mule/mule_main.cpp index 42204d0e..2d8e933c 100644 --- a/src/mule/mule_main.cpp +++ b/src/mule/mule_main.cpp @@ -6,6 +6,15 @@ ** stepping, breakpoints, evaluation, cross-module calls. */ +#if defined(__clang__) +#define _ALLOW_COMPILER_AND_STL_VERSION_MISMATCH 1 +#endif + +#if _WIN32 && _DEBUG +#pragma comment(linker, "/nodefaultlib:libcmt") +#pragma comment(lib, "libcmtd") +#endif + #include #include #include @@ -399,6 +408,21 @@ few_params1(Pair *pairs, int count, Function_No_Params_Type *no_params_type){ } +// +// NOTE(rjf): this doesn't work because MSVC - despite GENERATING DEBUG INFO +// FOR THE MyByte TYPEDEF - does not actually *reference* this typedef +// anywhere, and instead treats all `MyByte *`s as `char *`s, thus completely +// eliminating the point of the typedef and view. :( +// +typedef char MyByte; +raddbg_type_view(MyByte *, no_string($)); + +static void +variadic_params(char *fmt, ...) +{ + int x = 0; +} + static void type_coverage_eval_tests(void) { @@ -408,6 +432,9 @@ type_coverage_eval_tests(void) uint32_t a = (1<<31); int32_t b = (1<<31); + uint32_t abcd = 0xaabbccdd; + int64_t abcd64 = (int64_t)abcd; + char string[] = "Hello World!"; char longer_text[] = "Suppose there was some text\n" @@ -426,11 +453,14 @@ type_coverage_eval_tests(void) char data[4]; }; SomeDataStructured *some_data = (SomeDataStructured *)&some_data_with_a_string[0]; + char *string_ptr = &string[0]; const char *const_string = "Hello, World!"; const char const_string_array[] = "Hello, World!"; const char *const const_ptr_const_string = "Hello, World!"; + MyByte *non_string_byte_ptr = "Hello, World!"; + void *pointer = &basics; Basics *pointer_to_basics = &basics; Basics **pointer_to_pointer_to_basics = &pointer_to_basics; @@ -650,6 +680,14 @@ type_coverage_eval_tests(void) OutputDebugStringA("\n"); } + if(1) + { + OutputDebugStringA("this is inside a branch!\n"); + OutputDebugStringA("foo"); + OutputDebugStringA("bar"); + OutputDebugStringA("baz"); + } + const int32_t x1 = 3; const int32_t y1 = -10; const int32_t z1 = x1 + y1; @@ -666,12 +704,14 @@ type_coverage_eval_tests(void) int_vector.push_back(6); int_vector.push_back(7); +#if 0 std::unordered_map people = { {"Peter", 1}, {"Oliver", 2}, {"Jack", 3}, }; +#endif std::vector *pint_vector = &int_vector; std::vector &rint_vector = int_vector; @@ -685,6 +725,8 @@ type_coverage_eval_tests(void) SizedKind sized_kind = SizedKind_C; int x = (int)(Anonymous_D); + + variadic_params("foo", 123, 456); } //////////////////////////////// @@ -905,8 +947,6 @@ static int g_abc = 100; static float g_xyz = 21.f; static Alias1 g_kind = Kind_First; -// TODO(allen): more global test types - static void complicated_global_mutation(int *x){ *x = (int)g_xyz; @@ -917,8 +957,19 @@ cross_unit_global_mutation(void){ fixed_frac_bits = 10; } +static int +function_with_duplicate_local_statics(void) +{ + static char *l_abc = "foobar"; + static int l_xyz = 123; + static Kind l_kind = Kind_First; + int x = l_xyz + (int)(int64_t)(l_abc); + return x; +} + static void -global_eval_tests(void){ +global_eval_tests(void) +{ g_abc = 11*11; g_xyz = (float)g_abc - 21.f; @@ -941,6 +992,8 @@ global_eval_tests(void){ l_abc = g_abc*2; l_xyz = g_xyz*2; l_kind = (Alias1)(g_kind + 1); + + function_with_duplicate_local_statics(); } //////////////////////////////// @@ -2314,7 +2367,8 @@ overloaded_function(int x){ // NOTE(allen): Control Flow Stepping static void -control_flow_stepping_tests(void){ +control_flow_stepping_tests(void) +{ { int a = 1; if (a < 1){ @@ -2483,6 +2537,15 @@ control_flow_stepping_tests(void){ } while (i < 10); } +#if defined(__clang__) + for (int i = 0; i < 1; + ++i, ({ goto exit; })) + { + int x = 0; + } + exit:; +#endif + { int i = 17; @@ -3151,7 +3214,6 @@ mule_main(int argc, char** argv) mule_init(); - // NOTE(allen): Eval Tests type_coverage_eval_tests(); mutating_variables_eval_tests(); @@ -3184,9 +3246,6 @@ mule_main(int argc, char** argv) exception_filter_test(); - markup_tests(); - - // NOTE(allen): Stepping Tests control_flow_stepping_tests(); indirect_call_jump_stepping_tests(); @@ -3217,6 +3276,8 @@ mule_main(int argc, char** argv) interrupt_stepping_tests(); + markup_tests(); + exception_stepping_tests(); return(0); diff --git a/src/mule/old_test_debuggees/basic_stepping_test.c b/src/mule/old_test_debuggees/basic_stepping_test.c new file mode 100644 index 00000000..1dac1470 --- /dev/null +++ b/src/mule/old_test_debuggees/basic_stepping_test.c @@ -0,0 +1,59 @@ +/// test: { +/// windows: { +/// compile: "/Od /Z7 /c main.c /Fo:main.obj" +/// compile: "/Od /Z7 /c foo.c /Fo:foo.obj" +/// link: "/fixed /debug:full /dll foo.obj /out:foo.dll /implib:foo.lib" +/// link: "/fixed /debug:full main.obj foo.lib /out:main.exe" +/// launch: "main.exe" +/// } +/// linux: { +/// compile: "-O0 -g main.c foo.c -o main" +/// launch: "./main" +/// } +/// } +/// + +// TODO: linux: -no-pie crashes the tracer +// +// TODO: crashes +// compile: "-O0 -g foo.c -fPIC -shared -o libfoo.so" +// compile: "-O0 -g main.c -L. -lfoo -o main -Wl,-rpath,%CWD%" +// ... +// dw_compute_cfa dwarf_unwind.c:261:5 +// d_establish_frame_unwind_context__dwarf dbg_engine_ctrl.c:1946:25 +// d_unwind_from_thread dbg_engine_ctrl.c:2913:30 +// ... + +/// file: "foo.c" + +#if defined(_WIN32) +__declspec(dllexport) +#endif +int foo(int a) +{ /// 6: at + /// 7: step_over + return a + 1; /// 8: at + /// 9: step_out +} + +/// file: "main.c" + +#include + +#if defined(_WIN32) +__declspec(dllimport) +#endif +int foo(); + +int main() /// 1: step_into +{ /// 2: at + /// 3: step_over + int x = foo(123); /// 4: at + /// 5: step_into + /// 10: at: -2 + /// 11: step_over + printf("Hello, world!\n"); /// 12: at + /// 13: step_over + /// 14: run +} + diff --git a/src/mule/old_test_debuggees/gnu_sysv_hash.c b/src/mule/old_test_debuggees/gnu_sysv_hash.c new file mode 100644 index 00000000..b0f85258 --- /dev/null +++ b/src/mule/old_test_debuggees/gnu_sysv_hash.c @@ -0,0 +1,246 @@ +/// test: { +/// linux: { +/// skip: "" +/// compile: "-O0 -g sysv_module.c -fPIC -shared -Wl,--hash-style=sysv -o libsysv_module.so" +/// compile: "-O0 -g gnu_module.c -fPIC -shared -Wl,--hash-style=gnu -o libgnu_module.so" +/// compile: "-O0 -g main.c -L. -lsysv_module -lgnu_module -o main -Wl,-rpath,%CWD%,-z,now -fno-plt" +/// launch: "./main" +/// } +/// } + +/// file: "sysv_module.c" + +__attribute__((visibility("default"))) int sysv_default_object = 10; +__attribute__((visibility("protected"))) int sysv_protected_object = 11; +__attribute__((visibility("hidden"))) int sysv_hidden_object = 12; +__attribute__((visibility("internal"))) int sysv_internal_object = 13; +__attribute__((weak, visibility("default"))) int sysv_weak_object = 14; + +__thread __attribute__((visibility("default"))) int sysv_tls_object = 15; +__thread __attribute__((visibility("protected"))) int sysv_protected_tls_object = 16; +__thread __attribute__((weak, visibility("default"))) int sysv_weak_tls_object = 17; +static __thread int sysv_static_tls_object = 18; +static int sysv_static_object = 19; + +/* +extern long write(int, const void *, unsigned long); +extern char sysv_notype_symbol; +extern char sysv_hidden_notype_symbol; +extern char sysv_internal_notype_symbol; + +__asm__(".globl sysv_notype_symbol\n" + "sysv_notype_symbol:\n" + " .byte 0\n" + ".globl sysv_hidden_notype_symbol\n" + ".hidden sysv_hidden_notype_symbol\n" + "sysv_hidden_notype_symbol:\n" + " .byte 0\n" + ".globl sysv_internal_notype_symbol\n" + ".internal sysv_internal_notype_symbol\n" + "sysv_internal_notype_symbol:\n" + " .byte 0\n"); +*/ + +__attribute__((visibility("default"))) int +sysv_default_func(int x) +{ + return x + 101; /// 1: { run_to_line at } +} + +__attribute__((weak, visibility("default"))) int +sysv_weak_func(int x) +{ + return x + 102; /// 2: { run_to_line at } +} + +__attribute__((visibility("protected"))) int +sysv_protected_func(int x) +{ + return x + 103; /// 3: { run_to_line at } +} + +__attribute__((visibility("internal"))) int +sysv_internal_func(int x) +{ + return x + 104; /// 4: { run_to_line at } +} + +static int +sysv_ifunc_impl(int x) +{ + return x + 105; /// 5: { run_to_line at } +} + +static void * +sysv_ifunc_resolver(void) +{ + return sysv_ifunc_impl; +} + +__attribute__((ifunc("sysv_ifunc_resolver"), visibility("default"))) int sysv_ifunc_func(int x); + +__attribute__((visibility("hidden"))) int +sysv_hidden_func(int x) +{ + return x + sysv_hidden_object; /// 6: { run_to_line at } +} + +static int +sysv_static_func(int x) +{ + return x + sysv_static_object; /// 7: { run_to_line at } +} + +__attribute__((visibility("default"))) int +sysv_run_all(int x) +{ + int result = 0; + result += sysv_default_func(x); + result += sysv_weak_func(x); + result += sysv_protected_func(x); + result += sysv_internal_func(x); + result += sysv_ifunc_func(x); + result += sysv_hidden_func(x); + result += sysv_static_func(x); + result += sysv_default_object; + result += sysv_weak_object; + result += sysv_protected_object; + result += sysv_hidden_object; + result += sysv_tls_object; + result += sysv_weak_tls_object; + result += sysv_protected_tls_object; + result += sysv_static_tls_object; + result += sysv_static_object; + result += sysv_internal_object; + //result += (int)((unsigned long)&sysv_notype_symbol & 1); + //result += (int)((unsigned long)&sysv_hidden_notype_symbol & 1); + //result += (int)((unsigned long)&sysv_internal_notype_symbol & 1); + //result += (int)write(-1, 0, 0); + return result; /// 8: { run_to_line at } +} + +/// file: "gnu_module.c" + +__attribute__((visibility("default"))) int gnu_default_object = 20; +__attribute__((weak, visibility("default"))) int gnu_weak_object = 21; +__attribute__((visibility("protected"))) int gnu_protected_object = 22; +__attribute__((visibility("hidden"))) int gnu_hidden_object = 23; +__attribute__((visibility("internal"))) int gnu_internal_object = 24; + +__thread __attribute__((visibility("default"))) int gnu_tls_object = 25; +__thread __attribute__((weak, visibility("default"))) int gnu_weak_tls_object = 26; +__thread __attribute__((visibility("protected"))) int gnu_protected_tls_object = 27; +static __thread int gnu_static_tls_object = 28; +static int gnu_static_object = 29; + +/* +extern long write(int, const void *, unsigned long); +extern char gnu_notype_symbol; +extern char gnu_hidden_notype_symbol; +extern char gnu_internal_notype_symbol; + +__asm__(".globl gnu_notype_symbol\n" + "gnu_notype_symbol:\n" + " .byte 0\n" + ".globl gnu_hidden_notype_symbol\n" + ".hidden gnu_hidden_notype_symbol\n" + "gnu_hidden_notype_symbol:\n" + " .byte 0\n" + ".globl gnu_internal_notype_symbol\n" + ".internal gnu_internal_notype_symbol\n" + "gnu_internal_notype_symbol:\n" + " .byte 0\n"); +*/ + +__attribute__((visibility("default"))) int +gnu_default_func(int x) +{ + return x * 101; /// 9: { run_to_line at } +} + +__attribute__((weak, visibility("default"))) int +gnu_weak_func(int x) +{ + return x * 102; /// 10: { run_to_line at } +} + +__attribute__((visibility("protected"))) int +gnu_protected_func(int x) +{ + return x * 103; /// 11: { run_to_line at } +} + +__attribute__((visibility("internal"))) int +gnu_internal_func(int x) +{ + return x * 104; /// 12: { run_to_line at } +} + +static int +gnu_ifunc_impl(int x) +{ + return x * 105; /// 13: { run_to_line at } +} + +static void * +gnu_ifunc_resolver(void) +{ + return gnu_ifunc_impl; +} + +__attribute__((ifunc("gnu_ifunc_resolver"), visibility("default"))) int gnu_ifunc_func(int x); + +__attribute__((visibility("hidden"))) int +gnu_hidden_func(int x) +{ + return x * gnu_hidden_object; /// 14: { run_to_line at } +} + +static int +gnu_static_func(int x) +{ + return x * gnu_static_object; /// 15: { run_to_line at } +} + +__attribute__((visibility("default"))) int +gnu_run_all(int x) +{ + int result = 0; + result += gnu_default_func(x); + result += gnu_weak_func(x); + result += gnu_protected_func(x); + result += gnu_internal_func(x); + result += gnu_ifunc_func(x); + result += gnu_hidden_func(x); + result += gnu_static_func(x); + result += gnu_default_object; + result += gnu_weak_object; + result += gnu_protected_object; + result += gnu_hidden_object; + result += gnu_tls_object; + result += gnu_weak_tls_object; + result += gnu_protected_tls_object; + result += gnu_static_tls_object; + result += gnu_static_object; + result += gnu_internal_object; + /* + result += (int)((unsigned long)&gnu_notype_symbol & 1); + result += (int)((unsigned long)&gnu_hidden_notype_symbol & 1); + result += (int)((unsigned long)&gnu_internal_notype_symbol & 1); + result += (int)write(-1, 0, 0); + */ + return result; /// 16: { run_to_line at } +} + +/// file: "main.c" + +int sysv_run_all(int x); +int gnu_run_all(int x); + +int main() +{ + int result = 0; + result += sysv_run_all(123); /// 17: { run_to_line at } + result += gnu_run_all(321); /// 18: { run_to_line at } + return result; /// 19: { run_to_line at run } +} diff --git a/src/mule/old_test_debuggees/mule.cpp b/src/mule/old_test_debuggees/mule.cpp new file mode 100644 index 00000000..e81a9d52 --- /dev/null +++ b/src/mule/old_test_debuggees/mule.cpp @@ -0,0 +1,3673 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +/// test: { +/// windows: { +/// skip: "" +/// compile: "/Z7 /c /I%SRC% /EHsc mule_main.cpp mule_inline.cpp" +/// compile: "/Z7 /c /I%SRC% mule_c.c" +/// compile: "/Z7 /c /O2 mule_o2.cpp" +/// compile: "/Z7 /c mule_module.cpp" +/// link: "/DEBUG:FULL /out:mule_main.exe mule_main.obj mule_inline.obj mule_c.obj mule_o2.obj" +/// link: "/DEBUG:FULL /DLL mule_module.obj" +/// launch: "mule_main.exe" +/// } +/// } + +/// file: "mule_c.h" + +void c_type_coverage_eval_tests(void); +void c_type_with_bitfield_usage(void); + +/// file: "mule_c.c" + +/* +* Program to run in debugger organized to provide tests for +* single threaded stepping, breakpoints, evaluation. +*/ + +//////////////////////////////// +// NOTE(allen): Complex Types + +#include + +void +c_type_coverage_eval_tests(void){ +#if _WIN32 + _Fcomplex x = _FCbuild(0.f, 1.f); + _Dcomplex y = _Cbuild(0.f, -1.f); + +#else + float complex x = 0.f + 1.f*I; + double complex y = 0.0 - 1.0*I; + +#endif +} + +//////////////////////////////// +// NOTE(allen): Reuse Type Names From Another Module + +#include + +typedef struct Basics{ + double a; + float b; + unsigned long long c; + long long d; + unsigned int e; + int f; + unsigned short g; + short h; + unsigned char i; + char j; + + int z; +} Basics; + +typedef struct Basics_Stdint{ + double x1; + float x2; + uint64_t x3; + int64_t x4; + uint32_t x5; + int32_t x6; + uint16_t x7; + int16_t x8; + uint8_t x9; + int8_t x0; +} Basics_Stdint; + +typedef struct Pair{ + int i; + float f; +} Pair; + +void +c_versions_of_same_types(void){ + Basics basics = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, }; + Basics_Stdint basics_stdint = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, }; + Pair memory_[] = { + {100, 1.f}, + {101, 2.f}, + {102, 4.f}, + {103, 8.f}, + {104, 16.f}, + {105, 32.f}, + }; + + int x = memory_[3].i + basics.f; +} + +//////////////////////////////// +//~ NOTE(rjf): Bitfields + +typedef struct TypeWithBitfield TypeWithBitfield; +struct TypeWithBitfield +{ + int v : 14; + int w : 4; + int x : 32; + int y : 4; + int z : 10; +}; + +typedef struct BitfieldType64 BitfieldType64; +struct BitfieldType64 +{ + uint64_t size : 63; + uint64_t is_free : 1; +}; + +static int mut_xarray[4] = {100, 101, 102, 103}; +static float mut_farray[4] = {100.5f, 101.5f, 102.5f, 103.5f}; + +void +c_type_with_bitfield_usage(void) +{ + TypeWithBitfield b = {0}; + b.v = 100; + b.w = 6; + b.x = 434512; + b.y = 7; + b.z = 12; + int x = (b.v + b.x); + int y = (b.y - b.z); + int z = (b.w) + 5; + BitfieldType64 b64 = {0}; + b64.size = 524288; + b64.is_free = 1; + int abc = mut_xarray[0]; + mut_xarray[0] += 1; + abc += mut_xarray[0]; + abc += mut_xarray[1]; + abc += mut_xarray[2]; + float f = mut_farray[0] + mut_farray[1] + mut_farray[2] + mut_farray[3]; + int w = 0; +} + +/// file: "inline_body.cpp" + +bias = (bias^x)&7; +x -= bias; +x *= 2; +x *= x; +x += bias; + +/// file: "mule_inline.cpp" + +/* +** Make sure we have an inlined function +*/ + +#if defined(_MSC_VER) +# define FORCE_INLINE __forceinline +#elif defined(__clang__) || defined(__GNUC__) +# define FORCE_INLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +//////////////////////////////// +// NOTE(allen): Inline Stepping + +unsigned int fixed_frac_bits = 5; +static unsigned int bias = 7; + +static FORCE_INLINE unsigned int +fixed_mul(unsigned int a, unsigned int b){ + unsigned int c = (((a - bias)*(b - bias)) >> fixed_frac_bits) + bias; + return(c); +} + +static FORCE_INLINE unsigned int +multi_file_inlinesite(unsigned int x){ + // force compiler to generate annotations for code that's inside another file +#include "inline_body.cpp" + return x >> fixed_frac_bits; +} + +static unsigned int test_value = 0; + +unsigned int +inline_stepping_tests(void){ + bias = 15; + + // NOTE(nick): Interesting that CL does not generate inline site symbols in order of apperance here unlike clang. + + // CL: + // BinaryAnnotations: CodeLengthAndCodeOffset d 0 + // BinaryAnnotation Length: 4 bytes (1 bytes padding) + // + // Clang: + // BinaryAnnotations: LineOffset 1 CodeLength d + // BinaryAnnotation Length: 4 bytes (0 bytes padding) + unsigned int x = fixed_mul(5001, 7121); + + // CL: + // BinaryAnnotations: CodeOffsetAndLineOffset d File 0 CodeOffsetAndLineOffset 22 LineOffset 1e + // CodeLengthAndCodeOffset 2 3 + // BinaryAnnotation Length: 12 bytes (1 bytes padding) + // + // Clang: + // BinaryAnnotations: File 18 LineOffset ffffffe6 CodeOffset d CodeOffsetAndLineOffset 22 + // File 0 LineOffset 1e CodeOffset 3 CodeLength 2 + // BinaryAnnotation Length: 16 bytes (0 bytes padding) + unsigned int z = multi_file_inlinesite(x); + return(z); +} + +/// file: "mule_o2.cpp" + +static int important_s32 = 0; +static float important_f32 = 0; + +#if _WIN32 +#include +#endif + +static void +do_something_with_intermediate_values(void) +{ + static int another_important_s32 = 0; + static float another_important_f32 = 0; + + another_important_s32 = (int)important_f32; + another_important_f32 = (float)important_s32; + +#if _WIN32 + char buffer[256] = "Hello, World!\n"; + buffer[0] += important_s32 + another_important_s32; + buffer[1] += (int)another_important_f32 * important_f32; + OutputDebugStringA(buffer); +#endif +} + +static void +store_important_s32(int *ptr) +{ + important_s32 = *ptr; +} + +static void +store_important_f32(float *ptr) +{ + important_f32 = *ptr; +} + +void +optimized_build_eval_tests(void) +{ + int simple_sum = 0; + for(int i = 0; i < 10000; i += 1) + { + simple_sum += i; + } + store_important_s32(&simple_sum); + + do_something_with_intermediate_values(); + + static struct {float x, y;} vec2s[] = + { + { 10.f, 76.f }, + { 40.f, 50.f }, + { -230.f, 20.f }, + { 27.f, 27.f }, + { 57.f, -57.f }, + { -37.f, 97.f }, + { 99.f, 67.f }, + { 99.f, 37.f }, + { 99.f, 57.f }, + }; + { + struct{float x, y;}sum = {0}; + int count = sizeof(vec2s)/sizeof(vec2s[0]); + for(int i = 0; i < count; i += 1) + { + sum.x += vec2s[i].x; + sum.y += vec2s[i].y; + } + struct{float x, y;}avg = {sum.x/count, sum.y/count}; + float f32 = avg.x * avg.y; + store_important_f32(&f32); + } + + do_something_with_intermediate_values(); + + int factorial = 1; + for(int i = 10; i > 0; i -= 1) + { + factorial *= i; + } + store_important_s32(&factorial); + + do_something_with_intermediate_values(); +} + +//////////////////////////////// +// NOTE(allen): Struct Parameters Eval + +struct OptimizedBasics{ + char a; + unsigned char b; + short c; + unsigned short d; + int e; + unsigned int f; + long long g; + unsigned long long h; + float i; + double j; +}; + +static void +optimized_struct_parameter_helper(int *ptr, OptimizedBasics basics) +{ + basics.a += *ptr; + basics.a += 1; + basics.a += 1; +} + +void +optimized_struct_parameters_eval_tests(void) +{ + int x = 10; + OptimizedBasics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + optimized_struct_parameter_helper(&x, basics); +} + +/// file: "mule_main.cpp" + +/* +** Program to run in debugger organized to provide tests for +** stepping, breakpoints, evaluation, cross-module calls. +*/ + +#define EvalTest(expr, match) + +#if _WIN32 && _DEBUG +#pragma comment(linker, "/nodefaultlib:libcmt") +#pragma comment(lib, "libcmtd") +#endif + +#include +#include +#include +#include +#if !_WIN32 +# define RADDBG_MARKUP_STUBS +#endif +#define RADDBG_MARKUP_IMPLEMENTATION +#include "lib_raddbg_markup/raddbg_markup.h" + +//////////////////////////////// +// NOTE(allen): System For DLL Testing + +typedef void TestFunction(void); + +static void mule_init(void); +static TestFunction* mule_get_module_function(char *name); + +#if _WIN32 + +#include + +HMODULE mule_dll = 0; + +static void +mule_init(void){ + mule_dll = LoadLibraryA("mule_module.dll"); +} + +static TestFunction* +mule_get_module_function(char *name){ + TestFunction *result = (TestFunction*)GetProcAddress(mule_dll, name); + return(result); +} + +#else + +static void +mule_init(void){ + // TODO(allen): implement +} + +static TestFunction* +mule_get_module_function(char *name){ + // TODO(allen): implement + return(0); +} + +#endif + + +//////////////////////////////// +// NOTE(nick): Entry Point + +int +mule_main(int argc, char **argv); + +#if _WIN32 +#include +#include +int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ + int argc = __argc; + char **argv = __argv; + int result = mule_main(argc, argv); + return(result); +} +#else +int main(int argc, char **argv){ + return(mule_main(argc, argv)); +} +#endif + +//////////////////////////////// +// NOTE(nick): BSS section test + +#if defined(__clang__) +# pragma clang section bss="muleBSS" +#elif defined(_MSC_VER) +// NOTE(nick): clang-cl is borken it allocates memory and sets Initialized Flag on the seciton. +// This is was reported by Jeff => https://bugs.llvm.org/show_bug.cgi?id=47939 +// +// This is still unresolved, last checked Sep 11, 2023. +# pragma bss_seg("muleBSS") +#else +# error "bss not defined" +#endif +char global_variable_in_bss[4096*10000]; + +//////////////////////////////// +// NOTE(allen): Inline Stepping (Built In Separate Unit) + +extern unsigned int fixed_frac_bits; +unsigned int inline_stepping_tests(void); + + +//////////////////////////////// +// NOTE(rjf): -O2 Optimized Code (Built In Separate Unit) + +void optimized_build_eval_tests(void); +void optimized_struct_parameters_eval_tests(void); + +//////////////////////////////// +// NOTE(allen): Type Coverage Eval + +#include + +struct Basics +{ + char a; + unsigned char b; + short c; + unsigned short d; + int e; + unsigned int f; + long long g; + unsigned long long h; + float i; + double j; + int z; +}; + +struct Basics_Stdint +{ + int8_t a; + uint8_t b; + int16_t c; + uint16_t d; + int32_t e; + uint32_t f; + int64_t g; + uint64_t h; + float i; + double j; +}; + +struct Pair +{ + int x; + float y; +}; + +struct Fixed_Array +{ + Pair pairs[10]; + int count; +}; + +struct Dynamic_Array +{ + Pair *pairs; + int count; +}; +raddbg_type_view(Dynamic_Array, slice($)); + +template +struct TemplatedDynamicArray +{ + T *v; + int count; +}; +raddbg_type_view(TemplatedDynamicArray, rows($, count, array(v, count))); + +template +struct OpaqueTemplatedDynamicArray +{ + void *v; + int count; +}; +raddbg_type_view(OpaqueTemplatedDynamicArray, array(cast(type *)v, count)); + +struct Struct_With_Embedded_Arrays +{ + int x; + float y; + Pair pairs[10]; + char z; +}; + +typedef unsigned int Custom_Index_Type; + +typedef void Function_No_Params_Type(void); +typedef void Function_Few_Params_Type(Pair *pairs, int count, Function_No_Params_Type *no_params_type); + +static Function_No_Params_Type *ty_no_params = 0; +static Function_Few_Params_Type *ty_few_params = 0; + +struct Callback{ + Function_Few_Params_Type *few_params; + Function_No_Params_Type *no_params; + Pair pair; +}; + +union Vector_R2 +{ + struct + { + float x; + float y; + }; + float v[2]; +}; +raddbg_type_view(Vector_R2, rows($, x, y)); + +typedef union Matrix4x4F32 Matrix4x4F32; +union Matrix4x4F32 +{ + float elements[4][4]; +}; +raddbg_type_view(Matrix4x4F32, columns($.elements, $[0], $[1], $[2], $[3])); + +union PackedF16 +{ + uint16_t v; + struct + { + uint16_t mantissa : 10; + uint16_t exponent : 5; + uint16_t sign : 1; + }; +}; +raddbg_type_view(PackedF16, + exponent == 0 ? (0.00006103515625f*mantissa/1024.f) : + (exponent == 31 && mantissa == 0 && sign == 1) ? "-infinity" : + (exponent == 31 && mantissa == 0 && sign == 1) ? "+infinity" : + (exponent == 31) ? "NaN" : + (exponent < 15) ? (1.f/(1<<(15 - exponent)) * (sign * -2 + 1.f) * (1.f + mantissa/1024.f)) : + (exponent > 15) ? ((1<<(exponent-15)) * (sign * -2 + 1.f) * (1.f + mantissa/1024.f)) : + ((sign * -2 + 1) * 1.f + mantissa/1024.f)); + +enum Kind +{ + Kind_Negative = -1, + Kind_None, + Kind_First, + Kind_Second, + Kind_Third, + Kind_Fourth, + Kind_COUNT, +}; + +enum Flag +{ + Flag_None = 0, + Flag_First = 1, + Flag_Second = 2, + Flag_Third = 4, + Flag_Fourth = 8, + Flag_AllMoreNarrow = 0xFF, + Flag_AllNarrow = 0xFFFF, + Flag_All = 0xFFFFFFFF, +}; + +struct Has_Enums +{ + Kind kind; + Flag flags; +}; + +struct Discriminated_Union +{ + Kind kind; + union + { + struct + { + int x; + int y; + Vector_R2 vector; + } first; + Pair second; + struct + { + Function_Few_Params_Type *few_params; + Pair pairs[4]; + } third; + struct + { + Kind sub_kind; + Flag flags; + } fourth; + }; +}; +raddbg_type_view(Discriminated_Union, + kind == Kind.First ? first : + kind == Kind.Second ? second : + kind == Kind.Third ? third : + kind == Kind.Fourth ? fourth : + $); + +struct Crazy_Union +{ + Kind kind; + union + { + struct + { + int first_and_third__x; + int first_and_third__y; + int first_and_third__z; + } first_and_third; + struct + { + char *second__name; + Pair second__pairs[16]; + } second; + }; + union + { + struct + { + char *first__name; + int first__x; + } first; + struct + { + char *third__name; + Function_Few_Params_Type *third__few_params; + } third; + }; +}; +raddbg_type_view(Crazy_Union, + kind == Kind.First ? rows($, first_and_third, first) : + kind == Kind.Second ? rows($, second) : + kind == Kind.Third ? rows($, first_and_third, third) : + kind == Kind.Fourth ? kind : + $); + +struct Linked_List{ + Linked_List *next; + Linked_List *prev; + int x; +}; + +enum{ + Anonymous_A, + Anonymous_B, + Anonymous_C, + Anonymous_D, +}; + +typedef uint32_t SizedKind; +enum SizedKindEnum +{ + SizedKind_A, + SizedKind_B, + SizedKind_C, + SizedKind_D, +}; + +typedef Kind Alias1; +typedef Flag Alias2; +typedef Has_Enums Alias3; +typedef Discriminated_Union Alias4; + +struct Has_A_Pre_Forward_Reference{ + struct Gets_Referenced_Forwardly *pointer; +}; + +struct Gets_Referenced_Forwardly{ + int x; + int y; +}; + +struct Has_A_Post_Forward_Reference{ + struct Gets_Referenced_Forwardly value; +}; + +struct TypeWithMemberFunction +{ + int x; + int y; + int z; + char *name; + __declspec(noinline) void SetInfo(int _x, int _y, char *_name) + { + x = _x; + y = _y; + z = 0; + name = _name; + OutputDebugStringA("setting info\n"); + } +}; + +static void +no_params1(void){ + +} + +static void +few_params1(Pair *pairs, int count, Function_No_Params_Type *no_params_type){ + +} + +// +// NOTE(rjf): this doesn't work because MSVC - despite GENERATING DEBUG INFO +// FOR THE MyByte TYPEDEF - does not actually *reference* this typedef +// anywhere, and instead treats all `MyByte *`s as `char *`s, thus completely +// eliminating the point of the typedef and view. :( +// +typedef char MyByte; +raddbg_type_view(MyByte *, no_string($)); + +static void +variadic_params(char *fmt, ...) +{ + int x = 0; +} + +static void +type_coverage_eval_tests(void) +{ + Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + + uint32_t a = (1<<31); + int32_t b = (1<<31); + + uint32_t abcd = 0xaabbccdd; + int64_t abcd64 = (int64_t)abcd; + + char string[] = "Hello World!"; + char longer_text[] = + "Suppose there was some text\n" + "With multiple lines in it\r\n" + "\t> What ways might it be rendered?\n" + "\t> How would it deal with line endings?\r\n"; + wchar_t a_wide_string[] = + L"This is a string, but instead of being encoded in a stream of bytes,\n" + L"it is encoded in a stream of 2-byte packages!\n"; + char some_data_with_a_string[] = + { + 'H', 'e', 'l', 'l', 'o', 27, 27, 2, 27, 125, + }; + struct SomeDataStructured + { + char data[4]; + }; + SomeDataStructured *some_data = (SomeDataStructured *)&some_data_with_a_string[0]; + char *string_ptr = &string[0]; + + const char *const_string = "Hello, World!"; + const char const_string_array[] = "Hello, World!"; + const char *const const_ptr_const_string = "Hello, World!"; + + MyByte *non_string_byte_ptr = "Hello, World!"; + + void *pointer = &basics; + Basics *pointer_to_basics = &basics; + Basics **pointer_to_pointer_to_basics = &pointer_to_basics; + + Fixed_Array fixed = + { + { + { 3, 4.f}, + { 5, 6.f}, + { 7, 8.f}, + { 9, 10.f}, + {11, 12.f}, + {13, 14.f}, + {15, 16.f}, + {17, 18.f}, + {19, 20.f}, + }, + 9 + }; + Pair memory_[] = + { + {100, 1.f}, + {101, 2.f}, + {102, 4.f}, + {103, 8.f}, + {104, 16.f}, + {105, 32.f}, + }; + Dynamic_Array dynamic = + { + memory_, + 6 + }; + EvalTest(dynamic[0].i, 100); EvalTest(dynamic[0].f, 1.f); + EvalTest(dynamic[1].i, 101); EvalTest(dynamic[1].f, 2.f); + EvalTest(dynamic[2].i, 102); EvalTest(dynamic[2].f, 4.f); + + TemplatedDynamicArray templated_dynamic = {dynamic.pairs, dynamic.count}; + TemplatedDynamicArray templated_dynamics[] = + { + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + }; + + OpaqueTemplatedDynamicArray otd = {dynamic.pairs, dynamic.count}; + + raddbg_pin(columns(sequence(6), fixed.pairs[$], memory_[$])); + raddbg_pin(basics); + raddbg_pin(fixed); + raddbg_pin(pointer); + raddbg_pin(dynamic); + + Struct_With_Embedded_Arrays swea = {0}; + { + swea.x = 4; + swea.y = 23.5f; + swea.pairs[0].x = 100; + swea.pairs[0].y = 123.f; + swea.pairs[2].x = 300; + swea.pairs[2].y = 323.f; + swea.pairs[5].x = 600; + swea.pairs[5].y = 623.f; + swea.z = 'z'; + } + + Struct_With_Embedded_Arrays *swea_ptr = &swea; + int access_via_ptr_member = swea_ptr->x; + + Custom_Index_Type custom_index = 42; + Custom_Index_Type more_custom_indices[] = { + 04,13,22,31,40 + }; + + Function_No_Params_Type *ptr_no_params = no_params1; + Function_No_Params_Type **ptr_ptr_no_params = &ptr_no_params; + Function_Few_Params_Type *ptr_few_params = few_params1; + Function_Few_Params_Type **ptr_ptr_few_params = &ptr_few_params; + Callback callback = {few_params1, no_params1, {1, 2.f}}; + + Matrix4x4F32 matrix = + { + { + {1.f, 0.f, 0.f, 0.f}, + {0.f, 1.f, 0.f, 0.f}, + {0.f, 0.f, 1.f, 0.f}, + {0.f, 0.f, 0.f, 1.f}, + } + }; + + Vector_R2 vector = {1.f, 2.f}; + + Has_Enums has_enums = {(Kind)4, (Flag)7}; + + struct EnumBitfields + { + Kind k1 : 4; + Kind k2 : 3; + Kind k3 : 1; + Kind k4 : 16; + }; + + EnumBitfields enum_bitfields = {}; + enum_bitfields.k1 = Kind_First; + enum_bitfields.k2 = Kind_Second; + enum_bitfields.k3 = Kind_None; + enum_bitfields.k4 = Kind_Fourth; + + Crazy_Union crazy_union = {}; + + crazy_union.kind = Kind_First; + crazy_union.kind = Kind_Second; + crazy_union.kind = Kind_Third; + crazy_union.kind = Kind_Fourth; + + Discriminated_Union discriminated_union = {}; + + discriminated_union.kind = Kind_First; + discriminated_union.first.x = 16; + discriminated_union.first.y = 8; + discriminated_union.first.vector.x = 4.f; + discriminated_union.first.vector.y = 2.f; + + discriminated_union.kind = Kind_Second; + discriminated_union.second.x = 123; + discriminated_union.second.y = 3.14f; + + discriminated_union.kind = Kind_Third; + discriminated_union.third.few_params = few_params1; + discriminated_union.third.pairs[0] = memory_[0]; + discriminated_union.third.pairs[1] = memory_[1]; + discriminated_union.third.pairs[2] = memory_[2]; + discriminated_union.third.pairs[3] = memory_[3]; + + discriminated_union.kind = Kind_Fourth; + discriminated_union.fourth.sub_kind = Kind_First; + discriminated_union.fourth.flags = (Flag)7; + + Linked_List list = {&list, &list, 0}; + + struct SLLNode + { + SLLNode *next; + SLLNode *the_real_next_ptr; + int x; + }; + SLLNode node6 = {0, 0, 6}; + SLLNode node5 = {0, &node6, 5}; + SLLNode node4 = {0, &node5, 4}; + SLLNode node3 = {0, &node4, 3}; + SLLNode node2 = {0, &node3, 2}; + SLLNode node1 = {0, &node2, 1}; + raddbg_pin(list(node1, the_real_next_ptr)); + + node6.next = &node1; + + Alias1 a1 = has_enums.kind; + Alias2 a2 = has_enums.flags; + Alias3 a3 = has_enums; + Alias4 a4 = discriminated_union; + + Has_A_Pre_Forward_Reference r1 = {0}; + Has_A_Post_Forward_Reference r2 = {0}; + + Basics &basics_ref = basics; + const Basics *basics_const_ptr = &basics; + const Basics &basics_const_ref = basics; + + union + { + int x; + char y[4]; + } integer_slicing = {123456789}; + + typedef struct stks + { + void *left; + size_t len; + } stks; + stks stks_test[256] = {0}; + stks *stks_first = &stks_test[0]; + stks *stks_ptr = stks_first + 8; + + TypeWithMemberFunction twmf = {0}; + twmf.SetInfo(123, 456, "foobar"); + + TestFunction *function = mule_get_module_function("dll_type_eval_tests"); + function(); + + int abc = 0; + for(int i = 0; i < 1000; i += 1) + { + if(i == 500) + { + abc+= 1; + } + int a = i + abc; + int b = a*5; + } + + char *names[] = + { + "samwise gamgee", "mithrandir", "grima wormtongue", "theodred", "theoden", "eomer", "eowyn", + "arwen", "sauron", "baggins", "proudfoot", "hardbottle", "bag end", "hobbiton", + "bree", "imladris", "isengard", "moria", "mount doom", "helm's deep", "bracegirdle", + "buckleberry ferry", "amun sul", "frodo", "bilbo", "buckland", "fangorn", "elrond", + "numenor", "treebeard", "shadowfax", "brego", "erod", "azufel", "dunedain", + "saruman", "aragorn", "gandalf", "meriadoc brandybuck", "peregrine took", "faramir", "boromir", + "ecthelion", "denethor", "mithrandil", "isildur", "haldir", "elessar", "elendil", + "dead marsh", "rohan", "gondor", "anarion", "earendil", "cirith ungol", "minas morghul", + "minas tirith", "barad-dur", "rivendell", "pellenor", "ithilien", "anduril", "narsil", + "edoras", "mordor", "osgiliath", + }; + + for(int i = 0; i < sizeof(names)/sizeof(names[0]); i += 1) + { + OutputDebugStringA(names[i]); + OutputDebugStringA("\n"); + } + + if(1) + { + OutputDebugStringA("this is inside a branch!\n"); + OutputDebugStringA("foo"); + OutputDebugStringA("bar"); + OutputDebugStringA("baz"); + } + + const int32_t x1 = 3; + const int32_t y1 = -10; + const int32_t z1 = x1 + y1; + + std::string small_cplusplus_string = "smallstr"; + std::string cplusplus_string = "This is a C++ string!"; + + std::vector int_vector; + int_vector.push_back(1); + int_vector.push_back(2); + int_vector.push_back(3); + int_vector.push_back(4); + int_vector.push_back(5); + int_vector.push_back(6); + int_vector.push_back(7); + + std::unordered_map people = + { + {"Peter", 1}, + {"Oliver", 2}, + {"Jack", 3}, + }; + + std::vector *pint_vector = &int_vector; + std::vector &rint_vector = int_vector; + + std::vector dynamic_array_vector; + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + + SizedKind sized_kind = SizedKind_C; + + variadic_params("foo", 123, 456); + + int x = (int)(Anonymous_D); +} + +//////////////////////////////// +// NOTE(allen): Mutating Variables Eval + +static const int con_some_constant = 4; +static const float con_some_constant_f = 0.04f; + +static int mut_x = 0; +static int mut_y; +static int mut_xarray[4] = {0, 1, 2, 3}; +static int *mut_xptr; + +static float mut_f = 0; +static float mut_g; +static float mut_farray[4] = {0.5f, 1.5f, 2.5f, 3.5f}; +static float *mut_fptr; + +static float mut_arrayarray[3][3]; + +static Linked_List mut_link; + +static void +mutate_in_function(int *array, int count){ + for (int i = 0; i < count; i += 1){ + array[i] += 1; + } + + for (int i = 0; i < 4; i += 1){ + mut_farray[i] += 1.f; + } +} + +static void +mutating_variables_eval_tests(void){ + //////////////////////////////// + // NOTE(allen): Basics + + int array_literal[10] = { + 10, 20, 30, 40, 50, 60, 70, 80, 90, + }; + + Basics struct_literal = { + -1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001, + }; + + array_literal[0] = struct_literal.e = 9; + + int x = mut_x; + int y = x + 10 + con_some_constant; + mut_y = y; + mut_xarray[0] += 0; + mut_xarray[1] += x; + mut_xarray[2] += y; + mut_xarray[3] += x + y; + + mut_xptr = &mut_xarray[2]; + + *mut_xptr -= (y - x)/2; + *(mut_xptr - 1) += 11; + + float f = mut_f + .333f + con_some_constant_f; + float g = f + 10.1f; + mut_g = g; + mut_farray[0] += 0.000001f; + mut_farray[1] += f; + mut_farray[2] += g; + mut_farray[3] += f + g; + + mut_fptr = &mut_farray[3]; + + *mut_fptr -= (g - f)*0.5f; + *(mut_fptr - 1) += 1.f; + + float a = 0.777f; + for (int i = 0; i < 3; i += 1){ + float b = a*a - 1.f; + for (int j = 0; j < 3; j += 1){ + mut_arrayarray[i][j] = b; + b += 0.111f; + } + a += 0.333f; + } + + //////////////////////////////// + // NOTE(allen): Changes in functions + + mutate_in_function(array_literal, 10); + + mutate_in_function(array_literal, 10); + + //////////////////////////////// + // NOTE(allen): Changes through pointers + + Basics basic = struct_literal; + Basics advanced = struct_literal; + + Basics *struct_pointer = &basic; + + basic.a += 1; + advanced.a += 1; + struct_pointer->a += 1; + + struct_pointer = &advanced; + + basic.b += 1; + advanced.b += 1; + struct_pointer->b += 1; + + Linked_List links[5]; + for (int i = 0; i < 5; i += 1){ + links[i].next = &links[i + 1]; + links[i].prev = &links[i - 1]; + links[i].x = i; + } + links[0].prev = 0; + links[4].next = &mut_link; + mut_link.prev = &links[4]; + mut_link.next = 0; + mut_link.x = 1000; + + Linked_List *link_ptr = links; + + link_ptr = link_ptr->next; + + link_ptr = &links[4]; + link_ptr = &mut_link; + + Linked_List sentinel = {0}; + sentinel.x = -1; + sentinel.next = &links[0]; + links[0].prev = &sentinel; + sentinel.prev = &mut_link; + mut_link.next = &sentinel; + + link_ptr = &sentinel; +} + +//////////////////////////////// +// NOTE(allen): Global Eval + +struct NestedNodeInner{ + unsigned int small0; + unsigned int small1; + unsigned int big0; + unsigned int big1; +}; + +struct NestedNodeOuter{ + NestedNodeOuter *next; + NestedNodeInner *inner_nodes; + unsigned int inner_node_count; +}; + +static void +nested_types_eval_tests(void){ + // doing some setup + NestedNodeOuter *outer1 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + NestedNodeOuter *outer2 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + NestedNodeOuter *outer3 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + + outer1->next = outer2; + outer2->next = outer3; + outer3->next = 0; + + outer1->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer1->inner_node_count = 10; + + outer2->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer2->inner_node_count = 10; + + outer3->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer3->inner_node_count = 10; + + for (unsigned int i = 0; i < 10; i += 1){ + outer1->inner_nodes[i].small0 = i; + outer1->inner_nodes[i].small1 = 2*i; + outer1->inner_nodes[i].big0 = 0xFFFFFF + 0xF*i; + outer1->inner_nodes[i].big1 = 0xFFFFFF + 0xFF*i; + + outer2->inner_nodes[i].small0 = 1 + i; + outer2->inner_nodes[i].small1 = 3*i; + outer2->inner_nodes[i].big0 = 0x1000000 + 0x10*i; + outer2->inner_nodes[i].big1 = 0x1000000 + 0x101*i; + + outer3->inner_nodes[i].small0 = 2 + i; + outer3->inner_nodes[i].small1 = 4*i; + outer3->inner_nodes[i].big0 = 0x8000000 + 0xF0*i; + outer3->inner_nodes[i].big1 = 0x8000000 + 0xF0F*i; + } + + // okay eval it here + int x = 0; +} + +//////////////////////////////// +// NOTE(rjf): Struct Parameters Eval + +static void +struct_parameter_helper(Basics basics) +{ + basics.a += 1; + basics.a += 1; + basics.a += 1; +} + +static void +struct_parameters_eval_tests(void) +{ + Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + struct_parameter_helper(basics); +} + +//////////////////////////////// +// NOTE(allen): Global Eval + +static int g_abc = 100; +static float g_xyz = 21.f; +static Alias1 g_kind = Kind_First; + +static void +complicated_global_mutation(int *x){ + *x = (int)g_xyz; +} + +static void +cross_unit_global_mutation(void){ + fixed_frac_bits = 10; +} + +static int +function_with_duplicate_local_statics(void) +{ + static char *l_abc = "foobar"; + static int l_xyz = 123; + static Kind l_kind = Kind_First; + int x = l_xyz + (int)(int64_t)(l_abc); + return x; +} + +static void +global_eval_tests(void) +{ + g_abc = 11*11; + g_xyz = (float)g_abc - 21.f; + + int z = g_abc; + complicated_global_mutation(&z); + + complicated_global_mutation(&g_abc); + + if (g_kind == Kind_First){ + g_abc -= 1; + g_kind = Kind_None; + } + + cross_unit_global_mutation(); + + static int l_abc = 200; + static float l_xyz = 42.f; + static Alias1 l_kind = Kind_Second; + + l_abc = g_abc*2; + l_xyz = g_xyz*2; + l_kind = (Alias1)(g_kind + 1); + + function_with_duplicate_local_statics(); +} + +//////////////////////////////// +// NOTE(allen): Return Eval + +static int +complicated_return_expression(void){ + int x = 171717; + return((x % 13) <= 5?(x % 19)*11:(x - 500)%200); +} + +static void +return_eval_tests(void){ + complicated_return_expression(); +} + +//////////////////////////////// +// NOTE(allen): TLS Eval + +#if _WIN32 +# define thread_var __declspec(thread) +#else +# define thread_var __thread +#endif + +thread_var int tls_a = 100; +thread_var int tls_b = 999; + +static void +tls_eval_tests(void){ + tls_a = (tls_a + tls_b)/2; + tls_b = tls_b - tls_a; + + TestFunction *dll_tls_eval_test = mule_get_module_function("dll_tls_eval_test"); + if (dll_tls_eval_test != 0){ + dll_tls_eval_test(); + } +} + +//////////////////////////////// +// NOTE(allen): Complicated Type Coverage Eval + +struct Complicated_Type_Members{ + int x600[2][2][2][2]; + int *x601[2][2][2][2]; + int (*x602)[2][2][2][2]; + int (*x603[2])[2][2][2]; + int (*(*x604[2])[2])[2][2]; + int (*(*(*x605[2])[2])[2])[2]; + + int (*x33[2])(void); + int (*x34[3])(void); + int (*x35[2][2])(void); + + int (*(*z33)(void))[2]; + int (*(*z34)(void))[3]; + int (*(*z35)(void))[2][2]; + + int (*(*f2)(void))(void); + int (*(*(*f3)(void))(void))(void); + int (*(*f4)(int))(void); + int (*(*f5)(void))(int); + int (*(*f6)(int))(int); + int (*(*(*f7_growing)(char))(short))(int); + int (*(*(*f7_shrinking)(int))(short))(char); +}; + +static void +complicated_type_coverage_tests(void){ + Complicated_Type_Members m = {0}; + + int x1 = {0}; + int *x2 = {0}; + int **x3 = {0}; + + int x4a[2] = {0}; + int *x4[2] = {0}; + int x5a[3] = {0}; + int *x5[3] = {0}; + int *x6[2][2] = {0}; + int (*x7)[2] = {0}; + int (*x8)[3] = {0}; + int (*x9)[2][2] = {0}; + + int x600[2][2][2][2] = {0}; + int *x601[2][2][2][2] = {0}; + int (*x602)[2][2][2][2] = {0}; + int (*x603[2])[2][2][2] = {0}; + int (*(*x604[2])[2])[2][2] = {0}; + int (*(*(*x605[2])[2])[2])[2] = {0}; + + int x606_growing [2][3][4][5] = {0}; + int x606_shrinking[5][4][3][2] = {0}; + + int (*(*(*x607_growing [2])[3])[4])[5] = {0}; + int (*(*(*x607_shrinking[5])[4])[3])[2] = {0}; + + int **x10[2] = {0}; + int **x11[3] = {0}; + int **x12[2][2] = {0}; + int *(*x13)[2] = {0}; + int *(*x14)[3] = {0}; + int *(*x15)[2][2] = {0}; + int **x16[2] = {0}; + int **x17[3] = {0}; + int **x18[2][2] = {0}; + + int (*y1[2])[2] = {0}; + int (*y2[3])[2] = {0}; + int (*y3[2][2])[2] = {0}; + int (*y4[2])[3] = {0}; + int (*y5[3])[3] = {0}; + int (*y6[2][2])[3] = {0}; + int (*y7[2])[2][2] = {0}; + int (*y8[3])[2][2] = {0}; + int (*y9[2][2])[2][2] = {0}; + + int (*x19)(void) = {0}; + int (*x20)(int) = {0}; + int (*x21)(int, int) = {0}; + int (*x22)(int*, int) = {0}; + int (*x23)(int**, int) = {0}; + int (*x24)(int**, int*) = {0}; + int (*x25)(int**, int**) = {0}; + + int *(*x26)(void) = {0}; + int *(*x27)(int) = {0}; + int *(*x28)(int, int) = {0}; + int *(*x29)(int*, int) = {0}; + int *(*x30)(int**, int) = {0}; + int *(*x31)(int**, int*) = {0}; + int *(*x32)(int**, int**) = {0}; + + int (*x33[2])(void) = {0}; + int (*x34[3])(void) = {0}; + int (*x35[2][2])(void) = {0}; + + int (*x36[2])(int) = {0}; + int (*x37[3])(int) = {0}; + int (*x38[2][2])(int) = {0}; + + int (*x39[2])(int, int) = {0}; + int (*x40[3])(int, int) = {0}; + int (*x41[2][2])(int, int) = {0}; + + int (*x42[2])(int*, int) = {0}; + int (*x43[3])(int*, int) = {0}; + int (*x44[2][2])(int*, int) = {0}; + + int (*x45[2])(int**, int) = {0}; + int (*x46[3])(int**, int) = {0}; + int (*x47[2][2])(int**, int) = {0}; + + int (*x48[2])(int**, int*) = {0}; + int (*x49[3])(int**, int*) = {0}; + int (*x50[2][2])(int**, int*) = {0}; + + int (*x51[2])(int**, int**) = {0}; + int (*x52[3])(int**, int**) = {0}; + int (*x53[2][2])(int**, int**) = {0}; + + int (*(*z33)(void))[2] = {0}; + int (*(*z34)(void))[3] = {0}; + int (*(*z35)(void))[2][2] = {0}; + + int (*(*z36)(int))[2] = {0}; + int (*(*z37)(int))[3] = {0}; + int (*(*z38)(int))[2][2] = {0}; + + int (*(*z39)(int, int))[2] = {0}; + int (*(*z40)(int, int))[3] = {0}; + int (*(*z41)(int, int))[2][2] = {0}; + + int (*(*z42)(int*, int))[2] = {0}; + int (*(*z43)(int*, int))[3] = {0}; + int (*(*z44)(int*, int))[2][2] = {0}; + + int (*(*z45)(int**, int))[2] = {0}; + int (*(*z46)(int**, int))[3] = {0}; + int (*(*z47)(int**, int))[2][2] = {0}; + + int (*(*z48)(int**, int*))[2] = {0}; + int (*(*z49)(int**, int*))[3] = {0}; + int (*(*z50)(int**, int*))[2][2] = {0}; + + int (*(*z51)(int**, int**))[2] = {0}; + int (*(*z52)(int**, int**))[3] = {0}; + int (*(*z53)(int**, int**))[2][2] = {0}; + + int (*(*z303[2])(void)) = {0}; + int (*(*z304[3])(void)) = {0}; + int (*(*z305[2][2])(void)) = {0}; + + int (*(*z306[2])(int)) = {0}; + int (*(*z307[3])(int)) = {0}; + int (*(*z308[2][2])(int)) = {0}; + + int (*(*z309[2])(int, int)) = {0}; + int (*(*z400[3])(int, int)) = {0}; + int (*(*z401[2][2])(int, int)) = {0}; + + int (*(*z402[2])(int*, int)) = {0}; + int (*(*z403[3])(int*, int)) = {0}; + int (*(*z404[2][2])(int*, int)) = {0}; + + int (*(*z405[2])(int**, int)) = {0}; + int (*(*z406[3])(int**, int)) = {0}; + int (*(*z407[2][2])(int**, int)) = {0}; + + int (*(*z408[2])(int**, int*)) = {0}; + int (*(*z409[3])(int**, int*)) = {0}; + int (*(*z500[2][2])(int**, int*)) = {0}; + + int (*(*z501[2])(int**, int**)) = {0}; + int (*(*z502[3])(int**, int**)) = {0}; + int (*(*z503[2][2])(int**, int**)) = {0}; + + int (*(*f2)(void))(void) = {0}; + int (*(*(*f3)(void))(void))(void) = {0}; + int (*(*f4)(int))(void) = {0}; + int (*(*f5)(void))(int) = {0}; + int (*(*f6)(int))(int) = {0}; + int (*(*(*f7_growing)(char))(short))(int) = {0}; + int (*(*(*f7_shrinking)(int))(short))(char) = {0}; + + int (*f8)(int (*)(void)) = {0}; + int (*f9)(void (*)(int)) = {0}; + void (*f10)(int (*)(int)) = {0}; + int (*f11)(int, int (*)(void)) = {0}; + int (*f12)(int (*)(void), int) = {0}; + int (*f13)(int (*)(void), int (*)(void)) = {0}; + + int (*f14)(int (*)(void)) = {0}; + int (*f15)(int (*)(int (*)(void))) = {0}; + int (*f16)(int (*)(int (*)(int (*)(void)))) = {0}; + int (*f17)(int (*)(int (*)(int (*)(int (*)(void))))) = {0}; + + int (*f18)(int (*)(void)) = {0}; + int (*f19)(int (*(*)(void))(void)) = {0}; + int (*f20)(int (*(*(*)(void))(void))(void)) = {0}; + int (*f21)(int (*(*(*(*)(void))(void))(void))(void)) = {0}; + + int (*(*(*(*f22)(void))(void))(void))(void) = {0}; + int (*(*(*(*f23)(int [2]))(void))(void))(void) = {0}; + int (*(*(*(*f24)(int *[2]))(int [3]))(void))(void) = {0}; + int (*(*(*(*f25)(int (*)[2]))(int *[3]))(int [4]))(void) = {0}; + int (*(*(*(*f26)(int **(**)[2]))(int (*)[3]))(int *[4]))(int [5]) = {0}; + + int x = 0; +} + +//////////////////////////////// +// NOTE(allen): Extended Type Coverage Eval + +template +struct Template_Example{ + X x; + int y; +}; + +template +struct Template_Example2{ + X x; + Y y; +}; + +template +struct Template_Example3{ + X x; + Y y; + Template_Example3(X x, Y y) + { + this->x = x; + this->y = y; + } + ~Template_Example3() + { + int x = 2; + int y = 5; + int z = x + y; + } +}; + +struct SingleInheritanceBase +{ + int x; + int y; +}; + +struct SingleInheritanceDerived : SingleInheritanceBase +{ + int z; + int w; +}; + +struct Has_Members{ + int a; + int b; + uint64_t c; + uint64_t d; + Basics bas; + + int w(void){ return a; } + int x(void){ return b; } + uint64_t y(void){ return c; } + uint64_t z(void){ return d; } + Basics bas_f(void){ return bas; } +}; + +struct Has_Static_Members{ + int a; + int b; + static uint64_t c; + static uint64_t d; + + int w(void){ return a; } + int x(void){ return b; } + static uint64_t y(void){ return c; } + static uint64_t z(void){ return d; } +}; + +uint64_t Has_Static_Members::c = 0; +uint64_t Has_Static_Members::d = 0; + +struct Pointer_To_Member{ + int Has_Members::*member_ptr_int; + uint64_t Has_Members::*member_ptr_u64; + Basics Has_Members::*member_ptr_bas; + + int (Has_Members::*method_ptr_int)(void); + uint64_t (Has_Members::*method_ptr_u64)(void); + Basics (Has_Members::*method_ptr_bas)(void); +}; + +struct Has_Sub_Types{ + struct Sub_Type1{ + int x; + int y; + }; + + struct Sub_Type2{ + float x; + float y; + }; + + Sub_Type1 a; + Sub_Type2 b; +}; + +struct Conflicting_Type_Names{ + struct Sub_Type1{ + uint64_t z; + }; + + struct Sub_Type2{ + int64_t z; + }; + + Sub_Type1 a; + Sub_Type2 b; +}; + +struct Has_Private_Sub_Types{ + Has_Private_Sub_Types(char x1, char y1, + float x2, int y2, + int x3, float y3){ + this->a.x = x1; + this->a.y = y1; + this->b.x = x2; + this->b.y = y2; + this->c.x = x3; + this->c.y = y3; + } + + struct Public_Sub_Type{ + char x; + char y; + }; + Public_Sub_Type a; + + protected: + struct Protected_Sub_Type{ + float x; + int y; + }; + Protected_Sub_Type b; + + private: + struct Private_Sub_Type{ + int x; + float y; + }; + Private_Sub_Type c; +}; + +struct Vtable_Parent{ + virtual void a_virtual_function(void) = 0; + virtual void b_virtual_function(void) = 0; + virtual void c_virtual_function(void) = 0; + + void a_virtual_function(int r){ + for (int i = 0; i < r; i += 1){ + a_virtual_function(); + } + } +}; + +struct Vtable_Child : Vtable_Parent{ + int x; + int y; + + Vtable_Child(int a, int b){ + x = a; + y = b; + } + virtual void a_virtual_function(void){ + x = 0; + }; + virtual void b_virtual_function(void){ + y = 0; + }; + virtual void c_virtual_function(void){ + x = y; + }; +}; + +struct Vinheritance_Base{ + int x; + int y; + + virtual void a_virtual_function(void){ + x = 0; + }; + virtual void b_virtual_function(void){ + y = 0; + }; + virtual void x_virtual_function(void){ + y = x; + }; +}; + +struct Vinheritance_MidLeft : virtual Vinheritance_Base{ + float left; + + virtual void c1_virtual_function(void){ + left = 0; + }; + virtual void c2_virtual_function(void){ + left = 0; + }; +}; + +struct Vinheritance_MidRight : virtual Vinheritance_Base{ + float right; + + virtual void d_virtual_function(void){ + right = 0; + }; +}; + +struct Vinheritance_Child : Vinheritance_MidLeft, Vinheritance_MidRight{ + char *name; + + virtual void a_virtual_function(void){ + x = 1; + }; + virtual void c1_virtual_function(void){ + left = 1; + }; +}; + +struct Minheritance_Base{ + int x; + int y; +}; + +struct Minheritance_MidLeft : Minheritance_Base{ + float left; +}; + +struct Minheritance_MidRight : Minheritance_Base{ + float right; +}; + +struct Minheritance_Child : Minheritance_MidLeft, Minheritance_MidRight{ + char *name; +}; + +struct Pure +{ + virtual ~Pure() = default; + virtual void Foo() = 0; +}; + +struct PureChild : Pure +{ + virtual ~PureChild() = default; + virtual void Foo() {a += 1;} + double a = 0; +}; + +struct Base +{ + int x; + int y; + int z; + Base(){x = 1; y = 2; z = 3;} + virtual ~Base() = default; + virtual void Foo() = 0; +}; + +struct Derived : Base +{ + int r; + int g; + int b; + int a; + virtual ~Derived() = default; + virtual void Foo() + { + x += 1; + y += 1; + y += 1; + z += 1; + z += 1; + z += 1; + a += 1; + a += 1; + a += 1; + a += 1; + } +}; + +struct DerivedA : Base +{ + float a; + float b; + DerivedA() {a = 123.f; b = 123.f;} + virtual void Foo() {a += 1;} + virtual ~DerivedA() = default; +}; + +struct DerivedB : Base +{ + double c; + double d; + DerivedB() {c = 123.0; d = 123.0;} + virtual void Foo() {c += 1;} + virtual ~DerivedB() = default; +}; + +struct NonVirtualBase +{ + int x; + int y; + int z; +}; + +struct NonVirtualDerived : NonVirtualBase +{ + int r; + int g; + int b; + int a; +}; + +struct OverloadedMethods{ + int x; + int cool_method(void){ + return(x); + } + int cool_method(int z){ + int r = x; + x = z; + return(r); + } + void cool_method(int y, int z){ + if (x < z){ + x = y; + } + else{ + x = z; + } + } +}; + +struct HasStaticConstMembers +{ + int a; + int b; + static int c; + static int d; + static const int e = 789; + static const int f = 101112; +}; + +int HasStaticConstMembers::c = 123; +int HasStaticConstMembers::d = 456; + +struct Has_A_Constructor{ + int n; + int d; + Has_A_Constructor(int a, int b){ + int gcd = 1; + { + int x = a; + int y = b; + if (x < y){ + y = a; + x = b; + } + for (;y > 0;){ + int z = x%y; + x = y; + y = z; + } + gcd = x; + } + n = a/gcd; + d = b/gcd; + } + + static int N; + static int D; + ~Has_A_Constructor(){ + int m = N*d + n*D; + int e = d*D; + N = m; + D = d; + } +}; + +int Has_A_Constructor::N = 0; +int Has_A_Constructor::D = 1; + +struct Constructor_Gotcha_Test{ + int x; + int y; + void Constructor_Gotcha(void){ + x = y = 0; + } +}; + +struct Has_A_Friend{ + friend struct Modifies_Other; + int get_x(void){ return x; } + int get_y(void){ return y; } + + private: + int x; + int y; +}; + +struct Modifies_Other{ + int x; + int y; + + void talk_to_friend(Has_A_Friend *other){ + other->x = y; + other->y = x; + } +}; + +namespace UserNamespace{ + namespace SubA{ + struct Foo{ + int x; + int y; + }; + }; + namespace SubB{ + struct Foo{ + float u; + float v; + }; + }; + + SubA::Foo foo_a = {10, 20}; + SubB::Foo foo_b = {0.1f, 0.05f}; + + static void namespaced_function(void){ + foo_a.x = (int)(foo_a.y*foo_b.u); + foo_b.v = (float)(foo_a.x*foo_b.v); + } +}; + +static void +call_with_pass_by_reference(int &x){ + x += 1; +} + +static void +call_with_pass_by_const_reference(const int &x){ + int y = x; +} + +static void +extended_type_coverage_eval_tests(void){ + //////////////////////////////// + // NOTE(allen): Extensions to base type system. + { + int x = 0; + const int *x_ptr = &x; + int *const x_cptr = &x; + + call_with_pass_by_reference(x); + + call_with_pass_by_const_reference(x); + } + + //////////////////////////////// + // NOTE(allen): Extensions to user defined types + { + Template_Example temp_f = {1.f, 2}; + Template_Example temp_v = {(void*)&temp_f, 2}; + Template_Example > temp_tf = {temp_f, 2}; + Template_Example2 temp_if = {2, 1.f}; + Template_Example3 temp3_if(2, 1.f); + Template_Example3 temp3_vi((void *)&temp3_if, 1.f); + Template_Example3> temp3_itif(123, temp_if); + + SingleInheritanceDerived sid; + sid.x = 123; + sid.y = 456; + sid.z = 789; + sid.w = 999; + + Pointer_To_Member pointer_to_member = { + &Has_Members::a, &Has_Members::c, &Has_Members::bas, + &Has_Members::x, &Has_Members::z, &Has_Members::bas_f, + }; + + Has_Static_Members has_static_members = { 10, 20 }; + Has_Static_Members::c = 100; + Has_Static_Members::d = 110; + has_static_members.x(); + has_static_members.y(); + has_static_members.z(); + has_static_members.w(); + + Has_Sub_Types has_sub_types = { + {100, 200}, + {.1f, .2f}, + }; + + Conflicting_Type_Names conflicting_type_names = { + {10}, {-20}, + }; + + Has_Private_Sub_Types has_private_sub_types(1, 2, 4, 8, 16, 32); + + Vtable_Child vtable_child(1, 2); + vtable_child.a_virtual_function(); + + Vinheritance_Child vinheritance_child; + vinheritance_child.name = "foobar"; + vinheritance_child.left = 10.5f; + vinheritance_child.right = 13.0f; + vinheritance_child.x = -1; + vinheritance_child.y = -1; + + Minheritance_Child minheritance_child; + minheritance_child.name = "foobar"; + minheritance_child.left = 10.5f; + minheritance_child.right = 13.0f; + minheritance_child.Minheritance_MidLeft::x = -1; + minheritance_child.Minheritance_MidLeft::y = -1; + minheritance_child.Minheritance_MidRight::x = +1; + minheritance_child.Minheritance_MidRight::y = +1; + + Pure *child = new PureChild(); + child->Foo(); + child->Foo(); + child->Foo(); + delete child; + + Base *derived = new Derived(); + derived->Foo(); + derived->Foo(); + derived->Foo(); + delete derived; + + NonVirtualBase *non_virtual_derived = new NonVirtualDerived(); + non_virtual_derived->x += 1; + non_virtual_derived->x += 1; + non_virtual_derived->x += 1; + + std::unique_ptr ridiculous_cplusplus_base_class = std::make_unique(); + + std::vector> ridiculous_cplusplus_array; + for(int i = 0; i < 1024; i += 1) + { + if((i & 1) == 1) + { + ridiculous_cplusplus_array.push_back(std::make_unique()); + } + else + { + ridiculous_cplusplus_array.push_back(std::make_unique()); + } + } + + Base *base_array[1024] = {0}; + for(int i = 0; i < sizeof(base_array)/sizeof(base_array[0]); i += 1) + { + if((i & 1) == 1) + { + base_array[i] = new DerivedA(); + } + else + { + base_array[i] = new DerivedB(); + } + } + + OverloadedMethods overloaded_methods; + { + overloaded_methods.x = 0; + int a = overloaded_methods.cool_method(); + overloaded_methods.cool_method(-10, 100); + int b = overloaded_methods.cool_method(100); + overloaded_methods.cool_method(b*2, a*2); + int c = overloaded_methods.cool_method(a + b); + int z = c; + } + + Has_A_Constructor construct_me(360, 25); + + Has_A_Friend has_a_friend; + + Modifies_Other modifies_other; + modifies_other.x = 57; + modifies_other.y = 66; + + modifies_other.talk_to_friend(&has_a_friend); + + int x = has_a_friend.get_x(); + int y = has_a_friend.get_y(); + int z = x; + + HasStaticConstMembers static_const_members = {0}; + static_const_members.a = 123 + HasStaticConstMembers::c * HasStaticConstMembers::e; + static_const_members.b = 456 + HasStaticConstMembers::d * HasStaticConstMembers::f; + } + + //////////////////////////////// + // NOTE(allen): Namespaces + { + UserNamespace::namespaced_function(); + } +} + +//////////////////////////////// +//~ rjf: Templated Function Eval Tests + +typedef struct TemplateArg TemplateArg; +struct TemplateArg +{ + int x; + int y; + int z; + float a; + float b; + float c; + char *name; +}; + +template static T +templated_factorial(T t) +{ + T result = t; + if(t > 1) + { + result *= templated_factorial(t-1); + } + return result; +} + +template static T +compute_template_arg_info(T t) +{ + int sum = t.x + t.y + t.z; + int size = sizeof(t); + float sum_f = t.a + t.b + t.c; + OutputDebugStringA(t.name); + return t; +} + +static void +templated_function_eval_tests(void) +{ + int int_factorial = templated_factorial(10); + float float_factorial = templated_factorial(10); + TemplateArg arg = {1, 2, 3, 4.f, 5.f, 6.f, "my template arg"}; + compute_template_arg_info(arg); + int x = 0; +} + +//////////////////////////////// +//~ NOTE(allen): C Type Coverage + +extern "C"{ +#include "mule_c.h" +} + +//////////////////////////////// +//~ rjf: Basic Inline Line Info Tests + +#if defined(_MSC_VER) +# define FORCE_INLINE __forceinline +#elif defined(__clang__) +# define FORCE_INLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +static FORCE_INLINE void +basic_inlinee(int inlinee_param_x, int inlinee_param_y, int inlinee_param_z) +{ + OutputDebugStringA("A\n"); + OutputDebugStringA("B\n"); + OutputDebugStringA("C\n"); + OutputDebugStringA("D\n"); +} + +static void +basic_inline_tests(void) +{ + OutputDebugStringA("{\n"); + basic_inlinee(12, 34, 56); + OutputDebugStringA("}\n"); +} + +//////////////////////////////// +//~ rjf: Fancy Visualization Eval Tests + +struct PackedBits +{ + unsigned char b1 : 1; + unsigned char b2 : 1; + unsigned char b3 : 1; + unsigned char b4 : 1; + unsigned char b5 : 1; + unsigned char b6 : 1; +}; +raddbg_type_view(unsigned char : 1, bool($)); + +struct Bitmap +{ + unsigned char *base; + int width; + int height; +}; +raddbg_type_view(Bitmap, bitmap(base, width, height)); + +static unsigned int +mule_bswap_u32(unsigned int x) +{ + unsigned int result = (((x & 0xFF000000) >> 24) | + ((x & 0x00FF0000) >> 8) | + ((x & 0x0000FF00) << 8) | + ((x & 0x000000FF) << 24)); + return result; +} + +static void +fancy_viz_eval_tests(void) +{ + //- rjf: windows -> GetLastError +#if _WIN32 + DWORD error_code = 0; + SetLastError(1234); + error_code = GetLastError(); + SetLastError(4567); + error_code = GetLastError(); + (void)error_code; +#endif + + //- rjf: booleans (checkboxes) + bool bool1 = 0; raddbg_pin(bool1); + bool bool2 = 1; raddbg_pin(bool2); + bool bool3 = 0; raddbg_pin(bool3); + PackedBits packed_bits = {}; + packed_bits.b1 = 1; + packed_bits.b3 = 1; + packed_bits.b5 = 1; + + //- rjf: sliders + float slide1 = 500.f; raddbg_pin(range1(slide1, 0, 1000)); + double slide2 = 0.75; raddbg_pin(range1(slide2, 0, 1.0)); + int slide3 = 25; raddbg_pin(range1(slide3, 0, 100)); + + //- rjf: colors + float example_color_4f32[4] = {1.00f, 0.85f, 0.25f, 1.00f}; + unsigned int example_color_u32 = 0xff6f30ff; + struct {float r, g, b, a;} example_color_struct = {0.50f, 0.95f, 0.75f, 1.00f}; + int x0 = 0; + raddbg_pin(color(example_color_4f32)); + raddbg_pin(color(example_color_u32)); + raddbg_pin(color(example_color_struct)); + + //- rjf: multiline text + char *long_string = ("This is an example of some very long text with line breaks\n" + "in it. This is a very common kind of data which is inspected\n" + "in the debugger while programming, and it is often a pain\n" + "when it is poorly supported.\n"); + char *code_string = ("#include \n" + "\n" + "int main(int argc, char**argv)\n" + "{\n" + " printf(\"Hello, World!\\n\");\n" + " return 0;\n" + "}\n\n"); + int x1 = 0; + raddbg_pin(text(long_string)); + raddbg_pin(text(code_string, lang=c)); + raddbg_pin(disasm(fancy_viz_eval_tests)); + + //- rjf: programmatic memory annotations + void *some_block_of_memory = malloc(256); + memset(some_block_of_memory, 0x27, 256); + raddbg_annotate_vaddr_range(some_block_of_memory, 256, "test memory annotation"); + + //- rjf: half-floats + PackedF16 f16s[] = + { + {0x0001}, // ~0.000000059604645 + {0x03ff}, // ~0.000060975552 + {0x0400}, // ~0.00006103515625 + {0x3555}, // ~0.33325195 + {0x3bff}, // ~0.99951172 + {0x3c00}, // 1 + {0x3c01}, // 1.00097656 + {0x7bff}, // 65504, + {0x7c00}, // +inf + {0xfc00}, // -inf + }; + + //- rjf: table index lookups + struct + { + char *name; + int x; + int y; + int z; + } + nodes[] = + { + {"---", 1, 7, 3}, + {"---", 5, 4, 2}, + {"second", 12, 41, 22}, + {"---", 8, 9, 1}, + {"---", 1, 1, 1}, + {"first", 50, 50, 50}, + {"fourth", 7, 7, 7}, + {"---", 7, 12, 1}, + {"third", 27, 43, 41}, + {"---", 2, 17, 50}, + }; + int node_indices[] = + { + 5, 2, 8, 6 + }; + raddbg_pin(columns(node_indices, nodes[$])); + + //- rjf: bitmaps + unsigned int background_color = 0x00000000; + unsigned int main_color = 0xff2424ff; + unsigned int shine_color = 0xff5693ff; + unsigned int shadow_color = 0xff238faf; + unsigned int bg = mule_bswap_u32(background_color); + unsigned int cl = mule_bswap_u32(main_color); + unsigned int sn = mule_bswap_u32(shine_color); + unsigned int sh = mule_bswap_u32(shadow_color); + unsigned int pixels[] = + { + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, cl, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, cl, cl, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, cl, cl, bg, cl, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, cl, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, cl, cl, cl, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, cl, sn, sn, cl, cl, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, sh, sn, cl, cl, cl, sh, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, sh, cl, cl, cl, sh, sh, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, sh, sh, sh, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + }; + raddbg_pin(bitmap(pixels, 18, 18)); + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + int x2 = 0; + + //- rjf: type-viewed bitmaps + Bitmap foo = {(unsigned char *)&pixels[0], 18, 18}; + raddbg_pin(foo); + + //- rjf: name collisions with debugger rules + Function_Few_Params_Type *raw = 0; + char *text = "some_important_text_here\n"; + Bitmap bitmap = foo; + int x3 = 0; + + //- rjf: 3D geometry + float vertex_data[] = // pos.x, pos.y, pos.z, nor.x, nor.y, nor.z, tex.u, tex.v, col.r, col.g, col.b, ... + { + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 10.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 2.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 2.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 8.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 8.0f, 0.973f, 0.480f, 0.002f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 10.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 10.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 2.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 2.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 8.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 8.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 10.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 10.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 2.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 2.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 8.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 8.0f, 0.612f, 0.000f, 0.069f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 10.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 10.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 2.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 2.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 8.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 8.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 10.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 2.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 8.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 0.6f, 0.0f, 1.0f, 0.0f, 2.0f, 2.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, 0.0f, 1.0f, 0.0f, 8.0f, 2.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 0.0f, 1.0f, 0.0f, 2.0f, 8.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, 0.0f, 1.0f, 0.0f, 8.0f, 8.0f, 0.000f, 0.254f, 0.637f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 10.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 2.0f, 10.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 8.0f, 10.0f, 0.000f, 0.254f, 0.637f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 10.0f, 10.0f, 0.000f, 0.254f, 0.637f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 2.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 8.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 10.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 0.0f, -1.0f, 0.0f, 2.0f, 2.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, 0.0f, -1.0f, 0.0f, 8.0f, 2.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 0.0f, -1.0f, 0.0f, 2.0f, 8.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, 0.0f, -1.0f, 0.0f, 8.0f, 8.0f, 0.001f, 0.447f, 0.067f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 10.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 2.0f, 10.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 8.0f, 10.0f, 0.001f, 0.447f, 0.067f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 10.0f, 10.0f, 0.001f, 0.447f, 0.067f, + -0.6f, 0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + }; + unsigned int index_data[] = + { + 0, 1, 9, 9, 8, 0, 1, 2, 5, 5, 4, 1, 6, 7, 10, 10, 9, 6, 2, 3, 11, 11, 10, 2, + 12, 13, 21, 21, 20, 12, 13, 14, 17, 17, 16, 13, 18, 19, 22, 22, 21, 18, 14, 15, 23, 23, 22, 14, + 24, 25, 33, 33, 32, 24, 25, 26, 29, 29, 28, 25, 30, 31, 34, 34, 33, 30, 26, 27, 35, 35, 34, 26, + 36, 37, 45, 45, 44, 36, 37, 38, 41, 41, 40, 37, 42, 43, 46, 46, 45, 42, 38, 39, 47, 47, 46, 38, + 48, 49, 57, 57, 56, 48, 49, 50, 53, 53, 52, 49, 54, 55, 58, 58, 57, 54, 50, 51, 59, 59, 58, 50, + 60, 61, 69, 69, 68, 60, 61, 62, 65, 65, 64, 61, 66, 67, 70, 70, 69, 66, 62, 63, 71, 71, 70, 62, + 72, 73, 74, 74, 75, 72, 76, 77, 78, 78, 79, 76, 80, 81, 82, 82, 83, 80, 84, 85, 86, 86, 87, 84, + 88, 89, 90, 90, 91, 88, 92, 93, 94, 94, 95, 92, 96, 97, 98, 98, 99, 96, 100, 101, 102, 102, 103, 100, + 104, 105, 106, 106, 107, 104, 108, 109, 110, 110, 111, 108, 112, 113, 114, 114, 115, 112, 116, 117, 118, 118, 119, 116, + 120, 121, 122, 122, 123, 120, 124, 125, 126, 126, 127, 124, 128, 129, 130, 130, 131, 128, 132, 133, 134, 134, 135, 132, + 136, 137, 138, 138, 139, 136, 140, 141, 142, 142, 143, 140, 144, 145, 146, 146, 147, 144, 148, 149, 150, 150, 151, 148, + 152, 153, 154, 154, 155, 152, 156, 157, 158, 158, 159, 156, 160, 161, 162, 162, 163, 160, 164, 165, 166, 166, 167, 164, + }; + int count = (sizeof index_data/4); + float *vtx = vertex_data; + int vtx_size = sizeof vertex_data; + raddbg_pin(geo3d(index_data, count = count, vtx = vtx, vtx_size = vtx_size)); + int x4 = 0; +} + +//////////////////////////////// +//~ rjf: Markup Tests + +static void +markup_tests(void) +{ + int x = 0; + raddbg_add_breakpoint(&x, sizeof(x), 0, 1, 0); + for(int i = 0; i < 10000; i += 1) + { + if(i == 5000) + { + x += 1; + } + } + raddbg_remove_breakpoint(&x, sizeof(x), 0, 1, 0); +} + +//////////////////////////////// +//~ NOTE(allen): Function Overload Resolution + +static int +overloaded_function(float y){ + int r = (int)(y + 0.5f); + return(r); +} + +static int +overloaded_function(float y, int x){ + int r = overloaded_function(y) + x; + return(r); +} + +static int +overloaded_function(int x){ + float y = (float)x; + int r = overloaded_function(y, 1); + return(r); +} + +//////////////////////////////// +// NOTE(allen): Control Flow Stepping + +static void +control_flow_stepping_tests(void){ + { + int a = 1; + if (a < 1){ /// 1000: { run_to_line at step_over } + a += 1; + } + if (a < 2){ /// 1001: { at step_over } + a += 2; /// 1002: { at step_over } + } + } + + { + int a = 1; /// 1003: { at step_over } + if (a < 1) /// 1004: { at step_over } + { + a += 1; + } + if (a < 2) /// 1005: { at step_over } + { + a += 2; /// 1006: { at step_over } + } + } + + { + int a = 1; /// 1007: { at step_over } + if (a < 1) /// 1008: { at step_over } + a += 1; + if (a < 2) /// 1009: { at step_over } + a += 2; /// 1010: { at step_over } + } + + { + int a = 1; /// 1011: { at step_over } + int b = 2; /// 1012: { at step_over } + if (a <= b){ /// 1013: { at step_over } + if (a == b){ /// 1014: { at step_over } + b += 1; + } + else{ + a += 1; /// 1015: { at } + } + } + else{ + if (a%2){ + a = b; + } + else{ + a = b - 1; + } + } + } + + { + int a = 1; /// 1016: { run_to_line at step_over } + int b = 2; /// 1017: { at step_over } + if (a <= b) + { + if (a == b) /// 1018: { at step_over } + { + b += 1; + } + else + { + a += 1; /// 1019: { at } + } + } + else + { + if (a%2) + { + a = b; + } + else + { + a = b - 1; + } + } + } + + { + int a = 1; /// 1020: { run_to_line at step_over } + int b = 2; /// 1021: { at step_over } + if (a <= b) /// 1022: { at step_over } + if (a == b) /// 1023: { at step_over } + b += 1; + else + a += 1; /// 1024: { at step_over } + else + if (a%2) + a = b; + else + a = b - 1; + } + + { + int x = 0; /// 1025: { at step_over } + for (int i = 0; i < 10; i += 1){ /// 1026: { at step_over } + x += i; /// 1027: { at step_over } + } + } + + { + int x = 0; // 1028: { run_to_line at } + for (int i = 0; i < 10; i += 1) + { + x += i; + } + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1) + x += i; + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1) x += i; + } + + { + int a = 1; + for (;a < 10;){ + switch (a){ + case 0: case 1: case 2: + { + a += 2; + }break; + + default: + case 4: + case 5: + { + a += 1; + }break; + + case 6: a += 1; break; + case 7: a += 1; + case 8: + case 9: a += 1; + } + } + } + + { + int i = 0; + while (i < 5){ + i += 1; + } + + while (i < 10) + { + i += 1; + } + + while (i < 15) + i += 1; + + while (i < 20) i += 1; + } + + { + int i = 0; + do + { + i += 1; + } while (i < 10); + } + + { + int i = 17; + + check_again: + if (i <= 1) goto done; + if ((i&1) == 0) goto even_case; + + // odd_case: + i = 3*i + 1; + + even_case: + i /= 2; + goto check_again; + + done:; + } + + { + int x = 15; + label_same_line:; x -= 1; if(x > 0) { goto label_same_line; } else { goto end_label_same_line; } + } + end_label_same_line:; +} + +//////////////////////////////// +// NOTE(allen): Indirect Call/Jump Stepping Tests + +typedef int FunctionType(int); + +static int +function_foo(int a){ + if (a < 1){ + a += 1; + } + if (a < 2){ + a += 2; + } + return(a); +} + +static int +function_bar(int x){ + for (int i = 0; i < 10; i += 1){ + x += i; + } + return(x); +} + + +static void +indirect_call_jump_stepping_tests(void){ + int z = 1; + FunctionType *ptr = function_foo; + z = ptr(z); + if ((z & 1) == 0){ + ptr = function_bar; + } + z = ptr(z); + + switch (z&7){ + case 0: + { + z += 2; + ptr = function_bar; + }break; + + case 1: + { + z += 1; + ptr = function_bar; + }break; + + case 2: + { + z *= 2; + ptr = function_bar; + }break; + + case 3: + { + z -= 10; + ptr = function_foo; + }break; + + case 4: + { + z -= 5; + ptr = function_foo; + }break; + + case 5: + { + z = z ^ 0x10; + ptr = function_foo; + }break; + + case 6: + { + z = z & ~0x10; + ptr = function_foo; + }break; + + case 7: + { + z = z | 0x10; + ptr = function_foo; + }break; + } + + z = ptr(z); +} + +//////////////////////////////// +// NOTE(rjf): alloca (Variable-Width Stack Changes) Stepping Tests + +static void +alloca_stepping_tests(void) +{ + int x = 1; + int y = 3; + int z = 5; + +#if _WIN32 + int *mem = (int *)_alloca((x+y+z)*sizeof(int)); + mem[0] = x; + mem[1] = y; + mem[2] = z; +#else + int *mem = (int *)__builtin_alloca((x+y+z)*sizeof(int)); + mem[0] = x; + mem[1] = y; + mem[2] = z; +#endif +} + +//////////////////////////////// +// NOTE(allen): Overloaded Line Stepping + +static int +function_get_integer(void){ + return(1); +} + +static void +function_with_multiple_parameters(int x, int y){ + x += y; +} + +static int +recursive_single_line(int x){ return(x <= 1?0:x + recursive_single_line(x/2)); } + +static int shared_1(int x) { return(x); } static int shared_2(int x) { return(1 + shared_1(x)); } + +static void +overloaded_line_stepping_tests(void){ + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + + recursive_single_line(50); + recursive_single_line(50); + recursive_single_line(50); + + shared_2(5); + shared_2(5); + shared_2(5); + + function_get_integer(); shared_1(1); shared_1(2); + + if ((shared_2(10) && shared_2(-1)) || + shared_2(function_get_integer())){ + int x = 0; + } + else{ + int y = 0; + } +} + +//////////////////////////////// +// NOTE(allen): Long Jump Stepping + +#include + +static jmp_buf global_jump_buffer; +static int global_jump_x; + +static void +long_jump_from_function(void){ + int spin = 0; + for (; spin < 5; spin += 1); + longjmp(global_jump_buffer, 2); + global_jump_x = spin; +} + +static void +long_jump_wrapped_in_function(void){ + global_jump_x = 0; + int val = setjmp(global_jump_buffer); + if (val == 0){ + global_jump_x = 1; + longjmp(global_jump_buffer, 1); + } + else if (val == 1){ + if (global_jump_x == 1){ + global_jump_x = 2; + long_jump_from_function(); + } + } + else if (val == 2){ + global_jump_x = 3; + } +} + +static void +long_jump_stepping_tests(void){ + + long_jump_wrapped_in_function(); + + long_jump_wrapped_in_function(); + + long_jump_wrapped_in_function(); + +} + +//////////////////////////////// +// NOTE(allen): Recursion Stepping + +static int +recursive_call(int x){ + if (x <= 1){ + return(x); + } + + int r1 = recursive_call(x - 1); + int r2 = recursive_call(x - 2); + return(r1 + r2); +} + +static int +tail_recursive_call(int x, int m){ + if (x <= 1){ + return(m); + } + return(tail_recursive_call(x - 1, x*m)); +} + +static void +recursion_stepping_tests(void){ + + recursive_call(4); + + recursive_call(4); + + tail_recursive_call(5, 1); + + tail_recursive_call(5, 1); + +} + +//////////////////////////////// +// NOTE(rjf): Thread Stepping + +#if _WIN32 +DWORD thread_step_thread(void *p) +{ + int x = 0; + for(int i = 0; i < 100000; i += 1) + { + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + } + return 0; +} +#endif + +void thread_stepping_tests(void) +{ +#if _WIN32 + HANDLE h[8] = {0}; + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + DWORD id = 0; + h[i] = CreateThread(0, 0, thread_step_thread, 0, CREATE_SUSPENDED, &id); + raddbg_thread_id_name(id, "thread_step_thread_%i", i); + raddbg_thread_id_color_u32(id, 0xff9f23ff); + } + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + ResumeThread(h[i]); + } + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + WaitForSingleObject(h[i], INFINITE); + } +#endif +} + +//////////////////////////////// +// NOTE(rjf): Debug Strings + +static void +debug_string_tests(void) +{ + for(int i = 0; i < 100; i += 1) + { + printf("here is a number: %i\n", i); + fflush(stdout); + } +#if _WIN32 + for(int i = 0; i < 100; i += 1) + { + OutputDebugStringA("Hello, World!\n"); + } + char message[65409+1]; + memset(&message[0], '=', sizeof(message)); + for(int i = 1; i < sizeof(message); i += 128) + { + message[i] = '\n'; + } + message[sizeof(message) - 1] = 0; + OutputDebugStringA(message); +#endif +} + +//////////////////////////////// +//~ rjf: Thread Name Test + +#if _WIN32 +DWORD dummy_thread(void *p) +{ + Sleep(10); + return 0; +} +#endif + +static void +thread_name_tests(void) +{ +#if _WIN32 + DWORD id = 0; + HANDLE h = CreateThread(0, 0, dummy_thread, 0, CREATE_SUSPENDED, &id); + raddbg_thread_id_name(id, "dummy_thread"); + raddbg_thread_id_color_u32(id, 0xff1f23ff); + ResumeThread(h); + WaitForSingleObject(h, INFINITE); +#endif +} + +//////////////////////////////// +//~ rjf: Interrupt Stepping Tests + +#include + +static void +interrupt_stepping_tests(void) +{ + __debugbreak(); + __debugbreak(); + __debugbreak(); + __debugbreak(); + for(int i = 0; i < 1000; i += 1) + { + if(i == 999) + { + __debugbreak(); + } + } + for(int i = 0; i < 1000; i += 1) + { + if(i == 999) + { + assert(0); + } + } + int x = 0; +} + +//////////////////////////////// +//~ rjf: JIT Stepping Tests + +static void +jit_stepping_tests(void) +{ + OutputDebugString("A\n"); + VOID *code = VirtualAlloc(0, 0x1000, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE); + *((uint32_t*)code) = 0xC39090CC; + ((void (__fastcall *)()) code)(); + OutputDebugString("B\n"); +} + +//////////////////////////////// +// NOTE(allen): Exception Stepping + +static void +exception_filter_test(void) +{ + __try + { + RaiseException(0xc0000095, 0, 0, 0); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + OutputDebugStringA("did an exception\n"); + } +} + +int *global_null_read_pointer = 0; +static void +trip(void){ + *global_null_read_pointer = 0; +} + +static void +cpp_exception_in_function(void){ + int v = 0; + try{ + throw 1; + } + catch (...){ + v = 1; + } +} + +static void +cpp_throw_in_function(void){ + throw 1; +} + +static void +win32_exception_in_function(void){ +#if _WIN32 + int v = 0; + __try{ + trip(); + v = 1; + } + __except (EXCEPTION_EXECUTE_HANDLER){ + v = 2; + } + + v = 3; + __try{ + trip(); + v = 4; + } + __except (EXCEPTION_EXECUTE_HANDLER){ + v = 5; + } +#endif +} + +static void +cpp_recursive_exception(int x){ + try{ + if (x > 1){ + throw 1; + } + } + catch (...){ + x -= 1; + cpp_recursive_exception(x); + x += 1; + } +} + +static void +win32_recursive_exception(int x){ +#if _WIN32 + __try{ + if (x > 1){ + throw 1; + } + } + __except (EXCEPTION_EXECUTE_HANDLER){ + x -= 1; + win32_recursive_exception(x); + x += 1; + } +#endif +} + +static void +exception_stepping_tests(void){ + { + int v = 0; + try{ + throw 1; + } + catch (...){ + v = 1; + } + } + + { + int v = 0; + try{ + cpp_throw_in_function(); + } + catch (...){ + v = 1; + } + } + + cpp_exception_in_function(); + cpp_exception_in_function(); + +#if _WIN32 + win32_exception_in_function(); + win32_exception_in_function(); +#endif + + // NOTE(allen): Exception in catch tests + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + try{ + v = 2; + throw 2; + } + catch (...){ + v = 3; + } + } + } + + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + cpp_exception_in_function(); + } + } + +#if _WIN32 + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + win32_exception_in_function(); + } + } +#endif + + cpp_recursive_exception(4); + cpp_recursive_exception(4); + cpp_recursive_exception(4); + +#if _WIN32 + win32_recursive_exception(4); + win32_recursive_exception(4); + win32_recursive_exception(4); +#endif + + // NOTE(allen): Try in try tests + { + int v = 0; + try{ + try{ + v = 1; + throw 1; + } + catch (...){ + v = 2; + } + throw 2; + } + catch (...){ + v = 3; + } + } + + { + int v = 0; + try{ + try{ + v = 1; + cpp_throw_in_function(); + } + catch (...){ + v = 2; + } + throw 2; + } + catch (...){ + v = 3; + } + } + + { + int v = 0; + try{ + cpp_exception_in_function(); + throw 2; + } + catch (...){ + v = 3; + } + } + +#if _WIN32 + { + int v = 0; + try{ + win32_exception_in_function(); + throw 2; + } + catch (...){ + v = 3; + } + } +#endif + +} + +typedef void (*callback_t)(int a); +static void +dynamic_step_test(void){ +#if _WIN32 +#if defined(_x86_64) || defined( __x86_64__ ) || defined( _M_X64 ) || defined( _M_AMD64 ) + void *page = VirtualAlloc(0, 4096, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE); + char *ptr = (char*)page; + *ptr++ = 0x51; // push rcx + *ptr++ = 0x59; // pop rcx + *ptr++ = 0xC3; // ret + callback_t cb = (callback_t)page; + cb(1); +#endif +#endif +} + +//////////////////////////////// + +raddbg_entry_point(mule_main); + +int +mule_main(int argc, char** argv) +{ //// 1: { run_to_line at } + + raddbg_thread_name("mule_main_thread"); + raddbg_thread_color_rgba(0.4f, 0.9f, 0.2f, 1); + if(raddbg_is_attached()) + { + raddbg_log("raddbg is attached!\n"); + } + + mule_init(); + + // NOTE(allen): Stepping Tests + control_flow_stepping_tests(); + + // NOTE(allen): Eval Tests + type_coverage_eval_tests(); + + mutating_variables_eval_tests(); + + nested_types_eval_tests(); + + struct_parameters_eval_tests(); + + global_eval_tests(); + + return_eval_tests(); + + tls_eval_tests(); + + complicated_type_coverage_tests(); + + extended_type_coverage_eval_tests(); + + templated_function_eval_tests(); + + c_type_coverage_eval_tests(); + + c_type_with_bitfield_usage(); + + optimized_build_eval_tests(); + + optimized_struct_parameters_eval_tests(); + + fancy_viz_eval_tests(); + + exception_filter_test(); + + markup_tests(); + + indirect_call_jump_stepping_tests(); + + alloca_stepping_tests(); + + basic_inline_tests(); + + inline_stepping_tests(); + + overloaded_line_stepping_tests(); + + overloaded_function(100); + + dynamic_step_test(); + + long_jump_stepping_tests(); + + recursion_stepping_tests(); + + thread_stepping_tests(); + + debug_string_tests(); + + thread_name_tests(); + + jit_stepping_tests(); + + interrupt_stepping_tests(); + + exception_stepping_tests(); + + return(0); +} + +/// file: "mule_module.cpp" + +#if _WIN32 +#define export_function extern "C" __declspec(dllexport) +#else +#define export_function extern "C" +#endif + +#if _WIN32 +# define thread_var __declspec(thread) +#else +# define thread_var __thread +#endif + +typedef struct OnlyInModule OnlyInModule; +struct OnlyInModule +{ + int x; + int y; + int z; + char *name; +}; + +typedef struct Basics Basics; +struct Basics +{ + int a; + int b; + int c; + int d; +}; + +static OnlyInModule only_in_module_global = +{ + 1, 2, 3, "foobar", +}; + +thread_var float tls_a = 1.015625f; +thread_var int tls_b = -100; + +export_function void +dll_tls_eval_test(void) +{ + tls_a *= 1.5f; + tls_b *= -2; + only_in_module_global.x += 1; + only_in_module_global.y += 2; + only_in_module_global.z += 3; +} + +export_function void +dll_type_eval_tests(void) +{ + Basics basics1 = {1, 2, 3, 4}; + Basics basics2 = {4, 5, 6, 7}; + OnlyInModule only_in_module = {123, 456, 789, "this type is only in the module!"}; + int x = 0; + (void)x; +} + diff --git a/src/mule/old_test_debuggees/step_into_for_goto.c b/src/mule/old_test_debuggees/step_into_for_goto.c new file mode 100644 index 00000000..5ff09613 --- /dev/null +++ b/src/mule/old_test_debuggees/step_into_for_goto.c @@ -0,0 +1,25 @@ +/// test: { +/// windows: { +/// skip: "" +/// compile: { +/// cc: "clang" +/// args: "-O0 -g -o main.exe %FILE%" +/// } +/// launch: "main.exe" +/// } +/// linux: { +/// skip: "" +/// compile: "-O0 -g -o main %FILE%" +/// launch: "./main" +/// } +/// } + +int main() +{ /// 1: { step_into step_into } + for (int i = 0; i < 1; /// 2: step_into + ++i, ({ goto exit; })) { /// 4: step_into + int x = 0; /// 3: step_into + } + exit:; +} /// 5: at + diff --git a/src/mule/old_test_debuggees/step_into_lazy_module_func.c b/src/mule/old_test_debuggees/step_into_lazy_module_func.c new file mode 100644 index 00000000..fe289ba1 --- /dev/null +++ b/src/mule/old_test_debuggees/step_into_lazy_module_func.c @@ -0,0 +1,42 @@ +// TODO: step into alg needs to detect that it is about to step into a thunk and place breakpoint, respective to OS, +// where thunk calls into resolved function + +/// test: { +/// windows: { +/// skip: "" +/// compile: "/Od /Z7 /c main.c module.c" +/// link: "/fixed /debug:full /dll module.obj" +/// link: "/fixed /debug:full /entry:main kernel32.lib module.lib delayimp.lib main.obj /out:main.exe /delayload:module.dll /incremental:no" +/// launch: "main.exe" +/// } +/// linux: { +/// skip: "" +/// compile: "-O0 -g module.c -fPIC -shared -o libmodule.so" +/// compile: "-O0 -g main.c -L. -lmodule -o main -Wl,-rpath,%CWD%" +/// launch: "./main" +/// } +/// } +/// + +/// file: "module.c" + +#if _WIN32 +__declspec(dllexport) +#endif +int foo(int a) +{ /// 6: { at, run } + return a + 1; +} + +/// file: "main.c" + +#if _WIN32 +__declspec(dllimport) +#endif +int foo(); + +int main() +{ /// 1: { step_into, at, step_over } + foo(123); /// 2: { at, step_into } +} + diff --git a/src/mule/old_test_debuggees/step_into_static_module_func.c b/src/mule/old_test_debuggees/step_into_static_module_func.c new file mode 100644 index 00000000..f261122a --- /dev/null +++ b/src/mule/old_test_debuggees/step_into_static_module_func.c @@ -0,0 +1,37 @@ +/// test: { +/// windows: { +/// compile: "/Od /Z7 /c main.c module.c" +/// link: "/fixed /debug:full /dll module.obj" +/// link: "/fixed /debug:full module.lib main.obj /out:main.exe /incremental:no" +/// launch: "main.exe" +/// } +/// linux: { +/// compile: "-O0 -g module.c -fPIC -shared -o libmodule.so" +/// compile: "-O0 -g main.c -L. -lmodule -o main -Wl,-rpath,%CWD%,-z,now -fno-plt" +/// launch: "./main" +/// } +/// } +/// + +/// file: "module.c" + +#if _WIN32 +__declspec(dllexport) +#endif +int foo(int a) +{ /// 3: at + return a + 1; +} + +/// file: "main.c" + +#if _WIN32 +__declspec(dllimport) +#endif +int foo(); + +int main() +{ /// 1: { step_into, at, step_over } + foo(123); /// 2: { at, step_into } +} + diff --git a/src/mutable_text/mutable_text.c b/src/mutable_text/mutable_text.c index 28a735ea..ecaf58e5 100644 --- a/src/mutable_text/mutable_text.c +++ b/src/mutable_text/mutable_text.c @@ -14,7 +14,7 @@ mtx_init(void) mtx_shared = push_array(arena, MTX_Shared, 1); mtx_shared->arena = arena; mtx_shared->slots_count = 256; - mtx_shared->stripes_count = Min(mtx_shared->slots_count, os_get_system_info()->logical_processor_count); + mtx_shared->stripes_count = Min(mtx_shared->slots_count, get_system_info()->logical_processor_count); mtx_shared->slots = push_array(arena, MTX_Slot, mtx_shared->slots_count); mtx_shared->stripes = push_array(arena, MTX_Stripe, mtx_shared->stripes_count); for(U64 idx = 0; idx < mtx_shared->stripes_count; idx += 1) @@ -22,7 +22,7 @@ mtx_init(void) mtx_shared->stripes[idx].arena = arena_alloc(); mtx_shared->stripes[idx].rw_mutex = rw_mutex_alloc(); } - mtx_shared->mut_threads_count = Min(os_get_system_info()->logical_processor_count, 4); + mtx_shared->mut_threads_count = Min(get_system_info()->logical_processor_count, 4); mtx_shared->mut_threads = push_array(arena, MTX_MutThread, mtx_shared->mut_threads_count); for(U64 idx = 0; idx < mtx_shared->mut_threads_count; idx += 1) { @@ -59,10 +59,10 @@ mtx_enqueue_op(MTX_MutThread *thread, C_Key buffer_key, MTX_Op op) U64 needed_size = sizeof(buffer_key) + sizeof(op.range) + sizeof(op.replace.size) + op.replace.size; if(available_size >= needed_size) { - thread->ring_write_pos += ring_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &buffer_key); - thread->ring_write_pos += ring_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &op.range); - thread->ring_write_pos += ring_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &op.replace.size); - thread->ring_write_pos += ring_write(thread->ring_base, thread->ring_size, thread->ring_write_pos, op.replace.str, op.replace.size); + thread->ring_write_pos += wrapped_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &buffer_key); + thread->ring_write_pos += wrapped_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &op.range); + thread->ring_write_pos += wrapped_write_struct(thread->ring_base, thread->ring_size, thread->ring_write_pos, &op.replace.size); + thread->ring_write_pos += wrapped_write(thread->ring_base, thread->ring_size, thread->ring_write_pos, op.replace.str, op.replace.size); break; } cond_var_wait(thread->cv, thread->mutex, max_U64); @@ -78,11 +78,11 @@ mtx_dequeue_op(Arena *arena, MTX_MutThread *thread, C_Key *buffer_key_out, MTX_O U64 unconsumed_size = thread->ring_write_pos - thread->ring_read_pos; if(unconsumed_size >= sizeof(*buffer_key_out) + sizeof(op_out->range) + sizeof(op_out->replace.size)) { - thread->ring_read_pos += ring_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, buffer_key_out); - thread->ring_read_pos += ring_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, &op_out->range); - thread->ring_read_pos += ring_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, &op_out->replace.size); + thread->ring_read_pos += wrapped_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, buffer_key_out); + thread->ring_read_pos += wrapped_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, &op_out->range); + thread->ring_read_pos += wrapped_read_struct(thread->ring_base, thread->ring_size, thread->ring_read_pos, &op_out->replace.size); op_out->replace.str = push_array_no_zero(arena, U8, op_out->replace.size); - thread->ring_read_pos += ring_read(thread->ring_base, thread->ring_size, thread->ring_read_pos, op_out->replace.str, op_out->replace.size); + thread->ring_read_pos += wrapped_read(thread->ring_base, thread->ring_size, thread->ring_read_pos, op_out->replace.str, op_out->replace.size); break; } cond_var_wait(thread->cv, thread->mutex, max_U64); diff --git a/src/natvis/base.natvis b/src/natvis/base.natvis index ce938f33..8009134e 100644 --- a/src/natvis/base.natvis +++ b/src/natvis/base.natvis @@ -1,12 +1,11 @@ - {size,str} - size,str + {{ size={size} str={str,[size]} }} - {{ string={string.size,string.str} next={next} }} + {{ string={string} next={next} }} @@ -19,7 +18,7 @@ node_count first next - string + this @@ -153,6 +152,9 @@ + + + {{ count={count} first={first} }} count @@ -165,6 +167,19 @@ + + {{ op_count={op_count} encoded_size={encoded_size} first_op={first_op} }} + + op_count + + op_count + first_op + next + this + + + + @@ -192,4 +207,38 @@ + + + kind + next + next + parent + + {first_child} + + + + + + + node + node = node->next + + + + + + count={attrib_count}, [0]={first_attrib} + + + attrib_count + first_attrib + next + this + + + + + + diff --git a/src/natvis/raddbg.natstepfilter b/src/natvis/raddbg.natstepfilter new file mode 100644 index 00000000..585fdbdc --- /dev/null +++ b/src/natvis/raddbg.natstepfilter @@ -0,0 +1,7 @@ + + + + __asan_memcpy + NoStepInto + + diff --git a/src/obj/obj.c b/src/obj/obj.c new file mode 100644 index 00000000..c33577d8 --- /dev/null +++ b/src/obj/obj.c @@ -0,0 +1,68 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal OBJ * +obj_alloc(U64 time_stamp, Arch arch) +{ + Arena *arena = arena_alloc(); + OBJ *obj = push_array(arena, OBJ, 1); + obj->arena = arena; + obj->time_stamp = time_stamp; + obj->arch = arch; + return obj; +} + +internal void +obj_release(OBJ **obj_ptr) +{ + arena_release((*obj_ptr)->arena); + *obj_ptr = 0; +} + +internal OBJ_Symbol * +obj_push_symbol(OBJ *obj, String8 name, OBJ_SymbolScope scope, OBJ_RefKind ref_kind, void *ref) +{ + OBJ_SymbolNode *n = push_array(obj->arena, OBJ_SymbolNode, 1); + SLLQueuePush(obj->symbols.first, obj->symbols.last, n); + obj->symbols.count += 1; + + OBJ_Symbol *v = &n->v; + v->name = push_str8_copy(obj->arena, name); + v->scope = scope; + v->ref_kind = ref_kind; + v->ref = ref; + + return v; +} + +internal OBJ_Section * +obj_push_section(OBJ *obj, String8 name, OBJ_SectionFlags flags) +{ + OBJ_SectionNode *n = push_array(obj->arena, OBJ_SectionNode, 1); + SLLQueuePush(obj->sections.first, obj->sections.last, n); + obj->sections.count += 1; + + OBJ_Section *v = &n->v; + v->name = push_str8_copy(obj->arena, name); + v->flags = flags; + v->symbol = obj_push_symbol(obj, name, OBJ_SymbolScope_Local, OBJ_RefKind_Section, v); + str8_serial_begin(obj->arena, &v->data); + + return v; +} + +internal OBJ_Reloc * +obj_push_reloc(OBJ *obj, OBJ_Section *sec, OBJ_RelocKind kind, U64 offset, OBJ_Symbol *symbol) +{ + OBJ_RelocNode *n = push_array(obj->arena, OBJ_RelocNode, 1); + SLLQueuePush(sec->relocs.first, sec->relocs.last, n); + sec->relocs.count += 1; + + OBJ_Reloc *v = &n->v; + v->kind = kind; + v->offset = offset; + v->symbol = symbol; + + return v; +} + diff --git a/src/obj/obj.h b/src/obj/obj.h new file mode 100644 index 00000000..a5b285e3 --- /dev/null +++ b/src/obj/obj.h @@ -0,0 +1,115 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef OBJ_H +#define OBJ_H + +typedef enum +{ + OBJ_RefKind_Null, + OBJ_RefKind_Section, +} OBJ_RefKind; + +typedef enum +{ + OBJ_SymbolScope_Null, + OBJ_SymbolScope_Local, + OBJ_SymbolScope_Global, +} OBJ_SymbolScope; + +typedef struct OBJ_Symbol +{ + String8 name; + OBJ_SymbolScope scope; + OBJ_RefKind ref_kind; + void *ref; +} OBJ_Symbol; + +typedef struct OBJ_SymbolNode +{ + OBJ_Symbol v; + struct OBJ_SymbolNode *next; +} OBJ_SymbolNode; + +typedef struct OBJ_SymbolList +{ + U64 count; + OBJ_SymbolNode *first; + OBJ_SymbolNode *last; +} OBJ_SymbolList; + +typedef enum +{ + OBJ_RelocKind_Null, + OBJ_RelocKind_SecRel, +} OBJ_RelocKind; + +typedef struct OBJ_Reloc +{ + OBJ_RelocKind kind; + U64 offset; + OBJ_Symbol *symbol; +} OBJ_Reloc; + +typedef struct OBJ_RelocNode +{ + OBJ_Reloc v; + struct OBJ_RelocNode *next; +} OBJ_RelocNode; + +typedef struct OBJ_RelocList +{ + U64 count; + OBJ_RelocNode *first; + OBJ_RelocNode *last; +} OBJ_RelocList; + +typedef enum OBJ_SectionFlags +{ + OBJ_SectionFlag_Read = (1 << 0), + OBJ_SectionFlag_Write = (1 << 1), + OBJ_SectionFlag_Exec = (1 << 2), + OBJ_SectionFlag_Load = (1 << 3), +} OBJ_SectionFlags; + +typedef struct OBJ_Section +{ + String8 name; + String8List data; + OBJ_SectionFlags flags; + OBJ_RelocList relocs; + OBJ_Symbol *symbol; +} OBJ_Section; + +typedef struct OBJ_SectionNode +{ + OBJ_Section v; + struct OBJ_SectionNode *next; +} OBJ_SectionNode; + +typedef struct OBJ_SectionList +{ + U64 count; + OBJ_SectionNode *first; + OBJ_SectionNode *last; +} OBJ_SectionList; + +typedef struct OBJ +{ + Arena *arena; + U64 time_stamp; + Arch arch; + OBJ_SectionList sections; + OBJ_SymbolList symbols; +} OBJ; + +//////////////////////////////// + +internal OBJ * obj_alloc(U64 time_stamp, Arch arch); +internal void obj_release(OBJ **obj_ptr); +internal OBJ_Symbol * obj_push_symbol(OBJ *obj, String8 name, OBJ_SymbolScope scope, OBJ_RefKind ref_kind, void *ref); +internal OBJ_Section * obj_push_section(OBJ *obj, String8 name, OBJ_SectionFlags flags); +internal OBJ_Reloc * obj_push_reloc(OBJ *obj, OBJ_Section *sec, OBJ_RelocKind kind, U64 offset, OBJ_Symbol *symbol); + +#endif // OBJ_H + diff --git a/src/os/core/linux/os_core_linux.c b/src/os/core/linux/os_core_linux.c deleted file mode 100644 index 9b137287..00000000 --- a/src/os/core/linux/os_core_linux.c +++ /dev/null @@ -1,1371 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Helpers - -internal DateTime -os_lnx_date_time_from_tm(tm in, U32 msec) -{ - DateTime dt = {0}; - dt.sec = in.tm_sec; - dt.min = in.tm_min; - dt.hour = in.tm_hour; - dt.day = in.tm_mday-1; - dt.mon = in.tm_mon; - dt.year = in.tm_year+1900; - dt.msec = msec; - return dt; -} - -internal tm -os_lnx_tm_from_date_time(DateTime dt) -{ - tm result = {0}; - result.tm_sec = dt.sec; - result.tm_min = dt.min; - result.tm_hour= dt.hour; - result.tm_mday= dt.day+1; - result.tm_mon = dt.mon; - result.tm_year= dt.year-1900; - return result; -} - -internal timespec -os_lnx_timespec_from_date_time(DateTime dt) -{ - tm tm_val = os_lnx_tm_from_date_time(dt); - time_t seconds = timegm(&tm_val); - timespec result = {0}; - result.tv_sec = seconds; - return result; -} - -internal DenseTime -os_lnx_dense_time_from_timespec(timespec in) -{ - DenseTime result = 0; - { - struct tm tm_time = {0}; - gmtime_r(&in.tv_sec, &tm_time); - DateTime date_time = os_lnx_date_time_from_tm(tm_time, in.tv_nsec/Million(1)); - result = dense_time_from_date_time(date_time); - } - return result; -} - -internal FileProperties -os_lnx_file_properties_from_stat(struct stat *s) -{ - FileProperties props = {0}; - props.size = s->st_size; - props.created = os_lnx_dense_time_from_timespec(s->st_ctim); - props.modified = os_lnx_dense_time_from_timespec(s->st_mtim); - if(s->st_mode & S_IFDIR) - { - props.flags |= FilePropertyFlag_IsFolder; - } - return props; -} - -internal void -os_lnx_safe_call_sig_handler(int x) -{ - OS_LNX_SafeCallChain *chain = os_lnx_safe_call_chain; - if(chain != 0 && chain->fail_handler != 0) - { - chain->fail_handler(chain->ptr); - } - abort(); -} - -//////////////////////////////// -//~ rjf: Entities - -internal OS_LNX_Entity * -os_lnx_entity_alloc(OS_LNX_EntityKind kind) -{ - OS_LNX_Entity *entity = 0; - DeferLoop(pthread_mutex_lock(&os_lnx_state.entity_mutex), - pthread_mutex_unlock(&os_lnx_state.entity_mutex)) - { - entity = os_lnx_state.entity_free; - if(entity) - { - SLLStackPop(os_lnx_state.entity_free); - } - else - { - entity = push_array_no_zero(os_lnx_state.entity_arena, OS_LNX_Entity, 1); - } - } - MemoryZeroStruct(entity); - entity->kind = kind; - return entity; -} - -internal void -os_lnx_entity_release(OS_LNX_Entity *entity) -{ - DeferLoop(pthread_mutex_lock(&os_lnx_state.entity_mutex), - pthread_mutex_unlock(&os_lnx_state.entity_mutex)) - { - SLLStackPush(os_lnx_state.entity_free, entity); - } -} - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal void * -os_lnx_thread_entry_point(void *ptr) -{ - OS_LNX_Entity *entity = (OS_LNX_Entity *)ptr; - ThreadEntryPointFunctionType *func = entity->thread.func; - void *thread_ptr = entity->thread.ptr; - supplement_thread_base_entry_point(func, thread_ptr); - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo * -os_get_system_info(void) -{ - return &os_lnx_state.system_info; -} - -internal OS_ProcessInfo * -os_get_process_info(void) -{ - return &os_lnx_state.process_info; -} - -internal String8 -os_get_current_path(Arena *arena) -{ - char *cwdir = getcwd(0, 0); - String8 string = push_str8_copy(arena, str8_cstring(cwdir)); - free(cwdir); - return string; -} - -internal U32 -os_get_process_start_time_unix(void) -{ - Temp scratch = scratch_begin(0,0); - U64 start_time = 0; - pid_t pid = getpid(); - String8 path = push_str8f(scratch.arena, "/proc/%u", pid); - struct stat st; - int err = stat((char*)path.str, &st); - if(err == 0) - { - start_time = st.st_mtime; - } - scratch_end(scratch); - return (U32)start_time; -} - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic - -internal void * -os_reserve(U64 size) -{ - void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - if(result == MAP_FAILED) - { - result = 0; - } - return result; -} - -internal B32 -os_commit(void *ptr, U64 size) -{ - mprotect(ptr, size, PROT_READ|PROT_WRITE); - return 1; -} - -internal void -os_decommit(void *ptr, U64 size) -{ - madvise(ptr, size, MADV_DONTNEED); - mprotect(ptr, size, PROT_NONE); -} - -internal void -os_release(void *ptr, U64 size) -{ - munmap(ptr, size); -} - -//- rjf: large pages - -internal void * -os_reserve_large(U64 size) -{ - void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0); - if(result == MAP_FAILED) - { - result = 0; - } - return result; -} - -internal B32 -os_commit_large(void *ptr, U64 size) -{ - mprotect(ptr, size, PROT_READ|PROT_WRITE); - return 1; -} - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 -os_tid(void) -{ - U32 result = gettid(); - return result; -} - -internal void -os_set_thread_name(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - pthread_t current_thread = pthread_self(); - pthread_setname_np(current_thread, (char *)name_copy.str); - scratch_end(scratch); -} - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void -os_abort(S32 exit_code) -{ - exit(exit_code); -} - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files - -internal OS_Handle -os_file_open(OS_AccessFlags flags, String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - int lnx_flags = 0; - if(flags & OS_AccessFlag_Read && flags & OS_AccessFlag_Write) - { - lnx_flags = O_RDWR; - } - else if(flags & OS_AccessFlag_Write) - { - lnx_flags = O_WRONLY; - } - else if(flags & OS_AccessFlag_Read) - { - lnx_flags = O_RDONLY; - } - if(flags & OS_AccessFlag_Append) - { - lnx_flags |= O_APPEND; - } - if(flags & (OS_AccessFlag_Write|OS_AccessFlag_Append)) - { - lnx_flags |= O_CREAT; - } - int fd = open((char *)path_copy.str, lnx_flags, 0755); - OS_Handle handle = {0}; - if(fd != -1) - { - handle.u64[0] = fd; - } - scratch_end(scratch); - return handle; -} - -internal void -os_file_close(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return; } - int fd = (int)file.u64[0]; - close(fd); -} - -internal U64 -os_file_read(OS_Handle file, Rng1U64 rng, void *out_data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - U64 total_num_bytes_to_read = dim_1u64(rng); - U64 total_num_bytes_read = 0; - U64 total_num_bytes_left_to_read = total_num_bytes_to_read; - for(;total_num_bytes_left_to_read > 0;) - { - int read_result = pread(fd, (U8 *)out_data + total_num_bytes_read, total_num_bytes_left_to_read, rng.min + total_num_bytes_read); - if(read_result >= 0) - { - total_num_bytes_read += read_result; - total_num_bytes_left_to_read -= read_result; - } - else if(errno != EINTR) - { - break; - } - } - return total_num_bytes_read; -} - -internal U64 -os_file_write(OS_Handle file, Rng1U64 rng, void *data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - U64 total_num_bytes_to_write = dim_1u64(rng); - U64 total_num_bytes_written = 0; - U64 total_num_bytes_left_to_write = total_num_bytes_to_write; - for(;total_num_bytes_left_to_write > 0;) - { - int write_result = pwrite(fd, (U8 *)data + total_num_bytes_written, total_num_bytes_left_to_write, rng.min + total_num_bytes_written); - if(write_result >= 0) - { - total_num_bytes_written += write_result; - total_num_bytes_left_to_write -= write_result; - } - else if(errno != EINTR) - { - break; - } - } - return total_num_bytes_written; -} - -internal B32 -os_file_set_times(OS_Handle file, DateTime date_time) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - int fd = (int)file.u64[0]; - timespec time = os_lnx_timespec_from_date_time(date_time); - timespec times[2] = {time, time}; - int futimens_result = futimens(fd, times); - B32 good = (futimens_result != -1); - return good; -} - -internal FileProperties -os_properties_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return (FileProperties){0}; } - int fd = (int)file.u64[0]; - struct stat fd_stat = {0}; - int fstat_result = fstat(fd, &fd_stat); - FileProperties props = {0}; - if(fstat_result != -1) - { - props = os_lnx_file_properties_from_stat(&fd_stat); - } - return props; -} - -internal OS_FileID -os_id_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return (OS_FileID){0}; } - int fd = (int)file.u64[0]; - struct stat fd_stat = {0}; - int fstat_result = fstat(fd, &fd_stat); - OS_FileID id = {0}; - if(fstat_result != -1) - { - id.v[0] = fd_stat.st_dev; - id.v[1] = fd_stat.st_ino; - } - return id; -} - -internal B32 -os_delete_file_at_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - if(remove((char*)path_copy.str) != -1) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -internal B32 -os_copy_file_path(String8 dst, String8 src) -{ - B32 result = 0; - OS_Handle src_h = os_file_open(OS_AccessFlag_Read, src); - OS_Handle dst_h = os_file_open(OS_AccessFlag_Write, dst); - if(!os_handle_match(src_h, os_handle_zero()) && - !os_handle_match(dst_h, os_handle_zero())) - { - int src_fd = (int)src_h.u64[0]; - int dst_fd = (int)dst_h.u64[0]; - FileProperties src_props = os_properties_from_file(src_h); - U64 size = src_props.size; - U64 total_bytes_copied = 0; - U64 bytes_left_to_copy = size; - for(;bytes_left_to_copy > 0;) - { - off_t sendfile_off = total_bytes_copied; - int send_result = sendfile(dst_fd, src_fd, &sendfile_off, bytes_left_to_copy); - if(send_result <= 0) - { - break; - } - U64 bytes_copied = (U64)send_result; - bytes_left_to_copy -= bytes_copied; - total_bytes_copied += bytes_copied; - } - } - os_file_close(src_h); - os_file_close(dst_h); - return result; -} - -internal B32 -os_move_file_path(String8 dst, String8 src) -{ - B32 good = 0; - Temp scratch = scratch_begin(0, 0); - { - char *src_cstr = (char *)push_str8_copy(scratch.arena, src).str; - char *dst_cstr = (char *)push_str8_copy(scratch.arena, dst).str; - int rename_result = rename(src_cstr, dst_cstr); - good = (rename_result != -1); - } - scratch_end(scratch); - return good; -} - -internal String8 -os_full_path_from_path(Arena *arena, String8 path) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 path_copy = push_str8_copy(scratch.arena, path); - char buffer[PATH_MAX] = {0}; - realpath((char *)path_copy.str, buffer); - String8 result = push_str8_copy(arena, str8_cstring(buffer)); - scratch_end(scratch); - return result; -} - -internal B32 -os_file_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - int access_result = access((char *)path_copy.str, F_OK); - B32 result = 0; - if(access_result == 0) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -internal B32 -os_folder_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 exists = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - DIR *handle = opendir((char*)path_copy.str); - if(handle) - { - closedir(handle); - exists = 1; - } - scratch_end(scratch); - return exists; -} - -internal FileProperties -os_properties_from_file_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - struct stat f_stat = {0}; - int stat_result = stat((char *)path_copy.str, &f_stat); - FileProperties props = {0}; - if(stat_result != -1) - { - props = os_lnx_file_properties_from_stat(&f_stat); - } - scratch_end(scratch); - return props; -} - -//- rjf: file maps - -internal OS_Handle -os_file_map_open(OS_AccessFlags flags, OS_Handle file) -{ - OS_Handle map = file; - return map; -} - -internal void -os_file_map_close(OS_Handle map) -{ - // NOTE(rjf): nothing to do; `map` handles are the same as `file` handles in - // the linux implementation (on Windows they require separate handles) -} - -internal void * -os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range) -{ - if(os_handle_match(map, os_handle_zero())) { return 0; } - int fd = (int)map.u64[0]; - int prot_flags = 0; - if(flags & OS_AccessFlag_Write) { prot_flags |= PROT_WRITE; } - if(flags & OS_AccessFlag_Read) { prot_flags |= PROT_READ; } - int map_flags = MAP_PRIVATE; - void *base = mmap(0, dim_1u64(range), prot_flags, map_flags, fd, range.min); - if(base == MAP_FAILED) - { - base = 0; - } - return base; -} - -internal void -os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range) -{ - munmap(ptr, dim_1u64(range)); -} - -//- rjf: directory iteration - -internal OS_FileIter * -os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags) -{ - OS_FileIter *base_iter = push_array(arena, OS_FileIter, 1); - base_iter->flags = flags; - OS_LNX_FileIter *iter = (OS_LNX_FileIter *)base_iter->memory; - { - String8 path_copy = push_str8_copy(arena, path); - iter->dir = opendir((char *)path_copy.str); - iter->path = path_copy; - } - return base_iter; -} - -internal B32 -os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out) -{ - B32 good = 0; - OS_LNX_FileIter *lnx_iter = (OS_LNX_FileIter *)iter->memory; - for(;lnx_iter->dir != 0;) - { - // rjf: get next entry - lnx_iter->dp = readdir(lnx_iter->dir); - good = (lnx_iter->dp != 0); - - // rjf: unpack entry info - struct stat st = {0}; - int stat_result = 0; - if(good) - { - Temp scratch = scratch_begin(&arena, 1); - String8 full_path = push_str8f(scratch.arena, "%S/%s", lnx_iter->path, lnx_iter->dp->d_name); - stat_result = stat((char *)full_path.str, &st); - scratch_end(scratch); - } - - // rjf: determine if filtered - B32 filtered = 0; - if(good) - { - filtered = ((st.st_mode == S_IFDIR && iter->flags & OS_FileIterFlag_SkipFolders) || - (st.st_mode == S_IFREG && iter->flags & OS_FileIterFlag_SkipFiles) || - (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == 0) || - (lnx_iter->dp->d_name[0] == '.' && lnx_iter->dp->d_name[1] == '.' && lnx_iter->dp->d_name[2] == 0)); - } - - // rjf: output & exit, if good & unfiltered - if(good && !filtered) - { - info_out->name = push_str8_copy(arena, str8_cstring(lnx_iter->dp->d_name)); - if(stat_result != -1) - { - info_out->props = os_lnx_file_properties_from_stat(&st); - } - break; - } - - // rjf: exit if not good - if(!good) - { - break; - } - } - return good; -} - -internal void -os_file_iter_end(OS_FileIter *iter) -{ - OS_LNX_FileIter *lnx_iter = (OS_LNX_FileIter *)iter->memory; - closedir(lnx_iter->dir); -} - -//- rjf: directory creation - -internal B32 -os_make_directory(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = 0; - String8 path_copy = push_str8_copy(scratch.arena, path); - if(mkdir((char*)path_copy.str, 0755) != -1) - { - result = 1; - } - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle -os_shared_memory_alloc(U64 size, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - int id = shm_open((char *)name_copy.str, O_RDWR, 0); - ftruncate(id, size); - OS_Handle result = {(U64)id}; - scratch_end(scratch); - return result; -} - -internal OS_Handle -os_shared_memory_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String8 name_copy = push_str8_copy(scratch.arena, name); - int id = shm_open((char *)name_copy.str, O_RDWR, 0); - OS_Handle result = {(U64)id}; - scratch_end(scratch); - return result; -} - -internal void -os_shared_memory_close(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())){return;} - int id = (int)handle.u64[0]; - close(id); -} - -internal void * -os_shared_memory_view_open(OS_Handle handle, Rng1U64 range) -{ - if(os_handle_match(handle, os_handle_zero())){return 0;} - int id = (int)handle.u64[0]; - void *base = mmap(0, dim_1u64(range), PROT_READ|PROT_WRITE, MAP_SHARED, id, range.min); - if(base == MAP_FAILED) - { - base = 0; - } - return base; -} - -internal void -os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range) -{ - if(os_handle_match(handle, os_handle_zero())){return;} - munmap(ptr, dim_1u64(range)); -} - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 -os_now_microseconds(void) -{ - struct timespec t; - clock_gettime(CLOCK_MONOTONIC, &t); - U64 result = t.tv_sec*Million(1) + (t.tv_nsec/Thousand(1)); - return result; -} - -internal U32 -os_now_unix(void) -{ - time_t t = time(0); - return (U32)t; -} - -internal DateTime -os_now_universal_time(void) -{ - time_t t = 0; - time(&t); - struct tm universal_tm = {0}; - gmtime_r(&t, &universal_tm); - DateTime result = os_lnx_date_time_from_tm(universal_tm, 0); - return result; -} - -internal DateTime -os_universal_time_from_local(DateTime *date_time) -{ - // rjf: local DateTime -> universal time_t - tm local_tm = os_lnx_tm_from_date_time(*date_time); - local_tm.tm_isdst = -1; - time_t universal_t = mktime(&local_tm); - - // rjf: universal time_t -> DateTime - tm universal_tm = {0}; - gmtime_r(&universal_t, &universal_tm); - DateTime result = os_lnx_date_time_from_tm(universal_tm, 0); - return result; -} - -internal DateTime -os_local_time_from_universal(DateTime *date_time) -{ - // rjf: universal DateTime -> local time_t - tm universal_tm = os_lnx_tm_from_date_time(*date_time); - universal_tm.tm_isdst = -1; - time_t universal_t = timegm(&universal_tm); - tm local_tm = {0}; - localtime_r(&universal_t, &local_tm); - - // rjf: local tm -> DateTime - DateTime result = os_lnx_date_time_from_tm(local_tm, 0); - return result; -} - -internal void -os_sleep_milliseconds(U32 msec) -{ - usleep(msec*Thousand(1)); -} - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle -os_process_launch(OS_ProcessLaunchParams *params) -{ - NotImplemented; -} - -internal B32 -os_process_join(OS_Handle handle, U64 endt_us, U64 *exit_code_out) -{ - NotImplemented; -} - -internal U64 -os_process_array_join(OS_HandleArray processes, U64 endt_us, U64 *exit_code_out) -{ - NotImplemented; -} - -internal void -os_process_detach(OS_Handle handle) -{ - NotImplemented; -} - -internal B32 -os_process_kill(OS_Handle handle) -{ - NotImplemented; -} - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal Thread -os_thread_launch(ThreadEntryPointFunctionType *func, void *ptr) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_Thread); - entity->thread.func = func; - entity->thread.ptr = ptr; - { - int pthread_result = pthread_create(&entity->thread.handle, 0, os_lnx_thread_entry_point, entity); - if(pthread_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - } - Thread handle = {(U64)entity}; - return handle; -} - -internal B32 -os_thread_join(Thread handle, U64 endt_us) -{ - if(MemoryIsZeroStruct(&handle)) { return 0; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)handle.u64[0]; - int join_result = pthread_join(entity->thread.handle, 0); - B32 result = (join_result == 0); - os_lnx_entity_release(entity); - return result; -} - -internal void -os_thread_detach(Thread handle) -{ - if(MemoryIsZeroStruct(&handle)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)handle.u64[0]; - os_lnx_entity_release(entity); -} - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: mutexes - -internal Mutex -os_mutex_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_Mutex); - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - int init_result = pthread_mutex_init(&entity->mutex_handle, &attr); - pthread_mutexattr_destroy(&attr); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - Mutex handle = {(U64)entity}; - return handle; -} - -internal void -os_mutex_release(Mutex mutex) -{ - if(MemoryIsZeroStruct(&mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_destroy(&entity->mutex_handle); - os_lnx_entity_release(entity); -} - -internal void -os_mutex_take(Mutex mutex) -{ - if(MemoryIsZeroStruct(&mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_lock(&entity->mutex_handle); -} - -internal void -os_mutex_drop(Mutex mutex) -{ - if(MemoryIsZeroStruct(&mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)mutex.u64[0]; - pthread_mutex_unlock(&entity->mutex_handle); -} - -//- rjf: reader/writer mutexes - -internal RWMutex -os_rw_mutex_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_RWMutex); - int init_result = pthread_rwlock_init(&entity->rwmutex_handle, 0); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - RWMutex handle = {(U64)entity}; - return handle; -} - -internal void -os_rw_mutex_release(RWMutex rw_mutex) -{ - if(MemoryIsZeroStruct(&rw_mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_destroy(&entity->rwmutex_handle); - os_lnx_entity_release(entity); -} - -internal void -os_rw_mutex_take(RWMutex rw_mutex, B32 write_mode) -{ - if(MemoryIsZeroStruct(&rw_mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - if(write_mode) - { - pthread_rwlock_wrlock(&entity->rwmutex_handle); - } - else - { - pthread_rwlock_rdlock(&entity->rwmutex_handle); - } -} - -internal void -os_rw_mutex_drop(RWMutex rw_mutex, B32 write_mode) -{ - if(MemoryIsZeroStruct(&rw_mutex)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)rw_mutex.u64[0]; - pthread_rwlock_unlock(&entity->rwmutex_handle); -} - -//- rjf: condition variables - -internal CondVar -os_cond_var_alloc(void) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_ConditionVariable); - int init_result = pthread_cond_init(&entity->cv.cond_handle, 0); - if(init_result == -1) - { - os_lnx_entity_release(entity); - entity = 0; - } - int init2_result = 0; - if(entity) - { - init2_result = pthread_mutex_init(&entity->cv.rwlock_mutex_handle, 0); - } - if(init2_result == -1) - { - pthread_cond_destroy(&entity->cv.cond_handle); - os_lnx_entity_release(entity); - entity = 0; - } - CondVar handle = {(U64)entity}; - return handle; -} - -internal void -os_cond_var_release(CondVar cv) -{ - if(MemoryIsZeroStruct(&cv)) { return; } - OS_LNX_Entity *entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_destroy(&entity->cv.cond_handle); - pthread_mutex_destroy(&entity->cv.rwlock_mutex_handle); - os_lnx_entity_release(entity); -} - -internal B32 -os_cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us) -{ - if(MemoryIsZeroStruct(&cv)) { return 0; } - if(MemoryIsZeroStruct(&mutex)) { return 0; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - OS_LNX_Entity *mutex_entity = (OS_LNX_Entity *)mutex.u64[0]; - struct timespec endt_timespec; - endt_timespec.tv_sec = endt_us/Million(1); - endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); - int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &mutex_entity->mutex_handle, &endt_timespec); - B32 result = (wait_result != ETIMEDOUT); - return result; -} - -internal B32 -os_cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us) -{ - // TODO(rjf): because pthread does not supply cv/rw natively, I had to hack - // this together, but this would probably just be a lot better if we just - // implemented the primitives ourselves with e.g. futexes - // - if(MemoryIsZeroStruct(&cv)) { return 0; } - if(MemoryIsZeroStruct(&mutex_rw)) { return 0; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - OS_LNX_Entity *rw_mutex_entity = (OS_LNX_Entity *)mutex_rw.u64[0]; - struct timespec endt_timespec; - endt_timespec.tv_sec = endt_us/Million(1); - endt_timespec.tv_nsec = Thousand(1) * (endt_us - (endt_us/Million(1))*Million(1)); - B32 result = 0; - pthread_mutex_lock(&cv_entity->cv.rwlock_mutex_handle); - pthread_rwlock_unlock(&rw_mutex_entity->rwmutex_handle); - for(;;) - { - int wait_result = pthread_cond_timedwait(&cv_entity->cv.cond_handle, &cv_entity->cv.rwlock_mutex_handle, &endt_timespec); - if(wait_result != ETIMEDOUT) - { - if(write_mode) - { - pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); - } - else - { - pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); - } - result = 1; - break; - } - if(wait_result == ETIMEDOUT) - { - if(write_mode) - { - pthread_rwlock_wrlock(&rw_mutex_entity->rwmutex_handle); - } - else - { - pthread_rwlock_rdlock(&rw_mutex_entity->rwmutex_handle); - } - break; - } - } - pthread_mutex_unlock(&cv_entity->cv.rwlock_mutex_handle); - return result; -} - -internal void -os_cond_var_signal(CondVar cv) -{ - if(MemoryIsZeroStruct(&cv)) { return; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_signal(&cv_entity->cv.cond_handle); -} - -internal void -os_cond_var_broadcast(CondVar cv) -{ - if(MemoryIsZeroStruct(&cv)) { return; } - OS_LNX_Entity *cv_entity = (OS_LNX_Entity *)cv.u64[0]; - pthread_cond_broadcast(&cv_entity->cv.cond_handle); -} - -//- rjf: cross-process semaphores - -internal Semaphore -os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name) -{ - Semaphore result = {0}; - if (name.size > 0) - { - // TODO: we need to allocate shared memory to store sem_t - // NotImplemented; - } - else - { - sem_t *s = mmap(0, sizeof(*s), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - AssertAlways(s != MAP_FAILED); - int err = sem_init(s, 0, initial_count); - if(err == 0) - { - result.u64[0] = (U64)s; - } - } - return result; -} - -internal void -os_semaphore_release(Semaphore semaphore) -{ - int err = munmap((void*)semaphore.u64[0], sizeof(sem_t)); - AssertAlways(err == 0); -} - -internal Semaphore -os_semaphore_open(String8 name) -{ - NotImplemented; -} - -internal void -os_semaphore_close(Semaphore semaphore) -{ - NotImplemented; -} - -internal B32 -os_semaphore_take(Semaphore semaphore, U64 endt_us) -{ - // TODO(rjf): we need to use `sem_timedwait` here. - AssertAlways(endt_us == max_U64); - for(;;) - { - int err = sem_wait((sem_t*)semaphore.u64[0]); - if(err == 0) - { - break; - } - else if(errno == EAGAIN) - { - continue; - } - break; - } - return 1; -} - -internal void -os_semaphore_drop(Semaphore semaphore) -{ - for(;;) - { - int err = sem_post((sem_t*)semaphore.u64[0]); - if(err == 0) - { - break; - } - else - { - if(errno == EAGAIN) - { - continue; - } - } - break; - } -} - -//- rjf: barriers - -internal Barrier -os_barrier_alloc(U64 count) -{ - OS_LNX_Entity *entity = os_lnx_entity_alloc(OS_LNX_EntityKind_Barrier); - if(entity != 0) - { - pthread_barrier_init(&entity->barrier, 0, count); - } - Barrier result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_barrier_release(Barrier barrier) -{ - OS_LNX_Entity *entity = (OS_LNX_Entity*)PtrFromInt(barrier.u64[0]); - if(entity != 0) - { - pthread_barrier_destroy(&entity->barrier); - os_lnx_entity_release(entity); - } -} - -internal void -os_barrier_wait(Barrier barrier) -{ - OS_LNX_Entity *entity = (OS_LNX_Entity*)PtrFromInt(barrier.u64[0]); - if(entity != 0) - { - pthread_barrier_wait(&entity->barrier); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle -os_library_open(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - char *path_cstr = (char *)push_str8_copy(scratch.arena, path).str; - void *so = dlopen(path_cstr, RTLD_LAZY|RTLD_LOCAL); - OS_Handle lib = { (U64)so }; - scratch_end(scratch); - return lib; -} - -internal VoidProc* -os_library_load_proc(OS_Handle lib, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - void *so = (void *)lib.u64; - char *name_cstr = (char *)push_str8_copy(scratch.arena, name).str; - VoidProc *proc = (VoidProc *)dlsym(so, name_cstr); - scratch_end(scratch); - return proc; -} - -internal void -os_library_close(OS_Handle lib) -{ - void *so = (void *)lib.u64; - dlclose(so); -} - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void -os_safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr) -{ - // rjf: push handler to chain - OS_LNX_SafeCallChain chain = {0}; - SLLStackPush(os_lnx_safe_call_chain, &chain); - chain.fail_handler = fail_handler; - chain.ptr = ptr; - - // rjf: set up sig handler info - struct sigaction new_act = {0}; - new_act.sa_handler = os_lnx_safe_call_sig_handler; - int signals_to_handle[] = - { - SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, - }; - struct sigaction og_act[ArrayCount(signals_to_handle)] = {0}; - - // rjf: attach handler info for all signals - for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) - { - sigaction(signals_to_handle[i], &new_act, &og_act[i]); - } - - // rjf: call function - func(ptr); - - // rjf: reset handler info for all signals - for(U32 i = 0; i < ArrayCount(signals_to_handle); i += 1) - { - sigaction(signals_to_handle[i], &og_act[i], 0); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid -os_make_guid(void) -{ - Guid guid = {0}; - getrandom(guid.v, sizeof(guid.v), 0); - guid.data3 &= 0x0fff; - guid.data3 |= (4 << 12); - guid.data4[0] &= 0x3f; - guid.data4[0] |= 0x80; - return guid; -} - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -int -main(int argc, char **argv) -{ - //- rjf: set up OS layer - { - //- rjf: get statically-allocated system/process info - { - OS_SystemInfo *info = &os_lnx_state.system_info; - info->logical_processor_count = (U32)get_nprocs(); - info->page_size = (U64)getpagesize(); - info->large_page_size = MB(2); - info->allocation_granularity = info->page_size; - } - { - OS_ProcessInfo *info = &os_lnx_state.process_info; - info->pid = (U32)getpid(); - } - - //- rjf: set up thread context - TCTX *tctx = tctx_alloc(); - tctx_select(tctx); - - //- rjf: set up dynamically allocated state - os_lnx_state.arena = arena_alloc(); - os_lnx_state.entity_arena = arena_alloc(); - pthread_mutex_init(&os_lnx_state.entity_mutex, 0); - - //- rjf: grab dynamically allocated system info - { - Temp scratch = scratch_begin(0, 0); - OS_SystemInfo *info = &os_lnx_state.system_info; - - // rjf: get machine name - B32 got_final_result = 0; - U8 *buffer = 0; - int size = 0; - for(S64 cap = 4096, r = 0; r < 4; cap *= 2, r += 1) - { - scratch_end(scratch); - buffer = push_array(scratch.arena, U8, cap); - int gethostname_result = gethostname((char*)buffer, cap); - size = cstring8_length(buffer); - if(gethostname_result == 0 && size < cap) - { - got_final_result = 1; - break; - } - } - - // rjf: save name to info - if(got_final_result && size > 0) - { - info->machine_name.size = size; - info->machine_name.str = push_array_no_zero(os_lnx_state.arena, U8, info->machine_name.size + 1); - MemoryCopy(info->machine_name.str, buffer, info->machine_name.size); - info->machine_name.str[info->machine_name.size] = 0; - } - - scratch_end(scratch); - } - - //- rjf: grab dynamically allocated process info - { - Temp scratch = scratch_begin(0, 0); - OS_ProcessInfo *info = &os_lnx_state.process_info; - - // rjf: grab binary path - { - // rjf: get self string - B32 got_final_result = 0; - U8 *buffer = 0; - int size = 0; - for(S64 cap = PATH_MAX, r = 0; r < 4; cap *= 2, r += 1) - { - scratch_end(scratch); - buffer = push_array_no_zero(scratch.arena, U8, cap); - size = readlink("/proc/self/exe", (char*)buffer, cap); - if(size < cap) - { - got_final_result = 1; - break; - } - } - - // rjf: save - if(got_final_result && size > 0) - { - String8 full_name = str8(buffer, size); - String8 name_chopped = str8_chop_last_slash(full_name); - info->binary_path = push_str8_copy(os_lnx_state.arena, name_chopped); - } - } - - // rjf: grab initial directory - { - info->initial_path = os_get_current_path(os_lnx_state.arena); - } - - // rjf: grab home directory - { - char *home = getenv("HOME"); - info->user_program_data_path = str8_cstring(home); - } - - scratch_end(scratch); - } - } - - //- rjf: call into "real" entry point - main_thread_base_entry_point(argc, argv); -} diff --git a/src/os/core/linux/os_core_linux.h b/src/os/core/linux/os_core_linux.h deleted file mode 100644 index 7b335fbb..00000000 --- a/src/os/core/linux/os_core_linux.h +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_LINUX_H -#define OS_CORE_LINUX_H - -//////////////////////////////// -//~ rjf: Includes - -#define _GNU_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -pid_t gettid(void); -int pthread_setname_np(pthread_t thread, const char *name); -int pthread_getname_np(pthread_t thread, char *name, size_t size); - -typedef struct tm tm; -typedef struct timespec timespec; - -//////////////////////////////// -//~ rjf: File Iterator - -typedef struct OS_LNX_FileIter OS_LNX_FileIter; -struct OS_LNX_FileIter -{ - DIR *dir; - struct dirent *dp; - String8 path; -}; -StaticAssert(sizeof(Member(OS_FileIter, memory)) >= sizeof(OS_LNX_FileIter), os_lnx_file_iter_size_check); - -//////////////////////////////// -//~ rjf: Safe Call Handler Chain - -typedef struct OS_LNX_SafeCallChain OS_LNX_SafeCallChain; -struct OS_LNX_SafeCallChain -{ - OS_LNX_SafeCallChain *next; - ThreadEntryPointFunctionType *fail_handler; - void *ptr; -}; - -//////////////////////////////// -//~ rjf: Entities - -typedef enum OS_LNX_EntityKind -{ - OS_LNX_EntityKind_Thread, - OS_LNX_EntityKind_Mutex, - OS_LNX_EntityKind_RWMutex, - OS_LNX_EntityKind_ConditionVariable, - OS_LNX_EntityKind_Barrier, -} -OS_LNX_EntityKind; - -typedef struct OS_LNX_Entity OS_LNX_Entity; -struct OS_LNX_Entity -{ - OS_LNX_Entity *next; - OS_LNX_EntityKind kind; - union - { - struct - { - pthread_t handle; - ThreadEntryPointFunctionType *func; - void *ptr; - } thread; - pthread_mutex_t mutex_handle; - pthread_rwlock_t rwmutex_handle; - struct - { - pthread_cond_t cond_handle; - pthread_mutex_t rwlock_mutex_handle; - } cv; - pthread_barrier_t barrier; - }; -}; - -//////////////////////////////// -//~ rjf: State - -typedef struct OS_LNX_State OS_LNX_State; -struct OS_LNX_State -{ - Arena *arena; - OS_SystemInfo system_info; - OS_ProcessInfo process_info; - pthread_mutex_t entity_mutex; - Arena *entity_arena; - OS_LNX_Entity *entity_free; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_LNX_State os_lnx_state = {0}; -thread_static OS_LNX_SafeCallChain *os_lnx_safe_call_chain = 0; - -//////////////////////////////// -//~ rjf: Helpers - -internal DateTime os_lnx_date_time_from_tm(tm in, U32 msec); -internal tm os_lnx_tm_from_date_time(DateTime dt); -internal timespec os_lnx_timespec_from_date_time(DateTime dt); -internal DenseTime os_lnx_dense_time_from_timespec(timespec in); -internal FileProperties os_lnx_file_properties_from_stat(struct stat *s); -internal void os_lnx_safe_call_sig_handler(int x); - -//////////////////////////////// -//~ rjf: Entities - -internal OS_LNX_Entity *os_lnx_entity_alloc(OS_LNX_EntityKind kind); -internal void os_lnx_entity_release(OS_LNX_Entity *entity); - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal void *os_lnx_thread_entry_point(void *ptr); - -#endif // OS_CORE_LINUX_H diff --git a/src/os/core/linux/os_core_linux_old.c b/src/os/core/linux/os_core_linux_old.c deleted file mode 100644 index 4d492f06..00000000 --- a/src/os/core/linux/os_core_linux_old.c +++ /dev/null @@ -1,1677 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#include - -//////////////////////////////// -//~ rjf: Globals - -global pthread_mutex_t lnx_mutex = {0}; -global Arena *lnx_perm_arena = 0; -global String8List lnx_cmd_line_args = {0}; -global LNX_Entity lnx_entity_buffer[1024]; -global LNX_Entity *lnx_entity_free = 0; -global String8 lnx_initial_path = {0}; -thread_static LNX_SafeCallChain *lnx_safe_call_chain = 0; - -//////////////////////////////// -//~ rjf: Helpers - -internal B32 -lnx_write_list_to_file_descriptor(int fd, String8List list){ - B32 success = true; - - String8Node *node = list.first; - if (node != 0){ - U8 *ptr = node->string.str;; - U8 *opl = ptr + node->string.size; - - U64 p = 0; - for (;p < list.total_size;){ - U64 amt64 = (U64)(opl - ptr); - U32 amt = u32_from_u64_saturate(amt64); - S64 written_amt = write(fd, ptr, amt); - if (written_amt < 0){ - break; - } - p += written_amt; - ptr += written_amt; - - Assert(ptr <= opl); - if (ptr == opl){ - node = node->next; - if (node == 0){ - if (p < list.total_size){ - success = false; - } - break; - } - ptr = node->string.str; - opl = ptr + node->string.size; - } - } - } - - return(success); -} - -internal void -lnx_date_time_from_tm(DateTime *out, struct tm *in, U32 msec){ - out->msec = msec; - out->sec = in->tm_sec; - out->min = in->tm_min; - out->hour = in->tm_hour; - out->day = in->tm_mday - 1; - out->wday = in->tm_wday; - out->mon = in->tm_mon; - out->year = in->tm_year + 1900; -} - -internal void -lnx_tm_from_date_time(struct tm *out, DateTime *in){ - out->tm_sec = in->sec; - out->tm_min = in->min; - out->tm_hour = in->hour; - out->tm_mday = in->day + 1; - out->tm_mon = in->mon; - out->tm_year = in->year - 1900; -} - -internal void -lnx_dense_time_from_timespec(DenseTime *out, struct timespec *in){ - struct tm tm_time = {0}; - gmtime_r(&in->tv_sec, &tm_time); - DateTime date_time = {0}; - lnx_date_time_from_tm(&date_time, &tm_time, in->tv_nsec/Million(1)); - *out = dense_time_from_date_time(date_time); -} - -internal void -lnx_file_properties_from_stat(FileProperties *out, struct stat *in){ - MemoryZeroStruct(out); - out->size = in->st_size; - lnx_dense_time_from_timespec(&out->created, &in->st_ctim); - lnx_dense_time_from_timespec(&out->modified, &in->st_mtim); - if ((in->st_mode & S_IFDIR) != 0){ - out->flags |= FilePropertyFlag_IsFolder; - } -} - -internal String8 -lnx_string_from_signal(int signum){ - String8 result = str8_lit(""); - switch (signum){ - case SIGABRT: - { - result = str8_lit("SIGABRT"); - }break; - case SIGALRM: - { - result = str8_lit("SIGALRM"); - }break; - case SIGBUS: - { - result = str8_lit("SIGBUS"); - }break; - case SIGCHLD: - { - result = str8_lit("SIGCHLD"); - }break; - case SIGCONT: - { - result = str8_lit("SIGCONT"); - }break; - case SIGFPE: - { - result = str8_lit("SIGFPE"); - }break; - case SIGHUP: - { - result = str8_lit("SIGHUP"); - }break; - case SIGILL: - { - result = str8_lit("SIGILL"); - }break; - case SIGINT: - { - result = str8_lit("SIGINT"); - }break; - case SIGIO: - { - result = str8_lit("SIGIO"); - } - case SIGKILL: - { - result = str8_lit("SIGKILL"); - }break; - case SIGPIPE: - { - result = str8_lit("SIGPIPE"); - }break; - case SIGPROF: - { - result = str8_lit("SIGPROF"); - }break; - case SIGPWR: - { - result = str8_lit("SIGPWR"); - }break; - case SIGQUIT: - { - result = str8_lit("SIGQUIT"); - }break; - case SIGSEGV: - { - result = str8_lit("SIGSEGV"); - }break; - case SIGSTKFLT: - { - result = str8_lit("SIGSTKFLT"); - }break; - case SIGSTOP: - { - result = str8_lit("SIGSTOP"); - }break; - case SIGTSTP: - { - result = str8_lit("SIGTSTP"); - }break; - case SIGSYS: - { - result = str8_lit("SIGSYS"); - }break; - case SIGTERM: - { - result = str8_lit("SIGTERM"); - }break; - case SIGTRAP: - { - result = str8_lit("SIGTRAP"); - }break; - case SIGTTIN: - { - result = str8_lit("SIGTTIN"); - }break; - case SIGTTOU: - { - result = str8_lit("SIGTTOU"); - }break; - case SIGURG: - { - result = str8_lit("SIGURG"); - }break; - case SIGUSR1: - { - result = str8_lit("SIGUSR1"); - }break; - case SIGUSR2: - { - result = str8_lit("SIGUSR2"); - }break; - case SIGVTALRM: - { - result = str8_lit("SIGVTALRM"); - }break; - case SIGXCPU: - { - result = str8_lit("SIGXCPU"); - }break; - case SIGXFSZ: - { - result = str8_lit("SIGXFSZ"); - }break; - case SIGWINCH: - { - result = str8_lit("SIGWINCH"); - }break; - } - return(result); -} - -internal String8 -lnx_string_from_errno(int error_number){ - String8 result = str8_lit(""); - switch (error_number){ - case EPERM: - { - result = str8_lit("EPERM"); - }break; - case ENOENT: - { - result = str8_lit("ENOENT"); - }break; - case ESRCH: - { - result = str8_lit("ESRCH"); - }break; - case EINTR: - { - result = str8_lit("EINTR"); - }break; - case EIO: - { - result = str8_lit("EIO"); - }break; - case ENXIO: - { - result = str8_lit("ENXIO"); - }break; - case E2BIG: - { - result = str8_lit("E2BIG"); - }break; - case ENOEXEC: - { - result = str8_lit("ENOEXEC"); - }break; - case EBADF: - { - result = str8_lit("EBADF"); - }break; - case ECHILD: - { - result = str8_lit("ECHILD"); - }break; - case EAGAIN: - { - result = str8_lit("EAGAIN"); - }break; - case ENOMEM: - { - result = str8_lit("ENOMEM"); - }break; - case EACCES: - { - result = str8_lit("EACCES"); - }break; - case EFAULT: - { - result = str8_lit("EFAULT"); - }break; - case ENOTBLK: - { - result = str8_lit("ENOTBLK"); - }break; - case EBUSY: - { - result = str8_lit("EBUSY"); - }break; - case EEXIST: - { - result = str8_lit("EEXIST"); - }break; - case EXDEV: - { - result = str8_lit("EXDEV"); - }break; - case ENODEV: - { - result = str8_lit("ENODEV"); - }break; - case ENOTDIR: - { - result = str8_lit("ENOTDIR"); - }break; - case EISDIR: - { - result = str8_lit("EISDIR"); - }break; - case EINVAL: - { - result = str8_lit("EINVAL"); - }break; - case ENFILE: - { - result = str8_lit("ENFILE"); - }break; - case EMFILE: - { - result = str8_lit("EMFILE"); - }break; - case ENOTTY: - { - result = str8_lit("ENOTTY"); - }break; - case ETXTBSY: - { - result = str8_lit("ETXTBSY"); - }break; - case EFBIG: - { - result = str8_lit("EFBIG"); - }break; - case ENOSPC: - { - result = str8_lit("ENOSPC"); - }break; - case ESPIPE: - { - result = str8_lit("ESPIPE"); - }break; - case EROFS: - { - result = str8_lit("EROFS"); - }break; - case EMLINK: - { - result = str8_lit("EMLINK"); - }break; - case EPIPE: - { - result = str8_lit("EPIPE"); - }break; - case EDOM: - { - result = str8_lit("EDOM"); - }break; - case ERANGE: - { - result = str8_lit("ERANGE"); - }break; - case EDEADLK: - { - result = str8_lit("EDEADLK"); - }break; - case ENAMETOOLONG: - { - result = str8_lit("ENAMETOOLONG"); - }break; - case ENOLCK: - { - result = str8_lit("ENOLCK"); - }break; - case ENOSYS: - { - result = str8_lit("ENOSYS"); - }break; - case ENOTEMPTY: - { - result = str8_lit("ENOTEMPTY"); - }break; - case ELOOP: - { - result = str8_lit("ELOOP"); - }break; - case ENOMSG: - { - result = str8_lit("ENOMSG"); - }break; - case EIDRM: - { - result = str8_lit("EIDRM"); - }break; - case ECHRNG: - { - result = str8_lit("ECHRNG"); - }break; - case EL2NSYNC: - { - result = str8_lit("EL2NSYNC"); - }break; - case EL3HLT: - { - result = str8_lit("EL3HLT"); - }break; - case EL3RST: - { - result = str8_lit("EL3RST"); - }break; - case ELNRNG: - { - result = str8_lit("ELNRNG"); - }break; - case EUNATCH: - { - result = str8_lit("EUNATCH"); - }break; - case ENOCSI: - { - result = str8_lit("ENOCSI"); - }break; - case EL2HLT: - { - result = str8_lit("EL2HLT"); - }break; - case EBADE: - { - result = str8_lit("EBADE"); - }break; - case EBADR: - { - result = str8_lit("EBADR"); - }break; - case EXFULL: - { - result = str8_lit("EXFULL"); - }break; - case ENOANO: - { - result = str8_lit("ENOANO"); - }break; - case EBADRQC: - { - result = str8_lit("EBADRQC"); - }break; - case EBADSLT: - { - result = str8_lit("EBADSLT"); - }break; - case EBFONT: - { - result = str8_lit("EBFONT"); - }break; - case ENOSTR: - { - result = str8_lit("ENOSTR"); - }break; - case ENODATA: - { - result = str8_lit("ENODATA"); - }break; - case ETIME: - { - result = str8_lit("ETIME"); - }break; - case ENOSR: - { - result = str8_lit("ENOSR"); - }break; - case ENONET: - { - result = str8_lit("ENONET"); - }break; - case ENOPKG: - { - result = str8_lit("ENOPKG"); - }break; - case EREMOTE: - { - result = str8_lit("EREMOTE"); - }break; - case ENOLINK: - { - result = str8_lit("ENOLINK"); - }break; - case EADV: - { - result = str8_lit("EADV"); - }break; - case ESRMNT: - { - result = str8_lit("ESRMNT"); - }break; - case ECOMM: - { - result = str8_lit("ECOMM"); - }break; - case EPROTO: - { - result = str8_lit("EPROTO"); - }break; - case EMULTIHOP: - { - result = str8_lit("EMULTIHOP"); - }break; - case EDOTDOT: - { - result = str8_lit("EDOTDOT"); - }break; - case EBADMSG: - { - result = str8_lit("EBADMSG"); - }break; - case EOVERFLOW: - { - result = str8_lit("EOVERFLOW"); - }break; - case ENOTUNIQ: - { - result = str8_lit("ENOTUNIQ"); - }break; - case EBADFD: - { - result = str8_lit("EBADFD"); - }break; - case EREMCHG: - { - result = str8_lit("EREMCHG"); - }break; - case ELIBACC: - { - result = str8_lit("ELIBACC"); - }break; - case ELIBBAD: - { - result = str8_lit("ELIBBAD"); - }break; - case ELIBSCN: - { - result = str8_lit("ELIBSCN"); - }break; - case ELIBMAX: - { - result = str8_lit("ELIBMAX"); - }break; - case ELIBEXEC: - { - result = str8_lit("ELIBEXEC"); - }break; - case EILSEQ: - { - result = str8_lit("EILSEQ"); - }break; - case ERESTART: - { - result = str8_lit("ERESTART"); - }break; - case ESTRPIPE: - { - result = str8_lit("ESTRPIPE"); - }break; - case EUSERS: - { - result = str8_lit("EUSERS"); - }break; - case ENOTSOCK: - { - result = str8_lit("ENOTSOCK"); - }break; - case EDESTADDRREQ: - { - result = str8_lit("EDESTADDRREQ"); - }break; - case EMSGSIZE: - { - result = str8_lit("EMSGSIZE"); - }break; - case EPROTOTYPE: - { - result = str8_lit("EPROTOTYPE"); - }break; - case ENOPROTOOPT: - { - result = str8_lit("ENOPROTOOPT"); - }break; - case EPROTONOSUPPORT: - { - result = str8_lit("EPROTONOSUPPORT"); - }break; - case ESOCKTNOSUPPORT: - { - result = str8_lit("ESOCKTNOSUPPORT"); - }break; - case EOPNOTSUPP: - { - result = str8_lit("EOPNOTSUPP"); - }break; - case EPFNOSUPPORT: - { - result = str8_lit("EPFNOSUPPORT"); - }break; - case EAFNOSUPPORT: - { - result = str8_lit("EAFNOSUPPORT"); - }break; - case EADDRINUSE: - { - result = str8_lit("EADDRINUSE"); - }break; - case EADDRNOTAVAIL: - { - result = str8_lit("EADDRNOTAVAIL"); - }break; - case ENETDOWN: - { - result = str8_lit("ENETDOWN"); - }break; - case ENETUNREACH: - { - result = str8_lit("ENETUNREACH"); - }break; - case ENETRESET: - { - result = str8_lit("ENETRESET"); - }break; - case ECONNABORTED: - { - result = str8_lit("ECONNABORTED"); - }break; - case ECONNRESET: - { - result = str8_lit("ECONNRESET"); - }break; - case ENOBUFS: - { - result = str8_lit("ENOBUFS"); - }break; - case EISCONN: - { - result = str8_lit("EISCONN"); - }break; - case ENOTCONN: - { - result = str8_lit("ENOTCONN"); - }break; - case ESHUTDOWN: - { - result = str8_lit("ESHUTDOWN"); - }break; - case ETOOMANYREFS: - { - result = str8_lit("ETOOMANYREFS"); - }break; - case ETIMEDOUT: - { - result = str8_lit("ETIMEDOUT"); - }break; - case ECONNREFUSED: - { - result = str8_lit("ECONNREFUSED"); - }break; - case EHOSTDOWN: - { - result = str8_lit("EHOSTDOWN"); - }break; - case EHOSTUNREACH: - { - result = str8_lit("EHOSTUNREACH"); - }break; - case EALREADY: - { - result = str8_lit("EALREADY"); - }break; - case EINPROGRESS: - { - result = str8_lit("EINPROGRESS"); - }break; - case ESTALE: - { - result = str8_lit("ESTALE"); - }break; - case EUCLEAN: - { - result = str8_lit("EUCLEAN"); - }break; - case ENOTNAM: - { - result = str8_lit("ENOTNAM"); - }break; - case ENAVAIL: - { - result = str8_lit("ENAVAIL"); - }break; - case EISNAM: - { - result = str8_lit("EISNAM"); - }break; - case EREMOTEIO: - { - result = str8_lit("EREMOTEIO"); - }break; - case EDQUOT: - { - result = str8_lit("EDQUOT"); - }break; - case ENOMEDIUM: - { - result = str8_lit("ENOMEDIUM"); - }break; - case EMEDIUMTYPE: - { - result = str8_lit("EMEDIUMTYPE"); - }break; - case ECANCELED: - { - result = str8_lit("ECANCELED"); - }break; - case ENOKEY: - { - result = str8_lit("ENOKEY"); - }break; - case EKEYEXPIRED: - { - result = str8_lit("EKEYEXPIRED"); - }break; - case EKEYREVOKED: - { - result = str8_lit("EKEYREVOKED"); - }break; - case EKEYREJECTED: - { - result = str8_lit("EKEYREJECTED"); - }break; - case EOWNERDEAD: - { - result = str8_lit("EOWNERDEAD"); - }break; - case ENOTRECOVERABLE: - { - result = str8_lit("ENOTRECOVERABLE"); - }break; - case ERFKILL: - { - result = str8_lit("ERFKILL"); - }break; - case EHWPOISON: - { - result = str8_lit("EHWPOISON"); - }break; - } - return(result); -} - -internal LNX_Entity* -lnx_alloc_entity(LNX_EntityKind kind){ - pthread_mutex_lock(&lnx_mutex); - LNX_Entity *result = lnx_entity_free; - Assert(result != 0); - SLLStackPop(lnx_entity_free); - pthread_mutex_unlock(&lnx_mutex); - result->kind = kind; - return(result); -} - -internal void -lnx_free_entity(LNX_Entity *entity){ - entity->kind = LNX_EntityKind_Null; - pthread_mutex_lock(&lnx_mutex); - SLLStackPush(lnx_entity_free, entity); - pthread_mutex_unlock(&lnx_mutex); -} - -internal void* -lnx_thread_base(void *ptr){ - LNX_Entity *entity = (LNX_Entity*)ptr; - ThreadEntryPointFunctionType *func = entity->thread.func; - void *thread_ptr = entity->thread.ptr; - - TCTX tctx_; - tctx_init_and_equip(&tctx_); - func(thread_ptr); - tctx_release(); - - // remove my bit - U32 result = __sync_fetch_and_and(&entity->reference_mask, ~0x2); - // if the other bit is also gone, free entity - if ((result & 0x1) == 0){ - lnx_free_entity(entity); - } - return(0); -} - -internal void -lnx_safe_call_sig_handler(int){ - LNX_SafeCallChain *chain = lnx_safe_call_chain; - if (chain != 0 && chain->fail_handler != 0){ - chain->fail_handler(chain->ptr); - } - abort(); -} - -//////////////////////////////// -//~ rjf: @os_hooks Main Initialization API (Implemented Per-OS) - -internal void -os_init(void) -{ - // NOTE(allen): Initialize linux layer mutex - { - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - int pthread_result = pthread_mutex_init(&lnx_mutex, &attr); - pthread_mutexattr_destroy(&attr); - if (pthread_result == -1){ - abort(); - } - } - MemoryZeroArray(lnx_entity_buffer); - { - LNX_Entity *ptr = lnx_entity_free = lnx_entity_buffer; - for (U64 i = 1; i < ArrayCount(lnx_entity_buffer); i += 1, ptr += 1){ - ptr->next = ptr + 1; - } - ptr->next = 0; - } - - // NOTE(allen): Permanent memory allocator for this layer - Arena *perm_arena = arena_alloc(); - lnx_perm_arena = perm_arena; - - // NOTE(allen): Initialize Paths - lnx_initial_path = os_get_path(lnx_perm_arena, OS_SystemPath_Current); - - // NOTE(rjf): Setup command line args - lnx_cmd_line_args = os_string_list_from_argcv(lnx_perm_arena, argc, argv); -} - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -internal void* -os_reserve(U64 size){ - void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - return(result); -} - -internal B32 -os_commit(void *ptr, U64 size){ - mprotect(ptr, size, PROT_READ|PROT_WRITE); - // TODO(allen): can we test this? - return(true); -} - -internal void* -os_reserve_large(U64 size){ - NotImplemented; - return 0; -} - -internal B32 -os_commit_large(void *ptr, U64 size){ - NotImplemented; - return 0; -} - -internal void -os_decommit(void *ptr, U64 size){ - madvise(ptr, size, MADV_DONTNEED); - mprotect(ptr, size, PROT_NONE); -} - -internal void -os_release(void *ptr, U64 size){ - munmap(ptr, size); -} - -internal void -os_set_large_pages_enabled(B32 flag) -{ - NotImplemented; -} - -internal B32 -os_large_pages_enabled(void) -{ - NotImplemented; - return 0; -} - -internal U64 -os_large_page_size(void) -{ - NotImplemented; - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks System Info (Implemented Per-OS) - -internal String8 -os_machine_name(void){ - local_persist B32 first = true; - local_persist String8 name = {0}; - - // TODO(allen): let's just pre-compute this at init and skip the complexity - pthread_mutex_lock(&lnx_mutex); - if (first){ - Temp scratch = scratch_begin(0, 0); - first = false; - - // get name - B32 got_final_result = false; - U8 *buffer = 0; - int size = 0; - for (S64 cap = 4096, r = 0; - r < 4; - cap *= 2, r += 1){ - scratch.restore(); - buffer = push_array_no_zero(scratch.arena, U8, cap); - size = gethostname((char*)buffer, cap); - if (size < cap){ - got_final_result = true; - break; - } - } - - // save string - if (got_final_result && size > 0){ - name.size = size; - name.str = push_array_no_zero(lnx_perm_arena, U8, name.size + 1); - MemoryCopy(name.str, buffer, name.size); - name.str[name.size] = 0; - } - - scratch_end(scratch); - } - pthread_mutex_unlock(&lnx_mutex); - - return(name); -} - -internal U64 -os_page_size(void){ - int size = getpagesize(); - return((U64)size); -} - -internal U64 -os_allocation_granularity(void) -{ - // On linux there is no equivalent of "dwAllocationGranularity" - os_page_size(); -} - -internal U64 -os_logical_core_count(void) -{ - // TODO(rjf): check this - return get_nprocs(); -} - -//////////////////////////////// -//~ rjf: @os_hooks Process & Thread Info (Implemented Per-OS) - -internal String8List -os_get_command_line_arguments(void) -{ - return lnx_cmd_line_args; -} - -internal S32 -os_pid(void){ - S32 result = getpid(); - return(result); -} - -internal S32 -os_tid(void){ - S32 result = 0; -#ifdef SYS_gettid - result = syscall(SYS_gettid); -#else - result = gettid(); -#endif - return(result); -} - -internal String8List -os_environment(void) -{ - NotImplemented; - String8List result = {0}; - return result; -} - -internal U64 -os_string_list_from_system_path(Arena *arena, OS_SystemPath path, String8List *out){ - U64 result = 0; - - switch (path){ - case OS_SystemPath_Binary: - { - local_persist B32 first = true; - local_persist String8 name = {0}; - - // TODO(allen): let's just pre-compute this at init and skip the complexity - pthread_mutex_lock(&lnx_mutex); - if (first){ - Temp scratch = scratch_begin(&arena, 1); - first = false; - - // get self string - B32 got_final_result = false; - U8 *buffer = 0; - int size = 0; - for (S64 cap = PATH_MAX, r = 0; - r < 4; - cap *= 2, r += 1){ - scratch.restore(); - buffer = push_array_no_zero(scratch.arena, U8, cap); - size = readlink("/proc/self/exe", (char*)buffer, cap); - if (size < cap){ - got_final_result = true; - break; - } - } - - // save string - if (got_final_result && size > 0){ - String8 full_name = str8(buffer, size); - String8 name_chopped = string_path_chop_last_slash(full_name); - name = push_str8_copy(lnx_perm_arena, name_chopped); - } - - scratch_end(scratch); - } - pthread_mutex_unlock(&lnx_mutex); - - result = 1; - str8_list_push(arena, out, name); - }break; - - case OS_SystemPath_Initial: - { - Assert(lnx_initial_path.str != 0); - result = 1; - str8_list_push(arena, out, lnx_initial_path); - }break; - - case OS_SystemPath_Current: - { - char *cwdir = getcwd(0, 0); - String8 string = push_str8_copy(arena, str8_cstring(cwdir)); - free(cwdir); - result = 1; - str8_list_push(arena, out, string); - }break; - - case OS_SystemPath_UserProgramData: - { - char *home = getenv("HOME"); - String8 string = str8_cstring(home); - result = 1; - str8_list_push(arena, out, string); - }break; - - case OS_SystemPath_ModuleLoad: - { - // TODO(allen): this one is big and complicated and only needed for making - // a debugger, skipping for now. - NotImplemented; - }break; - } - - return(result); -} - -//////////////////////////////// -//~ rjf: @os_hooks Process Control (Implemented Per-OS) - -internal void -os_abort(S32 exit_code){ - exit(exit_code); -} - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files - -internal OS_Handle -os_file_open(OS_AccessFlags flags, String8 path) -{ - OS_Handle file = {0}; - NotImplemented; - return file; -} - -internal void -os_file_close(OS_Handle file) -{ - NotImplemented; -} - -internal U64 -os_file_read(OS_Handle file, Rng1U64 rng, void *out_data) -{ - NotImplemented; - return 0; -} - -internal U64 -os_file_write(OS_Handle file, Rng1U64 rng, void *data) -{ - NotImplemented; -} - -internal B32 -os_file_set_times(OS_Handle file, DateTime time) -{ - NotImplemented; -} - -internal FileProperties -os_properties_from_file(OS_Handle file) -{ - FileProperties props = {0}; - NotImplemented; - return props; -} - -internal OS_FileID -os_id_from_file(OS_Handle file) -{ - // TODO(nick): querry struct stat with fstat(2) and use st_dev and st_ino as ids - OS_FileID id = {0}; - NotImplemented; - return id; -} - -internal B32 -os_delete_file_at_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = false; - String8 name_copy = push_str8_copy(scratch.arena, name); - if (remove((char*)name_copy.str) != -1){ - result = true; - } - scratch_end(scratch); - return(result); -} - -internal B32 -os_copy_file_path(String8 dst, String8 src) -{ - NotImplemented; - return 0; -} - -internal String8 -os_full_path_from_path(Arena *arena, String8 path) -{ - // TODO: realpath can be used to resolve full path - String8 result = {0}; - NotImplemented; - return result; -} - -internal B32 -os_file_path_exists(String8 path) -{ - NotImplemented; - return 0; -} - -internal FileProperties -os_properties_from_file_path(String8 path) -{ - FileProperties props = {0}; - NotImplemented; - return props; -} - -//- rjf: file maps - -internal OS_Handle -os_file_map_open(OS_AccessFlags flags, OS_Handle file) -{ - NotImplemented; - OS_Handle handle = {0}; - return handle; -} - -internal void -os_file_map_close(OS_Handle map) -{ - NotImplemented; -} - -internal void * -os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range) -{ - NotImplemented; - return 0; -} - -internal void -os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range) -{ - NotImplemented; -} - -//- rjf: directory iteration - -internal OS_FileIter * -os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags) -{ - NotImplemented; - return 0; -} - -internal B32 -os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out) -{ - NotImplemented; - return 0; -} - -internal void -os_file_iter_end(OS_FileIter *iter) -{ - NotImplemented; -} - -//- rjf: directory creation - -internal B32 -os_make_directory(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - B32 result = false; - String8 name_copy = push_str8_copy(scratch.arena, name); - if (mkdir((char*)name_copy.str, 0777) != -1){ - result = true; - } - scratch_end(scratch); - return(result); -} - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle -os_shared_memory_alloc(U64 size, String8 name) -{ - OS_Handle result = {0}; - NotImplemented; - return result; -} - -internal OS_Handle -os_shared_memory_open(String8 name) -{ - OS_Handle result = {0}; - NotImplemented; - return result; -} - -internal void -os_shared_memory_close(OS_Handle handle) -{ - NotImplemented; -} - -internal void * -os_shared_memory_view_open(OS_Handle handle, Rng1U64 range) -{ - NotImplemented; - return 0; -} - -internal void -os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range) -{ - NotImplemented; -} - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U32 -os_now_unix(void) -{ - time_t t = time(0); - return (U32)t; -} - -internal DateTime -os_now_universal_time(void){ - time_t t = 0; - time(&t); - struct tm universal_tm = {0}; - gmtime_r(&t, &universal_tm); - DateTime result = {0}; - lnx_date_time_from_tm(&result, &universal_tm, 0); - return(result); -} - -internal DateTime -os_universal_time_from_local(DateTime *local_time){ - // local time -> universal time (using whatever types it takes) - struct tm local_tm = {0}; - lnx_tm_from_date_time(&local_tm, local_time); - local_tm.tm_isdst = -1; - time_t universal_t = mktime(&local_tm); - - // whatever type we ended up with -> DateTime (don't alter the space along the way) - struct tm universal_tm = {0}; - gmtime_r(&universal_t, &universal_tm); - DateTime result = {0}; - lnx_date_time_from_tm(&result, &universal_tm, 0); - return(result); -} - -internal DateTime -os_local_time_from_universal(DateTime *universal_time){ - // universal time -> local time (using whatever types it takes) - struct tm universal_tm = {0}; - lnx_tm_from_date_time(&universal_tm, universal_time); - universal_tm.tm_isdst = -1; - time_t universal_t = timegm(&universal_tm); - struct tm local_tm = {0}; - localtime_r(&universal_t, &local_tm); - - // whatever type we ended up with -> DateTime (don't alter the space along the way) - DateTime result = {0}; - lnx_date_time_from_tm(&result, &local_tm, 0); - return(result); -} - -internal U64 -os_now_microseconds(void){ - struct timespec t; - clock_gettime(CLOCK_MONOTONIC, &t); - U64 result = t.tv_sec*Million(1) + (t.tv_nsec/Thousand(1)); - return(result); -} - -internal void -os_sleep_milliseconds(U32 msec){ - usleep(msec*Thousand(1)); -} - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal B32 -os_launch_process(OS_LaunchOptions *options){ - // TODO(allen): I want to redo this API before I bother implementing it here - NotImplemented; - return(false); -} - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal OS_Handle -os_thread_launch(ThreadEntryPointFunctionType *func, void *ptr, void *params){ - // entity - LNX_Entity *entity = lnx_alloc_entity(LNX_EntityKind_Thread); - entity->reference_mask = 0x3; - entity->thread.func = func; - entity->thread.ptr = ptr; - - // pthread - pthread_attr_t attr; - pthread_attr_init(&attr); - int pthread_result = pthread_create(&entity->thread.handle, &attr, lnx_thread_base, entity); - pthread_attr_destroy(&attr); - if (pthread_result == -1){ - lnx_free_entity(entity); - entity = 0; - } - - // cast to opaque handle - OS_Handle result = {IntFromPtr(entity)}; - return(result); -} - -internal void -os_release_thread_handle(OS_Handle thread){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(thread.id); - // remove my bit - U32 result = __sync_fetch_and_and(&entity->reference_mask, ~0x1); - // if the other bit is also gone, free entity - if ((result & 0x2) == 0){ - lnx_free_entity(entity); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -// NOTE(allen): Mutexes are recursive - support counted acquire/release nesting -// on a single thread - -//- rjf: recursive mutexes - -internal OS_Handle -os_mutex_alloc(void){ - // entity - LNX_Entity *entity = lnx_alloc_entity(LNX_EntityKind_Mutex); - - // pthread - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - int pthread_result = pthread_mutex_init(&entity->mutex, &attr); - pthread_mutexattr_destroy(&attr); - if (pthread_result == -1){ - lnx_free_entity(entity); - entity = 0; - } - - // cast to opaque handle - OS_Handle result = {IntFromPtr(entity)}; - return(result); -} - -internal void -os_mutex_release(OS_Handle mutex){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(mutex.id); - pthread_mutex_destroy(&entity->mutex); - lnx_free_entity(entity); -} - -internal void -os_mutex_take_(OS_Handle mutex){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(mutex.id); - pthread_mutex_lock(&entity->mutex); -} - -internal void -os_mutex_drop_(OS_Handle mutex){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(mutex.id); - pthread_mutex_unlock(&entity->mutex); -} - -//- rjf: reader/writer mutexes - -internal OS_Handle -os_rw_mutex_alloc(void) -{ - OS_Handle result = {0}; - NotImplemented; - return result; -} - -internal void -os_rw_mutex_release(OS_Handle rw_mutex) -{ - NotImplemented; -} - -internal void -os_rw_mutex_take_r_(OS_Handle mutex) -{ - NotImplemented; -} - -internal void -os_rw_mutex_drop_r_(OS_Handle mutex) -{ - NotImplemented; -} - -internal void -os_rw_mutex_take_w_(OS_Handle mutex) -{ - NotImplemented; -} - -internal void -os_rw_mutex_drop_w_(OS_Handle mutex) -{ - NotImplemented; -} - -//- rjf: condition variables - -internal OS_Handle -os_cond_var_alloc(void){ - // entity - LNX_Entity *entity = lnx_alloc_entity(LNX_EntityKind_ConditionVariable); - - // pthread - pthread_condattr_t attr; - pthread_condattr_init(&attr); - int pthread_result = pthread_cond_init(&entity->cond, &attr); - pthread_condattr_destroy(&attr); - if (pthread_result == -1){ - lnx_free_entity(entity); - entity = 0; - } - - // cast to opaque handle - OS_Handle result = {IntFromPtr(entity)}; - return(result); -} - -internal void -os_cond_var_release(OS_Handle cv){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(cv.id); - pthread_cond_destroy(&entity->cond); - lnx_free_entity(entity); -} - -internal B32 -os_condition_variable_wait_(OS_Handle cv, OS_Handle mutex, U64 endt_us){ - B32 result = false; - LNX_Entity *entity_cond = (LNX_Entity*)PtrFromInt(cv.id); - LNX_Entity *entity_mutex = (LNX_Entity*)PtrFromInt(mutex.id); - // TODO(allen): implement the time control - pthread_cond_timedwait(&entity_cond->cond, &entity_mutex->mutex); - return(result); -} - -internal B32 -os_condition_variable_wait_rw_r_(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - NotImplemented; - return 0; -} - -internal B32 -os_condition_variable_wait_rw_w_(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us) -{ - NotImplemented; - return 0; -} - -internal void -os_condition_variable_signal_(OS_Handle cv){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(cv.id); - pthread_cond_signal(&entity->cond); -} - -internal void -os_condition_variable_broadcast_(OS_Handle cv){ - LNX_Entity *entity = (LNX_Entity*)PtrFromInt(cv.id); - DontCompile; -} - -//- rjf: cross-process semaphores - -internal OS_Handle -os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name) -{ - OS_Handle result = {0}; - NotImplemented; - return result; -} - -internal void -os_semaphore_release(OS_Handle semaphore) -{ - NotImplemented; -} - -internal OS_Handle -os_semaphore_open(String8 name) -{ - OS_Handle result = {0}; - NotImplemented; - return result; -} - -internal void -os_semaphore_close(OS_Handle semaphore) -{ - NotImplemented; -} - -internal B32 -os_semaphore_take(OS_Handle semaphore, U64 endt_us) -{ - NotImplemented; - return 0; -} - -internal void -os_semaphore_drop(OS_Handle semaphore) -{ - NotImplemented; -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle -os_library_open(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - char *path_cstr = (char *)push_str8_copy(scratch.arena, path).str; - void *so = dlopen(path_cstr, RTLD_LAZY); - OS_Handle lib = { (U64)so }; - scratch_end(scratch); - return lib; -} - -internal VoidProc * -os_library_load_proc(OS_Handle lib, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - void *so = (void *)lib.id; - char *name_cstr = (char *)push_str8_copy(scratch.arena, name).str; - VoidProc *proc = (VoidProc *)dlsym(so, name_cstr); - scratch_end(scratch); - return proc; -} - -internal void -os_library_close(OS_Handle lib) -{ - void *so = (void *)lib.id; - dlclose(so); -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal void -os_safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr){ - LNX_SafeCallChain chain = {0}; - SLLStackPush(lnx_safe_call_chain, &chain); - chain.fail_handler = fail_handler; - chain.ptr = ptr; - - struct sigaction new_act = {0}; - new_act.sa_handler = lnx_safe_call_sig_handler; - - int signals_to_handle[] = { - SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, - }; - struct sigaction og_act[ArrayCount(signals_to_handle)] = {0}; - - for (U32 i = 0; i < ArrayCount(signals_to_handle); i += 1){ - sigaction(signals_to_handle[i], &new_act, &og_act[i]); - } - - func(ptr); - - for (U32 i = 0; i < ArrayCount(signals_to_handle); i += 1){ - sigaction(signals_to_handle[i], &og_act[i], 0); - } -} - -//////////////////////////////// - -internal OS_Guid -os_make_guid(void) -{ - NotImplemented; -} - diff --git a/src/os/core/linux/os_core_linux_old.h b/src/os/core/linux/os_core_linux_old.h deleted file mode 100644 index cf133b2a..00000000 --- a/src/os/core/linux/os_core_linux_old.h +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef LINUX_H -#define LINUX_H - -//////////////////////////////// -//~ NOTE(allen): Get all these linux includes - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//////////////////////////////// -//~ NOTE(allen): File Iterator - -struct LNX_FileIter{ - int fd; - DIR *dir; -}; -StaticAssert(sizeof(Member(OS_FileIter, memory)) >= sizeof(LNX_FileIter), file_iter_memory_size); - -//////////////////////////////// -//~ NOTE(allen): Threading Entities - -enum LNX_EntityKind{ - LNX_EntityKind_Null, - LNX_EntityKind_Thread, - LNX_EntityKind_Mutex, - LNX_EntityKind_ConditionVariable, -}; - -struct LNX_Entity{ - LNX_Entity *next; - LNX_EntityKind kind; - volatile U32 reference_mask; - union{ - struct{ - ThreadEntryPointFunctionType *func; - void *ptr; - pthread_t handle; - } thread; - pthread_mutex_t mutex; - pthread_cond_t cond; - }; -}; - -//////////////////////////////// -//~ NOTE(allen): Safe Call Chain - -struct LNX_SafeCallChain{ - LNX_SafeCallChain *next; - ThreadEntryPointFunctionType *fail_handler; - void *ptr; -}; - -//////////////////////////////// -//~ NOTE(allen): Helpers - -internal B32 lnx_write_list_to_file_descriptor(int fd, String8List list); - -internal void lnx_date_time_from_tm(DateTime *out, struct tm *in, U32 msec); -internal void lnx_tm_from_date_time(struct tm *out, DateTime *in); -internal void lnx_dense_time_from_timespec(DenseTime *out, struct timespec *in); -internal void lnx_file_properties_from_stat(FileProperties *out, struct stat *in); - -internal String8 lnx_string_from_signal(int signum); -internal String8 lnx_string_from_errno(int error_number); - -internal LNX_Entity* lnx_alloc_entity(LNX_EntityKind kind); -internal void lnx_free_entity(LNX_Entity *entity); -internal void* lnx_thread_base(void *ptr); - -internal void lnx_safe_call_sig_handler(int); - -#endif //LINUX_H diff --git a/src/os/core/os_core.c b/src/os/core/os_core.c deleted file mode 100644 index 670f8486..00000000 --- a/src/os/core/os_core.c +++ /dev/null @@ -1,279 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Handle Type Functions (Helpers, Implemented Once) - -internal OS_Handle -os_handle_zero(void) -{ - OS_Handle handle = {0}; - return handle; -} - -internal B32 -os_handle_match(OS_Handle a, OS_Handle b) -{ - return a.u64[0] == b.u64[0]; -} - -internal void -os_handle_list_push(Arena *arena, OS_HandleList *handles, OS_Handle handle) -{ - OS_HandleNode *n = push_array(arena, OS_HandleNode, 1); - n->v = handle; - SLLQueuePush(handles->first, handles->last, n); - handles->count += 1; -} - -internal OS_HandleArray -os_handle_array_from_list(Arena *arena, OS_HandleList *list) -{ - OS_HandleArray result = {0}; - result.count = list->count; - result.v = push_array_no_zero(arena, OS_Handle, result.count); - U64 idx = 0; - for(OS_HandleNode *n = list->first; n != 0; n = n->next, idx += 1) - { - result.v[idx] = n->v; - } - return result; -} - -//////////////////////////////// -//~ rjf: Filesystem Helpers (Helpers, Implemented Once) - -internal String8 -os_data_from_file_path(Arena *arena, String8 path) -{ - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, path); - FileProperties props = os_properties_from_file(file); - String8 data = os_string_from_file_range(arena, file, r1u64(0, props.size)); - os_file_close(file); - return data; -} - -internal B32 -os_write_data_to_file_path(String8 path, String8 data) -{ - B32 good = 0; - OS_Handle file = os_file_open(OS_AccessFlag_Write, path); - if(!os_handle_match(file, os_handle_zero())) - { - U64 bytes_written = os_file_write(file, r1u64(0, data.size), data.str); - good = (bytes_written == data.size); - os_file_close(file); - } - return good; -} - -internal B32 -os_write_data_list_to_file_path(String8 path, String8List list) -{ - B32 good = 0; - OS_Handle file = os_file_open(OS_AccessFlag_Write, path); - if(!os_handle_match(file, os_handle_zero())) - { - Temp scratch = scratch_begin(0, 0); - U64 write_buffer_size = KB(64); - U8 *write_buffer = push_array_no_zero(scratch.arena, U8, write_buffer_size); - U64 write_buffer_write_pos = 0; - U64 write_buffer_read_pos = 0; - U64 file_off = 0; - { - for(String8Node *n = list.first; n != 0; n = n->next) - { - for(U64 n_off = 0; n_off < n->string.size;) - { - U64 write_buffer_unconsumed_size = (write_buffer_write_pos - write_buffer_read_pos); - U64 write_buffer_available_size = (write_buffer_size - write_buffer_unconsumed_size); - if(write_buffer_available_size == 0) - { - U64 file_write_size = os_file_write(file, r1u64(file_off, file_off+write_buffer_size), write_buffer); - if(file_write_size != write_buffer_size) - { - goto dbl_break; - } - file_off += write_buffer_size; - write_buffer_read_pos += write_buffer_size; - } - else - { - U64 bytes_to_copy = Min(write_buffer_available_size, n->string.size - n_off); - write_buffer_write_pos += ring_write(write_buffer, write_buffer_size, write_buffer_write_pos, n->string.str + n_off, bytes_to_copy); - n_off += bytes_to_copy; - } - } - } - if(write_buffer_write_pos > write_buffer_read_pos) - { - U64 file_write_size = os_file_write(file, r1u64(file_off, file_off + (write_buffer_write_pos-write_buffer_read_pos)), write_buffer); - file_off += file_write_size; - } - } - dbl_break:; - good = (file_off == list.total_size); - os_file_close(file); - scratch_end(scratch); - } - return good; -} - -internal B32 -os_append_data_to_file_path(String8 path, String8 data) -{ - B32 good = 0; - if(data.size != 0) - { - OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append, path); - if(!os_handle_match(file, os_handle_zero())) - { - U64 pos = os_properties_from_file(file).size; - U64 bytes_written = os_file_write(file, r1u64(pos, pos+data.size), data.str); - good = (bytes_written == data.size); - os_file_close(file); - } - } - return good; -} - -internal OS_FileID -os_id_from_file_path(String8 path) -{ - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, path); - OS_FileID id = os_id_from_file(file); - os_file_close(file); - return id; -} - -internal S64 -os_file_id_compare(OS_FileID a, OS_FileID b) -{ - S64 cmp = MemoryCompare((void*)&a.v[0], (void*)&b.v[0], sizeof(a.v)); - return cmp; -} - -internal String8 -os_string_from_file_range(Arena *arena, OS_Handle file, Rng1U64 range) -{ - U64 pre_pos = arena_pos(arena); - String8 result; - result.size = dim_1u64(range); - result.str = push_array_no_zero(arena, U8, result.size); - U64 actual_read_size = os_file_read(file, range, result.str); - if(actual_read_size < result.size) - { - arena_pop_to(arena, pre_pos + actual_read_size); - result.size = actual_read_size; - } - return result; -} - -internal String8 -os_file_read_cstring(Arena *arena, OS_Handle file, U64 off) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List block_list = {0}; - for(U64 cursor = off, stride = 256;; cursor += stride) - { - U8 *raw_block = push_array_no_zero(scratch.arena, U8, stride); - U64 read_size = os_file_read(file, r1u64(cursor, cursor + stride), raw_block); - String8 block = str8_cstring_capped(raw_block, raw_block+read_size); - str8_list_push(scratch.arena, &block_list, block); - if(read_size != stride || (block.size+1 <= read_size && block.str[block.size] == 0)) - { - break; - } - } - String8 result = str8_list_join(arena, &block_list, 0); - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Process Launcher Helpers - -internal OS_Handle -os_cmd_line_launch(String8 string) -{ - Temp scratch = scratch_begin(0, 0); - U8 split_chars[] = {' '}; - String8List parts = str8_split(scratch.arena, string, split_chars, ArrayCount(split_chars), 0); - OS_Handle handle = {0}; - if(parts.node_count != 0) - { - // rjf: unpack exe part - String8 exe = parts.first->string; - String8 exe_folder = str8_chop_last_slash(exe); - if(exe_folder.size == 0) - { - exe_folder = os_get_current_path(scratch.arena); - } - - // rjf: find stdout delimiter - String8Node *stdout_delimiter_n = 0; - for(String8Node *n = parts.first; n != 0; n = n->next) - { - if(str8_match(n->string, str8_lit(">"), 0)) - { - stdout_delimiter_n = n; - break; - } - } - - // rjf: read stdout path - String8 stdout_path = {0}; - if(stdout_delimiter_n && stdout_delimiter_n->next) - { - stdout_path = stdout_delimiter_n->next->string; - } - - // rjf: open stdout handle - OS_Handle stdout_handle = {0}; - if(stdout_path.size != 0) - { - OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Read, stdout_path); - os_file_close(file); - stdout_handle = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, stdout_path); - } - - // rjf: form command line - String8List cmdline = {0}; - for(String8Node *n = parts.first; n != stdout_delimiter_n && n != 0; n = n->next) - { - str8_list_push(scratch.arena, &cmdline, n->string); - } - - // rjf: launch - OS_ProcessLaunchParams params = {0}; - params.cmd_line = cmdline; - params.path = exe_folder; - params.inherit_env = 1; - params.stdout_file = stdout_handle; - handle = os_process_launch(¶ms); - - // rjf: close stdout handle - { - if(stdout_path.size != 0) - { - os_file_close(stdout_handle); - } - } - } - scratch_end(scratch); - return handle; -} - -internal OS_Handle -os_cmd_line_launchf(char *fmt, ...) -{ - Temp scratch = scratch_begin(0, 0); - va_list args; - va_start(args, fmt); - String8 string = push_str8fv(scratch.arena, fmt, args); - OS_Handle result = os_cmd_line_launch(string); - va_end(args); - scratch_end(scratch); - return result; -} - diff --git a/src/os/core/os_core.h b/src/os/core/os_core.h deleted file mode 100644 index 2731228f..00000000 --- a/src/os/core/os_core.h +++ /dev/null @@ -1,324 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_H -#define OS_CORE_H - -//////////////////////////////// -//~ rjf: System Info - -typedef struct OS_SystemInfo OS_SystemInfo; -struct OS_SystemInfo -{ - U32 logical_processor_count; - U64 page_size; - U64 large_page_size; - U64 allocation_granularity; - String8 machine_name; -}; - -//////////////////////////////// -//~ rjf: Process Info - -typedef struct OS_ProcessInfo OS_ProcessInfo; -struct OS_ProcessInfo -{ - U32 pid; - B32 large_pages_allowed; - String8 binary_path; - String8 initial_path; - String8 user_program_data_path; - String8List module_load_paths; - String8List environment; -}; - -//////////////////////////////// -//~ rjf: Access Flags - -typedef U32 OS_AccessFlags; -enum -{ - OS_AccessFlag_Read = (1<<0), - OS_AccessFlag_Write = (1<<1), - OS_AccessFlag_Execute = (1<<2), - OS_AccessFlag_Append = (1<<3), - OS_AccessFlag_ShareRead = (1<<4), - OS_AccessFlag_ShareWrite = (1<<5), - OS_AccessFlag_Inherited = (1<<6), -}; - -//////////////////////////////// -//~ rjf: Files - -typedef U32 OS_FileIterFlags; -enum -{ - OS_FileIterFlag_SkipFolders = (1 << 0), - OS_FileIterFlag_SkipFiles = (1 << 1), - OS_FileIterFlag_SkipHiddenFiles = (1 << 2), - OS_FileIterFlag_Done = (1 << 31), -}; - -typedef struct OS_FileIter OS_FileIter; -struct OS_FileIter -{ - OS_FileIterFlags flags; - U8 memory[800]; -}; - -typedef struct OS_FileInfo OS_FileInfo; -struct OS_FileInfo -{ - String8 name; - FileProperties props; -}; - -// nick: on-disk file identifier -typedef struct OS_FileID OS_FileID; -struct OS_FileID -{ - U64 v[3]; -}; - -//////////////////////////////// -//~ rjf: Handle Type - -typedef struct OS_Handle OS_Handle; -struct OS_Handle -{ - U64 u64[1]; -}; - -typedef struct OS_HandleNode OS_HandleNode; -struct OS_HandleNode -{ - OS_HandleNode *next; - OS_Handle v; -}; - -typedef struct OS_HandleList OS_HandleList; -struct OS_HandleList -{ - OS_HandleNode *first; - OS_HandleNode *last; - U64 count; -}; - -typedef struct OS_HandleArray OS_HandleArray; -struct OS_HandleArray -{ - OS_Handle *v; - U64 count; -}; - -//////////////////////////////// -//~ rjf: Process Launch Parameters - -typedef struct OS_ProcessLaunchParams OS_ProcessLaunchParams; -struct OS_ProcessLaunchParams -{ - String8List cmd_line; - String8 path; - String8List env; - B32 inherit_env; - B32 debug_subprocesses; - B32 consoleless; - OS_Handle stdout_file; - OS_Handle stderr_file; - OS_Handle stdin_file; -}; - -//////////////////////////////// -//~ rjf: Handle Type Functions (Helpers, Implemented Once) - -internal OS_Handle os_handle_zero(void); -internal B32 os_handle_match(OS_Handle a, OS_Handle b); -internal void os_handle_list_push(Arena *arena, OS_HandleList *handles, OS_Handle handle); -internal OS_HandleArray os_handle_array_from_list(Arena *arena, OS_HandleList *list); - -//////////////////////////////// -//~ rjf: Filesystem Helpers (Helpers, Implemented Once) - -internal String8 os_data_from_file_path(Arena *arena, String8 path); -internal B32 os_write_data_to_file_path(String8 path, String8 data); -internal B32 os_write_data_list_to_file_path(String8 path, String8List list); -internal B32 os_append_data_to_file_path(String8 path, String8 data); -internal OS_FileID os_id_from_file_path(String8 path); -internal S64 os_file_id_compare(OS_FileID a, OS_FileID b); -internal String8 os_string_from_file_range(Arena *arena, OS_Handle file, Rng1U64 range); -internal String8 os_file_read_cstring(Arena *arena, OS_Handle file, U64 off); - -//////////////////////////////// -//~ rjf: Process Launcher Helpers - -internal OS_Handle os_cmd_line_launch(String8 string); -internal OS_Handle os_cmd_line_launchf(char *fmt, ...); - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo *os_get_system_info(void); -internal OS_ProcessInfo *os_get_process_info(void); -internal String8 os_get_current_path(Arena *arena); -internal U32 os_get_process_start_time_unix(void); - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic -internal void *os_reserve(U64 size); -internal B32 os_commit(void *ptr, U64 size); -internal void os_decommit(void *ptr, U64 size); -internal void os_release(void *ptr, U64 size); - -//- rjf: large pages -internal void *os_reserve_large(U64 size); -internal B32 os_commit_large(void *ptr, U64 size); - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 os_tid(void); -internal void os_set_thread_name(String8 string); - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void os_abort(S32 exit_code); - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files -internal OS_Handle os_file_open(OS_AccessFlags flags, String8 path); -internal void os_file_close(OS_Handle file); -internal U64 os_file_read(OS_Handle file, Rng1U64 rng, void *out_data); -#define os_file_read_struct(f, off, ptr) os_file_read((f), r1u64((off), (off)+sizeof(*(ptr))), (ptr)) -internal U64 os_file_write(OS_Handle file, Rng1U64 rng, void *data); -internal B32 os_file_set_times(OS_Handle file, DateTime time); -internal FileProperties os_properties_from_file(OS_Handle file); -internal OS_FileID os_id_from_file(OS_Handle file); -internal B32 os_file_reserve_size(OS_Handle file, U64 size); -internal B32 os_delete_file_at_path(String8 path); -internal B32 os_copy_file_path(String8 dst, String8 src); -internal B32 os_move_file_path(String8 dst, String8 src); -internal String8 os_full_path_from_path(Arena *arena, String8 path); -internal B32 os_file_path_exists(String8 path); -internal B32 os_folder_path_exists(String8 path); -internal FileProperties os_properties_from_file_path(String8 path); - -//- rjf: file maps -internal OS_Handle os_file_map_open(OS_AccessFlags flags, OS_Handle file); -internal void os_file_map_close(OS_Handle map); -internal void * os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range); -internal void os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range); - -//- rjf: directory iteration -internal OS_FileIter *os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags); -internal B32 os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out); -internal void os_file_iter_end(OS_FileIter *iter); - -//- rjf: directory creation -internal B32 os_make_directory(String8 path); - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle os_shared_memory_alloc(U64 size, String8 name); -internal OS_Handle os_shared_memory_open(String8 name); -internal void os_shared_memory_close(OS_Handle handle); -internal void * os_shared_memory_view_open(OS_Handle handle, Rng1U64 range); -internal void os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range); - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 os_now_microseconds(void); -internal U32 os_now_unix(void); -internal DateTime os_now_universal_time(void); -internal DateTime os_universal_time_from_local(DateTime *local_time); -internal DateTime os_local_time_from_universal(DateTime *universal_time); -internal void os_sleep_milliseconds(U32 msec); - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle os_process_launch(OS_ProcessLaunchParams *params); -internal B32 os_process_join(OS_Handle handle, U64 endt_us, U64 *exit_code_out); -internal void os_process_detach(OS_Handle handle); -internal B32 os_process_kill(OS_Handle handle); - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal Thread os_thread_launch(ThreadEntryPointFunctionType *f, void *p); -internal B32 os_thread_join(Thread handle, U64 endt_us); -internal void os_thread_detach(Thread handle); - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: recursive mutexes -internal Mutex os_mutex_alloc(void); -internal void os_mutex_release(Mutex mutex); -internal void os_mutex_take(Mutex mutex); -internal void os_mutex_drop(Mutex mutex); - -//- rjf: reader/writer mutexes -internal RWMutex os_rw_mutex_alloc(void); -internal void os_rw_mutex_release(RWMutex mutex); -internal void os_rw_mutex_take(RWMutex mutex, B32 write_mode); -internal void os_rw_mutex_drop(RWMutex mutex, B32 write_mode); - -//- rjf: condition variables -internal CondVar os_cond_var_alloc(void); -internal void os_cond_var_release(CondVar cv); -// returns false on timeout, true on signal, (max_wait_ms = max_U64) -> no timeout -internal B32 os_cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us); -internal B32 os_cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us); -internal void os_cond_var_signal(CondVar cv); -internal void os_cond_var_broadcast(CondVar cv); - -//- rjf: cross-process semaphores -internal Semaphore os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name); -internal void os_semaphore_release(Semaphore semaphore); -internal Semaphore os_semaphore_open(String8 name); -internal void os_semaphore_close(Semaphore semaphore); -internal B32 os_semaphore_take(Semaphore semaphore, U64 endt_us); -internal void os_semaphore_drop(Semaphore semaphore); - -//- rjf: barriers -internal Barrier os_barrier_alloc(U64 count); -internal void os_barrier_release(Barrier barrier); -internal void os_barrier_wait(Barrier barrier); - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle os_library_open(String8 path); -internal void os_library_close(OS_Handle lib); -internal VoidProc *os_library_load_proc(OS_Handle lib, String8 name); - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void os_safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr); - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid os_make_guid(void); - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -// NOTE(rjf): The implementation of `os_core` will define low-level entry -// points if BUILD_ENTRY_DEFINING_UNIT is defined to 1. These will call -// into the standard codebase program entry points, named "entry_point". - -#if BUILD_ENTRY_DEFINING_UNIT -raddbg_entry_point(entry_point); -internal no_inline void entry_point(CmdLine *cmdline); -#endif - -#endif // OS_CORE_H diff --git a/src/os/gfx/generated/os_gfx.meta.h b/src/os/gfx/generated/os_gfx.meta.h deleted file mode 100644 index 72ccea0c..00000000 --- a/src/os/gfx/generated/os_gfx.meta.h +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef OS_GFX_META_H -#define OS_GFX_META_H - -typedef enum OS_Key -{ -OS_Key_Null, -OS_Key_Esc, -OS_Key_F1, -OS_Key_F2, -OS_Key_F3, -OS_Key_F4, -OS_Key_F5, -OS_Key_F6, -OS_Key_F7, -OS_Key_F8, -OS_Key_F9, -OS_Key_F10, -OS_Key_F11, -OS_Key_F12, -OS_Key_F13, -OS_Key_F14, -OS_Key_F15, -OS_Key_F16, -OS_Key_F17, -OS_Key_F18, -OS_Key_F19, -OS_Key_F20, -OS_Key_F21, -OS_Key_F22, -OS_Key_F23, -OS_Key_F24, -OS_Key_Tick, -OS_Key_0, -OS_Key_1, -OS_Key_2, -OS_Key_3, -OS_Key_4, -OS_Key_5, -OS_Key_6, -OS_Key_7, -OS_Key_8, -OS_Key_9, -OS_Key_Minus, -OS_Key_Equal, -OS_Key_Backspace, -OS_Key_Tab, -OS_Key_Q, -OS_Key_W, -OS_Key_E, -OS_Key_R, -OS_Key_T, -OS_Key_Y, -OS_Key_U, -OS_Key_I, -OS_Key_O, -OS_Key_P, -OS_Key_LeftBracket, -OS_Key_RightBracket, -OS_Key_BackSlash, -OS_Key_CapsLock, -OS_Key_A, -OS_Key_S, -OS_Key_D, -OS_Key_F, -OS_Key_G, -OS_Key_H, -OS_Key_J, -OS_Key_K, -OS_Key_L, -OS_Key_Semicolon, -OS_Key_Quote, -OS_Key_Return, -OS_Key_Shift, -OS_Key_Z, -OS_Key_X, -OS_Key_C, -OS_Key_V, -OS_Key_B, -OS_Key_N, -OS_Key_M, -OS_Key_Comma, -OS_Key_Period, -OS_Key_Slash, -OS_Key_Ctrl, -OS_Key_Alt, -OS_Key_Space, -OS_Key_Menu, -OS_Key_ScrollLock, -OS_Key_Pause, -OS_Key_Insert, -OS_Key_Home, -OS_Key_PageUp, -OS_Key_Delete, -OS_Key_End, -OS_Key_PageDown, -OS_Key_Up, -OS_Key_Left, -OS_Key_Down, -OS_Key_Right, -OS_Key_Ex0, -OS_Key_Ex1, -OS_Key_Ex2, -OS_Key_Ex3, -OS_Key_Ex4, -OS_Key_Ex5, -OS_Key_Ex6, -OS_Key_Ex7, -OS_Key_Ex8, -OS_Key_Ex9, -OS_Key_Ex10, -OS_Key_Ex11, -OS_Key_Ex12, -OS_Key_Ex13, -OS_Key_Ex14, -OS_Key_Ex15, -OS_Key_Ex16, -OS_Key_Ex17, -OS_Key_Ex18, -OS_Key_Ex19, -OS_Key_Ex20, -OS_Key_Ex21, -OS_Key_Ex22, -OS_Key_Ex23, -OS_Key_Ex24, -OS_Key_Ex25, -OS_Key_Ex26, -OS_Key_Ex27, -OS_Key_Ex28, -OS_Key_Ex29, -OS_Key_NumLock, -OS_Key_NumSlash, -OS_Key_NumStar, -OS_Key_NumMinus, -OS_Key_NumPlus, -OS_Key_NumPeriod, -OS_Key_Num0, -OS_Key_Num1, -OS_Key_Num2, -OS_Key_Num3, -OS_Key_Num4, -OS_Key_Num5, -OS_Key_Num6, -OS_Key_Num7, -OS_Key_Num8, -OS_Key_Num9, -OS_Key_LeftMouseButton, -OS_Key_MiddleMouseButton, -OS_Key_RightMouseButton, -OS_Key_COUNT, -} OS_Key; - -C_LINKAGE_BEGIN -extern String8 os_g_key_display_string_table[143]; -extern String8 os_g_key_cfg_string_table[143]; - -C_LINKAGE_END - -#endif // OS_GFX_META_H diff --git a/src/os/gfx/linux/os_gfx_linux.c b/src/os/gfx/linux/os_gfx_linux.c deleted file mode 100644 index 9485225b..00000000 --- a/src/os/gfx/linux/os_gfx_linux.c +++ /dev/null @@ -1,719 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Helpers - -internal OS_LNX_Window * -os_lnx_window_from_x11window(Window window) -{ - OS_LNX_Window *result = 0; - for(OS_LNX_Window *w = os_lnx_gfx_state->first_window; w != 0; w = w->next) - { - if(w->window == window) - { - result = w; - break; - } - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Main Initialization API (Implemented Per-OS) - -internal void -os_gfx_init(void) -{ - //- rjf: initialize basics - Arena *arena = arena_alloc(); - os_lnx_gfx_state = push_array(arena, OS_LNX_GfxState, 1); - os_lnx_gfx_state->arena = arena; - os_lnx_gfx_state->display = XOpenDisplay(0); - - //- rjf: calculate atoms - os_lnx_gfx_state->wm_delete_window_atom = XInternAtom(os_lnx_gfx_state->display, "WM_DELETE_WINDOW", 0); - os_lnx_gfx_state->wm_sync_request_atom = XInternAtom(os_lnx_gfx_state->display, "_NET_WM_SYNC_REQUEST", 0); - os_lnx_gfx_state->wm_sync_request_counter_atom = XInternAtom(os_lnx_gfx_state->display, "_NET_WM_SYNC_REQUEST_COUNTER", 0); - - //- rjf: open im - os_lnx_gfx_state->xim = XOpenIM(os_lnx_gfx_state->display, 0, 0, 0); - - //- rjf: fill out gfx info - os_lnx_gfx_state->gfx_info.double_click_time = 0.5f; - os_lnx_gfx_state->gfx_info.caret_blink_time = 0.5f; - os_lnx_gfx_state->gfx_info.default_refresh_rate = 60.f; - - //- rjf: fill out cursors - { - struct - { - OS_Cursor cursor; - unsigned int id; - } - map[] = - { - {OS_Cursor_Pointer, XC_left_ptr}, - {OS_Cursor_IBar, XC_xterm}, - {OS_Cursor_LeftRight, XC_sb_h_double_arrow}, - {OS_Cursor_UpDown, XC_sb_v_double_arrow}, - {OS_Cursor_DownRight, XC_bottom_right_corner}, - {OS_Cursor_UpRight, XC_top_right_corner}, - {OS_Cursor_UpDownLeftRight, XC_fleur}, - {OS_Cursor_HandPoint, XC_hand1}, - {OS_Cursor_Disabled, XC_X_cursor}, - }; - for EachElement(idx, map) - { - os_lnx_gfx_state->cursors[map[idx].cursor] = XCreateFontCursor(os_lnx_gfx_state->display, map[idx].id); - } - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Graphics System Info (Implemented Per-OS) - -internal OS_GfxInfo * -os_get_gfx_info(void) -{ - return &os_lnx_gfx_state->gfx_info; -} - -//////////////////////////////// -//~ rjf: @os_hooks Clipboards (Implemented Per-OS) - -internal void -os_set_clipboard_text(String8 string) -{ - -} - -internal String8 -os_get_clipboard_text(Arena *arena) -{ - String8 result = {0}; - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Windows (Implemented Per-OS) - -internal OS_Handle -os_window_open(Rng2F32 rect, OS_WindowFlags flags, String8 title) -{ - Vec2F32 resolution = dim_2f32(rect); - - //- rjf: allocate window - OS_LNX_Window *w = os_lnx_gfx_state->free_window; - if(w) - { - SLLStackPop(os_lnx_gfx_state->free_window); - } - else - { - w = push_array_no_zero(os_lnx_gfx_state->arena, OS_LNX_Window, 1); - } - MemoryZeroStruct(w); - DLLPushBack(os_lnx_gfx_state->first_window, os_lnx_gfx_state->last_window, w); - - //- rjf: create window & equip with x11 info - w->window = XCreateWindow(os_lnx_gfx_state->display, - XDefaultRootWindow(os_lnx_gfx_state->display), - 0, 0, resolution.x, resolution.y, - 0, - CopyFromParent, - InputOutput, - CopyFromParent, - 0, - 0); - XSelectInput(os_lnx_gfx_state->display, w->window, - ExposureMask| - PointerMotionMask| - ButtonPressMask| - ButtonReleaseMask| - KeyPressMask| - KeyReleaseMask| - FocusChangeMask); - Atom protocols[] = - { - os_lnx_gfx_state->wm_delete_window_atom, - os_lnx_gfx_state->wm_sync_request_atom, - }; - XSetWMProtocols(os_lnx_gfx_state->display, w->window, protocols, ArrayCount(protocols)); - { - XSyncValue initial_value; - XSyncIntToValue(&initial_value, 0); - w->counter_xid = XSyncCreateCounter(os_lnx_gfx_state->display, initial_value); - } - XChangeProperty(os_lnx_gfx_state->display, w->window, os_lnx_gfx_state->wm_sync_request_counter_atom, XA_CARDINAL, 32, PropModeReplace, (U8 *)&w->counter_xid, 1); - - //- rjf: create xic - w->xic = XCreateIC(os_lnx_gfx_state->xim, - XNInputStyle, XIMPreeditNothing|XIMStatusNothing, - XNClientWindow, w->window, - XNFocusWindow, w->window, - NULL); - - //- rjf: attach name - Temp scratch = scratch_begin(0, 0); - String8 title_copy = push_str8_copy(scratch.arena, title); - XStoreName(os_lnx_gfx_state->display, w->window, (char *)title_copy.str); - scratch_end(scratch); - - //- rjf: convert to handle & return - OS_Handle handle = {(U64)w}; - return handle; -} - -internal void -os_window_close(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - XDestroyWindow(os_lnx_gfx_state->display, w->window); -} - -internal void -os_window_set_title(OS_Handle handle, String8 title) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - Temp scratch = scratch_begin(0, 0); - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - String8 title_copy = push_str8_copy(scratch.arena, title); - XStoreName(os_lnx_gfx_state->display, w->window, (char *)title_copy.str); - scratch_end(scratch); -} - -internal void -os_window_first_paint(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - XMapWindow(os_lnx_gfx_state->display, w->window); -} - -internal void -os_window_focus(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - XSetInputFocus(os_lnx_gfx_state->display, w->window, RevertToNone, CurrentTime); -} - -internal B32 -os_window_is_focused(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return 0;} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - Window focused_window = 0; - int revert_to = 0; - XGetInputFocus(os_lnx_gfx_state->display, &focused_window, &revert_to); - B32 result = (w->window == focused_window); - return result; -} - -internal B32 -os_window_is_fullscreen(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return 0;} - // TODO(rjf) - return 0; -} - -internal void -os_window_set_fullscreen(OS_Handle handle, B32 fullscreen) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal B32 -os_window_is_maximized(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return 0;} - // TODO(rjf) - return 0; -} - -internal void -os_window_set_maximized(OS_Handle handle, B32 maximized) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal B32 -os_window_is_minimized(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return 0;} - // TODO(rjf) - return 0; -} - -internal void -os_window_set_minimized(OS_Handle handle, B32 minimized) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_bring_to_front(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_set_monitor(OS_Handle handle, OS_Handle monitor) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_clear_custom_border_data(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_push_custom_title_bar(OS_Handle handle, F32 thickness) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_push_custom_edges(OS_Handle handle, F32 thickness) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal void -os_window_push_custom_title_bar_client_area(OS_Handle handle, Rng2F32 rect) -{ - if(os_handle_match(handle, os_handle_zero())) {return;} - // TODO(rjf) -} - -internal Rng2F32 -os_rect_from_window(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return r2f32p(0, 0, 0, 0);} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - XWindowAttributes atts = {0}; - Status s = XGetWindowAttributes(os_lnx_gfx_state->display, w->window, &atts); - Rng2F32 result = r2f32p((F32)atts.x, (F32)atts.y, (F32)atts.x + (F32)atts.width, (F32)atts.y + (F32)atts.height); - return result; -} - -internal Rng2F32 -os_client_rect_from_window(OS_Handle handle) -{ - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - XWindowAttributes atts = {0}; - Status s = XGetWindowAttributes(os_lnx_gfx_state->display, w->window, &atts); - Rng2F32 result = r2f32p(0, 0, (F32)atts.width, (F32)atts.height); - return result; -} - -internal F32 -os_dpi_from_window(OS_Handle handle) -{ - // TODO(rjf) - return 96.f; -} - -//////////////////////////////// -//~ rjf: @os_hooks External Windows (Implemented Per-OS) - -internal OS_Handle -os_focused_external_window(void) -{ - OS_Handle result = {0}; - // TODO(rjf) - return result; -} - -internal void -os_focus_external_window(OS_Handle handle) -{ - // TODO(rjf) -} - -//////////////////////////////// -//~ rjf: @os_hooks Monitors (Implemented Per-OS) - -internal OS_HandleArray -os_push_monitors_array(Arena *arena) -{ - OS_HandleArray result = {0}; - // TODO(rjf) - return result; -} - -internal OS_Handle -os_primary_monitor(void) -{ - OS_Handle result = {0}; - // TODO(rjf) - return result; -} - -internal OS_Handle -os_monitor_from_window(OS_Handle window) -{ - OS_Handle result = {0}; - // TODO(rjf) - return result; -} - -internal String8 -os_name_from_monitor(Arena *arena, OS_Handle monitor) -{ - // TODO(rjf) - return str8_zero(); -} - -internal Vec2F32 -os_dim_from_monitor(OS_Handle monitor) -{ - // TODO(rjf) - return v2f32(0, 0); -} - -internal F32 -os_dpi_from_monitor(OS_Handle monitor) -{ - // TODO(rjf) - return 96.f; -} - -//////////////////////////////// -//~ rjf: @os_hooks Events (Implemented Per-OS) - -internal void -os_send_wakeup_event(void) -{ - // TODO(rjf) -} - -internal OS_EventList -os_get_events(Arena *arena, B32 wait) -{ - OS_EventList evts = {0}; - for(;XPending(os_lnx_gfx_state->display) > 0 || (wait && evts.count == 0);) - { - XEvent evt = {0}; - XNextEvent(os_lnx_gfx_state->display, &evt); - B32 set_mouse_cursor = 0; - switch(evt.type) - { - default:{}break; - - //- rjf: key presses/releases - case KeyPress: - case KeyRelease: - { - // rjf: determine flags - OS_Modifiers modifiers = 0; - if(evt.xkey.state & ShiftMask) { modifiers |= OS_Modifier_Shift; } - if(evt.xkey.state & ControlMask) { modifiers |= OS_Modifier_Ctrl; } - if(evt.xkey.state & Mod1Mask) { modifiers |= OS_Modifier_Alt; } - - // rjf: map keycode -> keysym & codepoint - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xkey.window); - KeySym keysym = 0; - U8 text[256] = {0}; - U64 text_size = Xutf8LookupString(window->xic, &evt.xkey, (char *)text, sizeof(text), &keysym, 0); - - // rjf: map keysym -> OS_Key - B32 is_right_sided = 0; - OS_Key key = OS_Key_Null; - switch(keysym) - { - default: - { - if(0){} - else if(XK_F1 <= keysym && keysym <= XK_F24) { key = (OS_Key)(OS_Key_F1 + (keysym - XK_F1)); } - else if('0' <= keysym && keysym <= '9') { key = OS_Key_0 + (keysym-'0'); } - }break; - case XK_Escape:{key = OS_Key_Esc;};break; - case XK_BackSpace:{key = OS_Key_Backspace;}break; - case XK_Delete:{key = OS_Key_Delete;}break; - case XK_Return:{key = OS_Key_Return;}break; - case XK_Pause:{key = OS_Key_Pause;}break; - case XK_Tab:{key = OS_Key_Tab;}break; - case XK_Left:{key = OS_Key_Left;}break; - case XK_Right:{key = OS_Key_Right;}break; - case XK_Up:{key = OS_Key_Up;}break; - case XK_Down:{key = OS_Key_Down;}break; - case XK_Home:{key = OS_Key_Home;}break; - case XK_End:{key = OS_Key_End;}break; - case XK_Page_Up:{key = OS_Key_PageUp;}break; - case XK_Page_Down:{key = OS_Key_PageDown;}break; - case XK_Alt_L:{ key = OS_Key_Alt; }break; - case XK_Alt_R:{ key = OS_Key_Alt; is_right_sided = 1;}break; - case XK_Shift_L:{ key = OS_Key_Shift; }break; - case XK_Shift_R:{ key = OS_Key_Shift; is_right_sided = 1;}break; - case XK_Control_L:{ key = OS_Key_Ctrl; }break; - case XK_Control_R:{ key = OS_Key_Ctrl; is_right_sided = 1;}break; - case '-':{key = OS_Key_Minus;}break; - case '=':{key = OS_Key_Equal;}break; - case '[':{key = OS_Key_LeftBracket;}break; - case ']':{key = OS_Key_RightBracket;}break; - case ';':{key = OS_Key_Semicolon;}break; - case '\'':{key = OS_Key_Quote;}break; - case '.':{key = OS_Key_Period;}break; - case ',':{key = OS_Key_Comma;}break; - case '/':{key = OS_Key_Slash;}break; - case '\\':{key = OS_Key_BackSlash;}break; - case '\t':{key = OS_Key_Tab;}break; - case 'a':case 'A':{key = OS_Key_A;}break; - case 'b':case 'B':{key = OS_Key_B;}break; - case 'c':case 'C':{key = OS_Key_C;}break; - case 'd':case 'D':{key = OS_Key_D;}break; - case 'e':case 'E':{key = OS_Key_E;}break; - case 'f':case 'F':{key = OS_Key_F;}break; - case 'g':case 'G':{key = OS_Key_G;}break; - case 'h':case 'H':{key = OS_Key_H;}break; - case 'i':case 'I':{key = OS_Key_I;}break; - case 'j':case 'J':{key = OS_Key_J;}break; - case 'k':case 'K':{key = OS_Key_K;}break; - case 'l':case 'L':{key = OS_Key_L;}break; - case 'm':case 'M':{key = OS_Key_M;}break; - case 'n':case 'N':{key = OS_Key_N;}break; - case 'o':case 'O':{key = OS_Key_O;}break; - case 'p':case 'P':{key = OS_Key_P;}break; - case 'q':case 'Q':{key = OS_Key_Q;}break; - case 'r':case 'R':{key = OS_Key_R;}break; - case 's':case 'S':{key = OS_Key_S;}break; - case 't':case 'T':{key = OS_Key_T;}break; - case 'u':case 'U':{key = OS_Key_U;}break; - case 'v':case 'V':{key = OS_Key_V;}break; - case 'w':case 'W':{key = OS_Key_W;}break; - case 'x':case 'X':{key = OS_Key_X;}break; - case 'y':case 'Y':{key = OS_Key_Y;}break; - case 'z':case 'Z':{key = OS_Key_Z;}break; - case ' ':{key = OS_Key_Space;}break; - } - - // rjf: push text event - if(evt.type == KeyPress && text_size != 0) - { - for(U64 off = 0; off < text_size;) - { - UnicodeDecode decode = utf8_decode(text+off, text_size-off); - if(decode.codepoint != 0 && (decode.codepoint >= 32 || decode.codepoint == '\t')) - { - OS_Event *e = os_event_list_push_new(arena, &evts, OS_EventKind_Text); - e->window.u64[0] = (U64)window; - e->character = decode.codepoint; - } - if(decode.inc == 0) - { - break; - } - off += decode.inc; - } - } - - // rjf: push key event - { - OS_Event *e = os_event_list_push_new(arena, &evts, evt.type == KeyPress ? OS_EventKind_Press : OS_EventKind_Release); - e->window.u64[0] = (U64)window; - e->modifiers = modifiers; - e->key = key; - e->right_sided = is_right_sided; - } - }break; - - //- rjf: mouse button presses/releases - case ButtonPress: - case ButtonRelease: - { - // rjf: determine flags - OS_Modifiers modifiers = 0; - if(evt.xbutton.state & ShiftMask) { modifiers |= OS_Modifier_Shift; } - if(evt.xbutton.state & ControlMask) { modifiers |= OS_Modifier_Ctrl; } - if(evt.xbutton.state & Mod1Mask) { modifiers |= OS_Modifier_Alt; } - - // rjf: map button -> OS_Key - OS_Key key = OS_Key_Null; - switch(evt.xbutton.button) - { - default:{}break; - case Button1:{key = OS_Key_LeftMouseButton;}break; - case Button2:{key = OS_Key_MiddleMouseButton;}break; - case Button3:{key = OS_Key_RightMouseButton;}break; - } - - // rjf: push event - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xbutton.window); - if(key != OS_Key_Null) - { - OS_Event *e = os_event_list_push_new(arena, &evts, evt.type == ButtonPress ? OS_EventKind_Press : OS_EventKind_Release); - e->window.u64[0] = (U64)window; - e->modifiers = modifiers; - e->key = key; - e->pos = v2f32((F32)evt.xbutton.x, (F32)evt.xbutton.y); - } - else if(evt.xbutton.button == Button4 || - evt.xbutton.button == Button5) - { - OS_Event *e = os_event_list_push_new(arena, &evts, OS_EventKind_Scroll); - e->window.u64[0] = (U64)window; - e->modifiers = modifiers; - e->delta = v2f32(0, evt.xbutton.button == Button4 ? -1.f : +1.f); - e->pos = v2f32((F32)evt.xbutton.x, (F32)evt.xbutton.y); - } - }break; - - //- rjf: mouse motion - case MotionNotify: - { - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xclient.window); - OS_Event *e = os_event_list_push_new(arena, &evts, OS_EventKind_MouseMove); - e->window.u64[0] = (U64)window; - e->pos.x = (F32)evt.xmotion.x; - e->pos.y = (F32)evt.xmotion.y; - set_mouse_cursor = 1; - }break; - - //- rjf: window focus/unfocus - case FocusIn: - { - }break; - case FocusOut: - { - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xfocus.window); - OS_Event *e = os_event_list_push_new(arena, &evts, OS_EventKind_WindowLoseFocus); - e->window.u64[0] = (U64)window; - }break; - - //- rjf: client messages - case ClientMessage: - { - if((Atom)evt.xclient.data.l[0] == os_lnx_gfx_state->wm_delete_window_atom) - { - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xclient.window); - OS_Event *e = os_event_list_push_new(arena, &evts, OS_EventKind_WindowClose); - e->window.u64[0] = (U64)window; - } - else if((Atom)evt.xclient.data.l[0] == os_lnx_gfx_state->wm_sync_request_atom) - { - OS_LNX_Window *window = os_lnx_window_from_x11window(evt.xclient.window); - if(window != 0) - { - window->counter_value = 0; - window->counter_value |= evt.xclient.data.l[2]; - window->counter_value |= (evt.xclient.data.l[3] << 32); - XSyncValue value; - XSyncIntToValue(&value, window->counter_value); - XSyncSetCounter(os_lnx_gfx_state->display, window->counter_xid, value); - } - } - }break; - } - if(set_mouse_cursor) - { - Window root_window = 0; - Window child_window = 0; - int root_rel_x = 0; - int root_rel_y = 0; - int child_rel_x = 0; - int child_rel_y = 0; - unsigned int mask = 0; - if(XQueryPointer(os_lnx_gfx_state->display, XDefaultRootWindow(os_lnx_gfx_state->display), &root_window, &child_window, &root_rel_x, &root_rel_y, &child_rel_x, &child_rel_y, &mask)) - { - XDefineCursor(os_lnx_gfx_state->display, root_window, os_lnx_gfx_state->cursors[os_lnx_gfx_state->last_set_cursor]); - XFlush(os_lnx_gfx_state->display); - } - } - } - return evts; -} - -internal OS_Modifiers -os_get_modifiers(void) -{ - // TODO(rjf) - return 0; -} - -internal B32 -os_key_is_down(OS_Key key) -{ - // TODO(rjf) - return 0; -} - -internal Vec2F32 -os_mouse_from_window(OS_Handle handle) -{ - if(os_handle_match(handle, os_handle_zero())) {return v2f32(0, 0);} - OS_LNX_Window *w = (OS_LNX_Window *)handle.u64[0]; - Vec2F32 result = {0}; - { - Window root_window = 0; - Window child_window = 0; - int root_rel_x = 0; - int root_rel_y = 0; - int child_rel_x = 0; - int child_rel_y = 0; - unsigned int mask = 0; - if(XQueryPointer(os_lnx_gfx_state->display, w->window, &root_window, &child_window, &root_rel_x, &root_rel_y, &child_rel_x, &child_rel_y, &mask)) - { - result.x = child_rel_x; - result.y = child_rel_y; - } - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Cursors (Implemented Per-OS) - -internal void -os_set_cursor(OS_Cursor cursor) -{ - os_lnx_gfx_state->last_set_cursor = cursor; -} - -//////////////////////////////// -//~ rjf: @os_hooks Native User-Facing Graphical Messages (Implemented Per-OS) - -internal void -os_graphical_message(B32 error, String8 title, String8 message) -{ - if(error) - { - fprintf(stderr, "[X] "); - } - fprintf(stderr, "%.*s\n", str8_varg(title)); - fprintf(stderr, "%.*s\n\n", str8_varg(message)); -} - -internal String8 -os_graphical_pick_file(Arena *arena, String8 initial_path) -{ - return str8_zero(); -} - -//////////////////////////////// -//~ rjf: @os_hooks Shell Operations - -internal void -os_show_in_filesystem_ui(String8 path) -{ - // TODO(rjf) -} - -internal void -os_open_in_browser(String8 url) -{ - // TODO(rjf) -} diff --git a/src/os/gfx/os_gfx.c b/src/os/gfx/os_gfx.c deleted file mode 100644 index 3b584ec0..00000000 --- a/src/os/gfx/os_gfx.c +++ /dev/null @@ -1,276 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Generated Code - -#include "generated/os_gfx.meta.c" - -//////////////////////////////// -//~ rjf: Event Functions (Helpers, Implemented Once) - -internal String8 -os_string_from_event_kind(OS_EventKind kind) -{ - String8 result = {0}; - switch(kind) - { - case OS_EventKind_Null: - case OS_EventKind_COUNT: - {}break; - case OS_EventKind_Press: {result = str8_lit("Press");}break; - case OS_EventKind_Release: {result = str8_lit("Release");}break; - case OS_EventKind_MouseMove: {result = str8_lit("MouseMove");}break; - case OS_EventKind_Text: {result = str8_lit("Text");}break; - case OS_EventKind_Scroll: {result = str8_lit("Scroll");}break; - case OS_EventKind_WindowLoseFocus: {result = str8_lit("WindowLoseFocus");}break; - case OS_EventKind_WindowClose: {result = str8_lit("WindowClose");}break; - case OS_EventKind_FileDrop: {result = str8_lit("FileDrop");}break; - case OS_EventKind_Wakeup: {result = str8_lit("Wakeup");}break; - } - return result; -} - -internal String8List -os_string_list_from_modifiers(Arena *arena, OS_Modifiers modifiers) -{ - String8List result = {0}; - if(modifiers & OS_Modifier_Ctrl) { str8_list_push(arena, &result, str8_lit("Ctrl")); } - if(modifiers & OS_Modifier_Shift) { str8_list_push(arena, &result, str8_lit("Shift")); } - if(modifiers & OS_Modifier_Alt) { str8_list_push(arena, &result, str8_lit("Alt")); } - return result; -} - -internal String8 -os_string_from_modifiers_key(Arena *arena, OS_Modifiers modifiers, OS_Key key) -{ - String8 result = {0}; - if(key != OS_Key_Null) - { - Temp scratch = scratch_begin(&arena, 1); - String8List mods = os_string_list_from_modifiers(scratch.arena, modifiers); - String8 key_string = os_g_key_display_string_table[key]; - str8_list_push(scratch.arena, &mods, key_string); - StringJoin join = {0}; - join.sep = str8_lit(" + "); - result = str8_list_join(arena, &mods, &join); - scratch_end(scratch); - } - return result; -} - -internal U32 -os_codepoint_from_modifiers_and_key(OS_Modifiers modifiers, OS_Key key) -{ - U32 result = 0; - - // rjf: special-case map - local_persist read_only struct {U32 character; OS_Key key; OS_Modifiers modifiers;} map[] = - { - {'!', OS_Key_1, OS_Modifier_Shift}, - {'@', OS_Key_2, OS_Modifier_Shift}, - {'#', OS_Key_3, OS_Modifier_Shift}, - {'$', OS_Key_4, OS_Modifier_Shift}, - {'%', OS_Key_5, OS_Modifier_Shift}, - {'^', OS_Key_6, OS_Modifier_Shift}, - {'&', OS_Key_7, OS_Modifier_Shift}, - {'*', OS_Key_8, OS_Modifier_Shift}, - {'(', OS_Key_9, OS_Modifier_Shift}, - {')', OS_Key_0, OS_Modifier_Shift}, - {'_', OS_Key_Minus, OS_Modifier_Shift}, - {'_', OS_Key_Minus, OS_Modifier_Shift}, - {'-', OS_Key_Minus, 0}, - {'=', OS_Key_Equal, 0}, - {'+', OS_Key_Equal, OS_Modifier_Shift}, - {'`', OS_Key_Tick, 0}, - {'~', OS_Key_Tick, OS_Modifier_Shift}, - {'[', OS_Key_LeftBracket, 0}, - {']', OS_Key_RightBracket, 0}, - {'{', OS_Key_LeftBracket, OS_Modifier_Shift}, - {'}', OS_Key_RightBracket, OS_Modifier_Shift}, - {'\\', OS_Key_BackSlash, 0}, - {'|', OS_Key_BackSlash, OS_Modifier_Shift}, - {';', OS_Key_Semicolon, 0}, - {':', OS_Key_Semicolon, OS_Modifier_Shift}, - {'\'', OS_Key_Quote, 0}, - {'"', OS_Key_Quote, OS_Modifier_Shift}, - {'.', OS_Key_Period, 0}, - {',', OS_Key_Comma, 0}, - {'<', OS_Key_Period, OS_Modifier_Shift}, - {'>', OS_Key_Comma, OS_Modifier_Shift}, - {'/', OS_Key_Slash, 0}, - {'?', OS_Key_Slash, OS_Modifier_Shift}, - {'a', OS_Key_A, 0}, - {'b', OS_Key_B, 0}, - {'c', OS_Key_C, 0}, - {'d', OS_Key_D, 0}, - {'e', OS_Key_E, 0}, - {'f', OS_Key_F, 0}, - {'g', OS_Key_G, 0}, - {'h', OS_Key_H, 0}, - {'i', OS_Key_I, 0}, - {'j', OS_Key_J, 0}, - {'k', OS_Key_K, 0}, - {'l', OS_Key_L, 0}, - {'m', OS_Key_M, 0}, - {'n', OS_Key_N, 0}, - {'o', OS_Key_O, 0}, - {'p', OS_Key_P, 0}, - {'q', OS_Key_Q, 0}, - {'r', OS_Key_R, 0}, - {'s', OS_Key_S, 0}, - {'t', OS_Key_T, 0}, - {'u', OS_Key_U, 0}, - {'v', OS_Key_V, 0}, - {'w', OS_Key_W, 0}, - {'x', OS_Key_X, 0}, - {'y', OS_Key_Y, 0}, - {'z', OS_Key_Z, 0}, - {'A', OS_Key_A, OS_Modifier_Shift}, - {'B', OS_Key_B, OS_Modifier_Shift}, - {'C', OS_Key_C, OS_Modifier_Shift}, - {'D', OS_Key_D, OS_Modifier_Shift}, - {'E', OS_Key_E, OS_Modifier_Shift}, - {'F', OS_Key_F, OS_Modifier_Shift}, - {'G', OS_Key_G, OS_Modifier_Shift}, - {'H', OS_Key_H, OS_Modifier_Shift}, - {'I', OS_Key_I, OS_Modifier_Shift}, - {'J', OS_Key_J, OS_Modifier_Shift}, - {'K', OS_Key_K, OS_Modifier_Shift}, - {'L', OS_Key_L, OS_Modifier_Shift}, - {'M', OS_Key_M, OS_Modifier_Shift}, - {'N', OS_Key_N, OS_Modifier_Shift}, - {'O', OS_Key_O, OS_Modifier_Shift}, - {'P', OS_Key_P, OS_Modifier_Shift}, - {'Q', OS_Key_Q, OS_Modifier_Shift}, - {'R', OS_Key_R, OS_Modifier_Shift}, - {'S', OS_Key_S, OS_Modifier_Shift}, - {'T', OS_Key_T, OS_Modifier_Shift}, - {'U', OS_Key_U, OS_Modifier_Shift}, - {'V', OS_Key_V, OS_Modifier_Shift}, - {'W', OS_Key_W, OS_Modifier_Shift}, - {'X', OS_Key_X, OS_Modifier_Shift}, - {'Y', OS_Key_Y, OS_Modifier_Shift}, - {'Z', OS_Key_Z, OS_Modifier_Shift}, - {' ', OS_Key_Space, 0}, - }; - - // rjf: check numeric - if(OS_Key_0 <= key && key <= OS_Key_9) - { - result = '0' + (key - OS_Key_0); - } - - // rjf: check special-case map - for(U64 idx = 0; idx < ArrayCount(map); idx += 1) - { - if(map[idx].key == key && map[idx].modifiers == modifiers) - { - result = map[idx].character; - break; - } - } - - return result; -} - -internal void -os_eat_event(OS_EventList *events, OS_Event *event) -{ - DLLRemove(events->first, events->last, event); - events->count -= 1; -} - -internal B32 -os_key_press(OS_EventList *events, OS_Handle window, OS_Modifiers modifiers, OS_Key key) -{ - B32 result = 0; - for(OS_Event *event = events->first; event != 0; event = event->next) - { - if((os_handle_match(event->window, window) || os_handle_match(window, os_handle_zero())) && - event->kind == OS_EventKind_Press && event->key == key && event->modifiers == modifiers) - { - result = 1; - os_eat_event(events, event); - break; - } - } - return result; -} - -internal B32 -os_key_release(OS_EventList *events, OS_Handle window, OS_Modifiers modifiers, OS_Key key) -{ - B32 result = 0; - for(OS_Event *event = events->first; event != 0; event = event->next) - { - if((os_handle_match(event->window, window) || os_handle_match(window, os_handle_zero())) && - event->kind == OS_EventKind_Release && event->key == key && event->modifiers == modifiers) - { - result = 1; - os_eat_event(events, event); - break; - } - } - return result; -} - -internal B32 -os_text(OS_EventList *events, OS_Handle window, U32 character) -{ - B32 result = 0; - for(OS_Event *event = events->first; event != 0; event = event->next) - { - if((os_handle_match(event->window, window) || os_handle_match(window, os_handle_zero())) && - event->kind == OS_EventKind_Text && event->character == character) - { - result = 1; - os_eat_event(events, event); - break; - } - } - return result; -} - -internal OS_EventList -os_event_list_copy(Arena *arena, OS_EventList *src) -{ - OS_EventList dst = {0}; - for(OS_Event *s = src->first; s != 0; s = s->next) - { - OS_Event *d = push_array(arena, OS_Event, 1); - MemoryCopyStruct(d, s); - d->strings = str8_list_copy(arena, &s->strings); - DLLPushBack(dst.first, dst.last, d); - dst.count += 1; - } - return dst; -} - -internal void -os_event_list_concat_in_place(OS_EventList *dst, OS_EventList *to_push) -{ - if(dst->last && to_push->first) - { - dst->last->next = to_push->first; - to_push->first->prev = dst->last; - dst->last = to_push->last; - dst->count += to_push->count; - } - else if(!dst->last && to_push->first) - { - MemoryCopyStruct(dst, to_push); - } - MemoryZeroStruct(to_push); -} - -internal OS_Event * -os_event_list_push_new(Arena *arena, OS_EventList *evts, OS_EventKind kind) -{ - OS_Event *evt = push_array(arena, OS_Event, 1); - DLLPushBack(evts->first, evts->last, evt); - evts->count += 1; - evt->timestamp_us = os_now_microseconds(); - evt->kind = kind; - return evt; -} diff --git a/src/os/gfx/os_gfx.h b/src/os/gfx/os_gfx.h deleted file mode 100644 index 8eabfd57..00000000 --- a/src/os/gfx/os_gfx.h +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_GFX_H -#define OS_GFX_H - -//////////////////////////////// -//~ rjf: Graphics System Info - -typedef struct OS_GfxInfo OS_GfxInfo; -struct OS_GfxInfo -{ - F32 double_click_time; - F32 caret_blink_time; - F32 default_refresh_rate; -}; - -//////////////////////////////// -//~ rjf: Window Types - -typedef U32 OS_WindowFlags; -enum -{ - OS_WindowFlag_CustomBorder = (1<<0), - OS_WindowFlag_UseDefaultPosition = (1<<1), -}; - -//////////////////////////////// -//~ rjf: Cursor Types - -typedef enum OS_Cursor -{ - OS_Cursor_Pointer, - OS_Cursor_IBar, - OS_Cursor_LeftRight, - OS_Cursor_UpDown, - OS_Cursor_DownRight, - OS_Cursor_UpRight, - OS_Cursor_UpDownLeftRight, - OS_Cursor_HandPoint, - OS_Cursor_Disabled, - OS_Cursor_COUNT, -} -OS_Cursor; - -//////////////////////////////// -//~ rjf: Generated Code - -#include "os/gfx/generated/os_gfx.meta.h" - -//////////////////////////////// -//~ rjf: Event Types - -typedef enum OS_EventKind -{ - OS_EventKind_Null, - OS_EventKind_Press, - OS_EventKind_Release, - OS_EventKind_MouseMove, - OS_EventKind_Text, - OS_EventKind_Scroll, - OS_EventKind_WindowLoseFocus, - OS_EventKind_WindowClose, - OS_EventKind_FileDrop, - OS_EventKind_Wakeup, - OS_EventKind_COUNT -} -OS_EventKind; - -typedef U32 OS_Modifiers; -enum -{ - OS_Modifier_Ctrl = (1<<0), - OS_Modifier_Shift = (1<<1), - OS_Modifier_Alt = (1<<2), -}; - -typedef struct OS_Event OS_Event; -struct OS_Event -{ - OS_Event *next; - OS_Event *prev; - U64 timestamp_us; - OS_Handle window; - OS_EventKind kind; - OS_Modifiers modifiers; - OS_Key key; - B32 is_repeat; - B32 right_sided; - U32 character; - U32 repeat_count; - Vec2F32 pos; - Vec2F32 delta; - String8List strings; -}; - -typedef struct OS_EventList OS_EventList; -struct OS_EventList -{ - U64 count; - OS_Event *first; - OS_Event *last; -}; - -//////////////////////////////// -//~ rjf: Application-Defined Frame Hook Forward Declaration - -internal B32 frame(void); - -//////////////////////////////// -//~ rjf: Event Functions (Helpers, Implemented Once) - -internal String8 os_string_from_event_kind(OS_EventKind kind); -internal String8List os_string_list_from_modifiers(Arena *arena, OS_Modifiers flags); -internal String8 os_string_from_modifiers_key(Arena *arena, OS_Modifiers modifiers, OS_Key key); -internal U32 os_codepoint_from_modifiers_and_key(OS_Modifiers flags, OS_Key key); -internal void os_eat_event(OS_EventList *events, OS_Event *event); -internal B32 os_key_press(OS_EventList *events, OS_Handle window, OS_Modifiers modifiers, OS_Key key); -internal B32 os_key_release(OS_EventList *events, OS_Handle window, OS_Modifiers modifiers, OS_Key key); -internal B32 os_text(OS_EventList *events, OS_Handle window, U32 character); -internal OS_EventList os_event_list_copy(Arena *arena, OS_EventList *src); -internal void os_event_list_concat_in_place(OS_EventList *dst, OS_EventList *to_push); -internal OS_Event *os_event_list_push_new(Arena *arena, OS_EventList *evts, OS_EventKind kind); - -//////////////////////////////// -//~ rjf: @os_hooks Main Initialization API (Implemented Per-OS) - -internal void os_gfx_init(void); - -//////////////////////////////// -//~ rjf: @os_hooks Graphics System Info (Implemented Per-OS) - -internal OS_GfxInfo *os_get_gfx_info(void); - -//////////////////////////////// -//~ rjf: @os_hooks Clipboards (Implemented Per-OS) - -internal void os_set_clipboard_text(String8 string); -internal String8 os_get_clipboard_text(Arena *arena); - -//////////////////////////////// -//~ rjf: @os_hooks Windows (Implemented Per-OS) - -internal OS_Handle os_window_open(Rng2F32 rect, OS_WindowFlags flags, String8 title); -internal void os_window_close(OS_Handle window); -internal void os_window_set_title(OS_Handle window, String8 title); -internal void os_window_first_paint(OS_Handle window); -internal void os_window_focus(OS_Handle window); -internal B32 os_window_is_focused(OS_Handle window); -internal B32 os_window_is_fullscreen(OS_Handle window); -internal void os_window_set_fullscreen(OS_Handle window, B32 fullscreen); -internal B32 os_window_is_maximized(OS_Handle window); -internal void os_window_set_maximized(OS_Handle window, B32 maximized); -internal B32 os_window_is_minimized(OS_Handle window); -internal void os_window_set_minimized(OS_Handle window, B32 minimized); -internal void os_window_bring_to_front(OS_Handle window); -internal void os_window_set_monitor(OS_Handle window, OS_Handle monitor); -internal void os_window_clear_custom_border_data(OS_Handle handle); -internal void os_window_push_custom_title_bar(OS_Handle handle, F32 thickness); -internal void os_window_push_custom_edges(OS_Handle handle, F32 thickness); -internal void os_window_push_custom_title_bar_client_area(OS_Handle handle, Rng2F32 rect); -internal Rng2F32 os_rect_from_window(OS_Handle window); -internal Rng2F32 os_client_rect_from_window(OS_Handle window); -internal F32 os_dpi_from_window(OS_Handle window); - -//////////////////////////////// -//~ rjf: @os_hooks External Windows (Implemented Per-OS) - -internal OS_Handle os_focused_external_window(void); -internal void os_focus_external_window(OS_Handle handle); - -//////////////////////////////// -//~ rjf: @os_hooks Monitors (Implemented Per-OS) - -internal OS_HandleArray os_push_monitors_array(Arena *arena); -internal OS_Handle os_primary_monitor(void); -internal OS_Handle os_monitor_from_window(OS_Handle window); -internal String8 os_name_from_monitor(Arena *arena, OS_Handle monitor); -internal Vec2F32 os_dim_from_monitor(OS_Handle monitor); -internal F32 os_dpi_from_monitor(OS_Handle monitor); - -//////////////////////////////// -//~ rjf: @os_hooks Events (Implemented Per-OS) - -internal void os_send_wakeup_event(void); -internal OS_EventList os_get_events(Arena *arena, B32 wait); -internal OS_Modifiers os_get_modifiers(void); -internal B32 os_key_is_down(OS_Key key); -internal Vec2F32 os_mouse_from_window(OS_Handle window); - -//////////////////////////////// -//~ rjf: @os_hooks Cursors (Implemented Per-OS) - -internal void os_set_cursor(OS_Cursor cursor); - -//////////////////////////////// -//~ rjf: @os_hooks Native User-Facing Graphical Messages (Implemented Per-OS) - -internal void os_graphical_message(B32 error, String8 title, String8 message); -internal String8 os_graphical_pick_file(Arena *arena, String8 initial_path); - -//////////////////////////////// -//~ rjf: @os_hooks Shell Operations - -internal void os_show_in_filesystem_ui(String8 path); -internal void os_open_in_browser(String8 url); - -#endif // OS_GFX_H diff --git a/src/os/gfx/stub/os_gfx_stub.c b/src/os/gfx/stub/os_gfx_stub.c deleted file mode 100644 index e1e9b805..00000000 --- a/src/os/gfx/stub/os_gfx_stub.c +++ /dev/null @@ -1,279 +0,0 @@ -//////////////////////////////// -//~ rjf: @os_hooks Main Initialization API (Implemented Per-OS) - -internal void -os_gfx_init(void) -{ -} - -//////////////////////////////// -//~ rjf: @os_hooks Graphics System Info (Implemented Per-OS) - -internal OS_GfxInfo * -os_get_gfx_info(void) -{ - local_persist OS_GfxInfo g = {0}; - return &g; -} - -//////////////////////////////// -//~ rjf: @os_hooks Clipboards (Implemented Per-OS) - -internal void -os_set_clipboard_text(String8 string) -{ -} - -internal String8 -os_get_clipboard_text(Arena *arena) -{ - return str8_zero(); -} - -//////////////////////////////// -//~ rjf: @os_hooks Windows (Implemented Per-OS) - -internal OS_Handle -os_window_open(Rng2F32 rect, OS_WindowFlags flags, String8 title) -{ - OS_Handle handle = {1}; - return handle; -} - -internal void -os_window_close(OS_Handle window) -{ -} - -internal void -os_window_set_title(OS_Handle window, String8 title) -{ -} - -internal void -os_window_first_paint(OS_Handle window) -{ -} - -internal void -os_window_focus(OS_Handle window) -{ -} - -internal B32 -os_window_is_focused(OS_Handle window) -{ - return 0; -} - -internal B32 -os_window_is_fullscreen(OS_Handle window) -{ - return 0; -} - -internal void -os_window_set_fullscreen(OS_Handle window, B32 fullscreen) -{ -} - -internal B32 -os_window_is_maximized(OS_Handle window) -{ - return 0; -} - -internal void -os_window_set_maximized(OS_Handle window, B32 maximized) -{ -} - -internal B32 -os_window_is_minimized(OS_Handle window) -{ - return 0; -} - -internal void -os_window_set_minimized(OS_Handle window, B32 minimized) -{ -} - -internal void -os_window_bring_to_front(OS_Handle window) -{ -} - -internal void -os_window_set_monitor(OS_Handle window, OS_Handle monitor) -{ -} - -internal void -os_window_clear_custom_border_data(OS_Handle handle) -{ -} - -internal void -os_window_push_custom_title_bar(OS_Handle handle, F32 thickness) -{ -} - -internal void -os_window_push_custom_edges(OS_Handle handle, F32 thickness) -{ -} - -internal void -os_window_push_custom_title_bar_client_area(OS_Handle handle, Rng2F32 rect) -{ -} - -internal Rng2F32 -os_rect_from_window(OS_Handle window) -{ - Rng2F32 rect = r2f32(v2f32(0, 0), v2f32(500, 500)); - return rect; -} - -internal Rng2F32 -os_client_rect_from_window(OS_Handle window) -{ - Rng2F32 rect = r2f32(v2f32(0, 0), v2f32(500, 500)); - return rect; -} - -internal F32 -os_dpi_from_window(OS_Handle window) -{ - return 96.f; -} - -//////////////////////////////// -//~ rjf: @os_hooks External Windows (Implemented Per-OS) - -internal OS_Handle -os_focused_external_window(void) -{ - OS_Handle result = {0}; - // TODO(rjf) - return result; -} - -internal void -os_focus_external_window(OS_Handle handle) -{ - // TODO(rjf) -} - -//////////////////////////////// -//~ rjf: @os_hooks Monitors (Implemented Per-OS) - -internal OS_HandleArray -os_push_monitors_array(Arena *arena) -{ - OS_HandleArray arr = {0}; - return arr; -} - -internal OS_Handle -os_primary_monitor(void) -{ - OS_Handle handle = {1}; - return handle; -} - -internal OS_Handle -os_monitor_from_window(OS_Handle window) -{ - OS_Handle handle = {1}; - return handle; -} - -internal String8 -os_name_from_monitor(Arena *arena, OS_Handle monitor) -{ - return str8_zero(); -} - -internal Vec2F32 -os_dim_from_monitor(OS_Handle monitor) -{ - Vec2F32 v = v2f32(1000, 1000); - return v; -} - -internal F32 -os_dpi_from_monitor(OS_Handle monitor) -{ - return 96.f; -} - -//////////////////////////////// -//~ rjf: @os_hooks Events (Implemented Per-OS) - -internal void -os_send_wakeup_event(void) -{ -} - -internal OS_EventList -os_get_events(Arena *arena, B32 wait) -{ - OS_EventList evts = {0}; - return evts; -} - -internal OS_Modifiers -os_get_modifiers(void) -{ - OS_Modifiers f = 0; - return f; -} - -internal B32 -os_key_is_down(OS_Key key) -{ - return 0; -} - -internal Vec2F32 -os_mouse_from_window(OS_Handle window) -{ - return v2f32(0, 0); -} - -//////////////////////////////// -//~ rjf: @os_hooks Cursors (Implemented Per-OS) - -internal void -os_set_cursor(OS_Cursor cursor) -{ -} - -//////////////////////////////// -//~ rjf: @os_hooks Native User-Facing Graphical Messages (Implemented Per-OS) - -internal void -os_graphical_message(B32 error, String8 title, String8 message) -{ -} - -internal String8 -os_graphical_pick_file(Arena *arena, String8 initial_path) -{ - return str8_zero(); -} - -//////////////////////////////// -//~ rjf: @os_hooks Shell Operations - -internal void -os_show_in_filesystem_ui(String8 path) -{ -} - -internal void -os_open_in_browser(String8 url) -{ -} diff --git a/src/os/gfx/win32/os_gfx_win32.h b/src/os/gfx/win32/os_gfx_win32.h deleted file mode 100644 index 8737055d..00000000 --- a/src/os/gfx/win32/os_gfx_win32.h +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_GFX_WIN32_H -#define OS_GFX_WIN32_H - -//////////////////////////////// -//~ rjf: Includes / Libraries - -#include -#include -#include -#pragma comment(lib, "gdi32") -#pragma comment(lib, "dwmapi") -#pragma comment(lib, "UxTheme") -#pragma comment(lib, "ole32") -#pragma comment(lib, "user32") -#pragma comment(lib, "comdlg32") -#ifndef WM_NCUAHDRAWCAPTION -#define WM_NCUAHDRAWCAPTION (0x00AE) -#endif -#ifndef WM_NCUAHDRAWFRAME -#define WM_NCUAHDRAWFRAME (0x00AF) -#endif - -//////////////////////////////// -//~ rjf: Windows - -typedef struct OS_W32_TitleBarClientArea OS_W32_TitleBarClientArea; -struct OS_W32_TitleBarClientArea -{ - OS_W32_TitleBarClientArea *next; - Rng2F32 rect; -}; - -typedef struct OS_W32_Window OS_W32_Window; -struct OS_W32_Window -{ - OS_W32_Window *next; - OS_W32_Window *prev; - HWND hwnd; - HDC hdc; - WINDOWPLACEMENT last_window_placement; - F32 dpi; - B32 first_paint_done; - B32 maximized; - B32 custom_border; - F32 custom_border_title_thickness; - F32 custom_border_edge_thickness; - B32 custom_border_composition_enabled; - Arena *paint_arena; - OS_W32_TitleBarClientArea *first_title_bar_client_area; - OS_W32_TitleBarClientArea *last_title_bar_client_area; -}; - -//////////////////////////////// -//~ rjf: Monitor Gathering Bundle - -typedef struct OS_W32_MonitorGatherBundle OS_W32_MonitorGatherBundle; -struct OS_W32_MonitorGatherBundle -{ - Arena *arena; - OS_HandleList *list; -}; - -//////////////////////////////// -//~ rjf: Global State - -typedef struct OS_W32_GfxState OS_W32_GfxState; -struct OS_W32_GfxState -{ - Arena *arena; - U32 gfx_thread_tid; - HINSTANCE hInstance; - HCURSOR hCursor; - OS_GfxInfo gfx_info; - OS_W32_Window *first_window; - OS_W32_Window *last_window; - OS_W32_Window *free_window; - OS_Key key_from_vkey_table[256]; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_W32_GfxState *os_w32_gfx_state = 0; -global OS_EventList os_w32_event_list = {0}; -global Arena *os_w32_event_arena = 0; -global B32 os_w32_resizing = 0; -global B32 os_w32_new_window_custom_border = 0; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal Rng2F32 os_w32_rng2f32_from_rect(RECT rect); - -//////////////////////////////// -//~ rjf: Windows - -internal OS_Handle os_w32_handle_from_window(OS_W32_Window *window); -internal OS_W32_Window * os_w32_window_from_handle(OS_Handle window); -internal OS_W32_Window * os_w32_window_from_hwnd(HWND hwnd); -internal HWND os_w32_hwnd_from_window(OS_W32_Window *window); -internal OS_W32_Window * os_w32_window_alloc(void); -internal void os_w32_window_release(OS_W32_Window *window); -internal OS_Event * os_w32_push_event(OS_EventKind kind, OS_W32_Window *window); -internal OS_Key os_w32_os_key_from_vkey(WPARAM vkey); -internal WPARAM os_w32_vkey_from_os_key(OS_Key key); -internal LRESULT os_w32_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); - -//////////////////////////////// -//~ rjf: Monitors - -internal BOOL os_w32_monitor_gather_enum_proc(HMONITOR monitor, HDC hdc, LPRECT rect, LPARAM bundle_ptr); - -#endif // OS_GFX_WIN32_H diff --git a/src/os/os_inc.c b/src/os/os_inc.c deleted file mode 100644 index 37c3e2aa..00000000 --- a/src/os/os_inc.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#include "os/core/os_core.c" -#if OS_FEATURE_GRAPHICAL -# include "os/gfx/os_gfx.c" -#endif - -#if OS_WINDOWS -# include "os/core/win32/os_core_win32.c" -#elif OS_LINUX -# include "os/core/linux/os_core_linux.c" -#else -# error OS core layer not implemented for this operating system. -#endif - -#if OS_FEATURE_GRAPHICAL -# if OS_GFX_STUB -# include "os/gfx/stub/os_gfx_stub.c" -# elif OS_WINDOWS -# include "os/gfx/win32/os_gfx_win32.c" -# elif OS_LINUX -# include "os/gfx/linux/os_gfx_linux.c" -# else -# error OS graphical layer not implemented for this operating system. -# endif -#endif diff --git a/src/os/os_inc.h b/src/os/os_inc.h deleted file mode 100644 index d581fe6a..00000000 --- a/src/os/os_inc.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_INC_H -#define OS_INC_H - -#if !defined(OS_FEATURE_GRAPHICAL) -# define OS_FEATURE_GRAPHICAL 0 -#endif - -#if !defined(OS_GFX_STUB) -# define OS_GFX_STUB 0 -#endif - -#include "os/core/os_core.h" -#if OS_FEATURE_GRAPHICAL -# include "os/gfx/os_gfx.h" -#endif - -#if OS_WINDOWS -# include "os/core/win32/os_core_win32.h" -#elif OS_LINUX -# include "os/core/linux/os_core_linux.h" -#else -# error OS core layer not implemented for this operating system. -#endif - -#if OS_FEATURE_GRAPHICAL -# if OS_GFX_STUB -# include "os/gfx/stub/os_gfx_stub.h" -# elif OS_WINDOWS -# include "os/gfx/win32/os_gfx_win32.h" -# elif OS_LINUX -# include "os/gfx/linux/os_gfx_linux.h" -# else -# error OS graphical layer not implemented for this operating system. -# endif -#endif - -#endif // OS_INC_H diff --git a/src/pdb/pdb.c b/src/pdb/pdb.c index 035ca375..e334f51c 100644 --- a/src/pdb/pdb.c +++ b/src/pdb/pdb.c @@ -6,18 +6,17 @@ pdb_hash_v1(String8 string) { U32 result = 0; U8 *ptr = string.str; - U8 *opl = ptr + (string.size&(~3)); - for(; ptr < opl; ptr += 4) + for(U8 *opl = ptr + (string.size & (~3)); ptr < opl; ptr += 4) { - result ^= *(U32*)ptr; + result ^= memory_read32(ptr); } - if((string.size&2) != 0) + if((string.size & 2) != 0) { - result ^= *(U16*)ptr; ptr += 2; + result ^= memory_read16(ptr); ptr += 2; } - if((string.size&1) != 0) + if((string.size & 1) != 0) { - result ^= *ptr; + result ^= memory_read8(ptr); } result |= 0x20202020; result ^= (result >> 11); diff --git a/src/pdb/pdb_parse.c b/src/pdb/pdb_parse.c index 0849fd98..ac7ca4a9 100644 --- a/src/pdb/pdb_parse.c +++ b/src/pdb/pdb_parse.c @@ -5,17 +5,21 @@ //~ PDB Parser Functions internal PDB_Info* -pdb_info_from_data(Arena *arena, String8 data){ +pdb_info_from_data(Arena *arena, String8 data) +{ ProfBegin("pdb_info_from_data"); + PDB_Info *result = push_array(arena, PDB_Info, 1); // get header PDB_InfoHeader *header = 0; - if (data.size >= sizeof(*header)){ + if(data.size >= sizeof(*header)) + { header = (PDB_InfoHeader *)data.str; } - PDB_Info *result = 0; - if (header != 0){ + // rjf: parse info given header + if(header != 0) + { // read guid Guid *auth_guid = 0; U32 after_auth_guid_off = sizeof(*header); @@ -122,7 +126,6 @@ pdb_info_from_data(Arena *arena, String8 data){ } ProfEnd(); - return(result); } @@ -321,7 +324,7 @@ pdb_tpi_from_data(Arena *arena, String8 data) } internal PDB_TpiHashParsed* -pdb_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, String8 data, String8 aux_data) +pdb_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, String8 data) { ProfBeginFunction(); PDB_TpiHashParsed *result = push_array(arena, PDB_TpiHashParsed, 1); @@ -439,7 +442,6 @@ pdb_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, Str // fill result result->data = data; - result->aux_data = aux_data; result->buckets = buckets; result->bucket_count = bucket_count; result->bucket_mask = bucket_mask; @@ -476,56 +478,35 @@ pdb_gsi_from_data(Arena *arena, String8 data) // array offsets U32 bitmask_u32_count = CeilIntegerDiv(slot_count, 32); U32 bitmask_byte_size = bitmask_u32_count*4; - U32 bitmask_off = hash_record_array_off + header->hash_record_arr_size; - U32 offsets_off = bitmask_off + bitmask_byte_size; + U32 bitmask_off = hash_record_array_off + header->hash_record_arr_size; + U32 offsets_off = bitmask_off + bitmask_byte_size; // get bitmask & packed offset arrays - U8 *bitmasks = 0; - U8 *packed_offsets = 0; + U32Array bitmask = {0}; + U32 *packed_offsets = 0; + U64 packed_offset_count = 0; if(bitmask_off + bitmask_byte_size <= data.size) { - bitmasks = (data.str + bitmask_off); - packed_offsets = (data.str + offsets_off); + bitmask = (U32Array){ .v = (U32 *)(data.str + bitmask_off), .count = bitmask_u32_count }; + packed_offsets = (U32 *)(data.str + offsets_off); + packed_offset_count = (data.size - offsets_off)/4; } - U32 packed_offset_count = (data.size - offsets_off)/4; // unpack U32 *unpacked_offsets = 0; if(packed_offsets != 0) { - unpacked_offsets = push_array(scratch.arena, U32, slot_count); + unpacked_offsets = push_array_no_zero(scratch.arena, U32, slot_count); + MemorySet(unpacked_offsets, 0xff, sizeof(unpacked_offsets[0]) * slot_count); - U32 *bitmask_ptr = (U32*)bitmasks; - U32 *bitmask_opl = bitmask_ptr + bitmask_u32_count; - U32 *src_ptr = (U32*)packed_offsets; - U32 *src_opl = src_ptr + packed_offset_count; - U32 *dst_ptr = unpacked_offsets; - U32 *dst_opl = dst_ptr + slot_count; - for(; bitmask_ptr < bitmask_opl && src_ptr < src_opl; bitmask_ptr += 1) - { - U32 bits = *bitmask_ptr; - U32 src_max = (U32)(src_opl - src_ptr); - U32 dst_max = (U32)(dst_opl - dst_ptr); - U32 k_max0 = ClampTop(32, dst_max); - U32 k_max = ClampTop(k_max0, src_max); - for(U32 k = 0; k < k_max; k += 1) - { - if((bits & 1) == 1) - { - *dst_ptr = *src_ptr; - src_ptr += 1; - } - else - { - *dst_ptr = 0xFFFFFFFF; - } - dst_ptr += 1; - bits >>= 1; - } - } - for(; dst_ptr < dst_opl; dst_ptr += 1) - { - *dst_ptr = 0xFFFFFFFF; + U32 *off_ptr = (U32 *)packed_offsets; + U32 *off_opl = off_ptr + packed_offset_count; + for (U64 slot_idx = 0; ; slot_idx += 1) { + slot_idx = bit_array_scan_left_to_right32(bitmask, slot_idx, slot_count, 1); + if (slot_idx >= slot_count) { break; } + if (off_ptr >= off_opl) { Assert(0 && "corrupted GSI"); break; } + unpacked_offsets[slot_idx] = *off_ptr; + off_ptr += 1; } } @@ -613,7 +594,7 @@ pdb_gsi_symbol_from_string(PDB_GsiParsed *gsi, String8 symbol_data, String8 stri sym_opl = symbol_data.str + opl_off; } - Rng1U64 raw_symbol_range = rng_1u64(off + sizeof(*sym_header), off + (sym_header->size - sizeof(sym_header->kind))); + Rng1U64 raw_symbol_range = rng_1u64(off + sizeof(*sym_header), opl_off); String8 raw_symbol = str8_substr(symbol_data, raw_symbol_range); String8 sym_name = cv_name_from_symbol(sym_header->kind, raw_symbol); @@ -778,6 +759,37 @@ pdb_comp_unit_contribution_array_from_data(Arena *arena, String8 data, COFF_Sect return result; } +internal PDB_CompUnitContribution * +pdb_comp_unit_contribution_from_voff__binary_search(PDB_CompUnitContributionArray *array, U64 voff) +{ + PDB_CompUnitContribution *result = 0; + if(array->count != 0) + { + U64 first_idx = 0; + U64 last_idx = array->count-1; + for(;first_idx < last_idx;) + { + U64 mid_idx = (last_idx + first_idx) / 2; + U64 mid_voff_first = array->contributions[mid_idx].voff_first; + U64 mid_voff_opl = array->contributions[mid_idx].voff_opl; + if(voff < mid_voff_first) + { + last_idx = mid_idx; + } + else if(mid_voff_opl <= voff) + { + first_idx = mid_idx+1; + } + else + { + result = &array->contributions[mid_idx]; + break; + } + } + } + return result; +} + //////////////////////////////// //~ PDB Dbi Functions @@ -1138,21 +1150,19 @@ pdb_has_file_ref(String8 msf_data, String8List file_list, MSF_RawStreamTable *st PDB_Strtbl *strtbl = pdb_strtbl_from_data(scratch.arena, strtbl_data); if(strtbl->bucket_count != 0) { - for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) + for EachIndex(idx, strtbl->bucket_count) { - Temp temp = temp_begin(scratch.arena); - String8 path = file_n->string; - String8 path_pdbstyle = path_convert_slashes(temp.arena, path, PathStyle_WindowsAbsolute); - String8 path_pdbstyle_lower = lower_from_str8(temp.arena, path_pdbstyle); - U32 off1 = pdb_strtbl_off_from_string(strtbl, path_pdbstyle); - U32 off2 = pdb_strtbl_off_from_string(strtbl, path_pdbstyle_lower); - temp_end(temp); - if(off1 != max_U32 || off2 != max_U32) + String8 stored_string = pdb_strtbl_string_from_index(strtbl, idx); + for(String8Node *file_n = file_list.first; file_n != 0; file_n = file_n->next) { - has_ref = 1; - break; + if(str8_match(file_n->string, stored_string, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) + { + has_ref = 1; + goto dbl_break; + } } } + dbl_break:; } } } diff --git a/src/pdb/pdb_parse.h b/src/pdb/pdb_parse.h index a01b2592..d33e0e9a 100644 --- a/src/pdb/pdb_parse.h +++ b/src/pdb/pdb_parse.h @@ -163,8 +163,6 @@ typedef struct PDB_TpiHashBlock typedef struct PDB_TpiHashParsed { String8 data; - String8 aux_data; - PDB_TpiHashBlock **buckets; U32 bucket_count; U32 bucket_mask; @@ -198,11 +196,7 @@ internal PDB_Strtbl* pdb_strtbl_from_data(Arena *arena, String8 strtbl_ internal PDB_DbiParsed* pdb_dbi_from_data(Arena *arena, String8 dbi_data); internal PDB_TpiParsed* pdb_tpi_from_data(Arena *arena, String8 tpi_data); -internal PDB_TpiHashParsed* pdb_tpi_hash_from_data(Arena *arena, - PDB_Strtbl *strtbl, - PDB_TpiParsed *tpi, - String8 tpi_hash_data, - String8 tpi_hash_aux_data); +internal PDB_TpiHashParsed* pdb_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, String8 tpi_hash_data); internal PDB_GsiParsed* pdb_gsi_from_data(Arena *arena, String8 gsi_data); internal U64 pdb_gsi_symbol_from_string(PDB_GsiParsed *gsi, String8 symbol_data, String8 string); @@ -212,6 +206,7 @@ internal PDB_CompUnitArray* pdb_comp_unit_array_from_data(Arena *arena, String8 module_info_data); internal PDB_CompUnitContributionArray pdb_comp_unit_contribution_array_from_data(Arena *arena, String8 seccontrib_data, COFF_SectionHeaderArray sections); +internal PDB_CompUnitContribution *pdb_comp_unit_contribution_from_voff__binary_search(PDB_CompUnitContributionArray *array, U64 voff); //////////////////////////////// //~ PDB Dbi Functions diff --git a/src/pe/pe.c b/src/pe/pe.c index 1789d154..85d9ed17 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -520,10 +520,6 @@ pe_bin_info_from_data(Arena *arena, String8 data) reported_data_dir_offset = sizeof(*pe_optional); reported_data_dir_count = pe_optional->data_dir_count; } - else - { - Assert(!"unable to read PE Optional Header"); - } }break; case PE_PE32PLUS_MAGIC: { @@ -539,10 +535,6 @@ pe_bin_info_from_data(Arena *arena, String8 data) reported_data_dir_offset = sizeof(*pe_optional); reported_data_dir_count = pe_optional->data_dir_count; } - else - { - Assert(!"unable to read PE Optional Plus Header"); - } }break; } @@ -561,10 +553,6 @@ pe_bin_info_from_data(Arena *arena, String8 data) U64 file_off = coff_foff_from_voff(sections, clamped_sec_count, dir.virt_off); data_dir_franges[dir_idx] = r1u64(file_off, file_off+dir.virt_size); } - else - { - Assert(!"unable to read data directory"); - } } // export virtual directory ranges @@ -577,10 +565,6 @@ pe_bin_info_from_data(Arena *arena, String8 data) { data_dir_vranges[dir_idx] = r1u64(dir.virt_off, dir.virt_off+dir.virt_size); } - else - { - Assert(!"unable to read data directory"); - } } // export directory range @@ -608,17 +592,12 @@ pe_bin_info_from_data(Arena *arena, String8 data) tls_header.zero_fill_size = (U64)tls_header32.zero_fill_size; tls_header.characteristics = (U64)tls_header32.characteristics; } - else - { - Assert(!"unable to read TLS Header 32"); - } }break; case COFF_MachineType_X64: { if(str8_deserial_read_struct(data, tls_header_frng.min, &tls_header) != sizeof(tls_header)) { MemoryZeroStruct(&tls_header); - Assert(!"unable to read TLS Header 64"); } }break; } @@ -1342,7 +1321,7 @@ pe_exports_from_data(Arena *arena, U64 section_count, COFF_SectionHeader *sectio if (is_voff_taken && is_ordinal_free) { curr_exp->name = str8_zero(); curr_exp->voff = voff; - curr_exp->ordinal = header->ordinal_base; + curr_exp->ordinal = header->ordinal_base + ordinal_nb; ++curr_exp; } } @@ -1712,6 +1691,30 @@ pe_make_manifest_resource(Arena *arena, U32 resource_id, String8 manifest_data) return res; } +internal PE_ResourcePtrArray +pe_resource_ptr_from_array(Arena *arena, PE_ResourceArray arr) +{ + PE_ResourcePtrArray result = {0}; + result.count = arr.count; + result.v = push_array(arena, PE_Resource *, arr.count); + for EachIndex(i, arr.count) { + result.v[i] = &arr.v[i]; + } + return result; +} + +internal PE_ResourceArray +pe_resource_from_ptr_array(Arena *arena, PE_ResourcePtrArray arr) +{ + PE_ResourceArray result = {0}; + result.count = arr.count; + result.v = push_array(arena, PE_Resource, arr.count); + for EachIndex(i, arr.count) { + result.v[i] = *arr.v[i]; + } + return result; +} + //////////////////////////////// //~ Debug Directory diff --git a/src/pe/pe.h b/src/pe/pe.h index 74dce633..378d71ed 100644 --- a/src/pe/pe.h +++ b/src/pe/pe.h @@ -486,6 +486,7 @@ struct PE_LoadConfig64 #define PE_MAGIC 0x00004550u #define PE_PE32_MAGIC 0x010bu #define PE_PE32PLUS_MAGIC 0x020bu +typedef U16 PE_DosMagic; typedef struct PE_MipsPdata PE_MipsPdata; struct PE_MipsPdata @@ -866,6 +867,13 @@ struct PE_ResourceArray U64 count; }; +typedef struct PE_ResourcePtrArray PE_ResourcePtrArray; +struct PE_ResourcePtrArray +{ + PE_Resource **v; + U64 count; +}; + typedef struct PE_ResourceDir PE_ResourceDir; struct PE_ResourceDir { @@ -1096,6 +1104,9 @@ internal PE_ResourceDir * pe_resource_table_from_directory_data(Arena *arena, S internal String8 pe_make_manifest_resource(Arena *arena, U32 resource_id, String8 manifest_data); +internal PE_ResourcePtrArray pe_resource_ptr_from_array(Arena *arena, PE_ResourceArray arr); +internal PE_ResourceArray pe_resource_from_ptr_array(Arena *arena, PE_ResourcePtrArray arr); + //////////////////////////////// //~ Debug Directory diff --git a/src/pe/pe_make_export_table.c b/src/pe/pe_make_export_table.c index 27e5d9e8..20481a2d 100644 --- a/src/pe/pe_make_export_table.c +++ b/src/pe/pe_make_export_table.c @@ -75,36 +75,31 @@ pe_export_parse_list_concat_in_place(PE_ExportParseList *list, PE_ExportParseLis internal int pe_named_export_is_before(void *raw_a, void *raw_b) { - PE_ExportParse *a = *(PE_ExportParse **)raw_a; - PE_ExportParse *b = *(PE_ExportParse **)raw_b; - int cmp = str8_compar_case_sensitive(&a->name, &b->name); - return cmp < 0; + PE_ExportParse *a = *(PE_ExportParse **)raw_a, *b = *(PE_ExportParse **)raw_b; + String8 name_a = a->alias.size ? a->alias : a->name; + String8 name_b = b->alias.size ? b->alias : b->name; + return str8_compar_case_sensitive(&name_a, &name_b) < 0; } internal int pe_ordinal_export_is_before(void *raw_a, void *raw_b) { - PE_ExportParse *a = raw_a; - PE_ExportParse *b = raw_b; - return a->ordinal < b->ordinal; + PE_ExportParse **a = raw_a, **b = raw_b; + return (*a)->ordinal < (*b)->ordinal; } internal PE_FinalizedExports pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) { - PE_ExportParsePtrArray named_exports = {0}; + PE_ExportParsePtrArray named_exports = {0}; PE_ExportParsePtrArray ordinal_exports = {0}; - PE_ExportParsePtrArray forwarder_exports = {0}; { // group exports based on flags - PE_ExportParseList named_exports_list = {0}; + PE_ExportParseList named_exports_list = {0}; PE_ExportParseList ordinal_exports_list = {0}; - PE_ExportParseList forwarder_exports_list = {0}; for (PE_ExportParseNode *exp_n = export_list.first, *exp_n_next; exp_n != 0; exp_n = exp_n_next) { exp_n_next = exp_n->next; - if (exp_n->data.is_forwarder) { - pe_export_parse_list_push_node(&forwarder_exports_list, exp_n); - } else if (exp_n->data.is_noname_present) { + if (exp_n->data.is_noname_present) { AssertAlways(exp_n->data.is_ordinal_assigned); pe_export_parse_list_push_node(&ordinal_exports_list, exp_n); } else { @@ -113,29 +108,25 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) } // list -> array - named_exports = pe_array_from_export_list(arena, named_exports_list); - forwarder_exports = pe_array_from_export_list(arena, forwarder_exports_list); + named_exports = pe_array_from_export_list(arena, named_exports_list); ordinal_exports = pe_array_from_export_list(arena, ordinal_exports_list); // sort exports radsort(named_exports.v, named_exports.count, pe_named_export_is_before); radsort(ordinal_exports.v, ordinal_exports.count, pe_ordinal_export_is_before); - radsort(forwarder_exports.v, forwarder_exports.count, pe_named_export_is_before); MemoryZeroStruct(&export_list); pe_export_parse_list_concat_in_place(&export_list, &named_exports_list); - pe_export_parse_list_concat_in_place(&export_list, &forwarder_exports_list); pe_export_parse_list_concat_in_place(&export_list, &ordinal_exports_list); } // compute max ordinal and used ordinal flag array U64 ordinal_low = max_U64; B8 *is_ordinal_used = push_array(arena, B8, max_U16); - for (PE_ExportParseNode *exp_n = export_list.first; exp_n != 0; exp_n = exp_n->next) { - PE_ExportParse *exp = &exp_n->data; - if (exp->is_ordinal_assigned) { - ordinal_low = Min(ordinal_low, exp->ordinal); - is_ordinal_used[exp->ordinal] = 1; + for EachNode(exp_n, PE_ExportParseNode, export_list.first) { + if (exp_n->data.is_ordinal_assigned) { + ordinal_low = Min(ordinal_low, exp_n->data.ordinal); + is_ordinal_used[exp_n->data.ordinal] = 1; } } if (ordinal_low == max_U64) { @@ -154,15 +145,6 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) is_ordinal_used[last_ordinal] = 1; } } - for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1) { - PE_ExportParse *exp = forwarder_exports.v[exp_idx]; - if (!exp->is_ordinal_assigned) { - for (; last_ordinal < max_U16 && is_ordinal_used[last_ordinal] != 0; last_ordinal += 1); - exp->ordinal = last_ordinal; - exp->is_ordinal_assigned = 1; - is_ordinal_used[last_ordinal] = 1; - } - } for (U64 exp_idx = 0; exp_idx < ordinal_exports.count; exp_idx += 1) { PE_ExportParse *exp = ordinal_exports.v[exp_idx]; if (!exp->is_ordinal_assigned) { @@ -179,18 +161,13 @@ pe_finalize_export_list(Arena *arena, PE_ExportParseList export_list) for (U64 exp_idx = 0; exp_idx < named_exports.count; exp_idx += 1, hint += 1) { named_exports.v[exp_idx]->hint = hint; } - for (U64 exp_idx = 0; exp_idx < forwarder_exports.count; exp_idx += 1, hint += 1) { - forwarder_exports.v[exp_idx]->hint = hint; - } } - PE_FinalizedExports result = {0}; - result.ordinal_low = ordinal_low; - result.named_exports = named_exports; - result.forwarder_exports = forwarder_exports; - result.ordinal_exports = ordinal_exports; - - return result; + return (PE_FinalizedExports) { + .ordinal_low = ordinal_low, + .named_exports = named_exports, + .ordinal_exports = ordinal_exports + }; } internal String8 @@ -214,34 +191,34 @@ pe_make_edata_obj(Arena *arena, ProfBegin("Virtual Offset Table"); { B8 *is_ordinal_bound = push_array(scratch.arena, B8, max_U16); - - for (U64 arr_idx = 0; arr_idx < ArrayCount(finalized_exports.all); arr_idx += 1) { - for (U64 exp_idx = 0; exp_idx < finalized_exports.all[arr_idx].count; exp_idx += 1) { + for EachElement(arr_idx, finalized_exports.all) { + for EachIndex(exp_idx, finalized_exports.all[arr_idx].count) { PE_ExportParse *exp = finalized_exports.all[arr_idx].v[exp_idx]; - if (is_ordinal_bound[exp->ordinal] == 0) { - // alloc only one slot per ordinal, so it's possible to map ordinal to a virtual offset - is_ordinal_bound[exp->ordinal] = 1; - // create slot for the ordinal virtual offset - U64 voff_offset = voff_table_sect->data.total_size; - U32 *voff = push_array(obj_writer->arena, U32, 1); - str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); + // export with this ordinal was already allocated + if (is_ordinal_bound[exp->ordinal]) { continue; } + is_ordinal_bound[exp->ordinal] = 1; - COFF_ObjSymbol *exp_symbol; - if (exp->is_forwarder) { - U64 forwarder_name_offset = string_table_sect->data.total_size; - String8 forwarder_name_cstr = push_cstr(obj_writer->arena, exp->name); - str8_list_push(obj_writer->arena, &string_table_sect->data, forwarder_name_cstr); - // symbol to the name string - exp_symbol = coff_obj_writer_push_symbol_static(obj_writer, exp->name, forwarder_name_offset, string_table_sect); - } else { - // function or global var symbol - exp_symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); - } - - U16 ordinal_nb = exp->ordinal - finalized_exports.ordinal_low; - coff_obj_writer_section_push_reloc_voff(obj_writer, voff_table_sect, ordinal_nb*sizeof(U32), exp_symbol); + // create symbol for the export address table entry + COFF_ObjSymbol *exp_symbol; + if (exp->is_forwarder) { + // symbol to the forwarder string + U64 fwd_name_offset = string_table_sect->data.total_size; + str8_list_push(obj_writer->arena, &string_table_sect->data, push_cstr(obj_writer->arena, exp->name)); + exp_symbol = coff_obj_writer_push_symbol_static(obj_writer, exp->name, fwd_name_offset, string_table_sect); + } else { + // function or data symbol + exp_symbol = coff_obj_writer_push_symbol_undef(obj_writer, exp->name); } + + // create slot for the ordinal virtual offset + U64 voff_offset = voff_table_sect->data.total_size; + U32 *voff = push_array(obj_writer->arena, U32, 1); + str8_list_push(obj_writer->arena, &voff_table_sect->data, str8_struct(voff)); + + // ordinal is an index into the export address table + U16 ordinal_nb = exp->ordinal - finalized_exports.ordinal_low; + coff_obj_writer_section_push_reloc_voff(obj_writer, voff_table_sect, ordinal_nb*sizeof(U32), exp_symbol); } } } diff --git a/src/pe/pe_make_export_table.h b/src/pe/pe_make_export_table.h index 6b3d1ff8..5fa08335 100644 --- a/src/pe/pe_make_export_table.h +++ b/src/pe/pe_make_export_table.h @@ -45,11 +45,10 @@ typedef struct PE_FinalizedExports union { struct { PE_ExportParsePtrArray named_exports; - PE_ExportParsePtrArray forwarder_exports; PE_ExportParsePtrArray ordinal_exports; }; - PE_ExportParsePtrArray exports_with_names[2]; - PE_ExportParsePtrArray all[3]; + PE_ExportParsePtrArray exports_with_names[1]; + PE_ExportParsePtrArray all[2]; }; } PE_FinalizedExports; diff --git a/src/pe/pe_make_import_table.c b/src/pe/pe_make_import_table.c index 450b4a60..8bc39203 100644 --- a/src/pe/pe_make_import_table.c +++ b/src/pe/pe_make_import_table.c @@ -268,7 +268,8 @@ pe_make_import_dll_obj_static(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mach COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".idata$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$zz"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$zz"), PE_TEXT_SECTION_FLAGS |COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); COFF_ObjSymbol *ilt_symbol = coff_obj_writer_push_symbol_static(obj_writer, ilt_sect->name, 0, ilt_sect); COFF_ObjSymbol *iat_symbol = coff_obj_writer_push_symbol_static(obj_writer, iat_sect->name, 0, iat_sect); @@ -352,10 +353,10 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac // DLL handle U64 handle_size = coff_word_size_from_machine(machine); - U8 *handle = push_array(obj_writer->arena, U8, handle_size); + U8 *handle = push_array(obj_writer->arena, U8, handle_size); // import align - U64 import_size = coff_word_size_from_machine(machine); + U64 import_size = coff_word_size_from_machine(machine); COFF_SectionFlags import_align = coff_section_flag_from_align_size(import_size); // push sections @@ -364,8 +365,8 @@ pe_make_import_dll_obj_delayed(Arena *arena, COFF_TimeStamp time_stamp, COFF_Mac COFF_ObjSection *iat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$5"), PE_IDATA_SECTION_FLAGS|import_align, str8_zero()); COFF_ObjSection *int_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$6"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_zero()); COFF_ObjSection *dll_name_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".didat$7"), PE_IDATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, dll_name_cstr); - COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$"), PE_TEXT_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_zero()); - COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_array(handle, handle_size)); + COFF_ObjSection *code_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text$"), PE_TEXT_SECTION_FLAGS |COFF_SectionFlag_Align1Bytes, str8_zero()); + COFF_ObjSection *handle_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data$"), PE_DATA_SECTION_FLAGS |COFF_SectionFlag_Align1Bytes, str8_array(handle, handle_size)); COFF_ObjSection *debug_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".debug$S"), PE_DEBUG_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, debug_symbols); COFF_ObjSection *biat_sect = 0; COFF_ObjSection *uiat_sect = 0; diff --git a/src/pe/x64/unwind/pe_x64_unwind.c b/src/pe/x64/unwind/pe_x64_unwind.c new file mode 100644 index 00000000..5cb00655 --- /dev/null +++ b/src/pe/x64/unwind/pe_x64_unwind.c @@ -0,0 +1,918 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Helpers + +internal PE_IntelPdata * +pe_x64_uwnd_intel_pdata_from_voff(PE_X64_UWND_ModuleUnwindInfo *unwind_info, U64 voff) +{ + PE_IntelPdata *first_pdata = 0; + { + PE_IntelPdata *pdatas = unwind_info->pdatas; + U64 pdatas_count = unwind_info->pdatas_count; + if(pdatas_count != 0 && voff >= pdatas[0].voff_first) + { + // NOTE(rjf): + // + // binary search: + // find max index s.t. pdata_array[index].voff_first <= voff + // we assume (i < j) -> (pdata_array[i].voff_first < pdata_array[j].voff_first) + // + U64 index = pdatas_count; + U64 min = 0; + U64 opl = pdatas_count; + for(;;) + { + U64 mid = (min + opl)/2; + PE_IntelPdata *pdata = pdatas + mid; + if(voff < pdata->voff_first) + { + opl = mid; + } + else if(pdata->voff_first < voff) + { + min = mid; + } + else + { + index = mid; + break; + } + if(min + 1 >= opl) + { + index = min; + break; + } + } + + // rjf: if we are in range fill result + { + PE_IntelPdata *pdata = pdatas + index; + if(pdata->voff_first <= voff && voff < pdata->voff_one_past_last) + { + first_pdata = pdata; + } + } + } + } + return first_pdata; +} + +internal X64_RegCode +pe_x64_uwnd_reg_code_from_pe_gpr_reg(PE_UnwindGprRegX64 gpr_reg) +{ + X64_RegCode result = X64_RegCode_nil; + switch(gpr_reg) + { + case PE_UnwindGprRegX64_RAX:{result = X64_RegCode_rax;}break; + case PE_UnwindGprRegX64_RCX:{result = X64_RegCode_rcx;}break; + case PE_UnwindGprRegX64_RDX:{result = X64_RegCode_rdx;}break; + case PE_UnwindGprRegX64_RBX:{result = X64_RegCode_rbx;}break; + case PE_UnwindGprRegX64_RSP:{result = X64_RegCode_rsp;}break; + case PE_UnwindGprRegX64_RBP:{result = X64_RegCode_rbp;}break; + case PE_UnwindGprRegX64_RSI:{result = X64_RegCode_rsi;}break; + case PE_UnwindGprRegX64_RDI:{result = X64_RegCode_rdi;}break; + case PE_UnwindGprRegX64_R8 :{result = X64_RegCode_r8;}break; + case PE_UnwindGprRegX64_R9 :{result = X64_RegCode_r9;}break; + case PE_UnwindGprRegX64_R10:{result = X64_RegCode_r10;}break; + case PE_UnwindGprRegX64_R11:{result = X64_RegCode_r11;}break; + case PE_UnwindGprRegX64_R12:{result = X64_RegCode_r12;}break; + case PE_UnwindGprRegX64_R13:{result = X64_RegCode_r13;}break; + case PE_UnwindGprRegX64_R14:{result = X64_RegCode_r14;}break; + case PE_UnwindGprRegX64_R15:{result = X64_RegCode_r15;}break; + } + return result; +} + +//////////////////////////////// +//~ rjf: Unwinding Abstraction Implementation + +internal UWND_StepResult +pe_x64_uwnd_step(Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info, U64 tls_vaddr, void *regs_opaque, U64 *cfa_out) +{ + UWND_StepResult result = {UWND_StepStatus_Error}; + PE_X64_UWND_ModuleUnwindInfo *unwind_info = (PE_X64_UWND_ModuleUnwindInfo *)module_info->unwind_info; + X64_RegBlock *regs = (X64_RegBlock *)regs_opaque; + if(unwind_info != 0) + { + B32 done = 0; + Temp scratch = scratch_begin(0, 0); + + //////////////////////////// + //- rjf: on PE/x64, the frame base address is always RSP + // + cfa_out[0] = regs->rsp; + + //////////////////////////// + //- rjf: unpack context from rip + // + U64 rip_voff = regs->rip - module_info->base_vaddr; + PE_IntelPdata *first_pdata = pe_x64_uwnd_intel_pdata_from_voff(unwind_info, rip_voff); + + //////////////////////////// + //- rjf: pdata -> detect if in epilog + // + B32 has_pdata_and_in_epilog = 0; + U64 instruction_data_size_cap = 256; + Rng1U64 instruction_data_vaddr_range = r1u64(regs->rip, regs->rip+instruction_data_size_cap); + String8 instruction_data = {0}; + if(!done && first_pdata) + { + // NOTE(allen): There are restrictions placed on how an epilog is allowed + // to be formed (https://docs.microsoft.com/en-us/cpp/build/prolog-and-epilog?view=msvc-160) + // Here we interpret machine code directly according to the rules + // given there to determine if the code we're looking at looks like an epilog. + + //- rjf: read instruction memory + U8 *instruction_data_buffer = push_array(scratch.arena, U8, instruction_data_size_cap); + U64 instruction_data_size = memory_map_read(memory_map, instruction_data_vaddr_range, instruction_data_buffer); + instruction_data = str8(instruction_data_buffer, instruction_data_size); + if(instruction_data.size == 0) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = instruction_data_vaddr_range; + } + + //- rjf: set up parsing state + B32 is_epilog = 0; + + //- rjf: check first instruction, determine if we should keep parsing & from where + U64 read_off = 0; + B32 keep_parsing = 0; + if(!done && instruction_data.size >= 4) + { + U8 inst[4] = {0}; + str8_deserial_read(instruction_data, read_off, &inst[0], sizeof(inst), sizeof(inst)); + keep_parsing = 1; + if((inst[0] & 0xF8) == 0x48) + { + switch(inst[1]) + { + // rjf: add $nnnn,%rsp + case 0x81: + { + if(inst[0] == 0x48 && inst[2] == 0xC4) + { + read_off += 7; + } + else + { + keep_parsing = 0; + } + }break; + + // rjf: add $n,%rsp + case 0x83: + { + if(inst[0] == 0x48 && inst[2] == 0xC4) + { + read_off += 4; + } + else + { + keep_parsing = 0; + } + }break; + + // rjf: lea n(reg),%rsp + case 0x8D: + { + if((inst[0] & 0x06) == 0 && + ((inst[2] >> 3) & 0x07) == 0x04 && + (inst[2] & 0x07) != 0x04) + { + U8 imm_size = (inst[2] >> 6); + + // rjf: 1-byte immediate + if(imm_size == 1) + { + read_off += 4; + } + + // rjf: 4-byte immediate + else if(imm_size == 2) + { + read_off += 7; + } + + // rjf: other case + else + { + keep_parsing = 0; + } + } + else + { + keep_parsing = 0; + } + }break; + } + } + } + + //- rjf: continue parsing instructions + for(;!done && keep_parsing;) + { + // rjf: read next instruction byte + B32 inst_byte_good = 1; + U8 inst_byte = 0; + if(str8_deserial_read_struct(instruction_data, read_off, &inst_byte) == 0) + { + inst_byte_good = 0; + keep_parsing = 0; + } + read_off += 1; + + // rjf: when (... I don't know ...) rely on the next byte + B32 check_inst_byte_good = inst_byte_good; + U8 check_inst_byte = inst_byte; + if(inst_byte_good && (inst_byte & 0xF0) == 0x40) + { + if(str8_deserial_read_struct(instruction_data, read_off, &check_inst_byte) == 0) + { + check_inst_byte_good = 0; + keep_parsing = 0; + } + read_off += 1; + } + + // rjf: check instruction byte + if(check_inst_byte_good) + { + switch(check_inst_byte) + { + default:{keep_parsing = 0;}break; + + // rjf: pop + case 0x58:case 0x59:case 0x5A:case 0x5B: + case 0x5C:case 0x5D:case 0x5E:case 0x5F: + { + }break; + + // rjf: ret + case 0xC2: + case 0xC3: + { + is_epilog = 1; + keep_parsing = 0; + }break; + + // rjf: jmp nnnn + case 0xE9: + { + // + // TODO(rjf): old code here was reading the jump's immediate value, applying the delta, + // and continued parsing if the jump destination address fell within the same pdata. + // but from what I can tell, the only legal usage of a jump within an epilog is to end + // the epilog, and jump to another function; if the jump stays in the function, it is + // an illegal epilog sequence. so, I've instead just changed this to treat any jmps + // which escape the pdata, and also end the pdata, as marking the epilog. + // + // I am not sure if this is correct w.r.t. chained pdatas, however, since presumably + // a jump could also land elsewhere in the same function - we may need to also look for + // stack pointer modifications etc. - those together with a jump in this context may + // let us tell the difference. + // + S32 imm = 0; + B32 imm_good = (str8_deserial_read_struct(instruction_data, read_off, &imm) == sizeof(imm)); + U64 next_vaddr = (instruction_data_vaddr_range.min + read_off + sizeof(imm) + imm); + U64 next_voff = (next_vaddr - module_info->base_vaddr); + if((next_voff < first_pdata->voff_first || first_pdata->voff_one_past_last <= next_voff) && + read_off + sizeof(imm) == first_pdata->voff_one_past_last) + { + is_epilog = 1; + } + keep_parsing = 0; + }break; + + // rjf: rep; ret (for amd64 prediction bug) + case 0xF3: + { + U8 next_inst_byte = 0; + B32 next_inst_byte_good = (str8_deserial_read_struct(instruction_data, read_off, &next_inst_byte) == sizeof(next_inst_byte)); + read_off += 1; + keep_parsing = 0; + if(next_inst_byte_good) + { + is_epilog = (next_inst_byte == 0xC3); + } + }break; + } + } + } + has_pdata_and_in_epilog = is_epilog; + } + + //////////////////////////// + //- rjf: pdata & in epilog -> epilog unwind + // + if(!done && first_pdata && has_pdata_and_in_epilog) + { + U64 read_off = 0; + for(B32 keep_parsing = 1; !done && keep_parsing;) + { + //- rjf: assume no more parsing after this instruction + keep_parsing = 0; + + //- rjf: read next instruction byte + U8 inst_byte = 0; + if(str8_deserial_read_struct(instruction_data, read_off, &inst_byte) == 0) + { + done = 1; + } + read_off += 1; + + //- rjf: extract rex from instruction byte + U8 rex = 0; + if((inst_byte & 0xF0) == 0x40) + { + rex = inst_byte & 0xF; // rex prefix + if(str8_deserial_read_struct(instruction_data, read_off, &inst_byte) == 0) + { + done = 1; + } + read_off += 1; + } + + //- rjf: parse remainder of instruction + switch(inst_byte) + { + // rjf: pop + case 0x58:case 0x59:case 0x5A:case 0x5B: + case 0x5C:case 0x5D:case 0x5E:case 0x5F: + { + // rjf: read value at rsp + U64 sp = regs->rsp; + U64 value = 0; + if(memory_map_read_struct(memory_map, sp, &value) != sizeof(value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp, sp+sizeof(value)); + } + + // rjf: modify registers + if(!done) + { + PE_UnwindGprRegX64 gpr_reg = (inst_byte - 0x58) + (rex & 1)*8; + X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg); + Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; + U64 *reg_ptr = (U64 *)((U8 *)regs + reg_rng.min); + reg_ptr[0] = value; + regs->rsp = sp + 8; + } + + // rjf: not a final instruction, so keep parsing + keep_parsing = 1; + }break; + + // rjf: add $nnnn,%rsp + case 0x81: + { + // rjf: skip one byte (we already know what it is in this scenario) + read_off += 1; + + // rjf: read the 4-byte immediate + S32 imm = 0; + B32 imm_is_good = (str8_deserial_read_struct(instruction_data, read_off, &imm) == sizeof(imm)); + if(!imm_is_good) + { + done = 1; + } + read_off += sizeof(imm); + + // rjf: update stack pointer + regs->rsp = (U64)(regs->rsp + imm); + + // rjf: not a final instruction; keep parsing + keep_parsing = 1; + }break; + + // rjf: add $n,%rsp + case 0x83: + { + // rjf: skip one byte (we already know what it is in this scenario) + read_off += 1; + + // rjf: read the 1-byte immediate + S8 imm = 0; + B32 imm_is_good = (str8_deserial_read_struct(instruction_data, read_off, &imm) == sizeof(imm)); + if(!imm_is_good) + { + done = 1; + } + read_off += sizeof(imm); + + // rjf: update stack pointer + regs->rsp = (U64)(regs->rsp + imm); + + // rjf: not a final instruction; keep parsing + keep_parsing = 1; + }break; + + // rjf: lea imm8/imm32,$rsp + case 0x8D: + { + // rjf: read source register + U8 modrm = 0; + B32 modrm_is_good = (str8_deserial_read_struct(instruction_data, read_off, &modrm) == sizeof(modrm)); + if(!modrm_is_good) + { + done = 1; + } + read_off += 1; + + // rjf: unpack register value + PE_UnwindGprRegX64 gpr_reg = (modrm & 7) + (rex & 1)*8; + X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(gpr_reg); + Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; + U64 *reg_ptr = (U64 *)((U8 *)regs + reg_rng.min); + U64 reg_value = reg_ptr[0]; + + // rjf: read immediate + S32 imm = 0; + if(!done) + { + // rjf: read 1-byte immediate + if((modrm >> 6) == 1) + { + S8 imm8 = 0; + B32 imm8_is_good = (str8_deserial_read_struct(instruction_data, read_off, &imm8) == sizeof(imm8)); + if(!imm8_is_good) + { + done = 1; + } + read_off += 1; + imm = (S32)imm8; + } + + // rjf: read 4-byte immediate + else + { + B32 imm32_is_good = (str8_deserial_read_struct(instruction_data, read_off, &imm) == sizeof(imm)); + done = !imm32_is_good; + read_off += sizeof(imm); + } + } + + // rjf: update stack pointer + if(!done) + { + regs->rsp = (U64)(reg_value + imm); + } + + // rjf: not a final instruction; keep parsing + keep_parsing = 1; + }break; + + // rjf: ret $nn + case 0xC2: + { + // rjf: read new ip + U64 sp = regs->rsp; + U64 new_ip = 0; + if(memory_map_read_struct(memory_map, sp, &new_ip) != sizeof(new_ip)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp, sp+sizeof(new_ip)); + } + + // rjf: read 2-byte immediate & advance stack pointer + U16 imm = 0; + if(!done) + { + done = (str8_deserial_read_struct(instruction_data, read_off, &imm) < sizeof(imm)); + } + U64 new_sp = sp + 8 + imm; + + // rjf: commit registers + if(!done) + { + regs->rip = new_ip; + regs->rsp = new_sp; + } + }break; + + // rjf: ret / rep; ret + case 0xF3: + { + // Assert(!"Hit me!"); + }break; + case 0xC3: + { + // rjf: read new ip + U64 sp = regs->rsp; + U64 new_ip = 0; + if(memory_map_read_struct(memory_map, sp, &new_ip) != sizeof(new_ip)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp, sp+sizeof(new_ip)); + } + + // rjf: advance stack pointer + U64 new_sp = sp + 8; + + // rjf: commit registers + if(!done) + { + regs->rip = new_ip; + regs->rsp = new_sp; + } + }break; + + // rjf: jmp nnnn + case 0xE9: + { + // Assert(!"Hit Me"); + // TODO(allen): general idea: read the immediate, move the ip, leave the sp, done + // we don't have any cases to exercise this right now. no guess implementation! + }break; + + // rjf: Sjmp n + case 0xEB: + { + // Assert(!"Hit Me"); + // TODO(allen): general idea: read the immediate, move the ip, leave the sp, done + // we don't have any cases to exercise this right now. no guess implementation! + }break; + } + } + } + + ////////////////////////////// + //- rjf: pdata & not in epilog -> xdata unwind + // + B32 xdata_unwind_did_machframe = 0; + if(!done && first_pdata && !has_pdata_and_in_epilog) + { + //- rjf: get frame reg + B32 bad_frame_reg_info = 0; + X64_RegCode frame_reg_code = X64_RegCode_rsp; + U64 frame_off = 0; + { + // rjf: read unwind info header + U64 unwind_info_off = first_pdata->voff_unwind_info; + PE_UnwindInfo unwind_info = {0}; + if(memory_map_read_struct(memory_map, module_info->base_vaddr+unwind_info_off, &unwind_info) != sizeof(unwind_info)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(module_info->base_vaddr+unwind_info_off, module_info->base_vaddr+unwind_info_off+sizeof(unwind_info));; + } + + // rjf: unpack header + U32 frame_reg_id = PE_UNWIND_INFO_REG_FROM_FRAME(unwind_info.frame); + U64 frame_off_val = PE_UNWIND_INFO_OFF_FROM_FRAME(unwind_info.frame); + if(frame_reg_id != 0) + { + frame_reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(frame_reg_id); + bad_frame_reg_info = (frame_reg_code == X64_RegCode_nil); // NOTE(rjf): frame_reg should never be 0 at this point, in valid exe + } + frame_off = frame_off_val; + } + + //- rjf: iterate pdatas, apply opcodes + PE_IntelPdata *last_pdata = 0; + PE_IntelPdata *pdata = first_pdata; + if(!done && !bad_frame_reg_info) for(B32 keep_parsing = 1; !done && keep_parsing && pdata != last_pdata;) + { + //- rjf: read unwind info + U64 unwind_info_off = pdata->voff_unwind_info; + PE_UnwindInfo unwind_info = {0}; + if(memory_map_read_struct(memory_map, module_info->base_vaddr+unwind_info_off, &unwind_info) != sizeof(unwind_info)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(module_info->base_vaddr+unwind_info_off, module_info->base_vaddr+unwind_info_off+sizeof(unwind_info));; + } + + //- rjf: read unwind codes + PE_UnwindCode *unwind_codes = push_array(scratch.arena, PE_UnwindCode, unwind_info.codes_num); + Rng1U64 unwind_codes_vaddr_range = r1u64(module_info->base_vaddr+unwind_info_off+sizeof(unwind_info), + module_info->base_vaddr+unwind_info_off+sizeof(unwind_info)+sizeof(PE_UnwindCode)*unwind_info.codes_num); + if(memory_map_read(memory_map, unwind_codes_vaddr_range, unwind_codes) != dim_1u64(unwind_codes_vaddr_range)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = unwind_codes_vaddr_range;; + } + + //- rjf: unpack frame base + U64 frame_base = regs->rsp; + if(frame_reg_code != X64_RegCode_nil) + { + Rng1U16 frame_reg_rng = x64_reg_code_rng_table[frame_reg_code]; + U64 raw_frame_base = *(U64 *)((U8 *)regs + frame_reg_rng.min); + U64 adjusted_frame_base = raw_frame_base - frame_off*16; + frame_base = adjusted_frame_base; + } + + //- rjf: apply opcodes + PE_UnwindCode *code_ptr = unwind_codes; + PE_UnwindCode *code_opl = unwind_codes + unwind_info.codes_num; + for(PE_UnwindCode *next_code_ptr = 0; code_ptr < code_opl; code_ptr = next_code_ptr) + { + // rjf: unpack opcode info + U32 op_code = PE_UNWIND_OPCODE_FROM_FLAGS(code_ptr->flags); + U32 op_info = PE_UNWIND_INFO_FROM_FLAGS(code_ptr->flags); + U32 slot_count = pe_slot_count_from_unwind_op_code(op_code); + if(op_code == PE_UnwindOpCode_ALLOC_LARGE && op_info == 1) + { + slot_count += 1; + } + + // rjf: detect bad slot counts + if(slot_count == 0 || code_ptr+slot_count > code_opl) + { + keep_parsing = 0; + done = 1; + break; + } + + // rjf: set next op code pointer + next_code_ptr = code_ptr + slot_count; + + // rjf: interpret this op code + U64 code_voff = pdata->voff_first + code_ptr->off_in_prolog; + if(code_voff <= rip_voff) + { + switch(op_code) + { + case PE_UnwindOpCode_PUSH_NONVOL: + { + // rjf: read value from stack pointer + U64 rsp = regs->rsp; + U64 value = 0; + if(memory_map_read_struct(memory_map, rsp, &value) != sizeof(value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(rsp, rsp+sizeof(value)); + } + + // rjf: commit registers + if(!done) + { + X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(op_info); + Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; + *(U64 *)((U8 *)regs + reg_rng.min) = value; + regs->rsp = rsp + 8; + } + }break; + + case PE_UnwindOpCode_ALLOC_LARGE: + { + // rjf: read alloc size + U64 size = 0; + if(op_info == 0) + { + size = code_ptr[1].u16*8; + } + else if(op_info == 1) + { + size = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); + } + else + { + done = 1; + } + + // rjf: advance stack pointer + if(!done) + { + regs->rsp += size; + } + }break; + + case PE_UnwindOpCode_ALLOC_SMALL: + { + // rjf: advance stack pointer + regs->rsp += op_info*8 + 8; + }break; + + case PE_UnwindOpCode_SET_FPREG: + { + // rjf: put stack pointer back to the frame base + regs->rsp = frame_base; + }break; + + case PE_UnwindOpCode_SAVE_NONVOL: + { + // rjf: read value from frame base + U64 off = code_ptr[1].u16*8; + U64 addr = frame_base + off; + U64 value = 0; + if(memory_map_read_struct(memory_map, addr, &value) != sizeof(value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(addr, addr+sizeof(value)); + } + + // rjf: commit to register + if(!done) + { + X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(op_info); + Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; + *(U64 *)((U8 *)regs + reg_rng.min) = value; + } + }break; + + case PE_UnwindOpCode_SAVE_NONVOL_FAR: + { + // rjf: read value from frame base + U64 off = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); + U64 addr = frame_base + off; + U64 value = 0; + if(memory_map_read_struct(memory_map, addr, &value) != sizeof(value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(addr, addr+sizeof(value)); + } + + // rjf: commit to register + if(!done) + { + X64_RegCode reg_code = pe_x64_uwnd_reg_code_from_pe_gpr_reg(op_info); + Rng1U16 reg_rng = x64_reg_code_rng_table[reg_code]; + *(U64 *)((U8 *)regs + reg_rng.min) = value; + } + }break; + + case PE_UnwindOpCode_EPILOG: + { + keep_parsing = 1; + }break; + + case PE_UnwindOpCode_SPARE_CODE: + { + // TODO(rjf): ??? + keep_parsing = 0; + done = 1; + }break; + + case PE_UnwindOpCode_SAVE_XMM128: + { + // rjf: read new register values + U8 buf[16]; + U64 off = code_ptr[1].u16*16; + U64 addr = frame_base + off; + Rng1U64 read_vaddr_range = r1u64(addr, addr+sizeof(buf)); + if(memory_map_read(memory_map, read_vaddr_range, buf) != sizeof(buf)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = read_vaddr_range; + } + + // rjf: commit to register + if(!done) + { + void *xmm_reg = (®s->zmm0) + op_info; + MemoryCopy(xmm_reg, buf, sizeof(buf)); + } + }break; + + case PE_UnwindOpCode_SAVE_XMM128_FAR: + { + // rjf: read new register values + U8 buf[16]; + U64 off = code_ptr[1].u16 + ((U32)code_ptr[2].u16 << 16); + U64 addr = frame_base + off; + Rng1U64 read_vaddr_range = r1u64(addr, addr+sizeof(buf)); + if(memory_map_read(memory_map, read_vaddr_range, buf) != sizeof(buf)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = read_vaddr_range; + } + + // rjf: commit to register + if(!done) + { + void *xmm_reg = (®s->zmm0) + op_info; + MemoryCopy(xmm_reg, buf, sizeof(buf)); + } + }break; + + case PE_UnwindOpCode_PUSH_MACHFRAME: + { + // NOTE(rjf): this was found by stepping through kernel code after an exception was + // thrown, encountered in the exception_stepping_tests (after the throw) in mule_main + if(op_info > 1) + { + done = 1; + } + + // rjf: unpack stack pointer + U64 sp_og = regs->rsp; + U64 sp_adj = sp_og; + if(op_info == 1) + { + sp_adj += 8; + } + U64 sp_after_ip = sp_adj + 8; + U64 sp_after_ss = sp_after_ip + 8; + U64 sp_after_rflags = sp_after_ss + 8; + + // rjf: read new ip value + U64 ip_value = 0; + if(!done && memory_map_read_struct(memory_map, sp_adj, &ip_value) != sizeof(ip_value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp_adj, sp_adj + sizeof(ip_value)); + } + + // rjf: read new ss value + U16 ss_value = 0; + if(!done && memory_map_read_struct(memory_map, sp_after_ip, &ss_value) != sizeof(ss_value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp_after_ip, sp_after_ip + sizeof(ss_value)); + } + + // rjf: read new rflags value + U64 rflags_value = 0; + if(!done && memory_map_read_struct(memory_map, sp_after_ss, &rflags_value) != sizeof(rflags_value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp_after_ss, sp_after_ss + sizeof(rflags_value)); + } + + // rjf: read new sp value + U64 sp_value = 0; + if(!done && memory_map_read_struct(memory_map, sp_after_rflags, &sp_value) != sizeof(sp_value)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(sp_after_rflags, sp_after_rflags + sizeof(sp_value)); + } + + // rjf: commit registers + if(!done) + { + regs->rip = ip_value; + regs->ss = ss_value; + regs->rflags = rflags_value; + regs->rsp = sp_value; + } + + // rjf: mark machine frame + xdata_unwind_did_machframe = !done; + }break; + } + } + } + + //- rjf: iterate to next pdata + if(keep_parsing) + { + U32 flags = PE_UNWIND_INFO_FLAGS_FROM_HDR(unwind_info.header); + if(!(flags & PE_UnwindInfoFlag_CHAINED)) + { + break; + } + U64 code_count_rounded = AlignPow2(unwind_info.codes_num, sizeof(PE_UnwindCode)); + U64 code_size = code_count_rounded*sizeof(PE_UnwindCode); + U64 chained_pdata_off = unwind_info_off + sizeof(PE_UnwindInfo) + code_size; + last_pdata = pdata; + pdata = push_array(scratch.arena, PE_IntelPdata, 1); + if(memory_map_read_struct(memory_map, module_info->base_vaddr+chained_pdata_off, pdata) != sizeof(*pdata)) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = r1u64(module_info->base_vaddr+chained_pdata_off, module_info->base_vaddr+chained_pdata_off+sizeof(*pdata)); + } + } + } + } + + ////////////////////////////// + //- rjf: no pdata, or didn't do machframe in xdata unwind -> module-less unwind + // + if(!done && (!first_pdata || (!has_pdata_and_in_epilog && !xdata_unwind_did_machframe))) + { + result = uwnd_step_moduleless(arch, memory_map, regs); + done = (result.status != UWND_StepStatus_Good); + } + + ////////////////////////////// + //- rjf: if not done -> successful step + // + if(!done) + { + result.status = UWND_StepStatus_Good; + } + + scratch_end(scratch); + } + return result; +} diff --git a/src/pe/x64/unwind/pe_x64_unwind.h b/src/pe/x64/unwind/pe_x64_unwind.h new file mode 100644 index 00000000..152ba472 --- /dev/null +++ b/src/pe/x64/unwind/pe_x64_unwind.h @@ -0,0 +1,28 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef PE_X64_UNWIND_H +#define PE_X64_UNWIND_H + +//////////////////////////////// +//~ rjf: Module Unwind Info Type + +typedef struct PE_X64_UWND_ModuleUnwindInfo PE_X64_UWND_ModuleUnwindInfo; +struct PE_X64_UWND_ModuleUnwindInfo +{ + PE_IntelPdata *pdatas; + U64 pdatas_count; +}; + +//////////////////////////////// +//~ rjf: Helpers + +internal PE_IntelPdata *pe_x64_uwnd_intel_pdata_from_voff(PE_X64_UWND_ModuleUnwindInfo *unwind_info, U64 voff); +internal X64_RegCode pe_x64_uwnd_reg_code_from_pe_gpr_reg(PE_UnwindGprRegX64 gpr_reg); + +//////////////////////////////// +//~ rjf: Unwinding Abstraction Implementation + +internal UWND_StepResult pe_x64_uwnd_step(Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info, U64 tls_vaddr, void *regs_opaque, U64 *cfa_out); + +#endif // PE_X64_UNWIND_H diff --git a/src/radbin/generated/radbin.meta.c b/src/radbin/generated/radbin.meta.c index 11d620e7..022956eb 100644 --- a/src/radbin/generated/radbin.meta.c +++ b/src/radbin/generated/radbin.meta.c @@ -1,22 +1,22 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 rb_file_format_display_name_table[10] = -{ -{0}, -str8_lit_comp("PDB"), -str8_lit_comp("PE"), -str8_lit_comp("COFF (OBJ)"), -str8_lit_comp("COFF (Big OBJ)"), -str8_lit_comp("COFF (Archive)"), -str8_lit_comp("COFF (Thin Archive)"), -str8_lit_comp("ELF32"), -str8_lit_comp("ELF64"), -str8_lit_comp("RDI"), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 rb_file_format_display_name_table[10] = +{ +{0}, +str8_lit_comp("PDB"), +str8_lit_comp("PE"), +str8_lit_comp("COFF (OBJ)"), +str8_lit_comp("COFF (Big OBJ)"), +str8_lit_comp("COFF (Archive)"), +str8_lit_comp("COFF (Thin Archive)"), +str8_lit_comp("ELF32"), +str8_lit_comp("ELF64"), +str8_lit_comp("RDI"), +}; + +C_LINKAGE_END + diff --git a/src/radbin/generated/radbin.meta.h b/src/radbin/generated/radbin.meta.h index 8f8260de..bcfda7d1 100644 --- a/src/radbin/generated/radbin.meta.h +++ b/src/radbin/generated/radbin.meta.h @@ -1,29 +1,29 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef RADBIN_META_H -#define RADBIN_META_H - -typedef enum RB_FileFormat -{ -RB_FileFormat_Null, -RB_FileFormat_PDB, -RB_FileFormat_PE, -RB_FileFormat_COFF_OBJ, -RB_FileFormat_COFF_BigOBJ, -RB_FileFormat_COFF_Archive, -RB_FileFormat_COFF_ThinArchive, -RB_FileFormat_ELF32, -RB_FileFormat_ELF64, -RB_FileFormat_RDI, -RB_FileFormat_COUNT, -} RB_FileFormat; - -C_LINKAGE_BEGIN -extern String8 rb_file_format_display_name_table[10]; - -C_LINKAGE_END - -#endif // RADBIN_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RADBIN_META_H +#define RADBIN_META_H + +typedef enum RB_FileFormat +{ +RB_FileFormat_Null, +RB_FileFormat_PDB, +RB_FileFormat_PE, +RB_FileFormat_COFF_OBJ, +RB_FileFormat_COFF_BigOBJ, +RB_FileFormat_COFF_Archive, +RB_FileFormat_COFF_ThinArchive, +RB_FileFormat_ELF32, +RB_FileFormat_ELF64, +RB_FileFormat_RDI, +RB_FileFormat_COUNT, +} RB_FileFormat; + +C_LINKAGE_BEGIN +extern String8 rb_file_format_display_name_table[10]; + +C_LINKAGE_END + +#endif // RADBIN_META_H diff --git a/src/radbin/radbin.c b/src/radbin/radbin.c index 9274a100..a89b0fb8 100644 --- a/src/radbin/radbin.c +++ b/src/radbin/radbin.c @@ -13,7 +13,7 @@ internal void rb_entry_point(CmdLine *cmdline) { Temp scratch = scratch_begin(0, 0); - U64 threads_count = os_get_system_info()->logical_processor_count; + U64 threads_count = get_system_info()->logical_processor_count; String8 threads_count_from_cmdline_string = cmd_line_string(cmdline, str8_lit("thread_count")); if(threads_count_from_cmdline_string.size != 0) { @@ -70,9 +70,22 @@ rb_thread_entry_point(void *p) // ProfScope("analyze & load command line input files") if(lane_idx() == 0) { + String8 working_directory = get_current_path(arena); String8List input_file_path_tasks = str8_list_copy(arena, &cmdline->inputs); for(String8Node *n = input_file_path_tasks.first; n != 0; n = n->next) { + ////////////////////////// + //- rjf: possibly relative -> absolute path + // + String8 input_file_path = n->string; + { + PathStyle path_style = path_style_from_str8(n->string); + if(path_style == PathStyle_Relative) + { + input_file_path = path_normalized_from_string(arena, str8f(arena, "%S/%S", working_directory, n->string)); + } + } + ////////////////////////// //- rjf: do thin analysis of file // @@ -80,14 +93,14 @@ rb_thread_entry_point(void *p) RB_FileFormatFlags file_format_flags = 0; ProfScope("do thin analysis of file") { - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, n->string); - FileProperties props = os_properties_from_file(file); + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, input_file_path); + FileProperties props = properties_from_file(file); //- rjf: PDB magic -> PDB input if(file_format == RB_FileFormat_Null) { U8 msf20_magic_maybe[sizeof(msf_msf20_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); + file_read(file, r1u64(0, sizeof(msf20_magic_maybe)), msf20_magic_maybe); if(MemoryMatch(msf20_magic_maybe, msf_msf20_magic, sizeof(msf20_magic_maybe))) { file_format = RB_FileFormat_PDB; @@ -96,7 +109,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { U8 msf70_magic_maybe[sizeof(msf_msf70_magic)] = {0}; - os_file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); + file_read(file, r1u64(0, sizeof(msf70_magic_maybe)), msf70_magic_maybe); if(MemoryMatch(msf70_magic_maybe, msf_msf70_magic, sizeof(msf70_magic_maybe))) { file_format = RB_FileFormat_PDB; @@ -107,11 +120,11 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { PE_DosHeader dos_header_maybe = {0}; - os_file_read_struct(file, 0, &dos_header_maybe); + file_read_struct(file, 0, &dos_header_maybe); if(dos_header_maybe.magic == PE_DOS_MAGIC) { U32 pe_magic_maybe = 0; - os_file_read_struct(file, dos_header_maybe.coff_file_offset, &pe_magic_maybe); + file_read_struct(file, dos_header_maybe.coff_file_offset, &pe_magic_maybe); if(pe_magic_maybe == PE_MAGIC) { file_format = RB_FileFormat_PE; @@ -123,7 +136,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { U8 coff_archive_sig_maybe[sizeof(g_coff_archive_sig)] = {0}; - os_file_read(file, r1u64(0, sizeof(coff_archive_sig_maybe)), coff_archive_sig_maybe); + file_read(file, r1u64(0, sizeof(coff_archive_sig_maybe)), coff_archive_sig_maybe); if(MemoryMatch(coff_archive_sig_maybe, g_coff_archive_sig, sizeof(g_coff_archive_sig))) { file_format = RB_FileFormat_COFF_Archive; @@ -132,7 +145,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { U8 coff_thin_archive_sig_maybe[sizeof(g_coff_thin_archive_sig)] = {0}; - os_file_read(file, r1u64(0, sizeof(coff_thin_archive_sig_maybe)), coff_thin_archive_sig_maybe); + file_read(file, r1u64(0, sizeof(coff_thin_archive_sig_maybe)), coff_thin_archive_sig_maybe); if(MemoryMatch(coff_thin_archive_sig_maybe, g_coff_thin_archive_sig, sizeof(g_coff_thin_archive_sig))) { file_format = RB_FileFormat_COFF_ThinArchive; @@ -143,7 +156,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { COFF_BigObjHeader header_maybe = {0}; - os_file_read_struct(file, 0, &header_maybe); + file_read_struct(file, 0, &header_maybe); if(header_maybe.sig1 == COFF_MachineType_Unknown && header_maybe.sig2 == max_U16 && header_maybe.version >= 2 && @@ -156,7 +169,7 @@ rb_thread_entry_point(void *p) { Temp scratch = scratch_begin(&arena, 1); COFF_FileHeader header_maybe = {0}; - os_file_read_struct(file, 0, &header_maybe); + file_read_struct(file, 0, &header_maybe); U64 section_count = header_maybe.section_count; U64 section_hdr_opl_off = sizeof(header_maybe) + section_count*sizeof(COFF_SectionHeader); @@ -189,7 +202,7 @@ rb_thread_entry_point(void *p) if(props.size >= section_hdr_opl_off) { COFF_SectionHeader *section_hdrs = push_array(scratch.arena, COFF_SectionHeader, section_count); - os_file_read(file, r1u64(sizeof(header_maybe), sizeof(header_maybe) + section_count*sizeof(COFF_SectionHeader)), section_hdrs); + file_read(file, r1u64(sizeof(header_maybe), sizeof(header_maybe) + section_count*sizeof(COFF_SectionHeader)), section_hdrs); B32 section_ranges_valid = 1; for EachIndex(section_hdr_idx, section_count) { @@ -239,7 +252,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { U8 identifier_maybe[ELF_Identifier_Max] = {0}; - os_file_read(file, r1u64(0, sizeof(identifier_maybe)), identifier_maybe); + file_read(file, r1u64(0, sizeof(identifier_maybe)), identifier_maybe); B32 is_elf_magic = (identifier_maybe[ELF_Identifier_Mag0] == 0x7f && identifier_maybe[ELF_Identifier_Mag1] == 'E' && identifier_maybe[ELF_Identifier_Mag2] == 'L' && @@ -254,14 +267,14 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_Null) { RDI_Header rdi_header_maybe = {0}; - os_file_read_struct(file, 0, &rdi_header_maybe); + file_read_struct(file, 0, &rdi_header_maybe); if(rdi_header_maybe.magic == RDI_MAGIC_CONSTANT) { file_format = RB_FileFormat_RDI; } } - os_file_close(file); + file_close(file); } ////////////////////////// @@ -279,10 +292,19 @@ rb_thread_entry_point(void *p) ////////////////////////// //- rjf: load recognized files // + File file = {0}; + FileMap file_map = {0}; String8 file_data = {0}; if(file_format != RB_FileFormat_Null) ProfScope("load recognized file") { - file_data = os_data_from_file_path(arena, n->string); + file = file_open(AccessFlag_ShareRead|AccessFlag_Read, input_file_path); + file_map = file_map_open(AccessFlag_Read, file); + FileProperties props = properties_from_file(file); + void *base = file_map_view_open(file_map, AccessFlag_Read, r1u64(0, props.size)); + if(base != 0) + { + file_data = str8((U8 *)base, props.size); + } } ////////////////////////// @@ -291,7 +313,7 @@ rb_thread_entry_point(void *p) if(file_format == RB_FileFormat_PE) ProfScope("PE file => generate task for PDB") { Temp scratch = scratch_begin(&arena, 1); - String8 file_path = n->string; + String8 file_path = input_file_path; PE_BinInfo pe_bin_info = pe_bin_info_from_data(scratch.arena, file_data); String8 raw_debug_dir = str8_substr(file_data, pe_bin_info.data_dir_franges[PE_DataDirectoryIndex_DEBUG]); PE_DebugInfoList debug_dir = pe_debug_info_list_from_raw_debug_dir(scratch.arena, file_data, raw_debug_dir); @@ -300,7 +322,13 @@ rb_thread_entry_point(void *p) if(n->v.path.size != 0) { log_infof("Found reference to separate debug info file in %S (%S) at %S\n", file_path, rb_file_format_display_name_table[file_format], n->v.path); - str8_list_push(arena, &input_file_path_tasks, n->v.path); + String8 ext_path_absolute = n->v.path; + PathStyle ext_path_style = path_style_from_str8(ext_path_absolute); + if(ext_path_style == PathStyle_Relative) + { + ext_path_absolute = path_absolute_dst_from_relative_dst_src(arena, ext_path_absolute, str8_chop_last_slash(input_file_path)); + } + str8_list_push(arena, &input_file_path_tasks, ext_path_absolute); } } scratch_end(scratch); @@ -318,7 +346,13 @@ rb_thread_entry_point(void *p) if(debug_link.path.size != 0) { log_infof("Found reference to separate debug info file in %S (%S) at %S\n", n->string, rb_file_format_display_name_table[file_format], debug_link.path); - str8_list_push(arena, &input_file_path_tasks, debug_link.path); + String8 ext_path_absolute = debug_link.path; + PathStyle ext_path_style = path_style_from_str8(ext_path_absolute); + if(ext_path_style == PathStyle_Relative) + { + ext_path_absolute = path_absolute_dst_from_relative_dst_src(arena, ext_path_absolute, str8_chop_last_slash(input_file_path)); + } + str8_list_push(arena, &input_file_path_tasks, ext_path_absolute); } scratch_end(scratch); } @@ -342,6 +376,24 @@ rb_thread_entry_point(void *p) scratch_end(scratch); } + ////////////////////////// + //- rjf: COFF OBJ => check if contains DWARF + // + if(file_format == RB_FileFormat_COFF_OBJ || file_format == RB_FileFormat_COFF_BigOBJ) + { + Temp scratch = scratch_begin(&arena, 1); + COFF_FileHeaderInfo coff_obj = coff_file_header_info_from_data(file_data); + String8 string_table = str8_substr(file_data, coff_obj.string_table_range); + U64 section_count = coff_obj.section_count_no_null; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(file_data, coff_obj.section_table_range).str; + if(dw_is_dwarf_present_coff_section_table(string_table, section_count, section_table)) + { + log_infof("DWARF data detected in %S (%S)\n", n->string, rb_file_format_display_name_table[file_format]); + file_format_flags |= RB_FileFormatFlag_HasDWARF; + } + scratch_end(scratch); + } + ////////////////////////// //- rjf: ELF => check if contains DWARF // @@ -358,6 +410,28 @@ rb_thread_entry_point(void *p) scratch_end(scratch); } + ////////////////////////// + //- rjf: ELF => check if contains EH frame info + // + if(file_format == RB_FileFormat_ELF32 || + file_format == RB_FileFormat_ELF64) + { + Temp scratch = scratch_begin(&arena, 1); + ELF_Bin elf_bin = elf_bin_from_data(scratch.arena, file_data); + for EachIndex(sect_idx, elf_bin.hdr.e_shnum) + { + ELF_Shdr64 *shdr = &elf_bin.shdrs.v[sect_idx]; + String8 name = elf_name_from_shdr64(file_data, &elf_bin, shdr); + if(str8_match(name, str8_lit(".eh_frame_hdr"), 0)) + { + log_infof("EH frame data detected in %S (%S)\n", n->string, rb_file_format_display_name_table[file_format]); + file_format_flags |= RB_FileFormatFlag_HasEhFrame; + break; + } + } + scratch_end(scratch); + } + ////////////////////////// //- rjf: push to list // @@ -365,7 +439,9 @@ rb_thread_entry_point(void *p) RB_File *f = push_array(arena, RB_File, 1); f->format = file_format; f->format_flags = file_format_flags; - f->path = n->string; + f->path = input_file_path; + f->file = file; + f->file_map = file_map; f->data = file_data; RB_FileNode *file_n = push_array(arena, RB_FileNode, 1); file_n->v = f; @@ -402,6 +478,7 @@ rb_thread_entry_point(void *p) OutputKind_RDI, OutputKind_Dump, OutputKind_Breakpad, + OutputKind_VOff2Line, OutputKind_COUNT } OutputKind; @@ -412,10 +489,11 @@ rb_thread_entry_point(void *p) } output_kind_info[] = { - {str8_lit_comp(""), str8_lit_comp("")}, - {str8_lit_comp("rdi"), str8_lit_comp("RAD Debug Info (.rdi) Conversion")}, - {str8_lit_comp("dump"), str8_lit_comp("Textual Dumping")}, - {str8_lit_comp("breakpad"), str8_lit_comp("Breakpad Debug Info Conversion")}, + {str8_lit_comp(""), str8_lit_comp("")}, + {str8_lit_comp("rdi"), str8_lit_comp("RAD Debug Info (.rdi) Conversion")}, + {str8_lit_comp("dump"), str8_lit_comp("Textual Dumping")}, + {str8_lit_comp("breakpad"), str8_lit_comp("Breakpad Debug Info Conversion")}, + {str8_lit_comp("voff2line"), str8_lit_comp("Virtual Offset -> Line Mapping")}, }; OutputKind output_kind = OutputKind_Null; String8 output_path = cmd_line_string(cmdline, str8_lit("out")); @@ -519,6 +597,9 @@ rb_thread_entry_point(void *p) fprintf(stderr, "--breakpad Specifies that the utility should convert debug information\n"); fprintf(stderr, " data to the textual Breakpad format.\n\n"); + fprintf(stderr, "--voff2line Specifies that the utility should map a virtual offset to a\n"); + fprintf(stderr, " line.\n\n"); + fprintf(stderr, "--out: Specifies the path to which output data should be written. If\n"); fprintf(stderr, " not specified, the utility will choose a fallback. If dumping\n"); fprintf(stderr, " textual contents, the utility will write to `stdout`. If\n"); @@ -535,10 +616,11 @@ rb_thread_entry_point(void *p) }break; //////////////////////////// - //- rjf: RDI, Breakpad -> conversion based on inputs + //- rjf: RDI, Breakpad, Debug Info Operations -> conversion based on inputs // case OutputKind_RDI: case OutputKind_Breakpad: + case OutputKind_VOff2Line: { //- rjf: no inputs => help if(lane_idx() == 0 && cmdline->inputs.node_count == 0) switch(output_kind) @@ -572,7 +654,13 @@ rb_thread_entry_point(void *p) { fprintf(stderr, "All input files specified on the command line will be dumped. The following\n"); fprintf(stderr, "formats are currently supported: PE, COFF, RDI, and ELF\n\n"); - } + }break; + case OutputKind_VOff2Line: + { + fprintf(stderr, "ARGUMENTS\n\n"); + fprintf(stderr, "--voff: Specifies the virtual offset to map to a source line.\n"); + fprintf(stderr, "\n"); + }break; } //- rjf: unpack subset flags @@ -611,12 +699,25 @@ rb_thread_entry_point(void *p) { subset_flags = (RDIM_SubsetFlag_Units|RDIM_SubsetFlag_Procedures|RDIM_SubsetFlag_Scopes|RDIM_SubsetFlag_LineInfo|RDIM_SubsetFlag_InlineLineInfo); }break; + case OutputKind_VOff2Line: + { + subset_flags = (RDIM_SubsetFlag_Units|RDIM_SubsetFlag_LineInfo|RDIM_SubsetFlag_InlineLineInfo|RDIM_SubsetFlag_Procedures); + }break; } //- rjf: convert inputs to RDI info B32 convert_done = 0; RDIM_BakeParams pdb_bake_params = {0}; RDIM_BakeParams dwarf_bake_params = {0}; + RDIM_BakeParams dwarf_bake_params_2 = {0}; + typedef struct RDIM_BakeParamsNode RDIM_BakeParamsNode; + struct RDIM_BakeParamsNode + { + RDIM_BakeParamsNode *next; + RDIM_BakeParams v; + }; + RDIM_BakeParamsNode *first_rdi_bake_params = 0; + RDIM_BakeParamsNode *last_rdi_bake_params = 0; { //- rjf: PE inputs w/ DWARF, or ELF inputs => DWARF -> RDI conversion B32 pe_w_dwarf = (input_files_from_format_table[RB_FileFormat_PE].count != 0 && @@ -635,6 +736,11 @@ rb_thread_entry_point(void *p) { B32 got_exe = 0; B32 got_dbg = 0; + String8 exe_name = {0}; + String8 exe_data = {0}; + ExecutableImageKind exe_kind = ExecutableImageKind_Null; + String8 dbg_name = {0}; + String8 dbg_data = {0}; if(!got_exe && !got_dbg) { for(RB_FileNode *n = input_files_from_format_table[RB_FileFormat_PE].first; n != 0; n = n->next) @@ -643,11 +749,11 @@ rb_thread_entry_point(void *p) { got_exe = 1; got_dbg = 1; - convert_params.dbg_name = n->v->path; - convert_params.dbg_data = n->v->data; - convert_params.exe_name = n->v->path; - convert_params.exe_data = n->v->data; - convert_params.exe_kind = ExecutableImageKind_CoffPe; + dbg_name = n->v->path; + dbg_data = n->v->data; + exe_name = n->v->path; + exe_data = n->v->data; + exe_kind = ExecutableImageKind_CoffPe; break; } } @@ -657,9 +763,9 @@ rb_thread_entry_point(void *p) for(RB_FileNode *n = input_files_from_format_table[RB_FileFormat_ELF32].first; n != 0; n = n->next) { got_exe = 1; - convert_params.exe_name = n->v->path; - convert_params.exe_data = n->v->data; - convert_params.exe_kind = ExecutableImageKind_Elf32; + exe_name = n->v->path; + exe_data = n->v->data; + exe_kind = ExecutableImageKind_Elf32; if(!(n->v->format_flags & RB_FileFormatFlag_HasDWARF)) { break; @@ -671,9 +777,9 @@ rb_thread_entry_point(void *p) for(RB_FileNode *n = input_files_from_format_table[RB_FileFormat_ELF64].first; n != 0; n = n->next) { got_exe = 1; - convert_params.exe_name = n->v->path; - convert_params.exe_data = n->v->data; - convert_params.exe_kind = ExecutableImageKind_Elf64; + exe_name = n->v->path; + exe_data = n->v->data; + exe_kind = ExecutableImageKind_Elf64; if(!(n->v->format_flags & RB_FileFormatFlag_HasDWARF)) { break; @@ -687,8 +793,8 @@ rb_thread_entry_point(void *p) if(n->v->format_flags & RB_FileFormatFlag_HasDWARF) { got_dbg = 1; - convert_params.dbg_name = n->v->path; - convert_params.dbg_data = n->v->data; + dbg_name = n->v->path; + dbg_data = n->v->data; break; } } @@ -700,14 +806,46 @@ rb_thread_entry_point(void *p) if(n->v->format_flags & RB_FileFormatFlag_HasDWARF) { got_dbg = 1; - convert_params.dbg_name = n->v->path; - convert_params.dbg_data = n->v->data; + dbg_name = n->v->path; + dbg_data = n->v->data; break; } } } - convert_params.subset_flags = subset_flags; - convert_params.deterministic = cmd_line_has_flag(cmdline, str8_lit("deterministic")); + switch(exe_kind) + { + default:{}break; + case ExecutableImageKind_CoffPe: + { + Temp scratch = scratch_begin(&arena, 1); + PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe_data); + String8 raw_sections = str8_substr(exe_data, pe.section_table_range); + COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(raw_sections, 0, sizeof(COFF_SectionHeader) * pe.section_count); + String8 string_table = str8_substr(exe_data, pe.string_table_range); + convert_params.arch = pe.arch; + convert_params.base_vaddr = pe.image_base; + convert_params.raw = dw_raw_from_coff_section_table(arena, exe_data, string_table, pe.section_count, section_table); + convert_params.path_style = PathStyle_WindowsAbsolute; + convert_params.binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, exe_data, string_table, pe.section_count, section_table); + scratch_end(scratch); + }break; + case ExecutableImageKind_Elf32: + case ExecutableImageKind_Elf64: + { + Temp scratch = scratch_begin(&arena, 1); + ELF_Bin bin = elf_bin_from_data(scratch.arena, dbg_data); + convert_params.arch = arch_from_elf_machine(bin.hdr.e_machine); + convert_params.base_vaddr = elf_base_addr_from_bin(&bin); + convert_params.raw = dw_raw_from_elf_bin(arena, dbg_data, &bin); + convert_params.path_style = PathStyle_UnixAbsolute; + convert_params.binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, dbg_data, &bin, &bin.shdrs); + scratch_end(scratch); + }break; + } + convert_params.exe_name = exe_name; + convert_params.exe_data = exe_data; + convert_params.subset_flags = subset_flags; + convert_params.deterministic = cmd_line_has_flag(cmdline, str8_lit("deterministic")); } ProfScope("convert") dwarf_bake_params = d2r_convert(arena, &convert_params); } @@ -736,7 +874,44 @@ rb_thread_entry_point(void *p) convert_params.subset_flags = subset_flags; convert_params.deterministic = cmd_line_has_flag(cmdline, str8_lit("deterministic")); } - ProfScope("convert") pdb_bake_params = p2r_convert(arena, &convert_params); + ProfScope("convert") pdb_bake_params = p2r_convert2(arena, &convert_params); + } + + //- rjf: RDI inputs => RDI joining + if(input_files_from_format_table[RB_FileFormat_RDI].count > 1) + { + convert_done = 1; + log_infof("RDIs specified; joining RDIs\n"); + + // rjf: produce bake params for each RDI + for EachNode(n, RB_FileNode, input_files_from_format_table[RB_FileFormat_RDI].first) + { + RB_File *f = n->v; + + // rjf: decompress RDI + RDI_Parsed *rdi = 0; + if(lane_idx() == 0) + { + rdi = push_array(arena, RDI_Parsed, 1); + RDI_ParseStatus rdi_status = rdi_parse(f->data.str, f->data.size, rdi); + U64 decompressed_size = rdi_decompressed_size_from_parsed(rdi); + if(decompressed_size > rdi->raw_data_size) + { + U8 *decompressed_data = push_array_no_zero(arena, U8, decompressed_size); + rdi_decompress_parsed(decompressed_data, decompressed_size, rdi); + rdi_status = rdi_parse(decompressed_data, decompressed_size, rdi); + } + } + lane_sync_u64(&rdi, 0); + + // rjf: RDI -> loose + RDIM_BakeParams rdi_loose = rdim_loose_from_rdi(arena, subset_flags, rdi); + + // rjf: add + RDIM_BakeParamsNode *n = push_array(arena, RDIM_BakeParamsNode, 1); + n->v = rdi_loose; + SLLQueuePush(first_rdi_bake_params, last_rdi_bake_params, n); + } } } lane_sync(); @@ -748,6 +923,10 @@ rb_thread_entry_point(void *p) bake_params = push_array(arena, RDIM_BakeParams, 1); rdim_bake_params_concat_in_place(bake_params, &pdb_bake_params); rdim_bake_params_concat_in_place(bake_params, &dwarf_bake_params); + for EachNode(n, RDIM_BakeParamsNode, first_rdi_bake_params) + { + rdim_bake_params_concat_in_place(bake_params, &n->v); + } } lane_sync_u64(&bake_params, 0); @@ -759,24 +938,35 @@ rb_thread_entry_point(void *p) if(output_path__noext.size == 0) { output_path__noext = str8_chop_last_dot(rb_file_list_first(&input_files_from_format_table[RB_FileFormat_PE])->path); } if(output_path__noext.size == 0) { output_path__noext = str8_chop_last_dot(rb_file_list_first(&input_files_from_format_table[RB_FileFormat_ELF64])->path); } if(output_path__noext.size == 0) { output_path__noext = str8_chop_last_dot(rb_file_list_first(&input_files_from_format_table[RB_FileFormat_ELF32])->path); } + if(output_path__noext.size == 0) { output_path__noext = str8_chop_last_dot(rb_file_list_first(&input_files_from_format_table[RB_FileFormat_RDI])->path); } switch(output_kind) { default:{}break; case OutputKind_RDI: { - output_path = push_str8f(arena, "%S.rdi", output_path__noext); + output_path = str8f(arena, "%S.rdi", output_path__noext); }break; case OutputKind_Breakpad: { - output_path = push_str8f(arena, "%S.psym", output_path__noext); + output_path = str8f(arena, "%S.psym", output_path__noext); }break; } } + //- rjf: special case: only a single RDI file passed? all conversion is trivially done, just + // package up RDI data as serialized section bundle, and let the rest of the paths use it. + B32 noop_conversion = 0; + if(input_files.count == 1 && rb_file_list_first(&input_files)->format == RB_FileFormat_RDI) + { + noop_conversion = 1; + convert_done = 1; + log_infof("Single RDI specified; passing through (skipping conversion)"); + } + //- rjf: no viable input paths if(!convert_done && cmdline->inputs.node_count != 0) { - log_user_errorf("Could not load debug info from the specified inputs. You must provide either a valid PDB file or an executable image (PE, ELF) file with DWARF debug info."); + log_user_errorf("Could not load debug info from the specified inputs. You must provide a valid PDB file, an executable image (PE, ELF) file with DWARF debug info, or RDI file(s)."); } //- rjf: bake @@ -786,6 +976,41 @@ rb_thread_entry_point(void *p) bake_results = rdim_bake(arena, bake_params); } + //- rjf: serialize + RDIM_SerializedSectionBundle *serialized_section_bundle = 0; + ProfScope("serialize") if(lane_idx() == 0) + { + serialized_section_bundle = push_array(arena, RDIM_SerializedSectionBundle, 1); + serialized_section_bundle[0] = bake_results.section_bundle; + } + lane_sync_u64(&serialized_section_bundle, 0); + + //- rjf: special case: no-op conversion (single RDI file) + if(lane_idx() == 0 && noop_conversion) + { + RB_File *f = rb_file_list_first(&input_files); + RDI_Parsed rdi = {0}; + RDI_ParseStatus rdi_status = rdi_parse(f->data.str, f->data.size, &rdi); + U64 decompressed_size = rdi_decompressed_size_from_parsed(&rdi); + if(decompressed_size > rdi.raw_data_size) + { + U8 *decompressed_data = push_array_no_zero(arena, U8, decompressed_size); + rdi_decompress_parsed(decompressed_data, decompressed_size, &rdi); + rdi_status = rdi_parse(decompressed_data, decompressed_size, &rdi); + } + for EachIndex(idx, rdi.sections_count) + { + if(idx < RDI_SectionKind_COUNT) + { + serialized_section_bundle->sections[idx].data = rdi.raw_data + rdi.sections[idx].off; + serialized_section_bundle->sections[idx].encoded_size = rdi.sections[idx].encoded_size; + serialized_section_bundle->sections[idx].unpacked_size = rdi.sections[idx].unpacked_size; + serialized_section_bundle->sections[idx].encoding = rdi.sections[idx].encoding; + } + } + } + lane_sync(); + //- rjf: convert done => generate output if(convert_done) switch(output_kind) { @@ -794,15 +1019,6 @@ rb_thread_entry_point(void *p) //- rjf: generate RDI blobs case OutputKind_RDI: { - // rjf: serialize - RDIM_SerializedSectionBundle *serialized_section_bundle = 0; - ProfScope("serialize") if(lane_idx() == 0) - { - serialized_section_bundle = push_array(arena, RDIM_SerializedSectionBundle, 1); - serialized_section_bundle[0] = rdim_serialized_section_bundle_from_bake_results(&bake_results); - } - lane_sync_u64(&serialized_section_bundle, 0); - // rjf: compress RDIM_SerializedSectionBundle serialized_section_bundle__compressed = serialized_section_bundle[0]; if(cmd_line_has_flag(cmdline, str8_lit("compress"))) ProfScope("compress") @@ -818,28 +1034,36 @@ rb_thread_entry_point(void *p) //- rjf: generate breakpad text case OutputKind_Breakpad: { + //- rjf: flatten to RDI data + String8List rdi_blobs = rdim_file_blobs_from_section_bundle(arena, serialized_section_bundle); + String8 rdi_data = str8_list_join(arena, &rdi_blobs, 0); + RDI_Parsed rdi_ = {0}; + RDI_Parsed *rdi = &rdi_; + RDI_ParseStatus rdi_status = rdi_parse(rdi_data.str, rdi_data.size, rdi); + //- rjf: set up shared state typedef struct P2B_Shared P2B_Shared; struct P2B_Shared { String8List dump; - String8List *lane_chunk_file_dumps; - String8List *lane_chunk_func_dumps; + String8List *lane_file_dumps; + String8List *lane_func_dumps; }; - local_persist P2B_Shared *p2b_shared = 0; + P2B_Shared *p2b_shared = 0; if(lane_idx() == 0) { p2b_shared = push_array(arena, P2B_Shared, 1); - p2b_shared->lane_chunk_file_dumps = push_array(arena, String8List, lane_count()*bake_params->src_files.chunk_count); - p2b_shared->lane_chunk_func_dumps = push_array(arena, String8List, lane_count()*bake_params->procedures.chunk_count); + p2b_shared->lane_file_dumps = push_array(arena, String8List, lane_count()); + p2b_shared->lane_func_dumps = push_array(arena, String8List, lane_count()); } - lane_sync(); + lane_sync_u64(&p2b_shared, 0); //- rjf: dump MODULE record if(lane_idx() == 0) { // rjf: pick name to identify module - String8 module_name_string = bake_params->top_level_info.exe_name; + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + String8 module_name_string = str8_from_rdi_string_idx(rdi, tli->exe_name_string_idx); if(module_name_string.size == 0 && input_files.first != 0) { module_name_string = input_files.first->v->path; @@ -847,9 +1071,9 @@ rb_thread_entry_point(void *p) // rjf: pick string for unique code String8 unique_identifier_string = {0}; - if(unique_identifier_string.size == 0 && bake_params->top_level_info.exe_hash != 0) + if(unique_identifier_string.size == 0 && tli->exe_hash != 0) { - unique_identifier_string = str8f(arena, "%I64x", bake_params->top_level_info.exe_hash); + unique_identifier_string = str8f(arena, "%I64x", tli->exe_hash); } if(unique_identifier_string.size == 0) { @@ -886,86 +1110,79 @@ rb_thread_entry_point(void *p) //- rjf: dump FILE records ProfScope("dump FILE records") { - U64 chunk_idx = 0; - for EachNode(n, RDIM_SrcFileChunkNode, bake_params->src_files.first) + U64 count = 0; + RDI_SourceFile *v = rdi_table_from_name(rdi, SourceFiles, &count); + Rng1U64 range = lane_range(count); + for EachInRange(idx, range) { - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - U64 file_idx = rdim_idx_from_src_file(&n->v[idx]); - String8 src_path = n->v[idx].path; - str8_list_pushf(arena, &p2b_shared->lane_chunk_file_dumps[lane_idx()*bake_params->src_files.chunk_count + chunk_idx], "FILE %I64u %S\n", file_idx, src_path); - } - chunk_idx += 1; + String8List *out = &p2b_shared->lane_file_dumps[lane_idx()]; + Temp scratch = scratch_begin(&arena, 1); + String8 src_path = str8_from_rdi_path_node_idx(scratch.arena, rdi, PathStyle_Relative, v[idx].file_path_node_idx); + str8_list_pushf(arena, out, "FILE %I64u %S\n", idx, src_path); + scratch_end(scratch); } } //- rjf: dump FUNC records ProfScope("dump FUNC records") { - U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, bake_params->procedures.first) + U64 count = 0; + RDI_Symbol *v = rdi_table_from_name(rdi, Procedures, &count); + Rng1U64 range = lane_range(count); + for EachInRange(idx, range) { - String8List *out = &p2b_shared->lane_chunk_func_dumps[lane_idx()*bake_params->procedures.chunk_count + chunk_idx]; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) + // NOTE(rjf): breakpad does not support multiple voff ranges per procedure. + String8List *out = &p2b_shared->lane_func_dumps[lane_idx()]; + RDI_Symbol *proc = &v[idx]; + RDI_Scope *root_scope = rdi_element_from_name_idx(rdi, Scopes, proc->root_scope_idx); + if(root_scope->voff_range_opl > root_scope->voff_range_first) { - // NOTE(rjf): breakpad does not support multiple voff ranges per procedure. - RDIM_Symbol *proc = &n->v[idx]; - RDIM_Scope *root_scope = proc->root_scope; - if(root_scope != 0 && root_scope->voff_ranges.first != 0) + + // rjf: dump function record + RDIM_Rng1U64 voff_range = { - // rjf: dump function record - RDIM_Rng1U64 voff_range = root_scope->voff_ranges.first->v; - str8_list_pushf(arena, out, "FUNC %I64x %I64x %I64x %S\n", voff_range.min, voff_range.max-voff_range.min, 0ull, proc->name); - - // rjf: dump function lines - U64 unit_idx = rdi_vmap_idx_from_voff(bake_results.unit_vmap.vmap.vmap, bake_results.unit_vmap.vmap.count, voff_range.min); - if(0 < unit_idx && unit_idx <= bake_results.units.units_count) + *rdi_element_from_name_idx(rdi, ScopeVOffData, root_scope->voff_range_first), + *rdi_element_from_name_idx(rdi, ScopeVOffData, root_scope->voff_range_opl - 1), + }; + { + Temp scratch = scratch_begin(0, 0); + str8_list_pushf(arena, out, "FUNC %I64x %I64x %I64x %S\n", voff_range.min, voff_range.max-voff_range.min, 0ull, fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, proc)); + scratch_end(scratch); + } + + // rjf: dump function lines + U64 unit_vmap_count = 0; + RDI_VMapEntry *unit_vmap = rdi_table_from_name(rdi, UnitVMap, &unit_vmap_count); + RDI_Unit *unit = rdi_unit_from_voff(rdi, voff_range.min); + RDI_LineTable *line_table = rdi_line_table_from_unit(rdi, unit); + RDI_ParsedLineTable line_info = {0}; + rdi_parsed_from_line_table(rdi, line_table, &line_info); + for(U64 voff = voff_range.min, last_voff = 0; + voff < voff_range.max && voff > last_voff;) + { + RDI_U64 line_info_idx = rdi_line_info_idx_from_voff(&line_info, voff); + if(line_info_idx < line_info.count) { - U32 line_table_idx = bake_results.units.units[unit_idx].line_table_idx; - if(0 < line_table_idx && line_table_idx <= bake_results.line_tables.line_tables_count) + RDI_Line *line = &line_info.lines[line_info_idx]; + U64 line_voff_min = line_info.voffs[line_info_idx]; + U64 line_voff_opl = line_info.voffs[line_info_idx+1]; + if(line->file_idx != 0) { - // rjf: unpack unit line info - RDI_LineTable *line_table = &bake_results.line_tables.line_tables[line_table_idx]; - RDI_ParsedLineTable line_info = - { - bake_results.line_tables.line_table_voffs + line_table->voffs_base_idx, - bake_results.line_tables.line_table_lines + line_table->lines_base_idx, - 0, - line_table->lines_count, - 0 - }; - for(U64 voff = voff_range.min, last_voff = 0; - voff < voff_range.max && voff > last_voff;) - { - RDI_U64 line_info_idx = rdi_line_info_idx_from_voff(&line_info, voff); - if(line_info_idx < line_info.count) - { - RDI_Line *line = &line_info.lines[line_info_idx]; - U64 line_voff_min = line_info.voffs[line_info_idx]; - U64 line_voff_opl = line_info.voffs[line_info_idx+1]; - if(line->file_idx != 0) - { - str8_list_pushf(arena, out, "%I64x %I64x %I64u %I64u\n", - line_voff_min, - line_voff_opl-line_voff_min, - (U64)line->line_num, - (U64)line->file_idx); - } - last_voff = voff; - voff = line_voff_opl; - } - else - { - break; - } - } + str8_list_pushf(arena, out, "%I64x %I64x %I64u %I64u\n", + line_voff_min, + line_voff_opl-line_voff_min, + (U64)line->line_num, + (U64)line->file_idx); } + last_voff = voff; + voff = line_voff_opl; + } + else + { + break; } } } - chunk_idx += 1; } } @@ -973,24 +1190,107 @@ rb_thread_entry_point(void *p) lane_sync(); if(lane_idx() == 0) { - for EachIndex(chunk_idx, bake_params->src_files.chunk_count) + for EachIndex(ln_idx, lane_count()) { - for EachIndex(ln_idx, lane_count()) - { - str8_list_concat_in_place(&p2b_shared->dump, &p2b_shared->lane_chunk_file_dumps[ln_idx*bake_params->src_files.chunk_count + chunk_idx]); - } + str8_list_concat_in_place(&p2b_shared->dump, &p2b_shared->lane_file_dumps[ln_idx]); } - for EachIndex(chunk_idx, bake_params->procedures.chunk_count) + for EachIndex(ln_idx, lane_count()) { - for EachIndex(ln_idx, lane_count()) - { - str8_list_concat_in_place(&p2b_shared->dump, &p2b_shared->lane_chunk_func_dumps[ln_idx*bake_params->procedures.chunk_count + chunk_idx]); - } + str8_list_concat_in_place(&p2b_shared->dump, &p2b_shared->lane_func_dumps[ln_idx]); } } lane_sync(); output_blobs = p2b_shared->dump; }break; + + //- rjf: generate voff -> line results + case OutputKind_VOff2Line: + { + //- rjf: unpack voff arg + U64 voff = 0; + { + String8 voff_str = cmd_line_string(cmdline, str8_lit("voff")); + try_u64_from_str8_c_rules(voff_str, &voff); + log_infof("User specified \"%S\" as virtual offset; parsed as 0x%I64x", voff_str, voff); + } + + //- rjf: flatten to RDI data + String8List rdi_blobs = rdim_file_blobs_from_section_bundle(arena, serialized_section_bundle); + String8 rdi_data = str8_list_join(arena, &rdi_blobs, 0); + RDI_Parsed rdi_ = {0}; + RDI_Parsed *rdi = &rdi_; + RDI_ParseStatus rdi_status = rdi_parse(rdi_data.str, rdi_data.size, rdi); + + //- rjf: voff -> line + RDI_Line line = rdi_line_from_voff(rdi, voff); + RDI_SourceFile *src_file = rdi_element_from_name_idx(rdi, SourceFiles, line.file_idx); + + //- rjf: dump line info + { + Temp scratch = scratch_begin(0, 0); + RDI_Scope *voff_scope = rdi_scope_from_voff(rdi, voff); + for(RDI_Scope *scope = voff_scope, *null_scope = rdi_element_from_name_idx(rdi, Scopes, 0); + scope != 0 && scope != null_scope; + scope = rdi_parent_from_scope(rdi, scope)) + { + RDI_InlineSite *inline_site = rdi_inline_site_from_scope(rdi, scope); + RDI_InlineSite *null_inline_site = rdi_element_from_name_idx(rdi, InlineSites, 0); + if(inline_site && inline_site != null_inline_site) + { + RDI_LineTable *inline_line_table = rdi_element_from_name_idx(rdi, LineTables, inline_site->line_table_idx); + RDI_LineTable *null_inline_line_table = rdi_element_from_name_idx(rdi, LineTables, 0); + if(inline_line_table && inline_line_table != null_inline_line_table) + { + String8 inline_name = str8_from_rdi_string_idx(rdi, inline_site->name_string_idx); + RDI_Line inline_line = rdi_line_from_line_table_voff(rdi, inline_line_table, voff); + RDI_SourceFile *inline_src_file = rdi_element_from_name_idx(rdi, SourceFiles, inline_line.file_idx); + RDI_SourceFile *null_inline_src_file = rdi_element_from_name_idx(rdi, SourceFiles, 0); + if(inline_src_file && inline_src_file != null_inline_src_file) + { + // TODO: remove 'path_style' from the str8_from_rdi_path_node_idx and detect + // path style based on the top node "?:" -> windows, "/" -> unix + String8 top_part = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, src_file->file_path_node_idx); + fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) + { + if(fpn->parent_path_node == 0) + { + top_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &top_part.size); + } + } + PathStyle path_style = PathStyle_SystemAbsolute; + if (str8_match_wildcard(top_part, str8_lit("?:"), 0)) { path_style = PathStyle_WindowsAbsolute; } + else if(str8_match_wildcard(top_part, str8_lit("/*"), 0)) { path_style = PathStyle_UnixAbsolute; } + + String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, path_style, src_file->file_path_node_idx); + str8_list_pushf(arena, &output_blobs, "[inlined] %S %S:%u\n", inline_name, path, inline_line.line_num); + } + } + } + } + + // TODO: remove 'path_style' from the str8_from_rdi_path_node_idx and detect + // path style based on the top node [c:|d:] -> windows, / -> unix + String8 top_part = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, src_file->file_path_node_idx); + fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) + { + if(fpn->parent_path_node == 0) + { + top_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &top_part.size); + } + } + PathStyle path_style = PathStyle_SystemAbsolute; + if (str8_match_wildcard(top_part, str8_lit("?:"), 0)) { path_style = PathStyle_WindowsAbsolute; } + else if(str8_match_wildcard(top_part, str8_lit("/*"), 0)) { path_style = PathStyle_UnixAbsolute; } + + String8 path = str8_from_rdi_path_node_idx(scratch.arena, rdi, path_style, src_file->file_path_node_idx); + str8_list_pushf(arena, &output_blobs, "%S:%u\n", path, line.line_num); + scratch_end(scratch); + } + }break; } }break; @@ -1019,10 +1319,12 @@ rb_thread_entry_point(void *p) fprintf(stderr, " be dumped. See below for a list of valid\n"); fprintf(stderr, " subset names.\n"); fprintf(stderr, "\n"); + fprintf(stderr, "--verbose dump more format details\n"); + fprintf(stderr, "\n"); fprintf(stderr, "-------------------------------------------------------------------------------\n\n"); - fprintf(stderr, "RAD DEBUG INFO SUBSET NAMES\n\n"); + fprintf(stderr, "RDI Sections:\n"); #define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); RDI_DumpSubset_XList #undef X @@ -1030,22 +1332,27 @@ rb_thread_entry_point(void *p) fprintf(stderr, "-------------------------------------------------------------------------------\n\n"); - fprintf(stderr, "DWARF INFO SUBSET NAMES\n\n"); -#define X(name, name_lower, title) fprintf(stderr, " - " #name_lower "\n"); - DW_DumpSubset_XList + fprintf(stderr, "DWARF Sections:\n"); +#define X(_N, _L, ...) if(DW_SectionKind_##_N != DW_SectionKind_Null) { fprintf(stderr, " - " _L "\n"); } + DW_SectionKind_XList #undef X fprintf(stderr, "\n"); } + B32 verbose = cmd_line_has_flag(cmdline, str8_lit("verbose")); + //- rjf: unpack dump subset flags RDI_DumpSubsetFlags rdi_dump_subset_flags = RDI_DumpSubsetFlag_All; - DW_DumpSubsetFlags dw_dump_subset_flags = DW_DumpSubsetFlag_All; + DW_SectionFlags dw_dump_subset_flags = DW_SectionFlag_All; + EH_DumpSubsetFlags eh_dump_subset_flags = EH_DumpSubsetFlag_All; + ELF_DumpSubsetFlags elf_dump_subset_flags = ELF_DumpSubsetFlag_All; { String8List only_names = cmd_line_strings(cmdline, str8_lit("only")); if(only_names.node_count != 0) { rdi_dump_subset_flags = 0; dw_dump_subset_flags = 0; + eh_dump_subset_flags = 0; } for(String8Node *n = only_names.first; n != 0; n = n->next) { @@ -1053,8 +1360,14 @@ rb_thread_entry_point(void *p) #define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags |= RDI_DumpSubsetFlag_##name; } RDI_DumpSubset_XList #undef X -#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags |= DW_DumpSubsetFlag_##name; } - DW_DumpSubset_XList +#define X(_N, _L, ...) else if(str8_match(n->string, str8_skip(str8_lit(_L), 1), 0)) { dw_dump_subset_flags |= DW_SectionFlag_##_N; } + DW_SectionKind_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { eh_dump_subset_flags |= EH_DumpSubsetFlag_##name; } + EH_DumpSubset_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { elf_dump_subset_flags |= ELF_DumpSubsetFlag_##name; } + ELF_DumpSubset_XList #undef X } String8List omit_names = cmd_line_strings(cmdline, str8_lit("omit")); @@ -1064,8 +1377,14 @@ rb_thread_entry_point(void *p) #define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { rdi_dump_subset_flags &= ~RDI_DumpSubsetFlag_##name; } RDI_DumpSubset_XList #undef X -#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { dw_dump_subset_flags &= ~DW_DumpSubsetFlag_##name; } - DW_DumpSubset_XList +#define X(_N, _L, ...) else if(str8_match(n->string, str8_skip(str8_lit(_L), 1), 0)) { dw_dump_subset_flags &= ~DW_SectionFlag_##_N; } + DW_SectionKind_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { eh_dump_subset_flags &= ~EH_DumpSubsetFlag_##name; } + EH_DumpSubset_XList +#undef X +#define X(name, name_lower, title) else if(str8_match(n->string, str8_lit(#name_lower), 0)) { elf_dump_subset_flags &= ~ELF_DumpSubsetFlag_##name; } + ELF_DumpSubset_XList #undef X } } @@ -1076,7 +1395,10 @@ rb_thread_entry_point(void *p) RB_File *f = n->v; if(lane_idx() == 0) { - str8_list_pushf(arena, &output_blobs, "// %S (%S)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + if(!deterministic) + { + str8_list_pushf(arena, &output_blobs, "// %S (%S)\n\n", f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + } } lane_sync(); @@ -1084,18 +1406,45 @@ rb_thread_entry_point(void *p) Arch arch = Arch_Null; PE_BinInfo pe = {0}; ELF_Bin elf = {0}; - DW_Input dw = {0}; + COFF_FileHeaderInfo coff_obj = {0}; + DW_Raw dw = {0}; + U64 eh_frame_hdr_vaddr = 0; + U64 eh_frame_vaddr = 0; + String8 eh_frame_hdr = {0}; + String8 eh_frame = {0}; { if(f->format == RB_FileFormat_PE) { - pe = pe_bin_info_from_data(arena, f->data); + pe = pe_bin_info_from_data(arena, f->data); arch = pe.arch; } - if(f->format == RB_FileFormat_ELF32 || - f->format == RB_FileFormat_ELF64) + else if(f->format == RB_FileFormat_COFF_OBJ || f->format == RB_FileFormat_COFF_BigOBJ) + { + coff_obj = coff_file_header_info_from_data(f->data); + String8 string_table = str8_substr(f->data, coff_obj.string_table_range); + U64 section_count = coff_obj.section_count_no_null; + COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(f->data, coff_obj.section_table_range).str; + dw = dw_raw_from_coff_section_table(arena, f->data, string_table, section_count, section_table); + } + else if(f->format == RB_FileFormat_ELF32 || f->format == RB_FileFormat_ELF64) { elf = elf_bin_from_data(arena, f->data); arch = arch_from_elf_machine(elf.hdr.e_machine); + for EachIndex(sect_idx, elf.hdr.e_shnum) + { + ELF_Shdr64 *shdr = &elf.shdrs.v[sect_idx]; + String8 name = elf_name_from_shdr64(f->data, &elf, shdr); + if(str8_match(name, str8_lit(".eh_frame_hdr"), 0)) + { + eh_frame_hdr = str8_substr(f->data, r1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size)); + eh_frame_hdr_vaddr = shdr->sh_addr; + } + else if(str8_match(name, str8_lit(".eh_frame"), 0)) + { + eh_frame = str8_substr(f->data, r1u64(shdr->sh_offset, shdr->sh_offset + shdr->sh_size)); + eh_frame_vaddr = shdr->sh_addr; + } + } } if(f->format_flags & RB_FileFormatFlag_HasDWARF) { @@ -1105,12 +1454,12 @@ rb_thread_entry_point(void *p) U64 section_count = raw_sections.size / sizeof(COFF_SectionHeader); COFF_SectionHeader *section_table = (COFF_SectionHeader *)raw_sections.str; String8 string_table = str8_substr(f->data, pe.string_table_range); - dw = dw_input_from_coff_section_table(arena, f->data, string_table, section_count, section_table); + dw = dw_raw_from_coff_section_table(arena, f->data, string_table, section_count, section_table); } else if(f->format == RB_FileFormat_ELF32 || f->format == RB_FileFormat_ELF64) { - dw = dw_input_from_elf_bin(arena, f->data, &elf); + dw = dw_raw_from_elf_bin(arena, f->data, &elf); } } } @@ -1155,7 +1504,8 @@ rb_thread_entry_point(void *p) case RB_FileFormat_ELF32: case RB_FileFormat_ELF64: { - // TODO(rjf) + String8List elf_strings = elf_dump(arena, f->data, elf_dump_subset_flags); + str8_list_concat_in_place(&output_blobs, &elf_strings); }break; //- rjf: RDI file @@ -1188,21 +1538,30 @@ rb_thread_entry_point(void *p) }break; } - //- rjf: dump file extension info + //- rjf: dump DWARF file extension info if(f->format_flags & RB_FileFormatFlag_HasDWARF) { if(lane_idx() == 0) { - str8_list_pushf(arena, &output_blobs, "// %S (%S) (DWARF)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + str8_list_pushf(arena, &output_blobs, "\n// %S (%S) (DWARF)\n\n", deterministic ? str8_skip_last_slash(f->path) : f->path, f->format ? rb_file_format_display_name_table[f->format] : str8_lit("Unsupported format")); + } + String8List dump = dw_dump_list_from_raw(arena, &dw, arch, dw_dump_subset_flags); + if(lane_idx() == 0) + { + str8_list_concat_in_place(&output_blobs, &dump); } lane_sync(); + } + + //- rjf: dump EH frame file extension info + if(f->format_flags & RB_FileFormatFlag_HasEhFrame) + { + if(lane_idx() == 0) { - String8List dump = dw_dump_list_from_sections(arena, &dw, arch, dw_dump_subset_flags); - if(lane_idx() == 0) - { - str8_list_concat_in_place(&output_blobs, &dump); - } + String8List dump = eh_dump_list_from_data(arena, arch, eh_frame_hdr_vaddr, eh_frame_vaddr, eh_frame_hdr, eh_frame, eh_dump_subset_flags); + str8_list_concat_in_place(&output_blobs, &dump); } + lane_sync(); } } }break; @@ -1215,7 +1574,7 @@ rb_thread_entry_point(void *p) { if(output_path.size != 0) ProfScope("write outputs [file]") { - B32 is_written = os_write_data_list_to_file_path(output_path, output_blobs); + B32 is_written = write_data_list_to_file_path(output_path, output_blobs); if(is_written) { log_infof("Results written to %S", output_path); diff --git a/src/radbin/radbin.h b/src/radbin/radbin.h index 7e7265fc..b18e45a5 100644 --- a/src/radbin/radbin.h +++ b/src/radbin/radbin.h @@ -25,7 +25,8 @@ struct RB_ThreadParams typedef U32 RB_FileFormatFlags; enum { - RB_FileFormatFlag_HasDWARF = (1<<0), + RB_FileFormatFlag_HasDWARF = (1<<0), + RB_FileFormatFlag_HasEhFrame = (1<<1), }; typedef struct RB_File RB_File; @@ -34,6 +35,8 @@ struct RB_File RB_FileFormat format; RB_FileFormatFlags format_flags; String8 path; + File file; + FileMap file_map; String8 data; }; diff --git a/src/radbin/radbin_main.c b/src/radbin/radbin_main.c index 51a65730..3c1fb526 100644 --- a/src/radbin/radbin_main.c +++ b/src/radbin/radbin_main.c @@ -12,51 +12,71 @@ //- rjf: [h] #include "base/base_inc.h" +#include "x64/x64.h" #include "linker/hash_table.h" -#include "os/os_inc.h" +#include "linker/base_ext/base_bit_array.h" #include "rdi/rdi_local.h" #include "rdi_make/rdi_make_local.h" #include "coff/coff_inc.h" #include "pe/pe.h" #include "elf/elf.h" +#include "gnu/gnu.h" #include "elf/elf_parse.h" +#include "elf/elf_dump.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" -#include "eh/eh_frame.h" -#include "dwarf/dwarf_inc.h" +#include "dwarf/dwarf.h" +#include "dwarf/dwarf_parse.h" +#include "dwarf/dwarf_parse_coff.h" +#include "dwarf/dwarf_parse_elf.h" +#include "dwarf/dwarf_dump.h" +#include "eh_frame/eh_frame.h" +#include "eh_frame/eh_frame_dump.h" #include "msf/msf.h" #include "msf/msf_parse.h" #include "pdb/pdb.h" #include "pdb/pdb_parse.h" #include "pdb/pdb_stringize.h" +#include "arch/arch_inc.h" #include "rdi_from_coff/rdi_from_coff.h" #include "rdi_from_elf/rdi_from_elf.h" +#include "rdi_from_codeview/rdi_from_codeview.h" #include "rdi_from_pdb/rdi_from_pdb.h" #include "rdi_from_dwarf/rdi_from_dwarf.h" #include "radbin/radbin.h" //- rjf: [c] #include "base/base_inc.c" +#include "x64/x64.c" #include "linker/hash_table.c" -#include "os/os_inc.c" +#include "linker/base_ext/base_bit_array.c" #include "rdi/rdi_local.c" #include "rdi_make/rdi_make_local.c" #include "coff/coff_inc.c" #include "pe/pe.c" #include "elf/elf.c" +#include "gnu/gnu.c" #include "elf/elf_parse.c" +#include "elf/elf_dump.c" #include "codeview/codeview.c" #include "codeview/codeview_parse.c" -#include "eh/eh_frame.c" -#include "dwarf/dwarf_inc.c" +#include "dwarf/dwarf.c" +#include "dwarf/dwarf_parse.c" +#include "dwarf/dwarf_parse_coff.c" +#include "dwarf/dwarf_parse_elf.c" +#include "dwarf/dwarf_dump.c" +#include "eh_frame/eh_frame.c" +#include "eh_frame/eh_frame_dump.c" #include "msf/msf.c" #include "msf/msf_parse.c" #include "pdb/pdb.c" #include "pdb/pdb_parse.c" #include "pdb/pdb_stringize.c" +#include "arch/arch_inc.c" #include "rdi_from_coff/rdi_from_coff.c" #include "rdi_from_elf/rdi_from_elf.c" #include "rdi_from_pdb/rdi_from_pdb.c" +#include "rdi_from_codeview/rdi_from_codeview.c" #include "rdi_from_dwarf/rdi_from_dwarf.c" #include "radbin/radbin.c" diff --git a/src/raddbg/generated/raddbg.meta.c b/src/raddbg/generated/raddbg.meta.c index f02a7917..a61108aa 100644 --- a/src/raddbg/generated/raddbg.meta.c +++ b/src/raddbg/generated/raddbg.meta.c @@ -1,1098 +1,1141 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 rd_tab_fast_path_view_name_table[25] = -{ -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("watch"), -str8_lit_comp("text"), -str8_lit_comp("text"), -str8_lit_comp("disasm"), -str8_lit_comp("memory"), -str8_lit_comp("bitmap"), -str8_lit_comp("color"), -str8_lit_comp("geo3d"), -}; - -String8 rd_tab_fast_path_query_name_table[25] = -{ -str8_lit_comp(""), -str8_lit_comp("query:locals"), -str8_lit_comp("query:registers"), -str8_lit_comp("query:globals"), -str8_lit_comp("query:thread_locals"), -str8_lit_comp("query:types"), -str8_lit_comp("query:procedures"), -str8_lit_comp("query:call_stack"), -str8_lit_comp("query:targets"), -str8_lit_comp("query:breakpoints"), -str8_lit_comp("query:watch_pins"), -str8_lit_comp("query:debug_infos"), -str8_lit_comp("query:threads"), -str8_lit_comp("query:processes"), -str8_lit_comp("query:machines"), -str8_lit_comp("query:modules"), -str8_lit_comp("query:file_path_maps"), -str8_lit_comp("query:type_views"), -str8_lit_comp("query:output"), -str8_lit_comp(""), -str8_lit_comp(""), -str8_lit_comp(""), -str8_lit_comp(""), -str8_lit_comp(""), -str8_lit_comp(""), -}; - -RD_VocabInfo rd_vocab_info_table[358] = -{ -{str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, -{str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, -{str8_lit_comp("watch_pin"), str8_lit_comp("watch_pins"), str8_lit_comp("Watch Pin"), str8_lit_comp("Watch Pins"), RD_IconKind_Pin}, -{str8_lit_comp("debug_info"), str8_lit_comp("debug_infos"), str8_lit_comp("Debug Info"), str8_lit_comp("Debug Info"), RD_IconKind_Module}, -{str8_lit_comp("watch"), str8_lit_comp("watches"), str8_lit_comp("Watch"), str8_lit_comp("Watches"), RD_IconKind_Binoculars}, -{str8_lit_comp("view"), str8_lit_comp("views"), str8_lit_comp("View"), str8_lit_comp("Views"), RD_IconKind_Binoculars}, -{str8_lit_comp("breakpoint"), str8_lit_comp("breakpoints"), str8_lit_comp("Breakpoint"), str8_lit_comp("Breakpoints"), RD_IconKind_CircleFilled}, -{str8_lit_comp("condition"), str8_lit_comp("conditions"), str8_lit_comp("Condition"), str8_lit_comp("Conditions"), RD_IconKind_Null}, -{str8_lit_comp("location"), str8_lit_comp("locations"), str8_lit_comp("Location"), str8_lit_comp("Locations"), RD_IconKind_Null}, -{str8_lit_comp("source_location"), str8_lit_comp("source_locations"), str8_lit_comp("Source Location"), str8_lit_comp("Source Locations"), RD_IconKind_Null}, -{str8_lit_comp("address_location"), str8_lit_comp("address_locations"), str8_lit_comp("Address Location"), str8_lit_comp("Address Locations"), RD_IconKind_Null}, -{str8_lit_comp("target"), str8_lit_comp("targets"), str8_lit_comp("Target"), str8_lit_comp("Targets"), RD_IconKind_Target}, -{str8_lit_comp("color"), str8_lit_comp("colors"), str8_lit_comp("Color"), str8_lit_comp("Colors"), RD_IconKind_Palette}, -{str8_lit_comp("theme_color"), str8_lit_comp("theme_colors"), str8_lit_comp("Theme Color"), str8_lit_comp("Theme Colors"), RD_IconKind_Palette}, -{str8_lit_comp("executable"), str8_lit_comp("executables"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module}, -{str8_lit_comp("arguments"), str8_lit_comp("arguments"), str8_lit_comp("Arguments"), str8_lit_comp("Arguments"), RD_IconKind_Null}, -{str8_lit_comp("exe"), str8_lit_comp("exes"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module}, -{str8_lit_comp("dbg"), str8_lit_comp("dbgs"), str8_lit_comp("Debug Info Path"), str8_lit_comp("Debug Info Paths"), RD_IconKind_Module}, -{str8_lit_comp("vaddr_range"), str8_lit_comp("vaddr_ranges"), str8_lit_comp("Virtual Address Range"), str8_lit_comp("Virtual Address Ranges"), RD_IconKind_Null}, -{str8_lit_comp("min"), str8_lit_comp("mins"), str8_lit_comp("Minimum"), str8_lit_comp("Minimums"), RD_IconKind_Null}, -{str8_lit_comp("max"), str8_lit_comp("maxs"), str8_lit_comp("Maximum"), str8_lit_comp("Maximums"), RD_IconKind_Null}, -{str8_lit_comp("working_directory"), str8_lit_comp("working_directories"), str8_lit_comp("Working Directory"), str8_lit_comp("Working Directories"), RD_IconKind_FolderClosedFilled}, -{str8_lit_comp("entry_point"), str8_lit_comp("entry_points"), str8_lit_comp("Entry Point"), str8_lit_comp("Entry Points"), RD_IconKind_Null}, -{str8_lit_comp("stdout_path"), str8_lit_comp("stdout_paths"), str8_lit_comp("Standard Output Path"), str8_lit_comp("Standard Output Paths"), RD_IconKind_Null}, -{str8_lit_comp("stderr_path"), str8_lit_comp("stderr_paths"), str8_lit_comp("Standard Error Path"), str8_lit_comp("Standard Error Paths"), RD_IconKind_Null}, -{str8_lit_comp("stdin_path"), str8_lit_comp("stdin_paths"), str8_lit_comp("Standard Input Path"), str8_lit_comp("Standard Input Paths"), RD_IconKind_Null}, -{str8_lit_comp("window"), str8_lit_comp("windows"), str8_lit_comp("Window"), str8_lit_comp("Windows"), RD_IconKind_Window}, -{str8_lit_comp("panel"), str8_lit_comp("panels"), str8_lit_comp("Panel"), str8_lit_comp("Panels"), RD_IconKind_Null}, -{str8_lit_comp("tab"), str8_lit_comp("tabs"), str8_lit_comp("Tab"), str8_lit_comp("Tabs"), RD_IconKind_Null}, -{str8_lit_comp("recent_project"), str8_lit_comp("recent_projects"), str8_lit_comp("Recent Project"), str8_lit_comp("Recent Projects"), RD_IconKind_Briefcase}, -{str8_lit_comp("recent_file"), str8_lit_comp("recent_files"), str8_lit_comp("Recent File"), str8_lit_comp("Recent Files"), RD_IconKind_FileOutline}, -{str8_lit_comp("src"), str8_lit_comp("srcs"), str8_lit_comp("Source"), str8_lit_comp("Sources"), RD_IconKind_Null}, -{str8_lit_comp("dst"), str8_lit_comp("dsts"), str8_lit_comp("Destination"), str8_lit_comp("Destinations"), RD_IconKind_Null}, -{str8_lit_comp("source"), str8_lit_comp("sources"), str8_lit_comp("Source"), str8_lit_comp("Sources"), RD_IconKind_Null}, -{str8_lit_comp("dest"), str8_lit_comp("dests"), str8_lit_comp("Destination"), str8_lit_comp("Destinations"), RD_IconKind_Null}, -{str8_lit_comp("conversion_task"), str8_lit_comp("conversion_tasks"), str8_lit_comp("Conversion Task"), str8_lit_comp("Conversion Tasks"), RD_IconKind_Null}, -{str8_lit_comp("conversion_fail"), str8_lit_comp("conversion_fails"), str8_lit_comp("Conversion Fail"), str8_lit_comp("Conversion Fails"), RD_IconKind_Null}, -{str8_lit_comp("lang"), str8_lit_comp("langs"), str8_lit_comp("Language"), str8_lit_comp("Languages"), RD_IconKind_Null}, -{str8_lit_comp("arch"), str8_lit_comp("archs"), str8_lit_comp("Architecture"), str8_lit_comp("Architectures"), RD_IconKind_Null}, -{str8_lit_comp("expr"), str8_lit_comp("exprs"), str8_lit_comp("Expression"), str8_lit_comp("Expressions"), RD_IconKind_Null}, -{str8_lit_comp("expression"), str8_lit_comp("expressions"), str8_lit_comp("Expression"), str8_lit_comp("Expressions"), RD_IconKind_Null}, -{str8_lit_comp("size"), str8_lit_comp("sizes"), str8_lit_comp("Size"), str8_lit_comp("Sizes"), RD_IconKind_Null}, -{str8_lit_comp("count"), str8_lit_comp("counts"), str8_lit_comp("Count"), str8_lit_comp("Counts"), RD_IconKind_Null}, -{str8_lit_comp("bool"), str8_lit_comp("bools"), str8_lit_comp("Boolean"), str8_lit_comp("Booleans"), RD_IconKind_Null}, -{str8_lit_comp("w"), str8_lit_comp("ws"), str8_lit_comp("Width"), str8_lit_comp("Widths"), RD_IconKind_Null}, -{str8_lit_comp("h"), str8_lit_comp("hs"), str8_lit_comp("Height"), str8_lit_comp("Heights"), RD_IconKind_Null}, -{str8_lit_comp("fmt"), str8_lit_comp("fmts"), str8_lit_comp("Format"), str8_lit_comp("Formats"), RD_IconKind_Null}, -{str8_lit_comp("addresses"), str8_lit_comp("addresses"), str8_lit_comp("Addresses"), str8_lit_comp("Addresses"), RD_IconKind_Null}, -{str8_lit_comp("code_bytes"), str8_lit_comp("code_bytes"), str8_lit_comp("Code Bytes"), str8_lit_comp("Code Bytes"), RD_IconKind_Null}, -{str8_lit_comp("vtx"), str8_lit_comp("vtxs"), str8_lit_comp("Vertex Buffer"), str8_lit_comp("Vertex Buffers"), RD_IconKind_Null}, -{str8_lit_comp("vtx_size"), str8_lit_comp("vtx_sizes"), str8_lit_comp("Vertex Buffer Size"), str8_lit_comp("Vertex Buffer Sizes"), RD_IconKind_Null}, -{str8_lit_comp("label"), str8_lit_comp("labels"), str8_lit_comp("Label"), str8_lit_comp("Labels"), RD_IconKind_Null}, -{str8_lit_comp("thread"), str8_lit_comp("threads"), str8_lit_comp("Thread"), str8_lit_comp("Threads"), RD_IconKind_Thread}, -{str8_lit_comp("threads"), str8_lit_comp(""), str8_lit_comp("Threads"), str8_lit_comp(""), RD_IconKind_Threads}, -{str8_lit_comp("process"), str8_lit_comp("processes"), str8_lit_comp("Process"), str8_lit_comp("Processes"), RD_IconKind_Scheduler}, -{str8_lit_comp("processes"), str8_lit_comp(""), str8_lit_comp("Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, -{str8_lit_comp("machine"), str8_lit_comp("machines"), str8_lit_comp("Machine"), str8_lit_comp("Machines"), RD_IconKind_Machine}, -{str8_lit_comp("module"), str8_lit_comp("modules"), str8_lit_comp("Module"), str8_lit_comp("Modules"), RD_IconKind_Module}, -{str8_lit_comp("getting_started"), str8_lit_comp(""), str8_lit_comp("Getting Started"), str8_lit_comp(""), RD_IconKind_QuestionMark}, -{str8_lit_comp("disasm"), str8_lit_comp(""), str8_lit_comp("Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, -{str8_lit_comp("text"), str8_lit_comp(""), str8_lit_comp("Text"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("type"), str8_lit_comp("types"), str8_lit_comp("Type"), str8_lit_comp("Types"), RD_IconKind_Null}, -{str8_lit_comp("procedure"), str8_lit_comp("procedures"), str8_lit_comp("Procedure"), str8_lit_comp("Procedures"), RD_IconKind_Null}, -{str8_lit_comp("global_variable"), str8_lit_comp("global_variables"), str8_lit_comp("Global Variable"), str8_lit_comp("Global Variables"), RD_IconKind_Null}, -{str8_lit_comp("global"), str8_lit_comp("globals"), str8_lit_comp("Global"), str8_lit_comp("Globals"), RD_IconKind_Null}, -{str8_lit_comp("thread_variable"), str8_lit_comp("thread_variables"), str8_lit_comp("Thread Variable"), str8_lit_comp("Thread Variables"), RD_IconKind_Null}, -{str8_lit_comp("thread_local"), str8_lit_comp("thread_locals"), str8_lit_comp("Thread Local"), str8_lit_comp("Thread Locals"), RD_IconKind_Null}, -{str8_lit_comp("call_stack"), str8_lit_comp("call_stacks"), str8_lit_comp("Call Stack"), str8_lit_comp("Call Stacks"), RD_IconKind_Thread}, -{str8_lit_comp("output"), str8_lit_comp("outputs"), str8_lit_comp("Output"), str8_lit_comp("Outputs"), RD_IconKind_List}, -{str8_lit_comp("scheduler"), str8_lit_comp("schedulers"), str8_lit_comp("Scheduler"), str8_lit_comp("Schedulers"), RD_IconKind_Scheduler}, -{str8_lit_comp("register"), str8_lit_comp("registers"), str8_lit_comp("Register"), str8_lit_comp("Registers"), RD_IconKind_Null}, -{str8_lit_comp("local"), str8_lit_comp("locals"), str8_lit_comp("Local"), str8_lit_comp("Locals"), RD_IconKind_Null}, -{str8_lit_comp("memory"), str8_lit_comp("memories"), str8_lit_comp("Memory"), str8_lit_comp("Memories"), RD_IconKind_Grid}, -{str8_lit_comp("hit_count"), str8_lit_comp("hit_counts"), str8_lit_comp("Hit Count"), str8_lit_comp("Hit Counts"), RD_IconKind_Null}, -{str8_lit_comp("enabled"), str8_lit_comp(""), str8_lit_comp("Enabled"), str8_lit_comp("Enabled"), RD_IconKind_Null}, -{str8_lit_comp("disabled"), str8_lit_comp(""), str8_lit_comp("Disabled"), str8_lit_comp("Disabled"), RD_IconKind_Null}, -{str8_lit_comp("debug_subprocesses"), str8_lit_comp(""), str8_lit_comp("Debug Subprocesses"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("environment"), str8_lit_comp("environments"), str8_lit_comp("Environment"), str8_lit_comp("Environments"), RD_IconKind_Null}, -{str8_lit_comp("frozen"), str8_lit_comp(""), str8_lit_comp("Frozen"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("id"), str8_lit_comp("ids"), str8_lit_comp("ID"), str8_lit_comp("IDs"), RD_IconKind_Null}, -{str8_lit_comp("last_modified_time"), str8_lit_comp("last_modified_times"), str8_lit_comp("Last Modified Time"), str8_lit_comp("Last Modified Times"), RD_IconKind_Null}, -{str8_lit_comp("creation_time"), str8_lit_comp("creation_times"), str8_lit_comp("Creation Time"), str8_lit_comp("Creation Times"), RD_IconKind_Null}, -{str8_lit_comp("data"), str8_lit_comp("datas"), str8_lit_comp("Data"), str8_lit_comp("Datas"), RD_IconKind_Null}, -{str8_lit_comp("unattached_processes"), str8_lit_comp(""), str8_lit_comp("Unattached Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, -{str8_lit_comp("user"), str8_lit_comp("users"), str8_lit_comp("User"), str8_lit_comp("Users"), RD_IconKind_Person}, -{str8_lit_comp("project"), str8_lit_comp("projects"), str8_lit_comp("Project"), str8_lit_comp("Projects"), RD_IconKind_Briefcase}, -{str8_lit_comp("recent_project"), str8_lit_comp("recent_projects"), str8_lit_comp("Recent Project"), str8_lit_comp("Recent Projects"), RD_IconKind_Briefcase}, -{str8_lit_comp("recent_file"), str8_lit_comp("recent_files"), str8_lit_comp("Recent File"), str8_lit_comp("Recent Files"), RD_IconKind_FileOutline}, -{str8_lit_comp("show_addresses"), str8_lit_comp(""), str8_lit_comp("Show Addresses"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("show_code_bytes"), str8_lit_comp(""), str8_lit_comp("Show Code Bytes"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("show_source_lines"), str8_lit_comp(""), str8_lit_comp("Show Source Lines"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("show_symbol_names"), str8_lit_comp(""), str8_lit_comp("Show Symbol Names"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("show_line_numbers"), str8_lit_comp(""), str8_lit_comp("Show Line Numbers"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("syntax"), str8_lit_comp("syntaxes"), str8_lit_comp("Syntax"), str8_lit_comp("Syntaxes"), RD_IconKind_Null}, -{str8_lit_comp("num_columns"), str8_lit_comp(""), str8_lit_comp("Number of Columns"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("bytes_per_cell"), str8_lit_comp(""), str8_lit_comp("Bytes Per Cell"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("bitmap"), str8_lit_comp("bitmaps"), str8_lit_comp("Bitmap"), str8_lit_comp("Bitmaps"), RD_IconKind_Bitmap}, -{str8_lit_comp("geo3d"), str8_lit_comp(""), str8_lit_comp("Geometry (3D)"), str8_lit_comp(""), RD_IconKind_Cube}, -{str8_lit_comp("address_range_size"), str8_lit_comp("address_range_sizes"), str8_lit_comp("Address Range Size"), str8_lit_comp("Address Range Sizes"), RD_IconKind_Null}, -{str8_lit_comp("break_on_read"), str8_lit_comp(""), str8_lit_comp("Break On Read"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("break_on_write"), str8_lit_comp(""), str8_lit_comp("Break On Write"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("break_on_execute"), str8_lit_comp(""), str8_lit_comp("Break On Execution"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("yaw"), str8_lit_comp(""), str8_lit_comp("Yaw"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("pitch"), str8_lit_comp(""), str8_lit_comp("Pitch"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("zoom"), str8_lit_comp(""), str8_lit_comp("Zoom"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("font_size"), str8_lit_comp(""), str8_lit_comp("Font Size"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("row_height"), str8_lit_comp(""), str8_lit_comp("Row Height"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("tab_height"), str8_lit_comp(""), str8_lit_comp("Tab Height"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("rgba"), str8_lit_comp(""), str8_lit_comp("RGBA"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("path"), str8_lit_comp(""), str8_lit_comp("Path"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("guid"), str8_lit_comp(""), str8_lit_comp("GUID"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("launch_and_run"), str8_lit_comp(""), str8_lit_comp("Launch and Run"), str8_lit_comp(""), RD_IconKind_Play}, -{str8_lit_comp("launch_and_step_into"), str8_lit_comp(""), str8_lit_comp("Launch and Step Into"), str8_lit_comp(""), RD_IconKind_PlayStepForward}, -{str8_lit_comp("kill"), str8_lit_comp(""), str8_lit_comp("Kill"), str8_lit_comp(""), RD_IconKind_X}, -{str8_lit_comp("kill_all"), str8_lit_comp(""), str8_lit_comp("Kill All"), str8_lit_comp(""), RD_IconKind_Stop}, -{str8_lit_comp("detach"), str8_lit_comp(""), str8_lit_comp("Detach"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("continue"), str8_lit_comp(""), str8_lit_comp("Continue"), str8_lit_comp(""), RD_IconKind_Play}, -{str8_lit_comp("step_into_inst"), str8_lit_comp(""), str8_lit_comp("Step Into (Assembly)"), str8_lit_comp(""), RD_IconKind_StepInto}, -{str8_lit_comp("step_over_inst"), str8_lit_comp(""), str8_lit_comp("Step Over (Assembly)"), str8_lit_comp(""), RD_IconKind_StepOver}, -{str8_lit_comp("step_into_line"), str8_lit_comp(""), str8_lit_comp("Step Into (Line)"), str8_lit_comp(""), RD_IconKind_StepInto}, -{str8_lit_comp("step_over_line"), str8_lit_comp(""), str8_lit_comp("Step Over (Line)"), str8_lit_comp(""), RD_IconKind_StepOver}, -{str8_lit_comp("step_out"), str8_lit_comp(""), str8_lit_comp("Step Out"), str8_lit_comp(""), RD_IconKind_StepOut}, -{str8_lit_comp("halt"), str8_lit_comp(""), str8_lit_comp("Halt"), str8_lit_comp(""), RD_IconKind_Pause}, -{str8_lit_comp("soft_halt_refresh"), str8_lit_comp(""), str8_lit_comp("Soft Halt Refresh"), str8_lit_comp(""), RD_IconKind_Refresh}, -{str8_lit_comp("set_thread_ip"), str8_lit_comp(""), str8_lit_comp("Set Thread IP"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("run_to_line"), str8_lit_comp(""), str8_lit_comp("Run To Line"), str8_lit_comp(""), RD_IconKind_Play}, -{str8_lit_comp("run"), str8_lit_comp(""), str8_lit_comp("Run"), str8_lit_comp(""), RD_IconKind_Play}, -{str8_lit_comp("restart"), str8_lit_comp(""), str8_lit_comp("Restart"), str8_lit_comp(""), RD_IconKind_Redo}, -{str8_lit_comp("step_into"), str8_lit_comp(""), str8_lit_comp("Step Into"), str8_lit_comp(""), RD_IconKind_StepInto}, -{str8_lit_comp("step_over"), str8_lit_comp(""), str8_lit_comp("Step Over"), str8_lit_comp(""), RD_IconKind_StepOver}, -{str8_lit_comp("freeze_thread"), str8_lit_comp(""), str8_lit_comp("Freeze Thread"), str8_lit_comp(""), RD_IconKind_Locked}, -{str8_lit_comp("thaw_thread"), str8_lit_comp(""), str8_lit_comp("Thaw Thread"), str8_lit_comp(""), RD_IconKind_Unlocked}, -{str8_lit_comp("freeze_process"), str8_lit_comp(""), str8_lit_comp("Freeze Process"), str8_lit_comp(""), RD_IconKind_Locked}, -{str8_lit_comp("thaw_process"), str8_lit_comp(""), str8_lit_comp("Thaw Process"), str8_lit_comp(""), RD_IconKind_Unlocked}, -{str8_lit_comp("freeze_machine"), str8_lit_comp(""), str8_lit_comp("Freeze Machine"), str8_lit_comp(""), RD_IconKind_Locked}, -{str8_lit_comp("thaw_machine"), str8_lit_comp(""), str8_lit_comp("Thaw Machine"), str8_lit_comp(""), RD_IconKind_Unlocked}, -{str8_lit_comp("freeze_local_machine"), str8_lit_comp(""), str8_lit_comp("Freeze Local Machine"), str8_lit_comp(""), RD_IconKind_Machine}, -{str8_lit_comp("thaw_local_machine"), str8_lit_comp(""), str8_lit_comp("Thaw Local Machine"), str8_lit_comp(""), RD_IconKind_Machine}, -{str8_lit_comp("freeze_entity"), str8_lit_comp(""), str8_lit_comp("Freeze Entity"), str8_lit_comp(""), RD_IconKind_Unlocked}, -{str8_lit_comp("thaw_entity"), str8_lit_comp(""), str8_lit_comp("Thaw Entity"), str8_lit_comp(""), RD_IconKind_Locked}, -{str8_lit_comp("set_entity_color"), str8_lit_comp(""), str8_lit_comp("Set Entity Color"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("set_entity_name"), str8_lit_comp(""), str8_lit_comp("Set Entity Name"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("attach"), str8_lit_comp(""), str8_lit_comp("Attach"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("exit"), str8_lit_comp(""), str8_lit_comp("Exit"), str8_lit_comp(""), RD_IconKind_X}, -{str8_lit_comp("open_palette"), str8_lit_comp(""), str8_lit_comp("Open Palette"), str8_lit_comp(""), RD_IconKind_List}, -{str8_lit_comp("run_command"), str8_lit_comp(""), str8_lit_comp("Run Command"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp("Run External Driver Text Command"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp("OS Event"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("select_thread"), str8_lit_comp(""), str8_lit_comp("Select Thread"), str8_lit_comp(""), RD_IconKind_Thread}, -{str8_lit_comp("select_unwind"), str8_lit_comp(""), str8_lit_comp("Select Unwind"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("up_one_frame"), str8_lit_comp(""), str8_lit_comp("Up One Frame"), str8_lit_comp(""), RD_IconKind_UpArrow}, -{str8_lit_comp("down_one_frame"), str8_lit_comp(""), str8_lit_comp("Down One Frame"), str8_lit_comp(""), RD_IconKind_DownArrow}, -{str8_lit_comp("select_entity"), str8_lit_comp(""), str8_lit_comp("Select"), str8_lit_comp(""), RD_IconKind_RadioHollow}, -{str8_lit_comp("deselect_entity"), str8_lit_comp(""), str8_lit_comp("Deselect"), str8_lit_comp(""), RD_IconKind_RadioFilled}, -{str8_lit_comp("inc_window_font_size"), str8_lit_comp(""), str8_lit_comp("Increase Window Font Size"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("dec_window_font_size"), str8_lit_comp(""), str8_lit_comp("Decrease Window Font Size"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("inc_view_font_size"), str8_lit_comp(""), str8_lit_comp("Increase View Font Size"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("dec_view_font_size"), str8_lit_comp(""), str8_lit_comp("Decrease View Font Size"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("open_window"), str8_lit_comp(""), str8_lit_comp("Open New Window"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("window_settings"), str8_lit_comp(""), str8_lit_comp("Window Settings"), str8_lit_comp(""), RD_IconKind_Gear}, -{str8_lit_comp("close_window"), str8_lit_comp(""), str8_lit_comp("Close Window"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("toggle_fullscreen"), str8_lit_comp(""), str8_lit_comp("Toggle Fullscreen"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("bring_to_front"), str8_lit_comp(""), str8_lit_comp("Bring To Front"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("popup_accept"), str8_lit_comp(""), str8_lit_comp("Popup Accept"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("popup_cancel"), str8_lit_comp(""), str8_lit_comp("Popup Cancel"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("reset_to_default_bindings"), str8_lit_comp(""), str8_lit_comp("Reset To Default Bindings"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("reset_to_default_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Default Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("reset_to_compact_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Compact Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("reset_to_simple_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Simple Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, -{str8_lit_comp("new_panel_left"), str8_lit_comp(""), str8_lit_comp("Split Panel Left"), str8_lit_comp(""), RD_IconKind_XSplit}, -{str8_lit_comp("new_panel_up"), str8_lit_comp(""), str8_lit_comp("Split Panel Up"), str8_lit_comp(""), RD_IconKind_YSplit}, -{str8_lit_comp("new_panel_right"), str8_lit_comp(""), str8_lit_comp("Split Panel Right"), str8_lit_comp(""), RD_IconKind_XSplit}, -{str8_lit_comp("new_panel_down"), str8_lit_comp(""), str8_lit_comp("Split Panel Down"), str8_lit_comp(""), RD_IconKind_YSplit}, -{str8_lit_comp("split_panel"), str8_lit_comp(""), str8_lit_comp("Split Panel"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("rotate_panel_columns"), str8_lit_comp(""), str8_lit_comp("Rotate Panel Columns"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("next_panel"), str8_lit_comp(""), str8_lit_comp("Focus Next Panel"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("prev_panel"), str8_lit_comp(""), str8_lit_comp("Focus Previous Panel"), str8_lit_comp(""), RD_IconKind_LeftArrow}, -{str8_lit_comp("focus_panel"), str8_lit_comp(""), str8_lit_comp("Focus Panel"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("focus_panel_right"), str8_lit_comp(""), str8_lit_comp("Focus Panel Right"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("focus_panel_left"), str8_lit_comp(""), str8_lit_comp("Focus Panel Left"), str8_lit_comp(""), RD_IconKind_LeftArrow}, -{str8_lit_comp("focus_panel_up"), str8_lit_comp(""), str8_lit_comp("Focus Panel Up"), str8_lit_comp(""), RD_IconKind_UpArrow}, -{str8_lit_comp("focus_panel_down"), str8_lit_comp(""), str8_lit_comp("Focus Panel Down"), str8_lit_comp(""), RD_IconKind_DownArrow}, -{str8_lit_comp("undo"), str8_lit_comp(""), str8_lit_comp("Undo"), str8_lit_comp(""), RD_IconKind_Undo}, -{str8_lit_comp("redo"), str8_lit_comp(""), str8_lit_comp("Redo"), str8_lit_comp(""), RD_IconKind_Redo}, -{str8_lit_comp("go_back"), str8_lit_comp(""), str8_lit_comp("Go Back"), str8_lit_comp(""), RD_IconKind_LeftArrow}, -{str8_lit_comp("go_forward"), str8_lit_comp(""), str8_lit_comp("Go Forward"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("close_panel"), str8_lit_comp(""), str8_lit_comp("Close Panel"), str8_lit_comp(""), RD_IconKind_ClosePanel}, -{str8_lit_comp("focus_tab"), str8_lit_comp(""), str8_lit_comp("Focus Tab"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("next_tab"), str8_lit_comp(""), str8_lit_comp("Focus Next Tab"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("prev_tab"), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), str8_lit_comp(""), RD_IconKind_LeftArrow}, -{str8_lit_comp("move_tab_right"), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("move_tab_left"), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), str8_lit_comp(""), RD_IconKind_LeftArrow}, -{str8_lit_comp("open_tab"), str8_lit_comp(""), str8_lit_comp("Open New Tab"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("build_tab"), str8_lit_comp(""), str8_lit_comp("Build Tab"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("duplicate_tab"), str8_lit_comp(""), str8_lit_comp("Duplicate Tab"), str8_lit_comp(""), RD_IconKind_Duplicate}, -{str8_lit_comp("copy_tab_full_path"), str8_lit_comp(""), str8_lit_comp("Copy Full Path"), str8_lit_comp(""), RD_IconKind_Clipboard}, -{str8_lit_comp("close_tab"), str8_lit_comp(""), str8_lit_comp("Close Tab"), str8_lit_comp(""), RD_IconKind_X}, -{str8_lit_comp("move_view"), str8_lit_comp(""), str8_lit_comp("Move View"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("tab_bar_top"), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Top"), str8_lit_comp(""), RD_IconKind_UpArrow}, -{str8_lit_comp("tab_bar_bottom"), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Bottom"), str8_lit_comp(""), RD_IconKind_DownArrow}, -{str8_lit_comp("tab_settings"), str8_lit_comp(""), str8_lit_comp("Tab Settings"), str8_lit_comp(""), RD_IconKind_Gear}, -{str8_lit_comp("set_current_path"), str8_lit_comp(""), str8_lit_comp("Set Current Path"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("open"), str8_lit_comp(""), str8_lit_comp("Open"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("switch"), str8_lit_comp(""), str8_lit_comp("Switch"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("switch_to_partner_file"), str8_lit_comp(""), str8_lit_comp("Switch To Partner File"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("record_file_in_project"), str8_lit_comp(""), str8_lit_comp("Record File In Project"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("show_file_in_explorer"), str8_lit_comp(""), str8_lit_comp("Show File In Explorer"), str8_lit_comp(""), RD_IconKind_FolderClosedFilled}, -{str8_lit_comp("go_to_disassembly"), str8_lit_comp(""), str8_lit_comp("Go To Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, -{str8_lit_comp("go_to_source"), str8_lit_comp(""), str8_lit_comp("Go To Source"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("set_file_replacement_path"), str8_lit_comp(""), str8_lit_comp("Set File Replacement Path"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("new_user"), str8_lit_comp(""), str8_lit_comp("New User"), str8_lit_comp(""), RD_IconKind_Add}, -{str8_lit_comp("new_project"), str8_lit_comp(""), str8_lit_comp("New Project"), str8_lit_comp(""), RD_IconKind_Add}, -{str8_lit_comp("open_user"), str8_lit_comp(""), str8_lit_comp("Open User"), str8_lit_comp(""), RD_IconKind_Person}, -{str8_lit_comp("open_project"), str8_lit_comp(""), str8_lit_comp("Open Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, -{str8_lit_comp("open_recent_project"), str8_lit_comp(""), str8_lit_comp("Open Recent Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, -{str8_lit_comp("save_user"), str8_lit_comp(""), str8_lit_comp("Save User"), str8_lit_comp(""), RD_IconKind_Save}, -{str8_lit_comp("save_project"), str8_lit_comp(""), str8_lit_comp("Save Project"), str8_lit_comp(""), RD_IconKind_Save}, -{str8_lit_comp("record_user_as_last_opened"), str8_lit_comp(""), str8_lit_comp("Record User As Last Opened"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("record_project_in_user"), str8_lit_comp(""), str8_lit_comp("Records Project In User"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("write_user_data"), str8_lit_comp(""), str8_lit_comp("Write User Data"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("write_project_data"), str8_lit_comp(""), str8_lit_comp("Write Project Data"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("user_settings"), str8_lit_comp(""), str8_lit_comp("User Settings"), str8_lit_comp(""), RD_IconKind_Gear}, -{str8_lit_comp("project_settings"), str8_lit_comp(""), str8_lit_comp("Project Settings"), str8_lit_comp(""), RD_IconKind_Gear}, -{str8_lit_comp("edit"), str8_lit_comp(""), str8_lit_comp("Edit"), str8_lit_comp(""), RD_IconKind_Pencil}, -{str8_lit_comp("accept"), str8_lit_comp(""), str8_lit_comp("Accept"), str8_lit_comp(""), RD_IconKind_CheckFilled}, -{str8_lit_comp("cancel"), str8_lit_comp(""), str8_lit_comp("Cancel"), str8_lit_comp(""), RD_IconKind_X}, -{str8_lit_comp("move_left"), str8_lit_comp(""), str8_lit_comp("Move Left"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_right"), str8_lit_comp(""), str8_lit_comp("Move Right"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up"), str8_lit_comp(""), str8_lit_comp("Move Up"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down"), str8_lit_comp(""), str8_lit_comp("Move Down"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_left_select"), str8_lit_comp(""), str8_lit_comp("Move Left Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_right_select"), str8_lit_comp(""), str8_lit_comp("Move Right Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_select"), str8_lit_comp(""), str8_lit_comp("Move Up Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_select"), str8_lit_comp(""), str8_lit_comp("Move Down Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_left_chunk"), str8_lit_comp(""), str8_lit_comp("Move Left Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_right_chunk"), str8_lit_comp(""), str8_lit_comp("Move Right Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_chunk"), str8_lit_comp(""), str8_lit_comp("Move Up Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_chunk"), str8_lit_comp(""), str8_lit_comp("Move Down Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_page"), str8_lit_comp(""), str8_lit_comp("Move Up Page"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_page"), str8_lit_comp(""), str8_lit_comp("Move Down Page"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_whole"), str8_lit_comp(""), str8_lit_comp("Move Up Whole"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_whole"), str8_lit_comp(""), str8_lit_comp("Move Down Whole"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_left_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Left Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_right_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Right Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Up Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Down Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_page_select"), str8_lit_comp(""), str8_lit_comp("Move Up Page Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_page_select"), str8_lit_comp(""), str8_lit_comp("Move Down Page Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_whole_select"), str8_lit_comp(""), str8_lit_comp("Move Up Whole Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_whole_select"), str8_lit_comp(""), str8_lit_comp("Move Down Whole Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_up_reorder"), str8_lit_comp(""), str8_lit_comp("Move Up Reorder"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_down_reorder"), str8_lit_comp(""), str8_lit_comp("Move Down Reorder"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_home"), str8_lit_comp(""), str8_lit_comp("Move Home"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_end"), str8_lit_comp(""), str8_lit_comp("Move End"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_home_select"), str8_lit_comp(""), str8_lit_comp("Move Home Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_end_select"), str8_lit_comp(""), str8_lit_comp("Move End Select"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("select_all"), str8_lit_comp(""), str8_lit_comp("Select All"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("delete_single"), str8_lit_comp(""), str8_lit_comp("Delete Single"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("delete_chunk"), str8_lit_comp(""), str8_lit_comp("Delete Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("backspace_single"), str8_lit_comp(""), str8_lit_comp("Backspace Single"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("backspace_chunk"), str8_lit_comp(""), str8_lit_comp("Backspace Chunk"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("copy"), str8_lit_comp(""), str8_lit_comp("Copy"), str8_lit_comp(""), RD_IconKind_Clipboard}, -{str8_lit_comp("cut"), str8_lit_comp(""), str8_lit_comp("Cut"), str8_lit_comp(""), RD_IconKind_Clipboard}, -{str8_lit_comp("paste"), str8_lit_comp(""), str8_lit_comp("Paste"), str8_lit_comp(""), RD_IconKind_Clipboard}, -{str8_lit_comp("insert_text"), str8_lit_comp(""), str8_lit_comp("Insert Text"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_next"), str8_lit_comp(""), str8_lit_comp("Move Next"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("move_prev"), str8_lit_comp(""), str8_lit_comp("Move Previous"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("goto_line"), str8_lit_comp(""), str8_lit_comp("Go To Line"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("goto_address"), str8_lit_comp(""), str8_lit_comp("Go To Address"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("center_cursor"), str8_lit_comp(""), str8_lit_comp("Center Cursor"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("contain_cursor"), str8_lit_comp(""), str8_lit_comp("Contain Cursor"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("find_next"), str8_lit_comp(""), str8_lit_comp("Find Next"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("find_prev"), str8_lit_comp(""), str8_lit_comp("Find Previous"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("find_thread"), str8_lit_comp(""), str8_lit_comp("Find Thread"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("find_selected_thread"), str8_lit_comp(""), str8_lit_comp("Find Selected Thread"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("goto_name"), str8_lit_comp(""), str8_lit_comp("Go To Name"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("goto_name_at_cursor"), str8_lit_comp(""), str8_lit_comp("Go To Name At Cursor"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("toggle_watch_expr"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Cursor"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Mouse"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("enable_cfg"), str8_lit_comp(""), str8_lit_comp("Enable"), str8_lit_comp(""), RD_IconKind_CheckHollow}, -{str8_lit_comp("disable_cfg"), str8_lit_comp(""), str8_lit_comp("Disable"), str8_lit_comp(""), RD_IconKind_CheckFilled}, -{str8_lit_comp("select_cfg"), str8_lit_comp(""), str8_lit_comp("Select"), str8_lit_comp(""), RD_IconKind_RadioHollow}, -{str8_lit_comp("deselect_cfg"), str8_lit_comp(""), str8_lit_comp("Deselect"), str8_lit_comp(""), RD_IconKind_RadioFilled}, -{str8_lit_comp("remove_cfg"), str8_lit_comp(""), str8_lit_comp("Remove"), str8_lit_comp(""), RD_IconKind_Trash}, -{str8_lit_comp("name_cfg"), str8_lit_comp(""), str8_lit_comp("Name"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("condition_cfg"), str8_lit_comp(""), str8_lit_comp("Condition"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("duplicate_cfg"), str8_lit_comp(""), str8_lit_comp("Duplicate"), str8_lit_comp(""), RD_IconKind_Duplicate}, -{str8_lit_comp("relocate_cfg"), str8_lit_comp(""), str8_lit_comp("Relocate"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("save_cfg_to_project"), str8_lit_comp(""), str8_lit_comp("Save To Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, -{str8_lit_comp("add_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Line Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, -{str8_lit_comp("add_address_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, -{str8_lit_comp("add_function_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, -{str8_lit_comp("toggle_breakpoint"), str8_lit_comp(""), str8_lit_comp("Toggle Line Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, -{str8_lit_comp("remove_breakpoint"), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), str8_lit_comp(""), RD_IconKind_Trash}, -{str8_lit_comp("enable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckFilled}, -{str8_lit_comp("disable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckHollow}, -{str8_lit_comp("clear_breakpoints"), str8_lit_comp(""), str8_lit_comp("Clear Breakpoints"), str8_lit_comp(""), RD_IconKind_Trash}, -{str8_lit_comp("list_breakpoints"), str8_lit_comp(""), str8_lit_comp("List Breakpoints"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("clear_output"), str8_lit_comp(""), str8_lit_comp("Clear Output"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("add_watch_pin"), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, -{str8_lit_comp("toggle_watch_pin"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, -{str8_lit_comp("load_debug_info"), str8_lit_comp(""), str8_lit_comp("Load Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, -{str8_lit_comp("unload_debug_info"), str8_lit_comp(""), str8_lit_comp("Unload Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, -{str8_lit_comp("add_type_view"), str8_lit_comp(""), str8_lit_comp("Add Type View"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("add_file_path_map"), str8_lit_comp(""), str8_lit_comp("Add File Path Map"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("edit_user_theme"), str8_lit_comp(""), str8_lit_comp("Edit User Theme"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("edit_project_theme"), str8_lit_comp(""), str8_lit_comp("Edit Project Theme"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("add_theme_color"), str8_lit_comp(""), str8_lit_comp("Add Theme Color"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("fork_theme"), str8_lit_comp(""), str8_lit_comp("Fork Theme"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("save_theme"), str8_lit_comp(""), str8_lit_comp("Save Theme"), str8_lit_comp(""), RD_IconKind_Save}, -{str8_lit_comp("save_and_set_theme"), str8_lit_comp(""), str8_lit_comp("Save And Set Theme"), str8_lit_comp(""), RD_IconKind_Save}, -{str8_lit_comp("set_next_statement"), str8_lit_comp(""), str8_lit_comp("Set Next Statement"), str8_lit_comp(""), RD_IconKind_RightArrow}, -{str8_lit_comp("add_target"), str8_lit_comp(""), str8_lit_comp("Add Target"), str8_lit_comp(""), RD_IconKind_Target}, -{str8_lit_comp("select_target"), str8_lit_comp(""), str8_lit_comp("Select Target"), str8_lit_comp(""), RD_IconKind_Target}, -{str8_lit_comp("enable_target"), str8_lit_comp(""), str8_lit_comp("Enable Target"), str8_lit_comp(""), RD_IconKind_CheckFilled}, -{str8_lit_comp("disable_target"), str8_lit_comp(""), str8_lit_comp("Disable Target"), str8_lit_comp(""), RD_IconKind_CheckHollow}, -{str8_lit_comp("remove_target"), str8_lit_comp(""), str8_lit_comp("Remove Target"), str8_lit_comp(""), RD_IconKind_Trash}, -{str8_lit_comp("register_as_jit_debugger"), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("find_code_location"), str8_lit_comp(""), str8_lit_comp("Find Code Location"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("search"), str8_lit_comp(""), str8_lit_comp("Search"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("search_backwards"), str8_lit_comp(""), str8_lit_comp("Search Backwards"), str8_lit_comp(""), RD_IconKind_Find}, -{str8_lit_comp("pick_file"), str8_lit_comp(""), str8_lit_comp("Pick File"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("pick_folder"), str8_lit_comp(""), str8_lit_comp("Pick Folder"), str8_lit_comp(""), RD_IconKind_FolderOpenFilled}, -{str8_lit_comp("pick_file_or_folder"), str8_lit_comp(""), str8_lit_comp("Pick File/Folder"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("push_query"), str8_lit_comp(""), str8_lit_comp("Push Query"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("complete_query"), str8_lit_comp(""), str8_lit_comp("Complete Query"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("cancel_query"), str8_lit_comp(""), str8_lit_comp("Cancel Query"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("update_query"), str8_lit_comp(""), str8_lit_comp("Update Query"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("open_event_buffer"), str8_lit_comp(""), str8_lit_comp("Open Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("close_event_buffer"), str8_lit_comp(""), str8_lit_comp("Close Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("toggle_dev_menu"), str8_lit_comp(""), str8_lit_comp("Toggle Developer Menu"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("log_marker"), str8_lit_comp(""), str8_lit_comp("Log Marker"), str8_lit_comp(""), RD_IconKind_Null}, -{str8_lit_comp("watches"), str8_lit_comp(""), str8_lit_comp("Watch"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("locals"), str8_lit_comp(""), str8_lit_comp("Locals"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("registers"), str8_lit_comp(""), str8_lit_comp("Registers"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("globals"), str8_lit_comp(""), str8_lit_comp("Globals"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("thread_locals"), str8_lit_comp(""), str8_lit_comp("Thread Locals"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("types"), str8_lit_comp(""), str8_lit_comp("Types"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("procedures"), str8_lit_comp(""), str8_lit_comp("Procedures"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("call_stack"), str8_lit_comp(""), str8_lit_comp("Call Stack"), str8_lit_comp(""), RD_IconKind_Thread}, -{str8_lit_comp("targets"), str8_lit_comp(""), str8_lit_comp("Targets"), str8_lit_comp(""), RD_IconKind_Target}, -{str8_lit_comp("breakpoints"), str8_lit_comp(""), str8_lit_comp("Breakpoints"), str8_lit_comp(""), RD_IconKind_CircleFilled}, -{str8_lit_comp("watch_pins"), str8_lit_comp(""), str8_lit_comp("Watch Pins"), str8_lit_comp(""), RD_IconKind_Pin}, -{str8_lit_comp("debug_infos"), str8_lit_comp(""), str8_lit_comp("Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, -{str8_lit_comp("threads"), str8_lit_comp(""), str8_lit_comp("Threads"), str8_lit_comp(""), RD_IconKind_Threads}, -{str8_lit_comp("processes"), str8_lit_comp(""), str8_lit_comp("Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, -{str8_lit_comp("machines"), str8_lit_comp(""), str8_lit_comp("Machines"), str8_lit_comp(""), RD_IconKind_Machine}, -{str8_lit_comp("modules"), str8_lit_comp(""), str8_lit_comp("Modules"), str8_lit_comp(""), RD_IconKind_Module}, -{str8_lit_comp("file_path_maps"), str8_lit_comp(""), str8_lit_comp("File Path Map"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("type_views"), str8_lit_comp(""), str8_lit_comp("Type Views"), str8_lit_comp(""), RD_IconKind_Binoculars}, -{str8_lit_comp("output"), str8_lit_comp(""), str8_lit_comp("Output"), str8_lit_comp(""), RD_IconKind_List}, -{str8_lit_comp("text"), str8_lit_comp(""), str8_lit_comp("Text"), str8_lit_comp(""), RD_IconKind_FileOutline}, -{str8_lit_comp("disasm"), str8_lit_comp(""), str8_lit_comp("Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, -{str8_lit_comp("memory"), str8_lit_comp(""), str8_lit_comp("Memory"), str8_lit_comp(""), RD_IconKind_Grid}, -{str8_lit_comp("bitmap"), str8_lit_comp(""), str8_lit_comp("Bitmap"), str8_lit_comp(""), RD_IconKind_Bitmap}, -{str8_lit_comp("color"), str8_lit_comp(""), str8_lit_comp("Color"), str8_lit_comp(""), RD_IconKind_Palette}, -{str8_lit_comp("geo3d"), str8_lit_comp(""), str8_lit_comp("Geometry (3D)"), str8_lit_comp(""), RD_IconKind_Cube}, -}; - -RD_NameSchemaInfo rd_name_schema_info_table[26] = -{ -{str8_lit_comp("user"), str8_lit_comp("@expand_commands(edit_user_theme) x:\n{\n //- rjf: animations\n @display_name('Animations') @description(\"Enables animations.\")\n @default(1) 'animations': bool,\n @display_name('Scrolling Animations') @description(\"Enables scrolling animations.\")\n @expand_if(\"$.animations\") @default(1) 'scrolling_animations': bool,\n @display_name('Tooltip Animations') @description(\"Enables tooltip animations.\")\n @expand_if(\"$.animations\") @default(1) 'tooltip_animations': bool,\n @display_name('Menu Animations') @description(\"Enables menu animations.\")\n @expand_if(\"$.animations\") @default(1) 'menu_animations': bool,\n\n //- rjf: fonts\n @display_name('UI Font') @description(\"The name of, or path to, the font used when displaying non-code UI elements.\")\n @default('') 'main_font': string,\n @display_name('Code Font') @description(\"The name of, or path to, the font used when displaying code.\")\n @default('') 'code_font': string,\n\n //- rjf: theme\n @default(\"Default (Dark)\") @display_name('User Theme')\n @description(\"The user's theme, which describes all colors used throughout the UI.\")\n 'theme': string,\n @no_expand @display_name('User Theme')\n 'theme_colors': query,\n\n //- rjf: autocompletion\n @display_name('Autocompletion Lister') @description(\"Enables the autocompletion lister while typing expressions.\") @default(1)\n 'autocompletion_lister': bool,\n @display_name('View Call Argument Helper') @description(\"Enables the view call argument helper, which shows view arguments and documentation, while typing expressions.\") @default(1)\n 'view_call_argument_helper': bool,\n\n //- rjf: scope decorations\n @default(1) @display_name('Cursor Scope Lines') @description(\"Controls whether or not scopes containing the cursor in text views are drawn.\")\n 'cursor_scope_lines': bool,\n\n //- rjf: thread & breakpoint decorations\n @default(1) @display_name('Thread Lines') @description(\"Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.\")\n 'thread_lines': bool,\n @default(1) @display_name('Thread Glow') @description(\"Controls whether or not a glowing effect is drawn on the selected thread in source and disassembly views.\")\n 'thread_glow': bool,\n @default(1) @display_name('Breakpoint Lines') @description(\"Controls whether or not a long horizontal line is drawn before the line or instruction at which a breakpoint is placed, in source and disassembly views.\")\n 'breakpoint_lines': bool,\n @default(1) @display_name('Breakpoint Glow') @description(\"Controls whether or not a glowing effect is drawn on breakpoints in source and disassembly views.\")\n 'breakpoint_glow': bool,\n\n //- rjf: occluding background settings\n @default(0) @display_name('Opaque Backgrounds') @description(\"Controls whether or not all floating background colors are forced to be fully opaque.\")\n 'opaque_backgrounds': bool,\n @default(1) @display_name('Background Blur') @description(\"Controls whether or not occluded regions behind floating elements are blurred.\")\n 'background_blur': bool,\n\n //- rjf: appearance settings\n @default(1) @display_name('Drop Shadows') @description(\"Controls whether or not drop shadows are drawn.\")\n 'drop_shadows': bool,\n @default(1.f) @display_name('Rounded Corner Amount') @description(\"Controls the degree to which UI corners are rounded.\")\n 'rounded_corner_amount': @range[0, 1] f32,\n\n //- rjf: code formatting settings\n @default(2) @display_name('User Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: windows style menu bar\n @default(1) @display_name('Focus Menu Bar With Alt') @description(\"Mimics standard Windows behavior of focusing the menu bar using the Alt key.\")\n 'focus_menu_bar_with_alt': bool,\n\n //- rjf: native filesystem dialogues\n @default(0) @display_name('Use Native File System Dialog') @description(\"Uses the operating system's file system dialog box, rather than the debugger's built-in UI.\")\n 'use_native_file_system_dialog': bool,\n}\n")}, -{str8_lit_comp("project"), str8_lit_comp("@expand_commands(edit_project_theme) x:\n{\n @default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: visualizers\n @display_name('Use Default C++ STL Type Visualizers') @description(\"Enables the built-in type views for C++ STL types.\")\n @default(1) use_default_stl_type_views: bool,\n @display_name('Use Default Unreal Engine Type Visualizers') @description(\"Enables the built-in type views for Unreal Engine types.\")\n @default(1) use_default_ue_type_views: bool,\n\n //- rjf: theme\n @default(\"None\") @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme': string,\n @no_expand @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme_colors': query,\n\n //- rjf: exception settings\n @default(1) @display_name(\"Break On Win32 Control-C Exceptions\") @description(\"Code: 0x40010005\")\n win32_ctrl_c: bool;\n @default(1) @display_name(\"Break On Win32 Control-Break Exceptions\") @description(\"Code: 0x40010008\")\n win32_ctrl_break: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Originate Error Exceptions\") @description(\"Code: 0x40080201\")\n win32_win_rt_originate_error: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Transform Error Exceptions\") @description(\"Code: 0x40080202\")\n win32_win_rt_transform_error: bool;\n @default(0) @display_name(\"Break On Win32 RPC Call Cancelled Exceptions\") @description(\"Code: 0x0000071a\")\n win32_rpc_call_cancelled: bool;\n @default(0) @display_name(\"Break On Win32 Data Type Misalignment Exceptions\") @description(\"Code: 0x80000002\")\n win32_datatype_misalignment: bool;\n @default(1) @display_name(\"Break On Win32 Access Violation Exceptions\") @description(\"Code: 0xc0000005\")\n win32_access_violation: bool;\n @default(0) @display_name(\"Break On Win32 In Page Error Exceptions\") @description(\"Code: 0xc0000006\")\n win32_in_page_error: bool;\n @default(1) @display_name(\"Break On Win32 Invalid Handle Specified Exceptions\") @description(\"Code: 0xc0000008\")\n win32_invalid_handle: bool;\n @default(0) @display_name(\"Break On Win32 Not Enough Quota Exceptions\") @description(\"Code: 0xc0000017\")\n win32_not_enough_quota: bool;\n @default(0) @display_name(\"Break On Win32 Illegal Instruction Exceptions\") @description(\"Code: 0xc000001d\")\n win32_illegal_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Cannot Continue From Exception Exceptions\") @description(\"Code: 0xc0000025\")\n win32_cannot_continue_exception: bool;\n @default(0) @display_name(\"Break On Win32 Invalid Exception Disposition Returned By Handler Exceptions\") @description(\"Code: 0xc0000026\")\n win32_invalid_exception_disposition: bool;\n @default(0) @display_name(\"Break On Win32 Array Bounds Exceeded Exceptions\") @description(\"Code: 0xc000008c\")\n win32_array_bounds_exceeded: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Denormal Operand Exceptions\") @description(\"Code: 0xc000008d\")\n win32_floating_point_denormal_operand: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Division By Zero Exceptions\") @description(\"Code: 0xc000008e\")\n win32_floating_point_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Inexact Result Exceptions\") @description(\"Code: 0xc000008f\")\n win32_floating_point_inexact_result: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Invalid Operation Exceptions\") @description(\"Code: 0xc0000090\")\n win32_floating_point_invalid_operation: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Overflow Exceptions\") @description(\"Code: 0xc0000091\")\n win32_floating_point_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Stack Check Exceptions\") @description(\"Code: 0xc0000092\")\n win32_floating_point_stack_check: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Underflow Exceptions\") @description(\"Code: 0xc0000093\")\n win32_floating_point_underflow: bool;\n @default(0) @display_name(\"Break On Win32 Integer Division By Zero Exceptions\") @description(\"Code: 0xc0000094\")\n win32_integer_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Integer Overflow Exceptions\") @description(\"Code: 0xc0000095\")\n win32_integer_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Privileged Instruction Exceptions\") @description(\"Code: 0xc0000096\")\n win32_privileged_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Stack Overflow Exceptions\") @description(\"Code: 0xc00000fd\")\n win32_stack_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Unable To Locate DLL Exceptions\") @description(\"Code: 0xc0000135\")\n win32_unable_to_locate_dll: bool;\n @default(0) @display_name(\"Break On Win32 Ordinal Not Found Exceptions\") @description(\"Code: 0xc0000138\")\n win32_ordinal_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Entry Point Not Found Exceptions\") @description(\"Code: 0xc0000139\")\n win32_entry_point_not_found: bool;\n @default(0) @display_name(\"Break On Win32 DLL Initialization Failed Exceptions\") @description(\"Code: 0xc0000142\")\n win32_dll_initialization_failed: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Faults Exceptions\") @description(\"Code: 0xc00002b4\")\n win32_floating_point_sse_multiple_faults: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Traps Exceptions\") @description(\"Code: 0xc00002b5\")\n win32_floating_point_sse_multiple_traps: bool;\n @default(1) @display_name(\"Break On Win32 Assertion Failed Exceptions\") @description(\"Code: 0xc0000420\")\n win32_assertion_failed: bool;\n @default(0) @display_name(\"Break On Win32 Module Not Found Exceptions\") @description(\"Code: 0xc06d007e\")\n win32_module_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Procedure Not Found Exceptions\") @description(\"Code: 0xc06d007f\")\n win32_procedure_not_found: bool;\n @default(1) @display_name(\"Break On Win32 Sanitizer Error Detected Exceptions\") @description(\"Code: 0xe073616e\")\n win32_sanitizer_error_detected: bool;\n @default(0) @display_name(\"Break On Win32 Sanitizer Raw Access Violation Exceptions\") @description(\"Code: 0xe0736171\")\n win32_sanitizer_raw_access_violation: bool;\n @default(1) @display_name(\"Break On Win32 DirectX Debug Layer Exceptions\") @description(\"Code: 0x0000087a\")\n win32_directx_debug_layer: bool;\n}\n")}, -{str8_lit_comp("theme_color"), str8_lit_comp("@collection_commands(add_theme_color, fork_theme, save_theme, save_and_set_theme)\n@row_commands(duplicate_cfg, remove_cfg)\nx:\n{\n @display_name('Tags') tags: string,\n @display_name('Value') value: @color @hex u32,\n}\n")}, -{str8_lit_comp("window"), str8_lit_comp("x:\n{\n //- rjf: text rasterization settings\n @default(1) @display_name('Smooth UI Text') @description(\"Controls whether or not UI text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_ui_text': bool,\n @default(1) @display_name('Hint UI Text') @description(\"Controls whether or not UI text is hinted, for better text readability at small sizes.\")\n 'hint_ui_text': bool,\n @default(0) @display_name('Smooth Code Text') @description(\"Controls whether or not code text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_code_text': bool,\n @default(1) @display_name('Hint Code Text') @description(\"Controls whether or not code text is hinted, for better text readability at small sizes.\")\n 'hint_code_text': bool,\n @default(11) @display_name('Window Font Size') @description(\"Controls the window's default font size. Does not apply to tabs with their own font size set.\")\n 'font_size': @range[6, 72] u64,\n\n //- rjf: size settings\n @default(3.f) @display_name('Window Row Height') @description(\"Controls the window's default row height, in multiples of the font size. Does not apply to tabs with their own row height set.\")\n 'row_height': @range[1.75f, 5.f] f32,\n @default(3.f) @description(\"Controls the height of tabs, in multiples of the font size.\")\n 'tab_height': @range[1.75f, 5.f] f32,\n\n //- rjf: theme settings\n @default(1) @display_name('Use Project Theme') @description(\"Prefer using the project theme for this window, if any. If off, only the user's theme settings will be used.\")\n 'use_project_theme': bool,\n}\n")}, -{str8_lit_comp("tab"), str8_lit_comp("@row_commands(@file copy_tab_full_path, @file show_file_in_explorer, duplicate_tab, close_tab)\nx:\n{\n @override @display_name('Tab Font Size') @description(\"Controls the tab's font size.\") @no_callee_helper\n 'font_size': @range[6, 72] u64,\n}\n")}, -{str8_lit_comp("watch"), str8_lit_comp("@inherit(tab) x:\n{\n @override @display_name('Tab Row Height') @description(\"Controls the tab's row height, in multiples of the font size.\")\n 'row_height': @range[1.75f, 5.f] f32,\n 'label': code_string,\n @description(\"The root expression which is evaluated to produce the watch window.\")\n 'expression': expr_string,\n @no_expand 'watches': query,\n}\n")}, -{str8_lit_comp("list"), str8_lit_comp("x:\n{\n @description(\"An expression describing the first node in the list.\")\n 'expression': expr_string,\n @order(0) @description(\"The name of the member which encodes the link to the next node.\")\n 'member_name': code_string,\n}\n")}, -{str8_lit_comp("text"), str8_lit_comp("@inherit(tab) @expand_commands(@output clear_output) x:\n{\n @description(\"An expression to describe data which should be viewed as text or code.\")\n 'expression': expr_string,\n @description(\"The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.\")\n 'lang': code_string,\n @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers':bool,\n @no_callee_helper @default(1) @display_name('Line Wrapping') @description(\"Splits textual lines into multiple visual lines, so that all text is within the visible area.\")\n 'line_wrapping': bool,\n @no_callee_helper @default(0) @display_name('Scroll To Bottom On Change') @description(\"Scrolls to the bottom if the text is changed.\")\n 'scroll_to_bottom_on_change': bool,\n @no_callee_helper @no_revert @default(0) @display_name('Transient') @description(\"Controls whether or not this tab will be automatically replaced by the debugger when it snaps to new source code locations.\")\n 'auto': bool,\n}\n")}, -{str8_lit_comp("disasm"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression to describe the base address or offset of the disassembly.\")\n 'expression': expr_string,\n 'arch': code_string,\n 'syntax': code_string,\n 'size': expr_string,\n @no_callee_helper @default(1) @description(\"Controls whether or not addresses are shown in the disassembly text.\")\n 'show_addresses': bool,\n @no_callee_helper @default(0) @description(\"Controls whether or not code bytes are shown in the disassembly text.\")\n 'show_code_bytes': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not source lines, corresponding to disassembly instruction ranges, are shown in the disassembly text.\")\n 'show_source_lines': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not disassembly text is decorated with symbol names.\")\n 'show_symbol_names': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers': bool,\n\n}\n")}, -{str8_lit_comp("memory"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression which refers to the base address of data which should be viewed as memory.\")\n 'expression': expr_string,\n @display_name(\"Address Range Size\") @description(\"The number of bytes of the viewed memory range.\")\n 'size': expr_string,\n @display_name(\"Cursor Address\") @description(\"The address of the cursor.\")\n 'cursor': expr_string,\n @display_name(\"Cursor Size\") @description(\"The size, in bytes, of the cursor.\")\n 'cursor_size': @range[1, 16] u64,\n @default(16) @description(\"The number of columns to build before building new rows.\")\n 'num_columns': @range[1, 64] u64,\n @default(1) @display_name(\"Track Mark To Cursor\") @description(\"Ensures that the mark always follows the cursor, if the cursor value is updated.\")\n 'track_mark_to_cursor': bool,\n}\n")}, -{str8_lit_comp("bitmap"), str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression which refers to the base address of data which should be viewed as a bitmap.\")\n 'expression': expr_string,\n @description(\"An expression describing the width of the bitmap, in pixels.\") @order(0) 'w': u64,\n @description(\"An expression describing the height of the bitmap, in pixels.\") @order(1) 'h': u64,\n @display_name(\"Bitmap Format\") @description(\"The pixel format that the bitmap data should be interpreted as being within.\")\n 'fmt': code_string,\n}\n")}, -{str8_lit_comp("color"), str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Value\") @description(\"An expression to describe the value or location of the color.\")\n 'expression': expr_string,\n}\n")}, -{str8_lit_comp("geo3d"), str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Expression\") @description(\"An expression to describe the base address of the index buffer.\")\n 'expression': expr_string,\n 'count': expr_string,\n 'vtx': expr_string,\n 'vtx_size': expr_string,\n 'yaw': @range[0, 1] f32,\n 'pitch': @range[-0.5, 0] f32,\n 'zoom': @range[0, 100] f32,\n}\n")}, -{str8_lit_comp("getting_started"), str8_lit_comp("@inherit(tab) x:\n{\n}\n")}, -{str8_lit_comp("target"), str8_lit_comp("@row_commands(@cmd_line save_cfg_to_project, enable_cfg, launch_and_run, launch_and_step_into, duplicate_cfg, remove_cfg)\n@collection_commands(add_target)\nx:\n{\n 'label': code_string,\n 'executable': path,\n 'arguments': string,\n 'working_directory': path,\n 'entry_point': expr_string,\n 'stdout_path': @no_relativize path,\n 'stderr_path': @no_relativize path,\n 'stdin_path': @no_relativize path,\n 'environment': query,\n 'debug_subprocesses': bool,\n @no_revert @no_expand @default(0) 'enabled': bool,\n}\n")}, -{str8_lit_comp("breakpoint"), str8_lit_comp("@row_commands(enable_cfg, duplicate_cfg, remove_cfg)\n@collection_commands(toggle_breakpoint, add_breakpoint, add_address_breakpoint, add_function_breakpoint, clear_breakpoints)\nx:\n{\n 'label': code_string,\n 'condition': expr_string,\n 'source_location': path_pt,\n 'address_location': expr_string,\n 'hit_count': u64,\n 'address_range_size': @or(0, 1, 2, 4, 8) u64,\n 'break_on_write': bool,\n 'break_on_read': bool,\n 'break_on_execute': bool,\n @no_revert @no_expand @default(1) 'enabled': bool,\n}\n")}, -{str8_lit_comp("watch_pin"), str8_lit_comp("@row_commands(duplicate_cfg, remove_cfg)\n@collection_commands(add_watch_pin, toggle_watch_pin)\nx:\n{\n 'expression': expr_string,\n 'source_location': path_pt,\n 'address_location': expr_string,\n}\n")}, -{str8_lit_comp("debug_info"), str8_lit_comp("@row_commands(enable_cfg, duplicate_cfg, remove_cfg)\n@collection_commands(load_debug_info)\nx:\n{\n 'path': @no_relativize path,\n @query 'guid': string,\n @no_revert @no_expand @default(1) 'enabled': bool,\n}\n")}, -{str8_lit_comp("file_path_map"), str8_lit_comp("@collection_commands(add_file_path_map) @row_commands(remove_cfg) x:{'source': @no_relativize path, 'dest': @no_relativize path}")}, -{str8_lit_comp("type_view"), str8_lit_comp("@collection_commands(add_type_view) @row_commands(remove_cfg) x:{'type':expr_string, 'expr':expr_string}")}, -{str8_lit_comp("recent_project"), str8_lit_comp("x:{'path':path}")}, -{str8_lit_comp("recent_file"), str8_lit_comp("x:{'path':path}")}, -{str8_lit_comp("machine"), str8_lit_comp("x:{'label':code_string, @no_expand 'active':bool, 'unattached_processes':query, 'processes':query}")}, -{str8_lit_comp("process"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'modules':query, 'threads':query}")}, -{str8_lit_comp("module"), str8_lit_comp("x:{'exe':path, 'dbg':path, 'vaddr_range':vaddr_range}")}, -{str8_lit_comp("thread"), str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}")}, -}; - -String8 rd_reg_slot_code_name_table[47] = -{ -{0}, -str8_lit_comp("machine"), -str8_lit_comp("module"), -str8_lit_comp("process"), -str8_lit_comp("thread"), -str8_lit_comp("ctrl_entity"), -str8_lit_comp("window"), -str8_lit_comp("panel"), -str8_lit_comp("tab"), -str8_lit_comp("view"), -str8_lit_comp("prev_tab"), -str8_lit_comp("dst_panel"), -str8_lit_comp("cfg"), -str8_lit_comp("cfg_list"), -str8_lit_comp("eval_space"), -str8_lit_comp("unwind_count"), -str8_lit_comp("inline_depth"), -str8_lit_comp("file_path"), -str8_lit_comp("cursor"), -str8_lit_comp("mark"), -str8_lit_comp("text_key"), -str8_lit_comp("lang_kind"), -str8_lit_comp("lines"), -str8_lit_comp("dbgi_key"), -str8_lit_comp("vaddr"), -str8_lit_comp("voff"), -str8_lit_comp("vaddr_range"), -str8_lit_comp("voff_range"), -str8_lit_comp("expr"), -str8_lit_comp("ui_key"), -str8_lit_comp("src_ui_key"), -str8_lit_comp("off_px"), -str8_lit_comp("reg_slot"), -str8_lit_comp("pid"), -str8_lit_comp("force_confirm"), -str8_lit_comp("force_focus"), -str8_lit_comp("prefer_disasm"), -str8_lit_comp("no_rich_tooltip"), -str8_lit_comp("do_implicit_root"), -str8_lit_comp("do_lister"), -str8_lit_comp("do_big_rows"), -str8_lit_comp("all_windows"), -str8_lit_comp("non_graphical"), -str8_lit_comp("dir2"), -str8_lit_comp("string"), -str8_lit_comp("cmd_name"), -str8_lit_comp("os_event"), -}; - -Rng1U64 rd_reg_slot_range_table[47] = -{ -{0}, -{OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, module), OffsetOf(RD_Regs, module) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, process), OffsetOf(RD_Regs, process) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, thread), OffsetOf(RD_Regs, thread) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, ctrl_entity), OffsetOf(RD_Regs, ctrl_entity) + sizeof(CTRL_Handle)}, -{OffsetOf(RD_Regs, window), OffsetOf(RD_Regs, window) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, panel), OffsetOf(RD_Regs, panel) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, tab), OffsetOf(RD_Regs, tab) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, view), OffsetOf(RD_Regs, view) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, prev_tab), OffsetOf(RD_Regs, prev_tab) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, dst_panel), OffsetOf(RD_Regs, dst_panel) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, cfg), OffsetOf(RD_Regs, cfg) + sizeof(CFG_ID)}, -{OffsetOf(RD_Regs, cfg_list), OffsetOf(RD_Regs, cfg_list) + sizeof(CFG_IDList)}, -{OffsetOf(RD_Regs, eval_space), OffsetOf(RD_Regs, eval_space) + sizeof(E_Space)}, -{OffsetOf(RD_Regs, unwind_count), OffsetOf(RD_Regs, unwind_count) + sizeof(U64)}, -{OffsetOf(RD_Regs, inline_depth), OffsetOf(RD_Regs, inline_depth) + sizeof(U64)}, -{OffsetOf(RD_Regs, file_path), OffsetOf(RD_Regs, file_path) + sizeof(String8)}, -{OffsetOf(RD_Regs, cursor), OffsetOf(RD_Regs, cursor) + sizeof(TxtPt)}, -{OffsetOf(RD_Regs, mark), OffsetOf(RD_Regs, mark) + sizeof(TxtPt)}, -{OffsetOf(RD_Regs, text_key), OffsetOf(RD_Regs, text_key) + sizeof(C_Key)}, -{OffsetOf(RD_Regs, lang_kind), OffsetOf(RD_Regs, lang_kind) + sizeof(TXT_LangKind)}, -{OffsetOf(RD_Regs, lines), OffsetOf(RD_Regs, lines) + sizeof(D_LineList)}, -{OffsetOf(RD_Regs, dbgi_key), OffsetOf(RD_Regs, dbgi_key) + sizeof(DI_Key)}, -{OffsetOf(RD_Regs, vaddr), OffsetOf(RD_Regs, vaddr) + sizeof(U64)}, -{OffsetOf(RD_Regs, voff), OffsetOf(RD_Regs, voff) + sizeof(U64)}, -{OffsetOf(RD_Regs, vaddr_range), OffsetOf(RD_Regs, vaddr_range) + sizeof(Rng1U64)}, -{OffsetOf(RD_Regs, voff_range), OffsetOf(RD_Regs, voff_range) + sizeof(Rng1U64)}, -{OffsetOf(RD_Regs, expr), OffsetOf(RD_Regs, expr) + sizeof(String8)}, -{OffsetOf(RD_Regs, ui_key), OffsetOf(RD_Regs, ui_key) + sizeof(UI_Key)}, -{OffsetOf(RD_Regs, src_ui_key), OffsetOf(RD_Regs, src_ui_key) + sizeof(UI_Key)}, -{OffsetOf(RD_Regs, off_px), OffsetOf(RD_Regs, off_px) + sizeof(Vec2F32)}, -{OffsetOf(RD_Regs, reg_slot), OffsetOf(RD_Regs, reg_slot) + sizeof(RD_RegSlot)}, -{OffsetOf(RD_Regs, pid), OffsetOf(RD_Regs, pid) + sizeof(U32)}, -{OffsetOf(RD_Regs, force_confirm), OffsetOf(RD_Regs, force_confirm) + sizeof(B32)}, -{OffsetOf(RD_Regs, force_focus), OffsetOf(RD_Regs, force_focus) + sizeof(B32)}, -{OffsetOf(RD_Regs, prefer_disasm), OffsetOf(RD_Regs, prefer_disasm) + sizeof(B32)}, -{OffsetOf(RD_Regs, no_rich_tooltip), OffsetOf(RD_Regs, no_rich_tooltip) + sizeof(B32)}, -{OffsetOf(RD_Regs, do_implicit_root), OffsetOf(RD_Regs, do_implicit_root) + sizeof(B32)}, -{OffsetOf(RD_Regs, do_lister), OffsetOf(RD_Regs, do_lister) + sizeof(B32)}, -{OffsetOf(RD_Regs, do_big_rows), OffsetOf(RD_Regs, do_big_rows) + sizeof(B32)}, -{OffsetOf(RD_Regs, all_windows), OffsetOf(RD_Regs, all_windows) + sizeof(B32)}, -{OffsetOf(RD_Regs, non_graphical), OffsetOf(RD_Regs, non_graphical) + sizeof(B32)}, -{OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)}, -{OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)}, -{OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)}, -{OffsetOf(RD_Regs, os_event), OffsetOf(RD_Regs, os_event) + sizeof(OS_Event *)}, -}; - -RD_CmdKindInfo rd_cmd_kind_info_table[248] = -{ -{0}, -{ str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("launch_and_step_into"), str8_lit_comp("Starts debugging a new instance of a target, then stops at the program's entry point."), str8_lit_comp("launch,start,entry,point"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("kill"), str8_lit_comp("Kills the specified existing attached process(es)."), str8_lit_comp("stop,kill"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes"), str8_lit_comp(""), CTRL_EntityKind_Process}}, -{ str8_lit_comp("kill_all"), str8_lit_comp("Kills all attached processes."), str8_lit_comp("stop,kill,all"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("detach"), str8_lit_comp("Detaches the specified attached process(es)."), str8_lit_comp("detach"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes"), str8_lit_comp(""), CTRL_EntityKind_Process}}, -{ str8_lit_comp("continue"), str8_lit_comp("Continues executing all attached processes."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_into_inst"), str8_lit_comp("Performs a step that goes into calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_over_inst"), str8_lit_comp("Performs a step that skips calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_into_line"), str8_lit_comp("Performs a step that goes into calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_over_line"), str8_lit_comp("Performs a step that skips calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_out"), str8_lit_comp("Runs to the end of the current function and exits it."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("halt"), str8_lit_comp("Halts all attached processes."), str8_lit_comp("pause"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("soft_halt_refresh"), str8_lit_comp("Interrupts all attached processes to collect data, and then resumes them."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_thread_ip"), str8_lit_comp("Sets the specified thread's instruction pointer at the specified address."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Vaddr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("run_to_line"), str8_lit_comp("Runs until a particular source line is hit."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("run"), str8_lit_comp("Runs all targets after starting them if they have not been started yet."), str8_lit_comp("play"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("restart"), str8_lit_comp("Kills all attached processes, then launches all active targets."), str8_lit_comp("restart,retry"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_into"), str8_lit_comp("Steps once, possibly into function calls, for either source lines or instructions (whichever is selected)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("step_over"), str8_lit_comp("Steps once, always over function calls, for either source lines or instructions."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("freeze_thread"), str8_lit_comp("Freezes the passed thread."), str8_lit_comp("callstack,unwind"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads"), str8_lit_comp(""), CTRL_EntityKind_Thread}}, -{ str8_lit_comp("thaw_thread"), str8_lit_comp("Thaws the passed thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads"), str8_lit_comp(""), CTRL_EntityKind_Thread}}, -{ str8_lit_comp("freeze_process"), str8_lit_comp("Freezes the passed process."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes"), str8_lit_comp(""), CTRL_EntityKind_Process}}, -{ str8_lit_comp("thaw_process"), str8_lit_comp("Thaws the passed process."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes"), str8_lit_comp(""), CTRL_EntityKind_Process}}, -{ str8_lit_comp("freeze_machine"), str8_lit_comp("Freezes the passed machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Machine, str8_lit_comp("query:machines"), str8_lit_comp(""), CTRL_EntityKind_Machine}}, -{ str8_lit_comp("thaw_machine"), str8_lit_comp("Thaws the passed machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Machine, str8_lit_comp("query:machines"), str8_lit_comp(""), CTRL_EntityKind_Machine}}, -{ str8_lit_comp("freeze_local_machine"), str8_lit_comp("Freezes the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("thaw_local_machine"), str8_lit_comp("Thaws the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("freeze_entity"), str8_lit_comp("Freezes an entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("thaw_entity"), str8_lit_comp("Thaws an entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_entity_color"), str8_lit_comp("Sets the passed entity's color."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_entity_name"), str8_lit_comp("Sets the passed entity's name."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("attach"), str8_lit_comp("Attaches to a process that is already running on the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_PID, str8_lit_comp("query:unattached_processes"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_palette"), str8_lit_comp("Opens the palette."), str8_lit_comp("help,cmd,lister"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("run_command"), str8_lit_comp("Runs a command from the command palette."), str8_lit_comp("help,cmd"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:commands"), str8_lit_comp("commands"), CTRL_EntityKind_Null}}, -{ str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("os_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads"), str8_lit_comp(""), CTRL_EntityKind_Thread}}, -{ str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("query:call_stack"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("up_one_frame"), str8_lit_comp("Selects the call stack frame above the currently selected."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("down_one_frame"), str8_lit_comp("Selects the call stack frame below the currently selected."), str8_lit_comp("callstack,unwind"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("select_entity"), str8_lit_comp("Selects a control entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("deselect_entity"), str8_lit_comp("Deselects a control entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("inc_window_font_size"), str8_lit_comp("Increases the window's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("dec_window_font_size"), str8_lit_comp("Decreases the window's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("inc_view_font_size"), str8_lit_comp("Increases the view's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("dec_view_font_size"), str8_lit_comp("Decreases the view's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_window"), str8_lit_comp("Opens a new window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("window_settings"), str8_lit_comp("Opens settings for a window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("close_window"), str8_lit_comp("Closes an opened window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_fullscreen"), str8_lit_comp("Toggles fullscreen view on the active window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("bring_to_front"), str8_lit_comp("Brings all windows to the front, and focuses the most recently focused window."), str8_lit_comp("top"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("popup_accept"), str8_lit_comp("Accepts the active popup prompt."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("popup_cancel"), str8_lit_comp("Cancels the active popup prompt."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("reset_to_default_bindings"), str8_lit_comp("Resets all keybindings to their defaults."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("reset_to_default_panels"), str8_lit_comp("Resets the window to the default panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("reset_to_compact_panels"), str8_lit_comp("Resets the window to the compact panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("reset_to_simple_panels"), str8_lit_comp("Resets the window to the simple panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_panel_left"), str8_lit_comp("Creates a new panel to the left of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_panel_up"), str8_lit_comp("Creates a new panel at the top of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_panel_right"), str8_lit_comp("Creates a new panel to the right of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_panel_down"), str8_lit_comp("Creates a new panel at the bottom of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("split_panel"), str8_lit_comp("Creates a new panel in a given direction, and moves a tab to it, if specified."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("rotate_panel_columns"), str8_lit_comp("Rotates all panels at the closest column level of the panel hierarchy."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("next_panel"), str8_lit_comp("Cycles the active panel forward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("prev_panel"), str8_lit_comp("Cycles the active panel backwards."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_panel"), str8_lit_comp("Focuses a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_panel_right"), str8_lit_comp("Focuses a panel rightward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_panel_left"), str8_lit_comp("Focuses a panel leftward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_panel_up"), str8_lit_comp("Focuses a panel upward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_panel_down"), str8_lit_comp("Focuses a panel downward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("undo"), str8_lit_comp("Undoes the previous action."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("redo"), str8_lit_comp("Redoes the first previously undone action."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("go_back"), str8_lit_comp("Returns to the previously selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("go_forward"), str8_lit_comp("Returns to the next selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("close_panel"), str8_lit_comp("Closes the currently active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("focus_tab"), str8_lit_comp("Focuses the passed tab within its containing panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("next_tab"), str8_lit_comp("Focuses the next tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:tab_commands"), str8_lit_comp("commands"), CTRL_EntityKind_Null}}, -{ str8_lit_comp("build_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("duplicate_tab"), str8_lit_comp("Duplicates a tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("copy_tab_full_path"), str8_lit_comp("Copies the full path of the file being viewed by this tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_view"), str8_lit_comp("Moves a view to a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("tab_bar_top"), str8_lit_comp("Anchors a panel's tab bar to the top of the panel."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("tab_bar_bottom"), str8_lit_comp("Anchors a panel's tab bar to the bottom of the panel."), str8_lit_comp(""), str8_lit_comp("$tab,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("tab_settings"), str8_lit_comp("Opens settings for a tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_current_path"), str8_lit_comp("Sets the debugger's current path, which is used as a starting point when browsing for files."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open"), str8_lit_comp("Opens a file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("switch"), str8_lit_comp("Switches to a recent file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:recent_files, query:source_files"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("switch_to_partner_file"), str8_lit_comp("Switches to the focused file's partner; or from header to implementation or vice versa."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("record_file_in_project"), str8_lit_comp("Records the passed file path as a recent file in the currently loaded project."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("show_file_in_explorer"), str8_lit_comp("Opens the operating system's file explorer and shows the selected file."), str8_lit_comp(""), str8_lit_comp("$file,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("go_to_disassembly"), str8_lit_comp("Goes to the disassembly, if any, for a given source code line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("go_to_source"), str8_lit_comp("Goes to the source code, if any, for a given disassembly line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_file_replacement_path"), str8_lit_comp("Sets the path which should be used as the replacement for the passed file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_user"), str8_lit_comp("Creates a new user file, and sets the current user path as that file's path."), str8_lit_comp("new,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("new_project"), str8_lit_comp("Creates a new project file, and sets the current project path as that file's path."), str8_lit_comp("new,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_user"), str8_lit_comp("Opens a user file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("load,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_project"), str8_lit_comp("Opens a project file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_recent_project"), str8_lit_comp("Opens a recently used project file."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:recent_projects"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("save_user"), str8_lit_comp("Saves user data to a file, and sets the current user path as that path."), str8_lit_comp("load,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("save_project"), str8_lit_comp("Saves project data to a file, and sets the current project path as that path."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("record_user_as_last_opened"), str8_lit_comp("Records a file path as the last opened user."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("record_project_in_user"), str8_lit_comp("Records a file path as a recent project in user data."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("write_user_data"), str8_lit_comp("Writes user data to the active user file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("write_project_data"), str8_lit_comp("Writes project data to the active project file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("user_settings"), str8_lit_comp("Opens user settings."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("project_settings"), str8_lit_comp("Opens project settings."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("edit"), str8_lit_comp("Edits the current selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("accept"), str8_lit_comp("Accepts current changes, or answers prompts in the affirmative."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("cancel"), str8_lit_comp("Rejects current changes, exits temporary menus, or answers prompts in the negative."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_left"), str8_lit_comp("Moves the cursor or selection left."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_right"), str8_lit_comp("Moves the cursor or selection right."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up"), str8_lit_comp("Moves the cursor or selection up."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down"), str8_lit_comp("Moves the cursor or selection down."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_left_select"), str8_lit_comp("Moves the cursor or selection left, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_right_select"), str8_lit_comp("Moves the cursor or selection right, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_select"), str8_lit_comp("Moves the cursor or selection up, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_select"), str8_lit_comp("Moves the cursor or selection down, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_left_chunk"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_right_chunk"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_chunk"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_chunk"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_page"), str8_lit_comp("Moves the cursor or selection up one page."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_page"), str8_lit_comp("Moves the cursor or selection down one page."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_whole"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_whole"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_left_chunk_select"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_right_chunk_select"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_chunk_select"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_chunk_select"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_page_select"), str8_lit_comp("Moves the cursor or selection up one page, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_page_select"), str8_lit_comp("Moves the cursor or selection down one page, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_whole_select"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_whole_select"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_up_reorder"), str8_lit_comp("Moves the cursor or selection up, while swapping the currently selected element with that upward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_down_reorder"), str8_lit_comp("Moves the cursor or selection down, while swapping the currently selected element with that downward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_home"), str8_lit_comp("Moves the cursor to the beginning of the line."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_end"), str8_lit_comp("Moves the cursor to the end of the line."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_home_select"), str8_lit_comp("Moves the cursor to the beginning of the line, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_end_select"), str8_lit_comp("Moves the cursor to the end of the line, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("select_all"), str8_lit_comp("Selects everything possible."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("delete_single"), str8_lit_comp("Deletes a single element to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("delete_chunk"), str8_lit_comp("Deletes a chunk to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("backspace_single"), str8_lit_comp("Deletes a single element to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("backspace_chunk"), str8_lit_comp("Deletes a chunk to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("copy"), str8_lit_comp("Copies the active selection to the clipboard."), str8_lit_comp(""), str8_lit_comp("$text_rng,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("cut"), str8_lit_comp("Copies the active selection to the clipboard, then deletes it."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("paste"), str8_lit_comp("Pastes the current contents of the clipboard."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("insert_text"), str8_lit_comp("Inserts the text that was used to cause this command."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_next"), str8_lit_comp("Moves the cursor or selection to the next element."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("move_prev"), str8_lit_comp("Moves the cursor or selection to the previous element."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("goto_line"), str8_lit_comp("Jumps to a line number in the current code file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_Cursor, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("goto_address"), str8_lit_comp("Jumps to an address in the current memory or disassembly view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_Vaddr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("center_cursor"), str8_lit_comp("Snaps the current code view to center the cursor."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("contain_cursor"), str8_lit_comp("Snaps the current code view to contain the cursor."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("find_next"), str8_lit_comp("Searches the current code file forward (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("find_prev"), str8_lit_comp("Searches the current code file backwards (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("find_thread"), str8_lit_comp("Jumps to the passed thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads"), str8_lit_comp(""), CTRL_EntityKind_Thread}}, -{ str8_lit_comp("find_selected_thread"), str8_lit_comp("Jumps to the selected thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("goto_name"), str8_lit_comp("Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures"), str8_lit_comp("symbol_lister"), CTRL_EntityKind_Null}}, -{ str8_lit_comp("goto_name_at_cursor"), str8_lit_comp("Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_watch_expr"), str8_lit_comp("Adds or removes an expression to an opened watch view."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp("Adds or removes the expression that the cursor or selection is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp("Adds or removes the expression that the mouse is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("enable_cfg"), str8_lit_comp("Enables a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("disable_cfg"), str8_lit_comp("Disables a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("select_cfg"), str8_lit_comp("Selects a config tree, disabling all others of the same kind."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("deselect_cfg"), str8_lit_comp("Deselects a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("remove_cfg"), str8_lit_comp("Removes a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("name_cfg"), str8_lit_comp("Equips a config tree with a label."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("condition_cfg"), str8_lit_comp("Equips a config tree with a condition string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("duplicate_cfg"), str8_lit_comp("Duplicates a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("relocate_cfg"), str8_lit_comp("Relocates a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("save_cfg_to_project"), str8_lit_comp("Saves the config tree to the project."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address of the specified function."), str8_lit_comp(""), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp("delete"), str8_lit_comp("$breakpoints,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("clear_breakpoints"), str8_lit_comp("Removes all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("list_breakpoints"), str8_lit_comp("Lists all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("clear_output"), str8_lit_comp("Clears all output."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp("$watch_pins,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("load_debug_info"), str8_lit_comp("Loads a debug info file."), str8_lit_comp(""), str8_lit_comp("$debug_infos,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("unload_debug_info"), str8_lit_comp("Unloads a debug info file."), str8_lit_comp(""), str8_lit_comp("$debug_infos,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:debug_infos"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_type_view"), str8_lit_comp("Adds a new type view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_file_path_map"), str8_lit_comp("Adds a new file path map."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("edit_user_theme"), str8_lit_comp("Edits the current user's theme."), str8_lit_comp("color"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp("query:themes"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("edit_project_theme"), str8_lit_comp("Edits the current project's theme."), str8_lit_comp("color"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp("query:themes"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_theme_color"), str8_lit_comp("Adds a new theme color."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("fork_theme"), str8_lit_comp("Imports all colors from the current theme so they can be individually edited."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("save_theme"), str8_lit_comp("Saves all theme colors to a new theme file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("save_and_set_theme"), str8_lit_comp("Saves all theme colors to a new theme file, and then sets that theme as the selected theme."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("set_next_statement"), str8_lit_comp("Sets the selected thread's instruction pointer to the cursor's position."), str8_lit_comp(""), str8_lit_comp("$text_pt,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*1)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("add_target"), str8_lit_comp("Adds a new target."), str8_lit_comp("application,executable,debug"), str8_lit_comp("$targets,"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("remove_target"), str8_lit_comp("Removes a target."), str8_lit_comp("delete"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets"), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("find_code_location"), str8_lit_comp("Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("search"), str8_lit_comp("Begins searching within the active interface."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*1)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("search_backwards"), str8_lit_comp("Begins searching backwards within the active interface."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*1)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("pick_file"), str8_lit_comp("Opens the file browser to pick a file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("pick_folder"), str8_lit_comp("Opens the file browser to pick a folder."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*1)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("pick_file_or_folder"), str8_lit_comp("Opens the file browser to pick a file or folder."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*1)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("push_query"), str8_lit_comp("Opens a new temporary query interface."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("complete_query"), str8_lit_comp("Completes and closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("cancel_query"), str8_lit_comp("Closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("update_query"), str8_lit_comp("Updates a query input."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("open_event_buffer"), str8_lit_comp("Opens a new event buffer, to which debugger events will be written, for external processing."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("close_event_buffer"), str8_lit_comp("Closes an existing event buffer."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Cfg, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("toggle_dev_menu"), str8_lit_comp("Opens and closes the developer menu."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("log_marker"), str8_lit_comp("Logs a marker in the application log, to denote specific points in time within the log."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1)|(RD_CmdKindFlag_ListInTextPt*0)|(RD_CmdKindFlag_ListInTextRng*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp(""), str8_lit_comp(""), CTRL_EntityKind_Null}}, -{ str8_lit_comp("watches"), str8_lit_comp("Opens a Watch tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("locals"), str8_lit_comp("Opens a Locals tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("registers"), str8_lit_comp("Opens a Registers tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("globals"), str8_lit_comp("Opens a Globals tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("thread_locals"), str8_lit_comp("Opens a Thread Locals tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("types"), str8_lit_comp("Opens a Types tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("procedures"), str8_lit_comp("Opens a Procedures tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("call_stack"), str8_lit_comp("Opens a Call Stack tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("targets"), str8_lit_comp("Opens a Targets tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("breakpoints"), str8_lit_comp("Opens a Breakpoints tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("watch_pins"), str8_lit_comp("Opens a Watch Pins tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("debug_infos"), str8_lit_comp("Opens a Debug Info tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("threads"), str8_lit_comp("Opens a Threads tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("processes"), str8_lit_comp("Opens a Processes tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("machines"), str8_lit_comp("Opens a Machines tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("modules"), str8_lit_comp("Opens a Modules tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("file_path_maps"), str8_lit_comp("Opens a File Path Map tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("type_views"), str8_lit_comp("Opens a Type Views tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("output"), str8_lit_comp("Opens a Output tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("text"), str8_lit_comp("Opens a Text tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("disasm"), str8_lit_comp("Opens a Disassembly tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("memory"), str8_lit_comp("Opens a Memory tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("bitmap"), str8_lit_comp("Opens a Bitmap tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("color"), str8_lit_comp("Opens a Color tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -{ str8_lit_comp("geo3d"), str8_lit_comp("Opens a Geometry (3D) tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}, -}; - -struct {String8 string; CFG_Binding binding;} rd_default_binding_table[116] = -{ -{str8_lit_comp("kill_all"), {OS_Key_F5, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("step_into_inst"), {OS_Key_F11, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("step_over_inst"), {OS_Key_F10, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("step_out"), {OS_Key_F11, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("halt"), {OS_Key_X, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("halt"), {OS_Key_Pause, 0 }}, -{str8_lit_comp("run"), {OS_Key_F5, 0 }}, -{str8_lit_comp("restart"), {OS_Key_F5, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("step_into"), {OS_Key_F11, 0 }}, -{str8_lit_comp("step_over"), {OS_Key_F10, 0 }}, -{str8_lit_comp("run_to_line"), {OS_Key_F10, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("set_next_statement"), {OS_Key_F10, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("inc_window_font_size"), {OS_Key_Equal, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("dec_window_font_size"), {OS_Key_Minus, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("window"), {OS_Key_N, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("toggle_fullscreen"), {OS_Key_Return, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("new_panel_right"), {OS_Key_P, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("new_panel_down"), {OS_Key_Minus, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("rotate_panel_columns"), {OS_Key_2, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("next_panel"), {OS_Key_Comma, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("prev_panel"), {OS_Key_Comma, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("focus_panel_right"), {OS_Key_Right, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("focus_panel_left"), {OS_Key_Left, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("focus_panel_up"), {OS_Key_Up, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("focus_panel_down"), {OS_Key_Down, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("undo"), {OS_Key_Z, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("redo"), {OS_Key_Y, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("go_back"), {OS_Key_Left, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("go_forward"), {OS_Key_Right, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("close_panel"), {OS_Key_P, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("next_tab"), {OS_Key_PageDown, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("prev_tab"), {OS_Key_PageUp, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("next_tab"), {OS_Key_Tab, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("prev_tab"), {OS_Key_Tab, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_tab_right"), {OS_Key_PageDown, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_tab_left"), {OS_Key_PageUp, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("close_tab"), {OS_Key_W, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("tab_bar_top"), {OS_Key_Up, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("tab_bar_bottom"), {OS_Key_Down, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("open_tab"), {OS_Key_T, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("open"), {OS_Key_O, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("switch"), {OS_Key_I, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("switch_to_partner_file"), {OS_Key_O, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("open_user"), {OS_Key_N, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("open_project"), {OS_Key_N, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("open_user"), {OS_Key_O, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("open_project"), {OS_Key_O, 0 |OS_Modifier_Ctrl |OS_Modifier_Alt}}, -{str8_lit_comp("save_user"), {OS_Key_S, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("save_project"), {OS_Key_S, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("edit"), {OS_Key_F2, 0 }}, -{str8_lit_comp("accept"), {OS_Key_Return, 0 }}, -{str8_lit_comp("accept"), {OS_Key_Space, 0 }}, -{str8_lit_comp("cancel"), {OS_Key_Esc, 0 }}, -{str8_lit_comp("move_left"), {OS_Key_Left, 0 }}, -{str8_lit_comp("move_right"), {OS_Key_Right, 0 }}, -{str8_lit_comp("move_up"), {OS_Key_Up, 0 }}, -{str8_lit_comp("move_down"), {OS_Key_Down, 0 }}, -{str8_lit_comp("move_left_select"), {OS_Key_Left, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_right_select"), {OS_Key_Right, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_up_select"), {OS_Key_Up, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_down_select"), {OS_Key_Down, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_left_chunk"), {OS_Key_Left, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_right_chunk"), {OS_Key_Right, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_up_chunk"), {OS_Key_Up, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_down_chunk"), {OS_Key_Down, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_up_page"), {OS_Key_PageUp, 0 }}, -{str8_lit_comp("move_down_page"), {OS_Key_PageDown, 0 }}, -{str8_lit_comp("move_up_whole"), {OS_Key_Home, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_down_whole"), {OS_Key_End, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("move_left_chunk_select"), {OS_Key_Left, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_right_chunk_select"), {OS_Key_Right, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_up_chunk_select"), {OS_Key_Up, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_down_chunk_select"), {OS_Key_Down, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_up_page_select"), {OS_Key_PageUp, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_down_page_select"), {OS_Key_PageDown, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_up_whole_select"), {OS_Key_Home, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_down_whole_select"), {OS_Key_End, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("move_up_reorder"), {OS_Key_Up, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("move_down_reorder"), {OS_Key_Down, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("move_home"), {OS_Key_Home, 0 }}, -{str8_lit_comp("move_end"), {OS_Key_End, 0 }}, -{str8_lit_comp("move_home_select"), {OS_Key_Home, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("move_end_select"), {OS_Key_End, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("select_all"), {OS_Key_A, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("delete_single"), {OS_Key_Delete, 0 }}, -{str8_lit_comp("delete_chunk"), {OS_Key_Delete, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("backspace_single"), {OS_Key_Backspace, 0 }}, -{str8_lit_comp("backspace_chunk"), {OS_Key_Backspace, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("copy"), {OS_Key_C, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("copy"), {OS_Key_Insert, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("cut"), {OS_Key_X, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("paste"), {OS_Key_V, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("paste"), {OS_Key_Insert, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("insert_text"), {OS_Key_Null, 0 }}, -{str8_lit_comp("move_next"), {OS_Key_Tab, 0 }}, -{str8_lit_comp("move_prev"), {OS_Key_Tab, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("goto_line"), {OS_Key_G, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("goto_address"), {OS_Key_G, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("search"), {OS_Key_F, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("search_backwards"), {OS_Key_R, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("find_next"), {OS_Key_F3, 0 }}, -{str8_lit_comp("find_prev"), {OS_Key_F3, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("find_selected_thread"), {OS_Key_F4, 0 }}, -{str8_lit_comp("goto_name"), {OS_Key_J, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("goto_name_at_cursor"), {OS_Key_F12, 0 }}, -{str8_lit_comp("toggle_watch_expr_at_cursor"), {OS_Key_W, 0 |OS_Modifier_Alt}}, -{str8_lit_comp("toggle_watch_expr_at_mouse"), {OS_Key_D, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("toggle_watch_pin"), {OS_Key_F9, 0 |OS_Modifier_Ctrl }}, -{str8_lit_comp("toggle_breakpoint"), {OS_Key_F9, 0 }}, -{str8_lit_comp("add_address_breakpoint"), {OS_Key_F9, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("add_function_breakpoint"), {OS_Key_F9, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("attach"), {OS_Key_F6, 0 |OS_Modifier_Shift }}, -{str8_lit_comp("open_palette"), {OS_Key_F1, 0 }}, -{str8_lit_comp("open_palette"), {OS_Key_P, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift }}, -{str8_lit_comp("log_marker"), {OS_Key_M, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -{str8_lit_comp("toggle_dev_menu"), {OS_Key_D, 0 |OS_Modifier_Ctrl |OS_Modifier_Shift |OS_Modifier_Alt}}, -}; - -String8 rd_binding_version_remap_old_name_table[8] = -{ -str8_lit_comp("commands"), -str8_lit_comp("load_user"), -str8_lit_comp("load_profile"), -str8_lit_comp("load_project"), -str8_lit_comp("open_profile"), -str8_lit_comp("address_breakpoint"), -str8_lit_comp("function_breakpoint"), -str8_lit_comp("toggle_breakpoint_cursor"), -}; - -String8 rd_binding_version_remap_new_name_table[8] = -{ -str8_lit_comp("run_command"), -str8_lit_comp("open_user"), -str8_lit_comp("open_profile"), -str8_lit_comp("open_project"), -str8_lit_comp("open_project"), -str8_lit_comp("add_address_breakpoint"), -str8_lit_comp("add_function_breakpoint"), -str8_lit_comp("toggle_breakpoint"), -}; - -String8 rd_icon_kind_text_table[75] = -{ -str8_lit_comp(""), -str8_lit_comp("b"), -str8_lit_comp("c"), -str8_lit_comp("B"), -str8_lit_comp("C"), -str8_lit_comp("f"), -str8_lit_comp("F"), -str8_lit_comp("g"), -str8_lit_comp("h"), -str8_lit_comp("r"), -str8_lit_comp("s"), -str8_lit_comp("i"), -str8_lit_comp("w"), -str8_lit_comp("W"), -str8_lit_comp("k"), -str8_lit_comp("K"), -str8_lit_comp("L"), -str8_lit_comp("R"), -str8_lit_comp("U"), -str8_lit_comp("D"), -str8_lit_comp("G"), -str8_lit_comp("P"), -str8_lit_comp("3"), -str8_lit_comp("p"), -str8_lit_comp("O"), -str8_lit_comp("o"), -str8_lit_comp("!"), -str8_lit_comp("1"), -str8_lit_comp("V"), -str8_lit_comp("<"), -str8_lit_comp(">"), -str8_lit_comp("^"), -str8_lit_comp("v"), -str8_lit_comp("9"), -str8_lit_comp("0"), -str8_lit_comp("7"), -str8_lit_comp("8"), -str8_lit_comp("+"), -str8_lit_comp("-"), -str8_lit_comp("'"), -str8_lit_comp("\""), -str8_lit_comp("M"), -str8_lit_comp("."), -str8_lit_comp("x"), -str8_lit_comp("q"), -str8_lit_comp("j"), -str8_lit_comp("u"), -str8_lit_comp("m"), -str8_lit_comp("n"), -str8_lit_comp("l"), -str8_lit_comp("a"), -str8_lit_comp("z"), -str8_lit_comp("y"), -str8_lit_comp("X"), -str8_lit_comp("Y"), -str8_lit_comp("S"), -str8_lit_comp("T"), -str8_lit_comp("Z"), -str8_lit_comp("d"), -str8_lit_comp("N"), -str8_lit_comp("E"), -str8_lit_comp("H"), -str8_lit_comp("e"), -str8_lit_comp("I"), -str8_lit_comp("J"), -str8_lit_comp("A"), -str8_lit_comp("?"), -str8_lit_comp("4"), -str8_lit_comp("5"), -str8_lit_comp("6"), -str8_lit_comp("&"), -str8_lit_comp("*"), -str8_lit_comp("("), -str8_lit_comp(")"), -str8_lit_comp("#"), -}; - -String8 rd_code_color_slot_name_table[14] = -{ -str8_lit_comp("code_default"), -str8_lit_comp("code_symbol"), -str8_lit_comp("code_type"), -str8_lit_comp("code_local"), -str8_lit_comp("code_register"), -str8_lit_comp("code_keyword"), -str8_lit_comp("code_delimiter_or_operator"), -str8_lit_comp("code_numeric"), -str8_lit_comp("code_numeric_alt_digit_group"), -str8_lit_comp("code_string"), -str8_lit_comp("code_meta"), -str8_lit_comp("code_comment"), -str8_lit_comp("code_line_numbers"), -str8_lit_comp("code_line_numbers_selected"), -}; - -String8 rd_theme_preset_display_string_table[11] = -{ -str8_lit_comp("Default (Dark)"), -str8_lit_comp("Default (Light)"), -str8_lit_comp("VS (Dark)"), -str8_lit_comp("VS (Light)"), -str8_lit_comp("Solarized (Dark)"), -str8_lit_comp("Solarized (Light)"), -str8_lit_comp("Handmade Hero"), -str8_lit_comp("Naysayer"), -str8_lit_comp("4coder"), -str8_lit_comp("Grove"), -str8_lit_comp("Far Manager"), -}; - -String8 rd_theme_preset_code_string_table[11] = -{ -str8_lit_comp("default_dark"), -str8_lit_comp("default_light"), -str8_lit_comp("vs_dark"), -str8_lit_comp("vs_light"), -str8_lit_comp("solarized_dark"), -str8_lit_comp("solarized_light"), -str8_lit_comp("handmade_hero"), -str8_lit_comp("naysayer"), -str8_lit_comp("four_coder"), -str8_lit_comp("grove"), -str8_lit_comp("far_manager"), -}; - -String8 rd_theme_preset_cfg_string_table[11] = -{ -str8_lit_comp("theme:\n{\n theme_color: {tags:\"background\", value: 0x1b1b1bff }\n theme_color: {tags:\"alt background\", value: 0x222222ff }\n theme_color: {tags:\"pop background\", value: 0x355b6eff }\n theme_color: {tags:\"fresh background\", value: 0x31393dff }\n theme_color: {tags:\"match background\", value: 0x31393dff }\n theme_color: {tags:\"border\", value: 0x404040ff }\n theme_color: {tags:\"text\", value: 0xe5e5e5ff }\n theme_color: {tags:\"weak text\", value: 0xa4a4a4ff }\n theme_color: {tags:\"good text\", value: 0x32a852ff }\n theme_color: {tags:\"neutral text\", value: 0x3a90bbff }\n theme_color: {tags:\"bad text\", value: 0xcf5242ff }\n theme_color: {tags:\"hover\", value: 0xffffffff }\n theme_color: {tags:\"focus overlay\", value: 0xfda20012 }\n theme_color: {tags:\"focus border\", value: 0xfda200ff }\n theme_color: {tags:\"cursor\", value: 0x8aff00ff }\n theme_color: {tags:\"selection\", value: 0x99ccff0f }\n theme_color: {tags:\"inactive background\", value: 0x0000002f }\n theme_color: {tags:\"drop_shadow\", value: 0x0000007f }\n theme_color: {tags:\"good_pop background\", value: 0x2c5b36ff }\n theme_color: {tags:\"good_pop border\", value: 0x568761ff }\n theme_color: {tags:\"good_pop hover\", value: 0xe3f5d3ff }\n theme_color: {tags:\"good_pop weak text\", value: 0xe3f5d3ff }\n theme_color: {tags:\"bad_pop background\", value: 0x803425ff }\n theme_color: {tags:\"bad_pop hover\", value: 0xff825cff }\n theme_color: {tags:\"code_default\", value: 0xcbcbcbff }\n theme_color: {tags:\"code_symbol\", value: 0x42a2cfff }\n theme_color: {tags:\"code_type\", value: 0xfec746ff }\n theme_color: {tags:\"code_local\", value: 0x98bc80ff }\n theme_color: {tags:\"code_register\", value: 0xb7afd5ff }\n theme_color: {tags:\"code_keyword\", value: 0xb38d4cff }\n theme_color: {tags:\"code_delimiter_or_operator\", value: 0x767676ff }\n theme_color: {tags:\"code_numeric\", value: 0x98abb1ff }\n theme_color: {tags:\"code_numeric_alt_digit_group\", value: 0x738287ff }\n theme_color: {tags:\"code_string\", value: 0x98abb1ff }\n theme_color: {tags:\"code_meta\", value: 0xd96759ff }\n theme_color: {tags:\"code_comment\", value: 0x717171ff }\n theme_color: {tags:\"line_info_0\", value: 0x4f3022ff }\n theme_color: {tags:\"line_info_1\", value: 0x4f3e15ff }\n theme_color: {tags:\"line_info_2\", value: 0x434e2aff }\n theme_color: {tags:\"line_info_3\", value: 0x36241fff }\n theme_color: {tags:\"line_info_4\", value: 0x4f3022ff }\n theme_color: {tags:\"line_info_5\", value: 0x4f3e15ff }\n theme_color: {tags:\"line_info_6\", value: 0x434e2aff }\n theme_color: {tags:\"line_info_7\", value: 0x36241fff }\n theme_color: {tags:\"thread_0\", value: 0xffcb7fff }\n theme_color: {tags:\"thread_1\", value: 0xb2ff65ff }\n theme_color: {tags:\"thread_2\", value: 0xff99e5ff }\n theme_color: {tags:\"thread_3\", value: 0x6598ffff }\n theme_color: {tags:\"thread_4\", value: 0x65ffcbff }\n theme_color: {tags:\"thread_5\", value: 0xff9819ff }\n theme_color: {tags:\"thread_6\", value: 0x9932ffff }\n theme_color: {tags:\"thread_7\", value: 0x65ff4cff }\n theme_color: {tags:\"thread_unwound\", value: 0xb2ccd8ff }\n theme_color: {tags:\"thread_error\", value: 0xb23219ff }\n theme_color: {tags:\"breakpoint\", value: 0xa72911ff }\n theme_color: {tags:\"floating background\", value: 0x1b1b1baf }\n theme_color: {tags:\"floating background alt\", value: 0x0000005f }\n theme_color: {tags:\"floating background fresh\", value: 0x31393d5f }\n theme_color: {tags:\"floating border\", value: 0xbfbfbf1f }\n theme_color: {tags:\"floating scroll_bar background\", value: 0x3b3b3b5f }\n theme_color: {tags:\"floating scroll_bar border\", value: 0x5f5f5f5f }\n theme_color: {tags:\"menu_bar background\", value: 0x2b3740ff }\n theme_color: {tags:\"menu_bar border\", value: 0x3e4c57ff }\n theme_color: {tags:\"scroll_bar background\", value: 0x2b2b2bff }\n theme_color: {tags:\"scroll_bar border\", value: 0x3f3f3fff }\n theme_color: {tags:\"implicit background\", value: 0x00000000 }\n theme_color: {tags:\"implicit border\", value: 0x00000000 }\n theme_color: {tags:\"hollow background\", value: 0x00000000 }\n theme_color: {tags:\"hollow border\", value: 0xffffff1f }\n theme_color: {tags:\"tab background\", value: 0x6f5135ff }\n theme_color: {tags:\"tab border\", value: 0x8a6e54ff }\n theme_color: {tags:\"tab inactive background\", value: 0x2b3740ff }\n theme_color: {tags:\"tab inactive border\", value: 0x3e4c57ff }\n theme_color: {tags:\"tab auto background\", value: 0x693847ff }\n theme_color: {tags:\"tab auto border\", value: 0x9e6274ff }\n theme_color: {tags:\"tab auto inactive background\", value: 0x2f2633ff }\n theme_color: {tags:\"tab auto inactive border\", value: 0x685073ff }\n theme_color: {tags:\"drop_site background\", value: 0xffffff05 }\n theme_color: {tags:\"drop_site border\", value: 0xffffff0f }\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{ tags: background , value: 0xffffffff }\n theme_color:{ tags: \"alt background\" , value: 0xf8f8f8ff }\n theme_color:{ tags: \"pop background\" , value: 0xcbe4f2ff }\n theme_color:{ tags: \"menu_bar pop background\" , value: 0x5aabd9ff }\n theme_color:{ tags: \"fresh background\" , value: 0xeaddceff }\n theme_color:{ tags: \"match background\" , value: 0xc1e9c4ff }\n theme_color:{ tags: border , value: 0xcbcbcbff }\n theme_color:{ tags: text , value: 0xff }\n theme_color:{ tags: \"weak text\" , value: 0x727272ff }\n theme_color:{ tags: \"good text\" , value: 0x217538ff }\n theme_color:{ tags: \"neutral text\" , value: 0x1a5b7cff }\n theme_color:{ tags: \"bad text\" , value: 0x972717ff }\n theme_color:{ tags: hover , value: 0xff }\n theme_color:{ tags: \"focus overlay\" , value: 0x67ff4b }\n theme_color:{ tags: \"focus border\" , value: 0x67ffff }\n theme_color:{ tags: cursor , value: 0xff }\n theme_color:{ tags: selection , value: 0x283d5166 }\n theme_color:{ tags: \"inactive background\" , value: 0x8 }\n theme_color:{ tags: drop_shadow , value: 0xb }\n theme_color:{ tags: \"good_pop background\" , value: 0x90c09aff }\n theme_color:{ tags: \"good_pop border\" , value: 0x1e7231ff }\n theme_color:{ tags: \"good_pop hover\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop weak text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"bad_pop background\" , value: 0xa93620ff }\n theme_color:{ tags: \"bad_pop text\" , value: 0xffffffff }\n theme_color:{ tags: \"bad_pop text weak\" , value: 0xffffffff }\n theme_color:{ tags: \"menu_bar bad_pop background\" , value: 0xff2a00ff }\n theme_color:{ tags: \"menu_bar bad_pop text\" , value: 0xffffffff }\n theme_color:{ tags: \"bad_pop hover\" , value: 0xff825cff }\n theme_color:{ tags: code_default , value: 0x80808ff }\n theme_color:{ tags: code_symbol , value: 0x4ac3ff }\n theme_color:{ tags: code_type , value: 0xf46200ff }\n theme_color:{ tags: code_local , value: 0x317c00ff }\n theme_color:{ tags: code_register , value: 0x9a00ffff }\n theme_color:{ tags: code_keyword , value: 0xff0600ff }\n theme_color:{ tags: code_delimiter_or_operator , value: 0x8a8a8aff }\n theme_color:{ tags: code_numeric , value: 0x7d49ff }\n theme_color:{ tags: code_numeric_alt_digit_group , value: 0xb56aff }\n theme_color:{ tags: code_string , value: 0x63549fff }\n theme_color:{ tags: code_meta , value: 0xd96759ff }\n theme_color:{ tags: code_comment , value: 0x717171ff }\n theme_color:{ tags: line_info_0 , value: 0xe6d5cdff }\n theme_color:{ tags: line_info_1 , value: 0xdbcfb2ff }\n theme_color:{ tags: line_info_2 , value: 0xddeac1ff }\n theme_color:{ tags: line_info_3 , value: 0xddc4bdff }\n theme_color:{ tags: line_info_4 , value: 0xba917eff }\n theme_color:{ tags: thread_0 , value: 0xffa700ff }\n theme_color:{ tags: thread_1 , value: 0xb41fff }\n theme_color:{ tags: thread_2 , value: 0xff99e5ff }\n theme_color:{ tags: thread_3 , value: 0x6598ffff }\n theme_color:{ tags: thread_4 , value: 0x65ffcbff }\n theme_color:{ tags: thread_5 , value: 0xff9819ff }\n theme_color:{ tags: thread_6 , value: 0x9932ffff }\n theme_color:{ tags: thread_7 , value: 0x65ff4cff }\n theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }\n theme_color:{ tags: thread_error , value: 0xb23219ff }\n theme_color:{ tags: breakpoint , value: 0xff2800ff }\n theme_color:{ tags: \"floating background\" , value: 0xffffffc7 }\n theme_color:{ tags: \"floating background alt\" , value: 0x23 }\n theme_color:{ tags: \"floating background fresh\" , value: 0xeaddceff }\n theme_color:{ tags: \"floating border\" , value: 0x88888884 }\n theme_color:{ tags: \"scroll_bar background\" , value: 0xe9e9e9ff }\n theme_color:{ tags: \"scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"floating scroll_bar background\" , value: 0xe9e9e9ff }\n theme_color:{ tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"menu_bar background\" , value: 0x2b6b9aff }\n theme_color:{ tags: \"menu_bar border\" , value: 0x4d }\n theme_color:{ tags: \"menu_bar text\" , value: 0xffffffff }\n theme_color:{ tags: \"menu_bar text weak\" , value: 0xffffffff }\n theme_color:{ tags: \"good menu_bar text\" , value: 0x70db8dff }\n theme_color:{ tags: \"bad menu_bar text\" , value: 0xffa79bff }\n theme_color:{ tags: \"neutral menu_bar text\" , value: 0xc4dbe7ff }\n theme_color:{ tags: \"implicit background\" , value: 0x00000000 }\n theme_color:{ tags: \"implicit border\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow background\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow border\" , value: 0xffffff1f }\n theme_color:{ tags: \"tab text\" , value: 0xffffffff }\n theme_color:{ tags: \"tab text weak\" , value: 0xffffffff }\n theme_color:{ tags: \"tab background\" , value: 0xb67e48ff }\n theme_color:{ tags: \"tab border\" , value: 0x875b31ff }\n theme_color:{ tags: \"tab inactive background\" , value: 0xcacacaff }\n theme_color:{ tags: \"tab inactive border\" , value: 0xb5b5b5ff }\n theme_color:{ tags: \"tab auto background\" , value: 0xc41c69ff }\n theme_color:{ tags: \"tab auto border\" , value: 0x981039ff }\n theme_color:{ tags: \"tab auto inactive background\" , value: 0x9b88a3ff }\n theme_color:{ tags: \"tab auto inactive border\" , value: 0x373737ff }\n theme_color:{ tags: \"drop_site background\" , value: 0xffffff05 }\n theme_color:{ tags: \"drop_site border\" , value: 0xffffff0f }\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{ tags: background , value: 0x1f1f1fff }\n theme_color:{ tags: \"alt background\" , value: 0x222222ff }\n theme_color:{ tags: \"pop background\" , value: 0x383167ff }\n theme_color:{ tags: \"fresh background\" , value: 0x31393dff }\n theme_color:{ tags: \"match background\" , value: 0x31393dff }\n theme_color:{ tags: border , value: 0x404040ff }\n theme_color:{ tags: text , value: 0xe5e5e5ff }\n theme_color:{ tags: \"weak text\" , value: 0xa4a4a4ff }\n theme_color:{ tags: \"good text\" , value: 0x32a852ff }\n theme_color:{ tags: \"neutral text\" , value: 0x3a90bbff }\n theme_color:{ tags: \"bad text\" , value: 0xcf5242ff }\n theme_color:{ tags: hover , value: 0xffffffff }\n theme_color:{ tags: \"focus overlay\" , value: 0x7160e81e }\n theme_color:{ tags: \"focus border\" , value: 0x7160e8ff }\n theme_color:{ tags: cursor , value: 0x8aff00ff }\n theme_color:{ tags: selection , value: 0x99ccff0f }\n theme_color:{ tags: \"inactive background\" , value: 0x0000002f }\n theme_color:{ tags: drop_shadow , value: 0x0000007f }\n theme_color:{ tags: \"good_pop background\" , value: 0x2c5b36ff }\n theme_color:{ tags: \"good_pop border\" , value: 0x568761ff }\n theme_color:{ tags: \"good_pop hover\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop weak text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"bad_pop background\" , value: 0x803425ff }\n theme_color:{ tags: \"bad_pop hover\" , value: 0xff825cff }\n theme_color:{ tags: code_default , value: 0xe0e0e0ff }\n theme_color:{ tags: code_symbol , value: 0xdcdcaaff }\n theme_color:{ tags: code_type , value: 0x4ec9b0ff }\n theme_color:{ tags: code_local , value: 0x9cdcfeff }\n theme_color:{ tags: code_register , value: 0xb7afd5ff }\n theme_color:{ tags: code_keyword , value: 0x569cd6ff }\n theme_color:{ tags: code_delimiter_or_operator , value: 0x767676ff }\n theme_color:{ tags: code_numeric , value: 0xb5cea8ff }\n theme_color:{ tags: code_numeric_alt_digit_group , value: 0x7c986dff }\n theme_color:{ tags: code_string , value: 0xd69d85ff }\n theme_color:{ tags: code_meta , value: 0x9b9b9bff }\n theme_color:{ tags: code_comment , value: 0x51a644ff }\n theme_color:{ tags: line_info_0 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_2 , value: 0x434e2aff }\n theme_color:{ tags: line_info_3 , value: 0x36241fff }\n theme_color:{ tags: line_info_4 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_6 , value: 0x434e2aff }\n theme_color:{ tags: line_info_7 , value: 0x36241fff }\n theme_color:{ tags: thread_0 , value: 0xffdc48ff }\n theme_color:{ tags: thread_1 , value: 0xb2ff65ff }\n theme_color:{ tags: thread_2 , value: 0xff99e5ff }\n theme_color:{ tags: thread_3 , value: 0x6598ffff }\n theme_color:{ tags: thread_4 , value: 0x65ffcbff }\n theme_color:{ tags: thread_5 , value: 0xff9819ff }\n theme_color:{ tags: thread_6 , value: 0x9932ffff }\n theme_color:{ tags: thread_7 , value: 0x65ff4cff }\n theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }\n theme_color:{ tags: thread_error , value: 0xb23219ff }\n theme_color:{ tags: breakpoint , value: 0xa72911ff }\n theme_color:{ tags: \"floating background\" , value: 0x1b1b1baf }\n theme_color:{ tags: \"floating background alt\" , value: 0x0000005f }\n theme_color:{ tags: \"floating background fresh\" , value: 0x31393d5f }\n theme_color:{ tags: \"floating border\" , value: 0xbfbfbf1f }\n theme_color:{ tags: \"floating scroll_bar background\" , value: 0x3b3b3b5f }\n theme_color:{ tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"scroll_bar background\" , value: 0x2b2b2bff }\n theme_color:{ tags: \"scroll_bar border\" , value: 0x3f3f3fff }\n theme_color:{ tags: \"implicit background\" , value: 0x00000000 }\n theme_color:{ tags: \"implicit border\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow background\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow border\" , value: 0xffffff1f }\n theme_color:{ tags: \"tab background\" , value: 0x333333ff }\n theme_color:{ tags: \"tab border\" , value: 0x7160e8ff }\n theme_color:{ tags: \"tab inactive background\" , value: 0x171717ff }\n theme_color:{ tags: \"tab inactive border\" , value: 0x3e4c57ff }\n theme_color:{ tags: \"tab auto background\" , value: 0x3f386dff }\n theme_color:{ tags: \"tab auto border\" , value: 0x7160e8ff }\n theme_color:{ tags: \"tab auto inactive background\" , value: 0x2f2633ff }\n theme_color:{ tags: \"tab auto inactive border\" , value: 0x685073ff }\n theme_color:{ tags: \"drop_site background\" , value: 0xffffff05 }\n theme_color:{ tags: \"drop_site border\" , value: 0xffffff0f }\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0xffffffff}\n theme_color:{tags: \"alt background\", value: 0xefefefff}\n theme_color:{tags: \"pop background\", value: 0xe3eaf2ff}\n theme_color:{tags: \"fresh background\", value: 0xeccbbeff}\n theme_color:{tags: \"match background\", value: 0xedcbf9ff}\n theme_color:{tags: border, value: 0xe7e7e7ff}\n theme_color:{tags: text, value: 0xff}\n theme_color:{tags: \"weak text\", value: 0x353535ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xa7ffff}\n theme_color:{tags: \"focus overlay\", value: 0x8eff3f}\n theme_color:{tags: \"focus border\", value: 0x8effff}\n theme_color:{tags: cursor, value: 0xff}\n theme_color:{tags: selection, value: 0x56aaff77}\n theme_color:{tags: \"inactive background\", value: 0x17}\n theme_color:{tags: drop_shadow, value: 0xe7b27}\n theme_color:{tags: \"good_pop background\", value: 0x21a43dff}\n theme_color:{tags: \"good_pop border\", value: 0x21a43dff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0xcb3f23ff}\n theme_color:{tags: \"bad_pop text\", value: 0xffcdc4ff}\n theme_color:{tags: \"bad_pop text weak\", value: 0xffcdc4ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0x000000ff}\n theme_color:{tags: code_symbol, value: 0x74531fff}\n theme_color:{tags: code_type, value: 0x2b91afff}\n theme_color:{tags: code_local, value: 0x1f377fff}\n theme_color:{tags: code_register, value: 0x8a1bffff}\n theme_color:{tags: code_keyword, value: 0x0000ffff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x767676ff}\n theme_color:{tags: code_numeric, value: 0xff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x1d1d1dff}\n theme_color:{tags: code_string, value: 0xa61515ff}\n theme_color:{tags: code_meta, value: 0x808080ff}\n theme_color:{tags: code_comment, value: 0x008000ff}\n theme_color:{tags: line_info_0, value: 0xb5d9c8ff}\n theme_color:{tags: line_info_1, value: 0xa9c1d0ff}\n theme_color:{tags: line_info_2, value: 0x99abc5ff}\n theme_color:{tags: line_info_3, value: 0xc6bcd5ff}\n theme_color:{tags: thread_0, value: 0xffb141ff}\n theme_color:{tags: thread_1, value: 0x66c407ff}\n theme_color:{tags: thread_unwound, value: 0x67b3d7ff}\n theme_color:{tags: thread_error, value: 0xff2900ff}\n theme_color:{tags: breakpoint, value: 0xff2800ff}\n theme_color:{tags: \"floating background\", value: 0xffffffff}\n theme_color:{tags: \"floating background alt\", value: 0x11}\n theme_color:{tags: \"floating background fresh\", value: 0xa0c2d318}\n theme_color:{tags: \"floating border\", value: 0x50}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\", value: 0x5f5f5f5f}\n theme_color:{tags: \"menu_bar background\", value: 0xccd5f0ff}\n theme_color:{tags: \"menu_bar border\", value: 0xbabdc3ff}\n theme_color:{tags: \"scroll_bar background\", value: 0xe4e4e4ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0xf5cc84ff}\n theme_color:{tags: \"tab border\", value: 0xae7718ff}\n theme_color:{tags: \"tab inactive background\", value: 0x3b4f81ff}\n theme_color:{tags: \"tab inactive text\", value: 0xffffffff}\n theme_color:{tags: \"tab inactive border\", value: 0x3b4f81ff}\n theme_color:{tags: \"tab auto background\", value: 0xe99595ff}\n theme_color:{tags: \"tab auto border\", value: 0xff6262ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0xac6060ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0xff6262ff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xa7ffff}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x002a35ff}\n theme_color:{tags: \"alt background\", value: 0x053542ff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x65166ff}\n theme_color:{tags: text, value: 0xeee8d5ff}\n theme_color:{tags: \"weak text\", value: 0x93a1a1ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xca4b16ff}\n theme_color:{tags: \"focus overlay\", value: 0xca4b151f}\n theme_color:{tags: \"focus border\", value: 0xca4b16ff}\n theme_color:{tags: cursor, value: 0xca4b16ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x5f8700ff}\n theme_color:{tags: \"good_pop border\", value: 0x5f8700ff}\n theme_color:{tags: \"bad_pop background\", value: 0x810000ff}\n theme_color:{tags: code_default, value: 0x839496ff}\n theme_color:{tags: code_symbol, value: 0xb3880eff}\n theme_color:{tags: code_type, value: 0xb3880eff}\n theme_color:{tags: code_local, value: 0xeee8d5ff}\n theme_color:{tags: code_register, value: 0xeee8d5ff}\n theme_color:{tags: code_keyword, value: 0x849804ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x839496ff}\n theme_color:{tags: code_numeric, value: 0x2aa198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x19766bff}\n theme_color:{tags: code_string, value: 0x2aa198ff}\n theme_color:{tags: code_meta, value: 0xca4b16ff}\n theme_color:{tags: code_comment, value: 0x586e75ff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x2a3574}\n theme_color:{tags: \"floating background alt\", value: 0x4f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x53542ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x53542ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x586e75ff}\n theme_color:{tags: \"tab border\", value: 0x90abb3ff}\n theme_color:{tags: \"tab inactive background\", value: 0x0}\n theme_color:{tags: \"tab inactive border\", value: 0x33494fff}\n theme_color:{tags: \"tab auto background\", value: 0x565ed2ff}\n theme_color:{tags: \"tab auto border\", value: 0xa2a6dfff}\n theme_color:{tags: \"tab auto inactive background\", value: 0}\n theme_color:{tags: \"tab auto inactive border\", value: 0x595fbcff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0xfdf6e3ff}\n theme_color:{tags: \"alt background\", value: 0xeee8d5ff}\n theme_color:{tags: \"pop background\", value: 0x29a19890}\n theme_color:{tags: \"fresh background\", value: 0xf7d38dff}\n theme_color:{tags: \"match background\", value: 0xdcddddff}\n theme_color:{tags: border, value: 0xd1ccbdff}\n theme_color:{tags: \"weak text\", value: 0x93a1a1ff}\n theme_color:{tags: text, value: 0x657b83ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xca4b16ff}\n theme_color:{tags: \"focus overlay\", value: 0xca4b1454}\n theme_color:{tags: \"focus border\", value: 0xca4b16ff}\n theme_color:{tags: cursor, value: 0xca4b16ff}\n theme_color:{tags: selection, value: 0x8594a264}\n theme_color:{tags: \"inactive background\", value: 0x14}\n theme_color:{tags: drop_shadow, value: 0x3a}\n theme_color:{tags: \"good_pop background\", value: 0xd1e99aff}\n theme_color:{tags: \"good_pop border\", value: 0xd1e99aff}\n theme_color:{tags: \"bad_pop background\", value: 0xd26c6cff}\n theme_color:{tags: \"bad_pop border\", value: 0xd26c6cff}\n theme_color:{tags: \"bad_pop weak text\", value: 0xffffffff}\n theme_color:{tags: \"bad_pop text\", value: 0xffffffff}\n theme_color:{tags: code_default, value: 0x839496ff}\n theme_color:{tags: code_symbol, value: 0xb3880eff}\n theme_color:{tags: code_type, value: 0xb3880eff}\n theme_color:{tags: code_local, value: 0x657b83ff}\n theme_color:{tags: code_register, value: 0x947298ff}\n theme_color:{tags: code_keyword, value: 0x849804ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x839496ff}\n theme_color:{tags: code_numeric, value: 0x2aa198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x19766bff}\n theme_color:{tags: code_string, value: 0x2aa198ff}\n theme_color:{tags: code_meta, value: 0xca4b16ff}\n theme_color:{tags: code_comment, value: 0x586e75ff}\n theme_color:{tags: line_info_0, value: 0xeee1dbff}\n theme_color:{tags: line_info_1, value: 0xe5d5b1ff}\n theme_color:{tags: line_info_2, value: 0xd9e8b6ff}\n theme_color:{tags: line_info_3, value: 0xf5d5ccff}\n theme_color:{tags: thread_0, value: 0xffa100ff}\n theme_color:{tags: thread_1, value: 0x6edd00ff}\n theme_color:{tags: thread_unwound, value: 0x708f9eff}\n theme_color:{tags: thread_error, value: 0xff5231ff}\n theme_color:{tags: breakpoint, value: 0xff411dff}\n theme_color:{tags: \"floating background\", value: 0xfdf6e3b1}\n theme_color:{tags: \"floating background alt\", value: 0x22}\n theme_color:{tags: \"floating background fresh\", value: 0xf7d38dff}\n theme_color:{tags: \"scroll_bar background\", value: 0xeee6d0ff}\n theme_color:{tags: \"scroll_bar floating background\", value: 0xd5ccb5ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0xfdf6e3ff}\n theme_color:{tags: \"tab inactive background\", value: 0xe0d6bbff}\n theme_color:{tags: \"tab auto background\", value: 0xf5cfe1ff}\n theme_color:{tags: \"tab auto border\", value: 0xa2a6dfff}\n theme_color:{tags: \"tab auto inactive background\", value: 0xc8a5b5ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x595fbcff}\n theme_color:{tags: \"drop_site background\", value: 0x29a19890}\n theme_color:{tags: \"drop_site border\", value: 0x81ddd690}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x0c0c0cff}\n theme_color:{tags: \"alt background\", value: 0x161616ff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x404040ff}\n theme_color:{tags: text, value: 0xcac1b6ff}\n theme_color:{tags: \"weak text\", value: 0xa08563ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0x7485971e}\n theme_color:{tags: \"focus border\", value: 0x5e6b79ff}\n theme_color:{tags: cursor, value: 0x00ee00ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x2c5b36ff}\n theme_color:{tags: \"good_pop border\", value: 0x568761ff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0x803425ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0xa08563ff}\n theme_color:{tags: code_symbol, value: 0xcc5735ff}\n theme_color:{tags: code_type, value: 0xd8a51cff}\n theme_color:{tags: code_local, value: 0xd6b995ff}\n theme_color:{tags: code_register, value: 0xc04047ff}\n theme_color:{tags: code_keyword, value: 0xac7b0aff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x907553ff}\n theme_color:{tags: code_numeric, value: 0x6b8e23ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x4f681cff}\n theme_color:{tags: code_string, value: 0x6b8e23ff}\n theme_color:{tags: code_meta, value: 0xdab98fff}\n theme_color:{tags: code_comment, value: 0x686868ff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x18181980}\n theme_color:{tags: \"floating background alt\", value: 0x0000005f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating border\", value: 0xbfbfbf1f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\", value: 0x5f5f5f5f}\n theme_color:{tags: \"menu_bar background\", value: 0x1f1f27ff}\n theme_color:{tags: \"menu_bar border\", value: 0x3d3d47ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x2b2b2bff}\n theme_color:{tags: \"scroll_bar border\", value: 0x3f3f3fff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x1f1f27ff}\n theme_color:{tags: \"tab border\", value: 0x3d3d47ff}\n theme_color:{tags: \"tab text\", value: 0xca9301ff}\n theme_color:{tags: \"tab text weak\", value: 0x8c690eff}\n theme_color:{tags: \"tab inactive background\", value: 0x171718ff}\n theme_color:{tags: \"tab inactive border\", value: 0x1f1f27ff}\n theme_color:{tags: \"tab auto background\", value: 0x243b38ff}\n theme_color:{tags: \"tab auto border\", value: 0x478980ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x102623ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x1e5850ff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x042327ff}\n theme_color:{tags: \"alt background\", value: 0x11b1fff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"pop text\", value: 0xbad7e6ff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x334d50ff}\n theme_color:{tags: text, value: 0xdad3beff}\n theme_color:{tags: \"weak text\", value: 0xb0a688ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: \"menu_bar good text\", value: 0x2a8242ff}\n theme_color:{tags: \"menu_bar neutral text\", value: 0x5681ff}\n theme_color:{tags: \"menu_bar bad text\", value: 0xa21200ff}\n theme_color:{tags: \"menu_bar weak text\", value: 0x313131ff}\n theme_color:{tags: \"menu_bar bad_pop text weak\", value: 0xffffffff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0x86e08e20}\n theme_color:{tags: \"focus border\", value: 0x86e08fff}\n theme_color:{tags: cursor, value: 0x86e08fff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x2c5b36ff}\n theme_color:{tags: \"good_pop border\", value: 0x568761ff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0x803425ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0xbdb395ff}\n theme_color:{tags: code_symbol, value: 0xcbe0f5ff}\n theme_color:{tags: code_type, value: 0xcbe0f5ff}\n theme_color:{tags: code_local, value: 0xd9cfb3ff}\n theme_color:{tags: code_register, value: 0xb7afd5ff}\n theme_color:{tags: code_keyword, value: 0x9de3c0ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x767676ff}\n theme_color:{tags: code_numeric, value: 0x2ca198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x217770ff}\n theme_color:{tags: code_string, value: 0x2ca198ff}\n theme_color:{tags: code_meta, value: 0xB0FFB0ff}\n theme_color:{tags: code_comment, value: 0x31b72cff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x3232792}\n theme_color:{tags: \"floating background alt\", value: 0x0000005f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0xe363bff}\n theme_color:{tags: \"menu_bar background\", value: 0xb59e7aff}\n theme_color:{tags: \"menu_bar text\", value: 0xff}\n theme_color:{tags: \"menu_bar border\", value: 0x947d5aff}\n theme_color:{tags: \"scroll_bar background\", value: 0xe363bff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x13533aff}\n theme_color:{tags: \"tab border\", value: 0x6c9182ff}\n theme_color:{tags: \"tab inactive background\", value: 0x0}\n theme_color:{tags: \"tab inactive border\", value: 0x947d5a6c}\n theme_color:{tags: \"tab auto background\", value: 0x5b3939ff}\n theme_color:{tags: \"tab auto border\", value: 0x875c5cff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x251b1bff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x563d3dff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background,value: 0xc0c0cff}\n theme_color:{tags: \"alt background\", value: 0x131313ff}\n theme_color:{tags: \"pop background\", value: 0x4c00ff}\n theme_color:{tags: \"fresh background\", value: 0x4c00ff}\n theme_color:{tags: \"match background\", value: 0x4c00ff}\n theme_color:{tags: border, value: 0x272727ff}\n theme_color:{tags: text, value: 0x90b080ff}\n theme_color:{tags: \"weak text\", value: 0x6b845fff}\n theme_color:{tags: \"menu_bar background\", value: 0x888888ff}\n theme_color:{tags: \"menu_bar text\", value: 0x20202ff}\n theme_color:{tags: \"menu_bar text weak\", value: 0x525252ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xee00ff}\n theme_color:{tags: \"focus overlay\", value: 0xee0012}\n theme_color:{tags: \"focus border\", value: 0x00ee00ff}\n theme_color:{tags: cursor, value: 0x00ee00ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x4900ff}\n theme_color:{tags: \"good_pop border\", value: 0x4900ff}\n theme_color:{tags: \"bad_pop background\", value: 0x430b00ff}\n theme_color:{tags: code_default, value: 0x90b080ff}\n theme_color:{tags: code_symbol, value: 0xbfd9b2ff}\n theme_color:{tags: code_type, value: 0xbfd9b2ff}\n theme_color:{tags: code_local, value: 0xbfd9b2ff}\n theme_color:{tags: code_register, value: 0xb84cffff}\n theme_color:{tags: code_keyword, value: 0xd08f1fff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x90b080ff}\n theme_color:{tags: code_numeric, value: 0x50ff2fff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x30af18ff}\n theme_color:{tags: code_string, value: 0x50ff2fff}\n theme_color:{tags: code_meta, value: 0x90b080ff}\n theme_color:{tags: code_comment, value: 0x1f90f0ff}\n theme_color:{tags: line_info_0, value: 0xa253dff}\n theme_color:{tags: line_info_1, value: 0x9103dff}\n theme_color:{tags: line_info_2, value: 0x1e083dff}\n theme_color:{tags: line_info_3, value: 0x1e083dff}\n theme_color:{tags: thread_0, value: 0xd08f1fff}\n theme_color:{tags: thread_1, value: 0x1ea5d0ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x1d1d1dff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x15490cff}\n theme_color:{tags: \"tab border\", value: 0x15490cff}\n theme_color:{tags: \"tab text\", value: 0x90b080ff}\n theme_color:{tags: \"tab text weak\", value: 0x90b080ff}\n theme_color:{tags: \"tab inactive background\", value: 0x21321eff}\n theme_color:{tags: \"tab inactive border\", value: 0x21321eff}\n theme_color:{tags: \"tab auto background\", value: 0x674f3eff}\n theme_color:{tags: \"tab auto border\", value: 0x674f3eff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x47382eff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x47382eff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{ tags: background , value: 0x1b1f22ff }\n theme_color:{ tags: \"alt background\" , value: 0x232929ff }\n theme_color:{ tags: \"pop background\" , value: 0x2f4838ff }\n theme_color:{ tags: \"fresh background\" , value: 0x31393dff }\n theme_color:{ tags: \"match background\" , value: 0x31393dff }\n theme_color:{ tags: border , value: 0x485347ff }\n theme_color:{ tags: text , value: 0xffffffff }\n theme_color:{ tags: \"weak text\" , value: 0xa2a2a2ff }\n theme_color:{ tags: \"good text\" , value: 0x32a852ff }\n theme_color:{ tags: \"neutral text\" , value: 0x3a90bbff }\n theme_color:{ tags: \"bad text\" , value: 0xcf5242ff }\n theme_color:{ tags: hover , value: 0xffffffff }\n theme_color:{ tags: \"focus overlay\" , value: 0xfda20012 }\n theme_color:{ tags: \"focus border\" , value: 0xfda200ff }\n theme_color:{ tags: cursor , value: 0x8aff00ff }\n theme_color:{ tags: selection , value: 0x99ccff0f }\n theme_color:{ tags: \"inactive background\" , value: 0x0 }\n theme_color:{ tags: drop_shadow , value: 0x0000007f }\n theme_color:{ tags: \"good_pop background\" , value: 0x2c5b36ff }\n theme_color:{ tags: \"good_pop border\" , value: 0x568761ff }\n theme_color:{ tags: \"good_pop hover\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop weak text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"bad_pop background\" , value: 0x803425ff }\n theme_color:{ tags: \"bad_pop hover\" , value: 0xff825cff }\n theme_color:{ tags: code_default , value: 0xad8b69ff }\n theme_color:{ tags: code_symbol , value: 0x87ad6aff }\n theme_color:{ tags: code_type , value: 0xb67474ff }\n theme_color:{ tags: code_local , value: 0xe9bf95ff }\n theme_color:{ tags: code_register , value: 0xa688b2ff }\n theme_color:{ tags: code_keyword , value: 0xe49e17ff }\n theme_color:{ tags: code_delimiter_or_operator , value: 0x795e43ff }\n theme_color:{ tags: code_numeric , value: 0x98b19eff }\n theme_color:{ tags: code_numeric_alt_digit_group , value: 0x688b71ff }\n theme_color:{ tags: code_string , value: 0x98b19eff }\n theme_color:{ tags: code_meta , value: 0xad5979ff }\n theme_color:{ tags: code_comment , value: 0x52675dff }\n theme_color:{ tags: line_info_0 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_2 , value: 0x434e2aff }\n theme_color:{ tags: line_info_3 , value: 0x36241fff }\n theme_color:{ tags: line_info_4 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_6 , value: 0x434e2aff }\n theme_color:{ tags: line_info_7 , value: 0x36241fff }\n theme_color:{ tags: thread_0 , value: 0xffc258ff }\n theme_color:{ tags: thread_1 , value: 0x82d331ff }\n theme_color:{ tags: thread_2 , value: 0xff99e5ff }\n theme_color:{ tags: thread_3 , value: 0x6598ffff }\n theme_color:{ tags: thread_4 , value: 0x65ffcbff }\n theme_color:{ tags: thread_5 , value: 0xff9819ff }\n theme_color:{ tags: thread_6 , value: 0x9932ffff }\n theme_color:{ tags: thread_7 , value: 0x65ff4cff }\n theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }\n theme_color:{ tags: thread_error , value: 0xb23219ff }\n theme_color:{ tags: breakpoint , value: 0xa72911ff }\n theme_color:{ tags: \"floating background\" , value: 0x1b1f2276 }\n theme_color:{ tags: \"floating background alt\" , value: 0x0000005f }\n theme_color:{ tags: \"floating background fresh\" , value: 0x31393d5f }\n theme_color:{ tags: \"floating border\" , value: 0xbfbfbf1f }\n theme_color:{ tags: \"floating scroll_bar background\" , value: 0x3b3b3b5f }\n theme_color:{ tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"menu_bar background\" , value: 0x243d32ff }\n theme_color:{ tags: \"menu_bar border\" , value: 0x597b63ff }\n theme_color:{ tags: \"scroll_bar background\" , value: 0x232929ff }\n theme_color:{ tags: \"scroll_bar border\" , value: 0x3c4a3fff }\n theme_color:{ tags: \"implicit background\" , value: 0x00000000 }\n theme_color:{ tags: \"implicit border\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow background\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow border\" , value: 0xffffff1f }\n theme_color:{ tags: \"tab background\" , value: 0x243d32ff }\n theme_color:{ tags: \"tab border\" , value: 0x597b63ff }\n theme_color:{ tags: \"tab inactive background\" , value: 0x30383eff }\n theme_color:{ tags: \"tab inactive border\" , value: 0x6b7680ff }\n theme_color:{ tags: \"tab auto background\" , value: 0x30636dff }\n theme_color:{ tags: \"tab auto border\" , value: 0x768f94ff }\n theme_color:{ tags: \"tab auto inactive background\" , value: 0x2f2633ff }\n theme_color:{ tags: \"tab auto inactive border\" , value: 0x685073ff }\n theme_color:{ tags: \"drop_site background\" , value: 0xffffff05 }\n theme_color:{ tags: \"drop_site border\" , value: 0xffffff0f }\n}\n"), -str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x000080ff}\n theme_color:{tags: \"pop background\", value: 0x8080ff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x8080ff}\n theme_color:{tags: text, value: 0xffffffff}\n theme_color:{tags: \"weak text\", value: 0xffffffff}\n theme_color:{tags: \"good text\", value: 0x00ff00ff}\n theme_color:{tags: \"neutral text\", value: 0x00ffffff}\n theme_color:{tags: \"bad text\", value: 0xff0000ff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0xffff0012}\n theme_color:{tags: \"focus border\", value: 0xffff00ff}\n theme_color:{tags: cursor, value: 0xffff00ff}\n theme_color:{tags: selection, value: 0xffff0018}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x6c17ff}\n theme_color:{tags: \"good_pop border\", value: 0x6c17ff}\n theme_color:{tags: \"bad_pop background\", value: 0xff0000ff}\n theme_color:{tags: code_default, value: 0xffffffff}\n theme_color:{tags: code_symbol, value: 0xffffff}\n theme_color:{tags: code_type, value: 0x00ff00ff}\n theme_color:{tags: code_local, value: 0x00ffffff}\n theme_color:{tags: code_register, value: 0xff00ffff}\n theme_color:{tags: code_keyword, value: 0xffffffff}\n theme_color:{tags: code_delimiter_or_operator, value: 0xffffffff}\n theme_color:{tags: code_numeric, value: 0xffff00ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0xffff00ff}\n theme_color:{tags: code_string, value: 0xffff00ff}\n theme_color:{tags: code_meta, value: 0xff0000ff}\n theme_color:{tags: code_comment, value: 0x008080ff}\n theme_color:{tags: line_info_0, value: 0x8080ff}\n theme_color:{tags: line_info_1, value: 0x800080ff}\n theme_color:{tags: line_info_2, value: 0x800000ff}\n theme_color:{tags: line_info_3, value: 0x08000ff}\n theme_color:{tags: thread_0, value: 0xffff00ff}\n theme_color:{tags: thread_1, value: 0x00ff00ff}\n theme_color:{tags: thread_unwound, value: 0x00ffffff}\n theme_color:{tags: thread_error, value: 0xff0000ff}\n theme_color:{tags: breakpoint, value: 0xff0000ff}\n theme_color:{tags: \"menu_bar background\", value: 0x008080ff}\n theme_color:{tags: \"menu_bar border\", value: 0x8080ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x008080ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x8080ff}\n theme_color:{tags: \"tab border\", value: 0x8080ff}\n theme_color:{tags: \"tab inactive background\", value:0}\n theme_color:{tags: \"tab auto background\", value: 0x800000ff}\n theme_color:{tags: \"tab auto border\", value: 0x8080ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x300000ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x8080ff}\n theme_color:{tags: \"drop_site background\", value: 0x80ff}\n theme_color:{tags: \"drop_site border\", value: 0xffffff}\n}\n"), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 rd_tab_fast_path_view_name_table[25] = +{ +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("watch"), +str8_lit_comp("text"), +str8_lit_comp("text"), +str8_lit_comp("disasm"), +str8_lit_comp("memory"), +str8_lit_comp("bitmap"), +str8_lit_comp("color"), +str8_lit_comp("geo3d"), +}; + +String8 rd_tab_fast_path_query_name_table[25] = +{ +str8_lit_comp(""), +str8_lit_comp("query:locals"), +str8_lit_comp("query:registers"), +str8_lit_comp("query:globals"), +str8_lit_comp("query:thread_locals"), +str8_lit_comp("query:types"), +str8_lit_comp("query:procedures"), +str8_lit_comp("query:call_stack"), +str8_lit_comp("query:targets"), +str8_lit_comp("query:breakpoints"), +str8_lit_comp("query:watch_pins"), +str8_lit_comp("query:debug_infos"), +str8_lit_comp("query:threads"), +str8_lit_comp("query:processes"), +str8_lit_comp("query:machines"), +str8_lit_comp("query:modules"), +str8_lit_comp("query:file_path_maps"), +str8_lit_comp("query:type_views"), +str8_lit_comp("query:output"), +str8_lit_comp(""), +str8_lit_comp(""), +str8_lit_comp(""), +str8_lit_comp(""), +str8_lit_comp(""), +str8_lit_comp(""), +}; + +RD_VocabInfo rd_vocab_info_table[368] = +{ +{str8_lit_comp("type_view"), str8_lit_comp("type_views"), str8_lit_comp("Type View"), str8_lit_comp("Type Views"), RD_IconKind_Binoculars}, +{str8_lit_comp("file_path_map"), str8_lit_comp("file_path_maps"), str8_lit_comp("File Path Map"), str8_lit_comp("File Path Maps"), RD_IconKind_FileOutline}, +{str8_lit_comp("watch_pin"), str8_lit_comp("watch_pins"), str8_lit_comp("Watch Pin"), str8_lit_comp("Watch Pins"), RD_IconKind_Pin}, +{str8_lit_comp("debug_info"), str8_lit_comp("debug_infos"), str8_lit_comp("Debug Info"), str8_lit_comp("Debug Info"), RD_IconKind_Module}, +{str8_lit_comp("watch"), str8_lit_comp("watches"), str8_lit_comp("Watch"), str8_lit_comp("Watches"), RD_IconKind_Binoculars}, +{str8_lit_comp("view"), str8_lit_comp("views"), str8_lit_comp("View"), str8_lit_comp("Views"), RD_IconKind_Binoculars}, +{str8_lit_comp("breakpoint"), str8_lit_comp("breakpoints"), str8_lit_comp("Breakpoint"), str8_lit_comp("Breakpoints"), RD_IconKind_CircleFilled}, +{str8_lit_comp("condition"), str8_lit_comp("conditions"), str8_lit_comp("Condition"), str8_lit_comp("Conditions"), RD_IconKind_Null}, +{str8_lit_comp("location"), str8_lit_comp("locations"), str8_lit_comp("Location"), str8_lit_comp("Locations"), RD_IconKind_Null}, +{str8_lit_comp("source_location"), str8_lit_comp("source_locations"), str8_lit_comp("Source Location"), str8_lit_comp("Source Locations"), RD_IconKind_Null}, +{str8_lit_comp("address_location"), str8_lit_comp("address_locations"), str8_lit_comp("Address Location"), str8_lit_comp("Address Locations"), RD_IconKind_Null}, +{str8_lit_comp("target"), str8_lit_comp("targets"), str8_lit_comp("Target"), str8_lit_comp("Targets"), RD_IconKind_Target}, +{str8_lit_comp("color"), str8_lit_comp("colors"), str8_lit_comp("Color"), str8_lit_comp("Colors"), RD_IconKind_Palette}, +{str8_lit_comp("theme_color"), str8_lit_comp("theme_colors"), str8_lit_comp("Theme Color"), str8_lit_comp("Theme Colors"), RD_IconKind_Palette}, +{str8_lit_comp("executable"), str8_lit_comp("executables"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module}, +{str8_lit_comp("arguments"), str8_lit_comp("arguments"), str8_lit_comp("Arguments"), str8_lit_comp("Arguments"), RD_IconKind_Null}, +{str8_lit_comp("exe"), str8_lit_comp("exes"), str8_lit_comp("Executable"), str8_lit_comp("Executables"), RD_IconKind_Module}, +{str8_lit_comp("dbg"), str8_lit_comp("dbgs"), str8_lit_comp("Debug Info Path"), str8_lit_comp("Debug Info Paths"), RD_IconKind_Module}, +{str8_lit_comp("vaddr_range"), str8_lit_comp("vaddr_ranges"), str8_lit_comp("Virtual Address Range"), str8_lit_comp("Virtual Address Ranges"), RD_IconKind_Null}, +{str8_lit_comp("min"), str8_lit_comp("mins"), str8_lit_comp("Minimum"), str8_lit_comp("Minimums"), RD_IconKind_Null}, +{str8_lit_comp("max"), str8_lit_comp("maxs"), str8_lit_comp("Maximum"), str8_lit_comp("Maximums"), RD_IconKind_Null}, +{str8_lit_comp("working_directory"), str8_lit_comp("working_directories"), str8_lit_comp("Working Directory"), str8_lit_comp("Working Directories"), RD_IconKind_FolderClosedFilled}, +{str8_lit_comp("entry_point"), str8_lit_comp("entry_points"), str8_lit_comp("Entry Point"), str8_lit_comp("Entry Points"), RD_IconKind_Null}, +{str8_lit_comp("stdout_path"), str8_lit_comp("stdout_paths"), str8_lit_comp("Standard Output Path"), str8_lit_comp("Standard Output Paths"), RD_IconKind_Null}, +{str8_lit_comp("stderr_path"), str8_lit_comp("stderr_paths"), str8_lit_comp("Standard Error Path"), str8_lit_comp("Standard Error Paths"), RD_IconKind_Null}, +{str8_lit_comp("stdin_path"), str8_lit_comp("stdin_paths"), str8_lit_comp("Standard Input Path"), str8_lit_comp("Standard Input Paths"), RD_IconKind_Null}, +{str8_lit_comp("window"), str8_lit_comp("windows"), str8_lit_comp("Window"), str8_lit_comp("Windows"), RD_IconKind_Window}, +{str8_lit_comp("panel"), str8_lit_comp("panels"), str8_lit_comp("Panel"), str8_lit_comp("Panels"), RD_IconKind_Null}, +{str8_lit_comp("tab"), str8_lit_comp("tabs"), str8_lit_comp("Tab"), str8_lit_comp("Tabs"), RD_IconKind_Null}, +{str8_lit_comp("recent_project"), str8_lit_comp("recent_projects"), str8_lit_comp("Recent Project"), str8_lit_comp("Recent Projects"), RD_IconKind_Briefcase}, +{str8_lit_comp("src"), str8_lit_comp("srcs"), str8_lit_comp("Source"), str8_lit_comp("Sources"), RD_IconKind_Null}, +{str8_lit_comp("dst"), str8_lit_comp("dsts"), str8_lit_comp("Destination"), str8_lit_comp("Destinations"), RD_IconKind_Null}, +{str8_lit_comp("source"), str8_lit_comp("sources"), str8_lit_comp("Source"), str8_lit_comp("Sources"), RD_IconKind_Null}, +{str8_lit_comp("dest"), str8_lit_comp("dests"), str8_lit_comp("Destination"), str8_lit_comp("Destinations"), RD_IconKind_Null}, +{str8_lit_comp("conversion_task"), str8_lit_comp("conversion_tasks"), str8_lit_comp("Conversion Task"), str8_lit_comp("Conversion Tasks"), RD_IconKind_Null}, +{str8_lit_comp("conversion_fail"), str8_lit_comp("conversion_fails"), str8_lit_comp("Conversion Fail"), str8_lit_comp("Conversion Fails"), RD_IconKind_Null}, +{str8_lit_comp("lang"), str8_lit_comp("langs"), str8_lit_comp("Language"), str8_lit_comp("Languages"), RD_IconKind_Null}, +{str8_lit_comp("arch"), str8_lit_comp("archs"), str8_lit_comp("Architecture"), str8_lit_comp("Architectures"), RD_IconKind_Null}, +{str8_lit_comp("expr"), str8_lit_comp("exprs"), str8_lit_comp("Expression"), str8_lit_comp("Expressions"), RD_IconKind_Null}, +{str8_lit_comp("expression"), str8_lit_comp("expressions"), str8_lit_comp("Expression"), str8_lit_comp("Expressions"), RD_IconKind_Null}, +{str8_lit_comp("size"), str8_lit_comp("sizes"), str8_lit_comp("Size"), str8_lit_comp("Sizes"), RD_IconKind_Null}, +{str8_lit_comp("count"), str8_lit_comp("counts"), str8_lit_comp("Count"), str8_lit_comp("Counts"), RD_IconKind_Null}, +{str8_lit_comp("bool"), str8_lit_comp("bools"), str8_lit_comp("Boolean"), str8_lit_comp("Booleans"), RD_IconKind_Null}, +{str8_lit_comp("w"), str8_lit_comp("ws"), str8_lit_comp("Width"), str8_lit_comp("Widths"), RD_IconKind_Null}, +{str8_lit_comp("h"), str8_lit_comp("hs"), str8_lit_comp("Height"), str8_lit_comp("Heights"), RD_IconKind_Null}, +{str8_lit_comp("fmt"), str8_lit_comp("fmts"), str8_lit_comp("Format"), str8_lit_comp("Formats"), RD_IconKind_Null}, +{str8_lit_comp("addresses"), str8_lit_comp("addresses"), str8_lit_comp("Addresses"), str8_lit_comp("Addresses"), RD_IconKind_Null}, +{str8_lit_comp("code_bytes"), str8_lit_comp("code_bytes"), str8_lit_comp("Code Bytes"), str8_lit_comp("Code Bytes"), RD_IconKind_Null}, +{str8_lit_comp("vtx"), str8_lit_comp("vtxs"), str8_lit_comp("Vertex Buffer"), str8_lit_comp("Vertex Buffers"), RD_IconKind_Null}, +{str8_lit_comp("vtx_size"), str8_lit_comp("vtx_sizes"), str8_lit_comp("Vertex Buffer Size"), str8_lit_comp("Vertex Buffer Sizes"), RD_IconKind_Null}, +{str8_lit_comp("label"), str8_lit_comp("labels"), str8_lit_comp("Label"), str8_lit_comp("Labels"), RD_IconKind_Null}, +{str8_lit_comp("name"), str8_lit_comp("names"), str8_lit_comp("Name"), str8_lit_comp("Names"), RD_IconKind_Null}, +{str8_lit_comp("thread"), str8_lit_comp("threads"), str8_lit_comp("Thread"), str8_lit_comp("Threads"), RD_IconKind_Thread}, +{str8_lit_comp("threads"), str8_lit_comp(""), str8_lit_comp("Threads"), str8_lit_comp(""), RD_IconKind_Threads}, +{str8_lit_comp("process"), str8_lit_comp("processes"), str8_lit_comp("Process"), str8_lit_comp("Processes"), RD_IconKind_Scheduler}, +{str8_lit_comp("processes"), str8_lit_comp(""), str8_lit_comp("Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, +{str8_lit_comp("machine"), str8_lit_comp("machines"), str8_lit_comp("Machine"), str8_lit_comp("Machines"), RD_IconKind_Machine}, +{str8_lit_comp("module"), str8_lit_comp("modules"), str8_lit_comp("Module"), str8_lit_comp("Modules"), RD_IconKind_Module}, +{str8_lit_comp("getting_started"), str8_lit_comp(""), str8_lit_comp("Getting Started"), str8_lit_comp(""), RD_IconKind_QuestionMark}, +{str8_lit_comp("disasm"), str8_lit_comp(""), str8_lit_comp("Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, +{str8_lit_comp("text"), str8_lit_comp(""), str8_lit_comp("Text"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("type"), str8_lit_comp("types"), str8_lit_comp("Type"), str8_lit_comp("Types"), RD_IconKind_Null}, +{str8_lit_comp("procedure"), str8_lit_comp("procedures"), str8_lit_comp("Procedure"), str8_lit_comp("Procedures"), RD_IconKind_Null}, +{str8_lit_comp("global_variable"), str8_lit_comp("global_variables"), str8_lit_comp("Global Variable"), str8_lit_comp("Global Variables"), RD_IconKind_Null}, +{str8_lit_comp("global"), str8_lit_comp("globals"), str8_lit_comp("Global"), str8_lit_comp("Globals"), RD_IconKind_Null}, +{str8_lit_comp("thread_variable"), str8_lit_comp("thread_variables"), str8_lit_comp("Thread Variable"), str8_lit_comp("Thread Variables"), RD_IconKind_Null}, +{str8_lit_comp("thread_local"), str8_lit_comp("thread_locals"), str8_lit_comp("Thread Local"), str8_lit_comp("Thread Locals"), RD_IconKind_Null}, +{str8_lit_comp("call_stack"), str8_lit_comp("call_stacks"), str8_lit_comp("Call Stack"), str8_lit_comp("Call Stacks"), RD_IconKind_Thread}, +{str8_lit_comp("output"), str8_lit_comp("outputs"), str8_lit_comp("Output"), str8_lit_comp("Outputs"), RD_IconKind_List}, +{str8_lit_comp("scheduler"), str8_lit_comp("schedulers"), str8_lit_comp("Scheduler"), str8_lit_comp("Schedulers"), RD_IconKind_Scheduler}, +{str8_lit_comp("register"), str8_lit_comp("registers"), str8_lit_comp("Register"), str8_lit_comp("Registers"), RD_IconKind_Null}, +{str8_lit_comp("local"), str8_lit_comp("locals"), str8_lit_comp("Local"), str8_lit_comp("Locals"), RD_IconKind_Null}, +{str8_lit_comp("memory"), str8_lit_comp("memories"), str8_lit_comp("Memory"), str8_lit_comp("Memories"), RD_IconKind_Grid}, +{str8_lit_comp("hit_count"), str8_lit_comp("hit_counts"), str8_lit_comp("Hit Count"), str8_lit_comp("Hit Counts"), RD_IconKind_Null}, +{str8_lit_comp("enabled"), str8_lit_comp(""), str8_lit_comp("Enabled"), str8_lit_comp("Enabled"), RD_IconKind_Null}, +{str8_lit_comp("disabled"), str8_lit_comp(""), str8_lit_comp("Disabled"), str8_lit_comp("Disabled"), RD_IconKind_Null}, +{str8_lit_comp("debug_subprocesses"), str8_lit_comp(""), str8_lit_comp("Debug Subprocesses"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("environment"), str8_lit_comp("environments"), str8_lit_comp("Environment"), str8_lit_comp("Environments"), RD_IconKind_Null}, +{str8_lit_comp("frozen"), str8_lit_comp(""), str8_lit_comp("Frozen"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("id"), str8_lit_comp("ids"), str8_lit_comp("ID"), str8_lit_comp("IDs"), RD_IconKind_Null}, +{str8_lit_comp("last_modified_time"), str8_lit_comp("last_modified_times"), str8_lit_comp("Last Modified Time"), str8_lit_comp("Last Modified Times"), RD_IconKind_Null}, +{str8_lit_comp("creation_time"), str8_lit_comp("creation_times"), str8_lit_comp("Creation Time"), str8_lit_comp("Creation Times"), RD_IconKind_Null}, +{str8_lit_comp("data"), str8_lit_comp("datas"), str8_lit_comp("Data"), str8_lit_comp("Datas"), RD_IconKind_Null}, +{str8_lit_comp("unattached_processes"), str8_lit_comp(""), str8_lit_comp("Unattached Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, +{str8_lit_comp("user"), str8_lit_comp("users"), str8_lit_comp("User"), str8_lit_comp("Users"), RD_IconKind_Person}, +{str8_lit_comp("project"), str8_lit_comp("projects"), str8_lit_comp("Project"), str8_lit_comp("Projects"), RD_IconKind_Briefcase}, +{str8_lit_comp("recent_project"), str8_lit_comp("recent_projects"), str8_lit_comp("Recent Project"), str8_lit_comp("Recent Projects"), RD_IconKind_Briefcase}, +{str8_lit_comp("recent_file"), str8_lit_comp("recent_files"), str8_lit_comp("Recent File"), str8_lit_comp("Recent Files"), RD_IconKind_FileOutline}, +{str8_lit_comp("show_addresses"), str8_lit_comp(""), str8_lit_comp("Show Addresses"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("show_code_bytes"), str8_lit_comp(""), str8_lit_comp("Show Code Bytes"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("show_source_lines"), str8_lit_comp(""), str8_lit_comp("Show Source Lines"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("show_symbol_names"), str8_lit_comp(""), str8_lit_comp("Show Symbol Names"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("show_line_numbers"), str8_lit_comp(""), str8_lit_comp("Show Line Numbers"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("syntax"), str8_lit_comp("syntaxes"), str8_lit_comp("Syntax"), str8_lit_comp("Syntaxes"), RD_IconKind_Null}, +{str8_lit_comp("num_columns"), str8_lit_comp(""), str8_lit_comp("Number of Columns"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("bytes_per_cell"), str8_lit_comp(""), str8_lit_comp("Bytes Per Cell"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("bitmap"), str8_lit_comp("bitmaps"), str8_lit_comp("Bitmap"), str8_lit_comp("Bitmaps"), RD_IconKind_Bitmap}, +{str8_lit_comp("geo3d"), str8_lit_comp(""), str8_lit_comp("Geometry (3D)"), str8_lit_comp(""), RD_IconKind_Cube}, +{str8_lit_comp("address_range_size"), str8_lit_comp("address_range_sizes"), str8_lit_comp("Address Range Size"), str8_lit_comp("Address Range Sizes"), RD_IconKind_Null}, +{str8_lit_comp("break_on_read"), str8_lit_comp(""), str8_lit_comp("Break On Read"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("break_on_write"), str8_lit_comp(""), str8_lit_comp("Break On Write"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("break_on_execute"), str8_lit_comp(""), str8_lit_comp("Break On Execution"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("yaw"), str8_lit_comp(""), str8_lit_comp("Yaw"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("pitch"), str8_lit_comp(""), str8_lit_comp("Pitch"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("zoom"), str8_lit_comp(""), str8_lit_comp("Zoom"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("font_size"), str8_lit_comp(""), str8_lit_comp("Font Size"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("row_height"), str8_lit_comp(""), str8_lit_comp("Row Height"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("tab_height"), str8_lit_comp(""), str8_lit_comp("Tab Height"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("rgba"), str8_lit_comp(""), str8_lit_comp("RGBA"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("path"), str8_lit_comp(""), str8_lit_comp("Path"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("guid"), str8_lit_comp(""), str8_lit_comp("GUID"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("peek_type"), str8_lit_comp("peek_types"), str8_lit_comp("Peek Type"), str8_lit_comp("Peek Types"), RD_IconKind_Null}, +{str8_lit_comp("output_label"), str8_lit_comp("output_labels"), str8_lit_comp("Output Label"), str8_lit_comp("Output Labels"), RD_IconKind_List}, +{str8_lit_comp("launch_and_run"), str8_lit_comp(""), str8_lit_comp("Launch and Run"), str8_lit_comp(""), RD_IconKind_Play}, +{str8_lit_comp("launch_and_step_into"), str8_lit_comp(""), str8_lit_comp("Launch and Step Into"), str8_lit_comp(""), RD_IconKind_PlayStepForward}, +{str8_lit_comp("kill"), str8_lit_comp(""), str8_lit_comp("Kill"), str8_lit_comp(""), RD_IconKind_X}, +{str8_lit_comp("kill_all"), str8_lit_comp(""), str8_lit_comp("Kill All"), str8_lit_comp(""), RD_IconKind_Stop}, +{str8_lit_comp("detach"), str8_lit_comp(""), str8_lit_comp("Detach"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("continue"), str8_lit_comp(""), str8_lit_comp("Continue"), str8_lit_comp(""), RD_IconKind_Play}, +{str8_lit_comp("step_into_inst"), str8_lit_comp(""), str8_lit_comp("Step Into (Assembly)"), str8_lit_comp(""), RD_IconKind_StepInto}, +{str8_lit_comp("step_over_inst"), str8_lit_comp(""), str8_lit_comp("Step Over (Assembly)"), str8_lit_comp(""), RD_IconKind_StepOver}, +{str8_lit_comp("step_into_line"), str8_lit_comp(""), str8_lit_comp("Step Into (Line)"), str8_lit_comp(""), RD_IconKind_StepInto}, +{str8_lit_comp("step_over_line"), str8_lit_comp(""), str8_lit_comp("Step Over (Line)"), str8_lit_comp(""), RD_IconKind_StepOver}, +{str8_lit_comp("step_out"), str8_lit_comp(""), str8_lit_comp("Step Out"), str8_lit_comp(""), RD_IconKind_StepOut}, +{str8_lit_comp("step_to_exit"), str8_lit_comp(""), str8_lit_comp("Step To Exit"), str8_lit_comp(""), RD_IconKind_StepOut}, +{str8_lit_comp("halt"), str8_lit_comp(""), str8_lit_comp("Halt"), str8_lit_comp(""), RD_IconKind_Pause}, +{str8_lit_comp("soft_halt_refresh"), str8_lit_comp(""), str8_lit_comp("Soft Halt Refresh"), str8_lit_comp(""), RD_IconKind_Refresh}, +{str8_lit_comp("set_thread_ip"), str8_lit_comp(""), str8_lit_comp("Set Thread IP"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("run_to_line"), str8_lit_comp(""), str8_lit_comp("Run To Line"), str8_lit_comp(""), RD_IconKind_Play}, +{str8_lit_comp("run_to_name"), str8_lit_comp(""), str8_lit_comp("Run To Name"), str8_lit_comp(""), RD_IconKind_Play}, +{str8_lit_comp("run"), str8_lit_comp(""), str8_lit_comp("Run"), str8_lit_comp(""), RD_IconKind_Play}, +{str8_lit_comp("restart"), str8_lit_comp(""), str8_lit_comp("Restart"), str8_lit_comp(""), RD_IconKind_Redo}, +{str8_lit_comp("step_into"), str8_lit_comp(""), str8_lit_comp("Step Into"), str8_lit_comp(""), RD_IconKind_StepInto}, +{str8_lit_comp("step_over"), str8_lit_comp(""), str8_lit_comp("Step Over"), str8_lit_comp(""), RD_IconKind_StepOver}, +{str8_lit_comp("freeze_thread"), str8_lit_comp(""), str8_lit_comp("Freeze Thread"), str8_lit_comp(""), RD_IconKind_Locked}, +{str8_lit_comp("thaw_thread"), str8_lit_comp(""), str8_lit_comp("Thaw Thread"), str8_lit_comp(""), RD_IconKind_Unlocked}, +{str8_lit_comp("freeze_process"), str8_lit_comp(""), str8_lit_comp("Freeze Process"), str8_lit_comp(""), RD_IconKind_Locked}, +{str8_lit_comp("thaw_process"), str8_lit_comp(""), str8_lit_comp("Thaw Process"), str8_lit_comp(""), RD_IconKind_Unlocked}, +{str8_lit_comp("freeze_machine"), str8_lit_comp(""), str8_lit_comp("Freeze Machine"), str8_lit_comp(""), RD_IconKind_Locked}, +{str8_lit_comp("thaw_machine"), str8_lit_comp(""), str8_lit_comp("Thaw Machine"), str8_lit_comp(""), RD_IconKind_Unlocked}, +{str8_lit_comp("freeze_local_machine"), str8_lit_comp(""), str8_lit_comp("Freeze Local Machine"), str8_lit_comp(""), RD_IconKind_Machine}, +{str8_lit_comp("thaw_local_machine"), str8_lit_comp(""), str8_lit_comp("Thaw Local Machine"), str8_lit_comp(""), RD_IconKind_Machine}, +{str8_lit_comp("freeze_entity"), str8_lit_comp(""), str8_lit_comp("Freeze Entity"), str8_lit_comp(""), RD_IconKind_Unlocked}, +{str8_lit_comp("thaw_entity"), str8_lit_comp(""), str8_lit_comp("Thaw Entity"), str8_lit_comp(""), RD_IconKind_Locked}, +{str8_lit_comp("set_entity_color"), str8_lit_comp(""), str8_lit_comp("Set Entity Color"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("set_entity_name"), str8_lit_comp(""), str8_lit_comp("Set Entity Name"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("download_module_debug_info"), str8_lit_comp(""), str8_lit_comp("Download Module Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, +{str8_lit_comp("attach"), str8_lit_comp(""), str8_lit_comp("Attach"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("open_crash_dump"), str8_lit_comp(""), str8_lit_comp("Open Crash Dump"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("exit"), str8_lit_comp(""), str8_lit_comp("Exit"), str8_lit_comp(""), RD_IconKind_X}, +{str8_lit_comp("open_palette"), str8_lit_comp(""), str8_lit_comp("Open Palette"), str8_lit_comp(""), RD_IconKind_List}, +{str8_lit_comp("run_command"), str8_lit_comp(""), str8_lit_comp("Run Command"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp("Run External Driver Text Command"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("state"), str8_lit_comp(""), str8_lit_comp("State"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("eval"), str8_lit_comp(""), str8_lit_comp("Eval"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("line_from_vaddr"), str8_lit_comp(""), str8_lit_comp("Line From Virtual Address"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("wm_event"), str8_lit_comp(""), str8_lit_comp("OS Event"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("select_thread"), str8_lit_comp(""), str8_lit_comp("Select Thread"), str8_lit_comp(""), RD_IconKind_Thread}, +{str8_lit_comp("select_unwind"), str8_lit_comp(""), str8_lit_comp("Select Unwind"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("up_one_frame"), str8_lit_comp(""), str8_lit_comp("Up One Frame"), str8_lit_comp(""), RD_IconKind_UpArrow}, +{str8_lit_comp("down_one_frame"), str8_lit_comp(""), str8_lit_comp("Down One Frame"), str8_lit_comp(""), RD_IconKind_DownArrow}, +{str8_lit_comp("select_entity"), str8_lit_comp(""), str8_lit_comp("Select"), str8_lit_comp(""), RD_IconKind_RadioHollow}, +{str8_lit_comp("deselect_entity"), str8_lit_comp(""), str8_lit_comp("Deselect"), str8_lit_comp(""), RD_IconKind_RadioFilled}, +{str8_lit_comp("inc_window_font_size"), str8_lit_comp(""), str8_lit_comp("Increase Window Font Size"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("dec_window_font_size"), str8_lit_comp(""), str8_lit_comp("Decrease Window Font Size"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("inc_view_font_size"), str8_lit_comp(""), str8_lit_comp("Increase View Font Size"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("dec_view_font_size"), str8_lit_comp(""), str8_lit_comp("Decrease View Font Size"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("open_window"), str8_lit_comp(""), str8_lit_comp("Open New Window"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("window_settings"), str8_lit_comp(""), str8_lit_comp("Window Settings"), str8_lit_comp(""), RD_IconKind_Gear}, +{str8_lit_comp("close_window"), str8_lit_comp(""), str8_lit_comp("Close Window"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("toggle_fullscreen"), str8_lit_comp(""), str8_lit_comp("Toggle Fullscreen"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("bring_to_front"), str8_lit_comp(""), str8_lit_comp("Bring To Front"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("popup_accept"), str8_lit_comp(""), str8_lit_comp("Popup Accept"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("popup_cancel"), str8_lit_comp(""), str8_lit_comp("Popup Cancel"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("reset_to_default_bindings"), str8_lit_comp(""), str8_lit_comp("Reset To Default Bindings"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("reset_to_default_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Default Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("reset_to_compact_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Compact Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("reset_to_simple_panels"), str8_lit_comp(""), str8_lit_comp("Reset To Simple Panel Layout"), str8_lit_comp(""), RD_IconKind_Window}, +{str8_lit_comp("new_panel_left"), str8_lit_comp(""), str8_lit_comp("Split Panel Left"), str8_lit_comp(""), RD_IconKind_XSplit}, +{str8_lit_comp("new_panel_up"), str8_lit_comp(""), str8_lit_comp("Split Panel Up"), str8_lit_comp(""), RD_IconKind_YSplit}, +{str8_lit_comp("new_panel_right"), str8_lit_comp(""), str8_lit_comp("Split Panel Right"), str8_lit_comp(""), RD_IconKind_XSplit}, +{str8_lit_comp("new_panel_down"), str8_lit_comp(""), str8_lit_comp("Split Panel Down"), str8_lit_comp(""), RD_IconKind_YSplit}, +{str8_lit_comp("split_panel"), str8_lit_comp(""), str8_lit_comp("Split Panel"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("rotate_panel_columns"), str8_lit_comp(""), str8_lit_comp("Rotate Panel Columns"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("next_panel"), str8_lit_comp(""), str8_lit_comp("Focus Next Panel"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("prev_panel"), str8_lit_comp(""), str8_lit_comp("Focus Previous Panel"), str8_lit_comp(""), RD_IconKind_LeftArrow}, +{str8_lit_comp("focus_panel"), str8_lit_comp(""), str8_lit_comp("Focus Panel"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("focus_panel_right"), str8_lit_comp(""), str8_lit_comp("Focus Panel Right"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("focus_panel_left"), str8_lit_comp(""), str8_lit_comp("Focus Panel Left"), str8_lit_comp(""), RD_IconKind_LeftArrow}, +{str8_lit_comp("focus_panel_up"), str8_lit_comp(""), str8_lit_comp("Focus Panel Up"), str8_lit_comp(""), RD_IconKind_UpArrow}, +{str8_lit_comp("focus_panel_down"), str8_lit_comp(""), str8_lit_comp("Focus Panel Down"), str8_lit_comp(""), RD_IconKind_DownArrow}, +{str8_lit_comp("undo"), str8_lit_comp(""), str8_lit_comp("Undo"), str8_lit_comp(""), RD_IconKind_Undo}, +{str8_lit_comp("redo"), str8_lit_comp(""), str8_lit_comp("Redo"), str8_lit_comp(""), RD_IconKind_Redo}, +{str8_lit_comp("go_back"), str8_lit_comp(""), str8_lit_comp("Go Back"), str8_lit_comp(""), RD_IconKind_LeftArrow}, +{str8_lit_comp("go_forward"), str8_lit_comp(""), str8_lit_comp("Go Forward"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("close_panel"), str8_lit_comp(""), str8_lit_comp("Close Panel"), str8_lit_comp(""), RD_IconKind_ClosePanel}, +{str8_lit_comp("focus_tab"), str8_lit_comp(""), str8_lit_comp("Focus Tab"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("next_tab"), str8_lit_comp(""), str8_lit_comp("Focus Next Tab"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("prev_tab"), str8_lit_comp(""), str8_lit_comp("Focus Previous Tab"), str8_lit_comp(""), RD_IconKind_LeftArrow}, +{str8_lit_comp("move_tab_right"), str8_lit_comp(""), str8_lit_comp("Move Tab Right"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("move_tab_left"), str8_lit_comp(""), str8_lit_comp("Move Tab Left"), str8_lit_comp(""), RD_IconKind_LeftArrow}, +{str8_lit_comp("open_tab"), str8_lit_comp(""), str8_lit_comp("Open New Tab"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("build_tab"), str8_lit_comp(""), str8_lit_comp("Build Tab"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("duplicate_tab"), str8_lit_comp(""), str8_lit_comp("Duplicate Tab"), str8_lit_comp(""), RD_IconKind_Duplicate}, +{str8_lit_comp("copy_tab_full_path"), str8_lit_comp(""), str8_lit_comp("Copy Full Path"), str8_lit_comp(""), RD_IconKind_Clipboard}, +{str8_lit_comp("close_tab"), str8_lit_comp(""), str8_lit_comp("Close Tab"), str8_lit_comp(""), RD_IconKind_X}, +{str8_lit_comp("move_view"), str8_lit_comp(""), str8_lit_comp("Move View"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("tab_bar_top"), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Top"), str8_lit_comp(""), RD_IconKind_UpArrow}, +{str8_lit_comp("tab_bar_bottom"), str8_lit_comp(""), str8_lit_comp("Anchor Tab Bar To Bottom"), str8_lit_comp(""), RD_IconKind_DownArrow}, +{str8_lit_comp("tab_settings"), str8_lit_comp(""), str8_lit_comp("Selected Tab Settings"), str8_lit_comp(""), RD_IconKind_Gear}, +{str8_lit_comp("set_current_path"), str8_lit_comp(""), str8_lit_comp("Set Current Path"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("open"), str8_lit_comp(""), str8_lit_comp("Open"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("open_source_file_from_debug_info"), str8_lit_comp(""), str8_lit_comp("Open Source File From Debug Info"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("switch_to_partner_file"), str8_lit_comp(""), str8_lit_comp("Switch To Partner File"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("show_file_in_explorer"), str8_lit_comp(""), str8_lit_comp("Show File In Explorer"), str8_lit_comp(""), RD_IconKind_FolderClosedFilled}, +{str8_lit_comp("go_to_disassembly"), str8_lit_comp(""), str8_lit_comp("Go To Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, +{str8_lit_comp("go_to_source"), str8_lit_comp(""), str8_lit_comp("Go To Source"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("set_file_replacement_path"), str8_lit_comp(""), str8_lit_comp("Set File Replacement Path"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("new_user"), str8_lit_comp(""), str8_lit_comp("New User"), str8_lit_comp(""), RD_IconKind_Add}, +{str8_lit_comp("new_project"), str8_lit_comp(""), str8_lit_comp("New Project"), str8_lit_comp(""), RD_IconKind_Add}, +{str8_lit_comp("open_user"), str8_lit_comp(""), str8_lit_comp("Open User"), str8_lit_comp(""), RD_IconKind_Person}, +{str8_lit_comp("open_project"), str8_lit_comp(""), str8_lit_comp("Open Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, +{str8_lit_comp("open_recent_project"), str8_lit_comp(""), str8_lit_comp("Open Recent Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, +{str8_lit_comp("save_user"), str8_lit_comp(""), str8_lit_comp("Save User"), str8_lit_comp(""), RD_IconKind_Save}, +{str8_lit_comp("save_project"), str8_lit_comp(""), str8_lit_comp("Save Project"), str8_lit_comp(""), RD_IconKind_Save}, +{str8_lit_comp("record_user_as_last_opened"), str8_lit_comp(""), str8_lit_comp("Record User As Last Opened"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("record_project_in_user"), str8_lit_comp(""), str8_lit_comp("Records Project In User"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("write_user_data"), str8_lit_comp(""), str8_lit_comp("Write User Data"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("write_project_data"), str8_lit_comp(""), str8_lit_comp("Write Project Data"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("user_settings"), str8_lit_comp(""), str8_lit_comp("User Settings"), str8_lit_comp(""), RD_IconKind_Gear}, +{str8_lit_comp("project_settings"), str8_lit_comp(""), str8_lit_comp("Project Settings"), str8_lit_comp(""), RD_IconKind_Gear}, +{str8_lit_comp("edit"), str8_lit_comp(""), str8_lit_comp("Edit"), str8_lit_comp(""), RD_IconKind_Pencil}, +{str8_lit_comp("accept"), str8_lit_comp(""), str8_lit_comp("Accept"), str8_lit_comp(""), RD_IconKind_CheckFilled}, +{str8_lit_comp("cancel"), str8_lit_comp(""), str8_lit_comp("Cancel"), str8_lit_comp(""), RD_IconKind_X}, +{str8_lit_comp("focus_menu"), str8_lit_comp(""), str8_lit_comp("Focus Menu"), str8_lit_comp(""), RD_IconKind_List}, +{str8_lit_comp("move_left"), str8_lit_comp(""), str8_lit_comp("Move Left"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_right"), str8_lit_comp(""), str8_lit_comp("Move Right"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up"), str8_lit_comp(""), str8_lit_comp("Move Up"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down"), str8_lit_comp(""), str8_lit_comp("Move Down"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_left_select"), str8_lit_comp(""), str8_lit_comp("Move Left Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_right_select"), str8_lit_comp(""), str8_lit_comp("Move Right Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_select"), str8_lit_comp(""), str8_lit_comp("Move Up Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_select"), str8_lit_comp(""), str8_lit_comp("Move Down Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_left_chunk"), str8_lit_comp(""), str8_lit_comp("Move Left Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_right_chunk"), str8_lit_comp(""), str8_lit_comp("Move Right Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_chunk"), str8_lit_comp(""), str8_lit_comp("Move Up Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_chunk"), str8_lit_comp(""), str8_lit_comp("Move Down Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_page"), str8_lit_comp(""), str8_lit_comp("Move Up Page"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_page"), str8_lit_comp(""), str8_lit_comp("Move Down Page"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_whole"), str8_lit_comp(""), str8_lit_comp("Move Up Whole"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_whole"), str8_lit_comp(""), str8_lit_comp("Move Down Whole"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_left_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Left Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_right_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Right Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Up Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_chunk_select"), str8_lit_comp(""), str8_lit_comp("Move Down Chunk Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_page_select"), str8_lit_comp(""), str8_lit_comp("Move Up Page Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_page_select"), str8_lit_comp(""), str8_lit_comp("Move Down Page Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_whole_select"), str8_lit_comp(""), str8_lit_comp("Move Up Whole Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_whole_select"), str8_lit_comp(""), str8_lit_comp("Move Down Whole Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_up_reorder"), str8_lit_comp(""), str8_lit_comp("Move Up Reorder"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_down_reorder"), str8_lit_comp(""), str8_lit_comp("Move Down Reorder"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_home"), str8_lit_comp(""), str8_lit_comp("Move Home"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_end"), str8_lit_comp(""), str8_lit_comp("Move End"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_home_select"), str8_lit_comp(""), str8_lit_comp("Move Home Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_end_select"), str8_lit_comp(""), str8_lit_comp("Move End Select"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("select_all"), str8_lit_comp(""), str8_lit_comp("Select All"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("delete_single"), str8_lit_comp(""), str8_lit_comp("Delete Single"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("delete_chunk"), str8_lit_comp(""), str8_lit_comp("Delete Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("backspace_single"), str8_lit_comp(""), str8_lit_comp("Backspace Single"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("backspace_chunk"), str8_lit_comp(""), str8_lit_comp("Backspace Chunk"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("copy"), str8_lit_comp(""), str8_lit_comp("Copy"), str8_lit_comp(""), RD_IconKind_Clipboard}, +{str8_lit_comp("cut"), str8_lit_comp(""), str8_lit_comp("Cut"), str8_lit_comp(""), RD_IconKind_Clipboard}, +{str8_lit_comp("paste"), str8_lit_comp(""), str8_lit_comp("Paste"), str8_lit_comp(""), RD_IconKind_Clipboard}, +{str8_lit_comp("insert_text"), str8_lit_comp(""), str8_lit_comp("Insert Text"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_next"), str8_lit_comp(""), str8_lit_comp("Move Next"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("move_prev"), str8_lit_comp(""), str8_lit_comp("Move Previous"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("goto_line"), str8_lit_comp(""), str8_lit_comp("Go To Line"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("goto_address"), str8_lit_comp(""), str8_lit_comp("Go To Address"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("center_cursor"), str8_lit_comp(""), str8_lit_comp("Center Cursor"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("contain_cursor"), str8_lit_comp(""), str8_lit_comp("Contain Cursor"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("find_next"), str8_lit_comp(""), str8_lit_comp("Find Next"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("find_prev"), str8_lit_comp(""), str8_lit_comp("Find Previous"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("find_thread"), str8_lit_comp(""), str8_lit_comp("Find Thread"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("find_selected_thread"), str8_lit_comp(""), str8_lit_comp("Find Selected Thread"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("goto_name"), str8_lit_comp(""), str8_lit_comp("Go To Name"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("goto_name_at_cursor"), str8_lit_comp(""), str8_lit_comp("Go To Name At Cursor"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("toggle_watch_expr"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Cursor"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Expression At Mouse"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("enable_cfg"), str8_lit_comp(""), str8_lit_comp("Enable"), str8_lit_comp(""), RD_IconKind_CheckHollow}, +{str8_lit_comp("disable_cfg"), str8_lit_comp(""), str8_lit_comp("Disable"), str8_lit_comp(""), RD_IconKind_CheckFilled}, +{str8_lit_comp("select_cfg"), str8_lit_comp(""), str8_lit_comp("Select"), str8_lit_comp(""), RD_IconKind_RadioHollow}, +{str8_lit_comp("deselect_cfg"), str8_lit_comp(""), str8_lit_comp("Deselect"), str8_lit_comp(""), RD_IconKind_RadioFilled}, +{str8_lit_comp("remove_cfg"), str8_lit_comp(""), str8_lit_comp("Remove"), str8_lit_comp(""), RD_IconKind_Trash}, +{str8_lit_comp("name_cfg"), str8_lit_comp(""), str8_lit_comp("Name"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("condition_cfg"), str8_lit_comp(""), str8_lit_comp("Condition"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("duplicate_cfg"), str8_lit_comp(""), str8_lit_comp("Duplicate"), str8_lit_comp(""), RD_IconKind_Duplicate}, +{str8_lit_comp("relocate_cfg"), str8_lit_comp(""), str8_lit_comp("Relocate"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("save_cfg_to_project"), str8_lit_comp(""), str8_lit_comp("Save To Project"), str8_lit_comp(""), RD_IconKind_Briefcase}, +{str8_lit_comp("add_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Line Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("add_address_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Address Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("add_function_breakpoint"), str8_lit_comp(""), str8_lit_comp("Add Function Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("toggle_breakpoint"), str8_lit_comp(""), str8_lit_comp("Toggle Line Breakpoint"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("remove_breakpoint"), str8_lit_comp(""), str8_lit_comp("Remove Breakpoint"), str8_lit_comp(""), RD_IconKind_Trash}, +{str8_lit_comp("enable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Enable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckFilled}, +{str8_lit_comp("disable_breakpoint"), str8_lit_comp(""), str8_lit_comp("Disable Breakpoint"), str8_lit_comp(""), RD_IconKind_CheckHollow}, +{str8_lit_comp("clear_breakpoints"), str8_lit_comp(""), str8_lit_comp("Clear Breakpoints"), str8_lit_comp(""), RD_IconKind_Trash}, +{str8_lit_comp("clear_output"), str8_lit_comp(""), str8_lit_comp("Clear Output"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("add_watch_pin"), str8_lit_comp(""), str8_lit_comp("Add Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, +{str8_lit_comp("toggle_watch_pin"), str8_lit_comp(""), str8_lit_comp("Toggle Watch Pin"), str8_lit_comp(""), RD_IconKind_Pin}, +{str8_lit_comp("load_debug_info"), str8_lit_comp(""), str8_lit_comp("Load Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, +{str8_lit_comp("unload_debug_info"), str8_lit_comp(""), str8_lit_comp("Unload Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, +{str8_lit_comp("add_type_view"), str8_lit_comp(""), str8_lit_comp("Add Type View"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("add_file_path_map"), str8_lit_comp(""), str8_lit_comp("Add File Path Map"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("edit_user_theme"), str8_lit_comp(""), str8_lit_comp("Edit User Theme"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("edit_project_theme"), str8_lit_comp(""), str8_lit_comp("Edit Project Theme"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("add_theme_color"), str8_lit_comp(""), str8_lit_comp("Add Theme Color"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("fork_theme"), str8_lit_comp(""), str8_lit_comp("Fork Theme"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("save_theme"), str8_lit_comp(""), str8_lit_comp("Save Theme"), str8_lit_comp(""), RD_IconKind_Save}, +{str8_lit_comp("save_and_set_theme"), str8_lit_comp(""), str8_lit_comp("Save And Set Theme"), str8_lit_comp(""), RD_IconKind_Save}, +{str8_lit_comp("set_next_statement"), str8_lit_comp(""), str8_lit_comp("Set Next Statement"), str8_lit_comp(""), RD_IconKind_RightArrow}, +{str8_lit_comp("add_target"), str8_lit_comp(""), str8_lit_comp("Add Target"), str8_lit_comp(""), RD_IconKind_Target}, +{str8_lit_comp("select_target"), str8_lit_comp(""), str8_lit_comp("Select Target"), str8_lit_comp(""), RD_IconKind_Target}, +{str8_lit_comp("enable_target"), str8_lit_comp(""), str8_lit_comp("Enable Target"), str8_lit_comp(""), RD_IconKind_CheckFilled}, +{str8_lit_comp("disable_target"), str8_lit_comp(""), str8_lit_comp("Disable Target"), str8_lit_comp(""), RD_IconKind_CheckHollow}, +{str8_lit_comp("remove_target"), str8_lit_comp(""), str8_lit_comp("Remove Target"), str8_lit_comp(""), RD_IconKind_Trash}, +{str8_lit_comp("register_as_jit_debugger"), str8_lit_comp(""), str8_lit_comp("Register As Just-In-Time (JIT) Debugger"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("find_code_location"), str8_lit_comp(""), str8_lit_comp("Find Code Location"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("go_to_memory"), str8_lit_comp(""), str8_lit_comp("Go To Memory"), str8_lit_comp(""), RD_IconKind_Grid}, +{str8_lit_comp("break_when_value_changes"), str8_lit_comp(""), str8_lit_comp("Break When Value Changes"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("search"), str8_lit_comp(""), str8_lit_comp("Search"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("search_backwards"), str8_lit_comp(""), str8_lit_comp("Search Backwards"), str8_lit_comp(""), RD_IconKind_Find}, +{str8_lit_comp("pick_file"), str8_lit_comp(""), str8_lit_comp("Pick File"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("pick_folder"), str8_lit_comp(""), str8_lit_comp("Pick Folder"), str8_lit_comp(""), RD_IconKind_FolderOpenFilled}, +{str8_lit_comp("pick_file_or_folder"), str8_lit_comp(""), str8_lit_comp("Pick File/Folder"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("push_query"), str8_lit_comp(""), str8_lit_comp("Push Query"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("complete_query"), str8_lit_comp(""), str8_lit_comp("Complete Query"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("cancel_query"), str8_lit_comp(""), str8_lit_comp("Cancel Query"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("update_query"), str8_lit_comp(""), str8_lit_comp("Update Query"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("open_event_buffer"), str8_lit_comp(""), str8_lit_comp("Open Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("close_event_buffer"), str8_lit_comp(""), str8_lit_comp("Close Event Buffer"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("toggle_dev_menu"), str8_lit_comp(""), str8_lit_comp("Toggle Developer Menu"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("log_marker"), str8_lit_comp(""), str8_lit_comp("Log Marker"), str8_lit_comp(""), RD_IconKind_Null}, +{str8_lit_comp("watches"), str8_lit_comp(""), str8_lit_comp("Watch"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("locals"), str8_lit_comp(""), str8_lit_comp("Locals"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("registers"), str8_lit_comp(""), str8_lit_comp("Registers"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("globals"), str8_lit_comp(""), str8_lit_comp("Globals"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("thread_locals"), str8_lit_comp(""), str8_lit_comp("Thread Locals"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("types"), str8_lit_comp(""), str8_lit_comp("Types"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("procedures"), str8_lit_comp(""), str8_lit_comp("Procedures"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("call_stack"), str8_lit_comp(""), str8_lit_comp("Call Stack"), str8_lit_comp(""), RD_IconKind_Thread}, +{str8_lit_comp("targets"), str8_lit_comp(""), str8_lit_comp("Targets"), str8_lit_comp(""), RD_IconKind_Target}, +{str8_lit_comp("breakpoints"), str8_lit_comp(""), str8_lit_comp("Breakpoints"), str8_lit_comp(""), RD_IconKind_CircleFilled}, +{str8_lit_comp("watch_pins"), str8_lit_comp(""), str8_lit_comp("Watch Pins"), str8_lit_comp(""), RD_IconKind_Pin}, +{str8_lit_comp("debug_infos"), str8_lit_comp(""), str8_lit_comp("Debug Info"), str8_lit_comp(""), RD_IconKind_Module}, +{str8_lit_comp("threads"), str8_lit_comp(""), str8_lit_comp("Threads"), str8_lit_comp(""), RD_IconKind_Threads}, +{str8_lit_comp("processes"), str8_lit_comp(""), str8_lit_comp("Processes"), str8_lit_comp(""), RD_IconKind_Scheduler}, +{str8_lit_comp("machines"), str8_lit_comp(""), str8_lit_comp("Machines"), str8_lit_comp(""), RD_IconKind_Machine}, +{str8_lit_comp("modules"), str8_lit_comp(""), str8_lit_comp("Modules"), str8_lit_comp(""), RD_IconKind_Module}, +{str8_lit_comp("file_path_maps"), str8_lit_comp(""), str8_lit_comp("File Path Map"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("type_views"), str8_lit_comp(""), str8_lit_comp("Type Views"), str8_lit_comp(""), RD_IconKind_Binoculars}, +{str8_lit_comp("output"), str8_lit_comp(""), str8_lit_comp("Output"), str8_lit_comp(""), RD_IconKind_List}, +{str8_lit_comp("text"), str8_lit_comp(""), str8_lit_comp("Text"), str8_lit_comp(""), RD_IconKind_FileOutline}, +{str8_lit_comp("disasm"), str8_lit_comp(""), str8_lit_comp("Disassembly"), str8_lit_comp(""), RD_IconKind_Glasses}, +{str8_lit_comp("memory"), str8_lit_comp(""), str8_lit_comp("Memory"), str8_lit_comp(""), RD_IconKind_Grid}, +{str8_lit_comp("bitmap"), str8_lit_comp(""), str8_lit_comp("Bitmap"), str8_lit_comp(""), RD_IconKind_Bitmap}, +{str8_lit_comp("color"), str8_lit_comp(""), str8_lit_comp("Color"), str8_lit_comp(""), RD_IconKind_Palette}, +{str8_lit_comp("geo3d"), str8_lit_comp(""), str8_lit_comp("Geometry (3D)"), str8_lit_comp(""), RD_IconKind_Cube}, +}; + +RD_NameSchemaInfo rd_name_schema_info_table[39] = +{ +{str8_lit_comp("user"), 0, str8_lit_comp("@expand_commands(edit_user_theme) x:\n{\n //- rjf: animations\n @display_name('Animations') @description(\"Enables animations.\")\n @default(1) 'animations': bool,\n @display_name('Scrolling Animations') @description(\"Enables scrolling animations.\")\n @expand_if(\"$.animations\") @default(1) 'scrolling_animations': bool,\n @display_name('Tooltip Animations') @description(\"Enables tooltip animations.\")\n @expand_if(\"$.animations\") @default(1) 'tooltip_animations': bool,\n @display_name('Menu Animations') @description(\"Enables menu animations.\")\n @expand_if(\"$.animations\") @default(1) 'menu_animations': bool,\n\n //- rjf: fonts\n @display_name('UI Font') @description(\"The name of, or path to, the font used when displaying non-code UI elements.\")\n @default('') 'main_font': string,\n @display_name('Code Font') @description(\"The name of, or path to, the font used when displaying code.\")\n @default('') 'code_font': string,\n\n //- rjf: theme\n @default(\"Default (Dark)\") @display_name('User Theme')\n @description(\"The user's theme, which describes all colors used throughout the UI.\")\n 'theme': string,\n @no_expand @display_name('User Theme')\n 'theme_colors': set,\n\n //- rjf: auto eval\n @display_name('Show Auto Watches In Source / Disassembly') @description(\"Enables the display of auto watch expressions inline in source and disassembly views.\") @default(1)\n 'show_autos_in_src_and_disasm': bool,\n\n //- rjf: autocompletion\n @display_name('Autocompletion Lister') @description(\"Enables the autocompletion lister while typing expressions.\") @default(1)\n 'autocompletion_lister': bool,\n @display_name('View Call Argument Helper') @description(\"Enables the view call argument helper, which shows view arguments and documentation, while typing expressions.\") @default(1)\n 'view_call_argument_helper': bool,\n\n //- rjf: scope decorations\n @default(1) @display_name('Cursor Scope Lines') @description(\"Controls whether or not scopes containing the cursor in text views are drawn.\")\n 'cursor_scope_lines': bool,\n @default(1) @display_name('Cursor Scope End Annotations') @description(\"Controls whether or not ending annotations for scopes containing the cursor are drawn.\")\n 'cursor_scope_end_annotations': bool,\n\n //- rjf: cursor decorations\n @default(1) @display_name('Cursor Trail') @description(\"Controls whether or not a movement trail of the cursor is drawn.\")\n 'cursor_trail': bool,\n\n //- rjf: thread & breakpoint decorations\n @default(1) @display_name('Thread Lines') @description(\"Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.\")\n 'thread_lines': bool,\n @default(1) @display_name('Thread Glow') @description(\"Controls whether or not a glowing effect is drawn on the selected thread in source and disassembly views.\")\n 'thread_glow': bool,\n @default(1) @display_name('Breakpoint Lines') @description(\"Controls whether or not a long horizontal line is drawn before the line or instruction at which a breakpoint is placed, in source and disassembly views.\")\n 'breakpoint_lines': bool,\n @default(1) @display_name('Breakpoint Glow') @description(\"Controls whether or not a glowing effect is drawn on breakpoints in source and disassembly views.\")\n 'breakpoint_glow': bool,\n\n //- rjf: occluding background settings\n @default(0) @display_name('Opaque Backgrounds') @description(\"Controls whether or not all floating background colors are forced to be fully opaque.\")\n 'opaque_backgrounds': bool,\n @default(1) @display_name('Background Blur') @description(\"Controls whether or not occluded regions behind floating elements are blurred.\")\n 'background_blur': bool,\n\n //- rjf: appearance settings\n @default(1) @display_name('Drop Shadows') @description(\"Controls whether or not drop shadows are drawn.\")\n 'drop_shadows': bool,\n @default(1.f) @display_name('Rounded Corner Amount') @description(\"Controls the degree to which UI corners are rounded.\")\n 'rounded_corner_amount': @range[0, 1] f32,\n\n //- rjf: code formatting settings\n @default(2) @display_name('User Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: windows style menu bar\n @default(1) @display_name('Focus Menu Bar With Alt') @description(\"Mimics standard Windows behavior of focusing the menu bar using the Alt key.\")\n 'focus_menu_bar_with_alt': bool,\n\n //- rjf: native filesystem dialogues\n @default(0) @display_name('Use Native File System Dialog') @description(\"Uses the operating system's file system dialog box, rather than the debugger's built-in UI.\")\n 'use_native_file_system_dialog': bool,\n\n //- rjf: transient tabs\n @default(1) @display_name('Transient Tabs') @description(\"When snapping to source code locations, opens new files in a 'transient' tab if they are not already open. Transient tabs are replaced on subsequent snaps automatically.\")\n 'transient_tabs': bool,\n\n //- rjf: auto-load last project\n @default(0) @display_name('Auto Load Last Project') @description(\"Enables loading the most recently opened project, if one is not specified from the command line.\")\n 'auto_load_last_project': bool,\n\n //- rjf: symbol server\n @default(0) @display_name('Auto Download Debug Info') @description(\"Automatically tries to download missing debug info from symbol server(s).\")\n 'auto_download_debug_info': bool,\n\n //- rjf: update check\n @default(1) @display_name('Check For Updates') @description(\"Enables a small network request to check if there is a newer release version available.\")\n 'check_for_updates': bool,\n}\n")}, +{str8_lit_comp("project"), 0, str8_lit_comp("@expand_commands(edit_project_theme) x:\n{\n @display_name('Project Name') 'name': string,\n @default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64,\n\n //- rjf: visualizers\n @display_name('Display Pointer Addresses Before Contents') @description(\"When visualizing pointers, always shows the address first, before showing contents at the pointer's address.\")\n @default(0) display_pointer_addresses_before_contents: bool,\n @display_name('Use Default C++ STL Type Visualizers') @description(\"Enables the built-in type views for C++ STL types.\")\n @default(1) use_default_stl_type_views: bool,\n @display_name('Use Default Unreal Engine Type Visualizers') @description(\"Enables the built-in type views for Unreal Engine types.\")\n @default(1) use_default_ue_type_views: bool,\n\n //- rjf: theme\n @default(\"None\") @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme': string,\n @no_expand @display_name('Project Theme') @description(\"The project's theme, which describes all colors used throughout the UI, and can override the user's theme.\")\n 'theme_colors': set,\n\n //- rjf: exception settings\n @default(1) @display_name(\"Break On Win32 Control-C Exceptions\") @description(\"Code: 0x40010005\")\n win32_ctrl_c: bool;\n @default(1) @display_name(\"Break On Win32 Control-Break Exceptions\") @description(\"Code: 0x40010008\")\n win32_ctrl_break: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Originate Error Exceptions\") @description(\"Code: 0x40080201\")\n win32_win_rt_originate_error: bool;\n @default(0) @display_name(\"Break On Win32 WinRT Transform Error Exceptions\") @description(\"Code: 0x40080202\")\n win32_win_rt_transform_error: bool;\n @default(0) @display_name(\"Break On Win32 RPC Call Cancelled Exceptions\") @description(\"Code: 0x0000071a\")\n win32_rpc_call_cancelled: bool;\n @default(0) @display_name(\"Break On Win32 Data Type Misalignment Exceptions\") @description(\"Code: 0x80000002\")\n win32_datatype_misalignment: bool;\n @default(1) @display_name(\"Break On Win32 Access Violation Exceptions\") @description(\"Code: 0xc0000005\")\n win32_access_violation: bool;\n @default(0) @display_name(\"Break On Win32 In Page Error Exceptions\") @description(\"Code: 0xc0000006\")\n win32_in_page_error: bool;\n @default(1) @display_name(\"Break On Win32 Invalid Handle Specified Exceptions\") @description(\"Code: 0xc0000008\")\n win32_invalid_handle: bool;\n @default(0) @display_name(\"Break On Win32 Not Enough Quota Exceptions\") @description(\"Code: 0xc0000017\")\n win32_not_enough_quota: bool;\n @default(0) @display_name(\"Break On Win32 Illegal Instruction Exceptions\") @description(\"Code: 0xc000001d\")\n win32_illegal_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Cannot Continue From Exception Exceptions\") @description(\"Code: 0xc0000025\")\n win32_cannot_continue_exception: bool;\n @default(0) @display_name(\"Break On Win32 Invalid Exception Disposition Returned By Handler Exceptions\") @description(\"Code: 0xc0000026\")\n win32_invalid_exception_disposition: bool;\n @default(0) @display_name(\"Break On Win32 Array Bounds Exceeded Exceptions\") @description(\"Code: 0xc000008c\")\n win32_array_bounds_exceeded: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Denormal Operand Exceptions\") @description(\"Code: 0xc000008d\")\n win32_floating_point_denormal_operand: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Division By Zero Exceptions\") @description(\"Code: 0xc000008e\")\n win32_floating_point_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Inexact Result Exceptions\") @description(\"Code: 0xc000008f\")\n win32_floating_point_inexact_result: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Invalid Operation Exceptions\") @description(\"Code: 0xc0000090\")\n win32_floating_point_invalid_operation: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Overflow Exceptions\") @description(\"Code: 0xc0000091\")\n win32_floating_point_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Stack Check Exceptions\") @description(\"Code: 0xc0000092\")\n win32_floating_point_stack_check: bool;\n @default(0) @display_name(\"Break On Win32 Floating-Point Underflow Exceptions\") @description(\"Code: 0xc0000093\")\n win32_floating_point_underflow: bool;\n @default(0) @display_name(\"Break On Win32 Integer Division By Zero Exceptions\") @description(\"Code: 0xc0000094\")\n win32_integer_division_by_zero: bool;\n @default(0) @display_name(\"Break On Win32 Integer Overflow Exceptions\") @description(\"Code: 0xc0000095\")\n win32_integer_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Privileged Instruction Exceptions\") @description(\"Code: 0xc0000096\")\n win32_privileged_instruction: bool;\n @default(0) @display_name(\"Break On Win32 Stack Overflow Exceptions\") @description(\"Code: 0xc00000fd\")\n win32_stack_overflow: bool;\n @default(0) @display_name(\"Break On Win32 Unable To Locate DLL Exceptions\") @description(\"Code: 0xc0000135\")\n win32_unable_to_locate_dll: bool;\n @default(0) @display_name(\"Break On Win32 Ordinal Not Found Exceptions\") @description(\"Code: 0xc0000138\")\n win32_ordinal_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Entry Point Not Found Exceptions\") @description(\"Code: 0xc0000139\")\n win32_entry_point_not_found: bool;\n @default(0) @display_name(\"Break On Win32 DLL Initialization Failed Exceptions\") @description(\"Code: 0xc0000142\")\n win32_dll_initialization_failed: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Faults Exceptions\") @description(\"Code: 0xc00002b4\")\n win32_floating_point_sse_multiple_faults: bool;\n @default(0) @display_name(\"Break On Win32 Floating Point SSE Multiple Traps Exceptions\") @description(\"Code: 0xc00002b5\")\n win32_floating_point_sse_multiple_traps: bool;\n @default(1) @display_name(\"Break On Win32 Assertion Failed Exceptions\") @description(\"Code: 0xc0000420\")\n win32_assertion_failed: bool;\n @default(0) @display_name(\"Break On Win32 Module Not Found Exceptions\") @description(\"Code: 0xc06d007e\")\n win32_module_not_found: bool;\n @default(0) @display_name(\"Break On Win32 Procedure Not Found Exceptions\") @description(\"Code: 0xc06d007f\")\n win32_procedure_not_found: bool;\n @default(1) @display_name(\"Break On Win32 Sanitizer Error Detected Exceptions\") @description(\"Code: 0xe073616e\")\n win32_sanitizer_error_detected: bool;\n @default(0) @display_name(\"Break On Win32 Sanitizer Raw Access Violation Exceptions\") @description(\"Code: 0xe0736171\")\n win32_sanitizer_raw_access_violation: bool;\n @default(1) @display_name(\"Break On Win32 DirectX Debug Layer Exceptions\") @description(\"Code: 0x0000087a\")\n win32_directx_debug_layer: bool;\n}\n")}, +{str8_lit_comp("theme_color"), 0, str8_lit_comp("@collection_commands(add_theme_color, fork_theme, save_theme, save_and_set_theme)\n@row_commands(duplicate_cfg, remove_cfg)\nx:\n{\n @display_name('Tags') tags: string,\n @display_name('Value') value: @color @hex u32,\n}\n")}, +{str8_lit_comp("window"), 0, str8_lit_comp("x:\n{\n //- rjf: text rasterization settings\n @default(1) @display_name('Smooth UI Text') @description(\"Controls whether or not UI text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_ui_text': bool,\n @default(1) @display_name('Hint UI Text') @description(\"Controls whether or not UI text is hinted, for better text readability at small sizes.\")\n 'hint_ui_text': bool,\n @default(0) @display_name('Smooth Code Text') @description(\"Controls whether or not code text is fully anti-aliased, for a smoother appearance.\")\n 'smooth_code_text': bool,\n @default(1) @display_name('Hint Code Text') @description(\"Controls whether or not code text is hinted, for better text readability at small sizes.\")\n 'hint_code_text': bool,\n @default(11) @display_name('Window Font Size') @description(\"Controls the window's default font size. Does not apply to tabs with their own font size set.\")\n 'font_size': @range[6, 72] u64,\n\n //- rjf: size settings\n @default(3.f) @display_name('Window Row Height') @description(\"Controls the window's default row height, in multiples of the font size. Does not apply to tabs with their own row height set.\")\n 'row_height': @range[1.75f, 5.f] f32,\n @default(3.f) @description(\"Controls the height of tabs, in multiples of the font size.\")\n 'tab_height': @range[1.75f, 5.f] f32,\n\n //- rjf: theme settings\n @default(1) @display_name('Use Project Theme') @description(\"Prefer using the project theme for this window, if any. If off, only the user's theme settings will be used.\")\n 'use_project_theme': bool,\n}\n")}, +{str8_lit_comp("tab"), 0, str8_lit_comp("@row_commands(@file copy_tab_full_path, @file show_file_in_explorer, duplicate_tab, close_tab)\nx:\n{\n @override @display_name('Tab Font Size') @description(\"Controls the tab's font size.\") @no_callee_helper\n 'font_size': @range[6, 72] u64,\n}\n")}, +{str8_lit_comp("bin"), 1, str8_lit_comp("x:{ @description('An expression to which the 2-radix display should apply.') 'expression': expr_string }")}, +{str8_lit_comp("oct"), 1, str8_lit_comp("x:{ @description('An expression to which the 8-radix display should apply.') 'expression': expr_string }")}, +{str8_lit_comp("hex"), 1, str8_lit_comp("x:{ @description('An expression to which the 16-radix display should apply.') 'expression': expr_string }")}, +{str8_lit_comp("digits"), 1, str8_lit_comp("x:{ @description('An expression to which the digit display should apply.') 'expression': expr_string, @description('The minimum number of digits to display.') 'digit_count': u64 }")}, +{str8_lit_comp("no_string"), 1, str8_lit_comp("x:{ @description('The expression for which string visualization should be disabled.') 'expression': expr_string}")}, +{str8_lit_comp("no_char"), 1, str8_lit_comp("x:{ @description('The expression for which character visualization should be disabled.') 'expression': expr_string}")}, +{str8_lit_comp("no_addr"), 1, str8_lit_comp("x:{ @description('The expression for which address visualization should be disabled.') 'expression': expr_string}")}, +{str8_lit_comp("sequence"), 1, str8_lit_comp("x:{ @description('The number of expansions to generate.') 'count': expr_string}")}, +{str8_lit_comp("rows"), 1, str8_lit_comp("x:{ @description('The expression for which rows should be generated.') 'expression': expr_string, @description('A list of expressions which will be used to generate rows.') '...'}")}, +{str8_lit_comp("columns"), 1, str8_lit_comp("x:{ @description('The expression for whose expansions columns should be generated.') 'expression': expr_string, @description('A list of expressions which will be used to generate columns for each expansion from `expression`.') '...'}")}, +{str8_lit_comp("omit"), 1, str8_lit_comp("x:{ @description('The expression for which certain members should be omitted.') 'expression': expr_string, @description('A list of member names to omit from the expansion.') '...'}")}, +{str8_lit_comp("range1"), 1, str8_lit_comp("x:{ @description('The expression which should be bounded by `min` and `max`.') 'expression': expr_string, @description('The lower bound.') min, @description('The upper bound.') max}")}, +{str8_lit_comp("array"), 1, str8_lit_comp("x:{ @description('An expression of the base address of the array.') 'base_address': expr_string, @description('The number of elements in the array.') count}")}, +{str8_lit_comp("slice"), 1, str8_lit_comp("x:{ @description('An expression of a structure that is to be interpreted as a slice.') 'expression': expr_string}")}, +{str8_lit_comp("list"), 1, str8_lit_comp("x:\n{\n @description(\"An expression describing the first node in the list.\")\n 'expression': expr_string,\n @order(0) @description(\"The name of the member which encodes the link to the next node.\")\n 'member_name': code_string,\n}\n")}, +{str8_lit_comp("watch"), 0, str8_lit_comp("@inherit(tab) x:\n{\n @override @display_name('Tab Row Height') @description(\"Controls the tab's row height, in multiples of the font size.\")\n 'row_height': @range[1.75f, 5.f] f32,\n 'label': code_string,\n @description(\"The root expression which is evaluated to produce the watch window.\")\n 'expression': expr_string,\n @no_expand 'watches': set,\n}\n")}, +{str8_lit_comp("text"), 1, str8_lit_comp("@inherit(tab) @expand_commands(@output clear_output) x:\n{\n @description(\"An expression to describe data which should be viewed as text or code.\")\n 'expression': expr_string,\n @optional @description(\"The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.\")\n 'lang': code_string,\n @no_callee_helper @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers':bool,\n @no_callee_helper @default(1) @display_name('Line Wrapping') @description(\"Splits textual lines into multiple visual lines, so that all text is within the visible area.\")\n 'line_wrapping': bool,\n @no_callee_helper @default(0) @display_name('Scroll To Bottom On Change') @description(\"Scrolls to the bottom if the text is changed.\")\n 'scroll_to_bottom_on_change': bool,\n @no_callee_helper @no_revert @default(0) @display_name('Transient') @description(\"Controls whether or not this tab will be automatically replaced by the debugger when it snaps to new source code locations.\")\n 'auto': bool,\n}\n")}, +{str8_lit_comp("disasm"), 1, str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression to describe the base address or offset of the disassembly.\")\n 'expression': expr_string,\n @optional @description(\"The maximum number of bytes to disassemble.\")\n 'size': expr_string,\n @optional @description(\"The architecture to interpret the data as when disassembling.\")\n 'arch': code_string,\n @optional @description(\"The syntax style to use when displaying the disassembly textually.\")\n 'syntax': code_string,\n @no_callee_helper @default(1) @description(\"Controls whether or not addresses are shown in the disassembly text.\")\n 'show_addresses': bool,\n @no_callee_helper @default(0) @description(\"Controls whether or not code bytes are shown in the disassembly text.\")\n 'show_code_bytes': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not source lines, corresponding to disassembly instruction ranges, are shown in the disassembly text.\")\n 'show_source_lines': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not disassembly text is decorated with symbol names.\")\n 'show_symbol_names': bool,\n @no_callee_helper @default(1) @description(\"Controls whether or not line numbers are shown.\")\n 'show_line_numbers': bool,\n}\n")}, +{str8_lit_comp("memory"), 1, str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Base Address\") @description(\"An expression which refers to the base address of data which should be viewed as memory.\")\n 'expression': expr_string,\n @no_callee_helper @display_name(\"Zoom\") @description(\"The zoom level for displaying bytes in the memory view.\")\n @default(1.0) 'zoom': @range[0.5, 2] f32,\n @optional @display_name(\"Address Range Size\") @description(\"The number of bytes of the viewed memory range.\")\n 'size': expr_string,\n @no_callee_helper @display_name(\"Cursor Address\") @description(\"The address of the cursor.\")\n 'cursor': expr_string,\n @no_callee_helper @default(1) @display_name(\"Cursor Size\") @description(\"The size, in bytes, of the cursor.\")\n 'cursor_size': @range[1, 16] u64,\n @optional @expand_if(\"!$.auto_columns\") @default(16) @description(\"The number of columns to build before building new rows.\")\n 'num_columns': @range[1, 64] u64,\n @optional @default(16) @display_name(\"Default Radix\") @description(\"The default radix with which numeric values should be displayed, when peeking.\")\n @or(2, 8, 10, 16)\n 'default_radix': u64,\n @no_callee_helper @default(1) @display_name(\"Track Mark To Cursor\") @description(\"Ensures that the mark always follows the cursor, if the cursor value is updated.\")\n 'track_mark_to_cursor': bool,\n @no_callee_helper @default(1) @display_name(\"Allow Mutation\") @description(\"Allows operations which mutate memory.\")\n 'allow_mutation': bool,\n @no_callee_helper @default(0) @display_name(\"Automatically Size Columns\") @description(\"Determines the number of columns based on the available space.\")\n 'auto_columns': bool,\n @no_callee_helper @default(1) @display_name(\"Peek As Unsigned\") 'peek_as_unsigned': bool,\n @no_callee_helper @default(1) @display_name(\"Peek As Signed\") 'peek_as_signed': bool,\n @no_callee_helper @default(1) @display_name(\"Peek As Float\") 'peek_as_float': bool,\n @no_callee_helper @display_name(\"Extra Peek Types\") @description(\"A list of types as which to interpret selected memory.\")\n 'peek_types': set,\n}\n")}, +{str8_lit_comp("bitmap"), 1, str8_lit_comp("@inherit(tab) x:\n{\n @description(\"An expression which refers to the base address of data which should be viewed as a bitmap.\")\n 'expression': expr_string,\n @description(\"An expression describing the width of the bitmap, in pixels.\") @order(0) 'w': u64,\n @description(\"An expression describing the height of the bitmap, in pixels.\") @order(1) 'h': u64,\n @display_name(\"Bitmap Format\") @description(\"The pixel format that the bitmap data should be interpreted as being within.\")\n 'fmt': code_string,\n}\n")}, +{str8_lit_comp("color"), 1, str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Value\") @description(\"An expression to describe the value or location of the color.\")\n 'expression': expr_string,\n}\n")}, +{str8_lit_comp("geo3d"), 1, str8_lit_comp("@inherit(tab) x:\n{\n @display_name(\"Expression\") @description(\"An expression to describe the base address of the index buffer.\")\n 'expression': expr_string,\n 'count': expr_string,\n 'vtx': expr_string,\n 'vtx_size': expr_string,\n 'yaw': @range[0, 1] f32,\n 'pitch': @range[-0.5, 0] f32,\n 'zoom': @range[0, 100] f32,\n}\n")}, +{str8_lit_comp("getting_started"), 0, str8_lit_comp("@inherit(tab) x:\n{\n}\n")}, +{str8_lit_comp("target"), 0, str8_lit_comp("@row_commands(@cmd_line save_cfg_to_project, enable_cfg, launch_and_run, launch_and_step_into, duplicate_cfg, remove_cfg)\n@collection_commands(add_target)\nx:\n{\n 'label': code_string,\n 'executable': path,\n 'arguments': string,\n 'working_directory': path,\n 'entry_point': expr_string,\n @default(\"output\") 'output_label': code_string,\n 'stdout_path': @no_relativize path,\n 'stderr_path': @no_relativize path,\n 'stdin_path': @no_relativize path,\n 'environment': set,\n 'debug_subprocesses': bool,\n @no_revert @no_expand @default(0) 'enabled': bool,\n}\n")}, +{str8_lit_comp("breakpoint"), 0, str8_lit_comp("@row_commands(enable_cfg, duplicate_cfg, remove_cfg)\n@collection_commands(toggle_breakpoint, add_breakpoint, add_address_breakpoint, add_function_breakpoint, clear_breakpoints)\nx:\n{\n 'label': code_string,\n 'condition': expr_string,\n 'source_location': path_pt,\n 'address_location': expr_string,\n 'hit_count': u64,\n 'address_range_size': @or(0, 1, 2, 4, 8) u64,\n 'break_on_write': bool,\n 'break_on_read': bool,\n 'break_on_execute': bool,\n @no_revert @no_expand @default(1) 'enabled': bool,\n}\n")}, +{str8_lit_comp("watch_pin"), 0, str8_lit_comp("@row_commands(duplicate_cfg, remove_cfg)\n@collection_commands(add_watch_pin, toggle_watch_pin)\nx:\n{\n 'expression': expr_string,\n 'source_location': path_pt,\n 'address_location': expr_string,\n}\n")}, +{str8_lit_comp("debug_info"), 0, str8_lit_comp("@row_commands(enable_cfg, duplicate_cfg, remove_cfg)\n@collection_commands(load_debug_info)\nx:\n{\n 'path': @no_relativize path,\n @no_revert @no_expand @default(1) 'enabled': bool,\n @query 'guid': string,\n}\n")}, +{str8_lit_comp("file_path_map"), 0, str8_lit_comp("@collection_commands(add_file_path_map) @row_commands(remove_cfg) x:{'source': @no_relativize path, 'dest': @no_relativize path}")}, +{str8_lit_comp("type_view"), 0, str8_lit_comp("@collection_commands(add_type_view) @row_commands(remove_cfg) x:{'type':expr_string, 'expr':expr_string}")}, +{str8_lit_comp("recent_project"), 0, str8_lit_comp("x:{'path':path, 'name':string}")}, +{str8_lit_comp("machine"), 0, str8_lit_comp("x:{'label':code_string, @no_expand 'active':bool, 'unattached_processes':set, 'processes':set}")}, +{str8_lit_comp("process"), 0, str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'modules':set, 'threads':set, @query @no_expand 'memory':address_space}")}, +{str8_lit_comp("module"), 0, str8_lit_comp("x:{'exe':path, 'dbg':path, 'vaddr_range':vaddr_range}")}, +{str8_lit_comp("thread"), 0, str8_lit_comp("x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':set}")}, +}; + +String8 rd_reg_slot_code_name_table[52] = +{ +{0}, +str8_lit_comp("machine"), +str8_lit_comp("module"), +str8_lit_comp("process"), +str8_lit_comp("thread"), +str8_lit_comp("ctrl_entity"), +str8_lit_comp("window"), +str8_lit_comp("panel"), +str8_lit_comp("tab"), +str8_lit_comp("view"), +str8_lit_comp("prev_tab"), +str8_lit_comp("dst_panel"), +str8_lit_comp("cfg"), +str8_lit_comp("cfg_list"), +str8_lit_comp("eval_space"), +str8_lit_comp("unwind_count"), +str8_lit_comp("inline_depth"), +str8_lit_comp("file_path"), +str8_lit_comp("cursor"), +str8_lit_comp("mark"), +str8_lit_comp("text_key"), +str8_lit_comp("lang_kind"), +str8_lit_comp("lines"), +str8_lit_comp("dbgi_key"), +str8_lit_comp("vaddr"), +str8_lit_comp("voff"), +str8_lit_comp("vaddr_range"), +str8_lit_comp("voff_range"), +str8_lit_comp("expr"), +str8_lit_comp("ui_key"), +str8_lit_comp("src_ui_key"), +str8_lit_comp("off_px"), +str8_lit_comp("reg_slot"), +str8_lit_comp("ctx_expr"), +str8_lit_comp("pid"), +str8_lit_comp("force_confirm"), +str8_lit_comp("force_focus"), +str8_lit_comp("prefer_disasm"), +str8_lit_comp("no_rich_tooltip"), +str8_lit_comp("do_implicit_root"), +str8_lit_comp("do_lister"), +str8_lit_comp("do_big_rows"), +str8_lit_comp("all_windows"), +str8_lit_comp("non_graphical"), +str8_lit_comp("prefer_new_tab"), +str8_lit_comp("activate_with_single_click"), +str8_lit_comp("disable_addresses"), +str8_lit_comp("small_size"), +str8_lit_comp("dir2"), +str8_lit_comp("string"), +str8_lit_comp("cmd_name"), +str8_lit_comp("wm_event"), +}; + +Rng1U64 rd_reg_slot_range_table[52] = +{ +{0}, +{OffsetOf(RD_Regs, machine), OffsetOf(RD_Regs, machine) + sizeof(D_Handle)}, +{OffsetOf(RD_Regs, module), OffsetOf(RD_Regs, module) + sizeof(D_Handle)}, +{OffsetOf(RD_Regs, process), OffsetOf(RD_Regs, process) + sizeof(D_Handle)}, +{OffsetOf(RD_Regs, thread), OffsetOf(RD_Regs, thread) + sizeof(D_Handle)}, +{OffsetOf(RD_Regs, ctrl_entity), OffsetOf(RD_Regs, ctrl_entity) + sizeof(D_Handle)}, +{OffsetOf(RD_Regs, window), OffsetOf(RD_Regs, window) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, panel), OffsetOf(RD_Regs, panel) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, tab), OffsetOf(RD_Regs, tab) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, view), OffsetOf(RD_Regs, view) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, prev_tab), OffsetOf(RD_Regs, prev_tab) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, dst_panel), OffsetOf(RD_Regs, dst_panel) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, cfg), OffsetOf(RD_Regs, cfg) + sizeof(CFG_ID)}, +{OffsetOf(RD_Regs, cfg_list), OffsetOf(RD_Regs, cfg_list) + sizeof(CFG_IDList)}, +{OffsetOf(RD_Regs, eval_space), OffsetOf(RD_Regs, eval_space) + sizeof(E_Space)}, +{OffsetOf(RD_Regs, unwind_count), OffsetOf(RD_Regs, unwind_count) + sizeof(U64)}, +{OffsetOf(RD_Regs, inline_depth), OffsetOf(RD_Regs, inline_depth) + sizeof(U64)}, +{OffsetOf(RD_Regs, file_path), OffsetOf(RD_Regs, file_path) + sizeof(String8)}, +{OffsetOf(RD_Regs, cursor), OffsetOf(RD_Regs, cursor) + sizeof(TxtPt)}, +{OffsetOf(RD_Regs, mark), OffsetOf(RD_Regs, mark) + sizeof(TxtPt)}, +{OffsetOf(RD_Regs, text_key), OffsetOf(RD_Regs, text_key) + sizeof(C_Key)}, +{OffsetOf(RD_Regs, lang_kind), OffsetOf(RD_Regs, lang_kind) + sizeof(TXT_LangKind)}, +{OffsetOf(RD_Regs, lines), OffsetOf(RD_Regs, lines) + sizeof(D_LineList)}, +{OffsetOf(RD_Regs, dbgi_key), OffsetOf(RD_Regs, dbgi_key) + sizeof(DI_Key)}, +{OffsetOf(RD_Regs, vaddr), OffsetOf(RD_Regs, vaddr) + sizeof(U64)}, +{OffsetOf(RD_Regs, voff), OffsetOf(RD_Regs, voff) + sizeof(U64)}, +{OffsetOf(RD_Regs, vaddr_range), OffsetOf(RD_Regs, vaddr_range) + sizeof(Rng1U64)}, +{OffsetOf(RD_Regs, voff_range), OffsetOf(RD_Regs, voff_range) + sizeof(Rng1U64)}, +{OffsetOf(RD_Regs, expr), OffsetOf(RD_Regs, expr) + sizeof(String8)}, +{OffsetOf(RD_Regs, ui_key), OffsetOf(RD_Regs, ui_key) + sizeof(UI_Key)}, +{OffsetOf(RD_Regs, src_ui_key), OffsetOf(RD_Regs, src_ui_key) + sizeof(UI_Key)}, +{OffsetOf(RD_Regs, off_px), OffsetOf(RD_Regs, off_px) + sizeof(Vec2F32)}, +{OffsetOf(RD_Regs, reg_slot), OffsetOf(RD_Regs, reg_slot) + sizeof(RD_RegSlot)}, +{OffsetOf(RD_Regs, ctx_expr), OffsetOf(RD_Regs, ctx_expr) + sizeof(String8)}, +{OffsetOf(RD_Regs, pid), OffsetOf(RD_Regs, pid) + sizeof(U32)}, +{OffsetOf(RD_Regs, force_confirm), OffsetOf(RD_Regs, force_confirm) + sizeof(B32)}, +{OffsetOf(RD_Regs, force_focus), OffsetOf(RD_Regs, force_focus) + sizeof(B32)}, +{OffsetOf(RD_Regs, prefer_disasm), OffsetOf(RD_Regs, prefer_disasm) + sizeof(B32)}, +{OffsetOf(RD_Regs, no_rich_tooltip), OffsetOf(RD_Regs, no_rich_tooltip) + sizeof(B32)}, +{OffsetOf(RD_Regs, do_implicit_root), OffsetOf(RD_Regs, do_implicit_root) + sizeof(B32)}, +{OffsetOf(RD_Regs, do_lister), OffsetOf(RD_Regs, do_lister) + sizeof(B32)}, +{OffsetOf(RD_Regs, do_big_rows), OffsetOf(RD_Regs, do_big_rows) + sizeof(B32)}, +{OffsetOf(RD_Regs, all_windows), OffsetOf(RD_Regs, all_windows) + sizeof(B32)}, +{OffsetOf(RD_Regs, non_graphical), OffsetOf(RD_Regs, non_graphical) + sizeof(B32)}, +{OffsetOf(RD_Regs, prefer_new_tab), OffsetOf(RD_Regs, prefer_new_tab) + sizeof(B32)}, +{OffsetOf(RD_Regs, activate_with_single_click), OffsetOf(RD_Regs, activate_with_single_click) + sizeof(B32)}, +{OffsetOf(RD_Regs, disable_addresses), OffsetOf(RD_Regs, disable_addresses) + sizeof(B32)}, +{OffsetOf(RD_Regs, small_size), OffsetOf(RD_Regs, small_size) + sizeof(B32)}, +{OffsetOf(RD_Regs, dir2), OffsetOf(RD_Regs, dir2) + sizeof(Dir2)}, +{OffsetOf(RD_Regs, string), OffsetOf(RD_Regs, string) + sizeof(String8)}, +{OffsetOf(RD_Regs, cmd_name), OffsetOf(RD_Regs, cmd_name) + sizeof(String8)}, +{OffsetOf(RD_Regs, wm_event), OffsetOf(RD_Regs, wm_event) + sizeof(WM_Event *)}, +}; + +RD_CmdKindInfo rd_cmd_kind_info_table[256] = +{ +{0}, +{ str8_lit_comp("launch_and_run"), str8_lit_comp("Starts debugging a new instance of a target, then runs."), str8_lit_comp("launch,start,run,target"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("launch_and_step_into"), str8_lit_comp("Starts debugging a new instance of a target, then stops at the program's entry point."), str8_lit_comp("launch,start,entry,point"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("kill"), str8_lit_comp("Kills the specified existing attached process(es)."), str8_lit_comp("stop,kill"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes")}}, +{ str8_lit_comp("kill_all"), str8_lit_comp("Kills all attached processes."), str8_lit_comp("stop,kill,all"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("detach"), str8_lit_comp("Detaches the specified attached process(es)."), str8_lit_comp("detach"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes")}}, +{ str8_lit_comp("continue"), str8_lit_comp("Continues executing all attached processes."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_into_inst"), str8_lit_comp("Performs a step that goes into calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_over_inst"), str8_lit_comp("Performs a step that skips calls, at the instruction level."), str8_lit_comp("single,step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_into_line"), str8_lit_comp("Performs a step that goes into calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_over_line"), str8_lit_comp("Performs a step that skips calls, at the source code line level."), str8_lit_comp("step,thread"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_out"), str8_lit_comp("Runs to the first instruction after the current scope is exited."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_to_exit"), str8_lit_comp("Runs to the first encountered instruction which will exit the current scope."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("halt"), str8_lit_comp("Halts all attached processes."), str8_lit_comp("pause"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("soft_halt_refresh"), str8_lit_comp("Interrupts all attached processes to collect data, and then resumes them."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("set_thread_ip"), str8_lit_comp("Sets the specified thread's instruction pointer at the specified address."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Vaddr, str8_lit_comp("")}}, +{ str8_lit_comp("run_to_line"), str8_lit_comp("Runs until a particular source line is hit."), str8_lit_comp(""), str8_lit_comp("{text_pt_commands}{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("run_to_name"), str8_lit_comp("Runs until a particular symbol name is hit."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures")}}, +{ str8_lit_comp("run"), str8_lit_comp("Runs all targets after starting them if they have not been started yet."), str8_lit_comp("play"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("restart"), str8_lit_comp("Kills all attached processes, then launches all active targets."), str8_lit_comp("restart,retry"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_into"), str8_lit_comp("Steps once, possibly into function calls, for either source lines or instructions (whichever is selected)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("step_over"), str8_lit_comp("Steps once, always over function calls, for either source lines or instructions."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("freeze_thread"), str8_lit_comp("Freezes the passed thread."), str8_lit_comp("callstack,unwind"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads")}}, +{ str8_lit_comp("thaw_thread"), str8_lit_comp("Thaws the passed thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads")}}, +{ str8_lit_comp("freeze_process"), str8_lit_comp("Freezes the passed process."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes")}}, +{ str8_lit_comp("thaw_process"), str8_lit_comp("Thaws the passed process."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Process, str8_lit_comp("query:processes")}}, +{ str8_lit_comp("freeze_machine"), str8_lit_comp("Freezes the passed machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Machine, str8_lit_comp("query:machines")}}, +{ str8_lit_comp("thaw_machine"), str8_lit_comp("Thaws the passed machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Machine, str8_lit_comp("query:machines")}}, +{ str8_lit_comp("freeze_local_machine"), str8_lit_comp("Freezes the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("thaw_local_machine"), str8_lit_comp("Thaws the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("freeze_entity"), str8_lit_comp("Freezes an entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("thaw_entity"), str8_lit_comp("Thaws an entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("set_entity_color"), str8_lit_comp("Sets the passed entity's color."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("set_entity_name"), str8_lit_comp("Sets the passed entity's name."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("download_module_debug_info"), str8_lit_comp("Tries to download a module's debug info from symbol server(s)."), str8_lit_comp(""), str8_lit_comp("{module_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CtrlEntity, str8_lit_comp("query:modules")}}, +{ str8_lit_comp("attach"), str8_lit_comp("Attaches to a process that is already running on the local machine."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_PID, str8_lit_comp("query:unattached_processes")}}, +{ str8_lit_comp("open_crash_dump"), str8_lit_comp("Opens a crash dump file and recreates debuggee state at the time of the crash."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("exit"), str8_lit_comp("Exits the debugger."), str8_lit_comp("quit,close,abort"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open_palette"), str8_lit_comp("Opens the palette."), str8_lit_comp("help,cmd,lister"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("run_command"), str8_lit_comp("Runs a command from the command palette."), str8_lit_comp("help,cmd"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:commands")}}, +{ str8_lit_comp("run_ext_driver_text_command"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("state"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("eval"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("line_from_vaddr"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Vaddr, str8_lit_comp("")}}, +{ str8_lit_comp("wm_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads")}}, +{ str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("query:call_stack")}}, +{ str8_lit_comp("up_one_frame"), str8_lit_comp("Selects the call stack frame above the currently selected."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("down_one_frame"), str8_lit_comp("Selects the call stack frame below the currently selected."), str8_lit_comp("callstack,unwind"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("select_entity"), str8_lit_comp("Selects a control entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("deselect_entity"), str8_lit_comp("Deselects a control entity."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("inc_window_font_size"), str8_lit_comp("Increases the window's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("dec_window_font_size"), str8_lit_comp("Decreases the window's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("inc_view_font_size"), str8_lit_comp("Increases the view's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("dec_view_font_size"), str8_lit_comp("Decreases the view's font size by one point."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open_window"), str8_lit_comp("Opens a new window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("window_settings"), str8_lit_comp("Opens settings for a window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("close_window"), str8_lit_comp("Closes an opened window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_fullscreen"), str8_lit_comp("Toggles fullscreen view on the active window."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("bring_to_front"), str8_lit_comp("Brings all windows to the front, and focuses the most recently focused window."), str8_lit_comp("top"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("popup_accept"), str8_lit_comp("Accepts the active popup prompt."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("popup_cancel"), str8_lit_comp("Cancels the active popup prompt."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("reset_to_default_bindings"), str8_lit_comp("Resets all keybindings to their defaults."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("reset_to_default_panels"), str8_lit_comp("Resets the window to the default panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("reset_to_compact_panels"), str8_lit_comp("Resets the window to the compact panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("reset_to_simple_panels"), str8_lit_comp("Resets the window to the simple panel layout."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_panel_left"), str8_lit_comp("Creates a new panel to the left of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_panel_up"), str8_lit_comp("Creates a new panel at the top of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_panel_right"), str8_lit_comp("Creates a new panel to the right of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_panel_down"), str8_lit_comp("Creates a new panel at the bottom of the active panel."), str8_lit_comp("panel"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("split_panel"), str8_lit_comp("Creates a new panel in a given direction, and moves a tab to it, if specified."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("rotate_panel_columns"), str8_lit_comp("Rotates all panels at the closest column level of the panel hierarchy."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("next_panel"), str8_lit_comp("Cycles the active panel forward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("prev_panel"), str8_lit_comp("Cycles the active panel backwards."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_panel"), str8_lit_comp("Focuses a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_panel_right"), str8_lit_comp("Focuses a panel rightward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_panel_left"), str8_lit_comp("Focuses a panel leftward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_panel_up"), str8_lit_comp("Focuses a panel upward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_panel_down"), str8_lit_comp("Focuses a panel downward of the currently focused panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("undo"), str8_lit_comp("Undoes the previous action."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("redo"), str8_lit_comp("Redoes the first previously undone action."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("go_back"), str8_lit_comp("Returns to the previously selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("go_forward"), str8_lit_comp("Returns to the next selected panel and tab in recorded history."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("close_panel"), str8_lit_comp("Closes the currently active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_tab"), str8_lit_comp("Focuses the passed tab within its containing panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("next_tab"), str8_lit_comp("Focuses the next tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("prev_tab"), str8_lit_comp("Focuses the previous tab on the active panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_tab_right"), str8_lit_comp("Moves the selected tab right one slot."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_tab_left"), str8_lit_comp("Moves the selected tab left one slot."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open_tab"), str8_lit_comp("Opens a new tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_CmdName, str8_lit_comp("query:tab_commands")}}, +{ str8_lit_comp("build_tab"), str8_lit_comp("Opens a new tab with the parameterized view specification."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("duplicate_tab"), str8_lit_comp("Duplicates a tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp("")}}, +{ str8_lit_comp("copy_tab_full_path"), str8_lit_comp("Copies the full path of the file being viewed by this tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp("")}}, +{ str8_lit_comp("close_tab"), str8_lit_comp("Closes the currently opened tab."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Tab, str8_lit_comp("")}}, +{ str8_lit_comp("move_view"), str8_lit_comp("Moves a view to a new panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("tab_bar_top"), str8_lit_comp("Anchors a panel's tab bar to the top of the panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("tab_bar_bottom"), str8_lit_comp("Anchors a panel's tab bar to the bottom of the panel."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("tab_settings"), str8_lit_comp("Opens settings for a tab."), str8_lit_comp("view,options"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("set_current_path"), str8_lit_comp("Sets the debugger's current path, which is used as a starting point when browsing for files."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open"), str8_lit_comp("Opens a file."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("open_source_file_from_debug_info"), str8_lit_comp("Opens a source file found within loaded debug info."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:source_files")}}, +{ str8_lit_comp("switch_to_partner_file"), str8_lit_comp("Switches to the focused file's partner; or from header to implementation or vice versa."), str8_lit_comp("code,source,file"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("show_file_in_explorer"), str8_lit_comp("Opens the operating system's file explorer and shows the selected file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("go_to_disassembly"), str8_lit_comp("Goes to the disassembly, if any, for a given source code line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("{text_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("go_to_source"), str8_lit_comp("Goes to the source code, if any, for a given disassembly line."), str8_lit_comp("code,source,disassembly,disasm"), str8_lit_comp("{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("set_file_replacement_path"), str8_lit_comp("Sets the path which should be used as the replacement for the passed file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_user"), str8_lit_comp("Creates a new user file, and sets the current user path as that file's path."), str8_lit_comp("new,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("new_project"), str8_lit_comp("Creates a new project file, and sets the current project path as that file's path."), str8_lit_comp("new,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open_user"), str8_lit_comp("Opens a user file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("load,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("open_project"), str8_lit_comp("Opens a project file path, immediately loading it, and begins autosaving to it."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("open_recent_project"), str8_lit_comp("Opens a recently used project file."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:recent_projects")}}, +{ str8_lit_comp("save_user"), str8_lit_comp("Saves user data to a file, and sets the current user path as that path."), str8_lit_comp("load,user,project,layout"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("save_project"), str8_lit_comp("Saves project data to a file, and sets the current project path as that path."), str8_lit_comp("project,project,session"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("record_user_as_last_opened"), str8_lit_comp("Records a file path as the last opened user."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("record_project_in_user"), str8_lit_comp("Records a file path as a recent project in user data."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("write_user_data"), str8_lit_comp("Writes user data to the active user file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("write_project_data"), str8_lit_comp("Writes project data to the active project file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("user_settings"), str8_lit_comp("Opens user settings."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("project_settings"), str8_lit_comp("Opens project settings."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("edit"), str8_lit_comp("Edits the current selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("accept"), str8_lit_comp("Accepts current changes, or answers prompts in the affirmative."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("cancel"), str8_lit_comp("Rejects current changes, exits temporary menus, or answers prompts in the negative."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("focus_menu"), str8_lit_comp("Focuses the menu for the selected interface, if there is one."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_left"), str8_lit_comp("Moves the cursor or selection left."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_right"), str8_lit_comp("Moves the cursor or selection right."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up"), str8_lit_comp("Moves the cursor or selection up."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down"), str8_lit_comp("Moves the cursor or selection down."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_left_select"), str8_lit_comp("Moves the cursor or selection left, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_right_select"), str8_lit_comp("Moves the cursor or selection right, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_select"), str8_lit_comp("Moves the cursor or selection up, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_select"), str8_lit_comp("Moves the cursor or selection down, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_left_chunk"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_right_chunk"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_chunk"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_chunk"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_page"), str8_lit_comp("Moves the cursor or selection up one page."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_page"), str8_lit_comp("Moves the cursor or selection down one page."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_whole"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_whole"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_left_chunk_select"), str8_lit_comp("Moves the cursor or selection left one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_right_chunk_select"), str8_lit_comp("Moves the cursor or selection right one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_chunk_select"), str8_lit_comp("Moves the cursor or selection up one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_chunk_select"), str8_lit_comp("Moves the cursor or selection down one chunk."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_page_select"), str8_lit_comp("Moves the cursor or selection up one page, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_page_select"), str8_lit_comp("Moves the cursor or selection down one page, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_whole_select"), str8_lit_comp("Moves the cursor or selection to the beginning of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_whole_select"), str8_lit_comp("Moves the cursor or selection to the end of the relevant content, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_up_reorder"), str8_lit_comp("Moves the cursor or selection up, while swapping the currently selected element with that upward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_down_reorder"), str8_lit_comp("Moves the cursor or selection down, while swapping the currently selected element with that downward."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_home"), str8_lit_comp("Moves the cursor to the beginning of the line."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_end"), str8_lit_comp("Moves the cursor to the end of the line."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_home_select"), str8_lit_comp("Moves the cursor to the beginning of the line, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_end_select"), str8_lit_comp("Moves the cursor to the end of the line, while selecting."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("select_all"), str8_lit_comp("Selects everything possible."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("delete_single"), str8_lit_comp("Deletes a single element to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("delete_chunk"), str8_lit_comp("Deletes a chunk to the right of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("backspace_single"), str8_lit_comp("Deletes a single element to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("backspace_chunk"), str8_lit_comp("Deletes a chunk to the left of the cursor, or the active selection."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("copy"), str8_lit_comp("Copies the active selection to the clipboard."), str8_lit_comp(""), str8_lit_comp("{text_range_commands}{disasm_range_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("cut"), str8_lit_comp("Copies the active selection to the clipboard, then deletes it."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("paste"), str8_lit_comp("Pastes the current contents of the clipboard."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("insert_text"), str8_lit_comp("Inserts the text that was used to cause this command."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_next"), str8_lit_comp("Moves the cursor or selection to the next element."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("move_prev"), str8_lit_comp("Moves the cursor or selection to the previous element."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("goto_line"), str8_lit_comp("Jumps to a line number in the current code file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_Cursor, str8_lit_comp("")}}, +{ str8_lit_comp("goto_address"), str8_lit_comp("Jumps to an address in the current memory or disassembly view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_Vaddr, str8_lit_comp("")}}, +{ str8_lit_comp("center_cursor"), str8_lit_comp("Snaps the current code view to center the cursor."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("contain_cursor"), str8_lit_comp("Snaps the current code view to contain the cursor."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("find_next"), str8_lit_comp("Searches the current code file forward (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("find_prev"), str8_lit_comp("Searches the current code file backwards (from the cursor) for the last searched string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("find_thread"), str8_lit_comp("Jumps to the passed thread in either source code, disassembly, or both if they're already open."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads")}}, +{ str8_lit_comp("find_selected_thread"), str8_lit_comp("Jumps to the selected thread in either source code, disassembly, or both if they're already open."), str8_lit_comp("current,instruction"), str8_lit_comp("{text_pt_commands}{text_range_commands}{disasm_pt_commands}{disasm_range_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("goto_name"), str8_lit_comp("Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures")}}, +{ str8_lit_comp("goto_name_at_cursor"), str8_lit_comp("Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible."), str8_lit_comp(""), str8_lit_comp("{text_pt_commands}{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_watch_expr"), str8_lit_comp("Adds or removes an expression to an opened watch view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_watch_expr_at_cursor"), str8_lit_comp("Adds or removes the expression that the cursor or selection is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp("{text_pt_commands}{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_watch_expr_at_mouse"), str8_lit_comp("Adds or removes the expression that the mouse is currently over to an opened watch view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("enable_cfg"), str8_lit_comp("Enables a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("disable_cfg"), str8_lit_comp("Disables a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("select_cfg"), str8_lit_comp("Selects a config tree, disabling all others of the same kind."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("deselect_cfg"), str8_lit_comp("Deselects a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("remove_cfg"), str8_lit_comp("Removes a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("name_cfg"), str8_lit_comp("Equips a config tree with a label."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("condition_cfg"), str8_lit_comp("Equips a config tree with a condition string."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("duplicate_cfg"), str8_lit_comp("Duplicates a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("relocate_cfg"), str8_lit_comp("Relocates a config tree."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("save_cfg_to_project"), str8_lit_comp("Saves the config tree to the project."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("add_breakpoint"), str8_lit_comp("Places a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("add_address_breakpoint"), str8_lit_comp("Places a breakpoint on the specified address."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("add_function_breakpoint"), str8_lit_comp("Places a breakpoint on the first address of the specified function."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("query:procedures")}}, +{ str8_lit_comp("toggle_breakpoint"), str8_lit_comp("Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)."), str8_lit_comp(""), str8_lit_comp("{text_pt_commands}{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("remove_breakpoint"), str8_lit_comp("Removes an existing breakpoint."), str8_lit_comp("delete"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints")}}, +{ str8_lit_comp("enable_breakpoint"), str8_lit_comp("Enables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints")}}, +{ str8_lit_comp("disable_breakpoint"), str8_lit_comp("Disables a breakpoint."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:breakpoints")}}, +{ str8_lit_comp("clear_breakpoints"), str8_lit_comp("Removes all breakpoints."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("clear_output"), str8_lit_comp("Clears all output."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("add_watch_pin"), str8_lit_comp("Places a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_watch_pin"), str8_lit_comp("Places or removes a watch pin at a given location (file path and line number or address)."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("load_debug_info"), str8_lit_comp("Loads a debug info file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("unload_debug_info"), str8_lit_comp("Unloads a debug info file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:debug_infos")}}, +{ str8_lit_comp("add_type_view"), str8_lit_comp("Adds a new type view."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp("")}}, +{ str8_lit_comp("add_file_path_map"), str8_lit_comp("Adds a new file path map."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("edit_user_theme"), str8_lit_comp("Edits the current user's theme."), str8_lit_comp("color"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp("query:themes")}}, +{ str8_lit_comp("edit_project_theme"), str8_lit_comp("Edits the current project's theme."), str8_lit_comp("color"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_String, str8_lit_comp("query:themes")}}, +{ str8_lit_comp("add_theme_color"), str8_lit_comp("Adds a new theme color."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("fork_theme"), str8_lit_comp("Imports all colors from the current theme so they can be individually edited."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("save_theme"), str8_lit_comp("Saves all theme colors to a new theme file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("")}}, +{ str8_lit_comp("save_and_set_theme"), str8_lit_comp("Saves all theme colors to a new theme file, and then sets that theme as the selected theme."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("")}}, +{ str8_lit_comp("set_next_statement"), str8_lit_comp("Sets the selected thread's instruction pointer to the cursor's position."), str8_lit_comp(""), str8_lit_comp("{text_pt_commands}{disasm_pt_commands}"), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("add_target"), str8_lit_comp("Adds a new target."), str8_lit_comp("application,executable,debug"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("select_target"), str8_lit_comp("Selects a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("enable_target"), str8_lit_comp("Enables a target, in addition to all targets currently enabled."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("disable_target"), str8_lit_comp("Disables a target."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("remove_target"), str8_lit_comp("Removes a target."), str8_lit_comp("delete"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Cfg, str8_lit_comp("query:targets")}}, +{ str8_lit_comp("register_as_jit_debugger"), str8_lit_comp("Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("find_code_location"), str8_lit_comp("Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("")}}, +{ str8_lit_comp("go_to_memory"), str8_lit_comp("Finds the specified expression in the memory view. Opens the memory view if necessary."), str8_lit_comp(""), str8_lit_comp("{memory_eval_commands}"), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*0), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("break_when_value_changes"), str8_lit_comp("Adds a new write data breakpoint for this variable's range."), str8_lit_comp(""), str8_lit_comp("{memory_eval_commands}"), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*0), RD_RegSlot_Expr, str8_lit_comp("")}}, +{ str8_lit_comp("search"), str8_lit_comp("Begins searching within the active interface."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*1)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("")}}, +{ str8_lit_comp("search_backwards"), str8_lit_comp("Begins searching backwards within the active interface."), str8_lit_comp("sort,search,filter,find"), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*1)|(RD_QueryFlag_KeepOldInput*1)|(RD_QueryFlag_SelectOldInput*1)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*1), RD_RegSlot_String, str8_lit_comp("")}}, +{ str8_lit_comp("pick_file"), str8_lit_comp("Opens the file browser to pick a file."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("pick_folder"), str8_lit_comp("Opens the file browser to pick a folder."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*1)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("pick_file_or_folder"), str8_lit_comp("Opens the file browser to pick a file or folder."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*1)|(RD_QueryFlag_AllowFolders*1)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_FilePath, str8_lit_comp("folder:\"$input\"")}}, +{ str8_lit_comp("push_query"), str8_lit_comp("Opens a new temporary query interface."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("complete_query"), str8_lit_comp("Completes and closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("cancel_query"), str8_lit_comp("Closes a query."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("update_query"), str8_lit_comp("Updates a query input."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("open_event_buffer"), str8_lit_comp("Opens a new event buffer, to which debugger events will be written, for external processing."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("close_event_buffer"), str8_lit_comp("Closes an existing event buffer."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Cfg, str8_lit_comp("")}}, +{ str8_lit_comp("toggle_dev_menu"), str8_lit_comp("Opens and closes the developer menu."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("log_marker"), str8_lit_comp("Logs a marker in the application log, to denote specific points in time within the log."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}}, +{ str8_lit_comp("watches"), str8_lit_comp("Opens a Watch tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("locals"), str8_lit_comp("Opens a Locals tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("registers"), str8_lit_comp("Opens a Registers tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("globals"), str8_lit_comp("Opens a Globals tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("thread_locals"), str8_lit_comp("Opens a Thread Locals tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("types"), str8_lit_comp("Opens a Types tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("procedures"), str8_lit_comp("Opens a Procedures tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("call_stack"), str8_lit_comp("Opens a Call Stack tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("targets"), str8_lit_comp("Opens a Targets tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("breakpoints"), str8_lit_comp("Opens a Breakpoints tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("watch_pins"), str8_lit_comp("Opens a Watch Pins tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("debug_infos"), str8_lit_comp("Opens a Debug Info tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("threads"), str8_lit_comp("Opens a Threads tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("processes"), str8_lit_comp("Opens a Processes tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("machines"), str8_lit_comp("Opens a Machines tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("modules"), str8_lit_comp("Opens a Modules tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("file_path_maps"), str8_lit_comp("Opens a File Path Map tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("type_views"), str8_lit_comp("Opens a Type Views tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("output"), str8_lit_comp("Opens a Output tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("text"), str8_lit_comp("Opens a Text tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("disasm"), str8_lit_comp("Opens a Disassembly tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("memory"), str8_lit_comp("Opens a Memory tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("bitmap"), str8_lit_comp("Opens a Bitmap tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("color"), str8_lit_comp("Opens a Color tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +{ str8_lit_comp("geo3d"), str8_lit_comp("Opens a Geometry (3D) tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}, +}; + +struct {String8 string; CFG_Binding binding;} rd_default_binding_table[116] = +{ +{str8_lit_comp("kill_all"), {WM_Key_F5, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("step_into_inst"), {WM_Key_F11, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("step_over_inst"), {WM_Key_F10, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("step_out"), {WM_Key_F11, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("halt"), {WM_Key_X, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("halt"), {WM_Key_Pause, 0 }}, +{str8_lit_comp("run"), {WM_Key_F5, 0 }}, +{str8_lit_comp("restart"), {WM_Key_F5, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("step_into"), {WM_Key_F11, 0 }}, +{str8_lit_comp("step_over"), {WM_Key_F10, 0 }}, +{str8_lit_comp("run_to_line"), {WM_Key_F10, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("set_next_statement"), {WM_Key_F10, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("inc_window_font_size"), {WM_Key_Equal, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("dec_window_font_size"), {WM_Key_Minus, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("toggle_fullscreen"), {WM_Key_Return, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("new_panel_right"), {WM_Key_P, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("new_panel_down"), {WM_Key_Minus, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("rotate_panel_columns"), {WM_Key_2, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("next_panel"), {WM_Key_Comma, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("prev_panel"), {WM_Key_Comma, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("focus_panel_right"), {WM_Key_Right, 0 |WM_Modifier_Ctrl |WM_Modifier_Alt}}, +{str8_lit_comp("focus_panel_left"), {WM_Key_Left, 0 |WM_Modifier_Ctrl |WM_Modifier_Alt}}, +{str8_lit_comp("focus_panel_up"), {WM_Key_Up, 0 |WM_Modifier_Ctrl |WM_Modifier_Alt}}, +{str8_lit_comp("focus_panel_down"), {WM_Key_Down, 0 |WM_Modifier_Ctrl |WM_Modifier_Alt}}, +{str8_lit_comp("undo"), {WM_Key_Z, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("redo"), {WM_Key_Y, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("go_back"), {WM_Key_Left, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("go_forward"), {WM_Key_Right, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("close_panel"), {WM_Key_P, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift |WM_Modifier_Alt}}, +{str8_lit_comp("next_tab"), {WM_Key_PageDown, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("prev_tab"), {WM_Key_PageUp, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("next_tab"), {WM_Key_Tab, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("prev_tab"), {WM_Key_Tab, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_tab_right"), {WM_Key_PageDown, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_tab_left"), {WM_Key_PageUp, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("close_tab"), {WM_Key_W, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("tab_bar_top"), {WM_Key_Up, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift |WM_Modifier_Alt}}, +{str8_lit_comp("tab_bar_bottom"), {WM_Key_Down, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift |WM_Modifier_Alt}}, +{str8_lit_comp("open_tab"), {WM_Key_T, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("tab_settings"), {WM_Key_T, 0 |WM_Modifier_Ctrl |WM_Modifier_Alt}}, +{str8_lit_comp("open"), {WM_Key_O, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("open_source_file_from_debug_info"), {WM_Key_I, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("switch_to_partner_file"), {WM_Key_O, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("new_project"), {WM_Key_N, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("open_project"), {WM_Key_O, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("save_project"), {WM_Key_S, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("edit"), {WM_Key_F2, 0 }}, +{str8_lit_comp("accept"), {WM_Key_Return, 0 }}, +{str8_lit_comp("accept"), {WM_Key_Space, 0 }}, +{str8_lit_comp("cancel"), {WM_Key_Esc, 0 }}, +{str8_lit_comp("focus_menu"), {WM_Key_D, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("move_left"), {WM_Key_Left, 0 }}, +{str8_lit_comp("move_right"), {WM_Key_Right, 0 }}, +{str8_lit_comp("move_up"), {WM_Key_Up, 0 }}, +{str8_lit_comp("move_down"), {WM_Key_Down, 0 }}, +{str8_lit_comp("move_left_select"), {WM_Key_Left, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_right_select"), {WM_Key_Right, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_up_select"), {WM_Key_Up, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_down_select"), {WM_Key_Down, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_left_chunk"), {WM_Key_Left, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_right_chunk"), {WM_Key_Right, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_up_chunk"), {WM_Key_Up, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_down_chunk"), {WM_Key_Down, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_up_page"), {WM_Key_PageUp, 0 }}, +{str8_lit_comp("move_down_page"), {WM_Key_PageDown, 0 }}, +{str8_lit_comp("move_up_whole"), {WM_Key_Home, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_down_whole"), {WM_Key_End, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("move_left_chunk_select"), {WM_Key_Left, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_right_chunk_select"), {WM_Key_Right, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_up_chunk_select"), {WM_Key_Up, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_down_chunk_select"), {WM_Key_Down, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_up_page_select"), {WM_Key_PageUp, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_down_page_select"), {WM_Key_PageDown, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_up_whole_select"), {WM_Key_Home, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_down_whole_select"), {WM_Key_End, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("move_up_reorder"), {WM_Key_Up, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("move_down_reorder"), {WM_Key_Down, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("move_home"), {WM_Key_Home, 0 }}, +{str8_lit_comp("move_end"), {WM_Key_End, 0 }}, +{str8_lit_comp("move_home_select"), {WM_Key_Home, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("move_end_select"), {WM_Key_End, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("select_all"), {WM_Key_A, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("delete_single"), {WM_Key_Delete, 0 }}, +{str8_lit_comp("delete_chunk"), {WM_Key_Delete, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("backspace_single"), {WM_Key_Backspace, 0 }}, +{str8_lit_comp("backspace_chunk"), {WM_Key_Backspace, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("copy"), {WM_Key_C, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("copy"), {WM_Key_Insert, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("cut"), {WM_Key_X, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("paste"), {WM_Key_V, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("paste"), {WM_Key_Insert, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("insert_text"), {WM_Key_Null, 0 }}, +{str8_lit_comp("move_next"), {WM_Key_Tab, 0 }}, +{str8_lit_comp("move_prev"), {WM_Key_Tab, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("goto_line"), {WM_Key_G, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("goto_address"), {WM_Key_G, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("search"), {WM_Key_F, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("search"), {WM_Key_Slash, 0 }}, +{str8_lit_comp("search_backwards"), {WM_Key_R, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("search_backwards"), {WM_Key_Slash, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("find_next"), {WM_Key_F3, 0 }}, +{str8_lit_comp("find_prev"), {WM_Key_F3, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("find_selected_thread"), {WM_Key_F4, 0 }}, +{str8_lit_comp("goto_name"), {WM_Key_J, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("goto_name_at_cursor"), {WM_Key_F12, 0 }}, +{str8_lit_comp("toggle_watch_expr_at_cursor"), {WM_Key_W, 0 |WM_Modifier_Alt}}, +{str8_lit_comp("toggle_watch_expr_at_mouse"), {WM_Key_D, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("toggle_watch_pin"), {WM_Key_F9, 0 |WM_Modifier_Ctrl }}, +{str8_lit_comp("toggle_breakpoint"), {WM_Key_F9, 0 }}, +{str8_lit_comp("add_address_breakpoint"), {WM_Key_F9, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("add_function_breakpoint"), {WM_Key_F9, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("attach"), {WM_Key_F6, 0 |WM_Modifier_Shift }}, +{str8_lit_comp("open_palette"), {WM_Key_F1, 0 }}, +{str8_lit_comp("open_palette"), {WM_Key_P, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift }}, +{str8_lit_comp("log_marker"), {WM_Key_M, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift |WM_Modifier_Alt}}, +{str8_lit_comp("toggle_dev_menu"), {WM_Key_D, 0 |WM_Modifier_Ctrl |WM_Modifier_Shift |WM_Modifier_Alt}}, +}; + +String8 rd_binding_version_remap_old_name_table[9] = +{ +str8_lit_comp("commands"), +str8_lit_comp("load_user"), +str8_lit_comp("load_profile"), +str8_lit_comp("load_project"), +str8_lit_comp("open_profile"), +str8_lit_comp("address_breakpoint"), +str8_lit_comp("function_breakpoint"), +str8_lit_comp("toggle_breakpoint_cursor"), +str8_lit_comp("switch"), +}; + +String8 rd_binding_version_remap_new_name_table[9] = +{ +str8_lit_comp("run_command"), +str8_lit_comp("open_user"), +str8_lit_comp("open_profile"), +str8_lit_comp("open_project"), +str8_lit_comp("open_project"), +str8_lit_comp("add_address_breakpoint"), +str8_lit_comp("add_function_breakpoint"), +str8_lit_comp("toggle_breakpoint"), +str8_lit_comp("open_source_file_from_debug_info"), +}; + +String8 rd_icon_kind_text_table[75] = +{ +str8_lit_comp(""), +str8_lit_comp("b"), +str8_lit_comp("c"), +str8_lit_comp("B"), +str8_lit_comp("C"), +str8_lit_comp("f"), +str8_lit_comp("F"), +str8_lit_comp("g"), +str8_lit_comp("h"), +str8_lit_comp("r"), +str8_lit_comp("s"), +str8_lit_comp("i"), +str8_lit_comp("w"), +str8_lit_comp("W"), +str8_lit_comp("k"), +str8_lit_comp("K"), +str8_lit_comp("L"), +str8_lit_comp("R"), +str8_lit_comp("U"), +str8_lit_comp("D"), +str8_lit_comp("G"), +str8_lit_comp("P"), +str8_lit_comp("3"), +str8_lit_comp("p"), +str8_lit_comp("O"), +str8_lit_comp("o"), +str8_lit_comp("!"), +str8_lit_comp("1"), +str8_lit_comp("V"), +str8_lit_comp("<"), +str8_lit_comp(">"), +str8_lit_comp("^"), +str8_lit_comp("v"), +str8_lit_comp("9"), +str8_lit_comp("0"), +str8_lit_comp("7"), +str8_lit_comp("8"), +str8_lit_comp("+"), +str8_lit_comp("-"), +str8_lit_comp("'"), +str8_lit_comp("\""), +str8_lit_comp("M"), +str8_lit_comp("."), +str8_lit_comp("x"), +str8_lit_comp("q"), +str8_lit_comp("j"), +str8_lit_comp("u"), +str8_lit_comp("m"), +str8_lit_comp("n"), +str8_lit_comp("l"), +str8_lit_comp("a"), +str8_lit_comp("z"), +str8_lit_comp("y"), +str8_lit_comp("X"), +str8_lit_comp("Y"), +str8_lit_comp("S"), +str8_lit_comp("T"), +str8_lit_comp("Z"), +str8_lit_comp("d"), +str8_lit_comp("N"), +str8_lit_comp("E"), +str8_lit_comp("H"), +str8_lit_comp("e"), +str8_lit_comp("I"), +str8_lit_comp("J"), +str8_lit_comp("A"), +str8_lit_comp("?"), +str8_lit_comp("4"), +str8_lit_comp("5"), +str8_lit_comp("6"), +str8_lit_comp("&"), +str8_lit_comp("*"), +str8_lit_comp("("), +str8_lit_comp(")"), +str8_lit_comp("#"), +}; + +String8 rd_code_color_slot_name_table[14] = +{ +str8_lit_comp("code_default"), +str8_lit_comp("code_symbol"), +str8_lit_comp("code_type"), +str8_lit_comp("code_local"), +str8_lit_comp("code_register"), +str8_lit_comp("code_keyword"), +str8_lit_comp("code_delimiter_or_operator"), +str8_lit_comp("code_numeric"), +str8_lit_comp("code_numeric_alt_digit_group"), +str8_lit_comp("code_string"), +str8_lit_comp("code_meta"), +str8_lit_comp("code_comment"), +str8_lit_comp("code_line_numbers"), +str8_lit_comp("code_line_numbers_selected"), +}; + +String8 rd_theme_preset_display_string_table[11] = +{ +str8_lit_comp("Default (Dark)"), +str8_lit_comp("Default (Light)"), +str8_lit_comp("VS (Dark)"), +str8_lit_comp("VS (Light)"), +str8_lit_comp("Solarized (Dark)"), +str8_lit_comp("Solarized (Light)"), +str8_lit_comp("Handmade Hero"), +str8_lit_comp("Naysayer"), +str8_lit_comp("4coder"), +str8_lit_comp("Grove"), +str8_lit_comp("Far Manager"), +}; + +String8 rd_theme_preset_code_string_table[11] = +{ +str8_lit_comp("default_dark"), +str8_lit_comp("default_light"), +str8_lit_comp("vs_dark"), +str8_lit_comp("vs_light"), +str8_lit_comp("solarized_dark"), +str8_lit_comp("solarized_light"), +str8_lit_comp("handmade_hero"), +str8_lit_comp("naysayer"), +str8_lit_comp("four_coder"), +str8_lit_comp("grove"), +str8_lit_comp("far_manager"), +}; + +String8 rd_theme_preset_cfg_string_table[11] = +{ +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x1f1f1fff}\n theme_color:{tags: \"alt background\", value: 0x222222ff}\n theme_color:{tags: \"pop background\", value: 0x675331ff}\n theme_color:{tags: \"fresh background\", value: 0x3d3631ff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x404040ff}\n theme_color:{tags: text, value: 0xe5e5e5ff}\n theme_color:{tags: \"weak text\", value: 0xa4a4a4ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xabdeffff}\n theme_color:{tags: \"focus overlay\", value: 0x2292eb14}\n theme_color:{tags: \"focus border\", value: 0x2392ebff}\n theme_color:{tags: cursor, value: 0x8aff00ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x16}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x2c5b36ff}\n theme_color:{tags: \"good_pop border\", value: 0x568761ff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0x803425ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0xecececff}\n theme_color:{tags: code_symbol, value: 0xceaf64ff}\n theme_color:{tags: code_type, value: 0xceaf64ff}\n theme_color:{tags: code_local, value: 0xa7dae8ff}\n theme_color:{tags: code_register, value: 0xb7afd5ff}\n theme_color:{tags: code_keyword, value: 0x838b8fff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x838b8fff}\n theme_color:{tags: code_numeric, value: 0x9cb198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x6d8e67ff}\n theme_color:{tags: code_string, value: 0x9cb198ff}\n theme_color:{tags: code_meta, value: 0xb9819aff}\n theme_color:{tags: code_comment, value: 0x627b5eff}\n theme_color:{tags: line_info_0, value: 0x3c2d25ff}\n theme_color:{tags: line_info_1, value: 0x3c3925ff}\n theme_color:{tags: line_info_2, value: 0x2e4837ff}\n theme_color:{tags: line_info_3, value: 0x2e3d48ff}\n theme_color:{tags: line_info_4, value: 0x3c2d25ff}\n theme_color:{tags: line_info_5, value: 0x3c3925ff}\n theme_color:{tags: line_info_6, value: 0x2e4837ff}\n theme_color:{tags: line_info_7, value: 0x2e3d48ff}\n theme_color:{tags: thread_0, value: 0xebb624ff}\n theme_color:{tags: thread_1, value: 0x26d0d2ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x1b1b1baf}\n theme_color:{tags: \"floating background alt\", value: 0x0000005f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating border\", value: 0xbfbfbf1f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\", value: 0x5f5f5f5f}\n theme_color:{tags: \"scroll_bar background\", value: 0x2b2b2bff}\n theme_color:{tags: \"scroll_bar border\", value: 0x3f3f3fff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x333333ff}\n theme_color:{tags: \"tab border\", value: 0x2392ebff}\n theme_color:{tags: \"tab inactive background\", value: 0}\n theme_color:{tags: \"tab inactive border\", value: 0x42494eff}\n theme_color:{tags: \"tab auto background\", value: 0x3e4d6eff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x3e4d6e39}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background , value: 0xf4f4f4ff}\n theme_color:{tags: \"alt background\" , value: 0xe7e7e7ff}\n theme_color:{tags: \"pop background\" , value: 0xe7b96bff}\n theme_color:{tags: \"fresh background\" , value: 0xe7d7d0ff}\n theme_color:{tags: \"match background\" , value: 0xcbd8deff}\n theme_color:{tags: border , value: 0xb9b9b9ff}\n theme_color:{tags: text , value: 0xff}\n theme_color:{tags: \"weak text\" , value: 0x4d4d4dff}\n theme_color:{tags: \"good text\" , value: 0x32a852ff}\n theme_color:{tags: \"neutral text\" , value: 0x3a90bbff}\n theme_color:{tags: \"bad text\" , value: 0xcf5242ff}\n theme_color:{tags: hover , value: 0xff}\n theme_color:{tags: \"focus overlay\" , value: 0x2192eb49}\n theme_color:{tags: \"focus border\" , value: 0x2392ebff}\n theme_color:{tags: cursor , value: 0xff}\n theme_color:{tags: selection , value: 0x2170be51}\n theme_color:{tags: \"inactive background\" , value: 0xb}\n theme_color:{tags: drop_shadow , value: 0x183d8a53}\n theme_color:{tags: \"good_pop background\" , value: 0x5c9368ff}\n theme_color:{tags: \"good_pop border\" , value: 0x6616ff}\n theme_color:{tags: \"good_pop hover\" , value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\" , value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\" , value: 0xbd5946ff}\n theme_color:{tags: \"bad_pop hover\" , value: 0xff825cff}\n theme_color:{tags: code_default , value: 0xff}\n theme_color:{tags: code_symbol , value: 0x976b00ff}\n theme_color:{tags: code_type , value: 0x976b00ff}\n theme_color:{tags: code_local , value: 0x7fa2ff}\n theme_color:{tags: code_register , value: 0x6a50caff}\n theme_color:{tags: code_keyword , value: 0x1f4253ff}\n theme_color:{tags: code_delimiter_or_operator , value: 0x424b4fff}\n theme_color:{tags: code_numeric , value: 0xb4500ff}\n theme_color:{tags: code_numeric_alt_digit_group , value: 0x3c852fff}\n theme_color:{tags: code_string , value: 0xb4500ff}\n theme_color:{tags: code_meta , value: 0xe3609aff}\n theme_color:{tags: code_comment , value: 0x648e5dff}\n theme_color:{tags: line_info_0 , value: 0xcdb3a5ff}\n theme_color:{tags: line_info_1 , value: 0xcac5a4ff}\n theme_color:{tags: line_info_2 , value: 0xafcebaff}\n theme_color:{tags: line_info_3 , value: 0xacc5d7ff}\n theme_color:{tags: line_info_4 , value: 0x3c2d25ff}\n theme_color:{tags: line_info_5 , value: 0x3c3925ff}\n theme_color:{tags: line_info_6 , value: 0x2e4837ff}\n theme_color:{tags: line_info_7 , value: 0x2e3d48ff}\n theme_color:{tags: thread_0 , value: 0xde8e2aff}\n theme_color:{tags: thread_1 , value: 0x7affff}\n theme_color:{tags: thread_unwound , value: 0xb2ccd8ff}\n theme_color:{tags: thread_error , value: 0xb23219ff}\n theme_color:{tags: breakpoint , value: 0xa72911ff}\n theme_color:{tags: \"floating background\" , value: 0xffffffff}\n theme_color:{tags: \"floating background alt\" , value: 0xefefefff}\n theme_color:{tags: \"floating background fresh\" , value: 0x31393d5f}\n theme_color:{tags: \"floating border\" , value: 0xaeaeaeff}\n theme_color:{tags: \"floating scroll_bar background\" , value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f}\n theme_color:{tags: \"scroll_bar background\" , value: 0xefefefff}\n theme_color:{tags: \"scroll_bar border\" , value: 0xb9b9b9ff}\n theme_color:{tags: \"implicit background\" , value: 0x00000000}\n theme_color:{tags: \"implicit border\" , value: 0x00000000}\n theme_color:{tags: \"hollow background\" , value: 0x00000000}\n theme_color:{tags: \"hollow border\" , value: 0x1f}\n theme_color:{tags: \"tab background\" , value: 0xffffffff}\n theme_color:{tags: \"tab border\" , value: 0x2392ebff}\n theme_color:{tags: \"tab inactive background\" , value: 0}\n theme_color:{tags: \"tab inactive border\" , value: 0x42494eff}\n theme_color:{tags: \"tab auto background\" , value: 0xb9d0ffff}\n theme_color:{tags: \"tab auto inactive background\" , value: 0xc4cde0ff}\n theme_color:{tags: \"drop_site background\" , value: 0xffffff05}\n theme_color:{tags: \"drop_site border\" , value: 0xffffff0f}\n theme_color:{tags: \"bad_pop weak text\" , value: 0xffffffff}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{ tags: background , value: 0x1f1f1fff }\n theme_color:{ tags: \"alt background\" , value: 0x222222ff }\n theme_color:{ tags: \"pop background\" , value: 0x383167ff }\n theme_color:{ tags: \"fresh background\" , value: 0x31393dff }\n theme_color:{ tags: \"match background\" , value: 0x31393dff }\n theme_color:{ tags: border , value: 0x404040ff }\n theme_color:{ tags: text , value: 0xe5e5e5ff }\n theme_color:{ tags: \"weak text\" , value: 0xa4a4a4ff }\n theme_color:{ tags: \"good text\" , value: 0x32a852ff }\n theme_color:{ tags: \"neutral text\" , value: 0x3a90bbff }\n theme_color:{ tags: \"bad text\" , value: 0xcf5242ff }\n theme_color:{ tags: hover , value: 0xffffffff }\n theme_color:{ tags: \"focus overlay\" , value: 0x7160e81e }\n theme_color:{ tags: \"focus border\" , value: 0x7160e8ff }\n theme_color:{ tags: cursor , value: 0x8aff00ff }\n theme_color:{ tags: selection , value: 0x99ccff0f }\n theme_color:{ tags: \"inactive background\" , value: 0x0000002f }\n theme_color:{ tags: drop_shadow , value: 0x0000007f }\n theme_color:{ tags: \"good_pop background\" , value: 0x2c5b36ff }\n theme_color:{ tags: \"good_pop border\" , value: 0x568761ff }\n theme_color:{ tags: \"good_pop hover\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop weak text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"bad_pop background\" , value: 0x803425ff }\n theme_color:{ tags: \"bad_pop hover\" , value: 0xff825cff }\n theme_color:{ tags: code_default , value: 0xe0e0e0ff }\n theme_color:{ tags: code_symbol , value: 0xdcdcaaff }\n theme_color:{ tags: code_type , value: 0x4ec9b0ff }\n theme_color:{ tags: code_local , value: 0x9cdcfeff }\n theme_color:{ tags: code_register , value: 0xb7afd5ff }\n theme_color:{ tags: code_keyword , value: 0x569cd6ff }\n theme_color:{ tags: code_delimiter_or_operator , value: 0x767676ff }\n theme_color:{ tags: code_numeric , value: 0xb5cea8ff }\n theme_color:{ tags: code_numeric_alt_digit_group , value: 0x7c986dff }\n theme_color:{ tags: code_string , value: 0xd69d85ff }\n theme_color:{ tags: code_meta , value: 0x9b9b9bff }\n theme_color:{ tags: code_comment , value: 0x51a644ff }\n theme_color:{ tags: line_info_0 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_2 , value: 0x434e2aff }\n theme_color:{ tags: line_info_3 , value: 0x36241fff }\n theme_color:{ tags: line_info_4 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_6 , value: 0x434e2aff }\n theme_color:{ tags: line_info_7 , value: 0x36241fff }\n theme_color:{ tags: thread_0 , value: 0xffdc48ff }\n theme_color:{ tags: thread_1 , value: 0xb2ff65ff }\n theme_color:{ tags: thread_2 , value: 0xff99e5ff }\n theme_color:{ tags: thread_3 , value: 0x6598ffff }\n theme_color:{ tags: thread_4 , value: 0x65ffcbff }\n theme_color:{ tags: thread_5 , value: 0xff9819ff }\n theme_color:{ tags: thread_6 , value: 0x9932ffff }\n theme_color:{ tags: thread_7 , value: 0x65ff4cff }\n theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }\n theme_color:{ tags: thread_error , value: 0xb23219ff }\n theme_color:{ tags: breakpoint , value: 0xa72911ff }\n theme_color:{ tags: \"floating background\" , value: 0x1b1b1baf }\n theme_color:{ tags: \"floating background alt\" , value: 0x0000005f }\n theme_color:{ tags: \"floating background fresh\" , value: 0x31393d5f }\n theme_color:{ tags: \"floating border\" , value: 0xbfbfbf1f }\n theme_color:{ tags: \"floating scroll_bar background\" , value: 0x3b3b3b5f }\n theme_color:{ tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"scroll_bar background\" , value: 0x2b2b2bff }\n theme_color:{ tags: \"scroll_bar border\" , value: 0x3f3f3fff }\n theme_color:{ tags: \"implicit background\" , value: 0x00000000 }\n theme_color:{ tags: \"implicit border\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow background\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow border\" , value: 0xffffff1f }\n theme_color:{ tags: \"tab background\" , value: 0x333333ff }\n theme_color:{ tags: \"tab border\" , value: 0x7160e8ff }\n theme_color:{ tags: \"tab inactive background\" , value: 0x171717ff }\n theme_color:{ tags: \"tab inactive border\" , value: 0x3e4c57ff }\n theme_color:{ tags: \"tab auto background\" , value: 0x3f386dff }\n theme_color:{ tags: \"tab auto border\" , value: 0x7160e8ff }\n theme_color:{ tags: \"tab auto inactive background\" , value: 0x2f2633ff }\n theme_color:{ tags: \"tab auto inactive border\" , value: 0x685073ff }\n theme_color:{ tags: \"drop_site background\" , value: 0xffffff05 }\n theme_color:{ tags: \"drop_site border\" , value: 0xffffff0f }\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0xffffffff}\n theme_color:{tags: \"alt background\", value: 0xefefefff}\n theme_color:{tags: \"pop background\", value: 0xe3eaf2ff}\n theme_color:{tags: \"fresh background\", value: 0xeccbbeff}\n theme_color:{tags: \"match background\", value: 0xedcbf9ff}\n theme_color:{tags: border, value: 0xe7e7e7ff}\n theme_color:{tags: text, value: 0xff}\n theme_color:{tags: \"weak text\", value: 0x353535ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xa7ffff}\n theme_color:{tags: \"focus overlay\", value: 0x8eff3f}\n theme_color:{tags: \"focus border\", value: 0x8effff}\n theme_color:{tags: cursor, value: 0xff}\n theme_color:{tags: selection, value: 0x56aaff77}\n theme_color:{tags: \"inactive background\", value: 0x17}\n theme_color:{tags: drop_shadow, value: 0xe7b27}\n theme_color:{tags: \"good_pop background\", value: 0x21a43dff}\n theme_color:{tags: \"good_pop border\", value: 0x21a43dff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0xcb3f23ff}\n theme_color:{tags: \"bad_pop text\", value: 0xffcdc4ff}\n theme_color:{tags: \"bad_pop text weak\", value: 0xffcdc4ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0x000000ff}\n theme_color:{tags: code_symbol, value: 0x74531fff}\n theme_color:{tags: code_type, value: 0x2b91afff}\n theme_color:{tags: code_local, value: 0x1f377fff}\n theme_color:{tags: code_register, value: 0x8a1bffff}\n theme_color:{tags: code_keyword, value: 0x0000ffff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x767676ff}\n theme_color:{tags: code_numeric, value: 0xff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x1d1d1dff}\n theme_color:{tags: code_string, value: 0xa61515ff}\n theme_color:{tags: code_meta, value: 0x808080ff}\n theme_color:{tags: code_comment, value: 0x008000ff}\n theme_color:{tags: line_info_0, value: 0xb5d9c8ff}\n theme_color:{tags: line_info_1, value: 0xa9c1d0ff}\n theme_color:{tags: line_info_2, value: 0x99abc5ff}\n theme_color:{tags: line_info_3, value: 0xc6bcd5ff}\n theme_color:{tags: thread_0, value: 0xffb141ff}\n theme_color:{tags: thread_1, value: 0x66c407ff}\n theme_color:{tags: thread_unwound, value: 0x67b3d7ff}\n theme_color:{tags: thread_error, value: 0xff2900ff}\n theme_color:{tags: breakpoint, value: 0xff2800ff}\n theme_color:{tags: \"floating background\", value: 0xffffffff}\n theme_color:{tags: \"floating background alt\", value: 0x11}\n theme_color:{tags: \"floating background fresh\", value: 0xa0c2d318}\n theme_color:{tags: \"floating border\", value: 0x50}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\", value: 0x5f5f5f5f}\n theme_color:{tags: \"menu_bar background\", value: 0xccd5f0ff}\n theme_color:{tags: \"menu_bar border\", value: 0xbabdc3ff}\n theme_color:{tags: \"scroll_bar background\", value: 0xe4e4e4ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0xf5cc84ff}\n theme_color:{tags: \"tab border\", value: 0xae7718ff}\n theme_color:{tags: \"tab inactive background\", value: 0x3b4f81ff}\n theme_color:{tags: \"tab inactive text\", value: 0xffffffff}\n theme_color:{tags: \"tab inactive border\", value: 0x3b4f81ff}\n theme_color:{tags: \"tab auto background\", value: 0xe99595ff}\n theme_color:{tags: \"tab auto border\", value: 0xff6262ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0xac6060ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0xff6262ff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xa7ffff}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x002a35ff}\n theme_color:{tags: \"alt background\", value: 0x053542ff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x65166ff}\n theme_color:{tags: text, value: 0xeee8d5ff}\n theme_color:{tags: \"weak text\", value: 0x93a1a1ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xca4b16ff}\n theme_color:{tags: \"focus overlay\", value: 0xca4b151f}\n theme_color:{tags: \"focus border\", value: 0xca4b16ff}\n theme_color:{tags: cursor, value: 0xca4b16ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x5f8700ff}\n theme_color:{tags: \"good_pop border\", value: 0x5f8700ff}\n theme_color:{tags: \"bad_pop background\", value: 0x810000ff}\n theme_color:{tags: code_default, value: 0x839496ff}\n theme_color:{tags: code_symbol, value: 0xb3880eff}\n theme_color:{tags: code_type, value: 0xb3880eff}\n theme_color:{tags: code_local, value: 0xeee8d5ff}\n theme_color:{tags: code_register, value: 0xeee8d5ff}\n theme_color:{tags: code_keyword, value: 0x849804ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x839496ff}\n theme_color:{tags: code_numeric, value: 0x2aa198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x19766bff}\n theme_color:{tags: code_string, value: 0x2aa198ff}\n theme_color:{tags: code_meta, value: 0xca4b16ff}\n theme_color:{tags: code_comment, value: 0x586e75ff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x2a3574}\n theme_color:{tags: \"floating background alt\", value: 0x4f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x53542ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x53542ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x586e75ff}\n theme_color:{tags: \"tab border\", value: 0x90abb3ff}\n theme_color:{tags: \"tab inactive background\", value: 0x0}\n theme_color:{tags: \"tab inactive border\", value: 0x33494fff}\n theme_color:{tags: \"tab auto background\", value: 0x565ed2ff}\n theme_color:{tags: \"tab auto border\", value: 0xa2a6dfff}\n theme_color:{tags: \"tab auto inactive background\", value: 0}\n theme_color:{tags: \"tab auto inactive border\", value: 0x595fbcff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0xfdf6e3ff}\n theme_color:{tags: \"alt background\", value: 0xeee8d5ff}\n theme_color:{tags: \"pop background\", value: 0x29a19890}\n theme_color:{tags: \"fresh background\", value: 0xf7d38dff}\n theme_color:{tags: \"match background\", value: 0xdcddddff}\n theme_color:{tags: border, value: 0xd1ccbdff}\n theme_color:{tags: \"weak text\", value: 0x93a1a1ff}\n theme_color:{tags: text, value: 0x657b83ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xca4b16ff}\n theme_color:{tags: \"focus overlay\", value: 0xca4b1454}\n theme_color:{tags: \"focus border\", value: 0xca4b16ff}\n theme_color:{tags: cursor, value: 0xca4b16ff}\n theme_color:{tags: selection, value: 0x8594a264}\n theme_color:{tags: \"inactive background\", value: 0x14}\n theme_color:{tags: drop_shadow, value: 0x3a}\n theme_color:{tags: \"good_pop background\", value: 0xd1e99aff}\n theme_color:{tags: \"good_pop border\", value: 0xd1e99aff}\n theme_color:{tags: \"bad_pop background\", value: 0xd26c6cff}\n theme_color:{tags: \"bad_pop border\", value: 0xd26c6cff}\n theme_color:{tags: \"bad_pop weak text\", value: 0xffffffff}\n theme_color:{tags: \"bad_pop text\", value: 0xffffffff}\n theme_color:{tags: code_default, value: 0x839496ff}\n theme_color:{tags: code_symbol, value: 0xb3880eff}\n theme_color:{tags: code_type, value: 0xb3880eff}\n theme_color:{tags: code_local, value: 0x657b83ff}\n theme_color:{tags: code_register, value: 0x947298ff}\n theme_color:{tags: code_keyword, value: 0x849804ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x839496ff}\n theme_color:{tags: code_numeric, value: 0x2aa198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x19766bff}\n theme_color:{tags: code_string, value: 0x2aa198ff}\n theme_color:{tags: code_meta, value: 0xca4b16ff}\n theme_color:{tags: code_comment, value: 0x586e75ff}\n theme_color:{tags: line_info_0, value: 0xeee1dbff}\n theme_color:{tags: line_info_1, value: 0xe5d5b1ff}\n theme_color:{tags: line_info_2, value: 0xd9e8b6ff}\n theme_color:{tags: line_info_3, value: 0xf5d5ccff}\n theme_color:{tags: thread_0, value: 0xffa100ff}\n theme_color:{tags: thread_1, value: 0x6edd00ff}\n theme_color:{tags: thread_unwound, value: 0x708f9eff}\n theme_color:{tags: thread_error, value: 0xff5231ff}\n theme_color:{tags: breakpoint, value: 0xff411dff}\n theme_color:{tags: \"floating background\", value: 0xfdf6e3b1}\n theme_color:{tags: \"floating background alt\", value: 0x22}\n theme_color:{tags: \"floating background fresh\", value: 0xf7d38dff}\n theme_color:{tags: \"scroll_bar background\", value: 0xeee6d0ff}\n theme_color:{tags: \"scroll_bar floating background\", value: 0xd5ccb5ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0xfdf6e3ff}\n theme_color:{tags: \"tab inactive background\", value: 0xe0d6bbff}\n theme_color:{tags: \"tab auto background\", value: 0xf5cfe1ff}\n theme_color:{tags: \"tab auto border\", value: 0xa2a6dfff}\n theme_color:{tags: \"tab auto inactive background\", value: 0xc8a5b5ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x595fbcff}\n theme_color:{tags: \"drop_site background\", value: 0x29a19890}\n theme_color:{tags: \"drop_site border\", value: 0x81ddd690}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x0c0c0cff}\n theme_color:{tags: \"alt background\", value: 0x161616ff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x404040ff}\n theme_color:{tags: text, value: 0xcac1b6ff}\n theme_color:{tags: \"weak text\", value: 0xa08563ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0x7485971e}\n theme_color:{tags: \"focus border\", value: 0x5e6b79ff}\n theme_color:{tags: cursor, value: 0x00ee00ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x2c5b36ff}\n theme_color:{tags: \"good_pop border\", value: 0x568761ff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0x803425ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0xa08563ff}\n theme_color:{tags: code_symbol, value: 0xcc5735ff}\n theme_color:{tags: code_type, value: 0xd8a51cff}\n theme_color:{tags: code_local, value: 0xd6b995ff}\n theme_color:{tags: code_register, value: 0xc04047ff}\n theme_color:{tags: code_keyword, value: 0xac7b0aff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x907553ff}\n theme_color:{tags: code_numeric, value: 0x6b8e23ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x4f681cff}\n theme_color:{tags: code_string, value: 0x6b8e23ff}\n theme_color:{tags: code_meta, value: 0xdab98fff}\n theme_color:{tags: code_comment, value: 0x686868ff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x18181980}\n theme_color:{tags: \"floating background alt\", value: 0x0000005f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating border\", value: 0xbfbfbf1f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0x3b3b3b5f}\n theme_color:{tags: \"floating scroll_bar border\", value: 0x5f5f5f5f}\n theme_color:{tags: \"menu_bar background\", value: 0x1f1f27ff}\n theme_color:{tags: \"menu_bar border\", value: 0x3d3d47ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x2b2b2bff}\n theme_color:{tags: \"scroll_bar border\", value: 0x3f3f3fff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x1f1f27ff}\n theme_color:{tags: \"tab border\", value: 0x3d3d47ff}\n theme_color:{tags: \"tab text\", value: 0xca9301ff}\n theme_color:{tags: \"tab text weak\", value: 0x8c690eff}\n theme_color:{tags: \"tab inactive background\", value: 0x171718ff}\n theme_color:{tags: \"tab inactive border\", value: 0x1f1f27ff}\n theme_color:{tags: \"tab auto background\", value: 0x243b38ff}\n theme_color:{tags: \"tab auto border\", value: 0x478980ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x102623ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x1e5850ff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x042327ff}\n theme_color:{tags: \"alt background\", value: 0x11b1fff}\n theme_color:{tags: \"pop background\", value: 0x355b6eff}\n theme_color:{tags: \"pop text\", value: 0xbad7e6ff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x334d50ff}\n theme_color:{tags: text, value: 0xdad3beff}\n theme_color:{tags: \"weak text\", value: 0xb0a688ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: \"menu_bar good text\", value: 0x2a8242ff}\n theme_color:{tags: \"menu_bar neutral text\", value: 0x5681ff}\n theme_color:{tags: \"menu_bar bad text\", value: 0xa21200ff}\n theme_color:{tags: \"menu_bar weak text\", value: 0x313131ff}\n theme_color:{tags: \"menu_bar bad_pop text weak\", value: 0xffffffff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0x86e08e20}\n theme_color:{tags: \"focus border\", value: 0x86e08fff}\n theme_color:{tags: cursor, value: 0x86e08fff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x2c5b36ff}\n theme_color:{tags: \"good_pop border\", value: 0x568761ff}\n theme_color:{tags: \"good_pop hover\", value: 0xe3f5d3ff}\n theme_color:{tags: \"good_pop weak text\", value: 0xe3f5d3ff}\n theme_color:{tags: \"bad_pop background\", value: 0x803425ff}\n theme_color:{tags: \"bad_pop hover\", value: 0xff825cff}\n theme_color:{tags: code_default, value: 0xbdb395ff}\n theme_color:{tags: code_symbol, value: 0xcbe0f5ff}\n theme_color:{tags: code_type, value: 0xcbe0f5ff}\n theme_color:{tags: code_local, value: 0xd9cfb3ff}\n theme_color:{tags: code_register, value: 0xb7afd5ff}\n theme_color:{tags: code_keyword, value: 0x9de3c0ff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x767676ff}\n theme_color:{tags: code_numeric, value: 0x2ca198ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x217770ff}\n theme_color:{tags: code_string, value: 0x2ca198ff}\n theme_color:{tags: code_meta, value: 0xB0FFB0ff}\n theme_color:{tags: code_comment, value: 0x31b72cff}\n theme_color:{tags: line_info_0, value: 0x4f3022ff}\n theme_color:{tags: line_info_1, value: 0x4f3e15ff}\n theme_color:{tags: line_info_2, value: 0x434e2aff}\n theme_color:{tags: line_info_3, value: 0x36241fff}\n theme_color:{tags: thread_0, value: 0xffcb7fff}\n theme_color:{tags: thread_1, value: 0xb2ff65ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"floating background\", value: 0x3232792}\n theme_color:{tags: \"floating background alt\", value: 0x0000005f}\n theme_color:{tags: \"floating background fresh\", value: 0x31393d5f}\n theme_color:{tags: \"floating scroll_bar background\", value: 0xe363bff}\n theme_color:{tags: \"menu_bar background\", value: 0xb59e7aff}\n theme_color:{tags: \"menu_bar text\", value: 0xff}\n theme_color:{tags: \"menu_bar border\", value: 0x947d5aff}\n theme_color:{tags: \"scroll_bar background\", value: 0xe363bff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x13533aff}\n theme_color:{tags: \"tab border\", value: 0x6c9182ff}\n theme_color:{tags: \"tab inactive background\", value: 0x0}\n theme_color:{tags: \"tab inactive border\", value: 0x947d5a6c}\n theme_color:{tags: \"tab auto background\", value: 0x5b3939ff}\n theme_color:{tags: \"tab auto border\", value: 0x875c5cff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x251b1bff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x563d3dff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background,value: 0xc0c0cff}\n theme_color:{tags: \"alt background\", value: 0x131313ff}\n theme_color:{tags: \"pop background\", value: 0x4c00ff}\n theme_color:{tags: \"fresh background\", value: 0x4c00ff}\n theme_color:{tags: \"match background\", value: 0x4c00ff}\n theme_color:{tags: border, value: 0x272727ff}\n theme_color:{tags: text, value: 0x90b080ff}\n theme_color:{tags: \"weak text\", value: 0x6b845fff}\n theme_color:{tags: \"menu_bar background\", value: 0x888888ff}\n theme_color:{tags: \"menu_bar text\", value: 0x20202ff}\n theme_color:{tags: \"menu_bar text weak\", value: 0x525252ff}\n theme_color:{tags: \"good text\", value: 0x32a852ff}\n theme_color:{tags: \"neutral text\", value: 0x3a90bbff}\n theme_color:{tags: \"bad text\", value: 0xcf5242ff}\n theme_color:{tags: hover, value: 0xee00ff}\n theme_color:{tags: \"focus overlay\", value: 0xee0012}\n theme_color:{tags: \"focus border\", value: 0x00ee00ff}\n theme_color:{tags: cursor, value: 0x00ee00ff}\n theme_color:{tags: selection, value: 0x99ccff0f}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x4900ff}\n theme_color:{tags: \"good_pop border\", value: 0x4900ff}\n theme_color:{tags: \"bad_pop background\", value: 0x430b00ff}\n theme_color:{tags: code_default, value: 0x90b080ff}\n theme_color:{tags: code_symbol, value: 0xbfd9b2ff}\n theme_color:{tags: code_type, value: 0xbfd9b2ff}\n theme_color:{tags: code_local, value: 0xbfd9b2ff}\n theme_color:{tags: code_register, value: 0xb84cffff}\n theme_color:{tags: code_keyword, value: 0xd08f1fff}\n theme_color:{tags: code_delimiter_or_operator, value: 0x90b080ff}\n theme_color:{tags: code_numeric, value: 0x50ff2fff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0x30af18ff}\n theme_color:{tags: code_string, value: 0x50ff2fff}\n theme_color:{tags: code_meta, value: 0x90b080ff}\n theme_color:{tags: code_comment, value: 0x1f90f0ff}\n theme_color:{tags: line_info_0, value: 0xa253dff}\n theme_color:{tags: line_info_1, value: 0x9103dff}\n theme_color:{tags: line_info_2, value: 0x1e083dff}\n theme_color:{tags: line_info_3, value: 0x1e083dff}\n theme_color:{tags: thread_0, value: 0xd08f1fff}\n theme_color:{tags: thread_1, value: 0x1ea5d0ff}\n theme_color:{tags: thread_unwound, value: 0xb2ccd8ff}\n theme_color:{tags: thread_error, value: 0xb23219ff}\n theme_color:{tags: breakpoint, value: 0xa72911ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x1d1d1dff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x15490cff}\n theme_color:{tags: \"tab border\", value: 0x15490cff}\n theme_color:{tags: \"tab text\", value: 0x90b080ff}\n theme_color:{tags: \"tab text weak\", value: 0x90b080ff}\n theme_color:{tags: \"tab inactive background\", value: 0x21321eff}\n theme_color:{tags: \"tab inactive border\", value: 0x21321eff}\n theme_color:{tags: \"tab auto background\", value: 0x674f3eff}\n theme_color:{tags: \"tab auto border\", value: 0x674f3eff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x47382eff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x47382eff}\n theme_color:{tags: \"drop_site background\", value: 0xffffff05}\n theme_color:{tags: \"drop_site border\", value: 0xffffff0f}\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{ tags: background , value: 0x1b1f22ff }\n theme_color:{ tags: \"alt background\" , value: 0x232929ff }\n theme_color:{ tags: \"pop background\" , value: 0x2f4838ff }\n theme_color:{ tags: \"fresh background\" , value: 0x31393dff }\n theme_color:{ tags: \"match background\" , value: 0x31393dff }\n theme_color:{ tags: border , value: 0x485347ff }\n theme_color:{ tags: text , value: 0xffffffff }\n theme_color:{ tags: \"weak text\" , value: 0xa2a2a2ff }\n theme_color:{ tags: \"good text\" , value: 0x32a852ff }\n theme_color:{ tags: \"neutral text\" , value: 0x3a90bbff }\n theme_color:{ tags: \"bad text\" , value: 0xcf5242ff }\n theme_color:{ tags: hover , value: 0xffffffff }\n theme_color:{ tags: \"focus overlay\" , value: 0xfda20012 }\n theme_color:{ tags: \"focus border\" , value: 0xfda200ff }\n theme_color:{ tags: cursor , value: 0x8aff00ff }\n theme_color:{ tags: selection , value: 0x99ccff0f }\n theme_color:{ tags: \"inactive background\" , value: 0x0 }\n theme_color:{ tags: drop_shadow , value: 0x0000007f }\n theme_color:{ tags: \"good_pop background\" , value: 0x2c5b36ff }\n theme_color:{ tags: \"good_pop border\" , value: 0x568761ff }\n theme_color:{ tags: \"good_pop hover\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"good_pop weak text\" , value: 0xe3f5d3ff }\n theme_color:{ tags: \"bad_pop background\" , value: 0x803425ff }\n theme_color:{ tags: \"bad_pop hover\" , value: 0xff825cff }\n theme_color:{ tags: code_default , value: 0xad8b69ff }\n theme_color:{ tags: code_symbol , value: 0x87ad6aff }\n theme_color:{ tags: code_type , value: 0xb67474ff }\n theme_color:{ tags: code_local , value: 0xe9bf95ff }\n theme_color:{ tags: code_register , value: 0xa688b2ff }\n theme_color:{ tags: code_keyword , value: 0xe49e17ff }\n theme_color:{ tags: code_delimiter_or_operator , value: 0x795e43ff }\n theme_color:{ tags: code_numeric , value: 0x98b19eff }\n theme_color:{ tags: code_numeric_alt_digit_group , value: 0x688b71ff }\n theme_color:{ tags: code_string , value: 0x98b19eff }\n theme_color:{ tags: code_meta , value: 0xad5979ff }\n theme_color:{ tags: code_comment , value: 0x52675dff }\n theme_color:{ tags: line_info_0 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_1 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_2 , value: 0x434e2aff }\n theme_color:{ tags: line_info_3 , value: 0x36241fff }\n theme_color:{ tags: line_info_4 , value: 0x4f3022ff }\n theme_color:{ tags: line_info_5 , value: 0x4f3e15ff }\n theme_color:{ tags: line_info_6 , value: 0x434e2aff }\n theme_color:{ tags: line_info_7 , value: 0x36241fff }\n theme_color:{ tags: thread_0 , value: 0xffc258ff }\n theme_color:{ tags: thread_1 , value: 0x82d331ff }\n theme_color:{ tags: thread_2 , value: 0xff99e5ff }\n theme_color:{ tags: thread_3 , value: 0x6598ffff }\n theme_color:{ tags: thread_4 , value: 0x65ffcbff }\n theme_color:{ tags: thread_5 , value: 0xff9819ff }\n theme_color:{ tags: thread_6 , value: 0x9932ffff }\n theme_color:{ tags: thread_7 , value: 0x65ff4cff }\n theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff }\n theme_color:{ tags: thread_error , value: 0xb23219ff }\n theme_color:{ tags: breakpoint , value: 0xa72911ff }\n theme_color:{ tags: \"floating background\" , value: 0x1b1f2276 }\n theme_color:{ tags: \"floating background alt\" , value: 0x0000005f }\n theme_color:{ tags: \"floating background fresh\" , value: 0x31393d5f }\n theme_color:{ tags: \"floating border\" , value: 0xbfbfbf1f }\n theme_color:{ tags: \"floating scroll_bar background\" , value: 0x3b3b3b5f }\n theme_color:{ tags: \"floating scroll_bar border\" , value: 0x5f5f5f5f }\n theme_color:{ tags: \"menu_bar background\" , value: 0x243d32ff }\n theme_color:{ tags: \"menu_bar border\" , value: 0x597b63ff }\n theme_color:{ tags: \"scroll_bar background\" , value: 0x232929ff }\n theme_color:{ tags: \"scroll_bar border\" , value: 0x3c4a3fff }\n theme_color:{ tags: \"implicit background\" , value: 0x00000000 }\n theme_color:{ tags: \"implicit border\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow background\" , value: 0x00000000 }\n theme_color:{ tags: \"hollow border\" , value: 0xffffff1f }\n theme_color:{ tags: \"tab background\" , value: 0x243d32ff }\n theme_color:{ tags: \"tab border\" , value: 0x597b63ff }\n theme_color:{ tags: \"tab inactive background\" , value: 0x30383eff }\n theme_color:{ tags: \"tab inactive border\" , value: 0x6b7680ff }\n theme_color:{ tags: \"tab auto background\" , value: 0x30636dff }\n theme_color:{ tags: \"tab auto border\" , value: 0x768f94ff }\n theme_color:{ tags: \"tab auto inactive background\" , value: 0x2f2633ff }\n theme_color:{ tags: \"tab auto inactive border\" , value: 0x685073ff }\n theme_color:{ tags: \"drop_site background\" , value: 0xffffff05 }\n theme_color:{ tags: \"drop_site border\" , value: 0xffffff0f }\n}\n"), +str8_lit_comp("theme:\n{\n theme_color:{tags: background, value: 0x000080ff}\n theme_color:{tags: \"pop background\", value: 0x8080ff}\n theme_color:{tags: \"fresh background\", value: 0x31393dff}\n theme_color:{tags: \"match background\", value: 0x31393dff}\n theme_color:{tags: border, value: 0x8080ff}\n theme_color:{tags: text, value: 0xffffffff}\n theme_color:{tags: \"weak text\", value: 0xffffffff}\n theme_color:{tags: \"good text\", value: 0x00ff00ff}\n theme_color:{tags: \"neutral text\", value: 0x00ffffff}\n theme_color:{tags: \"bad text\", value: 0xff0000ff}\n theme_color:{tags: hover, value: 0xffffffff}\n theme_color:{tags: \"focus overlay\", value: 0xffff0012}\n theme_color:{tags: \"focus border\", value: 0xffff00ff}\n theme_color:{tags: cursor, value: 0xffff00ff}\n theme_color:{tags: selection, value: 0xffff0018}\n theme_color:{tags: \"inactive background\", value: 0x0000002f}\n theme_color:{tags: drop_shadow, value: 0x0000007f}\n theme_color:{tags: \"good_pop background\", value: 0x6c17ff}\n theme_color:{tags: \"good_pop border\", value: 0x6c17ff}\n theme_color:{tags: \"bad_pop background\", value: 0xff0000ff}\n theme_color:{tags: code_default, value: 0xffffffff}\n theme_color:{tags: code_symbol, value: 0xffffff}\n theme_color:{tags: code_type, value: 0x00ff00ff}\n theme_color:{tags: code_local, value: 0x00ffffff}\n theme_color:{tags: code_register, value: 0xff00ffff}\n theme_color:{tags: code_keyword, value: 0xffffffff}\n theme_color:{tags: code_delimiter_or_operator, value: 0xffffffff}\n theme_color:{tags: code_numeric, value: 0xffff00ff}\n theme_color:{tags: code_numeric_alt_digit_group, value: 0xffff00ff}\n theme_color:{tags: code_string, value: 0xffff00ff}\n theme_color:{tags: code_meta, value: 0xff0000ff}\n theme_color:{tags: code_comment, value: 0x008080ff}\n theme_color:{tags: line_info_0, value: 0x8080ff}\n theme_color:{tags: line_info_1, value: 0x800080ff}\n theme_color:{tags: line_info_2, value: 0x800000ff}\n theme_color:{tags: line_info_3, value: 0x08000ff}\n theme_color:{tags: thread_0, value: 0xffff00ff}\n theme_color:{tags: thread_1, value: 0x00ff00ff}\n theme_color:{tags: thread_unwound, value: 0x00ffffff}\n theme_color:{tags: thread_error, value: 0xff0000ff}\n theme_color:{tags: breakpoint, value: 0xff0000ff}\n theme_color:{tags: \"menu_bar background\", value: 0x008080ff}\n theme_color:{tags: \"menu_bar border\", value: 0x8080ff}\n theme_color:{tags: \"scroll_bar background\", value: 0x008080ff}\n theme_color:{tags: \"implicit background\", value: 0x00000000}\n theme_color:{tags: \"implicit border\", value: 0x00000000}\n theme_color:{tags: \"hollow background\", value: 0x00000000}\n theme_color:{tags: \"hollow border\", value: 0xffffff1f}\n theme_color:{tags: \"tab background\", value: 0x8080ff}\n theme_color:{tags: \"tab border\", value: 0x8080ff}\n theme_color:{tags: \"tab inactive background\", value:0}\n theme_color:{tags: \"tab auto background\", value: 0x800000ff}\n theme_color:{tags: \"tab auto border\", value: 0x8080ff}\n theme_color:{tags: \"tab auto inactive background\", value: 0x300000ff}\n theme_color:{tags: \"tab auto inactive border\", value: 0x8080ff}\n theme_color:{tags: \"drop_site background\", value: 0x80ff}\n theme_color:{tags: \"drop_site border\", value: 0xffffff}\n}\n"), +}; + +C_LINKAGE_END + diff --git a/src/raddbg/generated/raddbg.meta.h b/src/raddbg/generated/raddbg.meta.h index 411ddb7d..92db5712 100644 --- a/src/raddbg/generated/raddbg.meta.h +++ b/src/raddbg/generated/raddbg.meta.h @@ -1,20353 +1,20375 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef RADDBG_META_H -#define RADDBG_META_H - -typedef enum RD_RegSlot -{ -RD_RegSlot_Null, -RD_RegSlot_Machine, -RD_RegSlot_Module, -RD_RegSlot_Process, -RD_RegSlot_Thread, -RD_RegSlot_CtrlEntity, -RD_RegSlot_Window, -RD_RegSlot_Panel, -RD_RegSlot_Tab, -RD_RegSlot_View, -RD_RegSlot_PrevTab, -RD_RegSlot_DstPanel, -RD_RegSlot_Cfg, -RD_RegSlot_CfgList, -RD_RegSlot_EvalSpace, -RD_RegSlot_UnwindCount, -RD_RegSlot_InlineDepth, -RD_RegSlot_FilePath, -RD_RegSlot_Cursor, -RD_RegSlot_Mark, -RD_RegSlot_TextKey, -RD_RegSlot_LangKind, -RD_RegSlot_Lines, -RD_RegSlot_DbgiKey, -RD_RegSlot_Vaddr, -RD_RegSlot_Voff, -RD_RegSlot_VaddrRange, -RD_RegSlot_VoffRange, -RD_RegSlot_Expr, -RD_RegSlot_UIKey, -RD_RegSlot_SrcUIKey, -RD_RegSlot_OffPx, -RD_RegSlot_RegSlot, -RD_RegSlot_PID, -RD_RegSlot_ForceConfirm, -RD_RegSlot_ForceFocus, -RD_RegSlot_PreferDisasm, -RD_RegSlot_NoRichTooltip, -RD_RegSlot_DoImplicitRoot, -RD_RegSlot_DoLister, -RD_RegSlot_DoBigRows, -RD_RegSlot_AllWindows, -RD_RegSlot_NonGraphical, -RD_RegSlot_Dir2, -RD_RegSlot_String, -RD_RegSlot_CmdName, -RD_RegSlot_OSEvent, -RD_RegSlot_COUNT, -} RD_RegSlot; - -typedef enum RD_CmdKind -{ -RD_CmdKind_Null, -RD_CmdKind_LaunchAndRun, -RD_CmdKind_LaunchAndStepInto, -RD_CmdKind_Kill, -RD_CmdKind_KillAll, -RD_CmdKind_Detach, -RD_CmdKind_Continue, -RD_CmdKind_StepIntoInst, -RD_CmdKind_StepOverInst, -RD_CmdKind_StepIntoLine, -RD_CmdKind_StepOverLine, -RD_CmdKind_StepOut, -RD_CmdKind_Halt, -RD_CmdKind_SoftHaltRefresh, -RD_CmdKind_SetThreadIP, -RD_CmdKind_RunToLine, -RD_CmdKind_Run, -RD_CmdKind_Restart, -RD_CmdKind_StepInto, -RD_CmdKind_StepOver, -RD_CmdKind_FreezeThread, -RD_CmdKind_ThawThread, -RD_CmdKind_FreezeProcess, -RD_CmdKind_ThawProcess, -RD_CmdKind_FreezeMachine, -RD_CmdKind_ThawMachine, -RD_CmdKind_FreezeLocalMachine, -RD_CmdKind_ThawLocalMachine, -RD_CmdKind_FreezeEntity, -RD_CmdKind_ThawEntity, -RD_CmdKind_SetEntityColor, -RD_CmdKind_SetEntityName, -RD_CmdKind_Attach, -RD_CmdKind_Exit, -RD_CmdKind_OpenPalette, -RD_CmdKind_RunCommand, -RD_CmdKind_RunExternalDriverTextCommand, -RD_CmdKind_OSEvent, -RD_CmdKind_SelectThread, -RD_CmdKind_SelectUnwind, -RD_CmdKind_UpOneFrame, -RD_CmdKind_DownOneFrame, -RD_CmdKind_SelectEntity, -RD_CmdKind_DeselectEntity, -RD_CmdKind_IncWindowFontSize, -RD_CmdKind_DecWindowFontSize, -RD_CmdKind_IncViewFontSize, -RD_CmdKind_DecViewFontSize, -RD_CmdKind_OpenWindow, -RD_CmdKind_WindowSettings, -RD_CmdKind_CloseWindow, -RD_CmdKind_ToggleFullscreen, -RD_CmdKind_BringToFront, -RD_CmdKind_PopupAccept, -RD_CmdKind_PopupCancel, -RD_CmdKind_ResetToDefaultBindings, -RD_CmdKind_ResetToDefaultPanels, -RD_CmdKind_ResetToCompactPanels, -RD_CmdKind_ResetToSimplePanels, -RD_CmdKind_NewPanelLeft, -RD_CmdKind_NewPanelUp, -RD_CmdKind_NewPanelRight, -RD_CmdKind_NewPanelDown, -RD_CmdKind_SplitPanel, -RD_CmdKind_RotatePanelColumns, -RD_CmdKind_NextPanel, -RD_CmdKind_PrevPanel, -RD_CmdKind_FocusPanel, -RD_CmdKind_FocusPanelRight, -RD_CmdKind_FocusPanelLeft, -RD_CmdKind_FocusPanelUp, -RD_CmdKind_FocusPanelDown, -RD_CmdKind_Undo, -RD_CmdKind_Redo, -RD_CmdKind_GoBack, -RD_CmdKind_GoForward, -RD_CmdKind_ClosePanel, -RD_CmdKind_FocusTab, -RD_CmdKind_NextTab, -RD_CmdKind_PrevTab, -RD_CmdKind_MoveTabRight, -RD_CmdKind_MoveTabLeft, -RD_CmdKind_OpenTab, -RD_CmdKind_BuildTab, -RD_CmdKind_DuplicateTab, -RD_CmdKind_CopyTabFullPath, -RD_CmdKind_CloseTab, -RD_CmdKind_MoveView, -RD_CmdKind_TabBarTop, -RD_CmdKind_TabBarBottom, -RD_CmdKind_TabSettings, -RD_CmdKind_SetCurrentPath, -RD_CmdKind_Open, -RD_CmdKind_Switch, -RD_CmdKind_SwitchToPartnerFile, -RD_CmdKind_RecordFileInProject, -RD_CmdKind_ShowFileInExplorer, -RD_CmdKind_GoToDisassembly, -RD_CmdKind_GoToSource, -RD_CmdKind_SetFileReplacementPath, -RD_CmdKind_NewUser, -RD_CmdKind_NewProject, -RD_CmdKind_OpenUser, -RD_CmdKind_OpenProject, -RD_CmdKind_OpenRecentProject, -RD_CmdKind_SaveUser, -RD_CmdKind_SaveProject, -RD_CmdKind_RecordUserAsLastOpened, -RD_CmdKind_RecordProjectInUser, -RD_CmdKind_WriteUserData, -RD_CmdKind_WriteProjectData, -RD_CmdKind_UserSettings, -RD_CmdKind_ProjectSettings, -RD_CmdKind_Edit, -RD_CmdKind_Accept, -RD_CmdKind_Cancel, -RD_CmdKind_MoveLeft, -RD_CmdKind_MoveRight, -RD_CmdKind_MoveUp, -RD_CmdKind_MoveDown, -RD_CmdKind_MoveLeftSelect, -RD_CmdKind_MoveRightSelect, -RD_CmdKind_MoveUpSelect, -RD_CmdKind_MoveDownSelect, -RD_CmdKind_MoveLeftChunk, -RD_CmdKind_MoveRightChunk, -RD_CmdKind_MoveUpChunk, -RD_CmdKind_MoveDownChunk, -RD_CmdKind_MoveUpPage, -RD_CmdKind_MoveDownPage, -RD_CmdKind_MoveUpWhole, -RD_CmdKind_MoveDownWhole, -RD_CmdKind_MoveLeftChunkSelect, -RD_CmdKind_MoveRightChunkSelect, -RD_CmdKind_MoveUpChunkSelect, -RD_CmdKind_MoveDownChunkSelect, -RD_CmdKind_MoveUpPageSelect, -RD_CmdKind_MoveDownPageSelect, -RD_CmdKind_MoveUpWholeSelect, -RD_CmdKind_MoveDownWholeSelect, -RD_CmdKind_MoveUpReorder, -RD_CmdKind_MoveDownReorder, -RD_CmdKind_MoveHome, -RD_CmdKind_MoveEnd, -RD_CmdKind_MoveHomeSelect, -RD_CmdKind_MoveEndSelect, -RD_CmdKind_SelectAll, -RD_CmdKind_DeleteSingle, -RD_CmdKind_DeleteChunk, -RD_CmdKind_BackspaceSingle, -RD_CmdKind_BackspaceChunk, -RD_CmdKind_Copy, -RD_CmdKind_Cut, -RD_CmdKind_Paste, -RD_CmdKind_InsertText, -RD_CmdKind_MoveNext, -RD_CmdKind_MovePrev, -RD_CmdKind_GoToLine, -RD_CmdKind_GoToAddress, -RD_CmdKind_CenterCursor, -RD_CmdKind_ContainCursor, -RD_CmdKind_FindNext, -RD_CmdKind_FindPrev, -RD_CmdKind_FindThread, -RD_CmdKind_FindSelectedThread, -RD_CmdKind_GoToName, -RD_CmdKind_GoToNameAtCursor, -RD_CmdKind_ToggleWatchExpression, -RD_CmdKind_ToggleWatchExpressionAtCursor, -RD_CmdKind_ToggleWatchExpressionAtMouse, -RD_CmdKind_EnableCfg, -RD_CmdKind_DisableCfg, -RD_CmdKind_SelectCfg, -RD_CmdKind_DeselectCfg, -RD_CmdKind_RemoveCfg, -RD_CmdKind_NameCfg, -RD_CmdKind_ConditionCfg, -RD_CmdKind_DuplicateCfg, -RD_CmdKind_RelocateCfg, -RD_CmdKind_SaveToProject, -RD_CmdKind_AddBreakpoint, -RD_CmdKind_AddAddressBreakpoint, -RD_CmdKind_AddFunctionBreakpoint, -RD_CmdKind_ToggleBreakpoint, -RD_CmdKind_RemoveBreakpoint, -RD_CmdKind_EnableBreakpoint, -RD_CmdKind_DisableBreakpoint, -RD_CmdKind_ClearBreakpoints, -RD_CmdKind_ListBreakpoints, -RD_CmdKind_ClearOutput, -RD_CmdKind_AddWatchPin, -RD_CmdKind_ToggleWatchPin, -RD_CmdKind_LoadDebugInfo, -RD_CmdKind_UnloadDebugInfo, -RD_CmdKind_AddTypeView, -RD_CmdKind_AddFilePathMap, -RD_CmdKind_EditUserTheme, -RD_CmdKind_EditProjectTheme, -RD_CmdKind_AddThemeColor, -RD_CmdKind_ForkTheme, -RD_CmdKind_SaveTheme, -RD_CmdKind_SaveAndSetTheme, -RD_CmdKind_SetNextStatement, -RD_CmdKind_AddTarget, -RD_CmdKind_SelectTarget, -RD_CmdKind_EnableTarget, -RD_CmdKind_DisableTarget, -RD_CmdKind_RemoveTarget, -RD_CmdKind_RegisterAsJITDebugger, -RD_CmdKind_FindCodeLocation, -RD_CmdKind_Search, -RD_CmdKind_SearchBackwards, -RD_CmdKind_PickFile, -RD_CmdKind_PickFolder, -RD_CmdKind_PickFileOrFolder, -RD_CmdKind_PushQuery, -RD_CmdKind_CompleteQuery, -RD_CmdKind_CancelQuery, -RD_CmdKind_UpdateQuery, -RD_CmdKind_OpenEventBuffer, -RD_CmdKind_CloseEventBuffer, -RD_CmdKind_ToggleDevMenu, -RD_CmdKind_LogMarker, -RD_CmdKind_OpenWatch, -RD_CmdKind_OpenLocals, -RD_CmdKind_OpenRegisters, -RD_CmdKind_OpenGlobals, -RD_CmdKind_OpenThreadLocals, -RD_CmdKind_OpenTypes, -RD_CmdKind_OpenProcedures, -RD_CmdKind_OpenCallStack, -RD_CmdKind_OpenTargets, -RD_CmdKind_OpenBreakpoints, -RD_CmdKind_OpenWatchPins, -RD_CmdKind_OpenDebugInfos, -RD_CmdKind_OpenThreads, -RD_CmdKind_OpenProcesses, -RD_CmdKind_OpenMachines, -RD_CmdKind_OpenModules, -RD_CmdKind_OpenFilePathMaps, -RD_CmdKind_OpenTypeViews, -RD_CmdKind_OpenOutput, -RD_CmdKind_OpenText, -RD_CmdKind_OpenDisasm, -RD_CmdKind_OpenMemory, -RD_CmdKind_OpenBitmap, -RD_CmdKind_OpenColor, -RD_CmdKind_OpenGeo3D, -RD_CmdKind_COUNT, -RD_CmdKind_FirstTabFastPathCmd = RD_CmdKind_OpenWatch, -} RD_CmdKind; - -typedef enum RD_IconKind -{ -RD_IconKind_Null, -RD_IconKind_FolderOpenOutline, -RD_IconKind_FolderClosedOutline, -RD_IconKind_FolderOpenFilled, -RD_IconKind_FolderClosedFilled, -RD_IconKind_FileOutline, -RD_IconKind_FileFilled, -RD_IconKind_Play, -RD_IconKind_PlayStepForward, -RD_IconKind_Pause, -RD_IconKind_Stop, -RD_IconKind_Info, -RD_IconKind_WarningSmall, -RD_IconKind_WarningBig, -RD_IconKind_Unlocked, -RD_IconKind_Locked, -RD_IconKind_LeftArrow, -RD_IconKind_RightArrow, -RD_IconKind_UpArrow, -RD_IconKind_DownArrow, -RD_IconKind_Gear, -RD_IconKind_Pencil, -RD_IconKind_Trash, -RD_IconKind_Pin, -RD_IconKind_RadioHollow, -RD_IconKind_RadioFilled, -RD_IconKind_CheckHollow, -RD_IconKind_CheckFilled, -RD_IconKind_Check, -RD_IconKind_LeftCaret, -RD_IconKind_RightCaret, -RD_IconKind_UpCaret, -RD_IconKind_DownCaret, -RD_IconKind_UpScroll, -RD_IconKind_DownScroll, -RD_IconKind_LeftScroll, -RD_IconKind_RightScroll, -RD_IconKind_Add, -RD_IconKind_Minus, -RD_IconKind_Thread, -RD_IconKind_Threads, -RD_IconKind_Machine, -RD_IconKind_CircleFilled, -RD_IconKind_X, -RD_IconKind_Refresh, -RD_IconKind_Undo, -RD_IconKind_Redo, -RD_IconKind_Save, -RD_IconKind_Window, -RD_IconKind_Target, -RD_IconKind_Clipboard, -RD_IconKind_Scheduler, -RD_IconKind_Module, -RD_IconKind_XSplit, -RD_IconKind_YSplit, -RD_IconKind_ClosePanel, -RD_IconKind_StepInto, -RD_IconKind_StepOver, -RD_IconKind_StepOut, -RD_IconKind_Find, -RD_IconKind_Palette, -RD_IconKind_Thumbnails, -RD_IconKind_Glasses, -RD_IconKind_Binoculars, -RD_IconKind_List, -RD_IconKind_Grid, -RD_IconKind_QuestionMark, -RD_IconKind_Person, -RD_IconKind_Briefcase, -RD_IconKind_Dot, -RD_IconKind_Bitmap, -RD_IconKind_Cube, -RD_IconKind_WindowRestore, -RD_IconKind_WindowMinimize, -RD_IconKind_Duplicate, -RD_IconKind_COUNT, -} RD_IconKind; - -typedef enum RD_CodeColorSlot -{ -RD_CodeColorSlot_CodeDefault, -RD_CodeColorSlot_CodeSymbol, -RD_CodeColorSlot_CodeType, -RD_CodeColorSlot_CodeLocal, -RD_CodeColorSlot_CodeRegister, -RD_CodeColorSlot_CodeKeyword, -RD_CodeColorSlot_CodeDelimiterOperator, -RD_CodeColorSlot_CodeNumeric, -RD_CodeColorSlot_CodeNumericAltDigitGroup, -RD_CodeColorSlot_CodeString, -RD_CodeColorSlot_CodeMeta, -RD_CodeColorSlot_CodeComment, -RD_CodeColorSlot_CodeLineNumbers, -RD_CodeColorSlot_CodeLineNumbersSelected, -RD_CodeColorSlot_COUNT, -} RD_CodeColorSlot; - -typedef enum RD_ThemePreset -{ -RD_ThemePreset_DefaultDark, -RD_ThemePreset_DefaultLight, -RD_ThemePreset_VSDark, -RD_ThemePreset_VSLight, -RD_ThemePreset_SolarizedDark, -RD_ThemePreset_SolarizedLight, -RD_ThemePreset_HandmadeHero, -RD_ThemePreset_Naysayer, -RD_ThemePreset_FourCoder, -RD_ThemePreset_Grove, -RD_ThemePreset_FarManager, -RD_ThemePreset_COUNT, -} RD_ThemePreset; - -typedef struct RD_VocabInfo RD_VocabInfo; -struct RD_VocabInfo -{ -String8 code_name; -String8 code_name_plural; -String8 display_name; -String8 display_name_plural; -RD_IconKind icon_kind; -}; - -typedef struct RD_NameSchemaInfo RD_NameSchemaInfo; -struct RD_NameSchemaInfo -{ -String8 name; -String8 schema; -}; - -typedef struct RD_Regs RD_Regs; -struct RD_Regs -{ -CTRL_Handle machine; -CTRL_Handle module; -CTRL_Handle process; -CTRL_Handle thread; -CTRL_Handle ctrl_entity; -CFG_ID window; -CFG_ID panel; -CFG_ID tab; -CFG_ID view; -CFG_ID prev_tab; -CFG_ID dst_panel; -CFG_ID cfg; -CFG_IDList cfg_list; -E_Space eval_space; -U64 unwind_count; -U64 inline_depth; -String8 file_path; -TxtPt cursor; -TxtPt mark; -C_Key text_key; -TXT_LangKind lang_kind; -D_LineList lines; -DI_Key dbgi_key; -U64 vaddr; -U64 voff; -Rng1U64 vaddr_range; -Rng1U64 voff_range; -String8 expr; -UI_Key ui_key; -UI_Key src_ui_key; -Vec2F32 off_px; -RD_RegSlot reg_slot; -U32 pid; -B32 force_confirm; -B32 force_focus; -B32 prefer_disasm; -B32 no_rich_tooltip; -B32 do_implicit_root; -B32 do_lister; -B32 do_big_rows; -B32 all_windows; -B32 non_graphical; -Dir2 dir2; -String8 string; -String8 cmd_name; -OS_Event * os_event; -}; - -typedef struct RD_Query RD_Query; -struct RD_Query -{ -RD_QueryFlags flags; -RD_RegSlot slot; -String8 expr; -String8 view_name; -CTRL_EntityKind ctrl_entity_kind; -}; - -typedef struct RD_CmdKindInfo RD_CmdKindInfo; -struct RD_CmdKindInfo -{ -String8 string; -String8 description; -String8 search_tags; -String8 ctx_filter; -RD_CmdKindFlags flags; -RD_Query query; -}; - -#define RD_FixedTabXList \ -Y(watches, watch, "")\ -X(locals) \ -X(registers) \ -X(globals) \ -X(thread_locals) \ -X(types) \ -X(procedures) \ -X(call_stack) \ -X(targets) \ -X(breakpoints) \ -X(watch_pins) \ -X(debug_infos) \ -X(threads) \ -X(processes) \ -X(machines) \ -X(modules) \ -X(file_path_maps) \ -X(type_views) \ -Y(output, text, "query:output")\ -Y(text, text, "")\ -Y(disasm, disasm, "")\ -Y(memory, memory, "")\ -Y(bitmap, bitmap, "")\ -Y(color, color, "")\ -Y(geo3d, geo3d, "")\ -Z(getting_started)\ - -#define rd_regs_lit_init_top \ -.machine = rd_regs()->machine,\ -.module = rd_regs()->module,\ -.process = rd_regs()->process,\ -.thread = rd_regs()->thread,\ -.ctrl_entity = rd_regs()->ctrl_entity,\ -.window = rd_regs()->window,\ -.panel = rd_regs()->panel,\ -.tab = rd_regs()->tab,\ -.view = rd_regs()->view,\ -.prev_tab = rd_regs()->prev_tab,\ -.dst_panel = rd_regs()->dst_panel,\ -.cfg = rd_regs()->cfg,\ -.cfg_list = rd_regs()->cfg_list,\ -.eval_space = rd_regs()->eval_space,\ -.unwind_count = rd_regs()->unwind_count,\ -.inline_depth = rd_regs()->inline_depth,\ -.file_path = rd_regs()->file_path,\ -.cursor = rd_regs()->cursor,\ -.mark = rd_regs()->mark,\ -.text_key = rd_regs()->text_key,\ -.lang_kind = rd_regs()->lang_kind,\ -.lines = rd_regs()->lines,\ -.dbgi_key = rd_regs()->dbgi_key,\ -.vaddr = rd_regs()->vaddr,\ -.voff = rd_regs()->voff,\ -.vaddr_range = rd_regs()->vaddr_range,\ -.voff_range = rd_regs()->voff_range,\ -.expr = rd_regs()->expr,\ -.ui_key = rd_regs()->ui_key,\ -.src_ui_key = rd_regs()->src_ui_key,\ -.off_px = rd_regs()->off_px,\ -.reg_slot = rd_regs()->reg_slot,\ -.pid = rd_regs()->pid,\ -.force_confirm = rd_regs()->force_confirm,\ -.force_focus = rd_regs()->force_focus,\ -.prefer_disasm = rd_regs()->prefer_disasm,\ -.no_rich_tooltip = rd_regs()->no_rich_tooltip,\ -.do_implicit_root = rd_regs()->do_implicit_root,\ -.do_lister = rd_regs()->do_lister,\ -.do_big_rows = rd_regs()->do_big_rows,\ -.all_windows = rd_regs()->all_windows,\ -.non_graphical = rd_regs()->non_graphical,\ -.dir2 = rd_regs()->dir2,\ -.string = rd_regs()->string,\ -.cmd_name = rd_regs()->cmd_name,\ -.os_event = rd_regs()->os_event,\ - -C_LINKAGE_BEGIN -extern String8 rd_tab_fast_path_view_name_table[25]; -extern String8 rd_tab_fast_path_query_name_table[25]; -extern RD_VocabInfo rd_vocab_info_table[358]; -extern RD_NameSchemaInfo rd_name_schema_info_table[26]; -extern String8 rd_reg_slot_code_name_table[47]; -extern Rng1U64 rd_reg_slot_range_table[47]; -extern String8 rd_binding_version_remap_old_name_table[8]; -extern String8 rd_binding_version_remap_new_name_table[8]; -extern String8 rd_icon_kind_text_table[75]; -extern String8 rd_code_color_slot_name_table[14]; -extern String8 rd_theme_preset_display_string_table[11]; -extern String8 rd_theme_preset_code_string_table[11]; -extern String8 rd_theme_preset_cfg_string_table[11]; -read_only global U8 rd_icon_font_bytes__data[] = -{ -0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x80,0x00,0x03,0x00,0x70,0x47,0x53,0x55,0x42,0x20,0x8b,0x25,0x7a,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x54,0x4f,0x53,0x2f,0x32,0x56,0x43,0x62,0x25,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0xa3,0x60,0xa4,0x23,0x00,0x00,0x01,0xb0,0x00,0x00,0x06,0x12,0x63,0x76,0x74,0x20, -0x0e,0x1f,0x06,0xf3,0x00,0x00,0x51,0x34,0x00,0x00,0x00,0x38,0x66,0x70,0x67,0x6d,0x62,0x31,0xfb,0x7b,0x00,0x00,0x51,0x6c,0x00,0x00,0x0e,0x0c,0x67,0x61,0x73,0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x51,0x2c,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0x71,0xda,0x4c,0xc8,0x00,0x00,0x07,0xc4,0x00,0x00,0x40,0x90,0x68,0x65,0x61,0x64, -0x2b,0xeb,0xd3,0xaf,0x00,0x00,0x48,0x54,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x07,0xc2,0x04,0x27,0x00,0x00,0x48,0x8c,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x06,0x4b,0xff,0xca,0x00,0x00,0x48,0xb0,0x00,0x00,0x01,0x44,0x6c,0x6f,0x63,0x61,0x71,0xa6,0x82,0xac,0x00,0x00,0x49,0xf4,0x00,0x00,0x00,0xa4,0x6d,0x61,0x78,0x70, -0x01,0xe8,0x0f,0x19,0x00,0x00,0x4a,0x98,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0xcd,0x9d,0x1c,0x1d,0x00,0x00,0x4a,0xb8,0x00,0x00,0x02,0xcd,0x70,0x6f,0x73,0x74,0x77,0x9e,0x36,0x3b,0x00,0x00,0x4d,0x88,0x00,0x00,0x03,0xa2,0x70,0x72,0x65,0x70,0xeb,0x48,0xca,0x9d,0x00,0x00,0x5f,0x78,0x00,0x00,0x00,0xa7,0x00,0x01,0x00,0x00, -0x00,0x0a,0x00,0x30,0x00,0x3e,0x00,0x02,0x44,0x46,0x4c,0x54,0x00,0x0e,0x6c,0x61,0x74,0x6e,0x00,0x1a,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x6c,0x69,0x67,0x61,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x04, -0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x03,0x3d,0x01,0x90,0x00,0x05,0x00,0x00,0x02,0x7a,0x02,0xbc,0x00,0x00,0x00,0x8c,0x02,0x7a,0x02,0xbc,0x00,0x00,0x01,0xe0,0x00,0x31,0x01,0x02,0x00,0x00,0x02,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x66,0x45,0x64,0x00,0xc0,0x00,0x21,0x00,0x7d,0x03,0x52,0xff,0x6a,0x00,0x5a,0x03,0xac,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x04, -0x00,0x00,0x02,0x42,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x3c,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x2c,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x42,0x00,0x04,0x01,0x10,0x00,0x00,0x00,0x18,0x00,0x10,0x00,0x03,0x00,0x08,0x00,0x23,0x00,0x2b,0x00,0x2e,0x00,0x31,0x00,0x39,0x00,0x3c,0x00,0x5b,0x00,0x5e,0x00,0x73,0x00,0x7b,0x00,0x7d, -0xff,0xff,0x00,0x00,0x00,0x21,0x00,0x26,0x00,0x2d,0x00,0x30,0x00,0x33,0x00,0x3c,0x00,0x3e,0x00,0x5d,0x00,0x61,0x00,0x75,0x00,0x7d,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x1c,0x00,0x26,0x00,0x28,0x00,0x2a,0x00,0x36, -0x00,0x36,0x00,0x70,0x00,0x72,0x00,0x96,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a, -0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a, -0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x0a,0x0b,0x00,0x0c,0x0d,0x00,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x00,0x00,0x15,0x00,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25, -0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x00,0x34,0x35,0x00,0x00,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x00,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0xd0,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x50,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x05,0x00,0x00, -0x00,0x28,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00, -0x00,0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x35,0x00,0x00, -0x00,0x10,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x15,0x00,0x00, -0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x43,0x00,0x00, -0x00,0x43,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00, -0x00,0x20,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x25,0x00,0x00, -0x00,0x4e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x53,0x00,0x00, -0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00, -0x00,0x30,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x35,0x00,0x00, -0x00,0x61,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x66,0x00,0x00, -0x00,0x66,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00, -0x00,0x40,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x45,0x00,0x00, -0x00,0x71,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x77,0x00,0x00, -0x00,0x77,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7d,0x00,0x00, -0x00,0x50,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x25,0x40,0x22,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x13,0x00,0x4e,0x02,0x00,0x1e,0x1b,0x16,0x13,0x0a,0x07,0x00,0x0f,0x02,0x0f,0x05,0x07,0x16,0x2b,0x01,0x21,0x22,0x06,0x07,0x11,0x14, -0x16,0x17,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x17,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x71,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x34,0x7c,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x02,0xc3,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01, -0xd0,0x25,0x34,0x59,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x5e,0x01,0x60,0x00,0x06,0x00,0x00,0xff,0xba,0x02,0x80,0x03,0x02,0x00,0x13,0x00,0x1c,0x00,0x25,0x00,0x39,0x00,0x42,0x00,0x4b,0x00,0x54,0x40,0x51,0x39,0x30,0x2f,0x26,0x0d,0x0c,0x03,0x02,0x08,0x02,0x04,0x01,0x4c,0x08,0x0c,0x02,0x04,0x0b,0x01,0x02,0x03,0x04, -0x02,0x69,0x09,0x01,0x05,0x05,0x01,0x61,0x07,0x01,0x01,0x01,0x13,0x4d,0x0d,0x0a,0x02,0x03,0x03,0x00,0x61,0x06,0x01,0x00,0x00,0x11,0x00,0x4e,0x44,0x43,0x1e,0x1d,0x48,0x47,0x43,0x4b,0x44,0x4b,0x41,0x40,0x3d,0x3c,0x35,0x34,0x2b,0x2a,0x22,0x21,0x1d,0x25,0x1e,0x25,0x13,0x14,0x19,0x17,0x0e,0x07,0x1a,0x2b,0x13,0x14,0x07,0x11, -0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16,0x03,0x34,0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x03,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x01,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16,0x15,0x14,0x07,0x27,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13, -0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0xf0,0x48,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x32,0x2a,0x38,0x28,0x28,0x38,0x2a,0x46,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x01,0xdc,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x48,0x74,0x28,0x38,0x2a,0x2a,0x38,0x28,0x44,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x02,0x8a,0x4c,0x22,0xfe, -0x86,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0xfd,0x76,0x1e,0x28,0x28,0x3a,0x28,0x28,0x02,0x30,0x28,0x3a,0x28,0x28,0x3a,0x28,0xfe,0x5c,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c,0x22,0x6e,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x46,0x28,0x3a,0x28, -0x28,0x3a,0x28,0x00,0x00,0x05,0x00,0x00,0xff,0x6a,0x03,0xe8,0x03,0x52,0x00,0x1f,0x00,0x22,0x00,0x25,0x00,0x33,0x00,0x3c,0x00,0x70,0x40,0x6d,0x23,0x01,0x00,0x06,0x1d,0x01,0x09,0x00,0x27,0x20,0x02,0x07,0x05,0x03,0x4c,0x00,0x03,0x00,0x06,0x00,0x03,0x06,0x67,0x0c,0x01,0x00,0x00,0x09,0x05,0x00,0x09,0x67,0x00,0x05,0x00,0x07, -0x04,0x05,0x07,0x67,0x00,0x04,0x00,0x0a,0x08,0x04,0x0a,0x67,0x00,0x08,0x00,0x02,0x0b,0x08,0x02,0x67,0x0d,0x01,0x0b,0x01,0x01,0x0b,0x57,0x0d,0x01,0x0b,0x0b,0x01,0x5f,0x00,0x01,0x0b,0x01,0x4f,0x34,0x34,0x01,0x00,0x34,0x3c,0x34,0x3c,0x3b,0x39,0x36,0x35,0x30,0x2f,0x2e,0x2c,0x29,0x28,0x25,0x24,0x22,0x21,0x1a,0x17,0x0e,0x0c, -0x09,0x06,0x00,0x1f,0x01,0x1e,0x0e,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x35,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x3f,0x01,0x3e,0x01,0x3b,0x01,0x32,0x16,0x17,0x15,0x36,0x33,0x0f,0x01,0x33,0x01,0x07,0x33,0x17,0x37,0x35,0x23,0x15,0x14,0x06,0x07,0x23,0x11,0x21,0x35,0x34,0x36,0x01,0x11, -0x23,0x15,0x14,0x06,0x27,0x23,0x11,0x03,0xb2,0x17,0x1e,0x01,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0xfe,0xd1,0x17,0x1e,0x01,0x16,0x10,0xe4,0x0f,0x36,0x16,0xe8,0x17,0x1e,0x01,0x26,0x21,0x47,0xa7,0xa7,0xfe,0x9b,0xa7,0xa7,0x6d,0xb0,0xd6,0x1e,0x17,0xe9,0x01,0x1e,0x16,0x02,0x26,0xd7,0x1e,0x17,0xe8,0x02,0x7c,0x20,0x16,0xfd,0x5a, -0x17,0x1e,0x01,0x20,0x16,0xa0,0x20,0x16,0x01,0x77,0x16,0x36,0x0f,0xe4,0x10,0x16,0x20,0x16,0xb7,0x17,0x77,0xa7,0x01,0x7d,0xa7,0xc2,0xb0,0xe9,0xe9,0x16,0x1e,0x01,0xfe,0x9b,0x8f,0x16,0x36,0xfe,0x4e,0x02,0x83,0xe8,0x16,0x20,0x01,0xfe,0x9a,0x00,0x00,0x04,0xff,0xff,0xff,0xb1,0x04,0x2f,0x03,0x0b,0x00,0x08,0x00,0x0f,0x00,0x1f, -0x00,0x2f,0x00,0x52,0x40,0x4f,0x1d,0x14,0x02,0x01,0x03,0x0f,0x01,0x00,0x01,0x0e,0x0d,0x0c,0x09,0x04,0x02,0x00,0x1c,0x15,0x02,0x04,0x02,0x04,0x4c,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x69,0x07,0x01,0x03,0x03,0x06,0x5f,0x00,0x06,0x06,0x13,0x4d,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05, -0x11,0x05,0x4e,0x11,0x10,0x2e,0x2b,0x26,0x23,0x19,0x17,0x10,0x1f,0x11,0x1f,0x13,0x13,0x12,0x08,0x07,0x19,0x2b,0x01,0x14,0x0e,0x01,0x26,0x34,0x36,0x1e,0x01,0x01,0x15,0x21,0x35,0x37,0x17,0x01,0x25,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x37,0x21,0x32,0x36,0x27,0x11,0x34,0x26,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x11, -0x34,0x36,0x37,0x21,0x32,0x16,0x01,0x65,0x3e,0x5a,0x3e,0x3e,0x5a,0x3e,0x02,0x3c,0xfc,0xee,0xb2,0x5a,0x01,0x1d,0x01,0x1e,0xfc,0x83,0x07,0x0a,0x01,0x0c,0x06,0x03,0x7d,0x07,0x0c,0x01,0x0a,0x51,0x34,0x25,0xfc,0x83,0x24,0x36,0x01,0x34,0x25,0x03,0x7d,0x25,0x34,0x02,0x11,0x2d,0x3e,0x02,0x42,0x56,0x42,0x04,0x3a,0xfe,0xfa,0xfa, -0x6b,0xb3,0x59,0x01,0x1d,0xa1,0x0a,0x08,0xfd,0x5a,0x07,0x0c,0x01,0x0a,0x08,0x02,0xa6,0x08,0x0a,0x12,0xfd,0x5a,0x25,0x34,0x01,0x36,0x24,0x02,0xa6,0x25,0x34,0x01,0x36,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xba,0x00,0xf0,0x03,0x02,0x00,0x13,0x00,0x1c,0x00,0x25,0x00,0x39,0x40,0x36,0x13,0x0a,0x09,0x00,0x04,0x05,0x02,0x01, -0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x13,0x4d,0x06,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x11,0x00,0x4e,0x1e,0x1d,0x22,0x21,0x1d,0x25,0x1e,0x25,0x13,0x17,0x19,0x14,0x07,0x07,0x1a,0x2b,0x37,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16, -0x15,0x14,0x07,0x27,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0xa8,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x48,0x74,0x28,0x38,0x2a,0x2a,0x38,0x28,0x44,0x1c,0x2a,0x2a,0x38,0x28,0x28,0xa2,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c, -0x22,0x6e,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x46,0x28,0x3a,0x28,0x28,0x3a,0x28,0x00,0x03,0xff,0xff,0xff,0x6a,0x04,0x78,0x03,0x52,0x00,0x03,0x00,0x0c,0x00,0x26,0x00,0x38,0x40,0x35,0x00,0x08,0x00,0x03,0x04,0x08,0x03,0x67,0x07,0x01,0x04,0x00,0x01,0x02,0x04,0x01,0x67,0x00,0x02,0x00,0x05,0x00,0x02,0x05,0x67,0x00,0x00,0x06, -0x06,0x00,0x57,0x00,0x00,0x00,0x06,0x60,0x00,0x06,0x00,0x06,0x50,0x33,0x25,0x33,0x26,0x21,0x11,0x11,0x11,0x10,0x09,0x07,0x1f,0x2b,0x17,0x21,0x11,0x29,0x02,0x11,0x21,0x15,0x33,0x32,0x16,0x15,0x01,0x11,0x14,0x06,0x23,0x21,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x33,0x21,0x35,0x34,0x36,0x33,0x21,0x32,0x16, -0x8f,0x01,0xac,0xfe,0x54,0x02,0x3b,0x01,0x1e,0xfe,0x53,0x36,0x25,0x34,0x01,0xad,0x34,0x25,0xfe,0xac,0x34,0x25,0xfd,0xe8,0x24,0x36,0x01,0x34,0x25,0x01,0x54,0x34,0x25,0x02,0x18,0x24,0x36,0x07,0x01,0x1e,0x01,0xac,0x8f,0x34,0x25,0x01,0x1e,0xfd,0xe8,0x25,0x34,0xc5,0x25,0x34,0x34,0x25,0x02,0x18,0x25,0x34,0xc5,0x25,0x34,0x34, -0x00,0x01,0xff,0xff,0xff,0xb1,0x03,0xe8,0x00,0xcf,0x00,0x0f,0x00,0x13,0x40,0x10,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x11,0x00,0x4e,0x35,0x33,0x02,0x07,0x18,0x2b,0x25,0x15,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0xe8,0x34,0x25,0xfc,0xca,0x24,0x36,0x01,0x34,0x25,0x03,0x36,0x25,0x34, -0x76,0x6b,0x25,0x34,0x01,0x36,0x24,0x6b,0x25,0x34,0x34,0x00,0x00,0x03,0x00,0x00,0xff,0x6a,0x03,0xa1,0x03,0x0b,0x00,0x03,0x00,0x07,0x00,0x1f,0x00,0x1f,0x40,0x1c,0x07,0x06,0x05,0x03,0x02,0x01,0x00,0x07,0x00,0x01,0x01,0x4c,0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x13,0x00,0x4e,0x1b,0x1e,0x02,0x07,0x18,0x2b,0x05,0x25,0x11, -0x05,0x27,0x2d,0x01,0x0d,0x01,0x11,0x14,0x06,0x07,0x05,0x06,0x22,0x27,0x25,0x2e,0x01,0x35,0x11,0x34,0x36,0x37,0x25,0x36,0x32,0x17,0x05,0x1e,0x01,0x01,0xf4,0x01,0x65,0xfe,0x9b,0x24,0x01,0x86,0xfe,0x7a,0xfe,0x7b,0x03,0x56,0x14,0x12,0xfe,0x77,0x0f,0x26,0x0f,0xfe,0x77,0x11,0x14,0x1a,0x15,0x01,0x89,0x0c,0x18,0x0d,0x01,0x89, -0x15,0x1a,0x3b,0xc3,0x01,0x63,0x82,0x3f,0x8d,0x8e,0x8e,0x01,0xfe,0x54,0x14,0x22,0x09,0xd6,0x09,0x09,0xd6,0x0a,0x20,0x15,0x01,0xac,0x17,0x24,0x08,0x8f,0x05,0x05,0x8f,0x08,0x24,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x44,0x02,0x80,0x00,0x13,0x00,0x31,0x40,0x2e,0x00,0x05,0x00,0x02,0x05,0x59,0x04,0x06,0x02,0x00,0x03,0x01, -0x01,0x02,0x00,0x01,0x67,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x05,0x02,0x51,0x01,0x00,0x11,0x10,0x0e,0x0c,0x0b,0x09,0x07,0x06,0x04,0x02,0x00,0x13,0x01,0x13,0x07,0x07,0x16,0x2b,0x01,0x32,0x14,0x2b,0x01,0x15,0x14,0x22,0x3d,0x01,0x23,0x22,0x34,0x3b,0x01,0x35,0x34,0x32,0x1d,0x01,0x02,0x26,0x1e,0x1e,0xd2,0x64,0xd2,0x1e,0x1e, -0xd2,0x64,0x01,0x90,0x64,0xd2,0x1e,0x1e,0xd2,0x64,0xd2,0x1e,0x1e,0xd2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x44,0x01,0x90,0x00,0x07,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x01,0x00,0x05,0x02,0x00,0x07,0x01,0x06,0x03,0x07,0x16,0x2b,0x01,0x32, -0x14,0x23,0x21,0x22,0x34,0x33,0x02,0x26,0x1e,0x1e,0xfd,0xf8,0x1e,0x1e,0x01,0x90,0x64,0x64,0x00,0x00,0x00,0x01,0xff,0xfd,0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x0c,0x00,0x13,0x40,0x10,0x00,0x01,0x01,0x13,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x15,0x13,0x02,0x07,0x18,0x2b,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e, -0x01,0x03,0x59,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xf4,0xba,0x7e,0x01,0x5e,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x3c,0x01,0xed,0x00,0x0e,0x00,0x1e,0x40,0x1b,0x00,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01, -0x00,0x51,0x35,0x14,0x02,0x07,0x18,0x2b,0x01,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x26,0x34,0x36,0x33,0x21,0x32,0x16,0x02,0x3b,0x0a,0xfa,0x0b,0x1c,0x0b,0xfa,0x0b,0x16,0x0e,0x01,0xf4,0x0e,0x16,0x01,0xc9,0x0e,0x0b,0xfa,0x0b,0x0b,0xfa,0x0b,0x1c,0x16,0x16,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0xa0,0x03,0x0b,0x00,0x2d, -0x00,0x42,0x00,0x48,0x40,0x45,0x3b,0x01,0x04,0x06,0x25,0x01,0x05,0x04,0x02,0x4c,0x00,0x07,0x01,0x02,0x01,0x07,0x02,0x80,0x00,0x06,0x02,0x04,0x02,0x06,0x04,0x80,0x00,0x04,0x05,0x02,0x04,0x05,0x7e,0x00,0x05,0x03,0x02,0x05,0x03,0x7e,0x00,0x03,0x00,0x00,0x03,0x00,0x64,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x13,0x02,0x4e, -0x14,0x17,0x15,0x27,0x35,0x39,0x35,0x33,0x08,0x07,0x1e,0x2b,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x17,0x1e,0x01,0x0f,0x01,0x06,0x23,0x27,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x3d,0x01,0x34,0x3f,0x01,0x36,0x33,0x32,0x17,0x16,0x13,0x01,0x06,0x22,0x2f,0x01, -0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x01,0x36,0x32,0x1f,0x01,0x16,0x14,0x03,0x12,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x23,0x1e,0x09,0x03,0x07,0x1b,0x06,0x07,0x05,0x0d,0x0c,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x05,0x24,0x06,0x07,0x03,0x04,0x0b,0x81,0xfe,0x39,0x0d,0x24,0x0e,0xf0,0x0e, -0x0e,0x3d,0x0e,0x24,0x0e,0x93,0x01,0x69,0x0d,0x24,0x0e,0x3e,0x0d,0x01,0x4b,0xb1,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x5e,0x01,0x0e,0x04,0x13,0x06,0x1c,0x05,0x01,0x03,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x8d,0x08,0x05,0x23,0x06,0x02,0x04,0x01,0x05,0xfe,0x3a,0x0e,0x0e,0xf0,0x0d,0x24,0x0e,0x3e,0x0d,0x0d,0x93,0x01, -0x69,0x0d,0x0d,0x3d,0x0e,0x24,0x00,0x00,0x00,0x06,0x00,0x00,0xff,0xb1,0x03,0x12,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3b,0x00,0x43,0x00,0x67,0x00,0x5d,0x40,0x5a,0x57,0x45,0x02,0x06,0x08,0x29,0x21,0x19,0x11,0x09,0x01,0x06,0x00,0x01,0x02,0x4c,0x00,0x09,0x0e,0x08,0x0e,0x09,0x08,0x80,0x0f,0x0d,0x02,0x08,0x0c,0x0a, -0x02,0x06,0x01,0x08,0x06,0x68,0x05,0x03,0x02,0x01,0x04,0x02,0x02,0x00,0x07,0x01,0x00,0x69,0x00,0x0e,0x0e,0x13,0x4d,0x00,0x07,0x07,0x0b,0x5f,0x00,0x0b,0x0b,0x11,0x0b,0x4e,0x65,0x64,0x61,0x5e,0x5b,0x59,0x53,0x52,0x4f,0x4c,0x49,0x47,0x41,0x3f,0x14,0x24,0x14,0x26,0x26,0x26,0x26,0x26,0x23,0x10,0x07,0x1f,0x2b,0x01,0x11,0x14, -0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x13,0x11,0x21,0x11,0x14,0x1e,0x01,0x33,0x21,0x32,0x3e,0x01,0x01,0x33,0x27,0x26,0x27,0x23,0x06, -0x07,0x05,0x15,0x14,0x06,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x37,0x3e,0x01,0x37,0x33,0x32,0x16,0x1f,0x01,0x33,0x32,0x16,0x01,0x1e,0x0a,0x08,0x24,0x08,0x0a,0x0a,0x08,0x24,0x08,0x0a,0x8f,0x0a,0x08,0x24,0x08,0x0a,0x0a,0x08,0x24,0x08,0x0a,0x8e,0x0a,0x07,0x24, -0x08,0x0a,0x0a,0x08,0x24,0x07,0x0a,0x48,0xfe,0x0c,0x08,0x08,0x02,0x01,0xd0,0x02,0x08,0x08,0xfe,0x89,0xfa,0x1b,0x04,0x05,0xb1,0x06,0x04,0x01,0xeb,0x0a,0x08,0x36,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x35,0x08,0x0a,0x0a,0x08,0xac,0x27,0x09,0x2c,0x16,0xb2,0x17,0x2a,0x09,0x27,0xad,0x08,0x0a,0x01,0xb7,0xfe,0xbf,0x08,0x0a,0x0a, -0x08,0x01,0x41,0x08,0x0a,0x0a,0x08,0xfe,0xbf,0x08,0x0a,0x0a,0x08,0x01,0x41,0x08,0x0a,0x0a,0x08,0xfe,0xbf,0x08,0x0a,0x0a,0x08,0x01,0x41,0x08,0x0a,0x0a,0xfe,0x64,0x02,0x11,0xfd,0xef,0x0c,0x14,0x0a,0x0a,0x14,0x02,0x65,0x41,0x05,0x01,0x01,0x05,0x53,0x24,0x08,0x0a,0xfd,0xef,0x2e,0x44,0x42,0x2e,0x02,0x13,0x0a,0x08,0x24,0x08, -0x0a,0x5d,0x15,0x1c,0x01,0x1e,0x14,0x5d,0x0a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x9c,0x03,0xac,0x03,0x20,0x00,0x2a,0x00,0x34,0x40,0x09,0x20,0x1e,0x16,0x12,0x04,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x00,0x01,0x01,0x10,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x1b,0x40,0x0b,0x00,0x00,0x00,0x01,0x61,0x00, -0x01,0x01,0x10,0x00,0x4e,0x59,0xb5,0x1b,0x1a,0x13,0x02,0x07,0x17,0x2b,0x25,0x16,0x1d,0x01,0x21,0x35,0x34,0x37,0x3e,0x01,0x35,0x34,0x26,0x27,0x2e,0x03,0x27,0x34,0x36,0x3f,0x01,0x26,0x27,0x26,0x36,0x32,0x16,0x0f,0x01,0x16,0x15,0x0e,0x03,0x07,0x0e,0x01,0x15,0x14,0x16,0x02,0xe0,0xcc,0xfc,0x54,0xcc,0x5e,0x44,0x2c,0x0a,0x02, -0x0e,0x0e,0x0e,0x02,0x0a,0x04,0x04,0x08,0x04,0x04,0x5a,0xe0,0x5c,0x06,0x0c,0x12,0x02,0x0e,0x0e,0x0e,0x02,0x08,0x2e,0x46,0x80,0x48,0x32,0x6a,0x6a,0x32,0x48,0x22,0x46,0x3c,0x16,0x36,0x2e,0x0c,0x0c,0x04,0x1e,0x1c,0x10,0x14,0x02,0x04,0x32,0x26,0x36,0x74,0x74,0x36,0x58,0x08,0x22,0x1c,0x1e,0x04,0x0c,0x0c,0x30,0x34,0x16,0x3c, -0x46,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xb6,0x03,0xe8,0x03,0x08,0x00,0x18,0x00,0x20,0x00,0x2d,0x00,0x94,0xb5,0x25,0x01,0x09,0x0b,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x30,0x0d,0x01,0x0b,0x08,0x09,0x08,0x0b,0x72,0x0c,0x01,0x05,0x00,0x01,0x05,0x57,0x06,0x03,0x02,0x01,0x04,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x07, -0x07,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x0a,0x01,0x08,0x08,0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x1b,0x40,0x31,0x0d,0x01,0x0b,0x08,0x09,0x08,0x0b,0x09,0x80,0x0c,0x01,0x05,0x00,0x01,0x05,0x57,0x06,0x03,0x02,0x01,0x04,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x07,0x07,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x0a,0x01,0x08,0x08, -0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x59,0x40,0x1e,0x21,0x21,0x00,0x00,0x21,0x2d,0x21,0x2d,0x2c,0x2b,0x29,0x26,0x23,0x22,0x20,0x1d,0x1b,0x1a,0x00,0x18,0x00,0x18,0x12,0x24,0x35,0x22,0x11,0x0e,0x07,0x1b,0x2b,0x01,0x15,0x21,0x13,0x36,0x3b,0x01,0x36,0x3f,0x01,0x3e,0x01,0x3b,0x01,0x32,0x16,0x17,0x16,0x17,0x33,0x32,0x17, -0x13,0x21,0x35,0x03,0x07,0x21,0x27,0x26,0x2b,0x01,0x22,0x13,0x35,0x21,0x06,0x07,0x06,0x23,0x21,0x22,0x35,0x27,0x21,0x15,0x01,0xc8,0xfe,0x38,0x0a,0x04,0x60,0xa0,0x10,0x15,0x17,0x0e,0x12,0x1c,0xde,0x1a,0x14,0x0c,0x12,0x2a,0xa0,0x60,0x04,0x0a,0xfe,0x3a,0xa4,0x1c,0x01,0x24,0x1c,0x0e,0x1c,0x98,0x1c,0x96,0x01,0xae,0x06,0x04, -0x06,0x54,0xfd,0x12,0x5a,0x0a,0x01,0xae,0x01,0x46,0x64,0x01,0x24,0x6c,0x1a,0x29,0x2d,0x1a,0x0c,0x0e,0x18,0x20,0x50,0x6c,0xfe,0xdc,0x64,0x01,0x62,0x36,0x36,0x1a,0xfd,0x8a,0x64,0x58,0x4e,0x54,0x54,0xa6,0x64,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xdc,0x01,0xcc,0x00,0x08,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01, -0x01,0x00,0x59,0x02,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x01,0x00,0x05,0x04,0x00,0x08,0x01,0x08,0x03,0x07,0x16,0x2b,0x13,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x36,0x6e,0x2e,0x40,0x40,0x5c,0x40,0x40,0x01,0xcc,0x40,0x5a,0x42,0x42,0x5a,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x67,0x02,0x7c,0x00,0x0d, -0x00,0x1e,0x40,0x1b,0x00,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x17,0x13,0x02,0x07,0x18,0x2b,0x01,0x11,0x14,0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x16,0x01,0x65,0x14,0x20,0x09,0xfa,0x0a,0x0a,0xfa,0x0b,0x1c,0x18,0x02,0x58,0xfe,0x0c,0x0e,0x16, -0x0b,0xfa,0x0b,0x1c,0x0b,0xfa,0x0b,0x16,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x41,0x02,0x7d,0x00,0x0e,0x00,0x0a,0xb7,0x00,0x00,0x00,0x76,0x14,0x01,0x07,0x17,0x2b,0x01,0x14,0x0f,0x01,0x06,0x22,0x26,0x35,0x11,0x34,0x3e,0x01,0x1f,0x01,0x16,0x01,0x41,0x0a,0xfa,0x0b,0x1c,0x16,0x16,0x1c,0x0b,0xfa,0x0a,0x01,0x5e,0x0e,0x0b,0xfa, -0x0b,0x16,0x0e,0x01,0xf4,0x0f,0x14,0x02,0x0c,0xfa,0x0a,0x00,0x00,0x01,0xff,0xff,0x00,0x00,0x02,0x3b,0x01,0xc9,0x00,0x0e,0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x15,0x32,0x02,0x07,0x18,0x2b,0x25,0x14,0x06,0x27,0x21,0x22,0x2e,0x01,0x3f,0x01,0x36,0x32,0x1f,0x01, -0x16,0x02,0x3b,0x14,0x0f,0xfe,0x0c,0x0f,0x14,0x02,0x0c,0xfa,0x0a,0x1e,0x0a,0xfa,0x0a,0xab,0x0e,0x16,0x01,0x14,0x1e,0x0b,0xfa,0x0a,0x0a,0xfa,0x0b,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x5e,0x02,0x51,0x00,0x15,0x00,0x1e,0x40,0x1b,0x03,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00, -0x61,0x00,0x00,0x01,0x00,0x51,0x17,0x19,0x02,0x07,0x18,0x2b,0x01,0x14,0x0f,0x01,0x17,0x16,0x14,0x0f,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x37,0x01,0x36,0x32,0x1f,0x01,0x16,0x01,0x5e,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x0e,0x06,0xfe,0xfc,0x06,0x06,0x01,0x04,0x05,0x10,0x04,0x1c,0x06,0x02,0x22,0x07,0x05,0xdc,0xdb,0x06,0x0e, -0x06,0x1c,0x05,0x05,0x01,0x05,0x05,0x0e,0x06,0x01,0x04,0x06,0x06,0x1c,0x05,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x4c,0x02,0x51,0x00,0x15,0x00,0x1e,0x40,0x1b,0x0b,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1c,0x14,0x02,0x07,0x18,0x2b,0x01,0x14,0x07,0x01, -0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x27,0x26,0x34,0x3f,0x01,0x36,0x32,0x17,0x01,0x16,0x01,0x4c,0x05,0xfe,0xfb,0x05,0x0e,0x06,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x10,0x04,0x01,0x05,0x05,0x01,0x3a,0x07,0x05,0xfe,0xfb,0x05,0x05,0x1c,0x06,0x0e,0x06,0xdb,0xdc,0x05,0x0e,0x06,0x1c,0x06,0x06,0xfe,0xfc,0x05,0x00, -0x00,0x03,0xff,0xfc,0xff,0x90,0x03,0x9a,0x03,0x2c,0x00,0x08,0x00,0x16,0x00,0x3f,0x00,0x83,0x40,0x0b,0x38,0x36,0x02,0x03,0x05,0x13,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x24,0x50,0x58,0x40,0x24,0x00,0x05,0x06,0x03,0x06,0x05,0x03,0x80,0x00,0x06,0x00,0x03,0x02,0x06,0x03,0x69,0x08,0x01,0x02,0x00,0x01,0x02,0x01,0x66,0x00,0x04, -0x04,0x00,0x61,0x07,0x01,0x00,0x00,0x12,0x04,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x06,0x03,0x06,0x05,0x03,0x80,0x07,0x01,0x00,0x00,0x04,0x06,0x00,0x04,0x69,0x00,0x06,0x00,0x03,0x02,0x06,0x03,0x69,0x08,0x01,0x02,0x01,0x01,0x02,0x59,0x08,0x01,0x02,0x02,0x01,0x62,0x00,0x01,0x02,0x01,0x52,0x59,0x40,0x19,0x0a,0x09,0x01,0x00,0x27, -0x26,0x22,0x20,0x1d,0x1b,0x11,0x0e,0x09,0x16,0x0a,0x16,0x05,0x04,0x00,0x08,0x01,0x08,0x09,0x07,0x16,0x2b,0x01,0x36,0x00,0x12,0x00,0x04,0x00,0x02,0x00,0x13,0x32,0x36,0x35,0x36,0x26,0x2b,0x01,0x22,0x06,0x07,0x14,0x16,0x17,0x13,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x07,0x15,0x33,0x35,0x34,0x37,0x36,0x32,0x17,0x16,0x15, -0x14,0x07,0x06,0x0f,0x01,0x06,0x0f,0x01,0x06,0x07,0x06,0x07,0x15,0x33,0x35,0x34,0x37,0x36,0x3f,0x01,0x36,0x01,0xc6,0xbe,0x01,0x10,0x06,0xfe,0xf6,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0c,0xbc,0x1e,0x26,0x02,0x26,0x1e,0x02,0x1c,0x26,0x02,0x26,0x1c,0xa8,0x1a,0x6a,0x52,0x40,0x28,0x44,0x04,0x6e,0x10,0x10,0x4e,0x0c,0x10,0x10,0x08, -0x0c,0x16,0x0a,0x0a,0x15,0x0b,0x06,0x0e,0x04,0x6c,0x04,0x06,0x16,0x1c,0x2e,0x03,0x2a,0x02,0xfe,0xf8,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0a,0x01,0x7c,0x01,0x12,0xfd,0x1e,0x26,0x1c,0x1e,0x26,0x24,0x1c,0x1e,0x26,0x02,0x01,0x48,0x22,0x2c,0x4e,0x4c,0x1a,0x2a,0x68,0x04,0x04,0x1a,0x1c,0x18,0x14,0x14,0x18,0x12,0x16,0x0c,0x08,0x0f, -0x07,0x08,0x11,0x09,0x08,0x14,0x3a,0x08,0x04,0x0c,0x10,0x14,0x10,0x12,0x22,0x00,0x00,0x02,0x00,0x00,0xff,0xbd,0x03,0x4d,0x03,0x0b,0x00,0x08,0x00,0x1d,0x00,0x3a,0xb5,0x00,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x29,0x50,0x58,0x40,0x10,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x00,0x01,0x01,0x11,0x01,0x4e,0x1b,0x40, -0x10,0x00,0x01,0x00,0x01,0x86,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x13,0x00,0x4e,0x59,0xb5,0x38,0x1a,0x12,0x03,0x07,0x19,0x2b,0x13,0x34,0x26,0x0e,0x01,0x1e,0x02,0x36,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x2e,0x01,0x3d,0x01,0x34,0x36,0x37,0x33,0x32,0x16,0x17,0x01,0x16,0xfa,0x2a,0x3a,0x2c,0x02,0x28,0x3e,0x26,0x02, -0x55,0x14,0xfe,0xee,0x16,0x3b,0x14,0xfe,0x71,0x15,0x1e,0x2a,0x1d,0xe9,0x1d,0x48,0x15,0x01,0x8f,0x14,0x02,0x58,0x1e,0x2a,0x02,0x26,0x40,0x24,0x06,0x30,0xfe,0xd9,0x1e,0x15,0xfe,0xee,0x15,0x15,0x01,0x8f,0x15,0x48,0x1d,0xe8,0x1d,0x2a,0x01,0x1e,0x15,0xfe,0x71,0x15,0x00,0x0d,0x00,0x00,0xff,0xea,0x03,0xca,0x02,0xd2,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0xa9,0x40,0xa6,0x18,0x12,0x0c,0x03,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x20,0x19,0x13,0x1d,0x0d,0x05,0x07,0x03,0x00,0x07,0x03,0x7e,0x17,0x11,0x0b,0x03,0x05,0x02,0x04,0x02,0x05,0x04,0x80,0x16,0x10, -0x0a,0x03,0x04,0x01,0x02,0x04,0x01,0x7e,0x00,0x00,0x14,0x1e,0x0f,0x08,0x1b,0x05,0x03,0x02,0x00,0x03,0x67,0x1f,0x15,0x0e,0x1c,0x09,0x05,0x02,0x05,0x01,0x02,0x58,0x1f,0x15,0x0e,0x1c,0x09,0x05,0x02,0x02,0x01,0x5f,0x1a,0x01,0x01,0x02,0x01,0x4f,0x30,0x30,0x28,0x28,0x1c,0x1c,0x18,0x18,0x10,0x10,0x04,0x04,0x00,0x00,0x30,0x33, -0x30,0x33,0x32,0x31,0x2f,0x2e,0x2d,0x2c,0x28,0x2b,0x28,0x2b,0x2a,0x29,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x17,0x16,0x15,0x14,0x10,0x13,0x10,0x13,0x12,0x11,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x21, -0x07,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x33,0x35,0x03,0x33,0x35,0x23,0x13,0x23,0x15,0x33,0x17,0x35,0x23,0x1d,0x01,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x05,0x15,0x33,0x35,0x03,0x33,0x35,0x23,0x13,0x23,0x15,0x33,0x17,0x35,0x23,0x1d,0x01,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x03,0xca,0xfe,0x3d,0x9f,0x9f,0x9f,0x9f,0x9f, -0x9f,0x9f,0xe1,0x9e,0x9e,0x9e,0x9e,0x9e,0xfd,0x5b,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0xe1,0x9d,0x9d,0x9d,0x9d,0x9d,0x16,0x02,0xe8,0xfd,0x18,0x01,0xc4,0x9f,0x9f,0xfe,0x80,0x9d,0x01,0xc4,0x9e,0xe2,0x9f,0x9f,0xe1,0x9d,0x01,0x26,0x9e,0x9e,0x43,0x9f,0x9f,0xfe,0x80,0x9d,0x01,0xc4,0x9e,0xe2,0x9f,0x9f,0xe1,0x9d,0x01,0x26,0x9e, -0x9e,0x00,0x00,0x00,0x00,0x02,0xff,0xff,0xff,0xf9,0x04,0x19,0x03,0x0b,0x00,0x12,0x00,0x29,0x00,0x20,0x40,0x1d,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x00,0x63,0x00,0x03,0x03,0x13,0x03,0x4e,0x23,0x3a,0x23,0x36,0x35,0x05,0x07,0x1b,0x2b,0x01,0x14,0x0f,0x01,0x0e,0x01,0x23,0x21,0x22,0x2e,0x01,0x3f, -0x01,0x3e,0x01,0x33,0x21,0x32,0x16,0x27,0x15,0x21,0x22,0x06,0x0f,0x02,0x27,0x26,0x37,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x04,0x19,0x12,0xbb,0x18,0x56,0x26,0xfd,0xa1,0x13,0x1c,0x01,0x11,0xbc,0x18,0x56,0x25,0x02,0x5f,0x13,0x1e,0xc0,0xfe,0x30,0x35,0x72,0x23,0xbc,0x02,0x01,0x01,0x01,0x4a,0x33,0xb3, -0x33,0x4a,0x01,0x2f,0x34,0x48,0x01,0x3f,0x11,0x14,0xdd,0x1c,0x28,0x0e,0x22,0x14,0xdd,0x1c,0x28,0x0e,0xaf,0x5a,0x34,0x29,0xdd,0x03,0x07,0x05,0x02,0x02,0x18,0x33,0x4a,0x4a,0x33,0x12,0x4a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf9,0x03,0xa1,0x03,0x0b,0x00,0x14,0x00,0x16,0x40,0x13,0x00,0x02,0x00,0x00,0x02,0x00,0x64,0x00, -0x01,0x01,0x13,0x01,0x4e,0x23,0x35,0x33,0x03,0x07,0x19,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x03,0xa1,0x4a,0x33,0xfd,0x59,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x77,0x33,0x4a,0x01,0xff,0xfe,0x77,0x33,0x4a,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33, -0x12,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf2,0x02,0xf8,0x02,0xcc,0x00,0x06,0x00,0x1d,0x40,0x1a,0x01,0x01,0x00,0x49,0x00,0x01,0x00,0x01,0x85,0x03,0x02,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x12,0x04,0x07,0x18,0x2b,0x09,0x02,0x33,0x11,0x21,0x11,0x02,0xf8,0xfe,0x84,0xfe,0x84,0xc0,0x01,0x78,0x01,0x6e, -0xfe,0x84,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0x00,0x02,0xff,0xf7,0xff,0xe2,0x03,0xdb,0x03,0x12,0x00,0x17,0x00,0x20,0x00,0x26,0x40,0x23,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x19,0x18,0x1d,0x1c,0x18,0x20,0x19,0x20,0x2f,0x04,0x07,0x17,0x2b,0x01,0x1e, -0x01,0x06,0x07,0x06,0x26,0x06,0x07,0x06,0x1e,0x01,0x07,0x0e,0x02,0x23,0x22,0x26,0x37,0x3e,0x01,0x37,0x24,0x03,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x03,0x59,0x48,0x3a,0x12,0x1a,0x10,0x4c,0x54,0x26,0x1e,0x12,0x32,0x02,0x02,0x44,0xb8,0x7c,0xba,0xd2,0x0a,0x08,0xc0,0x78,0x01,0x22,0x48,0x1e,0x2c,0x2c,0x3e,0x2c,0x2c,0x02, -0x6e,0x30,0x7c,0x54,0x06,0x04,0x1c,0x08,0x2a,0x2e,0x3a,0x48,0x0e,0x1a,0x4a,0x4a,0xca,0x90,0x76,0xea,0x22,0x54,0xfd,0x8a,0x2c,0x40,0x2a,0x2a,0x40,0x2c,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x6a,0x03,0x59,0x03,0x52,0x00,0x06,0x00,0x18,0x00,0x33,0x40,0x30,0x01,0x01,0x00,0x03,0x01,0x4c,0x00,0x03,0x00,0x03,0x85,0x04,0x01,0x00, -0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x18,0x16,0x11,0x0e,0x0b,0x09,0x00,0x06,0x00,0x06,0x05,0x07,0x16,0x2b,0x01,0x11,0x16,0x1f,0x01,0x16,0x17,0x05,0x14,0x16,0x17,0x21,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x21,0x02,0x3b,0x0d,0x08, -0xe3,0x08,0x08,0xfe,0xb1,0x20,0x16,0x01,0x2f,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x01,0xbe,0x02,0x34,0x01,0x08,0x08,0x08,0xe4,0x07,0x0d,0x12,0x16,0x1e,0x01,0xfd,0xb3,0x17,0x1e,0x01,0x20,0x16,0x03,0x7c,0x17,0x1e,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x08,0x00,0x6a,0x00,0x45, -0x40,0x42,0x65,0x59,0x4c,0x41,0x04,0x00,0x04,0x3b,0x0a,0x02,0x01,0x00,0x34,0x28,0x1b,0x10,0x04,0x03,0x01,0x03,0x4c,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x69,0x00,0x00,0x00,0x05,0x5f,0x00,0x05,0x05,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x5c,0x5b,0x53,0x51,0x49,0x48,0x2b,0x2a,0x22,0x20,0x13, -0x12,0x07,0x07,0x18,0x2b,0x01,0x34,0x26,0x22,0x0e,0x01,0x16,0x32,0x36,0x25,0x15,0x14,0x06,0x0f,0x01,0x06,0x07,0x16,0x17,0x16,0x14,0x07,0x0e,0x01,0x27,0x22,0x2f,0x01,0x06,0x07,0x06,0x07,0x06,0x2b,0x01,0x22,0x26,0x35,0x27,0x26,0x27,0x07,0x06,0x22,0x27,0x26,0x27,0x26,0x34,0x37,0x3e,0x01,0x37,0x26,0x2f,0x01,0x2e,0x01,0x27, -0x35,0x34,0x36,0x3f,0x01,0x36,0x37,0x26,0x27,0x26,0x34,0x37,0x3e,0x01,0x33,0x32,0x1f,0x01,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x32,0x16,0x1f,0x01,0x16,0x17,0x37,0x36,0x32,0x17,0x16,0x17,0x16,0x14,0x07,0x0e,0x01,0x07,0x16,0x1f,0x01,0x1e,0x01,0x02,0x3b,0x52,0x78,0x52,0x02,0x56,0x74,0x56,0x01,0x1c,0x08,0x07,0x68,0x0a,0x0b, -0x13,0x28,0x06,0x05,0x0f,0x50,0x0d,0x07,0x07,0x4d,0x19,0x1a,0x09,0x07,0x04,0x10,0x7c,0x08,0x0c,0x10,0x1b,0x17,0x4f,0x06,0x10,0x06,0x46,0x16,0x04,0x05,0x08,0x28,0x0a,0x0f,0x08,0x66,0x07,0x08,0x01,0x0a,0x05,0x68,0x08,0x0e,0x17,0x25,0x06,0x05,0x0f,0x50,0x0d,0x07,0x08,0x4d,0x18,0x1a,0x09,0x08,0x03,0x11,0x7c,0x07,0x0c,0x01, -0x0f,0x1c,0x17,0x4f,0x05,0x0f,0x07,0x48,0x14,0x04,0x04,0x09,0x28,0x0a,0x0f,0x08,0x66,0x07,0x0a,0x01,0x5e,0x3b,0x54,0x54,0x76,0x54,0x54,0x78,0x7c,0x07,0x0c,0x01,0x10,0x1e,0x15,0x1b,0x32,0x06,0x0e,0x06,0x15,0x50,0x01,0x05,0x3c,0x0d,0x08,0x4c,0x1c,0x10,0x0a,0x07,0x67,0x09,0x0c,0x3c,0x05,0x06,0x40,0x1e,0x05,0x0e,0x06,0x0c, -0x32,0x0f,0x1c,0x1b,0x0f,0x01,0x0c,0x07,0x7c,0x07,0x0c,0x01,0x10,0x19,0x1a,0x20,0x2d,0x07,0x0c,0x07,0x14,0x50,0x05,0x3c,0x0d,0x08,0x4c,0x1c,0x10,0x0a,0x07,0x67,0x09,0x0b,0x3b,0x05,0x05,0x43,0x1c,0x05,0x0e,0x06,0x0c,0x32,0x0f,0x1c,0x1a,0x10,0x01,0x0c,0x00,0x00,0x00,0x09,0x00,0x00,0xff,0xf9,0x03,0xe8,0x03,0x0b,0x00,0x0f, -0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x5f,0x00,0x6f,0x00,0x7f,0x00,0x8f,0x00,0x47,0x40,0x44,0x0f,0x09,0x02,0x03,0x0e,0x08,0x02,0x02,0x01,0x03,0x02,0x67,0x0b,0x05,0x02,0x01,0x0a,0x04,0x02,0x00,0x01,0x00,0x63,0x10,0x0c,0x02,0x06,0x06,0x07,0x5f,0x11,0x0d,0x02,0x07,0x07,0x13,0x06,0x4e,0x8e,0x8b,0x86,0x83,0x7e,0x7b, -0x76,0x73,0x6e,0x6b,0x66,0x63,0x5e,0x5b,0x56,0x53,0x4e,0x4b,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x33,0x12,0x07,0x1f,0x2b,0x25,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x13,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x07,0x23,0x22, -0x26,0x27,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x27,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x17,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22, -0x26,0x27,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x37,0x33,0x32,0x16,0x13,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x1e,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2, -0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0xfe,0x9c,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0xfe,0x9c,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2, -0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0x9a,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x01,0x06,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0xfe,0xcd,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x02, -0x24,0x6b,0x16,0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0xfe,0xcc,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0xfe,0xcd,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x02,0x24,0x6b,0x16,0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0xfe,0xcc,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0x01,0x08,0x6b,0x16, -0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0x00,0x00,0x05,0x00,0x00,0xff,0x6a,0x03,0xe8,0x03,0x52,0x00,0x10,0x00,0x14,0x00,0x25,0x00,0x2f,0x00,0x39,0x00,0x65,0x40,0x62,0x33,0x29,0x02,0x07,0x08,0x21,0x01,0x05,0x02,0x1d,0x15,0x0d,0x0c,0x04,0x00,0x05,0x03,0x4c,0x04,0x01,0x05,0x01,0x4b,0x0a,0x01,0x08,0x09,0x01,0x07,0x01,0x08,0x07, -0x67,0x00,0x02,0x05,0x01,0x02,0x57,0x06,0x0c,0x03,0x0b,0x04,0x01,0x00,0x05,0x00,0x01,0x05,0x69,0x06,0x0c,0x03,0x0b,0x04,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x00,0x00,0x37,0x35,0x32,0x31,0x2d,0x2b,0x28,0x27,0x24,0x22,0x1f,0x1e,0x1b,0x19,0x11,0x14,0x11,0x14,0x13,0x12,0x00,0x10,0x00,0x0f,0x37,0x0d, -0x07,0x17,0x2b,0x01,0x11,0x14,0x06,0x07,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x13,0x36,0x33,0x21,0x11,0x23,0x11,0x01,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x22,0x26,0x27,0x11,0x33,0x32,0x17,0x25,0x15,0x23,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x05,0x15,0x23,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x89,0x16, -0x0e,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x8b,0x04,0x0d,0x01,0x9f,0x8e,0x02,0x3b,0x16,0x0e,0xfe,0xe3,0x0f,0x14,0x01,0x0f,0x14,0x01,0xed,0x0d,0x04,0xfe,0x3e,0xc5,0x0a,0x08,0xa1,0x08,0x0a,0x01,0x77,0xc5,0x0a,0x08,0xa1,0x08,0x0a,0x02,0x9f,0xfe,0x54,0x0f,0x14,0x01,0xfe,0xbf,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x01,0xe8,0x0c, -0xfe,0x78,0x01,0x88,0xfe,0x0c,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x41,0x16,0x0e,0x01,0xac,0x0c,0xad,0x7d,0x7d,0x08,0x0a,0x0a,0x08,0x7d,0x7d,0x08,0x0a,0x0a,0x00,0x08,0xff,0xff,0xff,0xf8,0x03,0xe9,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x5f,0x00,0x6f,0x00,0x7f,0x00,0x6f,0x40,0x6c,0x79,0x78, -0x71,0x49,0x48,0x41,0x06,0x08,0x09,0x69,0x61,0x60,0x29,0x21,0x20,0x06,0x04,0x05,0x59,0x58,0x51,0x50,0x19,0x18,0x11,0x10,0x08,0x02,0x03,0x39,0x38,0x31,0x09,0x08,0x01,0x06,0x00,0x01,0x04,0x4c,0x0d,0x01,0x05,0x0c,0x01,0x04,0x03,0x05,0x04,0x67,0x0b,0x01,0x03,0x0a,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01,0x06,0x01,0x00, -0x01,0x00,0x63,0x0e,0x01,0x08,0x08,0x09,0x5f,0x0f,0x01,0x09,0x09,0x13,0x08,0x4e,0x7d,0x7b,0x75,0x73,0x6d,0x6b,0x65,0x64,0x5d,0x5b,0x55,0x54,0x4d,0x4c,0x26,0x26,0x17,0x26,0x17,0x17,0x17,0x17,0x14,0x10,0x07,0x1f,0x2b,0x37,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x27,0x15,0x14,0x06,0x27, -0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x27,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x37,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x27, -0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x17,0x21,0x32,0x16,0x27,0x15,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x27,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x8f,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08, -0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x03,0x58,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0xfc,0xa6,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x03,0x58,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x01,0x0a,0x08,0xfd,0x12,0x07, -0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x01,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x76,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0xd0,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0xce,0x6b,0x07,0x0a,0x01,0x0c,0x06,0x6b,0x08,0x0a,0x0a,0xfe,0x4c,0x6b,0x07,0x0c,0x01,0x0a, -0x08,0x6b,0x07,0x0a,0x01,0x0c,0x02,0x7d,0x6b,0x08,0x0a,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0xfe,0x4d,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0xce,0x6b,0x07,0x0a,0x01,0x0c,0x06,0x6b,0x08,0x0a,0x0a,0xcf,0x6b,0x08,0x0a,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x02,0x83, -0x03,0x0b,0x00,0x07,0x00,0x1f,0x00,0x20,0x40,0x1d,0x05,0x03,0x02,0x00,0x00,0x02,0x00,0x02,0x63,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x13,0x01,0x4e,0x23,0x13,0x25,0x36,0x13,0x10,0x06,0x07,0x1c,0x2b,0x13,0x21,0x35,0x34,0x26,0x0e,0x01,0x17,0x05,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x17,0x33,0x35,0x34, -0x36,0x32,0x16,0x07,0x15,0x33,0x32,0x16,0xb3,0x01,0x1d,0x54,0x76,0x54,0x01,0x01,0xd0,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0x20,0x16,0x11,0x94,0xcc,0x96,0x02,0x12,0x17,0x1e,0x01,0xa5,0x6c,0x3b,0x54,0x02,0x50,0x3d,0xa1,0xfe,0xbe,0x16,0x1e,0x01,0x20,0x15,0x01,0x42,0x16,0x20,0x01,0x6c,0x66,0x94,0x94,0x66,0x6c,0x1e,0x00,0x00, -0x00,0x01,0x00,0x00,0xff,0xe2,0x02,0xda,0x02,0xda,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x01,0x00,0x01,0x4c,0x00,0x01,0x00,0x4a,0x05,0x01,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x11,0x11,0x02,0x07,0x18,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x01,0x01,0x7a,0x01,0x60,0xfe, -0xa0,0xfe,0x86,0x02,0xda,0xbe,0xfe,0x86,0xc0,0x01,0x7c,0x00,0x00,0x02,0xff,0xff,0xff,0xb1,0x04,0x2f,0x03,0x52,0x00,0x0f,0x00,0x2f,0x00,0x2e,0x40,0x2b,0x09,0x01,0x02,0x01,0x00,0x20,0x01,0x03,0x02,0x02,0x4c,0x00,0x05,0x00,0x00,0x01,0x05,0x00,0x67,0x00,0x01,0x04,0x01,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x03,0x11,0x03,0x4e, -0x35,0x26,0x36,0x26,0x26,0x14,0x06,0x07,0x1c,0x2b,0x01,0x11,0x34,0x26,0x27,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x14,0x1e,0x01,0x17,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x34,0x3e,0x01,0x35,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0xe8,0x0a,0x08,0xfc,0x83, -0x07,0x0a,0x01,0x0c,0x06,0x03,0x7d,0x07,0x0c,0x46,0x34,0x25,0xfe,0xd1,0x12,0x10,0x01,0x14,0x0f,0xfe,0xe2,0x0f,0x14,0x01,0x12,0x12,0xfe,0xd0,0x24,0x36,0x01,0x34,0x25,0x03,0x7d,0x25,0x34,0x01,0x28,0x01,0xd1,0x07,0x0a,0x01,0x0c,0x06,0xfe,0x2f,0x07,0x0a,0x0a,0x01,0xd8,0xfd,0xa1,0x25,0x34,0x01,0x14,0x2e,0x22,0x07,0x0e,0x16, -0x16,0x0e,0x08,0x22,0x2c,0x15,0x36,0x24,0x02,0x5f,0x25,0x34,0x34,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xe1,0x02,0xf8,0x02,0xdb,0x00,0x21,0x00,0x31,0x00,0x2f,0x40,0x2c,0x11,0x06,0x02,0x00,0x03,0x01,0x4c,0x00,0x01,0x00,0x01,0x86,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x69,0x00,0x03,0x00,0x00,0x03,0x59,0x00,0x03,0x03,0x00, -0x61,0x00,0x00,0x03,0x00,0x51,0x15,0x2b,0x1d,0x25,0x22,0x05,0x07,0x1b,0x2b,0x01,0x0e,0x01,0x23,0x22,0x26,0x27,0x0f,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x3f,0x02,0x2e,0x01,0x35,0x34,0x37,0x3e,0x01,0x32,0x17,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x25,0x1e,0x01,0x33,0x32,0x3e,0x01,0x34,0x2e,0x01,0x22,0x0e,0x01,0x15,0x14,0x16, -0x02,0xa8,0x29,0x66,0x36,0x31,0x5d,0x28,0x33,0x82,0x15,0x18,0x1e,0x2d,0x0f,0x81,0x7e,0x20,0x22,0x27,0x25,0x80,0x95,0x40,0x3f,0x26,0x26,0x14,0x14,0xfe,0x99,0x19,0x40,0x21,0x2d,0x4f,0x2e,0x2f,0x4e,0x5b,0x4f,0x2f,0x1a,0x01,0x00,0x29,0x2a,0x22,0x20,0x7d,0x82,0x0f,0x2f,0x1e,0x1a,0x13,0x82,0x33,0x26,0x5e,0x32,0x4b,0x40,0x3f, -0x4b,0x27,0x25,0x3f,0x41,0x4a,0x38,0x32,0x34,0x24,0x18,0x1a,0x2e,0x4f,0x5d,0x4e,0x2e,0x2f,0x4e,0x2d,0x22,0x40,0x00,0x00,0x00,0x02,0xff,0xfd,0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x0c,0x00,0x19,0x00,0x28,0x40,0x25,0x04,0x01,0x00,0x00,0x03,0x61,0x00,0x03,0x03,0x13,0x4d,0x00,0x01,0x01,0x02,0x61,0x00,0x02,0x02,0x11,0x02,0x4e, -0x01,0x00,0x17,0x16,0x11,0x10,0x07,0x06,0x00,0x0c,0x01,0x0c,0x05,0x07,0x16,0x2b,0x01,0x22,0x0e,0x02,0x1e,0x01,0x32,0x3e,0x01,0x2e,0x02,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e,0x01,0x01,0xad,0x53,0x8c,0x50,0x02,0x54,0x88,0xaa,0x86,0x56,0x04,0x4e,0x8e,0x01,0x5b,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xf4, -0xba,0x7e,0x02,0x8e,0x52,0x8c,0xa4,0x8c,0x52,0x52,0x8c,0xa4,0x8c,0x52,0xfe,0xd0,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0xb1,0x03,0x4d,0x02,0xff,0x00,0x06,0x00,0x14,0x00,0x19,0x00,0x24,0x00,0xe3,0x40,0x17,0x1e,0x01,0x02,0x05,0x1d,0x16,0x0e,0x07,0x04,0x03,0x02,0x19,0x03,0x02, -0x03,0x00,0x03,0x01,0x01,0x01,0x00,0x04,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x26,0x00,0x02,0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x00,0x03,0x70,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x72,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x4b,0xb0,0x12,0x50,0x58,0x40,0x27,0x00,0x02, -0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x05,0x03,0x00,0x7e,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x72,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x4b,0xb0,0x29,0x50,0x58,0x40,0x28,0x00,0x02,0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x05,0x03,0x00,0x7e,0x06,0x01,0x01,0x00, -0x04,0x00,0x01,0x04,0x80,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x40,0x23,0x00,0x05,0x02,0x05,0x85,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x00,0x03,0x85,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x04,0x80,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x59,0x59,0x59,0x40,0x12, -0x00,0x00,0x21,0x20,0x18,0x17,0x10,0x0f,0x09,0x08,0x00,0x06,0x00,0x06,0x14,0x07,0x07,0x17,0x2b,0x17,0x37,0x27,0x07,0x15,0x33,0x15,0x01,0x34,0x23,0x22,0x07,0x01,0x06,0x15,0x14,0x33,0x32,0x37,0x01,0x36,0x27,0x17,0x01,0x23,0x35,0x01,0x14,0x0f,0x01,0x27,0x37,0x36,0x32,0x1f,0x01,0x16,0xcb,0x32,0x83,0x33,0x48,0x01,0x5f,0x0c, -0x05,0x04,0xfe,0xd1,0x04,0x0d,0x05,0x04,0x01,0x2f,0x03,0x1e,0xe8,0xfe,0x30,0xe8,0x03,0x4d,0x14,0x5d,0xe8,0x5d,0x14,0x3b,0x16,0x83,0x14,0x07,0x33,0x83,0x33,0x3c,0x47,0x02,0x06,0x0c,0x04,0xfe,0xd2,0x04,0x06,0x0c,0x04,0x01,0x2e,0x04,0x71,0xe8,0xfe,0x2f,0xe9,0x01,0x9a,0x1d,0x15,0x5d,0xe9,0x5c,0x15,0x15,0x83,0x16,0x00,0x00, -0x00,0x05,0xff,0xff,0xff,0xf9,0x03,0x59,0x02,0xc4,0x00,0x08,0x00,0x11,0x00,0x21,0x00,0x2b,0x00,0x41,0x00,0x8e,0x40,0x0f,0x13,0x01,0x01,0x04,0x09,0x00,0x02,0x00,0x01,0x1b,0x01,0x05,0x00,0x03,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x03,0x01,0x01,0x04,0x00,0x04,0x01,0x00,0x80,0x02,0x01,0x00,0x05,0x08,0x00,0x70,0x00,0x09, -0x00,0x07,0x06,0x09,0x07,0x67,0x00,0x06,0x00,0x04,0x01,0x06,0x04,0x67,0x00,0x05,0x08,0x08,0x05,0x58,0x00,0x05,0x05,0x08,0x60,0x00,0x08,0x05,0x08,0x50,0x1b,0x40,0x31,0x03,0x01,0x01,0x04,0x00,0x04,0x01,0x00,0x80,0x02,0x01,0x00,0x05,0x04,0x00,0x05,0x7e,0x00,0x09,0x00,0x07,0x06,0x09,0x07,0x67,0x00,0x06,0x00,0x04,0x01,0x06, -0x04,0x67,0x00,0x05,0x08,0x08,0x05,0x58,0x00,0x05,0x05,0x08,0x60,0x00,0x08,0x05,0x08,0x50,0x59,0x40,0x0e,0x3d,0x3a,0x37,0x23,0x13,0x26,0x25,0x13,0x14,0x13,0x12,0x0a,0x07,0x1f,0x2b,0x25,0x14,0x06,0x22,0x26,0x3e,0x01,0x1e,0x01,0x17,0x14,0x06,0x22,0x26,0x3e,0x01,0x1e,0x01,0x17,0x35,0x34,0x26,0x27,0x21,0x22,0x06,0x07,0x15, -0x14,0x16,0x17,0x21,0x32,0x36,0x01,0x21,0x03,0x2e,0x01,0x23,0x21,0x22,0x06,0x07,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x35,0x34,0x37,0x13,0x3e,0x01,0x17,0x21,0x32,0x16,0x17,0x13,0x16,0x02,0x44,0x1a,0x24,0x1c,0x02,0x18,0x28,0x16,0x91,0x1a,0x24,0x1c,0x02,0x18,0x28,0x16,0x41,0x0c,0x06,0xfd,0x59,0x07,0x0a,0x01,0x0c, -0x06,0x02,0xa7,0x07,0x0a,0xfd,0x52,0x02,0x93,0x58,0x02,0x0e,0x07,0xfe,0x4b,0x07,0x0e,0x02,0x02,0x9e,0x34,0x25,0xfd,0x59,0x24,0x36,0x01,0x09,0x6e,0x09,0x34,0x1e,0x01,0xb5,0x1f,0x32,0x0a,0x6e,0x09,0xab,0x12,0x1a,0x1a,0x24,0x1c,0x02,0x18,0x14,0x12,0x1a,0x1a,0x24,0x1c,0x02,0x18,0x6d,0xb3,0x07,0x0a,0x01,0x0c,0x06,0xb3,0x07, -0x0a,0x01,0x0c,0x01,0x12,0x01,0x0d,0x07,0x0a,0x0a,0x07,0xfe,0x9a,0xb3,0x25,0x34,0x34,0x25,0xb3,0x0e,0x1c,0x01,0x52,0x1d,0x26,0x01,0x24,0x1e,0xfe,0xae,0x1c,0x00,0x00,0x01,0x00,0x00,0xff,0xe2,0x02,0xda,0x02,0xda,0x00,0x06,0x00,0x26,0x40,0x23,0x01,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x4a,0x02,0x01,0x00,0x49,0x00,0x01, -0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x13,0x02,0x07,0x18,0x2b,0x09,0x02,0x35,0x21,0x11,0x21,0x01,0x5e,0x01,0x7c,0xfe,0x84,0xfe,0xa2,0x01,0x5e,0x02,0xda,0xfe,0x84,0xfe,0x84,0xc0,0x01,0x7a,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xab,0x03,0x6b,0x03,0x20,0x00,0x0f,0x00,0x13,0x00,0x1f, -0x00,0x38,0x40,0x35,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x0b,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x00,0x5f,0x04,0x01,0x00,0x00,0x10,0x4d,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x11,0x01,0x4e,0x01,0x00,0x13,0x12,0x11,0x10,0x09,0x06,0x00,0x0f,0x01,0x0e,0x05,0x07,0x16,0x2b,0x13,0x22,0x06,0x15,0x11,0x14, -0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x05,0x21,0x11,0x21,0x01,0x07,0x17,0x07,0x17,0x37,0x17,0x37,0x27,0x37,0x27,0x07,0x87,0x0c,0x11,0x11,0x0c,0x02,0xc6,0x0c,0x11,0x11,0x0c,0xfd,0x58,0x02,0x8b,0xfd,0x75,0x01,0x87,0x2d,0x52,0x52,0x2d,0x53,0x52,0x2e,0x53,0x53,0x2e,0x52,0x03,0x1f,0x12,0x0c,0xfc,0xc8,0x0c,0x11, -0x11,0x0c,0x03,0x38,0x0c,0x12,0x3b,0xfd,0x02,0x02,0xcb,0x2e,0x52,0x53,0x2d,0x52,0x52,0x2d,0x53,0x52,0x2e,0x52,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x84,0x03,0x8f,0x03,0x33,0x00,0x02,0x00,0x10,0x00,0x3c,0x00,0x68,0x01,0x4d,0x40,0x0b,0x01,0x01,0x0a,0x02,0x62,0x36,0x02,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x36, -0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x72,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b,0x4b,0xb0,0x13,0x50,0x58,0x40,0x3c,0x12,0x01, -0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x70,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b,0x4b,0xb0,0x16,0x50,0x58, -0x40,0x3d,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b, -0x40,0x44,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x00,0x03,0x04,0x0a,0x03,0x57,0x0e,0x05,0x02,0x02,0x0f,0x01,0x0a,0x06,0x02,0x0a,0x69,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61, -0x0b,0x01,0x08,0x09,0x08,0x51,0x59,0x59,0x59,0x40,0x2d,0x04,0x03,0x00,0x00,0x68,0x66,0x5e,0x5c,0x5b,0x59,0x4d,0x4b,0x4a,0x48,0x3f,0x3d,0x3c,0x3a,0x32,0x30,0x2f,0x2d,0x21,0x1f,0x1e,0x1c,0x13,0x11,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x03,0x10,0x04,0x0f,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x01,0x07,0x27,0x25,0x22,0x06,0x1d, -0x01,0x33,0x35,0x21,0x15,0x33,0x35,0x34,0x26,0x23,0x13,0x33,0x32,0x16,0x1d,0x01,0x14,0x16,0x17,0x16,0x17,0x16,0x3b,0x01,0x15,0x23,0x22,0x07,0x06,0x07,0x06,0x07,0x06,0x1d,0x01,0x14,0x0e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e, -0x01,0x2b,0x01,0x35,0x33,0x32,0x36,0x37,0x36,0x37,0x36,0x3d,0x01,0x34,0x37,0x3e,0x02,0x3b,0x01,0x15,0x23,0x22,0x1d,0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x02,0x90,0x63,0x64,0xfe,0xcd,0x0d,0x13,0x3f,0x01,0x58,0x3f,0x12,0x0d,0x55,0x1b,0x47,0x45,0x07,0x0b,0x09,0x12,0x0e,0x1c,0x0f,0x0f,0x1a,0x12,0x0f,0x0c,0x08,0x05, -0x03,0x0f,0x22,0x34,0x27,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa8,0x1b,0x47,0x44,0x04,0x04,0x0b,0x09,0x23,0x18,0x10,0x10,0x1c,0x20,0x0a,0x08,0x05,0x04,0x07,0x07,0x23,0x33,0x27,0x1b,0x15,0x55,0x4e,0x4e,0x55,0x15,0x02,0xb1,0xac,0xac,0x82,0x12,0x0d,0xe7,0xc7,0x2e,0x4e,0x0d,0x12,0xfe,0xfa,0x42,0x44,0x54,0x14,0x1b,0x09,0x0a, -0x05,0x05,0x33,0x05,0x03,0x0a,0x08,0x0f,0x0d,0x14,0x80,0x1d,0x33,0x23,0x13,0x34,0x52,0x7f,0x5a,0x0a,0x09,0x5c,0x54,0x54,0xfd,0x8a,0x43,0x43,0x7e,0x0e,0x12,0x0e,0x0a,0x09,0x0b,0x33,0x08,0x09,0x08,0x0f,0x14,0x0d,0x57,0x21,0x16,0x19,0x24,0x12,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xff,0xf2,0x02,0xf8,0x02,0xcc,0x00,0x06,0x00,0x17,0x40,0x14,0x06,0x01,0x00,0x4a,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x11,0x11,0x10,0x03,0x07,0x19,0x2b,0x01,0x23,0x11,0x21,0x11,0x23,0x01,0x02,0xf8,0xc0,0xfe,0x88,0xc0,0x01,0x7c,0x01,0x50,0xfe,0xa2,0x01,0x5e,0x01,0x7c,0x00,0x01,0x00,0x00,0x00,0x00,0x03,0xa5, -0x02,0x98,0x00,0x15,0x00,0x1d,0x40,0x1a,0x0f,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x14,0x17,0x14,0x03,0x07,0x19,0x2b,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x01,0x36,0x32,0x1f,0x01,0x16,0x03,0xa5,0x10,0xfe,0x20,0x10,0x2c, -0x10,0xfe,0xea,0x0f,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0x01,0x6e,0x10,0x2c,0x10,0x4c,0x10,0x02,0x16,0x16,0x10,0xfe,0x20,0x0f,0x0f,0x01,0x16,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa5,0x01,0x6f,0x10,0x10,0x4c,0x0f,0x00,0x03,0xff,0xf5,0xff,0xb1,0x03,0xf3,0x03,0x52,0x00,0x0f,0x00,0x21,0x00,0x33,0x00,0x33,0x40,0x30,0x1b,0x11,0x02,0x03, -0x02,0x09,0x01,0x02,0x01,0x00,0x02,0x4c,0x00,0x05,0x00,0x02,0x03,0x05,0x02,0x67,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x67,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x11,0x04,0x4e,0x17,0x38,0x27,0x27,0x26,0x23,0x06,0x07,0x1c,0x2b,0x25,0x35,0x34,0x26,0x2b,0x01,0x22,0x06,0x1d,0x01,0x14,0x16,0x17,0x33,0x32,0x36,0x27,0x13,0x34, -0x27,0x26,0x2b,0x01,0x22,0x07,0x06,0x15,0x17,0x14,0x16,0x37,0x33,0x32,0x36,0x03,0x01,0x16,0x07,0x0e,0x01,0x07,0x21,0x22,0x26,0x27,0x26,0x37,0x01,0x3e,0x01,0x32,0x16,0x02,0x3b,0x0a,0x07,0x6c,0x07,0x0a,0x0a,0x07,0x6c,0x07,0x0a,0x01,0x0a,0x05,0x07,0x07,0x7a,0x06,0x08,0x05,0x09,0x0c,0x07,0x67,0x08,0x0c,0x08,0x01,0xac,0x14, -0x15,0x09,0x22,0x12,0xfc,0xa6,0x12,0x22,0x09,0x15,0x14,0x01,0xad,0x09,0x22,0x26,0x22,0x53,0x6a,0x08,0x0a,0x0a,0x08,0x6a,0x08,0x0a,0x01,0x0c,0xd7,0x01,0x01,0x06,0x04,0x06,0x06,0x04,0x08,0xff,0x05,0x08,0x01,0x06,0x02,0x10,0xfc,0xee,0x23,0x23,0x11,0x12,0x01,0x14,0x10,0x23,0x23,0x03,0x12,0x11,0x14,0x14,0x00,0x04,0x00,0x00, -0xff,0x79,0x03,0xd1,0x03,0x3c,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x36,0x40,0x33,0x07,0x01,0x05,0x03,0x01,0x01,0x05,0x01,0x63,0x06,0x01,0x04,0x04,0x00,0x5f,0x09,0x02,0x08,0x03,0x00,0x00,0x12,0x04,0x4e,0x11,0x10,0x01,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x19,0x16,0x10,0x1f,0x11,0x1e,0x09,0x06,0x00,0x0f, -0x01,0x0e,0x0a,0x07,0x16,0x2b,0x13,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x33,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x05,0x21,0x11,0x21,0x01,0x21,0x11,0x21,0x38,0x0d,0x13,0x13,0x0d,0x01,0x7c,0x0d,0x12,0x12,0x0d,0x80,0x0d,0x12,0x12,0x0d,0x01,0x7d, -0x0d,0x12,0x12,0x0d,0xfc,0xa6,0x01,0x3e,0xfe,0xc2,0x01,0xfc,0x01,0x3e,0xfe,0xc2,0x03,0x3b,0x12,0x0d,0xfc,0x7d,0x0d,0x12,0x12,0x0d,0x03,0x83,0x0d,0x12,0x12,0x0d,0xfc,0x7d,0x0d,0x12,0x12,0x0d,0x03,0x83,0x0d,0x12,0x3e,0xfc,0xbb,0x03,0x45,0xfc,0xbb,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x7e,0x03,0xd6,0x03,0x37,0x00,0x0f, -0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x3d,0x40,0x3a,0x00,0x04,0x00,0x01,0x02,0x04,0x01,0x67,0x00,0x02,0x09,0x01,0x07,0x06,0x02,0x07,0x67,0x00,0x06,0x00,0x03,0x06,0x03,0x63,0x08,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x12,0x05,0x4e,0x24,0x24,0x20,0x20,0x24,0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x14,0x35,0x35,0x35, -0x32,0x0a,0x07,0x1b,0x2b,0x01,0x34,0x26,0x23,0x21,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x15,0x34,0x26,0x23,0x21,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x03,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x03,0xd5,0x12,0x0d,0xfc,0x7d,0x0d,0x13,0x13,0x0d,0x03,0x83,0x0d,0x12,0x12,0x0d,0xfc,0x7d,0x0d, -0x13,0x13,0x0d,0x03,0x83,0x0d,0x12,0x3f,0xfc,0xbc,0x03,0x44,0xfc,0xbc,0x03,0x17,0x0d,0x12,0x12,0x0d,0xfe,0x84,0x0d,0x12,0x12,0x0d,0x80,0x0d,0x12,0x12,0x0d,0xfe,0x83,0x0d,0x12,0x12,0x0d,0x03,0x5a,0xfe,0xc2,0x01,0x3e,0xfe,0x04,0xfe,0xc1,0x01,0x3f,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x89,0x03,0xdc,0x03,0x38,0x00,0x02, -0x00,0x10,0x00,0x39,0x00,0x62,0x01,0x0d,0x40,0x0b,0x01,0x01,0x06,0x0a,0x5c,0x33,0x02,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x1c,0x50,0x58,0x40,0x38,0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x02,0x80,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10, -0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x0a,0x4e,0x1b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x3f,0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x02,0x80,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x00,0x03,0x0f,0x01,0x0a,0x06,0x03,0x0a,0x69,0x0d,0x01, -0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61,0x0b,0x01,0x08,0x09,0x08,0x51,0x1b,0x40,0x45,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x00,0x03,0x0f, -0x01,0x0a,0x06,0x03,0x0a,0x69,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61,0x0b,0x01,0x08,0x09,0x08,0x51,0x59,0x59,0x40,0x2d,0x04,0x03,0x00,0x00,0x62,0x60,0x58,0x56,0x55,0x53,0x4a,0x48,0x47,0x45,0x3c,0x3a,0x39,0x37,0x2f,0x2d,0x2c,0x2a,0x1f,0x1d,0x1c, -0x1a,0x13,0x11,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x03,0x10,0x04,0x0f,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x01,0x07,0x27,0x25,0x22,0x06,0x1d,0x01,0x33,0x35,0x21,0x15,0x33,0x35,0x34,0x26,0x23,0x01,0x33,0x32,0x16,0x1d,0x01,0x14,0x1e,0x02,0x3b,0x01,0x15,0x23,0x22,0x07,0x0e,0x02,0x1d,0x01,0x14,0x07,0x0e,0x02,0x2b,0x01,0x35, -0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e,0x01,0x2b,0x01,0x35,0x33,0x32,0x3e,0x02,0x3d,0x01,0x34,0x3e,0x02,0x3b,0x01,0x15,0x23,0x22,0x1d,0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x03,0xdc,0x63,0x64,0xfd,0x31,0x0d,0x13,0x3f,0x02,0xf4,0x3f,0x12, -0x0d,0xfe,0xb9,0x1b,0x47,0x45,0x07,0x16,0x22,0x18,0x10,0x10,0x16,0x16,0x10,0x14,0x07,0x08,0x06,0x21,0x38,0x25,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa8,0x1b,0x47,0x44,0x04,0x04,0x0b,0x09,0x23,0x18,0x10,0x10,0x1c,0x1f,0x15,0x07,0x0f,0x21,0x34,0x27,0x1b,0x15,0x55,0x4d,0x4e,0x54,0x15,0x02,0x85,0xad,0xad,0xb3,0x12,0x0d,0xe7, -0xc7,0x6d,0x8d,0x0d,0x12,0xfe,0xfa,0x42,0x44,0x54,0x14,0x1b,0x13,0x0a,0x33,0x04,0x04,0x12,0x1c,0x14,0x80,0x1d,0x1a,0x19,0x23,0x13,0x34,0x52,0x7f,0x5a,0x0a,0x09,0x5c,0x54,0x54,0xfd,0x8a,0x43,0x43,0x7e,0x0e,0x12,0x0e,0x0a,0x09,0x0b,0x33,0x08,0x13,0x1a,0x14,0x57,0x20,0x30,0x23,0x13,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d, -0x54,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x23,0x00,0x33,0x00,0x43,0x00,0x44,0x40,0x41,0x18,0x01,0x03,0x04,0x13,0x01,0x02,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x4c,0x05,0x01,0x03,0x02,0x01,0x00,0x01,0x03,0x00,0x67,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x69,0x00,0x07,0x00,0x08,0x07,0x08,0x63, -0x00,0x06,0x06,0x09,0x5f,0x00,0x09,0x09,0x13,0x06,0x4e,0x42,0x3f,0x35,0x35,0x36,0x14,0x23,0x26,0x14,0x23,0x23,0x0a,0x07,0x1f,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3d,0x01,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x33,0x32,0x16,0x13,0x11, -0x34,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x83,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x47,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24, -0x01,0xd0,0x25,0x34,0x48,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x01,0x94,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x07,0x0a,0xc5,0x08,0x0a,0x0a,0x08,0xc5,0x0a,0xfe,0xff,0x01,0xd0,0x25,0x34,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x01,0xf4,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0, -0x42,0x5e,0x01,0x60,0x00,0x03,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x2d,0x40,0x2a,0x09,0x01,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x00,0x02,0x02,0x05,0x5f,0x00,0x05,0x05,0x13,0x02,0x4e,0x35,0x35,0x35,0x36,0x26,0x23,0x06, -0x07,0x1c,0x2b,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x21,0x32,0x16,0x13,0x11,0x34,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x83,0x0a,0x08,0xfe,0x30,0x08,0x0a,0x0a,0x08,0x01,0xd0,0x08, -0x0a,0x47,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x48,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x01,0x94,0x24,0x08,0x0a,0x0a,0x08,0x24,0x07,0x0a,0x0a,0xfe,0xff,0x01,0xd0,0x25,0x34,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x01,0xf4,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42, -0x5e,0x01,0x60,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x01,0xd4,0x00,0x15,0x00,0x21,0xb1,0x06,0x64,0x44,0x40,0x16,0x07,0x01,0x00,0x02,0x01,0x4c,0x00,0x02,0x00,0x02,0x85,0x01,0x01,0x00,0x00,0x76,0x17,0x14,0x14,0x03,0x07,0x19,0x2b,0xb1,0x06,0x00,0x44,0x25,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x07,0x06,0x22,0x2f,0x01, -0x26,0x34,0x37,0x01,0x36,0x32,0x17,0x01,0x16,0x02,0x58,0x06,0x1c,0x05,0x0e,0x06,0xdc,0xdb,0x05,0x10,0x04,0x1c,0x06,0x06,0x01,0x04,0x05,0x0e,0x06,0x01,0x04,0x06,0xbd,0x07,0x05,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x0e,0x06,0x01,0x04,0x06,0x06,0xfe,0xfc,0x05,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0xff,0x89,0x03,0x42, -0x03,0x33,0x00,0x0f,0x00,0x19,0x00,0x33,0x00,0x3f,0x00,0x4b,0x00,0x57,0x00,0x8c,0x40,0x89,0x56,0x01,0x0c,0x0d,0x44,0x01,0x0a,0x0b,0x3e,0x01,0x08,0x09,0x03,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x0d,0x03,0x05,0x0d,0x7e,0x00,0x0b,0x0c,0x0a,0x0c,0x0b,0x0a,0x80,0x00,0x0a,0x09,0x0c,0x0a,0x09,0x7e,0x00,0x09, -0x08,0x0c,0x09,0x08,0x7e,0x10,0x01,0x08,0x07,0x0c,0x08,0x07,0x7e,0x00,0x0d,0x11,0x01,0x0c,0x0b,0x0d,0x0c,0x67,0x00,0x07,0x00,0x01,0x07,0x01,0x64,0x06,0x04,0x0f,0x03,0x03,0x03,0x00,0x5f,0x0e,0x01,0x00,0x00,0x12,0x03,0x4e,0x4e,0x4c,0x36,0x34,0x10,0x10,0x01,0x00,0x54,0x52,0x4c,0x57,0x4e,0x57,0x48,0x45,0x42,0x40,0x3c,0x3a, -0x34,0x3f,0x36,0x3f,0x32,0x2f,0x2a,0x28,0x25,0x22,0x1f,0x1d,0x10,0x19,0x10,0x19,0x16,0x13,0x09,0x06,0x00,0x0f,0x01,0x0e,0x12,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x17,0x15,0x14,0x16,0x3b,0x01,0x32,0x36,0x3d,0x01,0x13,0x11,0x34,0x26,0x07,0x23,0x15,0x14,0x06,0x07, -0x23,0x22,0x26,0x37,0x35,0x23,0x22,0x06,0x17,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x27,0x21,0x22,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x07,0x14,0x27,0x21,0x22,0x26,0x37,0x34,0x33,0x21,0x32,0x15,0x14,0x06,0x27,0x21,0x22,0x35,0x34,0x36,0x17,0x21,0x32,0x16,0x07,0x14,0x02,0xa6,0x41,0x5a,0x01,0x5c,0x40,0xfd,0xf6,0x41,0x5a,0x01, -0x5c,0x40,0x68,0x20,0x15,0xd0,0x16,0x1e,0x9c,0x1e,0x15,0x35,0x3c,0x2c,0xd0,0x2b,0x3e,0x01,0x35,0x15,0x20,0x01,0x1e,0x16,0x02,0x0a,0x15,0x1e,0x68,0xfe,0x60,0x1a,0x0e,0x0c,0x01,0xa0,0x0b,0x10,0x01,0x1a,0xfe,0x60,0x0b,0x10,0x01,0x1a,0x01,0xa0,0x1a,0x0e,0x0c,0xfe,0x60,0x1a,0x0e,0x0c,0x01,0xa0,0x0b,0x10,0x01,0x03,0x33,0x5c, -0x40,0xfd,0x8f,0x41,0x5c,0x5c,0x41,0x02,0x71,0x41,0x5a,0x01,0x68,0x34,0x15,0x20,0x20,0x15,0x34,0xfd,0x5b,0x02,0x71,0x15,0x20,0x01,0x34,0x2b,0x3c,0x01,0x3e,0x2a,0x34,0x1e,0x16,0xfd,0x8f,0x15,0x20,0x20,0x49,0x19,0x0c,0x0e,0x01,0x10,0x0b,0x19,0x9d,0x0e,0x0c,0x19,0x19,0x0b,0x10,0x9d,0x19,0x0b,0x10,0x01,0x0e,0x0c,0x19,0x00, -0x00,0x03,0x00,0x00,0xff,0xf9,0x04,0x29,0x03,0x0b,0x00,0x11,0x00,0x27,0x00,0x45,0x00,0x4b,0x40,0x48,0x24,0x01,0x01,0x00,0x01,0x4c,0x00,0x07,0x04,0x03,0x04,0x07,0x03,0x80,0x00,0x03,0x02,0x04,0x03,0x02,0x7e,0x08,0x09,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x68,0x00,0x01,0x00,0x05,0x01,0x05,0x63,0x00,0x04,0x04,0x06,0x5f,0x00, -0x06,0x06,0x13,0x04,0x4e,0x13,0x12,0x42,0x40,0x3d,0x3b,0x38,0x35,0x30,0x2d,0x21,0x1e,0x19,0x16,0x12,0x27,0x13,0x27,0x36,0x31,0x0a,0x07,0x18,0x2b,0x01,0x34,0x23,0x21,0x22,0x06,0x0f,0x01,0x06,0x15,0x14,0x33,0x21,0x32,0x36,0x3f,0x01,0x36,0x25,0x21,0x35,0x34,0x26,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x26,0x07,0x23,0x22,0x06, -0x15,0x11,0x37,0x3e,0x01,0x05,0x14,0x0f,0x01,0x0e,0x01,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x17,0x15,0x33,0x32,0x16,0x17,0x16,0x03,0xe2,0x1e,0xfd,0xa1,0x16,0x34,0x0d,0xa4,0x0b,0x1e,0x02,0x5f,0x17,0x32,0x0f,0xa4,0x0a,0xfd,0x83,0x01,0xad,0x20,0x16,0xfe,0xbf,0x17,0x1e,0x01, -0x1e,0x17,0xb3,0x16,0x20,0x8f,0x19,0x50,0x02,0xea,0x19,0xa5,0x18,0x52,0x25,0xfd,0xa1,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x2f,0x34,0x48,0x01,0x6b,0x1e,0x34,0x0b,0x08,0x01,0x4b,0x13,0x18,0x11,0xcb,0x0d,0x09,0x14,0x1a,0x10,0xcb,0x0c,0x64,0x5a,0x16,0x20,0x01,0x20,0x16,0x24,0x16,0x20,0x01,0x1e,0x17,0xfe,0x24,0xaf,0x1e, -0x26,0x5a,0x23,0x20,0xcb,0x1e,0x26,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33,0x12,0x4a,0x33,0x5a,0x1a,0x1b,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0xa1,0x03,0x0b,0x00,0x17,0x00,0x2c,0x00,0x26,0x40,0x23,0x00,0x05,0x00,0x00,0x02,0x05,0x00,0x67,0x00,0x02,0x00,0x03,0x02,0x03,0x63,0x00,0x01,0x01,0x04,0x5f,0x00,0x04, -0x04,0x13,0x01,0x4e,0x23,0x35,0x35,0x35,0x35,0x33,0x06,0x07,0x1c,0x2b,0x25,0x11,0x34,0x26,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x26,0x07,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x03,0x59,0x1e,0x17,0xfe, -0x77,0x17,0x1e,0x01,0x1e,0x17,0xb3,0x16,0x20,0x20,0x16,0x02,0xa7,0x16,0x20,0x47,0x4a,0x33,0xfd,0x59,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x77,0x33,0x4a,0x76,0x01,0x89,0x16,0x20,0x01,0x20,0x16,0x24,0x16,0x20,0x01,0x1e,0x17,0xfd,0xe8,0x16,0x20,0x20,0x01,0x9f,0xfe,0x77,0x33,0x4a,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33, -0x12,0x4a,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0xb8,0x03,0x94,0x03,0x1f,0x00,0x02,0x00,0x10,0x00,0x39,0x00,0x66,0x01,0x0d,0x40,0x0b,0x60,0x33,0x02,0x07,0x06,0x01,0x01,0x02,0x07,0x02,0x4c,0x4b,0xb0,0x13,0x50,0x58,0x40,0x38,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x00,0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02, -0x06,0x07,0x69,0x0b,0x08,0x12,0x04,0x11,0x05,0x00,0x01,0x09,0x00,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x1b,0x4b,0xb0,0x1b,0x50,0x58,0x40,0x3f,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x12,0x04,0x11,0x03,0x00,0x08,0x01,0x08,0x00,0x01,0x80,0x00, -0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02,0x06,0x07,0x69,0x0b,0x01,0x08,0x00,0x09,0x08,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x1b,0x40,0x45,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x11,0x01,0x00,0x08,0x04,0x08,0x00,0x04,0x80,0x12, -0x01,0x04,0x01,0x08,0x04,0x01,0x7e,0x00,0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02,0x06,0x07,0x69,0x0b,0x01,0x08,0x00,0x09,0x08,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x59,0x59,0x40,0x2d,0x03,0x03,0x00,0x00,0x66,0x64,0x5c,0x5a,0x59, -0x57,0x4a,0x48,0x47,0x45,0x3c,0x3a,0x39,0x37,0x2f,0x2d,0x2c,0x2a,0x20,0x1e,0x1d,0x1b,0x13,0x11,0x03,0x10,0x03,0x10,0x0d,0x0a,0x07,0x06,0x05,0x04,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x25,0x37,0x17,0x07,0x15,0x21,0x35,0x23,0x15,0x14,0x16,0x33,0x21,0x32,0x36,0x3d,0x01,0x01,0x33,0x32,0x16,0x1d,0x01,0x14,0x17,0x1e,0x02, -0x3b,0x01,0x15,0x23,0x22,0x0e,0x02,0x1d,0x01,0x14,0x07,0x0e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e,0x01,0x2b,0x01,0x35,0x33,0x32,0x3e,0x01,0x37,0x36,0x3d,0x01,0x34,0x37,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x15,0x23,0x22,0x1d, -0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x02,0xcd,0x64,0x63,0x82,0xfe,0xa7,0x3e,0x12,0x0d,0x01,0x97,0x0d,0x13,0xfe,0xa0,0x1c,0x47,0x44,0x04,0x05,0x11,0x25,0x18,0x10,0x10,0x1c,0x20,0x14,0x07,0x07,0x07,0x22,0x35,0x26,0x1c,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa7,0x1b,0x48,0x44,0x04,0x05,0x09,0x0a,0x23,0x18,0x0f,0x0f,0x1d, -0x20,0x13,0x03,0x04,0x07,0x08,0x10,0x10,0x1b,0x1b,0x27,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0x6a,0xac,0xac,0x09,0x6a,0xb3,0xd3,0x0d,0x12,0x12,0x0d,0x8a,0x02,0xbe,0x42,0x44,0x54,0x14,0x0c,0x10,0x10,0x0c,0x33,0x08,0x14,0x19,0x15,0x80,0x21,0x16,0x19,0x23,0x12,0x33,0x52,0x7f,0x59,0x0b,0x09,0x5c,0x54,0x54,0xfd,0x8b,0x42,0x43, -0x7e,0x14,0x0c,0x10,0x08,0x0b,0x09,0x33,0x09,0x12,0x0e,0x0c,0x15,0x56,0x1a,0x1e,0x18,0x12,0x10,0x0b,0x09,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d,0x54,0x00,0x00,0x00,0x03,0xff,0xfe,0x00,0x00,0x03,0xe8,0x02,0x60,0x00,0x20,0x00,0x24,0x00,0x28,0x00,0x36,0x40,0x33,0x00,0x00,0x08,0x06,0x07,0x03,0x04,0x03,0x00,0x04,0x67,0x05, -0x01,0x03,0x01,0x01,0x03,0x57,0x05,0x01,0x03,0x03,0x01,0x5f,0x02,0x01,0x01,0x03,0x01,0x4f,0x25,0x25,0x21,0x21,0x25,0x28,0x25,0x28,0x27,0x26,0x21,0x24,0x21,0x24,0x14,0x27,0x2a,0x18,0x09,0x07,0x1a,0x2b,0x11,0x26,0x37,0x25,0x36,0x17,0x16,0x0f,0x01,0x21,0x27,0x26,0x37,0x36,0x17,0x05,0x16,0x07,0x03,0x06,0x23,0x21,0x26,0x2f, -0x01,0x26,0x0f,0x01,0x06,0x23,0x21,0x26,0x27,0x37,0x17,0x21,0x37,0x33,0x17,0x21,0x37,0x02,0x0a,0x01,0x68,0x1d,0x0c,0x0b,0x19,0xe3,0x02,0x92,0xe4,0x19,0x0b,0x0e,0x1d,0x01,0x6a,0x0b,0x02,0x1b,0x08,0x19,0xfe,0xc7,0x19,0x06,0x31,0x27,0x35,0x32,0x06,0x1a,0xfe,0xc8,0x1b,0x04,0x27,0x13,0x01,0x04,0x2b,0xdd,0x29,0x01,0x03,0x14, -0x01,0x82,0x0d,0x0c,0xba,0x0b,0x1b,0x21,0x0c,0x68,0x68,0x10,0x1d,0x1b,0x0b,0xba,0x0c,0x0d,0xff,0x00,0x1e,0x02,0x18,0xdf,0x19,0x18,0xe0,0x1a,0x02,0x1c,0xe2,0xbd,0xbd,0xbd,0xbd,0x00,0x00,0x03,0x00,0x00,0xff,0x6a,0x03,0x59,0x03,0x52,0x00,0x13,0x00,0x1a,0x00,0x23,0x00,0x39,0x40,0x36,0x14,0x01,0x02,0x04,0x01,0x4c,0x00,0x01, -0x00,0x04,0x02,0x01,0x04,0x67,0x00,0x02,0x00,0x03,0x05,0x02,0x03,0x67,0x06,0x01,0x05,0x00,0x00,0x05,0x57,0x06,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05,0x00,0x4f,0x1b,0x1b,0x1b,0x23,0x1b,0x23,0x13,0x26,0x14,0x35,0x36,0x07,0x07,0x1b,0x2b,0x01,0x1e,0x01,0x15,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x21, -0x32,0x16,0x17,0x07,0x15,0x33,0x26,0x2f,0x01,0x26,0x13,0x11,0x23,0x22,0x26,0x27,0x35,0x21,0x11,0x03,0x33,0x10,0x16,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x01,0xf4,0x16,0x36,0x0f,0x4a,0xd2,0x05,0x07,0xaf,0x06,0xc6,0xe8,0x17,0x1e,0x01,0xfe,0x53,0x02,0x7e,0x10,0x34,0x18,0xfd,0x7e,0x17,0x1e,0x01,0x20,0x16,0x03,0x7c, -0x17,0x1e,0x01,0x16,0x10,0x26,0xd2,0x11,0x06,0xaf,0x07,0xfc,0xb0,0x02,0x3c,0x20,0x15,0xe9,0xfc,0xa6,0x00,0x01,0x00,0x00,0xff,0xaa,0x03,0x11,0x03,0x13,0x00,0x0b,0x00,0x06,0xb3,0x07,0x02,0x01,0x32,0x2b,0x09,0x01,0x06,0x26,0x35,0x11,0x34,0x36,0x17,0x01,0x16,0x14,0x03,0x04,0xfd,0x1b,0x0d,0x12,0x12,0x0d,0x02,0xe5,0x0d,0x01, -0x4d,0xfe,0x64,0x07,0x0a,0x0f,0x03,0x36,0x0e,0x0c,0x08,0xfe,0x64,0x07,0x14,0x00,0x00,0x01,0xff,0xff,0xff,0xae,0x02,0x3c,0x03,0x0f,0x00,0x1d,0x00,0x1b,0x40,0x18,0x1b,0x1a,0x12,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x13,0x4d,0x00,0x01,0x01,0x11,0x01,0x4e,0x35,0x3d,0x02,0x07,0x18,0x2b,0x17,0x06,0x26,0x37,0x11,0x34,0x36, -0x17,0x01,0x16,0x17,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x07,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x37,0x11,0x06,0x07,0x19,0x0a,0x10,0x01,0x0e,0x0b,0x01,0x8c,0x05,0x03,0x14,0x0f,0x48,0x0e,0x16,0x01,0x14,0x0f,0x48,0x0e,0x16,0x01,0x03,0x05,0x47,0x0b,0x06,0x0f,0x03,0x36,0x0e,0x08,0x0c,0xfe,0x74,0x05,0x05,0x01,0x7a,0x0e,0x16, -0x16,0x0e,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x01,0x7b,0x06,0x05,0x00,0x03,0xff,0xfc,0xff,0x90,0x03,0x9a,0x03,0x2c,0x00,0x08,0x00,0x13,0x00,0x29,0x00,0xa7,0x40,0x0d,0x0c,0x01,0x03,0x02,0x23,0x22,0x18,0x17,0x04,0x05,0x07,0x02,0x4c,0x4b,0xb0,0x24,0x50,0x58,0x40,0x32,0x00,0x03,0x02,0x06,0x02,0x03,0x06,0x80,0x00,0x06,0x07,0x02, -0x06,0x07,0x7e,0x00,0x07,0x05,0x02,0x07,0x05,0x7e,0x00,0x05,0x04,0x02,0x05,0x04,0x7e,0x0a,0x01,0x04,0x00,0x01,0x04,0x01,0x66,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x12,0x02,0x4e,0x1b,0x40,0x39,0x00,0x03,0x02,0x06,0x02,0x03,0x06,0x80,0x00,0x06,0x07,0x02,0x06,0x07,0x7e,0x00,0x07,0x05,0x02,0x07,0x05,0x7e,0x00, -0x05,0x04,0x02,0x05,0x04,0x7e,0x08,0x01,0x00,0x09,0x01,0x02,0x03,0x00,0x02,0x69,0x0a,0x01,0x04,0x01,0x01,0x04,0x59,0x0a,0x01,0x04,0x04,0x01,0x62,0x00,0x01,0x04,0x01,0x52,0x59,0x40,0x1f,0x15,0x14,0x0a,0x09,0x01,0x00,0x26,0x24,0x20,0x1e,0x1b,0x19,0x14,0x29,0x15,0x29,0x10,0x0e,0x09,0x13,0x0a,0x13,0x05,0x04,0x00,0x08,0x01, -0x08,0x0b,0x07,0x16,0x2b,0x01,0x36,0x00,0x12,0x00,0x04,0x00,0x02,0x00,0x17,0x22,0x06,0x15,0x06,0x16,0x33,0x32,0x36,0x35,0x34,0x03,0x32,0x36,0x37,0x27,0x06,0x23,0x22,0x3f,0x01,0x36,0x23,0x22,0x06,0x07,0x17,0x36,0x33,0x32,0x0f,0x01,0x06,0x01,0xc6,0xbe,0x01,0x10,0x06,0xfe,0xf6,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0c,0xf2,0x2a, -0x2e,0x02,0x22,0x20,0x26,0x2e,0xb4,0x1e,0x6c,0x34,0x12,0x30,0x18,0x0e,0x0a,0x2a,0x1a,0x30,0x1e,0x76,0x38,0x10,0x34,0x16,0x0c,0x0c,0x24,0x1a,0x03,0x2a,0x02,0xfe,0xf8,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0a,0x01,0x7c,0x01,0x12,0x96,0x30,0x1a,0x1c,0x20,0x2c,0x20,0x3a,0xfd,0xae,0x34,0x34,0x18,0x24,0x26,0xa0,0x60,0x3a,0x2e,0x1a, -0x22,0x22,0x98,0x68,0x00,0x01,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x31,0x00,0x3b,0x40,0x38,0x2a,0x01,0x03,0x05,0x25,0x1d,0x02,0x04,0x03,0x02,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x03,0x03,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x02,0x02,0x00,0x61,0x00,0x00,0x00, -0x11,0x00,0x4e,0x29,0x35,0x17,0x23,0x17,0x24,0x06,0x07,0x1c,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x34,0x3f,0x01,0x36,0x16,0x17,0x1e,0x01,0x33,0x32,0x3e,0x03,0x2e,0x02,0x22,0x06,0x07,0x17,0x16,0x06,0x2b,0x01,0x22,0x26,0x27,0x35,0x34,0x36,0x1f,0x01,0x3e,0x01,0x33,0x32,0x1e,0x02,0x03,0x59,0x44,0x72,0xa0,0x56, -0x60,0xae,0x3c,0x04,0x05,0x4c,0x06,0x11,0x04,0x29,0x76,0x43,0x3a,0x68,0x50,0x2a,0x02,0x2e,0x4c,0x6c,0x6f,0x64,0x28,0x4d,0x11,0x13,0x17,0xfa,0x0f,0x14,0x01,0x2c,0x11,0x48,0x3c,0x9a,0x52,0x57,0x9e,0x74,0x42,0x01,0x5e,0x57,0x9e,0x74,0x44,0x52,0x49,0x06,0x0e,0x04,0x4d,0x05,0x01,0x06,0x35,0x3a,0x2e,0x4c,0x6a,0x74,0x6a,0x4c, -0x2e,0x28,0x25,0x4d,0x10,0x2d,0x16,0x0e,0xfa,0x18,0x13,0x12,0x48,0x39,0x3e,0x44,0x74,0x9e,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf9,0x02,0x83,0x03,0x53,0x00,0x23,0x00,0x3a,0x40,0x37,0x00,0x04,0x05,0x00,0x05,0x04,0x00,0x80,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x02,0x06,0x02,0x00,0x01,0x01,0x00,0x59,0x02,0x06,0x02,0x00, -0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x01,0x00,0x20,0x1f,0x1b,0x18,0x14,0x13,0x10,0x0e,0x09,0x06,0x00,0x23,0x01,0x23,0x07,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x17,0x33,0x35,0x34,0x36,0x1e,0x01,0x07,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x34,0x26,0x22,0x06,0x17,0x15, -0x02,0x4d,0x17,0x1e,0x01,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0x20,0x16,0x11,0x94,0xcc,0x96,0x02,0x14,0x0f,0x24,0x0e,0x16,0x54,0x76,0x54,0x01,0x01,0xa5,0x1e,0x17,0xfe,0xbe,0x16,0x1e,0x01,0x20,0x15,0x01,0x42,0x16,0x20,0x01,0xb3,0x67,0x94,0x02,0x90,0x69,0x0e,0x16,0x16,0x0e,0x3b,0x54,0x54,0x3b,0xb3,0x00,0x00,0x08,0x00,0x00, -0xff,0x9f,0x03,0x8f,0x03,0x1d,0x00,0x04,0x00,0x09,0x00,0x0e,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x2b,0x00,0x33,0x00,0x41,0x40,0x3e,0x21,0x20,0x15,0x14,0x0e,0x01,0x06,0x00,0x4a,0x31,0x30,0x25,0x24,0x10,0x09,0x06,0x01,0x49,0x05,0x04,0x02,0x08,0x04,0x00,0x01,0x00,0x85,0x07,0x06,0x09,0x03,0x04,0x01,0x01,0x76,0x0f,0x0f,0x00, -0x00,0x2d,0x2c,0x29,0x28,0x1d,0x1c,0x19,0x18,0x0f,0x13,0x0f,0x13,0x0b,0x0a,0x06,0x05,0x00,0x04,0x00,0x04,0x0a,0x07,0x16,0x2b,0x01,0x35,0x1e,0x01,0x17,0x07,0x33,0x0e,0x01,0x07,0x03,0x23,0x3e,0x01,0x37,0x11,0x15,0x2e,0x01,0x27,0x01,0x35,0x1e,0x01,0x17,0x23,0x2e,0x01,0x01,0x23,0x3e,0x01,0x37,0x15,0x0e,0x01,0x01,0x15,0x2e, -0x01,0x27,0x33,0x1e,0x01,0x01,0x33,0x0e,0x01,0x07,0x35,0x3e,0x01,0x02,0x09,0x3c,0x56,0x10,0xa2,0xa2,0x10,0x56,0x3c,0x71,0xa2,0x10,0x56,0x3c,0x3c,0x56,0x10,0x01,0x13,0x98,0xda,0x14,0x71,0x12,0x9a,0xfe,0x11,0x71,0x13,0xda,0x99,0x6a,0x98,0x01,0x02,0x9a,0xd8,0x14,0x71,0x12,0x9a,0x01,0xef,0x71,0x15,0xd8,0x99,0x69,0x9a,0x01, -0x97,0xa2,0x10,0x58,0x3a,0x71,0x3b,0x58,0x0f,0x01,0x13,0x3b,0x56,0x11,0xfe,0xed,0xa2,0x10,0x56,0x3c,0x01,0x86,0x71,0x13,0xda,0x99,0x6b,0x98,0xfe,0xfd,0x98,0xda,0x14,0x71,0x12,0x98,0xfe,0x0f,0x72,0x13,0xdc,0x98,0x6b,0x98,0x01,0x03,0x99,0xda,0x14,0x72,0x12,0x98,0x00,0x04,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x03, -0x00,0x21,0x00,0x31,0x00,0x45,0x00,0x53,0x40,0x50,0x2b,0x2a,0x23,0x22,0x04,0x08,0x04,0x01,0x4c,0x0d,0x01,0x04,0x06,0x01,0x08,0x02,0x4b,0x00,0x08,0x04,0x03,0x04,0x08,0x03,0x80,0x00,0x03,0x06,0x04,0x03,0x06,0x7e,0x00,0x06,0x00,0x01,0x00,0x06,0x01,0x68,0x07,0x01,0x04,0x04,0x0a,0x5f,0x00,0x0a,0x0a,0x13,0x4d,0x05,0x02,0x02, -0x00,0x00,0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x40,0x3d,0x38,0x35,0x17,0x26,0x33,0x11,0x13,0x3b,0x11,0x11,0x10,0x0b,0x07,0x1f,0x2b,0x17,0x21,0x35,0x21,0x05,0x33,0x11,0x34,0x26,0x2f,0x01,0x2e,0x01,0x07,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x35,0x23,0x11,0x33,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x07,0x03,0x35,0x34, -0x26,0x2b,0x01,0x22,0x06,0x17,0x15,0x14,0x16,0x37,0x33,0x32,0x36,0x05,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x1f,0x01,0x1e,0x01,0xd6,0x01,0xad,0xfe,0x53,0x01,0xf4,0x48,0x0c,0x05,0x9d,0x05,0x1c,0x08,0x1e,0x17,0xfe,0xbe,0x16,0x1e,0x01,0x48,0x48,0x20,0x15,0x01,0xd1,0x16,0x20,0x01,0xd6, -0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x64,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x02,0x05,0x17,0x36,0x0f,0x9c,0x10,0x16,0x07,0xd6,0xd6,0x01,0xf4,0x08,0x1a,0x07,0x9c,0x06,0x0c,0x01,0xe8,0x16,0x20,0x20,0x16,0xe8,0xfd,0x36,0xe8,0x16,0x20,0x20,0x16,0x01,0x1e,0xb2,0x08,0x0a,0x0a,0x08,0xb2,0x07, -0x0c,0x01,0x0a,0x0a,0xfd,0xfa,0x16,0x20,0x20,0x16,0x02,0xee,0x16,0x20,0x18,0x0e,0x9d,0x0f,0x36,0x00,0x00,0x02,0xff,0xff,0xff,0xb1,0x03,0xe8,0x03,0x0b,0x00,0x03,0x00,0x13,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x03,0x5f,0x00,0x03,0x03,0x13,0x4d,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x35,0x34,0x11,0x10,0x04, -0x07,0x1a,0x2b,0x37,0x21,0x11,0x21,0x25,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x8f,0x02,0xca,0xfd,0x36,0x03,0x59,0x34,0x25,0xfc,0xca,0x24,0x36,0x01,0x34,0x25,0x03,0x36,0x25,0x34,0x40,0x01,0xad,0xc4,0xfd,0x5a,0x25,0x34,0x01,0x36,0x24,0x02,0xa6,0x25,0x34,0x01,0x36,0x00,0x03,0xff,0xfd, -0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x08,0x00,0x15,0x00,0x22,0x00,0x32,0x40,0x2f,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x69,0x06,0x01,0x02,0x02,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x03,0x03,0x04,0x61,0x00,0x04,0x04,0x11,0x04,0x4e,0x0a,0x09,0x20,0x1f,0x1a,0x19,0x10,0x0f,0x09,0x15,0x0a,0x15,0x13,0x12,0x07,0x07,0x18,0x2b, -0x01,0x14,0x06,0x22,0x2e,0x01,0x36,0x32,0x16,0x27,0x22,0x0e,0x02,0x1e,0x01,0x32,0x3e,0x01,0x2e,0x02,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e,0x01,0x02,0x3b,0x52,0x78,0x52,0x02,0x56,0x74,0x56,0x90,0x53,0x8c,0x50,0x02,0x54,0x88,0xaa,0x86,0x56,0x04,0x4e,0x8e,0x01,0x5b,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc, -0xf4,0xba,0x7e,0x01,0x5e,0x3b,0x54,0x54,0x76,0x54,0x54,0xf5,0x52,0x8c,0xa4,0x8c,0x52,0x52,0x8c,0xa4,0x8c,0x52,0xfe,0xd0,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x6a,0x02,0x83,0x03,0x0b,0x00,0x0b,0x00,0x2e,0x00,0x35,0x40,0x32,0x07,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x03,0x02, -0x03,0x86,0x09,0x05,0x02,0x01,0x04,0x01,0x02,0x03,0x01,0x02,0x67,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x00,0x07,0x07,0x13,0x00,0x4e,0x2d,0x2c,0x13,0x33,0x11,0x14,0x22,0x33,0x15,0x15,0x13,0x0a,0x07,0x1f,0x2b,0x01,0x35,0x34,0x26,0x22,0x06,0x1d,0x01,0x14,0x16,0x32,0x36,0x05,0x14,0x06,0x27,0x23,0x03,0x0e,0x01,0x07,0x23,0x22, -0x27,0x03,0x23,0x22,0x26,0x27,0x34,0x36,0x33,0x11,0x22,0x2e,0x01,0x36,0x37,0x21,0x32,0x16,0x14,0x06,0x27,0x11,0x32,0x16,0x01,0x0c,0x0a,0x10,0x0a,0x0a,0x10,0x0a,0x01,0x77,0x16,0x0e,0xef,0x1d,0x01,0x0a,0x06,0x01,0x0f,0x02,0x2b,0xe1,0x0f,0x14,0x01,0x58,0x37,0x1d,0x2a,0x02,0x2e,0x1b,0x01,0x65,0x1d,0x2a,0x2a,0x1d,0x37,0x58, -0x01,0x70,0xfa,0x08,0x0a,0x0a,0x08,0xfa,0x08,0x0a,0x0a,0xbd,0x0e,0x16,0x01,0xfe,0xf2,0x07,0x08,0x01,0x0f,0x01,0x0f,0x14,0x0f,0x45,0x6e,0x01,0x1e,0x2a,0x3a,0x2a,0x01,0x2c,0x38,0x2c,0x01,0xfe,0xe2,0x6e,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5b,0x03,0x0b,0x00,0x24,0x00,0x47,0x00,0x4b,0x40,0x48,0x43,0x25,0x02,0x06,0x09,0x2f, -0x01,0x05,0x06,0x17,0x01,0x03,0x02,0x08,0x01,0x01,0x03,0x04,0x4c,0x00,0x09,0x07,0x01,0x05,0x02,0x09,0x05,0x67,0x04,0x01,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x06,0x06,0x08,0x61,0x00,0x08,0x08,0x13,0x4d,0x00,0x03,0x03,0x00,0x61,0x00,0x00,0x00,0x11,0x00,0x4e,0x46,0x45,0x26,0x25,0x25,0x36,0x25,0x26,0x35,0x14,0x24,0x0a, -0x07,0x1f,0x2b,0x01,0x14,0x15,0x0e,0x01,0x23,0x22,0x26,0x27,0x07,0x06,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x32,0x16,0x06,0x0f,0x01,0x1e,0x01,0x37,0x32,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x32,0x16,0x13,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x36,0x3f,0x01,0x26,0x23,0x22,0x06,0x07,0x06,0x07,0x06,0x2b,0x01,0x22,0x26,0x37, -0x35,0x3e,0x01,0x33,0x32,0x16,0x17,0x37,0x36,0x32,0x16,0x03,0x4b,0x24,0xe4,0x99,0x51,0x98,0x3c,0x48,0x0b,0x1c,0x16,0x16,0x0e,0xfa,0x0e,0x16,0x02,0x09,0x4d,0x28,0x64,0x37,0x4a,0x82,0x27,0x06,0x18,0x04,0x0c,0x6b,0x08,0x0a,0x0e,0x14,0x10,0xfa,0x0e,0x16,0x02,0x09,0x4d,0x52,0x70,0x4b,0x82,0x27,0x06,0x17,0x05,0x0c,0x6f,0x07, -0x0c,0x01,0x24,0xe6,0x99,0x51,0x9a,0x3c,0x48,0x0b,0x1c,0x18,0x01,0x05,0x03,0x01,0x96,0xba,0x3e,0x39,0x48,0x0b,0x16,0x0e,0xfa,0x0e,0x16,0x16,0x1c,0x0b,0x4d,0x24,0x2a,0x01,0x4a,0x3e,0x0a,0x38,0x0d,0x0c,0x01,0xb8,0xfa,0x0e,0x16,0x16,0x1c,0x0b,0x4d,0x4d,0x4a,0x3e,0x0a,0x38,0x0d,0x0c,0x06,0x04,0x96,0xba,0x3e,0x39,0x48,0x0b, -0x16,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x20,0x40,0x1d,0x18,0x10,0x08,0x00,0x04,0x00,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x13,0x4d,0x02,0x01,0x00,0x00,0x11,0x00,0x4e,0x35,0x35,0x35,0x33,0x04,0x07,0x1a,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36, -0x33,0x21,0x32,0x16,0x05,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0x59,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x0f,0x16,0xfe,0x0b,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x0f,0x16,0x02,0xe7,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x0e, -0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x00,0x00,0x01,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x0f,0x00,0x1a,0x40,0x17,0x08,0x00,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x13,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x35,0x33,0x02,0x07,0x18,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36, -0x33,0x21,0x32,0x16,0x03,0x59,0x14,0x10,0xfc,0xef,0x0f,0x14,0x01,0x16,0x0e,0x03,0x11,0x0f,0x16,0x02,0xe7,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x00,0x01,0xff,0xfe,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x30,0x00,0x3a,0x40,0x37,0x2d,0x01,0x01,0x05,0x09,0x01,0x00,0x01,0x02,0x4c,0x00,0x00,0x01,0x03,0x01,0x00, -0x03,0x80,0x00,0x03,0x02,0x01,0x03,0x02,0x7e,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x11,0x04,0x4e,0x27,0x27,0x13,0x27,0x24,0x33,0x06,0x07,0x1c,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3f,0x01,0x26,0x23,0x22,0x0e,0x02,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x3e,0x01, -0x1f,0x01,0x1e,0x01,0x07,0x0e,0x01,0x07,0x22,0x2e,0x02,0x3e,0x03,0x33,0x32,0x16,0x17,0x37,0x36,0x16,0x03,0x59,0x14,0x10,0xfa,0x17,0x13,0x11,0x4d,0x52,0x70,0x3a,0x6a,0x4c,0x2e,0x2e,0x4c,0x6a,0x3a,0x42,0x76,0x29,0x04,0x11,0x06,0x4c,0x05,0x02,0x06,0x3c,0xae,0x5f,0x57,0xa0,0x70,0x48,0x04,0x40,0x78,0x98,0x5b,0x52,0x98,0x3d, -0x48,0x11,0x2c,0x02,0xc3,0xfa,0x0e,0x16,0x2d,0x10,0x4d,0x4d,0x2e,0x4c,0x6a,0x74,0x6a,0x4c,0x2e,0x3a,0x35,0x06,0x01,0x05,0x4d,0x04,0x0e,0x06,0x4a,0x50,0x01,0x44,0x74,0x9e,0xae,0x9e,0x74,0x44,0x3e,0x39,0x48,0x12,0x13,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x01,0xe6,0x00,0x15,0x00,0x19,0x40,0x16,0x0f,0x01,0x00,0x01, -0x01,0x4c,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x14,0x17,0x14,0x03,0x07,0x19,0x2b,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x37,0x36,0x32,0x1f,0x01,0x16,0x02,0x58,0x06,0xfe,0xfc,0x05,0x10,0x04,0xfe,0xfc,0x06,0x06,0x1c,0x05,0x0e,0x06,0xdb,0xdc,0x05,0x10,0x04,0x1c,0x06, -0x01,0xb7,0x07,0x05,0xfe,0xfb,0x05,0x05,0x01,0x05,0x05,0x0e,0x06,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x00,0x00,0x00,0x03,0xff,0xfd,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x0c,0x00,0x1c,0x00,0x2e,0x00,0x41,0x40,0x3e,0x28,0x1e,0x02,0x05,0x04,0x16,0x15,0x0e,0x03,0x03,0x02,0x02,0x4c,0x00,0x05,0x00,0x02,0x03,0x05,0x02, -0x67,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x13,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x11,0x01,0x4e,0x01,0x00,0x2c,0x2a,0x23,0x21,0x1a,0x18,0x12,0x10,0x07,0x06,0x00,0x0c,0x01,0x0c,0x07,0x07,0x16,0x2b,0x01,0x32,0x1e,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x13,0x35,0x34,0x26,0x2b,0x01,0x22,0x06,0x07, -0x15,0x14,0x16,0x17,0x33,0x32,0x36,0x27,0x13,0x34,0x27,0x26,0x2b,0x01,0x22,0x07,0x06,0x15,0x13,0x14,0x16,0x3b,0x01,0x32,0x36,0x01,0xad,0x74,0xc6,0x72,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xc1,0x0a,0x07,0x6b,0x08,0x0a,0x01,0x0c,0x07,0x6b,0x07,0x0a,0x01,0x0a,0x06,0x05,0x08,0x7b,0x08,0x05,0x06,0x0a,0x0a,0x09,0x67,0x08, -0x0a,0x03,0x0b,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0xfd,0x48,0x6a,0x08,0x0a,0x0a,0x08,0x6a,0x08,0x0a,0x01,0x0c,0xc7,0x01,0x5a,0x07,0x03,0x05,0x05,0x03,0x07,0xfe,0xa6,0x06,0x08,0x08,0x00,0x00,0x01,0x00,0x00,0xff,0xef,0x02,0xd4,0x02,0x86,0x00,0x24,0x00,0x26,0x40,0x23,0x22,0x19,0x10,0x07,0x04,0x00,0x02,0x01, -0x4c,0x03,0x01,0x02,0x00,0x00,0x02,0x59,0x03,0x01,0x02,0x02,0x00,0x61,0x01,0x01,0x00,0x02,0x00,0x51,0x14,0x1c,0x14,0x14,0x04,0x07,0x1a,0x2b,0x25,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x07,0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x27,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x37,0x36,0x32,0x1f,0x01,0x16,0x14,0x0f,0x01,0x17, -0x16,0x02,0xd4,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa4,0xa4,0x10,0x10,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x0f,0x0f,0xa4,0xa4,0x0f,0x70,0x16,0x10,0x4c,0x0f,0x0f,0xa5,0xa5,0x0f,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa4,0xa4,0x10,0x10,0x4c,0x0f,0x2e, -0x0f,0xa4,0xa4,0x0f,0x00,0x03,0x00,0x00,0xff,0xb1,0x03,0xc5,0x03,0x0b,0x00,0x0c,0x00,0x1c,0x00,0x2c,0x00,0x34,0x40,0x31,0x25,0x1d,0x02,0x04,0x05,0x00,0x01,0x01,0x00,0x02,0x4c,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x67,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e, -0x35,0x35,0x35,0x35,0x24,0x32,0x06,0x07,0x1c,0x2b,0x01,0x34,0x26,0x07,0x23,0x22,0x0e,0x01,0x16,0x17,0x33,0x32,0x36,0x25,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x37,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x02,0x5f,0x14,0x10,0x8e,0x0f,0x14,0x02,0x18, -0x0d,0x8e,0x0f,0x16,0x01,0x41,0x16,0x0e,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x23,0x14,0x0f,0xfc,0xa6,0x0e,0x16,0x01,0x14,0x0f,0x03,0x5a,0x0e,0x16,0x01,0x82,0x0e,0x16,0x01,0x14,0x1e,0x14,0x01,0x16,0x79,0xfd,0xe8,0x0e,0x16,0x16,0x0e,0x02,0x18,0x0e,0x16,0x16,0xec,0x8f,0x0e,0x16,0x16,0x0e,0x8f,0x0e,0x16,0x16, -0x00,0x05,0x00,0x00,0xff,0x88,0x03,0xac,0x03,0x34,0x00,0x43,0x00,0x4c,0x00,0x55,0x00,0x5e,0x00,0x67,0x00,0x61,0x40,0x5e,0x3c,0x33,0x02,0x05,0x0a,0x1a,0x0f,0x02,0x01,0x05,0x2b,0x22,0x19,0x10,0x09,0x00,0x06,0x08,0x01,0x03,0x4c,0x07,0x01,0x05,0x03,0x01,0x01,0x08,0x05,0x01,0x67,0x00,0x0a,0x0f,0x0c,0x02,0x08,0x09,0x0a,0x08, -0x69,0x10,0x0e,0x0d,0x03,0x09,0x04,0x02,0x02,0x00,0x09,0x00,0x65,0x00,0x0b,0x0b,0x06,0x61,0x00,0x06,0x06,0x12,0x0b,0x4e,0x60,0x5f,0x64,0x63,0x5f,0x67,0x60,0x67,0x5d,0x5c,0x59,0x58,0x54,0x53,0x50,0x4f,0x4b,0x4a,0x15,0x36,0x16,0x37,0x18,0x36,0x16,0x36,0x14,0x11,0x07,0x1f,0x2b,0x25,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34, -0x37,0x35,0x34,0x2b,0x01,0x22,0x27,0x15,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x35,0x06,0x2b,0x01,0x22,0x0e,0x01,0x1d,0x01,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x35,0x34,0x36,0x3b,0x01,0x32,0x3d,0x01,0x26,0x35,0x34,0x36,0x32,0x16,0x15,0x14,0x07,0x15,0x14,0x3b,0x01,0x32,0x16,0x15,0x05,0x34,0x26,0x22,0x06, -0x14,0x16,0x32,0x36,0x13,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13,0x34,0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x05,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x03,0x64,0x48,0x46,0x64,0x46,0x48,0x4c,0x64,0x2c,0x22,0x48,0x46,0x64,0x46,0x48,0x1e,0x2e,0x64,0x22,0x26,0x06,0x48,0x46,0x64,0x46,0x48,0x56,0x58,0x64,0x4c,0x48,0x46, -0x64,0x46,0x48,0x4e,0x64,0x56,0x56,0xfd,0x5a,0x2a,0x38,0x28,0x28,0x38,0x2a,0xd4,0x28,0x38,0x2a,0x2a,0x38,0x28,0x8a,0x2a,0x38,0x28,0x28,0x38,0x2a,0x01,0x18,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x70,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x72,0x4e,0x0c,0xcc,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0xcc,0x0c,0x26,0x1c,0x0c,0x72, -0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x72,0x40,0x6c,0x34,0x8c,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c,0x22,0x8c,0x34,0x6c,0x40,0xe2,0x1e,0x28,0x28,0x3a,0x28,0x28,0x02,0xd8,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x26,0x1e,0x28,0x28,0x3a,0x28,0x28,0x28,0x28,0x3a,0x28,0x28,0x3a,0x28,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x59, -0x03,0x0b,0x00,0x23,0x00,0x33,0x00,0x3e,0x40,0x3b,0x0d,0x01,0x00,0x01,0x1f,0x01,0x04,0x03,0x02,0x4c,0x02,0x01,0x00,0x01,0x03,0x01,0x00,0x03,0x80,0x05,0x01,0x03,0x04,0x01,0x03,0x04,0x7e,0x00,0x01,0x01,0x07,0x5f,0x00,0x07,0x07,0x13,0x4d,0x00,0x04,0x04,0x06,0x60,0x00,0x06,0x06,0x11,0x06,0x4e,0x35,0x35,0x23,0x33,0x16,0x23, -0x24,0x23,0x08,0x07,0x1e,0x2b,0x01,0x35,0x34,0x26,0x07,0x23,0x35,0x34,0x26,0x27,0x23,0x22,0x06,0x07,0x15,0x23,0x22,0x06,0x07,0x15,0x14,0x16,0x37,0x33,0x15,0x14,0x16,0x3b,0x01,0x32,0x36,0x37,0x35,0x33,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0xca,0x14,0x0f,0xb3,0x16, -0x0e,0x47,0x0f,0x14,0x01,0xb2,0x0f,0x14,0x01,0x16,0x0e,0xb2,0x16,0x0e,0x47,0x0f,0x14,0x01,0xb3,0x0e,0x16,0x8e,0x5e,0x43,0xfd,0xe9,0x43,0x5e,0x5e,0x43,0x02,0x17,0x43,0x5e,0x01,0x3a,0x48,0x0e,0x16,0x01,0xb3,0x0f,0x14,0x01,0x16,0x0e,0xb3,0x14,0x0f,0x48,0x0e,0x16,0x01,0xb3,0x0e,0x16,0x16,0x0e,0xb3,0x14,0x01,0x3f,0xfd,0xe8, -0x42,0x5e,0x01,0x60,0x41,0x02,0x18,0x42,0x5e,0x01,0x60,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x1f,0x40,0x1c,0x00,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x35,0x35,0x26,0x33,0x04,0x07,0x1a,0x2b,0x01,0x35,0x34,0x26,0x07, -0x21,0x22,0x06,0x07,0x15,0x14,0x16,0x37,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0xca,0x14,0x0f,0xfe,0x0c,0x0f,0x14,0x01,0x16,0x0e,0x01,0xf4,0x0e,0x16,0x8e,0x5e,0x43,0xfd,0xe9,0x43,0x5e,0x5e,0x43,0x02,0x17,0x43,0x5e,0x01,0x3a,0x48,0x0e,0x16,0x01,0x14,0x0f,0x48, -0x0e,0x16,0x01,0x14,0x01,0x3f,0xfd,0xe8,0x42,0x5e,0x01,0x60,0x41,0x02,0x18,0x42,0x5e,0x01,0x60,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x07,0xb3,0xdb,0xee,0x5f,0x0f,0x3c,0xf5,0x00,0x0f,0x03,0xe8,0x00,0x00,0x00,0x00,0xe4,0x2d,0xc8,0x06,0x00,0x00,0x00,0x00,0xe4,0x2d,0xc8,0x07,0xff,0xf5,0xff,0x6a,0x04,0x78,0x03,0x53, -0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x52,0xff,0x6a,0x00,0x00,0x04,0x76,0xff,0xf5,0xff,0xf5,0x04,0x78,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x03,0xe8,0x00,0x00,0x03,0x11,0x00,0x00,0x02,0x80,0x00,0x00,0x03,0xe8,0x00,0x00, -0x04,0x2f,0xff,0xff,0x00,0xf0,0x00,0x00,0x04,0x76,0xff,0xff,0x03,0xe8,0xff,0xff,0x03,0xe8,0x00,0x00,0x02,0x44,0x00,0x00,0x02,0x44,0x00,0x00,0x03,0x59,0xff,0xfd,0x02,0x3b,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0x11,0x00,0x00,0x03,0xac,0x00,0x00,0x03,0xe8,0x00,0x00,0x00,0xdc,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00, -0x02,0x3b,0xff,0xff,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00,0x03,0x98,0xff,0xfc,0x03,0x59,0x00,0x00,0x03,0xca,0x00,0x00,0x04,0x2f,0xff,0xff,0x03,0xa0,0x00,0x00,0x02,0xf8,0x00,0x00,0x03,0xd4,0xff,0xf7,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0xff,0xff,0x02,0x82,0x00,0x00, -0x02,0xda,0x00,0x00,0x04,0x2f,0xff,0xff,0x02,0xf8,0x00,0x00,0x03,0x59,0xff,0xfd,0x03,0x59,0x00,0x00,0x03,0x59,0xff,0xff,0x02,0xda,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x02,0xf8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0xff,0xf5,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0x11,0x00,0x00, -0x03,0x11,0x00,0x00,0x02,0x82,0x00,0x00,0x03,0x42,0x00,0x00,0x04,0x2f,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe7,0xff,0xfe,0x03,0x59,0x00,0x00,0x03,0x11,0x00,0x00,0x02,0x3b,0xff,0xff,0x03,0x98,0xff,0xfc,0x03,0x59,0x00,0x00,0x02,0x82,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0xe8,0xff,0xff, -0x03,0x59,0xff,0xfd,0x02,0x82,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0xff,0xfe,0x02,0x82,0x00,0x00,0x03,0x59,0xff,0xfd,0x03,0x11,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xac,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0xe0,0x01,0x76,0x01,0xf0, -0x02,0x46,0x02,0x9e,0x02,0xc4,0x03,0x10,0x03,0x46,0x03,0x68,0x03,0x8c,0x03,0xb8,0x04,0x42,0x05,0x04,0x05,0x60,0x05,0xf4,0x06,0x18,0x06,0x42,0x06,0x64,0x06,0x8e,0x06,0xc6,0x06,0xfe,0x07,0xa6,0x07,0xf8,0x08,0xa0,0x08,0xf2,0x09,0x20,0x09,0x42,0x09,0x8e,0x09,0xd6,0x0a,0x98,0x0b,0x82,0x0c,0x0e,0x0c,0xfa,0x0d,0x3e,0x0d,0x64, -0x0d,0xc6,0x0e,0x2a,0x0e,0x6c,0x0f,0x1e,0x0f,0xce,0x0f,0xf6,0x10,0x4a,0x11,0x7c,0x11,0x9a,0x11,0xd2,0x12,0x3c,0x12,0x98,0x12,0xf8,0x14,0x00,0x14,0x80,0x14,0xe0,0x15,0x1a,0x15,0xde,0x16,0x6a,0x16,0xc0,0x17,0xce,0x18,0x30,0x18,0x88,0x18,0xa6,0x18,0xe4,0x19,0x80,0x19,0xe8,0x1a,0x3c,0x1a,0xb8,0x1b,0x48,0x1b,0x7c,0x1b,0xd0, -0x1c,0x32,0x1c,0xc0,0x1d,0x04,0x1d,0x2e,0x1d,0x94,0x1d,0xca,0x1e,0x32,0x1e,0x80,0x1e,0xde,0x1f,0x9a,0x20,0x04,0x20,0x48,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x90,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x00,0x7b,0x00,0x8d,0x00,0x00,0x00,0xba,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0xde,0x00,0x01, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x35,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x00,0x3d,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x08,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x00, -0x00,0x05,0x00,0x0b,0x00,0x54,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x08,0x00,0x5f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x2b,0x00,0x67,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x13,0x00,0x92,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x6a,0x00,0xa5,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x10, -0x01,0x0f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x01,0x1f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x10,0x01,0x2d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x10,0x01,0x3d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x16,0x01,0x4d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x10,0x01,0x63,0x00,0x03, -0x00,0x01,0x04,0x09,0x00,0x0a,0x00,0x56,0x01,0x73,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x26,0x01,0xc9,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x43,0x29,0x20,0x32,0x30,0x32,0x35,0x20,0x62,0x79,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x20,0x40,0x20,0x66, -0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x2e,0x63,0x6f,0x6d,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x47,0x65,0x6e, -0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x76,0x67,0x32,0x74,0x74,0x66,0x20,0x66,0x72,0x6f,0x6d,0x20,0x46,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x20,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x2e,0x63,0x6f,0x6d,0x00,0x43,0x00,0x6f,0x00, -0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x28,0x00,0x43,0x00,0x29,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x32,0x00,0x35,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x69,0x00,0x6e,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x61,0x00,0x75,0x00,0x74,0x00, -0x68,0x00,0x6f,0x00,0x72,0x00,0x73,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00, -0x61,0x00,0x72,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00,0x2e,0x00,0x30,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00, -0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x47,0x00,0x65,0x00,0x6e,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x73,0x00,0x76,0x00,0x67,0x00,0x32,0x00,0x74,0x00,0x74,0x00,0x66,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x46,0x00, -0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x2e,0x00, -0x63,0x00,0x6f,0x00,0x6d,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c, -0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x01,0x2c, -0x01,0x2d,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x01,0x32,0x01,0x33,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41,0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c, -0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50,0x01,0x51,0x01,0x52,0x00,0x0b,0x63,0x68,0x65,0x63,0x6b,0x2d,0x65,0x6d,0x70,0x74,0x79,0x0d,0x66,0x6c,0x6f,0x77,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x04,0x64,0x6f,0x63,0x73,0x07,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x09,0x66,0x6c,0x6f,0x77,0x2d,0x6c,0x69,0x6e,0x65,0x0e,0x77, -0x69,0x6e,0x64,0x6f,0x77,0x2d,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x0f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2d,0x6d,0x69,0x6e,0x69,0x6d,0x69,0x7a,0x65,0x04,0x63,0x75,0x62,0x65,0x04,0x70,0x6c,0x75,0x73,0x05,0x6d,0x69,0x6e,0x75,0x73,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x08,0x64,0x6f,0x77,0x6e,0x2d,0x64,0x69,0x72,0x05,0x63,0x68, -0x65,0x63,0x6b,0x0b,0x74,0x72,0x61,0x73,0x68,0x2d,0x65,0x6d,0x70,0x74,0x79,0x04,0x75,0x73,0x65,0x72,0x09,0x62,0x72,0x69,0x65,0x66,0x63,0x61,0x73,0x65,0x03,0x64,0x6f,0x74,0x08,0x6c,0x65,0x66,0x74,0x2d,0x64,0x69,0x72,0x09,0x72,0x69,0x67,0x68,0x74,0x2d,0x64,0x69,0x72,0x06,0x75,0x70,0x2d,0x64,0x69,0x72,0x0a,0x61,0x6e,0x67, -0x6c,0x65,0x2d,0x6c,0x65,0x66,0x74,0x0b,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x72,0x69,0x67,0x68,0x74,0x0c,0x68,0x65,0x6c,0x70,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x03,0x74,0x61,0x67,0x04,0x67,0x72,0x69,0x64,0x0b,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x65,0x6e,0x06,0x66,0x6f,0x6c,0x64,0x65,0x72,0x09,0x64,0x6f,0x77, -0x6e,0x2d,0x62,0x6f,0x6c,0x64,0x07,0x70,0x61,0x6c,0x65,0x74,0x74,0x65,0x07,0x64,0x6f,0x63,0x2d,0x69,0x6e,0x76,0x03,0x63,0x6f,0x67,0x02,0x74,0x68,0x0a,0x62,0x69,0x6e,0x6f,0x63,0x75,0x6c,0x61,0x72,0x73,0x04,0x6c,0x69,0x73,0x74,0x04,0x6c,0x6f,0x63,0x6b,0x09,0x6c,0x65,0x66,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x07,0x64,0x65,0x73, -0x6b,0x74,0x6f,0x70,0x06,0x73,0x65,0x61,0x72,0x63,0x68,0x0c,0x63,0x69,0x72,0x63,0x6c,0x65,0x2d,0x65,0x6d,0x70,0x74,0x79,0x06,0x70,0x65,0x6e,0x63,0x69,0x6c,0x03,0x68,0x64,0x64,0x0a,0x72,0x69,0x67,0x68,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x0b,0x63,0x6c,0x6f,0x73,0x65,0x5f,0x70,0x61,0x6e,0x65,0x6c,0x08,0x73,0x74,0x65,0x70,0x69, -0x6e,0x74,0x6f,0x07,0x75,0x70,0x2d,0x62,0x6f,0x6c,0x64,0x02,0x6f,0x6b,0x09,0x61,0x74,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x10,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x5f,0x73,0x70,0x6c,0x69,0x74,0x0e,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x5f,0x73,0x70,0x6c,0x69,0x74,0x08,0x73,0x74,0x65,0x70,0x6f,0x76,0x65, -0x72,0x10,0x70,0x6c,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x2d,0x61,0x6c,0x74,0x11,0x6d,0x69,0x6e,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x2d,0x61,0x6c,0x74,0x08,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x75,0x70,0x09,0x63,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x11,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f, -0x70,0x65,0x6e,0x2d,0x65,0x6d,0x70,0x74,0x79,0x0c,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x65,0x6d,0x70,0x74,0x79,0x07,0x73,0x74,0x65,0x70,0x6f,0x75,0x74,0x07,0x67,0x6c,0x61,0x73,0x73,0x65,0x73,0x03,0x64,0x6f,0x63,0x04,0x70,0x6c,0x61,0x79,0x06,0x74,0x6f,0x2d,0x65,0x6e,0x64,0x0c,0x69,0x6e,0x66,0x6f,0x2d,0x63,0x69,0x72,0x63, -0x6c,0x65,0x64,0x03,0x63,0x63,0x77,0x0d,0x6c,0x6f,0x63,0x6b,0x2d,0x6f,0x70,0x65,0x6e,0x2d,0x61,0x6c,0x74,0x06,0x74,0x61,0x72,0x67,0x65,0x74,0x06,0x66,0x6c,0x6f,0x70,0x70,0x79,0x0f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2d,0x6d,0x61,0x78,0x69,0x6d,0x69,0x7a,0x65,0x0b,0x64,0x6f,0x74,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x03, -0x70,0x69,0x6e,0x09,0x61,0x72,0x72,0x6f,0x77,0x73,0x2d,0x63,0x77,0x05,0x70,0x61,0x75,0x73,0x65,0x04,0x73,0x74,0x6f,0x70,0x02,0x63,0x77,0x0a,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x64,0x6f,0x77,0x6e,0x11,0x61,0x74,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x06,0x63,0x61,0x6e,0x63,0x65,0x6c,0x03, -0x62,0x6f,0x78,0x09,0x66,0x6c,0x6f,0x77,0x2d,0x74,0x72,0x65,0x65,0x0c,0x70,0x6c,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x0d,0x6d,0x69,0x6e,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x01,0x1e,0x00,0x7d,0x00,0x7d,0x01,0x1e,0x03,0x18,0xff,0xb1,0x03,0x38,0x03,0x0b,0xff,0xb1,0xff,0xb1,0x03,0x18,0xff,0xb1,0x03,0x38,0x03,0x0b,0xff,0xb1,0xff,0xb1,0xb0,0x00,0x2c,0x20,0xb0,0x00,0x55,0x58,0x45,0x59,0x20,0x20,0x4b,0xb8,0x00,0x0e,0x51,0x4b,0xb0,0x06, -0x53,0x5a,0x58,0xb0,0x34,0x1b,0xb0,0x28,0x59,0x60,0x66,0x20,0x8a,0x55,0x58,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x62,0x1b,0x21,0x21,0xb0,0x00,0x59,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x01,0x2c,0xb0,0x20,0x60,0x66,0x2d,0xb0,0x02,0x2c,0x23,0x21,0x23,0x21,0x2d,0xb0, -0x03,0x2c,0x20,0x64,0xb3,0x03,0x14,0x15,0x00,0x42,0x43,0xb0,0x13,0x43,0x20,0x60,0x60,0x42,0xb1,0x02,0x14,0x43,0x42,0xb1,0x25,0x03,0x43,0xb0,0x02,0x43,0x54,0x78,0x20,0xb0,0x0c,0x23,0xb0,0x02,0x43,0x43,0x61,0x64,0xb0,0x04,0x50,0x78,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb0,0x21,0x65,0x1c,0x21,0xb0,0x02,0x43,0x43,0xb2,0x0e, -0x15,0x01,0x42,0x1c,0x20,0xb0,0x02,0x43,0x23,0x42,0xb2,0x13,0x01,0x13,0x43,0x60,0x42,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb2,0x16,0x01,0x02,0x43,0x60,0x42,0x2d,0xb0,0x04,0x2c,0xb0,0x03,0x2b,0xb0,0x15,0x43,0x58,0x23,0x21,0x23,0x21,0xb0,0x16,0x43,0x43,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x1b,0x20,0x64,0x20,0xb0,0xc0,0x50, -0xb0,0x04,0x26,0x5a,0xb2,0x28,0x01,0x0d,0x43,0x45,0x63,0x45,0xb0,0x06,0x45,0x58,0x21,0xb0,0x03,0x25,0x59,0x52,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20,0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x61,0x64,0xb0,0x28,0x50,0x58, -0x21,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x20,0xb0,0x30,0x50,0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36,0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x02,0x25, -0xb0,0x0c,0x43,0x63,0xb0,0x00,0x52,0x58,0xb0,0x00,0x4b,0xb0,0x0a,0x50,0x58,0x21,0xb0,0x0c,0x43,0x1b,0x4b,0xb0,0x1e,0x50,0x58,0x21,0xb0,0x1e,0x4b,0x61,0xb8,0x10,0x00,0x63,0xb0,0x0c,0x43,0x63,0xb8,0x05,0x00,0x62,0x59,0x59,0x64,0x61,0x59,0xb0,0x01,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x20,0x64,0xb0,0x16, -0x43,0x23,0x42,0x59,0x2d,0xb0,0x05,0x2c,0x20,0x45,0x20,0xb0,0x04,0x25,0x61,0x64,0x20,0xb0,0x07,0x43,0x50,0x58,0xb0,0x07,0x23,0x42,0xb0,0x08,0x23,0x42,0x1b,0x21,0x21,0x59,0xb0,0x01,0x60,0x2d,0xb0,0x06,0x2c,0x23,0x21,0x23,0x21,0xb0,0x03,0x2b,0x20,0x64,0xb1,0x07,0x62,0x42,0x20,0xb0,0x08,0x23,0x42,0xb0,0x06,0x45,0x58,0x1b, -0xb1,0x01,0x0d,0x43,0x45,0x63,0xb1,0x01,0x0d,0x43,0xb0,0x01,0x60,0x45,0x63,0xb0,0x05,0x2a,0x21,0x20,0xb0,0x08,0x43,0x20,0x8a,0x20,0x8a,0xb0,0x01,0x2b,0xb1,0x30,0x05,0x25,0xb0,0x04,0x26,0x51,0x58,0x60,0x50,0x1b,0x61,0x52,0x59,0x58,0x23,0x59,0x21,0x59,0x20,0xb0,0x40,0x53,0x58,0xb0,0x01,0x2b,0x1b,0x21,0xb0,0x40,0x59,0x23, -0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x07,0x2c,0xb0,0x09,0x43,0x2b,0xb2,0x00,0x02,0x00,0x43,0x60,0x42,0x2d,0xb0,0x08,0x2c,0xb0,0x09,0x23,0x42,0x23,0x20,0xb0,0x00,0x23,0x42,0x61,0xb0,0x02,0x62,0x66,0xb0,0x01,0x63,0xb0,0x01,0x60,0xb0,0x07,0x2a,0x2d,0xb0,0x09,0x2c,0x20,0x20,0x45,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00, -0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0a,0x2c,0xb2,0x09,0x0e,0x00,0x43,0x45,0x42,0x2a,0x21,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0b,0x2c,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0c,0x2c,0x20,0x20,0x45,0x20,0xb0, -0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01, -0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a,0x23,0x61,0x20,0x64,0xb0,0x24,0x50,0x58,0xb0,0x00,0x1b,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0e,0x2c,0x20,0xb0,0x00,0x23,0x42,0xb3,0x0d,0x0c,0x00,0x03,0x45,0x50,0x58,0x21,0x1b,0x23,0x21, -0x59,0x2a,0x21,0x2d,0xb0,0x0f,0x2c,0xb1,0x02,0x02,0x45,0xb0,0x64,0x61,0x44,0x2d,0xb0,0x10,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0f,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0f,0x23,0x42,0x59,0xb0,0x10,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x10,0x23,0x42,0x59,0x2d,0xb0,0x11,0x2c,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63, -0x20,0xb8,0x04,0x00,0x63,0x8a,0x23,0x61,0xb0,0x11,0x43,0x60,0x20,0x8a,0x60,0x20,0xb0,0x11,0x23,0x42,0x23,0x2d,0xb0,0x12,0x2c,0x4b,0x54,0x58,0xb1,0x04,0x64,0x44,0x59,0x24,0xb0,0x0d,0x65,0x23,0x78,0x2d,0xb0,0x13,0x2c,0x4b,0x51,0x58,0x4b,0x53,0x58,0xb1,0x04,0x64,0x44,0x59,0x1b,0x21,0x59,0x24,0xb0,0x13,0x65,0x23,0x78,0x2d, -0xb0,0x14,0x2c,0xb1,0x00,0x12,0x43,0x55,0x58,0xb1,0x12,0x12,0x43,0xb0,0x01,0x61,0x42,0xb0,0x11,0x2b,0x59,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb1,0x0f,0x02,0x25,0x42,0xb1,0x10,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb1,0x01,0x00,0x43,0x60,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0, -0x10,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0,0x10,0x2a,0x21,0x1b,0xb1,0x01,0x00,0x43,0x60,0xb0,0x02,0x25,0x42,0xb0,0x02,0x25,0x61,0xb0,0x10,0x2a,0x21,0x59,0xb0,0x0f,0x43,0x47,0xb0,0x10,0x43,0x47,0x60,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x20,0xb0,0x0e,0x43,0x63, -0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb1,0x00,0x00,0x13,0x23,0x44,0xb0,0x01,0x43,0xb0,0x00,0x3e,0xb2,0x01,0x01,0x01,0x43,0x60,0x42,0x2d,0xb0,0x15,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x01,0x60, -0x42,0x20,0x60,0xb7,0x18,0x18,0x01,0x00,0x11,0x00,0x13,0x00,0x42,0x42,0x42,0x8a,0x60,0x20,0xb0,0x14,0x23,0x42,0xb0,0x01,0x61,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x16,0x2c,0xb1,0x00,0x15,0x2b,0x2d,0xb0,0x17,0x2c,0xb1,0x01,0x15,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x02,0x15,0x2b,0x2d,0xb0,0x19,0x2c,0xb1, -0x03,0x15,0x2b,0x2d,0xb0,0x1a,0x2c,0xb1,0x04,0x15,0x2b,0x2d,0xb0,0x1b,0x2c,0xb1,0x05,0x15,0x2b,0x2d,0xb0,0x1c,0x2c,0xb1,0x06,0x15,0x2b,0x2d,0xb0,0x1d,0x2c,0xb1,0x07,0x15,0x2b,0x2d,0xb0,0x1e,0x2c,0xb1,0x08,0x15,0x2b,0x2d,0xb0,0x1f,0x2c,0xb1,0x09,0x15,0x2b,0x2d,0xb0,0x2b,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63, -0xb0,0x06,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x5d,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2c,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x16,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x71,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2d,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x26,0x60,0x4b,0x54,0x58, -0x23,0x20,0x2e,0xb0,0x01,0x72,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x20,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x01,0x60,0x42,0x20,0x60,0xb0,0x01,0x61,0xb5,0x18,0x18,0x01,0x00,0x11,0x00,0x42,0x42,0x8a,0x60,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b, -0x1b,0x22,0x59,0x2d,0xb0,0x21,0x2c,0xb1,0x00,0x20,0x2b,0x2d,0xb0,0x22,0x2c,0xb1,0x01,0x20,0x2b,0x2d,0xb0,0x23,0x2c,0xb1,0x02,0x20,0x2b,0x2d,0xb0,0x24,0x2c,0xb1,0x03,0x20,0x2b,0x2d,0xb0,0x25,0x2c,0xb1,0x04,0x20,0x2b,0x2d,0xb0,0x26,0x2c,0xb1,0x05,0x20,0x2b,0x2d,0xb0,0x27,0x2c,0xb1,0x06,0x20,0x2b,0x2d,0xb0,0x28,0x2c,0xb1, -0x07,0x20,0x2b,0x2d,0xb0,0x29,0x2c,0xb1,0x08,0x20,0x2b,0x2d,0xb0,0x2a,0x2c,0xb1,0x09,0x20,0x2b,0x2d,0xb0,0x2e,0x2c,0x20,0x3c,0xb0,0x01,0x60,0x2d,0xb0,0x2f,0x2c,0x20,0x60,0xb0,0x18,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0x61,0xb0,0x01,0x60,0xb0,0x2e,0x2a,0x21,0x2d,0xb0,0x30,0x2c,0xb0,0x2f,0x2b,0xb0,0x2f, -0x2a,0x2d,0xb0,0x31,0x2c,0x20,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, -0x63,0x60,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x32,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x33,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x16,0xb0, -0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x34,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x35,0x2c,0x00,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x45,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62, -0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x00,0x16,0xb4,0x00,0x00,0x00,0x00,0x00,0x44,0x3e,0x23,0x38,0xb1,0x34,0x01,0x15,0x2a,0x21,0x2d,0xb0,0x36,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, -0x63,0x60,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x37,0x2c,0x2e,0x17,0x3c,0x2d,0xb0,0x38,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x39,0x2c,0xb1,0x02,0x00,0x16,0x25,0x20, -0x2e,0x20,0x47,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0x49,0x8a,0x8a,0x47,0x23,0x47,0x23,0x61,0x20,0x58,0x62,0x1b,0x21,0x59,0xb0,0x01,0x23,0x42,0xb2,0x38,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x3a,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43, -0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x3b,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3, -0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x0a,0x43,0x20,0x8a,0x23,0x47,0x23,0x47,0x23,0x61,0x23,0x46,0x60,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50, -0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0a,0x43,0x46,0xb0,0x02,0x25,0xb0,0x0a,0x43,0x47,0x23,0x47,0x23,0x61,0x60,0x20,0xb0,0x06,0x43,0xb0, -0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x06,0x43,0x60,0xb0,0x01,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0, -0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x59,0x2d,0xb0,0x3c,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0x20,0x20,0xb0,0x05,0x26,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x23,0x3c,0x38,0x2d,0xb0,0x3d,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x23, -0x42,0x20,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x2d,0xb0,0x3e,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x03,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x05,0x25,0xb0,0x04,0x25,0x47, -0x23,0x47,0x23,0x61,0xb0,0x06,0x25,0xb0,0x05,0x25,0x49,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x20,0x58,0x62,0x1b,0x21,0x59,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2d,0xb0,0x3f,0x2c,0xb0, -0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x43,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x40,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52, -0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x41,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x42,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c, -0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x43,0x2c,0xb0,0x3a,0x2b,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x44,0x2c, -0xb0,0x3b,0x2b,0x8a,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x8a,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x45,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x26,0x20,0x20,0x20,0x46,0x23, -0x47,0x61,0xb0,0x0c,0x23,0x42,0x2e,0x47,0x23,0x47,0x23,0x61,0xb0,0x0b,0x43,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x46,0x2c,0xb1,0x0a,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b, -0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0x47,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23, -0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x21,0x59,0xb1, -0x30,0x01,0x14,0x2b,0x2d,0xb0,0x47,0x2c,0xb1,0x00,0x3a,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x48,0x2c,0xb1,0x00,0x3b,0x2b,0x21,0x23,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x49,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00, -0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4a,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4b,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x37,0x2a,0x2d,0xb0,0x4c,0x2c,0xb0,0x39,0x2a,0x2d,0xb0,0x4d,0x2c,0xb0,0x00,0x16,0x45,0x23,0x20,0x2e,0x20, -0x46,0x8a,0x23,0x61,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x4e,0x2c,0xb0,0x0a,0x23,0x42,0xb0,0x4d,0x2b,0x2d,0xb0,0x4f,0x2c,0xb2,0x00,0x00,0x46,0x2b,0x2d,0xb0,0x50,0x2c,0xb2,0x00,0x01,0x46,0x2b,0x2d,0xb0,0x51,0x2c,0xb2,0x01,0x00,0x46,0x2b,0x2d,0xb0,0x52,0x2c,0xb2,0x01,0x01,0x46,0x2b,0x2d,0xb0,0x53,0x2c,0xb2,0x00,0x00, -0x47,0x2b,0x2d,0xb0,0x54,0x2c,0xb2,0x00,0x01,0x47,0x2b,0x2d,0xb0,0x55,0x2c,0xb2,0x01,0x00,0x47,0x2b,0x2d,0xb0,0x56,0x2c,0xb2,0x01,0x01,0x47,0x2b,0x2d,0xb0,0x57,0x2c,0xb3,0x00,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x58,0x2c,0xb3,0x00,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x59,0x2c,0xb3,0x01,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x5a,0x2c,0xb3, -0x01,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x5b,0x2c,0xb3,0x00,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5c,0x2c,0xb3,0x00,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5d,0x2c,0xb3,0x01,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5e,0x2c,0xb3,0x01,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5f,0x2c,0xb2,0x00,0x00,0x45,0x2b,0x2d,0xb0,0x60,0x2c,0xb2,0x00,0x01,0x45,0x2b,0x2d, -0xb0,0x61,0x2c,0xb2,0x01,0x00,0x45,0x2b,0x2d,0xb0,0x62,0x2c,0xb2,0x01,0x01,0x45,0x2b,0x2d,0xb0,0x63,0x2c,0xb2,0x00,0x00,0x48,0x2b,0x2d,0xb0,0x64,0x2c,0xb2,0x00,0x01,0x48,0x2b,0x2d,0xb0,0x65,0x2c,0xb2,0x01,0x00,0x48,0x2b,0x2d,0xb0,0x66,0x2c,0xb2,0x01,0x01,0x48,0x2b,0x2d,0xb0,0x67,0x2c,0xb3,0x00,0x00,0x00,0x44,0x2b,0x2d, -0xb0,0x68,0x2c,0xb3,0x00,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x69,0x2c,0xb3,0x01,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x6a,0x2c,0xb3,0x01,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x6b,0x2c,0xb3,0x00,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6c,0x2c,0xb3,0x00,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6d,0x2c,0xb3,0x01,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6e,0x2c,0xb3, -0x01,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6f,0x2c,0xb1,0x00,0x3c,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x70,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x71,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x72,0x2c,0xb0,0x00,0x16,0xb1,0x00,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x73,0x2c,0xb1,0x01,0x3c,0x2b,0xb0, -0x40,0x2b,0x2d,0xb0,0x74,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x75,0x2c,0xb0,0x00,0x16,0xb1,0x01,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x76,0x2c,0xb1,0x00,0x3d,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x77,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x78,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x41,0x2b,0x2d, -0xb0,0x79,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7a,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7b,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x7c,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7d,0x2c,0xb1,0x00,0x3e,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x7e,0x2c,0xb1,0x00,0x3e, -0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7f,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x80,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x81,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x82,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x83,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x84,0x2c,0xb1, -0x00,0x3f,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x85,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x86,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x87,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x88,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x89,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x41,0x2b, -0x2d,0xb0,0x8a,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x8b,0x2c,0xb2,0x0b,0x00,0x03,0x45,0x50,0x58,0xb0,0x06,0x1b,0xb2,0x04,0x02,0x03,0x45,0x58,0x23,0x21,0x1b,0x21,0x59,0x59,0x42,0x2b,0xb0,0x08,0x65,0xb0,0x03,0x24,0x50,0x78,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x2d,0x00,0x4b,0xb8,0x00,0xc8,0x52,0x58,0xb1, -0x01,0x01,0x8e,0x59,0xb0,0x01,0xb9,0x08,0x00,0x08,0x00,0x63,0x70,0xb1,0x00,0x07,0x42,0xb2,0x19,0x01,0x00,0x2a,0xb1,0x00,0x07,0x42,0xb3,0x0d,0x09,0x01,0x0a,0x2a,0xb1,0x00,0x07,0x42,0xb3,0x16,0x06,0x01,0x0a,0x2a,0xb1,0x00,0x08,0x42,0xba,0x03,0x80,0x00,0x01,0x00,0x0b,0x2a,0xb1,0x00,0x09,0x42,0xba,0x00,0x80,0x00,0x01,0x00, -0x0b,0x2a,0xb9,0x00,0x03,0x00,0x00,0x44,0xb1,0x24,0x01,0x88,0x51,0x58,0xb0,0x40,0x88,0x58,0xb9,0x00,0x03,0x00,0x64,0x44,0xb1,0x28,0x01,0x88,0x51,0x58,0xb8,0x08,0x00,0x88,0x58,0xb9,0x00,0x03,0x00,0x00,0x44,0x59,0x1b,0xb1,0x27,0x01,0x88,0x51,0x58,0xba,0x08,0x80,0x00,0x01,0x04,0x40,0x88,0x63,0x54,0x58,0xb9,0x00,0x03,0x00, -0x00,0x44,0x59,0x59,0x59,0x59,0x59,0xb3,0x10,0x06,0x01,0x0e,0x2a,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0xb1,0x02,0x00,0x44,0xb3,0x05,0x64,0x06,0x00,0x44,0x44,0x00, -}; - -read_only global String8 rd_icon_font_bytes = {rd_icon_font_bytes__data, sizeof(rd_icon_font_bytes__data)}; -read_only global U8 rd_default_main_font_bytes__data[] = -{ -0x00,0x01,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x04,0x00,0x80,0x44,0x53,0x49,0x47,0x63,0xbc,0x04,0x48,0x00,0x0c,0x94,0x20,0x00,0x00,0x23,0xa0,0x47,0x44,0x45,0x46,0xb9,0xab,0xc5,0xc1,0x00,0x0c,0xb7,0xc0,0x00,0x00,0x03,0x58,0x47,0x50,0x4f,0x53,0x5b,0xad,0x7e,0xc2,0x00,0x0c,0xbb,0x18,0x00,0x01,0x4c,0xc8,0x47,0x53,0x55,0x42, -0x62,0x6c,0x1b,0xf3,0x00,0x0e,0x07,0xe0,0x00,0x00,0x8d,0x2e,0x4c,0x54,0x53,0x48,0x69,0x2b,0xe4,0xa7,0x00,0x00,0x55,0xe8,0x00,0x00,0x14,0xe4,0x4d,0x45,0x52,0x47,0x00,0x16,0x00,0x01,0x00,0x0e,0x95,0x10,0x00,0x00,0x00,0x0c,0x4f,0x53,0x2f,0x32,0x5f,0x62,0x3d,0x91,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x60,0x56,0x44,0x4d,0x58, -0x76,0x58,0x7d,0xd3,0x00,0x00,0x6a,0xcc,0x00,0x00,0x05,0xe0,0x63,0x6d,0x61,0x70,0x33,0x66,0x8a,0xbf,0x00,0x01,0xd3,0xd8,0x00,0x00,0x1c,0xe4,0x63,0x76,0x74,0x20,0x82,0x03,0x5d,0xdb,0x00,0x02,0x03,0x58,0x00,0x00,0x0a,0x22,0x66,0x70,0x67,0x6d,0x49,0x44,0xd8,0x67,0x00,0x01,0xf0,0xbc,0x00,0x00,0x0a,0x5c,0x67,0x61,0x73,0x70, -0x00,0x1b,0x00,0x23,0x00,0x0c,0x94,0x10,0x00,0x00,0x00,0x10,0x67,0x6c,0x79,0x66,0x2b,0xa3,0xa5,0xc9,0x00,0x02,0x61,0x00,0x00,0x09,0x4b,0xfc,0x68,0x64,0x6d,0x78,0xf0,0x92,0x4d,0xb8,0x00,0x00,0x70,0xac,0x00,0x01,0x63,0x2c,0x68,0x65,0x61,0x64,0xf3,0x00,0x6d,0x9b,0x00,0x00,0x01,0x8c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61, -0x14,0x0e,0x1d,0xa4,0x00,0x00,0x01,0xc4,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x5e,0x06,0x4f,0x2c,0x00,0x00,0x02,0x68,0x00,0x00,0x53,0x80,0x6b,0x65,0x72,0x6e,0xcc,0xce,0xe6,0xda,0x00,0x0b,0xac,0xfc,0x00,0x00,0xc2,0x6a,0x6c,0x6f,0x63,0x61,0x5a,0x85,0x46,0xd0,0x00,0x02,0x0d,0x7c,0x00,0x00,0x53,0x84,0x6d,0x61,0x78,0x70, -0x1a,0xb0,0x0d,0xea,0x00,0x00,0x01,0xe8,0x00,0x00,0x00,0x20,0x6d,0x65,0x74,0x61,0x4d,0x44,0xb7,0xb7,0x00,0x0e,0x95,0x1c,0x00,0x00,0x00,0x80,0x6e,0x61,0x6d,0x65,0x4e,0xc3,0x16,0xb3,0x00,0x0c,0x6f,0x68,0x00,0x00,0x24,0x88,0x70,0x6f,0x73,0x74,0xff,0x51,0x00,0x77,0x00,0x0c,0x93,0xf0,0x00,0x00,0x00,0x20,0x70,0x72,0x65,0x70, -0x93,0xee,0x1e,0xb9,0x00,0x01,0xfb,0x18,0x00,0x00,0x08,0x40,0x00,0x01,0x00,0x00,0x00,0x05,0x9e,0xb8,0xa0,0x2c,0x85,0x86,0x5f,0x0f,0x3c,0xf5,0x00,0x1b,0x08,0x00,0x00,0x00,0x00,0x00,0xaf,0xf5,0x3c,0xaf,0x00,0x00,0x00,0x00,0xd8,0x6f,0x46,0x1c,0xfb,0x6b,0xfc,0xb6,0x0f,0xfe,0x0a,0x63,0x00,0x00,0x00,0x09,0x00,0x01,0x00,0x01, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x08,0xa2,0xfd,0xfe,0x00,0x00,0x0f,0xf4,0xfb,0x6b,0xfa,0xd1,0x0f,0xfe,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xe0,0x00,0x01,0x00,0x00,0x14,0xe0,0x02,0xb9,0x00,0x20,0x00,0xa3,0x00,0x07,0x00,0x02,0x00,0x10,0x00,0x2f,0x00,0x86,0x00,0x00, -0x05,0x0e,0x0a,0x5c,0x00,0x04,0x00,0x01,0x00,0x03,0x04,0x4f,0x01,0x90,0x00,0x05,0x00,0x08,0x05,0x9a,0x05,0x33,0x00,0x00,0x01,0x1b,0x05,0x9a,0x05,0x33,0x00,0x00,0x03,0xd1,0x00,0x66,0x02,0x12,0x08,0x05,0x02,0x0b,0x05,0x02,0x04,0x02,0x04,0x02,0x02,0x03,0xe4,0x00,0x2e,0xff,0xc0,0x00,0xe4,0x7f,0x00,0x00,0x00,0x09,0x00,0x00, -0x00,0x00,0x4d,0x53,0x20,0x20,0x00,0x40,0x00,0x0d,0xff,0xfd,0x05,0xd3,0xfe,0x51,0x01,0x0d,0x08,0xa2,0x02,0x02,0x20,0x00,0x01,0xff,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0x9a,0x00,0x00,0x00,0x20,0x00,0x17,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x03,0x23,0x00,0xa3, -0x04,0xba,0x00,0x21,0x04,0x50,0x00,0xa2,0x06,0x8c,0x00,0x50,0x06,0x67,0x00,0x77,0x01,0xd7,0x00,0xa3,0x02,0x6a,0x00,0x8c,0x02,0x6a,0x00,0x16,0x03,0x56,0x00,0x4c,0x05,0x79,0x00,0xe8,0x01,0xbc,0x00,0x27,0x03,0x33,0x00,0x90,0x01,0xbc,0x00,0x70,0x03,0x1e,0xff,0xe4,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xe4,0x04,0x50,0x00,0x6d, -0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x62,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x05,0x79,0x01,0x10,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x10,0x03,0x96,0x00,0x83,0x07,0xa4,0x00,0xac,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc, -0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x03,0xe8,0x00,0xbc,0x05,0x7d,0x00,0x5e,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x02,0xdb,0x00,0x14,0x04,0xa4,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0xc9,0x00,0xbc, -0x04,0x40,0x00,0x79,0x04,0x31,0x00,0x29,0x05,0x7f,0x00,0xaa,0x04,0xf8,0x00,0x12,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x90,0x00,0x21,0x02,0x6a,0x00,0xc8,0x03,0x08,0xff,0xe6,0x02,0x6a,0x00,0x35,0x05,0x79,0x00,0xe6,0x03,0x52,0x00,0x00,0x02,0x25,0x00,0x52,0x04,0x12,0x00,0x5a,0x04,0xb4,0x00,0xa6, -0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0xc8,0x00,0xa6, -0x03,0x65,0x00,0x68,0x02,0xb6,0x00,0x2b,0x04,0x87,0x00,0x90,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0xac,0x00,0x1a,0x03,0xdf,0x00,0x0e,0x03,0x9e,0x00,0x21,0x02,0x6a,0x00,0x5c,0x01,0xea,0x00,0xac,0x02,0x6a,0x00,0x42,0x05,0x79,0x00,0xd1,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x5e,0x04,0x0c,0x00,0xbc, -0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x03,0xb2,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x01,0xf0,0x00,0x58,0x01,0xf0,0xff,0xec, -0x01,0xf0,0xff,0xd3,0x01,0xf0,0xff,0xc9,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x03,0x00,0x00,0x30,0x03,0x04,0x00,0x6c,0x04,0x50,0x00,0xb8,0x04,0x50,0x00,0x6a, -0x03,0x96,0x00,0x83,0x03,0x40,0x00,0xa4,0x03,0xaa,0x00,0x54,0x04,0x5a,0x00,0xa6,0x03,0x33,0x00,0x90,0x07,0x1f,0x01,0x38,0x07,0x1f,0x00,0xa2,0x06,0x2f,0x00,0x4c,0x02,0x42,0x00,0x87,0x03,0x50,0x00,0x7d,0x05,0x7b,0x00,0xe8,0x06,0xe2,0x00,0x0a,0x06,0x08,0x00,0x5e,0x06,0x89,0x00,0x52,0x05,0x79,0x00,0xe8,0x05,0x7b,0x00,0xe8, -0x05,0x7b,0x00,0xe8,0x04,0x50,0x00,0x44,0x04,0x9e,0x00,0xa6,0x04,0x48,0x00,0x4e,0x04,0xef,0x00,0x33,0x06,0x08,0x00,0xbc,0x04,0x51,0x00,0xbe,0x03,0x23,0x00,0x52,0x03,0x72,0x00,0x4e,0x06,0x0a,0x00,0x64,0x06,0xa8,0x00,0x5a,0x04,0xb0,0x00,0x31,0x03,0x96,0x00,0x8f,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x05,0x79,0x00,0xe8, -0x05,0x33,0x00,0x7b,0x04,0x50,0x00,0x5e,0x05,0x7b,0x00,0xd1,0x05,0x28,0x00,0x33,0x04,0x0c,0x00,0x5c,0x04,0x0c,0x00,0x5a,0x05,0xdd,0x00,0x8c,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x06,0x08,0x00,0x5e,0x07,0x72,0x00,0x5e,0x07,0x6c,0x00,0x60,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x03,0x04,0x00,0x6a,0x03,0x04,0x00,0x6e, -0x01,0xd5,0x00,0x6a,0x01,0xd5,0x00,0x6e,0x05,0x79,0x00,0xe8,0x04,0xab,0x00,0x6c,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x01,0x62,0xfe,0xc8,0x04,0x50,0x00,0x66,0x02,0x87,0x00,0x5c,0x02,0x87,0x00,0x5c,0x04,0x70,0x00,0x35,0x04,0x70,0x00,0x35,0x03,0x00,0x00,0x30,0x01,0xbc,0x00,0x70,0x01,0xd5,0x00,0x58,0x03,0x04,0x00,0x58, -0x09,0xae,0x00,0x50,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x02,0x21,0x00,0x78,0x02,0x21,0xff,0xfc,0x02,0x21,0xff,0xf1,0x02,0x21,0x00,0x1b,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa, -0x01,0xf0,0x00,0xa6,0x02,0xf8,0x00,0x5c,0x02,0xb2,0x00,0x23,0x02,0x7b,0x00,0x3e,0x02,0x6e,0x00,0x25,0x01,0x9c,0x00,0x6c,0x02,0x3e,0x00,0x52,0x01,0xa4,0x00,0x33,0x02,0x98,0x00,0x40,0x01,0x7b,0x00,0x3e,0x02,0xf8,0x00,0x66,0x03,0xc4,0x00,0x21,0x02,0x31,0x00,0x16,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x90,0x00,0x21, -0x03,0x9e,0x00,0x21,0x01,0xea,0x00,0xac,0x05,0x9c,0x00,0x1c,0x04,0x79,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x0c,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x07,0x72,0x00,0x50,0x07,0x40,0x00,0x50,0x07,0x9e,0x00,0x81, -0x03,0xe8,0x00,0x1c,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x02,0x21,0x00,0xad,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x03,0x52,0x00,0x00,0x01,0xbc,0x00,0x70,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, -0x04,0x12,0x00,0x5a,0x05,0x9c,0x00,0xbc,0x05,0x65,0x00,0x60,0x05,0x9c,0x00,0x1c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x8e,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x02,0x85,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6, -0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x97,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x03,0x85,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90, -0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x03,0xc6,0x00,0xbc,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x60,0x04,0xea,0x00,0x5a,0x04,0xac,0x00,0x5c,0x03,0x81,0x00,0x52,0x04,0x99,0x00,0x61,0x03,0xe6,0x00,0x22,0x05,0x98,0x00,0x60,0x03,0x52,0x00,0x00, -0x03,0xd7,0x00,0xb4,0x03,0x23,0x00,0x6e,0x08,0xe2,0x00,0xbc,0x04,0xfc,0x00,0xbc,0x03,0xf6,0x00,0x90,0x04,0xd9,0xff,0xd7,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x06,0x6e,0x00,0x96,0x02,0x96,0x00,0x0e,0x04,0xd5,0x00,0x92,0x02,0xd5,0x00,0x83,0x02,0xd5,0x00,0x83,0x04,0xd5,0x00,0xb2,0x02,0xd5,0x00,0x70,0x05,0x29,0x00,0x16, -0x04,0x12,0x00,0x5a,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e, -0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0x1c,0x04,0x87,0x00,0x1e,0x02,0x21,0xff,0xd0,0x01,0xf0,0xff,0xad,0x02,0x21,0x00,0x13,0x01,0xf0,0xff,0xef,0x02,0x21,0xff,0xfe,0x01,0xf0,0xff,0xdb,0x02,0x21,0x00,0x50,0x01,0xf0,0x00,0x37,0x02,0xdb,0x00,0x14,0x01,0xf0,0xff,0x3a,0x04,0xa4,0x00,0xbc, -0x03,0xfa,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x27,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68, -0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xee,0x00,0xa6,0x05,0x29,0x00,0x16, -0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x31,0x01,0xbc,0x00,0x70,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xd5,0x00,0x6e,0x03,0x52,0x00,0x00, -0x04,0x50,0x00,0x6a,0x04,0xcd,0x00,0x55,0x07,0x60,0x00,0x50,0x07,0x60,0x00,0x81,0x07,0x6e,0x00,0x8c,0x07,0x23,0x00,0xa2,0x03,0x1e,0x00,0xdb,0x03,0x1e,0x00,0xdb,0x01,0xbc,0x00,0x27,0x02,0x2e,0x00,0xce,0x02,0x2e,0xff,0xda,0x05,0x29,0x00,0x16,0x04,0x90,0xff,0xc5,0x06,0x31,0xff,0xc5,0x03,0x07,0xff,0xc6,0x06,0x68,0xff,0xd1, -0x05,0x56,0xff,0xb3,0x06,0x9c,0xff,0xd1,0x02,0x22,0xff,0xb2,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x04,0x90,0x00,0x21,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x08,0x00,0x18,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x14,0x00,0x3a,0x06,0x08,0x00,0x5e,0x05,0xb4,0x00,0xbc, -0x04,0x7b,0x00,0xbc,0x04,0x21,0x00,0x2e,0x04,0x31,0x00,0x29,0x04,0x6c,0x00,0x12,0x04,0xb8,0x00,0x1a,0x06,0x35,0x00,0x88,0x06,0x0a,0x00,0x64,0x02,0x21,0xff,0xf1,0x04,0x6c,0x00,0x12,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0xa6,0x04,0x6c,0x00,0x14,0x04,0x62,0x00,0xa7,0x04,0x27,0x00,0x05, -0x03,0x89,0x00,0x4c,0x04,0x9a,0x00,0x82,0x04,0xb1,0x00,0x61,0x02,0x22,0x00,0xa6,0x04,0x31,0x00,0xa6,0x03,0xfc,0xff,0xfe,0x04,0x9e,0x00,0xa7,0x04,0x35,0x00,0x0c,0x03,0x8f,0x00,0x4d,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0xa1,0x03,0xaf,0x00,0x57,0x04,0x6c,0x00,0x14,0x04,0x4e,0x00,0x0c,0x06,0x00,0x00,0x98,0x06,0x77,0x00,0x77, -0x02,0x22,0xff,0xed,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x04,0x0c,0x00,0xbc,0x05,0x9a,0x00,0x29,0x03,0xc6,0x00,0xbc,0x04,0xf0,0x00,0x5e,0x04,0x40,0x00,0x79,0x02,0x21,0xff,0xf1,0x07,0xd9,0x00,0x10,0x07,0xde,0x00,0xbc,0x05,0xc8,0x00,0x29,0x04,0xa4,0x00,0xbc,0x04,0x8a,0x00,0x3c, -0x05,0xab,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x93,0x00,0xbc,0x04,0x96,0x00,0xbc,0x03,0xc6,0x00,0xbc,0x05,0x8c,0x00,0x0f,0x04,0x0c,0x00,0xbc,0x06,0xef,0xff,0xea,0x04,0x52,0x00,0x60,0x05,0xfe,0x00,0xbc,0x05,0xfe,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x62,0x00,0x10,0x07,0x2f,0x00,0xbc,0x05,0xae,0x00,0xbc,0x06,0x08,0x00,0x5e, -0x05,0xb4,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x04,0x31,0x00,0x29,0x04,0x8a,0x00,0x3c,0x05,0xd0,0x00,0x5e,0x04,0xb8,0x00,0x1a,0x05,0xf0,0x00,0xbc,0x05,0x4a,0x00,0xa6,0x07,0x98,0x00,0xbc,0x07,0xd7,0x00,0xbc,0x05,0xa5,0x00,0x29,0x06,0x44,0x00,0xbc,0x04,0x9c,0x00,0xbc,0x04,0xee,0x00,0x68,0x08,0x26,0x00,0xbc, -0x04,0xba,0x00,0x3d,0x04,0x12,0x00,0x5a,0x04,0xa2,0x00,0x77,0x04,0x3d,0x00,0xa6,0x03,0x10,0x00,0xa6,0x04,0x60,0x00,0x12,0x04,0x2f,0x00,0x60,0x05,0xf8,0x00,0x04,0x03,0x91,0x00,0x50,0x04,0xa6,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x04,0x37,0x00,0x10,0x05,0x9e,0x00,0xa6,0x04,0x9e,0x00,0xa6,0x04,0xb0,0x00,0x60, -0x04,0x9e,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x48,0x00,0x1e,0x03,0xdf,0x00,0x0e,0x05,0x7d,0x00,0x60,0x03,0xac,0x00,0x1a,0x04,0xcd,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x66,0x00,0xa6,0x06,0x98,0x00,0xa6,0x04,0xba,0x00,0x1e,0x05,0xad,0x00,0xa6,0x04,0x08,0x00,0xa6,0x03,0xb2,0x00,0x5a,0x06,0x81,0x00,0xa6, -0x04,0x06,0x00,0x3e,0x04,0x2f,0x00,0x60,0x04,0x9e,0x00,0x27,0x03,0x10,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x65,0x00,0x68,0x01,0xf0,0xff,0xd3,0x06,0x52,0x00,0x10,0x06,0x74,0x00,0xa6,0x04,0x8a,0x00,0x27,0x03,0xfa,0x00,0xa6,0x03,0xdf,0x00,0x0e,0x04,0x9e,0x00,0xa6,0x03,0xc0,0x00,0xbc,0x03,0x20,0x00,0xa6,0x08,0x00,0x00,0x00, -0x08,0xfa,0x00,0xbc,0x05,0x04,0x00,0x11,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x01,0xf0,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x72,0x00,0x64,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x02,0x6e,0x00,0xab,0x02,0xaa,0x00,0xf2, -0x02,0x25,0x00,0x66,0x02,0x25,0x00,0x64,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x6c,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0xab,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9, -0x03,0xd3,0x00,0x6c,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0xff,0xe8,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, -0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc, -0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0x0e,0x04,0x2f,0x00,0x0c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0x00,0x9a,0x01,0xf0,0x00,0x88,0x02,0x21,0x00,0xb2,0x01,0xf0,0x00,0x90,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, -0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x30,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e, -0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa, -0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x02,0x21,0x00,0xbc, -0x02,0xdb,0x00,0x14,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x07,0x48,0xff,0xea,0x06,0x3e,0x00,0x04,0x04,0xe6,0x00,0xbc,0x04,0x3e,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xf6,0x00,0xa6,0x05,0xf0,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12, -0x03,0xdf,0x00,0x0e,0x05,0x04,0x00,0x1a,0x03,0xf2,0x00,0x1a,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x03,0x50,0x00,0x7d, -0x03,0x50,0x00,0x7d,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x02,0x25,0x00,0x14,0x02,0x25,0x00,0x14,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x14,0x02,0x6e,0x00,0x14,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x96,0x00,0xbc, -0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc, -0x04,0xb6,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xe8,0x00,0xbc,0x02,0x81,0x00,0x35,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc, -0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xa0,0x04,0x87,0x00,0x8c,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x02,0x21,0xff,0xcf,0x01,0xf0,0xff,0xb9,0x02,0x21,0xff,0xf2,0x01,0xf0,0xff,0xd4,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc, -0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x95,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfa,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfc,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xdf,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc, -0x06,0xe4,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, -0x04,0xb0,0x00,0x60,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79, -0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa, -0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a, -0x05,0xc8,0x00,0x18,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x87,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x05,0xc8,0x00,0x18, -0x03,0xdf,0x00,0x0e,0x04,0x12,0x00,0x5a,0x01,0xee,0x00,0x4e,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc, -0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbc,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x90,0xff,0xbd,0x04,0x90,0xff,0xbe,0x05,0xb2,0xff,0xbc,0x05,0xb2,0xff,0xc0,0x05,0xb2,0xff,0xbd,0x05,0xb2,0xff,0xbf,0x04,0x9a,0x00,0x82, -0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x30,0xff,0xbd,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xc0,0x07,0x56,0xff,0xbd,0x07,0x56,0xff,0xbf,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x02,0x22,0x00,0x94, -0x02,0x22,0x00,0x6e,0x02,0x22,0xff,0xdd,0x02,0x22,0xff,0xb3,0x02,0x22,0x00,0x1b,0x02,0x22,0xff,0xea,0x02,0x22,0xff,0xc0,0x02,0x22,0xff,0xc0,0x03,0x06,0xff,0xbd,0x03,0x06,0xff,0xbe,0x03,0xf8,0xff,0xbd,0x03,0xf8,0xff,0xc0,0x04,0x2a,0xff,0xbc,0x04,0x34,0xff,0xbf,0x04,0x2a,0xff,0xbd,0x04,0x2a,0xff,0xbd,0x04,0xb0,0x00,0x60, -0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x06,0x6e,0xff,0xbd,0x06,0x6e,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, -0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x05,0x56,0xff,0xbe,0x06,0x8c,0xff,0xc0,0x06,0x8c,0xff,0xbf,0x06,0x8c,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbd, -0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xc0,0x07,0xa6,0xff,0xbd,0x07,0xa6,0xff,0xbf,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0x34,0x02,0x22,0x00,0xa6,0x04,0xb0,0x00,0x60, -0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbd, -0x05,0xee,0xff,0xc1,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbf,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbc,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x31,0xff,0xbc,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc, -0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbc,0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc, -0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0x29,0xff,0xfb,0x05,0x29,0x00,0x16, -0x05,0x29,0x00,0x16,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0xba,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0x40,0x04,0xb0,0x01,0x33,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x90,0xff,0xac,0x04,0x90,0xff,0xc4,0x06,0x31,0xff,0xac,0x06,0x31,0xff,0xc4,0x05,0xae,0x00,0xbc, -0x04,0xb0,0x01,0x4a,0x04,0xb0,0x01,0x42,0x04,0xb0,0x01,0x33,0x02,0x22,0xff,0xec,0x02,0x22,0xff,0xfa,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xdf,0x02,0x22,0xff,0xd5,0x02,0x21,0xff,0xfe,0x02,0x21,0x00,0x12,0x02,0xe8,0xff,0xae,0x03,0x07,0xff,0xc6,0x04,0xb0,0x01,0x44,0x04,0xb0,0x01,0x38,0x04,0xb0,0x01,0x33, -0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0xa1,0x04,0xb0,0x00,0xa1,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x12,0x04,0x6c,0x00,0x12,0x05,0x56,0xff,0x96,0x05,0x56,0xff,0xb2,0x05,0x04,0xff,0xbe,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0xd1, -0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0xb3,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0x0a,0x00,0x64,0x04,0xb0,0x01,0xd1,0x04,0xb0,0x01,0xe2,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58, -0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x33,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xe8,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x58,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0x00,0x2f,0x00,0x00,0xff,0x3e, -0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x16,0x00,0x00,0xff,0x52,0x00,0x00,0xff,0xa6,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x03,0x00,0x00,0xff,0x1a,0x00,0x00,0xff,0x1a,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x35,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x56, -0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0xcb,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0xb1,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xe9,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x05,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58,0x00,0x00,0xfe,0x66, -0x00,0x00,0xfe,0x70,0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x44,0x00,0x00,0xfe,0xa5,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x70,0x00,0x00,0x00,0x0a,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xaa,0x00,0x00,0xff,0x64,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0x2a, -0x00,0x00,0xff,0x58,0x00,0x00,0xff,0x4c,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xa8,0x00,0x00,0xff,0x5c,0x00,0x00,0xfd,0x0e,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfd,0xaf,0x04,0xb4,0x00,0x21,0x04,0xe8,0xff,0xac,0x04,0x93,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x9e,0x00,0x33,0x04,0xb4,0x00,0x21, -0x04,0xf6,0x00,0x6a,0x04,0xf6,0x00,0x5e,0x03,0xba,0x00,0x60,0x05,0x9c,0x00,0x1c,0x05,0xee,0xff,0xac,0x04,0x94,0x00,0x5c,0x04,0xb4,0x00,0x60,0x04,0xbc,0x00,0x60,0x04,0x0e,0x00,0x5a,0x04,0x54,0x00,0x70,0x03,0xe8,0xff,0x9a,0x05,0x89,0x00,0x5e,0x04,0xf8,0x00,0x12,0x06,0xfe,0x00,0xa6,0x02,0x4e,0x00,0xb8,0x02,0x3a,0x00,0x29, -0x04,0xa4,0x00,0xbc,0x03,0xfc,0x00,0xa6,0x01,0xf0,0x00,0x14,0x03,0xfc,0xff,0xfe,0x07,0x23,0x00,0xb8,0x05,0xfc,0xff,0x9a,0x04,0x9a,0x00,0x83,0x06,0x08,0x00,0x5e,0x07,0xc0,0x00,0x5e,0x06,0x52,0x00,0x60,0x04,0xcf,0xff,0xac,0x04,0xb4,0x00,0xa6,0x04,0x9c,0x00,0xbc,0x04,0x40,0x00,0x62,0x03,0x65,0x00,0x56,0x04,0x21,0x00,0x2d, -0x02,0x5e,0xff,0x83,0x02,0xb8,0x00,0x2b,0x04,0x33,0xff,0xcd,0x02,0xb8,0x00,0x2b,0x04,0x33,0x00,0x27,0x06,0x0a,0x00,0x62,0x05,0xb2,0x00,0xb8,0x04,0x8e,0x00,0x0f,0x04,0x23,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0xe2,0x00,0x0a,0x04,0xe2,0x00,0x5e,0x03,0x89,0x00,0x1e,0x03,0x46,0x00,0x0a,0x04,0x50,0x00,0x60, -0x04,0x50,0x00,0x74,0x03,0x0a,0x00,0x48,0x03,0x27,0x00,0x1e,0x04,0x5e,0x00,0xa6,0x01,0xea,0x00,0xac,0x03,0x10,0x00,0xac,0x03,0xa6,0x00,0x33,0x02,0x46,0x00,0xb4,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x06,0xd9,0x00,0xbc,0x05,0xc2,0x00,0xbc,0x04,0x01,0x00,0xa6,0x08,0x94,0x00,0xbc,0x07,0xbe,0x00,0xbc, -0x06,0x77,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x02,0x21,0xff,0xf7,0x01,0xf0,0xff,0xdf,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa, -0x04,0x87,0x00,0x90,0x04,0x2f,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x06,0xe2,0x00,0x0a,0x06,0xa0,0x00,0x52,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60, -0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xe2,0x00,0x0a,0x03,0x89,0xff,0xdd,0x01,0xf0,0xff,0x3a,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xfe,0x00,0xbc,0x05,0x83,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52, -0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x04,0x0c,0x00,0x9e,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0xff,0x86,0x01,0xf0,0xff,0x6e,0x02,0x21,0xff,0xf8,0x01,0xf0,0xff,0xe6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x9a,0x00,0xa0,0x02,0xc8,0x00,0x04, -0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x9a,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x08,0x00,0x10,0x03,0x70,0x00,0x1e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xdf,0x00,0xbc,0x04,0xb8,0x00,0x3e,0x04,0x89,0x00,0x48,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x05,0x29,0x00,0x16, -0x04,0x0a,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0xb0,0x01,0x33,0x04,0x0a,0x01,0x08,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0xb0,0x01,0x23, -0x04,0x0a,0x00,0x90,0x04,0xb6,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0xa6,0x03,0xba,0x00,0x5a,0x03,0xba,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x52,0x04,0xe6,0x00,0x50,0x03,0x4e,0x00,0x60,0x03,0x4e,0x00,0x5a,0x04,0x0e,0x00,0x5a,0x04,0x68,0x00,0x60,0x02,0x38,0xff,0x81,0x04,0xb6,0x00,0x60, -0x04,0xb6,0x00,0x60,0x04,0x3c,0x00,0x60,0x03,0xd5,0x00,0x0e,0x03,0xa8,0x00,0x0a,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x02,0x18,0x00,0x0a,0x02,0x3a,0x00,0x94,0x02,0x90,0x00,0x4c,0x02,0x3e,0xff,0xec,0x03,0x02,0xff,0xec,0x01,0xee,0x00,0xa6,0x04,0xd3,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6, -0x06,0xe4,0x00,0xa6,0x04,0x72,0xff,0x96,0x04,0x72,0x00,0xa6,0x04,0xb0,0x00,0xa6,0x04,0xb0,0x00,0x60,0x05,0x96,0x00,0x60,0x05,0xc4,0x00,0x60,0x05,0x1a,0x00,0x60,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0xa6,0x02,0xc8,0x00,0xa6,0x02,0xae,0x00,0x90,0x02,0xae,0x00,0x0c,0x03,0xa2,0x00,0xa6, -0x03,0xa2,0x00,0xa6,0x03,0x2f,0x00,0x68,0x01,0xfa,0xff,0x92,0x02,0x10,0xff,0x9e,0x02,0x4e,0xff,0xa6,0x02,0x44,0xff,0x44,0x02,0xb8,0x00,0x38,0x02,0xb8,0x00,0x2b,0x04,0xcb,0x00,0x21,0x04,0xc2,0x00,0x60,0x04,0x77,0x00,0x90,0x03,0xd5,0x00,0x0c,0x05,0xc8,0x00,0x18,0x03,0xdf,0x00,0x0c,0x03,0x56,0x00,0x0a,0x03,0x9e,0x00,0x21, -0x04,0x18,0x00,0x21,0x03,0x89,0xff,0xdd,0x03,0x89,0xff,0xea,0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x02,0xec,0x00,0x00,0x03,0xba,0x00,0x60,0x04,0xf2,0x00,0x60,0x03,0xdf,0x00,0xa6,0x04,0x62,0x00,0x5c,0x04,0x3c,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xee,0xff,0x18,0x03,0xfc,0x00,0x04,0x03,0x14,0x00,0xa6,0x04,0xb6,0x00,0x60, -0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x07,0x54,0x00,0x60,0x07,0x98,0x00,0x60,0x07,0xcf,0x00,0x60,0x04,0xe8,0x00,0x2b,0x03,0xcf,0x00,0x2b,0x05,0xbe,0x00,0x2b,0x06,0x58,0x00,0x35,0x04,0xa4,0x00,0x98,0x04,0x8e,0x00,0xa6,0x03,0xf4,0x00,0x31,0x03,0xf4,0x00,0x74,0x04,0x62,0x00,0xa6,0x04,0xba,0x00,0x14,0x04,0x85,0x00,0x12, -0x05,0x6c,0xff,0xb1,0x04,0x85,0x00,0x12,0x05,0x1a,0x00,0x60,0x06,0x6a,0x00,0x00,0x04,0x90,0x00,0x00,0x05,0x9e,0x00,0x56,0x04,0xb0,0x00,0x60,0x04,0xa8,0x00,0x5e,0x03,0xa4,0x00,0x60,0x03,0xfc,0x00,0xbc,0x03,0x9c,0x00,0x90,0x04,0xc4,0x00,0x48,0x04,0x04,0x00,0x33,0x04,0xe4,0x00,0x00,0x03,0xf2,0xff,0x7b,0x07,0x23,0x00,0xb8, -0x06,0xe4,0x00,0xa6,0x04,0xd5,0x00,0x33,0x04,0x14,0x00,0x33,0x05,0x16,0x00,0x00,0x04,0x44,0xff,0xec,0x04,0xe2,0x00,0x48,0x03,0xae,0x00,0x3e,0x04,0xc4,0x00,0x14,0x03,0xe2,0x00,0x14,0x05,0x4c,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x85,0x00,0x0a,0x03,0x44,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0xa8,0x00,0xa2,0x03,0xb2,0x00,0x60, -0x01,0xf0,0xff,0x3a,0x06,0x08,0x00,0x5e,0x03,0xbc,0x00,0x60,0x03,0xbc,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x05,0x2b,0x00,0x29,0x04,0xa4,0x00,0x29,0x07,0x44,0x00,0xbc,0x05,0xb8,0x00,0xa6,0x05,0x52,0x00,0x16,0x03,0xfe,0x00,0x0c,0x06,0xfc,0x00,0xbc,0x05,0x87,0x00,0xa6,0x05,0xd3,0x00,0x29,0x04,0x85,0x00,0x1e, -0x07,0x70,0x00,0xbc,0x05,0xfe,0x00,0xa6,0x04,0x52,0x00,0x31,0x03,0x99,0x00,0x21,0x06,0x44,0x00,0x66,0x06,0x14,0x00,0x66,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x0a,0x7f,0x00,0x5e,0x08,0xf2,0x00,0x58,0x06,0x9c,0x00,0x5e,0x05,0x33,0x00,0x60, -0x09,0x08,0x00,0x5e,0x07,0x27,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x04,0xb4,0x00,0x5e,0x03,0x81,0x00,0x60,0x04,0x00,0x00,0x2d,0x03,0x27,0x00,0x52,0x03,0x4c,0x00,0x5e,0x00,0x00,0xff,0x90,0x00,0x00,0xff,0x86,0x07,0xe2,0x00,0x21,0x07,0x98,0x00,0x35,0x04,0x9c,0x00,0x29,0x04,0x0c,0x00,0x2d,0x04,0x7c,0x00,0xbc, -0x04,0xb5,0x00,0xa6,0x04,0x8c,0x00,0xbc,0x04,0x04,0x00,0xa6,0x04,0x52,0x00,0x60,0x03,0xa2,0x00,0x58,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x05,0xae,0x00,0x29,0x04,0xa6,0x00,0x1e,0x06,0xb8,0x00,0xbc,0x05,0x4e,0x00,0xa6,0x08,0x16,0x00,0xbc,0x06,0xb0,0x00,0xa6,0x05,0xc6,0x00,0x5e,0x04,0x74,0x00,0x60,0x04,0xf4,0x00,0x5e, -0x03,0xb2,0x00,0x60,0x04,0x35,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0xfa,0x00,0x29,0x05,0x79,0x00,0x1e,0x05,0x7f,0x00,0xa6,0x04,0xb4,0x00,0x98,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x02,0x21,0x00,0xbc,0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0xa4,0x00,0xbe,0x04,0x0c,0x00,0xa6, -0x05,0xae,0x00,0xbc,0x04,0x9e,0x00,0xa6,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52, -0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0x52,0x00,0x60,0x03,0x91,0x00,0x50,0x04,0x2f,0x00,0x52,0x03,0x89,0xff,0xdd,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xee,0x00,0x68,0x03,0xb2,0x00,0x5a, -0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x05,0x4a,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x44,0x00,0xbc,0x05,0xad,0x00,0xa6,0x04,0x8e,0x00,0x56,0x04,0xb6,0x00,0x60,0x06,0xd3,0x00,0x64,0x06,0xe2,0x00,0x60,0x06,0x70,0x00,0x29,0x05,0xc6,0x00,0x1e, -0x04,0x77,0x00,0x29,0x03,0xcb,0x00,0x1e,0x07,0x3e,0x00,0x18,0x06,0x5e,0x00,0x14,0x07,0xea,0x00,0xbc,0x06,0xcb,0x00,0xa6,0x05,0xb8,0x00,0x5e,0x04,0x3e,0x00,0x60,0x05,0x66,0x00,0x29,0x04,0xc8,0x00,0x1e,0x04,0xb0,0x01,0x33,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0x0a,0x01,0x08,0x04,0xb0,0x01,0x23,0x02,0xaa,0xff,0x8c, -0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x14,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0x96,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x10,0x00,0x00,0xff,0x23,0x01,0xd5,0x00,0x72,0x01,0xd5,0x00,0x72,0x04,0xb0,0x01,0xba, -0x02,0xb0,0x00,0x66,0x02,0xb0,0x00,0x66,0x01,0x4e,0xff,0xbe,0x01,0xb2,0x00,0x66,0x01,0xb2,0x00,0x0a,0x01,0xb2,0x00,0x0a,0x02,0x3e,0x00,0x66,0x03,0x2d,0x00,0x14,0x02,0x3a,0x00,0x0a,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x01,0xc7,0x00,0x6a,0x01,0xc7,0x00,0x6e,0x01,0xc7,0x00,0x6e,0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xfb, -0x01,0xba,0x00,0x14,0x01,0xba,0x00,0x0a,0x04,0xac,0x00,0x72,0x04,0xac,0x00,0x70,0x04,0xac,0x00,0x66,0x04,0xac,0x00,0x66,0x02,0xaa,0x01,0x20,0x02,0x42,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0xaa,0x01,0x20,0x02,0x7b,0x00,0x3e,0x02,0x25,0x00,0x52,0x02,0x42,0x00,0x87,0x02,0x39,0x00,0xb6,0x02,0x39,0x00,0xb6,0x02,0xaa,0x00,0xfb, -0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0x7b,0x00,0x3e,0x02,0xaa,0x00,0x79,0x02,0xb0,0x00,0x48,0x02,0x56,0x00,0x0a,0x01,0x4c,0x00,0x66,0x01,0xf0,0x00,0x3e,0x02,0x42,0x00,0x14,0x01,0xba,0x00,0x0a,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96, -0x03,0x10,0x00,0x96,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x3c,0x03,0x52,0x00,0x00,0x02,0xaa,0x00,0x6e,0x01,0xf0,0xff,0x3a,0x02,0x18,0x00,0x0a,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43, -0x04,0x57,0x00,0x43,0x03,0x10,0x00,0x43,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a, -0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42, -0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f, -0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42, -0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23, -0x03,0x10,0x00,0x23,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x03,0x10,0x00,0x4b,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96, -0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24, -0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x03,0x10,0x00,0x24,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x03,0x10,0x00,0x4e,0x04,0x57,0x00,0x96, -0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x54,0x00,0x00,0xff,0x54,0x00,0x00,0xfd,0xa7,0x00,0x00,0xff,0x68,0x05,0x27,0x00,0x60,0x02,0x60,0x00,0xa6,0x05,0x0e,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x04,0xbc,0xff,0xdb,0x04,0xbc,0xff,0xdb,0x02,0xaa,0x00,0x85,0x02,0xaa,0x00,0x85, -0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0x98,0x00,0x28,0x02,0x98,0x00,0x28,0x02,0xb2,0x00,0x23,0x02,0x39,0x00,0xad,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0xff,0xf0,0x02,0xaa,0xff,0xf2,0x02,0xaa,0x00,0x3a,0x00,0x00,0xff,0x74, -0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x74,0x00,0x00,0xff,0x74,0x00,0x00,0xfe,0xa1,0x00,0x00,0xff,0xa6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x05,0x4a,0x00,0x00,0x06,0xa2,0x00,0x52,0x03,0xdf,0x00,0x3e, -0x03,0xb2,0x00,0x60,0x04,0x66,0x00,0xa6,0x04,0x70,0x00,0x3c,0x03,0x56,0x00,0xa6,0x03,0x4c,0x00,0x5a,0x01,0xee,0x00,0x8e,0x02,0x62,0x00,0x14,0x03,0xfa,0x00,0xa6,0x03,0x23,0x00,0x42,0x05,0x9e,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x04,0xb0,0x00,0x60,0x03,0xcd,0x00,0x5a,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x4c, -0x07,0x70,0x00,0x52,0x04,0x4a,0x00,0x60,0x04,0xc2,0x00,0x60,0x04,0xc2,0x00,0x60,0x03,0xb2,0x00,0xa6,0x03,0xa2,0x00,0x1e,0x03,0xa2,0x00,0x1e,0x03,0x48,0x00,0x1e,0x04,0x46,0x00,0x90,0x04,0x89,0x00,0x66,0x05,0xbe,0x00,0x3e,0x04,0x89,0x00,0x66,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0x9e,0x00,0x21,0x03,0x58,0x00,0x50, -0x03,0x4a,0x00,0x50,0x04,0x3a,0x00,0x14,0x03,0x10,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x04,0x9e,0x00,0xa6,0x03,0xb2,0x00,0xa6,0x04,0xba,0x00,0x60,0x04,0x7d,0x00,0x0a,0x02,0xe2,0x00,0x0a,0x03,0xe6,0xff,0xf6,0x02,0xc6,0x00,0x7b,0x02,0xdb,0x00,0x23,0x03,0x46,0x00,0x7b,0x02,0x72,0x00,0x7b,0x02,0x72,0x00,0x48,0x03,0x46,0x00,0x3e, -0x03,0x64,0x00,0x7b,0x01,0x79,0x00,0x7b,0x01,0xd3,0x00,0x0a,0x02,0xd5,0x00,0x7b,0x02,0x44,0x00,0x7b,0x04,0x31,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x68,0x00,0x3e,0x03,0x0c,0x00,0x3e,0x02,0xb6,0x00,0x7b,0x02,0xc2,0x00,0x7b,0x02,0x52,0x00,0x0a,0x03,0x50,0x00,0x74,0x04,0x35,0x00,0x10,0x02,0x85,0x00,0x3e, -0x02,0x85,0x00,0x66,0x02,0xc6,0x00,0x3e,0x03,0xdf,0x00,0x48,0x02,0xc6,0x00,0x66,0x02,0xc6,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0x7d,0x00,0x48,0x02,0x1c,0x00,0x3e,0x02,0x1c,0x00,0x42,0x02,0xc6,0x00,0x3e,0x01,0x4e,0x00,0x58,0x02,0x6a,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbc,0x00,0x3e,0x02,0x29,0x00,0x3e, -0x02,0xbc,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0xbe,0x00,0x66,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x5c,0x02,0x9c,0x00,0x3e,0x03,0xfa,0x00,0x60,0x02,0x40,0x00,0x0a,0x02,0x8e,0x00,0x14,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xbc,0x00,0x3e,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x01,0x4e,0x00,0x58,0x01,0xb2,0x00,0x66, -0x02,0xa6,0x00,0x5c,0x02,0x40,0x00,0x0a,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xc6,0x00,0x66,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x04,0xa6,0x00,0xfc,0x01,0x4e,0x00,0x58,0x02,0xc6,0x00,0x66,0x04,0x57,0x00,0x42,0x07,0x04,0x00,0x8f,0x04,0xfe,0x00,0x74,0x04,0x50,0x00,0x76,0x04,0x50,0x00,0x76,0x06,0xe4,0x00,0xa6, -0x05,0x2a,0x00,0x23,0x06,0xda,0x00,0xbc,0x05,0xf4,0x00,0x14,0x04,0x37,0x00,0x64,0x04,0xb6,0x00,0x60,0x04,0x00,0x00,0x2a,0x03,0x96,0x00,0x29,0x09,0x00,0x00,0x2c,0x03,0xa4,0x00,0x30,0x04,0xb5,0x00,0x26,0x07,0x1f,0x00,0xa2,0x07,0x7a,0x00,0x60,0x07,0x7a,0x00,0x60,0x05,0x06,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x16, -0x03,0xb2,0x00,0x21,0x03,0xc4,0x00,0x12,0x04,0x31,0xff,0xef,0x03,0x65,0x00,0x68,0x03,0x9e,0x00,0x21,0x04,0x16,0x00,0x30,0x01,0x9c,0x00,0x6c,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0xbd,0x00,0x00,0xff,0x60,0x00,0x00,0xfc,0xe6,0x04,0xb0,0x00,0x21,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x03,0xc6,0x00,0xbc, -0x03,0x10,0x00,0xa6,0x04,0xb4,0xff,0xbb,0x04,0xb6,0x00,0x60,0x02,0x81,0xff,0xf8,0x06,0xe4,0xff,0xc0,0x04,0x87,0xff,0xc0,0x04,0xb4,0xff,0xbb,0x02,0xc8,0xff,0xbb,0x02,0xae,0xff,0xa5,0x03,0xb5,0x00,0x27,0x02,0xb6,0xff,0xef,0x03,0x9e,0x00,0x21,0x04,0xb6,0x00,0xa6,0x03,0xb1,0x00,0x7a,0x04,0x9f,0x00,0x60,0x07,0x3d,0x00,0x16, -0x05,0x2e,0x00,0x16,0x02,0x90,0x00,0x4a,0x02,0x22,0xff,0xfb,0x04,0xb4,0x00,0x22,0x04,0x46,0x00,0x22,0x04,0xc2,0x00,0x14,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0x5c,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x02,0xc8,0x00,0x5c, -0x03,0x65,0x00,0x68,0x03,0x76,0xff,0x92,0x03,0xd5,0x00,0x0e,0x03,0xac,0x00,0x1a,0x03,0x9e,0x00,0x21,0x04,0x12,0x00,0x5a,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x03,0x81,0x00,0x52,0x03,0x91,0x00,0x50,0x05,0xe0,0x00,0x52,0x01,0xf0,0x00,0x90,0x03,0xba,0x00,0x5a,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, -0x03,0x89,0xff,0xdd,0x02,0xc6,0x00,0x66,0x02,0x22,0x00,0x3e,0x02,0x26,0x00,0x3d,0x02,0xbd,0x00,0x3e,0x02,0x1c,0x00,0x42,0x01,0x77,0x00,0x0a,0x01,0x4e,0xff,0xdd,0x02,0xc6,0x00,0x3e,0x02,0xa6,0x00,0x5c,0x01,0x4e,0x00,0x0f,0x01,0x74,0x00,0x66,0x01,0x62,0x00,0x11,0x01,0x62,0x00,0x11,0x01,0x4e,0xff,0x87,0x01,0x74,0x00,0x66, -0x01,0x4c,0x00,0x31,0x01,0xcb,0x00,0x66,0x03,0xfa,0x00,0x66,0x03,0xfa,0x00,0x60,0x02,0xb0,0xff,0xbc,0x02,0xb0,0x00,0x66,0x02,0xd0,0x00,0x66,0x02,0xb0,0x00,0x3e,0x02,0xef,0x00,0x3e,0x01,0xd8,0x00,0x42,0x01,0x4e,0xff,0xc9,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x05,0x02,0xbd,0x00,0x3e,0x02,0xa2,0x00,0x5c,0x02,0x93,0x00,0x5c, -0x02,0x40,0x00,0x0b,0x02,0x17,0x00,0x1a,0x02,0x17,0x00,0x1a,0x02,0x5b,0x00,0x1a,0x02,0x12,0xff,0xfb,0x02,0xbd,0x00,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xdd,0x01,0xbc,0x00,0x70,0x02,0x85,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0x23,0x00,0x12,0x02,0x7d,0x00,0x48, -0x04,0x51,0x00,0x54,0x04,0x51,0x00,0x0c,0x04,0x51,0x00,0x69,0x04,0x51,0x00,0x56,0x02,0xaa,0x00,0x42,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x29,0x03,0xb5,0x00,0x27,0x02,0x7b,0x00,0x3e,0x02,0x23,0x00,0x12,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a, -0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x02,0x22,0xff,0xf9,0x02,0x22,0x00,0x02,0x02,0x22,0xff,0xfc,0x02,0x22,0xff,0xe5,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, -0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4, -0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x04,0x51,0x00,0xbc,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x01,0x60,0x00,0x5b, -0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x48,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x02,0xee,0x00,0x48, -0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x06,0x46,0x00,0xbc,0x05,0x0d,0x00,0xa6, -0x05,0xaa,0x00,0x10,0x04,0x9f,0x00,0x10,0x05,0xf8,0x00,0xbc,0x05,0x06,0x00,0xa6,0x07,0x78,0x00,0xbc,0x06,0x06,0x00,0xa6,0x04,0x50,0x00,0x5a,0x03,0x04,0x00,0x6e,0x04,0x1d,0x00,0x8d,0x05,0x79,0x00,0xe8,0x04,0x47,0x00,0x5e,0x06,0x8e,0x00,0xbc,0x05,0x9e,0x00,0xa6,0x00,0x00,0xff,0xdc,0x00,0x00,0xff,0x25,0x00,0x00,0xff,0xdc, -0x00,0x00,0xfe,0x51,0x02,0x01,0x00,0xab,0x02,0x01,0x00,0x49,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba, -0x08,0x04,0xff,0xba,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x03,0x57,0x00,0x62,0x04,0x02,0x00,0x4f,0x04,0x02,0xff,0xef,0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x08,0x04,0xff,0xba,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, -0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xae,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x04,0x02,0x00,0xa1,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a, -0x04,0x02,0x00,0xa1,0x06,0xae,0x00,0x9a,0x02,0x01,0x00,0x6f,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x49,0x04,0xad,0x00,0x49,0x04,0xad,0xff,0xa2,0x06,0xae,0x00,0x82,0x02,0x01,0x00,0x00,0x04,0xad,0xff,0xa2,0x02,0x01,0x00,0x6f, -0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x5a,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x02,0x01,0x00,0x49,0x06,0x03,0x00,0x82,0x02,0x01,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0x02,0x00,0x52, -0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x06,0xae,0x00,0x19,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0x02,0x00,0x65,0x01,0x56,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab,0x05,0x58,0x00,0x9b, -0x04,0xad,0x00,0x39,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0x03,0x00,0x9a,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0x33,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xd4,0x00,0x00,0x00,0x45,0x04,0xad,0x00,0x52,0x02,0x01,0x00,0x52, -0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xa2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x00, -0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0xa1,0x04,0x02,0x00,0xab,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xae,0x00,0x72,0x04,0x02,0x00,0x2f, -0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x05,0x58,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0x72, -0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x02,0x01,0x00,0x2d,0x04,0xae,0x00,0x7c,0x03,0x1d,0x00,0x42,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x08,0x04,0x00,0xa1,0x04,0x02,0x00,0x57,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0x17,0x00,0x00,0x00,0x10, -0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xc2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x06,0x03,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2, -0x03,0x57,0x00,0xab,0x03,0x57,0x00,0xab,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, -0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0x00, -0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65, -0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b, -0x06,0x03,0x00,0x9b,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, -0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, -0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x04,0x58,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x06,0xae,0x00,0x32, -0x07,0x58,0x00,0x1e,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x00,0x00,0xff,0xa8,0x00,0x00,0xff,0xb7,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1d,0x00,0x00,0xff,0x2b,0x08,0xfc,0x00,0x2d,0x08,0xad,0x01,0x46, -0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x16,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0xc9,0x02,0x01,0x00,0x4d,0x03,0x57,0x00,0x21,0x00,0x00,0xff,0x82,0x00,0x00,0x00,0x32,0x04,0xcd,0x00,0x64,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x16,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, -0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x5a,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xc2,0x04,0xad,0xff,0xc2,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52, -0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x65,0x04,0x02,0x00,0x52,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x02,0xfe,0x00,0x00,0x04,0xad,0xff,0x97,0x04,0xad,0xff,0x97,0x04,0xc1,0x00,0x66,0x09,0xd0,0x00,0x73,0x06,0xa8,0x00,0x73, -0x04,0x40,0x00,0x49,0x0c,0x2d,0x00,0x73,0x08,0xaf,0x00,0x49,0x02,0xac,0x00,0x46,0x04,0xad,0x00,0x32,0x00,0x00,0xff,0xc9,0x00,0x00,0xff,0xe9,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x88,0x00,0x00,0xff,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x32,0x00,0x00,0xff,0xc6,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, -0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xfe,0xa9,0x00,0x00,0xfe,0x91,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x0a,0x05,0x00,0xa1,0x0c,0x06,0x00,0x9b,0x00,0x00,0xff,0xd4, -0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0x6c,0x00,0x00,0xff,0xd4,0x04,0xad,0x00,0x35,0x04,0x02,0x00,0x65,0x00,0x00,0xff,0xe7,0x00,0x00,0xff,0xdf,0x00,0x00,0xff,0xdf,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x05,0x07,0x59,0x00,0xab,0x03,0x56,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba, -0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, -0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba, -0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, -0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x00,0x00,0xff,0x1a,0x04,0x00,0xff,0x1a,0x04,0x00,0x01,0x9f,0x04,0x00,0x01,0xb3,0x02,0xf4,0x00,0x14,0x04,0x96,0x00,0x1c,0x05,0x7f,0x00,0x1e,0x05,0x07,0x00,0x18,0x04,0x0c,0x00,0x8b,0x04,0x2f,0x00,0x60,0x02,0xdb,0x00,0x14, -0x01,0xf0,0xff,0x3a,0x06,0x01,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xc9,0x00,0x1c,0x02,0xc8,0x00,0x1c,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x03,0xcd,0x00,0x5a,0x03,0xb2,0x00,0x60,0x03,0xcd,0x00,0x5a,0x01,0xf0,0x00,0xa6,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x04,0xf4,0x00,0x1a,0x03,0xe0,0x00,0x1a,0x04,0xb8,0x00,0x1a, -0x03,0xac,0x00,0x1a,0x04,0x54,0x00,0x70,0x03,0x81,0x00,0x52,0x05,0x62,0x00,0x10,0x04,0x37,0x00,0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xdb,0x05,0xed,0x00,0x35,0x03,0x9c,0x00,0x48, -0x03,0xcd,0x00,0x5a,0x03,0xc4,0x00,0x1c,0x02,0x4a,0x00,0x14,0x04,0x19,0x00,0x27,0x04,0x7b,0x00,0x1c,0x04,0xc9,0x00,0xbc,0x04,0x12,0x00,0x5a,0x02,0xb6,0xff,0xb5,0x05,0xf0,0x00,0xbc,0x04,0xb3,0x00,0xa6,0x05,0x1c,0x00,0xbc,0x04,0x4a,0x00,0xa6,0x04,0xf5,0x00,0x21,0x03,0xfb,0x00,0x21,0x04,0x8d,0x00,0x4b,0x04,0x1f,0x00,0xbc, -0x03,0x2b,0x00,0xa6,0x05,0x98,0x00,0x60,0x02,0xf7,0x00,0xaf,0x03,0x4f,0x00,0xaf,0x03,0x5a,0x00,0xaf,0x03,0xde,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0xaa,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x04,0x50,0x00,0x00, -0x01,0xbc,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, -0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xa1,0x07,0x6c,0x00,0x79,0x03,0x64,0x00,0x3f,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xf5,0x00,0xb0,0x00,0x00,0xfc,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x4a,0x07,0x60,0x00,0x8d,0x06,0xe7,0x00,0x96,0x03,0xc7,0x00,0x96,0x06,0xe7,0x00,0xe7,0x03,0xc7,0x00,0x96,0x06,0xe5,0x00,0x96,0x05,0x28,0x00,0x33,0x05,0x78,0x00,0xe6,0x05,0x9d,0x00,0xe6,0x05,0x92,0x00,0xe6,0x06,0x1e,0x00,0xe6, -0x06,0xe4,0x00,0xa5,0x08,0x00,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x8c,0x06,0xe4,0x02,0x0d,0x06,0xe4,0x00,0xa5,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0xcd,0x05,0xe8,0x00,0x5e,0x04,0xa0,0x00,0x0e,0x08,0x7e,0x00,0x1a, -0x06,0x9d,0x00,0x18,0x03,0xc7,0x00,0x96,0x03,0xc7,0x00,0x96,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0xf8,0x00,0x63,0x01,0xbc,0x00,0x70,0x04,0x82,0x00,0xe8,0x01,0xd7,0x00,0x94,0x01,0xd7,0x00,0xa3,0x06,0xae,0x03,0x9b,0x05,0x10,0x02,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa5,0x00,0x00,0xff,0xcd,0x03,0x33,0x00,0x4b,0x00,0x00,0xfe,0xd2,0x01,0x9d,0x00,0x94,0x00,0x00,0x02,0x00,0x00,0x00,0xfd,0x3c,0x01,0xbc,0x00,0x70, -0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x9c,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x25,0x00,0xbe,0x02,0xb2,0x00,0x31,0x05,0x65,0x00,0xbe,0x05,0x72,0x00,0xa0,0x02,0x25,0x00,0xbe,0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe, -0x05,0x65,0x00,0xa4,0x02,0x25,0x00,0xbe,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xd6,0x00,0x59,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0x85,0x00,0x1e,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe, -0x01,0xd5,0x00,0x6e,0x03,0x04,0x00,0x6e,0x04,0x78,0x00,0x2f,0x04,0x78,0x00,0x2f,0x04,0x68,0xff,0x51,0x04,0x68,0xff,0x51,0x04,0x53,0x00,0xbe,0x04,0xd6,0x00,0x59,0x05,0x18,0x00,0xa5,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe,0x04,0x79,0x00,0x2f,0x05,0xcf,0x00,0x34, -0x04,0x6a,0x00,0x5f,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x6b,0xff,0xfb,0x02,0xda,0xff,0xfa,0x05,0x72,0x00,0xa0,0x02,0x6b,0xff,0xfb, -0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x65,0x00,0xa4,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x02,0x25,0x00,0xb5,0x04,0x90,0x00,0x50,0x04,0x5c,0x00,0x4e, -0x05,0x0c,0x00,0x96,0x05,0x38,0x00,0x59,0x09,0x9a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x00,0xa5,0x04,0x68,0x00,0x59,0x05,0x38,0x00,0x59,0x05,0x52,0x00,0x59,0x05,0x38,0x00,0x59,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x73,0x00,0x00,0xff,0xa1,0x00,0x00,0xff,0x49,0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x61, -0x00,0x00,0xfe,0xab,0x00,0x00,0xfe,0x26,0x00,0x00,0x00,0x64,0x00,0x00,0xff,0x42,0x00,0x00,0xff,0x45,0x00,0x00,0x00,0x64,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0x06,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x45,0x00,0x00,0xfe,0xe1,0x00,0x00,0xff,0x68, -0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x6a,0x00,0x00,0x00,0x64,0x00,0x00,0xfd,0x87,0x00,0x00,0xff,0x29,0x00,0x00,0xff,0xa4,0x03,0x32,0x00,0xab,0x02,0x25,0x00,0xb6,0x00,0x00,0xfe,0xb2,0x06,0x08,0x00,0x5e,0x05,0x22,0x00,0x33,0x05,0x55,0x00,0x64,0x05,0xa6,0x00,0x5a, -0x04,0x68,0x00,0x64,0x05,0x55,0x00,0x64,0x05,0xf6,0x00,0x32,0x06,0x19,0x00,0x5e,0x03,0xc4,0x00,0x20,0x05,0x08,0x00,0x8c,0x05,0xf6,0x00,0x32,0x05,0xe2,0x00,0x5c,0x05,0x4a,0x00,0xc9,0x06,0x08,0x00,0x5e,0x06,0x7f,0x00,0x32,0x06,0x36,0x00,0x32,0x05,0x55,0x00,0x64,0x04,0x68,0x00,0xb0,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e, -0x05,0xa6,0x00,0x5a,0x04,0x94,0x00,0x32,0x05,0x7f,0x00,0xaa,0x05,0x6b,0x00,0xa6,0x05,0x4a,0x00,0xa6,0x05,0x6b,0x00,0xc9,0x05,0x7d,0x00,0x5e,0x05,0xe2,0x00,0x5c,0x04,0x9c,0x00,0xbc,0x05,0x19,0x00,0x64,0x05,0x6b,0x00,0xc9,0x05,0x3b,0x00,0x32,0x06,0x31,0x00,0x32,0x05,0x0e,0x00,0xc9,0x04,0xf4,0x00,0x5e,0x05,0x22,0x00,0x33, -0x05,0x5a,0x00,0x96,0x06,0x8c,0x00,0x52,0x03,0xf8,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x07,0x00,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x60,0x06,0x2c,0x00,0x3c,0x07,0x21,0x00,0x60,0x04,0xe1,0x00,0x60,0x04,0x51,0x00,0x60,0x08,0x66,0x00,0x60,0x04,0x88,0x00,0x60,0x04,0x88,0x00,0x60,0x06,0x0e,0x00,0x60, -0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x3f,0x06,0x0e,0x00,0x60,0x04,0x7d,0x00,0x9a,0x06,0x08,0x00,0x5e,0x06,0x82,0x00,0x60,0x06,0xff,0x00,0x40,0x04,0x51,0x00,0x60,0x06,0x2e,0x00,0x60,0x04,0x51,0x00,0x60,0x05,0x3b,0x00,0x32,0x04,0x58,0x00,0xa6,0x04,0xeb,0x00,0x60,0x04,0x88,0x00,0x60,0x05,0x0d,0x00,0x32,0x04,0x50,0x00,0x50, -0x04,0xd6,0x00,0xae,0x06,0x27,0x00,0x21,0x04,0x53,0x00,0x60,0x04,0xf5,0x00,0x60,0x05,0x4f,0x00,0x32,0x04,0x51,0x00,0x5e,0x04,0x51,0x00,0x60,0x04,0xc4,0x00,0x52,0x07,0xa8,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x5f,0x04,0xb0,0x00,0x60,0x04,0xb1,0x00,0x40,0x03,0x64,0x00,0x70,0x02,0xa8,0x00,0x32,0x04,0x75,0x00,0x28, -0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x48,0x00,0x30,0x04,0x75,0x00,0x28,0x07,0x10,0x00,0x28,0x04,0x75,0xff,0x3f,0x07,0x13,0x00,0x5b,0x03,0xf4,0x00,0x28,0x04,0x75,0x00,0x59,0x07,0x17,0x00,0x31,0x05,0x51,0x00,0x30,0x04,0x75,0x00,0x31,0x07,0x13,0x00,0x5b,0x05,0xf2,0x00,0x28,0x05,0xf2,0x00,0x28,0x07,0x0c,0x00,0x59, -0x04,0x9c,0x00,0x59,0x04,0x75,0x00,0x42,0x07,0x13,0x00,0x5b,0x07,0x13,0x00,0x5b,0x04,0x72,0x00,0x71,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x5b,0x04,0x75,0x00,0x2f,0x04,0x75,0x00,0x42,0x07,0x0c,0x00,0x59,0x07,0x10,0x00,0x3f,0x04,0xb0,0x00,0x21,0x04,0x75,0x00,0x42,0x04,0x89,0xff,0x8a,0x07,0x17,0x00,0x31, -0x04,0xc5,0x00,0x2f,0x04,0x56,0x00,0x35,0x04,0x75,0x00,0x46,0x04,0x75,0x00,0x28,0x07,0x0c,0x00,0x59,0x06,0x3a,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0x7f,0x00,0xaa,0x05,0xa8,0x00,0x64,0x04,0xff,0x00,0xbc,0x05,0x7f,0x00,0xaa,0x06,0x3f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x33,0x00,0xaa, -0x04,0x58,0x00,0xbc,0x06,0x53,0x00,0xbc,0x05,0x62,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x90,0x00,0x21,0x05,0x54,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0xf6,0x00,0x62,0x05,0xc6,0x00,0xaa,0x04,0xab,0x00,0x5e,0x05,0x94,0xff,0xf6,0x05,0x54,0x00,0x5e,0x05,0xcf,0x00,0xaa,0x05,0x54,0x00,0x5e,0x06,0x33,0x00,0x82,0x05,0x9a,0x00,0x64, -0x05,0xc6,0x00,0xaa,0x05,0xcf,0x00,0xaa,0x05,0x7a,0x00,0x5e,0x05,0x19,0x00,0x64,0x05,0x9d,0x00,0xaa,0x05,0x6f,0x00,0x90,0x05,0xc6,0x00,0xaa,0x06,0x56,0x00,0x5e,0x05,0x3f,0x00,0x14,0x06,0x08,0x00,0x5e,0x05,0xcb,0x00,0x86,0x00,0xca,0x00,0x00,0x00,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x92,0x00,0x00,0x01,0x35,0x00,0x00, -0x02,0x29,0x00,0x00,0x02,0xce,0x00,0x00,0x06,0xe4,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0xf2,0x00,0x60,0x04,0xc3,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xec,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0x2b,0x00,0xa6,0x04,0xca,0x00,0x5e,0x04,0x87,0x00,0xa6,0x02,0x76,0x00,0xa6,0x06,0xb1,0x00,0xa6,0x04,0xb0,0x00,0x60, -0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x57,0x00,0x60,0x04,0xd4,0x00,0xa6,0x04,0x18,0x00,0x60,0x04,0xa5,0x00,0x90,0x02,0x26,0xff,0x70,0x04,0xb0,0xff,0xf6,0x04,0x26,0x00,0x60,0x04,0x87,0x00,0xa6,0x03,0x4c,0x00,0x60,0x06,0xe4,0x00,0x90,0x04,0x64,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0x90,0x04,0xbe,0x00,0x90, -0x06,0xa6,0x00,0x8f,0x04,0x87,0x00,0xa6,0x04,0xb6,0x00,0x60,0x03,0x26,0x00,0xa6,0x06,0xa6,0x00,0x8f,0x04,0xb4,0x00,0x00,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0x60,0x05,0x72,0x00,0x90,0x01,0xbc,0x00,0x70,0x02,0x42,0x00,0x2a,0x09,0x0e,0x00,0x90,0x08,0xf8,0x00,0x90,0x08,0xf8,0x00,0x90,0x09,0x0e,0x00,0x90,0x0b,0x67,0x00,0x90, -0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x37,0x01,0xf0,0x00,0x90,0x04,0x50,0x00,0x5c,0x03,0x1e,0x00,0x79,0x04,0x50,0x00,0x99,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x5c,0x04,0x50,0x00,0xe8,0x04,0x50,0x00,0x99, -0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x03,0x1e,0x00,0x53,0x04,0x50,0x00,0x6d,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a, -0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xa8,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0x64,0x04,0x50,0x00,0x5e,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xee,0x00,0x2f, -0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x04,0x0f,0x00,0x58,0x04,0xac,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x5b,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0, -0x03,0x4c,0x00,0xb0,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xe0,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x04,0xc2,0x00,0x9c,0x04,0x15,0x00,0x00,0x06,0x69,0x00,0x05,0x04,0x02,0x00,0x1e,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x05,0x9f,0xff,0xf8, -0x06,0x31,0x00,0x58,0x03,0x4c,0x00,0x38,0x05,0x01,0x00,0x41,0x03,0xe0,0x00,0xb0,0x04,0xac,0x00,0x2d,0x04,0x33,0x00,0xa6,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0, -0x03,0x70,0x00,0xb0,0x02,0x04,0xff,0xfc,0x02,0x04,0x00,0x87,0x02,0x04,0xff,0xe9,0x02,0x04,0xff,0xe0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x03,0xbb,0x00,0x14, -0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0xac,0x00,0xb0,0x04,0xac,0x00,0x2d,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0x0f,0x00,0x58, -0x04,0xe9,0x00,0xb0,0x04,0xe9,0x00,0x2d,0x02,0x04,0xff,0xc3,0x02,0x04,0x00,0x04,0x02,0x04,0xff,0xf1,0x02,0x04,0x00,0x3f,0x02,0x04,0x00,0xa0,0x04,0x85,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0, -0x05,0x2a,0x00,0xb0,0x05,0x38,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19, -0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29, -0x04,0x04,0x00,0x00,0x05,0x9f,0xff,0xf8,0x05,0x01,0x00,0x41,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x03,0x22,0x00,0x9c,0x04,0x4a,0x00,0x2a,0x03,0x70,0x00,0xb0,0x03,0xdb,0x00,0x29,0x04,0xe9,0x00,0xb0,0x04,0xed,0x00,0x58,0x02,0x04,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x15,0x00,0x00,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0, -0x03,0x95,0x00,0x49,0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x03,0xac,0x00,0x30,0x03,0x85,0x00,0x19,0x03,0xbb,0x00,0x14,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x40,0x00,0x7d,0x05,0x10,0x00,0x58,0x04,0x04,0x00,0x00,0x03,0x70,0x00,0xb0,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0x87,0x04,0xed,0x00,0x58, -0x03,0xbb,0x00,0x14,0x05,0x10,0x00,0x58,0x02,0x04,0xff,0xe0,0x03,0xbb,0x00,0x14,0x03,0x70,0x00,0xb0,0x04,0x8d,0x00,0x22,0x03,0x36,0x00,0xb0,0x04,0x19,0x00,0x58,0x03,0x5d,0x00,0x68,0x02,0x04,0x00,0xb0,0x02,0x04,0xff,0xe0,0x02,0x81,0x00,0x11,0x06,0x80,0x00,0x0d,0x06,0x94,0x00,0xb0,0x04,0xe1,0x00,0x22,0x03,0xec,0x00,0xb0, -0x03,0xf4,0x00,0x36,0x04,0xdf,0x00,0xb0,0x04,0x04,0x00,0x00,0x03,0xe7,0x00,0xb0,0x03,0xec,0x00,0xb0,0x03,0x36,0x00,0xb0,0x04,0xaf,0x00,0x12,0x03,0x70,0x00,0xb0,0x05,0xe7,0x00,0x00,0x03,0x88,0x00,0x50,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x8a,0x00,0x0d,0x06,0x12,0x00,0xb0,0x04,0xe9,0x00,0xb0, -0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x04,0x0f,0x00,0x58,0x03,0x85,0x00,0x19,0x03,0xf4,0x00,0x36,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x11,0x00,0xb0,0x04,0x60,0x00,0x7d,0x06,0x73,0x00,0xb0,0x06,0xa4,0x00,0xb0,0x04,0x89,0x00,0x22,0x05,0xa1,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x1e,0x00,0x54, -0x06,0xe0,0x00,0xb0,0x03,0xe9,0x00,0x12,0x03,0x31,0x00,0xb0,0x04,0xa5,0x00,0x35,0x04,0xa7,0x00,0x35,0x04,0xfa,0x00,0x35,0x07,0x1e,0x00,0x35,0x07,0x1e,0x00,0x35,0x05,0x45,0x00,0x57,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x03,0x5d,0x00,0x68,0x04,0x96,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0x7b,0x00,0x52,0x05,0x9c,0x00,0xbc, -0x04,0x31,0x00,0x29,0x04,0x31,0x00,0x27,0x05,0x7d,0x00,0x5e,0x04,0xa4,0x00,0xbc,0x04,0xa4,0x00,0x02,0x02,0xdb,0x00,0x14,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0x90,0x00,0x21,0x03,0xe8,0x00,0xbc,0x03,0xe8,0x00,0x54,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x04,0x40,0x00,0x79,0x04,0xc9,0x00,0xbc, -0x04,0xc9,0x00,0x09,0x04,0xf8,0x00,0x12,0x04,0xf8,0x00,0x12,0x05,0xae,0x00,0xbc,0x05,0x7d,0x00,0x91,0x02,0xdb,0x00,0xb0,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x96,0x00,0x67,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x17,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0x58,0x02,0x21,0x00,0xbc,0x06,0x08,0x00,0x5e, -0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x03,0xc4,0x00,0x20,0x05,0x9c,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x03,0x78,0x00,0x70,0x03,0x78,0x00,0x70,0x01,0xbc,0x00,0x27,0x01,0xbc,0x00,0x70,0x04,0xef,0x00,0x90,0x03,0x33,0x00,0x90,0x02,0x21,0x00,0x30,0x06,0x08,0x00,0x5e,0x05,0xa6,0x00,0x77,0x02,0x46,0x00,0xb4, -0x01,0xbc,0x00,0x5c,0x01,0xbc,0x00,0x5e,0x03,0x96,0x00,0x83,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62,0x03,0x04,0x00,0x68,0x05,0x65,0x00,0x60,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x04,0xd9,0xff,0xe4,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc, -0x03,0xfa,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x03,0x85,0x00,0x2b,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x01,0xbc,0x00,0x5e,0x01,0xd5,0x00,0x74,0x03,0x1f,0x01,0x3d,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba, -0x07,0x59,0x00,0x1e,0x06,0x03,0x00,0x7c,0x07,0x59,0x00,0x7c,0x02,0x01,0x00,0x76,0x00,0x00,0xff,0xc8,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x37,0x02,0x01,0x00,0x70,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b, -0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba, -0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab, -0x04,0x02,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x06,0x03,0x00,0x53,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd8,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4, -0x00,0x00,0xff,0x6c,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xf8,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x02,0x01,0x00,0x4f,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7, -0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, -0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, -0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab, -0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, -0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, -0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, -0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0x00,0x81,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, -0x08,0x04,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, -0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, -0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x16,0x02,0xac,0x00,0x16,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a, -0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x16,0x04,0xad,0x00,0x16,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b, -0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0x03,0x02,0x01,0xff,0x62, -0x02,0x01,0x00,0x03,0x02,0x01,0xff,0xc6,0x00,0x00,0xff,0x97,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x89,0x02,0x01,0x00,0x60,0x02,0xac,0x00,0x1e,0x02,0x01,0x00,0x3c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x30,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xa2,0x02,0xac,0x00,0x49,0x02,0xac,0x00,0x72,0x02,0xac,0x00,0x72, -0x02,0xac,0xff,0x97,0x02,0xac,0xff,0xc2,0x02,0xac,0x00,0x34,0x02,0xac,0x00,0x3a,0x03,0x57,0x00,0x17,0x03,0x57,0x00,0x16,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8, -0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8, -0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6, -0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39, -0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x82,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x06,0x03,0x00,0x1e,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x04,0xad,0x00,0x72, -0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x02,0x01,0xff,0xf1,0x02,0x01,0xff,0xea,0x04,0x02,0x00,0xa1,0x03,0x57,0x00,0x39,0x04,0xa9,0x00,0x64,0x05,0x19,0x00,0x65, -0x04,0x90,0x00,0x21,0x04,0x51,0x00,0x5f,0x04,0x70,0x00,0x0a,0x04,0xb0,0x00,0x60,0x04,0x51,0xff,0xe6,0x04,0x55,0x00,0x2d,0x04,0x50,0x00,0x72,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xc2,0x04,0x50,0x01,0x1f,0x04,0x50,0x00,0xf7,0x04,0x50,0x01,0x08,0x04,0x50,0x00,0xe1,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xa9,0x04,0x50,0x00,0xbc, -0x04,0x26,0x00,0x76,0x03,0xb0,0x00,0x8a,0x04,0x61,0x00,0x6d,0x04,0x32,0x00,0x76,0x04,0xb4,0x00,0x6c,0x04,0xe2,0x00,0x97,0x04,0xe7,0x00,0x90,0x05,0x40,0x00,0x76,0x04,0xa3,0x00,0x80,0x04,0x87,0x00,0x76,0x05,0x35,0x00,0x96,0x04,0x1e,0x00,0x64,0x05,0x59,0x00,0x78,0x06,0x0d,0x00,0x82,0x05,0x1d,0x00,0x8c,0x05,0xfa,0x00,0x96, -0x06,0xa1,0x00,0x64,0x05,0x18,0x00,0x87,0x06,0x1c,0x00,0x78,0x05,0x81,0x00,0x96,0x04,0x84,0x00,0x98,0x04,0x84,0x01,0x00,0x04,0x84,0x00,0x5d,0x04,0x84,0x00,0x6b,0x04,0x84,0x00,0x94,0x04,0x84,0x00,0x59,0x04,0x84,0x00,0x7d,0x04,0x84,0x00,0xbf,0x04,0x84,0x00,0x2b,0x04,0x84,0x00,0x2b,0x04,0x3e,0x00,0x76,0x03,0xb2,0x00,0x2d, -0x04,0x52,0x00,0x7c,0x04,0xd7,0x00,0x0f,0x04,0xce,0x00,0x0a,0x05,0x44,0x00,0x16,0x04,0x94,0x00,0x41,0x05,0x2c,0x00,0x36,0x04,0x99,0x00,0x80,0x04,0xc2,0x00,0x7d,0x04,0xd1,0x00,0x82,0x04,0x15,0x00,0x82,0x04,0x15,0x00,0x96,0x06,0x00,0x00,0x82,0x05,0x6f,0x00,0x64,0x05,0x87,0x00,0x64,0x05,0x64,0x00,0x64,0x05,0x6f,0x00,0x64, -0x04,0xbe,0x00,0xb4,0x04,0xa6,0x00,0x82,0x04,0xa5,0x00,0x77,0x05,0xe4,0x00,0x50,0x06,0x2c,0x00,0x50,0x06,0x03,0x00,0x8c,0x06,0x1b,0x00,0x50,0x07,0x62,0x00,0x8c,0x07,0x62,0x00,0x50,0x05,0x9b,0x00,0x50,0x07,0x62,0x00,0x32,0x07,0x62,0x00,0x50,0x05,0xde,0x00,0x72,0x06,0xfc,0x00,0x74,0x06,0xc4,0x00,0x60,0x04,0x74,0x00,0x58, -0x06,0x24,0x00,0x73,0x06,0xcc,0x00,0x5d,0x06,0x1a,0x00,0x73,0x04,0xc0,0x00,0x70,0x06,0xce,0x00,0x74,0x05,0xe8,0x00,0x73,0x05,0x87,0x00,0x82,0x05,0x9d,0x00,0x82,0x04,0xd6,0x00,0x64,0x05,0x25,0x00,0x82,0x05,0xf8,0x00,0x6e,0x06,0x5a,0x00,0x82,0x05,0x93,0x00,0x64,0x04,0xee,0x00,0x6e,0x05,0xa7,0x00,0x82,0x04,0xa8,0x00,0x82, -0x04,0x46,0x00,0x5d,0x07,0x60,0x00,0x00,0x07,0x58,0x00,0x64,0x07,0x5d,0x00,0x64,0x06,0x96,0x00,0x61,0x07,0x62,0x00,0x61,0x07,0x62,0x00,0x64,0x05,0x78,0x00,0x46,0x07,0x62,0x00,0x64,0x07,0x62,0x00,0x61,0x05,0xad,0x00,0x82,0x06,0x25,0x00,0x82,0x06,0x44,0x00,0xb4,0x05,0xf5,0x00,0x82,0x05,0xcd,0x00,0x82,0x05,0xcd,0x00,0x82, -0x05,0x29,0x00,0x50,0x07,0x0c,0x00,0x82,0x06,0x1e,0x00,0x82,0x06,0x9d,0x00,0x82,0x05,0xb7,0x00,0x78,0x05,0xb3,0x00,0x78,0x04,0xa2,0x00,0x78,0x05,0xe9,0x00,0x50,0x05,0x89,0x00,0x78,0x05,0x89,0x00,0x78,0x06,0xd0,0x00,0x78,0x06,0x10,0x00,0x64,0x05,0xcb,0x00,0x70,0x07,0x2d,0x00,0x78,0x04,0x56,0x00,0x78,0x04,0x10,0x00,0x64, -0x04,0x78,0x00,0x78,0x04,0x4b,0x00,0x78,0x04,0xe5,0x00,0x78,0x04,0xff,0x00,0x78,0x05,0x94,0x00,0x78,0x05,0xde,0x00,0x64,0x04,0xa0,0x00,0x78,0x04,0x8e,0x00,0x78,0x04,0x84,0x00,0x80,0x04,0x5d,0x00,0x7f,0x04,0x8b,0x00,0x3a,0x04,0x5d,0x00,0x7f,0x04,0x5d,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x9f,0x00,0x80, -0x04,0x84,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x11,0x00,0x66,0x04,0x3c,0x00,0x80,0x04,0xb8,0x00,0x66,0x04,0xf5,0x00,0x66,0x04,0xd3,0x00,0x80,0x04,0xd3,0x00,0x80,0x03,0xaa,0x00,0x67,0x04,0x84,0x00,0x80,0x04,0x84,0x00,0x80,0x04,0xb4,0x00,0xa0,0x04,0xd9,0x00,0x8c,0x06,0x1f,0x00,0x64,0x06,0xbe,0x00,0xa0, -0x05,0x3c,0x00,0xa0,0x05,0x3c,0x00,0xa0,0x05,0x01,0x00,0x7b,0x06,0x25,0x00,0xa0,0x05,0x1a,0x00,0xa0,0x05,0x78,0x00,0xe9,0x04,0x1a,0x00,0x84,0x03,0xcc,0x00,0x69,0x04,0xb5,0x00,0x84,0x04,0x80,0x00,0x84,0x03,0xc9,0x00,0x84,0x03,0xf3,0x00,0x84,0x04,0x61,0x00,0x84,0x04,0x6c,0x00,0x84,0x03,0xdb,0x00,0x70,0x03,0xb7,0x00,0x84, -0x05,0x02,0x00,0x60,0x03,0xa4,0x00,0x50,0x04,0x5c,0x00,0x2d,0x03,0xf6,0x00,0x50,0x04,0x62,0x00,0x60,0x06,0x3f,0x00,0x60,0x04,0x81,0x00,0x77,0x06,0x9e,0x00,0x60,0x04,0x4a,0x00,0x0a,0x04,0x85,0x00,0x60,0x04,0x8f,0x00,0x60,0x05,0xf2,0x00,0x82,0x02,0x81,0x00,0xf0,0x06,0x51,0x00,0x64,0x05,0x7c,0x00,0x64,0x05,0xbe,0x00,0xb4, -0x05,0x48,0x00,0xb4,0x04,0x7c,0x00,0x64,0x06,0x01,0x00,0x00,0x04,0xd0,0x00,0x82,0x06,0x41,0x00,0x64,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x84,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x3f,0x04,0xd5,0x00,0x6b,0x04,0xd5,0x00,0x5c,0x04,0x9f,0x00,0xd6,0x04,0xd5,0x00,0x59,0x04,0xd5,0x00,0x7b,0x04,0xd5,0x00,0x8b,0x02,0x21,0x00,0x30, -0x02,0x21,0xff,0xd0,0x02,0x21,0xff,0xf9,0x02,0x21,0xff,0x86,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0xff,0xfd,0x03,0x89,0xff,0xbe,0x03,0x9f,0xff,0xbd,0x03,0x98,0xff,0xc1,0x03,0x9f,0xff,0xbe,0x03,0xb9,0xff,0xc0,0x03,0x9f,0xff,0xbe,0x02,0x79,0xff,0xbf,0x02,0x7b,0xff,0xbe,0x02,0x21,0xff,0xfe,0x02,0x21,0xff,0xf2, -0x02,0x21,0xff,0xf2,0x02,0x21,0xff,0xf2,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x04,0xfc,0x00,0x30,0x02,0x21,0xff,0xd1,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x1c,0x02,0x7b,0xff,0xc7,0x02,0x7b,0xff,0xc7,0x02,0x21,0xff,0xf3,0x02,0x21,0xff,0xf8,0x02,0x21,0x00,0x12,0x02,0x5d,0xff,0xaf, -0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x14,0x02,0x21,0xff,0xff,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x03,0xe8,0x00,0x93,0x05,0xee,0x00,0x48,0x05,0xcd,0x00,0x6c,0x03,0xe8,0x00,0x60,0x03,0x40,0x00,0x77,0x03,0xe8,0x00,0x3e,0x04,0x2f,0x00,0x96,0x04,0x78,0x00,0x2e,0x03,0xe8,0x00,0x5c, -0x06,0xbf,0x00,0x73,0x06,0x92,0x00,0x73,0x06,0xe7,0x00,0x75,0x03,0x8a,0x00,0x19,0x08,0x0c,0x00,0xaa,0x03,0xe8,0x00,0x60,0x06,0xaf,0x00,0x73,0x06,0xaf,0x00,0x75,0x06,0xbb,0x00,0x82,0x06,0x77,0x00,0x93,0x04,0x86,0x00,0x69,0x03,0xe8,0x00,0x6b,0x03,0xe8,0x00,0x6b,0x06,0x3e,0x00,0x96,0x04,0xae,0x00,0x20,0x06,0x35,0x00,0xaa, -0x05,0x65,0x00,0x12,0x04,0x45,0x00,0x57,0x03,0xa0,0x00,0x26,0x03,0x40,0x00,0x25,0x08,0x27,0x00,0x28,0x03,0x4c,0x00,0x2b,0x04,0x44,0x00,0x22,0x03,0xe9,0x00,0x4c,0x03,0xe9,0x00,0x0b,0x03,0xe9,0x00,0x5f,0x03,0xe9,0x00,0x4e,0x03,0xe9,0x00,0xaa,0x0a,0xe5,0x00,0x8c,0x06,0xaf,0x00,0x6e,0x06,0xaf,0x00,0x80,0x03,0x6e,0x00,0xb2, -0x02,0x03,0x00,0xb2,0x03,0xa5,0x00,0x53,0x01,0xe5,0x00,0x2b,0x03,0xb3,0x00,0xa6,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x2b,0x03,0xd7,0x00,0x00,0x04,0xae,0x00,0x6a,0x04,0xae,0x00,0x68,0x04,0x5f,0x00,0x00,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62, -0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x74,0x03,0x4c,0x00,0x90,0x06,0xe4,0x00,0x8d,0x01,0xbc,0x00,0x70,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x04,0xad,0x00,0xab,0x04,0xad,0x00,0xab,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00, -0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x00,0x00,0xff,0x0e,0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x72,0x00,0x00,0xfe,0xfc,0x00,0x00,0xfe,0x84,0x00,0x00,0xff,0x46, -0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x20,0x00,0x00,0xfe,0xec,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x40,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x23,0x00,0x00,0xff,0x06,0x00,0x00,0xff,0x2f,0x00,0x00,0xfe,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xff,0x04,0x00,0x00,0xfe,0x94, -0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0xf7,0x00,0x00,0xfe,0xa2,0x00,0x00,0xfe,0xc2,0x00,0x00,0xff,0x07,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xb2,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0x40,0x00,0x77,0x03,0x65,0x00,0x70, -0x02,0xd9,0x00,0xbc,0x02,0xc9,0x00,0xa6,0x05,0x7f,0x00,0xaa,0x04,0x61,0x00,0x7d,0x05,0xbb,0x00,0x48,0x03,0x72,0x00,0x19,0x09,0x08,0x00,0x5e,0x07,0x26,0x00,0x60,0x04,0xbe,0xff,0xf3,0x04,0x6d,0x00,0x32,0x07,0x5f,0x00,0x33,0x06,0x55,0x00,0x1c,0x06,0xc1,0x00,0xbb,0x05,0xfe,0x00,0xa6,0x08,0x26,0x00,0x60,0x06,0x81,0x00,0x63, -0x07,0x67,0x00,0xbc,0x06,0x30,0x00,0xa6,0x05,0x29,0x00,0x16,0x03,0xd1,0x00,0x0a,0x05,0xd3,0x00,0x29,0x04,0xb1,0x00,0x1e,0x07,0x67,0x00,0xbc,0x05,0xda,0x00,0xa6,0x06,0x03,0x00,0x1e,0x04,0xdf,0x00,0x05,0x05,0xf0,0x00,0x3e,0x04,0xcd,0x00,0x3e,0x06,0xe8,0x00,0x0f,0x05,0x51,0x00,0x12,0x07,0x05,0x00,0x10,0x05,0x57,0x00,0x10, -0x08,0xd3,0x00,0xbc,0x06,0xbe,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x09,0xb6,0x00,0x5e,0x07,0x1e,0x00,0x60,0x06,0x55,0x00,0x7e,0x00,0x00,0xfe,0xc2,0x07,0xe2,0x00,0x6f,0x07,0xe2,0x01,0x13,0x07,0xe2,0x00,0x26,0x03,0xd1,0x00,0x7d,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x33, -0x04,0xa6,0x00,0xfc,0x04,0x01,0x01,0x33,0x05,0x98,0x00,0x0f,0x04,0x76,0x00,0x12,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x67,0x08,0x9c,0x00,0x60,0x07,0x3b,0x00,0x50,0x07,0x8f,0x00,0xa6,0x06,0xe1,0x00,0x98,0x05,0xbe,0x00,0x0f,0x04,0xa4,0x00,0x12,0x05,0x96,0x00,0x29,0x04,0xb0,0x00,0x1e,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e, -0x05,0xeb,0x00,0xae,0x04,0xc7,0x00,0x8f,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0x8e,0x00,0x29,0x05,0x54,0x00,0x1e,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x07,0xd1,0x00,0xbc,0x06,0x8f,0x00,0xa6,0x04,0x50,0x00,0x2b,0x04,0x99,0x00,0x32,0x05,0xdc,0x00,0xe7,0x05,0xdc,0x00,0xe7,0x06,0x78,0x00,0x00,0x03,0x96,0x00,0x83, -0x01,0x9a,0x00,0x00,0x03,0xac,0x00,0xac,0x05,0x7a,0x00,0x5e,0x03,0x73,0x00,0x30,0x08,0x00,0x00,0xe6,0x08,0x00,0x00,0xe6,0x01,0xf0,0x00,0x37,0x00,0x00,0xfd,0x33,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00, -0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x03,0x33,0x00,0x90,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x04,0x50,0x00,0x53,0x04,0xb0,0x00,0xbb,0x04,0xb0,0x01,0x01, -0x04,0xb0,0x00,0xaf,0x04,0xb0,0x00,0xc2,0x04,0xb0,0x00,0x6a,0x04,0xb0,0x00,0x64,0x04,0xb0,0x00,0x39,0x04,0xb0,0x00,0x2e,0x04,0xb0,0x00,0x79,0x04,0xb0,0x00,0x81,0x06,0x04,0x00,0xfd,0x06,0x04,0x01,0x70,0x06,0x04,0x00,0xb9,0x06,0x04,0x00,0x7d,0x06,0x04,0x00,0xff,0x06,0x04,0x00,0x8c,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xf5, -0x06,0x04,0x00,0x3a,0x06,0x04,0x00,0xaf,0x04,0xc4,0x00,0xb7,0x04,0xc4,0x01,0x2a,0x04,0xc4,0x00,0x7d,0x04,0xc4,0x00,0x8b,0x04,0xc4,0x00,0xb4,0x04,0xc4,0x00,0x79,0x04,0xc4,0x00,0x9d,0x04,0xc4,0x00,0xdf,0x04,0xc4,0x00,0x4b,0x04,0xc4,0x00,0x4b,0x05,0x14,0x00,0xe1,0x05,0x14,0x00,0xdc,0x05,0x14,0x00,0xa6,0x05,0x14,0x00,0x68, -0x05,0x14,0x00,0x2d,0x05,0x14,0x00,0x0c,0x05,0x14,0x00,0x68,0x05,0x14,0x00,0x4d,0x05,0x14,0x00,0xab,0x05,0x14,0x00,0x7d,0x05,0x28,0x00,0xad,0x05,0x28,0x01,0x15,0x05,0x28,0x01,0x15,0x05,0x28,0x00,0x2f,0x05,0x28,0x00,0x40,0x05,0x28,0x00,0x34,0x05,0x28,0x00,0x55,0x05,0x28,0x00,0x4f,0x05,0x28,0x00,0xc1,0x05,0x28,0x00,0xdc, -0x07,0x44,0x01,0xbd,0x07,0x44,0x01,0x00,0x07,0x44,0x00,0xd2,0x07,0x44,0x00,0xff,0x07,0x44,0x00,0xf8,0x07,0x44,0x00,0x5c,0x07,0x44,0x00,0x27,0x07,0x44,0x01,0x1a,0x07,0x44,0x00,0x48,0x07,0x44,0x00,0x23,0x06,0x68,0x00,0xbf,0x06,0x68,0x00,0x34,0x06,0x68,0x00,0x45,0x06,0x68,0x01,0x78,0x06,0x68,0x00,0x9e,0x06,0x68,0x00,0x36, -0x06,0x68,0x00,0x99,0x06,0x68,0x01,0x4a,0x06,0x68,0x00,0x28,0x06,0x68,0x00,0x99,0x05,0xdc,0x00,0xac,0x05,0xdc,0x00,0xa1,0x05,0xdc,0x00,0xf6,0x05,0xdc,0x00,0xdd,0x05,0xdc,0x00,0x60,0x05,0xdc,0x00,0x43,0x05,0xdc,0x00,0x7e,0x05,0xdc,0x00,0xd6,0x05,0xdc,0x00,0x8d,0x05,0xdc,0x01,0x0d,0x07,0x1c,0x01,0xc8,0x07,0x1c,0x00,0x24, -0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x32,0x07,0x1c,0x00,0x7e,0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x46,0x07,0x1c,0x01,0x25,0x07,0x1c,0x00,0x4b,0x07,0x1c,0x00,0x3d,0x06,0x68,0x00,0xdf,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xc6,0x06,0x68,0x00,0xbb,0x06,0x68,0x00,0xcf,0x06,0x68,0x00,0xcf,0x06,0x68,0x01,0x08,0x06,0x68,0x00,0x35, -0x06,0x68,0x00,0xa7,0x06,0x68,0x00,0x67,0x06,0x68,0x00,0xd0,0x06,0x68,0x00,0xd2,0x06,0x68,0x01,0x47,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0x44,0x06,0x68,0x00,0x9a,0x06,0x68,0x00,0xb9,0x06,0x68,0x00,0x15,0x05,0x78,0x01,0x09,0x05,0x78,0x01,0x22,0x05,0x78,0x00,0xf8,0x05,0x78,0x01,0x0e, -0x05,0x78,0x00,0xb7,0x05,0x78,0x00,0x78,0x05,0x78,0x00,0x6c,0x05,0x78,0x00,0x3b,0x05,0x78,0x00,0xcb,0x05,0x78,0x00,0xe3,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x30,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x44, -0x04,0x88,0x00,0x80,0x04,0x88,0x00,0xa3,0x04,0x88,0x00,0x9b,0x04,0x88,0x00,0x5d,0x04,0x88,0x00,0x31,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0xd7,0x04,0x88,0x00,0x83,0x04,0x88,0x00,0x83,0x06,0x04,0x01,0x48,0x06,0x04,0x01,0x21,0x06,0x04,0x00,0x74,0x06,0x04,0x00,0x43,0x06,0x04,0x00,0xf0,0x06,0x04,0x00,0xd6, -0x06,0x04,0x01,0x0f,0x06,0x04,0x00,0x8f,0x06,0x04,0x01,0x0b,0x06,0x04,0x01,0x20,0x04,0x4c,0x00,0x9d,0x04,0x4c,0x00,0xb6,0x04,0x4c,0x00,0x36,0x04,0x4c,0x00,0x5a,0x04,0x4c,0x00,0xc5,0x04,0x4c,0x00,0xab,0x04,0x4c,0x00,0x79,0x04,0x4c,0x00,0x74,0x04,0x4c,0x00,0xa8,0x04,0x4c,0x00,0xce,0x05,0xc8,0x00,0xc3,0x05,0xc8,0x01,0x6a, -0x05,0xc8,0x01,0x08,0x05,0xc8,0x01,0x20,0x05,0xc8,0x01,0x21,0x05,0xc8,0x00,0x3c,0x05,0xc8,0x01,0x05,0x05,0xc8,0x00,0x50,0x05,0xc8,0x00,0xc9,0x05,0xc8,0x01,0x01,0x05,0xc8,0x00,0xd6,0x06,0x04,0x00,0x8b,0x06,0x04,0x02,0xb1,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xb7,0x06,0x04,0x00,0xd7,0x06,0x04,0x00,0xf9,0x06,0x04,0x01,0x37, -0x06,0x04,0x00,0x33,0x06,0x04,0x01,0x1c,0x06,0x04,0x00,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xe6,0x00,0x00,0xff,0x9c,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x05,0xcf,0x00,0x34,0x02,0x39,0x00,0x6d,0x01,0xac,0x00,0x5a,0x02,0x39,0x00,0x5b, -0x01,0xac,0x00,0x4e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xf1,0x00,0x29,0x05,0x05,0x00,0x2b,0x04,0x6b,0x00,0x66,0x03,0xc5,0x00,0x26,0x04,0x45,0x00,0x51,0x03,0xda,0x00,0x21,0x04,0xba,0x00,0x51,0x04,0x90,0x00,0x21,0x03,0x5b,0x00,0xb0,0x03,0x5d,0x00,0x68,0x09,0x08,0x00,0x16,0x06,0x8b,0x00,0x5a,0x09,0x39,0x00,0x16, -0x07,0x16,0x00,0x5a,0x07,0xe4,0x00,0x16,0x06,0xc3,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x04,0xf4,0x00,0x68,0x03,0xb2,0x00,0x50,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0x12, -0x03,0xfa,0x00,0x27,0x04,0x5b,0x00,0xbc,0x02,0x82,0x00,0xa6,0x03,0xc4,0x00,0x12,0x01,0xf0,0x00,0x1e,0x06,0x08,0x00,0x00,0x04,0xb0,0x00,0x00,0x06,0xdf,0x00,0x5e,0x05,0x64,0x00,0x60,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60,0x04,0x7b,0x00,0x19,0x04,0xb4,0x00,0x1e,0x05,0x83,0x00,0x1e,0x05,0xa6,0x00,0x05,0x06,0x79,0x00,0x0a, -0x06,0xe5,0x00,0x05,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xd4,0x00,0x5e,0x06,0x42,0x00,0x60,0x04,0x5c,0x00,0x1e,0x03,0x2e,0x00,0x0f,0x04,0x79,0x00,0x3d,0x03,0xee,0x00,0x0f,0x04,0xf8,0x00,0x12,0x03,0xd5,0xff,0xe8,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xea,0x00,0x55,0x04,0x2d,0x00,0x3e,0x04,0x7b,0x00,0x12, -0x04,0xb4,0x00,0x27,0x04,0x7b,0x00,0x12,0x04,0xb4,0x00,0x27,0x03,0xd9,0x00,0xbc,0x03,0x32,0x00,0xa6,0x03,0xcd,0x00,0x60,0x03,0x19,0x00,0x1e,0x03,0xc8,0x00,0x14,0x02,0xf2,0xff,0x76,0x04,0x24,0x00,0x38,0x04,0x2a,0x00,0x43,0x02,0x69,0x00,0x28,0x05,0x65,0x00,0x60,0x02,0x9f,0x00,0xa6,0x07,0xa9,0x00,0xa6,0x05,0x4d,0x00,0xa6, -0x02,0xc8,0x00,0xa6,0x04,0xa7,0x00,0xa6,0x04,0xea,0x00,0x2b,0x03,0xb0,0xff,0xec,0x06,0x08,0x00,0x0f,0x04,0x79,0x00,0x60,0x03,0x08,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xa4,0x00,0x5a,0x04,0xa4,0x00,0x59,0x04,0x9f,0x00,0x60,0x03,0xc4,0x00,0x20,0x01,0xf0,0x00,0xa6,0x06,0x15,0x00,0xbc,0x04,0xc9,0x00,0xa6,0x02,0xf4,0x00,0xbc, -0x02,0xc8,0x00,0xa6,0x04,0xfa,0x00,0x5e,0x03,0xac,0x00,0x60,0x05,0xae,0x00,0xbc,0x03,0x17,0xff,0xe5,0x06,0x3d,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0xf4,0x00,0x00,0x03,0xb2,0x00,0x00,0x05,0x7d,0x00,0x01,0x04,0xb6,0x00,0x00,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x26,0x05,0xfc,0x00,0x12,0x04,0x87,0x00,0x19,0x04,0xc9,0x00,0x12, -0x02,0xc8,0x00,0x23,0x04,0x40,0x00,0x45,0x03,0x65,0x00,0x60,0x06,0x00,0xff,0xac,0x03,0x64,0x00,0x19,0x04,0x3e,0x00,0x3e,0x06,0xe4,0x00,0x90,0x03,0xe8,0x00,0x54,0x04,0x7b,0x00,0x52,0x07,0x2f,0x00,0xbd,0x02,0x21,0x00,0xbc,0x09,0x2b,0x00,0x1a,0x07,0x25,0x00,0x50,0x07,0x31,0x00,0x50,0x09,0x76,0x00,0x4a,0x07,0x11,0x00,0x50, -0x07,0x53,0x00,0x8d,0x07,0x53,0x00,0x81,0x07,0x07,0x00,0x2f,0x07,0x17,0x00,0x50,0x07,0x60,0x00,0x7b,0x04,0x21,0x00,0x50,0x03,0xc4,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0x9c,0x00,0x1a,0x07,0x8c,0x00,0x1a,0x01,0xf0,0x00,0xa6,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x06,0xe4,0x00,0xa6, -0x08,0x3c,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x08,0x3c,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x06,0x5c,0x01,0x05,0x05,0x9c,0x00,0xbc,0x09,0x18,0x00,0x5e,0x07,0x60,0x00,0x48,0x04,0x27,0x00,0x00,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, -0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba, -0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x06,0x03,0x00,0x82,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x82,0x06,0x03,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a,0x03,0x57,0xff,0xa6,0x03,0x57,0xff,0xa6, -0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x1c,0x00,0x02,0x04,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x0c,0x66,0x00,0x73, -0x04,0x1f,0x00,0xbc,0x03,0x2b,0x00,0xa6,0x04,0x83,0x00,0x50,0x04,0x38,0x00,0x50,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x07,0x02,0x00,0x10,0x05,0x5a,0x00,0x10,0x05,0xfe,0x00,0xbc,0x06,0x04,0x00,0xa6,0x06,0xa5,0x00,0x3d,0x06,0x8a,0x00,0x3e,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x08,0x09,0x00,0x10, -0x06,0x73,0x00,0x10,0x08,0x57,0x00,0xbc,0x06,0xda,0x00,0xa6,0x05,0x7d,0x00,0xa6,0x04,0xb4,0x00,0x98,0x02,0x81,0x00,0x35,0x02,0x81,0x00,0x35,0x04,0xac,0x00,0x5c,0x05,0x2c,0x00,0xbc,0x03,0x44,0x00,0x1e,0x04,0xcc,0x00,0x81,0x04,0x21,0x00,0x77,0x04,0xa2,0x00,0x06,0x03,0xdf,0xff,0xbd,0x05,0xea,0x00,0xbc,0x06,0x68,0x00,0x60, -0x03,0x34,0x00,0x78,0x04,0xb0,0x00,0x60,0x03,0x70,0x00,0x49,0x01,0xae,0x00,0x06,0x02,0xf7,0x00,0x1c,0x04,0x40,0x00,0x79,0x04,0x68,0x00,0x21,0x01,0xbb,0x00,0x70,0x01,0xbc,0x00,0x70,0x01,0x78,0x00,0x27,0x01,0xbc,0x00,0x6f,0x03,0x00,0x00,0x30,0x03,0x00,0x01,0x2e,0x03,0x00,0x00,0x30,0x03,0x96,0x00,0x83,0x0b,0xe8,0x00,0x00, -0x0f,0xf4,0x00,0x00,0x02,0xb7,0x00,0x25,0x03,0x4c,0x00,0x5b,0x01,0x11,0xff,0xda,0x02,0x21,0xff,0xf7,0x03,0x1b,0x00,0x0c,0x03,0x72,0x00,0x5b,0x02,0x89,0x00,0x5a,0x03,0xf3,0x00,0x1e,0x04,0x38,0x00,0x5c,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x96, -0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x0a,0xa0,0x00,0xb4,0x04,0x50,0x00,0x40,0x06,0x18,0x00,0x32,0x07,0x57,0x00,0x26,0x07,0x2f,0x00,0xbc,0x05,0x29,0x00,0x16,0x03,0xb2,0x00,0x60, -0x04,0x87,0x00,0xa6,0x05,0xc2,0x00,0x6e,0x05,0xe0,0x00,0x75,0x03,0xe8,0xff,0x9a,0x02,0x81,0x00,0x35,0x05,0x4a,0x00,0x5e,0x04,0x26,0x00,0x60,0x05,0x72,0x00,0x5e,0x04,0x70,0x00,0x60,0x05,0x4a,0x00,0x5e,0x04,0x43,0x00,0x60,0x04,0x52,0x00,0x60,0x05,0xf3,0x00,0x5e,0x04,0xbd,0x00,0x28,0x04,0xa4,0x00,0x02,0x04,0x31,0x00,0x29, -0x05,0xfe,0x00,0x32,0x04,0xea,0xff,0xf9,0x06,0xa8,0x00,0x5a,0x03,0xa4,0x00,0x64,0x04,0x2f,0x00,0x13,0x05,0x10,0x00,0x29,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x02,0xb7,0x00,0x00,0x02,0xc7,0x00,0x23,0x01,0xf0,0xff,0xf6,0x07,0x04,0x00,0xa6,0x04,0xa8,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0x2d,0x00,0x64,0x04,0x2d,0x00,0x54, -0x04,0xb0,0x00,0x80,0x07,0x6c,0x00,0x60,0x07,0x6c,0x00,0x60,0x07,0x8d,0x00,0x60,0x07,0xf8,0x00,0x60,0x07,0xf8,0x00,0x60,0x04,0x61,0x00,0x7d,0x03,0xff,0x00,0xb0,0x02,0x42,0x00,0xa6,0x04,0x01,0x00,0xa6,0x03,0xaa,0x00,0x1c,0x04,0xde,0x00,0x1c,0x03,0xa3,0x00,0x3c,0x05,0x57,0x00,0x3c,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, -0x04,0xcb,0x00,0x21,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0xeb,0x00,0x0e,0x04,0x4e,0x00,0x0c,0x04,0x9c,0x00,0x0c,0x04,0x4e,0x00,0x0c,0x04,0x2c,0x00,0x1a,0x03,0xac,0xff,0x1f,0x04,0x2c,0xff,0x1f,0x03,0xac,0xfe,0xc8,0x03,0xdf,0x00,0x0e,0x02,0x6e,0x00,0x25,0x02,0xb2,0x00,0x64,0x01,0xf4,0x00,0x00,0x01,0xbf,0x00,0x00, -0x02,0xe4,0x00,0x00,0x04,0xa0,0x00,0x60,0x05,0x10,0x00,0x58,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf, -0x02,0x58,0x00,0x8b,0x02,0x8a,0x00,0x0c,0x02,0x8a,0x00,0x0c,0x00,0x00,0xff,0xd4,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x01,0x00,0x05,0x02,0x01,0x00,0x05,0x0d,0x74,0x00,0x52,0x07,0xf5,0x00,0x32,0x06,0xf9,0x00,0x32,0x08,0x63,0x00,0x32,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x9e,0x00,0x05, -0x03,0x2a,0x00,0x9a,0x02,0x0c,0x00,0x05,0x02,0x26,0x00,0x15,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x21,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xf8,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x69,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x00,0x00,0xff,0xe7,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, -0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0x12,0x00,0xc4,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x00, -0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0xfe,0x45,0x02,0xdb,0x00,0x14,0x05,0xfa,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x05,0xae,0xff,0x98,0x04,0x9e,0xff,0x5c,0x0a,0x08,0x00,0x0f,0x08,0x46,0x00,0x12,0x05,0x8c,0x00,0x0f,0x04,0x60,0x00,0x12,0x05,0x9e,0x00,0x10,0x04,0x65,0x00,0x10,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60, -0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x03,0x1b,0x00,0x0c,0x02,0x89,0x00,0x5a,0x04,0xf2,0x00,0x28,0x00,0x00,0xff,0x38,0x05,0x76,0x00,0x50,0x04,0x50,0x00,0xbc,0x02,0xb0,0x00,0x66,0x02,0x6a,0x00,0x66,0x01,0x4c,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbe,0x00,0x66,0x02,0x09,0x00,0x3c,0x01,0x9c,0x00,0x0a, -0x03,0xb1,0x00,0x1e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x01,0xbc,0x00,0x70,0x04,0x31,0x00,0x29,0x03,0x68,0x00,0x20,0x04,0xb8,0x00,0x1a,0x04,0x96,0x00,0xbc,0x04,0x62,0x00,0xa7,0x07,0xb2,0x00,0x5a, -0x06,0x77,0x00,0x77,0x06,0x74,0x00,0xa6,0x06,0x50,0x00,0xa6,0x06,0x89,0x00,0x60,0x07,0x8a,0x00,0x90,0x05,0x03,0x00,0x35,0x05,0x7c,0x00,0x68,0x04,0xcf,0x00,0x50,0x03,0x25,0x00,0x50,0x07,0x6e,0x00,0x3c,0x09,0x01,0x00,0x54,0x03,0x85,0x00,0x74,0x09,0x3d,0xff,0xf8,0x04,0x02,0x00,0x65,0x06,0xae,0x00,0xab,0x07,0x59,0x00,0xab, -0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x9a,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x32,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfb,0x6b,0x00,0x00,0xfb,0x9b, -0x00,0x00,0xfc,0x00,0x00,0x00,0xfd,0x71,0x00,0x00,0xfd,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0x04,0x64,0x00,0xdc,0x00,0x00,0xfe,0xd4,0x04,0xad,0x00,0x65,0x04,0xad,0xff,0xba,0x04,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, -0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x03,0xf1,0xff,0xba,0x03,0xf1,0xff,0xba,0x00,0x00,0xfe,0x84,0x03,0x57,0x00,0x00,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba, -0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0x58,0x00,0xab,0x02,0x58,0x00,0xd4,0x02,0x58,0x00,0x66,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x7f,0x02,0x58,0x00,0x4f,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x53,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x2b, -0x02,0x58,0x00,0x4d,0x0c,0x05,0x00,0xa1,0x0c,0x05,0x00,0xa1,0x07,0x0a,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0a,0x00,0x73,0x07,0x0a,0x00,0x73,0x03,0x4d,0x00,0xf2,0x03,0x4d,0x01,0x2f,0x03,0x4d,0x00,0x76,0x03,0x4d,0x00,0x25,0x03,0x4d,0x00,0xab,0x03,0x4d,0x00,0x62,0x03,0x4d,0x00,0x42,0x03,0x4d,0x00,0x1c, -0x03,0x4d,0x00,0x1d,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x69,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x6f,0x03,0x4d,0x00,0x41,0x03,0x4d,0x00,0x6b,0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x9a,0x04,0xf1,0x00,0x55,0x05,0x26,0x00,0x78,0x05,0x30,0x00,0x78,0x07,0x1a,0x00,0x82,0x05,0x27,0x00,0x64,0x05,0x0b,0x00,0x6e,0x06,0x62,0x00,0x28, -0x07,0xce,0x00,0x82,0x05,0x34,0x00,0x82,0x05,0x0b,0x00,0x6e,0x08,0x8a,0x00,0x82,0x05,0x14,0x00,0x82,0x05,0x14,0x00,0xa0,0x07,0x7a,0x00,0x82,0x05,0x0b,0x00,0x6e,0x05,0x63,0x00,0x64,0x06,0x52,0x00,0x82,0x05,0x1a,0x00,0xa0,0x06,0x28,0x00,0x6e,0x06,0xc3,0x00,0x0a,0x07,0x4d,0x00,0x55,0x05,0x1d,0x00,0x5a,0x06,0x24,0x00,0x82, -0x05,0x31,0x00,0x6e,0x05,0x93,0x00,0x32,0x04,0xf8,0x00,0xa0,0x05,0x95,0x00,0x82,0x05,0x00,0x00,0x6e,0x05,0x45,0x00,0x50,0x05,0x7b,0x00,0x32,0x05,0x00,0x00,0xa0,0x06,0x3a,0x00,0x50,0x04,0xc8,0x00,0x50,0x05,0x4e,0x00,0x82,0x06,0x48,0x00,0x64,0x04,0xf2,0x00,0x64,0x05,0x01,0x00,0x64,0x04,0x8d,0x00,0x6e,0x06,0x47,0x00,0x6e, -0x05,0x23,0x00,0x76,0x05,0x31,0x00,0xa0,0x05,0x30,0x00,0x78,0x05,0x96,0x00,0x82,0x03,0x93,0x00,0x00,0x04,0x39,0x00,0x00,0x05,0x23,0x00,0x62,0x06,0x48,0x00,0x64,0x06,0x36,0x00,0x78,0x04,0x56,0x00,0xbe,0x00,0x00,0x14,0xe0,0x19,0x01,0x25,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x0c,0x2c,0x01,0x01,0x24,0x01,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x09,0x22,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x2e,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x0d,0x0c,0x0c,0x0c, -0x2e,0x01,0x01,0x01,0x0c,0x19,0x0c,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x0c,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x23,0x01,0x2a,0x2a,0x01,0x01,0x24,0x1c,0x01,0x0c,0x2a, -0x01,0x1c,0x1c,0x01,0x0c,0x0f,0x01,0x01,0x01,0x01,0x01,0x0c,0x04,0x0c,0x01,0x01,0x01,0x01,0x1f,0x01,0x1c,0x27,0x01,0x01,0x0e,0x01,0x01,0x0c,0x01,0x08,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x0c,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x09, -0x09,0x09,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x2e,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x16,0x01,0x16,0x01,0x01,0x0e,0x24,0x0c,0x01,0x15,0x29,0x0d,0x01,0x01,0x01,0x01,0x05,0x0c,0x01,0x19,0x01,0x01,0x12,0x19,0x19,0x19,0x19,0x19,0x01,0x01,0x0d,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c, -0x2e,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x27,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x04,0x0c,0x0c,0x0c,0x27,0x0c,0x27,0x0c,0x27,0x0c,0x0c,0x01, -0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x03,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x0e,0x0c,0x01,0x0c,0x24,0x01,0x0c,0x01,0x0c,0x01,0x1b,0x01,0x0c,0x0c,0x01,0x01,0x04,0x0e,0x01,0x01,0x0c,0x0c,0x27,0x0c,0x01, -0x0e,0x0d,0x01,0x0c,0x0c,0x0c,0x0d,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x0d,0x0d,0x07,0x07,0x01,0x1b,0x01,0x01,0x0c,0x01,0x01,0x0d,0x01,0x01,0x0c,0x01,0x22,0x20,0x0e,0x1a,0x01,0x1f,0x01,0x2c,0x01,0x22,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x0e,0x26,0x26,0x26,0x0c,0x26,0x0d, -0x0e,0x0c,0x0e,0x0c,0x01,0x01,0x01,0x2c,0x01,0x0e,0x0c,0x0e,0x26,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x0c,0x01,0x01,0x01,0x0e,0x2d,0x0c,0x0c,0x01,0x0e,0x01,0x01,0x01,0x2e,0x01,0x01,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0c,0x25,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x25,0x0c, -0x25,0x0c,0x25,0x0c,0x25,0x0c,0x25,0x09,0x0c,0x09,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x07,0x26,0x01,0x24,0x01,0x01,0x23,0x01,0x28,0x01,0x29,0x22,0x01,0x02,0x22,0x0e,0x0c,0x0e,0x0c,0x0e,0x01,0x02,0x01,0x0c,0x20,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01, -0x01,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01, -0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x0d,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x22,0x19,0x22,0x19,0x27,0x0c,0x27,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x16,0x01,0x16,0x01,0x16,0x0c,0x01,0x0c,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x22,0x22, -0x22,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x2a,0x02,0x02,0x19,0x01,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, -0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, -0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x01,0x01,0x29,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x1e,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x22,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x32,0x1a,0x15,0x1a,0x15,0x01,0x22,0x25,0x01,0x01,0x16,0x0a,0x0a,0x01,0x01,0x01,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c,0x2e,0x01,0x0c, -0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x13,0x15,0x2c,0x2e,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x0c,0x30,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x2e,0x01,0x2e,0x2d,0x2d,0x2e,0x2e,0x01,0x29,0x01,0x01,0x01,0x01,0x0a,0x2e,0x2e,0x01,0x19,0x01,0x01,0x01,0x01,0x16,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x03,0x01,0x01,0x1f,0x1a,0x1a,0x01,0x01,0x01,0x19,0x01,0x01, -0x01,0x16,0x2b,0x01,0x01,0x1b,0x1b,0x1b,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x2e,0x1b,0x1b,0x07,0x0b,0x16,0x17,0x01,0x01,0x01,0x01,0x25,0x02,0x02,0x01,0x22,0x01,0x2e,0x01,0x1e,0x01,0x01,0x01,0x01,0x07,0x01,0x04,0x2a,0x01,0x01,0x01,0x02,0x01,0x01,0x19,0x01,0x01,0x01,0x0a,0x1a,0x01,0x01,0x26,0x01,0x01,0x01,0x01, -0x07,0x01,0x01,0x01,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x08,0x05,0x01,0x01,0x01,0x01,0x07,0x01,0x0b,0x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x1f,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x26,0x01,0x01,0x2f,0x01,0x0a, -0x2d,0x01,0x01,0x01,0x01,0x2c,0x01,0x09,0x01,0x01,0x10,0x01,0x10,0x01,0x0d,0x0e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0e,0x0d,0x26,0x01,0x01,0x07,0x26,0x07,0x26,0x0c,0x0c,0x01,0x0c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x0c,0x1f,0x01,0x25,0x2e,0x01,0x01, -0x01,0x0a,0x01,0x01,0x26,0x01,0x30,0x01,0x01,0x22,0x15,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30, -0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30, -0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x26,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x0c,0x16,0x01,0x01,0x01,0x0c,0x01,0x0e,0x01,0x22,0x01,0x2c,0x29,0x01,0x24,0x01,0x01, -0x01,0x01,0x2f,0x14,0x01,0x19,0x1f,0x01,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x02,0x01,0x14,0x01,0x14,0x14,0x01,0x01,0x01,0x01,0x02,0x01,0x25,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x30,0x01,0x05,0x01, -0x01,0x01,0x19,0x01,0x01,0x26,0x2e,0x01,0x01,0x01,0x01,0x01,0x2a,0x18,0x18,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x16,0x2f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x16,0x2e,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x2e,0x0c,0x01,0x0d,0x0c, -0x0c,0x01,0x01,0x01,0x19,0x01,0x16,0x01,0x2e,0x2e,0x01,0x01,0x26,0x01,0x01,0x2d,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x25,0x1f,0x01,0x01,0x01,0x01,0x01,0x1b,0x1b,0x01,0x01,0x01,0x1e,0x02,0x02,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x14, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x01, -0x01,0x01,0x10,0x10,0x01,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x2c,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x30,0x01,0x01,0x01,0x01,0x01,0x19,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01, -0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x05,0x01,0x01,0x01,0x0c,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01, -0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x30,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x01,0x24,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01, -0x01,0x01,0x01,0x0d,0x01,0x1b,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x29,0x13,0x01,0x01,0x04,0x1e,0x01,0x01,0x06,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x08,0x2f,0x01,0x2e,0x27,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x01,0x13,0x01,0x27,0x32,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x1b,0x13,0x13,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x10,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x2f,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x08,0x2b,0x17,0x17,0x17,0x19,0x01,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01, -0x01,0x2b,0x01,0x08,0x08,0x08,0x08,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x08,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x08,0x2b,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0xfd,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x20,0x01,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x20,0x01,0x2c,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x18,0x01,0x01,0x1f,0x10, -0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0c,0x01,0x28,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x2f,0x01,0x24,0x24,0x24,0x0f,0x24,0x30,0x24,0x0e,0x02,0x24,0x17,0x01,0x24,0x0e,0x26,0x26,0x16,0x01,0x24,0x0e,0x0e,0x01,0x24,0x24,0x24,0x24,0x24,0x16,0x30,0x01,0x24, -0x01,0x17,0x01,0x01,0x24,0x24,0x16,0x01,0x09,0x16,0x27,0x09,0x01,0x0d,0x09,0x11,0x16,0x1f,0x01,0x01,0x1b,0x09,0x01,0x01,0x27,0x01,0x0a,0x01,0x27,0x01,0x2b,0x01,0x15,0x01,0x0a,0x2b,0x01,0x01,0x01,0x01,0x0a,0x01,0x11,0x01,0x01,0x06,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x0c,0x30,0x01,0x2b,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x04,0x01,0x2e,0x30,0x04,0x01,0x0c,0x09,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x02,0x2d,0x01,0x01,0x31,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x2d,0x2d,0x2d,0x2d,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x1d,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x31,0x01,0x19,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x1e,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x24,0x0d,0x01,0x01,0x0c,0x01,0x01,0x03,0x01, -0x01,0x01,0x01,0x22,0x22,0x01,0x2c,0x24,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x09,0x09,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x0c,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01, -0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x01,0x01,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x0c,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x28,0x01,0x03,0x01,0x01,0x25,0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x31,0x31,0x01,0x01,0x01,0x18,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05, -0x01,0x2d,0x1d,0x0b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x12,0x01,0x2c,0x01,0x07,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x16,0x01,0x1b,0x01,0x29,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x23,0x01,0x01,0x12,0x01,0x01,0x0d,0x27,0x01,0x01,0x25,0x20,0x01,0x17,0x01,0x01,0x17, -0x17,0x01,0x20,0x17,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x20,0x20,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x1e,0x32,0x01,0x15,0x01,0x01,0x01,0x02,0x16,0x01,0x1d,0x01,0x01,0x01,0x01,0x02,0x01,0x11,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x19,0x19,0x19,0x19,0x19,0x19,0x01,0x19,0x19, -0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x12,0x01,0x11,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01, -0x30,0x01,0x01,0x01,0x01,0x01,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x14,0x29,0x14,0x14,0x14,0x01,0x30,0x30,0x2c,0x01,0x01,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x09,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x0c,0x01, -0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x08,0x01,0x25,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x26,0x01,0x06,0x1b,0x01,0x01,0x01,0x1b,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x1a,0x25,0x01,0x01,0x25,0x01,0x20,0x01,0x17,0x1a,0x01,0x15,0x2c,0x2c,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27, -0x27,0x27,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x32, -0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x14,0x01,0x01,0x01,0x22,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x26,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x2e,0x01,0x01,0x01,0x01,0x01,0x28,0x18,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x19,0x27,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x1a,0x01,0x01,0x01,0x2c,0x2e,0x01,0x02,0x03, -0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x06,0x01,0x1f,0x07,0x07,0x01,0x17,0x01,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x0d,0x12,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x1b,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x13,0x07,0x26,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01, -0x02,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x02,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x20,0x01,0x0d,0x01,0x01,0x01,0x01,0x07,0x24,0x04,0x01,0x01,0x10,0x0c,0x2e,0x01,0x25,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x08,0x08,0x0a,0x01,0x01,0x16,0x10,0x01,0x01,0x0d,0x01,0x01,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f, -0x2c,0x11,0x01,0x01,0x10,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x20,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01, -0x01,0x01,0x01,0x01,0x01,0x24,0x03,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x0b,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x1c,0x01,0x01,0x01,0x01,0x0d,0x2d,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, -0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x01,0x18,0x30,0x01,0x01,0x18,0x26,0x01,0x01,0x18,0x18,0x01,0x01,0x1e,0x01,0x2b,0x01,0x01,0x1d,0x30,0x01,0x22,0x31,0x01,0x01,0x1c,0x01,0x01,0x2f,0x01,0x08,0x01,0x01, -0x1e,0x08,0x08,0x30,0x01,0x01,0x01,0x01,0x08,0x08,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x0c,0x00,0xf8,0x08,0xff,0x00,0x08,0x00,0x09,0xff,0xfe,0x00,0x09,0x00,0x0a,0xff,0xfe,0x00,0x0a,0x00,0x0a,0xff,0xfe,0x00,0x0b,0x00,0x0b,0xff,0xfe,0x00,0x0c,0x00,0x0c,0xff,0xfd,0x00,0x0d,0x00,0x0e,0xff,0xfd, -0x00,0x0e,0x00,0x0f,0xff,0xfc,0x00,0x0f,0x00,0x10,0xff,0xfc,0x00,0x10,0x00,0x11,0xff,0xfc,0x00,0x11,0x00,0x12,0xff,0xfb,0x00,0x12,0x00,0x14,0xff,0xfb,0x00,0x13,0x00,0x14,0xff,0xfb,0x00,0x14,0x00,0x17,0xff,0xfb,0x00,0x15,0x00,0x18,0xff,0xfa,0x00,0x16,0x00,0x18,0xff,0xfa,0x00,0x17,0x00,0x19,0xff,0xfa,0x00,0x18,0x00,0x1a, -0xff,0xfa,0x00,0x19,0x00,0x1c,0xff,0xf9,0x00,0x1a,0x00,0x1d,0xff,0xf9,0x00,0x1b,0x00,0x1e,0xff,0xf9,0x00,0x1c,0x00,0x1f,0xff,0xf9,0x00,0x1d,0x00,0x20,0xff,0xf8,0x00,0x1e,0x00,0x21,0xff,0xf8,0x00,0x1f,0x00,0x22,0xff,0xf8,0x00,0x20,0x00,0x24,0xff,0xf7,0x00,0x21,0x00,0x24,0xff,0xf7,0x00,0x22,0x00,0x25,0xff,0xf7,0x00,0x23, -0x00,0x26,0xff,0xf7,0x00,0x24,0x00,0x27,0xff,0xf7,0x00,0x25,0x00,0x28,0xff,0xf6,0x00,0x26,0x00,0x29,0xff,0xf6,0x00,0x27,0x00,0x2a,0xff,0xf6,0x00,0x28,0x00,0x2b,0xff,0xf5,0x00,0x29,0x00,0x2c,0xff,0xf5,0x00,0x2a,0x00,0x2e,0xff,0xf5,0x00,0x2b,0x00,0x2f,0xff,0xf4,0x00,0x2c,0x00,0x30,0xff,0xf4,0x00,0x2d,0x00,0x31,0xff,0xf4, -0x00,0x2e,0x00,0x32,0xff,0xf4,0x00,0x2f,0x00,0x32,0xff,0xf4,0x00,0x30,0x00,0x34,0xff,0xf3,0x00,0x31,0x00,0x35,0xff,0xf3,0x00,0x32,0x00,0x36,0xff,0xf3,0x00,0x33,0x00,0x37,0xff,0xf3,0x00,0x34,0x00,0x38,0xff,0xf2,0x00,0x35,0x00,0x39,0xff,0xf2,0x00,0x36,0x00,0x3a,0xff,0xf2,0x00,0x37,0x00,0x3c,0xff,0xf2,0x00,0x38,0x00,0x3c, -0xff,0xf2,0x00,0x39,0x00,0x3d,0xff,0xf1,0x00,0x3a,0x00,0x3e,0xff,0xf1,0x00,0x3b,0x00,0x3f,0xff,0xf1,0x00,0x3c,0x00,0x41,0xff,0xf0,0x00,0x3d,0x00,0x42,0xff,0xf0,0x00,0x3e,0x00,0x44,0xff,0xf0,0x00,0x3f,0x00,0x45,0xff,0xf0,0x00,0x40,0x00,0x45,0xff,0xef,0x00,0x41,0x00,0x46,0xff,0xef,0x00,0x42,0x00,0x47,0xff,0xef,0x00,0x43, -0x00,0x48,0xff,0xef,0x00,0x44,0x00,0x49,0xff,0xee,0x00,0x45,0x00,0x4a,0xff,0xee,0x00,0x46,0x00,0x4b,0xff,0xee,0x00,0x47,0x00,0x4c,0xff,0xee,0x00,0x48,0x00,0x4d,0xff,0xed,0x00,0x49,0x00,0x4f,0xff,0xed,0x00,0x4a,0x00,0x50,0xff,0xed,0x00,0x4b,0x00,0x51,0xff,0xed,0x00,0x4c,0x00,0x51,0xff,0xec,0x00,0x4d,0x00,0x52,0xff,0xec, -0x00,0x4e,0x00,0x54,0xff,0xec,0x00,0x4f,0x00,0x55,0xff,0xec,0x00,0x50,0x00,0x56,0xff,0xec,0x00,0x51,0x00,0x57,0xff,0xeb,0x00,0x52,0x00,0x58,0xff,0xeb,0x00,0x53,0x00,0x59,0xff,0xeb,0x00,0x54,0x00,0x5a,0xff,0xea,0x00,0x55,0x00,0x5b,0xff,0xea,0x00,0x56,0x00,0x5c,0xff,0xea,0x00,0x57,0x00,0x5e,0xff,0xea,0x00,0x58,0x00,0x5e, -0xff,0xea,0x00,0x59,0x00,0x5f,0xff,0xe9,0x00,0x5a,0x00,0x61,0xff,0xe9,0x00,0x5b,0x00,0x61,0xff,0xe9,0x00,0x5c,0x00,0x63,0xff,0xe8,0x00,0x5d,0x00,0x64,0xff,0xe8,0x00,0x5e,0x00,0x65,0xff,0xe8,0x00,0x5f,0x00,0x66,0xff,0xe7,0x00,0x60,0x00,0x67,0xff,0xe7,0x00,0x61,0x00,0x69,0xff,0xe7,0x00,0x62,0x00,0x69,0xff,0xe7,0x00,0x63, -0x00,0x6a,0xff,0xe7,0x00,0x64,0x00,0x6b,0xff,0xe6,0x00,0x65,0x00,0x6d,0xff,0xe6,0x00,0x66,0x00,0x6e,0xff,0xe6,0x00,0x67,0x00,0x6f,0xff,0xe6,0x00,0x68,0x00,0x70,0xff,0xe5,0x00,0x69,0x00,0x71,0xff,0xe5,0x00,0x6a,0x00,0x72,0xff,0xe5,0x00,0x6b,0x00,0x73,0xff,0xe5,0x00,0x6c,0x00,0x75,0xff,0xe4,0x00,0x6d,0x00,0x76,0xff,0xe4, -0x00,0x6e,0x00,0x76,0xff,0xe4,0x00,0x6f,0x00,0x77,0xff,0xe4,0x00,0x70,0x00,0x79,0xff,0xe4,0x00,0x71,0x00,0x79,0xff,0xe3,0x00,0x72,0x00,0x7b,0xff,0xe3,0x00,0x73,0x00,0x7b,0xff,0xe3,0x00,0x74,0x00,0x7c,0xff,0xe3,0x00,0x75,0x00,0x7d,0xff,0xe2,0x00,0x76,0x00,0x7e,0xff,0xe2,0x00,0x77,0x00,0x80,0xff,0xe2,0x00,0x78,0x00,0x80, -0xff,0xe1,0x00,0x79,0x00,0x82,0xff,0xe1,0x00,0x7a,0x00,0x82,0xff,0xe1,0x00,0x7b,0x00,0x84,0xff,0xe1,0x00,0x7c,0x00,0x85,0xff,0xe1,0x00,0x7d,0x00,0x86,0xff,0xe0,0x00,0x7e,0x00,0x87,0xff,0xe0,0x00,0x7f,0x00,0x88,0xff,0xe0,0x00,0x80,0x00,0x89,0xff,0xdf,0x00,0x81,0x00,0x8a,0xff,0xdf,0x00,0x82,0x00,0x8c,0xff,0xdf,0x00,0x83, -0x00,0x8d,0xff,0xdf,0x00,0x84,0x00,0x8e,0xff,0xde,0x00,0x85,0x00,0x8e,0xff,0xdf,0x00,0x86,0x00,0x8f,0xff,0xde,0x00,0x87,0x00,0x90,0xff,0xde,0x00,0x88,0x00,0x92,0xff,0xde,0x00,0x89,0x00,0x93,0xff,0xdd,0x00,0x8a,0x00,0x94,0xff,0xdd,0x00,0x8b,0x00,0x95,0xff,0xdd,0x00,0x8c,0x00,0x96,0xff,0xdc,0x00,0x8d,0x00,0x97,0xff,0xdc, -0x00,0x8e,0x00,0x99,0xff,0xdc,0x00,0x8f,0x00,0x9a,0xff,0xdc,0x00,0x90,0x00,0x9a,0xff,0xdb,0x00,0x91,0x00,0x9b,0xff,0xdb,0x00,0x92,0x00,0x9c,0xff,0xdb,0x00,0x93,0x00,0x9e,0xff,0xdb,0x00,0x94,0x00,0x9f,0xff,0xda,0x00,0x95,0x00,0xa0,0xff,0xda,0x00,0x96,0x00,0xa1,0xff,0xda,0x00,0x97,0x00,0xa2,0xff,0xda,0x00,0x98,0x00,0xa3, -0xff,0xd9,0x00,0x99,0x00,0xa4,0xff,0xd9,0x00,0x9a,0x00,0xa5,0xff,0xd9,0x00,0x9b,0x00,0xa6,0xff,0xd9,0x00,0x9c,0x00,0xa7,0xff,0xd8,0x00,0x9d,0x00,0xa8,0xff,0xd8,0x00,0x9e,0x00,0xa9,0xff,0xd8,0x00,0x9f,0x00,0xab,0xff,0xd8,0x00,0xa0,0x00,0xab,0xff,0xd7,0x00,0xa1,0x00,0xad,0xff,0xd7,0x00,0xa2,0x00,0xae,0xff,0xd7,0x00,0xa3, -0x00,0xaf,0xff,0xd7,0x00,0xa4,0x00,0xb1,0xff,0xd6,0x00,0xa5,0x00,0xb1,0xff,0xd6,0x00,0xa6,0x00,0xb2,0xff,0xd6,0x00,0xa7,0x00,0xb3,0xff,0xd6,0x00,0xa8,0x00,0xb3,0xff,0xd5,0x00,0xa9,0x00,0xb6,0xff,0xd5,0x00,0xaa,0x00,0xb7,0xff,0xd5,0x00,0xab,0x00,0xb8,0xff,0xd5,0x00,0xac,0x00,0xb8,0xff,0xd4,0x00,0xad,0x00,0xb9,0xff,0xd4, -0x00,0xae,0x00,0xba,0xff,0xd4,0x00,0xaf,0x00,0xbb,0xff,0xd3,0x00,0xb0,0x00,0xbe,0xff,0xd3,0x00,0xb1,0x00,0xbe,0xff,0xd3,0x00,0xb2,0x00,0xbf,0xff,0xd3,0x00,0xb3,0x00,0xc0,0xff,0xd3,0x00,0xb4,0x00,0xc1,0xff,0xd2,0x00,0xb5,0x00,0xc2,0xff,0xd2,0x00,0xb6,0x00,0xc3,0xff,0xd2,0x00,0xb7,0x00,0xc5,0xff,0xd2,0x00,0xb8,0x00,0xc5, -0xff,0xd1,0x00,0xb9,0x00,0xc6,0xff,0xd1,0x00,0xba,0x00,0xc8,0xff,0xd1,0x00,0xbb,0x00,0xc9,0xff,0xd1,0x00,0xbc,0x00,0xca,0xff,0xd0,0x00,0xbd,0x00,0xcb,0xff,0xd0,0x00,0xbe,0x00,0xcb,0xff,0xd0,0x00,0xbf,0x00,0xcd,0xff,0xd0,0x00,0xc0,0x00,0xcd,0xff,0xcf,0x00,0xc1,0x00,0xcf,0xff,0xcf,0x00,0xc2,0x00,0xd0,0xff,0xcf,0x00,0xc3, -0x00,0xd0,0xff,0xcf,0x00,0xc4,0x00,0xd1,0xff,0xce,0x00,0xc5,0x00,0xd3,0xff,0xce,0x00,0xc6,0x00,0xd4,0xff,0xce,0x00,0xc7,0x00,0xd5,0xff,0xce,0x00,0xc8,0x00,0xd6,0xff,0xcd,0x00,0xc9,0x00,0xd7,0xff,0xcd,0x00,0xca,0x00,0xd8,0xff,0xcd,0x00,0xcb,0x00,0xd9,0xff,0xcd,0x00,0xcc,0x00,0xda,0xff,0xcc,0x00,0xcd,0x00,0xdc,0xff,0xcc, -0x00,0xce,0x00,0xdc,0xff,0xcc,0x00,0xcf,0x00,0xdd,0xff,0xcc,0x00,0xd0,0x00,0xde,0xff,0xcb,0x00,0xd1,0x00,0xe0,0xff,0xcb,0x00,0xd2,0x00,0xe1,0xff,0xcb,0x00,0xd3,0x00,0xe2,0xff,0xcb,0x00,0xd4,0x00,0xe3,0xff,0xca,0x00,0xd5,0x00,0xe4,0xff,0xca,0x00,0xd6,0x00,0xe5,0xff,0xca,0x00,0xd7,0x00,0xe6,0xff,0xca,0x00,0xd8,0x00,0xe7, -0xff,0xc9,0x00,0xd9,0x00,0xe8,0xff,0xc9,0x00,0xda,0x00,0xea,0xff,0xc9,0x00,0xdb,0x00,0xeb,0xff,0xc9,0x00,0xdc,0x00,0xeb,0xff,0xc8,0x00,0xdd,0x00,0xed,0xff,0xc8,0x00,0xde,0x00,0xee,0xff,0xc8,0x00,0xdf,0x00,0xee,0xff,0xc8,0x00,0xe0,0x00,0xf0,0xff,0xc7,0x00,0xe1,0x00,0xf1,0xff,0xc7,0x00,0xe2,0x00,0xf3,0xff,0xc6,0x00,0xe3, -0x00,0xf3,0xff,0xc6,0x00,0xe4,0x00,0xf4,0xff,0xc6,0x00,0xe5,0x00,0xf5,0xff,0xc6,0x00,0xe6,0x00,0xf6,0xff,0xc6,0x00,0xe7,0x00,0xf8,0xff,0xc6,0x00,0xe8,0x00,0xf8,0xff,0xc5,0x00,0xe9,0x00,0xfa,0xff,0xc5,0x00,0xea,0x00,0xfb,0xff,0xc5,0x00,0xeb,0x00,0xfb,0xff,0xc5,0x00,0xec,0x00,0xfd,0xff,0xc4,0x00,0xed,0x00,0xfd,0xff,0xc4, -0x00,0xee,0x00,0xff,0xff,0xc4,0x00,0xef,0x01,0x01,0xff,0xc4,0x00,0xf0,0x01,0x01,0xff,0xc3,0x00,0xf1,0x01,0x03,0xff,0xc3,0x00,0xf2,0x01,0x03,0xff,0xc3,0x00,0xf3,0x01,0x04,0xff,0xc3,0x00,0xf4,0x01,0x05,0xff,0xc2,0x00,0xf5,0x01,0x07,0xff,0xc2,0x00,0xf6,0x01,0x08,0xff,0xc2,0x00,0xf7,0x01,0x09,0xff,0xc2,0x00,0xf8,0x01,0x0a, -0xff,0xc1,0x00,0xf9,0x01,0x0b,0xff,0xc1,0x00,0xfa,0x01,0x0c,0xff,0xc1,0x00,0xfb,0x01,0x0d,0xff,0xc1,0x00,0xfc,0x01,0x0f,0xff,0xc0,0x00,0xfd,0x01,0x10,0xff,0xc0,0x00,0xfe,0x01,0x10,0xff,0xc0,0x00,0xff,0x01,0x11,0xff,0xc0,0x00,0x00,0x00,0x11,0x00,0x00,0x14,0xe4,0x0b,0x16,0x07,0x00,0x01,0x03,0x03,0x04,0x07,0x06,0x09,0x09, -0x03,0x03,0x03,0x05,0x08,0x03,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x07,0x06,0x07,0x08,0x06,0x06,0x08,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x09,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x0b,0x06,0x05,0x06,0x03,0x04,0x03,0x08,0x05,0x03,0x06,0x07,0x05,0x07,0x06,0x04, -0x07,0x07,0x03,0x03,0x06,0x03,0x09,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x05,0x09,0x05,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x06,0x08,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x06,0x06,0x05,0x04,0x05,0x06, -0x04,0x0a,0x0a,0x09,0x03,0x05,0x08,0x09,0x09,0x09,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x08,0x06,0x04,0x05,0x09,0x09,0x07,0x05,0x03,0x03,0x08,0x07,0x06,0x08,0x07,0x06,0x06,0x09,0x07,0x07,0x09,0x0a,0x0a,0x06,0x0b,0x04,0x04,0x03,0x03,0x08,0x06,0x05,0x05,0x02,0x06,0x03,0x03,0x06,0x06,0x04,0x03,0x03,0x04,0x0d,0x07,0x06,0x07, -0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x03,0x03,0x02,0x03,0x02,0x04,0x02,0x04,0x05,0x03,0x06,0x05,0x06,0x05,0x03,0x08,0x07,0x05,0x05,0x06,0x07,0x08,0x08,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x05,0x08,0x07,0x03,0x06,0x05,0x07,0x05,0x07,0x05,0x07,0x05,0x03,0x07,0x06,0x07,0x06,0x08,0x07,0x08, -0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07,0x08,0x07,0x06,0x05,0x06,0x05,0x05,0x08,0x07,0x07,0x07,0x05,0x07,0x05,0x09,0x05,0x05,0x04,0x0c,0x07,0x06,0x07,0x03,0x04,0x09,0x04,0x07,0x04,0x04,0x07,0x04,0x07,0x06,0x07,0x05,0x07, -0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x05,0x05,0x03,0x07,0x06,0x09,0x09,0x09, -0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x05,0x05,0x03,0x05,0x06,0x07,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x03,0x03,0x03,0x07,0x06,0x09,0x04,0x09,0x07,0x09,0x03,0x07,0x06,0x06,0x06,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x09,0x08,0x06,0x06,0x06,0x05,0x06,0x09,0x09,0x03,0x05,0x07,0x05,0x07,0x03,0x07,0x06,0x06,0x05,0x07,0x07,0x03, -0x06,0x05,0x07,0x06,0x05,0x07,0x07,0x05,0x07,0x06,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x06,0x08,0x05,0x07,0x06,0x03,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0b,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x09,0x08,0x06,0x07,0x06,0x06,0x07,0x06,0x08,0x07,0x0b,0x0b,0x08,0x09,0x06,0x07,0x0b,0x07,0x06,0x07,0x06, -0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x06,0x08,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x09,0x05,0x07,0x07,0x09,0x09,0x07,0x08,0x06,0x05,0x09,0x06,0x06,0x07,0x05,0x05,0x05,0x03,0x09,0x09,0x07,0x06,0x05,0x07,0x05,0x04,0x0b,0x0c,0x07,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x09,0x07,0x08,0x07,0x03,0x04,0x03,0x03,0x05,0x05, -0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09, -0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x04,0x06,0x06,0x08,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0b,0x09,0x07,0x06,0x06,0x05,0x08,0x07,0x05,0x05,0x05,0x05,0x07,0x05,0x07, -0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x07,0x06,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08, -0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x05,0x03,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x06,0x07,0x06,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06, -0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x05,0x07,0x05,0x0b,0x09,0x0b,0x09,0x06,0x05,0x06,0x05,0x05,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x04,0x09,0x05,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x05, -0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07,0x07,0x07,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x06,0x06,0x06,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x07,0x05,0x05,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x05,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x05,0x08,0x07,0x0a,0x03,0x03,0x06,0x05,0x03,0x05, -0x0a,0x08,0x06,0x08,0x0b,0x09,0x07,0x06,0x06,0x06,0x05,0x06,0x03,0x04,0x06,0x04,0x06,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x05,0x05,0x06,0x06,0x04,0x04,0x06,0x03,0x04,0x05,0x03,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x0c,0x0b,0x09,0x07,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x07,0x06, -0x07,0x06,0x09,0x09,0x08,0x06,0x08,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x0e,0x0d,0x0b,0x08,0x07,0x0b,0x08,0x08,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x06,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x08,0x07,0x08,0x06,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x09, -0x07,0x09,0x07,0x09,0x07,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x07,0x05,0x05,0x06,0x06,0x03,0x06,0x07,0x06,0x05,0x05,0x06,0x06,0x06,0x03,0x03,0x04,0x03,0x04,0x03,0x07,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x03,0x03, -0x03,0x03,0x04,0x04,0x07,0x07,0x06,0x05,0x08,0x05,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x05,0x07,0x05,0x06,0x06,0x06,0x03,0x05,0x04,0x06,0x04,0x04,0x0a,0x0a,0x0b,0x07,0x05,0x08,0x09,0x06,0x06,0x05,0x05,0x06,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x08,0x06,0x06,0x05,0x05,0x05,0x07,0x06,0x07,0x05,0x0a,0x09,0x07,0x06,0x07, -0x06,0x07,0x05,0x07,0x05,0x07,0x06,0x06,0x04,0x06,0x06,0x05,0x03,0x08,0x05,0x05,0x0a,0x07,0x07,0x06,0x0a,0x08,0x07,0x05,0x0a,0x08,0x08,0x06,0x0a,0x08,0x06,0x05,0x09,0x08,0x08,0x06,0x08,0x06,0x08,0x06,0x0e,0x0c,0x09,0x07,0x0c,0x0a,0x0a,0x07,0x06,0x05,0x06,0x04,0x05,0x00,0x00,0x0b,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x05,0x06,0x05,0x08,0x06,0x09,0x07,0x0b,0x09,0x08,0x06,0x07,0x05,0x06,0x05,0x0a,0x08,0x08,0x06,0x09,0x07,0x09,0x07,0x03,0x0b,0x09,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x06,0x08,0x06,0x08,0x06,0x0b,0x09,0x06,0x05,0x06,0x05,0x08,0x07,0x08,0x07,0x09,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x06,0x05, -0x06,0x05,0x07,0x07,0x09,0x08,0x06,0x07,0x09,0x09,0x09,0x08,0x06,0x05,0x0a,0x09,0x0b,0x09,0x08,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x06,0x04,0x04,0x02,0x02,0x02,0x02,0x03,0x04,0x03,0x03,0x04,0x02,0x02,0x02,0x04,0x04,0x02,0x02,0x06,0x06, -0x06,0x06,0x04,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04, -0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06, -0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x07,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03, -0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x06,0x05,0x05,0x03,0x03,0x06,0x04,0x08,0x07,0x07,0x05,0x07,0x07,0x07,0x0a,0x06,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x06,0x05,0x09,0x05,0x05,0x05,0x06,0x05,0x05, -0x07,0x05,0x07,0x06,0x04,0x05,0x04,0x04,0x05,0x03,0x03,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x05,0x06,0x03,0x03,0x04,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x02,0x03,0x05,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x05,0x03,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x02,0x04,0x03,0x04,0x03, -0x04,0x04,0x03,0x06,0x02,0x04,0x06,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x06,0x06,0x05,0x0c,0x05,0x06,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x05,0x04,0x07,0x07,0x04,0x09,0x06,0x07,0x04,0x04,0x05,0x04,0x05,0x06,0x05,0x06,0x0a,0x07,0x04,0x03,0x06, -0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x09,0x07,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x05,0x05,0x08,0x03,0x05,0x03,0x07,0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03, -0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x05,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0f,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x09,0x07,0x08,0x06,0x08,0x07,0x0a,0x08,0x06,0x04,0x06,0x08,0x06,0x09,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03, -0x03,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0b,0x05,0x03,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x04,0x06,0x04,0x08,0x07,0x06,0x04,0x09,0x06,0x09,0x03,0x04,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x03,0x06,0x03,0x06,0x05,0x03,0x03, -0x06,0x03,0x08,0x03,0x0a,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0d,0x0f,0x0f,0x09,0x09,0x06,0x06,0x02,0x0b,0x08,0x09,0x07,0x06,0x07,0x06,0x06,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03,0x07,0x00,0x07,0x07,0x07,0x04,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x05,0x0a,0x06,0x0a,0x06, -0x08,0x09,0x04,0x06,0x06,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0a,0x04,0x06,0x05,0x07,0x06,0x04,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x03,0x06,0x04,0x0b,0x06,0x06,0x07,0x07,0x0b,0x06,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x07,0x08,0x07,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06, -0x08,0x09,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x06,0x06,0x06,0x06,0x0b,0x0b, -0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x08,0x08,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x07,0x04,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x08,0x09,0x04, -0x06,0x08,0x09,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0d,0x09,0x0f,0x0b,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x04,0x06,0x06,0x07,0x0e,0x09,0x06,0x11,0x0c,0x04, -0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x08,0x07,0x07,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0e,0x11,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x0d, -0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x04,0x05,0x05,0x0d,0x09,0x07,0x06,0x06,0x00,0x06,0x06,0x06,0x04,0x06,0x08,0x07,0x06,0x06,0x04,0x03,0x08,0x06,0x07, -0x04,0x06,0x05,0x05,0x05,0x05,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x06,0x05,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x05,0x03,0x06,0x06,0x07,0x06,0x04,0x08,0x06,0x07,0x06,0x07,0x05,0x06,0x06,0x04,0x08,0x04,0x05,0x05,0x05,0x07,0x07,0x06,0x0b,0x06,0x0b,0x04,0x03,0x02,0x06,0x02,0x01,0x00,0x02, -0x02,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x05,0x08,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,0x09,0x05,0x09,0x07,0x08,0x08,0x08,0x08,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x06,0x0c,0x09,0x05,0x05,0x03, -0x03,0x03,0x04,0x03,0x06,0x03,0x03,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x07,0x03,0x06,0x06,0x06,0x08,0x07,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x09,0x08,0x06,0x06,0x06,0x03,0x04,0x06,0x06, -0x06,0x06,0x06,0x07,0x07,0x05,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x03,0x06,0x06,0x06,0x07,0x04,0x07,0x07,0x07,0x06,0x07,0x06,0x09,0x08,0x03,0x06,0x06,0x07,0x07,0x0d,0x00,0x07,0x06,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x08,0x07,0x07,0x08,0x06,0x07,0x08,0x08,0x05,0x07,0x08,0x08,0x07,0x08,0x09,0x09,0x07,0x06,0x06,0x08,0x08,0x06,0x08,0x07,0x07,0x07,0x08,0x08,0x06,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x07,0x09,0x05,0x06, -0x06,0x0a,0x06,0x06,0x08,0x0a,0x07,0x06,0x0c,0x06,0x06,0x08,0x06,0x06,0x08,0x06,0x08,0x09,0x0a,0x06,0x09,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x08,0x06,0x07,0x07,0x06,0x06,0x07,0x0b,0x06,0x06,0x06,0x06,0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x0a,0x06,0x0a,0x05,0x06,0x0a,0x07,0x06,0x0a,0x08,0x08,0x0a,0x06,0x06,0x0a,0x0a, -0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x07,0x06,0x06,0x06,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x08,0x07,0x06,0x09,0x07,0x08,0x06,0x07,0x08,0x08,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x09,0x06, -0x07,0x07,0x06,0x07,0x06,0x06,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x06,0x07,0x05,0x09,0x06,0x06,0x07,0x07,0x09,0x06,0x06,0x04,0x09,0x06,0x07,0x08,0x07,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x10,0x06,0x06,0x03,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x03,0x03,0x05,0x05,0x08,0x07,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x06,0x09,0x06,0x05,0x05,0x08,0x09,0x05,0x07,0x05, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x06,0x03,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x08,0x07,0x06,0x05,0x04,0x06,0x05,0x05,0x07,0x07,0x03,0x05,0x06,0x08,0x07,0x05,0x07,0x07,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x07,0x06,0x05,0x07,0x03,0x07,0x05,0x07,0x03,0x05, -0x05,0x06,0x04,0x06,0x05,0x03,0x03,0x03,0x09,0x09,0x07,0x05,0x05,0x07,0x06,0x05,0x05,0x04,0x06,0x05,0x08,0x05,0x07,0x07,0x05,0x06,0x08,0x07,0x07,0x07,0x05,0x06,0x05,0x05,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x08,0x05,0x06,0x09,0x05,0x04,0x06,0x06,0x07,0x0a,0x0a,0x07,0x06,0x06,0x05,0x06,0x06,0x06,0x08,0x06,0x06,0x08,0x06, -0x06,0x04,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x05,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x04,0x0b,0x06,0x05,0x06,0x07,0x07,0x06,0x06,0x03,0x09,0x08,0x08,0x05,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x04,0x03,0x09,0x08,0x03,0x02,0x02,0x05,0x04,0x04,0x03,0x03,0x03,0x04,0x07,0x05,0x03,0x07,0x08,0x07,0x06,0x06,0x08,0x07,0x07, -0x04,0x05,0x06,0x05,0x02,0x03,0x04,0x06,0x04,0x07,0x07,0x07,0x0a,0x08,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x09,0x04,0x04,0x06,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x06,0x06,0x0a,0x0a,0x06,0x06,0x08,0x09,0x04, -0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x0b,0x08,0x09,0x06,0x06,0x06,0x07,0x04,0x07,0x08,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x04,0x08,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x06,0x06,0x08,0x06,0x06,0x0a,0x06,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07, -0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x04,0x04,0x07,0x04,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x00,0x0d,0x09,0x0f,0x0b,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x05,0x0d,0x09,0x0b,0x0b,0x0a,0x0a,0x0a, -0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x0d,0x09,0x06,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x0d,0x0d, -0x09,0x09,0x09,0x09,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x07,0x07,0x07,0x03,0x03,0x06,0x05,0x06,0x07,0x06,0x06,0x06,0x07, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x07,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x08, -0x08,0x08,0x08,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x0a,0x09,0x06,0x08,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x07,0x07,0x08,0x09,0x08,0x07,0x08,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x09,0x08,0x08,0x08,0x07,0x0a,0x08,0x09,0x08,0x08,0x06,0x08,0x08,0x08,0x09,0x08,0x08,0x0a,0x06,0x06,0x06,0x06,0x07,0x07, -0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x07,0x08,0x09,0x07,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x07,0x05,0x06,0x05,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x08,0x03,0x09,0x08,0x08,0x07,0x06,0x08,0x07, -0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x05,0x04,0x05,0x06,0x06,0x05,0x09,0x09,0x09,0x05, -0x0b,0x05,0x09,0x09,0x09,0x09,0x06,0x05,0x05,0x09,0x06,0x09,0x07,0x06,0x05,0x04,0x0b,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x0f,0x09,0x09,0x05,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x05,0x09,0x03,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x0d,0x0d,0x07,0x0d,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x05,0x06,0x05,0x06,0x05,0x04,0x04,0x08,0x06,0x08,0x05,0x0c,0x0a,0x07,0x06,0x0a,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x07,0x05, -0x08,0x06,0x0a,0x08,0x08,0x07,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0c,0x09,0x08,0x06,0x08,0x06,0x0d,0x0a,0x09,0x00,0x0b,0x0b,0x0b,0x05,0x00,0x00,0x06,0x06,0x08,0x06,0x06,0x05,0x0c,0x0a,0x0a,0x09,0x08,0x06,0x08,0x06,0x06,0x05,0x08,0x07,0x06,0x05,0x09,0x07,0x07,0x06,0x0b,0x09,0x06,0x06,0x08,0x08,0x09,0x05,0x02,0x05,0x08,0x05, -0x0b,0x0b,0x03,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x04,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x07,0x08,0x03,0x02,0x03,0x02,0x08,0x06,0x08,0x07,0x06,0x05,0x06,0x05,0x07,0x06,0x05,0x05,0x0c,0x09,0x0d,0x0a,0x0b,0x09,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x07,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x03,0x05, -0x03,0x08,0x06,0x09,0x07,0x0f,0x0b,0x06,0x06,0x08,0x08,0x09,0x09,0x08,0x06,0x0b,0x09,0x06,0x04,0x06,0x05,0x07,0x05,0x0a,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x06,0x03,0x07,0x04,0x0b,0x07,0x04,0x06,0x07,0x05,0x08,0x06,0x04,0x04,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x04,0x04,0x07,0x05,0x08, -0x04,0x09,0x07,0x07,0x05,0x08,0x06,0x06,0x05,0x08,0x06,0x07,0x04,0x06,0x05,0x08,0x05,0x06,0x09,0x05,0x06,0x0a,0x03,0x0d,0x0a,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x07,0x08,0x0a,0x08,0x0a,0x03,0x05,0x07,0x09,0x0b,0x08,0x0b,0x07,0x07,0x09,0x08,0x0d,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x09,0x09, -0x09,0x09,0x0b,0x06,0x06,0x0b,0x08,0x06,0x06,0x08,0x07,0x04,0x04,0x07,0x06,0x06,0x06,0x06,0x08,0x04,0x04,0x09,0x08,0x04,0x04,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x06,0x04,0x06,0x06, -0x08,0x07,0x06,0x0a,0x07,0x08,0x08,0x09,0x09,0x06,0x05,0x0b,0x09,0x0b,0x09,0x08,0x06,0x03,0x03,0x06,0x07,0x04,0x07,0x06,0x06,0x05,0x08,0x09,0x04,0x06,0x05,0x02,0x04,0x06,0x06,0x02,0x02,0x02,0x02,0x04,0x04,0x04,0x05,0x10,0x16,0x04,0x05,0x01,0x03,0x04,0x05,0x03,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, -0x05,0x05,0x05,0x05,0x05,0x0f,0x06,0x08,0x0a,0x0a,0x07,0x05,0x07,0x08,0x08,0x05,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x09,0x05,0x06,0x07,0x04,0x06,0x04,0x04,0x03,0x0a,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x03,0x06,0x05,0x07,0x05,0x07,0x03,0x06,0x07,0x09,0x09,0x07, -0x06,0x06,0x06,0x06,0x05,0x06,0x05,0x05,0x03,0x04,0x03,0x02,0x04,0x06,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x13,0x0b,0x0a,0x0c,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0a,0x04,0x04,0x0a,0x03,0x06, -0x06,0x0f,0x0b,0x0b,0x0f,0x0a,0x06,0x06,0x0a,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x08,0x07,0x08,0x06,0x0e,0x0b,0x08,0x06,0x08,0x06,0x0f,0x0b,0x08,0x06,0x04,0x03,0x07,0x00,0x08,0x06,0x04,0x03,0x02,0x05,0x04,0x04,0x03,0x02,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x06,0x06,0x0b,0x09,0x09,0x09,0x09, -0x0a,0x07,0x08,0x07,0x04,0x0a,0x0c,0x05,0x0d,0x06,0x09,0x0a,0x0a,0x0a,0x05,0x08,0x0b,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x09,0x06,0x06,0x0a,0x04,0x04,0x0a,0x04,0x04,0x0a,0x05,0x05,0x00,0x05,0x09,0x04,0x04,0x0b,0x06,0x06,0x08,0x06,0x06,0x07,0x03,0x03, -0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x11,0x11,0x0a,0x00,0x00,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x0a,0x07,0x07,0x09,0x0b,0x07,0x07,0x0c,0x07,0x07,0x0a,0x07,0x07,0x09,0x07,0x08,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x08, -0x07,0x07,0x08,0x07,0x09,0x07,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x07,0x07,0x08,0x05,0x06,0x07,0x09,0x09,0x06,0x00,0x00,0x0c,0x18,0x08,0x00,0x01,0x03,0x03,0x05,0x07,0x06,0x0a,0x0a,0x03,0x04,0x04,0x05,0x08,0x03,0x05,0x03,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x08,0x07, -0x08,0x08,0x06,0x06,0x08,0x09,0x03,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x07,0x06,0x06,0x08,0x07,0x0b,0x07,0x07,0x07,0x04,0x05,0x04,0x08,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x04,0x07,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x06,0x09,0x06,0x06,0x05,0x04,0x03,0x04,0x08,0x08,0x08,0x08,0x06, -0x09,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x05,0x0b,0x0b,0x09,0x03,0x05,0x08,0x0a,0x09,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x09,0x06,0x05,0x05,0x09,0x0a,0x07,0x05,0x03,0x03,0x08, -0x08,0x06,0x08,0x08,0x06,0x06,0x09,0x08,0x08,0x09,0x0b,0x0b,0x06,0x0c,0x05,0x05,0x03,0x03,0x08,0x07,0x06,0x07,0x02,0x06,0x04,0x04,0x07,0x07,0x05,0x03,0x03,0x05,0x0f,0x08,0x06,0x08,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x04,0x04,0x02,0x03,0x02,0x04,0x02,0x04,0x06,0x03,0x06,0x05,0x07, -0x05,0x03,0x08,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x06,0x08,0x07,0x03,0x06,0x05,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x08,0x06,0x08,0x06,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x06,0x04,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07, -0x08,0x07,0x07,0x05,0x07,0x05,0x06,0x09,0x09,0x07,0x07,0x05,0x07,0x06,0x09,0x05,0x06,0x05,0x0d,0x07,0x06,0x07,0x03,0x05,0x0a,0x04,0x07,0x04,0x04,0x07,0x04,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x07, -0x06,0x06,0x06,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x07,0x06,0x03,0x08,0x06,0x0a,0x0a,0x09,0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x07,0x06,0x03,0x05,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x09,0x05,0x0a, -0x08,0x0a,0x03,0x08,0x07,0x06,0x07,0x09,0x03,0x07,0x08,0x0b,0x09,0x06,0x09,0x09,0x07,0x06,0x06,0x07,0x07,0x09,0x09,0x03,0x07,0x07,0x05,0x07,0x03,0x07,0x07,0x06,0x05,0x07,0x07,0x03,0x06,0x06,0x07,0x06,0x05,0x07,0x07,0x06,0x07,0x06,0x09,0x0b,0x03,0x07,0x07,0x07,0x0b,0x06,0x08,0x06,0x07,0x06,0x03,0x0c,0x0c,0x09,0x07,0x07, -0x09,0x08,0x07,0x07,0x06,0x08,0x06,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x07,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x0b,0x0c,0x08,0x09,0x07,0x07,0x0c,0x07,0x06,0x07,0x06,0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x07,0x09,0x07,0x07,0x07,0x07,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x07,0x09,0x06,0x06,0x0a, -0x06,0x06,0x07,0x05,0x06,0x05,0x03,0x09,0x0a,0x07,0x06,0x06,0x07,0x06,0x05,0x0c,0x0d,0x08,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x09,0x07,0x08,0x07,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08, -0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08, -0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x04,0x06,0x06,0x09,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0c,0x09,0x07,0x06,0x07,0x06,0x09,0x07,0x07,0x06,0x07,0x06,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x06,0x09,0x07,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x07, -0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x0b,0x09,0x0b, -0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x05,0x07,0x05,0x07,0x05,0x07,0x04,0x09,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03, -0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07, -0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08, -0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x07,0x07,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x08,0x09,0x07,0x07,0x07,0x06,0x07,0x06,0x08,0x07,0x0a,0x03,0x03,0x07,0x06,0x03,0x06,0x0b,0x09,0x07,0x09,0x0c,0x09,0x07,0x07,0x07,0x06,0x05,0x06,0x04,0x04,0x06,0x04,0x06,0x09,0x09,0x07,0x06,0x07,0x05,0x07,0x07,0x05,0x05,0x06, -0x06,0x05,0x05,0x07,0x03,0x05,0x05,0x03,0x0f,0x0e,0x0c,0x0a,0x09,0x06,0x0d,0x0c,0x0a,0x08,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x08,0x06,0x08,0x06,0x0a,0x0a,0x08,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x05,0x03,0x0f,0x0e,0x0c,0x08,0x07,0x0c,0x08,0x09,0x07,0x08,0x06, -0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x09,0x07,0x07,0x07,0x05,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x07,0x05,0x05,0x06,0x07,0x03,0x07, -0x07,0x06,0x06,0x05,0x07,0x07,0x07,0x03,0x03,0x04,0x03,0x05,0x03,0x07,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x09,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x04,0x04,0x07,0x07,0x07,0x06,0x09,0x06,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x06,0x07,0x06,0x07,0x06,0x07,0x03,0x06,0x05,0x07, -0x04,0x04,0x0b,0x0b,0x0c,0x07,0x06,0x09,0x0a,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x07,0x06,0x07,0x06,0x0b,0x0a,0x07,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x07,0x05,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x0a,0x08,0x08,0x07,0x0b,0x09,0x08,0x06,0x0a,0x08,0x09,0x07, -0x0b,0x09,0x06,0x05,0x09,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x10,0x0d,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x07,0x05,0x06,0x05,0x05,0x00,0x00,0x0c,0x0b,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x0a,0x08,0x0c,0x0a,0x09,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0a,0x08,0x03,0x0b,0x09,0x07,0x06, -0x09,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x0a,0x0a,0x06,0x06,0x09,0x06,0x09,0x06,0x0b,0x09,0x07,0x05,0x06,0x05,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x09,0x09,0x07,0x07,0x0a,0x0a,0x0a,0x09,0x07,0x06,0x0b,0x0a,0x0c,0x0a,0x09,0x06,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x04, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x07,0x04,0x04,0x02,0x03,0x03,0x03,0x03,0x05,0x03,0x03,0x05,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x04,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x03,0x03,0x05,0x05,0x05,0x05, -0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05, -0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07, -0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x08,0x0a,0x06, -0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x06,0x07,0x07,0x07,0x0b,0x06,0x07,0x07,0x06,0x05,0x05,0x05,0x06,0x07,0x09,0x07,0x06,0x09,0x05,0x05,0x05,0x06,0x05,0x06,0x07,0x06,0x07,0x07,0x04,0x06,0x04,0x04,0x05,0x04,0x04,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x05,0x04,0x04,0x03,0x05,0x06,0x04, -0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x02,0x04,0x06,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x06,0x03,0x04,0x04,0x04,0x04,0x05,0x04,0x02,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x07,0x02,0x04,0x07,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x06,0x07,0x06,0x05,0x0e,0x05,0x07,0x0b,0x0b,0x0b,0x08,0x08,0x08, -0x06,0x06,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x08,0x07,0x06,0x05,0x07,0x07,0x04,0x0a,0x07,0x07,0x04,0x04,0x06,0x04,0x05,0x07,0x06,0x07,0x0b,0x08,0x04,0x03,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x0b,0x07,0x07,0x04,0x05,0x05,0x06,0x06,0x05,0x06,0x07,0x07,0x06,0x05,0x05,0x09,0x03,0x06,0x03,0x07, -0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x06,0x05,0x06,0x08,0x06,0x0a,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x05,0x03,0x06,0x07,0x05,0x06,0x06,0x07,0x07,0x06,0x0c,0x07,0x07,0x07,0x07, -0x07,0x07,0x06,0x06,0x08,0x06,0x06,0x06,0x04,0x07,0x04,0x09,0x08,0x06,0x04,0x0a,0x06,0x0a,0x03,0x04,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0a,0x03,0x07,0x03,0x06,0x05,0x03,0x03,0x06,0x03,0x09,0x03,0x0b,0x06,0x0b,0x0b,0x07,0x07,0x07,0x06,0x06,0x05,0x05,0x0e,0x0e,0x10,0x10,0x0a,0x0a,0x06,0x06,0x02,0x0c,0x09,0x0a,0x08, -0x07,0x08,0x06,0x06,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x06,0x06,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x05,0x0b,0x06,0x0b,0x06,0x09,0x0a,0x04,0x06,0x06,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x0b,0x04,0x06,0x05,0x08,0x06,0x04,0x06,0x06,0x06,0x0b, -0x04,0x0b,0x04,0x03,0x07,0x05,0x0c,0x06,0x06,0x08,0x08,0x0c,0x06,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x09,0x08,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x09,0x0a,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x06,0x07,0x07,0x07,0x0c,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x09,0x09,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b, -0x06,0x0b,0x06,0x0b,0x06,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x08,0x04,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0b,0x09,0x0a,0x04,0x06,0x09,0x0a,0x09,0x0a,0x00,0x00,0x00,0x00,0x00,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0e,0x0a, -0x10,0x0c,0x06,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x0b,0x0b,0x04,0x07,0x07,0x07,0x0f,0x0a,0x06,0x12,0x0d,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x09,0x08,0x08,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0f,0x12,0x00, -0x00,0x00,0x00,0x00,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x08,0x07,0x06,0x06,0x05,0x0e,0x0a,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06, -0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x04,0x05,0x05,0x0e,0x0a,0x08,0x07,0x07,0x00,0x06,0x06,0x06,0x04,0x07,0x08,0x08,0x06,0x06,0x04,0x03,0x09,0x07,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x03,0x06,0x05,0x07,0x06,0x07,0x06,0x07,0x05,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x05, -0x06,0x06,0x03,0x06,0x07,0x07,0x06,0x04,0x09,0x07,0x08,0x06,0x07,0x06,0x07,0x06,0x05,0x08,0x04,0x05,0x05,0x06,0x07,0x07,0x06,0x0c,0x06,0x0c,0x04,0x03,0x02,0x06,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x05,0x09,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,0x0a,0x06,0x0a,0x08,0x08,0x08,0x08,0x09,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x09,0x07,0x0d,0x0a,0x06,0x06,0x03,0x03,0x03,0x04,0x03,0x07,0x03,0x03,0x0a,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x02,0x00,0x00,0x03, -0x00,0x00,0x08,0x07,0x05,0x06,0x08,0x03,0x04,0x08,0x08,0x03,0x07,0x07,0x07,0x08,0x08,0x03,0x05,0x08,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x06,0x03,0x05,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x06,0x08,0x07,0x07,0x08,0x07,0x09,0x07,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x05,0x06,0x08,0x04,0x04,0x08,0x04, -0x07,0x07,0x07,0x08,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x09,0x03,0x07,0x07,0x08,0x08,0x0e,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x09,0x08,0x08,0x08, -0x07,0x08,0x09,0x09,0x06,0x08,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x08,0x0a,0x06,0x07,0x07,0x0b,0x06,0x06,0x09,0x0b,0x07,0x06,0x0d,0x07,0x07,0x09,0x06,0x06,0x09,0x07,0x09,0x0a,0x0b,0x06,0x09,0x06,0x08,0x07,0x07,0x07,0x08,0x06, -0x07,0x09,0x06,0x07,0x08,0x06,0x06,0x07,0x0b,0x06,0x06,0x07,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x07,0x0b,0x07,0x0b,0x06,0x07,0x0b,0x08,0x07,0x0b,0x09,0x09,0x0b,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08, -0x07,0x09,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x07,0x08,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x0a,0x08,0x09,0x09,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x03,0x07,0x06,0x07,0x05,0x0a,0x07,0x07,0x07,0x07, -0x0a,0x07,0x07,0x05,0x0a,0x07,0x07,0x08,0x08,0x03,0x03,0x0e,0x0d,0x0d,0x0e,0x11,0x06,0x06,0x03,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x09,0x08,0x07,0x06,0x07,0x06,0x05,0x05,0x07,0x06,0x0a,0x06,0x06,0x06,0x08,0x09,0x05,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, -0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x08,0x08,0x06,0x06,0x05,0x06,0x05,0x06,0x07,0x07,0x03,0x06,0x06,0x09,0x08,0x05,0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x08,0x06,0x05,0x07,0x03,0x07,0x06,0x08,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x03,0x03,0x04,0x0a,0x0a,0x07,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x07,0x05,0x09,0x05,0x08,0x08,0x06,0x07,0x09,0x07, -0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x07,0x0a,0x0a,0x07,0x08,0x06,0x06,0x0a,0x06,0x05,0x07,0x07,0x07,0x0b,0x0b,0x08,0x06,0x07,0x05,0x07,0x07,0x07,0x08,0x06,0x06,0x08,0x07,0x07,0x04,0x08,0x07,0x07,0x06,0x06,0x0b,0x09,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x08,0x04,0x0b,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x03,0x09, -0x08,0x08,0x06,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x05,0x03,0x09,0x08,0x03,0x03,0x03,0x05,0x05,0x05,0x03,0x03,0x03,0x05,0x08,0x06,0x04,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x05,0x06,0x05,0x03,0x03,0x05,0x06,0x04,0x08,0x08,0x08,0x0b,0x09,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x09,0x0a,0x04,0x04,0x06,0x04, -0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x0b,0x0b,0x06,0x06,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x0c,0x09,0x0a,0x06,0x07,0x07,0x08,0x04,0x08,0x09,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x04,0x09,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x06,0x06,0x09,0x06,0x06,0x0b,0x06,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04, -0x06,0x04,0x04,0x04,0x04,0x00,0x0e,0x0a,0x10,0x0c,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x06,0x06,0x05,0x0e,0x0a,0x0c,0x0c,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0a,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x05,0x05,0x07,0x07, -0x07,0x07,0x04,0x04,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x07,0x07,0x07,0x07,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0a,0x04,0x04,0x04,0x04, -0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, -0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x08,0x03,0x03,0x06,0x05,0x07,0x08,0x07,0x06,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x07,0x07,0x07,0x08,0x07,0x07,0x08,0x06,0x08,0x09,0x08,0x09, -0x0a,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x09,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x07,0x09,0x0a,0x09,0x07,0x0a,0x09,0x08,0x08,0x07,0x08,0x09,0x0a,0x08,0x07,0x08,0x07, -0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x09,0x07,0x09,0x08,0x08,0x0a,0x09,0x09,0x0b,0x07,0x06,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x09,0x0a, -0x08,0x08,0x08,0x09,0x08,0x08,0x06,0x06,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x05,0x07,0x06,0x07,0x09,0x07,0x0a,0x06,0x07,0x07,0x09,0x04,0x09,0x08,0x09,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x03,0x03, -0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0b,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x06,0x05,0x06,0x06,0x07,0x06,0x0a,0x0a,0x0a,0x05,0x0c,0x06,0x0a,0x0a,0x0a,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x05,0x05,0x0c,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x10,0x0a,0x0a,0x05, -0x03,0x05,0x03,0x06,0x03,0x03,0x03,0x06,0x07,0x07,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0a,0x03,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x08,0x0e,0x0e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x06,0x07,0x06,0x06,0x05,0x04,0x04,0x08,0x07,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0b,0x0a,0x0a,0x09,0x0c,0x0a,0x0b,0x09,0x08,0x06,0x09,0x07,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x08,0x0b,0x08,0x0d,0x0a,0x09,0x07,0x09,0x07,0x0f,0x0b,0x0a,0x00,0x0c,0x0c,0x0c,0x06,0x00,0x00, -0x07,0x06,0x08,0x07,0x06,0x05,0x0d,0x0b,0x0b,0x0a,0x09,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x06,0x05,0x0a,0x08,0x08,0x07,0x0c,0x0a,0x06,0x07,0x09,0x09,0x0a,0x05,0x02,0x06,0x08,0x05,0x0c,0x0c,0x03,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x07,0x07, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x06,0x08,0x09,0x03,0x03,0x03, -0x03,0x09,0x07,0x09,0x08,0x07,0x06,0x06,0x06,0x07,0x07,0x05,0x05,0x0e,0x0a,0x0e,0x0b,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x06,0x03,0x09,0x07,0x0a,0x08,0x10,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x09,0x07,0x0c,0x09,0x07,0x05,0x07,0x06,0x07,0x06,0x0b,0x09,0x07,0x06,0x07, -0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x06,0x04,0x08,0x04,0x0b,0x08,0x04,0x07,0x07,0x06,0x09,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x03,0x09,0x07,0x04,0x04,0x07,0x06,0x09,0x05,0x09,0x07,0x07,0x06,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x06,0x05,0x09,0x05,0x06,0x0a,0x06,0x07,0x0b,0x03,0x0e,0x0b,0x0b,0x0e,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x08,0x08,0x0b,0x08,0x0b,0x03,0x06,0x07,0x0b,0x0c,0x08,0x0c,0x07,0x07,0x0a,0x08,0x0e,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0c,0x06,0x06,0x0c,0x09,0x06,0x06,0x09,0x08,0x04,0x04,0x08,0x07,0x07,0x07,0x07,0x09,0x04,0x04,0x0a,0x09,0x04,0x04,0x0a,0x05,0x05, -0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x06,0x05,0x07,0x06,0x09,0x07,0x07,0x0b,0x08,0x09,0x09,0x0a,0x0a,0x07,0x06,0x0c,0x0a,0x0d,0x0a,0x08,0x07,0x04,0x04,0x07,0x08,0x05,0x07,0x06,0x07,0x06,0x09,0x0a, -0x05,0x07,0x05,0x03,0x04,0x06,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x12,0x18,0x04,0x05,0x02,0x03,0x05,0x05,0x04,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x10,0x06,0x09,0x0b,0x0b,0x08,0x06,0x07,0x09,0x09,0x06,0x04,0x08,0x06,0x08,0x07,0x08,0x06,0x07,0x09,0x07,0x07,0x06, -0x09,0x07,0x0a,0x05,0x06,0x08,0x04,0x07,0x04,0x04,0x03,0x0b,0x07,0x07,0x06,0x06,0x07,0x0b,0x0b,0x0b,0x0c,0x0c,0x07,0x06,0x03,0x06,0x06,0x07,0x05,0x08,0x03,0x07,0x07,0x0a,0x0a,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x04,0x07,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x04,0x00,0x03,0x03,0x03,0x03,0x03,0x14,0x0c,0x0a,0x0d,0x03,0x03,0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0b,0x04,0x04,0x0b,0x03,0x06,0x06,0x10,0x0c,0x0c,0x10,0x0b,0x06,0x06,0x0b,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x09,0x07,0x09,0x07,0x0f,0x0c,0x08,0x07,0x08,0x07,0x10,0x0c, -0x09,0x07,0x05,0x04,0x07,0x00,0x08,0x06,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x02,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x07,0x07,0x0c,0x0b,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x07,0x05,0x0b,0x0e,0x05,0x0e,0x06,0x0a,0x0b,0x0b,0x0b,0x05,0x09,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x0a,0x06,0x06,0x0b,0x04,0x04,0x0b,0x04,0x04,0x0b,0x06,0x06,0x00,0x05,0x0a,0x04,0x04,0x0c,0x06,0x06,0x09,0x06,0x06,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x12,0x12,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, -0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x07,0x08,0x08,0x0b,0x08,0x08,0x0a,0x0c,0x08,0x08,0x0d,0x08,0x08,0x0b,0x08,0x08,0x09,0x08,0x09,0x0a,0x0b,0x08,0x09,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x09,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x05,0x06,0x08,0x09,0x09,0x07,0x00,0x00,0x0d,0x1a,0x08,0x00, -0x01,0x04,0x04,0x05,0x08,0x07,0x0b,0x0a,0x03,0x04,0x04,0x05,0x09,0x03,0x05,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x09,0x09,0x09,0x06,0x0c,0x08,0x07,0x08,0x09,0x07,0x06,0x09,0x09,0x03,0x05,0x08,0x06,0x0c,0x0a,0x0a,0x07,0x0a,0x08,0x07,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x04,0x05,0x04,0x09, -0x05,0x03,0x07,0x08,0x06,0x08,0x07,0x04,0x08,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x08,0x08,0x08,0x05,0x06,0x04,0x07,0x06,0x09,0x06,0x06,0x06,0x04,0x03,0x04,0x09,0x08,0x08,0x08,0x07,0x0a,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07, -0x05,0x05,0x07,0x07,0x06,0x05,0x06,0x07,0x05,0x0c,0x0c,0x0a,0x04,0x05,0x09,0x0b,0x0a,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x08,0x0a,0x07,0x05,0x06,0x0a,0x0b,0x08,0x06,0x04,0x04,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x09,0x08,0x08,0x0a,0x0c,0x0c,0x07,0x0d,0x05,0x05,0x03,0x03,0x09,0x08,0x06,0x07,0x02,0x07,0x04,0x04,0x07,0x07, -0x05,0x03,0x03,0x05,0x10,0x08,0x07,0x08,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x03,0x05,0x04,0x04,0x04,0x03,0x04,0x03,0x04,0x02,0x05,0x06,0x03,0x07,0x06,0x07,0x06,0x03,0x09,0x07,0x07,0x06,0x07,0x08,0x09,0x09,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x06,0x09,0x08,0x03,0x07,0x06,0x08,0x06,0x08,0x06,0x08,0x05, -0x03,0x08,0x07,0x08,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x06,0x03,0x06,0x04,0x06,0x04,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x05,0x08,0x05,0x07,0x06,0x07,0x04,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x06,0x0a,0x09,0x08,0x08,0x06,0x07,0x06,0x09,0x05,0x06,0x05,0x0e,0x08,0x06,0x08,0x03,0x05,0x0a,0x04,0x08,0x05, -0x05,0x08,0x05,0x08,0x07,0x08,0x06,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x03,0x08,0x06,0x06,0x06,0x03,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x08,0x05,0x07,0x06,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0c,0x09, -0x07,0x06,0x03,0x08,0x07,0x0b,0x0b,0x0a,0x08,0x03,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x07,0x06,0x03,0x05,0x07,0x08,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x03,0x04,0x04,0x08,0x07,0x0a,0x05,0x0a,0x09,0x0b,0x03,0x08,0x07,0x07,0x07,0x09,0x03,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x09,0x07,0x07,0x07,0x07,0x08,0x0b,0x0a,0x03,0x07,0x08,0x06,0x07, -0x03,0x07,0x07,0x07,0x06,0x07,0x08,0x03,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x06,0x07,0x07,0x09,0x0b,0x03,0x07,0x08,0x07,0x0b,0x07,0x09,0x06,0x08,0x07,0x03,0x0d,0x0d,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x07,0x0b,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x09,0x0a,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x09,0x0d,0x0e,0x09, -0x0a,0x07,0x08,0x0d,0x08,0x07,0x08,0x07,0x05,0x07,0x07,0x09,0x06,0x07,0x07,0x06,0x07,0x09,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x08,0x09,0x07,0x06,0x0b,0x07,0x07,0x07,0x05,0x06,0x06,0x03,0x0b,0x0b,0x07,0x06,0x06,0x07,0x06,0x05,0x0d,0x0f,0x08,0x05,0x05,0x05,0x05,0x03,0x07,0x06,0x07,0x0a,0x08, -0x09,0x08,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03, -0x03,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x07,0x0a,0x07,0x03,0x05,0x03,0x03,0x07,0x05,0x0c,0x0a,0x08,0x07,0x08,0x06,0x0a, -0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x06,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, -0x04,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x08,0x07,0x08,0x08,0x05,0x08,0x05,0x08,0x05,0x08, -0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x06,0x08,0x06,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x09,0x06,0x07,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x07, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x06,0x06,0x07,0x07,0x03,0x03,0x08,0x08,0x07,0x07,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05, -0x05,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x06,0x09,0x0a,0x07,0x08,0x08,0x07,0x07,0x06,0x09, -0x08,0x0b,0x04,0x04,0x08,0x06,0x03,0x06,0x0c,0x0a,0x07,0x0a,0x0d,0x0a,0x08,0x08,0x07,0x07,0x06,0x07,0x04,0x04,0x07,0x04,0x07,0x0a,0x09,0x07,0x07,0x07,0x06,0x08,0x08,0x06,0x05,0x07,0x07,0x05,0x05,0x07,0x03,0x05,0x06,0x04,0x10,0x0f,0x0d,0x0b,0x09,0x07,0x0e,0x0d,0x0b,0x08,0x07,0x03,0x03,0x0a,0x08,0x09,0x07,0x09,0x07,0x09, -0x07,0x09,0x07,0x09,0x07,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x09,0x08,0x09,0x08,0x08,0x06,0x0a,0x08,0x0a,0x08,0x08,0x06,0x03,0x10,0x0f,0x0d,0x09,0x08,0x0d,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x08,0x0a,0x08,0x07,0x05,0x08,0x05,0x09,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x0a,0x08, -0x07,0x07,0x06,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x06,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x08,0x05,0x05,0x07,0x07,0x04,0x08,0x08,0x07,0x06,0x06,0x07,0x07,0x07,0x03,0x04,0x04,0x04,0x05,0x03,0x08,0x0b,0x0b,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x08,0x05,0x05,0x05,0x05, -0x05,0x04,0x04,0x06,0x06,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x08,0x08,0x07,0x06,0x09,0x06,0x05,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x08,0x06,0x07,0x07,0x07,0x03,0x06,0x05,0x08,0x05,0x05,0x0c,0x0c,0x0d,0x08,0x06,0x09,0x0a,0x08,0x07,0x06,0x06,0x07,0x08,0x07,0x09,0x07,0x08,0x0a,0x07,0x09,0x08,0x08,0x06,0x06,0x06,0x08, -0x07,0x08,0x06,0x0c,0x0b,0x08,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x09,0x08,0x07,0x05,0x07,0x08,0x06,0x03,0x0a,0x06,0x06,0x0b,0x09,0x08,0x08,0x0c,0x09,0x09,0x06,0x0b,0x09,0x09,0x07,0x0c,0x0a,0x07,0x06,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x08,0x11,0x0f,0x0b,0x08,0x0f,0x0c,0x0b,0x09,0x08,0x06,0x07,0x05,0x05,0x00,0x00,0x0d, -0x0c,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x06,0x08,0x06,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x07,0x08,0x06,0x07,0x05,0x0b,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x03,0x0b,0x09,0x08,0x07,0x09,0x08,0x09,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x07,0x07,0x09,0x07,0x09,0x07,0x0b,0x09,0x07,0x06,0x07,0x06,0x0a,0x07,0x0a,0x07,0x0a,0x08, -0x0a,0x08,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x07,0x0a,0x09,0x07,0x08,0x0b,0x0b,0x0a,0x09,0x07,0x06,0x0c,0x0a,0x0d,0x0b,0x09,0x07,0x09,0x08,0x08,0x07,0x07,0x07,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x08,0x04,0x04,0x02,0x03,0x03,0x03,0x04,0x05,0x04,0x03,0x05,0x03, -0x03,0x03,0x04,0x04,0x03,0x03,0x08,0x08,0x08,0x08,0x04,0x04,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07, -0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07, -0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04, -0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x06,0x09,0x0b,0x06,0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x08,0x06,0x08,0x08,0x08,0x0c,0x07,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x09,0x07, -0x06,0x09,0x06,0x05,0x05,0x07,0x05,0x06,0x07,0x06,0x08,0x07,0x05,0x06,0x05,0x05,0x05,0x04,0x04,0x05,0x06,0x02,0x03,0x05,0x04,0x07,0x06,0x06,0x06,0x05,0x04,0x04,0x04,0x05,0x07,0x04,0x04,0x05,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x05,0x02,0x04,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x04, -0x05,0x04,0x02,0x03,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x08,0x02,0x05,0x07,0x0b,0x08,0x07,0x07,0x0b,0x08,0x0b,0x0a,0x07,0x08,0x07,0x06,0x0f,0x06,0x08,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x07,0x03,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x06,0x05,0x08,0x08,0x04,0x0b,0x07,0x08,0x05,0x04,0x06,0x04,0x06, -0x08,0x06,0x08,0x0c,0x08,0x04,0x03,0x08,0x07,0x08,0x08,0x08,0x04,0x08,0x06,0x03,0x0b,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x07,0x08,0x08,0x07,0x06,0x06,0x0a,0x03,0x06,0x03,0x07,0x06,0x05,0x03,0x03,0x04,0x03,0x02,0x02,0x05,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x05,0x04,0x05,0x03,0x02,0x03, -0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x07,0x07,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x07,0x05,0x07,0x09,0x07,0x0b, -0x09,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x05,0x03,0x07,0x08,0x05,0x07,0x07,0x08,0x08,0x07,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x08,0x07,0x07,0x07,0x04,0x08,0x04,0x0a,0x09,0x07,0x04,0x0b,0x07,0x0b,0x03,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x0b,0x03,0x08,0x03,0x07,0x05,0x03,0x03,0x07,0x03,0x0a,0x03,0x0c,0x07,0x0c,0x0c,0x08,0x08,0x08,0x07,0x07,0x05,0x05,0x0f,0x0f,0x11,0x11,0x0b,0x0b,0x07,0x07,0x02,0x0d,0x0a,0x0b,0x09,0x08,0x09,0x07,0x07,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x07,0x07,0x0c,0x04,0x0c,0x04, -0x08,0x09,0x08,0x05,0x0c,0x07,0x0c,0x07,0x0a,0x0b,0x04,0x07,0x07,0x05,0x03,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x07,0x09,0x08,0x0c,0x04,0x07,0x05,0x09,0x07,0x04,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x03,0x08,0x05,0x0d,0x07,0x07,0x08,0x08,0x0d,0x07,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x0a,0x08,0x00,0x00,0x03,0x03, -0x03,0x03,0x03,0x03,0x05,0x05,0x07,0x07,0x0a,0x0b,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11, -0x0d,0x0b,0x07,0x08,0x08,0x08,0x0d,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0a,0x0a,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x09,0x04,0x07,0x09,0x08,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x0b,0x0c,0x0a,0x0b,0x04,0x07,0x0a,0x0b,0x0a,0x0b,0x00,0x00,0x00,0x00,0x00,0x0f,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x08,0x00,0x00,0x00,0x0f,0x0b,0x11,0x0d,0x07,0x08,0x08,0x08,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0c,0x0c,0x05,0x08, -0x08,0x08,0x10,0x0b,0x07,0x14,0x0e,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x05,0x05,0x0a,0x09,0x09,0x07,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x10,0x14,0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08, -0x08,0x08,0x09,0x08,0x07,0x07,0x05,0x0f,0x0b,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x04,0x05,0x05,0x0f,0x0b,0x08,0x08,0x08,0x00,0x07,0x07,0x07,0x05,0x07,0x09, -0x08,0x07,0x07,0x05,0x03,0x0a,0x08,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x03,0x07,0x05,0x08,0x06,0x08,0x06,0x07,0x06,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x06,0x06,0x04,0x07,0x07,0x08,0x07,0x04,0x0a,0x08,0x08,0x07,0x08,0x06,0x07,0x07,0x05,0x09,0x05,0x05,0x05,0x06,0x08,0x08,0x07,0x0d,0x07,0x0d, -0x04,0x03,0x02,0x07,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x06,0x0a,0x08,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09, -0x09,0x0a,0x08,0x0e,0x0b,0x06,0x06,0x04,0x04,0x04,0x05,0x03,0x07,0x03,0x03,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x08,0x07,0x06,0x06,0x09,0x03,0x04,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x09,0x03,0x05,0x09,0x08,0x08,0x08,0x07,0x08,0x09,0x07,0x0a, -0x09,0x07,0x07,0x07,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x09,0x07,0x07,0x09,0x07,0x09,0x07,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x06,0x06,0x09,0x04,0x05,0x09,0x04,0x07,0x07,0x07,0x09,0x05,0x09,0x08,0x08,0x08,0x09,0x07,0x0a,0x09,0x03,0x07,0x07,0x08,0x08,0x10,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x0a,0x08,0x09,0x09,0x07,0x09,0x0a,0x0a,0x06,0x08,0x0a,0x0a,0x09,0x0a,0x0b,0x0a,0x09,0x07,0x07,0x0a,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x08,0x09,0x09, -0x0a,0x08,0x08,0x08,0x09,0x0b,0x06,0x08,0x08,0x0b,0x07,0x07,0x0a,0x0c,0x08,0x07,0x0e,0x07,0x07,0x0a,0x07,0x07,0x0a,0x07,0x0a,0x0b,0x0b,0x07,0x0a,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x09,0x07,0x07,0x08,0x0c,0x07,0x07,0x08,0x08,0x06,0x04,0x07,0x07,0x07,0x07,0x07,0x0b,0x07,0x0c,0x06,0x07,0x0c,0x09,0x07, -0x0c,0x0a,0x0a,0x0b,0x07,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x08,0x07,0x07,0x0c,0x08,0x07,0x07,0x07,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x0a,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x08,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0a,0x09,0x01, -0x01,0x02,0x03,0x02,0x04,0x05,0x0b,0x07,0x08,0x08,0x07,0x08,0x07,0x07,0x08,0x08,0x07,0x04,0x0b,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x03,0x08,0x07,0x07,0x05,0x0b,0x07,0x07,0x07,0x08,0x0b,0x07,0x08,0x05,0x0b,0x08,0x08,0x09,0x09,0x03,0x04,0x0f,0x0f,0x0f,0x0f,0x13,0x07,0x07,0x03,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x08,0x06,0x05,0x07,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x08,0x06,0x08,0x06,0x05,0x06,0x08,0x07,0x0a, -0x07,0x06,0x06,0x09,0x0a,0x05,0x08,0x06,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05, -0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x09,0x08,0x07,0x06,0x05,0x07,0x06,0x06,0x08,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x08,0x08,0x06,0x06,0x06,0x06,0x08,0x07,0x09,0x08,0x07, -0x06,0x08,0x03,0x08,0x06,0x08,0x03,0x06,0x06,0x07,0x05,0x07,0x05,0x03,0x03,0x04,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0a,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x0a,0x0b,0x07,0x09,0x06,0x07,0x0b,0x06,0x05,0x08,0x08,0x08,0x0c,0x0c,0x09,0x07,0x07,0x05, -0x07,0x07,0x07,0x09,0x07,0x07,0x09,0x08,0x08,0x05,0x08,0x08,0x07,0x06,0x06,0x0c,0x0a,0x06,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x05,0x0c,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x03,0x0a,0x09,0x09,0x06,0x09,0x03,0x03,0x06,0x06,0x03,0x03,0x08,0x05,0x03,0x0a,0x09,0x04,0x03,0x03,0x06,0x05,0x05,0x03,0x03,0x03,0x05,0x09,0x06,0x04, -0x08,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x06,0x07,0x06,0x03,0x03,0x05,0x07,0x04,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x0b,0x04,0x04,0x07,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x07, -0x07,0x0c,0x0c,0x07,0x07,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0d,0x0a,0x0b,0x07,0x08,0x08,0x09,0x04,0x09,0x0a,0x07,0x07,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x04,0x0a,0x07,0x07,0x03,0x07,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04, -0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x07,0x07,0x0a,0x07,0x07,0x0c,0x07,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c, -0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x09,0x09,0x09,0x09,0x04,0x09,0x09,0x04,0x04,0x09,0x04,0x09,0x04,0x09,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x00,0x0f,0x0b,0x11,0x0d,0x0c,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x07,0x07, -0x05,0x0f,0x0b,0x0d,0x0d,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x0f,0x0b,0x08,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x05,0x05,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x08,0x08,0x08,0x08,0x0c,0x04,0x0c,0x04,0x08,0x09, -0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x0f,0x0f,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0b,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x09,0x03,0x03, -0x07,0x05,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x07,0x09,0x0a,0x08,0x0a,0x0b,0x08,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x08,0x07,0x08,0x08,0x07,0x07,0x0a, -0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x0b,0x0b,0x07,0x0a,0x0b,0x0a,0x08,0x0b,0x0a,0x09,0x09,0x08,0x08,0x0a,0x0a,0x09,0x08,0x09,0x08,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x09,0x0c,0x0c,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0b,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x09,0x09,0x0b,0x0a, -0x09,0x0c,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x0a,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x08,0x08,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x08,0x09,0x07,0x06,0x08,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x0a,0x07,0x0b,0x07,0x07,0x07,0x0a, -0x04,0x0a,0x09,0x09,0x09,0x07,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x06,0x0a,0x09,0x06,0x05, -0x06,0x07,0x07,0x06,0x0b,0x0b,0x0b,0x06,0x0d,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x07,0x06,0x05,0x0d,0x05,0x07,0x06,0x06,0x06,0x06,0x06,0x12,0x0b,0x0b,0x06,0x03,0x06,0x03,0x06,0x03,0x03,0x03,0x06,0x08,0x08,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0b,0x03,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x09,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x08,0x06,0x07,0x06,0x05,0x05,0x09,0x07,0x09,0x06,0x0f,0x0c,0x08,0x07,0x0c,0x0a, -0x0b,0x0a,0x0d,0x0b,0x0c,0x0a,0x08,0x06,0x09,0x08,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x0a,0x08,0x0a,0x08,0x10,0x0c,0x0a,0x00,0x0d,0x0d,0x0d,0x06,0x00,0x00,0x08,0x07,0x09,0x07,0x07,0x06,0x0e,0x0c,0x0c,0x0b,0x09,0x08,0x09,0x08,0x07,0x05,0x0a,0x08,0x07,0x05,0x0b,0x09,0x09,0x07,0x0d,0x0b,0x07,0x07, -0x0a,0x0a,0x0b,0x06,0x03,0x06,0x09,0x06,0x0d,0x0d,0x03,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x09,0x09,0x04,0x03,0x04,0x03,0x09,0x07,0x0a,0x08,0x07,0x06,0x07,0x06,0x08,0x07,0x05,0x05,0x0f,0x0b,0x0f,0x0c,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08, -0x06,0x08,0x06,0x08,0x06,0x07,0x04,0x06,0x03,0x0a,0x08,0x0b,0x09,0x11,0x0d,0x07,0x08,0x09,0x09,0x0b,0x0b,0x0a,0x08,0x0d,0x0a,0x07,0x05,0x07,0x06,0x08,0x06,0x0c,0x09,0x08,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x07,0x04,0x09,0x04,0x0c,0x09,0x05,0x08,0x08,0x06,0x0a,0x07,0x05,0x05,0x08,0x08,0x08,0x06, -0x03,0x0a,0x08,0x05,0x05,0x08,0x06,0x09,0x05,0x0a,0x08,0x08,0x06,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x07,0x06,0x0a,0x06,0x07,0x0b,0x06,0x07,0x0c,0x03,0x0f,0x0c,0x0c,0x0f,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x07,0x06,0x08,0x09,0x0c,0x09,0x0c,0x03,0x06,0x08,0x0b,0x0d,0x09,0x0d,0x08,0x08,0x0a,0x09,0x0f,0x0c,0x07,0x0c,0x04, -0x0c,0x04,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0d,0x07,0x07,0x0d,0x0a,0x07,0x07,0x0a,0x09,0x04,0x04,0x09,0x08,0x08,0x08,0x08,0x0a,0x04,0x04,0x0b,0x0a,0x04,0x04,0x0b,0x05,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x14,0x07,0x05,0x07,0x07,0x0a,0x07,0x08,0x0b,0x09,0x0a,0x0a,0x0b,0x0b,0x08,0x06,0x0d,0x0a,0x0e,0x0b,0x09,0x08,0x04,0x04,0x08,0x08,0x05,0x08,0x07,0x08,0x06,0x0a,0x0a,0x05,0x08,0x06,0x03,0x05,0x07,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x06,0x13,0x1a,0x04,0x05,0x02,0x03,0x05,0x06,0x04,0x06,0x07,0x05,0x05, -0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x11,0x07,0x0a,0x0c,0x0c,0x08,0x06,0x07,0x09,0x0a,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0b,0x06,0x07,0x08,0x04,0x08,0x04,0x05,0x03,0x0b,0x08,0x07,0x07,0x07,0x08,0x0c,0x0c,0x0c,0x0d,0x0d,0x07,0x07,0x04,0x07,0x06,0x08, -0x06,0x09,0x03,0x07,0x08,0x0b,0x0b,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x06,0x06,0x04,0x04,0x03,0x03,0x05,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x03,0x03,0x16,0x0d,0x0b,0x0e,0x04,0x04,0x04,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, -0x04,0x00,0x0c,0x04,0x04,0x0c,0x03,0x07,0x07,0x11,0x0d,0x0d,0x11,0x0c,0x07,0x07,0x0c,0x07,0x07,0x05,0x05,0x00,0x00,0x05,0x0a,0x08,0x09,0x08,0x10,0x0d,0x09,0x07,0x09,0x07,0x11,0x0d,0x0a,0x08,0x05,0x04,0x08,0x00,0x09,0x07,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x03,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x07,0x06, -0x08,0x07,0x07,0x0d,0x0b,0x0a,0x0a,0x0b,0x0c,0x08,0x09,0x08,0x05,0x0c,0x0f,0x06,0x0f,0x07,0x0b,0x0c,0x0c,0x0c,0x05,0x0a,0x0d,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x08,0x08,0x0b,0x07,0x07,0x0c,0x04,0x04,0x0c,0x04,0x04,0x0c,0x06,0x06,0x00,0x05,0x0b,0x04,0x04,0x0d, -0x07,0x07,0x0a,0x07,0x07,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x14,0x14,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x08,0x08,0x08,0x0c,0x08,0x08,0x0a,0x0d,0x08,0x08,0x0e,0x08,0x08,0x0c,0x08,0x09,0x0a,0x08,0x0a, -0x0b,0x0c,0x08,0x0a,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x08,0x09,0x0a,0x08,0x08,0x07,0x0a,0x08,0x08,0x08,0x09,0x06,0x07,0x08,0x0a,0x0a,0x07,0x00,0x00,0x0f,0x1e,0x0a,0x00,0x01,0x04,0x04,0x06,0x09,0x08,0x0c,0x0c,0x03,0x05,0x05,0x06,0x0a,0x03,0x06,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03, -0x03,0x0a,0x0a,0x0a,0x07,0x0e,0x0a,0x09,0x09,0x0b,0x08,0x07,0x0a,0x0b,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x08,0x0b,0x09,0x08,0x08,0x0a,0x09,0x0e,0x09,0x08,0x09,0x05,0x06,0x05,0x0a,0x06,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x08,0x04,0x04,0x07,0x04,0x0d,0x08,0x09,0x09,0x09,0x05,0x06,0x05,0x08,0x07,0x0b,0x07,0x07,0x07, -0x05,0x04,0x05,0x0a,0x0a,0x0a,0x09,0x08,0x0b,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x06,0x07,0x08,0x06,0x0d,0x0d,0x0c,0x04,0x06,0x0a,0x0d,0x0b,0x0c,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x0b,0x08,0x06, -0x06,0x0b,0x0c,0x09,0x07,0x04,0x04,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x0b,0x0a,0x0a,0x0b,0x0e,0x0e,0x08,0x0f,0x06,0x06,0x03,0x03,0x0a,0x09,0x07,0x08,0x03,0x08,0x05,0x05,0x08,0x08,0x06,0x03,0x03,0x06,0x12,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03, -0x05,0x03,0x06,0x07,0x04,0x08,0x06,0x09,0x07,0x04,0x0b,0x08,0x08,0x07,0x08,0x09,0x0a,0x0a,0x05,0x06,0x06,0x0e,0x0e,0x0e,0x07,0x0a,0x09,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x06,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0b,0x08,0x08,0x08,0x08,0x07,0x04,0x07,0x05,0x07,0x05,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x05,0x09,0x05, -0x08,0x06,0x08,0x05,0x08,0x07,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x07,0x0b,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x06,0x07,0x06,0x11,0x09,0x07,0x09,0x03,0x06,0x0c,0x05,0x09,0x05,0x05,0x09,0x05,0x0a,0x08,0x09,0x07,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04, -0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x09,0x07,0x07,0x07,0x04,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x05,0x08,0x06,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x08,0x07,0x04,0x0a,0x08,0x0d,0x0c,0x0b,0x09,0x03,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x08,0x07,0x03,0x06,0x08,0x09,0x0e,0x0e,0x0e,0x0d,0x06,0x06, -0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0c,0x0a,0x0c,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x09,0x0d,0x0b,0x08,0x0b,0x0b,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x04,0x08,0x09,0x07,0x09,0x04,0x08,0x08,0x08,0x07,0x09,0x09,0x04,0x08,0x07,0x09,0x08,0x07,0x09,0x09,0x07,0x08,0x08,0x0b,0x0c,0x04,0x08,0x09,0x08,0x0c,0x08,0x0b,0x07, -0x09,0x08,0x04,0x0f,0x0f,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x07,0x0a,0x08,0x0d,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x08,0x09,0x08,0x09,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x0b,0x0c,0x09,0x09,0x0f,0x09,0x08,0x09,0x08,0x06,0x08,0x08,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x06,0x07,0x0a,0x07,0x09, -0x08,0x0c,0x0c,0x09,0x0b,0x08,0x07,0x0c,0x08,0x08,0x09,0x06,0x07,0x06,0x04,0x0c,0x0c,0x09,0x07,0x07,0x09,0x07,0x06,0x0f,0x11,0x09,0x05,0x06,0x06,0x06,0x04,0x08,0x06,0x08,0x0b,0x09,0x0b,0x09,0x05,0x05,0x04,0x04,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, -0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a, -0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x05,0x08,0x08,0x0b,0x09,0x04,0x05,0x04,0x04,0x08,0x06,0x0e,0x0c,0x09,0x08,0x09,0x07,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x07,0x0a,0x08,0x0a,0x08,0x0b,0x08,0x0b,0x09,0x05,0x05,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x04,0x04,0x05, -0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x05,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x07, -0x04,0x07,0x04,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x09,0x08,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, -0x08,0x09,0x07,0x09,0x07,0x0e,0x0b,0x0e,0x0b,0x09,0x07,0x09,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x0b,0x07,0x08,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, -0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09, -0x09,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x08,0x08,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x06,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d, -0x0c,0x0b,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x0b,0x09,0x09,0x09,0x08,0x08,0x07,0x0a,0x09,0x0d,0x04,0x04,0x09,0x07,0x04,0x07,0x0d,0x0b,0x09,0x0b,0x0f,0x0c,0x09,0x09,0x09,0x08,0x06,0x08,0x04,0x05,0x08,0x05,0x08,0x0b,0x0b,0x09, -0x08,0x09,0x07,0x09,0x09,0x07,0x06,0x08,0x08,0x06,0x06,0x08,0x04,0x06,0x07,0x04,0x13,0x11,0x0f,0x0d,0x0b,0x08,0x10,0x0f,0x0c,0x0a,0x08,0x04,0x04,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x0a,0x09,0x0a,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x04,0x13,0x11,0x0f, -0x0a,0x09,0x0f,0x0a,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x0a,0x08,0x0a,0x08,0x08,0x06,0x0b,0x08,0x0b,0x09,0x09,0x09,0x07,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09, -0x08,0x09,0x06,0x06,0x08,0x08,0x04,0x09,0x09,0x08,0x07,0x07,0x08,0x08,0x08,0x04,0x04,0x05,0x04,0x06,0x04,0x09,0x0d,0x0d,0x0d,0x08,0x08,0x09,0x09,0x0a,0x0b,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x08,0x07,0x0b,0x07,0x06,0x07,0x08,0x07,0x07,0x05,0x05,0x05,0x07,0x09, -0x07,0x08,0x08,0x08,0x04,0x07,0x06,0x09,0x05,0x05,0x0e,0x0e,0x0f,0x09,0x07,0x0b,0x0c,0x09,0x09,0x07,0x07,0x08,0x09,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x0b,0x09,0x09,0x07,0x07,0x07,0x09,0x08,0x09,0x07,0x0d,0x0d,0x09,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x0a,0x09,0x08,0x06,0x09,0x09,0x07,0x04,0x0b,0x07,0x07,0x0d,0x0a,0x0a,0x09, -0x0e,0x0b,0x0a,0x07,0x0d,0x0a,0x0b,0x08,0x0e,0x0b,0x08,0x07,0x0c,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x14,0x11,0x0c,0x0a,0x11,0x0d,0x0d,0x0a,0x09,0x07,0x08,0x06,0x06,0x00,0x00,0x0f,0x0e,0x09,0x08,0x08,0x09,0x09,0x08,0x08,0x07,0x09,0x07,0x0b,0x09,0x0d,0x0a,0x0f,0x0d,0x0b,0x08,0x09,0x07,0x08,0x06,0x0d,0x0a,0x0a,0x09,0x0d, -0x0a,0x0d,0x0a,0x04,0x0d,0x0b,0x09,0x08,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x08,0x08,0x0b,0x08,0x0b,0x08,0x0d,0x0b,0x08,0x07,0x08,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x0c,0x0b,0x09,0x09,0x0d,0x0d,0x0c,0x0b,0x08,0x07,0x0e,0x0c,0x0f,0x0d,0x0b,0x08, -0x0a,0x09,0x09,0x08,0x08,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x09,0x05,0x05,0x02,0x03,0x03,0x03,0x04,0x06,0x04,0x03,0x06,0x03,0x03,0x03,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04, -0x02,0x04,0x04,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08, -0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08, -0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x09,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x08,0x09,0x07,0x0a,0x0c,0x07,0x07,0x08,0x08,0x06,0x06,0x04,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x09,0x09,0x0e,0x08,0x09,0x09,0x07,0x07,0x07,0x06,0x08,0x09,0x0b,0x09,0x07,0x0b,0x07,0x06,0x06,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x05,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x06,0x03,0x03,0x05,0x04,0x08,0x07,0x07, -0x06,0x06,0x05,0x05,0x04,0x06,0x08,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x02,0x05,0x07,0x05,0x05,0x04,0x05,0x05,0x05,0x03,0x05,0x05,0x07,0x04,0x05,0x05,0x04,0x05,0x06,0x04,0x02,0x03,0x05,0x04,0x05,0x04,0x05,0x06,0x04,0x09,0x02,0x05,0x08,0x0d,0x09,0x08,0x08,0x0d,0x0a,0x0d,0x0b,0x08,0x09,0x08,0x07,0x11, -0x07,0x09,0x0d,0x0e,0x0e,0x09,0x0a,0x09,0x07,0x07,0x08,0x06,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x07,0x06,0x09,0x09,0x05,0x0d,0x08,0x09,0x05,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x08,0x09,0x09,0x09,0x05,0x09,0x07,0x04,0x0d,0x08,0x09,0x05,0x06,0x06,0x07,0x07,0x07,0x08,0x09,0x09, -0x08,0x07,0x07,0x0b,0x04,0x07,0x04,0x08,0x07,0x05,0x04,0x04,0x05,0x04,0x03,0x02,0x05,0x05,0x02,0x03,0x03,0x03,0x02,0x03,0x02,0x03,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x08,0x05,0x00,0x00,0x00, -0x00,0x07,0x05,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x05,0x06,0x05,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x05,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x08,0x06,0x08,0x0a,0x08,0x0c,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0f,0x06,0x04,0x08,0x09,0x06,0x08,0x08, -0x09,0x09,0x08,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0b,0x0a,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05,0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x06,0x04,0x04,0x08,0x04,0x0b,0x04,0x0e,0x08,0x0e,0x0e,0x09,0x09,0x09,0x08,0x08,0x06,0x06,0x12,0x12,0x14,0x14,0x0d, -0x0d,0x08,0x08,0x03,0x0f,0x0b,0x0d,0x0a,0x09,0x0a,0x08,0x08,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x06,0x0e,0x08,0x0e,0x08,0x0b,0x0d,0x05,0x08,0x08,0x06,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x0a,0x0e,0x05,0x08, -0x06,0x0a,0x08,0x05,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x04,0x09,0x06,0x0f,0x08,0x08,0x0a,0x0a,0x0f,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x0b,0x0d,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x08,0x06,0x06,0x06,0x12,0x0d,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x08,0x09,0x09,0x09,0x0f,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0b,0x0b,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d, -0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x0a,0x05,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0e,0x0b,0x0d,0x05,0x08,0x0b,0x0d,0x0b,0x0d,0x00,0x00,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06, -0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x0d,0x14,0x0f,0x08,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0e,0x0e,0x06,0x09,0x09,0x09,0x12,0x0c,0x08,0x17,0x10,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x06,0x06,0x0b,0x0a,0x0a,0x08,0x00,0x00, -0x00,0x05,0x05,0x05,0x05,0x13,0x17,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x06,0x12,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0e, -0x08,0x08,0x0e,0x08,0x08,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x06,0x06,0x12,0x0d,0x0a,0x09,0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x05,0x04,0x0b,0x09,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x08,0x07,0x0a,0x08,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x07,0x07,0x04,0x08,0x08,0x09,0x08,0x05,0x0b,0x09,0x0a,0x08,0x09,0x07,0x09,0x08,0x06,0x0a,0x06,0x06,0x06,0x07,0x09,0x09,0x08,0x0f,0x08,0x0f,0x05,0x04,0x03,0x08,0x03,0x02,0x00,0x02,0x03,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x06,0x0b, -0x09,0x0e,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0d,0x07,0x0d,0x07,0x0d,0x0a,0x0a,0x0b,0x0a,0x0b,0x0d,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x10,0x0c,0x07,0x07,0x04,0x04,0x04,0x06,0x03,0x08,0x03,0x03,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x07,0x0a,0x04,0x05,0x0a,0x0a,0x04,0x08,0x08,0x08,0x0a,0x0a,0x04,0x06,0x0a,0x09,0x09,0x09,0x08,0x09,0x0a,0x08,0x0c,0x0b,0x08,0x08,0x08,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x09,0x0a,0x07,0x0a,0x08,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a, -0x09,0x07,0x07,0x0a,0x05,0x05,0x0a,0x05,0x08,0x08,0x08,0x0a,0x06,0x0a,0x09,0x09,0x09,0x0a,0x08,0x0c,0x0b,0x04,0x09,0x08,0x09,0x0a,0x12,0x00,0x0a,0x08,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x06,0x04,0x00,0x0b,0x0a,0x0a,0x0b,0x08,0x0a,0x0b,0x0b,0x07,0x09,0x0b,0x0b,0x0a,0x0b,0x0c,0x0c,0x0a,0x08,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0a,0x0a,0x0c,0x07,0x09,0x09,0x0d,0x08,0x08,0x0c,0x0d,0x09,0x08,0x10,0x09,0x09,0x0b,0x08,0x08,0x0b,0x08,0x0b,0x0c,0x0d,0x08, -0x0c,0x08,0x0a,0x08,0x09,0x09,0x09,0x08,0x09,0x0c,0x08,0x09,0x0a,0x08,0x08,0x09,0x0e,0x08,0x08,0x09,0x09,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x0d,0x08,0x0d,0x07,0x08,0x0d,0x0a,0x08,0x0d,0x0b,0x0b,0x0d,0x09,0x08,0x0d,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x09,0x08,0x09,0x0d,0x09,0x08,0x08,0x08,0x0d,0x0c,0x0a,0x0a, -0x0a,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0a,0x08,0x0c,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x0a,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0b,0x01,0x02,0x02,0x03,0x02,0x04,0x05,0x0d,0x08,0x09,0x09,0x08,0x09,0x08,0x08,0x0a,0x09,0x08,0x05,0x0d,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x04,0x09, -0x08,0x08,0x06,0x0d,0x08,0x08,0x08,0x09,0x0c,0x08,0x09,0x06,0x0c,0x09,0x09,0x0a,0x0a,0x03,0x04,0x11,0x11,0x11,0x11,0x15,0x08,0x08,0x04,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x0a,0x09,0x07,0x09,0x07,0x06,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x0b,0x0c,0x06,0x09,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x0a,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x08,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c, -0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0b,0x09,0x08,0x07,0x06,0x08,0x06,0x07,0x09,0x09,0x04,0x07,0x08,0x0b,0x0a,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x09,0x08,0x0a,0x0a,0x08,0x06,0x09,0x04,0x09,0x07,0x0a,0x04,0x07,0x06,0x09,0x06,0x08,0x06,0x04,0x04,0x05,0x0c,0x0c,0x09,0x07,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x06, -0x0b,0x07,0x0a,0x0a,0x07,0x09,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x08,0x0c,0x0c,0x09,0x0b,0x07,0x08,0x0d,0x07,0x06,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x08,0x09,0x06,0x09,0x08,0x08,0x0b,0x08,0x08,0x0a,0x09,0x09,0x05,0x09,0x09,0x09,0x07,0x07,0x0d,0x0b,0x07,0x08,0x09,0x09,0x09,0x09,0x0b,0x0a,0x05,0x0e,0x09, -0x08,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0b,0x0a,0x0a,0x07,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x09,0x06,0x04,0x0b,0x0b,0x04,0x03,0x03,0x07,0x06,0x06,0x03,0x03,0x03,0x06,0x0a,0x07,0x05,0x09,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x07,0x08,0x06,0x03,0x03,0x06,0x08,0x05,0x0a,0x0a,0x0a,0x0e,0x0b,0x0e,0x04,0x00,0x00,0x00,0x00, -0x00,0x04,0x0b,0x0d,0x05,0x05,0x08,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x08,0x08,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x08,0x08,0x0e,0x0e,0x08,0x08,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0f,0x0b,0x0d,0x08,0x09,0x09,0x0a,0x05,0x0a,0x0b,0x08, -0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x05,0x0b,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x0d,0x12,0x0d,0x12,0x0d, -0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x08,0x08,0x0b,0x08,0x08,0x0e,0x08,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x08,0x09,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x12,0x0d,0x14,0x0f,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x08,0x08,0x06,0x12,0x0d,0x0f,0x0f,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x12,0x0d,0x09,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09, -0x12,0x12,0x0d,0x0d,0x06,0x06,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x09,0x09,0x09,0x09,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x09,0x12,0x12,0x0d,0x0d,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04, -0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x0a,0x0a,0x0a,0x04,0x04,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x09,0x0a, -0x09,0x08,0x0a,0x08,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x09,0x0a,0x09,0x0a,0x09,0x09,0x09,0x08,0x08,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x0c,0x0b,0x0b,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x08,0x0c,0x0d,0x0b,0x09,0x0d,0x0b,0x0a,0x0b, -0x09,0x0a,0x0b,0x0c,0x0a,0x09,0x0b,0x09,0x08,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0a,0x0a,0x0d,0x0b,0x0b,0x0d,0x08,0x08,0x08,0x08,0x09,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x09,0x08,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x09, -0x09,0x07,0x08,0x08,0x09,0x09,0x0b,0x0d,0x0a,0x0a,0x09,0x0c,0x0a,0x0a,0x08,0x07,0x09,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x09,0x07,0x08,0x07,0x08,0x0c,0x08,0x0c,0x08,0x08,0x09,0x0b,0x05,0x0c,0x0a,0x0b,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07, -0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0e,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x07,0x06,0x07,0x08,0x08,0x07,0x0d,0x0c,0x0d,0x07,0x0f,0x07,0x0d,0x0d,0x0d,0x0c,0x08,0x07,0x07,0x0c,0x09,0x0c,0x0a,0x08,0x07,0x06,0x0f,0x06,0x08,0x07, -0x07,0x07,0x07,0x07,0x14,0x0d,0x0d,0x06,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x07,0x09,0x09,0x08,0x06,0x06,0x03,0x03,0x03,0x06,0x03,0x06,0x0d,0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x12,0x0a,0x12,0x12,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x09,0x07,0x08,0x06,0x05,0x05,0x0a,0x08,0x0b,0x06,0x11,0x0d,0x09,0x08,0x0e,0x0c,0x0d,0x0b,0x0f,0x0c,0x0e,0x0c,0x0a,0x07,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x11,0x0d,0x0b,0x09,0x0b,0x09,0x12,0x0d, -0x0c,0x00,0x0f,0x0f,0x0f,0x07,0x00,0x00,0x09,0x08,0x0a,0x08,0x08,0x06,0x10,0x0e,0x0e,0x0d,0x0b,0x09,0x0a,0x09,0x08,0x06,0x0b,0x09,0x08,0x06,0x0c,0x0a,0x0a,0x08,0x0f,0x0c,0x08,0x09,0x0b,0x0b,0x0c,0x07,0x03,0x07,0x0a,0x06,0x0f,0x0f,0x04,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, -0x00,0x07,0x07,0x0a,0x0b,0x04,0x03,0x04,0x03,0x0b,0x08,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x11,0x0c,0x11,0x0d,0x0f,0x0d,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x07,0x04,0x0b,0x09,0x0d,0x0a,0x14,0x0f,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0b,0x09,0x0f,0x0c,0x08,0x06,0x08, -0x07,0x09,0x07,0x0e,0x0b,0x09,0x08,0x08,0x09,0x08,0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x08,0x05,0x0a,0x05,0x0e,0x0a,0x05,0x09,0x09,0x07,0x0b,0x08,0x06,0x05,0x09,0x09,0x09,0x07,0x04,0x0b,0x09,0x06,0x05,0x09,0x07,0x0b,0x06,0x0c,0x09,0x09,0x07,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x08,0x06,0x0b,0x06,0x08,0x0d,0x07, -0x08,0x0d,0x04,0x11,0x0d,0x0d,0x12,0x0d,0x0e,0x0e,0x0d,0x0d,0x0e,0x08,0x07,0x09,0x0b,0x0d,0x0b,0x0e,0x04,0x07,0x09,0x0d,0x0f,0x0b,0x0f,0x09,0x09,0x0c,0x0b,0x11,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0f,0x08,0x08,0x0f,0x0b,0x08,0x08,0x0b,0x0a,0x05,0x05,0x0a,0x09,0x09,0x09,0x09,0x0b,0x05, -0x05,0x0d,0x0b,0x05,0x05,0x0d,0x06,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x06,0x08,0x08,0x0b,0x09,0x09,0x0d,0x0a,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0f,0x0c,0x10,0x0d,0x0a,0x09,0x05,0x05,0x09, -0x0a,0x06,0x09,0x08,0x09,0x07,0x0b,0x0c,0x06,0x09,0x06,0x03,0x06,0x08,0x08,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x16,0x1e,0x05,0x06,0x02,0x04,0x06,0x06,0x05,0x07,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x14,0x08,0x0b,0x0e,0x0d,0x0a,0x07,0x08,0x0b,0x0b,0x07,0x05,0x0a,0x08,0x0a, -0x08,0x0a,0x08,0x08,0x0b,0x09,0x09,0x08,0x0b,0x09,0x0c,0x07,0x08,0x0a,0x05,0x09,0x05,0x05,0x04,0x0d,0x09,0x08,0x08,0x08,0x09,0x0e,0x0e,0x0e,0x0f,0x0f,0x08,0x08,0x04,0x08,0x07,0x09,0x07,0x0a,0x04,0x08,0x09,0x0d,0x0d,0x09,0x08,0x09,0x08,0x08,0x07,0x08,0x07,0x07,0x05,0x05,0x04,0x03,0x05,0x09,0x0a,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x00,0x04,0x04,0x04,0x04,0x04,0x19,0x0f,0x0d,0x10,0x04,0x04,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x0e,0x05,0x05,0x0e,0x04,0x08,0x08,0x14,0x0f,0x0f,0x14,0x0e,0x08,0x08,0x0e,0x08,0x08,0x06,0x06,0x00,0x00,0x05,0x0b,0x09,0x0b,0x09, -0x13,0x10,0x0a,0x08,0x0b,0x08,0x14,0x0f,0x0b,0x09,0x06,0x05,0x09,0x00,0x0a,0x08,0x05,0x05,0x02,0x07,0x05,0x05,0x04,0x03,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x08,0x06,0x09,0x09,0x08,0x0e,0x0c,0x0c,0x0c,0x0c,0x0e,0x09,0x0a,0x09,0x06,0x0e,0x11,0x07,0x11,0x08,0x0d,0x0e,0x0e,0x0e,0x06,0x0b,0x0f,0x0b,0x0a,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0e,0x05,0x05,0x0e,0x05,0x05,0x0e,0x07,0x07,0x00,0x06,0x0d,0x05,0x05,0x0f,0x08,0x08,0x0b,0x08,0x08,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x17,0x17,0x0d,0x00,0x00,0x0d,0x0d, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x09,0x0a,0x0a,0x0d,0x0a,0x09,0x0c,0x0f,0x0a,0x09,0x10,0x0a,0x0a,0x0e,0x09,0x0a,0x0c,0x0a,0x0c,0x0d,0x0e,0x0a,0x0c,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x09,0x0c,0x09,0x0a,0x0c,0x09,0x09,0x09,0x0c,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x0a,0x0c, -0x0c,0x08,0x00,0x00,0x10,0x20,0x0a,0x00,0x02,0x04,0x05,0x06,0x09,0x09,0x0d,0x0d,0x04,0x05,0x05,0x07,0x0b,0x03,0x06,0x03,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x03,0x03,0x0b,0x0b,0x0b,0x07,0x0f,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x04,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x0a,0x09,0x08,0x0b,0x0a, -0x0f,0x09,0x09,0x09,0x05,0x06,0x05,0x0b,0x07,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x09,0x04,0x04,0x08,0x04,0x0e,0x09,0x09,0x09,0x09,0x06,0x07,0x05,0x09,0x08,0x0c,0x07,0x08,0x07,0x05,0x04,0x05,0x0b,0x0a,0x0a,0x0a,0x08,0x0c,0x0c,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x09,0x07,0x07,0x07,0x09,0x06,0x0e,0x0e,0x0c,0x05,0x07,0x0b,0x0e,0x0c,0x0d,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x0c,0x09,0x06,0x07,0x0c,0x0d,0x09,0x07,0x04,0x05,0x0b,0x0a,0x09,0x0b,0x0a,0x08,0x08,0x0c,0x0a,0x0a,0x0c,0x0f,0x0f,0x08,0x10,0x06,0x06,0x04,0x04,0x0b,0x09, -0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x03,0x04,0x06,0x13,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03,0x05,0x03,0x06,0x08,0x04,0x09,0x07,0x09,0x07,0x04,0x0b,0x09,0x09,0x08,0x09,0x09,0x0b,0x0b,0x06,0x06,0x06,0x0f,0x0f,0x0f,0x08,0x0b,0x09,0x04, -0x09,0x07,0x0a,0x07,0x0a,0x07,0x09,0x07,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x05,0x08,0x05,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x0a,0x06,0x09,0x07,0x08,0x05,0x08,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x08,0x0c,0x0c,0x0a,0x09,0x07,0x09,0x08,0x0b,0x07,0x08,0x06,0x12,0x0a, -0x08,0x0a,0x04,0x06,0x0d,0x05,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x08,0x0a,0x07,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x09,0x08,0x08,0x08,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x09,0x07,0x08,0x05,0x0b,0x09, -0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0c,0x09,0x08,0x04,0x0a,0x08,0x0e,0x0d,0x0c,0x09,0x03,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x09,0x08,0x04,0x07,0x09,0x0a,0x0f,0x0f,0x0f,0x0e,0x06,0x06,0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0d,0x0b,0x0d,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x0a,0x0e,0x0c,0x08,0x0c,0x0b,0x09,0x08,0x08,0x09, -0x09,0x0c,0x0c,0x04,0x09,0x0a,0x07,0x09,0x04,0x09,0x09,0x08,0x07,0x09,0x09,0x04,0x08,0x08,0x09,0x08,0x07,0x09,0x09,0x07,0x09,0x09,0x0c,0x0d,0x04,0x09,0x09,0x09,0x0d,0x08,0x0b,0x08,0x0a,0x09,0x04,0x10,0x10,0x0c,0x09,0x09,0x0b,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x09,0x0c,0x0c,0x09,0x0b,0x0e,0x0b,0x0c,0x0b,0x09,0x0a,0x08, -0x09,0x0c,0x09,0x0c,0x0b,0x0f,0x10,0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x09,0x08,0x06,0x09,0x08,0x0c,0x07,0x09,0x09,0x08,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x07,0x08,0x0b,0x07,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x07,0x0d,0x08,0x08,0x09,0x06,0x07,0x07,0x04,0x0d,0x0d,0x09,0x08,0x08,0x09,0x08,0x06,0x10,0x12,0x0a,0x06,0x06, -0x06,0x06,0x04,0x09,0x07,0x09,0x0c,0x0a,0x0b,0x09,0x05,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x05,0x08,0x08,0x0c,0x09,0x04,0x06,0x04,0x04,0x08, -0x07,0x0f,0x0c,0x0a,0x08,0x09,0x08,0x0c,0x0a,0x09,0x08,0x09,0x08,0x0a,0x08,0x0a,0x09,0x0b,0x09,0x0c,0x08,0x0c,0x09,0x05,0x05,0x05,0x05,0x07,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08, -0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x09,0x09, -0x09,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0f,0x0c,0x0f,0x0c,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x05,0x0c,0x08,0x08,0x04,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09, -0x09,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04, -0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0a,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x07,0x0b, -0x0c,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x0a,0x0e,0x05,0x04,0x09,0x08,0x04,0x08,0x0e,0x0c,0x09,0x0c,0x10,0x0d,0x0a,0x09,0x09,0x09,0x07,0x08,0x05,0x05,0x08,0x05,0x08,0x0c,0x0b,0x09,0x08,0x09,0x07,0x0a,0x0a,0x07,0x07,0x09,0x09,0x06,0x06,0x09,0x04,0x06,0x07,0x05,0x14,0x12,0x10,0x0e,0x0c,0x08,0x11,0x0f,0x0d,0x0a,0x08,0x04, -0x04,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x0b,0x09,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x04,0x14,0x12,0x10,0x0b,0x09,0x10,0x0b,0x0c,0x09,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x09,0x06,0x0a,0x06,0x0b,0x09, -0x0b,0x09,0x08,0x07,0x0b,0x09,0x0c,0x09,0x09,0x09,0x07,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09,0x08,0x0a,0x07,0x07,0x08,0x09,0x04,0x09,0x09,0x08,0x08,0x07,0x09,0x09,0x09,0x04,0x04,0x05,0x04,0x06,0x04,0x0a,0x0e,0x0e,0x0e,0x09,0x09,0x09, -0x09,0x0b,0x0c,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x05,0x05,0x05,0x05,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x07,0x08,0x07,0x07,0x06,0x06,0x06,0x07,0x0a,0x08,0x09,0x08,0x09,0x04,0x08,0x06,0x09,0x06,0x06,0x0f,0x0f,0x10,0x0a,0x08,0x0b,0x0d,0x09,0x09,0x08,0x08,0x09,0x09,0x09,0x0b,0x09,0x0a,0x0d, -0x09,0x0b,0x09,0x09,0x07,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0e,0x0e,0x0a,0x08,0x0a,0x09,0x0a,0x07,0x0a,0x08,0x0b,0x09,0x09,0x07,0x09,0x09,0x07,0x04,0x0c,0x07,0x07,0x0e,0x0b,0x0a,0x09,0x0f,0x0b,0x0b,0x08,0x0e,0x0b,0x0c,0x09,0x0f,0x0c,0x09,0x07,0x0d,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x15,0x12,0x0d,0x0a,0x12,0x0e,0x0e,0x0b, -0x09,0x07,0x08,0x06,0x07,0x00,0x00,0x10,0x0f,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x0c,0x09,0x0a,0x07,0x08,0x07,0x0e,0x0b,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x04,0x0e,0x0c,0x09,0x08,0x0b,0x09,0x0a,0x09,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x08,0x08,0x0c,0x08,0x0c,0x08,0x0e,0x0c,0x09,0x07, -0x08,0x07,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x09,0x0e,0x0e,0x0d,0x0c,0x09,0x08,0x0e,0x0d,0x10,0x0e,0x0b,0x08,0x0b,0x0a,0x09,0x09,0x09,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x09,0x05,0x05,0x03,0x03, -0x03,0x03,0x04,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x05,0x04,0x05,0x05,0x04,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x07,0x05,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09, -0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x00, -0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x0b,0x0d,0x08,0x07,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x06,0x0b,0x09,0x09,0x08,0x0a,0x0a,0x0a,0x0f,0x09,0x0a,0x0a, -0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x09,0x08,0x0c,0x07,0x07,0x07,0x08,0x06,0x08,0x09,0x07,0x09,0x09,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x08,0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x07,0x08,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x05,0x05,0x04,0x05,0x05,0x05,0x03, -0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x07,0x05,0x09,0x03,0x06,0x09,0x0e,0x0a,0x09,0x09,0x0e,0x0a,0x0e,0x0c,0x08,0x09,0x08,0x07,0x12,0x07,0x09,0x0e,0x0f,0x0f,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x07,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x0a,0x0a,0x0a,0x08,0x06,0x09,0x09,0x05, -0x0e,0x09,0x09,0x06,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x09,0x0a,0x09,0x09,0x05,0x09,0x08,0x04,0x0e,0x09,0x09,0x06,0x07,0x07,0x08,0x07,0x07,0x08,0x09,0x09,0x08,0x07,0x07,0x0c,0x04,0x07,0x04,0x09,0x07,0x06,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08, -0x05,0x05,0x06,0x05,0x06,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x09,0x05,0x00,0x00,0x00,0x00,0x07,0x05,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0a,0x0b,0x09,0x0c,0x0a, -0x0f,0x0c,0x09,0x06,0x08,0x0b,0x09,0x0d,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x10,0x07,0x04,0x08,0x09,0x07,0x08,0x08,0x09,0x09,0x08,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0c,0x0b,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05, -0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x07,0x04,0x04,0x08,0x04,0x0c,0x04,0x0f,0x08,0x0f,0x0f,0x09,0x09,0x09,0x08,0x08,0x07,0x07,0x13,0x13,0x15,0x15,0x0d,0x0d,0x08,0x08,0x03,0x10,0x0c,0x0d,0x0b,0x09,0x0b,0x08,0x08,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a, -0x0a,0x05,0x08,0x08,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x07,0x0f,0x08,0x0f,0x08,0x0c,0x0d,0x05,0x08,0x08,0x07,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0b,0x0a,0x0f,0x05,0x08,0x07,0x0b,0x08,0x05,0x08,0x08,0x08,0x0f,0x05,0x0f,0x05,0x04,0x09,0x06,0x10,0x08,0x08,0x0a,0x0a,0x10,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a, -0x0a,0x0a,0x0c,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x08,0x0c,0x0d,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x13, -0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x08,0x09,0x09,0x09,0x10,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x0c,0x0c,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x0b,0x05, -0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0f,0x0c,0x0d,0x05,0x08,0x0c,0x0d,0x0c,0x0d,0x00,0x00,0x00,0x00,0x00,0x12,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x13,0x0d,0x15,0x10,0x08,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x08,0x0f,0x0f,0x06,0x09,0x09,0x0a,0x14,0x0d,0x09,0x18,0x11,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x07,0x0c,0x0b,0x0b,0x08,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x14,0x18,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x05,0x0f,0x05,0x0f,0x05, -0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x07,0x13,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x10,0x08,0x08,0x10,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x07,0x07,0x13,0x0d,0x0a,0x09, -0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0b,0x0a,0x08,0x08,0x06,0x04,0x0c,0x09,0x0a,0x06,0x09,0x08,0x08,0x07,0x08,0x04,0x08,0x07,0x0a,0x08,0x09,0x07,0x09,0x07,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x07,0x08,0x08,0x05,0x08,0x09,0x0a,0x08,0x05,0x0c,0x09,0x0a,0x09,0x0a,0x08,0x09,0x08,0x06,0x0b,0x06,0x07, -0x07,0x08,0x0a,0x0a,0x08,0x10,0x08,0x10,0x05,0x04,0x03,0x09,0x03,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x0f,0x07,0x0c,0x09,0x0f,0x0c,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0e,0x08,0x0e,0x08,0x0e,0x0a,0x0b,0x0b,0x0b,0x0c,0x0e,0x10,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x11,0x0d,0x08,0x08,0x05,0x05,0x05,0x06,0x03,0x09,0x04,0x04,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x08,0x0b,0x04,0x05,0x0b,0x0b,0x04,0x09,0x09,0x09,0x0b,0x0b,0x04,0x06,0x0b, -0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x0d,0x0c,0x08,0x08,0x08,0x04,0x06,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x08,0x0b,0x09,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x08,0x0b,0x05,0x06,0x0b,0x05,0x09,0x09,0x09,0x0b,0x06,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0c,0x04,0x09,0x09,0x0a,0x0a,0x13,0x00, -0x0a,0x09,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x00,0x0c,0x0a,0x0b,0x0b,0x09,0x0b,0x0c,0x0c,0x08,0x0a,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x09,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0c,0x09,0x0a,0x0b,0x0a,0x0c,0x0a,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x09,0x0e,0x09,0x09,0x0c,0x0e,0x0a,0x09,0x11,0x09,0x09,0x0c,0x09,0x09,0x0c,0x09,0x0c,0x0d,0x0e,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x0c,0x09,0x0a,0x0b,0x09,0x09,0x0a,0x0f,0x09,0x09,0x09,0x09,0x07,0x05,0x09,0x09,0x09,0x09,0x09, -0x0e,0x09,0x0e,0x08,0x09,0x0e,0x0b,0x09,0x0e,0x0c,0x0c,0x0e,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x0a,0x09,0x09,0x09,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0d,0x0b,0x0a,0x09,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0c,0x0c,0x09,0x0b,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0a, -0x0b,0x0b,0x0c,0x0d,0x0b,0x0c,0x0c,0x02,0x02,0x02,0x03,0x02,0x04,0x06,0x0e,0x09,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x09,0x05,0x0d,0x09,0x09,0x09,0x09,0x0a,0x08,0x09,0x04,0x09,0x08,0x09,0x07,0x0e,0x09,0x09,0x09,0x09,0x0d,0x09,0x09,0x06,0x0d,0x09,0x09,0x0b,0x0b,0x03,0x05,0x12,0x12,0x12,0x12,0x17,0x09,0x09,0x04,0x09, -0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x09,0x07,0x07,0x09,0x0a,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a, -0x08,0x0a,0x08,0x07,0x07,0x0a,0x08,0x0d,0x08,0x07,0x08,0x0b,0x0c,0x07,0x0a,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x0a,0x0a,0x04,0x04, -0x04,0x04,0x04,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x0b,0x0a,0x08,0x08,0x06,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x0a,0x08, -0x07,0x07,0x07,0x0a,0x08,0x0b,0x0a,0x08,0x07,0x0a,0x04,0x0a,0x07,0x0a,0x04,0x07,0x07,0x09,0x06,0x08,0x07,0x04,0x04,0x05,0x0d,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x08,0x08,0x06,0x09,0x07,0x0c,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0a,0x08,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x08,0x0e,0x08,0x06,0x09, -0x09,0x0a,0x0e,0x0e,0x0b,0x08,0x09,0x07,0x09,0x09,0x09,0x0b,0x08,0x08,0x0b,0x09,0x09,0x06,0x0a,0x0a,0x09,0x08,0x08,0x0e,0x0c,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x0f,0x09,0x09,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0c,0x0b,0x0b,0x08,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x0a,0x06,0x04,0x0c,0x0b,0x05,0x03,0x03,0x07,0x06, -0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x07,0x09,0x07,0x03,0x04,0x06,0x08,0x05,0x0b,0x0b,0x0b,0x0f,0x0c,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0c,0x0d,0x05,0x05,0x08,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x08,0x08,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d, -0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x08,0x08,0x0f,0x0f,0x08,0x08,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x10,0x0c,0x0d,0x08,0x09,0x09,0x0b,0x05,0x0b,0x0c,0x08,0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x05,0x0c,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0f,0x05, -0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x08,0x08,0x0c,0x08,0x08,0x0f,0x08,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d, -0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x13,0x0d,0x15,0x10,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05, -0x0f,0x05,0x0f,0x05,0x09,0x09,0x08,0x08,0x07,0x13,0x0d,0x10,0x10,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x13,0x0d,0x09,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x09,0x09, -0x09,0x09,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x13,0x13,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04,0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0d,0x09,0x0d,0x09, -0x0d,0x09,0x0d,0x0b,0x0b,0x0b,0x04,0x04,0x08,0x07,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x09,0x09,0x0a,0x08,0x0b,0x0c,0x0a,0x0c,0x0d,0x0a,0x0c,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x0a,0x0a,0x0b, -0x09,0x0a,0x09,0x0a,0x0a,0x08,0x08,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0b,0x0f,0x0f,0x0c,0x0e,0x0e,0x09,0x0c,0x0e,0x0c,0x0a,0x0e,0x0c,0x0b,0x0b,0x0a,0x0a,0x0c,0x0d,0x0b,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0b,0x0f,0x0f,0x0b,0x0c,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0c,0x0d, -0x0b,0x0b,0x09,0x0c,0x0b,0x0b,0x0e,0x0c,0x0c,0x0e,0x09,0x08,0x09,0x09,0x0a,0x0a,0x0b,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x09,0x0a,0x0a,0x0a,0x07,0x09,0x09,0x09,0x0a,0x0c,0x0d,0x0a,0x0a,0x0a,0x0c,0x0a,0x0b,0x08,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x08,0x07,0x0a,0x07,0x09,0x08, -0x09,0x0d,0x09,0x0d,0x09,0x09,0x09,0x0c,0x05,0x0d,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0a,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x04,0x04,0x0e, -0x0e,0x0e,0x0e,0x08,0x0c,0x0c,0x08,0x07,0x08,0x08,0x09,0x08,0x0e,0x0d,0x0e,0x07,0x10,0x08,0x0d,0x0d,0x0d,0x0d,0x09,0x08,0x08,0x0c,0x09,0x0c,0x0b,0x09,0x07,0x07,0x10,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x16,0x0d,0x0d,0x07,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0e, -0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x0b,0x13,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x09,0x08,0x09,0x07,0x06,0x06,0x0b,0x09, -0x0b,0x07,0x12,0x0e,0x09,0x09,0x0f,0x0d,0x0e,0x0c,0x10,0x0d,0x0f,0x0c,0x0a,0x08,0x0c,0x09,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x12,0x0d,0x0c,0x09,0x0c,0x09,0x13,0x0e,0x0d,0x00,0x10,0x10,0x10,0x08,0x00,0x00,0x09,0x08,0x0b,0x09,0x09,0x07,0x11,0x0e,0x0f,0x0e,0x0b,0x09,0x0b,0x09,0x08,0x07,0x0c,0x0a,0x08,0x07, -0x0d,0x0b,0x0b,0x09,0x10,0x0d,0x09,0x09,0x0c,0x0c,0x0d,0x07,0x03,0x07,0x0b,0x07,0x10,0x10,0x04,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0b,0x0c,0x04,0x03,0x04,0x03,0x0b,0x09,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x09,0x07,0x07,0x12,0x0d,0x12,0x0e,0x10,0x0e,0x0e, -0x0b,0x0e,0x0b,0x0e,0x0b,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x05,0x08,0x04,0x0c,0x09,0x0e,0x0b,0x15,0x10,0x09,0x09,0x0b,0x0b,0x0d,0x0e,0x0c,0x09,0x10,0x0d,0x09,0x06,0x09,0x08,0x0a,0x08,0x0f,0x0c,0x0a,0x08,0x09,0x09,0x09,0x09,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x08,0x05,0x0b,0x05,0x0f,0x0b,0x06,0x09,0x0a,0x07, -0x0c,0x09,0x06,0x06,0x09,0x09,0x09,0x08,0x04,0x0c,0x0a,0x06,0x06,0x0a,0x07,0x0b,0x06,0x0c,0x0a,0x0a,0x07,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x09,0x07,0x0c,0x07,0x08,0x0e,0x08,0x09,0x0e,0x04,0x12,0x0e,0x0e,0x13,0x0e,0x0f,0x0f,0x0e,0x0e,0x0f,0x08,0x08,0x0a,0x0b,0x0e,0x0b,0x0f,0x04,0x07,0x09,0x0e,0x10,0x0b,0x10,0x0a, -0x0a,0x0d,0x0b,0x12,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x10,0x08,0x08,0x10,0x0c,0x08,0x08,0x0c,0x0b,0x05,0x05,0x0b,0x09,0x09,0x09,0x09,0x0c,0x05,0x05,0x0d,0x0c,0x05,0x05,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x06,0x09,0x08,0x0c,0x09,0x09,0x0e,0x0b,0x0c,0x0c,0x0d,0x0d,0x09,0x08,0x10,0x0d,0x11,0x0e,0x0b,0x09,0x05,0x05,0x09,0x0a,0x07,0x0a,0x08,0x09,0x08,0x0c,0x0d,0x06,0x09,0x07,0x03,0x06,0x09,0x09,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x18,0x20,0x05,0x07,0x02, -0x04,0x06,0x07,0x05,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x15,0x09,0x0c,0x0f,0x0e,0x0a,0x07,0x09,0x0c,0x0c,0x08,0x05,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x0c,0x09,0x09,0x08,0x0c,0x0a,0x0d,0x07,0x08,0x0a,0x05,0x09,0x05,0x06,0x04,0x0e,0x09,0x09,0x08,0x08,0x09,0x0f,0x0f,0x0f, -0x10,0x10,0x09,0x08,0x05,0x08,0x07,0x0a,0x07,0x0b,0x04,0x09,0x0a,0x0e,0x0e,0x0a,0x09,0x09,0x09,0x08,0x07,0x08,0x07,0x08,0x05,0x05,0x04,0x04,0x06,0x09,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1b,0x10,0x0e,0x11,0x05,0x05,0x05,0x06,0x04,0x04,0x05, -0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x0f,0x05,0x05,0x0f,0x04,0x08,0x08,0x15,0x10,0x10,0x15,0x0f,0x08,0x08,0x0f,0x08,0x08,0x07,0x07,0x00,0x00,0x06,0x0c,0x0a,0x0b,0x09,0x14,0x11,0x0b,0x09,0x0b,0x09,0x15,0x10,0x0c,0x09,0x06,0x05,0x0a,0x00,0x0b,0x09,0x05,0x05,0x03,0x08,0x05,0x05,0x04,0x03,0x07,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x03,0x08,0x07,0x09,0x09,0x09,0x0f,0x0d,0x0d,0x0d,0x0d,0x0f,0x0a,0x0b,0x0a,0x06,0x0f,0x12,0x07,0x12,0x08,0x0d,0x0f,0x0f,0x0f,0x07,0x0c,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0f,0x05,0x05,0x0f,0x05,0x05,0x0f, -0x08,0x08,0x00,0x07,0x0d,0x05,0x05,0x10,0x08,0x08,0x0c,0x08,0x08,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x18,0x18,0x0e,0x00,0x00,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x10,0x0a,0x0a,0x11, -0x0a,0x0a,0x0f,0x0a,0x0b,0x0d,0x0a,0x0c,0x0e,0x0f,0x0a,0x0c,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0c,0x0a,0x0b,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0a,0x0a,0x0b,0x07,0x08,0x0a,0x0d,0x0c,0x09,0x00,0x00,0x11,0x22,0x0b,0x00,0x02,0x05,0x05,0x07,0x0a,0x09,0x0e,0x0e,0x04,0x05,0x05,0x07,0x0c,0x04,0x07,0x04,0x07,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x0c,0x0c,0x0c,0x08,0x10,0x0b,0x0a,0x0b,0x0c,0x09,0x08,0x0c,0x0c,0x05,0x06,0x0a,0x08,0x0f,0x0d,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x10,0x0a,0x09,0x0a,0x05,0x06,0x05,0x0c,0x07,0x05,0x09,0x0a,0x08,0x0a,0x09,0x05,0x0a,0x0a,0x04,0x04,0x08,0x04,0x0f,0x0a,0x0a,0x0a,0x0a,0x06, -0x07,0x06,0x0a,0x08,0x0c,0x08,0x08,0x08,0x05,0x04,0x05,0x0c,0x0b,0x0b,0x0b,0x09,0x0d,0x0d,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x08,0x07,0x08,0x09,0x07,0x0f,0x0f,0x0d,0x05,0x07,0x0c,0x0f,0x0d,0x0e,0x0c,0x0c, -0x0c,0x09,0x0a,0x09,0x0a,0x0d,0x09,0x07,0x07,0x0d,0x0e,0x0a,0x08,0x05,0x05,0x0c,0x0b,0x09,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x0b,0x0d,0x10,0x10,0x09,0x11,0x06,0x06,0x04,0x04,0x0c,0x0a,0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x04,0x04,0x06,0x15,0x0b,0x09,0x0b,0x09,0x09,0x05,0x05,0x05,0x05,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c, -0x04,0x06,0x06,0x05,0x05,0x03,0x05,0x03,0x06,0x03,0x06,0x08,0x05,0x09,0x07,0x0a,0x08,0x04,0x0c,0x0a,0x09,0x08,0x0a,0x0a,0x0c,0x0c,0x06,0x06,0x06,0x10,0x0f,0x10,0x08,0x0c,0x0a,0x05,0x09,0x07,0x0b,0x08,0x0b,0x08,0x0a,0x07,0x04,0x0b,0x09,0x0b,0x09,0x0c,0x0b,0x0c,0x09,0x09,0x09,0x09,0x08,0x04,0x08,0x05,0x08,0x05,0x0d,0x0a, -0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x06,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x08,0x0d,0x0d,0x0a,0x0a,0x07,0x0a,0x08,0x0c,0x07,0x08,0x07,0x13,0x0b,0x08,0x0a,0x04,0x06,0x0e,0x06,0x0a,0x06,0x06,0x0a,0x06,0x0b,0x09,0x0b,0x08,0x0b,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c, -0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x04,0x0a,0x08,0x08,0x08,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x09,0x07,0x09,0x06,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x0c,0x09,0x08,0x04,0x0b,0x09,0x0f,0x0e,0x0d,0x0a,0x04,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x09,0x08,0x04,0x07, -0x09,0x0a,0x10,0x10,0x10,0x0f,0x07,0x07,0x04,0x05,0x05,0x0b,0x0a,0x0d,0x06,0x0e,0x0b,0x0e,0x05,0x0b,0x0a,0x09,0x0a,0x0c,0x05,0x0a,0x0b,0x0f,0x0d,0x09,0x0d,0x0c,0x0a,0x09,0x09,0x09,0x0a,0x0d,0x0d,0x05,0x09,0x0a,0x07,0x0a,0x05,0x09,0x09,0x09,0x08,0x0a,0x0a,0x05,0x09,0x08,0x0a,0x09,0x08,0x0a,0x0a,0x08,0x09,0x09,0x0d,0x0e, -0x05,0x09,0x0a,0x09,0x0e,0x09,0x0c,0x08,0x0b,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x0f,0x09,0x0d,0x0d,0x0a,0x0b,0x0f,0x0c,0x0d,0x0c,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0d,0x0b,0x10,0x11,0x0c,0x0d,0x0a,0x0a,0x11,0x0a,0x09,0x0a,0x09,0x07,0x09,0x09,0x0d,0x08,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a, -0x0a,0x0a,0x08,0x07,0x08,0x0c,0x08,0x0a,0x0a,0x0e,0x0e,0x0a,0x0c,0x09,0x08,0x0e,0x09,0x09,0x0a,0x07,0x08,0x07,0x04,0x0d,0x0e,0x0a,0x08,0x08,0x0a,0x08,0x07,0x11,0x13,0x0b,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x09,0x0d,0x0a,0x0c,0x0a,0x05,0x06,0x05,0x05,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08, -0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d, -0x0a,0x0d,0x0a,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x06,0x09,0x09,0x0d,0x0a,0x05,0x06,0x04,0x04,0x09,0x07,0x0f,0x0d,0x0a,0x09,0x0a,0x08,0x0d,0x0a,0x09,0x08,0x09,0x08,0x0b,0x08,0x0b,0x0a,0x0b,0x0a,0x0c,0x09,0x0d,0x0a,0x05,0x05,0x05,0x05,0x07, -0x07,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x08,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x0a,0x08,0x0a, -0x08,0x0a,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0c, -0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x10,0x0c,0x10,0x0c,0x0a,0x08,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0c,0x08,0x09,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x07,0x07,0x0a,0x0a,0x05,0x05,0x0a,0x0a,0x09,0x09,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10, -0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x08,0x0c,0x0d,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0c,0x0b,0x0f,0x05,0x05,0x0a,0x08,0x04,0x08,0x0f,0x0d,0x0a,0x0d,0x10,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x09, -0x05,0x06,0x09,0x06,0x09,0x0d,0x0c,0x0a,0x09,0x0a,0x08,0x0a,0x0a,0x08,0x07,0x09,0x09,0x06,0x07,0x09,0x04,0x07,0x08,0x05,0x15,0x13,0x11,0x0f,0x0c,0x09,0x12,0x10,0x0e,0x0b,0x09,0x05,0x04,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a, -0x0d,0x0a,0x0a,0x08,0x04,0x15,0x13,0x11,0x0c,0x0a,0x11,0x0c,0x0d,0x0a,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x08,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x09,0x08,0x0a,0x09,0x0a,0x0a,0x0a, -0x09,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x0a,0x09,0x0a,0x07,0x07,0x09,0x09,0x05,0x0a,0x0a,0x09,0x08,0x08,0x0a,0x0a,0x0a,0x04,0x05,0x05,0x05,0x06,0x04,0x0a,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0c,0x0c,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x05,0x05,0x06,0x06,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x08, -0x09,0x08,0x08,0x06,0x06,0x06,0x08,0x0b,0x08,0x09,0x09,0x0a,0x04,0x08,0x07,0x0a,0x06,0x06,0x10,0x10,0x11,0x0a,0x08,0x0c,0x0d,0x0a,0x0a,0x08,0x08,0x09,0x0a,0x0a,0x0c,0x0a,0x0b,0x0e,0x0a,0x0c,0x0a,0x0a,0x08,0x08,0x08,0x0a,0x09,0x0a,0x08,0x0f,0x0f,0x0a,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0a,0x07,0x0a,0x0a,0x08, -0x04,0x0d,0x08,0x08,0x0f,0x0c,0x0b,0x0a,0x0f,0x0c,0x0b,0x08,0x0f,0x0c,0x0c,0x0a,0x10,0x0d,0x09,0x08,0x0d,0x0d,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x16,0x13,0x0e,0x0b,0x13,0x0f,0x0f,0x0c,0x0a,0x07,0x09,0x07,0x07,0x00,0x00,0x11,0x10,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x0e,0x0b,0x11,0x0e,0x0c,0x09,0x0b, -0x08,0x09,0x07,0x0f,0x0c,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x05,0x0f,0x0d,0x0a,0x09,0x0c,0x0a,0x0b,0x0a,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x09,0x09,0x0c,0x09,0x0c,0x09,0x0f,0x0d,0x09,0x08,0x09,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0d,0x0c,0x0a,0x0a,0x0f,0x0f,0x0e,0x0c, -0x09,0x08,0x0f,0x0e,0x11,0x0e,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0a,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x07,0x05,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x06, -0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x05,0x03,0x04,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x0b,0x0e,0x08,0x08,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a,0x08,0x0b,0x0b,0x0b,0x10,0x09,0x0a,0x0a,0x08,0x08,0x08,0x07,0x09,0x0a,0x0c,0x0a,0x08,0x0c,0x08,0x07,0x07,0x09,0x07,0x08,0x0a,0x08,0x0a,0x0a,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07, -0x07,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x06,0x06,0x05,0x06,0x06,0x06,0x03,0x06,0x06,0x08,0x05,0x05,0x06,0x05,0x06,0x07,0x05,0x03,0x04,0x06,0x05,0x06,0x05,0x06,0x07,0x05,0x0a,0x03,0x06,0x09,0x0f,0x0b,0x09,0x09,0x0f, -0x0b,0x0f,0x0d,0x09,0x0a,0x09,0x08,0x13,0x08,0x0a,0x0f,0x10,0x10,0x0b,0x0b,0x0b,0x08,0x08,0x09,0x07,0x08,0x09,0x03,0x00,0x00,0x00,0x00,0x0a,0x0b,0x0b,0x0b,0x08,0x07,0x0a,0x0a,0x05,0x0f,0x0a,0x0a,0x06,0x06,0x08,0x06,0x08,0x0a,0x08,0x0a,0x0f,0x0b,0x05,0x05,0x0a,0x09,0x0a,0x0a,0x0a,0x05,0x0a,0x08,0x04,0x0f,0x0a,0x0a,0x06, -0x07,0x07,0x08,0x08,0x08,0x09,0x0a,0x0a,0x09,0x07,0x08,0x0c,0x04,0x08,0x04,0x0a,0x08,0x06,0x05,0x05,0x06,0x04,0x03,0x03,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x04,0x03,0x03,0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x05,0x04,0x06,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x06,0x05,0x05, -0x09,0x09,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0b,0x0c,0x0a,0x0d,0x0b,0x10,0x0d,0x09,0x06,0x09,0x0c,0x09,0x0e,0x0c,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e, -0x11,0x07,0x04,0x09,0x0a,0x07,0x09,0x09,0x0a,0x0a,0x09,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x09,0x09,0x06,0x0a,0x06,0x0d,0x0b,0x09,0x06,0x0e,0x09,0x0e,0x04,0x06,0x0a,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0e,0x04,0x0a,0x04,0x09,0x07,0x04,0x04,0x09,0x04,0x0d,0x04,0x10,0x09,0x10,0x10,0x0a,0x0a,0x0a,0x09, -0x09,0x07,0x07,0x14,0x14,0x17,0x17,0x0e,0x0e,0x09,0x09,0x03,0x11,0x0d,0x0e,0x0b,0x0a,0x0b,0x09,0x09,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x0b,0x00,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x07,0x10,0x09,0x10,0x09,0x0d,0x0e,0x06,0x09,0x09,0x07,0x04,0x09,0x0a,0x09,0x0a,0x09, -0x0a,0x0a,0x09,0x0b,0x0b,0x10,0x06,0x09,0x07,0x0b,0x09,0x06,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x04,0x0a,0x07,0x11,0x09,0x09,0x0b,0x0b,0x11,0x09,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x09,0x09,0x0d,0x0e,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06, -0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x09,0x0a,0x0a,0x0a,0x11,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x0d, -0x0d,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x0b,0x06,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x10,0x0d,0x0e,0x06,0x09,0x0d,0x0e,0x0d,0x0e,0x00,0x00,0x00,0x00,0x00,0x13,0x12, -0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x0e,0x17,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x10,0x10,0x06,0x0a,0x0a,0x0a,0x15,0x0e,0x09,0x1a,0x12,0x06,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09, -0x07,0x07,0x0d,0x0b,0x0b,0x09,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x15,0x1a,0x00,0x00,0x00,0x00,0x00,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x07,0x14,0x0e,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, -0x0a,0x11,0x09,0x09,0x11,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x07,0x07,0x14,0x0e,0x0b,0x0a,0x0a,0x00,0x09,0x09,0x09,0x06,0x0a,0x0c,0x0b,0x09,0x09,0x06,0x04,0x0d,0x0a,0x0a,0x06,0x09,0x08,0x08,0x08,0x08,0x04,0x09,0x07,0x0b,0x08,0x0a, -0x08,0x09,0x07,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x08,0x08,0x08,0x05,0x09,0x0a,0x0a,0x09,0x06,0x0d,0x0a,0x0b,0x09,0x0b,0x08,0x0a,0x09,0x07,0x0c,0x06,0x07,0x07,0x08,0x0a,0x0a,0x09,0x11,0x09,0x11,0x06,0x04,0x03,0x09,0x04,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x07,0x07,0x07,0x09,0x09,0x10,0x07,0x0d,0x0a,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x0b,0x0c,0x0c,0x0c,0x0d,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x12,0x0e,0x08,0x08,0x05,0x05,0x05,0x06,0x04,0x0a,0x04,0x04,0x0e,0x0b,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0b,0x0c,0x05,0x0a,0x09,0x09,0x0c,0x0b,0x05,0x07,0x0b,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x0a,0x0d,0x0c,0x09,0x09,0x09,0x04,0x06,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x0b,0x08,0x0c,0x09,0x09,0x0c,0x0a,0x0c, -0x09,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0c,0x05,0x0a,0x09,0x09,0x0b,0x07,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0d,0x0c,0x05,0x0a,0x09,0x0b,0x0b,0x14,0x00,0x0b,0x09,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x05,0x00,0x0d,0x0b,0x0b,0x0c,0x09,0x0b,0x0d,0x0d,0x08,0x0b,0x0d,0x0d,0x0b,0x0d,0x0e,0x0d,0x0b,0x09,0x0a,0x0d,0x0c,0x0a,0x0c,0x0c,0x0b,0x0c,0x0c,0x0d,0x0a,0x0b,0x0c,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x08,0x0a,0x0a,0x0f,0x09,0x09,0x0d,0x0f,0x0a,0x09,0x12,0x0a,0x0a,0x0d, -0x09,0x09,0x0d,0x0a,0x0d,0x0e,0x0f,0x09,0x0d,0x09,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0a,0x0d,0x09,0x0b,0x0b,0x09,0x09,0x0a,0x10,0x09,0x09,0x0a,0x0a,0x07,0x06,0x09,0x09,0x09,0x09,0x09,0x0f,0x09,0x0f,0x08,0x09,0x0f,0x0b,0x09,0x0f,0x0d,0x0d,0x0f,0x0a,0x09,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0a,0x09,0x0a,0x0f, -0x0a,0x09,0x09,0x09,0x0f,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x0d,0x0b,0x0c,0x0a,0x0b,0x0c,0x0d,0x0c,0x0a,0x0c,0x0b,0x0c,0x0b,0x0d,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0b,0x0d,0x0c,0x02,0x02,0x03,0x03,0x03,0x05,0x06,0x0f,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x05,0x0e,0x0a, -0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x05,0x0a,0x09,0x0a,0x07,0x0f,0x09,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x07,0x0e,0x0a,0x0a,0x0c,0x0c,0x04,0x05,0x13,0x13,0x13,0x13,0x18,0x09,0x09,0x04,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x08,0x07,0x0d,0x0b,0x0a,0x08,0x0a,0x08,0x07,0x07,0x0a,0x09,0x0e,0x09,0x08,0x08,0x0c,0x0d,0x07,0x0b,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07, -0x07,0x04,0x04,0x04,0x04,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x0a,0x05,0x08,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x09,0x08,0x07,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x09,0x0d,0x0b,0x08,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0b,0x09,0x0b,0x0b,0x09,0x07,0x0a,0x04,0x0a,0x08,0x0b,0x04,0x08,0x07,0x0a,0x07,0x09,0x07,0x04,0x04,0x05,0x0e,0x0e,0x0a,0x08, -0x08,0x0a,0x09,0x08,0x08,0x07,0x0a,0x07,0x0d,0x08,0x0b,0x0b,0x08,0x0a,0x0d,0x0a,0x0a,0x0a,0x08,0x09,0x07,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0e,0x0a,0x0c,0x08,0x09,0x0f,0x08,0x07,0x0a,0x0a,0x0b,0x0f,0x0f,0x0b,0x09,0x0a,0x07,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0a,0x0a,0x06,0x0b,0x0b,0x0a,0x08,0x08,0x0f,0x0d,0x08,0x09,0x0a, -0x0a,0x0b,0x0b,0x0c,0x0c,0x06,0x10,0x0a,0x09,0x0a,0x0b,0x0b,0x09,0x09,0x05,0x0d,0x0c,0x0c,0x08,0x0c,0x04,0x04,0x07,0x07,0x04,0x04,0x0a,0x07,0x05,0x0d,0x0c,0x05,0x04,0x04,0x08,0x06,0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a,0x06,0x07,0x09,0x07,0x04,0x04,0x07,0x09,0x06,0x0b,0x0b,0x0b, -0x10,0x0d,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0d,0x0e,0x06,0x06,0x09,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x09,0x09,0x10,0x10,0x09,0x09,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x11,0x0d,0x0e, -0x09,0x0a,0x0a,0x0b,0x06,0x0b,0x0d,0x09,0x09,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x06,0x0d,0x09,0x09,0x04,0x09,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x09,0x0d,0x09,0x09,0x10,0x09,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x0b,0x06,0x0b, -0x06,0x0b,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x06,0x06,0x06,0x06,0x00,0x14,0x0e,0x17,0x11,0x10,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x09,0x09,0x07,0x14,0x0e,0x11,0x11,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x14,0x0e, -0x0a,0x0b,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x00,0x00,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, -0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0b,0x0b,0x0b,0x04,0x04,0x09,0x07,0x0a,0x0b,0x0a,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x08,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x09,0x0b,0x0d,0x0b,0x0d,0x0e,0x0b,0x0d,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x0a,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x0d,0x0c,0x0c,0x0b,0x0c,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0f,0x0e,0x09, -0x0d,0x0e,0x0d,0x0a,0x0e,0x0d,0x0c,0x0c,0x0a,0x0b,0x0d,0x0e,0x0c,0x0a,0x0c,0x0a,0x09,0x10,0x10,0x10,0x0e,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0d,0x0d,0x0d,0x0c,0x0c,0x0b,0x0f,0x0d,0x0e,0x0c,0x0c,0x0a,0x0d,0x0c,0x0c,0x0e,0x0d,0x0c,0x0f,0x09,0x09,0x0a,0x09,0x0a,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x09,0x09,0x0a,0x0b,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x0b,0x0b,0x0b,0x0d,0x0b,0x0c,0x09,0x08,0x0a,0x0a,0x08,0x08,0x09,0x09,0x08,0x08,0x0b,0x08,0x09,0x08,0x09,0x0d,0x0a,0x0e,0x09,0x0a,0x0a,0x0d,0x05,0x0d,0x0c,0x0c,0x0b,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05, -0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0f,0x0f,0x0f,0x0f,0x08,0x0d,0x0c,0x08,0x07,0x08,0x09,0x0a,0x08,0x0e,0x0e,0x0f,0x08,0x11,0x08,0x0e,0x0e,0x0e,0x0e,0x0a,0x08,0x08,0x0d,0x0a,0x0d, -0x0b,0x09,0x08,0x07,0x11,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x17,0x0e,0x0e,0x07,0x04,0x08,0x04,0x08,0x04,0x04,0x04,0x08,0x0a,0x0a,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0f,0x04,0x0f,0x0f,0x0f,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x0b,0x14,0x14,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x08,0x0a,0x08,0x09,0x07,0x06,0x06,0x0c,0x09,0x0c,0x07,0x13,0x0f,0x0a,0x09,0x10,0x0d,0x0e,0x0d,0x11,0x0e,0x10,0x0d,0x0b,0x08,0x0c,0x0a,0x10,0x0c,0x0d,0x0a,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b, -0x13,0x0e,0x0d,0x0a,0x0d,0x0a,0x15,0x0f,0x0d,0x00,0x11,0x11,0x11,0x08,0x00,0x00,0x0a,0x09,0x0c,0x09,0x09,0x07,0x12,0x0f,0x10,0x0f,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0d,0x0a,0x09,0x07,0x0e,0x0b,0x0b,0x0a,0x11,0x0e,0x09,0x0a,0x0c,0x0c,0x0e,0x08,0x03,0x08,0x0c,0x07,0x11,0x11,0x04,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x07,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, -0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0c,0x0c,0x05,0x04,0x05,0x04,0x0c,0x0a,0x0d,0x0b,0x09,0x08,0x09,0x08,0x0a,0x0a,0x07,0x07,0x13,0x0e,0x14,0x0f,0x11,0x0e,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x05,0x08,0x04,0x0d,0x0a,0x0f,0x0b,0x17,0x11,0x0a,0x0a,0x0c,0x0c,0x0e, -0x0f,0x0d,0x0a,0x11,0x0d,0x09,0x07,0x0a,0x08,0x0b,0x08,0x10,0x0c,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x08,0x07,0x08,0x07,0x08,0x06,0x09,0x09,0x05,0x0b,0x06,0x10,0x0b,0x06,0x0a,0x0a,0x08,0x0d,0x0a,0x06,0x06,0x0a,0x0a,0x0a,0x08,0x04,0x0d,0x0a,0x06,0x06,0x0b,0x08,0x0c,0x07,0x0d,0x0a,0x0b,0x08,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a, -0x06,0x09,0x07,0x0d,0x07,0x09,0x0f,0x08,0x0a,0x0f,0x05,0x13,0x0f,0x0f,0x14,0x0f,0x10,0x10,0x0f,0x0f,0x10,0x09,0x08,0x0b,0x0c,0x0f,0x0c,0x10,0x04,0x08,0x0a,0x0f,0x12,0x0c,0x12,0x0b,0x0b,0x0e,0x0c,0x13,0x10,0x09,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x11,0x09,0x09,0x11,0x0d,0x09,0x09,0x0d,0x0b,0x06, -0x06,0x0b,0x0a,0x0a,0x0a,0x0a,0x0d,0x06,0x06,0x0e,0x0d,0x06,0x06,0x0e,0x07,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x09,0x07,0x0a,0x09,0x0d,0x0a,0x0a,0x0f,0x0b,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x11, -0x0e,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0a,0x0b,0x07,0x0a,0x09,0x0a,0x08,0x0d,0x0e,0x07,0x0a,0x07,0x04,0x06,0x09,0x09,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x08,0x19,0x22,0x06,0x07,0x02,0x05,0x07,0x07,0x05,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x17,0x09,0x0d,0x10,0x0f,0x0b,0x08, -0x0a,0x0c,0x0c,0x08,0x05,0x0b,0x09,0x0c,0x09,0x0b,0x09,0x09,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0e,0x08,0x09,0x0b,0x05,0x0a,0x06,0x06,0x04,0x0f,0x0a,0x0a,0x09,0x09,0x0a,0x10,0x10,0x10,0x11,0x11,0x09,0x08,0x05,0x09,0x08,0x0a,0x08,0x0b,0x04,0x0a,0x0a,0x0f,0x0f,0x0a,0x09,0x0a,0x09,0x09,0x08,0x09,0x08,0x08,0x05,0x06,0x04,0x04, -0x06,0x0a,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1d,0x11,0x0f,0x12,0x05,0x05,0x06,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x10,0x06,0x06,0x10,0x04,0x09,0x09,0x17,0x11,0x11,0x17,0x10,0x09,0x09,0x10,0x09,0x09,0x07, -0x07,0x00,0x00,0x06,0x0d,0x0a,0x0c,0x0a,0x15,0x12,0x0c,0x09,0x0c,0x09,0x17,0x11,0x0d,0x0a,0x07,0x05,0x0b,0x00,0x0c,0x09,0x06,0x05,0x03,0x08,0x06,0x06,0x04,0x03,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x0a,0x0a,0x09,0x10,0x0e,0x0e,0x0d,0x0e,0x10,0x0b,0x0c,0x0a,0x07,0x10,0x13,0x07,0x14,0x09,0x0e,0x10, -0x10,0x10,0x07,0x0d,0x11,0x0d,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x0a,0x0a,0x0a,0x0e,0x09,0x09,0x10,0x06,0x06,0x10,0x06,0x06,0x10,0x08,0x08,0x00,0x07,0x0e,0x06,0x06,0x11,0x09,0x09,0x0d,0x09,0x09,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, -0x05,0x1a,0x1a,0x0f,0x00,0x00,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0f,0x0b,0x0b,0x0e,0x11,0x0b,0x0b,0x12,0x0b,0x0b,0x10,0x0b,0x0b,0x0d,0x0b,0x0d,0x0e,0x10,0x0b,0x0d,0x0b,0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0d,0x0a,0x0b,0x0d,0x0b,0x0b,0x0a,0x0d, -0x0b,0x0b,0x0b,0x0c,0x08,0x09,0x0b,0x0d,0x0d,0x09,0x00,0x00,0x13,0x26,0x0c,0x00,0x02,0x05,0x05,0x07,0x0b,0x0a,0x10,0x0f,0x04,0x06,0x06,0x08,0x0d,0x04,0x08,0x04,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x0d,0x0d,0x0d,0x09,0x12,0x0c,0x0b,0x0c,0x0d,0x0a,0x09,0x0d,0x0d,0x05,0x07,0x0b,0x09,0x11,0x0e, -0x0e,0x0b,0x0e,0x0b,0x0a,0x0a,0x0d,0x0c,0x12,0x0b,0x0b,0x0b,0x06,0x07,0x06,0x0d,0x08,0x05,0x0a,0x0b,0x09,0x0b,0x0a,0x06,0x0b,0x0b,0x05,0x05,0x09,0x05,0x10,0x0b,0x0b,0x0b,0x0b,0x07,0x08,0x06,0x0b,0x09,0x0e,0x09,0x09,0x09,0x06,0x05,0x06,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0e,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, -0x0a,0x0a,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x08,0x11,0x11,0x0f,0x05,0x08,0x0d,0x10,0x0e,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x0a,0x0c,0x0e,0x0a,0x07,0x08,0x0e,0x10,0x0b,0x09,0x05,0x05,0x0d,0x0c,0x0a,0x0d,0x0c,0x0a,0x0a,0x0e,0x0c,0x0c,0x0e,0x12,0x12, -0x0a,0x13,0x07,0x07,0x04,0x04,0x0d,0x0b,0x09,0x0b,0x03,0x0a,0x06,0x06,0x0b,0x0b,0x07,0x04,0x04,0x07,0x17,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x05,0x07,0x06,0x06,0x06,0x04,0x05,0x04,0x06,0x04,0x07,0x09,0x05,0x0a,0x08,0x0b,0x09,0x05,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0d,0x0d,0x07,0x07, -0x07,0x12,0x11,0x12,0x09,0x0d,0x0b,0x05,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0b,0x08,0x04,0x0c,0x0a,0x0c,0x0a,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x09,0x05,0x09,0x06,0x09,0x06,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0a,0x08,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x09,0x0e,0x0e,0x0c,0x0b,0x08, -0x0b,0x09,0x0d,0x08,0x09,0x07,0x15,0x0c,0x09,0x0c,0x04,0x07,0x0f,0x06,0x0b,0x07,0x07,0x0b,0x07,0x0c,0x0a,0x0c,0x09,0x0c,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x0b,0x09,0x09,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, -0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x0b,0x09,0x05,0x0c,0x0a,0x10,0x10,0x0e,0x0b,0x04,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x04,0x08,0x0a,0x0b,0x12,0x12,0x12,0x11,0x07,0x07,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x07,0x0f,0x0d,0x10,0x05,0x0c,0x0b,0x0a,0x0b,0x0d,0x05,0x0b,0x0c,0x11, -0x0e,0x0a,0x0e,0x0e,0x0b,0x0a,0x0a,0x0b,0x0b,0x0f,0x0e,0x05,0x0b,0x0c,0x08,0x0b,0x05,0x0b,0x0a,0x0a,0x08,0x0b,0x0b,0x05,0x0a,0x09,0x0b,0x0a,0x08,0x0b,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x05,0x0b,0x0b,0x0b,0x0f,0x0a,0x0d,0x09,0x0c,0x0a,0x05,0x13,0x13,0x0e,0x0b,0x0b,0x0d,0x0c,0x0b,0x0b,0x09,0x0d,0x0a,0x10,0x0a,0x0e,0x0e,0x0b, -0x0d,0x11,0x0d,0x0e,0x0e,0x0b,0x0c,0x0a,0x0b,0x0e,0x0b,0x0e,0x0d,0x12,0x13,0x0d,0x0f,0x0b,0x0c,0x13,0x0b,0x0a,0x0b,0x0a,0x07,0x0a,0x0a,0x0e,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x0d,0x09,0x0b,0x0b,0x0f,0x10,0x0b,0x0d,0x0a,0x09,0x0f,0x0a,0x0a,0x0b,0x07,0x09,0x08,0x05,0x0f,0x0f,0x0b,0x09,0x09, -0x0b,0x09,0x07,0x13,0x15,0x0c,0x07,0x07,0x07,0x07,0x05,0x0a,0x08,0x0b,0x0e,0x0b,0x0d,0x0b,0x06,0x06,0x05,0x05,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x0a, -0x0a,0x0e,0x0b,0x05,0x07,0x05,0x05,0x0a,0x08,0x11,0x0f,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0c,0x09,0x0c,0x0b,0x0d,0x0b,0x0e,0x0a,0x0e,0x0b,0x06,0x06,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x0d,0x0b,0x0d,0x0b,0x0d, -0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x11,0x10,0x11,0x10,0x11,0x10,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e, -0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, -0x09,0x0b,0x06,0x0e,0x09,0x0a,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x0a, -0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x0f,0x0f,0x0d,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0c,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x0e,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c, -0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x09,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0d,0x0c,0x11,0x05,0x05,0x0b,0x09,0x05,0x09,0x11,0x0e,0x0b,0x0e,0x12,0x0f,0x0b,0x0b,0x0b,0x0a,0x08,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x0e,0x0e,0x0b,0x0a,0x0b,0x09,0x0c,0x0c,0x08,0x08,0x0a,0x0a,0x07,0x07,0x0a,0x05,0x07,0x09,0x05,0x18,0x16,0x13,0x10, -0x0e,0x0a,0x14,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0e,0x0b,0x0c,0x08,0x05,0x18,0x16,0x13,0x0d,0x0b,0x13,0x0d,0x0e,0x0b,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b, -0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0d,0x0b,0x0d,0x0b,0x0a,0x08,0x0d,0x0b,0x0e,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x09,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x09,0x09,0x0b,0x0b,0x0a,0x0c,0x08,0x08,0x0a,0x0a,0x05,0x0b,0x0b,0x0a,0x09,0x09,0x0b,0x0b,0x0b,0x05,0x05,0x06,0x05,0x07, -0x05,0x0b,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0d,0x0e,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x09,0x0e,0x09,0x08,0x09,0x0a,0x08,0x08,0x07,0x07,0x07,0x09,0x0c,0x09,0x0a,0x0a,0x0b,0x05,0x09,0x07,0x0b,0x07,0x07,0x11,0x12,0x13,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x09, -0x09,0x0a,0x0b,0x0b,0x0d,0x0b,0x0c,0x0f,0x0b,0x0d,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0a,0x0c,0x09,0x11,0x10,0x0b,0x0a,0x0c,0x0a,0x0c,0x09,0x0b,0x09,0x0d,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x05,0x0e,0x09,0x09,0x10,0x0d,0x0c,0x0b,0x11,0x0e,0x0d,0x09,0x11,0x0d,0x0e,0x0b,0x12,0x0e,0x0a,0x09,0x0f,0x0e,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, -0x19,0x15,0x10,0x0c,0x15,0x11,0x10,0x0d,0x0b,0x08,0x0a,0x07,0x08,0x00,0x00,0x13,0x12,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x13,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x08,0x11,0x0d,0x0d,0x0b,0x10,0x0c,0x10,0x0c,0x05,0x10,0x0e,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0a,0x0a, -0x0e,0x0a,0x0e,0x0a,0x10,0x0e,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0d,0x0b,0x0f,0x0d,0x0b,0x0b,0x10,0x10,0x0f,0x0e,0x0b,0x09,0x11,0x0f,0x13,0x10,0x0e,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x04,0x04,0x0b,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x08,0x05,0x04,0x07,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x05,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x08,0x06,0x05,0x05,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x07,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a, -0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x0c,0x06,0x0c,0x06,0x0b,0x0b,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x0d,0x10,0x09,0x09,0x0a,0x0b,0x08,0x08,0x05,0x06,0x09,0x07,0x0d,0x0b,0x0b, -0x09,0x0c,0x0c,0x0c,0x12,0x0a,0x0b,0x0b,0x09,0x09,0x09,0x08,0x0a,0x0b,0x0e,0x0b,0x09,0x0e,0x09,0x08,0x08,0x0a,0x07,0x09,0x0b,0x09,0x0b,0x0b,0x07,0x09,0x07,0x07,0x08,0x06,0x06,0x08,0x08,0x04,0x04,0x07,0x05,0x0a,0x08,0x08,0x08,0x07,0x06,0x07,0x06,0x08,0x0a,0x06,0x06,0x07,0x09,0x07,0x07,0x06,0x06,0x05,0x05,0x07,0x03,0x06, -0x09,0x06,0x07,0x05,0x07,0x07,0x07,0x04,0x06,0x06,0x09,0x05,0x06,0x06,0x06,0x07,0x08,0x06,0x03,0x04,0x06,0x05,0x06,0x06,0x07,0x08,0x06,0x0b,0x03,0x07,0x0a,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0a,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x11,0x12,0x12,0x0c,0x0c,0x0c,0x09,0x09,0x0a,0x08,0x09,0x0a,0x04,0x00,0x00,0x00,0x00,0x0b, -0x0c,0x0c,0x0c,0x09,0x07,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x07,0x06,0x09,0x06,0x09,0x0b,0x09,0x0b,0x11,0x0c,0x06,0x05,0x0b,0x0a,0x0b,0x0b,0x0b,0x06,0x0b,0x09,0x05,0x10,0x0b,0x0b,0x07,0x08,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0b,0x0a,0x08,0x08,0x0e,0x05,0x09,0x05,0x0b,0x08,0x07,0x05,0x05,0x07,0x05,0x03,0x03,0x07,0x06,0x03,0x03, -0x03,0x03,0x03,0x03,0x03,0x04,0x09,0x09,0x06,0x06,0x07,0x06,0x07,0x04,0x03,0x04,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x07,0x00,0x00,0x00,0x00,0x04,0x06,0x06,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x00,0x00,0x00,0x00,0x09,0x06,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -0x06,0x06,0x0f,0x0c,0x0d,0x0b,0x0e,0x0c,0x12,0x0e,0x0a,0x07,0x0a,0x0d,0x0a,0x10,0x0d,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x13,0x08,0x05,0x0a,0x0b,0x08,0x0a,0x0a,0x0b,0x0b,0x0a,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x06,0x0b,0x06,0x0e, -0x0d,0x0a,0x06,0x10,0x0a,0x10,0x05,0x06,0x0b,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x10,0x05,0x0b,0x05,0x0a,0x08,0x05,0x05,0x0a,0x05,0x0e,0x05,0x11,0x0a,0x11,0x11,0x0b,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x16,0x16,0x19,0x19,0x10,0x10,0x0a,0x0a,0x03,0x13,0x0e,0x10,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x0b,0x05,0x0c,0x00,0x0c,0x0c,0x0c,0x06,0x0a,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x08,0x11,0x0a,0x11,0x0a,0x0e,0x10,0x06,0x0a,0x0a,0x08,0x05,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0d,0x0c,0x11,0x06,0x0a,0x08,0x0d,0x0a,0x06,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x05,0x0b,0x07,0x13,0x0a,0x0a,0x0c,0x0c,0x13, -0x0a,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x0a,0x0e,0x10,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x08,0x08,0x08,0x0a,0x08,0x08,0x08,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x0a,0x0b,0x0b,0x0b,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x0e,0x0e,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d, -0x06,0x0d,0x06,0x0d,0x0d,0x06,0x0d,0x06,0x0a,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x0e,0x10,0x06,0x0a,0x0e,0x10,0x0e,0x10,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x0b,0x00,0x00,0x00,0x16,0x10,0x19,0x13,0x0a,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x11,0x11,0x07,0x0b,0x0b,0x0b,0x17,0x10,0x0a,0x1d,0x15,0x06,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x08,0x0e,0x0d,0x0d,0x0a,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x18,0x1d,0x00,0x00,0x00,0x00,0x00,0x0b,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, -0x11,0x08,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0d, -0x06,0x06,0x08,0x08,0x16,0x10,0x0c,0x0b,0x0b,0x00,0x0a,0x0a,0x0a,0x07,0x0b,0x0d,0x0c,0x0a,0x0a,0x07,0x05,0x0e,0x0b,0x0b,0x07,0x0b,0x09,0x09,0x09,0x09,0x05,0x0a,0x08,0x0c,0x09,0x0b,0x09,0x0a,0x08,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x09,0x09,0x09,0x05,0x0a,0x0b,0x0b,0x0a,0x06,0x0e,0x0b,0x0c,0x0a, -0x0c,0x09,0x0b,0x0a,0x08,0x0d,0x07,0x08,0x08,0x09,0x0b,0x0b,0x0a,0x13,0x0a,0x13,0x06,0x05,0x03,0x0a,0x04,0x02,0x00,0x03,0x04,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x12,0x08,0x0e,0x0b,0x12,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x10,0x09,0x10,0x09,0x10,0x0c, -0x0d,0x0d,0x0d,0x0f,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x14,0x10,0x09,0x09,0x05,0x05,0x05,0x07,0x04,0x0b,0x04,0x04,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0c,0x0b,0x08,0x09,0x0d,0x05,0x06,0x0d,0x0d,0x05, -0x0b,0x0a,0x0a,0x0d,0x0d,0x05,0x08,0x0d,0x0b,0x0c,0x0c,0x0b,0x0b,0x0d,0x0b,0x0f,0x0e,0x0a,0x0a,0x0a,0x04,0x07,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b,0x0c,0x09,0x0d,0x0a,0x0a,0x0d,0x0b,0x0e,0x0a,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0b,0x08,0x09,0x0d,0x06,0x07,0x0d,0x06,0x0b,0x0a,0x0a,0x0d,0x08,0x0d,0x0c,0x0c,0x0b,0x0d,0x0b,0x0f, -0x0e,0x05,0x0b,0x0a,0x0c,0x0c,0x17,0x00,0x0c,0x0a,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x00,0x0e,0x0c,0x0d,0x0d,0x0a,0x0d,0x0e,0x0e,0x09,0x0c,0x0e,0x0e,0x0d,0x0e,0x0f,0x0f, -0x0d,0x0a,0x0b,0x0e,0x0d,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x0c,0x0d,0x0c,0x0f,0x0c,0x0c,0x0c,0x0d,0x10,0x09,0x0b,0x0b,0x11,0x0a,0x0a,0x0f,0x11,0x0c,0x0a,0x14,0x0b,0x0b,0x0e,0x0a,0x0a,0x0e,0x0b,0x0e,0x0f,0x11,0x0a,0x0f,0x0a,0x0c,0x0a,0x0c,0x0b,0x0c,0x0a,0x0b,0x0f,0x0a,0x0c,0x0d,0x0a,0x0a,0x0b,0x12,0x0a,0x0a,0x0b, -0x0b,0x08,0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x11,0x0b,0x11,0x09,0x0b,0x11,0x0d,0x0b,0x11,0x0e,0x0e,0x11,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x0a,0x0b,0x0b,0x11,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0f,0x0d,0x0c,0x0a,0x0f,0x0d,0x0d,0x0b,0x0d,0x0d,0x0e,0x0e,0x0b,0x0d,0x0d, -0x0e,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d,0x0c,0x0d,0x0d,0x0e,0x0f,0x0c,0x0e,0x0e,0x02,0x02,0x03,0x04,0x03,0x05,0x07,0x10,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x05,0x0b,0x0a,0x0b,0x08,0x10,0x0a,0x0b,0x0b,0x0b,0x10,0x0b,0x0b,0x07,0x10,0x0b,0x0b,0x0d,0x0d,0x04,0x05,0x16, -0x15,0x15,0x16,0x1b,0x0a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b, -0x0c,0x05,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x09,0x08,0x08,0x0b,0x0a,0x0f,0x0a,0x09,0x09,0x0d,0x0f,0x08,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08, -0x08,0x0b,0x0b,0x0a,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x0b,0x06,0x09,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0d,0x0c,0x0a,0x09,0x07,0x0a,0x08,0x09,0x0c,0x0c,0x05, -0x09,0x0a,0x0e,0x0c,0x09,0x0c,0x0c,0x09,0x09,0x08,0x09,0x0c,0x0a,0x0c,0x0c,0x0a,0x08,0x0c,0x05,0x0c,0x09,0x0c,0x05,0x09,0x08,0x0b,0x08,0x0a,0x08,0x05,0x05,0x06,0x0f,0x10,0x0c,0x09,0x09,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x08,0x0c,0x0c,0x09,0x0b,0x0e,0x0c,0x0c,0x0c,0x09,0x0a,0x08,0x09,0x0c,0x0a,0x0c,0x0a,0x0f,0x10, -0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x0b,0x0b,0x0c,0x11,0x11,0x0d,0x0a,0x0b,0x08,0x0b,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0b,0x0b,0x07,0x0c,0x0c,0x0b,0x09,0x09,0x11,0x0e,0x09,0x0a,0x0b,0x0b,0x0c,0x0c,0x0d,0x0d,0x07,0x12,0x0b,0x0b,0x0b,0x0c,0x0c,0x0a,0x0a,0x05,0x0e,0x0d,0x0d,0x09,0x0d,0x04,0x04,0x08,0x08,0x04,0x04,0x0c,0x08, -0x05,0x0e,0x0d,0x05,0x04,0x04,0x09,0x07,0x07,0x04,0x04,0x04,0x07,0x0d,0x09,0x06,0x0c,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x08,0x0a,0x08,0x04,0x04,0x07,0x0a,0x06,0x0d,0x0d,0x0d,0x11,0x0e,0x11,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x10,0x06,0x06,0x0a,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0a,0x0a,0x16, -0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x0a,0x0a,0x11,0x11,0x0a,0x0a,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x13,0x0e,0x10,0x0a,0x0b,0x0b,0x0d,0x06,0x0d,0x0e,0x0a,0x0a,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x06,0x0e,0x0a, -0x0a,0x05,0x0a,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x0e,0x0a,0x0a,0x0e,0x0a,0x0a,0x11, -0x0a,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x0d,0x0d,0x06,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x00,0x16,0x10,0x19,0x13,0x11,0x0a, -0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x13,0x13,0x11,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x16,0x10,0x0b,0x0d,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10, -0x06,0x06,0x0e,0x10,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x16,0x16,0x10,0x10,0x10,0x10,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x06,0x05,0x00,0x00,0x00,0x10,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d, -0x0d,0x0d,0x0d,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0d,0x0d,0x0d,0x05,0x05,0x0a,0x08,0x0b,0x0c,0x0b,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0a,0x0d,0x0e,0x0c,0x0e,0x10,0x0c,0x0f,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0a,0x09,0x0a,0x0c,0x0b,0x0d,0x0b,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0e,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x12,0x12,0x0d,0x12,0x12,0x0e,0x11,0x10,0x0b,0x0f,0x10,0x0e,0x0b,0x10,0x0e,0x0d,0x0d,0x0b,0x0c,0x0e,0x0f,0x0d,0x0c,0x0d,0x0b,0x0a,0x12,0x11,0x11,0x10,0x12,0x12,0x0d,0x12,0x12,0x0d,0x0f, -0x0f,0x0e,0x0e,0x0e,0x0c,0x11,0x0f,0x10,0x0e,0x0e,0x0b,0x0e,0x0d,0x0d,0x10,0x0e,0x0e,0x11,0x0a,0x0a,0x0b,0x0a,0x0c,0x0c,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0c,0x0f,0x10,0x0c,0x0c,0x0c,0x0f,0x0c,0x0d,0x0a,0x09,0x0b,0x0b,0x09,0x09, -0x0a,0x0b,0x09,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x0f,0x0b,0x10,0x0a,0x0b,0x0b,0x0e,0x06,0x0f,0x0d,0x0e,0x0d,0x0b,0x0e,0x0b,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0c,0x05,0x05,0x05,0x06,0x06, -0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x11,0x11,0x11,0x11,0x09,0x0e,0x0e,0x09,0x08,0x09,0x0a,0x0b,0x09,0x10,0x10,0x10,0x08,0x13,0x09,0x10,0x10,0x10,0x0f,0x0b,0x09,0x09,0x0f,0x0b,0x0f,0x0d,0x0a,0x09,0x08,0x13,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x1a,0x10,0x10,0x08,0x05,0x09,0x05,0x09,0x05,0x05,0x05,0x09,0x0b,0x0b,0x0a,0x07, -0x07,0x04,0x04,0x04,0x07,0x04,0x08,0x10,0x04,0x11,0x11,0x11,0x0b,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x0d,0x16,0x16,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x09, -0x0b,0x09,0x0a,0x08,0x07,0x07,0x0d,0x0a,0x0e,0x08,0x15,0x11,0x0b,0x0b,0x12,0x0f,0x10,0x0e,0x13,0x0f,0x12,0x0f,0x0c,0x09,0x0e,0x0b,0x12,0x0e,0x0e,0x0c,0x0e,0x0b,0x10,0x0d,0x11,0x0d,0x15,0x10,0x0e,0x0b,0x0e,0x0b,0x17,0x11,0x0f,0x00,0x13,0x13,0x13,0x09,0x00,0x00,0x0b,0x0a,0x0d,0x0b,0x0a,0x08,0x14,0x11,0x12,0x10,0x0e,0x0b, -0x0d,0x0b,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x10,0x0d,0x0d,0x0b,0x13,0x10,0x0a,0x0b,0x0e,0x0e,0x0f,0x09,0x04,0x09,0x0d,0x08,0x13,0x13,0x05,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x08,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0d,0x0e,0x05,0x04,0x05,0x04,0x0d,0x0b,0x0e,0x0c,0x0b,0x09,0x0a,0x09,0x0b,0x0b,0x08, -0x08,0x15,0x10,0x16,0x11,0x13,0x10,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x09,0x05,0x0e,0x0b,0x10,0x0d,0x19,0x13,0x0b,0x0b,0x0d,0x0d,0x0f,0x10,0x0e,0x0b,0x13,0x0f,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x12,0x0e,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x07,0x09,0x07,0x0a,0x0a,0x06, -0x0d,0x06,0x12,0x0d,0x07,0x0b,0x0c,0x09,0x0e,0x0b,0x07,0x07,0x0b,0x0b,0x0b,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x0d,0x07,0x0f,0x0b,0x0c,0x09,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x0a,0x08,0x0e,0x08,0x0a,0x10,0x09,0x0b,0x11,0x05,0x16,0x11,0x11,0x16,0x11,0x11,0x11,0x11,0x11,0x12,0x0a,0x09,0x0c,0x0d,0x11,0x0d,0x12, -0x05,0x09,0x0b,0x10,0x14,0x0d,0x14,0x0c,0x0c,0x0f,0x0d,0x16,0x12,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x10,0x10,0x13,0x0a,0x0a,0x13,0x0e,0x0a,0x0a,0x0e,0x0d,0x06,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x06,0x06,0x10,0x0e,0x06,0x06,0x10,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0a,0x08,0x0b,0x0a,0x0e,0x0b,0x0b,0x11,0x0d,0x0e,0x0e,0x10,0x10,0x0b,0x09,0x13,0x0f,0x14,0x10,0x0d,0x0b,0x06,0x06,0x0b,0x0c,0x08,0x0b,0x0a,0x0b,0x09,0x0e,0x0f,0x08,0x0b,0x08,0x04,0x07,0x0a,0x0a,0x04,0x04,0x03,0x04,0x07, -0x07,0x07,0x09,0x1c,0x26,0x06,0x08,0x03,0x05,0x07,0x08,0x06,0x09,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x19,0x0a,0x0e,0x11,0x11,0x0c,0x09,0x0b,0x0e,0x0e,0x09,0x06,0x0d,0x0a,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0b,0x0b,0x0a,0x0e,0x0c,0x10,0x09,0x0a,0x0c,0x06,0x0b,0x06,0x07,0x05,0x11, -0x0b,0x0b,0x0a,0x0a,0x0b,0x12,0x12,0x12,0x13,0x13,0x0a,0x09,0x05,0x0a,0x09,0x0c,0x09,0x0d,0x05,0x0b,0x0b,0x10,0x10,0x0c,0x0a,0x0b,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x06,0x06,0x05,0x04,0x07,0x0b,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x05,0x05,0x05,0x05,0x05,0x20,0x13,0x11, -0x14,0x05,0x05,0x06,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x11,0x06,0x06,0x11,0x05,0x0a,0x0a,0x19,0x13,0x13,0x19,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x08,0x08,0x00,0x00,0x07,0x0e,0x0b,0x0d,0x0b,0x18,0x14,0x0d,0x0a,0x0d,0x0a,0x19,0x13,0x0e,0x0b,0x07,0x06,0x0c,0x00,0x0d,0x0a,0x06,0x06,0x03,0x09, -0x06,0x07,0x05,0x04,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x0a,0x08,0x0b,0x0b,0x0a,0x12,0x0f,0x0f,0x0f,0x10,0x12,0x0c,0x0d,0x0b,0x07,0x12,0x15,0x08,0x16,0x0a,0x10,0x11,0x11,0x11,0x08,0x0e,0x13,0x0e,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x0b,0x0b,0x0b,0x10,0x0a, -0x0a,0x11,0x06,0x06,0x11,0x06,0x06,0x11,0x09,0x09,0x00,0x08,0x10,0x06,0x06,0x13,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x1d,0x1d,0x11,0x00,0x00,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0c,0x0c,0x0c, -0x11,0x0c,0x0c,0x0f,0x13,0x0c,0x0c,0x14,0x0c,0x0c,0x12,0x0c,0x0d,0x0f,0x0c,0x0f,0x10,0x11,0x0c,0x0f,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0d,0x0c,0x0f,0x0b,0x0d,0x0f,0x0c,0x0c,0x0b,0x0f,0x0c,0x0c,0x0c,0x0d,0x08,0x0a,0x0c,0x0f,0x0f,0x0a,0x00,0x00,0x15,0x2a,0x0e,0x00,0x02,0x06,0x06,0x08,0x0c,0x0b,0x11,0x11,0x05,0x06,0x06,0x09, -0x0e,0x05,0x08,0x05,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x0e,0x0e,0x0e,0x09,0x14,0x0e,0x0c,0x0d,0x0f,0x0b,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x13,0x10,0x10,0x0c,0x10,0x0d,0x0b,0x0b,0x0e,0x0d,0x14,0x0c,0x0c,0x0c,0x06,0x08,0x06,0x0e,0x09,0x06,0x0b,0x0c,0x0a,0x0c,0x0b,0x07,0x0c,0x0c,0x05,0x05, -0x0a,0x05,0x12,0x0c,0x0c,0x0c,0x0c,0x07,0x09,0x07,0x0c,0x0a,0x0f,0x0a,0x0a,0x0a,0x06,0x05,0x06,0x0e,0x0e,0x0e,0x0d,0x0b,0x10,0x10,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x09,0x09,0x0a,0x0b,0x08,0x13,0x13,0x10, -0x06,0x09,0x0e,0x12,0x10,0x11,0x0e,0x0e,0x0e,0x0b,0x0c,0x0b,0x0d,0x10,0x0b,0x08,0x09,0x10,0x11,0x0c,0x09,0x06,0x06,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0b,0x0f,0x0e,0x0e,0x10,0x14,0x13,0x0b,0x15,0x08,0x08,0x05,0x05,0x0e,0x0c,0x0a,0x0c,0x04,0x0b,0x07,0x07,0x0c,0x0c,0x08,0x05,0x05,0x08,0x19,0x0e,0x0b,0x0e,0x0b,0x0b,0x06,0x06, -0x06,0x06,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x05,0x08,0x07,0x07,0x06,0x04,0x06,0x04,0x07,0x04,0x08,0x0a,0x06,0x0b,0x09,0x0c,0x0a,0x05,0x0f,0x0c,0x0c,0x0a,0x0c,0x0c,0x0e,0x0e,0x07,0x08,0x08,0x14,0x13,0x14,0x0a,0x0e,0x0c,0x06,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0c,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0f,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b, -0x0a,0x05,0x0a,0x06,0x0a,0x07,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0b,0x09,0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x0c,0x0a,0x0a,0x10,0x10,0x0d,0x0c,0x09,0x0c,0x0a,0x0f,0x09,0x0a,0x08,0x17,0x0d,0x0a,0x0d,0x05,0x08,0x11,0x07,0x0d,0x07,0x07,0x0d,0x07,0x0e,0x0b,0x0d,0x0a,0x0d,0x0a,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x08,0x05,0x0c,0x0a,0x0a,0x0a,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x14,0x0f,0x0c,0x0a,0x05,0x0e,0x0b,0x12,0x11,0x10,0x0c,0x05,0x14,0x0f, -0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x05,0x09,0x0b,0x0d,0x13,0x13,0x14,0x13,0x08,0x08,0x05,0x06,0x06,0x0e,0x0c,0x10,0x08,0x11,0x0e,0x11,0x06,0x0e,0x0c,0x0b,0x0c,0x0f,0x06,0x0c,0x0d,0x13,0x10,0x0b,0x10,0x0f,0x0c,0x0b,0x0b,0x0c,0x0c,0x10,0x10,0x06,0x0c,0x0d,0x09,0x0c,0x06,0x0c,0x0c,0x0b,0x09,0x0c,0x0c,0x06,0x0b,0x0a,0x0c,0x0b, -0x09,0x0c,0x0c,0x0a,0x0c,0x0b,0x10,0x11,0x06,0x0c,0x0c,0x0c,0x11,0x0b,0x0f,0x0a,0x0d,0x0b,0x06,0x15,0x15,0x0f,0x0c,0x0c,0x0f,0x0e,0x0c,0x0c,0x0a,0x0f,0x0b,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x13,0x0f,0x10,0x0f,0x0c,0x0d,0x0b,0x0c,0x0f,0x0c,0x10,0x0e,0x14,0x15,0x0f,0x10,0x0c,0x0d,0x15,0x0c,0x0b,0x0c,0x0b,0x08,0x0b,0x0b,0x10, -0x09,0x0c,0x0c,0x0a,0x0b,0x0f,0x0c,0x0c,0x0c,0x0c,0x0a,0x09,0x0a,0x0e,0x0a,0x0d,0x0c,0x11,0x11,0x0c,0x0f,0x0b,0x0a,0x11,0x0b,0x0b,0x0c,0x08,0x0a,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0a,0x08,0x15,0x18,0x0d,0x07,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x10,0x0d,0x0f,0x0c,0x06,0x07,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x06, -0x06,0x0a,0x06,0x0a,0x06,0x06,0x06,0x0a,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, -0x0c,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0b,0x0b,0x10,0x0c,0x06,0x08,0x05,0x05,0x0b,0x09,0x13,0x10,0x0d,0x0b,0x0c,0x0a,0x10,0x0d,0x0c,0x0a,0x0c,0x0a,0x0d,0x0a,0x0e,0x0c,0x0e,0x0c,0x0f, -0x0b,0x10,0x0c,0x06,0x06,0x06,0x06,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x07,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, -0x0c,0x06,0x05,0x06,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x13,0x12,0x13,0x12,0x13,0x12,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, -0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x0a,0x0d,0x0a,0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x07,0x0f,0x0a,0x0b,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09, -0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x09,0x09,0x0c,0x0c,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x0f,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0e,0x0e,0x0d,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x10,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0a,0x0f,0x10,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0f,0x0d,0x12,0x06,0x06,0x0c,0x0a,0x05,0x0a,0x13,0x10,0x0c,0x10, -0x14,0x11,0x0d,0x0c,0x0c,0x0b,0x09,0x0b,0x06,0x07,0x0b,0x07,0x0b,0x10,0x0f,0x0c,0x0b,0x0c,0x0a,0x0d,0x0d,0x09,0x09,0x0b,0x0b,0x08,0x08,0x0b,0x05,0x08,0x0a,0x06,0x1a,0x18,0x16,0x12,0x0f,0x0b,0x17,0x14,0x11,0x0e,0x0b,0x06,0x05,0x10,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x0e,0x0b,0x0e,0x0b,0x12,0x11, -0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x10,0x0c,0x0d,0x09,0x05,0x1a,0x18,0x16,0x0e,0x0c,0x15,0x0e,0x10,0x0c,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x0c,0x07,0x0d,0x07,0x0e,0x0c,0x0e,0x0c,0x0b,0x09,0x0f,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0b,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, -0x0c,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0b,0x0d,0x09,0x09,0x0b,0x0c,0x06,0x0c,0x0c,0x0b,0x0a,0x0a,0x0c,0x0c,0x0c,0x06,0x06,0x07,0x06,0x08,0x05,0x0d,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x08,0x05,0x05,0x06,0x06,0x07,0x07, -0x0d,0x0c,0x0c,0x0a,0x0f,0x0a,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x08,0x0a,0x0d,0x0a,0x0c,0x0b,0x0c,0x05,0x0a,0x08,0x0c,0x08,0x08,0x13,0x14,0x15,0x0d,0x0a,0x0f,0x11,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0e,0x0c,0x0d,0x11,0x0c,0x0f,0x0c,0x0c,0x0a,0x0a,0x09,0x0d,0x0b,0x0d,0x0a,0x13,0x12,0x0d,0x0b,0x0d,0x0b,0x0d,0x0a,0x0d, -0x0a,0x0e,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x05,0x10,0x0a,0x0a,0x12,0x0e,0x0e,0x0c,0x13,0x0f,0x0e,0x0a,0x12,0x0f,0x0f,0x0c,0x14,0x10,0x0b,0x09,0x10,0x10,0x10,0x0c,0x0f,0x0c,0x0f,0x0c,0x1c,0x17,0x11,0x0e,0x18,0x13,0x12,0x0e,0x0c,0x09,0x0b,0x08,0x09,0x00,0x00,0x15,0x14,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0c,0x0a,0x0f, -0x0c,0x12,0x0e,0x15,0x12,0x0f,0x0c,0x0d,0x0a,0x0b,0x09,0x12,0x0e,0x0e,0x0c,0x12,0x0d,0x12,0x0d,0x06,0x12,0x10,0x0c,0x0b,0x0f,0x0c,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x12,0x11,0x0b,0x0b,0x0f,0x0b,0x0f,0x0b,0x12,0x10,0x0b,0x09,0x0b,0x09,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0e,0x0c, -0x10,0x0f,0x0c,0x0c,0x12,0x12,0x11,0x0f,0x0c,0x0a,0x13,0x11,0x15,0x12,0x0f,0x0b,0x0e,0x0d,0x0c,0x0c,0x0c,0x0b,0x0c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x0c,0x07,0x07,0x03,0x04,0x04,0x04,0x06,0x08,0x06,0x05,0x08,0x05,0x05,0x05,0x07,0x07,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x07,0x06, -0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x03,0x05,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b, -0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b, -0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0d,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06, -0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0e,0x11,0x0a,0x0a,0x0c,0x0c,0x09,0x09,0x05,0x06,0x0a,0x08,0x0f,0x0c,0x0c,0x0a,0x0d,0x0d,0x0d,0x14,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0b,0x0c,0x0f,0x0c,0x0a,0x0f,0x0a,0x09,0x09,0x0b,0x08,0x0a,0x0c,0x0a,0x0c,0x0c, -0x08,0x0a,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x09,0x09,0x09,0x08,0x07,0x07,0x06,0x09,0x0b,0x07,0x07,0x07,0x0a,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x03,0x06,0x0a,0x07,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x07,0x0a,0x06,0x07,0x07,0x06,0x07,0x09,0x06,0x03,0x04,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x0c, -0x03,0x07,0x0b,0x12,0x0d,0x0b,0x0b,0x12,0x0e,0x12,0x10,0x0b,0x0c,0x0b,0x09,0x18,0x0a,0x0c,0x13,0x14,0x14,0x0d,0x0e,0x0d,0x0a,0x0a,0x0b,0x09,0x0a,0x0b,0x04,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0d,0x0d,0x0a,0x08,0x0c,0x0c,0x07,0x12,0x0c,0x0c,0x07,0x07,0x0a,0x07,0x0a,0x0c,0x0a,0x0c,0x13,0x0e,0x07,0x06,0x0c,0x0b,0x0c,0x0c,0x0c, -0x07,0x0c,0x0a,0x05,0x12,0x0c,0x0c,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0c,0x0c,0x0b,0x09,0x09,0x0f,0x05,0x0a,0x05,0x0c,0x09,0x07,0x06,0x06,0x07,0x06,0x04,0x03,0x07,0x07,0x03,0x04,0x04,0x04,0x03,0x04,0x03,0x05,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x05,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x05,0x05,0x06,0x05,0x07,0x00,0x00, -0x00,0x00,0x05,0x07,0x07,0x07,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x07,0x00,0x00,0x00,0x00,0x0a,0x07,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0b,0x08, -0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x04,0x08,0x08,0x07,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x07,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x10,0x0d,0x0f,0x0c,0x10,0x0d,0x14,0x10,0x0b,0x08,0x0b,0x0e,0x0b,0x11,0x0f,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x07,0x07,0x07, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x15,0x09,0x05,0x0b,0x0c,0x09,0x0b,0x0b,0x0c,0x0c,0x0b,0x15,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x07,0x0c,0x07,0x10,0x0e,0x0b,0x07,0x12,0x0b,0x12,0x05,0x07,0x0c,0x0c,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x12,0x05,0x0c,0x05,0x0b,0x09,0x05,0x05,0x0b,0x05,0x10,0x05, -0x13,0x0b,0x13,0x13,0x0c,0x0c,0x0c,0x0b,0x0b,0x09,0x09,0x19,0x19,0x1c,0x1c,0x12,0x12,0x0b,0x0b,0x04,0x15,0x10,0x12,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0e,0x00,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x09,0x13,0x0b,0x13,0x0b,0x10,0x12,0x07,0x0b, -0x0b,0x09,0x05,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0e,0x0e,0x13,0x07,0x0b,0x09,0x0e,0x0b,0x07,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x05,0x0c,0x08,0x15,0x0b,0x0b,0x0e,0x0e,0x15,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x0b,0x10,0x12,0x13,0x07, -0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x09,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x0b,0x0c,0x0c,0x0c,0x15,0x15,0x0b,0x0b,0x15,0x0b, -0x0b,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x10,0x10,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x0e,0x07,0x0b,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x13,0x10,0x12,0x07,0x0b,0x10,0x12,0x10, -0x12,0x00,0x00,0x00,0x00,0x00,0x18,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x09,0x00,0x00,0x0d,0x00,0x00,0x00,0x19,0x12,0x1c,0x15,0x0b,0x0c,0x0c,0x0c,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x13,0x13,0x08,0x0c,0x0c,0x0c,0x1a,0x11,0x0b,0x20,0x17,0x07,0x0c,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x09,0x10,0x0e,0x0e,0x0b,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x1a,0x20,0x00,0x00,0x00,0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x0b,0x0c,0x0c, -0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x07,0x09,0x09,0x19,0x12,0x0e,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x08,0x0c,0x0e,0x0d,0x0b,0x0b,0x08,0x05,0x10,0x0c,0x0d,0x07,0x0c,0x0a,0x0a, -0x0a,0x0a,0x05,0x0b,0x09,0x0d,0x0a,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x09,0x0a,0x0a,0x06,0x0b,0x0c,0x0d,0x0b,0x07,0x10,0x0c,0x0d,0x0b,0x0d,0x0a,0x0c,0x0b,0x08,0x0f,0x08,0x09,0x09,0x0a,0x0d,0x0d,0x0b,0x15,0x0b,0x15,0x07,0x05,0x04,0x0b,0x05,0x03,0x00,0x03,0x05,0x00,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x13,0x09,0x10,0x0c,0x14,0x0f,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x12,0x0a,0x12,0x0a,0x12,0x0e,0x0e,0x0f,0x0f,0x10,0x12,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x10,0x0c,0x16,0x11,0x0a,0x0a,0x06,0x06,0x06,0x08,0x05, -0x0c,0x05,0x05,0x12,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x0e,0x06,0x0c,0x0b,0x0c,0x0f,0x0e,0x06,0x08,0x0e,0x0d,0x0d,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x0f,0x0b,0x0b,0x0b,0x05,0x08,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d, -0x0d,0x0a,0x0e,0x0b,0x0c,0x0f,0x0c,0x0f,0x0c,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x06,0x0c,0x0b,0x0c,0x0e,0x08,0x0e,0x0d,0x0d,0x0c,0x0e,0x0c,0x10,0x0f,0x06,0x0c,0x0b,0x0d,0x0e,0x19,0x00,0x0d,0x0c,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x00,0x10,0x0d,0x0e,0x0f,0x0c,0x0e,0x10,0x10,0x0a,0x0d,0x10,0x0f,0x0e,0x10,0x11,0x10,0x0e,0x0c,0x0c,0x10,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0c,0x0d,0x0e,0x0e,0x10,0x0d,0x0d,0x0d,0x0e,0x11,0x0a,0x0c,0x0c,0x12,0x0b,0x0b, -0x10,0x13,0x0d,0x0b,0x16,0x0c,0x0c,0x10,0x0b,0x0b,0x10,0x0c,0x10,0x11,0x12,0x0b,0x10,0x0b,0x0e,0x0b,0x0d,0x0c,0x0d,0x0b,0x0d,0x10,0x0b,0x0d,0x0e,0x0b,0x0b,0x0d,0x14,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x13,0x0c,0x13,0x0a,0x0c,0x13,0x0e,0x0c,0x13,0x10,0x10,0x13,0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x13,0x0d,0x0b,0x0c,0x0c,0x13,0x10,0x0e,0x0f,0x0f,0x0e,0x0f,0x0d,0x0e,0x10,0x0f,0x0e,0x0b,0x11,0x0e,0x0e,0x0c,0x0e,0x0f,0x10,0x0f,0x0c,0x0f,0x0e,0x0f,0x0e,0x10,0x0f,0x0f,0x0f,0x0e,0x0d,0x0f,0x0e,0x0f,0x11,0x0e,0x10,0x0f,0x02,0x02,0x03,0x04,0x03,0x06,0x07,0x12,0x0c,0x0d,0x0d,0x0c,0x0d, -0x0c,0x0c,0x0e,0x0d,0x0c,0x06,0x12,0x0c,0x0c,0x0c,0x0b,0x0d,0x0b,0x0c,0x06,0x0c,0x0b,0x0c,0x09,0x12,0x0c,0x0c,0x0c,0x0c,0x11,0x0c,0x0c,0x08,0x11,0x0c,0x0c,0x0e,0x0e,0x05,0x06,0x18,0x18,0x18,0x18,0x1e,0x0b,0x0b,0x05,0x0b,0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0a,0x0b,0x0c,0x09,0x09,0x0c,0x0d,0x05,0x07,0x0a,0x09,0x10,0x0e,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x11,0x0b,0x0a,0x0a,0x0f,0x10,0x09,0x0d,0x0a,0x0c,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x0d,0x0d,0x05,0x05,0x05,0x05,0x05,0x0c,0x07,0x0a,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0f,0x0d,0x0b,0x0a,0x08,0x0b,0x09,0x0a,0x0d,0x0d,0x05,0x0a,0x0b,0x10,0x0e,0x09,0x0d,0x0d,0x0a,0x0a,0x09,0x0a,0x0d,0x0b,0x0e,0x0d,0x0b,0x09,0x0d,0x05,0x0d,0x0a,0x0d,0x05,0x0a,0x09,0x0c,0x08,0x0b, -0x09,0x05,0x05,0x07,0x11,0x11,0x0d,0x0a,0x0a,0x0d,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x10,0x09,0x0e,0x0e,0x0a,0x0c,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x09,0x0a,0x0d,0x0b,0x0d,0x0b,0x11,0x11,0x0c,0x0f,0x0a,0x0b,0x12,0x0a,0x08,0x0c,0x0c,0x0d,0x13,0x13,0x0e,0x0b,0x0c,0x09,0x0c,0x0c,0x0c,0x0f,0x0b,0x0b,0x0e,0x0c,0x0c,0x08,0x0d,0x0d, -0x0c,0x0a,0x0a,0x13,0x10,0x0a,0x0b,0x0d,0x0d,0x0d,0x0d,0x0f,0x0e,0x08,0x14,0x0c,0x0c,0x0c,0x0e,0x0e,0x0b,0x0b,0x06,0x10,0x0e,0x0e,0x0a,0x0f,0x05,0x05,0x09,0x09,0x05,0x05,0x0d,0x08,0x06,0x10,0x0f,0x06,0x05,0x05,0x09,0x08,0x08,0x05,0x05,0x05,0x08,0x0e,0x0a,0x06,0x0d,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x09,0x0b,0x09, -0x05,0x05,0x08,0x0b,0x07,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x10,0x12,0x07,0x07,0x0b,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0b,0x0b,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x0b,0x0b,0x13,0x13,0x0b,0x0b,0x10,0x12,0x07,0x07,0x10,0x12,0x07, -0x07,0x10,0x12,0x07,0x07,0x15,0x10,0x12,0x0b,0x0c,0x0c,0x0e,0x07,0x0e,0x10,0x0b,0x0b,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x13,0x07,0x10,0x0b,0x0b,0x05,0x0b,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x13,0x0b,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e, -0x07,0x0e,0x0e,0x07,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x00,0x19,0x12,0x1c,0x15,0x13,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x15,0x15,0x13,0x13,0x13,0x0c,0x0c,0x0c,0x0c, -0x0e,0x07,0x0e,0x07,0x0e,0x07,0x19,0x12,0x0c,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x19,0x19,0x12,0x12,0x12,0x12, -0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x07,0x05,0x00,0x00,0x00,0x12,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x05,0x05, -0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0e,0x0e,0x0e,0x05,0x05,0x0b,0x09,0x0c,0x0d,0x0c,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0c,0x0b,0x0c,0x0d,0x0d,0x0e,0x0c,0x0c,0x0e,0x0b,0x0e,0x10,0x0d,0x10,0x11,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0a,0x0b,0x0d,0x0d,0x0e,0x0c,0x0e,0x0c,0x0c,0x0d,0x0b,0x0b,0x10,0x0e,0x0f,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x10,0x10,0x10,0x13, -0x13,0x0f,0x13,0x13,0x0f,0x12,0x12,0x0c,0x10,0x12,0x10,0x0c,0x12,0x10,0x0f,0x0f,0x0d,0x0e,0x10,0x11,0x0f,0x0d,0x0f,0x0c,0x0b,0x13,0x13,0x13,0x11,0x13,0x13,0x0e,0x13,0x13,0x0f,0x10,0x10,0x10,0x0f,0x0f,0x0e,0x13,0x10,0x11,0x0f,0x0f,0x0c,0x10,0x0f,0x0f,0x12,0x10,0x0f,0x13,0x0b,0x0b,0x0c,0x0b,0x0d,0x0d,0x0f,0x0f,0x0c,0x0c, -0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0d,0x0d,0x0d,0x0a,0x0c,0x0c,0x0c,0x0d,0x10,0x12,0x0e,0x0e,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0a,0x0a,0x0d,0x0a,0x0b,0x0a,0x0c,0x10,0x0c,0x11,0x0b,0x0c,0x0c,0x10,0x07,0x11,0x0e,0x0f,0x0e,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x0d, -0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x13,0x13,0x0a,0x10,0x0f,0x0a,0x09,0x0a,0x0b,0x0c,0x0a,0x12,0x11,0x12,0x09,0x15,0x0a,0x12,0x12, -0x12,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x1d,0x12,0x12,0x09,0x05,0x0a,0x05,0x0a,0x05,0x05,0x05,0x0a,0x0c,0x0c,0x0b,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x09,0x12,0x05,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x0e,0x19, -0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x07,0x07,0x0e,0x0c,0x0f,0x09,0x18,0x13,0x0c,0x0c,0x13,0x11,0x12,0x10,0x15,0x11,0x13,0x10,0x0e,0x0a,0x0f,0x0c,0x13,0x0f, -0x10,0x0d,0x10,0x0d,0x12,0x0e,0x12,0x0e,0x17,0x12,0x10,0x0c,0x10,0x0c,0x19,0x13,0x11,0x00,0x15,0x15,0x15,0x0a,0x00,0x00,0x0c,0x0b,0x0f,0x0c,0x0b,0x09,0x17,0x13,0x14,0x12,0x0f,0x0c,0x0f,0x0c,0x0b,0x09,0x10,0x0d,0x0b,0x09,0x11,0x0e,0x0e,0x0c,0x15,0x11,0x0b,0x0c,0x0f,0x0f,0x11,0x09,0x04,0x0a,0x0e,0x09,0x15,0x15,0x05,0x00, -0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x08,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0e,0x0f,0x06,0x04,0x06,0x04,0x0f,0x0c,0x10,0x0d,0x0c,0x0a,0x0b,0x0a,0x0c,0x0c,0x09,0x09,0x18,0x11,0x18,0x13,0x15,0x12,0x13,0x0e,0x13,0x0e,0x13,0x0e,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0a,0x05,0x10,0x0c,0x12, -0x0e,0x1c,0x15,0x0c,0x0c,0x0e,0x0f,0x11,0x12,0x10,0x0c,0x15,0x10,0x0b,0x08,0x0c,0x0a,0x0d,0x0a,0x14,0x0f,0x0d,0x0b,0x0c,0x0c,0x0c,0x0c,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x06,0x0e,0x07,0x14,0x0e,0x07,0x0c,0x0d,0x0a,0x10,0x0c,0x08,0x07,0x0c,0x0c,0x0c,0x0a,0x05,0x10,0x0d,0x08,0x07,0x0d,0x0a,0x0f,0x08,0x10,0x0d,0x0d, -0x0a,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x10,0x09,0x0b,0x12,0x0a,0x0c,0x13,0x06,0x18,0x13,0x13,0x19,0x13,0x13,0x13,0x12,0x13,0x13,0x0b,0x0a,0x0d,0x0f,0x13,0x0f,0x14,0x05,0x0a,0x0c,0x12,0x16,0x0f,0x16,0x0d,0x0d,0x11,0x0f,0x18,0x13,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x12,0x12,0x15,0x0b, -0x0b,0x15,0x10,0x0b,0x0b,0x10,0x0e,0x07,0x07,0x0e,0x0c,0x0c,0x0c,0x0c,0x10,0x07,0x07,0x12,0x10,0x07,0x07,0x12,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x0b,0x08,0x0c,0x0b,0x10,0x0c,0x0c,0x12, -0x0e,0x10,0x10,0x11,0x11,0x0c,0x0a,0x15,0x11,0x16,0x12,0x0e,0x0c,0x07,0x07,0x0c,0x0e,0x09,0x0d,0x0b,0x0c,0x0a,0x10,0x11,0x08,0x0c,0x09,0x04,0x08,0x0b,0x0c,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x09,0x1f,0x2a,0x07,0x09,0x03,0x06,0x08,0x09,0x07,0x0a,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a, -0x0a,0x1c,0x0b,0x10,0x13,0x13,0x0e,0x0a,0x0c,0x0f,0x0f,0x0a,0x07,0x0e,0x0b,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x0c,0x0c,0x0b,0x10,0x0d,0x11,0x0a,0x0b,0x0d,0x07,0x0c,0x07,0x07,0x05,0x12,0x0c,0x0c,0x0b,0x0b,0x0c,0x13,0x13,0x14,0x15,0x15,0x0c,0x0a,0x06,0x0b,0x0a,0x0d,0x0a,0x0e,0x05,0x0c,0x0d,0x12,0x12,0x0d,0x0b,0x0c,0x0b,0x0b, -0x0a,0x0b,0x0a,0x0a,0x06,0x07,0x05,0x05,0x08,0x0c,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x00,0x06,0x06,0x06,0x05,0x05,0x23,0x15,0x12,0x16,0x06,0x06,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x13,0x07,0x07,0x13,0x05,0x0b,0x0b,0x1c,0x15,0x15, -0x1c,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x09,0x09,0x00,0x00,0x08,0x10,0x0d,0x0f,0x0c,0x1a,0x16,0x0f,0x0b,0x0f,0x0c,0x1c,0x15,0x10,0x0c,0x08,0x07,0x0d,0x00,0x0e,0x0b,0x07,0x06,0x03,0x0a,0x07,0x07,0x05,0x04,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x0c,0x0c,0x14,0x11,0x11,0x11,0x11,0x14,0x0d,0x0e,0x0d, -0x08,0x14,0x18,0x09,0x18,0x0b,0x12,0x13,0x13,0x13,0x09,0x10,0x15,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x12,0x0b,0x0b,0x13,0x07,0x07,0x13,0x07,0x07,0x13,0x0a,0x0a,0x00,0x09,0x12,0x07,0x07,0x15,0x0b,0x0b,0x10,0x0b,0x0b,0x0e,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x20,0x20,0x12,0x00,0x00,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0d,0x0e,0x0e,0x13,0x0e,0x0d,0x11,0x14,0x0e,0x0d,0x16,0x0d,0x0d,0x14,0x0d,0x0e,0x11,0x0d,0x10,0x12,0x13,0x0d,0x10,0x0e,0x0f,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d, -0x10,0x0d,0x0e,0x10,0x0d,0x0d,0x0c,0x10,0x0d,0x0e,0x0e,0x0f,0x09,0x0b,0x0d,0x10,0x10,0x0b,0x00,0x00,0x18,0x30,0x10,0x00,0x02,0x07,0x07,0x09,0x0e,0x0d,0x14,0x13,0x06,0x07,0x07,0x0a,0x10,0x05,0x0a,0x05,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x05,0x10,0x10,0x10,0x0b,0x17,0x0f,0x0e,0x0f,0x11,0x0c,0x0c, -0x10,0x11,0x06,0x09,0x0e,0x0b,0x16,0x12,0x12,0x0d,0x12,0x0e,0x0d,0x0d,0x10,0x0f,0x16,0x0e,0x0d,0x0e,0x07,0x09,0x07,0x10,0x0a,0x06,0x0c,0x0e,0x0b,0x0e,0x0d,0x08,0x0e,0x0e,0x06,0x06,0x0c,0x06,0x15,0x0e,0x0e,0x0e,0x0e,0x08,0x0a,0x08,0x0e,0x0c,0x11,0x0b,0x0c,0x0b,0x07,0x06,0x07,0x10,0x0f,0x0f,0x0f,0x0c,0x12,0x12,0x10,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0b,0x0a,0x0b,0x0d,0x0a,0x15,0x15,0x13,0x07,0x0a,0x10,0x15,0x12,0x14,0x10,0x10,0x10,0x0d,0x0e,0x0d,0x0f,0x12,0x0d,0x09,0x0a,0x12,0x14,0x0e,0x0b,0x07,0x07,0x10,0x10,0x0d,0x10,0x0f, -0x0c,0x0c,0x12,0x0f,0x0f,0x12,0x16,0x16,0x0c,0x18,0x09,0x09,0x06,0x06,0x10,0x0e,0x0c,0x0d,0x04,0x0d,0x08,0x08,0x0d,0x0d,0x09,0x05,0x06,0x09,0x1d,0x0f,0x0c,0x0f,0x0c,0x0c,0x06,0x06,0x06,0x06,0x12,0x12,0x12,0x10,0x10,0x10,0x06,0x09,0x08,0x07,0x07,0x05,0x07,0x05,0x08,0x04,0x09,0x0b,0x07,0x0d,0x0a,0x0e,0x0b,0x06,0x11,0x0d, -0x0d,0x0c,0x0d,0x0e,0x10,0x10,0x08,0x09,0x09,0x16,0x16,0x17,0x0c,0x10,0x0e,0x06,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b,0x0e,0x0a,0x05,0x0f,0x0c,0x0f,0x0c,0x11,0x10,0x11,0x0c,0x0d,0x0c,0x0d,0x0b,0x06,0x0b,0x07,0x0b,0x08,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x0d,0x0b,0x10,0x0e,0x10,0x0e,0x0e,0x0b, -0x0e,0x0b,0x0b,0x12,0x12,0x0f,0x0e,0x0b,0x0e,0x0c,0x11,0x0a,0x0c,0x09,0x1b,0x0f,0x0c,0x0f,0x06,0x09,0x13,0x08,0x0f,0x09,0x09,0x0f,0x09,0x0f,0x0c,0x0f,0x0b,0x0f,0x0b,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x06,0x0e,0x0c,0x0c,0x0b,0x06, -0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x16,0x11,0x0d,0x0c,0x06,0x0f,0x0c,0x15,0x14,0x12,0x0e,0x05,0x16,0x11,0x16,0x11,0x16,0x11,0x0d,0x0c,0x06,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x15,0x09,0x09,0x05,0x07,0x07,0x0f,0x0e,0x13,0x09,0x13,0x10,0x14,0x06,0x0f, -0x0e,0x0c,0x0e,0x11,0x06,0x0e,0x0f,0x16,0x12,0x0c,0x12,0x11,0x0d,0x0c,0x0d,0x0d,0x0e,0x13,0x12,0x06,0x0d,0x0f,0x0b,0x0e,0x06,0x0d,0x0d,0x0c,0x0b,0x0e,0x0e,0x06,0x0d,0x0c,0x0e,0x0d,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x12,0x13,0x06,0x0d,0x0e,0x0d,0x13,0x0c,0x11,0x0b,0x0f,0x0d,0x06,0x18,0x18,0x11,0x0e,0x0e,0x11,0x0f,0x0e,0x0e, -0x0b,0x11,0x0c,0x15,0x0d,0x12,0x12,0x0e,0x10,0x16,0x11,0x12,0x11,0x0d,0x0f,0x0d,0x0e,0x11,0x0e,0x12,0x10,0x17,0x18,0x11,0x13,0x0e,0x0f,0x18,0x0e,0x0c,0x0e,0x0d,0x09,0x0d,0x0d,0x12,0x0b,0x0e,0x0e,0x0c,0x0d,0x11,0x0e,0x0e,0x0e,0x0e,0x0b,0x0a,0x0c,0x10,0x0b,0x0e,0x0e,0x13,0x14,0x0e,0x11,0x0c,0x0b,0x14,0x0c,0x0d,0x0e,0x09, -0x0b,0x0a,0x06,0x13,0x13,0x0e,0x0c,0x0c,0x0e,0x0b,0x09,0x18,0x1b,0x0f,0x08,0x09,0x09,0x09,0x06,0x0d,0x0a,0x0d,0x12,0x0e,0x11,0x0e,0x07,0x08,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0b,0x07,0x07,0x07,0x0b,0x0b,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, -0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0d, -0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x08,0x0c,0x0d,0x12,0x0e,0x06,0x09,0x06,0x06,0x0c,0x0a,0x16,0x13,0x0f,0x0d,0x0e,0x0c,0x12,0x0e,0x0d,0x0c,0x0d,0x0c,0x0f,0x0c,0x10,0x0e,0x10,0x0e,0x11,0x0d,0x12,0x0e,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x07,0x07,0x07,0x07,0x0c,0x0d,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0f,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x08,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x16,0x15,0x16,0x15,0x16,0x15,0x12,0x0e,0x12, -0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0c,0x0f,0x0c,0x16,0x11,0x16,0x11,0x0e,0x0b,0x0e, -0x0b,0x0d,0x0c,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x08,0x11,0x0c,0x0c,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x06,0x09,0x09,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x17,0x17,0x17,0x17,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0b,0x0b,0x0e,0x0e,0x06,0x06,0x0e,0x0e,0x0d,0x0d,0x13, -0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x0e,0x0e,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0f,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x12,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0b,0x11,0x12,0x0e,0x0e,0x0e,0x0c,0x0d,0x0c,0x11,0x0f,0x15,0x07,0x07,0x0e,0x0c,0x06,0x0c,0x15,0x12,0x0e,0x12,0x17,0x13,0x0e,0x0e,0x0e,0x0d,0x0a,0x0c,0x07,0x08,0x0d,0x08,0x0d,0x12,0x11,0x0e,0x0c,0x0e,0x0b,0x0f,0x0f,0x0b,0x0a,0x0d,0x0d,0x09,0x09,0x0d, -0x06,0x09,0x0b,0x07,0x1e,0x1b,0x19,0x15,0x11,0x0c,0x1a,0x17,0x13,0x0f,0x0c,0x06,0x06,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0d,0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x10,0x0e,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x06,0x1e,0x1b,0x19,0x10,0x0e,0x18,0x11,0x12,0x0e,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d, -0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x10,0x0e,0x10,0x0e,0x0c,0x0a,0x11,0x0e,0x12,0x0e,0x0e,0x0e,0x0b,0x0f,0x0c,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0c,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0e,0x0d,0x0f,0x0a,0x0a,0x0c,0x0d,0x07,0x0e,0x0e,0x0d,0x0c,0x0b, -0x0e,0x0e,0x0e,0x06,0x07,0x08,0x07,0x09,0x06,0x0e,0x15,0x15,0x15,0x0d,0x0d,0x0e,0x0e,0x11,0x11,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x07,0x08,0x08,0x0e,0x0e,0x0d,0x0c,0x11,0x0c,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0f,0x0c,0x0d,0x0d,0x0e,0x06,0x0c,0x09,0x0e,0x09,0x09,0x16,0x17, -0x17,0x0f,0x0b,0x11,0x13,0x0e,0x0e,0x0c,0x0c,0x0d,0x0e,0x0e,0x10,0x0e,0x0f,0x13,0x0e,0x11,0x0e,0x0e,0x0b,0x0c,0x0b,0x0e,0x0c,0x0f,0x0c,0x15,0x15,0x0f,0x0c,0x0f,0x0d,0x0f,0x0b,0x0e,0x0c,0x10,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x06,0x12,0x0b,0x0b,0x15,0x10,0x10,0x0e,0x16,0x11,0x10,0x0c,0x15,0x11,0x11,0x0e,0x16,0x12,0x0d,0x0b, -0x13,0x12,0x12,0x0e,0x11,0x0e,0x11,0x0e,0x1f,0x1b,0x14,0x10,0x1b,0x15,0x15,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x00,0x00,0x18,0x17,0x0e,0x0c,0x0d,0x0e,0x0e,0x0c,0x0d,0x0b,0x0e,0x0c,0x11,0x0e,0x14,0x10,0x18,0x14,0x11,0x0d,0x0f,0x0b,0x0d,0x0a,0x15,0x10,0x10,0x0e,0x14,0x0f,0x14,0x0f,0x06,0x15,0x12,0x0e,0x0c,0x11,0x0e,0x10,0x0e, -0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x0c,0x0d,0x11,0x0d,0x11,0x0d,0x15,0x12,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x10,0x0e,0x13,0x11,0x0e,0x0e,0x14,0x15,0x13,0x11,0x0d,0x0b,0x16,0x13,0x18,0x14,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x08,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x0e,0x08,0x08,0x04,0x05,0x05,0x05,0x07,0x0a,0x07,0x06,0x09,0x05,0x05,0x05,0x08,0x08,0x05,0x05,0x0e,0x0e,0x0e,0x0e,0x08,0x07,0x06,0x08,0x07,0x06,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x07,0x04,0x06,0x07,0x05,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08, -0x0a,0x08,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d, -0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d, -0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x08,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x0b,0x10,0x14,0x0c,0x0b,0x0d,0x0d,0x0a, -0x0a,0x06,0x07,0x0c,0x09,0x11,0x0e,0x0e,0x0b,0x0f,0x0f,0x0f,0x16,0x0d,0x0e,0x0e,0x0b,0x0b,0x0b,0x0a,0x0d,0x0e,0x11,0x0e,0x0c,0x11,0x0b,0x0a,0x0a,0x0d,0x09,0x0b,0x0e,0x0b,0x0e,0x0d,0x09,0x0c,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x07,0x0a,0x0d,0x08,0x08,0x08,0x0c,0x08, -0x08,0x07,0x07,0x06,0x06,0x08,0x04,0x07,0x0c,0x08,0x08,0x06,0x08,0x08,0x08,0x05,0x08,0x08,0x0c,0x07,0x08,0x08,0x07,0x08,0x0a,0x07,0x04,0x05,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x0e,0x04,0x08,0x0d,0x15,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0d,0x0e,0x0c,0x0b,0x1b,0x0b,0x0e,0x15,0x16,0x16,0x0f,0x0f,0x0f,0x0b,0x0b,0x0d,0x0a, -0x0b,0x0c,0x05,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0f,0x0f,0x0b,0x09,0x0e,0x0e,0x08,0x15,0x0e,0x0e,0x08,0x08,0x0b,0x08,0x0b,0x0e,0x0b,0x0e,0x16,0x10,0x08,0x06,0x0e,0x0d,0x0e,0x0e,0x0e,0x08,0x0e,0x0c,0x06,0x15,0x0e,0x0e,0x08,0x0a,0x0a,0x0c,0x0b,0x0b,0x0c,0x0e,0x0e,0x0d,0x0b,0x0b,0x12,0x06,0x0b,0x06,0x0e,0x0b,0x08,0x06,0x06, -0x08,0x06,0x04,0x04,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x06,0x04,0x05,0x08,0x08,0x08,0x08,0x07,0x06,0x06,0x07,0x06,0x08,0x00,0x00,0x00,0x00,0x05,0x08,0x07,0x08,0x06,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x00,0x00,0x00,0x00,0x0b,0x07,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, -0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x04,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x09,0x08,0x09,0x09,0x08, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x13,0x0f,0x11,0x0e,0x12,0x0f,0x16,0x12,0x0d,0x09,0x0c,0x10,0x0d,0x14,0x11,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x18,0x0a,0x06,0x0c,0x0e,0x0a,0x0c,0x0c,0x0e,0x0e,0x0c,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c, -0x10,0x0c,0x0c,0x0c,0x08,0x0e,0x08,0x12,0x10,0x0c,0x08,0x14,0x0c,0x14,0x06,0x08,0x0e,0x0e,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x14,0x06,0x0e,0x06,0x0c,0x0a,0x06,0x06,0x0c,0x06,0x12,0x06,0x16,0x0c,0x16,0x16,0x0e,0x0e,0x0e,0x0c,0x0c,0x0a,0x0a,0x1c,0x1c,0x20,0x20,0x14,0x14,0x0c,0x0c,0x04,0x18,0x12,0x14,0x10,0x0e,0x10,0x0c,0x0c, -0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x10,0x00,0x10,0x10,0x10,0x08,0x0c,0x0c,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0a,0x16,0x0c,0x16,0x0c,0x12,0x14,0x08,0x0c,0x0c,0x0a,0x06,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0e,0x0c,0x10,0x10,0x16,0x08,0x0c,0x0a,0x10,0x0c,0x08,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x06, -0x0e,0x09,0x18,0x0c,0x0c,0x10,0x10,0x18,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x12,0x10,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0c,0x12,0x14,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x0c,0x0e,0x0e,0x0e,0x18,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x12,0x12,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16, -0x0c,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x10,0x08,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x16,0x12,0x14,0x08,0x0c,0x12,0x14,0x12,0x14,0x00,0x00,0x00,0x00,0x00,0x1b,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0a,0x00,0x00,0x0e,0x00,0x00,0x00,0x1c,0x14,0x20,0x18,0x0c,0x0e, -0x0e,0x0e,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x16,0x16,0x09,0x0e,0x0e,0x0e,0x1d,0x14,0x0d,0x25,0x1a,0x08,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0a,0x12,0x10,0x10,0x0c,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x1e,0x24,0x00,0x00,0x00,0x00,0x00, -0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x0a,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, -0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x08,0x0a,0x0a,0x1c,0x14,0x10,0x0e,0x0e,0x00,0x0c,0x0c,0x0c,0x09,0x0e,0x10,0x0f,0x0c,0x0d,0x09,0x06,0x12,0x0e,0x0e,0x08,0x0d,0x0c,0x0b,0x0b,0x0b,0x06,0x0c,0x0a,0x0f,0x0c,0x0e,0x0b,0x0d,0x0b,0x10,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0b,0x0b,0x0b,0x07,0x0c, -0x0d,0x0e,0x0c,0x08,0x12,0x0e,0x0f,0x0d,0x0f,0x0c,0x0e,0x0c,0x0a,0x11,0x09,0x0a,0x0a,0x0c,0x0e,0x0e,0x0c,0x18,0x0c,0x18,0x08,0x06,0x04,0x0d,0x05,0x03,0x00,0x03,0x05,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x0a,0x12,0x0e,0x16,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x16,0x16,0x15,0x0b,0x15,0x0b,0x15,0x0f,0x10,0x11,0x11,0x12,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x10,0x10,0x10,0x12,0x0e,0x19,0x14,0x0b,0x0b,0x07,0x07,0x07,0x09,0x05,0x0e,0x06,0x06,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x0f,0x0e, -0x0b,0x0c,0x10,0x06,0x08,0x10,0x10,0x06,0x0d,0x0d,0x0d,0x11,0x10,0x06,0x0a,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x0d,0x13,0x11,0x0d,0x0d,0x0d,0x06,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0c,0x10,0x0d,0x0d,0x11,0x0d,0x11,0x0d,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x0e,0x0b,0x0c,0x10,0x07,0x09,0x10,0x07,0x0d,0x0d,0x0d,0x10, -0x0a,0x10,0x0f,0x0f,0x0e,0x10,0x0d,0x13,0x11,0x06,0x0e,0x0d,0x0f,0x10,0x1d,0x00,0x0f,0x0d,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x00,0x12,0x0f,0x10,0x11,0x0d,0x10,0x12,0x12, -0x0b,0x0f,0x12,0x12,0x10,0x12,0x13,0x13,0x10,0x0d,0x0d,0x12,0x11,0x0e,0x10,0x10,0x10,0x10,0x10,0x12,0x0e,0x0f,0x10,0x10,0x13,0x0f,0x0f,0x0f,0x10,0x14,0x0c,0x0e,0x0e,0x15,0x0d,0x0d,0x13,0x15,0x0f,0x0d,0x19,0x0e,0x0e,0x12,0x0d,0x0d,0x12,0x0d,0x12,0x14,0x15,0x0d,0x13,0x0d,0x10,0x0d,0x0f,0x0e,0x0f,0x0d,0x0f,0x12,0x0d,0x0f, -0x10,0x0d,0x0d,0x0e,0x17,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x0d,0x15,0x0c,0x0d,0x15,0x10,0x0d,0x15,0x12,0x12,0x15,0x0e,0x0d,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x0e,0x0d,0x0e,0x15,0x0e,0x0d,0x0d,0x0d,0x15,0x13,0x10,0x11,0x11,0x10,0x11,0x0f,0x10,0x13,0x11,0x10,0x0d,0x13,0x10,0x10, -0x0e,0x10,0x11,0x12,0x11,0x0e,0x11,0x10,0x11,0x10,0x13,0x11,0x11,0x11,0x10,0x0f,0x11,0x10,0x11,0x13,0x10,0x12,0x11,0x02,0x03,0x04,0x05,0x04,0x06,0x08,0x15,0x0e,0x0f,0x0e,0x0e,0x0f,0x0e,0x0e,0x10,0x0e,0x0e,0x07,0x14,0x0e,0x0e,0x0e,0x0d,0x0e,0x0c,0x0e,0x06,0x0e,0x0c,0x0e,0x0a,0x15,0x0d,0x0e,0x0e,0x0e,0x14,0x0e,0x0e,0x09, -0x14,0x0e,0x0e,0x10,0x10,0x05,0x07,0x1b,0x1b,0x1b,0x1b,0x22,0x0d,0x0d,0x06,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x0c,0x0c,0x0c,0x0e,0x0a,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x12,0x10,0x0f,0x0c,0x0f,0x0c,0x0a,0x0b,0x0e,0x0c,0x13,0x0c,0x0b,0x0c,0x11,0x13,0x0a,0x0f,0x0c,0x0e,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0c,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x0e,0x08,0x0c,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x11,0x0f,0x0c, -0x0c,0x09,0x0d,0x0a,0x0c,0x0f,0x0f,0x06,0x0c,0x0c,0x12,0x10,0x0b,0x0f,0x0f,0x0c,0x0b,0x0b,0x0b,0x0f,0x0c,0x10,0x0f,0x0c,0x0a,0x0f,0x06,0x0f,0x0b,0x0f,0x06,0x0b,0x0a,0x0e,0x0a,0x0c,0x0a,0x06,0x06,0x08,0x14,0x14,0x0f,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0a,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x12,0x0f,0x0f,0x0f,0x0c,0x0c, -0x0b,0x0c,0x0f,0x0c,0x0f,0x0d,0x13,0x14,0x0e,0x11,0x0c,0x0c,0x15,0x0c,0x0a,0x0e,0x0e,0x0f,0x15,0x15,0x10,0x0c,0x0e,0x0a,0x0e,0x0d,0x0d,0x11,0x0d,0x0d,0x10,0x0e,0x0e,0x09,0x0f,0x0f,0x0e,0x0c,0x0c,0x16,0x12,0x0b,0x0d,0x0e,0x0e,0x0f,0x0f,0x11,0x10,0x09,0x16,0x0e,0x0d,0x0e,0x0f,0x0f,0x0c,0x0c,0x06,0x12,0x10,0x10,0x0b,0x11, -0x05,0x05,0x0a,0x0a,0x05,0x05,0x0f,0x0a,0x06,0x12,0x11,0x07,0x05,0x05,0x0b,0x09,0x09,0x06,0x06,0x06,0x09,0x10,0x0b,0x07,0x0f,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0b,0x0d,0x0a,0x05,0x06,0x09,0x0d,0x08,0x10,0x10,0x10,0x16,0x12,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x12,0x14,0x08,0x08,0x0c,0x08,0x16,0x08,0x16,0x08, -0x16,0x08,0x0e,0x0e,0x0e,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x14,0x14,0x14,0x16,0x16,0x0c,0x0c,0x16,0x16,0x0c,0x0c,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x18,0x12,0x14,0x0c,0x0e,0x0e,0x10,0x08,0x10,0x12,0x0c,0x0c,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x06,0x16,0x08,0x12,0x0c,0x0c,0x06,0x0c,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18, -0x18,0x12,0x0c,0x0c,0x12,0x0c,0x0c,0x16,0x0c,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x10,0x10,0x10,0x10,0x10,0x08,0x10,0x10,0x08,0x08,0x10,0x08,0x10,0x08,0x10,0x0c,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0c,0x08,0x08,0x08, -0x08,0x00,0x1c,0x14,0x20,0x18,0x16,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x18,0x18,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x0e,0x10,0x08,0x10,0x08,0x10,0x08,0x1c,0x14,0x0e,0x10,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08, -0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x1c,0x1c,0x14,0x14,0x14,0x14,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x06,0x06,0x08,0x06,0x00,0x00,0x00,0x14,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -0x0a,0x0a,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x10,0x10,0x10,0x06,0x06,0x0c,0x0a,0x0e,0x0f,0x0e,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0b,0x0d,0x0d,0x0e,0x0f,0x0f,0x10,0x0e,0x0e,0x10,0x0c,0x10,0x12,0x0f,0x12,0x14,0x0f,0x12,0x11, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0b,0x0d,0x0f,0x0e,0x10,0x0e,0x10,0x0e,0x0e,0x0e,0x0c,0x0c,0x12,0x10,0x11,0x10,0x10,0x0e,0x0e,0x0e,0x12,0x13,0x12,0x12,0x16,0x16,0x11,0x16,0x16,0x12,0x15,0x14,0x0d,0x12,0x14,0x12,0x0e,0x14,0x12,0x11,0x11,0x0f,0x0f,0x12,0x13,0x11,0x0f,0x11,0x0e,0x0d,0x16,0x16,0x16, -0x14,0x16,0x16,0x10,0x16,0x16,0x11,0x12,0x13,0x12,0x11,0x11,0x0f,0x15,0x12,0x14,0x11,0x11,0x0e,0x12,0x11,0x11,0x14,0x12,0x11,0x16,0x0d,0x0c,0x0d,0x0d,0x0f,0x0f,0x11,0x12,0x0e,0x0e,0x0e,0x0d,0x0e,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0d,0x0e,0x0f,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0f,0x12,0x14,0x10,0x10,0x0f,0x12, -0x0f,0x10,0x0c,0x0b,0x0e,0x0e,0x0b,0x0c,0x0d,0x0d,0x0c,0x0b,0x0f,0x0b,0x0d,0x0c,0x0d,0x13,0x0e,0x14,0x0d,0x0e,0x0e,0x12,0x08,0x13,0x10,0x11,0x10,0x0d,0x12,0x0e,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06, -0x06,0x06,0x0f,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x16,0x16,0x16,0x16,0x0c,0x12,0x11,0x0c,0x0a,0x0c,0x0d,0x0d,0x0c,0x14,0x14,0x15,0x0b,0x18,0x0c,0x14,0x14,0x14,0x13,0x0e,0x0c,0x0c,0x13,0x0e,0x13,0x10,0x0d,0x0b,0x0a,0x18,0x0a,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x21,0x14,0x14,0x0a,0x06,0x0b,0x06,0x0b, -0x06,0x06,0x06,0x0c,0x0e,0x0e,0x0d,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x0a,0x15,0x05,0x16,0x16,0x16,0x0e,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1c,0x1c,0x10,0x1c,0x1c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0b,0x0e,0x0b,0x0d,0x0a,0x09,0x08,0x10,0x0d,0x11,0x0a,0x1b,0x15,0x0e,0x0d,0x16,0x13,0x14,0x12,0x18,0x14,0x16,0x13,0x0f,0x0b,0x11,0x0e,0x16,0x12,0x12,0x0f,0x12,0x0e,0x15,0x10,0x15,0x10,0x1a,0x14,0x12,0x0e,0x12,0x0e,0x1d,0x15,0x13,0x00,0x18,0x18,0x18,0x0b,0x00,0x00,0x0e,0x0c,0x11,0x0d, -0x0d,0x0a,0x1a,0x16,0x17,0x15,0x11,0x0e,0x11,0x0e,0x0d,0x0a,0x12,0x0e,0x0d,0x0a,0x14,0x10,0x10,0x0e,0x17,0x14,0x0d,0x0e,0x12,0x12,0x13,0x0b,0x05,0x0b,0x10,0x0a,0x18,0x18,0x06,0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c,0x10,0x11,0x07,0x05,0x07,0x05,0x11,0x0e,0x12, -0x0f,0x0d,0x0b,0x0d,0x0c,0x0e,0x0e,0x0a,0x0a,0x1b,0x14,0x1c,0x15,0x18,0x14,0x16,0x10,0x16,0x10,0x16,0x10,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x0b,0x06,0x12,0x0e,0x15,0x10,0x20,0x18,0x0d,0x0e,0x11,0x11,0x13,0x15,0x12,0x0e,0x17,0x13,0x0d,0x0a,0x0d,0x0c,0x0f,0x0c,0x16,0x11,0x0f,0x0d,0x0d,0x0e,0x0d,0x0e,0x0c, -0x0a,0x0b,0x09,0x0b,0x09,0x0c,0x0d,0x07,0x10,0x08,0x17,0x10,0x08,0x0e,0x0f,0x0b,0x12,0x0d,0x09,0x08,0x0e,0x0e,0x0e,0x0b,0x06,0x12,0x0e,0x09,0x08,0x0f,0x0b,0x11,0x09,0x13,0x0e,0x0f,0x0b,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x12,0x0a,0x0d,0x15,0x0c,0x0d,0x16,0x06,0x1c,0x15,0x16,0x1c,0x15,0x16,0x16,0x15,0x15, -0x16,0x0c,0x0b,0x0f,0x11,0x16,0x11,0x17,0x06,0x0b,0x0e,0x15,0x19,0x11,0x19,0x0f,0x0f,0x13,0x11,0x1b,0x16,0x0c,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x14,0x14,0x18,0x0c,0x0c,0x18,0x12,0x0c,0x0c,0x12,0x10,0x08,0x08,0x10,0x0e,0x0e,0x0e,0x0e,0x12,0x08,0x08,0x14,0x12,0x08,0x08,0x14,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x0c,0x0a,0x0e,0x0d,0x12,0x0e,0x0e,0x15,0x10,0x12,0x12,0x14,0x14,0x0e,0x0c,0x18,0x13,0x19,0x15,0x10,0x0e,0x08,0x08,0x0e,0x10,0x0a,0x0e,0x0c,0x0e,0x0c,0x12,0x13,0x0a,0x0e,0x0a,0x05, -0x09,0x0d,0x0d,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x0b,0x24,0x30,0x08,0x0a,0x03,0x06,0x09,0x0a,0x08,0x0c,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x20,0x0d,0x12,0x16,0x16,0x0f,0x0b,0x0e,0x11,0x12,0x0c,0x08,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x12,0x0e,0x0e,0x0d,0x12,0x0f,0x14,0x0b, -0x0d,0x0f,0x08,0x0e,0x08,0x08,0x06,0x15,0x0e,0x0e,0x0d,0x0d,0x0e,0x16,0x16,0x17,0x18,0x18,0x0d,0x0c,0x07,0x0c,0x0b,0x0f,0x0b,0x10,0x06,0x0e,0x0e,0x15,0x15,0x0f,0x0d,0x0e,0x0d,0x0d,0x0b,0x0d,0x0b,0x0c,0x07,0x08,0x06,0x05,0x09,0x0e,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x00, -0x07,0x07,0x07,0x06,0x06,0x28,0x18,0x15,0x19,0x07,0x07,0x08,0x0a,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x16,0x08,0x08,0x16,0x06,0x0c,0x0c,0x20,0x18,0x18,0x20,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0a,0x0a,0x00,0x00,0x09,0x12,0x0e,0x11,0x0e,0x1e,0x19,0x11,0x0d,0x11,0x0d,0x20,0x18,0x12,0x0e,0x09,0x08, -0x0f,0x00,0x10,0x0d,0x08,0x07,0x04,0x0c,0x08,0x08,0x06,0x05,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x0d,0x0a,0x0e,0x0e,0x0d,0x17,0x13,0x13,0x13,0x14,0x17,0x0f,0x10,0x0e,0x09,0x16,0x1b,0x0b,0x1c,0x0c,0x14,0x16,0x16,0x16,0x0a,0x12,0x18,0x12,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x0d,0x00,0x0e,0x0e,0x0e,0x14,0x0c,0x0c,0x16,0x08,0x08,0x16,0x08,0x08,0x16,0x0c,0x0c,0x00,0x0a,0x14,0x08,0x08,0x18,0x0c,0x0c,0x12,0x0c,0x0c,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x24,0x24,0x15,0x00,0x00,0x15,0x15,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x10,0x0f,0x0f,0x10,0x15,0x0f,0x0f,0x13,0x17,0x10,0x0f,0x1a,0x0f,0x0f,0x16,0x0f,0x10,0x13,0x0f,0x12,0x14,0x16,0x0f,0x12,0x10,0x11,0x0f,0x11,0x0f,0x10,0x10,0x0f,0x13,0x0e,0x10,0x13,0x0f,0x0f,0x0e,0x13,0x0f,0x10,0x10,0x11,0x0b,0x0d,0x0f,0x13,0x13,0x0d,0x00,0x00,0x1b,0x36,0x11,0x00,0x03,0x07,0x08,0x0b, -0x10,0x0f,0x16,0x16,0x06,0x08,0x08,0x0b,0x12,0x06,0x0b,0x06,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x06,0x12,0x12,0x12,0x0c,0x1a,0x11,0x0f,0x11,0x13,0x0e,0x0d,0x13,0x13,0x07,0x0a,0x10,0x0d,0x18,0x14,0x14,0x0f,0x14,0x10,0x0e,0x0e,0x13,0x11,0x19,0x10,0x0f,0x0f,0x08,0x0a,0x08,0x12,0x0b,0x07,0x0e,0x10, -0x0c,0x10,0x0e,0x08,0x10,0x0f,0x07,0x07,0x0d,0x07,0x17,0x0f,0x10,0x10,0x10,0x09,0x0b,0x09,0x0f,0x0d,0x14,0x0c,0x0d,0x0c,0x08,0x06,0x08,0x12,0x11,0x11,0x11,0x0e,0x14,0x14,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x0f,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0f,0x0f, -0x0c,0x0b,0x0c,0x0f,0x0b,0x18,0x18,0x15,0x08,0x0b,0x13,0x17,0x14,0x16,0x12,0x13,0x13,0x0f,0x10,0x0e,0x11,0x14,0x0f,0x0b,0x0c,0x14,0x16,0x10,0x0c,0x07,0x08,0x12,0x12,0x0f,0x13,0x11,0x0e,0x0e,0x14,0x11,0x11,0x14,0x19,0x19,0x0e,0x1b,0x0a,0x0a,0x06,0x06,0x12,0x10,0x0d,0x0f,0x05,0x0f,0x09,0x09,0x0f,0x0f,0x0a,0x06,0x06,0x0a, -0x21,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x13,0x13,0x13,0x07,0x0a,0x09,0x08,0x08,0x05,0x08,0x06,0x09,0x05,0x0a,0x0d,0x07,0x0e,0x0b,0x0f,0x0c,0x06,0x13,0x0f,0x0f,0x0d,0x0f,0x10,0x12,0x12,0x09,0x0a,0x0a,0x19,0x18,0x1a,0x0d,0x13,0x10,0x07,0x0e,0x0b,0x11,0x0c,0x11,0x0c,0x10,0x0b,0x06,0x11,0x0e,0x11, -0x0e,0x13,0x12,0x13,0x0e,0x0e,0x0e,0x0e,0x0d,0x07,0x0d,0x08,0x0d,0x09,0x14,0x0f,0x14,0x0f,0x14,0x10,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x0e,0x0c,0x13,0x0f,0x13,0x0f,0x0f,0x0c,0x0f,0x0c,0x0d,0x14,0x14,0x11,0x10,0x0c,0x10,0x0d,0x13,0x0b,0x0d,0x0b,0x1e,0x11,0x0d,0x10,0x06,0x0a,0x16,0x09,0x10,0x0a,0x0a,0x10,0x0a,0x11, -0x0e,0x11,0x0c,0x11,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x07,0x10,0x0d,0x0d,0x0d,0x07,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x14,0x0f,0x0d,0x07,0x11, -0x0e,0x17,0x16,0x14,0x10,0x06,0x19,0x14,0x19,0x14,0x19,0x14,0x0f,0x0d,0x06,0x0b,0x0f,0x10,0x19,0x19,0x19,0x18,0x0b,0x0b,0x06,0x07,0x07,0x11,0x0f,0x15,0x0a,0x16,0x12,0x16,0x07,0x11,0x0f,0x0e,0x0f,0x13,0x07,0x10,0x11,0x18,0x14,0x0e,0x14,0x13,0x0f,0x0e,0x0e,0x0f,0x10,0x15,0x14,0x07,0x0f,0x11,0x0c,0x10,0x07,0x0f,0x0f,0x0e, -0x0c,0x10,0x10,0x07,0x0e,0x0d,0x10,0x0e,0x0c,0x10,0x10,0x0c,0x0f,0x0f,0x14,0x16,0x07,0x0f,0x10,0x0f,0x16,0x0e,0x13,0x0d,0x11,0x0e,0x07,0x1a,0x1b,0x14,0x10,0x0f,0x13,0x11,0x0f,0x0f,0x0d,0x13,0x0e,0x17,0x0f,0x14,0x14,0x10,0x12,0x18,0x13,0x14,0x13,0x0f,0x11,0x0e,0x0f,0x14,0x10,0x14,0x12,0x1a,0x1a,0x13,0x15,0x10,0x11,0x1c, -0x10,0x0e,0x10,0x0e,0x0a,0x0f,0x0e,0x14,0x0c,0x10,0x10,0x0d,0x0e,0x13,0x10,0x10,0x10,0x10,0x0c,0x0b,0x0d,0x13,0x0c,0x10,0x0f,0x16,0x16,0x10,0x13,0x0e,0x0c,0x16,0x0e,0x0e,0x10,0x0a,0x0c,0x0b,0x07,0x15,0x16,0x0f,0x0d,0x0d,0x10,0x0d,0x0b,0x1b,0x1e,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0e,0x0b,0x0f,0x15,0x10,0x13,0x10,0x08,0x09, -0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x08,0x0d,0x08,0x0d,0x08,0x08,0x08,0x0d,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14, -0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x13,0x0f,0x13,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0e,0x0e,0x14,0x10,0x07,0x0a,0x07,0x07,0x0e,0x0b,0x19,0x15,0x11,0x0e,0x10,0x0d,0x14,0x10,0x0f,0x0d,0x0f, -0x0d,0x11,0x0d,0x12,0x0f,0x12,0x0f,0x13,0x0e,0x14,0x10,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0f,0x10,0x11,0x0c,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x08,0x13,0x10,0x13, -0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x18,0x17,0x18,0x17,0x18,0x17,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x10,0x0f,0x10,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e, -0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x11,0x0d,0x11,0x0d,0x19,0x14,0x19,0x14,0x10,0x0c,0x10,0x0c,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x09,0x14,0x0d,0x0e,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14, -0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0f,0x0f,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x0c,0x0c,0x10,0x10,0x07,0x07,0x10,0x10,0x0f,0x0f,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19, -0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x13,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x10,0x10,0x10, -0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x11,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x16,0x14,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11,0x0f,0x10,0x10,0x10,0x11,0x11,0x0d,0x13,0x14,0x0f,0x10,0x10,0x0e,0x0f,0x0d,0x13,0x11,0x18,0x08,0x08, -0x10,0x0d,0x07,0x0d,0x18,0x14,0x10,0x14,0x1a,0x15,0x10,0x10,0x10,0x0e,0x0b,0x0e,0x08,0x09,0x0e,0x09,0x0e,0x14,0x13,0x0f,0x0e,0x0f,0x0c,0x10,0x10,0x0c,0x0b,0x0f,0x0f,0x0a,0x0b,0x0f,0x06,0x0a,0x0c,0x08,0x21,0x1f,0x1c,0x17,0x13,0x0e,0x1d,0x1a,0x16,0x11,0x0e,0x07,0x07,0x14,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, -0x0f,0x0e,0x11,0x0e,0x11,0x0e,0x17,0x16,0x13,0x10,0x13,0x10,0x10,0x0d,0x14,0x10,0x14,0x10,0x10,0x0c,0x07,0x21,0x1f,0x1c,0x13,0x10,0x1b,0x13,0x14,0x0f,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14,0x10,0x10,0x09,0x10,0x09,0x13,0x0f,0x13,0x0f,0x0e,0x0c,0x13,0x0f,0x14,0x10,0x0f,0x0f,0x0c,0x11, -0x0e,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x0d,0x10,0x0e,0x0f,0x0f,0x10,0x0e,0x10,0x10,0x10,0x0d,0x0d,0x10,0x10,0x0e,0x11,0x0b,0x0b,0x0e,0x0f,0x07,0x10,0x10,0x0e,0x0d,0x0c,0x0f,0x0f,0x0f,0x07,0x08,0x09,0x08,0x0a,0x07,0x10,0x17,0x17,0x17,0x0f,0x0f,0x10,0x10,0x13,0x13,0x11,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, -0x0c,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x10,0x10,0x0f,0x0d,0x14,0x0d,0x0b,0x0c,0x0e,0x0c,0x0c,0x0a,0x0a,0x0a,0x0d,0x11,0x0d,0x0f,0x0e,0x0f,0x07,0x0d,0x0a,0x10,0x0a,0x0a,0x19,0x1a,0x1a,0x11,0x0d,0x13,0x15,0x10,0x0f,0x0d,0x0d,0x0f,0x10,0x0f,0x12,0x0f,0x11,0x16,0x0f,0x13,0x10,0x10,0x0c,0x0d,0x0c,0x10,0x0e,0x11,0x0d,0x18, -0x17,0x10,0x0e,0x11,0x0e,0x10,0x0c,0x10,0x0d,0x12,0x10,0x0f,0x0b,0x0f,0x10,0x0c,0x07,0x14,0x0d,0x0d,0x17,0x12,0x11,0x10,0x19,0x13,0x12,0x0d,0x18,0x13,0x14,0x0f,0x19,0x14,0x0f,0x0c,0x15,0x15,0x14,0x10,0x13,0x10,0x13,0x10,0x23,0x1e,0x16,0x12,0x1e,0x18,0x17,0x12,0x10,0x0c,0x0e,0x0b,0x0b,0x00,0x00,0x1b,0x1a,0x10,0x0e,0x0f, -0x10,0x0f,0x0e,0x0f,0x0c,0x10,0x0d,0x13,0x10,0x17,0x12,0x1b,0x17,0x13,0x0f,0x11,0x0c,0x0e,0x0b,0x18,0x12,0x13,0x10,0x17,0x11,0x17,0x11,0x07,0x17,0x14,0x10,0x0e,0x13,0x10,0x12,0x0f,0x11,0x0e,0x11,0x0e,0x17,0x16,0x0e,0x0e,0x13,0x0e,0x13,0x0e,0x17,0x14,0x0f,0x0c,0x0e,0x0c,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x11,0x0c, -0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x12,0x0f,0x15,0x13,0x0f,0x10,0x17,0x17,0x16,0x13,0x0f,0x0d,0x18,0x15,0x1b,0x17,0x13,0x0e,0x12,0x10,0x10,0x0f,0x0f,0x0e,0x10,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x10,0x09,0x09,0x04,0x06,0x06,0x06,0x08,0x0b,0x08,0x06,0x0a,0x06,0x06,0x06,0x09,0x09, -0x06,0x06,0x10,0x10,0x10,0x10,0x09,0x08,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x04,0x07,0x08,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x09,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f, -0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x11,0x08,0x11,0x09,0x10,0x10,0x09,0x09, -0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x10,0x0d,0x12,0x16,0x0d,0x0c,0x0f,0x0f,0x0b,0x0b,0x07,0x08,0x0d,0x0b,0x13,0x10,0x10,0x0d,0x11,0x11,0x11,0x19,0x0e,0x10,0x10,0x0c,0x0c,0x0c,0x0b,0x0e,0x0f,0x13,0x0f,0x0d,0x14,0x0c,0x0b, -0x0b,0x0e,0x0a,0x0d,0x10,0x0c,0x10,0x0f,0x0a,0x0d,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x05,0x06,0x0a,0x08,0x0e,0x0c,0x0c,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x0e,0x09,0x09,0x09,0x0d,0x09,0x09,0x08,0x08,0x07,0x07,0x09,0x04,0x08,0x0d,0x09,0x09,0x07,0x09,0x09,0x09,0x05,0x09,0x09,0x0d,0x08,0x09,0x09,0x08,0x09,0x0b,0x08,0x04,0x06, -0x09,0x08,0x09,0x08,0x09,0x0b,0x08,0x10,0x04,0x09,0x0f,0x18,0x11,0x0f,0x0f,0x17,0x11,0x17,0x14,0x0e,0x10,0x0e,0x0c,0x1e,0x0c,0x10,0x18,0x19,0x19,0x11,0x11,0x11,0x0c,0x0d,0x0e,0x0b,0x0c,0x0e,0x05,0x00,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x0d,0x0a,0x10,0x10,0x08,0x17,0x0f,0x10,0x09,0x09,0x0d,0x09,0x0c,0x10,0x0c,0x10,0x18, -0x11,0x09,0x07,0x10,0x0e,0x10,0x10,0x10,0x08,0x10,0x0d,0x07,0x17,0x0f,0x10,0x09,0x0b,0x0c,0x0d,0x0c,0x0c,0x0e,0x10,0x10,0x0e,0x0c,0x0c,0x14,0x07,0x0d,0x07,0x0f,0x0c,0x09,0x07,0x07,0x09,0x07,0x05,0x04,0x09,0x09,0x04,0x05,0x05,0x05,0x04,0x05,0x04,0x06,0x0d,0x0d,0x09,0x09,0x0a,0x09,0x0a,0x06,0x04,0x05,0x09,0x09,0x09,0x09, -0x08,0x07,0x07,0x08,0x07,0x09,0x00,0x00,0x00,0x00,0x06,0x09,0x08,0x09,0x07,0x08,0x0f,0x0f,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x0d,0x08,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x24,0x24,0x24,0x24, -0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x05,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x09,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x15,0x11,0x13,0x10,0x14,0x11,0x19,0x14,0x0f,0x0a,0x0e,0x12,0x0e,0x16,0x13,0x00,0x00,0x00, -0x00,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x17,0x17,0x1b,0x0b,0x07,0x0e,0x10,0x0b,0x0e,0x0e,0x10,0x10,0x0e,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x09,0x10,0x09,0x14,0x12,0x0e,0x09,0x17,0x0e,0x17,0x07,0x09,0x10,0x10,0x11,0x11,0x11,0x10,0x10,0x10,0x17,0x07,0x10,0x07, -0x0e,0x0b,0x07,0x07,0x0e,0x07,0x14,0x07,0x19,0x0e,0x19,0x19,0x10,0x10,0x10,0x0e,0x0e,0x0b,0x0b,0x20,0x20,0x24,0x24,0x17,0x17,0x0e,0x0e,0x05,0x1b,0x14,0x17,0x12,0x10,0x12,0x0e,0x0e,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x11,0x00,0x11,0x11,0x11,0x09,0x0e,0x0e,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x0b, -0x19,0x0e,0x19,0x0e,0x14,0x17,0x09,0x0e,0x0e,0x0b,0x07,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x10,0x0e,0x12,0x11,0x19,0x09,0x0e,0x0b,0x12,0x0e,0x09,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x07,0x10,0x0b,0x1b,0x0e,0x0e,0x11,0x11,0x1b,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x14,0x11,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07, -0x0b,0x0b,0x0e,0x0e,0x14,0x17,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x0e,0x10, -0x10,0x10,0x1b,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x14,0x14,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x12,0x09,0x0f,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x17, -0x19,0x14,0x17,0x09,0x0e,0x14,0x17,0x14,0x17,0x00,0x00,0x00,0x00,0x00,0x1e,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0b,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x17,0x24,0x1b,0x0e,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x19,0x19,0x0a,0x10,0x10,0x10,0x21,0x16, -0x0e,0x29,0x1d,0x09,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0b,0x0b,0x14,0x12,0x12,0x0e,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x22,0x29,0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x12,0x10, -0x0e,0x0e,0x0b,0x20,0x17,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x09,0x0b,0x0b,0x20,0x17,0x11,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0a,0x0f,0x13,0x11,0x0e,0x0e,0x0a, -0x07,0x14,0x10,0x10,0x09,0x0f,0x0d,0x0d,0x0c,0x0d,0x07,0x0e,0x0b,0x11,0x0d,0x10,0x0c,0x0f,0x0c,0x12,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0c,0x0d,0x0d,0x08,0x0e,0x0f,0x10,0x0e,0x09,0x14,0x10,0x11,0x0e,0x11,0x0d,0x0f,0x0e,0x0b,0x13,0x0a,0x0b,0x0b,0x0d,0x10,0x10,0x0e,0x1b,0x0e,0x1b,0x09,0x07,0x05,0x0f, -0x06,0x03,0x00,0x04,0x06,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x0b,0x14,0x10,0x19,0x14,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x17,0x0d,0x17,0x0d,0x17,0x11,0x12,0x13,0x13,0x15,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x14,0x10,0x1d, -0x16,0x0d,0x0d,0x08,0x08,0x08,0x0a,0x06,0x0f,0x06,0x06,0x17,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x11,0x0f,0x0c,0x0d,0x12,0x07,0x09,0x12,0x12,0x07,0x0f,0x0f,0x0f,0x13,0x12,0x07,0x0b,0x12,0x10,0x11,0x11,0x0f,0x10,0x12,0x0f,0x15,0x14,0x0e,0x0e,0x0e, -0x06,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x11,0x0d,0x12,0x0f,0x0f,0x13,0x0f,0x14,0x0f,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x0f,0x0c,0x0d,0x12,0x08,0x0a,0x12,0x08,0x0f,0x0f,0x0f,0x12,0x0b,0x12,0x11,0x11,0x10,0x12,0x0f,0x15,0x14,0x07,0x0f,0x0f,0x11,0x12,0x20,0x00,0x11,0x0f,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x00,0x14,0x11,0x12,0x13,0x0f,0x12,0x14,0x15,0x0d,0x11,0x14,0x14,0x12,0x14,0x16,0x15,0x12,0x0f,0x0f,0x14,0x13,0x0f,0x13,0x12,0x12,0x12,0x13,0x14,0x10,0x11,0x12,0x12,0x15,0x11,0x11,0x11, -0x12,0x16,0x0d,0x10,0x10,0x18,0x0f,0x0f,0x15,0x18,0x10,0x0f,0x1c,0x0f,0x0f,0x14,0x0f,0x0f,0x14,0x0f,0x14,0x16,0x18,0x0f,0x15,0x0f,0x12,0x0f,0x11,0x0f,0x11,0x0f,0x10,0x15,0x0f,0x11,0x12,0x0f,0x0f,0x10,0x1a,0x0f,0x0f,0x10,0x10,0x0b,0x09,0x0f,0x0f,0x0f,0x0e,0x0f,0x18,0x0f,0x18,0x0d,0x0f,0x18,0x12,0x0f,0x18,0x14,0x14,0x18, -0x10,0x0f,0x18,0x18,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x10,0x0f,0x0f,0x18,0x10,0x0f,0x0f,0x0f,0x18,0x15,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x15,0x13,0x12,0x0f,0x15,0x12,0x13,0x0f,0x12,0x13,0x14,0x13,0x10,0x13,0x12,0x14,0x12,0x15,0x13,0x13,0x14,0x12,0x11,0x13,0x12,0x13,0x15,0x12,0x14,0x14,0x03,0x03,0x04,0x05,0x04, -0x07,0x09,0x17,0x0f,0x11,0x10,0x0f,0x11,0x0f,0x0f,0x11,0x10,0x0f,0x08,0x17,0x10,0x0f,0x0f,0x0f,0x10,0x0e,0x10,0x07,0x10,0x0e,0x0f,0x0b,0x17,0x0f,0x0f,0x0f,0x10,0x16,0x0f,0x10,0x0b,0x16,0x10,0x10,0x13,0x12,0x06,0x08,0x1f,0x1e,0x1e,0x1f,0x26,0x0f,0x0f,0x07,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0d,0x0e,0x10,0x0c,0x0b,0x0f,0x11,0x07,0x08,0x0d,0x0b,0x14,0x11,0x11,0x0d,0x11,0x0d,0x0b,0x0c,0x10,0x0e,0x16,0x0e,0x0d,0x0d,0x13, -0x15,0x0b,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0e,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x0f,0x08,0x0d,0x0b,0x0b,0x0b,0x0b,0x11,0x11, -0x11,0x12,0x11,0x11,0x11,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x13,0x11,0x0e,0x0d,0x0b,0x0e,0x0c,0x0d,0x11,0x11,0x07,0x0d,0x0e,0x14,0x11,0x0c,0x11,0x11,0x0d,0x0c,0x0c,0x0d,0x11,0x0e,0x12,0x11,0x0e,0x0c,0x11,0x07,0x11, -0x0d,0x11,0x07,0x0d,0x0c,0x0f,0x0b,0x0e,0x0b,0x07,0x07,0x08,0x16,0x16,0x10,0x0d,0x0d,0x10,0x0e,0x0d,0x0d,0x0b,0x10,0x0c,0x14,0x0c,0x11,0x11,0x0d,0x0f,0x14,0x11,0x11,0x11,0x0d,0x0e,0x0c,0x0d,0x11,0x0e,0x11,0x0f,0x16,0x16,0x0f,0x13,0x0d,0x0e,0x17,0x0d,0x0b,0x10,0x10,0x11,0x18,0x18,0x12,0x0e,0x0f,0x0b,0x0f,0x0f,0x0f,0x13, -0x0e,0x0e,0x13,0x10,0x10,0x0a,0x11,0x11,0x0f,0x0d,0x0d,0x18,0x14,0x0d,0x0e,0x10,0x10,0x11,0x11,0x13,0x13,0x0a,0x19,0x10,0x0f,0x0f,0x11,0x11,0x0e,0x0e,0x07,0x14,0x13,0x13,0x0d,0x13,0x06,0x06,0x0c,0x0c,0x06,0x06,0x11,0x0b,0x07,0x14,0x13,0x08,0x06,0x06,0x0c,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x12,0x0d,0x08,0x10,0x13,0x10,0x10, -0x0d,0x14,0x0f,0x10,0x09,0x0c,0x0e,0x0b,0x06,0x06,0x0b,0x0e,0x09,0x12,0x12,0x12,0x19,0x14,0x19,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x14,0x17,0x09,0x09,0x0e,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x0e,0x0e,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x19,0x19,0x0e,0x0e,0x19,0x19,0x0e, -0x0e,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x1b,0x14,0x17,0x0e,0x10,0x10,0x12,0x09,0x12,0x14,0x0e,0x0e,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x19,0x09,0x14,0x0e,0x0e,0x07,0x0e,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09, -0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x0e,0x0e,0x14,0x0e,0x0e,0x19,0x0e,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19, -0x0e,0x19,0x0e,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x09,0x12,0x09,0x12,0x09,0x12,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0e,0x09,0x09,0x09,0x09,0x00,0x20,0x17,0x24,0x1b,0x19,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x0e,0x0e,0x0b,0x20,0x17,0x1b, -0x1b,0x19,0x19,0x19,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x20,0x17,0x10,0x12,0x10,0x10,0x10,0x12,0x10,0x10,0x20,0x20,0x17,0x17,0x0b,0x0b,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x10,0x10,0x10,0x10,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x10,0x20,0x20, -0x17,0x17,0x20,0x20,0x17,0x17,0x17,0x17,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x09,0x07,0x00,0x00,0x00,0x17,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x19,0x19,0x19, -0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x14,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x17,0x10,0x17,0x10,0x17,0x10,0x17,0x12,0x12,0x12,0x07,0x07,0x0e,0x0b,0x10,0x11, -0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x0e,0x10,0x10,0x11,0x12,0x10,0x0f,0x12,0x0e,0x12,0x14,0x11,0x14,0x16,0x11,0x15,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x10,0x10,0x12,0x0f,0x11,0x10,0x10,0x10,0x0e,0x0e,0x14,0x12,0x13,0x12,0x12, -0x10,0x10,0x10,0x14,0x15,0x14,0x15,0x19,0x19,0x13,0x19,0x19,0x14,0x18,0x17,0x0f,0x15,0x17,0x15,0x10,0x17,0x14,0x13,0x13,0x10,0x11,0x14,0x15,0x13,0x11,0x13,0x10,0x0e,0x19,0x19,0x19,0x16,0x19,0x19,0x12,0x19,0x19,0x13,0x15,0x15,0x14,0x14,0x14,0x11,0x18,0x15,0x16,0x13,0x13,0x10,0x14,0x13,0x13,0x17,0x14,0x14,0x18,0x0f,0x0e, -0x0f,0x0e,0x11,0x11,0x13,0x14,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x11,0x10,0x10,0x0c,0x0f,0x0f,0x10,0x10,0x15,0x17,0x12,0x12,0x11,0x15,0x11,0x12,0x0e,0x0d,0x10,0x0f,0x0d,0x0d,0x0f,0x0f,0x0d,0x0d,0x11,0x0c,0x0f,0x0d,0x0f,0x15,0x0f,0x16,0x0e,0x0f,0x0f,0x14,0x08,0x15,0x13,0x13, -0x12,0x0f,0x14,0x10,0x15,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0d,0x0c,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x11,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x0d,0x14,0x14,0x0d,0x0b,0x0d,0x0e,0x0f,0x0d, -0x17,0x16,0x17,0x0c,0x1b,0x0d,0x17,0x17,0x17,0x16,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0e,0x0c,0x0b,0x1c,0x0b,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x25,0x17,0x17,0x0c,0x07,0x0c,0x06,0x0c,0x06,0x06,0x06,0x0d,0x10,0x10,0x0f,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x06,0x0b,0x17,0x06,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x20,0x20,0x12,0x20,0x20,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x09,0x13,0x0f,0x13,0x0c,0x1e,0x18,0x10,0x0f,0x19,0x15,0x17,0x14,0x1c,0x16, -0x19,0x15,0x11,0x0d,0x14,0x10,0x19,0x14,0x14,0x10,0x14,0x10,0x17,0x12,0x18,0x12,0x1e,0x17,0x14,0x10,0x14,0x10,0x21,0x18,0x15,0x00,0x1b,0x1b,0x1b,0x0d,0x00,0x00,0x10,0x0e,0x13,0x0f,0x0e,0x0b,0x1d,0x18,0x1a,0x17,0x13,0x10,0x13,0x10,0x0e,0x0b,0x14,0x10,0x0e,0x0b,0x16,0x12,0x12,0x0f,0x1a,0x16,0x0f,0x10,0x14,0x14,0x16,0x0c, -0x05,0x0c,0x12,0x0c,0x1b,0x1b,0x07,0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, -0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x12,0x14,0x08,0x06,0x08,0x06,0x13,0x0f,0x14,0x11,0x0f,0x0d,0x0e,0x0d,0x10,0x0f,0x0b,0x0b,0x1e,0x16,0x1f,0x18,0x1b,0x17,0x18,0x12,0x18,0x12,0x18,0x12,0x11,0x0c,0x10,0x0d,0x10,0x0d,0x10, -0x0d,0x0f,0x08,0x0d,0x07,0x14,0x10,0x17,0x12,0x24,0x1b,0x0f,0x10,0x13,0x13,0x16,0x17,0x14,0x10,0x1a,0x15,0x0f,0x0b,0x0f,0x0d,0x11,0x0d,0x19,0x14,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0d,0x0b,0x0d,0x0a,0x0d,0x0a,0x0e,0x0e,0x08,0x12,0x09,0x1a,0x12,0x09,0x10,0x11,0x0c,0x14,0x0f,0x0a,0x09,0x10,0x10,0x10,0x0d,0x07,0x15,0x10,0x0a, -0x09,0x11,0x0c,0x13,0x0a,0x15,0x10,0x11,0x0c,0x13,0x10,0x10,0x0d,0x14,0x0f,0x10,0x09,0x0e,0x0b,0x14,0x0b,0x0e,0x17,0x0d,0x0f,0x18,0x07,0x1f,0x18,0x18,0x20,0x18,0x19,0x19,0x18,0x18,0x19,0x0e,0x0d,0x11,0x13,0x18,0x13,0x19,0x07,0x0c,0x10,0x17,0x1c,0x13,0x1c,0x11,0x11,0x15,0x13,0x1f,0x19,0x0e,0x19,0x09,0x19,0x09,0x10,0x10, -0x10,0x10,0x17,0x17,0x17,0x17,0x1b,0x0e,0x0e,0x1b,0x14,0x0e,0x0e,0x14,0x12,0x09,0x09,0x12,0x10,0x10,0x10,0x10,0x14,0x09,0x09,0x17,0x14,0x09,0x09,0x17,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a, -0x0e,0x0b,0x0f,0x0e,0x14,0x10,0x10,0x18,0x12,0x14,0x14,0x16,0x16,0x10,0x0d,0x1b,0x16,0x1c,0x17,0x13,0x10,0x08,0x08,0x10,0x11,0x0b,0x10,0x0e,0x10,0x0d,0x14,0x16,0x0b,0x10,0x0c,0x06,0x0a,0x0e,0x0f,0x06,0x06,0x05,0x06,0x0a,0x0a,0x0a,0x0c,0x28,0x36,0x09,0x0b,0x04,0x07,0x0a,0x0c,0x09,0x0d,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x24,0x0f,0x15,0x19,0x18,0x11,0x0c,0x0f,0x13,0x14,0x0d,0x08,0x12,0x0e,0x12,0x0f,0x12,0x0e,0x0f,0x14,0x10,0x10,0x0e,0x14,0x11,0x16,0x0c,0x0e,0x11,0x08,0x10,0x09,0x09,0x07,0x18,0x10,0x0f,0x0e,0x0e,0x10,0x19,0x19,0x19,0x1b,0x1b,0x0f,0x0d,0x08,0x0e,0x0c,0x10,0x0c,0x12,0x07,0x0f, -0x10,0x17,0x17,0x11,0x0f,0x10,0x0f,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x09,0x07,0x06,0x0a,0x10,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x2d,0x1b,0x18,0x1c,0x08,0x08,0x09,0x0b,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x19,0x09, -0x09,0x19,0x07,0x0e,0x0e,0x24,0x1b,0x1b,0x24,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x0b,0x0b,0x00,0x00,0x0a,0x14,0x10,0x13,0x10,0x22,0x1c,0x13,0x0f,0x13,0x0f,0x24,0x1b,0x14,0x10,0x0a,0x09,0x11,0x00,0x12,0x0f,0x09,0x08,0x04,0x0d,0x09,0x09,0x07,0x05,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0e,0x0c,0x10,0x0f,0x0f,0x1a, -0x16,0x16,0x15,0x16,0x19,0x11,0x13,0x10,0x0b,0x19,0x1e,0x0c,0x1f,0x0e,0x17,0x19,0x19,0x19,0x0b,0x14,0x1b,0x14,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x10,0x10,0x10,0x17,0x0e,0x0e,0x19,0x09,0x09,0x19,0x09,0x09,0x19,0x0d,0x0d,0x00,0x0b,0x17,0x09,0x09,0x1b,0x0e,0x0e,0x14,0x0e, -0x0e,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x29,0x29,0x18,0x00,0x00,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x11,0x11,0x12,0x18,0x11,0x11,0x16,0x1a,0x12,0x11,0x1d,0x11,0x11,0x19,0x11,0x12,0x15,0x11,0x15,0x17,0x19,0x11,0x15, -0x12,0x13,0x11,0x13,0x11,0x12,0x13,0x11,0x15,0x10,0x12,0x15,0x11,0x11,0x0f,0x15,0x11,0x12,0x12,0x13,0x0c,0x0e,0x11,0x15,0x15,0x0f,0x00,0x00,0x1d,0x3a,0x13,0x00,0x03,0x08,0x08,0x0b,0x11,0x10,0x18,0x17,0x07,0x09,0x09,0x0c,0x14,0x06,0x0c,0x06,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x06,0x14,0x14,0x14, -0x0d,0x1c,0x13,0x11,0x12,0x14,0x0f,0x0e,0x14,0x15,0x08,0x0a,0x11,0x0e,0x1a,0x16,0x16,0x10,0x16,0x11,0x0f,0x0f,0x14,0x12,0x1b,0x11,0x10,0x11,0x09,0x0b,0x09,0x14,0x0c,0x08,0x0f,0x11,0x0d,0x11,0x0f,0x09,0x11,0x10,0x07,0x07,0x0e,0x07,0x19,0x10,0x11,0x11,0x11,0x0a,0x0c,0x0a,0x10,0x0e,0x15,0x0d,0x0e,0x0d,0x09,0x07,0x09,0x14, -0x13,0x13,0x12,0x0f,0x16,0x16,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x10,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x10,0x0d,0x0c,0x0d,0x10,0x0c,0x1a,0x1a,0x16,0x08,0x0c,0x14,0x19,0x16,0x18,0x14,0x14,0x14,0x10,0x11,0x10,0x12,0x16,0x10,0x0b,0x0c,0x16,0x18,0x11, -0x0d,0x08,0x08,0x14,0x13,0x10,0x14,0x13,0x0f,0x0f,0x15,0x13,0x13,0x16,0x1b,0x1b,0x0f,0x1d,0x0b,0x0b,0x07,0x07,0x14,0x11,0x0e,0x10,0x05,0x10,0x09,0x09,0x10,0x10,0x0b,0x06,0x07,0x0b,0x23,0x13,0x0f,0x13,0x0f,0x0f,0x08,0x08,0x08,0x08,0x16,0x16,0x16,0x14,0x14,0x14,0x07,0x0b,0x0a,0x09,0x09,0x06,0x08,0x06,0x09,0x05,0x0b,0x0e, -0x08,0x0f,0x0c,0x11,0x0d,0x07,0x14,0x10,0x10,0x0e,0x10,0x11,0x14,0x14,0x0a,0x0b,0x0b,0x1b,0x1a,0x1c,0x0e,0x14,0x11,0x08,0x0f,0x0c,0x12,0x0d,0x12,0x0d,0x11,0x0c,0x06,0x13,0x0f,0x13,0x0f,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0e,0x07,0x0e,0x09,0x0e,0x09,0x16,0x10,0x16,0x10,0x16,0x11,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0a, -0x0f,0x0d,0x14,0x10,0x14,0x10,0x11,0x0d,0x11,0x0d,0x0e,0x16,0x16,0x12,0x11,0x0d,0x11,0x0e,0x14,0x0c,0x0e,0x0b,0x20,0x12,0x0e,0x12,0x07,0x0b,0x17,0x09,0x12,0x0a,0x0a,0x12,0x0a,0x13,0x0f,0x12,0x0d,0x12,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x11,0x14,0x11,0x14,0x11,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x08,0x07,0x08, -0x07,0x0a,0x07,0x11,0x0e,0x0e,0x0e,0x07,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x11,0x0a,0x0f,0x0c,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x1b,0x15,0x10,0x0e,0x07,0x13,0x0f,0x19,0x18,0x16,0x11,0x06,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x10,0x0e,0x07,0x0c,0x10,0x11,0x1b,0x1b,0x1b,0x1a,0x0b,0x0b,0x06,0x08,0x08,0x13, -0x11,0x16,0x0b,0x17,0x13,0x18,0x08,0x13,0x11,0x0f,0x11,0x15,0x08,0x11,0x12,0x1a,0x16,0x0f,0x16,0x15,0x10,0x0f,0x0f,0x10,0x11,0x17,0x16,0x08,0x10,0x12,0x0d,0x11,0x08,0x10,0x10,0x0f,0x0d,0x11,0x11,0x08,0x0f,0x0e,0x11,0x0f,0x0d,0x11,0x11,0x0d,0x10,0x10,0x16,0x17,0x08,0x10,0x11,0x10,0x17,0x0f,0x14,0x0e,0x12,0x0f,0x08,0x1c, -0x1d,0x15,0x11,0x10,0x15,0x13,0x11,0x11,0x0e,0x14,0x0f,0x19,0x10,0x16,0x16,0x11,0x14,0x1a,0x15,0x16,0x15,0x10,0x12,0x0f,0x10,0x15,0x11,0x16,0x13,0x1c,0x1c,0x14,0x17,0x11,0x12,0x1e,0x11,0x0f,0x11,0x0f,0x0b,0x10,0x0f,0x16,0x0d,0x11,0x11,0x0e,0x0f,0x14,0x11,0x11,0x11,0x11,0x0d,0x0c,0x0e,0x14,0x0d,0x11,0x10,0x17,0x18,0x11, -0x15,0x0f,0x0d,0x18,0x0f,0x0f,0x11,0x0b,0x0d,0x0c,0x07,0x17,0x17,0x10,0x0e,0x0e,0x11,0x0e,0x0b,0x1d,0x21,0x12,0x0a,0x0b,0x0b,0x0b,0x07,0x0f,0x0c,0x10,0x16,0x11,0x15,0x11,0x09,0x0a,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x09,0x0e,0x09,0x09,0x09,0x0e,0x0e,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, -0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x14,0x10,0x14,0x10,0x15,0x11,0x15, -0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0a,0x0f,0x0f,0x16,0x11,0x08,0x0a,0x07,0x07,0x0f,0x0c,0x1a,0x17,0x12,0x0f,0x11,0x0e,0x16,0x11,0x10,0x0e,0x10,0x0e,0x12,0x0e,0x13,0x10,0x13,0x10,0x15,0x0f,0x16,0x11,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0f, -0x0f,0x13,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x0d,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x09,0x14,0x11,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x1a, -0x19,0x1a,0x19,0x1a,0x19,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x11,0x10,0x11,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x12,0x0e,0x12, -0x0e,0x1b,0x15,0x1b,0x15,0x11,0x0d,0x11,0x0d,0x10,0x0e,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x10,0x0a,0x15,0x0e,0x0f,0x07,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x18,0x18,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x0d,0x0d,0x11, -0x11,0x08,0x08,0x11,0x11,0x10,0x10,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x15,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x11,0x11,0x10,0x10,0x10,0x10,0x13,0x13,0x12,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x16,0x11,0x11, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x12,0x0e,0x14,0x16,0x11,0x11,0x11,0x0f,0x10,0x0e,0x14,0x12,0x19,0x08,0x08,0x11,0x0e,0x07,0x0e,0x1a,0x16,0x11,0x16,0x1c,0x17,0x11,0x11,0x11,0x0f,0x0c,0x0f,0x09,0x0a,0x0f,0x0a,0x0f,0x16,0x15,0x11,0x0f,0x11,0x0d,0x12, -0x12,0x0d,0x0c,0x10,0x10,0x0b,0x0b,0x10,0x07,0x0b,0x0d,0x08,0x24,0x21,0x1e,0x19,0x15,0x0f,0x1f,0x1c,0x17,0x13,0x0f,0x08,0x07,0x16,0x11,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x18,0x14,0x11,0x14,0x11,0x11,0x0e,0x16,0x11,0x16,0x11,0x12,0x0d,0x07,0x24,0x21,0x1e,0x14,0x11,0x1d,0x14, -0x16,0x10,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x11,0x0a,0x11,0x0a,0x14,0x10,0x14,0x10,0x0f,0x0c,0x15,0x10,0x15,0x11,0x10,0x11,0x0d,0x13,0x0f,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x0e,0x11,0x0f,0x10,0x10,0x11,0x0f,0x11,0x11,0x11,0x0e,0x0e,0x11,0x11,0x0f,0x12,0x0c,0x0c, -0x0f,0x10,0x08,0x11,0x11,0x0f,0x0e,0x0d,0x10,0x10,0x10,0x08,0x08,0x09,0x08,0x0b,0x07,0x11,0x19,0x19,0x19,0x10,0x10,0x11,0x11,0x14,0x15,0x13,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x11,0x11,0x10,0x0e,0x15,0x0e,0x0c,0x0d,0x0f,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x12,0x0e,0x10,0x0f,0x10, -0x07,0x0e,0x0b,0x11,0x0b,0x0b,0x1b,0x1c,0x1c,0x12,0x0e,0x15,0x17,0x11,0x11,0x0e,0x0e,0x10,0x11,0x10,0x14,0x10,0x13,0x17,0x11,0x14,0x11,0x11,0x0d,0x0e,0x0d,0x11,0x0f,0x12,0x0e,0x1a,0x19,0x12,0x0f,0x12,0x0f,0x12,0x0d,0x11,0x0e,0x13,0x11,0x10,0x0c,0x11,0x11,0x0d,0x07,0x16,0x0e,0x0e,0x19,0x14,0x13,0x11,0x1a,0x15,0x13,0x0e, -0x19,0x14,0x15,0x10,0x1b,0x16,0x10,0x0d,0x17,0x16,0x16,0x11,0x15,0x11,0x15,0x11,0x26,0x20,0x18,0x13,0x21,0x1a,0x19,0x14,0x11,0x0d,0x0f,0x0b,0x0c,0x00,0x00,0x1d,0x1c,0x11,0x0f,0x10,0x11,0x10,0x0f,0x10,0x0d,0x11,0x0e,0x15,0x11,0x18,0x13,0x1d,0x18,0x15,0x10,0x12,0x0d,0x0f,0x0c,0x19,0x14,0x14,0x11,0x18,0x12,0x18,0x12,0x08, -0x19,0x16,0x11,0x0f,0x15,0x11,0x13,0x10,0x13,0x0f,0x13,0x0f,0x19,0x18,0x0f,0x0f,0x15,0x0f,0x15,0x0f,0x19,0x16,0x10,0x0d,0x0f,0x0d,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x12,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x13,0x10,0x17,0x15,0x11,0x11,0x19,0x19,0x17,0x15,0x10,0x0e,0x1a,0x17,0x1d,0x19,0x15,0x0f,0x14,0x11,0x11,0x10, -0x10,0x0f,0x11,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x11,0x0a,0x0a,0x05,0x06,0x06,0x06,0x08,0x0c,0x08,0x07,0x0b,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x11,0x11,0x11,0x11,0x0a,0x08,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x05,0x07,0x08,0x06, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0c,0x0a,0x07,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10, -0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10, -0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x12,0x0a,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11, -0x0e,0x13,0x18,0x0e,0x0d,0x10,0x10,0x0c,0x0c,0x07,0x09,0x0e,0x0b,0x14,0x11,0x11,0x0e,0x12,0x12,0x12,0x1b,0x10,0x11,0x11,0x0d,0x0d,0x0d,0x0c,0x0f,0x10,0x15,0x10,0x0e,0x15,0x0d,0x0c,0x0c,0x0f,0x0b,0x0e,0x11,0x0d,0x11,0x10,0x0a,0x0e,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0c,0x05,0x07,0x0a,0x08,0x0f,0x0d,0x0d,0x0c,0x0b,0x0a,0x0a, -0x08,0x0c,0x0f,0x09,0x09,0x0a,0x0e,0x0a,0x0a,0x09,0x09,0x08,0x08,0x0a,0x05,0x09,0x0e,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x06,0x0a,0x09,0x0e,0x08,0x09,0x0a,0x08,0x0a,0x0c,0x09,0x05,0x06,0x0a,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x11,0x05,0x0a,0x10,0x19,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x0f,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x1a,0x1b, -0x1b,0x12,0x13,0x12,0x0d,0x0e,0x0f,0x0c,0x0d,0x0f,0x06,0x00,0x00,0x00,0x00,0x11,0x12,0x12,0x12,0x0e,0x0b,0x11,0x11,0x09,0x19,0x10,0x11,0x0a,0x0a,0x0d,0x0a,0x0d,0x11,0x0d,0x11,0x1a,0x13,0x09,0x08,0x11,0x0f,0x11,0x11,0x11,0x09,0x11,0x0e,0x07,0x19,0x10,0x11,0x0a,0x0c,0x0d,0x0e,0x0d,0x0d,0x0f,0x11,0x11,0x0f,0x0d,0x0d,0x15, -0x07,0x0e,0x07,0x10,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x05,0x05,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0b,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x09,0x08,0x08,0x08,0x09,0x08,0x0a,0x00,0x00,0x00,0x00,0x06,0x09,0x09,0x0a,0x08,0x09,0x10,0x10,0x10,0x10,0x0a,0x00,0x00,0x00,0x00,0x0d,0x09,0x08, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x05,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x09,0x09,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x17,0x12,0x15,0x11,0x16,0x12,0x1b,0x16,0x10,0x0b,0x0f,0x14,0x10,0x18,0x14,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x18,0x18,0x1d,0x0c,0x07,0x0f,0x11,0x0c,0x0f,0x0f,0x11,0x11,0x0f,0x1d, -0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x13,0x0f,0x0f,0x0f,0x0a,0x11,0x0a,0x16,0x13,0x0f,0x0a,0x18,0x0f,0x18,0x07,0x0a,0x11,0x11,0x13,0x13,0x13,0x11,0x11,0x11,0x18,0x07,0x11,0x07,0x0f,0x0c,0x07,0x07,0x0f,0x07,0x16,0x07,0x1b,0x0f,0x1b,0x1b,0x11,0x11,0x11,0x0f,0x0f,0x0c,0x0c,0x22,0x22,0x27,0x27,0x18,0x18,0x0f,0x0f,0x05, -0x1d,0x16,0x18,0x13,0x11,0x13,0x0f,0x0f,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x07,0x13,0x00,0x13,0x13,0x13,0x0a,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x0c,0x1b,0x0f,0x1b,0x0f,0x16,0x18,0x0a,0x0f,0x0f,0x0c,0x07,0x0f,0x11,0x0f,0x11,0x0f,0x11,0x11,0x0f,0x13,0x13,0x1b,0x0a,0x0f,0x0c,0x13,0x0f,0x0a, -0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x07,0x11,0x0b,0x1d,0x0f,0x0f,0x13,0x13,0x1d,0x0f,0x00,0x00,0x00,0x13,0x00,0x13,0x13,0x13,0x13,0x16,0x13,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0f,0x0f,0x16,0x18,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x0f,0x11,0x11,0x11,0x1d,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x16,0x16,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b, -0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x13,0x0a,0x10,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x1b,0x16,0x18,0x0a,0x0f,0x16,0x18,0x16,0x18,0x00,0x00,0x00,0x00,0x00,0x21,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0c,0x00,0x00,0x11,0x00, -0x00,0x00,0x22,0x18,0x27,0x1d,0x0f,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x1b,0x1b,0x0b,0x11,0x11,0x11,0x24,0x18,0x0f,0x2c,0x1f,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0c,0x0c,0x16,0x13,0x13,0x0f,0x00,0x00,0x00,0x0a,0x0a,0x0a, -0x0a,0x24,0x2c,0x00,0x00,0x00,0x00,0x00,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1b,0x0f,0x0f,0x1b,0x0f, -0x0f,0x1b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x0c,0x0c,0x22,0x18,0x13,0x11,0x11,0x00,0x0f,0x0f,0x0f,0x0b,0x11,0x14,0x12,0x0f,0x0f,0x0a,0x07,0x16,0x11,0x11,0x0a,0x10,0x0e,0x0e,0x0d,0x0e,0x07,0x0f,0x0c,0x12,0x0e,0x11,0x0d,0x10,0x0d,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x15,0x0d,0x0e,0x0e,0x08,0x0f,0x10,0x11,0x0f,0x0a,0x16,0x11,0x13,0x10,0x12,0x0e,0x11,0x0f,0x0b,0x14,0x0b,0x0c,0x0c,0x0e,0x11,0x11,0x0f,0x1d,0x0f,0x1d,0x0a,0x07,0x05,0x10,0x06,0x04,0x00,0x04,0x06,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1b,0x0c,0x16,0x11,0x1b,0x15,0x12, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x1b,0x19,0x0e,0x19,0x0e,0x19,0x13,0x14,0x14,0x14,0x16,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x15,0x11,0x1f,0x18,0x0e,0x0e,0x08,0x08,0x08,0x0b,0x06,0x10,0x07,0x07,0x18,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00, -0x06,0x00,0x00,0x06,0x00,0x00,0x12,0x11,0x0d,0x0e,0x14,0x08,0x0a,0x14,0x14,0x08,0x10,0x10,0x10,0x14,0x14,0x08,0x0c,0x14,0x12,0x12,0x12,0x10,0x11,0x13,0x10,0x17,0x15,0x0f,0x0f,0x0f,0x07,0x0b,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x0e,0x14,0x10,0x10,0x14,0x10,0x15,0x10,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x11,0x0d,0x0e,0x14, -0x09,0x0a,0x14,0x09,0x10,0x10,0x10,0x14,0x0c,0x14,0x12,0x12,0x11,0x13,0x10,0x17,0x15,0x08,0x11,0x10,0x12,0x13,0x23,0x00,0x12,0x10,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x08,0x00, -0x16,0x13,0x13,0x14,0x10,0x13,0x16,0x16,0x0e,0x12,0x16,0x15,0x13,0x16,0x18,0x17,0x13,0x10,0x10,0x16,0x14,0x11,0x14,0x14,0x13,0x14,0x14,0x15,0x11,0x12,0x14,0x13,0x16,0x12,0x12,0x13,0x13,0x18,0x0e,0x11,0x11,0x19,0x10,0x10,0x16,0x1a,0x12,0x10,0x1e,0x10,0x10,0x16,0x10,0x10,0x16,0x10,0x16,0x18,0x19,0x10,0x16,0x10,0x13,0x10, -0x12,0x10,0x12,0x10,0x12,0x16,0x10,0x12,0x13,0x10,0x10,0x11,0x1c,0x10,0x10,0x11,0x11,0x0c,0x0a,0x10,0x10,0x10,0x10,0x10,0x1a,0x10,0x1a,0x0e,0x10,0x1a,0x13,0x10,0x1a,0x16,0x16,0x1a,0x11,0x10,0x1a,0x1a,0x10,0x10,0x10,0x10,0x10,0x10,0x1a,0x1a,0x11,0x10,0x10,0x1a,0x11,0x10,0x10,0x10,0x1a,0x17,0x14,0x14,0x14,0x14,0x15,0x12, -0x14,0x17,0x14,0x13,0x10,0x17,0x14,0x14,0x11,0x13,0x14,0x16,0x15,0x11,0x14,0x13,0x15,0x13,0x16,0x14,0x15,0x15,0x14,0x12,0x14,0x14,0x15,0x17,0x13,0x16,0x15,0x03,0x03,0x04,0x06,0x04,0x08,0x0a,0x19,0x10,0x12,0x11,0x10,0x12,0x10,0x10,0x13,0x11,0x10,0x09,0x18,0x11,0x10,0x10,0x10,0x12,0x0f,0x11,0x08,0x11,0x0f,0x10,0x0c,0x19, -0x10,0x10,0x10,0x11,0x18,0x10,0x11,0x0b,0x18,0x11,0x11,0x14,0x14,0x06,0x08,0x21,0x21,0x21,0x21,0x29,0x10,0x10,0x07,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0e,0x0f,0x11,0x0c,0x0c,0x11,0x12,0x07,0x09,0x0e,0x0c,0x16,0x13,0x12,0x0e,0x12,0x0e,0x0c,0x0d,0x11,0x0f,0x17,0x0f,0x0e,0x0e,0x14,0x16,0x0c,0x12,0x0e,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x13,0x12,0x12,0x12,0x12,0x12,0x11, -0x11,0x11,0x11,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0f,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x10,0x09,0x0e,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0f,0x14,0x12,0x0f,0x0e,0x0b,0x10,0x0c,0x0e,0x12,0x12,0x07,0x0e,0x0f,0x16,0x13,0x0d,0x12,0x12,0x0e,0x0d,0x0d,0x0e,0x12,0x0f,0x13,0x12,0x0f,0x0c,0x12,0x07,0x12,0x0e,0x12,0x07,0x0e,0x0c,0x11,0x0c,0x0f,0x0c,0x07,0x07,0x09,0x18,0x18,0x12,0x0e,0x0e,0x12,0x0f,0x0e,0x0e,0x0c,0x11,0x0c,0x15,0x0d,0x13,0x13, -0x0e,0x10,0x16,0x12,0x12,0x12,0x0e,0x0f,0x0d,0x0e,0x12,0x0f,0x12,0x10,0x17,0x18,0x10,0x14,0x0e,0x0f,0x19,0x0e,0x0c,0x11,0x11,0x12,0x1a,0x1a,0x13,0x0f,0x11,0x0c,0x11,0x10,0x10,0x14,0x0f,0x0f,0x14,0x11,0x11,0x0a,0x12,0x12,0x11,0x0e,0x0e,0x1a,0x16,0x0e,0x0f,0x11,0x11,0x12,0x12,0x15,0x14,0x0a,0x1b,0x11,0x10,0x11,0x13,0x13, -0x0f,0x0f,0x08,0x16,0x14,0x14,0x0e,0x14,0x06,0x06,0x0d,0x0d,0x06,0x06,0x12,0x0c,0x08,0x16,0x14,0x08,0x06,0x06,0x0d,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x14,0x0e,0x09,0x12,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0d,0x0f,0x0c,0x06,0x07,0x0b,0x0f,0x0a,0x13,0x13,0x13,0x1b,0x16,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x18, -0x0a,0x0a,0x0f,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x0f,0x0f,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x0f,0x0f,0x1b,0x1b,0x0f,0x0f,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x1d,0x16,0x18,0x0f,0x11,0x11,0x13,0x0a,0x13,0x16,0x0f,0x0f,0x0a,0x0a,0x0a, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1b,0x0a,0x16,0x0f,0x0f,0x07,0x0f,0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d, -0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x16,0x0f,0x0f,0x16,0x0f,0x0f,0x1b,0x0f,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x13,0x13,0x13,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0f,0x0a,0x0a,0x0f,0x0a,0x0a,0x0a,0x0a,0x00,0x22,0x18,0x27,0x1d,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x1d,0x1d,0x1b,0x1b,0x1b,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x22,0x18,0x11,0x13,0x11,0x11,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18, -0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x11,0x11,0x11,0x11,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18,0x22,0x22,0x18,0x18,0x18,0x18,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x0a,0x07,0x00,0x00,0x00,0x18, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x18,0x11,0x18,0x11,0x18,0x11,0x18,0x13,0x13,0x13,0x07,0x07,0x0f,0x0c,0x11,0x12,0x11,0x10,0x10,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x0f,0x11,0x12,0x12,0x13,0x11,0x10,0x13,0x0f, -0x13,0x16,0x13,0x16,0x18,0x12,0x16,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x12,0x11,0x13,0x11,0x13,0x11,0x11,0x11,0x0f,0x0f,0x16,0x14,0x14,0x14,0x14,0x11,0x11,0x11,0x15,0x16,0x16,0x16,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x19,0x19,0x10,0x16,0x19,0x16,0x11,0x19,0x15,0x14,0x14,0x12,0x13,0x16,0x17, -0x14,0x12,0x14,0x11,0x0f,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x16,0x17,0x16,0x15,0x15,0x13,0x1a,0x16,0x18,0x15,0x15,0x11,0x15,0x14,0x14,0x19,0x16,0x15,0x1a,0x10,0x0f,0x10,0x10,0x12,0x12,0x14,0x15,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x10,0x10,0x10,0x0f,0x0f,0x11,0x12,0x11,0x11,0x0d,0x10,0x10, -0x11,0x12,0x16,0x18,0x13,0x13,0x12,0x16,0x13,0x14,0x0f,0x0e,0x11,0x10,0x0e,0x0e,0x10,0x10,0x0e,0x0d,0x12,0x0d,0x10,0x0e,0x10,0x17,0x10,0x18,0x10,0x10,0x11,0x16,0x09,0x17,0x14,0x15,0x13,0x10,0x16,0x11,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d, -0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x1a,0x1a,0x1a,0x1a,0x0e,0x16,0x15,0x0e,0x0c,0x0e,0x0f,0x10,0x0e,0x18,0x18,0x19,0x0d,0x1d,0x0e,0x18,0x18,0x18,0x17,0x10,0x0e,0x0e,0x17,0x11,0x17,0x14,0x0f,0x0d,0x0c,0x1e,0x0c,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e, -0x28,0x18,0x18,0x0c,0x07,0x0d,0x07,0x0d,0x07,0x07,0x07,0x0e,0x11,0x11,0x10,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0c,0x19,0x06,0x1a,0x1a,0x1a,0x11,0x11,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x13,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0e,0x11,0x0e,0x0f,0x0c,0x0a,0x0a,0x14,0x10,0x15,0x0c,0x21,0x1a,0x11,0x10,0x1b,0x17,0x18,0x16,0x1e,0x18,0x1b,0x16,0x13,0x0e,0x15,0x11,0x1b,0x15,0x16,0x12,0x16,0x11,0x19,0x13,0x19,0x13,0x20,0x18,0x16,0x11,0x16,0x11,0x23,0x1a,0x17,0x00,0x1d,0x1d, -0x1d,0x0e,0x00,0x00,0x11,0x0f,0x14,0x10,0x0f,0x0c,0x1f,0x1a,0x1b,0x19,0x15,0x11,0x14,0x11,0x0f,0x0c,0x15,0x11,0x0f,0x0c,0x18,0x13,0x13,0x10,0x1c,0x18,0x10,0x11,0x15,0x15,0x17,0x0d,0x06,0x0d,0x14,0x0d,0x1d,0x1d,0x07,0x00,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, -0x21,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x14, -0x15,0x08,0x06,0x08,0x06,0x15,0x10,0x16,0x12,0x10,0x0e,0x0f,0x0e,0x11,0x11,0x0c,0x0c,0x21,0x18,0x21,0x1a,0x1d,0x19,0x1a,0x13,0x1a,0x13,0x1a,0x13,0x12,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x10,0x09,0x0e,0x07,0x16,0x11,0x19,0x14,0x27,0x1d,0x10,0x11,0x14,0x14,0x17,0x19,0x16,0x11,0x1c,0x17,0x10,0x0c,0x10,0x0e,0x12,0x0e,0x1b, -0x15,0x12,0x0f,0x10,0x11,0x10,0x11,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x0f,0x0f,0x09,0x14,0x0a,0x1c,0x13,0x0a,0x11,0x12,0x0d,0x16,0x10,0x0b,0x0a,0x11,0x11,0x11,0x0e,0x07,0x16,0x11,0x0b,0x0a,0x12,0x0d,0x15,0x0b,0x17,0x11,0x12,0x0d,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0f,0x0c,0x16,0x0c,0x0f,0x19,0x0e,0x10,0x1a,0x08,0x21, -0x1a,0x1a,0x22,0x1a,0x1b,0x1b,0x19,0x1a,0x1b,0x0f,0x0e,0x12,0x14,0x1a,0x14,0x1b,0x07,0x0d,0x11,0x19,0x1e,0x14,0x1e,0x12,0x12,0x17,0x14,0x21,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x18,0x18,0x18,0x18,0x1d,0x0f,0x0f,0x1d,0x16,0x0f,0x0f,0x16,0x13,0x0a,0x0a,0x13,0x11,0x11,0x11,0x11,0x16,0x0a,0x0a,0x18,0x16,0x0a, -0x0a,0x18,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x0f,0x0b,0x10,0x0f,0x16,0x11,0x11,0x19,0x13,0x16,0x16,0x18,0x18,0x11,0x0e,0x1d,0x17,0x1e,0x19,0x14,0x11,0x09,0x09,0x11,0x13,0x0c,0x11,0x0f, -0x11,0x0e,0x15,0x17,0x0c,0x11,0x0c,0x06,0x0b,0x0f,0x10,0x06,0x06,0x05,0x06,0x0b,0x0b,0x0b,0x0d,0x2b,0x3a,0x0a,0x0c,0x04,0x08,0x0b,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x27,0x10,0x16,0x1b,0x1a,0x13,0x0d,0x10,0x15,0x15,0x0e,0x09,0x13,0x0f,0x14,0x10,0x13,0x0f,0x10, -0x16,0x11,0x11,0x0f,0x16,0x12,0x18,0x0d,0x0f,0x12,0x09,0x11,0x0a,0x0a,0x07,0x19,0x11,0x10,0x0f,0x0f,0x11,0x1b,0x1b,0x1b,0x1d,0x1d,0x10,0x0e,0x08,0x0f,0x0d,0x12,0x0d,0x13,0x07,0x10,0x11,0x19,0x19,0x12,0x10,0x11,0x10,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0a,0x07,0x06,0x0a,0x11,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x31,0x1d,0x19,0x1e,0x08,0x08,0x09,0x0b,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x1b,0x0a,0x0a,0x1b,0x08,0x0f,0x0f,0x27,0x1d,0x1d,0x27,0x1b,0x0f,0x0f,0x1b,0x0f,0x0f,0x0c,0x0c,0x00,0x00,0x0a,0x16,0x11,0x15,0x11,0x24,0x1e,0x14,0x10, -0x14,0x10,0x27,0x1d,0x16,0x11,0x0b,0x09,0x12,0x00,0x14,0x10,0x0a,0x09,0x05,0x0e,0x0a,0x0a,0x07,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0f,0x0c,0x11,0x11,0x10,0x1c,0x17,0x17,0x17,0x18,0x1b,0x12,0x14,0x11,0x0b,0x1b,0x21,0x0d,0x21,0x0f,0x18,0x1b,0x1b,0x1b,0x0c,0x16,0x1d,0x16,0x13,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x11,0x11,0x11,0x18,0x0f,0x0f,0x1b,0x0a,0x0a,0x1b,0x0a,0x0a,0x1b,0x0e,0x0e,0x00,0x0c,0x18,0x0a,0x0a,0x1d,0x0f,0x0f,0x16,0x0f,0x0f,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x2c,0x2c,0x1a,0x00,0x00,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x12,0x13,0x13,0x1a,0x13,0x12,0x17,0x1c,0x13,0x12,0x1f,0x12,0x12,0x1b,0x12,0x14,0x17,0x13,0x16,0x19,0x1a,0x13,0x16,0x13,0x14,0x12,0x14,0x12,0x13,0x14,0x12,0x17,0x11,0x13,0x17,0x12,0x12,0x11,0x17,0x13,0x13,0x13,0x14,0x0d,0x0f,0x13,0x17,0x17,0x10,0x00,0x00, -0x20,0x40,0x15,0x00,0x03,0x09,0x09,0x0d,0x13,0x11,0x1a,0x1a,0x07,0x0a,0x0a,0x0d,0x16,0x07,0x0d,0x07,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x16,0x16,0x16,0x0e,0x1f,0x15,0x12,0x14,0x16,0x10,0x10,0x16,0x17,0x09,0x0b,0x13,0x0f,0x1d,0x18,0x18,0x12,0x18,0x13,0x11,0x11,0x16,0x14,0x1e,0x13,0x12,0x12, -0x0a,0x0c,0x0a,0x16,0x0d,0x09,0x10,0x13,0x0f,0x13,0x11,0x0a,0x13,0x12,0x08,0x08,0x10,0x08,0x1c,0x12,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x12,0x0f,0x17,0x0f,0x0f,0x0e,0x0a,0x08,0x0a,0x16,0x15,0x15,0x14,0x10,0x18,0x18,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x12,0x13,0x13,0x13,0x13,0x13, -0x12,0x12,0x12,0x12,0x0c,0x0c,0x11,0x11,0x0e,0x0d,0x0f,0x11,0x0d,0x1c,0x1c,0x19,0x09,0x0d,0x16,0x1c,0x18,0x1a,0x16,0x16,0x16,0x11,0x12,0x11,0x14,0x18,0x11,0x0d,0x0e,0x18,0x1b,0x13,0x0e,0x09,0x09,0x16,0x15,0x11,0x16,0x15,0x10,0x10,0x17,0x15,0x15,0x18,0x1e,0x1e,0x10,0x20,0x0c,0x0c,0x07,0x07,0x16,0x13,0x0f,0x12,0x06,0x11, -0x0a,0x0a,0x12,0x12,0x0c,0x07,0x07,0x0c,0x27,0x15,0x10,0x15,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x18,0x18,0x16,0x16,0x16,0x08,0x0c,0x0b,0x0a,0x0a,0x06,0x09,0x07,0x0a,0x06,0x0c,0x0f,0x09,0x11,0x0e,0x12,0x0e,0x08,0x16,0x12,0x12,0x0f,0x12,0x13,0x16,0x16,0x0b,0x0c,0x0c,0x1e,0x1d,0x1e,0x10,0x16,0x13,0x09,0x11,0x0e,0x14,0x0f, -0x14,0x0f,0x13,0x0d,0x07,0x15,0x10,0x15,0x10,0x16,0x16,0x16,0x10,0x11,0x10,0x11,0x0f,0x08,0x0f,0x0a,0x0f,0x0a,0x18,0x12,0x18,0x12,0x18,0x13,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x11,0x0e,0x16,0x12,0x16,0x12,0x12,0x0e,0x12,0x0e,0x0f,0x18,0x18,0x14,0x13,0x0e,0x12,0x10,0x16,0x0d,0x0f,0x0d,0x24,0x14,0x10,0x13,0x07,0x0c, -0x1a,0x0a,0x13,0x0b,0x0b,0x13,0x0b,0x15,0x10,0x14,0x0f,0x14,0x0f,0x10,0x11,0x10,0x11,0x10,0x11,0x16,0x13,0x16,0x13,0x16,0x13,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x08,0x13,0x10,0x10,0x0f,0x08,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12, -0x16,0x12,0x1e,0x17,0x12,0x0f,0x08,0x15,0x10,0x1c,0x1b,0x18,0x13,0x07,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x12,0x0f,0x07,0x0d,0x11,0x13,0x1e,0x1e,0x1e,0x1d,0x0c,0x0c,0x07,0x09,0x09,0x15,0x12,0x19,0x0c,0x1a,0x15,0x1a,0x09,0x15,0x12,0x10,0x12,0x17,0x09,0x13,0x14,0x1d,0x18,0x10,0x18,0x17,0x12,0x11,0x11,0x12,0x13,0x19,0x18,0x09, -0x12,0x14,0x0e,0x12,0x09,0x12,0x12,0x11,0x0e,0x12,0x13,0x09,0x11,0x10,0x12,0x11,0x0e,0x13,0x13,0x0f,0x12,0x11,0x18,0x1a,0x09,0x12,0x13,0x12,0x1a,0x10,0x16,0x0f,0x14,0x11,0x09,0x1f,0x1f,0x17,0x13,0x12,0x17,0x15,0x12,0x12,0x0f,0x16,0x10,0x1c,0x11,0x18,0x18,0x13,0x16,0x1d,0x17,0x18,0x17,0x12,0x14,0x11,0x12,0x17,0x13,0x18, -0x15,0x1e,0x1f,0x17,0x19,0x12,0x14,0x21,0x13,0x10,0x13,0x11,0x0c,0x12,0x11,0x18,0x0e,0x13,0x13,0x10,0x11,0x16,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x16,0x0f,0x13,0x12,0x1a,0x1a,0x13,0x17,0x10,0x0f,0x1a,0x10,0x11,0x12,0x0c,0x0f,0x0e,0x08,0x19,0x1a,0x12,0x10,0x0f,0x12,0x0f,0x0d,0x20,0x24,0x14,0x0b,0x0c,0x0c,0x0c,0x08,0x11, -0x0e,0x12,0x18,0x13,0x17,0x13,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0f,0x0a,0x0f,0x0a,0x0a,0x0a,0x0f,0x0f,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10, -0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x16,0x12,0x16,0x12,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x11,0x0b,0x10,0x11,0x18,0x13,0x09,0x0b,0x08,0x08,0x10,0x0d,0x1d,0x19,0x14, -0x11,0x13,0x10,0x18,0x13,0x12,0x0f,0x12,0x0f,0x14,0x10,0x15,0x12,0x15,0x12,0x17,0x11,0x18,0x13,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x15,0x10,0x12,0x13,0x12,0x13,0x12,0x13,0x14,0x0f,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x10,0x11,0x10,0x11,0x10,0x11,0x10, -0x11,0x10,0x11,0x10,0x0a,0x16,0x13,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x1d,0x1c,0x1d,0x1c,0x1d,0x1c,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x13,0x12,0x13,0x13,0x0b,0x13, -0x0b,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x14,0x0f,0x14,0x0f,0x1e,0x17,0x1e,0x17,0x13,0x0f,0x13,0x0f,0x12,0x0f,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0b,0x17,0x0f,0x10,0x08,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1f, -0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x0e,0x0e,0x12,0x12,0x09,0x09,0x13,0x13,0x12,0x12,0x1a,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x15,0x15,0x14,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1a,0x18,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x12,0x13,0x12,0x13,0x14,0x14,0x0f,0x16,0x18,0x12,0x13,0x13, -0x10,0x11,0x10,0x16,0x14,0x1c,0x09,0x09,0x13,0x10,0x08,0x10,0x1d,0x18,0x12,0x18,0x1f,0x19,0x13,0x13,0x12,0x11,0x0e,0x11,0x09,0x0b,0x11,0x0b,0x11,0x18,0x17,0x12,0x11,0x12,0x0e,0x14,0x14,0x0e,0x0d,0x11,0x11,0x0c,0x0d,0x11,0x08,0x0c,0x0f,0x09,0x28,0x24,0x21,0x1b,0x17,0x10,0x22,0x1f,0x1a,0x15,0x10,0x09,0x08,0x18,0x13,0x16, -0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x11,0x15,0x10,0x15,0x10,0x1c,0x1b,0x16,0x13,0x16,0x13,0x13,0x10,0x18,0x13,0x18,0x13,0x14,0x0e,0x08,0x28,0x24,0x21,0x16,0x13,0x20,0x16,0x18,0x12,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x12,0x0b,0x13,0x0b,0x16,0x12,0x16,0x12,0x10,0x0e, -0x17,0x12,0x17,0x13,0x12,0x12,0x0e,0x15,0x10,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x0f,0x13,0x10,0x12,0x12,0x13,0x10,0x13,0x13,0x13,0x0f,0x0f,0x13,0x13,0x11,0x14,0x0d,0x0d,0x10,0x12,0x09,0x13,0x13,0x11,0x0f,0x0f,0x12,0x12,0x12,0x08,0x09,0x0a,0x09,0x0c,0x08,0x13,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x16,0x17,0x14, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x08,0x09,0x09,0x0b,0x0b,0x13,0x13,0x12,0x0f,0x17,0x0f,0x0d,0x0e,0x10,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x14,0x0f,0x12,0x11,0x12,0x08,0x10,0x0c,0x13,0x0c,0x0c,0x1d,0x1e,0x1f,0x14,0x0f,0x17,0x19,0x13,0x12,0x10,0x10,0x12,0x13,0x12,0x16,0x12,0x14,0x1a,0x12,0x16,0x13,0x13, -0x0f,0x10,0x0e,0x13,0x10,0x14,0x10,0x1d,0x1c,0x13,0x10,0x14,0x11,0x14,0x0f,0x13,0x10,0x15,0x13,0x12,0x0d,0x12,0x13,0x0f,0x08,0x18,0x0f,0x0f,0x1c,0x16,0x15,0x13,0x1d,0x17,0x15,0x10,0x1c,0x16,0x17,0x12,0x1e,0x18,0x11,0x0e,0x19,0x18,0x18,0x13,0x17,0x13,0x17,0x13,0x2a,0x24,0x1a,0x15,0x24,0x1d,0x1c,0x16,0x13,0x0e,0x10,0x0d, -0x0d,0x00,0x00,0x20,0x1e,0x12,0x10,0x12,0x13,0x12,0x10,0x11,0x0f,0x13,0x10,0x17,0x13,0x1b,0x15,0x20,0x1b,0x17,0x12,0x14,0x0f,0x11,0x0d,0x1c,0x16,0x16,0x13,0x1b,0x14,0x1b,0x14,0x09,0x1c,0x18,0x13,0x10,0x17,0x12,0x15,0x12,0x15,0x10,0x15,0x10,0x1c,0x1b,0x10,0x11,0x17,0x11,0x17,0x11,0x1c,0x18,0x11,0x0e,0x11,0x0e,0x18,0x13, -0x18,0x13,0x18,0x13,0x18,0x13,0x14,0x0f,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x15,0x12,0x19,0x17,0x12,0x13,0x1b,0x1c,0x1a,0x17,0x12,0x0f,0x1d,0x19,0x20,0x1b,0x17,0x11,0x16,0x13,0x13,0x12,0x12,0x10,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d, -0x09,0x07,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x09,0x05,0x08,0x09,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0d,0x0b,0x08,0x08,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c, -0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11, -0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00, -0x15,0x0a,0x14,0x0b,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x15,0x1b,0x0f,0x0f,0x12,0x12,0x0d,0x0d,0x08,0x0a,0x10,0x0d,0x16,0x13,0x13,0x0f,0x14,0x14,0x14,0x1e,0x11,0x13,0x13,0x0f,0x0f,0x0f,0x0d, -0x11,0x12,0x17,0x12,0x0f,0x17,0x0e,0x0d,0x0d,0x11,0x0c,0x0f,0x12,0x0f,0x13,0x12,0x0c,0x10,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0e,0x06,0x07,0x0b,0x09,0x11,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x09,0x0d,0x11,0x0a,0x0a,0x0b,0x0f,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x06,0x0b,0x0a,0x10,0x09, -0x0a,0x0b,0x09,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x11,0x1c,0x14,0x11,0x11,0x1c,0x15,0x1b,0x18,0x11,0x13,0x10,0x0e,0x24,0x0f,0x13,0x1c,0x1e,0x1e,0x14,0x15,0x14,0x0f,0x0f,0x11,0x0e,0x0e,0x10,0x06,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x0f,0x0c,0x13,0x13,0x0a,0x1c,0x12,0x13,0x0b, -0x0b,0x0f,0x0b,0x0e,0x13,0x0f,0x12,0x1d,0x15,0x0a,0x09,0x13,0x11,0x13,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x12,0x13,0x0b,0x0e,0x0e,0x0f,0x0f,0x0e,0x10,0x13,0x13,0x11,0x0e,0x0e,0x18,0x08,0x0f,0x08,0x12,0x0e,0x0b,0x09,0x09,0x0b,0x08,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0b,0x0b, -0x0c,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x09,0x08,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x11,0x11,0x11,0x11,0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09, -0x12,0x12,0x12,0x12,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x19,0x14,0x17,0x12,0x18,0x14,0x1e,0x18,0x11,0x0c, -0x10,0x16,0x11,0x1a,0x16,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x20,0x0d,0x08,0x10,0x13,0x0d,0x10,0x10,0x13,0x13,0x10,0x20,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x15,0x10,0x10,0x10,0x0b,0x13,0x0b,0x18,0x15,0x10,0x0b,0x1b,0x10,0x1b,0x08,0x0b,0x13,0x13,0x15,0x15, -0x15,0x13,0x13,0x13,0x1b,0x08,0x13,0x08,0x10,0x0d,0x08,0x08,0x10,0x08,0x18,0x08,0x1d,0x10,0x1d,0x1d,0x13,0x13,0x13,0x10,0x10,0x0d,0x0d,0x25,0x25,0x2b,0x2b,0x1b,0x1b,0x10,0x10,0x05,0x20,0x18,0x1b,0x15,0x13,0x15,0x10,0x10,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x10,0x10, -0x1d,0x0b,0x1d,0x0b,0x13,0x15,0x13,0x0d,0x1d,0x10,0x1d,0x10,0x18,0x1b,0x0b,0x10,0x10,0x0d,0x08,0x10,0x13,0x10,0x13,0x10,0x13,0x13,0x10,0x15,0x15,0x1d,0x0b,0x10,0x0d,0x15,0x10,0x0b,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x08,0x13,0x0c,0x20,0x10,0x10,0x15,0x15,0x20,0x10,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x18,0x15, -0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x10,0x10,0x18,0x1b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x10,0x0d,0x0d,0x0d,0x25,0x1b,0x25,0x1b,0x25, -0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x10,0x13,0x13,0x13,0x20,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x18,0x18,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x15,0x0b,0x11,0x15,0x13,0x10, -0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1b,0x1d,0x18,0x1b,0x0b,0x10,0x18,0x1b,0x18,0x1b,0x00,0x00,0x00,0x00,0x00,0x24,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0d,0x00,0x00,0x13,0x00,0x00,0x00,0x25,0x1b,0x2b,0x20,0x10,0x13,0x13,0x13,0x0d,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10, -0x1d,0x1d,0x0c,0x13,0x13,0x13,0x27,0x1b,0x11,0x31,0x23,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0d,0x0d,0x18,0x15,0x15,0x10,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x28,0x30,0x00,0x00,0x00,0x00,0x00,0x13,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, -0x1d,0x0b,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x0d,0x25,0x1b,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x20,0x10,0x10,0x20,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x0d,0x0d,0x25,0x1b,0x15,0x13,0x13,0x00,0x10,0x10, -0x10,0x0c,0x12,0x16,0x14,0x10,0x11,0x0b,0x08,0x18,0x13,0x13,0x0b,0x12,0x0f,0x0f,0x0f,0x0f,0x08,0x10,0x0d,0x14,0x10,0x13,0x0f,0x11,0x0e,0x16,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0e,0x0f,0x0f,0x09,0x10,0x12,0x13,0x10,0x0b,0x18,0x13,0x14,0x11,0x14,0x10,0x12,0x10,0x0d,0x16,0x0c,0x0d,0x0d,0x0f,0x13,0x13, -0x10,0x20,0x10,0x20,0x0b,0x08,0x05,0x11,0x07,0x04,0x00,0x04,0x07,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x1e,0x0e,0x18,0x13,0x1e,0x17,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x0f,0x1c,0x0f,0x1c,0x15,0x16,0x16,0x16,0x18,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1c,0x16,0x16,0x16,0x16,0x18,0x13,0x22,0x1a,0x0f,0x0f,0x09,0x09,0x09,0x0c,0x07,0x12,0x07,0x07,0x1b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x14,0x12,0x0e,0x0f,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x11,0x12,0x16,0x16,0x09,0x0d,0x16,0x13,0x14,0x14,0x12, -0x13,0x15,0x12,0x19,0x17,0x11,0x11,0x11,0x07,0x0c,0x12,0x12,0x12,0x12,0x11,0x13,0x14,0x0f,0x16,0x11,0x12,0x16,0x12,0x17,0x12,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x12,0x0e,0x0f,0x16,0x0a,0x0b,0x16,0x0a,0x12,0x11,0x12,0x16,0x0d,0x16,0x14,0x14,0x13,0x15,0x12,0x19,0x17,0x09,0x12,0x11,0x14,0x15,0x26,0x00,0x14,0x12,0x15,0x15, -0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x18,0x15,0x15,0x17,0x12,0x15,0x18,0x18,0x0f,0x14,0x18,0x18,0x15,0x18,0x1a,0x19,0x15,0x12,0x12,0x18,0x17,0x12,0x16,0x16,0x15,0x16,0x16,0x18, -0x12,0x14,0x16,0x15,0x19,0x14,0x14,0x15,0x15,0x1a,0x10,0x13,0x13,0x1c,0x11,0x11,0x19,0x1d,0x14,0x11,0x22,0x12,0x12,0x18,0x11,0x11,0x18,0x12,0x18,0x1a,0x1c,0x11,0x19,0x11,0x15,0x11,0x14,0x12,0x14,0x11,0x13,0x19,0x11,0x14,0x15,0x11,0x11,0x13,0x1f,0x11,0x11,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x11,0x12,0x1c,0x12,0x1c,0x10, -0x12,0x1c,0x15,0x12,0x1c,0x18,0x18,0x1c,0x12,0x12,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x13,0x12,0x12,0x1c,0x13,0x11,0x12,0x12,0x1c,0x19,0x16,0x16,0x16,0x16,0x17,0x14,0x16,0x19,0x16,0x15,0x11,0x19,0x16,0x16,0x12,0x15,0x16,0x18,0x17,0x13,0x16,0x15,0x17,0x15,0x19,0x16,0x17,0x17,0x16,0x14,0x16,0x16,0x17,0x19, -0x15,0x18,0x17,0x03,0x04,0x05,0x06,0x05,0x09,0x0b,0x1c,0x12,0x14,0x13,0x12,0x14,0x12,0x12,0x15,0x13,0x12,0x0a,0x1b,0x13,0x12,0x12,0x11,0x13,0x10,0x13,0x09,0x13,0x11,0x12,0x0d,0x1c,0x12,0x12,0x12,0x13,0x1b,0x12,0x13,0x0d,0x1b,0x13,0x13,0x16,0x16,0x07,0x09,0x24,0x24,0x24,0x24,0x2e,0x11,0x11,0x08,0x11,0x0c,0x11,0x11,0x12, -0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x12,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x13,0x0e,0x0d,0x12,0x14,0x08,0x0a,0x10,0x0d,0x18,0x15,0x14,0x10,0x14,0x10,0x0d, -0x0e,0x13,0x10,0x1a,0x10,0x0f,0x0f,0x16,0x19,0x0d,0x14,0x10,0x13,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x0f,0x10,0x10,0x10,0x10,0x10,0x12,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x10,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x12, -0x0a,0x10,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x14,0x14,0x14,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x16,0x14,0x10,0x10,0x0d,0x11,0x0e,0x0f,0x14,0x14,0x08,0x10,0x10,0x18,0x15,0x0e,0x14,0x14,0x10,0x0f,0x0e,0x0f,0x14, -0x10,0x15,0x14,0x10,0x0e,0x14,0x08,0x14,0x0f,0x14,0x08,0x0f,0x0e,0x12,0x0d,0x10,0x0d,0x08,0x08,0x0a,0x1a,0x1a,0x14,0x10,0x10,0x13,0x10,0x10,0x10,0x0d,0x13,0x0e,0x18,0x0e,0x15,0x15,0x10,0x12,0x18,0x14,0x14,0x14,0x10,0x10,0x0e,0x10,0x14,0x10,0x14,0x12,0x1a,0x1b,0x12,0x17,0x10,0x10,0x1c,0x10,0x0d,0x13,0x13,0x14,0x1c,0x1c, -0x15,0x10,0x12,0x0d,0x12,0x12,0x12,0x16,0x11,0x11,0x16,0x13,0x13,0x0b,0x14,0x14,0x12,0x10,0x10,0x1d,0x18,0x0f,0x11,0x13,0x13,0x14,0x14,0x17,0x16,0x0b,0x1e,0x13,0x12,0x12,0x15,0x15,0x10,0x10,0x09,0x18,0x16,0x16,0x0f,0x16,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x18,0x17,0x09,0x07,0x07,0x0e,0x0c,0x0c,0x07,0x07,0x07, -0x0c,0x16,0x0f,0x0a,0x13,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x0e,0x11,0x0e,0x07,0x07,0x0c,0x11,0x0b,0x15,0x15,0x15,0x1d,0x18,0x1d,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x1b,0x0b,0x0b,0x10,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x10,0x10,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1d,0x1d,0x10,0x10,0x1d,0x1d,0x10,0x10,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x20,0x18,0x1b,0x10,0x13,0x13,0x15,0x0b,0x15,0x18,0x10,0x10,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1d,0x0b,0x18,0x10,0x10,0x08,0x10,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, -0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x25,0x1b,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20,0x20,0x18,0x10,0x10,0x18,0x10,0x10,0x1d,0x10,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d, -0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x15,0x15,0x15,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x0b,0x0b,0x00,0x25,0x1b,0x2b,0x20,0x1d,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, -0x13,0x13,0x10,0x10,0x0d,0x25,0x1b,0x20,0x20,0x1d,0x1d,0x1d,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x25,0x1b,0x13,0x15,0x13,0x13,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x0d,0x0d,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1d,0x0b, -0x1d,0x0b,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x25,0x25,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x15, -0x15,0x15,0x08,0x08,0x10,0x0d,0x13,0x14,0x12,0x11,0x12,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x12,0x11,0x13,0x14,0x14,0x15,0x13,0x12,0x15,0x10,0x15,0x18,0x14,0x18,0x1b,0x14,0x18,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x11,0x13,0x13,0x15,0x12,0x15,0x12,0x13, -0x13,0x10,0x10,0x18,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x18,0x19,0x18,0x18,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x1c,0x1b,0x12,0x19,0x1b,0x18,0x13,0x1b,0x18,0x16,0x16,0x13,0x15,0x18,0x19,0x16,0x14,0x17,0x13,0x11,0x1e,0x1d,0x1d,0x1a,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x19,0x19,0x18,0x17,0x17,0x15,0x1c,0x18,0x1a,0x17,0x17,0x13,0x18, -0x16,0x16,0x1b,0x18,0x17,0x1d,0x11,0x10,0x12,0x11,0x14,0x14,0x16,0x17,0x13,0x12,0x12,0x11,0x12,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x11,0x13,0x14,0x13,0x13,0x0f,0x12,0x12,0x13,0x13,0x18,0x1b,0x15,0x15,0x14,0x19,0x14,0x16,0x10,0x0f,0x13,0x12,0x0f,0x10,0x12,0x12,0x0f,0x0f,0x14,0x0f,0x11,0x10,0x12,0x19,0x12,0x1a, -0x11,0x12,0x12,0x18,0x0a,0x19,0x16,0x17,0x15,0x12,0x18,0x13,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0f,0x0e,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x14,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x1d,0x1d,0x1d,0x1d,0x10, -0x18,0x17,0x10,0x0d,0x10,0x11,0x12,0x10,0x1b,0x1a,0x1c,0x0e,0x20,0x10,0x1b,0x1b,0x1b,0x1a,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x10,0x10,0x10,0x10,0x10,0x2c,0x1b,0x1b,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x0f,0x13,0x13,0x11,0x0c,0x0c,0x07,0x07,0x07,0x0c,0x07,0x0d,0x1c,0x07,0x1d,0x1d,0x1d, -0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x15,0x25,0x25,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x11,0x0e,0x0b,0x0b,0x16,0x12,0x17,0x0e,0x24,0x1d, -0x13,0x12,0x1d,0x19,0x1b,0x18,0x21,0x1a,0x1e,0x19,0x15,0x0f,0x17,0x13,0x1e,0x17,0x18,0x13,0x18,0x13,0x1c,0x15,0x1c,0x15,0x23,0x1b,0x18,0x13,0x18,0x13,0x27,0x1c,0x19,0x00,0x20,0x20,0x20,0x0f,0x00,0x00,0x13,0x10,0x16,0x12,0x11,0x0e,0x22,0x1d,0x1e,0x1c,0x17,0x13,0x16,0x13,0x11,0x0d,0x18,0x13,0x11,0x0d,0x1a,0x15,0x15,0x12, -0x1f,0x1a,0x11,0x12,0x17,0x17,0x1a,0x0e,0x06,0x0f,0x16,0x0e,0x20,0x20,0x08,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13, -0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x16,0x17,0x09,0x07,0x09,0x07,0x17,0x12,0x18,0x14,0x12,0x0f,0x11,0x0f,0x13,0x12,0x0d,0x0d,0x24,0x1a,0x25,0x1c,0x20,0x1b,0x1d,0x15,0x1d,0x15,0x1d, -0x15,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x11,0x0a,0x0f,0x08,0x18,0x13,0x1b,0x16,0x2b,0x20,0x12,0x13,0x16,0x17,0x1a,0x1c,0x18,0x13,0x1f,0x19,0x11,0x0d,0x12,0x10,0x14,0x0f,0x1e,0x17,0x14,0x11,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x11,0x11,0x0a,0x16,0x0a,0x1f,0x15,0x0b,0x13,0x14,0x0f,0x18,0x12,0x0c,0x0b, -0x13,0x13,0x12,0x0f,0x08,0x18,0x13,0x0c,0x0b,0x14,0x0f,0x17,0x0c,0x19,0x13,0x14,0x0f,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x11,0x0e,0x18,0x0e,0x11,0x1c,0x10,0x12,0x1d,0x09,0x25,0x1d,0x1d,0x26,0x1c,0x1d,0x1d,0x1c,0x1c,0x1e,0x11,0x0f,0x14,0x16,0x1d,0x16,0x1e,0x08,0x0f,0x13,0x1c,0x21,0x16,0x21,0x14,0x14,0x19,0x16,0x24, -0x1e,0x11,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x20,0x10,0x10,0x20,0x18,0x10,0x10,0x18,0x15,0x0b,0x0b,0x15,0x13,0x13,0x13,0x13,0x18,0x0b,0x0b,0x1b,0x18,0x0b,0x0b,0x1b,0x0d,0x0d,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x10,0x0d,0x12,0x11,0x18,0x13,0x13,0x1c,0x15,0x18,0x18,0x1b,0x1a,0x13,0x10,0x20,0x1a,0x21,0x1b,0x16,0x13,0x0a,0x0a,0x13,0x15,0x0d,0x13,0x11,0x13,0x0f,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x11,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0e,0x30,0x40,0x0b,0x0d,0x04,0x09,0x0c,0x0e,0x0a, -0x10,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x2b,0x11,0x18,0x1d,0x1d,0x15,0x0f,0x12,0x17,0x18,0x10,0x0a,0x15,0x11,0x16,0x12,0x15,0x11,0x11,0x18,0x13,0x13,0x11,0x18,0x14,0x1b,0x0f,0x11,0x14,0x0a,0x13,0x0b,0x0b,0x08,0x1c,0x13,0x12,0x11,0x11,0x13,0x1e,0x1e,0x1e,0x20,0x20,0x12,0x10, -0x09,0x10,0x0f,0x13,0x0f,0x15,0x08,0x12,0x13,0x1c,0x1c,0x14,0x11,0x12,0x11,0x11,0x0f,0x11,0x0f,0x0f,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x00,0x09,0x09,0x09,0x08,0x08,0x36,0x20,0x1c,0x22,0x09,0x09,0x0a,0x0d,0x08,0x09,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x09,0x09,0x09,0x00,0x1d,0x0b,0x0b,0x1d,0x08,0x10,0x10,0x2b,0x20,0x20,0x2b,0x1d,0x10,0x10,0x1d,0x10,0x10,0x0d,0x0d,0x00,0x00,0x0b,0x18,0x13,0x17,0x12,0x28,0x21,0x16,0x12,0x16,0x12,0x2b,0x20,0x18,0x13,0x0c,0x0a,0x14,0x00,0x16,0x11,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x06,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x07,0x11,0x0e,0x13,0x12,0x12,0x1f,0x1a,0x1a,0x19,0x1a,0x1e,0x14,0x16,0x13,0x0d,0x1e,0x24,0x0e,0x25,0x10,0x1b,0x1d,0x1d,0x1d,0x0d,0x18,0x20,0x18,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1b,0x10,0x10,0x1d,0x0b,0x0b,0x1d,0x0b,0x0b,0x1d,0x10,0x10,0x00,0x0d, -0x1b,0x0b,0x0b,0x20,0x10,0x10,0x18,0x10,0x10,0x15,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x30,0x30,0x1c,0x00,0x00,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x14,0x15,0x15,0x1c,0x15,0x14,0x1a,0x1f,0x15,0x14,0x22,0x14,0x14,0x1e,0x14, -0x16,0x19,0x14,0x19,0x1b,0x1d,0x14,0x19,0x15,0x16,0x14,0x16,0x14,0x15,0x16,0x14,0x19,0x13,0x15,0x19,0x14,0x14,0x12,0x19,0x15,0x15,0x15,0x16,0x0e,0x11,0x15,0x19,0x19,0x11,0x00,0x00,0x21,0x42,0x15,0x00,0x03,0x09,0x09,0x0d,0x14,0x12,0x1b,0x1a,0x08,0x0a,0x0a,0x0e,0x17,0x07,0x0d,0x07,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x07,0x07,0x17,0x17,0x17,0x0f,0x20,0x15,0x13,0x14,0x17,0x11,0x10,0x17,0x17,0x09,0x0c,0x13,0x10,0x1e,0x19,0x19,0x12,0x19,0x14,0x12,0x11,0x17,0x15,0x1f,0x13,0x12,0x13,0x0a,0x0d,0x0a,0x17,0x0e,0x09,0x11,0x13,0x0f,0x13,0x11,0x0a,0x13,0x13,0x08,0x08,0x10,0x08,0x1c,0x13,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x13,0x10, -0x18,0x0f,0x10,0x0f,0x0a,0x08,0x0a,0x17,0x15,0x15,0x14,0x11,0x19,0x19,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x0f,0x0d,0x0f,0x12,0x0d,0x1d,0x1d,0x1a,0x09,0x0e,0x17,0x1c,0x19,0x1b,0x17,0x17,0x17,0x12,0x13,0x12, -0x14,0x19,0x12,0x0d,0x0e,0x19,0x1b,0x13,0x0f,0x09,0x09,0x17,0x15,0x12,0x17,0x15,0x11,0x11,0x18,0x15,0x15,0x19,0x1f,0x1f,0x11,0x21,0x0c,0x0c,0x08,0x08,0x17,0x13,0x10,0x12,0x06,0x12,0x0a,0x0a,0x12,0x12,0x0c,0x07,0x08,0x0c,0x28,0x15,0x11,0x15,0x11,0x11,0x09,0x09,0x09,0x09,0x19,0x19,0x19,0x17,0x17,0x17,0x08,0x0c,0x0b,0x0a, -0x0a,0x07,0x09,0x07,0x0b,0x06,0x0c,0x10,0x09,0x12,0x0e,0x13,0x0f,0x08,0x17,0x12,0x12,0x10,0x12,0x13,0x17,0x17,0x0c,0x0c,0x0c,0x1f,0x1e,0x1f,0x10,0x17,0x13,0x09,0x12,0x0e,0x14,0x0f,0x14,0x0f,0x13,0x0e,0x07,0x15,0x11,0x15,0x11,0x17,0x16,0x17,0x11,0x11,0x11,0x11,0x10,0x08,0x10,0x0a,0x10,0x0a,0x19,0x13,0x19,0x13,0x19,0x13, -0x14,0x0b,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x11,0x0f,0x17,0x13,0x17,0x13,0x13,0x0f,0x13,0x0f,0x10,0x19,0x19,0x14,0x13,0x0e,0x13,0x10,0x17,0x0e,0x10,0x0d,0x25,0x15,0x10,0x14,0x08,0x0c,0x1b,0x0b,0x14,0x0c,0x0c,0x14,0x0c,0x15,0x11,0x14,0x0f,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17, -0x13,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0c,0x08,0x13,0x10,0x10,0x10,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x1f,0x18,0x12,0x10,0x08,0x15,0x11,0x1c,0x1b,0x19,0x13,0x07,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x12,0x10,0x08,0x0e,0x12,0x14,0x1e,0x1e, -0x1f,0x1d,0x0d,0x0d,0x07,0x09,0x09,0x15,0x13,0x1a,0x0c,0x1a,0x16,0x1b,0x09,0x15,0x13,0x11,0x13,0x17,0x09,0x13,0x15,0x1e,0x19,0x11,0x19,0x18,0x12,0x11,0x11,0x12,0x13,0x1a,0x19,0x09,0x12,0x14,0x0e,0x13,0x09,0x12,0x12,0x11,0x0f,0x13,0x13,0x09,0x11,0x10,0x13,0x11,0x0f,0x13,0x13,0x0f,0x12,0x12,0x19,0x1b,0x09,0x12,0x13,0x12, -0x1b,0x11,0x17,0x10,0x14,0x12,0x09,0x20,0x20,0x18,0x13,0x13,0x17,0x15,0x13,0x13,0x10,0x17,0x11,0x1d,0x12,0x19,0x19,0x13,0x16,0x1e,0x17,0x19,0x18,0x12,0x14,0x11,0x13,0x18,0x13,0x19,0x16,0x1f,0x20,0x17,0x1a,0x13,0x14,0x22,0x14,0x11,0x13,0x11,0x0d,0x12,0x11,0x19,0x0f,0x13,0x13,0x10,0x11,0x17,0x13,0x13,0x13,0x13,0x0f,0x0e, -0x10,0x17,0x0f,0x14,0x13,0x1a,0x1b,0x14,0x17,0x11,0x0f,0x1b,0x11,0x11,0x13,0x0d,0x0f,0x0e,0x08,0x1a,0x1b,0x13,0x10,0x10,0x13,0x0f,0x0d,0x21,0x25,0x15,0x0c,0x0c,0x0c,0x0c,0x08,0x12,0x0e,0x12,0x19,0x14,0x17,0x13,0x0a,0x0b,0x09,0x09,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x10,0x0a,0x0a,0x0a,0x10,0x10,0x15,0x11,0x15, -0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x14,0x19,0x14,0x19,0x14,0x19,0x14,0x19, -0x14,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x10,0x12,0x10,0x12,0x10,0x11,0x0b,0x11,0x11,0x19,0x13,0x09,0x0c,0x08,0x08,0x11,0x0e,0x1e,0x1a,0x14,0x12,0x13,0x10,0x19,0x14,0x12,0x10,0x12,0x10,0x15,0x10,0x16,0x13,0x16,0x13,0x18,0x11,0x19,0x13,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10, -0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x11,0x11,0x15,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x0f,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0a,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x10, -0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x1e,0x1c,0x1e,0x1c,0x1e,0x1c,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x13,0x12,0x13,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x17,0x13,0x17,0x13,0x17, -0x13,0x17,0x13,0x17,0x13,0x15,0x10,0x15,0x10,0x1f,0x18,0x1f,0x18,0x13,0x0f,0x13,0x0f,0x12,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0b,0x18,0x10,0x11,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13, -0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20, -0x20,0x20,0x20,0x14,0x14,0x0e,0x0e,0x13,0x13,0x09,0x09,0x13,0x13,0x12,0x12,0x1b,0x1b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20, -0x20,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x16,0x16,0x15,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1c,0x1b,0x19,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x13,0x13,0x13,0x13,0x14,0x14,0x0f,0x17,0x18,0x13,0x13,0x14,0x11,0x12,0x10,0x17,0x15,0x1d,0x0a,0x09,0x13,0x10,0x08,0x10,0x1d,0x19,0x13,0x19,0x20,0x1a,0x14,0x13,0x13,0x12,0x0e,0x11,0x0a,0x0b,0x11,0x0b, -0x11,0x19,0x18,0x13,0x11,0x13,0x0f,0x14,0x14,0x0f,0x0e,0x12,0x12,0x0d,0x0d,0x12,0x08,0x0d,0x0f,0x09,0x29,0x26,0x22,0x1c,0x18,0x11,0x23,0x20,0x1b,0x15,0x11,0x09,0x08,0x19,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x15,0x11,0x15,0x11,0x1c,0x1b,0x17,0x13,0x17,0x13,0x13,0x10,0x19,0x13,0x19,0x13,0x14,0x0f, -0x08,0x29,0x26,0x22,0x17,0x13,0x21,0x17,0x19,0x13,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x13,0x0b,0x14,0x0b,0x17,0x13,0x17,0x13,0x11,0x0e,0x17,0x13,0x18,0x13,0x13,0x13,0x0f,0x15,0x11,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x10,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13, -0x0f,0x0f,0x13,0x13,0x11,0x14,0x0e,0x0e,0x11,0x12,0x09,0x13,0x13,0x11,0x10,0x0f,0x13,0x13,0x13,0x09,0x09,0x0b,0x09,0x0c,0x08,0x14,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x17,0x18,0x15,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x09,0x0a,0x09,0x0b,0x0b,0x14,0x14,0x12,0x10,0x18,0x10,0x0e,0x0f,0x11,0x0f,0x0f,0x0c, -0x0c,0x0c,0x0f,0x14,0x10,0x12,0x11,0x13,0x08,0x10,0x0d,0x13,0x0c,0x0c,0x1e,0x1f,0x20,0x14,0x10,0x18,0x1a,0x13,0x13,0x10,0x10,0x12,0x14,0x13,0x16,0x13,0x15,0x1a,0x13,0x17,0x13,0x13,0x0f,0x10,0x0f,0x14,0x11,0x14,0x10,0x1d,0x1c,0x14,0x11,0x15,0x12,0x14,0x0f,0x14,0x10,0x16,0x13,0x13,0x0d,0x13,0x13,0x0f,0x08,0x19,0x0f,0x0f, -0x1c,0x16,0x15,0x13,0x1e,0x18,0x16,0x10,0x1d,0x17,0x18,0x13,0x1f,0x19,0x12,0x0f,0x1a,0x19,0x19,0x13,0x18,0x13,0x18,0x13,0x2b,0x25,0x1b,0x15,0x25,0x1e,0x1c,0x16,0x13,0x0e,0x11,0x0d,0x0e,0x00,0x00,0x21,0x1f,0x13,0x11,0x13,0x13,0x13,0x11,0x12,0x0f,0x13,0x10,0x17,0x13,0x1c,0x16,0x21,0x1c,0x18,0x12,0x14,0x0f,0x11,0x0e,0x1d, -0x17,0x17,0x13,0x1c,0x15,0x1c,0x15,0x09,0x1d,0x19,0x13,0x11,0x17,0x13,0x16,0x13,0x15,0x11,0x15,0x11,0x1c,0x1b,0x11,0x11,0x18,0x11,0x18,0x11,0x1d,0x19,0x12,0x0f,0x11,0x0f,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x16,0x13,0x1a,0x17,0x13,0x13,0x1c,0x1c,0x1b,0x18,0x12,0x10,0x1e,0x1a, -0x21,0x1c,0x18,0x12,0x16,0x14,0x13,0x13,0x13,0x11,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d,0x09,0x08,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0a,0x0b,0x0b,0x0a,0x05,0x08,0x09,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0b,0x08,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d, -0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x15,0x0a,0x15,0x0b,0x14,0x14,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x16,0x1b,0x10,0x0f,0x12,0x12,0x0e,0x0e,0x08,0x0a,0x10,0x0d,0x17,0x13,0x13,0x10,0x14,0x14,0x14,0x1f,0x12,0x14,0x14,0x0f,0x0f,0x0f,0x0e,0x12,0x13,0x18,0x13,0x10,0x18,0x0f,0x0e,0x0e,0x11,0x0d,0x0f,0x13,0x0f,0x14,0x13,0x0c,0x10,0x0b,0x0c,0x0e,0x0a,0x0a,0x0e,0x0e,0x06,0x08,0x0c, -0x09,0x11,0x0e,0x0e,0x0e,0x0d,0x0b,0x0b,0x0a,0x0e,0x11,0x0a,0x0a,0x0b,0x10,0x0b,0x0b,0x0a,0x0a,0x09,0x09,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x07,0x0b,0x0b,0x10,0x09,0x0b,0x0b,0x0a,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x0a,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x12,0x1d,0x15,0x12,0x12,0x1c,0x15,0x1c,0x19,0x11, -0x13,0x11,0x0f,0x25,0x0f,0x13,0x1d,0x1f,0x1f,0x15,0x15,0x14,0x0f,0x10,0x11,0x0e,0x0f,0x11,0x07,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x10,0x0d,0x13,0x13,0x0a,0x1c,0x13,0x13,0x0b,0x0b,0x0f,0x0b,0x0f,0x13,0x0f,0x13,0x1e,0x15,0x0b,0x09,0x13,0x12,0x14,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x13,0x13,0x0b,0x0e,0x0e,0x10,0x0f, -0x0f,0x11,0x13,0x13,0x11,0x0e,0x0f,0x18,0x08,0x0f,0x08,0x13,0x0f,0x0b,0x09,0x09,0x0b,0x09,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0c,0x0b,0x0c,0x08,0x05,0x07,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x09,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x12,0x12,0x12,0x12, -0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x1a,0x15,0x17,0x13,0x19,0x15,0x1f,0x19,0x12,0x0c,0x11,0x17,0x12,0x1b,0x17,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1c,0x1c,0x21,0x0e,0x08,0x11, -0x13,0x0e,0x11,0x11,0x13,0x13,0x11,0x21,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x15,0x11,0x11,0x11,0x0b,0x13,0x0b,0x19,0x16,0x11,0x0b,0x1c,0x11,0x1c,0x08,0x0b,0x13,0x13,0x15,0x15,0x15,0x13,0x13,0x13,0x1c,0x08,0x13,0x08,0x11,0x0e,0x08,0x08,0x11,0x08,0x19,0x08,0x1e,0x11,0x1e,0x1e,0x13,0x13,0x13,0x11,0x11,0x0e,0x0e,0x27, -0x27,0x2c,0x2c,0x1c,0x1c,0x11,0x11,0x06,0x21,0x19,0x1c,0x16,0x13,0x16,0x11,0x11,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x0e,0x1e,0x11,0x1e,0x11,0x19,0x1c,0x0b,0x11,0x11,0x0e,0x08,0x11,0x13,0x11,0x13,0x11,0x13,0x13,0x11,0x16, -0x15,0x1e,0x0b,0x11,0x0e,0x16,0x11,0x0b,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x08,0x13,0x0d,0x21,0x11,0x11,0x15,0x15,0x21,0x11,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x19,0x15,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x11,0x19,0x1c,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13, -0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x27,0x1c,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x11,0x13,0x13,0x13,0x21,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x19,0x19,0x24,0x21,0x1e, -0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x16,0x0b,0x12,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1c,0x1e,0x19,0x1c,0x0b,0x11,0x19,0x1c,0x19,0x1c,0x00,0x00,0x00,0x00,0x00,0x25,0x24,0x00,0x00,0x00,0x00, -0x00,0x00,0x08,0x0e,0x00,0x00,0x14,0x00,0x00,0x00,0x27,0x1c,0x2c,0x21,0x11,0x13,0x13,0x13,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x1e,0x1e,0x0c,0x13,0x13,0x14,0x28,0x1b,0x12,0x32,0x24,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x0e,0x0e,0x19,0x16, -0x16,0x11,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x29,0x32,0x00,0x00,0x00,0x00,0x00,0x13,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x0e,0x27,0x1c,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x21,0x11,0x11, -0x21,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x0e,0x0e,0x27,0x1c,0x15,0x13,0x13,0x00,0x11,0x11,0x11,0x0c,0x13,0x17,0x15,0x11,0x11,0x0c,0x08,0x19,0x13,0x14,0x0b,0x12,0x10,0x10,0x0f,0x10,0x08,0x11,0x0e,0x14,0x10,0x13,0x0f,0x12,0x0e,0x16, -0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0f,0x10,0x10,0x09,0x11,0x12,0x14,0x11,0x0b,0x19,0x13,0x15,0x12,0x14,0x10,0x13,0x11,0x0d,0x17,0x0c,0x0e,0x0e,0x10,0x14,0x14,0x11,0x21,0x11,0x21,0x0b,0x08,0x06,0x12,0x07,0x04,0x00,0x05,0x07,0x00,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11, -0x11,0x1f,0x0e,0x19,0x13,0x1f,0x18,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x10,0x1c,0x10,0x1c,0x15,0x17,0x17,0x17,0x19,0x1c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x17,0x18,0x13,0x23,0x1b,0x10,0x10,0x09,0x09,0x09,0x0c,0x07,0x13,0x08,0x08,0x1c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x15,0x13,0x0e,0x10,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x12,0x12,0x17,0x16,0x09,0x0d,0x16,0x14,0x14,0x15,0x13,0x13,0x16,0x12,0x1a,0x18,0x11,0x11,0x11,0x08,0x0c,0x12,0x12,0x12,0x12,0x12,0x14,0x15,0x10,0x16,0x12,0x12,0x17,0x12,0x18,0x12,0x1a,0x1a,0x1a, -0x1a,0x15,0x15,0x15,0x13,0x0e,0x10,0x16,0x0a,0x0c,0x16,0x0a,0x12,0x12,0x12,0x16,0x0d,0x16,0x14,0x15,0x13,0x16,0x12,0x1a,0x18,0x09,0x13,0x12,0x15,0x16,0x28,0x00,0x15,0x12,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x19,0x15,0x16,0x17,0x12,0x16,0x19,0x19,0x10,0x15,0x19,0x18,0x16,0x19,0x1b,0x1a,0x16,0x12,0x12,0x19,0x17,0x13,0x17,0x16,0x16,0x16,0x17,0x18,0x13,0x15,0x16,0x16,0x1a,0x15,0x14,0x15,0x16,0x1b,0x10,0x13,0x13,0x1d,0x12,0x12,0x19,0x1d,0x14,0x12,0x23,0x13,0x13,0x19,0x12,0x12,0x19,0x13, -0x19,0x1b,0x1d,0x12,0x19,0x12,0x16,0x12,0x14,0x13,0x15,0x12,0x14,0x19,0x12,0x14,0x16,0x12,0x12,0x14,0x20,0x12,0x12,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x12,0x12,0x1d,0x12,0x1d,0x10,0x12,0x1d,0x16,0x12,0x1d,0x19,0x19,0x1d,0x13,0x12,0x1d,0x1d,0x12,0x12,0x12,0x12,0x12,0x12,0x1d,0x1d,0x13,0x12,0x13,0x1d,0x14,0x12,0x12,0x12, -0x1d,0x1a,0x17,0x17,0x17,0x17,0x17,0x15,0x17,0x1a,0x17,0x15,0x12,0x1a,0x16,0x17,0x13,0x16,0x17,0x19,0x18,0x13,0x17,0x16,0x18,0x16,0x1a,0x17,0x18,0x18,0x17,0x15,0x17,0x16,0x18,0x1a,0x16,0x19,0x18,0x03,0x04,0x05,0x06,0x05,0x09,0x0c,0x1c,0x13,0x14,0x14,0x13,0x14,0x13,0x13,0x15,0x14,0x13,0x0a,0x1c,0x13,0x13,0x13,0x12,0x14, -0x11,0x13,0x09,0x13,0x11,0x13,0x0e,0x1c,0x12,0x13,0x13,0x14,0x1b,0x13,0x13,0x0d,0x1b,0x13,0x13,0x17,0x16,0x07,0x09,0x25,0x25,0x25,0x25,0x2f,0x12,0x12,0x08,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x10,0x11,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0e,0x19,0x15,0x14,0x10,0x14,0x10,0x0e,0x0f,0x14,0x11,0x1a,0x11,0x0f,0x10,0x17,0x1a,0x0e,0x15,0x10,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08, -0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x13,0x0a,0x10,0x0e,0x0e,0x0e,0x0e,0x15,0x15,0x15,0x16,0x14,0x14,0x14,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14, -0x14,0x14,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x11,0x17,0x15,0x11,0x10,0x0d,0x12,0x0e,0x10,0x14,0x14,0x08,0x10,0x11,0x19,0x15,0x0f,0x14,0x14,0x10,0x0f,0x0f,0x0f,0x15,0x11,0x16,0x15,0x11,0x0e,0x14,0x08,0x14,0x0f,0x15,0x08,0x0f,0x0e,0x13,0x0d,0x11,0x0e,0x08,0x08,0x0a,0x1b,0x1b,0x14,0x10,0x10,0x14,0x11,0x10, -0x10,0x0d,0x13,0x0e,0x18,0x0f,0x15,0x15,0x10,0x13,0x19,0x14,0x14,0x14,0x10,0x11,0x0f,0x10,0x15,0x11,0x15,0x12,0x1b,0x1b,0x13,0x17,0x10,0x11,0x1c,0x10,0x0d,0x13,0x13,0x15,0x1d,0x1d,0x16,0x11,0x13,0x0e,0x13,0x12,0x12,0x17,0x11,0x11,0x17,0x13,0x13,0x0c,0x14,0x14,0x13,0x10,0x10,0x1e,0x19,0x10,0x12,0x14,0x14,0x15,0x15,0x17, -0x17,0x0c,0x1f,0x13,0x12,0x13,0x15,0x15,0x11,0x11,0x09,0x19,0x17,0x17,0x10,0x17,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x19,0x17,0x09,0x07,0x07,0x0f,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x16,0x10,0x0a,0x14,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x0f,0x12,0x0e,0x07,0x08,0x0d,0x11,0x0b,0x16,0x16,0x16,0x1e,0x19,0x1e,0x08, -0x00,0x00,0x00,0x00,0x00,0x08,0x19,0x1c,0x0b,0x0b,0x11,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x11,0x11,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x11,0x11,0x1e,0x1e,0x11,0x11,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x21,0x19,0x1c,0x11,0x13,0x13,0x16, -0x0b,0x16,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x0b,0x19,0x11,0x11,0x08,0x11,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x27,0x1c, -0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x21,0x21,0x21,0x21,0x21,0x21,0x19,0x11,0x11,0x19,0x11,0x11,0x1e,0x11,0x24,0x21,0x1e,0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x16,0x16,0x16,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x11,0x13, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x11,0x0b,0x0b,0x0b,0x0b,0x00,0x27,0x1c,0x2c,0x21,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x11,0x11,0x0e,0x27,0x1c,0x21,0x21,0x1e,0x1e,0x1e,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x27,0x1c,0x13,0x16,0x13,0x13, -0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x27,0x27,0x1c,0x1c,0x1c,0x1c,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, -0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e, -0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x16,0x16,0x16,0x08,0x08,0x11,0x0e,0x13,0x15,0x13,0x12,0x12,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x12,0x11, -0x13,0x14,0x14,0x16,0x13,0x13,0x15,0x11,0x16,0x19,0x15,0x19,0x1b,0x15,0x19,0x17,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0f,0x12,0x14,0x14,0x16,0x13,0x15,0x13,0x14,0x14,0x11,0x11,0x19,0x16,0x17,0x16,0x16,0x14,0x13,0x13,0x18,0x19,0x19,0x19,0x1e,0x1e,0x17,0x1e,0x1e,0x18,0x1d,0x1c,0x12,0x19,0x1c,0x19,0x14, -0x1c,0x18,0x17,0x17,0x14,0x15,0x19,0x1a,0x17,0x14,0x17,0x13,0x12,0x1e,0x1e,0x1e,0x1b,0x1e,0x1e,0x17,0x1e,0x1e,0x17,0x19,0x1a,0x19,0x18,0x18,0x15,0x1d,0x19,0x1b,0x18,0x18,0x13,0x18,0x17,0x17,0x1c,0x19,0x18,0x1e,0x12,0x11,0x12,0x12,0x14,0x15,0x17,0x18,0x13,0x13,0x13,0x12,0x13,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x11, -0x11,0x13,0x14,0x14,0x14,0x0f,0x13,0x13,0x13,0x14,0x19,0x1c,0x16,0x16,0x15,0x19,0x15,0x17,0x11,0x10,0x13,0x13,0x10,0x10,0x12,0x12,0x10,0x0f,0x15,0x0f,0x12,0x10,0x12,0x1a,0x13,0x1b,0x12,0x13,0x13,0x19,0x0a,0x1a,0x17,0x18,0x16,0x13,0x19,0x14,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09, -0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x15,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x1e,0x1e,0x1e,0x1e,0x10,0x18,0x18,0x10,0x0d,0x10,0x11,0x12,0x10,0x1c,0x1b,0x1c,0x0f,0x21,0x10,0x1c,0x1c,0x1c,0x1b,0x13,0x10,0x10,0x1a,0x13,0x1a,0x16,0x12,0x0f,0x0d, -0x22,0x0e,0x12,0x10,0x10,0x10,0x10,0x10,0x2d,0x1c,0x1c,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x10,0x13,0x13,0x12,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x08,0x0e,0x1c,0x07,0x1e,0x1e,0x1e,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x27,0x27,0x16,0x27,0x27,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x12,0x0e,0x0c,0x0b,0x17,0x12,0x18,0x0e,0x25,0x1d,0x14,0x12,0x1e,0x1a,0x1c,0x19,0x22,0x1b,0x1f,0x1a,0x15,0x10,0x18,0x13,0x1f,0x18,0x19,0x14,0x19,0x14,0x1c,0x16,0x1d,0x16,0x24,0x1c,0x19,0x13, -0x19,0x13,0x28,0x1d,0x1a,0x00,0x21,0x21,0x21,0x10,0x00,0x00,0x13,0x11,0x17,0x12,0x12,0x0e,0x24,0x1e,0x1f,0x1c,0x18,0x13,0x17,0x13,0x11,0x0e,0x18,0x14,0x11,0x0e,0x1b,0x16,0x16,0x13,0x20,0x1b,0x12,0x13,0x18,0x18,0x1b,0x0f,0x07,0x0f,0x17,0x0e,0x21,0x21,0x08,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1e,0x1e,0x1e,0x1e, -0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, -0x00,0x00,0x00,0x00,0x00,0x0e,0x10,0x16,0x18,0x09,0x07,0x09,0x07,0x17,0x13,0x19,0x15,0x12,0x10,0x12,0x10,0x14,0x13,0x0e,0x0e,0x25,0x1b,0x26,0x1d,0x21,0x1c,0x1e,0x16,0x1e,0x16,0x1e,0x16,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x12,0x0a,0x10,0x08,0x19,0x13,0x1c,0x16,0x2c,0x21,0x12,0x13,0x17,0x17,0x1b,0x1c,0x19,0x13,0x20, -0x1a,0x12,0x0d,0x12,0x10,0x15,0x10,0x1f,0x18,0x14,0x11,0x12,0x13,0x12,0x13,0x10,0x0d,0x10,0x0d,0x10,0x0c,0x11,0x11,0x0a,0x16,0x0b,0x20,0x16,0x0b,0x13,0x14,0x0f,0x19,0x12,0x0d,0x0b,0x13,0x13,0x13,0x10,0x08,0x19,0x14,0x0c,0x0b,0x15,0x0f,0x17,0x0d,0x1a,0x14,0x14,0x0f,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x12,0x0e,0x19, -0x0e,0x12,0x1c,0x10,0x12,0x1e,0x09,0x26,0x1d,0x1e,0x27,0x1d,0x1e,0x1e,0x1d,0x1d,0x1e,0x11,0x10,0x14,0x17,0x1e,0x17,0x1f,0x08,0x0f,0x13,0x1c,0x22,0x17,0x22,0x14,0x14,0x1a,0x17,0x26,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x21,0x11,0x11,0x21,0x19,0x11,0x11,0x19,0x16,0x0b,0x0b,0x16,0x13,0x13, -0x13,0x13,0x19,0x0b,0x0b,0x1c,0x19,0x0b,0x0b,0x1c,0x0e,0x0e,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x11,0x0d,0x13,0x11,0x19,0x13,0x13,0x1d,0x16,0x19,0x19,0x1b,0x1b,0x13,0x10,0x21,0x1b,0x22,0x1c,0x17, -0x13,0x0a,0x0a,0x13,0x15,0x0d,0x14,0x11,0x13,0x10,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x12,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0f,0x31,0x42,0x0b,0x0e,0x04,0x09,0x0d,0x0e,0x0a,0x10,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x2c,0x12,0x19,0x1e,0x1e,0x15,0x0f,0x13,0x18,0x18,0x10, -0x0a,0x16,0x11,0x16,0x12,0x16,0x12,0x12,0x19,0x14,0x13,0x11,0x19,0x14,0x1b,0x0f,0x11,0x15,0x0a,0x13,0x0b,0x0b,0x08,0x1d,0x13,0x13,0x11,0x11,0x13,0x1f,0x1f,0x1f,0x21,0x21,0x12,0x10,0x09,0x11,0x0f,0x14,0x0f,0x16,0x08,0x13,0x14,0x1c,0x1c,0x14,0x12,0x13,0x12,0x11,0x0f,0x11,0x0f,0x10,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x15,0x0a, -0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0a,0x0a,0x0a,0x08,0x08,0x38,0x21,0x1d,0x23,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x1e,0x0b,0x0b,0x1e,0x09,0x11,0x11,0x2c,0x21,0x21,0x2c,0x1e,0x11,0x11,0x1e,0x11,0x11,0x0e,0x0e,0x00,0x00,0x0c, -0x19,0x14,0x17,0x13,0x29,0x22,0x17,0x12,0x17,0x12,0x2c,0x21,0x19,0x13,0x0d,0x0a,0x14,0x00,0x17,0x12,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x07,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x11,0x0e,0x13,0x13,0x12,0x20,0x1b,0x1b,0x1a,0x1b,0x1f,0x15,0x17,0x14,0x0d,0x1f,0x25,0x0f,0x26,0x11,0x1c,0x1e,0x1e,0x1e,0x0e,0x19, -0x21,0x19,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1c,0x11,0x11,0x1e,0x0b,0x0b,0x1e,0x0b,0x0b,0x1e,0x10,0x10,0x00,0x0e,0x1c,0x0b,0x0b,0x21,0x11,0x11,0x19,0x11,0x11,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x32,0x32,0x1d, -0x00,0x00,0x1d,0x1d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x14,0x15,0x15,0x1d,0x15,0x15,0x1a,0x20,0x15,0x15,0x23,0x15,0x15,0x1f,0x15,0x16,0x1a,0x15,0x19,0x1c,0x1e,0x15,0x19,0x15,0x17,0x15,0x17,0x15,0x16,0x17,0x15,0x1a,0x14,0x16,0x1a,0x14,0x15,0x13,0x1a,0x15,0x15,0x15,0x17, -0x0f,0x11,0x15,0x1a,0x1a,0x12,0x00,0x00,0x25,0x4a,0x18,0x00,0x04,0x0a,0x0b,0x0f,0x16,0x14,0x1e,0x1e,0x09,0x0b,0x0b,0x0f,0x19,0x08,0x0f,0x08,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x08,0x19,0x19,0x19,0x11,0x23,0x18,0x15,0x17,0x1a,0x13,0x12,0x19,0x1a,0x0a,0x0d,0x15,0x11,0x21,0x1c,0x1c,0x15,0x1c,0x16, -0x14,0x13,0x19,0x17,0x23,0x16,0x14,0x15,0x0b,0x0e,0x0b,0x19,0x0f,0x0a,0x13,0x16,0x11,0x16,0x13,0x0c,0x16,0x15,0x09,0x09,0x12,0x09,0x20,0x15,0x16,0x16,0x16,0x0d,0x10,0x0d,0x15,0x12,0x1b,0x11,0x12,0x11,0x0b,0x09,0x0b,0x19,0x18,0x18,0x17,0x13,0x1c,0x1c,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x13,0x09,0x09, -0x09,0x09,0x15,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x0e,0x0e,0x14,0x14,0x11,0x0f,0x11,0x14,0x0f,0x21,0x21,0x1d,0x0a,0x0f,0x19,0x20,0x1c,0x1e,0x19,0x19,0x19,0x14,0x15,0x14,0x17,0x1c,0x14,0x0f,0x10,0x1c,0x1f,0x16,0x11,0x0a,0x0b,0x19,0x18,0x14,0x19,0x18,0x13,0x13,0x1b,0x18,0x18,0x1c,0x22,0x22,0x13,0x25,0x0e,0x0e, -0x08,0x08,0x19,0x16,0x12,0x14,0x06,0x14,0x0c,0x0c,0x15,0x15,0x0e,0x08,0x08,0x0e,0x2d,0x18,0x13,0x18,0x13,0x13,0x0a,0x0a,0x0a,0x0a,0x1c,0x1c,0x1c,0x19,0x19,0x19,0x09,0x0e,0x0c,0x0b,0x0b,0x07,0x0a,0x08,0x0c,0x07,0x0e,0x11,0x0a,0x14,0x10,0x15,0x11,0x09,0x1a,0x15,0x14,0x12,0x15,0x16,0x19,0x19,0x0d,0x0e,0x0e,0x22,0x22,0x23, -0x12,0x19,0x16,0x0a,0x14,0x10,0x17,0x11,0x17,0x11,0x16,0x0f,0x08,0x18,0x13,0x18,0x13,0x1a,0x19,0x1a,0x13,0x13,0x13,0x13,0x11,0x09,0x11,0x0b,0x11,0x0c,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x16,0x0d,0x16,0x0d,0x14,0x10,0x13,0x0d,0x13,0x10,0x19,0x15,0x19,0x15,0x15,0x11,0x15,0x11,0x11,0x1c,0x1c,0x17,0x16,0x10,0x15,0x12,0x1a,0x0f, -0x12,0x0f,0x29,0x17,0x12,0x16,0x08,0x0e,0x1e,0x0c,0x16,0x0d,0x0d,0x16,0x0d,0x18,0x13,0x17,0x11,0x17,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x16,0x19,0x16,0x19,0x16,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0d,0x09,0x15,0x12,0x12,0x11,0x09,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x16,0x0d,0x14,0x10, -0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x23,0x1b,0x14,0x12,0x09,0x18,0x13,0x20,0x1f,0x1c,0x16,0x08,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x14,0x12,0x08,0x0f,0x14,0x16,0x22,0x22,0x22,0x21,0x0e,0x0e,0x08,0x0a,0x0a,0x18,0x15,0x1d,0x0e,0x1e,0x19,0x1f,0x0a,0x18,0x15,0x13,0x15,0x1a,0x0a,0x15,0x17,0x21,0x1c,0x13,0x1c,0x1a, -0x15,0x13,0x13,0x14,0x16,0x1d,0x1c,0x0a,0x14,0x17,0x10,0x15,0x0a,0x14,0x14,0x13,0x10,0x15,0x16,0x0a,0x13,0x12,0x15,0x13,0x10,0x16,0x16,0x11,0x14,0x14,0x1c,0x1e,0x0a,0x14,0x16,0x14,0x1e,0x13,0x1a,0x11,0x17,0x14,0x0a,0x24,0x24,0x1b,0x15,0x15,0x1a,0x18,0x15,0x15,0x11,0x1a,0x13,0x20,0x14,0x1c,0x1c,0x15,0x19,0x21,0x1a,0x1c, -0x1a,0x15,0x17,0x13,0x15,0x1b,0x16,0x1b,0x18,0x23,0x24,0x1a,0x1d,0x15,0x17,0x26,0x16,0x13,0x15,0x14,0x0e,0x14,0x13,0x1c,0x11,0x16,0x16,0x12,0x14,0x1a,0x15,0x16,0x15,0x16,0x11,0x0f,0x12,0x19,0x11,0x16,0x15,0x1e,0x1f,0x16,0x1a,0x13,0x11,0x1e,0x13,0x13,0x15,0x0e,0x11,0x10,0x09,0x1d,0x1e,0x15,0x12,0x12,0x15,0x11,0x0e,0x25, -0x2a,0x17,0x0d,0x0e,0x0e,0x0e,0x09,0x14,0x10,0x15,0x1c,0x16,0x1a,0x16,0x0b,0x0c,0x0a,0x0a,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x12,0x0b,0x12,0x0b,0x0b,0x0b,0x12,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, -0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x19,0x15,0x19,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x14,0x12,0x14,0x12,0x14,0x12,0x13,0x0d,0x13,0x13,0x1c,0x16,0x0a, -0x0d,0x09,0x09,0x13,0x0f,0x22,0x1d,0x17,0x14,0x15,0x12,0x1b,0x16,0x14,0x12,0x14,0x12,0x17,0x12,0x18,0x15,0x18,0x15,0x1b,0x13,0x1c,0x16,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x18,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x17,0x11,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a, -0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0c,0x19,0x16,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x15,0x12,0x15,0x12,0x15,0x12,0x11,0x09,0x11,0x09,0x11,0x09,0x11,0x09,0x21,0x20,0x21,0x20,0x21,0x20,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c, -0x16,0x15,0x16,0x15,0x16,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x17,0x12,0x17,0x12,0x23,0x1b,0x23,0x1b,0x16,0x11,0x16,0x11,0x14,0x12,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x0d,0x1b, -0x12,0x13,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x12,0x12,0x13,0x13,0x13,0x13,0x16, -0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x23,0x23,0x23,0x23,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x10,0x10,0x15,0x15,0x0a,0x0a,0x16,0x16,0x14,0x14,0x1e,0x1e,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1a, -0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x16,0x16,0x14,0x14,0x14,0x14,0x19,0x19,0x17,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,0x1c,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x17,0x15,0x16,0x15,0x16, -0x17,0x17,0x11,0x1a,0x1b,0x15,0x16,0x16,0x13,0x14,0x12,0x1a,0x17,0x20,0x0b,0x0a,0x15,0x12,0x09,0x12,0x21,0x1c,0x15,0x1c,0x24,0x1d,0x16,0x16,0x15,0x14,0x10,0x13,0x0b,0x0d,0x13,0x0d,0x13,0x1c,0x1a,0x15,0x13,0x15,0x11,0x17,0x17,0x10,0x0f,0x14,0x14,0x0e,0x0f,0x14,0x09,0x0e,0x11,0x0b,0x2e,0x2a,0x26,0x20,0x1b,0x13,0x28,0x24, -0x1e,0x18,0x13,0x0a,0x09,0x1c,0x16,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x13,0x18,0x13,0x18,0x13,0x20,0x1f,0x19,0x16,0x19,0x16,0x15,0x12,0x1c,0x16,0x1c,0x16,0x17,0x10,0x09,0x2e,0x2a,0x26,0x19,0x16,0x25,0x19,0x1c,0x15,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x15,0x0d, -0x16,0x0d,0x19,0x15,0x19,0x15,0x13,0x10,0x1a,0x15,0x1b,0x16,0x15,0x15,0x11,0x18,0x13,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x14,0x12,0x16,0x13,0x15,0x15,0x16,0x13,0x16,0x16,0x16,0x11,0x11,0x16,0x16,0x13,0x17,0x0f,0x0f,0x13,0x14,0x0a,0x16,0x16,0x14,0x12,0x11,0x15,0x15,0x15,0x0a,0x0a,0x0c,0x0a,0x0e,0x09,0x16,0x20,0x20, -0x20,0x15,0x15,0x16,0x16,0x1a,0x1b,0x18,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x11,0x11,0x0f,0x09,0x0a,0x0b,0x0a,0x0d,0x0d,0x16,0x16,0x15,0x12,0x1b,0x12,0x0f,0x11,0x13,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x17,0x12,0x14,0x14,0x15,0x09,0x12,0x0e,0x16,0x0e,0x0e,0x22,0x23,0x24,0x17,0x12,0x1b,0x1d,0x15,0x15,0x12,0x12,0x14,0x16,0x15, -0x19,0x15,0x18,0x1e,0x15,0x1a,0x16,0x16,0x11,0x12,0x11,0x16,0x13,0x17,0x12,0x21,0x20,0x16,0x13,0x18,0x14,0x17,0x11,0x16,0x12,0x19,0x16,0x15,0x0f,0x15,0x16,0x11,0x09,0x1c,0x11,0x11,0x20,0x19,0x18,0x15,0x22,0x1a,0x19,0x12,0x20,0x1a,0x1b,0x15,0x22,0x1c,0x14,0x11,0x1d,0x1c,0x1c,0x16,0x1b,0x15,0x1b,0x15,0x31,0x29,0x1f,0x18, -0x2a,0x21,0x20,0x19,0x16,0x10,0x13,0x0f,0x0f,0x00,0x00,0x24,0x23,0x15,0x13,0x15,0x16,0x15,0x13,0x14,0x11,0x15,0x12,0x1a,0x16,0x1f,0x19,0x25,0x1f,0x1b,0x15,0x17,0x11,0x13,0x0f,0x20,0x19,0x19,0x16,0x1f,0x17,0x1f,0x17,0x0a,0x20,0x1c,0x15,0x13,0x1a,0x15,0x18,0x15,0x18,0x13,0x18,0x13,0x20,0x1f,0x13,0x13,0x1b,0x13,0x1b,0x13, -0x20,0x1c,0x14,0x11,0x13,0x10,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x18,0x15,0x1d,0x1a,0x15,0x16,0x20,0x20,0x1e,0x1b,0x15,0x12,0x22,0x1d,0x25,0x1f,0x1a,0x14,0x19,0x16,0x16,0x15,0x15,0x13,0x16,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x16, -0x0c,0x0c,0x06,0x08,0x08,0x08,0x0a,0x0f,0x0a,0x08,0x0e,0x08,0x08,0x08,0x0c,0x0c,0x08,0x08,0x16,0x16,0x16,0x16,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0b,0x06,0x09,0x0a,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x0c,0x09,0x0a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14, -0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x18,0x0b,0x17,0x0d,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x16,0x11,0x18,0x1f,0x12,0x11,0x14,0x15,0x0f,0x0f,0x09,0x0b,0x12,0x0f,0x1a,0x16,0x16,0x12,0x17,0x17,0x17, -0x22,0x14,0x16,0x16,0x11,0x11,0x11,0x0f,0x14,0x15,0x1b,0x15,0x12,0x1b,0x11,0x0f,0x0f,0x14,0x0e,0x11,0x15,0x11,0x16,0x15,0x0d,0x12,0x0d,0x0d,0x0f,0x0b,0x0b,0x0f,0x10,0x07,0x08,0x0d,0x0a,0x13,0x10,0x10,0x10,0x0e,0x0d,0x0d,0x0b,0x0f,0x13,0x0c,0x0c,0x0d,0x12,0x0d,0x0d,0x0c,0x0c,0x0a,0x0a,0x0d,0x06,0x0b,0x12,0x0c,0x0d,0x0a, -0x0d,0x0d,0x0d,0x07,0x0c,0x0c,0x12,0x0a,0x0c,0x0c,0x0b,0x0d,0x0f,0x0b,0x06,0x08,0x0c,0x0a,0x0c,0x0b,0x0d,0x0f,0x0b,0x16,0x06,0x0d,0x14,0x20,0x17,0x14,0x14,0x20,0x18,0x20,0x1c,0x14,0x16,0x13,0x11,0x2a,0x11,0x16,0x21,0x23,0x23,0x17,0x18,0x17,0x11,0x11,0x13,0x10,0x11,0x13,0x07,0x00,0x00,0x00,0x00,0x16,0x17,0x17,0x17,0x11, -0x0e,0x16,0x16,0x0c,0x20,0x15,0x16,0x0d,0x0c,0x11,0x0d,0x11,0x16,0x11,0x15,0x21,0x18,0x0c,0x0a,0x16,0x14,0x16,0x16,0x16,0x0c,0x16,0x12,0x09,0x20,0x15,0x16,0x0d,0x10,0x10,0x12,0x11,0x11,0x13,0x16,0x16,0x13,0x10,0x11,0x1b,0x09,0x11,0x09,0x15,0x10,0x0d,0x0a,0x0a,0x0d,0x0a,0x07,0x06,0x0d,0x0c,0x06,0x07,0x06,0x06,0x06,0x07, -0x06,0x08,0x12,0x12,0x0c,0x0c,0x0d,0x0c,0x0e,0x09,0x06,0x07,0x0c,0x0d,0x0c,0x0c,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x00,0x00,0x00,0x00,0x08,0x0c,0x0c,0x0d,0x0a,0x0c,0x14,0x14,0x14,0x14,0x0c,0x00,0x00,0x00,0x00,0x11,0x0b,0x0a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x06,0x0e,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0d,0x0e,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x1d,0x17, -0x1a,0x15,0x1c,0x17,0x23,0x1c,0x14,0x0e,0x13,0x19,0x14,0x1e,0x1a,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x1f,0x1f,0x25,0x0f,0x09,0x13,0x16,0x0f,0x13,0x13,0x16,0x16,0x13,0x25,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x18,0x13,0x13,0x13,0x0c,0x16,0x0c,0x1c,0x19,0x13,0x0c,0x1f, -0x13,0x1f,0x09,0x0c,0x16,0x16,0x18,0x18,0x18,0x16,0x16,0x16,0x1f,0x09,0x16,0x09,0x13,0x0f,0x09,0x09,0x13,0x09,0x1c,0x09,0x22,0x13,0x22,0x22,0x16,0x16,0x16,0x13,0x13,0x0f,0x0f,0x2b,0x2b,0x31,0x31,0x1f,0x1f,0x13,0x13,0x06,0x25,0x1c,0x1f,0x19,0x16,0x19,0x13,0x13,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x09, -0x18,0x00,0x18,0x18,0x18,0x0c,0x13,0x13,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x0f,0x22,0x13,0x22,0x13,0x1c,0x1f,0x0c,0x13,0x13,0x0f,0x09,0x13,0x16,0x13,0x16,0x13,0x16,0x16,0x13,0x19,0x18,0x22,0x0c,0x13,0x0f,0x19,0x13,0x0c,0x13,0x13,0x13,0x22,0x0c,0x22,0x0c,0x09,0x16,0x0e,0x25,0x13,0x13,0x18,0x18,0x25,0x13,0x00,0x00,0x00, -0x18,0x00,0x18,0x18,0x18,0x18,0x1c,0x18,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x13,0x13,0x1c,0x1f,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x13, -0x0f,0x0f,0x0f,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x13,0x16,0x16,0x16,0x25,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x1c,0x1c,0x28,0x25,0x22,0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19, -0x19,0x0c,0x19,0x0c,0x14,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x22,0x1c,0x1f,0x0c,0x13,0x1c,0x1f,0x1c,0x1f,0x00,0x00,0x00,0x00,0x00,0x2a,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0f,0x00,0x00,0x16,0x00,0x00,0x00,0x2b,0x1f,0x31,0x25,0x13,0x16,0x16,0x16,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, -0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x22,0x22,0x0e,0x16,0x16,0x16,0x2d,0x1f,0x14,0x38,0x28,0x0c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x0f,0x0f,0x1c,0x19,0x19,0x13,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x2e,0x38,0x00,0x00,0x00,0x00,0x00,0x16,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x0f,0x22,0x0c, -0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x25,0x13,0x13,0x25,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x0f,0x0f, -0x2b,0x1f,0x18,0x16,0x16,0x00,0x13,0x13,0x13,0x0e,0x15,0x19,0x17,0x13,0x13,0x0d,0x09,0x1c,0x16,0x16,0x0d,0x14,0x12,0x12,0x11,0x12,0x09,0x13,0x0f,0x17,0x12,0x16,0x11,0x14,0x10,0x19,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x11,0x12,0x11,0x0b,0x13,0x15,0x16,0x13,0x0d,0x1b,0x16,0x18,0x14,0x17,0x12,0x15,0x13, -0x0f,0x1a,0x0e,0x0f,0x10,0x12,0x16,0x16,0x13,0x25,0x13,0x25,0x0c,0x09,0x06,0x14,0x08,0x05,0x00,0x05,0x08,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x22,0x10,0x1c,0x16,0x23,0x1b,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x20,0x11,0x20,0x11,0x20,0x18,0x19,0x1a,0x1a,0x1c, -0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x1b,0x15,0x27,0x1f,0x11,0x11,0x0b,0x0b,0x0b,0x0e,0x08,0x15,0x09,0x09,0x1f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x18,0x15,0x10,0x12,0x19,0x0a,0x0c,0x19,0x19,0x0a,0x15,0x14,0x14,0x1a, -0x19,0x0a,0x0f,0x19,0x16,0x17,0x17,0x15,0x16,0x19,0x15,0x1d,0x1b,0x13,0x13,0x13,0x08,0x0e,0x15,0x15,0x14,0x14,0x14,0x16,0x18,0x12,0x19,0x14,0x14,0x1a,0x15,0x1b,0x14,0x1d,0x1d,0x1d,0x1d,0x18,0x18,0x18,0x15,0x10,0x12,0x19,0x0b,0x0d,0x19,0x0b,0x15,0x14,0x14,0x19,0x0f,0x19,0x17,0x17,0x16,0x19,0x15,0x1d,0x1b,0x0a,0x15,0x14, -0x17,0x18,0x2c,0x00,0x18,0x14,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0a,0x00,0x1c,0x18,0x19,0x1a,0x14,0x19,0x1c,0x1c,0x11,0x17,0x1c,0x1b,0x18,0x1c,0x1e,0x1d,0x19,0x14,0x15,0x1c, -0x1a,0x15,0x19,0x19,0x18,0x19,0x19,0x1b,0x15,0x18,0x19,0x18,0x1d,0x17,0x17,0x18,0x19,0x1e,0x12,0x16,0x16,0x20,0x14,0x14,0x1d,0x21,0x17,0x14,0x27,0x15,0x15,0x1c,0x14,0x14,0x1c,0x15,0x1c,0x1e,0x20,0x14,0x1d,0x14,0x18,0x14,0x17,0x15,0x17,0x14,0x16,0x1c,0x14,0x17,0x19,0x14,0x14,0x16,0x23,0x14,0x14,0x16,0x16,0x10,0x0c,0x15, -0x15,0x15,0x14,0x15,0x21,0x15,0x21,0x12,0x15,0x21,0x19,0x15,0x21,0x1c,0x1c,0x21,0x15,0x15,0x21,0x21,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x16,0x15,0x15,0x21,0x16,0x14,0x15,0x15,0x21,0x1d,0x19,0x1a,0x1a,0x19,0x1a,0x17,0x19,0x1d,0x1a,0x18,0x14,0x1d,0x19,0x19,0x15,0x19,0x1a,0x1c,0x1b,0x16,0x1a,0x19,0x1b,0x19,0x1d,0x1a, -0x1b,0x1b,0x19,0x18,0x1a,0x19,0x1b,0x1d,0x18,0x1c,0x1b,0x04,0x04,0x06,0x07,0x06,0x0a,0x0d,0x20,0x15,0x17,0x16,0x15,0x17,0x15,0x15,0x18,0x16,0x15,0x0b,0x1f,0x16,0x15,0x15,0x14,0x16,0x13,0x15,0x0a,0x16,0x13,0x15,0x0f,0x20,0x14,0x15,0x15,0x16,0x1f,0x15,0x16,0x0f,0x1f,0x16,0x16,0x19,0x19,0x08,0x0a,0x2a,0x29,0x29,0x2a,0x35, -0x14,0x14,0x09,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x12,0x13,0x16,0x10,0x10,0x15,0x17,0x09,0x0c,0x12, -0x0f,0x1c,0x18,0x17,0x12,0x17,0x12,0x10,0x10,0x16,0x13,0x1e,0x13,0x11,0x12,0x1a,0x1d,0x0f,0x17,0x12,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x17,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16,0x11,0x13,0x13,0x13,0x13,0x13,0x15,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x13, -0x17,0x17,0x09,0x09,0x09,0x09,0x09,0x15,0x0c,0x12,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x18,0x18,0x17,0x17,0x17,0x12,0x12,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x11,0x11,0x11,0x12,0x12,0x12,0x13,0x1a,0x17,0x13,0x12,0x0e,0x14,0x10,0x12,0x17,0x17,0x09,0x12,0x13,0x1c,0x18, -0x11,0x17,0x17,0x12,0x11,0x10,0x11,0x17,0x13,0x18,0x17,0x13,0x10,0x17,0x09,0x17,0x11,0x17,0x09,0x11,0x10,0x15,0x0f,0x13,0x10,0x09,0x09,0x0c,0x1e,0x1e,0x17,0x12,0x12,0x17,0x13,0x12,0x12,0x0f,0x16,0x10,0x1b,0x10,0x18,0x18,0x12,0x15,0x1c,0x17,0x17,0x17,0x12,0x13,0x10,0x12,0x17,0x13,0x17,0x14,0x1e,0x1f,0x15,0x1a,0x12,0x13, -0x20,0x12,0x0f,0x15,0x16,0x17,0x21,0x21,0x18,0x13,0x15,0x10,0x15,0x15,0x15,0x1a,0x13,0x13,0x19,0x15,0x15,0x0d,0x17,0x17,0x15,0x12,0x12,0x21,0x1c,0x11,0x14,0x16,0x16,0x17,0x17,0x1a,0x19,0x0d,0x23,0x16,0x14,0x15,0x18,0x18,0x13,0x13,0x0a,0x1c,0x19,0x19,0x11,0x1a,0x08,0x08,0x10,0x10,0x08,0x08,0x17,0x0f,0x0a,0x1c,0x1a,0x0b, -0x08,0x08,0x11,0x0e,0x0e,0x08,0x08,0x08,0x0e,0x19,0x11,0x0b,0x16,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x10,0x14,0x10,0x08,0x08,0x0e,0x13,0x0d,0x19,0x19,0x19,0x22,0x1c,0x22,0x09,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x1f,0x0c,0x0c,0x13,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x31, -0x25,0x31,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x22,0x22,0x13,0x13,0x22,0x22,0x13,0x13,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x25,0x1c,0x1f,0x13,0x16,0x16,0x19,0x0c,0x19,0x1c,0x13,0x13,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x22,0x0c,0x1c,0x13,0x13,0x09,0x13,0x13, -0x13,0x13,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x1c,0x13,0x13,0x1c,0x13,0x13,0x22,0x13,0x28,0x25,0x22, -0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x19,0x19,0x19,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x13,0x0c,0x0c,0x0c,0x0c,0x00,0x2b,0x1f,0x31,0x25,0x22,0x13,0x22,0x0c,0x22,0x0c, -0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x25,0x25,0x22,0x22,0x22,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x2b,0x1f,0x16,0x19,0x16,0x16,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f, -0x0c,0x0c,0x16,0x16,0x16,0x16,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x2b,0x2b,0x1f,0x1f,0x1f,0x1f,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x09,0x09,0x0c,0x09,0x00,0x00,0x00,0x1f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x19,0x19,0x19,0x19,0x19,0x16, -0x1f,0x16,0x1f,0x16,0x1f,0x16,0x1f,0x19,0x19,0x19,0x09,0x09,0x13,0x0f,0x16,0x18,0x15,0x14,0x15,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x11,0x14,0x13,0x16,0x17,0x17,0x18,0x15,0x15,0x18,0x13,0x19,0x1c,0x18,0x1c,0x1f,0x18,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x14,0x11, -0x14,0x16,0x16,0x18,0x15,0x18,0x15,0x16,0x16,0x13,0x13,0x1c,0x19,0x1a,0x19,0x19,0x16,0x16,0x15,0x1b,0x1d,0x1c,0x1c,0x22,0x22,0x1a,0x22,0x22,0x1b,0x20,0x1f,0x15,0x1c,0x1f,0x1c,0x16,0x1f,0x1b,0x1a,0x1a,0x16,0x18,0x1c,0x1d,0x1a,0x17,0x1a,0x16,0x14,0x22,0x22,0x22,0x1e,0x22,0x22,0x19,0x22,0x22,0x1a,0x1c,0x1d,0x1c,0x1b,0x1b, -0x18,0x21,0x1c,0x1f,0x1a,0x1a,0x15,0x1b,0x1a,0x1a,0x20,0x1c,0x1b,0x21,0x14,0x13,0x15,0x14,0x17,0x17,0x1a,0x1b,0x15,0x15,0x15,0x14,0x15,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x14,0x16,0x17,0x16,0x16,0x11,0x15,0x15,0x16,0x16,0x1c,0x1f,0x18,0x18,0x17,0x1c,0x18,0x19,0x13,0x12,0x16,0x15,0x12,0x12,0x14,0x14,0x12,0x11, -0x17,0x11,0x14,0x12,0x14,0x1d,0x15,0x1f,0x14,0x15,0x15,0x1c,0x0c,0x1d,0x19,0x1b,0x18,0x15,0x1c,0x16,0x1d,0x16,0x16,0x16,0x16,0x16,0x16,0x15,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x17,0x0a,0x0a,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b, -0x0a,0x0a,0x0a,0x21,0x21,0x21,0x21,0x12,0x1b,0x1b,0x12,0x0f,0x12,0x13,0x15,0x12,0x1f,0x1e,0x20,0x10,0x25,0x12,0x1f,0x1f,0x1f,0x1e,0x15,0x12,0x12,0x1d,0x16,0x1d,0x19,0x14,0x11,0x0f,0x26,0x0f,0x14,0x12,0x12,0x12,0x12,0x12,0x32,0x1f,0x1f,0x10,0x09,0x11,0x09,0x11,0x09,0x09,0x09,0x12,0x16,0x16,0x14,0x0e,0x0e,0x08,0x08,0x08, -0x0e,0x08,0x0f,0x20,0x08,0x21,0x21,0x21,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x2b,0x2b,0x19,0x2b,0x2b,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x11,0x16,0x11,0x14,0x10, -0x0d,0x0d,0x19,0x14,0x1b,0x10,0x2a,0x21,0x16,0x14,0x22,0x1d,0x1f,0x1c,0x26,0x1e,0x22,0x1d,0x18,0x12,0x1b,0x16,0x22,0x1b,0x1c,0x17,0x1b,0x16,0x20,0x19,0x20,0x19,0x29,0x1f,0x1c,0x16,0x1c,0x16,0x2d,0x21,0x1d,0x00,0x24,0x24,0x24,0x12,0x00,0x00,0x16,0x13,0x1a,0x15,0x14,0x10,0x28,0x21,0x23,0x20,0x1b,0x15,0x1a,0x16,0x13,0x0f, -0x1b,0x16,0x13,0x0f,0x1e,0x19,0x18,0x15,0x24,0x1e,0x14,0x15,0x1b,0x1b,0x1e,0x11,0x07,0x11,0x19,0x10,0x25,0x25,0x09,0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x14,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1c,0x1c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x21,0x21, -0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, -0x1c,0x1c,0x1c,0x1c,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x12,0x19,0x1b,0x0a,0x08,0x0a,0x08,0x1a,0x15,0x1b,0x17,0x14,0x11,0x14,0x12,0x16,0x15,0x10,0x10,0x2a,0x1e,0x2b, -0x21,0x25,0x1f,0x21,0x18,0x21,0x18,0x21,0x18,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x14,0x0c,0x11,0x09,0x1c,0x16,0x20,0x19,0x31,0x25,0x15,0x16,0x19,0x1a,0x1e,0x20,0x1c,0x16,0x24,0x1d,0x14,0x0f,0x15,0x12,0x17,0x12,0x23,0x1b,0x17,0x13,0x15,0x16,0x15,0x16,0x12,0x0f,0x12,0x0e,0x11,0x0e,0x13,0x13,0x0b,0x19,0x0c,0x23,0x19, -0x0d,0x16,0x17,0x11,0x1c,0x15,0x0e,0x0d,0x15,0x15,0x15,0x11,0x09,0x1c,0x16,0x0e,0x0d,0x17,0x11,0x1a,0x0e,0x1d,0x16,0x17,0x11,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x14,0x10,0x1c,0x10,0x14,0x20,0x12,0x15,0x21,0x0a,0x2a,0x21,0x21,0x2c,0x21,0x22,0x22,0x21,0x21,0x22,0x13,0x11,0x17,0x1a,0x21,0x1a,0x23,0x09,0x11,0x16,0x20, -0x26,0x1a,0x26,0x17,0x17,0x1d,0x1a,0x2a,0x22,0x13,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x25,0x13,0x13,0x25,0x1c,0x13,0x13,0x1c,0x19,0x0c,0x0c,0x19,0x16,0x16,0x16,0x16,0x1c,0x0c,0x0c,0x1f,0x1c,0x0c,0x0c,0x1f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x13,0x0f,0x15,0x14,0x1c,0x16,0x15,0x20,0x19,0x1c,0x1c,0x1f,0x1e,0x15,0x12,0x25,0x1e,0x27,0x20,0x19,0x16,0x0c,0x0c,0x16,0x18,0x0f,0x16,0x13,0x15,0x12,0x1b,0x1e,0x0f,0x16,0x10,0x08,0x0e,0x14,0x14,0x08,0x08,0x07,0x08,0x0e,0x0e,0x0e,0x11,0x37, -0x4a,0x0d,0x0f,0x05,0x0a,0x0e,0x10,0x0c,0x12,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x31,0x14,0x1c,0x22,0x21,0x18,0x11,0x15,0x1b,0x1b,0x12,0x0c,0x18,0x13,0x19,0x15,0x18,0x14,0x14,0x1c,0x16,0x15,0x13,0x1c,0x17,0x1f,0x11,0x13,0x17,0x0c,0x16,0x0d,0x0d,0x09,0x20,0x16,0x15,0x13,0x13, -0x16,0x22,0x22,0x23,0x25,0x25,0x14,0x12,0x0a,0x13,0x11,0x17,0x11,0x19,0x09,0x15,0x16,0x20,0x20,0x17,0x14,0x15,0x14,0x13,0x11,0x13,0x11,0x12,0x0b,0x0c,0x09,0x08,0x0d,0x15,0x17,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x09,0x09,0x3e,0x25,0x20,0x27,0x0b,0x0b,0x0c, -0x0f,0x09,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x22,0x0c,0x0c,0x22,0x0a,0x13,0x13,0x31,0x25,0x25,0x31,0x22,0x13,0x13,0x22,0x13,0x13,0x0f,0x0f,0x00,0x00,0x0d,0x1c,0x16,0x1a,0x15,0x2e,0x26,0x1a,0x14,0x1a,0x14,0x31,0x25,0x1c,0x16,0x0e,0x0c,0x17,0x00,0x19,0x14,0x0c,0x0b,0x06,0x12,0x0c,0x0d,0x09,0x07, -0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x13,0x10,0x16,0x15,0x14,0x24,0x1e,0x1e,0x1d,0x1e,0x23,0x17,0x19,0x16,0x0f,0x22,0x2a,0x10,0x2b,0x13,0x1f,0x22,0x22,0x22,0x0f,0x1c,0x25,0x1c,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x16,0x16,0x16,0x1f,0x13,0x13,0x22,0x0c,0x0c, -0x22,0x0c,0x0c,0x22,0x12,0x12,0x00,0x0f,0x1f,0x0c,0x0c,0x25,0x13,0x13,0x1c,0x13,0x13,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x38,0x38,0x21,0x00,0x00,0x21,0x21,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x17,0x18,0x18,0x21,0x18,0x17,0x1e, -0x24,0x18,0x17,0x28,0x17,0x17,0x23,0x17,0x19,0x1d,0x18,0x1c,0x1f,0x22,0x18,0x1c,0x18,0x1a,0x17,0x1a,0x17,0x18,0x19,0x17,0x1d,0x16,0x19,0x1d,0x17,0x17,0x15,0x1d,0x18,0x18,0x18,0x1a,0x11,0x14,0x18,0x1d,0x1d,0x14,0x00,0x00,0x2a,0x54,0x1b,0x00,0x04,0x0c,0x0c,0x10,0x19,0x17,0x22,0x22,0x0a,0x0d,0x0d,0x12,0x1d,0x09,0x11,0x09, -0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09,0x1d,0x1d,0x1d,0x13,0x28,0x1b,0x18,0x1a,0x1d,0x15,0x15,0x1d,0x1e,0x0b,0x0f,0x18,0x14,0x26,0x1f,0x20,0x18,0x20,0x19,0x16,0x16,0x1d,0x1a,0x27,0x19,0x17,0x18,0x0d,0x10,0x0d,0x1d,0x11,0x0b,0x15,0x19,0x13,0x19,0x16,0x0d,0x19,0x18,0x0a,0x0a,0x15,0x0a,0x24,0x18, -0x19,0x19,0x19,0x0f,0x12,0x0e,0x18,0x14,0x1e,0x13,0x14,0x13,0x0d,0x0a,0x0d,0x1d,0x1b,0x1b,0x1a,0x15,0x1f,0x20,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x16,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x13,0x11,0x13,0x17,0x11,0x25,0x25,0x20,0x0c,0x11,0x1d,0x24, -0x20,0x22,0x1d,0x1d,0x1d,0x17,0x18,0x16,0x1a,0x20,0x17,0x10,0x12,0x20,0x23,0x19,0x13,0x0c,0x0c,0x1d,0x1b,0x17,0x1d,0x1b,0x15,0x15,0x1f,0x1b,0x1b,0x20,0x27,0x27,0x15,0x2a,0x10,0x10,0x0a,0x0a,0x1d,0x19,0x14,0x17,0x07,0x17,0x0d,0x0d,0x17,0x17,0x10,0x09,0x0a,0x10,0x33,0x1b,0x15,0x1b,0x15,0x15,0x0b,0x0b,0x0b,0x0b,0x20,0x20, -0x20,0x1d,0x1d,0x1d,0x0a,0x10,0x0e,0x0d,0x0d,0x08,0x0c,0x09,0x0e,0x08,0x10,0x14,0x0c,0x16,0x12,0x18,0x13,0x0a,0x1d,0x17,0x17,0x14,0x18,0x19,0x1d,0x1d,0x0f,0x0f,0x0f,0x27,0x26,0x28,0x15,0x1d,0x19,0x0b,0x16,0x12,0x1a,0x13,0x1a,0x13,0x19,0x11,0x09,0x1b,0x15,0x1b,0x15,0x1d,0x1c,0x1d,0x15,0x16,0x15,0x16,0x14,0x0a,0x14,0x0d, -0x14,0x0d,0x1f,0x18,0x1f,0x18,0x20,0x19,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x0e,0x16,0x12,0x1d,0x18,0x1d,0x18,0x18,0x13,0x18,0x13,0x14,0x20,0x20,0x1a,0x19,0x12,0x18,0x14,0x1d,0x11,0x14,0x10,0x2f,0x1a,0x15,0x19,0x0a,0x10,0x22,0x0e,0x19,0x0f,0x0f,0x19,0x0f,0x1b,0x15,0x1a,0x13,0x1a,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x1d, -0x19,0x1d,0x19,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0f,0x0a,0x18,0x15,0x15,0x14,0x0a,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x19,0x0f,0x16,0x12,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x27,0x1e,0x17,0x14,0x0a,0x1b,0x15,0x24,0x23,0x20,0x19,0x09,0x27,0x1e,0x27,0x1e,0x27,0x1e, -0x17,0x14,0x0a,0x11,0x17,0x19,0x27,0x27,0x27,0x25,0x10,0x10,0x09,0x0b,0x0b,0x1b,0x18,0x21,0x10,0x22,0x1c,0x23,0x0b,0x1b,0x18,0x15,0x18,0x1e,0x0b,0x18,0x1a,0x26,0x1f,0x15,0x20,0x1e,0x18,0x16,0x16,0x17,0x19,0x21,0x20,0x0b,0x17,0x1a,0x12,0x18,0x0b,0x17,0x17,0x16,0x13,0x18,0x19,0x0b,0x16,0x15,0x18,0x16,0x13,0x19,0x19,0x13, -0x17,0x17,0x20,0x22,0x0b,0x17,0x19,0x17,0x22,0x15,0x1d,0x14,0x1a,0x16,0x0b,0x29,0x29,0x1e,0x18,0x18,0x1e,0x1b,0x18,0x18,0x14,0x1d,0x15,0x24,0x17,0x1f,0x1f,0x18,0x1c,0x26,0x1e,0x20,0x1e,0x18,0x1a,0x16,0x18,0x1f,0x19,0x1f,0x1c,0x28,0x29,0x1e,0x21,0x18,0x1a,0x2b,0x19,0x15,0x18,0x16,0x10,0x17,0x16,0x1f,0x13,0x18,0x18,0x15, -0x16,0x1d,0x18,0x19,0x18,0x19,0x13,0x11,0x14,0x1d,0x13,0x19,0x18,0x22,0x23,0x19,0x1e,0x15,0x13,0x22,0x15,0x16,0x18,0x10,0x13,0x12,0x0a,0x21,0x22,0x18,0x15,0x14,0x18,0x14,0x10,0x2a,0x2f,0x1a,0x0f,0x0f,0x0f,0x0f,0x0a,0x16,0x12,0x17,0x20,0x19,0x1e,0x19,0x0d,0x0e,0x0b,0x0b,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x14,0x0d,0x14, -0x0d,0x0d,0x0d,0x14,0x14,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20, -0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x17,0x14,0x17,0x14,0x17,0x14,0x16,0x0e,0x15,0x16,0x1f,0x18,0x0b,0x0f,0x0a,0x0a,0x16,0x11,0x26,0x21,0x1a,0x16,0x18,0x15,0x1f,0x19,0x17,0x14,0x17,0x14,0x1a,0x15,0x1c,0x18,0x1c,0x18,0x1e,0x16,0x20,0x19,0x0d, -0x0d,0x0d,0x0d,0x11,0x11,0x14,0x14,0x14,0x14,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x15,0x16,0x1b,0x15,0x18,0x19,0x18,0x19,0x18,0x19,0x1a,0x13,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b, -0x0a,0x18,0x15,0x18,0x15,0x18,0x15,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x26,0x24,0x26,0x24,0x26,0x24,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x18,0x19,0x18,0x19,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x0e,0x16,0x0e,0x16, -0x0e,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1a,0x14,0x1a,0x14,0x27,0x1e,0x27,0x1e,0x19,0x13,0x19,0x13,0x17,0x14,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x0e,0x1e,0x14,0x15,0x0a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x1e, -0x1e,0x1e,0x1e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x15,0x15,0x16,0x16,0x16,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, -0x22,0x22,0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x12,0x12,0x18,0x18,0x0b,0x0b,0x19,0x19,0x17,0x17,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x22,0x22,0x22,0x22,0x22,0x22,0x22, -0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x21,0x1e,0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x10,0x19,0x19,0x19,0x17,0x17,0x17,0x17,0x19,0x19,0x17,0x17,0x17,0x17,0x1c,0x1c, -0x1a,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1a,0x18,0x19,0x18,0x19,0x1a,0x1a,0x14,0x1d,0x1f,0x18,0x19,0x19,0x15,0x17,0x15,0x1d,0x1a,0x25,0x0c,0x0c,0x18,0x15,0x0a,0x15,0x25,0x1f,0x18,0x20,0x29,0x21,0x19,0x19, -0x18,0x16,0x12,0x16,0x0c,0x0e,0x16,0x0e,0x16,0x20,0x1e,0x18,0x16,0x18,0x13,0x1a,0x1a,0x13,0x11,0x17,0x17,0x10,0x11,0x17,0x0a,0x10,0x13,0x0c,0x34,0x30,0x2b,0x24,0x1e,0x15,0x2d,0x29,0x22,0x1b,0x15,0x0b,0x0a,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x16,0x1b,0x15,0x1b,0x15,0x24,0x23,0x1d,0x19,0x1d,0x19, -0x18,0x15,0x20,0x19,0x20,0x19,0x1a,0x13,0x0a,0x34,0x30,0x2b,0x1d,0x19,0x2a,0x1d,0x1f,0x18,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x18,0x0f,0x19,0x0f,0x1d,0x18,0x1d,0x18,0x15,0x12,0x1e,0x18,0x1f,0x19,0x18,0x18,0x13,0x1b,0x15,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x17,0x14,0x19, -0x15,0x18,0x18,0x19,0x15,0x19,0x19,0x19,0x14,0x14,0x19,0x19,0x16,0x1a,0x11,0x11,0x15,0x17,0x0c,0x19,0x19,0x16,0x14,0x13,0x18,0x18,0x18,0x0b,0x0c,0x0d,0x0c,0x10,0x0a,0x19,0x24,0x24,0x24,0x17,0x17,0x19,0x19,0x1d,0x1e,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x13,0x13,0x11,0x0a,0x0b,0x0c,0x0c,0x0e,0x0e,0x19,0x19,0x17,0x14, -0x1e,0x14,0x12,0x13,0x16,0x13,0x13,0x0f,0x0f,0x0f,0x14,0x1a,0x14,0x17,0x16,0x18,0x0a,0x15,0x10,0x19,0x0f,0x0f,0x26,0x28,0x29,0x1a,0x14,0x1e,0x21,0x18,0x18,0x15,0x15,0x17,0x19,0x18,0x1c,0x18,0x1b,0x22,0x18,0x1d,0x19,0x18,0x13,0x15,0x13,0x19,0x15,0x1a,0x15,0x25,0x24,0x19,0x15,0x1b,0x16,0x1a,0x13,0x19,0x14,0x1c,0x19,0x18, -0x11,0x18,0x18,0x13,0x0a,0x20,0x14,0x14,0x24,0x1c,0x1b,0x18,0x26,0x1e,0x1c,0x15,0x25,0x1d,0x1f,0x18,0x27,0x1f,0x17,0x13,0x21,0x20,0x20,0x19,0x1e,0x18,0x1e,0x18,0x37,0x2f,0x23,0x1b,0x2f,0x26,0x24,0x1c,0x19,0x12,0x15,0x11,0x11,0x00,0x00,0x29,0x28,0x18,0x15,0x18,0x19,0x18,0x15,0x17,0x13,0x18,0x15,0x1e,0x18,0x23,0x1c,0x2a, -0x23,0x1e,0x17,0x1a,0x13,0x16,0x11,0x25,0x1d,0x1d,0x19,0x23,0x1b,0x23,0x1b,0x0b,0x24,0x1f,0x18,0x15,0x1e,0x18,0x1c,0x18,0x1b,0x15,0x1b,0x15,0x24,0x23,0x15,0x16,0x1e,0x16,0x1e,0x16,0x24,0x1f,0x17,0x13,0x16,0x13,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x1a,0x13,0x18,0x14,0x18,0x14,0x18,0x14,0x1c,0x18,0x21,0x1e,0x18,0x19, -0x24,0x24,0x22,0x1e,0x17,0x14,0x26,0x21,0x2a,0x24,0x1e,0x16,0x1c,0x19,0x19,0x18,0x18,0x15,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x19,0x0e,0x0e,0x07,0x09,0x09,0x09,0x0c,0x11,0x0c,0x0a,0x10,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x19,0x19,0x19,0x19,0x0e,0x0c,0x0b,0x0e,0x0d,0x0b, -0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0e,0x0e,0x0c,0x07,0x0a,0x0c,0x09,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x0e,0x0a,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17, -0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0e,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e, -0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x14,0x1c,0x23,0x14,0x13,0x17,0x17,0x12,0x11,0x0a,0x0d,0x15,0x10,0x1d,0x18,0x19,0x14,0x1a,0x1a,0x1a,0x27,0x17,0x19,0x19,0x13,0x13,0x13,0x11,0x16,0x18,0x1e,0x18,0x14,0x1e,0x13,0x12,0x11,0x16,0x10,0x14,0x18,0x13,0x19,0x18,0x0f,0x14,0x0f,0x0f, -0x11,0x0d,0x0d,0x11,0x12,0x08,0x0a,0x0f,0x0c,0x16,0x12,0x12,0x12,0x10,0x0e,0x0e,0x0c,0x11,0x16,0x0d,0x0d,0x0f,0x14,0x0f,0x0f,0x0d,0x0d,0x0b,0x0b,0x0f,0x07,0x0d,0x15,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x08,0x0e,0x0e,0x15,0x0c,0x0d,0x0e,0x0c,0x0e,0x11,0x0d,0x07,0x09,0x0e,0x0c,0x0e,0x0c,0x0f,0x11,0x0d,0x18,0x07,0x0f,0x17,0x25, -0x1a,0x17,0x17,0x24,0x1b,0x24,0x1f,0x16,0x19,0x15,0x13,0x2f,0x13,0x19,0x25,0x27,0x27,0x1a,0x1b,0x1a,0x13,0x14,0x16,0x12,0x13,0x15,0x08,0x00,0x00,0x00,0x00,0x19,0x1a,0x1a,0x1a,0x14,0x10,0x19,0x19,0x0d,0x24,0x18,0x19,0x0f,0x0e,0x13,0x0e,0x13,0x19,0x13,0x18,0x26,0x1b,0x0d,0x0b,0x19,0x16,0x19,0x19,0x19,0x0d,0x19,0x15,0x0a, -0x24,0x18,0x19,0x0f,0x12,0x12,0x14,0x13,0x13,0x15,0x19,0x19,0x16,0x12,0x13,0x1f,0x0a,0x14,0x0a,0x18,0x13,0x0f,0x0b,0x0b,0x0e,0x0b,0x08,0x07,0x0f,0x0e,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x09,0x15,0x15,0x0e,0x0e,0x0f,0x0e,0x0f,0x0a,0x07,0x08,0x0e,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x0c,0x0b,0x0e,0x00,0x00,0x00,0x00,0x09,0x0d, -0x0d,0x0e,0x0b,0x0d,0x17,0x17,0x17,0x17,0x0e,0x00,0x00,0x00,0x00,0x13,0x0d,0x0b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x17,0x0f,0x0f,0x0f,0x0f,0x0f, -0x0f,0x0d,0x0d,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x21,0x1b,0x1e,0x18,0x1f,0x1a,0x27,0x20,0x17,0x10,0x16,0x1d,0x16,0x22,0x1d,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x19,0x19,0x19,0x19, -0x19,0x19,0x23,0x23,0x2a,0x12,0x0b,0x15,0x19,0x12,0x15,0x15,0x19,0x19,0x15,0x2a,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x1b,0x15,0x15,0x15,0x0e,0x19,0x0e,0x20,0x1c,0x15,0x0e,0x23,0x15,0x23,0x0b,0x0e,0x19,0x19,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x23,0x0b,0x19,0x0b,0x15,0x12,0x0b,0x0b,0x15,0x0b,0x20,0x0b,0x27,0x15,0x27,0x27, -0x19,0x19,0x19,0x15,0x15,0x12,0x12,0x31,0x31,0x38,0x38,0x23,0x23,0x15,0x15,0x07,0x2a,0x20,0x23,0x1c,0x19,0x1c,0x15,0x15,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x1b,0x00,0x1b,0x1b,0x1b,0x0e,0x15,0x15,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x12,0x27,0x15,0x27,0x15,0x20,0x23,0x0e,0x15,0x15,0x12,0x0b,0x15, -0x19,0x15,0x19,0x15,0x19,0x19,0x15,0x1c,0x1b,0x27,0x0e,0x15,0x12,0x1c,0x15,0x0e,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x0b,0x19,0x10,0x2a,0x15,0x15,0x1b,0x1b,0x2a,0x15,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1b,0x1b,0x1b,0x20,0x1b,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x15,0x15,0x20,0x23,0x27,0x0e,0x27,0x0e,0x27,0x0e, -0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x12,0x12,0x12,0x15,0x12,0x12,0x12,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x15,0x19,0x19,0x19,0x2a,0x2a,0x15,0x15,0x2a,0x15,0x15,0x2a,0x15,0x15, -0x2a,0x15,0x15,0x20,0x20,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x1c,0x0e,0x17,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x23,0x27,0x20,0x23,0x0e,0x15,0x20,0x23,0x20,0x23,0x00,0x00,0x00, -0x00,0x00,0x2f,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x12,0x00,0x00,0x19,0x00,0x00,0x00,0x31,0x23,0x38,0x2a,0x15,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x27,0x27,0x10,0x19,0x19,0x19,0x34,0x23,0x16,0x40,0x2e,0x0e,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x15,0x15,0x12,0x12,0x20,0x1c,0x1c,0x15,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x0e,0x35,0x3f,0x00,0x00,0x00,0x00,0x00,0x19,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x12,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x12,0x31,0x23,0x15,0x19,0x19,0x19,0x15,0x19,0x19, -0x19,0x15,0x19,0x19,0x19,0x2a,0x15,0x15,0x2a,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x0e,0x12,0x12,0x31,0x23,0x1b,0x19,0x19,0x00,0x15,0x15,0x15,0x10,0x18,0x1d,0x1a,0x15,0x16,0x0f,0x0a,0x20,0x19,0x19,0x0f,0x17,0x14,0x14,0x13,0x14,0x0a,0x16, -0x11,0x1a,0x14,0x19,0x13,0x17,0x12,0x1c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x13,0x14,0x14,0x0c,0x16,0x18,0x19,0x15,0x0e,0x1f,0x19,0x1b,0x17,0x1a,0x15,0x18,0x16,0x11,0x1d,0x10,0x11,0x12,0x14,0x19,0x19,0x15,0x2a,0x15,0x2a,0x0e,0x0b,0x07,0x17,0x09,0x05,0x00,0x06,0x09,0x00,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x27,0x12,0x20,0x19,0x27,0x1e,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x24,0x14,0x24,0x14,0x24,0x1b,0x1d,0x1d,0x1d,0x20,0x24,0x2a,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1f,0x18,0x2d,0x23,0x14,0x14,0x0c,0x0c,0x0c,0x10,0x09,0x18,0x0a,0x0a,0x23, -0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x1b,0x18,0x12,0x14,0x1c,0x0b,0x0e,0x1c,0x1d,0x0b,0x17,0x17,0x17,0x1d,0x1c,0x0b,0x11,0x1c,0x19,0x1a,0x1b,0x18,0x19,0x1c,0x17,0x21,0x1f,0x16,0x16,0x16,0x0a,0x10,0x17,0x17,0x17,0x17,0x17,0x19,0x1b,0x14,0x1c,0x17, -0x17,0x1d,0x17,0x1f,0x17,0x21,0x21,0x21,0x21,0x1b,0x1b,0x1b,0x18,0x12,0x14,0x1c,0x0d,0x0f,0x1d,0x0d,0x17,0x17,0x17,0x1c,0x11,0x1c,0x1a,0x1b,0x19,0x1c,0x17,0x21,0x1f,0x0b,0x18,0x17,0x1b,0x1b,0x32,0x00,0x1b,0x17,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0b,0x00,0x20,0x1b,0x1c,0x1e,0x17,0x1c,0x1f,0x20,0x14,0x1a,0x1f,0x1f,0x1c,0x20,0x22,0x21,0x1c,0x17,0x18,0x20,0x1e,0x18,0x1d,0x1c,0x1c,0x1c,0x1d,0x1f,0x18,0x1b,0x1c,0x1b,0x21,0x1b,0x1a,0x1b,0x1c,0x22,0x15,0x19,0x19,0x25,0x17,0x17,0x20,0x25,0x1a,0x17, -0x2c,0x18,0x18,0x20,0x17,0x17,0x20,0x18,0x20,0x22,0x25,0x17,0x20,0x17,0x1b,0x17,0x1a,0x18,0x1b,0x17,0x19,0x20,0x17,0x1a,0x1c,0x17,0x17,0x19,0x28,0x17,0x17,0x19,0x19,0x12,0x0e,0x17,0x17,0x17,0x16,0x17,0x25,0x17,0x25,0x15,0x17,0x25,0x1c,0x17,0x25,0x1f,0x1f,0x25,0x18,0x17,0x25,0x25,0x17,0x17,0x17,0x17,0x17,0x17,0x25,0x25, -0x19,0x17,0x18,0x25,0x19,0x17,0x17,0x17,0x25,0x21,0x1d,0x1d,0x1d,0x1d,0x1e,0x1a,0x1d,0x21,0x1d,0x1b,0x17,0x21,0x1c,0x1d,0x18,0x1c,0x1d,0x1f,0x1e,0x19,0x1d,0x1c,0x1f,0x1c,0x21,0x1d,0x1e,0x1f,0x1d,0x1b,0x1d,0x1d,0x1e,0x21,0x1c,0x20,0x1e,0x04,0x05,0x06,0x08,0x06,0x0b,0x0f,0x24,0x18,0x1a,0x19,0x18,0x1a,0x18,0x18,0x1b,0x19, -0x18,0x0d,0x23,0x19,0x18,0x18,0x17,0x19,0x16,0x18,0x0b,0x19,0x16,0x18,0x11,0x24,0x17,0x18,0x18,0x19,0x23,0x18,0x19,0x11,0x23,0x19,0x19,0x1d,0x1d,0x09,0x0c,0x30,0x2f,0x2f,0x30,0x3c,0x17,0x17,0x0a,0x17,0x10,0x17,0x17,0x18,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x18, -0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x15,0x19,0x12,0x12,0x18,0x1a,0x0b,0x0d,0x15,0x11,0x20,0x1b,0x1a,0x14,0x1a,0x15,0x12,0x12,0x19,0x15,0x22,0x15,0x14,0x14,0x1e,0x21,0x11,0x1a,0x14,0x19,0x16,0x15,0x15,0x15,0x15,0x15,0x15, -0x15,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x19,0x14,0x15,0x15,0x15,0x15,0x15,0x18,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x15,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x18,0x0d,0x15,0x11,0x11,0x11,0x11,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x1e,0x1a,0x15,0x15,0x10,0x17,0x12,0x14,0x1a,0x1a,0x0b,0x15,0x15,0x20,0x1b,0x13,0x1a,0x1a,0x14,0x13,0x12,0x14,0x1a,0x15,0x1c,0x1b,0x15,0x12,0x1a,0x0b,0x1a,0x14,0x1b,0x0b,0x14,0x12,0x18,0x11,0x16,0x12,0x0b,0x0b,0x0d, -0x22,0x23,0x1a,0x15,0x15,0x1a,0x15,0x14,0x15,0x11,0x19,0x12,0x1f,0x13,0x1b,0x1b,0x15,0x18,0x20,0x1a,0x1a,0x1a,0x14,0x15,0x12,0x15,0x1a,0x15,0x1b,0x17,0x22,0x23,0x18,0x1e,0x15,0x16,0x24,0x15,0x11,0x18,0x18,0x1a,0x25,0x25,0x1c,0x15,0x18,0x12,0x18,0x18,0x18,0x1d,0x16,0x16,0x1d,0x18,0x18,0x0f,0x1a,0x1a,0x18,0x15,0x15,0x26, -0x1f,0x14,0x16,0x19,0x19,0x1a,0x1a,0x1e,0x1d,0x0f,0x27,0x19,0x17,0x18,0x1b,0x1b,0x15,0x15,0x0b,0x20,0x1d,0x1d,0x14,0x1d,0x09,0x09,0x12,0x12,0x09,0x09,0x1a,0x11,0x0b,0x20,0x1e,0x0c,0x09,0x09,0x13,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x1c,0x14,0x0d,0x19,0x1d,0x19,0x18,0x15,0x1f,0x18,0x19,0x0f,0x12,0x16,0x12,0x09,0x0a,0x10,0x16, -0x0e,0x1c,0x1c,0x1c,0x27,0x20,0x27,0x0b,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x23,0x0e,0x0e,0x15,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x15,0x15,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x23,0x23,0x23,0x27,0x27,0x15,0x15,0x27,0x27,0x15,0x15,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e, -0x0e,0x2a,0x20,0x23,0x15,0x19,0x19,0x1c,0x0e,0x1c,0x20,0x15,0x15,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x27,0x0e,0x20,0x15,0x15,0x0b,0x15,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15, -0x15,0x15,0x15,0x15,0x15,0x15,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x20,0x15,0x15,0x20,0x15,0x15,0x27,0x15,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x0e,0x1c,0x1c,0x0e, -0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x15,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x15,0x0e,0x0e,0x0e,0x0e,0x00,0x31,0x23,0x38,0x2a,0x27,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x15,0x15,0x12,0x31,0x23,0x2a,0x2a,0x27,0x27,0x27,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e, -0x1c,0x0e,0x31,0x23,0x19,0x1c,0x19,0x19,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x12,0x12,0x19,0x19,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x19,0x19,0x19,0x19,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x31,0x31,0x23,0x23,0x23,0x23,0x15,0x15,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x0b,0x0b,0x0e,0x0b,0x00,0x00,0x00,0x23,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, -0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x19,0x23,0x19,0x23,0x19,0x23,0x19,0x23,0x1c,0x1c,0x1c,0x0b,0x0b,0x15,0x12,0x18,0x1b,0x18,0x17,0x17,0x19,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x16,0x13,0x17,0x16,0x19,0x1a,0x1a,0x1c,0x18,0x18,0x1b,0x16,0x1c,0x20,0x1b,0x1f,0x23,0x1b,0x20,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x13,0x17,0x19,0x19,0x1c,0x18,0x1b,0x18,0x19,0x19,0x15,0x15,0x20,0x1d,0x1d,0x1c,0x1d,0x19,0x18,0x18,0x1f,0x20,0x20,0x20,0x27,0x27,0x1d,0x27,0x27, -0x1f,0x25,0x24,0x17,0x20,0x24,0x20,0x19,0x24,0x1f,0x1d,0x1d,0x19,0x1b,0x1f,0x21,0x1d,0x1a,0x1e,0x18,0x16,0x27,0x27,0x27,0x23,0x27,0x27,0x1d,0x27,0x27,0x1e,0x20,0x21,0x1f,0x1e,0x1e,0x1b,0x25,0x20,0x23,0x1e,0x1e,0x18,0x1f,0x1d,0x1d,0x24,0x20,0x1e,0x26,0x17,0x15,0x17,0x17,0x1a,0x1a,0x1d,0x1f,0x18,0x18,0x18,0x17,0x18,0x17, -0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x15,0x16,0x19,0x1a,0x19,0x19,0x13,0x18,0x18,0x19,0x19,0x20,0x23,0x1b,0x1b,0x1a,0x20,0x1b,0x1d,0x16,0x14,0x19,0x18,0x14,0x15,0x17,0x17,0x14,0x14,0x1a,0x13,0x17,0x15,0x17,0x21,0x18,0x23,0x17,0x18,0x18,0x1f,0x0d,0x21,0x1d,0x1e,0x1c,0x18,0x20,0x19,0x21,0x19,0x19,0x19,0x19,0x19,0x19,0x18, -0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x14,0x13,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x1a,0x0b,0x0b,0x0b,0x0d,0x0d,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x26,0x26,0x26,0x26,0x15,0x1f,0x1e,0x15,0x11,0x15,0x16,0x17,0x15,0x23,0x23,0x24,0x13,0x2a,0x15,0x23,0x23,0x23,0x22,0x18,0x15, -0x15,0x21,0x19,0x21,0x1c,0x16,0x13,0x11,0x2b,0x11,0x16,0x15,0x15,0x15,0x15,0x15,0x39,0x23,0x23,0x12,0x0b,0x13,0x0a,0x13,0x0a,0x0a,0x0a,0x14,0x19,0x19,0x17,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x11,0x24,0x09,0x26,0x26,0x26,0x19,0x19,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x31,0x31,0x1c,0x31,0x31,0x1c,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x14,0x18,0x14,0x16,0x12,0x0f,0x0f,0x1d,0x17,0x1e,0x12,0x2f,0x26,0x19,0x17,0x27,0x21,0x23,0x1f,0x2b,0x22,0x27,0x20,0x1b,0x14,0x1f,0x19,0x27,0x1f,0x20,0x1a,0x1f,0x19, -0x24,0x1c,0x25,0x1c,0x2e,0x23,0x20,0x19,0x20,0x19,0x33,0x25,0x21,0x00,0x29,0x29,0x29,0x14,0x00,0x00,0x18,0x15,0x1d,0x17,0x16,0x12,0x2d,0x26,0x28,0x24,0x1e,0x18,0x1d,0x19,0x16,0x11,0x1f,0x19,0x16,0x11,0x22,0x1c,0x1c,0x18,0x29,0x22,0x17,0x18,0x1f,0x1f,0x22,0x13,0x08,0x13,0x1d,0x12,0x2a,0x2a,0x0a,0x00,0x29,0x29,0x29,0x29, -0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x11,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, -0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20, -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x1c,0x1f,0x0c,0x09,0x0c,0x09,0x1e,0x18,0x1f,0x1a,0x17,0x14,0x16,0x14,0x19,0x18,0x12,0x12,0x2f,0x22,0x30,0x25,0x29,0x24,0x26,0x1c,0x26,0x1c,0x26,0x1c,0x1a,0x13,0x18,0x15,0x18,0x15,0x18,0x15,0x17,0x0d,0x14,0x0a,0x20,0x19,0x24,0x1c,0x38,0x2a,0x18, -0x19,0x1d,0x1e,0x22,0x24,0x20,0x19,0x29,0x21,0x17,0x11,0x17,0x15,0x1a,0x14,0x27,0x1e,0x1a,0x16,0x18,0x19,0x18,0x19,0x14,0x11,0x14,0x10,0x14,0x0f,0x16,0x16,0x0d,0x1c,0x0e,0x28,0x1c,0x0f,0x18,0x1a,0x13,0x20,0x17,0x10,0x0f,0x18,0x18,0x18,0x14,0x0a,0x20,0x19,0x10,0x0f,0x1a,0x13,0x1e,0x10,0x21,0x19,0x1a,0x13,0x1d,0x19,0x18, -0x15,0x1f,0x18,0x19,0x0f,0x16,0x12,0x20,0x12,0x16,0x24,0x15,0x18,0x26,0x0b,0x30,0x26,0x26,0x32,0x25,0x26,0x26,0x25,0x25,0x27,0x16,0x14,0x1a,0x1d,0x26,0x1d,0x28,0x0a,0x13,0x19,0x24,0x2b,0x1d,0x2b,0x1a,0x1a,0x21,0x1d,0x30,0x27,0x16,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x2a,0x15,0x15,0x2a,0x20,0x15, -0x15,0x20,0x1c,0x0e,0x0e,0x1c,0x19,0x19,0x19,0x19,0x20,0x0e,0x0e,0x23,0x20,0x0e,0x0e,0x23,0x12,0x12,0x15,0x15,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x16,0x11,0x18,0x16,0x1f,0x18,0x18,0x25,0x1c,0x1f,0x20,0x23, -0x22,0x18,0x15,0x2a,0x22,0x2c,0x24,0x1d,0x19,0x0d,0x0d,0x19,0x1b,0x11,0x19,0x16,0x18,0x14,0x1f,0x22,0x11,0x19,0x12,0x09,0x10,0x16,0x17,0x09,0x09,0x08,0x09,0x10,0x10,0x10,0x13,0x3f,0x54,0x0e,0x11,0x06,0x0b,0x10,0x12,0x0d,0x15,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x38,0x17,0x20, -0x27,0x26,0x1b,0x13,0x18,0x1e,0x1f,0x15,0x0d,0x1c,0x16,0x1d,0x17,0x1c,0x16,0x17,0x1f,0x19,0x18,0x16,0x1f,0x1a,0x23,0x13,0x16,0x1b,0x0d,0x19,0x0e,0x0f,0x0a,0x25,0x18,0x18,0x16,0x16,0x19,0x27,0x27,0x28,0x2a,0x2a,0x17,0x15,0x0c,0x15,0x13,0x1a,0x13,0x1c,0x0a,0x18,0x19,0x24,0x24,0x1a,0x17,0x18,0x17,0x16,0x13,0x16,0x13,0x14, -0x0d,0x0e,0x0a,0x09,0x0f,0x18,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x00,0x0c,0x0c,0x0c,0x0b,0x0b,0x47,0x2a,0x25,0x2c,0x0c,0x0c,0x0e,0x11,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x27,0x0e,0x0e,0x27,0x0b,0x15,0x15,0x38,0x2a,0x2a,0x38,0x27,0x15,0x15, -0x27,0x15,0x15,0x12,0x12,0x00,0x00,0x0f,0x1f,0x19,0x1e,0x18,0x35,0x2b,0x1d,0x17,0x1d,0x17,0x38,0x2a,0x20,0x19,0x10,0x0d,0x1a,0x00,0x1d,0x17,0x0e,0x0d,0x07,0x15,0x0e,0x0e,0x0b,0x08,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x09,0x16,0x12,0x19,0x18,0x17,0x28,0x22,0x22,0x21,0x22,0x28,0x1a,0x1d,0x19,0x11,0x27,0x2f,0x12, -0x31,0x15,0x23,0x27,0x27,0x27,0x12,0x20,0x2a,0x20,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x19,0x19,0x19,0x23,0x15,0x15,0x27,0x0e,0x0e,0x27,0x0e,0x0e,0x27,0x15,0x15,0x00,0x12,0x23,0x0e,0x0e,0x2a,0x15,0x15,0x20,0x15,0x15,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x3f,0x25,0x00,0x00,0x25,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x1c,0x1a,0x1b,0x1b,0x25,0x1b,0x1a,0x22,0x29,0x1b,0x1a,0x2d,0x1b,0x1b,0x27,0x1a,0x1c,0x21,0x1b,0x20,0x24,0x26,0x1b,0x20,0x1b,0x1d,0x1a,0x1d,0x1a,0x1c,0x1d,0x1a,0x21,0x19,0x1c,0x21, -0x1a,0x1a,0x18,0x21,0x1b,0x1b,0x1b,0x1d,0x13,0x16,0x1b,0x21,0x21,0x17,0x00,0x00,0x2e,0x5c,0x1e,0x00,0x04,0x0d,0x0d,0x12,0x1b,0x19,0x26,0x25,0x0b,0x0e,0x0e,0x13,0x1f,0x0a,0x12,0x0a,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x0a,0x1f,0x1f,0x1f,0x15,0x2c,0x1e,0x1a,0x1c,0x20,0x17,0x16,0x20,0x21,0x0c,0x10, -0x1b,0x16,0x29,0x22,0x23,0x1a,0x23,0x1c,0x18,0x18,0x20,0x1d,0x2b,0x1b,0x19,0x1a,0x0e,0x11,0x0e,0x1f,0x13,0x0c,0x17,0x1b,0x15,0x1b,0x18,0x0e,0x1b,0x1a,0x0b,0x0b,0x17,0x0b,0x28,0x1a,0x1b,0x1b,0x1b,0x10,0x14,0x10,0x1a,0x16,0x21,0x15,0x16,0x15,0x0e,0x0b,0x0e,0x1f,0x1e,0x1e,0x1c,0x17,0x22,0x23,0x20,0x17,0x17,0x17,0x17,0x17, -0x17,0x15,0x18,0x18,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x19,0x19,0x15,0x13,0x15,0x19,0x12,0x29,0x29,0x24,0x0d,0x13,0x20,0x28,0x23,0x26,0x1f,0x20,0x20,0x19,0x1b,0x19,0x1c,0x23,0x19,0x12,0x14,0x23,0x26,0x1b,0x15,0x0d,0x0d,0x1f,0x1e,0x19,0x20,0x1e,0x17,0x17,0x22,0x1e, -0x1e,0x23,0x2b,0x2b,0x17,0x2e,0x11,0x11,0x0b,0x0b,0x1f,0x1b,0x16,0x19,0x08,0x19,0x0f,0x0f,0x1a,0x1a,0x11,0x0a,0x0b,0x11,0x38,0x1e,0x17,0x1e,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x23,0x23,0x23,0x20,0x20,0x20,0x0b,0x11,0x10,0x0e,0x0e,0x09,0x0d,0x09,0x0f,0x09,0x11,0x16,0x0d,0x18,0x14,0x1a,0x15,0x0b,0x20,0x1a,0x19,0x16,0x1a,0x1b, -0x1f,0x1f,0x10,0x11,0x11,0x2b,0x2a,0x2c,0x16,0x20,0x1b,0x0c,0x18,0x14,0x1c,0x15,0x1c,0x15,0x1b,0x13,0x0a,0x1e,0x17,0x1e,0x17,0x20,0x1f,0x20,0x17,0x18,0x17,0x18,0x16,0x0b,0x16,0x0e,0x16,0x0e,0x22,0x1a,0x22,0x1a,0x23,0x1b,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x10,0x18,0x14,0x20,0x1a,0x20,0x1a,0x1a,0x15,0x1a,0x15,0x16,0x23, -0x23,0x1c,0x1b,0x14,0x1a,0x16,0x20,0x13,0x16,0x12,0x33,0x1d,0x17,0x1c,0x0b,0x11,0x25,0x0f,0x1c,0x10,0x10,0x1c,0x10,0x1e,0x17,0x1c,0x15,0x1c,0x15,0x17,0x18,0x17,0x18,0x17,0x18,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x10,0x0b,0x1b,0x17,0x17,0x16,0x0b,0x22,0x1a,0x22,0x1a, -0x23,0x1b,0x23,0x1b,0x1c,0x10,0x18,0x14,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x2b,0x21,0x19,0x16,0x0b,0x1e,0x17,0x28,0x26,0x23,0x1b,0x0a,0x2b,0x21,0x2b,0x21,0x2b,0x21,0x19,0x16,0x0b,0x13,0x19,0x1c,0x2a,0x2a,0x2b,0x29,0x12,0x12,0x0a,0x0d,0x0d,0x1e,0x1a,0x24,0x11,0x25,0x1f,0x26,0x0c,0x1e,0x1a,0x17,0x1a,0x21, -0x0c,0x1b,0x1d,0x29,0x22,0x17,0x23,0x21,0x1a,0x18,0x18,0x19,0x1b,0x24,0x23,0x0c,0x19,0x1c,0x14,0x1a,0x0c,0x19,0x19,0x18,0x14,0x1a,0x1b,0x0c,0x18,0x17,0x1b,0x18,0x14,0x1b,0x1b,0x15,0x19,0x19,0x23,0x25,0x0c,0x19,0x1b,0x19,0x25,0x17,0x20,0x16,0x1c,0x18,0x0c,0x2d,0x2d,0x21,0x1b,0x1a,0x21,0x1e,0x1a,0x1a,0x16,0x20,0x17,0x28, -0x19,0x22,0x22,0x1b,0x1f,0x29,0x21,0x23,0x21,0x1a,0x1c,0x18,0x1a,0x21,0x1b,0x22,0x1e,0x2c,0x2d,0x20,0x24,0x1b,0x1c,0x2f,0x1b,0x17,0x1b,0x18,0x12,0x19,0x18,0x22,0x15,0x1b,0x1b,0x17,0x18,0x20,0x1b,0x1b,0x1b,0x1b,0x15,0x13,0x16,0x20,0x15,0x1c,0x1a,0x25,0x26,0x1b,0x21,0x17,0x15,0x25,0x17,0x18,0x1b,0x12,0x15,0x14,0x0b,0x24, -0x25,0x1a,0x17,0x16,0x1b,0x16,0x12,0x2e,0x34,0x1d,0x10,0x11,0x11,0x11,0x0b,0x18,0x14,0x1a,0x23,0x1b,0x21,0x1b,0x0e,0x0f,0x0c,0x0c,0x16,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x16,0x0e,0x16,0x0e,0x0e,0x0e,0x16,0x16,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e, -0x17,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x0c,0x0b,0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x19,0x16,0x19,0x16,0x19, -0x16,0x18,0x10,0x17,0x18,0x22,0x1b,0x0c,0x10,0x0b,0x0b,0x18,0x13,0x2a,0x24,0x1c,0x18,0x1b,0x17,0x22,0x1c,0x19,0x16,0x19,0x16,0x1d,0x17,0x1e,0x1a,0x1e,0x1a,0x21,0x18,0x23,0x1b,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x17,0x18,0x1e,0x17,0x1a,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x15,0x20, -0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x16,0x0e,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x29,0x28,0x29,0x28,0x29,0x28,0x22,0x1a,0x22,0x1a,0x22,0x1a,0x22, -0x1a,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x10,0x18,0x10,0x18,0x10,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x1d,0x16,0x1d,0x16,0x2b,0x21,0x2b,0x21,0x1b,0x15,0x1b,0x15,0x19,0x16,0x1a, -0x15,0x1a,0x15,0x1a,0x15,0x1a,0x10,0x21,0x16,0x17,0x0b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x21,0x21,0x21,0x21,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11, -0x11,0x17,0x17,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1f,0x26,0x26,0x26,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x14,0x14,0x1a,0x1a,0x0c,0x0c,0x1b,0x1b,0x19,0x19,0x25,0x25,0x1c,0x1c,0x1c, -0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x21,0x1b,0x1b,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1f,0x1f,0x1d,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x27,0x26,0x23,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x1b,0x1c,0x1a,0x1b,0x1b,0x1b,0x1d,0x1d,0x15,0x20,0x22,0x1a,0x1b,0x1b,0x17,0x19,0x16,0x20,0x1d,0x28,0x0d,0x0d,0x1b,0x17,0x0b,0x17,0x29,0x22,0x1a,0x23,0x2d,0x24,0x1c,0x1b,0x1b,0x18,0x14,0x18,0x0e,0x10,0x18,0x10,0x18,0x23,0x21,0x1a,0x18,0x1a,0x15,0x1c,0x1c,0x14,0x13,0x19,0x19,0x11,0x12,0x19,0x0b,0x12,0x15,0x0d, -0x39,0x34,0x2f,0x27,0x21,0x17,0x31,0x2d,0x25,0x1e,0x17,0x0c,0x0b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x18,0x1e,0x17,0x1e,0x17,0x28,0x26,0x20,0x1b,0x20,0x1b,0x1b,0x17,0x23,0x1b,0x23,0x1b,0x1c,0x14,0x0b,0x39,0x34,0x2f,0x20,0x1b,0x2e,0x20,0x22,0x1a,0x1e,0x17,0x1e,0x17,0x17,0x18,0x17,0x18,0x0c,0x0b, -0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x1a,0x10,0x1c,0x10,0x20,0x1a,0x20,0x1a,0x17,0x14,0x21,0x1a,0x22,0x1b,0x1a,0x1a,0x15,0x1e,0x17,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x19,0x16,0x1b,0x17,0x1a,0x1a,0x1b,0x17,0x1b,0x1b,0x1b,0x15,0x15,0x1b,0x1b,0x18,0x1c,0x13,0x13,0x17,0x19,0x0d,0x1b,0x1b,0x18,0x16,0x15,0x1a,0x1a,0x1a,0x0c, -0x0d,0x0f,0x0d,0x11,0x0b,0x1c,0x28,0x28,0x28,0x1a,0x1a,0x1b,0x1b,0x20,0x21,0x1d,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x12,0x0b,0x0c,0x0d,0x0d,0x10,0x10,0x1c,0x1b,0x1a,0x16,0x21,0x16,0x13,0x15,0x18,0x14,0x14,0x11,0x11,0x11,0x15,0x1c,0x16,0x19,0x18,0x1a,0x0b,0x17,0x12,0x1b,0x11,0x11,0x2a,0x2c,0x2d,0x1c,0x16,0x21, -0x24,0x1b,0x1a,0x17,0x17,0x19,0x1b,0x1a,0x1f,0x1a,0x1d,0x25,0x1a,0x20,0x1b,0x1b,0x15,0x17,0x15,0x1b,0x17,0x1c,0x17,0x29,0x28,0x1c,0x17,0x1d,0x19,0x1c,0x15,0x1b,0x16,0x1e,0x1b,0x1a,0x13,0x1a,0x1b,0x15,0x0b,0x23,0x15,0x15,0x28,0x1f,0x1e,0x1b,0x2a,0x21,0x1f,0x17,0x28,0x20,0x21,0x1a,0x2b,0x22,0x19,0x15,0x24,0x23,0x23,0x1b, -0x21,0x1b,0x21,0x1b,0x3c,0x33,0x26,0x1e,0x34,0x29,0x28,0x1f,0x1b,0x14,0x17,0x12,0x13,0x00,0x00,0x2d,0x2c,0x1b,0x17,0x1a,0x1b,0x1a,0x17,0x19,0x15,0x1b,0x17,0x21,0x1b,0x27,0x1f,0x2f,0x26,0x21,0x1a,0x1c,0x15,0x18,0x13,0x28,0x1f,0x20,0x1b,0x26,0x1d,0x26,0x1d,0x0c,0x28,0x22,0x1b,0x17,0x21,0x1b,0x1e,0x1a,0x1e,0x17,0x1e,0x17, -0x28,0x26,0x17,0x18,0x21,0x18,0x21,0x18,0x28,0x22,0x19,0x15,0x18,0x14,0x22,0x1b,0x22,0x1b,0x23,0x1b,0x23,0x1b,0x1c,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1e,0x1a,0x24,0x21,0x1a,0x1b,0x27,0x28,0x25,0x21,0x1a,0x16,0x2a,0x25,0x2e,0x27,0x21,0x18,0x1f,0x1c,0x1b,0x1a,0x1a,0x17,0x1b,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1b,0x0f,0x0f,0x08,0x0a,0x0a,0x0a,0x0d,0x12,0x0d,0x0b,0x11,0x0a,0x0a,0x0a,0x0f,0x0f,0x0a,0x0a,0x1b,0x1b,0x1b,0x1b,0x0f,0x0d,0x0c,0x0f,0x0e,0x0c,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0d,0x07,0x0b,0x0d,0x0a,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x0f,0x13,0x0f,0x0b,0x0c, -0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19, -0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19, -0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1d,0x10,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0f,0x0f,0x10,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x1b,0x16,0x1e,0x26,0x16,0x15,0x19,0x1a,0x13,0x13,0x0b,0x0e,0x17, -0x12,0x20,0x1b,0x1b,0x16,0x1c,0x1c,0x1c,0x2b,0x19,0x1b,0x1b,0x15,0x15,0x15,0x13,0x19,0x1a,0x21,0x1a,0x16,0x21,0x15,0x13,0x13,0x18,0x12,0x16,0x1b,0x15,0x1b,0x1a,0x11,0x16,0x10,0x10,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0d,0x18,0x14,0x14,0x14,0x12,0x10,0x10,0x0d,0x13,0x18,0x0e,0x0e,0x10,0x16,0x10,0x10,0x0e,0x0e,0x0c, -0x0c,0x10,0x08,0x0e,0x17,0x0f,0x10,0x0c,0x10,0x10,0x10,0x09,0x0f,0x0f,0x17,0x0d,0x0f,0x0f,0x0d,0x10,0x13,0x0e,0x08,0x0a,0x0f,0x0d,0x0f,0x0d,0x10,0x13,0x0e,0x1b,0x08,0x10,0x19,0x28,0x1d,0x19,0x19,0x28,0x1e,0x27,0x22,0x18,0x1b,0x17,0x15,0x34,0x15,0x1b,0x29,0x2b,0x2b,0x1d,0x1e,0x1c,0x15,0x16,0x18,0x14,0x15,0x18,0x09,0x00, -0x00,0x00,0x00,0x1b,0x1c,0x1c,0x1c,0x16,0x12,0x1b,0x1b,0x0e,0x28,0x1a,0x1b,0x10,0x0f,0x15,0x10,0x15,0x1b,0x15,0x1b,0x2a,0x1e,0x0f,0x0c,0x1b,0x19,0x1b,0x1b,0x1b,0x0e,0x1b,0x17,0x0b,0x28,0x1a,0x1b,0x10,0x14,0x14,0x16,0x15,0x15,0x17,0x1b,0x1b,0x18,0x14,0x15,0x22,0x0b,0x15,0x0b,0x1a,0x14,0x10,0x0c,0x0c,0x10,0x0c,0x08,0x08, -0x10,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x17,0x17,0x0f,0x0f,0x10,0x0f,0x11,0x0b,0x08,0x09,0x0f,0x10,0x0f,0x0f,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x00,0x00,0x00,0x00,0x0a,0x0e,0x0e,0x10,0x0c,0x0e,0x19,0x19,0x19,0x19,0x0f,0x00,0x00,0x00,0x00,0x15,0x0e,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c, -0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x08,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x0e,0x0e,0x24,0x1d,0x21,0x1b,0x22,0x1d,0x2b,0x23,0x19,0x11,0x18,0x1f,0x19,0x26,0x20,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x2e,0x13,0x0c,0x17,0x1b,0x13,0x17,0x17,0x1b,0x1b,0x17,0x2e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x1e,0x17,0x17,0x17, -0x0f,0x1b,0x0f,0x23,0x1f,0x17,0x0f,0x26,0x17,0x26,0x0c,0x0f,0x1b,0x1b,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x26,0x0c,0x1b,0x0c,0x17,0x13,0x0c,0x0c,0x17,0x0c,0x23,0x0c,0x2a,0x17,0x2a,0x2a,0x1b,0x1b,0x1b,0x17,0x17,0x13,0x13,0x36,0x36,0x3d,0x3d,0x26,0x26,0x17,0x17,0x08,0x2e,0x23,0x26,0x1f,0x1b,0x1f,0x17,0x17,0x23,0x23,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1e,0x00,0x1e,0x1e,0x1e,0x0f,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x13,0x2a,0x17,0x2a,0x17,0x23,0x26,0x0f,0x17,0x17,0x13,0x0c,0x17,0x1b,0x17,0x1b,0x17,0x1b,0x1b,0x17,0x1f,0x1e,0x2a,0x0f,0x17,0x13,0x1f,0x17,0x0f,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x0c,0x1b,0x12,0x2e,0x17, -0x17,0x1e,0x1e,0x2e,0x17,0x00,0x00,0x00,0x1e,0x00,0x1e,0x1e,0x1e,0x1e,0x23,0x1e,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x17,0x17,0x23,0x26,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x13,0x13,0x13,0x17,0x13,0x13,0x13,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x17,0x1b,0x1b,0x1b,0x2e,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x23,0x23,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x0f,0x1f, -0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x1f,0x0f,0x1f,0x0f,0x19,0x1f,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x26,0x2a,0x23,0x26,0x0f,0x17,0x23,0x26,0x23,0x26,0x00,0x00,0x00,0x00,0x00,0x34,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x13,0x00,0x00,0x1c,0x00,0x00,0x00,0x36,0x26,0x3d,0x2e,0x17,0x1b,0x1b,0x1b,0x13,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x2a,0x2a,0x11,0x1b,0x1b,0x1b,0x38,0x26,0x18,0x46,0x32,0x0f,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x17,0x13,0x13,0x23,0x1f,0x1f,0x17,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x3a,0x45,0x00,0x00,0x00,0x00,0x00,0x1b,0x17,0x00,0x00, -0x00,0x00,0x00,0x00,0x2a,0x13,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x13,0x36,0x26,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f, -0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x13,0x13,0x36,0x26,0x1e,0x1b,0x1b,0x00,0x17,0x17,0x17,0x11,0x1a,0x20,0x1d,0x17,0x18,0x10,0x0b,0x23,0x1b,0x1c,0x10,0x19,0x16,0x16,0x15,0x16,0x0b,0x18,0x13,0x1c,0x16,0x1b,0x15,0x19,0x14,0x1f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x15,0x16,0x16,0x0d,0x18,0x1a,0x1c,0x17,0x10, -0x22,0x1b,0x1d,0x19,0x1d,0x17,0x1a,0x18,0x12,0x20,0x11,0x13,0x13,0x16,0x1c,0x1c,0x17,0x2e,0x17,0x2e,0x0f,0x0c,0x08,0x19,0x0a,0x06,0x00,0x06,0x0a,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x2b,0x14,0x23,0x1b,0x2b,0x21,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x2a,0x28,0x16, -0x28,0x16,0x28,0x1e,0x1f,0x20,0x20,0x23,0x28,0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x22,0x1b,0x31,0x26,0x16,0x16,0x0d,0x0d,0x0d,0x11,0x0a,0x1a,0x0b,0x0b,0x26,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x1d,0x1a,0x14,0x16,0x1f,0x0c, -0x10,0x1f,0x1f,0x0c,0x1a,0x19,0x19,0x20,0x1f,0x0c,0x12,0x1f,0x1c,0x1c,0x1d,0x1a,0x1b,0x1f,0x1a,0x24,0x21,0x18,0x18,0x18,0x0b,0x11,0x1a,0x1a,0x19,0x19,0x19,0x1c,0x1d,0x16,0x1f,0x19,0x19,0x20,0x1a,0x21,0x19,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1a,0x14,0x16,0x1f,0x0e,0x10,0x1f,0x0e,0x1a,0x19,0x19,0x1f,0x12,0x1f,0x1c,0x1d, -0x1b,0x1f,0x1a,0x24,0x21,0x0c,0x1a,0x19,0x1d,0x1e,0x37,0x00,0x1d,0x19,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0c,0x00,0x23,0x1e,0x1f,0x20,0x19,0x1f,0x22,0x23,0x16,0x1d,0x22,0x22, -0x1e,0x23,0x25,0x24,0x1f,0x19,0x1a,0x23,0x20,0x1a,0x20,0x1f,0x1e,0x1f,0x20,0x22,0x1b,0x1d,0x1f,0x1e,0x24,0x1d,0x1c,0x1e,0x1f,0x26,0x17,0x1b,0x1b,0x28,0x19,0x19,0x23,0x29,0x1c,0x19,0x30,0x1a,0x1a,0x23,0x19,0x19,0x23,0x1a,0x23,0x25,0x28,0x19,0x24,0x19,0x1e,0x19,0x1c,0x1a,0x1d,0x19,0x1c,0x23,0x19,0x1d,0x1f,0x19,0x19,0x1b, -0x2c,0x19,0x19,0x1b,0x1b,0x14,0x0f,0x1a,0x1a,0x1a,0x19,0x1a,0x29,0x1a,0x29,0x17,0x1a,0x29,0x1f,0x1a,0x29,0x22,0x22,0x29,0x1b,0x1a,0x29,0x29,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x29,0x29,0x1b,0x1a,0x1a,0x29,0x1b,0x19,0x1a,0x1a,0x29,0x24,0x20,0x20,0x20,0x20,0x21,0x1d,0x20,0x24,0x20,0x1e,0x19,0x24,0x1f,0x20,0x1a,0x1f,0x20,0x22, -0x21,0x1b,0x20,0x1f,0x21,0x1f,0x24,0x20,0x21,0x21,0x1f,0x1d,0x20,0x1f,0x21,0x24,0x1e,0x23,0x21,0x05,0x05,0x07,0x09,0x07,0x0c,0x10,0x28,0x1a,0x1c,0x1b,0x1a,0x1c,0x1a,0x1a,0x1e,0x1c,0x1a,0x0e,0x26,0x1b,0x1a,0x1a,0x19,0x1c,0x18,0x1b,0x0c,0x1b,0x18,0x1a,0x13,0x28,0x19,0x1a,0x1a,0x1b,0x26,0x1a,0x1b,0x12,0x26,0x1b,0x1b,0x20, -0x1f,0x0a,0x0d,0x34,0x34,0x34,0x34,0x42,0x19,0x19,0x0b,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17, -0x1b,0x14,0x13,0x1a,0x1c,0x0c,0x0e,0x17,0x13,0x23,0x1e,0x1c,0x16,0x1c,0x17,0x13,0x14,0x1b,0x17,0x25,0x17,0x15,0x16,0x20,0x24,0x13,0x1d,0x16,0x1b,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x1e,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b,0x1b,0x1b,0x15,0x17,0x17,0x17,0x17,0x17,0x1a,0x1b,0x1b, -0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x17,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1a,0x0e,0x17,0x13,0x13,0x13,0x13,0x1e,0x1e,0x1e,0x1e,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x20,0x1d,0x17,0x17,0x12,0x19,0x14, -0x16,0x1c,0x1c,0x0c,0x17,0x17,0x23,0x1e,0x15,0x1c,0x1c,0x16,0x15,0x14,0x15,0x1d,0x17,0x1e,0x1d,0x17,0x14,0x1c,0x0c,0x1c,0x15,0x1d,0x0c,0x15,0x14,0x1a,0x12,0x18,0x13,0x0c,0x0c,0x0e,0x25,0x26,0x1c,0x17,0x17,0x1c,0x17,0x16,0x17,0x12,0x1b,0x14,0x22,0x14,0x1e,0x1e,0x17,0x1a,0x23,0x1c,0x1c,0x1c,0x16,0x17,0x14,0x17,0x1d,0x17, -0x1d,0x19,0x25,0x26,0x1a,0x20,0x17,0x18,0x28,0x16,0x12,0x1b,0x1b,0x1d,0x29,0x29,0x1e,0x17,0x1a,0x13,0x1a,0x1a,0x1a,0x20,0x18,0x18,0x20,0x1b,0x1b,0x10,0x1c,0x1c,0x1a,0x16,0x16,0x29,0x22,0x16,0x18,0x1c,0x1c,0x1d,0x1d,0x21,0x20,0x10,0x2b,0x1b,0x19,0x1a,0x1e,0x1e,0x17,0x17,0x0c,0x23,0x20,0x20,0x16,0x20,0x0a,0x0a,0x14,0x14, -0x0a,0x0a,0x1c,0x12,0x0c,0x23,0x20,0x0d,0x0a,0x0a,0x15,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x1f,0x16,0x0e,0x1c,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x14,0x18,0x14,0x0a,0x0b,0x12,0x18,0x10,0x1f,0x1f,0x1f,0x2a,0x23,0x2a,0x0c,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x26,0x0f,0x0f,0x17,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b, -0x1b,0x17,0x17,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x26,0x26,0x26,0x2a,0x2a,0x17,0x17,0x2a,0x2a,0x17,0x17,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x2e,0x23,0x26,0x17,0x1b,0x1b,0x1f,0x0f,0x1f,0x23,0x17,0x17,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, -0x2a,0x0f,0x23,0x17,0x17,0x0c,0x17,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x23,0x17,0x17, -0x23,0x17,0x17,0x2a,0x17,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x17,0x0f,0x0f,0x0f,0x0f,0x00,0x36,0x26, -0x3d,0x2e,0x2a,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x17,0x17,0x13,0x36,0x26,0x2e,0x2e,0x2a,0x2a,0x2a,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x36,0x26,0x1b,0x1f,0x1b,0x1b,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x23,0x26, -0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x36,0x36,0x26,0x26,0x26,0x26,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x0f,0x0c,0x00,0x00,0x00,0x26,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x23,0x23, -0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, -0x23,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1f,0x1f,0x1f,0x0c,0x0c,0x17,0x13,0x1b,0x1d,0x1a,0x19,0x1a,0x1b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x15,0x19,0x18,0x1b,0x1c,0x1c,0x1e,0x1b,0x1a,0x1e,0x18,0x1f,0x23,0x1d,0x22,0x26,0x1d,0x23,0x20,0x1a,0x1a,0x1a,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x15,0x19,0x1c,0x1c,0x1e,0x1a,0x1e,0x1a,0x1b,0x1c,0x17,0x17,0x23,0x1f,0x20,0x1f,0x1f,0x1b,0x1b,0x1b,0x22,0x23,0x23,0x23,0x2a,0x2a,0x20,0x2a,0x2a,0x22,0x28,0x27,0x1a,0x23,0x27,0x23,0x1b,0x27,0x22,0x20,0x20,0x1c,0x1e,0x22,0x25,0x20,0x1c,0x21,0x1b,0x19,0x2a,0x2a,0x2a,0x26,0x2a,0x2a,0x1f, -0x2a,0x2a,0x21,0x23,0x24,0x22,0x21,0x21,0x1e,0x29,0x23,0x26,0x21,0x21,0x1b,0x22,0x20,0x20,0x27,0x23,0x21,0x29,0x19,0x17,0x1a,0x19,0x1c,0x1d,0x20,0x22,0x1b,0x1a,0x1a,0x19,0x1a,0x19,0x19,0x1a,0x1a,0x1b,0x1a,0x1a,0x1a,0x17,0x18,0x1b,0x1d,0x1c,0x1c,0x15,0x1a,0x1a,0x1b,0x1c,0x23,0x27,0x1e,0x1e,0x1d,0x23,0x1d,0x1f,0x18,0x16, -0x1b,0x1a,0x16,0x17,0x19,0x19,0x16,0x15,0x1d,0x15,0x19,0x17,0x19,0x24,0x1a,0x26,0x19,0x1a,0x1a,0x22,0x0e,0x24,0x20,0x21,0x1e,0x1a,0x23,0x1c,0x24,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1d,0x0c, -0x0c,0x0c,0x0e,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x0c,0x2a,0x2a,0x2a,0x2a,0x16,0x22,0x21,0x16,0x13,0x16,0x18,0x1a,0x16,0x27,0x26,0x28,0x14,0x2e,0x16,0x26,0x26,0x27,0x25,0x1a,0x16,0x16,0x24,0x1b,0x24,0x1f,0x19,0x15,0x13,0x2f,0x13,0x19,0x16,0x16,0x16,0x16,0x16,0x3f,0x26,0x26,0x14,0x0c,0x15,0x0b,0x15,0x0b,0x0b,0x0b,0x16, -0x1b,0x1b,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x13,0x28,0x0a,0x2a,0x2a,0x2a,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x36,0x36,0x1f,0x36,0x36,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x1b,0x16,0x1b,0x16,0x18,0x14,0x10,0x10,0x20,0x19,0x21,0x14,0x34,0x29,0x1b,0x19,0x2a,0x24,0x27,0x22,0x2f,0x25,0x2b,0x24,0x1e,0x16,0x21,0x1b,0x2b,0x22,0x23,0x1c,0x22,0x1c,0x28,0x1f,0x28,0x1f,0x33,0x27,0x23,0x1b,0x23,0x1b,0x38,0x29,0x24,0x00,0x2d,0x2d,0x2d,0x16,0x00,0x00,0x1b,0x17,0x20,0x1a,0x18,0x14,0x32,0x2a, -0x2b,0x28,0x21,0x1b,0x20,0x1b,0x18,0x13,0x22,0x1b,0x18,0x13,0x26,0x1f,0x1e,0x1a,0x2d,0x26,0x19,0x1a,0x22,0x22,0x25,0x15,0x09,0x15,0x1f,0x14,0x2e,0x2e,0x0b,0x00,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x12,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22, -0x22,0x22,0x22,0x22,0x22,0x22,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -0x1a,0x1a,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x16,0x1f,0x21,0x0d,0x0a,0x0d,0x0a,0x21,0x1a,0x22,0x1d,0x19,0x16,0x19, -0x16,0x1b,0x1a,0x13,0x13,0x34,0x26,0x35,0x29,0x2d,0x27,0x29,0x1e,0x29,0x1e,0x29,0x1e,0x1c,0x15,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x19,0x0e,0x16,0x0b,0x23,0x1b,0x28,0x1f,0x3d,0x2e,0x1a,0x1b,0x20,0x20,0x25,0x28,0x23,0x1b,0x2d,0x24,0x19,0x12,0x1a,0x17,0x1d,0x16,0x2b,0x21,0x1c,0x18,0x1a,0x1b,0x1a,0x1b,0x16,0x12,0x16,0x12,0x16, -0x11,0x18,0x18,0x0e,0x1f,0x0f,0x2c,0x1e,0x10,0x1b,0x1c,0x15,0x23,0x1a,0x11,0x10,0x1b,0x1b,0x1b,0x16,0x0b,0x23,0x1c,0x11,0x10,0x1d,0x15,0x21,0x12,0x24,0x1c,0x1c,0x15,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x18,0x14,0x23,0x14,0x18,0x28,0x16,0x1a,0x29,0x0c,0x35,0x29,0x29,0x36,0x29,0x2a,0x2a,0x28,0x29,0x2a,0x18,0x16,0x1c, -0x20,0x29,0x20,0x2b,0x0b,0x15,0x1b,0x28,0x2f,0x20,0x2f,0x1c,0x1c,0x25,0x20,0x34,0x2a,0x18,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x2e,0x17,0x17,0x2e,0x23,0x17,0x17,0x23,0x1f,0x0f,0x0f,0x1f,0x1b,0x1b,0x1b,0x1b,0x23,0x0f,0x0f,0x26,0x23,0x0f,0x0f,0x26,0x13,0x13,0x17,0x17,0x18,0x18,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x18,0x12,0x1a,0x18,0x22,0x1b,0x1b,0x28,0x1f,0x22,0x23,0x26,0x26,0x1b,0x17,0x2e,0x25,0x30,0x27,0x20,0x1b,0x0e,0x0e,0x1b,0x1e,0x13,0x1c,0x18,0x1b,0x16,0x22,0x25,0x12,0x1b,0x14,0x0a,0x11,0x18,0x19,0x0a, -0x0a,0x08,0x0a,0x11,0x11,0x11,0x15,0x44,0x5c,0x10,0x13,0x06,0x0c,0x12,0x14,0x0f,0x17,0x18,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x3d,0x19,0x23,0x2a,0x29,0x1e,0x15,0x1a,0x21,0x22,0x16,0x0e,0x1e,0x18,0x1f,0x1a,0x1e,0x19,0x19,0x22,0x1b,0x1b,0x18,0x22,0x1c,0x26,0x15,0x18,0x1d,0x0e,0x1b, -0x10,0x10,0x0b,0x28,0x1b,0x1a,0x18,0x18,0x1b,0x2b,0x2b,0x2b,0x2e,0x2e,0x19,0x17,0x0d,0x17,0x15,0x1c,0x15,0x1f,0x0b,0x1a,0x1c,0x28,0x28,0x1c,0x19,0x1b,0x19,0x18,0x15,0x18,0x15,0x16,0x0e,0x10,0x0b,0x0a,0x11,0x1b,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x00,0x0d,0x0d,0x0d,0x0c, -0x0c,0x4d,0x2e,0x28,0x30,0x0d,0x0d,0x0f,0x12,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x2a,0x0f,0x0f,0x2a,0x0c,0x17,0x17,0x3d,0x2e,0x2e,0x3d,0x2a,0x17,0x17,0x2a,0x17,0x17,0x13,0x13,0x00,0x00,0x10,0x22,0x1c,0x21,0x1b,0x3a,0x30,0x20,0x19,0x20,0x19,0x3d,0x2e,0x23,0x1b,0x12,0x0f,0x1c,0x00,0x1f,0x19, -0x0f,0x0e,0x07,0x17,0x0f,0x10,0x0c,0x09,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x18,0x14,0x1b,0x1a,0x19,0x2c,0x25,0x25,0x24,0x26,0x2b,0x1d,0x20,0x1c,0x12,0x2b,0x34,0x14,0x35,0x17,0x26,0x2a,0x2a,0x2a,0x13,0x23,0x2e,0x23,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x1b, -0x1b,0x1b,0x26,0x17,0x17,0x2a,0x0f,0x0f,0x2a,0x0f,0x0f,0x2a,0x17,0x17,0x00,0x13,0x26,0x0f,0x0f,0x2e,0x17,0x17,0x23,0x17,0x17,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x45,0x45,0x28,0x00,0x00,0x28,0x28,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, -0x1f,0x1c,0x1e,0x1e,0x29,0x1e,0x1d,0x25,0x2d,0x1e,0x1d,0x31,0x1d,0x1d,0x2b,0x1d,0x1f,0x24,0x1d,0x23,0x27,0x2a,0x1d,0x23,0x1e,0x20,0x1d,0x20,0x1d,0x1e,0x20,0x1d,0x24,0x1c,0x1f,0x24,0x1c,0x1d,0x1a,0x24,0x1e,0x1e,0x1e,0x20,0x15,0x18,0x1e,0x24,0x24,0x19,0x00,0x00,0x32,0x64,0x20,0x00,0x05,0x0e,0x0e,0x14,0x1e,0x1b,0x29,0x28, -0x0c,0x0f,0x0f,0x15,0x22,0x0b,0x14,0x0b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0b,0x0b,0x22,0x22,0x22,0x16,0x30,0x20,0x1d,0x1f,0x23,0x19,0x18,0x22,0x24,0x0d,0x12,0x1d,0x18,0x2d,0x25,0x26,0x1c,0x26,0x1e,0x1b,0x1a,0x22,0x1f,0x2f,0x1e,0x1c,0x1d,0x0f,0x13,0x0f,0x22,0x15,0x0d,0x19,0x1d,0x17,0x1d,0x1a,0x10, -0x1d,0x1c,0x0c,0x0c,0x19,0x0c,0x2b,0x1c,0x1d,0x1d,0x1d,0x11,0x15,0x11,0x1c,0x18,0x24,0x17,0x18,0x17,0x0f,0x0c,0x0f,0x22,0x20,0x20,0x1f,0x19,0x25,0x26,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x1a,0x1a,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x13,0x13,0x1b,0x1b,0x16,0x14,0x17,0x1b, -0x14,0x2d,0x2d,0x27,0x0e,0x15,0x22,0x2b,0x26,0x29,0x22,0x22,0x22,0x1b,0x1d,0x1b,0x1f,0x26,0x1b,0x14,0x16,0x26,0x2a,0x1d,0x16,0x0e,0x0e,0x22,0x21,0x1b,0x22,0x20,0x19,0x19,0x25,0x20,0x20,0x26,0x2f,0x2e,0x19,0x32,0x13,0x13,0x0b,0x0b,0x22,0x1d,0x18,0x1c,0x09,0x1b,0x10,0x10,0x1c,0x1c,0x13,0x0b,0x0b,0x13,0x3d,0x20,0x19,0x20, -0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x26,0x26,0x26,0x22,0x22,0x22,0x0c,0x13,0x11,0x10,0x0f,0x0a,0x0e,0x0a,0x10,0x09,0x13,0x18,0x0e,0x1b,0x15,0x1d,0x17,0x0c,0x23,0x1c,0x1c,0x18,0x1c,0x1d,0x22,0x22,0x12,0x12,0x12,0x2f,0x2d,0x30,0x18,0x22,0x1d,0x0d,0x1b,0x15,0x1f,0x17,0x1f,0x17,0x1d,0x15,0x0b,0x20,0x19,0x20,0x19,0x23,0x22,0x23, -0x19,0x1a,0x19,0x1a,0x18,0x0c,0x18,0x0f,0x18,0x10,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x1a,0x16,0x22,0x1c,0x22,0x1c,0x1d,0x17,0x1d,0x17,0x18,0x26,0x26,0x1f,0x1d,0x16,0x1d,0x18,0x23,0x15,0x18,0x14,0x38,0x1f,0x19,0x1e,0x0b,0x13,0x28,0x10,0x1e,0x12,0x12,0x1e,0x12,0x20,0x19,0x1f,0x17,0x1f, -0x17,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x22,0x1d,0x22,0x1d,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x12,0x0c,0x1d,0x19,0x19,0x18,0x0c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x2f,0x24,0x1c,0x18,0x0c,0x20,0x19,0x2b,0x2a,0x26, -0x1d,0x0b,0x2f,0x24,0x2f,0x24,0x2f,0x24,0x1c,0x18,0x0b,0x15,0x1b,0x1e,0x2e,0x2e,0x2e,0x2d,0x13,0x13,0x0b,0x0e,0x0e,0x20,0x1d,0x27,0x13,0x28,0x21,0x29,0x0d,0x20,0x1d,0x19,0x1d,0x24,0x0d,0x1d,0x1f,0x2d,0x25,0x19,0x26,0x24,0x1c,0x1a,0x1a,0x1c,0x1e,0x27,0x26,0x0d,0x1c,0x1f,0x16,0x1d,0x0d,0x1c,0x1b,0x1a,0x16,0x1d,0x1d,0x0d, -0x1a,0x19,0x1d,0x1a,0x16,0x1d,0x1d,0x17,0x1c,0x1b,0x26,0x28,0x0d,0x1c,0x1d,0x1c,0x28,0x19,0x23,0x18,0x1f,0x1b,0x0d,0x31,0x31,0x24,0x1d,0x1c,0x23,0x20,0x1d,0x1d,0x18,0x23,0x19,0x2b,0x1b,0x25,0x25,0x1d,0x22,0x2d,0x24,0x26,0x24,0x1c,0x1f,0x1a,0x1c,0x24,0x1e,0x25,0x21,0x2f,0x31,0x23,0x27,0x1d,0x1f,0x33,0x1e,0x19,0x1d,0x1a, -0x13,0x1b,0x1a,0x25,0x16,0x1d,0x1d,0x19,0x1a,0x23,0x1d,0x1d,0x1d,0x1d,0x17,0x15,0x18,0x22,0x17,0x1e,0x1c,0x28,0x29,0x1e,0x23,0x19,0x17,0x29,0x19,0x1a,0x1d,0x13,0x17,0x15,0x0c,0x28,0x28,0x1c,0x19,0x18,0x1d,0x17,0x14,0x32,0x38,0x1f,0x12,0x12,0x12,0x12,0x0c,0x1b,0x15,0x1c,0x26,0x1e,0x23,0x1d,0x0f,0x11,0x0d,0x0d,0x18,0x18, -0x18,0x18,0x0f,0x0f,0x0f,0x18,0x0f,0x18,0x0f,0x0f,0x0f,0x18,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26, -0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x22,0x1c,0x22,0x1c,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x1c,0x18,0x1c,0x18,0x1c,0x18,0x1a,0x11,0x19,0x1a,0x25,0x1d,0x0d,0x12,0x0c,0x0c,0x1a,0x15,0x2e,0x27,0x1f,0x1b,0x1d,0x19,0x25,0x1e,0x1c,0x18,0x1c,0x18,0x1f,0x19,0x21, -0x1c,0x21,0x1c,0x24,0x1a,0x26,0x1d,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x18,0x18,0x18,0x18,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x19,0x1a,0x20,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1f,0x17,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x18,0x10,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x24, -0x1c,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x2d,0x2b,0x2d,0x2b,0x2d,0x2b,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x1d,0x1c,0x1d,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b, -0x15,0x1b,0x15,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1f,0x18,0x1f,0x18,0x2f,0x24,0x2f,0x24,0x1e,0x17,0x1e,0x17,0x1c,0x18,0x1d,0x17,0x1d,0x17,0x1d,0x17,0x1c,0x11,0x24,0x18,0x19,0x0c,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x16, -0x16,0x16,0x16,0x16,0x16,0x1d,0x1d,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x28,0x28,0x30,0x30,0x30,0x30,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x21, -0x29,0x29,0x29,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x16,0x16,0x1d,0x1d,0x0d,0x0d,0x1d,0x1d,0x1c,0x1c,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e, -0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x24,0x1d,0x1d,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x13,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c, -0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x21,0x21,0x1f,0x1d,0x1d,0x1d,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x2a,0x29,0x26,0x1d,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1d,0x1d,0x1d,0x1d,0x1f,0x1f,0x17,0x23,0x25,0x1d,0x1d,0x1e,0x19,0x1b,0x18,0x23,0x1f,0x2c,0x0e,0x0e,0x1d,0x19,0x0c,0x19, -0x2d,0x25,0x1d,0x26,0x30,0x28,0x1e,0x1d,0x1d,0x1b,0x15,0x1a,0x0f,0x11,0x1a,0x11,0x1a,0x26,0x24,0x1c,0x1a,0x1d,0x17,0x1f,0x1f,0x16,0x14,0x1b,0x1b,0x13,0x14,0x1b,0x0c,0x13,0x17,0x0e,0x3e,0x39,0x33,0x2b,0x24,0x19,0x36,0x30,0x28,0x20,0x19,0x0d,0x0c,0x26,0x1d,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1a,0x20,0x19, -0x20,0x19,0x2b,0x29,0x22,0x1d,0x22,0x1d,0x1d,0x19,0x26,0x1d,0x26,0x1d,0x1f,0x16,0x0c,0x3e,0x39,0x33,0x22,0x1d,0x32,0x22,0x25,0x1c,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x1d,0x11,0x1e,0x11,0x22,0x1c,0x22,0x1c,0x19,0x15,0x24,0x1c,0x25,0x1e,0x1c,0x1d,0x17,0x20,0x19,0x26,0x1d,0x26, -0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x18,0x1d,0x19,0x1c,0x1c,0x1d,0x19,0x1d,0x1d,0x1d,0x17,0x17,0x1d,0x1d,0x1a,0x1f,0x15,0x15,0x19,0x1c,0x0e,0x1d,0x1d,0x1a,0x18,0x17,0x1c,0x1c,0x1c,0x0d,0x0e,0x10,0x0e,0x13,0x0c,0x1e,0x2b,0x2b,0x2b,0x1c,0x1c,0x1d,0x1d,0x23,0x24,0x20,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x14,0x0c,0x0d, -0x0e,0x0e,0x11,0x11,0x1e,0x1e,0x1c,0x18,0x24,0x18,0x15,0x17,0x1a,0x16,0x16,0x12,0x12,0x12,0x17,0x1f,0x18,0x1b,0x1a,0x1c,0x0c,0x19,0x13,0x1d,0x12,0x12,0x2e,0x2f,0x31,0x1f,0x18,0x24,0x28,0x1d,0x1c,0x19,0x19,0x1b,0x1e,0x1c,0x22,0x1c,0x20,0x28,0x1d,0x23,0x1d,0x1d,0x17,0x19,0x17,0x1e,0x19,0x1f,0x19,0x2d,0x2b,0x1e,0x19,0x20, -0x1b,0x1f,0x17,0x1e,0x18,0x21,0x1d,0x1c,0x14,0x1d,0x1d,0x17,0x0c,0x26,0x17,0x17,0x2b,0x22,0x20,0x1d,0x2d,0x24,0x21,0x19,0x2c,0x23,0x24,0x1c,0x2e,0x25,0x1b,0x16,0x27,0x26,0x26,0x1d,0x24,0x1d,0x24,0x1d,0x42,0x38,0x29,0x21,0x38,0x2d,0x2b,0x22,0x1d,0x16,0x19,0x14,0x15,0x00,0x00,0x31,0x2f,0x1d,0x19,0x1c,0x1d,0x1c,0x19,0x1b, -0x17,0x1d,0x19,0x24,0x1d,0x2a,0x21,0x33,0x2a,0x24,0x1c,0x1f,0x17,0x1a,0x15,0x2c,0x22,0x22,0x1d,0x2a,0x20,0x2a,0x20,0x0d,0x2b,0x25,0x1d,0x19,0x24,0x1d,0x21,0x1c,0x20,0x19,0x20,0x19,0x2b,0x2a,0x19,0x1a,0x24,0x1a,0x24,0x1a,0x2b,0x25,0x1b,0x16,0x1a,0x16,0x25,0x1d,0x25,0x1d,0x26,0x1d,0x26,0x1d,0x1f,0x17,0x1c,0x18,0x1c,0x18, -0x1c,0x18,0x21,0x1c,0x27,0x23,0x1c,0x1d,0x2b,0x2b,0x28,0x24,0x1c,0x18,0x2d,0x28,0x31,0x2a,0x24,0x1b,0x22,0x1e,0x1d,0x1c,0x1c,0x19,0x1d,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1d,0x11,0x11,0x08,0x0b,0x0b,0x0b,0x0e,0x14,0x0e,0x0b,0x13,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x1d,0x1d, -0x1d,0x1d,0x11,0x0e,0x0d,0x11,0x10,0x0d,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x11,0x0f,0x08,0x0c,0x0e,0x0b,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x15,0x11,0x0c,0x0d,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13, -0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b, -0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x20,0x0f,0x20,0x11,0x1e,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d, -0x10,0x10,0x11,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1d,0x17,0x21,0x29,0x18,0x17,0x1b,0x1c,0x15,0x15,0x0c,0x0f,0x19,0x14,0x23,0x1d,0x1d,0x18,0x1f,0x1f,0x1f,0x2e,0x1b,0x1e,0x1e,0x17,0x17,0x17,0x15,0x1b,0x1c,0x24,0x1c,0x18,0x24,0x17,0x15,0x15,0x1a,0x13,0x17, -0x1d,0x17,0x1e,0x1c,0x12,0x18,0x11,0x12,0x14,0x0f,0x0f,0x14,0x15,0x09,0x0b,0x12,0x0e,0x1a,0x16,0x16,0x15,0x13,0x11,0x11,0x0f,0x15,0x1a,0x10,0x10,0x11,0x18,0x11,0x11,0x10,0x10,0x0d,0x0d,0x11,0x08,0x0f,0x19,0x11,0x11,0x0e,0x11,0x11,0x11,0x0a,0x11,0x10,0x19,0x0e,0x10,0x11,0x0f,0x11,0x14,0x0f,0x08,0x0b,0x11,0x0e,0x11,0x0f, -0x11,0x14,0x0f,0x1d,0x08,0x11,0x1b,0x2c,0x1f,0x1b,0x1b,0x2b,0x20,0x2b,0x25,0x1a,0x1d,0x19,0x16,0x38,0x17,0x1d,0x2d,0x2f,0x2f,0x1f,0x20,0x1f,0x17,0x18,0x1a,0x15,0x17,0x1a,0x0a,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1f,0x1f,0x18,0x13,0x1d,0x1d,0x10,0x2b,0x1c,0x1d,0x11,0x11,0x17,0x11,0x17,0x1d,0x17,0x1d,0x2d,0x20,0x10,0x0d,0x1d, -0x1b,0x1e,0x1d,0x1d,0x10,0x1d,0x19,0x0c,0x2b,0x1c,0x1d,0x11,0x15,0x16,0x18,0x17,0x17,0x19,0x1d,0x1d,0x1a,0x16,0x16,0x25,0x0c,0x17,0x0c,0x1c,0x16,0x11,0x0d,0x0d,0x11,0x0d,0x09,0x08,0x11,0x11,0x08,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x19,0x19,0x11,0x11,0x12,0x11,0x12,0x0c,0x08,0x0a,0x11,0x11,0x10,0x10,0x0e,0x0d,0x0d,0x0f, -0x0d,0x11,0x00,0x00,0x00,0x00,0x0b,0x10,0x10,0x11,0x0d,0x10,0x1b,0x1b,0x1b,0x1b,0x11,0x00,0x00,0x00,0x00,0x17,0x10,0x0d,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, -0x42,0x42,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x27,0x20,0x23,0x1d,0x25,0x1f,0x2f,0x26,0x1b,0x13,0x1a,0x22,0x1b,0x29,0x23,0x00,0x00,0x00,0x00,0x0d,0x0d,0x0d, -0x0d,0x11,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a,0x32,0x15,0x0d,0x19,0x1d,0x15,0x19,0x19,0x1d,0x1d,0x19,0x32,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x20,0x19,0x19,0x19,0x11,0x1d,0x11,0x26,0x21,0x19,0x11,0x2a,0x19,0x2a,0x0d,0x11,0x1d,0x1d,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x2a,0x0d,0x1d,0x0d,0x19,0x15,0x0d,0x0d, -0x19,0x0d,0x26,0x0d,0x2e,0x19,0x2e,0x2e,0x1d,0x1d,0x1d,0x19,0x19,0x15,0x15,0x3a,0x3a,0x43,0x43,0x2a,0x2a,0x19,0x19,0x08,0x32,0x26,0x2a,0x21,0x1d,0x21,0x19,0x19,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x20,0x00,0x20,0x20,0x20,0x11,0x19,0x19,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x15,0x2e,0x19,0x2e,0x19, -0x26,0x2a,0x11,0x19,0x19,0x15,0x0d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x1d,0x19,0x21,0x20,0x2e,0x11,0x19,0x15,0x21,0x19,0x11,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x0d,0x1d,0x13,0x32,0x19,0x19,0x20,0x20,0x32,0x19,0x00,0x00,0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x26,0x20,0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x19,0x19, -0x26,0x2a,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x19,0x15,0x15,0x15,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x19,0x1d,0x1d,0x1d,0x32,0x32, -0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x26,0x26,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x21,0x11,0x1b,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x2a,0x2e,0x26,0x2a,0x11, -0x19,0x26,0x2a,0x26,0x2a,0x00,0x00,0x00,0x00,0x00,0x38,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x15,0x00,0x00,0x1e,0x00,0x00,0x00,0x3a,0x2a,0x43,0x32,0x19,0x1d,0x1d,0x1d,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x2e,0x2e,0x13,0x1d,0x1d,0x1e,0x3d,0x2a,0x1b,0x4c,0x36,0x11, -0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x15,0x15,0x26,0x21,0x21,0x19,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x3f,0x4b,0x00,0x00,0x00,0x00,0x00,0x1d,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x15,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x15,0x3a, -0x2a,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x32,0x19,0x19,0x32,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x11,0x15,0x15,0x3a,0x2a,0x20,0x1d,0x1d,0x00,0x19,0x19,0x19,0x12,0x1d,0x22,0x1f,0x19,0x1a,0x12,0x0c,0x26,0x1d,0x1e, -0x11,0x1c,0x18,0x18,0x17,0x18,0x0c,0x1a,0x15,0x1f,0x18,0x1e,0x17,0x1b,0x16,0x22,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x17,0x18,0x18,0x0e,0x1a,0x1c,0x1e,0x19,0x11,0x25,0x1d,0x20,0x1b,0x1f,0x19,0x1c,0x1a,0x14,0x23,0x13,0x15,0x15,0x18,0x1e,0x1e,0x19,0x32,0x19,0x32,0x11,0x0d,0x08,0x1b,0x0b,0x06,0x00,0x07, -0x0b,0x00,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x19,0x19,0x2e,0x15,0x26,0x1d,0x2f,0x24,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x2e,0x2b,0x18,0x2b,0x18,0x2b,0x20,0x22,0x23,0x23,0x26,0x2b,0x32,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x22,0x22,0x22,0x22,0x25,0x1d,0x35,0x29,0x18,0x18,0x0e, -0x0e,0x0e,0x13,0x0b,0x1c,0x0c,0x0c,0x2a,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x20,0x1d,0x16,0x18,0x22,0x0d,0x11,0x22,0x22,0x0d,0x1c,0x1b,0x1c,0x23,0x22,0x0d,0x14,0x22,0x1e,0x1f,0x20,0x1c,0x1d,0x21,0x1c,0x27,0x24,0x1a,0x1a,0x1a,0x0b,0x13,0x1c,0x1c, -0x1c,0x1c,0x1b,0x1e,0x20,0x18,0x22,0x1b,0x1c,0x23,0x1c,0x24,0x1c,0x27,0x27,0x27,0x27,0x20,0x20,0x20,0x1d,0x16,0x18,0x22,0x0f,0x12,0x22,0x0f,0x1c,0x1b,0x1c,0x22,0x14,0x22,0x1f,0x20,0x1d,0x21,0x1c,0x27,0x24,0x0d,0x1d,0x1b,0x20,0x21,0x3c,0x00,0x20,0x1c,0x21,0x21,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0d,0x00,0x26,0x20,0x21,0x23,0x1c,0x21,0x25,0x26,0x18,0x1f,0x25,0x25,0x21,0x26,0x29,0x27,0x21,0x1c,0x1c,0x26,0x23,0x1d,0x22,0x22,0x21,0x22,0x22,0x25,0x1d,0x20,0x22,0x21,0x27,0x20,0x1f,0x20,0x21,0x29,0x19,0x1d, -0x1d,0x2c,0x1b,0x1b,0x27,0x2d,0x1f,0x1b,0x34,0x1c,0x1c,0x26,0x1b,0x1b,0x26,0x1c,0x26,0x29,0x2c,0x1b,0x27,0x1b,0x21,0x1b,0x1f,0x1c,0x20,0x1b,0x1e,0x26,0x1b,0x1f,0x21,0x1b,0x1b,0x1e,0x30,0x1b,0x1b,0x1d,0x1d,0x15,0x11,0x1c,0x1c,0x1c,0x1b,0x1c,0x2c,0x1c,0x2c,0x19,0x1c,0x2c,0x21,0x1c,0x2c,0x25,0x25,0x2c,0x1d,0x1c,0x2c,0x2c, -0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x2c,0x2c,0x1d,0x1c,0x1c,0x2c,0x1e,0x1b,0x1c,0x1c,0x2c,0x27,0x22,0x23,0x23,0x22,0x23,0x1f,0x22,0x27,0x23,0x21,0x1b,0x28,0x22,0x22,0x1d,0x21,0x23,0x25,0x24,0x1d,0x23,0x21,0x24,0x21,0x27,0x23,0x24,0x24,0x22,0x20,0x23,0x22,0x24,0x28,0x21,0x26,0x24,0x05,0x06,0x08,0x0a,0x08,0x0e,0x12,0x2b,0x1c, -0x1f,0x1e,0x1c,0x1f,0x1c,0x1c,0x20,0x1e,0x1c,0x0f,0x2a,0x1d,0x1c,0x1c,0x1b,0x1e,0x1a,0x1d,0x0d,0x1d,0x1a,0x1c,0x15,0x2b,0x1b,0x1c,0x1c,0x1e,0x2a,0x1c,0x1d,0x14,0x2a,0x1d,0x1d,0x22,0x22,0x0b,0x0e,0x39,0x38,0x38,0x39,0x47,0x1b,0x1b,0x0c,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x1d,0x15,0x15,0x1d,0x1f,0x0d,0x10,0x19,0x15,0x26,0x20,0x1f,0x18,0x1f,0x19,0x15,0x16,0x1e,0x1a,0x28,0x19,0x17,0x18,0x23,0x27,0x15,0x1f,0x18, -0x1d,0x1a,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x20,0x1f,0x1f,0x1f,0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x17,0x19,0x19,0x19,0x19,0x19,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x19,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x10,0x19,0x15,0x15,0x15,0x15,0x20,0x20,0x20,0x21,0x1f,0x1f, -0x1f,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x18,0x18,0x18,0x19,0x23,0x1f,0x19,0x19,0x14,0x1b,0x15,0x18,0x1f,0x1f,0x0d,0x19,0x1a,0x26,0x20,0x16,0x1f,0x1f,0x18,0x17,0x16,0x17,0x1f,0x19,0x21,0x20,0x19,0x15,0x1f,0x0d,0x1f,0x17,0x20,0x0d,0x17, -0x15,0x1c,0x14,0x1a,0x15,0x0d,0x0d,0x10,0x29,0x29,0x1f,0x19,0x19,0x1e,0x19,0x18,0x19,0x14,0x1d,0x15,0x25,0x16,0x20,0x20,0x19,0x1c,0x26,0x1f,0x1f,0x1f,0x18,0x19,0x16,0x19,0x1f,0x19,0x20,0x1b,0x28,0x2a,0x1c,0x23,0x19,0x1a,0x2b,0x18,0x14,0x1d,0x1d,0x1f,0x2c,0x2c,0x21,0x19,0x1d,0x15,0x1d,0x1c,0x1c,0x23,0x1a,0x1a,0x22,0x1d, -0x1d,0x12,0x1f,0x1f,0x1d,0x18,0x18,0x2d,0x25,0x18,0x1b,0x1e,0x1e,0x1f,0x1f,0x24,0x22,0x12,0x2f,0x1e,0x1c,0x1d,0x20,0x20,0x19,0x19,0x0d,0x26,0x22,0x22,0x18,0x23,0x0b,0x0b,0x16,0x16,0x0b,0x0b,0x1f,0x14,0x0d,0x26,0x23,0x0e,0x0b,0x0b,0x16,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x22,0x18,0x0f,0x1e,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e, -0x11,0x16,0x1b,0x15,0x0b,0x0b,0x14,0x1a,0x11,0x21,0x21,0x21,0x2e,0x26,0x2e,0x0d,0x00,0x00,0x00,0x00,0x00,0x0d,0x26,0x2a,0x11,0x11,0x19,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2e,0x2e,0x19,0x19,0x2e,0x2e,0x19,0x19,0x26,0x2a,0x11, -0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x32,0x26,0x2a,0x19,0x1d,0x1d,0x21,0x11,0x21,0x26,0x19,0x19,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x2e,0x11,0x26,0x19,0x19,0x0d,0x19,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d, -0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x32,0x32,0x32,0x32,0x32,0x32,0x26,0x19,0x19,0x26,0x19,0x19,0x2e,0x19,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21, -0x21,0x21,0x21,0x21,0x11,0x21,0x21,0x11,0x11,0x21,0x11,0x21,0x11,0x21,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x19,0x11,0x11,0x11,0x11,0x00,0x3a,0x2a,0x43,0x32,0x2e,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x19,0x19,0x15,0x3a,0x2a,0x32,0x32,0x2e,0x2e,0x2e, -0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x3a,0x2a,0x1d,0x21,0x1d,0x1d,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x11,0x11,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x3a,0x3a, -0x2a,0x2a,0x2a,0x2a,0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x0d,0x0d,0x11,0x0d,0x00,0x00,0x00,0x2a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x15,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e, -0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x26,0x21,0x21,0x21,0x21,0x21,0x21,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x21,0x21,0x21,0x0d,0x0d,0x19,0x15,0x1d,0x20,0x1d,0x1b,0x1c,0x1d, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x17,0x1b,0x1a,0x1d,0x1f,0x1f,0x21,0x1d,0x1c,0x21,0x1a,0x21,0x26,0x20,0x25,0x29,0x20,0x26,0x22,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x17,0x1b,0x1e,0x1e,0x21,0x1d,0x20,0x1d,0x1e,0x1e,0x1a,0x1a,0x26,0x22,0x23,0x22,0x22,0x1e,0x1d,0x1d,0x25, -0x27,0x26,0x26,0x2e,0x2e,0x23,0x2e,0x2e,0x25,0x2c,0x2a,0x1c,0x26,0x2a,0x26,0x1e,0x2b,0x25,0x23,0x23,0x1e,0x20,0x25,0x28,0x23,0x1f,0x23,0x1d,0x1b,0x2e,0x2e,0x2e,0x29,0x2e,0x2e,0x22,0x2e,0x2e,0x23,0x26,0x27,0x25,0x24,0x24,0x20,0x2c,0x26,0x29,0x24,0x24,0x1d,0x25,0x23,0x23,0x2b,0x26,0x24,0x2d,0x1b,0x19,0x1c,0x1b,0x1f,0x1f, -0x23,0x25,0x1d,0x1c,0x1c,0x1b,0x1c,0x1b,0x1b,0x1c,0x1c,0x1d,0x1c,0x1c,0x1c,0x19,0x1a,0x1e,0x1f,0x1e,0x1e,0x17,0x1c,0x1c,0x1d,0x1e,0x26,0x2a,0x21,0x21,0x1f,0x26,0x20,0x22,0x1a,0x18,0x1d,0x1c,0x18,0x19,0x1b,0x1c,0x18,0x17,0x1f,0x17,0x1b,0x19,0x1b,0x27,0x1c,0x29,0x1b,0x1c,0x1c,0x25,0x10,0x27,0x22,0x24,0x21,0x1c,0x26,0x1e, -0x27,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x1e,0x1e,0x1e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x16,0x17,0x16,0x17,0x17,0x17,0x0f,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1f,0x0d,0x0d,0x0d,0x10,0x10,0x0d,0x0d,0x0d,0x0f,0x0d,0x0d,0x0d,0x2d,0x2d,0x2d,0x2d,0x18,0x25,0x24,0x18,0x14,0x18,0x1a,0x1c,0x18,0x2a,0x29,0x2b,0x16, -0x32,0x18,0x2a,0x2a,0x2a,0x28,0x1c,0x18,0x18,0x27,0x1d,0x27,0x22,0x1b,0x17,0x14,0x33,0x15,0x1b,0x18,0x18,0x18,0x18,0x18,0x44,0x2a,0x2a,0x15,0x0d,0x17,0x0c,0x17,0x0c,0x0c,0x0c,0x18,0x1d,0x1d,0x1b,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x0b,0x15,0x2b,0x0b,0x2d,0x2d,0x2d,0x1d,0x1d,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x3a,0x3a,0x21,0x3a,0x3a,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x17,0x1d,0x17,0x1b,0x15,0x12,0x11,0x22,0x1b,0x24,0x16,0x38,0x2d,0x1e,0x1c,0x2e,0x28,0x2a,0x25,0x33,0x29,0x2e,0x27,0x20,0x18, -0x24,0x1d,0x2e,0x25,0x26,0x1e,0x25,0x1e,0x2b,0x21,0x2c,0x21,0x37,0x2a,0x26,0x1d,0x26,0x1d,0x3d,0x2c,0x28,0x00,0x31,0x31,0x31,0x18,0x00,0x00,0x1d,0x19,0x23,0x1c,0x1b,0x15,0x36,0x2d,0x2f,0x2b,0x24,0x1d,0x23,0x1d,0x1a,0x15,0x25,0x1e,0x1a,0x15,0x29,0x21,0x21,0x1c,0x31,0x29,0x1b,0x1d,0x25,0x25,0x28,0x16,0x0a,0x17,0x22,0x16, -0x32,0x32,0x0c,0x00,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, -0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x24,0x24,0x24,0x24,0x24,0x24, -0x24,0x24,0x24,0x24,0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x18,0x22,0x24,0x0e,0x0a,0x0e,0x0a,0x24,0x1c,0x25,0x1f,0x1c,0x18,0x1b,0x18,0x1e,0x1d,0x15,0x15,0x38,0x29,0x3a,0x2c,0x31,0x2a,0x2d,0x21,0x2d,0x21,0x2d,0x21,0x1f,0x17,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1b,0x10,0x18, -0x0c,0x26,0x1d,0x2b,0x22,0x43,0x32,0x1c,0x1d,0x22,0x23,0x28,0x2b,0x26,0x1d,0x31,0x27,0x1b,0x14,0x1c,0x19,0x1f,0x18,0x2f,0x24,0x1f,0x1a,0x1c,0x1d,0x1c,0x1d,0x18,0x14,0x18,0x13,0x18,0x12,0x1a,0x1a,0x0f,0x22,0x10,0x30,0x21,0x11,0x1d,0x1f,0x17,0x26,0x1c,0x13,0x11,0x1d,0x1d,0x1d,0x18,0x0c,0x26,0x1e,0x12,0x11,0x1f,0x17,0x24, -0x13,0x27,0x1e,0x1f,0x17,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e,0x11,0x1b,0x15,0x26,0x15,0x1b,0x2b,0x18,0x1c,0x2d,0x0d,0x39,0x2d,0x2d,0x3b,0x2c,0x2e,0x2e,0x2c,0x2c,0x2e,0x1a,0x18,0x1f,0x23,0x2d,0x23,0x2f,0x0c,0x17,0x1d,0x2b,0x33,0x23,0x33,0x1f,0x1f,0x28,0x23,0x39,0x2e,0x1a,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a, -0x2a,0x2a,0x32,0x19,0x19,0x32,0x26,0x19,0x19,0x26,0x21,0x11,0x11,0x21,0x1d,0x1d,0x1d,0x1d,0x26,0x11,0x11,0x2a,0x26,0x11,0x11,0x2a,0x15,0x15,0x19,0x19,0x1a,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x1a,0x14,0x1c,0x1a, -0x25,0x1d,0x1d,0x2c,0x21,0x25,0x26,0x2a,0x29,0x1d,0x19,0x32,0x28,0x34,0x2b,0x22,0x1d,0x10,0x10,0x1d,0x20,0x14,0x1e,0x1a,0x1d,0x18,0x25,0x28,0x14,0x1d,0x15,0x0b,0x13,0x1b,0x1c,0x0b,0x0b,0x09,0x0b,0x13,0x13,0x13,0x16,0x4a,0x64,0x11,0x15,0x07,0x0d,0x13,0x16,0x10,0x19,0x1a,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, -0x18,0x18,0x18,0x18,0x18,0x42,0x1b,0x26,0x2e,0x2d,0x20,0x17,0x1c,0x24,0x25,0x18,0x10,0x21,0x1a,0x22,0x1c,0x21,0x1b,0x1b,0x25,0x1e,0x1d,0x1a,0x25,0x1f,0x2a,0x17,0x1a,0x20,0x10,0x1d,0x11,0x11,0x0c,0x2c,0x1d,0x1c,0x1a,0x1a,0x1d,0x2e,0x2e,0x2f,0x32,0x32,0x1b,0x19,0x0e,0x19,0x17,0x1e,0x17,0x21,0x0c,0x1c,0x1e,0x2b,0x2b,0x1f, -0x1b,0x1d,0x1b,0x1a,0x17,0x1a,0x17,0x18,0x0f,0x11,0x0c,0x0b,0x12,0x1d,0x20,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0d,0x0d,0x54,0x32,0x2c,0x34,0x0e,0x0e,0x10,0x14,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x2e,0x11,0x11,0x2e,0x0d,0x19, -0x19,0x43,0x32,0x32,0x43,0x2e,0x19,0x19,0x2e,0x19,0x19,0x15,0x15,0x00,0x00,0x12,0x25,0x1e,0x24,0x1d,0x3f,0x34,0x23,0x1b,0x23,0x1b,0x43,0x32,0x26,0x1d,0x13,0x10,0x1f,0x00,0x22,0x1b,0x11,0x0f,0x08,0x19,0x11,0x11,0x0d,0x0a,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x1a,0x15,0x1e,0x1d,0x1b,0x30,0x28,0x28,0x27,0x29, -0x2f,0x1f,0x22,0x1e,0x14,0x2e,0x38,0x16,0x3a,0x19,0x2a,0x2e,0x2e,0x2e,0x15,0x26,0x32,0x26,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x1d,0x1d,0x1d,0x2a,0x19,0x19,0x2e,0x11,0x11,0x2e,0x11,0x11,0x2e,0x19,0x19,0x00,0x15,0x2a,0x11,0x11,0x32,0x19,0x19,0x26,0x19,0x19,0x21,0x0f,0x0f, -0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x4b,0x4b,0x2c,0x00,0x00,0x2c,0x2c,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x1f,0x20,0x20,0x2c,0x20,0x20,0x28,0x31,0x21,0x20,0x35,0x20,0x20,0x2f,0x20,0x22,0x28,0x20,0x26,0x2a,0x2e,0x20,0x26,0x20,0x23,0x1f,0x23, -0x1f,0x21,0x22,0x1f,0x27,0x1e,0x21,0x27,0x1f,0x1f,0x1c,0x27,0x20,0x20,0x20,0x23,0x16,0x1a,0x20,0x27,0x27,0x1b,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x14,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x04,0x1c,0xd0,0x00,0x00,0x01,0x42,0x01,0x00,0x00,0x07,0x00,0x42,0x00,0x0d,0x00,0x7e,0x03,0x77, -0x03,0x7f,0x03,0x8a,0x03,0x8c,0x03,0xa1,0x05,0x2f,0x05,0x56,0x05,0x5f,0x05,0x87,0x05,0x8a,0x05,0x8f,0x05,0xc7,0x05,0xea,0x05,0xf4,0x06,0x1c,0x06,0xff,0x07,0x7f,0x07,0xc9,0x08,0xb4,0x08,0xbd,0x08,0xff,0x09,0x6f,0x09,0xef,0x09,0xf3,0x0a,0x6f,0x0a,0xef,0x0a,0xf1,0x0b,0x6f,0x0b,0xef,0x0b,0xf9,0x0c,0x6f,0x0c,0xef,0x0d,0x6f, -0x0e,0x3f,0x0e,0x59,0x0e,0xd9,0x0f,0x29,0x10,0x49,0x10,0xc5,0x10,0xc7,0x10,0xcd,0x10,0xff,0x17,0xdb,0x17,0xe9,0x18,0x19,0x19,0xda,0x1c,0xbf,0x1d,0xca,0x1f,0x15,0x1f,0x1d,0x1f,0x45,0x1f,0x4d,0x1f,0x57,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x7d,0x1f,0xb4,0x1f,0xc4,0x1f,0xd3,0x1f,0xdb,0x1f,0xef,0x1f,0xf4,0x1f,0xfe,0x20,0x22, -0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3e,0x20,0x44,0x20,0x5f,0x20,0x71,0x20,0x8e,0x20,0x9c,0x20,0xbf,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x17,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4e,0x21,0x5f,0x21,0x6f,0x21,0x89,0x21,0x94,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x15, -0x22,0x1a,0x22,0x1f,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x61,0x22,0x65,0x22,0xf2,0x24,0xff,0x25,0xa1,0x25,0xac,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xcc,0x25,0xcf,0x25,0xd9,0x25,0xe6,0x26,0x61,0x26,0x63,0x26,0x66,0x26,0x6f,0x27,0x7f,0x2c,0x7f,0x2d,0x25,0x2d,0x27,0x2d,0x2d,0x2d,0xff,0x2e,0x17, -0x2e,0x3b,0xa4,0xff,0xa6,0x29,0xa6,0x9f,0xa7,0xae,0xa7,0xb7,0xa7,0xff,0xab,0x65,0xfb,0x06,0xfb,0x17,0xfb,0x36,0xfb,0x3c,0xfb,0x3e,0xfb,0x41,0xfb,0x44,0xfb,0xc1,0xfb,0xff,0xfc,0x63,0xfc,0xf4,0xfd,0x3f,0xfd,0xf2,0xfd,0xf4,0xfd,0xfd,0xfe,0x23,0xfe,0x58,0xfe,0x74,0xfe,0xfc,0xfe,0xff,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d, -0x00,0x20,0x00,0xa0,0x03,0x7a,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x05,0x31,0x05,0x59,0x05,0x61,0x05,0x89,0x05,0x8d,0x05,0x91,0x05,0xd0,0x05,0xef,0x06,0x00,0x06,0x1e,0x07,0x50,0x07,0xc0,0x08,0xa0,0x08,0xb6,0x08,0xd4,0x09,0x66,0x09,0xe6,0x09,0xf2,0x0a,0x66,0x0a,0xe6,0x0a,0xf1,0x0b,0x66,0x0b,0xe6,0x0b,0xf9,0x0c,0x66, -0x0c,0xe6,0x0d,0x66,0x0e,0x3f,0x0e,0x50,0x0e,0xd0,0x0f,0x20,0x10,0x40,0x10,0xa0,0x10,0xc7,0x10,0xcd,0x10,0xd0,0x17,0xdb,0x17,0xe0,0x18,0x10,0x19,0xd0,0x1c,0x90,0x1d,0x00,0x1d,0xfe,0x1f,0x18,0x1f,0x20,0x1f,0x48,0x1f,0x50,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x5f,0x1f,0x80,0x1f,0xb6,0x1f,0xc6,0x1f,0xd6,0x1f,0xdd,0x1f,0xf2, -0x1f,0xf6,0x20,0x00,0x20,0x26,0x20,0x28,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44,0x20,0x5e,0x20,0x70,0x20,0x74,0x20,0x90,0x20,0xa0,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4d,0x21,0x50,0x21,0x6c,0x21,0x7a,0x21,0x90,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f, -0x22,0x11,0x22,0x15,0x22,0x19,0x22,0x1e,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x60,0x22,0x64,0x22,0xf2,0x24,0xff,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xca,0x25,0xcf,0x25,0xd8,0x25,0xe6,0x26,0x60,0x26,0x63,0x26,0x65,0x26,0x6f,0x27,0x76,0x2c,0x60,0x2d,0x00,0x2d,0x27,0x2d,0x2d, -0x2d,0xe0,0x2e,0x17,0x2e,0x32,0xa4,0xd0,0xa6,0x20,0xa6,0x40,0xa7,0x00,0xa7,0xb0,0xa7,0xf7,0xab,0x30,0xfb,0x00,0xfb,0x13,0xfb,0x1d,0xfb,0x38,0xfb,0x3e,0xfb,0x40,0xfb,0x43,0xfb,0x46,0xfb,0xd3,0xfc,0x5e,0xfc,0xf2,0xfd,0x3c,0xfd,0xf2,0xfd,0xf4,0xfd,0xfa,0xfe,0x20,0xfe,0x58,0xfe,0x70,0xfe,0x76,0xfe,0xff,0xff,0xfc,0xff,0xff, -0xff,0xf5,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x19,0x00,0x00,0x00,0x00,0x07,0x2a,0x07,0x28,0x07,0x27,0x07,0x26,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0c,0x00,0x00,0x0b,0x9f,0x00,0x00,0x06,0x70,0x05,0xfa,0x0a,0x5b,0x05,0x84,0x05,0x0e,0x09,0x5e,0x04,0x98,0x04,0x22,0x08,0x57, -0x03,0xac,0x03,0x36,0x02,0xc0,0xfa,0x4d,0x01,0xe0,0x01,0x6a,0x01,0x24,0x00,0x0e,0xfb,0x42,0xfe,0xfe,0xfe,0xf9,0x00,0x00,0xfc,0x76,0xf8,0x82,0xf8,0x5c,0xf6,0xa6,0xf8,0x1f,0x00,0x00,0x00,0x00,0xe4,0x77,0xe4,0x75,0xe4,0x73,0xe4,0x71,0xe4,0x70,0xe4,0x6f,0xe4,0x6e,0xe4,0x6d,0xe4,0x6b,0xe4,0x6a,0xe4,0x69,0xe4,0x67,0xe4,0x66, -0xe4,0x64,0xe4,0x63,0x00,0x00,0xe0,0x86,0x00,0x00,0x00,0x00,0xe0,0x85,0x00,0x00,0xe0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xaa,0xea,0x32,0xe0,0x39,0xe0,0x2c,0x00,0x00,0xdf,0x6b,0xdf,0x79,0xe0,0x69,0xf3,0x1f,0xe9,0x97,0x00,0x00,0xf1,0x80,0x00,0x00,0xe9,0x9c,0xef,0xeb,0xef,0xea,0xde,0x97,0xe9,0x2b, -0xde,0x8c,0x00,0x00,0xde,0xa7,0x00,0x00,0x00,0x00,0xe9,0x0a,0xde,0x71,0xe9,0x00,0xee,0xc4,0xde,0x60,0x00,0x00,0xde,0x31,0xe8,0x43,0xe3,0x83,0x00,0x00,0x00,0x00,0xe5,0x86,0xe5,0x7f,0xe5,0x7e,0xe5,0x77,0x00,0x00,0xdb,0x74,0xe5,0x65,0xdb,0x5e,0x00,0x00,0xe4,0xdd,0xe4,0xdc,0xeb,0x1a,0x00,0x00,0x00,0x00,0xdf,0x35,0xe2,0xa3, -0xe2,0x9e,0xe3,0x30,0xda,0x43,0xe5,0x3b,0x68,0xf2,0x6a,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x9e,0x00,0x00,0x10,0x6c,0x10,0x6b,0x10,0x6a,0x10,0x69,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xf8,0x00,0x00,0x0c,0x71,0x15,0xfb,0x00,0x00,0x09,0x1a,0x14,0xa7,0x15,0x83,0x00,0x00,0x0c,0x0c,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x3e,0x06,0xec,0x06,0xf6,0x00,0x00,0x07,0x00,0x07,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x36,0x0a,0x3a,0x00,0x00,0x0a,0xa4,0x0a,0xae,0x0a,0xe6,0x0c,0xa8,0x00,0x00,0x0d,0x04,0x00,0x00,0x0d,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0xac,0x0f,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x50,0x00,0x00,0x11,0x92,0x11,0xa2,0x00,0x00,0x11,0xa4,0x00,0x00,0x11,0xa6,0x11,0xa8,0x11,0xaa,0x11,0xde,0x11,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x24,0x00,0x00,0x12,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x12,0x52,0x00,0x00,0x12,0x52,0x12,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x48,0x12,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x40,0x12,0x52,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x80,0x13,0x3e,0x14,0x9a,0x14,0xa8,0x14,0xb8,0x15,0x22,0x00,0x00,0x15,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x56,0x16,0x4c,0x16,0xa4,0x00,0x00,0x16,0xac,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00, -0x17,0xb8,0x00,0x00,0x00,0xa3,0x00,0xa4,0x00,0x84,0x00,0x85,0x02,0x3f,0x00,0x97,0x00,0xe7,0x00,0x86,0x00,0x8f,0x00,0x8c,0x00,0x9d,0x00,0xaa,0x00,0xa5,0x00,0x8a,0x00,0x8b,0x01,0x01,0x00,0x83,0x00,0x94,0x08,0x96,0x08,0x97,0x00,0x8e,0x00,0x98,0x00,0x88,0x00,0xc3,0x00,0xdd,0x08,0x98,0x00,0x9e,0x00,0xab,0x00,0xf4,0x00,0xf3, -0x00,0xf5,0x00,0xa2,0x00,0xad,0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x91,0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8,0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe8,0x00,0x66,0x00,0xd2,0x00,0xd0,0x00,0xd1,0x00,0xaf,0x00,0x67,0x00,0xef,0x00,0x92,0x00,0xd5,0x00,0xd3,0x00,0xd4,0x00,0x68,0x00,0xea, -0x00,0xec,0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71,0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76,0x00,0x77,0x00,0xe9,0x00,0x78,0x00,0x7a,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1,0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81,0x00,0xeb, -0x00,0xed,0x00,0xba,0x01,0x45,0x01,0x46,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x00,0xfc,0x00,0xfd,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x00,0xfe,0x00,0xff,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x00,0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x01,0x51,0x01,0x52, -0x00,0xf7,0x00,0xf8,0x01,0x53,0x01,0x54,0x01,0x55,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x5a,0x01,0x5b,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x00,0xf9,0x00,0xd6,0x01,0x39,0x01,0x3a,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x0e,0x01,0x0f,0x01,0x68,0x01,0x69,0x01,0x10, -0x01,0x11,0x01,0x12,0x01,0x13,0x00,0xe1,0x00,0xe2,0x01,0x14,0x01,0x15,0x01,0x6a,0x01,0x6b,0x01,0x16,0x01,0x17,0x01,0x3b,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x01,0x18,0x01,0x19,0x00,0xb0,0x00,0xb1,0x01,0x1a,0x01,0x1b,0x01,0x72,0x01,0x73,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x74,0x01,0x75, -0x00,0xfa,0x00,0xfb,0x00,0xe3,0x00,0xe4,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x01,0x7c,0x01,0x7d,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x00,0xbb,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x00,0xe5, -0x00,0xe6,0x01,0x84,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x02,0xcd,0x04,0xbf,0x04,0xc0,0x00,0xa7,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9,0x04,0xca,0x04,0xcb, -0x04,0xcc,0x04,0xcd,0x02,0x40,0x02,0x41,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x02,0x42,0x02,0x43,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7, -0x04,0xe8,0x04,0xe9,0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07, -0x05,0x08,0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88, -0x01,0x89,0x01,0x8a,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28,0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x02,0x3d,0x02,0x3e,0x02,0xaf,0x02,0xb0,0x05,0x3c,0x05,0x3d, -0x05,0x3e,0x05,0x3f,0x05,0x40,0x07,0x3e,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x02,0xe1,0x02,0xe2,0x05,0x47,0x05,0x48,0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x07,0x3f,0x07,0x40,0x07,0x41,0x06,0xac,0x07,0xe1,0x07,0xe2,0x07,0xe4,0x07,0xe5,0x07,0xe6,0x07,0xe7, -0x07,0xe8,0x07,0xe9,0x07,0xea,0x07,0xeb,0x0a,0xbf,0x0a,0xc0,0x0a,0xc1,0x0a,0xc2,0x0a,0xc3,0x0a,0xc4,0x0a,0xc5,0x0a,0xc6,0x0a,0xc7,0x0a,0xc8,0x0a,0xc9,0x0a,0xca,0x0a,0xcb,0x0a,0xcc,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x02,0xce,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62, -0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68,0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82, -0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88,0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2, -0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8,0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x07,0x42,0x07,0x43,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c,0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83, -0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x00,0xd7,0x00,0xe0,0x06,0x8c,0x00,0xd9,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdf,0x00,0xd8,0x00,0xde, -0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x07,0x44,0x07,0x45,0x07,0x46,0x07,0x47,0x07,0x48,0x07,0x49,0x07,0x4a,0x07,0x4b,0x07,0x4c,0x07,0x4d,0x07,0x4e,0x07,0x4f,0x07,0x50,0x07,0x51,0x07,0x52, -0x07,0x53,0x07,0x54,0x02,0x46,0x02,0x47,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x02,0x44,0x04,0x69,0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c, -0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x02,0x45,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b, -0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9,0x04,0xaa,0x04,0xab,0x04,0xac,0x07,0x39,0x07,0x55,0x07,0x56,0x07,0x57,0x07,0x58,0x07,0x59,0x07,0x5a,0x07,0x5b,0x07,0x5c,0x07,0xec,0x07,0xed,0x07,0xee,0x07,0xef,0x07,0xf0,0x07,0x5d, -0x07,0x5e,0x07,0x5f,0x04,0xad,0x04,0xae,0x04,0xaf,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x13,0x46,0x13,0x47,0x13,0x48,0x13,0x49,0x06,0x73,0x06,0x74,0x13,0x4a,0x13,0x4b,0x06,0x75,0x0a,0xcd,0x0a,0xce,0x0a,0xcf,0x01,0x9e,0x14,0x19, -0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x8b,0x01,0xa2,0x01,0xa3,0x01,0xa4,0x01,0xa6,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0x2c,0x00,0xa9,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0x2d,0x01,0xae,0x01,0xaf,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0x2e,0x01,0xba, -0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xc3,0x01,0x2f,0x01,0xc4,0x01,0xc5,0x01,0x30,0x01,0x31,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x02,0x37,0x01,0xd0,0x01,0xd1,0x01,0x32,0x01,0x33,0x01,0xd2,0x01,0x34,0x01,0xd3, -0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x01,0xd9,0x01,0xda,0x13,0x4c,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8,0x05,0xc9,0x05,0xca, -0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x07,0x60,0x07,0x61,0x08,0xc0,0x08,0xc1,0x08,0xc2,0x07,0xf1,0x07,0xf2,0x07,0xf3,0x07,0xf4,0x02,0xb1,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x02,0xb5,0x01,0xe0, -0x02,0xb6,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x02,0xb3,0x01,0xe5,0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x01,0xf6,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd,0x01,0xfe, -0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d,0x02,0x1e, -0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0xb2,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0xb7,0x02,0x2c,0x02,0xb8,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0xb4,0x02,0x31,0x02,0x32,0x05,0xda,0x05,0xdb,0x05,0xdc,0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1, -0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc,0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x0b,0x1c, -0x06,0x01,0x06,0x02,0x08,0xb4,0x08,0xb5,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x02,0x33,0x02,0x34,0x02,0xb9,0x02,0xba,0x06,0x07,0x06,0x08,0x02,0xbb,0x02,0xbc,0x06,0x09,0x06,0x0a,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x02,0xc1,0x02,0xc2,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12, -0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x08,0xb6,0x08,0xb7,0x06,0x26, -0x06,0x27,0x08,0xb8,0x08,0xb9,0x06,0x28,0x06,0x29,0x08,0xba,0x08,0xbb,0x0a,0xd0,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c,0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41, -0x02,0xcf,0x02,0xd0,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x07,0xf5,0x07,0xf6,0x06,0x4e,0x06,0x4f,0x0a,0xd1,0x0a,0xd2,0x0a,0xd3,0x0a,0xd4,0x0a,0xd5,0x0a,0xd6,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57, -0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c,0x06,0x5d,0x06,0x5e,0x06,0x5f,0x0a,0xd7,0x0a,0xd8,0x0a,0xd9,0x0a,0xda,0x13,0x4d,0x13,0x4e,0x13,0x4f,0x13,0x50,0x13,0x51,0x13,0x52,0x0b,0x1d,0x0b,0x1e,0x0b,0x1f,0x0b,0x20,0x13,0x53,0x13,0x54,0x13,0x55,0x13,0x56,0x13,0x57,0x13,0x58,0x14,0x1a,0x14,0x1b,0x13,0x59,0x13,0x5a, -0x14,0x1c,0x14,0x1d,0x14,0x1e,0x14,0x1f,0x14,0x20,0x14,0x21,0x14,0x22,0x14,0x23,0x11,0x8a,0x11,0x8b,0x0f,0xc4,0x0b,0xbf,0x0b,0xc0,0x0b,0xc1,0x0b,0xc2,0x0b,0xc3,0x0b,0xc4,0x0b,0xc5,0x0b,0xc6,0x0b,0xc7,0x0b,0xc8,0x0b,0xc9,0x0b,0xca,0x0b,0xcb,0x0b,0xcc,0x0b,0xcd,0x0b,0xce,0x0b,0xcf,0x0b,0xd0,0x0b,0xd1,0x0b,0xd2,0x0b,0xd3, -0x0b,0xd4,0x0b,0xd5,0x0b,0xd6,0x0b,0xd7,0x0b,0xd8,0x0b,0xd9,0x0b,0xda,0x0b,0xdb,0x0b,0xdc,0x0b,0xdd,0x0b,0x53,0x0b,0x54,0x0b,0x55,0x0b,0x56,0x0b,0x57,0x0b,0x58,0x0b,0x59,0x0b,0x5a,0x0b,0x5b,0x0b,0x5c,0x0b,0xde,0x0b,0x5d,0x0b,0x5e,0x0b,0x5f,0x0b,0x60,0x0b,0x61,0x0b,0x62,0x0b,0x63,0x0b,0x64,0x0b,0x65,0x0b,0x66,0x0b,0x67, -0x0b,0xdf,0x0b,0xb9,0x14,0xdf,0x0b,0x83,0x0b,0x84,0x0b,0x85,0x0b,0x86,0x0b,0x87,0x0a,0x44,0x0a,0x45,0x0a,0x46,0x0a,0x47,0x13,0x45,0x14,0x03,0x0e,0x13,0x0e,0x14,0x0e,0x16,0x0e,0x17,0x0e,0x18,0x0a,0x6a,0x08,0xf8,0x0a,0x49,0x0a,0x48,0x0a,0x4a,0x0a,0x4b,0x0a,0x4c,0x0a,0x4d,0x0a,0x4e,0x0a,0x4f,0x0a,0x53,0x0e,0x1a,0x0e,0x1b, -0x0e,0x1c,0x0e,0x1d,0x0e,0x1e,0x09,0x05,0x13,0x92,0x0a,0x6b,0x09,0x06,0x0e,0x20,0x09,0x07,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x09,0x0e,0x09,0x0f,0x09,0x10,0x09,0x11,0x09,0x12,0x09,0x13,0x09,0x14,0x09,0x15,0x09,0x16,0x09,0x17,0x09,0x18,0x09,0x19,0x09,0x1a,0x09,0x1b,0x09,0x1c,0x09,0x1d,0x09,0x1e, -0x09,0x1f,0x09,0x20,0x0e,0x3f,0x0e,0x43,0x0e,0x47,0x0e,0x4b,0x0e,0x4f,0x09,0x21,0x09,0x22,0x09,0x23,0x09,0x24,0x09,0x25,0x09,0x26,0x09,0x27,0x09,0x28,0x09,0x29,0x09,0x2a,0x09,0x2b,0x09,0x2c,0x09,0x2d,0x09,0x2e,0x09,0x2f,0x09,0x30,0x09,0x31,0x09,0x32,0x09,0x33,0x09,0x37,0x09,0x7e,0x09,0x7f,0x0a,0x50,0x0a,0x51,0x0a,0x52, -0x0a,0x6c,0x0a,0x6d,0x0a,0x6e,0x0a,0x6f,0x0a,0x70,0x0a,0x71,0x09,0x77,0x08,0xd7,0x08,0xd8,0x08,0xd9,0x08,0xda,0x08,0xdb,0x08,0xdc,0x08,0xdd,0x08,0xde,0x08,0xdf,0x08,0xe0,0x09,0x6a,0x09,0x03,0x0e,0x6d,0x09,0x6b,0x09,0x3e,0x09,0x7c,0x09,0x73,0x09,0x80,0x09,0x82,0x09,0x84,0x0e,0x73,0x09,0x86,0x09,0x88,0x09,0x89,0x09,0x8a, -0x09,0x5b,0x09,0x8c,0x09,0x8e,0x09,0x90,0x09,0x92,0x09,0x40,0x09,0x94,0x09,0x96,0x09,0x98,0x09,0x9b,0x09,0x9e,0x09,0xa1,0x09,0xa4,0x09,0x42,0x09,0xa7,0x09,0x5d,0x09,0xaa,0x09,0xab,0x09,0xac,0x09,0xad,0x09,0xae,0x09,0xaf,0x09,0xb0,0x09,0xb1,0x09,0x5e,0x09,0xb2,0x09,0xb3,0x09,0xb4,0x09,0xb5,0x09,0xb6,0x09,0xb7,0x09,0x45, -0x09,0xb8,0x09,0xb9,0x09,0xbb,0x09,0xbd,0x09,0xbf,0x09,0xc1,0x09,0xc3,0x09,0xc4,0x09,0xc8,0x09,0xc9,0x09,0xcc,0x09,0x6c,0x09,0xcf,0x09,0xd2,0x09,0xd5,0x09,0xd6,0x09,0x46,0x09,0xd7,0x09,0xd9,0x09,0xdb,0x09,0xdd,0x09,0xdf,0x09,0x48,0x09,0xe1,0x09,0xe3,0x09,0xe5,0x09,0xe7,0x09,0xe9,0x09,0xeb,0x09,0xed,0x09,0xef,0x09,0xf1, -0x09,0xf3,0x09,0x5f,0x09,0xf5,0x09,0xf6,0x09,0xf8,0x08,0xf1,0x09,0xfa,0x09,0x4e,0x09,0x60,0x09,0x63,0x09,0x64,0x09,0xfd,0x09,0xfe,0x09,0xff,0x0a,0x00,0x0a,0x01,0x0a,0x02,0x0a,0x03,0x0a,0x04,0x09,0x4a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x09,0x65,0x09,0x67,0x09,0x69,0x0b,0x19,0x09,0x74,0x0a,0x0f,0x0a,0x10, -0x09,0x75,0x0a,0x11,0x0a,0x12,0x0a,0x13,0x0a,0x14,0x0a,0x15,0x0a,0x16,0x0a,0x17,0x0a,0x18,0x0a,0x19,0x0a,0x1a,0x0a,0x1b,0x0a,0x1c,0x0a,0x1d,0x0a,0x1e,0x0a,0x1f,0x0a,0x20,0x0a,0x21,0x0a,0x22,0x0e,0xeb,0x0a,0x23,0x0a,0x54,0x0a,0x56,0x09,0x4f,0x09,0x50,0x09,0x51,0x09,0x52,0x09,0x53,0x09,0x54,0x09,0x55,0x09,0x56,0x09,0x57, -0x09,0x58,0x0a,0x24,0x0a,0x26,0x0a,0x28,0x0a,0x2c,0x0a,0x2d,0x0a,0x58,0x0a,0x72,0x0a,0x74,0x0a,0x76,0x0a,0x78,0x0a,0x7a,0x0a,0x7c,0x0a,0x7e,0x0a,0x80,0x0a,0x83,0x0a,0x86,0x0a,0x87,0x0a,0x88,0x0a,0x89,0x0a,0x8b,0x0a,0x8f,0x0a,0x93,0x0a,0x97,0x0a,0x9a,0x0a,0x9d,0x0a,0xa0,0x0a,0xa3,0x0a,0xa6,0x0a,0xa8,0x0a,0xaa,0x0a,0xac, -0x0a,0xae,0x0a,0xb0,0x0a,0xb4,0x0a,0xb5,0x0a,0xb6,0x0f,0x16,0x0f,0x1a,0x0f,0x1e,0x0f,0x22,0x0f,0x24,0x0f,0x28,0x0f,0x2a,0x0f,0x2c,0x0f,0x30,0x0f,0x34,0x0f,0x38,0x0f,0x3a,0x0f,0x3c,0x0f,0x3e,0x0f,0x40,0x0f,0x44,0x0f,0x48,0x0f,0x4c,0x13,0x02,0x14,0x04,0x13,0x04,0x13,0x08,0x13,0x0c,0x13,0x10,0x13,0x14,0x13,0x18,0x13,0x1c, -0x13,0x20,0x13,0x24,0x13,0x26,0x13,0x28,0x14,0x08,0x14,0x09,0x14,0x0b,0x14,0x0f,0x14,0x13,0x14,0x15,0x14,0x53,0x14,0x54,0x14,0x5d,0x14,0x5e,0x14,0x5f,0x14,0x60,0x14,0x61,0x14,0x62,0x14,0x63,0x14,0x64,0x14,0x65,0x14,0x66,0x14,0x67,0x14,0x68,0x14,0x69,0x14,0x6a,0x14,0x6b,0x14,0x6c,0x13,0x2a,0x13,0x2b,0x13,0x2c,0x13,0x2d, -0x13,0x2e,0x13,0x2f,0x13,0x30,0x13,0x31,0x13,0x32,0x13,0x33,0x13,0x34,0x13,0x35,0x13,0x36,0x13,0x37,0x13,0x38,0x13,0x39,0x13,0x3a,0x13,0x3b,0x13,0x3c,0x13,0x3d,0x13,0x3e,0x13,0x3f,0x13,0x40,0x13,0x41,0x13,0x42,0x13,0x43,0x13,0x44,0x14,0x17,0x0c,0x08,0x0c,0x09,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0c,0x0e,0x0c,0x0f, -0x0c,0x10,0x0c,0x11,0x0c,0x12,0x0c,0x13,0x0c,0x14,0x0c,0x15,0x0c,0x16,0x0c,0x17,0x0c,0x18,0x0c,0x19,0x0c,0x1a,0x0c,0x1b,0x0c,0x1c,0x0c,0x1d,0x0c,0x1e,0x0c,0x1f,0x0c,0x20,0x0c,0x21,0x0c,0x22,0x0c,0x23,0x0c,0x24,0x0c,0x25,0x0c,0x26,0x0c,0x27,0x0c,0x28,0x0c,0x29,0x0c,0x2a,0x0c,0x2b,0x0c,0x2c,0x0c,0x2d,0x0c,0x2e,0x0c,0x2f, -0x0c,0x30,0x0c,0x31,0x0c,0x32,0x0c,0x33,0x0c,0x34,0x0f,0xc7,0x0f,0xc8,0x0f,0xc9,0x07,0x62,0x07,0x63,0x07,0x64,0x07,0x65,0x07,0x66,0x07,0x67,0x07,0x68,0x07,0x69,0x07,0x6a,0x07,0x6b,0x07,0x6c,0x07,0x6d,0x07,0x6e,0x07,0x6f,0x07,0x70,0x07,0x71,0x07,0x72,0x07,0x73,0x07,0x74,0x07,0x75,0x07,0x76,0x07,0x77,0x07,0x78,0x07,0x79, -0x07,0x7a,0x07,0x7b,0x07,0x7c,0x07,0x7d,0x07,0x7e,0x07,0x7f,0x07,0x80,0x07,0x81,0x07,0x82,0x07,0x83,0x07,0x84,0x07,0x85,0x07,0x86,0x07,0x87,0x07,0x88,0x07,0x89,0x07,0x8a,0x07,0x8b,0x07,0x8c,0x07,0x8d,0x07,0x8e,0x07,0x8f,0x07,0x90,0x07,0x91,0x07,0x92,0x07,0x93,0x07,0x94,0x07,0x95,0x07,0x96,0x07,0x97,0x07,0x98,0x07,0x99, -0x07,0x9a,0x07,0x9b,0x07,0x9c,0x07,0x9d,0x07,0x9e,0x07,0x9f,0x07,0xa0,0x07,0xa1,0x07,0xa2,0x07,0xa3,0x07,0xa4,0x07,0xa5,0x07,0xa6,0x07,0xa7,0x07,0xa8,0x07,0xa9,0x07,0xaa,0x07,0xab,0x07,0xac,0x07,0xad,0x07,0xae,0x07,0xaf,0x07,0xb0,0x07,0xb1,0x07,0xb2,0x07,0xb3,0x07,0xb4,0x07,0xb5,0x07,0xb6,0x07,0xb7,0x07,0xb8,0x07,0xb9, -0x07,0xba,0x07,0xbb,0x07,0xbc,0x07,0xbd,0x07,0xbe,0x07,0xbf,0x07,0xc0,0x07,0xc1,0x07,0xc2,0x07,0xc3,0x07,0xc4,0x07,0xc5,0x07,0xc6,0x07,0xc7,0x07,0xc8,0x07,0xc9,0x07,0xca,0x07,0xcb,0x07,0xcc,0x07,0xd1,0x07,0xf7,0x07,0xf8,0x07,0xf9,0x07,0xfa,0x07,0xfb,0x07,0xfc,0x07,0xfd,0x07,0xfe,0x07,0xff,0x08,0x00,0x08,0x01,0x08,0x02, -0x08,0x03,0x08,0x04,0x08,0x05,0x08,0x07,0x08,0x08,0x08,0x09,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x08,0x0d,0x08,0x0e,0x08,0x0f,0x08,0x10,0x08,0x11,0x08,0x12,0x08,0x13,0x08,0x14,0x08,0x15,0x08,0x16,0x08,0x17,0x08,0x18,0x08,0x19,0x08,0x1a,0x08,0x1b,0x08,0x1c,0x08,0x1d,0x08,0x1e,0x08,0x1f,0x08,0x20,0x08,0x21,0x08,0x22,0x08,0x23, -0x08,0x24,0x08,0x25,0x08,0x26,0x08,0x27,0x08,0x28,0x08,0x29,0x08,0x2a,0x08,0x2b,0x08,0x2c,0x08,0x2d,0x08,0x2e,0x08,0x2f,0x08,0x30,0x08,0x31,0x08,0x32,0x08,0x33,0x08,0x34,0x08,0x35,0x08,0x36,0x08,0x37,0x08,0x38,0x08,0x39,0x08,0x3a,0x08,0x3b,0x08,0x3c,0x08,0x3d,0x08,0x3e,0x08,0x3f,0x08,0x40,0x08,0x41,0x08,0x42,0x08,0x43, -0x08,0x44,0x08,0x45,0x08,0x46,0x08,0x47,0x08,0x48,0x08,0x49,0x08,0x4a,0x08,0x4b,0x08,0x4c,0x08,0x4d,0x08,0x4e,0x08,0x4f,0x0a,0xdb,0x0a,0xdc,0x0a,0xdd,0x0a,0xde,0x0a,0xdf,0x0a,0xe0,0x0a,0xe1,0x0a,0xe2,0x0a,0xe3,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed, -0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d, -0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d, -0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a,0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x03,0x4c,0x03,0x4d, -0x03,0x4e,0x03,0x4f,0x03,0x50,0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x01,0x8c,0x01,0x8d,0x01,0x8e,0x01,0x8f,0x01,0x90,0x01,0x91,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67, -0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70,0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x13,0x5b,0x13,0x5c,0x0b,0x21,0x13,0x5d,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61, -0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81, -0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1, -0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x01,0x92,0x01,0x93,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x13,0x5e,0x13,0x5f,0x13,0x60,0x13,0x61,0x13,0x62,0x13,0x63,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83, -0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x03,0x8e,0x0a,0xfe,0x0a,0xff,0x0b,0x00,0x0b,0x01,0x0b,0x02,0x0b,0x03,0x0b,0x04,0x0b,0x05,0x0b,0x06,0x11,0x86,0x0b,0x07,0x0b,0x08,0x08,0xc3,0x08,0xc4,0x08,0xc5,0x08,0xc6,0x00,0x10,0x11,0x99,0x08,0xbc,0x00,0xb2,0x00,0xb3, -0x02,0x35,0x11,0x87,0x01,0x35,0x00,0xb6,0x00,0xb7,0x00,0xc4,0x01,0x94,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x08,0xbd,0x00,0x82,0x00,0xc2,0x00,0x87,0x0b,0x23,0x0b,0x24,0x0b,0x25,0x0b,0x26,0x0b,0x27,0x0b,0x28,0x0b,0x29,0x0b,0x09,0x00,0xc6,0x01,0x3c,0x01,0x3d,0x08,0xbe,0x01,0x36,0x11,0x85,0x01,0x95,0x08,0x50,0x0b,0x0a,0x08,0x99, -0x08,0x95,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0xa0,0x08,0xa1,0x08,0xa2,0x08,0xa3,0x08,0xa4,0x01,0x37,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab,0x08,0xac,0x08,0xad,0x08,0xae,0x08,0xaf,0x08,0xb0,0x08,0xb1,0x08,0xb2,0x08,0xb3,0x08,0x51,0x08,0x52,0x08,0x53,0x08,0x54, -0x08,0x55,0x14,0x2e,0x14,0x2f,0x14,0x30,0x14,0x31,0x14,0x32,0x14,0x33,0x14,0x34,0x14,0x35,0x07,0xd2,0x07,0xd3,0x07,0xd4,0x00,0xf6,0x01,0x96,0x07,0xd5,0x07,0xd6,0x01,0x38,0x07,0xd7,0x07,0xd8,0x07,0xd9,0x07,0xda,0x00,0xbd,0x07,0xdb,0x07,0xdc,0x07,0xdd,0x07,0xde,0x07,0xdf,0x08,0x56,0x08,0x57,0x08,0x58,0x08,0x59,0x11,0x80, -0x11,0x81,0x0c,0xb7,0x0c,0xb6,0x11,0xa3,0x14,0x2a,0x13,0x91,0x13,0x90,0x14,0x2c,0x14,0x2d,0x02,0x36,0x07,0xe0,0x12,0xe2,0x12,0xe3,0x12,0xe4,0x0b,0x2a,0x0b,0x2b,0x12,0xe5,0x12,0xe6,0x12,0xe7,0x12,0xe8,0x12,0xe9,0x12,0xea,0x01,0x98,0x01,0x99,0x01,0x9a,0x01,0x9b,0x12,0xeb,0x12,0xf0,0x12,0xf1,0x12,0xf2,0x12,0xf3,0x12,0xf4, -0x12,0xf5,0x12,0xf6,0x12,0xf7,0x12,0xf8,0x12,0xf9,0x0a,0xe6,0x12,0xfa,0x12,0xfb,0x12,0xfc,0x12,0xfd,0x12,0xfe,0x00,0x9a,0x00,0xee,0x01,0x02,0x00,0xa6,0x00,0x93,0x0b,0x32,0x00,0x90,0x08,0xbf,0x0b,0x36,0x01,0x40,0x01,0x41,0x01,0x42,0x0b,0x37,0x00,0xb9,0x0b,0x3c,0x0a,0x43,0x0b,0x3f,0x11,0x88,0x08,0x83,0x08,0x84,0x08,0x85, -0x08,0x86,0x08,0x87,0x08,0x88,0x08,0x89,0x08,0x8a,0x08,0x8b,0x13,0x8f,0x0a,0xe7,0x0a,0xe8,0x0a,0xe9,0x0a,0xea,0x0a,0xeb,0x0a,0xec,0x0a,0xed,0x0a,0xee,0x0a,0xef,0x0a,0xf0,0x0a,0xf1,0x0a,0xf2,0x0a,0xf3,0x0b,0x43,0x13,0x93,0x13,0x94,0x13,0x64,0x0b,0x44,0x0b,0x45,0x0b,0x46,0x0a,0xf4,0x0a,0xf5,0x0a,0xf6,0x0a,0xf7,0x13,0x65, -0x13,0x66,0x13,0x67,0x13,0x68,0x13,0x69,0x13,0x6a,0x13,0x6b,0x13,0x6c,0x11,0x30,0x11,0x31,0x11,0x32,0x11,0x33,0x11,0x34,0x11,0x35,0x11,0x36,0x11,0x37,0x11,0x38,0x11,0x39,0x11,0x3a,0x11,0x3b,0x11,0x3c,0x11,0x3d,0x11,0x3e,0x11,0x3f,0x11,0x40,0x11,0x41,0x11,0x42,0x11,0x43,0x11,0x44,0x11,0x45,0x11,0x46,0x11,0x47,0x11,0x48, -0x11,0x49,0x11,0x4a,0x11,0x4b,0x11,0x4c,0x11,0x4d,0x11,0x4e,0x11,0x4f,0x11,0x50,0x11,0x51,0x11,0x52,0x11,0x53,0x11,0x54,0x11,0x55,0x11,0x56,0x11,0x57,0x11,0x58,0x11,0x59,0x11,0x5a,0x11,0x5b,0x11,0x5c,0x11,0x5d,0x11,0x5e,0x11,0x5f,0x11,0x60,0x11,0x61,0x11,0x62,0x11,0x63,0x13,0x77,0x13,0x78,0x13,0x79,0x13,0x7a,0x13,0x7b, -0x13,0x7c,0x13,0x7d,0x13,0x7e,0x11,0x64,0x11,0x65,0x11,0x66,0x11,0x67,0x11,0x68,0x11,0x69,0x11,0x6a,0x11,0x6b,0x11,0x6c,0x11,0x6d,0x11,0x6e,0x11,0x6f,0x11,0x70,0x11,0x71,0x11,0x72,0x11,0x73,0x11,0x74,0x11,0x75,0x11,0x76,0x11,0x77,0x11,0x78,0x11,0x79,0x11,0x7a,0x11,0x7b,0x11,0x7c,0x11,0x7d,0x11,0x7e,0x11,0x7f,0x14,0x24, -0x14,0x25,0x14,0x26,0x14,0x27,0x14,0x28,0x14,0x29,0x14,0x36,0x13,0x7f,0x14,0x37,0x14,0x38,0x14,0x39,0x14,0x3a,0x14,0x3b,0x14,0x3c,0x14,0x3d,0x14,0x3e,0x13,0x80,0x13,0x81,0x13,0x82,0x13,0x83,0x13,0x84,0x13,0x85,0x13,0x86,0x13,0x87,0x13,0x88,0x13,0x89,0x13,0x8a,0x13,0x8b,0x13,0x8c,0x13,0x8d,0x13,0x8e,0x0a,0xf8,0x0a,0xf9, -0x0a,0xfa,0x0a,0xfb,0x0b,0x47,0x0b,0x48,0x0b,0x49,0x0b,0x4a,0x0b,0x4b,0x0a,0xfc,0x0a,0xfd,0x12,0x63,0x12,0x64,0x12,0x65,0x12,0x66,0x12,0x67,0x12,0x68,0x12,0x69,0x12,0x6a,0x12,0x6b,0x12,0x6c,0x12,0x6d,0x12,0x6e,0x12,0x6f,0x12,0x70,0x12,0x71,0x12,0x72,0x12,0x73,0x12,0x74,0x12,0x75,0x12,0x76,0x12,0x77,0x12,0x78,0x12,0x79, -0x12,0x7a,0x12,0x7b,0x12,0x7c,0x12,0x7d,0x12,0x7e,0x12,0x7f,0x12,0x80,0x12,0x81,0x12,0x82,0x12,0x83,0x12,0x84,0x12,0x85,0x12,0x86,0x12,0x87,0x12,0x88,0x12,0x89,0x12,0x8a,0x12,0x8b,0x12,0x8c,0x12,0x8d,0x12,0x8e,0x12,0x8f,0x12,0x90,0x12,0x91,0x12,0x92,0x12,0x93,0x12,0x94,0x12,0x95,0x12,0x96,0x12,0x97,0x12,0x98,0x12,0x99, -0x12,0x9a,0x12,0x9b,0x12,0x9c,0x12,0x9d,0x12,0x9e,0x12,0x9f,0x12,0xa0,0x12,0xa1,0x12,0xa2,0x12,0xa3,0x12,0xa4,0x12,0xa5,0x12,0xa6,0x12,0xa7,0x12,0xa8,0x12,0xa9,0x12,0xaa,0x12,0xab,0x12,0xac,0x12,0xad,0x12,0xae,0x12,0xaf,0x12,0xb0,0x12,0xb1,0x12,0xb2,0x12,0xb3,0x12,0xb4,0x12,0xb5,0x12,0xb6,0x12,0xb7,0x12,0xb8,0x12,0xb9, -0x12,0xba,0x12,0xbb,0x12,0xbc,0x12,0xbd,0x12,0xbe,0x12,0xbf,0x12,0xc0,0x12,0xc1,0x12,0xc2,0x12,0xc3,0x12,0xc4,0x12,0xc5,0x12,0xc6,0x12,0xc7,0x12,0xc8,0x0b,0x4c,0x0b,0x4d,0x0b,0x4e,0x0b,0x4f,0x0b,0x50,0x12,0xc9,0x12,0xca,0x14,0x3f,0x12,0xcb,0x12,0xcc,0x12,0xcd,0x12,0xce,0x13,0x95,0x13,0x96,0x13,0x97,0x13,0x98,0x13,0x99, -0x13,0x9a,0x13,0x9b,0x13,0x9c,0x13,0x9d,0x13,0x9e,0x13,0x9f,0x13,0xa0,0x12,0xcf,0x12,0xd0,0x12,0xd1,0x12,0xd2,0x12,0xd3,0x12,0xd4,0x12,0xd5,0x12,0xd6,0x12,0xd7,0x12,0xd8,0x12,0xd9,0x13,0xa1,0x13,0xa2,0x13,0xa3,0x14,0x40,0x13,0xa4,0x13,0xa5,0x14,0x41,0x14,0x42,0x14,0x43,0x14,0x44,0x14,0x45,0x14,0x46,0x13,0xa6,0x12,0xda, -0x12,0xdb,0x12,0xdc,0x12,0xdd,0x12,0xde,0x12,0xdf,0x12,0xe0,0x12,0xe1,0x13,0xa7,0x13,0xa8,0x13,0xa9,0x13,0xaa,0x13,0xab,0x13,0xac,0x13,0xad,0x13,0xae,0x13,0xaf,0x13,0xb0,0x13,0xb1,0x13,0xb2,0x13,0xb3,0x13,0xb4,0x13,0xb5,0x13,0xb6,0x13,0xb7,0x13,0xb8,0x13,0xb9,0x13,0xba,0x13,0xbb,0x13,0xbc,0x13,0xbd,0x13,0xbe,0x13,0xbf, -0x13,0xc0,0x13,0xc1,0x13,0xc2,0x13,0xc3,0x13,0xc4,0x13,0xc5,0x13,0xc6,0x13,0xc7,0x13,0xc8,0x13,0xc9,0x13,0xca,0x13,0xcb,0x13,0xcc,0x13,0xcd,0x13,0xce,0x13,0xcf,0x13,0xd0,0x13,0xd1,0x13,0xd2,0x13,0xd3,0x13,0xd4,0x13,0xd5,0x13,0xd6,0x14,0x47,0x14,0x48,0x14,0x49,0x14,0x4a,0x13,0xd7,0x13,0xd8,0x0d,0xbb,0x00,0xc0,0x00,0xc1, -0x0d,0xbc,0x0d,0xbd,0x14,0x4b,0x14,0x4c,0x0b,0xe0,0x0b,0xe1,0x0b,0x8c,0x0b,0x8d,0x0b,0x8e,0x0b,0x8f,0x0b,0x90,0x0b,0x91,0x0b,0x92,0x0b,0x93,0x0b,0x94,0x0b,0x95,0x0b,0x96,0x0b,0x97,0x0b,0x98,0x0b,0x99,0x0b,0x9a,0x0b,0x9b,0x0b,0x9c,0x0b,0x9d,0x0b,0x9e,0x0b,0x9f,0x0b,0xa0,0x0b,0xa1,0x0b,0xa2,0x0b,0xa3,0x0b,0xae,0x0b,0xaf, -0x0b,0xb0,0x0b,0xb1,0x0b,0xb2,0x0b,0xb3,0x0b,0xb4,0x0b,0xb5,0x0b,0xb6,0x0b,0xb7,0x09,0x80,0x09,0x81,0x09,0x8e,0x0e,0x7c,0x09,0x8f,0x0e,0x7d,0x09,0x40,0x0e,0x82,0x09,0x41,0x0e,0x83,0x09,0x96,0x0e,0x86,0x09,0x97,0x0e,0x87,0x09,0x8c,0x0e,0x7a,0x09,0x8d,0x0e,0x7b,0x09,0x94,0x0e,0x84,0x09,0x95,0x0e,0x85,0x09,0x5b,0x0e,0x78, -0x09,0x5c,0x0e,0x79,0x09,0x6c,0x0e,0xa8,0x09,0x6d,0x09,0x6e,0x09,0xd2,0x0e,0xaa,0x09,0xd3,0x09,0xd4,0x09,0xa1,0x09,0xa2,0x09,0xa3,0x0e,0x8b,0x09,0x9e,0x09,0x9f,0x09,0xa0,0x0e,0x8a,0x09,0x42,0x09,0x43,0x09,0x44,0x0e,0x8d,0x09,0xa7,0x09,0xa8,0x09,0xa9,0x0e,0x8e,0x09,0xae,0x0e,0x94,0x09,0xad,0x0e,0x93,0x09,0xaf,0x0e,0x95, -0x09,0x5d,0x0e,0x8f,0x09,0x45,0x0b,0x0e,0x09,0x5e,0x0b,0x0f,0x09,0x46,0x0e,0xb1,0x09,0x47,0x0e,0xb2,0x09,0x48,0x0e,0xbd,0x09,0x49,0x0e,0xbe,0x09,0xe7,0x0e,0xc5,0x09,0xe8,0x0e,0xc6,0x09,0xe3,0x0e,0xc1,0x09,0xe4,0x0e,0xc2,0x09,0x5f,0x0e,0xcf,0x09,0xf5,0x0e,0xd0,0x0e,0xd1,0x0e,0xd2,0x09,0x4e,0x09,0x4d,0x09,0x60,0x09,0x72, -0x09,0x61,0x09,0x62,0x08,0xf1,0x08,0xf2,0x0e,0xd7,0x0e,0xd8,0x09,0x65,0x09,0x66,0x09,0x67,0x09,0x68,0x13,0xd9,0x13,0xda,0x13,0xdb,0x13,0xdc,0x13,0xdd,0x13,0xde,0x13,0xdf,0x13,0xe0,0x13,0xe1,0x13,0xe2,0x13,0xe3,0x13,0xe4,0x13,0xe5,0x13,0xe6,0x13,0xe7,0x13,0xe8,0x09,0xdd,0x0e,0xb9,0x09,0xde,0x0e,0xba,0x0a,0x00,0x0e,0xdf, -0x09,0xff,0x0e,0xde,0x0a,0x01,0x0e,0xe0,0x09,0x89,0x0a,0x04,0x0e,0xe3,0x09,0xfe,0x0e,0xdd,0x0a,0x02,0x0e,0xe1,0x0a,0x0b,0x0a,0x0c,0x0e,0xe7,0x0e,0xe8,0x0e,0x5f,0x0e,0x60,0x10,0xfe,0x10,0xff,0x11,0x00,0x11,0x01,0x11,0x02,0x11,0x03,0x11,0x04,0x11,0x05,0x11,0x06,0x11,0x07,0x11,0x08,0x11,0x09,0x11,0x0a,0x11,0x0b,0x11,0x0c, -0x11,0x0d,0x11,0x0e,0x11,0x0f,0x09,0x4a,0x09,0x4b,0x09,0x4c,0x0e,0xe4,0x0a,0x68,0x0a,0x69,0x0a,0x65,0x0a,0x66,0x0a,0x67,0x13,0xe9,0x13,0xed,0x13,0xee,0x00,0x0b,0x00,0x0c,0x13,0xf0,0x13,0xf1,0x0a,0x64,0x13,0xf2,0x13,0xf8,0x13,0xf9,0x13,0xfa,0x13,0xfb,0x13,0xfc,0x13,0xfd,0x13,0xfe,0x13,0xff,0x14,0x00,0x14,0x01,0x09,0x07, -0x09,0x08,0x08,0xc9,0x09,0x09,0x08,0xc8,0x09,0x0a,0x0e,0x24,0x09,0x0b,0x08,0xca,0x09,0x0c,0x09,0x02,0x08,0xf9,0x0e,0x25,0x09,0x0d,0x08,0xc7,0x09,0x0e,0x0e,0x26,0x08,0xcb,0x0e,0x27,0x09,0x0f,0x08,0xf6,0x09,0x10,0x0e,0x28,0x08,0xcc,0x0e,0x29,0x09,0x11,0x0e,0x2a,0x08,0xcd,0x0e,0x2b,0x09,0x12,0x08,0xcf,0x08,0xce,0x0e,0x2c, -0x09,0x13,0x08,0xd1,0x08,0xd0,0x0e,0x2d,0x09,0x14,0x08,0xd3,0x08,0xd2,0x0e,0x2e,0x09,0x15,0x0e,0x2f,0x09,0x16,0x0e,0x30,0x09,0x17,0x0b,0x0c,0x09,0x18,0x0b,0x0d,0x09,0x19,0x0e,0x31,0x08,0xd4,0x0e,0x32,0x09,0x1a,0x0e,0x33,0x08,0xd5,0x0e,0x34,0x09,0x1b,0x0e,0x35,0x08,0xd6,0x0e,0x36,0x09,0x1c,0x0e,0x37,0x08,0xe1,0x0e,0x38, -0x09,0x1d,0x0e,0x39,0x0e,0x3a,0x0e,0x3b,0x09,0x1e,0x0e,0x3c,0x0e,0x3d,0x0e,0x3e,0x09,0x1f,0x08,0xe4,0x08,0xe2,0x08,0xe3,0x09,0x20,0x08,0xe7,0x08,0xe5,0x08,0xe6,0x09,0x22,0x0e,0x53,0x08,0xe8,0x08,0xe9,0x09,0x23,0x0e,0x54,0x08,0xeb,0x08,0xec,0x09,0x24,0x0e,0x55,0x08,0xed,0x0e,0x56,0x09,0x25,0x09,0x59,0x08,0xee,0x09,0x3f, -0x09,0x26,0x0e,0x57,0x08,0xef,0x0e,0x58,0x09,0x27,0x0e,0x59,0x08,0xf0,0x0e,0x5a,0x09,0x28,0x08,0xf3,0x0e,0x5b,0x0e,0x5d,0x09,0x29,0x0e,0x5e,0x09,0x2a,0x08,0xf7,0x09,0x2b,0x08,0xf5,0x08,0xf4,0x0e,0x61,0x09,0x01,0x09,0x04,0x08,0xff,0x09,0x00,0x09,0x34,0x09,0x35,0x08,0xfa,0x08,0xfb,0x0b,0xb8,0x0b,0x1b,0x40,0x55,0x85,0x64, -0x5b,0x5a,0x59,0x54,0x52,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, -0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x6a,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0x4e,0xf0,0x4d,0x2f,0xb0,0x00,0x12,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58, -0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb1,0x00,0x40,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x4e,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x4d,0x1b,0x20,0x45,0xb0,0x04,0x25,0xb0,0x04,0x25,0x23,0x4a,0x61,0x64,0xb0,0x28,0x52,0x58,0x21, -0x23,0x10,0xd6,0x1b,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x59,0x59,0x2d,0x2c,0xb0,0x1a,0x43,0x58,0x21,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0xb0,0x03,0x25,0xb0,0x03,0x25,0x4a,0x61,0x20,0x64,0xb0,0x10,0x50,0x58,0x21,0x21,0x21,0x1b,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0xb0,0x00,0x50,0x58,0xb0,0x00,0x50,0x58, -0xb8,0xff,0xe2,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x1b,0xb0,0x00,0x52,0x58,0xb0,0x1e,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x59,0x59,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb9,0x00,0x00,0xff,0xc0,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33, -0x2f,0x59,0x2d,0x2c,0x4e,0x01,0x8a,0x10,0xb1,0x0c,0x19,0x43,0x44,0xb0,0x00,0x14,0xb1,0x00,0x0c,0xe2,0xb0,0x00,0x15,0xb9,0x00,0x00,0xff,0xf0,0x38,0x00,0xb0,0x00,0x3c,0xb0,0x28,0x2b,0xb0,0x02,0x25,0x10,0xb0,0x00,0x3c,0x2d,0x2c,0x01,0x18,0xb0,0x00,0x2f,0xb0,0x01,0x14,0xf2,0xb0,0x01,0x13,0xb0,0x01,0x15,0x4d,0xb0,0x00,0x12, -0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0xb9,0x00,0x00,0xff,0xe0,0x38,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x64,0x6a,0x23,0x45,0x64,0x69,0xb0,0x19,0x43,0x64,0x60,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0xf0,0x2f,0xb0, -0x00,0x12,0x1b,0x21,0x21,0x20,0x8a,0x20,0x8a,0x52,0x58,0x11,0x33,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb1,0x0b,0x0a,0x43,0x23,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb1,0x0a,0x0b,0x43,0x23,0x43,0x0b,0x59,0x2d,0x2c,0x00,0xb0,0x0c,0x23,0x70,0xb1,0x01,0x0c,0x3e,0x01, -0xb0,0x0c,0x23,0x70,0xb1,0x02,0x0c,0x45,0x3a,0xb1,0x02,0x00,0x08,0x0d,0x2d,0x2c,0xb0,0x12,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb0,0x40,0x8b,0x60,0xb0,0x02,0x25,0x23,0x44,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x13,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb8,0xff,0xc0,0x8c,0x60,0xb0,0x02,0x25,0x23,0x44, -0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x12,0x2b,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x13,0x2b,0x21,0x21,0x21,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb0,0x06,0x43,0xb0,0x07,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x20,0x69,0xb0,0x40,0x61,0xb0,0x00,0x8b,0x20,0xb1,0x2c,0xc0,0x8a,0x8c,0xb8,0x10,0x00,0x62,0x60,0x2b,0x0c,0x64, -0x23,0x64,0x61,0x5c,0x58,0xb0,0x03,0x61,0x59,0x2d,0x2c,0xb1,0x00,0x03,0x25,0x45,0x68,0x54,0xb0,0x1c,0x4b,0x50,0x5a,0x58,0xb0,0x03,0x25,0x45,0xb0,0x03,0x25,0x45,0x60,0x68,0x20,0xb0,0x04,0x25,0x23,0x44,0xb0,0x04,0x25,0x23,0x44,0x1b,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x68,0x60,0xb0,0x03, -0x25,0x23,0x44,0x59,0x2d,0x2c,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x64,0x68,0x65,0x60,0xb0,0x04,0x25,0xb0,0x01,0x60,0x23,0x44,0x2d,0x2c,0xb0,0x09,0x43,0x58,0x87,0x21,0xc0,0x1b,0xb0,0x12,0x43,0x58,0x87,0x45,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x03,0x8a,0x45,0x18, -0x69,0x20,0xb0,0x0d,0x23,0x44,0x8a,0x8a,0x87,0x20,0xb0,0xa0,0x51,0x58,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x21,0xb0,0x0d,0x7a,0xe4,0x59,0x59,0x59,0x18,0x2d,0x2c,0x20,0x8a,0x45,0x23,0x45,0x68,0x60,0x44,0x2d,0x2c,0x45,0x6a,0x42,0x2d,0x2c,0x01,0x18,0x2f,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0, -0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x01,0xb0,0x18,0x43,0x58,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45, -0x64,0x60,0x6a,0xb0,0x03,0x25,0x45,0x6a,0x61,0x20,0xb0,0x04,0x25,0x45,0x6a,0x20,0x8a,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x20,0x45,0x6a,0x44,0x20,0x45,0x6a,0x44,0x59,0x2d,0x2c,0x01,0x20,0x45,0xb0,0x00,0x55,0xb0,0x18,0x43,0x5a,0x58,0x45,0x68,0x23,0x45,0x69,0xb0,0x40,0x8b,0x61, -0x20,0xb0,0x80,0x62,0x6a,0x20,0x8a,0x23,0x61,0x20,0xb0,0x03,0x25,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x21,0x21,0xb0,0x19,0x2b,0x59,0x2d,0x2c,0x01,0x8a,0x8a,0x45,0x64,0x23,0x45,0x64,0x61,0x64,0x42,0x2d,0x2c,0xb0,0x04,0x25,0xb0,0x04,0x25,0xb0,0x19,0x2b,0xb0,0x18,0x43,0x58,0xb0, -0x04,0x25,0xb0,0x04,0x25,0xb0,0x03,0x25,0xb0,0x1b,0x2b,0x01,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0x5a,0x58,0xb0,0x03,0x25,0x20,0x45,0xb0,0x40,0x61,0x44,0x59,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0x5a,0x58,0xb0,0x04,0x25,0x20,0x45,0xb0,0x40,0x60,0x44,0x59, -0x59,0x21,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x03,0x25,0x20,0xb0,0x07,0x25,0x87,0x05,0x2e,0x23,0x20,0x8a,0xb0,0x04,0x25,0xb0,0x07,0x25,0xb0,0x14,0x2b,0x10,0x21,0xc4,0x21,0x2d,0x2c,0xc0,0x2d,0x2c,0x4b,0x52,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xed,0x18,0x1b,0xed,0x59,0x2d,0x2c,0x4b,0x50,0x58, -0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x01,0x18,0x4b,0x52,0x58,0x8a,0x2f,0xed,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x60,0x54,0x58,0x21,0x21,0x21,0x1b,0xb0,0x02,0x25,0x45,0x68,0x60,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x59, -0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xcd,0x18,0x1b,0xcd,0x59,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a,0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0xba,0x8b,0x1b,0xb0,0x46, -0x8c,0x59,0xb0,0x10,0x60,0x68,0x01,0x3a,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x52,0x4b,0xb0,0x13,0x51,0x5b,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x50,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25, -0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb0,0x07,0x43,0xb0,0x06,0x43,0x0b,0x59,0x2d,0x2c,0x8a,0x10,0xec,0x2d,0x2c,0xb0,0x0c,0x43,0x58,0x21,0x1b,0x20,0x46,0xb0,0x00,0x52,0x58,0xb8,0xff,0xf0,0x38,0x1b,0xb0,0x10,0x38,0x59,0x59,0x2d,0x2c,0x20,0xb0,0x00,0x55,0x58, -0xb8,0x10,0x00,0x63,0xb0,0x03,0x25,0x45,0x64,0xb0,0x03,0x25,0x45,0x64,0x61,0xb0,0x00,0x53,0x58,0xb0,0x02,0x1b,0xb0,0x40,0x61,0xb0,0x03,0x59,0x25,0x45,0x69,0x53,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x61,0x64,0xb0,0x28,0x51,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c, -0x21,0x21,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x2d,0x2c,0x21,0xb0,0x80,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x20,0x00,0x62,0x1b,0xb2,0x00,0x40,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d,0x2c,0x21,0xb0,0xc0,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x15,0x55,0x62,0x1b,0xb2,0x00,0x80,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d, -0x2c,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x60,0x23,0x21,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x8a,0x11,0x23, -0x12,0x20,0x39,0x2f,0x59,0x2d,0x2c,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0x64,0xb0,0xc0,0x54,0x58,0xb8,0xff,0xf8,0x38,0xb0,0x08,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x03,0x1b,0x02,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x02,0x1b,0x03,0x59,0x2d,0x2c,0xb0,0x0a,0x2b,0x23,0x10,0x20,0x3c,0xb0,0x17,0x2b,0x2d,0x2c, -0xb0,0x02,0x25,0xb8,0xff,0xf0,0x38,0xb0,0x28,0x2b,0x8a,0x10,0x23,0x20,0xd0,0x23,0xb0,0x10,0x2b,0xb0,0x05,0x43,0x58,0xc0,0x1b,0x3c,0x59,0x20,0x10,0x11,0xb0,0x00,0x12,0x01,0x2d,0x2c,0xb0,0x48,0x2b,0x2d,0x2c,0x01,0xb0,0x02,0x25,0x10,0xd0,0x23,0xc9,0x01,0xb0,0x01,0x13,0xb0,0x00,0x14,0x10,0xb0,0x01,0x3c,0xb0,0x01,0x16,0x2d, -0x2c,0x01,0xb0,0x00,0x13,0xb0,0x01,0xb0,0x03,0x25,0x49,0xb0,0x03,0x17,0x38,0xb0,0x01,0x13,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0x64,0x68,0xb0,0x40,0x8b,0x61,0x20, -0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0xb0,0x04,0x25,0x10,0x23,0xb0,0x0c,0xf6,0x1b,0xb0,0x04,0x25,0xb0,0x04,0x25,0x11,0x12,0x23,0x20,0x39,0x2f,0x59,0xcc,0x21,0x21,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x25,0x46,0x23,0x45,0x64,0x61,0x1b,0x21,0xb0,0x04,0x25,0xb0, -0x04,0x25,0x4a,0x59,0xb0,0x0e,0x23,0x44,0x23,0x10,0xb0,0x0e,0xec,0x23,0x10,0xb0,0x0e,0xec,0x2d,0x2c,0xb0,0x1b,0x43,0x58,0x20,0xb0,0x01,0x60,0x45,0xb0,0x00,0x51,0x58,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68,0xb0,0x00,0x55,0x58,0xb0,0x20,0x60,0x44,0x21,0x1b,0x21,0x21,0x21,0x59,0x1b,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68, -0xb0,0x00,0x55,0x58,0xb8,0xff,0xe0,0x60,0x44,0xb0,0x1c,0x4b,0x50,0x58,0x20,0x45,0xb0,0x20,0x60,0x44,0x1b,0x21,0x59,0x1b,0x21,0x21,0x21,0x59,0x59,0x1b,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a, -0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0x80,0x8b,0x1b,0xb0,0x81,0x8c,0x59,0x68,0x3a,0x2d,0x2c,0xb0,0x40,0x2a,0x21,0x2d,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a, -0x58,0x38,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x49,0xb0,0x0e,0x23,0x44,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21, -0x21,0x59,0x2d,0x2c,0x4b,0x54,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x00,0x21,0x4b,0x54,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x46,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43, -0x54,0x58,0xb0,0x47,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x48,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x49,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x00,0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x51,0x58,0xb8,0xff,0xc0,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x00, -0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x53,0x58,0xb0,0x40,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x4b,0x52,0x58,0x7d,0x1b,0x7a,0x59,0x2d,0x2c,0xb1,0x02,0x01,0x42,0xb1,0x23,0x01,0x88,0x51,0xb1,0x40,0x01,0x88,0x53,0x5a,0x58,0xb1,0x02,0x00,0x42,0xb9,0x10,0x00,0x00,0x20,0x88,0x54,0x58,0xb2,0x02,0x01,0x02,0x43,0x60,0x42,0x59,0xb1, -0x24,0x01,0x88,0x51,0x58,0xb9,0x20,0x00,0x00,0x40,0x88,0x54,0x58,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb1,0x24,0x01,0x88,0x54,0x58,0xb2,0x02,0x20,0x02,0x43,0x60,0x42,0x00,0x4b,0x01,0x4b,0x52,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0x1b,0xb9,0x40,0x00,0x00,0x80,0x88,0x54,0x58,0xb2,0x02,0x04,0x02,0x43,0x60,0x42,0x59, -0xb9,0x40,0x00,0x00,0x80,0x63,0xb8,0x01,0x00,0x88,0x54,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0xb9,0x40,0x00,0x01,0x00,0x63,0xb8,0x02,0x00,0x88,0x54,0x58,0xb2,0x02,0x10,0x02,0x43,0x60,0x42,0x59,0xb1,0x26,0x01,0x88,0x51,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x58,0xb2,0x02,0x40,0x02,0x43,0x60, -0x42,0x59,0xb9,0x40,0x00,0x04,0x00,0x63,0xb8,0x08,0x00,0x88,0x54,0x58,0xb2,0x02,0x80,0x02,0x43,0x60,0x42,0x59,0x59,0x59,0x59,0x59,0x59,0xb1,0x00,0x02,0x43,0x54,0x58,0x40,0x0a,0x05,0x40,0x08,0x40,0x09,0x40,0x0c,0x02,0x0d,0x02,0x1b,0xb1,0x01,0x02,0x43,0x54,0x58,0xb2,0x05,0x40,0x08,0xba,0x01,0x00,0x00,0x09,0x01,0x00,0xb3, -0x0c,0x01,0x0d,0x01,0x1b,0xb1,0x80,0x02,0x43,0x52,0x58,0xb2,0x05,0x40,0x08,0xb8,0x01,0x80,0xb1,0x09,0x40,0x1b,0xb2,0x05,0x40,0x08,0xba,0x01,0x80,0x00,0x09,0x01,0x40,0x59,0xb9,0x40,0x00,0x00,0x80,0x88,0x55,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x55,0x5a,0x58,0xb3,0x0c,0x00,0x0d,0x01,0x1b,0xb3,0x0c,0x00,0x0d, -0x01,0x59,0x59,0x59,0x42,0x42,0x42,0x42,0x42,0x2d,0x2c,0xb0,0x80,0xb0,0x02,0x43,0x50,0xb0,0x01,0xb0,0x02,0x43,0x54,0x5b,0xb0,0x10,0x4b,0x51,0x5a,0x58,0x21,0x23,0x10,0xb0,0x20,0x1a,0xc9,0x1b,0x8a,0x10,0xed,0x59,0x2d,0x2c,0xb0,0x59,0x2b,0x2d,0x2c,0x8a,0x10,0xe5,0x2d,0x2c,0x20,0x45,0x69,0x44,0x2d,0x2c,0xb1,0x25,0x01,0x88, -0x50,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x5c,0xb0,0x14,0x4b,0x52,0x5b,0x1b,0xb0,0x01,0x59,0x2d,0xb9,0x00,0x20,0x01,0x3e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x3c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x34,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x32,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01, -0x2f,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x0c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x04,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x03,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x01,0x40,0xfb,0x09,0x18,0x01,0x4a,0x20,0xff,0x09, -0x18,0x01,0x4a,0x20,0xfe,0x09,0x18,0x01,0x4a,0x20,0xfc,0x09,0x18,0x01,0x4a,0x20,0xf3,0x09,0x18,0x01,0x4a,0x20,0xf1,0x09,0x18,0x01,0x4a,0x20,0xf0,0x09,0x18,0x01,0x4a,0x20,0xef,0x09,0x18,0x01,0x4a,0x20,0xed,0x09,0x18,0x01,0x4a,0x20,0xea,0x09,0x18,0x01,0x4a,0x20,0xdc,0x09,0x18,0x01,0x4a,0x20,0xda,0x09,0x18,0x01,0x4a,0x20, -0xd8,0x09,0x18,0x01,0x4a,0x20,0xd3,0x09,0x18,0x01,0x4a,0x20,0xcd,0x09,0x18,0x01,0x4a,0x20,0xcc,0x09,0x18,0x01,0x4a,0x20,0xca,0x09,0x18,0x01,0x4a,0x20,0xc9,0x09,0x18,0x01,0x4a,0x20,0xc8,0x09,0x18,0x01,0x4a,0x20,0xc6,0x09,0x18,0x01,0x4a,0x20,0xc4,0x09,0x18,0x01,0x4a,0x20,0xc2,0x09,0x18,0x01,0x4a,0x20,0xc0,0x09,0x18,0x01, -0x4a,0x20,0xbd,0x09,0x18,0x01,0x4a,0x20,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb1,0x09,0x18,0x01,0x4a,0x20,0xaf,0x09,0x18,0x01,0x4a,0x20,0x8c,0x09,0x18,0x01,0x4a,0x20,0x8b,0x09,0x18,0x01,0x4a,0x20,0x8a,0x09,0x18,0x01,0x4a,0x20,0x89,0x09,0x18,0x01,0x4a,0x20,0x38,0x09,0x18,0x01,0x4a,0x20,0x37,0x09,0x18,0x01,0x4a,0x20,0x84,0x09, -0x18,0x01,0x4a,0x20,0x83,0x09,0x18,0x01,0x4a,0x20,0x7f,0x09,0x18,0x01,0x4a,0x20,0x7e,0x09,0x18,0x01,0x4a,0x20,0x7d,0x09,0x18,0x01,0x4a,0x20,0x62,0x09,0x18,0x01,0x4a,0x20,0x50,0x09,0x18,0x01,0x4a,0x20,0x48,0x09,0x18,0x01,0x4a,0x20,0x0e,0x09,0x18,0x01,0x4a,0x2f,0xbe,0x04,0xed,0x00,0x01,0x00,0x4f,0x04,0xec,0x00,0x01,0x00, -0x40,0x04,0xeb,0x40,0x61,0x09,0x0d,0x39,0xdf,0xe0,0x16,0x17,0x1c,0xd4,0xd5,0x16,0x17,0x1c,0x7b,0x7c,0x16,0x1b,0x7b,0x7c,0x19,0xd1,0xd2,0x16,0x17,0x1c,0x76,0x77,0x16,0x17,0x1c,0x6d,0x70,0x16,0x17,0x1c,0x6c,0x6f,0x16,0x17,0x1c,0x6b,0x6e,0x16,0x1b,0x6b,0x6e,0x7f,0x72,0x1a,0x74,0x75,0x14,0x15,0x1c,0x67,0x6a,0x14,0x15,0x1c, -0x66,0x69,0x14,0x15,0x1c,0x65,0x68,0x14,0x1b,0x65,0x68,0x85,0x71,0x1a,0x19,0x73,0x16,0x7a,0x43,0x19,0x21,0x79,0x43,0x19,0x21,0x3b,0x39,0x00,0x2b,0x3a,0x39,0x00,0x2b,0x39,0x95,0x48,0x1f,0x2f,0xbc,0x04,0xe6,0x00,0x2f,0x05,0x03,0x00,0x02,0x05,0x03,0xb3,0x13,0xff,0x1f,0xe0,0xbe,0x04,0xf7,0x00,0x01,0x00,0xe0,0x04,0xf7,0x00, -0x01,0x00,0x20,0x04,0xf0,0xb3,0x0d,0x11,0x39,0x40,0xb8,0x04,0xea,0xb2,0x0b,0x14,0x39,0xb9,0xff,0xc0,0x04,0xef,0xb3,0x1b,0x22,0x39,0x3f,0x41,0x0d,0x04,0xf4,0x00,0x01,0x00,0x8f,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xef,0x00,0x01,0x00,0x40,0x04,0xe8,0xb3,0x0b,0x10,0x39,0x30,0xbd,0x01,0x55,0x00, -0x01,0x00,0x80,0x01,0x55,0x00,0x01,0x01,0x54,0xb3,0x95,0x24,0x1f,0x3f,0xbf,0x01,0x42,0x00,0x01,0x00,0x0f,0x01,0x41,0x00,0xa0,0x01,0x41,0x00,0x02,0xff,0xe0,0xb4,0xf1,0x29,0x2b,0x39,0x40,0xb8,0x01,0x40,0xb3,0x3d,0x43,0x39,0x40,0xb8,0x01,0x40,0xb3,0x24,0x28,0x39,0x40,0xb8,0x01,0x3f,0xb3,0x2c,0x2f,0x39,0x40,0xb8,0x01,0x3f, -0xb3,0x17,0x1c,0x39,0x40,0xb8,0x01,0x3d,0x40,0x16,0x26,0x2b,0x39,0xe6,0xe7,0x03,0x2b,0x40,0xe7,0x2c,0x2e,0x39,0x40,0xe7,0x1b,0x1c,0x39,0x40,0x54,0x1f,0x1f,0x39,0xb8,0xff,0xc0,0x40,0x16,0xcb,0x23,0x23,0x39,0x40,0xd9,0x29,0x2a,0x39,0x53,0x52,0x02,0x2b,0x52,0xe2,0x02,0x2b,0x20,0xb0,0x0b,0x0d,0x39,0xb9,0x01,0x02,0x01,0x01, -0x40,0x1b,0x02,0x2b,0xfd,0xfc,0x0a,0x2b,0xfb,0xaf,0x05,0x2b,0xf2,0xe2,0x02,0x2b,0xc3,0xc5,0x02,0x2b,0x40,0xda,0x17,0x19,0x39,0xdb,0xe2,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xe2,0x30,0x31,0x39,0xb8,0xff,0xc0,0x40,0x11,0xe2,0x1d,0x1e,0x39,0x40,0xd6,0x17,0x17,0x39,0xeb,0xbe,0x02,0x2b,0xbe,0x9a,0x02,0x2b,0xb8,0x01,0x84,0xb2,0x99, -0x0a,0x2b,0xb8,0x01,0x81,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x80,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x7f,0x40,0x0f,0x99,0x0a,0x2b,0x9b,0x99,0x0a,0x2b,0x99,0x9a,0x02,0x2b,0x9a,0x95,0x05,0x2b,0xb8,0xff,0xe0,0xb7,0xee,0x14,0x16,0x39,0x92,0x91,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0xf4,0x13,0x16,0x39,0xec,0x95,0x04,0x2b,0x91,0x95,0x24, -0x1f,0xb8,0xff,0xe0,0x40,0x0b,0x63,0x18,0x19,0x39,0x66,0x63,0x01,0x96,0x95,0x02,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0x95,0x25,0x28,0x39,0x38,0x37,0x00,0x2b,0x37,0x84,0xff,0x1f,0xb8,0x01,0x01,0xb6,0x7d,0x02,0x2b,0xfc,0xdb,0x0a,0x2b,0xb9,0x01,0x3e,0x01,0x3c,0xb2,0x02,0x2b,0x40,0xb8,0x01,0x3c,0xb2,0x1f,0x24,0x39,0xb8,0x01,0x2f, -0xb2,0x7d,0x03,0x2b,0xb8,0x01,0x2e,0xb3,0x84,0x03,0x2b,0xd0,0xb8,0x01,0x2c,0xb5,0x01,0x40,0xd8,0x17,0x19,0x39,0xb8,0xff,0xc0,0x40,0x09,0xc4,0x22,0x25,0x39,0x40,0xc2,0x17,0x17,0x39,0xb8,0xff,0xc0,0xb3,0xc0,0x1a,0x1b,0x39,0xb8,0xff,0xc0,0xb7,0xc0,0x10,0x12,0x39,0xcd,0xcc,0x03,0x2b,0xb8,0xff,0xc0,0xb7,0xc9,0x23,0x23,0x39, -0xca,0xc8,0x03,0x2b,0xb8,0xff,0xc0,0x40,0x16,0xf0,0x0b,0x0d,0x39,0xea,0x7e,0x02,0x2b,0x30,0x62,0x0c,0x0c,0x06,0x43,0xb1,0xaf,0x02,0x2b,0xaf,0x7e,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xd3,0x0f,0x12,0x39,0xb8,0xff,0xc0,0xb3,0xbd,0x27,0x28,0x39,0xbc,0x01,0x86,0x00,0x89,0x01,0x00,0x00,0x2b,0x01,0x85,0xb2,0x8a,0x0a,0x2b,0xb8,0xff, -0xc0,0x40,0x1c,0x8c,0x1e,0x1e,0x39,0x89,0x8a,0x04,0x2b,0x8a,0x84,0x0a,0x2b,0x8b,0x84,0x03,0x2b,0x81,0x7f,0x01,0x2b,0x7d,0x7e,0x04,0x2b,0x7e,0x84,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x41,0x62,0x18,0x19,0x39,0x62,0x84,0x01,0x2b,0x88,0x84,0x01,0x2b,0x87,0x84,0x01,0x2b,0x85,0x84,0x01,0x2b,0x83,0x84,0x04,0x2b,0xe9,0x84,0xf9,0x84, -0x02,0x69,0x84,0x01,0x27,0x84,0x01,0x1b,0x37,0x15,0x18,0x36,0x15,0x15,0x35,0x15,0x12,0x34,0x15,0x0f,0x33,0x15,0x0c,0x32,0x15,0x09,0x31,0x15,0x06,0x30,0x15,0x03,0x2f,0x15,0x00,0x2e,0x15,0x41,0x26,0x01,0x4a,0x01,0x4b,0x00,0x15,0x00,0x50,0x01,0x4c,0x00,0x01,0x00,0x70,0x01,0x4a,0x00,0x01,0x01,0x3a,0x01,0x3b,0x00,0x0f,0x01, -0x38,0x01,0x39,0x00,0x0e,0x01,0x36,0x01,0x37,0x00,0x0e,0x00,0x0b,0x01,0x38,0x00,0x3b,0x01,0x38,0x00,0x4b,0x01,0x38,0x00,0xcb,0x01,0x38,0x00,0x04,0x00,0x0b,0x01,0x36,0x00,0x3b,0x01,0x36,0x00,0x5b,0x01,0x36,0x00,0x03,0x00,0x10,0x01,0x3a,0x00,0x01,0x01,0x06,0xb2,0x03,0xff,0x1f,0x41,0x21,0x01,0x0a,0x01,0x0b,0x00,0x0f,0x01, -0x08,0x01,0x09,0x00,0x0e,0x01,0x06,0x01,0x07,0x00,0x0e,0x00,0x6b,0x01,0x08,0x00,0x01,0x00,0x0b,0x01,0x08,0x00,0x3b,0x01,0x08,0x00,0x4b,0x01,0x08,0x00,0xbb,0x01,0x08,0x00,0xeb,0x01,0x08,0x00,0xfb,0x01,0x08,0x00,0x06,0x00,0x0b,0x01,0x0a,0x00,0x5b,0x01,0x0a,0x00,0x8b,0x01,0x0a,0x00,0x03,0x01,0x06,0x40,0x22,0x03,0xff,0x1f, -0x26,0x27,0x0e,0x28,0x27,0x0f,0x35,0x36,0x0e,0x33,0x36,0x0f,0x2a,0x2b,0x0e,0x2c,0x2b,0x0f,0x22,0x23,0x0e,0x24,0x23,0x0f,0x1e,0x1f,0x0e,0x20,0x1f,0x0f,0x00,0xbf,0x01,0x31,0x00,0x10,0x01,0x31,0x00,0x20,0x01,0x31,0x00,0x03,0x00,0x00,0x01,0x30,0x40,0x80,0x01,0x70,0x2a,0xe0,0x2a,0x02,0x00,0x3c,0x01,0x10,0x24,0x40,0x24,0x70, -0x24,0xa0,0x24,0x04,0x0f,0x10,0x11,0x0c,0x09,0x0a,0x0b,0x0c,0x06,0x07,0x08,0x0c,0x03,0x04,0x05,0x0c,0x00,0x01,0x02,0x0c,0x26,0x06,0x1c,0x1f,0x06,0x03,0x18,0x1f,0x0f,0x03,0x3f,0x03,0xdf,0x03,0x03,0x9f,0x00,0xdf,0x00,0x02,0x0f,0x17,0x1f,0x17,0x2f,0x17,0x03,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x1b,0x01,0x1d,0x0d,0x18,0x07, -0x1a,0x0d,0x15,0x10,0x17,0x0d,0x12,0x04,0x14,0x0d,0x2f,0x1b,0x01,0x2c,0x3c,0x2a,0x3c,0x28,0x3c,0x26,0x3c,0x24,0x3c,0x22,0x3c,0x20,0x3c,0x1e,0x3c,0x1b,0x3c,0x18,0x3c,0x15,0x3c,0x12,0x3c,0x0f,0x3c,0x09,0x3c,0x06,0x3c,0x03,0x3c,0x00,0x3c,0x50,0x33,0x54,0x01,0xb0,0x12,0x4b,0x00,0x4b,0x54,0x42,0xb0,0x13,0x01,0x4b,0x00,0x4b, -0x53,0x42,0xb0,0x33,0x2b,0x4b,0xb8,0x03,0x20,0x52,0xb0,0x32,0x2b,0x4b,0xb0,0x09,0x50,0x5b,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x33,0x2b,0xb0,0x02,0x88,0xb8,0x01,0x00,0x54,0xb0,0x04,0x88,0xb8,0x02,0x00,0x54,0xb0,0x12,0x43,0x5a,0x5b,0x58,0xb8,0x01,0x19,0xb1,0x01,0x01,0x8e,0x85,0x1b,0xb9,0x00,0x01,0x01,0x00,0xb0,0x4b,0x60, -0x85,0x8d,0x59,0x2b,0x2b,0x1d,0xb0,0x64,0x4b,0x53,0x58,0xb0,0x80,0x1d,0x59,0xb0,0x32,0x4b,0x53,0x58,0xb0,0x90,0x1d,0x59,0x00,0x4b,0xb0,0x32,0x51,0xb0,0x1b,0x23,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x73,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0xb1,0x28,0x26,0x45,0xb0,0x2a,0x45,0x61,0xb0,0x2c,0x45,0x60,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x74,0xb8,0x01,0x06,0x45,0x69,0xb8,0x01,0x0a,0x45,0x69,0x61,0xb8,0x01,0x0a,0x23,0x44,0xb8,0x01,0x08,0x45,0x69,0xb8,0x01,0x0a,0x45,0x60,0xb8,0x01,0x08,0x23, -0x44,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x38,0x45,0x69,0x60,0xb8,0x01,0x38,0x23,0x44,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x36,0x45,0x69,0x60,0xb8,0x01,0x36,0x23,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x73,0x74,0x75,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x73,0x74,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x73,0x74,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0xb0,0x18,0xb0,0x3f,0x4b,0x53,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0xb1, -0x09,0x32,0x2b,0x4b,0xb0,0x50,0x52,0x42,0x4b,0xb0,0x08,0x52,0x4b,0xb0,0x08,0x50,0x5b,0xb0,0x1a,0x23,0x42,0x4b,0xb0,0xc8,0x52,0x4b,0xb0,0x36,0x50,0x5b,0xb0,0x0c,0x23,0x42,0xb1,0x00,0x02,0x43,0x54,0xb1,0x02,0x02,0x43,0x54,0xb1,0x06,0x02,0x43,0x54,0x5b,0x5b,0x58,0x41,0x15,0x01,0x3e,0x00,0x64,0x01,0x3c,0x00,0x64,0x01,0x34, -0x00,0x64,0x01,0x32,0x00,0x64,0x01,0x2f,0x00,0x64,0x01,0x2e,0x00,0x64,0x01,0x2c,0x00,0x64,0x01,0x0c,0x00,0x64,0x01,0x04,0x00,0x64,0x01,0x03,0x00,0x64,0x01,0x01,0x40,0x4f,0x64,0xff,0x64,0xfe,0x64,0xfc,0x64,0xf3,0x64,0xf1,0x64,0xf0,0x64,0xef,0x64,0xed,0x64,0xea,0x64,0xdc,0x64,0xda,0x64,0xd8,0x64,0xd3,0x64,0xcd,0x64,0xcc, -0x64,0xca,0x64,0xc9,0x64,0xc8,0x64,0xc6,0x64,0xc4,0x64,0xc2,0x64,0xc0,0x64,0xbd,0x64,0xb4,0x64,0xb1,0x64,0xaf,0x64,0x8c,0x64,0x8b,0x64,0x8a,0x64,0x89,0x64,0x84,0x64,0x83,0x64,0x7f,0x64,0x7e,0x64,0x7d,0x64,0x62,0x64,0x50,0x64,0x48,0x64,0x0e,0x64,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x59,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x05,0xec,0x00,0x16,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0xff,0xe8, -0xff,0x89,0x00,0x00,0xff,0xe8,0xff,0x89,0x00,0x00,0xff,0xe8,0xfe,0x4e,0xfe,0x29,0xff,0xf5,0x00,0x00,0x05,0x9a,0x00,0x00,0xfe,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xcd,0xff,0xed,0x05,0xa1,0x00,0x0d,0x02,0x48,0xff,0xeb,0x03,0x59,0x00,0x0d,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0xff,0xed,0x04,0x33,0x00,0x12,0x00,0xa4,0x00,0xab,0x00,0x8b,0x00,0x81,0x00,0x77,0xfe,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x71,0x00,0x80, -0x00,0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,0xa8,0x00,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x9b,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x00,0x8c,0x00,0x00, -0x00,0x00,0x00,0x8a,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x94,0x00,0x8a,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0xe0,0x00,0xa0,0x00,0xe4,0x01,0xbe, -0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x00,0x86,0x00,0x00,0x00,0xc5,0x00,0xc3,0x00,0x81,0x00,0x4a,0x00,0x5a,0x00,0x51,0x05,0xdb,0x05,0xdb,0x00,0x86,0x00,0x58,0x00,0x90,0x00,0x58,0x00,0x8a,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcf, -0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x78,0x00,0x77,0x00,0x7a,0x00,0x61,0x00,0x7a,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x6d,0x00,0x00,0x00,0x00,0x00,0x92,0x00,0x81,0x00,0x92,0x00,0x8b,0x00,0xa0,0x00,0x97,0x01,0xd3,0x00,0x4c,0x00,0x74,0x00,0x64, -0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x23,0x00,0xc9,0x00,0x6a,0x00,0x6d,0x00,0x4c,0x00,0x61,0x00,0x69,0x00,0xc8,0x00,0xa2,0x00,0x80,0x00,0x7e,0x00,0x6b,0x05,0x9a,0x00,0x11,0x02,0x24,0x00,0x11,0x03,0x00,0xff,0xef,0x00,0x81,0x00,0x67,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x63,0x00,0x96,0x00,0xc0,0xfe,0xbc,0xfe,0xf2,0x00,0x64,0x00,0x64, -0x00,0x76,0x00,0x7c,0x02,0xf6,0x00,0x0d,0x02,0x00,0x00,0x0d,0x04,0x96,0xff,0xf3,0x00,0x54,0x00,0x46,0x00,0x6a,0x00,0x6b,0x00,0x4c,0x07,0x69,0xfe,0x31,0x00,0xe4,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xcd,0x00,0x11,0x06,0xa0,0x00,0x00,0xff,0xed,0xfe,0x00,0x00,0xaa,0x00,0xb6,0x00,0x6c,0x00,0x00, -0x00,0xaa,0x00,0xb8,0x00,0x6c,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xfe,0x63,0xfd,0x6d, -0xfd,0x76,0xff,0x82,0xff,0x83,0x05,0xe9,0x05,0xe3,0x04,0xbe,0x04,0xec,0x03,0x64,0x04,0x19,0x00,0x6e,0x00,0x7f,0x00,0x8c,0x00,0x9b,0x00,0xa7,0x00,0x6e,0x00,0x7f,0x00,0x91,0x00,0xa0,0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0xbc,0x00,0x94,0x00,0x94,0xff,0x85,0xff,0xae,0x00,0x52,0x00,0x29,0x06,0x14,0x00,0xae,0x00,0x46,0x00,0x46,0xfe,0x58, -0x05,0x60,0x00,0x8f,0x00,0x85,0x00,0x85,0x00,0x5c,0x00,0x54,0x00,0x46,0x00,0xa7,0x00,0x98,0x00,0x58,0x00,0xe1,0x00,0x9e,0x00,0x4b,0x00,0x69,0x00,0xb4,0xff,0xe8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x00,0x64,0x00,0xe1,0x00,0x5a,0x00,0x4b,0x00,0x00,0x05,0x4e,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xbe,0x00,0x00,0x01,0x0a,0x00,0x00,0x02,0x3e,0x00,0x00,0x03,0x84,0x00,0x00,0x04,0xd2,0x00,0x00,0x06,0xca,0x00,0x00,0x06,0xf2,0x00,0x00,0x07,0x66,0x00,0x00,0x07,0xe2,0x00,0x00,0x08,0x8e,0x00,0x00,0x09,0x08,0x00,0x00,0x09,0x6a, -0x00,0x00,0x09,0xa2,0x00,0x00,0x09,0xea,0x00,0x00,0x0a,0x22,0x00,0x00,0x0a,0xa6,0x00,0x00,0x0a,0xf8,0x00,0x00,0x0b,0xb0,0x00,0x00,0x0c,0x9c,0x00,0x00,0x0d,0x28,0x00,0x00,0x0d,0xe8,0x00,0x00,0x0e,0xc4,0x00,0x00,0x0f,0x3a,0x00,0x00,0x10,0x66,0x00,0x00,0x11,0x42,0x00,0x00,0x11,0xca,0x00,0x00,0x12,0x6a,0x00,0x00,0x12,0xda, -0x00,0x00,0x13,0x36,0x00,0x00,0x13,0xa6,0x00,0x00,0x14,0x80,0x00,0x00,0x15,0xfc,0x00,0x00,0x17,0x10,0x00,0x00,0x18,0x52,0x00,0x00,0x19,0x3e,0x00,0x00,0x1a,0x18,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0x4c,0x00,0x00,0x1c,0x58,0x00,0x00,0x1d,0x00,0x00,0x00,0x1d,0x28,0x00,0x00,0x1d,0xc6,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1f,0x4a, -0x00,0x00,0x20,0x64,0x00,0x00,0x21,0x58,0x00,0x00,0x22,0x42,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0xd0,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x66,0x00,0x00,0x27,0x0a,0x00,0x00,0x27,0xbc,0x00,0x00,0x28,0xbe,0x00,0x00,0x2a,0x6c,0x00,0x00,0x2b,0x84,0x00,0x00,0x2c,0x28,0x00,0x00,0x2c,0xfe,0x00,0x00,0x2d,0x5c,0x00,0x00,0x2d,0x90, -0x00,0x00,0x2d,0xea,0x00,0x00,0x2e,0x3a,0x00,0x00,0x2e,0x64,0x00,0x00,0x2e,0x9c,0x00,0x00,0x2f,0xaa,0x00,0x00,0x30,0xa2,0x00,0x00,0x31,0x70,0x00,0x00,0x32,0x66,0x00,0x00,0x33,0x6e,0x00,0x00,0x34,0x38,0x00,0x00,0x35,0x74,0x00,0x00,0x36,0x46,0x00,0x00,0x36,0xce,0x00,0x00,0x37,0x8a,0x00,0x00,0x38,0x5a,0x00,0x00,0x38,0xac, -0x00,0x00,0x39,0xe8,0x00,0x00,0x3a,0xba,0x00,0x00,0x3b,0x98,0x00,0x00,0x3c,0x90,0x00,0x00,0x3d,0x82,0x00,0x00,0x3e,0x16,0x00,0x00,0x3f,0x38,0x00,0x00,0x3f,0xfa,0x00,0x00,0x40,0xd6,0x00,0x00,0x41,0x8a,0x00,0x00,0x42,0xc4,0x00,0x00,0x43,0xf8,0x00,0x00,0x44,0xe4,0x00,0x00,0x45,0xb8,0x00,0x00,0x46,0x6c,0x00,0x00,0x46,0x9a, -0x00,0x00,0x47,0x54,0x00,0x00,0x47,0xde,0x00,0x00,0x48,0x1a,0x00,0x00,0x49,0xee,0x00,0x00,0x4a,0x06,0x00,0x00,0x4a,0x34,0x00,0x00,0x4a,0x62,0x00,0x00,0x4a,0x98,0x00,0x00,0x4a,0xca,0x00,0x00,0x4a,0xf8,0x00,0x00,0x4b,0x26,0x00,0x00,0x4b,0x56,0x00,0x00,0x4b,0x88,0x00,0x00,0x4b,0xb8,0x00,0x00,0x4b,0xec,0x00,0x00,0x4c,0x04, -0x00,0x00,0x4c,0x32,0x00,0x00,0x4c,0x60,0x00,0x00,0x4c,0x90,0x00,0x00,0x4c,0xc2,0x00,0x00,0x4c,0xee,0x00,0x00,0x4d,0x1a,0x00,0x00,0x4d,0x4a,0x00,0x00,0x4d,0x7e,0x00,0x00,0x4d,0xae,0x00,0x00,0x4d,0xde,0x00,0x00,0x4e,0x0c,0x00,0x00,0x4e,0x3a,0x00,0x00,0x4e,0x6c,0x00,0x00,0x4e,0x9a,0x00,0x00,0x4e,0xca,0x00,0x00,0x4e,0xf8, -0x00,0x00,0x4f,0x26,0x00,0x00,0x4f,0x58,0x00,0x00,0x4f,0xc8,0x00,0x00,0x50,0x4e,0x00,0x00,0x51,0x30,0x00,0x00,0x51,0xec,0x00,0x00,0x53,0x48,0x00,0x00,0x53,0x8e,0x00,0x00,0x54,0x42,0x00,0x00,0x55,0x52,0x00,0x00,0x55,0x62,0x00,0x00,0x56,0x80,0x00,0x00,0x57,0xa2,0x00,0x00,0x58,0x6e,0x00,0x00,0x58,0xa0,0x00,0x00,0x59,0x16, -0x00,0x00,0x59,0xec,0x00,0x00,0x5a,0xee,0x00,0x00,0x5c,0x78,0x00,0x00,0x5d,0x82,0x00,0x00,0x5e,0x1e,0x00,0x00,0x5e,0xb4,0x00,0x00,0x5f,0x4c,0x00,0x00,0x60,0x4a,0x00,0x00,0x60,0xf2,0x00,0x00,0x61,0xd2,0x00,0x00,0x62,0x52,0x00,0x00,0x62,0xb4,0x00,0x00,0x63,0x3c,0x00,0x00,0x64,0x0a,0x00,0x00,0x64,0x82,0x00,0x00,0x65,0xb6, -0x00,0x00,0x67,0x24,0x00,0x00,0x68,0x74,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0xc4,0x00,0x00,0x6a,0x10,0x00,0x00,0x6a,0x82,0x00,0x00,0x6b,0x68,0x00,0x00,0x6c,0x7e,0x00,0x00,0x6c,0xfc,0x00,0x00,0x6d,0x66,0x00,0x00,0x6d,0xd0,0x00,0x00,0x6e,0x90,0x00,0x00,0x6e,0xbe,0x00,0x00,0x6e,0xee,0x00,0x00,0x6f,0x1c, -0x00,0x00,0x70,0x4e,0x00,0x00,0x71,0xe0,0x00,0x00,0x72,0x0a,0x00,0x00,0x72,0x34,0x00,0x00,0x72,0x82,0x00,0x00,0x72,0xd0,0x00,0x00,0x73,0x06,0x00,0x00,0x73,0x38,0x00,0x00,0x73,0xda,0x00,0x00,0x74,0x3c,0x00,0x00,0x74,0x6c,0x00,0x00,0x74,0xa0,0x00,0x00,0x74,0xce,0x00,0x00,0x76,0x0e,0x00,0x00,0x76,0x50,0x00,0x00,0x76,0x92, -0x00,0x00,0x77,0xae,0x00,0x00,0x78,0xa0,0x00,0x00,0x79,0x54,0x00,0x00,0x79,0x96,0x00,0x00,0x79,0xde,0x00,0x00,0x7a,0x56,0x00,0x00,0x7c,0x38,0x00,0x00,0x7c,0x68,0x00,0x00,0x7c,0x98,0x00,0x00,0x7c,0xc8,0x00,0x00,0x7c,0xfa,0x00,0x00,0x7d,0x2a,0x00,0x00,0x7d,0x58,0x00,0x00,0x7d,0x86,0x00,0x00,0x7d,0xb8,0x00,0x00,0x7d,0xe6, -0x00,0x00,0x7e,0x14,0x00,0x00,0x7e,0x42,0x00,0x00,0x7e,0x70,0x00,0x00,0x7e,0x9e,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7e,0xfc,0x00,0x00,0x7f,0x46,0x00,0x00,0x7f,0x86,0x00,0x00,0x80,0x16,0x00,0x00,0x80,0x42,0x00,0x00,0x80,0xa4,0x00,0x00,0x80,0xe2,0x00,0x00,0x81,0x7c,0x00,0x00,0x82,0x16,0x00,0x00,0x82,0x8e,0x00,0x00,0x82,0xe4, -0x00,0x00,0x83,0x26,0x00,0x00,0x84,0x22,0x00,0x00,0x84,0xb6,0x00,0x00,0x84,0xe4,0x00,0x00,0x85,0x10,0x00,0x00,0x85,0x3e,0x00,0x00,0x85,0x6a,0x00,0x00,0x85,0xb2,0x00,0x00,0x86,0xb4,0x00,0x00,0x88,0x30,0x00,0x00,0x88,0x5e,0x00,0x00,0x88,0x8c,0x00,0x00,0x89,0x50,0x00,0x00,0x8a,0x4a,0x00,0x00,0x8a,0x96,0x00,0x00,0x8a,0xf6, -0x00,0x00,0x8b,0x40,0x00,0x00,0x8b,0xd8,0x00,0x00,0x8c,0x94,0x00,0x00,0x8c,0xbe,0x00,0x00,0x8c,0xea,0x00,0x00,0x8d,0x16,0x00,0x00,0x8d,0xd4,0x00,0x00,0x8e,0x04,0x00,0x00,0x8e,0x32,0x00,0x00,0x8e,0x60,0x00,0x00,0x8e,0x78,0x00,0x00,0x8e,0x90,0x00,0x00,0x8e,0xbe,0x00,0x00,0x8e,0xec,0x00,0x00,0x8f,0x1a,0x00,0x00,0x8f,0x48, -0x00,0x00,0x90,0x80,0x00,0x00,0x90,0xac,0x00,0x00,0x90,0xbc,0x00,0x00,0x90,0xec,0x00,0x00,0x91,0x1c,0x00,0x00,0x91,0x34,0x00,0x00,0x91,0x4c,0x00,0x00,0x91,0x7a,0x00,0x00,0x91,0xa6,0x00,0x00,0x91,0xb6,0x00,0x00,0x91,0xce,0x00,0x00,0x91,0xe6,0x00,0x00,0x92,0x16,0x00,0x00,0x92,0x44,0x00,0x00,0x92,0x72,0x00,0x00,0x92,0xa2, -0x00,0x00,0x92,0xd0,0x00,0x00,0x92,0xfc,0x00,0x00,0x93,0x24,0x00,0x00,0x93,0x4a,0x00,0x00,0x93,0x78,0x00,0x00,0x93,0xa8,0x00,0x00,0x93,0xd8,0x00,0x00,0x94,0x06,0x00,0x00,0x94,0x3a,0x00,0x00,0x94,0x6c,0x00,0x00,0x94,0x8e,0x00,0x00,0x94,0xbc,0x00,0x00,0x94,0xde,0x00,0x00,0x95,0x0a,0x00,0x00,0x95,0x2c,0x00,0x00,0x95,0x4e, -0x00,0x00,0x95,0x74,0x00,0x00,0x95,0x8c,0x00,0x00,0x95,0xba,0x00,0x00,0x96,0x82,0x00,0x00,0x96,0xc0,0x00,0x00,0x96,0xf2,0x00,0x00,0x97,0x52,0x00,0x00,0x97,0x86,0x00,0x00,0x97,0xb6,0x00,0x00,0x97,0xe4,0x00,0x00,0x98,0x14,0x00,0x00,0x98,0x42,0x00,0x00,0x98,0xb0,0x00,0x00,0x99,0xd6,0x00,0x00,0x9b,0x46,0x00,0x00,0x9c,0xc6, -0x00,0x00,0x9e,0x22,0x00,0x00,0x9f,0x28,0x00,0x00,0x9f,0xf6,0x00,0x00,0xa0,0xb2,0x00,0x00,0xa2,0x28,0x00,0x00,0xa2,0x7c,0x00,0x00,0xa2,0x94,0x00,0x00,0xa2,0xfc,0x00,0x00,0xa4,0x9a,0x00,0x00,0xa4,0xc2,0x00,0x00,0xa5,0x12,0x00,0x00,0xa5,0x44,0x00,0x00,0xa5,0x7a,0x00,0x00,0xa5,0xe0,0x00,0x00,0xa6,0xd6,0x00,0x00,0xa7,0x86, -0x00,0x00,0xa7,0xea,0x00,0x00,0xa8,0x2c,0x00,0x00,0xa8,0x98,0x00,0x00,0xa8,0xf2,0x00,0x00,0xa9,0x86,0x00,0x00,0xa9,0xb4,0x00,0x00,0xa9,0xe2,0x00,0x00,0xaa,0x10,0x00,0x00,0xaa,0x40,0x00,0x00,0xaa,0x6e,0x00,0x00,0xaa,0x9c,0x00,0x00,0xaa,0xca,0x00,0x00,0xaa,0xf8,0x00,0x00,0xab,0x26,0x00,0x00,0xab,0x56,0x00,0x00,0xab,0x86, -0x00,0x00,0xab,0xb4,0x00,0x00,0xab,0xe2,0x00,0x00,0xac,0x10,0x00,0x00,0xac,0x3e,0x00,0x00,0xac,0x6c,0x00,0x00,0xac,0x92,0x00,0x00,0xad,0xd0,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x30,0x00,0x00,0xaf,0x18,0x00,0x00,0xb0,0x24,0x00,0x00,0xb0,0x52,0x00,0x00,0xb0,0x80,0x00,0x00,0xb0,0xae,0x00,0x00,0xb0,0xdc,0x00,0x00,0xb1,0x0a, -0x00,0x00,0xb1,0x38,0x00,0x00,0xb1,0x5c,0x00,0x00,0xb1,0x80,0x00,0x00,0xb1,0xae,0x00,0x00,0xb1,0xd0,0x00,0x00,0xb1,0xf6,0x00,0x00,0xb2,0x1c,0x00,0x00,0xb2,0xb8,0x00,0x00,0xb2,0xd0,0x00,0x00,0xb2,0xe8,0x00,0x00,0xb3,0x10,0x00,0x00,0xb3,0x36,0x00,0x00,0xb4,0x4a,0x00,0x00,0xb5,0x38,0x00,0x00,0xb5,0x66,0x00,0x00,0xb5,0x94, -0x00,0x00,0xb5,0xc2,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x08,0x00,0x00,0xb6,0x2c,0x00,0x00,0xb6,0x4e,0x00,0x00,0xb6,0x6e,0x00,0x00,0xb7,0x4a,0x00,0x00,0xb8,0x38,0x00,0x00,0xb8,0x66,0x00,0x00,0xb8,0x94,0x00,0x00,0xb8,0xc2,0x00,0x00,0xb8,0xf2,0x00,0x00,0xb9,0x22,0x00,0x00,0xb9,0x52,0x00,0x00,0xb9,0x6a,0x00,0x00,0xb9,0x82, -0x00,0x00,0xb9,0xb0,0x00,0x00,0xb9,0xe0,0x00,0x00,0xba,0x0e,0x00,0x00,0xba,0x3c,0x00,0x00,0xba,0xa6,0x00,0x00,0xbc,0x2c,0x00,0x00,0xbc,0x82,0x00,0x00,0xbc,0xb0,0x00,0x00,0xbc,0xde,0x00,0x00,0xbd,0x0c,0x00,0x00,0xbd,0x3c,0x00,0x00,0xbd,0x7e,0x00,0x00,0xbd,0xae,0x00,0x00,0xbd,0xde,0x00,0x00,0xbe,0x10,0x00,0x00,0xbe,0x3e, -0x00,0x00,0xbe,0x72,0x00,0x00,0xbe,0xa6,0x00,0x00,0xbe,0xda,0x00,0x00,0xbf,0x0a,0x00,0x00,0xbf,0x42,0x00,0x00,0xbf,0x6e,0x00,0x00,0xc0,0x66,0x00,0x00,0xc1,0x16,0x00,0x00,0xc1,0x44,0x00,0x00,0xc1,0x72,0x00,0x00,0xc1,0xa0,0x00,0x00,0xc1,0xce,0x00,0x00,0xc2,0x02,0x00,0x00,0xc2,0x36,0x00,0x00,0xc2,0x46,0x00,0x00,0xc2,0x72, -0x00,0x00,0xc2,0xf8,0x00,0x00,0xc3,0x24,0x00,0x00,0xc3,0x54,0x00,0x00,0xc3,0x84,0x00,0x00,0xc3,0xa8,0x00,0x00,0xc3,0xd4,0x00,0x00,0xc4,0x04,0x00,0x00,0xc4,0x34,0x00,0x00,0xc4,0x6a,0x00,0x00,0xc4,0x7a,0x00,0x00,0xc4,0x8a,0x00,0x00,0xc4,0x9a,0x00,0x00,0xc4,0xaa,0x00,0x00,0xc4,0xba,0x00,0x00,0xc4,0xca,0x00,0x00,0xc4,0xda, -0x00,0x00,0xc5,0x6e,0x00,0x00,0xc5,0x7e,0x00,0x00,0xc5,0x8e,0x00,0x00,0xc6,0x18,0x00,0x00,0xc6,0x28,0x00,0x00,0xc6,0xbc,0x00,0x00,0xc6,0xcc,0x00,0x00,0xc7,0x62,0x00,0x00,0xc7,0x72,0x00,0x00,0xc7,0x82,0x00,0x00,0xc7,0x92,0x00,0x00,0xc8,0xb4,0x00,0x00,0xc8,0xc4,0x00,0x00,0xc8,0xf6,0x00,0x00,0xc9,0x2a,0x00,0x00,0xc9,0x58, -0x00,0x00,0xc9,0x86,0x00,0x00,0xc9,0xb4,0x00,0x00,0xc9,0xe2,0x00,0x00,0xca,0x1a,0x00,0x00,0xcb,0x52,0x00,0x00,0xcc,0x3e,0x00,0x00,0xcc,0xfc,0x00,0x00,0xcd,0xc0,0x00,0x00,0xce,0xea,0x00,0x00,0xcf,0x60,0x00,0x00,0xd0,0x4a,0x00,0x00,0xd0,0xe6,0x00,0x00,0xd1,0xde,0x00,0x00,0xd2,0x80,0x00,0x00,0xd3,0xbe,0x00,0x00,0xd3,0xce, -0x00,0x00,0xd4,0xac,0x00,0x00,0xd5,0x98,0x00,0x00,0xd6,0x96,0x00,0x00,0xd7,0x8e,0x00,0x00,0xd8,0xd4,0x00,0x00,0xda,0x1e,0x00,0x00,0xda,0x50,0x00,0x00,0xda,0x84,0x00,0x00,0xda,0xb4,0x00,0x00,0xda,0xe2,0x00,0x00,0xdb,0x10,0x00,0x00,0xdb,0x42,0x00,0x00,0xdc,0x4c,0x00,0x00,0xdc,0x7e,0x00,0x00,0xdd,0x70,0x00,0x00,0xdd,0x80, -0x00,0x00,0xdd,0xb2,0x00,0x00,0xde,0xe2,0x00,0x00,0xdf,0xf2,0x00,0x00,0xe0,0xf8,0x00,0x00,0xe1,0x2a,0x00,0x00,0xe1,0x58,0x00,0x00,0xe2,0x3a,0x00,0x00,0xe2,0x4a,0x00,0x00,0xe3,0x32,0x00,0x00,0xe3,0x42,0x00,0x00,0xe3,0x52,0x00,0x00,0xe4,0x70,0x00,0x00,0xe4,0x80,0x00,0x00,0xe5,0x9e,0x00,0x00,0xe6,0xdc,0x00,0x00,0xe7,0xc4, -0x00,0x00,0xe7,0xf2,0x00,0x00,0xe8,0x02,0x00,0x00,0xe8,0xbc,0x00,0x00,0xe8,0xcc,0x00,0x00,0xe8,0xdc,0x00,0x00,0xe8,0xec,0x00,0x00,0xe8,0xfc,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0x1c,0x00,0x00,0xe9,0x2c,0x00,0x00,0xe9,0xd4,0x00,0x00,0xeb,0x50,0x00,0x00,0xeb,0x60,0x00,0x00,0xec,0x44,0x00,0x00,0xed,0x02,0x00,0x00,0xed,0xd8, -0x00,0x00,0xef,0x12,0x00,0x00,0xef,0xf4,0x00,0x00,0xf0,0xf6,0x00,0x00,0xf1,0xc0,0x00,0x00,0xf2,0xd2,0x00,0x00,0xf4,0x1c,0x00,0x00,0xf5,0x22,0x00,0x00,0xf5,0x32,0x00,0x00,0xf6,0x46,0x00,0x00,0xf7,0x42,0x00,0x00,0xf7,0xaa,0x00,0x00,0xf8,0xac,0x00,0x00,0xf8,0xbc,0x00,0x00,0xf9,0xd6,0x00,0x00,0xfa,0xde,0x00,0x00,0xfb,0xa8, -0x00,0x00,0xfb,0xd4,0x00,0x00,0xfb,0xe4,0x00,0x00,0xfc,0xb2,0x00,0x00,0xfd,0xac,0x00,0x00,0xfe,0x44,0x00,0x00,0xfe,0x54,0x00,0x00,0xfe,0xd8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xf8,0x00,0x00,0xff,0x66,0x00,0x00,0xff,0x76,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0xe8,0x00,0x01,0x01,0xac,0x00,0x01,0x02,0x4a,0x00,0x01,0x03,0x26, -0x00,0x01,0x04,0x54,0x00,0x01,0x05,0x16,0x00,0x01,0x06,0x12,0x00,0x01,0x06,0xc4,0x00,0x01,0x07,0xae,0x00,0x01,0x08,0xc8,0x00,0x01,0x09,0xc8,0x00,0x01,0x09,0xf8,0x00,0x01,0x0b,0x1c,0x00,0x01,0x0b,0x4a,0x00,0x01,0x0c,0x24,0x00,0x01,0x0c,0x34,0x00,0x01,0x0c,0x66,0x00,0x01,0x0d,0x98,0x00,0x01,0x0e,0xa4,0x00,0x01,0x0f,0xa6, -0x00,0x01,0x0f,0xd4,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x11,0x68,0x00,0x01,0x11,0xf0,0x00,0x01,0x12,0x00,0x00,0x01,0x13,0x64,0x00,0x01,0x14,0x6c,0x00,0x01,0x14,0xf8,0x00,0x01,0x15,0x9a,0x00,0x01,0x15,0xf4,0x00,0x01,0x17,0x08,0x00,0x01,0x17,0x18,0x00,0x01,0x17,0x2e,0x00,0x01,0x17,0x44,0x00,0x01,0x18,0x2a, -0x00,0x01,0x19,0x62,0x00,0x01,0x1a,0x6c,0x00,0x01,0x1b,0x42,0x00,0x01,0x1c,0x28,0x00,0x01,0x1c,0x8c,0x00,0x01,0x1c,0xce,0x00,0x01,0x1c,0xf6,0x00,0x01,0x1d,0x1e,0x00,0x01,0x1d,0x7c,0x00,0x01,0x1d,0xe2,0x00,0x01,0x1e,0x76,0x00,0x01,0x1f,0x08,0x00,0x01,0x1f,0x78,0x00,0x01,0x1f,0xe8,0x00,0x01,0x20,0xa2,0x00,0x01,0x21,0x50, -0x00,0x01,0x21,0xc6,0x00,0x01,0x22,0x68,0x00,0x01,0x22,0xde,0x00,0x01,0x23,0x56,0x00,0x01,0x24,0x1a,0x00,0x01,0x24,0xd4,0x00,0x01,0x25,0x82,0x00,0x01,0x25,0xa8,0x00,0x01,0x25,0xd0,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x2e,0x00,0x01,0x26,0x62,0x00,0x01,0x26,0x94,0x00,0x01,0x26,0xc8,0x00,0x01,0x26,0xf8,0x00,0x01,0x27,0x2c, -0x00,0x01,0x27,0x60,0x00,0x01,0x27,0x94,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x04,0x00,0x01,0x28,0x42,0x00,0x01,0x28,0x76,0x00,0x01,0x28,0xa8,0x00,0x01,0x28,0xdc,0x00,0x01,0x29,0x0e,0x00,0x01,0x29,0x54,0x00,0x01,0x29,0x88,0x00,0x01,0x29,0xba,0x00,0x01,0x29,0xea,0x00,0x01,0x2a,0x28,0x00,0x01,0x2a,0x66,0x00,0x01,0x2a,0x8c, -0x00,0x01,0x2a,0xb2,0x00,0x01,0x2a,0xe0,0x00,0x01,0x2b,0x0e,0x00,0x01,0x2b,0x40,0x00,0x01,0x2b,0x6e,0x00,0x01,0x2b,0xa0,0x00,0x01,0x2b,0xd4,0x00,0x01,0x2c,0x06,0x00,0x01,0x2c,0x36,0x00,0x01,0x2c,0x68,0x00,0x01,0x2c,0x9a,0x00,0x01,0x2c,0xcc,0x00,0x01,0x2c,0xfc,0x00,0x01,0x2d,0x3c,0x00,0x01,0x2d,0x7a,0x00,0x01,0x2d,0xa8, -0x00,0x01,0x2d,0xd4,0x00,0x01,0x2d,0xf8,0x00,0x01,0x2e,0x1e,0x00,0x01,0x2e,0x46,0x00,0x01,0x2e,0x6c,0x00,0x01,0x2e,0x9c,0x00,0x01,0x2e,0xcc,0x00,0x01,0x2e,0xfe,0x00,0x01,0x2f,0x30,0x00,0x01,0x2f,0x62,0x00,0x01,0x2f,0x94,0x00,0x01,0x2f,0xc8,0x00,0x01,0x2f,0xfc,0x00,0x01,0x30,0x2e,0x00,0x01,0x30,0x60,0x00,0x01,0x30,0x9e, -0x00,0x01,0x30,0xde,0x00,0x01,0x31,0x0c,0x00,0x01,0x31,0x3c,0x00,0x01,0x31,0x6a,0x00,0x01,0x31,0x9a,0x00,0x01,0x31,0xc8,0x00,0x01,0x31,0xf8,0x00,0x01,0x32,0x26,0x00,0x01,0x32,0x54,0x00,0x01,0x32,0x7a,0x00,0x01,0x32,0xa0,0x00,0x01,0x32,0xc6,0x00,0x01,0x32,0xee,0x00,0x01,0x33,0x1c,0x00,0x01,0x33,0x4a,0x00,0x01,0x33,0x78, -0x00,0x01,0x33,0xa6,0x00,0x01,0x33,0xd4,0x00,0x01,0x34,0x02,0x00,0x01,0x34,0x32,0x00,0x01,0x34,0x62,0x00,0x01,0x34,0x90,0x00,0x01,0x34,0xbe,0x00,0x01,0x34,0xe4,0x00,0x01,0x35,0x0a,0x00,0x01,0x35,0x30,0x00,0x01,0x35,0x58,0x00,0x01,0x35,0x86,0x00,0x01,0x35,0xb4,0x00,0x01,0x35,0xe2,0x00,0x01,0x36,0x12,0x00,0x01,0x36,0x38, -0x00,0x01,0x36,0x5e,0x00,0x01,0x36,0x8e,0x00,0x01,0x36,0xbe,0x00,0x01,0x36,0xee,0x00,0x01,0x37,0x1e,0x00,0x01,0x37,0x2e,0x00,0x01,0x37,0x3e,0x00,0x01,0x37,0x4e,0x00,0x01,0x37,0x5e,0x00,0x01,0x37,0xee,0x00,0x01,0x38,0x82,0x00,0x01,0x39,0xaa,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x86,0x00,0x01,0x3c,0x44,0x00,0x01,0x3d,0x44, -0x00,0x01,0x3e,0x0e,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0xd6,0x00,0x01,0x3f,0xe6,0x00,0x01,0x40,0x8a,0x00,0x01,0x41,0x58,0x00,0x01,0x42,0x02,0x00,0x01,0x42,0xc8,0x00,0x01,0x43,0x84,0x00,0x01,0x44,0x72,0x00,0x01,0x45,0x4a,0x00,0x01,0x45,0xf6,0x00,0x01,0x46,0x06,0x00,0x01,0x46,0xe0,0x00,0x01,0x47,0x8e,0x00,0x01,0x48,0x60, -0x00,0x01,0x49,0x2a,0x00,0x01,0x49,0x80,0x00,0x01,0x49,0xce,0x00,0x01,0x4a,0x22,0x00,0x01,0x4a,0x6e,0x00,0x01,0x4b,0x0c,0x00,0x01,0x4b,0xa0,0x00,0x01,0x4c,0x3e,0x00,0x01,0x4c,0xc6,0x00,0x01,0x4d,0xa8,0x00,0x01,0x4e,0x62,0x00,0x01,0x4e,0xba,0x00,0x01,0x4f,0x12,0x00,0x01,0x4f,0x88,0x00,0x01,0x4f,0xf4,0x00,0x01,0x50,0x88, -0x00,0x01,0x51,0x12,0x00,0x01,0x51,0x2a,0x00,0x01,0x51,0x42,0x00,0x01,0x51,0x84,0x00,0x01,0x51,0xc6,0x00,0x01,0x51,0xf6,0x00,0x01,0x52,0x24,0x00,0x01,0x52,0x58,0x00,0x01,0x52,0x8c,0x00,0x01,0x52,0xc0,0x00,0x01,0x52,0xf2,0x00,0x01,0x53,0x1c,0x00,0x01,0x53,0x46,0x00,0x01,0x53,0x76,0x00,0x01,0x53,0xa6,0x00,0x01,0x53,0xda, -0x00,0x01,0x54,0x0c,0x00,0x01,0x54,0x40,0x00,0x01,0x54,0x72,0x00,0x01,0x54,0xa2,0x00,0x01,0x54,0xd0,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x2e,0x00,0x01,0x55,0x60,0x00,0x01,0x55,0x92,0x00,0x01,0x55,0xc4,0x00,0x01,0x55,0xf6,0x00,0x01,0x56,0x24,0x00,0x01,0x56,0x52,0x00,0x01,0x56,0x82,0x00,0x01,0x56,0xb0,0x00,0x01,0x56,0xe8, -0x00,0x01,0x57,0x1e,0x00,0x01,0x57,0x4e,0x00,0x01,0x57,0x7c,0x00,0x01,0x57,0xaa,0x00,0x01,0x57,0xd8,0x00,0x01,0x58,0x08,0x00,0x01,0x58,0x36,0x00,0x01,0x58,0x68,0x00,0x01,0x58,0x9c,0x00,0x01,0x58,0xce,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x16,0x00,0x01,0x59,0x2c,0x00,0x01,0x59,0x5a,0x00,0x01,0x59,0x88,0x00,0x01,0x59,0xae, -0x00,0x01,0x59,0xd4,0x00,0x01,0x5a,0x0a,0x00,0x01,0x5a,0x40,0x00,0x01,0x5a,0x70,0x00,0x01,0x5a,0x9e,0x00,0x01,0x5a,0xd2,0x00,0x01,0x5b,0x06,0x00,0x01,0x5b,0x3a,0x00,0x01,0x5b,0x6e,0x00,0x01,0x5b,0xa2,0x00,0x01,0x5b,0xd2,0x00,0x01,0x5c,0x20,0x00,0x01,0x5c,0x6a,0x00,0x01,0x5c,0x9c,0x00,0x01,0x5c,0xce,0x00,0x01,0x5c,0xfc, -0x00,0x01,0x5d,0x2a,0x00,0x01,0x5d,0x42,0x00,0x01,0x5d,0x70,0x00,0x01,0x5d,0x88,0x00,0x01,0x5d,0xb8,0x00,0x01,0x5d,0xd0,0x00,0x01,0x5d,0xf6,0x00,0x01,0x5e,0x26,0x00,0x01,0x5e,0x54,0x00,0x01,0x5e,0x7c,0x00,0x01,0x5e,0xa2,0x00,0x01,0x5e,0xda,0x00,0x01,0x5f,0x10,0x00,0x01,0x5f,0x3e,0x00,0x01,0x5f,0x6c,0x00,0x01,0x5f,0x9e, -0x00,0x01,0x5f,0xce,0x00,0x01,0x60,0x04,0x00,0x01,0x60,0x38,0x00,0x01,0x60,0x6a,0x00,0x01,0x60,0x9c,0x00,0x01,0x60,0xce,0x00,0x01,0x61,0x02,0x00,0x01,0x61,0x32,0x00,0x01,0x61,0x62,0x00,0x01,0x61,0x92,0x00,0x01,0x61,0xc2,0x00,0x01,0x61,0xe4,0x00,0x01,0x62,0x14,0x00,0x01,0x62,0x2c,0x00,0x01,0x62,0x42,0x00,0x01,0x62,0x6c, -0x00,0x01,0x62,0xac,0x00,0x01,0x62,0xd8,0x00,0x01,0x63,0x0e,0x00,0x01,0x63,0x30,0x00,0x01,0x63,0x52,0x00,0x01,0x63,0x6a,0x00,0x01,0x63,0x80,0x00,0x01,0x63,0xa4,0x00,0x01,0x63,0xc8,0x00,0x01,0x63,0xec,0x00,0x01,0x64,0x10,0x00,0x01,0x64,0x3a,0x00,0x01,0x64,0x64,0x00,0x01,0x64,0x92,0x00,0x01,0x64,0xc6,0x00,0x01,0x64,0xec, -0x00,0x01,0x65,0x10,0x00,0x01,0x65,0x46,0x00,0x01,0x65,0x7c,0x00,0x01,0x65,0xaa,0x00,0x01,0x65,0xd8,0x00,0x01,0x66,0x14,0x00,0x01,0x66,0x50,0x00,0x01,0x66,0x80,0x00,0x01,0x66,0xb0,0x00,0x01,0x66,0xe0,0x00,0x01,0x67,0x10,0x00,0x01,0x67,0x42,0x00,0x01,0x67,0x72,0x00,0x01,0x67,0xa8,0x00,0x01,0x67,0xe0,0x00,0x01,0x68,0x0e, -0x00,0x01,0x68,0x3c,0x00,0x01,0x68,0x62,0x00,0x01,0x68,0x8a,0x00,0x01,0x68,0xb8,0x00,0x01,0x68,0xe6,0x00,0x01,0x69,0x0c,0x00,0x01,0x69,0x32,0x00,0x01,0x69,0x60,0x00,0x01,0x69,0x8e,0x00,0x01,0x69,0xc0,0x00,0x01,0x69,0xf0,0x00,0x01,0x6a,0x20,0x00,0x01,0x6a,0x50,0x00,0x01,0x6a,0x7e,0x00,0x01,0x6a,0xaa,0x00,0x01,0x6a,0xd0, -0x00,0x01,0x6a,0xf6,0x00,0x01,0x6b,0x2c,0x00,0x01,0x6b,0x62,0x00,0x01,0x6b,0x98,0x00,0x01,0x6b,0xce,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x34,0x00,0x01,0x6c,0x62,0x00,0x01,0x6c,0x92,0x00,0x01,0x6c,0xbe,0x00,0x01,0x6c,0xec,0x00,0x01,0x6d,0x1e,0x00,0x01,0x6d,0x50,0x00,0x01,0x6d,0x80,0x00,0x01,0x6d,0xb2,0x00,0x01,0x6d,0xe4, -0x00,0x01,0x6e,0x16,0x00,0x01,0x6e,0x46,0x00,0x01,0x6e,0x76,0x00,0x01,0x6e,0xac,0x00,0x01,0x6e,0xe2,0x00,0x01,0x6f,0x18,0x00,0x01,0x6f,0x4e,0x00,0x01,0x6f,0x84,0x00,0x01,0x6f,0xba,0x00,0x01,0x6f,0xe6,0x00,0x01,0x70,0x12,0x00,0x01,0x70,0x42,0x00,0x01,0x70,0x74,0x00,0x01,0x70,0xa4,0x00,0x01,0x70,0xd4,0x00,0x01,0x71,0x06, -0x00,0x01,0x71,0x38,0x00,0x01,0x71,0x6e,0x00,0x01,0x71,0xa4,0x00,0x01,0x71,0xda,0x00,0x01,0x72,0x10,0x00,0x01,0x72,0x3c,0x00,0x01,0x72,0x6a,0x00,0x01,0x72,0x9c,0x00,0x01,0x72,0xce,0x00,0x01,0x72,0xfe,0x00,0x01,0x73,0x2e,0x00,0x01,0x73,0x60,0x00,0x01,0x73,0x92,0x00,0x01,0x73,0xc4,0x00,0x01,0x73,0xf6,0x00,0x01,0x74,0x2c, -0x00,0x01,0x74,0x62,0x00,0x01,0x74,0x98,0x00,0x01,0x74,0xce,0x00,0x01,0x75,0x04,0x00,0x01,0x75,0x3a,0x00,0x01,0x75,0x6a,0x00,0x01,0x75,0x9a,0x00,0x01,0x75,0xce,0x00,0x01,0x76,0x02,0x00,0x01,0x76,0x36,0x00,0x01,0x76,0x6a,0x00,0x01,0x76,0x9e,0x00,0x01,0x76,0xd2,0x00,0x01,0x76,0xf6,0x00,0x01,0x77,0x1a,0x00,0x01,0x77,0x40, -0x00,0x01,0x77,0x66,0x00,0x01,0x77,0x8c,0x00,0x01,0x77,0xb2,0x00,0x01,0x77,0xd8,0x00,0x01,0x77,0xfe,0x00,0x01,0x78,0x2a,0x00,0x01,0x78,0x58,0x00,0x01,0x78,0x8a,0x00,0x01,0x78,0xbc,0x00,0x01,0x78,0xec,0x00,0x01,0x79,0x1e,0x00,0x01,0x79,0x4e,0x00,0x01,0x79,0x7e,0x00,0x01,0x79,0xb4,0x00,0x01,0x79,0xea,0x00,0x01,0x7a,0x20, -0x00,0x01,0x7a,0x54,0x00,0x01,0x7a,0x82,0x00,0x01,0x7a,0xb0,0x00,0x01,0x7a,0xe2,0x00,0x01,0x7b,0x14,0x00,0x01,0x7b,0x46,0x00,0x01,0x7b,0x78,0x00,0x01,0x7b,0xaa,0x00,0x01,0x7b,0xdc,0x00,0x01,0x7c,0x0e,0x00,0x01,0x7c,0x44,0x00,0x01,0x7c,0x7a,0x00,0x01,0x7c,0xb0,0x00,0x01,0x7c,0xde,0x00,0x01,0x7d,0x0e,0x00,0x01,0x7d,0x42, -0x00,0x01,0x7d,0x76,0x00,0x01,0x7d,0xa8,0x00,0x01,0x7d,0xda,0x00,0x01,0x7e,0x0e,0x00,0x01,0x7e,0x42,0x00,0x01,0x7e,0x74,0x00,0x01,0x7e,0xa6,0x00,0x01,0x7e,0xdc,0x00,0x01,0x7f,0x12,0x00,0x01,0x7f,0x48,0x00,0x01,0x7f,0x7c,0x00,0x01,0x7f,0xb0,0x00,0x01,0x7f,0xe4,0x00,0x01,0x80,0x12,0x00,0x01,0x80,0x3e,0x00,0x01,0x80,0x6c, -0x00,0x01,0x80,0x98,0x00,0x01,0x80,0xc6,0x00,0x01,0x80,0xf2,0x00,0x01,0x81,0x22,0x00,0x01,0x81,0x52,0x00,0x01,0x81,0x80,0x00,0x01,0x81,0xac,0x00,0x01,0x81,0xda,0x00,0x01,0x82,0x08,0x00,0x01,0x82,0x38,0x00,0x01,0x82,0x66,0x00,0x01,0x82,0xa0,0x00,0x01,0x82,0xdc,0x00,0x01,0x83,0x1c,0x00,0x01,0x83,0x5c,0x00,0x01,0x83,0x9a, -0x00,0x01,0x83,0xda,0x00,0x01,0x84,0x1a,0x00,0x01,0x84,0x5a,0x00,0x01,0x84,0x9c,0x00,0x01,0x84,0xde,0x00,0x01,0x85,0x26,0x00,0x01,0x85,0x6e,0x00,0x01,0x85,0xb8,0x00,0x01,0x86,0x00,0x00,0x01,0x86,0x48,0x00,0x01,0x86,0x90,0x00,0x01,0x86,0xcc,0x00,0x01,0x87,0x0a,0x00,0x01,0x87,0x4c,0x00,0x01,0x87,0x8e,0x00,0x01,0x87,0xce, -0x00,0x01,0x88,0x0e,0x00,0x01,0x88,0x50,0x00,0x01,0x88,0x92,0x00,0x01,0x88,0xd8,0x00,0x01,0x89,0x1e,0x00,0x01,0x89,0x68,0x00,0x01,0x89,0xb2,0x00,0x01,0x89,0xfc,0x00,0x01,0x8a,0x46,0x00,0x01,0x8a,0x90,0x00,0x01,0x8a,0xda,0x00,0x01,0x8b,0x18,0x00,0x01,0x8b,0x58,0x00,0x01,0x8b,0x9c,0x00,0x01,0x8b,0xe0,0x00,0x01,0x8c,0x22, -0x00,0x01,0x8c,0x64,0x00,0x01,0x8c,0xa8,0x00,0x01,0x8c,0xec,0x00,0x01,0x8d,0x32,0x00,0x01,0x8d,0x78,0x00,0x01,0x8d,0xc2,0x00,0x01,0x8e,0x0c,0x00,0x01,0x8e,0x56,0x00,0x01,0x8e,0x9e,0x00,0x01,0x8e,0xe6,0x00,0x01,0x8f,0x2e,0x00,0x01,0x8f,0x5e,0x00,0x01,0x8f,0x8e,0x00,0x01,0x8f,0xca,0x00,0x01,0x8f,0xee,0x00,0x01,0x90,0x28, -0x00,0x01,0x90,0x56,0x00,0x01,0x90,0x92,0x00,0x01,0x90,0xc0,0x00,0x01,0x90,0xee,0x00,0x01,0x91,0x1e,0x00,0x01,0x91,0x4e,0x00,0x01,0x91,0x74,0x00,0x01,0x91,0xca,0x00,0x01,0x92,0x1c,0x00,0x01,0x92,0x78,0x00,0x01,0x92,0xc2,0x00,0x01,0x93,0x64,0x00,0x01,0x93,0xa4,0x00,0x01,0x93,0xcc,0x00,0x01,0x94,0x0a,0x00,0x01,0x94,0x36, -0x00,0x01,0x94,0x76,0x00,0x01,0x94,0xa8,0x00,0x01,0x94,0xda,0x00,0x01,0x95,0x0c,0x00,0x01,0x95,0x3e,0x00,0x01,0x95,0x64,0x00,0x01,0x95,0xd2,0x00,0x01,0x96,0x4a,0x00,0x01,0x96,0xec,0x00,0x01,0x97,0x1c,0x00,0x01,0x97,0x4c,0x00,0x01,0x97,0x84,0x00,0x01,0x97,0xbc,0x00,0x01,0x97,0xec,0x00,0x01,0x98,0x24,0x00,0x01,0x98,0x52, -0x00,0x01,0x98,0x80,0x00,0x01,0x98,0xb0,0x00,0x01,0x98,0xe0,0x00,0x01,0x99,0x54,0x00,0x01,0x99,0xca,0x00,0x01,0x9a,0x6c,0x00,0x01,0x9a,0x9c,0x00,0x01,0x9a,0xcc,0x00,0x01,0x9b,0x02,0x00,0x01,0x9b,0x38,0x00,0x01,0x9b,0x66,0x00,0x01,0x9b,0x94,0x00,0x01,0x9b,0xc2,0x00,0x01,0x9b,0xf8,0x00,0x01,0x9c,0x26,0x00,0x01,0x9c,0x54, -0x00,0x01,0x9c,0x86,0x00,0x01,0x9c,0xb8,0x00,0x01,0x9c,0xea,0x00,0x01,0x9d,0x70,0x00,0x01,0x9d,0xf8,0x00,0x01,0x9e,0x24,0x00,0x01,0x9e,0x64,0x00,0x01,0x9e,0x8a,0x00,0x01,0x9e,0xc8,0x00,0x01,0x9e,0xf6,0x00,0x01,0x9f,0x34,0x00,0x01,0x9f,0x64,0x00,0x01,0x9f,0x94,0x00,0x01,0x9f,0xc6,0x00,0x01,0x9f,0xf8,0x00,0x01,0xa0,0x1e, -0x00,0x01,0xa0,0x4c,0x00,0x01,0xa0,0xa6,0x00,0x01,0xa0,0xde,0x00,0x01,0xa1,0x3c,0x00,0x01,0xa1,0x64,0x00,0x01,0xa1,0x8c,0x00,0x01,0xa1,0xdc,0x00,0x01,0xa2,0x16,0x00,0x01,0xa2,0x7c,0x00,0x01,0xa2,0xf0,0x00,0x01,0xa3,0x46,0x00,0x01,0xa3,0x7c,0x00,0x01,0xa3,0xa4,0x00,0x01,0xa3,0xe4,0x00,0x01,0xa4,0x3c,0x00,0x01,0xa4,0xb2, -0x00,0x01,0xa4,0xfc,0x00,0x01,0xa5,0x56,0x00,0x01,0xa5,0xb2,0x00,0x01,0xa6,0x0c,0x00,0x01,0xa6,0x68,0x00,0x01,0xa6,0x9a,0x00,0x01,0xa6,0xce,0x00,0x01,0xa7,0x1a,0x00,0x01,0xa7,0x6a,0x00,0x01,0xa7,0x9e,0x00,0x01,0xa7,0xdc,0x00,0x01,0xa8,0x2e,0x00,0x01,0xa8,0x72,0x00,0x01,0xa8,0xb6,0x00,0x01,0xa9,0x16,0x00,0x01,0xa9,0x28, -0x00,0x01,0xa9,0x64,0x00,0x01,0xa9,0xa2,0x00,0x01,0xaa,0x08,0x00,0x01,0xaa,0x1a,0x00,0x01,0xaa,0x82,0x00,0x01,0xaa,0x94,0x00,0x01,0xaa,0xa6,0x00,0x01,0xaa,0xd6,0x00,0x01,0xab,0x1c,0x00,0x01,0xab,0x9e,0x00,0x01,0xab,0xdc,0x00,0x01,0xac,0x1a,0x00,0x01,0xac,0x74,0x00,0x01,0xac,0x86,0x00,0x01,0xac,0xe6,0x00,0x01,0xac,0xf8, -0x00,0x01,0xad,0x20,0x00,0x01,0xad,0x32,0x00,0x01,0xad,0x90,0x00,0x01,0xad,0xb8,0x00,0x01,0xad,0xca,0x00,0x01,0xae,0x14,0x00,0x01,0xae,0x5e,0x00,0x01,0xae,0xb2,0x00,0x01,0xae,0xfa,0x00,0x01,0xaf,0x44,0x00,0x01,0xaf,0xd2,0x00,0x01,0xb0,0x0e,0x00,0x01,0xb0,0x6e,0x00,0x01,0xb0,0xb0,0x00,0x01,0xb0,0xda,0x00,0x01,0xb1,0x06, -0x00,0x01,0xb1,0x18,0x00,0x01,0xb1,0x78,0x00,0x01,0xb2,0x00,0x00,0x01,0xb2,0x50,0x00,0x01,0xb2,0x90,0x00,0x01,0xb2,0xc8,0x00,0x01,0xb3,0x10,0x00,0x01,0xb3,0x40,0x00,0x01,0xb3,0xcc,0x00,0x01,0xb4,0x80,0x00,0x01,0xb5,0x20,0x00,0x01,0xb5,0x80,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x66,0x00,0x01,0xb6,0xaa, -0x00,0x01,0xb7,0x62,0x00,0x01,0xb8,0x2c,0x00,0x01,0xb8,0xa2,0x00,0x01,0xb9,0x3a,0x00,0x01,0xb9,0xb0,0x00,0x01,0xba,0x48,0x00,0x01,0xba,0xba,0x00,0x01,0xbb,0x6e,0x00,0x01,0xbc,0x1e,0x00,0x01,0xbc,0xb8,0x00,0x01,0xbd,0x46,0x00,0x01,0xbd,0xba,0x00,0x01,0xbe,0x50,0x00,0x01,0xbf,0x0c,0x00,0x01,0xbf,0x6e,0x00,0x01,0xc0,0x20, -0x00,0x01,0xc0,0x94,0x00,0x01,0xc1,0x76,0x00,0x01,0xc1,0xfa,0x00,0x01,0xc2,0xa4,0x00,0x01,0xc2,0xec,0x00,0x01,0xc3,0x54,0x00,0x01,0xc3,0xd4,0x00,0x01,0xc4,0x50,0x00,0x01,0xc4,0xb8,0x00,0x01,0xc5,0x8a,0x00,0x01,0xc6,0x2a,0x00,0x01,0xc6,0xb6,0x00,0x01,0xc7,0x30,0x00,0x01,0xc7,0xd8,0x00,0x01,0xc8,0x88,0x00,0x01,0xc9,0x2e, -0x00,0x01,0xc9,0xcc,0x00,0x01,0xca,0x7a,0x00,0x01,0xcb,0x16,0x00,0x01,0xcb,0xe8,0x00,0x01,0xcc,0xae,0x00,0x01,0xcd,0x1e,0x00,0x01,0xcd,0xbc,0x00,0x01,0xce,0x56,0x00,0x01,0xce,0xc0,0x00,0x01,0xcf,0x4a,0x00,0x01,0xcf,0xb8,0x00,0x01,0xd0,0x62,0x00,0x01,0xd0,0xe0,0x00,0x01,0xd1,0x5c,0x00,0x01,0xd1,0xf0,0x00,0x01,0xd2,0x92, -0x00,0x01,0xd3,0x32,0x00,0x01,0xd3,0xd0,0x00,0x01,0xd4,0x6c,0x00,0x01,0xd4,0xfe,0x00,0x01,0xd5,0xc2,0x00,0x01,0xd6,0x8a,0x00,0x01,0xd7,0x26,0x00,0x01,0xd7,0xbc,0x00,0x01,0xd8,0x5c,0x00,0x01,0xd8,0xd6,0x00,0x01,0xd9,0x00,0x00,0x01,0xd9,0x4e,0x00,0x01,0xd9,0xe4,0x00,0x01,0xd9,0xf4,0x00,0x01,0xda,0x2a,0x00,0x01,0xda,0x60, -0x00,0x01,0xda,0x96,0x00,0x01,0xda,0xbe,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x00,0x00,0x01,0xdb,0x28,0x00,0x01,0xdb,0x52,0x00,0x01,0xdb,0x7c,0x00,0x01,0xdb,0xac,0x00,0x01,0xdb,0xd8,0x00,0x01,0xdc,0x06,0x00,0x01,0xdc,0x34,0x00,0x01,0xdc,0x62,0x00,0x01,0xdc,0x90,0x00,0x01,0xdc,0xbe,0x00,0x01,0xdc,0xec,0x00,0x01,0xdd,0x22, -0x00,0x01,0xdd,0x56,0x00,0x01,0xdd,0x8c,0x00,0x01,0xdd,0xc0,0x00,0x01,0xdd,0xfa,0x00,0x01,0xde,0x2e,0x00,0x01,0xde,0x66,0x00,0x01,0xde,0x9a,0x00,0x01,0xdf,0x3a,0x00,0x01,0xdf,0x72,0x00,0x01,0xdf,0xa6,0x00,0x01,0xdf,0xd8,0x00,0x01,0xe0,0x08,0x00,0x01,0xe0,0x38,0x00,0x01,0xe0,0x66,0x00,0x01,0xe1,0x38,0x00,0x01,0xe2,0x3a, -0x00,0x01,0xe2,0x68,0x00,0x01,0xe2,0x96,0x00,0x01,0xe2,0xc6,0x00,0x01,0xe2,0xf6,0x00,0x01,0xe3,0xd0,0x00,0x01,0xe4,0x92,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe4,0xee,0x00,0x01,0xe5,0x1e,0x00,0x01,0xe5,0x4c,0x00,0x01,0xe5,0x7a,0x00,0x01,0xe5,0xa2,0x00,0x01,0xe5,0xca,0x00,0x01,0xe5,0xf2,0x00,0x01,0xe6,0x20,0x00,0x01,0xe6,0x4e, -0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x62,0x00,0x01,0xe7,0x92,0x00,0x01,0xe7,0xc2,0x00,0x01,0xe7,0xf6,0x00,0x01,0xe8,0x2a,0x00,0x01,0xe8,0x58,0x00,0x01,0xe8,0x84,0x00,0x01,0xe8,0xb8,0x00,0x01,0xe8,0xec,0x00,0x01,0xe9,0x1c,0x00,0x01,0xe9,0x4a,0x00,0x01,0xe9,0x7e,0x00,0x01,0xe9,0xb2,0x00,0x01,0xe9,0xe0,0x00,0x01,0xea,0x0e, -0x00,0x01,0xea,0x42,0x00,0x01,0xea,0x76,0x00,0x01,0xea,0xa4,0x00,0x01,0xea,0xd0,0x00,0x01,0xea,0xf4,0x00,0x01,0xeb,0x28,0x00,0x01,0xeb,0x4a,0x00,0x01,0xeb,0x78,0x00,0x01,0xeb,0xac,0x00,0x01,0xeb,0xe0,0x00,0x01,0xec,0x0e,0x00,0x01,0xec,0x3a,0x00,0x01,0xed,0x02,0x00,0x01,0xed,0xc2,0x00,0x01,0xed,0xf0,0x00,0x01,0xee,0x20, -0x00,0x01,0xee,0x90,0x00,0x01,0xef,0x72,0x00,0x01,0xf0,0x48,0x00,0x01,0xf0,0xb8,0x00,0x01,0xf1,0x2c,0x00,0x01,0xf1,0x5a,0x00,0x01,0xf1,0x88,0x00,0x01,0xf1,0xbe,0x00,0x01,0xf1,0xf2,0x00,0x01,0xf2,0x24,0x00,0x01,0xf2,0x54,0x00,0x01,0xf2,0x82,0x00,0x01,0xf2,0xb0,0x00,0x01,0xf2,0xe2,0x00,0x01,0xf3,0x12,0x00,0x01,0xf3,0x40, -0x00,0x01,0xf3,0x6e,0x00,0x01,0xf3,0xfa,0x00,0x01,0xf4,0x5a,0x00,0x01,0xf4,0xf6,0x00,0x01,0xf5,0x88,0x00,0x01,0xf6,0x10,0x00,0x01,0xf6,0xbe,0x00,0x01,0xf7,0x62,0x00,0x01,0xf8,0x06,0x00,0x01,0xf8,0xb4,0x00,0x01,0xf9,0x20,0x00,0x01,0xf9,0xea,0x00,0x01,0xfa,0x98,0x00,0x01,0xfb,0x46,0x00,0x01,0xfb,0xe6,0x00,0x01,0xfc,0xda, -0x00,0x01,0xfd,0x82,0x00,0x01,0xfe,0x2c,0x00,0x01,0xff,0x1e,0x00,0x01,0xff,0xce,0x00,0x02,0x00,0x5c,0x00,0x02,0x01,0x30,0x00,0x02,0x01,0x40,0x00,0x02,0x01,0xd4,0x00,0x02,0x02,0x46,0x00,0x02,0x02,0xdc,0x00,0x02,0x03,0x42,0x00,0x02,0x03,0xca,0x00,0x02,0x04,0x76,0x00,0x02,0x05,0x16,0x00,0x02,0x05,0x5e,0x00,0x02,0x05,0xbc, -0x00,0x02,0x06,0x66,0x00,0x02,0x07,0x04,0x00,0x02,0x07,0x58,0x00,0x02,0x08,0x0e,0x00,0x02,0x08,0xb2,0x00,0x02,0x09,0x5a,0x00,0x02,0x0a,0x22,0x00,0x02,0x0a,0xa8,0x00,0x02,0x0b,0x2c,0x00,0x02,0x0b,0x98,0x00,0x02,0x0c,0x2a,0x00,0x02,0x0c,0xd6,0x00,0x02,0x0d,0x8a,0x00,0x02,0x0e,0x44,0x00,0x02,0x0e,0x98,0x00,0x02,0x0e,0xec, -0x00,0x02,0x0f,0x68,0x00,0x02,0x0f,0xc2,0x00,0x02,0x10,0x3e,0x00,0x02,0x10,0x8a,0x00,0x02,0x10,0xd6,0x00,0x02,0x11,0x66,0x00,0x02,0x12,0x04,0x00,0x02,0x12,0xda,0x00,0x02,0x13,0x4c,0x00,0x02,0x13,0xf6,0x00,0x02,0x14,0x5c,0x00,0x02,0x15,0x32,0x00,0x02,0x15,0xa6,0x00,0x02,0x16,0x1a,0x00,0x02,0x16,0xc4,0x00,0x02,0x17,0x56, -0x00,0x02,0x17,0xce,0x00,0x02,0x18,0x20,0x00,0x02,0x18,0xbe,0x00,0x02,0x19,0x36,0x00,0x02,0x19,0xa4,0x00,0x02,0x1a,0x28,0x00,0x02,0x1b,0x06,0x00,0x02,0x1b,0x9c,0x00,0x02,0x1c,0xbe,0x00,0x02,0x1d,0x38,0x00,0x02,0x1d,0xba,0x00,0x02,0x1e,0x3a,0x00,0x02,0x1e,0xb0,0x00,0x02,0x1f,0x6c,0x00,0x02,0x20,0x02,0x00,0x02,0x20,0xb2, -0x00,0x02,0x21,0x80,0x00,0x02,0x21,0xe4,0x00,0x02,0x22,0xca,0x00,0x02,0x23,0x2e,0x00,0x02,0x23,0x66,0x00,0x02,0x24,0x14,0x00,0x02,0x24,0xc4,0x00,0x02,0x25,0x72,0x00,0x02,0x26,0x3a,0x00,0x02,0x27,0x50,0x00,0x02,0x28,0xca,0x00,0x02,0x29,0xa0,0x00,0x02,0x2a,0x68,0x00,0x02,0x2b,0x74,0x00,0x02,0x2c,0x4c,0x00,0x02,0x2c,0xf4, -0x00,0x02,0x2d,0x56,0x00,0x02,0x2e,0x36,0x00,0x02,0x2e,0xac,0x00,0x02,0x2f,0x56,0x00,0x02,0x30,0x5e,0x00,0x02,0x31,0x02,0x00,0x02,0x31,0x32,0x00,0x02,0x31,0x66,0x00,0x02,0x32,0x1e,0x00,0x02,0x32,0xfe,0x00,0x02,0x34,0x18,0x00,0x02,0x34,0xb6,0x00,0x02,0x35,0x4e,0x00,0x02,0x36,0x10,0x00,0x02,0x36,0xc8,0x00,0x02,0x37,0x3e, -0x00,0x02,0x37,0xa0,0x00,0x02,0x38,0x02,0x00,0x02,0x38,0xd0,0x00,0x02,0x39,0xc4,0x00,0x02,0x3a,0xa8,0x00,0x02,0x3b,0xba,0x00,0x02,0x3c,0xc8,0x00,0x02,0x3d,0x58,0x00,0x02,0x3d,0xea,0x00,0x02,0x3e,0xb2,0x00,0x02,0x40,0x00,0x00,0x02,0x40,0xd4,0x00,0x02,0x41,0xb8,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd0,0x00,0x02,0x44,0xce, -0x00,0x02,0x45,0xd2,0x00,0x02,0x46,0x4c,0x00,0x02,0x46,0xd6,0x00,0x02,0x47,0xba,0x00,0x02,0x48,0x70,0x00,0x02,0x48,0x80,0x00,0x02,0x48,0x90,0x00,0x02,0x48,0xa0,0x00,0x02,0x49,0x1c,0x00,0x02,0x49,0x96,0x00,0x02,0x4a,0x52,0x00,0x02,0x4a,0xf6,0x00,0x02,0x4b,0x92,0x00,0x02,0x4c,0x2c,0x00,0x02,0x4c,0xfa,0x00,0x02,0x4d,0xc8, -0x00,0x02,0x4e,0x80,0x00,0x02,0x4f,0x38,0x00,0x02,0x50,0x42,0x00,0x02,0x51,0x58,0x00,0x02,0x52,0x78,0x00,0x02,0x53,0x64,0x00,0x02,0x54,0x86,0x00,0x02,0x55,0xb0,0x00,0x02,0x56,0xe0,0x00,0x02,0x58,0x0e,0x00,0x02,0x58,0xa4,0x00,0x02,0x59,0x40,0x00,0x02,0x5a,0x18,0x00,0x02,0x5a,0xee,0x00,0x02,0x5b,0x6c,0x00,0x02,0x5b,0xec, -0x00,0x02,0x5c,0x20,0x00,0x02,0x5c,0x54,0x00,0x02,0x5d,0x9c,0x00,0x02,0x5e,0xbc,0x00,0x02,0x5f,0xa4,0x00,0x02,0x60,0x72,0x00,0x02,0x61,0xbc,0x00,0x02,0x62,0xf2,0x00,0x02,0x63,0x14,0x00,0x02,0x63,0x44,0x00,0x02,0x63,0xca,0x00,0x02,0x64,0x42,0x00,0x02,0x65,0x62,0x00,0x02,0x65,0xb6,0x00,0x02,0x66,0x08,0x00,0x02,0x66,0x1a, -0x00,0x02,0x66,0x2c,0x00,0x02,0x68,0x1a,0x00,0x02,0x69,0x42,0x00,0x02,0x69,0xda,0x00,0x02,0x6a,0x6e,0x00,0x02,0x6b,0x40,0x00,0x02,0x6c,0x2e,0x00,0x02,0x6c,0xc4,0x00,0x02,0x6d,0x56,0x00,0x02,0x6e,0x58,0x00,0x02,0x6f,0x4a,0x00,0x02,0x6f,0xee,0x00,0x02,0x70,0x82,0x00,0x02,0x71,0x0c,0x00,0x02,0x71,0x8a,0x00,0x02,0x71,0xfc, -0x00,0x02,0x72,0x6e,0x00,0x02,0x73,0x12,0x00,0x02,0x73,0xb0,0x00,0x02,0x74,0xda,0x00,0x02,0x75,0xf8,0x00,0x02,0x76,0xc0,0x00,0x02,0x77,0x78,0x00,0x02,0x77,0xea,0x00,0x02,0x78,0x5c,0x00,0x02,0x78,0xe8,0x00,0x02,0x79,0x74,0x00,0x02,0x79,0xf6,0x00,0x02,0x7a,0x76,0x00,0x02,0x7b,0x4a,0x00,0x02,0x7c,0x1e,0x00,0x02,0x7c,0x34, -0x00,0x02,0x7c,0x4a,0x00,0x02,0x7c,0x5a,0x00,0x02,0x7c,0x88,0x00,0x02,0x7c,0xb6,0x00,0x02,0x7d,0x56,0x00,0x02,0x7d,0xf2,0x00,0x02,0x7e,0x84,0x00,0x02,0x7f,0x12,0x00,0x02,0x7f,0x8c,0x00,0x02,0x80,0x0a,0x00,0x02,0x80,0x2c,0x00,0x02,0x80,0x4e,0x00,0x02,0x80,0x82,0x00,0x02,0x80,0xb2,0x00,0x02,0x80,0xc2,0x00,0x02,0x80,0xd2, -0x00,0x02,0x81,0x00,0x00,0x02,0x81,0x2e,0x00,0x02,0x81,0xd0,0x00,0x02,0x81,0xe0,0x00,0x02,0x82,0x14,0x00,0x02,0x82,0x44,0x00,0x02,0x82,0x76,0x00,0x02,0x82,0xaa,0x00,0x02,0x82,0xde,0x00,0x02,0x83,0x10,0x00,0x02,0x83,0x9c,0x00,0x02,0x83,0xac,0x00,0x02,0x83,0xda,0x00,0x02,0x84,0x08,0x00,0x02,0x84,0x3a,0x00,0x02,0x84,0x6c, -0x00,0x02,0x84,0x9e,0x00,0x02,0x84,0xd0,0x00,0x02,0x85,0x02,0x00,0x02,0x85,0x34,0x00,0x02,0x85,0x68,0x00,0x02,0x85,0x9a,0x00,0x02,0x85,0xc8,0x00,0x02,0x85,0xf6,0x00,0x02,0x86,0x28,0x00,0x02,0x86,0x58,0x00,0x02,0x86,0x8a,0x00,0x02,0x86,0xbc,0x00,0x02,0x86,0xee,0x00,0x02,0x87,0x22,0x00,0x02,0x87,0x54,0x00,0x02,0x87,0x88, -0x00,0x02,0x87,0xee,0x00,0x02,0x87,0xfe,0x00,0x02,0x88,0xa6,0x00,0x02,0x89,0x5c,0x00,0x02,0x8a,0x18,0x00,0x02,0x8a,0xcc,0x00,0x02,0x8b,0x7a,0x00,0x02,0x8c,0x22,0x00,0x02,0x8c,0xba,0x00,0x02,0x8d,0x5a,0x00,0x02,0x8d,0xea,0x00,0x02,0x8e,0x7c,0x00,0x02,0x8f,0x20,0x00,0x02,0x8f,0xb8,0x00,0x02,0x90,0x38,0x00,0x02,0x90,0xb6, -0x00,0x02,0x91,0x46,0x00,0x02,0x92,0x10,0x00,0x02,0x92,0xb0,0x00,0x02,0x93,0x1e,0x00,0x02,0x93,0xa6,0x00,0x02,0x94,0x08,0x00,0x02,0x94,0xc8,0x00,0x02,0x95,0x7e,0x00,0x02,0x95,0xec,0x00,0x02,0x96,0x5c,0x00,0x02,0x96,0xc6,0x00,0x02,0x97,0x34,0x00,0x02,0x97,0xc8,0x00,0x02,0x98,0x34,0x00,0x02,0x98,0xdc,0x00,0x02,0x99,0x40, -0x00,0x02,0x99,0xb8,0x00,0x02,0x9a,0x48,0x00,0x02,0x9a,0xb0,0x00,0x02,0x9a,0xda,0x00,0x02,0x9b,0x16,0x00,0x02,0x9b,0x66,0x00,0x02,0x9b,0xd8,0x00,0x02,0x9c,0x74,0x00,0x02,0x9c,0xec,0x00,0x02,0x9d,0x4e,0x00,0x02,0x9d,0xb2,0x00,0x02,0x9e,0x36,0x00,0x02,0x9e,0xd0,0x00,0x02,0x9f,0x4c,0x00,0x02,0x9f,0xbe,0x00,0x02,0x9f,0xf4, -0x00,0x02,0xa0,0x48,0x00,0x02,0xa0,0x7c,0x00,0x02,0xa0,0x8c,0x00,0x02,0xa0,0xbe,0x00,0x02,0xa1,0x0a,0x00,0x02,0xa1,0x56,0x00,0x02,0xa1,0xca,0x00,0x02,0xa2,0x40,0x00,0x02,0xa2,0x9e,0x00,0x02,0xa2,0xfc,0x00,0x02,0xa3,0x46,0x00,0x02,0xa3,0x94,0x00,0x02,0xa3,0xc0,0x00,0x02,0xa3,0xd0,0x00,0x02,0xa3,0xe0,0x00,0x02,0xa4,0x10, -0x00,0x02,0xa4,0x3e,0x00,0x02,0xa4,0x50,0x00,0x02,0xa4,0x62,0x00,0x02,0xa4,0xaa,0x00,0x02,0xa4,0xda,0x00,0x02,0xa4,0xec,0x00,0x02,0xa4,0xfe,0x00,0x02,0xa5,0x42,0x00,0x02,0xa5,0x84,0x00,0x02,0xa5,0xd6,0x00,0x02,0xa6,0x02,0x00,0x02,0xa6,0x70,0x00,0x02,0xa6,0xee,0x00,0x02,0xa7,0x96,0x00,0x02,0xa7,0xc6,0x00,0x02,0xa8,0x7a, -0x00,0x02,0xa8,0xdc,0x00,0x02,0xa8,0xec,0x00,0x02,0xa9,0x24,0x00,0x02,0xa9,0x66,0x00,0x02,0xa9,0xa8,0x00,0x02,0xa9,0xea,0x00,0x02,0xaa,0x22,0x00,0x02,0xaa,0x52,0x00,0x02,0xaa,0x92,0x00,0x02,0xaa,0xd2,0x00,0x02,0xab,0x1c,0x00,0x02,0xab,0x7a,0x00,0x02,0xab,0xe4,0x00,0x02,0xac,0x3e,0x00,0x02,0xac,0xb6,0x00,0x02,0xad,0x3c, -0x00,0x02,0xad,0xac,0x00,0x02,0xae,0x0e,0x00,0x02,0xae,0x94,0x00,0x02,0xae,0xf4,0x00,0x02,0xaf,0x5e,0x00,0x02,0xaf,0xd2,0x00,0x02,0xb0,0x42,0x00,0x02,0xb0,0xa0,0x00,0x02,0xb1,0x46,0x00,0x02,0xb1,0xde,0x00,0x02,0xb2,0x4a,0x00,0x02,0xb2,0xd8,0x00,0x02,0xb3,0x32,0x00,0x02,0xb3,0xa0,0x00,0x02,0xb4,0x4a,0x00,0x02,0xb4,0xf0, -0x00,0x02,0xb5,0x86,0x00,0x02,0xb5,0xf6,0x00,0x02,0xb6,0x78,0x00,0x02,0xb6,0xdc,0x00,0x02,0xb7,0x88,0x00,0x02,0xb8,0x46,0x00,0x02,0xb8,0xf2,0x00,0x02,0xb9,0x84,0x00,0x02,0xb9,0xe2,0x00,0x02,0xba,0x4e,0x00,0x02,0xba,0xa4,0x00,0x02,0xbb,0x26,0x00,0x02,0xbb,0xa4,0x00,0x02,0xbc,0x2a,0x00,0x02,0xbc,0xb6,0x00,0x02,0xbd,0x10, -0x00,0x02,0xbd,0x7c,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x5a,0x00,0x02,0xbe,0xca,0x00,0x02,0xbf,0x4e,0x00,0x02,0xbf,0xde,0x00,0x02,0xc0,0x44,0x00,0x02,0xc0,0xbe,0x00,0x02,0xc1,0x3a,0x00,0x02,0xc1,0xb2,0x00,0x02,0xc2,0x58,0x00,0x02,0xc2,0xf0,0x00,0x02,0xc3,0x80,0x00,0x02,0xc3,0xde,0x00,0x02,0xc4,0x7c,0x00,0x02,0xc4,0xf8, -0x00,0x02,0xc5,0x8a,0x00,0x02,0xc6,0x2e,0x00,0x02,0xc6,0xd8,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xcc,0x00,0x02,0xc8,0x20,0x00,0x02,0xc8,0x88,0x00,0x02,0xc9,0x2e,0x00,0x02,0xc9,0xd8,0x00,0x02,0xca,0xa2,0x00,0x02,0xcb,0x48,0x00,0x02,0xcb,0xaa,0x00,0x02,0xcc,0x0a,0x00,0x02,0xcc,0x98,0x00,0x02,0xcd,0x1e,0x00,0x02,0xcd,0xac, -0x00,0x02,0xce,0x0c,0x00,0x02,0xce,0x70,0x00,0x02,0xce,0xda,0x00,0x02,0xcf,0x42,0x00,0x02,0xcf,0xaa,0x00,0x02,0xd0,0x22,0x00,0x02,0xd0,0xaa,0x00,0x02,0xd1,0x3e,0x00,0x02,0xd1,0xaa,0x00,0x02,0xd2,0x12,0x00,0x02,0xd2,0x76,0x00,0x02,0xd3,0x22,0x00,0x02,0xd3,0xe2,0x00,0x02,0xd4,0x90,0x00,0x02,0xd5,0x1e,0x00,0x02,0xd5,0x7c, -0x00,0x02,0xd5,0xe8,0x00,0x02,0xd6,0x58,0x00,0x02,0xd6,0xfc,0x00,0x02,0xd7,0xa2,0x00,0x02,0xd8,0x66,0x00,0x02,0xd9,0x08,0x00,0x02,0xd9,0x6c,0x00,0x02,0xd9,0xfc,0x00,0x02,0xda,0x6e,0x00,0x02,0xdb,0x06,0x00,0x02,0xdb,0x84,0x00,0x02,0xdb,0xfe,0x00,0x02,0xdc,0x6a,0x00,0x02,0xdc,0xf8,0x00,0x02,0xdd,0x54,0x00,0x02,0xdd,0xb2, -0x00,0x02,0xde,0x38,0x00,0x02,0xde,0xb4,0x00,0x02,0xdf,0x1c,0x00,0x02,0xdf,0x80,0x00,0x02,0xdf,0xd4,0x00,0x02,0xe0,0x42,0x00,0x02,0xe0,0xaa,0x00,0x02,0xe1,0x28,0x00,0x02,0xe1,0x9e,0x00,0x02,0xe2,0x18,0x00,0x02,0xe2,0x98,0x00,0x02,0xe2,0xf4,0x00,0x02,0xe3,0x5a,0x00,0x02,0xe3,0xbe,0x00,0x02,0xe4,0x5e,0x00,0x02,0xe5,0x00, -0x00,0x02,0xe5,0xbe,0x00,0x02,0xe6,0x6e,0x00,0x02,0xe6,0xca,0x00,0x02,0xe7,0x42,0x00,0x02,0xe7,0xa0,0x00,0x02,0xe8,0x2a,0x00,0x02,0xe8,0xc2,0x00,0x02,0xe9,0x50,0x00,0x02,0xe9,0xb6,0x00,0x02,0xea,0x14,0x00,0x02,0xea,0xa2,0x00,0x02,0xeb,0x14,0x00,0x02,0xeb,0xae,0x00,0x02,0xec,0x42,0x00,0x02,0xec,0xb2,0x00,0x02,0xed,0x22, -0x00,0x02,0xed,0x9a,0x00,0x02,0xed,0xf8,0x00,0x02,0xee,0x58,0x00,0x02,0xee,0xd2,0x00,0x02,0xef,0x2c,0x00,0x02,0xef,0x8c,0x00,0x02,0xef,0xe6,0x00,0x02,0xf0,0x42,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xfa,0x00,0x02,0xf1,0x4e,0x00,0x02,0xf1,0xa0,0x00,0x02,0xf1,0xf0,0x00,0x02,0xf3,0xf0,0x00,0x02,0xf5,0x5c, -0x00,0x02,0xf7,0x10,0x00,0x02,0xf8,0xba,0x00,0x02,0xf9,0x3e,0x00,0x02,0xf9,0xde,0x00,0x02,0xfa,0x1a,0x00,0x02,0xfa,0x56,0x00,0x02,0xfa,0x8c,0x00,0x02,0xfa,0xc2,0x00,0x02,0xfb,0x3c,0x00,0x02,0xfb,0x4e,0x00,0x02,0xfb,0x60,0x00,0x02,0xfb,0x72,0x00,0x02,0xfb,0x84,0x00,0x02,0xfb,0x96,0x00,0x02,0xfb,0xd2,0x00,0x02,0xfc,0x0a, -0x00,0x02,0xfc,0x44,0x00,0x02,0xfc,0x7c,0x00,0x02,0xfc,0xd2,0x00,0x02,0xfd,0x1a,0x00,0x02,0xfd,0x92,0x00,0x02,0xfd,0xd0,0x00,0x02,0xfe,0x1a,0x00,0x02,0xfe,0x9a,0x00,0x02,0xff,0x72,0x00,0x02,0xff,0x84,0x00,0x02,0xff,0x96,0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x54,0x00,0x03,0x00,0xa8,0x00,0x03,0x00,0xdc,0x00,0x03,0x01,0x10, -0x00,0x03,0x01,0x20,0x00,0x03,0x01,0x30,0x00,0x03,0x01,0xb0,0x00,0x03,0x02,0x5c,0x00,0x03,0x03,0x6e,0x00,0x03,0x04,0x24,0x00,0x03,0x04,0x34,0x00,0x03,0x04,0x90,0x00,0x03,0x05,0x1e,0x00,0x03,0x05,0x80,0x00,0x03,0x06,0x20,0x00,0x03,0x06,0x7c,0x00,0x03,0x06,0xc6,0x00,0x03,0x06,0xd6,0x00,0x03,0x07,0x50,0x00,0x03,0x07,0x60, -0x00,0x03,0x07,0x70,0x00,0x03,0x07,0x80,0x00,0x03,0x07,0xfa,0x00,0x03,0x08,0x6e,0x00,0x03,0x08,0xde,0x00,0x03,0x09,0xd6,0x00,0x03,0x0a,0xc6,0x00,0x03,0x0b,0x84,0x00,0x03,0x0b,0xd6,0x00,0x03,0x0c,0x28,0x00,0x03,0x0c,0x8e,0x00,0x03,0x0d,0x20,0x00,0x03,0x0d,0xac,0x00,0x03,0x0d,0xbc,0x00,0x03,0x0e,0x10,0x00,0x03,0x0e,0x76, -0x00,0x03,0x0f,0x3e,0x00,0x03,0x0f,0xda,0x00,0x03,0x0f,0xea,0x00,0x03,0x0f,0xfa,0x00,0x03,0x10,0x0a,0x00,0x03,0x10,0x94,0x00,0x03,0x11,0x44,0x00,0x03,0x11,0xd4,0x00,0x03,0x11,0xe4,0x00,0x03,0x12,0x30,0x00,0x03,0x12,0x40,0x00,0x03,0x12,0x50,0x00,0x03,0x12,0xe6,0x00,0x03,0x13,0x4e,0x00,0x03,0x13,0xe0,0x00,0x03,0x14,0xa2, -0x00,0x03,0x15,0x4c,0x00,0x03,0x16,0x12,0x00,0x03,0x16,0x7c,0x00,0x03,0x16,0xf0,0x00,0x03,0x17,0x62,0x00,0x03,0x18,0x00,0x00,0x03,0x18,0x7a,0x00,0x03,0x18,0xaa,0x00,0x03,0x18,0xfc,0x00,0x03,0x19,0x5e,0x00,0x03,0x19,0xa2,0x00,0x03,0x1a,0x28,0x00,0x03,0x1a,0x96,0x00,0x03,0x1b,0x04,0x00,0x03,0x1b,0x7e,0x00,0x03,0x1c,0x4c, -0x00,0x03,0x1c,0xbc,0x00,0x03,0x1d,0x50,0x00,0x03,0x1d,0xa2,0x00,0x03,0x1e,0x02,0x00,0x03,0x1e,0x7c,0x00,0x03,0x1f,0x36,0x00,0x03,0x1f,0xf0,0x00,0x03,0x20,0x84,0x00,0x03,0x21,0xb8,0x00,0x03,0x22,0x4c,0x00,0x03,0x22,0xe2,0x00,0x03,0x23,0x7c,0x00,0x03,0x24,0x12,0x00,0x03,0x24,0xc4,0x00,0x03,0x25,0x6e,0x00,0x03,0x26,0x24, -0x00,0x03,0x26,0x74,0x00,0x03,0x26,0xd6,0x00,0x03,0x27,0x86,0x00,0x03,0x28,0x14,0x00,0x03,0x28,0x8e,0x00,0x03,0x29,0x00,0x00,0x03,0x29,0x58,0x00,0x03,0x29,0xb0,0x00,0x03,0x2a,0x42,0x00,0x03,0x2a,0xc4,0x00,0x03,0x2b,0x34,0x00,0x03,0x2b,0x9e,0x00,0x03,0x2c,0x5c,0x00,0x03,0x2c,0xac,0x00,0x03,0x2d,0x4c,0x00,0x03,0x2e,0x1c, -0x00,0x03,0x2e,0x96,0x00,0x03,0x2f,0x46,0x00,0x03,0x30,0x04,0x00,0x03,0x30,0xa0,0x00,0x03,0x30,0xb2,0x00,0x03,0x30,0xc4,0x00,0x03,0x30,0xd6,0x00,0x03,0x30,0xe8,0x00,0x03,0x30,0xfa,0x00,0x03,0x31,0x0c,0x00,0x03,0x31,0x1e,0x00,0x03,0x31,0x30,0x00,0x03,0x31,0x42,0x00,0x03,0x31,0x8a,0x00,0x03,0x31,0xdc,0x00,0x03,0x32,0x5c, -0x00,0x03,0x32,0xb4,0x00,0x03,0x34,0x10,0x00,0x03,0x34,0xde,0x00,0x03,0x36,0x48,0x00,0x03,0x37,0x56,0x00,0x03,0x38,0x70,0x00,0x03,0x39,0xa2,0x00,0x03,0x3b,0x12,0x00,0x03,0x3d,0x2e,0x00,0x03,0x3d,0xe0,0x00,0x03,0x3e,0xd2,0x00,0x03,0x3f,0x6e,0x00,0x03,0x40,0x32,0x00,0x03,0x42,0x44,0x00,0x03,0x43,0x82,0x00,0x03,0x44,0x9e, -0x00,0x03,0x45,0xc8,0x00,0x03,0x46,0xb0,0x00,0x03,0x47,0x98,0x00,0x03,0x47,0xd0,0x00,0x03,0x47,0xe6,0x00,0x03,0x47,0xfc,0x00,0x03,0x48,0x14,0x00,0x03,0x48,0x2c,0x00,0x03,0x48,0x42,0x00,0x03,0x49,0x44,0x00,0x03,0x49,0xbe,0x00,0x03,0x4a,0x3a,0x00,0x03,0x4a,0x4a,0x00,0x03,0x4a,0x90,0x00,0x03,0x4b,0x58,0x00,0x03,0x4b,0x92, -0x00,0x03,0x4b,0xa4,0x00,0x03,0x4b,0xce,0x00,0x03,0x4c,0x4c,0x00,0x03,0x4c,0x7c,0x00,0x03,0x4c,0xac,0x00,0x03,0x4c,0xfe,0x00,0x03,0x4d,0x50,0x00,0x03,0x4d,0x7a,0x00,0x03,0x4d,0xa6,0x00,0x03,0x4d,0xca,0x00,0x03,0x4f,0x2c,0x00,0x03,0x50,0x20,0x00,0x03,0x50,0x4c,0x00,0x03,0x50,0x78,0x00,0x03,0x50,0xa4,0x00,0x03,0x50,0xba, -0x00,0x03,0x50,0xe8,0x00,0x03,0x51,0x16,0x00,0x03,0x51,0xcc,0x00,0x03,0x52,0x38,0x00,0x03,0x53,0x38,0x00,0x03,0x53,0x56,0x00,0x03,0x53,0x7e,0x00,0x03,0x53,0xae,0x00,0x03,0x53,0xde,0x00,0x03,0x54,0xb0,0x00,0x03,0x55,0x42,0x00,0x03,0x56,0x1c,0x00,0x03,0x56,0x34,0x00,0x03,0x56,0x58,0x00,0x03,0x56,0x7c,0x00,0x03,0x56,0xba, -0x00,0x03,0x56,0xde,0x00,0x03,0x57,0x02,0x00,0x03,0x57,0x26,0x00,0x03,0x57,0x4a,0x00,0x03,0x57,0x62,0x00,0x03,0x57,0x86,0x00,0x03,0x57,0xba,0x00,0x03,0x57,0xf8,0x00,0x03,0x58,0x2c,0x00,0x03,0x58,0x50,0x00,0x03,0x58,0x74,0x00,0x03,0x58,0x98,0x00,0x03,0x58,0xbc,0x00,0x03,0x58,0xe0,0x00,0x03,0x59,0x04,0x00,0x03,0x59,0x28, -0x00,0x03,0x59,0x4c,0x00,0x03,0x59,0x80,0x00,0x03,0x59,0xa4,0x00,0x03,0x59,0xc8,0x00,0x03,0x5a,0x4e,0x00,0x03,0x5a,0x72,0x00,0x03,0x5b,0x30,0x00,0x03,0x5b,0xca,0x00,0x03,0x5c,0x42,0x00,0x03,0x5d,0x0e,0x00,0x03,0x5d,0xec,0x00,0x03,0x5e,0x96,0x00,0x03,0x5f,0x0a,0x00,0x03,0x5f,0x92,0x00,0x03,0x5f,0xa2,0x00,0x03,0x60,0x0e, -0x00,0x03,0x60,0x94,0x00,0x03,0x60,0xe0,0x00,0x03,0x61,0x3a,0x00,0x03,0x61,0xba,0x00,0x03,0x62,0x74,0x00,0x03,0x62,0xbc,0x00,0x03,0x63,0x28,0x00,0x03,0x63,0x6a,0x00,0x03,0x64,0x3c,0x00,0x03,0x64,0xea,0x00,0x03,0x65,0x74,0x00,0x03,0x66,0x00,0x00,0x03,0x66,0x6c,0x00,0x03,0x67,0x10,0x00,0x03,0x67,0xe6,0x00,0x03,0x68,0xae, -0x00,0x03,0x69,0x20,0x00,0x03,0x69,0xc6,0x00,0x03,0x6a,0x72,0x00,0x03,0x6b,0x10,0x00,0x03,0x6b,0x6a,0x00,0x03,0x6b,0xe4,0x00,0x03,0x6c,0x30,0x00,0x03,0x6c,0x92,0x00,0x03,0x6d,0x26,0x00,0x03,0x6d,0xda,0x00,0x03,0x6e,0x74,0x00,0x03,0x6f,0x0a,0x00,0x03,0x6f,0x8e,0x00,0x03,0x70,0x12,0x00,0x03,0x70,0xd6,0x00,0x03,0x71,0x3c, -0x00,0x03,0x71,0x66,0x00,0x03,0x71,0x78,0x00,0x03,0x71,0x8a,0x00,0x03,0x71,0x9c,0x00,0x03,0x71,0xae,0x00,0x03,0x71,0xc0,0x00,0x03,0x72,0x78,0x00,0x03,0x73,0x84,0x00,0x03,0x74,0xd6,0x00,0x03,0x75,0x98,0x00,0x03,0x75,0xe6,0x00,0x03,0x76,0x26,0x00,0x03,0x76,0x64,0x00,0x03,0x76,0xa2,0x00,0x03,0x76,0xe0,0x00,0x03,0x77,0x42, -0x00,0x03,0x77,0x6a,0x00,0x03,0x77,0xb6,0x00,0x03,0x77,0xe8,0x00,0x03,0x78,0x1a,0x00,0x03,0x78,0x4c,0x00,0x03,0x78,0x7e,0x00,0x03,0x78,0xbc,0x00,0x03,0x78,0xfa,0x00,0x03,0x79,0x38,0x00,0x03,0x79,0x76,0x00,0x03,0x79,0xa8,0x00,0x03,0x79,0xda,0x00,0x03,0x7a,0x0c,0x00,0x03,0x7a,0x3e,0x00,0x03,0x7a,0x7c,0x00,0x03,0x7a,0xba, -0x00,0x03,0x7a,0xf8,0x00,0x03,0x7b,0x36,0x00,0x03,0x7b,0x68,0x00,0x03,0x7b,0x9a,0x00,0x03,0x7b,0xcc,0x00,0x03,0x7b,0xfe,0x00,0x03,0x7c,0x3c,0x00,0x03,0x7c,0x7a,0x00,0x03,0x7c,0xb8,0x00,0x03,0x7c,0xf6,0x00,0x03,0x7d,0x4a,0x00,0x03,0x7d,0x9e,0x00,0x03,0x7d,0xfc,0x00,0x03,0x7e,0x5a,0x00,0x03,0x7e,0xb0,0x00,0x03,0x7f,0x06, -0x00,0x03,0x7f,0x62,0x00,0x03,0x7f,0xbe,0x00,0x03,0x80,0x70,0x00,0x03,0x81,0x08,0x00,0x03,0x81,0xfa,0x00,0x03,0x83,0x00,0x00,0x03,0x83,0xe8,0x00,0x03,0x84,0xea,0x00,0x03,0x85,0xe4,0x00,0x03,0x86,0x8c,0x00,0x03,0x88,0x02,0x00,0x03,0x88,0xfc,0x00,0x03,0x89,0xec,0x00,0x03,0x8a,0x50,0x00,0x03,0x8b,0x26,0x00,0x03,0x8c,0x02, -0x00,0x03,0x8c,0x46,0x00,0x03,0x8c,0x7c,0x00,0x03,0x8c,0xc4,0x00,0x03,0x8d,0x0a,0x00,0x03,0x8d,0x50,0x00,0x03,0x8d,0xa6,0x00,0x03,0x8d,0xb8,0x00,0x03,0x8d,0xca,0x00,0x03,0x8d,0xdc,0x00,0x03,0x8d,0xee,0x00,0x03,0x8e,0x00,0x00,0x03,0x8e,0x12,0x00,0x03,0x8e,0x24,0x00,0x03,0x8e,0x36,0x00,0x03,0x8e,0x48,0x00,0x03,0x8e,0x5a, -0x00,0x03,0x8e,0x6c,0x00,0x03,0x8e,0x7e,0x00,0x03,0x8e,0x90,0x00,0x03,0x8e,0xa2,0x00,0x03,0x8e,0xb4,0x00,0x03,0x8e,0xd6,0x00,0x03,0x8e,0xf6,0x00,0x03,0x8f,0x16,0x00,0x03,0x8f,0x36,0x00,0x03,0x8f,0x58,0x00,0x03,0x8f,0x78,0x00,0x03,0x8f,0x9a,0x00,0x03,0x8f,0xba,0x00,0x03,0x8f,0xe0,0x00,0x03,0x90,0x02,0x00,0x03,0x90,0x22, -0x00,0x03,0x90,0x42,0x00,0x03,0x90,0x64,0x00,0x03,0x90,0x84,0x00,0x03,0x90,0xa4,0x00,0x03,0x91,0x94,0x00,0x03,0x92,0x46,0x00,0x03,0x92,0xfa,0x00,0x03,0x93,0x74,0x00,0x03,0x93,0xfc,0x00,0x03,0x94,0x82,0x00,0x03,0x95,0x1a,0x00,0x03,0x95,0x9e,0x00,0x03,0x95,0xc8,0x00,0x03,0x96,0x10,0x00,0x03,0x96,0x6a,0x00,0x03,0x96,0xe2, -0x00,0x03,0x97,0x52,0x00,0x03,0x98,0x02,0x00,0x03,0x98,0x82,0x00,0x03,0x98,0xae,0x00,0x03,0x99,0x2e,0x00,0x03,0x99,0x8e,0x00,0x03,0x99,0xf0,0x00,0x03,0x9a,0x40,0x00,0x03,0x9a,0x56,0x00,0x03,0x9a,0x6c,0x00,0x03,0x9a,0x82,0x00,0x03,0x9a,0x9a,0x00,0x03,0x9a,0xb2,0x00,0x03,0x9a,0xca,0x00,0x03,0x9a,0xe2,0x00,0x03,0x9a,0xfa, -0x00,0x03,0x9b,0x98,0x00,0x03,0x9c,0xa6,0x00,0x03,0x9c,0xbe,0x00,0x03,0x9c,0xd6,0x00,0x03,0x9d,0xe8,0x00,0x03,0x9e,0x00,0x00,0x03,0x9f,0x24,0x00,0x03,0x9f,0x78,0x00,0x03,0x9f,0xca,0x00,0x03,0xa0,0x2c,0x00,0x03,0xa1,0x2a,0x00,0x03,0xa1,0xf4,0x00,0x03,0xa2,0x9e,0x00,0x03,0xa3,0x06,0x00,0x03,0xa3,0x68,0x00,0x03,0xa3,0xd6, -0x00,0x03,0xa4,0xa6,0x00,0x03,0xa4,0xbe,0x00,0x03,0xa5,0x74,0x00,0x03,0xa6,0x5e,0x00,0x03,0xa7,0x8e,0x00,0x03,0xa7,0xa6,0x00,0x03,0xa7,0xbe,0x00,0x03,0xa7,0xd6,0x00,0x03,0xa7,0xee,0x00,0x03,0xa8,0x06,0x00,0x03,0xa8,0x16,0x00,0x03,0xa8,0x2e,0x00,0x03,0xa8,0x46,0x00,0x03,0xa8,0xde,0x00,0x03,0xa9,0x44,0x00,0x03,0xaa,0x10, -0x00,0x03,0xaa,0x28,0x00,0x03,0xaa,0x38,0x00,0x03,0xab,0x76,0x00,0x03,0xac,0x34,0x00,0x03,0xac,0x4c,0x00,0x03,0xac,0x64,0x00,0x03,0xac,0x7c,0x00,0x03,0xad,0x7e,0x00,0x03,0xad,0xdc,0x00,0x03,0xae,0x00,0x00,0x03,0xae,0x18,0x00,0x03,0xae,0x30,0x00,0x03,0xae,0x40,0x00,0x03,0xae,0x50,0x00,0x03,0xae,0x60,0x00,0x03,0xae,0x7e, -0x00,0x03,0xae,0x9c,0x00,0x03,0xae,0xc6,0x00,0x03,0xae,0xea,0x00,0x03,0xaf,0x28,0x00,0x03,0xaf,0x52,0x00,0x03,0xaf,0x6a,0x00,0x03,0xb0,0x52,0x00,0x03,0xb0,0xea,0x00,0x03,0xb1,0x00,0x00,0x03,0xb1,0x16,0x00,0x03,0xb1,0x3a,0x00,0x03,0xb1,0x50,0x00,0x03,0xb1,0x68,0x00,0x03,0xb1,0x96,0x00,0x03,0xb1,0xae,0x00,0x03,0xb1,0xc6, -0x00,0x03,0xb1,0xde,0x00,0x03,0xb1,0xf6,0x00,0x03,0xb2,0x0e,0x00,0x03,0xb2,0xdc,0x00,0x03,0xb2,0xf4,0x00,0x03,0xb3,0x6a,0x00,0x03,0xb3,0x82,0x00,0x03,0xb3,0xfa,0x00,0x03,0xb4,0x12,0x00,0x03,0xb5,0x5a,0x00,0x03,0xb5,0x72,0x00,0x03,0xb6,0xb4,0x00,0x03,0xb6,0xcc,0x00,0x03,0xb7,0xa2,0x00,0x03,0xb7,0xba,0x00,0x03,0xb8,0xaa, -0x00,0x03,0xb8,0xc2,0x00,0x03,0xb8,0xfc,0x00,0x03,0xb9,0x14,0x00,0x03,0xb9,0x2c,0x00,0x03,0xba,0x64,0x00,0x03,0xba,0xe4,0x00,0x03,0xbb,0xc6,0x00,0x03,0xbb,0xde,0x00,0x03,0xbc,0x92,0x00,0x03,0xbd,0x74,0x00,0x03,0xbe,0x48,0x00,0x03,0xbe,0x60,0x00,0x03,0xbe,0xa4,0x00,0x03,0xbf,0x76,0x00,0x03,0xbf,0xba,0x00,0x03,0xbf,0xe6, -0x00,0x03,0xc0,0xae,0x00,0x03,0xc0,0xd8,0x00,0x03,0xc1,0xba,0x00,0x03,0xc2,0x42,0x00,0x03,0xc2,0x60,0x00,0x03,0xc2,0x7e,0x00,0x03,0xc2,0x8e,0x00,0x03,0xc3,0x04,0x00,0x03,0xc3,0x14,0x00,0x03,0xc3,0x24,0x00,0x03,0xc3,0x34,0x00,0x03,0xc3,0xb6,0x00,0x03,0xc4,0x84,0x00,0x03,0xc5,0x7c,0x00,0x03,0xc6,0x18,0x00,0x03,0xc6,0x9a, -0x00,0x03,0xc6,0xb2,0x00,0x03,0xc6,0xca,0x00,0x03,0xc7,0xf2,0x00,0x03,0xc9,0x62,0x00,0x03,0xc9,0x7a,0x00,0x03,0xc9,0x92,0x00,0x03,0xca,0x66,0x00,0x03,0xca,0x76,0x00,0x03,0xca,0x8e,0x00,0x03,0xca,0xa4,0x00,0x03,0xca,0xb4,0x00,0x03,0xca,0xc4,0x00,0x03,0xca,0xdc,0x00,0x03,0xca,0xf4,0x00,0x03,0xcb,0x18,0x00,0x03,0xcb,0x28, -0x00,0x03,0xcb,0x38,0x00,0x03,0xcb,0x48,0x00,0x03,0xcb,0x58,0x00,0x03,0xcc,0x3e,0x00,0x03,0xcd,0x2e,0x00,0x03,0xcd,0xea,0x00,0x03,0xcd,0xfa,0x00,0x03,0xce,0x0a,0x00,0x03,0xce,0x1a,0x00,0x03,0xce,0xc6,0x00,0x03,0xce,0xd6,0x00,0x03,0xce,0xee,0x00,0x03,0xcf,0x06,0x00,0x03,0xcf,0x1e,0x00,0x03,0xcf,0x36,0x00,0x03,0xcf,0xcc, -0x00,0x03,0xcf,0xdc,0x00,0x03,0xcf,0xf2,0x00,0x03,0xd0,0xc6,0x00,0x03,0xd0,0xea,0x00,0x03,0xd1,0x02,0x00,0x03,0xd1,0x9e,0x00,0x03,0xd2,0x2a,0x00,0x03,0xd2,0x4e,0x00,0x03,0xd2,0x66,0x00,0x03,0xd2,0x94,0x00,0x03,0xd3,0x00,0x00,0x03,0xd3,0x48,0x00,0x03,0xd3,0x60,0x00,0x03,0xd3,0x78,0x00,0x03,0xd3,0x90,0x00,0x03,0xd3,0xa0, -0x00,0x03,0xd3,0xb0,0x00,0x03,0xd5,0xda,0x00,0x03,0xd6,0x5c,0x00,0x03,0xd6,0x8c,0x00,0x03,0xd8,0x0e,0x00,0x03,0xd8,0x7e,0x00,0x03,0xd8,0x8e,0x00,0x03,0xd9,0x40,0x00,0x03,0xd9,0x50,0x00,0x03,0xd9,0x60,0x00,0x03,0xd9,0x70,0x00,0x03,0xd9,0x80,0x00,0x03,0xda,0x94,0x00,0x03,0xda,0xa4,0x00,0x03,0xdb,0x20,0x00,0x03,0xdb,0xa2, -0x00,0x03,0xdb,0xb8,0x00,0x03,0xdb,0xce,0x00,0x03,0xdb,0xf2,0x00,0x03,0xdc,0x16,0x00,0x03,0xdc,0x2c,0x00,0x03,0xdc,0x42,0x00,0x03,0xdc,0x66,0x00,0x03,0xdc,0x92,0x00,0x03,0xdc,0xaa,0x00,0x03,0xdc,0xca,0x00,0x03,0xdc,0xe2,0x00,0x03,0xdc,0xfa,0x00,0x03,0xdd,0x12,0x00,0x03,0xdd,0x2a,0x00,0x03,0xdd,0x42,0x00,0x03,0xdd,0x5a, -0x00,0x03,0xdd,0x88,0x00,0x03,0xdd,0xb6,0x00,0x03,0xdd,0xce,0x00,0x03,0xdd,0xe6,0x00,0x03,0xdd,0xfe,0x00,0x03,0xde,0x16,0x00,0x03,0xde,0x2e,0x00,0x03,0xde,0x46,0x00,0x03,0xde,0x5e,0x00,0x03,0xde,0x76,0x00,0x03,0xde,0x9a,0x00,0x03,0xde,0xb2,0x00,0x03,0xde,0xca,0x00,0x03,0xde,0xe2,0x00,0x03,0xde,0xfa,0x00,0x03,0xdf,0x12, -0x00,0x03,0xdf,0x2a,0x00,0x03,0xdf,0x50,0x00,0x03,0xdf,0x76,0x00,0x03,0xdf,0x8e,0x00,0x03,0xdf,0xa6,0x00,0x03,0xdf,0xbe,0x00,0x03,0xdf,0xd6,0x00,0x03,0xe1,0x1a,0x00,0x03,0xe2,0x80,0x00,0x03,0xe2,0x98,0x00,0x03,0xe2,0xbe,0x00,0x03,0xe2,0xd6,0x00,0x03,0xe2,0xf6,0x00,0x03,0xe3,0x0e,0x00,0x03,0xe3,0x26,0x00,0x03,0xe3,0x3e, -0x00,0x03,0xe3,0x56,0x00,0x03,0xe3,0x6e,0x00,0x03,0xe3,0x86,0x00,0x03,0xe3,0x9e,0x00,0x03,0xe3,0xb6,0x00,0x03,0xe3,0xda,0x00,0x03,0xe3,0xf8,0x00,0x03,0xe4,0x10,0x00,0x03,0xe4,0x28,0x00,0x03,0xe4,0x48,0x00,0x03,0xe4,0x68,0x00,0x03,0xe4,0x80,0x00,0x03,0xe4,0x98,0x00,0x03,0xe4,0xb8,0x00,0x03,0xe4,0xd8,0x00,0x03,0xe4,0xf0, -0x00,0x03,0xe5,0x08,0x00,0x03,0xe5,0x20,0x00,0x03,0xe5,0x38,0x00,0x03,0xe5,0x50,0x00,0x03,0xe5,0x68,0x00,0x03,0xe5,0x80,0x00,0x03,0xe5,0x98,0x00,0x03,0xe5,0xb0,0x00,0x03,0xe6,0xca,0x00,0x03,0xe6,0xe2,0x00,0x03,0xe6,0xfa,0x00,0x03,0xe7,0x12,0x00,0x03,0xe7,0x32,0x00,0x03,0xe7,0x52,0x00,0x03,0xe7,0x72,0x00,0x03,0xe7,0x8a, -0x00,0x03,0xe7,0xa2,0x00,0x03,0xe7,0xba,0x00,0x03,0xe7,0xd2,0x00,0x03,0xe7,0xea,0x00,0x03,0xe8,0x02,0x00,0x03,0xe8,0x1a,0x00,0x03,0xe8,0x32,0x00,0x03,0xe9,0x24,0x00,0x03,0xea,0x2a,0x00,0x03,0xea,0x42,0x00,0x03,0xea,0x5a,0x00,0x03,0xea,0x72,0x00,0x03,0xea,0x8a,0x00,0x03,0xea,0xa2,0x00,0x03,0xea,0xba,0x00,0x03,0xea,0xd2, -0x00,0x03,0xea,0xea,0x00,0x03,0xeb,0x0a,0x00,0x03,0xeb,0x28,0x00,0x03,0xeb,0x56,0x00,0x03,0xeb,0x82,0x00,0x03,0xeb,0xa2,0x00,0x03,0xeb,0xc0,0x00,0x03,0xeb,0xe0,0x00,0x03,0xeb,0xfe,0x00,0x03,0xec,0x34,0x00,0x03,0xec,0x68,0x00,0x03,0xec,0x80,0x00,0x03,0xec,0x98,0x00,0x03,0xec,0xb0,0x00,0x03,0xec,0xc8,0x00,0x03,0xec,0xf0, -0x00,0x03,0xed,0x18,0x00,0x03,0xed,0xfe,0x00,0x03,0xee,0x16,0x00,0x03,0xee,0x38,0x00,0x03,0xee,0x58,0x00,0x03,0xee,0x70,0x00,0x03,0xee,0x92,0x00,0x03,0xee,0xb2,0x00,0x03,0xee,0xca,0x00,0x03,0xee,0xe2,0x00,0x03,0xee,0xfa,0x00,0x03,0xef,0x12,0x00,0x03,0xef,0x32,0x00,0x03,0xef,0x48,0x00,0x03,0xf0,0x5e,0x00,0x03,0xf0,0x82, -0x00,0x03,0xf0,0xa8,0x00,0x03,0xf0,0xc0,0x00,0x03,0xf0,0xe4,0x00,0x03,0xf0,0xfc,0x00,0x03,0xf1,0x14,0x00,0x03,0xf1,0xe8,0x00,0x03,0xf2,0xfc,0x00,0x03,0xf3,0x14,0x00,0x03,0xf3,0x2c,0x00,0x03,0xf3,0x4c,0x00,0x03,0xf3,0x64,0x00,0x03,0xf3,0x7e,0x00,0x03,0xf3,0xa0,0x00,0x03,0xf3,0xba,0x00,0x03,0xf3,0xd2,0x00,0x03,0xf5,0x4e, -0x00,0x03,0xf6,0x0e,0x00,0x03,0xf6,0xd0,0x00,0x03,0xf7,0x2c,0x00,0x03,0xf8,0x42,0x00,0x03,0xf9,0xc4,0x00,0x03,0xfb,0x5e,0x00,0x03,0xfb,0xd0,0x00,0x03,0xfc,0x46,0x00,0x03,0xfc,0xc8,0x00,0x03,0xfd,0x94,0x00,0x03,0xfe,0xae,0x00,0x03,0xff,0x2c,0x00,0x03,0xff,0xf8,0x00,0x04,0x00,0x0a,0x00,0x04,0x00,0x92,0x00,0x04,0x01,0x2c, -0x00,0x04,0x02,0x62,0x00,0x04,0x02,0xb4,0x00,0x04,0x02,0xfe,0x00,0x04,0x03,0xca,0x00,0x04,0x03,0xea,0x00,0x04,0x04,0x0a,0x00,0x04,0x04,0x2a,0x00,0x04,0x04,0x4a,0x00,0x04,0x04,0x6a,0x00,0x04,0x04,0x8a,0x00,0x04,0x04,0xaa,0x00,0x04,0x04,0xca,0x00,0x04,0x04,0xe2,0x00,0x04,0x04,0xfa,0x00,0x04,0x05,0x26,0x00,0x04,0x05,0x52, -0x00,0x04,0x05,0x70,0x00,0x04,0x05,0x8e,0x00,0x04,0x05,0xae,0x00,0x04,0x05,0xce,0x00,0x04,0x05,0xee,0x00,0x04,0x06,0x0e,0x00,0x04,0x06,0x2e,0x00,0x04,0x06,0x4e,0x00,0x04,0x06,0x7e,0x00,0x04,0x06,0xae,0x00,0x04,0x06,0xce,0x00,0x04,0x06,0xee,0x00,0x04,0x07,0xb0,0x00,0x04,0x08,0x12,0x00,0x04,0x08,0x2a,0x00,0x04,0x08,0x42, -0x00,0x04,0x08,0x6e,0x00,0x04,0x08,0x8c,0x00,0x04,0x08,0xaa,0x00,0x04,0x0b,0x1c,0x00,0x04,0x0b,0x66,0x00,0x04,0x0c,0x5e,0x00,0x04,0x0c,0xf4,0x00,0x04,0x0d,0xd6,0x00,0x04,0x0e,0x96,0x00,0x04,0x0e,0xda,0x00,0x04,0x10,0x3e,0x00,0x04,0x11,0x0a,0x00,0x04,0x11,0xda,0x00,0x04,0x12,0xa4,0x00,0x04,0x13,0xdc,0x00,0x04,0x14,0x86, -0x00,0x04,0x14,0xb6,0x00,0x04,0x15,0x7c,0x00,0x04,0x15,0xfe,0x00,0x04,0x16,0x28,0x00,0x04,0x16,0x4c,0x00,0x04,0x16,0x70,0x00,0x04,0x16,0x88,0x00,0x04,0x16,0xa0,0x00,0x04,0x16,0xb8,0x00,0x04,0x16,0xdc,0x00,0x04,0x17,0x00,0x00,0x04,0x17,0x24,0x00,0x04,0x18,0x08,0x00,0x04,0x18,0xa0,0x00,0x04,0x19,0x52,0x00,0x04,0x19,0x6a, -0x00,0x04,0x19,0x82,0x00,0x04,0x19,0xaa,0x00,0x04,0x19,0xc2,0x00,0x04,0x19,0xda,0x00,0x04,0x1b,0x8a,0x00,0x04,0x1c,0x82,0x00,0x04,0x1e,0x16,0x00,0x04,0x1f,0x10,0x00,0x04,0x20,0xae,0x00,0x04,0x21,0xbc,0x00,0x04,0x22,0xd0,0x00,0x04,0x23,0x76,0x00,0x04,0x23,0xa6,0x00,0x04,0x23,0xe0,0x00,0x04,0x24,0x1a,0x00,0x04,0x24,0x5c, -0x00,0x04,0x25,0x26,0x00,0x04,0x25,0x90,0x00,0x04,0x25,0xa8,0x00,0x04,0x25,0xc0,0x00,0x04,0x25,0xe0,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x18,0x00,0x04,0x26,0x30,0x00,0x04,0x26,0x50,0x00,0x04,0x26,0x70,0x00,0x04,0x26,0x90,0x00,0x04,0x26,0xb0,0x00,0x04,0x26,0xd4,0x00,0x04,0x26,0xf8,0x00,0x04,0x27,0x10,0x00,0x04,0x27,0x28, -0x00,0x04,0x27,0x40,0x00,0x04,0x27,0x58,0x00,0x04,0x27,0x70,0x00,0x04,0x28,0x98,0x00,0x04,0x29,0xfc,0x00,0x04,0x2a,0x14,0x00,0x04,0x2a,0x34,0x00,0x04,0x2a,0x58,0x00,0x04,0x2a,0x70,0x00,0x04,0x2a,0x88,0x00,0x04,0x2a,0xa0,0x00,0x04,0x2a,0xb8,0x00,0x04,0x2a,0xd0,0x00,0x04,0x2a,0xe8,0x00,0x04,0x2b,0x00,0x00,0x04,0x2b,0x18, -0x00,0x04,0x2b,0x30,0x00,0x04,0x2b,0x48,0x00,0x04,0x2b,0x60,0x00,0x04,0x2b,0x78,0x00,0x04,0x2b,0x90,0x00,0x04,0x2b,0xa8,0x00,0x04,0x2b,0xc0,0x00,0x04,0x2b,0xd8,0x00,0x04,0x2b,0xf0,0x00,0x04,0x2c,0x08,0x00,0x04,0x2c,0x20,0x00,0x04,0x2c,0x38,0x00,0x04,0x2c,0x50,0x00,0x04,0x2c,0x68,0x00,0x04,0x2c,0x80,0x00,0x04,0x2c,0x98, -0x00,0x04,0x2c,0xb0,0x00,0x04,0x2c,0xc8,0x00,0x04,0x2c,0xe0,0x00,0x04,0x2c,0xf8,0x00,0x04,0x2d,0x10,0x00,0x04,0x2d,0x28,0x00,0x04,0x2d,0x40,0x00,0x04,0x2d,0x58,0x00,0x04,0x2d,0x70,0x00,0x04,0x2d,0x88,0x00,0x04,0x2d,0xaa,0x00,0x04,0x2d,0xca,0x00,0x04,0x2d,0xea,0x00,0x04,0x2e,0x16,0x00,0x04,0x2e,0x42,0x00,0x04,0x2e,0x78, -0x00,0x04,0x2e,0x90,0x00,0x04,0x2e,0xa8,0x00,0x04,0x2e,0xbe,0x00,0x04,0x2e,0xd4,0x00,0x04,0x2e,0xec,0x00,0x04,0x2f,0x04,0x00,0x04,0x2f,0x1c,0x00,0x04,0x2f,0x34,0x00,0x04,0x2f,0x44,0x00,0x04,0x2f,0x64,0x00,0x04,0x2f,0x84,0x00,0x04,0x2f,0xc0,0x00,0x04,0x2f,0xfc,0x00,0x04,0x30,0x32,0x00,0x04,0x30,0x68,0x00,0x04,0x30,0xf6, -0x00,0x04,0x31,0xf0,0x00,0x04,0x32,0x88,0x00,0x04,0x32,0x98,0x00,0x04,0x32,0xce,0x00,0x04,0x32,0xf2,0x00,0x04,0x33,0xaa,0x00,0x04,0x34,0x86,0x00,0x04,0x35,0x44,0x00,0x04,0x35,0xf8,0x00,0x04,0x37,0x28,0x00,0x04,0x37,0xb4,0x00,0x04,0x38,0x7c,0x00,0x04,0x39,0x56,0x00,0x04,0x39,0x66,0x00,0x04,0x39,0x9c,0x00,0x04,0x39,0xd2, -0x00,0x04,0x39,0xe2,0x00,0x04,0x3a,0x06,0x00,0x04,0x3a,0x2a,0x00,0x04,0x3a,0x42,0x00,0x04,0x3a,0x5a,0x00,0x04,0x3b,0x5e,0x00,0x04,0x3c,0x10,0x00,0x04,0x3c,0x20,0x00,0x04,0x3c,0x30,0x00,0x04,0x3c,0x54,0x00,0x04,0x3c,0x78,0x00,0x04,0x3c,0x90,0x00,0x04,0x3c,0xa8,0x00,0x04,0x3c,0xcc,0x00,0x04,0x3c,0xf2,0x00,0x04,0x3d,0x12, -0x00,0x04,0x3d,0x32,0x00,0x04,0x3d,0x44,0x00,0x04,0x3d,0x78,0x00,0x04,0x3d,0xe2,0x00,0x04,0x3f,0x42,0x00,0x04,0x3f,0x9a,0x00,0x04,0x3f,0xaa,0x00,0x04,0x40,0x76,0x00,0x04,0x41,0x02,0x00,0x04,0x41,0x1a,0x00,0x04,0x41,0xc4,0x00,0x04,0x41,0xe8,0x00,0x04,0x42,0x0c,0x00,0x04,0x42,0x30,0x00,0x04,0x42,0x40,0x00,0x04,0x42,0x64, -0x00,0x04,0x42,0x7c,0x00,0x04,0x42,0x94,0x00,0x04,0x42,0xac,0x00,0x04,0x42,0xc4,0x00,0x04,0x43,0xb4,0x00,0x04,0x43,0xfc,0x00,0x04,0x44,0x44,0x00,0x04,0x44,0xe0,0x00,0x04,0x45,0x3e,0x00,0x04,0x45,0xba,0x00,0x04,0x46,0x1c,0x00,0x04,0x46,0x54,0x00,0x04,0x46,0xa6,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa, -0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x47,0x98,0x00,0x04,0x47,0xb0,0x00,0x04,0x47,0xc8,0x00,0x04,0x47,0xe0, -0x00,0x04,0x47,0xf8,0x00,0x04,0x48,0x10,0x00,0x04,0x48,0x28,0x00,0x04,0x48,0x4c,0x00,0x04,0x48,0x6a,0x00,0x04,0x48,0x82,0x00,0x04,0x48,0x9a,0x00,0x04,0x48,0xb2,0x00,0x04,0x48,0xca,0x00,0x04,0x48,0xda,0x00,0x04,0x48,0xea,0x00,0x04,0x49,0xb8,0x00,0x04,0x4a,0x20,0x00,0x04,0x4a,0x30,0x00,0x04,0x4a,0x40,0x00,0x04,0x4a,0x50, -0x00,0x04,0x4a,0x60,0x00,0x04,0x4b,0x4e,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x8a,0x00,0x04,0x4b,0xb4,0x00,0x04,0x4b,0xfe,0x00,0x04,0x4c,0x3c,0x00,0x04,0x4c,0x82,0x00,0x04,0x4c,0xc2, -0x00,0x04,0x4d,0x24,0x00,0x04,0x4d,0x34,0x00,0x04,0x4d,0x66,0x00,0x04,0x4d,0xd6,0x00,0x04,0x4e,0xac,0x00,0x04,0x4f,0x30,0x00,0x04,0x4f,0x58,0x00,0x04,0x4f,0x80,0x00,0x04,0x4f,0xa8,0x00,0x04,0x4f,0xd0,0x00,0x04,0x4f,0xf8,0x00,0x04,0x50,0x20,0x00,0x04,0x50,0xc0,0x00,0x04,0x51,0x2a,0x00,0x04,0x51,0xd8,0x00,0x04,0x52,0x74, -0x00,0x04,0x53,0x2a,0x00,0x04,0x53,0x9e,0x00,0x04,0x53,0xcc,0x00,0x04,0x54,0x80,0x00,0x04,0x54,0x90,0x00,0x04,0x55,0x78,0x00,0x04,0x56,0x5c,0x00,0x04,0x56,0x98,0x00,0x04,0x56,0xd4,0x00,0x04,0x57,0x32,0x00,0x04,0x57,0x8e,0x00,0x04,0x57,0xee,0x00,0x04,0x58,0x2a,0x00,0x04,0x58,0x3a,0x00,0x04,0x58,0x7c,0x00,0x04,0x58,0xb6, -0x00,0x04,0x58,0xc6,0x00,0x04,0x58,0xec,0x00,0x04,0x59,0x12,0x00,0x04,0x59,0x8c,0x00,0x04,0x5a,0x38,0x00,0x04,0x5a,0xca,0x00,0x04,0x5b,0x6c,0x00,0x04,0x5b,0xb4,0x00,0x04,0x5c,0x30,0x00,0x04,0x5c,0xe2,0x00,0x04,0x5d,0x0e,0x00,0x04,0x5d,0x4a,0x00,0x04,0x5d,0x8e,0x00,0x04,0x5e,0x34,0x00,0x04,0x5e,0x76,0x00,0x04,0x5e,0xa0, -0x00,0x04,0x5e,0xd0,0x00,0x04,0x5e,0xf8,0x00,0x04,0x5f,0x26,0x00,0x04,0x5f,0x6a,0x00,0x04,0x5f,0xae,0x00,0x04,0x60,0x30,0x00,0x04,0x60,0x74,0x00,0x04,0x60,0xba,0x00,0x04,0x61,0x84,0x00,0x04,0x62,0x2a,0x00,0x04,0x62,0xe0,0x00,0x04,0x63,0x52,0x00,0x04,0x63,0xe4,0x00,0x04,0x64,0x14,0x00,0x04,0x64,0xa4,0x00,0x04,0x65,0x1e, -0x00,0x04,0x65,0xd4,0x00,0x04,0x66,0x02,0x00,0x04,0x66,0x6c,0x00,0x04,0x67,0x16,0x00,0x04,0x67,0xd6,0x00,0x04,0x68,0x5c,0x00,0x04,0x69,0x3c,0x00,0x04,0x69,0x6e,0x00,0x04,0x69,0xf2,0x00,0x04,0x6a,0x9a,0x00,0x04,0x6b,0x26,0x00,0x04,0x6b,0xbc,0x00,0x04,0x6c,0x86,0x00,0x04,0x6d,0x3e,0x00,0x04,0x6d,0xda,0x00,0x04,0x6e,0xaa, -0x00,0x04,0x6f,0x12,0x00,0x04,0x70,0x04,0x00,0x04,0x70,0xce,0x00,0x04,0x70,0xe6,0x00,0x04,0x70,0xfe,0x00,0x04,0x71,0x16,0x00,0x04,0x71,0x44,0x00,0x04,0x71,0x90,0x00,0x04,0x71,0xa8,0x00,0x04,0x71,0xc0,0x00,0x04,0x71,0xd6,0x00,0x04,0x71,0xf4,0x00,0x04,0x72,0x5a,0x00,0x04,0x72,0xe0,0x00,0x04,0x72,0xf0,0x00,0x04,0x73,0x00, -0x00,0x04,0x73,0x10,0x00,0x04,0x73,0x20,0x00,0x04,0x73,0x30,0x00,0x04,0x73,0x40,0x00,0x04,0x73,0x50,0x00,0x04,0x73,0x60,0x00,0x04,0x73,0xa0,0x00,0x04,0x73,0xb8,0x00,0x04,0x73,0xd0,0x00,0x04,0x73,0xf0,0x00,0x04,0x74,0x10,0x00,0x04,0x74,0x28,0x00,0x04,0x74,0x40,0x00,0x04,0x74,0x58,0x00,0x04,0x74,0x70,0x00,0x04,0x74,0x88, -0x00,0x04,0x74,0xa0,0x00,0x04,0x74,0xb8,0x00,0x04,0x74,0xce,0x00,0x04,0x74,0xe4,0x00,0x04,0x74,0xfc,0x00,0x04,0x75,0x14,0x00,0x04,0x75,0x2c,0x00,0x04,0x75,0x44,0x00,0x04,0x75,0x5c,0x00,0x04,0x75,0x74,0x00,0x04,0x75,0x8c,0x00,0x04,0x75,0xa4,0x00,0x04,0x75,0xbc,0x00,0x04,0x75,0xd4,0x00,0x04,0x75,0xec,0x00,0x04,0x76,0x04, -0x00,0x04,0x76,0x1c,0x00,0x04,0x76,0x34,0x00,0x04,0x76,0x4c,0x00,0x04,0x76,0x64,0x00,0x04,0x76,0x7c,0x00,0x04,0x76,0x94,0x00,0x04,0x76,0xac,0x00,0x04,0x77,0x4e,0x00,0x04,0x79,0x8e,0x00,0x04,0x79,0xcc,0x00,0x04,0x79,0xf6,0x00,0x04,0x7a,0x06,0x00,0x04,0x7a,0x1e,0x00,0x04,0x7a,0x36,0x00,0x04,0x7a,0x4e,0x00,0x04,0x7a,0xc2, -0x00,0x04,0x7b,0x6c,0x00,0x04,0x7b,0xc2,0x00,0x04,0x7c,0x38,0x00,0x04,0x7c,0xc4,0x00,0x04,0x7d,0x04,0x00,0x04,0x7d,0x30,0x00,0x04,0x7d,0xea,0x00,0x04,0x7e,0x2a,0x00,0x04,0x7e,0x8a,0x00,0x04,0x7e,0xfc,0x00,0x04,0x7f,0x3c,0x00,0x04,0x7f,0x7c,0x00,0x04,0x7f,0xee,0x00,0x04,0x80,0xd4,0x00,0x04,0x81,0x50,0x00,0x04,0x81,0xb8, -0x00,0x04,0x82,0x30,0x00,0x04,0x82,0x64,0x00,0x04,0x82,0xc4,0x00,0x04,0x83,0x04,0x00,0x04,0x83,0x76,0x00,0x04,0x83,0xcc,0x00,0x04,0x84,0x0c,0x00,0x04,0x84,0x86,0x00,0x04,0x84,0x96,0x00,0x04,0x84,0xe6,0x00,0x04,0x85,0x18,0x00,0x04,0x85,0x58,0x00,0x04,0x86,0x14,0x00,0x04,0x86,0x78,0x00,0x04,0x86,0x88,0x00,0x04,0x87,0x06, -0x00,0x04,0x87,0x1e,0x00,0x04,0x87,0x66,0x00,0x04,0x88,0x4c,0x00,0x04,0x88,0xf0,0x00,0x04,0x89,0x9a,0x00,0x04,0x8a,0x92,0x00,0x04,0x8b,0x26,0x00,0x04,0x8b,0xe8,0x00,0x04,0x8c,0xa6,0x00,0x04,0x8d,0x6a,0x00,0x04,0x8d,0xa2,0x00,0x04,0x8e,0x72,0x00,0x04,0x8f,0x44,0x00,0x04,0x90,0x30,0x00,0x04,0x90,0xbc,0x00,0x04,0x92,0x1a, -0x00,0x04,0x92,0x9e,0x00,0x04,0x93,0x30,0x00,0x04,0x93,0xe4,0x00,0x04,0x94,0x76,0x00,0x04,0x95,0x16,0x00,0x04,0x96,0x70,0x00,0x04,0x97,0x68,0x00,0x04,0x97,0xe8,0x00,0x04,0x98,0x56,0x00,0x04,0x98,0xd0,0x00,0x04,0x99,0x92,0x00,0x04,0x9a,0x12,0x00,0x04,0x9a,0xfa,0x00,0x04,0x9b,0xd6,0x00,0x04,0x9c,0x8a,0x00,0x04,0x9d,0xc4, -0x00,0x04,0x9e,0x52,0x00,0x04,0x9f,0x02,0x00,0x04,0x9f,0x98,0x00,0x04,0xa0,0x2e,0x00,0x04,0xa0,0xe4,0x00,0x04,0xa1,0x66,0x00,0x04,0xa1,0xea,0x00,0x04,0xa2,0xe4,0x00,0x04,0xa3,0xc0,0x00,0x04,0xa4,0xbe,0x00,0x04,0xa6,0x06,0x00,0x04,0xa7,0xe6,0x00,0x04,0xa8,0xd0,0x00,0x04,0xaa,0x1e,0x00,0x04,0xab,0x34,0x00,0x04,0xac,0xb0, -0x00,0x04,0xad,0x90,0x00,0x04,0xae,0x9e,0x00,0x04,0xb1,0x10,0x00,0x04,0xb2,0x16,0x00,0x04,0xb3,0x1a,0x00,0x04,0xb4,0x7e,0x00,0x04,0xb5,0xc2,0x00,0x04,0xb6,0xd6,0x00,0x04,0xb8,0xb0,0x00,0x04,0xb9,0x70,0x00,0x04,0xbb,0x5c,0x00,0x04,0xbd,0x34,0x00,0x04,0xbf,0x22,0x00,0x04,0xc0,0x4c,0x00,0x04,0xc1,0xf0,0x00,0x04,0xc3,0x60, -0x00,0x04,0xc4,0xa0,0x00,0x04,0xc5,0x9a,0x00,0x04,0xc6,0xf4,0x00,0x04,0xc7,0xcc,0x00,0x04,0xc9,0x6e,0x00,0x04,0xcb,0x30,0x00,0x04,0xcc,0x28,0x00,0x04,0xce,0x26,0x00,0x04,0xcf,0x78,0x00,0x04,0xd1,0x0a,0x00,0x04,0xd2,0x8c,0x00,0x04,0xd3,0xa4,0x00,0x04,0xd5,0x42,0x00,0x04,0xd6,0x64,0x00,0x04,0xd7,0xf0,0x00,0x04,0xd9,0x3c, -0x00,0x04,0xda,0x58,0x00,0x04,0xdb,0xb2,0x00,0x04,0xdc,0xda,0x00,0x04,0xdd,0x7c,0x00,0x04,0xde,0x6a,0x00,0x04,0xdf,0x8c,0x00,0x04,0xe0,0xb2,0x00,0x04,0xe2,0x08,0x00,0x04,0xe3,0xbe,0x00,0x04,0xe4,0xbe,0x00,0x04,0xe6,0x0e,0x00,0x04,0xe7,0x6e,0x00,0x04,0xe9,0x48,0x00,0x04,0xe9,0xfc,0x00,0x04,0xeb,0x40,0x00,0x04,0xec,0xe8, -0x00,0x04,0xee,0x6c,0x00,0x04,0xef,0xaa,0x00,0x04,0xf1,0x0c,0x00,0x04,0xf2,0x3a,0x00,0x04,0xf3,0x6a,0x00,0x04,0xf4,0xe6,0x00,0x04,0xf5,0xe2,0x00,0x04,0xf7,0x42,0x00,0x04,0xf8,0xc6,0x00,0x04,0xfa,0xc8,0x00,0x04,0xfc,0x22,0x00,0x04,0xfd,0x16,0x00,0x04,0xfe,0x04,0x00,0x04,0xff,0x1c,0x00,0x05,0x00,0x54,0x00,0x05,0x01,0x9c, -0x00,0x05,0x03,0x02,0x00,0x05,0x04,0x58,0x00,0x05,0x05,0xf8,0x00,0x05,0x07,0x50,0x00,0x05,0x08,0x46,0x00,0x05,0x09,0xaa,0x00,0x05,0x0a,0xb2,0x00,0x05,0x0b,0x62,0x00,0x05,0x0c,0x98,0x00,0x05,0x0d,0x88,0x00,0x05,0x0f,0x2a,0x00,0x05,0x10,0x08,0x00,0x05,0x10,0xc4,0x00,0x05,0x11,0xa0,0x00,0x05,0x12,0x42,0x00,0x05,0x12,0xe8, -0x00,0x05,0x13,0xee,0x00,0x05,0x14,0x5e,0x00,0x05,0x14,0xe0,0x00,0x05,0x16,0x2a,0x00,0x05,0x16,0xfe,0x00,0x05,0x17,0xb0,0x00,0x05,0x18,0x04,0x00,0x05,0x18,0xc0,0x00,0x05,0x1a,0x34,0x00,0x05,0x1a,0xca,0x00,0x05,0x1b,0xa8,0x00,0x05,0x1d,0x26,0x00,0x05,0x1d,0xb8,0x00,0x05,0x1e,0x9a,0x00,0x05,0x1f,0x2e,0x00,0x05,0x20,0x76, -0x00,0x05,0x21,0x06,0x00,0x05,0x22,0x18,0x00,0x05,0x22,0xa6,0x00,0x05,0x23,0xae,0x00,0x05,0x24,0x5e,0x00,0x05,0x25,0xc4,0x00,0x05,0x26,0x6e,0x00,0x05,0x26,0xfe,0x00,0x05,0x27,0x96,0x00,0x05,0x28,0xf2,0x00,0x05,0x29,0x78,0x00,0x05,0x2a,0xd4,0x00,0x05,0x2b,0x7e,0x00,0x05,0x2c,0x88,0x00,0x05,0x2d,0xae,0x00,0x05,0x2e,0x98, -0x00,0x05,0x2f,0xba,0x00,0x05,0x30,0x3a,0x00,0x05,0x30,0x94,0x00,0x05,0x30,0xd4,0x00,0x05,0x31,0x44,0x00,0x05,0x31,0x90,0x00,0x05,0x32,0xae,0x00,0x05,0x32,0xfe,0x00,0x05,0x33,0xee,0x00,0x05,0x34,0x92,0x00,0x05,0x35,0x6a,0x00,0x05,0x36,0x0e,0x00,0x05,0x36,0xb8,0x00,0x05,0x37,0x80,0x00,0x05,0x37,0xd0,0x00,0x05,0x38,0x6e, -0x00,0x05,0x39,0x96,0x00,0x05,0x3a,0x5a,0x00,0x05,0x3a,0xe4,0x00,0x05,0x3b,0x1e,0x00,0x05,0x3b,0xf6,0x00,0x05,0x3d,0x38,0x00,0x05,0x3d,0xae,0x00,0x05,0x3e,0x82,0x00,0x05,0x3f,0xa2,0x00,0x05,0x40,0x3e,0x00,0x05,0x41,0x46,0x00,0x05,0x41,0xc8,0x00,0x05,0x42,0x08,0x00,0x05,0x42,0x88,0x00,0x05,0x43,0x7a,0x00,0x05,0x44,0x4e, -0x00,0x05,0x45,0x3a,0x00,0x05,0x45,0xf6,0x00,0x05,0x47,0x36,0x00,0x05,0x47,0xda,0x00,0x05,0x48,0xba,0x00,0x05,0x49,0x40,0x00,0x05,0x4a,0x02,0x00,0x05,0x4a,0x92,0x00,0x05,0x4b,0xaa,0x00,0x05,0x4b,0xe4,0x00,0x05,0x4c,0xaa,0x00,0x05,0x4d,0x7a,0x00,0x05,0x4e,0x54,0x00,0x05,0x4f,0x90,0x00,0x05,0x50,0x14,0x00,0x05,0x50,0x96, -0x00,0x05,0x50,0xf4,0x00,0x05,0x51,0xd8,0x00,0x05,0x52,0xde,0x00,0x05,0x53,0xca,0x00,0x05,0x54,0xbe,0x00,0x05,0x55,0xda,0x00,0x05,0x56,0xb6,0x00,0x05,0x57,0x24,0x00,0x05,0x57,0x34,0x00,0x05,0x57,0xac,0x00,0x05,0x58,0x04,0x00,0x05,0x58,0xa2,0x00,0x05,0x59,0x60,0x00,0x05,0x59,0xde,0x00,0x05,0x5a,0x80,0x00,0x05,0x5b,0x4c, -0x00,0x05,0x5b,0xb6,0x00,0x05,0x5c,0xce,0x00,0x05,0x5d,0x96,0x00,0x05,0x5d,0xa6,0x00,0x05,0x5d,0xfe,0x00,0x05,0x5e,0x0e,0x00,0x05,0x5e,0x1e,0x00,0x05,0x5e,0x2e,0x00,0x05,0x5e,0x3e,0x00,0x05,0x5e,0x4e,0x00,0x05,0x5e,0x5e,0x00,0x05,0x5e,0x6e,0x00,0x05,0x5e,0x7e,0x00,0x05,0x5e,0xfa,0x00,0x05,0x5f,0x58,0x00,0x05,0x60,0x02, -0x00,0x05,0x60,0xd0,0x00,0x05,0x61,0x4c,0x00,0x05,0x61,0xf6,0x00,0x05,0x62,0xc2,0x00,0x05,0x63,0x2e,0x00,0x05,0x64,0x46,0x00,0x05,0x65,0x10,0x00,0x05,0x65,0xe4,0x00,0x05,0x66,0x8e,0x00,0x05,0x67,0x82,0x00,0x05,0x68,0xcc,0x00,0x05,0x69,0x9e,0x00,0x05,0x6a,0x9e,0x00,0x05,0x6b,0xbc,0x00,0x05,0x6c,0xa0,0x00,0x05,0x6e,0x1c, -0x00,0x05,0x6f,0x50,0x00,0x05,0x6f,0xb4,0x00,0x05,0x6f,0xd0,0x00,0x05,0x6f,0xec,0x00,0x05,0x70,0x08,0x00,0x05,0x70,0x26,0x00,0x05,0x70,0x42,0x00,0x05,0x71,0x0c,0x00,0x05,0x71,0x28,0x00,0x05,0x71,0x48,0x00,0x05,0x72,0x18,0x00,0x05,0x72,0x90,0x00,0x05,0x73,0x46,0x00,0x05,0x73,0xba,0x00,0x05,0x74,0x2a,0x00,0x05,0x74,0x96, -0x00,0x05,0x74,0xec,0x00,0x05,0x75,0x82,0x00,0x05,0x75,0xd8,0x00,0x05,0x76,0x00,0x00,0x05,0x76,0x52,0x00,0x05,0x76,0xcc,0x00,0x05,0x77,0x02,0x00,0x05,0x77,0x94,0x00,0x05,0x78,0x02,0x00,0x05,0x78,0x88,0x00,0x05,0x78,0xfa,0x00,0x05,0x79,0x98,0x00,0x05,0x7a,0x36,0x00,0x05,0x7a,0xf6,0x00,0x05,0x7b,0x3a,0x00,0x05,0x7b,0x9c, -0x00,0x05,0x7b,0xee,0x00,0x05,0x7c,0x80,0x00,0x05,0x7c,0xf0,0x00,0x05,0x7d,0x50,0x00,0x05,0x7d,0xa6,0x00,0x05,0x7e,0x4c,0x00,0x05,0x7f,0x26,0x00,0x05,0x7f,0x92,0x00,0x05,0x80,0x5c,0x00,0x05,0x80,0xda,0x00,0x05,0x81,0x74,0x00,0x05,0x82,0x50,0x00,0x05,0x82,0x74,0x00,0x05,0x82,0x98,0x00,0x05,0x82,0xbc,0x00,0x05,0x82,0xe0, -0x00,0x05,0x83,0x04,0x00,0x05,0x83,0x28,0x00,0x05,0x83,0x40,0x00,0x05,0x83,0x62,0x00,0x05,0x83,0x86,0x00,0x05,0x83,0xa8,0x00,0x05,0x83,0xcc,0x00,0x05,0x83,0xee,0x00,0x05,0x84,0x10,0x00,0x05,0x84,0x32,0x00,0x05,0x84,0x58,0x00,0x05,0x84,0x7c,0x00,0x05,0x84,0xa0,0x00,0x05,0x84,0xc4,0x00,0x05,0x84,0xe8,0x00,0x05,0x85,0x0c, -0x00,0x05,0x85,0x32,0x00,0x05,0x85,0x56,0x00,0x05,0x85,0x7a,0x00,0x05,0x85,0x9e,0x00,0x05,0x85,0xc4,0x00,0x05,0x85,0xe8,0x00,0x05,0x86,0x0c,0x00,0x05,0x86,0x30,0x00,0x05,0x86,0x48,0x00,0x05,0x86,0x6c,0x00,0x05,0x86,0x90,0x00,0x05,0x86,0xb4,0x00,0x05,0x86,0xd8,0x00,0x05,0x86,0xe8,0x00,0x05,0x87,0x0c,0x00,0x05,0x87,0x30, -0x00,0x05,0x87,0x54,0x00,0x05,0x87,0x6c,0x00,0x05,0x87,0x8e,0x00,0x05,0x87,0xb2,0x00,0x05,0x87,0xca,0x00,0x05,0x87,0xee,0x00,0x05,0x88,0x12,0x00,0x05,0x88,0xa4,0x00,0x05,0x88,0xc6,0x00,0x05,0x88,0xe8,0x00,0x05,0x89,0x0a,0x00,0x05,0x89,0x20,0x00,0x05,0x89,0x42,0x00,0x05,0x89,0x5a,0x00,0x05,0x89,0x7c,0x00,0x05,0x89,0x94, -0x00,0x05,0x89,0xb6,0x00,0x05,0x89,0xcc,0x00,0x05,0x89,0xe4,0x00,0x05,0x89,0xfc,0x00,0x05,0x8a,0x20,0x00,0x05,0x8a,0x38,0x00,0x05,0x8a,0x5c,0x00,0x05,0x8b,0x04,0x00,0x05,0x8b,0x28,0x00,0x05,0x8b,0x4c,0x00,0x05,0x8b,0x72,0x00,0x05,0x8b,0x96,0x00,0x05,0x8b,0xae,0x00,0x05,0x8b,0xd2,0x00,0x05,0x8b,0xf6,0x00,0x05,0x8c,0x18, -0x00,0x05,0x8c,0x30,0x00,0x05,0x8c,0x52,0x00,0x05,0x8c,0x6a,0x00,0x05,0x8c,0x80,0x00,0x05,0x8c,0xa2,0x00,0x05,0x8d,0x1c,0x00,0x05,0x8d,0x40,0x00,0x05,0x8d,0x64,0x00,0x05,0x8d,0x88,0x00,0x05,0x8d,0xae,0x00,0x05,0x8d,0xd4,0x00,0x05,0x8d,0xec,0x00,0x05,0x8e,0x10,0x00,0x05,0x8e,0x34,0x00,0x05,0x8e,0x58,0x00,0x05,0x8e,0x7e, -0x00,0x05,0x8e,0xa0,0x00,0x05,0x8e,0xc4,0x00,0x05,0x8e,0xe6,0x00,0x05,0x8f,0x0a,0x00,0x05,0x8f,0x2e,0x00,0x05,0x8f,0x52,0x00,0x05,0x8f,0x9e,0x00,0x05,0x8f,0xc2,0x00,0x05,0x8f,0xe6,0x00,0x05,0x8f,0xf6,0x00,0x05,0x90,0x06,0x00,0x05,0x90,0x40,0x00,0x05,0x90,0xa6,0x00,0x05,0x90,0xb6,0x00,0x05,0x90,0xc6,0x00,0x05,0x90,0xd6, -0x00,0x05,0x91,0x7c,0x00,0x05,0x91,0x8c,0x00,0x05,0x91,0x9c,0x00,0x05,0x91,0xfa,0x00,0x05,0x92,0x0a,0x00,0x05,0x92,0x1a,0x00,0x05,0x92,0x82,0x00,0x05,0x92,0x92,0x00,0x05,0x92,0xd2,0x00,0x05,0x92,0xe2,0x00,0x05,0x93,0x4e,0x00,0x05,0x93,0x5e,0x00,0x05,0x93,0x6e,0x00,0x05,0x94,0x4e,0x00,0x05,0x94,0x5e,0x00,0x05,0x94,0xe8, -0x00,0x05,0x95,0x8e,0x00,0x05,0x95,0xb2,0x00,0x05,0x95,0xd6,0x00,0x05,0x95,0xfa,0x00,0x05,0x96,0x1c,0x00,0x05,0x96,0x40,0x00,0x05,0x96,0x64,0x00,0x05,0x96,0x88,0x00,0x05,0x96,0xae,0x00,0x05,0x96,0xd2,0x00,0x05,0x96,0xf6,0x00,0x05,0x97,0x8c,0x00,0x05,0x97,0xb0,0x00,0x05,0x98,0x36,0x00,0x05,0x98,0x46,0x00,0x05,0x98,0x56, -0x00,0x05,0x98,0x7c,0x00,0x05,0x98,0x8c,0x00,0x05,0x99,0x5c,0x00,0x05,0x9a,0x0a,0x00,0x05,0x9a,0x7e,0x00,0x05,0x9a,0xa2,0x00,0x05,0x9a,0xc6,0x00,0x05,0x9b,0x24,0x00,0x05,0x9b,0x34,0x00,0x05,0x9b,0xba,0x00,0x05,0x9b,0xca,0x00,0x05,0x9b,0xda,0x00,0x05,0x9c,0x78,0x00,0x05,0x9c,0x88,0x00,0x05,0x9d,0x0c,0x00,0x05,0x9d,0xc6, -0x00,0x05,0x9e,0x38,0x00,0x05,0x9e,0x5c,0x00,0x05,0x9e,0x6c,0x00,0x05,0x9e,0xf0,0x00,0x05,0x9f,0x00,0x00,0x05,0x9f,0x10,0x00,0x05,0x9f,0x20,0x00,0x05,0x9f,0x30,0x00,0x05,0x9f,0x40,0x00,0x05,0x9f,0x50,0x00,0x05,0x9f,0x60,0x00,0x05,0x9f,0xdc,0x00,0x05,0x9f,0xec,0x00,0x05,0x9f,0xfc,0x00,0x05,0xa0,0x56,0x00,0x05,0xa0,0xc8, -0x00,0x05,0xa1,0x26,0x00,0x05,0xa1,0x9a,0x00,0x05,0xa2,0x20,0x00,0x05,0xa2,0xae,0x00,0x05,0xa3,0x20,0x00,0x05,0xa3,0xa6,0x00,0x05,0xa4,0x66,0x00,0x05,0xa5,0x1a,0x00,0x05,0xa5,0x5e,0x00,0x05,0xa5,0xee,0x00,0x05,0xa6,0x78,0x00,0x05,0xa7,0x4c,0x00,0x05,0xa8,0x3e,0x00,0x05,0xa9,0x24,0x00,0x05,0xaa,0xb0,0x00,0x05,0xaa,0xd4, -0x00,0x05,0xaa,0xf8,0x00,0x05,0xab,0x0e,0x00,0x05,0xab,0x1e,0x00,0x05,0xab,0x2e,0x00,0x05,0xab,0x4e,0x00,0x05,0xab,0x5e,0x00,0x05,0xab,0x6e,0x00,0x05,0xab,0x8e,0x00,0x05,0xab,0x9e,0x00,0x05,0xab,0xae,0x00,0x05,0xab,0xcc,0x00,0x05,0xab,0xdc,0x00,0x05,0xab,0xec,0x00,0x05,0xac,0x0a,0x00,0x05,0xac,0x1a,0x00,0x05,0xac,0x2a, -0x00,0x05,0xac,0x48,0x00,0x05,0xac,0x58,0x00,0x05,0xac,0x68,0x00,0x05,0xac,0x78,0x00,0x05,0xac,0x88,0x00,0x05,0xac,0x98,0x00,0x05,0xac,0xb8,0x00,0x05,0xac,0xd6,0x00,0x05,0xac,0xe6,0x00,0x05,0xac,0xf6,0x00,0x05,0xad,0x14,0x00,0x05,0xad,0x32,0x00,0x05,0xad,0x42,0x00,0x05,0xad,0x52,0x00,0x05,0xad,0x62,0x00,0x05,0xad,0x84, -0x00,0x05,0xad,0x94,0x00,0x05,0xad,0xb4,0x00,0x05,0xad,0xc4,0x00,0x05,0xad,0xe2,0x00,0x05,0xad,0xf2,0x00,0x05,0xae,0x02,0x00,0x05,0xae,0x12,0x00,0x05,0xae,0x30,0x00,0x05,0xae,0x4e,0x00,0x05,0xae,0x6e,0x00,0x05,0xae,0x7e,0x00,0x05,0xae,0x8e,0x00,0x05,0xae,0xa6,0x00,0x05,0xae,0xbe,0x00,0x05,0xae,0xce,0x00,0x05,0xae,0xde, -0x00,0x05,0xae,0xf6,0x00,0x05,0xaf,0x0e,0x00,0x05,0xaf,0x9c,0x00,0x05,0xb0,0xde,0x00,0x05,0xb2,0x14,0x00,0x05,0xb2,0x84,0x00,0x05,0xb2,0xe0,0x00,0x05,0xb3,0x7c,0x00,0x05,0xb4,0x44,0x00,0x05,0xb4,0xf6,0x00,0x05,0xb5,0xa2,0x00,0x05,0xb6,0x02,0x00,0x05,0xb6,0x5c,0x00,0x05,0xb6,0xbc,0x00,0x05,0xb7,0x64,0x00,0x05,0xb7,0x92, -0x00,0x05,0xb7,0xc2,0x00,0x05,0xb7,0xf0,0x00,0x05,0xb8,0x20,0x00,0x05,0xb8,0x38,0x00,0x05,0xb8,0x6a,0x00,0x05,0xb8,0x82,0x00,0x05,0xb8,0x9a,0x00,0x05,0xb8,0xb2,0x00,0x05,0xb8,0xca,0x00,0x05,0xb8,0xe2,0x00,0x05,0xb8,0xf8,0x00,0x05,0xb9,0x28,0x00,0x05,0xb9,0x3e,0x00,0x05,0xb9,0x54,0x00,0x05,0xb9,0x64,0x00,0x05,0xb9,0xc2, -0x00,0x05,0xba,0x16,0x00,0x05,0xba,0x2c,0x00,0x05,0xba,0x42,0x00,0x05,0xbb,0x5c,0x00,0x05,0xbc,0x64,0x00,0x05,0xbd,0x4c,0x00,0x05,0xbe,0x84,0x00,0x05,0xbf,0x26,0x00,0x05,0xbf,0xe0,0x00,0x05,0xc0,0x0c,0x00,0x05,0xc0,0xc2,0x00,0x05,0xc1,0x3a,0x00,0x05,0xc1,0x60,0x00,0x05,0xc2,0x26,0x00,0x05,0xc2,0x4c,0x00,0x05,0xc2,0x64, -0x00,0x05,0xc2,0x7c,0x00,0x05,0xc2,0x94,0x00,0x05,0xc2,0xac,0x00,0x05,0xc2,0xc4,0x00,0x05,0xc2,0xe8,0x00,0x05,0xc3,0x0c,0x00,0x05,0xc3,0x24,0x00,0x05,0xc3,0x3c,0x00,0x05,0xc3,0x54,0x00,0x05,0xc3,0x6c,0x00,0x05,0xc3,0x84,0x00,0x05,0xc3,0x9c,0x00,0x05,0xc3,0xb4,0x00,0x05,0xc4,0x88,0x00,0x05,0xc4,0xa0,0x00,0x05,0xc5,0x36, -0x00,0x05,0xc5,0x4e,0x00,0x05,0xc6,0xbe,0x00,0x05,0xc7,0xf2,0x00,0x05,0xc8,0x0a,0x00,0x05,0xc8,0x22,0x00,0x05,0xc9,0xa0,0x00,0x05,0xca,0xec,0x00,0x05,0xcb,0x04,0x00,0x05,0xcb,0x1c,0x00,0x05,0xcc,0x1c,0x00,0x05,0xcd,0x00,0x00,0x05,0xce,0x08,0x00,0x05,0xce,0x20,0x00,0x05,0xce,0x38,0x00,0x05,0xce,0x50,0x00,0x05,0xce,0x68, -0x00,0x05,0xce,0x80,0x00,0x05,0xce,0x98,0x00,0x05,0xce,0xb0,0x00,0x05,0xce,0xc8,0x00,0x05,0xce,0xe0,0x00,0x05,0xce,0xf8,0x00,0x05,0xcf,0x10,0x00,0x05,0xcf,0x28,0x00,0x05,0xcf,0x4c,0x00,0x05,0xcf,0x6c,0x00,0x05,0xcf,0x8c,0x00,0x05,0xcf,0xa4,0x00,0x05,0xcf,0xbc,0x00,0x05,0xcf,0xdc,0x00,0x05,0xcf,0xfc,0x00,0x05,0xd0,0x14, -0x00,0x05,0xd0,0x2c,0x00,0x05,0xd0,0x4c,0x00,0x05,0xd0,0x6c,0x00,0x05,0xd0,0x84,0x00,0x05,0xd0,0x9c,0x00,0x05,0xd1,0xe0,0x00,0x05,0xd2,0x8e,0x00,0x05,0xd3,0x98,0x00,0x05,0xd4,0x7c,0x00,0x05,0xd4,0x94,0x00,0x05,0xd4,0xac,0x00,0x05,0xd5,0xf4,0x00,0x05,0xd7,0x38,0x00,0x05,0xd8,0x62,0x00,0x05,0xd9,0x5a,0x00,0x05,0xd9,0x6a, -0x00,0x05,0xd9,0x7a,0x00,0x05,0xd9,0x92,0x00,0x05,0xda,0x94,0x00,0x05,0xdb,0xa4,0x00,0x05,0xdd,0x8c,0x00,0x05,0xde,0x7e,0x00,0x05,0xdf,0xc0,0x00,0x05,0xe0,0x5a,0x00,0x05,0xe1,0x94,0x00,0x05,0xe2,0x3e,0x00,0x05,0xe3,0x32,0x00,0x05,0xe3,0xd8,0x00,0x05,0xe4,0x68,0x00,0x05,0xe4,0x78,0x00,0x05,0xe5,0x3a,0x00,0x05,0xe5,0x9e, -0x00,0x05,0xe6,0xb8,0x00,0x05,0xe6,0xc8,0x00,0x05,0xe6,0xd8,0x00,0x05,0xe6,0xea,0x00,0x05,0xe7,0x0e,0x00,0x05,0xe7,0x3e,0x00,0x05,0xe7,0x62,0x00,0x05,0xe7,0x8e,0x00,0x05,0xe7,0xa6,0x00,0x05,0xe7,0xbe,0x00,0x05,0xe7,0xd6,0x00,0x05,0xe7,0xee,0x00,0x05,0xe8,0x06,0x00,0x05,0xe8,0x1e,0x00,0x05,0xe8,0x3e,0x00,0x05,0xe8,0x5e, -0x00,0x05,0xe8,0x76,0x00,0x05,0xe8,0x8e,0x00,0x05,0xe8,0xa6,0x00,0x05,0xe8,0xbe,0x00,0x05,0xe8,0xd6,0x00,0x05,0xe8,0xee,0x00,0x05,0xe9,0x06,0x00,0x05,0xe9,0x1e,0x00,0x05,0xe9,0x42,0x00,0x05,0xe9,0x5a,0x00,0x05,0xe9,0x72,0x00,0x05,0xe9,0x8a,0x00,0x05,0xe9,0xa2,0x00,0x05,0xe9,0xba,0x00,0x05,0xe9,0xd2,0x00,0x05,0xe9,0xea, -0x00,0x05,0xea,0x02,0x00,0x05,0xea,0x1a,0x00,0x05,0xea,0x3a,0x00,0x05,0xea,0x52,0x00,0x05,0xea,0x6a,0x00,0x05,0xea,0x82,0x00,0x05,0xea,0x9a,0x00,0x05,0xea,0xb2,0x00,0x05,0xea,0xd2,0x00,0x05,0xea,0xf2,0x00,0x05,0xeb,0x0a,0x00,0x05,0xeb,0x22,0x00,0x05,0xeb,0x42,0x00,0x05,0xeb,0x62,0x00,0x05,0xeb,0x7a,0x00,0x05,0xeb,0x92, -0x00,0x05,0xeb,0xaa,0x00,0x05,0xeb,0xc2,0x00,0x05,0xeb,0xda,0x00,0x05,0xeb,0xf2,0x00,0x05,0xec,0x0a,0x00,0x05,0xed,0x52,0x00,0x05,0xed,0x6a,0x00,0x05,0xed,0x8a,0x00,0x05,0xed,0xa2,0x00,0x05,0xed,0xba,0x00,0x05,0xed,0xd2,0x00,0x05,0xed,0xea,0x00,0x05,0xee,0x02,0x00,0x05,0xee,0x1a,0x00,0x05,0xee,0x32,0x00,0x05,0xee,0x4a, -0x00,0x05,0xee,0x62,0x00,0x05,0xef,0x6a,0x00,0x05,0xef,0x7a,0x00,0x05,0xf0,0x94,0x00,0x05,0xf1,0xca,0x00,0x05,0xf1,0xe2,0x00,0x05,0xf1,0xfa,0x00,0x05,0xf2,0x12,0x00,0x05,0xf2,0x2a,0x00,0x05,0xf2,0x42,0x00,0x05,0xf2,0x5a,0x00,0x05,0xf2,0x72,0x00,0x05,0xf2,0x8a,0x00,0x05,0xf2,0xa2,0x00,0x05,0xf2,0xb8,0x00,0x05,0xf2,0xd8, -0x00,0x05,0xf2,0xf6,0x00,0x05,0xf3,0x24,0x00,0x05,0xf3,0x50,0x00,0x05,0xf3,0x70,0x00,0x05,0xf3,0x8e,0x00,0x05,0xf3,0xae,0x00,0x05,0xf3,0xcc,0x00,0x05,0xf4,0x02,0x00,0x05,0xf4,0x36,0x00,0x05,0xf4,0x4e,0x00,0x05,0xf4,0x66,0x00,0x05,0xf4,0x8e,0x00,0x05,0xf5,0x9a,0x00,0x05,0xf6,0xa4,0x00,0x05,0xf6,0xc4,0x00,0x05,0xf7,0x8c, -0x00,0x05,0xf7,0xa4,0x00,0x05,0xf7,0xbc,0x00,0x05,0xf7,0xd4,0x00,0x05,0xf9,0x26,0x00,0x05,0xf9,0x46,0x00,0x05,0xf9,0x5e,0x00,0x05,0xf9,0x76,0x00,0x05,0xf9,0x86,0x00,0x05,0xf9,0x96,0x00,0x05,0xf9,0xb6,0x00,0x05,0xf9,0xce,0x00,0x05,0xf9,0xe6,0x00,0x05,0xf9,0xfc,0x00,0x05,0xfb,0x1e,0x00,0x05,0xfb,0x42,0x00,0x05,0xfb,0x68, -0x00,0x05,0xfb,0x80,0x00,0x05,0xfb,0xa4,0x00,0x05,0xfb,0xbc,0x00,0x05,0xfb,0xd4,0x00,0x05,0xfb,0xec,0x00,0x05,0xfc,0x0c,0x00,0x05,0xfc,0x24,0x00,0x05,0xfc,0x3c,0x00,0x05,0xfc,0x54,0x00,0x05,0xfc,0x6c,0x00,0x05,0xfc,0x84,0x00,0x05,0xfc,0xde,0x00,0x05,0xfc,0xfe,0x00,0x05,0xfd,0x1e,0x00,0x05,0xfd,0x3e,0x00,0x05,0xfd,0x5e, -0x00,0x05,0xfd,0x76,0x00,0x05,0xfd,0x96,0x00,0x05,0xfd,0xb6,0x00,0x05,0xfd,0xd6,0x00,0x05,0xfd,0xee,0x00,0x05,0xfe,0x06,0x00,0x05,0xfe,0x26,0x00,0x05,0xfe,0x46,0x00,0x05,0xfe,0x66,0x00,0x05,0xfe,0x86,0x00,0x05,0xfe,0xaa,0x00,0x05,0xfe,0xce,0x00,0x05,0xfe,0xe6,0x00,0x05,0xfe,0xfe,0x00,0x05,0xff,0x16,0x00,0x05,0xff,0x2e, -0x00,0x05,0xff,0x4e,0x00,0x05,0xff,0x72,0x00,0x05,0xff,0x8a,0x00,0x05,0xff,0xa2,0x00,0x05,0xff,0xba,0x00,0x05,0xff,0xd2,0x00,0x05,0xff,0xea,0x00,0x06,0x00,0x02,0x00,0x06,0x00,0x1a,0x00,0x06,0x00,0x32,0x00,0x06,0x00,0x4a,0x00,0x06,0x00,0x62,0x00,0x06,0x00,0x7a,0x00,0x06,0x00,0x92,0x00,0x06,0x01,0xbe,0x00,0x06,0x01,0xde, -0x00,0x06,0x01,0xfe,0x00,0x06,0x02,0x2a,0x00,0x06,0x02,0x56,0x00,0x06,0x02,0x8c,0x00,0x06,0x02,0xa4,0x00,0x06,0x02,0xbc,0x00,0x06,0x04,0x04,0x00,0x06,0x05,0x88,0x00,0x06,0x05,0xa0,0x00,0x06,0x05,0xb8,0x00,0x06,0x07,0x4a,0x00,0x06,0x09,0x18,0x00,0x06,0x0a,0x9e,0x00,0x06,0x0c,0x5c,0x00,0x06,0x0c,0x8a,0x00,0x06,0x0c,0xb8, -0x00,0x06,0x0c,0xe6,0x00,0x06,0x0d,0x14,0x00,0x06,0x0d,0x42,0x00,0x06,0x0d,0x70,0x00,0x06,0x0d,0x88,0x00,0x06,0x0d,0xa0,0x00,0x06,0x0d,0xb8,0x00,0x06,0x0d,0xd0,0x00,0x06,0x0d,0xe8,0x00,0x06,0x0e,0x00,0x00,0x06,0x0e,0x18,0x00,0x06,0x0e,0x30,0x00,0x06,0x0e,0x54,0x00,0x06,0x0e,0x7c,0x00,0x06,0x0e,0xa8,0x00,0x06,0x0e,0xd4, -0x00,0x06,0x0e,0xf8,0x00,0x06,0x0f,0x20,0x00,0x06,0x0f,0x4c,0x00,0x06,0x0f,0x78,0x00,0x06,0x0f,0x9e,0x00,0x06,0x0f,0xc2,0x00,0x06,0x0f,0xe6,0x00,0x06,0x10,0x0a,0x00,0x06,0x10,0x24,0x00,0x06,0x10,0x3e,0x00,0x06,0x10,0x58,0x00,0x06,0x10,0x72,0x00,0x06,0x10,0x9a,0x00,0x06,0x10,0xbe,0x00,0x06,0x10,0xe6,0x00,0x06,0x11,0x0a, -0x00,0x06,0x12,0x42,0x00,0x06,0x13,0xbc,0x00,0x06,0x13,0xe0,0x00,0x06,0x14,0x04,0x00,0x06,0x14,0x28,0x00,0x06,0x14,0x4c,0x00,0x06,0x14,0x70,0x00,0x06,0x14,0x94,0x00,0x06,0x14,0xac,0x00,0x06,0x14,0xc4,0x00,0x06,0x14,0xdc,0x00,0x06,0x14,0xf4,0x00,0x06,0x15,0x0c,0x00,0x06,0x15,0x24,0x00,0x06,0x15,0x3c,0x00,0x06,0x15,0x54, -0x00,0x06,0x15,0x86,0x00,0x06,0x15,0xd2,0x00,0x06,0x16,0x1a,0x00,0x06,0x16,0x8a,0x00,0x06,0x16,0xf2,0x00,0x06,0x17,0x56,0x00,0x06,0x17,0xd0,0x00,0x06,0x18,0x8c,0x00,0x06,0x19,0x34,0x00,0x06,0x19,0x60,0x00,0x06,0x19,0xd0,0x00,0x06,0x1a,0x48,0x00,0x06,0x1a,0x74,0x00,0x06,0x1a,0xbc,0x00,0x06,0x1b,0x08,0x00,0x06,0x1b,0xde, -0x00,0x06,0x1c,0x78,0x00,0x06,0x1d,0x76,0x00,0x06,0x1d,0x98,0x00,0x06,0x1d,0xae,0x00,0x06,0x1d,0xc4,0x00,0x06,0x1d,0xee,0x00,0x06,0x1e,0x04,0x00,0x06,0x1e,0x28,0x00,0x06,0x1e,0x3e,0x00,0x06,0x1e,0x56,0x00,0x06,0x1e,0x7a,0x00,0x06,0x1e,0x9e,0x00,0x06,0x1f,0x82,0x00,0x06,0x20,0x96,0x00,0x06,0x20,0xae,0x00,0x06,0x20,0xc6, -0x00,0x06,0x20,0xe6,0x00,0x06,0x21,0x06,0x00,0x06,0x21,0x1e,0x00,0x06,0x21,0x36,0x00,0x06,0x21,0x56,0x00,0x06,0x21,0x76,0x00,0x06,0x21,0x96,0x00,0x06,0x21,0xb6,0x00,0x06,0x21,0xce,0x00,0x06,0x21,0xe6,0x00,0x06,0x21,0xfe,0x00,0x06,0x22,0x16,0x00,0x06,0x22,0x44,0x00,0x06,0x22,0x72,0x00,0x06,0x22,0x96,0x00,0x06,0x22,0xba, -0x00,0x06,0x22,0xd2,0x00,0x06,0x22,0xea,0x00,0x06,0x23,0xec,0x00,0x06,0x25,0x12,0x00,0x06,0x25,0x2a,0x00,0x06,0x25,0x42,0x00,0x06,0x25,0x5a,0x00,0x06,0x25,0x72,0x00,0x06,0x25,0x8a,0x00,0x06,0x25,0xa2,0x00,0x06,0x25,0xc2,0x00,0x06,0x25,0xe2,0x00,0x06,0x26,0x42,0x00,0x06,0x26,0xc8,0x00,0x06,0x26,0xde,0x00,0x06,0x26,0xf4, -0x00,0x06,0x27,0x0c,0x00,0x06,0x27,0x24,0x00,0x06,0x27,0x4c,0x00,0x06,0x27,0x74,0x00,0x06,0x27,0x8c,0x00,0x06,0x27,0xa4,0x00,0x06,0x27,0xbc,0x00,0x06,0x27,0xd4,0x00,0x06,0x28,0x68,0x00,0x06,0x28,0x80,0x00,0x06,0x28,0x98,0x00,0x06,0x28,0xb0,0x00,0x06,0x28,0xc8,0x00,0x06,0x28,0xe0,0x00,0x06,0x29,0x04,0x00,0x06,0x29,0x24, -0x00,0x06,0x29,0x3c,0x00,0x06,0x29,0x54,0x00,0x06,0x29,0x6c,0x00,0x06,0x29,0x84,0x00,0x06,0x29,0x9c,0x00,0x06,0x29,0xb4,0x00,0x06,0x29,0xe2,0x00,0x06,0x2a,0x06,0x00,0x06,0x2a,0x2a,0x00,0x06,0x2a,0x42,0x00,0x06,0x2a,0x5a,0x00,0x06,0x2b,0x30,0x00,0x06,0x2b,0x48,0x00,0x06,0x2b,0x60,0x00,0x06,0x2c,0x54,0x00,0x06,0x2c,0x6c, -0x00,0x06,0x2c,0x84,0x00,0x06,0x2c,0xac,0x00,0x06,0x2c,0xd4,0x00,0x06,0x2c,0xf8,0x00,0x06,0x2d,0xc4,0x00,0x06,0x2e,0x52,0x00,0x06,0x2e,0xe0,0x00,0x06,0x2e,0xf8,0x00,0x06,0x2f,0x10,0x00,0x06,0x2f,0x34,0x00,0x06,0x2f,0x58,0x00,0x06,0x2f,0x7c,0x00,0x06,0x2f,0xa0,0x00,0x06,0x2f,0xb0,0x00,0x06,0x2f,0xc8,0x00,0x06,0x2f,0xe0, -0x00,0x06,0x30,0x2c,0x00,0x06,0x30,0xa6,0x00,0x06,0x31,0x7a,0x00,0x06,0x31,0x92,0x00,0x06,0x32,0x5e,0x00,0x06,0x33,0xde,0x00,0x06,0x34,0xa2,0x00,0x06,0x35,0xf2,0x00,0x06,0x37,0x50,0x00,0x06,0x38,0x28,0x00,0x06,0x39,0x6a,0x00,0x06,0x39,0xde,0x00,0x06,0x3a,0x5a,0x00,0x06,0x3a,0xe2,0x00,0x06,0x3b,0x60,0x00,0x06,0x3b,0xd8, -0x00,0x06,0x3c,0x58,0x00,0x06,0x3c,0xc0,0x00,0x06,0x3d,0x30,0x00,0x06,0x3d,0x9e,0x00,0x06,0x3e,0x18,0x00,0x06,0x3e,0xae,0x00,0x06,0x3f,0x26,0x00,0x06,0x3f,0xec,0x00,0x06,0x40,0x96,0x00,0x06,0x41,0x80,0x00,0x06,0x42,0x66,0x00,0x06,0x43,0x28,0x00,0x06,0x44,0x24,0x00,0x06,0x44,0xf2,0x00,0x06,0x45,0x76,0x00,0x06,0x46,0x2e, -0x00,0x06,0x46,0xb2,0x00,0x06,0x47,0x5a,0x00,0x06,0x48,0x2a,0x00,0x06,0x48,0xd6,0x00,0x06,0x49,0xc6,0x00,0x06,0x4a,0xc0,0x00,0x06,0x4b,0xa6,0x00,0x06,0x4c,0x7a,0x00,0x06,0x4d,0xa0,0x00,0x06,0x4e,0xb8,0x00,0x06,0x4f,0x2e,0x00,0x06,0x4f,0xc4,0x00,0x06,0x50,0x7a,0x00,0x06,0x51,0x64,0x00,0x06,0x52,0x40,0x00,0x06,0x52,0xde, -0x00,0x06,0x53,0xc8,0x00,0x06,0x54,0x5a,0x00,0x06,0x54,0xe8,0x00,0x06,0x55,0xa4,0x00,0x06,0x56,0x1e,0x00,0x06,0x56,0xc2,0x00,0x06,0x57,0x8e,0x00,0x06,0x58,0x6a,0x00,0x06,0x59,0x28,0x00,0x06,0x59,0xda,0x00,0x06,0x5a,0xe6,0x00,0x06,0x5b,0xbe,0x00,0x06,0x5c,0x3e,0x00,0x06,0x5c,0xf6,0x00,0x06,0x5d,0x74,0x00,0x06,0x5e,0x1c, -0x00,0x06,0x5e,0xce,0x00,0x06,0x5f,0xb8,0x00,0x06,0x60,0x86,0x00,0x06,0x61,0xae,0x00,0x06,0x62,0x92,0x00,0x06,0x63,0x7e,0x00,0x06,0x63,0xb4,0x00,0x06,0x64,0x46,0x00,0x06,0x64,0xc2,0x00,0x06,0x65,0xa8,0x00,0x06,0x66,0xae,0x00,0x06,0x67,0x64,0x00,0x06,0x68,0x2c,0x00,0x06,0x69,0x40,0x00,0x06,0x6a,0x72,0x00,0x06,0x6b,0x30, -0x00,0x06,0x6c,0x6a,0x00,0x06,0x6d,0xd4,0x00,0x06,0x6e,0x64,0x00,0x06,0x6f,0x08,0x00,0x06,0x6f,0xd2,0x00,0x06,0x70,0x9c,0x00,0x06,0x71,0xa0,0x00,0x06,0x72,0xde,0x00,0x06,0x73,0x72,0x00,0x06,0x74,0x4c,0x00,0x06,0x74,0xfa,0x00,0x06,0x75,0x8e,0x00,0x06,0x76,0x1e,0x00,0x06,0x76,0xbc,0x00,0x06,0x77,0x76,0x00,0x06,0x78,0x9c, -0x00,0x06,0x79,0xc0,0x00,0x06,0x7b,0x2a,0x00,0x06,0x7c,0x0c,0x00,0x06,0x7c,0xc2,0x00,0x06,0x7d,0xb2,0x00,0x06,0x7e,0xb4,0x00,0x06,0x7f,0x2e,0x00,0x06,0x7f,0xd4,0x00,0x06,0x80,0x7c,0x00,0x06,0x81,0x5a,0x00,0x06,0x82,0x82,0x00,0x06,0x83,0xce,0x00,0x06,0x84,0xf2,0x00,0x06,0x85,0xd2,0x00,0x06,0x86,0xc0,0x00,0x06,0x88,0x22, -0x00,0x06,0x88,0x9e,0x00,0x06,0x89,0x9e,0x00,0x06,0x8a,0xdc,0x00,0x06,0x8b,0xf4,0x00,0x06,0x8d,0x42,0x00,0x06,0x8e,0xea,0x00,0x06,0x8f,0xe6,0x00,0x06,0x91,0x2a,0x00,0x06,0x92,0x82,0x00,0x06,0x93,0xc2,0x00,0x06,0x94,0x4c,0x00,0x06,0x95,0x4e,0x00,0x06,0x96,0x3c,0x00,0x06,0x97,0xc8,0x00,0x06,0x99,0x3c,0x00,0x06,0x9b,0x16, -0x00,0x06,0x9c,0xdc,0x00,0x06,0x9e,0x20,0x00,0x06,0xa0,0x10,0x00,0x06,0xa1,0x2e,0x00,0x06,0xa1,0xa8,0x00,0x06,0xa2,0x44,0x00,0x06,0xa2,0xee,0x00,0x06,0xa3,0xe6,0x00,0x06,0xa4,0x90,0x00,0x06,0xa5,0x24,0x00,0x06,0xa5,0xec,0x00,0x06,0xa6,0xb8,0x00,0x06,0xa7,0x38,0x00,0x06,0xa7,0xec,0x00,0x06,0xa8,0x66,0x00,0x06,0xa8,0xf2, -0x00,0x06,0xa9,0x54,0x00,0x06,0xaa,0x04,0x00,0x06,0xaa,0xb0,0x00,0x06,0xab,0xa2,0x00,0x06,0xac,0xba,0x00,0x06,0xad,0x8e,0x00,0x06,0xae,0x4a,0x00,0x06,0xaf,0x66,0x00,0x06,0xaf,0xe4,0x00,0x06,0xb0,0x40,0x00,0x06,0xb0,0xd8,0x00,0x06,0xb1,0x46,0x00,0x06,0xb1,0xac,0x00,0x06,0xb2,0x40,0x00,0x06,0xb2,0xd6,0x00,0x06,0xb3,0x2a, -0x00,0x06,0xb4,0x1e,0x00,0x06,0xb5,0x10,0x00,0x06,0xb5,0x92,0x00,0x06,0xb6,0x6e,0x00,0x06,0xb7,0xdc,0x00,0x06,0xb8,0xc8,0x00,0x06,0xb9,0xe6,0x00,0x06,0xbb,0x7e,0x00,0x06,0xbc,0x9e,0x00,0x06,0xbd,0xca,0x00,0x06,0xbe,0xf6,0x00,0x06,0xc0,0x34,0x00,0x06,0xc0,0xb8,0x00,0x06,0xc1,0x84,0x00,0x06,0xc2,0x8a,0x00,0x06,0xc3,0xbe, -0x00,0x06,0xc4,0x62,0x00,0x06,0xc5,0x48,0x00,0x06,0xc6,0x4a,0x00,0x06,0xc7,0x48,0x00,0x06,0xc8,0x20,0x00,0x06,0xc9,0x02,0x00,0x06,0xc9,0x7c,0x00,0x06,0xc9,0xec,0x00,0x06,0xca,0xb6,0x00,0x06,0xcb,0x68,0x00,0x06,0xcc,0x1e,0x00,0x06,0xcd,0x0a,0x00,0x06,0xcd,0xf0,0x00,0x06,0xce,0xe0,0x00,0x06,0xcf,0x48,0x00,0x06,0xd0,0x06, -0x00,0x06,0xd0,0xbc,0x00,0x06,0xd1,0xc8,0x00,0x06,0xd1,0xf2,0x00,0x06,0xd3,0x3c,0x00,0x06,0xd4,0x46,0x00,0x06,0xd4,0xea,0x00,0x06,0xd5,0x96,0x00,0x06,0xd6,0x70,0x00,0x06,0xd7,0x4a,0x00,0x06,0xd8,0x6a,0x00,0x06,0xd9,0xb0,0x00,0x06,0xda,0x42,0x00,0x06,0xda,0xec,0x00,0x06,0xdb,0xc6,0x00,0x06,0xdc,0xaa,0x00,0x06,0xdd,0x6e, -0x00,0x06,0xde,0x6e,0x00,0x06,0xdf,0x10,0x00,0x06,0xdf,0xa8,0x00,0x06,0xe0,0x40,0x00,0x06,0xe0,0xb6,0x00,0x06,0xe0,0xc6,0x00,0x06,0xe0,0xec,0x00,0x06,0xe1,0x1a,0x00,0x06,0xe1,0x4e,0x00,0x06,0xe1,0x5e,0x00,0x06,0xe1,0x8e,0x00,0x06,0xe1,0xbc,0x00,0x06,0xe1,0xf2,0x00,0x06,0xe2,0x28,0x00,0x06,0xe2,0x5e,0x00,0x06,0xe2,0x94, -0x00,0x06,0xe2,0xca,0x00,0x06,0xe3,0x00,0x00,0x06,0xe3,0x2e,0x00,0x06,0xe3,0x5c,0x00,0x06,0xe3,0x8a,0x00,0x06,0xe3,0xbc,0x00,0x06,0xe3,0xee,0x00,0x06,0xe4,0x20,0x00,0x06,0xe4,0x30,0x00,0x06,0xe4,0x54,0x00,0x06,0xe4,0x64,0x00,0x06,0xe4,0x92,0x00,0x06,0xe4,0xaa,0x00,0x06,0xe4,0xd8,0x00,0x06,0xe4,0xfc,0x00,0x06,0xe5,0x2c, -0x00,0x06,0xe5,0x5a,0x00,0x06,0xe5,0x88,0x00,0x06,0xe5,0xbe,0x00,0x06,0xe5,0xec,0x00,0x06,0xe6,0x1a,0x00,0x06,0xe6,0x48,0x00,0x06,0xe6,0x76,0x00,0x06,0xe6,0xa4,0x00,0x06,0xe6,0xd2,0x00,0x06,0xe8,0x96,0x00,0x06,0xea,0x76,0x00,0x06,0xec,0x72,0x00,0x06,0xee,0x4e,0x00,0x06,0xef,0x2e,0x00,0x06,0xf0,0x3c,0x00,0x06,0xf1,0xda, -0x00,0x06,0xf2,0x78,0x00,0x06,0xf3,0x62,0x00,0x06,0xf4,0x36,0x00,0x06,0xf4,0xaa,0x00,0x06,0xf5,0x16,0x00,0x06,0xf5,0xe0,0x00,0x06,0xf6,0xcc,0x00,0x06,0xf7,0xc0,0x00,0x06,0xf9,0x00,0x00,0x06,0xf9,0x86,0x00,0x06,0xfa,0xe8,0x00,0x06,0xfb,0xce,0x00,0x06,0xfd,0x0c,0x00,0x06,0xfe,0xa2,0x00,0x07,0x00,0x16,0x00,0x07,0x01,0x4c, -0x00,0x07,0x02,0x24,0x00,0x07,0x03,0x26,0x00,0x07,0x04,0x1a,0x00,0x07,0x05,0x08,0x00,0x07,0x06,0x42,0x00,0x07,0x07,0xa8,0x00,0x07,0x08,0xea,0x00,0x07,0x09,0xe4,0x00,0x07,0x0a,0x7e,0x00,0x07,0x0b,0x2c,0x00,0x07,0x0d,0x52,0x00,0x07,0x0e,0x90,0x00,0x07,0x0f,0xa8,0x00,0x07,0x10,0xa4,0x00,0x07,0x11,0x64,0x00,0x07,0x12,0x8a, -0x00,0x07,0x13,0x32,0x00,0x07,0x14,0x3a,0x00,0x07,0x15,0xcc,0x00,0x07,0x16,0xda,0x00,0x07,0x18,0x22,0x00,0x07,0x18,0x6a,0x00,0x07,0x18,0x98,0x00,0x07,0x18,0xee,0x00,0x07,0x19,0x1a,0x00,0x07,0x19,0x44,0x00,0x07,0x19,0x7c,0x00,0x07,0x19,0xde,0x00,0x07,0x1a,0x34,0x00,0x07,0x1a,0x5e,0x00,0x07,0x1a,0xa6,0x00,0x07,0x1a,0xee, -0x00,0x07,0x1b,0x1a,0x00,0x07,0x1b,0xcc,0x00,0x07,0x1c,0x78,0x00,0x07,0x1c,0xd8,0x00,0x07,0x1d,0x32,0x00,0x07,0x1d,0x92,0x00,0x07,0x1e,0x3a,0x00,0x07,0x1e,0x98,0x00,0x07,0x1f,0x42,0x00,0x07,0x20,0x52,0x00,0x07,0x20,0x64,0x00,0x07,0x23,0xe8,0x00,0x07,0x27,0x46,0x00,0x07,0x2a,0xd6,0x00,0x07,0x2b,0x02,0x00,0x07,0x2b,0x2e, -0x00,0x07,0x2b,0x5a,0x00,0x07,0x2b,0x86,0x00,0x07,0x2b,0xb2,0x00,0x07,0x2b,0xde,0x00,0x07,0x2c,0x16,0x00,0x07,0x2c,0x4e,0x00,0x07,0x2c,0x84,0x00,0x07,0x2c,0xba,0x00,0x07,0x2c,0xee,0x00,0x07,0x2d,0x22,0x00,0x07,0x2d,0x56,0x00,0x07,0x2d,0x8a,0x00,0x07,0x2d,0xbe,0x00,0x07,0x2d,0xea,0x00,0x07,0x2e,0x16,0x00,0x07,0x2e,0x42, -0x00,0x07,0x2e,0xe0,0x00,0x07,0x2f,0x62,0x00,0x07,0x2f,0x98,0x00,0x07,0x30,0x0a,0x00,0x07,0x30,0x80,0x00,0x07,0x31,0x16,0x00,0x07,0x31,0x70,0x00,0x07,0x31,0xc4,0x00,0x07,0x32,0x1e,0x00,0x07,0x32,0x72,0x00,0x07,0x32,0xd4,0x00,0x07,0x33,0x16,0x00,0x07,0x33,0x9e,0x00,0x07,0x33,0xfe,0x00,0x07,0x34,0x3e,0x00,0x07,0x34,0x9a, -0x00,0x07,0x34,0xf2,0x00,0x07,0x35,0x4a,0x00,0x07,0x35,0xa2,0x00,0x07,0x36,0x12,0x00,0x07,0x36,0xd0,0x00,0x07,0x37,0x4a,0x00,0x07,0x37,0xe0,0x00,0x07,0x38,0x5a,0x00,0x07,0x38,0xee,0x00,0x07,0x39,0x88,0x00,0x07,0x3a,0x10,0x00,0x07,0x3a,0x9c,0x00,0x07,0x3b,0x6a,0x00,0x07,0x3b,0xfc,0x00,0x07,0x3c,0xa2,0x00,0x07,0x3d,0x6a, -0x00,0x07,0x3e,0x1c,0x00,0x07,0x3e,0xc6,0x00,0x07,0x3f,0xac,0x00,0x07,0x40,0x8c,0x00,0x07,0x41,0x2c,0x00,0x07,0x41,0xbc,0x00,0x07,0x42,0x16,0x00,0x07,0x42,0x72,0x00,0x07,0x43,0x16,0x00,0x07,0x43,0xae,0x00,0x07,0x44,0xac,0x00,0x07,0x45,0x58,0x00,0x07,0x46,0x46,0x00,0x07,0x47,0x0a,0x00,0x07,0x47,0x96,0x00,0x07,0x48,0x1a, -0x00,0x07,0x48,0xb2,0x00,0x07,0x49,0x48,0x00,0x07,0x49,0xf6,0x00,0x07,0x4a,0xa0,0x00,0x07,0x4b,0x50,0x00,0x07,0x4b,0xe8,0x00,0x07,0x4c,0x8e,0x00,0x07,0x4d,0x66,0x00,0x07,0x4d,0xe4,0x00,0x07,0x4e,0x5a,0x00,0x07,0x4f,0x4e,0x00,0x07,0x50,0x40,0x00,0x07,0x50,0xea,0x00,0x07,0x51,0x94,0x00,0x07,0x52,0x22,0x00,0x07,0x52,0xb0, -0x00,0x07,0x53,0x0a,0x00,0x07,0x53,0x64,0x00,0x07,0x53,0xf4,0x00,0x07,0x54,0x80,0x00,0x07,0x54,0xfa,0x00,0x07,0x55,0x60,0x00,0x07,0x56,0x0e,0x00,0x07,0x56,0x9c,0x00,0x07,0x57,0x4e,0x00,0x07,0x57,0xee,0x00,0x07,0x58,0xca,0x00,0x07,0x59,0x94,0x00,0x07,0x5a,0xd0,0x00,0x07,0x5b,0xf8,0x00,0x07,0x5f,0x70,0x00,0x07,0x5f,0xbc, -0x00,0x07,0x61,0x1e,0x00,0x07,0x61,0x9c,0x00,0x07,0x62,0xf2,0x00,0x07,0x63,0xa8,0x00,0x07,0x63,0xee,0x00,0x07,0x64,0x54,0x00,0x07,0x64,0x9a,0x00,0x07,0x65,0x00,0x00,0x07,0x65,0x9a,0x00,0x07,0x66,0x2e,0x00,0x07,0x66,0xbe,0x00,0x07,0x67,0x50,0x00,0x07,0x68,0x5e,0x00,0x07,0x69,0x64,0x00,0x07,0x69,0xfe,0x00,0x07,0x6a,0x9e, -0x00,0x07,0x6b,0x7c,0x00,0x07,0x6c,0x60,0x00,0x07,0x6c,0xfa,0x00,0x07,0x6d,0x90,0x00,0x07,0x6d,0xf0,0x00,0x07,0x6e,0x50,0x00,0x07,0x6f,0x04,0x00,0x07,0x6f,0xb4,0x00,0x07,0x70,0x26,0x00,0x07,0x70,0x94,0x00,0x07,0x71,0x10,0x00,0x07,0x71,0x88,0x00,0x07,0x72,0x04,0x00,0x07,0x72,0x88,0x00,0x07,0x73,0x5a,0x00,0x07,0x74,0x24, -0x00,0x07,0x74,0xc4,0x00,0x07,0x76,0x6c,0x00,0x07,0x76,0xaa,0x00,0x07,0x76,0xec,0x00,0x07,0x77,0x6e,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x54,0x00,0x07,0x79,0x28,0x00,0x07,0x79,0xb4,0x00,0x07,0x7b,0x6e,0x00,0x07,0x7d,0x2a,0x00,0x07,0x7d,0x4e,0x00,0x07,0x7d,0x78,0x00,0x07,0x7e,0x02,0x00,0x07,0x7e,0x74, -0x00,0x07,0x7e,0xf6,0x00,0x07,0x7f,0xaa,0x00,0x07,0x80,0x04,0x00,0x07,0x80,0x8e,0x00,0x07,0x81,0x4c,0x00,0x07,0x81,0x92,0x00,0x07,0x82,0x84,0x00,0x07,0x83,0x42,0x00,0x07,0x83,0xba,0x00,0x07,0x83,0xca,0x00,0x07,0x85,0x86,0x00,0x07,0x87,0x42,0x00,0x07,0x89,0x66,0x00,0x07,0x8b,0x76,0x00,0x07,0x8d,0x72,0x00,0x07,0x8f,0x3e, -0x00,0x07,0x91,0x0c,0x00,0x07,0x92,0xda,0x00,0x07,0x94,0xf4,0x00,0x07,0x95,0xc6,0x00,0x07,0x96,0x1e,0x00,0x07,0x96,0x9a,0x00,0x07,0x97,0x08,0x00,0x07,0x97,0x92,0x00,0x07,0x98,0x28,0x00,0x07,0x98,0xa0,0x00,0x07,0x99,0x3a,0x00,0x07,0x99,0xbc,0x00,0x07,0x9a,0x10,0x00,0x07,0x9a,0x86,0x00,0x07,0x9a,0xea,0x00,0x07,0x9b,0x5c, -0x00,0x07,0x9b,0xe8,0x00,0x07,0x9c,0x5c,0x00,0x07,0x9d,0x06,0x00,0x07,0x9d,0xa6,0x00,0x07,0x9e,0x32,0x00,0x07,0x9e,0xc2,0x00,0x07,0x9f,0x78,0x00,0x07,0xa0,0x2a,0x00,0x07,0xa0,0x76,0x00,0x07,0xa0,0xd6,0x00,0x07,0xa1,0x3e,0x00,0x07,0xa1,0xc0,0x00,0x07,0xa2,0x4a,0x00,0x07,0xa2,0xa0,0x00,0x07,0xa3,0x22,0x00,0x07,0xa3,0x74, -0x00,0x07,0xa3,0xc6,0x00,0x07,0xa4,0x38,0x00,0x07,0xa4,0x8c,0x00,0x07,0xa4,0xf4,0x00,0x07,0xa5,0x6a,0x00,0x07,0xa5,0xec,0x00,0x07,0xa6,0x52,0x00,0x07,0xa6,0xba,0x00,0x07,0xa7,0x56,0x00,0x07,0xa7,0xda,0x00,0x07,0xa8,0x28,0x00,0x07,0xa8,0x88,0x00,0x07,0xa8,0xe4,0x00,0x07,0xa9,0x52,0x00,0x07,0xa9,0xc6,0x00,0x07,0xaa,0x58, -0x00,0x07,0xaa,0xd2,0x00,0x07,0xab,0x8a,0x00,0x07,0xac,0x18,0x00,0x07,0xac,0xb4,0x00,0x07,0xac,0xd4,0x00,0x07,0xad,0x2a,0x00,0x07,0xad,0x86,0x00,0x07,0xae,0x14,0x00,0x07,0xae,0xb8,0x00,0x07,0xaf,0x1c,0x00,0x07,0xaf,0x94,0x00,0x07,0xb0,0x46,0x00,0x07,0xb0,0xfe,0x00,0x07,0xb1,0x7a,0x00,0x07,0xb2,0x3c,0x00,0x07,0xb3,0x16, -0x00,0x07,0xb3,0x82,0x00,0x07,0xb3,0xe8,0x00,0x07,0xb4,0x6c,0x00,0x07,0xb4,0xe4,0x00,0x07,0xb5,0x82,0x00,0x07,0xb6,0x42,0x00,0x07,0xb6,0x9e,0x00,0x07,0xb7,0x24,0x00,0x07,0xb7,0x90,0x00,0x07,0xb7,0xec,0x00,0x07,0xb8,0x58,0x00,0x07,0xb8,0xc0,0x00,0x07,0xb9,0x36,0x00,0x07,0xb9,0xe2,0x00,0x07,0xba,0x94,0x00,0x07,0xbb,0x66, -0x00,0x07,0xbb,0xe4,0x00,0x07,0xbc,0x58,0x00,0x07,0xbc,0xf0,0x00,0x07,0xbd,0x82,0x00,0x07,0xbd,0xda,0x00,0x07,0xbe,0x4a,0x00,0x07,0xbe,0xb4,0x00,0x07,0xbf,0x42,0x00,0x07,0xbf,0xfe,0x00,0x07,0xc0,0xda,0x00,0x07,0xc1,0x94,0x00,0x07,0xc2,0x2c,0x00,0x07,0xc2,0xc2,0x00,0x07,0xc3,0xa0,0x00,0x07,0xc3,0xfc,0x00,0x07,0xc4,0x9e, -0x00,0x07,0xc5,0x6c,0x00,0x07,0xc6,0x12,0x00,0x07,0xc6,0xdc,0x00,0x07,0xc7,0xda,0x00,0x07,0xc8,0x72,0x00,0x07,0xc9,0x3c,0x00,0x07,0xca,0x16,0x00,0x07,0xca,0xdc,0x00,0x07,0xcb,0x46,0x00,0x07,0xcb,0xe6,0x00,0x07,0xcc,0x7a,0x00,0x07,0xcd,0x7e,0x00,0x07,0xce,0x68,0x00,0x07,0xcf,0x88,0x00,0x07,0xd0,0xa2,0x00,0x07,0xd1,0x60, -0x00,0x07,0xd2,0xaa,0x00,0x07,0xd3,0x64,0x00,0x07,0xd3,0xc0,0x00,0x07,0xd4,0x26,0x00,0x07,0xd4,0x98,0x00,0x07,0xd5,0x2c,0x00,0x07,0xd5,0xa2,0x00,0x07,0xd5,0xfc,0x00,0x07,0xd6,0x86,0x00,0x07,0xd7,0x0c,0x00,0x07,0xd7,0x5c,0x00,0x07,0xd7,0xd2,0x00,0x07,0xd8,0x2a,0x00,0x07,0xd8,0x82,0x00,0x07,0xd8,0xc0,0x00,0x07,0xd9,0x28, -0x00,0x07,0xd9,0x90,0x00,0x07,0xda,0x26,0x00,0x07,0xda,0xce,0x00,0x07,0xdb,0x60,0x00,0x07,0xdb,0xd4,0x00,0x07,0xdc,0x7e,0x00,0x07,0xdc,0xd8,0x00,0x07,0xdd,0x08,0x00,0x07,0xdd,0x6e,0x00,0x07,0xdd,0xb0,0x00,0x07,0xdd,0xe0,0x00,0x07,0xde,0x3e,0x00,0x07,0xde,0x9e,0x00,0x07,0xde,0xc8,0x00,0x07,0xdf,0x64,0x00,0x07,0xdf,0xfc, -0x00,0x07,0xe0,0x58,0x00,0x07,0xe0,0xde,0x00,0x07,0xe1,0xc6,0x00,0x07,0xe2,0x54,0x00,0x07,0xe3,0x04,0x00,0x07,0xe3,0xfa,0x00,0x07,0xe4,0xa4,0x00,0x07,0xe5,0x5a,0x00,0x07,0xe6,0x1a,0x00,0x07,0xe6,0xd4,0x00,0x07,0xe7,0x38,0x00,0x07,0xe7,0xc6,0x00,0x07,0xe8,0x7e,0x00,0x07,0xe9,0x66,0x00,0x07,0xe9,0xde,0x00,0x07,0xea,0x7a, -0x00,0x07,0xeb,0x32,0x00,0x07,0xeb,0xe6,0x00,0x07,0xec,0x7e,0x00,0x07,0xed,0x20,0x00,0x07,0xed,0x76,0x00,0x07,0xed,0xc0,0x00,0x07,0xee,0x3a,0x00,0x07,0xee,0xac,0x00,0x07,0xef,0x1c,0x00,0x07,0xef,0xae,0x00,0x07,0xf0,0x44,0x00,0x07,0xf0,0xd6,0x00,0x07,0xf1,0x14,0x00,0x07,0xf1,0x86,0x00,0x07,0xf1,0xf0,0x00,0x07,0xf2,0xa0, -0x00,0x07,0xf2,0xb8,0x00,0x07,0xf3,0x82,0x00,0x07,0xf4,0x1e,0x00,0x07,0xf4,0x66,0x00,0x07,0xf4,0xc8,0x00,0x07,0xf5,0x44,0x00,0x07,0xf5,0xc6,0x00,0x07,0xf6,0x78,0x00,0x07,0xf7,0x3c,0x00,0x07,0xf7,0x5c,0x00,0x07,0xf7,0x80,0x00,0x07,0xf7,0xa4,0x00,0x07,0xf7,0xb4,0x00,0x07,0xf7,0xce,0x00,0x07,0xf7,0xde,0x00,0x07,0xf7,0xf6, -0x00,0x07,0xf8,0x0e,0x00,0x07,0xf8,0x26,0x00,0x07,0xf8,0x3e,0x00,0x07,0xf8,0xe2,0x00,0x07,0xf9,0x6e,0x00,0x07,0xf9,0xc0,0x00,0x07,0xfa,0x14,0x00,0x07,0xfa,0x96,0x00,0x07,0xfb,0x18,0x00,0x07,0xfb,0xe0,0x00,0x07,0xfc,0xb4,0x00,0x07,0xfd,0x74,0x00,0x07,0xfe,0x36,0x00,0x07,0xfe,0xd4,0x00,0x07,0xff,0x68,0x00,0x08,0x00,0x3e, -0x00,0x08,0x01,0x08,0x00,0x08,0x01,0x5a,0x00,0x08,0x01,0xf4,0x00,0x08,0x02,0xd2,0x00,0x08,0x03,0xf6,0x00,0x08,0x04,0xd6,0x00,0x08,0x05,0xce,0x00,0x08,0x06,0x6e,0x00,0x08,0x07,0x4e,0x00,0x08,0x07,0xe8,0x00,0x08,0x08,0xaa,0x00,0x08,0x09,0x68,0x00,0x08,0x0a,0x42,0x00,0x08,0x0b,0x0c,0x00,0x08,0x0b,0xf8,0x00,0x08,0x0c,0xa2, -0x00,0x08,0x0d,0x40,0x00,0x08,0x0d,0xda,0x00,0x08,0x0e,0x66,0x00,0x08,0x0f,0x06,0x00,0x08,0x0f,0x92,0x00,0x08,0x10,0x54,0x00,0x08,0x11,0x0c,0x00,0x08,0x11,0x62,0x00,0x08,0x11,0xb4,0x00,0x08,0x12,0x0e,0x00,0x08,0x12,0x62,0x00,0x08,0x13,0x1e,0x00,0x08,0x13,0xc4,0x00,0x08,0x14,0xa6,0x00,0x08,0x15,0x72,0x00,0x08,0x16,0x6a, -0x00,0x08,0x17,0x3c,0x00,0x08,0x17,0xdc,0x00,0x08,0x18,0x98,0x00,0x08,0x19,0x38,0x00,0x08,0x19,0xe8,0x00,0x08,0x1a,0xac,0x00,0x08,0x1b,0x86,0x00,0x08,0x1c,0x62,0x00,0x08,0x1d,0x20,0x00,0x08,0x1e,0x26,0x00,0x08,0x1f,0x12,0x00,0x08,0x1f,0xa2,0x00,0x08,0x20,0x2e,0x00,0x08,0x20,0xda,0x00,0x08,0x21,0x82,0x00,0x08,0x22,0x12, -0x00,0x08,0x22,0xaa,0x00,0x08,0x23,0x94,0x00,0x08,0x24,0x74,0x00,0x08,0x25,0x4c,0x00,0x08,0x26,0x24,0x00,0x08,0x26,0xd4,0x00,0x08,0x27,0x92,0x00,0x08,0x28,0x2e,0x00,0x08,0x28,0xe8,0x00,0x08,0x29,0x40,0x00,0x08,0x29,0x94,0x00,0x08,0x2a,0x4a,0x00,0x08,0x2b,0x04,0x00,0x08,0x2b,0xb2,0x00,0x08,0x2c,0x60,0x00,0x08,0x2d,0x0e, -0x00,0x08,0x2d,0xba,0x00,0x08,0x2e,0x68,0x00,0x08,0x2f,0x2a,0x00,0x08,0x2f,0x8a,0x00,0x08,0x30,0x60,0x00,0x08,0x30,0xfc,0x00,0x08,0x31,0x86,0x00,0x08,0x32,0x52,0x00,0x08,0x33,0x20,0x00,0x08,0x33,0xfa,0x00,0x08,0x34,0x8e,0x00,0x08,0x35,0x2c,0x00,0x08,0x35,0xa0,0x00,0x08,0x36,0x10,0x00,0x08,0x36,0xe6,0x00,0x08,0x37,0xba, -0x00,0x08,0x38,0x80,0x00,0x08,0x38,0xba,0x00,0x08,0x38,0xea,0x00,0x08,0x39,0x7c,0x00,0x08,0x3a,0x06,0x00,0x08,0x3a,0x64,0x00,0x08,0x3a,0xc0,0x00,0x08,0x3b,0x56,0x00,0x08,0x3b,0xd0,0x00,0x08,0x3c,0x20,0x00,0x08,0x3c,0xfa,0x00,0x08,0x3d,0x8c,0x00,0x08,0x3e,0x08,0x00,0x08,0x3e,0xaa,0x00,0x08,0x3f,0x34,0x00,0x08,0x40,0x22, -0x00,0x08,0x41,0x1a,0x00,0x08,0x41,0xe2,0x00,0x08,0x42,0x96,0x00,0x08,0x43,0x7a,0x00,0x08,0x44,0x30,0x00,0x08,0x45,0x20,0x00,0x08,0x45,0xb8,0x00,0x08,0x46,0x96,0x00,0x08,0x47,0x70,0x00,0x08,0x47,0xf4,0x00,0x08,0x48,0x9c,0x00,0x08,0x49,0xa6,0x00,0x08,0x4a,0x40,0x00,0x08,0x4a,0x94,0x00,0x08,0x4b,0x02,0x00,0x08,0x4b,0x9c, -0x00,0x08,0x4b,0xce,0x00,0x08,0x4c,0xa8,0x00,0x08,0x4c,0xd2,0x00,0x08,0x4c,0xfe,0x00,0x08,0x4d,0x36,0x00,0x08,0x4d,0x60,0x00,0x08,0x4d,0x8a,0x00,0x08,0x4d,0xb4,0x00,0x08,0x4d,0xde,0x00,0x08,0x4e,0x0a,0x00,0x08,0x4e,0x36,0x00,0x08,0x4e,0x4e,0x00,0x08,0x4e,0x5e,0x00,0x08,0x4e,0x6e,0x00,0x08,0x4e,0x7e,0x00,0x08,0x4e,0x8e, -0x00,0x08,0x4e,0xa6,0x00,0x08,0x4e,0xc6,0x00,0x08,0x4e,0xd6,0x00,0x08,0x4e,0xe6,0x00,0x08,0x4e,0xf6,0x00,0x08,0x4f,0x06,0x00,0x08,0x4f,0xaa,0x00,0x08,0x50,0x6e,0x00,0x08,0x51,0xc8,0x00,0x08,0x52,0x4e,0x00,0x08,0x52,0xec,0x00,0x08,0x53,0x44,0x00,0x08,0x54,0x5c,0x00,0x08,0x56,0x3a,0x00,0x08,0x56,0x64,0x00,0x08,0x56,0x8e, -0x00,0x08,0x57,0x2e,0x00,0x08,0x57,0xa2,0x00,0x08,0x58,0x2c,0x00,0x08,0x58,0x8a,0x00,0x08,0x59,0x3e,0x00,0x08,0x5a,0x14,0x00,0x08,0x5a,0xaa,0x00,0x08,0x5b,0x62,0x00,0x08,0x5c,0x16,0x00,0x08,0x5c,0xd0,0x00,0x08,0x5d,0xa0,0x00,0x08,0x5e,0x6c,0x00,0x08,0x5f,0x6c,0x00,0x08,0x60,0x3a,0x00,0x08,0x61,0x24,0x00,0x08,0x62,0x40, -0x00,0x08,0x63,0x1e,0x00,0x08,0x63,0xe0,0x00,0x08,0x64,0xc0,0x00,0x08,0x65,0x9c,0x00,0x08,0x66,0x1e,0x00,0x08,0x66,0x8c,0x00,0x08,0x67,0x10,0x00,0x08,0x67,0xac,0x00,0x08,0x68,0x70,0x00,0x08,0x69,0x26,0x00,0x08,0x69,0xfc,0x00,0x08,0x6a,0xd6,0x00,0x08,0x6b,0xc0,0x00,0x08,0x6c,0x5e,0x00,0x08,0x6d,0x12,0x00,0x08,0x6e,0x22, -0x00,0x08,0x6e,0xd8,0x00,0x08,0x6f,0x42,0x00,0x08,0x6f,0xc2,0x00,0x08,0x70,0x9e,0x00,0x08,0x71,0x44,0x00,0x08,0x72,0x00,0x00,0x08,0x72,0xa8,0x00,0x08,0x73,0x58,0x00,0x08,0x74,0x4c,0x00,0x08,0x75,0x34,0x00,0x08,0x75,0x88,0x00,0x08,0x76,0x2c,0x00,0x08,0x76,0x80,0x00,0x08,0x77,0x1a,0x00,0x08,0x78,0x46,0x00,0x08,0x78,0xe0, -0x00,0x08,0x78,0xfa,0x00,0x08,0x79,0x20,0x00,0x08,0x79,0xa8,0x00,0x08,0x79,0xc2,0x00,0x08,0x79,0xe8,0x00,0x08,0x7a,0x70,0x00,0x08,0x7a,0x9e,0x00,0x08,0x7b,0xb2,0x00,0x08,0x7b,0xe0,0x00,0x08,0x7c,0x7a,0x00,0x08,0x7c,0xe2,0x00,0x08,0x7d,0x08,0x00,0x08,0x7d,0x2e,0x00,0x08,0x7d,0x52,0x00,0x08,0x7d,0x78,0x00,0x08,0x7d,0x9c, -0x00,0x08,0x7d,0xc2,0x00,0x08,0x7d,0xfe,0x00,0x08,0x7e,0x46,0x00,0x08,0x7e,0x78,0x00,0x08,0x7f,0x14,0x00,0x08,0x7f,0xfc,0x00,0x08,0x80,0x22,0x00,0x08,0x80,0x48,0x00,0x08,0x80,0x78,0x00,0x08,0x80,0xa6,0x00,0x08,0x80,0xb6,0x00,0x08,0x80,0xc6,0x00,0x08,0x81,0x14,0x00,0x08,0x81,0xa4,0x00,0x08,0x82,0x1e,0x00,0x08,0x82,0x7e, -0x00,0x08,0x83,0x0e,0x00,0x08,0x83,0x9e,0x00,0x08,0x84,0x46,0x00,0x08,0x84,0xa4,0x00,0x08,0x84,0xf2,0x00,0x08,0x85,0x7c,0x00,0x08,0x85,0xfe,0x00,0x08,0x86,0x6c,0x00,0x08,0x86,0xe0,0x00,0x08,0x87,0x28,0x00,0x08,0x87,0x6a,0x00,0x08,0x87,0xbc,0x00,0x08,0x88,0x06,0x00,0x08,0x88,0xa8,0x00,0x08,0x88,0xd4,0x00,0x08,0x89,0x12, -0x00,0x08,0x89,0x84,0x00,0x08,0x89,0xf6,0x00,0x08,0x8a,0x7e,0x00,0x08,0x8b,0x08,0x00,0x08,0x8b,0x90,0x00,0x08,0x8c,0x38,0x00,0x08,0x8c,0xa4,0x00,0x08,0x8d,0x54,0x00,0x08,0x8d,0x84,0x00,0x08,0x8d,0xd4,0x00,0x08,0x8e,0x04,0x00,0x08,0x8e,0xd0,0x00,0x08,0x8f,0x2e,0x00,0x08,0x8f,0x7a,0x00,0x08,0x8f,0xba,0x00,0x08,0x8f,0xd8, -0x00,0x08,0x90,0x28,0x00,0x08,0x90,0x56,0x00,0x08,0x90,0x86,0x00,0x08,0x90,0xc0,0x00,0x08,0x91,0x4a,0x00,0x08,0x91,0x66,0x00,0x08,0x91,0x82,0x00,0x08,0x91,0xe2,0x00,0x08,0x92,0x10,0x00,0x08,0x92,0x66,0x00,0x08,0x92,0xb4,0x00,0x08,0x92,0xfe,0x00,0x08,0x93,0x52,0x00,0x08,0x93,0x98,0x00,0x08,0x94,0x1e,0x00,0x08,0x94,0x94, -0x00,0x08,0x94,0xe0,0x00,0x08,0x95,0x2e,0x00,0x08,0x95,0x7c,0x00,0x08,0x95,0xca,0x00,0x08,0x96,0x18,0x00,0x08,0x96,0x66,0x00,0x08,0x96,0xb4,0x00,0x08,0x97,0x02,0x00,0x08,0x97,0x50,0x00,0x08,0x97,0x9e,0x00,0x08,0x97,0xc0,0x00,0x08,0x97,0xe6,0x00,0x08,0x98,0x0c,0x00,0x08,0x98,0x32,0x00,0x08,0x98,0x52,0x00,0x08,0x99,0x8c, -0x00,0x08,0x9a,0x5c,0x00,0x08,0x9b,0x26,0x00,0x08,0x9c,0xa0,0x00,0x08,0x9d,0x40,0x00,0x08,0x9d,0xa4,0x00,0x08,0x9d,0xbc,0x00,0x08,0x9d,0xd4,0x00,0x08,0x9e,0xa8,0x00,0x08,0x9f,0x86,0x00,0x08,0x9f,0xf0,0x00,0x08,0xa0,0x76,0x00,0x08,0xa1,0x46,0x00,0x08,0xa2,0x16,0x00,0x08,0xa2,0xd6,0x00,0x08,0xa3,0x98,0x00,0x08,0xa4,0x34, -0x00,0x08,0xa4,0xd0,0x00,0x08,0xa4,0xe0,0x00,0x08,0xa5,0xa4,0x00,0x08,0xa6,0x5c,0x00,0x08,0xa6,0xb8,0x00,0x08,0xa6,0xec,0x00,0x08,0xa7,0x0e,0x00,0x08,0xa7,0xec,0x00,0x08,0xa8,0xee,0x00,0x08,0xa9,0x9a,0x00,0x08,0xaa,0x4c,0x00,0x08,0xaa,0xfc,0x00,0x08,0xab,0x0c,0x00,0x08,0xac,0x2e,0x00,0x08,0xac,0xda,0x00,0x08,0xac,0xfa, -0x00,0x08,0xad,0x92,0x00,0x08,0xae,0x8a,0x00,0x08,0xaf,0x44,0x00,0x08,0xb0,0x2e,0x00,0x08,0xb0,0xd0,0x00,0x08,0xb1,0x98,0x00,0x08,0xb2,0x50,0x00,0x08,0xb3,0x2c,0x00,0x08,0xb4,0x50,0x00,0x08,0xb5,0x4c,0x00,0x08,0xb6,0x22,0x00,0x08,0xb7,0x38,0x00,0x08,0xb7,0x90,0x00,0x08,0xb8,0x46,0x00,0x08,0xb8,0x8c,0x00,0x08,0xb9,0x06, -0x00,0x08,0xb9,0xbe,0x00,0x08,0xba,0x9e,0x00,0x08,0xbb,0x02,0x00,0x08,0xbb,0xb0,0x00,0x08,0xbb,0xc0,0x00,0x08,0xbc,0x18,0x00,0x08,0xbc,0xa0,0x00,0x08,0xbd,0x70,0x00,0x08,0xbe,0x40,0x00,0x08,0xbe,0xc0,0x00,0x08,0xbe,0xd0,0x00,0x08,0xbf,0xb4,0x00,0x08,0xc0,0x46,0x00,0x08,0xc1,0x26,0x00,0x08,0xc1,0x9a,0x00,0x08,0xc2,0x7e, -0x00,0x08,0xc3,0x1a,0x00,0x08,0xc3,0x82,0x00,0x08,0xc3,0xfe,0x00,0x08,0xc4,0x74,0x00,0x08,0xc5,0x16,0x00,0x08,0xc5,0xc2,0x00,0x08,0xc6,0x46,0x00,0x08,0xc6,0xd8,0x00,0x08,0xc6,0xe8,0x00,0x08,0xc6,0xfa,0x00,0x08,0xc7,0x0c,0x00,0x08,0xc7,0x1e,0x00,0x08,0xc7,0x30,0x00,0x08,0xc7,0x42,0x00,0x08,0xc7,0x54,0x00,0x08,0xc7,0x66, -0x00,0x08,0xc7,0x78,0x00,0x08,0xc7,0x8a,0x00,0x08,0xc7,0x9c,0x00,0x08,0xc7,0xac,0x00,0x08,0xc7,0xbe,0x00,0x08,0xc7,0xd0,0x00,0x08,0xc7,0xe0,0x00,0x08,0xc7,0xf2,0x00,0x08,0xc8,0x04,0x00,0x08,0xc8,0x16,0x00,0x08,0xc8,0x2e,0x00,0x08,0xc8,0x46,0x00,0x08,0xc8,0x5e,0x00,0x08,0xc8,0x74,0x00,0x08,0xc8,0x8a,0x00,0x08,0xca,0x64, -0x00,0x08,0xd0,0x7e,0x00,0x08,0xd2,0xb4,0x00,0x08,0xd9,0xd8,0x00,0x08,0xd9,0xea,0x00,0x08,0xda,0x02,0x00,0x08,0xda,0x14,0x00,0x08,0xda,0x64,0x00,0x08,0xda,0x74,0x00,0x08,0xda,0x86,0x00,0x08,0xda,0x9e,0x00,0x08,0xda,0xb0,0x00,0x08,0xda,0xc8,0x00,0x08,0xda,0xd8,0x00,0x08,0xda,0xee,0x00,0x08,0xdb,0x00,0x00,0x08,0xdb,0x18, -0x00,0x08,0xdb,0x2a,0x00,0x08,0xdb,0x42,0x00,0x08,0xdb,0x76,0x00,0x08,0xdb,0xe0,0x00,0x08,0xdc,0x00,0x00,0x08,0xdc,0x20,0x00,0x08,0xdc,0x40,0x00,0x08,0xdc,0x60,0x00,0x08,0xdc,0x72,0x00,0x08,0xdc,0x8a,0x00,0x08,0xdc,0xa2,0x00,0x08,0xdc,0xba,0x00,0x08,0xdc,0xd2,0x00,0x08,0xdc,0xea,0x00,0x08,0xdd,0x02,0x00,0x08,0xdd,0x1a, -0x00,0x08,0xdd,0x32,0x00,0x08,0xdd,0x4a,0x00,0x08,0xdd,0x62,0x00,0x08,0xdd,0xf4,0x00,0x08,0xde,0x98,0x00,0x08,0xde,0xb8,0x00,0x08,0xde,0xd8,0x00,0x08,0xdf,0x32,0x00,0x08,0xdf,0x5a,0x00,0x08,0xdf,0x6a,0x00,0x08,0xdf,0x82,0x00,0x08,0xdf,0x9a,0x00,0x08,0xdf,0xfe,0x00,0x08,0xe0,0x68,0x00,0x08,0xe1,0x3a,0x00,0x08,0xe1,0xe8, -0x00,0x08,0xe2,0x86,0x00,0x08,0xe3,0x22,0x00,0x08,0xe3,0x3a,0x00,0x08,0xe3,0x52,0x00,0x08,0xe3,0x62,0x00,0x08,0xe3,0x72,0x00,0x08,0xe4,0x36,0x00,0x08,0xe4,0xe0,0x00,0x08,0xe4,0xf0,0x00,0x08,0xe5,0x00,0x00,0x08,0xe6,0x9c,0x00,0x08,0xe6,0xc6,0x00,0x08,0xe7,0x9c,0x00,0x08,0xe8,0x80,0x00,0x08,0xe8,0xd2,0x00,0x08,0xe8,0xe4, -0x00,0x08,0xe9,0x06,0x00,0x08,0xe9,0x18,0x00,0x08,0xe9,0x6c,0x00,0x08,0xe9,0x7e,0x00,0x08,0xea,0x14,0x00,0x08,0xea,0x26,0x00,0x08,0xea,0xde,0x00,0x08,0xeb,0x30,0x00,0x08,0xeb,0x96,0x00,0x08,0xeb,0xea,0x00,0x08,0xec,0x50,0x00,0x08,0xec,0xa2,0x00,0x08,0xed,0x08,0x00,0x08,0xed,0x5a,0x00,0x08,0xed,0xc0,0x00,0x08,0xed,0xd0, -0x00,0x08,0xee,0x14,0x00,0x08,0xee,0xbe,0x00,0x08,0xee,0xce,0x00,0x08,0xef,0x72,0x00,0x08,0xef,0x82,0x00,0x08,0xf0,0x60,0x00,0x08,0xf0,0x70,0x00,0x08,0xf0,0xe0,0x00,0x08,0xf1,0x84,0x00,0x08,0xf2,0x52,0x00,0x08,0xf3,0x0a,0x00,0x08,0xf3,0xa2,0x00,0x08,0xf4,0x72,0x00,0x08,0xf4,0xb6,0x00,0x08,0xf5,0x92,0x00,0x08,0xf6,0xe4, -0x00,0x08,0xf8,0x9a,0x00,0x08,0xf9,0xc2,0x00,0x08,0xfb,0x6a,0x00,0x08,0xfb,0x82,0x00,0x08,0xfb,0x9a,0x00,0x08,0xfb,0xba,0x00,0x08,0xfb,0xda,0x00,0x08,0xfb,0xf2,0x00,0x08,0xfc,0x0a,0x00,0x08,0xfc,0x2a,0x00,0x08,0xfc,0x3a,0x00,0x08,0xfc,0x4a,0x00,0x08,0xfc,0x5a,0x00,0x08,0xfd,0xb0,0x00,0x08,0xfe,0x98,0x00,0x08,0xff,0x4a, -0x00,0x09,0x00,0x2a,0x00,0x09,0x00,0xb8,0x00,0x09,0x00,0xca,0x00,0x09,0x02,0x4a,0x00,0x09,0x04,0x28,0x00,0x09,0x05,0xf4,0x00,0x09,0x07,0x6a,0x00,0x09,0x08,0x98,0x00,0x09,0x0a,0x78,0x00,0x09,0x0b,0x12,0x00,0x09,0x0b,0xd4,0x00,0x09,0x0c,0x8e,0x00,0x09,0x0c,0xa0,0x00,0x09,0x0c,0xbc,0x00,0x09,0x0c,0xd4,0x00,0x09,0x0c,0xec, -0x00,0x09,0x0d,0x04,0x00,0x09,0x0d,0x1c,0x00,0x09,0x0d,0x34,0x00,0x09,0x0d,0x54,0x00,0x09,0x0d,0x74,0x00,0x09,0x0d,0x94,0x00,0x09,0x0d,0xb4,0x00,0x09,0x0d,0xd4,0x00,0x09,0x0d,0xf4,0x00,0x09,0x0e,0x0c,0x00,0x09,0x0f,0x08,0x00,0x09,0x0f,0xe2,0x00,0x09,0x10,0x80,0x00,0x09,0x10,0x98,0x00,0x09,0x10,0xb8,0x00,0x09,0x10,0xd8, -0x00,0x09,0x10,0xf8,0x00,0x09,0x11,0x08,0x00,0x09,0x11,0x20,0x00,0x09,0x11,0x38,0x00,0x09,0x11,0x48,0x00,0x09,0x11,0x60,0x00,0x09,0x11,0x78,0x00,0x09,0x11,0x88,0x00,0x09,0x11,0xd2,0x00,0x09,0x12,0x0c,0x00,0x09,0x12,0x4e,0x00,0x09,0x13,0x00,0x00,0x09,0x13,0x92,0x00,0x09,0x14,0x14,0x00,0x09,0x14,0x5e,0x00,0x09,0x14,0xb0, -0x00,0x09,0x15,0x02,0x00,0x09,0x15,0x9a,0x00,0x09,0x16,0x2a,0x00,0x09,0x16,0xd4,0x00,0x09,0x17,0x66,0x00,0x09,0x17,0xea,0x00,0x09,0x18,0x2e,0x00,0x09,0x1a,0x76,0x00,0x09,0x1c,0x24,0x00,0x09,0x1c,0x68,0x00,0x09,0x1c,0x98,0x00,0x09,0x1c,0xc8,0x00,0x09,0x1c,0xd8,0x00,0x09,0x1c,0xe8,0x00,0x09,0x1d,0x32,0x00,0x09,0x1d,0x6e, -0x00,0x09,0x1d,0xb2,0x00,0x09,0x1e,0x72,0x00,0x09,0x1f,0x06,0x00,0x09,0x1f,0x86,0x00,0x09,0x1f,0xd4,0x00,0x09,0x20,0x2e,0x00,0x09,0x20,0x8a,0x00,0x09,0x21,0x32,0x00,0x09,0x21,0xd2,0x00,0x09,0x22,0x8a,0x00,0x09,0x23,0x1c,0x00,0x09,0x23,0xa4,0x00,0x09,0x23,0xee,0x00,0x09,0x24,0x06,0x00,0x09,0x24,0x26,0x00,0x09,0x24,0xbe, -0x00,0x09,0x25,0x8e,0x00,0x09,0x26,0x66,0x00,0x09,0x27,0x7e,0x00,0x09,0x28,0x24,0x00,0x09,0x28,0xf6,0x00,0x09,0x29,0xdc,0x00,0x09,0x2a,0xa8,0x00,0x09,0x2b,0x2a,0x00,0x09,0x2b,0xe8,0x00,0x09,0x2d,0x1c,0x00,0x09,0x2d,0xde,0x00,0x09,0x2e,0xbc,0x00,0x09,0x2f,0x8a,0x00,0x09,0x30,0x5a,0x00,0x09,0x31,0x46,0x00,0x09,0x32,0x6a, -0x00,0x09,0x32,0xf4,0x00,0x09,0x34,0x44,0x00,0x09,0x35,0x52,0x00,0x09,0x36,0x94,0x00,0x09,0x37,0x42,0x00,0x09,0x38,0x46,0x00,0x09,0x39,0x0a,0x00,0x09,0x3a,0x26,0x00,0x09,0x3a,0xf8,0x00,0x09,0x3b,0xcc,0x00,0x09,0x3c,0x52,0x00,0x09,0x3d,0x76,0x00,0x09,0x3e,0x9e,0x00,0x09,0x3f,0x20,0x00,0x09,0x40,0x62,0x00,0x09,0x41,0x64, -0x00,0x09,0x42,0x74,0x00,0x09,0x43,0x46,0x00,0x09,0x44,0x02,0x00,0x09,0x44,0xe6,0x00,0x09,0x45,0xdc,0x00,0x09,0x46,0xa4,0x00,0x09,0x47,0x60,0x00,0x09,0x48,0x26,0x00,0x09,0x48,0xfe,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x4a,0x4a,0x00,0x09,0x4b,0x1e,0x00,0x09,0x4b,0xac,0x00,0x09,0x4b,0xfc, -0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x07,0x01,0x03,0x04,0x00,0x03,0x05,0x05,0x09,0x04,0x00,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x00,0x2f,0xcd,0x3f,0xcd,0x31,0x30,0x33,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0xa6,0x03,0xde,0xfc,0xb6,0x02,0xb6,0xfd,0x4a,0x05,0x76,0xfa,0x8a,0x94, -0x04,0x4e,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x0f,0x00,0x3f,0x40,0x20,0x03,0x03,0x02,0x0a,0x40,0x04,0x0a,0xb0,0x5b,0x04,0x13,0x01,0x02,0x00,0x7d,0x1f,0x03,0x2f,0x03,0x02,0x03,0x0d,0xaf,0x7f,0x07,0x01,0x10,0x07,0x20,0x07,0x02,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0x2f,0x2b,0x72,0x5d, -0xe1,0xd4,0x72,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x05,0x9a,0xfb,0xfa,0x04,0x06,0xfa,0x54,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02, -0x00,0xa3,0x03,0xdb,0x02,0x80,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x0f,0x04,0x1f,0x04,0x2f,0x04,0xbf,0x04,0xcf,0x04,0x05,0x04,0x04,0x09,0x03,0x06,0x02,0x07,0x03,0x03,0x00,0x3f,0x33,0xcd,0x32,0x01,0x2f,0x12,0x39,0x2f,0x5d,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x34,0x91,0x01,0xdd,0x91,0x05, -0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x21,0x00,0x7b,0x04,0x8e,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0xbf,0x40,0x6b,0x0f,0x17,0x01,0x00,0x06,0x01,0x10,0x06,0x1b,0x02,0x03,0x06,0x07,0x1a,0x07,0x18,0x1c,0x1f,0x09,0x08,0x19,0x08,0x17,0x1d,0x1e,0x0a,0x0b,0x16,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c, -0x09,0x0d,0x10,0x1f,0x04,0x06,0x03,0x06,0x03,0xe2,0x59,0x11,0x14,0x17,0x1d,0x04,0x02,0x1b,0x1b,0x02,0xe2,0x59,0x1b,0x06,0x1b,0x06,0x1a,0x0b,0x00,0x07,0x10,0x07,0x02,0x09,0x07,0x07,0x21,0x16,0x1a,0x03,0x04,0x00,0x00,0x19,0x1a,0x0e,0x07,0x0f,0x08,0x01,0x0c,0x03,0x08,0x08,0x21,0x0c,0x0c,0x16,0x42,0x12,0x0e,0x0e,0x15,0x16, -0x0b,0x60,0x0c,0x70,0x0c,0x02,0x0c,0x2f,0x5d,0x33,0xcd,0x32,0x33,0x2f,0xc6,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0xe1,0x32,0x32,0x2f,0xc6,0x00,0x3f,0xc4,0x12,0x39,0x2f,0x5e,0x5d,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, -0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x07,0x21,0x03,0x21,0x07,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x21,0x37,0x21,0x13,0x21,0x37,0x21,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x03,0x33,0x04,0x8e,0x17,0xfe,0xfb,0x3f,0x01, -0x19,0x1b,0xfe,0xed,0x58,0x7e,0x56,0xfa,0x54,0x7d,0x54,0xfe,0xfa,0x14,0x01,0x09,0x3d,0xfe,0xeb,0x15,0x01,0x15,0x54,0x7e,0x54,0xfc,0x56,0x7b,0x54,0x91,0xfc,0x42,0xfe,0x04,0x08,0x6a,0xfe,0xd4,0x6a,0xfe,0x73,0x01,0x8d,0xfe,0x73,0x01,0x8d,0x6a,0x01,0x2c,0x6a,0x01,0x92,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x6a,0xfe,0xd4,0x00,0x03, -0x00,0xa2,0xff,0x2f,0x03,0xd1,0x06,0x50,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0xc1,0x40,0x1b,0x09,0x26,0x01,0x06,0x1f,0x01,0x0a,0x1d,0x01,0x05,0x15,0x01,0x03,0x00,0x0e,0x01,0x0f,0x05,0x01,0x10,0x05,0x2a,0x20,0x0c,0x00,0x4d,0x25,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xd0,0x40,0x56,0x0c,0x00,0x4d,0x05,0x30,0x0c, -0x00,0x4d,0x1f,0x19,0x09,0x26,0x0a,0x03,0x13,0x16,0x16,0x20,0x18,0x13,0x18,0x9a,0x59,0x10,0x12,0x40,0x13,0x06,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x09,0x03,0x06,0x06,0x27,0x09,0x03,0x09,0x9a,0x59,0x00,0x02,0x03,0x18,0x09,0x10,0x13,0x19,0x1f,0x27,0x06,0x01,0x8c,0x02,0x02,0x1c,0x0d,0x16,0x40,0x0c,0x11,0x00,0x4c,0x16,0x16, -0x1c,0x89,0x7f,0x29,0x01,0x2f,0x29,0x01,0x29,0x05,0x23,0x89,0x20,0x0d,0x01,0x0d,0x2f,0x5d,0xe1,0xc4,0xd4,0x5d,0x5d,0xf1,0xc0,0x2f,0x2b,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x1a,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x11,0x12,0x39,0x39,0x12, -0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x35,0x22,0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x68,0x68,0xd5, -0x85,0x3a,0xc9,0x57,0xdc,0x82,0xc6,0x98,0x68,0xc4,0x4b,0x66,0xa9,0xd0,0x99,0xbf,0xfe,0xee,0x54,0x62,0x50,0xce,0xc1,0x08,0xd9,0xd1,0x56,0xae,0x33,0x45,0x02,0x00,0x6a,0xb3,0x7a,0x91,0xd3,0x15,0xb4,0xb0,0x06,0x32,0xaa,0x50,0x06,0xfd,0xf0,0x63,0xb9,0x76,0x8e,0xc1,0x03,0x19,0x01,0xd2,0x11,0x73,0x52,0x56,0x6e,0xfe,0xe4,0xfe, -0x3c,0x2a,0xa6,0x8a,0x00,0x05,0x00,0x50,0xff,0xea,0x06,0x40,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0xaf,0x40,0x32,0x19,0x18,0x03,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x3f,0x18,0x4f,0x18,0x02, -0x1a,0x18,0x1a,0x18,0x25,0x03,0x1f,0xbd,0x2b,0x0c,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf9,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xbd,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x18,0x0c,0x06,0x4d,0x25,0x09,0x0b,0x06,0x4d,0x25,0x25,0x35,0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15, -0x0f,0xbd,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18, -0x10,0xe4,0x2b,0x00,0x18,0x3f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, -0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x57,0xfc,0x68,0x8f,0x03,0x97,0x26,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac,0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50, -0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0x00,0x03,0x00,0x77,0xff,0xe9,0x06,0x3e,0x05,0xb2,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0xd7,0x40,0x1c,0x58,0x4f,0x01,0x5c,0x4c,0x01,0x03,0x59,0x4b,0x01,0x5d,0x4a,0x01,0x50,0x37,0x01,0x52,0x36,0x01,0x5b,0x0d,0x01,0x4a,0x40,0x0b,0x00, -0x4d,0x51,0xb8,0xff,0xe8,0x40,0x0c,0x0b,0x00,0x4d,0x1d,0x4d,0x01,0x02,0x1f,0x01,0x0b,0x04,0x10,0xb8,0xff,0xe0,0x40,0x5c,0x0b,0x00,0x4d,0x05,0x49,0x4e,0x12,0x04,0x0a,0x2f,0x38,0x29,0x24,0x65,0x2f,0x05,0x1c,0x44,0x1c,0x5d,0x96,0x59,0x1c,0x04,0x0a,0x44,0x95,0x59,0x0a,0x13,0x00,0x3d,0xec,0x59,0x00,0x13,0x3a,0x49,0x01,0x38, -0x05,0x33,0x0f,0x29,0x49,0x2c,0x53,0x12,0x4e,0x65,0x24,0x04,0x21,0x17,0x33,0xef,0x2c,0x21,0xef,0x58,0x60,0xef,0x17,0x17,0x58,0x2c,0x03,0x0f,0x70,0x40,0x01,0x40,0x40,0x69,0x53,0x08,0x0d,0x06,0x4d,0x53,0x08,0x0c,0x06,0x4d,0x53,0x08,0x0b,0x06,0x4d,0x53,0x83,0x0f,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39, -0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x2b,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5f,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x27, -0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x12,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02, -0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0xa5,0x39,0x57,0x4a,0x45,0x26,0x28,0x69,0x80,0x98,0x59,0x6c,0xb4,0x80,0x47,0xae,0x9f,0x1e,0x3c,0x2f,0x1d,0x39,0x64,0x88,0x4f,0x4e,0x81,0x5d,0x34,0x89,0x89,0x45,0x70,0x5f,0x52,0x28,0x51,0x52,0x09,0x08,0x9f,0x08,0x03,0x02,0x26,0x40,0x55,0x2f,0x23, -0x3a,0x3b,0x3f,0x28,0x1e,0x3e,0x21,0x24,0x4f,0xfc,0x93,0x4c,0x80,0x6c,0x58,0x24,0x3d,0x67,0x69,0x77,0x4e,0x3f,0x6a,0x4d,0x2c,0x32,0x57,0x74,0x01,0x3d,0x25,0x39,0x46,0x22,0x62,0x75,0x01,0x19,0x2d,0x3c,0x22,0x7e,0x7c,0x17,0x1f,0x39,0x52,0x34,0x2b,0x50,0x3e,0x25,0x36,0x69,0x9a,0x64,0x99,0xd9,0x45,0x16,0x3b,0x4b,0x5b,0x36, -0x4f,0x7a,0x54,0x2b,0x2b,0x50,0x70,0x45,0x78,0x9f,0x38,0x1b,0x4e,0x60,0x6e,0x3b,0x71,0x01,0x10,0x95,0x26,0x43,0x21,0x21,0x3b,0x29,0x5b,0xb8,0xad,0x9c,0x41,0x30,0x47,0x30,0x17,0x10,0x0c,0x98,0x0e,0x0e,0x8e,0x21,0x37,0x49,0x28,0x5f,0x87,0x62,0x46,0x1e,0x19,0x3d,0x53,0x6e,0x4a,0x44,0x68,0x45,0x23,0x03,0xfd,0x32,0x46,0x2e, -0x15,0x6a,0x5b,0x29,0x48,0x3e,0x30,0x11,0x2c,0x75,0x00,0x01,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a,0x00,0x03,0x00,0x0c,0xb3,0x03,0x02,0x03,0x03,0x00,0x3f,0xcd,0x01,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x34,0x91,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x8c,0xfe,0xba,0x02,0x56,0x05,0x9a,0x00,0x09,0x00,0x41, -0x40,0x2b,0x05,0x10,0x0b,0x01,0x4d,0x01,0x10,0x0b,0x01,0x4d,0x38,0x02,0x01,0x06,0x03,0x00,0x20,0x05,0xea,0x06,0x01,0xea,0x00,0x00,0x0b,0x08,0x08,0x0c,0x06,0x4d,0x08,0x10,0x0b,0x06,0x4d,0x08,0xea,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b, -0x2b,0x01,0x23,0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0x02,0x54,0x92,0xfe,0xca,0x01,0x36,0x94,0xfe,0xc6,0xfe,0xba,0x01,0x62,0x02,0x07,0x02,0x09,0x01,0x6e,0xfe,0x84,0xfe,0x07,0xfe,0x0b,0x00,0x00,0x01,0x00,0x16,0xfe,0xba,0x01,0xe2,0x05,0x9a,0x00,0x09,0x00,0x4a,0xb9,0x00,0x06,0xff,0xf0,0xb3,0x0b,0x01,0x4d,0x00,0xb8,0xff, -0xf0,0x40,0x0b,0x0b,0x01,0x4d,0x37,0x09,0x01,0x06,0x03,0x00,0x20,0x03,0xb8,0xff,0xf0,0xb5,0x0b,0x06,0x4d,0x03,0xea,0x08,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x08,0x08,0x0b,0x01,0x06,0xea,0x05,0x00,0xea,0x01,0x2f,0xe1,0xd6,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b,0x2b,0x13,0x23, -0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0xaa,0x92,0x01,0x38,0xfe,0xc6,0x94,0x01,0x38,0xfe,0xba,0x01,0x76,0x01,0xf5,0x01,0xf9,0x01,0x7c,0xfe,0x92,0xfd,0xf7,0xfd,0xf9,0x00,0x00,0x01,0x00,0x4c,0x02,0xd9,0x03,0x0c,0x05,0x9a,0x00,0x0e,0x00,0x67,0x40,0x31,0x03,0x04,0x01,0x10,0x03,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x00,0x04,0x08, -0x09,0x09,0x08,0x53,0x59,0x0f,0x09,0x01,0x10,0x03,0x09,0x0c,0x03,0x02,0x02,0x00,0x0e,0x0c,0x06,0x06,0x0b,0x08,0x0b,0x08,0x42,0x08,0x04,0x0a,0x0d,0x03,0x01,0x0d,0x0c,0x48,0x0b,0xb8,0xff,0xf8,0xb5,0x0d,0x06,0x4d,0x07,0x0a,0x0b,0x2f,0x33,0x33,0x2b,0xed,0x32,0x32,0x17,0x39,0xc4,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xe4, -0x39,0x2f,0x00,0x3f,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x10,0xd4,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x05,0x17,0x07,0x03,0x03,0x27,0x37,0x25,0x37,0x05,0x03,0x33,0x03,0x25,0x03,0x0c,0xfe,0xee,0xbe,0x6e,0x9c,0x9e,0x6e,0xbe,0xfe,0xec,0x2d,0x01,0x06,0x17,0x8a,0x17,0x01,0x07,0x04,0x50,0x38,0xf3,0x4c,0x01, -0x09,0xfe,0xf7,0x4c,0xf3,0x38,0x7d,0x63,0x01,0x30,0xfe,0xd0,0x63,0x00,0x00,0x01,0x00,0xe8,0x00,0x7f,0x04,0x94,0x04,0x2b,0x00,0x0b,0x00,0x49,0x40,0x21,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x01,0x0d,0x03,0x07,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xbd,0x04,0xb8, -0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x94,0xfe,0x6c,0x85,0xfe,0x6d,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0xfe, -0x6d,0x01,0x93,0x86,0x01,0x93,0xfe,0x6d,0x00,0x01,0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x00,0x03,0x00,0x45,0x40,0x1d,0x39,0x03,0x01,0x39,0x00,0x01,0x02,0x40,0x03,0xb2,0x04,0x00,0x20,0x0c,0x06,0x4d,0x00,0x28,0x0b,0x06,0x4d,0x00,0x80,0x02,0x40,0x11,0x19,0x48,0x02,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xea, -0xb6,0x0b,0x06,0x4d,0x02,0x2f,0x05,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x00,0x10,0xf6,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x5d,0x25,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0xe4,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x00,0x03,0x00,0x1c,0x40,0x10,0x02,0x01,0x53,0x59,0x4f,0x02, -0x01,0x02,0x20,0x00,0x01,0x00,0x20,0x01,0x01,0x01,0x2f,0x5d,0x2f,0x5d,0x00,0x2f,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xb2,0xfd,0xde,0x02,0x22,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x00,0x0b,0x00,0x1c,0x40,0x11,0x00,0x06,0xb0,0x5b,0x00,0x13,0x09,0xaf,0x1f,0x03,0x2f,0x03,0x02,0x03, -0x2f,0x0d,0x01,0x5d,0x2f,0x71,0xe1,0x00,0x3f,0x2b,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x16,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x00,0x01,0xff,0xe4,0xff,0x12,0x03,0x2d,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x77,0x01,0x01,0x00,0x10,0x0b, -0x00,0x4d,0x01,0x00,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30,0x01,0x2b,0x5d,0x01,0x01,0x23,0x01,0x03,0x2d,0xfd,0x50,0x99,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x02,0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x29,0x40,0x15,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x40,0x0a,0x0f,0x13,0x9a, -0x59,0x0f,0x07,0x05,0x17,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a, -0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x01,0x00,0xe4,0x00,0x00,0x02,0xd4,0x05,0xba,0x00,0x0e,0x00,0x1d,0x40,0x0d,0x0d,0x07,0x00,0x8a,0x01,0x08,0x07,0x07,0x01,0x0d, -0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x33,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xd4,0xa4,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2, -0x05,0xb2,0x00,0x2a,0x00,0x3c,0x40,0x1e,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x40,0x21,0x00,0x1d,0x0e,0x20,0x1d,0x99,0x59,0x20,0x18,0x0a,0x0a,0x05,0x0e,0x05,0x9a,0x59,0x0e,0x07,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32, -0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51,0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca, -0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66,0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x72,0x40,0x41, -0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x40,0x0f,0x0f,0x2b,0x08,0x19,0x1a,0x01,0x0f,0x1a,0x01,0x0b,0x03,0x1a,0x1a,0x18,0x1d,0x18,0x9a,0x59,0x24,0x12,0x13,0x13,0x12,0x9a,0x59,0x13,0x13,0x0a,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x09,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05, -0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21, -0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e, -0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08,0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x3e,0x40,0x1e,0x03,0x01,0x05,0x8a,0x06,0x40,0x10,0x0e,0x06,0x06,0x0f,0x17,0x08,0x04,0x08,0x0f,0x08,0x9a, -0x59,0x09,0x01,0x11,0x0e,0x0f,0x0f,0x06,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x12,0x39,0x39,0x11,0x33,0x33,0x1a,0x10,0xfd,0x32,0xc6,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x52,0xb8,0xb8, -0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1,0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x52,0x40,0x2c,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89, -0x40,0x0f,0x0f,0x25,0x08,0x1f,0x12,0x9a,0x59,0x1f,0x1f,0x0a,0x18,0x18,0x1b,0x99,0x59,0x18,0x06,0x12,0x08,0x01,0x00,0x08,0x01,0x0b,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x12,0x39,0x2f,0x1a, -0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97, -0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x12,0x0a,0x00,0x89,0x21,0x21, -0x36,0x2b,0x19,0x89,0x40,0x0a,0x1c,0x26,0x9a,0x59,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x0f,0x14,0x9a,0x59,0x0f,0x07,0x05,0x30,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x11,0x12,0x39,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14, -0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e, -0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37, -0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x12,0x00,0x2d,0xb9,0x00,0x07,0x01,0x86,0x40,0x12,0x40,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x11,0x11,0x10,0x99,0x59,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x2f,0x39,0x1a,0xed,0x31,0x30,0x01, -0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xf2,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x00,0x03,0x00,0x5a,0xff,0xe9, -0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x5b,0x40,0x2f,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x40,0x00,0x15,0x05,0x33,0x3d,0x3d,0x33,0x9a,0x59,0x3d,0x3d,0x29,0x0d,0x1f,0x29,0x99,0x59,0x1f,0x19,0x0d,0x47,0x9a,0x59,0x0d,0x07,0x00,0x3f,0x2b, -0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, -0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c, -0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f, -0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36, -0x2b,0x89,0x40,0x17,0x12,0x30,0x99,0x59,0x0f,0x12,0x12,0x26,0x05,0x1c,0x26,0x9a,0x59,0x1c,0x07,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06, -0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b, -0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49, -0x63,0x00,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x3c,0x40,0x16,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0c,0x12,0xb0,0x5b,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b, -0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42, -0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x02,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x63,0x40,0x16,0x0f,0x0f,0x01,0x0f,0x0c,0x01,0x0c,0x05,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0e,0x40,0x0f,0xb2,0x10,0x09,0xaf,0x03,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xec,0x40,0x11,0x0b, -0x06,0x4d,0x03,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0x28,0x0b,0x06,0x4d,0x0c,0x80,0x0e,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xea,0xb6,0x0b,0x06,0x4d,0x0e,0x2f,0x11,0x01,0x5d,0x2f,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x2f,0x2b,0x2b,0xe1,0x00,0x10,0xf6,0x1a,0xcd,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x13,0x22,0x26, -0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xe2,0x2f,0x41,0x41,0x2f,0x2e,0x42,0x42,0x2c,0xa0,0x75,0x75,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0xac,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c,0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x01,0x01,0x07,0x10,0x0b, -0x00,0x4d,0x02,0x01,0x00,0x00,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x03,0x01,0x03,0x03,0x00,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x01,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x33,0x2f,0x2b,0xc4,0x00,0x2f,0x33,0x2f,0x5d,0x2b,0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15, -0x01,0x15,0x01,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x7f,0x01,0xb0,0x3b,0x01,0xe2,0x96,0xfe,0x9c,0x04,0xfe,0xc6,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e,0x04,0x94,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0f,0x06,0x05,0xbe,0x59,0x06,0x02,0x02,0x01,0xbe,0x59,0x02,0x01,0x00,0x05,0x04,0xb8,0xff,0xe0,0xb4,0x0c, -0x06,0x4d,0x04,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2f,0x2b,0x12,0x39,0x39,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c, -0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x01,0x01,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x06,0x01,0x06,0x06,0x01,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x02,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xc4,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x2f,0x5d,0x2b, -0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x02,0x2f,0xfe,0x50,0x95,0x01,0x38,0x06,0x01,0x64,0x96,0xfe,0x1e,0x00,0x02,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x23,0x00,0x33,0x00,0x46,0x40,0x26,0x00,0x12,0x01,0x10,0x05,0x11,0x0f,0x14, -0x0f,0x95,0x59,0x14,0x04,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x13,0x20,0xef,0x03,0x30,0xaf,0x7f,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x35,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x26,0x26,0x35, -0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x03,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x01,0x4f,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40,0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x65,0x3a,0x34,0x4f,0x5c, -0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x01,0x8e,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0xfe,0x60,0x20,0x20,0x2e,0x2f,0x1f,0x21,0x21,0x1f,0x2f,0x2e,0x20,0x20,0x00, -0x00,0x02,0x00,0xac,0xff,0x44,0x06,0xfc,0x05,0xae,0x00,0x32,0x00,0x3d,0x00,0xb9,0x40,0x10,0x0a,0x27,0x01,0x0a,0x32,0x01,0x03,0x00,0x1b,0x01,0x0f,0x19,0x01,0x10,0x05,0x1e,0xb8,0xff,0xc0,0x40,0x0f,0x0b,0x0c,0x00,0x4c,0x1c,0x40,0x0b,0x00,0x4d,0x18,0x40,0x0c,0x00,0x4d,0x16,0xb8,0xff,0xc0,0x40,0x4b,0x0c,0x00,0x4d,0x04,0x18, -0x0b,0x00,0x4d,0x0d,0x00,0x03,0x09,0x09,0x33,0x4c,0x59,0x09,0x0f,0x31,0x14,0x03,0x39,0x03,0x39,0x4c,0x59,0x0f,0x03,0x0f,0x03,0x25,0x2b,0x2b,0x1a,0x4c,0x59,0x2b,0x04,0x00,0x22,0x10,0x22,0x02,0x0d,0x03,0x22,0x20,0x25,0x20,0x4c,0x59,0x25,0x00,0x0d,0x0f,0x10,0x12,0x05,0x3c,0x3c,0x2e,0x36,0x48,0x06,0x22,0x06,0x22,0x06,0x28, -0x17,0x48,0x2e,0x1d,0x48,0x28,0x2f,0xe1,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x12,0x39,0x2f,0x17,0x33,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x10,0xc4,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b, -0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x00,0x5d,0x01,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x37,0x33,0x02,0x15,0x14,0x33,0x32,0x36,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x37,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x23,0x22,0x03,0x22,0x06,0x15, -0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x8c,0x05,0x49,0xd6,0x89,0xa7,0xe7,0xbc,0x48,0x71,0x10,0x04,0x02,0x08,0x7d,0x2f,0x77,0x6c,0x8f,0xfe,0xa4,0xfe,0xcc,0xfe,0xd7,0xfe,0x7c,0x01,0x71,0x01,0x39,0xf7,0xaf,0xad,0xfe,0xfd,0xfe,0x94,0xfe,0x43,0x01,0xd3,0x01,0x6b,0x01,0x54,0x01,0xbe,0xeb,0xa9,0xdb,0xb4,0x7c,0x99,0x67,0x56, -0x7c,0x91,0x01,0xa4,0xee,0xca,0xab,0xe2,0x01,0x2b,0x4a,0x38,0x1c,0x57,0xfd,0xd9,0x0a,0xcf,0xea,0xba,0x01,0x13,0x01,0x5c,0xfe,0x60,0xfe,0xc8,0xfe,0xcd,0xfe,0x87,0x52,0x7c,0x4a,0x01,0xb7,0x01,0x63,0x01,0x6e,0x01,0xe2,0xfe,0x6c,0xfe,0xbb,0xee,0xfe,0xcf,0x03,0x0e,0xec,0xaf,0x76,0x88,0xf7,0xcc,0xd6,0x00,0x00,0x02,0x00,0x16, -0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0xd0,0x40,0x2c,0x07,0x07,0x01,0x08,0x06,0x01,0x09,0x10,0x0c,0x00,0x4d,0x02,0x08,0x09,0x0a,0x0b,0x01,0x0b,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x03,0x04,0x01,0x0c,0x01,0x01,0x10,0x03,0x01,0x10,0x0c,0x00,0x4d,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d, -0x01,0x4c,0x0c,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x0b,0xb8,0xff,0xc0,0x40,0x39,0x0b,0x0d,0x01,0x4c,0x0e,0x0d,0x09,0x0a,0x04,0x05,0x0b,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x40,0x12,0x16,0x48,0x0c,0x06,0x40,0x08,0x0f,0x02,0x03,0x0f,0x03,0x91,0x59,0x0f,0x0f,0x06,0x03,0x01,0x05,0x08,0x0f,0x0c,0x0b,0x03,0x02,0x0e,0x09,0x0d, -0x0a,0x0a,0x05,0x77,0x05,0x01,0x78,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x00,0x2f,0x2f,0x3f,0x39,0x2f,0x2b,0x00,0x10,0x18,0xc4,0x10,0xc4,0x1a,0x10,0xdd,0x2b,0x2b,0xc4,0x12,0x17,0x39,0x31,0x30, -0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x87,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x9f,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01, -0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x8f,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0xdc,0x40,0x0c,0x09,0x0d,0x01,0x06,0x0b,0x01,0x03,0x04,0x01,0x10,0x03,0x04,0xb8,0xff,0xe8,0x40,0x2e,0x0b,0x00,0x4d,0x08,0x18,0x11,0x11,0x18,0x91,0x59,0x11, -0x11,0x19,0x01,0x00,0x19,0x91,0x59,0x00,0x12,0x01,0x10,0x91,0x59,0x01,0x03,0x09,0x19,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x06,0x4d,0x1d,0x1d,0x05,0x06,0x0c, -0x06,0x4d,0x05,0x7d,0x7f,0x15,0x01,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x15,0x21,0x11,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x19,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x00, -0x21,0x40,0x0b,0x00,0x4d,0x2b,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x00,0x5f,0x5e,0x5d,0x5d,0x5d,0x33,0x11, -0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a,0x9e,0xfe,0xed,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x9a,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9, -0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x99,0x40,0x0f,0x45,0x0a,0x01,0x49,0x00,0x01,0x4a,0x03,0x01,0x0f,0x17,0x01,0x0c,0x03,0x09,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x00,0x4d,0x03,0x18,0x0b,0x00,0x4d,0x0a,0x0b, -0x00,0x15,0xb8,0xff,0xc0,0x40,0x43,0x0b,0x00,0x4d,0x15,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x0b,0x30,0x0b,0x0d,0x01,0x4c,0x3f,0x0b,0x01,0x0b,0x0b,0x17,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05, -0x08,0x0c,0x06,0x4d,0x05,0x13,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x33,0x11,0x33,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10, -0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x9f,0xed,0xfe,0xce,0xfe,0x90,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x54,0x01,0x8a,0x01,0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x02, -0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x97,0x40,0x26,0x00,0x03,0x01,0x00,0x03,0x01,0x10,0x05,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x91,0x59,0x01,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x0d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff, -0xf0,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xea,0x40,0x18,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0b, -0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0xd6, -0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x05,0x9a,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x00,0x0b,0x00,0x70,0x40,0x34,0x06,0x09,0x91,0x59,0x06,0x02,0x01,0x06,0x91,0x2b,0x30,0x06,0x0a,0x02,0x01,0x0a,0x91,0x59,0x01,0x12,0x02,0x05,0x91,0x59, -0x02,0x03,0x04,0x08,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f, -0x33,0x33,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xb4,0xfd,0x08,0x02,0xd8,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0x94, -0x05,0x9a,0x00,0x09,0x00,0x67,0x40,0x2c,0x02,0x05,0x91,0x59,0x0f,0x02,0x01,0x0b,0x03,0x02,0x02,0x08,0x07,0x12,0x08,0x01,0x91,0x59,0x08,0x03,0x04,0x04,0x00,0x00,0x0b,0x02,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb3, -0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb6,0x0b,0x06,0x4d,0x07,0x2f,0x0b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xa8, -0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0x85,0x05,0x9a,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x00,0x19,0x00,0xae,0x40,0x09,0x00,0x0a,0x01,0x0f,0x04,0x01,0x10,0x05,0x09,0xb8,0xff,0xc0,0x40,0x3b,0x0c,0x00,0x4d,0x18,0x17,0x91,0x59,0x18,0x18,0x08,0x00,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x0f,0x0b,0x1f, -0x0b,0x02,0x0a,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x04,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x15,0xb8,0xff,0xee,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xee,0x40,0x22,0x0b,0x06,0x4d,0x15,0x15,0x1b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c, -0x06,0x4d,0x10,0x7d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x12,0x39,0x18,0x2f,0x2b, -0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x04,0xec,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe2,0x62, -0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0x79,0x40,0x48,0x08,0x03,0x91,0x59,0x08,0x06,0x05,0x08,0x91,0x2b,0x30,0x01,0x12,0x05,0x12,0x0a,0x03,0x06,0x03,0x09,0x00,0x06,0x0d,0x06, -0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05, -0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00, -0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x10,0xb6,0x00,0x7e,0x01,0x01,0x12,0x02,0x03,0x00,0x3f,0x3f,0x01,0x2f,0xe1,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0x05,0x9a,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x00,0x0c,0x00,0x6d,0x40,0x17,0x00,0x09,0x01,0x00,0x01,0x01,0x0f,0x09, -0x01,0x10,0x05,0x06,0x06,0x08,0x03,0x08,0x91,0x59,0x03,0x13,0x0b,0x03,0x05,0xb8,0xff,0xf0,0x40,0x1c,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0a, -0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xa8,0x02,0x02,0xff,0xfe,0xe5,0x18, -0xa6,0x27,0x01,0x81,0x03,0x9a,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x10,0x00,0x9c,0x40,0x1c,0x7d,0x0e,0x01,0x29,0x0e,0x39,0x0e,0x02,0x7e,0x01,0x01,0x2a,0x01,0x3a,0x01,0x02,0x10,0x18,0x0c,0x0d,0x01,0x4c,0x10,0x10,0x0b,0x01,0x4d,0x0e,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x18, -0x0b,0x0d,0x01,0x4c,0x0a,0x0e,0x10,0x01,0x05,0x05,0x08,0x07,0x12,0x08,0x03,0x0e,0x0f,0x0f,0x01,0x10,0x70,0x00,0x01,0x00,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x00,0x00,0x12,0x0a,0x05,0x06,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff, -0xf8,0x40,0x09,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x33,0x2f,0x2b,0x5d,0x39,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33, -0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x86,0x40,0x09,0x01,0x04,0x91,0x59,0x01,0x12,0x02,0x03,0x05,0xb8,0xff,0xf0, -0xb3,0x10,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x05,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0a,0x1f,0x48,0x05,0x05,0x07,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c, -0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x09,0x0c,0x06,0x4d,0x01,0x05,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0xa4, -0xfd,0x18,0xa8,0x02,0x40,0x05,0x9a,0xfa,0xfe,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x00,0x1b,0x00,0xba,0x40,0x15,0x7a,0x1a,0x01,0x75,0x13,0x01,0x26,0x13,0x36,0x13,0x02,0x72,0x16,0x01,0x16,0x18,0x0b,0x0d,0x01,0x4c,0x0d,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0x40,0x37,0x0b,0x0d,0x01, -0x4c,0x16,0x1a,0x01,0x05,0x09,0x0d,0x06,0x12,0x11,0x12,0x12,0x03,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x1a,0x08,0x0d,0x06,0x4d,0x1a,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x06,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb5,0x0b,0x06,0x4d,0x01,0x1d,0x13,0xb8,0xff, -0xf8,0x40,0x17,0x0d,0x06,0x4d,0x13,0x0d,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x7e,0x11,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x11,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x2b,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0x33,0x2b,0xe9,0x2b,0x2b, -0x2b,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xa7,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde, -0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xad,0x40,0x0d,0x77,0x0c,0x01,0x72,0x0b,0x01,0x78,0x02,0x01,0x7d,0x01,0x01, -0x0b,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x0f,0x08,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xf8,0x40,0x2f,0x0b,0x0d,0x01,0x4c,0x0e,0x12,0x01,0x05,0x04,0x09,0x0a,0x03,0x09,0x01,0x0f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x11,0x01,0x11,0x18,0x0d,0x06,0x4d,0x11,0x11,0x08, -0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x11,0x15,0x0b,0x05,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b, -0x39,0x32,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x05,0x40,0xce,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xa8,0xda,0x02,0xce, -0x2d,0x0d,0x04,0x0a,0xa8,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfb,0xf4,0x05,0x9a,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x81,0x40,0x1e,0x00,0x12,0x91,0x59,0x00,0x13,0x06,0x0c,0x91,0x59,0x06,0x04,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d, -0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0x15,0x19,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10, -0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10, -0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01, -0x36,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x90,0x40,0x29,0x46,0x06,0x01,0x02,0x0f,0x01,0x0c,0x04,0x0c,0x00,0x91,0x59,0x0c,0x0c,0x03,0x02,0x12,0x03,0x0b,0x91,0x59,0x03,0x03,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xe8, -0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x10,0x10,0x0b,0x06,0x4d,0x10,0x10,0x14,0x0c,0x01,0x06,0x0d,0x06,0x4d,0x01,0x06,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b, -0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd, -0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xfd,0xb4,0x9f,0x91,0x01,0x1c,0x00,0x02,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x00,0x14,0x00,0x24,0x00,0x36,0x40,0x1a,0x13,0x10,0x04,0x11,0x0c,0x0c,0x21,0x19,0x04,0x13,0x10,0x00,0x08,0x08,0x15,0x91,0x59,0x08,0x04,0x00,0x1d,0x91, -0x59,0x12,0x00,0x13,0x00,0x3f,0xc6,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x33,0x2f,0x33,0x10,0xc6,0x12,0x39,0x39,0x31,0x30,0x05,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x07,0x01,0x21,0x25,0x06,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11, -0x10,0x27,0x26,0x02,0xfe,0xfe,0xd0,0xb9,0xb7,0xbb,0xbc,0x01,0x41,0x01,0x28,0xb6,0xb6,0xba,0x2c,0x32,0x01,0x93,0xfe,0xcf,0xfe,0xf2,0x6a,0x72,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0xc9,0xc9,0x01,0x42,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0xfe,0xa1,0xcc,0x31,0x23,0xfe,0xdf,0xca,0x21,0x05,0x32,0xa3, -0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1c,0x00,0x27,0x00,0xbb,0x40,0x3a,0x45,0x0f,0x01,0x03,0x40,0x0e,0x01,0x0f,0x02,0x01,0x0c,0x05,0x17,0x1e,0x08,0x08,0x1e,0x91,0x59,0x08,0x08,0x0a,0x1d,0x0b,0x1d,0x91,0x59,0x0b,0x03,0x01, -0x0a,0x17,0x09,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x11,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x26,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x11,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x29,0x1e,0x09,0x06, -0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b, -0x12,0x39,0x00,0x2f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0, -0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c,0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40, -0x73,0x81,0x00,0x01,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x35,0x00,0xd2,0x40,0x15,0x4b,0x35,0x01,0x4a,0x2e,0x01,0x46,0x25,0x01,0x44,0x1a,0x01,0x46,0x15,0x01,0x34,0x18,0x0c,0x00,0x4d,0x2a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x28,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x56,0x0c,0x00,0x4d,0x11, -0x18,0x0c,0x00,0x4d,0x09,0x2c,0x13,0x22,0x04,0x18,0x31,0x1a,0x00,0x01,0x00,0x1b,0x01,0x0c,0x03,0x1b,0x18,0x40,0x18,0x1d,0x91,0x59,0x18,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x31,0x31,0x06,0x91,0x59,0x31,0x13,0x1b,0x1b,0x2c,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x7d,0x13,0x13,0x01, -0x2c,0x08,0x0d,0x06,0x4d,0x2c,0x08,0x0c,0x06,0x4d,0x2c,0x08,0x0b,0x06,0x4d,0x2c,0x7d,0x09,0xb8,0xff,0xf0,0x40,0x0f,0x0b,0x06,0x4d,0x20,0x09,0x01,0x09,0x09,0x37,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18, -0x10,0xc4,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x11,0x33,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, -0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x79,0x22,0x5f,0x69,0x6a,0x2d,0x9b,0x99,0x33,0x5a,0x7b,0x47,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd4,0x61,0x7f,0xc7,0x37,0x6e,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d,0x53,0x8d,0xb8,0x66,0x22,0x64,0x68,0x5d,0x3a,0xc6,0x1e,0x30,0x21,0x12,0x73,0x6c, -0x3a,0x56,0x47,0x41,0x24,0x26,0x4e,0x5e,0x77,0x50,0x62,0x91,0x5e,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66,0x7c,0x50,0x6a,0x93,0x5c,0x29,0x0b,0x15,0x1f,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x07,0x00,0x7e,0x40,0x0b,0x03,0x12,0x01,0x05,0x06,0x05,0x91,0x59,0x06,0x03, -0x05,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x28,0x0b,0x06,0x4d,0x00,0x05,0x00,0x0e,0x02,0x03,0x05,0x42,0xcf,0x05,0x01,0x05,0x05,0x08,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0x04,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x03,0x03, -0x09,0x08,0x09,0x40,0x0c,0x00,0x4d,0x09,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xe2,0x18,0x2f,0x2e,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xa8,0xfe, -0x63,0x03,0xe3,0x05,0x02,0xfa,0xfe,0x05,0x02,0x98,0x00,0x01,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x00,0x0d,0x00,0x7a,0x40,0x31,0x02,0x0a,0x12,0x0a,0x02,0x02,0x08,0x12,0x08,0x02,0x0b,0x04,0x02,0x09,0x91,0x59,0x02,0x13,0x0c,0x03,0x05,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00, -0x7e,0x7f,0x0b,0x01,0x0b,0x0c,0x0d,0x06,0x4d,0x0b,0x0b,0xb8,0xff,0xfa,0x40,0x17,0x0c,0x06,0x4d,0x0b,0x0f,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfe,0x40,0x09,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2b,0x2f, -0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x01,0x00,0x12, -0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x0b,0x00,0xc8,0x40,0x0a,0x7b,0x0b,0x01,0x74,0x04,0x01,0x78,0x02,0x01,0x0b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0x40,0x22,0x0b,0x01,0x4d,0x04,0x30,0x0c,0x01,0x4d,0x04,0x20,0x0d,0x01,0x4d,0x04,0x20,0x0b,0x01,0x4d,0x39,0x0b,0x01, -0x36,0x04,0x01,0x74,0x07,0x01,0x07,0x28,0x0b,0x0d,0x01,0x4c,0x07,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x0b,0x07,0x02,0x03,0x03,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x11,0x0b,0x06,0x4d,0x0b,0x28,0x00,0x01,0x00, -0x08,0x0c,0x0d,0x01,0x4c,0x00,0x00,0x0d,0x04,0xb8,0xff,0xf8,0x40,0x0f,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf8,0xb7,0x0c,0x0d,0x01,0x4c,0x27,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x33,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0x32,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2b, -0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0xe6,0xfd,0xed,0xb9,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x08,0x19,0x01,0x95,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x3c,0x45,0x04,0x6f,0x00,0x00,0x01, -0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x00,0x1b,0x01,0x41,0x40,0x20,0x7b,0x1b,0x01,0x79,0x1a,0x01,0x76,0x14,0x01,0x76,0x0d,0x01,0x73,0x0c,0x01,0x75,0x09,0x01,0x7b,0x02,0x01,0x1b,0x20,0x0c,0x00,0x4d,0x1a,0x20,0x0c,0x00,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0d,0xb8,0xff,0xe0,0xb3, -0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xe0,0x40,0x0a,0x0c,0x00,0x4d,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x00,0x4d,0x08,0x10,0x0b,0x00,0x4d,0x02,0x10,0x0b,0x00,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x1b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1b,0xb8,0xff,0xe0,0xb3, -0x0d,0x01,0x4d,0x1b,0xb8,0xff,0xe8,0x40,0x13,0x0b,0x01,0x4d,0x0c,0x30,0x0c,0x01,0x4d,0x0c,0x20,0x0d,0x01,0x4d,0x0c,0x18,0x0b,0x01,0x4d,0x05,0xb8,0xff,0xc8,0x40,0x22,0x0b,0x0d,0x01,0x4c,0x17,0x38,0x0b,0x0d,0x01,0x4c,0x0f,0x38,0x0b,0x0d,0x01,0x4c,0x17,0x40,0x0b,0x0c,0x00,0x4c,0x0f,0x40,0x0b,0x0c,0x00,0x4c,0x05,0x10,0x0d, -0x06,0x4d,0x17,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x1d,0x0d,0x06,0x4d,0x00,0x01,0x05,0x0f,0x13,0x17,0x06,0x0a,0x0b,0x03,0x0a,0x14,0x13,0x06,0x01,0x02,0x17,0x09,0x0a,0x0f,0x17,0x20,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xe0,0xb3,0x0b,0x00,0x4d,0x17,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x00,0x4d,0x0f,0x20,0x0c, -0x00,0x4d,0x0f,0x06,0x17,0x03,0x0b,0x00,0x00,0x1d,0x0b,0x2f,0x1d,0x01,0x5d,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x07,0x60,0xfe,0x6b,0xc5,0xfe,0xd9,0x13,0x04,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05, -0x05,0x1a,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0x05,0x9a,0xfa,0x66,0x04,0x18,0x43,0x4f,0x4a,0x46,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x35,0x5b,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x15,0x00,0xc0,0x40,0x19,0x7b,0x13,0x01,0x7a, -0x12,0x01,0x75,0x0d,0x01,0x74,0x0c,0x01,0x74,0x08,0x01,0x75,0x07,0x01,0x79,0x02,0x01,0x7b,0x01,0x01,0x13,0xb8,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x13,0x08,0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0c, -0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0f,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0f,0x18,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x0f,0xb8,0xff,0xf0,0x40,0x1f,0x0d,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x01,0x05,0x0f,0x13,0x04,0x09,0x0b,0x03,0x09,0x15,0x0a,0x0b,0x14,0x00, -0x10,0x0b,0x00,0x4d,0x00,0x00,0x17,0x0b,0x09,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x09,0x2f,0x2b,0xc6,0x11,0x33,0x2f,0x2b,0xc6,0x11,0x39,0x39,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23, -0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42,0x26, -0x01,0xf4,0xfd,0x39,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x0d,0x00,0x65,0x40,0x21,0x73,0x06,0x01,0x04,0x09,0x01,0x01,0x05,0x03,0x12,0x0d,0x03,0x05,0x03,0x09,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xfe, -0x40,0x16,0x0b,0x06,0x4d,0x03,0x03,0x05,0x0d,0x7d,0x00,0x00,0x0f,0x06,0x18,0x0b,0x0d,0x01,0x4c,0x06,0x05,0x20,0x0f,0x01,0x5d,0x2f,0x33,0x2b,0x11,0x33,0x2f,0xe9,0x11,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xcd,0x33,0x31,0x30,0x01,0x5d,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16, -0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a,0x1c,0x01,0x50,0x05,0x9a,0xfc,0x78,0xfd,0xee,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0xa6,0x40,0x0e,0x0c,0x06,0x01,0x04,0x01,0x01,0x10,0x01, -0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x31,0x0b,0x0d,0x01,0x4c,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03,0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x12,0x00,0x08,0x07,0x08,0x07,0x91,0x59,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40, -0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x00,0x01, -0x00,0xc8,0xfe,0xba,0x02,0x38,0x05,0x9a,0x00,0x07,0x00,0x39,0x40,0x11,0x02,0x05,0xd9,0x59,0x02,0x03,0x01,0x06,0xd9,0x59,0x01,0x20,0x04,0x00,0x06,0xea,0x01,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0x40,0x09,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00, -0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x23,0x11,0x33,0x02,0x38,0xfe,0x90,0x01,0x70,0xde,0xde,0xfe,0xba,0x06,0xe0,0x77,0xfa,0x0e,0x00,0x01,0xff,0xe6,0xff,0x10,0x03,0x1e,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x78,0x01,0x01,0x00,0x08,0x0b,0x00,0x4d,0x00,0x02,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30, -0x01,0x2b,0x5d,0x05,0x23,0x01,0x33,0x03,0x1e,0x97,0xfd,0x5f,0x9b,0xf0,0x06,0x8a,0x00,0x01,0x00,0x35,0xfe,0xba,0x01,0xa4,0x05,0x9a,0x00,0x07,0x00,0x35,0x40,0x1b,0x06,0x05,0xd9,0x59,0x06,0x03,0x01,0x02,0xd9,0x59,0x01,0x20,0x05,0x01,0x00,0xea,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xee,0xb3,0x0b, -0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x01,0xa4,0xfe,0x91,0xdd,0xdd,0x01,0x6f,0xfe,0xba,0x77,0x05,0xf2,0x77,0x00,0x00,0x01,0x00,0xe6,0x02,0x70,0x04,0x96,0x05,0xb2,0x00,0x07,0x00,0x26,0x40,0x16,0x79,0x06,0x01,0x79,0x01,0x01, -0x07,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x03,0x07,0x04,0x2f,0x00,0x01,0x00,0x05,0x2f,0x2f,0x5d,0x00,0x3f,0x33,0x2f,0xc4,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x01,0x23,0x01,0x23,0x01,0x23,0x01,0x33,0x04,0x96,0x96,0xfe,0xb4,0x06,0xfe,0xcb,0x93,0x01,0xa6,0x41,0x02,0x70,0x02,0x6b,0xfd,0x95,0x03,0x42,0x00,0x01,0x00,0x00,0xfe,0xd7, -0x03,0x52,0xff,0x4e,0x00,0x03,0x00,0x0f,0xb6,0x01,0x02,0xd9,0x59,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0x00,0x01,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x00,0x03,0x00,0x1c,0xb7,0x77,0x03,0x01,0x03,0x80,0x01,0x00,0x02,0xb8,0xff,0xc0,0xb3,0x0d, -0x10,0x48,0x02,0x2f,0x2b,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x01,0x23,0x01,0x33,0x01,0xd7,0x7f,0xfe,0xfa,0xa8,0x04,0xc2,0x01,0x48,0x00,0x02,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x00,0x14,0x00,0x1f,0x00,0xaa,0x40,0x52,0x06,0x10,0x01,0x00,0x09,0x01,0x10,0x04,0x06,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x15,0x96,0x59, -0x0b,0x10,0x0d,0x06,0x4d,0x0b,0x0b,0x1c,0x12,0x01,0x15,0x03,0x1c,0x05,0x1c,0x95,0x59,0x05,0x16,0x0f,0x40,0x09,0x0c,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x95,0x59,0x12,0x10,0x20,0x0f,0x30,0x0f,0x02,0x0f,0x0b,0x1f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x02,0x0d,0x06,0x4d,0x01, -0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xee,0x40,0x17,0x0b,0x06,0x4d,0x01,0x01,0x21,0x0f,0x19,0x83,0x08,0x0c,0x0c,0x06,0x4d,0x08,0x04,0x0b,0x06,0x4d,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x2b,0x2b,0xe9,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x2f,0x5d,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, -0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x83,0xa4,0x04,0x6b,0xd0,0x99,0xad,0x01,0x52, -0x01,0x33,0xd3,0xb9,0x95,0x97,0xc5,0x01,0x69,0xa4,0xf7,0x72,0x74,0x6b,0x59,0x7a,0x9f,0xa0,0xb8,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0x94,0x22,0x10,0x51,0x67,0x4b,0x5f,0xab,0x83,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10, -0x06,0x03,0x15,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x07,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x04,0x00,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18, -0x18,0x1f,0x06,0x02,0x12,0x06,0x0d,0x06,0x4d,0x12,0x06,0x0c,0x06,0x4d,0x12,0x06,0x0b,0x06,0x4d,0x12,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, -0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9, -0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x05,0xec,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x85,0x40,0x5b,0x58,0x03,0x01,0x09,0x0f,0x19,0x0f,0x02,0x0b,0x00,0x15,0x01,0x0c,0x03, -0x15,0x15,0x13,0x02,0x13,0x95,0x59,0x02,0x16,0x0b,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x20,0x0c,0x01,0x4d,0x00,0x00,0x0b,0x0c,0x0c,0x06,0x4d,0x0b,0x02,0x0b,0x06,0x4d,0x70,0x0b,0x01,0x0b,0x20,0x0c,0x01,0x4d,0x0b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x83,0x05,0x14,0x0d, -0x06,0x4d,0x05,0x0c,0x0c,0x06,0x4d,0x05,0x23,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x2f,0x2b,0x5d,0x2b,0x2b,0x33,0x2f,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5e,0x5d,0x01,0x5d,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17, -0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x60,0x76,0xa2,0xdb,0xfe,0xf3,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x2f,0x47,0x01,0x1d,0xe3,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9b, -0x40,0x38,0x0f,0x06,0x01,0x10,0x06,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x02,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x01,0x15,0x0e,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0f,0x00,0x11,0x0d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, -0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, -0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1, -0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0xaf,0xb5,0x0f,0x07,0x01,0x10,0x06,0x06,0xb8,0xff,0xc0, -0x40,0x2d,0x0b,0x0e,0x48,0x06,0x06,0x01,0x04,0x19,0x01,0x95,0x59,0x19,0x19,0x04,0x0f,0x09,0x04,0x95,0x59,0x09,0x16,0x0f,0x16,0x95,0x59,0x0f,0x10,0x7f,0x07,0x01,0x07,0x16,0x0c,0x06,0x4d,0x07,0x20,0x0c,0x01,0x4d,0x07,0x07,0x00,0x83,0x13,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x13,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x13, -0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x13,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x19,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x83,0x0c,0x10,0x0d,0x06,0x4d,0x0c,0x10,0x0c,0x06,0x4d,0x0c,0x1d,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39, -0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x32,0x2f,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x03, -0xdd,0xfd,0x2d,0x04,0xb0,0x9a,0xad,0x91,0x87,0xde,0xd9,0xf8,0x01,0x0f,0xc9,0xc9,0xdc,0xa8,0x01,0x87,0x78,0x74,0xa2,0x13,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x17,0xfd,0xef,0x01,0x2d,0xfe,0xfc,0xe7,0x35,0x8e,0x9e,0xa6,0x86,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x14,0x00,0x8a,0xb9,0x00,0x10,0xff, -0xc0,0x40,0x3a,0x0b,0x00,0x4d,0x0a,0x15,0x00,0x00,0x02,0x08,0x0c,0x05,0x0d,0x0d,0x0c,0x95,0x59,0x0d,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x07,0x07,0x00,0x0c,0x0c,0x06,0x4d,0x2f,0x00,0x01,0x00,0x0c,0x00,0x0c,0x05,0x0e,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8, -0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xe6,0x40,0x0a,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15,0x2f,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x33,0x2f,0x2f,0x5d,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x12,0x39, -0x18,0x2f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10, -0x04,0x18,0x00,0x18,0x00,0x25,0x00,0xca,0x40,0x10,0x0a,0x04,0x01,0x03,0x0f,0x0e,0x01,0x10,0x06,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xc0,0x40,0x3a,0x0b,0x0f,0x48,0x05,0x05,0x07,0x02,0x07,0x95,0x59,0x02,0x1c,0x0a,0x23,0x0d,0x23,0x95,0x59,0x0d,0x16,0x17,0x0f,0x15,0x1d, -0x13,0x1d,0x95,0x59,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0,0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x27,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d, -0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f, -0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xfd,0xe4,0xbe,0x8e,0xad,0x9d, -0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x8e,0xfd,0xcf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11, -0x00,0x96,0x40,0x28,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x01,0x15,0x09,0x15,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40, -0x1e,0x0b,0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b, -0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05, -0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x00,0x0b,0x00,0x0f,0x00,0x4e,0x40,0x23,0x00,0x06,0x63,0x5b,0x00,0x0e,0x0f,0x0d,0x09,0x62,0x03,0x0d,0x0c,0x03,0x62,0xff,0x30,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x84,0x0d,0xb8,0xff,0xfe,0xb3,0x0c, -0x06,0x4d,0x0d,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x10,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x3f,0xc6,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x23,0xa4,0xa4,0x05, -0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x00,0x0c,0x00,0x18,0x00,0x6b,0x40,0x34,0x02,0x02,0x01,0x10,0x04,0x0d,0x13,0x63,0x5b,0x0d,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x16,0x62,0x10,0x0a,0x00,0x10,0x62,0xff,0x30,0x06,0x00, -0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0a,0x0a,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0xc6,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, -0x3f,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x01, -0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x0c,0x00,0x9b,0x40,0x10,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x0c,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x01,0x10,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x22,0x0c,0x00,0x4d, -0x09,0x02,0x0a,0x05,0x01,0x15,0x05,0x15,0x0a,0x0f,0x06,0x00,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x40,0x0b,0x01,0x4d,0x00,0x0c,0xb8,0xff,0xe8,0x40,0x1c,0x0d,0x06,0x4d,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05, -0xb8,0xff,0xff,0xb6,0x0b,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2b,0x2f,0x2b,0x2b,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01, -0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x05,0xec,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x3a,0x40,0x16,0x01,0x15,0x02,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01, -0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18,0x00,0x1f,0x00,0xdd,0xb6,0x49,0x0c,0x01,0x49,0x04, -0x01,0x1e,0xb8,0xff,0xe8,0xb7,0x0b,0x00,0x4d,0x0f,0x21,0x01,0x03,0x1c,0xb8,0xff,0xd0,0x40,0x2c,0x0c,0x00,0x4d,0x02,0x16,0x01,0x0c,0x04,0x05,0x15,0x16,0x1b,0x04,0x0d,0x18,0x0d,0x95,0x59,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x01,0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8, -0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xec,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x84,0x12,0xb8,0xff,0xfa,0x40,0x31,0x0c,0x06,0x4d,0x12,0x0e,0x0b,0x06,0x4d,0x12,0x1b,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06, -0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x84,0x0a,0x0a,0x04,0x0d,0x06,0x4d,0x0a,0x40,0x0d,0x01,0x4d,0x0f,0x0a,0x01,0x0c,0x03,0x20,0x21,0x0a,0x84,0x30,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x39,0x18,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18, -0x2f,0x33,0x33,0x3f,0x3f,0x33,0x2b,0x11,0x00,0x17,0x33,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x2b,0x5d,0x5d,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x06,0x54,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9, -0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x02,0x4c,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x96,0x40,0x28,0x02,0x11,0x01,0x02,0x10,0x01,0x10,0x04, -0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06, -0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33, -0x18,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0x60,0xff,0xe8, -0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x89,0x40,0x23,0x19,0x40,0x0b,0x02,0x4d,0x00,0x12,0x95,0x59,0x00,0x16,0x06,0x0c,0x95,0x59,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20, -0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f, -0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab, -0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x0f,0x06,0x1b,0x09,0x1b,0x95, -0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06, -0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30, -0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0xfe, -0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x95,0x40,0x35,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x01,0x1b,0x03,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x0f,0x0f,0x0d,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0d,0x11,0x0e,0x03, -0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d, -0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x2b,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00, -0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfd,0xcd,0x95,0x7e,0xae,0xdb,0xc7,0xb1, -0xc9,0xc5,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x59,0xb9,0x00,0x0c,0xff,0xe8,0x40,0x27,0x0b,0x0c,0x00,0x4c,0x07,0x15,0x08,0x0f,0x00,0x00,0x0a,0x02,0x0e,0x10,0x70,0x00,0x01,0x00,0x00,0x12,0x0a,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff, -0xf3,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x04,0x0c,0x06,0x4d,0x07,0x05,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x5d,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d, -0xa4,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0xf6,0x04,0x00,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x00,0x2e,0x00,0xa1,0x40,0x19,0x07,0x26,0x01,0x03,0x16,0x01,0x03,0x09,0x0c,0x01,0x09,0x09,0x01,0x0f,0x00,0x01,0x10,0x04,0x2b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0xb8, -0xff,0xf0,0x40,0x35,0x0b,0x0c,0x00,0x4c,0x0a,0x38,0x0b,0x0c,0x00,0x4c,0x05,0x28,0x0f,0x1e,0x04,0x14,0x2d,0x17,0x19,0x14,0x19,0x95,0x59,0x14,0x10,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x0b,0x03,0x01,0x03,0x2d,0x03,0x95,0x59,0x2d,0x16,0x17,0x17,0x28,0x1e,0x83,0x0f,0x0f,0x00,0x28,0x83,0x05,0xb8,0xff,0xe0,0x40,0x16,0x0b,0x06, -0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x30,0x00,0x10,0x0d,0x06,0x4d,0x00,0x1c,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d, -0x5d,0x5d,0x5f,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x68,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e, -0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x92,0x50,0x9e,0x25,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x24,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81, -0x05,0x2f,0x00,0x14,0x00,0x7c,0x40,0x3b,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x14,0x14,0x12,0x02,0x12,0x95,0x59,0x02,0x16,0x0a,0x0a,0x07,0x0e,0x06,0x0b,0x07,0x07,0x06,0x95,0x59,0x07,0x0f,0x00,0x00,0x0d,0x40,0x0b,0x00,0x4d,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d, -0x0f,0x84,0x04,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xee,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x11,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31, -0x30,0x2b,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x90,0xff,0xe8, -0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa1,0x40,0x36,0x49,0x06,0x01,0x49,0x06,0x01,0x03,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x0f,0x03,0x01,0x0c,0x06,0x01,0x15,0x03,0x0c,0x05,0x0c,0x95,0x59,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f, -0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f,0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d, -0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66, -0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x00,0x0b,0x00,0x7b,0x40,0x0d,0x79,0x0b,0x01,0x79,0x02,0x01,0x77,0x01,0x01,0x76,0x04,0x01,0x0b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x04,0x20,0x0b,0x0d, -0x01,0x4c,0x02,0xb8,0xff,0xf4,0x40,0x19,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x76,0x07,0x01,0x07,0x30,0x0b,0x0d,0x01,0x4c,0x0b,0x07,0x03,0x02,0x15,0x03,0x0f,0x0b,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x0b,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x04,0x0c,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf0,0xb3,0x0c,0x00, -0x4d,0x03,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x5d,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xcb,0xfe,0x68,0xa1,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x0a,0x16,0x01,0x10,0x04,0x00,0xfc,0x00, -0x04,0x00,0xfd,0x18,0x52,0x3d,0x4d,0x3e,0x02,0xec,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0xd2,0x40,0x16,0x78,0x1b,0x01,0x77,0x14,0x01,0x76,0x0c,0x01,0x7b,0x0a,0x01,0x74,0x01,0x01,0x38,0x09,0x01,0x37,0x0c,0x01,0x1b,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x13,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x0a, -0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x02,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x14,0x02,0x0b,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x08,0xb8,0xff,0xc0,0xb3,0x0b,0x00,0x4d,0x14,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09, -0x0b,0x00,0x4d,0x09,0x10,0x0b,0x00,0x4d,0x1b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xd0,0x40,0x23,0x0b,0x0d,0x01,0x4c,0x17,0x30,0x0b,0x0d,0x01,0x4c,0x0f,0x30,0x0b,0x0d,0x01,0x4c,0x02,0x06,0x0f,0x17,0x13,0x1b,0x00,0x07,0x0a,0x0b,0x0f,0x0a,0x00,0x00,0x1d,0x0b,0x2f,0x1d, -0x01,0x5d,0x2f,0x11,0x33,0x2f,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13, -0x16,0x17,0x33,0x36,0x37,0x13,0x05,0xb0,0xfe,0xcd,0xaa,0xd3,0x0c,0x04,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x0a,0x04,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0a,0x05,0x08,0x02,0x0f,0xd0,0x04,0x00,0xfc,0x00,0x02,0xdd,0x2a,0x35,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x23,0x39,0x2c,0x32,0x03,0x00,0xfc,0xfc,0x25,0x37,0x27, -0x35,0x03,0x04,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0xe0,0x40,0x13,0x7b,0x13,0x01,0x73,0x0e,0x01,0x79,0x0c,0x01,0x74,0x0a,0x01,0x7b,0x03,0x01,0x75,0x01,0x01,0x13,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0a,0x08,0x0b, -0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x13,0x0c,0x06,0x4d,0x02,0x10,0x0c,0x06,0x4d,0x01,0x10,0x0c,0x06,0x4d,0x00,0x10,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d, -0x13,0xb8,0xff,0xf0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0e,0x10,0x0b,0x0d,0x01,0x4c,0x0a,0x10,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x11,0x18,0x0b,0x01,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x15,0x0b,0x01,0x4d,0x03,0x06,0x11,0x13,0x04,0x0b,0x0d,0x0f,0x0b,0x00,0x02,0x0d,0x0b,0x02,0x02,0x15,0x0b,0x15, -0xb8,0xff,0xc0,0xb2,0x0c,0x00,0x4d,0x2b,0x2f,0x11,0x33,0x2f,0x11,0x33,0x11,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x01,0x33, -0x13,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x27,0x29,0x01,0xae,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0xd5, -0x04,0x00,0x00,0x14,0x00,0x9b,0x40,0x0a,0x0d,0x14,0x01,0x00,0x0d,0x01,0x06,0x02,0x01,0x14,0xb8,0xff,0xe0,0x40,0x2c,0x0b,0x0d,0x01,0x4c,0x0d,0x20,0x0b,0x0d,0x01,0x4c,0x02,0x20,0x0b,0x00,0x4d,0x02,0x10,0x01,0x10,0x04,0x00,0x0f,0x0c,0x0f,0x10,0x30,0x0b,0x0d,0x01,0x4c,0x10,0x01,0x0b,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03, -0x1c,0x06,0x0b,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0x06,0x0b,0x03,0x0c,0x14,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x14,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x16,0x0d,0x0c,0x0b,0x06,0x4d,0x0d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x0c,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32, -0x2b,0x12,0x17,0x39,0x2b,0x2b,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2f,0x33,0x33,0x2b,0x3f,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x40,0x2b,0x35,0x2c, -0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x05,0x10,0x06,0x05,0x0f,0x01,0x23,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x03,0x16,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x09,0x00,0xa5,0x40,0x0e,0x0a,0x06,0x01,0x06,0x01,0x01,0x10,0x01,0x18,0x0b,0x0d,0x01, -0x4c,0x06,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03, -0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x95,0x59,0x04,0x15,0x00,0x08,0x07,0x08,0x07,0x95,0x59,0x08,0x0f,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11, -0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0x70,0xfd,0xa2,0x02,0x58,0xfc,0xb7,0x02,0x5e,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x01,0x00,0x5c,0xfe,0xba,0x02,0x2b, -0x05,0x9a,0x00,0x18,0x00,0x5f,0x40,0x2c,0x11,0x05,0x06,0x06,0x05,0x52,0x59,0x06,0x0b,0x00,0x06,0x4c,0x14,0x30,0x0b,0x0c,0x53,0x59,0x0b,0x03,0x00,0x18,0x53,0x59,0x00,0x20,0x12,0x15,0x05,0x0c,0x18,0x18,0x15,0x05,0x0f,0x08,0x15,0xea,0x02,0x18,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xdc,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf7,0xb3, -0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe1,0x39,0x39,0xce,0x10,0xc2,0x2f,0x32,0x11,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x24,0x11,0x11,0x34,0x27,0x35,0x36,0x35,0x11,0x10,0x25,0x15,0x06,0x15,0x11,0x14,0x07,0x15,0x16,0x15,0x11,0x14,0x16,0x17,0x02,0x2b, -0xfe,0xcd,0x9c,0x9c,0x01,0x33,0x9f,0x96,0x96,0x47,0x58,0xfe,0xba,0x04,0x01,0x32,0x01,0x2c,0xca,0x0a,0x74,0x0a,0xce,0x01,0x24,0x01,0x36,0x04,0x80,0x04,0xc2,0xfe,0xdb,0xd2,0x30,0x04,0x2d,0xd3,0xfe,0xdf,0x6f,0x5f,0x02,0x00,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x13,0x40,0x09,0x03,0x00,0x1c,0x00, -0xea,0x90,0x01,0x01,0x01,0x2f,0x5d,0xe1,0x00,0x3f,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00,0x00,0x01,0x00,0x42,0xfe,0xba,0x02,0x10,0x05,0x9a,0x00,0x18,0x00,0x66,0x40,0x26,0x0c,0x00,0x18,0x18,0x00,0x52,0x59,0x18,0x13,0x05,0x18,0x4c,0x14,0x30,0x13,0x12,0x53,0x59,0x13,0x03,0x05,0x06, -0x53,0x59,0x05,0x20,0x0c,0x09,0x00,0x00,0x03,0x12,0x06,0x16,0x0f,0x03,0xea,0x09,0xb8,0xff,0xe0,0x40,0x0f,0x0d,0x06,0x4d,0x50,0x09,0x01,0x3f,0x09,0x01,0x09,0x20,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x5d,0x5d,0x2b,0xe1,0x39,0x39,0xc6,0x32,0x10,0xca,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00, -0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x06,0x15,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x34,0x37,0x35,0x26,0x35,0x11,0x34,0x27,0x35,0x04,0x11,0x11,0x14,0x17,0x02,0x10,0x9c,0xfe,0xce,0x57,0x49,0x95,0x95,0xa0,0x01,0x32,0x9c,0x01,0xf0,0x0a,0xca,0xfe,0xd4,0xfe,0xce,0x04,0x7e,0x02,0x60, -0x6e,0x01,0x21,0xd3,0x2d,0x04,0x30,0xd2,0x01,0x25,0xc2,0x04,0x80,0x04,0xfe,0xca,0xfe,0xdc,0xce,0x0a,0x00,0x01,0x00,0xd1,0x01,0xb8,0x04,0xaa,0x02,0xee,0x00,0x14,0x00,0x44,0xb9,0x00,0x01,0xff,0xe0,0x40,0x23,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x0d, -0x14,0xbd,0x00,0x09,0xbd,0x0a,0x15,0x16,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e, -0x6d,0x9c,0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x02,0xee,0x94,0xa2,0x6d,0x43,0xb0,0x8f,0xa7,0x58,0x5a,0x62,0x50,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x22,0xb7,0x03,0x70,0x1f,0x01,0x02,0x7f,0x1f, -0x01,0xb8,0xff,0xf3,0x40,0x0a,0x1f,0x19,0x06,0x07,0x3e,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x5d,0x35,0x5d,0x35,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xcd,0x00,0x10,0x00,0x1b,0x00,0x23,0x01,0x5d,0x40,0x18,0x76,0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01, -0x10,0x06,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x2c,0x0b,0x06,0x4d,0x1d,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1d,0x1c,0x02,0x01,0x20,0x01,0x22,0x23,0x03,0x04,0x20,0x04, -0x73,0x04,0x01,0x7c,0x01,0x01,0x10,0x08,0x0b,0x0c,0x00,0x4c,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x20,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x1f,0xb8,0xff,0xc0,0x40,0x1e,0x0b,0x0d,0x01,0x4c,0x10,0x20,0x0b,0x0d,0x01,0x4c,0x06,0x20,0x0b,0x0d,0x01,0x4c,0x00,0x16,0x01,0x09,0x03,0x1d, -0x1e,0x1f,0x21,0x22,0x05,0x05,0x20,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x20,0x20,0x12,0x16,0x48,0x20,0x00,0x16,0x1c,0x02,0x91,0x59,0x1c,0x1c,0x16,0x00,0x0b,0x11,0xc5,0x59,0x0b,0x10,0x06,0x16,0x03,0x04,0x00,0x12,0x19,0xc4,0x0e,0x40, -0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0x40,0x12,0x0c,0x00,0x4d,0x08,0x08,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x25,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x39,0x2f,0x2b,0xe9, -0xd4,0x2b,0xe9,0x00,0x3f,0xc4,0x3f,0xcd,0x39,0xc4,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x12,0x17,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x0e,0xc0,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0x01,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40, -0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x07, -0x00,0xdd,0x02,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x65,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x17,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x38,0x0e,0x0c,0x02,0x03,0x3e,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x0b,0x02,0x26, -0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb5,0x01,0x59,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x14,0x0b,0x12,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe0,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x66,0x01,0x59,0x00,0x1b,0x40,0x10,0x03,0x70, -0x27,0x01,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x5d,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0xe4,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x1d,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01,0x1a,0x05, -0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x12,0x22,0x20,0x10,0x00,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, -0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x11,0x22,0x20,0x10,0x0b,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x96,0x00,0x00,0x00,0x16, -0xb9,0x00,0x02,0xff,0xec,0x40,0x09,0x24,0x20,0x0f,0x14,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe2,0x40,0x0a,0x2f,0x29,0x0f,0x14,0x25,0x03,0x02,0x2c,0x11,0x26, -0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xb2,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xa8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xeb,0x40,0x09,0x2a,0x20,0x0f,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, -0x06,0x1c,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x29,0x0f,0x14,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xdd, -0x01,0x83,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x27,0x1b,0x1d,0x0c,0x12,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48, -0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xfe,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x09,0x1d,0x1b,0x0c,0x12,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf7,0x40, -0x09,0x1f,0x20,0x16,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x88,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x0c,0x12,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, -0x35,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x01,0xdd,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0x8e,0xd1,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xec,0x00,0x00,0x01,0x71,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, -0x00,0x43,0x9a,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x07,0x06,0x0e,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x77,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x08,0x04,0x02,0x03,0x25, -0x01,0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc9,0x00,0x00,0x02,0x10,0x05,0x87,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x4c,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf4,0x40,0x0a,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, -0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xb2,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1d,0x13,0x0a,0x12,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07, -0x00,0x8e,0x01,0x42,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe4,0x40,0x09,0x19,0x19,0x0c,0x06,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x14,0x19,0x19,0x03,0x09, -0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1d,0x1e,0x03,0x09,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, -0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xb2,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd8, -0x00,0xff,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x3c,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x14,0x12,0x09,0x11,0x25, -0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xea,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x17,0x14,0x12,0x08,0x10,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2, -0x06,0x0e,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x12,0x08,0x11,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x87,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xa0,0x00,0x00,0x00,0x17, -0x40,0x0d,0x02,0x01,0x07,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x36,0x40,0x1b,0x0b,0x01,0x09,0x06,0x40,0x04,0x00,0x08,0x10,0x08,0x02,0x0a,0x03,0x08,0x00,0x05,0x06,0x05,0x91,0x59,0x0b,0x06,0x06,0x03, -0x08,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x1a,0xce,0xdd,0x32,0xce,0x31,0x30,0x01,0x25,0x03,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x02,0xd8,0xfe,0xfa,0x28,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0x03,0x7d,0x1e,0xfd,0x4a,0x02,0xb6,0x1e, -0x96,0x14,0x01,0x9a,0xfe,0x66,0x14,0x00,0x00,0x02,0x00,0x6c,0x03,0x81,0x02,0x96,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x38,0x40,0x21,0x00,0x12,0xd8,0x59,0x00,0x0e,0x06,0x06,0x0c,0xd8,0x59,0x06,0x04,0x03,0x09,0x42,0x15,0xd8,0x09,0x0f,0xd8,0x03,0x0f,0x09,0x01,0x17,0x03,0x18,0x19,0x03,0x09,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d, -0x10,0xe1,0x10,0xe1,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x81,0x73,0xa2,0xa0,0x73,0x74,0xa3,0xa2,0x73,0x41,0x5c,0x5a,0x41,0x41,0x5e,0x5c,0x03,0x81,0xa3,0x74,0x73,0x9f,0xa0, -0x72,0x74,0xa3,0x01,0xb4,0x5c,0x41,0x43,0x5f,0x60,0x42,0x42,0x5b,0x00,0x00,0x02,0x00,0xb8,0xff,0xcf,0x03,0xb8,0x05,0x85,0x00,0x16,0x00,0x1d,0x00,0x7f,0x40,0x42,0x05,0x10,0x01,0x03,0x0f,0x00,0x01,0x10,0x05,0x16,0x16,0x17,0x14,0x02,0x14,0x9a,0x59,0x05,0x02,0x02,0x11,0x12,0x11,0x02,0x0c,0x03,0x11,0x11,0x18,0x13,0x0e,0x13, -0x99,0x59,0x0b,0x0e,0x02,0x0e,0x02,0x0c,0x04,0x1e,0x0c,0x0b,0x0e,0x14,0x17,0x04,0x02,0xdc,0x70,0x05,0x01,0x02,0x05,0x01,0x05,0x05,0x08,0x11,0x00,0x00,0x1f,0x1b,0x89,0x08,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x08,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x2f,0x10,0xc6,0x11,0x39,0x39, -0x2f,0x2f,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x02,0x35,0x34,0x12,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x05,0x11,0x06,0x06,0x15,0x14,0x16,0x03,0xb8,0x60,0x7d,0x7d, -0xc1,0xe5,0xe5,0xc1,0x7d,0x7b,0x62,0x65,0x78,0x7a,0x63,0xfe,0xa6,0x77,0x87,0x88,0xd1,0x3b,0x0a,0xbd,0xbf,0x16,0x01,0x16,0xcf,0xdb,0x01,0x27,0x25,0xd5,0xcb,0x02,0x31,0xac,0x47,0x07,0xfc,0xef,0x0c,0x4a,0x4b,0x02,0xf9,0x1f,0xcd,0x96,0x96,0xc6,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x1b,0x00,0x6a,0x40,0x39, -0x02,0x0e,0x01,0x03,0x00,0x12,0x01,0x10,0x05,0x17,0x14,0x05,0x08,0x08,0x05,0x9a,0x59,0x08,0x08,0x1b,0x0f,0x0c,0x40,0x0c,0x11,0x9a,0x59,0x0c,0x04,0x02,0x00,0x1b,0x00,0x1b,0x9a,0x59,0x00,0x12,0x15,0x15,0x18,0x7f,0x0e,0x01,0x0e,0x00,0x1a,0x02,0x06,0x14,0x08,0x18,0x8a,0x20,0x04,0x01,0x04,0x2f,0x5d,0xe1,0x39,0x39,0xc6,0xc6, -0x32,0x2f,0xc4,0x5d,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21, -0x15,0x14,0x07,0x21,0x03,0xee,0xfc,0x7c,0xda,0xc5,0xc5,0xda,0xad,0x75,0x60,0x64,0x6f,0xe5,0x01,0x28,0xfe,0xd8,0xc1,0x02,0xc7,0x87,0x45,0xf4,0xbb,0x8d,0xfe,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0xec,0x8d,0x9c,0xf2,0x61,0x00,0x00,0x02,0x00,0x83,0xff,0xbe,0x03,0x27,0x05,0xd3,0x00,0x26,0x00,0x30,0x00,0xcf,0x40,0x1b,0x24,0x22, -0x01,0x23,0x1b,0x01,0x2c,0x0f,0x01,0x2b,0x07,0x01,0x2c,0x30,0x01,0x25,0x2b,0x01,0x25,0x26,0x01,0x11,0x20,0x0c,0x00,0x4d,0x23,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x17,0xb8,0xff,0xf0,0x40,0x5d,0x0b,0x0c,0x00,0x4c,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x2c,0x00,0x0a,0x27,0x14,0x05,0x19,0x00,0x08,0x01,0x0e,0x03,0x08,0x08,0x0a,0x05, -0x0a,0x9a,0x59,0x05,0x00,0x1c,0x10,0x1c,0x02,0x0f,0x03,0x1c,0x1c,0x1e,0x19,0x1e,0x9a,0x59,0x19,0x2c,0x00,0x02,0x29,0x27,0x14,0x2e,0x16,0x0d,0x7e,0x02,0x1c,0x40,0x0b,0x10,0x01,0x4c,0x02,0x40,0x0c,0x10,0x01,0x4c,0x1c,0x02,0x1c,0x02,0x2e,0x7e,0x25,0x40,0x0b,0x0c,0x01,0x4c,0x25,0x25,0x32,0x12,0x20,0x7e,0x16,0x08,0x16,0x08, -0x29,0x7e,0x12,0x2f,0xe1,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x39,0x39,0x2f,0x2f,0x2b,0x2b,0x10,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x2b,0x2b, -0x2b,0x2b,0x01,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x92,0x5a,0xc8, -0x9b,0x83,0x6c,0x82,0x78,0x54,0x5c,0x47,0x91,0xe9,0x93,0x6a,0xbb,0x99,0x82,0x59,0x65,0x7a,0xa8,0x51,0xa3,0xdf,0xfe,0x67,0x65,0x71,0x8d,0x58,0x69,0x01,0xa0,0x4a,0x70,0x84,0xa4,0x38,0x9e,0x4a,0x4f,0x3c,0x35,0x49,0x4d,0x7a,0xc3,0xa3,0x51,0x53,0x8c,0x7f,0xa4,0x2b,0x9e,0x3e,0x90,0x37,0x5a,0x4e,0x6b,0xba,0xaa,0x01,0x7f,0x33, -0x6c,0x48,0x6d,0x3f,0x44,0x68,0x48,0x65,0x00,0x01,0x00,0xa4,0x01,0x98,0x02,0x9c,0x03,0x90,0x00,0x0b,0x00,0x19,0x40,0x0c,0x00,0x0e,0x40,0x06,0x03,0x09,0x42,0x09,0x20,0x03,0x01,0x03,0x2f,0x5d,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xa2,0x68,0x96,0x96, -0x68,0x68,0x92,0x92,0x01,0x98,0x92,0x68,0x67,0x97,0x96,0x68,0x68,0x92,0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x42,0x05,0x9a,0x00,0x0f,0x00,0x7c,0x40,0x38,0x08,0x08,0x0f,0x02,0x04,0x00,0x0f,0x00,0xe2,0x59,0x0f,0x03,0x06,0x02,0x12,0x00,0x00,0x02,0x10,0x0d,0x06,0x4d,0x02,0x8c,0x03,0x18,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d, -0x03,0x26,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x06,0x10,0x0d,0x06,0x4d,0x06,0x8c,0x08,0x03,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xec,0xb4,0x0b,0x06,0x4d,0x08,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0xdd,0x2b,0x2b,0x2b,0xe1,0x2b, -0xd4,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0xca,0x2f,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x42,0x80,0x6a,0x9e,0x6c,0x6c,0x8e,0x95,0x6b,0x01,0xee,0x05,0x33,0xfa,0xcd,0x05,0x33,0xfa,0xcd,0x03,0x87,0x98,0x73, -0x75,0x93,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x14,0x06,0x02,0x00,0x25,0x00,0xa2,0x40,0x09,0x0f,0x22,0x01,0x00,0x11,0x01,0x10,0x05,0x20,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x1a,0xb8,0xff,0xe8,0x40,0x32,0x0b,0x00,0x4d,0x1f,0x09,0x0a,0x0a,0x09,0x96,0x59,0x18,0x24,0x0a,0x95,0x14,0x30,0x18,0x10,0x95,0x59,0x18,0x01,0x01, -0x03,0x24,0x03,0x95,0x59,0x24,0x16,0x14,0x15,0x1f,0x1b,0x09,0x00,0x00,0x13,0x0d,0x83,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x1b,0x06,0x83,0x21,0xb8,0xff,0xe8,0x40,0x16,0x0c,0x06,0x4d,0x21,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x14,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x14,0x06, -0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2f,0x2b,0xe1,0x39,0x2f,0x2b,0xe1,0x11,0x39,0x2f,0xc4,0x11,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x35,0x36,0x36,0x35, -0x34,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x06,0x23,0x22,0x01,0xcd,0x4b,0x5f,0x6d,0x88,0xc8,0xb2,0x76,0x98,0x6e,0x61,0xe7,0xa4,0xdc,0xba,0xa6,0xc6,0x96,0x78,0x01,0x7a,0xde,0xb7,0x65,0x02,0xa0,0x30,0x93,0x7c,0x96,0xbb,0x14,0x82,0x14,0xa6,0x72,0x6c,0x77,0xfe, -0xcb,0xfb,0xbe,0x04,0x5a,0xc0,0xe8,0xbe,0x9c,0x7f,0xca,0x27,0x05,0x4b,0xfe,0xa1,0xb1,0xf0,0xff,0xff,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x04,0x01,0x38,0x00,0xff,0x05,0xe7,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x32,0x00,0x79,0x40,0x40,0x09,0xc6,0x15,0x2a,0x18,0x50,0x19,0x1a, -0x19,0x27,0x24,0x50,0x2f,0x2c,0x1e,0x50,0x1f,0x15,0x19,0x2f,0x1f,0x1f,0x2f,0x19,0x15,0x04,0x34,0x0f,0xc6,0x40,0x03,0x28,0x2c,0x1d,0x2c,0x1d,0x51,0x59,0x2c,0x2c,0x20,0x1f,0x20,0x2b,0x52,0x59,0x20,0x20,0x0c,0x06,0x0c,0xc7,0x59,0x06,0x28,0x19,0x1f,0x1f,0x12,0x00,0x12,0xc7,0x59,0x00,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f, -0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x00,0x15,0x14, -0x00,0x33,0x32,0x00,0x35,0x34,0x00,0x13,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x90,0xf9,0xfe,0xa1,0x01,0x5f,0xf9,0xf8,0x01,0x5f,0xfe,0xa1,0xf7,0xd2,0xfe,0xd7,0x01,0x29,0xd2,0xd1,0x01,0x27,0xfe,0xd9,0x51,0x8a,0x53,0x3f,0x49, -0x34,0x75,0xd7,0x85,0x91,0x66,0x5b,0x3f,0x3f,0xfe,0xcb,0x5e,0x9e,0x55,0x5c,0xff,0x01,0x5e,0xf9,0xf9,0x01,0x5f,0xfe,0xa1,0xf9,0xf9,0xfe,0xa2,0x04,0x51,0xfe,0xd8,0xd2,0xd1,0xfe,0xd8,0x01,0x28,0xd1,0xd2,0x01,0x28,0xfc,0x8f,0xb7,0x8a,0xfe,0xbf,0x02,0xfb,0x70,0x60,0x4e,0x6f,0x13,0x03,0x0e,0x7f,0x01,0xcd,0xf5,0x7b,0x47,0x33, -0x00,0x03,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x7b,0xb9,0x00,0x12,0xff,0xe8,0x40,0x46,0x0c,0x00,0x4d,0x0c,0x18,0x0c,0x00,0x4d,0x22,0x0f,0x2d,0x01,0x0f,0x03,0x2d,0x2d,0x15,0x28,0xca,0x1d,0x1d,0x15,0x0f,0xc9,0x03,0x15,0xc9,0x40,0x09,0xc6,0x03,0x1a,0x2b,0x53,0x59,0x0f,0x1a,0x1f,0x1a, -0x2f,0x1a,0x03,0x0f,0x03,0x1a,0x1a,0x25,0x12,0x20,0x25,0x53,0x59,0x20,0x20,0x0c,0x12,0x06,0x0c,0xcb,0x59,0x00,0x12,0xcb,0x59,0x06,0x00,0xc7,0x59,0x06,0x04,0x00,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x01,0x18,0x2f,0xf0,0x1a,0xe9,0x10,0xe9,0x11,0x39,0x2f, -0xe1,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xc6,0x00,0x2b,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x90,0xfe,0xc9,0xfe, -0x49,0x01,0xb7,0x01,0x37,0x01,0x36,0x01,0xb7,0xfe,0x49,0xfe,0xca,0xfe,0xee,0xfe,0x7c,0x01,0x84,0x01,0x12,0x01,0x12,0x01,0x83,0xfe,0x7d,0x03,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0x21,0x01,0xb7,0x01,0x37,0x01,0x37,0x01,0xb7,0xfe,0x49,0xfe,0xc9,0xfe,0xc9,0xfe,0x49,0x05, -0x84,0xfe,0x7c,0xfe,0xee,0xfe,0xee,0xfe,0x7d,0x01,0x83,0x01,0x12,0x01,0x12,0x01,0x84,0xfb,0xe6,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0x00,0x00,0x02,0x00,0x4c,0x03,0x04,0x05,0x74,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x79,0x40,0x49,0x0f,0x0c,0x01,0x10,0x04,0x0d,0x28,0x0b,0x0c,0x00,0x4c,0x0c, -0x28,0x0b,0x0c,0x00,0x4c,0x02,0x07,0x0c,0x03,0x16,0x01,0x05,0x09,0x03,0x13,0x11,0x15,0x16,0x15,0x54,0x59,0x0e,0x0a,0x16,0x03,0x0e,0x00,0x50,0x50,0x01,0x01,0x0f,0x01,0x01,0x0b,0x01,0x01,0x0b,0x08,0x50,0x0f,0x09,0x01,0x10,0x03,0x09,0x09,0x13,0x10,0x0e,0x12,0x50,0x13,0x13,0x15,0x42,0x15,0x20,0x13,0x01,0x13,0x2f,0x5d,0xc6, -0x2b,0x01,0x10,0xf1,0xe2,0x11,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x32,0x33,0x2f,0x5e,0x5d,0x5d,0xe1,0x33,0x00,0x3f,0x33,0x33,0x2b,0x11,0x00,0x33,0x18,0x2f,0x17,0x33,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x23,0x03,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x13,0x33,0x13,0x33,0x05,0x23,0x11,0x23,0x11, -0x23,0x35,0x21,0x05,0x74,0x6c,0x04,0xdb,0x3b,0xd6,0x04,0x66,0x7f,0xe1,0x04,0xe4,0x7e,0xfc,0xe6,0xd1,0x6f,0xce,0x02,0x0e,0x03,0x04,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x02,0x96,0xfe,0x10,0x01,0xf0,0x62,0xfd,0xcc,0x02,0x34,0x62,0x00,0x01,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x00,0x03,0x00,0x13,0xb7,0x78,0x03,0x01, -0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x13,0x02,0x0c,0xfe,0xfa,0x7f,0xdf,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x02,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x2a,0x40,0x16,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x10,0x15,0x01,0x0f, -0x03,0x01,0x15,0x03,0x15,0x03,0x19,0x18,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x62,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39, -0x29,0x29,0x3c,0x3a,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x01,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x13,0x00,0x89,0x40,0x3b,0x0e,0x11,0x12,0x01,0x02,0x0d,0x02,0x0b,0x08,0x07,0x04,0x03,0x0c,0x03,0x04,0x40,0x12,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x07,0x0b, -0x40,0x11,0x0e,0x08,0x0b,0x0b,0x08,0xbe,0x59,0x0c,0x40,0x0b,0x01,0x02,0x04,0x07,0x08,0x0b,0x0c,0x0e,0x11,0x12,0x0a,0x03,0x0d,0x03,0x0d,0x03,0x10,0x09,0x00,0x05,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x14,0x15,0x05,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x11,0x12,0x39,0x39,0x39, -0x39,0x18,0x2f,0x2f,0x12,0x17,0x39,0x00,0x2f,0x1a,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xdd,0x31,0x30,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x21,0x03,0x23,0x13,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x13,0x33,0x03,0x21,0x15,0x21,0x03, -0x21,0x04,0x94,0xfd,0xda,0xa3,0x8d,0xa4,0xfa,0x01,0x3f,0x95,0xfe,0x2c,0x02,0x1a,0x9e,0x8d,0x9f,0x01,0x06,0xfe,0xb6,0x98,0x01,0xe2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x84,0x01,0x26,0x84,0x01,0x38,0xfe,0xc8,0x84,0xfe,0xda,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0xb3,0x40,0x0e,0x13,0x03, -0x04,0x12,0x04,0x02,0x12,0x01,0x00,0x04,0x01,0x10,0x04,0x12,0xb8,0xff,0xf0,0x40,0x21,0x0c,0x00,0x4d,0x0c,0x08,0x00,0x00,0x15,0x01,0x12,0x06,0x06,0x05,0x11,0x09,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x01,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, -0x4d,0x01,0xb8,0xff,0xd6,0x40,0x2b,0x0b,0x06,0x4d,0x01,0x01,0x15,0x04,0x05,0x13,0x03,0x91,0x59,0x13,0x13,0x07,0x00,0x0b,0x0c,0x91,0x59,0x0b,0x07,0x00,0x0b,0x91,0x2b,0x30,0x12,0x08,0x07,0x08,0x91,0x59,0x07,0x03,0x05,0x00,0x00,0x0f,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x10,0x18,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00, -0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01, -0x11,0x23,0x01,0x06,0x83,0xfd,0x09,0xfe,0x02,0xc1,0xc3,0x02,0xbc,0x03,0x9c,0xfd,0xd1,0x02,0x07,0xfd,0xf9,0x02,0x50,0xfd,0x09,0x5f,0xfe,0xa6,0x01,0x92,0xfe,0x6e,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x01,0x91,0x02,0xd9,0xfd,0x27,0x00,0x03,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x05,0xd3,0x00,0x13,0x00,0x1b,0x00,0x23,0x01,0x03, -0x40,0x0a,0x57,0x09,0x01,0x57,0x0e,0x01,0x58,0x0d,0x01,0x1d,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x0a,0xb8,0xff,0xf0,0x40,0x21,0x0b,0x00,0x4d,0x14,0x1d,0x22,0x19,0x01,0x02,0x0b,0x0c,0x02,0x0c,0x02,0x05,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06, -0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x22,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xea,0x40,0x0b,0x0b,0x06,0x4d,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xf8,0x40,0x4b,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x06,0x0d,0x06,0x4d,0x19,0x06,0x0c,0x06,0x4d, -0x19,0x06,0x0b,0x06,0x4d,0x19,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x0c,0x0b,0x08,0x02,0x01,0x12,0x40,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x00,0x03,0x0a,0x0d,0x04,0x12,0x08,0x08,0x16,0x91,0x59,0x08,0x04,0x12,0x1f,0x91,0x59,0x12,0x13,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00, -0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x17,0x39,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x5d, -0x5d,0x00,0x5d,0x25,0x07,0x27,0x37,0x26,0x11,0x10,0x00,0x21,0x32,0x17,0x37,0x17,0x07,0x16,0x11,0x10,0x00,0x21,0x20,0x01,0x26,0x23,0x22,0x00,0x11,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x00,0x11,0x10,0x01,0x44,0x98,0x4e,0x9e,0x9e,0x01,0x75,0x01,0x43,0xea,0xa8,0x87,0x4e,0x8b,0xb8,0xfe,0x8c,0xfe,0xc8,0xfe,0xf6,0x02,0x4e,0x7e, -0xba,0xe3,0xfe,0xe7,0x62,0x03,0x15,0xfd,0x2b,0x83,0xcb,0xec,0x01,0x10,0x83,0xb6,0x41,0xbf,0xc3,0x01,0x2c,0x01,0x57,0x01,0x9f,0x81,0xa2,0x3f,0xa6,0xc8,0xfe,0xb9,0xfe,0xa1,0xfe,0x68,0x04,0xcc,0x66,0xfe,0xb8,0xfe,0xf9,0xdf,0x96,0x03,0x14,0xfc,0x9e,0x89,0x01,0x35,0x01,0x14,0x01,0x04,0x00,0x03,0x00,0x52,0x00,0xcf,0x06,0x3a, -0x03,0xd9,0x00,0x13,0x00,0x1d,0x00,0x27,0x00,0x8e,0x40,0x15,0x57,0x25,0x01,0x57,0x21,0x01,0x58,0x1b,0x01,0x58,0x17,0x01,0x14,0x00,0x23,0x1e,0x0a,0x05,0x19,0xbd,0x0f,0xb8,0xff,0xe0,0x40,0x0c,0x0c,0x06,0x4d,0x00,0x0f,0x01,0x0f,0x0f,0x29,0x23,0xbd,0x05,0xb8,0xff,0xe0,0x40,0x11,0x0c,0x06,0x4d,0x0f,0x05,0x1f,0x05,0x02,0x0b, -0x03,0x05,0x00,0x40,0x0c,0x00,0x4d,0x0a,0xb8,0xff,0xe0,0x40,0x1a,0x0c,0x00,0x4d,0x1e,0x26,0x14,0x00,0x0c,0x16,0x12,0x02,0x26,0x02,0x26,0xeb,0x59,0x02,0x1c,0x0c,0x20,0x08,0x08,0x20,0xeb,0x59,0x08,0x00,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x39,0x39,0x12,0x39,0x2b,0x2b,0x01,0x18, -0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x13,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, -0x03,0x44,0xa8,0xd6,0xa5,0xcf,0xd8,0x9c,0xec,0x96,0xa4,0xd8,0xa6,0xd0,0xd8,0x9e,0xe2,0x5d,0x83,0xbc,0x6d,0x83,0x88,0x68,0xad,0xfe,0xef,0x84,0xbc,0x6e,0x83,0x87,0x6a,0xb0,0x01,0xe2,0xfe,0xed,0xd5,0xac,0xa2,0xe7,0xfe,0xef,0x01,0x11,0xd5,0xac,0xa1,0xe8,0x01,0x85,0xfe,0xfc,0x91,0x77,0x70,0x94,0xfe,0xfa,0x01,0x06,0x96,0x76, -0x6e,0x92,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x0b,0x00,0x0f,0x00,0x5d,0x40,0x2e,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x1f,0x07,0xaf,0x07,0x03,0x0d,0x03,0x07,0x0f,0x0c,0x0f,0xbe,0x59,0x0c,0x12,0x0f,0x00,0x0e,0x0a,0x07,0x01,0xbd,0x04,0x04,0x05,0x42,0x0e, -0x05,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xcd,0x32,0x2b,0x01,0x10,0xf1,0x39,0x39,0xe1,0x32,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x21,0x35,0x21,0x04, -0x94,0xfe,0x6c,0x83,0xfe,0x6b,0x01,0x95,0x83,0x01,0x94,0xfc,0x54,0x03,0xac,0x02,0x8c,0xfe,0x6c,0x01,0x94,0x84,0x01,0x94,0xfe,0x6c,0xfc,0xf0,0x85,0x00,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcb,0x00,0x07,0x00,0x0b,0x00,0x5c,0x40,0x0b,0x08,0x01,0x01,0x07,0x10,0x0b,0x00,0x4d,0x02,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15, -0x0c,0x00,0x4d,0x00,0x03,0x01,0x10,0x03,0x03,0x03,0x00,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x03,0x07,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40,0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xc4,0x32,0x2f,0x2b,0xc4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f, -0x5f,0x5e,0x5d,0x2b,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15,0x01,0x15,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x28,0xfc,0x54,0x03,0xac,0xfe,0x01,0xb2,0x3a,0x01,0xe1,0x96,0xfe,0x9e,0x04,0xfe,0xc7,0xfe,0x6a,0x85,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcd,0x00,0x07, -0x00,0x0b,0x00,0x5c,0x40,0x10,0x08,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x00,0x06,0x01,0x10,0x03,0x01,0xb8,0xff,0xc0,0x40,0x10,0x0c,0x00,0x4d,0x06,0x06,0x01,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x04,0x00,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40, -0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xd4,0xc4,0x2f,0x2b,0xc4,0x32,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f,0x2b,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x28,0xfc,0x54,0x03,0xac,0x02,0xb2,0xfe,0x4e,0x98, -0x01,0x35,0x06,0x01,0x65,0x95,0xfe,0x1f,0xfd,0x14,0x85,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x04,0x12,0x05,0x9a,0x00,0x1b,0x00,0x9d,0x40,0x4f,0x0f,0x1b,0x01,0x00,0x14,0x01,0x10,0x05,0x01,0x08,0x0b,0x00,0x4d,0x01,0x04,0x00,0x04,0x12,0x0f,0x13,0x0f,0x04,0x01,0x0f,0x17,0x12,0x12,0x0f,0x9a,0x59,0x08,0x05,0x0b,0x0e,0x0e,0x0b, -0x9a,0x59,0x04,0x01,0x0f,0x12,0x0e,0x12,0x0e,0x09,0x14,0x00,0x03,0x09,0x12,0x03,0x03,0x07,0x0e,0x09,0x0a,0x0c,0x42,0x10,0x0c,0x0c,0x0a,0x13,0x00,0x0e,0x09,0x0a,0x13,0x42,0x13,0x13,0x05,0x0e,0x17,0x03,0x09,0x7e,0x0a,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0xe1,0x17,0x39,0x33,0x2f,0x2b,0x01, -0x10,0xe0,0x11,0x12,0x39,0x18,0x2f,0xc4,0x2b,0x01,0x10,0xf2,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x01,0x2b,0x5f,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21, -0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x04,0x12,0xfe,0x9c,0x01,0x1d,0xfe,0xb2,0x01,0x4e,0xfe,0xb2,0xa4,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x01,0x23,0xfe,0xa0,0xc0,0xfa,0x1c,0x13,0x04,0x0d,0x24,0xfc,0x05,0x9a,0xfd,0x70,0x8b,0xcf,0x8b,0xfe,0xdb,0x01,0x25,0x8b,0xcf,0x8b, -0x02,0x90,0xfd,0xfe,0x3a,0x35,0x2a,0x4b,0x01,0xfc,0x00,0x01,0x00,0xa6,0xfe,0x74,0x04,0x18,0x04,0x00,0x00,0x18,0x00,0x5d,0x40,0x13,0x0f,0x08,0x01,0x10,0x05,0x03,0x14,0x00,0x89,0x01,0x01,0x17,0x8a,0x14,0x10,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xfa,0xb7,0x0b,0x06,0x4d,0x14,0x0e,0x0a,0x8a,0x0b,0xb8,0xff,0xf8,0x40,0x16,0x0d,0x06, -0x4d,0x0b,0x0c,0x16,0x0f,0x0b,0x08,0x04,0x11,0x06,0x11,0x99,0x59,0x06,0x16,0x00,0x15,0x2f,0x1a,0x01,0x5d,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x3f,0xc4,0x01,0x2f,0x2b,0xe1,0x32,0x2f,0x2b,0x2b,0xe1,0x39,0x2f,0xe1,0x12,0x39,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11, -0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x04,0x18,0xaa,0x17,0x05,0x54,0xc3,0xa7,0x47,0x04,0xa3,0xa3,0x8a,0x6f,0x79,0x97,0xa6,0x48,0x60,0xbf,0x7b,0xfe,0x10,0x05,0x8c,0xfd,0x8e,0x7f,0x96,0xac,0x91,0x02,0x4a,0xfd,0x09,0xbc,0x00,0x02,0x00,0x4e,0xff,0xe8,0x04,0x04,0x05,0xd1,0x00,0x16,0x00,0x21, -0x00,0x6e,0x40,0x0f,0x06,0x1a,0x01,0x0f,0x02,0x01,0x10,0x04,0x05,0x05,0x12,0x17,0x0b,0x8a,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x01,0x23,0x1c,0x89,0x12,0xb8,0xff,0xe8,0x40,0x20,0x0c,0x06,0x4d,0x12,0x17,0x01,0x19,0x15,0x19,0x9a,0x59,0x15,0x10,0x0f,0x05,0x01,0x0d,0x03,0x05,0x05,0x03,0x08,0x03,0x9a,0x59,0x08, -0x0f,0x1f,0x9a,0x59,0x0f,0x13,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x01,0x18,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x33,0x12,0x39,0x19,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x01,0x33,0x12,0x21,0x22,0x07,0x37,0x36,0x33,0x32,0x12,0x11,0x14,0x02,0x00,0x23, -0x22,0x26,0x35,0x10,0x00,0x33,0x32,0x13,0x26,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x03,0x5e,0x04,0x1a,0xfe,0xdc,0x7b,0x7b,0x27,0x77,0x81,0xc2,0xc1,0x82,0xfe,0xf2,0xb8,0xa6,0xc8,0x01,0x27,0xe3,0xb2,0x48,0x3a,0xac,0xa0,0xd6,0x71,0x61,0x97,0xd8,0x03,0x68,0x01,0xdc,0x50,0x9c,0x41,0xfe,0xf8,0xfe,0xdd,0xdd,0xfe,0x20, -0xfe,0xff,0xd5,0xb5,0x01,0x10,0x01,0x8e,0xfe,0xa4,0xd1,0xfe,0xc6,0xd2,0x7a,0x8d,0x01,0x3f,0x00,0x01,0x00,0x33,0xfe,0x2b,0x04,0xba,0x05,0x9a,0x00,0x0b,0x00,0x46,0x40,0x25,0x03,0x0a,0x01,0x04,0x09,0x01,0x03,0x08,0x01,0x10,0x03,0x06,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x04,0x06,0x07,0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00, -0x0b,0x00,0x0b,0x91,0x59,0x00,0x1b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0xba,0xfb,0x79,0x02,0xa4,0xfd,0x81,0x04,0x3a,0xfc,0xbc,0x02,0x52, -0xfd,0x8f,0x03,0x8b,0xfe,0x2b,0x4e,0x03,0x73,0x03,0x54,0x5a,0x9a,0xfc,0xf0,0xfc,0xd4,0x00,0x00,0x01,0x00,0xbc,0xfe,0x2b,0x05,0x52,0x05,0x9a,0x00,0x07,0x00,0x3b,0x40,0x0d,0x00,0x7e,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x09,0x04,0x7e,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x05, -0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00,0x1b,0x00,0x3f,0xc4,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x05,0x52,0xa8,0xfc,0xba,0xa8,0x04,0x96,0xfe,0x2b,0x06,0xd5,0xf9,0x2b,0x07,0x6f,0x00,0x00,0x01,0x00,0xbe,0xfe,0x1a,0x03,0x94,0x06,0x02,0x00,0x15, -0x00,0x43,0x40,0x0a,0x00,0x0e,0x05,0x8a,0x0f,0x0f,0x0b,0x42,0x0b,0x0f,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe0,0x40,0x13,0x0b,0x06,0x4d,0x0f,0x0f,0x17,0x16,0x13,0x02,0x9a,0x59,0x13,0x01,0x08,0x0d,0x9a,0x59,0x08,0x1c,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x2b,0x2b,0xc6,0x2b,0x01, -0x10,0xf1,0xe2,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x03,0x94,0x30,0x3f,0xaa,0xbb,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xbb,0x8a,0x4c,0x2c,0x05,0x5c,0x1b,0xd9,0xfa,0xd6,0x9e,0xbc,0x13,0x93,0x1a,0xd9,0x05,0x27,0xa0,0xbc,0x12,0x00,0x02,0x00,0x52, -0x02,0xba,0x02,0xb0,0x05,0xb0,0x00,0x15,0x00,0x1f,0x00,0x6e,0x40,0x42,0x00,0x13,0x01,0x0f,0x06,0x01,0x10,0x05,0x0b,0x16,0x54,0x59,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x09,0x03,0x0b,0x0b,0x12,0x1c,0x00,0x24,0x02,0x1c,0x05,0x1c,0x54,0x59,0x05,0x25,0x0f,0x30,0x0d,0x11,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x52,0x59,0x12,0x04,0x0b, -0x02,0x1f,0xc2,0xc0,0x00,0x01,0xd0,0x00,0x01,0x00,0x21,0x0f,0x0f,0x19,0xc2,0x08,0x2f,0xe1,0x39,0x2f,0x10,0xde,0x5d,0x71,0xe1,0x32,0x32,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x23,0x35,0x23,0x06,0x23, -0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x07,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xb0,0x81,0x04,0x4f,0x98,0x6d,0x85,0xf8,0xe5,0x97,0x88,0x76,0x6f,0x9b,0x7e,0x8e,0x81,0xb4,0xa8,0x4d,0x40,0x52,0x7d,0x02,0xcd,0x64,0x77,0x77,0x5d,0xca,0x21,0x1f,0xa8,0x56,0x80,0x46,0x90, -0x82,0x6b,0x19,0x17,0x6f,0x33,0x40,0x7a,0x55,0x00,0x00,0x02,0x00,0x4e,0x02,0xb8,0x03,0x23,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x1a,0x00,0x12,0x52,0x59,0x00,0x25,0x06,0x0c,0x52,0x59,0x06,0x04,0x15,0xc8,0x90,0x09,0xb0,0x09,0xc0,0x09,0x03,0x09,0x19,0x0f,0xc8,0x03,0x2f,0xe1,0x10,0xde,0x71,0xe1,0x00,0x3f,0x2b,0x00, -0x18,0x3f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb4,0xa7,0xbf,0xcd,0xa9,0xa3,0xbc,0xc7,0xa0,0x6a,0x7d,0x77,0x6e,0x69,0x7b,0x79,0x02,0xb8,0xc9,0xac,0xb5,0xcc,0xc7,0xab,0xb2,0xd2,0x02,0x88,0x90,0x7f,0x7c,0x8c,0x8f,0x7b, -0x7e,0x8f,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x00,0x1b,0x00,0xc9,0x40,0x0c,0x59,0x19,0x01,0x59,0x11,0x01,0x10,0x10,0x0c,0x00,0x4d,0x1a,0xb8,0xff,0xf0,0x40,0x27,0x0c,0x00,0x4d,0x0c,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1a,0x18,0x02,0x10,0x12,0x0c,0x02,0x0c,0x02,0x04,0x0a,0x1b,0x1b,0x18,0x08,0x0d, -0x06,0x4d,0x18,0x08,0x0c,0x06,0x4d,0x18,0x7d,0x04,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xdc,0x40,0x40,0x0b,0x06,0x4d,0x00,0x04,0x10,0x04,0x02,0x0b,0x03,0x04,0x04,0x1d,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x7d,0x0f,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08, -0x0c,0x06,0x4d,0x12,0x12,0x0b,0x06,0x4d,0x12,0x15,0x07,0x99,0x59,0x15,0x04,0x02,0x0c,0x0e,0x10,0x04,0x00,0x1b,0x00,0x1b,0x99,0x59,0x00,0x12,0x2f,0x1d,0x01,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xc4,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b, -0x2b,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x2b,0x2b,0x01,0x2b,0x2b,0x00,0x5d,0x5d,0x21,0x21,0x35,0x24,0x11,0x34,0x00,0x23,0x22,0x00,0x15,0x10,0x01,0x15,0x21,0x35,0x05,0x24,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x05,0x25,0x05,0xa9,0xfd,0xf9,0x01,0x59,0xfe,0xea,0xdb,0xde,0xfe, -0xe6,0x01,0x5a,0xfd,0xf8,0x01,0x5c,0xfe,0xa4,0x01,0x72,0x01,0x2e,0x01,0x35,0x01,0x70,0xfe,0xa5,0x01,0x5b,0x93,0xff,0x01,0x7a,0xf5,0x01,0x1d,0xfe,0xe4,0xf5,0xfe,0x86,0xff,0x00,0x93,0x94,0x01,0xeb,0x01,0x93,0x01,0x39,0x01,0x68,0xfe,0x9b,0xfe,0xc5,0xfe,0x6e,0xed,0x01,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18, -0x00,0x23,0x00,0x2a,0x00,0x35,0x00,0xcd,0x40,0x21,0x56,0x19,0x01,0x51,0x12,0x01,0x59,0x07,0x01,0x58,0x1f,0x01,0x58,0x0a,0x01,0x0f,0x40,0x0b,0x00,0x4d,0x5f,0x07,0x01,0x07,0x07,0x00,0x83,0x24,0x08,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xc0,0x40,0x59,0x0b,0x0c,0x00,0x4c,0x24,0x24,0x37,0x0b,0x14,0x1d,0x2a,0x04,0x01,0x84,0x2b,0x2b, -0x37,0x11,0x00,0x18,0x01,0x18,0x18,0x30,0x83,0x11,0x10,0x0c,0x06,0x4d,0x0f,0x11,0x01,0x0b,0x03,0x11,0x2c,0x14,0x00,0x24,0x24,0x00,0x95,0x59,0x24,0x24,0x04,0x18,0x40,0x09,0x0c,0x48,0x18,0x18,0x16,0x1b,0x16,0x20,0x1e,0x27,0x20,0x27,0x95,0x59,0x20,0x10,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x0b,0x33, -0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x18,0x2f,0x33,0x2f,0x2b,0x11,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x17, -0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x32,0x2f,0x5d,0x30,0x31,0x00,0x2b,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07, -0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x56,0xfd,0x2b,0x03,0xb0,0x99,0xb1,0x90,0x84,0xe2,0xfe,0xf2,0x71,0x04,0x91,0xf2,0x99,0xaf,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xe8,0x44,0x04,0x74,0xf0,0xca,0xde,0xa8,0x02,0x85,0x77,0x74,0xa6,0x13,0xa4,0xcb,0x8b,0x89,0x6a,0x5a,0x77,0xa4,0x01,0xd7,0xab, -0xba,0x72,0x9a,0x62,0xe5,0xe5,0xa1,0x87,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xc8,0xc8,0xfe,0xfb,0xe8,0x37,0x90,0x9c,0xa4,0x88,0xc8,0x3f,0x0c,0x08,0x52,0x5f,0x49,0x59,0xa9,0x00,0x03,0x00,0x31,0xff,0xae,0x04,0x96,0x04,0x66,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0xd4,0xb6,0x58,0x1c,0x01,0x57,0x1b,0x01,0x1d,0xb8,0xff, -0xf0,0x40,0x2b,0x0b,0x0c,0x00,0x4c,0x1d,0x14,0x22,0x19,0x0b,0x08,0x12,0x01,0x04,0x03,0x0d,0x13,0x00,0x00,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06,0x4d,0x03,0x83,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff, -0xde,0x40,0x47,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x07,0x0d,0x06,0x4d,0x19,0x0a,0x0c,0x06,0x4d,0x19,0x83,0x09,0x0a,0x0d,0x11,0x0d,0x06,0x4d,0x0d,0x0c,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x01,0x08,0x0b,0x12,0x04,0x10,0x0a,0x09,0x06,0x00,0x13,0x10,0x40,0x10,0x16,0x95,0x59,0x10, -0x10,0x06,0x1f,0x95,0x59,0x06,0x16,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x01,0x2f,0x2b,0x2b,0x2b,0xce,0x32,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x32,0x11,0x12,0x17,0x39, -0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x01,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x37,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x96,0xa8,0x62,0xfe,0xea,0xe8,0xc0,0x7e,0x91,0x52,0x95,0x66,0x01,0x1c,0xf0,0xb8,0x7c, -0xa2,0xfe,0xf3,0x4f,0x88,0x9f,0xb7,0x32,0x02,0x41,0xfe,0x04,0x57,0x86,0xa3,0xab,0x04,0x18,0xb4,0x8a,0xd0,0xfc,0xfe,0xda,0x66,0xa0,0x4e,0xa4,0x89,0xcb,0x01,0x02,0x01,0x22,0x62,0xb0,0xfe,0xde,0x4a,0xd7,0xbd,0x84,0x5c,0x01,0xcc,0xfd,0xd8,0x4c,0xd0,0xbe,0x86,0x00,0x00,0x02,0x00,0x8f,0xfe,0x52,0x03,0x3d,0x04,0x16,0x00,0x23, -0x00,0x33,0x00,0x45,0x40,0x25,0x0f,0x12,0x01,0x10,0x05,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x10,0x20,0xef,0x03,0x30,0xaf,0x70,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x34,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b, -0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x16,0x16,0x15,0x14,0x0e,0x04,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x27,0x13,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x02,0x71,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40, -0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x64,0x3b,0x34,0x4f,0x5c,0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x02,0x76,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0x01,0xa0, -0x20,0x1f,0x2f,0x2e,0x20,0x21,0x21,0x20,0x2e,0x2f,0x1f,0x20,0x00,0x02,0x00,0xb4,0xfe,0x6a,0x01,0x92,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x3d,0x40,0x12,0x0d,0x0c,0x0e,0x0f,0xff,0x3a,0x0c,0x7d,0x0d,0x0d,0x09,0xaf,0x0f,0x03,0x01,0x10,0x03,0x03,0xb8,0xff,0xe8,0x40,0x0e,0x0d,0x06,0x4d,0x03,0x0e,0x00,0x40,0x06,0x00,0xb0,0x5b, -0x06,0x10,0x0c,0x00,0x2f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x01,0x2f,0x2b,0x5f,0x5e,0x5d,0xe1,0x39,0x2f,0xe1,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x13,0x33,0x01,0x23,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x2b,0xac,0x13,0x86,0x03,0x3a,0x40,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x40, -0xfb,0x30,0x04,0x06,0x00,0x01,0x00,0xe8,0x00,0xfe,0x04,0x94,0x03,0x31,0x00,0x05,0x00,0x2c,0xb2,0x01,0xbd,0x00,0xb8,0xff,0xc8,0xb4,0x0c,0x06,0x4d,0x00,0x03,0xb8,0xff,0xe0,0x40,0x0b,0x0c,0x06,0x4d,0x03,0x00,0x03,0x04,0x03,0xbe,0x59,0x04,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x01,0x2f,0x2b,0x2f,0x2b,0xe1,0x31,0x30,0x25,0x23, -0x11,0x21,0x35,0x21,0x04,0x94,0x84,0xfc,0xd8,0x03,0xac,0xfe,0x01,0xae,0x85,0x00,0x00,0x01,0x00,0x7b,0x00,0x00,0x04,0x5a,0x05,0xec,0x00,0x08,0x00,0x41,0x40,0x22,0x0a,0x03,0x01,0x0b,0x02,0x01,0x03,0x0f,0x01,0x01,0x10,0x05,0x01,0x02,0x00,0x03,0x03,0x04,0x08,0x00,0x04,0x07,0x01,0x05,0x04,0xd9,0x59,0x05,0x05,0x01,0x00,0x00, -0x01,0x12,0x00,0x3f,0x3f,0x11,0x39,0x2f,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x01,0x01,0x23,0x01,0x23,0x35,0x21,0x01,0x01,0x04,0x5a,0xfe,0x7b,0x71,0xfe,0xc1,0xaa,0x01,0x08,0x01,0x13,0x01,0x4e,0x05,0xec,0xfa,0x14,0x02,0xee,0x78,0xfd,0x6b,0x05, -0x1b,0x00,0x00,0x01,0x00,0x5e,0xfe,0xea,0x03,0xb8,0x05,0x9a,0x00,0x1c,0x00,0x89,0x40,0x12,0x79,0x13,0x01,0x79,0x11,0x01,0x77,0x09,0x01,0x77,0x03,0x01,0x0a,0x30,0x0c,0x00,0x4d,0x04,0xb8,0xff,0xf0,0x40,0x3c,0x0c,0x00,0x4d,0x0f,0x06,0x01,0x09,0x06,0x06,0x04,0x08,0x05,0x04,0x03,0x09,0x13,0x16,0x17,0x09,0x04,0x12,0x00,0x14, -0x20,0x14,0x30,0x14,0x03,0x0a,0x03,0x14,0x14,0x12,0x12,0x0d,0x1c,0x0d,0x08,0x05,0x13,0x16,0x16,0x13,0x95,0x59,0x16,0x16,0x1d,0x1a,0x1a,0x02,0x95,0x59,0x1a,0x03,0x0b,0x10,0x95,0x59,0x0b,0x00,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x11,0x33, -0x2f,0x5f,0x5e,0x5d,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x33,0x2f,0x5e,0x5d,0x31,0x30,0x2b,0x00,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x26,0x23,0x22,0x07,0x07,0x33,0x15,0x23,0x03,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x13,0x23,0x35,0x33,0x37,0x36,0x36,0x33,0x32,0x17,0x03,0xb8,0x30,0x3c,0x92,0x18,0x1f,0xa6,0xbb,0x5a, -0x3a,0xfe,0xde,0x1f,0x3b,0x24,0x32,0x96,0x28,0x5b,0x67,0x7c,0x1c,0x11,0xaf,0x86,0x40,0x34,0x04,0xf2,0x1c,0xa0,0xd0,0x8a,0xfd,0x78,0xfe,0x5e,0x10,0x8f,0x15,0x01,0x24,0x02,0x7c,0x8a,0xdb,0x83,0x9e,0x13,0x00,0x02,0x00,0xd1,0x00,0xf0,0x04,0xaa,0x03,0xc0,0x00,0x14,0x00,0x29,0x00,0x97,0xb9,0x00,0x16,0xff,0xe0,0xb3,0x09,0x0c, -0x48,0x01,0xb8,0xff,0xe0,0x40,0x3a,0x09,0x0c,0x48,0x20,0x20,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x1e,0x18,0x18,0x26,0xbe,0x59,0x18,0x1c,0x40,0x22,0x1c,0xbe,0x59,0x15,0x00,0x22,0x01,0x0c,0x03,0x22,0x0d,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x00,0x0d,0xa0,0x0d,0xb0,0x0d,0x03,0x0c,0x03, -0x0d,0xb8,0xff,0xc0,0x40,0x14,0x0e,0x11,0x48,0x0d,0x29,0x15,0x14,0xbd,0x00,0x1f,0x1e,0x09,0xbd,0x0a,0x2a,0x2b,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x39,0x39,0x10,0xe1,0x39,0x39,0x00,0x18,0x2f,0x2b,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x10,0xd4,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a, -0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x13,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e,0x6d,0x9c, -0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x87,0x07,0x93,0x7e,0x6d,0x9c,0x5e,0x41,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x03,0xc0,0x92,0xa2,0x6c,0x44,0xb0,0x90,0xa4,0x58,0x5a,0x62,0x50,0xfe,0x65,0x93,0xa2,0x6c,0x42,0xae,0x8f,0xa6,0x58,0x5b,0x64,0x4f,0x00,0x02, -0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x00,0x05,0x00,0x0d,0x00,0x3f,0x40,0x22,0x00,0x0d,0x01,0x00,0x0c,0x01,0x0f,0x07,0x01,0x0f,0x06,0x01,0x10,0x04,0x0d,0x06,0x02,0x05,0x05,0x0f,0x02,0x09,0x03,0x03,0x05,0x02,0x01,0x0d,0x01,0x0d,0x99,0x59,0x01,0x12,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x01,0x2f,0x12, -0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x04,0xf8,0xfb,0x3b,0x02,0x09,0xae,0x02,0x0e,0xd7,0xfe,0x97,0x21,0x05,0x04,0x06,0x22,0xfe,0xa0,0x4c,0x05,0x4e,0xfa,0xb2,0x4c,0x03,0xc8,0x58,0x36,0x30,0x5e,0xfc,0x38,0x00,0x02,0x00,0x5c, -0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x15,0x06,0x0a,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x02,0x08,0x80,0x0a,0x0a,0x06,0xf0,0x0b,0x0f,0x08,0x01,0x08,0x2f,0x5d,0x33,0xf1,0xc0,0x2f,0x1a,0x10,0xdc,0x32,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x39,0x39,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, -0x01,0x33,0x01,0x03,0xb2,0xa8,0xfe,0xd5,0x01,0x2b,0xaa,0xfe,0xcd,0x54,0xa6,0xfe,0xd5,0x01,0x2b,0xa6,0xfe,0xd1,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0xfe,0xb0,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x02,0x00,0x5a,0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x17,0x07,0x0b,0x02,0x04,0x03,0x00,0xf0,0x04, -0x02,0x80,0x09,0x06,0xf0,0x0a,0x50,0x08,0x70,0x08,0x02,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x1a,0xdc,0xc4,0xe1,0x32,0x00,0x2f,0xc4,0x39,0x39,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x03,0xb4,0xfe,0xd3,0xa5,0x01,0x2e,0xfe,0xd2,0xa5,0x58,0xfe,0xd5,0xaa,0x01,0x34,0xfe,0xcc,0xaa, -0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0xfe,0xaa,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x8c,0xff,0xee,0x05,0x52,0x00,0xcd,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x56,0xb2,0x03,0xaf,0x09,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfb,0x40,0x27,0x0b,0x06,0x4d,0x09,0x0e,0x15,0x0f,0x1b,0x42,0x21,0xaf,0x1b,0x1b, -0x24,0x15,0xaf,0x0f,0x0f,0x25,0x24,0x0c,0x12,0x18,0x1e,0x04,0x00,0x06,0x00,0x06,0xb0,0x5b,0x00,0x13,0x40,0x25,0x01,0x2f,0x25,0x01,0x5d,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x31,0x30,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x04,0xe4,0x2e,0x3f,0x3f,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x41,0x41,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x3e,0x3e,0x2e,0x2d,0x41,0x40,0x12,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40, -0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x1f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x23,0x11,0x10,0x06,0x07,0x3e,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x2d,0x01,0x59,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x1a,0x10,0x06,0x07,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x0a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07, -0x00,0xd8,0x01,0xab,0x01,0x58,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x12,0x05,0xb2,0x00,0x18,0x00,0x23,0x00,0xb7,0x40,0x1d,0x06,0x18,0x0b,0x00,0x4d,0x14,0x11,0x00,0x00,0x25,0x13,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08, -0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x7e,0x19,0xb8,0xff,0xd0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xd8,0x40,0x4f,0x0b,0x06,0x4d,0x00,0x19,0x01,0x0b,0x03,0x19,0x19,0x25,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x08,0x10,0x0d,0x06, -0x4d,0x08,0x10,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x14,0x15,0x91,0x59,0x14,0x10,0x00,0x14,0x91,0x2b,0x30,0x0b,0x1c,0x91,0x59,0x0b,0x04,0x10,0x11,0x91,0x59,0x10,0x03,0x05,0x22,0x91,0x59,0x05,0x13,0x00,0x18,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00, -0x18,0x2f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x21,0x21,0x22,0x07,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x23, -0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x12,0xfd,0x30,0x10,0x7a,0x62,0x54,0xfe,0xc8,0xfe,0x94,0x01,0x7b,0x01,0x45,0x5a,0x58,0x70,0x02,0x02,0xb0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xa0,0x6c,0xe5,0xfe,0xe5,0x01,0x17,0xe3,0x74,0x0e,0x0a,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x0a,0x0e,0x98,0xfe,0x23,0x97, -0xfe,0x0a,0x08,0x04,0x5e,0x1c,0xfe,0xb4,0xfe,0xfd,0xfe,0xfe,0xfe,0xb6,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x1c,0x00,0x23,0x00,0x2f,0x00,0xfb,0xb3,0x58,0x07,0x01,0x0b,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x0d,0x0c,0x00,0x4d,0x06,0x40,0x0f,0x12,0x48,0x06,0x06,0x1c,0x83,0x1d,0xb8, -0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x1d,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xee,0x40,0x1b,0x0b,0x06,0x4d,0x1d,0x40,0x0c,0x00,0x4d,0x00,0x1d,0x01,0x0b,0x1d,0x1d,0x31,0x0b,0x17,0x23,0x03,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x2d,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x2d,0xb8, -0xff,0xc0,0x40,0x51,0x0c,0x00,0x4d,0x2d,0x2d,0x31,0x27,0x0a,0x0d,0x06,0x4d,0x27,0x0a,0x0c,0x06,0x4d,0x27,0x0a,0x0b,0x06,0x4d,0x27,0x83,0x11,0x10,0x0d,0x06,0x4d,0x11,0x0d,0x0c,0x06,0x4d,0x11,0x1f,0x0b,0x06,0x4d,0x11,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x04,0x1d,0x00,0x95,0x59,0x1d,0x1d,0x04,0x17, -0x24,0x14,0x20,0x19,0x19,0x20,0x95,0x59,0x19,0x10,0x0b,0x2a,0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x32,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39, -0x2f,0x2b,0x2b,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xf1,0xc0,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x00,0x35,0x10,0x00,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01, -0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x07,0x21,0xfd,0x2b,0x03,0xb1,0x9a,0xaf,0x90,0x88,0xdd,0xfe,0xf2,0x70,0x04,0x83,0xfe,0xe3,0xe5,0xfe,0xf3,0x01,0x1c,0xf0,0x01,0x26,0x6c,0x04,0x77,0x01,0x0a,0xc4,0xda,0xa8,0x02,0x86,0x74,0x78,0xa7,0x10,0xfe,0x10,0x9e,0xb8,0xb8,0x9c,0x9f,0xad,0xad,0x01,0xd7,0xab,0xba, -0x72,0x9a,0x62,0xed,0xed,0x01,0x1e,0xec,0x01,0x02,0x01,0x24,0xeb,0xeb,0xfe,0xf9,0xe2,0x33,0x8e,0x9e,0xab,0x81,0x01,0x2c,0xd9,0xbf,0xb4,0xd0,0xcd,0xbd,0xc2,0xd0,0x00,0x01,0x00,0x00,0x01,0xfa,0x04,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35, -0x21,0x04,0x00,0xfc,0x00,0x04,0x00,0x01,0xfa,0x81,0x00,0x01,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x08,0x00,0xf8,0x00,0x08,0x00,0x01,0xfa,0x81,0x00,0x02,0x00,0x6a,0x03,0xf4,0x02,0x9c,0x05,0xb2,0x00,0x03, -0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x9c,0x6f,0x93,0x8d,0xbb,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42, -0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c, -0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x18,0x40,0x0c,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0xaf,0x02,0x01,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05, -0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x14,0x40,0x09,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x02,0x2f,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x03,0x00,0xe8,0x00,0x70,0x04,0x94, -0x04,0x3a,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x4b,0x40,0x25,0x15,0x0f,0xd6,0x5b,0x15,0x15,0x0c,0x0d,0x0c,0xbe,0x59,0x0d,0x00,0x42,0x00,0x06,0xd6,0x5b,0x00,0x0f,0x0d,0x01,0x0d,0x03,0x0d,0x0b,0x0e,0x17,0x12,0x0c,0x42,0x0c,0x08,0x03,0x17,0xd3,0x12,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x12,0x2f,0x2b,0xe1,0x39,0x39,0xc6,0x2b, -0x01,0x10,0xe2,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0xc6,0x2b,0x2b,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x01,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x02,0xc4,0x2c,0x3c,0x3a,0x2e,0x67,0x3d,0x01,0xa6,0xfc,0x54,0x03,0xac,0xfe,0x2c,0x2c, -0x3e,0x3c,0x2e,0x65,0x3a,0x03,0x64,0x3d,0x2c,0x2d,0x40,0x6b,0x2f,0x3c,0xfe,0xae,0x86,0xfd,0xd8,0x3c,0x2b,0x2d,0x42,0x6d,0x2d,0x3c,0x00,0x02,0x00,0x6c,0x00,0x00,0x04,0x40,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x28,0x40,0x11,0x03,0x08,0x06,0x00,0x00,0x01,0x05,0x03,0x01,0x12,0x08,0x06,0x03,0x00,0x00,0x0b,0x03,0x2f,0x12,0x39, -0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x3d,0x2f,0x18,0xc4,0xc4,0x3d,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x09,0x03,0x04,0x40,0xfe,0x3b,0x4c,0xfe,0x3d,0x01,0xc3,0x4c,0x01,0x3f,0xfe,0x9c,0xfe,0x9c,0x01,0x64,0x02,0xcd,0xfd,0x33,0x02,0xcb,0x02,0xcf,0xfd,0x33,0x02,0x3f,0xfd,0xc1,0xfd,0xbf,0xff,0xff,0x00,0x0e, -0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x4f,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f, -0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0xfe,0xc8,0x00,0x00,0x02,0xb2,0x05,0x9a,0x00,0x03,0x00,0x0e,0xb5,0x00,0x03,0x02,0x12,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01, -0x02,0xb2,0xfc,0xa6,0x90,0x03,0x5b,0x05,0x9a,0xfa,0x66,0x05,0x9a,0x00,0x00,0x01,0x00,0x66,0xff,0xe8,0x03,0xf6,0x05,0xb2,0x00,0x25,0x00,0xcb,0x40,0x0c,0x02,0x13,0x01,0x0b,0x00,0x01,0x02,0x22,0x01,0x10,0x04,0x0f,0xb8,0xff,0xe8,0x40,0x65,0x0b,0x00,0x4d,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x13,0x14,0x00,0x25,0x21,0x1e,0x04,0x07, -0x07,0x04,0x9a,0x59,0x07,0x0e,0x40,0x1c,0x19,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x0f,0x0e,0x5f,0x0e,0x7f,0x0e,0x8f,0x0e,0x04,0x0b,0x03,0x0e,0x0e,0x11,0x23,0x00,0x14,0x10,0x14,0x02,0x0c,0x04,0x14,0x14,0x16,0x11,0x16,0x9a,0x59,0x11,0x07,0x00,0x25,0x10,0x25,0x02,0x0c,0x04,0x25,0x25,0x23,0x02,0x23,0x9a,0x59,0x02,0x19,0x1f,0x1a, -0x14,0x00,0x00,0x27,0x19,0x1c,0x1e,0x21,0x04,0x1d,0x8a,0x09,0x0c,0x06,0x04,0x07,0x0b,0x0e,0x04,0x09,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x17,0x33,0xde,0xc4,0x10,0xe1,0x17,0x32,0x12,0x39,0x2f,0xd4,0xd6,0xc4,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e, -0x5d,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x33,0x11,0x33,0x30,0x31,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06, -0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x21,0x32,0x37,0x03,0xf6,0x85,0x95,0xfe,0x55,0x52,0x79,0x6c,0x04,0x06,0x6e,0x83,0x33,0x01,0x1b,0xca,0x89,0x6c,0x72,0x8e,0x7d,0xc3,0x27,0x01,0xf1,0xfd,0xf9,0x08,0x07,0x02,0x08,0xfe,0x08,0x48,0x01,0x16,0x83,0x8d,0x32,0x4a,0x01,0xfa,0x8c,0x1f,0x2e,0x30,0x3c,0x8c,0xf0,0x01, -0x0f,0x38,0xa2,0x4e,0xc9,0xaa,0x8c,0x63,0x56,0x8c,0xfe,0x92,0x57,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0e,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x20,0x02,0x01,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0x33,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x02,0x2d, -0xa6,0xfe,0xd5,0x01,0x2b,0xa8,0xfe,0xcf,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0f,0x02,0x04,0x03,0x00,0xf0,0x04,0x50,0x02,0x70,0x02,0x02,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x00,0x2f,0xc6,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33, -0x02,0x2f,0xfe,0xd3,0xa6,0x01,0x30,0xfe,0xd0,0xa6,0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x35,0x00,0x00,0x03,0xea,0x06,0x02,0x00,0x14,0x00,0x20,0x00,0x24,0x00,0xaf,0xb9,0x00,0x11,0xff,0xe8,0x40,0x3d,0x0b,0x00,0x4d,0x15,0x1b,0x63,0x59,0x15,0x23,0x12,0x02,0x95,0x59,0x12,0x01,0x05,0x08,0x23,0x03,0x0b,0x0e, -0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x09,0x21,0x15,0x1e,0x62,0x18,0x21,0x08,0x0d,0x06,0x4d,0x21,0x08,0x0c,0x06,0x4d,0x21,0x08,0x0b,0x06,0x4d,0x21,0x84,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xf1,0x40,0x1e,0x0b,0x06,0x4d,0x22,0x22,0x26,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08, -0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x00,0x3f,0xc4, -0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x00,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3, -0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0xdd,0x2d,0x3e,0x3e,0x2d,0x2d,0x40,0x40,0x23,0xa4,0xa4,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xec,0x3c,0x2e,0x2d,0x3e,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0x00,0x35,0x00,0x00,0x03,0xcf,0x06,0x02,0x00,0x14,0x00,0x18,0x00,0xa4,0xb9,0x00, -0x11,0xff,0xe8,0x40,0x37,0x0b,0x00,0x4d,0x08,0x05,0x0b,0x0e,0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x18,0x00,0x09,0x15,0x15,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x70,0x16,0x01,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0xb8,0xff,0xf1,0x40, -0x1e,0x0b,0x06,0x4d,0x16,0x16,0x1a,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39, -0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac, -0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x01,0x2f,0xa2,0xa2,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xfa,0x10,0x05,0xec,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x15,0x00,0x5a,0x40,0x2e,0x15,0x10,0x14,0x13,0x12,0x02,0x0e,0x06,0x0b,0x40,0x09,0x08,0x07,0x03,0x00,0x0d, -0x10,0x0d,0x02,0x0a,0x03,0x0d,0x15,0x06,0x05,0x06,0x91,0x59,0x00,0x05,0x11,0x0a,0x0b,0x0a,0x91,0x59,0x10,0x0b,0x05,0x0b,0x05,0x0b,0x03,0x0d,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2b,0x11,0x00,0x33,0x11,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x33,0x33,0x33,0x1a,0xce,0x32,0xdd, -0x32,0x32,0x32,0x32,0xce,0x32,0x31,0x30,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x37,0x27,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x15,0x25,0x07,0x17,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x3a,0x3a,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x3a,0x3a,0x01,0x06,0x02,0x07,0x14,0xfe,0xca,0x01, -0x36,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x96,0x14,0x01,0x36,0xfe,0xca,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x00,0x00,0x01,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, -0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0x00,0x01,0x00,0x58,0xff,0x1c,0x01,0x5a,0x00,0xd9,0x00,0x03,0x00,0x2c,0x40,0x1c,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x02,0xb3,0x40,0x03,0x00,0xb4, -0x80,0x02,0x2f,0x1a,0xe9,0x00,0x2f,0x1a,0xed,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x01,0x5a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0x00,0x02,0x00,0x58,0xff,0x1c,0x02,0x89,0x00,0xd9,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x35,0x04,0x10,0x10,0x00,0x4d,0x04,0x10,0x0c,0x00,0x4d,0x07,0x10,0x10,0x00,0x4d,0x07, -0x10,0x0c,0x00,0x4d,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x03,0x02,0x06,0xb3,0x40,0x07,0x00,0xb4,0x02,0x04,0xb4,0x80,0x06,0x2f,0x1a,0xe9,0xdc,0xe9,0x00,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x23, -0x03,0x23,0x13,0x02,0x89,0x8b,0x77,0x6d,0x9a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0xfe,0x43,0x01,0xbd,0x00,0x00,0x07,0x00,0x50,0xff,0xea,0x09,0x5e,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0x3f,0x00,0x4b,0x01,0x01,0x40,0x3c,0x18,0x03,0x1a,0x3a,0x40,0x52,0x59,0x3a,0x0e,0x34,0x34,0x46,0x52,0x59, -0x34,0x1c,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x1b,0x03,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x1a,0x18,0x1a,0x18,0x3d,0x03,0x37,0xbd,0x43,0x10,0x0d,0x06,0x4d,0x43,0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x43,0x49,0xc8,0x1f,0x3d,0x01,0x3d,0xb8,0xff,0xf4, -0xb3,0x0d,0x06,0x4d,0x3d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x3d,0xb8,0xff,0xee,0x40,0x0e,0x0b,0x06,0x4d,0x3d,0x3d,0x03,0x1f,0xbd,0x2b,0x10,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xc2,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x1c,0x0c,0x06,0x4d,0x25,0x07,0x0b,0x06,0x4d,0x25,0x25,0x4d, -0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x0c,0x0b,0x06,0x4d,0x15,0x0f,0xc8,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x39,0x2f,0x2b, -0x2b,0x2b,0x5d,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x10,0x18,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x18,0x2f,0x3f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, -0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x59,0xfc,0x66,0x8f,0x03,0x99,0x03,0x42,0x94,0xb0,0xbd,0x9b,0x99,0xa9,0xbc,0x8c,0x60,0x6c,0x6b,0x5d,0x5f,0x6a,0x6a,0xfc,0x79,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac, -0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50,0xc4,0xa2,0xb1,0xd0,0xbf,0xae,0xab,0xcf,0x02,0x76,0x8d,0x7b,0x78,0x86,0x8d,0x7b,0x79,0x85,0xfd,0x8a,0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, -0x07,0x69,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x0f,0x01,0x5b,0x00,0x16,0xb9,0x00,0x02,0xff,0xf1,0x40,0x09,0x12,0x12,0x0c,0x0b,0x25,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xab,0x01,0x5d, -0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x0e,0x02,0x03,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x57,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x11,0x13,0x06,0x07,0x25,0x02,0x12, -0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, -0x03,0xb4,0x07,0x66,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe8,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe9,0x40,0x09,0x0f,0x0d,0x02,0x03,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x78,0x00,0x00,0x01,0xfd,0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf1, -0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x02,0x30,0x07,0x6b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa0,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x06,0x08,0x04,0x02,0x03,0x25,0x01,0x08,0x05,0x26,0x00, -0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x1b,0x00,0x00,0x01,0xa0, -0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xc9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf8,0x01,0x5c,0x00,0x13, -0x40,0x0b,0x02,0x1e,0x19,0x1b,0x0c,0x06,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x6a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x05,0x1a,0x1a,0x03,0x09,0x25,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x99,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x2c,0x19,0x18,0x03,0x09,0x25,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x65,0x02,0x26,0x00,0x38,0x00,0x00, -0x01,0x07,0x00,0x8e,0x01,0xb4,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x2b,0x0f,0x11,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x6b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x4b,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x10,0x05,0x0d, -0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x66,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x67,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xd1,0x40,0x09,0x11,0x0f,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xa6, -0x00,0x00,0x01,0x4a,0x04,0x00,0x00,0x03,0x00,0x31,0x40,0x16,0x03,0x0f,0x00,0x15,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01, -0x4a,0xa4,0xa4,0x04,0x00,0x00,0x00,0x01,0x00,0x5c,0x04,0xc2,0x02,0x90,0x06,0x0e,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x04,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x04,0x05,0x80,0x03,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x90,0x7a,0xa4,0xa5,0x71,0xd7,0x85,0x04, -0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x00,0x01,0x00,0x23,0x04,0xb2,0x02,0xa4,0x05,0xb2,0x00,0x13,0x00,0x50,0x40,0x0f,0x0a,0x0c,0x01,0x03,0x00,0x02,0x01,0x10,0x05,0x0c,0x40,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xc0,0x40,0x1b,0x0c,0x00,0x4d,0x13,0xc4,0x00,0x00,0x15,0x09,0xc4,0x40,0x0a,0x13,0x0d,0x0d,0x07,0xda,0x59,0x0d,0x11,0x40,0x03, -0x11,0xda,0x59,0x09,0x03,0x00,0x2f,0xc6,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x18,0x10,0xc6,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a, -0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x00,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x2f,0x00,0x03,0x00,0x11,0xb6,0x00,0x01,0x01,0x02,0xe2,0x59,0x01,0x00,0x2f,0x2b,0x01,0x18,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04, -0xc2,0x6d,0x00,0x01,0x00,0x25,0x04,0xc2,0x02,0x4a,0x05,0xbe,0x00,0x0c,0x00,0x2f,0x40,0x17,0x0c,0xc4,0x0f,0x00,0x01,0x0b,0x03,0x00,0x00,0x0e,0x07,0xc4,0x40,0x06,0x0c,0x06,0x03,0x80,0x03,0x09,0xdb,0x59,0x03,0x00,0x2f,0x2b,0x00,0x1a,0x18,0x10,0xdc,0xc4,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01, -0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x02,0x4a,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0c,0xa0,0x44,0x61,0x0a,0x05,0xbe,0x71,0x8b,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0x00,0x6c,0x04,0xc2,0x01,0x31,0x05,0x85,0x00,0x0b,0x00,0x12,0xb7,0x09,0xc0,0x03,0x00,0x06,0xc1,0x5b,0x00,0x00,0x2f,0x2b,0x01,0x18, -0x2f,0xe1,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xcf,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x04,0xc2,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x02,0x00,0x52,0x04,0x98,0x01,0xee,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x4f,0x40,0x31,0x04,0x0b,0x01,0x04,0x07,0x01,0x0b,0x05,0x01,0x0b,0x01,0x01, -0x10,0x14,0xc4,0x40,0x00,0x09,0x50,0x09,0xa0,0x09,0xb0,0x09,0x04,0x1c,0x03,0x09,0xc0,0x0f,0xc4,0x40,0x03,0x06,0x0c,0xc5,0x59,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x11,0xc5,0x59,0x00,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xe9,0x1a,0xdc,0x5f,0x5e,0x5d,0x1a,0xe9,0x31,0x30,0x5e,0x5d,0x5d,0x5d, -0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1c,0x57,0x73,0x76,0x5b,0x59,0x72,0x7a,0x58,0x30,0x40,0x70,0x32,0x42,0x42,0x04,0x98,0x69,0x55,0x5a,0x6c,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x01,0x00,0x33, -0xfe,0x50,0x01,0x87,0x00,0x00,0x00,0x12,0x00,0x5d,0x40,0x0c,0x03,0x12,0x01,0x03,0x00,0x01,0x01,0x10,0x05,0x09,0xc2,0x00,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x0f,0x48,0x00,0x10,0x05,0x40,0x0d,0x02,0x07,0xc5,0x59,0x02,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0f,0x48,0x02,0x10,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x09,0x03,0x10,0x0b,0xc3, -0x59,0x10,0x40,0x0a,0x0e,0x48,0x10,0x0e,0x12,0x00,0x3f,0xc5,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xce,0xcd,0xd4,0x2b,0xe1,0x30,0x31,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x33,0x15,0x32,0x16,0x01,0x87,0xfe,0xed,0x26,0x1b, -0x2b,0x1b,0x8d,0x81,0x0a,0x1f,0x6c,0x58,0x67,0xff,0x00,0xb0,0x02,0x5a,0x06,0x5a,0x4e,0x04,0xb6,0x68,0x50,0x00,0x00,0x02,0x00,0x40,0x04,0xc2,0x02,0x87,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x30,0x00,0x0e,0x02,0x28,0x0d,0x06,0x4d,0x02,0x18,0x0c,0x06,0x4d,0x02,0x18,0x0b,0x06,0x4d,0x02,0x30,0x0a,0x06,0x4d,0x02,0x30, -0x09,0x06,0x4d,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x70,0x06,0x01,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x87,0xf5,0x61,0xd1, -0x72,0xf0,0x60,0xce,0x06,0x00,0xfe,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0x00,0x3e,0xfe,0x70,0x01,0x52,0x00,0x00,0x00,0x0e,0x00,0x24,0x40,0x12,0x0f,0x0b,0x01,0x10,0x04,0x00,0x06,0x06,0x02,0xc2,0x0c,0x09,0x04,0xe2,0x59,0x09,0x0e,0x12,0x00,0x3f,0x2f,0x2b,0x01,0x18,0x2f,0xf1,0xc2,0x2f,0xc6,0x31,0x30,0x5f,0x5e,0x5d, -0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x52,0x96,0x44,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x9d,0x8d,0x52,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x7a,0x80,0x00,0x01,0x00,0x66,0x04,0xc2,0x02,0x98,0x06,0x0c,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x03,0x03, -0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x11,0x39,0x2f,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x02,0x98,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d,0x00,0xc5,0x40,0x16,0x0f,0x0a,0x01,0x00,0x04,0x01,0x10,0x05,0x0b,0x02, -0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x04,0x0a,0x0a,0x0c,0x00,0xb8,0xff,0xf0,0xb3,0x10,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x00,0xb8,0xff,0xc0,0x40, -0x1b,0x0a,0x1f,0x48,0x00,0x00,0x0f,0x03,0x08,0x05,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x19,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x04,0x03,0x0a,0x09,0x03,0x09,0x03,0x00,0x06,0x03,0x00,0x0d,0x91,0x59, -0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x31,0x30,0x10,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x21,0x11,0x07,0x35,0x37,0x11, -0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0xa4,0xfd,0x18,0x9b,0x9b,0xa8,0x01,0x48,0xfe,0xb8,0x02,0x40,0x02,0x23,0x61,0x98,0x60,0x02,0xe0,0xfd,0x89,0xcb,0x9a,0xc8,0xfe,0x0c,0x00,0x01,0x00,0x16,0x00,0x00,0x02,0x12,0x05,0xec,0x00,0x0b,0x00,0x62,0x40,0x3c,0x0a,0x07,0x06,0x0b,0x06,0x04,0x01,0x05,0x00,0x00,0x00,0x02,0x05,0x0a, -0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x70,0x03,0x01,0x03,0x08,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x06,0x05,0x00,0x0b,0x0b,0x05,0x02,0x09,0x00,0x02,0x15,0x40,0x0d,0x01,0x5d,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b, -0x2b,0x2b,0x39,0x39,0xc6,0x10,0xc2,0x2f,0x31,0x30,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x02,0x12,0xae,0xa4,0xaa,0xaa,0xa4,0xae,0x03,0x2b,0x7b,0xfd,0x50,0x02,0x42,0x77,0x9d,0x77,0x03,0x0d,0xfd,0x62,0x7a,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a, -0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xa2,0x01,0x5e,0x00,0x14,0xb4,0x01,0x38,0x05,0x26,0x01,0xb8,0xff,0xf4,0xb4,0x39,0x36,0x13,0x2c,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0c,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xe0,0x12,0x00,0x00,0x14,0xb4,0x01,0x31,0x11, -0x26,0x01,0xb8,0xff,0xec,0xb4,0x32,0x2f,0x0f,0x16,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xec,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x05,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0c,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xe0,0x76,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x0f,0x01,0x00,0x04,0xca, -0x05,0x00,0x0e,0x40,0x03,0x04,0x07,0x42,0x07,0x04,0x1c,0x00,0x3f,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe1,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0x94,0x94,0x02,0xcb,0x03,0x53,0xf8,0x00,0x03,0x54,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17, -0x00,0xaa,0x40,0x38,0x00,0x07,0x01,0x00,0x07,0x01,0x10,0x05,0x10,0x0d,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x05,0x00,0x04,0x91,0x2b,0x30,0x05,0x0c,0x91,0x59,0x05,0x03,0x00,0x11,0x91,0x59,0x00,0x12,0x0f,0x0f,0x00,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7d,0x15,0xb8,0xff,0xf0,0xb3, -0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x1b,0x0b,0x06,0x4d,0x15,0x15,0x19,0x02,0x0d,0x04,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1, -0x2b,0x2b,0x2b,0x39,0x39,0xce,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21,0x15,0x21,0x11,0x33,0x20, -0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x04,0x18,0x05,0xf4,0x00,0x1a, -0x00,0x25,0x00,0xfa,0x40,0x17,0x00,0x0e,0x01,0x10,0x06,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x05,0x0c,0x05,0x0e,0x0e,0x0f,0x03,0x03,0x02,0x04,0x0d,0x06,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0a,0x06,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x46,0x09,0x06,0x4d,0x05,0x04,0x30, -0x09,0x12,0x48,0x04,0x04,0x19,0x0d,0x0c,0x09,0x00,0x01,0x1b,0x19,0x1b,0x95,0x59,0x19,0x10,0x13,0x21,0x95,0x59,0x13,0x16,0x0e,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0d,0x06,0x4d,0x0d,0x0d,0x10,0x05,0x01,0x24,0x0f,0x08,0x01,0x08,0x08,0x16,0x10,0x04,0x0d,0x06,0x4d,0x10,0x04,0x0c,0x06,0x4d,0x10,0x04,0x0b,0x06,0x4d,0x10,0x83,0x24, -0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xe3,0x40,0x2a,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1e,0x0a,0x0d,0x06,0x4d,0x1e,0x0a,0x0c,0x06,0x4d,0x1e,0x0a,0x0b,0x06,0x4d,0x1e,0x83,0x16,0x10,0x0d,0x06,0x4d,0x16,0x0c,0x0c,0x06,0x4d,0x16,0x15,0x0b,0x06,0x4d,0x16,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, -0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x39,0xc6,0x11,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc6,0x32,0x12,0x39,0x2f,0x2b,0x33,0x01,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x5f,0x5e,0x5d,0x01,0x37, -0x26,0x27,0x05,0x27,0x25,0x26,0x27,0x33,0x16,0x17,0x25,0x17,0x05,0x00,0x11,0x14,0x00,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x12,0x04,0x5a,0x6c,0xfe,0xd5,0x33,0x01,0x0e,0x76,0x92,0xdd,0x4b,0x61,0x01,0x21,0x37,0xfe,0xf8,0x01,0x47,0xfe,0xfe,0xde,0xde,0xfa,0x01, -0x04,0xdc,0x7b,0x75,0x94,0xaa,0xa6,0x94,0x8b,0xa3,0x03,0xc8,0x03,0xa2,0x68,0x97,0x62,0x83,0x69,0x60,0x34,0x54,0x90,0x5e,0x82,0xfe,0xcd,0xfe,0x2d,0xf0,0xfe,0xcc,0x01,0x18,0xf2,0xf3,0x01,0x2f,0x88,0xd9,0xbb,0xb5,0xd3,0xd8,0xb4,0x01,0x90,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00, -0x01,0x07,0x00,0x8e,0x01,0x33,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x30,0x0f,0x11,0x05,0x00,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xee,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x33,0x16,0x18,0x0c,0x00, -0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x7b,0x40,0x20,0x00,0x08,0x01,0x10,0x06,0x05,0x0d,0x91,0x59,0x00,0x05,0x10,0x05,0x02,0x0c,0x03,0x05,0x0c,0x0e,0x91,0x59,0x0c,0x05,0x0c,0x03,0x02,0x12,0x03,0x03,0x09,0x7d,0x12,0xb8,0xff, -0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f, -0x2b,0xe9,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x11,0x23,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xad,0xb8,0xfe,0xb0,0x01,0x3e,0xfe,0xc2, -0x05,0x9a,0xe2,0xdf,0xcd,0xcc,0xfe,0xfe,0x02,0xe3,0xfd,0xb4,0x9c,0x91,0x01,0x1f,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x00,0x06,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d, -0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40, -0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23, -0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x07,0xc3,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02, -0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x00,0x01,0x00,0xe8,0x02,0x12,0x04,0x94,0x02,0x98,0x00,0x03,0x00,0x30,0x40,0x0b,0x02,0x01,0xbe,0x59,0x0f,0x02,0x01,0x0d,0x03,0x02,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x04,0x05,0x01,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x00, -0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0x02,0x12,0x86,0x00,0x00,0x01,0x01,0x0c,0x00,0xa4,0x04,0x6e,0x04,0x06,0x00,0x0b,0x00,0x1d,0xb6,0x0b,0x4f,0x05,0x01,0x05,0x02,0x08,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x08,0x19,0x2f,0x2b,0x18,0xc4,0x00,0x19,0x2f,0x5d,0x18,0xc4,0x31, -0x30,0x01,0x07,0x01,0x01,0x27,0x01,0x01,0x37,0x01,0x01,0x17,0x01,0x04,0x6e,0x5e,0xfe,0xac,0xfe,0xae,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x02,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x54,0x5e,0xfe,0xac,0x00,0x00,0x01,0x00,0x50,0x02,0x48,0x01,0xc2,0x05,0xb0, -0x00,0x0c,0x00,0x17,0x40,0x0a,0x0c,0xcc,0x04,0x00,0x0c,0x28,0x05,0x04,0x0b,0x27,0x00,0x3f,0xdd,0xcd,0x3f,0x01,0x2f,0xce,0xed,0x30,0x31,0x01,0x11,0x06,0x06,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x40,0x39,0x78,0x3f,0x26,0x46,0x48,0x4c,0x2c,0x46,0x02,0x48,0x02,0xc2,0x2e,0x47,0x1b,0x87,0x0d,0x22,0x2b,0x35,0x20,0xfc,0x98, -0x00,0x01,0x00,0x68,0x02,0x48,0x02,0x92,0x05,0xae,0x00,0x1f,0x00,0x3c,0x40,0x24,0x1f,0x16,0xcc,0x09,0x09,0x21,0x1d,0xcc,0x0e,0x02,0x0f,0x0e,0x2b,0x1d,0x3b,0x1d,0x4b,0x1d,0x9b,0x1d,0xab,0x1d,0xbb,0x1d,0x06,0x1d,0x09,0x01,0x0c,0xe6,0x11,0x27,0x1f,0xe6,0x01,0x28,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x5d,0xcc,0x32,0x01, -0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x15,0x21,0x02,0x92,0xfd,0xd6,0x3b,0x59,0x68,0x59,0x3b,0x4b,0x3f,0x77,0x61,0x53,0x98,0x38,0x5e,0x44,0x26,0x39,0x56,0x64,0x56,0x39,0x01,0x93,0x02,0x48,0x52, -0x3d,0x61,0x54,0x4b,0x50,0x5a,0x38,0x3a,0x40,0x66,0x95,0x4c,0x22,0x3f,0x58,0x37,0x4a,0x73,0x5c,0x48,0x3d,0x37,0x1c,0x0b,0x00,0x01,0x00,0x81,0x02,0x33,0x02,0x8e,0x05,0xae,0x00,0x20,0x00,0x61,0x40,0x35,0x00,0x16,0x01,0x10,0x05,0x19,0x09,0x0a,0x0a,0x09,0xe6,0x59,0x0a,0x0a,0x03,0x14,0x0f,0x11,0x1f,0x11,0x02,0x0f,0x03,0x11, -0x0f,0x14,0x0f,0xe6,0x59,0x14,0x27,0x01,0x03,0x1f,0x03,0xe6,0x59,0x1f,0x29,0x19,0x0a,0x0d,0xcd,0x17,0x17,0x1c,0xcc,0x06,0x06,0x22,0x0a,0x11,0x00,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12, -0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x81,0x67,0x72,0x50,0x5c,0xdb,0x54,0x50,0xc5,0x90,0x5e,0x5c,0x57,0x7e,0x71,0x86,0x91,0xb1,0xaa,0x8e,0x89,0x02,0x68,0x8e, -0x4c,0x4b,0x40,0x8d,0x76,0x86,0x77,0x45,0x8b,0x33,0x77,0x60,0x97,0x36,0x04,0x2a,0xa0,0x75,0x94,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd4,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x00,0xf1,0x04,0x42,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff, -0x00,0x50,0x00,0x00,0x06,0xaa,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x00,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x14,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0x00,0x00,0x06,0xeb,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x06, -0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x41,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x28,0x2c,0x00,0x3f,0x35,0x35,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x80,0x40,0x3e,0x10,0x01,0x04,0x07,0x07,0x04,0x91,0x59,0x07,0x07,0x0c,0x02,0x0c,0x0f,0x91,0x59,0x0c,0x09,0x02,0x0c,0x91,0x2b,0x30,0x09,0x0a,0x91, -0x59,0x09,0x03,0x02,0x12,0x0d,0x0d,0x09,0x09,0x13,0x03,0x00,0x00,0x07,0x0c,0x10,0x03,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x05,0x03,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x03,0x0a,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xce,0xf1, -0x2b,0x2b,0x2b,0x17,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x58,0xf4,0xa8,0xa0,0xa0,0x02,0xd8,0xfd,0xd0, -0x02,0x06,0xfd,0xfa,0xf4,0x01,0x16,0xfe,0xea,0x01,0x16,0x9c,0x03,0xe8,0x98,0xfe,0x10,0x97,0xc9,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x19,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xe2,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0xda,0x40,0x09,0x1d,0x23,0x0d,0x08,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b, -0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xbe,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x17,0x2c,0x26,0x20,0x17,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x01,0x72,0x06,0xe2,0x02,0x26,0x00,0x2c, -0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x41,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x0d,0x02,0x03,0x25,0x01,0x04,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xfe,0x50,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x76,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x0f, -0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x03,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x66,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x3e,0x17,0x19,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x23,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x24,0x17,0x19,0x10,0x0a,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x68,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xe0, -0x01,0x86,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x36,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0c,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x11, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x98,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0xcb,0x40,0x55,0x0f,0x06,0x01,0x10,0x05,0x24,0x18,0x0c,0x00,0x4d,0x18,0x15,0x0f,0x12,0x12,0x0f,0x96,0x59,0x0f,0x12,0x1f,0x12,0x2f,0x12,0x03,0x09,0x03,0x12,0x12,0x0b,0x14,0x00,0x0d,0x1d,0x0b,0x1d,0x95,0x59, -0x0b,0x10,0x02,0x23,0x05,0x23,0x95,0x59,0x05,0x16,0x00,0x15,0x10,0x10,0x01,0x08,0x17,0x17,0x0f,0x12,0x15,0x18,0x19,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01, -0x01,0x27,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x17,0x39,0xca,0x2f,0x11,0x12,0x39, -0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x26, -0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x88,0xac,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6, -0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x00,0x01,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x06,0x00,0xc3,0x00,0x00,0xff,0xff,0x00,0x16, -0x00,0x00,0x05,0x12,0x07,0x1b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x13,0x19,0x06,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, -0x00,0xdb,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x26,0x20,0x10,0x14,0x25,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0xfe,0x70,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x00,0xdf,0x03,0x79,0x00,0x00,0xff,0xff,0x00,0x5a,0xfe,0x70,0x03,0x83,0x04,0x18,0x02,0x26, -0x00,0x44,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x00,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x07,0x68,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x2a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x04,0x13,0x10,0x01,0x0d,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, -0x05,0xb3,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9c,0x03,0xb7,0x06,0x63,0x00,0x12,0x40,0x0a,0x02,0x21,0x00,0x02,0x82,0x20,0x20,0x10,0x10,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0xe8,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x70,0x03,0xb4,0x05,0x9a, -0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x70,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xa1,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x68,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb1,0x01,0x5c,0x00,0x16, -0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x0c,0x02,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0c,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1c,0x1b,0x16,0x0f,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35, -0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x4c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x11,0x08,0x06,0x03,0x05,0x3e,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x8e,0x00,0x00,0x02,0x13,0x07,0xbb,0x02,0x26,0x00,0x4f, -0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x07,0x01,0xb1,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x8d,0x06,0x11,0x00,0x14,0xb3,0x01,0x09,0x03, -0x01,0xb8,0xff,0xe5,0xb4,0x06,0x06,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xc3,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xc7,0x06,0x5d,0x00,0x12,0x40,0x0a,0x01,0x07,0x00,0x01,0x58,0x06,0x06,0x03,0x03,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xbc, -0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x11,0xfd,0xd8,0x00,0x0e,0xb9,0x00,0x01,0xff,0x9e,0xb4,0x0f,0x0f,0x05,0x05,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x87,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x56,0xfd,0xd8,0x00,0x0b,0xb6,0x01, -0x78,0x07,0x07,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x66,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xe2,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x15,0x17,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8, -0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xec,0x40,0x09,0x14,0x16,0x04,0x0f,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x7e,0x01,0x5c, -0x00,0x16,0xb9,0x00,0x01,0xff,0xe4,0x40,0x09,0x19,0x19,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0c,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xda,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x18,0x0b,0x02,0x25,0x01,0x15,0x11,0x26,0x00, -0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0xe1,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8, -0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x3f,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x66,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0x8e, -0x01,0x5f,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x06,0x0a,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xa4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x13,0x12,0x09,0x09,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc, -0x00,0x00,0x04,0xc0,0x07,0x68,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xe3,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x97,0x00,0x00,0x02,0xc9,0x06,0x0c,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x00,0xe0,0x31,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x12,0x08,0x10,0x25,0x01, -0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x65,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x29,0x01,0x5b,0x00,0x08,0xb3,0x01,0x38,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0a,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x00,0x8e, -0x00,0xbe,0x00,0x00,0x00,0x08,0xb3,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x50,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdd,0x01,0x75,0x00,0x00,0x00,0x0b,0xb6,0x01,0x16,0x16,0x0c,0x06,0x4d,0x16,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x50,0x02,0x9a,0x05,0x2f,0x02,0x26, -0x00,0x57,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x13,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x07,0x68,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x9d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x0a,0x09,0x04,0x01,0x3e,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x2b,0xff,0xea, -0x03,0xd3,0x05,0x72,0x00,0x14,0x00,0x18,0x00,0x71,0x40,0x31,0x18,0x80,0x17,0x07,0x14,0x14,0x12,0x95,0x02,0x16,0x0a,0x0a,0x0e,0x0b,0x06,0x95,0x40,0x07,0x0f,0x15,0x80,0x17,0x0c,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x84,0x04,0xb8,0xff,0xe6, -0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xd6,0x1a,0xcd,0x00,0x3f,0x1a,0xed,0x33,0x32,0x33,0x2f,0x3f,0xed,0x32,0x2f,0x10,0xd4,0x1a,0xcd,0x31,0x30,0x25,0x06,0x23,0x20,0x11, -0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x01,0x03,0x23,0x13,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x01,0x52,0xa6,0x7b,0x75,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x04,0xdc,0xfe,0xfc,0x01, -0x04,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0xa3,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x8e,0x01,0x87,0x00,0x24,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x13,0x11,0x17,0x05,0x0d,0x25,0x02,0x01,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x30,0x0e,0x04,0x0e,0x05,0x26,0x00,0x2b,0x5d,0x35,0x35,0x01,0x2b,0x35,0x35, -0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x1c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x18,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x15,0x1b,0x08,0x11,0x25,0x02,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x5c,0x02,0x26,0x00,0x38, -0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x93,0x01,0x5c,0x00,0x45,0x40,0x12,0x01,0x10,0x0c,0x0d,0x06,0x4d,0x10,0x16,0x0c,0x06,0x4d,0x10,0x12,0x0b,0x06,0x4d,0x02,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x10,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x05,0x10,0x10,0x05,0x0d,0x25,0x02,0x01, -0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x2b,0x2b,0x2b,0x35,0x2b,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x05,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0a,0x14,0x14,0x08,0x11,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b, -0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfa,0x40,0x09,0x0b,0x0b,0x08,0x09,0x3e,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0a, -0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x0b,0x0b,0x05,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x06,0xe1,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5c,0x00,0x16,0xb9,0x00, -0x01,0xff,0xed,0x40,0x09,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x05,0x85,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x17,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x4c,0x40,0x20,0x02,0x12,0x05,0x00,0x91,0x59,0x05,0x03,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf2,0x40,0x09,0x0c, -0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x1b, -0x00,0xb0,0x40,0x18,0x1a,0x19,0x91,0x59,0x1a,0x06,0x00,0x1a,0x91,0x2b,0x30,0x06,0x0c,0x91,0x59,0x06,0x04,0x00,0x12,0x91,0x59,0x00,0x13,0x18,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xd0,0xb3,0x0b,0x06,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x1b,0x0b,0x06,0x4d,0x0f,0x15,0x19,0x18,0xff,0x3a,0x09,0x06,0x0d,0x06,0x4d,0x09, -0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xee,0xb6,0x0c,0x06,0x4d,0x30,0x15,0x01,0x15,0xb8,0xff,0xe0,0x40,0x27,0x0b,0x06,0x4d,0x15,0x15,0x1d,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d, -0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22, -0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x13,0x21,0x35,0x21,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x29,0x01,0x6b,0xfe,0x8d,0xfe,0xd2,0xe1,0xfe,0xe7,0x01,0x12,0xdd,0xec,0x01,0x0f,0xfe,0xf9,0x1f,0xfd,0xe7,0x02,0x19,0x18,0x01,0x8f,0x01,0x45,0x01,0x57,0x01,0x9f,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe, -0x68,0x05,0x32,0xfe,0xba,0xfe,0xf8,0xfe,0xf6,0xfe,0xbd,0x01,0x34,0x01,0x16,0x01,0x18,0x01,0x39,0xfd,0x64,0x9c,0x00,0x03,0x00,0x60,0xff,0xf1,0x05,0xa7,0x05,0xa7,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xf6,0x40,0x1a,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x0e,0x00,0x0e,0x00,0x01,0x0d, -0x04,0x01,0x13,0x24,0xb8,0xff,0xe8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7e,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0x40,0x25,0x0c,0x06,0x4d,0x12,0x20, -0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x7e,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe8,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x17,0x1f,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01, -0x7e,0x02,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x0c,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x40,0x29,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b, -0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23, -0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x52,0x9c,0x2b,0xf9,0xfe,0xce,0x01,0x31,0xfc,0x29,0x9c,0x2a,0xfc,0x01,0x2f,0xfe,0xcc,0xf5,0x2c,0x2c,0xb6,0xcf,0xd3,0xb4,0xc6,0x29,0xb3,0xd6,0xcf,0xb8,0xba,0xc9,0xc9,0x01,0x3c,0xfc,0xf6,0x01,0x2a,0x95,0x95,0xfe,0xd5,0xf5,0xfd,0xfe,0xc5,0x03,0xca,0xfc,0xcc,0xdc,0xc4,0xb9,0xdb,0xfc,0xcc, -0x03,0x34,0xda,0xbb,0xc4,0xdb,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x19,0x00,0x26,0x01,0x02,0x40,0x0b,0x0d,0x14,0x01,0x10,0x04,0x25,0x10,0x10,0x00,0x4d,0x15,0xb8,0xff,0xf0,0xb3,0x10,0x00,0x4d,0x14,0xb8,0xff,0xd0,0xb3,0x10,0x00,0x4d,0x0e,0xb8,0xff,0xf0,0x40,0x0e,0x10,0x00,0x4d,0x08,0x10,0x10,0x00,0x4d, -0x03,0x28,0x10,0x00,0x4d,0x25,0xb8,0xff,0xe8,0x40,0x36,0x0b,0x0c,0x00,0x4c,0x1f,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x10,0x18,0x0b,0x0c,0x00,0x4c,0x05,0x11,0x14,0x1a,0x04,0x07,0x0d,0x13,0x12,0x0f,0x0d,0x1d,0x95,0x59,0x0d,0x10,0x02,0x17,0xec,0x59,0x02,0x15,0x07,0x23,0xec,0x59,0x07,0x16,0x75,0x11,0x01, -0x1a,0xb8,0xff,0xe8,0xb4,0x09,0x15,0x01,0x4c,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0x40,0x3d,0x0b,0x06,0x4d,0x14,0x11,0x0a,0x1a,0x05,0x00,0x1a,0x11,0x12,0x20,0x14,0x05,0x0a,0x12,0x83,0x13,0x70,0x00,0x01,0x00,0x00,0x28,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06,0x4d,0x20, -0x83,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x10,0x0b,0x06,0x4d,0x2f,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xd4,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x11,0x39,0x39,0x2b,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00, -0x18,0x3f,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x33,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x37,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04, -0xc5,0x35,0x2a,0x9a,0x36,0x04,0x94,0xfe,0xf6,0xba,0xe0,0x01,0x02,0xdc,0x7e,0xc6,0x33,0x04,0x55,0xac,0xc1,0x22,0x4c,0x3c,0x17,0x11,0xfe,0xa4,0x26,0x9c,0x6e,0x8e,0xa9,0x8f,0x79,0x6a,0xad,0x3a,0x05,0x0d,0x01,0x25,0xfe,0xcb,0x01,0x1f,0xdb,0xfa,0x01,0x3c,0x96,0x88,0x01,0x06,0xfe,0x0a,0xdb,0x9d,0x05,0x01,0x71,0xbe,0xca,0xf2, -0xb2,0x9e,0xd6,0xb5,0xb0,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x1c,0x00,0x27,0x00,0xdf,0x40,0x0c,0x0d,0x27,0x01,0x0d,0x1e,0x01,0x02,0x00,0x01,0x10,0x04,0x19,0xb8,0xff,0xc0,0x40,0x0a,0x0b,0x0c,0x00,0x4c,0x17,0x30,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe0,0x40, -0x35,0x0c,0x00,0x4d,0x09,0x1b,0x22,0x1d,0x16,0x10,0x01,0x03,0x1b,0x03,0x95,0x59,0x1b,0x01,0x10,0x22,0x95,0x59,0x10,0x16,0x1d,0x16,0x25,0x18,0x01,0x01,0x0d,0x06,0x83,0x18,0x18,0x13,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x25,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x25,0xb8,0xff, -0xf0,0xb3,0x0c,0x06,0x4d,0x25,0xb8,0xff,0xe0,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x25,0x30,0x25,0x02,0x25,0x25,0x29,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x83,0x13,0x10,0x0d,0x06,0x4d,0x13,0x10,0x0c,0x06,0x4d,0x13,0x10,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1, -0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x12,0x39,0x39,0x11,0x12,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e, -0x02,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x03,0x04,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe7,0xa8,0xac,0x64,0x79,0x68,0x78,0xa2,0xba,0x61,0xfe,0xe6,0xef,0xdb,0xfe,0xed,0xd4,0xcb,0xee,0xd0,0xb6,0xa4,0xbd,0xfe,0x92,0xb5,0x96,0x9d,0xba,0x8f,0x05,0xbe,0xb7,0x65,0x45, -0x3a,0x2f,0x69,0x49,0x63,0x9a,0xbf,0x6f,0xe9,0xfe,0xef,0x01,0x0b,0xd7,0x9b,0x01,0x02,0x58,0x93,0xa3,0x80,0x8a,0xfd,0x75,0x94,0xfe,0xeb,0x9d,0xb9,0xc0,0xa1,0x75,0xbf,0x00,0x00,0x01,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x25,0x00,0x9b,0x40,0x09,0x00,0x11,0x01,0x0f,0x00,0x01,0x10,0x04,0x0d,0xb8,0xff,0xe8,0x40,0x58, -0x0b,0x0c,0x00,0x4c,0x08,0x1e,0x19,0x19,0x1e,0xec,0x59,0x19,0x0f,0x02,0x19,0xec,0x0c,0x30,0x12,0x14,0x0f,0x14,0x95,0x59,0x0f,0x10,0x00,0x25,0x01,0x0e,0x03,0x25,0x23,0x02,0x23,0x95,0x59,0x02,0x16,0x08,0x0c,0x1b,0x12,0x00,0x00,0x27,0x05,0x16,0x83,0x0c,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06, -0x4d,0x20,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x2f,0x05,0x3f,0x05,0x02,0x05,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x00,0x18,0x2f,0x2b, -0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x26,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x3b,0x82,0xc3,0xc3,0xe1,0x8b,0x72,0x56,0x80,0xd5,0xb2,0x8f,0x7f,0x85, -0x93,0xd7,0xa2,0x7d,0x49,0x2d,0x49,0x43,0xfe,0xd0,0x8d,0x80,0xa7,0x8f,0x16,0x2f,0xa5,0x89,0x5d,0x88,0x15,0x04,0x12,0x81,0x53,0x88,0x98,0x2d,0xa5,0x47,0x93,0x4b,0x5c,0x04,0x92,0x04,0xb2,0x4b,0x5b,0x49,0x00,0x02,0x00,0x61,0xff,0xe8,0x04,0x82,0x04,0x00,0x00,0x0c,0x00,0x17,0x00,0x7b,0x40,0x22,0x01,0x0e,0x0b,0x0e,0x96,0x59, -0x0b,0x0f,0x06,0x13,0x95,0x59,0x06,0x16,0x00,0x00,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x83,0x16,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x16,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x16,0x16,0x19,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83, -0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x16,0x15,0x14,0x02,0x23,0x22,0x00,0x35,0x10,0x21,0x21, -0x05,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x82,0xff,0x00,0x8e,0xfc,0xd4,0xdb,0xfe,0xfc,0x02,0x09,0x02,0x18,0xfe,0x6c,0x76,0xfe,0x92,0xa9,0x8d,0x89,0x9f,0x03,0x7c,0xb6,0xdd,0xe3,0xfe,0xe2,0x01,0x1f,0xef,0x02,0x0a,0x84,0xfe,0x73,0xac,0xcf,0xd1,0xaf,0xdc,0x00,0x01,0x00,0x22,0xff,0xf4,0x03,0xc5,0x04,0x00, -0x00,0x13,0x00,0x7a,0x40,0x43,0x53,0x10,0x01,0x00,0x0f,0x01,0x0b,0x03,0x0f,0x0d,0x00,0x13,0x00,0x96,0x59,0x13,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x30,0x00,0x70,0x00,0x02,0x00,0x00,0x15,0x02,0x0f,0x0f,0x0b,0x14,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0b,0x08, -0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0b,0x0b,0x15,0x14,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x10,0x18,0xd4,0xc6,0x5f,0x5e,0x5d,0x31,0x30,0x5d,0x01,0x21, -0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x23,0x22,0x07,0x35,0x36,0x33,0x21,0x03,0xc5,0xfe,0x79,0x74,0x36,0x36,0x42,0x48,0xf9,0x8d,0x72,0x7a,0x4c,0xa4,0x02,0xb3,0x03,0x7c,0xfd,0x96,0x8e,0x14,0x8e,0x16,0x01,0x20,0x02,0x68,0x58,0x94,0x48,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x38,0x04,0x18,0x00,0x1b,0x00,0x25, -0x00,0xfe,0x40,0x0f,0x06,0x17,0x01,0x09,0x15,0x01,0x09,0x0e,0x01,0x0d,0x0c,0x01,0x10,0x03,0x1f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x15,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x10,0xb8,0xff,0xc0,0x40,0x2a,0x0b,0x0c,0x00,0x4c,0x16,0x23,0x95,0x59,0x16,0x10,0x0d,0x0f,0x13,0x05,0x02,0x1c,0x02,0x1c,0x95,0x59,0x02,0x16, -0x03,0x1c,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x20,0x83,0x19,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x56,0x0b,0x06,0x4d,0x19,0x0e,0x02,0x05,0x0a,0x42,0x02,0x0d,0x01,0x0d,0x0d,0x05,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c, -0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x0f,0x83,0x50,0x0a,0x60,0x0a,0x02,0x0f,0x0a,0x01,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x18,0x0b,0x06,0x4d,0x0a,0x0a,0x26,0x1c,0x13,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x10,0x0b,0x06,0x4d,0x02,0x84,0x05,0x05,0x27,0x26,0x2f,0x27,0x3f,0x27,0x02,0x5d, -0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x5d,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d, -0x05,0x06,0x27,0x11,0x23,0x11,0x06,0x27,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0x04,0x1e,0x94,0x18,0x04,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98, -0xc2,0x93,0x67,0x82,0x18,0x04,0x04,0xfe,0x36,0x01,0xca,0x04,0x04,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x52,0xff,0x62,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x1a,0x03,0x02,0xd9,0x59,0x0f,0x03, -0x01,0x0c,0x03,0x03,0x07,0x40,0x07,0x06,0xd9,0x59,0x1f,0x07,0x2f,0x07,0x02,0x07,0x07,0x03,0x04,0x00,0x2f,0x32,0x2f,0x33,0x00,0x2f,0x5d,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x11,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xeb,0x77,0x77,0xed,0x77,0x77,0xff,0xff,0x00,0xb4, -0xff,0xee,0x03,0x23,0x05,0x9a,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x04,0x01,0x91,0x00,0x00,0x00,0x01,0x00,0x6e,0x02,0xcd,0x02,0xc2,0x05,0xb0,0x00,0x12,0x00,0x2b,0x40,0x16,0x00,0x0b,0x24,0x04,0x0f,0x07,0x0f,0x52,0x59,0x07,0x04,0x03,0x03,0x0b,0xc2,0x0c,0x0c,0x14,0x04,0x00,0xc2,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f, -0xe1,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc4,0x31,0x30,0x13,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xee,0x80,0x80,0x04,0x43,0x8f,0x78,0x86,0x82,0x97,0x4a,0x71,0x02,0xcd,0x02,0xcf,0x73,0x87,0x94,0x84,0xfe,0x35,0x01,0xc3,0xb0,0x79,0x55,0x00,0x00,0x04,0x00,0xbc, -0xff,0xe8,0x08,0xa0,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0xd6,0x40,0x1e,0x2b,0x41,0x30,0x3b,0x04,0x33,0x44,0x36,0x38,0x33,0x38,0x95,0x59,0x33,0x1c,0x1d,0x40,0x1a,0x17,0x20,0x1d,0x1d,0x20,0x95,0x59,0x1d,0x1d,0x03,0x13,0x27,0xb8,0xff,0xc0,0x40,0x3e,0x0b,0x0e,0x48,0x27,0x29,0x44,0x29,0x95,0x59,0x44,0x16, -0x25,0x23,0x13,0x23,0x95,0x59,0x13,0x16,0x0b,0x00,0x91,0x59,0x0b,0x0b,0x03,0x02,0x03,0x0a,0x91,0x59,0x03,0x03,0x02,0x12,0x36,0x36,0x41,0x83,0x2b,0x2b,0x47,0x27,0x3b,0x83,0x30,0x30,0x47,0x16,0x25,0x1f,0x1f,0x1d,0x1a,0x21,0x84,0x18,0x16,0x16,0x47,0x02,0x0e,0xb8,0xff,0xf8,0x40,0x11,0x0c,0x06,0x4d,0x06,0x7d,0x0e,0x0e,0x47, -0x0b,0x01,0x08,0x0c,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xe1,0x2b,0x32,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x39,0x2f,0xce,0xf1,0x39,0x39,0xc2,0x2f,0xc4,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f, -0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x04,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35, -0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x64,0xa8,0x01,0x38,0x01,0xce,0xfe,0xf8,0xeb,0x6b,0x5e,0x01,0x50,0xfe,0xc5,0x04,0x39,0x3a,0x5f,0x83, -0x75,0x9b,0x9b,0xa4,0xed,0xed,0x83,0x3b,0x2f,0x44,0x79,0x89,0xa2,0x40,0xf6,0x6c,0xb8,0x92,0x82,0x4e,0x60,0x72,0x48,0x58,0x6c,0x5e,0x8d,0x4b,0xb0,0x9a,0xa2,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xfe,0x54,0xd2,0xfe,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0xfb,0x08,0x20,0x8e,0x9e,0x01,0xd0,0x8a,0xfa,0x36,0xfe,0xd0,0x8a,0xfe,0x4d, -0xbf,0x22,0x71,0xb0,0x63,0x72,0x28,0x50,0x5c,0x3e,0x74,0x79,0x91,0x2e,0xa0,0x44,0x3f,0x32,0x39,0x2c,0x27,0x3f,0x70,0x4a,0x7d,0x8f,0xff,0xff,0x00,0xbc,0xff,0xe8,0x04,0x4e,0x05,0x9a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x2d,0x02,0x23,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0x32,0xb4,0x0a,0x10,0x02,0x03,0x25,0x01, -0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x1e,0x03,0x6c,0x05,0xd9,0x00,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x00,0x4d,0x02,0x06,0x00,0x00,0x00,0x36,0xb3,0x03,0x02,0x1a,0x1a,0xb8,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfe,0x40,0x18,0x0c,0x06,0x4d,0x1a,0x0e,0x0b,0x06,0x4d,0x01,0x00,0x0d,0x0d,0x02,0x0c,0x06,0x4d,0x0d,0x02, -0x0b,0x06,0x4d,0x2f,0x2a,0x01,0x5d,0x2b,0x2b,0x11,0x35,0x35,0x2b,0x2b,0x2b,0x11,0x35,0x35,0xff,0xff,0xff,0xd7,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00,0x01,0x07,0x00,0xb7,0xff,0x69,0x00,0x00,0x00,0x17,0xb2,0x00,0x00,0x00,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xef,0xb2,0x0b,0x06,0x4d,0x2b, -0x2b,0x11,0x35,0x00,0x00,0x01,0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x19,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0e,0x12,0x48,0x01,0xb3,0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xed,0x31,0x30,0x01,0x2b,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x02,0x00,0x8d,0x03,0xdb, -0x02,0x84,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x3b,0xb9,0x00,0x01,0xff,0xe8,0xb3,0x0e,0x12,0x48,0x05,0xb8,0xff,0xe8,0x40,0x17,0x0e,0x12,0x48,0x05,0x01,0xb3,0x40,0x04,0x00,0x03,0x00,0x0e,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x00,0x06,0x01,0x06,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0xe1,0x00,0x3f,0xc4,0x1a,0xfd,0xc4, -0x31,0x30,0x01,0x2b,0x2b,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x04,0x00,0x96,0xff,0xec,0x06,0x0e,0x05,0xae,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x2e,0x00,0x63,0x40,0x35,0x15,0x03,0x09,0x07,0x0c,0x07,0xe6,0x59,0x0c,0x24, -0x00,0x02,0x12,0x02,0xe6,0x59,0x12,0x27,0x17,0x15,0x1f,0x25,0xe7,0x59,0x1f,0x19,0x19,0x2a,0xe7,0x59,0x19,0x2d,0x28,0xcc,0x1c,0x1c,0x15,0x15,0x22,0xcc,0x2d,0x2d,0x30,0x0f,0x17,0x17,0x0f,0x09,0x14,0x14,0x05,0xcc,0x0f,0x2f,0xe1,0x33,0x2f,0xc6,0x11,0x33,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x32,0x2f,0xe1,0x00,0x3f,0x2b, -0x00,0x18,0x10,0xc4,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x30,0x31,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x17,0x25,0x01,0x23,0x01,0x03,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x02,0x03,0x22,0x06,0x15, -0x14,0x33,0x32,0x36,0x35,0x34,0x02,0xf7,0x4f,0x5a,0x76,0x8f,0x9a,0x56,0x76,0x1f,0x66,0x5c,0x80,0x8e,0xe4,0xb8,0x72,0x49,0x02,0xdf,0xfb,0x33,0x93,0x04,0xcc,0xd6,0x8d,0x95,0xe0,0xa9,0x83,0x98,0xdd,0x41,0x6c,0x94,0xa0,0x68,0x8f,0x04,0xf7,0x43,0xc3,0x7f,0xbc,0x4f,0x8d,0x35,0x9f,0x87,0xbf,0x01,0x00,0x32,0x1e,0xfa,0x66,0x05, -0x9a,0xfa,0x52,0xa4,0x84,0xb2,0x01,0x0a,0x9c,0x88,0xb5,0xfe,0xf5,0x02,0x76,0xd2,0x7d,0xb8,0xc6,0x86,0xbb,0x00,0x00,0x02,0x00,0x0e,0xff,0xe8,0x02,0x85,0x05,0xd3,0x00,0x17,0x00,0x20,0x00,0x4b,0x40,0x25,0x18,0x01,0x00,0x16,0x0a,0x05,0x00,0x20,0x17,0x17,0x05,0x13,0x05,0x1d,0xda,0x59,0x05,0x10,0x0e,0x13,0x0e,0xec,0x59,0x13, -0x13,0x10,0x1b,0x48,0x08,0x08,0x22,0x00,0x18,0x01,0x0a,0x83,0x16,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0x19,0xcd,0x12,0x39,0x39,0x11,0x39,0x39,0x31,0x30,0x13,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x01,0x11,0x14,0x16,0x33, -0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x35,0x07,0x13,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x0e,0xb2,0x7b,0x6f,0x64,0x77,0xfe,0xe3,0x1c,0x1e,0x30,0x96,0x70,0x71,0xc7,0x50,0xf8,0x6d,0x25,0x4c,0x1d,0x29,0x01,0xa6,0xec,0x01,0xc6,0xe2,0x99,0x87,0x68,0xc3,0xfe,0x79,0xfe,0x60,0x5a,0x29,0x6b,0xa2,0x58,0xf1,0xe1,0x62,0x02,0x2b, -0xbb,0x71,0x35,0x76,0x3e,0xb6,0x00,0x02,0x00,0x92,0x00,0x00,0x04,0x42,0x03,0xb0,0x00,0x03,0x00,0x07,0x00,0x3a,0x40,0x0d,0x07,0xf1,0x01,0x0e,0x06,0xf1,0x40,0x02,0x12,0x03,0x02,0x42,0x06,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01, -0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x3f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x11,0x21,0x11,0x92,0x03,0xb0,0xfc,0x50,0x4b,0x03,0x19,0x03,0xb0,0xfc,0x50,0x03,0x64,0xfc,0xe8,0x03,0x18,0x00,0x01,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x25,0x40,0x16,0x02,0x0e,0x40,0x03,0x02,0x01, -0x42,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x04,0x05,0x02,0x01,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x02,0x52,0xfe,0x31,0x03,0x8c,0xfe,0x30,0x01,0xd0,0x00,0x00,0x02,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x07,0x00,0x41,0x40,0x2a,0x06,0xf1, -0x02,0x0e,0x07,0xf1,0x40,0x01,0x03,0x02,0x42,0x02,0x20,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x09,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11, -0x21,0x13,0x11,0x21,0x11,0x83,0x01,0xcf,0xfe,0x31,0x4c,0x01,0x37,0x03,0x8c,0xfe,0x30,0x01,0x84,0xfe,0xc8,0x01,0x38,0x00,0x00,0x01,0x00,0xb2,0x00,0x89,0x04,0x23,0x03,0xfa,0x00,0x0b,0x00,0x25,0x40,0x15,0x03,0x0e,0x40,0x09,0x06,0x00,0x42,0x20,0x00,0x01,0x0f,0x06,0x01,0x09,0x03,0x0c,0x0d,0x06,0x00,0xff,0x3a,0x2b,0x01,0x5f, -0x5e,0x5d,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x24,0x33,0x32,0x00,0x04,0x23,0xfe,0xff,0xb6,0xb8,0xfe,0xfe,0x01,0x06,0xb2,0xb7,0x01,0x02,0x02,0x42,0xb8,0xfe,0xff,0x01,0x01,0xb8,0xb9,0xff,0xfe,0xfc,0x00,0x00,0x02,0x00,0x70,0x01,0xaa,0x02,0x66,0x03,0xa0,0x00,0x0b,0x00,0x17, -0x00,0x46,0x40,0x2d,0x0f,0xf1,0x03,0x0e,0x15,0xf1,0x40,0x09,0x00,0x20,0x0c,0x06,0x4d,0x06,0x00,0x42,0x12,0xf1,0x00,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0xf1,0x06,0x0f,0x06,0x1f,0x06,0x02,0x0b,0x03,0x00,0x40,0x09,0x0c,0x48,0x18,0x19,0x06,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x01,0x2b,0x00, -0x18,0x2f,0x1a,0xed,0xf4,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x66,0x92,0x69,0x67,0x94,0x92,0x69,0x67,0x94,0xfe,0x56,0x67,0x49,0x4a,0x64,0x66,0x4a,0x48,0x66,0x02,0xa6,0x6a,0x92,0x94,0x68,0x66,0x94,0x94,0x66,0x4a,0x66, -0x66,0x4a,0x49,0x65,0x67,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x8c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x56,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x06,0x07,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x2f,0x02,0x26, -0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x22,0x23,0x10,0x14,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x6c,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x87,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x30, -0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0e,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x06,0xe2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x31,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x32,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x05,0x85,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07, -0x00,0xdb,0x01,0x84,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0x8b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x12,0x0d,0x0c,0x02,0x03,0x25,0x01, -0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x2f,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfa,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x16,0x1c,0x1d,0x19,0x13,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4, -0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf3,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x02,0x03,0x3e,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf5,0x00,0x00,0x00,0x16, -0xb9,0x00,0x02,0x01,0x1f,0x40,0x09,0x1a,0x1a,0x19,0x13,0x3e,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe2,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x57,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x0f,0x15,0x02,0x03,0x3e,0x01,0x0c,0x05,0x26, -0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x85,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x71,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x08,0x1a,0x1a,0x0f,0x0f,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x6c,0x02,0x26, -0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x95,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x1d,0x1e,0x1a,0x10,0x0a,0x3e,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0e,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd1,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d, -0x2a,0x26,0x20,0x17,0x3e,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x06,0xe2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x4f,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x2f,0x1d,0x23,0x10,0x0a,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x85,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x70,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x26,0x26,0x13,0x13,0x3e,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x85,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x9c, -0x01,0x79,0x00,0x00,0x00,0x0b,0xb6,0x01,0x3f,0x1c,0x1a,0x05,0x19,0x25,0x01,0x2b,0x35,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xc6,0x00,0x18,0x00,0x25,0x00,0x29,0x00,0xbc,0xb6,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x28,0x26,0x26,0x19,0x10,0x28,0x80,0x26,0x13,0x05,0xb8, -0xff,0xc0,0x40,0x31,0x0b,0x0f,0x48,0x05,0x05,0x07,0x95,0x02,0x1c,0x0a,0x23,0x95,0x0d,0x16,0x17,0x0f,0x15,0x1d,0x95,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0, -0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x2b,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x2b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, -0x2b,0x17,0x33,0x2f,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x2b,0x10,0xde,0x1a,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x00,0x2b,0x2b,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x13,0x33,0x03,0x04,0x10,0xfd,0xe4,0xc1,0x8b,0xae,0x9c,0x01,0x7a,0x04,0x74,0xec,0xbe,0xea,0xfb,0xda,0xd1,0x62,0x04,0xa4,0xa4,0xa4,0x7c,0x9a,0xaa,0xa6,0x87,0x8b,0xac,0xfe,0x6b,0xa6,0x7b,0x75,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x13,0xe4,0x01,0x05,0x01,0x34,0xa6,0x8e, -0xfd,0xcf,0x97,0x79,0xaf,0xde,0xc6,0xaa,0xce,0xc3,0x03,0x8d,0x01,0x04,0xfe,0xfc,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x5e,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x10,0x0c,0x06,0x0b,0x3e,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0xbb,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x01,0xad,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x17,0x18,0x04,0x0f,0x3e,0x01,0x16,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x92,0x05,0x9a,0x00,0x13,0x00,0x17,0x00,0xa0, -0x40,0x5d,0x06,0x09,0x0d,0x17,0x04,0x13,0x10,0x10,0x13,0x91,0x59,0x10,0x10,0x0f,0x16,0x16,0x02,0x91,0x59,0x16,0x0f,0x00,0x16,0x91,0x2b,0x30,0x0b,0x0f,0x03,0x04,0x00,0x12,0x0d,0x10,0x16,0x03,0x00,0x01,0x12,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x12,0x0d,0x06,0x4d, -0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x19,0x09,0x0c,0x14,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x07,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b, -0x2b,0x2b,0xca,0x2f,0x11,0x12,0x17,0x39,0x00,0x3f,0xc4,0x3f,0xc4,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x21,0x15,0x21,0x35,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa0,0xa0, -0xa8,0x02,0xe6,0xa8,0xa0,0xa0,0xfc,0x72,0x02,0xe6,0x02,0x8e,0xfd,0x72,0x04,0x04,0x98,0xfe,0xfe,0xfe,0xfe,0x98,0xdf,0xdf,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0xbd,0x40,0x40,0x00,0x19,0x01,0x03,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10,0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03, -0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x10,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d, -0x01,0x01,0x1c,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1c,0x01,0x5d,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b, -0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0xc4,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8, -0xa4,0xee,0x78,0xa4,0xa4,0x88,0x88,0xa4,0x01,0x4c,0xfe,0xb4,0x04,0x78,0xd8,0xa8,0xb2,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0xa4,0xc2,0xd6,0xcb,0xff,0xff,0xff,0xd0,0x00,0x00,0x02,0x51,0x07,0x0c,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0x01,0x5a,0x00,0x13,0x40,0x0b, -0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xad,0x00,0x00,0x02,0x2e,0x05,0xb2,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xd8,0x8a,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x13,0x00,0x00,0x02,0x0f,0x06,0x8b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xef,0x00,0x00,0x01,0xeb,0x05,0x2f,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, -0x00,0xd9,0xb1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x23,0x07,0x1a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xd9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01, -0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdb,0x00,0x00,0x02,0x00,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xda,0xb6,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x50,0xfe,0x70,0x01,0x64, -0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x04,0x04,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x66,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00,0x00,0x0b,0xb6,0x02,0x00,0x1e,0x10,0x0e,0x0f,0x25,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x62,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x13,0x0b,0x0c,0x3e,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x0f,0x06,0x0e,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07, -0x00,0xd7,0xff,0x7f,0x00,0x00,0x00,0x08,0xb3,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xea,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x14,0x11,0x06,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x05,0xec, -0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x10,0x0d,0x04,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0c,0x00,0x66,0x40,0x45,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x36,0x0c,0x01,0x2a,0x01, -0x01,0x36,0x00,0x01,0x05,0x15,0x06,0x0f,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x5d,0x33,0x33,0x2f, -0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x03,0xa4, -0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0x96,0x00,0x00,0xff,0xff,0x00,0x27,0xfe,0x85,0x01,0x4a,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x01,0x9c,0xff,0x4c,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x6a,0x00,0x00, -0x00,0x0e,0xb9,0x00,0x01,0xff,0xea,0xb4,0x16,0x14,0x08,0x01,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xb9,0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x16,0x13,0x08,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x05,0x40,0x05,0x9a, -0x00,0x1b,0x00,0xb8,0xb5,0x02,0x09,0x01,0x10,0x04,0x0c,0xb8,0xff,0xc0,0xb3,0x10,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0x40,0x3d,0x0c,0x00,0x4d,0x02,0x20,0x10,0x00,0x4d,0x17,0x19,0x14,0x19,0x91,0x59,0x14,0x02,0x0c,0x1b,0x10,0x08,0x03,0x1b,0x07,0x12,0x16,0x16,0x12,0x1b,0x1b,0x0c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d, -0x12,0x08,0x0b,0x06,0x4d,0x12,0x7e,0x7f,0x0f,0x01,0x0f,0x18,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x1a,0x0b,0x06,0x4d,0x0f,0x0f,0x1d,0x09,0x03,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40, -0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0xc4,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x26,0x27,0x23, -0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x01,0x90,0x16,0x18,0x06,0x08,0xa8,0xda,0x02,0xce,0x02,0x38,0x04,0x0a,0xa8,0xfe,0x93,0x4c,0x3d,0x4e,0x3f,0xbd,0x04,0x77,0x20,0x3a,0x35,0x90,0xfb,0xf4,0x05,0x9a,0xfb,0xd6,0x02,0x66,0x48,0x94,0x03,0xb6, -0xfa,0xa6,0xfe,0x1a,0x1f,0xa5,0x2c,0x01,0x0e,0x00,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x04,0x18,0x00,0x19,0x00,0x9c,0x40,0x2b,0x00,0x18,0x01,0x10,0x03,0x05,0x07,0x02,0x07,0x91,0x59,0x02,0x14,0x0c,0x17,0x0c,0x95,0x59,0x17,0x10,0x12,0x0f,0x11,0x15,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b, -0x06,0x4d,0x00,0x84,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x09,0x09,0x1b,0x13,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x84,0x11,0x02,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x11, -0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x11,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc4,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10, -0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xfe,0x9a,0x4c,0x3e,0x4e,0x40,0xbe,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x75,0xdb,0x01,0x5a,0x1a,0xfe,0x40,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, -0x06,0x8b,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xce,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x06,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x2f,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13, -0x40,0x0b,0x02,0x0a,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x1c,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xd7,0x01,0x5e,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x1b,0x0c,0x0c,0x3e,0x02,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x35,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x21,0x21,0x06,0x06,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00, -0x00,0x07,0x01,0x9c,0x00,0xe4,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x01,0x9c,0x19,0x00,0x00,0x0b,0xb6,0x01,0x1f,0x14,0x14,0x06,0x06,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xd7, -0x00,0xb1,0x01,0x5c,0x00,0x08,0xb3,0x01,0x3a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xd7,0x37,0x00,0x00,0x08,0xb3,0x01,0x30,0x11,0x26,0x00,0x2b,0x35,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0xa3,0x40,0x1a,0x0b,0x08, -0x05,0x02,0x02,0x05,0x91,0x59,0x02,0x0f,0x06,0x02,0x91,0x2b,0x30,0x0c,0x00,0x0f,0x00,0x91,0x59,0x0f,0x03,0x06,0x12,0x0d,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x2f,0x0b,0x06,0x4d,0x04,0x0e,0x06,0x07,0x09,0x42,0x09,0x07,0x00,0x0e,0x06,0x07,0x0d,0x42,0x2f,0x0d,0x3f,0x0d,0xcf,0x0d,0x03,0x0d,0x0d,0x10, -0x0b,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x7e,0x07,0x04,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x11,0x40,0x0c,0x00,0x4d,0x11,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x5d,0x2b,0x01, -0x10,0xe0,0x18,0x10,0xc6,0x2b,0x01,0x10,0xe2,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xf6,0xf6,0xa8,0xf9,0xf9,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfe,0x1a, -0x9b,0xfd,0x7f,0x02,0x81,0x9b,0x01,0xe6,0x98,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x93,0x40,0x45,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x1d,0x01,0x0d,0x10,0x10,0x0d,0x96,0x59,0x10,0x18,0x14,0x40,0x1c,0x19,0x11,0x14,0x14,0x11,0x95,0x59,0x14,0x0f,0x07,0x05,0x0a,0x05,0x95,0x59,0x0a,0x16,0x07,0x1e, -0x2f,0x1b,0x01,0x1b,0x1b,0x02,0x0e,0x12,0x10,0x14,0x19,0x1d,0x04,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xee,0xb6,0x0b,0x06,0x4d,0x0c,0x0c,0x20,0x1f,0x11,0x12,0x39,0x2f,0x2b,0x2b, -0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0xdc,0xc6,0x10,0xc0,0x2f,0x5d,0xc6,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc6,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x23,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33, -0x35,0x36,0x37,0x37,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x77,0xf8,0x45,0x52,0x3c,0x2f,0x3a,0x5f,0xfe,0xf3,0xa3,0xa3,0xb0,0xb0,0x04,0x4e,0x52,0x01,0x02,0xfe,0xfe,0xf8,0x02,0x23,0xf0,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x01,0x0d,0x85,0xcc,0x8c,0xfa,0x02,0x19,0x1a,0xfe,0xd1,0x8c,0xcc,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, -0x07,0x0e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x5f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x18,0x0e,0x05,0x0d,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd6,0x00,0x00,0x00,0x13, -0x40,0x0b,0x01,0x00,0x1c,0x12,0x08,0x11,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0x8b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x81,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x2f,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xf9,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x15,0x08,0x11,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x1a,0x02,0x26,0x00,0x38, -0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x84,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x0e,0x05,0x0d,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbe,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xfd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, -0xfb,0x40,0x09,0x18,0x12,0x08,0x11,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x70,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x10,0x00,0x00,0xff,0xff,0x00,0x90,0xfe,0x70,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x90, -0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x6a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xd7,0x02,0x5b,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0e,0x02,0x26,0x00,0x5a,0x00,0x00, -0x01,0x07,0x00,0xd7,0x01,0x80,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x69,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc5,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x14, -0x05,0x00,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0e,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x10,0x1a,0x1b,0x0c,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6, -0x00,0x00,0x02,0x62,0x06,0x02,0x00,0x0c,0x00,0x39,0x40,0x23,0x00,0x02,0x0a,0x02,0x95,0x59,0x0a,0x01,0x05,0x15,0x2f,0x00,0x01,0x00,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x84,0x06,0x06,0x0e,0x0d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0xc4,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10, -0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x62,0x2e,0x3e,0xac,0xa4,0xbd,0x89,0x4a,0x2c,0x05,0x5c,0x1b,0xd9,0xfb,0x62,0x04,0xa6,0xa1,0xbb,0x12,0x00,0x00,0x04,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x52,0x00,0x10,0x00,0x1b,0x00,0x23,0x00,0x27,0x00,0xfe,0x40,0x39,0x78,0x27,0x01,0x76, -0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01,0x02,0x08,0x0c,0x00,0x4d,0x1c,0x02,0x01,0x20,0x01,0x23,0x03,0x04,0x20,0x04,0x73,0x04,0x01,0x7c,0x01,0x01,0x20,0x30,0x0c,0x00,0x4d,0x00,0x16,0x01,0x90,0x27,0x01,0xa0,0x27,0x01,0x27,0xb8,0xff,0xc0,0xb3,0x1d,0x21,0x48,0x27,0xb8,0xff,0xc0, -0x40,0x39,0x16,0x19,0x48,0x27,0xa0,0x26,0xd0,0x26,0xe0,0x26,0x03,0x10,0x26,0x20,0x26,0x30,0x26,0x80,0x26,0x90,0x26,0x05,0x26,0x0b,0x02,0x91,0x1c,0x1c,0x16,0x00,0x11,0xc5,0x0b,0x10,0x06,0x40,0x16,0x03,0x04,0x00,0x12,0x24,0x80,0x26,0x26,0x14,0x19,0xc4,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0xb5,0x0c, -0x00,0x4d,0x08,0x08,0x06,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x00,0x4d,0x10,0x08,0x0c,0x00,0x4d,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0c,0x0c,0x00,0x4d,0x00,0x18,0x0c,0x00,0x4d,0x00,0x00,0x29,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x2b,0x2b,0x39,0x2f,0x2b, -0xe9,0xd4,0x2b,0xe9,0x10,0xc0,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0x3f,0x1a,0xcd,0x39,0xd4,0xed,0x11,0x12,0x39,0x2f,0xed,0x10,0xd6,0x5d,0x72,0xcd,0x2b,0x2b,0x71,0x72,0x5d,0x2b,0x31,0x30,0x01,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26, -0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x01,0x01,0x23,0x13,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40,0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x02, -0x04,0xfe,0xfa,0x7f,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x06,0x29,0xfe,0xb8,0x01,0x48,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x66,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xdc, -0x00,0xe9,0xff,0xc2,0x01,0x07,0x00,0x8e,0x01,0x0c,0x01,0x5c,0x00,0x33,0x40,0x25,0x04,0x0f,0x39,0x1f,0x39,0x3f,0x39,0x5f,0x39,0x90,0x39,0x05,0x20,0x39,0x5f,0x39,0x02,0x39,0x26,0x03,0x02,0x20,0x40,0x11,0x15,0x48,0x0f,0x20,0x01,0x10,0x20,0x4f,0x20,0xef,0x20,0x03,0x20,0x00,0x11,0x5d,0x71,0x2b,0x35,0x35,0x10,0xde,0x5d,0x5d, -0x34,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x07,0x66,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0x8e,0x03,0x30,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x17,0x16,0x15,0x11,0x09,0x25,0x02,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x06,0x0a,0x02,0x26,0x00,0xa0,0x00,0x00, -0x01,0x07,0x00,0x8e,0x02,0x55,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x11,0x37,0x37,0x1e,0x1e,0x25,0x03,0x38,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x92,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xfa,0x01,0x5c,0x00,0x13,0x40,0x0b,0x03,0x20,0x25,0x27,0x16,0x08, -0x25,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x31,0xff,0xae,0x04,0x96,0x06,0x0a,0x02,0x26,0x00,0xa1,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x00,0x00,0x00,0x16,0xb9,0x00,0x03,0xff,0xf9,0x40,0x09,0x25,0x25,0x16,0x10,0x3e,0x03,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x70, -0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0xff,0xff, -0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x43,0x02,0xa0,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07, -0x00,0x43,0x01,0xb5,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x96,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x5f,0x1d,0x01,0x00,0x1d, -0x1f,0x13,0x14,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x1d,0x1f,0x13,0x14,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe4,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8f,0x02,0x1c,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf1,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x05,0x87,0x02,0x26,0x00,0x5a, -0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x44,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xf6,0x01,0x5c,0x00,0x1a, -0xb3,0x01,0x00,0x11,0x01,0xb8,0xff,0xe6,0x40,0x09,0x11,0x0f,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x9e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd6,0x40,0x09,0x18,0x16,0x0c,0x00,0x25, -0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x1c,0x40,0x10,0x00,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x10,0x02,0x50,0x02,0x60,0x02,0x03,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01, -0xbe,0x00,0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x03,0x02,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x23,0x00,0x92,0x40,0x57,0x01,0x02, -0x22,0x03,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x03,0x09,0x03,0x0e,0x12,0x40,0x21,0x1e,0x0f,0x12,0x12,0x0f,0x9a,0x59,0x0f,0x12,0x1f,0x12,0x02,0x09,0x03,0x12,0x12,0x16,0x06,0x19,0x1b,0x16,0x1b,0x9a,0x59,0x16,0x04,0x06,0x05,0x9a,0x59,0x06,0x12,0x00,0x1f,0x4f,0x18,0x01,0x18,0x06,0x06,0x25,0x0f,0x12, -0x1e,0x21,0x04,0x01,0x08,0x0c,0x06,0x4d,0x01,0x8a,0x04,0x08,0x0b,0x10,0x0c,0x0b,0x10,0x0c,0x06,0x4d,0x0b,0x2f,0x2b,0xdd,0xc4,0x10,0xc6,0x32,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0xd4,0x5d,0xd4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a, -0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x03,0x10,0xfe,0xd8,0xc1,0x02,0xc7,0xfc,0x7c,0xda,0xc5,0xc5,0xc5,0xc5, -0xda,0xad,0x76,0x5f,0x63,0x70,0xe5,0x01,0x28,0xfe,0xd8,0x01,0x28,0x01,0xe8,0x09,0xf3,0x60,0x8c,0x87,0x47,0xf2,0x28,0x8c,0x88,0x8d,0x7d,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0x6b,0x8d,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xdd,0x04,0x78,0x04,0x48,0x00,0x12,0x00,0x19,0x00,0x53,0x40,0x2e,0x00,0x06,0x10,0x06,0x02,0x09,0x03,0x06, -0x06,0x00,0x04,0x13,0x00,0xc3,0x59,0x13,0x13,0x10,0x04,0x10,0x16,0xc3,0x59,0x10,0x0a,0x04,0xc3,0x59,0x0a,0x19,0x07,0x40,0x10,0x1e,0x48,0x07,0x07,0x00,0xaf,0x13,0x13,0x1b,0x19,0x01,0xaf,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12, -0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x01,0x21,0x13,0x16,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x07,0x11,0x26,0x23,0x22,0x07,0x11,0x04,0x78,0xfc,0xc4,0x01,0x78,0xb0,0xff,0x8c,0x48,0x68,0xdb,0x8f,0xee,0xfe,0xdd,0x01,0x29,0xe4,0xd8,0x01,0x30,0xda,0x82,0xad,0xaf,0x76,0x02,0x12, -0xfe,0x8e,0x79,0xf5,0x2a,0x98,0x7d,0x01,0x43,0xf2,0xfe,0x01,0x38,0xfe,0xe4,0xd0,0x01,0x29,0x7b,0x7b,0xfe,0xd7,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xe2,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x35,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x30,0x2d,0x00,0x3f, -0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x07,0x2a,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x07,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7d,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x44,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x8c,0xff,0xec,0x07,0x2c,0x05,0x9e,0x00,0x26,0x02,0x39, -0x11,0x00,0x00,0x27,0x00,0xbc,0x03,0x09,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7f,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x48,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xa2,0xff,0xec,0x06,0xa5,0x05,0xa4,0x00,0x26,0x02,0x3a,0x55,0x00,0x00,0x27,0x00,0xbc,0x02,0x82,0x00,0x00,0x01,0x07,0x02,0x3b,0x03,0xf8,0xfd,0xb8, -0x00,0x0b,0xb4,0x04,0x03,0x02,0x2e,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01, -0x04,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01,0x04,0x00,0xff,0xff,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16, -0x02,0x06,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0xce,0x04,0x96,0x01,0xdb,0x06,0x01,0x00,0x03,0x00,0x0f,0xb5,0x01,0x00,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0xdb,0xaf,0x5e,0x66,0x06,0x01,0xfe,0x95,0x01,0x6b,0x00,0x03,0xff,0xda,0x04,0xa4,0x02,0x84,0x06,0x0f,0x00,0x03,0x00,0x0f, -0x00,0x1b,0x00,0x2a,0x40,0x14,0x0a,0x04,0x16,0xc1,0x40,0x10,0x03,0x01,0x0d,0xc0,0x07,0x07,0x00,0x13,0xc0,0x19,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x33,0x2f,0xe1,0x11,0x33,0x2f,0xe1,0x00,0x2f,0xcd,0xd4,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xd6,0xaf,0x5d,0x65,0xf2,0x28,0x39,0x39,0x27,0x2a,0x3a,0x3a,0xfd,0xf2,0x28,0x3a,0x3a,0x28,0x29,0x3b,0x3a,0x06,0x0f,0xfe,0x95,0x01,0x6b,0xfe,0xb9,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, -0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x5f,0xff,0x99,0x00,0x12,0x40,0x0a,0x02,0x13,0x03,0x02,0x17,0x12,0x12,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14, -0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14,0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x01,0x2b, -0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf8,0xff,0x99,0x00,0x07,0xb2,0x01,0x07,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99, -0x00,0x12,0x40,0x0a,0x02,0x1b,0x03,0x02,0x1a,0x18,0x18,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb3,0x00,0x00,0x05,0x48,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe5,0xff,0x99,0x00,0x14,0xb3,0x01,0x11,0x03,0x01,0xb8,0xff,0xc6,0xb4,0x0e,0x0e,0x05,0x05,0x3e,0x01,0x2b, -0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3b,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x92,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99,0x00,0x14,0xb3,0x01,0x1f,0x03,0x01,0xb8,0xff,0xe8,0xb4,0x1c,0x1c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5c,0x06,0x0f,0x02,0x26, -0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0xa0,0xd8,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0b,0x0e,0x0e,0x05,0x05,0x3e,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, -0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, -0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x0b,0x00,0x5f,0x40,0x18,0x77,0x09,0x01,0x71,0x08,0x01,0x76,0x07,0x01,0x79,0x02,0x01,0x7e,0x01,0x01,0x78,0x00,0x01,0x0a,0x08,0x0c,0x00, -0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x02,0x10,0x0b,0x0c,0x00,0x4c,0x0b,0xb8,0xff,0xf8,0x40,0x0e,0x0c,0x00,0x4d,0x0b,0x03,0x00,0x12,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0xb7,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x2b,0x2b,0x2b, -0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x04,0xef,0xbb,0xfe,0x6c,0x10,0x0c,0x04,0x0a,0x14,0xfe,0x6a,0xb4,0x02,0x0e,0xbe,0x04,0x7e,0x2f,0x47,0x3e,0x39,0xfb,0x83,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff, -0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x3a,0x00,0x00,0x03,0xdb,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x52,0x40,0x32,0x06,0x05,0x91,0x59,0x06,0x02,0x09,0x06,0x91,0x2b,0x30,0x02,0x01,0xee,0x59,0x02,0x03,0x09,0x0a,0xee,0x59,0x09,0x12,0x0f,0x04,0x5f,0x04,0x02,0x0b,0x03, -0x09,0x08,0x05,0x04,0xff,0x3a,0x30,0x01,0x70,0x01,0x02,0x00,0x01,0x00,0x01,0x0a,0x08,0x08,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0xc0, -0xfc,0x94,0x03,0x6c,0x8a,0xfd,0xa9,0x02,0x57,0xa5,0xfc,0x5f,0x03,0xa1,0x04,0xfa,0xa0,0xfc,0xee,0x99,0xfc,0xdf,0xa2,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x00,0x07,0x00,0x6f,0x40,0x3c,0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00, -0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x09,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3, -0x0c,0x06,0x4d,0x05,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xfc,0xaa,0xfd,0x13,0xa9,0x04,0x40,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc, -0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x5e,0x40,0x0c,0x05,0x0a,0x01,0x04,0x08,0x01,0x0c,0x03,0x01,0x10,0x03,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x08,0xb8,0xff,0xe8,0x40,0x22,0x0c,0x00,0x4d,0x03,0x18,0x0c,0x00,0x4d,0x04,0x07,0x06, -0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00,0x0b,0x00,0x0b,0x91,0x59,0x00,0x12,0x07,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15, -0x21,0x01,0x01,0x21,0x03,0xf0,0xfc,0x3e,0x01,0xd1,0xfe,0x59,0x03,0x5a,0xfd,0x9b,0x01,0x7b,0xfe,0x5c,0x02,0xcc,0x4e,0x02,0x94,0x02,0x5e,0x5a,0x9b,0xfd,0xe9,0xfd,0xac,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c, -0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x88,0x00,0x00,0x05,0xae,0x05,0x9a,0x00,0x19,0x00,0xca,0xb9,0x00,0x16,0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x1a,0x0c,0x00,0x4d,0x18,0x0e,0x0b,0x01,0x0b,0x01,0x91,0x59,0x0b,0x0b,0x0c,0x14,0x00,0x06, -0x03,0x0c,0x12,0x07,0x08,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x04,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x07,0x0e,0x0c,0x0d,0x12,0x42,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d, -0x15,0x7e,0x12,0x0d,0x0c,0x06,0x4d,0x12,0x08,0x0d,0x06,0x4d,0x12,0x0d,0x0b,0x06,0x4d,0x12,0x12,0x1a,0x18,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0d,0xb8,0xff,0xfb,0x40,0x0a,0x0b,0x06,0x4d,0x0d,0x0d,0x1b,0x1a,0x4f,0x1b,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b, -0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x01,0x11,0x33,0x20,0x11,0x11,0x33,0x11,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x11,0x33,0x11, -0x10,0x21,0x33,0x11,0x03,0x68,0x39,0x01,0x6a,0xa3,0xfe,0xe2,0xef,0x39,0x9b,0x39,0xf0,0xfe,0xe4,0xa2,0x01,0x6a,0x39,0x05,0x9a,0xfc,0x80,0x01,0x6e,0x02,0x12,0xfd,0xee,0xe3,0xfe,0xe1,0xfe,0x7a,0x01,0x86,0x01,0x1f,0xe3,0x02,0x12,0xfd,0xee,0xfe,0x92,0x03,0x80,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x02,0x06, -0x00,0x9f,0x00,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2, -0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x01,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x41, -0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0e,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x01,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x01,0x9f,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x77,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00, -0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x01,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x44,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x4b,0x17,0x15,0x07,0x02,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x01,0x02,0x26, -0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0x9f,0xe1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x0e,0x0d,0x05,0x06,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0xa0,0x01,0x07,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01, -0xb8,0xff,0xd8,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x02,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x00,0x14,0x00,0x25,0x00,0xc7,0xb5,0x02,0x1c,0x01,0x10,0x04,0x0f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x07,0xb8,0xff,0xe8,0x40,0x3e,0x0b, -0x00,0x4d,0x0d,0x15,0x16,0x16,0x15,0x96,0x59,0x16,0x16,0x06,0x13,0x06,0x1b,0x95,0x59,0x06,0x01,0x00,0x1f,0x21,0x13,0x21,0x95,0x59,0x13,0x16,0x01,0x1c,0x0c,0x15,0x15,0x01,0x09,0x08,0x0c,0x06,0x4d,0x19,0x84,0x09,0x09,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83,0x24,0xb8,0xff,0xf0, -0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1f,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x02,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x02,0x0a,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, -0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x11,0x39,0x2f,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x25,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16, -0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x10,0x01,0x49,0xa2,0xdc,0xb9,0xad,0xc7,0x99,0x7a,0xb5,0xc3,0xf2,0xc5,0x98,0x2b,0x7b,0x9f,0xd2,0x74,0x7c,0x8c,0x86,0x81,0x91,0x2e,0xfd,0xf1,0x06,0x3c,0xbf,0xe2,0xb5,0xa0,0x78,0xd1,0x27,0x04,0x1d,0xd7,0xa6,0xc1, -0xf1,0x02,0xfe,0x83,0x11,0xad,0x6d,0xdd,0x9a,0x8c,0xfc,0x80,0x57,0x95,0x86,0x01,0x2f,0x00,0x00,0x01,0x00,0x05,0xfe,0x1f,0x03,0xe6,0x04,0x00,0x00,0x18,0x00,0x95,0xb3,0x7c,0x00,0x01,0x0c,0xb8,0xff,0xc0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x0b,0x03,0x03,0x11,0x08,0x0f,0x03,0x1c,0x11,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08, -0x0b,0x06,0x4d,0x14,0x83,0x0f,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0x40,0x20,0x0b,0x06,0x4d,0x0f,0x0f,0x1a,0x05,0x09,0x08,0x08,0x19,0x0b,0x00,0x03,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x84,0x05,0x18,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c, -0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x05,0x05,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x12,0x39,0x12,0x39,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x3f,0xc4,0x12,0x17,0x39,0x31,0x30,0x2b,0x5d,0x05,0x10,0x07,0x23,0x36,0x11,0x26,0x02,0x27,0x33,0x12, -0x13,0x33,0x36,0x12,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x02,0x06,0x07,0x02,0x37,0x04,0xaf,0x0f,0x28,0xec,0x7a,0xbc,0xf9,0x5e,0x04,0xa6,0x7d,0x0a,0xab,0x06,0x3c,0x7f,0x31,0x45,0xfe,0xc0,0x5c,0xa9,0x01,0x46,0xd7,0x02,0x59,0xc2,0xfe,0x44,0xfe,0x4b,0xf4,0x01,0x57,0xa4,0x3e,0x44,0x35,0x20,0x86,0xfe,0xfe,0xfd,0x47,0x00,0x01, -0x00,0x4c,0xfe,0xcb,0x03,0x7f,0x05,0xec,0x00,0x17,0x00,0x69,0x40,0x41,0x0f,0x10,0x01,0x0f,0x07,0x01,0x10,0x06,0x13,0x06,0x0f,0x0b,0x0e,0x0b,0x96,0x59,0x0e,0x00,0x00,0x0c,0x0c,0x08,0x0b,0x0e,0x0e,0x16,0x01,0x16,0xed,0x03,0x03,0x19,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x83,0x08, -0x18,0x0d,0x06,0x4d,0x08,0x20,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xc6,0x10,0xc0,0x2f,0x32,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x01, -0x35,0x21,0x35,0x21,0x15,0x00,0x11,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x39,0xb3,0x62,0x7d,0x8a,0xfe,0x6b,0x02,0x54,0xfe,0x4c,0x02,0x5b,0xfd,0xaf,0x01,0x20,0xd3,0x96,0xfe,0xcb,0x4f,0x4d,0x44,0x3f,0x12,0x32,0x01,0x95,0x01,0xb2,0x01,0xee,0x04,0x85,0x87,0xfd,0xfb,0xfe,0x66,0xfa,0x2f,0x23,0x8b,0x6f,0x64,0x00,0x01,0x00,0x82, -0xfe,0x6c,0x03,0xf8,0x04,0x18,0x00,0x14,0x00,0x7f,0x40,0x2a,0x02,0x13,0x01,0x02,0x13,0x01,0x10,0x04,0x10,0x04,0x12,0x04,0xec,0x59,0x12,0x10,0x0c,0x0f,0x08,0x15,0x00,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x83,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, -0xfa,0x40,0x22,0x0c,0x06,0x4d,0x01,0x01,0x16,0x0c,0x0f,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x09,0x04,0x0d,0x06,0x4d,0x09,0x2f,0x16,0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x3f,0x3f,0x2b,0x11,0x00, -0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa6,0xec,0x7c,0xa1,0xa3,0x24,0xa8,0x1c,0x04,0x6f,0xe5,0x01,0x5a,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x87,0xfd,0xb5,0x02,0xb6,0xea,0x60,0x4a,0x63,0xc5,0xfe,0x5e, -0x00,0x03,0x00,0x61,0xff,0xe8,0x04,0x50,0x05,0xfe,0x00,0x0a,0x00,0x10,0x00,0x17,0x00,0xc7,0x40,0x10,0x09,0x16,0x01,0x06,0x14,0x01,0x03,0x00,0x0e,0x01,0x0f,0x0a,0x01,0x10,0x06,0x09,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x0d,0x18,0x0c,0x00,0x4d,0x0b,0x11,0x96,0x59,0x0b,0x06, -0x00,0x0b,0x96,0x2b,0x30,0x06,0x0d,0x95,0x59,0x06,0x01,0x00,0x15,0x95,0x59,0x00,0x16,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x83,0x0b,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x30,0x0b,0x06,0x4d,0x20,0x11,0x30,0x11, -0x02,0x11,0x11,0x19,0x10,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x00, -0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x2b,0x2b,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x05,0x22,0x00,0x11,0x10,0x00,0x33,0x20,0x11,0x10,0x00,0x13,0x02,0x21,0x22,0x02,0x07,0x05,0x21,0x12,0x12,0x33,0x32,0x12,0x02,0x4e,0xe9,0xfe,0xfc,0x01,0x0f,0xfe,0x01,0xe2,0xfe,0xf3,0x63,0x12,0xfe, -0xc9,0x96,0xb4,0x0a,0x02,0x9e,0xfd,0x61,0x05,0xb2,0x9d,0x99,0xad,0x18,0x01,0x92,0x01,0x6c,0x01,0x7f,0x01,0x99,0xfd,0x01,0xfe,0x86,0xfe,0x63,0x03,0x5c,0x02,0x2e,0xfe,0xd1,0xff,0x84,0xfe,0xe1,0xfe,0xd3,0x01,0x31,0x00,0x01,0x00,0xa6,0xff,0xf4,0x02,0x08,0x04,0x00,0x00,0x0b,0x00,0x49,0x40,0x32,0x03,0x40,0x0b,0x0c,0x00,0x4c, -0x05,0x0f,0x0b,0x09,0x02,0x09,0xec,0x59,0x02,0x0b,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x84,0x04,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x31,0x30, -0x2b,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x08,0x3e,0x3b,0xe9,0xa3,0x65,0x2a,0x30,0x0a,0x16,0x01,0x15,0x02,0xf7,0xfd,0x0e,0x8a,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x13,0x04,0x0e,0x00,0x14,0x00,0xa1,0x40,0x15,0x09,0x03,0x01,0x0d,0x02,0x01,0x06,0x13,0x01,0x0d,0x01,0x01,0x10,0x04,0x03,0x18, -0x0b,0x0c,0x00,0x4c,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x15,0x0b,0x06,0x4d,0x14,0x02,0x11,0x03,0x03,0x00,0x06,0x0c,0x11,0xec,0x59,0x0c,0x06,0x0f,0x04,0x00,0x15,0x14,0xb8,0xff,0xe0,0x40,0x21,0x0b,0x0c,0x00,0x4c,0x14,0x02,0x02,0x00,0x0e,0x0e,0x70,0x00,0x01,0x00,0x08,0x04,0x08,0x0d,0x06,0x4d, -0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfa,0x40,0x0e,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x5d,0x33,0x2f,0x11,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x33,0x3f,0xc4,0x2b,0x11,0x12,0x00,0x39,0x11,0x12,0x39,0x39, -0x31,0x30,0x01,0x2b,0x2b,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x11,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x04,0x13,0xcb,0xfe,0x8e,0x8d,0xa3,0xa3,0x01,0x13,0x75,0x71,0x2e,0x48,0x22,0x1e,0x32,0x42,0x90,0x73,0x01,0xf4,0x98,0xfe,0xa4,0x04,0x00,0xfe, -0x0e,0x01,0x38,0x85,0x43,0x07,0x91,0x08,0x9c,0x7d,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf,0x05,0xee,0x00,0x10,0x00,0x5b,0x40,0x23,0x0b,0x02,0x01,0x07,0x10,0x01,0x08,0x05,0x01,0x06,0x03,0x01,0x03,0x0f,0x01,0x01,0x10,0x06,0x02,0x05,0x05,0x00,0x0d,0x0a,0x08,0x0d,0x08,0xec,0x59,0x0d,0x00,0x03,0x00,0x15,0x10,0xb8,0xff,0xe0, -0x40,0x0e,0x0c,0x00,0x4d,0x0a,0x02,0x05,0x0a,0x10,0x04,0x11,0x00,0x00,0x12,0x04,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x26,0x23,0x22,0x07,0x35,0x36, -0x33,0x32,0x16,0x17,0x03,0xdf,0xb1,0xfe,0xe9,0xfe,0x9c,0xb5,0x01,0xcf,0x43,0x35,0x67,0x36,0x44,0x40,0x42,0x70,0x8b,0x3e,0x03,0x3b,0xfc,0xc5,0x03,0xf8,0xc5,0x9b,0x13,0x9d,0x0c,0x7f,0xb2,0x00,0x00,0x01,0x00,0xa7,0xfe,0x1f,0x04,0x78,0x04,0x00,0x00,0x1d,0x00,0x9f,0x40,0x6e,0x0f,0x03,0x01,0x10,0x05,0x0e,0x18,0x0b,0x0c,0x00, -0x4c,0x01,0x18,0x0b,0x0c,0x00,0x4c,0x11,0x08,0x0f,0x04,0x00,0x0d,0x02,0x0d,0x95,0x59,0x02,0x16,0x1a,0x15,0x95,0x59,0x1a,0x16,0x07,0x1c,0x17,0x17,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x00,0x7f,0x10,0x01,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06, -0x4d,0x10,0x10,0x1f,0x07,0x0a,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x04,0x0d,0x06,0x4d,0x07,0x40,0x1f,0x01,0x2f,0x1f,0x01,0x5d,0x5d,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x33,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x3f, -0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0xc4,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x03,0x48,0x58,0xc7,0x9b,0x40,0x04,0xa3,0xa3,0x83,0x6c,0x74,0x86,0xa3,0x7a, -0x17,0x11,0x35,0x2a,0x55,0x60,0x16,0xae,0xc6,0x7c,0xfd,0xbb,0x05,0xe1,0xfd,0x90,0x7a,0x9a,0xb0,0x8c,0x02,0x48,0xfd,0x2f,0xa6,0x05,0x89,0x0d,0x58,0x5e,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc6,0x04,0x00,0x00,0x0c,0x00,0x6b,0x40,0x0a,0x74,0x03,0x01,0x79,0x01,0x01,0x76,0x00,0x01,0x03,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x00,0x4d, -0x03,0x09,0x0f,0x04,0x00,0x15,0x08,0x08,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x06,0x83,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x0b,0x0b,0x0e,0x03,0x08,0x0b,0x06,0x4d,0x03,0x02,0x2f,0x33,0x2b, -0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x33,0x01,0x00,0x11,0x34,0x27,0x33,0x16,0x15,0x10,0x02,0x48,0xa4,0xfe,0x68,0xb5,0x01,0x4f,0x01,0x10,0x22,0xb1,0x17,0x04,0x00,0xfc,0x9c,0x01,0x57,0x01,0x3b,0x7a,0x58,0x46,0x74,0xfe,0x86,0x00, -0x00,0x01,0x00,0x4d,0xfe,0xc4,0x03,0x76,0x05,0xed,0x00,0x2f,0x00,0xb3,0x40,0x28,0x0f,0x08,0x01,0x10,0x05,0x28,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x0c,0x26,0x1f,0x1f,0x26,0x95,0x59,0x1f,0x1f,0x16,0x06,0x18,0x15,0x13,0x16,0x15,0x16,0x15,0x95,0x59,0x16,0x00,0x2b,0xb8,0xff,0xf0,0x40,0x1e,0x0f,0x16,0x48, -0x2b,0x06,0x15,0x00,0x0c,0x23,0x12,0x18,0x15,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x83,0x0f,0x0f,0x09,0x23,0x18,0x18,0x2e,0x01,0x2e,0x84,0x03,0xb8,0xff,0xf8,0x40,0x27,0x0c,0x06,0x4d,0x03,0x03,0x31,0x29,0x08,0x0d,0x06,0x4d,0x29,0x08,0x0c,0x06,0x4d,0x29,0x08,0x0b,0x06,0x4d,0x29,0x83,0x09,0x18,0x0d,0x06,0x4d,0x09,0x20,0x0c,0x06, -0x4d,0x09,0x20,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0xe1,0xc6,0x10,0xc0,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x2b,0xc6,0x12,0x39,0x12,0x39,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x10,0xc4,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e, -0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x04,0x23,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x36,0x33,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x30,0xb3,0x61,0x5d,0xa2,0xc1,0xd1,0xa3,0x96,0x6b,0x73,0xc0,0xa4,0xfe, -0xc0,0x26,0x02,0x5e,0xc7,0xee,0x58,0x89,0x2d,0x17,0x32,0x31,0x1d,0x30,0x41,0xaa,0xe3,0x01,0x1c,0xc9,0x9b,0xfe,0xc4,0x4e,0x53,0x3b,0x49,0x14,0x19,0xd7,0xad,0x84,0xce,0x37,0x1d,0x83,0x59,0x70,0xb2,0x27,0x07,0x05,0x86,0x89,0x1f,0xa5,0x73,0x47,0x62,0x28,0x03,0x03,0x96,0x03,0xa1,0x87,0xdb,0x2d,0x20,0x8b,0x76,0x69,0xff,0xff, -0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x02,0x00,0xa1,0xfe,0x74,0x04,0x50,0x04,0x18,0x00,0x0e,0x00,0x1a,0x00,0x83,0x40,0x27,0x0f,0x06,0x01,0x10,0x06,0x07,0x17,0x95,0x59,0x07,0x10,0x0f,0x00,0x12,0x0d,0x12,0x95,0x59,0x0d,0x16,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a, -0x08,0x0b,0x06,0x4d,0x0a,0x83,0x14,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x19,0x0b,0x06,0x4d,0x14,0x14,0x1c,0x0f,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xfc,0x40,0x0c,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x2f,0x1c,0x01,0x5d,0x2f, -0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0xa3, -0xe6,0xde,0xdf,0x01,0x0c,0xf7,0xdd,0xc1,0x77,0x27,0xa4,0x59,0x01,0x3e,0xb2,0x8c,0x8f,0x95,0x63,0xfe,0x11,0x03,0x9a,0xf7,0x01,0x13,0xfe,0xda,0xe1,0xfe,0xfb,0xfe,0xdc,0x01,0x1b,0x3e,0x51,0x01,0x94,0xaa,0xda,0xc6,0xba,0x00,0x00,0x01,0x00,0x57,0xfe,0xc4,0x03,0x81,0x04,0x19,0x00,0x1c,0x00,0x8f,0x40,0x14,0x0f,0x07,0x01,0x10, -0x04,0x13,0x30,0x0b,0x0c,0x00,0x4c,0x0f,0x11,0x0c,0x11,0x95,0x59,0x0c,0x10,0x18,0xb8,0xff,0xf0,0x40,0x0a,0x10,0x16,0x48,0x18,0x06,0x15,0x00,0x01,0x01,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x37,0x0c,0x06,0x4d,0x03,0xef,0x1b,0x10,0x0d,0x06,0x4d,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x0e,0x0e,0x1e,0x14, -0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x18,0x0b,0x06,0x4d,0x2f,0x09,0x01,0x09,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xd4,0x2b,0x2b,0xf1,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x00,0x18, -0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x15,0x14,0x1e,0x02,0x05,0x16,0x15,0x14,0x03,0x3b,0xb5,0x62,0x7b,0x84,0xc2,0xd0,0x01,0x2f,0xec,0x7f,0x65,0x72,0x81,0x99,0xc9,0x2e,0x58,0x3b,0x01,0x19,0xa6,0xfe,0xc4,0x4c,0x58, -0x46,0x3f,0x11,0x19,0xe6,0xb2,0x01,0x18,0x01,0x52,0x34,0xa7,0x4f,0xfe,0xfa,0xc5,0x47,0x6c,0x45,0x12,0x4b,0x3e,0xb1,0x69,0x00,0x01,0x00,0x14,0xff,0xe6,0x04,0x0e,0x04,0x07,0x00,0x1c,0x00,0xa4,0xb7,0x0a,0x1a,0x01,0x05,0x09,0x01,0x10,0x09,0xb8,0xff,0xe0,0x40,0x2d,0x0b,0x0c,0x00,0x4c,0x13,0x0f,0x0f,0x03,0x01,0x16,0x03,0x03, -0x40,0x24,0x28,0x48,0x03,0x40,0x08,0x0f,0x19,0x0e,0xec,0x59,0x19,0x16,0x13,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x84,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x11,0x11,0x1e,0x05,0x0c,0x08,0x0d, -0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x1c,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x1c,0x2f,0x1e,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x1a,0xcd,0x2b,0x5f, -0x5e,0x5d,0x3f,0x31,0x30,0x2b,0x01,0x5e,0x5d,0x5d,0x13,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x03,0x33,0x16,0x11,0x14,0x02,0x23,0x22,0x26,0x35,0xae,0x29,0x38,0x1a,0x1f,0x30,0x2f,0x7c,0x61,0x01,0x0d,0x7f,0x8d,0x93,0xb7,0x81,0xe8,0xc9,0xd0,0xdf,0x02,0xc7,0x5b,0x55,0x07, -0x8a,0x0d,0x94,0xa5,0xfe,0xff,0xfe,0xab,0xb1,0xa1,0x01,0x2b,0x01,0x0b,0xfa,0xfe,0xcb,0xe3,0xfe,0xf8,0xec,0xde,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x1d,0x00,0x8c,0xb9,0x00,0x13,0xff,0xe8,0x40,0x4e,0x0b,0x0c,0x00,0x4c,0x09,0x08,0x10,0x00,0x4d,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x18,0x18,0x19,0x06,0x06,0x05, -0x07,0x17,0x07,0x15,0x15,0x14,0x09,0x09,0x0a,0x08,0x16,0x08,0x0d,0x16,0x01,0x02,0x07,0x01,0x10,0x04,0x0e,0x0c,0x11,0x0c,0xec,0x59,0x11,0x10,0x17,0x0f,0x1d,0x1b,0x02,0x1b,0xec,0x59,0x02,0x1c,0x08,0x1b,0x19,0x05,0x14,0x0a,0x05,0x0a,0x0e,0x16,0x17,0x17,0x00,0x00,0x1f,0x0e,0x07,0x0e,0x08,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f, -0x32,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x2b,0x2b,0x2b,0x01,0x06,0x23,0x22,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35, -0x36,0x33,0x32,0x16,0x17,0x13,0x01,0x33,0x01,0x13,0x16,0x33,0x32,0x37,0x04,0x46,0x2b,0x31,0x5a,0x82,0x4b,0x9f,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x30,0x28,0x22,0x49,0x56,0x6b,0x33,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xec,0x44,0x48,0x25,0x29,0xfe,0x2a,0x09,0x86,0xac,0x01,0x6b,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a, -0x0a,0x5c,0x78,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfd,0xf4,0x96,0x10,0x00,0x00,0x01,0x00,0x98,0xfe,0x1e,0x05,0x68,0x05,0x33,0x00,0x1b,0x00,0xec,0xb9,0x00,0x18,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x0f,0xb8,0xff,0xc0,0x40,0x15,0x0b,0x0c,0x00,0x4c,0x0d,0x1b,0x0f,0x14,0x12,0x07,0x04,0x15,0x04,0x15,0xec,0x59,0x04,0x16,0x05,0x1c, -0x1a,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1a,0x83,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf0,0x40,0x40,0x0b,0x06,0x4d,0x1b,0x0e,0x04,0x07,0x0c,0x42,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08, -0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x0c,0x1c,0x15,0x12,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x18,0x0b,0x06,0x4d,0x04,0xef,0x07,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x07, -0xb8,0xff,0xfc,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x1d,0x1c,0x40,0x1d,0x01,0x2f,0x1d,0x01,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39, -0x18,0x2f,0x3f,0x33,0x31,0x30,0x2b,0x2b,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x68,0xfe,0xe3,0xe9,0x18,0x94,0x18,0xeb,0xfe,0xe5,0xa6,0xc8,0x98,0x18,0x94,0x18,0x96,0xca,0xa6,0x02,0x2c,0xfe,0xf4,0xfe,0xc9,0xfe,0x35, -0x01,0xcb,0x01,0x36,0x01,0x0d,0x01,0xd4,0xfe,0x2c,0xc4,0xef,0x04,0xba,0xfb,0x46,0xee,0xc5,0x01,0xd4,0x00,0x01,0x00,0x77,0xff,0xe9,0x06,0x00,0x04,0x00,0x00,0x21,0x00,0xe3,0x40,0x2a,0x0b,0x21,0x01,0x04,0x1f,0x01,0x0b,0x04,0x01,0x04,0x02,0x01,0x0d,0x00,0x01,0x10,0x04,0x12,0x12,0x20,0x09,0x1b,0x0f,0x00,0x0e,0x03,0x20,0x15, -0x20,0x15,0xec,0x59,0x20,0x16,0x0d,0x1a,0x01,0x09,0x03,0x1a,0x1a,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x18,0x83,0x1d,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xe8,0x40,0x4f,0x0b,0x06,0x4d,0x1d,0x0e,0x12,0x11,0x06,0x42,0x02,0x09, -0x01,0x09,0x09,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x83,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x18,0x0b,0x06,0x4d,0x06,0x06,0x22,0x00,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x84,0x11,0x06,0x0c,0x06,0x4d,0x11,0x11,0x23, -0x22,0x3f,0x23,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x18,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30, -0x01,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x13,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x34,0x03,0x33,0x12,0x11,0x14,0x06,0x23,0x22,0x03,0x3d,0x04,0x67,0xca,0xbd,0xd4,0x7e,0xb7,0x8f,0x7a,0x6d,0xe6,0xa4,0xe5,0x6b,0x7b,0x8e,0xb6,0x7f,0xd5,0xbf,0xca,0xa8,0xbf, -0xff,0xe0,0x01,0x02,0x01,0x36,0xfe,0xc1,0xff,0x9f,0xaa,0x01,0x5a,0x01,0x1b,0xfe,0xe5,0xfe,0xa6,0xaa,0x9f,0xff,0x01,0x3f,0xfe,0xc9,0xfe,0xff,0xe1,0xfe,0xff,0xff,0xff,0xed,0xff,0xf4,0x02,0x34,0x05,0x77,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x70,0xff,0xf0,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x1b,0x15,0x05, -0x06,0x3e,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x77,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0xff,0xf0,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd8,0x40,0x0a,0x2c,0x26,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35, -0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x01,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x28,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf6,0x40,0x09,0x19,0x19,0x0c,0x0c,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x01,0x02,0x26, -0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x06,0x01,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x01,0x9f,0x02,0x02,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b, -0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, -0x35,0x00,0x00,0x01,0x00,0x29,0xff,0xee,0x05,0x1e,0x05,0x9a,0x00,0x1b,0x00,0xb6,0x40,0x2f,0x00,0x16,0x01,0x10,0x05,0x13,0x0a,0x91,0x59,0x13,0x13,0x10,0x0b,0x0d,0x11,0x10,0x11,0x91,0x59,0x10,0x03,0x01,0x03,0x1a,0x03,0x91,0x59,0x1a,0x13,0x0b,0x12,0x00,0x00,0x0b,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x7d, -0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x1d,0x13,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7e,0x0c,0x11,0x11,0x1d,0x0e,0xb8,0xff,0xe8,0x40,0x0a,0x0d,0x06,0x4d,0x0e,0x0c,0x20,0x0d,0x06, -0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xc6,0x2b,0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b, -0x31,0x30,0x00,0x5f,0x5e,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x15,0x14,0x06,0x23,0x22,0x02,0xfe,0x42,0x5e,0x61,0x73,0xa9,0x98,0xf9,0xa8,0xfe,0x99,0x03,0xe3,0xfe,0x2c,0xfd,0xe2,0x01,0x07,0xc7,0xb5,0x5c,0x06,0x9a,0x21,0x8b,0x77,0x8b,0x9a, -0xfd,0x5a,0x05,0x02,0x98,0x98,0xfe,0x38,0xe6,0xd1,0xc0,0xd5,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x01,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x50,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x15,0x08,0x06,0x01,0x05,0x3e,0x01,0x00,0x08,0x01,0x08,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0x00,0x01, -0x00,0x5e,0xff,0xe8,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x97,0x40,0x5f,0x55,0x0a,0x01,0x59,0x00,0x01,0x5a,0x03,0x01,0x03,0x0f,0x03,0x01,0x0b,0x05,0x10,0x13,0x91,0x59,0x10,0x08,0x02,0x10,0x91,0x2b,0x30,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x18,0x01,0x0b,0x03,0x18,0x18,0x16,0x02,0x16, -0x91,0x59,0x02,0x13,0x11,0x11,0x13,0x00,0x0a,0x0a,0x1a,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x18,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x00,0x3f,0x2b, -0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x5f,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x04,0x85,0x9e,0xeb, -0xfe,0xd1,0xfe,0x91,0x01,0x85,0x01,0x35,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x7a,0xfd,0x84,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x8b,0x01,0x3f,0x01,0x5b,0x01,0xa5,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xef,0x60,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00, -0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xe9,0x07,0x77,0x05,0x9a,0x00,0x19,0x00,0x21, -0x00,0xc0,0x40,0x49,0x0d,0x05,0x01,0x00,0x03,0x01,0x0b,0x17,0x01,0x0b,0x16,0x01,0x02,0x0d,0x01,0x10,0x04,0x12,0x14,0x0f,0x14,0x91,0x59,0x0f,0x13,0x00,0x1a,0x91,0x59,0x00,0x00,0x18,0x1b,0x18,0x0a,0x91,0x59,0x18,0x03,0x08,0x1b,0x91,0x59,0x08,0x12,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x18,0x18,0x08,0x11,0x04,0x08,0x0d,0x06,0x4d, -0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x1f,0xb8,0xff,0xf0,0x40,0x23,0x0d,0x06,0x4d,0x1f,0x10,0x0b,0x06,0x4d,0x1f,0x1f,0x23,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x7e,0x08,0x18,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x06,0x4d,0x08,0x18,0x0b, -0x06,0x4d,0x08,0x08,0x23,0x11,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00, -0x5d,0x5d,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x11,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x04,0xa4,0x01,0x10,0xd7,0xec,0xf8,0xd9,0xfe,0x56,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0xeb, -0x96,0xa2,0xfe,0xc8,0x03,0x39,0xce,0xbf,0xc4,0xe8,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0xfd,0x08,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x7d,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x2f,0x0d,0x10,0x01,0x00,0x0e,0x01,0x10,0x04,0x13,0x0b,0x01,0x08, -0x08,0x01,0x91,0x59,0x08,0x08,0x14,0x06,0x0a,0x03,0x00,0x14,0x91,0x59,0x03,0x00,0x12,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x18,0xb8,0xff,0xe8,0x40,0x3e,0x0d,0x06,0x4d,0x18,0x10,0x0b,0x06,0x4d,0x18,0x18,0x1c,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14, -0x08,0x0b,0x06,0x4d,0x14,0x7e,0x00,0x20,0x0d,0x06,0x4d,0x00,0x18,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x7e,0x04,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39, -0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, -0x36,0x35,0x10,0x21,0x04,0x02,0xfd,0x62,0xa8,0xa8,0x02,0x9e,0xa8,0x01,0x10,0xd5,0xee,0xf9,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x02,0xa0,0xfd,0x60,0x05,0x9a,0xfd,0x9e,0x02,0x62,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0x4a,0x05,0x9a,0x00,0x11,0x00,0xc6, -0x40,0x1c,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x0e,0x05,0x91,0x59,0x0e,0x0e,0x00,0x0b,0x08,0x0c,0x0b,0x0c,0x91,0x59,0x0b,0x03,0x06,0x00,0x12,0x0c,0xb8,0xff,0xf9,0xb3,0x0b,0x06,0x4d,0x09,0xb8,0xff,0xf9,0x40,0x15,0x0b,0x06,0x4d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01, -0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x32,0x0b,0x06,0x4d,0x00,0x01,0x01,0x09,0x03,0x01,0x01,0x13,0x07,0x0c,0x0e,0x0e,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07,0x09,0x42,0x09,0x09,0x12,0x07,0x12,0x0d,0x06, -0x4d,0x07,0x0d,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x01,0x10,0xf1,0x2b,0x2b,0x2b,0x32,0xe0,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b,0x31,0x30, -0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x21,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x20,0x11,0x05,0x4a,0xa8,0xfe,0xe3,0xfe,0xe9,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x19,0x01,0xc3,0x01,0x85,0x01,0x27,0xfd,0x54,0x05,0x02,0x98,0x98,0xfe,0x3e,0xfe,0x45,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2, -0x07,0x66,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x8e,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x0f,0x12,0x12,0x09,0x0e,0x25,0x01,0x00,0x13,0x01,0x13,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x4f,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0x16, -0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0d,0x1c,0x16,0x0d,0x00,0x25,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0xb2,0xb9,0x00,0x02,0x01,0x30,0x40,0x1b,0x07,0x0b,0x03,0x04,0x00,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c, -0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0xb8,0x01,0x2c,0xb6,0x04,0x04,0x10,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04,0xb8,0x01,0x2c,0x40,0x1e,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09, -0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06,0x4d,0x7f,0x09,0x01,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b, -0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x3f,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xfe,0x30,0x9a,0xfe,0x34,0xa8,0x02,0xe6,0xa8,0xfe,0x80,0x01,0x80,0x05,0x9a,0xfa,0xfe,0x05,0x02,0x00,0xff,0xff,0x00,0x16,0x00,0x00, -0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x9f,0x40,0x31,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x02,0x02,0x03,0x91,0x59,0x02,0x03,0x00,0x0e,0x91,0x59,0x00,0x12,0x03,0x03,0x0e,0x09,0x08,0x0d,0x06,0x4d, -0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06,0x4d,0x12,0x10,0x0b,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00, -0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x21,0x15,0x21,0x11,0x21, -0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25, -0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x01,0x2c,0x00,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x0d,0x00,0x13,0x00,0xcf,0xb7,0x0b,0x0f,0x91,0x59,0x0b,0x03,0x04,0x01,0xb8,0x01,0x30,0x40,0x22,0x0e,0x07,0x02,0x0c,0x02,0x0c,0x91,0x59,0x02,0x12,0x75,0x13,0x01,0x10,0x0a,0x0a, -0x0e,0x07,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x18,0x0b,0x06,0x4d,0x0d,0xba,0x01,0x2c,0x00,0x02,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe0,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c, -0x7e,0x0e,0xb8,0xff,0xf0,0x40,0x21,0x0d,0x06,0x4d,0x0e,0x18,0x0c,0x06,0x4d,0x0e,0x20,0x0b,0x06,0x4d,0x0e,0x0e,0x15,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0xb2,0x03,0x13,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x07,0x2f, -0x2b,0x2b,0x33,0xd5,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x21, -0x11,0x21,0x06,0x02,0x07,0x05,0x48,0x9b,0xfb,0xfd,0x9b,0x6f,0x90,0xc9,0x0d,0x02,0xa3,0xc1,0xfe,0x97,0xfe,0x94,0x10,0xbc,0x73,0xfe,0x7f,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x07,0x02,0xbf,0x01,0x3c,0xfa,0xfe,0x04,0x6a,0xf7,0xfd,0x6a,0xdd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00, -0x00,0x01,0xff,0xea,0x00,0x00,0x07,0x02,0x05,0x9a,0x00,0x1d,0x00,0xb1,0xb9,0x00,0x1d,0xff,0xf0,0x40,0x72,0x0c,0x06,0x4d,0x0e,0x10,0x0c,0x06,0x4d,0x5c,0x1b,0x01,0x1a,0x1b,0x01,0x53,0x10,0x01,0x15,0x10,0x01,0x53,0x0c,0x01,0x05,0x0c,0x15,0x0c,0x02,0x5c,0x01,0x01,0x03,0x0d,0x01,0x1d,0x01,0x02,0x10,0x1a,0x01,0x10,0x11,0x01, -0x0f,0x0b,0x1f,0x0b,0x02,0x0f,0x02,0x1f,0x02,0x02,0x0b,0x04,0x1b,0x10,0x16,0x03,0x0c,0x01,0x06,0x12,0x1d,0x00,0x06,0x0e,0x0d,0x07,0x1c,0x1c,0x00,0x20,0x0b,0x06,0x4d,0x00,0x0e,0x06,0x07,0x0d,0x42,0x0f,0x0d,0x0d,0x1e,0x16,0x15,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07, -0x1f,0x1e,0x2f,0x1f,0x3f,0x1f,0x02,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x11,0x33,0x2f,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x2b,0x21, -0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x07,0x02,0xe1,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x16,0x0f,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a,0xcd,0xfd,0x9b,0x02, -0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x19,0x18,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x23,0x00,0xd7,0x40,0x13,0x09,0x20,0x01,0x06,0x1e,0x01,0x04,0x18,0x01,0x03,0x00,0x14,0x01,0x0f,0x00,0x01,0x10,0x05, -0x14,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x1c,0x09,0x0a,0x0a,0x09,0x92,0x59,0x0a,0x0a,0x03,0x16,0x0f,0x13,0x1f,0x13,0x2f,0x13,0x03,0x09,0x03,0x13,0x11,0x16,0x11,0x92,0x59,0x16,0x04,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x09,0x03,0x01,0x03,0x22,0x03,0x92,0x59,0x22,0x13,0x1b,0x1f,0x09,0x09,0x06, -0x00,0x0e,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x0e,0x7d,0x19,0x19,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0e,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x25,0x13,0x00, -0x3f,0x25,0x01,0x5d,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f, -0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x60,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xfe,0xe8, -0xf3,0xf3,0x3c,0xb6,0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xc5,0xe9,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xa1,0x40,0x12,0x7a,0x12,0x01,0x79,0x11,0x01,0x75,0x08,0x01,0x75,0x07,0x01,0x12,0x08,0x0b,0x00,0x4d,0x08,0xb8,0xff, -0xf8,0x40,0x2c,0x0b,0x00,0x4d,0x0e,0x04,0x0b,0x13,0x03,0x09,0x00,0x12,0x12,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1a,0x0b,0x06,0x4d,0x01,0x01,0x15,0x08,0x0e,0x0c,0x08,0x0d,0x06, -0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x09,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x04,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x3f,0x32,0x3f,0x33, -0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36,0x37,0x01,0x33,0x05,0x40,0xa8,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89,0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c, -0x34,0x04,0x65,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x4e,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0xa8,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1a,0x14,0x0a,0x13,0x25,0x01,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e, -0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x04,0xa4,0x05,0x9a,0x00,0x12,0x00,0x74,0x40,0x43,0x0d,0x10,0x01,0x0b,0x0f,0x01,0x02,0x06,0x01,0x10,0x04,0x07,0x18,0x0b,0x00,0x4d,0x12,0x02,0x91,0x59,0x12,0x03,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x13,0x00,0x12,0x03,0x11,0x11,0x0b,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, -0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0b,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f, -0x5e,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xa8,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0xff,0xff,0x00,0xbc, -0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x02,0x06,0x01,0xb5,0x00,0x00,0xff,0xff,0x00,0xbc, -0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0xe7,0x04,0x96,0x05,0x9a,0x00,0x15,0x00,0x53,0x40,0x2e,0x0a,0x15,0x01,0x05, -0x0e,0x01,0x03,0x03,0x10,0x0c,0x00,0x4d,0x00,0x10,0x01,0x10,0x05,0x10,0x0c,0x04,0x0e,0x00,0x03,0x07,0x09,0x04,0x09,0x91,0x59,0x04,0x13,0x76,0x11,0x01,0x11,0x0c,0x14,0x06,0x14,0x00,0x00,0x16,0x06,0x06,0x0e,0x0d,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f,0x32,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x33, -0x12,0x39,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x5d,0x01,0x01,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x96,0xfe,0x45,0x76,0xdc,0x82,0x6b,0x48,0x56,0x50,0x51,0x88,0x4f,0xfe,0x1a,0xbf,0x01,0x58,0x09,0x1c,0x02,0x03,0x26,0x01,0x3f,0x05,0x9a,0xfc, -0x17,0xfe,0xf6,0xc0,0x1f,0xaa,0x33,0x7d,0x9e,0x04,0x02,0xfd,0x02,0x13,0x4a,0x09,0x58,0x02,0xfa,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x05,0x81,0x05,0xc2,0x00,0x15,0x00,0x1e,0x00,0x27,0x01,0x02,0xb9,0x00,0x13,0xff,0xe8,0x40,0x23,0x0c,0x00,0x4d,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59, -0x0e,0x00,0x0e,0x00,0x01,0x0d,0x03,0x01,0x12,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x24,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x2a, -0x0c,0x06,0x4d,0x12,0x20,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x07,0x18,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01, -0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0xef,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, -0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x3e,0x9c,0x1b,0xf0,0xfe,0xc7,0x01,0x38,0xf3,0x19,0x9c,0x18,0xf6,0x01,0x35,0xfe,0xc7,0xf0,0x1a,0x1a,0xab,0xce,0xce,0xad,0xb4,0x19,0xaa,0xd1,0xce,0xab,0xbc,0xbc,0xbc,0x01,0x47,0xef,0xe4,0x01,0x38,0xb4,0xb4,0xfe,0xcd,0xe9,0xec,0xfe,0xb6, -0x03,0xc5,0xfc,0xcf,0xe3,0xbd,0xb4,0xdd,0xfc,0xcf,0x03,0x31,0xe0,0xb1,0xbe,0xe2,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x05,0xb2,0x05,0x9a,0x00,0x0b,0x00,0xb4,0xb9,0x00,0x00,0x01,0x30,0x40,0x1c,0x05,0x09,0x03,0x07,0x02,0x0a,0x02,0x0a,0x91,0x59,0x02, -0x12,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xe4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xec,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e, -0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b, -0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xfb,0xa5,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe, -0x05,0x02,0xfa,0xfe,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x85,0x40,0x34,0x0f,0x06,0x01,0x10,0x04,0x0e,0x02,0x0c,0x04,0x0c,0x91,0x59,0x04,0x04,0x00,0x09,0x10,0x03,0x00,0x12,0x02,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x7f,0x0f,0x01,0x0f,0x20,0x0d, -0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x0f,0x0f,0x12,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, -0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xa8,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02, -0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0xd9,0x05,0x9a,0x00,0x0b,0x00,0xa7,0x40,0x0e,0x07,0x03,0x0b,0x03,0x05,0x00,0x09,0x00,0x09,0x91,0x59,0x00,0x12,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x22,0x0b,0x06,0x4d,0x09,0x7e,0x00,0x12,0x0d,0x06,0x4d,0x00, -0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x28,0x0c,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0x06,0x0d,0x06,0x4d, -0x10,0x05,0x01,0x05,0x05,0x0d,0x0c,0x2f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11, -0x21,0x11,0x33,0x06,0xd9,0xf9,0xe3,0xa8,0x02,0x13,0xa7,0x02,0x13,0xa8,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x07,0x9a,0x05,0x9a,0x00,0x0f,0x00,0xff,0xb9,0x00,0x01,0x01,0x30,0x40,0x1e,0x09,0x05,0x0d,0x03,0x0b,0x07,0x02,0x0e,0x02,0x0e,0x91,0x59,0x02,0x12,0x0f,0x08,0x0d,0x06,0x4d, -0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb5,0x0b,0x06,0x4d,0x02,0x02,0x0b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d, -0x0b,0x7e,0x0e,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x23,0x0c,0x06,0x4d,0x0e,0x06,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x6f,0x03,0x01,0x03,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08, -0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0f,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x4f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b, -0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x07,0x9a,0x9b,0xf9,0xbd,0xa8,0x02,0x13,0xa8,0x02,0x12, -0xa8,0xc1,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0x42,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x98,0x40,0x29,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x04,0x04,0x01,0x91,0x59,0x04,0x03,0x00,0x0e,0x91,0x59,0x00,0x12, -0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x25,0x0c,0x06,0x4d,0x12,0x12,0x16,0x00,0x02,0x02,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x70,0x00,0x01,0x00,0x10,0x0d,0x06,0x4d,0x00,0xb8, -0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x35,0x21,0x11, -0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0xc6,0xfe,0x63,0x02,0x45,0x01,0x11,0xd5,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa3,0xfe,0xc8,0x05,0x00,0x9a,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x87,0x05,0x9a,0x00,0x03, -0x00,0x0e,0x00,0x16,0x00,0xb0,0x40,0x44,0x0d,0x0c,0x01,0x00,0x0a,0x01,0x10,0x04,0x07,0x0f,0x91,0x59,0x07,0x07,0x10,0x02,0x05,0x03,0x01,0x04,0x04,0x10,0x91,0x59,0x04,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x01,0x18,0x04,0x0b, -0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7d,0x14,0xb8,0xff,0xe8,0x40,0x1e,0x0d,0x06,0x4d,0x00,0x14,0x10,0x14,0x02,0x14,0x14,0x18,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x04,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x04,0xb8, -0xff,0xfd,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32, -0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x05,0x87,0xa8,0xa8,0xfb,0x35,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a, -0x00,0x0a,0x00,0x12,0x00,0x87,0x40,0x29,0x0d,0x08,0x01,0x00,0x06,0x01,0x10,0x04,0x03,0x0b,0x91,0x59,0x03,0x03,0x0c,0x01,0x03,0x00,0x0c,0x91,0x59,0x00,0x12,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06, -0x4d,0x10,0x18,0x0b,0x06,0x4d,0x10,0x10,0x14,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00, -0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00, -0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x90,0x05,0xb2,0x00,0x18,0x00,0xb9,0x40,0x14,0x02,0x0f,0x01,0x0d,0x00,0x01,0x02,0x16,0x01,0x02,0x12,0x01,0x10,0x04,0x16,0x10,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xc0,0x40,0x45,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x08,0x07,0x91,0x59,0x08,0x11,0x17,0x08,0x91,0x2b,0x30,0x00,0x0e,0x01,0x0c, -0x03,0x0e,0x0e,0x0c,0x11,0x0c,0x91,0x59,0x11,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x01,0x03,0x17,0x03,0x91,0x59,0x17,0x13,0x07,0x07,0x00,0x09,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x7d,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff, -0xe8,0x40,0x0b,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01, -0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x00,0x37,0x21,0x35,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x68,0x9d,0xe1,0xd6,0x01,0x11,0x10,0xfd,0x85,0x02,0x79,0x1a,0xfe,0xf1,0xd9,0xcb,0xa6,0x9a,0xd7,0x01,0x35,0x01,0x82,0xfe,0x8d,0xfe,0xd1,0xe7,0x3c,0xa3,0x60,0x01, -0x0f,0xf1,0x97,0xf5,0x01,0x0f,0x56,0xb0,0x3e,0xfe,0x61,0xfe,0xa5,0xfe,0xc1,0xfe,0x6f,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x07,0xc6,0x05,0xb2,0x00,0x12,0x00,0x1e,0x00,0xcf,0x40,0x2d,0x0a,0x13,0x91,0x59,0x0a,0x04,0x06,0x01,0x91,0x59,0x06,0x04,0x02,0x06,0x91,0x2b,0x30,0x04,0x03,0x10,0x19,0x91,0x59,0x10,0x13,0x02,0x12,0x0d, -0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x7d,0x1c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xe7,0x40,0x19,0x0b,0x06,0x4d,0x1c,0x1c,0x20,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x7d,0x07,0x00,0xb8, -0xff,0xf0,0x40,0x26,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x20,0x00,0x01,0x00,0x00,0x20,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03, -0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x20,0x00,0x11,0x10, -0x00,0x21,0x20,0x00,0x01,0x22,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x10,0x02,0x02,0xb2,0xfe,0xb2,0xa8,0xa8,0x01,0x54,0x1e,0x01,0x5e,0x01,0x18,0x01,0x21,0x01,0x59,0xfe,0x9e,0xfe,0xcf,0xfe,0xe2,0xfe,0xa5,0x02,0x8c,0xe3,0xfe,0xff,0xf4,0xdd,0xe6,0xfd,0xf3,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x01,0x2c,0x01,0x51,0xfe, -0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x01,0x7c,0x03,0xb6,0xfe,0xc8,0xfe,0xef,0xfe,0xe5,0xfe,0xc9,0x01,0x32,0x01,0x17,0x01,0x20,0x01,0x32,0x00,0x00,0x02,0x00,0x3d,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0xa6,0x40,0x6d,0x04,0x11,0x01,0x0b,0x0f,0x01,0x0d,0x0a,0x01,0x0f,0x09,0x01,0x02,0x07,0x01,0x10,0x04,0x06, -0x18,0x0b,0x00,0x4d,0x0c,0x02,0x15,0x15,0x02,0x91,0x59,0x15,0x15,0x13,0x00,0x13,0x17,0x91,0x59,0x13,0x03,0x07,0x00,0x12,0x07,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x09,0x0c,0x09,0x01,0x08,0x1a,0x08,0x0c,0x06,0x4d,0x1a,0x08,0x0b,0x06,0x4d,0x1a,0x7d,0x10,0x10,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, -0x4d,0x00,0x08,0x0b,0x06,0x4d,0x15,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x07,0x08,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, -0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0xfd,0xa8,0xd1,0x3c,0x5b,0x34,0xb4,0xc8,0xda,0x15,0x57,0x3a,0x8f,0x9f,0xff, -0xcf,0x01,0xa0,0xa8,0xe9,0x8e,0x9d,0xa0,0x87,0x02,0x62,0x41,0x71,0xfe,0x50,0x01,0xdf,0x2f,0x69,0x16,0x04,0x1f,0xc8,0x8e,0xb7,0xdd,0xfd,0x60,0x02,0x08,0x86,0x7a,0x7a,0x8e,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x02,0x06,0x00,0x44,0x00,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x40,0x05,0xf8,0x00,0x19,0x00,0x27, -0x00,0x96,0x40,0x2c,0x1a,0x07,0x26,0x0a,0x26,0x95,0x59,0x0a,0x0a,0x20,0x00,0x00,0x01,0xec,0x59,0x00,0x01,0x10,0x20,0x95,0x59,0x10,0x16,0x00,0x00,0x1b,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x23,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xe8,0x40,0x30,0x0b,0x06,0x4d, -0x20,0x23,0x30,0x23,0x02,0x23,0x23,0x29,0x07,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x83,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b, -0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x01,0x15,0x06,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x11,0x34,0x12,0x36,0x36,0x37,0x36,0x01,0x15,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0xbe,0x29, -0x5b,0xe1,0xb3,0x73,0x10,0x04,0x78,0xde,0xcb,0xf8,0xfe,0xfd,0xdb,0xec,0xff,0x5c,0xa3,0xc7,0xf2,0x60,0xfd,0x92,0x01,0x2e,0x56,0x75,0x4b,0x89,0xa9,0xad,0x93,0xce,0x05,0xf8,0x9a,0x1e,0x0f,0x22,0x3f,0xce,0xc6,0xae,0xfe,0xea,0xe4,0xeb,0xfe,0xe3,0x01,0x4f,0x01,0x37,0xf2,0x01,0x51,0xaa,0x40,0x2b,0x16,0xfc,0xbe,0x8e,0x50,0x9a, -0x76,0x3a,0xcd,0xa0,0xb0,0xcf,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0xd1,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0xa5,0xb9,0x00,0x03,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x07,0x14,0x0e,0x0e,0x14,0x95,0x59,0x0e,0x0e,0x01,0x15,0x01,0x0d,0x95,0x59,0x01,0x0f,0x00,0x15,0x95,0x59,0x00,0x15,0x07,0x15,0x11,0x84,0x05,0x05, -0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x20,0x18,0x30,0x18,0x02,0x18,0x18,0x1c,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x00,0xb8,0xff,0xfc, -0x40,0x0e,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x33,0x11,0x21, -0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x11,0x21,0x32,0x35,0x34,0x23,0xa6,0x01,0xbe,0x97,0xaf,0xc4,0xeb,0xc1,0x8f,0xfe,0xc9,0xf6,0xc6,0xb2,0xfe,0xf6,0x01,0x1c,0xc7,0xdf,0x04,0x00,0x86,0x74,0xc7,0x2b,0x1e,0xcf,0x7d,0xaa,0x03,0x74,0xfe,0xe0,0x9a,0x86,0xfe,0x54,0xfe,0xc4, -0xa1,0x9b,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x00,0x05,0x00,0x47,0x40,0x20,0x05,0x00,0x95,0x59,0x05,0x0f,0x02,0x15,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb6,0x0b,0x06, -0x4d,0x03,0x2f,0x07,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x5d,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b,0xa4,0x02,0x39,0x03,0x74,0xfc,0x8c,0x04,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x0c,0x00,0x11,0x00,0xba,0x40,0x0d,0x00,0x11,0x01,0x10, -0x05,0x0a,0x0e,0x95,0x59,0x0a,0x0f,0x04,0x00,0xb8,0x01,0x31,0x40,0x1c,0x0d,0x07,0x02,0x0b,0x02,0x0b,0x95,0x59,0x02,0x15,0x0f,0x09,0x09,0x0d,0x07,0x0c,0x0c,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0xed,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x20,0x0b, -0x06,0x4d,0x02,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0d,0x12,0x0d,0x06,0x4d,0x0d,0x0d,0x13,0x07,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0x40,0x0d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x03,0x11,0x11,0x07,0x30,0x13, -0x01,0x5d,0x2f,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11, -0x33,0x21,0x11,0x23,0x02,0x03,0x04,0x23,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x06,0x04,0x02,0x14,0x98,0xfe,0xc4,0xe3,0x1b,0xce,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x7a,0x01,0xfb,0xfc,0x8b,0x02,0xea,0xfe,0x62,0xfe,0xb4,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x02,0x06,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x04, -0x00,0x00,0x05,0xf6,0x04,0x00,0x00,0x15,0x00,0xc5,0x40,0x21,0x0a,0x15,0x01,0x07,0x14,0x01,0x07,0x0b,0x01,0x0a,0x0a,0x01,0x09,0x07,0x01,0x09,0x02,0x01,0x0d,0x13,0x01,0x02,0x0c,0x01,0x01,0x08,0x01,0x0e,0x01,0x01,0x10,0x03,0x15,0xb8,0xff,0xf8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe8, -0x40,0x45,0x0c,0x00,0x4d,0x01,0x18,0x0c,0x00,0x4d,0x02,0x10,0x0c,0x00,0x4d,0x14,0x0b,0x10,0x0f,0x09,0x00,0x04,0x15,0x15,0x00,0x04,0x0a,0x05,0x09,0x14,0x14,0x00,0x18,0x0b,0x06,0x4d,0x00,0x0e,0x04,0x05,0x09,0x42,0x0b,0x09,0x08,0x0c,0x00,0x4d,0x09,0x09,0x16,0x10,0x0f,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04, -0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfc,0x40,0x0a,0x0b,0x06,0x4d,0x05,0x40,0x17,0x01,0x2f,0x17,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x2b,0x01,0x2b,0x2b, -0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x05,0xf6,0xde,0xfe,0x36,0x04,0x9c,0x04,0xfe,0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01, -0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x21,0x00,0xa7,0x40,0x09,0x05,0x12,0x01,0x0c,0x00,0x01,0x10,0x03,0x15,0xb8,0xff,0xe0,0x40,0x3a,0x0b,0x0c,0x00,0x4c,0x19,0x08,0x09,0x09,0x08,0x95,0x59,0x09, -0x09,0x14,0x03,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x10,0x01,0x03,0x20,0x03,0x95,0x59,0x20,0x16,0x19,0x16,0x08,0x08,0x11,0x0c,0x84,0x16,0x16,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x84,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff, -0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x23,0x11,0x00,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b, -0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x86,0xb3,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x01,0x05,0x78,0x68,0x95,0x96,0xaa,0x8e,0x01,0x76, -0x6f,0x64,0x72,0x8a,0xe2,0xc6,0xd3,0x1d,0xa1,0x4b,0xac,0xaa,0x8b,0xa2,0x45,0x52,0x4b,0x99,0x3e,0xfe,0xed,0x59,0x81,0x15,0x05,0x09,0x88,0x68,0x8c,0xa6,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x0d,0x00,0x92,0x40,0x2d,0x7c,0x0c,0x01,0x79,0x0b,0x01,0x73,0x05,0x01,0x76,0x04,0x01,0x46,0x09,0x01,0x4a,0x02,0x01, -0x09,0x02,0x08,0x0d,0x0f,0x05,0x00,0x15,0x0c,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x00,0xef,0x01,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0x40,0x29,0x0b,0x06,0x4d,0x01,0x01,0x0f,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06, -0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0xef,0x06,0x05,0x0d,0x06,0x4d,0x06,0x01,0x0b,0x06,0x4d,0x06,0x40,0x0f,0x01,0x2f,0x0f,0x01,0x5d,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23, -0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x04,0x00,0x94,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0xf2,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x06,0x07,0xcd,0x00,0x00,0x00,0x13, -0x40,0x0b,0x01,0x0d,0x14,0x0e,0x07,0x0d,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x03,0x91,0x04,0x00,0x00,0x0e,0x00,0x96,0x40,0x27,0x00,0x04,0x01,0x10,0x06,0x05,0x20,0x0b,0x0c,0x00,0x4c,0x0e, -0x02,0x95,0x59,0x0e,0x0f,0x09,0x0b,0x06,0x0b,0x95,0x59,0x06,0x00,0x15,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0xed,0x0d,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0x40,0x22,0x0b,0x06,0x4d,0x0d,0x0d,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, -0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x08,0x0d,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x01,0x01,0x10,0x08,0x3f,0x10,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b, -0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xa3,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0xad, -0x40,0x0a,0x79,0x12,0x01,0x77,0x0e,0x01,0x75,0x0d,0x01,0x0d,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x06,0x10,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x0c,0x00,0x4c,0x10,0x40,0x0c,0x00,0x4d,0x02,0x09,0x10,0x03,0x0d,0x13,0x0f,0x0a,0x05,0x00,0x15,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00, -0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x15,0x0d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x12,0x0c,0x06,0x4d,0x0a,0x12,0x0b,0x06,0x4d,0x0a,0xed,0x0b,0xb8,0xff,0xfe,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x0b,0x07,0x0b, -0x06,0x4d,0x0b,0x3f,0x15,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01, -0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x6a,0x40,0x22,0x09,0x02,0x95,0x59, -0x09,0x09,0x07,0x0b,0x0f,0x04,0x00,0x15,0x09,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfb,0x40,0x24,0x0b,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d, -0x05,0x40,0x0d,0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x01,0xd1,0xfe,0x2f,0x04,0x00, -0xfe,0x5c,0x01,0xa4,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x07,0x00,0x60,0x40,0x1e,0x07,0x02,0x95,0x59,0x07,0x0f,0x04,0x00,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01, -0x01,0x01,0xb8,0xff,0xfb,0x40,0x23,0x0b,0x06,0x4d,0x01,0x01,0x09,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x05,0x0d,0x06,0x4d,0x05,0x40,0x09,0x01,0x2f,0x09,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b, -0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x03,0x74,0xfc,0x8c,0x04,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x06,0x00,0x53,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29, -0x04,0x00,0x00,0x07,0x00,0x47,0x40,0x2d,0x04,0x00,0x07,0x00,0x95,0x59,0x07,0x0f,0x02,0x15,0x00,0x0e,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0x03,0x05,0x42,0x1f,0x05,0x01,0x05,0x05,0x08,0x03,0x04,0x0d,0x06,0x4d,0x03,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf1,0x2b, -0x2b,0x2b,0xe2,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0xa4,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x06,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x05,0x1c,0x05,0xb2, -0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xe4,0x40,0x19,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x95,0x59,0x0e,0x10,0x1f,0x03,0x00,0x17,0x00,0x17,0x95,0x59,0x00,0x16,0x0d,0x04,0x01,0x1c,0x24,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x1b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06, -0x4d,0x1b,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xe8,0x40,0x43,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x83,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x18,0x0b, -0x06,0x4d,0x07,0x07,0x28,0x0c,0x0d,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xed,0x02,0xb8,0xff,0xfb,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xfd,0x40,0x0c,0x0b,0x06,0x4d,0x2f,0x02,0x01,0x02,0x2f,0x29,0x3f,0x29,0x02,0x5d,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39, -0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x00,0x15,0x14, -0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x08,0x94,0x20,0xe0,0xfe,0xec,0x01,0x17,0xe5,0x18,0x94,0x16,0xe7,0x01,0x17,0xfe,0xee,0xdf,0x23,0x16,0x9c,0xba,0xb7,0x9a,0xaf,0x18,0x9a,0xba,0xbb,0x9d,0x18,0xfe,0x36,0x01,0xca,0x01,0x22,0xea,0xf9,0x01,0x2b,0x01,0x9a, -0xfe,0x66,0xfe,0xd7,0xfb,0xea,0xfe,0xde,0x03,0xa6,0xfc,0xe4,0xd3,0xb5,0xbe,0xd6,0xfc,0xe4,0x03,0x1c,0xd7,0xbd,0xb3,0xd5,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x02,0x06,0x00,0x5b,0x00,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x00,0x00,0x0b,0x00,0x93,0xb9,0x00,0x01,0x01,0x31,0x40,0x17,0x05,0x09,0x0f, -0x07,0x02,0x0a,0x02,0x0a,0x95,0x59,0x02,0x15,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x38,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x08, -0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0x08,0x0d,0x06,0x4d,0x03,0x04,0x0c,0x06,0x4d,0x03,0x40,0x0d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x11, -0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x8f,0x8d,0xfc,0xa4,0xa4,0x02,0x0a,0xa4,0x97,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x0f,0x00,0x67,0x40,0x46,0x0d,0x02,0x0b,0x04, -0x0b,0xec,0x59,0x04,0x04,0x00,0x08,0x0f,0x0f,0x00,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x02,0x0f,0x84,0x7f,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x07,0x05,0x0d,0x06,0x4d,0x07,0x05,0x0c,0x06,0x4d,0x07,0x2f, -0x11,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xa3,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x01,0x9c,0x62, -0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x05,0xc0,0x04,0x00,0x00,0x0b,0x00,0xad,0x40,0x1f,0x07,0x03,0x0b,0x0f,0x05,0x00,0x09,0x00,0x09,0x95,0x59,0x00,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x09,0x84,0x00,0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06, -0x4d,0x00,0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x22,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d, -0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xfc,0x40,0x0c,0x0b,0x06,0x4d,0x05,0x05,0x0d,0x0c,0x3f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, -0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc0,0xfa,0xe6,0xa4,0x01,0x98,0xa3,0x01,0x97,0xa4,0x04,0x00,0xfc,0x8c,0x03,0x74,0xfc,0x8c,0x03,0x74,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x06,0x5a,0x04,0x00,0x00,0x0f,0x00,0xf2,0xb9,0x00,0x01,0x01,0x31,0x40,0x1e,0x09,0x05,0x0d,0x0f,0x0b, -0x07,0x02,0x0e,0x02,0x0e,0x95,0x59,0x02,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x06,0x4d,0x02,0x02,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06, -0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0e,0x07,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf9,0x40,0x1b,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x32,0x0c,0x06,0x4d,0x03,0x08, -0x0b,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0e,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x3f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, -0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0x5a,0x8f,0xfa,0xdb,0xa4,0x01,0x97,0xa4,0x01, -0x98,0xa4,0x99,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x64,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x7e,0x40,0x26,0x05,0x0d,0x95,0x59,0x05,0x05,0x04,0x0e,0x04,0x01,0x95,0x59,0x04,0x0f,0x00,0x0e,0x95,0x59,0x00,0x15,0x09,0x08,0x0d,0x06,0x4d,0x09, -0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x83,0x11,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x11,0x11,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x00,0x02,0x02,0x14,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0x2f,0x2b, -0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x56,0xfe,0xc8,0x01,0xdc,0x01,0x14,0x9d,0xb9, -0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x03,0x74,0x8c,0xfe,0x77,0xa3,0x94,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0x06,0x04,0x00,0x00,0x03,0x00,0x0e,0x00,0x15,0x00,0xb0,0xb9,0x00,0x09,0xff,0xe8,0x40,0x2f,0x0b,0x00,0x4d,0x07,0x0f,0x95,0x59,0x07,0x07,0x10,0x02,0x05,0x0f,0x01,0x04,0x04,0x10, -0x95,0x59,0x04,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x01,0x17,0x04,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x83,0x10,0x13,0x01,0x13,0x08,0x0d,0x06,0x4d,0x13,0xb8, -0xff,0xf8,0x40,0x19,0x0c,0x06,0x4d,0x13,0x13,0x17,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x84,0x04,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f, -0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x05,0x06,0xa2,0xa2,0xfb,0xa0,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce, -0x04,0x00,0xfc,0x00,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0xb4,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x74,0x40,0x21,0x03,0x0b,0x95,0x59,0x03,0x03,0x0c,0x01,0x0f,0x00,0x0c,0x95,0x59,0x00,0x15,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b, -0x06,0x4d,0x07,0x83,0x0f,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x0f,0x0f,0x13,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x00,0x02,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, -0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe, -0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x18,0x00,0x99,0x40,0x09,0x00,0x16,0x01,0x00,0x12,0x01,0x10,0x05,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xf0,0x40,0x36,0x0c,0x06,0x4d,0x09,0x06,0x95,0x59,0x09,0x09,0x03,0x11,0x0e,0x0c,0x11,0x0c,0x95,0x59,0x11,0x10,0x00,0x01, -0x01,0x0c,0x03,0x01,0x03,0x17,0x03,0x95,0x59,0x17,0x16,0x07,0x07,0x00,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f, -0x5d,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x01,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x11, -0x14,0x00,0x23,0x22,0x5a,0x74,0x96,0x91,0xb3,0x08,0xfe,0x4c,0x01,0xb4,0x0c,0xb2,0x94,0x8f,0x69,0x6a,0x90,0xf4,0x01,0x06,0xfe,0xf3,0xe3,0x9d,0x2d,0x9b,0x56,0xb3,0x99,0x8c,0x98,0xac,0x4e,0xa2,0x36,0xfe,0xe3,0xfe,0xfd,0xf1,0xfe,0xe1,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x33, -0x00,0x0b,0x01,0x10,0x06,0x0a,0x13,0x95,0x59,0x0a,0x10,0x10,0x17,0x95,0x59,0x10,0x16,0x06,0x01,0x95,0x59,0x06,0x06,0x03,0x04,0x0f,0x03,0x15,0x07,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x19,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x19, -0x0b,0x06,0x4d,0x19,0x19,0x1c,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x83,0x07,0x00,0xb8,0xff,0xe0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x03, -0x08,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, -0x32,0x12,0x11,0x14,0x00,0x23,0x22,0x02,0x01,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x6c,0xfe,0xde,0xa4,0xa4,0x01,0x24,0x1a,0x01,0x01,0xc9,0xdb,0xf1,0xfe,0xfe,0xe2,0xd5,0xef,0x01,0xce,0xfe,0xce,0x01,0x36,0x01,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0xd2,0xea,0xfe,0xec,0xff,0x00,0xf9,0xfe,0xdd,0x01,0x01,0x02,0xa5, -0xfe,0x70,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0x3e,0x00,0x00,0x03,0x62,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0xae,0x40,0x5a,0x02,0x06,0x01,0x10,0x04,0x0a,0x02,0x12,0x02,0x12,0x95,0x59,0x02,0x02,0x11,0x00,0x11,0x13,0x95,0x59,0x11,0x0f,0x06,0x00,0x15,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b, -0x06,0x4d,0x05,0x08,0x0a,0x08,0x01,0x07,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x83,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x0d,0x07,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x0c,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb6, -0x0b,0x06,0x4d,0x01,0x01,0x1a,0x07,0xb8,0xff,0xf0,0xb5,0x0c,0x06,0x4d,0x06,0x07,0x19,0x10,0xce,0x32,0x2b,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39, -0x31,0x30,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x22,0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x33,0x03,0x62,0xa4,0x89,0x63,0x51,0x85,0xbe,0xac,0x3c,0x55,0x78,0x7e,0xc5,0xb2,0x01,0x66,0xa4,0xc2,0xcf,0xc9,0x01,0xa8,0xa0,0xfe,0xf8,0x01,0x3c,0x6e,0x23,0x10,0x90,0x6c, -0x88,0x9f,0xfe,0x31,0x01,0x43,0x9d,0xa6,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x8f,0x7f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x29,0x23,0x0c,0x12,0x3e,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x27,0xfe,0x62,0x04,0x14, -0x05,0xec,0x00,0x21,0x00,0xbc,0x40,0x40,0x11,0x0e,0x17,0x14,0x14,0x17,0x96,0x59,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x09,0x03,0x14,0x14,0x13,0x1b,0x18,0x08,0x1b,0x08,0x95,0x59,0x1b,0x0f,0x13,0x00,0x01,0x03,0x20,0x03,0xec,0x59,0x20,0x0c,0x15,0x15,0x15,0x0c,0x00,0x00,0x0d,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, -0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x83,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x23,0x11,0x14,0x17,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x0f,0x0d,0xb8,0xff,0xfc,0x40,0x0a,0x0b, -0x06,0x4d,0x0d,0x40,0x23,0x01,0x2f,0x23,0x01,0x5d,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39, -0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x21,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x10,0x02,0x23,0x22,0x01,0xd5,0x43,0x3a,0x92,0x8a,0xfe,0xfa,0x76,0xa2,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x69,0xd3,0x01,0x84,0xdb,0xe9,0x3a,0xfe,0x7b, -0x9d,0x24,0x01,0x2b,0x01,0x64,0x01,0xef,0xbb,0x8a,0xfd,0xd3,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8a,0xc2,0xfd,0x87,0xfe,0x5a,0xfe,0x83,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x06,0x0a,0x02,0x26,0x02,0x0a,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x94,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b,0x08,0x06,0x04,0x05,0x3e,0x01, -0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x60,0x04,0x18,0x00,0x18,0x00,0x86,0xb9,0x00,0x14,0xff,0xf0,0x40,0x52,0x0b,0x0c,0x00,0x4c,0x03,0x08,0x10,0x00,0x4d,0x11,0x12,0x95,0x59,0x11,0x11,0x16,0x08,0x00,0x0b,0x01,0x0d,0x03,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x18,0x01, -0x0c,0x03,0x18,0x16,0x02,0x16,0x95,0x59,0x02,0x16,0x12,0x12,0x13,0x0b,0x00,0x30,0x00,0x01,0x00,0x1a,0x10,0x10,0x0c,0x06,0x4d,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x32,0x2b,0x11,0x33,0x5d,0x2f,0xc4,0x12,0x39, -0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x25,0x06,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0x60,0x73,0x9f,0xe5,0xfe,0xf7,0x01,0x14, -0xf2,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0x01,0x1b,0xef,0x01,0x02,0x01,0x24,0x32,0xa2,0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x02,0x06,0x00,0x56,0x00,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x1a,0x05,0x87,0x02,0x26, -0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x56,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xf2,0x05,0xfc,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0xd5,0x40,0x34,0x00,0x03,0x01,0x10,0x06,0x04,0x18,0x0b, -0x0c,0x00,0x4c,0x08,0x0a,0x05,0x0a,0x95,0x59,0x05,0x00,0x0e,0x16,0x95,0x59,0x0e,0x0e,0x0c,0x17,0x0c,0x02,0x95,0x59,0x0c,0x0f,0x00,0x17,0x95,0x59,0x00,0x15,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0xed,0x0c,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x0c,0x0c,0x00,0x07,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c, -0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x1a,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfc,0x40,0x19,0x0c,0x06,0x4d,0x1a,0x1a,0x1e,0x0e,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x84,0x00,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00, -0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x00,0x00,0x1e,0x07,0x4f,0x1e,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b, -0x00,0x18,0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x02,0xee,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x01,0x15,0x9d,0xb9,0xbb,0x8d,0xfe,0xdd,0xf6,0xcd, -0xcf,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x77,0xa4,0x94,0x92,0xad,0x01,0xe9,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0xb7,0x40,0x28,0x08,0x01,0x13,0x0b,0x0b,0x13,0x95,0x59,0x0b,0x0b,0x14,0x06,0x0a,0x0f,0x03,0x00,0x00,0x14,0x95,0x59,0x00,0x15, -0x0f,0x04,0x0d,0x06,0x4d,0x0f,0x04,0x0c,0x06,0x4d,0x0f,0x04,0x0b,0x06,0x4d,0x0f,0x83,0x17,0xb8,0xff,0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x17,0x17,0x1b,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x84,0x00,0xb8,0xff,0xf9,0x40,0x09,0x0d,0x06,0x4d,0x00,0x14,0x0c,0x06,0x4d,0x00,0xb8, -0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1b,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x84,0x04,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x4f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b, -0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x06,0xfe,0x44,0xa4,0xa4,0x01, -0xbc,0xa4,0x01,0x14,0xa1,0xb5,0xb8,0x8f,0xfe,0xdd,0xf6,0xcc,0xce,0x01,0xdd,0xfe,0x23,0x04,0x00,0xfe,0x6a,0x01,0x96,0xfe,0x6a,0x9e,0x92,0x93,0xa7,0x01,0xdd,0xfe,0xaf,0xae,0xa3,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xfe,0x05,0xec,0x00,0x19,0x00,0xb4,0x40,0x3f,0x02,0x18,0x01,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10, -0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x0f,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c, -0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x01,0x01,0x1b,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfc,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b, -0xe1,0x2b,0x2b,0x2b,0x10,0xc0,0x2f,0x00,0x3f,0x33,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11, -0x03,0xfe,0xa4,0xec,0x7b,0xa3,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x77,0xd9,0x01,0x5a,0x02,0x33,0x01,0x41,0xba,0x95,0xfd,0xdb,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8c,0xc2,0xfe,0x5e,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x01,0x67,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1f,0x00,0x00,0x00,0x13, -0x40,0x0b,0x01,0x00,0x0e,0x0e,0x07,0x0a,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xf2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x07,0xcd,0xa0,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x00,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0x00,0x01,0x00,0xa6,0xfe,0x8b,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x9c,0xb3,0x07,0x0b,0x0f,0x02,0xb8,0x01,0x31,0x40,0x18,0x04,0x00,0x00,0x09,0x95,0x59,0x00,0x15,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xbb,0x01,0x2c,0x00,0x04,0x00,0x04,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04, -0xb8,0x01,0x2c,0x40,0x17,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x09,0x01,0x09,0xb8,0xff,0xf8,0x40,0x23,0x0b,0x06,0x4d,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x40,0x0d, -0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x33,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xfe,0x9e,0x8e,0xfe,0x9e,0xa4,0x02,0x0a, -0xa4,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x06,0xa2,0x00,0x07,0x00,0x75,0x40,0x19,0x05,0x00,0x91,0x59,0x06,0x05,0x03,0x02,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x09,0x70,0x00,0x01,0x00,0x08,0x0d, -0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33, -0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x03,0xa4,0xfd,0xc0,0xa8,0x02,0x58,0x90,0x05,0x02,0xfa,0xfe,0x05,0x9a,0x01,0x08,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xe6,0x05,0x0e,0x00,0x07,0x00,0x62,0x40,0x19,0x05,0x00,0x95,0x59,0x06,0x05,0x0f,0x02, -0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x1d,0x70,0x00,0x01,0x00,0x18,0x0d,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x12,0x0b,0x06,0x4d, -0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x02,0xe6,0xfe,0x64,0xa4,0x01,0xb0,0x90,0x03,0x74,0xfc,0x8c,0x04,0x00,0x01,0x0e,0xff,0xff,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x02,0x06,0x00,0xb3,0x00,0x00, -0x00,0x04,0x00,0xbc,0x00,0x00,0x08,0x9a,0x05,0xae,0x00,0x0b,0x00,0x14,0x00,0x26,0x00,0x2a,0x00,0xd8,0x40,0x52,0x06,0x20,0x01,0x0a,0x16,0x01,0x04,0x0b,0x01,0x03,0x07,0x01,0x03,0x0f,0x05,0x01,0x0f,0x01,0x01,0x10,0x04,0x29,0x28,0x96,0x59,0x29,0x00,0x00,0x11,0x96,0x59,0x00,0x00,0x06,0x06,0x0c,0x96,0x59,0x06,0x04,0x20,0x26, -0x03,0x1d,0x15,0x12,0x2a,0x29,0x2a,0x29,0x03,0x09,0x8b,0x13,0x13,0x2c,0x0f,0x8b,0x03,0x03,0x2c,0x1e,0x16,0x22,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x7e,0x24,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf0,0x40,0x1f,0x0c,0x06,0x4d,0x24,0x0a,0x0b,0x06,0x4d,0x24,0x24,0x2c, -0x20,0x1a,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x7e,0x1e,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x1e,0x04,0x0b,0x06,0x4d,0x1e,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x33, -0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x10,0x33,0x32,0x11, -0x10,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x01,0x21,0x35,0x21,0x07,0x1c,0xaf,0xc3,0xcb,0xba,0xb0,0xbb,0xcb,0xa8,0x6c,0x79,0xe1,0xdd,0xfd,0x02,0xd1,0xfd,0x5f,0x20,0x0e,0x06,0x08,0xa8,0xdc,0x02,0xc6,0x04,0x08,0xa8,0x03,0x79,0xfd,0x4d,0x02,0xb3,0x02,0x5c,0xde,0xc4,0xd1, -0xdf,0xda,0xc8,0xc6,0xea,0x02,0xcb,0x99,0x8c,0xfe,0xe2,0x01,0x20,0x01,0x23,0xfa,0xd9,0x04,0x70,0x37,0x21,0x2e,0x94,0xfb,0xfa,0x05,0x9a,0xfb,0x43,0x31,0xa0,0x03,0xec,0xfb,0xa4,0x84,0x00,0x01,0x00,0x11,0xff,0xf4,0x04,0xaf,0x04,0x00,0x00,0x1a,0x00,0xb2,0x40,0x36,0x00,0x18,0x01,0x0d,0x0a,0x01,0x10,0x04,0x16,0x00,0x14,0x0d, -0x00,0x1a,0x00,0x95,0x59,0x1a,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x10,0x15,0x00,0x00,0x02,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x7f,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x27,0x0b, -0x06,0x4d,0x0b,0x0b,0x1c,0x13,0x16,0x16,0x1b,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x13,0x17,0x0d,0x06,0x4d,0x13,0x12,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe8,0xb3,0x0b,0x06,0x4d,0x13,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b, -0x2b,0x5d,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x10,0xc2,0x2f,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x10,0xc4,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x21,0x11,0x14,0x07,0x23,0x36,0x35,0x11,0x06,0x07,0x35,0x36,0x33,0x21,0x04, -0xaf,0xde,0x65,0x22,0x36,0x3d,0x3d,0xe8,0xfe,0x7b,0x20,0xa7,0x24,0x7b,0x78,0x4b,0xaa,0x03,0xa9,0x03,0x7b,0xfd,0x95,0x8c,0x13,0x8c,0x17,0x01,0x15,0x02,0x72,0xfd,0x9d,0xc0,0x58,0x57,0xc1,0x02,0x63,0x03,0x56,0x96,0x48,0x00,0x00,0x02,0x00,0x2f,0x02,0x48,0x02,0xaa,0x05,0x9a,0x00,0x0c,0x00,0x11,0x00,0x4a,0x40,0x18,0x0c,0x0b, -0x0b,0x02,0xcc,0x0d,0x06,0x09,0x16,0x09,0x02,0x09,0x03,0x03,0x13,0x11,0x4f,0x06,0x7f,0x06,0x02,0x06,0x04,0x01,0xb8,0x01,0x56,0x40,0x0f,0x0c,0x06,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0d,0x02,0x0e,0x0a,0x27,0x02,0x28,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x12,0x39,0x2f,0x33,0x5d,0x33, -0xed,0x32,0x11,0x33,0x30,0x31,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x36,0x12,0x37,0x33,0x11,0x33,0x23,0x11,0x06,0x06,0x07,0x02,0xaa,0x6e,0x84,0xfe,0x77,0x69,0xba,0x4e,0x9c,0x6e,0xf2,0x3e,0x80,0x42,0x03,0x14,0xcc,0xcc,0x5c,0x79,0x01,0x13,0x9e,0xfd,0xe7,0x01,0x73,0x71,0xb3,0x4f,0x00,0x00,0x01,0x00,0x7b,0x02,0x33,0x02,0x8a, -0x05,0x9e,0x00,0x24,0x00,0x37,0x40,0x1e,0x04,0x1c,0x14,0x1c,0x02,0x12,0x1e,0xcc,0x08,0x08,0x26,0x14,0xcc,0x01,0x0f,0x0a,0xe6,0x19,0x19,0x10,0x01,0x03,0xe6,0x00,0x23,0x29,0x12,0xe6,0x10,0x27,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x5d,0x13,0x35,0x16, -0x33,0x32,0x3e,0x02,0x35,0x34,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x07,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x7e,0x71,0x57,0x2a,0x45,0x31,0x1a,0xcc,0x14,0x30,0x31,0x31,0x13,0x30,0x01,0xb7,0xfe,0xb5,0x19,0x07,0x15,0x17,0x16,0x06,0x40,0x74,0x56,0x33,0x36,0x5b,0x76,0x3f,0x7d,0x02,0x5e, -0x92,0x46,0x18,0x2a,0x3b,0x23,0x98,0x01,0x03,0x03,0x01,0x01,0xc4,0x7c,0xc8,0x01,0x01,0x01,0x22,0x43,0x65,0x43,0x48,0x6b,0x47,0x23,0x00,0x01,0x00,0x4d,0x02,0x48,0x02,0xa0,0x05,0xa4,0x00,0x0a,0x00,0x2a,0x40,0x15,0x03,0x06,0x0a,0xcc,0x00,0x06,0x00,0x06,0x00,0x0c,0x1f,0x05,0x01,0x05,0x0a,0x28,0x07,0x03,0xe6,0x05,0x27,0x00, -0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x30,0x31,0x13,0x36,0x12,0x37,0x21,0x35,0x21,0x15,0x06,0x02,0x07,0xb3,0x38,0x99,0x70,0xfe,0x59,0x02,0x53,0x79,0xaf,0x33,0x02,0x48,0xc6,0x01,0x75,0xab,0x76,0x35,0xb9,0xfe,0x6e,0xdc,0x00,0x03,0x00,0x41,0x02,0x34,0x02,0xad,0x05,0xae,0x00,0x23, -0x00,0x31,0x00,0x45,0x00,0x53,0x40,0x30,0x15,0x05,0x08,0x3c,0xcc,0x12,0x12,0x1a,0xcc,0x60,0x2a,0x01,0x2a,0x2a,0x47,0x00,0x32,0xcc,0x08,0x08,0x24,0xcc,0x00,0x40,0x0a,0x0f,0x48,0x00,0x15,0x05,0x2f,0xe6,0x0f,0x37,0x1f,0x37,0x02,0x37,0x37,0x0d,0x27,0xe6,0x1f,0x29,0x41,0xe6,0x0d,0x27,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f, -0x5d,0xed,0x39,0x39,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02, -0x23,0x22,0x06,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x41,0x14,0x27,0x39,0x25,0x34,0x3c,0x27,0x47,0x63,0x3c,0x3d,0x63,0x46,0x27,0x3b,0x35,0x23,0x39,0x28,0x15,0x2c,0x51,0x73,0x46,0x46,0x72,0x51,0x2d,0x90,0x58,0x4e,0x4e,0x5c,0x17,0x2c,0x3f,0x28,0x4a,0x5c,0x20,0x14,0x24,0x31,0x1d, -0x1d,0x32,0x25,0x15,0x14,0x25,0x32,0x1e,0x1f,0x32,0x22,0x13,0x03,0x32,0x21,0x41,0x3b,0x32,0x11,0x21,0x5d,0x38,0x31,0x55,0x3d,0x23,0x23,0x3e,0x54,0x31,0x39,0x5d,0x20,0x11,0x33,0x3b,0x41,0x20,0x3b,0x5e,0x42,0x23,0x23,0x42,0x5e,0x47,0x48,0x49,0x4b,0x46,0x20,0x38,0x29,0x17,0x51,0x01,0x3b,0x1a,0x2e,0x22,0x14,0x14,0x22,0x2e, -0x1a,0x1b,0x2c,0x20,0x12,0x13,0x20,0x2d,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x04,0x00,0x02,0x06,0x00,0xd6,0x00,0x00,0xff,0xff,0x00,0x79,0xfe,0x85,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x01,0x9c,0x7b,0x00,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06, -0x01,0x9c,0x09,0x00,0x00,0x02,0x00,0x64,0x01,0x02,0x04,0x0e,0x04,0xaa,0x00,0x1b,0x00,0x27,0x00,0x68,0x40,0x3b,0x02,0x06,0x09,0x0d,0x10,0x14,0x17,0x1b,0x08,0x04,0x12,0x01,0x07,0x04,0x40,0x22,0x04,0xbe,0x59,0x22,0x0e,0x12,0x12,0x1c,0xbe,0x59,0x15,0x0f,0x12,0x16,0x00,0x00,0x19,0x0e,0x08,0x0b,0x40,0x02,0x06,0x09,0x0d,0x10, -0x14,0x17,0x1b,0x08,0x0b,0x19,0xbd,0x25,0x0b,0x25,0x42,0x25,0x25,0x29,0x1f,0xbd,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x11,0x17,0x39,0x1a,0x18,0x10,0xde,0xc4,0x10,0xca,0x2f,0xc4,0x00,0x2f,0xde,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x1a,0x18,0x10,0xde,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x27,0x06, -0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x07,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x0e,0x5c,0x89,0x69,0x86,0x88,0x68,0x8a,0x5c,0x8a,0x4c,0x4c,0x8a,0x5c,0x8a,0x6e,0x82,0x81,0x6c,0x8b,0x5c,0x89,0x4e,0x4e,0xfe,0xb5,0x74, -0x9f,0xa1,0x72,0x71,0xa3,0xa6,0x01,0x62,0x60,0x8a,0x4c,0x4c,0x8a,0x60,0x86,0x71,0x7c,0x81,0x6c,0x88,0x60,0x89,0x4d,0x4d,0x89,0x60,0x88,0x70,0x7d,0x79,0x74,0x02,0x02,0xa2,0x71,0x71,0xa2,0xa2,0x71,0x71,0xa2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x06,0x3e,0x00,0x19,0x00,0x25,0x00,0xb2,0xb9,0x00,0x0d,0xff,0xf0,0xb3, -0x0b,0x00,0x4d,0x0a,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x00,0x4d,0x06,0xc0,0x02,0xf2,0x0d,0x1a,0x91,0x0f,0x0d,0x12,0x18,0x04,0x20,0x91,0x12,0x13,0x0d,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x06,0x06,0x04,0xc2,0x09,0x09,0x0d,0x00,0x15,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x23, -0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x23,0xb8,0xff,0xf4,0x40,0x2a,0x0b,0x06,0x4d,0x23,0x23,0x27,0x1d,0x06,0x0d,0x06,0x4d,0x1d,0x06,0x0c,0x06,0x4d,0x1d,0x06,0x0b,0x06,0x4d,0x1d,0x7d,0x15,0x10,0x0d,0x06,0x4d,0x15,0x10,0x0c,0x06,0x4d,0x15,0x10,0x0b,0x06,0x4d,0x15,0x2f,0x27,0x01,0x5d, -0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x2b,0x2b,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x23,0x16,0x11,0x10,0x00,0x21,0x20, -0x00,0x11,0x10,0x00,0x21,0x32,0x07,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x04,0x8f,0x30,0x20,0xd6,0x15,0x88,0x12,0x8c,0x7a,0x22,0x98,0xfe,0x8c,0xfe,0xc8,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0xd8,0xe4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x05,0x43,0x09,0x82,0x48,0x3a,0x36,0x50,0x6c, -0x86,0xc2,0xfe,0xdb,0xfe,0xa1,0xfe,0x68,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x98,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xa9,0x04,0xfc,0x00,0x18,0x00,0x24,0x00,0x95,0x40,0x2b,0x00,0x80,0x14,0xf2,0x05,0x19,0x95,0x07,0x05,0x0a,0x10,0x10, -0x1f,0x95,0x0a,0x16,0x00,0x00,0x17,0xc2,0x03,0x03,0x10,0x05,0x0d,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x83,0x22,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf7,0xb6,0x0c,0x06,0x4d,0x30,0x22,0x01,0x22,0xb8,0xff,0xe4,0x40,0x27,0x0b,0x06,0x4d,0x22,0x22,0x26,0x1c,0x0a,0x0d, -0x06,0x4d,0x1c,0x0a,0x0c,0x06,0x4d,0x1c,0x0a,0x0b,0x06,0x4d,0x1c,0x83,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x0e,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39, -0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x10,0x86,0x13,0xdb,0x82,0xfe,0xeb,0xe9,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0x30,0x56,0x3d,0x6d,0x3b, -0x4f,0xfe,0x3a,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x04,0xfc,0x38,0x50,0xc0,0x28,0x8d,0xfb,0xf5,0xfe,0xd9,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0x0e,0x0a,0x47,0x32,0x49,0xfe,0xcc,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x06,0x96,0x00,0x17,0x00,0x86,0x40,0x33,0x25,0x0a,0x35,0x0a, -0x02,0x25,0x08,0x35,0x08,0x02,0x12,0x80,0x17,0xda,0x0c,0x0c,0x05,0x03,0x09,0x91,0x02,0x13,0x12,0x12,0x10,0xc2,0x15,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0b,0x18,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xd8,0x40,0x18,0x0c,0x06,0x4d,0x0b,0x0b,0x19,0x07,0x08,0x0d,0x06,0x4d,0x07, -0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x30,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x10,0xfd,0x1a,0xcc,0x31,0x30,0x5d,0x5d, -0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x93,0x3c,0x4f,0x15,0x88,0x12,0xfb,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x47,0x31,0x4a,0x3a,0x38,0x50, -0xd2,0x1f,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xc7,0x04,0xfc,0x00,0x1b,0x00,0x92,0x40,0x32,0x06,0x40,0x10,0x00,0x4d,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x17,0x80,0x1b,0xf2,0x10,0x08,0x0f,0x02,0x0c,0x95,0x05,0x16,0x00,0x15,0x16,0x16,0x14,0xc2,0x19,0x19,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d, -0x00,0x84,0x02,0x0f,0xb8,0xff,0xe0,0x40,0x32,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x7f,0x0f,0x01,0x0f,0x0f,0x1d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x1d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1, -0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xd4,0xfd,0x1a,0xcd,0x31,0x30,0x2b,0x2b,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x03,0xe2, -0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x7a,0x3b,0x4f,0x14,0x86,0x13,0xe5,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x47,0x32,0x49,0x3a,0x38,0x50,0xc6,0x24,0x00,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x2b,0x40,0x16,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08, -0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06, -0x23,0x04,0x54,0x47,0x3d,0x54,0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x01,0x00,0xf2,0xfe,0xc6,0x01,0xb8,0xff,0x89,0x00,0x0b,0x00,0x15,0x40,0x09,0x00,0xc1,0x06,0x09,0xc0,0x03,0x03,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x55,0x29,0x3a,0x3c, -0x27,0x29,0x3a,0x3a,0xfe,0xc6,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x01,0x00,0x66,0x04,0xc2,0x01,0xc2,0x05,0xb8,0x00,0x03,0x00,0x0e,0xb4,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0xc2,0x7e,0xde,0xa8,0x04,0xc2,0xf6,0x00,0x01,0x00,0x64,0x04,0xc2,0x01,0xc0,0x05,0xb8, -0x00,0x03,0x00,0x0e,0xb4,0x01,0x03,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x64,0xb4,0xa8,0xdc,0x04,0xc2,0xf6,0xf6,0x00,0x02,0x00,0x42,0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x2e,0xb1,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0a,0x04,0x02,0x80,0x00, -0x00,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x04,0xc0,0x08,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x07,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x34,0xb4,0xa8,0xdd,0x3d,0x79,0xa4,0xa6,0x71,0xd8,0x84,0x05,0x5a,0xf6,0xf6,0x98,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x42, -0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x36,0xb1,0x03,0x00,0xb8,0xff,0xc0,0x40,0x1b,0x09,0x0c,0x48,0x00,0x00,0x06,0x80,0x07,0x80,0x07,0x90,0x07,0xa0,0x07,0x03,0x07,0xc0,0x04,0x40,0x0f,0x13,0x48,0x04,0x04,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xcc,0x5d,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xcd, -0x31,0x30,0x01,0x23,0x27,0x33,0x13,0x37,0x33,0x17,0x23,0x27,0x07,0x01,0x9e,0x7e,0xde,0xa8,0x73,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0x5a,0xf6,0xfe,0x72,0xfa,0xfa,0x94,0x94,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x45,0x40,0x26,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08,0x09,0x09,0x17,0x16, -0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, -0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94,0xfa,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4, -0x00,0x12,0x00,0x19,0x00,0x41,0x40,0x23,0x12,0x07,0xda,0x0c,0x10,0xda,0x40,0x03,0x09,0x40,0x0d,0x10,0x48,0x09,0x19,0x80,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0x1a,0xdd,0xd6,0x2b,0xd6, -0x1a,0xfd,0xdc,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7, -0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x34,0x40,0x19,0x02,0x80,0x00,0x04,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a, -0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c, -0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x36,0x40,0x1a,0x03,0x80,0x01,0x0a,0x04,0x07,0xd9,0x40,0x0d,0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x01,0x23, -0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8,0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x5e,0x40,0x37,0x0f,0xe2,0x40,0x00,0x02,0x10, -0x02,0x20,0x02,0x03,0x02,0xc0,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x08,0x09,0x09,0x1b,0x12,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc, -0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd,0xd4,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x5d,0x1a,0xdc,0x5d,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28, -0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x50,0x40,0x2c,0x12,0x07,0xda,0x0c,0x10,0xda,0x03,0x0a,0x40,0x0d,0x11,0x48, -0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd,0xdc,0xed,0xc6, -0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c,0x12,0x06,0xe4,0x65, -0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x3d,0xb3,0x0f,0xe2,0x40,0x02,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x02,0xc0,0x0b,0xb8,0xff,0xe8,0x40,0x14,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05, -0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x2b,0x1a,0xdc,0x2b,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06,0x23,0x04,0x54,0x47,0x3d,0x54, -0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x19,0x00,0x50,0xb3,0x00,0x07,0xda,0x0c,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0c,0x48,0x0c,0x10,0xda,0x40,0x03,0x09,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0c,0x48,0x09,0x19,0x80,0x17,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f, -0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0xc4,0x1a,0xdd,0xd6,0x2b,0xd6,0x1a,0xfd,0xdc,0x2b,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33, -0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3b,0xb3,0x02,0x00,0x04,0x0a,0xb8,0xff,0xc0, -0x40,0x18,0x09,0x0c,0x48,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, -0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3d,0xb3,0x03,0x01,0x0a,0x04,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x04,0x07,0xd9,0x40,0x0d, -0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8, -0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x68,0x40,0x0d,0x0f,0xe2,0x10,0x02,0x20,0x02,0x30,0x02,0xf0,0x02,0x04,0x02,0x0b,0xb8,0xff,0xd8,0x40,0x0a,0x0d,0x10,0x48,0x0b,0x08,0x09, -0x09,0x1b,0x12,0x18,0xb8,0xff,0xc0,0x40,0x21,0x09,0x0c,0x48,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd, -0xd4,0x2b,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x2b,0xd4,0x5d,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28,0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05, -0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x5c,0xb3,0x12,0x07,0xda,0x0c,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0c,0x10,0xda,0x03,0x0a,0xb8,0xff,0xc0,0x40,0x23, -0x09,0x0c,0x48,0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd, -0xdc,0x2b,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c, -0x12,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x5e,0x40,0x0c,0x0f,0xe2,0x0f,0x02,0x01,0x02,0x40,0x0d,0x10,0x48,0x02,0x0b,0xb8,0xff,0xe8,0xb6,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0xb8,0xff,0xc0, -0x40,0x21,0x09,0x0c,0x48,0x09,0x09,0x17,0x16,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xd5,0x1a,0xcd,0x2b,0xdc,0x2b,0x5d,0xed, -0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94, -0xfa,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x0b,0xb6,0x02,0x18,0x13,0x19,0x06,0x07,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00, -0x00,0x0e,0xb9,0x00,0x02,0xff,0xf7,0xb4,0x23,0x29,0x0f,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x85,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x7c,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x1a,0x19,0x0b,0x0b,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x27,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xf4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x31,0x25,0x10,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, -0x02,0x48,0x01,0x2e,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf4,0x40,0x0a,0x16,0x16,0x06,0x07,0x25,0x03,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0x52,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xc2,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, -0x00,0x28,0x24,0x10,0x14,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x49,0x00,0x13,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x15,0x16,0x06,0x07,0x25,0x03,0x02,0x1a,0x05,0x26, -0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xe8,0xff,0xe8,0x03,0x83,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x49,0xa6,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x25,0x26,0x0d,0x12,0x25,0x03,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, -0x08,0x1c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x07,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x27,0x28,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0xe9,0x06,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4a, -0x00,0x81,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf3,0x40,0x0a,0x37,0x38,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0xa3,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9, -0x40,0x0a,0x28,0x29,0x06,0x07,0x25,0x03,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4b,0x2f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x05,0x38,0x39,0x0d,0x12,0x25,0x03,0x02,0x37,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, -0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x6b,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0x11,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1e,0x40,0x0c,0x02,0x14,0x05,0x26,0x03,0x17,0x1a,0x20,0x05,0x00,0x3e,0x02,0xb8,0xff,0xf4,0xb4,0x14,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b, -0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0x97,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x24,0x11,0x26,0x03,0x29,0x2a,0x30,0x08,0x14,0x3e,0x02,0x1f,0x24,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b, -0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfb,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x52,0x01,0x59,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1a,0x14,0x06,0x07,0x25,0x03,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0, -0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4c,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x27,0x2d,0x0d,0x12,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfc,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x53,0x01,0x43,0x01,0x5c, -0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfa,0x40,0x0a,0x14,0x1a,0x06,0x07,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4d,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x1f,0x27,0x2d,0x0d,0x12,0x25, -0x03,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x65,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x54,0x01,0x64,0x01,0x5b,0x00,0x2c,0xb1,0x03,0x02,0xb8,0xff,0xfb,0x40,0x1a,0x1a,0x19,0x06,0x07,0x25,0x03,0x6f,0x25,0x8f,0x25,0x02,0x02,0x20,0x25,0x30,0x25, -0x50,0x25,0x60,0x25,0x80,0x25,0x05,0x25,0x05,0x26,0x00,0x2b,0x71,0x35,0x71,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4e,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x2a,0x29,0x0d,0x12,0x25,0x03,0x02,0x35,0x11,0x26, -0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x55,0x00,0xad,0x01,0x5b,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1a,0x10,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, -0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4f,0x35,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x36,0x3c,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x1a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xda,0x01,0x5e, -0x01,0x5c,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x13,0x05,0x26,0x03,0x17,0x20,0x26,0x05,0x00,0x3e,0x02,0x02,0x16,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xda,0x00,0xdc,0x00,0x00, -0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x23,0x11,0x26,0x03,0x29,0x30,0x36,0x08,0x14,0x3e,0x02,0x25,0x26,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf3,0x00,0x00,0x00,0x0b, -0xb6,0x01,0x10,0x0f,0x15,0x02,0x0b,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf2,0x00,0x00,0x00,0x0b,0xb6,0x02,0x27,0x1d,0x23,0x19,0x13,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x83,0x02,0x26,0x00,0x28, -0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x0d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0c,0x1d,0x11,0x02,0x0b,0x3e,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x27,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x19,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x30,0x2b,0x1f, -0x19,0x13,0x3e,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x0e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdc,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x07,0x16,0x0c,0x02,0x0b,0x3e,0x01,0x00,0x16,0x01,0x16,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xb2,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xc8,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d,0x24,0x1a,0x0c,0x12,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x6f,0x07,0xab,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, -0x02,0x48,0x00,0xdf,0x01,0x5b,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x14,0x10,0x02,0x03,0x25,0x02,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x5a,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xca,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf0, -0x40,0x0a,0x23,0x24,0x16,0x0f,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xb4,0x07,0xad,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x49,0xff,0xcc,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x10,0x13,0x02,0x03,0x25,0x02,0x01,0x16,0x05,0x26,0x00,0x2b,0x35, -0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0c,0xff,0xe8,0x03,0xdd,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x49,0xca,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x1f,0x20,0x16,0x0f,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x20,0x08,0x1a, -0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x56,0x00,0xb8,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x15,0x22,0x1e,0x02,0x03,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x32,0x06,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xca,0x00,0x00, -0x00,0x17,0x40,0x0d,0x03,0x02,0x19,0x31,0x32,0x16,0x0f,0x25,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x08,0x40,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0x4e,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x0f,0x23,0x1f,0x02,0x03,0x25,0x02,0x01, -0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0xe4,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x4b,0x47,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x10,0x31,0x2d,0x19,0x13,0x25,0x03,0x02,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc, -0xfe,0xc6,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xbf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xea,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x10,0x05,0x26,0x02,0x07,0x16,0x1c,0x01,0x00,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x10,0x0c,0x01,0x00,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x60, -0xfe,0xc6,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xb4,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xef,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x1e,0x11,0x26,0x03,0x26,0x24,0x2a,0x0c,0x12,0x3e,0x02,0x0c,0x1e,0x1a,0x0c,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x9a,0x00,0x00, -0x01,0xb3,0x07,0x83,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xef,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x88,0x00,0x00,0x01,0xa1,0x06,0x27,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x02,0x44,0xdd,0x00,0x00,0x13, -0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xb2,0xfe,0xc6,0x01,0x78,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x02,0x45,0xc0,0x00,0x00,0x0b,0xb6,0x01,0x05,0x07,0x0d,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x01,0x66, -0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xfd,0xb4,0x13,0x19,0x03,0x09,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x05,0xb2,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa8,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xf9,0xb4,0x1b,0x21, -0x03,0x09,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x04,0x18,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x06,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x1b,0x21,0x03,0x09,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x83,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x50, -0x01,0xf6,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xee,0x40,0x09,0x22,0x21,0x0c,0x06,0x3e,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x27,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x43,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x22,0x21,0x0c, -0x06,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0xb3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, -0x00,0x60,0xff,0xe8,0x04,0x98,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0x08,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00, -0x01,0x07,0x02,0x49,0x00,0x94,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x21,0x21,0x0c,0x06,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x50,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0x49,0xee,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd, -0x40,0x0a,0x21,0x21,0x06,0x06,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x1a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x78,0x01,0x5c,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xed,0x40,0x0a,0x2f,0x30,0x0c,0x06,0x25,0x03,0x02,0x2e,0x05,0x26, -0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x2c,0x2c,0x06,0x06,0x25,0x03,0x02,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e, -0xff,0xe8,0x05,0xaa,0x08,0x40,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x51,0x01,0x29,0x01,0x5c,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x2d,0x2d,0x0c,0x06,0x25,0x03,0x02,0x2f,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xe4,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06, -0x02,0x4b,0x70,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x30,0x31,0x0c,0x06,0x25,0x03,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x07,0x6b,0x02,0x26,0x00,0x32,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0xa4,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0xb0,0x00,0x00, -0x00,0x1b,0x40,0x12,0x02,0x1c,0x05,0x26,0x03,0x01,0x22,0x28,0x03,0x09,0x3e,0x02,0x16,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xf7,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfe,0x00,0x00,0x00,0x1e, -0xb4,0x02,0x1c,0x11,0x26,0x03,0xb8,0xff,0xfb,0x40,0x0c,0x22,0x28,0x03,0x09,0x3e,0x02,0x15,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x0e,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x27,0x27,0x18,0x18, -0x25,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x61,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x26,0x26,0x10,0x10,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e, -0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xc8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x27,0x27,0x18,0x18,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x02, -0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfc,0x40,0x09,0x26,0x26,0x19,0x19,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x83,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x50,0x02,0x0c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x30,0x2f,0x18,0x18,0x25,0x02,0x2f,0x05, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x27,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x45,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe9,0x40,0x09,0x2f,0x2e,0x19,0x10,0x25,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a, -0x07,0x0e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb0,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x0f,0x30,0x26,0x15,0x0f,0x25,0x02,0x30,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x05,0xb2,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xf8,0x00,0x00,0x00,0x13, -0x40,0x0b,0x02,0x03,0x2f,0x25,0x0d,0x07,0x3e,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x06,0x3a,0x06,0x3e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xac,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x2c,0x2c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6, -0x04,0xa9,0x04,0xfc,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x0b,0xb6,0x02,0x05,0x2b,0x2b,0x0a,0x0a,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc6,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x14,0x14,0x02, -0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xd1,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xfb,0xb4,0x18,0x18,0x0c,0x0c,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x83,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, -0x02,0x50,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1f,0x13,0x05,0x0d,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x27,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x22,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x23,0x17,0x08,0x11,0x3e,0x01, -0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xb8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x19,0x19,0x06,0x0c,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7, -0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x1d,0x1d,0x09,0x10,0x3e,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7a,0x01,0x5d,0x00,0x13, -0x40,0x0b,0x01,0x13,0x19,0x19,0x06,0x0c,0x3e,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x23,0x1d,0x1c,0x09,0x10,0x3e,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x83,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x9d,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe6,0x40,0x09,0x22,0x21,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x27,0x02,0x26,0x02,0x43, -0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x27,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x26,0x25,0x09,0x10,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x0e,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x66,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a, -0x22,0x18,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x05,0xb2,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x26,0x1c,0x08,0x1b,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0xaa,0xfe,0xc6,0x05,0xd0,0x06,0x96,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x1e,0x1e,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x04,0xc7,0x04,0xfc,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe5,0x00,0x00,0x00,0x0b,0xb6,0x01, -0x00,0x1f,0x25,0x0a,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0xfe,0xc6,0x04,0x60,0x05,0x9a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xdf,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x11,0x17,0x03,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x26,0x00,0x5c,0x00,0x00, -0x01,0x07,0x02,0x45,0x01,0xc2,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xec,0xb4,0x15,0x1b,0x14,0x14,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x83,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x1a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x18,0x1f,0x13,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00, -0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x27,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xc9,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x26,0x1a,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x0e,0x02,0x26, -0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xde,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x0e,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xb2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8b,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, -0xfd,0x40,0x09,0x1f,0x15,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x85,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x93,0x00,0x00,0x00,0x0b,0xb6,0x01,0x1d,0x0b,0x0b,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x85,0x02,0x81, -0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x01,0x9c,0x2a,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xe7,0xb4,0x17,0x15,0x04,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x67,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0e, -0x0c,0x02,0x0b,0x3e,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe5,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd9,0x40,0x09,0x1c,0x1a,0x19,0x13,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff, -0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x67,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xda,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x16,0x14,0x0b,0x01,0x3e,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x06,0x0a,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07, -0x00,0x43,0x00,0xde,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x11,0x0f,0x07,0x0d,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff, -0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xf6,0x05,0x9a,0x00,0x0d,0x00,0x5b,0x40,0x2c,0x05,0x08,0x91,0x02,0x0b,0x0b,0x07,0x01,0x91,0x0c,0x03,0x07,0x09,0x08,0x04,0x00,0x04,0x00, -0x0f,0x02,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x00,0x2f,0x3f,0xed,0x12, -0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0xf6,0xfd,0xc0,0x01,0x5a,0xfe,0xa6,0xa8,0xe5,0xe5,0x02,0xe8,0x05,0x02,0xfe,0x36,0x9a,0xfd,0x62,0x02,0x9e,0x9a,0x02,0x62,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x00,0x0d,0x00,0x5e,0x40,0x27,0x05,0x08, -0x96,0x02,0x0b,0x0b,0x07,0x01,0x95,0x0c,0x0f,0x07,0x09,0x07,0x04,0x00,0x04,0x00,0x0f,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x0b,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b, -0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0x29,0xfe,0x6b,0x01,0x02,0xfe,0xfe,0xa4,0xd2,0xd2,0x02,0x39,0x03,0x74,0xfe,0xe2,0x85,0xfe,0x2f,0x01,0xd1,0x85,0x01, -0xaa,0x00,0x00,0x01,0xff,0xea,0xfe,0x80,0x07,0x0a,0x05,0x9a,0x00,0x21,0x00,0xae,0x40,0x13,0x13,0x0d,0x1c,0x04,0x04,0x10,0x1f,0x10,0x0e,0x12,0x20,0x91,0x03,0x40,0x1d,0x17,0x12,0x03,0x01,0xb8,0x01,0x30,0xb3,0x09,0x03,0x0e,0x02,0xb8,0x01,0x2c,0x40,0x09,0x21,0x1d,0x1e,0x1e,0x08,0x20,0x03,0x02,0x21,0xb8,0xff,0xf8,0x40,0x26, -0x0c,0x06,0x4d,0x21,0x0e,0x08,0x12,0x11,0x11,0x09,0x0e,0x0f,0x0f,0x09,0x42,0x0f,0x1f,0x18,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x17,0x10,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf4,0x40,0x11,0x0c,0x06,0x4d,0x09,0x13,0x0b,0x06,0x4d,0x09,0x09,0x23,0x22,0x2f, -0x23,0x3f,0x23,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x2b,0x11,0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x1a,0x10,0xed,0x11,0x12,0x39,0x39,0x11,0x17,0x33,0x31,0x30,0x01,0x23, -0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x07,0x0a,0x99,0x50,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x17,0x0e,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a, -0xcd,0xfd,0x9b,0x02,0x0d,0x8b,0xfe,0x80,0x01,0x80,0x02,0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x1b,0x16,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0x04,0xfe,0x8b,0x06,0x00,0x04,0x00,0x00,0x19,0x00,0xa4,0xb9,0x00,0x01,0x01,0x31,0x40,0x15,0x04, -0x09,0x0f,0x14,0x04,0x0c,0x17,0x0c,0x07,0x15,0x0e,0x11,0x0f,0x18,0x96,0x03,0x40,0x0a,0x03,0x07,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0x01,0x2c,0x40,0x2c,0x02,0x15,0x16,0x16,0x06,0x18,0x03,0x02,0x02,0x19,0x0e,0x06,0x0e,0x0d,0x0d,0x07,0x0a,0x0b,0x0b,0x07,0x42,0x0b,0x17,0x12,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08, -0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x11,0x0c,0x07,0xb8,0xff,0xf0,0x40,0x11,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x0c,0x0b,0x06,0x4d,0x07,0x07,0x1a,0x1b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x32,0x2f, -0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x2b,0x00,0x2f,0x33,0x33,0x1a,0x10,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x06,0x00,0x8c,0x5c,0xfe,0x36,0x04,0x9c,0x04,0xfe, -0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01,0x81,0x87,0xfe,0x8b,0x01,0x75,0x01,0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xa8,0x05,0x9a,0x00,0x14,0x00,0x87,0xb9,0x00, -0x01,0x01,0x30,0x40,0x1c,0x0f,0x04,0x12,0x12,0x08,0x10,0x0b,0x03,0x13,0x91,0x02,0x02,0x08,0x10,0x11,0x11,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0xb8,0x01,0x2c,0xb2,0x13,0x03,0x02,0xb8,0xff,0xf8,0x40,0x1a,0x0d,0x06,0x4d,0x02,0x02,0x16,0x12,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08, -0x08,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x33,0x2f,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00,0x2f,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11, -0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xa8,0x9a,0x50,0xfd,0xd0,0x1b,0x0b,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x0c,0x8c,0xfe,0x80,0x01,0x80,0x02,0x90,0x20,0x12,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b, -0x02,0x71,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x00,0x04,0x00,0x00,0x10,0x00,0x7b,0xb9,0x00,0x01,0x01,0x31,0x40,0x1d,0x0f,0x96,0x03,0x0b,0x04,0x0e,0x0e,0x06,0x0c,0x09,0x0f,0x11,0x03,0x06,0x0c,0x0d,0x0d,0x06,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0xb8,0x01,0x2c,0x40,0x19,0x0f,0x03,0x02, -0x02,0x12,0x0e,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x39,0x2f,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00, -0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x04,0x00,0x8c,0x64,0xfe,0x3e,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0x7f,0x89,0xfe,0x8b,0x01,0x75,0x01,0xea,0xfe,0x16,0x04,0x00,0xfe,0x2d,0x01,0xd3, -0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0xaa,0x40,0x51,0x00,0x03,0x10,0x03,0x20,0x03,0x03,0x03,0x03,0x02,0x0a,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x14,0x14,0x0d,0x15,0x12,0x11,0x0f,0x16,0x0f,0x11,0x16,0x0f,0x06,0x05,0x02,0x01,0x08,0x01,0x06,0x08,0x01,0x0f,0x08,0x18,0x18,0x0a, -0x16,0x0d,0x03,0x01,0x0a,0x15,0x02,0x12,0x0f,0x05,0x01,0x05,0x05,0x00,0x16,0x17,0x17,0x01,0x19,0x00,0x29,0x00,0x02,0x0f,0x00,0x01,0x00,0x00,0x1a,0x08,0x0d,0x0f,0x18,0x04,0x0a,0x7e,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0xe1, -0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x33,0x11,0x39,0x2f,0x5d,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x31,0x30,0x21,0x23,0x01,0x11, -0x23,0x11,0x27,0x26,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x37,0x11,0x33,0x15,0x01,0x33,0x01,0x04,0xa2,0xea,0xfe,0x58,0x4c,0x36,0x26,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x36,0x4c,0x01,0x96,0xd1,0xfd,0x99,0x01,0xf4,0xfe,0xf2,0x01,0x68,0x42,0x2f,0x03,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x3f,0x01,0x52,0xf8,0x01, -0xd8,0xfd,0x50,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf4,0x04,0x00,0x00,0x14,0x00,0x81,0x40,0x4c,0x1f,0x04,0x01,0x50,0x04,0x60,0x04,0x02,0x04,0x04,0x02,0x08,0x5f,0x0f,0x6f,0x0f,0x02,0x0f,0x0f,0x0b,0x11,0x0e,0x0d,0x12,0x0d,0x05,0x02,0x01,0x06,0x01,0x0d,0x06,0x14,0x14,0x08,0x12,0x0b,0x0f,0x01,0x08,0x11,0x02,0x0e,0x05, -0x05,0x00,0x12,0x38,0x13,0x48,0x13,0x02,0x13,0x13,0x01,0x0f,0x00,0xaf,0x00,0x02,0x39,0x00,0x49,0x00,0x02,0x00,0x00,0x16,0x06,0x0b,0x0d,0x14,0x04,0x08,0x84,0x09,0x2f,0xe1,0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x5d,0x33,0x11,0x39,0x2f,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0x87, -0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x5d,0x31,0x30,0x21,0x23,0x01,0x15,0x23,0x11,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x35,0x33,0x15,0x01,0x33,0x01,0x03,0xf4,0xe4,0xfe,0xe6,0x4c,0x5c,0x04,0xa4,0xa4,0x04,0x5c,0x4c,0x01,0x06,0xd9,0xfe,0x23,0x01,0x33,0xc1,0x01,0x13,0x65, -0xfe,0x16,0x04,0x00,0xfe,0x2d,0x65,0xed,0x9b,0x01,0x1c,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x00,0x0f,0x00,0xb7,0x40,0x0b,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0xb8,0x01,0x30,0x40,0x13,0x0e,0x91,0x03,0x0c,0x09,0x03,0x03,0x06,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d, -0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x19,0x0c,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x0b,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xe0,0x40,0x1e,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d, -0x03,0x03,0x11,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf7,0xb3,0x0c,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x7d,0x2f,0x2b,0x2b,0xe1, -0x2b,0x2b,0x00,0x18,0x2f,0x33,0x3f,0x33,0x10,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xcd,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfe,0x00, -0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x90,0x04,0x00,0x00,0x0f,0x00,0x9c,0xb9,0x00,0x01,0x01,0x31,0x40,0x13,0x0e,0x95,0x03,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x0c,0x09,0x0f,0x03,0x06,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0x40, -0x40,0x0d,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x0b,0x03,0x03,0x0d,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03,0x03,0x11,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x08,0x0d,0x06,0x4d,0x07,0x40,0x11, -0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x2f,0x33,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x90,0x8e,0xae,0xfd,0xf6, -0xa4,0xa4,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x8c,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x0c,0x00,0x68,0x40,0x0c,0x03,0x1b,0x04,0x42,0x01,0x01,0x0d,0x0c,0x06,0x0f, -0x0c,0x00,0xb8,0xff,0xf8,0x40,0x24,0x0c,0x06,0x4d,0x00,0x0e,0x01,0x06,0x05,0x04,0x05,0x42,0x05,0x08,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x04,0x07,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0x40,0x0a,0x0c,0x06,0x4d,0x04,0x04,0x0e,0x0d,0x4f,0x0e,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b, -0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x11,0x01,0x33,0x10,0xe1,0x2b,0x32,0x00,0x18,0x3f,0x33,0x12,0x39,0x7d,0x2f,0x18,0xe5,0x3f,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x69,0xa4,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0x04,0x00,0xfc,0x06,0xfe,0x23,0x01, -0xdf,0x03,0xf8,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x14,0x00,0x7d,0x40,0x16,0x11,0x0d,0x07,0x04,0x97,0x40,0x0a,0x01,0x01,0x06,0x14,0x0d,0x03,0x06,0x11,0x10,0x05,0x06,0x03,0x03,0x14,0x00,0xb8,0xff,0xd8,0x40,0x23,0x0b,0x06,0x4d,0x00,0x0e,0x05,0x08,0x08,0x06,0x0d,0x0c, -0x06,0x0c,0x42,0x0c,0x01,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x06,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x06,0x06,0x16,0x15,0x20,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x2b,0x32, -0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x33,0x1a,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0x01,0x52,0xfe,0xae,0xa8,0xfe,0xb7,0x01,0x49,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a, -0x1c,0x01,0x50,0x05,0x9a,0xfc,0x72,0x85,0xfe,0x79,0x01,0x87,0x85,0x02,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x60,0x40,0x35,0x04,0x1b,0x02,0x05,0x96,0x08,0x40,0x0c,0x0c,0x08,0x10,0x0a,0x0f,0x12,0x08,0x00,0x00,0x10,0x11,0x0e,0x02,0x07,0x07,0x05, -0x0a,0x09,0x09,0x05,0x42,0x09,0x0d,0x0c,0x12,0x02,0x08,0x0d,0x06,0x4d,0x02,0x84,0x08,0x05,0x07,0x0d,0x06,0x4d,0x05,0x05,0x14,0x13,0x4f,0x14,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x32,0x39,0x39,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x32,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x1a, -0x10,0xed,0x32,0x3f,0x31,0x30,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x03,0x92,0xfe,0xac,0xa4,0xfe,0xb4,0x01,0x4c,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0xaa,0xfe,0x69,0x85,0xfe,0xae,0x01,0x52,0x85,0x04,0x00,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0xfc, -0x00,0x00,0x00,0x01,0x00,0x1a,0xfe,0x80,0x04,0xc6,0x05,0x9a,0x00,0x19,0x00,0x5f,0xb9,0x00,0x01,0x01,0x30,0x40,0x20,0x06,0x11,0x17,0x03,0x0c,0x0c,0x0a,0x15,0x0e,0x03,0x18,0x91,0x03,0x1a,0x03,0x0a,0x06,0x0c,0x11,0x17,0x04,0x0d,0x15,0x16,0x0e,0x0d,0x16,0x0d,0x16,0x0d,0x0b,0x19,0xb8,0x01,0x2c,0x40,0x0d,0x18,0x03,0x03,0x02, -0x10,0x0d,0x06,0x4d,0x02,0x02,0x1b,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, -0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xc6,0x98,0x61,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x01,0x6b,0x8a,0xfe,0x80,0x01,0x80,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42, -0x26,0x01,0xf4,0xfd,0x39,0xfd,0xc3,0x00,0x00,0x01,0x00,0x1a,0xfe,0x8b,0x03,0xb4,0x04,0x00,0x00,0x17,0x00,0x5f,0xb9,0x00,0x01,0x01,0x31,0x40,0x20,0x06,0x11,0x15,0x03,0x0c,0x0c,0x0a,0x13,0x0e,0x0f,0x16,0x96,0x02,0x18,0x02,0x0a,0x06,0x0c,0x11,0x15,0x04,0x0d,0x13,0x14,0x0e,0x0d,0x14,0x0d,0x14,0x0d,0x0b,0x17,0xb8,0x01,0x2c, -0x40,0x0d,0x16,0x03,0x03,0x02,0x08,0x0d,0x06,0x4d,0x02,0x02,0x19,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03, -0x23,0x01,0x01,0x33,0x13,0x16,0x17,0x33,0x01,0x33,0x01,0x13,0x33,0x03,0xb4,0x8b,0x5c,0xc9,0x15,0x18,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x15,0x16,0x04,0x01,0x00,0xb5,0xfe,0xa8,0xfb,0x7f,0xfe,0x8b,0x01,0x75,0x01,0x4c,0x23,0x2b,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x26,0x2a,0x01,0xae,0xfd, -0xfa,0xfe,0x87,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x17,0x00,0xa0,0x40,0x40,0x11,0x11,0x0c,0x0f,0x06,0x06,0x01,0x04,0x02,0x15,0x07,0x91,0x0f,0x15,0x15,0x13,0x16,0x0f,0x0f,0x01,0x16,0x0c,0x03,0x01,0x05,0x06,0x12,0x11,0x40,0x0c,0x15,0x11,0x7f,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, -0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x15,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x01,0x01,0x19,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x0b,0x0c,0x0b,0x06,0x4d,0x0b,0x2f, -0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x11,0x23,0x11,0x06,0x26,0x35,0x11,0x33,0x11, -0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x04,0x81,0xa8,0xa7,0x88,0x4c,0xce,0xea,0xa8,0xf6,0x1a,0x4c,0x86,0xa9,0xa8,0x02,0x85,0x58,0x17,0xfe,0xae,0x01,0x4a,0x0f,0xc3,0xbd,0x02,0x1b,0xfd,0xed,0xe7,0x01,0x6a,0xfe,0x9e,0x14,0x52,0x02,0x8c,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x16,0x00,0x8e, -0x40,0x5b,0x10,0x10,0x0b,0x0e,0x06,0x06,0x01,0x04,0x02,0x07,0x14,0x14,0x12,0x15,0x0e,0x95,0x07,0x07,0x01,0x15,0x0b,0x0f,0x01,0x05,0x06,0x11,0x10,0x40,0x0b,0x14,0x10,0x85,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x14,0x01,0x01,0x18,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08, -0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0a,0x05,0x0d,0x06,0x4d,0x0a,0x05,0x0c,0x06,0x4d,0x0a,0x04,0x0b,0x06,0x4d,0x0a,0x2f,0x18,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39, -0x39,0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x15,0x23,0x35,0x04,0x11,0x11,0x33,0x11,0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x03,0xdf,0xa3,0x76,0x66,0x4c,0xfe,0x84,0xa4,0xc2,0x16,0x4c,0x6e,0x6e,0xa3,0x01,0x9c,0x40,0x16,0xd4,0xca,0x1c,0x01,0x86,0x01,0x5a,0xfe, -0xae,0xe1,0x01,0x25,0xfe,0xe5,0x14,0x38,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x73,0x40,0x27,0x0b,0x06,0x04,0x91,0x0d,0x0d,0x07,0x0a,0x03,0x01,0x07,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d, -0x01,0xb8,0xff,0xfc,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x12,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00, -0x2f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x16,0x15,0x04,0x81,0xa8,0xf5,0xb4,0xe2,0xa8,0xa8,0xe4,0xc6,0xba,0xcf,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x05,0x9a,0xfd,0x7a,0x7a,0xc2,0xb2,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec, -0x02,0x06,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x77,0x40,0x29,0x12,0x91,0x01,0x20,0x01,0x50,0x01,0x02,0x01,0x09,0x16,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x7d,0x01, -0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x12,0x12,0x1a,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x7d,0x00,0x10,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0xed, -0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x5d,0x2f,0xed,0x31,0x30,0x13,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc, -0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x56,0x40,0x23,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x01,0x01,0x17,0x04, -0x95,0x09,0x10,0x17,0x95,0x0f,0x16,0x80,0x06,0x90,0x06,0x02,0x06,0x06,0x0c,0x00,0x13,0x14,0x0c,0x83,0x01,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x01,0x01,0x1b,0x14,0x83,0x00,0x10,0x0d,0x06,0x4d,0x00,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x12,0x39,0x11,0x12,0x39,0x2f,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, -0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x04,0xb0,0x9a,0xae,0x90,0x86,0xdf,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x84,0x7a,0x74,0xa3,0x02,0x29,0xab,0xba,0x72,0x9a, -0x62,0xfe,0xea,0xfe,0xf2,0xfe,0xd6,0x01,0x06,0xe5,0x35,0x8d,0x9f,0xa6,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19,0x00,0x63,0x40,0x18,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0x2b,0x30,0x0f,0x91,0x06,0x04,0x17,0x91,0x00,0x13,0x09,0x7d,0x12,0x0c,0x14,0x13,0xb8,0xff,0xf0,0xb3,0x0d,0x06, -0x4d,0x13,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe0,0x40,0x18,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x39,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a, -0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc0,0x12,0xfe,0xfd,0xd7,0xd0,0xfe,0xee,0x16,0x03,0xe4,0xfc,0x1c,0x15,0x01,0x0c,0xcb,0xdc,0x01, -0x09,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf5,0x01,0x0d,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x6b,0x40,0x18,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x2b,0x30,0x0e,0x95, -0x06,0x10,0x16,0x95,0x00,0x16,0x11,0x0c,0x13,0x09,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb6,0x0c,0x06,0x4d,0x30,0x12,0x01,0x12,0xb8,0xff,0xde,0x40,0x1b,0x0b,0x06,0x4d,0x12,0x12,0x19,0x13,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d, -0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe4,0xfe,0xf2,0x01,0x1a,0xf0,0xe5,0x01,0x01, -0xfe,0xeb,0x67,0x29,0xfe,0xe5,0x88,0xb1,0x17,0x02,0x98,0xfd,0x64,0x0a,0xb7,0x93,0x01,0x33,0x18,0x01,0x20,0xec,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x74,0x01,0x32,0xa0,0x92,0x8b,0xa3,0xbc,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x02,0x80,0x01,0xb8,0xff, -0xc0,0x40,0x12,0x09,0x0c,0x48,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd,0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x06,0xd9,0xf6,0xfe,0x4f,0x6e, -0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x02,0x80,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd, -0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x05,0x7d,0xf5,0xfe,0x50,0x6d,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x12,0x09,0x0c,0x48,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00,0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f, -0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x06,0xd9,0xf6,0xf6,0xbb,0x6e,0x6e,0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x01,0x80,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00, -0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x05,0x7d,0xf5,0xf5,0xbb,0x6d,0x6d,0x00,0x00,0x03,0x00,0x7d,0x06,0x1e,0x02,0xc4,0x07,0xd1,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44, -0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x2b, -0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x3b,0x27,0x29,0x3c,0x3a,0x06,0xdb,0xf6,0xf6,0xbd,0x39,0x2a,0x2a,0x39,0x3a, -0x29,0x29,0x3a,0x3b,0x28,0x2a,0x39,0x3a,0x29,0x29,0x3a,0x00,0x00,0x03,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x06,0x74,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x3b,0x40,0x1f,0x01,0x80,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b, -0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a, -0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39,0x29,0x29,0x3c,0x3a,0x05,0x7f,0xf5,0xf5,0xbd,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x08,0x00,0x03,0x00,0x16,0x00,0x54,0xb9,0x00,0x01,0xff,0xc0,0x40,0x0f,0x09,0x0d,0x48,0x01,0x80,0x03,0x40,0x10,0x15, -0x48,0x03,0x16,0x10,0xda,0x0b,0xb8,0xff,0xc0,0x40,0x1e,0x09,0x0c,0x48,0x0b,0x14,0xda,0x07,0x0d,0x02,0x20,0x0a,0x0d,0x48,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x2b,0x00,0x2f,0xd6,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x2b,0x1a, -0xcd,0x2b,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x12,0xf6,0xf6,0x1a,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x02, -0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xae,0x00,0x03,0x00,0x16,0x00,0x3e,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x1d,0x09,0x0c,0x48,0x00,0x16,0x10,0xda,0x0b,0x14,0xda,0x07,0x0d,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x00, -0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0xde,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xb8,0xf6,0xf6,0x1a,0x65,0x75,0x25, -0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x03,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x02,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x66,0x40,0x10,0x06,0x12,0xc1,0x00,0x00,0x0c,0x10,0x0c,0x02,0x0c,0x03,0x0c,0x2a,0x24,0xda,0x1f,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x03,0xb8, -0xff,0xc0,0xb3,0x0a,0x0d,0x48,0x15,0xb8,0xff,0xc0,0x40,0x11,0x0a,0x0d,0x48,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x5f,0x5e,0x5d,0x32,0xed,0x32,0x31,0x30,0x01,0x22, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43, -0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x3e,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x00,0x03,0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xa8,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x3f,0x40,0x22,0x06,0x12,0xc1,0x00, -0x0c,0x2a,0x24,0xda,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0xfd,0xc6,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e, -0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xe4,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x02,0x00,0x14,0x06,0x1e,0x02,0x12,0x07,0x6a,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09, -0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a,0x3a,0x17,0xb5,0xa8,0xde,0x06,0xa8,0x38,0x2a,0x29,0x37,0x37,0x29,0x28,0x3a,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x14,0x04,0xc2, -0x02,0x12,0x06,0x0e,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09,0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a, -0x3a,0x17,0xb5,0xa8,0xde,0x05,0x4c,0x38,0x2a,0x29,0x37,0x37,0x29,0x29,0x39,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x1e,0x06,0x1e,0x02,0x51,0x07,0xd7,0x00,0x0b,0x00,0x12,0x00,0x33,0xb3,0x06,0xc1,0x40,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14, -0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x07,0x14,0x39,0x2a,0x28,0x38,0x37,0x29, -0x29,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x00,0x02,0x00,0x1e,0x04,0xc2,0x02,0x51,0x06,0x7b,0x00,0x0b,0x00,0x12,0x00,0x2a,0x40,0x15,0x06,0xc1,0x40,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14,0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed, -0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0xb8,0x39,0x29,0x29,0x38,0x37,0x2a,0x28,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x03,0x00,0x14,0x06,0x1e,0x02,0x5b,0x07,0x9e,0x00,0x0b, -0x00,0x17,0x00,0x1b,0x00,0x39,0xb4,0x06,0x12,0xc1,0x00,0x0c,0xb8,0xff,0xc0,0x40,0x18,0x09,0x0c,0x48,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0xde,0x2b,0x32,0xed,0x32,0x31,0x30,0x01, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2b,0x39,0x39,0x29,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x06,0xd9,0x38,0x2b,0x2a,0x38,0x3a,0x28,0x2a,0x39,0x39,0x2a,0x29, -0x39,0x3a,0x28,0x2a,0x39,0xbb,0x6e,0x00,0x00,0x03,0x00,0x14,0x04,0xc2,0x02,0x5b,0x06,0x42,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x30,0x40,0x19,0x06,0x12,0xc1,0x00,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00, -0x18,0x2f,0x1a,0xfd,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2a,0x3a,0x3a,0x28,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x05,0x7d, -0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0xbb,0x6d,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x8a,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x7d, -0x00,0x00,0xff,0xff,0x00,0x16,0xfe,0x04,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x75,0xf9,0x6c,0x00,0x27,0x40,0x1a,0x03,0x02,0x00,0x13,0x19,0x06,0x07,0x25,0x03,0x02,0x16,0x40,0x09,0x0d,0x36,0x16,0x40,0x0a,0x0b,0x36,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35,0x35,0x01, -0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x05,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0xf9,0x6d,0x00,0x27,0x40,0x1a,0x03,0x02,0x1b,0x23,0x29,0x08,0x00,0x25,0x03,0x02,0x26,0x40,0x09,0x0d,0x36,0x26,0x40,0x0a,0x0b,0x36,0x20,0x26,0x01,0x26,0x17,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35, -0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x06,0xe2,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x47,0x01,0x5d,0x00,0x16,0xb9,0x00,0x03,0xff,0xc3,0x40,0x09,0x23,0x29,0x01,0x05,0x25,0x03,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec, -0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8b,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0xad,0x21,0x21,0x05,0x05,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe1,0x00,0x00,0x00,0x1a,0xb9,0x00, -0x03,0xff,0xc1,0x40,0x0c,0x23,0x29,0x00,0x0c,0x25,0x03,0x20,0x26,0x01,0x26,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x1a,0x00,0x00,0x00,0x1a,0xb9,0x00,0x02,0xff,0xf2,0x40,0x0c,0x21,0x27,0x03,0x0c,0x25,0x02,0x20, -0x24,0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1e,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x03,0xff,0xe3,0x40,0x0c,0x21,0x20,0x00,0x0c,0x25,0x03,0x20,0x22,0x01,0x22,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0xa6,0xff,0x1e,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3f,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x00,0x1f,0x1e,0x03,0x0c,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x07,0x67,0x02,0x26,0x00,0x26, -0x00,0x00,0x00,0x27,0x00,0xdd,0x02,0x39,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf5,0x01,0x5d,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x83,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x2f,0x00,0x00,0x00,0x08,0xb3,0x02, -0x2a,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x06,0xe2,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xd2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xa3,0x40,0x09,0x13,0x19,0x01,0x04,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec, -0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x64,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0x29,0x40,0x09,0x27,0x27,0x0f,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x54,0x00,0x00,0x00,0x1a, -0xb9,0x00,0x02,0xff,0xac,0x40,0x0c,0x13,0x19,0x00,0x04,0x25,0x02,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x17,0x40,0x0e,0x02,0x1f,0x21,0x27,0x08,0x00,0x25,0x02,0x20,0x24, -0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1e,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x46,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x02,0xff,0x85,0x40,0x0c,0x11,0x10,0x00,0x04,0x25,0x02,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x60,0xff,0x1e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x20,0x1f,0x1e,0x08,0x00,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27, -0x00,0x00,0x01,0x07,0x01,0x9d,0x01,0x4a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x12,0x10,0x00,0x04,0x25,0x02,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x85,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9d,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x4b, -0x21,0x1e,0x08,0x00,0x25,0x02,0x21,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x3f,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x14,0x10,0x00,0x04,0x25,0x02,0x15,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x60,0xfe,0x3e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe0,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x02,0x1e,0x22,0x1e,0x08,0x00,0x25,0x02,0x23,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, -0x02,0xd1,0x00,0xec,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x10,0x02,0x03,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd2,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x20, -0x21,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0xd3,0x00,0xfd,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x13,0x02,0x0b,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01, -0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd4,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1f,0x21,0x0c,0x12,0x25,0x03,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x03,0xb4,0x05,0x9a, -0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd9,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x17,0x10,0x0c,0x01,0x00,0x25,0x01,0x11,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x3d,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xda,0xf9,0x7b,0x00,0x13,0x40,0x0b, -0x02,0x32,0x1e,0x1a,0x0c,0x00,0x25,0x02,0x1f,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x9a,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd1,0xf9,0xe8,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x16,0x0c,0x01,0x00,0x25,0x01,0x1f,0x14,0x26,0x00,0x2b,0x35,0x01, -0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x99,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe1,0xf9,0xe7,0x00,0x13,0x40,0x0b,0x02,0x26,0x24,0x1a,0x0c,0x00,0x25,0x02,0x2d,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00, -0x00,0x27,0x00,0xdd,0x01,0x8a,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xec,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x25,0x1f,0x02,0x03,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x7d,0x00,0x00, -0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x33,0x2d,0x0c,0x12,0x25,0x03,0x30,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x06,0xe2,0x02,0x26,0x00,0x29,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0d, -0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0xe2,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x03,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x0a,0x09,0x25,0x01,0x15,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e, -0xff,0xe8,0x04,0xec,0x06,0x8c,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xda,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x80,0x1b,0x1a,0x05,0x0a,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x2f,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x17, -0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x1b,0x27,0x26,0x10,0x18,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe2,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x01,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x15,0x06,0x0b,0x25,0x01,0x0c, -0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xae,0x15,0x15,0x0b,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xf2,0x05,0x9a, -0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x8f,0x00,0x00,0x00,0x17,0x40,0x0e,0x01,0x0d,0x0f,0x15,0x05,0x00,0x25,0x01,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe7,0x00,0x00, -0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x15,0x1b,0x09,0x00,0x25,0x01,0x20,0x18,0x01,0x18,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe4,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x38,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1b,0x15,0x06,0x0b,0x25, -0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0xe4,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x16,0x21,0x21,0x0b,0x0b,0x25,0x02,0x01,0x1e,0x02,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, -0xff,0xff,0x00,0xa0,0xfe,0x50,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0xdd,0x6d,0x00,0xff,0xff,0x00,0x8c,0xfe,0x50,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x06,0x00,0xdd,0x59,0x00,0xff,0xff,0x00,0xbc,0xfe,0x8c,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xda, -0x01,0xa6,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x06,0x12,0x0c,0x05,0x00,0x25,0x01,0x12,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x27,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x0f,0x18,0x12,0x09,0x00,0x25,0x01,0x18,0x17, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xcf,0xfe,0x9c,0x02,0x50,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xac,0xf9,0xea,0x00,0x0b,0xb6,0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xb9,0xfe,0x9c,0x02,0x3a,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07, -0x00,0xd8,0xff,0x96,0xf9,0xea,0x00,0x0b,0xb6,0x02,0x00,0x1a,0x10,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x07,0xd1,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x75,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x05,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x05,0x26,0x00, -0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x02,0x1b,0x06,0x74,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x02,0xd6,0xff,0x57,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, -0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x65,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0x8f,0x40,0x09,0x13,0x12,0x08,0x0f,0x25,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x67,0x02,0x26,0x00,0x4e,0x00,0x00, -0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x1f,0x0f,0x0f,0x07,0x07,0x25,0x01,0x0f,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xcf,0x40,0x0c,0x14, -0x1a,0x07,0x00,0x25,0x01,0x20,0x17,0x01,0x17,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc8,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xce,0x40,0x0c,0x10,0x16,0x05,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x17,0x26,0x00, -0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1c,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x4f,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xdc,0x40,0x0c,0x13,0x14,0x07,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c, -0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x00,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x0f,0x10,0x05,0x00,0x25,0x01,0x20,0x0f,0x01,0x0f,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07, -0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xf2,0x40,0x0c,0x09,0x0f,0x01,0x00,0x25,0x01,0x20,0x0c,0x01,0x0c,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x95,0xfe,0xc6,0x01,0x5b,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x17,0x40,0x0e,0x01,0x00,0x07,0x0d, -0x01,0x00,0x25,0x01,0x20,0x0a,0x01,0x0a,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x06,0x8c,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x27,0x00,0xd9,0x00,0xcf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x2c,0xb9,0x00,0x02,0xff,0xf2,0xb5,0x0d,0x13,0x01,0x00,0x25,0x01, -0xb8,0xff,0xdb,0x40,0x10,0x07,0x06,0x02,0x00,0x25,0x02,0x20,0x10,0x01,0x10,0x14,0x26,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0xff,0xfa,0xfe,0xc6,0x01,0xf6,0x06,0x8c,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x27,0x00,0xd9,0xff,0xbc,0x01,0x5d,0x01,0x06,0x02,0x45,0xa2,0x00,0x00,0x29, -0xb9,0x00,0x02,0xff,0xff,0x40,0x17,0x0b,0x11,0x01,0x00,0x3e,0x01,0x00,0x05,0x04,0x01,0x00,0x3e,0x02,0x20,0x0e,0x01,0x0e,0x17,0x26,0x01,0x05,0x02,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe, -0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x0a,0x08,0x09,0x01,0x00,0x25,0x01,0x20,0x08,0x01,0x08,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0xff,0x1c,0x01,0xf8,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xbe,0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x00,0x06,0x07,0x01,0x00,0x25,0x01, -0x20,0x06,0x01,0x06,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x06,0x01,0x00,0x25,0x01,0x0b,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf, -0xfe,0x3e,0x02,0x13,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x83,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x00,0x08,0x04,0x01,0x00,0x25,0x01,0x09,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x07,0x67,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x8e,0x02,0x48, -0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x06,0x0a,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x32,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x22,0x20,0x13,0x1f,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x06,0xe2,0x02,0x26,0x00,0x30,0x00,0x00, -0x00,0x07,0x00,0xdb,0x02,0x78,0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x05,0x85,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xac,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x23,0x29,0x13,0x1f,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x06,0x72, -0x05,0x9a,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0xf2,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x06,0x54,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x27,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x23,0x29,0x12,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe3, -0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x27,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x17,0x1d,0x0a,0x13,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0x85,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13, -0x40,0x0b,0x01,0x09,0x16,0x1c,0x0a,0x12,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa0,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xf7,0xb4,0x17,0x1d,0x09,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6, -0xfe,0xc6,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x04,0x00,0x00,0x00,0x0b,0xb6,0x01,0x0a,0x16,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xbf,0xfa,0x5a,0x00,0x1e,0xb9,0x00,0x01,0xff, -0xfd,0xb6,0x16,0x17,0x0a,0x13,0x25,0x01,0x16,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x16,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x21,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x0e,0x15,0x16,0x0a,0x12,0x25,0x01,0x15,0xb8, -0xff,0xc0,0xb5,0x09,0x0b,0x36,0x15,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x91,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x18,0x14,0x0a,0x13,0x25,0x01,0x19,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0xa6,0xfe,0x3c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe2,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x17,0x13,0x0a,0x12,0x25,0x01,0x18,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x08,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd7, -0x01,0x1e,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x26,0x1c,0x03,0x09,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xae,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xd8,0x6d,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x26,0x1c,0x03,0x09,0x25, -0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x02,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd9,0x01,0x1b,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b, -0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xa8,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xda,0x73,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x04,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, -0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd1,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1c,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd2,0x01,0x1c, -0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd3,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1c,0x1f,0x03,0x09,0x25, -0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd4,0x01,0x13,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x07,0x67,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xb9,0x40,0x09,0x15,0x13,0x03,0x07,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x0a,0x02,0x26,0x00,0x53, -0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1b,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x20,0x1e,0x04,0x0c,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x06,0xe2,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x5c,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff, -0xb8,0x40,0x09,0x16,0x1c,0x03,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0x85,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf0,0x40,0x09,0x21,0x27,0x04,0x0c,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01, -0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x06,0xe2,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x87,0x01,0x5d,0x00,0x08,0xb3,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x05,0x85,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb6,0x00,0x00,0x00,0x16,0xb9,0x00, -0x01,0xff,0xd3,0x40,0x09,0x14,0x1a,0x08,0x10,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x02,0x45, -0x5a,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x06,0x8c,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x27,0x00,0xd9,0x01,0x23,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0x00,0x08,0xb3,0x02,0x29,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x05,0x2f,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x26,0x00,0xd9, -0x6c,0x00,0x01,0x06,0x02,0x45,0x5a,0x00,0x00,0x22,0xb9,0x00,0x02,0xff,0xfe,0xb5,0x18,0x1e,0x08,0x10,0x3e,0x01,0xb8,0xff,0xf7,0x40,0x09,0x12,0x11,0x08,0x10,0x3e,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1b,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xd9, -0x01,0x5c,0xfa,0x59,0x00,0x11,0xb1,0x02,0x2a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x2a,0x14,0x26,0x00,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0x1d,0x02,0xc7,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x8d,0xfa,0x5b,0x00,0x1c,0x40,0x09,0x01,0x18,0x13,0x14,0x08,0x10,0x25,0x01,0x13,0xb8,0xff,0xc0, -0xb5,0x09,0x0b,0x36,0x13,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5d,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00, -0x01,0x07,0x00,0xdb,0x01,0x05,0x00,0x00,0x00,0x08,0xb3,0x01,0x2f,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x02,0x45,0x00,0xd3,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0xc6,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x02,0x45,0x72,0x00, -0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdb,0x01,0x5a,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x42,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xdc,0x00,0xdb,0x00,0x00,0x00,0x0a,0xb4,0x02, -0x01,0x3e,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0xd7,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdd,0x01,0x16,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x44,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x7b,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xde, -0x00,0x8c,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x3d,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x27,0x00,0xdb,0x01,0x93,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x0b,0x00,0x00,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xfe,0xc6, -0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x02,0x45,0x00,0x82,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xff,0x00,0x00,0x00,0x08,0xb3,0x01,0x3b,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x06,0xe2,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4d,0x01,0x5d,0x00,0x13,0x40,0x0b, -0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x55,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x5e,0x00,0xd0,0x00,0x19,0xb9,0x00,0x01,0xff,0xd6,0xb6,0x18,0x1e,0x07,0x14,0x25,0x01,0x15,0xb9,0x01,0x2d,0x00,0x0a,0x00,0x10, -0xfe,0x34,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xfe,0xc6,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc4,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0xc6,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x02,0x45, -0x13,0x00,0x00,0x0b,0xb6,0x01,0x12,0x18,0x1e,0x07,0x14,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xff,0x1c,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe0,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x00,0x0a,0x0b,0x06,0x07,0x25,0x01,0x0a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0a,0x14,0x26,0x00, -0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0x1b,0x02,0x95,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x5b,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x41,0x17,0x18,0x07,0x14,0x25,0x01,0x17,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x17,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29, -0xfe,0x3d,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xa7,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x03,0x0c,0x08,0x06,0x07,0x25,0x01,0x0d,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x3e,0x02,0x86,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xf6, -0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x16,0x19,0x15,0x07,0x14,0x25,0x01,0x1a,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc3,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x17,0xfa,0x01,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xf8,0xb7,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01, -0x20,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x20,0x14,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xfe,0xc4,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x7f,0xfa,0x02,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xe6,0xb7,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x24,0xb8,0xff,0xc0, -0xb5,0x09,0x0b,0x36,0x24,0x17,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xfe,0x9e,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x4c,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x18,0x0e,0x05,0x0d,0x25,0x01,0x21,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x90,0xfe,0x9e,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd3,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x1c,0x12,0x08,0x11,0x25,0x01,0x25,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x3d,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00, -0x01,0x07,0x00,0xd7,0x01,0x42,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x12,0x0e,0x05,0x0d,0x25,0x01,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x3d,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40, -0x09,0x16,0x12,0x08,0x11,0x25,0x01,0x17,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x08,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0xd7,0x00,0xdc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x1c,0x12,0x05,0x0d,0x25,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, -0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xae,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x02,0xd8,0x59,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x09,0x20,0x16,0x08,0x11,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9e,0x02,0x26,0x00,0x38, -0x00,0x00,0x01,0x07,0x02,0xdf,0x01,0x8c,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x04,0x1d,0x17,0x05,0x0d,0x25,0x03,0x02,0x01,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x42,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0xe0,0x00,0xff,0x00,0x00, -0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0b,0x21,0x1b,0x08,0x11,0x25,0x03,0x02,0x01,0x2b,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x07,0x0f,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x1d,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x04,0x16,0x0c, -0x03,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x05,0xb2,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x0c,0x03,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12, -0xfe,0xc6,0x04,0xe6,0x05,0x9a,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0xc6,0x03,0xcb,0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x92,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff, -0xfb,0xb4,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe2,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xfd,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0, -0x05,0x85,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x24,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0xc6,0x07,0x60,0x05,0x9a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x75,0x00,0x00,0x00,0x0b, -0xb6,0x01,0x0d,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0xfe,0xc6,0x05,0xb0,0x04,0x00,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x95,0x00,0x00,0x00,0x0b,0xb6,0x01,0x06,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe2,0x02,0x26,0x00,0x3b, -0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x93,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x07,0x19,0x1f,0x09,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x85,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x0e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x17,0x1d, -0x0b,0x00,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe4,0x02,0x26,0x00,0x3b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xcd,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, -0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x87,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x06,0x00,0x8f,0x43,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x0d,0x23,0x1d,0x0b,0x00,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00, -0x01,0x07,0x00,0xdb,0x01,0x67,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x11,0x17,0x05,0x00,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x85,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x1f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40, -0x09,0x18,0x1e,0x0c,0x00,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x6b,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xdb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0f,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0e,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xd7,0x6f,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x04,0x64,0x05,0x9a,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfd, -0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x14,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xff,0x1c,0x04,0x64,0x05,0x9a, -0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x0c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x06,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0xff,0x1b,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd9, -0x00,0x9c,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x10,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x09, -0x14,0x15,0x0a,0x11,0x25,0x01,0x14,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x14,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x57,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0xb8,0x00,0xd0,0x00,0x1b,0x40,0x0b,0x02,0x01,0x00,0x24,0x1e,0x07,0x14,0x25,0x02,0x01,0x15,0xb9, -0x01,0x2d,0x00,0x0a,0x00,0x10,0xfe,0x34,0x34,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x1c,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0xcc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x08,0x1f,0x25,0x0b,0x00,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, -0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x1c,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xcb,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x18,0x1e,0x0c,0x00,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x1f,0x02,0x26, -0x00,0x44,0x00,0x00,0x01,0x07,0x06,0x84,0x00,0xc9,0xff,0xf0,0x00,0x13,0x40,0x0b,0x02,0x30,0x26,0x29,0x08,0x14,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x02,0x62,0x06,0xe2,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x00,0xdb,0xff,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff, -0x2c,0x40,0x09,0x10,0x16,0x07,0x0c,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x29,0x29,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x2d,0x33,0x0a,0x13,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x61,0xe8,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb3,0x40,0x09,0x2b,0x31,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x36, -0x0c,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xde,0x40,0x0a,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x43,0xf2,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xc3,0x40,0x0a,0x2a,0x34, -0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x37,0x37,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, -0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x44,0x27,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x2a,0x34,0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f, -0x00,0x00,0x01,0x06,0x04,0x38,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x33,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x45,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8, -0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0x3f,0xff,0x7d,0x00,0x16,0xb4,0x02,0x19,0x04,0x19,0x02,0xb8,0xfe,0x04,0xb4,0x11,0x1c,0x05,0x00,0x25,0x01, -0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x44,0xff,0x7d,0x00,0x16,0xb4,0x02,0x17,0x04,0x17,0x02,0xb8,0xfe,0x08,0xb4,0x14,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e, -0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xd7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07, -0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xfe,0xe5,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03, -0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xe7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xff,0x00,0xb4, -0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xff,0x05,0xb4,0x10,0x10,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00, -0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfd,0x88,0xb4,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe7, -0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x27,0xb2,0x00,0x00,0x13,0x40,0x0b,0x01,0x4d,0x2c,0x32,0x0c,0x11,0x25,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x61,0x82,0x00,0x00,0x13,0x40,0x0b, -0x01,0x11,0x2a,0x30,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x36,0x8b,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x21,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, -0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0x71,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26, -0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x37,0xc4,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x5a,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x44,0xa8,0x00,0x00,0x17,0x40,0x0d,0x02,0x01, -0x3e,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x02,0x02,0x25,0x01, -0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xfd,0x7b,0xb4,0x10,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0x5a, -0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00, -0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a, -0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0xf5,0xb4,0x0d,0x19,0x02,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff, -0xa0,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x27,0x1f,0x00,0x00,0x13,0x40,0x0b,0x01,0x3b,0x16,0x21,0x0c,0x14,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82, -0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x61,0xdc,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x19,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x36,0xdd,0x00, -0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x43,0xca,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe5,0x40,0x0a,0x18,0x22,0x0c,0x14, -0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x37,0x29,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x44,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, -0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x44,0x08,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x24,0x18,0x22,0x0c,0x14,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06, -0x04,0x38,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x45,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a, -0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x06,0x06,0x25,0x01,0x2b,0x35, -0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xff,0x6e,0xb4,0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0x9e, -0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07, -0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02, -0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x56,0xb4,0x0d,0x19,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0xa0,0xb4, -0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00, -0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x94,0xff,0xf4, -0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0xb0,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb2,0x40,0x09,0x0d,0x18,0x05,0x0b,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x6e,0xff,0xf4,0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x8c, -0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x8d,0x40,0x09,0x10,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x93,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x94,0x40,0x0a,0x0d,0x19,0x05,0x0b, -0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xb3,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x6f,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x70,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0x00,0x1b,0xff,0xf4,0x02,0x47,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0xd9,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xda,0x40,0x0a,0x0d,0x19,0x05,0x0b,0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xea,0xff,0xf4,0x02,0x2d,0x06,0x06, -0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xb2,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xb4,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8d, -0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a,0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8d,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a, -0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x02,0x4a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0d,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x48,0x05,0xa0, -0x00,0x27,0x00,0x2c,0x00,0xe4,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0b,0x04,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x73,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00, -0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0x00,0x00,0x03,0x6e,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x9a, -0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0x00,0x00,0x03,0x77,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x13,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c, -0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, -0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x27,0x0a,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x19,0x24,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00, -0x00,0x16,0xb9,0x00,0x02,0xff,0xd4,0x40,0x09,0x1c,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x36,0xe9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18, -0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x43,0xb9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xb9,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60, -0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x37,0x21,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x21,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x44, -0xfc,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x02,0x21,0x04,0x21,0x02,0xb8,0xfc, -0xc8,0xb4,0x19,0x24,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1f,0x04,0x1f,0x02,0xb8,0xfc,0xca,0xb4,0x1c,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, -0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xff,0xe2,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27, -0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x1d,0x04,0x1d,0x03,0x02,0xb8,0xff,0xf0,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x37, -0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xfc,0x36,0xb4,0x19,0x25,0x03,0x09,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x18,0x40,0x0d,0x03,0x02, -0x1d,0x04,0x1d,0x03,0x02,0x0b,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x27,0xed,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xed,0x40,0x09,0x23,0x29,0x00,0x16,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01, -0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x61,0x90,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x84,0x40,0x09,0x21,0x27,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00, -0x01,0x06,0x04,0x36,0xae,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x43,0xa5,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9f, -0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x37,0xee,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b, -0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x44,0xcf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xca,0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, -0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x38,0xb0,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xaa,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x45,0xaa,0x00, -0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x48,0x05,0xa0,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xfd, -0x13,0xb4,0x12,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xb9,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00, -0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xd3,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00, -0x06,0x7d,0x05,0xb2,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x17,0x04,0x17,0x02,0x01,0xb8,0xfc,0x8b,0xb4,0x14,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01, -0x01,0x07,0x04,0x27,0x00,0xf7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x61,0x00,0xca,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe1,0x40,0x09,0x26, -0x2c,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x36,0x00,0xcc,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xea,0x40,0x0a,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x43,0x00,0xb3,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0a,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06, -0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x37,0x01,0x27,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x44,0x00,0xf9,0x00,0x00, -0x00,0x17,0x40,0x0d,0x02,0x01,0x17,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x38,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d, -0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x45,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d,0x25,0x02,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x25,0x04,0x25,0x01,0xb8,0xff,0xb1,0xb4,0x28,0x28,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27, -0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x23,0x04,0x23,0x01,0xb8,0xff,0xb4,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98, -0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xd7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x21,0x04,0x21,0x02,0x01, -0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x25,0x01, -0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x18,0x40,0x0d,0x02,0x01,0x21,0x04,0x21,0x02,0x01,0x00,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc, -0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d, -0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x02,0xff, -0x8f,0x40,0x09,0x29,0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x60,0x35,0x00,0x00,0x13,0x40,0x0b,0x02,0x06,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x55,0xff,0x6c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x28,0x26,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x60, -0xda,0x00,0x00,0x13,0x40,0x0b,0x01,0x6f,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd9,0x40,0x09,0x17,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26, -0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x60,0x40,0x00,0x00,0x13,0x40,0x0b,0x01,0x5b,0x17,0x15,0x0c,0x14,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x34,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9, -0x00,0x00,0x01,0x07,0x04,0x55,0xfe,0x63,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x64,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0xdd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, -0xde,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x55,0xd2,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd2,0x40,0x09,0x1a,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, -0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x60,0x24,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x1a,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x55, -0x8c,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x86,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x60,0x02,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f, -0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x55,0x00,0xaf,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xcc,0x40,0x09,0x24,0x22,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00, -0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x60,0x01,0x1f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x3c,0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x27,0x29,0x00,0x01,0x06,0x04,0x28, -0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x27,0x11,0x26,0x03,0x25,0x3c,0x36,0x0a,0x00,0x3e,0x02,0x00,0x2d,0x33,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x61,0xe9,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c, -0x02,0x28,0x11,0x26,0x03,0x25,0x3b,0x35,0x0a,0x00,0x3e,0x02,0xb8,0xff,0xb4,0xb4,0x2b,0x31,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x36,0x0c,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x27,0x11, -0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xde,0xb4,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x43,0xf4,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11, -0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xc5,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x37,0x38,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1f,0x40,0x14,0x03,0x02,0x27,0x11, -0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0x0a,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x44,0x26,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11,0x26,0x04, -0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xf8,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x38,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x33,0x11,0x26,0x04, -0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x45,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x36,0x11,0x26,0x04, -0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x29,0xfe,0x40,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c,0x02,0x19, -0x04,0x19,0x03,0x07,0x25,0x26,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xd3,0xb4,0x1c,0x1c,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x61,0xfe,0x46,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c, -0x02,0x17,0x04,0x17,0x03,0x07,0x24,0x25,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xcc,0xb4,0x1a,0x1a,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x73,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x75,0x00,0x00, -0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x13,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xd8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7d,0xff,0x97, -0x01,0x07,0x04,0x28,0x01,0x84,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x22,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00, -0x00,0x27,0x04,0x37,0xfe,0x7b,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x50,0x00,0x00,0x00,0x25,0xb5,0x03,0x02,0x19,0x04,0x19,0x04,0xb8,0xff,0xee,0xb6,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0xfe,0x40,0x05,0xd7, -0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x87,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x69,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x07,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x01,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00, -0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x01,0x07,0x04,0x28,0x01,0x64,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x02,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x06,0xb4,0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35, -0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0xd7,0x05,0xb1,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x2e,0x01,0x07,0x04,0x28,0x01,0x68,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x06,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x05,0xb4, -0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x27,0x1f,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x15,0x11,0x26,0x02,0x01,0x2b,0x2b,0x08,0x08,0x3e,0x01,0x2e,0x1b, -0x21,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x61,0xdd,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x16,0x11,0x26,0x02,0x01,0x2a,0x2a,0x08,0x08,0x3e,0x01,0xb8,0xff,0xe0,0xb4,0x19,0x1f, -0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x36,0xde,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x1b,0x22, -0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x43,0xca,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xd3,0xb4, -0x18,0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x37,0x27,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x31,0x1b, -0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x44,0x08,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x12,0x18, -0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x38,0xe0,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x21,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff, -0xe9,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x45,0xdf,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x24,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01, -0xb8,0xff,0xe8,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5d,0x00,0x00,0x00,0x21,0xb4,0x01,0x15,0x04,0x15,0x02,0xb8,0xff,0xfc,0xb5, -0x21,0x22,0x05,0x00,0x3e,0x01,0xb8,0xff,0x6a,0xb4,0x18,0x18,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5f,0x00,0x00,0x00,0x21,0xb4,0x01,0x13,0x04, -0x13,0x02,0xb8,0xff,0xfe,0xb5,0x20,0x21,0x05,0x00,0x3e,0x01,0xb8,0xff,0x61,0xb4,0x16,0x16,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x84,0x00,0x00, -0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x77,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a, -0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b, -0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x75,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xf0,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x87,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe, -0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa1,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35, -0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a,0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4, -0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a, -0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x29,0x00,0xf7,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x22, -0x11,0x26,0x02,0x0b,0x37,0x38,0x06,0x1d,0x3e,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x61,0x00,0xca,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26, -0x02,0x0b,0x36,0x37,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xe1,0xb4,0x26,0x2c,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x36,0x00,0xcc,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x22,0x11, -0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xea,0xb4,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x43,0x00,0xb3,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e, -0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xd0,0xb4,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x37,0x01,0x27,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00, -0x00,0x1f,0x40,0x14,0x02,0x01,0x22,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x44,0x00,0xfa,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f, -0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x18,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x38,0x00,0xd5,0x00,0x00,0x01,0x07,0x04,0x28, -0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x2e,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x45,0x00,0xd5,0x00,0x00, -0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x31,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x00,0x27, -0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x25,0x04,0x25,0x02,0xb8,0xff,0xfd,0xb5,0x31,0x32,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xb0,0xb4,0x28,0x28,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f, -0x00,0x93,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x23,0x04,0x23,0x02,0xb8,0xff,0xfd,0xb5,0x30,0x31,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xa7,0xb4,0x26,0x26,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45, -0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xd8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35, -0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x21,0x04,0x21,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12, -0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e, -0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x21,0x04,0x21, -0x03,0xb8,0xff,0xfd,0x40,0x0d,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0x02,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00, -0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30, -0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0xbe,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07, -0x04,0x66,0x02,0x6a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe3,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x2f,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x68,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe1,0x40,0x09,0x28, -0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x55,0xbd,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x28,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0xb8,0xff,0x8e,0xb4,0x29,0x27, -0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x04,0x18,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x28,0x5b,0x00,0x00,0x0b,0xb6,0x02,0x24,0x2d,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26, -0x04,0x60,0x35,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x29,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0x06,0x29,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x2a,0x0a,0x00,0x00,0x16, -0xb9,0x00,0x02,0xff,0xdb,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x2a,0x0a,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x2d,0x11,0x26,0x03,0x25,0x39,0x33,0x0a,0x00, -0x3e,0x02,0xb8,0xff,0xdb,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x94,0x01,0x4c,0x00,0x13,0x40,0x0b,0x02,0x00,0x16,0x10,0x05,0x00,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x79,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x96,0x01,0x4a,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, -0x04,0x55,0xfe,0x2a,0xff,0x99,0x00,0x16,0xb4,0x02,0x12,0x03,0x12,0x02,0xb8,0xfd,0xee,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x5c,0xff,0x99,0x00,0x16,0xb4,0x02,0x13,0x03,0x13,0x02,0xb8,0xfe, -0x20,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xa3,0x00,0x00,0x00,0x0b,0xb6,0x02,0x67,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e, -0x00,0x1f,0xb5,0x03,0x03,0x00,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38, -0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26, -0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, -0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38,0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0x40,0x04,0xa6,0x03,0x70, -0x05,0x94,0x00,0x0b,0x00,0x1c,0x40,0x0d,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x70,0x6a,0x18,0x96,0x96,0x18,0x6a,0x0a,0x9a,0x74,0x74,0x9a,0x04,0xa6,0x8b,0x8b,0x6a, -0x84,0x85,0x00,0x03,0x01,0x33,0x04,0x7f,0x03,0x7d,0x06,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x35,0x40,0x1b,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x12,0x0c,0x1e,0xc1,0x18,0x0f,0xc0,0x15,0x15,0x00,0x21,0xc0,0x1b,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x10,0xd6,0xe1,0x10,0xc2,0x2f,0xe1,0x00,0x2f,0xfd,0x39, -0x39,0xde,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x1a,0x9e,0x6d,0x6c,0xa0,0x4c,0x28,0x38,0x39,0x27,0x2a, -0x3b,0x3b,0xfe,0x56,0x29,0x3a,0x3a,0x29,0x29,0x3b,0x3b,0x05,0x8e,0x6c,0x6c,0x5f,0x6d,0x6e,0xfe,0x93,0x38,0x2b,0x29,0x39,0x3a,0x28,0x2a,0x39,0x38,0x2b,0x28,0x3a,0x3a,0x28,0x2a,0x39,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x55,0xbe,0x00,0x01,0x07,0x04,0x28,0xff,0x14, -0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x20,0x20,0x08,0x08,0x3e,0x01,0xb8,0xff,0xc6,0xb4,0x17,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x04,0x18,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x0e,0xb9,0x00, -0x01,0xff,0x2e,0xb4,0x1b,0x15,0x0c,0x14,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x60,0x40,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x1e,0xb4,0x01,0x16,0x11,0x26,0x02,0xb8,0xff,0xff,0x40,0x0c,0x20,0x20,0x08,0x08,0x3e,0x01,0x48,0x17,0x15, -0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x6c,0x03,0xf9,0x05,0x94,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x06,0x04,0x2a,0xf5,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x05,0x94, -0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x2a,0xf5,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x28,0x28,0x08,0x08,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x04,0x37,0x05,0x9a, -0x00,0x27,0x00,0x28,0x00,0x83,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x78,0xb4,0x0e,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3, -0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xff,0x7c,0xb4, -0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3,0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xfc,0xf2,0xb4,0x0e,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, -0x00,0xbc,0xfe,0x40,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xdd,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0x01,0x4a,0x04,0x92,0x03,0x66,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x30,0x40,0x0e,0x03,0x03,0x09,0x0e,0x00,0x0f,0x09,0xfa,0x0d,0x80, -0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03,0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x05,0x23,0x03,0x33,0x01,0x68,0x1e,0x5d,0x17,0x31,0x41,0x36,0x2c,0x77,0x01, -0x41,0x5e,0xae,0xa6,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c,0x28,0x36,0x7a,0xa8,0x4e,0x01,0x6a,0x00,0x02,0x01,0x42,0x04,0x92,0x03,0x6e,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x37,0x40,0x13,0x10,0x18,0x09,0x0e,0x48,0x03,0x03,0x09,0x0f,0x00,0x10,0x09,0xfa,0x0d,0x80,0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, -0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x2b,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x01,0x03,0x23,0x13,0x01,0x60,0x1e,0x5d,0x17,0x32,0x40,0x36,0x2c,0x76,0x01,0x52,0xb0,0x5e,0x66,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c, -0x28,0x36,0x7a,0xa8,0x01,0x1c,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x53,0x40,0x0d,0x0d,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0f,0xb8,0x01,0x02,0x40,0x0d,0x0f,0x13,0x1f,0x13,0x02,0x13,0x40,0x13,0x18,0x48,0x13,0x0c,0x0d,0xb8,0xff,0xc0,0xb5,0x09, -0x12,0x48,0x0d,0x0f,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x27,0x36,0x37,0x22,0x35,0x34, -0x33,0x32,0x16,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xb4,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0x62,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0xff,0xff,0xff,0xec,0xff,0xf4,0x02,0x10,0x05,0xbe,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x66, -0x00,0xfe,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa7,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfa,0xff,0xf4,0x02,0x08,0x05,0x2f,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x64,0x00,0xf8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa1,0x40,0x09,0x0e,0x0f,0x05, -0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x53,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01, -0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x54,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xdf, -0xff,0xf4,0x02,0x0f,0x05,0x94,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa0,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xd5,0xff,0xf4,0x02,0x1f,0x06,0x5a,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2b, -0xfe,0xa2,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa3,0x40,0x0b,0x12,0x21,0x05,0x0b,0x25,0x03,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b, -0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x64,0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0xff,0xae,0x00,0x00,0x02,0x2c,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xc8,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdd,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x5d,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6, -0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf5,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x57,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0x00,0x02,0x01,0x44,0x04,0x92,0x03,0x6c,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0e,0x01,0x0f,0x05,0xfa,0x0d,0x80,0x0f,0x40,0x09,0x0e, -0x48,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b,0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x2b,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x05,0x23,0x03,0x33,0x02,0x1e,0x20,0xba,0x76,0x2c,0x36,0x40,0x32,0x18, -0x01,0xaa,0x5c,0xb0,0xa8,0x04,0xcf,0x3d,0x50,0xaa,0x7a,0x35,0x29,0x2c,0x36,0x4f,0x61,0x01,0x6a,0x00,0x00,0x02,0x01,0x38,0x04,0x92,0x03,0x7b,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0f,0x01,0x10,0x05,0xfa,0x0d,0x80,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b, -0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x5d,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x01,0x03,0x23,0x13,0x02,0x12,0x1e,0xbc,0x76,0x2c,0x36,0x40,0x32,0x17,0x01,0xc6,0xb0,0x5f,0x67,0x04,0xcf,0x3d,0x52,0xa8,0x7a,0x36, -0x28,0x2c,0x36,0x4f,0x01,0x09,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x0d,0x0e,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0c,0xb8,0x01,0x02,0x40,0x15,0x0f,0x14,0x1f,0x14,0x02,0x14,0x40,0x13,0x18,0x48,0x14,0x0f,0x0e,0x40,0x09,0x12,0x48,0x0e, -0x0e,0x0c,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xf1,0x39,0xc0,0x2f,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x16,0x17,0x07,0x26,0x35,0x34,0x36, -0x33,0x32,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xf8,0x06,0x54,0x14,0xb0,0x3e,0x30,0x5a,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0xe7,0x3a,0x16,0x35,0x25,0x91,0x30,0x41,0x52,0x50,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0xbe,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x66, -0x02,0x08,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xaa,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x2f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x0e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb0,0x40,0x09,0x1e,0x1d,0x00, -0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x53,0xc3,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xbd,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35, -0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x54,0xd6,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50, -0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x29,0x14,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf4,0x40,0x09,0x1c,0x27,0x04,0x0a,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50,0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00,0x00,0x16,0xb9,0x00, -0x02,0xff,0xb3,0x40,0x09,0x1f,0x1b,0x04,0x0a,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x94,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2a,0xba,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01, -0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x5a,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2b,0xa9,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0b,0x38,0x32,0x00,0x16,0x25,0x03,0x02,0x01,0x35,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60, -0x07,0x0a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x37,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e,0x05,0x00,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x81,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x38,0x01,0x52,0x00,0x13, -0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x96,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xc5,0xff,0x99,0x00,0x16,0xb4,0x01,0x10,0x03,0x10,0x01,0xb8,0xfc,0xfb,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01, -0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xb2,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xe1,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x17,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0xb0, -0x05,0xa0,0x00,0x27,0x00,0x33,0x00,0x87,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1a,0x04,0x1a,0x02,0xb8,0xfd,0x3b,0xb4,0x17,0x13,0x03,0x07,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04, -0x16,0xc1,0x40,0x10,0x10,0x02,0x80,0x01,0x0d,0xc0,0x07,0x00,0x40,0x13,0xc0,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x03,0x33,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x14,0x06,0x02,0xc0,0x5e,0xb0,0xa8,0xf0,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x04,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b, -0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x00,0xb0,0x5e,0x66,0xf2,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf, -0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x01,0x40,0x02,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x02,0xdf,0x5e,0xb0,0xa8,0x04,0x96,0x01,0x6a,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x55,0x00,0xb0,0x00,0x00,0x01,0x07,0x04,0x28, -0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xcd,0xb4,0x24,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x04,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x0b,0xb6,0x01, -0x0b,0x28,0x29,0x06,0x1d,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x60,0x01,0x1f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x24,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0x3c,0x24,0x22,0x06,0x1d,0x3e, -0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x05,0x94,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xeb,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x28,0x22,0x06,0x1d,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x05,0x94, -0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x2a,0x00,0xeb,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x28,0x11,0x26,0x02,0x0b,0x34,0x35,0x06,0x1d,0x3e,0x01,0x08,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xac,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26, -0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x02,0x1a,0x03,0x1a,0x02,0xb8,0xfc,0xc8,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26,0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x02, -0x1b,0x03,0x1b,0x02,0xb8,0xfc,0xed,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x06,0x53,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0xaa,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x1e,0x03,0x1e,0x01,0xb8,0xff,0xac,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01, -0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3d,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x94,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x01,0x1f,0x03,0x1f,0x01,0xb8,0xff,0xe7,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x64,0xfe,0x40,0x05,0xa9, -0x05,0xb2,0x02,0x26,0x00,0x9f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x0e,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x22,0x1c,0x12,0x18,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf,0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x02,0x40,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x03,0x23, -0x13,0x02,0xdf,0xb0,0x5e,0x67,0x06,0x00,0xfe,0x96,0x01,0x6a,0x00,0x01,0x01,0xe2,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0d,0x00,0x25,0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x0c,0x0c,0x01,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0c,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x2b,0x01, -0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x02,0xcf,0x29,0x53,0x71,0x45,0x35,0x2c,0x3a,0x6c,0x10,0x04,0xba,0x3f,0x28,0xa7,0x58,0x39,0x48,0x3a,0x2b,0x5d,0x07,0x68,0x00,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x1a,0x06,0x0e,0x00,0x06,0x00,0x15,0xb7,0x00,0xc0,0x04,0x02,0x00,0x05,0x80,0x04,0x00,0x2f,0x1a, -0xcd,0x39,0x39,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x04,0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x01,0xfe,0xc0,0x04,0xb2,0x01,0x42,0x05,0xb2,0x00,0x13,0x00,0x1e,0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd, -0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6a,0x82,0x34,0x2c,0x74,0x00,0x00,0x01,0xff,0x02, -0x04,0xc2,0x00,0xfe,0x05,0x2f,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x6d,0x00,0x01,0xfe,0x58,0x05,0x74,0x01,0xaa,0x05,0xec,0x00,0x03,0x00,0x0d,0xb4,0x02,0xda,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01, -0x21,0x35,0x21,0x01,0xaa,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x1d,0x40,0x0d,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x80,0x09,0xdb,0x03,0x00,0x2f,0xed,0x1a,0xdc,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, -0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xbe,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xff,0x9e,0x04,0xc2,0x00,0x62,0x05,0x85,0x00,0x0b,0x00,0x0f,0xb5,0x09,0xc0,0x03,0x06,0xc1,0x00,0x00,0x2f,0xed,0x01,0x2f,0xe1,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x04,0xc2,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15,0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30, -0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x00,0x02,0xff,0x33, -0x04,0x98,0x00,0xcf,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x2a,0x40,0x18,0x14,0xc4,0x30,0x09,0x80,0x09,0xd0,0x09,0xe0,0x09,0x04,0x09,0xc0,0x0f,0xc4,0x03,0x0c,0xc5,0x40,0x06,0xc0,0x11,0xc5,0x00,0x00,0x2f,0xed,0x1a,0xdc,0x1a,0xed,0x01,0x2f,0xe1,0x1a,0xdc,0x71,0xe1,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x59,0x72,0x76,0x5b,0x59,0x72,0x7a,0x57,0x31,0x3f,0x70,0x31,0x41,0x41,0x04,0x98,0x6b,0x53,0x58,0x6e,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2b, -0x40,0x14,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x25,0xf6,0x60,0xd1,0x73,0xef,0x61,0xcf,0x06,0x00,0xfe,0xc2, -0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x18,0x06,0x0c,0x00,0x06,0x00,0x11,0xb5,0x00,0xc0,0x03,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x01,0xff,0xcb, -0x04,0x96,0x00,0x35,0x06,0x00,0x00,0x03,0x00,0x0e,0xb5,0x01,0x02,0x01,0x00,0xfc,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00,0x00,0x02,0xff,0x58,0x04,0x96,0x00,0xa8,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0c,0x02,0x01,0x05,0x06,0x01,0x00,0xfc,0x01,0x01,0x04, -0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11,0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0x04,0x96,0x01,0x6a,0xfe,0x96,0x01,0x6a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x17,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80, -0x06,0x04,0x42,0x60,0x04,0x01,0x04,0x06,0x07,0x04,0x03,0x80,0x00,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x5d,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe1,0x31,0x30,0x01,0x23,0x03,0x33,0x03,0x23,0x03,0x33,0x01,0x25,0x61,0xef,0x81,0x23,0x60,0xf6,0x85,0x04,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x02,0xfe,0xee, -0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0b,0x00,0x18,0x00,0x26,0x40,0x13,0x06,0xc1,0x00,0x0c,0x12,0x15,0xdb,0x0f,0x0c,0xfc,0x18,0x18,0x09,0x12,0xfc,0x13,0x09,0xc0,0x03,0x2f,0xe1,0xde,0xe1,0x10,0xca,0x2f,0xe1,0x00,0x2f,0xfd,0xd4,0x32,0xd4,0xed,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x06, -0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0xe9,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xa6,0x39,0x29,0x2a,0x36,0x37,0x29,0x28,0x3a,0x18,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x18, -0x40,0x0b,0x0a,0xdb,0x04,0x00,0x07,0x00,0xfc,0x01,0x06,0xfc,0x07,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0xd4,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b,0x04,0xc2,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x00,0x00,0x01,0xff,0x8c, -0x04,0x7b,0x00,0x77,0x06,0x23,0x00,0x0d,0x00,0x27,0xb9,0x00,0x00,0xff,0xe8,0x40,0x13,0x09,0x0d,0x48,0x07,0xfb,0x02,0x0d,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x02,0x04,0xaf,0x0a,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xd4,0xed,0x31,0x30,0x2b,0x13,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x77, -0x69,0x10,0x6e,0x3a,0x2c,0x35,0x45,0x71,0x53,0x05,0xe4,0x38,0x68,0x08,0x5d,0x2a,0x3a,0x47,0x3a,0x58,0xa7,0x28,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39, -0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x4e,0x26,0x68,0x10,0x30,0x3c,0x38,0x2c,0x35,0x46,0x72,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x48,0x3a,0x57,0xa7,0x00,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x24, -0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x01,0x0d,0xfb,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0d,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x77,0x27,0x54,0x70,0x45,0x35,0x2c,0x38,0x3c,0x30,0x10,0x04,0x38, -0x40,0x29,0xa6,0x57,0x3b,0x47,0x3a,0x2a,0x2b,0x39,0x01,0x69,0x00,0x01,0x00,0x2f,0x03,0xf8,0x01,0x1a,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13, -0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x56,0x27,0x69,0x10,0x30,0x3c,0x38,0x2c,0x35,0x45,0x70,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x47,0x3b,0x57,0xa6,0x00,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x00,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03, -0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x01,0x33,0xc2,0x7e,0xfe,0xfa,0xa8,0xfe,0x42,0x01,0x47,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x17, -0x01,0x23,0x13,0xc2,0xfe,0xfa,0x7e,0xde,0x77,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2a,0x40,0x17,0x01,0x0e,0x02,0xfd,0x05,0x40,0x05,0x06,0x42,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x05,0x02,0x04,0x2f,0xdd,0x32,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a, -0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x23,0x35,0x21,0x35,0x21,0x35,0x33,0xb8,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0xfe,0x58,0x7f,0x6d,0x7e,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2c,0x40,0x18,0x02,0x0e,0x01,0xfd,0x06,0x40,0x06,0x05,0x42,0x06,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x03,0xfc,0x01,0x01, -0x06,0x07,0x2f,0xcd,0x32,0x10,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0xb8,0xfe,0xfa,0x6a,0x6a,0x01,0x06,0xfe,0xd7,0x7f,0x01,0x6a,0x7e,0x00,0x00,0x01,0xff,0x16,0x04,0x96,0x00,0xea,0x06,0x68,0x00,0x05,0x00,0x14,0x40,0x09,0x00,0x03,0xfd,0x04,0x01,0x00, -0xfc,0x02,0x03,0x2f,0xdd,0xe1,0x00,0x3f,0xed,0xc4,0x31,0x30,0x13,0x23,0x11,0x21,0x35,0x21,0xea,0x6a,0xfe,0x96,0x01,0xd4,0x04,0x96,0x01,0x6a,0x68,0x00,0x00,0x01,0xff,0x52,0x04,0x96,0x00,0xae,0x06,0x0e,0x00,0x0b,0x00,0x12,0xb7,0x05,0x01,0xda,0x00,0x08,0xc2,0x03,0x00,0x2f,0xd4,0xe1,0x00,0x2f,0xed,0xc4,0x31,0x30,0x03,0x37, -0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0xae,0x02,0xd5,0x15,0x88,0x12,0x8e,0x78,0x04,0x96,0x74,0x82,0x48,0x3a,0x37,0x50,0x6c,0x85,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x28,0x40,0x16,0x0b,0xcb,0x40,0x00,0xc0,0x07,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06,0x80,0x09, -0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0xfe,0x5c,0x69,0x4d,0x4d,0x69,0x5e,0x58,0x5a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22,0x40,0x10,0x05,0x00, -0xfd,0x02,0x40,0x03,0x06,0x0e,0x05,0xfc,0x02,0x02,0x01,0x42,0x02,0x01,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xdd,0xed,0x33,0x31,0x30,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xb4,0x7f,0x6d,0x7e,0xfe,0x56,0x6a,0x01,0x06,0xfe,0xfa,0x6a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22, -0x40,0x10,0x04,0x02,0x06,0xfd,0x40,0x07,0x01,0x0e,0x02,0xfc,0x05,0x05,0x06,0x42,0x05,0x06,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0x32,0xc6,0x31,0x30,0x17,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0xb6,0x7e,0x6d,0x7f,0x3a,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0x00,0x00,0x01,0xff,0x4c,0xfe,0x5e,0x00,0xb6,0xff,0xc6, -0x00,0x0b,0x00,0x38,0x40,0x1f,0x03,0x0e,0x0a,0x01,0x04,0xfd,0x07,0x0e,0x40,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x09,0x03,0x08,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xfc,0x04,0x2f,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xfd,0xfd,0x39,0x39,0xed,0x31,0x30,0x13,0x23,0x15,0x23, -0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0xb6,0x7e,0x6d,0x7f,0x7f,0x6d,0x7e,0xfe,0xdd,0x7f,0x7f,0x6b,0x7e,0x7e,0xff,0xff,0xff,0x03,0xff,0x53,0x00,0xff,0xff,0xbf,0x00,0x07,0x06,0x9a,0xfe,0xc5,0xfd,0x5f,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f, -0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2, -0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x27,0x33,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x35,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0x00,0x02,0xfe,0xdd,0xfe,0xc4,0x01,0x25,0xff,0x89,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x0c,0xc1,0x12,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15, -0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0xfe,0xc4,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39, -0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0xff,0xff,0xff,0x35,0xfe,0x7e,0x00,0xd1,0x00,0x02,0x00,0x07,0x00,0xdc,0xfe,0xe3,0xf9,0xe6,0x00,0x01,0xff,0x9c,0xfe,0x62,0x00,0x64,0xff,0x89,0x00,0x0b,0x00,0x3b,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0x40,0x09,0x0f,0x07,0x1f, -0x07,0x2f,0x07,0x03,0x07,0x01,0xb8,0xff,0xc0,0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0x5d,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0xfe,0x62,0x36,0x16,0x3a,0x50,0x51,0x41,0x30, -0x91,0x00,0xff,0xff,0xff,0x56,0xfe,0x50,0x00,0xaa,0x00,0x00,0x00,0x07,0x00,0xdd,0xff,0x23,0x00,0x00,0xff,0xff,0xff,0x5d,0xfe,0x70,0x00,0x71,0x00,0x00,0x00,0x07,0x00,0xdf,0xff,0x1f,0x00,0x00,0x00,0x01,0xff,0xcb,0xfe,0x1e,0x00,0x35,0xff,0x89,0x00,0x03,0x00,0x16,0x40,0x0c,0x01,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x00, -0xfc,0x01,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x22,0x40,0x13,0x00,0x05,0x80,0x03,0xfd,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d, -0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11,0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0xfe,0x5c,0xc5,0xc5,0x01,0x2d,0x00,0x01,0xfe,0xb1,0xfe,0xbc,0x01,0x4f,0xff,0x89,0x00,0x14,0x00,0x44,0x40,0x26,0x00,0x05,0x10,0x03,0x0a,0x12,0x03,0x0d,0xc5,0x40,0x07,0x80,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x09, -0x03,0x0a,0x14,0xff,0x00,0x0e,0x10,0x0b,0xff,0x0a,0x0a,0x0f,0x42,0x0a,0x80,0x10,0xfe,0x0f,0x2f,0xe1,0x1a,0xcc,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x33,0x32,0x35,0x33,0x14, -0x33,0x32,0x35,0x01,0x4f,0x6a,0x57,0x5a,0x34,0x35,0x5b,0x57,0x68,0x61,0x5f,0x69,0x4c,0x6a,0x5e,0x77,0x59,0x74,0x44,0x44,0x72,0x5b,0x75,0x75,0x75,0x75,0x00,0x01,0xfe,0xe8,0xfe,0x40,0x01,0x18,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd, -0x01,0x2f,0x1a,0xcc,0x31,0x30,0x05,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x01,0xfe,0xe8,0xfe,0x3e,0x01,0x1a,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x04,0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f, -0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0x00,0x01,0xfe,0xee,0xfe,0x8e,0x01,0x12,0xff,0x89,0x00,0x0c,0x00,0x29,0x40,0x16,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x09,0xdb,0x40,0x03,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06, -0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x10,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9b,0x71,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x77,0x72,0x89,0x89,0x72,0x9b,0x54,0x47,0xff,0xff,0xfe,0xe9,0xff,0x13,0x01,0x19,0x00,0x01,0x00,0x07, -0x04,0x2a,0xfd,0xa9,0xfa,0x6d,0x00,0x01,0xfe,0xc0,0xfe,0x9e,0x01,0x42,0xff,0x9e,0x00,0x13,0x00,0x22,0x40,0x11,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x09,0x11,0xda,0x03,0x07,0xda,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15, -0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x62,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0xff,0xff,0xff,0x05,0xff,0x51,0x01,0x01,0xff,0xbe,0x00,0x07,0x00,0xd9,0xfe,0xc7,0xfa,0x8f,0x00,0x01,0xfe,0x57,0xfe,0xd7,0x01,0xa9, -0xff,0x4e,0x00,0x03,0x00,0x0d,0xb4,0x01,0xda,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0xff,0xff,0xfe,0x57,0xfd,0xfe,0x01,0xa9,0xff,0x62,0x00,0x07,0x01,0x35,0xfe,0x57,0x00,0x00,0x00,0x01,0xfe,0xc0,0x01,0x9e,0x01,0x42,0x02,0x9e,0x00,0x13,0x00,0x1e, -0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54, -0x4a,0x36,0x53,0x02,0x9e,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0x00,0x00,0x01,0xff,0x02,0x01,0xe6,0x00,0xfe,0x02,0x52,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x01,0xe6,0x6c,0xff,0xff,0xfe,0x58,0xff,0xc5,0x01,0xaa, -0x00,0x3d,0x00,0x07,0x01,0x95,0xfe,0x58,0xfa,0x51,0x00,0x01,0xfe,0x66,0x00,0x77,0x01,0x9c,0x03,0xc2,0x00,0x03,0x00,0x2a,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0a,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x00,0x02,0x2f,0xcd,0x00,0x2f,0x2f,0xc1,0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4, -0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x9c,0xfd,0x50,0x86,0x02,0xae,0x03,0xc2,0xfc,0xb5,0x03,0x4b,0x00,0x00,0x01,0xfe,0x70,0xff,0x12,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x2b,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0b,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0x2f,0xc1, -0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x92,0xfd,0x50,0x72,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x2a,0x40,0x17,0x01,0xcb,0x40,0x00,0xc0,0x05,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06, -0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4f,0x65,0x67,0xfe,0x5c,0x5c,0x5a,0x58,0x5e,0x67,0x4f,0x4d,0x69,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x24, -0x40,0x14,0x04,0xfd,0x40,0x01,0x80,0x06,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x07,0xfc,0x06,0x03,0xfc,0x02,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x35,0x33,0x01,0x64,0xfd,0x38,0x68,0x01,0xf8,0x68,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x02,0xff,0x44,0xfe,0x10, -0x00,0xbc,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x01,0xc4,0x2f,0x07,0x01,0x07,0x06,0xc4,0x02,0x40,0x09,0x0d,0x48,0x02,0x03,0xc4,0x05,0x06,0xc4,0x02,0x2f,0xe1,0xdd,0xe1,0x00,0x2f,0x2b,0xed,0xdd,0x5d,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x03,0x35,0x23,0x15,0xbc,0xfe,0x88,0x01,0x78,0x5a,0xc4,0xfe,0x10,0x01,0x79, -0xfe,0xe1,0xc5,0xc5,0x00,0x01,0xfe,0xa5,0xfe,0xa8,0x01,0x5b,0xff,0x89,0x00,0x16,0x00,0x45,0x40,0x25,0x00,0x0d,0x0d,0x12,0x07,0x80,0x14,0x03,0x0a,0xc5,0x40,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x01,0xff,0x00,0x0e,0x06,0x0c,0xff,0x0d,0x0d,0x07,0x42,0x0d,0x80,0x06,0xfe,0x07,0x2f,0xe1,0x1a,0xce,0x2b,0x01,0x10, -0xe1,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xed,0x39,0x39,0x1a,0xcc,0x39,0x39,0x7c,0x2f,0x33,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x5b,0x62,0x11,0x4f,0x32,0x40,0x4e,0x41,0x32,0x4e,0x11,0x62,0x0b,0x6e,0x48,0x70,0x2a, -0x28,0x72,0x46,0x70,0xfe,0xee,0x43,0x55,0x34,0x35,0x54,0x43,0x43,0x58,0x64,0x64,0x5a,0x00,0x00,0x01,0xff,0x30,0x04,0xc2,0x00,0xd2,0x06,0x65,0x00,0x0b,0x00,0x09,0xb1,0x07,0x04,0x19,0x2f,0x00,0x2f,0x31,0x30,0x13,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86, -0x85,0x06,0x1a,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0x01,0xff,0x9e,0x05,0x08,0x00,0x62,0x07,0x1c,0x00,0x11,0x00,0x27,0x40,0x13,0x0a,0xc5,0x40,0x09,0xc0,0x01,0xc5,0x40,0x00,0x09,0x03,0xc4,0x10,0x00,0x80,0x0c,0xc4,0x07,0x00,0x2f,0xd4,0xe1,0x1a,0x10,0xdd,0xe1,0xc4,0x00,0x2f,0x1a,0xed,0x1a,0xdc,0x1a, -0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x27,0x26,0x35,0x34,0x33,0x15,0x22,0x15,0x14,0x17,0x16,0x15,0x14,0x62,0x6e,0x35,0x35,0xc0,0x6a,0x35,0x35,0x05,0x08,0x5e,0x42,0x1c,0x42,0x41,0x36,0x9f,0x5e,0x41,0x1b,0x40,0x40,0x3a,0xa0,0x00,0x00,0x02,0xfe,0x57,0x05,0x74,0x01,0xa9,0x07,0x04,0x00,0x03,0x00,0x07,0x00,0x19,0x40,0x0b, -0x02,0xda,0x01,0x06,0xda,0x05,0x07,0x06,0x01,0x00,0x01,0x2f,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xd6,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x06,0x8e,0x76,0xfe,0x70,0x78,0x00,0x00,0x01,0xfe,0x70,0x04,0xc2,0xff,0xf6,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03, -0x80,0x01,0x02,0x00,0x2f,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x23,0x01,0x33,0x0a,0x7f,0xfe,0xf9,0xa8,0x04,0xc2,0x01,0x48,0x00,0x00,0x01,0x00,0x0a,0x04,0xc2,0x01,0x90,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x01,0x23,0x13,0x01,0x90,0xfe,0xf9,0x7f,0xe0, -0x06,0x0a,0xfe,0xb8,0x01,0x48,0xff,0xff,0xfe,0xc0,0x04,0xb2,0x01,0x41,0x05,0xb2,0x00,0x07,0x00,0xd8,0xfe,0x9d,0x00,0x00,0x00,0x01,0xff,0x9c,0x04,0xc2,0x00,0x64,0x05,0xea,0x00,0x0b,0x00,0x33,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0xb2,0x07,0x00,0x01,0xb8,0xff,0xc0, -0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x04,0xc2,0x36,0x16,0x3a,0x50,0x52,0x42,0x2f,0x91,0x00,0x00,0x03,0xfe,0xaa,0x04,0x96,0x01,0x56, -0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x13,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36, -0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xa8,0xb0,0x5e,0x66,0xf2,0x29,0x37,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00, -0x00,0x01,0xff,0x64,0xfe,0x40,0x00,0x9c,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x13,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x9c,0x3b, -0x55,0x4b,0x5d,0x78,0x46,0x27,0x29,0xfe,0x90,0x50,0x52,0x47,0xb0,0xba,0x43,0x2a,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf0,0x00,0x07,0x00,0x1b,0x40,0x0d,0x00,0x05,0x80,0x03,0xfd,0x06,0x00,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11, -0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0x04,0xc2,0xc5,0xc5,0x01,0x2e,0x00,0x00,0x02,0xfe,0x2a,0xfd,0xfe,0x01,0xd6,0xff,0xaa,0x00,0x03,0x00,0x07,0x00,0x10,0xb6,0x06,0x05,0x02,0x50,0x01,0x01,0x01,0x00,0x2f,0x5d,0xcd,0x2f,0xcd,0x31,0x30,0x05,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xd6,0xfc,0x54,0x03,0xac,0xfc,0x54, -0x03,0xac,0xda,0x84,0xfe,0x54,0x84,0x00,0x00,0x02,0xff,0x58,0xfe,0x1e,0x00,0xa8,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x12,0x02,0x01,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x01,0x04,0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11, -0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0xfe,0x95,0x01,0x6b,0x00,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x05,0x00,0x12,0xb7,0x01,0x04,0xfd,0x05,0x01,0xfc,0x02,0x05,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xc4,0x31,0x30,0x17,0x11,0x23,0x11,0x23,0x35,0xb6,0x6c,0xfe,0x3a,0xfe,0x90,0x01,0x06,0x6a,0x00, -0x00,0x01,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x06,0x74,0x00,0x19,0x00,0x3c,0x40,0x1d,0x05,0xc4,0x06,0x12,0xc4,0x13,0x0e,0x0b,0x09,0x10,0x18,0x01,0x03,0x16,0x0d,0x00,0x0c,0x19,0x06,0x0c,0x13,0x06,0x10,0xda,0x16,0x03,0xda,0x09,0x13,0x00,0x2f,0xd4,0xfd,0xdc,0xed,0xc4,0x10,0xc6,0x10,0xc6,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11, -0x12,0x39,0x39,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x13,0x07,0x16,0x33,0x32,0x35,0x33,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x37,0xa6,0x58,0x1e,0x1e,0x54,0x62,0x5f,0x53,0x3c,0x44,0x5a,0x5a,0x56,0x1e,0x1c,0x58,0x5e,0x60,0x56,0x3a,0x40,0x5c,0x06,0x3a,0x88,0x0a,0x74,0x68, -0x85,0x21,0x8c,0x3a,0x84,0x0c,0x72,0x6e,0x7e,0x23,0x8f,0x00,0x00,0x03,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x07,0x62,0x00,0x0b,0x00,0x1f,0x00,0x2b,0x00,0x35,0x40,0x1b,0x09,0x03,0x29,0xc0,0x23,0x23,0x16,0x1f,0xc4,0x0c,0x15,0xc4,0x16,0x06,0xc1,0x00,0x0c,0x13,0xda,0x19,0x1d,0xda,0x0f,0x16,0x26,0xc1,0x20,0x00,0x2f,0xfd,0xd6,0xd4, -0xfd,0xdc,0xed,0xd4,0xd6,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01, -0x28,0x3b,0x3c,0x27,0x29,0x3a,0x3a,0x01,0x18,0x5f,0x53,0x46,0x5c,0x4c,0x2a,0x58,0x5e,0x60,0x56,0x42,0x54,0x49,0x35,0x54,0xdf,0x29,0x3a,0x3c,0x27,0x29,0x3a,0x3a,0x06,0xa0,0x39,0x29,0x2a,0x36,0x37,0x29,0x29,0x39,0x0a,0x69,0x85,0x33,0x2b,0x70,0x6c,0x7f,0x33,0x2d,0x75,0xfe,0x2e,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00, -0x00,0x02,0xfe,0xc0,0x04,0xb2,0x01,0x40,0x06,0xa0,0x00,0x12,0x00,0x25,0x00,0x34,0x40,0x1a,0x25,0x13,0x12,0xc4,0x00,0x1c,0x1d,0x09,0xc4,0x0a,0x00,0x07,0xda,0x0c,0x10,0xda,0x09,0x03,0x13,0x1a,0xda,0x1f,0x23,0xda,0x1d,0x16,0x00,0x2f,0xc4,0xfd,0xdc,0xed,0xd4,0xd6,0xc6,0xfd,0xdc,0xed,0xc4,0x01,0x2f,0xe1,0x39,0x39,0xd4,0xe1, -0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x40,0x5c,0x56,0x42,0x57,0x57,0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x62,0x5c,0x56,0x42,0x57,0x57, -0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x06,0xa0,0x64,0x76,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0xfe,0xfe,0x64,0x76,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x00,0x01,0xfe,0xa8,0xfe,0x6e,0x01,0x58,0xff,0xb6,0x00,0x09,0x00,0x35,0x40,0x1c,0x07,0x05,0x02,0x00,0x0e,0x09,0xfd,0x03,0x40,0x03,0x02,0x42,0x03,0x0f,0x02,0x1f, -0x02,0x2f,0x02,0x03,0x02,0x04,0x03,0x09,0x08,0x06,0x09,0x01,0x2f,0xcd,0x2f,0xcd,0x11,0x39,0x39,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x11,0x39,0x39,0x31,0x30,0x03,0x27,0x37,0x15,0x21,0x35,0x17,0x07,0x35,0x21,0xa8,0xb0,0xb0,0x01,0x50,0xb0,0xb0,0xfe,0xb0,0xfe,0x6e,0xa4,0xa4,0x6e,0x6e,0xa4,0xa4,0x6f,0x00, -0x00,0x01,0xff,0x5c,0xfe,0x5c,0x00,0xa4,0xff,0xdb,0x00,0x06,0x00,0x18,0x40,0x0a,0x00,0x04,0x02,0x03,0x04,0x04,0x05,0xfc,0x01,0x02,0x2f,0xdd,0xf1,0xc1,0x2f,0x00,0x2f,0xdd,0x32,0xc6,0x31,0x30,0x03,0x35,0x23,0x37,0x17,0x23,0x15,0x35,0x6f,0xa4,0xa4,0x6f,0xfe,0x5c,0xcf,0xb0,0xb0,0xcf,0x00,0x01,0xfd,0x0e,0x05,0xc2,0x02,0xf2, -0x07,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x00,0x07,0xda,0x0e,0x12,0xda,0x03,0x0b,0x15,0xda,0x00,0x0a,0xda,0x0b,0x2f,0xe1,0x2f,0xe1,0x00,0x2f,0xd4,0xfd,0xd4,0xed,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x25,0x24,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0x04,0x33,0x32,0x36,0x35,0x02,0xf2,0x02,0xb6,0x86,0x92,0xfe, -0xde,0xfe,0xde,0x90,0x58,0x71,0x77,0x02,0xb4,0x88,0x95,0x01,0x23,0x01,0x22,0x8c,0x57,0x72,0x07,0x00,0x86,0xb2,0x5b,0x5a,0x6b,0x50,0x88,0xb0,0x5b,0x5b,0x6c,0x50,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x16,0x40,0x09,0x03,0xda,0x08,0x00,0x06,0x01,0x00,0x05,0x06,0x2f,0x33,0x2f,0x32,0x00,0x2f,0xc4, -0xd4,0xed,0x31,0x30,0x01,0x23,0x02,0x21,0x20,0x03,0x23,0x12,0x21,0x20,0x03,0x1a,0xa2,0xba,0xfe,0x41,0xfe,0x43,0xba,0xa2,0xf0,0x02,0x2a,0x02,0x2a,0x05,0xc2,0x01,0x02,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xfd,0xaf,0xfe,0x6e,0x02,0x51,0xff,0xb6,0x00,0x06,0x00,0x22,0x40,0x12,0x04,0x05,0xfd,0x01,0x40,0x0f,0x02,0x1f,0x02,0x2f, -0x02,0x03,0x02,0x01,0x05,0x80,0x03,0x00,0x2f,0x2f,0x1a,0xcd,0x32,0x00,0x2f,0x5d,0x1a,0xdd,0xfd,0xcd,0x31,0x30,0x05,0x21,0x35,0x17,0x07,0x35,0x21,0xfd,0xaf,0x03,0xf2,0xb0,0xb0,0xfc,0x0e,0xb8,0x6e,0xa4,0xa4,0x6f,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4c,0x40,0x2b,0x0d,0x0a,0x04,0x95, -0x40,0x07,0x08,0x11,0x07,0x95,0x09,0x30,0x03,0x15,0x01,0x1d,0x95,0x17,0x16,0x0e,0x23,0x95,0x11,0x10,0x08,0x00,0x0b,0x0b,0x0a,0x14,0x83,0x20,0x20,0x27,0x02,0x0d,0x0a,0x07,0x04,0x19,0x84,0x05,0x03,0x2f,0xc6,0xe9,0x17,0x39,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x2b,0x00,0x18,0x2f, -0x1a,0xed,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x85,0xa2,0xf8,0xf8,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80, -0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xb4,0x8c,0xac,0xac,0x8c,0xfe,0x98,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x03,0xff,0xac,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x1b,0x00,0x23,0x00,0x2b,0x00,0x48,0x40,0x26,0x08,0x08,0x00,0x0d,0x14,0x24,0x91,0x1d,0x1d,0x0d, -0x25,0x91,0x00,0x12,0x1c,0x01,0x91,0x0d,0x03,0x14,0x25,0x18,0x7d,0x29,0x29,0x11,0x7d,0x21,0x21,0x2d,0x00,0x05,0x7e,0x0a,0x1d,0x25,0x7e,0x00,0x2f,0xe9,0x32,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xe9,0x39,0x2f,0xe9,0x11,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22, -0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x96,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a, -0x9d,0xfe,0xee,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x2e,0x40,0x18,0x0d,0x91, -0x05,0x05,0x01,0x0e,0x91,0x00,0x12,0x04,0x91,0x01,0x03,0x02,0x02,0x09,0x7d,0x12,0x12,0x16,0x05,0x0e,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc, -0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x36,0x40,0x1d,0x08,0x00,0x0b,0x17,0x95,0x11,0x16,0x03,0x15,0x1d,0x95,0x0b, -0x10,0x07,0x95,0x04,0x00,0x05,0x05,0x0e,0x83,0x1a,0x1a,0x21,0x14,0x01,0x08,0x84,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x03,0x25,0xfd,0x7d,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x05,0xec,0x8c,0xfd,0xec,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x02,0x00,0x33,0x00,0x00, -0x04,0x38,0x05,0xb2,0x00,0x0d,0x00,0x15,0x00,0x2b,0x40,0x16,0x0e,0x91,0x06,0x06,0x05,0x0f,0x91,0x00,0x12,0x03,0x05,0x04,0x0a,0x7d,0x13,0x13,0x17,0x02,0x06,0x0f,0x7e,0x00,0x2f,0xe1,0x32,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x27,0x35,0x25,0x33,0x11,0x21,0x32,0x16,0x15, -0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x89,0x01,0x1b,0x16,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa0,0xfe,0xcb,0x04,0x81,0x77,0x16,0xa4,0xfd,0x86,0xcd,0xbf,0xc6,0xe6,0x02,0xa4,0xfd,0xf2,0x8e,0x7e,0x01,0x02,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x13,0x00,0x20,0x00,0x33, -0x40,0x1b,0x09,0x01,0x0c,0x18,0x95,0x12,0x16,0x03,0x15,0x1e,0x95,0x0c,0x10,0x06,0x08,0x00,0x0f,0x83,0x1b,0x1b,0x22,0x14,0x01,0x09,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x27,0x35,0x25,0x33,0x11,0x33,0x36,0x33, -0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x01,0x10,0x17,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xc2,0x73,0x17,0xa0,0xfd,0x60,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49, -0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x01,0x00,0x6a,0xff,0xe8,0x04,0x98,0x05,0xb2,0x00,0x15,0x00,0x22,0x40,0x11,0x01,0x03,0x91,0x14,0x13,0x0b,0x09,0x91,0x0e,0x04,0x11,0x7d,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f,0xe9,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x00,0x11,0x10, -0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x6a,0x9a,0xba,0xf6,0x01,0x34,0xfe,0xe1,0xea,0xd8,0x9d,0x9f,0xed,0x01,0x31,0x01,0x71,0xfe,0x64,0xfe,0xc0,0xcc,0x23,0xb2,0x56,0x01,0x4b,0x01,0x13,0x01,0x07,0x01,0x36,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xc0,0xfe,0xa8,0xfe,0x58,0x00,0x01,0x00,0x5e,0xff,0xe8, -0x05,0x42,0x06,0x83,0x00,0x21,0x00,0x43,0x40,0x24,0x20,0x11,0x01,0x11,0x0f,0x91,0x14,0x13,0x21,0x92,0x00,0x02,0x92,0x1f,0x1a,0x1c,0x1a,0x07,0x09,0x91,0x1a,0x04,0x19,0x06,0x17,0x00,0x1c,0x7f,0x04,0x06,0x12,0x12,0x23,0x0c,0x7d,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x11,0x39, -0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x42,0x2a,0x24,0x71,0x0f,0x09,0xa5,0xb7,0xf1,0xfe,0xd2,0x01,0x1f,0xe9,0xd8,0x9e,0x9f,0xed, -0xfe,0xce,0xfe,0x90,0x01,0x9c,0x01,0x3e,0x5c,0x5e,0x03,0x85,0x68,0x30,0x30,0x05,0xe4,0x14,0x9e,0x3c,0x58,0x06,0x5a,0xfe,0xb5,0xfe,0xed,0xfe,0xfa,0xfe,0xc9,0x60,0xa3,0x54,0x01,0x8a,0x01,0x40,0x01,0x57,0x01,0xa9,0x18,0x5f,0x8a,0x13,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0xd5,0x00,0x21,0x00,0x48,0x40,0x1d,0x30,0x11, -0x01,0x11,0x11,0x0f,0x95,0x14,0x16,0x21,0x96,0x00,0x02,0x96,0x1f,0x1a,0x1c,0x1a,0x40,0x07,0x01,0x07,0x07,0x09,0x95,0x1a,0x10,0x00,0x1c,0xb8,0x01,0x03,0xb7,0x04,0x06,0x11,0x11,0x23,0x0c,0x83,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x12,0x39,0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xed,0x32, -0x2f,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x04,0x0e,0x23,0x20,0x65,0x08,0x06,0x93,0x7d,0x95,0xbb,0xbd,0x9f,0x86,0x76,0x76,0xa2,0xdd,0xfe,0xf5,0x01,0x1a,0xe0,0x4b,0x41,0x02, -0x77,0x59,0x28,0x2e,0x04,0x42,0x12,0x8e,0x54,0x2e,0x04,0x4e,0xdf,0xb9,0xb4,0xd0,0x59,0x9c,0x47,0x01,0x1f,0xe5,0xef,0x01,0x3d,0x14,0x57,0x7a,0x13,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17,0x00,0x43,0x40,0x0a,0x10,0x0d,0x01,0x91,0x40,0x04,0x05,0x00,0x04,0x91,0xb8,0x01,0x00,0x40,0x17,0x30, -0x11,0x91,0x00,0x12,0x0c,0x91,0x05,0x03,0x0f,0x0f,0x11,0x08,0x7d,0x15,0x15,0x19,0x0d,0x04,0x11,0x7e,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21, -0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0xff,0xac,0x00,0x00,0x05,0x90, -0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x2e,0x40,0x18,0x08,0x08,0x0d,0x15,0x91,0x00,0x12,0x14,0x01,0x91,0x0d,0x03,0x05,0x7e,0x0a,0x00,0x10,0x7d,0x19,0x19,0x1d,0x15,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26, -0x35,0x34,0x36,0x33,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x8a,0x02,0xf6,0xfe,0x5b,0xfe,0x9e,0xd3,0xd6,0x01,0x1a,0x01,0x39,0xfd,0xb7,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96, -0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0x00,0x5c,0x00,0x00,0x03,0xd7,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x2c,0x40,0x17,0x0e,0x91,0x08,0x08,0x0c,0x0d,0x91,0x00,0x12,0x09,0x91,0x0c,0x03,0x00,0x7e,0x08,0x0d,0x0d,0x15,0x0a,0x11,0x7d,0x04,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, -0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x24,0x33,0x33,0x11,0x21,0x35,0x21,0x03,0x11,0x23,0x20,0x11,0x10,0x21,0x03,0xd7,0xfe,0x5c,0xe5,0xf2,0x01,0x0a,0xe0,0xe9,0xfd,0xaa,0x02,0xfe,0xa8,0xe7,0xfe,0xc6,0x01,0x36,0xce,0xc2,0xc2,0xe6,0x01,0xc8,0x9a,0xfa,0xfa,0x02,0x0e,0xfe,0xf4,0xfe,0xfe,0x00,0x00,0x02,0x00,0x60,0xff,0xe8, -0x04,0x0e,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x34,0x40,0x1c,0x0e,0x02,0x0b,0x1d,0x95,0x05,0x16,0x00,0x15,0x17,0x95,0x0b,0x10,0x0f,0x95,0x12,0x00,0x00,0x84,0x13,0x02,0x0e,0x0e,0x21,0x1a,0x83,0x10,0x08,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x21,0x23, -0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0e,0xa2,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xfd,0x7e,0x03,0x24,0xa2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01, -0x32,0xa6,0x01,0xee,0x8c,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x5c,0x04,0x18,0x00,0x1a,0x00,0x26,0x00,0x44,0x40,0x25,0x00,0x0d,0x1b,0x03,0x06,0x16,0x10,0x09,0x01,0x09,0x0b,0x95,0x06,0x1c,0x21,0x95,0x16,0x10,0x1b,0x00,0x24,0x0d,0x83,0x03,0x03,0x13,0x08,0x08,0x13,0x19, -0x83,0x1e,0x1e,0x28,0x24,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x10,0x05, -0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xdd,0x7b,0x56,0xd9,0xac,0xad,0x90,0x96,0xab,0xd9,0x58,0xc8,0xd3,0xb3,0x01,0x22,0xe4,0xdf,0x01,0x17,0xfe,0x00,0xc6,0x92,0xba,0x9c,0x9a,0xbc,0x81,0x48,0x53,0x7e,0x50,0x71,0x98,0x4c,0xac,0x6c,0x7f,0x34,0x5d,0x77,0x7e,0xf7,0x92,0xcf,0x01,0x11,0xfe,0xfc,0xc4,0xfe, -0xd9,0x8f,0x6f,0xca,0x73,0x96,0xb2,0xb3,0x95,0x6e,0xbe,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x03,0x52,0x05,0x9a,0x00,0x0b,0x00,0x32,0x40,0x1b,0x04,0x91,0x40,0x07,0x0b,0x00,0x07,0x91,0x2b,0x30,0x03,0x91,0x00,0x12,0x08,0x91,0x0b,0x03,0x00,0x7e,0x07,0x03,0x03,0x0d,0x05,0x09,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00, -0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfd,0x08,0x02,0x50,0xfd,0xfa,0x02,0x06,0xfd,0xd1,0x02,0xd7,0x98,0x01,0xe9,0x97,0x01,0xea,0x98,0x00,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x00,0x23,0x00,0x49,0x40,0x28,0x08,0x1b, -0x91,0x40,0x1a,0x0e,0x02,0x1a,0x91,0x09,0x30,0x20,0x23,0x01,0x23,0x21,0x91,0x02,0x13,0x11,0x13,0x91,0x0e,0x04,0x08,0x05,0x1b,0x1b,0x1e,0x10,0x00,0x00,0x25,0x05,0x16,0x7d,0x0b,0x1e,0x7d,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f, -0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x35,0x24,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0xf4,0xa6,0xcf,0xf5,0xfe,0xe6,0xa2,0x90,0xff,0x00,0x01,0x11,0xd9,0xb2,0x91,0x99,0xaf,0x8d,0xaa,0xcb,0xab,0x69, -0x6b,0xfe,0x5d,0xbf,0xa5,0xc8,0xa7,0x35,0x4d,0xdd,0xb8,0x85,0xc4,0x26,0x06,0x50,0xed,0xa7,0xdc,0x46,0xaa,0x58,0x7e,0x6b,0x70,0x92,0x97,0xfe,0xf1,0x7d,0x8d,0x5c,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x33,0x40,0x1b,0x05,0x91,0x40,0x02,0x10,0x12,0x02,0x91,0x09,0x30,0x0b,0x0d,0x91,0x08,0x01,0x91, -0x10,0x03,0x03,0x11,0x11,0x13,0x02,0x06,0x7e,0x0b,0x0f,0x2f,0xc6,0xe1,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xfe,0xae,0x41,0x37,0x32, -0x3e,0xb2,0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x85,0x06,0x83,0x00,0x25,0x00,0x63,0x40,0x37,0x12,0x91,0x40,0x15,0x1e,0x0f,0x15,0x91,0x08,0x30,0x16,0x11,0x0f,0x91,0x18,0x13,0x00,0x20,0x07,0x1e,0x02,0x92,0x23,0x1e,0x1f,0x07,0x2f,0x07, -0x02,0x07,0x09,0x91,0x1e,0x04,0x1d,0x06,0x1b,0x00,0x20,0x7f,0x04,0x06,0x06,0x16,0x13,0x13,0x0c,0x16,0x7e,0x11,0x11,0x27,0x0c,0x7d,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x5d,0x10,0xd4,0xfd,0x11,0x12,0x39,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18, -0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x85,0x29,0x24,0x72,0x0f,0x08,0xbf,0xd2,0xf6,0xfe,0xc8,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe4, -0xd8,0xfe,0xf6,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0x79,0x76,0x03,0x86,0x67,0x30,0x30,0x05,0xe4,0x14,0xa8,0x48,0x54,0x06,0x6c,0xfe,0xb6,0xfe,0xf6,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x22,0x64,0x8f,0x13,0x00,0x00,0x02,0x00,0x12,0xfe,0x1e,0x04,0xe6,0x05,0x9a, -0x00,0x17,0x00,0x1f,0x00,0x16,0x40,0x0a,0x1c,0x91,0x07,0x1c,0x00,0x0f,0x03,0x00,0x21,0x0f,0x2f,0x10,0xc6,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x04,0xe6,0xfd,0xfe, -0x06,0x72,0x89,0x63,0x60,0x82,0x29,0x4d,0x08,0xfe,0x06,0xbb,0x01,0x8d,0x15,0x08,0x04,0x0d,0x14,0x01,0x95,0xfe,0x43,0x43,0x43,0x44,0x05,0x9a,0xfa,0xc8,0x0c,0xe4,0x6e,0x61,0x85,0x82,0x64,0x3d,0x75,0x9a,0x10,0x05,0x3a,0xfb,0xbc,0x3a,0x36,0x39,0x37,0x04,0x44,0xfa,0x3f,0x8d,0x44,0x58,0x58,0x44,0x00,0x01,0x00,0xa6,0xff,0xe8, -0x06,0x87,0x05,0xec,0x00,0x20,0x00,0x45,0x40,0x27,0x04,0x01,0x07,0x0c,0x95,0x17,0x16,0x01,0x15,0x11,0x0f,0x1d,0x95,0x40,0x07,0x10,0x02,0x00,0x0a,0x84,0x19,0x00,0x0f,0x19,0x84,0x09,0x30,0x12,0x83,0x11,0x14,0x84,0x0f,0x0f,0x22,0x04,0x00,0x84,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18, -0x3f,0x3f,0x1a,0xed,0x3f,0x3f,0x3f,0xed,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x10,0x03,0x33,0x12,0x11,0x14,0x02,0x23,0x20,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x4a,0xa4,0xa4,0x04,0x62,0xcb,0x01,0x50,0xf7,0x84,0x9e,0x90,0xb2,0x81,0xfe,0xcb,0xfe, -0x69,0x69,0x7c,0x6c,0x8c,0x05,0xec,0xfd,0x72,0xba,0xfe,0x5f,0xaa,0xfe,0xaa,0xc2,0xa4,0x01,0x19,0x01,0x0a,0xfe,0xf6,0xfe,0xee,0xe5,0xfe,0xe9,0x01,0xda,0x8a,0xaa,0x98,0xb5,0x91,0x00,0x00,0x01,0x00,0xb8,0xff,0xee,0x02,0x25,0x05,0x9a,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x09,0x91,0x02,0x16,0x05,0x03,0x00,0x00,0x0d,0x06,0x7e, -0x05,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x25,0x3c,0x3b,0xf6,0xa8,0x68,0x30,0x2d,0x04,0x16,0x01,0x22,0x04,0x8a,0xfb,0x7a,0x8f,0x15,0x00,0x01,0x00,0x29,0x00,0x00,0x02,0x10,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x91, -0x40,0x07,0x08,0x03,0x07,0x91,0x14,0x30,0x03,0x12,0x08,0x03,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x7e,0x03,0x0c,0x0d,0x03,0x7e,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11, -0x33,0x02,0x10,0xa0,0xa8,0x9f,0x9f,0xa8,0xa0,0x02,0x8e,0xfd,0x72,0x02,0x8e,0x97,0x02,0x75,0xfd,0x8b,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0xb2,0x00,0x17,0x00,0x2e,0x40,0x18,0x0a,0x17,0x05,0x03,0x08,0x01,0x07,0x12,0x08,0x03,0x12,0x14,0x91,0x0f,0x04,0x17,0x06,0x12,0x00,0x19,0x09,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x10, -0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x33,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x01,0x3c,0x8d,0x94,0x5c,0x38,0x37,0x38,0x3e,0x50,0x76,0xfe,0xc4, -0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x01,0xa4,0xbc,0x5a,0x1a,0x9c,0x1e,0x99,0xfe,0x65,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x15,0x00,0x31,0x40,0x1a,0x01,0x03,0x11,0x15,0x04,0x14,0x05,0x15,0x14,0x0f,0x0c,0x0e,0x95,0x09,0x01,0x15,0x04,0x14,0x00,0x17,0x0c,0x10,0x10,0x04,0x84,0x05,0x2f,0xe1, -0x32,0x10,0xc6,0x10,0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xb3,0x8b,0x47,0x2f,0x37,0x35,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe, -0x14,0x04,0xb2,0x99,0xb7,0x12,0x94,0x1b,0xcf,0xfd,0x83,0x01,0xd5,0xfe,0x12,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x01,0xdb,0x05,0xec,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x14,0x30,0x03,0x15,0x08,0x00,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30, -0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0xdb,0x91,0xa4,0x92,0x92,0xa4,0x91,0x02,0xc4,0xfd,0x3c,0x02,0xc4,0x8c,0x02,0x9c,0xfd,0x64,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf, -0x05,0xee,0x00,0x16,0x00,0x7c,0x40,0x44,0x16,0x12,0x00,0x06,0x05,0x02,0x07,0x15,0x07,0x13,0x12,0x00,0x09,0x05,0x02,0x08,0x14,0x08,0x16,0x13,0x12,0x00,0x12,0x09,0x06,0x05,0x02,0x05,0x06,0x08,0x09,0x13,0x15,0x16,0x06,0x07,0x14,0x10,0x07,0x07,0x05,0x05,0x02,0x0b,0x00,0x04,0x15,0x0d,0x0b,0x95,0x10,0x00,0x14,0x07,0x08,0x15, -0x00,0x08,0x0d,0x0d,0x02,0x05,0x12,0x03,0x04,0x00,0x18,0x04,0x2f,0x10,0xc6,0x11,0x17,0x39,0x39,0x2f,0xc6,0x10,0xc6,0x11,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x33,0x12,0x39,0x39,0x11,0x33,0x2f,0x10,0xc4,0x11,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0, -0x31,0x30,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x05,0x27,0x25,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x37,0x17,0x05,0x03,0xdf,0xb0,0xfe,0xe7,0xfe,0x9c,0xb4,0x01,0xcf,0x1b,0xfe,0xf2,0x3a,0x01,0x1f,0x35,0x66,0x3e,0x3c,0x3c,0x46,0x68,0x80,0x36,0xf4,0x3a,0xff,0x00,0x03,0x3c,0xfc,0xc4,0x03,0xf8,0x4c,0x84,0x71,0x8b, -0x9c,0x12,0x99,0x0f,0x69,0x85,0x77,0x71,0x7d,0x00,0x00,0x01,0x00,0xb8,0xff,0xe8,0x06,0x66,0x05,0x9a,0x00,0x1e,0x00,0x45,0x40,0x27,0x02,0x07,0x15,0x1e,0x04,0x0c,0x19,0x05,0x11,0x91,0x40,0x09,0x13,0x00,0x12,0x0c,0x03,0x01,0x1e,0x7e,0x1d,0x0e,0x15,0x0c,0x15,0x42,0x0d,0x7e,0x0c,0x07,0x16,0x7e,0x15,0x1f,0x20,0x15,0x7e,0x08, -0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x33,0x00,0x18,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xa4,0x04, -0x6c,0xd1,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0xa2,0xba,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x01,0xff,0x9a,0xfe,0x96,0x05,0x42,0x05,0x9a,0x00,0x1b,0x00,0x30,0x40,0x19,0x0d,0x0f,0x91,0x0a,0x04,0x16, -0x1b,0x03,0x13,0x01,0x12,0x13,0x03,0x13,0x01,0x07,0x1b,0x7e,0x1a,0x1a,0x1d,0x0d,0x07,0x7e,0x12,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x16,0x17,0x33, -0x26,0x35,0x11,0x33,0x05,0x42,0xd0,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xfe,0xae,0x41,0x37,0x32,0x3e,0xb2,0xda,0x02,0xce,0x2d,0x0d,0x04,0x0a,0xaa,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfc,0x29,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x01,0x00,0x83,0xfe,0x6c,0x03,0xf8,0x04,0x18, -0x00,0x15,0x00,0x34,0x40,0x1b,0x0f,0x09,0x12,0x01,0x09,0x15,0x0c,0x0f,0x04,0x95,0x12,0x10,0x00,0x83,0x01,0x01,0x17,0x09,0x10,0x0d,0x08,0x84,0x09,0x0d,0x83,0x0c,0x09,0x2f,0xd6,0xe1,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15, -0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa6,0xec,0x7d,0x9f,0xa4,0x23,0xa8,0x1b,0x04,0x70,0xe4,0xa7,0xb3,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x86,0xfd,0xb4,0x02,0xb6,0xef,0x5b,0x47,0x67,0xc6,0xd6,0xcb,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19, -0x00,0x38,0xb7,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0xb8,0x01,0x00,0x40,0x14,0x30,0x17,0x91,0x00,0x13,0x0f,0x91,0x06,0x04,0x12,0x0c,0x14,0x09,0x7d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00, -0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc2,0x13,0xfe,0xfd,0xd8,0xd0,0xfe,0xee,0x16,0x03,0xe6,0xfc,0x1a,0x15,0x01,0x0c,0xcb,0xdc,0x01,0x0b,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01, -0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf6,0x01,0x0c,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x04,0x05,0xb2,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x91,0x09,0x13,0x00,0x12,0x02,0x06,0x17,0x03,0x19,0x04,0x91,0x13,0x15,0x19,0x91,0x0f,0x04,0x07, -0x7e,0x16,0x16,0x0c,0x01,0x7e,0x00,0x00,0x22,0x1c,0x7d,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23, -0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x04,0xa8,0x76,0x82,0x36,0x4f,0xf9,0xe8,0xfe,0xce,0xfe,0x92,0x01,0x83,0x01,0x37,0x70,0xbe,0xbe,0x6c,0xd8,0xbc,0xfd,0x34,0xca,0x5e,0xe4,0xfe,0xe2,0x01,0x17,0xe5,0xa0,0x04,0xf4,0x19,0x09,0xfb,0x7e,0x7a,0x01,0x90,0x01,0x44,0x01,0x4c,0x01,0xaa,0x22,0x22,0x44,0xfb,0x0a,0x04,0x3e,0x20, -0xfe,0xba,0xfe,0xf7,0xfe,0xf6,0xfe,0xbe,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0xac,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x95,0x09,0x16,0x00,0x15,0x02,0x06,0x17,0x03,0x19,0x04,0x95,0x13,0x15,0x19,0x95,0x0f,0x10,0x07,0x84,0x16,0x16,0x0c,0x00,0x84,0x01,0x01,0x22,0x1c,0x83,0x0c,0x2f,0xe1,0x12,0x39, -0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0xac,0xa4,0x64,0x5c,0x3e,0x3d,0xaf,0xb8, -0xec,0xfe,0xe6,0x01,0x28,0xec,0x54,0x98,0x98,0x54,0xb2,0xae,0xfd,0x81,0x7f,0x46,0x9e,0xc2,0xc5,0xa7,0x6e,0x03,0x62,0x18,0x08,0xfc,0xec,0x56,0x01,0x1b,0xf3,0xfa,0x01,0x28,0x21,0x22,0x43,0xfc,0x80,0x02,0xd8,0x1e,0xd7,0xbd,0xb8,0xd0,0x00,0x02,0xff,0xac,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x16,0x00,0x1d,0x00,0x3c,0x40,0x1f, -0x09,0x09,0x0f,0x02,0x00,0x91,0x18,0x18,0x0f,0x02,0x12,0x17,0x03,0x91,0x0f,0x03,0x13,0x7d,0x1b,0x1b,0x1f,0x02,0x09,0x09,0x07,0x7e,0x0c,0x18,0x01,0x7e,0x02,0x2f,0xe1,0x32,0xd4,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22, -0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0xb6,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x88,0xe6,0xfd,0xfe,0xe6,0xef,0xbc,0xb0,0x01,0x65,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xe1,0xcb, -0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x3c,0x40,0x20,0x0f,0x01,0x18,0x12,0x03,0x1b,0x1e,0x95,0x18,0x16,0x24,0x95,0x12,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x02,0x15,0x83,0x21,0x21,0x28,0x1b,0x0e,0x02,0x84,0x03,0x2f,0xe1, -0x32,0x32,0x12,0x39,0x2f,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01, -0x4e,0x04,0xa4,0xb2,0x8c,0x47,0x2f,0x37,0x35,0xa4,0x04,0x76,0xec,0xc5,0xdf,0xfa,0xd9,0xc9,0x6e,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x06,0x89,0x98,0xb8,0x12,0x94,0x1b,0xcf,0xfe,0xa4,0xcc,0xfe,0xef,0xe9,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7e,0xb2,0xe3,0xcc,0xab,0xc2,0xc6,0x00,0x02,0x00,0xbc,0xff,0x68, -0x04,0x62,0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x40,0x40,0x22,0x11,0x05,0x91,0x40,0x15,0x0a,0x07,0x15,0x91,0x08,0x30,0x00,0x07,0x12,0x14,0x91,0x0a,0x08,0x03,0x10,0x15,0x01,0x00,0x00,0x0e,0x7d,0x19,0x19,0x1d,0x15,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x00,0x3f,0xdd,0xed,0x3f, -0x2f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x05,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x15,0x21,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x04,0x62,0xc8,0xc5,0x5d,0xa1,0x73,0xa8,0xa8,0x01,0x04,0xcd,0xe7,0xfe,0xc1,0x57,0x47,0xfd,0xe9,0xde,0x89,0xa1,0xfe,0xde,0x98,0x01, -0xb6,0xce,0xfe,0x14,0x05,0x9a,0x98,0xcd,0xb0,0xfe,0xe0,0x4d,0x04,0x36,0x92,0x03,0x1e,0xfe,0x19,0x80,0x74,0xf3,0x00,0x01,0x00,0x62,0xff,0xe8,0x03,0xc7,0x05,0xb2,0x00,0x35,0x00,0x3e,0x40,0x23,0x0a,0x2d,0x14,0x23,0x04,0x05,0x30,0x1b,0x01,0x1b,0x19,0x91,0x1e,0x04,0x20,0x35,0x01,0x35,0x30,0x91,0x05,0x13,0x23,0xb1,0x14,0x1b, -0x14,0x1b,0x0a,0x35,0x35,0x37,0x2d,0xb1,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x5d,0x3f,0xed,0xcd,0x5d,0x12,0x17,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, -0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xc7,0x1c,0x5d,0x68,0x63,0x23,0x66,0xb8,0x8d,0x53,0x3d,0x68,0x8a,0x4d,0x4b,0x73,0x50,0x29,0x36,0x56,0x6d,0x38,0xc7,0x7f,0x62,0xd3,0x5d,0xb3,0x8c,0x56,0x37,0x60,0x82,0x4b,0x47,0x7b,0x5a,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x3a,0x13,0x1f,0x15,0x0b,0x29, -0x5c,0x93,0x6a,0x50,0x7c,0x66,0x54,0x26,0x25,0x3e,0x42,0x50,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x50,0x77,0x5e,0x4e,0x26,0x24,0x41,0x47,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0x00,0x01,0x00,0x56,0xff,0xe8,0x02,0xfd,0x04,0x18,0x00,0x2e,0x00,0x43,0xb7,0x0b,0x20,0x07,0x2a,0x04,0x02,0x1b,0x2e,0xb8, -0xff,0xc0,0x40,0x1b,0x0b,0x0e,0x48,0x2e,0x2e,0x2c,0x95,0x02,0x16,0x18,0x18,0x16,0x95,0x1b,0x10,0x11,0x83,0x20,0x20,0x18,0x00,0x00,0x30,0x18,0x2a,0x83,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35, -0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x33,0x32,0x37,0x02,0xfd,0x74,0x9e,0x4f,0x93,0x70,0x43,0x29,0x4c,0x6d,0x43,0x33,0x50,0x38,0x1d,0x1d,0x35,0x4a,0x2e,0x93,0x71,0x69,0x85,0x4b,0x8d,0x6e,0x42,0x23,0x45,0x67,0x44,0x31, -0x55,0x3f,0x25,0xd8,0xa2,0x85,0x25,0x3d,0x24,0x4a,0x70,0x4c,0x3e,0x5a,0x45,0x37,0x1a,0x14,0x22,0x2a,0x36,0x28,0x20,0x35,0x26,0x15,0x4a,0xa6,0x2e,0x26,0x4b,0x6f,0x48,0x3b,0x58,0x45,0x37,0x1b,0x13,0x23,0x2c,0x39,0x29,0x90,0x63,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x38,0x40,0x1b,0x03,0x09, -0x09,0x05,0x02,0x0a,0x91,0x01,0x12,0x04,0x08,0x91,0x05,0x03,0x08,0x04,0x0a,0x03,0x09,0x09,0x02,0x07,0x00,0x00,0x0d,0x04,0x02,0x2f,0xc6,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x33,0x32,0x11,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x12,0x39,0x19,0x2f,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21, -0x03,0xf0,0xfc,0x3d,0x01,0xd3,0xfe,0x58,0x03,0x5a,0xfd,0x9c,0x01,0x78,0xfe,0x5f,0x02,0xcb,0x4e,0x02,0x96,0x02,0x5c,0x5a,0x9a,0xfd,0xe8,0xfd,0xac,0x00,0x00,0x02,0xff,0x83,0xfe,0x1e,0x02,0x87,0x06,0x02,0x00,0x15,0x00,0x20,0x00,0x39,0x40,0x1f,0x15,0x13,0x95,0x02,0x1c,0x1f,0x95,0x40,0x07,0xc0,0x19,0x95,0x40,0x0d,0x01,0x15, -0x04,0x16,0x04,0x1c,0x84,0x0a,0x11,0x84,0x04,0x21,0x22,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x11,0x33,0x10,0xc4,0x00,0x3f,0x1a,0xed,0x1a,0xdc,0x1a,0xed,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34, -0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x87,0x39,0x5c,0xfe,0xfc,0x39,0x43,0x65,0x8a,0x90,0x6c,0x80,0x91,0x91,0x38,0x2e,0xfe,0x67,0x71,0x2a,0x39,0x3e,0x31,0x35,0xfe,0x3e,0x20,0x01,0x34,0x04,0xe6,0x1c,0x87,0x67,0x68,0x90,0xab,0x95,0xfa,0xac,0xc4,0x21,0x05,0xf7,0x0d,0xa8,0x3c,0x2b,0x2c,0x3c,0x00,0x00,0x01,0x00,0x2b, -0xfe,0x96,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x3e,0x40,0x22,0x06,0x08,0x95,0x03,0x1e,0x1c,0x95,0x0b,0x16,0x18,0x15,0x0e,0x95,0x14,0x11,0x0f,0x0b,0x40,0x13,0x16,0x48,0x0b,0x84,0x1e,0x17,0x17,0x18,0x06,0x15,0x11,0x18,0x84,0x0f,0x0e,0x2f,0xcd,0xe1,0x39,0x39,0xc4,0x10,0xc1,0x2f,0xd4,0xe1,0x2b,0x00,0x3f,0xcd,0xed,0x39,0x39, -0x3f,0xfd,0xc6,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x99,0x7e,0x3c,0x34,0x34,0x3c,0x7e,0xfe,0xf3,0xb0,0xb0,0x4d,0x57,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x44,0x87, -0x9f,0x18,0x92,0x1f,0x9f,0x28,0x01,0x2c,0x02,0x60,0x8c,0xfa,0x18,0x1d,0xfe,0xd1,0x8c,0xfd,0xbd,0x67,0x58,0x22,0x00,0x01,0xff,0xcd,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x2d,0x40,0x18,0x03,0x12,0x0a,0x04,0x01,0x91,0x40,0x11,0x03,0x08,0x7e,0x0d,0x0d,0x02,0x00,0x02,0x7e,0x03,0x12,0x13,0x03,0x7e,0x08,0x30,0x2b,0x01, -0x10,0xe1,0x18,0xc4,0x10,0xc0,0x2f,0xe1,0x00,0x3f,0x1a,0xed,0x32,0xc4,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x04,0x0c,0xfe,0x62,0xa8,0x9b,0x5a,0x65,0x15,0x9d,0x17,0xc2,0xa2,0x02,0xdb,0x05,0x02,0xfa,0xfe,0x05,0x02,0x5c,0x4e,0x37,0x33,0x38,0x42,0x85,0xad, -0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x02,0x00,0x1d,0x00,0x32,0x40,0x1a,0x1d,0x1b,0x95,0x02,0x16,0x0f,0x11,0x95,0x0c,0x01,0x17,0x14,0x05,0x95,0x08,0x0f,0x1d,0x0f,0x16,0x16,0x14,0x08,0x17,0x84,0x06,0x05,0x2f,0xcd,0xf1,0x39,0x39,0xc1,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30, -0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0x98,0x83,0x4a,0x41,0x3d,0x40,0x85,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xc0,0x93,0xaf,0x1c, -0x92,0x23,0xbf,0xb8,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x27,0xfe,0x96,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0x32,0x40,0x1a,0x06,0x04,0x91,0x09,0x01,0x0c,0x91,0x40,0x0e,0x03,0x06,0x06,0x02,0x00,0x0b,0x0d,0x0d,0x02,0x7e,0x0b,0x10,0x11,0x0b,0x7e,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x11,0x39,0x2f, -0x00,0x3f,0x1a,0xed,0x32,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x21,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xaa,0x46,0x34,0x3a,0x4e,0xfe,0xbc,0xfe,0x61,0x03,0xe5,0x05,0x02,0xfb,0x33,0xfe,0xf8,0x17,0x94,0x1a,0x01,0x95,0x04,0xd7,0x98,0x00,0x00,0x01,0x00,0x62,0xff,0xe8,0x05,0xa8, -0x05,0x9a,0x00,0x1b,0x00,0x42,0x40,0x24,0x09,0x91,0x17,0x13,0x04,0x0e,0x10,0x11,0x04,0x01,0x91,0x02,0x03,0x12,0x7d,0x0e,0x0e,0x0c,0x06,0x00,0x7e,0x04,0x04,0x0c,0x06,0x11,0x11,0x14,0x7d,0x0c,0x0c,0x1d,0x01,0x06,0x7d,0x1a,0x2f,0xe1,0x33,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00, -0x3f,0xed,0x17,0x39,0x3f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x04,0x11,0x14,0x00,0x33,0x32,0x00,0x35,0x10,0x01,0x35,0x21,0x15,0x21,0x04,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x01,0xbe,0xfe,0xa4,0x02,0x06,0xfe,0xa8,0x01,0x15,0xdd,0xe0,0x01,0x18,0xfe,0xa6,0x02,0x06,0xfe,0xa6,0x01,0x5c,0xfe,0x8e,0xfe,0xd0,0xfe,0xcd, -0xfe,0x8f,0x05,0x06,0x94,0x94,0xfe,0xfe,0x86,0xf7,0xfe,0xe6,0x01,0x1c,0xf5,0x01,0x78,0x01,0x00,0x94,0x94,0xec,0xfe,0x6f,0xfe,0xca,0xfe,0x95,0x01,0x66,0x01,0x39,0x01,0x93,0x00,0x01,0x00,0xb8,0xff,0xe8,0x05,0x54,0x05,0xb2,0x00,0x16,0x00,0x2a,0x40,0x16,0x04,0x91,0x14,0x13,0x00,0x03,0x0b,0x09,0x91,0x0e,0x04,0x0b,0x0b,0x01, -0x11,0x7d,0x07,0x07,0x18,0x01,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x00,0x11,0x10,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x20,0x11,0xb8,0xa8,0x01,0x58,0xd9,0x01,0x17,0xfe,0xf8,0x48,0x40,0x4d,0x57,0xba,0xde, -0xfe,0x81,0xfe,0xdb,0xfe,0x08,0x05,0x9a,0xfc,0xac,0xfe,0x39,0x01,0x91,0x01,0x25,0x01,0xe5,0x1c,0x9a,0x1a,0xfe,0xad,0xfe,0xe3,0xfe,0x99,0xfe,0x0d,0x02,0x56,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x04,0xd6,0x05,0xb2,0x00,0x15,0x00,0x2b,0x40,0x16,0x00,0x15,0x14,0x03,0x14,0x0c,0x11,0x7e,0x14,0x03,0x14,0x11,0x03,0x13,0x15,0x03, -0x13,0x12,0x0e,0x91,0x09,0x03,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc6,0x12,0x39,0x10,0xcd,0x32,0x31,0x30,0x13,0x01,0x16,0x17,0x33,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x11,0x23,0x11,0x01,0xc1,0x01,0x50,0x1b,0x0c,0x02,0x23,0xc7,0x46,0x8e,0x6b,0x39,0x3a,0x2f,0x3a,0x5a,0x54, -0xfe,0xd1,0xa8,0xfe,0x27,0x05,0x9a,0xfd,0x78,0x33,0x25,0x58,0x01,0x9a,0x91,0x75,0x18,0x9c,0x1c,0xaa,0xfd,0x9e,0xfd,0xf2,0x02,0x12,0x03,0x88,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x04,0x60,0x04,0x18,0x00,0x1c,0x00,0x2f,0x40,0x19,0x14,0x05,0x0f,0x0a,0x0c,0x95,0x07,0x1c,0x10,0x0f,0x00,0x02,0x95,0x1a,0x10,0x0a,0x05,0x0a,0x0f,0x14, -0x04,0x10,0x00,0x1e,0x10,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xfd,0xc6,0x2f,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x12,0x33,0x32,0x17,0x04,0x60,0x2c,0x2c,0x66,0x42,0xfe,0x9e,0x7d,0xe5, -0x42,0x29,0x33,0x2e,0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x0a,0x0b,0x06,0x05,0x0f,0xc0,0x6d,0xd1,0x29,0x31,0x03,0x79,0x13,0xa8,0xfc,0x78,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x1c,0x32,0x1a,0x34,0x02,0x06,0x01,0x26,0x10,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x11,0x00,0x5a,0x40,0x2e, -0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x91,0x40,0x0d,0x10,0x08,0x0d,0x91,0x14,0x30,0x09,0x05,0x91,0x08,0x12,0x00,0x0e,0x91,0x10,0x03,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18, -0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0x21,0x35,0x21,0x04,0x64,0xfe,0x71,0xfc,0xfe,0x9d,0xfe,0xae,0x03,0x34,0xfb,0xd1,0x01,0x99,0xe3,0x01,0x4a,0x01,0x41,0xfd,0x00, -0x04,0x02,0x05,0x72,0xfd,0xb3,0x97,0xfe,0x0a,0x98,0x2f,0x02,0x5f,0x97,0x01,0xdd,0x98,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x11,0x00,0x5a,0x40,0x2e,0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x95,0x40,0x0d,0x10,0x08,0x0d,0x95,0x14,0x30,0x09,0x05, -0x95,0x08,0x15,0x00,0x0e,0x95,0x10,0x0f,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x03, -0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x70,0xfe,0xec,0xbc,0xfe,0xe0,0xe6,0x02,0x58,0xfc,0xb7,0x01,0x27,0xa8,0x01,0x0c,0xd3,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfe,0x83,0x8c,0xfe,0xc4,0x8c,0x33,0x01,0x95,0x8c,0x01,0x20,0x8c,0x00,0x00,0x01,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x05,0x9a,0x00,0x18,0x00,0x44, -0x40,0x24,0x0b,0x0a,0x91,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x91,0x17,0x1c,0x10,0x0c,0x91,0x0e,0x03,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x7d,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a, -0xed,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x24,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x04,0x00,0x15,0x10,0x00,0x21,0x22,0x0a,0xe0,0xde,0xe9,0x01,0x22,0xfe,0xd1,0xfe,0xf6,0x5c,0x01,0xf5,0xfc,0xf4,0x04,0x02,0xfe,0x02,0x01,0x11,0x01,0x47,0xfe,0x6f,0xfe,0xd4,0xe8,0xfe,0x89,0xb5,0x88,0xef,0xbf,0xcc, -0xe2,0x4c,0x02,0xa4,0x98,0x4c,0xfd,0x52,0x17,0xfe,0xd0,0xef,0xff,0x00,0xfe,0xb4,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x04,0xd7,0x05,0x9a,0x00,0x18,0x00,0x40,0x40,0x22,0x0e,0x0f,0x91,0x40,0x08,0x0a,0x02,0x08,0x91,0x09,0x30,0x18,0x16,0x91,0x02,0x1c,0x09,0x0d,0x91,0x0a,0x03,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x18,0x1a,0x0d,0x09,0x13, -0x7d,0x05,0x2f,0xe1,0xc4,0x32,0x12,0x39,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x20,0x00,0x11,0x34,0x00,0x25,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x20,0x04,0x15,0x14,0x04,0x33,0x32,0x37,0x04,0xd7,0xd5,0xfc,0xfe,0xd5,0xfe,0x83,0x01, -0x4e,0x01,0x0a,0xfe,0x02,0x04,0x02,0xfc,0xf6,0x01,0xf4,0x5c,0xfe,0xf8,0xfe,0xce,0x01,0x22,0xe8,0xf0,0xcf,0xfe,0x89,0x6b,0x01,0x3e,0x01,0x02,0xeb,0x01,0x40,0x17,0x02,0xae,0x4c,0x98,0xfd,0x5c,0x4c,0xe5,0xc9,0xbf,0xef,0x7d,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0xaa,0x04,0x00,0x00,0x18,0x00,0x3e,0x40,0x21,0x0e,0x0f,0x96,0x40, -0x08,0x0a,0x02,0x08,0x96,0x09,0x30,0x18,0x16,0x95,0x02,0x1c,0x09,0x0d,0x95,0x0a,0x0f,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x1a,0x0d,0x09,0x13,0x83,0x05,0x2f,0xe1,0xc4,0x32,0x10,0xd6,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36, -0x37,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0xaa,0x9a,0xca,0xf4,0xfe,0xcc,0xf7,0xcf,0xfe,0x76,0x03,0x2d,0xfd,0xc5,0x01,0x7a,0x54,0xc8,0xe4,0xda,0xaa,0xc4,0x9c,0xfe,0x72,0x51,0xf9,0xcc,0xb0,0xfb,0x1d,0x02,0x1f,0x33,0x8c,0xfd,0xec,0x33,0xab,0x96,0x8d,0xb3,0x62,0x00,0x00,0x01, -0x00,0x0a,0xfe,0x1e,0x03,0x08,0x04,0x00,0x00,0x22,0x00,0x58,0x40,0x30,0x19,0x0b,0x06,0x1f,0x04,0x03,0x10,0x0f,0x96,0x40,0x16,0x13,0x03,0x16,0x96,0x08,0x30,0x00,0x21,0x95,0x03,0x1c,0x15,0x11,0x95,0x13,0x0f,0x16,0x11,0x15,0x10,0x10,0x0b,0x06,0x15,0x15,0x19,0x00,0x00,0x19,0x84,0x0b,0x0b,0x24,0x12,0x1f,0x83,0x06,0x2f,0xe1, -0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06, -0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x02,0x9e,0x89,0xb9,0xa0,0xb2,0x01,0x38,0xa4,0x7e,0x9e,0x8e,0x52,0x01,0x1a,0xfe,0x0a,0x02,0xd8,0xfe,0xda,0x9e,0xae,0xa6,0xc4,0x93,0x59,0xb8,0xaa,0xfc,0x9e,0x48,0x7d,0x6f,0xc5,0x66,0x36,0x6d,0x59,0x5a,0x67,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xae,0x12,0xa2,0x81,0x7e,0xaf,0x44,0x32,0x45,0x35, -0x6c,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xc2,0x05,0xb2,0x00,0x1b,0x00,0x6e,0x40,0x38,0x1a,0x01,0x02,0x18,0x02,0x0a,0x07,0x06,0x0d,0x06,0x01,0x1a,0x07,0x99,0x0a,0x0a,0x02,0x10,0x18,0x0d,0x15,0x06,0x02,0x99,0x05,0x18,0x12,0x10,0x9a,0x15,0x07,0x08,0x08,0x12,0x07,0x1a,0x01,0x18,0x02,0x0a,0x07,0x0d,0x06,0x00,0x00,0x18, -0x04,0x04,0x18,0x8a,0x0d,0x0d,0x1d,0x12,0x02,0x06,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x21, -0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x33,0x03,0xc2,0xfe,0xde,0xfe,0x85,0x02,0x9b,0xfc,0xa0,0x01,0x7f,0xfd,0x01,0x84,0x69,0x52,0x90,0x81,0xbe,0xb2,0xa2,0xe5,0xc0,0xdb,0x9f,0x9f,0x02,0x2b,0xfe,0x69,0x94,0x92,0x01,0x99,0x93,0x77,0x9d, -0x55,0x78,0x88,0xa4,0xac,0x83,0xcf,0xb0,0xaf,0xc6,0x00,0x01,0x00,0x74,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x1d,0x00,0x42,0x40,0x24,0x0d,0x14,0x09,0x9a,0x40,0x16,0x10,0x1c,0x16,0x9a,0x08,0x30,0x01,0x03,0x95,0x1c,0x16,0x13,0x0e,0x99,0x10,0x06,0x11,0x11,0x19,0x89,0x06,0x06,0x1f,0x0e,0x13,0x14,0x03,0x0d,0x0f,0x00,0x2f,0xc6, -0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x23,0x13,0x23,0x35,0x21,0x15,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x99,0xb9,0xbe,0xb1,0x32, -0x4d,0x5f,0x07,0x45,0x9e,0x03,0x13,0xfe,0x25,0x33,0x41,0x2c,0xe7,0xfb,0xfe,0xf1,0xec,0xbd,0x23,0xae,0x5f,0xad,0x8d,0x8e,0x9d,0x05,0x07,0x02,0x3b,0x94,0x94,0xfe,0x5c,0x04,0xe6,0xca,0xd0,0xfe,0x00,0x01,0x00,0x48,0xff,0xe8,0x02,0xcd,0x04,0x00,0x00,0x1b,0x00,0x42,0x40,0x24,0x0b,0x12,0x09,0x95,0x40,0x14,0x0e,0x1a,0x14,0x95, -0x08,0x30,0x01,0x03,0x95,0x1a,0x16,0x11,0x0c,0x95,0x0e,0x0f,0x10,0x10,0x17,0x83,0x06,0x06,0x1d,0x0c,0x11,0x12,0x03,0x0b,0x0d,0x00,0x2f,0xc6,0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, -0x22,0x07,0x13,0x23,0x35,0x21,0x15,0x21,0x07,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x5a,0x72,0x7a,0x64,0x7b,0x83,0x73,0x17,0xa6,0x3e,0x68,0x02,0x5c,0xfe,0xa2,0x28,0x32,0x14,0x9d,0xcc,0xd5,0xb2,0x9e,0x18,0xa6,0x4c,0x6c,0x57,0x54,0x65,0x08,0x01,0x8e,0x8c,0x8c,0xfd,0x02,0xa7,0x94,0x97,0xbf,0x00,0x00,0x01,0x00,0x1e, -0xff,0xe8,0x02,0xe4,0x05,0x2f,0x00,0x20,0x00,0x41,0x40,0x21,0x1c,0x05,0x1f,0x0f,0x01,0x03,0x95,0x1f,0x16,0x11,0x15,0x12,0x0c,0x95,0x0f,0x0f,0x14,0x14,0x15,0x1c,0x83,0x05,0x05,0x22,0x12,0x0f,0x15,0x84,0x0c,0x01,0x01,0x0d,0x0c,0x2f,0xcd,0x39,0x2f,0x10,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x39, -0x39,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x70,0x76,0x95,0xc3,0x38,0x7d,0x92,0x5b,0x7e,0x7e,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x66,0x89,0x6f,0xc9, -0xad,0x96,0x25,0xb0,0x63,0x90,0x2e,0x4b,0x3f,0x4c,0x9b,0x6d,0x66,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0x62,0x4b,0x5e,0x31,0x44,0x8c,0x5e,0x7f,0xa3,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x16,0x04,0x18,0x00,0x0c,0x00,0x15,0x00,0x2c,0x40,0x17,0x02,0x1b,0x05,0x07,0x0e,0x95,0x00,0x03,0x0f,0x14,0x95,0x07,0x10,0x0a,0x83,0x11,0x11,0x17, -0x0e,0x05,0x01,0x84,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x00,0x01,0x11,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x01,0x4a,0xa4,0xa4,0xac,0xc2,0x97,0xc7,0xfe,0x84,0xfe,0xb0,0xf2,0x01,0x32,0x70,0x5c,0x9e, -0x2d,0xfe,0x56,0x05,0xd7,0x81,0x99,0xc4,0x92,0xdf,0xfe,0x72,0x02,0x80,0xfd,0x9b,0x61,0x01,0x34,0xad,0x5d,0x7a,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x0f,0xb6,0x03,0xfa,0x00,0x1c,0x00,0xca,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00, -0x00,0x02,0x00,0xac,0xfe,0x1e,0x02,0x66,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x25,0x40,0x12,0x02,0x01,0x06,0x05,0x1c,0x06,0xfa,0x00,0xca,0x01,0x01,0x09,0x04,0xca,0x00,0x05,0x01,0x05,0x2f,0x5d,0xe1,0x12,0x39,0x7c,0x2f,0xe1,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x02,0x66,0x93, -0x93,0xfe,0xda,0x94,0x94,0xfe,0x1e,0x08,0x00,0xf8,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0x72,0x06,0x1e,0x00,0x13,0x00,0x4f,0x40,0x2c,0x12,0x01,0x04,0x95,0x07,0x11,0x0e,0x0b,0x95,0x08,0x40,0x0c,0x03,0x08,0x07,0x08,0x3a,0x03,0x1c,0x0c,0xfa,0x10,0x09,0x00,0x05,0x08,0x0b,0x0e,0x11,0x04,0x02,0x00,0x03,0x05, -0x05,0x02,0xca,0x03,0x14,0x15,0x03,0xca,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x39,0x39,0x10,0xed,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03, -0x72,0xfe,0xaa,0x93,0xfe,0xaa,0x01,0x56,0xfe,0xaa,0x01,0x56,0x93,0x01,0x56,0xfe,0xaa,0x01,0x56,0x01,0x46,0xfc,0xd8,0x03,0x28,0x8b,0x01,0x17,0x8a,0x02,0xac,0xfd,0x54,0x8a,0xfe,0xe9,0xff,0xff,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x02,0x06,0x00,0x04,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x09,0xbc,0x07,0x62,0x00,0x26, -0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x3d,0x05,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x06,0x43,0x01,0x56,0x00,0x13,0x40,0x0b,0x03,0x05,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xef,0x06,0x0c,0x00,0x26,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x5d,0x05,0x7f, -0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0xf5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x0e,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x05,0x06,0x0c,0x00,0x26,0x00,0x47,0x00,0x00,0x00,0x27,0x00,0x5d,0x04,0x95,0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0x0c,0x00,0x00, -0x00,0x13,0x40,0x0b,0x03,0x0e,0x2d,0x2d,0x26,0x27,0x25,0x03,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0xe8,0x06,0x29,0x05,0x9a,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x2d,0x03,0xfe,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0xed,0xb4,0x0c,0x12,0x02,0x05,0x25,0x01,0x2b,0x35,0xff,0xff, -0x00,0xbc,0xfe,0x1e,0x05,0x39,0x05,0xd9,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x4d,0x03,0xd3,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x01,0xf3,0xb4,0x18,0x0f,0x02,0x05,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x03,0x77,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x4d,0x02,0x11,0x00,0x00, -0xff,0xff,0x00,0xbc,0xff,0xe8,0x07,0xe4,0x05,0x9a,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x2d,0x05,0xb9,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x03,0xda,0xb4,0x1a,0x20,0x0a,0x13,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x1e,0x07,0x34,0x05,0xd9,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x4d,0x05,0xce,0x00,0x00, -0x00,0x10,0xb1,0x02,0x01,0xb8,0x03,0x20,0xb4,0x26,0x1d,0x0a,0x13,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x05,0xed,0x05,0xd9,0x00,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x4d,0x04,0x87,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x02,0x88,0xb4,0x25,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16, -0x00,0x00,0x05,0x12,0x07,0x62,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x12,0x01,0x56,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x13,0x10,0x05,0x00,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x0c,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x00,0xe0, -0x7f,0x00,0x00,0x13,0x40,0x0b,0x02,0x18,0x23,0x20,0x08,0x14,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf7,0x00,0x00,0x02,0x29,0x07,0x62,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x91,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00, -0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf,0x00,0x00,0x02,0x11,0x06,0x0c,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x79,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x62,0x02,0x26, -0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x85,0x01,0x56,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0c,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xd9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00, -0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x62,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x41,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x11,0x0e,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, -0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x15,0x12,0x08,0x11,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x51, -0x00,0x69,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x21,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x3a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x60,0xe9,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07, -0x25,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x54,0x00,0x80,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x0a,0x21,0x0e,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05, -0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x05,0x54,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x10,0x25,0x12,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, -0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x5a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x53,0x00,0x80,0x01,0x60,0x00,0x1f,0x40,0x12,0x03,0x02,0x01,0x00,0x24,0x1e,0x05,0x0d,0x25,0x03,0x02,0x01,0x30,0x21,0x01,0x21,0x05,0x26,0x00,0x2b,0x71,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8, -0x03,0xe2,0x06,0xfa,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x61,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07,0x28,0x22,0x08,0x11,0x25,0x03,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, -0x06,0x62,0x00,0x6d,0x01,0x60,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0b,0x10,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x62,0xee,0x00,0x00,0x1b,0x40,0x0f, -0x03,0x02,0x01,0x00,0x14,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x48,0x40,0x21,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x40,0x01,0x09,0x0f,0x01,0x95,0x08,0x30,0x17,0x95, -0x0f,0x16,0x04,0x95,0x09,0x10,0x0c,0x83,0x01,0x13,0x13,0x1b,0x06,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x06,0x14,0x83,0x00,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0xc5,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14, -0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x05,0xae,0x9b,0xad,0x90,0x86,0xde,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x86,0x78,0x74,0xa2,0x02,0x29,0xab,0xba,0x72,0x9a,0x62,0xfe,0xe9,0xfd,0xf1,0xfe,0xd5,0x01,0x06,0xe5,0x35,0x8f,0x9d,0xa6,0xff,0xff,0x00,0x16,0x00,0x00, -0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0x33,0x01,0x60,0x00,0x1e,0xb2,0x04,0x03,0x02,0xb8,0xff,0xf6,0x40,0x0b,0x23,0x1d,0x05,0x00,0x25,0x04,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x3a,0x00,0x26,0x00,0x44, -0xf8,0x00,0x01,0x06,0x06,0x60,0xa3,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x14,0x33,0x2d,0x08,0x14,0x25,0x04,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x52,0x00,0x90,0x01,0x65,0x00,0x17, -0x40,0x0d,0x03,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x03,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x35,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x06,0x63,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x20,0x22,0x23,0x08,0x14,0x25,0x03,0x02,0x24,0x11,0x26,0x00, -0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x06,0x8c,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0xd9,0x03,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0x01,0x50,0x40,0x09,0x16,0x17,0x05,0x0f,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x06,0x4e, -0x05,0x2f,0x00,0x26,0x00,0xa0,0xf8,0x00,0x01,0x07,0x00,0xd9,0x02,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x38,0x39,0x11,0x23,0x25,0x03,0x37,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x7d,0x05,0xb2,0x00,0x21,0x00,0x61,0x40,0x37,0x01,0x20,0x18,0x92,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b, -0x03,0x1b,0x1b,0x17,0x1c,0x91,0x1e,0x1e,0x0a,0x02,0x17,0x15,0x91,0x04,0x13,0x1f,0x0d,0x2f,0x0d,0x02,0x0d,0x0f,0x91,0x0a,0x04,0x00,0x00,0x1f,0x1a,0x1d,0x1d,0x1c,0x12,0x0d,0x0d,0x01,0x18,0x1f,0x7e,0x1c,0x1c,0x23,0x12,0x7d,0x07,0x2f,0xe9,0x12,0x39,0x2f,0xf9,0x39,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xc6,0x10,0xc0,0x2f,0x00, -0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x05,0x7d,0x91,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe, -0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc8,0x01,0x38,0xfe,0xc6,0x01,0xe2,0x91,0x01,0x31,0xcf,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x6f,0x8b,0x98,0x98,0xfe,0xd0,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0xb6, -0x04,0x18,0x00,0x22,0x00,0x2f,0x00,0x77,0x40,0x12,0x22,0x00,0x0f,0x0b,0x01,0x17,0x03,0x0b,0x95,0x40,0x0c,0x13,0x08,0x0c,0x95,0x08,0x30,0x06,0xb8,0xff,0xc0,0x40,0x2d,0x0b,0x0f,0x48,0x06,0x06,0x08,0x95,0x03,0x1c,0x1c,0x10,0x19,0x2d,0x95,0x13,0x1e,0x0f,0x27,0x95,0x19,0x10,0x21,0x01,0x1f,0x0d,0x0a,0x0f,0x06,0x22,0x22,0x1f, -0x0c,0x0c,0x16,0x1f,0x84,0x23,0x1d,0x0f,0x0f,0x31,0x2a,0x83,0x06,0x16,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x12,0x39,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x05, -0x23,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x21,0x35,0x21,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xb6,0xdb,0x77,0xfe,0x90,0xbe,0x8e,0xad,0x9d,0xda,0x5d,0xfe,0xb4,0x01,0x83,0x0c, -0x04,0x75,0xeb,0xbd,0xeb,0x01,0x00,0xd5,0xcf,0x64,0x04,0xa4,0x0c,0xb2,0xfe,0xb6,0xa5,0x7b,0x97,0xad,0xa7,0x86,0x8a,0xad,0xd1,0xfe,0xef,0x48,0xa4,0x60,0x85,0x8b,0x3d,0x45,0x99,0xc5,0x01,0x0c,0xd8,0xf5,0x01,0x2f,0xa6,0x8e,0xfc,0x52,0x50,0x48,0x02,0x3e,0x6e,0x7a,0xae,0xd6,0xba,0x9d,0xc5,0xc2,0xff,0xff,0x00,0x5e,0xff,0xe8, -0x04,0xec,0x07,0x62,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x5c,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x36,0x1d,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00, -0x00,0x13,0x40,0x0b,0x02,0x09,0x29,0x26,0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x62,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xdd,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xad,0x40,0x09,0x14,0x11,0x08,0x00,0x25,0x01,0x13,0x05,0x26, -0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x10,0x0d,0x06,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x05,0xb2, -0x00,0x19,0x00,0x25,0x00,0x50,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x91,0x0e,0x00,0x13,0x1a,0x91,0x14,0x04,0x0e,0xb8,0x01,0x04,0xb5,0x00,0x00,0x02,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f,0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x7d,0x23,0x23,0x27,0x1d,0x7d,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, -0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc2,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x48,0x80,0x44, -0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xfe,0xe5,0xfe,0xac,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0xb9,0xfe,0xa7,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x14,0x7e,0x4d,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x11,0x01,0x8d,0x01,0x34,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xba,0xfe,0x6b,0x05,0x16, -0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x02,0x00,0x60,0xfe,0x70,0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x4c,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x95,0x00,0x0e,0x16,0x1a,0x95,0x14,0x10,0x0e,0xb8,0x01,0x04,0xb3,0x00,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f, -0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x83,0x23,0x23,0x27,0x1d,0x83,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xd6,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x02,0x35,0x10,0x00, -0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xa2,0x81,0x43,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xd0,0xf5,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe6,0xfe,0xf4,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0x80,0x4b,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x0e,0x01,0x1c,0xe0,0x01,0x02, -0x01,0x22,0xfe,0xe6,0xfa,0xde,0xfe,0xdf,0x03,0x89,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0xff,0xff,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x06,0x8c,0x02,0x26,0x05,0x14,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xd2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x60,0xfe,0x70,0x04,0x50,0x05,0x2f,0x02,0x26,0x05,0x15,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x07,0x62,0x02,0x26,0x04,0xe1,0x00,0x00,0x01,0x07, -0x00,0xe0,0x00,0x8b,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xc4,0x40,0x09,0x1c,0x19,0x01,0x14,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x06,0x0c,0x00,0x26,0x05,0x97,0x00,0x00,0x01,0x06,0x00,0xe0,0xf8,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x1c,0x19,0x01, -0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x10,0x06,0x0c,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x78,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xb5,0x10,0x0d,0x06,0x0c,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, -0x09,0xbc,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x3d,0x05,0x58,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x9d,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xf0,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x5d,0x05,0x80,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04, -0x4b,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x06,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0x5d,0x04,0x96,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x26,0xb4,0x23,0x27,0x08,0x10,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x68,0x02,0x26,0x00,0x2a, -0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x27,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0xcb,0x1c,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0a,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x56,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x67,0x28,0x26, -0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x79,0x05,0x9a,0x00,0x17,0x00,0x43,0x40,0x25,0x08,0x91,0x40,0x0d,0x0b,0x0a,0x0d,0x91,0x2b,0x30,0x13,0x91,0x03,0x13,0x0a,0x12,0x17,0x0f,0x10,0x0b,0x03,0x0e,0x0d,0x09,0x10,0x7e,0x07,0x07,0x0a,0x17,0x7e,0x16,0x16,0x19, -0x09,0x7e,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x07,0x79,0xe8,0xcd,0xc9,0xda,0xfd,0x43,0xa8, -0xa8,0x02,0xbd,0xa7,0x01,0x05,0x01,0x04,0xa8,0x01,0xac,0xd6,0xee,0xe5,0xd3,0xee,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x14,0xfe,0xd1,0x01,0x29,0x02,0x58,0x00,0x02,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x0c,0x00,0x15,0x00,0x2e,0x40,0x18,0x05,0x00,0x07,0x02,0x1b,0x0e,0x91,0x00,0x03,0x03,0x14,0x91,0x07,0x04, -0x0a,0x7d,0x11,0x11,0x17,0x0e,0x05,0x01,0x7e,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x3f,0x11,0x12,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x21,0x32,0x12,0x15,0x10,0x00,0x01,0x11,0x24,0x00,0x11,0x34,0x26,0x23,0x22,0x01,0x64,0xa8,0xa8,0xeb,0x01,0x1d,0xc2,0xf9,0xfe,0x03,0xfe, -0x3a,0x01,0x61,0x01,0xb2,0xa3,0x88,0xea,0x3a,0xfe,0x63,0x07,0x71,0xe2,0xfa,0xfe,0xf2,0xc7,0xfe,0xbf,0xfd,0xdb,0x03,0x7f,0xfc,0x78,0x91,0x01,0xc9,0x01,0x03,0x8e,0xbd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7d,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff, -0x93,0x40,0x09,0x16,0x14,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x90,0x40,0x09,0x15,0x13,0x0a,0x12,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01, -0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x5e,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x1d,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8a,0x40,0x0a,0x16,0x10,0x05,0x00,0x25,0x03,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x00, -0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x04,0x6e,0x01,0xa1,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xbc,0x40,0x0a,0x26,0x20,0x08,0x14,0x25,0x03,0x02,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xf0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x00, -0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x17,0x10,0x05,0x00,0x25,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0xbc,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x04,0x2a,0xae,0x28,0x00,0x13,0x40,0x0b,0x02,0x20,0x26,0x20,0x08,0x14,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35, -0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x9e,0x00,0x00,0x03,0xb4,0x07,0x5e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8a,0x40,0x0a,0x12,0x0c,0x02,0x0b,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd, -0x06,0x00,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xbf,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xa2,0x40,0x0a,0x20,0x1a,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x18,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x2a, -0xff,0xd3,0x01,0x84,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x12,0x0c,0x02,0x0b,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x04,0x2a,0xc0,0x28,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x20,0x1a,0x0c,0x12,0x25, -0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xce,0x07,0x5e,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, -0xff,0x6e,0x00,0x00,0x01,0xb6,0x06,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0x91,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0x28,0x07,0x18,0x02,0x26,0x00,0x2c, -0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0xb8,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xe6,0x00,0x00,0x02,0x0a,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x70,0x00,0xf8,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0b,0x04, -0x02,0x03,0x25,0x01,0x0b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x91,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8e,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xe3,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8c,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x18, -0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xac,0x01,0x84,0x00,0x13,0x40,0x0b,0x02,0x00,0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbc,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x2a,0x00,0x28,0x00,0x13,0x40,0x0b,0x02,0x00, -0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x04,0xc0,0x07,0x5e,0x00,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc3,0x01,0x5e,0x00,0x0a,0xb4,0x03,0x02,0x2d,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0xbc,0x06,0x00,0x02,0x26, -0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0x27,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x77,0x40,0x0a,0x17,0x11,0x08,0x10,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x18,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0xfe,0x01,0x84, -0x00,0x08,0xb3,0x02,0x2e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0x00,0x00,0x02,0xca,0x05,0xbc,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0x5a,0x00,0x28,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x11,0x08,0x10,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, -0x07,0x5e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x54,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x96,0x40,0x0a,0x14,0x0e,0x05,0x0d,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x04,0x6e, -0x01,0xd1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x99,0x40,0x0a,0x18,0x12,0x08,0x11,0x25,0x02,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x18,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x68,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e, -0x05,0x0d,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbc,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x04,0x2a,0xeb,0x28,0x00,0x13,0x40,0x0b,0x01,0x0a,0x18,0x12,0x08,0x11,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x10,0xfe,0x21, -0x03,0xcb,0x05,0xb2,0x00,0x24,0x00,0x53,0x40,0x2d,0x1d,0x0c,0x0f,0x09,0x01,0x1f,0x03,0x09,0x0b,0x91,0x40,0x0c,0x17,0x23,0x0c,0x91,0x08,0x30,0x01,0x03,0x91,0x23,0x1b,0x14,0x12,0x91,0x17,0x04,0x1d,0x1a,0x0b,0x0b,0x06,0x01,0x0f,0x7d,0x1a,0x1a,0x20,0x7d,0x06,0x06,0x26,0x14,0x01,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1, -0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x5f,0x5e,0x5d,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x20,0x00,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x10,0x00,0x21,0x22, -0x10,0x4c,0x66,0x01,0x00,0x01,0x58,0xe4,0xb7,0x5a,0x73,0x71,0x01,0xae,0xc2,0xa7,0xac,0xa2,0x9a,0xbe,0xf6,0x01,0x15,0xfe,0xd7,0xad,0xca,0xfe,0x47,0xfe,0xb4,0x67,0xfe,0x2f,0x9c,0x13,0x01,0x11,0xcf,0xa0,0xca,0x20,0x97,0x19,0x5f,0x01,0x09,0x83,0x9d,0x5a,0xa4,0x4e,0xec,0xc2,0xfe,0xe7,0x72,0x09,0x29,0xf9,0xb0,0xfe,0xf8,0xfe, -0x8b,0x00,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0x3e,0x04,0x18,0x00,0x25,0x00,0x51,0x40,0x2d,0x1e,0x0c,0x09,0x40,0x1f,0x22,0x48,0x09,0x0b,0x95,0x40,0x0c,0x18,0x24,0x0c,0x95,0x08,0x30,0x01,0x03,0x95,0x24,0x1c,0x15,0x13,0x95,0x18,0x10,0x1e,0x1b,0x0b,0x0b,0x06,0x01,0x10,0x84,0x1b,0x1b,0x21,0x83,0x06,0x06,0x27,0x01,0x15,0x2f, -0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x2b,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, -0x16,0x16,0x15,0x14,0x00,0x21,0x22,0x2f,0x42,0x55,0xcb,0x01,0x05,0xa4,0x8c,0x58,0x5e,0x60,0x9e,0xb0,0x93,0x89,0x96,0x8e,0x86,0xb0,0xc7,0xe7,0xe8,0x84,0xa0,0xfe,0xa4,0xfe,0xeb,0x61,0xfe,0x2d,0x91,0x12,0xc8,0x9e,0x7d,0x9a,0x1d,0x8c,0x12,0x1e,0x92,0x62,0x62,0x70,0x52,0x97,0x45,0xbd,0x97,0xc7,0x6d,0x07,0x1e,0xc7,0x8c,0xd9, -0xfe,0xe2,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x62,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x58,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x06,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4b,0x00,0x00, -0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x15,0x12,0x0a,0x11,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x12,0x00,0x2a,0x40,0x16,0x0c,0x09,0x0f,0x01,0x1b,0x09,0x12,0x0a,0x03,0x04,0x91,0x0f,0x04,0x00,0x7e,0x01, -0x01,0x14,0x0c,0x08,0x7e,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x12,0x21,0x32,0x12,0x11,0x05,0x27,0xa8,0xfe,0x9f,0xc0,0xfa,0xa8,0xa8,0x06,0x9e,0x01,0x3e,0xe9,0xf8,0xfe,0x29,0x05,0x0c,0x01,0xe5, -0xfe,0xe6,0xd5,0xfc,0xd5,0x05,0x9a,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x02,0x00,0x3e,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x1e,0x00,0x2a,0x00,0x62,0x40,0x36,0x14,0x00,0x1f,0x91,0x40,0x0a,0x04,0x1a,0x0a,0x91,0x08,0x30,0x25,0x91,0x1a,0x13,0x10,0x04,0x03,0x14,0x00,0x12,0x02,0x10,0x7d,0x0f,0x0f,0x0d,0x7e,0x12, -0x12,0x17,0x28,0x04,0x7d,0x8f,0x05,0x01,0x05,0x05,0x07,0x7e,0x02,0x02,0x22,0x1d,0x17,0x7d,0x28,0x28,0x2c,0x22,0x7d,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x5d,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39, -0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x56,0xcd,0x37,0xac,0x3b,0xa4,0x89,0x8a,0xa6,0x3e,0xae,0x37,0xd1,0x86,0x97,0xfe,0xc8,0xef, -0xf2,0xfe,0xd6,0x02,0x20,0x9e,0xd2,0xd8,0x98,0x9f,0xd4,0xda,0x03,0x60,0x6a,0xde,0x78,0x7a,0x70,0x7a,0x74,0x96,0x96,0x74,0x76,0x74,0x7c,0x76,0xce,0x7a,0x34,0xd6,0x8b,0xd7,0xfe,0xf4,0x01,0x01,0xd9,0x01,0x1e,0x2a,0xaf,0x95,0x95,0xb2,0xb1,0x96,0x95,0xaf,0x00,0x02,0x00,0x48,0xff,0xe8,0x04,0x42,0x05,0xec,0x00,0x1e,0x00,0x2a, -0x00,0x54,0x40,0x2f,0x15,0x00,0x1f,0x95,0x40,0x0b,0x05,0x1a,0x0b,0x95,0x08,0x30,0x25,0x95,0x1a,0x16,0x11,0x05,0x00,0x11,0x84,0x10,0x10,0x01,0x10,0x10,0x0e,0x84,0x13,0x13,0x17,0x83,0x28,0x28,0x2c,0x1d,0x05,0x84,0x06,0x06,0x08,0x84,0x03,0x03,0x22,0x83,0x1d,0x2f,0xe1,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1, -0x39,0x2f,0xf1,0xc2,0x2f,0x71,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x01,0x52,0x5f,0x6e,0x2b,0xa0,0x27,0x98,0x85,0x85,0x95,0x26,0x9f,0x2b,0xcc,0x01,0x0a,0xfe,0xd7,0xdb,0xdf,0xfe,0xe9,0x01,0xfe,0x92,0xc4,0xc8,0x8c,0x91,0xc5,0xc8,0x03,0x74,0x30,0xc6,0x7c,0x80,0x86,0x78,0x84,0x8e,0xae,0xaf,0x8d,0x84,0x78,0x86,0x80,0xf5,0x7d,0x7e,0xfe,0xdb,0xd7,0xfe,0xee,0x01,0x0b,0xda,0x01,0x26,0x36, -0xbd,0x9d,0x9c,0xc1,0xc0,0x9d,0x99,0xc1,0x00,0x01,0x00,0x21,0xff,0x0c,0x04,0x7b,0x05,0x9a,0x00,0x11,0x00,0x30,0x40,0x18,0x01,0x07,0x0d,0x91,0x06,0x12,0x0c,0x08,0x91,0x0a,0x03,0x08,0x0c,0x10,0x01,0x01,0x03,0x7e,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39, -0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x04,0x5a,0xa4,0x27,0x91,0xfc,0xd5,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x3c,0x01,0x23,0xf4,0x46,0x3c,0x72,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0xfc,0x47,0x00,0x01,0x00,0x21,0xff,0x1e,0x03,0x9e, -0x04,0x00,0x00,0x11,0x00,0x33,0x40,0x1b,0x01,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x08,0x0c,0x10,0x01,0xa0,0x03,0xb0,0x03,0x02,0x03,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xdd,0x5d,0xc6,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21, -0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x03,0x7f,0x95,0x22,0x85,0xfd,0x9a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x80,0x01,0x0c,0xe2,0x40,0x38,0x6a,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xe8,0x41,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xea,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdb, -0x01,0xc7,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x13,0x19,0x05,0x00,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0x85,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x00,0xdb,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x20,0x23,0x29,0x08,0x14,0x25,0x02,0x20,0x11, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xa3,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0xb0,0x01,0x69,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x03,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, -0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x3a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x60,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xb7,0x02,0x26,0x00,0x32, -0x00,0x00,0x01,0x07,0x05,0x55,0x00,0xaa,0x01,0x62,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x55,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x64,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, -0x0b,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xea,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x36,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, -0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x85,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x9a,0x02,0x26,0x00,0x32,0x00,0x00, -0x01,0x07,0x05,0x52,0x00,0xfe,0x01,0x65,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a,0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x35,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x63,0x52,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a, -0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x8c,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32, -0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x10,0x00,0x01,0x00,0x01,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x08,0x04,0xc2, -0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x25,0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x0e,0x09,0x0c,0x48,0x01,0x0a,0xc1,0x04,0x01,0x01,0x0d,0x00,0x0d,0xc0,0x07,0x2f,0xe1,0xc4,0x10,0xc0,0x2f,0x00,0x2f,0xfd,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, -0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x37,0xb4,0x05,0x00,0x03,0x80,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x07,0x0d,0x19,0xc1,0x13, -0x00,0x03,0x00,0x03,0x16,0x10,0xc0,0x0a,0x16,0xc0,0x0a,0x1c,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2, -0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x35,0xb2,0x00,0x80,0x01,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x40,0x10,0x00,0x80,0x02,0x02,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x01,0x23, -0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x77,0xfe,0xf9,0x7e,0xdf,0x31,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xe2,0xfe,0xb8,0x01,0x48,0xfd,0xe0,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a, -0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x17,0x14,0x15,0x14,0x15,0x0a,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x17,0xe2,0x14,0x40,0x0d,0x12,0x48,0x14,0x13,0x07,0xda,0x0d,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6, -0xfd,0xdc,0x2b,0xed,0xd6,0xd6,0x2b,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21,0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04, -0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x02,0x00,0x90,0xff,0xe8,0x03,0xb8,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x46,0xb9,0x00,0x04,0xff,0xc0,0x40,0x23,0x09,0x0c,0x48,0x04,0x04,0x02,0x0d,0x10,0x16,0x96,0x00,0x00,0x1d,0x02,0x95,0x08,0x16,0x0b,0x0f,0x1d,0x95,0x10,0x10,0x04,0x04, -0x13,0x83,0x1a,0x1a,0x22,0x16,0x0c,0x00,0x84,0x0b,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x11,0x33,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x25,0x37,0x36,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x31,0xd5,0xba,0x94,0x37,0xcb,0x5a,0xfe,0x98,0xa3,0x05,0x6a,0xd0,0x99,0xad,0xfe,0xae,0xfe,0xcb,0xfa,0x6e,0x77,0x6a,0x5a,0x7c,0x9f,0x01,0x77,0xfe,0xfb,0x7e,0xa8,0x27,0x39,0x01,0x7e,0x02,0x9a,0xa0,0xb8,0xa2,0x86,0xfe,0xe1,0x2f,0x58,0x22,0x0f,0x51,0x68,0x4c,0x5e,0xad,0x81,0x00,0x02, -0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x18,0x02,0x1b,0x95,0x05,0x16,0x01,0x15,0x0e,0x15,0x95,0x0b,0x10,0x0f,0x0f,0x11,0x0d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0x40,0x13,0x0c,0x06,0x4d,0x01,0x01,0x1f,0x18,0x08,0x0c,0x06,0x4d,0x18,0x83,0x08,0x0e,0x0c,0x06,0x4d,0x08, -0x2f,0x2b,0xe9,0x2b,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x33,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5, -0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfd,0xcf,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x16,0x03,0x15,0x01,0x15,0x95,0x0f,0x16,0x07,0x1b,0x95,0x09,0x10, -0x04,0x0f,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xec,0x40,0x15,0x0c,0x06,0x4d,0x18,0x18,0x1f,0x06,0x02,0x12,0x06,0x0c,0x06,0x4d,0x12,0x84,0x03,0x02,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0xe9,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x11, -0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x04,0x00,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f, -0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x56,0x06,0x02,0x00,0x1a,0x00,0x27,0x00,0x38,0x40,0x1e,0x10,0x01,0x13,0x1f,0x95,0x19,0x16,0x03,0x15,0x25,0x95,0x13,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x16,0x83,0x22,0x22,0x29,0x10,0x02,0x1c,0x83,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f, -0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x50,0x04,0xa6,0xfd,0xdc,0x8a,0x7e,0x84,0x88, -0x87,0xa8,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xca,0x6d,0xa5,0x7f,0x95,0xab,0x9f,0x88,0x8f,0xae,0x94,0x94,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x93,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe5,0xca,0xaa,0xc3,0xc7,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x15, -0x00,0x26,0x40,0x14,0x30,0x01,0x01,0x01,0x03,0x95,0x14,0x16,0x0b,0x09,0x95,0x0e,0x10,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5c,0x78, -0x84,0x99,0xc1,0xbd,0x9f,0x83,0x79,0x78,0x9e,0xdb,0x01,0x0f,0xfe,0xe7,0xed,0x8c,0x21,0xa5,0x54,0xdc,0xb8,0xb4,0xd4,0x54,0x9b,0x43,0xfe,0xe3,0xe5,0xfe,0xfe,0xd0,0x00,0x02,0x00,0x60,0xff,0x70,0x03,0xa0,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x57,0x40,0x1e,0x14,0x12,0x20,0x0f,0x05,0x00,0x1c,0x0a,0x03,0x16,0x96,0x25,0x20,0x96, -0x1c,0x16,0x0d,0x0f,0x95,0x0a,0x10,0x1e,0x14,0x23,0x12,0x00,0x05,0x19,0x07,0x02,0xb8,0x01,0x03,0x40,0x0c,0x03,0x07,0x0d,0x0d,0x19,0x84,0x23,0x23,0x28,0x12,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xd4,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xd6,0xed,0x2f,0x11,0x12,0x39, -0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x01,0x68,0x1c,0x06,0x8c,0x0d,0x31,0x98,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0x46, -0x8a,0xbc,0x76,0x96,0xbc,0x9a,0x7c,0x24,0x4c,0x60,0x55,0x63,0x7e,0x88,0x18,0x50,0x58,0x86,0x70,0x90,0xf2,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x9c,0x64,0xb4,0x79,0x5c,0x66,0x87,0xb4,0x30,0x37,0x2e,0x56,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x05,0xec,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x19,0x17,0x95,0x02, -0x1c,0x12,0x06,0x0f,0x24,0x95,0x09,0x16,0x1e,0x95,0x0f,0x10,0x14,0x00,0x19,0x19,0x15,0x84,0x1a,0x12,0x06,0x06,0x28,0x21,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10, -0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x41,0x42,0x92,0xa0,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xa4,0xa0,0x3c,0x35,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x48,0xcc, -0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xf9,0x86,0xc8,0x1a,0x03,0x13,0x87,0x7f,0xb1,0xe0,0xc2,0xac,0xce,0xcb,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x13,0x07,0x10,0x24,0x95,0x0a,0x16,0x05,0x15,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84, -0x1a,0x13,0x06,0x06,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22, -0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0x58,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x01,0x42,0x99,0xb7,0x12,0xfb,0xe7,0x87,0x7f,0xb1, -0xe0,0xc2,0xac,0xce,0xcb,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x18,0x00,0x4b,0xb9,0x00,0x01,0xff,0xc0,0x40,0x1f,0x0b,0x0e,0x48,0x01,0x01,0x03,0x07,0x95,0x40,0x18,0x0b,0x11,0x18,0x95,0x08,0x30,0x03,0x95,0x11,0x16,0x15,0x95,0x0b,0x10,0x0e,0x83,0x13,0x06,0x06,0x1a,0x01,0xb8,0xff,0xc0,0xb6, -0x0e,0x12,0x48,0x01,0x18,0x83,0x07,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x34,0x12,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x07,0x9a,0x9a,0xb4,0x97,0xa7,0x03, -0xfd,0x29,0xeb,0xcd,0xcd,0xf8,0xfe,0xfb,0xd8,0xc2,0x01,0xf3,0x28,0xfb,0x7a,0x8a,0x02,0x42,0xa2,0x72,0xbd,0xa8,0x56,0xe0,0x01,0x0b,0xfe,0xe3,0xfb,0xf7,0xfe,0xdf,0x02,0x7a,0x01,0x2c,0xa1,0x8b,0x00,0x02,0x00,0x50,0xff,0xe8,0x05,0x16,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x77,0x40,0x14,0x05,0x05,0x06,0x1e,0x1e,0x26,0x1f,0x04, -0x1f,0x17,0x17,0x16,0x0e,0x0e,0x0f,0x0d,0x18,0x0d,0x1d,0x02,0xb8,0x01,0x04,0x40,0x2c,0x1b,0x1e,0x05,0x1f,0x04,0x18,0x04,0x0d,0x18,0x1f,0x04,0x15,0x22,0x95,0x0a,0x16,0x12,0x40,0x09,0x0e,0x48,0x12,0x10,0x95,0x15,0x10,0x1e,0x0e,0x25,0x17,0x05,0x07,0x12,0x00,0x00,0x07,0x83,0x25,0x25,0x28,0x12,0x1f,0x83,0x0d,0x2f,0xe1,0xc6, -0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x12,0x17,0x39,0x2f,0x11,0x12,0x39,0x39,0xd6,0xed,0xc6,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x06,0x23,0x22,0x27,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x26,0x27,0x01,0x26,0x23,0x22,0x07, -0x35,0x36,0x33,0x32,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x05,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x05,0x16,0x38,0x34,0x88,0x3c,0x3e,0x23,0xfe,0xf5,0xcc,0xbe,0xd9,0x0d,0x02,0x85,0x5b,0xa9,0xa4,0x99,0x9e,0xbe,0xf0,0x86,0xc3,0x21,0x22,0x4c,0x30,0x2e,0xfd,0xfc,0xfd,0xe8,0x0a,0x8b,0x6b,0x8f,0x9c,0x02,0x98,0x1f,0x8d,0x22, -0x61,0x7f,0xf4,0xfe,0xd8,0xee,0xdc,0x01,0x60,0x7c,0x72,0x9a,0x62,0xb8,0x68,0x68,0x6a,0x22,0x84,0xfe,0xda,0x6c,0x90,0xd4,0xb8,0x56,0x00,0x01,0x00,0x60,0xff,0xe8,0x02,0xf4,0x04,0x18,0x00,0x22,0x00,0x45,0x40,0x25,0x07,0x1a,0x95,0x40,0x19,0x0d,0x02,0x19,0x95,0x0c,0x30,0x22,0x20,0x95,0x02,0x16,0x10,0x12,0x95,0x0d,0x10,0x07, -0x05,0x1a,0x1a,0x1d,0x10,0x00,0x00,0x24,0x05,0x15,0x83,0x0a,0x1d,0x83,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23, -0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x02,0xf4,0x72,0x98,0xba,0xd0,0xde,0xbb,0xc9,0xa4,0x82,0x67,0x6d,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0xfe,0xdd,0x80,0x72,0x86,0x74,0x1a,0x32,0xa1,0x87,0xcf,0x37,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4c,0x58,0x8e,0xac,0x4e,0x5c, -0x3e,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xee,0x04,0x18,0x00,0x21,0x00,0x4d,0x40,0x2a,0x1b,0x09,0x95,0x40,0x0a,0x15,0x20,0x0a,0x95,0x0c,0x30,0x70,0x01,0x01,0x01,0x03,0x95,0x20,0x16,0x12,0x10,0x95,0x15,0x10,0x1b,0x1d,0x09,0x0e,0x83,0x18,0x18,0x1d,0x09,0x09,0x00,0x1d,0x83,0x06,0x06,0x23,0x12,0x00,0x2f,0xc4,0x12,0x39, -0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x5a, -0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x50,0x79,0x8b,0xc9,0x76,0x72,0x73,0x81,0xa2,0xc1,0xb9,0xdc,0xdb,0xbb,0x8c,0x1a,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x59,0x4b,0x94,0x3c,0x98,0x2e,0x97,0x7b,0xa5,0x45,0x04,0x33,0xcb,0x88,0xaa,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x35,0x04,0x18,0x00,0x2c,0x00,0x72,0x40,0x3d,0x04,0x05,0x27,0x08, -0x2c,0x02,0x96,0x2a,0x26,0x19,0x27,0x27,0x24,0x08,0x08,0x18,0x95,0x40,0x19,0x24,0x0d,0x19,0x95,0x0c,0x30,0x70,0x10,0x01,0x10,0x12,0x95,0x0d,0x16,0x21,0x1f,0x95,0x24,0x10,0x27,0x04,0x26,0x00,0x00,0x0a,0x08,0x0a,0x18,0x18,0x15,0x0f,0x1d,0x84,0x26,0x26,0x0a,0x83,0x15,0x15,0x2e,0x21,0x0f,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, -0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x10,0xc2,0x2f,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x11,0x12,0x39,0x2f,0x12,0x39,0xd6,0xed,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, -0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x04,0x35,0x39,0x2f,0x7a,0x3d,0x54,0x54,0x5c,0xdc,0xdb,0xbb,0x8c,0x72,0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x52,0x73,0x8f,0xc9,0x76,0x72,0x73,0x81,0x01,0x1d,0x3d,0x86,0x20,0x27,0x4e,0x2a,0x2e,0x02, -0x98,0x1f,0x79,0x56,0x56,0x2a,0x04,0x34,0xca,0x88,0xaa,0x32,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x5d,0x49,0x92,0x3c,0x98,0x2e,0xdc,0x8c,0x5e,0x74,0x22,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0c,0x04,0x18,0x00,0x10,0x00,0x23,0x00,0x44,0x40,0x25,0x01,0x11,0x95,0x40,0x12,0x0c,0x06,0x12,0x95,0x0c,0x30,0x1e,0x95,0x06,0x16,0x18, -0x95,0x0c,0x10,0x01,0x03,0x11,0x11,0x21,0x1b,0x15,0x84,0x0f,0x0f,0x03,0x83,0x21,0x21,0x25,0x1b,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32, -0x16,0x15,0x14,0x05,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x3a,0xd2,0xe8,0xc2,0xee,0xfe,0xec,0x01,0x26,0xee,0xa8,0xd2,0xfe,0x24,0x44,0xf4,0x7a,0x62,0xa4,0xc2,0xc2,0xa0,0x74,0x86,0xfe,0xf6,0x02,0x1c,0x04,0x30,0xca,0x87,0xaf,0x01,0x1a,0xf0,0xfc,0x01,0x2a,0x9b,0x7b, -0xa2,0x98,0x8e,0xa0,0x43,0x55,0xd5,0xbf,0xb6,0xd2,0x60,0x4a,0xac,0x00,0x00,0x01,0xff,0x81,0xfe,0x1e,0x02,0x1c,0x04,0x00,0x00,0x14,0x00,0x4b,0x40,0x29,0x13,0x01,0x0d,0x95,0x40,0x10,0x11,0x05,0x10,0x95,0x08,0x30,0x08,0x0a,0x95,0x40,0x05,0x1c,0x11,0x0f,0x08,0x0c,0x13,0x10,0x0c,0x00,0x0e,0x02,0x0e,0x0c,0x42,0x0e,0x02,0x84, -0x0c,0x15,0x16,0x0c,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc6,0x2b,0x01,0x10,0xe2,0x12,0x39,0x39,0x18,0x10,0xc6,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x1c,0xae,0xc3, -0xad,0x48,0x35,0x3d,0x42,0xcb,0xaf,0xaf,0xa3,0xae,0x01,0xdb,0xfe,0x04,0xd6,0xeb,0x1a,0x99,0x27,0x01,0x31,0x02,0x00,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x06,0x02,0x00,0x21,0x00,0x2e,0x00,0x4a,0xb9,0x00,0x0a,0xff,0xc0,0x40,0x26,0x0b,0x0f,0x48,0x0a,0x0a,0x0c,0x95,0x07,0x1c,0x1b,0x0f,0x18,0x2c, -0x95,0x12,0x16,0x26,0x95,0x18,0x10,0x00,0x02,0x95,0x1f,0x01,0x00,0x00,0x05,0x84,0x22,0x1b,0x0f,0x0f,0x30,0x0a,0x29,0x83,0x15,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x10,0x21,0x22,0x27, -0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xfd,0xe4,0xbe,0x8e,0xad,0x9d,0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xb4,0x8a,0x48,0x2f, -0xfe,0x4b,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0xaa,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x4a,0x00,0x00, -0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xcd,0x04,0x18,0x00,0x19,0x00,0x41,0x40,0x23,0x17,0x95,0x40,0x18,0x08,0x02,0x18,0x95,0x08,0x30,0x15,0x00,0x13,0x95,0x02,0x16,0x0b,0x0d,0x95,0x08,0x10,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x84,0x15,0x15,0x1b,0x10,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x00, -0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x03,0xcd,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x38,0xf6,0x9a,0x82,0x82,0xa3,0xa9,0xd4,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f, -0x3e,0x56,0x01,0x18,0xf0,0xf1,0x01,0x37,0x30,0x9c,0x42,0xe0,0xb4,0xb8,0xd0,0x26,0x01,0x04,0x8b,0x00,0x00,0x02,0x00,0x0e,0xfe,0x52,0x03,0xc6,0x04,0x00,0x00,0x11,0x00,0x19,0x00,0x16,0x40,0x0a,0x16,0x95,0x07,0x00,0x0f,0x0e,0x0f,0x00,0x1b,0x0e,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x2f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14, -0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x01,0x33,0x09,0x02,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0xc6,0xfe,0x78,0x22,0x5e,0x7c,0x63,0x5f,0x78,0x62,0x22,0xfe,0x82,0xb2,0x01,0x26,0x01,0x2e,0xfe,0xd0,0x40,0x40,0x41,0x04,0x00,0xfc,0xa0,0x44,0xbc,0x68,0x63,0x83,0x83,0x63,0x5a,0xca,0x44,0x03,0x60,0xfd,0x42,0x02,0xbe,0xfc, -0x10,0x8b,0x49,0x63,0x63,0x40,0x00,0x02,0x00,0x0a,0xff,0xe8,0x03,0x9e,0x04,0x18,0x00,0x1b,0x00,0x23,0x00,0x2a,0x40,0x17,0x20,0x95,0x09,0x16,0x00,0x12,0x19,0x02,0x10,0x95,0x15,0x10,0x0c,0x1e,0x22,0x06,0x0e,0x04,0x06,0x12,0x00,0x25,0x12,0x2f,0x10,0xc6,0x11,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0xed,0x31,0x30, -0x01,0x26,0x23,0x22,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x17,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0x9e,0x46,0x33,0x75,0x7d,0x95,0x85,0x74,0x6f,0x7e,0x92,0x82,0x73,0x3f,0x36,0x40,0x4a,0x9e,0xa3,0xa5,0x9e,0x48,0x3e,0xfe,0x37,0x58,0x58, -0x58,0x03,0x60,0x2e,0xbf,0xef,0xca,0x88,0xa6,0xa4,0x86,0xd2,0xeb,0xbf,0x2c,0x96,0x20,0xce,0xce,0x20,0xfe,0x60,0xa3,0x97,0xac,0xac,0x92,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0x27,0x40,0x14,0x00,0x1b,0x11,0x02,0x08,0x0c,0x95,0x05,0x16,0x08,0x0f,0x11,0x84,0x02,0x10,0x10,0x13,0x09,0x84,0x08, -0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x78,0xda,0xfe,0xa8,0xa3,0xeb,0x7a,0xa6,0xa4,0xfe,0x29,0x02,0x81,0xc2,0x01,0xa1,0x02,0x77,0xfd,0xb2,0xfe,0xc0,0xbb,0x8f,0x02, -0x44,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1b,0x00,0x32,0x40,0x1a,0x16,0x00,0x19,0x09,0x15,0x04,0x95,0x19,0x10,0x10,0x12,0x95,0x0d,0x01,0x10,0x10,0x16,0x00,0x84,0x01,0x01,0x1d,0x16,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x39, -0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11, -0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x03,0xf8,0x06,0x02,0x00,0x24,0x00,0x40,0x40,0x22,0x06,0x08,0x95,0x03,0x1c,0x1f,0x22,0x12,0x15,0x0d,0x95,0x22,0x10,0x19,0x1b,0x95,0x16,0x01,0x19,0x19,0x1f,0x00,0x06,0x06,0x11,0x00,0x84,0x0a,0x0a,0x26,0x1f,0x11,0x84,0x12,0x2f,0xe1,0x32,0x12, -0x39,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xbf, -0xad,0x4c,0x36,0x3e,0x44,0xc8,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x04,0xe6,0xf8,0x1a,0x99,0x27,0x01,0x3e,0x02,0x66,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x0e,0x05,0xd9, -0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x2f,0x16,0x0d,0x10,0x95,0x40,0x13,0x14,0x0f,0x13,0x95,0x0c,0x30,0x0f,0x15,0x06,0x63,0x40,0x00,0x14,0x0f,0x09,0x62,0x03,0x0f,0x0e,0x03,0x62,0xff,0x30,0x0c,0x0e,0x0e,0x0f,0x11,0x42,0x11,0x16,0x13,0x0e,0x84,0x0f,0x18,0x19,0x0f,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x2b, -0x01,0x10,0xe2,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0x10,0x2c,0x40,0x40,0x2c,0x2e,0x3d,0x3d,0xd0,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0, -0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfc,0xd7,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x00,0x01,0x00,0x94,0xff,0xea,0x02,0x2f,0x04,0x00,0x00,0x0b,0x00,0x19,0x40,0x0c,0x0b,0x09,0x95,0x02,0x16,0x05,0x0f,0x0b,0x0b,0x06,0x84,0x05,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23, -0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x2f,0x39,0x5c,0xfe,0xfa,0xa4,0x90,0x3c,0x2b,0x08,0x1e,0x01,0x28,0x02,0xee,0xfd,0x2f,0xbb,0x20,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x44,0x04,0x00,0x00,0x0b,0x00,0x33,0x40,0x1b,0x0a,0x02,0x95,0x01,0x15,0x09,0x05,0x95,0x06,0x0f,0x08,0x05,0x02,0x0b,0x0b,0x0a,0x02,0x40, -0x0a,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x1a,0x18,0xcd,0x10,0xc1,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x02,0x44,0xfe,0x08,0xaa,0xaa,0x01,0xf8,0xaa,0xaa,0x8c,0x02,0xe8,0x8c,0x8c,0xfd,0x18,0x00,0x01,0xff,0xec, -0x00,0x00,0x02,0x52,0x05,0xec,0x00,0x17,0x00,0x5c,0x40,0x33,0x13,0x10,0x15,0x0e,0x07,0x04,0x09,0x15,0x95,0x02,0x0c,0x91,0x0b,0x09,0x00,0x91,0x17,0x09,0x95,0x40,0x0e,0x11,0x06,0x0e,0x95,0x08,0x30,0x06,0x15,0x11,0x00,0x00,0x00,0x01,0x0e,0x03,0x00,0x00,0x05,0x0b,0x12,0x11,0x05,0x84,0x06,0x18,0x19,0x06,0x84,0x08,0x30,0x2b, -0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc2,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xd4,0xed,0x10,0xd6,0xed,0xd4,0xed,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x02,0x52, -0x44,0x58,0x23,0x29,0xa4,0x2e,0x17,0x4d,0x48,0x46,0x55,0x1d,0x22,0xa4,0x2e,0x24,0x4e,0x48,0x02,0xd9,0x39,0x0a,0xfd,0x56,0x02,0xd9,0x0d,0x46,0x95,0x3b,0x08,0x02,0x84,0xfd,0x4c,0x0d,0x45,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x02,0xee,0x05,0xec,0x00,0x11,0x00,0x19,0x00,0x4a,0x40,0x29,0x0d,0x12,0x15,0x96,0x40,0x0b,0x12,0x80, -0x12,0x04,0x01,0x95,0x40,0x10,0x0e,0x03,0x10,0x95,0x08,0x30,0x03,0x15,0x0e,0x00,0x00,0x00,0x0d,0x10,0x12,0x03,0x02,0x84,0x0f,0x03,0x01,0x03,0x03,0x1b,0x17,0x84,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xf1,0x17,0x39,0xc2,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x1a,0x10,0xdc,0x1a,0xed,0x12,0x39,0x31,0x30, -0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x21,0x21,0x26,0x26,0x23,0x22,0x15,0x14,0x33,0x02,0xee,0xff,0x00,0xa4,0x42,0x88,0x94,0x75,0x59,0x56,0x3a,0xa4,0x01,0x00,0xfe,0x5c,0x04,0x49,0x32,0x4c,0x8b,0x02,0x87,0xfd,0x79,0x02,0x87,0x74,0x67,0x55,0x78,0x3b,0x01,0xf8,0xfd,0x26,0x44, -0x5c,0x4a,0x56,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0x5a,0x05,0xec,0x00,0x0c,0x00,0x24,0x40,0x13,0x0c,0x0a,0x95,0x40,0x02,0x1c,0x06,0x00,0x0c,0x0c,0x08,0x84,0x05,0x0d,0x0e,0x05,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14, -0x33,0x32,0x37,0x02,0x5a,0x40,0x43,0x93,0x9e,0xa4,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x06,0x80,0xf9,0x86,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x21,0x04,0xb2,0x05,0xec,0x00,0x1c,0x00,0x57,0x40,0x30,0x0b,0x0a,0x96,0x40,0x15,0x12,0x1b,0x15,0x96,0x08,0x30,0x10,0x01,0x01,0x01,0x03,0x95,0x1b,0x1c,0x0f,0x15,0x14,0x0c,0x95, -0x12,0x0f,0x10,0x00,0x15,0x0b,0x0b,0x06,0x01,0x01,0x0e,0x0f,0x0c,0x14,0x14,0x18,0x83,0x06,0x06,0x1e,0x12,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x11,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x39,0x3f,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x27,0xa5,0xb1,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x80,0xfd,0xbe,0xa4,0xa4,0x03,0x2d,0xfe,0x77,0xd8,0xec,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x96,0xa5,0x33,0x02,0x14,0xfc,0x8c, -0x05,0xec,0xfe,0x14,0x33,0xfd,0xe1,0x1a,0xeb,0xb3,0xcc,0xfe,0xf7,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x45,0x40,0x25,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16, -0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x2f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11, -0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x46, -0x40,0x26,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1b,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x1a,0xed,0x39, -0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xfe,0x29,0x02, -0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x06,0x54,0x04,0x18,0x00,0x28,0x00,0x50,0x40,0x2d,0x26,0x28,0x95,0x23,0x1c,0x05,0x15,0x16,0x1b,0x04,0x0d,0x95,0x40,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x12,0x26,0x26, -0x09,0x20,0x84,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x84,0x12,0x1b,0x09,0x84,0x0a,0x29,0x2a,0x0a,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x12,0x39,0x18,0x2f,0x00,0x2f,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x3f,0xfd,0xc6,0x31,0x30,0x00,0x11,0x11,0x34,0x26,0x23,0x22,0x06, -0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x05,0xb0,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0xbf,0xad,0x4c,0x36,0x3e,0x44,0xfe,0xaa,0x01, -0x3e,0x02,0x64,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0xfd,0x85,0xe6,0xf8,0x1a,0x99,0x27,0x00,0x00,0x01,0xff,0x96,0xfe,0x1e,0x03,0xf8,0x04,0x18,0x00,0x1a,0x00,0x35,0x40,0x1c,0x15,0x00,0x18,0x0e,0x10,0x95,0x0b,0x1c,0x00,0x15,0x13,0x0f,0x04,0x95, -0x18,0x10,0x00,0x84,0x01,0x01,0x1c,0x12,0x15,0x08,0x0e,0x08,0x84,0x12,0x2f,0xe1,0xc6,0x11,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11, -0x03,0xf8,0xa4,0xec,0x7b,0xa3,0xb3,0x8b,0x48,0x2e,0x36,0x36,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0x24,0x99,0xb5,0x13,0x93,0x1a,0xcd,0x04,0x89,0xaa,0xc2,0xfe,0x5a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x05,0x08,0x04,0x18,0x00,0x1a,0x00,0x31,0x40,0x1a,0x1a,0x18,0x95,0x02,0x1c,0x10,0x13,0x0d, -0x15,0x0e,0x0f,0x08,0x95,0x13,0x10,0x1a,0x1a,0x16,0x84,0x05,0x05,0x1c,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x14,0x33, -0x32,0x37,0x05,0x08,0x40,0x43,0x93,0x9e,0xec,0x7b,0xa3,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x02,0xdc,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0xfd,0x00,0xc8,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x0a,0x04,0x00,0x00,0x13,0x00,0x26,0x40,0x14,0x01,0x04,0x0f,0x13, -0x04,0x0b,0x09,0x15,0x0b,0x0f,0x01,0x13,0x84,0x12,0x12,0x15,0x0b,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x04,0x0a,0x9c,0xfe,0x06,0x24,0x0c,0x04,0x04,0x9e,0xa4,0x01, -0xf2,0x20,0x10,0x04,0x06,0xa0,0x02,0xd1,0x33,0x18,0x35,0x4d,0xfd,0x66,0x04,0x00,0xfd,0x40,0x2d,0x21,0x33,0x3f,0x02,0x9c,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x33,0x40,0x1c,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x1b,0x30,0x16,0x95,0x00,0x16,0x0e,0x95,0x06,0x10,0x09,0x83, -0x0c,0x12,0x12,0x19,0x11,0x13,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01, -0xfe,0xeb,0x69,0x1e,0xfe,0xd8,0x8d,0xb1,0x12,0x02,0x98,0xfd,0x66,0x0a,0xb4,0x94,0x01,0x34,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x68,0x01,0x3e,0xa6,0x98,0x8c,0x9e,0xb4,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x05,0x60,0x04,0x16,0x00,0x13,0x00,0x1e,0x00,0x47,0x40,0x28,0x10,0x95,0x40,0x0f, -0x0b,0x00,0x0f,0x95,0x1b,0x30,0x1d,0x96,0x02,0x16,0x13,0x95,0x00,0x15,0x0c,0x95,0x0b,0x0f,0x17,0x96,0x08,0x10,0x0e,0x12,0x84,0x14,0x14,0x05,0x0c,0x10,0x00,0x00,0x20,0x1a,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, -0x30,0x21,0x21,0x07,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x21,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0x60,0xfd,0xd3,0xd7,0xeb,0xfe,0xef,0x01,0x1a,0xee,0x31,0x9a,0x02,0x15,0xfe,0x76,0x01,0x6f,0xfe,0x91,0x01,0xa2,0xfd,0xbc,0x60,0x52,0x9f,0xc1,0xba,0xa2,0x46, -0x16,0x01,0x21,0xeb,0xf3,0x01,0x2d,0x16,0x8c,0xfe,0xd6,0x8c,0xfe,0xce,0x02,0xed,0x19,0xe1,0xb3,0xb4,0xdc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x64,0x04,0x18,0x00,0x11,0x00,0x22,0x00,0x43,0x40,0x25,0x01,0x03,0x12,0x12,0x1b,0x16,0x0f,0x20,0x95,0x03,0x16,0x1b,0x95,0x40,0x09,0x10,0x18,0x84,0x0c,0x0e,0x13,0x12,0x06,0x42, -0x00,0x13,0x84,0x12,0x23,0x24,0x12,0x84,0x08,0x30,0x1e,0x84,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x39,0x11,0x39,0x2f,0x12,0x39,0x31,0x30,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x06,0x23,0x22,0x26,0x03,0x33,0x15,0x10,0x33, -0x32,0x11,0x34,0x26,0x23,0x22,0x00,0x15,0x10,0x33,0x32,0x11,0x02,0xdf,0x06,0x57,0xcc,0x9e,0xb8,0x01,0x65,0x01,0x2d,0x01,0x1c,0x01,0x56,0xc8,0xb0,0x6a,0x7b,0x75,0x9f,0xb9,0xd6,0xfa,0xe0,0xde,0xfe,0xfc,0xcf,0xbf,0xb2,0xca,0xeb,0xd5,0x01,0x17,0x01,0x59,0xfe,0xb6,0xfe,0xf0,0xe1,0xf5,0x5c,0x01,0xc2,0x5a,0xfe,0xc6,0x01,0x44, -0xdf,0xf9,0xfe,0xfe,0xd8,0xfe,0xbe,0x01,0x3a,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x48,0x40,0x2a,0x02,0x1b,0x13,0x00,0x19,0x95,0x03,0x16,0x12,0x0c,0x1a,0x95,0x40,0x09,0x10,0x0a,0x00,0x16,0x83,0x0f,0x0e,0x00,0x06,0x03,0x42,0x09,0x0c,0x13,0x19,0x04,0x00,0x84,0x03,0x20, -0x21,0x03,0x84,0x08,0x30,0x1d,0x83,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x17,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06, -0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17,0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12, -0xd2,0xac,0xa6,0xd3,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x04,0x00,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x0f,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35, -0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x02,0x0a,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x05,0xec,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x00,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f, -0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x03,0xf6,0x00,0x01,0x00,0x0c,0xfe,0x1e,0x03,0x33,0x04,0x00,0x00,0x18,0x00,0x2f,0x40,0x18,0x18,0x16,0x95,0x02, -0x1c,0x07,0x09,0x12,0x0c,0x0e,0x95,0x09,0x16,0x12,0x0f,0x18,0x18,0x06,0x13,0x84,0x12,0x12,0x1a,0x0c,0x2f,0x12,0x39,0x2f,0xf1,0x33,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33, -0x32,0x37,0x03,0x33,0x40,0x43,0x92,0x9f,0x04,0x52,0xbb,0x40,0x22,0x2c,0x51,0x68,0x8e,0xa4,0x9f,0x3d,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x58,0xd6,0x0e,0xaa,0x21,0xc7,0xaa,0x02,0x0a,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x0f,0x00,0x23,0x40,0x11,0x07,0x1b,0x08,0x0f,0x00,0x00,0x0a,0x02, -0x0d,0x10,0x00,0x00,0x11,0x0a,0x06,0x84,0x07,0x2f,0xe9,0x32,0x11,0x39,0x2f,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa4,0xa4,0x04,0x4a,0xc2,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfc,0x1f,0x05,0xd7,0xd3, -0xe5,0x0e,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0xbc,0x04,0x12,0x00,0x19,0x00,0x2c,0x40,0x16,0x14,0x1a,0x17,0x0a,0x08,0x95,0x0d,0x1c,0x11,0x0f,0x00,0x02,0x17,0x10,0x0a,0x00,0x00,0x1b,0x13,0x06,0x84,0x10,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xc6,0x00,0x3f,0xdd,0xc6,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22, -0x06,0x15,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa0,0x3c,0x34,0x40,0x43,0x93,0x9e,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0x68,0xc8,0x1a,0x8a,0x1c,0xaf,0x9f,0x04,0x94,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01, -0x00,0x90,0x00,0x00,0x02,0xa2,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x06,0x15,0x00,0x02,0x95,0x0a,0x10,0x00,0x00,0x0e,0x05,0x84,0x06,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0xa2,0x46,0x54,0xd7,0xa1,0xce,0xaa,0x56,0x44,0x03,0x68, -0x26,0xfe,0xed,0xfd,0x85,0x02,0x7b,0xbd,0xe0,0x1e,0x00,0x01,0x00,0x0c,0xfe,0x29,0x02,0x1e,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x00,0x1b,0x06,0x04,0x95,0x09,0x10,0x00,0x84,0x01,0x01,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, -0x02,0x1e,0xa1,0xd7,0x4c,0x4e,0x50,0x54,0xb0,0xbe,0xfe,0x29,0x04,0x4e,0x01,0x17,0x28,0x92,0x20,0xd2,0xc5,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3e,0x40,0x20,0x0f,0x05,0x95,0x13,0x13,0x07,0x08,0x01,0x15,0x07,0x15,0x12,0x95,0x08,0x0f,0x03,0x10,0x10,0x0f,0x06,0x01,0x00,0x00,0x0c, -0x84,0x16,0x16,0x1a,0x13,0x06,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x83,0xb8, -0x75,0x3e,0x78,0x56,0xa4,0x01,0x52,0xa5,0xb7,0xea,0x53,0x39,0xfe,0x54,0x9a,0xcc,0xc4,0x01,0x14,0x92,0xfe,0x5a,0x04,0x00,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x02,0x3c,0xfe,0xbd,0xa8,0x9b,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x43,0x40,0x24,0x04,0x13,0x95,0x40,0x0d,0x0b,0x0a,0x0d, -0x95,0x08,0x30,0x14,0x95,0x0a,0x15,0x00,0x0f,0x0b,0x0f,0x10,0x02,0x03,0x02,0x0d,0x12,0x00,0x00,0x06,0x84,0x17,0x17,0x1c,0x0d,0x14,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x03,0x06,0x07,0x15,0x16,0x15, -0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x33,0x32,0x36,0x37,0x13,0x01,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x83,0x8d,0x33,0x55,0xe6,0xc7,0xae,0xfe,0xc7,0xa4,0x56,0x41,0x53,0x22,0x79,0xfe,0x7b,0x95,0xd1,0x6e,0x5e,0x04,0x00,0xfe,0xcb,0x71,0x29,0x04,0x2b,0xd7,0x88,0xa3,0x04,0x00,0xfe,0x5a,0x41,0x51,0x01,0x14,0xfd,0xcf,0xfe, -0xbd,0x9d,0x4f,0x57,0x00,0x01,0x00,0x68,0xfe,0xb6,0x02,0xdb,0x04,0x18,0x00,0x2b,0x00,0x5d,0x40,0x0e,0x05,0x03,0x00,0x08,0x01,0x08,0x10,0x16,0x21,0x27,0x04,0x2a,0x19,0x0c,0xb8,0xff,0xc0,0x40,0x13,0x0b,0x0e,0x48,0x0c,0x0c,0x0e,0x95,0x2a,0x16,0x1c,0x1c,0x1e,0x95,0x19,0x10,0x05,0x05,0x27,0x00,0xb8,0x01,0x03,0x40,0x0d,0x0c, -0x1c,0x1c,0x27,0x83,0x10,0x10,0x2d,0x0c,0x21,0x83,0x16,0x0c,0x2f,0xd6,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x2f,0x5d,0xdd,0xc6,0x31,0x30,0x17,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35, -0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0xee,0x95,0x3b,0x3c,0x41,0x49,0x7b,0x8d,0x82,0x88,0xc3,0x56,0x7d,0x93,0x65,0xca,0x9f,0x7a,0x61,0x66,0x82,0x52,0x62,0x45,0x7e,0x94,0x72,0xc2,0xa9,0x41,0x02,0x27,0xaa,0x23,0x7b,0x1f,0x8f, -0x83,0x01,0x0d,0x63,0x90,0x3c,0x4e,0x36,0x41,0x89,0x64,0x80,0xa8,0x2e,0xa6,0x4a,0x50,0x40,0x3e,0x4b,0x35,0x40,0x8c,0x62,0x82,0xa8,0x00,0x01,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x00,0x15,0x00,0x2d,0x40,0x18,0x0b,0x0d,0x95,0x08,0x1c,0x00,0x02,0x95,0x40,0x13,0x01,0x00,0x00,0x05,0x0a,0x05,0x84,0x0f,0x16,0x17,0x0f,0x84, -0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc4,0x10,0xc2,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0xb9,0x8f,0x4c,0x2a,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfa, -0xe7,0xa2,0xbf,0x13,0x93,0x1a,0xdf,0x05,0x17,0xa4,0xbe,0x12,0x00,0x01,0xff,0x9e,0xfe,0x1e,0x02,0x72,0x06,0x02,0x00,0x1d,0x00,0x53,0x40,0x2d,0x08,0x05,0x14,0x95,0x40,0x17,0x1b,0x0c,0x17,0x95,0x08,0x30,0x0f,0x11,0x95,0x0c,0x1c,0x00,0x02,0x95,0x40,0x1b,0x01,0x15,0x15,0x13,0x0f,0x06,0x06,0x09,0x00,0x00,0x09,0x0f,0x17,0x05, -0x09,0x84,0x13,0x1e,0x1f,0x13,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc0,0x2f,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, -0x35,0x11,0x23,0x35,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x72,0x32,0x3a,0xac,0xb0,0xb0,0xb7,0x8f,0x4b,0x2b,0x32,0x3a,0xac,0xb0,0xb0,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfd,0xce,0x8b,0xfd,0xa4,0xa4,0xbd,0x13,0x93,0x1a,0xdf,0x02,0x52,0x8b,0x02,0x3a,0xa2,0xc0,0x12,0x00,0x01,0xff,0xa6,0xfe,0x1e,0x02,0x48,0x04,0x18, -0x00,0x14,0x00,0x22,0x40,0x11,0x14,0x12,0x95,0x02,0x1c,0x09,0x07,0x95,0x0c,0x10,0x14,0x14,0x10,0x09,0x10,0x84,0x04,0x2f,0xe1,0xc6,0x10,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x02,0x48,0x3a,0x5c,0xfe, -0xfa,0x9a,0x3a,0x32,0x40,0x3d,0x90,0x9d,0x92,0x38,0x2e,0xfe,0x3c,0x1e,0x01,0x28,0x03,0x82,0xc5,0x19,0x8c,0x18,0xae,0x9c,0xfc,0x95,0xbb,0x22,0x00,0x02,0xff,0x44,0xfe,0x1e,0x02,0x8e,0x06,0x02,0x00,0x1b,0x00,0x23,0x00,0x68,0xb7,0x15,0x05,0x07,0x13,0x1c,0x0a,0x1e,0x07,0xb8,0xff,0xc0,0x40,0x30,0x13,0x16,0x48,0x07,0x08,0x08, -0x22,0x1e,0x96,0x0f,0x13,0x1f,0x13,0x02,0x09,0x03,0x13,0x22,0x96,0x0d,0x1c,0x00,0x02,0x95,0x40,0x19,0x01,0x1c,0x15,0x0a,0x05,0x10,0x07,0x00,0x00,0x05,0x20,0x84,0x10,0x05,0x84,0x15,0x24,0x25,0x15,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x10,0xc2,0x2f,0xc6,0x11,0x12,0x39,0x11,0x33,0x00,0x3f,0x1a,0xfd,0xc6,0x3f, -0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x11,0x39,0x2f,0xcd,0x2b,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x16,0x17,0x15,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x02,0x8e,0x32,0x3e,0xaa,0x7a,0x74,0x7a, -0x80,0x10,0xa3,0x82,0x69,0x86,0xb4,0x91,0x27,0x21,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0x23,0x25,0xae,0x63,0x8e,0x05,0x5c,0x1b,0xdf,0xfb,0x2a,0x2c,0x54,0xa6,0x68,0x34,0x81,0x99,0x79,0x5d,0x6d,0x91,0x04,0x04,0xb2,0xa2,0xc0,0x12,0xf9,0x78,0x06,0x70,0x5a,0x00,0x00,0x01,0x00,0x38,0xfe,0xd1,0x02,0x8e,0x04,0x16,0x00,0x14,0x00,0x30, -0x40,0x18,0x03,0x04,0x07,0x04,0x13,0x95,0x01,0x15,0x0d,0x0b,0x95,0x10,0x10,0x14,0x14,0x04,0x01,0x13,0x84,0x07,0x07,0x16,0x06,0x0d,0x2f,0x33,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc1,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x31,0x30,0x21,0x23,0x15,0x07,0x11,0x21,0x35,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36, -0x33,0x20,0x11,0x11,0x33,0x02,0x8e,0xb1,0xa1,0xfe,0xfc,0x01,0x04,0x48,0x52,0x3e,0x2c,0x39,0x60,0x01,0x0c,0xb1,0xfa,0x35,0x01,0x2f,0x8c,0x02,0x41,0x67,0x58,0x22,0x8c,0x20,0xfe,0xd4,0xfd,0xa2,0x00,0x01,0x00,0x2b,0xfe,0x1e,0x02,0x81,0x05,0x2f,0x00,0x14,0x00,0x2e,0x40,0x17,0x14,0x12,0x95,0x02,0x1c,0x0a,0x0e,0x0b,0x06,0x95, -0x07,0x0f,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x84,0x04,0x2f,0xe9,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x00,0x3f,0xed,0x33,0x32,0xc4,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4, -0x01,0x02,0xfe,0xfe,0x46,0x51,0x3b,0x30,0xfe,0x40,0x22,0x01,0x2e,0x04,0x28,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfb,0xf4,0x67,0x57,0x23,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1d,0x00,0x4c,0x40,0x2b,0x01,0x10,0x14,0x18,0x04,0x0a,0x95,0x40,0x0d,0x0e,0x07,0x0d,0x95,0x08,0x30,0x13,0x04,0x0e,0x1b,0x95, -0x07,0x16,0x02,0x15,0x0e,0x0f,0x00,0x01,0x01,0x04,0x17,0x03,0x13,0x84,0x12,0x12,0x1f,0x0c,0x18,0x0a,0x0f,0x84,0x0e,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xe1,0x17,0x39,0x10,0xcd,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11, -0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x36,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe,0xc4,0xfd,0xf4,0xfa,0x78,0x9a,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x01,0x9a,0xfe,0x66,0xb4,0x29,0x25, -0xfe,0xbc,0xb0,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x04,0x00,0x00,0x1b,0x00,0x38,0x40,0x1e,0x09,0x95,0x17,0x16,0x04,0x0e,0x11,0x03,0x10,0x0f,0x01,0x95,0x02,0x0f,0x12,0x0e,0x11,0x14,0x84,0x0c,0x0c,0x1d,0x1a,0x00,0x04,0x04,0x01,0x06,0x84,0x1a,0x2f,0xf1,0x33,0xc2,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x32,0xc6,0x32, -0x00,0x3f,0xed,0x3f,0x17,0x32,0x3f,0xed,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x27,0x35,0x21,0x15,0x23,0x16,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x01,0x1c,0xbc,0x01,0x7f,0xdb,0xbd,0xa1,0xa6,0xb6,0xda,0x01,0x7e,0xb8,0xb8,0xfe,0xec,0xf2,0xed,0xfe,0xf1,0x03,0x74,0x8c,0x8e,0x64, -0xfe,0xe6,0xaf,0xd3,0xcc,0xb6,0x01,0x1a,0x64,0x8e,0x8c,0x89,0xfe,0xfb,0xe3,0xfe,0xe5,0x01,0x16,0xe1,0x01,0x07,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0x16,0x04,0x18,0x00,0x17,0x00,0x2a,0x40,0x16,0x04,0x95,0x15,0x16,0x00,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x0c,0x0c,0x01,0x12,0x83,0x07,0x07,0x19,0x01,0x84,0x00,0x2f,0xe1,0x12,0x39, -0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x20,0x11,0x90,0xa3,0x01,0x0b,0x93,0x9f,0x60,0x56,0x3b,0x35,0x3e,0x4f,0x96,0xa9,0xff,0x00,0xe3,0xfe,0x5d,0x04,0x00,0xfd,0xb4,0xfe,0xbe,0xdb, -0xc1,0xba,0xc8,0x1c,0x8a,0x1a,0xfe,0xe7,0xeb,0xfd,0xfe,0xd1,0x01,0xbe,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc8,0x04,0x00,0x00,0x0b,0x00,0x1d,0x40,0x0d,0x00,0x05,0x0a,0x09,0x15,0x0a,0x0f,0x01,0x00,0x00,0x0d,0x08,0x09,0x2f,0x33,0x11,0x33,0x2f,0x32,0x00,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06, -0x07,0x01,0x23,0x01,0x33,0x03,0xc8,0xb4,0xfe,0xfc,0x1c,0x06,0x04,0x09,0x1b,0xfe,0xf2,0xac,0x01,0x96,0xa4,0x02,0xe8,0x51,0x3e,0x43,0x48,0xfd,0x14,0x04,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0x3c,0x40,0x20,0x00,0x04,0x09,0x0c,0x16,0x1a,0x06,0x12,0x11,0x15,0x12,0x0f,0x1b,0x1a,0x04,0x09, -0x08,0x16,0x13,0x12,0x0c,0x16,0x04,0x0c,0x03,0x11,0x01,0x00,0x00,0x1d,0x10,0x11,0x2f,0x33,0x11,0x33,0x2f,0x32,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16, -0x17,0x33,0x36,0x37,0x13,0x33,0x05,0xb0,0xac,0xd3,0x0b,0x03,0x09,0x02,0x10,0xec,0x95,0xd5,0x0a,0x04,0x08,0x02,0x0e,0xd2,0xa2,0x01,0x36,0xa8,0xd2,0x0c,0x05,0x04,0x03,0x12,0xe5,0xa4,0x03,0x02,0x28,0x34,0x2c,0x32,0xfd,0x00,0x03,0x04,0x24,0x38,0x27,0x35,0xfc,0xfc,0x04,0x00,0xfd,0x23,0x2b,0x34,0x24,0x39,0x02,0xdf,0x00,0x01, -0x00,0x0c,0x00,0x00,0x03,0xd1,0x05,0xec,0x00,0x14,0x00,0x2c,0x40,0x17,0x00,0x15,0x09,0x15,0x04,0x0a,0x14,0x0f,0x0f,0x0f,0x11,0x95,0x0c,0x00,0x0f,0x0a,0x0f,0x14,0x03,0x09,0x00,0x16,0x09,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x33,0x33,0x3f,0x3f,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07, -0x01,0x23,0x01,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x03,0xd1,0xb5,0xfe,0xea,0x02,0x10,0x06,0x06,0x11,0xfe,0xdf,0xaa,0x01,0xdc,0x7e,0xe4,0x3d,0x2b,0x34,0x2a,0x7f,0x3f,0x54,0x03,0x14,0x07,0x47,0x18,0x34,0xfc,0xea,0x04,0xae,0x01,0x3e,0x0d,0x93,0x12,0x98,0xc8,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0x4c,0x04,0x00, -0x00,0x0d,0x00,0x30,0x40,0x1a,0x00,0x01,0x04,0x09,0x04,0x05,0x03,0x15,0x05,0x0f,0x09,0x01,0x00,0x04,0x40,0x05,0x05,0x01,0x84,0x04,0x0e,0x0f,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc1,0x18,0x2f,0x1a,0x10,0xcd,0x12,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x17,0x33,0x36, -0x37,0x13,0x03,0x4c,0xfe,0xb0,0xa4,0xfe,0xb2,0xb0,0xb8,0x29,0x11,0x04,0x18,0x20,0xbc,0x04,0x00,0xfd,0x77,0xfe,0x89,0x01,0x77,0x02,0x89,0xfe,0x7f,0x57,0x2e,0x46,0x3f,0x01,0x81,0x00,0x00,0x01,0x00,0x21,0xfe,0xfa,0x03,0xfe,0x04,0x00,0x00,0x16,0x00,0x36,0x40,0x0f,0x16,0x14,0x02,0x09,0x0f,0x95,0x08,0x15,0x0e,0x0a,0x95,0x0c, -0x0f,0x16,0x05,0xb8,0x01,0x03,0x40,0x09,0x12,0x0a,0x0e,0x10,0x10,0x18,0x0b,0x0f,0x09,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xc6,0x32,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xdd,0xc6,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x03, -0xfe,0x34,0x41,0x58,0x6b,0x09,0xfd,0x52,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x02,0x58,0x22,0x5a,0x2c,0x30,0xee,0x18,0x6f,0x51,0x22,0x24,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x78,0x3d,0x69,0x1b,0x00,0x00,0x02,0x00,0x21,0xff,0x81,0x04,0x25,0x04,0x00,0x00,0x17,0x00,0x1e,0x00,0x7d,0x40,0x32,0x07,0x28,0x09,0x0d,0x48,0x04, -0x1e,0x14,0x1e,0x02,0x34,0x0d,0x44,0x0d,0x02,0x06,0x0d,0x16,0x0d,0x26,0x0d,0x03,0x1d,0x96,0x40,0x11,0x0d,0x80,0x02,0x00,0x18,0x00,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x02,0xb8,0x01,0x03,0x40,0x0b,0x0f,0x03,0x01,0x03,0x03,0x14,0x0d,0x08,0x0c,0x0c,0x14,0xb8,0x01,0x03,0xb5, -0x1b,0x1b,0x20,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x39,0x39,0x10,0xce,0x1a,0x10,0xdc,0x1a,0xed,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x00,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x01,0x21,0x35, -0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x35,0x34,0x23,0x22,0x02,0x06,0x0f,0x03,0x8e,0x04,0x0d,0xfe,0xaa,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x90,0x3d,0xca,0x78,0x76,0x8e,0xac,0x9c,0xaa,0xac,0xb7,0x78,0x9a,0x46,0x39,0x48,0x37,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x8f,0x9f,0x78, -0x5c,0x6a,0x7c,0x8c,0x5a,0x54,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x0b,0x0a,0x96,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x95,0x17,0x1c,0x10,0x0c,0x95,0x0e,0x0f,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x83,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1, -0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe, -0x77,0xda,0xea,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xea,0xb4,0xcc,0xfe,0xf7,0x00,0x02,0xff,0xea,0xfe,0x21,0x03,0x8c,0x04,0x00,0x00,0x20,0x00,0x29,0x00,0xa0,0xb5,0x19,0x20,0x0b,0x01,0x4d,0x14,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x01,0x4d,0x02,0x00,0x23,0x1e,0x0c, -0x0a,0x20,0xb8,0xff,0xc0,0x40,0x47,0x12,0x16,0x48,0x20,0x00,0x04,0x23,0x95,0x0f,0x0a,0x1f,0x0a,0x02,0x09,0x03,0x0a,0x0a,0x04,0x13,0x12,0x96,0x40,0x19,0x40,0x09,0x0c,0x48,0x19,0x16,0x04,0x19,0x96,0x09,0x30,0x28,0x95,0x04,0x1c,0x18,0x14,0x95,0x16,0x0f,0x19,0x13,0x13,0x0e,0x07,0x14,0x18,0x18,0x1c,0x21,0x0c,0x0e,0x26,0x1e, -0x02,0x1c,0x07,0x20,0x20,0x1c,0x83,0x0e,0x0e,0x2b,0x15,0x26,0x84,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x2b,0x1a,0xed,0x39,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xed,0x10,0xd4,0xcd, -0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x2b,0x2b,0x01,0x26,0x27,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x07,0x16,0x17,0x25,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x03,0x8c,0x55,0x64,0xa6,0xfe,0xfe,0x94,0xad,0xb0, -0x8b,0xb3,0xc8,0x20,0xe1,0xcb,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe,0x77,0xd6,0xee,0x43,0x3e,0x29,0xfe,0xc2,0xa8,0x81,0x4d,0x59,0xb4,0xab,0xfe,0x21,0x4f,0x46,0x95,0x7c,0x67,0x64,0x82,0x76,0x3e,0x46,0x92,0xa3,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xe7,0xb1,0x75,0x6b,0x2e,0x21,0x39,0x5c,0x32,0x28,0x5e,0x00,0x00,0x01, -0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x19,0x00,0x2a,0x40,0x15,0x13,0x08,0x10,0x01,0x15,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34, -0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x01,0x89,0xa3,0x4c,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x3f,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf, -0x06,0x02,0x00,0x19,0x00,0x2e,0x40,0x18,0x14,0x05,0x17,0x0d,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x17,0x01,0x0c,0x84,0x0d,0x0d,0x14,0x00,0x00,0x1b,0x05,0x83,0x14,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15, -0x11,0x23,0x11,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x70,0x48,0xa4,0x39,0x5c,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x73,0xa2,0x84,0xfe,0x12,0x01,0xee,0x5f,0x82,0x5c,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x01,0x00,0x00,0xff,0xea, -0x02,0xcb,0x05,0xec,0x00,0x19,0x00,0x30,0x40,0x19,0x15,0x06,0x18,0x0d,0x40,0x01,0x01,0x01,0x03,0x95,0x18,0x16,0x0d,0x00,0x0e,0x84,0x0d,0x0d,0x01,0x15,0x83,0x06,0x06,0x1b,0x01,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x35,0x35,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x27,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x86,0x94,0x7a,0x91,0x3c,0x68,0x6f,0x4a,0xa4,0x3e,0x58,0x7a,0x4f,0xef,0xc2,0x93,0x27,0x9b,0x4e,0x76,0x5c,0x45,0x6e,0x6b,0x73,0xa0,0x87,0x01,0xee,0xfe,0x12,0x5e,0x88,0x58,0x77,0xa0,0x5f,0x97,0xc9,0x00,0x00,0x01,0x00,0x60,0xfe,0x21, -0x03,0x60,0x04,0x18,0x00,0x13,0x00,0x2e,0x40,0x1b,0x10,0x13,0x20,0x13,0x30,0x13,0x03,0x13,0x11,0x95,0x02,0x1c,0x3f,0x0b,0x01,0x0b,0x0d,0x95,0x08,0x10,0x0b,0x13,0x13,0x15,0x0f,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x06,0x23,0x22,0x02,0x11,0x10,0x00,0x33,0x32, -0x17,0x15,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x03,0x60,0x84,0x9c,0xe8,0xf8,0x01,0x07,0xf7,0x87,0x7b,0x7e,0x84,0xfe,0xac,0x01,0x4a,0x8c,0x80,0xfe,0x77,0x56,0x01,0x7b,0x01,0x6c,0x01,0x7f,0x01,0x91,0x41,0xa4,0x5b,0xfd,0x86,0xfd,0x96,0x66,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x0b,0x00,0x15,0x00,0x21, -0x00,0x3f,0x40,0x24,0x16,0x63,0x40,0x1c,0x06,0x00,0x1c,0x63,0x14,0x30,0x11,0x95,0x00,0x16,0x0c,0x95,0x40,0x06,0x01,0x1f,0x62,0x19,0x0f,0x14,0x19,0x62,0x08,0x30,0x09,0x83,0x14,0x14,0x23,0x0f,0x83,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, -0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x22,0x02,0x11,0x10,0x21,0x32,0x12,0x11,0x10,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x74,0xfe,0xfe,0xfe,0xee,0x01,0x1b,0x01,0x04,0x01,0x02,0x01,0x11,0xfe,0xe6,0xff,0xb4,0xbd,0x01,0x71,0xb4,0xbd,0xfe,0x8f,0x2f,0x40,0x40,0x2f, -0x2e,0x43,0x43,0x18,0x01,0x8c,0x01,0x76,0x01,0x7c,0x01,0x9c,0xfe,0x76,0xfe,0x86,0xfe,0x83,0xfe,0x67,0x05,0x8f,0xfe,0xb3,0xfe,0xc8,0xfd,0x80,0x01,0x4c,0x01,0x38,0x02,0x81,0xfd,0x0e,0x42,0x2f,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0x7f,0x04,0x00,0x00,0x0d,0x00,0x14,0x00,0x1b,0x00,0x40,0x40,0x23, -0x08,0x15,0x95,0x40,0x0f,0x01,0x00,0x0f,0x95,0x09,0x30,0x16,0x95,0x00,0x15,0x0e,0x95,0x01,0x0f,0x08,0x0a,0x0f,0x12,0x83,0x05,0x05,0x0a,0x83,0x19,0x19,0x1d,0x0f,0x16,0x84,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x33,0x11, -0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x01,0x56,0xa4,0xb0,0xac,0xdb,0xca,0xaf,0xbc,0xa2,0xbe,0xb8,0xa8,0xba,0xd3,0xe3,0x04,0x00,0x85,0x79,0xac,0x35,0x05,0x27,0xca,0x89,0xa2,0x03,0x74,0xfe,0xe2,0x94,0x8a,0xfe,0x57,0xfe,0xc1, -0x9d,0xa2,0x00,0x02,0x00,0x5c,0xff,0xe8,0x04,0x02,0x04,0x18,0x00,0x10,0x00,0x24,0x00,0x42,0x40,0x24,0x00,0x12,0x95,0x40,0x11,0x06,0x0c,0x11,0x95,0x0c,0x30,0x18,0x95,0x0c,0x16,0x1e,0x95,0x06,0x10,0x00,0x0f,0x12,0x12,0x15,0x09,0x83,0x1b,0x1b,0x26,0x0f,0x21,0x83,0x03,0x15,0x83,0x0f,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f, -0xe1,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x35,0x34,0x25,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x01,0x2f,0xbd,0xd9,0xb5,0xee,0x01, -0x14,0xfe,0xe1,0xf3,0xc0,0xd4,0x02,0x10,0x56,0xfe,0xee,0x81,0x71,0xa6,0xbe,0xbf,0xa3,0x68,0x78,0x88,0x78,0x02,0x14,0x04,0x3d,0xa9,0x7e,0x9c,0xfe,0xe6,0xf4,0xf5,0xfe,0xd3,0x9e,0x8a,0xce,0x78,0x8e,0xaa,0x4f,0x5d,0xd2,0xc0,0xb9,0xd1,0x54,0x44,0x48,0x58,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x54,0x04,0xe2,0x00,0x27,0x00,0x57, -0x40,0x1c,0x12,0x95,0x40,0x15,0x1e,0x18,0x15,0x95,0x08,0x30,0x16,0x11,0x0f,0x95,0x18,0x16,0x07,0x09,0x00,0x02,0x96,0x25,0x09,0x95,0x1e,0x10,0x00,0x22,0xb8,0x01,0x03,0x40,0x10,0x04,0x06,0x13,0x13,0x11,0x0c,0x06,0x06,0x16,0x84,0x11,0x11,0x29,0x0c,0x83,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x10, -0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x10,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x04, -0x54,0x30,0x2a,0x5e,0x16,0x06,0x9c,0x8f,0xa8,0xd1,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x34,0xf5,0x51,0x49,0x05,0x70,0x56,0x3c,0x34,0x04,0x52,0x1a,0x76,0x42,0x68,0x06,0x48,0xe1,0xb3,0xb8,0xd0,0x26,0x01,0x04,0x8b,0xfe,0x17,0x56,0x01,0x18,0xf0,0xef,0x01,0x39,0x16,0x22,0x03,0x4c,0x6f,0x1a,0x00, -0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xe2,0x04,0x00,0x00,0x0b,0x00,0x35,0x40,0x1c,0x03,0x95,0x40,0x08,0x06,0x05,0x08,0x95,0x0c,0x30,0x0b,0x00,0x06,0x05,0x15,0x06,0x0f,0x09,0x08,0x04,0x00,0x84,0x01,0x01,0x0d,0x04,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a, -0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xe2,0xa4,0xfe,0x0c,0xa4,0xa4,0x01,0xf4,0xa4,0x01,0xc6,0xfe,0x3a,0x04,0x00,0xfe,0x52,0x01,0xae,0x00,0x00,0x03,0xff,0x18,0xfe,0x1e,0x02,0x38,0x05,0xd9,0x00,0x0b,0x00,0x1d,0x00,0x25,0x00,0x70,0xb7,0x1e,0x0e,0x0c,0x20,0x1b,0x18,0x16,0x1d,0xb8, -0xff,0xc0,0x40,0x36,0x13,0x16,0x48,0x1d,0x0c,0x0c,0x10,0x20,0x96,0x0f,0x16,0x1f,0x16,0x02,0x09,0x03,0x16,0x24,0x96,0x10,0x1c,0x06,0x63,0x40,0x00,0x19,0x0f,0x09,0x62,0x03,0x18,0x1b,0x03,0x62,0xff,0x30,0x0c,0x0c,0x1b,0x0e,0x1b,0x22,0x84,0x13,0x1e,0x1b,0x84,0x18,0x26,0x27,0x18,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x33,0x18, -0xd4,0xe1,0x12,0x39,0x10,0xc1,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x12,0x39,0x2f,0xcd,0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x26,0x27,0x02,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11, -0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x01,0x11,0x7c,0x7e,0x2d,0xfe,0xf7,0x68,0x88,0xb5,0x91,0x27,0x21,0xa4,0x7a,0x74,0xfe,0x6e,0x24,0x24,0xae,0x62,0x8f,0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xf9,0x98,0x68,0x34,0xfe,0xe6,0x78,0x5e,0x6d,0x91,0x04, -0x04,0x12,0xfb,0xc2,0x2c,0x54,0x26,0x06,0x70,0x5a,0x00,0x01,0x00,0x04,0xfe,0x14,0x03,0x56,0x04,0x00,0x00,0x0c,0x00,0x2a,0x40,0x16,0x00,0x1c,0x02,0x06,0x0a,0x03,0x07,0x05,0x15,0x0c,0x0f,0x07,0x0f,0x0c,0x84,0x06,0x02,0x0a,0x0a,0x0e,0x05,0x07,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f, -0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x03,0x56,0xa4,0x04,0xfe,0x52,0xd7,0x01,0xdb,0xfe,0x00,0xe6,0x01,0xc4,0x04,0xa4,0xfe,0x14,0x03,0xc1,0xfe,0x2b,0x01,0xee,0x02,0x12,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf8,0x04,0x00,0x00,0x05,0x00,0x19,0x40,0x0c,0x04,0x95, -0x01,0x15,0x02,0x0f,0x00,0x00,0x07,0x04,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x02,0xf8,0xfd,0xae,0xa4,0x01,0xae,0x04,0x00,0xfc,0x8c,0x00,0x02,0x00,0x60,0xfe,0x29,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x05,0x1b,0x13,0x07,0x10,0x24,0x95,0x0a, -0x16,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84,0x1a,0x13,0x07,0x07,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32, -0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x6e,0xee,0xc2,0xea,0xff,0xd6,0xd3,0x60,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa7,0x7b,0x98,0xaa,0xa7,0x84,0x8b,0xae,0x05,0x5c,0x1b,0xcf,0xf9,0x81,0x02,0x85,0xc6,0x01,0x12,0xee,0x01, -0x00,0x01,0x30,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdb,0x9b,0x7b,0xad,0xde,0xc4,0xb3,0xc7,0xc2,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x1f,0x00,0x50,0x40,0x2a,0x03,0x00,0x06,0x95,0x40,0x09,0x17,0x05,0x09,0x95,0x08,0x30,0x1a,0x0f,0x17,0x05,0x15,0x14,0x12,0x95,0x17,0x01,0x02,0x02,0x1a,0x04,0x07,0x07, -0x14,0x09,0x00,0x04,0x84,0x05,0x05,0x14,0x1a,0x83,0x0f,0x0f,0x21,0x14,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x36,0x37,0x36, -0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x89,0xc5,0xc5,0xa3,0xae,0xae,0x51,0x69,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x4e,0x41,0x02,0x04,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x7a,0x9d,0x68,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f, -0x7b,0x4b,0x7d,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf,0x06,0x02,0x00,0x1f,0x00,0x4e,0x40,0x2a,0x0e,0x0b,0x11,0x95,0x40,0x14,0x1d,0x10,0x14,0x95,0x08,0x30,0x10,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x1d,0x01,0x13,0x13,0x10,0x1a,0x0c,0x0c,0x00,0x14,0x0b,0x10,0x84,0x0f,0x0f,0x05,0x00,0x00,0x21,0x05,0x83,0x1a,0x2f,0xe1, -0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17, -0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x6b,0x4d,0xb0,0xb0,0xa4,0xc6,0xc6,0x41,0x54,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x6e,0x9d,0x78,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x54,0x80,0x53,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x27,0x05,0xec,0x00,0x15,0x00,0x22, -0x00,0x25,0x00,0x4a,0x40,0x29,0x11,0x05,0x0e,0x20,0x95,0x08,0x16,0x25,0x01,0x95,0x04,0x15,0x00,0x23,0x95,0x14,0x0f,0x1a,0x95,0x0e,0x10,0x12,0x00,0x11,0x14,0x16,0x03,0x01,0x25,0x84,0x04,0x04,0x0b,0x23,0x00,0x03,0x03,0x27,0x1d,0x83,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xc6,0x32,0x12,0x39,0x2f,0xe1,0x32,0x17,0x39,0x00,0x3f,0x3f, -0xed,0x3f,0xed,0x39,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x07,0x27,0xfd,0x9f,0x02,0x58,0xfc,0x4e,0x04,0x72,0xee,0xc2, -0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17,0xfc,0x45,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x03,0xd1,0xfc,0xbb,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0xfd,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x02,0x37,0xfd,0x0f,0x00,0x00,0x02,0x00,0x60,0xfe,0x21, -0x07,0x77,0x05,0xec,0x00,0x29,0x00,0x36,0x00,0x72,0x40,0x40,0x0b,0x0a,0x96,0x40,0x22,0x1f,0x28,0x22,0x96,0x08,0x30,0x01,0x03,0x95,0x28,0x1c,0x1c,0x10,0x19,0x34,0x95,0x13,0x16,0x0e,0x15,0x21,0x0c,0x95,0x1f,0x0f,0x2e,0x95,0x19,0x10,0x1d,0x00,0x22,0x0b,0x0b,0x06,0x01,0x0c,0x21,0x21,0x25,0x01,0x01,0x1c,0x1f,0x2a,0x03,0x0e, -0x84,0x0f,0x0f,0x16,0x25,0x83,0x06,0x06,0x38,0x31,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x17,0x39,0x39,0x2f,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x39,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xa4,0xb2,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x7f,0xfd,0xbe, -0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x2e,0xfe,0x76,0xd7,0xec,0xfe,0xbd,0xf6,0xb6,0xfe,0xe4,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0xfc,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x33,0xfd,0xe1,0x1a, -0xe9,0xb5,0xcc,0xfe,0xf7,0x03,0xb6,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x00,0x00,0x04,0x00,0x60,0xff,0x81,0x07,0xdb,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x32,0x00,0x39,0x00,0xcb,0xb9,0x00,0x30,0xff,0xd8,0x40,0x4e,0x0b,0x10,0x01,0x4c,0x19,0x18,0x0b,0x10,0x01,0x4c,0x04,0x39,0x14,0x39,0x24,0x39,0x03,0x34,0x19,0x44,0x19, -0x02,0x06,0x19,0x16,0x19,0x26,0x19,0x03,0x09,0x13,0x07,0x10,0x2d,0x95,0x0a,0x16,0x02,0x00,0x00,0x32,0x33,0x03,0x06,0x19,0x38,0x96,0x40,0x1c,0x80,0x19,0x95,0x06,0x15,0x18,0x30,0x95,0x16,0x0f,0x27,0x95,0x40,0x10,0x10,0x14,0x00,0x30,0x18,0x18,0x1f,0x33,0x00,0x36,0x02,0x1a,0x05,0x1f,0x02,0xb8,0x01,0x03,0x40,0x0b,0x03,0x0f, -0x03,0x1f,0x03,0x02,0x0a,0x03,0x32,0x1f,0x03,0xb8,0x01,0x03,0x40,0x11,0x08,0x30,0x19,0x13,0x16,0x23,0x03,0x32,0x84,0x06,0x06,0x1f,0x0d,0x30,0x18,0x18,0x1f,0xb8,0x01,0x03,0xb5,0x36,0x36,0x3b,0x2a,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x32,0x2b,0x01,0x5f,0x5e,0x5d,0x10, -0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x18,0x2f,0x32,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x3f,0xfd,0x1a,0xdc,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0xce,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x5e,0x5d,0x5d,0x5d,0x2b,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33, -0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x33,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x25,0x33,0x32,0x35,0x34,0x23,0x22,0x05,0xba,0x0c,0x04,0x90,0x04,0x0f,0xfe,0x3f,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17, -0xfd,0x9f,0x92,0x86,0xf9,0x76,0x8e,0xac,0x9b,0xfc,0xd8,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x01,0xd8,0xae,0xb4,0x75,0x9d,0x39,0x46,0x3b,0x44,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x2f,0xfc,0xbb,0x01,0x2e,0x78,0x5c,0x6b,0x7b,0x01,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac, -0xce,0xcb,0x02,0x37,0xfd,0x0f,0x09,0x5a,0x54,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x04,0x94,0x05,0x2f,0x00,0x1d,0x00,0x2c,0x00,0x53,0x40,0x2d,0x11,0x17,0x25,0x2b,0x04,0x09,0x23,0x95,0x1a,0x16,0x05,0x06,0x1f,0x06,0x00,0x95,0x03,0x0f,0x0c,0x0e,0x95,0x09,0x10,0x1e,0x07,0x0c,0x11,0x83,0x2b,0x2b,0x17,0x1f,0x0c,0x0c,0x17,0x83, -0x25,0x25,0x2e,0x02,0x1f,0x00,0x06,0x84,0x03,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14, -0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x23,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0xdb,0xb0,0xb0,0xa4,0x01,0x73,0x46,0x54,0x7c,0x60,0x64,0x85,0x52,0x60,0x47,0x7a,0x94,0x72,0xf1,0xef,0xfb,0xde,0x01,0x6d,0xc9,0x9f,0x9e,0x01,0x30,0x59,0x79,0x8a,0x6b,0x03,0x74,0x8c,0xfa,0x35, -0xfe,0xd1,0x18,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x40,0x8c,0x62,0x84,0xaa,0xcd,0xd7,0x01,0xe8,0xfe,0x24,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x38,0x8b,0x69,0x48,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x04,0x3e,0x06,0x02,0x00,0x22,0x00,0x2a,0x00,0x49,0x40,0x27,0x0b,0x0d,0x95,0x08,0x1c,0x23,0x29,0x95,0x12,0x16,0x1a,0x1b,0x25,0x1b, -0x15,0x95,0x18,0x0f,0x00,0x02,0x95,0x20,0x01,0x00,0x00,0x04,0x84,0x0b,0x24,0x10,0x1c,0x1c,0x2c,0x25,0x15,0x1b,0x84,0x17,0x18,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x33,0xc4,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14, -0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x04,0x3e,0x32,0x3d,0xaa,0xb9,0x8f,0x4b,0x2c,0x32,0x3d,0xac,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0xfe, -0xfe,0x46,0x51,0x3e,0x05,0x5c,0x1b,0xdf,0xfa,0xe7,0xa3,0xbe,0x13,0x93,0x1a,0xdf,0x81,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0xa0,0xa2,0xc0,0x12,0xfa,0xa6,0x02,0xde,0xfd,0xbf,0x67,0x58,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x05,0xaa,0x05,0x2f,0x00,0x2b,0x00,0x34,0x00,0x77,0x40,0x41,0x22,0x13,0x24,0x13,0x00,0x2a, -0x18,0x33,0x96,0x0f,0x24,0x1f,0x24,0x02,0x24,0x24,0x18,0x2e,0x96,0x2a,0x16,0x11,0x95,0x02,0x16,0x0a,0x0b,0x0e,0x0b,0x05,0x95,0x08,0x0f,0x1b,0x1d,0x95,0x18,0x10,0x0c,0x2c,0x22,0x31,0x20,0x13,0x00,0x27,0x20,0x83,0x15,0x15,0x27,0x0e,0x1b,0x1b,0x27,0x84,0x31,0x31,0x36,0x0e,0x05,0x0b,0x84,0x07,0x08,0x2f,0xcd,0xe1,0x39,0x39, -0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0xc4,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14, -0x33,0x32,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x03,0x18,0xa0,0x8a,0xfe,0xed,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x93,0x4a,0x66,0x58,0x01,0x22,0xf3,0x87,0x66,0x72,0x81,0x9e,0xc9,0x38,0xd2, -0x86,0x75,0x93,0xbd,0x9b,0xba,0x02,0x54,0x70,0x54,0x66,0x78,0x60,0x52,0x6a,0x01,0x3d,0x02,0x4f,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xc1,0xc3,0x42,0x84,0xb0,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x81,0x61,0x96,0x7a,0x5b,0x67,0x86,0xc6,0x42,0x3a,0x2b,0x56,0x00,0x00,0x01,0x00,0x35,0xfe,0x1e,0x05,0xc8,0x06,0x02,0x00,0x2e, -0x00,0x58,0x40,0x30,0x06,0x08,0x95,0x03,0x1c,0x28,0x2b,0x12,0x15,0x16,0x15,0x0d,0x95,0x2b,0x10,0x26,0x14,0x17,0x95,0x1a,0x0f,0x21,0x23,0x95,0x1e,0x01,0x06,0x06,0x0a,0x21,0x21,0x28,0x11,0x84,0x12,0x12,0x1a,0x00,0x84,0x0a,0x0a,0x30,0x17,0x14,0x26,0x84,0x19,0x1a,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f, -0xe1,0x32,0x39,0x2f,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15, -0x15,0x21,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x05,0xc8,0xbe,0xae,0x4c,0x35,0x3d,0x44,0xc9,0xed,0x7c,0xa2,0xa3,0xf0,0xa3,0xaf,0xaf,0xbf,0x97,0x4f,0x33,0x3a,0x40,0xbb,0x01,0x93,0x04,0x74,0xdc,0xa8,0xb2,0x04,0xe7,0xf7,0x1a,0x99,0x27,0x01,0x3e,0x02,0x60,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x92, -0xa8,0xc8,0x16,0x94,0x1f,0xee,0x89,0xaa,0xc2,0xd8,0xce,0x00,0x00,0x01,0x00,0x98,0xff,0xe8,0x04,0x50,0x05,0xfc,0x00,0x24,0x00,0x3c,0x40,0x21,0x07,0x0d,0x18,0x1e,0x04,0x10,0x05,0x95,0x21,0x16,0x13,0x15,0x95,0x10,0x10,0x00,0x01,0x18,0x83,0x0d,0x0d,0x1e,0x00,0x13,0x13,0x1e,0x83,0x07,0x07,0x26,0x01,0x84,0x00,0x2f,0xe1,0x12, -0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x98,0xa4,0x9f,0xa0,0x01, -0x2d,0x58,0x79,0x8c,0x69,0xc8,0x9e,0x7c,0x61,0x65,0x84,0x52,0x61,0x47,0x7a,0x97,0x6f,0xf1,0xef,0xfb,0xdd,0x05,0xfc,0xfb,0x9c,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x39,0x89,0x6a,0x81,0xa5,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x41,0x8b,0x62,0x86,0xa8,0xcc,0xd8,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x60,0x05,0xec,0x00,0x08, -0x00,0x0b,0x00,0x2b,0x40,0x16,0x0b,0x01,0x95,0x04,0x15,0x00,0x09,0x95,0x07,0x0f,0x05,0x00,0x09,0x00,0x03,0x03,0x0d,0x01,0x07,0x0b,0x84,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xc6,0x32,0x00,0x3f,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x07,0x21,0x11,0x04,0x60,0xfd,0xa0,0x02, -0x58,0xfc,0x4e,0xa4,0x03,0x16,0xf2,0xfd,0xdc,0x03,0xd1,0xfc,0xbb,0x8c,0x05,0xec,0xfe,0x14,0x8c,0xfd,0x0f,0x00,0x00,0x02,0x00,0x31,0x00,0x00,0x03,0xc2,0x05,0x9a,0x00,0x1b,0x00,0x37,0x00,0x22,0x40,0x10,0x27,0x0e,0x40,0x26,0x12,0x0a,0x0b,0x42,0x0a,0x0b,0x03,0x00,0x1c,0x39,0x0b,0x27,0x2f,0x33,0x10,0xc6,0x32,0x00,0x3f,0xcd, -0x2b,0x00,0x18,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, -0x03,0xc2,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x82,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x05,0x9a,0xfd,0x78,0x01,0x90,0x21, -0x3b,0x24,0x36,0xfe,0x6e,0x02,0x88,0xfe,0x5a,0x24,0x34,0x21,0x39,0x01,0xa4,0xfe,0x5a,0x20,0x38,0x16,0x42,0x01,0xa6,0xfc,0xed,0xfd,0x79,0x01,0x90,0x21,0x3b,0x24,0x36,0xfe,0x6e,0x02,0x87,0xfe,0x5b,0x24,0x35,0x21,0x3a,0x01,0xa3,0xfe,0x5b,0x20,0x39,0x17,0x42,0x01,0xa5,0x00,0x00,0x02,0x00,0x74,0x00,0x00,0x03,0x7f,0x05,0x9a, -0x00,0x07,0x00,0x0f,0x00,0x37,0x40,0x1c,0x0b,0x96,0x0e,0x08,0x0d,0x12,0x00,0x05,0x03,0x96,0x06,0x03,0x01,0x00,0x08,0x09,0x05,0x04,0x0c,0x0d,0x08,0x7f,0x09,0x09,0x11,0x0c,0x7f,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0xcd,0x32,0x3f,0x33,0xdd,0xed,0x31,0x30,0x01,0x23,0x11, -0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0x7f,0x89,0xfe,0x06,0x88,0x03,0x0b,0x89,0xfe,0x06,0x88,0x03,0x0b,0x03,0xa2,0x01,0x74,0xfe,0x8c,0x01,0xf8,0xfa,0x66,0x01,0x74,0xfe,0x8c,0x01,0xf8,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x14,0x05,0xfc,0x00,0x13,0x00,0x23,0x00,0x3d,0x40,0x20,0x01,0x00, -0x14,0x96,0x15,0x15,0x1f,0x1a,0x95,0x0e,0x01,0x1f,0xec,0x07,0x16,0x01,0x14,0x11,0x83,0x18,0x14,0x18,0x14,0x1d,0x04,0x83,0x22,0x22,0x25,0x1d,0x84,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x15,0x16,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x11,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x02,0x9e,0xb4,0xc2,0xf7,0xcd,0xcd,0xdd,0xda,0xbc,0xa6,0xc6,0x95,0xfe,0xdf,0x78,0x98,0xd1,0xe7,0x01,0x10,0x83,0x8f,0x03,0x38,0x05,0x1d,0xd8,0xa6,0xc3,0xed,0xfb,0xea,0x02,0x8d, -0xbe,0xe4,0xb9,0x9b,0x7e,0xcc,0x78,0x82,0x14,0xa5,0x73,0xdc,0xfe,0xda,0xfd,0x87,0xfe,0xa6,0x90,0x87,0x01,0x30,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xc4,0x06,0x02,0x00,0x2a,0x00,0x32,0x00,0x6b,0x40,0x3b,0x02,0x20,0x00,0x28,0x2b,0x00,0xec,0x2a,0x2b,0xec,0x20,0x20,0x1d,0x10,0x0e,0x95,0x13,0x10,0x2d,0x95,0x26,0x01,0x1d,0xec, -0x05,0x16,0x30,0x84,0x23,0x40,0x0b,0x0e,0x48,0x23,0x23,0x2b,0x0c,0x2a,0x2a,0x28,0x02,0x28,0x08,0x20,0x2b,0x1a,0x84,0x08,0x16,0x84,0x0c,0x0c,0x10,0x28,0x84,0x2b,0x2b,0x34,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x11,0x12,0x39,0x10,0xca,0x2f,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x00,0x3f,0xed,0x3f, -0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x06,0x07,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x13,0x26,0x00,0x35,0x34,0x36,0x33,0x20,0x13,0x36,0x37,0x05,0x02,0x23,0x22, -0x06,0x15,0x14,0x16,0x04,0xc4,0x42,0x59,0x0b,0xfe,0xed,0xea,0xbe,0xdc,0x16,0x15,0x58,0x26,0x20,0x32,0x31,0x65,0x7a,0x15,0x16,0x89,0x75,0x9e,0xb5,0x09,0xeb,0xfe,0xda,0xad,0x87,0x01,0x70,0x13,0x4d,0x4c,0xfe,0xc3,0x0e,0xd3,0x3f,0x4f,0xc7,0x02,0xe6,0x19,0x0f,0xfe,0xa6,0xfe,0x84,0xdc,0xc1,0x55,0x81,0x81,0x3a,0x78,0x11,0x89, -0x12,0x8a,0x6b,0x3f,0x81,0x81,0x50,0x84,0x97,0x01,0x29,0x01,0x12,0x08,0x01,0x18,0xd0,0x97,0xc9,0xfd,0x4a,0x0c,0x1f,0x35,0x02,0x35,0x71,0x5a,0x98,0xc9,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xb8,0x05,0xb2,0x00,0x16,0x00,0x4f,0x40,0x27,0x12,0x0d,0x14,0x03,0x05,0x02,0x08,0x05,0x0d,0x0d,0x0a,0x07,0x00,0x02,0x91,0x14,0x04,0x0a, -0x03,0x07,0x00,0x12,0x00,0x03,0x03,0x18,0x05,0x0a,0x09,0x09,0x17,0x0e,0x0d,0x05,0x7e,0x08,0x08,0x18,0x17,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x11,0x33,0x33,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x11,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x07, -0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x04,0xb8,0x2c,0x2c,0x52,0x60,0xfe,0xd9,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x08,0x1a,0xc7,0x4b,0x8c,0x5e,0x36,0x2c,0x05,0x06,0x14,0xbe,0xfd,0xb2,0xfd,0xf2,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x1c,0x3c,0x01,0x8e,0x96, -0x7c,0x14,0xff,0xff,0xff,0xb1,0x00,0x00,0x05,0xa0,0x05,0xb2,0x00,0x27,0x05,0xb5,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe3,0xff,0x99,0x00,0x14,0xb3,0x01,0x17,0x03,0x01,0xb8,0xff,0xc4,0xb4,0x17,0x17,0x09,0x09,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xb8,0x06,0xf7,0x02,0x26,0x05,0xb5, -0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0x01,0x70,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd1,0x40,0x0a,0x26,0x20,0x09,0x16,0x25,0x02,0x01,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x45,0x40,0x25,0x0a,0x00,0x12,0x1a,0x95,0x0c, -0x09,0x10,0x02,0x1b,0x13,0x19,0x95,0x40,0x00,0x03,0x16,0x0f,0x83,0x16,0x0e,0x00,0x1d,0x03,0x42,0x13,0x0c,0x00,0x84,0x19,0x09,0x03,0x03,0x21,0x1d,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x31,0x30,0x05,0x11,0x23, -0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17, -0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12,0xd2,0xac,0xa6,0xd3,0x00,0x00,0x02,0x00,0x00,0xff,0xea,0x06,0x2d,0x04,0x00,0x00,0x16,0x00,0x28,0x00,0x69,0x40,0x38,0x08,0x0b,0x20,0x20,0x0b,0x0f,0x12,0x01,0x09,0x04,0x12,0x18,0x01,0x10,0x95,0x15, -0x0f,0x24,0x1d,0xec,0x06,0x0b,0x16,0x17,0x83,0x01,0x01,0x03,0x18,0x83,0x10,0x0e,0x40,0x00,0x00,0x03,0x83,0x27,0x0e,0x22,0x1a,0x1f,0x42,0x09,0x08,0x22,0x84,0x1f,0x1f,0x2a,0x1a,0x83,0x0e,0x0e,0x2a,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x2b,0x01,0x10,0xf2,0xe1,0x32,0x18,0x2f,0x1a,0x10,0xdd,0xe1,0x10, -0xc9,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x32,0x32,0x32,0x5f,0x5e,0x5d,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x22,0x07,0x35,0x36,0x33,0x21,0x05,0x21,0x06,0x15,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x15,0x10,0x33,0x32,0x36,0x35,0x34, -0x06,0x2d,0xb6,0x83,0xd5,0xbf,0xcf,0x64,0x04,0x67,0xce,0xb9,0xd1,0x84,0x7e,0x76,0x6a,0x96,0x05,0x2d,0xfe,0xa0,0xfc,0xd1,0x88,0x7b,0x6d,0xe8,0xa1,0xe5,0x6c,0x7c,0x03,0x74,0xdc,0xda,0xda,0xfa,0xbe,0xbe,0xfb,0xd9,0xd5,0xe1,0x58,0x9c,0x48,0x8c,0xe6,0xd6,0x96,0xa9,0x01,0x5a,0xfc,0xfc,0xfe,0xa6,0xaa,0x95,0xd6,0x00,0x00,0x01, -0x00,0x00,0xfe,0x96,0x04,0x90,0x04,0x18,0x00,0x33,0x00,0x83,0x40,0x28,0x06,0x08,0x95,0x40,0x03,0x34,0x80,0x11,0x29,0x27,0x15,0x29,0x15,0x17,0x2b,0x1f,0x1d,0x95,0x22,0x10,0x2b,0x0f,0x33,0x31,0x95,0x40,0x0c,0x16,0x17,0x29,0x11,0x2b,0x0f,0x27,0x15,0x25,0x17,0x06,0x06,0x0b,0xb8,0x01,0x2e,0x40,0x1a,0x33,0x2b,0x83,0x2c,0x2c, -0x00,0x2e,0x84,0x0f,0x0e,0x33,0x17,0x83,0x18,0x18,0x1a,0x1f,0x1f,0x25,0x42,0x25,0x84,0x1a,0x1a,0x35,0x1f,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x10,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0x3f,0xed,0x32,0x11, -0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x1a,0x10,0xdc,0x1a,0xed,0x32,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x26,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16, -0x33,0x32,0x37,0x04,0x90,0x98,0x7d,0x3f,0x34,0x34,0x3b,0x39,0x46,0x77,0x85,0x14,0x06,0xf1,0x94,0x56,0x14,0x27,0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x44,0x87,0x9f,0x18,0x92,0x1f,0x57,0x48,0x2a,0x10,0xdb,0xb0,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59, -0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x0f,0x00,0x00,0x02,0x00,0x56,0x00,0x00,0x05,0x48,0x05,0xb2,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x1f,0x15,0x91,0x00,0x03,0x03,0x02,0x0f,0x91,0x40,0x09,0x04,0x02,0x0c,0x7d,0x18,0x0e,0x01,0x12,0x02,0x42,0x12,0x7d, -0x06,0x06,0x1b,0x01,0x7e,0x02,0x02,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x3f,0x1a,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x26,0x00,0x35,0x34,0x00,0x21,0x20,0x00,0x15,0x14,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, -0x23,0xa8,0xfc,0xfe,0xd7,0x01,0x63,0x01,0x18,0x01,0x1e,0x01,0x59,0xfe,0xd2,0xfe,0xb5,0xd2,0xf7,0xf8,0xd1,0xd2,0xf7,0xf7,0x01,0x64,0xfe,0x9c,0x01,0x64,0x17,0x01,0x29,0xdf,0xf1,0x01,0x3e,0xfe,0xcf,0xf1,0xde,0xfe,0xcc,0x03,0x9c,0xde,0xb3,0xb1,0xe0,0xde,0xb3,0xb1,0xe0,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x50,0x04,0x18, -0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x1f,0x0f,0x95,0x09,0x10,0x02,0x1b,0x15,0x96,0x40,0x00,0x03,0x16,0x0c,0x83,0x18,0x0e,0x00,0x12,0x03,0x42,0x00,0x84,0x03,0x03,0x1c,0x12,0x83,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x3f,0x3f,0xed,0x31,0x30, -0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xaa,0xa4,0xc5,0xe1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe2,0xfe,0xf0,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0xfe,0x3d,0x01,0xc3,0x18,0x01,0x18,0xd8,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa, -0xdc,0xfe,0xe0,0x03,0x86,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x02,0x00,0x5e,0xfe,0xae,0x04,0xa8,0x06,0x60,0x00,0x20,0x00,0x21,0x00,0x4d,0xb9,0x00,0x0d,0xff,0xd8,0x40,0x0f,0x13,0x1d,0x48,0x01,0x22,0x80,0x11,0x16,0x1c,0x0b,0x07,0x22,0x21,0x04,0x1c,0xb8,0xff,0xf0,0x40,0x15,0x10,0x16,0x48,0x1c,0x06,0x13,0x1f, -0x7e,0x01,0x03,0x03,0x08,0x13,0x7e,0x10,0x0e,0x0e,0x23,0x1a,0x7d,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x33,0x2b,0x3f,0x12,0x39,0x39,0x12,0x39,0xc4,0x1a,0x10,0xce,0x31,0x30,0x2b,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x00,0x37,0x24,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14, -0x06,0x07,0x06,0x06,0x02,0x15,0x10,0x05,0x16,0x16,0x15,0x14,0x13,0x04,0x44,0xb4,0x4f,0x88,0xa3,0xfd,0xaa,0x01,0x15,0xfb,0x01,0x28,0x62,0x08,0x97,0x0d,0x84,0xca,0xca,0xdf,0x8f,0x01,0xcf,0xef,0xbb,0x21,0xfe,0xae,0x54,0x4c,0x3a,0x45,0x1b,0x62,0x02,0x68,0x01,0x13,0x01,0x79,0x47,0x3e,0x37,0x2f,0x1b,0x1c,0x24,0x28,0x5d,0x6c, -0x2f,0x2d,0x6e,0xfe,0xfa,0xbf,0xfe,0x23,0x57,0x2d,0x80,0x77,0x5a,0x06,0xa8,0x00,0x00,0x02,0x00,0x60,0xfe,0xc4,0x03,0xa4,0x04,0xc6,0x00,0x1e,0x00,0x1f,0x00,0x4f,0xb9,0x00,0x17,0xff,0xd8,0x40,0x1f,0x13,0x1d,0x48,0x1b,0x01,0x10,0x10,0x16,0x48,0x01,0x15,0x15,0x20,0x1f,0x10,0x0c,0x20,0x80,0x06,0xec,0x11,0x15,0x0b,0x0c,0x0c, -0x09,0x84,0x0e,0x0e,0x13,0x1d,0xb8,0x01,0x2e,0xb6,0x1a,0x18,0x18,0x21,0x04,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x00,0x3f,0xed,0x1a,0x10,0xce,0x3f,0x12,0x39,0x11,0x33,0x2b,0xc4,0x31,0x30,0x2b,0x01,0x0e,0x02,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x27, -0x24,0x11,0x10,0x25,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x37,0x03,0x10,0xb1,0xe2,0x75,0x01,0x25,0xc4,0xa3,0x50,0xb4,0x62,0x73,0x8d,0xfe,0x6e,0x01,0x52,0xd4,0x7a,0x0a,0x98,0x0c,0x0a,0x03,0xbe,0x36,0x5f,0xc8,0x94,0xfd,0x3a,0x28,0x7d,0x76,0x5f,0x58,0x50,0x54,0x3f,0x40,0x19,0x48,0x01,0x70,0x01,0x9e,0x8e,0x41,0x38, -0x33,0x1c,0x1a,0x24,0x25,0x85,0x20,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa8,0x05,0x9a,0x00,0x11,0x00,0x38,0x40,0x0d,0x01,0x06,0x91,0x0d,0x0d,0x08,0x0c,0x91,0x09,0x03,0x08,0x01,0x10,0xb8,0x01,0x2c,0x40,0x0d,0xaf,0x03,0x01,0x03,0x03,0x08,0x0b,0x0b,0x13,0x0d,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f, -0x5d,0xe1,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x23,0x36,0x35,0x34,0x23,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x15,0x14,0x03,0x70,0x8c,0x08,0x69,0xfe,0xe1,0xa8,0x02,0xec,0xfd,0xbc,0x01,0x25,0xf6,0x02,0x0e,0x1e,0x28,0x5a,0xfd,0x52,0x05,0x9a,0x98,0xfe,0x40,0xce,0x34,0x00,0x00,0x01, -0x00,0x90,0xfe,0x29,0x03,0x54,0x04,0x18,0x00,0x0e,0x00,0x2a,0x40,0x15,0x07,0x95,0x04,0x04,0x0f,0x01,0x95,0x0d,0x10,0x09,0x1b,0x05,0x05,0x00,0x00,0x10,0x04,0x04,0x07,0x84,0x0a,0x2f,0xe1,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x20,0x11,0x15,0x21,0x15,0x21,0x11,0x23, -0x11,0x34,0x12,0x33,0x33,0x03,0x54,0xee,0xfe,0xcd,0x01,0xf8,0xfe,0x08,0xa3,0xf4,0xe4,0xec,0x03,0x8e,0xfe,0xb0,0x4c,0x8c,0xfc,0xc3,0x04,0x02,0xea,0x01,0x03,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x04,0x7d,0x05,0x9a,0x00,0x07,0x00,0x36,0x40,0x1b,0x04,0x91,0x40,0x07,0x05,0x02,0x07,0x91,0x2b,0x30,0x05,0x03,0x02,0x03,0x00,0x02, -0x07,0x06,0x04,0x02,0x00,0x06,0x04,0x00,0x00,0x09,0x04,0x2f,0x12,0x39,0x2f,0x10,0xcd,0x10,0xcd,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x01,0x23,0x13,0x21,0x01,0x33,0x03,0x04,0x7d,0xfe,0xdb,0xb4,0xf2,0xfc,0xb2,0x01,0x1c,0xb4,0xe9,0x03,0x25,0xfc,0xdb,0x02,0x8e,0x03,0x0c, -0xfd,0x8b,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0xd1,0x06,0x02,0x00,0x23,0x00,0x5e,0x40,0x32,0x12,0x95,0x40,0x23,0x1d,0x0b,0x23,0x95,0x2b,0x30,0x1a,0x18,0x95,0x1d,0x01,0x08,0x06,0x95,0x40,0x0b,0x1c,0x11,0x00,0x0e,0x08,0x08,0x00,0x03,0x84,0x0e,0x0e,0x00,0x1a,0x1a,0x15,0x12,0x12,0x20,0x42,0x23,0x12,0x20,0x84,0x15,0x15,0x00, -0x00,0x25,0x12,0x24,0x10,0xce,0x11,0x39,0x2f,0x39,0x2f,0xe1,0x11,0x39,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xf1,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x00,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x03,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x37, -0x21,0x13,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x07,0x03,0xd1,0x5d,0x7a,0x41,0x39,0x2b,0x21,0x2c,0x38,0x74,0x92,0x81,0x21,0xfd,0x3b,0x5d,0x7a,0x41,0x39,0x2a,0x22,0x2c,0x38,0x74,0x92,0x81,0x21,0x02,0x56,0xfe,0xfc,0xfe,0xab,0x91,0x56,0x6c,0x14,0x89,0x17,0xb3,0x87,0xaa,0x01,0x6c,0x5d, -0x01,0x04,0x01,0x55,0x90,0x5a,0x69,0x15,0x8a,0x16,0xb2,0x88,0xaa,0xfe,0x94,0x5c,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x94,0x40,0x5c,0x5d,0x05,0x6d,0x05,0x7d,0x05,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x2c,0x04,0x5c,0x04,0x02,0x04,0x0e,0x01,0x5b,0x08,0x01,0x06,0x05,0x08,0x03,0x07,0x29,0x0d, -0x01,0x29,0x0a,0x79,0x0a,0x89,0x0a,0x03,0x0b,0x0a,0x0d,0x03,0x0c,0x0a,0x07,0x01,0x05,0x0c,0x01,0x5f,0x0c,0x01,0x07,0x0c,0x07,0x0c,0x0f,0x01,0x11,0x0f,0x91,0x14,0x04,0x06,0x07,0x07,0x0b,0x0f,0x0c,0x01,0x0c,0x0c,0x3a,0x0e,0x01,0x0e,0x05,0x08,0x0a,0x0d,0x04,0x06,0x11,0x01,0x17,0x7d,0x03,0x03,0x1a,0x11,0x2f,0x12,0x39,0x2f, -0xe1,0x33,0x12,0x17,0x39,0x5d,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x11,0x39,0x39,0x5d,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x00,0x5d,0x21,0x23,0x12,0x11,0x34,0x27,0x01,0x27,0x01,0x26,0x27,0x01,0x27,0x01, -0x26,0x23,0x22,0x07,0x35,0x36,0x21,0x20,0x00,0x11,0x10,0x03,0xfc,0xba,0x97,0x0e,0xfe,0x4d,0x54,0x01,0xe4,0x20,0x32,0xfd,0xfa,0x56,0x02,0x00,0x7c,0xb1,0xff,0xce,0xd2,0x01,0x03,0x01,0x3c,0x01,0x74,0x01,0x01,0x01,0x4d,0x58,0x5a,0xfe,0xae,0x6c,0x01,0x7c,0x60,0x4e,0xfe,0x6c,0x6c,0x01,0x92,0x6c,0xda,0xc2,0xb0,0xfe,0x1a,0xfe, -0x94,0xfe,0xc4,0x00,0x00,0x01,0xff,0x7b,0xfe,0x29,0x03,0x77,0x06,0x02,0x00,0x14,0x00,0x8d,0x40,0x5a,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x06,0x08,0x05,0x03,0x07,0x66,0x0d,0x01,0x0a,0x0d,0x01,0x0a,0x0a,0x01,0x0b,0x0d,0x0a,0x03,0x0c,0x16,0x07,0x76,0x07,0x02,0x07,0x76,0x0c,0x01,0x1d,0x0c,0x01,0x0c,0x0b,0x0e,0x7b,0x0e,0x02, -0x0c,0x04,0x2c,0x04,0x5c,0x04,0x6c,0x04,0xcc,0x04,0xdc,0x04,0x06,0x0e,0x0c,0x07,0x04,0x04,0x01,0x1b,0x0f,0xee,0x10,0x01,0x06,0x07,0x07,0x0b,0x0c,0x0c,0x04,0x0e,0x01,0x05,0x08,0x0a,0x0d,0x04,0x0f,0x13,0x84,0x03,0x03,0x16,0x15,0x0f,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x33,0x39,0x39,0x39,0x2f,0x33,0x33,0x2f,0x33, -0x00,0x3f,0xed,0x3f,0x17,0x39,0x5d,0x5d,0x2f,0x5d,0x5d,0x2f,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x23,0x12,0x11,0x34,0x27,0x05,0x27,0x25,0x26,0x27,0x05,0x27,0x25,0x02,0x25,0x35,0x04,0x00,0x11,0x10,0x02,0xa4,0xbc,0xed,0x08,0xfe,0x2f,0x31,0x01,0xe7,0x1e,0x3e, -0xfe,0x1a,0x30,0x01,0xd0,0xfa,0xfe,0x65,0x01,0xc2,0x02,0x3a,0xfe,0x29,0x01,0x4b,0x01,0x8a,0x4f,0x41,0xaa,0x82,0xb2,0x7c,0x7a,0xb2,0x81,0xac,0x01,0x88,0x4b,0xa6,0x58,0xfd,0x27,0xfe,0x2f,0xfe,0x94,0x00,0x00,0x01,0x00,0xb8,0xfe,0x1e,0x06,0x66,0x05,0x9a,0x00,0x2f,0x00,0x85,0x40,0x4b,0x3a,0x23,0x01,0x0c,0x91,0x00,0x07,0x10, -0x07,0x02,0x09,0x03,0x07,0x03,0x0a,0x91,0x09,0x10,0x91,0x09,0x03,0x1c,0x0d,0x18,0x01,0x0d,0x04,0x18,0x14,0x1e,0x2a,0x22,0x91,0x40,0x16,0x1a,0x13,0x2e,0x26,0x1e,0x03,0x03,0x10,0x10,0x40,0x09,0x14,0x48,0x10,0x02,0x13,0x0a,0x18,0x27,0x26,0x0a,0x0a,0x1d,0x2f,0x7e,0x13,0x2e,0x0e,0x27,0x1e,0x26,0x42,0x27,0x7e,0x26,0x26,0x31, -0x1e,0x7e,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x39,0x5f,0x5e,0x5d,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5f,0x5e,0x5d,0xed,0x31,0x30,0x01,0x5d,0x01,0x10,0x00,0x21,0x22, -0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xfe,0xc1,0xfe,0xa4,0x47,0x7a,0x7a,0x30,0x68,0x56,0x56,0x70,0x38,0x72,0x71,0x50,0xf7,0xe5,0x0f, -0x06,0x6d,0xca,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0x01,0x29,0xfe,0x62,0xfe,0x93,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0xe8,0xfc,0xb2,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1c, -0x06,0x54,0x04,0x00,0x00,0x30,0x00,0x7d,0x40,0x49,0x0c,0x95,0x04,0x07,0x14,0x07,0x02,0x07,0x03,0x0a,0x95,0x09,0x10,0x95,0x09,0x42,0x03,0x1c,0x19,0x13,0x1b,0x2f,0x27,0x1f,0x0f,0x2b,0x23,0x95,0x40,0x16,0x1b,0x16,0x03,0x10,0x2d,0x10,0x01,0x02,0x0f,0x10,0x1f,0x10,0x02,0x09,0x03,0x10,0x40,0x0c,0x15,0x48,0x10,0x13,0x0a,0x0a, -0x1e,0x30,0x84,0x13,0x2f,0x0e,0x28,0x1f,0x27,0x42,0x19,0x28,0x84,0x27,0x27,0x32,0x1f,0x84,0x1e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x12,0x39,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x11,0x33,0x00,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x39,0x3f,0xe6,0xed,0x10,0xed,0x10, -0xdc,0x5d,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x13,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xfe,0xc9,0xfe,0xa5,0x46,0x6f,0x6f,0x34, -0x70,0x4a,0x56,0x6c,0x33,0x6c,0x6b,0x51,0xef,0xe8,0x0c,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0x01,0x5c,0xfe,0x3d,0xfe,0x85,0x0c,0x0b,0x19,0x8e,0x16,0x0b,0x0b,0xf5,0x01,0x03,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd, -0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0xb2,0x00,0x18,0x00,0x42,0x40,0x23,0x0b,0x09,0x1b,0x09,0x02,0x02,0x16,0x16,0x14,0x91,0x04,0x04,0x17,0x01,0x0d,0x0f,0x91,0x0a,0x04,0x17,0x03,0x01,0x0d,0x0d,0x16,0x11,0x00,0x7e,0x16,0x01,0x01,0x1a,0x11,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f, -0x33,0xe1,0x11,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd5,0xff,0x00,0xb4,0x98,0x40,0x3f,0x3d,0x3a,0xac, -0xa9,0x94,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x06,0xd8,0xcf,0xfd,0x18,0x96,0x1a,0xfe,0xce,0x98,0xb4,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x33,0xfe,0x29,0x03,0x85,0x04,0x18,0x00,0x18,0x00,0x42,0x40,0x26,0x0a,0x08,0x1a,0x08,0x02,0x0a,0x06,0x1a,0x06,0x02,0x01,0x1b,0x03,0x05,0x17,0x0c,0x0e,0x95,0x09,0x10,0x17,0x0f,0x13,0x95, -0x05,0x16,0x0c,0x0c,0x10,0x18,0x84,0x01,0x17,0x17,0x1a,0x10,0x84,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11, -0x33,0x03,0x85,0xa3,0x05,0x71,0xd4,0xfe,0x9b,0x01,0x48,0x3a,0x35,0x34,0x35,0xaa,0x71,0x7c,0x7a,0xa4,0xa3,0xfe,0x29,0x02,0x73,0xb4,0x02,0x18,0x02,0x18,0x14,0x8d,0x17,0xfe,0x7a,0xd4,0xc2,0xbc,0x8e,0x02,0x44,0x00,0x00,0x01,0x00,0x00,0xfe,0x1e,0x04,0xb8,0x05,0x9a,0x00,0x22,0x00,0x5e,0x40,0x37,0x2b,0x10,0x3b,0x10,0x02,0x44, -0x01,0x01,0x0b,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x02,0x09,0x91,0x08,0x0f,0x91,0x08,0x02,0x1c,0x1d,0x18,0x18,0x16,0x91,0x1f,0x1f,0x19,0x1c,0x03,0x19,0x02,0x0f,0x0f,0x40,0x09,0x12,0x48,0x0f,0x09,0x22,0x7e,0x13,0x13,0x24,0x1d,0x18,0x7e,0x1a,0x09,0x2f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f, -0x3f,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x01,0x5d,0x5d,0x25,0x10,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xb8,0xfd,0x71,0x45,0x77,0x77, -0x38,0x68,0x56,0x56,0x70,0x36,0x73,0x72,0x50,0xf7,0xe8,0xaa,0x97,0xbf,0xac,0xa8,0xa8,0xb9,0xcd,0xd3,0xfb,0xec,0xfd,0x32,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0x01,0x13,0x01,0x21,0xc8,0xb0,0xcf,0x71,0xfd,0x40,0x05,0x9a,0xfd,0xb6,0x78,0xfe,0xec,0xe5,0x00,0x00,0x02,0xff,0xec,0xff,0xe8,0x03,0xe8,0x04,0x18,0x00,0x26,0x00,0x2f, -0x00,0xc5,0x40,0x59,0x1c,0x1d,0x16,0x1b,0x0d,0x0e,0x1a,0x0e,0x27,0x0c,0x28,0x18,0x17,0x1d,0x16,0x2f,0x19,0x2f,0x1c,0x17,0x1d,0x16,0x1d,0x27,0x0d,0x0c,0x28,0x0c,0x1d,0x21,0x15,0x0c,0x08,0x29,0x0e,0x0f,0x95,0x2e,0x2f,0x2e,0x25,0xec,0x04,0x00,0x04,0x10,0x04,0x02,0x2e,0x04,0x2e,0x04,0x08,0x28,0x29,0x95,0x16,0x19,0x1a,0x03, -0x15,0x10,0x08,0xec,0x21,0x16,0x00,0x1d,0x16,0x1e,0x12,0x28,0x0c,0x0b,0x2c,0x0d,0x0e,0x1b,0x1c,0x04,0x1a,0x12,0x17,0x18,0x27,0x2f,0x04,0x2c,0x1a,0xb8,0x01,0x2e,0xb3,0x19,0x19,0x0b,0x2c,0xb8,0x01,0x2e,0x40,0x0b,0x12,0x12,0x01,0x1e,0x84,0x0b,0x0b,0x31,0x00,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, -0x39,0x2f,0xe1,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0xed,0x3f,0x17,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x04,0xc0,0x08,0xc0,0x10,0x87, -0xc0,0x04,0xc0,0x08,0xc0,0x31,0x30,0x33,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x37,0x33,0x06,0x07,0x16,0x15,0x14,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x8c,0xa0,0x13,0x85,0x68,0x65,0x6f,0x62,0x38, -0x5e,0x8c,0x38,0xa6,0xbe,0x78,0xa2,0xb9,0x96,0xa6,0x8b,0x1d,0x15,0x9b,0x27,0x42,0x76,0xec,0xa6,0x82,0x70,0x56,0x22,0x48,0x02,0x14,0x62,0x7d,0x52,0x5e,0x87,0x8c,0x8f,0xa4,0x64,0x58,0xdc,0x9d,0x78,0x63,0xa8,0x83,0x68,0x71,0x99,0x6c,0x32,0x3a,0x6f,0x61,0x98,0xc0,0xd6,0xfe,0xce,0x6a,0x52,0x02,0x91,0x59,0x43,0x35,0x68,0x00, -0x00,0x01,0x00,0x48,0xff,0xe8,0x04,0xae,0x05,0xb2,0x00,0x29,0x00,0x52,0x40,0x2e,0x03,0x28,0x13,0x28,0x02,0x0c,0x1c,0x06,0x23,0x04,0x03,0x29,0x29,0x19,0x26,0x13,0x13,0x03,0x0f,0x91,0x19,0x04,0x26,0x91,0x03,0x13,0x13,0x11,0x7e,0x16,0x1c,0x7d,0x0c,0x16,0x0c,0x16,0x0c,0x06,0x00,0x7e,0x29,0x29,0x2b,0x23,0x7d,0x06,0x2f,0xe1, -0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x11,0x17,0x39,0x31,0x30,0x5d,0x01,0x06,0x00,0x21,0x22,0x24,0x35,0x34,0x36,0x36,0x25,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x06,0x06, -0x07,0x05,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04,0xae,0x17,0xfe,0xb7,0xfe,0xf4,0xe9,0xfe,0xef,0x68,0xb4,0x01,0x4e,0xda,0xd0,0x78,0x9c,0x14,0xa4,0x16,0xa7,0x93,0xbf,0x01,0x41,0x3a,0x72,0x33,0xfe,0x73,0xd8,0xb4,0xa0,0xc0,0xf2,0x0c,0x02,0x0a,0xfe,0xfe,0xdc,0xfd,0xbb,0x78,0xaf,0x5c,0x4d,0x30,0x68,0x6a,0xa8,0x6c,0x25, -0x2f,0x30,0x32,0x69,0x8d,0xff,0x00,0xaa,0x46,0x6c,0x4d,0x0c,0x61,0x46,0xb4,0x80,0xa3,0xd3,0xb8,0x00,0x00,0x01,0x00,0x3e,0xff,0xe8,0x03,0x90,0x04,0x18,0x00,0x27,0x00,0x6e,0x40,0x29,0x05,0x09,0x15,0x09,0x02,0x0b,0x09,0x24,0x1f,0x1e,0x03,0x20,0x27,0x30,0x27,0x02,0x27,0x27,0x19,0x24,0x13,0x40,0x09,0x0c,0x48,0x13,0x13,0x03, -0x0f,0x95,0x19,0x10,0x24,0x95,0x03,0x16,0x1c,0x84,0x0c,0x13,0x11,0xb8,0x01,0x2e,0x40,0x0d,0x10,0x16,0x20,0x16,0x30,0x16,0x03,0x16,0x0c,0x16,0x0c,0x06,0x00,0xb8,0x01,0x2e,0xb5,0x27,0x27,0x29,0x21,0x84,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x32,0x10,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39, -0x2f,0x2b,0x11,0x12,0x39,0x2f,0x5d,0x11,0x39,0x39,0x11,0x39,0x39,0x5d,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x04,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x90,0x0a,0xf6,0xd2,0xad,0xd3,0x4a, -0x85,0xe1,0x97,0xa2,0x51,0x5d,0x21,0x98,0x1e,0x7c,0x6b,0x9d,0x01,0x05,0x6b,0xfe,0xa0,0x7c,0x7c,0x68,0x8c,0xa8,0x04,0x01,0xa0,0xd0,0xe8,0xb0,0x89,0x56,0x7e,0x47,0x34,0x23,0x44,0x41,0x78,0x46,0x29,0x31,0x31,0x37,0x53,0x6d,0xca,0x75,0x52,0x76,0x47,0x58,0x4b,0x50,0x65,0x9f,0x8f,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xb0, -0x05,0xb2,0x00,0x1c,0x00,0x1f,0x00,0xce,0x40,0x7a,0x1d,0x1e,0x8d,0x1e,0xbd,0x1e,0x03,0x74,0x0f,0xe4,0x0f,0x02,0x1e,0x1b,0x1f,0x19,0x0f,0x02,0x10,0x1c,0x0e,0x1c,0x1e,0x1f,0x19,0x04,0x03,0x02,0x10,0x1d,0x05,0x1d,0x0f,0x03,0x02,0x10,0x02,0x1e,0x1b,0x1a,0x1f,0x19,0x1f,0x10,0x42,0x0e,0x72,0x0e,0x82,0x0e,0x02,0x16,0x0e,0x46, -0x0e,0x56,0x0e,0x03,0x0e,0x1c,0x0c,0x19,0x42,0x05,0x76,0x05,0x01,0x05,0x04,0x1a,0x03,0x1b,0x1e,0x1d,0x07,0x1f,0x17,0x09,0x15,0x03,0x07,0x91,0x12,0x0c,0x04,0x1c,0x02,0x76,0x02,0x01,0x0f,0x02,0x1f,0x02,0x02,0x02,0x1f,0x91,0x01,0x10,0x19,0x19,0x1f,0x1f,0x02,0x15,0x0e,0x05,0x05,0x1d,0x1d,0x1c,0x09,0x15,0x09,0x15,0x09,0x02, -0x1c,0x1c,0x21,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x00,0x2f,0xed,0x39,0x5d,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x17,0x39,0x5d,0x10,0xe4,0x11,0x12,0x39,0x5d,0x5d,0x10,0xe6,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0x0e,0xc0, -0x10,0x87,0x08,0xc0,0x05,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x3d,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x21,0x35,0x01,0x27,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x07,0x01,0x27,0x01,0x01,0x04,0xb0,0xfb,0x64,0x01,0xf4,0x37,0x3b,0x46,0x2d, -0x2c,0x2c,0x2b,0x37,0x5a,0x8a,0x51,0x52,0x8b,0x59,0x36,0x2c,0x2c,0x2c,0x2c,0x4a,0x3c,0x36,0x01,0xf6,0xee,0xfe,0x9e,0xfe,0x9e,0x31,0x03,0xc1,0x6a,0x72,0x4c,0x14,0x98,0x14,0x76,0x9c,0x9e,0x74,0x14,0x98,0x14,0x49,0x75,0x66,0xfc,0x3b,0x67,0x02,0xb4,0xfd,0x4c,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x03,0xcd,0x04,0x18,0x00,0x1a, -0x00,0x1d,0x00,0x76,0x40,0x47,0x03,0x0e,0x33,0x0e,0x43,0x0e,0xd3,0x0e,0x04,0x0e,0x0b,0x19,0x03,0xcb,0x1c,0xdb,0x1c,0x02,0x8f,0x1c,0x01,0x14,0x1c,0x01,0x1c,0x03,0x1d,0x08,0x14,0x16,0x03,0x06,0x95,0x11,0x0b,0x10,0x1a,0x02,0x0b,0x02,0x2b,0x02,0x02,0x02,0x1d,0x95,0x01,0x19,0x03,0x1a,0x1d,0x14,0x02,0x1b,0x1a,0x08,0x0f,0x14, -0x01,0x00,0x08,0x01,0x14,0x08,0x14,0x08,0x02,0x1a,0x1a,0x1f,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x12,0x39,0x11,0x12,0x39,0x12,0x39,0x39,0x00,0x2f,0xed,0x39,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x33,0x12,0x39,0x5d,0x31,0x30,0x21,0x21,0x35,0x01,0x27,0x26, -0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x01,0x27,0x03,0x03,0x03,0xcd,0xfc,0x47,0x01,0x88,0x25,0x3b,0x40,0x21,0x21,0x20,0x2c,0x50,0x66,0x34,0x35,0x67,0x4f,0x2b,0x21,0x21,0x20,0x46,0x3c,0x22,0x01,0x8b,0xe3,0xfc,0xfc,0x23,0x02,0xba,0x44,0x6d,0x0f,0x8b,0x0e,0x48, -0x5e,0x5f,0x47,0x0e,0x8b,0x0f,0x6d,0x3f,0xfd,0x41,0x69,0x01,0xc6,0xfe,0x3a,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xee,0x06,0x04,0x00,0x1e,0x00,0x2a,0x00,0x74,0x40,0x34,0x33,0x18,0x43,0x18,0x53,0x18,0x03,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x03,0x99,0x05,0x01,0x0b,0x13,0x1f,0x91,0x0d,0x0d,0x19,0x25,0x03,0x91,0x0f,0x1d,0x1f, -0x1d,0x2f,0x1d,0x03,0x1d,0x19,0x01,0x91,0x00,0x07,0x91,0x00,0x42,0x19,0x01,0x25,0x91,0x13,0x13,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x0e,0x0c,0x12,0x48,0x01,0x05,0x01,0x0a,0x10,0x7d,0x28,0x28,0x2c,0x0a,0x22,0xb9,0x01,0x2f,0x00,0x16,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, -0xe6,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x06,0x03,0x33,0x36,0x21,0x32,0x00,0x15,0x14,0x00,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04, -0xc2,0x50,0x68,0x33,0x6a,0x6b,0x4a,0xc2,0xc7,0x15,0x09,0xa3,0x01,0x07,0xf6,0x01,0x2b,0xfe,0xb9,0xff,0xfe,0xe6,0xfe,0xd0,0x01,0x23,0x01,0x3d,0x44,0x6e,0x6d,0x35,0x60,0xfe,0x3e,0xb4,0xe2,0xd7,0xb9,0xb7,0xdd,0xd7,0x06,0x04,0x96,0x18,0x0a,0x0a,0xe7,0xfe,0xef,0xc8,0xfe,0xce,0xf0,0xf2,0xfe,0xc2,0x01,0x58,0x01,0x45,0x01,0xda, -0x01,0xa3,0x0a,0x0a,0xfd,0xb4,0xd8,0xa5,0xbe,0xe8,0xe0,0xb1,0xb2,0xe0,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x00,0x1e,0x00,0x2c,0x00,0x75,0x40,0x2f,0x6b,0x1e,0x7b,0x1e,0x02,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x8c,0x09,0x04,0x0b,0x1f,0x1f,0x2a,0x95,0x0d,0x0d,0x19,0x24,0x03,0x95,0x1d,0x40,0x09,0x0e,0x48,0x1d,0x19, -0x01,0x95,0x00,0x42,0x07,0x95,0x19,0x01,0x24,0x95,0x13,0x16,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0f,0x24,0x48,0x0a,0x05,0x21,0x6f,0x01,0x7f,0x01,0x8f,0x01,0x03,0x01,0x01,0x16,0x10,0x83,0x27,0x27,0x2e,0x21,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, -0xed,0xf6,0xed,0x10,0xdc,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x02,0x03,0x33,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x06,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, -0x03,0xdb,0x38,0x4f,0x18,0x39,0x3a,0x2f,0xac,0xc6,0x1a,0x04,0x81,0xe1,0xdc,0x01,0x00,0xfe,0xe8,0xea,0xed,0xfe,0xff,0x01,0x21,0x01,0x21,0x20,0x45,0x45,0x1e,0x44,0xfd,0x5e,0x04,0xb1,0x9f,0xa0,0xb0,0xb3,0xa3,0x63,0xb3,0x06,0x06,0x8b,0x11,0x04,0x04,0xfe,0xfc,0xfe,0xfc,0xae,0xfe,0xe4,0xf8,0xf4,0xfe,0xd8,0x01,0x57,0x01,0x40, -0x01,0xc1,0x01,0xc2,0x04,0x04,0xfc,0xcc,0x41,0x35,0xd8,0xfe,0xfa,0xcf,0xbd,0xc3,0xcd,0x71,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x13,0x00,0x36,0x40,0x17,0x09,0x01,0x04,0x91,0x12,0x0f,0x0f,0x03,0x10,0x03,0x03,0x12,0x01,0x7e,0x0f,0x04,0x04,0x0c,0x00,0x00,0x15,0x09,0x07,0xb9,0x01,0x2e,0x00,0x0c,0x2f,0xe1, -0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0xfd,0x32,0xc6,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x21,0x33,0x11,0x33,0x11,0x21,0x04,0x7b,0xfe,0x33,0xa8,0xff,0x00,0x68,0x08,0x8e,0x0e,0x01,0x00,0xfc,0xa8,0x01,0xcd,0x04,0x00,0xfc,0x00,0x04, -0x00,0x5a,0x28,0x1e,0x32,0x34,0xd2,0x01,0x02,0xfe,0xfe,0x00,0x00,0x01,0x00,0x00,0xfe,0x96,0x03,0x4e,0x05,0x2f,0x00,0x18,0x00,0x3a,0x40,0x1d,0x05,0xec,0x40,0x04,0x19,0x80,0x0e,0x09,0x16,0x01,0x09,0x95,0x17,0x14,0x0f,0x05,0x17,0x01,0x84,0x14,0x09,0x09,0x11,0x00,0x1a,0x0e,0x0c,0xed,0x11,0x2f,0xe1,0x32,0x10,0xc6,0x11,0x39, -0x2f,0x33,0xe1,0x32,0xc6,0x00,0x3f,0x33,0xed,0x32,0xcd,0x10,0xc6,0x1a,0x10,0xde,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x33,0x33,0x35,0x37,0x11,0x21,0x03,0x4e,0xfe,0xc0,0xfe,0xa0,0x68,0x54,0x7a,0x60,0x06,0x8c,0x0a,0xf0,0x7a,0xa4,0x01,0x40,0x03, -0x74,0xfc,0xd6,0xfe,0x90,0x44,0x9f,0x16,0x7e,0x7f,0x03,0x2c,0x53,0x21,0x1e,0x30,0x2e,0xc0,0xfa,0x35,0xfe,0xd1,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x90,0x04,0x18,0x00,0x29,0x00,0x65,0x40,0x35,0x1d,0x0b,0x07,0x1f,0x1f,0x0b,0x0e,0x21,0x0f,0x15,0x13,0x95,0x18,0x10,0x29,0x27,0x95,0x40,0x02,0x16,0x0e,0x1f,0x07,0x21,0x05,0x1d, -0x0b,0x1b,0x0d,0x21,0x83,0x22,0x22,0x29,0x24,0x84,0x05,0x0e,0x29,0x15,0x1b,0x42,0x0d,0x83,0x0e,0x0e,0x15,0x1b,0x84,0x10,0x10,0x2b,0x15,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x18,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x3f, -0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x90,0x33,0x3f,0x88,0x9c,0x14,0x06,0xf1,0x94,0x56,0x14,0x27, -0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x02,0x16,0xde,0xbf,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59,0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x15,0x00,0x00,0x02,0x00,0xa2,0xfe,0x1e, -0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x39,0x40,0x20,0x05,0x03,0x15,0x03,0x02,0x22,0x95,0x12,0x10,0x00,0x1a,0x1a,0x1d,0x95,0x18,0x16,0x07,0x95,0x08,0x1c,0x07,0x07,0x0f,0x15,0x83,0x1f,0x1f,0x27,0x01,0x25,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x3f,0xed, -0x31,0x30,0x5d,0x25,0x23,0x1e,0x02,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x24,0x02,0x11,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0x09,0x76,0xd1,0xc7,0x78,0x43,0x40,0x7f,0xf2,0xfe,0xee,0xb1,0xf4,0xe1,0xd9,0x01,0x00,0xf8,0xdd,0xc1,0x76, -0x26,0xa5,0x59,0x01,0x3e,0xa7,0x8f,0x90,0x9c,0x62,0x92,0xc0,0x56,0x04,0x02,0x08,0x8e,0x08,0x02,0x04,0x66,0x01,0x24,0x01,0x54,0x01,0x04,0xf4,0x01,0x16,0xfe,0xde,0xe6,0xfe,0xfc,0xfe,0xdc,0x01,0x1a,0x3d,0x53,0x01,0x96,0xb0,0xd6,0xcf,0xb3,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00, -0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x02,0xcf,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x39,0x40,0x1e,0x0e,0x95,0x40,0x0d,0x08,0x00,0x0d,0x95,0x2b,0x30,0x09,0x95,0x08,0x0f,0x12,0x95, -0x00,0x0c,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x00,0x00,0x14,0x0f,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x15,0x23,0x20,0x03,0x21,0x15,0x21,0x12,0x21,0x33,0x03,0x5c,0xe3,0xf9,0xfe,0xe0, -0x01,0x2d,0xff,0xc6,0xc9,0xfe,0xb6,0x33,0x02,0x1f,0xfd,0xdb,0x1b,0x01,0x68,0xd3,0x01,0x09,0xe3,0xf3,0x01,0x21,0x8c,0xfe,0xe0,0x8c,0xfe,0xc4,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x37,0x40,0x1d,0x05,0x95,0x40,0x06,0x0b,0x00,0x06,0x95,0x2b,0x30,0x0a,0x95,0x0b,0x0f,0x01,0x95,0x00,0x0f,0x83,0x04, -0x0a,0x05,0x0a,0x05,0x07,0x04,0x04,0x14,0x00,0x2f,0x11,0x39,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x13,0x21,0x35,0x21,0x02,0x21,0x23,0x35,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x60,0xd3,0x01,0x5d,0x24,0xfd,0xde,0x02,0x22,0x2a,0xfe,0xa9, -0xc9,0xda,0xf8,0x01,0x20,0xfe,0xd4,0xff,0x8c,0x01,0x3c,0x8c,0x01,0x20,0x8c,0xfe,0xf7,0xe3,0xf4,0xfe,0xe0,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x06,0xca,0x05,0x9a,0x00,0x33,0x00,0x2b,0x40,0x15,0x32,0x10,0x15,0x25,0x7e,0x24,0x16,0x7e,0x15,0x15,0x07,0x24,0x24,0x35,0x08,0x7e,0x07,0x07,0x03,0x00,0x12,0x00,0x3f,0x3f,0x01,0x2f, -0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x21,0x2e,0x05,0x27,0x33,0x1e,0x05,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x05,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x2e,0x03,0x27,0x03,0x01,0xe2,0x4d,0x75,0x5a,0x40,0x32,0x25,0x11,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0xe0,0x15,0x21,0x1c, -0x18,0x0c,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0x35,0x57,0x46,0x38,0x2e,0x25,0x11,0xa8,0x11,0x25,0x32,0x40,0x5a,0x75,0x4d,0xa4,0x2b,0x4a,0x40,0x37,0x17,0xd5,0x95,0xf8,0xdd,0xd0,0xdc,0xf3,0x91,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x02,0x3c,0x48,0x94,0x9f,0xb0,0x63,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x6d,0xbd,0xb5,0xb5, -0xc7,0xe5,0x8a,0x92,0xf2,0xdc,0xd0,0xde,0xf7,0x95,0x53,0x95,0x89,0x7f,0x3c,0xfd,0xd4,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x05,0x5e,0x04,0x00,0x00,0x14,0x00,0x4c,0x40,0x25,0x0d,0x03,0x02,0x0f,0x14,0x08,0x03,0x0d,0x02,0x0f,0x0f,0x02,0x0c,0x13,0x03,0x04,0x02,0x01,0x13,0x05,0x04,0x0c,0x13,0x0c,0x00,0x08,0x10,0x0f,0x0f,0x14, -0x08,0x14,0x00,0x00,0x16,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x17,0x33,0x3f,0x12,0x39,0x39,0x33,0x33,0x87,0x05,0xc0,0xc0,0x31,0x30,0x01,0x01,0x23,0x03,0x03,0x23,0x02,0x02,0x27,0x33,0x16,0x12,0x13,0x13,0x26,0x27,0x33,0x16,0x12,0x17, -0x01,0x05,0x5e,0xfe,0xaa,0xa6,0xb8,0xb6,0x94,0xb5,0x72,0x1b,0xa8,0x1a,0x58,0x7c,0xaa,0x47,0x1b,0xac,0x20,0x77,0x75,0x01,0x08,0x04,0x00,0xfc,0x00,0x01,0xaa,0xfe,0x56,0x01,0x9b,0x01,0x76,0xef,0xcf,0xfe,0xce,0xfe,0xce,0x01,0x87,0xcb,0xe1,0xe2,0xfe,0xad,0xfe,0x03,0x33,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0xc6,0x05,0x9a, -0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f, -0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x4c,0xfe,0xdd,0x01,0x23,0xa8,0x01,0x5a,0xfe,0xa6,0x01,0x10,0xd4,0xee,0xf8,0xd8,0xfe,0xfe,0xeb,0x96,0xa1,0xfe,0xc9,0x04,0x74, -0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcd,0xc1,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x4e,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b, -0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, -0x35,0x34,0x23,0x01,0x40,0xfe,0xe9,0x01,0x17,0xa4,0x01,0x38,0xfe,0xc8,0x01,0x12,0x9d,0xbb,0xbb,0x8d,0xfe,0xde,0xf5,0xcd,0xcf,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0xc5,0xa3,0x94,0x93,0xad,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x06,0xd9,0x05,0xb2,0x00,0x1f,0x00,0x5e,0x40,0x34,0x1a,0x17,0x06,0x91, -0x40,0x0b,0x0a,0x08,0x0b,0x91,0x2b,0x30,0x30,0x12,0x01,0x12,0x12,0x14,0x91,0x0f,0x04,0x0a,0x03,0x20,0x1f,0x01,0x1f,0x1f,0x1d,0x91,0x02,0x13,0x08,0x19,0x19,0x17,0x12,0x1a,0x7d,0x0c,0x12,0x05,0x05,0x08,0x12,0x00,0x00,0x21,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0xe1,0x11,0x39,0x39, -0x2f,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x03,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x06,0xd9,0x9f,0xea,0xfe,0xde,0xfe,0x95, -0x0f,0xfe,0xb0,0xa8,0xa8,0x01,0x52,0x1d,0x01,0x7e,0x01,0x1b,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x79,0xfd,0x85,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x69,0x01,0x2e,0xfd,0x81,0x05,0x9a,0xfd,0x7c,0x01,0x34,0x01,0x68,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xed,0x60,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8, -0x05,0x66,0x04,0x18,0x00,0x1f,0x00,0x68,0x40,0x3a,0x17,0x1a,0x06,0x95,0x40,0x0b,0x0a,0x08,0x0b,0x95,0x2b,0x30,0x0a,0x0f,0x40,0x12,0x50,0x12,0x02,0x12,0x12,0x14,0x95,0x0f,0x10,0x30,0x1f,0x01,0x1f,0x1f,0x1d,0x95,0x02,0x16,0x08,0x17,0x12,0x1a,0x83,0x05,0x0c,0x12,0x05,0x18,0x12,0x18,0x12,0x00,0x05,0x05,0x08,0x00,0x00,0x21, -0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xe1,0x11,0x39,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x32,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, -0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x05,0x66,0x72,0xa0,0xd6,0xfe,0xf9,0x0f,0xfe,0xe2,0xa4,0xa4,0x01,0x20,0x18,0x01,0x0e,0xdc,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0xfb,0xdb,0xfe,0x42,0x04,0x00,0xfe,0x4a,0xdb,0xf3,0x32,0xa2, -0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x3c,0x05,0x9a,0x00,0x0b,0x00,0x14,0x00,0x66,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x08,0x02,0x03,0x06,0x07,0x0c,0x10,0x13,0x14,0x08,0x0b,0x0a,0x03,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14, -0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x17,0x39,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23, -0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x17,0x05,0x3c,0xbb,0xfc,0x8f,0xa8,0x83,0xff,0x00,0xb5,0x02,0x3e,0xb6,0x3e,0x7d,0x12,0x0b,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x05,0x9a,0xfd,0x91,0x01,0x45,0x2f,0x51,0x47,0x3b,0xfe,0xc3,0xd7, -0x00,0x02,0x00,0x0c,0x00,0x00,0x03,0xf2,0x04,0x00,0x00,0x0b,0x00,0x14,0x00,0x68,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x02,0x03,0x06,0x07,0x0c,0x13,0x06,0x14,0x14,0x08,0x0b,0x0a,0x0f,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14,0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09, -0x09,0x05,0x42,0x04,0x8b,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x33,0x11,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27, -0x03,0x23,0x01,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x03,0xf2,0xb0,0x98,0x60,0x96,0x64,0x9c,0xa8,0x01,0xac,0xa2,0x18,0x4d,0x1b,0x08,0x04,0x0b,0x16,0x51,0x7a,0x01,0x8c,0x76,0xfe,0xea,0x01,0x16,0x78,0xfe,0x72,0x04,0x00,0xfe,0x1a,0xd2,0x4a,0x45,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x06,0xe6, -0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0xa1,0x40,0x59,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x11,0x0a,0x09,0x12,0x09,0x02,0x03,0x06,0x07,0x14,0x1b,0x1c,0x07,0x0c,0x12,0x0a,0x91,0x40,0x11,0x0f,0x0c,0x11,0x91,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x03,0x01,0x05,0x08,0x09, -0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x1e,0x0f,0x09,0x01,0x09,0x09,0x1e,0x10,0x0c,0x7e,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17, -0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x03,0x26, -0x27,0x23,0x06,0x07,0x03,0x17,0x06,0xe6,0xbb,0xfc,0x8f,0xa8,0x84,0xff,0x00,0xb4,0x01,0x0d,0xfe,0x97,0xa8,0xa8,0x01,0xa4,0xf6,0xb6,0x3e,0x7e,0x10,0x0c,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x02,0x65,0xfd,0x91,0x01,0x45,0x2a,0x56,0x47,0x3b,0xfe, -0xc3,0xd7,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0x7b,0x04,0x00,0x00,0x13,0x00,0x1c,0x00,0xb0,0x40,0x50,0x11,0x0a,0x09,0x12,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x02,0x03,0x06,0x07,0x14,0x1b,0x06,0x00,0x1c,0x01,0x13,0x03,0x1c,0x1c,0x0c,0x0f,0x0a,0x96,0x40,0x11,0x0f,0x0c, -0x11,0x96,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x0f,0x01,0x05,0x08,0x09,0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0xb8,0x01,0x2e,0x40,0x11,0x05,0x05,0x1e,0x2f,0x09,0x3f,0x09,0x4f,0x09,0x03,0x09,0x09,0x1e,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f, -0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17,0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x17,0x33,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x87,0xc0,0xc0, -0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x05,0x7b,0xb0,0x98,0x60,0x95,0x65,0x9b,0xa8,0xc2,0xfe,0xf2,0xa4,0xa4,0x01,0x46,0xb2,0xa2,0x18,0x4e,0x1b,0x07,0x05,0x0b,0x16,0x52,0x7c,0x01,0x8c,0x76,0xfe,0xea,0x01, -0x16,0x78,0xfe,0x72,0x01,0xd5,0xfe,0x2b,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x1a,0xd2,0x49,0x46,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb3,0x40,0x30,0x10,0x03,0x0f,0x03,0x1a,0x19,0x06,0x13,0x06,0x1a,0x19,0x13,0x06,0x16,0x15,0x14,0x03,0x14,0x16,0x15,0x03,0x14, -0x0d,0x0e,0x06,0x0d,0x18,0x10,0x03,0x17,0x17,0x0e,0x03,0x06,0x06,0x09,0x13,0x14,0x91,0x40,0x0f,0x0e,0x03,0x05,0x01,0x09,0x13,0x0f,0xb8,0xff,0xd8,0x40,0x14,0x0b,0x01,0x4d,0x0f,0x0f,0x00,0x03,0x14,0x00,0x0e,0x10,0x0e,0x02,0x09,0x03,0x0e,0x0e,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09,0xb8,0x01, -0x2f,0x40,0x0b,0x0a,0x0a,0x1b,0x18,0x17,0x03,0x7e,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x17,0x33,0x87, -0x05,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x16,0x17,0x33,0x36,0x37,0x05,0xaa,0xc0,0x32,0xfe,0x8a,0xa8,0xcb,0xcb,0x1a, -0xc1,0x33,0xfd,0xe9,0xfe,0x62,0x04,0xa0,0xfe,0x52,0xea,0xf7,0xfe,0xb0,0xfd,0x9f,0x01,0x07,0x0d,0x16,0x02,0x10,0x16,0x02,0x0a,0x66,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x01,0x50,0x01,0x67,0x45,0x02,0x9e,0xfd,0x60,0x48,0xfe,0x9a,0x03,0xb6,0xfe,0x52,0x22,0x36,0x35,0x23,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x66, -0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x87,0x40,0x26,0x0f,0x0e,0x03,0x0e,0x0c,0x0d,0x06,0x0d,0x0f,0x42,0x0c,0x0c,0x08,0x16,0x16,0x0d,0x03,0x42,0x06,0x06,0x08,0x13,0x95,0x40,0x0e,0x0d,0x0f,0x05,0x01,0x08,0x12,0x13,0x0d,0x0e,0x0e,0x00,0x03,0x0d,0xb8,0xff,0xc0,0x40,0x16,0x0b,0x0f,0x48,0x0d,0x0d,0x06,0x09,0x00,0x83,0x01,0x0e, -0x03,0x08,0x06,0x42,0x08,0x83,0x09,0x09,0x19,0x16,0x03,0xb8,0x01,0x2e,0xb6,0x10,0x06,0x01,0x06,0x06,0x1a,0x19,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0x33,0x33,0x3f,0x32,0x1a,0xed,0x12,0x39,0x2f,0xe5,0x12, -0x39,0x11,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x36,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x13,0x16,0x17,0x36,0x37,0x04,0x66,0xae,0x21,0xfe,0xfd,0x9c,0xfe,0xf8,0x23,0xaf,0x29,0xb9,0xae,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0xab,0xb7,0xfe,0xd7, -0xfe,0x6f,0xb5,0x04,0x0a,0x04,0x0c,0x01,0x64,0x4e,0xfe,0x4e,0x01,0xb4,0x4b,0xfe,0x97,0xf6,0x01,0x01,0x34,0x01,0xd5,0xfe,0x29,0x36,0xff,0x00,0x02,0x86,0xfe,0xdd,0x06,0x18,0x0a,0x14,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x48,0x05,0x9a,0x00,0x18,0x00,0x1f,0x00,0xa9,0x40,0x3f,0x0c,0x0a,0x13,0x0a,0x16,0x03,0x15,0x03,0x13,0x14, -0x06,0x14,0x16,0x42,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0c,0x91,0x40,0x13,0x11,0x0e,0x13,0x91,0x2b,0x30,0x1a,0x91,0x14,0x40,0x15,0x14,0x11,0x03,0x01,0x05,0x0a,0x03,0x0e,0x19,0x15,0x15,0x00,0x03,0x1a,0x00,0x14,0x10,0x14,0x02,0x0b,0x03,0x14,0x14,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09, -0xb8,0x01,0x2f,0x40,0x13,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0a,0x0e,0x1d,0x1c,0x03,0x7e,0x06,0x06,0x21,0x12,0x0e,0x7e,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x5d,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33, -0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x25,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x17,0x33,0x36,0x37,0x07,0x48,0xc1, -0x2f,0xfe,0x87,0xa7,0xcb,0xcb,0x1b,0xc1,0x54,0x01,0x34,0xfe,0x16,0xa8,0xa8,0x02,0x54,0xfe,0x8a,0x04,0xa0,0xfe,0x51,0xea,0xf8,0xfe,0xaf,0xfd,0xa0,0x01,0x06,0x24,0x02,0x10,0x16,0x02,0x09,0x67,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x02,0x0e,0x92,0xfd,0x60,0x05,0x9a,0xfd,0xa2,0x02,0x5e,0xfd,0x60,0x48,0xfe,0x9c,0x03, -0xb4,0xfe,0x52,0x58,0x35,0x23,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xdf,0x04,0x00,0x00,0x17,0x00,0x1d,0x00,0xb8,0x40,0x4c,0x0b,0x09,0x12,0x09,0x15,0x03,0x14,0x03,0x12,0x13,0x06,0x15,0x05,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0b,0x96,0x40,0x12,0x10,0x0d,0x12,0x96,0x2b,0x30,0x19,0x95,0x13,0x40,0x14,0x13,0x10,0x0f,0x01, -0x05,0x09,0x03,0x0d,0x18,0x14,0x14,0x00,0x03,0x19,0x00,0x13,0x10,0x13,0x20,0x13,0x60,0x13,0x04,0x0d,0x03,0x13,0x13,0x06,0x09,0x00,0x83,0x01,0x0e,0x03,0x08,0x06,0x42,0x08,0x83,0x09,0xb8,0xff,0xc8,0x40,0x0e,0x0b,0x0c,0x01,0x4c,0x09,0x40,0x09,0x0c,0x48,0x09,0x09,0x0d,0x1c,0x03,0xb8,0x01,0x2e,0x40,0x0c,0x0f,0x06,0x1f,0x06, -0x02,0x06,0x06,0x1f,0x11,0x0d,0x84,0x0e,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33,0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39, -0x11,0x12,0x39,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x12,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x16,0x01,0x21,0x13,0x16,0x17,0x37,0x05,0xdf,0xae,0x23,0xfe,0xfe,0x9c,0xfe,0xf7,0x21,0xae,0x3e,0xe2,0xfe,0x92,0xa4,0xa4,0x01,0xbc,0xfe, -0xe4,0x03,0xb4,0xfe,0xb8,0xab,0xb6,0xfe,0xd9,0xfe,0x6e,0xb4,0x07,0x07,0x11,0x01,0x66,0x4c,0xfe,0x4e,0x01,0xb4,0x4d,0xfe,0x99,0x01,0x72,0x67,0xfe,0x27,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x29,0x36,0xff,0x02,0x85,0xfe,0xdd,0x0b,0x13,0x1e,0x00,0x00,0x01,0x00,0x31,0xfe,0x66,0x03,0xe2,0x06,0xcb,0x00,0x43,0x00,0x75,0x40,0x41, -0x32,0x7d,0x13,0x00,0x7d,0x01,0x2e,0x17,0x2c,0x7d,0x1b,0x13,0x01,0x1b,0x17,0x20,0x20,0x17,0x1b,0x01,0x13,0x05,0x45,0x3b,0x7e,0x09,0x03,0x9a,0x42,0x42,0x35,0x3e,0x0c,0x9a,0x39,0x39,0x35,0x2f,0x2e,0x16,0x9a,0x17,0x17,0x29,0x10,0x9a,0x35,0x27,0x26,0x0f,0x24,0x1f,0x24,0x02,0x24,0x20,0x1e,0x99,0x23,0x29,0x03,0x3e,0x9a,0x01, -0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xed,0x32,0xc4,0x5d,0x39,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x20,0x11,0x34,0x36,0x33, -0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x36,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0xd3,0xb7,0x4d,0x2c,0x6f,0x70,0x45,0xfe, -0xb2,0xa6,0xa0,0x17,0x4b,0x4b,0x18,0x72,0x81,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x82,0xa2,0xb9,0x73,0xa4,0xa4,0x77,0xbd,0x58,0xea,0xfe,0xf0,0x94,0xae,0xdb,0xbd,0x18,0x58,0x58,0x18,0x93,0x56,0x4c,0x2b,0x7b,0x7b,0x4a,0xef,0xfe,0x66,0x4c,0x26,0x26,0x01,0x23,0x80,0x91,0x06,0x06,0x89,0x75,0x01,0x14,0x8b,0x8a, -0x7e,0x6c,0x82,0x71,0xaa,0x48,0x0d,0x01,0x1c,0xe5,0xe5,0xfe,0xdd,0x0a,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xb4,0xe2,0x06,0x06,0x89,0x3f,0x50,0x25,0x25,0x00,0x01,0x00,0x21,0xfe,0x66,0x03,0x3c,0x05,0x35,0x00,0x42,0x00,0x79,0xb3,0x31,0x84,0x13,0x00,0xb8,0x01,0x2e,0x40,0x13,0x01,0x2d,0x17,0x2a,0x84,0x1a,0x13,0x01, -0x1a,0x17,0x1f,0x1f,0x17,0x1a,0x01,0x13,0x05,0x44,0x3a,0xb8,0x01,0x2e,0x40,0x27,0x0a,0x03,0x96,0x41,0x41,0x34,0x3d,0x2e,0x2d,0x16,0x95,0x17,0x17,0x28,0x0d,0x96,0x38,0x38,0x28,0x11,0x96,0x34,0x15,0x1f,0x1d,0x95,0x0f,0x23,0x1f,0x23,0x02,0x23,0x22,0x28,0x0f,0x3d,0x95,0x01,0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xc4,0x5d,0xed, -0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x34,0x21,0x23,0x35,0x33, -0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x1e,0x95,0x3d,0x2e,0x55,0x55,0x38,0x82,0x99,0x9b,0x82,0x13,0x3b,0x3a,0x13,0xbf,0xfe,0xd6,0x64,0x60,0x01, -0x04,0x77,0x67,0x96,0x96,0x81,0x71,0xb6,0x73,0xa4,0xa4,0x77,0xb9,0xf9,0x71,0x61,0x70,0x8c,0xb0,0xa4,0x14,0x45,0x45,0x12,0x86,0x4b,0x41,0x2c,0x55,0x55,0x44,0xc6,0xfe,0x66,0x50,0x28,0x28,0x99,0x82,0x71,0x9a,0x07,0x08,0xa1,0xaa,0x8a,0xa4,0x45,0x53,0x4c,0x99,0x2e,0x0b,0x01,0x17,0xe5,0xef,0xfe,0xd9,0x29,0xdf,0x5b,0x80,0x15, -0x04,0x09,0x87,0x6a,0x89,0x97,0x07,0x07,0x85,0x42,0x51,0x25,0x25,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x05,0xc0,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x1e,0x14,0x11,0x91,0x04,0x07,0x07,0x06,0x18,0x12,0x0c,0x03,0x06,0x00,0x7e,0x17,0x17,0x1b,0x06,0x0c,0x0b,0x0b,0x1a,0x14,0x05,0x7e,0x11,0x06,0x06,0x1b,0x1a,0x11,0x12,0x39,0x2f, -0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x20,0x03,0x03,0x33,0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x20,0x11,0x11,0x33,0x05,0xc0,0xfe,0xe1,0xf1,0x39,0x9c,0x54,0xfe,0xd9,0x54,0xa6,0xa4, -0xa0,0x1d,0x6b,0x6e,0x3b,0x9c,0x39,0x01,0x68,0xa8,0x03,0x87,0xdf,0xfe,0xdd,0xfe,0x7b,0x01,0x85,0x01,0x5f,0x02,0xb6,0xfd,0x5e,0x79,0x65,0x03,0x80,0xfc,0x80,0x01,0x6d,0x02,0x13,0x00,0x00,0x01,0x00,0x66,0xfe,0x1e,0x05,0x7b,0x05,0x33,0x00,0x1b,0x00,0x40,0x40,0x19,0x06,0x1c,0x13,0x13,0x1a,0x0d,0x0f,0x15,0x12,0x95,0x04,0x07, -0x16,0x00,0x84,0x19,0x19,0x1d,0x06,0x0d,0x0c,0x0c,0x1c,0x14,0x05,0xb8,0x01,0x2e,0xb4,0x13,0x06,0x06,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0x2f,0x3f,0x31,0x30,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x27,0x03,0x33, -0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x7b,0xfe,0xe4,0xe8,0x19,0x93,0x15,0xac,0xd4,0x3c,0x94,0xa6,0x94,0x2a,0x81,0x6f,0x11,0x93,0x19,0x96,0xca,0xa4,0x02,0x2d,0xfe,0xf4,0xfe,0xc9,0xfe,0x34,0x01,0xcc,0xca,0xf6,0x02,0x56,0xfd,0xaa,0xa9,0x88,0x04,0xba,0xfb,0x46,0xef,0xc3,0x01,0xd5,0x00, -0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x12,0x18,0x91,0x40,0x22,0x1c,0x0e,0x25,0x0f,0x14,0x42,0x0c,0x1a,0x14,0x91,0x20,0x20,0x00,0x0f,0x91,0x06,0x04,0x25,0x91,0x00,0x13,0x22,0x1a,0x12,0x09,0x7d,0x0c,0x0c,0x29,0x12,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, -0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x18,0xed,0x33,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x24,0x23,0x22,0x00,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x05,0x16,0x00,0x33, -0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xbe,0x1a,0xfe,0xff,0xcf,0xd6,0xfe,0xea,0x0e,0xfc,0x46,0x3c,0x88,0x88,0x24,0x3d,0xfb,0xf0,0x52,0x3a,0x84,0x84,0x2e,0x2a,0xfe,0xf6,0x1a,0x01,0x09,0xc7,0xe4,0x01,0x0e,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd, -0xfe,0xa1,0xfe,0x68,0x03,0x52,0xe7,0xf9,0xfe,0xd8,0xf4,0x52,0x3a,0x3b,0x39,0x5a,0x3a,0x3a,0x56,0xe0,0xfe,0xf9,0x01,0x21,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x57,0x40,0x30,0x0b,0x25,0x1b,0x25,0x02,0x00,0x0f,0x10,0x0f,0x02,0x0c,0x03,0x11,0x17,0x95,0x40,0x21,0x1b,0x0e,0x24, -0x0e,0x13,0x42,0x0c,0x13,0x95,0x19,0x1f,0x1f,0x00,0x0e,0x95,0x06,0x10,0x24,0x95,0x00,0x16,0x09,0x83,0x0c,0x19,0x19,0x27,0x11,0x21,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x33,0x18,0xed,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x01,0x5f,0x5e,0x5d, -0x5d,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0x69,0x22,0xfe,0xdc,0x8b,0xb5,0x12,0x8e,0x35,0x30,0x6c,0x6b, -0x1e,0x22,0x8e,0x84,0x34,0x30,0x68,0x68,0x26,0x1e,0x9c,0x12,0xb4,0x8c,0x01,0x26,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x64,0x01,0x42,0xaa,0x9a,0x31,0x34,0x35,0x5a,0x33,0x35,0x34,0x38,0x9a,0xaa,0x00,0x01,0x00,0x12,0x00,0x00,0x05,0xb8,0x05,0xb2,0x00,0x13,0x00,0x31,0x40,0x17,0x01,0x03, -0x91,0x12,0x04,0x09,0x03,0x0c,0x07,0x07,0x06,0x0c,0x0c,0x08,0x10,0x05,0x00,0x7e,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x36,0x33, -0x32,0x05,0xb8,0x9a,0x0c,0x47,0x41,0x2a,0xfe,0x77,0xbd,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x07,0x1a,0x01,0x3b,0x3f,0xbb,0xd1,0x04,0xc0,0x63,0x7d,0xfb,0x5a,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x32,0x4f,0x03,0xc7,0xc0,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x00,0x13,0x00,0x34,0x40,0x11,0x01,0x03,0x95,0x12, -0x10,0x09,0x0f,0x0c,0x07,0x07,0x06,0x0d,0x0d,0x08,0x10,0x05,0x00,0xb8,0x01,0x2e,0xb4,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36, -0x33,0x32,0x04,0x9a,0x96,0x08,0x42,0x37,0x31,0xfe,0xe8,0xa8,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x08,0x18,0xbf,0x47,0xaa,0xc6,0x03,0x3c,0x54,0x88,0xfc,0xf8,0x04,0x00,0xfd,0x18,0x52,0x3d,0x45,0x46,0x02,0x32,0xd2,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x05,0xb8,0x07,0x5c,0x02,0x26,0x05,0xee,0x00,0x00,0x01,0x07,0x04,0x6e, -0x02,0x2f,0x01,0x5c,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x4b,0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x06,0x00,0x02,0x26,0x05,0xef,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x6e, -0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x04,0x00,0x5e,0xfe,0x66,0x0a,0x7f,0x05,0xdb,0x00,0x0d,0x00,0x1b,0x00,0x30,0x00,0x31,0x00,0x8f,0x40,0x33,0x0e,0x91,0x08,0x0e,0x00,0x0f,0x91,0x07,0x0e,0x01,0x16,0x91,0x00,0x15,0x91,0x40,0x01,0x01,0x07,0x32,0x31,0x24, -0x42,0x31,0x04,0x23,0x29,0x24,0x16,0x1d,0x1f,0x95,0x2f,0x10,0x26,0x0f,0x29,0x24,0x22,0x23,0x23,0x21,0x25,0x2e,0x20,0x06,0x20,0x01,0x20,0x26,0x1c,0xb8,0x01,0x2e,0x40,0x17,0x1d,0x1d,0x26,0x25,0x25,0x33,0x19,0x16,0x01,0x08,0x0f,0x01,0x0f,0x01,0x04,0x0b,0x7d,0x19,0x19,0x33,0x12,0x7d,0x04,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x11, -0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x5d,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0xed,0xdd,0xe6,0x10,0xf4,0xed,0x10,0xf4,0xe6,0x31,0x30,0x05,0x35,0x20,0x00,0x11,0x10,0x00,0x21,0x15, -0x20,0x00,0x11,0x10,0x00,0x01,0x35,0x22,0x00,0x11,0x10,0x00,0x33,0x15,0x32,0x00,0x11,0x10,0x00,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x13,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x7f,0x01,0x33,0x01,0x37,0x01,0x63,0xfe,0x8e,0xfe,0xd8,0xe7,0xfe,0xe5,0x01,0x12, -0xde,0xec,0x01,0x10,0xfe,0xfe,0x06,0x81,0x95,0x0a,0x40,0x3c,0x2d,0xfe,0x75,0xac,0x8f,0xfe,0x79,0xb4,0x01,0x04,0x1c,0x07,0x05,0x06,0x1a,0xaa,0x40,0xb2,0xc6,0x1b,0x42,0x52,0x01,0x93,0x01,0x43,0x01,0x52,0x01,0xa3,0x52,0xfe,0x76,0xfe,0xb7,0xfe,0xa2,0xfe,0x66,0x05,0x34,0x52,0xfe,0xb3,0xfe,0xfd,0xfe,0xf7,0xfe,0xbd,0x52,0x01, -0x34,0x01,0x16,0x01,0x1a,0x01,0x38,0xfe,0x4a,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x01,0x9a,0x00,0x03,0x00,0x58,0xfe,0x66,0x08,0xec,0x04,0x38,0x00,0x0d,0x00,0x1a,0x00,0x2f,0x00,0x83,0x40,0x2b,0x0e,0x95,0x08,0x0e,0x00,0x0f,0x95,0x07,0x0e,0x01,0x16,0x95,0x00,0x15,0x95,0x40, -0x01,0x2e,0x23,0x42,0x22,0x29,0x23,0x16,0x1c,0x1e,0x95,0x2e,0x10,0x25,0x0f,0x29,0x23,0x2c,0x21,0x22,0x22,0x24,0x2c,0x20,0x20,0x25,0x1b,0xb8,0x01,0x2e,0x40,0x17,0x1c,0x1c,0x25,0x24,0x24,0x31,0x19,0x15,0x00,0x0e,0x07,0x00,0x07,0x00,0x04,0x0b,0x83,0x19,0x19,0x31,0x12,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, -0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x11,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x2b,0x00,0x7d,0x2f,0x1a,0x18,0xed,0xdd,0xed,0x10,0xf4,0xed,0x10,0xf4,0xed,0x31,0x30,0x05,0x35,0x22,0x00,0x35,0x34,0x00,0x33,0x15,0x32,0x00,0x15,0x14,0x00,0x03, -0x35,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x32,0x36,0x35,0x10,0x05,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x02,0x4e,0xe7,0xfe,0xf1,0x01,0x1a,0xea,0xeb,0x01,0x01,0xfe,0xeb,0xd7,0xa2,0xba,0xb3,0x9b,0xa1,0xb1,0x05,0x4c,0x96,0x08,0x42,0x3b,0x2d,0xfe,0x74,0xac,0x90, -0xfe,0x78,0xb5,0x01,0x04,0x1c,0x07,0x04,0x07,0x19,0xaa,0x40,0xb2,0xc6,0x38,0x3e,0x01,0x20,0xec,0xfa,0x01,0x2c,0x3e,0xfe,0xe6,0xfa,0xf6,0xfe,0xd8,0x03,0xa6,0x3e,0xd3,0xc1,0xb8,0xce,0x3e,0xd0,0xbb,0x01,0x8f,0x32,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x00,0x00,0x02,0x00,0x5e, -0xff,0xb4,0x06,0x3e,0x05,0xec,0x00,0x13,0x00,0x26,0x00,0x5b,0x40,0x31,0x20,0x1e,0x16,0x18,0x0c,0x0a,0x02,0x04,0x14,0x18,0x91,0x0e,0x42,0x0a,0x04,0x22,0x1e,0x91,0x40,0x00,0x04,0x13,0x11,0x7d,0x25,0x0e,0x0e,0x1b,0x04,0x42,0x22,0x18,0x14,0x0a,0x00,0x00,0x0a,0x14,0x18,0x22,0x05,0x0e,0x1e,0x04,0x04,0x28,0x1b,0x7d,0x07,0x2f, -0xe1,0x12,0x39,0x2f,0x33,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0xe5,0xed,0x32,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x24,0x00,0x11,0x10,0x00,0x25,0x36,0x33,0x32,0x17,0x04,0x00,0x11,0x10,0x00,0x01,0x06,0x23,0x22,0x27, -0x06,0x00,0x15,0x14,0x12,0x17,0x36,0x33,0x32,0x17,0x36,0x12,0x35,0x10,0x03,0xb0,0x26,0x42,0x42,0x27,0xfe,0xd0,0xfe,0xaf,0x01,0x53,0x01,0x39,0x25,0x49,0x48,0x24,0x01,0x2c,0x01,0x4e,0xfe,0xad,0xfe,0xd1,0x26,0x3e,0x3e,0x26,0xe5,0xfe,0xff,0xf5,0xdc,0x27,0x42,0x42,0x26,0xe5,0xf9,0x14,0x38,0x38,0x1b,0x01,0x7e,0x01,0x37,0x01, -0x46,0x01,0x8b,0x1f,0x40,0x3e,0x1b,0xfe,0x82,0xfe,0xca,0xfe,0xb3,0xfe,0x76,0x05,0x0c,0x30,0x30,0x18,0xfe,0xc9,0xfa,0xf9,0xfe,0xcf,0x1c,0x37,0x37,0x1b,0x01,0x2a,0xfe,0x02,0x16,0x00,0x00,0x02,0x00,0x60,0xff,0xb0,0x04,0xd3,0x04,0x4e,0x00,0x11,0x00,0x21,0x00,0x59,0x40,0x31,0x0b,0x09,0x14,0x12,0x42,0x16,0x95,0x0d,0x09,0x10, -0x02,0x04,0x1c,0x1e,0x1a,0x95,0x40,0x00,0x42,0x04,0x16,0x0f,0x83,0x20,0x0e,0x0d,0x18,0x04,0x42,0x1e,0x1a,0x16,0x12,0x09,0x00,0x00,0x09,0x12,0x16,0x1a,0x1e,0x06,0x0d,0x04,0x04,0x23,0x18,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0xe5,0x1a,0xfd, -0x32,0xcd,0x10,0xcd,0x3f,0x33,0xfd,0xf5,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x26,0x02,0x35,0x10,0x25,0x36,0x33,0x32,0x17,0x04,0x11,0x14,0x02,0x03,0x06,0x23,0x22,0x27,0x04,0x11,0x10,0x05,0x36,0x33,0x32,0x17,0x24,0x11,0x10,0x03,0x0a,0x26,0x48,0x46,0x27,0xe3,0xec,0x01,0xdc,0x26,0x46,0x46,0x26,0x01,0xbf,0xf0, -0xd1,0x26,0x44,0x46,0x26,0xfe,0xcc,0x01,0x29,0x27,0x44,0x44,0x26,0x01,0x25,0x10,0x40,0x3e,0x19,0x01,0x0f,0xde,0x01,0xe8,0x36,0x3c,0x3c,0x32,0xfe,0x24,0xde,0xfe,0xe9,0x03,0x74,0x37,0x3b,0x2f,0xfe,0xa2,0xfe,0xb2,0x31,0x37,0x37,0x2f,0x01,0x54,0x01,0x4e,0x00,0x03,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x08,0x05,0x00,0x29,0x00,0x41, -0x00,0x4d,0x00,0x5e,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x20,0x0a,0x05,0x25,0x7d,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x7d,0x05,0x1d,0x91,0x22,0x04,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x2a,0x96,0x37,0x2c,0x2c,0x0d,0x91,0x08,0x04,0x13,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x33,0xed, -0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23, -0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x04,0x85,0xc2,0xcb,0xfe,0xd3,0xfe,0x93,0x01,0x66,0x01,0x32,0x9e,0x6e,0x6a,0xa4,0xdf,0xfe,0xf9,0x01, -0x0e,0xf0,0xdd,0x9a,0x9a,0xdf,0xf0,0x01,0x0e,0xfe,0xfa,0xe0,0xa4,0x6a,0x6e,0x9e,0x01,0x31,0x01,0x67,0xfe,0x93,0xfe,0xd3,0xc8,0xc9,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x3e,0x56,0x01,0x8e,0x01,0x4c,0x01,0x4c,0x01, -0xa4,0x2b,0xb2,0x45,0xfe,0xba,0xfe,0xf2,0xfe,0xeb,0xfe,0xce,0x60,0x60,0x01,0x31,0x01,0x16,0x01,0x0d,0x01,0x47,0x45,0xb2,0x2b,0xfe,0x5e,0xfe,0xb4,0xfe,0xb4,0xfe,0x70,0x07,0xa3,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0x03,0x00,0x60, -0xff,0xe8,0x06,0xc6,0x06,0x9d,0x00,0x29,0x00,0x41,0x00,0x4d,0x00,0x5d,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x0b,0x1f,0x05,0x25,0x83,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x83,0x05,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x41,0x96,0x36,0x2c,0x00,0x1d,0xec,0x22,0x10,0x0d,0xec,0x08,0x10,0x13,0x95,0x02, -0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, -0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x03,0x96,0x96,0xac,0xe8,0xfe,0xf4,0x01,0x08,0xde,0x84, -0x63,0x69,0x82,0x93,0xa7,0xbb,0xad,0xa2,0x82,0x81,0xa1,0xad,0xbb,0xa6,0x92,0x83,0x69,0x63,0x85,0xde,0x01,0x06,0xfe,0xf5,0xe8,0xa9,0xf1,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x42,0x5a,0x01,0x25,0xed,0xf0,0x01,0x2e, -0x30,0xaa,0x49,0xd2,0xb9,0xb3,0xd5,0x63,0x63,0xd2,0xb6,0xb9,0xd2,0x49,0xaa,0x30,0xfe,0xd1,0xef,0xec,0xfe,0xda,0x06,0x3b,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x06,0xca,0x06,0xdb,0x02,0x26,0x05,0xda, -0x00,0x00,0x01,0x07,0x06,0x65,0x02,0x1f,0x01,0x0a,0x00,0x08,0xb3,0x01,0x3e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x1e,0x00,0x00,0x05,0x5e,0x05,0x7f,0x02,0x26,0x05,0xdb,0x00,0x00,0x01,0x07,0x06,0x65,0x01,0x53,0xff,0xae,0x00,0x16,0xb9,0x00,0x01,0xff,0xea,0x40,0x09,0x20,0x15,0x08,0x00,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b, -0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x5e,0xfe,0x66,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x31,0x40,0x1a,0x30,0x00,0x01,0x00,0x00,0x02,0x91,0x13,0x04,0x0c,0x0a,0x08,0x91,0x0d,0x13,0x0a,0x7e,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x7d,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f,0xed,0x32,0x2f, -0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x23,0x11,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x04,0x8c,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0x20,0x2e,0xa8,0xfe,0xe8,0xfe,0xba,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x04,0xc4,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x04,0xfd,0xe3,0x01,0x82, -0x16,0x01,0x85,0x01,0x2f,0x01,0x58,0x01,0xa8,0x3b,0x00,0x01,0x00,0x60,0xfe,0x66,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x2d,0x40,0x17,0x00,0x00,0x02,0x95,0x13,0x10,0x0c,0x0a,0x08,0x96,0x0d,0x16,0x0a,0x84,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x83,0x10,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f, -0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x1e,0x28,0xa2,0xc0,0xe8,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x09,0xfd,0xeb,0x01,0x88,0x15,0x01,0x17,0xce,0xfd,0x01,0x33, -0x32,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x13,0x00,0xc8,0x40,0x6b,0x09,0x08,0x11,0x06,0x07,0x12,0x05,0x0a,0x05,0x0c,0x08,0x11,0x03,0x07,0x12,0x04,0x0b,0x04,0x0d,0x08,0x11,0x02,0x01,0x0e,0x01,0x13,0x07,0x12,0x10,0x08,0x11,0x00,0x0f,0x0f,0x0e,0x0e,0x00,0x04,0x0a,0x42,0x05,0x04,0x04,0x03,0x13,0x06, -0x03,0x02,0x07,0x12,0x07,0x02,0x03,0x06,0x13,0x04,0x12,0x07,0x10,0x0d,0x0c,0x09,0x08,0x11,0x08,0x09,0x0c,0x0d,0x10,0x04,0x11,0x08,0x00,0x01,0x0f,0x0a,0x0b,0x05,0x40,0x04,0x05,0x0e,0x0f,0x05,0x0f,0x05,0x08,0x12,0x11,0x03,0x07,0x08,0x11,0x12,0x07,0x0b,0x0a,0x0e,0x08,0x12,0x00,0x42,0x00,0x12,0x12,0x15,0x08,0x2f,0x12,0x39, -0x2f,0xce,0x2b,0x01,0x10,0xe2,0x32,0x33,0x11,0x33,0x00,0x18,0x2f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x1a,0x10,0xcd,0x32,0x10,0xcd,0x32,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x33,0x2b,0x01,0x10,0xe1,0x32, -0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x07,0x25,0x03,0x05,0x07,0x25,0x03,0x23,0x13,0x25,0x37,0x05,0x13,0x25,0x37,0x05,0x13,0x33,0x03,0x03,0xd5,0x37,0xfe,0xe5,0x99,0x01,0x16,0x38,0xfe,0xec,0xac,0x91,0xc3,0xfe,0xf3,0x37,0x01,0x0a,0x9a, -0xfe,0xfa,0x38,0x01,0x04,0xa1,0x93,0xba,0x03,0x6a,0x7a,0x7e,0xfe,0x9c,0x7c,0x7c,0x7c,0xfe,0x72,0x01,0xc4,0x78,0x7c,0x76,0x01,0x62,0x74,0x7e,0x75,0x01,0x79,0xfe,0x50,0x00,0x00,0x01,0x00,0x52,0x04,0xc2,0x02,0xd7,0x05,0xcb,0x00,0x11,0x00,0x18,0x40,0x0a,0x0b,0x08,0xe2,0x00,0x02,0x09,0x0e,0x00,0x0e,0x05,0x2f,0xcd,0xcd,0x10, -0xcd,0x00,0x2f,0xdd,0xfd,0xcc,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x0a,0x52,0x26,0x36,0x36,0x26,0x01,0x73,0x0b,0x4f,0x26,0x36,0x36,0x26,0x05,0x12,0x50,0x36,0x26,0x27,0x36,0x50,0x36,0x27,0x26,0x36,0x00,0x01,0x00,0x5e,0x04,0xc2,0x03,0x0a,0x05,0xbe, -0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0e,0x4c,0x03,0x09,0x99,0x00,0x08,0x00,0xc2,0x01,0x01,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x33,0xed,0xdc,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x06,0x23,0x23,0x35,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x0a,0x7a,0x32,0x64,0x32,0x61,0x61,0x42,0x66,0x50,0x3d,0x6a,0x69,0x4c,0x97, -0x04,0xc2,0x88,0x44,0x44,0x9a,0x31,0x31,0xff,0xff,0xff,0x90,0x04,0x7b,0x00,0x7d,0x06,0x23,0x00,0x07,0x04,0x61,0xfd,0xae,0x00,0x00,0xff,0xff,0xff,0x86,0x04,0x7b,0x00,0x71,0x06,0x23,0x00,0x07,0x04,0x29,0xfd,0xa2,0x00,0x00,0x00,0x08,0x00,0x21,0xfe,0xcf,0x07,0xbc,0x05,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b, -0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0xd5,0x40,0x74,0x0d,0x11,0x19,0x03,0x1d,0x0f,0x1b,0xc3,0x15,0x21,0x21,0x09,0x39,0x3d,0x41,0x49,0x03,0x4d,0x3f,0x4b,0xc3,0x45,0x51,0x51,0x39,0x5d,0x55,0x59,0x57,0xc3,0x40,0x5d,0x0e,0x30,0x39,0x05,0x42,0x09,0xc3,0x03,0x01,0x05,0x2d,0x39,0xc3,0x27,0x33,0x40,0x24,0x2a,0x35,0x03,0x30,0x3c, -0x0c,0xc4,0x3d,0x0d,0x0d,0x80,0x41,0x11,0xc4,0x42,0x12,0x0e,0x2a,0x30,0x18,0x42,0x48,0x18,0xc4,0x49,0x19,0x4d,0x1d,0xc4,0x4e,0x1e,0x1e,0x06,0x36,0x24,0xc4,0x25,0x25,0x80,0x29,0xc4,0x2a,0x0e,0x06,0x30,0x00,0x42,0x54,0x00,0xc4,0x55,0x01,0x59,0x05,0xc4,0x5a,0x06,0x06,0x61,0x36,0x30,0xc4,0x31,0x80,0x35,0xc4,0x36,0x2f,0xe1, -0x1a,0xdc,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x1a,0xc8,0x18,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x32,0x1a,0xc8,0x18,0x2f,0x32,0xe1,0x32,0x00,0x2f,0x17,0x33,0x1a,0xdc,0x32,0xed,0x32,0x2f,0x33,0xde,0xed,0x2b,0x00, -0x18,0x10,0xf6,0x1a,0xfd,0xce,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32, -0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x04,0xa2,0x50, -0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x02,0x8f,0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x05,0x98,0x50,0x08,0x66,0x64,0x0c,0x52,0x07,0x6b,0x50,0x52,0x69,0xf9,0xe9,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x05,0x8f, -0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x02,0x7e,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x04,0xa4,0x6a,0x6a,0x53,0x63,0x63,0xfe,0xaf,0x6a,0x6a,0x52,0x64,0x63,0x53,0x6a,0x6a,0x52,0x64,0x63,0xfd,0xc3,0x6b,0x6b,0x52,0x64,0x62, -0x54,0x6b,0x6b,0x53,0x63,0x62,0xfd,0xc1,0x6b,0x6b,0x52,0x64,0x63,0x53,0x6b,0x6b,0x52,0x64,0x63,0xfe,0xab,0x6b,0x6b,0x53,0x63,0x63,0x00,0x08,0x00,0x35,0xfe,0x66,0x07,0x68,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x95,0x40,0x4d,0x4f,0x15,0x5f,0x15,0x02,0x15,0x17,0x19, -0x1b,0x17,0x1b,0x17,0x1f,0x12,0x0b,0x09,0x40,0x07,0x50,0x07,0x02,0x07,0x05,0x09,0x05,0x09,0x05,0x0c,0x02,0x1e,0x2f,0x1f,0x01,0x1f,0x0c,0x03,0x02,0x12,0x10,0x0e,0x0c,0x14,0x16,0x08,0x0a,0x06,0x04,0x1a,0x18,0x1e,0x1c,0x00,0x02,0x16,0x0a,0x16,0x0a,0x11,0x02,0x18,0x04,0x18,0x04,0x1c,0x02,0x1c,0x02,0x0c,0x10,0x11,0x11,0x21, -0x0d,0x0c,0x0c,0x21,0x20,0x11,0x12,0x39,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x00,0x2f,0xcd,0xd6,0xdd,0xd6,0xcd,0x10,0xd6,0x5d,0xcd,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x5d,0x10,0xcd,0x11, -0x12,0x39,0x39,0x2f,0x2f,0xcd,0x10,0xcd,0x5d,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x01,0x25,0x35,0x05,0x05,0x25,0x35,0x05,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x05,0x03,0x23,0x13,0x04,0x4c,0x5c,0x7c,0x76,0xfe,0x6a,0x58,0xa6,0x46,0x05,0x16,0xfe,0xc7,0x58,0x01,0x4d,0xfb,0x28,0xfe,0x9f, -0x01,0x61,0x05,0xd2,0xfe,0xa0,0x01,0x60,0xfe,0xe0,0x46,0xb8,0x58,0xfc,0xdb,0xfe,0xb2,0x43,0x01,0x39,0x02,0x04,0x75,0x62,0x5c,0x05,0x9a,0xfe,0xa0,0x01,0x60,0xfe,0x10,0x58,0x01,0x4e,0x44,0xb1,0xb8,0x58,0xa6,0xfd,0x2d,0x74,0x63,0x5c,0x9e,0x5c,0x7b,0x74,0xfd,0x7a,0x44,0x01,0x3a,0x58,0x81,0xa6,0x46,0xb8,0xbf,0xfe,0xa0,0x01, -0x60,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12, -0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x93,0x93,0xa8,0xa2,0xa2,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe, -0xec,0x95,0xa2,0xfe,0xc9,0x04,0x74,0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x03,0xb4,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09, -0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b,0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16, -0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x79,0x79,0xa4,0x81,0x81,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0xd1,0x85,0x96,0x96,0x85,0xfd,0xa6,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x75,0x40,0x3f, -0x16,0x00,0x15,0x01,0x15,0x13,0x03,0x14,0x02,0x14,0x03,0x00,0x06,0x09,0x16,0x13,0x10,0x0f,0x01,0x02,0x06,0x14,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x15,0x0f,0x06,0x91,0x10,0x10,0x08,0x0f,0x91,0x09,0x03,0x08,0x02,0x01,0x01,0x0d,0x07,0x15,0x00,0x14,0x01,0x14,0x14,0x10,0x0d,0x7d,0x18,0x18,0x1c,0x10,0x07,0x7e,0x08,0x2f, -0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x10,0xc6,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x17,0x07,0x27,0x06,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16, -0x15,0x14,0x01,0x11,0x33,0x32,0x37,0x27,0x37,0x17,0x36,0x35,0x10,0x21,0x03,0x81,0x75,0x73,0x7d,0x67,0x7e,0xbd,0xa8,0x01,0x8a,0xe6,0xfd,0xfd,0x3b,0xb0,0x52,0x46,0x66,0x72,0x6f,0x52,0xfe,0xb0,0x02,0x89,0xb0,0x4d,0xba,0x28,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xe3,0x01,0xf7,0xfd,0xb4,0x15,0x97,0x4e,0xa4,0x4e,0x8c,0x01,0x1c,0x00, -0x00,0x02,0x00,0xa6,0xfe,0x23,0x04,0x54,0x04,0x18,0x00,0x14,0x00,0x25,0x00,0x7c,0x40,0x44,0x18,0x00,0x17,0x01,0x17,0x15,0x03,0x16,0x02,0x16,0x03,0x00,0x05,0x10,0x18,0x15,0x24,0x1d,0x09,0x1c,0x01,0x02,0x05,0x16,0x17,0x40,0x09,0x0c,0x48,0x17,0x17,0x1d,0x24,0x95,0x05,0x16,0x0e,0x1d,0x95,0x10,0x10,0x0c,0x0f,0x02,0xdf,0x01, -0x01,0x01,0x01,0x13,0x09,0x17,0x00,0x16,0x01,0x16,0x16,0x21,0x13,0x83,0x1a,0x1a,0x27,0x21,0x0c,0x09,0x84,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x2b,0x33,0x10,0xc6,0x32,0x3f,0x11,0x12,0x39,0x39,0x11,0x12,0x39, -0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x25,0x17,0x07,0x27,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x05,0x27,0x37,0x17,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x03,0xae,0x70,0x72,0x72,0x52,0x67,0xd7,0x5c,0x04,0xa4,0xa4,0x04,0x74, -0xee,0xc0,0xe4,0xfe,0x92,0x78,0x74,0x72,0x5a,0xa2,0x85,0x8d,0xb0,0xa6,0x80,0x42,0x56,0xa8,0x4e,0xaa,0x22,0xac,0xfd,0x8f,0x05,0xdd,0xb4,0xcc,0xfe,0xf2,0xe3,0xfe,0xc9,0x69,0xb1,0x4d,0xaa,0x71,0xd0,0xa9,0xc9,0xc9,0x98,0x8f,0x7f,0xad,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0x33,0x05,0x9a,0x00,0x19,0x00,0x40,0x40,0x24,0x18,0x91, -0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x91,0x11,0x11,0x0b,0x10,0x91,0x0d,0x03,0x0b,0x0f,0x0f,0x0c,0x15,0x7d,0x06,0x06,0x1b,0x11,0x0b,0x7e,0x01,0x42,0x0c,0x2f,0xe2,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33, -0x32,0x36,0x35,0x34,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0xbe,0xa4,0x9a,0xbd,0xca,0xfe,0xdb,0x46,0xa8,0x02,0xd0,0xfd,0xd8,0x4a,0x01,0x27,0x01,0x5e,0xfe,0xd9,0xfe,0xf4,0xae,0xfe,0xb2,0xb8,0x6c,0xdf,0xcb,0xd5,0x01,0x25,0xfd,0x5e,0x05,0x9a,0x9a,0xfe,0x3a,0xfe,0x97,0xfe, -0xdd,0xfd,0xfe,0xb5,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xaa,0x04,0x00,0x00,0x19,0x00,0x3f,0x40,0x23,0x18,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x95,0x11,0x11,0x0b,0x10,0x95,0x0d,0x0f,0x0b,0x0e,0x0e,0x0c,0x15,0x83,0x06,0x06,0x1b,0x11,0x0b,0x84,0x01,0x0c,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11, -0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0xa6,0x75,0x8b,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0x02,0x76,0xfe,0x2e,0x42,0xf7,0x01,0x27,0xfe,0xe9,0xef,0x99, -0xfe,0xa0,0xa0,0x4e,0xbb,0xa9,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0x8c,0xff,0x00,0xfe,0xdd,0xf9,0xd7,0xfe,0xe5,0x00,0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0xe2,0x05,0xb2,0x00,0x31,0x00,0x79,0x40,0x46,0x08,0x0a,0xe2,0x40,0x05,0x32,0x80,0x00,0x0e,0x26,0x2c,0x2b,0x18,0x92,0x1b,0x1b,0x26,0x00,0x11,0x10,0x11,0x20,0x11,0x03,0x11,0x13, -0x92,0x0e,0x13,0x0f,0x23,0x1f,0x23,0x2f,0x23,0x03,0x23,0x21,0x92,0x26,0x04,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2f,0x10,0x2b,0x19,0x29,0x7d,0x1e,0x23,0x1e,0x19,0x19,0x1e,0x23,0x03,0x10,0x2f,0x7d,0x16,0x16,0x33,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1, -0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22, -0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x02,0x4c,0x35,0x5a,0x4c,0x47,0x38,0x32,0x30,0x44,0x2d,0xf1,0x84,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xd8,0x10,0x56,0x40,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x54,0xb6, -0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xab,0xe1,0x00,0x01,0x00,0x58,0xfe,0xae,0x03,0x44,0x04,0x18,0x00,0x2e,0x00,0x70,0x40,0x3d,0x08,0x0a,0xe2,0x40,0x05,0x2f,0x80,0x00,0x0e,0x24,0x29,0x28,0x17,0x95,0x40,0x1a,0x24,0x0e,0x1a,0x95,0x2b,0x30,0x11,0x13, -0x95,0x0e,0x16,0x21,0x1f,0x95,0x24,0x10,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2c,0x11,0x29,0x18,0x26,0x84,0x1c,0x21,0x1c,0x18,0x18,0x1c,0x21,0x03,0x11,0x2c,0x84,0x15,0x15,0x30,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6, -0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15, -0x16,0x16,0x15,0x14,0x06,0x02,0x00,0x33,0x5a,0x4b,0x48,0x38,0x32,0x30,0x44,0x2d,0xc9,0x66,0x86,0xb4,0x01,0x0e,0xfe,0xd7,0x65,0x60,0x01,0x05,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x76,0xd2,0x70,0x8c,0xac,0x12,0x53,0x41,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x30,0xa2,0x4c,0xac,0xaa,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, -0xfe,0xee,0xbe,0x32,0x04,0x09,0x87,0x6a,0x77,0xa0,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0x52,0x40,0x2a,0x08,0x11,0x96,0x0b,0x0e,0x0e,0x0d,0x13,0x04,0x18,0x04,0x18,0x01,0x18,0x06,0x16,0x0d,0x03,0x01,0x06,0x10,0x10,0x16,0x11,0x16,0x17,0x17,0x06,0x01,0x00,0x00,0x1a,0x19,0x09,0x0e,0x11,0x18,0x03, -0x06,0x7e,0x0b,0x07,0x2f,0x33,0xe1,0x17,0x32,0xc6,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x5d,0x11,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x37, -0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x4d,0x40,0x27,0x0f,0x06, -0x96,0x0c,0x09,0x09,0x0b,0x00,0x11,0x02,0x14,0x14,0x04,0x12,0x0f,0x01,0x04,0x0e,0x0e,0x12,0x0f,0x07,0x05,0x12,0x13,0x13,0x04,0x01,0x00,0x00,0x16,0x0c,0x0f,0x14,0x03,0x04,0x84,0x09,0x05,0x2f,0x33,0xe1,0x17,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x10,0xc6,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x11,0x39,0x11,0x33, -0x33,0x3f,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5, -0xfe,0x12,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xac,0x05,0x9a,0x00,0x12,0x00,0x42,0x40,0x20,0x0d,0x04,0x12,0x12,0x06,0x08,0x91,0x10,0x0b,0x03,0x01,0x06,0x10,0x11,0x11,0x06,0x01,0x00,0x00,0x14,0x07,0x09,0x09,0x13,0x12,0x0b,0x06,0x7e,0x07,0x07,0x14,0x13,0x11,0x12,0x39,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f, -0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xac,0xea,0xfd,0xd6,0x1b,0x0b,0x04,0xa8,0xfe,0x63,0x02,0x45,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x20,0x12,0xfd,0x3e, -0x05,0x00,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xa4,0x04,0x00,0x00,0x0e,0x00,0x42,0x40,0x20,0x0b,0x02,0x0e,0x0e,0x04,0x06,0x95,0x0c,0x09,0x0f,0x01,0x04,0x0c,0x0d,0x0d,0x04,0x01,0x00,0x00,0x10,0x05,0x07,0x07,0x0f,0x0e,0x09,0x04,0x84,0x05,0x05,0x10,0x0f,0x11,0x12,0x39,0x2f, -0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x01,0x33,0x01,0x04,0xa4,0xe4,0xfe,0x3e,0x04,0xa4,0xfe,0xc8,0x01,0xdc,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0xea,0xfe,0x16, -0x03,0x74,0x8c,0xfe,0x2d,0x01,0xd3,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x90,0x05,0x9a,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0x91,0x0c,0x0c,0x09,0x03,0x03,0x06,0x00,0x00,0x0f,0x02,0x7e,0x0b,0x03,0x03,0x0f,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33, -0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x06,0x90,0xfe,0x62,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0x02,0x46,0x05,0x00,0xfb,0x00,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6, -0x00,0x00,0x05,0x2f,0x04,0x00,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x01,0x95,0x0c,0x0c,0x09,0x0f,0x03,0x06,0x00,0x00,0x0f,0x02,0x84,0x0b,0x03,0x03,0x0f,0x0a,0x05,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18, -0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x05,0x2f,0xfe,0xc9,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0x01,0xdb,0x03,0x74,0xfc,0x8c,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0x00,0x01,0x00,0xbc,0xfe,0x66,0x07,0xbe,0x05,0x9a,0x00,0x1b,0x00,0x45,0x40,0x27,0x0a,0x91, -0x13,0x13,0x0c,0x0e,0x91,0x11,0x03,0x1a,0x91,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x7e,0x01,0x42,0x0c,0x0c,0x10,0x17,0x7d,0x06,0x06,0x1d,0x0f,0x7e,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe2,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31, -0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0x04,0x4c,0xa4,0x99,0xbc,0xcd,0xff,0x00,0xda,0x46,0xa8,0xfd,0x1a,0xa8,0x04,0x36,0x4a,0x01,0x26,0x01,0x5c,0xfe,0xd6,0xfe,0xfa,0xae,0xfe,0xb2,0xae,0x6c,0xe7,0xcd,0xd3,0x01,0x29, -0xfd,0x5c,0x05,0x04,0xfa,0xfc,0x05,0x9a,0xfd,0x9e,0xfe,0x99,0xfe,0xdd,0xff,0xfe,0xb7,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x56,0x04,0x00,0x00,0x1b,0x00,0x44,0x40,0x26,0x0a,0x95,0x14,0x14,0x0c,0x0d,0x95,0x12,0x0f,0x1a,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x84,0x01,0x0c,0x0c,0x10, -0x17,0x83,0x06,0x06,0x1d,0x0f,0x84,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22, -0x03,0x54,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x42,0xf7,0x01,0x25,0xfe,0xeb,0xef,0x99,0xfe,0xa0,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x03,0x74,0xfc,0x8c,0x04,0x00,0xfe,0x74,0xfe,0xdb,0xf7,0xd5,0xfe,0xe3,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xb6,0x05,0xb2,0x00,0x3b,0x00,0x4f,0x00,0x4a, -0x40,0x29,0x46,0x7d,0x21,0x1c,0x3a,0x2e,0x03,0x21,0x2b,0x7d,0x3c,0x21,0x0c,0x3c,0x3c,0x0c,0x21,0x03,0x51,0x15,0x7d,0x05,0x31,0x91,0x37,0x13,0x4b,0x1a,0x41,0x91,0x26,0x26,0x1a,0x10,0x91,0x0a,0x04,0x1a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, -0x2f,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06, -0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x02,0xff,0x8e,0xf6,0xb5,0x68,0x57,0xa9,0xf8,0xa0,0x24,0x23,0x0e,0x26,0x13,0x73,0xb5,0x7e,0x42,0x44,0x80,0xb6,0x72,0x41,0x3a,0x38,0x57,0x3b,0x1f,0x33,0x5e,0x89,0x55,0x5c,0x8a,0x5c,0x2f,0x76,0x62,0x18,0x32,0x1b,0x31,0x66,0x26,0x50,0x7a,0x42,0x74, -0x35,0x78,0x01,0x33,0x18,0x2f,0x47,0x30,0x31,0x49,0x30,0x18,0x1c,0x35,0x4d,0x31,0x33,0x44,0x29,0x11,0x18,0x5f,0xb7,0x01,0x0f,0xaf,0xaa,0x01,0x17,0xc7,0x6e,0x08,0x99,0x04,0x05,0x53,0x9a,0xdb,0x87,0x81,0xd8,0x9c,0x58,0x0e,0x38,0x8b,0x9c,0xa6,0x52,0x86,0xd2,0x91,0x4c,0x4c,0x91,0xd2,0x86,0xc6,0xfe,0xd4,0x62,0x07,0x07,0x18, -0x16,0x9b,0x28,0x1e,0x1b,0x3d,0x02,0xfb,0x5a,0x97,0x6f,0x3e,0x3c,0x6d,0x9a,0x5f,0x4f,0x96,0x87,0x71,0x29,0x2c,0x76,0x89,0x95,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x55,0x04,0x1a,0x00,0x38,0x00,0x48,0x00,0x54,0x40,0x31,0x1b,0x36,0x1e,0x28,0xef,0x39,0x43,0x84,0x1e,0x4f,0x39,0x01,0x39,0x0c,0x1e,0x1e,0x0c,0x39,0x03,0x4a, -0x14,0x83,0x40,0x05,0x50,0x05,0x60,0x05,0x03,0x05,0x2e,0x95,0x34,0x16,0x46,0x19,0x3e,0x95,0x23,0x23,0x19,0x0f,0x95,0x0a,0x0f,0x19,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x06,0x06,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02, -0x53,0x6a,0xb6,0x86,0x4d,0x43,0x7e,0xb4,0x71,0x1d,0x1a,0x19,0x1e,0x48,0x76,0x53,0x2d,0x2a,0x52,0x77,0x4d,0x1e,0x1c,0x44,0x4d,0x22,0x45,0x69,0x47,0x48,0x69,0x45,0x21,0x4d,0x42,0x0e,0x1d,0x10,0x23,0x4b,0x1c,0x39,0x5c,0x61,0x56,0x2a,0x5c,0x01,0x02,0x10,0x20,0x2c,0x1d,0x21,0x2f,0x1e,0x0e,0x44,0x3f,0x3d,0x35,0x18,0x44,0x85, -0xc4,0x7f,0x7a,0xca,0x91,0x51,0x08,0x8d,0x09,0x3d,0x6b,0x92,0x54,0x57,0x91,0x6a,0x3b,0x03,0x4a,0xd5,0x86,0x44,0x84,0x69,0x41,0x3e,0x67,0x85,0x47,0x86,0xd4,0x4a,0x02,0x03,0x11,0x10,0x88,0x23,0x28,0x14,0x15,0x02,0x25,0x38,0x5b,0x41,0x24,0x28,0x44,0x5a,0x32,0x7e,0xb0,0x31,0x31,0xaf,0x00,0x01,0x00,0x5e,0xfe,0xae,0x04,0x8c, -0x05,0xb2,0x00,0x23,0x00,0x52,0x40,0x2c,0x0a,0x0c,0xe2,0x40,0x07,0x10,0x80,0x02,0x10,0x16,0x30,0x19,0x01,0x19,0x19,0x1b,0x91,0x16,0x04,0x20,0x23,0x01,0x23,0x23,0x21,0x91,0x10,0x13,0x0a,0x0a,0x10,0x0e,0xc2,0x02,0x04,0x04,0x13,0x18,0x00,0x00,0x25,0x1e,0x7d,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0xf1,0x32, -0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x25,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x72,0xae, -0x34,0x5a,0x4c,0x47,0x38,0x31,0x31,0x44,0x2d,0xfe,0xd1,0xfe,0x99,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x3c,0x12,0x54,0x40,0x4e,0x5e,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x01,0x89,0x01,0x3d,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00, -0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0x62,0x04,0x18,0x00,0x23,0x00,0x4c,0x40,0x28,0x15,0x17,0xe2,0x40,0x12,0x24,0x80,0x0d,0x1b,0x21,0x00,0x00,0x02,0x95,0x21,0x10,0x30,0x0a,0x01,0x0a,0x0a,0x08,0x95,0x1b,0x16,0x15,0x15,0x1b,0x19,0xc2,0x0d,0x0f,0x0f,0x0a,0x1e,0x0b,0x00,0x05,0x83,0x1e,0x2f,0xe1,0x2f,0x33,0x11,0x12,0x39,0x2f, -0x33,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62, -0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x58,0x72,0x32,0x59,0x4c,0x47,0x38,0x31,0x31,0x44,0x2e,0xc8,0xf4,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x9c,0x35,0x0e,0x54,0x3e,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x40,0x50,0x0e,0x01,0x19,0xd7,0xfd,0x01,0x33,0x32,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x0c, -0x05,0x9a,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x30,0x40,0x14,0x01,0x08,0x91,0x0a,0x03,0x02,0x91,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x7e,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f, -0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xc1,0x9b,0xce,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfb,0x96,0xfd,0xe8,0x01,0x80,0x05,0x02,0x98,0x00,0x01,0x00,0x1e,0xfe,0x8a,0x03,0x29,0x04,0x00,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x31,0x40,0x14,0x01, -0x08,0x95,0x0a,0x0f,0x02,0x95,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x84,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23, -0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0x98,0x8e,0xae,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfd,0x18,0xfd,0xfe,0x01,0x76,0x03,0x74,0x8c,0x00,0x01,0x00,0x29,0xfe,0x80,0x06,0xbc,0x05,0x9a,0x00,0x0f,0x00,0x50,0xb6,0x09,0x04,0x91,0x0c,0x07,0x03,0x01,0xb8,0x01,0x30,0x40,0x10,0x0e,0x0a,0x91,0x40,0x03,0x05,0x0e,0x03,0x0a, -0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x7e,0x0b,0x0b,0x11,0x0a,0x7e,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21, -0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0xbc,0x9b,0xfb,0xa5,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x05,0x02,0x98,0x98,0xfb,0x96,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b,0x05,0x3c,0x04,0x00,0x00,0x0f,0x00,0x50,0xb9,0x00,0x01,0x01,0x31,0x40,0x16,0x09,0x04,0x95, -0x0c,0x06,0x0f,0x0e,0x0a,0x95,0x40,0x03,0x05,0x0e,0x03,0x0a,0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x84,0x0b,0x0b,0x11,0x0a,0x84,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f, -0x33,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x3c,0x8e,0xfc,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x03,0x74,0x8c,0x8c,0xfd,0x18,0x03,0x74,0xfc,0x8c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x05,0x42,0x05,0x9a,0x00,0x14, -0x00,0x3d,0x40,0x0b,0x10,0x04,0x0e,0x91,0x06,0x06,0x03,0x11,0x0b,0x03,0x01,0xb8,0x01,0x30,0xb3,0x13,0x91,0x03,0x14,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x12,0x7e,0x04,0x11,0x11,0x16,0x0b,0x7e,0x0a,0x2f,0xe1,0x11,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x01, -0x23,0x11,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x05,0x42,0x9c,0xcd,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xc1,0xfe,0x80,0x01,0x80,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0xfe,0x00,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x77,0x04,0x00, -0x00,0x13,0x00,0x3d,0x40,0x0b,0x0f,0x04,0x0d,0xec,0x06,0x06,0x03,0x10,0x0a,0x0f,0x01,0xb8,0x01,0x31,0xb3,0x12,0x95,0x03,0x13,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x11,0x84,0x04,0x0f,0x0f,0x15,0x0a,0x84,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31, -0x30,0x01,0x23,0x11,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0x77,0x8d,0xae,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x98,0xfe,0x8b,0x01,0x75,0x01,0x9c,0x62,0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x8c,0x00,0x02,0x00,0x29,0xff,0xe8,0x06,0x58,0x05,0xb2, -0x00,0x1c,0x00,0x23,0x00,0x56,0x40,0x19,0x13,0x0c,0x18,0x01,0x91,0x40,0x23,0x1b,0x09,0x23,0x91,0x2b,0x30,0x20,0x91,0x1b,0x04,0x06,0x04,0x91,0x40,0x09,0x13,0x13,0x15,0xb8,0x01,0x2c,0x40,0x13,0x10,0x0c,0x80,0x06,0x06,0x0c,0x00,0x7d,0x1d,0x1d,0x25,0x0c,0x23,0x42,0x01,0x7d,0x18,0x42,0x0c,0x2f,0xe1,0xf1,0xe1,0x11,0x12,0x39, -0x2f,0xe1,0x11,0x39,0x2f,0x1a,0x10,0xdd,0xe1,0x32,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0xc4,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x20,0x37,0x15,0x06,0x21,0x20,0x00,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x12,0x00,0x21,0x20,0x03,0x26,0x02,0x23,0x22,0x00,0x07, -0x06,0x58,0xfb,0xa2,0x10,0x01,0x1c,0xda,0x01,0x09,0xc2,0xc5,0xfe,0xe4,0xfe,0xda,0xfe,0x95,0x0f,0x1d,0x7c,0x88,0x27,0x8f,0x29,0x84,0x12,0x1d,0x01,0x6f,0x01,0x16,0x02,0x6a,0xb4,0x08,0xe7,0xc9,0xd0,0xfe,0xf6,0x16,0x02,0x7f,0xeb,0xfe,0xeb,0xa4,0xaa,0x91,0x01,0x6a,0x01,0x2d,0x8b,0x7d,0x5e,0x4a,0x47,0x52,0x80,0x01,0x30,0x01, -0x6c,0xfd,0x64,0xed,0x01,0x17,0xfe,0xe4,0xe8,0x00,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x1e,0x00,0x25,0x00,0x5f,0x40,0x0e,0x13,0x0c,0x0c,0x01,0x95,0x18,0x25,0x25,0x04,0x22,0x95,0x1b,0x10,0x06,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0e,0x48,0x06,0x06,0x04,0x95,0x09,0x16,0x18,0x00,0x0c,0x25,0x1f,0x01,0x06,0x06, -0x00,0x0c,0x13,0x15,0xb8,0x01,0x2c,0x40,0x0a,0x10,0x0c,0x00,0x83,0x1f,0x1f,0x27,0x01,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xdd,0xe1,0x32,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0xed,0x32,0x2f,0x2b,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x31,0x30,0x01,0x21,0x16,0x16,0x33,0x32,0x37, -0x15,0x06,0x23,0x22,0x02,0x27,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x36,0x24,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x04,0xc4,0xfd,0x2e,0x04,0xaf,0x9b,0xac,0x91,0x87,0xde,0xd0,0xf7,0x09,0x1b,0x77,0x8d,0x27,0x89,0x29,0x8a,0x14,0x1c,0x01,0x04,0xb0,0xca,0xdc,0xa8,0x01,0x85,0x7a,0x74, -0xa2,0x12,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x04,0xeb,0x85,0x6f,0x55,0x4a,0x47,0x4a,0x77,0xc8,0xee,0xfe,0xfc,0xe7,0x35,0x8d,0x9f,0xa6,0x86,0x00,0xff,0xff,0x00,0x29,0xfe,0x80,0x06,0x58,0x05,0xb2,0x02,0x26,0x06,0x1d,0x00,0x00,0x00,0x06,0x0b,0x51,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x8a,0x04,0xc4,0x04,0x18,0x02,0x26, -0x06,0x1e,0x00,0x00,0x00,0x06,0x0b,0x52,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x07,0x1a,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0xda,0x02,0x3f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x24,0x1e,0x0d,0x00,0x25,0x01,0x21,0x05, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0xbe,0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x1c,0x16,0x09,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbe,0xfe,0x66,0x04,0x4c,0x05,0x9a, -0x00,0x19,0x00,0x42,0x40,0x24,0x01,0x15,0x18,0x91,0x13,0x13,0x15,0x19,0x17,0x03,0x07,0x91,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x15,0x19,0x00,0x00,0x04,0x7d,0x0f,0x0f,0x1b,0x01,0x18,0x14,0x7e,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39, -0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x00,0x11,0x14,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x01,0x04,0x4c,0xfd,0xce,0xfa,0x01,0x1d,0xfe,0xd6,0xfe,0xf9,0xae,0x94,0xa4,0x9a,0xbc,0xcd,0xfe,0xff,0xda,0x46,0xa6,0xa6,0x02,0x17,0x05,0x9a,0xfd,0x97,0x21,0xfe,0xa1, -0xfe,0xfd,0xff,0xfe,0xb7,0x4c,0xae,0x6c,0xea,0xca,0xd6,0x01,0x26,0xfd,0x5c,0x05,0x9a,0xfd,0xa0,0x02,0x60,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xae,0x04,0x00,0x00,0x1a,0x00,0x42,0x40,0x24,0x01,0x14,0x19,0x95,0x13,0x13,0x14,0x1a,0x17,0x0f,0x07,0xec,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x14,0x1a,0x00,0x00,0x04, -0x83,0x0f,0x0f,0x1c,0x17,0x01,0x14,0x84,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x12,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x33, -0x01,0x03,0xae,0xfe,0x4c,0xc8,0xe6,0xfe,0xea,0xee,0x99,0x65,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xa4,0x02,0x01,0x87,0x04,0x00,0xfe,0x6c,0x20,0xfe,0xe5,0xd9,0xd6,0xfe,0xe4,0x3a,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0xfe,0x74,0x01,0x8c,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0xf2,0x05,0x9a,0x00,0x18,0x00,0x40, -0x40,0x22,0x0a,0x7e,0x18,0x07,0x18,0x11,0x18,0x11,0x18,0x1a,0x06,0x02,0x7e,0x03,0x11,0x13,0x92,0x0e,0x08,0x03,0x01,0x91,0x06,0x40,0x04,0x03,0x06,0x91,0x2b,0x30,0x04,0x03,0x03,0x12,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe1,0x31,0x30, -0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x36,0x35,0x04,0x4a,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x95,0x94,0xfe,0xf8,0xae,0x94,0xa4,0x9a,0x5e,0x95,0x33,0x67,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfb,0x14,0xff,0xa4,0xa5,0x4c,0xae,0x6c, -0x3a,0x3b,0x74,0xcb,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xf8,0x04,0x00,0x00,0x19,0x00,0x3a,0x40,0x1f,0x0a,0x84,0x07,0x12,0x03,0x19,0x19,0x1b,0x06,0x02,0x84,0x03,0x14,0x95,0x0f,0x08,0x0f,0x01,0x95,0x06,0x40,0x04,0x03,0x06,0x95,0x2b,0x30,0x04,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x01, -0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0xe1,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x03,0x54,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x46,0x46,0x8b,0xef,0x9a,0x64,0x75,0x8b,0x54,0x83,0x5a,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00, -0xfe,0x5c,0x01,0xa4,0xfc,0x69,0x72,0xbc,0x47,0x8e,0x3a,0xa0,0x4e,0x31,0x5c,0x85,0x54,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x04,0x81,0x05,0x9a,0x00,0x14,0x00,0x38,0xb9,0x00,0x02,0x01,0x30,0x40,0x0f,0x10,0x91,0x08,0x08,0x01,0x13,0x0d,0x03,0x05,0x91,0x01,0x00,0x7e,0x12,0x01,0xb8,0x01,0x2c,0xb7,0x04,0x12,0x06,0x06,0x16,0x0e, -0x7e,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xd6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x3f,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xd7,0x9c,0xcb,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xfe,0x80,0x02,0x18,0x01, -0xed,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0x00,0x01,0x00,0x98,0xfe,0x8a,0x03,0xdf,0x04,0x00,0x00,0x13,0x00,0x3d,0x40,0x0b,0x11,0x06,0x0f,0xec,0x08,0x08,0x01,0x12,0x0c,0x0f,0x02,0xb8,0x01,0x31,0xb3,0x05,0x95,0x01,0x01,0xb8,0x01,0x2c,0x40,0x0b,0x04,0x00,0x84,0x06,0x06,0x11,0x11,0x15,0x0c,0x84,0x0b,0x2f, -0xe1,0x12,0x39,0x2f,0x33,0x10,0xe1,0xd6,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xb0,0x8b,0x98,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0xfe,0x8a,0x02,0x02,0x01,0x10,0x62, -0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x19,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x55,0x01,0x5b,0x00,0x08,0xb3,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, -0x00,0xc6,0x00,0x00,0x00,0x08,0xb3,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf2,0x40,0x0a,0x1f,0x19,0x05,0x00,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, -0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x14,0x2f,0x29,0x08,0x14,0x25,0x03,0x02,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x02,0x06,0x00,0x91, -0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18,0x02,0x06,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x1b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x13,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x12,0x12,0x0c,0x02,0x0b,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, -0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x20,0x1a,0x0c,0x12,0x25,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x3f,0x40,0x23, -0x12,0x91,0x40,0x01,0x09,0x0f,0x01,0x91,0x2b,0x30,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x7d,0x01,0x12,0x12,0x1a,0x13,0x7d,0x00,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x13,0x21,0x26, -0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc,0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe, -0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x02,0x06,0x05,0x07,0x00,0x00,0xff,0xff,0x00,0x56,0xff,0xe8,0x05,0x66,0x06,0xe4,0x02,0x26,0x06,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x2a,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xec, -0x40,0x0a,0x28,0x22,0x00,0x0c,0x25,0x03,0x02,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x05,0x87,0x02,0x26,0x05,0x07,0x00,0x00,0x01,0x06,0x00,0x8f,0x7a,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x12,0x0c,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, -0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x06,0xe4,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0xd6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x2d,0x27,0x0d,0x00,0x25,0x02,0x01,0x2a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0x87, -0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x54,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x06,0xe4,0x02,0x26,0x01,0xee,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x61, -0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x33,0x2d,0x01,0x1f,0x25,0x02,0x01,0x30,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xe7,0x03,0x3b,0x05,0x87,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x06,0x00,0x8f,0x11,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf6,0x40,0x0a,0x31,0x2b, -0x12,0x16,0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0x00,0x52,0xff,0xe8,0x03,0xd3,0x05,0x9a,0x00,0x16,0x00,0x3f,0x40,0x20,0x0f,0x96,0x09,0x09,0x15,0x0b,0x91,0x0c,0x03,0x01,0x03,0x91,0x15,0x13,0x0a,0x0f,0x0e,0x09,0x09,0x06,0x01,0x0e,0x0b,0x0e,0x0b,0x01,0x12,0x7d,0x06,0x06,0x18,0x01, -0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x01,0x21,0x35,0x21,0x15,0x01,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0x52,0xa8,0xd5,0x9f,0xb3,0xfe,0xa1,0x91,0x01,0x8f,0xfd,0xaa, -0x03,0x56,0xfe,0x7a,0xc0,0xd9,0xfe,0xee,0xf9,0xf2,0x3c,0xb6,0x7b,0xa4,0x83,0x01,0x1e,0x02,0x46,0x98,0x28,0xfd,0xc8,0xdc,0xb6,0xca,0xf6,0x00,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x02,0x06,0x05,0x97,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0x8c,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0xd9, -0x01,0xd6,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x14,0x16,0x17,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0x2f,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x10,0x11,0x07,0x0d,0x25,0x01,0x0f,0x11, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe4,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x6f,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x11,0x23,0x1d,0x0a,0x13,0x25,0x02,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00, -0x04,0x00,0x05,0x87,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xce,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x1b,0x1d,0x17,0x07,0x0d,0x25,0x02,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f, -0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03, -0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x02,0xcf,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x04,0x03,0x03,0x29,0x23,0x03,0x09,0x25,0x04,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, -0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x02,0xd0,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x04,0x03,0x00,0x27,0x21,0x03,0x09,0x25,0x04,0x03,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x90,0x06,0xe4,0x02,0x26, -0x02,0x04,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x76,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x28,0x22,0x0f,0x14,0x25,0x02,0x01,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x05,0x87,0x02,0x26,0x02,0x24,0x00,0x00,0x01,0x06,0x00,0x8f,0xf0,0x00,0x00,0x1a, -0xb1,0x02,0x01,0xb8,0xff,0xb6,0x40,0x0a,0x28,0x22,0x01,0x14,0x25,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0x8c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x32,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x05,0x17,0x16,0x0d,0x00,0x25,0x01,0x17,0x05, -0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0xe4, -0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xca,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x25,0x1f,0x0d,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x50,0x00,0x00,0x17, -0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x5c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x52,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x4c,0x1c,0x16,0x0d,0x00,0x25,0x02,0x01,0x1c,0x05, -0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x00,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xde,0x00,0xf0,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x62,0x1b,0x15,0x0c,0x00,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6, -0x00,0x00,0x04,0x81,0x06,0xe4,0x02,0x26,0x01,0xfe,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xf6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x03,0x20,0x1a,0x08,0x10,0x25,0x02,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x98,0x00,0x00,0x03,0xdf,0x05,0x87,0x02,0x26,0x02,0x1e,0x00,0x00,0x01,0x07, -0x00,0x8f,0x00,0x92,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x1f,0x19,0x07,0x0f,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x87,0x06,0xe3,0x02,0x26,0x02,0x02,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x87,0x01,0x5c,0x00,0x17,0x40,0x0d,0x04,0x03, -0x06,0x26,0x20,0x05,0x03,0x25,0x04,0x03,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x05,0x06,0x05,0x87,0x02,0x26,0x02,0x22,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x33,0x00,0x00,0x00,0x1a,0xb1,0x04,0x03,0xb8,0xff,0xfd,0x40,0x0a,0x25,0x1f,0x05,0x03,0x25,0x04,0x03,0x22,0x11,0x26, -0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x02,0x00,0x56,0x00,0x00,0x03,0xd1,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x24,0x40,0x12,0x0c,0x91,0x08,0x08,0x09,0x03,0x0b,0x91,0x00,0x00,0x7e,0x08,0x0b,0x0b,0x14,0x0f,0x7d,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x22,0x26, -0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x03,0x11,0x23,0x20,0x11,0x14,0x16,0x33,0x03,0xd1,0xfe,0x56,0xd8,0xf9,0xee,0xd4,0x01,0x11,0xa8,0xa8,0xeb,0xfe,0xc8,0xa3,0x95,0xe6,0xc6,0xc1,0xcd,0x02,0x60,0xfa,0xfe,0x02,0x0a,0xff,0x00,0x7d,0x8d,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0x00,0x02, -0x00,0x64,0xff,0xe8,0x06,0x58,0x05,0x9a,0x00,0x19,0x00,0x22,0x00,0x3a,0x40,0x1e,0x06,0x08,0x1b,0x91,0x18,0x0f,0x0f,0x11,0x03,0x15,0x20,0x91,0x03,0x08,0x13,0x06,0x12,0x7e,0x0f,0x1a,0x1a,0x0b,0x00,0x7e,0x17,0x17,0x24,0x1e,0x7d,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x3f, -0x39,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x11,0x23,0x20,0x11,0x10,0x21,0x32,0x36,0x06,0x58,0xd1,0xbf,0x69,0xad,0x2b,0x73,0xed,0xd2,0xf1,0xf2,0xd1,0x01,0x11,0xa7,0x7f,0x6d,0xe5,0xa8,0xfc, -0xe0,0xec,0xfe,0xc8,0x01,0x2a,0x63,0x97,0x01,0x92,0xc8,0xe2,0x63,0x5d,0xc0,0xeb,0xcb,0xc2,0xda,0x02,0x60,0xfb,0xf6,0x79,0x98,0x01,0x1f,0x01,0x9c,0xfe,0x38,0x01,0x30,0xfe,0xf2,0xfe,0xeb,0x82,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x70,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x3f,0x40,0x21,0x19,0x19,0x0d,0x25,0x11,0x00,0x0f,0x1f, -0x95,0x0d,0x10,0x16,0x05,0x25,0x95,0x03,0x07,0x16,0x05,0x13,0x84,0x11,0x1b,0x1b,0x0a,0x1a,0x83,0x19,0x19,0x29,0x22,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x22,0x02,0x35, -0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x70,0xca,0xb6,0xf4,0x4e,0x7c,0xfe,0xf1,0xd9,0xea,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x7e,0x64,0xd6,0xa8,0xfc,0xfc,0xa4,0x7e,0x96,0xac,0xa6,0x8a,0x89,0xab,0x01,0x83,0xbf, -0xdc,0xe3,0xe3,0x01,0x14,0xec,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0x95,0x75,0x9a,0x01,0x1a,0xa1,0x5e,0x97,0x7c,0xac,0xdc,0xc2,0xb2,0xcc,0xc6,0x00,0x01,0x00,0x29,0xff,0xe8,0x05,0xf6,0x05,0xb2,0x00,0x24,0x00,0x4b,0x40,0x27,0x1c,0x1b,0x08,0x91,0x0b,0x0b,0x03,0x23,0x23,0x20,0x13,0x11,0x91,0x16,0x04,0x20,0x91,0x03,0x13,0x1c, -0x09,0x19,0x7d,0x0e,0x09,0x0e,0x09,0x13,0x1e,0x7d,0x06,0x06,0x13,0x24,0x7e,0x23,0x23,0x26,0x13,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x02,0x21,0x23,0x35, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x04,0x13,0x12,0x33,0x32,0x11,0x11,0x33,0x05,0xf6,0xd2,0xbe,0xb9,0xdd,0x05,0x09,0xfe,0x94,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x01,0x32,0x0f,0x0c,0xdf,0xe6,0xa8,0x01,0x92,0xc9,0xe1,0xeb,0xb9,0x01, -0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x26,0xfe,0xce,0xfe,0xe9,0x01,0x1f,0x01,0x9c,0x00,0x01,0x00,0x1e,0xff,0xe8,0x05,0x56,0x04,0x18,0x00,0x22,0x00,0x4b,0x40,0x27,0x22,0x22,0x03,0x1a,0x19,0x09,0x95,0x0a,0x0a,0x1e,0x12,0x10,0x95,0x15,0x10,0x1e,0x95,0x03,0x16,0x1a,0x09,0x17,0x84,0x0d, -0x09,0x0d,0x09,0x12,0x1c,0x84,0x05,0x05,0x12,0x22,0x83,0x21,0x21,0x24,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x03,0x26,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34, -0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x17,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x56,0xcc,0xb5,0xfe,0xb7,0x3a,0x0e,0x7c,0x9f,0x65,0x61,0x01,0x04,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0xda,0x20,0x20,0xbf,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0x01,0x4b,0x52,0x43,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, -0xfe,0xee,0xbd,0x33,0x04,0x12,0xc2,0xcc,0x01,0x1a,0xa1,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x3a,0x05,0xb2,0x00,0x1f,0x00,0x4e,0x40,0x0d,0x1a,0x19,0x07,0x91,0x08,0x08,0x03,0x11,0x0f,0x91,0x14,0x04,0x01,0xb8,0x01,0x30,0x40,0x0e,0x1e,0x91,0x03,0x1a,0x07,0x17,0x7d,0x0c,0x07,0x0c,0x07,0x03,0x11,0x1f,0xb8,0x01,0x2c,0xb7, -0x02,0x02,0x1e,0x7e,0x03,0x03,0x21,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, -0x10,0x05,0x15,0x16,0x16,0x15,0x15,0x33,0x04,0x3a,0x9c,0xcd,0xfe,0x85,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x93,0xaa,0xc1,0xfe,0x80,0x01,0x80,0x01,0x8c,0x01,0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x11,0xbb,0x8e,0xfc,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b, -0x03,0x8e,0x04,0x18,0x00,0x1d,0x00,0x4e,0x40,0x0d,0x18,0x17,0x07,0x95,0x08,0x08,0x03,0x10,0x0e,0x95,0x13,0x10,0x01,0xb8,0x01,0x31,0x40,0x0e,0x1c,0x95,0x03,0x18,0x07,0x15,0x84,0x0b,0x07,0x0b,0x07,0x03,0x10,0x1d,0xb8,0x01,0x2c,0xb7,0x02,0x02,0x1c,0x84,0x03,0x03,0x1f,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12, -0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x16,0x15,0x15,0x33,0x03,0x8e,0x8e,0xae,0xfe,0xd7,0x65,0x61,0x01,0x04,0x77,0x68, -0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0x71,0x8b,0x98,0xfe,0x8b,0x01,0x75,0x01,0x1c,0xac,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d,0xfe,0xee,0xbd,0x33,0x04,0x09,0x87,0x6a,0x8c,0x00,0x00,0x01,0x00,0x18,0xff,0xe8,0x06,0xc2,0x05,0x9a,0x00,0x1c,0x00,0x3c,0x40,0x20,0x1c,0x1c,0x18,0x07,0x91,0x14,0x03,0x18,0x91,0x03,0x13,0x0e,0x10,0x91, -0x0b,0x13,0x15,0x7e,0x06,0x06,0x1a,0x09,0x7e,0x12,0x00,0x7e,0x1a,0x12,0x1a,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, -0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x06,0xc2,0xd2,0xbd,0xba,0xdb,0xfe,0x2d,0xfe,0x97,0x28,0x22,0x1c,0x20,0xd7,0x03,0x1b,0x7e,0x71,0xe5,0xa8,0x01,0x9a,0xcb,0xe7,0xf2,0xb8,0x03,0x70,0xfd,0x36,0xfd,0xb6,0x0a,0x96,0x0b,0x01,0xae,0x03,0x69,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x14,0xff,0xe8, -0x05,0xee,0x04,0x00,0x00,0x1c,0x00,0x46,0x40,0x1a,0x1c,0x1c,0x18,0x07,0x95,0x14,0x0f,0x0e,0x10,0x95,0x0b,0x0b,0x1d,0x18,0x95,0x03,0x16,0x15,0x84,0x06,0x06,0x12,0x1c,0x83,0x1b,0x09,0xb8,0x01,0x2e,0xb6,0x12,0x1b,0x12,0x1b,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed, -0x12,0x39,0x7c,0x2f,0x18,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0xee,0xcc,0xb6,0xb1,0xd3,0xfe,0xa4,0xfe,0xc6,0x25,0x19,0x15,0x25,0xa4,0x02,0x9a,0x77,0x67,0xdc,0xa8, -0x01,0x83,0xbd,0xde,0xdd,0xb6,0x01,0xf9,0xfe,0x2a,0xfe,0x54,0x08,0x8b,0x0a,0x01,0x17,0x02,0x6e,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x6e,0x05,0x9a,0x00,0x18,0x00,0x41,0x40,0x23,0x17,0x17,0x08,0x91,0x40,0x0d,0x0c,0x09,0x0d,0x91,0x2b,0x30,0x0f,0x0c,0x03,0x14,0x91,0x03,0x13,0x09,0x10,0x7e, -0x0e,0x07,0x07,0x0a,0x00,0x7e,0x16,0x16,0x1a,0x0d,0x08,0x7e,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11, -0x11,0x33,0x07,0x6e,0xd3,0xbc,0xba,0xdb,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x7e,0x72,0xe4,0xa8,0x01,0x9a,0xcd,0xe5,0xf2,0xb8,0xfc,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x5a,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x17,0x17,0x03,0x08,0x95,0x40, -0x0d,0x0c,0x09,0x0d,0x95,0x2b,0x30,0x0f,0x0c,0x0f,0x14,0x95,0x03,0x16,0x09,0x11,0x84,0x0e,0x07,0x07,0x0a,0x00,0x83,0x16,0x16,0x1a,0x0d,0x08,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x7c,0x2f,0x31,0x30,0x01,0x14,0x06,0x23, -0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x06,0x5a,0xcc,0xb5,0xb1,0xd4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdc,0xb7,0x56,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0x5e, -0xff,0xe8,0x05,0x62,0x05,0xb2,0x00,0x1a,0x00,0x3e,0x40,0x22,0x18,0x91,0x19,0x19,0x09,0x14,0x1f,0x0c,0x2f,0x0c,0x02,0x0c,0x0c,0x0e,0x91,0x09,0x04,0x14,0x91,0x03,0x13,0x18,0x0c,0x18,0x0c,0x06,0x00,0x7e,0x17,0x17,0x1c,0x11,0x7d,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f, -0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x12,0x37,0x21,0x35,0x21,0x05,0x62,0xfe,0xb5,0xfe,0xdd,0xfe,0xc9,0xfe,0xa1,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x07,0xe5,0xcc,0xf2,0x04,0xfe,0x46, -0x02,0x60,0x02,0x8e,0xfe,0xd0,0xfe,0x8a,0x01,0x8a,0x01,0x48,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xef,0xfe,0xca,0x01,0x07,0xd8,0x98,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf4,0x04,0x18,0x00,0x1a,0x00,0x40,0x40,0x24,0x18,0x95,0x19,0x19,0x09,0x14,0x3f,0x0c,0x4f,0x0c,0x5f,0x0c,0x03,0x0c,0x0c,0x0e, -0x95,0x09,0x10,0x14,0x95,0x03,0x16,0x19,0x0c,0x19,0x0c,0x11,0x1a,0x83,0x17,0x17,0x1c,0x11,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, -0x14,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x03,0xf4,0xe4,0xcc,0xd9,0xfe,0xf5,0x01,0x22,0xf2,0x9c,0x6b,0x77,0x96,0x9d,0xc9,0xb0,0x8e,0x7b,0x89,0x02,0xfe,0x98,0x02,0x10,0x01,0xd3,0xe3,0xfe,0xf8,0x01,0x1b,0xe5,0xfd,0x01,0x33,0x3f,0xa8,0x5d,0xe1,0xb7,0xaf,0xd5,0xa3,0x89,0x8b,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0xec, -0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x91,0x09,0x03,0x10,0x91,0x40,0x03,0x13,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x7e,0x06,0x06,0x08,0x00,0x7e,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, -0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x04,0xec,0xd3,0xbd,0xba,0xdc,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x7f,0x71,0xe6,0xa8,0x01,0x9a,0xca,0xe8,0xf1,0xb9,0x03,0x70,0x98,0x98,0xfc,0xa0,0x80,0xa3,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x1e,0xff,0xe8,0x04,0x58, -0x04,0x00,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x95,0x09,0x0f,0x10,0x95,0x40,0x03,0x16,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x84,0x06,0x06,0x08,0x00,0x83,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, -0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x04,0x58,0xcc,0xb5,0xb2,0xd3,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdd,0xb6,0x01,0xf9,0x8c,0x8c,0xfe,0x11,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a, -0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x36,0x40,0x1c,0x01,0xe2,0x40,0x02,0x80,0x0a,0x16,0xc1,0x40,0x04,0x10,0x01,0x00,0x01,0x00,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x11,0x39,0x39,0x18,0x2f,0x2f,0x00,0x2f,0x33,0x1a,0xfd,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21, -0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a, -0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x66,0x40,0x3d,0x06,0x70,0x03,0x01,0x03,0x80,0x09,0x05,0x19,0x05,0x02,0x09,0x05,0x02,0x40,0x09,0x10,0x48,0x02,0x02,0x0d,0x19,0xc1,0x40,0x07,0x13,0x00,0xe0,0x03,0x01,0x03,0x03,0x00,0x05,0x05,0x1c,0x10,0xc0, -0x0a,0x16,0xc0,0x1c,0x00,0x1c,0x01,0x0f,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x10,0x03,0x20,0x1f,0x0a,0x1c,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x3d,0x2f,0x33,0x33,0x18,0x2f,0x5d,0x2f,0x00,0x2f,0x33,0x1a,0xed,0x32,0x32,0x2f,0x2b,0x33,0x5e,0x5d,0x1a,0xcd,0x5d,0x32,0x31,0x30,0x01,0x03, -0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8, -0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44,0xb2,0x03,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19, -0x0f,0x07,0x01,0x10,0x03,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x01,0x33,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x02,0xa2,0x7f,0xfe,0xf9,0xa6,0x01,0x50,0x29,0x39,0x3b,0x29,0x2a,0x39,0x3c,0xfe,0x57,0x2a,0x39,0x3b,0x2a,0x27,0x39,0x3a,0x05,0x9a,0x01,0x48,0xfd,0xe0,0x3a,0x29,0x29,0x39,0x39,0x29,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2b,0x38,0x00,0x02,0x01,0x08,0x04,0xc2,0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x32, -0x40,0x1a,0x01,0xe2,0x40,0x02,0x80,0x0a,0xc1,0x40,0x04,0x00,0x0e,0x0d,0x01,0x07,0x42,0x01,0x01,0x07,0xc0,0x0d,0x11,0x10,0x0d,0xc0,0x2b,0x30,0x2b,0x01,0x10,0xe1,0x32,0x18,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xfd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x03,0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x20,0x15,0xe2,0x40,0x16,0x80,0x13,0x0d,0xda,0x07,0x11,0xda,0x03,0x09,0x17,0x16,0x17, -0x16,0x0a,0x00,0xc4,0x0f,0x13,0x01,0x13,0x13,0x19,0x09,0xc4,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21, -0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04,0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x01,0xff,0x8c,0x05,0x0e,0x03,0x1e,0x05,0xd1,0x00,0x0b,0x00,0x32,0x40,0x19,0x0b,0xdb,0x04,0x08,0x40,0x05,0x01,0x09,0x03,0x03, -0x00,0x0e,0x05,0x0b,0x06,0x42,0x08,0x40,0x0b,0x0c,0x0d,0x06,0x05,0x2b,0x3a,0x2b,0x01,0x18,0x2f,0x1a,0xcd,0x2b,0x01,0x10,0xf0,0xc1,0x18,0x2f,0x00,0x2f,0x33,0x33,0x1a,0xdd,0x32,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x03,0x1e,0x5a,0x22,0x30,0xdc,0x30,0x22,0x30,0xdc,0x30,0x22,0x5a,0x05, -0xd1,0xc3,0x64,0x64,0x64,0x64,0xc3,0x00,0x00,0x02,0xff,0x27,0x04,0x89,0x00,0xbc,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x65,0x40,0x0d,0x02,0x09,0x12,0x09,0x22,0x09,0x03,0x03,0x05,0x0f,0x0f,0x0d,0x0b,0xba,0x01,0x3d,0x00,0x16,0xff,0xf0,0xb6,0x0c,0x0f,0x48,0x16,0x16,0x01,0x0d,0x41,0x0a,0x01,0x3d,0x00,0x12,0x01,0x39,0x00,0x1c, -0x01,0x3d,0x00,0x40,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0xb3,0x0f,0x0f,0x08,0x14,0xb8,0x01,0x3c,0xb4,0x16,0x01,0x0b,0x80,0x1a,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0x1a,0xdc,0x32,0x32,0xe1,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x11,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x5d,0x13,0x23,0x35, -0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0xbc,0x52,0x02,0x35,0x68,0x4d,0x57,0xaa,0x99,0x6a,0x5d,0x49,0x41,0x6d,0xb4,0x52,0x7c,0x43,0x30,0x62,0x3e,0x4f,0x04,0x96,0x50,0x5d,0x52,0x43,0x8f,0x17,0x17,0x81,0x3e,0x54,0x30,0xbe, -0x7e,0x34,0x13,0x0a,0x2b,0x2d,0x56,0x57,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x68,0x40,0x14,0x02,0x01,0x12,0x01,0x22,0x01,0x03,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x05,0x05,0x03,0x01,0xb8,0x01,0x3d,0xb4,0x40,0x17,0x0e,0x08,0x17,0xb8,0x01,0x3d,0xb2,0x2b,0x30,0x14,0xbe,0x01, -0x3d,0x00,0x0e,0x01,0x39,0x00,0x03,0x01,0x3d,0x00,0x08,0x01,0x3b,0xb3,0x05,0x05,0x0b,0x11,0xb8,0x01,0x3c,0xb7,0x60,0x12,0xc0,0x12,0x02,0x12,0x17,0x01,0xb9,0x01,0x3c,0x00,0x0b,0x2f,0xe1,0x32,0xdd,0x71,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5d, -0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x57,0x49,0x42,0x70,0x6c,0x7d,0x87,0x64,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8c,0x7f,0x78,0x96,0x81,0x75,0x1a,0x96,0x52,0x44,0x00,0x00,0x02, -0xff,0xcb,0x04,0x96,0x00,0x35,0x07,0x83,0x00,0x07,0x00,0x0b,0x00,0x41,0xb9,0x00,0x00,0x01,0x3f,0x40,0x09,0x40,0x04,0x80,0x00,0x0a,0x01,0x0c,0x03,0x0a,0xbc,0x01,0x38,0x00,0x09,0x01,0x3a,0x00,0x0b,0x01,0x3c,0xb3,0x0a,0x02,0x06,0x0a,0xb8,0x01,0x3c,0xb2,0x2b,0x30,0x02,0xb8,0x01,0x3e,0xb1,0x06,0x0d,0x10,0xd4,0xe1,0x2b,0x01, -0x10,0xe1,0x00,0x18,0x3f,0x3f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x11,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0x35,0x35,0x35,0x0e,0x52,0x52,0x07,0x18,0x36,0x35,0x35,0x36,0xfd,0x7e,0x02,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15,0x00,0x29,0x41,0x0e,0x00,0x0c, -0x01,0x3d,0x00,0x06,0x01,0x39,0x00,0x12,0x01,0x3d,0x00,0x00,0x01,0x3b,0x00,0x09,0x01,0x3c,0x00,0x14,0x00,0x0f,0x01,0x3c,0x00,0x03,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x72,0x88,0x8e,0x78, -0x72,0x80,0x89,0x6f,0x4f,0x5d,0x5c,0x50,0xa4,0x04,0x89,0x90,0x77,0x7f,0x93,0x8e,0x7c,0x7b,0x94,0x01,0xd3,0x6a,0x5e,0x5a,0x6b,0xc7,0xc6,0x00,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xd5,0x06,0x96,0x00,0x11,0x00,0x31,0xb1,0x10,0x09,0xb8,0x01,0x38,0xb2,0x0f,0x02,0x0c,0xbe,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00, -0x11,0x01,0x3c,0xb2,0x01,0x10,0x09,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x32,0x3f,0x33,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0xd5,0x52,0x02,0x33,0x6a,0xb9,0x52,0x7d,0x3c,0x4d,0x52,0x04,0x96,0x52,0x5f,0xdb,0x01,0x32,0xfe, -0xda,0xa1,0x57,0x48,0x01,0x28,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xac,0x06,0xa2,0x00,0x15,0x00,0x2a,0xb1,0x00,0x02,0xbf,0x01,0x3d,0x00,0x13,0x01,0x39,0x00,0x0a,0x00,0x08,0x01,0x3d,0x00,0x0d,0x01,0x3b,0xb2,0x00,0x0a,0x05,0xb9,0x01,0x3c,0x00,0x10,0x2f,0xe1,0xc4,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x26, -0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xac,0x38,0x41,0x4f,0x65,0x5f,0x4f,0x43,0x3c,0x3d,0x51,0x6d,0x86,0x91,0x79,0x45,0x32,0x06,0x35,0x27,0x6f,0x5b,0x5a,0x69,0x2d,0x4e,0x25,0x8f,0x71,0x7e,0x9b,0x19,0x00,0x02,0xff,0x14,0x04,0x89,0x00,0xec,0x07,0x8c,0x00,0x10, -0x00,0x1c,0x00,0x3e,0xb9,0x00,0x0f,0x01,0x36,0xb3,0x0d,0x03,0x05,0x15,0x41,0x0b,0x01,0x3d,0x00,0x0b,0x01,0x39,0x00,0x1a,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x10,0x01,0x3c,0xb3,0x12,0x01,0x0f,0x17,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f, -0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x36,0xec,0x52,0x02,0x3a,0x76,0x60,0x74,0x80,0x6a,0x6a,0x30,0x02,0x52,0x52,0x53,0x3f,0xa0,0x54,0x44,0x45,0x55,0x04,0x96,0x58,0x65,0x8b,0x75,0x80,0x99,0x52,0x01,0x3c,0xfd, -0xf1,0x4b,0x3f,0x55,0xce,0x59,0x66,0x64,0x00,0x01,0xff,0x2b,0x04,0x96,0x00,0xd5,0x07,0x8c,0x00,0x11,0x00,0x32,0xb9,0x00,0x0b,0x01,0x36,0xb2,0x0d,0x08,0x04,0xbf,0x01,0x3d,0x00,0x0f,0x01,0x39,0x00,0x01,0x00,0x08,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb2,0x01,0x0b,0x08,0xb9,0x01,0x3c,0x00,0x09,0x2f,0xe1,0x32,0xd4,0xe1,0x00,0x3f, -0x33,0x3f,0xed,0x12,0x39,0x3f,0x31,0x30,0x13,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0xd5,0x52,0x77,0x3d,0x52,0x52,0x52,0x02,0x3b,0x6d,0xae,0x04,0x96,0x01,0x26,0xa0,0x5c,0x48,0xfe,0xde,0x02,0xf6,0xfe,0xb6,0x60,0xd1,0x00,0x01,0xfe,0x96,0x04,0x96,0x01,0x6c,0x06,0xa2,0x00,0x1d, -0x00,0x51,0xb4,0x04,0x15,0x19,0x03,0x0c,0xb8,0x01,0x3d,0xb2,0x40,0x1b,0x17,0xba,0x01,0x39,0x00,0x13,0x01,0x38,0xb2,0x08,0x00,0x10,0xba,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb7,0x01,0x0e,0x08,0x10,0x09,0x42,0x19,0x08,0xb8,0x01,0x3c,0xb4,0x09,0x09,0x1e,0x13,0x10,0xb9,0x01,0x3c,0x00,0x11,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xe1,0x39, -0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x01,0x6c,0x52,0x72,0x35,0x4a,0x52,0x75,0x35,0x45,0x52,0x52,0x02,0x36,0x67, -0x71,0x20,0x3a,0x70,0xaa,0x04,0x96,0x01,0x26,0xa0,0x5e,0x44,0xfe,0xdc,0x01,0x30,0x96,0x59,0x49,0xfe,0xdc,0x02,0x00,0x50,0x5c,0x6a,0x6a,0xd1,0x00,0x01,0xff,0x9c,0x04,0x96,0x00,0xa8,0x06,0xa0,0x00,0x0f,0x00,0x2d,0xb3,0x0a,0x07,0x00,0x02,0xbe,0x01,0x40,0x00,0x0d,0x01,0x39,0x00,0x08,0x01,0x38,0x00,0x07,0x01,0x3a,0xb3,0x00, -0x00,0x09,0x06,0xb9,0x01,0x3c,0x00,0x07,0x2f,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x12,0x39,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0xa8,0x16,0x2a,0x35,0x45,0x52,0x52,0x02,0x24,0x63,0x1d,0x14,0x06,0x44,0x10,0x64,0x54,0xfe,0xfa,0x02,0x00,0x69,0x73,0x08,0x00, -0x00,0x01,0xff,0x6a,0x04,0x8c,0x00,0x96,0x07,0x2d,0x00,0x13,0x00,0x3a,0xb2,0x0a,0x0e,0x05,0x41,0x09,0x01,0x3d,0x00,0x0b,0x00,0x08,0x01,0x38,0x00,0x13,0x00,0x11,0x01,0x3d,0x00,0x02,0x01,0x3b,0xb6,0x13,0x0d,0x0d,0x0e,0x06,0x0b,0x0e,0xb8,0x01,0x3c,0xb1,0x08,0x05,0x2f,0x33,0xe1,0x32,0xcd,0x10,0xc1,0x2f,0x32,0x00,0x3f,0xed, -0x32,0x3f,0x33,0xed,0x32,0xcd,0x31,0x30,0x13,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x96,0x1e,0x2e,0x88,0x58,0x58,0x52,0x82,0x82,0x4c,0x1f,0x17,0x04,0x9c,0x10,0x95,0x01,0x2f,0x46,0x7c,0x1b,0x97,0x46,0xfe,0xdf,0x5e,0x11,0x00,0x00,0x01,0xff,0x10,0x04,0x96,0x00,0xf0, -0x06,0x96,0x00,0x0b,0x00,0x5b,0x40,0x0e,0x07,0x40,0x0e,0x11,0x48,0x07,0x18,0x09,0x0d,0x48,0x07,0x02,0x0b,0x04,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x40,0x25,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x00,0x0e,0x07,0x0f,0x04,0x1f,0x04,0x2f,0x04,0x03,0x09,0x05,0x04,0x03,0x03,0x07,0x42,0x03,0x01,0x18,0x09,0x0d,0x48,0x00,0x01, -0x02,0x03,0x04,0x07,0x19,0x2f,0x17,0x33,0x2b,0x18,0x2f,0x2b,0x11,0x01,0x33,0x5f,0x5e,0x5d,0x10,0xe0,0x32,0x5d,0x00,0x18,0x3f,0x3f,0x33,0x12,0x39,0x2b,0x2b,0x31,0x30,0x13,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xf0,0xcd,0x50,0xc3,0x5a,0x84,0x0c,0x04,0x02,0x05,0x0b,0x8a,0x06,0x96,0xfe,0x00,0x02,0x00,0xfe, -0x8d,0x21,0x27,0x26,0x20,0x01,0x75,0x00,0x00,0x01,0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x14,0x00,0x1c,0xbb,0x00,0x0e,0x01,0x38,0x00,0x0a,0x01,0x3a,0x40,0x09,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x0b,0x2f,0xc4,0x5d,0x00,0x3f,0x3f,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x37,0x03, -0x33,0x17,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x65,0x0f,0x07,0x02,0x07,0x0f,0x67,0x5e,0xae,0xa8,0x60,0x63,0x08,0x0e,0x02,0x16,0x69,0x06,0x96,0xfe,0xfe,0xfe,0xa6,0x19,0x0d,0x0e,0x18,0xa6,0xfc,0x01,0x04,0xae,0x0e,0x1c,0x2a,0xae,0x00,0x00,0x01,0x00,0x72,0x03,0xc6,0x01,0x62,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb4,0x02, -0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x62,0x7c,0x74,0x54,0x05,0x9a,0xfe,0x2c,0x01,0xd4,0x00,0x01,0x00,0x72,0xfd,0xfe,0x01,0x62,0xff,0xc6,0x00,0x03,0x00,0x20,0xb9,0x00,0x03,0xff,0xc0,0x40,0x0e,0x0e,0x11,0x48,0x03,0x03,0x04,0x1f,0x02,0x2f,0x02,0x02,0x02,0x00,0x02,0x2f,0xcd,0x00, -0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0x62,0x54,0x9c,0x7e,0x3a,0xfe,0x38,0x01,0xc8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x21,0x40,0x11,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x2b,0x1a,0xdc, -0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x11,0x00,0x36,0xbc,0x00,0x0a,0x01,0x07,0x00,0x09,0x00,0x01,0x01,0x0a,0xb2, -0x0a,0x0c,0x04,0xbc,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x00,0x01,0x0c,0xb4,0x01,0x01,0x13,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d, -0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x1a,0x00,0x4d,0xb1,0x09,0x01,0xbd,0x01,0x0a,0x00,0x15,0x00,0x04,0x01,0x0d,0x00,0x18,0xff,0xc0,0xb3,0x09,0x0d,0x48,0x18,0xb8,0x01,0x09,0xb2,0x10, -0x10,0x12,0xba,0x01,0x0d,0x00,0x0d,0x01,0x07,0xb3,0x10,0x10,0x08,0x00,0xb8,0x01,0x0c,0xb4,0x01,0x01,0x1c,0x15,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x2b,0xed,0x32,0x3f,0x33,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x36, -0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x39,0x45,0x80,0x96,0x87,0x3d,0x3c,0x3a,0x3d,0x9f,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x0a,0x88,0x98,0x18,0x68,0x1c,0xb2,0x46,0x67,0xe7,0x00,0x02,0xff,0xbe,0x01,0x98,0x00,0xf6,0x05,0xc4,0x00,0x07, -0x00,0x13,0x00,0x38,0xb2,0x0d,0x0d,0x0f,0xb8,0x01,0x0d,0xb5,0x0a,0x12,0x04,0x00,0x40,0x12,0xb8,0x01,0x08,0x40,0x0b,0x02,0x06,0x0c,0x11,0x08,0x02,0x06,0xff,0x3a,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe9,0x33,0x2b,0x01,0x18,0x2f,0x2f,0x2f,0x00,0x3f,0x1a,0xde,0xcd,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x13,0x22,0x35,0x34, -0x33,0x32,0x15,0x14,0x03,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0xda,0x2b,0x25,0x22,0x24,0x64,0x80,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x79,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x00,0x01,0x00,0x66,0x02,0x9a,0x01,0xa8,0x04,0xc8,0x00,0x0e,0x00,0x2d,0xbb,0x00,0x06,0x01,0x0a,0x00, -0x07,0x01,0x08,0xb5,0x0e,0xda,0x00,0x09,0x00,0x02,0xbe,0x01,0x0e,0x00,0x0c,0x01,0x09,0x00,0x09,0x00,0x05,0x01,0x0c,0x00,0x06,0x2f,0xe9,0x32,0x00,0x3f,0xed,0x32,0x32,0x2f,0xed,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x01,0xa8,0x1e,0x26,0x7e,0x80,0x80,0x02,0x28,0x69, -0x1b,0x14,0x04,0x46,0x12,0xb4,0xfe,0xf6,0x02,0x24,0x6c,0x76,0x08,0x00,0x00,0x01,0x00,0x0a,0x02,0x90,0x01,0x4c,0x04,0xbe,0x00,0x0e,0x00,0x31,0xb5,0x08,0x02,0x08,0x0a,0x52,0x05,0xbc,0x01,0x0b,0x00,0x01,0x01,0x0a,0x00,0x0d,0x01,0x08,0xb3,0x07,0x07,0x0c,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x10,0x0f,0x11,0x12,0x39,0x2f,0xe9, -0x33,0x33,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x4c,0x7f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x02,0x9a,0x6c,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0x00,0x01,0x00,0x0a,0x01,0x94,0x01,0xcf,0x04,0xbe,0x00,0x16,0x00,0x3e, -0xb2,0x16,0x16,0x14,0xb8,0x01,0x0d,0xb7,0x02,0x08,0x0b,0x05,0x0b,0x0d,0x52,0x08,0xba,0x01,0x0b,0x00,0x10,0x01,0x08,0xb5,0x00,0x0a,0x00,0x0a,0x0f,0x12,0xb8,0x01,0x0c,0xb3,0x04,0x04,0x18,0x17,0x11,0x12,0x39,0x2f,0xe9,0x33,0x33,0x32,0x2f,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x01,0x06, -0x23,0x22,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0xcf,0x23,0x40,0x9f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x4a,0x1e,0x1b,0x01,0xa6,0x12,0xbe,0xb4,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0xfd,0x9e,0x5e,0x10,0x00,0x02,0x00,0x66,0x02,0x9a,0x02,0x29,0x04,0xbe, -0x00,0x10,0x00,0x17,0x00,0x4d,0xb1,0x03,0x11,0xb8,0x01,0x0d,0xb3,0x0c,0x0c,0x0a,0x12,0xbd,0x01,0x0d,0x00,0x09,0x01,0x0a,0x00,0x00,0x00,0x0a,0x01,0x08,0x40,0x09,0x01,0x0f,0x0f,0x12,0x10,0xc2,0x00,0x00,0x06,0xb8,0x01,0x0c,0xb5,0x15,0x15,0x19,0x04,0x0c,0x12,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9, -0x32,0x2f,0xe9,0x11,0x39,0x11,0x33,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x23,0x23,0x11,0x33,0x15,0x33,0x32,0x37,0x37,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0x29,0x47,0x1a,0x36,0x7c,0xdf,0xc9,0x80,0x2a,0x3e,0x1c,0x3c,0xc0,0x43,0x67,0x61,0x04,0xbe,0xa2,0x3c, -0x15,0x03,0x14,0x6e,0xac,0x02,0x24,0xd0,0x43,0x8d,0xfe,0xce,0x90,0x48,0x48,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x03,0x18,0x04,0xbe,0x00,0x1b,0x00,0x17,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x08,0xb3,0x00,0x00,0x1d,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x34,0x27,0x23,0x06,0x07,0x03,0x23, -0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0x18,0x8c,0x9c,0x4a,0x0c,0x04,0x04,0x09,0x51,0x9c,0x88,0x8a,0x48,0x03,0x05,0x04,0x02,0x0a,0x58,0x92,0x50,0x03,0x05,0x04,0x02,0x08,0x4a,0x04,0xbe,0xfd,0xdc,0x01,0x41,0x01,0x45,0x19,0x2b,0xfe,0xbd,0x02,0x24,0xfe,0x9e,0x10,0x36,0x20, -0x28,0x01,0x60,0xfe,0x9e,0x0b,0x3b,0x20,0x26,0x01,0x62,0x00,0x00,0x01,0x00,0x0a,0x01,0x94,0x02,0x2f,0x04,0xbe,0x00,0x14,0x00,0x25,0xb2,0x06,0x06,0x08,0xb8,0x01,0x0d,0xb6,0x11,0x14,0x0b,0x01,0x04,0x03,0x0c,0xb8,0x01,0x08,0xb3,0x00,0x00,0x16,0x0c,0x2f,0x11,0x33,0x2f,0x00,0x3f,0xd4,0x17,0x39,0xed,0x32,0x2f,0x31,0x30,0x01, -0x03,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x2f,0xeb,0x48,0xa2,0x22,0x26,0x1e,0x20,0x57,0x24,0x14,0xd5,0x8a,0x78,0x0a,0x06,0x05,0x09,0x09,0x79,0x04,0xbe,0xfd,0x94,0xbe,0x0c,0x6c,0x0e,0x60,0x38,0x02,0x28,0xfe,0xa0,0x1e,0x34,0x37,0x1b,0x01,0x60,0x00,0x00,0x01, -0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x18,0xb7,0x02,0x03,0x03,0x03,0xbd,0x00,0x00,0x01,0xb9,0x01,0x34,0x00,0x02,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x8d,0x03,0xdb,0x02,0x84,0x05,0x9a,0x00,0x03, -0x00,0x07,0x00,0x28,0x40,0x12,0x06,0x03,0x02,0x07,0x04,0x03,0x00,0x00,0x01,0x02,0x02,0x09,0x06,0x07,0x04,0x04,0x05,0x06,0x2f,0xcd,0x32,0x2f,0xcd,0x11,0x12,0x39,0x2f,0xcd,0x32,0x2f,0xcd,0x00,0x3f,0xc4,0x33,0x32,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe, -0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x02,0x03,0x04,0x03,0x00,0x00,0x01,0x01,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x6e, -0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x01,0x02,0x04,0x01,0x00,0x00,0x03,0x03,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01,0xbe,0x00,0x00,0x01, -0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0xfb,0x5e,0x5e,0x4e,0x66,0x66, -0x04,0xc2,0x5c,0x5b,0x58,0x5e,0x68,0x4e,0x4e,0x69,0x00,0x01,0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x15, -0x22,0x15,0x14,0x33,0x01,0xaf,0x4e,0x66,0x65,0x4f,0x5e,0x5e,0x04,0xc2,0x69,0x4e,0x4d,0x69,0x5e,0x58,0x5b,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x01,0xb0,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x0b,0x09,0xbe,0x01,0x0d,0x00,0x0e,0x01,0x07,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0b,0x11,0xb8,0x01,0x0c,0xb3,0x07, -0x07,0x17,0x0b,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x23,0x11,0x34,0x36,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0xfc,0x7f,0x24,0x41,0x4d,0x87,0x4a,0x4a,0x4a,0x5a,0x73,0x85,0x6a,0x4a,0x02,0x9a,0x01,0x08,0x40,0x59,0x3c,0x49,0x36, -0x64,0x2b,0x73,0x22,0x6e,0x58,0x62,0x60,0x44,0x56,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x00,0x02,0xbe,0x01,0x0d,0x00,0x13,0x01,0x07,0x00,0x0b,0x01,0x0a,0x00,0x09,0x01,0x0c,0xb6,0x0c,0x0c,0x10,0x00,0x00,0x17,0x04,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1, -0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0xa6,0x48,0x52,0x80,0x4f,0x3a,0x29,0x80,0x50,0x64,0x8b,0x73,0x52,0x4c,0x05,0x2f,0x2b,0x5e,0x33,0x50,0x3a,0x58,0x45,0xfe,0xf8,0x01,0x06,0x4c,0x50,0x64,0x5a,0x58,0x72,0x22, -0x00,0x01,0x00,0x72,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x16,0x04,0x03,0x0e,0x05,0x20,0x06,0x00,0x05,0x00,0x42,0x00,0x00,0x02,0x01,0x05,0x05,0x01,0x04,0x00,0x00,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x33,0x33,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30, -0x25,0x01,0x35,0x01,0x17,0x01,0x01,0x04,0x3c,0xfc,0x36,0x03,0xc8,0x01,0xfc,0xff,0x03,0x00,0xe4,0x01,0x9b,0xa8,0x01,0x9b,0xb2,0xfe,0xc3,0xfe,0xc3,0x00,0x00,0x01,0x00,0x70,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x17,0x04,0x05,0x0e,0x03,0x20,0x02,0x01,0x03,0x01,0x42,0x01,0x00,0x01,0x06,0x03,0x03,0x03,0x00, -0x04,0x01,0x01,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30,0x01,0x01,0x35,0x01,0x01,0x35,0x01,0x04,0x3a,0xfc,0x36,0x03,0x02,0xfc,0xfe,0x03,0xcc,0x02,0x7f,0xfe,0x65,0xb2,0x01,0x3d,0x01,0x3d,0xb2,0xfe,0x65,0x00,0x00,0x01,0x00,0x66, -0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x02,0x05,0x01,0x03,0x06,0x05,0x02,0x02,0x04,0x01,0x00,0x00,0x08,0x03,0x04,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x33,0x04,0x46,0xb2,0xfe,0xc2,0xfe,0xc2,0xb2,0x01,0x9c,0xa8,0xee, -0x03,0x02,0xfc,0xfe,0x03,0xca,0x00,0x01,0x00,0x66,0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x06,0x04,0x05,0x02,0x02,0x01,0x05,0x05,0x03,0x06,0x00,0x00,0x08,0x04,0x03,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x01,0x04,0x46, -0xfe,0x64,0xa8,0xfe,0x64,0xb2,0x01,0x3e,0x01,0x3e,0x04,0xb8,0xfc,0x36,0x03,0xca,0xfc,0xfe,0x03,0x02,0x00,0x01,0x01,0x20,0x04,0x96,0x01,0x8a,0x06,0x00,0x00,0x03,0x00,0x11,0xb3,0x01,0x02,0x01,0x00,0xb9,0x01,0x32,0x00,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00, -0xff,0xff,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x02,0x06,0x00,0x8e,0x00,0x00,0xff,0xff,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x02,0x06,0x00,0x43,0x00,0x00,0x00,0x01,0x01,0x20,0xfe,0x1e,0x01,0x8a,0xff,0x89,0x00,0x03,0x00,0x15,0xb5,0x02,0x02,0x04,0x01,0x1c,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x00,0x3f,0x12,0x39, -0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0x00,0x3e,0xff,0x1c,0x02,0x3a,0xff,0x89,0x00,0x03,0x00,0x13,0xb7,0x01,0xe2,0x02,0x04,0x03,0x03,0x05,0x02,0x2f,0x12,0x39,0x2f,0x00,0x10,0xde,0xed,0x31,0x30,0x05,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0xe4,0x6d,0x00,0xff,0xff, -0x00,0x52,0xfe,0x43,0x01,0xd7,0xff,0x8b,0x00,0x07,0x00,0x43,0x00,0x00,0xf9,0x81,0xff,0xff,0x00,0x87,0xfe,0x42,0x02,0x0c,0xff,0x8a,0x00,0x07,0x00,0x8e,0x00,0x00,0xf9,0x80,0x00,0x02,0x00,0xb6,0x00,0x00,0x01,0x83,0x04,0x25,0x00,0x03,0x00,0x07,0x00,0x1f,0x40,0x11,0x02,0x63,0x03,0x06,0x63,0x05,0x00,0x42,0x04,0x40,0x13,0x19, -0x48,0x04,0x62,0x03,0x05,0x2f,0x33,0xf1,0x2b,0xe2,0x00,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x13,0x23,0x37,0x33,0x01,0x83,0x5a,0x19,0x5a,0xcc,0xcc,0x5a,0x18,0x04,0x25,0xcd,0xcd,0xfb,0xdb,0xcd,0x00,0x00,0x01,0x00,0xb6,0x01,0xc8,0x01,0x83,0x02,0x96,0x00,0x03,0x00,0x15,0x40,0x0b,0x03,0x63,0x02,0x00,0x40,0x13, -0x19,0x48,0x00,0x62,0x03,0x2f,0xe1,0x2b,0x00,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x01,0x83,0x58,0x1b,0x5a,0x02,0x96,0xce,0xce,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x84,0x00,0x00,0xfc,0xb3,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x85,0x00,0x00,0xfc,0xb3,0x00,0x01, -0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x22,0xb3,0x03,0xc0,0x05,0x02,0xb8,0x01,0x33,0xb5,0x00,0x06,0x06,0x05,0x01,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0xcd,0x10,0xc9,0x2f,0x00,0x2f,0xed,0x32,0x1a,0xcc,0x31,0x30,0x13,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xa0,0x7e,0x6e,0x7e,0x01,0x74,0x6b,0x01,0x07,0xfe, -0xf9,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x1f,0x40,0x0e,0x01,0x06,0xe2,0x40,0x07,0xc0,0x04,0x01,0x01,0x02,0x06,0x02,0x50,0x05,0x2f,0xe1,0xcd,0x10,0xc1,0x2f,0x00,0x2f,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x02,0x0a,0x7e,0x6e,0x7e,0x02,0xe6,0x6b,0xfe, -0xf9,0x01,0x07,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xdd,0x00,0x0b,0x00,0x29,0x40,0x13,0x08,0x80,0x01,0x04,0xfd,0x40,0x0a,0x07,0x03,0x00,0x04,0x05,0x05,0x80,0x0a,0x01,0xfc,0x07,0x04,0x2f,0x33,0xf1,0x32,0x1a,0xc8,0x2f,0x10,0xcc,0x00,0x2f,0xde,0x32,0x1a,0xfd,0x32,0x1a,0xce,0x31,0x30,0x01,0x23,0x15,0x23,0x35, -0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x0a,0x7e,0x6e,0x7e,0x7e,0x6e,0x7e,0x01,0xf4,0x80,0x80,0x6a,0x7f,0x7f,0x00,0x01,0x00,0x3e,0x01,0xf4,0x02,0x3a,0x02,0x60,0x00,0x03,0x00,0x11,0xb6,0x02,0xe2,0x01,0x00,0x00,0x05,0x01,0x2f,0x12,0x39,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x01, -0xf4,0x6c,0x00,0x01,0x00,0x79,0x02,0x79,0x02,0x31,0x03,0xc8,0x00,0x0c,0x00,0x3d,0xb7,0x0c,0x0c,0x09,0x01,0x01,0x0b,0x06,0x04,0xb8,0x01,0x35,0x40,0x09,0x09,0x01,0x06,0x40,0x0b,0x0e,0x48,0x06,0x00,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0d,0x48,0x00,0x00,0x01,0x06,0x03,0x0b,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x2f,0x2b,0x19,0x2f, -0x00,0x18,0x2f,0xed,0x32,0xcd,0x32,0x2f,0x11,0x39,0x2f,0x31,0x30,0x13,0x37,0x17,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x07,0x79,0xcb,0x20,0x27,0x4e,0x29,0x2f,0x39,0x30,0x7a,0x3c,0x54,0x02,0xf0,0xd8,0x5e,0x74,0x22,0x80,0x1f,0x79,0x56,0x00,0x01,0x00,0x48,0x03,0xa4,0x02,0x68,0x05,0xc4,0x00,0x0b,0x00,0x4a,0x40,0x16, -0x00,0x01,0x04,0x03,0x03,0x06,0x09,0x0a,0x03,0x07,0x02,0x03,0x07,0x08,0x0b,0x05,0xe4,0x05,0xf4,0x05,0x02,0x05,0xb8,0xff,0xe0,0x40,0x15,0x2c,0x30,0x48,0x05,0x00,0x09,0x0a,0x03,0x01,0x04,0x06,0x07,0x03,0x03,0x01,0x02,0x03,0x05,0x0b,0x05,0x08,0x19,0x2f,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x00,0x2f,0x2b,0x5d,0x17,0x33, -0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x30,0x01,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x02,0x68,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x03,0xf8,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x00,0x02,0x00,0x0a,0x01,0xb8,0x02,0x4c,0x04,0xbe,0x00,0x11,0x00,0x19,0x00,0x4f,0x40,0x12, -0x01,0x0d,0x10,0x12,0x04,0x11,0x0f,0x07,0x16,0x01,0x0d,0x10,0x12,0x04,0x04,0x0a,0x11,0x00,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x00,0x00,0x04,0x0f,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x0e,0x0a,0x04,0xbc,0x01,0x34,0x00,0x18,0x00,0x0a,0x01,0x34,0x00,0x14,0x2f,0xe1,0xde,0xe1,0x10,0xc2,0x2f,0x2b,0x32,0x10,0xc2,0x2f,0x2b,0x32, -0x11,0x12,0x17,0x39,0x00,0x2f,0xcd,0xc4,0x32,0x17,0x39,0x31,0x30,0x01,0x03,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x03,0x33,0x13,0x13,0x03,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x02,0x4c,0xdc,0x19,0x3b,0x5c,0x43,0x45,0x52,0x3d,0x19,0xda,0x8a,0x95,0x99,0x99,0x29,0x29,0x29,0x04,0xbe,0xfe,0x50,0x28,0x5e, -0x3c,0x3a,0x5a,0x52,0x3e,0x37,0x67,0x28,0x01,0xb0,0xfe,0xb9,0x01,0x47,0xfd,0xf6,0x44,0x22,0x34,0x34,0x22,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x00,0xe6,0x05,0xc4,0x00,0x03,0x00,0x16,0xbe,0x00,0x02,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xe6,0x80, -0x80,0x02,0x9a,0x03,0x2a,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xbc,0x04,0xcf,0x00,0x1d,0x00,0x5d,0x40,0x17,0x25,0x17,0x01,0x17,0x15,0x03,0x0b,0x09,0x1b,0x09,0x2b,0x09,0x03,0x0b,0x07,0x1b,0x07,0x02,0x09,0x07,0x1c,0x10,0x12,0xbf,0x01,0x0d,0x00,0x0d,0x01,0x09,0x00,0x01,0x00,0x03,0x01,0x0d,0x00,0x1c,0x01,0x0b,0xb3,0x10, -0x10,0x0a,0x19,0xb8,0x01,0x0c,0xb4,0x05,0x05,0x1f,0x01,0x14,0xb8,0x01,0x0c,0xb2,0x0a,0x0a,0x01,0x2f,0x33,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32, -0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x48,0x55,0x63,0x27,0x4a,0x8f,0x79,0x5d,0x47,0x43,0x42,0x4a,0x56,0x60,0x69,0x37,0x7f,0x66,0x4f,0x02,0xac,0x70,0x30,0x39,0x1b,0x21,0x1e,0x38,0x6c,0x4a,0x62,0x1d,0x6e,0x28,0x3d,0x31,0x27,0x2a,0x4e,0x30,0x46,0x60,0x00,0x01,0x00,0x14,0x02,0x9a, -0x02,0x2d,0x04,0xbe,0x00,0x13,0x00,0x17,0xbb,0x00,0x0e,0x01,0x08,0x00,0x0a,0x01,0x0a,0xb3,0x02,0x02,0x15,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x13,0x03,0x33,0x1f,0x02,0x33,0x37,0x02,0x2d,0xb9,0xb7,0x8f,0x62,0x02,0x15,0x05,0x08,0x0e,0x64,0x90,0xbd, -0xae,0x8f,0x5e,0x01,0x14,0x04,0x7d,0x04,0xbe,0xfe,0xf0,0xfe,0xec,0xa4,0x02,0x2a,0x12,0x18,0xa6,0x01,0x0e,0x01,0x16,0xae,0x02,0x28,0xd8,0x00,0xff,0xff,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x02,0x06,0x06,0x87,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x03,0x04,0x04, -0x03,0x03,0x00,0x01,0x01,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0xe4,0x05,0x1e,0x9c,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x03,0x04,0x06,0x04,0x03,0x03,0x05,0x00,0x01,0x01,0x09, -0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x03,0xd5,0x9d,0x01,0x48,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05,0x00,0x01, -0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x02,0x90,0x9b,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05, -0x00,0x01,0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x01,0x48,0x9c,0x03,0xd6,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x02,0x05,0x04,0x02,0x02, -0x05,0x04,0x04,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x33,0x02,0x79,0xfe,0x1d,0x01,0x48,0x9c,0x9c,0x05,0x1e,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x05,0x00,0x10,0xb5,0x02,0x04,0x01,0x05,0x04,0x01,0x2f,0xcd,0x2f,0x00,0x2f,0xcd,0x2f,0x31,0x30, -0x21,0x21,0x11,0x33,0x03,0x21,0x02,0x48,0xfe,0x1a,0x5e,0x02,0x01,0x8a,0x03,0x70,0xfc,0xee,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x07,0x00,0x19,0x40,0x0a,0x03,0x04,0x01,0x06,0x00,0x00,0x09,0x06,0x02,0x03,0x2f,0xcd,0x32,0x11,0x39,0x2f,0x00,0x2f,0xcd,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x03, -0x21,0x02,0x48,0xfe,0x78,0x5e,0x5e,0x02,0x01,0x8a,0x01,0x89,0xfe,0x77,0x03,0x70,0xfe,0x78,0x00,0x01,0x00,0x3c,0xfe,0x40,0x02,0x6e,0xff,0x89,0x00,0x06,0x00,0x1c,0x40,0x0e,0x00,0x00,0x08,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0x12,0x39,0x2f,0x31,0x30,0x05,0x03,0x23,0x03, -0x33,0x17,0x37,0x02,0x6e,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x02,0x00,0x00,0x04,0x5c,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x13,0x05,0xd9,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x06,0x06,0x01,0xd9,0x02,0x00,0x04,0x01,0x00,0x05,0x2f,0xc4,0x33,0x32,0x00,0x3f,0xed,0x33,0x2f, -0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0xfe,0x70,0x77,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0a,0x02,0x03,0x06,0x07,0x04,0x03,0xea,0x00,0x00,0x01,0xb8,0x01,0x34,0x40,0x09,0x02,0x02,0x09, -0x06,0x07,0xea,0x04,0x04,0x05,0xb9,0x01,0x34,0x00,0x06,0x2f,0xe9,0x32,0x2f,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0xff,0x3a,0xfe,0x1e, -0x01,0x4a,0x04,0x00,0x00,0x0c,0x00,0x3a,0x40,0x19,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x06,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x0a,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x0a,0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f, -0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x00,0x01,0x00,0x0a,0x00,0x00,0x02,0x0e,0x04,0x00,0x00,0x0b,0x00,0x2d,0x40,0x17,0x01,0x0a,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x30,0x30, -0x08,0x0f,0x03,0x00,0x00,0x09,0x08,0x02,0x84,0x05,0x03,0x2f,0xc6,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x0e,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0,0x01,0xdb,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x01, -0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4a,0x40,0x2e,0x74,0x06,0x84,0x06,0x02,0x36,0x06,0x46,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x34,0x07,0x44,0x07,0x54,0x07,0x74,0x07,0x84,0x07,0x94,0x07,0x06,0x07,0x02,0x04,0x06,0x08,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, -0x39,0x2f,0x10,0xd4,0xcd,0x12,0x39,0x5d,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x03,0xd6,0x01,0x48,0x9c,0xfe,0xd6,0x01,0x2a,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba, -0x00,0x09,0x00,0x5a,0x40,0x39,0x24,0x03,0x01,0x16,0x03,0x01,0x94,0x06,0xa4,0x06,0x02,0x72,0x06,0x01,0x43,0x06,0x01,0x14,0x06,0x24,0x06,0x34,0x06,0x03,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x08,0x90,0x07,0xa0,0x07,0x02,0x84,0x07,0x01,0x70,0x07,0x01,0x07,0x02,0x02,0x01,0x08,0x01,0x00, -0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x02,0x8f,0x9c,0xfe,0x07,0x01,0xf9,0x00,0x01,0x00,0x96, -0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x29,0x04,0x06,0x14,0x06,0x94,0x06,0xa4,0x06,0x04,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x09,0xa1,0x07,0x01,0x70,0x07,0x80,0x07,0x90,0x07,0x03,0x07,0x02,0x02,0x01,0x09,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xd4, -0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x03,0xd7,0x9c,0xfd,0x37,0x02,0xc9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x38,0x40,0x20,0xa6,0x05,0x01,0x02, -0x05,0x03,0x01,0x06,0x08,0x0a,0x00,0x03,0x10,0x03,0x02,0x03,0x02,0x05,0x07,0xa0,0x06,0x01,0x91,0x06,0x01,0x70,0x06,0x80,0x06,0x02,0x06,0x01,0x00,0x2f,0x33,0x5d,0x5d,0x5d,0x2f,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8, -0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x05,0x1e,0x9c,0xfc,0x4a,0x03,0xb6,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x56,0x40,0x33,0xb7,0x06,0x01,0x03,0x06,0x04,0xb6,0x07,0x01,0x99,0x07,0x01,0x07,0x02,0x08,0x0a,0x05,0x04,0xb7,0x04,0x01,0xa8,0x04,0x01,0x04,0x05,0x08,0x93,0x06,0x01,0x86,0x06,0x01,0x77, -0x06,0x01,0x06,0x03,0x03,0x01,0xc6,0x02,0x01,0x48,0x02,0x58,0x02,0x02,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8, -0xfe,0x66,0x53,0x01,0x47,0x01,0x48,0x9c,0x05,0x0a,0xfe,0xcc,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0xaa,0x03,0x01,0x56,0x06,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, -0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x84,0x53,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xb8,0x01,0x48,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07, -0x00,0x42,0x40,0x26,0x02,0x05,0x07,0x09,0x04,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0xc8,0x05,0x01,0x93,0x05,0x01,0x74,0x05,0x01,0x65,0x05,0x01,0x46,0x05,0x56,0x05,0x02,0x37,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde, -0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1e,0x53,0x02,0x8f,0x9c,0x02,0x8f,0x02,0xcc,0x5f,0xfd,0x8f,0x02,0x71,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x03,0x01,0x9b,0x03,0x01,0xa7,0x06,0x01, -0x56,0x06,0x01,0x03,0x06,0x02,0xb6,0x04,0x01,0x04,0x05,0x08,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53, -0x01,0x9a,0xf5,0x9c,0x01,0x47,0x02,0x8f,0x01,0x85,0x5f,0xfe,0x7e,0xfe,0x0f,0x03,0x73,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0xb6,0x02,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x55,0x05,0x01,0x02,0x05,0x01,0xb6,0x03,0x01,0x03, -0x04,0x07,0x90,0x06,0x01,0x06,0x01,0x00,0x2f,0x33,0x5d,0x2f,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53,0x01,0xae,0xe1,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0x6a,0xfd,0x5e, -0x04,0x38,0x00,0x01,0x00,0x43,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0x84,0x05,0x94,0x05,0x02,0x56,0x05,0x66,0x05,0x02,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33, -0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x65,0x53,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4a,0x68,0x07,0x01,0x88,0x04,0x01,0x83,0x03,0x01,0x77,0x03,0x01,0x58,0x03,0x68,0x03, -0x02,0x04,0x03,0x34,0x03,0x44,0x03,0x03,0x77,0x06,0x01,0x03,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0xc7,0x04,0x01,0x26,0x04,0x01,0x04,0x05,0x07,0x93,0x06,0xa3,0x06,0x02,0x02,0x83,0x06,0x01,0x74,0x06,0x01,0x27,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x48,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d, -0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x47,0x01,0x48,0x9c,0x04,0xc4,0xfd,0xcb,0x02,0xe4, -0x47,0xfd,0xcb,0x02,0x35,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x40,0x86,0x03,0xc6,0x03,0xd6,0x03,0xe6,0x03,0x04,0x58,0x03,0x68,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x04,0x03,0x01,0x85,0x06,0x95,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x04,0x01,0x79,0x04,0x01, -0x04,0x05,0x08,0xa2,0x06,0x01,0x74,0x06,0x94,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37, -0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x61,0x01,0x2e,0x9c,0x03,0xd6,0xfe,0xb9,0x02,0xe4,0x47,0xfd,0xa0,0x01,0x40,0x01,0x20,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x22,0x9c,0x03,0x01,0x79,0x03,0x89,0x03,0x02,0xa6,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x03,0x06, -0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x7d,0x01,0x12, -0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0x71,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x37,0xa3,0x06,0x01,0x02,0x9a,0x02,0xaa,0x02,0x02,0x7b,0x02,0x8b,0x02,0x02,0x68,0x02,0x01,0x5b,0x02,0x01,0x4a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x91,0x06,0x01,0x85,0x06,0x01, -0x76,0x06,0x01,0x03,0x06,0x02,0x04,0x05,0x08,0x37,0x07,0x01,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x10,0xc4,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03, -0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x97,0xf8,0x9c,0x01,0x47,0x01,0x48,0x02,0xe4,0x47,0xfd,0x40,0xf9,0x03,0xb9,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x34,0x40,0x1d,0x01,0x04,0x06,0x08,0x03,0x02,0x02,0x03,0x05,0x93,0x04,0xa3,0x04,0x02,0x02,0x80,0x04,0x01,0x73,0x04,0x01,0x64,0x04,0x01, -0x56,0x04,0x01,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x0a,0x67,0x02,0x8f,0x9c,0x05,0x73,0x47,0xfb,0x5b,0x04,0xa5,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45, -0x40,0x29,0x88,0x03,0x98,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x26,0x03,0x01,0x03,0x04,0x06,0x90,0x05,0xa0,0x05,0x02,0x72,0x05,0x82,0x05,0x02,0x63,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd, -0xc4,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0xd5,0x02,0x2b,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7a,0x40,0x4d,0x29,0x07,0x01,0x89,0x04,0xa9,0x04,0x02,0x75,0x03,0x85,0x03,0x02,0x68,0x03,0x01, -0x45,0x03,0x01,0x36,0x03,0x01,0x2a,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x78,0x04,0x98,0x04,0x02,0x04,0x05,0x07,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x81,0x06,0x01,0x74,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x1c,0x02,0x01,0x0b,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f, -0x33,0x5d,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x47,0x01,0x48,0x9c,0x04,0x6a, -0xfc,0xdd,0x04,0x3c,0x37,0xfc,0xdd,0x03,0x23,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x75,0x40,0x49,0xa4,0x07,0x01,0x95,0x07,0x01,0x89,0x04,0x99,0x04,0xa9,0x04,0x03,0x78,0x04,0x01,0x85,0x02,0x01,0x76,0x02,0x01,0x84,0x03,0x01,0x35,0x03,0x45,0x03,0x75,0x03,0x03,0x03,0x06,0x03,0x16,0x03,0x02, -0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x94,0x06,0xa4,0x06,0x02,0x83,0x06,0x01,0x02,0x70,0x06,0x01,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5f,0x5d,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39, -0x5d,0x5f,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x04,0x3c,0x37,0xfc,0xc5,0x02,0x89,0xb2,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x64,0x40,0x3b, -0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x04,0x03,0x01,0x91,0x06,0xa1,0x06,0x02,0xa9,0x04,0x01,0x9b,0x04,0x01,0x89,0x04,0x01,0x79,0x02,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x72,0x06,0x82,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39, -0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x71,0x01,0x1e,0x9c,0x02,0x8f,0xfe,0xb8,0x04,0x3c,0x37, -0xfc,0x82,0x01,0x0d,0x02,0x71,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x25,0xa6,0x06,0x01,0x94,0x06,0x01,0x76,0x06,0x86,0x06,0x02,0xad,0x03,0x01,0x99,0x03,0x01,0x88,0x03,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f, -0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x96,0xf9,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0x29,0x03,0xd7,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba, -0x00,0x08,0x00,0x55,0x40,0x35,0x74,0x06,0x01,0x56,0x06,0x01,0xa5,0x05,0x01,0x57,0x05,0x01,0xaa,0x03,0x01,0x99,0x03,0x01,0x8a,0x03,0x01,0xab,0x02,0x01,0x9c,0x02,0x01,0x8a,0x02,0x01,0x68,0x02,0x78,0x02,0x02,0x39,0x02,0x49,0x02,0x02,0x01,0x06,0x08,0x0a,0x04,0x03,0x03,0x04,0x02,0x05,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39, -0x39,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0xb4,0xdb,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfb,0xde,0xde,0x05,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a, -0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x20,0xa2,0x05,0x01,0x95,0x05,0x01,0x82,0x05,0x01,0x77,0x05,0x01,0xa9,0x03,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x03,0x04,0x06,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, -0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0xc9,0x03,0x37,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7c,0x40,0x50,0x89,0x06,0x01,0x76,0x06,0x01,0xca,0x03,0x01,0x97,0x03,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03, -0x45,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x07,0x03,0x01,0x47,0x06,0x01,0x9b,0x04,0xab,0x04,0x02,0x89,0x04,0x01,0x7a,0x04,0x01,0x10,0x04,0x01,0x48,0x02,0x01,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x04,0x05,0x02,0x07,0xa3,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32, -0x5d,0x5f,0x5d,0x2f,0x33,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x4d,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0, -0x05,0x8c,0x2e,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x59,0x8a,0x06,0x01,0x76,0x06,0x01,0xa8,0x04,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x58,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x03,0x07,0x03,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01, -0x82,0x06,0x01,0xaa,0x04,0x01,0x03,0x79,0x04,0x89,0x04,0x99,0x04,0x03,0x14,0x04,0x01,0x9a,0x02,0xaa,0x02,0x02,0x22,0x02,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x09,0x07,0x02,0x02,0x01,0x09,0x70,0x06,0x01,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f, -0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x55,0x01,0x3d,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x8c,0x2e, -0xfb,0xc9,0x03,0xb7,0x80,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7a,0x40,0x4b,0x76,0x06,0x01,0x07,0x06,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x03,0x06,0x03,0x16,0x03,0x02,0xa7,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x82,0x06,0x01,0xab,0x04,0x01,0x9a,0x04,0x01,0x03, -0x02,0x04,0x01,0x02,0x7b,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x70,0x06,0x01,0x54,0x06,0x01,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x5d,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5f, -0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x69,0x01,0x2c,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x8c,0x2e,0xfb,0x90,0x02,0x6d,0x02,0x03,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x60, -0x40,0x39,0xa6,0x06,0x01,0x94,0x06,0x01,0x97,0x05,0x01,0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x06,0x03,0x01,0x90,0x06,0xa0,0x06,0x02,0x82,0x06,0x01,0x71,0x06,0x01,0xab,0x04,0x01,0x89,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, -0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x81,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x8c,0x2e,0xfb,0x43, -0x01,0x04,0x03,0xb9,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x94,0x04,0x01,0x76,0x04,0x86,0x04,0x02,0xa6,0x03,0x01,0x97,0x03,0x01,0xa9,0x01,0x01,0x01,0x04,0x02,0x06,0x07,0x09,0x03,0x02,0x02,0x03,0x06,0x05,0x00,0x00,0x2f,0xcd,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39, -0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x3d,0x79,0x01,0xa1,0xf1,0x9c,0x05,0x8c,0x2e,0xfa,0xe2,0x05,0x1e,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x29,0x78,0x01,0x01,0x03,0x07,0x01,0x01,0xa4,0x04,0x01,0x83,0x04,0x93,0x04, -0x02,0x02,0xab,0x02,0x01,0x89,0x02,0x99,0x02,0x02,0x04,0x02,0x01,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x02,0x03,0x05,0x04,0x00,0x00,0x2f,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c, -0xfe,0x3c,0x74,0x01,0x50,0x9c,0x05,0x8c,0x2e,0xfb,0xdc,0x04,0x24,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x2c,0x40,0x15,0xab,0x06,0x01,0x58,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde, -0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb5,0x51,0x01,0x7e,0x02,0x01,0x05,0x1e,0xfe,0xb8,0x6b,0x01,0x79,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4f,0x40,0x2d,0x93,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xa6,0x05,0x01,0x9b, -0x03,0x01,0x89,0x03,0x01,0x78,0x03,0x01,0xb6,0x02,0xc6,0x02,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb0,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x03,0xd6,0x01,0x34,0xfe,0xcc,0x6b,0x01,0x79,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x28,0xbb,0x07,0xcb,0x07,0x02,0x76,0x07,0x01,0x67,0x07, -0x01,0xa6,0x05,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, -0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xc0,0x48,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x02,0x6a,0xfe,0xdd,0x6b,0x01,0x79,0xfd,0xc1,0x02,0x3f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x54,0x40,0x2e,0x28,0x06,0x01,0x19,0x06,0x01,0x0b,0x06,0x01,0xcf,0x07,0x01, -0xbb,0x07,0x01,0xa6,0x05,0x01,0xa9,0x03,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d, -0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8e,0xfe,0xda,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x03,0x95,0xfe,0xfa,0x6b,0x01,0x79,0xfc,0xd3,0x03,0x2d,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x39,0x88,0x05,0x01,0x29,0x05,0x01, -0x0b,0x05,0x01,0x79,0x02,0x89,0x02,0x02,0x38,0x02,0x48,0x02,0x68,0x02,0x03,0xed,0x06,0x01,0xdb,0x06,0x01,0xcf,0x06,0x01,0xa6,0x04,0x01,0xad,0x02,0x01,0x9b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33, -0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x05,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x81,0xfe,0xe7,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x04,0xce,0xf8,0x6b,0x01,0x79,0xfb,0xe6,0x04,0x1a,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba, -0x00,0x06,0x00,0x35,0x40,0x1c,0xa6,0x04,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x69,0x02,0x01,0x58,0x02,0x01,0x05,0x02,0x06,0x08,0x03,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33, -0x02,0x7a,0x9c,0xfe,0xaf,0x4b,0x01,0x9c,0x9c,0x05,0x14,0xfe,0xc2,0x6b,0x01,0x79,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x59,0x07,0x99,0x07,0x02,0x9a,0x06,0x01,0x88,0x06,0x01,0x79,0x06,0x01,0x38,0x06,0x48,0x06,0x02,0x18,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x05,0x03, -0x03,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x05,0x00,0xfe,0xd6,0x9c,0x01,0x48,0x00,0x01,0x00,0x96, -0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x24,0x38,0x03,0x48,0x03,0x02,0x92,0x07,0xa2,0x07,0x02,0x65,0x07,0x75,0x07,0x02,0x88,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd, -0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x02,0x8f,0x01,0x47,0x9c,0xfe,0xd7,0x02,0x71,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x97,0x06,0xa7,0x06, -0x02,0xa3,0x07,0x01,0x82,0x07,0x92,0x07,0x02,0x73,0x07,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01, -0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x02,0x8f,0x9c,0xfe,0x07,0x03,0x41,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x46,0x40,0x28,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x01,0x38,0x01,0x48,0x01,0x02,0x03,0xa4,0x06,0x01,0x93,0x06,0x01,0x02,0x70, -0x06,0x80,0x06,0x02,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1, -0xee,0x9c,0x03,0xd6,0x9c,0xfd,0x38,0x04,0x10,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x55,0x40,0x31,0x84,0x06,0x94,0x06,0x02,0x47,0x06,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x89,0x04,0xa9,0x04,0x02,0x9b,0x02,0x01,0x7a,0x02,0x01,0x69,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06, -0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e, -0x01,0x61,0x9c,0x04,0xc4,0xfd,0xcb,0x01,0x9c,0x6f,0xfe,0xc0,0x02,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x36,0xba,0x07,0x01,0xb8,0x06,0x01,0x84,0x06,0x94,0x06,0xa4,0x06,0x03,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x59,0x02,0x01,0x06,0x03,0x04, -0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01, -0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x51,0x01,0x4a,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x01,0x9c,0x5e,0xfe,0xb6,0x01,0x47,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x37,0x40,0x1b,0xa3,0x05,0x01,0x86,0x05,0x01,0x08,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04, -0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x51,0x01,0x4a,0x01,0x48,0x9c,0x02,0x8f,0x01,0x9c,0x62,0xfe, -0x9e,0x02,0x8f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x51,0x40,0x31,0x72,0x05,0x92,0x05,0x02,0x64,0x05,0x01,0x56,0x05,0x01,0x44,0x05,0x01,0x35,0x05,0x01,0x27,0x05,0x01,0x64,0x04,0x74,0x04,0x02,0x46,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x03,0x05,0x02,0x04,0x03,0x02, -0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x01,0x47,0x02,0xe4,0x65,0xfd,0x71,0x03,0xb9,0x00,0x00,0x01, -0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2c,0x54,0x06,0x94,0x06,0xa4,0x06,0x03,0x08,0x04,0x01,0xa9,0x02,0x01,0x9a,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x84,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39, -0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x4b,0x01,0xb7,0xe1,0x9c,0x02,0x8f,0x01,0x9c,0x64,0xfe,0x4e,0xfe,0x55,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00, -0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x4f,0x40,0x30,0x94,0x05,0x01,0x75,0x05,0x01,0x46,0x05,0x56,0x05,0x66,0x05,0x03,0x56,0x04,0x76,0x04,0x02,0x47,0x04,0x01,0x08,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, -0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x48,0x01,0x54,0x9c,0x02,0x8f,0x01,0x9c,0x5d,0xfe,0xad,0x02,0x85,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76, -0x40,0x4a,0x86,0x06,0x01,0x77,0x06,0x01,0xc9,0x05,0x01,0x75,0x03,0x85,0x03,0xc5,0x03,0x03,0x68,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0xa2,0x06,0x01,0x94,0x06,0x01,0xdb,0x05,0xfb,0x05,0x02,0xcc,0x05,0x01,0xc0,0x02,0x01,0x9c,0x02,0x01,0x8b,0x02,0x01,0x78,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04, -0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03, -0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x5d,0x01,0x48,0x01,0x51,0x9c,0x04,0x6a,0xfc,0xdd,0x03,0x47,0x3e,0xfd,0x77,0x03,0x77,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x85,0x06,0x01,0x76,0x06,0x01,0x85,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x29,0x03,0x01,0xa0,0x06,0x01,0x94, -0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0x8e,0x02,0x01,0x7a,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, -0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x51,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x03,0x47,0x3e,0xfd,0x71,0x02,0x8f,0xee,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5e,0x40,0x37, -0x76,0x06,0x01,0x76,0x03,0x01,0x37,0x03,0x47,0x03,0x02,0xa4,0x06,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0xa6,0x05,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x08,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11, -0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x6b,0x01,0x2e,0x9c,0x02,0x8f,0xfe,0xb8,0x03,0x47,0x3e,0xfd,0x46,0x01,0x41,0x02,0x67, -0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x15,0xa6,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11, -0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x87,0x01,0x12,0x9c,0x01,0x47,0x03,0x4a,0x3b,0xfd,0x17,0x03,0xd7,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x71,0x40,0x46,0xa0,0x06,0x01,0x93,0x06,0x01,0x74,0x06,0x01,0x65,0x06,0x01,0x56,0x06,0x01,0xa1,0x05,0x01, -0x90,0x05,0x01,0x85,0x05,0x01,0x44,0x05,0x01,0x36,0x05,0x01,0xdb,0x04,0x01,0xc9,0x04,0x01,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x94,0x02,0x01,0x88,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33, -0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0xa1,0xf8,0x9c,0x01,0x47,0x03,0x47,0x3e,0xfc,0xe6,0xf8,0x05,0x00,0x00,0x01,0x00,0x2f, -0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x54,0x40,0x32,0xfa,0x04,0x01,0xd9,0x04,0xe9,0x04,0x02,0x77,0x04,0x01,0xa2,0x05,0x01,0x91,0x05,0x01,0x80,0x05,0x01,0xcb,0x04,0x01,0xa7,0x04,0x01,0x94,0x04,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f, -0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x5d,0x01,0x52,0x9c,0x01,0x47,0x03,0x47,0x42,0xfd,0x77,0x03,0x73,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1, -0x05,0xba,0x00,0x08,0x00,0x62,0x40,0x3c,0x85,0x06,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x94,0x06,0xa4,0x06,0x02,0x76,0x06,0x86,0x06,0x02,0x9b,0x02,0x01,0x8c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x01,0x02, -0x08,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x6a,0x01,0x3a,0x01,0x52,0x9c,0x04,0x10, -0xfb,0xf0,0x05,0x10,0x2a,0xfc,0x49,0x04,0x37,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x47,0x85,0x06,0x01,0x76,0x06,0x01,0xd8,0x05,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x34,0x03,0x44,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa0,0x06,0x01,0x92,0x06,0x01,0x70,0x06, -0x80,0x06,0x02,0xb9,0x05,0x01,0x7f,0x02,0x8f,0x02,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, -0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x44,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x10,0x24,0xfc,0x3a,0x03,0xcc,0x80,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xa7,0x06, -0x01,0x76,0x06,0x01,0xb8,0x05,0x01,0x8a,0x03,0x01,0x45,0x03,0x75,0x03,0x02,0x36,0x03,0x01,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x54,0x06,0x64,0x06,0x02,0x9e,0x02,0xae,0x02,0x02,0x8f,0x02,0x01,0x7d,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05, -0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, -0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x5a,0x01,0x32,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x10,0x2d,0xfc,0x19,0x02,0x6b,0x01,0xf9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3e,0x57,0x06,0x01,0x76,0x05,0x01,0x79,0x03,0x89,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0x92,0x06,0xa2, -0x06,0x02,0x84,0x06,0x01,0x75,0x06,0x01,0x9a,0x04,0xaa,0x04,0x02,0x8a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30, -0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x7b,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x10,0x2d,0xfb,0xc4,0x01,0x00,0x03,0xb9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x34,0x40,0x1c, -0x86,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x98,0x01,0xa8,0x01,0x02,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x52, -0x6a,0x01,0x9d,0xef,0x9c,0x05,0x10,0x2a,0xfb,0x62,0x05,0x1e,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x2e,0x40,0x18,0x01,0x04,0x06,0x08,0x03,0x04,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0xa3,0x04,0x01,0x02,0x80,0x04,0x90,0x04,0x02,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5f,0x5d,0x2f,0x39,0x2f,0x33,0x01,0x2f, -0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x6a,0x01,0x45,0x9c,0x05,0x10,0x27,0xfc,0x23,0x04,0x60,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x8b,0x06,0x9b,0x06,0xab,0x06,0x03,0x59,0x06,0x69,0x06,0x02,0xa5,0x04,0x01,0x86, -0x04,0x01,0x76,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb2,0x6a,0x01,0x5e,0x02,0x3d, -0x05,0x1e,0xfd,0x71,0x50,0x02,0xdb,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x47,0xc9,0x06,0x01,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x04,0x01,0x95,0x04,0x01,0xc9,0x07,0x01,0x94,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xc6,0x03,0x01,0xb7,0x03,0x01,0xac,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02, -0x7d,0x03,0x01,0x59,0x03,0x69,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x95,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x03,0xd6,0x01,0x23,0xfd,0x99,0x4d,0x02,0xdb,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xf9,0x06, -0x01,0x76,0x06,0x86,0x06,0xc6,0x06,0x03,0x45,0x06,0x01,0x34,0x06,0x01,0x2a,0x06,0x01,0xc7,0x03,0x01,0x74,0x07,0x94,0x07,0x02,0x66,0x07,0x01,0x45,0x07,0x01,0xa6,0x05,0x01,0x87,0x05,0x01,0x66,0x05,0x01,0x57,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x8b,0x03,0x01,0x7d,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03, -0x06,0x08,0x05,0x04,0x07,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1, -0x9c,0xfe,0xb8,0xfe,0xb3,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x02,0x8f,0x02,0x35,0xfd,0xcb,0x50,0x02,0xdb,0xfd,0xcb,0x02,0x35,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x98,0x40,0x63,0xf5,0x06,0x01,0xc6,0x06,0x01,0x84,0x06,0x01,0x75,0x06,0x01,0x59,0x06,0x01,0x36,0x06,0x46,0x06,0x02,0x2a,0x06,0x01,0xf5, -0x03,0x01,0xc7,0x03,0x01,0x85,0x03,0x01,0x76,0x03,0x01,0xa6,0x07,0x01,0x90,0x07,0x01,0x74,0x07,0x84,0x07,0x02,0x6c,0x07,0x01,0x57,0x07,0x01,0x2b,0x07,0x01,0x94,0x05,0x01,0x66,0x05,0x86,0x05,0x02,0x54,0x05,0x01,0xad,0x03,0x01,0x7b,0x03,0x9b,0x03,0x02,0x69,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06, -0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, -0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa2,0xfe,0xc9,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x01,0x47,0x03,0x57,0xfd,0xf9,0x48,0x02,0xdb,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4b,0xc5,0x05,0x01,0x8b,0x05,0x01,0x7a,0x05,0x01,0x68,0x05,0x01,0x5a,0x05, -0x01,0x36,0x05,0x46,0x05,0x02,0x2a,0x05,0x01,0xc6,0x02,0x01,0x8b,0x02,0x01,0x7a,0x02,0x01,0x59,0x02,0x01,0xc9,0x06,0x01,0x90,0x06,0x01,0x84,0x04,0x94,0x04,0x02,0x9f,0x02,0xaf,0x02,0x02,0x8b,0x02,0x01,0x7e,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32, -0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x96,0xfe,0xd5,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x04,0x81,0xfe,0x19, -0x45,0x02,0xdb,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3d,0x40,0x23,0x87,0x04,0x97,0x04,0x02,0xac,0x02,0x01,0x02,0x8f,0x02,0x9f,0x02,0x02,0x6d,0x02,0x7d,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12, -0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb2,0x6a,0x01,0xb8,0x9c,0x04,0xba,0xfd,0xd7,0x4e,0x02,0xdb,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0x69,0x06,0x79,0x06,0x02,0x06, -0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb8,0x54,0x01,0x7e,0x01,0x65, -0x9c,0x03,0xd6,0xfe,0xbc,0x67,0x01,0x79,0x01,0x48,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5b,0x40,0x35,0xc9,0x07,0x01,0x65,0x07,0x75,0x07,0x02,0x47,0x07,0x01,0xb9,0x06,0x01,0x87,0x06,0x01,0x75,0x06,0x01,0x66,0x06,0x01,0xb9,0x05,0x01,0xa9,0x03,0x01,0x9b,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09, -0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0xc6,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, -0xfe,0xb8,0xfe,0xb9,0x54,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfe,0xc9,0x5a,0x01,0x8d,0xfe,0xb9,0x02,0x7b,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53,0x40,0x2f,0xcc,0x07,0x01,0x02,0xbc,0x07,0x01,0xbb,0x06,0x01,0x96,0x06,0x01,0x89,0x03,0x01,0x58,0x03,0x68,0x03,0x78,0x03,0x03,0x03, -0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01, -0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xcc,0x54,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfe,0xc9,0x5a,0x01,0x9e,0xfd,0x9c,0x03,0x87,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x38,0x54,0x05,0x01,0x27,0x05,0x01,0x19,0x05,0x01,0xeb,0x06,0x01,0xdf,0x06,0x01,0xcd,0x06,0x01, -0xa2,0x06,0x01,0x64,0x06,0x74,0x06,0x94,0x06,0x03,0x1f,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8f,0xfe,0xe2,0x54,0x01,0x9c,0x01,0x47,0x9c,0x03,0xd6,0xfe,0xc9,0x5a,0x01,0xd2,0xfc,0x85,0x04,0x6a,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x38,0x40,0x1e,0xf6,0x04,0x01,0xc7, -0x04,0x01,0x87,0x03,0xa7,0x03,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x54, -0x01,0x9c,0x9c,0x03,0xd6,0xfe,0xd2,0x51,0x01,0x83,0x01,0x3e,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x96,0x03,0xa6,0x03,0x02,0xa9,0x02,0x01,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39, -0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x88,0xfe,0x07,0x9c,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3d,0x40,0x20, -0x46,0x07,0x01,0x37,0x07,0x01,0x09,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21, -0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x9c,0x01,0x65,0x01,0x2a,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0xa6,0x07,0x01,0x95,0x07,0x01,0x46,0x07,0x01,0x34,0x07,0x01,0x78,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b, -0x04,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x01,0x48,0x9c,0xfe,0xd6, -0x03,0xb9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x74,0x05,0x01,0x89,0x02,0x99,0x02,0xa9,0x02,0x03,0x78,0x02,0x01,0x94,0x06,0xa4,0x06,0x02,0x53,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, -0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x9c,0xfe,0x07,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x28,0xa2,0x06,0x01,0x94,0x06,0x01, -0x46,0x06,0x01,0x92,0x05,0xa2,0x05,0x02,0x74,0x05,0x01,0x65,0x05,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x04,0x74,0xfc,0xd3,0x01,0x9c,0x70,0xfe,0xd2,0x03,0x95,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xa0,0x06,0x01,0x92,0x06,0x01,0x44,0x06,0x74,0x06,0x84,0x06,0x03,0x92, -0x05,0xa2,0x05,0x02,0x76,0x05,0x01,0x65,0x05,0x01,0x37,0x05,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x07,0x02,0x03,0x04,0x02,0x02,0x04,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e,0x01,0x61,0x9c,0x03,0xd6,0xfd,0x71,0x01,0x9c,0x70,0xfe,0xd3,0x02,0xba,0xda,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x61,0x40,0x3b,0xa2,0x06,0x01,0x93,0x06,0x01, -0x87,0x06,0x01,0x64,0x06,0x74,0x06,0x02,0x46,0x06,0x01,0xa1,0x05,0x01,0x92,0x05,0x01,0x36,0x05,0x46,0x05,0x66,0x05,0x76,0x05,0x04,0xb7,0x02,0xd7,0x02,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4, -0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x51,0x01,0x3e,0x9c,0x02,0x8f,0xfe,0xb8,0x01,0x9c,0x70,0xfe,0xaa,0x01,0x42,0x02,0x7b,0x00,0x00,0x01, -0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x20,0xa2,0x05,0x01,0x94,0x05,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12, -0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x61,0xfe,0x9f,0x03,0xd7,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x42,0x40,0x28,0x98,0x01,0xa8,0x01,0x02,0x36, -0x04,0x46,0x04,0x56,0x04,0x03,0x27,0x04,0x01,0x46,0x03,0x01,0x37,0x03,0x01,0x68,0x02,0x78,0x02,0x88,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11, -0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x02,0xe3,0x66,0xfd,0x71,0x05,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x21,0x85,0x05,0x01,0x48,0x03,0x58,0x03,0x68,0x03,0x98,0x03,0xa8,0x03,0x05,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02, -0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x52,0xfe,0xb8,0x03,0xcd,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba, -0x00,0x08,0x00,0x7c,0x40,0x4f,0x8a,0x06,0x01,0x29,0x06,0x79,0x06,0x02,0xf9,0x03,0x01,0xc5,0x03,0x01,0x7b,0x03,0x8b,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x29,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x93,0x06,0xa3,0x06,0x02,0x02,0x81,0x06,0x01,0x70,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x03,0x9b,0x02,0x01,0x20, -0x02,0x01,0x02,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x2c,0x01,0x63,0x9c,0x04,0x10,0xfb,0xf0,0x03,0x6e,0x49,0xfd,0x93,0x04,0x70,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8e,0x40,0x5c,0xc5,0x06,0x01,0x89,0x06,0x01,0x56,0x06,0x76,0x06,0x02,0x29,0x06,0x01, -0xf9,0x03,0x01,0xc5,0x03,0x01,0x8b,0x03,0x01,0x36,0x03,0x46,0x03,0x76,0x03,0x03,0x29,0x03,0x01,0x17,0x03,0x01,0x03,0x07,0x03,0x01,0x77,0x07,0x01,0xa4,0x06,0x01,0x92,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x02,0x64,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x86,0x05,0x01,0x8a,0x04,0x01,0x03,0x23,0x02,0x01,0x02,0x06,0x03,0x04, -0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x02,0x04,0x02,0x00,0x09,0x03,0x00,0x00,0x2f,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, -0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x32,0x01,0x5d,0x9c,0x03,0xd6,0xfc,0x2a,0x03,0x6e,0x4c,0xfd,0x9c,0x03,0xee,0x76,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7c,0x40,0x4f,0x76,0x06,0x86,0x06,0x02,0xf9,0x03,0x01,0x85,0x03,0xc5,0x03,0x02,0x74, -0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x74,0x06,0x01,0x55,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03, -0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x47, -0x01,0x48,0x9c,0x02,0x8f,0xfd,0x71,0x03,0x6e,0x52,0xfd,0x59,0x02,0xad,0x01,0xf4,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5c,0x40,0x36,0x57,0x06,0x01,0x07,0x03,0x17,0x03,0x37,0x03,0x47,0x03,0x04,0xa2,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x72,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x89,0x02,0x01, -0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, -0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0xfe,0xb9,0x03,0x6e,0x49,0xfd,0x2e,0x01,0x3a,0x03,0x9b,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0xa5,0x03,0x01,0x84,0x03,0x94,0x03,0x02,0x59,0x01,0x79,0x01,0xa9,0x01,0x03,0x01,0x04,0x02, -0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x49,0x70,0x01,0x91,0xfe,0x9c,0x03,0x6e,0x49,0xfc,0xe5,0x05,0x1e,0x00,0x01,0x00,0x26, -0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x2c,0x84,0x03,0x94,0x03,0xa4,0x03,0x03,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x72,0x04,0x01,0x64,0x04,0x01,0x46,0x04,0x01,0x64,0x03,0x74,0x03,0x84,0x03,0x03,0x01,0x04,0x06,0x08,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01, -0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x48,0x70,0x01,0x48,0x9c,0x03,0x6e,0x4f,0xfd,0x57,0x04,0xa6,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x2b,0x9d,0x06,0xad,0x06,0x02,0x8b,0x06,0x01, -0x79,0x06,0x01,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x75,0x04,0x01,0x57,0x04,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x00,0x02,0x07,0x00,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, -0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xef,0xfe,0x60,0x73,0x01,0xba,0x01,0xe4,0x05,0x1e,0xfc,0x29,0x48,0x04,0x2b,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x48,0x36,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x96,0x03,0xa6,0x03,0x02,0x90,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x01,0xa4,0x05, -0x01,0x92,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0x8f,0x03,0x9f,0x03,0xaf,0x03,0x03,0x7d,0x03,0x01,0x4b,0x03,0x5b,0x03,0x6b,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f, -0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xef,0xfe,0x82,0x73,0x01,0xba,0x01,0x48,0x9c,0x03,0xd6,0xe3,0xfc,0x8e,0x41,0x04,0x32,0xfe,0xea,0x01,0x16,0x00,0x00,0x01,0x00,0x23, -0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x4a,0x79,0x06,0x89,0x06,0x02,0x44,0x06,0x01,0x33,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x79,0x03,0x89,0x03,0x02,0x45,0x03,0x01,0x36,0x03,0x01,0x74,0x07,0xa4,0x07,0x02,0x45,0x07,0x55,0x07,0x65,0x07,0x03,0x94,0x05,0xa4,0x05,0x02,0x9f,0x03,0xaf,0x03,0x02,0x89,0x03,0x01, -0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, -0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcb,0xfe,0xa6,0x73,0x01,0xba,0x01,0x48,0x9c,0x02,0x8f,0x02,0x02,0xfc,0xb6,0x3b,0x04,0x38,0xfd,0xe9,0x02,0x17,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x92,0x40,0x5f,0xf9,0x06,0x01,0xca,0x06,0x01,0x75,0x06,0x85,0x06,0x02,0x36,0x06,0x46, -0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x76,0x03,0x86,0x03,0x02,0x90,0x07,0x01,0x72,0x07,0x82,0x07,0x02,0x2d,0x07,0x01,0x13,0x07,0x01,0x03,0x06,0x07,0x01,0xa7,0x05,0x01,0x95,0x05,0x01,0x86,0x05,0x01,0x77,0x05,0x01,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x6d,0x03,0x7d,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04, -0x05,0x5b,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x73,0x01,0xba,0x01,0x48,0x9c,0x01,0x47,0x03,0x05,0xfc,0xfb,0x3e,0x04,0x35,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x72,0x40,0x4b,0x07,0x05,0x01,0xf9,0x05,0x01,0x35,0x05,0x45,0x05, -0x75,0x05,0x85,0x05,0xc5,0x05,0x05,0x28,0x05,0x01,0x07,0x05,0x17,0x05,0x02,0x76,0x02,0x86,0x02,0x02,0x84,0x06,0x01,0x92,0x04,0xa2,0x04,0x02,0x84,0x04,0x01,0x76,0x04,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x5d,0x02,0x7d,0x02,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x03,0x08,0x06, -0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xae,0xfe,0xc3,0x73,0x01,0xbb,0x01,0x47,0x9c,0x04,0x37,0xfd,0x10, -0x3e,0x04,0x35,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3e,0x40,0x22,0x67,0x03,0x01,0xa3,0x04,0x01,0xae,0x02,0x01,0x03,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f, -0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x73,0x01,0xbb,0x9c,0x04,0x74,0xfc,0xd3,0x38,0x04,0x3b,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x61,0x40,0x3a,0x92,0x06,0x01,0x76, -0x06,0x86,0x06,0x02,0x67,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x74,0x05,0x01,0xaf,0x03,0x01,0x99,0x03,0x01,0x8b,0x03,0x01,0x78,0x03,0x01,0x5b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33, -0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfd,0x71,0x51,0x02,0xbd,0x01,0x65,0x00,0x00,0x01,0x00,0x2f, -0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xaf,0x06,0x01,0x9b,0x06,0x01,0x7a,0x06,0x8a,0x06,0x02,0x95,0x04,0x01,0x57,0x03,0x67,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33, -0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x4e,0x02,0xdd,0x01,0x48,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x49,0x06, -0x01,0x38,0x06,0x01,0x07,0x06,0x01,0xa0,0x07,0x01,0x91,0x07,0x01,0x74,0x07,0x01,0x65,0x07,0x01,0x94,0x06,0xa4,0x06,0x02,0x99,0x03,0xa9,0x03,0x02,0x8a,0x03,0x01,0x78,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x04,0x02,0x03,0x03,0x02,0x04,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39, -0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd2,0xfe,0x9f,0x67,0x01,0xae,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfd,0x71,0x41, -0x03,0x19,0xfe,0xa8,0x02,0x71,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x2a,0x84,0x07,0xa4,0x07,0x02,0x76,0x07,0x01,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00, -0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x67,0x01,0xae,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfd,0x71,0x32,0x03,0x67,0xfd, -0x5d,0x03,0x7d,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2a,0xa6,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x93,0x05,0xa3,0x05,0x02,0x02,0x70,0x05,0x80,0x05,0x02,0x64,0x05,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f, -0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa3,0xfe,0xce,0x67,0x01,0xaf,0x01,0x47,0x9c,0x03,0xd6,0xfd,0x71,0x41,0x03,0x9a,0xfc,0x4c,0x04,0x4c,0x00,0x01, -0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45,0x40,0x28,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x9f,0x02,0xaf,0x02,0x02,0x8d,0x02,0x01,0x6a,0x02,0x7a,0x02,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11, -0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x03,0xd6,0xfd,0x71,0x44,0x03,0x7d,0xb2,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5f,0x40,0x39,0x92,0x06,0xa2,0x06,0x02,0x84, -0x06,0x01,0x67,0x06,0x77,0x06,0x02,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x05,0x01,0x94,0x05,0x01,0x58,0x03,0x01,0xaf,0x02,0x01,0x9d,0x02,0x01,0x8b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, -0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xff,0xfe,0x70,0x4b,0x01,0x7d,0x01,0x5d,0x9c,0x04,0x88,0xfe,0x07,0xfe,0xb8,0x73,0x01,0x40,0x02,0xc0,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, -0x05,0xba,0x00,0x07,0x00,0x33,0x40,0x19,0xb9,0x05,0x01,0x65,0x05,0x01,0x56,0x05,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11, -0x33,0x03,0xc1,0x9c,0xfd,0x71,0x4b,0x02,0xda,0x9c,0x03,0xd6,0xfd,0x71,0x6d,0x02,0xdc,0x01,0x2a,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x16,0x88,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, -0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x7e,0x01,0x5c,0x9c,0x02,0x8f,0xfe,0xb8,0x67,0x01,0x7d,0x02,0x8f,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53, -0x40,0x2f,0x84,0x07,0x01,0x56,0x07,0x01,0x47,0x07,0x01,0x84,0x06,0x01,0x77,0x06,0x01,0xb9,0x05,0x01,0x99,0x03,0xa9,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01, -0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x92,0x01,0x48,0x9c,0x01,0x47,0x01,0x48,0xfe,0xb8,0x63,0x01,0x95,0xfe,0xb8,0x03,0xc3,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, -0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2b,0xa2,0x06,0x01,0x94,0x06,0x01,0x85,0x06,0x01,0x57,0x06,0x01,0xa2,0x05,0x01,0x74,0x05,0x94,0x05,0x02,0xa4,0x04,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, -0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9f,0xfe,0xd2,0x4b,0x01,0x93,0x01,0x47,0x9c,0x02,0x8f,0xfe,0xb8,0x70,0x01,0xa3,0xfd,0x9c,0x04,0xc4,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07, -0x00,0x3f,0x40,0x23,0xe9,0x05,0x01,0xbb,0x05,0xcb,0x05,0x02,0xb9,0x04,0xe9,0x04,0x02,0x79,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, -0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x4b,0x01,0x93,0x9c,0x02,0x8f,0xfe,0xb8,0x5a,0x01,0x94,0x02,0x85,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x38,0x07,0x01,0x9b,0x06,0xab,0x06,0x02,0x9f,0x02,0x01,0x8b,0x02,0x01,0x7c,0x02,0x01,0x06,0x03,0x04, -0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x10,0xfd,0x37,0x9c,0x03,0xd7,0x00, -0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x28,0x40,0x11,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x06,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x35,0x33, -0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x9c,0x03,0x39,0x9e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x41,0x40,0x23,0x65,0x07,0x01,0x37,0x07,0x01,0x18,0x07,0x01,0x7a,0x02,0x01,0x48,0x02,0x01,0x19,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07, -0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x02,0x8f,0xfe,0xb8,0x9c,0x01,0x66, -0x02,0x71,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x38,0x02,0x48,0x02,0x88,0x02,0x03,0xa2,0x06,0x01,0x93,0x06,0x01,0x65,0x06,0x75,0x06,0x02,0x56,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, -0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x9c,0xfe,0xd7,0x05,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4e,0x40,0x2d,0x68,0x06,0x78,0x06,0x02,0x46, -0x05,0x01,0x28,0x03,0xc8,0x03,0x02,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x04,0xa9,0x04,0x02,0xab,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, -0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x11,0x01,0x7e,0x9c,0x04,0x10,0xfb,0xf0,0x01,0x9b,0x66,0xfe,0xfc,0x04,0xbd,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x23,0x46,0x05,0x01,0x28,0x03,0xc8,0x03,0x02, -0x99,0x04,0xa9,0x04,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, -0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x03,0xd6,0xfc,0x2a,0x01,0x9b,0x66,0xfe,0xe7,0x04,0x5c,0x76,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x48,0x40,0x25,0x47,0x05,0x01,0x28,0x03,0x01,0x93,0x06,0x01,0xa9,0x04,0x01,0x98,0x04,0x01,0x06,0x03,0x04, -0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, -0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x34,0x01,0x5b,0x9c,0x02,0x8f,0xfd,0x71,0x01,0x9b,0x66,0xfe,0xca,0x02,0xc4,0x02,0x2b,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4d,0x40,0x2a,0xb9,0x07,0x01,0xb8,0x06,0x01,0x77,0x06,0x01,0x46,0x05,0x01,0x99,0x04,0xa9,0x04,0x02,0x8c,0x02,0x01,0x06,0x03,0x04,0x02, -0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, -0xfe,0xb8,0xfe,0x65,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x01,0x9b,0x66,0xfe,0xb9,0x01,0x47,0x03,0xb9,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x32,0x40,0x18,0xa7,0x04,0x01,0xab,0x02,0x01,0x9a,0x02,0x01,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x04,0x00, -0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0xfd,0xff,0xfe,0x82,0x54,0x01,0x48,0x01,0x47,0x9c,0x01,0xa4,0x5d,0xfe,0x9b,0x05,0x1e,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06, -0x00,0x41,0x40,0x27,0x84,0x04,0x01,0x65,0x04,0x01,0xa9,0x02,0x01,0x78,0x02,0x98,0x02,0x02,0x59,0x02,0x01,0x28,0x02,0x38,0x02,0x48,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x9b,0x66,0xfe,0xb9,0x05,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3c,0x40,0x24,0xab,0x06,0x01,0x89,0x06,0x99,0x06,0x02,0x58,0x06,0x78,0x06,0x02,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x87,0x04, -0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x02,0x07,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xf1,0xfe,0x62,0x7c,0x01,0xc3,0x01,0xe4,0x05,0x1e,0xfa,0xe2,0x2e,0x05,0x8c,0x00,0x01, -0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x6e,0x40,0x45,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0xa6,0x03,0x01,0x57,0x03,0x01,0x91,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x46,0x07,0x02,0xa4,0x05,0x01,0x95,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0xaf,0x03,0x01,0x8d,0x03,0x9d,0x03,0x02,0x7b,0x03,0x01,0x06, -0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27, -0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf1,0xfe,0x80,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x03,0xd6,0xf1,0xfb,0x39,0x2e,0x05,0x8c,0xfe,0xe0,0x01,0x20,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x70,0x40,0x48,0x79,0x06,0x89,0x06,0xc9,0x06,0x03,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x78, -0x03,0x01,0x41,0x07,0x01,0x32,0x07,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x76,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x5d,0x03,0x6d,0x03,0x7d,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x8d,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10, -0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd8,0xfe,0x99,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x02,0x8f,0x01,0xed,0xfb,0x84,0x2e,0x05,0x8c,0xfd,0xdf,0x02,0x21, -0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x5b,0xf9,0x06,0x01,0xca,0x06,0x01,0x89,0x06,0x01,0x75,0x06,0x01,0x16,0x06,0x36,0x06,0x46,0x06,0x03,0x05,0x06,0x01,0x89,0x03,0x01,0x75,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0xa4,0x07,0x01,0x72,0x07,0x01,0x2b,0x07,0x01,0x14,0x07,0x01,0x07,0x07,0x01, -0x03,0xa5,0x05,0x01,0x86,0x05,0x96,0x05,0x02,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x5d,0x03,0x7d,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39, -0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xc7,0xfe,0xaa,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x01,0x47,0x02,0xf8,0xfb,0xc1,0x2e,0x05,0x8c,0xfc,0xd3,0x03,0x2d,0x00,0x01, -0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x80,0x40,0x53,0xf9,0x05,0x01,0x8a,0x05,0xca,0x05,0x02,0x35,0x05,0x45,0x05,0x75,0x05,0x03,0x28,0x05,0x01,0x16,0x05,0x01,0x07,0x05,0x01,0xc9,0x02,0x01,0x88,0x02,0x01,0x76,0x02,0x01,0x94,0x06,0x01,0x47,0x06,0x01,0x15,0x06,0x01,0x03,0xa5,0x04,0x01,0x96,0x04,0x01,0x85, -0x04,0x01,0x9b,0x02,0xab,0x02,0x02,0x8c,0x02,0x01,0x02,0x7f,0x02,0x01,0x5b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d, -0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0,0x2e,0x05,0x8c,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x36,0x40,0x1f,0x77,0x03, -0x01,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x7c,0x01, -0xc4,0x9c,0x04,0x24,0xfb,0xdc,0x2e,0x05,0x8c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x2a,0xa5,0x06,0x01,0x86,0x06,0x96,0x06,0x02,0x57,0x06,0x01,0x6b,0x03,0x7b,0x03,0xab,0x03,0x03,0x59,0x03,0x01,0xab,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02, -0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xdb,0xfe,0x4c,0x72,0x01,0xb9,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfc,0x2a,0x32,0x03,0xf5,0x01, -0x93,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x18,0x89,0x06,0x99,0x06,0xa9,0x06,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d, -0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xf9,0xfe,0x6a,0x72,0x01,0xb9,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x04,0x40,0x01,0x48,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xb8,0x07,0x01,0x64,0x07,0x74,0x07,0x02,0xa0,0x06,0x01,0x74,0x06,0x84,0x06,0x94, -0x06,0x03,0x66,0x06,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe2,0xfe,0x8f,0x72,0x01,0xb9,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfc,0x2a,0x32,0x04,0x99,0xfe,0x88,0x02,0x67,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3c,0x79,0x06,0x01,0x46,0x06,0x01, -0x15,0x06,0x35,0x06,0x02,0x03,0x07,0x06,0x01,0xa4,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x80,0x06,0x01,0x74,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f, -0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd9,0xfe,0x98,0x72,0x01,0xc3,0x01,0x3e,0x9c,0x01,0x47,0x02,0x8f,0xfc,0x2a,0x32,0x04,0xf8,0xfd,0x45, -0x03,0x4b,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x37,0x46,0x05,0x01,0x34,0x05,0x01,0x15,0x05,0x01,0x03,0xa6,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x02,0x80,0x05,0x01,0x74,0x05,0x01,0xa4,0x04,0x01,0x92,0x04,0x01,0x74,0x04,0x84,0x04,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04, -0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x72,0x01, -0xcd,0x01,0x34,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x1c,0xfc,0x20,0x04,0x4c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x67,0x03,0x77,0x03,0x02,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00, -0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x72,0x01,0xba,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x26,0x62,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba, -0x00,0x06,0x00,0x39,0x40,0x21,0xa2,0x04,0x01,0x95,0x04,0x01,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x59,0x02,0x69,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11, -0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x67,0x02,0xf6,0x9c,0x04,0xa5,0xfb,0x5b,0x4f,0x05,0x6b,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x38,0x96,0x06,0x01,0x87,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x86,0x05,0x02,0xad,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02,0x59,0x03,0x69,0x03, -0x79,0x03,0x03,0x89,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, -0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0xfd,0x71,0x4f,0x02,0xab,0x01,0xaa,0x01,0x16,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xab,0x06,0x01,0x9e,0x06,0x01,0x8b,0x06,0x01,0x58,0x06,0x01,0xa5,0x04, -0x01,0x75,0x03,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1, -0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xa4,0x01,0x52,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x02,0xdc,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x67,0x40,0x3d,0x83,0x07,0x01,0x03,0x67,0x07,0x01,0x56,0x07,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x56,0x06,0x01,0xa6,0x05,0x01, -0x94,0x05,0x01,0x76,0x05,0x86,0x05,0x02,0x68,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf0,0xfe,0x81,0x67,0x01,0xd1,0x01,0x25,0x9c,0x01,0x47,0x01,0x48,0xfd,0x71,0x4f,0x03,0x1f,0xfe,0x9d,0x03,0xaf,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x64,0x40,0x3d,0x36,0x05, -0x46,0x05,0x02,0x27,0x02,0x01,0x54,0x06,0x84,0x06,0x02,0x15,0x06,0x01,0x07,0x06,0x01,0x03,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x72,0x05,0x01,0x24,0x05,0x01,0x84,0x04,0x94,0x04,0x02,0xa9,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32, -0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x67,0x01,0xc5,0x01,0x31,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0xfd,0x85,0x04, -0x92,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x29,0xa6,0x03,0x01,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x74,0x05,0x01,0x66,0x05,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, -0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0x02,0x17,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x41, -0x40,0x23,0xa2,0x06,0x01,0x96,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x9a,0x03,0x01,0x88,0x03,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02,0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, -0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xe1,0xfe,0x52,0x48,0x01,0x95,0x01,0x42,0x9c,0x04,0x38,0xfd,0x0f,0xfe,0xb9,0x7b,0x01,0x32,0x04,0x0d,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x47,0x40,0x26,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x03,0xa9,0x03,0x02,0x58,0x03,0x68, -0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x35, -0x33,0x03,0xc1,0x9c,0xf5,0xfe,0x66,0x48,0x01,0x8f,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0xfe,0xb9,0x7b,0x01,0x2e,0x03,0x73,0x9e,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x35,0x40,0x1c,0x46,0x05,0x66,0x05,0x02,0xa6,0x04,0x01,0x97,0x04,0x01,0x6b,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02, -0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x48,0x02,0xd7,0x9c,0x02,0x8f,0xfd,0x71,0x7b,0x02,0xce,0x02,0x71,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1, -0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x19,0xa9,0x06,0x01,0x96,0x03,0xa6,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21, -0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe0,0xfe,0x91,0x48,0x01,0x99,0x01,0x3e,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x68,0x03,0xd7,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2b,0x74,0x06,0x01,0x53,0x06,0x01,0x36,0x06,0x01,0xbb,0x05,0x01,0x74,0x05,0x01,0x87,0x04,0x97,0x04,0xa7,0x04,0x03,0x69,0x02, -0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe, -0xa5,0x48,0x01,0xa7,0x01,0x30,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x7c,0xfe,0xcd,0x04,0xf6,0x00,0x01,0x00,0x4e,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x31,0x40,0x19,0xb9,0x05,0x01,0x97,0x04,0xa7,0x04,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, -0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x48,0x01,0x90,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x86,0x03,0xb9,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x36,0x40,0x1d,0xa9,0x06,0x01,0x76, -0x03,0x86,0x03,0x02,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x05,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01, -0x47,0x01,0x48,0x9c,0x03,0xb6,0xfc,0x4a,0x9c,0x05,0x1e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2d,0x40,0x15,0x9b,0x02,0xab,0x02,0x02,0x06,0x03,0x04,0x07,0x02,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x05,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, -0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xfe,0xfe,0x73,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x9c,0x04,0xd0,0x4e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x16,0xaf,0x02,0x01,0x99,0x02,0x01,0x06,0x03,0x04,0x02, -0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x5b,0x01,0x34,0x9c,0x02,0x8f,0xfd,0x71,0x9c,0x03,0x61,0x01, -0xbd,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0x46,0x07,0x01,0x37,0x07,0x01,0x0b,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, -0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x9c,0x01,0x65,0x03,0xb9,0x00,0x01,0xff,0x54,0x05,0xc2,0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x2c,0xb1,0x03,0x00,0xb8,0x01,0x35,0x40,0x16, -0x05,0x04,0x01,0x02,0x01,0x12,0x01,0x22,0x01,0x52,0x01,0x04,0x01,0x02,0x18,0x1a,0x1e,0x48,0x00,0x03,0x84,0x02,0x2f,0xe1,0xc6,0x2b,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0xc4,0x31,0x30,0x01,0x20,0x03,0x23,0x12,0x21,0x02,0x6c,0xfe,0x44,0xba,0xa2,0xf0,0x02,0x28,0x06,0xc4,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xff,0x54,0x05,0xc2, -0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x33,0xb2,0x00,0x80,0x03,0xb8,0x01,0x35,0x40,0x0f,0x04,0x05,0x02,0x0d,0x02,0x1d,0x02,0x2d,0x02,0x5d,0x02,0x04,0x02,0x03,0x01,0xb8,0xff,0xe8,0xb6,0x1a,0x1e,0x48,0x00,0x84,0x01,0x03,0x2f,0xd6,0xe1,0x2b,0x12,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x23,0x02,0x21,0x35, -0x20,0x02,0x6c,0xa1,0xba,0xfe,0x43,0x02,0x28,0x05,0xc2,0x01,0x02,0x7c,0x00,0x01,0xfd,0xa7,0x05,0xc2,0x00,0xc0,0x06,0xfa,0x00,0x0b,0x00,0x22,0xb2,0x06,0x80,0x02,0xbb,0x01,0x35,0x00,0x09,0x00,0x00,0x01,0x35,0xb2,0x0b,0x0b,0x06,0xb9,0x01,0x34,0x00,0x05,0x2f,0xe1,0xc4,0x00,0x2f,0xed,0xd5,0xed,0x1a,0xcd,0x31,0x30,0x13,0x24, -0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0xc0,0xfe,0xb3,0x8d,0x58,0x70,0x77,0x01,0xb4,0x88,0x93,0x01,0x49,0x06,0x16,0x67,0x6b,0x50,0x88,0xb0,0x66,0x00,0x00,0x01,0xff,0x68,0x05,0xc8,0x02,0x32,0x07,0x00,0x00,0x0b,0x00,0x22,0xb2,0x05,0x80,0x02,0xbe,0x01,0x35,0x00,0x09,0x00,0x0b,0x01,0x35,0x00,0x00,0x00,0x06,0x01, -0x34,0xb1,0x05,0x0b,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xd5,0xed,0x1a,0xcc,0x31,0x30,0x03,0x04,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x27,0x98,0x01,0x00,0x8a,0x58,0x72,0x76,0x02,0xb6,0x86,0x8e,0xfe,0x06,0x94,0x50,0x6c,0x50,0x86,0xb2,0x4f,0x00,0x03,0x00,0x60,0xfe,0x1e,0x06,0x1c,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x37, -0x01,0x5d,0x40,0x2c,0x30,0x31,0x18,0x00,0x22,0x06,0x01,0x37,0x01,0x19,0x31,0x18,0x05,0x22,0x06,0x04,0x1a,0x04,0x30,0x19,0x31,0x18,0x31,0x05,0x00,0x22,0x06,0x22,0x0b,0x01,0x01,0xbb,0x01,0xcb,0x01,0xdb,0x01,0xfb,0x01,0x04,0x37,0x01,0x36,0x04,0xb8,0xff,0xe8,0x40,0x33,0x09,0x13,0x48,0x1a,0x04,0x03,0x1b,0x0a,0x18,0x01,0xea, -0x18,0xfa,0x18,0x02,0x03,0x18,0x18,0x09,0x13,0x48,0x31,0x18,0x32,0x15,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x02,0x06,0x18,0x09,0x14,0x48,0x22,0x06,0x21,0x08,0x1b,0x96,0x36,0x36,0x38,0x32,0x95,0x21,0xb8,0xff,0xc0,0x40,0x4f,0x17,0x1c,0x48,0x21,0x21,0x38,0x03,0x1c,0x15,0x00,0x13,0x08,0x0b,0x27,0x95,0x11,0x10,0x2d,0x95, -0x0b,0x16,0xb5,0x37,0x01,0x0b,0x37,0x01,0xfb,0x37,0x01,0x37,0x20,0x09,0x16,0x48,0x37,0x01,0x34,0x02,0x5b,0x1a,0x01,0x1a,0x40,0x09,0x1d,0x48,0x1a,0x04,0x1e,0x03,0xa0,0x31,0x01,0x0b,0x31,0x01,0xeb,0x31,0xfb,0x31,0x02,0x44,0x31,0x01,0x31,0x18,0x34,0x16,0xa0,0x22,0x01,0xc3,0x22,0x01,0x22,0x1e,0x23,0x02,0xba,0x01,0x2c,0x00, -0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x23,0x34,0xb8,0x01,0x2c,0x40,0x14,0xa0,0x1e,0xd0,0x1e,0x02,0x1e,0x1e,0x16,0x84,0x15,0x06,0x07,0x15,0x03,0x23,0x23,0x39,0x2a,0x83,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0x17,0x33,0x10,0xf1,0xc0,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0x2b,0x2b,0xe1,0x11, -0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x71,0x5d,0x71,0x5d,0x11,0x12,0x39,0x39,0x2b,0x71,0x11,0x12,0x39,0x39,0x2b,0x5d,0x71,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39, -0x39,0x2b,0x11,0x39,0x39,0x5d,0x71,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x38,0x0f,0x02,0x91,0x07,0x27,0x58,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x13,0x67,0x97,0x6f,0x8c,0xa2,0x80,0x70,0xfe,0xe2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0x01,0x02,0x3c, -0x50,0x92,0x70,0x6a,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x9a,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfa,0x28,0x4e,0x41,0x7b,0x75,0x5c,0x5f,0x7e,0x03,0x7d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0xfd,0xd2,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x03,0x56,0x05,0xec,0x00,0x15,0x00,0x1d,0x01,0x0f, -0x40,0x37,0x16,0x17,0x0b,0x00,0x15,0x06,0x01,0x1d,0x01,0x0c,0x17,0x0b,0x05,0x15,0x06,0x04,0x0d,0x04,0x16,0x0c,0x17,0x0b,0x17,0x05,0x00,0x15,0x06,0x15,0xbb,0x01,0xcb,0x01,0xdb,0x01,0x03,0x1d,0x01,0x1c,0x0d,0x0b,0x01,0xed,0x0b,0xfd,0x0b,0x02,0x0a,0x0b,0x01,0x0b,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x1b,0x09,0x13, -0x48,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x04,0x06,0x0b,0x0d,0x04,0x03,0x0e,0x96,0x1c,0x1c,0x1e,0x17,0x18,0x95,0x15,0x14,0xb8,0xff,0xc0,0x40,0x34,0x17,0x1c,0x48,0x14,0x14,0x1e,0x03,0x08,0x00,0x03,0x1c,0xa0,0x17,0x01,0x15,0x17,0x01,0x17,0x0b,0x1a,0x0a,0xa0,0x15,0x01,0xc3,0x15,0x01,0x15,0x06,0x11,0x07,0xb5,0x1d,0x01, -0x1d,0x20,0x09,0x16,0x48,0x1d,0x01,0x1a,0x02,0x0d,0x40,0x09,0x1d,0x48,0x0d,0x04,0x11,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x1a,0xb8,0x01,0x2c,0x40,0x0a,0xa0,0x11,0xd0,0x11,0x02,0x11,0x11,0x0a,0x84,0x07,0x2f,0xf1,0xc0,0x2f,0x5d,0xe1,0x12,0x39, -0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x3f,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x5d,0x71,0x2b,0x2b,0x5d,0x5d,0x71,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0, -0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01,0x70,0x0e,0x02,0x91,0x07,0x28,0x58,0xa4,0x12,0x67,0x97,0x72,0x8a,0xa4,0x7f,0x6f,0x1c,0x3b, -0x50,0x91,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x05,0xd8,0xfa,0x28,0x4e,0x41,0x7b,0x76,0x5b,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x06,0x04,0x04,0x18,0x00,0x24,0x00,0x2c,0x01,0x33,0x40,0x4c,0x25,0x26,0x1a,0x00,0x24,0x06,0x01,0x2c,0x01,0x1b,0x26,0x1a,0x05,0x24,0x06,0x04,0x1c,0x04, -0x25,0x1b,0x26,0x1a,0x26,0x05,0x00,0x24,0x06,0x24,0xb9,0x01,0xc9,0x01,0xd9,0x01,0x03,0x2c,0x01,0x03,0x2b,0x26,0x27,0x1a,0x0e,0x06,0x01,0xae,0x06,0xee,0x06,0xfe,0x06,0x03,0x02,0x24,0x06,0x23,0x0a,0x0d,0x1a,0x01,0xed,0x1a,0xfd,0x1a,0x02,0x0a,0x1a,0x5a,0x1a,0x02,0x1a,0x18,0x10,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09, -0x13,0x48,0x04,0x1a,0x1c,0x03,0x03,0x1d,0x96,0x2b,0x2b,0x2d,0x27,0x95,0x23,0xb8,0xff,0xc0,0x40,0x39,0x17,0x1c,0x48,0x23,0x23,0x2d,0x03,0x1c,0x13,0x0a,0x95,0x15,0x10,0x11,0x0f,0x0e,0xa0,0x26,0x01,0x15,0x26,0x01,0x26,0x1a,0x29,0x18,0xa0,0x24,0x01,0xc3,0x24,0x01,0x24,0x06,0x20,0x08,0xb5,0x2c,0x01,0x2c,0x20,0x09,0x16,0x48, -0x2c,0x01,0x29,0x02,0x1c,0x40,0x09,0x1d,0x48,0x1c,0x04,0x20,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x08,0x29,0xb8,0x01,0x2c,0x40,0x10,0xa0,0x20,0xd0,0x20,0x02,0x20,0x20,0x18,0x84,0x08,0x08,0x2e,0x11,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1, -0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11, -0x12,0x39,0x11,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x1e,0x0e,0x02,0x91,0x07,0x28,0x58,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x12,0x67,0x97,0x70,0x8c,0xa4,0x7e,0x70,0x1c,0x3b,0x51,0x90,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x02,0x34,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2, -0xd9,0xcd,0xfd,0xa2,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x03,0x8c,0x05,0x2f,0x00,0x1d,0x00,0x25,0x01,0x39,0x40,0x48,0x1e,0x13,0x1f,0x00,0x06,0x1d,0x01,0x25,0x01,0x14,0x13,0x1f,0x05,0x06,0x1d,0x04,0x15,0x04,0x1e,0x14,0x13,0x1f,0x13,0x05,0x00,0x06,0x1d,0x06,0xb9,0x01, -0xc9,0x01,0xd9,0x01,0x03,0x25,0x01,0x03,0x24,0x0e,0x06,0x01,0xee,0x06,0xfe,0x06,0x02,0x02,0x1d,0x06,0x1c,0x08,0x1f,0x20,0x13,0x0d,0x13,0x01,0xed,0x13,0xfd,0x13,0x02,0x0a,0x13,0x01,0x13,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09,0x13,0x48,0x04,0x13,0x15,0x03,0x03,0x16,0x96,0x24,0x24,0x26,0x20,0x95,0x1c,0xb8, -0xff,0xc0,0x40,0x3a,0x17,0x1c,0x48,0x1c,0x1c,0x26,0x03,0x1c,0x0d,0x0e,0x11,0x08,0x95,0x0e,0x0b,0x0f,0xb5,0x25,0x01,0x25,0x20,0x09,0x16,0x48,0x25,0x01,0x22,0x02,0x15,0x40,0x09,0x1d,0x48,0x15,0x04,0x19,0x03,0xa0,0x1f,0x01,0x15,0x1f,0x01,0x1f,0x13,0x22,0x12,0xa0,0x1d,0x01,0xc3,0x1d,0x01,0x1d,0x06,0x19,0x07,0x02,0xba,0x01, -0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x22,0xb8,0x01,0x2c,0x40,0x13,0xa0,0x19,0xd0,0x19,0x02,0x19,0x19,0x12,0x0f,0x0f,0x27,0x0e,0x0a,0x0b,0x0e,0x12,0x84,0x0b,0x07,0x2f,0x33,0xe1,0x32,0x10,0xcd,0x11,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b, -0x2b,0xe1,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x00,0x3f,0x33,0xed,0x32,0x10,0xcd,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39, -0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01, -0xa6,0x0e,0x02,0x92,0x08,0x27,0x58,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x13,0x66,0x98,0x6f,0x8d,0xa4,0x80,0x6f,0x1c,0x3b,0x50,0x92,0x6e,0x6c,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x03,0x60,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfc,0xa0,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x01,0xff,0xdb,0xfe,0x23, -0x04,0x16,0x04,0x18,0x00,0x19,0x00,0x31,0x40,0x1a,0x18,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x01,0x1c,0x03,0x14,0x95,0x05,0x16,0x19,0x84,0x01,0x18,0x18,0x1b,0x11,0x84,0x08,0x08,0x1b,0x0c,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20, -0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x04,0x16,0xa4,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xfe,0x23,0x02,0x87,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0x00,0x00,0x01, -0xff,0xdb,0xfe,0x1e,0x05,0x27,0x04,0x18,0x00,0x22,0x00,0x38,0x40,0x1e,0x22,0x20,0x95,0x02,0x1c,0x1c,0x0f,0x10,0x0e,0x95,0x13,0x10,0x07,0x18,0x95,0x09,0x16,0x22,0x1d,0x84,0x05,0x1c,0x1c,0x24,0x15,0x84,0x0c,0x0c,0x24,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0xc4,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f, -0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x05,0x27,0x40,0x43,0x92,0xa0,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xa0,0x3c,0x35, -0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x3e,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x05,0x80,0x30,0x06,0x40,0x06,0x50,0x06,0x03,0x06,0x03,0xc0,0x06,0x2f,0x1a,0xcc,0x00,0x2f, -0x5d,0x1a,0xcd,0x31,0x30,0x17,0x17,0x37,0x33,0x03,0x23,0x03,0xf0,0x64,0x64,0x6a,0xb4,0x34,0xb5,0x48,0xaa,0xaa,0xfe,0xe8,0x01,0x18,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x01,0x80,0x30,0x02,0x40,0x02,0x50,0x02,0x03,0x02,0x04,0xc0,0x01,0x2f,0x1a,0xcc,0x00,0x2f,0x5d,0x1a,0xcd,0x31, -0x30,0x13,0x23,0x13,0x33,0x13,0x23,0x27,0xf0,0x6b,0xb5,0x34,0xb4,0x6a,0x64,0xfe,0xa0,0x01,0x18,0xfe,0xe8,0xaa,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x01,0x01,0x01,0x04,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x01,0x15,0x25,0x35,0x25,0x15,0x07,0x01,0xe0,0xfe, -0xe8,0x01,0x18,0xaa,0xfe,0xc8,0x6a,0xb4,0x34,0xb5,0x6b,0x64,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x06,0x01,0x06,0x03,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0xc8,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0xfe,0xc8,0x64,0x64,0x6b,0xb5, -0x34,0xb4,0x00,0x02,0x00,0x87,0xfe,0x2d,0x02,0x23,0xff,0xb2,0x00,0x0b,0x00,0x16,0x00,0x2f,0x40,0x1c,0x11,0xc5,0x40,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x8f,0x00,0x04,0x00,0x80,0x0c,0xc5,0x40,0x4f,0x06,0x01,0x06,0x09,0xc4,0x14,0x80,0x0f,0xc4,0x03,0x2f,0xe1,0x1a,0xdc,0xe1,0x00,0x2f,0x5d,0x1a,0xfd,0x1a,0xdc,0x5d,0x1a,0xed,0x31, -0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x52,0x59,0x72,0x76,0x5b,0x59,0x72,0x7b,0x56,0x31,0x3f,0x70,0x31,0x41,0x41,0xfe,0x2d,0x6b,0x54,0x57,0x6f,0x6c,0x54,0x54,0x71,0x01,0x33,0x40,0x30,0x71,0x41,0x30,0x30,0x40,0x00,0xff,0xff,0x00,0x52, -0x01,0x74,0x01,0xd7,0x02,0xbc,0x02,0x07,0x00,0x43,0x00,0x00,0xfc,0xb2,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x70,0x02,0xbd,0x00,0x07,0x04,0x6e,0x01,0x4b,0xfc,0xbd,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x6f,0x02,0xbd,0x00,0x07,0x00,0xde,0xff,0xe8,0xfc,0xbd,0xff,0xff,0x00,0x23,0x01,0x9e,0x02,0xa4,0x02,0x9e,0x00,0x07,0x00,0xd8, -0x00,0x00,0xfc,0xec,0xff,0xff,0x00,0xad,0x01,0x8e,0x01,0x8d,0x05,0xba,0x00,0x07,0x00,0x1d,0x00,0x3d,0x01,0xa4,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x1b,0xb1,0x02,0x01,0xb8,0x01,0x33,0xb4,0x04,0x04,0x00,0x00,0x02,0xb9,0x01,0x32,0x00,0x03,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x01, -0x21,0x11,0x23,0x11,0x21,0x02,0x12,0xfe,0xf0,0x6a,0x01,0x7a,0x05,0x52,0xfe,0xf0,0x01,0x78,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x19,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb2,0x02,0x04,0x02,0xb8,0x01,0x32,0xb1,0x05,0x00,0x2f,0xdd,0xe1,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x13,0x35,0x21,0x11,0x23,0x11,0x98, -0x01,0x7a,0x6a,0x05,0x52,0x68,0xfe,0x88,0x01,0x10,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x1a,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb3,0x02,0x00,0x00,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xf1,0xc1,0x2f,0x00,0x2f,0xfd,0xcd,0x31,0x30,0x25,0x15,0x21,0x11,0x33,0x11,0x02,0x12,0xfe,0x86,0x6a,0x68,0x68,0x01, -0x79,0xfe,0xef,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x18,0xb1,0x02,0x00,0xbb,0x01,0x33,0x00,0x05,0x00,0x03,0x01,0x32,0xb1,0x01,0x05,0x2f,0xdd,0xe1,0x00,0x2f,0xfd,0xc6,0x31,0x30,0x37,0x21,0x11,0x33,0x11,0x21,0x98,0x01,0x10,0x6a,0xfe,0x86,0x68,0x01,0x11,0xfe,0x87,0x00,0x00,0x01,0xff,0xf0, -0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x07,0x00,0x31,0xb9,0x00,0x04,0x01,0x33,0x40,0x0d,0x40,0x01,0x80,0x06,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x07,0xb8,0x01,0x32,0xb3,0x06,0x06,0x09,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15, -0x21,0x35,0x33,0x02,0xba,0xfd,0x36,0x69,0x01,0xf8,0x69,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x00,0x01,0xff,0xf2,0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x05,0x00,0x27,0xb9,0x00,0x04,0x01,0x33,0x40,0x0e,0x40,0x01,0x80,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x05,0x07,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x10,0xc6,0x00,0x2f, -0x5d,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x02,0xba,0xfd,0x38,0x68,0x02,0x60,0xfe,0x5c,0x01,0x2d,0xc5,0x00,0x00,0x01,0x00,0x3a,0xfe,0x5c,0x02,0x6e,0x00,0xa0,0x00,0x09,0x00,0x4b,0x40,0x2f,0x4f,0x02,0xcf,0x02,0x02,0x02,0x01,0x40,0x07,0xc0,0x07,0x02,0x07,0x01,0xdb,0x08,0x01,0x08,0x08,0x20,0x09,0x0c, -0x48,0x08,0x05,0x02,0x42,0x4f,0x07,0x01,0x07,0x40,0x16,0x19,0x48,0x07,0x07,0x05,0x0f,0x09,0x1f,0x09,0x02,0x09,0x09,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x5d,0xe0,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f,0xed,0xcd,0x5d,0x10,0xcd,0x5d,0x31,0x30,0x05,0x21,0x17,0x23,0x03,0x35,0x13,0x33,0x07,0x21,0x02,0x6e,0xfe, -0x4a,0xa8,0x5e,0xc8,0xc6,0x5e,0xa6,0x01,0xb6,0xb0,0xf4,0x01,0x1b,0x0e,0x01,0x1b,0xf4,0x00,0x00,0x01,0xff,0x74,0x04,0xba,0x00,0x8c,0x06,0x58,0x00,0x06,0x00,0x1a,0x40,0x0b,0x02,0x00,0x06,0xc0,0x03,0x03,0x02,0x00,0x05,0x80,0x06,0x2f,0x1a,0xcd,0x00,0x3f,0x33,0x2f,0x1a,0xce,0x39,0x39,0x31,0x30,0x03,0x37,0x27,0x35,0x05,0x15, -0x05,0x8c,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0x05,0x25,0x65,0x64,0x6a,0xb5,0x33,0xb6,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22, -0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0x04,0x98,0x68,0x4e,0x4c,0x6a,0x5e,0x58,0x5a,0x00,0x02,0xfe,0xee,0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0c,0x00,0x18,0x00,0x2f,0x40,0x18,0x0a,0xdb,0x04,0x01,0x06,0x06,0x0d,0xc1,0x40,0x13,0x00,0xc4,0x01,0x0e,0x10,0x06,0x16,0x42,0x06,0xc4, -0x07,0x10,0xc0,0x16,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x1a,0xed,0x32,0x2f,0x33,0xde,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b, -0xfe,0xf8,0x29,0x39,0x39,0x29,0x28,0x3a,0x38,0x05,0x6c,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x59,0x39,0x29,0x29,0x38,0x38,0x29,0x28,0x3a,0x00,0x01,0xff,0x30,0xfd,0xfe,0x00,0xd2,0xff,0xa1,0x00,0x0b,0x00,0xa5,0x40,0x17,0x01,0x42,0x05,0x03,0x02,0x03,0x06,0x09,0x0b,0x00,0x03,0x08,0x56,0x06,0x01,0xd4,0x06,0xe4,0x06,0xf4,0x06,0x03, -0x06,0xb8,0xff,0xe0,0x40,0x42,0x09,0x0c,0x48,0x59,0x08,0x01,0xdb,0x08,0xeb,0x08,0xfb,0x08,0x03,0x08,0x20,0x09,0x0c,0x48,0x08,0x06,0x04,0x0a,0x04,0x0f,0x07,0x1f,0x07,0x2f,0x07,0xcf,0x07,0x04,0x07,0x0a,0x42,0x02,0x00,0x0b,0x03,0x03,0x06,0x08,0x09,0x03,0x05,0x29,0x03,0x59,0x03,0x02,0x03,0x20,0x15,0x1a,0x48,0x03,0x20,0x09, -0x0c,0x48,0x26,0x05,0x56,0x05,0x02,0x05,0xb8,0xff,0xe0,0xb3,0x15,0x1a,0x48,0x05,0xb8,0xff,0xe0,0x40,0x09,0x09,0x0c,0x48,0x05,0x03,0x07,0x01,0x04,0x04,0xb8,0xff,0xe0,0xb3,0x17,0x1b,0x48,0x04,0x19,0x2f,0x2b,0x17,0x33,0x2b,0x2b,0x71,0x2b,0x2b,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0xe1,0x00,0x2f,0x5d,0x17,0x33,0x2b,0x5d,0x71, -0x2b,0x5d,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0x18,0xe5,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86,0x85,0xaa,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x46, -0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x47,0xfe,0xac,0x00,0x00,0x00,0x02,0xfe,0xa1,0xfe,0x5e,0x01,0x5f,0xff,0xfb,0x00,0x06,0x00,0x0d,0x00,0x35,0x40,0x1e,0x07,0x09,0x80,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x0b,0x0e,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x03,0x0d,0xc0, -0x0a,0x0a,0x02,0x06,0x80,0x05,0x2f,0x1a,0xcd,0x32,0x33,0x2f,0x1a,0xcc,0x00,0x2f,0xce,0x5d,0x1a,0x10,0xde,0x5d,0x1a,0xcd,0x32,0x31,0x30,0x01,0x37,0x27,0x35,0x05,0x15,0x05,0x25,0x27,0x07,0x23,0x13,0x33,0x13,0xfe,0xa1,0xaa,0xaa,0x01,0x19,0xfe,0xe7,0x02,0x53,0x64,0x64,0x6a,0xb5,0x33,0xb5,0xfe,0xc8,0x64,0x64,0x6b,0xb5,0x34, -0xb4,0x2e,0xa9,0xa9,0x01,0x18,0xfe,0xe8,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32, -0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4d,0x67,0x67,0x04,0x98,0x5c,0x5a,0x58,0x5e,0x69,0x4d,0x4e,0x68,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x23,0x40,0x11,0x09,0x05,0x07,0xda,0x40,0x02,0x00,0x84,0x09,0x0e,0x0a,0x05,0x0a,0x42,0x05,0x84,0x04,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x1a, -0xed,0xc4,0x32,0x31,0x30,0x01,0x02,0x21,0x20,0x03,0x33,0x12,0x21,0x20,0x13,0x03,0x1a,0xf0,0xfd,0xd6,0xfd,0xd6,0xf0,0xa2,0xba,0x01,0xbd,0x01,0xbf,0xba,0x07,0x40,0xfe,0x82,0x01,0x7e,0xfe,0xfe,0x01,0x02,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x06,0x58,0x00,0x03,0x00,0x19,0x40,0x0b,0x02,0x91,0x40,0x01,0x00,0x0e,0x04,0x04, -0x01,0x42,0x01,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0x05,0xc2,0x96,0x00,0x01,0xfc,0xe6,0xfe,0x70,0x03,0x1a,0xff,0x04,0x00,0x03,0x00,0x19,0x40,0x0b,0x01,0x91,0x40,0x02,0x03,0x0e,0x04,0x02,0x04,0x42,0x02,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a, -0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0xfe,0x70,0x94,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0xec,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x06,0x00,0xed,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x07,0x00,0x0f,0x00,0x3c, -0x40,0x1e,0x0a,0x07,0x01,0x02,0x08,0x0c,0x01,0x0c,0x0f,0x03,0x04,0x0c,0x04,0x08,0x95,0x02,0x02,0x01,0x07,0x0f,0x04,0x01,0x15,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x5d,0x21,0x23,0x03,0x21, -0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x03,0xb6,0xb4,0x58,0xfe,0x66,0x56,0xb0,0x01,0x75,0xc3,0x3b,0x87,0x02,0x12,0x07,0x05,0x10,0x88,0x01,0x02,0xfe,0xfe,0x04,0x00,0xfd,0x8e,0x01,0x8c,0x06,0x4e,0x1a,0x3a,0xfe,0x74,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0xe4,0x04,0x00,0x00,0x0f,0x00,0x13,0x00,0x5e, -0x40,0x31,0x13,0x03,0x04,0x12,0x04,0x0c,0x95,0x40,0x0b,0x07,0x00,0x0b,0x95,0x1a,0x30,0x10,0x95,0x02,0x02,0x00,0x11,0x08,0x95,0x07,0x0f,0x04,0x0f,0x95,0x00,0x12,0x06,0x06,0x01,0x14,0x08,0x0c,0x00,0x00,0x15,0x10,0x0a,0x0e,0x84,0x01,0x01,0x15,0x14,0x04,0x05,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x11,0x33,0x2f,0xc4, -0xc4,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0xed,0xc4,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23,0x03,0x04,0xe4,0xfd,0xb6,0xfe,0xa2,0x82,0xba,0x02,0x23,0x02,0xaa,0xfe,0x6f, -0x01,0x74,0xfe,0x8c,0x01,0xa8,0xfd,0xb6,0x1d,0xfa,0x01,0x02,0xfe,0xfe,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x01,0x02,0x01,0xe6,0xfe,0x1a,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x50,0x04,0x18,0x00,0x23,0x00,0x2e,0x00,0x35,0x00,0x71,0x40,0x1d,0x16,0x40,0x0b,0x0e,0x48,0x16,0x16,0x14,0x24,0x00,0x11,0x95,0x2f,0x2f,0x0c,0x14, -0x95,0x19,0x10,0x2b,0x95,0x1e,0x10,0x09,0x33,0x95,0x0c,0x16,0x04,0xb8,0xff,0xd0,0x40,0x1a,0x09,0x0c,0x48,0x04,0x02,0x95,0x07,0x16,0x05,0x05,0x21,0x83,0x28,0x28,0x37,0x00,0x09,0x1c,0x2f,0x04,0x24,0x83,0x11,0x11,0x37,0x17,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x17,0x30,0x83,0x0f,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17, -0x39,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x33,0x32,0x16, -0x15,0x10,0x05,0x25,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x07,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0xcb,0xd7,0xb1,0x9b,0x94,0xc8,0xee,0x42,0x04,0x73,0xf1,0xca,0xde,0x02,0xd3,0x03,0xb0,0x99,0xaf,0x90,0x84,0xe2,0x01,0x0a,0x77,0x04,0x8d,0xf6,0x99,0xaf,0xfe,0x81,0xfe,0xfa,0xcd,0x85,0x8d,0x6a,0x5a,0x78,0xa3,0xa6, -0xfd,0xd5,0x02,0x85,0x77,0x74,0xa6,0x01,0x9c,0xfe,0xd6,0x7a,0xa4,0x60,0xc6,0xc6,0x01,0x05,0xe8,0x54,0xab,0xba,0x72,0x9a,0x62,0xe0,0xe0,0xa1,0x87,0xfe,0xd2,0x16,0x7d,0x0a,0x06,0x52,0x61,0x49,0x59,0xab,0x85,0xc0,0x90,0x9c,0xa4,0x00,0x00,0x03,0x00,0x3e,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x48, -0x40,0x27,0x01,0x12,0x15,0x1c,0x04,0x08,0x95,0x0b,0x0b,0x1d,0x14,0x95,0x0c,0x0f,0x1d,0x95,0x07,0x15,0x12,0x01,0x19,0x83,0x10,0x10,0x03,0x20,0x00,0x00,0x03,0x83,0x20,0x20,0x25,0x15,0x0b,0x1d,0x84,0x09,0x07,0x2f,0xce,0xe1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed, -0x12,0x39,0x2f,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x33,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x92,0x7e,0x6b,0xc4,0xab,0xfe,0x96,0x68,0x68,0x01,0x5e,0x99,0xb5,0x60,0xa0,0xfd,0xb6,0xac,0x54, -0x64,0xb8,0xac,0xba,0xd7,0x7b,0x64,0x01,0xcb,0x37,0x78,0x7f,0x9d,0x01,0xcb,0x8b,0x01,0xaa,0x8a,0x70,0x75,0x3b,0x01,0x1e,0xfe,0xe2,0x51,0x47,0x86,0xfe,0x57,0xfe,0xc1,0x99,0x4c,0x5a,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x06,0x04,0x00,0x00,0x07, -0x00,0x0e,0x00,0x1f,0x40,0x10,0x08,0x95,0x01,0x0f,0x09,0x95,0x00,0x15,0x04,0x83,0x0c,0x0c,0x10,0x09,0x84,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0xa6,0x01,0x40,0x02,0x20,0xfe,0xd5,0xfc,0x97,0x8f,0x01,0x89,0xfe,0x7b, -0x04,0x00,0xfe,0x0a,0xeb,0xfe,0xe1,0x03,0x74,0xfd,0x18,0x01,0x7a,0x01,0x6e,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x04,0x10,0x04,0x00,0x00,0x0b,0x00,0x16,0x00,0x3f,0x40,0x22,0x10,0x0d,0x01,0x95,0x40,0x04,0x05,0x00,0x04,0x95,0x1a,0x30,0x0c,0x95,0x05,0x0f,0x11,0x95,0x00,0x15,0x0f,0x0f,0x11,0x08,0x83,0x14,0x14,0x18,0x0d,0x04, -0x11,0x84,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x15,0x23,0x11,0x33,0x20,0x11,0x10,0x21,0xb0,0x74,0x74,0x01,0x40,0x02,0x20,0xfe,0xd6,0xfc, -0x98,0xec,0xec,0x90,0x01,0x88,0xfe,0x7c,0x01,0xba,0x8c,0x01,0xba,0xfe,0x0a,0xea,0xfe,0xe0,0x03,0x74,0xfe,0xd2,0x8c,0xfe,0xd2,0x01,0x7a,0x01,0x6e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf0,0x04,0x00,0x00,0x0b,0x00,0x32,0x40,0x1b,0x08,0x95,0x40,0x07,0x03,0x00,0x07,0x95,0x1a,0x30,0x04,0x95,0x03,0x0f,0x0b,0x95,0x00,0x15, -0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x84,0x01,0x2f,0xe1,0x39,0x11,0x33,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0xf0,0xfd,0xb6,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0, -0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xec,0x04,0x18,0x00,0x22,0x00,0x3e,0x40,0x20,0x01,0x12,0x95,0x13,0x13,0x1e,0x0b,0x1b,0x19,0x95,0x1e,0x10,0x09,0x0b,0x95,0x06,0x16,0x00,0x21,0x12,0x0e,0x83,0x03,0x03,0x21,0x83,0x16,0x16,0x24,0x12,0x08,0x1b,0x2f,0xc6,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd, -0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x10,0xbb,0xca,0xa3,0x82,0x68,0x6e,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0x01,0x21, -0x7e,0x72,0x86,0x74,0x72,0x98,0xb9,0xcf,0x01,0xea,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4b,0x59,0x8e,0xac,0x4d,0x5d,0x3e,0x96,0x32,0xa0,0x88,0xd0,0x00,0x02,0x00,0x8e,0xfe,0x27,0x01,0x64,0x04,0x00,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x12,0x0a,0x63,0x04,0x1b,0x00,0x15,0x03,0x0f,0x0d,0x62,0x07,0x07,0x00,0x84, -0x01,0x01,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x33,0x2f,0xe1,0x00,0x3f,0x3f,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x48,0xa2,0xa2,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x04,0x00,0xfa,0x27,0x3d,0x2e,0x2e,0x3c,0x3e,0x2c,0x2e,0x3d,0x00,0x00,0x01,0x00,0x14, -0xff,0xec,0x01,0xd3,0x04,0x00,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x0f,0x05,0x07,0x95,0x02,0x16,0x09,0x84,0x00,0x00,0x0d,0x04,0x2f,0x11,0x33,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0xd3,0xfe,0xb9,0x40,0x38,0x32,0x3d,0xac,0xa4,0x01,0x72,0xfe,0x7a,0x14, -0x94,0x1d,0x01,0x00,0x02,0x89,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x0d,0x00,0x45,0x40,0x23,0x0b,0x02,0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x0a,0x09,0x04,0x03,0x09,0x03,0x09,0x03,0x01,0x06,0x0f,0x0c,0x95,0x01,0x15,0x0a,0x0a, -0x00,0x00,0x0f,0x08,0x05,0x0c,0x84,0x03,0x01,0x2f,0xce,0xe1,0x39,0x39,0x11,0x33,0x2f,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x03,0x04,0xfd,0xa2,0x64,0x64,0xa2,0xf0,0xf0, -0x01,0xbc,0x01,0x74,0x38,0x8a,0x3a,0x02,0x00,0xfe,0x5c,0x88,0x8e,0x87,0xfe,0xbd,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x02,0x06,0x02,0x13,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x02,0x06,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00, -0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x00,0x15,0x00,0x34,0x40,0x1f,0x40,0x0b,0x50,0x0b,0x02,0x0b,0x0b,0x09,0x95,0x0e,0x10,0x4f,0x01,0x5f,0x01,0x6f,0x01,0x03,0x01,0x01,0x03,0x95,0x14,0x16,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d, -0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5a,0x6c,0x86,0xa6,0xd2,0xcd,0x9f,0x8e,0x70,0x7c,0x9a,0xe6,0x01,0x16,0xfe,0xcd,0xeb,0x84,0x18,0x9a,0x40,0xda,0xb8,0xb3,0xd7,0x46,0x95,0x3b,0xfe,0xde,0xea,0xef,0xfe,0xcb,0x00,0x02,0x00,0x60,0x00,0x08, -0x04,0x92,0x03,0xf8,0x00,0x0b,0x00,0x17,0x00,0x1f,0x40,0x10,0x0c,0xf4,0x06,0x0f,0x12,0xf4,0x00,0x15,0x09,0xed,0x15,0x15,0x19,0x0f,0xed,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x02,0x79,0xf2,0xfe,0xd9,0x01,0x28,0xf1,0xf2,0x01,0x27,0xfe,0xd7,0xf2,0xb9,0xd2,0xd2,0xbd,0xb7,0xd4,0xd2,0x08,0x01,0x15,0xe5,0xe7,0x01,0x0f,0xfe,0xeb,0xe5,0xe5,0xfe,0xef,0x03,0x48,0xb6,0x9a,0xa2,0xae,0xb5,0x9b,0xa1,0xaf,0x00,0x00,0x01,0x00,0x60,0x00,0xb6,0x04,0x92,0x03,0xf8,0x00,0x15,0x00,0x29,0x40,0x14,0x0b,0x00, -0x00,0x17,0x06,0xf4,0x11,0x0f,0x01,0x14,0xed,0x03,0x03,0x17,0x0e,0x0b,0x0b,0x09,0xed,0x0e,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x00,0x3f,0xed,0x12,0x39,0x2f,0xc4,0x31,0x30,0x25,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x04,0x50,0x92,0x48,0xd8, -0xb5,0xb3,0xda,0x47,0x91,0x42,0x01,0x2f,0xec,0xec,0x01,0x2b,0xb6,0x7a,0xab,0xab,0xcc,0xd0,0xa7,0xa5,0x80,0x8e,0x9b,0xf0,0x01,0x29,0xfe,0xdf,0xe9,0xae,0x00,0x03,0x00,0x4c,0xff,0xe8,0x04,0xa6,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x7d,0x40,0x47,0x15,0x15,0x16,0x14,0x14,0x1b,0x13,0x13,0x12,0x0c,0x0c,0x0d,0x0b,0x00, -0x0b,0x1d,0x1d,0x1e,0x1c,0x1c,0x23,0x09,0x09,0x08,0x02,0x02,0x03,0x0a,0x01,0x0a,0x00,0x01,0x04,0x0a,0x0b,0x14,0x15,0x1c,0x1d,0x04,0x22,0x1a,0x02,0x09,0x0c,0x13,0x04,0x04,0x1a,0xf4,0x0e,0x0f,0x22,0xf4,0x04,0x15,0x01,0x00,0x00,0x11,0x0b,0x0a,0x07,0x11,0xed,0x17,0x17,0x25,0x1f,0xed,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10, -0xc6,0x32,0x10,0xc2,0x2f,0x32,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0xc6,0x32,0x10,0xc6,0x32,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x25,0x07,0x27,0x06,0x23,0x22,0x00,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x00,0x15,0x14, -0x07,0x01,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0xa6,0x48,0x8b,0x8b,0xcf,0xf2,0xfe,0xd9,0x71,0x85,0x48,0x8a,0x8c,0xcf,0xf2,0x01,0x27,0x71,0xfd,0x77,0x02,0x18,0x56,0xd2,0xbd,0x82,0x01,0x65,0xfd,0xe8,0x56,0xd2,0xbd,0x81,0x33,0x4b,0x84,0x64,0x01,0x15,0xe5,0xc8,0x82,0x81,0x4b,0x84, -0x64,0xfe,0xeb,0xe5,0xc8,0x82,0x02,0x6d,0xfd,0xfb,0x5a,0x8a,0xa1,0xaf,0xfd,0x8f,0x02,0x05,0x5a,0x8a,0xa2,0xae,0x00,0x03,0x00,0x52,0xff,0xe8,0x07,0x10,0x04,0x18,0x00,0x1c,0x00,0x28,0x00,0x2f,0x00,0x58,0x40,0x29,0x0d,0x40,0x0b,0x0e,0x48,0x0d,0x0d,0x0b,0x08,0x95,0x29,0x29,0x0b,0x03,0x10,0x0b,0x1d,0x95,0x15,0x10,0x2d,0x03, -0x23,0x95,0x1b,0x16,0x18,0x83,0x26,0x26,0x31,0x00,0x12,0x29,0x03,0x20,0x83,0x08,0x08,0x31,0x0d,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x0d,0x2a,0x83,0x06,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17,0x39,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30, -0x25,0x23,0x06,0x21,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x00,0x15,0x10,0x00,0x23,0x20,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0x72,0x04,0x76,0xfe,0xf6,0xc2,0xda,0x02,0xd3,0x03,0xb0,0x9b,0xad,0x90,0x88, -0xda,0x01,0x10,0x71,0x04,0x83,0x01,0x1a,0xe5,0x01,0x0d,0xfe,0xe6,0xf0,0xfe,0xd9,0x01,0x35,0xa0,0xa9,0xab,0x9c,0x9f,0xb9,0xb9,0xfd,0x72,0xfd,0xd7,0x02,0x84,0x74,0x78,0xa6,0xd3,0xeb,0x01,0x05,0xe4,0x58,0xab,0xba,0x72,0x9a,0x62,0xed,0xed,0xfe,0xe4,0xee,0xfe,0xfc,0xfe,0xde,0x03,0xa6,0xcf,0xbb,0xc2,0xd0,0xd9,0xbf,0xb5,0xcf, -0xfe,0x10,0x8e,0x9e,0xa9,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xea,0x04,0x00,0x00,0x1f,0x00,0x2b,0x00,0x3f,0x40,0x21,0x14,0x00,0x20,0x95,0x0a,0x0a,0x26,0x05,0x10,0x0f,0x26,0x95,0x1a,0x16,0x14,0x00,0x02,0x0d,0x84,0x12,0x12,0x17,0x83,0x29,0x29,0x2d,0x1d,0x07,0x84,0x02,0x23,0x83,0x1d,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39, -0x2f,0xf1,0xc0,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x01,0x40,0xa6,0x1c,0xa0,0x1c,0x7e,0x6d,0x6d,0x7e,0x1c,0xa2,0x1a,0xa8,0x68,0x7a,0xfe,0xcb,0xd1,0xf0,0x78,0x01,0x4d,0x82,0x9b,0xa0,0x7d,0x81,0x9c,0x9f,0x02,0x7f,0x4b,0xa4,0x46,0x4c,0x45,0x40,0x56,0x6b,0x6b,0x56,0x40,0x45,0x46,0x4c,0x9e,0x51,0x26,0x9f,0x66,0xa2,0xca,0xc1,0xa3,0x65,0xa5,0x27,0x78,0x67,0x66,0x78,0x7a, -0x68,0x63,0x78,0x00,0x00,0x01,0x00,0x60,0x02,0x00,0x04,0x62,0x04,0x18,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x07,0x00,0x04,0x95,0x0b,0x10,0x00,0x83,0x01,0x01,0x0f,0x07,0x83,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x00,0x33,0x32,0x00,0x04,0x62,0xa8, -0xb9,0xa1,0x9f,0xb9,0xa8,0x01,0x1f,0xe9,0xe7,0x01,0x13,0x02,0x00,0xbc,0xd2,0xd8,0xb6,0xee,0x01,0x2a,0xfe,0xde,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x02,0x00,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x0d,0x06,0x0a,0x95,0x03,0x16,0x00,0x83,0x0d,0x0d,0x0f,0x07,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xd4,0xc4,0x31, -0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x62,0xfe,0xe1,0xe9,0xe6,0xfe,0xec,0xa8,0xb9,0xa1,0x9f,0xb9,0x02,0x00,0xef,0xfe,0xd7,0x01,0x22,0xf6,0xbc,0xd2,0xd8,0xb6,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x27,0x40,0x14,0x0c,0x95,0x00,0x00,0x01,0x0b, -0x95,0x03,0x0f,0x01,0x15,0x07,0x83,0x0f,0x0f,0x13,0x0c,0x01,0x84,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x48,0xa2,0x01,0x33,0xb4,0xc5,0xd4,0xb8,0x7e,0x7e,0xe6,0xd9,0x01,0x70, -0xfe,0x90,0x04,0x00,0xa1,0x99,0x98,0xbe,0x02,0x04,0xfe,0x88,0xc2,0xb6,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x1e,0x0b,0x02,0x95,0x13,0x13,0x00,0x14,0x95,0x12,0x0f,0x07,0x00,0x15,0x06,0x09,0x0b,0x09,0x08,0x13,0x00,0x84,0x01,0x01,0x1c,0x17,0x84,0x0e,0x0e,0x07,0x08,0x2f,0x33, -0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x16,0x33,0x02,0xfc,0xa2,0x58,0x42,0x51,0x23,0x79,0xb5,0x8e,0x34,0x53, -0xe5,0xc6,0xae,0x01,0x3a,0xa2,0x98,0xd0,0x6e,0x5e,0x01,0xa6,0x3f,0x53,0xfe,0xec,0x01,0x35,0x71,0x29,0x04,0x2b,0xd7,0x87,0xa4,0xfe,0x31,0x01,0x43,0x9d,0x4f,0x57,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3b,0x40,0x1e,0x06,0x13,0x95,0x0f,0x0f,0x12,0x0b,0x11,0x0f,0x12,0x95,0x00,0x15,0x0c, -0x09,0x09,0x06,0x0a,0x0f,0x00,0x84,0x12,0x12,0x1a,0x16,0x84,0x04,0x04,0x0b,0x0a,0x2f,0x33,0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x27,0x03,0x33,0x13,0x16,0x33,0x33,0x11,0x33,0x03,0x11,0x23, -0x22,0x15,0x14,0x33,0x02,0xfc,0xfe,0xae,0xa5,0xb7,0xea,0x53,0x39,0x8e,0xb9,0x75,0x3e,0x78,0x58,0xa2,0xa2,0x9c,0xcc,0xc4,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x01,0x38,0xfe,0xec,0x92,0x01,0xa6,0xfc,0x8c,0x01,0x43,0xa8,0x9b,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x90, -0xff,0xe8,0x03,0xb6,0x04,0x00,0x00,0x0d,0x00,0x1e,0x40,0x0f,0x06,0x0d,0x0f,0x09,0x95,0x02,0x16,0x0d,0x84,0x0c,0x0c,0x0f,0x06,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x11,0x11,0x33,0x03,0xb6,0xfe,0x64,0xfe,0x76,0xa1,0xf2,0xf1,0xa2, -0x01,0xa6,0xfe,0x42,0x01,0xb2,0x02,0x66,0xfd,0xa2,0xfe,0xd0,0x01,0x2a,0x02,0x64,0x00,0x01,0x00,0x66,0x00,0x5a,0x04,0x38,0x03,0xac,0x00,0x12,0x00,0x2a,0x40,0x14,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x14,0x08,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00,0x2f, -0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x66,0x02,0x0c,0x01,0x3a,0xad,0x88,0xfd,0xef,0x03,0xb8,0x80,0x9a,0xef,0xd5,0x5a,0xa4,0xf2,0x74,0xa6,0xa2,0xa2,0x04,0x6b,0xc2,0xb0,0xcf,0x00,0x03,0x00,0x3e,0x00,0x5a,0x05,0x6c,0x03,0xac, -0x00,0x12,0x00,0x1e,0x00,0x2a,0x00,0x49,0x40,0x25,0x19,0x63,0x13,0x1f,0x63,0x25,0x13,0x25,0x13,0x09,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x2c,0x08,0x00,0x00,0x2c,0x1c,0x16,0x28,0x62,0x22,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00, -0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x9c,0x02,0x0c, -0x01,0x3a,0xae,0x88,0xfd,0xf0,0x03,0xb8,0x81,0x99,0xed,0xd5,0xfc,0xf6,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x2a,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x5a,0xa4,0xf2,0x73,0xa7,0xa2,0xa2,0x04,0x6b,0xc2,0xb1,0xce,0x02,0x12,0x3b,0x28,0x29,0x3b,0x3b,0x29,0x29,0x3a,0xfe,0x80,0x38,0x28,0x29,0x3b,0x39,0x29,0x28,0x3a,0x00,0x00,0x01, -0x00,0x66,0xff,0x2d,0x04,0x38,0x04,0xd7,0x00,0x1f,0x00,0x3e,0x40,0x1f,0x01,0xf4,0x40,0x00,0x0e,0x09,0x0a,0x12,0x42,0x15,0x11,0xf4,0x12,0x1b,0x09,0xf4,0x0a,0x14,0x14,0x1b,0x15,0x18,0x0d,0x1d,0xed,0x05,0x05,0x21,0x11,0x09,0x00,0x2f,0x32,0x32,0x11,0x39,0x2f,0xf1,0x39,0x39,0x33,0x33,0xc0,0x2f,0x00,0x2f,0xed,0x39,0xd6,0xed, -0x32,0x2b,0x00,0x18,0x10,0xf6,0x1a,0xed,0x31,0x30,0x17,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x10,0x21,0x66,0x02,0x04,0xab,0x97,0xbc,0x8a,0xfe,0x00,0x02,0x19,0x01,0x2d,0xb4,0x92,0xfe,0x00,0x03,0xb8,0x8c,0xa6,0x76, -0x60,0xd6,0xfe,0x47,0xd3,0xa2,0x6a,0x75,0x6f,0x93,0xa2,0xe6,0x70,0x8d,0xa2,0xa2,0x04,0x5b,0xbc,0x6f,0xab,0x27,0x61,0xd4,0xfe,0x89,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00, -0x03,0x70,0x04,0x00,0x02,0x06,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xf8,0x04,0x00,0x00,0x17,0x00,0x3d,0x40,0x1f,0x0a,0x08,0x52,0x10,0x10,0x03,0x0f,0x0c,0x95,0x0d,0x0f,0x01,0x03,0x95,0x16,0x16,0x10,0x0a,0x0a,0x06,0x0c,0x0b,0x0f,0x0f,0x13,0x84,0x06,0x06,0x19,0x0c,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, -0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x6a,0x92,0x7a,0x8e,0xfe,0xdd,0x3d,0x01,0x06,0xfe,0x56,0x02,0x8b,0xfe,0xed,0x8e,0xa2,0xf0, -0xc6,0x89,0x18,0x96,0x3c,0x66,0x59,0xc1,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xac,0x13,0xa4,0x7c,0x92,0xb9,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xfa,0x04,0x18,0x00,0x25,0x00,0x42,0x40,0x22,0x14,0x13,0x07,0x01,0x00,0x0c,0x1f,0x1c,0x1a,0x95,0x1f,0x10,0x09,0x07,0x95,0x0c,0x16,0x00,0x83,0x14,0x14,0x18,0x0f,0x09,0x09,0x22,0x83,0x18, -0x18,0x27,0x1c,0x05,0x83,0x0f,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x10,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x15,0x06,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x35,0x36,0x37,0x36,0x35,0x34,0x23,0x22, -0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x01,0xf8,0x2e,0x56,0x7e,0xe5,0x9b,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x2a,0x2e,0x55,0x7f,0xe6,0x9a,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x02,0x0a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c,0x72,0x90,0x4a,0x1c,0x1a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c, -0x72,0x90,0x4a,0x1c,0x00,0x01,0x00,0x14,0xff,0xe8,0x04,0x25,0x04,0x18,0x00,0x1b,0x00,0x3b,0x40,0x1e,0x12,0x10,0x09,0x1b,0x0b,0x06,0x19,0x95,0x02,0x16,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x0f,0x40,0x0f,0x09,0x42,0x09,0x09,0x1c,0x0f,0x0f,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x1a,0x18,0x10,0xdd,0xe2, -0x12,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x04,0x25,0x61,0x82,0x99,0x8d,0x8c,0x94,0x81,0x67,0x6e,0x74,0x60,0x62,0xe9,0xb6,0x9c,0x9b,0xae,0xe7,0x63,0x64,0x71, -0x6a,0x38,0x50,0x7a,0x7a,0x4d,0xa8,0x6b,0x54,0xe7,0xf5,0xa4,0xd2,0xcb,0xa5,0xfc,0xe6,0x54,0x67,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x02,0x06,0x02,0x0a,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x0b,0x00,0x17,0x40,0x0a,0x04,0x0b,0x0f,0x00,0x09,0x15,0x00,0x00,0x0d,0x09,0x2f,0x11, -0x33,0x2f,0x00,0x3f,0xc4,0x3f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x03,0xb6,0xb2,0xfe,0xf2,0x02,0x12,0x05,0x05,0x10,0xfe,0xf2,0xb0,0x01,0x79,0xc1,0x03,0x14,0x06,0x4e,0x1b,0x39,0xfc,0xec,0x04,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x02,0x16,0x00,0x00, -0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x02,0x06,0x07,0x7a,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x04,0x5a,0x04,0x00,0x00,0x13,0x00,0x4c,0x40,0x29,0x0c,0x05,0x0f,0x96,0x40,0x02,0x02,0x03,0x0e,0x09,0x13,0x0f,0x03,0x15,0x11,0x84,0x00,0x0e,0x03,0x0a,0x84,0x07,0x04,0x07,0x42,0x07,0x07,0x14,0x0f,0x0c,0x03,0x84, -0x4f,0x04,0x5f,0x04,0x02,0x04,0x04,0x15,0x14,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x39,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11,0x14,0x05,0x11,0x33,0x11,0x24,0x35,0x11,0x33,0x04,0x5a, -0xfe,0x54,0xa2,0xfe,0x54,0xa2,0x01,0x0a,0xa2,0x01,0x0a,0xa2,0x02,0x92,0xfe,0xa0,0x18,0xfe,0xe6,0x01,0x1a,0x12,0x01,0x60,0x01,0x74,0xfe,0x92,0xee,0x08,0x02,0x64,0xfd,0x9c,0x0c,0xea,0x01,0x6e,0x00,0x01,0x00,0x0a,0xff,0xf4,0x03,0xd7,0x04,0x00,0x00,0x10,0x00,0x2a,0x40,0x15,0x02,0x95,0x10,0x0f,0x09,0x0b,0x95,0x06,0x01,0x00, -0x15,0x03,0x0f,0x0f,0x09,0x00,0x84,0x01,0x01,0x12,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0x10,0xd4,0xfd,0xc6,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x11,0x21,0x03,0xd7,0xa2,0xfe,0x67,0x0d,0x94,0xa1,0x26,0x2a,0x20,0x1e,0x41,0x48,0x2b,0x02,0xdb, -0x03,0x74,0xfd,0xb0,0xfe,0xd0,0x0c,0x8c,0x0d,0x7e,0x01,0x90,0x01,0x73,0x00,0x02,0x00,0x0a,0x02,0x9a,0x02,0xd7,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x4e,0x40,0x10,0x02,0x08,0x09,0x0a,0x0b,0x0c,0x01,0x0c,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x04,0x03,0xb8,0x01,0x0e,0xb2,0x0f,0x0f,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05, -0x01,0x0a,0xb6,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x3f,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x02,0xd7,0x8f,0x44, -0xfe,0xd5,0x3f,0x90,0x01,0x1d,0x97,0x24,0x63,0x03,0x0a,0x04,0x05,0x09,0x64,0x02,0x9a,0xbe,0xbe,0x03,0x00,0xfe,0x2e,0x01,0x22,0x0a,0x31,0x22,0x19,0xfe,0xde,0x00,0x00,0x02,0xff,0xf6,0x02,0x9a,0x03,0x9e,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0x76,0xb5,0x13,0x03,0x04,0x12,0x04,0x0d,0xb8,0x01,0x0e,0xb4,0x40,0x0a,0x06,0x01,0x0a, -0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0xb8,0x01,0x0e,0xb3,0x13,0x13,0x06,0x0e,0xb8,0x01,0x0e,0xb2,0x01,0x01,0x05,0xbe,0x01,0x0a,0x00,0x09,0x01,0x0e,0x00,0x12,0x01,0x0e,0x00,0x06,0x01,0x06,0x40,0x09,0x03,0x04,0x12,0x13,0x04,0x05,0x10,0x0a,0x0e,0xb8,0x01,0x0c,0x40,0x09,0x01,0x01,0x05,0x08,0x0c,0x00,0x00,0x15,0x05,0x2f,0x12, -0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x17,0x39,0x00,0x3f,0xed,0xed,0x3f,0x33,0x10,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x01,0x21,0x35,0x21,0x07,0x23,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x25,0x11,0x23,0x03,0x03,0x9e,0xfe,0x50,0xff,0x00, -0x60,0x98,0x01,0xa2,0x01,0xf6,0xfe,0xe2,0x01,0x09,0xfe,0xf7,0x01,0x2e,0xfe,0x50,0x0f,0xb8,0x02,0x9a,0xbe,0xbe,0x03,0x00,0x71,0xd9,0x6c,0xda,0xbe,0x01,0x63,0xfe,0x9d,0x00,0x00,0x03,0x00,0x7b,0x02,0x9a,0x02,0x89,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x57,0xb1,0x07,0x14,0xb8,0x01,0x0e,0xb4,0x40,0x0e,0x01,0x00,0x0e, -0xb8,0x01,0x0e,0xb2,0x32,0x30,0x15,0xbe,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0e,0x00,0x01,0x01,0x06,0xb3,0x06,0x09,0x0e,0x11,0xb8,0x01,0x0c,0xb2,0x04,0x04,0x09,0xb8,0x01,0x0c,0xb4,0x18,0x18,0x1c,0x0e,0x15,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed, -0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x13,0x11,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x7b,0xe7,0x01,0x06,0x89,0xaa,0x99,0x84,0x6e,0x5a,0x8a,0x8c,0x58,0x6e,0x96,0xa0,0x02,0x9a,0x03,0x00,0xbf,0x7d,0x29,0x02,0x19,0x9f, -0x68,0x79,0x02,0x8f,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x71,0x75,0x00,0x03,0x00,0x23,0x02,0x9a,0x02,0xb2,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x20,0x00,0x64,0xb5,0x01,0x11,0x14,0x1a,0x04,0x08,0xb8,0x01,0x0e,0xb4,0x40,0x0b,0x0c,0x07,0x0b,0xb8,0x01,0x0e,0xb2,0x32,0x30,0x1b,0xbe,0x01,0x0e,0x00,0x07,0x01,0x0a,0x00,0x13,0x01,0x0e, -0x00,0x0c,0x01,0x06,0xb4,0x11,0x01,0x03,0x14,0x17,0xb8,0x01,0x0c,0xb5,0x0f,0x0f,0x03,0x00,0x00,0x03,0xb8,0x01,0x0c,0xb7,0x1e,0x1e,0x22,0x14,0x0b,0x1b,0x09,0x07,0x2f,0xc6,0xc1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39, -0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x20,0x15,0x14,0x07,0x33,0x25,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xb2,0x6a,0x56,0x97,0x86,0xf1,0x6d,0x6d,0xe7,0x01,0x06,0x48,0x7d,0xfe,0x60,0x5a,0x8a,0x8c,0x58,0x6f,0x95,0x9f,0x03,0xf0,0x28,0x58,0x62,0x74, -0x01,0x56,0x70,0x01,0x3a,0xbf,0x53,0x28,0xc9,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x6d,0x79,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x03,0x08,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x2d,0x41,0x0a,0x00,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x01,0x01,0x06,0x00,0x04,0x01,0x0c,0xb3,0x0d,0x0d,0x11,0x09,0xb9,0x01,0x0c, -0x00,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x11,0x33,0x20,0x11,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x7b,0xf1,0x01,0x9c,0xe2,0xc0,0x68,0x64,0x89,0x96,0xfe,0xe7,0x02,0x9a,0x03,0x00,0xfe,0x87,0xb1,0xd6,0x02,0x8f,0xfd,0xe1,0x90,0x84,0x01,0x0b,0x00,0x00,0x01,0x00,0x7b, -0x02,0x9a,0x02,0x2b,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00,0x09,0x01,0x0e,0xb4,0x40,0x06,0x02,0x01,0x06,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x0a,0xbe,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0e,0x00,0x02,0x01,0x06,0xb6,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xc4,0xc4, -0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2b,0xfe,0x50,0x01,0x9f,0xfe,0xe4,0x01,0x08,0xfe,0xf8,0x01,0x2d,0x02,0x9a,0x03,0x00,0x71,0xd7,0x70,0xd8,0x00,0x00,0x01,0x00,0x48,0x02,0x9a,0x01,0xf8,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00, -0x04,0x01,0x0e,0xb4,0x40,0x07,0x0b,0x00,0x07,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0x41,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x0b,0x01,0x06,0x00,0x00,0x01,0x0c,0xb6,0x07,0x03,0x03,0x0d,0x09,0x05,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, -0x30,0x01,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0xf8,0xfe,0x50,0x01,0x2c,0xfe,0xf8,0x01,0x08,0xfe,0xe4,0x01,0xa0,0x02,0x9a,0x70,0xd8,0x70,0xd7,0x71,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0xcb,0x05,0xaa,0x00,0x19,0x00,0x50,0xb9,0x00,0x17,0x01,0x0e,0xb5,0x18,0x18,0x08,0x15,0x00,0x13,0xba,0x01,0x0e,0x00, -0x02,0x01,0x0b,0xb4,0xaf,0x0b,0x01,0x0b,0x0d,0xba,0x01,0x0e,0x00,0x08,0x01,0x07,0xb6,0x17,0x17,0x16,0x10,0x0b,0x0b,0x19,0xb8,0x01,0x0c,0xb3,0x16,0x16,0x1b,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x31,0x30, -0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x35,0x23,0x35,0x21,0x02,0xcb,0x75,0x96,0xb2,0xd0,0xe7,0xb8,0x77,0x5e,0x62,0x75,0x7a,0x9d,0x8d,0x77,0x49,0x37,0x9c,0x01,0x1f,0x02,0xcb,0x42,0xd0,0xb5,0xb7,0xe5,0x27,0x81,0x38,0xa2,0x82,0x85,0x97,0x1c,0xb2,0x72, -0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0xea,0x05,0x9a,0x00,0x0b,0x00,0x49,0xb9,0x00,0x03,0x01,0x0e,0xb4,0x40,0x08,0x06,0x05,0x08,0xb8,0x01,0x0e,0xb5,0x32,0x30,0x0b,0x00,0x06,0x05,0xba,0x01,0x0a,0x00,0x06,0x01,0x06,0xb3,0x09,0x08,0x04,0x00,0xbb,0x01,0x0c,0x00,0x01,0x00,0x04,0x01,0x0c,0xb4,0x05,0x01,0x01,0x0d,0x05,0x2f,0x12, -0x39,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x02,0xea,0x84,0xfe,0x98,0x83,0x83,0x01,0x68,0x84,0x02,0x9a,0x01,0x4e,0xfe,0xb2,0x03,0x00,0xfe,0xbe,0x01,0x42,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a, -0x00,0xfe,0x05,0x9a,0x00,0x03,0x00,0x16,0xbe,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xfe,0x83,0x83,0x02,0x9a,0x03,0x00,0x00,0x00,0x01,0x00,0x0a,0x02,0x87,0x01,0x5e,0x05,0x9a,0x00,0x0c,0x00,0x23,0xb1,0x06,0x08,0xbe,0x01,0x0e,0x00,0x03, -0x01,0x0b,0x00,0x0b,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb3,0x0b,0x0b,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x5e,0x82,0x74,0x35,0x29,0x2a,0x2c,0x7b,0x83,0x03,0xaa,0x8a,0x99,0x15,0x78,0x1c,0xb6,0x01,0xec,0x00,0x01,0x00,0x7b, -0x02,0x9a,0x02,0xc0,0x05,0x9a,0x00,0x10,0x00,0x21,0xbb,0x00,0x07,0x01,0x0a,0x00,0x08,0x01,0x06,0xb5,0x0f,0x00,0x12,0x10,0x0a,0x05,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x13,0x33,0x01,0x02,0xc0,0xa8,0xe9, -0x1f,0x0e,0x04,0x83,0x83,0x04,0x10,0x1d,0xe1,0x9c,0xfe,0xd7,0x02,0x9a,0x01,0x31,0x28,0x1d,0xfe,0x8a,0x03,0x00,0xfe,0x99,0x19,0x26,0x01,0x28,0xfe,0x8d,0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0x25,0x05,0x9a,0x00,0x05,0x00,0x22,0xbd,0x00,0x04,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0xb3,0x00,0x00,0x07,0x04,0xb9,0x01, -0x0c,0x00,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x21,0x02,0x25,0xfe,0x56,0x83,0x01,0x27,0x02,0x9a,0x03,0x00,0xfd,0x70,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0xb6,0x05,0x9a,0x00,0x1b,0x00,0x27,0xbe,0x00,0x11,0x01,0x0a,0x00,0x13,0x01,0x06,0x00,0x1a,0x00,0x00,0x01,0x0c,0xb4, -0x01,0x01,0x1d,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x03,0xb6,0x83,0x07,0x05,0x07,0x10,0xd6,0x62,0xd8,0x0a,0x0e,0x04, -0x04,0x7b,0xbd,0xc6,0x14,0x08,0x04,0x11,0x0f,0xc2,0xb6,0x02,0x9a,0x01,0xe9,0x3b,0x58,0x20,0x36,0xfd,0xda,0x02,0x20,0x18,0x46,0x40,0x6a,0xfe,0x2c,0x03,0x00,0xfe,0x08,0x32,0x2c,0x3e,0x24,0x01,0xf4,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x08,0x01,0x0a,0x00,0x0a,0x01,0x06,0xb3, -0x0a,0x01,0x07,0x11,0xb8,0x01,0x0c,0xb3,0x10,0x10,0x13,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x01,0x26,0x27,0x23,0x17,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x27,0x11,0x33,0x03,0x06,0x8d,0xfe,0xb2,0x15,0x1c,0x04,0x02,0x7d,0x93,0x01,0x48,0x15,0x1c, -0x05,0x03,0x7d,0x02,0x9a,0x01,0xfc,0x1f,0x3d,0x6f,0xfe,0x17,0x03,0x00,0xfe,0x0e,0x1f,0x3d,0x6e,0x01,0xe0,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01,0x06,0xb3,0x10,0x07,0x0a,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x13,0x0a,0xb9,0x01,0x0c,0x00,0x08,0x2f, -0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x07,0x33,0x36,0x37,0x01,0x33,0x03,0x06,0x7d,0x03,0x05,0x0d,0x24,0xfe,0xb2,0x8d,0x7d,0x02,0x04,0x0e,0x23,0x01,0x47,0x94,0x02,0x9a,0x01,0xe9,0x6f,0x1e,0x3e,0xfe,0x04,0x03,0x00,0xfe,0x20,0x6e,0x1e, -0x3e,0x01,0xf2,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x03,0x2b,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0e,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0e,0x00,0x06,0x01,0x07,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31, -0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xae,0xa6,0xca,0xd3,0xa9,0xa7,0xca,0xd2,0xa3,0x6c,0x86,0x82,0x6c,0x6c,0x86,0x82,0x02,0x89,0xd9,0xb0,0xb7,0xe1,0xd8,0xb1,0xb5,0xe3,0x02,0xb1,0x9e,0x84,0x83,0x9b,0x9d,0x83,0x83,0x9d,0x00,0x02, -0x00,0x3e,0x02,0x89,0x02,0xcf,0x05,0x9a,0x00,0x1b,0x00,0x27,0x00,0x5c,0xb2,0x12,0x00,0x1c,0xb8,0x01,0x0e,0xb3,0x09,0x09,0x04,0x22,0xbf,0x01,0x0e,0x00,0x17,0x01,0x0b,0x00,0x0e,0x00,0x04,0x01,0x06,0x00,0x0b,0x01,0x0c,0xb6,0x10,0x10,0x14,0x1a,0x05,0x05,0x07,0xb8,0x01,0x0c,0xb5,0x02,0x02,0x12,0x00,0x1a,0x14,0xb8,0x01,0x0c, -0xb3,0x25,0x25,0x29,0x1f,0xb9,0x01,0x0c,0x00,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14, -0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xdd,0x75,0x19,0x7d,0x16,0x9d,0x9e,0x15,0x80,0x16,0x73,0x9e,0xba,0x92,0x92,0xb3,0x01,0x47,0x58,0x6d,0x6e,0x57,0x58,0x6f,0x73,0x04,0x7f,0x35,0x75,0x35,0x3c,0x2e,0x37,0x83,0x83,0x3b,0x2a,0x38,0x39,0x70,0x3a,0x3f,0xa2,0x7a,0x9b,0x96, -0x79,0xa0,0x0a,0x59,0x4b,0x4a,0x5a,0x58,0x4c,0x48,0x5c,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x02,0x83,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x35,0xb9,0x00,0x00,0x01,0x0e,0xb3,0x0b,0x0b,0x03,0x02,0xbe,0x01,0x0a,0x00,0x0a,0x01,0x0e,0x00,0x03,0x01,0x06,0x00,0x06,0x01,0x0c,0xb4,0x0e,0x0e,0x12,0x0b,0x01,0xb9,0x01,0x0c,0x00,0x02, -0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x23,0x11,0x33,0x20,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xfe,0x83,0xef,0x01,0x19,0xa1,0x86,0x5e,0x54,0xaa,0xa4,0x03,0xa6,0xfe,0xf4,0x03,0x00,0xf2,0x71,0x91,0x01,0x83,0xfe,0xed,0x8e,0x85,0x00,0x02,0x00,0x7b, -0x02,0x9a,0x02,0xa4,0x05,0x9a,0x00,0x11,0x00,0x18,0x00,0x42,0xb1,0x0f,0x05,0xb8,0x01,0x0e,0xb4,0x13,0x13,0x08,0x00,0x07,0xbc,0x01,0x0a,0x00,0x12,0x01,0x0e,0x00,0x08,0x01,0x06,0xb4,0x0f,0x13,0x00,0x00,0x0c,0xb8,0x01,0x0c,0xb4,0x16,0x16,0x1a,0x13,0x06,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f, -0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xa4,0x96,0x5c,0x2a,0x4a,0x40,0x83,0x01,0x00,0x7f,0x89,0xae,0x37,0x29,0xfe,0xc9,0x68,0x94,0x90,0x02,0x9a,0xd2,0x61,0xfe, -0xcd,0x03,0x00,0x73,0x65,0xa8,0x22,0x02,0x16,0x59,0x01,0xa2,0xeb,0x78,0x73,0x00,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x48,0x05,0x9a,0x00,0x07,0x00,0x2d,0xbe,0x00,0x03,0x01,0x0a,0x00,0x01,0x00,0x04,0x01,0x0e,0x00,0x06,0x01,0x06,0xb4,0x00,0x03,0x05,0x05,0x02,0xb8,0x01,0x0c,0xb3,0x03,0x03,0x09,0x08,0x11,0x12,0x39,0x2f,0xf1, -0xc0,0x2f,0x10,0xc4,0x00,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x02,0x48,0xde,0x82,0xde,0x02,0x3e,0x05,0x29,0xfd,0x71,0x02,0x8f,0x71,0x00,0x00,0x01,0x00,0x74,0x02,0x89,0x02,0xdb,0x05,0x9a,0x00,0x0d,0x00,0x2b,0x41,0x09,0x00,0x09,0x01,0x0e,0x00,0x02,0x01,0x0b,0x00,0x0d,0x00,0x05,0x01,0x06, -0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0xdb,0xfe,0xc5,0xfe,0xd4,0x84,0xb0,0xb0,0x83,0x03,0xd3,0xfe,0xb6,0x01,0x3f,0x01,0xd2,0xfe,0x35,0xd5,0xd5,0x01, -0xcb,0x00,0x00,0x01,0x00,0x10,0x02,0x9a,0x04,0x25,0x05,0x9a,0x00,0x1b,0x00,0x15,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x06,0xb2,0x00,0x1d,0x0b,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37, -0x13,0x04,0x25,0xc7,0x9e,0x8f,0x0a,0x02,0x04,0x05,0x0a,0x95,0x9e,0xcf,0x92,0x85,0x09,0x03,0x07,0x02,0x0e,0x9c,0x88,0x8e,0x0a,0x04,0x06,0x02,0x0c,0x82,0x05,0x9a,0xfd,0x00,0x02,0x0e,0x25,0x2d,0x2c,0x24,0xfd,0xf0,0x03,0x00,0xfd,0xdf,0x26,0x2a,0x1f,0x31,0x02,0x21,0xfd,0xda,0x26,0x25,0x19,0x35,0x02,0x23,0x00,0x02,0x00,0x3e, -0x02,0x89,0x02,0x1e,0x04,0xcf,0x00,0x14,0x00,0x1d,0x00,0x61,0x40,0x0c,0x02,0x05,0x16,0x0f,0x30,0x11,0x17,0x48,0x0f,0x0f,0x0d,0x16,0xb8,0x01,0x0d,0xb4,0x40,0x0b,0x12,0x05,0x0b,0xb8,0x01,0x0d,0xb2,0x30,0x30,0x1b,0x41,0x0b,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0d,0x00,0x12,0x01,0x09,0x00,0x00, -0x01,0x0c,0xb6,0x16,0x0b,0x01,0x01,0x1f,0x0f,0x19,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33, -0x32,0x15,0x07,0x35,0x07,0x06,0x15,0x14,0x33,0x32,0x36,0x02,0x1e,0x7e,0x02,0x38,0x76,0x53,0x5f,0xc2,0xa0,0x6f,0x64,0x59,0x56,0x76,0xde,0x7e,0x79,0x6d,0x5e,0x3c,0x4c,0x02,0x9a,0x50,0x61,0x59,0x4b,0x9b,0x1c,0x16,0x72,0x3f,0x71,0x31,0xd7,0x81,0x2f,0x10,0x0e,0x4e,0x50,0x4e,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x48,0x04,0xcf, -0x00,0x14,0x00,0x1d,0x00,0x61,0xb9,0x00,0x04,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0c,0x15,0x5f,0x15,0x01,0x15,0x40,0x18,0x1b,0x48,0x15,0x0f,0x02,0x41,0x09,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x0a,0x01,0x08,0x00,0x1a,0x01,0x0d,0x00,0x0f,0x01,0x09,0xb2,0x04,0x04,0x12,0xb8,0x01,0x0c,0xb5, -0x18,0x18,0x1f,0x15,0x00,0x0b,0xb9,0x01,0x0c,0x00,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x13,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35, -0x34,0x23,0x22,0x06,0x15,0xe6,0x6e,0x64,0x58,0x54,0x76,0xe0,0x80,0x02,0x37,0x77,0x52,0x60,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x03,0x5e,0x72,0x3f,0x71,0x31,0xd7,0x01,0x5e,0x50,0x61,0x5c,0x48,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x41, -0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x10,0x01,0x08,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb5,0x11,0x0e,0x01,0x01,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31, -0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46, -0x5c,0xc2,0xb6,0x5e,0x00,0x03,0x00,0x48,0x02,0x89,0x03,0xa2,0x04,0xcf,0x00,0x22,0x00,0x2b,0x00,0x30,0x00,0xa9,0x40,0x09,0x1a,0x0a,0x0c,0x18,0x15,0x15,0x13,0x10,0x04,0xb8,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0d,0x23,0x5f,0x23,0x01,0x23,0x40,0x18,0x1b,0x48,0x23,0x1d,0x02,0x10,0xb8,0x01, -0x0d,0x40,0x0c,0x03,0x2d,0x13,0x2d,0x23,0x2d,0x03,0x2d,0x2d,0x13,0x0c,0x02,0xb8,0x01,0x0d,0xb2,0x07,0x07,0x2f,0xbc,0x01,0x0d,0x00,0x0c,0x01,0x0b,0x00,0x28,0x01,0x0d,0xb3,0x1d,0x1d,0x13,0x18,0xb8,0x01,0x09,0xb5,0x00,0x09,0x1a,0x2c,0x04,0x23,0xb8,0x01,0x0c,0xb6,0x11,0x11,0x20,0x10,0x04,0x04,0x20,0xb8,0x01,0x0c,0xb4,0x26, -0x26,0x32,0x15,0x2d,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x10,0xed,0x3f,0xed,0x33,0x10,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x39,0x31,0x30,0x01, -0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x07,0x23,0x16,0x33,0x32,0x02,0x40,0x6e,0x64,0x58,0x54,0x76,0x7e,0x32,0x04,0x48,0x6a,0x72,0x80,0x01,0x78, -0x08,0x9c,0x5c,0x4e,0x4a,0x73,0x97,0x44,0x04,0x43,0x8a,0x58,0x6f,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x80,0xfe,0x02,0x7a,0x78,0x03,0x5e,0x72,0x3f,0x71,0x31,0x50,0x50,0x93,0x7a,0x43,0x8f,0x35,0x6f,0x2d,0x6b,0x6b,0x5e,0x46,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x6b,0x8b,0x00,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x89, -0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x06,0x01,0x09,0x15,0x41,0x0d,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x03,0x01,0x0a,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x04,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x12,0x06,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f, -0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0x43,0x03,0x2a,0xfe,0xaa,0x61, -0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x10,0x01,0x06,0x00,0x10,0x01,0x0c,0xb5,0x12,0x02, -0x0f,0x0f,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68, -0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x92,0x8e,0x42,0x54,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x01,0x49,0xfd,0xd4,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x35,0x04,0xcf,0x00,0x11,0x00,0x16,0x00,0x4e,0xb3,0x05,0x05,0x03,0x01,0xb8,0x01,0x0d,0x40,0x0b,0x0c,0x16,0x1c,0x16, -0x2c,0x16,0x03,0x16,0x16,0x0e,0x03,0xbe,0x01,0x0d,0x00,0x08,0x01,0x0b,0x00,0x14,0x01,0x0d,0x00,0x0e,0x01,0x09,0xb2,0x05,0x05,0x00,0xb8,0x01,0x0c,0xb4,0x12,0x12,0x18,0x16,0x01,0xb9,0x01,0x0c,0x00,0x0b,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30, -0x01,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x07,0x02,0x35,0xfe,0x87,0x0a,0x9a,0x5c,0x4e,0x48,0x78,0x7e,0x8e,0x92,0x72,0x71,0x82,0x7b,0x02,0x78,0x78,0x0c,0x03,0x7f,0x8f,0x35,0x6f,0x2d,0x97,0x88,0x81,0xa6,0x91,0x7c,0x20,0x8a,0x8a,0x00,0x00,0x02,0x00,0x48, -0x02,0x87,0x02,0x40,0x04,0xd1,0x00,0x11,0x00,0x16,0x00,0x4c,0xb3,0x05,0x05,0x03,0x00,0xb8,0x01,0x0d,0x40,0x0b,0x03,0x13,0x13,0x13,0x23,0x13,0x03,0x13,0x13,0x03,0x15,0x41,0x09,0x01,0x0d,0x00,0x0e,0x01,0x0b,0x00,0x03,0x01,0x0d,0x00,0x08,0x01,0x09,0x00,0x0b,0x01,0x0c,0xb5,0x01,0x12,0x12,0x18,0x05,0x13,0xb9,0x01,0x0c,0x00, -0x00,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x13,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x05,0x23,0x16,0x33,0x32,0x48,0x01,0x78,0x09,0x9b,0x5c,0x4e,0x4a,0x77,0x7c,0x91,0x94,0x70,0x72,0x82,0x01,0x78, -0xfe,0x02,0x7a,0x74,0x03,0xd9,0x91,0x35,0x6f,0x2d,0x99,0x88,0x81,0xa8,0x94,0x7b,0x1f,0x8d,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xdb,0x04,0xcf,0x00,0x1e,0x00,0x5b,0xb1,0x06,0x17,0xb8,0x01,0x0d,0xb4,0x40,0x16,0x0c,0x02,0x16,0xb8,0x01,0x0d,0xb3,0x30,0x30,0x1e,0x1c,0xbf,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0f,0x00,0x11,0x01, -0x0d,0x00,0x0c,0x01,0x09,0x40,0x0b,0x06,0x04,0x17,0x17,0x1a,0x0f,0x00,0x00,0x20,0x04,0x13,0xbc,0x01,0x0c,0x00,0x09,0x00,0x1a,0x01,0x0c,0x00,0x04,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x35, -0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x15,0x14,0x33,0x32,0x37,0x01,0xdb,0x49,0x58,0xfc,0x7a,0x66,0x80,0x6e,0x4d,0x40,0x3e,0x49,0x71,0x8b,0x32,0x34,0x9e,0x88,0x55,0x3e,0x02,0xa4,0x1b,0xa4,0x6f,0x1c,0x04,0x20,0x59,0x48,0x52,0x17,0x68,0x1c,0x41,0x47,0x63, -0x4c,0x49,0x1c,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x54,0xb1,0x01,0x11,0xb8,0x01,0x0d,0xb5,0x10,0x10,0x16,0x06,0x09,0x0b,0xbf,0x01,0x0d,0x00,0x06,0x01,0x0b,0x00,0x18,0x00,0x16,0x01,0x0d,0x00,0x1b,0x01,0x09,0xb6,0x01,0x1d,0x11,0x11,0x14,0x18,0x0d,0xb8,0x01,0x0c,0xb2,0x03,0x03,0x1d,0xb8, -0x01,0x0c,0xb4,0x14,0x14,0x20,0x09,0x18,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, -0x36,0x33,0x32,0x15,0x14,0x01,0x64,0x67,0x81,0x6d,0x4d,0x40,0x3e,0x49,0x71,0x8c,0x30,0x32,0x9e,0x87,0x55,0x3e,0x49,0x59,0xfb,0x03,0xa0,0x04,0x1f,0x5a,0x49,0x51,0x17,0x68,0x1c,0x41,0x47,0x63,0x4c,0x49,0x1c,0x64,0x1b,0xa4,0x6f,0x00,0x00,0x02,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x00,0x18,0x00,0x23,0x00,0x4e,0xb3,0x05, -0x05,0x0d,0x07,0xb8,0x01,0x0d,0xb5,0x02,0x02,0x15,0x0a,0x13,0x21,0x41,0x0b,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x18,0x01,0x08,0x00,0x1d,0x01,0x0d,0x00,0x13,0x01,0x09,0x00,0x18,0x01,0x0c,0xb5,0x16,0x0a,0x19,0x19,0x25,0x1f,0xb8,0x01,0x0c,0xb1,0x05,0x10,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f, -0xed,0x12,0x39,0x39,0xc4,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0xfe,0xbe,0x62,0x4a,0x58,0x59,0xbf,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e, -0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0xbc,0xfe,0xd8,0x22,0x79,0x31,0xbc,0x30,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46,0x5c,0xc2,0xb6,0x5e,0x00,0x00,0x02,0x00,0x58,0x01,0x94,0x00,0xf6,0x04,0xbe,0x00,0x03,0x00,0x0b,0x00,0x22,0xb4,0x01,0x08,0x40,0x04,0x02,0xb8,0x01,0x08,0xb6,0x01,0x00, -0x06,0x0a,0xff,0x3a,0x00,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0xd4,0x1a,0xdd,0xce,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0xe8,0x82,0x82,0x42,0x4e,0x50,0x4e,0x02,0x9a,0x02,0x24,0xfc,0xd6,0x4b,0x4c,0x4c,0x4b,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x56,0x05,0xc4,0x00,0x0c, -0x00,0x2e,0xb5,0x03,0x08,0x0c,0x03,0x05,0x00,0xbc,0x01,0x0a,0x00,0x0b,0x01,0x08,0x00,0x06,0x01,0x07,0xb5,0x0b,0x00,0x0e,0x0c,0x08,0x03,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x3f,0x33,0x17,0x39,0x31,0x30,0x01,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x02,0x56,0xa0, -0xce,0x02,0x80,0x80,0x02,0xc2,0x9c,0xde,0x02,0x9a,0x01,0x0e,0xfe,0xf2,0x03,0x2a,0xfd,0xfc,0xfe,0xfe,0xfc,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x03,0x9a,0x04,0xcf,0x00,0x1d,0x00,0x59,0xb6,0x01,0x09,0x14,0x19,0x04,0x17,0x11,0xba,0x01,0x0a,0x00,0x12,0x01,0x08,0xb2,0x1b,0x04,0x0c,0xbb,0x01,0x0d,0x00,0x40,0x00,0x17,0x01,0x09, -0xb3,0x19,0x08,0x14,0x00,0xb8,0x01,0x0c,0xb7,0x01,0x0e,0x09,0x11,0x09,0x42,0x14,0x10,0xbb,0x01,0x0c,0x00,0x11,0x00,0x08,0x01,0x0c,0xb3,0x09,0x09,0x1f,0x1e,0x11,0x12,0x39,0x2f,0xe1,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x00,0x18,0x3f,0x1a,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x11, -0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x03,0x9a,0x80,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02, -0x24,0x52,0x63,0x6f,0x6f,0xe3,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x40,0xb1,0x05,0x07,0x41,0x0a,0x01,0x0d,0x00,0x02,0x00,0x11,0x01,0x0a,0x00,0x12,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x17,0x01,0x09,0xb3,0x05,0x05,0x10,0x00,0xb8,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x14,0x10,0xb9,0x01,0x0c,0x00,0x11, -0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xd4,0xfd,0xc6,0x31,0x30,0x01,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0xd9,0x2b,0x25,0x22,0x23,0x65,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02, -0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0d,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9, -0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0x7e,0x49,0x57,0x58,0x48,0x49,0x57,0x57,0x02,0x89,0x9e,0x7f,0x87,0xa2, -0x9f,0x7e,0x88,0xa1,0x01,0xdb,0x62,0x56,0x56,0x62,0x62,0x56,0x58,0x60,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xcf,0x00,0x15,0x00,0x2e,0xb1,0x01,0x03,0x41,0x0a,0x01,0x0d,0x00,0x14,0x01,0x0b,0x00,0x0b,0x00,0x09,0x01,0x0d,0x00,0x0e,0x01,0x09,0x00,0x11,0x01,0x0c,0xb4,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f, -0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x35,0x45,0x52,0x60,0x5a,0x50,0x49,0x39,0x45,0x56,0x7c,0x97,0xa4,0x88,0x50,0x02,0xa2,0x78,0x26,0x62,0x56,0x56,0x62,0x28,0x70,0x23,0x9f,0x80,0x8b,0x9c,0x00, -0x00,0x01,0x00,0x3e,0x03,0xac,0x02,0x7f,0x04,0xcf,0x00,0x0d,0x00,0x26,0xb2,0x01,0x07,0x04,0xbc,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, -0x32,0x16,0x02,0x7f,0x81,0x57,0x49,0x49,0x57,0x80,0xa5,0x81,0x82,0x99,0x03,0xac,0x58,0x60,0x62,0x56,0x84,0x9f,0xa1,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x03,0xac,0x00,0x0d,0x00,0x26,0xb2,0x00,0x06,0x0a,0xbc,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x00,0x01,0x0c,0xb3,0x0d,0x0d,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x06,0x2f, -0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc4,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0x7f,0xa5,0x82,0x80,0x9a,0x80,0x58,0x48,0x49,0x57,0x03,0xac,0x84,0x9f,0xa0,0x83,0x56,0x62,0x62,0x56,0x00,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x3e, -0xb4,0x03,0x06,0x00,0x09,0x15,0x41,0x0b,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x04,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x11,0x01,0x05,0xb9,0x01,0x0c,0x00,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0xc4,0x31,0x30,0x13,0x23, -0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0xfe,0xc7,0x03,0x1a,0x50,0x61,0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6, -0x60,0x00,0x00,0x01,0x00,0x0a,0x02,0x8e,0x01,0x68,0x05,0x62,0x00,0x13,0x00,0x45,0xb1,0x13,0x11,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb4,0x0a,0x0b,0x0e,0x0b,0x05,0xba,0x01,0x0d,0x00,0x08,0x01,0x08,0xb7,0x0d,0x13,0x13,0x15,0x05,0x0e,0x05,0x0b,0xb8,0x01,0x0c,0x40,0x09,0x07,0x10,0x08,0x20,0x08,0x30,0x08,0x03,0x08,0x2f,0x5d, -0xcd,0xe1,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x22,0x40,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0xa0,0x12,0xbe,0x01,0x08,0x6a,0x80,0x24,0xa4, -0x6a,0xfe,0x5e,0x10,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x36,0xb3,0x11,0x02,0x08,0x0c,0x41,0x0a,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x08,0x00,0x02,0x00,0x11,0x01,0x0c,0xb3,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f, -0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x02,0x9a,0x56,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x01,0x00,0x3e,0x02,0xb8,0x02,0x72,0x04,0xa2,0x00,0x12, -0x00,0x2e,0x40,0x15,0x00,0x0e,0x40,0x01,0x09,0x0d,0x08,0x09,0x08,0x42,0x08,0x09,0x0c,0x00,0x09,0x0a,0x0f,0x04,0x04,0x14,0x09,0x2f,0x12,0x39,0x2f,0xdd,0xc4,0x12,0x39,0x39,0x00,0x2f,0xcd,0x2b,0x00,0x18,0x10,0xc4,0x10,0xd6,0x1a,0xed,0x31,0x30,0x13,0x35,0x21,0x32,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15, -0x14,0x06,0x23,0x3e,0x01,0x32,0x98,0x54,0x40,0xfe,0xca,0x02,0x24,0x4c,0x5c,0x7c,0x6a,0x02,0xb8,0x80,0x6c,0x38,0x47,0x7f,0x7f,0x02,0x3f,0x69,0x58,0x69,0x00,0x01,0x00,0x60,0x02,0x89,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x67,0x40,0x09,0x02,0x07,0x14,0x1d,0x04,0x0c,0x18,0x05,0x10,0xbf,0x01,0x0d,0x00,0x40,0x00,0x09,0x01,0x0b, -0x00,0x00,0x01,0x0a,0x00,0x0c,0x01,0x08,0xb4,0x07,0x14,0x02,0x02,0x1d,0xb8,0x01,0x0c,0xb6,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xb8,0x01,0x0c,0xb6,0x00,0x0c,0x01,0x0b,0x03,0x0c,0x15,0xb8,0x01,0x0c,0xb3,0x14,0x1e,0x1f,0x14,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x2b,0x01,0x10,0xf0, -0xe1,0xc1,0x18,0x2f,0x12,0x39,0x00,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41, -0x80,0x68,0x32,0x40,0x80,0x02,0x9a,0x52,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x35,0x04,0xbe,0x00,0x0b,0x00,0x1b,0xb3,0x07,0x00,0x03,0x02,0xba,0x01,0x0a,0x00,0x03,0x01,0x08,0xb2,0x00,0x0d,0x03,0x2f,0x10,0xc6,0x00,0x3f,0x3f, -0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x35,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x04,0xbe,0xfd,0xdc,0x02,0x24,0xfe,0x8e,0x2f,0x25,0x22,0x32,0x01,0x72,0x00,0x01,0x00,0x14,0x02,0x89,0x02,0x79,0x04,0xcf,0x00,0x1b,0x00,0x4a,0x40,0x0b,0x17,0x0d,0x0b,0x04, -0x06,0x12,0x1b,0x09,0x19,0x02,0x0b,0xbd,0x01,0x0d,0x00,0x40,0x00,0x06,0x01,0x0b,0x00,0x12,0x01,0x09,0x40,0x10,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x15,0x1d,0x0f,0x08,0x0f,0x42,0x08,0x0f,0x2f,0x2f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe2,0x12,0x17,0x39,0x00,0x3f,0x3f,0x1a,0xfd,0x39,0x39,0xd6,0xc4,0x11,0x12,0x39,0x12, -0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x02,0x79,0x3c,0x49,0x60,0x4e,0x4f,0x5b,0x46,0x42,0x43,0x3f,0x36,0x28,0x77,0x6e,0x5d,0x5c,0x6c,0x78,0x2a,0x36,0x41,0x40,0x02,0xb4,0x2b,0x3b,0x3b,0x2b,0x79,0x39, -0x20,0x6b,0x85,0x57,0x74,0x71,0x56,0x84,0x6e,0x22,0x37,0x00,0x00,0x02,0x00,0x60,0x01,0xa4,0x02,0x74,0x05,0xc4,0x00,0x12,0x00,0x25,0x00,0x63,0xb3,0x02,0x11,0x0c,0x13,0xb8,0x01,0x0d,0xb4,0x40,0x14,0x06,0x11,0x14,0xb8,0x01,0x0d,0xb3,0x1e,0x30,0x1d,0x1f,0xbe,0x01,0x0d,0x00,0x11,0x01,0x0b,0x00,0x1a,0x01,0x0d,0x00,0x06,0x01, -0x07,0xb6,0x0c,0x0e,0x13,0x13,0x22,0x1d,0x18,0xb8,0x01,0x0c,0xb2,0x09,0x09,0x0e,0xb8,0x01,0x0c,0xb4,0x22,0x22,0x27,0x1d,0x01,0xb9,0x01,0x0c,0x00,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x10,0xc4,0x31,0x30,0x13, -0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xdf,0x7f,0x8c,0x74,0x70,0x86,0x7f,0x9d,0x93,0x79,0x4a,0x09,0x1d,0x42,0x51,0x79,0x7f,0x3b,0x46,0x42,0x52,0x60,0x50,0x02,0xa6,0xfe,0xfe, -0x03,0x14,0x7a,0x92,0x7c,0x5c,0x81,0x2f,0x04,0x2e,0x93,0x67,0x87,0x01,0x77,0x62,0x46,0x3a,0x7c,0xa2,0xfe,0x5a,0x22,0x46,0x3a,0x40,0x4c,0x00,0x00,0x01,0xff,0xec,0x01,0xa4,0x02,0x23,0x04,0xbe,0x00,0x13,0x00,0x36,0xb4,0x03,0x0a,0x05,0x07,0x00,0xbb,0x01,0x0a,0x00,0x10,0x00,0x07,0x01,0x08,0xb6,0x0a,0x00,0x05,0x07,0x07,0x00, -0x0d,0xbc,0x01,0x0c,0x00,0x12,0x00,0x00,0x01,0x0c,0x00,0x05,0x2f,0xe1,0xd4,0xe1,0x10,0xc1,0x2f,0x11,0x12,0x39,0x00,0x3f,0x33,0x3f,0x11,0x39,0x39,0xcd,0x31,0x30,0x01,0x14,0x07,0x23,0x36,0x35,0x02,0x03,0x33,0x16,0x17,0x33,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x01,0x50,0x02,0x88,0x0b,0x48,0x9d,0x91,0x75,0x39,0x04,0x75, -0x06,0x80,0x05,0x02,0x83,0xb3,0x2c,0x6e,0x94,0x01,0x06,0x01,0x12,0xda,0xc8,0xa5,0xb1,0x2a,0x22,0x20,0x21,0xe8,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xc4,0x00,0x17,0x00,0x21,0x00,0x4c,0x40,0x09,0x00,0x02,0x0d,0x10,0x18,0x1f,0x06,0x05,0x1d,0xbf,0x01,0x0d,0x00,0x13,0x01,0x0b,0x00,0x08,0x00,0x0a,0x01,0x0d,0x00,0x05, -0x01,0x07,0xb3,0x08,0x08,0x10,0x0c,0xb8,0x01,0x0c,0xb2,0x02,0x16,0x10,0xb8,0x01,0x0c,0xb3,0x1f,0x1f,0x23,0x1a,0xb9,0x01,0x0c,0x00,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14, -0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0xee,0x4a,0x72,0x63,0x5f,0x60,0x5e,0x5b,0x5a,0x8f,0xcb,0xa2,0x83,0x81,0x9b,0x01,0x08,0x88,0x56,0x4a,0xa0,0x48,0x04,0xa0,0x37,0x4e,0x45,0x5a,0x2a,0x75,0x39,0x3b,0x25,0x58,0x7c,0x9c,0x72,0x93,0x8f,0x6f,0xa0,0x3b,0x54,0x80, -0x48,0x52,0x9a,0x36,0x5d,0x00,0x00,0x02,0x00,0x3e,0x01,0xa4,0x03,0x06,0x04,0xcf,0x00,0x15,0x00,0x1d,0x00,0x61,0xb3,0x02,0x1c,0x00,0x0d,0x41,0x0a,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x09,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x40,0x00,0x10,0x01,0x09,0xb4,0x09,0x09,0x0d,0x0b,0x16,0xb8,0x01,0x0c,0xb6,0x13,0x0e,0x01,0x06,0x02, -0x42,0x0b,0xb8,0x01,0x0c,0xb3,0x06,0x1c,0x0d,0x01,0xb8,0x01,0x0c,0xb3,0x02,0x1e,0x1f,0x02,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x18,0x2f,0x00,0x3f,0x1a,0xed,0x3f,0x3f,0xed,0x39,0x39,0xcd,0x31,0x30,0x01,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x37, -0x33,0x06,0x15,0x14,0x17,0x11,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x34,0x26,0x23,0x22,0x15,0x11,0x36,0x01,0xe2,0x80,0x8a,0x9a,0x56,0x86,0x5e,0xa6,0xba,0x68,0x82,0x9e,0x1f,0x3e,0x2f,0x38,0xa5,0x02,0x89,0xe5,0xe5,0x05,0x9c,0x86,0x8a,0x84,0x78,0x90,0xbc,0x06,0x01,0x24,0xb7,0x9b,0x82,0x84,0x9e,0x01,0x1e,0x54,0x62,0x48, -0xfe,0xd8,0x08,0x00,0x00,0x01,0xff,0xf6,0x01,0x94,0x02,0x62,0x04,0xcf,0x00,0x1c,0x00,0x3c,0x40,0x0b,0x06,0x09,0x14,0x17,0x04,0x08,0x16,0x0e,0x0c,0x1c,0x1a,0xb8,0x01,0x0d,0xb3,0x02,0x08,0x11,0x16,0xbc,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x11,0x01,0x09,0xb4,0x16,0x00,0x1e,0x0e,0x08,0x2f,0xc6,0x10,0xd4,0xc4,0x00,0x3f,0xed, -0x3f,0x10,0xd4,0xd4,0xfd,0xc6,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x27,0x27,0x03,0x23,0x13,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x17,0x37,0x33,0x03,0x17,0x16,0x33,0x32,0x37,0x02,0x62,0x20,0x21,0x41,0x4c,0x28,0x47,0xa0,0x8f,0xf0,0x4e,0x29,0x2b,0x13,0x1b,0x1c,0x28,0x6a,0x34,0x3d, -0x7d,0x8c,0xca,0x67,0x2f,0x2e,0x17,0x13,0x01,0x9e,0x0a,0x44,0x5b,0xa8,0xfe,0xc9,0x01,0xb4,0xb0,0x5c,0x0a,0x6c,0x09,0x7b,0x92,0xfc,0xfe,0x8e,0xe6,0x68,0x08,0x00,0xff,0xff,0x00,0x58,0xff,0x42,0x00,0xf6,0x02,0x6c,0x00,0x07,0x07,0xce,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xff,0x42,0x01,0xa8,0x01,0x70,0x00,0x07,0x06,0x79, -0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x5c,0xff,0x31,0x02,0x46,0x01,0x66,0x00,0x07,0x07,0xba,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x0a,0xff,0x42,0x02,0x35,0x01,0x66,0x00,0x07,0x07,0xbd,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x60,0xfe,0x4c,0x02,0x74,0x02,0x6c,0x00,0x07,0x07,0xbf,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xec,0xfe,0x4c, -0x02,0x23,0x01,0x66,0x00,0x07,0x07,0xc0,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xfe,0x4c,0x02,0x89,0x01,0x77,0x00,0x07,0x07,0xcf,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x3e,0xfe,0x4c,0x03,0x06,0x01,0x77,0x00,0x07,0x07,0xc2,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xf6,0xfe,0x3c,0x02,0x62,0x01,0x77,0x00,0x07,0x07,0xc3,0x00,0x00, -0xfc,0xa8,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0c,0x00,0x16,0x40,0x09,0x00,0x07,0x09,0xf2,0x03,0x00,0x0c,0x07,0x06,0x2f,0xcd,0xd4,0xcd,0x00,0x2f,0xfd,0xd6,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x03,0xc4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68, -0x0c,0x05,0xf2,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x02,0x00,0x58,0x02,0x9a,0x00,0xf6,0x05,0xc4,0x00,0x07,0x00,0x0b,0x00,0x25,0xb3,0x04,0x00,0x40,0x0a,0xba,0x01,0x08,0x00,0x09,0x01,0x0a,0xb6,0x09,0x08,0x02,0x06,0xff,0x3a,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0x3f,0x1a,0xde,0xcd,0x31,0x30,0x13, -0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0x82,0x82,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x6d,0x02,0x24,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x0e,0x00,0x19,0x00,0x31,0xb1,0x02,0x13,0x41,0x09,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x17,0x01,0x0d,0x00,0x07,0x01,0x09,0x00, -0x0a,0x01,0x0c,0xb4,0x15,0x15,0x1b,0x0f,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0xc6,0x31,0x30,0x13,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x9a,0x7d,0x7a,0x92,0x8f,0x6c, -0x72,0x36,0x51,0x40,0x91,0x91,0x40,0x51,0x02,0xdd,0xfe,0xc7,0x02,0x00,0x8b,0xa0,0x9a,0x7d,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x33,0x40,0x1c,0x9d,0x02,0x01,0x5b,0x02,0x6b,0x02,0x7b,0x02,0x03,0x49,0x02,0x01,0x38,0x02,0x01,0x05,0x02,0x06,0x08, -0x03,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x54,0x02,0xe3,0x9c,0x05,0x00,0xfd,0x8f,0x6a,0x02,0xc1,0x00,0x02,0x00,0x8f,0xff,0xe7,0x06,0xb2,0x04,0x19,0x00,0x20, -0x00,0x27,0x00,0xe1,0x40,0x34,0x69,0x23,0x79,0x23,0x02,0xe6,0x1e,0xf6,0x1e,0x02,0x55,0x14,0x65,0x14,0x02,0xaa,0x0f,0x01,0xcf,0x26,0xdf,0x26,0x02,0x9b,0x26,0xfb,0x26,0x02,0x24,0x26,0x34,0x26,0x02,0x05,0x17,0x01,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0x03,0x09,0x0f,0x19,0x0f,0x02,0x5b,0x0a,0x01,0x02,0xb8,0xff,0xe8,0x40,0x0e,0x13, -0x16,0x48,0x24,0x02,0x34,0x02,0x44,0x02,0x03,0xe2,0x1b,0x01,0x1b,0xb8,0xff,0xe0,0xb3,0x19,0x1c,0x48,0x1b,0xb8,0xff,0xe0,0x40,0x51,0x0b,0x0e,0x48,0xcb,0x0b,0x01,0x5b,0x0b,0x01,0x1b,0x0b,0x1d,0x0e,0x27,0x95,0xe0,0x01,0xf0,0x01,0x02,0x01,0x01,0x09,0x24,0x95,0x1d,0x10,0x19,0x11,0x0f,0x07,0xec,0x00,0x06,0x10,0x06,0x02,0x06, -0x04,0x95,0x09,0x16,0x15,0x95,0x0e,0x16,0x27,0x01,0x0b,0x03,0x1a,0x84,0x5f,0x19,0x7f,0x19,0x02,0x20,0x19,0xa0,0x19,0x02,0x19,0x19,0x11,0x06,0x40,0x0f,0x12,0x48,0x06,0x21,0x83,0x00,0x29,0x12,0x84,0x00,0x11,0x01,0x11,0x2f,0x5d,0xe1,0x10,0xde,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x3f,0xed,0x3f,0xfd, -0xd6,0x5d,0xed,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x5d,0x5d,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x2b,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33, -0x15,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0xb2,0xfd,0x2f,0x05,0xae,0x99,0xac,0x91,0x8a,0xc7,0xfe,0xd9,0x71,0x2a,0xba,0x8d,0xfe,0x7f,0xa4,0xfe,0x7c,0x90,0xa4,0x7d,0xbb,0xc2,0xd7,0xa8,0x02,0x86,0x78,0x71,0xa3,0x15,0x01,0xd7,0xae,0xb6,0x70,0x99,0x63,0xea,0x66,0x84,0x01,0xb5,0x02,0x64,0xfd,0xb6, -0xfe,0xbd,0xb3,0x94,0x02,0x46,0x7b,0x94,0xfe,0xf8,0xe4,0x35,0x91,0x9a,0xa0,0x8b,0x00,0x01,0x00,0x74,0x00,0x00,0x04,0x8b,0x05,0xb4,0x00,0x27,0x00,0x57,0x40,0x2e,0x1d,0x91,0x02,0x02,0x1e,0x00,0x25,0x92,0x40,0x22,0x1e,0x00,0x22,0x92,0x28,0x30,0x21,0x92,0x1e,0x1e,0x0c,0x27,0x92,0x00,0x10,0x13,0x92,0x0c,0x04,0x0f,0x0f,0x1d, -0x22,0x26,0x7e,0x01,0x01,0x07,0x24,0x20,0x00,0x00,0x29,0x18,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0x32,0x33,0xc0,0x2f,0x31,0x00,0x3f,0xfd,0xc6,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, -0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x8b,0xfd,0xb6,0x6b,0xab,0x77,0x40,0x49,0x8a,0xc5,0x7c,0x44,0x7d,0x34,0x39,0x80,0x42,0x55,0x86,0x5b,0x30,0x24,0x49,0x6e,0x4a,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x01,0x7e,0x03,0x54, -0x8d,0xb9,0x69,0x7a,0xce,0x95,0x53,0x19,0x19,0xac,0x28,0x26,0x3f,0x6d,0x93,0x53,0x4c,0x81,0x63,0x3f,0x0b,0x01,0xe8,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x00,0x00,0x03,0x00,0x76,0xff,0xb5,0x04,0x18,0x06,0x3d,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x97,0x40,0x1d,0x23,0x1e,0x1b,0x1d,0x20,0x22,0x25,0x04,0x1b,0x0e,0x31,0x3b,0x3e,0x04, -0x3f,0x15,0x01,0x15,0x10,0x92,0x1b,0x13,0x04,0x07,0x0a,0x2d,0x04,0x01,0x0b,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x0f,0x48,0x0b,0x37,0x0d,0x32,0x3a,0x3f,0x04,0x37,0x05,0x2e,0x37,0x92,0x01,0x32,0x3a,0x3f,0x0d,0x04,0x0b,0x31,0x3b,0x3e,0x0e,0x04,0x16,0x2f,0x2d,0x01,0x04,0x07,0x04,0x0b,0x25,0x22,0x20,0x1d,0x04,0x16,0x28,0x05,0x06, -0x1e,0x03,0x1f,0x00,0x23,0x2e,0x03,0x24,0x28,0x0b,0x16,0x16,0x42,0x2f,0x7d,0x28,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x10,0xd4,0x17,0x32,0xc4,0x17,0x32,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0xcd,0x32,0x11,0x17,0x33,0x10,0xc4,0x2b,0x11,0x17,0x33,0x3f,0xfd,0xc6,0x5d,0x17,0x33, -0x11,0x17,0x33,0x10,0xce,0x32,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x13,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x01,0x14,0x17,0x01,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16, -0x17,0x01,0x26,0x03,0x36,0x2b,0x1a,0x2f,0x16,0x2b,0x73,0x31,0x10,0x20,0x11,0x3c,0x30,0xfe,0xa3,0x42,0x52,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x5a,0x50,0x17,0x71,0x23,0x2a,0x27,0x33,0x71,0x4d,0x4c,0x54,0x52,0x91,0xc7,0x76,0x2d,0xfe,0x63,0x34,0x01,0x0b,0x48,0x76,0x54,0x2d,0x01,0xdf,0x0a,0x12,0x09,0xfe,0xc4, -0x11,0x25,0x14,0x01,0x52,0x1c,0x06,0x3d,0x8b,0x02,0x02,0x8f,0xa2,0x04,0x0a,0x05,0xa5,0x1b,0x10,0xfb,0x82,0x1c,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x18,0x4b,0x74,0x18,0x1e,0xaa,0x01,0x00,0x5e,0x01,0x00,0x9f,0x9a,0x01,0x03,0xc5,0x7f,0x15,0x95,0xfc,0x7f,0xa6,0x80,0x03,0x71,0x1d,0x6d,0x98,0xbd,0x01,0xfe,0x01,0x01, -0xfb,0xf0,0x16,0x25,0x11,0x04,0x5b,0x03,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0x18,0x05,0xb2,0x00,0x3e,0x00,0x5e,0x40,0x16,0x38,0x37,0x3b,0x00,0x02,0x95,0x3b,0x35,0x35,0x1f,0x15,0x34,0x07,0x3f,0x0f,0x01,0x0f,0x0a,0x92,0x15,0x13,0x25,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x0f,0x48,0x25,0x2a,0x92,0x1f,0x04,0x38,0x00,0x37,0x07,0xb8, -0x01,0x2e,0x40,0x0b,0x34,0x34,0x1a,0x00,0x25,0x10,0x10,0x40,0x2f,0x7d,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0x12,0x39,0x2f,0xe1,0x32,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xfd,0xc6,0x5d,0x33,0x33,0x11,0x12,0x39,0x2f,0xd4,0xfd,0xc6,0x11,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x16,0x32,0x33,0x32, -0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x18,0x27,0x48,0x5f,0x3f,0x3f,0x05,0x0c,0x06,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x83, -0xdc,0x9f,0x59,0x65,0xb1,0xf0,0x8b,0x2c,0x47,0x40,0x3d,0x21,0x27,0x42,0x40,0x43,0x27,0x69,0xaf,0x80,0x47,0x27,0x48,0x66,0x3f,0x92,0x04,0x20,0x80,0x50,0x1d,0x2b,0x10,0x03,0x1c,0x1e,0x59,0x58,0x9a,0xfe,0x86,0x01,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x66,0xba,0x01,0x08,0xa2,0xac,0x01,0x1b,0xca,0x6f,0x05,0x0a,0x10, -0x0b,0xa5,0x12,0x19,0x10,0x08,0x5b,0xa3,0xe3,0x89,0x63,0xae,0x8c,0x68,0x1e,0x03,0x18,0xbd,0x61,0x6c,0x07,0x06,0x00,0x01,0x00,0xa6,0xff,0x12,0x06,0x54,0x05,0x0c,0x00,0x2e,0x00,0x8c,0x40,0x48,0x10,0x13,0x16,0x03,0x12,0x26,0x2e,0x01,0x15,0x12,0x06,0x20,0x2d,0x2b,0x0f,0x0c,0x95,0x01,0x24,0x23,0x19,0x95,0x01,0x26,0x10,0x21, -0x0f,0x2d,0x16,0x15,0x2e,0x15,0x2d,0x16,0x2e,0x15,0x13,0x10,0x0f,0x01,0x14,0x00,0x01,0x0f,0x10,0x13,0x04,0x14,0x2e,0x00,0x00,0x06,0x14,0x15,0x20,0x2b,0x2b,0x17,0x11,0x84,0x12,0x12,0x20,0x06,0x84,0x05,0x05,0x30,0x23,0x1f,0x84,0x20,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0x33,0xc1,0x2f,0x10,0xc6,0x32,0x10, -0xc0,0x2f,0x32,0x12,0x00,0x17,0x39,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x31,0x00,0x3f,0x3f,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x33,0x33,0x2f,0x33,0x33,0xc6,0x10,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03, -0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x85,0x87,0x04,0x01,0x52,0xa4,0x11,0x32,0x5a,0x48,0x07,0x0d,0x07,0xe1,0xa4,0xf5,0x99,0x01,0x8e,0xe9,0x3f,0x5e,0x3d,0x1e,0xa4,0xa4,0x04,0x6e,0xd0,0x32,0x5d,0x4d,0x38,0x0e,0x3e, -0x5f,0x9f,0x05,0x0c,0xf4,0xfe,0x5f,0xfd,0x89,0x02,0x4c,0x46,0x76,0x56,0x30,0x01,0x01,0xfe,0x69,0xfe,0x0b,0xcc,0xfe,0x46,0x02,0xd0,0x7e,0x01,0x2e,0x39,0x5c,0x75,0x3c,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1e,0x38,0x4e,0x30,0x73,0x34,0x01,0x21,0x00,0x00,0x05,0x00,0x23,0x00,0x00,0x05,0x0a,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x23, -0x00,0x29,0x00,0x31,0x00,0x98,0x40,0x5a,0x24,0x25,0x2a,0x2b,0x04,0x15,0x02,0x0f,0x13,0x29,0x03,0x0c,0x1c,0x20,0x03,0x17,0x92,0x18,0x0b,0x1f,0x23,0x03,0x04,0x08,0x2e,0x03,0x1b,0x92,0x2f,0x00,0x01,0x90,0x00,0xa0,0x00,0xc0,0x00,0xd0,0x00,0x04,0x00,0x00,0x02,0x11,0x15,0x06,0x02,0x03,0x12,0x21,0x22,0x2f,0x04,0x2a,0x11,0x29, -0x1c,0x1f,0x04,0x04,0x03,0x24,0x1b,0x17,0x15,0x19,0x01,0x15,0x0c,0x08,0x0a,0x0e,0x25,0x1e,0x13,0x20,0x2a,0x03,0x14,0x03,0x15,0x11,0x06,0x7f,0x10,0x10,0x33,0x14,0x7f,0x15,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x11,0x17,0x33,0x32,0x32,0xc6,0x32,0x33,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x12,0x17,0x39,0x11,0x12, -0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x5d,0x5d,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x01,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x21,0x05,0x21, -0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x23,0x99,0xcb,0xf1,0x01,0x5f,0x97,0x9c,0x9c,0x9c,0x9c,0xc2,0xfe,0xfb,0xfe,0xac,0x97,0x99,0x99,0x99,0x02,0xde,0xd6,0xfe,0xe7,0xfe,0x95,0x01,0x0f,0x44,0xcb,0x02,0x88,0x03,0x07,0x92,0xfe,0x0c,0x05,0x07,0x85,0x60,0x1b,0x03,0xae,0x01,0xec,0xfe, -0x14,0x01,0xec,0xfe,0x14,0x8d,0x88,0x8c,0xfd,0xf3,0x02,0x0d,0xfd,0xf3,0x02,0x0d,0x8c,0x88,0x88,0x88,0x88,0x88,0xfd,0xbc,0x31,0xa0,0x5f,0x02,0xbb,0x2e,0x94,0x58,0xc2,0x37,0x00,0x03,0x00,0xbc,0xff,0xe8,0x06,0x77,0x05,0x9a,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x84,0x40,0x12,0x2c,0x47,0x51,0x36,0x60,0x3a,0x70,0x3a,0x02,0x3a, -0x3d,0x95,0x36,0x36,0x36,0x07,0x08,0x22,0xb8,0xff,0xc0,0x40,0x33,0x09,0x0e,0x48,0x22,0x25,0x95,0x51,0x16,0x14,0x13,0x18,0x91,0x05,0x05,0x08,0x01,0x07,0x17,0x91,0x08,0x03,0x22,0x31,0x3a,0x4c,0x42,0x7e,0x31,0x31,0x27,0x1e,0x13,0x13,0x0e,0x01,0x00,0x00,0x0e,0x7d,0x1e,0x1e,0x07,0x27,0x7e,0x4c,0x4c,0x56,0x18,0x06,0x7e,0x07, -0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x10,0xc1,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc4,0x10,0xc6,0x31,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23, -0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26, -0x27,0x04,0x04,0xc8,0xb1,0x4e,0x8d,0x4c,0xa8,0x01,0x60,0x5e,0x9e,0x72,0x40,0x29,0x4e,0x72,0x4a,0x51,0x42,0xfe,0x3a,0x92,0x3f,0x6b,0x4e,0x2c,0x8f,0x8d,0x02,0x21,0x3e,0x81,0x44,0xb0,0x1d,0x31,0x40,0x23,0x49,0x61,0x3b,0x18,0x2e,0x57,0x7d,0x4f,0x39,0x73,0x2d,0x33,0x6e,0x3d,0x24,0x3d,0x2b,0x19,0x17,0x2b,0x3c,0x24,0x42,0x64, -0x42,0x22,0x23,0x51,0x84,0x61,0x45,0x84,0x36,0x01,0xb0,0xb2,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x82,0x67,0x48,0x10,0x04,0x1e,0x8c,0x03,0x20,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0xfb,0xcc,0x2a,0x31,0x6e,0x1f,0x2c,0x1f,0x18,0x0c,0x18,0x35,0x41,0x4d,0x2f,0x35,0x5c,0x46,0x28,0x14,0x12,0xa3,0x1f,0x20,0x0f,0x1c, -0x28,0x19,0x21,0x2a,0x1d,0x16,0x0c,0x16,0x2f,0x3e,0x50,0x37,0x31,0x5e,0x4a,0x2d,0x1d,0x1b,0x00,0x07,0x00,0x14,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43,0x01,0x3f,0x40,0xb7,0x1a,0x1d,0x1e,0x01,0x02,0x19,0x02,0x17,0x26,0x25,0x3a,0x39,0x18,0x39,0x3b,0x24,0x27,0x16, -0x15,0x34,0x15,0x04,0x29,0x2a,0x41,0x42,0x03,0x42,0x40,0x2b,0x28,0x05,0x06,0x3f,0x06,0x13,0x22,0x21,0x32,0x31,0x14,0x31,0x12,0x23,0x20,0x33,0x2c,0x11,0x2c,0x0f,0x0c,0x0b,0x08,0x07,0x10,0x07,0x2e,0x2f,0x36,0x37,0x04,0x07,0x10,0x01,0x05,0x33,0x3b,0x04,0x1e,0x20,0x24,0x28,0x04,0x09,0x92,0x0a,0x1d,0x23,0x27,0x2b,0x04,0x12, -0x16,0x1a,0x40,0x41,0x05,0x0d,0x92,0x0e,0x0e,0x10,0x03,0x07,0x18,0x14,0x10,0x03,0x04,0x2a,0x41,0x03,0x3c,0x03,0x3b,0x24,0x27,0x16,0x04,0x15,0x37,0x3a,0x25,0x26,0x17,0x04,0x18,0x36,0x01,0x1e,0x1d,0x1a,0x04,0x19,0x02,0x05,0x28,0x2b,0x40,0x04,0x3d,0x06,0x32,0x21,0x22,0x13,0x04,0x14,0x2f,0x12,0x23,0x20,0x33,0x04,0x11,0x2e, -0x08,0x0c,0x0f,0x03,0x10,0x07,0x15,0x14,0x06,0x1c,0x00,0x02,0x0d,0x09,0x07,0x11,0x10,0x07,0x18,0x19,0x03,0x36,0x37,0x19,0x04,0x02,0x02,0x45,0x07,0x11,0x10,0x06,0x2e,0x2f,0x10,0x04,0x07,0x2f,0x17,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x17,0x33,0x2f,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x10,0xcd,0x32,0x11,0x12, -0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10, -0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x21,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x21,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13, -0x33,0x13,0x21,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x05,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0xe0,0xfe,0xf3,0x63,0xa2,0x63,0xe7,0x63,0xa1,0x67,0xfe,0xfb,0xe9,0x1a,0xcf,0xb3, -0x5f,0x8f,0x5a,0x01,0x0d,0x5e,0x84,0x59,0x01,0x01,0x57,0x8d,0x5c,0xbe,0xd9,0x19,0xf1,0xfb,0xa5,0xa5,0x1a,0xd8,0x02,0x60,0x9e,0x18,0xcf,0xfe,0xed,0xb2,0x19,0x80,0xf7,0x0d,0x03,0x04,0x03,0x11,0x25,0x71,0x02,0x6d,0x0b,0x05,0x02,0x03,0x0f,0x23,0x6c,0xea,0x03,0x04,0x0d,0x14,0x4a,0x13,0x0d,0x02,0x10,0xfd,0xf0,0x02,0x10,0xfd, -0xf0,0x02,0x10,0x8c,0x88,0x8d,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x8d,0x88,0x88,0x88,0x88,0x88,0x88,0xfe,0x2a,0x45,0x4b,0x35,0x5b,0xc2,0xca,0x39,0x4d,0x34,0x56,0xc6,0x02,0x9a,0x4a,0x46,0x69,0x67,0x43,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x03,0xd3,0x04,0x00,0x00,0x0f,0x00,0x1f,0x00,0x4a,0x40,0x23, -0x19,0x01,0xbe,0x0e,0x0e,0x1f,0x0f,0x1e,0xbe,0x06,0x11,0x0f,0x00,0xcd,0x0f,0x0f,0x10,0x18,0xc2,0x19,0x19,0x10,0x06,0xc2,0x2f,0x07,0x3f,0x07,0x02,0x07,0x07,0x21,0x1f,0xcd,0x10,0xb8,0xff,0xc0,0xb3,0x0b,0x10,0x48,0x10,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0x33,0xfd, -0xc6,0x2f,0x33,0x10,0xfd,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x21,0x11,0x03,0x11,0x21,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x21,0x11,0x01,0xe0,0x01,0x07,0x31,0x3a,0x81,0x1a,0x38,0x57,0x3d,0xfe,0x75,0xfe,0x01,0x8b,0x3d,0x57,0x38,0x1a,0x81,0x3a,0x31,0xfe,0xf9,0x03, -0x05,0xfd,0x7f,0x40,0x3b,0x03,0x01,0xfc,0xe4,0x2d,0x52,0x3f,0x26,0x03,0x05,0xfc,0xfb,0x04,0x00,0x25,0x3f,0x53,0x2d,0xfd,0xdf,0x02,0x07,0x3a,0x40,0xfc,0x84,0x00,0x00,0x03,0x00,0x60,0xfe,0xd7,0x04,0x98,0x05,0xec,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x5b,0x40,0x33,0x33,0x96,0x34,0x05,0x01,0x02,0x2d,0x95,0x05,0x16,0x11,0x23, -0x95,0x0f,0x10,0x1c,0x19,0x14,0x96,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x17,0x00,0x11,0x03,0x0a,0x35,0x00,0x34,0x14,0x0a,0x1b,0x19,0x12,0x16,0x1d,0x03,0x01,0x84,0x00,0x00,0x37,0x28,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x17,0x32,0x33,0xc6,0x10,0xc4,0xc4,0x10,0xc6,0x12,0x39,0x39,0x31,0x00,0x3f,0xd6,0x5d,0xed,0x33, -0x32,0x3f,0xed,0x33,0x3f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x04,0x10,0xa4, -0x04,0x72,0xee,0x6c,0xa0,0x69,0x33,0x3b,0x75,0xb0,0x75,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0x2c,0x4d,0x6a,0x3f,0x56,0x7a,0x4e,0x24,0x23,0x4a,0x73,0x50,0x47,0x73,0x51,0x2b,0x7b,0xfc,0xae,0x03,0x52,0xae,0xc6,0x52,0x8b,0xba,0x69,0x71,0xcc,0x99,0x5a,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x3e, -0x6c,0x50,0x2e,0x43,0x72,0x96,0x53,0x4c,0x8b,0x69,0x3e,0x39,0x60,0x7e,0xfd,0x4e,0x77,0x00,0x00,0x01,0x00,0x2a,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x19,0x00,0x44,0x40,0x22,0x19,0x06,0x16,0x10,0x0a,0x92,0x0b,0x0b,0x0d,0x01,0x08,0x14,0x0d,0x03,0x05,0x10,0x16,0x19,0x04,0x17,0x08,0x01,0x00,0x14,0x17,0x15,0x15,0x1b,0x0a,0x0f, -0x0c,0x07,0x7e,0x08,0x2f,0xe1,0x33,0x32,0xc6,0x12,0x39,0x2f,0xc6,0x33,0xc6,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0xfd, -0xdb,0xfe,0x6c,0x10,0x0e,0x08,0x04,0xa8,0x92,0x92,0xa8,0x04,0x08,0x16,0x08,0x01,0x96,0xc2,0xfe,0x36,0x01,0x70,0xfe,0x97,0x02,0x54,0x1a,0x1b,0x0e,0xfd,0x69,0x02,0x9e,0x8d,0x02,0x6f,0xfd,0x8f,0x0e,0x22,0x0c,0x02,0x35,0xfd,0x91,0x8d,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0x6c,0x05,0x9a,0x00,0x17,0x00,0x73,0x40,0x3b,0x08,0x05, -0x09,0x04,0x0b,0x02,0x0a,0x03,0x0c,0x01,0x0d,0x00,0x16,0x0f,0x17,0x0e,0x0d,0x0a,0x09,0x04,0x50,0x03,0x01,0x03,0x00,0x0d,0x00,0x6f,0x17,0x7f,0x17,0x02,0x17,0x17,0x12,0x07,0x15,0x11,0x91,0x12,0x03,0x0a,0x0e,0x11,0x07,0x03,0x17,0x16,0x02,0x06,0x0f,0x0b,0x07,0x14,0x14,0x19,0x06,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x33, -0x33,0x11,0x33,0x33,0xc6,0x32,0x10,0xd4,0xc6,0x32,0x31,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0xcd,0x10,0xd6,0x5d,0xcd,0xdd,0xcd,0x10,0xcd,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11, -0x21,0x35,0x21,0x15,0x21,0x11,0x37,0x03,0x08,0xea,0xea,0xea,0xa8,0xef,0xef,0xef,0xef,0xfe,0xb3,0x03,0x43,0xfe,0xb2,0xea,0x03,0xb5,0x85,0xcc,0x85,0x8e,0x85,0xfe,0x2a,0x01,0x76,0x87,0x8e,0x87,0xcc,0x87,0x8e,0x87,0x01,0xa4,0x98,0x98,0xfe,0xbc,0x85,0x00,0x00,0x05,0x00,0x2c,0xfe,0x9e,0x08,0xe2,0x06,0x77,0x00,0x3a,0x00,0x53, -0x00,0x6a,0x00,0x7e,0x00,0x8e,0x00,0x84,0x40,0x4c,0x1e,0x3e,0x8c,0x0c,0x04,0x0f,0x19,0x29,0x32,0x24,0x36,0x4f,0xe2,0x2f,0x7a,0xe7,0x59,0x70,0x69,0x70,0x52,0x63,0x7f,0xdb,0x0f,0x19,0x1f,0x19,0x02,0x19,0x89,0x43,0xe2,0x07,0x63,0x07,0x89,0xdb,0x0f,0x0c,0x1e,0x24,0x2f,0x36,0x3e,0x4f,0x8c,0x08,0x00,0x14,0x32,0x33,0x33,0x00, -0x29,0x2a,0x14,0x54,0x68,0x69,0x6b,0x04,0x6a,0x00,0xb1,0x4a,0x4a,0x14,0x75,0xea,0x5e,0x5e,0x90,0x84,0xf3,0x14,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xc4,0x17,0x32,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0x33,0x33,0x10,0xed,0x10,0xd4,0x5d,0xed,0x10,0xed,0xc6,0x10,0xd4,0xed, -0x2f,0xed,0x33,0x32,0xcd,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x12,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36,0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03, -0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x06,0x84,0x23,0x4d,0x78, -0xaa,0xdf,0x8c,0x3b,0x66,0x58,0x4c,0x22,0x42,0x94,0x55,0x2e,0x4a,0x34,0x1d,0x23,0x3a,0x4b,0x28,0x26,0x44,0x3d,0x3a,0x1c,0x36,0x58,0x26,0x25,0x5e,0x3c,0x5a,0x9b,0x8a,0x7d,0x3d,0x34,0x45,0x9f,0xb2,0xc2,0x68,0x43,0xa1,0x61,0x37,0x47,0x6c,0x2c,0x8a,0xcf,0x8a,0x45,0xfc,0xcf,0x32,0x74,0x46,0x1e,0x3f,0x48,0x50,0x2e,0x69,0xa8, -0x82,0x5e,0x3d,0x1d,0x3b,0x72,0xa9,0x6d,0x1b,0x31,0x2d,0x2e,0x02,0xf0,0x0f,0x2e,0x51,0x80,0x62,0x3d,0x66,0x4a,0x2a,0x2c,0x55,0x7b,0x4f,0x21,0x3f,0x36,0x2b,0x0d,0x8a,0xa3,0x01,0x64,0x12,0x25,0x39,0x27,0x2c,0x44,0x2f,0x18,0x14,0x25,0x35,0x21,0x35,0x49,0x2d,0x14,0xf9,0xfc,0x15,0x27,0x1e,0x12,0x12,0x1c,0x25,0x12,0x39,0x63, -0x2c,0x32,0x5c,0x03,0x3c,0x59,0xc0,0xb8,0xa4,0x7d,0x49,0x14,0x22,0x2d,0x18,0x3f,0x3c,0x1c,0x33,0x47,0x2b,0x30,0x4a,0x31,0x1a,0x10,0x1c,0x25,0x15,0x5f,0x01,0x0d,0xab,0xa9,0xf9,0x5d,0x0a,0x35,0x49,0x58,0x2d,0x50,0x38,0x69,0x51,0x34,0x03,0x48,0x66,0x26,0x42,0x1f,0x49,0x30,0x0f,0x5f,0x9b,0xd4,0xb1,0xc4,0xfe,0xe4,0x60,0x15, -0x24,0x1b,0x10,0x3f,0x6b,0x8e,0x9c,0xa1,0x4a,0x77,0xbb,0x85,0x4e,0x0a,0x2e,0x71,0x88,0xa3,0xfd,0xba,0x36,0x74,0x60,0x3f,0x25,0x47,0x68,0x43,0x48,0x7f,0x5f,0x36,0x10,0x1f,0x2c,0x1b,0xfe,0x29,0x02,0x7c,0x20,0x3e,0x30,0x1d,0x26,0x3f,0x51,0x2b,0x28,0x43,0x30,0x1a,0x31,0x47,0x52,0x15,0x0e,0x19,0x24,0x16,0x19,0x26,0x1a,0x0e, -0x36,0x35,0x27,0x36,0x00,0x02,0x00,0x30,0xfe,0x52,0x03,0x6a,0x05,0xe2,0x00,0x3c,0x00,0x4e,0x00,0x5d,0x40,0x32,0x01,0x02,0x07,0x1b,0x35,0x3b,0x4a,0x07,0x00,0x11,0x2b,0x25,0x3a,0x00,0x42,0xcb,0x11,0x00,0x4a,0x07,0x3d,0x02,0x35,0x1b,0x16,0x02,0x3a,0x00,0x47,0x48,0x0c,0x0c,0x3d,0x00,0x28,0x28,0x30,0x3d,0xc4,0x16,0x30,0xc0, -0x20,0x20,0x50,0x01,0x3b,0x3c,0x03,0x00,0x2f,0x17,0x32,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc6,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x00,0x3f,0xed,0x2f,0xd6,0xd4,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, -0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03,0x30,0xfe,0x4c,0x11,0x13,0x11,0x28,0x16,0x26,0x4a,0x3a,0x23,0x20,0x3b,0x54, -0x34,0x30,0x47,0x2f,0x17,0x10,0x1d,0x26,0x16,0x2f,0x62,0x50,0x32,0x3e,0x6e,0x96,0x57,0x0b,0x0b,0x01,0x08,0x0c,0x25,0x51,0x43,0x2c,0x17,0x29,0x35,0x1e,0x23,0x47,0x1c,0x21,0x1e,0x64,0x62,0x01,0xcd,0x0e,0x19,0x22,0x14,0x11,0x21,0x19,0x0f,0x41,0x32,0x0e,0x19,0x12,0x0b,0x02,0x23,0xfe,0xe4,0x37,0x40,0x37,0x90,0x51,0x4b,0x8e, -0x8b,0x8a,0x47,0x3f,0x67,0x49,0x28,0x23,0x40,0x5b,0x38,0x22,0x69,0x85,0x99,0x52,0x54,0xad,0xbc,0xce,0x74,0x50,0x96,0x74,0x46,0x0c,0x09,0x06,0x10,0x03,0x09,0x3b,0x5a,0x78,0x47,0x56,0x9f,0x92,0x88,0x40,0x7d,0xe7,0x5b,0x6a,0x5d,0x01,0x50,0xf6,0x04,0xe1,0x30,0x41,0x28,0x11,0x13,0x29,0x41,0x2f,0x67,0xbf,0x60,0x3b,0x71,0x66, -0x56,0x00,0x00,0x04,0x00,0x26,0x00,0x00,0x04,0x8e,0x05,0x9a,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x81,0x40,0x4a,0x2c,0x12,0x24,0x0f,0x1c,0x92,0x1d,0x40,0x09,0x0d,0x48,0x1d,0x1d,0x03,0x18,0x23,0x0a,0x2f,0x07,0x00,0x92,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x2d,0x91,0x18,0x18,0x03,0x19,0x2e,0x91,0x03, -0x03,0x07,0x0a,0x0f,0x12,0x04,0x0c,0x22,0x25,0x2b,0x30,0x04,0x20,0x24,0x2d,0x2f,0x03,0x19,0x00,0x1c,0x1a,0x1e,0x02,0x1a,0x10,0x09,0x20,0x7d,0x0c,0x0c,0x35,0x19,0x7e,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x00,0x3f,0xed,0x2f,0x12,0x39, -0x2f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x33,0x32,0x32,0x11,0x12,0x39,0x2f,0x2b,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x13,0x35,0x33,0x11,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36, -0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x26,0x96,0x01,0x7c,0xa1,0xdb,0x2e,0xac,0x90,0x03,0x03,0x02,0x92,0xb7,0x1b,0x59,0x73,0x8d,0x50,0xaf,0xa8,0x96,0x96,0x02,0x95,0x03,0xfe,0x16,0x01,0xe8,0x02,0x03,0xfe,0xb9,0x67,0x87,0x26,0xfe,0x46,0x01,0xbe,0x23,0x7f,0x64,0x03,0xfd,0x8d,0x01,0x10,0x8b,0x85,0x8d,0x1b,0x1c,0x15, -0x28,0x14,0x8c,0x42,0x69,0x49,0x27,0xfe,0x32,0x02,0xe9,0x8c,0x88,0x3f,0x21,0x1e,0x88,0x11,0x24,0xfe,0xbc,0x45,0x3e,0x83,0x02,0x9c,0x78,0x39,0x3f,0x00,0x00,0x04,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x1b,0x00,0x33,0x00,0x42,0x00,0x4f,0x00,0x52,0x40,0x2d,0x34,0x4c,0x0f,0x44,0x1f,0x44,0x02,0x44,0x44,0x37,0x36,0x36, -0x28,0x43,0x4c,0x37,0x37,0x1c,0x28,0xcb,0x00,0xc7,0x1c,0xcb,0x0e,0x04,0x3d,0xbd,0x4a,0x4a,0x2d,0x44,0x35,0xc2,0x36,0x36,0x07,0x2d,0xc9,0x15,0x15,0x51,0x21,0xc9,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0xed,0xf4,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x2f, -0x5d,0xed,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x03,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x90,0x67,0xbf, -0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa6,0xbf,0x67,0x67,0xbe,0xa7,0x89,0x62,0x36,0x36,0x62,0x89,0xa6,0xbf,0x67,0x88,0xf1,0xb4,0x69,0x30,0x56,0x79,0x94,0xa8,0x5b,0x88,0xf1,0xb4,0x68,0x30,0x56,0x79,0x93,0xa9,0xdd,0x83,0x01,0x1d,0x53,0x84,0x5b,0x30,0x29,0x59,0x8c,0x64,0x8a,0x81,0x48,0x5f,0x37,0x16,0x1a,0x3a,0x5a,0x41,0x21, -0x36,0x62,0x89,0xa7,0xbf,0x67,0x67,0xbf,0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa7,0xbf,0x66,0x66,0xbf,0xa7,0x8a,0x62,0x36,0x05,0x84,0x69,0xb4,0xf1,0x88,0x5b,0xa9,0x93,0x78,0x57,0x2f,0x68,0xb4,0xf1,0x88,0x5b,0xa8,0x93,0x79,0x57,0x30,0xfc,0xdb,0xfe,0xba,0x03,0xba,0x28,0x4d,0x71,0x4a,0x3a,0x74,0x5d,0x39,0x02,0x01,0xfe,0x71, -0x23,0x3a,0x49,0x25,0x2d,0x49,0x33,0x1b,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1a,0x05,0xec,0x00,0x1d,0x00,0x2b,0x00,0x39,0x00,0x41,0x40,0x24,0x11,0x00,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a, -0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06, -0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14,0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f, -0x57,0x53,0x94,0x94,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x07,0x1a,0x04,0x18,0x00,0x1d,0x00,0x2b,0x00,0x39, -0x00,0x42,0x40,0x25,0x11,0x0f,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x1b,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f, -0xed,0x3f,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14, -0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0x57,0x53,0x94,0xfd,0x95,0x02,0x85,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff, -0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x01,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x00,0x03,0x00,0x18,0x40,0x0c,0x00,0x02,0xa0,0x03,0x01,0x0f,0x03,0x3f,0x03,0x02,0x03,0x02,0x00,0x2f,0x2f,0x5d,0x5d,0x01,0x2f,0xcd,0x31,0x30,0x01,0x01, -0x23,0x01,0x04,0xf0,0xfb,0xca,0xa4,0x04,0x36,0x06,0x30,0xf9,0x3a,0x06,0xc6,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x05,0x12,0x06,0x30,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x21, -0xff,0x37,0x04,0x0b,0x04,0xd1,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xbc,0x01,0x59,0xff,0x37,0xff,0xff,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,0xd9,0xff,0xd4,0xfd,0xf5,0xff,0xff,0xff,0xef,0xff,0x6a,0x04,0xc9,0x06,0x30,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x07,0xe3, -0xd9,0x00,0x00,0x01,0x00,0x68,0xfe,0x92,0x03,0x0f,0x04,0x18,0x00,0x3c,0x00,0x57,0x40,0x31,0x3c,0x3a,0x95,0x02,0x0d,0x30,0x17,0x26,0x04,0x1c,0x36,0x1f,0x21,0x95,0x1c,0x10,0x08,0x36,0x20,0x09,0x30,0x09,0x40,0x09,0x03,0x09,0x0b,0x95,0x36,0x16,0x3c,0x3c,0x36,0x09,0x1f,0x1f,0x30,0x26,0x83,0x17,0x17,0x09,0x30,0x83,0x0d,0x0d, -0x3e,0x06,0x09,0x2f,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x39,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x11,0x39,0x3f,0xfd,0xc6,0x11,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, -0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x07,0x06,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x02,0xc7,0x3a,0x5c,0x8c,0x46,0x3d,0x92,0x15,0x13,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50, -0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x49,0x40,0x44,0x27,0x16,0x30,0x3c,0x48,0x47,0xfe,0xb7,0x25,0xa4,0x90,0x4b,0x09,0x0b,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x12,0x0f,0x03, -0x24,0x35,0x71,0x28,0x00,0x01,0x00,0x21,0xfe,0x92,0x03,0x70,0x04,0x00,0x00,0x13,0x00,0x30,0x40,0x19,0x13,0x11,0x95,0x02,0x0c,0x08,0x95,0x0a,0x0f,0x07,0x0d,0x96,0x06,0x13,0x09,0x08,0x09,0x0d,0x13,0x04,0x07,0x0c,0x0c,0x15,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x2f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xfd,0xc6, -0x31,0x30,0x01,0x06,0x23,0x22,0x00,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x17,0x16,0x33,0x32,0x37,0x03,0x6a,0x3a,0x5c,0x96,0xfe,0xcf,0xb2,0x3a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0x97,0x85,0x81,0x88,0x46,0x48,0x47,0xfe,0xb7,0x25,0x01,0x6e,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xad,0x2b,0x97,0x9e,0x28,0x00,0x00,0x01, -0x00,0x30,0x00,0x00,0x03,0xf6,0x06,0x02,0x00,0x19,0x00,0x29,0x40,0x14,0x13,0x08,0x10,0x01,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26, -0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x04,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x02,0x47,0xa3,0x5d,0x88,0x82,0x45,0xc1,0xe1,0xd8,0xa6,0xa1,0xde,0x01,0x29,0x01,0x1e,0x61,0x9e,0x63,0x4d,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0xff,0xff,0x00,0x6c,0x04,0xc2, -0x01,0x31,0x05,0x85,0x02,0x06,0x00,0xdb,0x00,0x00,0x00,0x01,0xff,0x2b,0xfe,0x52,0x00,0xd4,0xff,0xe6,0x00,0x0e,0x00,0x0c,0xb3,0x05,0x0b,0x0c,0x0b,0x2f,0xcd,0x00,0x2f,0xc4,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0xd4,0x9e,0x6b,0x4f,0x53,0x52,0x4f,0x6a,0x9d,0x1f,0x94,0x0f,0x61, -0x0e,0x94,0xd7,0x23,0x7b,0x39,0x8c,0x8c,0x39,0x7b,0x23,0x5b,0x40,0xa2,0xa2,0x40,0x00,0x03,0xfe,0xbd,0xfe,0x5c,0x01,0x43,0xff,0xc8,0x00,0x1a,0x00,0x26,0x00,0x32,0x00,0x34,0x40,0x1d,0x0e,0x06,0xc3,0x40,0x27,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b,0x03,0x1b,0x80,0x2d,0x21,0xc3,0x13,0x00,0x30,0xf1,0x11,0x2a,0x1e,0xf1,0x03,0x24,0xf1, -0x2a,0x2f,0xfd,0xd4,0xed,0x10,0xd4,0xed,0x00,0x2f,0x33,0xed,0x32,0x1a,0xdc,0x5d,0x32,0x1a,0xed,0x32,0x31,0x30,0x17,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x32,0x17,0x16,0x17,0x36,0x37,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x23,0x32,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x8f,0x4b,0x69,0x69,0x4b,0x4b,0x35,0x08,0x07,0x07,0x09,0x34,0x4b,0x4b,0x69,0x69,0x96,0x34,0x09,0x07,0x07,0x08,0x35,0x4b,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0xf2,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0x38,0x6b,0x4b,0x4b,0x6b,0x36,0x08,0x0a,0x0a,0x08,0x36,0x6b,0x4b,0x4b,0x6b,0x35, -0x09,0x09,0x09,0x09,0x35,0xfe,0xdd,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x00,0x00,0x01,0xff,0x60,0x04,0xba,0x00,0xa0,0x06,0x70,0x00,0x07,0x00,0x16,0x40,0x09,0x05,0x06,0xdb,0x40,0x01,0x03,0x07,0x80,0x03,0x2f,0x1a,0xcd,0x00,0x2f,0xc6,0x1a,0xfd,0xcd,0x31,0x30,0x13,0x23,0x37,0x23, -0x13,0x33,0x07,0x33,0x5a,0x64,0x2d,0xc3,0x46,0x64,0x2d,0xc3,0x04,0xba,0xac,0x01,0x0a,0xac,0xff,0xff,0xfc,0xe6,0xfe,0x52,0x03,0x1a,0xff,0xd0,0x02,0x07,0x07,0x5d,0x00,0x00,0xf8,0x90,0xff,0xff,0x00,0x21,0xfe,0x74,0x04,0x50,0x04,0x18,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xe3,0xfa,0x31,0x00,0x0f,0x40,0x09, -0x02,0x10,0x1c,0x20,0x1c,0x40,0x1c,0x03,0x1c,0x00,0x11,0x5d,0x35,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x15,0x00,0x2c,0x40,0x17,0x0b,0x0a,0x08,0x91,0x0d,0x04,0x15,0x20,0x00,0x01,0x00,0x02,0x91,0x13,0x13,0x10,0x7d,0x05,0x05,0x17,0x0a,0x0a,0x00,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6, -0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x68,0x9e,0xd8,0xe9,0x01,0x1f,0xfe,0xcd,0xf7,0xba,0x9a,0x86,0xcc,0x01,0x3e,0x01,0x9e,0xfe,0x90,0xfe,0xce,0xed,0x9f,0xdf,0x60,0x01,0x37,0x01,0x06,0x01,0x14,0x01,0x4a,0x56, -0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xc0,0xfe,0x76,0x54,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x34,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x68, -0xff,0xe8,0x04,0x96,0x05,0xb2,0x02,0x26,0x07,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x23,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x03,0xa4,0x05,0x9a,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0xee,0x08,0x03, -0x02,0x91,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0x7f,0x06,0x06,0x02,0x7e,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0x99,0x99,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x98,0xfd,0xea,0x01,0x80,0x05,0x9a,0x00,0x00,0x01, -0x00,0xa6,0xfe,0x8b,0x02,0xdf,0x04,0x00,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0x95,0x08,0x0f,0x02,0x96,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0xed,0x06,0x06,0x02,0x84,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b, -0x8c,0x8c,0xa4,0x02,0x39,0x03,0x74,0xfd,0x0d,0xfe,0x0a,0x01,0x75,0x04,0x00,0x00,0xff,0xff,0xff,0xbb,0xff,0xe8,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x06,0x00,0xd8,0x98,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, -0x04,0xff,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd8,0x02,0x5b,0xff,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xd5,0xfc,0xb7,0x00,0x0a, -0xb4,0x01,0x10,0x22,0x01,0x22,0x00,0x11,0x5d,0x35,0x00,0x03,0xff,0xc0,0x00,0x00,0x07,0x34,0x04,0x18,0x00,0x2c,0x00,0x36,0x00,0x3f,0x00,0xa3,0x40,0x2b,0x15,0x3e,0x0c,0x09,0x11,0x07,0x04,0x09,0x2c,0x28,0x02,0x96,0x23,0x28,0x35,0x37,0x2d,0x09,0x96,0x28,0x3e,0x3e,0x0b,0x02,0x19,0x01,0x0c,0x04,0x1e,0x31,0x19,0x03,0x3a,0x95, -0x20,0x1b,0x10,0x16,0x0f,0x06,0x01,0x0b,0x27,0xb8,0x01,0x03,0x40,0x0f,0x40,0x28,0x28,0x22,0x2d,0x00,0x84,0x01,0x0e,0x06,0x06,0x0b,0x42,0x14,0x10,0xb8,0x01,0x03,0x40,0x1b,0x40,0x11,0x16,0x17,0x3e,0x03,0x0a,0x84,0x0b,0x37,0x1e,0x35,0x03,0x05,0x84,0x06,0x0f,0x06,0x01,0x0c,0x03,0x40,0x41,0x06,0x84,0x30,0x30,0x2b,0x01,0x5f, -0x5e,0x5d,0x10,0xe1,0x17,0x39,0x18,0x2f,0xe1,0x17,0x39,0xd6,0x1a,0xed,0x33,0x2b,0x01,0x18,0x10,0xf4,0xf1,0x39,0x39,0xc0,0x2f,0x1a,0xed,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0xed,0x17,0x32,0x5f,0x5e,0x5d,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x39,0x11,0x39,0xfd,0x11,0x39,0x11,0x39,0x39,0xc4,0x11,0x39,0x11,0x39,0x31,0x30,0x21, -0x23,0x11,0x26,0x25,0x11,0x23,0x11,0x24,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06,0x07,0x27,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x04,0x25,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x06, -0x54,0xa4,0xb3,0xfe,0xd2,0xa4,0xfe,0xd1,0xb2,0xa4,0x21,0x16,0x38,0x77,0x02,0x5a,0x35,0x55,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x1c,0x14,0x39,0x77,0x02,0x5b,0x34,0x4f,0xa4,0x69,0x7c,0x69,0x93,0x01,0x32,0xfe,0x2a,0xe9,0x6c,0x46,0x35,0x0d,0xb4,0x01,0x5a,0x05,0x42,0xfe,0x5f,0x01,0xc6,0x42,0x06,0xfd,0xf2, -0x01,0xfb,0x0d,0x15,0x35,0x50,0x88,0x58,0x34,0x15,0x01,0x83,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x8a,0x0c,0x13,0x36,0x50,0x86,0x59,0x33,0x16,0x6c,0x76,0xaa,0x98,0xc0,0x86,0x2a,0x43,0x68,0x1d,0x01,0x2e,0x5b,0x44,0x64,0x07,0x00,0x02,0xff,0xc0,0x00,0x00,0x04,0xdc,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x5f,0x40,0x1a,0x0e,0x06, -0x02,0x13,0x25,0x96,0x1c,0x21,0x2f,0x28,0x09,0x96,0x21,0x12,0x12,0x08,0x16,0x2b,0x95,0x18,0x10,0x13,0x0f,0x01,0x08,0x20,0xb8,0x01,0x03,0x40,0x0b,0x21,0x21,0x1c,0x28,0x00,0x84,0x01,0x01,0x32,0x08,0x0d,0xb8,0x01,0x03,0xb7,0x0e,0x13,0x14,0x2f,0x03,0x07,0x84,0x08,0x2f,0xe1,0x17,0x39,0xd6,0xed,0x11,0x12,0x39,0x2f,0xf1,0x39, -0x39,0xc0,0x2f,0xed,0x00,0x2f,0x33,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x11,0x39,0xfd,0x11,0x39,0x39,0xc4,0x31,0x30,0x21,0x23,0x11,0x26,0x27,0x26,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06, -0x07,0x25,0x16,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x03,0xf8,0xa4,0x6c,0x9a,0x9a,0x6a,0xa4,0x27,0x1a,0x2e,0x77,0x02,0x50,0x3b,0x59,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x25,0x19,0x2f,0x77,0x02,0x51,0x3b,0x56,0xfe,0x59,0x9a,0x69,0xee,0x7b,0x51,0x3f,0x0e,0x6c,0x01,0x63,0x14,0x3d,0x3d,0x14,0xfd,0xfb,0x02,0x04,0x0d,0x1e, -0x35,0x50,0x88,0x58,0x41,0x11,0x01,0x7a,0xaa,0xc2,0xd9,0xcd,0x91,0x0e,0x1d,0x36,0x50,0x86,0x59,0x41,0x12,0xd1,0x3d,0x14,0x68,0x01,0x46,0x5d,0x49,0x67,0x14,0x00,0xff,0xff,0xff,0xbb,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xf9,0xf2,0x00,0x11,0x40,0x0b,0x02,0x20,0x2b,0x5f, -0x2b,0x70,0x2b,0xe0,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xbb,0x00,0x00,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xa5,0x00,0x00,0x02,0xa2, -0x04,0x18,0x02,0x26,0x05,0x83,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x82,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x27,0xff,0xe8,0x03,0xac,0x04,0x18,0x00,0x26,0x00,0x56,0x28,0x00,0x00,0x06,0x08,0x5f,0x00,0x00,0xff,0xff,0xff,0xef,0xff,0xea, -0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xcc,0xfc,0xc8,0x00,0x13,0x40,0x0d,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0x8f,0x1e,0xaf,0x1e,0x05,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x5f,0xfc,0xc8, -0x00,0x13,0x40,0x0d,0x01,0x10,0x17,0x20,0x17,0x70,0x17,0x8f,0x17,0xaf,0x17,0x05,0x17,0x00,0x11,0x5d,0x35,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x04,0x56,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x44,0x40,0x26,0x0a,0x23,0x95,0x0d,0x0d,0x02,0x1d,0x05,0x40,0x0b,0x0f,0x48,0x05,0x07,0x95,0x02,0x10,0x16,0x1d,0x95,0x18,0x13,0x1c,0x05, -0x05,0x09,0x10,0x83,0x20,0x20,0x27,0x09,0x84,0x19,0x84,0x17,0x84,0x18,0x2f,0xe1,0xe1,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xc4,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x20,0x11,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27, -0x23,0x15,0x23,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xa6,0x02,0x1c,0xbe,0x8e,0xad,0x9d,0xfe,0x86,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x01,0xe4,0x02,0x34,0x48,0xa4,0x60,0xfe,0x6e,0x70,0xc4,0xfe,0xef,0xe6,0xfe,0xfb,0xfe,0xcc,0xa6, -0x8e,0x02,0x31,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0x7a,0x01,0xf6,0x03,0x37,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x23,0x03,0x54,0x3f,0x08,0x4f,0x08,0x5f,0x08,0x8f,0x08,0x9f,0x08,0xaf,0x08,0x06,0x08,0x08,0x06,0x01,0x05,0x05,0x0c,0x0a,0x06,0x03,0x00,0x50,0x09,0x01,0x01,0x0d,0x08,0x04,0x50,0x05,0x2f, -0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0x37,0x6d,0xfe,0x1d,0x6d,0x6d,0x01,0xe3,0x6d,0x01,0xf6,0x01,0xa9,0xfe,0x57,0x03,0xa4,0xfe,0x67,0x01,0x99,0x00,0x00,0x02,0x00,0x60,0xfe,0x21,0x04,0x3f, -0x04,0x00,0x00,0x26,0x00,0x3c,0x00,0x54,0x40,0x30,0x38,0x0e,0x00,0x07,0x00,0x24,0x10,0x24,0x40,0x24,0x50,0x24,0x04,0x24,0x24,0x07,0x2c,0x95,0x1a,0x1b,0x09,0x06,0x95,0x07,0x0f,0x0e,0x84,0x05,0x08,0x38,0x24,0x31,0x00,0x08,0x07,0x07,0x08,0x00,0x03,0x1f,0x15,0x83,0x31,0x31,0x3e,0x27,0x83,0x1f,0x2f,0xe1,0x12,0x39,0x2f,0xe1, -0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x12,0x39,0xe1,0x00,0x3f,0xed,0x39,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x33,0x31,0x30,0x01,0x34,0x3e,0x02,0x37,0x21,0x35,0x21,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32, -0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x27,0x0e,0x03,0x01,0xd9,0x1d,0x33,0x45,0x29,0xfe,0x40,0x03,0x2d,0x58,0x90,0x66,0x37,0x42,0x64,0x74,0x64,0x42,0x4f,0x8b,0xbf,0x70,0x5b,0xaa,0x83,0x4e,0x37,0x6a,0x9a,0x63,0x14,0x11,0xd1,0x31,0x54,0x70,0x3f,0x48,0x7f,0x5e,0x36,0x15,0x3a,0x67,0x51,0x21,0x19,0x6e,0x84,0x46,0x16,0x02, -0x73,0x28,0x4d,0x43,0x37,0x12,0x8c,0x47,0x28,0x4f,0x4f,0x53,0x2d,0x32,0x4e,0x4c,0x53,0x6e,0x94,0x66,0x72,0xab,0x74,0x3a,0x37,0x6e,0xa5,0x6e,0x59,0x9b,0x85,0x70,0x2e,0x21,0x41,0xfd,0x87,0x4c,0x71,0x4b,0x25,0x27,0x4e,0x77,0x50,0x34,0x50,0x50,0x5c,0x3f,0x1a,0x17,0x36,0x6e,0x6e,0x6b,0xff,0xff,0x00,0x16,0xff,0xea,0x06,0xae, -0x05,0xec,0x00,0x26,0x00,0x57,0x00,0x00,0x00,0x27,0x00,0x4b,0x02,0xb6,0x00,0x00,0x00,0x06,0x08,0x06,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x00,0x05,0x18,0x05,0x9a,0x00,0x03,0x00,0x09,0xb2,0x03,0x03,0x02,0x00,0x2f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01,0x05,0x18,0xfb,0xa2,0xa4,0x04,0x5e,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xff,0xff, -0x00,0x4a,0x00,0x00,0x02,0x46,0x04,0x00,0x02,0x26,0x05,0x6f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x0c,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x0c,0x2f,0x0c,0x4f,0x0c,0x02,0xaf,0x0c,0xcf,0x0c,0xff,0x0c,0x03,0x00,0x5d,0x71,0x11,0x35,0x00,0xff,0xff,0xff,0xfb,0xff,0xf4,0x02,0x08,0x04,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07, -0x00,0xd9,0xff,0xbd,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x2f,0x0e,0x4f,0x0e,0x02,0xaf,0x0e,0xcf,0x0e,0xff,0x0e,0x03,0x0e,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x03,0x00,0x22,0xfe,0x29,0x04,0xd5,0x04,0x18,0x00,0x19,0x00,0x23,0x00,0x2c,0x00,0x4b,0x40,0x29,0x14,0x21,0x05,0xe2,0x11,0x2a,0x06,0x06,0x1c,0x0a,0x26,0x95,0x0d,0x10, -0x08,0x0f,0x00,0x1c,0x95,0x18,0x16,0x03,0x1b,0x13,0x13,0x11,0x14,0x83,0x2b,0x20,0x20,0x2e,0x07,0x0a,0x2a,0x21,0x04,0x02,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x17,0x39,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x23,0x11,0x23,0x11, -0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x16,0x17,0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x15,0x14,0x01,0x26,0x23,0x22,0x07,0x06,0x07,0x21,0x26,0x01,0x4e,0x04,0xa4,0x84,0x84,0xa4,0x04,0x79,0xe9,0xc6,0x6f,0x65,0x09,0x82,0x84,0x0f,0x6b,0x7d,0xd9,0xc7,0x1e,0x53,0x7f, -0x95,0x54,0x45,0x0d,0xfd,0xa1,0x02,0x13,0x4f,0x87,0x8f,0x57,0x51,0x06,0x02,0x61,0x08,0x94,0xfd,0x95,0x03,0xaf,0x6d,0x01,0xbb,0xb4,0xcc,0x8a,0x7d,0xcc,0x6d,0xd1,0x85,0x9a,0xe2,0x58,0x72,0x5c,0x98,0x36,0x7f,0x02,0x0a,0x61,0x64,0x5d,0x88,0x91,0x00,0x02,0x00,0x22,0xff,0xe8,0x04,0x24,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x3b, -0x40,0x1e,0x01,0x17,0x08,0xe2,0x11,0x0d,0x09,0x09,0x0f,0x0b,0x0f,0x13,0x95,0x04,0x16,0x12,0x12,0x01,0x16,0x10,0x84,0x0f,0x0f,0x1b,0x09,0x17,0x07,0x0c,0x84,0x0b,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x15,0x10,0x21, -0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x32,0x11,0x35,0x21,0x15,0x10,0x04,0x24,0x6e,0xfe,0x64,0xfe,0x76,0x6e,0x6e,0xa1,0x01,0xe3,0xa2,0x6e,0xfd,0xff,0xf1,0xfe,0x1d,0x01,0xd8,0x32,0xfe,0x42,0x01,0xb2,0x3e,0x6d,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xfe,0x2d,0x01,0x2a,0x3c,0x36,0xfe, -0xd0,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xae,0x04,0x00,0x00,0x1e,0x00,0x27,0x00,0x5e,0x40,0x31,0x12,0x26,0x1a,0xe2,0x0f,0x06,0x1d,0x1d,0x21,0x04,0x09,0x0d,0x03,0x01,0x95,0x0a,0x02,0x0f,0x21,0x95,0x16,0x16,0x0d,0x12,0x09,0x00,0x1a,0x04,0x09,0x04,0x12,0x1a,0x11,0x11,0x0c,0x0f,0x12,0x84,0x07,0x25,0x25,0x29,0x06,0x26, -0x84,0x01,0x1d,0x07,0x1a,0x2f,0xcd,0x33,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0x32,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x07,0x21,0x26,0x27,0x35,0x21,0x15,0x23,0x16,0x17, -0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x23,0x35,0x33,0x36,0x13,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x01,0x1c,0xbc,0x01,0x7f,0xba,0x1c,0x02,0xb0,0x1c,0xb9,0x01,0x7e,0xb8,0x95,0x1c,0x53,0x4c,0x04,0x86,0x8a,0xf2,0xed,0x88,0x85,0x02,0x4c,0x54,0x1e,0xdc,0x5f,0xa1,0xa6,0x5b,0x54,0x06,0xfd,0x47,0x07,0x03, -0x74,0x8c,0x8e,0x55,0xd8,0xd8,0x55,0x8e,0x8c,0x6f,0xc0,0x6d,0xda,0x89,0x8d,0x8b,0x89,0xdc,0x6d,0xbe,0xfd,0xd8,0x69,0x66,0x5e,0xa2,0x9c,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xa9,0x05,0xec,0x02,0x26, -0x00,0x47,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xd2,0x00,0x00,0x00,0x09,0xb3,0x02,0x2a,0x2a,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x35,0xfe,0x96,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x49,0x00,0x00,0x00,0x09,0xb3,0x01,0x21,0x21,0x09,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, -0xfe,0x1e,0x05,0xfc,0x04,0x18,0x02,0x26,0x00,0x4a,0x00,0x00,0x00,0x27,0x08,0x5d,0x05,0x25,0x00,0x00,0x01,0x07,0x08,0x60,0x03,0xc2,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x02,0x32,0x32,0x33,0x02,0x26,0x26,0x36,0x03,0x35,0x35,0x18,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96, -0x03,0xf9,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0x22,0x00,0x00,0x00,0x09,0xb3,0x01,0x0d,0x0d,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x01,0xe3,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x10,0x10,0x00,0x10,0x3c,0x12, -0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x06,0xed,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x08,0x5d,0x06,0x16,0x00,0x00,0x00,0x09,0xb3,0x01,0x2c,0x2c,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x91,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x09, -0xb3,0x01,0x1f,0x1f,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d, -0x06,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x68,0xfe,0x96,0x03,0xad,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0xd6,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x73,0xfb,0x27,0x00,0x11,0xb7,0x02,0x3d,0x42,0x2d,0x01,0x30,0x30,0x3f,0x10,0x3c,0x12,0x34,0x00,0x10,0xf4,0x34,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e, -0x03,0x4b,0x06,0x02,0x00,0x26,0x05,0x88,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0x74,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x11,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x01,0x22,0x22,0x24,0x01,0x17,0x17,0x26,0x02,0x25,0x25,0x04,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x0e,0xfe,0x96,0x04,0x06, -0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x00,0x27,0x08,0x5d,0x03,0x2f,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0xcc,0xfb,0x3f,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x02,0x01,0x0c,0x0c,0x1c,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x08,0x5d, -0x02,0xbb,0x00,0x00,0x00,0x09,0xb3,0x01,0x14,0x14,0x02,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x21,0xfe,0x96,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x08,0x5d,0x02,0x93,0x00,0x00,0x00,0x09,0xb3,0x01,0x0a,0x0a,0x03,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x04,0x71,0x04,0x18,0x02,0x26, -0x00,0x44,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xc1,0x00,0x00,0x00,0x09,0xb3,0x02,0x20,0x20,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xfe,0x04,0x18,0x02,0x26,0x05,0x57,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x1e,0x1e,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, -0xfe,0x96,0x05,0x21,0x06,0x02,0x02,0x26,0x05,0x5d,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x27,0x27,0x05,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0xb4,0x04,0x84,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xd4,0x00,0x1e,0x00,0x09,0xb3,0x02,0x1a,0x1a,0x06,0x10, -0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xfe,0x96,0x04,0x29,0x04,0x19,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0x79,0x00,0x00,0x00,0x09,0xb3,0x01,0x26,0x26,0x25,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x50,0xfe,0x96,0x03,0x3b,0x04,0x19,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x27,0x00,0x00, -0x00,0x09,0xb3,0x01,0x2d,0x2d,0x01,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x05,0xe0,0x04,0x18,0x00,0x26,0x02,0xce,0x00,0x00,0x00,0x27,0x08,0x5e,0x05,0x30,0x01,0xf4,0x01,0x07,0x08,0x60,0x02,0x70,0xfc,0xdd,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x00,0x03,0x29,0x29,0x00,0x00,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34, -0xff,0xff,0x00,0x90,0xfe,0x96,0x02,0xd1,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x08,0x5e,0x02,0x21,0x00,0x00,0x00,0x09,0xb3,0x02,0x1c,0x1c,0x0f,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x03,0x5a,0x04,0x18,0x02,0x26,0x05,0x5a,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x33,0x00,0x00,0x00,0x09,0xb3,0x01, -0x21,0x21,0x01,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0x92,0xfe,0x1d,0x02,0x68,0x06,0x02,0x00,0x1f,0x00,0x28,0x40,0x15,0x17,0x95,0x09,0x0c,0x95,0x11,0x1c,0x02,0x95,0x1d,0x00,0x00,0x00,0x05,0x84,0x19,0x0e,0x09,0x83,0x15,0x19,0x2f,0xd6,0xe1,0xc4,0x10,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2f,0xed,0x31,0x30,0x01,0x26, -0x23,0x22,0x15,0x11,0x14,0x07,0x06,0x07,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0x5d,0x4c,0x7d,0x7f,0x3b,0x35,0x34,0x3d,0x7d,0x99,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfc,0x71,0xa2,0x60,0x4d,0x0e,0x67,0x9d, -0x1e,0x92,0x17,0xa0,0x8b,0x01,0x06,0x1a,0xdf,0x03,0x8d,0xa4,0xbe,0x12,0xff,0xff,0x00,0x90,0xfe,0x96,0x04,0xd0,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x20,0x00,0x00,0x00,0x09,0xb3,0x01,0x13,0x13,0x00,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x23,0x00,0x53, -0x40,0x2f,0x09,0x96,0x11,0x11,0x0e,0x10,0x01,0x01,0x01,0x17,0x95,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x10,0x0d,0x95,0x0e,0x0f,0x1d,0xec,0x21,0x1c,0x11,0x0c,0x0b,0x10,0x0b,0x10,0x0b,0x16,0x0e,0x14,0x83,0x06,0x06,0x25,0x0e,0x1f,0x19,0x83,0x01,0x2f,0xed,0xc4,0x2f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12, -0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x39,0x2f,0x5d,0xed,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x31,0x30,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01, -0x63,0xfd,0xdb,0x03,0x2d,0xfe,0x95,0xbc,0xea,0xfe,0xbc,0xf7,0x5f,0x58,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0xb7,0x01,0x01,0x68,0x84,0x72,0x81,0x74,0x33,0x01,0x74,0x8c,0x33,0xfe,0x81,0x1a,0xb8,0xa0,0xae,0xd7,0x17,0x25,0x9d,0x1f,0x93,0x17,0x9f,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x88,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x48, -0xb3,0x0e,0x02,0x05,0x13,0x41,0x0d,0x01,0x0d,0x00,0x0b,0x01,0x0b,0x00,0x10,0x01,0x0a,0x00,0x00,0x01,0x08,0x00,0x17,0x01,0x0d,0x00,0x05,0x01,0x09,0x00,0x08,0x01,0x0c,0x40,0x09,0x11,0x0e,0x01,0x15,0x15,0x1d,0x0f,0x02,0x1b,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x11,0x33,0x33,0xed,0x00,0x3f,0xed,0x3f, -0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x15,0x23,0x36,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0x15,0x15,0x66,0x7e,0x03,0x35,0x70,0x6e,0x8e,0x81,0x68,0x76,0x42,0x03,0x7e,0x7e,0x52,0x42,0x8e,0x90,0x40,0x52,0x04,0xbe,0x43,0x54,0xab,0x84,0x80,0x97, -0x61,0x50,0xb4,0x5e,0xb6,0xc2,0x5c,0x46,0x2e,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xd1,0x00,0x15,0x00,0x32,0xb1,0x0b,0x0d,0xba,0x01,0x0d,0x00,0x08,0x01,0x09,0xb6,0xc0,0x15,0xd0,0x15,0x02,0x15,0x13,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb3,0x0b,0x15,0x17,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x10,0xc6,0x32, -0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x01,0xec,0x42,0x5b,0x7b,0x96,0xa2,0x87,0x4b,0x3a,0x3a,0x42,0x50,0x60,0x5b,0x51,0x44,0x3c,0x02,0xb2,0x29,0x9b,0x7c,0x8a,0xa7,0x24,0x6c,0x2c,0x6c,0x58,0x56,0x66, -0x31,0x00,0x00,0x02,0x00,0x3d,0x02,0x48,0x02,0x10,0x04,0xd1,0x00,0x1d,0x00,0x26,0x00,0x5b,0xb5,0x05,0x00,0x0a,0x1c,0x0d,0x0f,0xba,0x01,0x0d,0x00,0x0a,0x01,0x09,0x40,0x0d,0x25,0xbf,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x16,0x20,0xbb,0x01,0x0d,0x00,0x03,0x00,0x1c,0x01,0x0b,0x40,0x0f,0x03,0x05,0x00,0x03,0x03,0x19, -0x07,0x1e,0x14,0x12,0x23,0x19,0x0d,0x28,0x12,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xed,0x10,0xd4,0xd4,0xcd,0x11,0x39,0x39,0x11,0x12,0x17,0x39,0x2f,0x00,0x3f,0xc4,0xfd,0xd4,0x5d,0x5d,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, -0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0xdb,0x10,0x03,0x59,0x07,0x1c,0x55,0xa2,0x88,0x4b,0x3a,0x39,0x40,0x4f,0x64,0x21,0x4d,0x58,0x3d,0x4d,0x6d,0x54,0x45,0x0d,0x2d,0x24,0x1e,0x2f,0x3c,0x36,0x02,0x9e,0x27,0x2f,0x49,0x3d,0x4e,0x84,0x8a,0xa7,0x24,0x6c,0x2c,0x6d, -0x59,0x4c,0x2a,0x4d,0x42,0x32,0x42,0x3f,0x71,0x13,0x0f,0x12,0x20,0x00,0x00,0x02,0x00,0x3e,0x02,0x8a,0x02,0x7f,0x05,0xd4,0x00,0x1c,0x00,0x27,0x00,0x62,0x40,0x10,0x16,0x14,0x17,0x02,0x1c,0x01,0x06,0x15,0x00,0x15,0x00,0x15,0x1a,0x06,0x09,0x1d,0xbe,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x23,0x01,0x0d,0x00,0x09,0x01,0x0b,0x40, -0x10,0x01,0x1c,0x01,0x02,0x03,0x06,0x16,0x17,0x14,0x11,0x03,0x26,0x19,0x19,0x0c,0x06,0xb8,0x01,0x0c,0xb3,0x26,0x26,0x29,0x20,0xb9,0x01,0x0c,0x00,0x0c,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xc6,0x12,0x17,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0xc4,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30, -0x01,0x17,0x07,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x27,0x07,0x27,0x37,0x26,0x27,0x33,0x16,0x17,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x38,0x21,0x8a,0x22,0x22,0x6c,0x9d,0x86,0x86,0x98,0x9d,0x86,0x32,0x2c,0x02,0x28,0x2e,0xb6,0x1e,0x95,0x43,0x4f,0xa4, -0x2a,0x2b,0x30,0x4d,0x58,0x56,0x4d,0x49,0x54,0x05,0xd4,0x47,0x37,0x26,0x2f,0x94,0xb8,0x83,0xa8,0x99,0x83,0x85,0xa5,0x16,0x02,0x40,0x32,0x48,0x49,0x3b,0x38,0x2e,0x17,0x26,0xfe,0xd1,0x64,0x57,0x53,0x62,0x64,0x53,0xb9,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x55,0xb1,0x1d,0x0d,0xb8,0x01,0x0d, -0x40,0x09,0x0e,0x0e,0x18,0x08,0xb0,0x15,0x01,0x15,0x13,0xbf,0x01,0x0d,0x00,0x18,0x01,0x09,0x00,0x06,0x00,0x08,0x01,0x0d,0x00,0x03,0x01,0x0b,0xb2,0x16,0x0e,0x1b,0xb8,0x01,0x0c,0xb6,0x11,0x0e,0x16,0x11,0x03,0x06,0x01,0xb8,0x01,0x0c,0xb3,0x0a,0x0a,0x20,0x06,0x2f,0x12,0x39,0x2f,0xed,0x12,0x17,0x39,0x2f,0xed,0x2f,0x2f,0x00, -0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x71,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x00,0x15,0x14,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x01,0xdf,0xfb,0x59,0x49,0x3e,0x55,0x87,0x9e,0x32,0x30,0x8c,0x71,0x49,0x3e,0x40,0x4d,0x6d, -0x81,0x67,0x03,0x9c,0x6f,0xa4,0x1b,0x64,0x1c,0x49,0x4c,0x63,0x47,0x41,0x1c,0x68,0x17,0x51,0x49,0x5a,0x1f,0x04,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0x83,0x05,0xd3,0x00,0x14,0x00,0x33,0xb9,0x00,0x02,0x01,0x0d,0xb2,0x12,0x08,0x0c,0xbd,0x01,0x0d,0x00,0x05,0x00,0x0d,0x01,0x08,0x00,0x0a,0x01,0x0a,0x40,0x09,0x06,0x06,0x00,0x05, -0x09,0xcd,0x0e,0x0c,0x0a,0x2f,0xc6,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x00,0x3f,0x3f,0x33,0xed,0x32,0xd4,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x83,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0x49,0x6a, -0xfe,0x46,0x01,0xba,0x6a,0x4d,0x62,0x66,0x0a,0x00,0x00,0x01,0xff,0xdd,0x01,0x94,0x01,0x56,0x04,0xbe,0x00,0x14,0x00,0x48,0x40,0x0b,0x0e,0x0c,0x0a,0xcd,0x09,0x06,0x06,0x00,0x05,0x09,0x09,0xba,0x01,0x08,0x00,0x02,0x01,0x0d,0x40,0x13,0x0f,0x12,0x1f,0x12,0x02,0x2f,0x12,0x3f,0x12,0x9f,0x12,0xaf,0x12,0xbf,0x12,0x05,0x12,0x0b, -0x08,0xbb,0x01,0x0d,0x00,0x0e,0x00,0x05,0x01,0x0a,0x00,0x3f,0x33,0xed,0x32,0xd4,0x5d,0x71,0xed,0x3f,0x01,0x2f,0x33,0xc4,0x39,0x2f,0x10,0xfd,0xc6,0x33,0x31,0x30,0x03,0x16,0x33,0x32,0x35,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62, -0x2a,0x18,0x02,0x0e,0x0f,0x61,0x58,0x6a,0x01,0x9c,0xfe,0x64,0x6a,0x5c,0x62,0x66,0x0a,0x00,0xff,0xff,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x02,0x06,0x07,0xaf,0x00,0x00,0x00,0x01,0x00,0x5c,0x01,0xa4,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x30,0x41,0x0a,0x00,0x0c,0x01,0x0d,0x00,0x01,0x00,0x05,0x01,0x0b,0x00,0x10,0x00,0x08, -0x01,0x08,0x00,0x11,0x01,0x0c,0xb4,0x01,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x3f,0xc6,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x01,0xa4, -0x01,0x4c,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x00,0x02,0x00,0x0f,0x02,0x9a,0x01,0x3f,0x05,0xc4,0x00,0x0b,0x00,0x13,0x00,0x48,0x40,0x19,0x01,0x05,0x0a,0x1f,0x06,0x01,0x06,0x40,0x0c,0x10,0x48,0x06,0x06,0x08,0x03,0x0c,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x10,0x08,0xba,0x01,0x08,0x00,0x03,0x01,0x0a, -0xb3,0x0b,0x12,0x0a,0x02,0xb8,0x01,0x0c,0xb3,0x0e,0x06,0x07,0x03,0x2f,0xc4,0xc4,0xc4,0xfd,0x32,0xc4,0xc4,0x00,0x3f,0x3f,0xd4,0x5d,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x71,0x33,0xcd,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01,0x3f,0x57,0x82,0x57,0x57, -0x82,0x57,0x99,0x4e,0x50,0x4e,0x03,0x91,0xf7,0xf7,0x56,0xd7,0xd7,0x01,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x02,0x8b,0x01,0x72,0x04,0xbe,0x00,0x0b,0x00,0x1f,0x41,0x0a,0x00,0x05,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0b,0x00,0x06,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x3f,0xed,0x3f,0x31, -0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x02,0x9b,0x10,0xb5,0x01,0x7e,0xfe,0x8a,0x52,0x12,0x00,0x01,0x00,0x11,0x02,0x9a,0x01,0x51,0x04,0xbe,0x00,0x0b,0x00,0x2e,0xb1,0x0b,0x07,0xbf,0x01,0x0d,0x00,0x08,0x01,0x08,0x00,0x01,0x00,0x04,0x01,0x0d,0x00,0x03, -0x01,0x0a,0xb2,0x0a,0x01,0x00,0xb8,0x01,0x0c,0xb2,0x07,0x04,0x05,0x2f,0xcd,0x32,0xfd,0xcd,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0xf2,0x5f,0xfe,0xc0,0x5f,0x5f,0x01,0x40,0x5f,0x02,0xf0,0x56,0x56,0x01,0x78,0x56,0x56,0x00,0x00,0x01,0x00,0x11,0x02,0x9a, -0x01,0x51,0x04,0xbe,0x00,0x13,0x00,0x44,0x40,0x09,0x01,0x09,0xcb,0x12,0x0a,0x0a,0x06,0x11,0x0d,0xbf,0x01,0x0d,0x00,0x0e,0x01,0x08,0x00,0x02,0x00,0x06,0x01,0x0d,0x00,0x05,0x01,0x0a,0xb4,0x00,0x0f,0x03,0x12,0x02,0xb8,0x01,0x0c,0xb4,0x0e,0x0a,0x06,0x0b,0x07,0x2f,0x33,0xcd,0x32,0x32,0xfd,0x32,0xcd,0x32,0x32,0x00,0x3f,0xed, -0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x01,0x49,0x57,0x5f,0xfe,0xc0,0x5f,0x57,0x57,0x5f,0x01,0x40,0x5f,0x57,0x03,0x91,0xa1,0x56,0x56,0xa1,0x56,0x81,0x56,0x56,0x81,0x00,0x00,0x03,0xff,0x87,0x01,0x94, -0x01,0x6d,0x05,0xc4,0x00,0x11,0x00,0x19,0x00,0x21,0x00,0x51,0x40,0x1f,0x02,0x00,0x14,0x0f,0x0c,0x00,0x0a,0x18,0x00,0x18,0x40,0x04,0x50,0x04,0x02,0x2f,0x04,0x3f,0x04,0x02,0x04,0x1a,0x0f,0x1e,0x1f,0x1e,0x2f,0x1e,0x03,0x1e,0x0d,0xb8,0x01,0x0a,0xb3,0x11,0x20,0x02,0x0e,0xb8,0x01,0x0c,0xb5,0x1c,0x0d,0x16,0x07,0x12,0x0d,0x2f, -0x33,0xd4,0xcd,0x10,0xc4,0xfd,0x32,0xc4,0xc6,0x00,0x3f,0xd4,0x5d,0xcd,0x2f,0x5d,0x5d,0xcd,0xc4,0x10,0xd4,0x11,0x39,0x39,0xcd,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x13,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01, -0x6d,0x45,0x47,0x23,0xb1,0x3a,0x4c,0x65,0x52,0x15,0x13,0x82,0x44,0x41,0xfe,0xf9,0x14,0x14,0x58,0x32,0x4b,0x43,0x4e,0x50,0x4e,0x01,0xcf,0x39,0x1c,0x90,0x42,0x33,0x3b,0x4f,0x02,0x02,0x2d,0xfd,0xbb,0x18,0x2e,0x0b,0x03,0x33,0x27,0x03,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x01,0x72,0x05,0xc4,0x00,0x0b, -0x00,0x1b,0xbb,0x00,0x05,0x01,0x07,0x00,0x09,0x01,0x0d,0xb2,0x02,0x0b,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x2f,0xed,0x3f,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x01,0xa8,0x10,0xb5,0x03,0x77,0xfc,0x91,0x52,0x12,0x00,0x01,0x00,0x31, -0x01,0xcb,0x01,0x3d,0x05,0xc4,0x00,0x0e,0x00,0x38,0xbb,0x00,0x00,0x01,0x07,0x00,0x0b,0x01,0x0d,0xb3,0x50,0x06,0x01,0x06,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x06,0x02,0x0e,0xbf,0x01,0x0a,0x00,0x09,0x00,0x03,0x01,0x0c,0x00,0x0d,0x00,0x01,0x01,0x0c,0x00,0x00,0x2f,0xfd,0xd5,0xfd,0xc4,0x00,0x3f,0xd5,0xd4,0x2b,0x71,0xed,0x3f, -0x31,0x30,0x13,0x33,0x11,0x33,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x23,0x66,0x80,0x57,0x64,0x63,0x25,0x20,0x1d,0x23,0x59,0x0a,0x6e,0x05,0xc4,0xfc,0xf3,0x6f,0x7d,0x0b,0x61,0x10,0x73,0x00,0x00,0x01,0x00,0x66,0x02,0x96,0x01,0xb4,0x04,0xc4,0x00,0x05,0x00,0x20,0xbb,0x00,0x02,0x01,0x06,0x00,0x04,0x01,0x0d,0xb5, -0x01,0xff,0x00,0x00,0x07,0x04,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xed,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x13,0x33,0x01,0xb3,0xfe,0xb3,0x7f,0x01,0xce,0x02,0x96,0x02,0x2e,0xfe,0x3c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x03,0x9a,0x04,0xcf,0x00,0x25,0x00,0x65,0xb9,0x00,0x24,0x01,0x0d,0x40,0x09,0x1f, -0x1d,0x00,0x08,0x13,0x18,0x05,0x16,0x10,0xba,0x01,0x0a,0x00,0x11,0x01,0x08,0xb2,0x1a,0x03,0x0b,0xba,0x01,0x0d,0x00,0x16,0x01,0x09,0xb3,0x18,0x07,0x13,0x1d,0xb8,0x01,0x0c,0x40,0x0a,0x40,0x22,0x00,0x0e,0x08,0x10,0x08,0x42,0x13,0x0f,0xbb,0x01,0x0c,0x00,0x10,0x00,0x07,0x01,0x0c,0xb3,0x08,0x08,0x27,0x26,0x11,0x12,0x39,0x2f, -0xed,0x2f,0xed,0x32,0x2b,0x01,0x18,0x10,0xf4,0xc6,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0xd4,0xed,0x31,0x30,0x01,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x11,0x02,0x23,0x22,0x27,0x35, -0x16,0x33,0x32,0x03,0x1a,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x01,0xd9,0x2b,0x25,0x22,0x23,0x65,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02,0x24,0x52,0x63,0x6f,0x6f,0xe3,0xfe,0xba,0xfe,0xf2,0x10,0x68,0x14,0x00,0x00,0x01,0x00,0x60, -0x01,0xa4,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x56,0xb4,0x07,0x18,0x02,0x03,0x10,0xb8,0x01,0x0d,0xb2,0x05,0x01,0x09,0xb8,0x01,0x0b,0xb2,0x1c,0x14,0x0c,0xb8,0x01,0x08,0xb3,0x07,0x01,0x14,0x1d,0xb8,0x01,0x0c,0x40,0x09,0x40,0x01,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xbb,0x01,0x0c,0x00,0x0c,0x00,0x15,0x01,0x0c,0xb3,0x14,0x14, -0x1f,0x1e,0x11,0x12,0x39,0x2f,0xed,0x2f,0xed,0x2b,0x01,0x18,0x10,0xf4,0x32,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0xc6,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94, -0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x01,0xa4,0x01,0x48,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0xff,0xbc,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x3e,0xb1,0x0c,0x16,0xbe,0x01,0x0d,0x00,0x0f, -0x01,0x09,0x00,0x0a,0x01,0x08,0x00,0x07,0x01,0x0d,0xb3,0x02,0x00,0x09,0x13,0xba,0x01,0x0a,0x00,0x12,0x01,0x0c,0xb4,0x13,0x13,0x1b,0x0b,0x00,0xb8,0x01,0x0c,0xb1,0x05,0x09,0x2f,0xc6,0xed,0x32,0x12,0x39,0x2f,0xed,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35, -0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xe6,0xda,0x2b,0x25,0x22,0x23,0x65,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x02,0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x56,0x67,0xe7,0xfe,0xb2,0x01,0x33,0x97,0x54,0x3f,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0xfa,0x04,0xcf,0x00,0x19, -0x00,0x3f,0xb1,0x14,0x0c,0xbe,0x01,0x0d,0x00,0x17,0x01,0x09,0x00,0x12,0x01,0x08,0x00,0x02,0x01,0x0d,0xb3,0x07,0x00,0x09,0x11,0xbb,0x01,0x0a,0x00,0x04,0x00,0x00,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31, -0x30,0x01,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x65,0x23,0x22,0x25,0x2b,0xd9,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x9e,0x14,0x68,0x10,0x01,0x0e,0x01,0x27,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7, -0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x6a,0x04,0xbe,0x00,0x13,0x00,0x26,0xbd,0x00,0x0a,0x01,0x08,0x00,0x09,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb5,0x01,0x11,0x11,0x15,0x0b,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33, -0x13,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x02,0x6a,0x7f,0xea,0x14,0x07,0x02,0x02,0x80,0x84,0xe5,0x12,0x09,0x02,0x04,0x82,0x02,0x9a,0x01,0x4d,0x1c,0x0d,0x1d,0x2a,0xfe,0xd1,0x02,0x24,0xfe,0xbc,0x18,0x12,0x1c,0x22,0x01,0x30,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x14,0x00,0x1d,0x00,0x3f,0xb9,0x00, -0x13,0x01,0x0d,0xb3,0x19,0x19,0x0e,0x15,0xbe,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x0e,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x1a,0x19,0x13,0x09,0xb8,0x01,0x0c,0xb3,0x12,0x12,0x1f,0x13,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26, -0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x13,0x22,0x07,0x06,0x07,0x21,0x26,0x27,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0xf2,0x2c,0x48,0x49,0x2b,0x21,0x08,0xfe,0xc5,0x08,0x96,0x49,0x2c,0x1d,0x0a,0x01,0x38,0x0a,0x1e,0x2b,0x02,0x89,0x9e,0x7f,0x87,0xa2,0x9f,0x7e, -0x88,0xa1,0x97,0x2c,0x2c,0x21,0x40,0x40,0x01,0x23,0x2c,0x1e,0x36,0x37,0x1e,0x2b,0x00,0x03,0x00,0x3e,0x01,0xa4,0x02,0xb1,0x05,0xc4,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x54,0xb1,0x1c,0x26,0xb8,0x01,0x0d,0xb2,0x0c,0x0a,0x09,0xbb,0x01,0x09,0x00,0x1d,0x00,0x25,0x01,0x0d,0xb5,0x14,0x40,0x00,0x01,0x00,0x01,0xb8,0x01,0x0b,0xb2, -0x0c,0x1d,0x15,0xb8,0x01,0x0c,0xb5,0x09,0x25,0x00,0x00,0x05,0x10,0xb8,0x01,0x0c,0xb3,0x18,0x18,0x29,0x21,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xed,0x32,0x3f,0xcd,0x33,0xed,0x32,0x31,0x30,0x01,0x35,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37, -0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x13,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x36,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x01,0x36,0x6e,0x3d,0x4d,0x51,0x3d,0x6a,0x82,0x6e,0x3d,0x4e,0x52,0x3e,0x69,0x4c,0x2c,0x2c,0x1b,0x31,0x31,0xff,0x00,0x2b,0x2c,0x1b,0x31,0x31,0x01,0xa4,0xe8,0x0d,0x3f,0x4f, -0x7f,0x87,0x51,0x3d,0x0f,0xfa,0xf8,0x0d,0x40,0x4f,0x7e,0x88,0x51,0x3d,0x0f,0xe9,0x01,0x81,0x31,0x56,0x58,0x30,0x1e,0x0b,0xfe,0x9d,0x0c,0x01,0x2d,0x31,0x56,0x56,0x31,0x1f,0x0c,0x01,0x63,0x0b,0x00,0x01,0x00,0x42,0x01,0xe2,0x01,0xa1,0x04,0xd1,0x00,0x2b,0x00,0x4f,0xb1,0x03,0x08,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x12,0x48,0x08, -0x10,0x27,0x16,0x21,0x04,0x19,0x0e,0xbe,0x01,0x0d,0x00,0x2a,0x01,0x0b,0x00,0x1e,0x01,0x0d,0x00,0x19,0x01,0x09,0xb7,0x1b,0x21,0xcd,0x16,0x1b,0x16,0x0c,0x27,0xb8,0x01,0x0c,0xb5,0x10,0x10,0x2d,0x05,0x01,0x0c,0x2f,0xcd,0xc4,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0xed,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0xd4,0x2b, -0xcd,0x31,0x30,0x13,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x97,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x3f,0x41,0x60,0x2b,0x3c,0x47,0x31,0x71,0x5a, -0x44,0x36,0x31,0x3e,0x31,0x27,0x24,0x3d,0x48,0x37,0x6c,0x5f,0x24,0x02,0x92,0x12,0x53,0x13,0x4d,0x11,0x4e,0x47,0xa7,0x36,0x3b,0x20,0x29,0x1d,0x24,0x4c,0x37,0x45,0x5c,0x19,0x6f,0x29,0x23,0x18,0x21,0x27,0x1d,0x23,0x4e,0x36,0x47,0x5b,0x00,0x01,0xff,0xc9,0x01,0x94,0x01,0x83,0x05,0xd3,0x00,0x15,0x00,0x2d,0xbc,0x00,0x02,0x01, -0x0d,0x00,0x13,0x00,0x0d,0x01,0x0d,0x40,0x0d,0x40,0x08,0x50,0x08,0x02,0x2f,0x08,0x3f,0x08,0x02,0x08,0x01,0x05,0xb8,0x01,0x0c,0xb1,0x0b,0x0f,0x2f,0xc6,0xfd,0xc6,0x00,0x2f,0x5d,0x5d,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x01, -0x83,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0xfd,0x55,0x62,0x66,0x0a,0x70,0x0f,0x61,0x02,0xab,0x62,0x66,0x0a,0x00,0x01,0x00,0x0a,0x01,0xe2,0x01,0x68,0x05,0x62,0x00,0x1d,0x00,0x53,0xb1,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x0c,0x11,0x48,0x03,0x0c,0x1d,0x1b,0xbb,0x01,0x0d,0x00, -0x00,0x00,0x0c,0x01,0x0b,0xb4,0x14,0x15,0x18,0x15,0x0f,0xba,0x01,0x0d,0x00,0x12,0x01,0x08,0x40,0x0a,0x06,0x0a,0x17,0x1d,0x1d,0x1f,0x0f,0x18,0x0f,0x15,0xb8,0x01,0x0c,0xb1,0x11,0x12,0x2f,0xcd,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0xcd,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0x33,0xfd,0xc6,0x10,0xd4,0x2b,0xcd,0x31, -0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x4f,0x45,0x29,0x24,0x21,0x21,0x4a,0x0d,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0x77,0x47,0x4e,0x11,0x4d,0x13,0x53,0x0e,0xbe,0x01,0x08,0x6a,0x80, -0x24,0xa4,0x6a,0xfe,0x5e,0x10,0x00,0x02,0x00,0x05,0x02,0x89,0x02,0x9d,0x04,0xbe,0x00,0x15,0x00,0x1d,0x00,0x59,0xb4,0x1b,0x1a,0x01,0x03,0x0a,0xb8,0x01,0x0d,0x40,0x09,0x14,0x10,0x5f,0x0d,0x01,0x0d,0x0d,0x12,0x0e,0xbf,0x01,0x08,0x00,0x04,0x00,0x16,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x03,0x01,0x0a,0xb5,0x15,0x1a,0x03,0x01, -0x03,0x13,0xb8,0x01,0x0c,0xb5,0x12,0x12,0x1f,0x1c,0x0a,0x0f,0xb8,0x01,0x0c,0xb1,0x0c,0x0e,0x2f,0xc6,0xed,0x39,0x39,0x12,0x39,0x2f,0xfd,0x17,0x39,0xc6,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0x39,0x2f,0x71,0x33,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x35,0x23,0x35,0x33,0x35,0x33,0x15, -0x33,0x35,0x33,0x15,0x33,0x05,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x02,0x9d,0x57,0x80,0x02,0x3b,0x79,0xb4,0x57,0x57,0x7f,0xeb,0x80,0x57,0xfe,0xab,0x39,0x45,0xeb,0x03,0x91,0xf7,0x56,0x67,0xe7,0x21,0x56,0xd7,0xd7,0xd7,0xd7,0xf3,0x53,0x40,0x0a,0x05,0x98,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xbe,0x00,0x1b,0x00,0x4f, -0xb4,0x04,0x0e,0x12,0x03,0x01,0xbf,0x01,0x0d,0x00,0x0f,0x00,0x02,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x17,0x01,0x0b,0x40,0x0c,0x12,0x14,0x0f,0x00,0x1a,0x03,0x0f,0x03,0x0c,0x06,0x10,0x14,0xb8,0x01,0x0c,0xb3,0x0c,0x0c,0x1d,0x06,0xb8,0x01,0x0c,0xb1,0x02,0x1a,0x2f,0xc4,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f, -0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x31,0x30,0x13,0x23,0x35,0x33,0x15,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0xad,0x6f,0xfa,0x7a,0x56,0x4b,0x4c,0x53,0x7a,0xfb,0x6e,0x6e,0x9b,0x89,0x84,0x99,0x04,0x54,0x6a,0x5b,0x31, -0x83,0x5f,0x5c,0x59,0x62,0x83,0x31,0x5b,0x6a,0x41,0x74,0x7c,0x9a,0x97,0x7b,0x75,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x0d,0x00,0x29,0xb1,0x0c,0x05,0xbe,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed, -0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0x46,0xfb,0xef,0x7f,0x76,0x75,0x80,0x03,0x79,0xf0,0xea,0x01,0x4b,0xfe,0xcf,0x99,0x95,0x01,0x35,0x00,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x55,0x04,0xcf,0x00,0x17,0x00,0x33,0x41,0x0c,0x00,0x0a,0x01,0x0d,0x00,0x0f, -0x00,0x00,0x01,0x08,0x00,0x04,0x01,0x0d,0x00,0x15,0x01,0x0b,0x00,0x0d,0x00,0x12,0x01,0x0c,0xb3,0x07,0x07,0x19,0x01,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x00,0x3f,0xed,0x3f,0xd4,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x23,0x22,0x35,0x5c,0x7f,0x73,0x4d,0x39,0x1e,0x24,0x21,0x1e,0x23,0x2c,0x5e,0x55,0x86,0x89,0xea,0x04,0xbe,0xfe,0xc6,0x90,0x6b,0x56,0x63,0x4c,0x0f,0x6c,0x0e,0x99,0x7e,0x8a,0xa5,0xf3,0x00,0x01,0x00,0x0b,0x02,0x9a,0x02,0x36,0x04,0xbe,0x00,0x0b,0x00,0x17,0xbb,0x00,0x00,0x01,0x0a,0x00,0x01,0x01,0x08,0xb3,0x03,0x03,0x0d,0x00, -0x2f,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x0b,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x02,0x9a,0x02,0x24,0xfd,0xdc,0x01,0x72,0x2f,0x25,0x22,0x32,0xfe,0x8e,0x00,0x00,0x01,0x00,0x1a,0x02,0x9a,0x01,0xf5,0x04,0xbe,0x00,0x09,0x00,0x34,0xb1,0x05, -0x01,0xbf,0x01,0x0d,0x00,0x04,0x01,0x0a,0x00,0x00,0x00,0x06,0x01,0x0d,0x00,0x09,0x01,0x08,0x40,0x0c,0x02,0x07,0x06,0x07,0x02,0x01,0x04,0x05,0x00,0x00,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0xf5,0xfe,0xe8, -0x01,0x14,0xfe,0x29,0x01,0x18,0xf8,0x01,0xbb,0x04,0x86,0xfe,0x7e,0x6a,0x3a,0x01,0x80,0x6a,0x00,0x01,0x00,0x1a,0x01,0xe2,0x02,0x5a,0x04,0xbe,0x00,0x16,0x00,0x47,0xb1,0x04,0x09,0xb8,0xff,0xc0,0xb5,0x0c,0x10,0x48,0x09,0x10,0x16,0xbf,0x01,0x0d,0x00,0x0f,0x01,0x0a,0x00,0x15,0x00,0x11,0x01,0x0d,0x00,0x14,0x01,0x08,0x40,0x0f, -0x06,0x0c,0x02,0x00,0x12,0x11,0x12,0x00,0x16,0x04,0x10,0x15,0x15,0x18,0x10,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0xd6,0xcd,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0xd4,0x2b,0xcd,0x31,0x30,0x01,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x01,0xf1, -0x23,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x04,0xfe,0x9d,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x03,0x04,0x41,0x43,0x53,0x13,0x4d,0x11,0x4e,0x47,0x11,0x12,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x00,0x00,0x02,0x00,0x1a,0x02,0x55,0x02,0x82,0x04,0xbe,0x00,0x17,0x00,0x1e,0x00,0x52,0xb6,0x1d,0x11,0x07,0x00,0x18,0x03,0x0d,0x41,0x09, -0x01,0x0d,0x00,0x03,0x00,0x06,0x01,0x0a,0x00,0x0c,0x00,0x08,0x01,0x0d,0x00,0x0b,0x01,0x08,0x40,0x15,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x03,0x09,0x1b,0x14,0x08,0x09,0x0d,0x03,0x04,0x07,0x0c,0x0c,0x20,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0xd4,0xcd,0x2f,0x2f,0x12,0x39,0x39,0xcd,0x11,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f, -0xce,0xfd,0x17,0x39,0xd4,0xcd,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x23,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x36,0x35,0x34,0x23,0x22,0x01,0x4b,0x11,0x07,0x59,0x0b,0x0d,0xd8,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x3d,0x2b,0x72,0x44,0x45,0x42,0x60,0x58,0x48,0x54, -0x51,0x2e,0x41,0x02,0x9a,0x26,0x1f,0x27,0x1e,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x4e,0x57,0x42,0x32,0x43,0x58,0x6a,0x02,0x2a,0x23,0x00,0x01,0xff,0xfb,0x01,0x94,0x01,0xf7,0x04,0xbe,0x00,0x18,0x00,0x4c,0xb1,0x0b,0x09,0xb8,0x01,0x0d,0xb6,0x11,0x11,0x03,0x10,0x0d,0xe2,0x0e,0xbb,0x01,0x08,0x00,0x01,0x00,0x03,0x01,0x0d,0x40, -0x0d,0x17,0x11,0x0c,0x0f,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x0e,0x01,0x14,0xb8,0x01,0x0c,0xb3,0x06,0x06,0x1a,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35, -0x37,0x21,0x35,0x21,0x15,0x03,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x05,0x5a,0x5a,0x5e,0x68,0x6c,0x65,0x28,0xa7,0xfe,0xec,0x01,0xc7,0xb3,0x55,0x7f,0xb2,0x8d,0x66,0x01,0xc0,0x76,0x38,0x4d,0x46,0x4a,0x44,0x3a,0xfb,0x6a,0x3a,0xfe,0xf7,0x0c,0x79,0x62,0x70,0x90,0x00,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xd3,0x00,0x0a, -0x00,0x10,0x00,0x17,0x00,0x3f,0xb9,0x00,0x12,0x01,0x0d,0xb3,0x10,0x10,0x15,0x0d,0xbe,0x01,0x0d,0x00,0x06,0x01,0x07,0x00,0x15,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x0b,0x10,0x12,0x08,0xb8,0x01,0x0c,0xb3,0x11,0x11,0x19,0x12,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12, -0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x13,0x02,0x23,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x01,0x58,0x85,0x95,0x9c,0x91,0x01,0x14,0x99,0x14,0x08,0x91,0x46,0x54,0x05,0x01,0x39,0xfe,0xc5,0x03,0x52,0x4a,0x48,0x51,0x02,0x89,0xd9,0xc5,0xcf,0xdd,0xfe,0x61,0xcc,0xdf,0x01, -0xdd,0x01,0x02,0x8c,0x76,0x63,0x85,0x8a,0x8c,0x00,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x00,0x07,0x40,0x0d,0x80,0x02,0x19,0x13,0x01,0x03,0x01,0x03,0x16,0x0a,0x04,0x10,0x16,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4,0x1a,0xdc,0x1a,0xcd, -0xc4,0x31,0x30,0x03,0x05,0x07,0x25,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x6a,0x01,0x02,0x2e,0xfe,0xfe,0x01,0x5a,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0xfe,0xf2,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xd3,0xe7,0x32,0xe7,0x09,0x19, -0x22,0x22,0x19,0x19,0x22,0x22,0xbc,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x0d,0x40,0x03,0x07,0x80,0x01,0x13,0x19,0x00,0x02,0x00,0x02,0x04,0x10,0x16,0x0a,0x04,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4, -0x1a,0xdc,0xc4,0x1a,0xcd,0x31,0x30,0x13,0x05,0x27,0x25,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x98,0xfe,0xfe,0x2e,0x01,0x02,0xfe,0xd4,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x01,0x0e,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xa1,0xe7, -0x32,0xe7,0x3b,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x8a,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x01,0xff,0x9c,0xfe,0x51,0x00,0x5b,0xff,0xc9,0x00,0x36,0x00,0x2c,0x40,0x15,0x30,0x1c,0x00,0x33,0x03,0x21,0x16,0x26,0x11,0x2b,0x0c,0x0c,0x11,0x16,0x1b,0x04,0x00,0x30,0x06,0x36,0x00,0x2f,0xcd,0xd4,0xcd,0x12,0x17,0x39,0x2f,0xcd, -0x2f,0xcd,0x2f,0xcd,0x00,0x2f,0xcd,0xcd,0xc4,0x39,0x31,0x30,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x07,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x64,0x13,0x39,0x24, -0x24,0x2b,0x0e,0x13,0x15,0x18,0x12,0x17,0x12,0x12,0x15,0x12,0x0f,0x17,0x1b,0x0b,0x01,0x1b,0x35,0x28,0x19,0x12,0x15,0x12,0x12,0x15,0x11,0x18,0x1d,0x18,0x11,0x0f,0x0f,0x18,0x04,0x87,0x2a,0x26,0x26,0x14,0x14,0x1d,0x0b,0x0c,0x13,0x08,0x07,0x0c,0x0f,0x17,0x11,0x10,0x15,0x12,0x10,0x0b,0x0b,0x0f,0x0c,0x08,0x04,0x0d,0x04,0x0c, -0x15,0x10,0x0f,0x14,0x11,0x0f,0x0b,0x0a,0x11,0x12,0x15,0x0e,0x0f,0x17,0x14,0x13,0x0c,0x0a,0x0d,0x10,0x0b,0x00,0x00,0x01,0xfe,0xdd,0x04,0xd2,0x01,0x29,0x05,0xbc,0x00,0x19,0x00,0x19,0x40,0x0a,0x0d,0x40,0x0c,0x0c,0x19,0x80,0x05,0x14,0x0d,0x19,0x2f,0xc4,0x00,0x2f,0xcd,0x1a,0xcd,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x14,0x1e, -0x02,0x33,0x32,0x3e,0x04,0x33,0x17,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0xbe,0x0c,0x18,0x22,0x16,0x14,0x3a,0x43,0x48,0x44,0x3d,0x16,0x1b,0x19,0x40,0x47,0x4b,0x48,0x43,0x1b,0x29,0x45,0x31,0x1c,0x05,0x7b,0x10,0x29,0x26,0x1a,0x1b,0x28,0x2e,0x28,0x1b,0x29,0x1c,0x29,0x31,0x29,0x1c,0x36,0x4b,0x50,0x19,0xff,0xff,0x00,0x70, -0xfe,0x3c,0x01,0x50,0x05,0xd1,0x02,0x27,0x00,0x11,0x00,0x00,0x00,0x8d,0x00,0x27,0x00,0x11,0x00,0x00,0xfe,0x52,0x00,0x27,0x00,0x11,0x00,0x00,0x02,0xca,0x00,0x07,0x00,0x11,0x00,0x00,0x05,0x06,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x1e,0x01,0x24,0x02,0x07,0x07,0xa5,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x35, -0x01,0x24,0x02,0x07,0x07,0xab,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x7f,0x01,0x24,0x02,0x07,0x07,0xb4,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x12,0xfe,0xef,0x02,0x11,0x01,0x13,0x02,0x07,0x08,0x61,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x48,0xfe,0xdc,0x02,0x40,0x01,0x26,0x02,0x07,0x07,0xac,0x00,0x00,0xfc,0x55, -0x00,0x03,0x00,0x54,0xff,0x2f,0x03,0xf2,0x06,0x50,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x1f,0xb7,0x17,0x39,0x2d,0x28,0x22,0x2e,0x39,0x1c,0xb8,0x01,0x4d,0xb3,0x23,0x16,0x39,0x0f,0xb8,0x01,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0xed,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x33,0x07,0x16, -0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e,0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x39,0x6d,0x13,0x64,0x95,0x62,0x30,0x43,0x83,0xc1,0x7f,0x11,0x6d,0x11,0x51,0x8e,0x39,0x3d,0x94,0x53,0x2e,0x01,0x65,0xb9,0xe1,0x0c,0xfe,0xb0,0x1b,0x39,0x5b,0x41,0x62,0x56,0x7f,0x54, -0x29,0x01,0x67,0x43,0x7d,0x31,0xd4,0x28,0xd1,0xe2,0x15,0x6e,0xae,0xe9,0x8f,0xa5,0x01,0x07,0xbb,0x69,0x08,0xbe,0xbe,0x05,0x25,0x20,0xb0,0x2f,0x35,0x07,0xfd,0xe9,0xfd,0x94,0x7a,0x02,0xc0,0x70,0xb7,0x8a,0x5c,0x15,0x04,0x5e,0x0b,0x59,0x95,0xc9,0xfd,0x53,0x21,0x22,0x01,0x88,0xfe,0x35,0x00,0x03,0x00,0x0c,0x00,0x00,0x04,0x44, -0x05,0x9a,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x91,0x40,0x4d,0x06,0x03,0x02,0x17,0x16,0x07,0x16,0x23,0x22,0x21,0x1a,0x19,0x09,0x08,0x1c,0x08,0x1d,0x1e,0x1f,0x20,0x1b,0x18,0x0a,0x0b,0x1c,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c,0x02,0x1b,0x11,0x92,0x17,0x20,0x14,0x06,0x0a,0x0d,0x92,0x03,0x18,0x00,0x10,0x10,0x10,0x80,0x10, -0x03,0x10,0x10,0x14,0x1c,0x03,0x15,0x03,0x08,0x0c,0x01,0x05,0x13,0x0e,0x0e,0x15,0x16,0x1d,0x05,0x05,0x0c,0x07,0x07,0x25,0x0c,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x33,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x17,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0, -0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x01,0x15,0x23,0x17,0x33,0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x04, -0x2c,0xcd,0x39,0x94,0x68,0x80,0xba,0x76,0xfe,0x25,0x72,0xbb,0x7f,0x67,0x93,0x39,0xcc,0xf8,0xb5,0xad,0xb5,0xfe,0x2e,0x01,0x8a,0x34,0xfe,0xdd,0x92,0x03,0x08,0x0b,0x53,0xd1,0x55,0x09,0x03,0x5f,0x8d,0xb3,0x8d,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x01,0x92,0x8d,0xb3,0x8d,0x02,0x3b,0xfd,0xc5,0xfe,0xc0,0xb3,0x02,0x10,0x3d,0x23,0xfe, -0xdd,0x01,0x23,0x1e,0x00,0x01,0x00,0x69,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x47,0x00,0x89,0xb1,0x01,0x2f,0xb8,0x01,0x05,0xb6,0x46,0x2f,0x30,0x01,0x30,0x09,0x26,0xb8,0x01,0x05,0x40,0x44,0x06,0xd0,0x27,0xe0,0x27,0x02,0x27,0x21,0x0e,0x35,0x44,0x27,0x30,0x06,0x3f,0x1c,0x3d,0x3c,0x3a,0x91,0x3f,0x04,0x17,0x00,0x16,0x10,0x16, -0x20,0x16,0x03,0x16,0x11,0x91,0x1c,0x13,0x3c,0x09,0x06,0x01,0x46,0x04,0x44,0x0e,0x25,0x28,0x2e,0x31,0x3c,0x05,0x35,0x21,0x16,0x16,0x44,0x08,0x00,0x00,0x44,0x7d,0x35,0x35,0x49,0x48,0x30,0x27,0x0e,0x7d,0x21,0x2f,0xe1,0xc4,0x32,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39, -0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x11,0x12,0x17,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33, -0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0xe2,0x6f,0x04,0x30,0x41,0x34,0x3a,0x01,0x52,0xfd,0xe2,0x24,0x1d,0x2d,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x1c,0x5d,0x68,0x64,0x22,0x66,0xb8,0x8d,0x53,0x1e,0x12,0x1a, -0x54,0xc7,0x16,0x17,0x45,0x4d,0x2e,0x28,0xfe,0x24,0x02,0x80,0x19,0x0f,0x15,0x36,0x56,0x6e,0x37,0xc7,0x7f,0x61,0xd4,0x5d,0xb3,0x8c,0x56,0x1a,0x26,0x03,0x41,0x04,0x2f,0x27,0x1f,0x1f,0x6b,0x16,0x17,0x23,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0xc6,0x13,0x1f,0x15,0x0b,0x29,0x5c,0x93,0x6a,0x50,0x3e,0x25,0x21,0x6b,0x0f,0x0e, -0x2a,0x26,0x17,0x14,0x6b,0x19,0x1e,0x28,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x4d,0x3a,0x00,0x02,0x00,0x56,0xff,0x2f,0x03,0xe6,0x06,0x50,0x00,0x18,0x00,0x21,0x00,0x4f,0x40,0x2d,0x13,0x20,0x15,0x91,0x0d,0x9f,0x0f,0xaf,0x0f,0x02,0x0f,0x10,0x04,0x20,0x18,0x01,0x18,0x1f,0x16,0x91,0x05,0x60,0x03,0x70, -0x03,0x02,0x03,0x02,0x13,0x10,0x16,0x03,0x8c,0x0d,0x1f,0x04,0x04,0x09,0x13,0x00,0x00,0x23,0x1b,0x7e,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x5d,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10, -0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x11,0x10,0x17,0x16,0x17,0x11,0x06,0x03,0xe6,0x73,0xa7,0x68,0xe6,0x8d,0x9b,0xaf,0x8e,0xd1,0x68,0xad,0x6d,0x7d,0x9d,0xa4,0x76,0xfd,0x97,0x7f,0x77,0x5f,0x90,0x8a,0x3c,0x48,0x0a,0xbb,0xbb,0x11,0xb2,0xc5,0x01,0x40,0x01,0x58,0xd4,0xad,0x1f,0xa6, -0x9e,0x01,0x3a,0xb3,0x55,0x01,0xfb,0x65,0x07,0x59,0x03,0x96,0xa5,0xfe,0xec,0xfe,0xfa,0x9c,0x7c,0x19,0x04,0x89,0x1f,0x00,0x00,0x02,0x00,0x42,0x00,0xc8,0x02,0x68,0x03,0x49,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x11,0x01,0x00,0x03,0x10,0x03,0x02,0x03,0x03,0x08,0x05,0x07,0x03,0x07,0x07,0x09,0x02,0x06,0x2f,0x33,0x12,0x39,0x2f, -0x33,0x00,0x2f,0xcd,0x12,0x39,0x2f,0x5d,0xcd,0x31,0x30,0x01,0x05,0x35,0x25,0x35,0x05,0x35,0x25,0x02,0x68,0xfd,0xda,0x02,0x26,0xfd,0xda,0x02,0x26,0x01,0x9a,0xd2,0x83,0xd2,0xa9,0xd2,0x83,0xd2,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0xc1,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, -0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0xc1,0xfe,0xfd,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x01,0x03,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x8f,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, -0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x8f,0xd1,0x89,0x9f,0x17,0x93,0x1f,0x9d,0xd1,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed,0x00,0x2f, -0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x35,0x77,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x77,0x00,0x01,0xff,0x29,0xfe,0x96,0x00,0xb0,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x03,0x95,0x08,0x00,0x05,0x00,0x84,0x0c,0x2f,0xfd,0xc6,0x00,0x2f,0x2f,0xed, -0x31,0x30,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x3e,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0x35,0x77,0x9d,0x1f,0x93,0x17,0x9f,0x89,0x77,0x00,0x01,0x00,0x27,0x01,0x83,0x03,0xac,0x02,0x83,0x00,0x11,0x00,0x27,0x40,0x0c,0x09,0x0f,0x96,0x03,0x06,0x96,0x11,0x2f,0x0c,0x01,0x0c,0x00,0xbc,0x01,0x03,0x00, -0x11,0x00,0x08,0x01,0x03,0x00,0x09,0x2f,0xed,0x2f,0xed,0x00,0x2f,0x5d,0xc6,0xfd,0xdc,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x24,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x04,0x33,0x32,0x35,0x03,0xac,0x60,0x7a,0x47,0xfe,0xc2,0x48,0x80,0x5e,0x60,0x7e,0x5f,0x01,0x34,0x36,0x7c,0x02,0x83,0x69,0x85,0x5f,0x71,0x6b,0x81, -0x60,0x74,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x4d,0x00,0x03,0x00,0x0d,0xb4,0x02,0x95,0x01,0x03,0x02,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x8b,0x00,0x01,0x00,0x12,0x02,0x9a,0x02,0x11,0x04,0xbe,0x00,0x0d,0x00,0x13,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01, -0x08,0xb1,0x02,0x07,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x23,0x07,0x23,0x13,0x03,0x33,0x17,0x33,0x37,0x02,0x11,0xbc,0xb8,0x91,0x6a,0x02,0x6e,0x90,0xbe,0xb6,0x92,0x67,0x02,0x6f,0x04,0xbe,0xfe,0xeb,0xfe,0xf1,0xb2,0xb2,0x01,0x0c,0x01,0x18,0xbd,0xbd,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32, -0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00, -0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38, -0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, -0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x41,0x01,0x0f,0x41,0x10,0x41,0x02,0x41,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a, -0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, -0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5, -0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xf9,0xff,0xf4,0x02,0x15,0x07,0x32, -0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0xaf,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x02,0xff,0xf4,0x02,0x32,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00, -0x01,0x07,0x04,0x37,0xfe,0xc4,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xfc,0xff,0xf4,0x02,0x24,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0xb8,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e, -0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xe5,0xff,0xf4,0x02,0x28,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xad,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, -0xff,0xee,0xff,0xf4,0x02,0x1a,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x36,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee, -0xff,0xf4,0x02,0x2d,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x37,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4, -0x02,0x20,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x43,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4,0x02,0x3a, -0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x44,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32, -0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x36,0xff,0xcc,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00, -0x01,0x07,0x04,0x37,0xff,0xd9,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0xcd,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f, -0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, -0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x36,0xff,0xc7,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14, -0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x37,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6, -0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x43,0xff,0xc5,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, -0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40, -0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x46,0xff,0xc1,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40,0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d, -0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x47,0xff,0xf3,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40, -0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07, -0x02,0x46,0xff,0x8f,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3, -0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07,0x02,0x47,0x00,0x19,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27, -0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x46,0x00,0xef, -0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00, -0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x47,0x01,0x20,0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d, -0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b,0x00,0xaa,0x01,0x07,0x02,0x46,0x00,0xd1,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f, -0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b, -0x00,0xaa,0x01,0x07,0x02,0x47,0x01,0x48,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f,0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0x00,0x03, -0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x16,0x00,0x1e,0x00,0x39,0xbc,0x00,0x0f,0x01,0x43,0x00,0x19,0x00,0x1d,0x01,0x43,0xb5,0x14,0x19,0x14,0x06,0x00,0x17,0xb8,0x01,0x44,0xb2,0x11,0x07,0x1b,0xb8,0x01,0x44,0xb2,0x0c,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x01,0x2f, -0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x13,0x32,0x11,0x10,0x23,0x22,0x11,0x10,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x04,0x8e,0xe4,0xfe,0xfe,0x3e,0xeb, -0xf9,0xef,0xec,0xe7,0xed,0xf1,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xff,0x00,0x01,0x7f,0x01,0x6c,0x02,0xdf,0xfe,0x7a,0xfe,0x84,0xfe,0xa6,0xfe,0x92,0x05,0x0d,0xfd,0xcd,0xfd,0xe2,0x02,0x14,0x02,0x3d,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x32, -0xb9,0x00,0x1a,0x01,0x43,0x40,0x11,0x13,0x19,0x19,0x00,0x06,0x00,0x1a,0x18,0x04,0x18,0x01,0x18,0x12,0x13,0x0c,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0xe6,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x23, -0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0x15,0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xd2,0x21,0x45,0x3f,0x33,0x0f,0xce, -0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x32,0x00,0x4e,0xb1,0x23,0x11,0xb8,0x01,0x43,0xb2,0x31,0x10,0x1b,0xb8,0x01,0x43,0x40,0x0c,0x27,0x31,0x27,0x31,0x27,0x00,0x08,0x00,0x12,0x27,0x20,0x10,0xb8,0x01,0x44,0xb3,0x31,0x18,0x23,0x25,0xb8,0x01,0x44,0xb3,0x22, -0x20,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0x33,0xe6,0x32,0x3f,0xe6,0x12,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe6,0x32,0x10,0xe6,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x21,0x35,0x34,0x3e,0x06,0x35,0x34,0x2e,0x02, -0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x0e,0x06,0x15,0x15,0x21,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x52,0xfd,0x88,0x36,0x58,0x70,0x75,0x70,0x58,0x36,0x41,0x71,0x96,0x54,0xde,0xa9,0xb0,0xc0,0xce,0x38,0x5b,0x74,0x7a,0x74, -0x5b,0x38,0x03,0x74,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x22,0x16,0x27,0x4a,0x4d,0x52,0x5f,0x6e,0x85,0x9f,0x60,0x5d,0x8c,0x5d,0x2f,0x83,0xde,0xa4,0xda,0x4b,0x7b,0x6b,0x61,0x61,0x66,0x76,0x8c,0x55,0x6b,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31, -0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x2d,0x00,0x73,0xb2,0x15,0x25,0x17,0xb8,0x01,0x43,0x40,0x09,0x21,0x1d,0x25,0x25,0x1d,0x21,0x03,0x0c,0x11,0xb8,0x01,0x43,0x40,0x09,0x28,0x0c,0x28,0x0c,0x06,0x00,0x15,0x1a,0x25,0xb8,0x01,0x44,0x40,0x0d,0x24,0x24,0x2b,0x80,0x1d,0x01,0x2b,0x1d,0x3b,0x1d,0x02,0x1d,0x1f,0xb8,0x01,0x44,0x40, -0x09,0x1a,0x07,0x24,0x2d,0x34,0x2d,0x02,0x2d,0x2b,0xb8,0x01,0x44,0xb2,0x0e,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0xc6,0x5d,0x3f,0xe6,0xc6,0x5d,0x5d,0x12,0x39,0x2f,0xe6,0x11,0x39,0x01,0x2f,0xc4,0x39,0x39,0x2f,0x2f,0xe6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0xe6,0x11,0x39,0x31,0x30,0x13,0x10,0x00, -0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x27,0x35,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x21,0x23,0x15,0x33,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x0b,0x79,0xcc, -0xe3,0x01,0x15,0xb7,0x9b,0x01,0x20,0xd9,0xb5,0xbc,0x8a,0x86,0x97,0xd2,0xfe,0xda,0x71,0x77,0x01,0x53,0x92,0x7b,0xb9,0x93,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xb3,0x4d,0xed,0xc1,0x8c,0xbb,0x0f,0x04,0x51,0x01,0x1b,0x96,0xc0,0x52,0xd2,0x67,0xda,0xd7,0xbd,0xe9,0x6a,0x90,0x74,0x00, -0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x1c,0x00,0x27,0x00,0x4f,0xb3,0x10,0x11,0x11,0x1a,0xb8,0x01,0x43,0x40,0x0e,0x27,0x13,0x19,0x1d,0x17,0x19,0x17,0x19,0x17,0x00,0x08,0x00,0x1b,0x18,0xb8,0x01,0x44,0x40,0x0b,0x16,0x11,0x1d,0x1d,0x12,0x1a,0x18,0x22,0x12,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01, -0x41,0x00,0x3f,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0x33,0xe6,0x32,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xe6,0x32,0x11,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x01,0x23,0x11,0x21,0x02,0x00,0x07,0x15,0x21,0x11,0x33,0x11,0x33,0x25,0x3e, -0x03,0x37,0x33,0x06,0x06,0x15,0x11,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x68,0xae,0xfe,0xfe,0xa4,0xfe,0xda,0x82,0x02,0x70,0xde,0xae,0xfc,0xde,0x35,0x6f,0x69,0x61,0x28,0x04,0x02,0x02,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe, -0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x01,0x4c,0x03,0x66,0xfe,0xe0,0xfe,0x4e,0xa4,0xa7,0xfe,0x83,0x01,0x7d,0xb7,0x3b,0x95,0xa4,0xa8,0x4e,0x2a,0x49,0x21,0xfe,0x2a,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x34,0x00,0x50,0xb1,0x23,0x17,0xb8,0x01,0x43,0xb2,0x2d, -0x34,0x21,0xb8,0x01,0x43,0x40,0x09,0x26,0x2d,0x26,0x2d,0x26,0x00,0x08,0x00,0x28,0xb8,0x01,0x44,0xb3,0x1c,0x1c,0x12,0x23,0xb8,0x01,0x44,0xb2,0x25,0x06,0x32,0xb8,0x01,0x44,0xb2,0x12,0x19,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x12,0x39,0x2f,0xe6,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, -0x10,0xe6,0x33,0x10,0xe6,0x32,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x22,0x06,0x06,0x07,0x13,0x21,0x35,0x21,0x03,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5, -0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x03,0x22,0x62,0xc7,0x6d,0xba,0x87,0x4d,0x4c,0x83,0xb0,0x63,0x07,0x1b,0x1f,0x1c,0x09,0x1b,0x01,0xec,0xfd,0x5e,0x3c,0xa5,0x3c,0x4a,0x7f,0x5d,0x35,0x2c,0x4c,0x65,0x39,0x97,0x94,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe, -0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0xc5,0x3b,0x3f,0x77,0xab,0x6d,0x6f,0xa3,0x6a,0x34,0x01,0x02,0x01,0x01,0x72,0xc6,0xfc,0xff,0x0c,0x22,0x40,0x5d,0x3b,0x3e,0x62,0x44,0x23,0x5f,0x00,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5a,0xb5,0x0c,0x2c,0x0c, -0x2c,0x1d,0x17,0xbb,0x01,0x43,0x00,0x26,0x00,0x1d,0x01,0x43,0xb5,0x11,0x26,0x11,0x06,0x00,0x23,0xb8,0x01,0x44,0x40,0x0b,0x1a,0x1a,0x0e,0x29,0x22,0x20,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44,0xb2,0x0e,0x07,0x29,0xb8,0x01,0x44,0xb2,0x14,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd, -0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x26,0x23,0x20,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x34,0x12,0x33,0x32,0x17,0x01,0x32,0x16,0x15,0x14,0x06,0x23, -0x22,0x26,0x35,0x34,0x36,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0xf2,0x58,0x96,0xfe,0xf8,0xfe,0xbe,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61,0x03,0xc5,0xa4,0x7b,0x6f,0xfe,0x99,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b, -0xfd,0x49,0x02,0xb7,0x04,0xa1,0x29,0xfe,0x3e,0xfe,0x87,0xfe,0xc9,0xfe,0xa8,0x01,0x0b,0xd3,0xca,0xf1,0x8f,0xe0,0x01,0x23,0x39,0xfe,0x08,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x3a,0xb2,0x0f,0x0c,0x15,0xb8,0x01,0x43,0x40,0x0e,0x14,0x0c,0x14, -0x0d,0x0d,0x14,0x0c,0x03,0x00,0x06,0x00,0x15,0x18,0x0f,0xb8,0x01,0x44,0xb2,0x0d,0x06,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x11,0x33,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x21,0x15,0x21,0x06,0x0a, -0x02,0x07,0x33,0x36,0x1a,0x02,0x37,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x06,0x78,0xfc,0x64,0x02,0x91,0x66,0x9c,0x75,0x55,0x1f,0xec,0x11,0x4e,0x80,0xb4,0x77,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xb2,0xc6,0xad,0xfe,0xbc,0xfe, -0xce,0xfe,0xdc,0x8d,0x94,0x01,0x38,0x01,0x4c,0x01,0x60,0xbc,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x25,0x00,0x39,0x00,0x4d,0x00,0x59,0x00,0x71,0xb3,0x21,0x0f,0x1e,0x44,0xb8,0x01,0x43,0xb2,0x14,0x14,0x0a,0xbb,0x01,0x43,0x00,0x30,0x00,0x3a,0x01,0x43,0xb2,0x1e,0x1e,0x26,0xb8,0x01,0x43,0x40,0x0b,0x00,0x30, -0x00,0x30,0x00,0x4e,0x54,0x4e,0x21,0x0f,0x2b,0xb8,0x01,0x44,0x40,0x09,0x60,0x49,0x70,0x49,0x02,0x49,0x49,0x51,0x57,0xbc,0x01,0x42,0x00,0x51,0x01,0x41,0x00,0x3f,0x01,0x44,0xb2,0x19,0x07,0x35,0xb8,0x01,0x44,0xb1,0x05,0x19,0x00,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0xe6,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39, -0x2f,0x2f,0x10,0xe6,0x33,0x2f,0xe6,0x10,0xe6,0x32,0x2f,0xe6,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x0e,0x03,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34, -0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x76,0x47,0x7d,0xac,0x66,0x67,0xac,0x7c,0x44,0x1d,0x38,0x4f,0x32,0x24,0x3a,0x29,0x17,0x3e,0x6e,0x97,0x58,0x57,0x95,0x6f,0x3f,0x52,0x4d,0x32,0x51,0x39,0x1f,0xe8,0x24,0x40,0x57,0x34,0x37, -0x59,0x3f,0x22,0x23,0x40,0x59,0x35,0x37,0x59,0x3e,0x21,0x2d,0x1c,0x33,0x48,0x2b,0x29,0x46,0x34,0x1d,0x1e,0x34,0x46,0x28,0x28,0x46,0x35,0x1f,0xfc,0x29,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x01,0x97,0x5f,0xa0,0x76,0x42,0x42,0x76,0xa0,0x5f,0x34,0x6c,0x65,0x55,0x1d,0x1b,0x43,0x4e, -0x55,0x2c,0x4f,0x89,0x65,0x3a,0x39,0x65,0x89,0x50,0x5a,0x9e,0x35,0x1d,0x56,0x64,0x6c,0x26,0x35,0x5e,0x46,0x29,0x2b,0x48,0x5d,0x32,0x38,0x5e,0x43,0x26,0x25,0x43,0x5e,0x02,0xc3,0x28,0x47,0x35,0x1e,0x1d,0x33,0x48,0x2a,0x29,0x4a,0x3a,0x22,0x22,0x39,0x4b,0xfe,0xc7,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49, -0x02,0xb7,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5c,0xb5,0x0c,0x2c,0x0c,0x2c,0x1d,0x26,0xbb,0x01,0x43,0x00,0x17,0x00,0x11,0x01,0x43,0xb5,0x1d,0x1d,0x17,0x06,0x00,0x23,0xb8,0x01,0x44,0xb4,0x1a,0x1a,0x0e,0x29,0x22,0xb8,0xff,0xe0,0xb4,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44, -0xb2,0x0e,0x19,0x29,0xb8,0x01,0x44,0xb2,0x14,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd,0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x20, -0x00,0x11,0x10,0x02,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x14,0x02,0x23,0x22,0x27,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x33,0x58,0x96,0x01,0x08,0x01,0x42,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61, -0x03,0xc5,0xa4,0x7b,0x6f,0x01,0x67,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xd7,0x29,0x01,0xc2,0x01,0x79,0x01,0x37,0x01,0x58,0xfe,0xf5,0xd3,0xca,0xf1,0x8f,0xe0,0xfe,0xdd,0x39,0x01,0xf8,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x05,0x00,0xbc, -0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x5d,0x40,0x34,0x1c,0x0d,0x1f,0x91,0x2c,0x24,0x24,0x20,0x2b,0x23,0x91,0x05,0x80,0x03,0x01,0x03,0x01,0x03,0x1d,0x20,0x91,0x14,0x16,0x00,0x09,0x7d,0x29,0x1d,0x1c,0x0c,0x2c,0x05,0x05,0x15,0x8c,0x21,0x25,0x02,0x03,0x16,0x29,0x16,0x00,0x10, -0x7d,0x1a,0x1a,0x2f,0x24,0x20,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x17,0x33,0xed,0x17,0x32,0x2f,0xe1,0x00,0x2f,0xc6,0x33,0xed,0x32,0x3f,0xc6,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x33,0x11,0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15, -0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xbc,0x01,0x3a,0x68,0x93,0x5b,0x66,0x84,0x74,0x8a,0xa6,0x7a,0x6e,0xa4,0x68,0xfd,0x47,0xdc,0x5c,0xfe,0xaa,0x92,0x92,0x92,0xc6,0x46,0xa4,0x37,0x05,0x9a,0xb6,0xb7,0x09,0x51,0x5b, -0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0x72,0x68,0x09,0xd2,0xd1,0xde,0x46,0x7a,0xd8,0x20,0xfe,0x05,0x0b,0x01,0xf6,0xfd,0xfc,0x02,0x04,0x02,0x66,0xfe,0x31,0x01,0xcf,0xfe,0x73,0x43,0x79,0xab,0x1f,0xfe,0x45,0x10,0x00,0x00,0x02,0x00,0x48,0x02,0x34,0x02,0xa5,0x05,0xae,0x00,0x0a,0x00,0x12,0x00,0x1f,0x40,0x10,0x0b,0xe6, -0x06,0x27,0x0f,0xe6,0x00,0x29,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x02,0x34,0xdb,0xd1,0xe5, -0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0x00,0x02,0x00,0x49,0x02,0x34,0x02,0xa6,0x05,0xae,0x00,0x26,0x00,0x36,0x00,0x3c,0x40,0x23,0x04,0x10,0x14,0x10,0x02,0x27,0xe6,0x04,0x10,0x14,0x10,0x02,0x10,0x10,0x31,0x06,0xe6,0x24,0x27,0x31,0xe6,0x1a,0x29,0x01,0x01,0x1f,0x15,0xcc,0x34,0x34, -0x38,0x2c,0x0c,0xcc,0x1f,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e, -0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e,0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x05,0x8b,0x81,0x09,0x10,0x0c,0x07, -0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x99,0x67,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15,0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0x02,0x00,0x49,0x02,0x33,0x02,0xa6,0x05,0xae,0x00,0x27,0x00,0x39,0x00,0x3c,0x40,0x23,0x0b,0x0b,0x1b,0x0b,0x02,0x30,0xe6,0x0b, -0x0b,0x1b,0x0b,0x02,0x0b,0x0b,0x1f,0x28,0xe6,0x15,0x27,0x00,0xe6,0x1f,0x29,0x23,0x23,0x10,0x1a,0xcc,0x35,0x06,0x06,0x3b,0x2d,0xcc,0x10,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b,0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x72,0x55,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13, -0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x02,0xaa,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82,0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2b,0x3f,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47, -0x32,0x1c,0x00,0x01,0x00,0x5d,0x02,0xcb,0x02,0x91,0x04,0xff,0x00,0x0b,0x00,0x1b,0x40,0x10,0x04,0x7f,0x07,0x9f,0x07,0x02,0x3f,0x07,0xdf,0x07,0xff,0x07,0x03,0x07,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x91,0xe8,0x64,0xe8,0xe8,0x64,0xe8,0x03, -0xb3,0xe8,0xe8,0x64,0xe8,0xe8,0x00,0x01,0x00,0x5d,0x03,0xb3,0x02,0x91,0x04,0x17,0x00,0x03,0x00,0x1b,0x40,0x10,0x02,0x7f,0x01,0x9f,0x01,0x02,0x3f,0x01,0xdf,0x01,0xff,0x01,0x03,0x01,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x04,0x17,0x64,0x00,0x00,0x02,0x00,0x5d, -0x03,0x22,0x02,0x91,0x04,0xa8,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x11,0x03,0x40,0x00,0x80,0x07,0x0f,0x04,0x2f,0x04,0x3f,0x04,0x03,0x04,0x06,0x07,0x02,0x03,0x2f,0xcd,0x33,0x32,0x00,0x2f,0x5d,0xcd,0x1a,0xde,0x1a,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x02,0x34,0xfd,0xcc,0x03,0x86, -0x64,0x01,0x86,0x64,0x00,0x01,0x00,0xcc,0x01,0xce,0x02,0x06,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x05,0x01,0x40,0x05,0x01,0x05,0x01,0x06,0x00,0x08,0xcd,0x03,0x2f,0xed,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x01,0x23,0x26,0x11,0x10,0x37,0x33,0x06,0x11,0x10,0x02,0x05,0x7f,0xba,0xba,0x80,0xbc,0x01,0xce,0xd4, -0x01,0x38,0x01,0x38,0xdc,0xe4,0xfe,0xd1,0xfe,0xd3,0x00,0x01,0x00,0x64,0x01,0xce,0x01,0x9e,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x03,0x01,0x40,0x03,0x01,0x03,0x09,0x09,0x03,0x06,0xcd,0x01,0x2f,0xfd,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x00,0x11,0x10,0x27,0x33,0x16,0x11,0x10,0x07,0x23,0x01,0x20,0xbc,0x80, -0xba,0xba,0x7f,0x02,0xae,0x01,0x2d,0x01,0x2f,0xe4,0xdc,0xfe,0xc8,0xfe,0xc8,0xd4,0x00,0x02,0x00,0x5b,0x02,0xcd,0x01,0x05,0x06,0xeb,0x00,0x0b,0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0d,0x24,0x00,0x40,0x06,0x80,0x0e,0x03,0x09,0x0c,0xc2,0x03,0x0d,0x2f,0xc4,0xfd,0xc4,0x00,0x3f,0x1a,0xdc,0x1a,0xcd,0x3f,0x31,0x30,0x13,0x22,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xaf,0x25,0x2f,0x2f,0x25,0x26,0x30,0x30,0x19,0x80,0x80,0x06,0x54,0x2b,0x21,0x1f,0x2c,0x2c,0x1f,0x20,0x2c,0xfc,0x79,0x02,0xcf,0x00,0xff,0xff,0x00,0x68,0x03,0x74,0x02,0x92,0x06,0xda,0x02,0x07,0x00,0xf1,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x81,0x03,0x5f,0x02,0x8e, -0x06,0xda,0x02,0x07,0x00,0xf2,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x50,0x03,0x74,0x01,0xc2,0x06,0xdc,0x02,0x07,0x00,0xf0,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0x03,0x60,0x02,0xa5,0x06,0xda,0x02,0x07,0x08,0x8d,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x2f,0x03,0x74,0x02,0xaa,0x06,0xc6,0x02,0x07,0x02,0x38,0x00,0x00,0x01,0x2c, -0xff,0xff,0x00,0x7b,0x03,0x5f,0x02,0x8a,0x06,0xca,0x02,0x07,0x02,0x39,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x60,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8e,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x4d,0x03,0x74,0x02,0xa0,0x06,0xd0,0x02,0x07,0x02,0x3a,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x41,0x03,0x60,0x02,0xad,0x06,0xda, -0x02,0x07,0x02,0x3b,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x5f,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8f,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x03,0xf7,0x02,0x91,0x06,0x2b,0x02,0x07,0x08,0x90,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x04,0xdf,0x02,0x91,0x05,0x43,0x02,0x07,0x08,0x91,0x00,0x00,0x01,0x2c,0xff,0xff, -0x00,0x5d,0x04,0x4e,0x02,0x91,0x05,0xd4,0x02,0x07,0x08,0x92,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0xcc,0x02,0xfa,0x02,0x06,0x07,0x1a,0x02,0x07,0x08,0x93,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x64,0x02,0xfa,0x01,0x9e,0x07,0x1a,0x02,0x07,0x08,0x94,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0xfe,0xfa,0x02,0xa5,0x02,0x74,0x03,0x07, -0x08,0x8d,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0x0e,0x01,0xc2,0x02,0x76,0x03,0x07,0x00,0xf0,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0x0e,0x02,0x92,0x02,0x74, -0x03,0x07,0x00,0xf1,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x81,0xfe,0xf9,0x02,0x8e,0x02,0x74,0x03,0x07,0x00,0xf2,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2f,0xff,0x0e,0x02,0xaa,0x02,0x60, -0x03,0x07,0x02,0x38,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7b,0xfe,0xf9,0x02,0x8a,0x02,0x64,0x03,0x07,0x02,0x39,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfe,0xfa,0x02,0xa6, -0x02,0x74,0x03,0x07,0x08,0x8e,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x4d,0xff,0x0e,0x02,0xa0,0x02,0x6a,0x03,0x07,0x02,0x3a,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x41,0xfe,0xfa, -0x02,0xad,0x02,0x74,0x03,0x07,0x02,0x3b,0x00,0x00,0xfc,0xc6,0x00,0x11,0x40,0x09,0x02,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x49,0xfe,0xf9,0x02,0xa6,0x02,0x74,0x03,0x07,0x08,0x8f,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d, -0x35,0x35,0xff,0xff,0x00,0x5d,0xff,0x91,0x02,0x91,0x01,0xc5,0x03,0x07,0x08,0x90,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x5d,0x00,0x79,0x02,0x91,0x00,0xdd,0x03,0x07,0x08,0x91,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0x5d,0xff,0xe8,0x02,0x91,0x01,0x6e,0x03,0x07,0x08,0x92,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xcc,0xfe,0x94,0x02,0x06,0x02,0xb4,0x03,0x07,0x08,0x93,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00, -0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x64,0xfe,0x94,0x01,0x9e,0x02,0xb4,0x03,0x07,0x08,0x94,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0xbc,0xfe,0x7e,0x06,0x12,0x07,0x4e,0x00,0x17,0x00,0x24,0x00,0x77,0x40,0x16,0x24,0xc4,0x18,0x1e,0xc4,0x1f,0x1f,0x00,0x0c,0x0f, -0x04,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7e,0x0e,0xb8,0xff,0xfe,0x40,0x17,0x0b,0x06,0x4d,0x0e,0x04,0x03,0x40,0x01,0x01,0x00,0x04,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x16,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xdc,0x40,0x11,0x0b,0x06,0x4d,0x05,0x24,0x1e,0x80,0x21,0xda,0x1b,0x17, -0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x01,0x2f,0x2b,0x2b,0x33,0xf1,0x2b,0x2b,0xc1,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36, -0x37,0x01,0x33,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x05,0x40,0xd2,0xb8,0xc1,0xab,0xac,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0xd4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x96,0xfd,0xe8,0x01,0x82,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89, -0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c,0x34,0x04,0x65,0x01,0xb4,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x02,0x00,0xa6,0xfe,0x8b,0x04,0xda,0x05,0xf2,0x00,0x11,0x00,0x1e,0x00,0x49,0x40,0x0a,0x1e,0xc4,0x12,0x18,0xc4,0x19,0x19,0x01,0x05,0x08,0xb8,0x01,0x2e,0xb6,0x07,0x00,0x11,0x0f,0x0f,0x40,0x0e,0xb8,0x01,0x2e,0x40,0x0f, -0x0c,0x01,0x11,0x1e,0x18,0x80,0x1b,0xda,0x15,0x0d,0x0f,0x0e,0xec,0x01,0x15,0x00,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x2f,0x01,0x2f,0x33,0xf1,0x1a,0xc9,0x2f,0xcd,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x11,0x33,0x03,0x23,0x13, -0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x04,0x19,0xad,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0xda,0xb0,0xb4,0x4e,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xfc,0x96,0xfd,0xf5,0x07,0x67,0x8d,0xa3, -0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x01,0x00,0x10,0xfe,0x7e,0x05,0x76,0x05,0x9a,0x00,0x16,0x00,0x62,0x40,0x19,0x0b,0x18,0x0b,0x00,0x4d,0x04,0x03,0x01,0x01,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x07,0x15,0x05,0x28,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xda,0x40,0x1a,0x0b,0x06,0x4d,0x20, -0x05,0x01,0x05,0x15,0x05,0x15,0x18,0x0f,0x06,0x91,0x16,0x03,0x0f,0x11,0x91,0x0c,0x13,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xfd,0xc6,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x2b,0x2b,0x11,0x33,0xf1,0x2b,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x00,0x2b,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x21,0x02,0x02, -0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xd2,0xb8,0xc1,0xab,0xac,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x96,0xfd,0xe8,0x01,0x82,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0x01,0x00,0x10,0xfe,0x8b, -0x04,0x6c,0x04,0x00,0x00,0x12,0x00,0x36,0x40,0x1c,0x07,0xed,0x11,0x04,0x03,0x01,0x01,0x00,0x84,0x11,0x0d,0x05,0x05,0x14,0x0d,0x06,0x95,0x12,0x0f,0x0f,0x95,0x0a,0x15,0x00,0xec,0x05,0x15,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xf1,0xc1,0x2f,0xcd,0x39,0x10,0xed,0x31,0x30,0x25,0x33, -0x03,0x23,0x13,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xdb,0xb0,0xb4,0xa3,0xbd,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x96,0xfd,0xf5,0x01,0x75,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x05,0xc4,0x05,0x9a,0x00,0x0f, -0x00,0x4c,0x40,0x17,0x02,0x06,0x91,0x40,0x0b,0x0a,0x07,0x0b,0x91,0x2b,0x30,0x0d,0x0a,0x03,0x0f,0x91,0x04,0x40,0x04,0x07,0x03,0x00,0x01,0xb8,0x01,0x2c,0x40,0x0e,0x02,0x80,0x00,0x00,0x0f,0x7e,0x0c,0x05,0x05,0x11,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0x1a,0xdd,0xe1,0x12,0x39,0x00,0x2f,0x33, -0x1a,0x10,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x05,0xc4,0xb8,0xc1,0xab,0xac,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x96,0xfd,0xe8,0x01,0x82,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfc,0x00,0x01,0x00,0xa6, -0xfe,0x8b,0x04,0xd3,0x04,0x00,0x00,0x0f,0x00,0x4a,0x40,0x14,0x06,0x95,0x40,0x0b,0x0a,0x07,0x0b,0x95,0x2b,0x30,0x0d,0x0a,0x0f,0x02,0x0f,0xec,0x04,0x04,0x07,0x01,0xb8,0x01,0x2c,0x40,0x10,0x02,0x03,0x00,0x00,0x03,0x03,0x0f,0x84,0x0c,0x05,0x05,0x11,0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0x33, -0x2f,0x10,0xdd,0xe1,0x00,0x2f,0x33,0x10,0xed,0x2f,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0xd3,0xb0,0xb4,0xa3,0xbe,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x96,0xfd,0xf5,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4, -0xfc,0x96,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x07,0x44,0x05,0x9a,0x00,0x1f,0x00,0x2b,0x40,0x15,0x04,0x03,0x01,0x01,0x00,0x7e,0x1e,0x05,0x05,0x21,0x17,0x14,0x7e,0x15,0x1f,0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13, -0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xd2,0xb8,0xc1,0xab,0xab,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x96,0xfd,0xe8,0x01,0x82, -0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x05,0xd3,0x04,0x00,0x00,0x17,0x00,0x29,0x40,0x14,0x04,0x03,0x01,0x16,0x00,0x84,0x05,0x05,0x19,0x11,0x0e,0xed,0x0f,0x17,0x0f,0x00,0xec,0x05,0x15,0x03,0x00,0x2f, -0x3f,0xed,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xe1,0x33,0xdd,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xdb,0xb0,0xb4,0xa3,0xbc,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49, -0x01,0x06,0xda,0x96,0xfd,0xf5,0x01,0x75,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x00,0x01,0x00,0x5a,0x01,0xfa,0x03,0xf6,0x02,0x7b,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x01,0xeb,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xf6, -0xfc,0x64,0x03,0x9c,0x01,0xfa,0x81,0x00,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x1c,0x40,0x0e,0x05,0xb4,0x07,0x01,0xb4,0x03,0x06,0xb3,0x07,0x04,0x02,0xb3,0x03,0x04,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x13,0x23,0x03,0x21,0x13,0x23,0x03,0x01,0x04,0x6c,0x76, -0x8c,0x01,0xc3,0x6f,0x76,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x03,0x00,0x8d,0x03,0xdb,0x03,0x9d,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x20,0x40,0x0e,0x08,0x0a,0x04,0x06,0x00,0x02,0x0a,0x06,0x02,0xb3,0x0b,0x07,0x03,0x03,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x2f,0xcd,0x2f,0xcd, -0x31,0x30,0x01,0x03,0x23,0x13,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x69,0x69,0x73,0x55,0x02,0xbb,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x03,0x00,0xe8,0x00,0x69,0x04,0x94,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x43,0x40,0x1b,0x02,0x01, -0xbe,0x59,0x0a,0x02,0x0e,0x59,0x0a,0x09,0xbe,0x59,0x06,0x05,0xbe,0x59,0x0a,0x06,0x42,0x06,0x4f,0x0a,0x01,0x0a,0x03,0x0b,0x04,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x04,0x02,0x0a,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x33,0x33,0x2f,0x2b,0x33,0x33,0x00,0x2f,0x5d,0xc6,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x25, -0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x69,0x84,0x02,0xc9,0x84,0xfd,0xd9,0x84,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x03,0xdf,0x05,0xb2,0x00,0x15,0x00,0x1f,0x40,0x0f,0x0b,0x15,0x15,0x17,0x10,0x7d,0x05,0x0d,0x91,0x08,0x04,0x13,0x91,0x02, -0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe1,0x11,0x39,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x03,0xdf,0x85,0xc7,0xff,0x00,0xfe,0xcb,0x01,0x5b,0x01,0x0b,0xab,0x70,0x7c,0x96,0xc7,0xf8,0xe7,0xbc,0xaf,0x7f,0x3c,0x54,0x01,0x8a,0x01, -0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0xd2,0x05,0x9a,0x00,0x25,0x00,0x32,0x40,0x1a,0x0b,0x7e,0x09,0x0c,0x0c,0x27,0x00,0x23,0x7e,0x24,0x04,0x1e,0x10,0x03,0x25,0x18,0x18,0x24,0x25,0x03,0x24,0x12,0x0c,0x12,0x09,0x03,0x00,0x3f,0x3f,0x3f, -0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x31,0x30,0x01,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x0e,0x03,0x07,0x01,0x23,0x01,0x2e,0x03,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x01,0x95,0x01,0x74,0x19,0x21,0x08,0x06,0x0a,0x1d,0x1a,0x01, -0x64,0xdc,0xa7,0x07,0x07,0x04,0x07,0x18,0x1b,0x16,0x05,0xfe,0x8f,0x52,0xfe,0x90,0x04,0x19,0x1a,0x17,0x05,0x04,0x04,0x04,0xa2,0x05,0x9a,0xfd,0x56,0x2d,0x4e,0x1d,0x1e,0x50,0x2e,0x02,0xa6,0xfa,0x66,0x03,0xc2,0x39,0x91,0x53,0x18,0x3b,0x37,0x2c,0x0b,0xfd,0x58,0x02,0xa6,0x0c,0x2d,0x37,0x3a,0x19,0x2b,0x92,0x62,0xfc,0x40,0x05, -0x9a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x2a,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0x32,0x40,0x1a,0x13,0x84,0x12,0x02,0x02,0x15,0x0d,0x09,0xed,0x0c,0x12,0x0f,0x10,0x09,0x02,0x03,0x0c,0x06,0x06,0x01,0x0c,0x0f,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1, -0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x2c,0x54,0xfe,0x42,0x01,0xbe,0x24,0x5c,0xfa,0xde,0x05,0xd6,0xfe,0x33,0x32,0x59,0x89,0x01, -0xcf,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x03,0x00,0x11,0xb3,0x03,0x02,0x1b,0x01,0xb9,0x04,0xf1,0x00,0x02,0x2f,0xed,0x00,0x3f,0x2f,0x31,0x30,0x13,0x11,0x23,0x11,0x24,0x48,0x06,0xd6,0xf7,0x92,0x08,0x6e,0x00,0x00,0x01,0xff,0x25,0xfe,0x68,0x00,0xdb,0x06,0xd6,0x00,0x0e,0x00,0x44,0x40,0x0c,0x07,0x06, -0x03,0x04,0x01,0x09,0x0a,0x0d,0x0c,0x08,0x0b,0x00,0xb8,0x04,0xf1,0x40,0x13,0x05,0x01,0x0a,0x09,0x07,0x0c,0x0d,0x08,0x0b,0x05,0x02,0x0e,0x05,0x04,0x03,0x06,0x07,0x01,0x1b,0x00,0x3f,0x2f,0x33,0xdc,0x32,0x17,0x39,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0xfd,0x32,0x39,0xde,0x32,0xc4,0x32,0x10,0xde,0x32,0xc4,0x32,0x31,0x30, -0x13,0x23,0x11,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x24,0x48,0x86,0x31,0xab,0xab,0x31,0xaa,0xaa,0x31,0xab,0xab,0x31,0x86,0xfe,0x68,0x07,0x43,0x88,0x31,0xa9,0xa8,0x31,0xab,0xab,0x31,0xa8,0xa9,0x31,0x88,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x01,0xaf,0x06,0xd6,0x00,0x0a,0x00,0x30,0xb7,0x0a,0x09,0x03, -0x08,0x00,0x01,0x02,0x07,0xb8,0x04,0xf1,0xb4,0x04,0x02,0x01,0x00,0x04,0xb8,0x04,0xf1,0xb4,0x08,0x09,0x0a,0x05,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0x39,0xcc,0x32,0x01,0x2f,0xed,0xde,0x32,0xcd,0x39,0x39,0xc4,0x32,0x31,0x30,0x01,0x07,0x27,0x37,0x21,0x11,0x23,0x11,0x21,0x27,0x37,0x01,0xaf,0xd9,0x31,0x89,0xfe,0xf6,0x48,0x01, -0x52,0x89,0x31,0x05,0xff,0xd6,0x31,0x82,0xf8,0x8c,0x07,0xbb,0x82,0x31,0x00,0x01,0xfe,0x51,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x0a,0x00,0x32,0xb7,0x03,0x09,0x06,0x05,0x04,0x07,0x08,0x0a,0xb8,0x04,0xf1,0xb5,0x02,0x06,0x09,0x04,0x05,0x02,0xb8,0x04,0xf1,0xb4,0x09,0x08,0x07,0x00,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0xcc,0x32, -0x12,0x39,0x01,0x2f,0xed,0xdc,0x32,0xc4,0x32,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x21,0x17,0x07,0x27,0x37,0x17,0x07,0x21,0x24,0x48,0xfe,0xf6,0x89,0x31,0xd9,0xd9,0x31,0x89,0x01,0x52,0xfe,0x68,0x07,0x74,0x82,0x31,0xd6,0xd7,0x31,0x82,0x00,0x00,0x01,0x00,0xab,0xff,0xf2,0x02,0x01,0x05,0xec,0x00,0x0e,0x00,0x1b,0xb1,0x0e, -0x09,0xb8,0x05,0x0a,0xb2,0x06,0x07,0x0e,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x01,0x2f,0xed,0xc4,0x31,0x30,0x05,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x02,0x01,0x14,0x66,0x7f,0x45,0x18,0x9c,0x0a,0x26,0x4a,0x40,0x0e,0x3e,0x66,0x82,0x45,0x04,0x8f,0xfb,0xac,0x42,0x60,0x3f,0x1e,0x00, -0xff,0xff,0x00,0x49,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0xff,0xa2,0xff,0xf2,0x02,0x65,0x07,0x30,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00,0xff,0xff,0x00,0x49,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7f, -0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f, -0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xa3,0xff,0xa7,0x00,0x01,0xff,0xba,0xff,0xf2, -0x04,0x7c,0x03,0x0f,0x00,0x28,0x00,0x2c,0x40,0x0a,0x0c,0x21,0x2a,0x15,0x21,0x0c,0x20,0x03,0x00,0x12,0xb8,0x04,0xff,0xb4,0x2f,0x19,0x01,0x19,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01,0x2f,0x12,0x39,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37, -0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39, -0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0x00,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x00,0x40,0x00,0x5c,0xb9,0x00,0x03,0x05,0x0b,0x40,0x0c,0x0f,0x00,0x0f,0x1c,0x0f,0x35,0x35,0x0f,0x1c,0x03,0x09,0x14,0xb8,0x05,0x0a,0xb3,0x25,0x09,0x03, -0x0f,0xb8,0x04,0xfb,0xb5,0x40,0x39,0x2d,0x2d,0x20,0x32,0xbb,0x04,0xff,0x00,0x39,0x00,0x19,0x04,0xfc,0xb6,0x1f,0x20,0x2f,0x20,0x02,0x20,0x08,0xba,0x04,0xfb,0x00,0x09,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xe4,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed, -0x31,0x30,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63, -0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80, -0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff, -0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0xff,0xba,0xff,0xf2,0x05,0xf4,0x03,0x0f,0x00,0x42,0x00,0x60,0xb1,0x18,0x00,0xbb,0x05,0x0a,0x00,0x40,0x00,0x0d,0x05,0x0a,0x40,0x09,0x0a,0x21,0x33,0x40,0x0a,0x40,0x0a,0x44,0x36,0xb8,0x05,0x0a,0xb6,0x33, -0x41,0x2f,0x35,0x01,0x35,0x26,0xba,0x05,0x03,0x00,0x1d,0x05,0x03,0xb7,0x3b,0x2e,0x2e,0x2d,0x2d,0x21,0x18,0x05,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0x3f,0xed,0x39,0x39,0x32,0x11,0x33,0x11,0x33,0x3f,0x3f,0x2f,0x5d,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10, -0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0xf3,0x0b,0x27, -0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe, -0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57, -0x00,0x02,0xff,0xba,0xff,0xea,0x07,0x4b,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x52,0xb9,0x00,0x2a,0x05,0x0a,0x40,0x0d,0x3f,0x49,0x1e,0x1e,0x15,0x3f,0x3f,0x4d,0x16,0x15,0x00,0x15,0x31,0xba,0x05,0x03,0x00,0x44,0x04,0xfb,0x40,0x0f,0x2f,0x25,0x01,0x25,0x2f,0x15,0x01,0x15,0x49,0x49,0x3a,0x3a,0x1e,0x1e,0x0c,0xba,0x04,0xfb,0x00, -0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x01,0x2f,0xcd,0x12,0x39,0x2f,0x12,0x39,0x10,0xcd,0x10,0xed,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0x98,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4, -0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x03,0x61,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x6d,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95, -0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x26,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x00,0x01,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x00,0x13,0x00,0x13,0xb6,0x0f,0x05,0x05,0x15,0x14,0x00,0x0a,0x00,0x2f,0xcd,0x11,0x12,0x01, -0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa3,0x29,0x52,0x45,0x2a,0x2b,0x44,0x52,0x29,0x29,0x51,0x43,0x29,0x29,0x43,0x51,0x01,0xac,0x29,0x43,0x51,0x29,0x28,0x53,0x44,0x2b,0x2a,0x45,0x52,0x29,0x29,0x51,0x43,0x29,0x00,0x01,0x00,0x2b,0x00,0x00,0x01,0x56, -0x05,0x9a,0x00,0x0f,0x00,0x19,0xbc,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x08,0x04,0xe6,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x17,0x26,0x1f,0x18,0x0f,0x08,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x62,0xad,0xa2,0x9f,0xaa,0xb9,0x6c, -0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x50,0x05,0x9a,0x00,0x0f,0x00,0x28,0xb5,0x03,0x0a,0x01,0x01,0x11,0x09,0xbd,0x05,0x0a,0x00,0x0a,0x00,0x09,0x04,0xe6,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x31,0x30, -0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x2b,0x03,0x25,0xfd,0xa1,0x19,0x26,0x19,0x0d,0x9c,0x11,0x23,0x36,0x05,0x9a,0xa7,0x71,0xca,0xd0,0xe4,0x89,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x00,0x01,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x00,0x38,0x00,0x5c,0xb3,0x1c,0x0d,0x32,0x1f,0xbb, -0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x40,0x0d,0x0b,0x27,0x0b,0x1a,0x0b,0x1a,0x0b,0x3a,0x32,0x03,0x2b,0x2b,0x31,0xbb,0x05,0x0a,0x00,0x32,0x00,0x31,0x04,0xe6,0xb4,0x2b,0x2b,0x29,0x29,0x24,0xb8,0x04,0xfc,0xb7,0x06,0x15,0x1c,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0x2f,0x33,0xed,0x32,0x2f,0x32,0x2f,0x3f,0x01, -0x2f,0xed,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e, -0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x15,0x24,0x0f,0x15,0x26,0x11,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x1f,0x1d,0x34,0x17,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x26,0x4a,0x6c,0x46,0x2d,0x67,0x3c,0x47,0x63,0x29,0x2b,0x0b,0x10,0x0b,0x06,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x5b,0xa1,0x4c,0x05,0x04,0x1c,0x30, -0x3f,0x24,0x54,0x4e,0x59,0x56,0x51,0x40,0x09,0x08,0x1c,0x30,0x3f,0x24,0x54,0x4e,0x59,0x56,0x3e,0x6b,0x4f,0x2d,0x18,0x1c,0x33,0x09,0x43,0x88,0x91,0x9f,0x5a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x01,0x00,0x62,0xff,0xea,0x02,0xf5,0x05,0xb8,0x00,0x31,0x00,0x3f,0xb9,0x00,0x2c,0x05,0x0a,0xb2,0x21,0x21, -0x07,0xb8,0x05,0x0a,0xb7,0x17,0x17,0x33,0x32,0x31,0x1c,0x12,0x27,0xb8,0x05,0x02,0xb7,0x2f,0x26,0x01,0x26,0x0f,0x10,0x10,0x0c,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0x00,0x3f,0xed,0x33,0x11,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32, -0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x67,0x54,0x76,0x50,0x2e,0x18,0x07,0x2b,0x47,0x58,0x2d,0x4b,0x79,0x3a,0x7e,0x8e,0x47,0x8b,0x70,0x45,0x1b,0x42,0x6f,0x54,0x50,0x6b,0x3f,0x1a,0x2c,0x6d,0xb6,0x8a,0x73,0x87,0x45, -0x14,0x1f,0x52,0x90,0x72,0x03,0x13,0x4e,0x7f,0x67,0x50,0x3b,0x29,0x0c,0x2a,0x35,0x1d,0x0a,0x13,0x0f,0xa5,0x2c,0x1d,0x40,0x65,0x47,0x29,0x69,0x7e,0x93,0x53,0x25,0x44,0x45,0x49,0x2a,0x36,0x71,0x6f,0x69,0x2f,0xb0,0x24,0x46,0x3f,0x33,0x10,0x18,0x29,0x35,0x48,0x38,0x00,0x02,0x00,0x4f,0x00,0x9c,0x03,0xa9,0x04,0xd2,0x00,0x15, -0x00,0x29,0x00,0x31,0xb9,0x00,0x1b,0x05,0x0a,0xb3,0x0f,0x0f,0x2a,0x05,0xbb,0x05,0x0a,0x00,0x25,0x00,0x0a,0x04,0xfb,0xb4,0x2f,0x20,0x01,0x20,0x16,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0xf4,0x47,0x9b,0x80,0x53,0x3d,0x72,0xa4,0x67,0x65,0x9b,0x6a,0x36,0x27,0x41,0x56,0x5e,0x5f,0x28,0x28,0x5c,0x4e,0x34,0x2a,0x48,0x5f,0x36,0x4a,0x6a,0x45,0x20,0x3b,0x56,0x62,0x04,0xd2,0x55,0xa5,0xf2,0x9c,0x60,0x9f, -0x71,0x3e,0x38,0x66,0x90,0x59,0x69,0xb7,0x99,0x78,0x52,0x2c,0xa2,0x4a,0x85,0xbb,0x70,0x41,0x5c,0x3a,0x1a,0x22,0x3e,0x58,0x37,0x77,0xbd,0x83,0x45,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x03,0x92,0x05,0x9a,0x00,0x15,0x00,0x22,0xb1,0x15,0x0e,0xb8,0x05,0x0a,0xb2,0x00,0x09,0x0a,0xb8,0x04,0xfb,0xb4,0x2f,0x0d,0x01,0x0d,0x00,0xb8, -0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0xee,0x18,0x25,0x1c,0x15,0x0e,0x0b,0x07,0x06,0x03,0x03,0xfd,0x9b,0x02,0xfc,0x06,0x04,0x08,0x0d,0x14,0x21,0x31,0x22,0x66,0xa6,0x8e,0x7c,0x79,0x7b,0x8d,0xa4,0x65,0x53,0xa7,0xc6,0x8c,0xd7, -0xb7,0xa6,0xb5,0xd5,0x8a,0x00,0x00,0x01,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x11,0x00,0x14,0xb1,0x04,0x0b,0xb8,0x04,0xe6,0xb4,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x3f,0x39,0x31,0x30,0x13,0x12,0x12,0x13,0x33,0x12,0x12,0x13,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x93,0x65,0xae,0x4e,0x06,0x51,0xad, -0x64,0x9e,0x80,0xd8,0x61,0x94,0x33,0x69,0x6d,0x73,0x3d,0x05,0x9a,0xfe,0xf0,0xfd,0xc1,0xfe,0xcb,0x01,0x36,0x02,0x3f,0x01,0x0f,0xfe,0x9f,0xfd,0x39,0xfe,0x8e,0xc2,0x01,0x71,0x01,0x64,0x01,0x59,0xaa,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x04,0x4f,0x05,0x9a,0x00,0x11,0x00,0x21,0x40,0x0d,0x11,0x00,0x00,0x13,0x07,0x08,0x04,0x2f, -0x0d,0x01,0x0d,0x07,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x32,0x2f,0x5d,0x39,0x01,0x2f,0x33,0x12,0x39,0x11,0x33,0x31,0x30,0x21,0x02,0x02,0x03,0x23,0x02,0x02,0x03,0x23,0x36,0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x03,0xb0,0x65,0xae,0x4e,0x06,0x51,0xad,0x64,0x9e,0x40,0x75,0x6d,0x66,0x31,0x94,0x66,0xd8,0x7b,0x01,0x10,0x02,0x3f,0x01, -0x35,0xfe,0xca,0xfd,0xc1,0xfe,0xf1,0xb1,0x01,0x61,0x01,0x65,0x01,0x6a,0xb9,0xfe,0x7d,0xfd,0x3c,0xfe,0xad,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x00,0x1e,0x00,0x33,0x00,0x3a,0xb9,0x00,0x1a,0x05,0x0a,0xb4,0x06,0x1f,0x1f,0x35,0x2c,0xb8,0x05,0x0a,0xb2,0x0d,0x06,0x08,0xb8,0x04,0xfb,0xb4,0x2f,0x31,0x01,0x31, -0x27,0xb8,0x04,0xfb,0xb4,0x2f,0x12,0x01,0x12,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e, -0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0xdb,0x9f,0x29,0x36,0x24,0x15,0x08,0x7e,0x78,0x50,0x8d,0x69,0x3e,0x33,0x60,0x8c,0x5a,0x58,0x8d,0x3c,0x20,0x26,0x16,0x0c,0x06,0x07,0x14,0x26,0x3e,0xfe,0xe5,0x04,0x08,0x0a,0x0e,0x0a,0x23,0x6f,0x45,0x2c,0x4b,0x37,0x20,0x28,0x46,0x61,0x39,0x30,0x67,0x61,0xbd,0xb1,0xa3,0x48,0x3b, -0x34,0x61,0x8e,0x5a,0x50,0x9a,0x78,0x4a,0x51,0x5e,0x33,0x63,0x6d,0x7b,0x49,0x52,0xb5,0xcb,0xe2,0x02,0xd4,0x2a,0x42,0x38,0x32,0x1a,0x58,0x61,0x26,0x40,0x58,0x31,0x37,0x56,0x3c,0x1f,0x17,0x00,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x01, -0xff,0xba,0xff,0xf2,0x04,0x3c,0x03,0x8a,0x00,0x2c,0x00,0x36,0xb9,0x00,0x24,0x05,0x0a,0xb5,0x13,0x13,0x2e,0x2d,0x1c,0x1f,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x18,0x01,0x18,0x00,0x2c,0x2c,0x29,0x29,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0xed, -0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x37,0x04,0x3c,0x78,0xd5,0xc9,0xc5,0x67,0xfa,0x23,0x23,0x23,0x23,0x01,0x71,0x01,0x3e,0x4e,0x2c,0x0f,0x45,0x82,0xbc,0x77,0x28, -0x59,0x30,0x2e,0x63,0x36,0x3f,0x76,0x5c,0x37,0x16,0x36,0x5c,0x47,0x80,0xf9,0x8c,0xab,0x37,0x47,0x2a,0x11,0x34,0x20,0x20,0x33,0x06,0x33,0x63,0x5c,0x51,0x21,0x4f,0x8e,0x6b,0x3f,0x08,0x09,0xaa,0x08,0x0b,0x14,0x35,0x5a,0x45,0x21,0x4c,0x53,0x59,0x2e,0x19,0x54,0x42,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x5e,0x00,0x29, -0x00,0x38,0x00,0x47,0xb3,0x28,0x13,0x23,0x31,0xb8,0x05,0x0a,0xb3,0x16,0x16,0x39,0x23,0xb8,0x05,0x0a,0xb7,0x2a,0x05,0x13,0x28,0x34,0x04,0x01,0x2d,0xb8,0x04,0xff,0xb7,0x2f,0x1c,0x01,0x1c,0x10,0x0f,0x0f,0x00,0xbb,0x04,0xfb,0x00,0x08,0x00,0x01,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01, -0x2f,0xed,0x11,0x33,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x06,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x36,0x37,0x26,0x26,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x16,0x17,0x3e,0x03,0x04,0xad,0x3e,0x87, -0xef,0x6d,0x67,0xfe,0xf0,0xae,0x67,0x23,0x23,0x23,0x23,0x71,0x80,0xc7,0x4f,0x6a,0xad,0x45,0x2d,0x72,0x7e,0x85,0x3f,0x27,0x54,0x50,0x47,0x36,0x20,0x19,0x35,0x52,0x39,0xb8,0x7c,0x79,0x67,0x4c,0x9e,0x49,0x45,0xa7,0x69,0x34,0x49,0x2d,0x14,0x99,0xa7,0x4a,0x45,0x40,0x4f,0x34,0x20,0x20,0x33,0x2a,0x23,0x58,0xd0,0x70,0xad,0x07, -0x12,0x0f,0x0b,0x05,0x10,0x1c,0x2d,0x41,0x2c,0x26,0x65,0x70,0x74,0x36,0x55,0x01,0xcb,0x33,0x2a,0x0f,0x08,0x0b,0x6a,0xb1,0x48,0x29,0x58,0x51,0x42,0x00,0x00,0x02,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x00,0x3c,0x00,0x4a,0x00,0x63,0xb3,0x3a,0x23,0x1e,0x35,0xbb,0x05,0x0a,0x00,0x3d,0x00,0x44,0x05,0x0a,0xb2,0x28,0x28,0x0d, -0xb8,0x05,0x0a,0x40,0x0e,0x1e,0x3d,0x1e,0x3d,0x1e,0x4c,0x4b,0x08,0x3a,0x23,0x46,0x04,0x02,0x40,0xb8,0x04,0xff,0xb5,0x2f,0x2e,0x01,0x2e,0x15,0x12,0xb8,0x04,0xfc,0xb7,0x16,0x1f,0x19,0x2f,0x19,0x02,0x19,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x12, -0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x16, -0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x17,0x3e,0x03,0x04,0x98,0x15,0x3e,0x56,0xa3,0x98,0x8d,0x40,0x4d,0x68,0x40,0x1b,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x1c,0x48,0x7e,0x62,0x20,0x46,0x44,0x3e,0x16,0x2d,0x72,0x7f,0x85,0x3f,0x27,0x54,0x4f,0x48,0x35,0x20,0x1b,0x48,0x80,0x66,0x70, -0xf2,0xb6,0x78,0x67,0x4c,0x9f,0x49,0x71,0x87,0x55,0x6e,0x40,0x18,0x99,0xa7,0x26,0x45,0x61,0x3b,0x20,0x46,0x4a,0x4f,0x28,0x40,0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x36,0x69,0x69,0x67,0x33,0x22,0x58,0x5e,0x5d,0x26,0xa5,0x07,0x12,0x0f,0x0b,0x06,0x0f,0x1b,0x2c,0x3e,0x2a,0x23,0x5f,0x6b,0x6f,0x31,0x52, -0x59,0x02,0x07,0x2f,0x29,0x0f,0x08,0x0d,0xb0,0x81,0x26,0x4d,0x44,0x36,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x02,0xff,0xff, -0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x01,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x51,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, -0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, -0x0f,0x51,0x00,0xd5,0x04,0x74,0x00,0x01,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x00,0x21,0x00,0x33,0xb9,0x00,0x1a,0x05,0x0a,0x40,0x12,0x0c,0x0c,0x23,0x22,0x11,0x12,0x0c,0x1a,0x15,0x12,0x04,0x00,0x14,0x2f,0x13,0x01,0x13,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0x12,0x17,0x39,0x11,0x33,0x11, -0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0b,0x23,0x42,0x6d,0xa0,0x6f,0x0e,0x34, -0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8a,0x97,0xa6,0x5d,0x1e,0x4a,0x4d,0x49,0x39,0x22,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0xf2,0x05,0xec,0x00,0x16,0x00,0x20,0xb9,0x00,0x08,0x05,0x0a,0xb4,0x05,0x05,0x18,0x17,0x00,0xbb,0x04,0xfb,0x00,0x0f,0x05,0x03,0x00,0x06, -0x00,0x2f,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x04,0x99,0xfb,0x60,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34, -0x20,0x20,0x33,0x00,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0xf4,0x02,0xaf,0x00,0x23,0x00,0x33,0x00,0x39,0xb9,0x00,0x16,0x05,0x0a,0x40,0x0a,0x2a,0x2a,0x35,0x34,0x20,0x24,0x0c,0x03,0x11,0x1b,0xba,0x05,0x03,0x00,0x2f,0x04,0xfb,0xb5,0x2f,0x11,0x01,0x11,0x27,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d, -0xed,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57, -0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f, -0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x02,0x06,0x0e,0x5c,0x00,0x00,0x00,0x03,0x00,0x67,0xfd,0xff,0x05,0x58, -0x03,0x56,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x61,0xb1,0x3f,0x40,0xb8,0x05,0x0a,0xb7,0x00,0x0b,0x0b,0x00,0x00,0x50,0x24,0x17,0xb8,0x05,0x0a,0xb4,0x35,0x4a,0x4a,0x35,0x45,0xb8,0x04,0xfb,0xb6,0x1f,0x29,0x2f,0x29,0x02,0x29,0x3a,0xb8,0x04,0xfb,0x40,0x0c,0x2f,0x12,0x01,0x12,0x3f,0x30,0x30,0x1e,0x1e,0x1d,0x1d,0x0b,0xb8,0x04, -0xfb,0xb2,0x40,0x20,0x00,0xb8,0x05,0x03,0x00,0x3f,0x32,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x27,0x1e,0x03,0x33,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17, -0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x01,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x02,0x01,0x53,0x7d,0x5b,0x3c,0x13,0x20,0x2c,0x5a,0x65,0x73,0x45,0x15,0x41,0x4e,0x55,0x52,0x49,0x1c,0x2e,0x53,0x3f,0x25,0x17, -0x27,0x34,0x1c,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x28,0x48,0x64,0x3d,0x26,0x55,0x56,0x50,0x3f,0x29,0x01,0x21,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x15,0x1a,0x48,0x48,0x3c,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x29,0x21,0x2d,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x0e,0x03,0x04,0x06,0x03,0xa9,0x05,0x07,0x04,0x02,0x85,0xcf,0x9c,0x6c, -0x43,0x1e,0x45,0x6e,0x88,0x43,0x35,0x5b,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x78,0x3e,0x34,0x60,0x4a,0x2c,0x14,0x2e,0x4b,0x6f,0x96,0x01,0x08,0x33,0x53,0x69,0x36,0x28,0x55,0x46,0x2c,0x47,0x87,0xc7,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7, -0x00,0x1b,0x00,0x29,0x00,0x3f,0xb9,0x00,0x1c,0x05,0x0a,0xb4,0x16,0x16,0x2a,0x24,0x01,0xbb,0x05,0x0a,0x00,0x00,0x00,0x11,0x04,0xfb,0xb4,0x2f,0x21,0x01,0x21,0x07,0xbc,0x04,0xfb,0x00,0x08,0x05,0x03,0x00,0x25,0x04,0xfc,0xb4,0x1b,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xdd,0xed,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x11, -0x33,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x02,0xac,0x9c,0x0f,0x29,0x48,0x3a,0x16,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65, -0xfe,0x8b,0x24,0x3a,0x4f,0x2a,0x27,0x55,0x22,0x4c,0x88,0x66,0x3b,0x03,0xd7,0xfd,0xb5,0x3e,0x5c,0x3c,0x1d,0xa7,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0xfe,0x66,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26, -0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x05,0x64,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x29,0x04,0xb4,0x00,0x01,0x00,0x9a, -0xff,0x02,0x06,0xae,0x02,0x13,0x00,0x44,0x00,0x4c,0xb9,0x00,0x36,0x05,0x0a,0xb2,0x0f,0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x31,0x31,0x46,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x3b,0x01,0x3b,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00, -0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, -0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e, -0x21,0x2a,0x3b,0x52,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x00,0x01, -0x00,0x6f,0xff,0xea,0x01,0x76,0x01,0xe7,0x00,0x12,0x00,0x1c,0xb1,0x09,0x0e,0xb8,0x05,0x0c,0xb5,0x05,0x05,0x14,0x13,0x08,0x00,0xb8,0x05,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x31,0x30,0x17,0x22,0x2e,0x02,0x35,0x34,0x37,0x13,0x33,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0xf1,0x1b,0x2f,0x23,0x15,0x0a,0x6a, -0x75,0x4b,0x64,0x02,0x03,0x15,0x24,0x30,0x16,0x15,0x24,0x2f,0x1b,0x15,0x1e,0x01,0x47,0xfe,0xe3,0x23,0x0e,0x18,0x0b,0x23,0x35,0x23,0x11,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35, -0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8c,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8d,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, -0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x49,0xff,0xea,0x03,0xf3,0x07,0x78,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff, -0x00,0x49,0xff,0xea,0x04,0xad,0x07,0x78,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0xff,0xa2,0xff,0xea,0x03,0xf3,0x06,0xbf,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d, -0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x06,0xae,0x04,0x21,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x00,0xfe,0xea,0x01,0x77,0x00,0xe4,0x00,0x0f,0x00,0x0a,0xb2,0x02,0x0d,0x07,0x00,0x2f,0x2f,0xcd, -0x30,0x31,0x15,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x36,0x2c,0x4a,0x41,0x2f,0x8c,0x2d,0x94,0x79,0x37,0x33,0x7b,0x0e,0x48,0x47,0x5e,0x80,0x79,0x6e,0x82,0x91,0x15,0xff,0xff,0xff,0xa2,0xff,0xea,0x04,0xad,0x06,0xbf,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00, -0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x6f,0xff,0xea,0x01,0x76,0x04,0x00,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x08,0xf8,0x00,0x00,0x02,0x19,0x00,0x02,0x00,0xab,0xff,0xee,0x03,0x57,0x05,0xb3,0x00,0x29,0x00,0x3d,0x00,0x3e,0xb5,0x00,0x2f,0x24,0x39,0x39, -0x24,0xb8,0x05,0x0a,0xb3,0x05,0x05,0x3f,0x1d,0xbd,0x05,0x0a,0x00,0x0c,0x00,0x34,0x04,0xfe,0x00,0x2a,0x05,0x03,0xb2,0x14,0x15,0x18,0xb8,0x04,0xfc,0xb3,0x2f,0x11,0x01,0x11,0x00,0x2f,0x5d,0xfd,0xc2,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x10,0xc4,0x39,0x31,0x30,0x01,0x3e,0x03,0x35,0x34,0x2e,0x04,0x35, -0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x03,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xf5,0x04,0x08,0x06,0x04,0x34,0x4e,0x5c,0x4e,0x34,0x3e,0x6c,0x91,0x53,0x48,0x91,0x45,0x3d,0x97,0x46,0x34,0x58,0x41,0x24, -0x33,0x4c,0x58,0x4c,0x33,0x04,0x06,0x09,0x04,0x5a,0x15,0x28,0x1f,0x13,0x12,0x1f,0x28,0x16,0x16,0x28,0x1f,0x12,0x13,0x1f,0x28,0x01,0x8e,0x0c,0x22,0x26,0x25,0x0f,0x3c,0x5b,0x4e,0x4a,0x58,0x6f,0x4b,0x51,0x81,0x5a,0x30,0x23,0x2a,0xac,0x39,0x34,0x1b,0x32,0x48,0x2e,0x38,0x5b,0x53,0x51,0x5c,0x6c,0x44,0x13,0x2a,0x27,0x23,0x0c, -0xfe,0x60,0x11,0x1d,0x28,0x18,0x17,0x29,0x1e,0x11,0x11,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0xe5,0x02,0xb4,0x00,0x1e,0x00,0x3a,0xb5,0x0c,0x00,0x0c,0x00,0x20,0x08,0xb8,0x05,0x0a,0xb3,0x16,0x1e,0x1e,0x03,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x1b,0x01,0x1b,0x10,0x10,0x0f,0x0f,0x0b,0xba,0x04,0xfb, -0x00,0x0d,0x04,0xe6,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x2f,0x5d,0xed,0x33,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x27,0x33,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x02,0xac,0x1d,0x43,0x20,0x30,0x53,0x3d,0x24,0x7b,0x79, -0xa9,0xfd,0x92,0x1d,0xa9,0x01,0x19,0x22,0x15,0x09,0x37,0x66,0x8f,0x58,0x1c,0x41,0x20,0x01,0xff,0x05,0x07,0x13,0x2a,0x42,0x30,0x5b,0x5e,0xa3,0x99,0x06,0x19,0x38,0x3b,0x39,0x19,0x45,0x72,0x52,0x2e,0x05,0x05,0x00,0xff,0xff,0xff,0xa2,0x00,0x00,0x02,0x65,0x07,0x30,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00, -0xff,0xff,0x00,0x49,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfd,0xfe, -0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7f,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x55,0x05,0x91,0x04,0xcc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x39,0xfc,0xe3,0x00,0x01,0x00,0xab,0x00,0x00,0x01,0x47,0x05,0xec,0x00,0x03,0x00,0x15,0xbd,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x02,0x04, -0xe6,0x00,0x01,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x23,0xab,0x9c,0x9c,0x05,0xec,0xfa,0x14,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07, -0x0f,0x51,0x01,0x01,0x04,0xad,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54, -0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xc8,0xff,0xcf,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x40,0x40,0x0a,0x1d,0x00,0x31,0x03,0x16,0x0d,0x0d,0x33,0x26,0x05,0xb8,0x05,0x0a,0xb6,0x16,0x00,0x1d,0x31,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xff,0xb6,0x0e,0x1f, -0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, -0x32,0x1e,0x04,0x17,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26, -0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0x00,0x52,0xff,0xea,0x03,0x4a,0x03,0xba,0x00,0x19, -0x00,0x24,0xb9,0x00,0x11,0x05,0x0a,0xb4,0x08,0x08,0x1b,0x1a,0x03,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb3,0x2f,0x0e,0x01,0x0e,0x00,0x2f,0x5d,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x52,0x61,0xa6, -0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x9f,0x9c,0x48,0x7a,0xa0,0x57,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xb1,0xfe,0xbf,0x91,0x63,0x80,0x4c,0x1e,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab, -0x04,0xad,0x00,0x01,0x00,0x00,0xfd,0xff,0x02,0x9e,0x02,0x5e,0x00,0x1a,0x00,0x26,0xb9,0x00,0x12,0x05,0x0a,0xb2,0x07,0x00,0x02,0xb8,0x04,0xfb,0x40,0x0b,0x1a,0x1f,0x17,0x2f,0x17,0x02,0x17,0x2f,0x0d,0x01,0x0d,0x00,0x2f,0x5d,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x11,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, -0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0xd1,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e,0x8a,0xd4,0x90,0x4a,0x16,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff, -0x02,0x9e,0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x03,0x0f,0x00,0x4d,0x00,0x74,0xb9,0x00,0x1b,0x05,0x0a,0xb2,0x18,0x26,0x0e,0xb8,0x05,0x0a,0xb3,0x0b,0x2f,0x2f,0x03,0xb8,0x05,0x0a,0x40,0x0a,0x4a,0x18,0x0b,0x4a,0x4a,0x0b,0x18,0x03,0x4f,0x40, -0xb8,0x05,0x0a,0xb5,0x39,0x2f,0x3d,0x01,0x3d,0x45,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x34,0x2f,0x34,0x02,0x34,0x26,0x2f,0x13,0x06,0xbc,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00,0x20,0x05,0x03,0x40,0x09,0x19,0x20,0x0d,0x01,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x39,0x2f,0x5d,0xed,0x2f,0x5d, -0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23, -0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x80,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x38,0x5d,0x78,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03, -0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x02,0x01,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01, -0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x00,0x42,0x00,0x56, -0x00,0x57,0xb3,0x54,0x09,0x13,0x3c,0xbe,0x05,0x0a,0x00,0x48,0x00,0x1a,0x05,0x0a,0x00,0x13,0x00,0x4d,0x04,0xfb,0x40,0x0d,0x2f,0x37,0x01,0x37,0x2f,0x28,0x01,0x28,0x2f,0x17,0x01,0x17,0x1f,0xb8,0x04,0xfb,0x40,0x0c,0x1f,0x0e,0x2f,0x0e,0x02,0x0e,0x54,0x54,0x43,0x43,0x09,0x30,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed, -0x39,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e, -0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x07,0x93,0xa1,0xe7,0x9d,0x5e,0x18,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81,0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b, -0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9b,0x3b,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x16,0x01,0x03,0x08,0x07,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, -0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26, -0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x3a,0xb9,0x00,0x0d,0x05,0x0a,0xb2,0x26,0x32,0x01,0xb8,0x05,0x0a,0xb5,0x00,0x32,0x32,0x21,0x21,0x1d,0xb8,0x04,0xfb,0xb3,0x03,0x1a,0x01,0x14,0xba,0x05,0x03,0x00,0x2b,0x04,0xfb,0xb1,0x08, -0x01,0x00,0x2f,0x2f,0xed,0x3f,0x12,0x39,0x39,0xed,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16, -0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66, -0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0x00,0x01,0x00,0x65,0xfd,0xff, -0x04,0x2d,0x04,0x2a,0x00,0x37,0x00,0x52,0xb4,0x29,0x00,0x16,0x39,0x31,0xb8,0x05,0x0a,0xb2,0x20,0x20,0x05,0xb8,0x05,0x0a,0xb4,0x16,0x28,0x29,0x29,0x2c,0xb8,0x04,0xfb,0x40,0x0d,0x25,0x00,0x34,0x1b,0x37,0x37,0x11,0x2f,0x25,0x01,0x25,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed, -0x32,0x2f,0x5d,0x12,0x39,0x2f,0x39,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22, -0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x5c,0xaf,0xe8,0x8b,0x39,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x14,0x31,0x53,0x3f,0x26,0x37,0x23,0x11,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x56,0x2a,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd1,0x89,0x01,0x9a,0x2e,0x66,0x72,0x7d,0x45,0x40, -0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x31,0x64,0x65,0x64,0x30,0x24,0x51,0x55,0x56,0x29,0x4f,0x92,0x70,0x42,0x08,0x09,0xaa,0x08,0x0b,0x16,0x38,0x5d,0x46,0x4c,0x7f,0x2b,0x2d,0x52,0x24,0x00,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xe4, -0x04,0xdf,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0x56,0x00,0x99,0x00,0x08,0x00,0x13,0xb2,0x08,0x04,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x01,0x56,0xfe,0xaa,0x23,0x23,0x23,0x23,0x01,0x56,0x0e,0x34,0x20,0x20,0x33,0x00,0xff,0xff,0x00,0xab, -0xff,0xea,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x05,0xf4,0x05,0xec,0x00,0x25,0x00,0x46,0x00,0x71,0xbf,0x00,0x13,0x05, -0x0a,0x00,0x10,0x00,0x41,0x05,0x0b,0x00,0x28,0x00,0x39,0x05,0x0b,0x40,0x10,0x30,0x36,0x10,0x28,0x26,0x30,0x22,0x10,0x28,0x30,0x30,0x28,0x10,0x03,0x48,0x03,0xbe,0x05,0x0a,0x00,0x22,0x00,0x26,0x04,0xfd,0x00,0x46,0x00,0x36,0x04,0xfd,0x40,0x0a,0x28,0x41,0x30,0x39,0x04,0x1a,0x35,0x35,0x11,0x0b,0xba,0x04,0xfb,0x00,0x1a,0x05, -0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e, -0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x2d,0x52,0x71,0x88,0x9a,0x51,0x76,0xc2,0x9b, -0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f,0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0x6e,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58, -0x3d,0x70,0x33,0x57,0x0b,0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x01,0x00,0x9b,0xfe,0xac,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x25,0xbf,0x00,0x03,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00, -0x08,0x04,0xfb,0xb5,0x15,0x0f,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81, -0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x00,0x02,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x00,0x26,0x00,0x38,0x00,0x41,0xb2,0x17,0x1b,0x05,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x12,0x05, -0x0a,0x40,0x0a,0x1b,0x2f,0x17,0x01,0x17,0x20,0x34,0x34,0x00,0x27,0xbd,0x04,0xfb,0x00,0x0f,0x00,0x0a,0x05,0x03,0x00,0x31,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x02,0xac,0x4c,0x79,0x55,0x2e,0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45, -0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4, -0xad,0x05,0x0f,0x0d,0x09,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x03,0x5c,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x02,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x00,0x17,0x00,0x29,0x00,0x36,0xb9,0x00,0x06,0x05,0x0a,0xb6,0x20,0x20,0x10,0x2b,0x00,0x00,0x18,0xb8,0x05,0x0a,0xb4,0x10, -0x15,0x25,0x01,0x1d,0xba,0x04,0xfb,0x00,0x0b,0x05,0x03,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x37,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34, -0x2e,0x02,0x27,0x0e,0x03,0x01,0x3f,0x60,0x76,0xa7,0x6a,0x31,0x30,0x5a,0x83,0x53,0x51,0x7c,0x54,0x2b,0x2a,0x43,0x56,0x2c,0x15,0x2d,0x13,0x1d,0x32,0x42,0x25,0x66,0x5c,0x12,0x2b,0x46,0x34,0x29,0x47,0x34,0x1d,0x03,0x4f,0x7f,0x4e,0x9f,0xa5,0xaa,0x59,0x4b,0x7b,0x59,0x30,0x2b,0x50,0x70,0x45,0x53,0x96,0x7f,0x65,0x23,0x11,0x22, -0xfd,0xfb,0x2d,0x3e,0x28,0x12,0x58,0x4b,0x2e,0x5a,0x5c,0x5f,0x33,0x1d,0x52,0x60,0x6d,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x47,0xb2,0x23,0x23,0x1a,0xb8,0x05,0x0a,0xb3,0x08,0x08,0x38,0x2f,0xb8,0x05,0x0a,0xb2,0x0f,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x22,0x1f,0x1f,0x2f,0x1f,0x02,0x1f, -0x2a,0xb8,0x04,0xfb,0xb5,0x2f,0x14,0x01,0x14,0x08,0x34,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, -0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c, -0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x01,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x00,0x35, -0x00,0x42,0xb2,0x09,0x05,0x2f,0xbb,0x05,0x0a,0x00,0x16,0x00,0x28,0x05,0x0a,0xb6,0x1d,0x16,0x1d,0x16,0x1d,0x37,0x0c,0xb8,0x05,0x0a,0xb2,0x05,0x28,0x23,0xbe,0x04,0xff,0x00,0x22,0x00,0x00,0x04,0xfb,0x00,0x11,0x04,0xe6,0x00,0x09,0x00,0x2f,0x3f,0xed,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, -0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b, -0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f, -0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0x8d,0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00, -0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x01,0x11,0x58,0x00,0x02,0xff,0x33,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x23,0x00,0x31,0x00,0x3b,0xb2,0x20,0x13,0x1d,0xb8,0x05,0x0d,0xb5,0x24,0x23,0x23,0x24, -0x11,0x2c,0xb8,0x05,0x0d,0xb4,0x13,0x0b,0x08,0x05,0x18,0xb8,0x04,0xfd,0xb3,0x27,0x20,0x2f,0x0e,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37, -0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2f,0x21,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1f,0x31,0x3f,0x21,0x1f,0x3b,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04, -0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x45,0x45,0x26,0x3b,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71, -0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0xfe,0xb8,0x58,0x01,0x11,0x58,0x00,0x01,0x00,0x05,0x06,0x7c, -0x02,0x01,0x06,0xd4,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02,0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x00,0x00,0x02,0xff,0xbf,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x22,0x00,0x30,0x00,0x35,0xb2,0x1f,0x12,0x1c,0xb8,0x05,0x0d,0xb5,0x23,0x22, -0x22,0x23,0x10,0x2b,0xbb,0x05,0x0d,0x00,0x12,0x00,0x17,0x04,0xfd,0xb3,0x26,0x1f,0x2e,0x0c,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e, -0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2d,0x23,0x18,0x30,0x15,0x39,0x67,0x30,0x12,0x32,0x5c,0x38,0x01,0x0b,0x06,0x01,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f, -0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x01,0x00,0x05,0xff,0x19,0x02,0x01,0xff,0x71,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02, -0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x17,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x8f,0x58,0x00,0x01,0xff,0xd4,0x06,0x76,0x02,0x33,0x07,0xa0,0x00,0x33,0x00,0x53,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x30,0x33,0x33,0x30,0x0a,0x21,0x25,0x25,0x2a,0xb8,0x05,0x0d,0xb4,0x21,0x24,0x24,0x21, -0x1b,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x15,0x15,0x12,0x16,0x25,0x25,0x33,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1e,0x2d,0x00,0x2f,0x33,0xed,0x32,0x39,0xce,0x32,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23, -0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x0e,0x02,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x06,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x03, -0x02,0x02,0x26,0x2d,0x2c,0x23,0x02,0x61,0x01,0x01,0x22,0x2d,0x2f,0x25,0x04,0x02,0x07,0xa0,0x14,0x25,0x0e,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x1a,0x2c,0x0e,0x17,0x1d,0x13,0x0c,0x05,0x33,0x3f,0x3e,0x3b,0x14,0x2e,0x0f,0x07,0x15,0x16,0x16,0x08,0x3d,0x3d,0x3e,0x37,0x17,0x30,0x0e,0x00,0x02,0x00,0x45,0x06,0x76, -0x01,0xc1,0x07,0xe9,0x00,0x13,0x00,0x1f,0x00,0x26,0x41,0x0c,0x00,0x05,0x05,0x0d,0x00,0x17,0x00,0x1d,0x05,0x0d,0x00,0x0f,0x00,0x00,0x04,0xfd,0x00,0x1a,0x00,0x14,0x04,0xfd,0x00,0x0a,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x03,0x29,0x45,0x33,0x1d,0x1d,0x33,0x45,0x29,0x2a,0x46,0x32,0x1c,0x1c,0x33,0x45,0x2a,0x30,0x34,0x34,0x30,0x2f,0x35,0x35,0x07,0xe9,0x1d,0x32,0x44,0x27,0x27,0x44,0x31,0x1d,0x1d,0x31,0x44,0x27,0x27,0x44,0x32,0x1d,0xfe,0xe4,0x36,0x2c,0x2b,0x38,0x38,0x2b,0x2c, -0x36,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x04,0xad,0x05,0xec,0x02,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff, -0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xa2,0x06,0x62,0x02,0x65,0x07,0x30,0x00,0x1b,0x00,0x20,0x40,0x0d,0x00,0x0e,0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0x0a,0x18,0x05,0x00,0x2f,0xcd,0xd4,0xcd,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23, -0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x65,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2d,0x22,0x31,0x19,0x3e,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2c,0x23,0x31,0x19,0x06,0xb6,0x1b,0x21,0x12,0x06,0x1e,0x24,0x1e,0x16,0x16,0x46,0x1b,0x21,0x12,0x06,0x1e, -0x24,0x1e,0x15,0x17,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x00,0x1f, -0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb7,0x1d,0x2f,0x1f,0x01,0x1f,0x0b,0x17,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e, -0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0x49,0x03,0x62, -0x00,0x24,0x00,0x38,0x00,0x31,0xb9,0x00,0x12,0x05,0x0a,0xb3,0x25,0x25,0x3a,0x31,0xb8,0x05,0x0a,0xb2,0x05,0x36,0x20,0xbc,0x04,0xfb,0x00,0x19,0x05,0x03,0x00,0x2c,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, -0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8, -0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42, -0x4a,0x2a,0x18,0x4d,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x00,0x2f,0x00,0x43,0x00,0x3e,0xb1,0x15,0x12,0xb8,0x05,0x0a,0xb4,0x30,0x30,0x05,0x19,0x3c,0xb8,0x05,0x0a,0xb5,0x05,0x1f,0x0a,0x41,0x2b,0x18,0xbd,0x04,0xfb,0x00,0x24,0x00,0x19,0x05,0x03,0x00,0x37,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed, -0x3f,0x33,0xed,0x32,0x32,0x12,0x39,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19, -0x43,0x74,0x5b,0x21,0x19,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x00,0x01,0x00,0xab, -0xff,0xea,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0xb9,0x00,0x13,0x05,0x0a,0xb3,0x10,0x10,0x27,0x03,0xbd,0x05,0x0a,0x00,0x22,0x00,0x0b,0x04,0xfb,0x00,0x1a,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xc6,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33, -0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05, -0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x1f,0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb6,0x1d,0x1e,0x18,0x17,0x17,0x0b,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33, -0xed,0x39,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43, -0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x04,0x99,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f, -0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x74,0xb9,0x00,0x3b,0x05,0x0a,0xb2,0x3a,0x3a,0x39,0xb8,0x05,0x0a,0xb3,0x38,0x1d,0x38,0x32,0xb8,0x05,0x0a,0xb7,0x33,0x38,0x33,0x38,0x33,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16, -0x00,0x3a,0x05,0x02,0xb2,0x3d,0x36,0x32,0xb8,0x05,0x02,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01,0x2f, -0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23, -0x35,0x33,0x03,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x6a,0xb5,0xb5,0x01,0x42,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01, -0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x64,0xb3,0xb3,0xb3,0xfe,0x3f,0xb3,0x00,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x03,0x00,0x07, -0x00,0x0b,0x00,0x3d,0x00,0x4b,0x00,0x97,0xb1,0x19,0x3e,0xbb,0x05,0x0b,0x00,0x49,0x00,0x09,0x05,0x0a,0xb2,0x08,0x08,0x04,0xbb,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0x40,0x0b,0x01,0x49,0x05,0x01,0x01,0x05,0x49,0x03,0x4d,0x32,0x11,0xbd,0x05,0x0a,0x00,0x22,0x00,0x41,0x04,0xfb,0x00,0x43,0x05,0x03,0xb6,0x3e,0x0c,0x29,0x3d, -0x04,0x1d,0x2f,0xb8,0x04,0xff,0xb2,0x36,0x19,0x16,0xb8,0x04,0xfc,0x40,0x0c,0x1a,0x1f,0x1d,0x2f,0x1d,0x02,0x1d,0x07,0x06,0x06,0x02,0x08,0xb8,0x05,0x02,0xb7,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x04,0x00,0xb8,0x05,0x02,0xb5,0x2f,0x02,0x3f,0x02,0x02,0x02,0x00,0x2f,0x5d,0xfd,0x32,0xde,0x5d,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33, -0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x13,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35, -0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x13,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x02,0x78,0xb5,0xb5,0x01,0x2e,0xb5,0xb5,0x97,0xb5,0xb5,0xfd,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19, -0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x2b,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x02,0xb3,0xb3,0xb3,0xfe,0x49,0xb3,0x02,0x50,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38, -0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfe,0x9a,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x00,0xfd,0xff, -0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x00,0x36,0x00,0x33,0xb2,0x1e,0x23,0x03,0xbb,0x05,0x0a,0x00,0x33,0x00,0x23,0x05,0x0a,0x40,0x09,0x15,0x1a,0x1e,0x1b,0x03,0x00,0x00,0x1c,0x0b,0xbb,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00, -0x1c,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37, -0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4e,0x7e,0x67,0x51,0x20,0x25,0x32,0x1c,0x0c,0x57,0xa3,0xe8,0x91,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0f,0x31,0x5d,0x4f,0x57,0xef,0xa5,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x01,0x06,0x0a,0x09, -0x0a,0x1d,0x26,0x2c,0x1a,0x4d,0x8b,0x86,0x85,0x47,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8b,0x96,0xa6,0x5e,0x1f,0x56,0x59,0x50,0x19,0x1b,0x0e,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38, -0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x02,0x06,0x09,0x2a,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x02,0x13,0x02,0x06, -0x08,0xf7,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x06,0x19,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x3e,0xfe,0x30,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26, -0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x02,0x06,0x08,0xd7,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x01,0x56,0x05,0x9a,0x02,0x06,0x08,0xd8,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x03,0x50, -0x05,0x9a,0x02,0x06,0x08,0xd9,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x02,0x06,0x08,0xda,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x70,0x05,0xb7,0x00,0x36,0x00,0x4a,0xb5,0x1d,0x0b,0x38,0x29,0x02,0x2f,0xb8,0x05,0x0a,0x40,0x09,0x30,0x1e,0x1d,0x1d,0x13,0x02,0x03,0x07,0x2f,0xbb,0x04,0xe6,0x00,0x29, -0x00,0x23,0x04,0xfb,0xb4,0x2f,0x18,0x01,0x18,0x0e,0xb8,0x04,0xfb,0xb7,0x2f,0x07,0x01,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x3f,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02, -0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x07,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x30,0x05,0x0e,0x3f,0x5f,0x7d,0x4b,0x20,0x49,0x24,0x23,0x45,0x23,0x43,0x77,0x5a,0x34,0x29,0x41,0x51,0x29,0x32,0x62,0x5b,0x50,0x1f,0x14,0x49,0x5c,0x6b,0x36,0x1e,0x3e,0x39, -0x32,0x13,0x04,0x07,0x0c,0x07,0x04,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0xd2,0x2f,0x56,0x42,0x28,0x08,0x09,0xa6,0x08,0x08,0x1b,0x30,0x43,0x28,0x23,0x33,0x21,0x0f,0x14,0x20,0x28,0x14,0xaa,0x11,0x26,0x21,0x15,0x08,0x10,0x19,0x11,0x03,0x38,0x71,0x7a,0x84,0x4a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x02, -0x00,0x72,0xff,0xe9,0x04,0x28,0x05,0x9a,0x00,0x1e,0x00,0x3f,0x00,0x46,0xbf,0x00,0x17,0x05,0x0a,0x00,0x2a,0x00,0x20,0x05,0x0a,0x00,0x1f,0x00,0x38,0x05,0x0a,0xb3,0x09,0x3d,0x3d,0x25,0xb8,0x04,0xfb,0xb7,0x1c,0x00,0x1c,0x20,0x20,0x10,0x04,0x1c,0xba,0x05,0x03,0x00,0x31,0x04,0xff,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed, -0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x03,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x14,0x1e,0x02, -0x33,0x32,0x36,0x02,0x51,0x08,0x2a,0x66,0x3d,0x31,0x5f,0x4b,0x2f,0x2c,0x4b,0x62,0x6b,0x6e,0x31,0x30,0x6b,0x68,0x5e,0x48,0x2a,0x32,0x4f,0x64,0x31,0x3b,0x61,0x6c,0x86,0x0f,0x1f,0x2e,0x1f,0x1a,0x2f,0x23,0x15,0x1e,0x32,0x42,0x48,0x4a,0x21,0x21,0x48,0x46,0x3e,0x30,0x1c,0x14,0x23,0x2f,0x1c,0x36,0x41,0x7d,0x51,0x43,0x2c,0x70, -0xbe,0x92,0x8e,0xfd,0xd6,0xac,0x78,0x40,0x3e,0x75,0xa6,0xd1,0xf7,0x8a,0x98,0xc7,0x76,0x30,0x43,0x01,0x39,0x2d,0x4b,0x37,0x1e,0x1a,0x46,0x7a,0x60,0x72,0xd1,0xb3,0x92,0x67,0x38,0x39,0x68,0x91,0xb1,0xcd,0x6e,0x5c,0x7c,0x4c,0x20,0x6a,0x00,0x01,0x00,0x2f,0xff,0xf5,0x03,0x65,0x05,0xa4,0x00,0x28,0x00,0x3d,0xb5,0x00,0x16,0x07, -0x03,0x2a,0x1e,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x08,0x04,0xfc,0x40,0x09,0x2f,0x23,0x01,0x23,0x00,0x28,0x28,0x03,0x19,0xb8,0x04,0xfb,0xb5,0x2f,0x12,0x01,0x12,0x04,0x03,0xb8,0x04,0xe6,0x00,0x3f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x00,0x03,0x27,0x36,0x12, -0x37,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x03,0x65,0xe1,0xfe,0x7d,0xac,0x26,0x5e,0xec,0x84,0x01,0x49,0x74,0x51,0x2b,0x3b,0x6e,0x9e,0x62,0x1d,0x47,0x23,0x20,0x4d,0x21,0x37,0x5f,0x46,0x28,0x21,0x3a,0x51,0x2f,0x45,0x4d, -0x26,0x4a,0x27,0x03,0x0a,0x6e,0xfe,0x77,0xfe,0xe2,0xc2,0x9e,0x01,0x17,0x6b,0x04,0x0c,0x3b,0x5a,0x76,0x46,0x53,0x86,0x5f,0x34,0x05,0x05,0xab,0x05,0x07,0x17,0x31,0x4f,0x39,0x34,0x4e,0x35,0x1a,0x1b,0x17,0x2a,0x14,0xff,0xff,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x02,0x06,0x08,0xde,0x00,0x00,0xff,0xff,0x00,0x49,0x00,0x00, -0x04,0x4f,0x05,0x9a,0x02,0x06,0x08,0xdf,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x02,0x06,0x08,0xe0,0x00,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x36,0xb1,0x1b,0x10,0xb8,0x05,0x0a,0xb3,0x0d,0x0d,0x17,0x03,0xb8,0x05,0x0a,0xb2,0x25,0x17,0x08,0xb8,0x04,0xfb,0xb2,0x20,0x1b, -0x15,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb1,0x0f,0x00,0x00,0x2f,0x2f,0x3f,0xed,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, -0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f, -0xb7,0x72,0x3f,0x83,0x4b,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xb9,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, -0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x05,0xb9,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1, -0x00,0x20,0x00,0x34,0xb9,0x00,0x02,0x05,0x0a,0xb3,0x1d,0x1d,0x22,0x13,0xb8,0x05,0x0a,0x40,0x0a,0x0c,0x2f,0x20,0x01,0x20,0x2f,0x10,0x01,0x10,0x18,0xb8,0x04,0xfb,0xb5,0x1f,0x07,0x2f,0x07,0x02,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x0e,0x02,0x23,0x22, -0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x84,0x22,0x37,0x83,0xd6,0x9e,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0xb9,0xa1,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f, -0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0x0a,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x06,0x0f,0x5a,0x00,0x00,0x00,0x01,0xff,0xba,0xfd,0xfa,0x04,0x02,0x02,0x01,0x00,0x32,0x00,0x48, -0xb9,0x00,0x1e,0x05,0x0b,0x40,0x0a,0x13,0x09,0x09,0x13,0x13,0x24,0x19,0x28,0x28,0x0e,0xb8,0x05,0x0a,0xb5,0x03,0x24,0x19,0x28,0x18,0x00,0xbb,0x04,0xfb,0x00,0x19,0x00,0x2b,0x05,0x03,0xb7,0x2f,0x1f,0x01,0x1f,0x2f,0x09,0x01,0x09,0x00,0x2f,0x5d,0x2f,0x5d,0x3f,0x33,0xed,0x32,0x39,0x01,0x2f,0x2f,0x33,0xed,0x33,0x2f,0x11,0x12, -0x39,0x2f,0x33,0x2f,0x10,0xed,0x31,0x30,0x37,0x32,0x36,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x15,0x22,0x0e,0x02,0x15,0x15,0x2e,0x03,0x35,0x34,0x36,0x37,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x9b,0x30,0x3d,0x0e,0x09,0x10,0x1c,0x2e,0x27,0x97,0x2f,0x42,0x28,0x12,0x21, -0x33,0x3e,0x1e,0x07,0x42,0x73,0xa2,0x68,0x57,0x81,0x54,0x2a,0x7c,0xa9,0x68,0x2d,0x07,0x06,0x04,0x1a,0x40,0x2d,0x74,0x23,0x23,0x23,0x23,0x99,0x0a,0x0e,0x09,0x26,0x4b,0x7a,0x5c,0x67,0xa8,0x8b,0x71,0x2e,0x45,0x59,0x38,0x1e,0x09,0x60,0xa9,0x7d,0x48,0xa7,0x3f,0x76,0xa9,0x6a,0x30,0x18,0x47,0x60,0x7b,0x4d,0x20,0x43,0x25,0x02, -0x0c,0x0d,0x34,0x20,0x20,0x33,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26,0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x01, -0x04,0xad,0x00,0x01,0x00,0x72,0xff,0xea,0x06,0xe5,0x03,0x5b,0x00,0x2b,0x00,0x1f,0xb9,0x00,0x0a,0x05,0x0a,0xb6,0x21,0x00,0x2f,0x2b,0x01,0x2b,0x0f,0xba,0x04,0xfb,0x00,0x1a,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e, -0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x03,0x4b,0x3a,0x72,0x69,0x60,0x28,0x24,0x3b,0x2a,0x17,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x27,0x43,0x5c,0x35,0x2e,0x62,0x63,0x60,0x2c,0x02,0xd3,0x30,0x4e,0x3f,0x34,0x16,0x14,0x25,0x25,0x28, -0x18,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x37,0x5a,0x4c,0x43,0x20,0x1c,0x38,0x3c,0x43,0x27,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb, -0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x33,0x02,0xac,0x0d,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93, -0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x08,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x3e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xab, -0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x09,0x66,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0x00,0x01,0x00,0x2d,0x00,0x00,0x01,0xab,0x00,0xbc,0x00,0x03,0x00,0x13,0xb2,0x03,0x02,0x02,0xba,0x04,0xfb,0x00,0x00,0x04,0xe6,0x00, -0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x21,0x21,0x27,0x21,0x01,0xab,0xfe,0xaa,0x28,0x01,0x7e,0xbc,0x00,0x00,0x03,0x00,0x7c,0x00,0x00,0x04,0x18,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xbc,0x00,0x05,0x05,0x0c,0x00,0x04,0x00,0x01,0x05,0x0c,0xb5,0x00,0x2f,0x09,0x01,0x09,0x08,0xba,0x04,0xe6,0x00,0x06,0x04,0xfe,0xb4, -0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0xfd,0x86,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00, -0x00,0x01,0x00,0x42,0x01,0xae,0x02,0xd9,0x04,0x25,0x00,0x0e,0x00,0x0c,0xb4,0x20,0x03,0x01,0x03,0x0c,0x00,0x2f,0xc4,0x5d,0x31,0x30,0x01,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0x02,0xd9,0xf6,0xa6,0x7b,0x81,0x81,0x7b,0xa6,0xf5,0x2f,0xe7,0x16,0x97,0x16,0xe7,0x02,0xfe,0x37,0xbf,0x5a,0xdb,0xdb, -0x5a,0xbf,0x37,0x8f,0x64,0xfc,0xfc,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02, -0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x07,0x4a,0x08,0x36,0x00,0x3a,0x00,0x48,0x00,0x4c, -0x00,0x7a,0x00,0xdd,0xb9,0x00,0x0d,0x05,0x0a,0xb3,0x0a,0x66,0x66,0x69,0xb8,0x05,0x0d,0xb6,0x63,0x65,0x65,0x63,0x5a,0x5a,0x5d,0xb8,0x05,0x0d,0x40,0x09,0x4a,0x4b,0x4b,0x56,0x56,0x4a,0x59,0x59,0x49,0xb8,0x05,0x0b,0xb4,0x16,0x70,0x4a,0x4a,0x00,0xb8,0x05,0x0a,0xb3,0x38,0x4d,0x4d,0x50,0xb8,0x05,0x0b,0xb5,0x78,0x7a,0x7a,0x78, -0x43,0x2d,0xb8,0x05,0x0a,0x40,0x0e,0x2c,0x0a,0x63,0x38,0x78,0x2c,0x2c,0x78,0x38,0x63,0x0a,0x05,0x7c,0x3b,0xbb,0x05,0x0a,0x00,0x26,0x00,0x21,0x04,0xfb,0xb6,0x2f,0x40,0x01,0x40,0x16,0x33,0x05,0xbb,0x04,0xfb,0x00,0x19,0x00,0x12,0x05,0x03,0x40,0x0b,0x70,0x60,0x6c,0x30,0x4c,0x01,0x4c,0x49,0x5a,0x53,0x60,0xb8,0x04,0xfd,0xb3, -0x73,0x6c,0x0b,0x44,0xb8,0x04,0xfc,0x40,0x0a,0x2b,0x2f,0x2c,0x01,0x2c,0x3a,0x20,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xd6,0xd4,0x5d,0xdd,0xed,0x10,0xd4,0x32,0xfd,0x32,0xd6,0xde,0xcd,0x5d,0x11,0x12,0x39,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x2f, -0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x33,0x2f,0x11,0x33,0x2f,0x33,0x2f,0x10,0xe4,0x32,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15, -0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x05,0x49,0x0c,0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1d,0x40,0x36,0x24,0x9c, -0xfb,0xee,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x04,0x03,0x74,0x74,0xfe,0xf5,0x03,0x01,0x26,0x2d,0x2c,0x23,0x01,0x5f,0x01,0x22,0x2d,0x2f,0x25,0x03,0x5f,0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce, -0x65,0x86,0x4f,0x20,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xf4,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0xd3,0x01,0x56,0xfe,0x57,0x1c,0x18,0x09,0x33,0x3f,0x3e,0x3b,0x0d, -0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x00,0x01,0x00,0x57,0xff,0xaf,0x04,0x02,0x01,0xbb,0x00,0x1e,0x00,0x2a,0xbc,0x00,0x0d,0x05,0x0a,0x00,0x12,0x00,0x08,0x04,0xfb,0x40,0x09,0x2f,0x17,0x01,0x17,0x2f,0x0e,0x01,0x0e,0x1e,0xba,0x04, -0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x04,0x02,0x0c,0x42,0x6c,0x60,0x56,0x55,0x58,0x32,0x2a,0x4d,0x3b,0x23,0x83,0x03,0x01,0x42,0x69,0x80,0x3f,0x3f,0x6b, -0x60,0x58,0x56,0x58,0x31,0x0e,0x2b,0x40,0x4c,0x40,0x2b,0x23,0x4e,0x7c,0x58,0x20,0x16,0x1e,0x05,0x7e,0xb2,0x70,0x33,0x2b,0x40,0x4c,0x40,0x2b,0x00,0x01,0x00,0xc4,0x06,0x7c,0x01,0x42,0x08,0x04,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01, -0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0x06,0x7c,0x01,0x88,0x00,0x00,0x02,0xff,0x17,0x06,0x1d,0x02,0xee,0x08,0xde,0x00,0x53,0x00,0x65,0x00,0x6f,0xb5,0x09,0x26,0x61,0x03,0x47,0x1a,0xb8,0x05,0x0d,0xb2,0x59,0x2d,0x00,0xbb,0x05,0x0d,0x00,0x51,0x00,0x38,0x05,0x0d,0xb2,0x47,0x53,0x15,0xb8,0x05,0x01,0x40,0x11,0x5c,0x54,0x26,0x2d, -0x54,0x1f,0x61,0x61,0x54,0x4c,0x4c,0x54,0x10,0x10,0x0a,0x03,0x54,0xb8,0x05,0x01,0x40,0x09,0x1f,0x35,0x35,0x30,0x30,0x29,0x29,0x1f,0x3b,0xb9,0x05,0x01,0x00,0x42,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x32,0x2f,0x32,0x2f,0x10,0xfd,0x32,0xcc,0x33,0x2f,0x11,0x33,0x2f,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x10,0xde,0xfd,0xc6,0x01,0x2f, -0xed,0x2f,0xed,0x39,0x2f,0xed,0x11,0x17,0x39,0x31,0x30,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15, -0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x01,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x61,0x0e,0x1a,0x1a,0x15,0x05,0x05,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13, -0x20,0x46,0x71,0x51,0x48,0x61,0x15,0x0a,0x14,0x06,0x01,0x12,0x31,0x1a,0x1f,0x28,0x0a,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x01,0x9b,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c, -0x1d,0x1b,0x07,0x7e,0x2a,0x27,0x1c,0x1a,0x0b,0x2a,0x12,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x03,0x08,0x04,0x14,0x0b,0x18,0x13,0x17,0x14,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76, -0xfe,0x4d,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x10,0x06,0x71,0x01,0xbb,0x08,0xde,0x00,0x14,0x00,0x27,0xb9,0x00,0x0c,0x05,0x0d,0xb5,0x09,0x06,0x06,0x00,0x00,0x03,0xb8,0x05,0x01,0xb5,0x11,0x14,0x14,0x11,0x0b,0x05,0x00,0x2f,0xc4,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f, -0xed,0x31,0x30,0x13,0x16,0x16,0x33,0x03,0x33,0x13,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x10,0x2e,0x51,0x27,0x99,0x5d,0x98,0x28,0x28,0x59,0x23,0x3d,0x53,0x30,0x2d,0x5e,0x30,0x06,0xe2,0x06,0x04,0x01,0xca,0xfe,0x37,0x02,0x1c,0x2a,0x01,0xbd,0xfe,0x22,0x34,0x3a,0x1b,0x06,0x04,0x06,0x00,0xff,0xff, -0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x28,0x00,0x3e,0xbc,0x00,0x1b,0x05,0x0d,0x00,0x0d,0x00,0x26,0x04,0xfd,0xb5,0x04,0x04,0x1f,0x14,0x14,0x12,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x18,0x10,0x18,0x02,0x18,0x1f,0x09,0x09,0x1f,0xb8,0x04,0xfd, -0xb3,0x1f,0x20,0x01,0x20,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x07, -0x3e,0x19,0x28,0x11,0x11,0x1d,0x1f,0x24,0x19,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x0d,0x1d,0x10,0x2d,0x3e,0x46,0x48,0x46,0xc7,0x31,0x40,0x2b,0x1e,0x0f,0x1f,0x2e,0xfe,0x06,0x56,0x15,0x10,0x0c,0x0f,0x0c,0x01,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x65,0x03,0x04,0x26,0x25,0x30,0x2d,0x61,0x0f,0x11,0x0f,0x28, -0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, -0x00,0x02,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x02,0xb7,0x00,0x30,0x00,0x44,0x00,0x5b,0xb2,0x31,0x31,0x14,0xbb,0x05,0x0a,0x00,0x00,0x00,0x3d,0x05,0x0a,0xb6,0x07,0x00,0x07,0x00,0x07,0x46,0x25,0xb8,0x05,0x0a,0xb3,0x1e,0x1e,0x13,0x2a,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x19,0x2f,0x19,0x02,0x19,0x22,0x22,0x02,0x38,0xb8,0x04,0xfb,0xb5, -0x2f,0x0c,0x01,0x0c,0x00,0x42,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c, -0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21,0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x1d,0x32, -0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x06,0x7c,0x01,0xa2,0x07,0xe9,0x00,0x18,0x00,0x2f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb6,0x11,0x0e,0x09,0x0a,0x18,0x18,0x16, -0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, -0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x07,0x7e,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x01,0x00,0x49,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x18,0x00,0x34,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb3,0x11,0x18,0x18,0x16,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x03, -0x10,0x03,0x02,0x03,0x09,0x0d,0x0d,0x09,0xb8,0x04,0xfd,0xb3,0x1f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d, -0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xff,0x00,0x03,0x04,0x26,0x27,0x5b,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0xff,0xff,0xff,0x97,0x00,0x00,0x01,0xf0,0x07,0xe8,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0x97,0xff,0xf2,0x02,0x01, -0x07,0xe8,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0xc2,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7, -0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x77,0x00,0x00,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x77, -0x00,0x00,0xff,0xff,0x00,0xab,0x00,0x00,0x02,0xf8,0x05,0xec,0x00,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x01,0x20,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x03,0x57,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x21,0x02,0x01,0x00,0x00,0x01,0x07, -0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x02,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0xa3,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0xff,0xff,0xff,0xe7,0xfd,0xff,0x03,0xa3,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01, -0xfd,0x55,0x00,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0xff,0xff,0x00,0x9a,0xff,0x55,0x06,0x4f,0x05,0xe9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0xad,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xfa,0x05,0x3e,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x09,0x7e,0x05,0x58,0xfd,0x55,0xff,0xff,0x00,0xab,0xff,0xea, -0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad, -0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x01,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20, -0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x01,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca, -0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff, -0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, -0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0x8f,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0x8f,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x16, -0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1, -0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xc8,0xff,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff, -0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x96,0xff,0x75,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8, -0xff,0x26,0x00,0x0c,0xb5,0x02,0x01,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0x91,0xff,0x14,0x00,0x0c,0xb5,0x02,0x01,0x20,0x43,0x01,0x43,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f, -0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff, -0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0x00,0x05,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x84,0xb1,0x3e,0x36,0xb8,0x05,0x0a,0xb4,0x37,0x3f,0x37,0x3a,0x32,0xb8,0x05,0x0a,0x40,0x0e,0x33,0x3b,0x33, -0x1d,0x00,0x0d,0x03,0x37,0x33,0x37,0x33,0x43,0x26,0x05,0xb8,0x05,0x0a,0xb2,0x16,0x3e,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x40,0x0f,0x3d,0x1f,0x3d,0x02,0x3d,0x36,0x32,0xb8,0x04,0xfb,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11, -0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06, -0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64, -0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x7e,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0xfe,0xe6,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, -0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x78,0xb3,0xb3,0xb3,0xfe,0x35,0xb3,0xb3,0xb3,0x00,0x04,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x42,0x00,0x46,0x00,0x4a,0x00,0x4e,0x00,0x90,0xb2,0x03,0x43,0x00,0xb8,0x05,0x0a,0xb4,0x01,0x44,0x01,0x4b,0x47,0xb8,0x05,0x0a,0x40,0x0e, -0x48,0x4c,0x48,0x23,0x38,0x13,0x03,0x01,0x48,0x01,0x48,0x50,0x2c,0x0b,0xbd,0x05,0x0a,0x00,0x1c,0x00,0x3c,0x04,0xfb,0x00,0x3e,0x05,0x03,0xb6,0x06,0x38,0x23,0x37,0x04,0x17,0x29,0xb8,0x04,0xff,0xb2,0x30,0x13,0x10,0xb8,0x04,0xfc,0x40,0x09,0x14,0x1f,0x17,0x2f,0x17,0x02,0x17,0x47,0x43,0xb8,0x04,0xfb,0x40,0x09,0x49,0x0f,0x46, -0x1f,0x46,0x02,0x46,0x4b,0x00,0xb8,0x04,0xfb,0xb4,0x4d,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x39,0x31,0x30,0x25,0x23, -0x35,0x33,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x27,0x11,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x35,0x23,0x35, -0x33,0x03,0xa6,0xb5,0xa9,0x1d,0x2a,0x0f,0x9d,0xd5,0x81,0x37,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x20,0x4b,0x24,0xc1,0x99,0x19,0x2f,0x84,0xc0,0x3f,0xb5,0xb5,0xfe,0xf0, -0xb5,0xb5,0xb5,0xb5,0x34,0xb3,0x31,0x70,0x3e,0x35,0x72,0x7b,0x86,0x48,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x15,0x9f,0xb4,0xa7,0x7a,0x66,0xfe,0x4a,0xb3,0xb3,0xb3,0x65,0xb3, -0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0xf4,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0f,0x5b,0x00,0xab,0x00,0xf5,0x00,0x0c,0xb5,0x02,0x01,0x20,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, -0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xab,0xfe,0xab,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d, -0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0x04,0xad,0xff,0xff, -0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07, -0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x31,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e, -0x00,0x26,0x09,0x17,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x1d,0x01,0x1d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e, -0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0x07,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57, -0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x04,0x07,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x03,0x0f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce, -0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4,0x03,0x0f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4, -0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00, -0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x05,0xca,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x05,0xca,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e,0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5, -0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xa7,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xe4,0x04,0xdf,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x42,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x7a, -0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x00,0x36,0x00,0x4a,0x00,0x4c, -0xbc,0x00,0x23,0x05,0x0a,0x00,0x37,0x00,0x43,0x05,0x0a,0xb6,0x16,0x37,0x16,0x37,0x16,0x4c,0x03,0xb8,0x05,0x0a,0xb4,0x33,0x48,0x10,0x10,0x0d,0xb8,0x04,0xfb,0xb4,0x2a,0x00,0x00,0x1b,0x2a,0xba,0x05,0x03,0x00,0x3e,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x32,0x01,0x2f, -0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14, -0x1e,0x02,0x17,0x36,0x36,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c, -0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60,0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26, -0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, -0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7,0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c, -0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8, -0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, -0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5, -0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x05,0x91,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0x00,0x01,0x00,0x19,0xff,0xea,0x08,0x3d,0x04,0x19,0x00,0x3f,0x00,0x41, -0xb9,0x00,0x2e,0x05,0x0a,0xb6,0x0f,0x0c,0x0c,0x0f,0x0f,0x41,0x23,0xbf,0x05,0x0a,0x00,0x18,0x00,0x07,0x04,0xfb,0x00,0x38,0x05,0x03,0x00,0x12,0x04,0xfb,0xb4,0x2f,0x29,0x01,0x29,0x1e,0xb8,0x04,0xfb,0xb3,0x2f,0x1d,0x01,0x1d,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x31, -0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc8,0xd8,0xdd,0x69,0xa5,0xf9,0xc5,0x9e,0x4b,0x03, -0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x18,0x4a,0x89,0x71,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x3a,0xb4,0xed,0xfe,0xdc,0xaa,0x46,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x02,0x04,0x08,0x06,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40, -0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2d,0x12,0x15,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x09,0x06,0x04,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x07,0x92,0x04,0x19,0x00,0x44,0x00,0x48,0xb9,0x00,0x29,0x05,0x0a,0xb3,0x1e,0x1e,0x45,0x34,0xb8,0x05,0x0a,0xb4, -0x15,0x12,0x12,0x15,0x3e,0xba,0x05,0x03,0x00,0x18,0x04,0xfb,0xb4,0x2f,0x2f,0x01,0x2f,0x24,0xb8,0x04,0xfb,0xb5,0x2f,0x23,0x01,0x23,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34, -0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e, -0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b, -0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6, -0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed, -0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x07,0xcb,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9, -0x05,0xf4,0x05,0xec,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6, -0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xc3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00, -0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xc3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x28,0x01,0x28,0x00,0x11,0x5d, -0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab, -0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff, -0x00,0xab,0xff,0xea,0x06,0xa2,0x08,0xbd,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x45,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x08,0xbd,0x02,0x26, -0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x30,0x01,0x20,0x30,0x01,0x30,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32, -0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x04,0xa5,0x07,0x67,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x07,0x67,0x02,0x26,0x08,0xee,0x00,0x00, -0x00,0x07,0x0f,0x50,0x00,0x9c,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x46,0x08,0x7f,0x02,0x26,0x09,0x25,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x08,0x7f,0x02,0x26,0x08,0xee,0x00,0x00, -0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29,0x00,0x65,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x27,0x05,0x0c,0xb2,0x26,0x26,0x22,0xbb,0x05,0x0c,0x00,0x23, -0x00,0x1e,0x05,0x0c,0x40,0x0a,0x1f,0x0d,0x23,0x1f,0x1f,0x23,0x0d,0x03,0x2b,0x03,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x26,0x04,0xfb,0xb2,0x29,0x22,0x1e,0xb8,0x04,0xfb,0xb5,0x24,0x20,0x21,0x01,0x21,0x08,0xba,0x04,0xfb,0x00,0x15,0x05,0x03,0xb1,0x0e,0x00,0x00,0x2f,0x2f,0x3f,0xed,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0xed,0x01,0x2f,0xed, -0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67, -0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0x9d,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0xab,0xc9,0xc9,0x02,0xec,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x03,0x7e,0xfc,0x6e,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfb,0xf0,0xbd,0xbd,0xbd,0xfe,0x2b,0xbd,0x00,0xff,0xff, -0xff,0xba,0xfd,0xc9,0x02,0x48,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf9, -0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x0e,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0x00,0x9b,0xfe,0x55,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00, -0x01,0x56,0x00,0x27,0x0f,0x5b,0x01,0x9f,0x00,0x56,0x00,0x07,0x0f,0x50,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x04,0x74,0x02,0x26,0x09,0x5f, -0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x00,0x26,0x09,0x42,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff, -0x05,0x58,0x04,0xda,0x02,0x26,0x09,0x43,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x02,0x26,0x09,0x29, -0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x4b,0x03,0x1c,0x00,0x2a,0x00,0x3f,0x00,0x62,0xb2,0x08,0x20,0x35,0xb8,0x05,0x0a,0xb2,0x09,0x16,0x20,0xb8,0x05,0x0a,0xb7,0x0e,0x3d,0x3d,0x0e,0x0e,0x3a,0x11,0x08,0xb8,0x04,0xfd,0xb3,0x0b,0x0b,0x03,0x11,0xb8,0x04,0xfb,0x40,0x09,0x3d,0x2f,0x3a,0x3f, -0x3a,0x02,0x3a,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x2a,0x1f,0x27,0x2f,0x27,0x02,0x27,0x30,0xb8,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e, -0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x67,0xab,0x45,0x3e,0x60,0x48,0x33,0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x2f,0x58, -0x29,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0x13,0x2c,0x49,0x6e,0x96,0x62,0x58,0xad,0x58,0x02,0x98,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0xfe,0xfa,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11,0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d, -0x4f,0x9e,0xee,0x9f,0x51,0xa2,0x96,0x83,0x61,0x37,0x2c,0x2a,0x03,0x34,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x59,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, -0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, -0xfd,0xff,0x03,0x49,0x05,0x91,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0x00,0x01,0x00,0x32,0xff,0x55,0x06,0x3d,0x04,0x15,0x00,0x37,0x00,0x3a,0xb2,0x0b,0x05,0x31,0xbb,0x05,0x0a,0x00,0x18,0x00,0x2a,0x05,0x0a,0x40,0x09,0x1f,0x25,0x18,0x1f,0x18,0x1f,0x39,0x08,0x0e,0xbd,0x05,0x0a,0x00,0x05,0x00, -0x00,0x04,0xfb,0x00,0x13,0x04,0xe6,0x00,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e, -0x04,0x15,0x14,0x0e,0x04,0x03,0x48,0x91,0xc4,0x78,0x34,0x0e,0x0e,0xfe,0xcf,0x01,0xeb,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4c,0x81,0xad,0x60,0x38,0x72,0x39,0x39,0x72,0x61,0x58,0xaf,0x55, -0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0x00,0x01,0x00,0x1e,0xff,0x02,0x07,0x58,0x02,0x13,0x00,0x44,0x00,0x5a,0xb3,0x26,0x14,0x20,0x38,0xb8,0x05,0x0a,0xb2,0x0f, -0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x33,0x33,0x46,0x29,0xb8,0x05,0x0a,0x40,0x09,0x20,0x23,0x23,0x20,0x26,0x3d,0x23,0x23,0x0c,0xb8,0x04,0xff,0xb4,0x2f,0x3d,0x01,0x3d,0x1b,0xb8,0x04,0xfb,0xb4,0x2f,0x2e,0x01,0x2e,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f, -0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e, -0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x07,0x58,0x16,0x43,0x67,0x4f,0x3b,0x2e,0x25,0x12,0x17,0x29,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x97,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3,0x0e,0x12,0x23,0x5d,0xa0,0x7d,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x19,0x2c,0x40, -0x66,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x27,0x60,0x54,0x39,0xff,0xff,0x00,0x9a, -0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6d, -0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x52,0x02,0x01,0xfd,0xce,0xff,0xff, -0x00,0x9a,0xfd,0xc4,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0x00,0x08,0xb3,0x02,0x4a,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x54,0x02,0x01,0xfd,0xce,0xff,0xff,0x00,0x9a,0xfd,0xc4, -0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc8,0xfd,0xc9,0x00,0x04,0xff,0xa8,0x06,0x1d,0x02,0x5f,0x08,0xde,0x00,0x46,0x00,0x56,0x00,0x5a,0x00,0x5e,0x00,0x7a,0xb9,0x00,0x5c,0x05,0x0d,0xb2,0x5b,0x5b,0x0e,0xb8,0x05,0x0d,0xb5,0x47,0x29,0x29,0x47,0x18,0x3f,0xbe,0x05,0x0d,0x00,0x3c,0x00,0x23, -0x05,0x0d,0x00,0x32,0x00,0x57,0x05,0x0d,0xb2,0x58,0x58,0x51,0xb8,0x05,0x0d,0xb6,0x03,0x5d,0x5a,0x5b,0x57,0x3e,0x08,0xb8,0x05,0x01,0x40,0x0a,0x4c,0x43,0x18,0x13,0x54,0x46,0x46,0x37,0x37,0x43,0xb8,0x05,0x01,0xb4,0x13,0x1b,0x1b,0x13,0x26,0xb9,0x05,0x01,0x00,0x2d,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f, -0x32,0x11,0x39,0x10,0xd4,0xfd,0xcc,0xde,0x32,0xcd,0x32,0x01,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22, -0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x32,0x17,0x37,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x98,0x32,0x23,0x14,0x25,0x32, -0x1e,0x1e,0x2f,0x19,0x11,0x1c,0x38,0x55,0x65,0x2e,0x17,0x27,0x30,0x0b,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x10,0x1a,0x1a,0x21,0x2d,0x14,0x6e,0x0a,0x11,0x16,0x0c,0x09,0x11,0x0d,0x09,0x25,0x36,0x09, -0x09,0x58,0x57,0x57,0x8f,0x57,0x57,0x07,0x2f,0x15,0x3a,0x1f,0x1b,0x36,0x2b,0x1c,0x1f,0x25,0x1a,0x46,0x2a,0x3b,0x3f,0x1e,0x05,0x17,0x15,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76,0xfe,0xa0,0x2f,0x22,0x01,0x40,0x10,0x24,0x1f,0x15,0x0c, -0x12,0x17,0x0c,0x14,0x29,0x18,0x06,0x1b,0x01,0x06,0x56,0x56,0x56,0x00,0x00,0x02,0xff,0xb7,0x06,0x71,0x02,0x28,0x08,0x06,0x00,0x1f,0x00,0x2f,0x00,0x35,0xb9,0x00,0x12,0x05,0x0d,0xb6,0x26,0x1a,0x20,0x08,0x03,0x17,0x0d,0xb8,0x05,0x01,0xb2,0x2b,0x13,0x23,0xbb,0x05,0x01,0x00,0x17,0x00,0x03,0x05,0x01,0xb3,0x1f,0x1f,0x1d,0x17, -0x00,0x2f,0x33,0x33,0x2f,0xed,0x10,0xfd,0x32,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x31,0x30,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x49,0x0e,0x1c,0x0b, -0x26,0x30,0x21,0x16,0x0d,0x0a,0x1f,0x30,0x45,0x32,0x37,0x50,0x33,0x18,0x19,0x32,0x4a,0x31,0x3f,0x67,0x24,0x20,0x57,0x31,0x16,0x16,0xfa,0x18,0x53,0x31,0x36,0x3e,0x0f,0x1f,0x2f,0x20,0x1d,0x2e,0x24,0x1a,0x06,0xdc,0x02,0x02,0x11,0x21,0x30,0x1e,0x19,0x3d,0x35,0x23,0x2c,0x43,0x4e,0x21,0x23,0x41,0x34,0x1f,0x32,0x23,0x30,0x25, -0x03,0x9e,0x1d,0x1e,0x26,0x26,0x12,0x2c,0x26,0x19,0x16,0x26,0x34,0x00,0x00,0x02,0x00,0x37,0x06,0x1e,0x01,0x9b,0x08,0x4e,0x00,0x2b,0x00,0x2f,0x00,0x39,0xb1,0x19,0x2c,0xb8,0x05,0x0d,0xb2,0x2d,0x20,0x05,0xb8,0x05,0x0e,0xb4,0x13,0x2b,0x18,0x0e,0x24,0xb8,0x04,0xfd,0xb2,0x1e,0x00,0x2f,0xbc,0x04,0xfd,0x00,0x2c,0x00,0x08,0x05, -0x01,0x00,0x0e,0x00,0x2f,0xfd,0xde,0xfd,0xd6,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x03,0x23,0x35,0x33,0x01,0x86, -0x49,0x62,0x3c,0x19,0x3b,0x46,0x46,0x4e,0x29,0x48,0x23,0x38,0x4f,0x32,0x17,0x14,0x37,0x5f,0x4b,0x12,0x1d,0x1e,0x25,0x1b,0x35,0x23,0x14,0x2d,0x1a,0x1c,0x2b,0x24,0x20,0x24,0x2a,0x1d,0x50,0x57,0x57,0x07,0x93,0x12,0x29,0x2d,0x31,0x1a,0x29,0x38,0x1a,0x61,0x0e,0x0c,0x1e,0x33,0x42,0x23,0x1f,0x42,0x3f,0x39,0x17,0x03,0x06,0x0e, -0x0c,0x08,0x0d,0x5f,0x06,0x07,0x0a,0x0f,0x13,0x10,0x0b,0x01,0xfe,0xc7,0x56,0x00,0x00,0x03,0x00,0x1d,0x06,0x70,0x01,0xec,0x08,0x17,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0xbf,0x00,0x09,0x05,0x0a,0x00,0x08,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x0b,0x04,0xff,0xb5,0x20,0x08,0x01,0x08,0x06,0x03,0xb8,0x04,0xff,0xb1,0x04,0x00, -0x00,0x2f,0x32,0xfd,0x32,0xde,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbf,0xa2,0xa2,0x01,0x2d,0xa1,0xa1,0x96,0xa2,0xa2,0x06,0x70,0x9e,0x9e,0x9e,0x6b,0x9e,0x00,0x01,0xff,0x2b,0x06,0x1f,0x02,0xae,0x08,0x2f,0x00,0x43,0x00,0x60,0xb4,0x28,0x28,0x00,0x00,0x03, -0xb8,0x05,0x0d,0xb2,0x40,0x21,0x0b,0xb8,0x05,0x0d,0xb6,0x08,0x40,0x08,0x40,0x08,0x18,0x38,0xbb,0x05,0x0d,0x00,0x32,0x00,0x18,0x05,0x0d,0x40,0x0b,0x15,0x21,0x28,0x10,0x1d,0x17,0x0a,0x0a,0x00,0x05,0x10,0xb8,0x05,0x01,0xb3,0x24,0x1d,0x35,0x3b,0xb9,0x04,0xfd,0x00,0x2d,0x00,0x2f,0xfd,0xc6,0xd4,0x32,0xfd,0x32,0xc4,0x32,0x11, -0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x32,0x2f,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23, -0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32, -0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x07,0xbc,0x1a,0x2c,0x17,0x34,0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43, -0x2f,0x00,0x00,0x04,0x00,0x2d,0xfe,0xd2,0x08,0xcf,0x06,0x97,0x00,0x20,0x00,0x48,0x00,0x5c,0x00,0x70,0x00,0x31,0x40,0x16,0x18,0x6c,0x6c,0x15,0x3d,0x62,0x62,0x38,0x42,0x1b,0x15,0x08,0x4e,0x4e,0x0d,0x29,0x58,0x58,0x2e,0x24,0x03,0x0d,0x00,0x2f,0x33,0xcd,0x32,0x32,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x2f,0x33,0xcd,0x32,0x32,0x2f, -0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x25,0x06,0x04,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x24,0x27,0x24,0x11,0x10,0x25,0x36,0x25,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x17,0x04,0x11,0x10,0x05,0x16,0x04,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x24,0x37,0x36,0x12,0x35,0x10,0x25,0x26,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02, -0x27,0x06,0x04,0x07,0x04,0x11,0x10,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0xa1,0x7c,0xfe,0xcc,0xbe,0x08,0x22,0x2f,0x3a,0x20,0x20,0x3a,0x2f,0x22,0x08,0xfe,0x82,0xf7,0xfe,0xd5,0x01,0x2e,0xf1,0x01, -0x83,0x12,0x60,0x3f,0x3e,0x5f,0x13,0x01,0x7a,0xf9,0x01,0x2c,0xf8,0xe8,0x6d,0x01,0x09,0xa1,0x09,0x22,0x2e,0x39,0x20,0x1f,0x3a,0x2e,0x22,0x09,0xa4,0x01,0x0a,0x6a,0x86,0x81,0xfe,0xfd,0xce,0xfe,0xb4,0x07,0x21,0x30,0x3b,0x21,0x21,0x3a,0x30,0x22,0x07,0x9f,0xfe,0xf9,0x6a,0xfe,0xef,0x03,0x5b,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, -0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x41,0x61,0x72,0x13,0x1e,0x32,0x24,0x15,0x15,0x24,0x32,0x1d,0x24,0xc1,0xed,0x01,0x7c,0x01,0x96,0xf1,0xc1,0x27,0x38,0x48,0x47,0x37,0x21,0xc4,0xec,0xfe,0x83,0xfe,0x65,0xa5,0x55,0x63,0x11,0x1c,0x31, -0x23,0x14,0x14,0x23,0x31,0x1c,0x11,0x5e,0x50,0x66,0x01,0x16,0xb7,0x01,0x72,0xc9,0x9f,0x23,0x1f,0x34,0x26,0x15,0x15,0x25,0x33,0x1e,0x11,0x65,0x53,0xd4,0xfe,0xa6,0xfe,0xa6,0xfe,0x2f,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x06,0x38,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, -0x13,0x13,0x21,0x2d,0x00,0x0a,0x01,0x46,0xfe,0xa4,0x07,0x66,0x06,0xc8,0x00,0x17,0x00,0x2b,0x00,0x34,0x00,0x3d,0x00,0x45,0x00,0x52,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x0c,0xb3,0x3d,0x12,0x31,0x06,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x34,0x3e,0x02,0x37,0x01,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x01, -0x2e,0x03,0x25,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x32,0x16,0x17,0x13,0x27,0x07,0x13,0x36,0x01,0x03,0x06,0x06,0x23,0x22,0x27,0x03,0x17,0x13,0x16,0x16,0x17,0x25,0x26,0x26,0x27,0x01,0x14,0x16,0x17,0x25,0x26,0x26,0x35,0x34,0x37,0x25,0x06,0x06,0x05,0x14,0x06,0x07,0x05,0x36,0x35, -0x34,0x26,0x27,0x05,0x16,0x01,0x26,0x26,0x27,0x05,0x16,0x16,0x17,0x01,0x06,0x06,0x07,0x13,0x36,0x36,0x37,0x01,0x36,0x36,0x37,0x03,0x06,0x06,0x07,0x01,0x46,0x42,0x78,0xa7,0x65,0x01,0x4a,0x01,0x4a,0x65,0xa7,0x78,0x42,0x43,0x78,0xa7,0x64,0xfe,0xb6,0xfe,0xb4,0x64,0xa6,0x78,0x42,0x01,0xf5,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d, -0x2c,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d,0x2c,0x01,0x1b,0x20,0x3e,0x1d,0x72,0xed,0xee,0x73,0x3c,0x01,0x2c,0x73,0x1d,0x3d,0x20,0x41,0x3a,0x72,0xed,0xb3,0x38,0x58,0x1d,0x01,0x06,0x33,0xa7,0x6c,0xfc,0x3a,0x14,0x14,0x01,0x05,0x09,0x0a,0x14,0xfe,0xfa,0x14,0x14,0x04,0x32,0x0b,0x09,0x01,0x05,0x29,0x14,0x14,0xfe,0xfa,0x14,0xfd, -0xc0,0x38,0x58,0x1d,0xfe,0xfb,0x33,0xa7,0x6c,0x02,0x80,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0xfc,0x3a,0x1d,0x58,0x38,0x6c,0x6b,0xa8,0x33,0x02,0xb6,0x76,0xda,0xb8,0x91,0x2f,0x01,0x4a,0xfe,0xb5,0x2f,0x91,0xb8,0xd9,0x76,0x76,0xd9,0xb8,0x92,0x2e,0xfe,0xb5,0x01,0x4c,0x2e,0x91,0xb8,0xd9,0x76,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67, -0x3b,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67,0x01,0x51,0x0b,0x09,0x01,0x16,0xee,0xee,0xfe,0xea,0x14,0xfb,0xe5,0x01,0x16,0x09,0x0a,0x14,0xfe,0xe9,0xed,0x04,0xdc,0x1d,0x58,0x38,0x6d,0x6c,0xa7,0x33,0xfd,0x9a,0x3d,0x74,0x36,0x6c,0x1d,0x3e,0x20,0x3f,0x3c,0x6c,0x36,0x74,0x3d,0x20,0x3e,0x1d,0x6c,0x6d,0x7a,0x3d,0x74,0x36,0x6d,0x3a, -0xfe,0x5f,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0x01,0xb2,0x38,0x58,0x1d,0xfe,0xfc,0x33,0xa6,0x6c,0x01,0xd3,0x38,0x58,0x1d,0x01,0x05,0x33,0xa7,0x6b,0x00,0x00,0x02,0x00,0x63,0x06,0x8f,0x01,0xa4,0x07,0xd0,0x00,0x0b,0x00,0x17,0x00,0x26,0x41,0x0c,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00, -0x00,0x12,0x00,0x0c,0x05,0x00,0x00,0x06,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x05,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x07,0xd0,0x5d, -0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x02,0x00,0x63,0x06,0x7b,0x01,0xa4,0x08,0x1c,0x00,0x0b,0x00,0x19,0x00,0x24,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00,0xb2,0x12,0x0c,0x06,0xb8,0x01,0x4c,0x00,0x3f,0xdd,0xd6,0xed,0x01,0x2f,0xed, -0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x01,0x02,0x4b,0x57,0x53,0x4f,0x4c,0x53,0x54,0x4e,0x30,0x21,0x22,0x2f,0x30,0x24,0x08,0x14,0x20,0x08,0x1c,0x67,0x69,0x66,0x6b,0x69,0x67,0x6a,0x67,0xfe,0xaa,0x3b,0x49,0x4b,0x3c, -0x3b,0x4b,0x25,0x33,0x1f,0x0e,0x00,0x01,0x00,0x23,0x06,0x71,0x01,0xe3,0x07,0xb8,0x00,0x20,0x00,0x1d,0xb4,0x0b,0x12,0x1b,0x04,0x16,0xbc,0x04,0xfd,0x00,0x10,0x00,0x07,0x05,0x01,0x00,0x00,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xc4,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x36,0x37,0x35,0x2e,0x03,0x23, -0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x07,0x0e,0x03,0x5f,0x0d,0x15,0x0d,0x0d,0x0e,0x1c,0x0d,0x54,0x90,0x39,0x12,0x1f,0x22,0x29,0x1d,0x32,0x24,0x13,0x2e,0x18,0x2b,0x3c,0x36,0x3b,0x2a,0x12,0x15,0x43,0x5c,0x76,0x06,0x71,0x01,0x02,0x67,0x02,0x02,0x34,0x23,0x03,0x06,0x0e,0x0c,0x08,0x0d,0x5f,0x06,0x07,0x16,0x1a, -0x17,0x01,0x73,0x09,0x2e,0x30,0x25,0x00,0x00,0x02,0x00,0x16,0x06,0x1f,0x02,0x28,0x08,0x5e,0x00,0x20,0x00,0x30,0x00,0x40,0xb3,0x06,0x2c,0x03,0x10,0xb8,0x05,0x0d,0xb3,0x24,0x20,0x20,0x1d,0xb8,0x05,0x0d,0x40,0x0a,0x03,0x00,0x00,0x03,0x1a,0x06,0x2c,0x03,0x15,0x0b,0xbb,0x05,0x01,0x00,0x29,0x00,0x21,0x05,0x01,0xb1,0x15,0x20, -0x00,0x2f,0xd6,0xfd,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e, -0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44,0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0x06,0x1f,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c, -0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b,0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0x00,0x01,0xff,0x2b,0xfd,0xf5,0x02,0xae,0x00,0x05,0x00,0x43,0x00,0x66,0xb9,0x00,0x18,0x05,0x0d,0xb2,0x15,0x21,0x0b,0xb8,0x05,0x0d,0xb5,0x08,0x28,0x28,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x0a,0x40,0x15,0x08,0x40,0x40,0x08, -0x15,0x03,0x17,0x38,0xb8,0x05,0x0d,0xb4,0x32,0x17,0x38,0x32,0x2d,0xb8,0x04,0xfd,0xb4,0x3b,0x21,0x28,0x24,0x1d,0xb8,0x04,0xfd,0xb6,0x05,0x10,0x16,0x09,0x09,0x35,0x00,0x00,0x2f,0x32,0x32,0x11,0x33,0xd4,0x32,0xed,0x32,0x39,0x39,0xd4,0xed,0x2f,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x32, -0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x17,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e, -0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32,0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x6e,0x1a,0x2c,0x17,0x34, -0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x00,0x01,0xff,0xc9,0x06,0x71,0x02,0x3c,0x07,0x26,0x00,0x1b,0x00,0x28,0x40,0x0a,0x00,0x0e, -0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0xbc,0x05,0x01,0x00,0x0a,0x00,0x18,0x05,0x01,0x00,0x05,0x00,0x2f,0xed,0xdc,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3c,0x18,0x2e,0x2a,0x26, -0x10,0x30,0x4b,0x45,0x46,0x29,0x20,0x2d,0x17,0x3a,0x18,0x2d,0x2a,0x26,0x11,0x30,0x4c,0x45,0x44,0x29,0x21,0x2d,0x17,0x06,0xbf,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x15,0x14,0x41,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x13,0x16,0x00,0x02,0x00,0x4d,0x06,0x1f,0x01,0xb8,0x08,0x29,0x00,0x22,0x00,0x32,0x00,0x39,0xb1,0x13,0x2d,0xb8, -0x05,0x0d,0xb4,0x0f,0x0f,0x33,0x23,0x1a,0xb8,0x05,0x0d,0xb2,0x08,0x03,0x14,0xb8,0x05,0x01,0xb2,0x28,0x08,0x30,0xbc,0x04,0xfd,0x00,0x0a,0x00,0x03,0x04,0xfd,0x00,0x1f,0x00,0x2f,0xfd,0xde,0xfd,0x39,0xde,0xed,0x01,0x2f,0x2f,0xed,0x33,0x11,0x33,0x2f,0xed,0x32,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x4d,0x2c,0x45,0x21,0x29,0x32,0x1b,0x0a,0x01,0x21,0x28,0x1e,0x36,0x29,0x18,0x16,0x27,0x36,0x20,0x22,0x34,0x1a,0x1a,0x19,0x17,0x31,0x4f,0x38,0x26,0x49, -0x2d,0x01,0x13,0x0c,0x15,0x1b,0x0f,0x0b,0x16,0x11,0x0b,0x2f,0x1c,0x10,0x1f,0x06,0x9c,0x11,0x0c,0x14,0x1f,0x28,0x14,0x0c,0x12,0x23,0x35,0x23,0x1e,0x42,0x36,0x24,0x25,0x25,0x26,0x69,0x3b,0x30,0x59,0x44,0x29,0x0e,0x11,0x01,0x0d,0x0d,0x2b,0x28,0x1d,0x0e,0x16,0x1c,0x0d,0x1d,0x1f,0x04,0xff,0xff,0x00,0x21,0x06,0x70,0x03,0x36, -0x08,0x35,0x00,0x07,0x0a,0x1e,0x00,0x9f,0x00,0x00,0x00,0x01,0xff,0x82,0x06,0x70,0x02,0x97,0x08,0x35,0x00,0x23,0x00,0x1b,0xb9,0x00,0x08,0x05,0x0d,0xb4,0x1b,0x00,0x23,0x23,0x0b,0xb9,0x05,0x01,0x00,0x16,0x00,0x2f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02, -0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x37,0x01,0x02,0x20,0x38,0x33,0x31,0x19,0x2d,0x23,0x81,0x8b,0x38,0x77,0x72,0x66,0x27,0x34,0x7a,0x78,0x6c,0x27,0x63,0x86,0x51,0x22,0x13,0x23,0x2f,0x1b,0x2a,0x68,0x31,0x07,0xe3,0x1a,0x28,0x20,0x1b,0x0d,0x17,0x19,0x12,0x25,0x1b,0x04,0x06,0x08,0x05, -0x65,0x06,0x09,0x07,0x03,0x15,0x29,0x3a,0x25,0x1e,0x2e,0x27,0x21,0x11,0x19,0x40,0x2a,0x00,0x00,0x02,0x00,0x32,0x06,0x71,0x01,0xd4,0x08,0x8c,0x00,0x1e,0x00,0x22,0x00,0x31,0xbc,0x00,0x1f,0x05,0x0b,0x00,0x20,0x00,0x03,0x05,0x0d,0xb3,0x1b,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb5,0x0d,0x22,0x1f,0x1e,0x11,0x16,0xb9,0x05,0x01,0x00, -0x08,0x00,0x2f,0xfd,0xc6,0xd6,0xd6,0xcd,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06, -0x05,0x58,0x09,0x31,0x3b,0x23,0x31,0x20,0x0e,0x07,0x06,0x31,0x73,0x73,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x35,0x2a,0x0f,0x22,0x37,0x27,0x1a,0x3d,0x26,0x38,0x71,0x00,0x00,0x04,0x00,0x64,0xff,0xe0,0x04,0x68,0x06,0xb4,0x00,0x17,0x00,0x2e,0x00,0x45,0x00,0x5b,0x00,0x14, -0xb7,0x3a,0x23,0x0b,0x52,0x45,0x18,0x17,0x46,0x00,0x2f,0xcd,0xde,0xcd,0x2f,0x33,0xce,0x32,0x30,0x31,0x01,0x26,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x07,0x11,0x21,0x37,0x11,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06, -0x07,0x11,0x27,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x17,0x11,0x07,0x21,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x01,0x18,0x41,0x2b,0x23,0x25,0x13,0x24,0x33,0x21,0x01,0x77,0x01,0x75,0x40,0x4d,0x22, -0x23,0x15,0x37,0x23,0xfd,0x64,0xbe,0x34,0x40,0x14,0x16,0x16,0x2a,0x26,0xf4,0xf2,0x24,0x2e,0x17,0x15,0x17,0x44,0x2d,0x44,0x39,0x4c,0x11,0x0e,0x10,0x21,0x19,0xc6,0xc6,0x1c,0x1e,0x0f,0x0e,0x0e,0x4a,0x3f,0x9a,0x01,0xcc,0x33,0x3f,0x0e,0x1a,0x1a,0x3c,0x33,0xfe,0xd5,0xfe,0xd3,0x33,0x3a,0x1c,0x1a,0x1e,0x60,0x02,0xa2,0x29,0x42, -0x35,0x7c,0x42,0x32,0x56,0x4d,0x45,0x21,0x01,0x79,0xfe,0x8b,0x41,0x9f,0x60,0x41,0x7b,0x35,0x20,0x37,0x15,0xfd,0x3e,0xbe,0x02,0x6c,0x15,0x2f,0x19,0x1c,0x4e,0x2d,0x3c,0x5b,0x26,0xf5,0xf2,0x24,0x5e,0x40,0x2d,0x4c,0x1b,0x1d,0x2f,0x14,0xfd,0x96,0x44,0x02,0x52,0x1a,0x2d,0x16,0x12,0x37,0x22,0x30,0x45,0x19,0xc6,0xc8,0x1d,0x41, -0x2c,0x21,0x39,0x12,0x13,0x33,0x14,0xfd,0xaa,0x9a,0x02,0x95,0x1e,0x35,0x17,0x28,0x5e,0x32,0x49,0x7f,0x33,0x01,0x2b,0xfe,0xd2,0x34,0x76,0x4d,0x33,0x60,0x27,0x2e,0x3d,0x00,0x00,0x02,0x00,0x10,0xfd,0xda,0x01,0xf7,0xff,0xc1,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x14,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01, -0x2f,0x03,0x01,0x03,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x2f,0x5d,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0xfe,0xcd,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02,0x00,0x10,0x06,0x35,0x01,0xf7,0x08,0x1c,0x00,0x03, -0x00,0x07,0x00,0x22,0x40,0x0e,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01,0x03,0x01,0x00,0x2f,0x2f,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0x07,0x28,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02, -0x00,0x16,0xfd,0xf5,0x02,0x28,0x00,0x34,0x00,0x20,0x00,0x30,0x00,0x40,0xb9,0x00,0x10,0x05,0x0d,0xb5,0x24,0x20,0x20,0x06,0x06,0x1d,0xb8,0x05,0x0d,0x40,0x09,0x03,0x00,0x00,0x03,0x1a,0x2c,0x0b,0x20,0x15,0xbb,0x04,0xfd,0x00,0x21,0x00,0x29,0x04,0xfd,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xfd,0xd6,0xed,0x32,0x11,0x39,0x39, -0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x2f,0xed,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44, -0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0xfd,0xf5,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c,0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b, -0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4, -0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x27,0x0f,0x50,0x06,0x3c,0xfe,0xab,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e, -0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xe4,0x04,0xdf,0x00,0x07,0x0f,0x50,0x01,0x8f,0xff,0xb1,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x2a,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, -0x04,0x7a,0x00,0x07,0x0f,0x50,0x01,0x56,0xff,0x57,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x1d,0x04,0x34,0x00,0x07,0x0f,0x50,0x01,0x1d,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, -0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x5a,0xfd,0xff,0x02,0xe5,0x02,0xb4,0x02,0x26,0x09,0x07,0x00,0x00,0x00,0x07,0x0f,0x5d,0x00,0xab,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x5d,0x01,0x99,0x00,0x00,0xff,0xff,0xff,0xc2,0xff,0xea, -0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07, -0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x34,0xfd,0xfe,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac, -0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00, -0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, -0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xfa,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, -0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x9b,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, -0x00,0x52,0xff,0xea,0x04,0xad,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x9b,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, -0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0x00,0x01,0x00,0x65,0x00,0x00,0x03,0xf8,0x05,0xa8,0x00,0x2b,0x00,0x40,0xb4,0x04,0x03,0x15, -0x2d,0x1d,0xb8,0x05,0x0a,0xb2,0x0e,0x0e,0x14,0xb8,0x05,0x0a,0xb6,0x15,0x27,0x22,0x04,0x04,0x14,0x09,0xb8,0x04,0xfb,0xb7,0x22,0x00,0x00,0x2f,0x22,0x01,0x22,0x14,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x02,0x07, -0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x16,0x12,0x15,0x11,0x23,0x11,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0xf8,0x48,0x6d,0x23,0x9a,0x11,0x38,0x4a,0x5b,0x33,0x1d,0x25,0x14,0x07,0x18,0x1e,0x18,0x9c,0x0d,0x12,0x17,0x12,0x0d,0x21,0x41,0x5f,0x3f,0x46,0x75,0x5c,0x3f, -0x0f,0x05,0x1a,0x43,0x26,0x05,0x9a,0x6f,0xfe,0xfe,0x95,0x4a,0x83,0x62,0x39,0x11,0x1b,0x23,0x11,0x1d,0x72,0xbe,0xfe,0xec,0xc0,0xfe,0x85,0x01,0x73,0x88,0xd5,0xa4,0x7a,0x5c,0x44,0x1c,0x39,0x5d,0x43,0x25,0x3c,0x5d,0x6e,0x33,0x56,0x94,0x42,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x03,0x81,0x05,0x9a,0x00,0x12,0x00,0x20,0xb9,0x00, -0x08,0x05,0x0a,0xb2,0x07,0x00,0x0f,0xba,0x04,0xfb,0x00,0x11,0x04,0xe6,0xb3,0x2f,0x08,0x01,0x08,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x37,0x3e,0x04,0x12,0x37,0x33,0x06,0x02,0x0e,0x03,0x07,0x21,0x15,0x21,0x52,0x31,0x53,0x45,0x36,0x27,0x19,0x05,0x9c,0x07,0x19,0x23,0x2d,0x37,0x41,0x25,0x02,0x5c,0xfc,0xd1, -0x42,0x5c,0xb1,0xba,0xcd,0xf3,0x01,0x20,0xb1,0xb4,0xfe,0xe2,0xe8,0xba,0xa2,0x92,0x4b,0xa7,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90, -0x06,0x03,0x00,0x01,0x00,0x00,0x01,0x87,0x02,0xfe,0x01,0xd9,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xfe,0xfd,0x02,0x02,0xfe,0x01,0x87,0x52,0x00,0xff,0xff,0xff,0x97,0xff,0xea,0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00, -0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0x97,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0x00,0x10,0x00,0x66,0x00,0x5a,0x04,0x5b,0x04,0x4e,0x00,0x07,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f, -0x00,0x37,0x00,0x3f,0x00,0x47,0x00,0x4f,0x00,0x57,0x00,0x5f,0x00,0x67,0x00,0x6f,0x00,0x77,0x00,0x7f,0x01,0x23,0xb9,0x00,0x18,0x05,0x0b,0xb2,0x1c,0x30,0x10,0xb8,0x05,0x0b,0xb4,0x34,0x14,0x14,0x40,0x00,0xb8,0x05,0x0b,0xb4,0x04,0x44,0x04,0x48,0x08,0xb8,0x05,0x0b,0xb4,0x0c,0x4c,0x0c,0x60,0x20,0xb8,0x05,0x0b,0xb4,0x24,0x64, -0x24,0x70,0x28,0xb8,0x05,0x0b,0xb4,0x2c,0x74,0x2c,0x78,0x38,0xb8,0x05,0x0b,0xb4,0x3c,0x7c,0x3c,0x68,0x50,0xb8,0x05,0x0b,0x40,0x14,0x54,0x6c,0x54,0x1c,0x04,0x0c,0x24,0x2c,0x3c,0x54,0x54,0x3c,0x2c,0x24,0x0c,0x04,0x1c,0x07,0x81,0x58,0xb8,0x05,0x0b,0xb2,0x5c,0x2a,0x0a,0xb8,0x04,0xfd,0xb4,0x0e,0x2e,0x0e,0x3a,0x02,0xb8,0x04, -0xfd,0xb4,0x06,0x3e,0x06,0x52,0x12,0xb8,0x04,0xfd,0xb4,0x16,0x56,0x16,0x5a,0x1a,0xb8,0x04,0xfd,0xb4,0x1e,0x5e,0x1e,0x6a,0x32,0xb8,0x04,0xfd,0xb4,0x36,0x6e,0x36,0x7a,0x42,0xb8,0x04,0xfd,0xb4,0x46,0x7e,0x46,0x72,0x4a,0xb8,0x04,0xfd,0x40,0x14,0x4e,0x76,0x4e,0x0e,0x06,0x16,0x1e,0x36,0x46,0x4e,0x4e,0x46,0x36,0x1e,0x16,0x06, -0x0e,0x07,0x26,0x62,0xbb,0x04,0xfd,0x00,0x66,0x00,0x22,0x04,0xfd,0xb3,0x3f,0x26,0x01,0x26,0x00,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32, -0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x34,0x33, -0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33, -0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x16,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x25,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x03,0xd4,0x30,0x34,0x34,0x30,0x94, -0x30,0x34,0x34,0x30,0xf7,0x33,0x31,0x33,0x31,0x24,0x30,0x34,0x34,0x30,0xfe,0x37,0x32,0x32,0x32,0x32,0xad,0x33,0x31,0x31,0x33,0x02,0x52,0x33,0x31,0x31,0x33,0xfd,0x1a,0x32,0x32,0x32,0x32,0x02,0x83,0x30,0x34,0x34,0x30,0x94,0x30,0x34,0x34,0x30,0xfd,0xae,0x30,0x34,0x32,0x32,0x24,0x01,0x31,0x34,0x34,0x31,0x01,0xc7,0x32,0x32, -0x32,0x32,0xfe,0x5c,0x32,0x32,0x32,0x32,0xf7,0x33,0x31,0x31,0x33,0x94,0x32,0x32,0x32,0x32,0x03,0x96,0x32,0x32,0x32,0x30,0x31,0x31,0x33,0xfe,0xd7,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0x01,0x97,0x33,0x33,0x31,0x56,0x31,0x31,0x33,0xfd,0x7b,0x31,0x31,0x33,0x01,0xbd,0x32,0x2f,0x35,0xfd,0x48,0x31,0x31,0x33,0x95,0x30,0x30,0x34, -0x02,0x20,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0xfe,0x07,0x33,0x33,0x31,0xe8,0x31,0x31,0x33,0xfe,0xd9,0x34,0x30,0x34,0x2e,0x31,0x31,0x33,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x09,0x63,0x01,0xef,0x00,0x0f,0x00,0x10,0xb2,0x0e,0x0b,0x07,0xb9,0x04,0xfb,0x00,0x00,0x00,0x2f,0xfd,0xcd,0x33,0x30,0x31,0x05,0x21,0x22,0x26,0x27,0x27, -0x37,0x21,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x33,0x09,0x63,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0x66,0x20,0x23,0x9d,0x25,0x1e,0xe8,0x0e,0x0e,0x0f,0x85,0x05,0x5a,0xa8,0x54,0x5a,0xa3,0x59,0x00,0x01,0x00,0x73,0xff,0xf1,0x08,0x39,0x01,0x60,0x00,0x4d,0x00,0x22,0xb1,0x2e,0x3d,0xb8,0x04,0xfb,0xb5,0x1d,0x00,0x10,0x18,0x06, -0x22,0xb8,0x04,0xfb,0xb2,0x45,0x33,0x29,0x00,0x2f,0x33,0x33,0xfd,0x32,0x32,0xdc,0x32,0x32,0xed,0x32,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x1e,0x03,0x33,0x21,0x17,0x07,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23, -0x22,0x2e,0x02,0x27,0x2e,0x03,0x23,0x22,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x24,0x0a,0x0b,0x23,0x1b,0x16,0x2a,0x28,0x25,0x11,0x14,0x2e,0x34,0x3c,0x21,0x20,0x31,0x27,0x1f,0x0e,0x1e,0x30,0x22,0x12,0x29,0x2e,0x32,0x1a,0x36,0x74,0x87,0x9f,0x62,0x01,0x7a,0x05,0x1c,0x51,0xb2,0x55,0x35,0x60,0x8d, -0x71,0x60,0x33,0x20,0x3c,0x38,0x33,0x18,0x21,0x33,0x29,0x20,0x0f,0x12,0x1c,0x1a,0x1b,0x12,0x1d,0x34,0x1d,0x16,0x32,0x3d,0x4c,0x30,0x33,0x48,0x2d,0x15,0x13,0x0f,0x01,0x48,0x1e,0x3b,0x16,0x26,0x20,0x10,0x1b,0x21,0x11,0x13,0x28,0x20,0x15,0x15,0x20,0x29,0x13,0x2a,0x32,0x10,0x26,0x3e,0x2f,0x1d,0x39,0x2c,0x1b,0x05,0x85,0x0f, -0x0e,0x17,0x25,0x31,0x1b,0x2a,0x35,0x1d,0x0b,0x0f,0x1a,0x22,0x13,0x17,0x25,0x19,0x0e,0x28,0x1c,0x15,0x2d,0x25,0x18,0x1b,0x30,0x43,0x28,0x2a,0x52,0x25,0x00,0x02,0x00,0x49,0xff,0xf2,0x05,0xd0,0x02,0x6c,0x00,0x1c,0x00,0x2e,0x00,0x16,0xb9,0x00,0x15,0x04,0xfb,0xb2,0x22,0x2c,0x1c,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xfd,0x32, -0xdc,0xed,0x30,0x31,0x25,0x17,0x07,0x06,0x06,0x23,0x23,0x2a,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x05,0xcc,0x04,0x1c,0x51,0xb2,0x55,0x36,0x1c,0x5e,0x7b,0x95,0x52,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55, -0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2b,0x3f,0x53,0x34,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x52,0x99,0x06,0x84,0x0f,0x0e,0x05,0x2a,0x59,0x53,0x55,0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x02,0x00,0x73,0xff,0xed,0x0b,0xbf,0x02,0x6c,0x00,0x32, -0x00,0x46,0x00,0x1c,0xb9,0x00,0x18,0x04,0xfb,0xb4,0x3d,0x42,0x11,0x09,0x00,0xb8,0x04,0xfb,0xb1,0x22,0x2c,0x00,0x2f,0x33,0xfd,0xcc,0x33,0x33,0xdc,0xed,0x30,0x31,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27, -0x23,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x27,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x07,0xab,0x2d,0x23,0x02,0x04,0x07,0x04,0x8a,0x0b,0x0e,0x04,0x03,0x0a,0x13,0x20,0x19,0x0f,0x2d,0x3d,0x4c,0x5b,0x6b,0x3d,0x45,0x65,0x43,0x20,0x36,0x78,0xc0,0x8a,0x7c,0xa4,0x24,0x11,0x21, -0x0b,0x02,0x1e,0x53,0x2d,0xfa,0x41,0x55,0xb2,0x51,0x1c,0x05,0x09,0xab,0x4e,0x65,0x3c,0x17,0x18,0x29,0x37,0x1f,0x35,0x59,0x46,0x33,0x0f,0x0d,0x30,0x32,0x2d,0x99,0x2f,0x2d,0x0a,0x1d,0x21,0x22,0x0f,0x2a,0x4e,0x14,0x0d,0x18,0x13,0x0d,0x02,0x2c,0x68,0x67,0x60,0x4a,0x2c,0x3a,0x64,0x87,0x4d,0x63,0x6d,0x33,0x0a,0x05,0x0e,0x06, -0x22,0x13,0x2a,0x1f,0x0e,0x0f,0x85,0x05,0x03,0x04,0x16,0x2f,0x2c,0x31,0x45,0x2d,0x15,0x36,0x55,0x6b,0x36,0x01,0x00,0x02,0x00,0x49,0xff,0xf0,0x08,0x3d,0x02,0x6c,0x00,0x1e,0x00,0x30,0x00,0x36,0xb4,0x1e,0x1f,0x1f,0x32,0x29,0xbb,0x05,0x0a,0x00,0x12,0x00,0x24,0x04,0xfb,0x40,0x0b,0x2f,0x17,0x01,0x17,0x2e,0x2e,0x1f,0x1f,0x1e, -0x1e,0x00,0xb9,0x04,0xfb,0x00,0x07,0x00,0x2f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x10,0xcd,0x30,0x31,0x25,0x32,0x36,0x37,0x07,0x06,0x06,0x23,0x21,0x22,0x06,0x22,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, -0x02,0x33,0x32,0x36,0x06,0xfe,0x51,0x9c,0x52,0x21,0x23,0x80,0x55,0xfd,0x63,0x5c,0x8c,0x80,0x82,0x53,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55,0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2a,0x40,0x54,0x33,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x53,0x99,0x08,0x0a,0xa9,0x05,0x0b,0x01,0x01,0x07,0x2a,0x5a,0x52,0x55, -0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x01,0x00,0x46,0xfe,0xaa,0x02,0x1e,0x02,0x01,0x00,0x09,0x00,0x18,0x40,0x0a,0x00,0x06,0x06,0x0b,0x0a,0x09,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x07, -0x23,0x36,0x12,0x37,0x02,0x1e,0x2c,0x5a,0x56,0x51,0x23,0x88,0x46,0x9f,0x4f,0x02,0x01,0x5a,0xce,0xdb,0xe4,0x70,0xfb,0x01,0xb4,0xa8,0x00,0x02,0x00,0x32,0xfd,0xfe,0x04,0x2e,0x04,0x0c,0x00,0x45,0x00,0x58,0x00,0x6d,0xb2,0x45,0x26,0x13,0xb8,0x05,0x0a,0xb4,0x4b,0x4b,0x5a,0x2e,0x26,0xb8,0x05,0x0a,0xb3,0x09,0x05,0x05,0x3f,0xb8, -0x05,0x0a,0xb7,0x2e,0x1b,0x23,0x55,0x09,0x04,0x18,0x0e,0xbc,0x04,0xfc,0x00,0x50,0x04,0xe6,0x00,0x00,0x04,0xfb,0xb5,0x42,0x2b,0x45,0x45,0x18,0x3a,0xb8,0x04,0xfb,0xb2,0x33,0x20,0x46,0xb8,0x04,0xfc,0x40,0x09,0x18,0x1f,0x1f,0x1f,0x18,0x2f,0x18,0x02,0x18,0x00,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x12,0x39,0x2f,0x39, -0x39,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x17,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34, -0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x15,0x16,0x16,0x03,0x5c,0xad,0xe9,0x8c,0x3b,0x08,0x07,0x05,0x3a,0x76,0x78,0x78,0x3d,0x4f,0x77,0x50,0x28,0x40,0x78,0xae,0x6e,0x6f,0xad,0x3f,0x03,0x10,0x1e, -0x10,0x8c,0x1d,0x3b,0x1d,0x21,0x21,0x14,0x32,0x52,0x3f,0x4c,0x45,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x55,0x2b,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd0,0x8a,0xfb,0x4b,0x72,0x4e,0x27,0x14,0x2c,0x45,0x30,0x2a,0x5c,0x62,0x6a,0x37,0x2d,0x86,0x01,0x9f,0x2e,0x68,0x73,0x7c,0x42,0x1d,0x33,0x1a,0x51,0x70,0x46,0x1f,0x2e,0x4f, -0x68,0x39,0x49,0x87,0x69,0x3f,0x40,0x36,0x01,0x1b,0x39,0x20,0x3d,0x6b,0x30,0x36,0x78,0x40,0x2e,0x65,0x66,0x65,0x30,0x45,0xa3,0x4f,0x4c,0x8c,0x6a,0x40,0x08,0x09,0xaa,0x08,0x0b,0x15,0x34,0x57,0x43,0x48,0x71,0x28,0x2d,0x52,0x24,0xfc,0x55,0x26,0x3d,0x4d,0x26,0x1b,0x33,0x28,0x18,0x17,0x39,0x63,0x4c,0x02,0x2d,0x36,0x00,0x02, -0xff,0xc9,0x06,0x37,0x02,0x29,0x07,0xeb,0x00,0x24,0x00,0x36,0x00,0x2e,0xbc,0x00,0x11,0x05,0x0d,0x00,0x2a,0x00,0x0c,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb1,0x1f,0x16,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x33,0x16,0x16, -0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71, -0x51,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x44,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x56,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02, -0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x01,0xff,0xe9,0x06,0x37,0x01,0xee,0x07,0xeb,0x00,0x2e,0x00,0x4a,0xb1,0x24,0x06,0xb8,0x05,0x0d,0xb4,0x00,0x27,0x27,0x09,0x1e,0xb8,0x05,0x0d,0x40,0x0b,0x18,0x1a,0x1a,0x18,0x09,0x24,0x09,0x0a,0x2e,0x2e,0x2c,0xb8,0x05,0x01,0xb5,0x03,0x09,0x23,0x23,0x1b,0x09,0xb8,0x05, -0x01,0xb1,0x14,0x0a,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x17, -0x1e,0x03,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0xbe,0x0e,0x1d,0x11,0x2e,0x40,0x92,0x48,0xcd,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x0a,0x51,0x06,0x09,0x02,0x02,0x08,0x12,0x20,0x1b,0x1d,0x12,0x17,0x1d,0x34,0x49,0x2c,0x20,0x22,0x07,0x7e,0x03,0x04,0x26,0x2c,0x5b,0x64,0x01,0x04, -0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x27,0x18,0x2f,0x0b,0x0a,0x11,0x0c,0x06,0x1b,0x3b,0x1e,0x23,0x3b,0x2b,0x17,0x06,0x00,0x02,0x00,0x03,0x06,0x1f,0x02,0x20,0x08,0x00,0x00,0x1d,0x00,0x36,0x00,0x2c,0xbf,0x00,0x2e,0x05,0x0d,0x00,0x25,0x00,0x11,0x04,0xfd,0x00,0x18,0x00,0x20,0x04,0xfd,0x40,0x0a,0x33,0x1e,0x00, -0x0c,0x14,0x1d,0x05,0x05,0x28,0x05,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0xfd,0xd4,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x23,0x3e,0x03,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, -0x26,0x27,0x01,0x4a,0x49,0x5a,0x34,0x18,0x07,0x51,0x06,0x17,0x32,0x57,0x47,0x14,0x1c,0x1e,0x25,0x1c,0x18,0x2d,0x11,0x14,0x2e,0x17,0x2b,0x39,0x32,0x37,0x2b,0x65,0x38,0x26,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x0c,0x11,0x0c,0x06,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x07,0x2f,0x12,0x29,0x2f,0x36,0x1e,0x1e,0x40,0x3f,0x3a,0x18, -0x03,0x07,0x0e,0x0c,0x07,0x06,0x07,0x5f,0x06,0x07,0x15,0x1b,0x17,0x01,0xfe,0xee,0x11,0x17,0x29,0x37,0x21,0x3e,0x75,0x36,0x1d,0x3d,0x3e,0x3a,0x19,0x3c,0x5c,0x3e,0x20,0x09,0x0a,0x00,0x00,0x04,0xff,0x88,0x06,0x1f,0x02,0xb1,0x08,0xbb,0x00,0x24,0x00,0x36,0x00,0x4d,0x00,0x51,0x00,0x52,0xb2,0x41,0x45,0x4e,0xbb,0x05,0x0d,0x00, -0x4f,0x00,0x45,0x05,0x0d,0xb2,0x3e,0x37,0x11,0xb8,0x05,0x0d,0xb3,0x2a,0x51,0x4e,0x0c,0xb8,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb3,0x1f,0x16,0x41,0x39,0xb9,0x04,0xfd,0x00,0x4a,0x00,0x2f,0xfd,0xce,0xd4,0xce,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xfd,0xd6,0xcd,0x01,0x2f, -0xed,0x39,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x03,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x16,0x33,0x32,0x3e,0x02, -0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x23,0x35,0x33,0x58,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0c,0x2d,0x40,0x53,0x33,0x27,0x38,0x26,0x12,0x1e,0x42,0x69,0x4b,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x3c,0x2a,0x37,0x20,0x0d,0x30,0x22,0x1d,0x2f,0x26,0x1c, -0x08,0x07,0x1a,0x1b,0x18,0xa0,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x98,0x57,0x57,0x07,0x92,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02,0x0e,0x1b,0x1a, -0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x83,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0xff,0xc4,0x06,0x71,0x02,0x22,0x07,0xb0,0x00,0x2a,0x00,0x31,0xb9,0x00,0x01,0x05,0x0d,0xb2,0x29,0x0c,0x1e,0xb8,0x05,0x0d,0xb5,0x1d,0x1e,0x18,0x15,0x15,0x24,0xb8,0x05,0x01, -0xb5,0x06,0x14,0x14,0x11,0x06,0x00,0x00,0x2f,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x02, -0x22,0x1b,0x2b,0x38,0x1d,0x26,0x33,0x20,0x10,0x03,0x04,0x0b,0x22,0x35,0x4d,0x34,0x10,0x21,0x13,0x0c,0x17,0x2a,0x13,0x3f,0x4f,0x2d,0x10,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x07,0xb0,0xa7,0x2d,0x3b,0x23,0x0d,0x11,0x1f,0x2b,0x1a,0x19,0x2b,0x1f,0x12,0x02,0x02,0x66,0x02,0x02,0x15,0x29,0x3a,0x25,0x35,0x1b,0x28,0x19, -0x0c,0x06,0x11,0x1e,0x17,0x8d,0x00,0x01,0x00,0xc4,0xfd,0xf6,0x01,0x42,0xff,0x7e,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0xfd,0xf6,0x01,0x88,0x00,0x00,0x02,0xff,0xbf,0x06,0x73,0x01,0xca,0x08,0x2c, -0x00,0x23,0x00,0x2f,0x00,0x35,0xb2,0x03,0x10,0x06,0xb8,0x05,0x0d,0xb5,0x24,0x00,0x00,0x24,0x14,0x2a,0xb8,0x05,0x0d,0xb3,0x10,0x03,0x23,0x1e,0xbc,0x04,0xfd,0x00,0x17,0x00,0x2d,0x04,0xfd,0x00,0x0b,0x00,0x2f,0xfd,0xd4,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x07,0x16, -0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x27,0x26,0x22,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x13,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x71,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c, -0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x07,0xef,0x08,0x10,0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0xfe,0xec,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x01,0x00,0x32, -0x06,0x71,0x01,0xd4,0x07,0xe3,0x00,0x1c,0x00,0x29,0xb2,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb3,0x0d,0x0d,0x1d,0x03,0xb8,0x05,0x0d,0xb3,0x19,0x1c,0x11,0x16,0xb9,0x05,0x01,0x00,0x08,0x00,0x2f,0xfd,0xc6,0xc6,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34, -0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x00,0xff,0xff, -0xff,0xc6,0x06,0x7c,0x02,0x2c,0x08,0xde,0x01,0x07,0x0f,0x57,0x00,0x00,0x06,0x7c,0x00,0x15,0x40,0x0c,0x01,0x00,0x20,0x00,0x01,0x20,0x00,0x01,0x20,0x00,0x01,0x00,0x00,0x11,0x5d,0x5d,0x5d,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x05,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xfe,0x29, -0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x05,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfe,0x29,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00, -0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x06,0x40,0x02,0x26,0x0e,0x5c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x64,0xff,0xff,0x00,0x67,0xfd,0xff,0x05,0x58, -0x05,0xaa,0x02,0x26,0x08,0xf2,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x73,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x56,0x01,0x56,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x06,0x40,0x02,0x26,0x0e,0x5b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x56,0xfe,0x64,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35, -0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x05,0xaa,0x02,0x26,0x0e,0x5d,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0x00,0x06,0xfe,0x93,0xfe,0x64,0x01,0x6d,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0x32,0x00,0x57,0xbc,0x00,0x20,0x05, -0x0a,0x00,0x25,0x00,0x2f,0x05,0x0a,0xb2,0x2a,0x2a,0x16,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x31,0x10,0xb8,0x04,0xfc,0xb5,0x2c,0x12,0x0b,0x23,0x18,0x02,0xb8,0x04,0xfc,0xb6,0x27,0x1d,0x14,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x33,0x33,0xed,0x32,0x32,0xd4,0x32, -0x32,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x14,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x16,0x17,0x14,0x23, -0x22,0x26,0x35,0x34,0x33,0x32,0x01,0x6d,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0x43,0x44,0x28,0x1c,0x1c,0x27,0xb6,0x28,0x1b,0x42,0x42,0x1c,0x27,0x5a,0x41,0x1c,0x28,0x44,0x41,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x44,0x41,0x41,0x1c,0x28,0x28,0x1c,0x1b,0x26,0x41, -0x44,0x28,0xd4,0x44,0x28,0x1c,0x41,0x00,0x00,0x04,0xfe,0xa9,0xfe,0x64,0x01,0x54,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x19,0x00,0x47,0xbc,0x00,0x16,0x05,0x0c,0x00,0x17,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x12,0x0b,0xbb,0x04,0xfc,0x00,0x10,0x00,0x02,0x04,0xfc,0xb4,0x07,0x15,0x07, -0x07,0x16,0xb8,0x04,0xfd,0xb4,0x14,0x2f,0x19,0x01,0x19,0x00,0x2f,0x5d,0x33,0xed,0x33,0x11,0x33,0x10,0xfd,0xd6,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x21,0x35,0x21,0x01,0x54,0x41, -0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0xfe,0xf4,0x01,0x0c,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x52,0x52,0x00,0x04,0xfe,0x91,0xfe,0x64,0x01,0x71,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1d,0x00,0x59,0xb9,0x00,0x18,0x05,0x0d,0xb4,0x19,0x19,0x1e,0x1b,0x12,0xb8, -0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x1a,0x16,0xb8,0x04,0xfd,0xb2,0x1d,0x15,0x02,0xb8,0x04,0xfc,0xb2,0x07,0x07,0x18,0xb8,0x04,0xfe,0xb6,0x14,0x2f,0x1d,0x01,0x1d,0x12,0x0b,0xb8,0x04,0xfc,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x33,0xe4,0x33,0x10,0xed,0x33,0x10,0xed,0x32,0x01, -0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0x71,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xba,0x73,0x5c,0x73,0x01,0x42, -0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x54,0x85,0x85,0x54,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0x67,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c, -0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x08,0x7f,0x02,0x26,0x09,0x3f,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a, -0xfd,0xce,0xff,0xff,0x00,0xa1,0xff,0xf2,0x09,0x4b,0x08,0x36,0x00,0x26,0x09,0x71,0x00,0x00,0x00,0x07,0x09,0x0d,0x08,0x04,0x00,0x00,0x00,0x05,0x00,0x9b,0xfd,0xff,0x0b,0x15,0x05,0xec,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0xb2,0xb2,0x44,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x38,0x24,0xba,0x05,0x0a,0x00,0x58, -0x05,0x0a,0xb6,0x21,0x57,0x57,0x21,0x54,0x54,0x53,0x41,0x09,0x05,0x0a,0x00,0x33,0x05,0x0a,0x00,0x30,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x03,0x05,0x0a,0x40,0x17,0x1a,0x3f,0x21,0x30,0x0d,0x1a,0x1a,0x0d,0x30,0x21,0x3f,0x05,0x5c,0x5b,0x5a,0x5a,0x08,0x55,0x55,0x08,0x08,0x59,0x56,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x53,0x53,0x54, -0x54,0x15,0x15,0x57,0x57,0x38,0x3a,0xb8,0x04,0xfb,0x40,0x0b,0x52,0x1f,0x4f,0x2f,0x4f,0x02,0x4f,0x44,0x33,0x32,0x1e,0xba,0x04,0xfb,0x00,0x29,0x05,0x03,0xb2,0x23,0x0e,0x00,0x00,0x2f,0x2f,0x2f,0x3f,0xed,0x2f,0x2f,0x2f,0x2f,0x5d,0x33,0xed,0x32,0x32,0x2f,0x32,0x2f,0x33,0x2f,0x32,0x2f,0x33,0xed,0x32,0x32,0x2f,0x33,0x2f,0x11, -0x33,0x2f,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0xe4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xe4,0xed,0x39,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x32,0x36,0x35, -0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d, -0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x06,0x96,0x5d,0x5b,0x9c,0x37,0x5f,0x7e,0x47,0x44,0x65,0x48,0x2d,0x1a,0x0a,0x9c,0x09,0x23,0x45,0x01,0x67,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0x48,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84, -0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfe,0xeb,0x68,0x70,0x01,0xa6,0xfe,0x53,0x6b,0x90,0x58,0x25,0x21,0x39,0x4c,0x57,0x5e,0x2e,0x04,0x79,0xfb,0xc2,0x40,0x69,0x4b,0x29,0xfe,0x40,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e, -0x8a,0xd4,0x90,0x4a,0x16,0x17,0x79,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x06,0xf2,0x00,0x2f,0x00,0x33,0x00,0x62,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x0a, -0x29,0x06,0x31,0xb8,0x04,0xfd,0xb6,0x32,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0xdc,0x32,0x11,0x33,0xde,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15, -0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11, -0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xbc, -0x58,0x00,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x53,0x00,0x61,0x00,0x85,0xb9,0x00,0x54,0x05,0x0d,0xb3,0x4d,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c,0x2f,0x2f,0x2c,0x43,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x41,0x1f,0x5c,0x5c,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19, -0xb8,0x05,0x0b,0xb4,0x12,0x15,0x15,0x12,0x48,0xb8,0x04,0xfd,0xb3,0x57,0x50,0x5f,0x3d,0xb8,0x04,0xfd,0x40,0x0a,0x36,0x33,0x33,0x36,0x15,0x00,0x23,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1c,0x29,0x00,0x2f,0x33,0xed,0x32,0x39,0xde,0x32,0x32,0xce,0x32,0x2f,0x10,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, -0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14, -0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14, -0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34,0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f, -0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x1d,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14, -0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x02,0xff,0xd4,0x05,0x28,0x02,0x33,0x06,0xfc,0x00,0x2f,0x00,0x33,0x00,0x63,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f, -0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x22,0x22,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xb9,0x04,0xfd,0x00,0x32,0x00,0x2f,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39, -0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x02,0x2f,0x02,0x02, -0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0xfc,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12, -0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x00,0x00,0x03,0xff,0x6c,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x54,0x00,0x62,0x00,0x8b,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x12,0x63,0x3b,0x55,0xb8,0x05,0x0d,0xb4,0x4e,0x3b,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c, -0x2f,0x2f,0x2c,0x44,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x42,0x1f,0x5d,0x5d,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x0a,0x1f,0x22,0x22,0x1f,0x3c,0x60,0x39,0x03,0x36,0x49,0xbb,0x04,0xfd,0x00,0x58,0x00,0x3f,0x04,0xfd,0xb6,0x36,0x16,0x00,0x22,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd4,0x32, -0x32,0xd6,0xfd,0xd4,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, -0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, -0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34, -0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x2f,0x3b,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14, -0x2c,0x0d,0x1d,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00,0x00,0x03,0xff,0xd4,0x05,0x28,0x02,0x33,0x07,0xab,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b, -0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xbc,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0x00, -0x36,0x00,0x2f,0xfd,0xd6,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37, -0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01, -0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x07,0xab,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x57,0x58,0x00,0x00,0x04,0x00,0x35, -0xfd,0xf6,0x03,0xf2,0x05,0x28,0x00,0x27,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x58,0xbc,0x00,0x14,0x05,0x0a,0x00,0x28,0x00,0x3e,0x05,0x0b,0xb2,0x3f,0x3f,0x3a,0xbb,0x05,0x0c,0x00,0x3b,0x00,0x32,0x05,0x0a,0x40,0x0b,0x05,0x28,0x3b,0x05,0x05,0x3b,0x28,0x03,0x43,0x42,0x3a,0xb8,0x04,0xfb,0xb4,0x3d,0x3f,0x40,0x37,0x24,0xbd,0x04, -0xfb,0x00,0x1b,0x05,0x03,0x00,0x2d,0x04,0xfb,0x00,0x0c,0x00,0x2f,0xed,0x3f,0xed,0x32,0xd6,0xcd,0x2f,0xed,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x27,0x16, -0x16,0x33,0x32,0x36,0x37,0x25,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x03,0x23,0x11,0x33,0x02,0x4e,0x49,0x60,0x38,0x16,0x15,0x28,0x3a,0x47,0x54,0x2f,0x45,0x75,0x38,0x14,0x26,0x1d,0x11,0x3c,0x64,0x82,0x8e,0x8f,0x3e,0x39,0x52,0x41,0x36,0x1e,0x20,0x51,0x9e,0x47,0x49,0x77, -0x21,0x01,0x09,0x22,0x38,0x4a,0x27,0x1d,0x37,0x2b,0x1b,0x18,0x42,0x73,0x5a,0x21,0x1d,0xab,0xc9,0xc9,0x23,0x7e,0x7e,0x9e,0x1d,0x45,0x4c,0x52,0x2b,0x2e,0x60,0x5b,0x50,0x3d,0x23,0x51,0x58,0x20,0x4a,0x54,0x5d,0x32,0x5e,0x82,0x56,0x30,0x17,0x05,0x02,0x04,0x06,0x04,0xa7,0x0a,0x08,0x07,0x04,0xc6,0x33,0x78,0x66,0x44,0x26,0x3c, -0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x17,0x52,0x03,0x36,0xbd,0xf8,0xce,0x01,0x88,0x00,0x03,0x00,0x65,0xff,0xea,0x03,0x9d,0x03,0x6c,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3a,0xb9,0x00,0x21,0x05,0x0c,0xb4,0x13,0x1b,0x1b,0x24,0x15,0xbb,0x05,0x0c,0x00,0x0f,0x00,0x09,0x05,0x0c,0xb2,0x03,0x1e,0x12,0xbe,0x04,0xfe,0x00,0x18,0x00, -0x0c,0x05,0x03,0x00,0x00,0x04,0xfe,0x00,0x06,0x00,0x2f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd4,0xed,0x11,0x33,0x2f,0xc4,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x02,0x00,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x79,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x02,0x8e,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0x5c,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0xe7,0x06,0x7c,0x02,0x1f,0x06,0xe8, -0x00,0x03,0x00,0x15,0xb2,0x01,0x00,0x02,0xb8,0x04,0xfd,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xcd,0x31,0x30,0x03,0x21,0x15,0x21,0x19,0x02,0x38,0xfd,0xc8,0x06,0xe8,0x6c,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x04,0x02,0x03,0x00,0x00,0x2f,0x32, -0xcd,0x32,0x01,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x03,0x33,0x17,0x37,0x33,0x03,0xcb,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x06,0x7c,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x03,0x00,0x04,0x02,0x00,0x2f,0x33,0xcd,0x32,0x01,0x2f,0x2f,0x12, -0x39,0x31,0x30,0x01,0x13,0x23,0x27,0x07,0x23,0x13,0x01,0x3c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x07,0xdc,0xfe,0xa0,0xff,0xff,0x01,0x60,0x00,0x01,0x00,0x97,0xfe,0x92,0x01,0x6e,0xff,0x69,0x00,0x0b,0x00,0x15,0xbd,0x00,0x06,0x05,0x0c,0x00,0x00,0x00,0x09,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x13,0x34,0x36, -0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x97,0x3d,0x2f,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0xfe,0xfe,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0x3d,0x00,0x00,0x02,0x00,0x3d,0x06,0x55,0x02,0x48,0x08,0x0e,0x00,0x23,0x00,0x2f,0x00,0x39,0xb4,0x14,0x2a,0x03,0x06,0x10,0xb8,0x05,0x0d,0xb3,0x2a,0x00,0x00,0x24,0xbb,0x05,0x0d,0x00,0x06,0x00, -0x0b,0x04,0xfd,0xb3,0x2d,0x03,0x27,0x17,0xb8,0x04,0xfd,0xb3,0x20,0x1e,0x01,0x1e,0x00,0x2f,0x5d,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x17,0x16,0x32,0x33,0x32,0x36,0x37,0x17,0x06, -0x06,0x23,0x22,0x26,0x27,0x06,0x07,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x96,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c,0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x06,0x92,0x08,0x10, -0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0x01,0x14,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x00,0x03,0x00,0x05,0x06,0x67,0x02,0x01,0x08,0x31,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xb9,0x00,0x08,0x05,0x0a,0xb3,0x00,0x09, -0x01,0x04,0xb8,0x05,0x0a,0x40,0x0f,0x05,0x02,0x01,0x03,0x00,0x01,0x00,0x04,0x0b,0x08,0x07,0x20,0x04,0x01,0x04,0x00,0x2f,0x5d,0xdd,0xd4,0xcd,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x32,0x2f,0x33,0xed,0x31,0x30,0x13,0x01,0x15,0x01,0x25,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xa1, -0xa1,0xfe,0xa5,0xa1,0xa1,0x06,0xd3,0x01,0x5e,0x6c,0xfe,0xa2,0x01,0x9d,0x8f,0x9d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x22,0x03,0x0f,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x55,0x00,0x83,0xfe,0xab, -0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab, -0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, -0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, -0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x81,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00, -0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xab,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f, -0x05,0x5a,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a, -0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39, -0x00,0x3d,0x00,0x75,0xb9,0x00,0x3a,0x05,0x0a,0xb2,0x3b,0x3b,0x33,0xb8,0x05,0x0a,0xb3,0x32,0x1d,0x32,0x37,0xb8,0x05,0x0a,0xb7,0x36,0x32,0x36,0x32,0x36,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16,0x00,0x3c,0x04,0xfb,0xb5,0x2f,0x3b,0x01,0x3b,0x38,0x34,0xbb,0x04,0xfb,0x00,0x36,0x00,0x33,0x04,0xe6,0xb5,0x00,0x1d,0x31,0x03,0x11, -0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14, -0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7, -0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, -0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x0d,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x8b,0xb1,0x2b,0x40,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x00,0x05,0x0b,0xb4,0x0b,0x41,0x41,0x0b,0x49, -0xb8,0x05,0x0a,0xb2,0x48,0x48,0x45,0xb8,0x05,0x0a,0xb7,0x44,0x0b,0x44,0x0b,0x44,0x4d,0x34,0x13,0xbb,0x05,0x0a,0x00,0x24,0x00,0x4a,0x04,0xfb,0xb5,0x2f,0x49,0x01,0x49,0x46,0x42,0xbb,0x04,0xfb,0x00,0x44,0x00,0x41,0x04,0xe6,0xb5,0x0e,0x2b,0x3f,0x03,0x1f,0x31,0xb8,0x04,0xff,0xb2,0x38,0x1b,0x18,0xb8,0x04,0xfc,0xb7,0x1c,0x1f, -0x1f,0x2f,0x1f,0x02,0x1f,0x03,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x11,0x33,0x2f,0x10,0xed,0x39,0xe6,0x32,0x31,0x30,0x01,0x16,0x16,0x33,0x33,0x15,0x23, -0x22,0x2e,0x02,0x27,0x36,0x36,0x27,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x57,0x06,0x74,0x68,0x1f, -0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x2b,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x01, -0x56,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xb3,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0xff,0xff,0xff,0xba, -0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0x13,0x03,0x4a,0x03,0xba,0x02,0x26, -0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x4e,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00, -0x00,0x07,0x0f,0x56,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0xa3,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, -0x05,0x20,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x02, -0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00, -0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, -0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x02, -0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00, -0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, -0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03, -0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00, -0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b, -0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x04,0x79,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9, -0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0xf4,0x04,0x79,0x02,0x26,0x08,0xef,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0xf4,0x02,0xaf,0x02,0x26,0x08,0xef,0x00,0x00, -0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x51,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a, -0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x06,0x64,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x07,0xba,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c, -0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x63,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x22,0x01,0x22,0x00,0x11, -0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x13,0x40,0x0a,0x02,0x2f,0x1c,0x01,0x1c,0x01,0x20,0x19,0x01,0x19,0x00,0x11,0x5d,0x35,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x51, -0x05,0xec,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff, -0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x04,0xbc,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x09,0x7e, -0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06, -0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xa6,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0x18,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c, -0x02,0x18,0x00,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x00,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x23,0x33,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0xd3,0x1d,0xa0,0x14,0xc5, -0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f,0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0x01,0x9f, -0xfe,0x80,0x02,0x60,0x00,0x98,0x00,0x05,0x00,0x18,0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x91,0x05,0x22,0x03,0xb8,0x01,0x30,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0x9f,0xc1,0x9b,0x26,0x98,0xfd,0xe8,0x01,0x80,0x00,0x01,0x01,0xb3,0xfe,0x8a,0x02,0x4d,0x00,0x8b,0x00,0x05,0x00,0x18, -0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x95,0x05,0x22,0x03,0xb8,0x01,0x31,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0xb3,0x9a,0x8f,0x0b,0x8b,0xfd,0xff,0x01,0x76,0x00,0x01,0x00,0x14,0x00,0x8b,0x02,0xe8,0x05,0x30,0x00,0x1d,0x00,0x30,0x40,0x17,0x17,0xb1,0x0c,0x00,0xb1,0x05,0x0c,0x05, -0x0c,0x05,0x04,0x01,0x01,0x1f,0x11,0x04,0x0f,0xbe,0x14,0x00,0x04,0xbe,0x03,0x00,0x2f,0xed,0x32,0x2f,0xed,0x01,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x33,0x34,0x37,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x07,0x06,0x07,0x06,0x01,0x89,0x01,0x2f,0xfd,0x5c,0xd2,0x26,0x26,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x20,0x1f,0x01,0x20,0x95,0x95,0x84,0x50,0x51,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x42,0x40,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x04,0x2f,0x05,0x9a, -0x00,0x13,0x00,0x1f,0x00,0x27,0x00,0x84,0x40,0x0b,0x0c,0x19,0x10,0x06,0x0b,0x0d,0x06,0x4c,0x10,0x7d,0x1d,0xb8,0xff,0xf0,0x40,0x42,0x0b,0x0d,0x06,0x4c,0x1d,0x1d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x7d,0x25,0x08,0x0b,0x0c,0x06,0x4c,0x7f,0x25,0x01,0x25,0x25,0x29,0x00,0x29,0x40,0x0b,0x00,0x4d,0x21,0x17,0x17,0x15,0x19,0x7e,0x00, -0x04,0x00,0x02,0x02,0x00,0x0c,0x14,0x91,0x21,0x18,0x01,0x91,0x04,0x15,0x04,0x21,0x04,0x21,0x04,0x19,0x20,0x91,0x05,0x03,0x19,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x32,0x2b,0x11,0x12,0x39,0x2f,0x5d, -0x2b,0xe9,0x2b,0x39,0x2f,0x2b,0xe9,0x2b,0x11,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0xa0,0xa0,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe, -0xf8,0xc9,0xfa,0xfc,0xfc,0xe4,0x94,0xa3,0xfe,0xa6,0xc1,0xac,0x8a,0x9e,0xfe,0xed,0x01,0x4f,0x98,0x03,0xb3,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x02,0x9c,0xb5,0x98,0xb7,0x8c,0x7a,0xfe,0x02,0x66,0xfe,0x31,0x85,0x79,0xd1,0x00,0x00,0x02,0x00,0x1e,0xff,0xe8,0x05,0x61,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x41, -0x40,0x21,0x12,0x10,0x10,0x0e,0x7e,0x16,0x0d,0x0d,0x1b,0x17,0x0a,0x7e,0x09,0x07,0x07,0x05,0x09,0x0d,0x03,0x17,0x12,0x06,0x91,0x0f,0x0b,0x07,0x07,0x09,0x03,0x13,0x91,0x02,0x12,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x3f,0x01,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x31, -0x30,0x01,0x10,0x21,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x20,0x11,0x35,0x21,0x15,0x10,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0x8c,0x8c,0xa8,0x02,0xdb,0xa8,0x8c,0x8c,0xfd,0xf1,0x01,0x67,0xfd,0x25,0x02,0x44,0xfd,0xa4,0x02,0x45,0x57,0x98,0x02,0x7e,0xfd,0x82,0x02,0x7e,0xfd,0x82,0x98, -0xfd,0xfb,0x01,0xaa,0x5b,0x4c,0xfe,0x47,0xff,0xff,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x06,0x01,0xb0,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x70,0x03,0xb4,0x05,0xf8,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x1b,0x00,0x5e,0x00,0x1b,0x40,0x14,0x20,0x0e,0x30,0x0e,0x02,0x20,0x0d,0x30,0x0d,0x02,0x0f,0x0f, -0x1f,0x0f,0x02,0x0f,0x0c,0x1f,0x0c,0x02,0x00,0x5d,0x5d,0x5d,0x5d,0x00,0xff,0xff,0x00,0x60,0xfe,0xb5,0x03,0xdd,0x05,0x3d,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x3a,0xff,0xa3,0x00,0x0a,0xb4,0x02,0x4f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0xbd,0x05,0x9a,0x00,0x14,0x00,0x75, -0x40,0x0d,0x79,0x09,0x01,0x76,0x09,0x01,0x76,0x01,0x01,0x13,0x13,0x11,0x05,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x0a,0x0e,0x0a,0x0c,0x0c,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0x40,0x15,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15, -0x14,0x0c,0x91,0x11,0x0d,0x0d,0x0f,0x03,0x06,0x06,0x08,0x91,0x03,0x13,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x2f,0x11,0x33,0x10,0xe9,0x2b,0x32,0x2f,0x2b,0x32,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11, -0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xd8,0xd8,0xa8,0x92,0x92,0x02,0x02,0xff,0xfe,0xe5,0x18,0xa6,0x27,0x01,0x81,0x81,0x98,0x02,0x81,0xfd,0x7f,0x98,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0xd4,0x05,0xd9,0x00,0x14,0x00,0x20,0x00,0x7a,0x40,0x28,0x1e,0x62,0x18,0x0a, -0x00,0x18,0x62,0xff,0x30,0x06,0x0a,0x12,0x12,0x11,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x0a,0x0e,0x0a,0x0c,0x0c,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0x40,0x19,0x0b,0x06,0x4d,0x0a,0x0a,0x22,0x21,0x1b,0x63,0x15,0x0f,0x14,0x0c,0x95,0x11, -0x0d,0x0d,0x0f,0x0f,0x06,0x06,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x10,0xde,0xed,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x5d,0x33,0x2f,0x11,0x33,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x10,0xc6,0x2b,0x01,0x10,0xe1,0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, -0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0x8a,0x8a,0xa4,0x8a,0x8a,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x01,0x9d,0x87,0x01,0xcc,0xfe,0x34,0x87,0x03,0x57,0x3c,0x2e, -0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x02,0x00,0x5e,0xfe,0x96,0x06,0x3d,0x05,0xb2,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x19,0x05,0x05,0x01,0x7e,0x25,0x1a,0x0b,0x0b,0x2b,0x1f,0x7d,0x13,0x1b,0x03,0x1c,0x91,0x16,0x04,0x22,0x91,0x10,0x13,0x03,0x91,0x08,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33, -0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x17,0x16,0x17,0x35,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x35,0x02,0x27,0x26,0x05,0x19,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x0c,0x0d,0xa2,0xfe,0xf1,0xfe,0xf6, -0xfe,0xc1,0x01,0x45,0x01,0x19,0x01,0x02,0x9e,0x0b,0x0a,0xfe,0x54,0xc3,0xf4,0xed,0xbf,0xcc,0xeb,0x03,0x6f,0x72,0x05,0x9a,0xfa,0x9b,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0xbd,0xa0,0x11,0x10,0xcc,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xc8,0x0e,0x0f,0xcd,0x80,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x0e,0x01, -0x12,0x97,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x96,0x05,0x34,0x04,0x18,0x00,0x1d,0x00,0x2e,0x00,0x2c,0x40,0x17,0x27,0x83,0x12,0x02,0x02,0x1c,0x84,0x1e,0x1a,0x0a,0x1a,0x0f,0x23,0x95,0x16,0x10,0x2b,0x95,0x0e,0x16,0x00,0xec,0x05,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30, -0x05,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x26,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x10,0x03,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0xc2,0x3e,0x34,0x39,0x41,0x9f,0x5a,0x2d,0x28,0x04,0x72,0xee,0xc1,0x74,0x73,0x80, -0x80,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0x52,0x53,0x7d,0x96,0x56,0x56,0x52,0x53,0x8b,0x89,0x55,0x56,0xd3,0x1d,0xa0,0x14,0x71,0x39,0x96,0x5f,0x79,0xc6,0x89,0x89,0xee,0xfd,0x9a,0x99,0xa6,0x8e,0xfc,0x35,0xfe,0xf8,0x02,0xa2,0x97,0x7d,0x55,0x56,0x6e,0x6e,0xc2,0xb1,0x67,0x66,0x63,0x64,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0xc0, -0x05,0x9a,0x00,0x20,0x00,0x2b,0x00,0xb0,0x40,0x32,0x75,0x13,0x01,0x76,0x12,0x01,0x39,0x02,0x01,0x0e,0x1b,0x22,0x91,0x0b,0x08,0x08,0x0a,0x21,0x91,0x0f,0x03,0x01,0x0a,0x1b,0x09,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x28,0x7d,0x15,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4, -0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x15,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x2d,0x22,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x0e,0x0d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06, -0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x33,0x33,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x00,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11, -0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0,0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0xa0,0xa0,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c, -0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x02,0x62,0x98,0x02,0xa0,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x18,0x00,0x3f,0x40,0x1f,0x00,0x00,0x1a,0x11,0x06,0x0a,0x84,0x0b, -0x0f,0x0b,0x0d,0x0d,0x0b,0x09,0x0c,0xec,0x06,0x0f,0x0f,0x0b,0x16,0x12,0x00,0x00,0x02,0x16,0x10,0x10,0x0f,0x0b,0x15,0x00,0x3f,0x3f,0x3f,0xcd,0x32,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x15,0x21,0x11, -0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0x01,0x16,0xfe,0xea,0xa4,0x8a,0x8a,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0x23,0x98,0xfe,0xb1,0x01,0x4f,0x98,0x02,0x19,0xd3,0x6c,0x79,0x0e,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x11, -0x00,0x19,0x00,0x68,0x40,0x34,0x18,0x10,0x14,0x11,0x11,0x00,0x0f,0x19,0x0e,0x14,0x14,0x07,0x04,0x01,0x00,0x06,0x7e,0x0c,0x09,0x07,0x07,0x0d,0x00,0x02,0x02,0x00,0x00,0x1b,0x0e,0x0d,0x0b,0x0b,0x0d,0x19,0x04,0x0a,0x91,0x0f,0x01,0x0b,0x0b,0x11,0x11,0x14,0x05,0x08,0x03,0x07,0x0d,0x03,0x07,0x12,0x00,0x3f,0x3f,0x12,0x17,0x39, -0x33,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x03,0x11,0x23,0x11,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16, -0x17,0x33,0x36,0x37,0x37,0x21,0x04,0x60,0x8b,0x7a,0xc9,0xff,0xa8,0xfa,0xc9,0x7c,0x86,0xbf,0x83,0x01,0xd0,0x8a,0xfe,0x64,0x06,0x1d,0x03,0x0a,0x1c,0x78,0xfe,0xc9,0x05,0x9a,0xfe,0xf7,0x98,0xfe,0x19,0xfd,0xee,0x02,0x0e,0x01,0xeb,0x98,0x01,0x09,0xfe,0xf7,0x01,0x09,0xfd,0x78,0x0c,0x4c,0x22,0x36,0xe7,0x00,0x00,0x02,0x00,0x0e, -0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x18,0x00,0x20,0x00,0x66,0x40,0x35,0x1f,0x17,0x18,0x18,0x00,0x20,0x16,0x1b,0x15,0x01,0x04,0x05,0x1b,0x0f,0x10,0x13,0x07,0x00,0x0a,0x0a,0x14,0x00,0x02,0x02,0x00,0x00,0x22,0x15,0x14,0x12,0x12,0x14,0x20,0x04,0x11,0x96,0x16,0x01,0x12,0x12,0x21,0x18,0x14,0x0f,0x1b,0x05,0x0f,0x0a,0x0a,0x0c, -0x95,0x07,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32, -0x37,0x37,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x21,0x03,0xd5,0x8b,0x79,0xae,0xfe,0xe9,0x7e,0xe4,0x40,0x2b,0x35,0x2c,0x7c,0x3e,0x52,0xd3,0xae,0x79,0x88,0xb6,0x7a,0x01,0x6c,0x81,0xfe,0xae,0x05,0x10,0x06,0x05,0x0f,0x71,0xfe,0xf4,0x04,0x00,0xfe,0xa3,0x86,0xfd,0x3f,0xfe,0xc2,0x0d, -0x93,0x12,0x94,0xc2,0x02,0x1b,0x86,0x01,0x5d,0xfe,0xa3,0x01,0x5d,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x01,0x33,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x78,0xfc,0xe6,0x00,0x1b, -0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c,0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x26,0x07,0x72,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb5,0xfc,0xe6,0x00,0x1b,0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c, -0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x96,0x03,0xf6,0x05,0x9a,0x02,0x26,0x02,0xb9,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x78,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a, -0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1e,0xfe,0x96,0x03,0x29,0x04,0x00,0x02,0x26,0x02,0xba,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x56,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a,0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x04,0xda,0x05,0x9a,0x00,0x26,0x00,0x3b,0x00,0x00,0x00,0x07,0x08,0x5c,0x04,0x03, -0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0xc6,0x04,0x00,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x08,0x5c,0x02,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x1b,0x00,0x9b,0xb9,0x00,0x16,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0f,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01, -0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x16,0x08,0x0c,0x00,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0a,0x18,0x0d,0x1b,0x04,0x0e,0x19,0x19,0x17,0x00,0x10,0x0b,0x00,0x4d,0x00,0x00,0x1d,0x0b,0x0b,0x0e,0x09,0xb8, -0xff,0xf0,0x40,0x16,0x0b,0x00,0x4d,0x09,0x1b,0x04,0x0b,0x91,0x18,0x12,0x2f,0x0c,0x01,0x0c,0x0c,0x08,0x16,0x0f,0x03,0x01,0x08,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x33,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, -0x2b,0x2b,0x2b,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x21,0x35,0x21,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xb2,0xfe,0x66,0x01,0x94,0xfe,0x7a,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe, -0x71,0x01,0x8b,0xfe,0x6d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0x8d,0x98,0x02,0x75,0xfe,0x08,0x32,0x32,0x42,0x26,0x01,0xf4,0xfd,0x8b,0x98,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x19,0x00,0x4e,0x40,0x2f,0x0d,0x0a,0x18,0x01,0x04,0x02,0x09,0x02,0x00,0x17,0x09,0x0c,0x0b,0x0e,0x13,0x0d,0x19,0x96, -0x0a,0x06,0x0f,0x00,0x1f,0x00,0x4f,0x00,0x5f,0x00,0x04,0x2f,0x00,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x04,0x00,0x00,0x03,0x0f,0x16,0x15,0x08,0x03,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x21,0x01,0x33,0x13,0x16, -0x17,0x33,0x01,0x33,0x01,0x21,0x15,0x21,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x21,0x28,0x01,0x21,0xfe,0xe0,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0xb5,0xfe,0xd4,0x01,0x1e,0xfe,0xe3,0x01,0x25,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x31,0xfe,0xdd,0x02,0x3d,0x01,0xc3,0xfe,0xa2,0x27,0x29,0x01,0xae, -0xfe,0x3d,0x86,0xfe,0x49,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xb7,0x00,0xff,0xff,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x02,0x06,0x04,0xbf,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x02,0x06,0x01,0x31,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x04,0xa4,0x05,0x9a,0x02,0x26,0x01,0xf2,0x00,0x00, -0x01,0x07,0x04,0x80,0x03,0xbe,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x02,0x12,0x00,0x00,0x01,0x07,0x04,0x80,0x02,0xac,0x00,0x00,0x00,0x09,0xb3,0x01,0x19,0x19,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x3e,0x04,0xc2,0x03,0x75, -0x06,0x0a,0x00,0x26,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x8e,0x01,0x69,0x00,0x00,0xff,0xff,0x00,0x3f,0x04,0xc2,0x03,0x75,0x06,0x0a,0x00,0x27,0x00,0xd9,0x01,0x3b,0x00,0x00,0x00,0x06,0x00,0x43,0xed,0x00,0xff,0xff,0x00,0x3e,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x26,0x00,0xd9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x91,0xff,0x26, -0x00,0x0a,0xb3,0x01,0x06,0x06,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x27,0x00,0xd9,0x01,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xb8,0xff,0x26,0x00,0x0a,0xb3,0x01,0x07,0x07,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x43, -0xed,0xc1,0x00,0x27,0x00,0x8e,0x00,0xbd,0xff,0xc1,0x00,0x07,0x00,0x43,0x01,0xf9,0xff,0xc1,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x8e,0xb8,0xc1,0x00,0x27,0x00,0x43,0x00,0xf3,0xff,0xc1,0x00,0x07,0x00,0x8e,0x01,0xc4,0xff,0xc1,0xff,0xff,0x00,0x66,0xfd,0xfe,0x01,0xa8,0x00,0x2c,0x00,0x07,0x06,0x79, -0x00,0x00,0xfb,0x64,0x00,0x01,0x00,0x77,0x04,0x09,0x02,0x30,0x06,0x83,0x00,0x06,0x00,0x0d,0xb3,0x00,0x01,0x03,0x00,0x00,0x2f,0xce,0x01,0x2f,0xcd,0x31,0x30,0x01,0x25,0x35,0x25,0x15,0x05,0x05,0x02,0x30,0xfe,0x47,0x01,0xb9,0xfe,0xb6,0x01,0x4a,0x04,0x09,0xdd,0xc0,0xdd,0x7c,0xc1,0xc1,0x00,0x02,0x00,0xdb,0xfe,0x05,0x04,0x57, -0x00,0x1b,0x00,0x06,0x00,0x0d,0x00,0x2c,0x40,0x17,0x07,0x0a,0x05,0x40,0x06,0x80,0x0a,0x01,0x0a,0x80,0x30,0x09,0x40,0x09,0x02,0x09,0x09,0x03,0xc0,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x1a,0xce,0x33,0x2f,0x5d,0x1a,0xcd,0x5d,0x01,0x2f,0x1a,0xcd,0x2f,0xcc,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0x01,0x03,0x23,0x03,0x33, -0x17,0x37,0xdb,0xc8,0xc8,0x01,0x37,0xfe,0xc9,0x03,0x7c,0xab,0xc0,0xab,0x7c,0x8f,0x8f,0xfe,0x81,0x8f,0x8f,0x7c,0xab,0xc0,0xab,0x01,0x94,0xfe,0xc9,0x01,0x37,0xc8,0xc8,0x00,0x00,0x04,0x00,0x35,0xff,0xf5,0x05,0xae,0x05,0x9a,0x00,0x07,0x00,0x0a,0x00,0x40,0x00,0x44,0x00,0x8e,0x40,0x0f,0x08,0x02,0x01,0x09,0x01,0x0a,0x03,0x04, -0x09,0x04,0x2c,0x13,0x3b,0x25,0x27,0xb8,0x01,0x0e,0x40,0x0c,0x0f,0x22,0x3f,0x22,0x5f,0x22,0x6f,0x22,0x04,0x22,0x0b,0x10,0xb8,0x01,0x0e,0xb3,0x3b,0x02,0x08,0x03,0xb8,0x01,0x0e,0xb7,0x0a,0x0a,0x06,0x05,0x43,0x44,0x09,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0a,0xb3,0x41,0x43,0x0b,0x2c,0xb8,0x01,0x0c,0xb2, -0x1d,0x25,0x36,0xb8,0x01,0x0c,0x40,0x09,0x13,0x13,0x46,0x0a,0x08,0x05,0x00,0x00,0x05,0x2f,0x33,0x2f,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x32,0xd4,0xed,0x33,0x2f,0x2f,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x32,0x2f,0xed,0x32,0x2f,0x5d,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, -0x10,0x87,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x03,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x01,0x23,0x01,0x02,0xd3,0x83, -0x49,0xfe,0xf7,0x46,0x83,0x01,0x17,0x6f,0x23,0x5d,0x5a,0x02,0xbe,0x17,0x36,0x37,0x34,0x15,0x3b,0x46,0x17,0x29,0x37,0x20,0x26,0x42,0x32,0x1c,0x2d,0x49,0x5d,0x30,0x6a,0x3e,0x59,0x57,0x18,0x2e,0x24,0x16,0x13,0x24,0x34,0x20,0x24,0x46,0x37,0x21,0x29,0x46,0x5e,0x35,0x1a,0x38,0x35,0x2f,0x11,0x01,0x4d,0xfc,0xa6,0x90,0x03,0x5b, -0x02,0xc0,0xc2,0xc2,0x02,0xd9,0xfe,0x59,0x01,0x01,0xfe,0xff,0xfc,0xc8,0x14,0x1f,0x16,0x0c,0x2d,0x2b,0x17,0x23,0x1f,0x1d,0x10,0x14,0x27,0x32,0x3f,0x2b,0x35,0x4c,0x32,0x18,0x20,0x8b,0x3b,0x09,0x14,0x20,0x17,0x15,0x21,0x1d,0x1c,0x10,0x13,0x2b,0x35,0x40,0x29,0x38,0x4f,0x33,0x17,0x07,0x0d,0x12,0x0b,0x05,0x74,0xfa,0x66,0x05, -0x9a,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x03,0x0c,0x04,0x01,0x00,0x09,0x00,0x2d,0x40,0x16,0x07,0x84,0x06,0x02,0x06,0x03,0x06,0x03,0x06,0x0b,0x00,0x02,0x95,0x05,0x05,0x06,0x01,0x95,0x08,0x15,0x06,0x0f,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x37,0x21,0x11, -0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x48,0x02,0x21,0xfe,0x34,0x01,0xcc,0xa3,0xfd,0x3c,0x8a,0x01,0x5d,0x8c,0x01,0x8e,0xfb,0xff,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x15,0x00,0x86,0xb9,0x00,0x15,0xff,0xf0,0xb3,0x10,0x06, -0x4d,0x15,0xb8,0xff,0xf0,0xb4,0x0b,0x0d,0x06,0x4c,0x15,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x15,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x15,0xb8,0xff,0xc0,0x40,0x32,0x0a,0x1f,0x48,0x15,0x15,0x17,0x01,0x0e,0x11,0x11,0x10,0x0c,0x14,0x7e,0x01,0x07,0x03,0x03,0x09,0x05,0x01,0x13,0x02,0x91,0x05,0x10,0x05,0x0f,0x06,0x91,0x09,0x0c, -0x09,0x2f,0x09,0x6f,0x09,0x7f,0x09,0x03,0x05,0x09,0x05,0x09,0x0a,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x21,0x21, -0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x03,0xa4,0xfd,0x18,0xa0,0xa0,0xa0,0xa0,0xa8,0x01,0x2e,0xfe,0xd2,0x01,0x2e,0xfe,0xd2,0x02,0x40,0x01,0xda,0x98,0x9e,0x98,0x01,0xf2,0xfe,0x0e,0x98,0x9e,0x98,0xfe,0xbe,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x36,0x05,0xec, -0x00,0x13,0x00,0x51,0x40,0x2d,0x08,0x03,0x03,0x01,0x0e,0x12,0x12,0x00,0x84,0x09,0x05,0x01,0x0f,0x07,0x96,0x08,0x0c,0x08,0x13,0x03,0x96,0x04,0x10,0x04,0x0f,0x08,0x1f,0x08,0x3f,0x08,0x03,0x6f,0x04,0x8f,0x04,0x02,0x08,0x04,0x08,0x04,0x01,0x0a,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10, -0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x21,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x01,0x77,0xa4,0xbf,0xbf,0xbf,0xbf,0xa4,0xbf,0xbf,0xbf,0xbf,0x01,0xe1,0x86,0x92,0x86,0x02,0x6d,0xfd,0x93,0x86,0x92, -0x86,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x03,0xf9,0x05,0x9a,0x00,0x26,0x00,0x2f,0x55,0x00,0x00,0x07,0x00,0xd8,0x00,0x04,0xfd,0x66,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x51,0x40,0x29,0x12,0x12,0x14,0x0b,0x7d,0x18,0x18,0x1c,0x02,0x10,0x14,0x14,0x00,0x01,0x7e,0x02,0x06,0x02,0x04,0x04, -0x02,0x00,0x91,0x14,0x13,0x03,0x91,0x06,0x10,0x06,0x14,0x06,0x14,0x06,0x02,0x0f,0x91,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23, -0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x15,0x21,0x15,0x21,0x15,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa0,0xa0,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd,0x01,0x24,0xfe,0xdc,0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x03,0x8a,0x98,0x01,0x78,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xe0,0x98,0xd4,0x9f, -0x91,0x01,0x1c,0x00,0xff,0xff,0x00,0xbc,0xfe,0x96,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x0a,0xbb,0x01,0xa2,0x00,0x00,0x00,0x09,0xb3,0x02,0x29,0x29,0x09,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xb5,0x03,0x95,0x05,0x3d,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x03,0xff,0xa3, -0x00,0x0a,0xb4,0x02,0x4f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xb5,0xff,0x12,0x02,0xd7,0x05,0x9a,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x04,0x96,0x01,0x45,0x00,0x00,0x00,0x0a,0xb4,0x01,0x4f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x02,0x06,0x02,0xc1,0x00,0x00, -0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x92,0x05,0xec,0x00,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x0a,0xbe,0x02,0x45,0x00,0x00,0x00,0x09,0xb3,0x01,0x12,0x12,0x00,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x04,0xdd,0x05,0x9a,0x00,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x7d,0x00,0x00,0xff,0xff,0x00,0xa6, -0xfe,0x8a,0x04,0x0c,0x05,0xec,0x00,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xbf,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x80,0x04,0xb6,0x05,0x9a,0x00,0x26,0x00,0x3d,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x56,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x8b,0x03,0xbd,0x04,0x00,0x00,0x26,0x00,0x5d,0x00,0x00,0x00,0x07,0x0a,0xbe, -0x01,0x70,0x00,0x01,0x00,0x02,0x00,0x4b,0x00,0x00,0x04,0x3a,0x04,0x23,0x00,0x21,0x00,0x2d,0x00,0x5c,0x40,0x2e,0x0a,0xef,0x1c,0x1f,0x1b,0x00,0x1b,0x0f,0x2b,0x28,0x1a,0x13,0x13,0x19,0x22,0x22,0x00,0x18,0x19,0x19,0x2f,0x28,0xef,0x00,0x1e,0x1e,0x00,0x1f,0x2b,0x1e,0x25,0x1e,0x1c,0x0f,0x05,0x1d,0x1d,0x13,0x1b,0x15,0x18,0x0f, -0x25,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x13,0x16,0x16, -0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x07,0x27,0x37,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x95,0x26,0x41,0x53,0x2d,0x2c,0x52,0x3e,0x25,0x1d,0x37,0x50,0x32,0x9f,0x14,0x18,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0x9a,0xfe,0xf9,0x7a,0x3c,0x7b,0x15,0x1c,0x01,0x31,0x26, -0x24,0x1e,0x31,0x0f,0x10,0x3f,0x3b,0x03,0x3f,0x3c,0x56,0x37,0x1b,0x1a,0x33,0x4d,0x32,0x31,0x4f,0x43,0x3a,0x1d,0xfe,0xd2,0x26,0x42,0x1e,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0xf6,0x41,0x7a,0x3e,0x31,0x68,0x43,0x24,0x2f,0x2f,0x35,0x24,0x3f,0x23,0x23,0x46,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07, -0x00,0x22,0x40,0x10,0x07,0x03,0x7e,0x04,0x01,0x01,0x04,0x02,0x91,0x07,0x07,0x04,0x05,0x03,0x04,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6, -0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x22,0x40,0x10,0x07,0x03,0x84,0x04,0x00,0x00,0x04,0x02,0x95,0x07,0x07,0x04,0x05,0x0f,0x04,0x15,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c,0x8b,0xfe,0x2f,0x04, -0x00,0xfe,0x5c,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x38,0x04,0x18,0x00,0x15,0x00,0x1f,0x00,0x35,0xb9,0x00,0x1f,0x01,0x2e,0x40,0x18,0x0e,0x07,0x0e,0x07,0x04,0x13,0x83,0x1a,0x1a,0x21,0x09,0x83,0x04,0x1d,0x95,0x10,0x10,0x07,0x0f,0x16,0x0d,0x95,0x01,0x16,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f, -0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0xd2,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98,0xc2, -0x93,0x67,0x82,0x18,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x00,0x02,0x00,0xaf,0x03,0xf9,0x02,0x48,0x05,0xf5,0x00,0x03,0x00,0x0f,0x00,0x22,0xb3,0x0d,0xc0,0x07,0x01,0xb8,0x01,0x32,0x40,0x09,0x02,0x0a,0xc1,0x04,0x04,0x02, -0x03,0x03,0x02,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x48,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x05,0xf5,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x00,0x02, -0x00,0xaf,0x03,0xfd,0x02,0xa0,0x05,0xee,0x00,0x13,0x00,0x17,0x00,0x28,0x40,0x14,0x14,0x14,0x16,0x16,0x0c,0xc0,0x02,0x07,0xc1,0x0f,0x11,0x1f,0x11,0x02,0x11,0x11,0x15,0x17,0x17,0x15,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x2f,0x33,0x2f,0x31,0x30,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x01,0x27,0x01,0xcc,0x1d,0x0f,0x19,0x24,0x15,0x15,0x24,0x1b,0x10,0x11,0x1b,0x25,0x13,0x12,0x24,0x01,0xc6,0xfe,0x99,0x4d,0x01,0x67,0x05,0x47,0x1d,0x29,0x13,0x24,0x1a,0x10,0x11,0x1c,0x23,0x13,0x14,0x23,0x1a,0x10,0x0f,0x2c,0xfe,0x98,0x4d,0x01,0x68,0x00,0x00,0x02,0x00,0xaf,0x04,0x2b, -0x02,0xab,0x05,0xc4,0x00,0x03,0x00,0x0f,0x00,0x27,0x40,0x14,0x0a,0xc0,0x04,0x04,0x01,0x00,0x00,0x01,0x07,0xc1,0x0d,0x40,0x09,0x0e,0x48,0x0d,0x0d,0x02,0xe7,0x01,0x00,0x2f,0xed,0x33,0x2f,0x2b,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, -0x26,0x02,0xab,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x04,0x2b,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x00,0x01,0x00,0x75,0x04,0xfe,0x03,0x69,0x06,0x58,0x00,0x05,0x00,0x18,0x40,0x0a,0x04,0xea,0x01,0x01,0x02,0x05,0x05,0x03,0xbe,0x02,0x00,0x2f,0xed,0x33,0x2f,0x01,0x2f,0x33,0x2f,0xed, -0x31,0x30,0x01,0x11,0x21,0x35,0x21,0x35,0x03,0x69,0xfd,0x0c,0x02,0x5f,0x06,0x58,0xfe,0xa6,0x95,0xc5,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x25,0x40,0x11,0x09,0xea,0x00,0x00,0x04,0x07,0x07,0x03,0xea,0x04,0x08,0x02,0xbe,0x05,0x05,0x00,0x04,0x00,0x2f,0x33,0x33,0x2f,0xed,0x32,0x01,0x2f,0xed,0x33, -0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x02,0x23,0xfe,0xe7,0x95,0x03,0xdf,0xfe,0x64,0x04,0x7d,0x01,0x46,0xfe,0xb9,0x01,0xdc,0x95,0xfe,0xba,0x00,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x27,0x40,0x12,0x00,0xea,0x09,0x09,0x05,0x02,0x02,0x06,0xea,0x05, -0x01,0x07,0xbe,0x04,0x09,0x05,0x05,0x04,0x00,0x2f,0x33,0x2f,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x11,0x02,0xb8,0x01,0x9c,0xfc,0x21,0x95,0x01,0x19,0x06,0x57,0xfe,0xba,0x95,0x01,0xdc,0xfe,0xb9,0x01,0x46,0x00,0x00,0x01,0x00,0x00,0xfd,0xff, -0x03,0x57,0x02,0x5e,0x00,0x23,0x00,0x34,0xb1,0x05,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x16,0x1f,0x05,0x02,0x2f,0x1b,0x01,0x1b,0x11,0xb8,0x04,0xfb,0xb6,0x1f,0x0b,0x2f,0x0b,0x02,0x0b,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x22, -0x26,0x27,0x07,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x03,0x57,0x16,0x3f,0x4a,0x19,0x05,0x44,0x78,0xa5,0x61,0x33,0x6c,0x39,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1d,0x2c,0x0e,0x06,0x1c,0x30,0x49,0x99,0xa7,0x24,0x21,0x01, -0x8c,0xd5,0x8e,0x48,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x4b,0xa0,0x51,0x23,0x34,0x22,0x10,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00, -0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0xb9,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, -0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65, -0x00,0x0a,0xb4,0x01,0x2f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a, -0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xbc,0x02,0x26,0x0b,0x0c, -0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7,0x02,0x06,0x08,0xf3,0x00,0x00,0x00,0x03,0x00,0x79,0xfe,0x1e,0x06,0xf3,0x06,0x02,0x00,0x13,0x00,0x37,0x00,0x3b,0x00,0x1f,0x40,0x0e,0x28,0x23, -0x37,0x0a,0x00,0x23,0x00,0x23,0x00,0x38,0x3a,0x00,0x38,0x1b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xd6,0xcd,0x11,0x33,0x31,0x30,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x26,0x26,0x35,0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x1e,0x02,0x15, -0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x13,0x09,0x02,0x03,0x91,0x16,0x26,0x1c,0x10,0x11,0x1d,0x25,0x15,0x16,0x26,0x1d,0x10,0x12,0x1d,0x26,0x5b,0x08,0x13,0x2b,0x40,0x4b,0x40,0x2b,0x34,0x57,0x72,0x3e,0x87,0x7c,0x67,0x89,0x24,0x40,0x30,0x1c,0x2a,0x3e,0x49,0x3e,0x2a,0x0c,0x0b,0x78,0xfc,0xc3,0x03,0x3d,0x03,0x3d,0x89,0x12,0x1d, -0x25,0x14,0x15,0x26,0x1d,0x11,0x12,0x1d,0x26,0x14,0x16,0x26,0x1c,0x10,0x01,0x63,0x15,0x3d,0x25,0x2d,0x49,0x45,0x44,0x4f,0x5f,0x3d,0x40,0x60,0x40,0x21,0x54,0x9e,0x6d,0x12,0x24,0x35,0x22,0x2e,0x4d,0x46,0x43,0x4a,0x54,0x34,0x22,0x43,0x15,0xfd,0x44,0x03,0xf2,0x03,0xf2,0xfc,0x0e,0x00,0x00,0x01,0x00,0x3f,0x04,0xc1,0x03,0x26, -0x05,0xba,0x00,0x17,0x00,0x1e,0x40,0x0e,0x0c,0x00,0x0d,0x07,0x96,0x12,0x12,0x17,0x96,0x0c,0x0f,0x02,0x01,0x02,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x01,0x2f,0xc4,0xcd,0x31,0x30,0x01,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x03,0x26,0x29,0x3f,0x88,0x81,0x71,0x29, -0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x38,0x7e,0x7f,0x7d,0x37,0x05,0x40,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0x00,0xff,0xff,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x02,0x06,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x54,0x00,0x00, -0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x9d,0x05,0xb1,0x00,0x36,0x00,0x57,0x40,0x2e,0x29,0x7d,0x16,0x2f,0x7d,0x0b,0x2c,0x11,0x16,0x01,0x11,0x16,0x0b,0x0b,0x16,0x11, -0x01,0x04,0x38,0x1d,0x7e,0x1e,0x2c,0x10,0x11,0x11,0x10,0x92,0x59,0x11,0x11,0x06,0x24,0x34,0x06,0x91,0x59,0x34,0x13,0x24,0x19,0x91,0x59,0x24,0x04,0x1e,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10, -0xe1,0x10,0xe1,0x31,0x30,0x25,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0xf6,0x17,0x3a,0x3e,0x40,0x1d,0x3c,0x62,0x46,0x27,0x37,0x71, -0xab,0x74,0x4c,0x7a,0x56,0x2f,0x84,0x77,0x8e,0x90,0xa8,0x4f,0x83,0xa8,0x59,0x5e,0x99,0x6d,0x3b,0x9c,0x98,0x01,0xaf,0x43,0x74,0x9e,0x5c,0x56,0x72,0x0d,0xad,0x0c,0x15,0x11,0x09,0x21,0x40,0x61,0x40,0x41,0x6e,0x54,0x34,0x07,0x7a,0x09,0x2b,0x45,0x61,0x3f,0x66,0x63,0x8d,0x9d,0xfc,0x0f,0x04,0x09,0x79,0xa2,0x63,0x2a,0x2f,0x57, -0x78,0x4a,0x86,0xae,0x29,0x05,0x47,0xfe,0xb3,0x5b,0x93,0x66,0x37,0x16,0xff,0xff,0xfc,0x8c,0x04,0xa7,0xff,0x4c,0x07,0x68,0x00,0x07,0x00,0x0d,0xfc,0x40,0x01,0xce,0xff,0xff,0x00,0x4a,0xff,0xec,0x06,0xd9,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x4b,0xfd,0xb9, -0x00,0x07,0xb2,0x02,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xd7,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x49,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x43,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x00,0x03,0xa4,0x00,0x09, -0x00,0x1b,0x40,0x0c,0x09,0x08,0x01,0x07,0x03,0x04,0x02,0x05,0x04,0x00,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x11,0x17,0x39,0x2f,0x31,0x30,0x01,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x06,0x00,0xfb,0x5a,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0xa8,0x02,0x12,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x00,0x01, -0x00,0x96,0xff,0xf4,0x03,0x31,0x05,0x5e,0x00,0x09,0x00,0x10,0xb6,0x08,0x01,0x07,0x03,0x03,0x04,0x00,0x00,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x05,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27,0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x0c,0x04,0xa4,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfb,0x5a,0x00,0x01,0x00,0xe7, -0x01,0x08,0x06,0x52,0x03,0xa4,0x00,0x09,0x00,0x17,0x40,0x0a,0x01,0x02,0x08,0x03,0x07,0x05,0x00,0x09,0xbe,0x00,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x13,0x21,0x27,0x35,0x01,0x15,0x01,0x35,0x37,0x21,0xe7,0x04,0xa6,0x7b,0x01,0x40,0xfe,0xc0,0x79,0xfb,0x5c,0x02,0x98,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0x94, -0x76,0x00,0x00,0x01,0x00,0x96,0xff,0xf6,0x03,0x31,0x05,0x60,0x00,0x09,0x00,0x10,0xb6,0x09,0x01,0x02,0x08,0x03,0x06,0x05,0x00,0x2f,0xcd,0x17,0x39,0x2f,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79,0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0x60,0xfb,0x58,0x7d,0xfe,0xc1,0x01,0x3f,0x7b,0x04, -0xa6,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x50,0x03,0xa4,0x00,0x0f,0x00,0x1f,0x40,0x0f,0x01,0x0a,0x0b,0x03,0x00,0x0e,0x09,0x02,0x08,0x03,0x03,0x06,0x02,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0xcd,0x17,0x39,0x2f,0xcd,0x17,0x39,0x31,0x30,0x01,0x37,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x27,0x35,0x01,0x15,0x01,0x05, -0x10,0x79,0xfb,0xd1,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0x33,0x7b,0x01,0x40,0xfe,0xc0,0x01,0x9c,0x76,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0xff,0xff,0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x02,0x06,0x00,0xa9,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x00,0x04,0x92,0x03,0xac,0x00,0x05, -0x00,0x13,0xb7,0x02,0xbd,0x05,0x03,0x02,0xbe,0x05,0x00,0x00,0x2f,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x15,0x21,0xe6,0x84,0x03,0x28,0xfc,0x54,0x03,0xac,0xfc,0xd7,0x83,0x00,0x01,0x00,0xe6,0x00,0x6a,0x04,0xb7,0x04,0x4f,0x00,0x19,0x00,0x1e,0x40,0x0d,0x13,0x14,0x14,0x1b,0x06,0x07,0x00,0x0d,0x14,0x10, -0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x02,0xc8,0x48,0x7f,0x5f,0x38,0x84,0x55,0x8a,0xb0,0x5a,0x5d,0xb0,0x88,0x53,0x84,0x3c,0x64,0x83,0x03,0xd1,0x31,0x65,0x9a, -0x69,0xfe,0x32,0x01,0xcf,0x8a,0xc9,0x83,0x40,0x40,0x83,0xc9,0x8a,0xfe,0x31,0x01,0xce,0x66,0x99,0x67,0x33,0x00,0x00,0x03,0x00,0xe6,0x00,0x70,0x04,0xac,0x04,0x3a,0x00,0x13,0x00,0x27,0x00,0x3b,0x00,0x2e,0x40,0x17,0x37,0xaf,0x2d,0x23,0xaf,0x19,0x2d,0x19,0x2d,0x19,0x3d,0x0f,0xaf,0x05,0x28,0xb0,0x32,0x10,0x1e,0x0a,0xb0,0x14, -0x00,0x00,0x2f,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x55,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x02,0xcf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xfe,0x76,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x70,0x12,0x1e,0x29,0x17,0x17,0x29, -0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x02,0xe9,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0xe6,0x00,0x6a,0x05,0x38,0x04,0x3b,0x00,0x1b,0x00,0x2e,0x40,0x16,0x15,0x0f,0x1a,0x13, -0x16,0xea,0x08,0x05,0x0f,0xbe,0x0e,0x0e,0x07,0x1a,0xbe,0x1b,0x1b,0x16,0x06,0xbe,0x13,0x07,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x31,0x30,0x25,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x21,0x15,0x21,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x21, -0x15,0x03,0xa8,0x6a,0xb3,0x87,0x53,0x0a,0xc1,0xc1,0x0c,0x5b,0x8a,0xb0,0x60,0x01,0x90,0xfe,0x80,0xad,0xc1,0x11,0x02,0xff,0xfd,0x01,0x11,0xcb,0xc1,0x01,0x62,0x6a,0x37,0x6b,0x9f,0x69,0x84,0x68,0x9d,0x69,0x35,0x84,0x8d,0x92,0x84,0x93,0x93,0x84,0x00,0x01,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x03, -0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x00,0x00,0x07,0x5b,0x04,0xac,0x00,0x03,0x00,0x0d,0xb3,0x03,0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x06,0xb6,0xf9,0x4a,0x04,0xac,0xfb,0x54, -0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x00,0x02,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x21,0x03,0x72,0x03,0x22,0xf9,0xbc,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f,0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x01,0x00,0x2f,0x2f,0x01,0x2f, -0x2f,0x31,0x30,0x01,0x01,0x11,0x06,0x3f,0xfa,0x66,0x02,0xcd,0xfe,0x94,0x02,0xd8,0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x01,0x50,0x06,0x44,0xfc,0xde,0x05,0x9a,0xfa,0x66,0x00,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f, -0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x01,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x11,0x01,0x06,0x3f,0xfa,0x66,0x04,0x39,0xfd,0x28,0x01,0x6c,0x00,0x02,0x00,0x8c,0xff,0xe7,0x06,0x58,0x05,0xb2,0x00,0x1b,0x00,0x33,0x00,0x15,0xb7,0x0e,0x28,0x1c,0x00,0x21,0x15,0x2f,0x07,0x00,0x2f,0xcd,0x2f,0xcd,0x01,0x2f, -0xcd,0x2f,0xcd,0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x8c,0x35,0x60,0x87,0xa5,0xbe,0x66,0x66,0xbe,0xa5,0x88,0x61,0x35,0x35,0x61,0x88,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x7c,0x61, -0xa7,0xe1,0x80,0x55,0x9f,0x89,0x71,0x51,0x2c,0x2c,0x51,0x71,0x89,0x9f,0x55,0x80,0xe1,0xa7,0x61,0x02,0xcc,0x66,0xbe,0xa5,0x87,0x61,0x35,0x35,0x61,0x87,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x35,0x60,0x87,0xa5,0xbe,0x66,0x80,0xe1,0xa7,0x61,0x2c,0x50,0x70,0x8a,0x9e,0x55,0x55,0x9f,0x89,0x71,0x50,0x2c,0x61,0xa8,0xe1, -0x00,0x02,0x02,0x0d,0x00,0x00,0x04,0xd7,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1a,0x40,0x0a,0x0e,0x02,0x04,0x03,0x13,0x09,0x13,0x09,0x03,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xcd,0xdd,0xcd,0x31,0x30,0x01,0x21,0x11,0x21,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x02,0x0d, -0x02,0xca,0xfd,0x36,0x64,0x28,0x46,0x5d,0x36,0x35,0x5d,0x46,0x29,0x29,0x46,0x5d,0x35,0x36,0x5d,0x46,0x28,0x05,0x9a,0xfa,0x66,0x02,0xcd,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x35,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x00,0x03,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x1d,0x00,0x31,0x00,0x1f,0x40,0x0d,0x1e,0x04, -0x03,0x28,0x12,0x02,0x2d,0x0b,0x03,0x22,0x23,0x17,0x00,0x00,0x2f,0xdd,0xce,0x3f,0xdd,0xce,0x01,0x2f,0xdd,0xce,0x2f,0xdd,0xce,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x14,0x1e,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xa5, -0x05,0x9a,0xfa,0x66,0x64,0x2c,0x50,0x70,0x89,0x9d,0x55,0x55,0x9f,0x89,0x71,0x51,0x2c,0x61,0xa8,0xe2,0x80,0x55,0x9d,0x89,0x70,0x50,0x2c,0x67,0x51,0x8b,0xba,0x6a,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xba,0x8b,0x51,0x05,0x9a,0xfa,0x66,0x02,0xcb,0x55,0x9d,0x89,0x70,0x50,0x2c,0x2c,0x50,0x70,0x89,0x9d,0x55,0x80,0xe2, -0xa8,0x61,0x2c,0x51,0x71,0x89,0x9f,0x55,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xbb,0x8b,0x50,0x50,0x8b,0xbb,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0xb2,0x00,0x2b,0x00,0x1e,0x40,0x0d,0x0f,0x1c,0x1c,0x07,0x24,0x07,0x0c,0x1f,0x1f,0x16,0x22,0x00,0x26,0x00,0x3f,0x3f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39, -0x2f,0xcd,0x31,0x30,0x01,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x1e,0x03,0x17,0x15,0x21,0x35,0x3e,0x03,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x02,0xc1,0x2c,0x7b,0x86,0x84,0x69,0x41,0x34,0x55,0x6d,0x39,0x37,0x63,0x27,0x04,0x15,0x26,0x36,0x25,0xfd,0xee,0x25,0x36,0x26,0x15,0x04,0x27,0x63, -0x37,0x39,0x6d,0x55,0x34,0x41,0x69,0x84,0x86,0x7b,0x2c,0x05,0xb2,0x34,0x6b,0x76,0x82,0x93,0xa6,0x5f,0x52,0x7e,0x55,0x2c,0x1c,0x20,0x22,0x4c,0x4c,0x4a,0x1f,0x4b,0x4b,0x1f,0x4a,0x4c,0x4c,0x22,0x20,0x1c,0x2c,0x55,0x7e,0x52,0x5f,0xa6,0x93,0x82,0x76,0x6c,0x33,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0x9a,0x00,0x38, -0x00,0x1c,0x40,0x0b,0x32,0x06,0x06,0x10,0x28,0x10,0x2d,0x0b,0x0b,0x1c,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x31,0x30,0x21,0x35,0x3e,0x03,0x35,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, -0x23,0x22,0x2e,0x02,0x27,0x14,0x1e,0x02,0x17,0x15,0x01,0xb4,0x1c,0x36,0x2a,0x1a,0x13,0x25,0x2a,0x31,0x1f,0x41,0x73,0x55,0x31,0x2d,0x53,0x73,0x45,0x10,0x2d,0x52,0x72,0x46,0x46,0x72,0x52,0x2d,0x10,0x45,0x73,0x53,0x2d,0x31,0x55,0x73,0x41,0x1f,0x31,0x2a,0x25,0x13,0x19,0x2a,0x36,0x1d,0x4b,0x17,0x46,0x5c,0x72,0x44,0x0d,0x14, -0x0f,0x08,0x2c,0x51,0x74,0x48,0x41,0x71,0x55,0x32,0x01,0x34,0x37,0x40,0x73,0x55,0x32,0x32,0x55,0x73,0x40,0x37,0x34,0x01,0x32,0x55,0x71,0x41,0x48,0x74,0x51,0x2c,0x08,0x0f,0x14,0x0d,0x44,0x72,0x5c,0x46,0x17,0x4b,0x00,0x01,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x0d,0xb3,0x05,0x14,0x19,0x0c,0x00,0x2f,0x2f, -0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b,0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0x05,0x23, -0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b,0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0x00,0x01,0x00,0xcd,0x00,0x00,0x04,0xae,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x02,0x00,0x03,0x01,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x09,0x02,0xcd,0x01,0xf0,0x01, -0xf1,0xfe,0x0f,0x02,0xcc,0x02,0xce,0xfd,0x32,0xfd,0x34,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x2c,0x05,0xb2,0x00,0x16,0x00,0x2d,0x00,0x2d,0x40,0x17,0x13,0x12,0x7e,0x10,0x28,0x28,0x2f,0x1c,0x7d,0x05,0x13,0x10,0x03,0x17,0x91,0x0f,0x0a,0x04,0x21,0x91,0x14,0x00,0x13,0x00,0x3f,0x32,0xed,0x3f,0x33,0xed,0x3f,0x2f,0x01,0x2f, -0xe1,0x12,0x39,0x2f,0x33,0xe1,0x33,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x23,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xaa,0xef,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8, -0xa8,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x99,0x18,0x6a,0xbf,0x01,0x0b,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a,0xb7,0xfa,0x66,0xd6,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36, -0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x02,0x06,0x05,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x08,0x74,0x05,0xb2,0x00,0x2c,0x00,0x54,0x40,0x2b,0x25,0x24,0x1c,0x2c,0x01,0x00,0x19,0x15,0x14,0x06,0x0a,0x09,0x10,0x24,0x2c,0x19,0x06,0x10,0x10,0x06,0x19,0x2c,0x24,0x05,0x2e,0x0c,0x0b,0x27,0x92,0x40,0x25,0x80, -0x21,0x04,0x14,0x05,0x0b,0x03,0x18,0x0f,0x01,0x0a,0x12,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01, -0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xcb,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x14,0x04,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x05,0x16,0xe1, -0x12,0x32,0x45,0x5c,0x3c,0x69,0x79,0x0b,0x9a,0x0c,0x47,0x16,0x23,0x1b,0x17,0x0b,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x35,0x55,0x03,0x54,0x46,0x68,0x44,0x22,0x79,0x79,0x63,0x16,0x29,0x3d,0x27,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x06,0x97, -0x04,0x18,0x00,0x2c,0x00,0x54,0x40,0x2b,0x0a,0x09,0x11,0x15,0x14,0x06,0x01,0x00,0x19,0x1d,0x2c,0x26,0x25,0x11,0x06,0x19,0x2c,0x25,0x25,0x2c,0x19,0x06,0x11,0x05,0x2e,0x0c,0x0b,0x29,0x95,0x40,0x26,0x80,0x22,0x10,0x14,0x05,0x0b,0x0f,0x18,0x10,0x01,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed, -0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x03,0x26,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26, -0x26,0x23,0x22,0x06,0x07,0x04,0x7d,0xaa,0xd3,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0b,0x04,0x08,0x01,0x09,0x07,0x9a,0x0d,0x26,0x38,0x4e,0x35,0x5b,0x6b,0x0b,0x96,0x04,0x23,0x1c,0x21,0x2a,0x14,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc, -0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x26,0x36,0x14,0x2e,0x1a,0x02,0x46,0x32,0x4f,0x38,0x1d,0x6d,0x6f,0x2a,0x2a,0x3f,0x46,0x00,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x09,0x00,0x00,0x04,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27, -0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x03,0x82,0x01,0x8b,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfe,0x73,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x00,0x09,0x04,0x09,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79, -0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0xd3,0xfe,0x73,0x7b,0xfe,0xc1,0x01,0x3f,0x79,0x01,0x8b,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f,0x00,0x20,0x40,0x0f,0x00,0x03,0x03,0x0d,0x07,0x02,0x50,0x0a,0x01,0x0a,0x00,0x04,0x01,0x04,0x03,0x00,0x2f,0xd4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33, -0x2f,0xcd,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x06,0x89,0xfe,0x2d,0x01,0xd3,0xfc,0xfa,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f, -0x00,0x20,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x02,0x5f,0x0a,0x01,0x0a,0x00,0x03,0x01,0x03,0x04,0x00,0x2f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31,0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x03,0x83, -0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02,0x00,0xb4,0x01,0xd5,0x01,0x92,0x04,0xdb,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x01,0x5f,0x0a,0x01,0x0a,0x00,0x00,0x01,0x00,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31, -0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x01,0xd5,0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x01,0x00,0x63,0xfe,0x3e,0x02,0x95,0xff,0x89,0x00,0x06,0x00,0x18,0x40,0x0c,0x00,0x04, -0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0xc4,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x95,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e, -0x03,0x9a,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x00,0x01,0x04,0x05,0x04,0x05,0xbe,0x06,0x01,0xbe,0x02,0x00,0x2f,0xed,0xd6,0xed,0x01,0x2f,0x2f,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x9a,0xfd,0x4e,0x02,0xb2,0xfd,0x4e,0x02,0xb2,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x01,0x00,0x94, -0x02,0xc3,0x01,0x43,0x05,0x9a,0x00,0x03,0x00,0x1c,0x40,0x0e,0x00,0x7d,0x03,0x04,0x0d,0x06,0x4d,0x03,0x03,0x05,0x04,0x01,0x00,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x03,0x23,0x03,0x01,0x43,0x1e,0x73,0x1e,0x05,0x9a,0xfd,0x29,0x02,0xd7,0x00,0xff,0xff,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a, -0x02,0x06,0x00,0x0a,0x00,0x00,0x00,0x01,0x03,0x9b,0xfe,0x80,0x04,0x36,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x03,0x9b,0x9b,0x9b,0xfe,0x80,0x00,0x00,0x01,0x02,0xd6,0xfe,0x8a,0x03,0x64,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00, -0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x02,0xd6,0x8e,0x8e,0xfe,0x8a,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2f,0xb9,0x00,0x00,0x01,0x51,0xb2,0x06,0x06,0x0c,0xb8,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xbb,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0xb2,0x15,0x15,0x19, -0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c, -0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x05,0x00,0x00,0xfd,0xff,0x02,0xdd,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x00,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x14,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x10,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31, -0x2a,0x2a,0x34,0xfe,0x67,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe2, -0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x37,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0xb7,0x06,0x1b,0x1a,0x18,0x1b,0x1b,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x1d,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xcd,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30, -0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x21,0x35,0x21,0x02,0xdd,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xce,0xfe,0x50,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce, -0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0x66,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe1,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x40,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0x40,0x0c,0x06,0x1f,0x19,0x1e,0x1c,0x1c,0x1a,0x19,0x1f,0x1f,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2, -0x09,0x09,0x21,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xdd,0xcd,0x33,0x01,0x2f,0xcd,0xdd,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x02,0xdd,0x33,0x29, -0x2a,0x33,0x31,0x2a,0x2a,0x34,0x04,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xcf,0xa5,0x66,0xa5,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0xdf,0xdf,0x66,0x00,0x00,0x01,0x00,0x00,0xff,0x04,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x1d,0xb9,0x00,0x00,0x01,0x51,0xb3, -0x06,0x06,0x0d,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x00,0xff,0x04,0x01,0xd6,0xff,0xbb,0x00,0x0b, -0x00,0x17,0x00,0x2f,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x0c,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05, -0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0xd6,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x01,0xd6,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23, -0x00,0x45,0xb9,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x1e,0x0c,0xbb,0x01,0x51,0x00,0x12,0x00,0x18,0x01,0x51,0xb3,0x1e,0x1e,0x25,0x03,0xbe,0x01,0x55,0x00,0x09,0x00,0x1b,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0xb4,0x15,0x15,0x21,0x21,0x25,0x11,0x00,0x33,0x2f,0x33,0x2f,0xed,0x10,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde, -0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x37,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x48,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3, -0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0x00,0x00,0xff,0x38,0x01,0xb0,0xff,0x9e,0x00,0x03,0x00,0x11,0xb5,0x00,0x02,0x00,0x02,0x02,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30, -0x31,0x05,0x21,0x35,0x21,0x01,0xb0,0xfe,0x50,0x01,0xb0,0xc8,0x66,0x00,0x00,0x01,0x00,0x00,0xfe,0x59,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0xb0, -0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xdf,0xdf,0x66,0x00,0x00,0x01,0xff,0xa4,0x05,0x4e,0x00,0x5d,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5d,0x33,0x29,0x2a,0x33, -0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0x77,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3d,0xbf,0x00,0x18,0x01,0x51,0x00,0x1e,0x00,0x0c,0x01,0x51,0x00,0x12,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x25,0x1b,0xbe,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0x00, -0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x25,0x11,0x00,0x33,0x2f,0xed,0xdc,0xed,0xdc,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xfd,0xde,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb0,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0xa5,0x02,0x18,0x00,0x5e,0x02,0xcf,0x00,0x0b, -0x00,0x15,0xbd,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x00,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x02,0x73,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0xcd,0xfe,0x09,0x00,0x33,0xff,0xb1, -0x00,0x03,0x00,0x11,0xb5,0x03,0x02,0x00,0x03,0x03,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x23,0x11,0x33,0x33,0x66,0x66,0xfe,0x09,0x01,0xa8,0x00,0x01,0x00,0x4b,0x04,0x38,0x02,0xe8,0x04,0xcd,0x00,0x03,0x00,0x14,0xb5,0x03,0x05,0x02,0x04,0x01,0x03,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x11,0x01,0x33,0x11,0x33, -0x30,0x31,0x01,0x21,0x37,0x21,0x02,0xd0,0xfd,0x7b,0x18,0x02,0x85,0x04,0x38,0x95,0x00,0x01,0xfe,0xd2,0x05,0x6b,0x01,0x31,0x05,0xd5,0x00,0x03,0x00,0x0d,0xb3,0x03,0x01,0x03,0x01,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x01,0x21,0x35,0x21,0x01,0x31,0xfd,0xa1,0x02,0x5f,0x05,0x6b,0x6a,0x00,0x01,0x00,0x94,0xff,0x9d,0x01,0x09, -0x05,0x30,0x00,0x03,0x00,0x15,0xbd,0x00,0x03,0x01,0x50,0x00,0x02,0x00,0x03,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x30,0x31,0x05,0x23,0x11,0x33,0x01,0x09,0x75,0x75,0x63,0x05,0x93,0x00,0x01,0x02,0x00,0x05,0x4e,0x02,0xb9,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00, -0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x02,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xfd,0x3c,0x05,0x4e,0xfd,0xf5,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00, -0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xfd,0xf5,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12, -0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x00,0x0b,0x00,0x17,0xbe,0x00, -0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0x05,0xdb,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x00,0x0b, -0x00,0x19,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x03,0x01,0x57,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0xfe,0xf1,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0x00,0xa5,0x00,0x00, -0x04,0x9a,0x04,0xd4,0x00,0x28,0x00,0x51,0x40,0x0b,0x1e,0x28,0x17,0x00,0x15,0x08,0x16,0x01,0x01,0x00,0x23,0xb8,0x01,0x50,0xb7,0x20,0x20,0x0f,0x2a,0x17,0x16,0x16,0x0e,0xb8,0x01,0x50,0x40,0x0a,0x0f,0x15,0x08,0x1e,0x28,0x04,0x16,0x17,0x17,0x21,0xbb,0x01,0x4a,0x00,0x0f,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0x2f,0x33, -0x17,0x39,0x01,0x2f,0xed,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0xc4,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x2e,0x05,0x27,0x0e,0x03,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x37,0x03,0x37,0x1e,0x03,0x17,0x16,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x04,0x9a,0xc5,0x2f,0x51,0x4b,0x4a,0x54, -0x61,0x3c,0x28,0x32,0x1c,0x09,0xa9,0x17,0x34,0x52,0x3c,0xdb,0x8e,0x2d,0x5a,0x54,0x4e,0x22,0x4f,0x46,0xae,0xaa,0x21,0x41,0x61,0x41,0x45,0x75,0x6e,0x6c,0x77,0x88,0x53,0x27,0x4c,0x51,0x5d,0x38,0xfe,0x73,0x01,0x98,0x4c,0x77,0x68,0x5f,0x33,0x01,0x38,0x47,0x3c,0x79,0x74,0x6d,0x30,0x70,0x66,0x63,0xd5,0x01,0x5d,0xfe,0xc1,0x52, -0x85,0x6d,0x5a,0x29,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x00,0x24,0x00,0x38,0xb2,0x07,0x07,0x00,0xb8,0x01,0x50,0xb7,0x06,0x12,0x12,0x26,0x09,0x19,0x19,0x16,0x41,0x09,0x01,0x54,0x00,0x1a,0x00,0x1f,0x01,0x4b,0x00,0x06,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f, -0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x21,0x07,0x21,0x37,0x21,0x32,0x3e,0x04,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xee,0x17,0x28,0x38,0x20,0x34,0x01,0x19,0x16,0xfc,0x2e,0x18,0x01,0xa6,0x44,0x62,0x44,0x29,0x17,0x07,0xc0,0xb0,0x69, -0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0x02,0x66,0x54,0x7b,0x5d,0x47,0x1f,0x32,0xa2,0xa2,0x33,0x52,0x65,0x64,0x59,0x1b,0x86,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x01,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x00,0x25,0x00,0x43,0xb3,0x17,0x02,0x02,0x00,0xb8,0x01,0x50, -0xb6,0x01,0x01,0x0b,0x27,0x1e,0x1e,0x0a,0xbb,0x01,0x50,0x00,0x0b,0x00,0x02,0x01,0x56,0xb3,0x17,0x17,0x00,0x1e,0xbd,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x06,0x06, -0x07,0x0e,0x03,0x07,0x23,0x36,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x03,0x2e,0x03,0x23,0x23,0x37,0x33,0x32,0x1e,0x02,0x17,0x03,0x17,0xa1,0x28,0x4d,0x7b,0x28,0x19,0x29,0x20,0x18,0x0a,0xa9,0x13,0x19,0x0b,0x18,0x1c,0x1f,0x10,0x24,0x54,0x61,0x6b,0x3a,0x1b,0x06,0x2a,0x44,0x5b,0x38,0xc5,0x16,0xaa,0x62,0x99,0x6d,0x3f,0x07,0x01, -0xe0,0x14,0x4e,0x2f,0x1d,0x4f,0x59,0x5e,0x2c,0x4d,0x47,0x1e,0x41,0x3f,0x38,0x15,0x2f,0x45,0x35,0x29,0x13,0x01,0x0e,0x36,0x4c,0x31,0x17,0x91,0x24,0x51,0x84,0x60,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x00,0x14,0x00,0x2d,0xb1,0x04,0x14,0xb8,0x01,0x50,0x40,0x09,0x00,0x0c,0x00,0x0c,0x16,0x0a,0x0e,0x04,0x0a,0xbc, -0x01,0x54,0x00,0x0b,0x01,0x4a,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0xed,0x32,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x11,0x34,0x36,0x37,0x22,0x0e,0x02,0x23,0x21,0x37,0x21,0x07,0x23,0x22,0x0e,0x02,0x15,0x11,0x02,0x2e,0x42,0x39,0x0c,0x26,0x27,0x23,0x0a,0xfd,0xfd,0x18,0x03,0x73,0x19,0x37,0x28,0x33, -0x1e,0x0b,0x03,0x32,0x5b,0x81,0x30,0x02,0x02,0x02,0x95,0x95,0x29,0x3e,0x46,0x1e,0xfc,0x93,0x00,0x02,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x00,0x17,0x00,0x1b,0x00,0x38,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x1d,0x18,0xb8,0x01,0x50,0xb5,0x19,0x0c,0x0c,0x19,0x0c,0x07,0xb8,0x01,0x54,0xb2,0x1b,0x0d,0x12,0xbb,0x01,0x4b, -0x00,0x19,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xc4,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x01,0x23,0x11,0x37,0x04,0xc0,0xab,0x34,0x61,0x8d,0x59,0x3a,0x86,0x83,0x75,0x2a,0x13,0x30,0x73, -0x7f,0x88,0x46,0x6e,0xbc,0x8c,0x4f,0xfc,0xae,0xa9,0xa9,0x02,0xea,0x65,0x88,0x52,0x22,0x0c,0x13,0x17,0x0a,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xfd,0x0d,0x02,0xc9,0x51,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x02,0x01, -0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x04,0xcd,0x00,0x00,0x01,0x00,0x31,0x00,0x00,0x02,0x5f,0x04,0xcd,0x00,0x20,0x00,0x2a,0xb4,0x18,0x0c,0x00,0x00,0x06,0xb8,0x01,0x50,0xb4,0x1e,0x0d,0x13,0x00,0x1e,0xbc,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0c,0x01,0x4d,0x00,0x3f,0x3f,0xed, -0x32,0x01,0x2f,0x33,0xc6,0xed,0x32,0x2f,0x32,0x32,0x31,0x30,0x01,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x13,0x23,0x03,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x22,0x0e,0x02,0x23,0x23,0x37,0x21,0x02,0x5f,0x31,0x31,0x49,0x31,0x18,0x06,0x07,0x09,0x03,0x6f,0xb1,0x6f,0x02,0x07,0x06,0x04,0x09,0x1e,0x3b,0x31,0x18,0x3b,0x39, -0x33,0x10,0x53,0x13,0x02,0x1b,0x04,0x38,0x1d,0x35,0x4a,0x2c,0x12,0x35,0x39,0x36,0x13,0xfd,0x59,0x02,0xb4,0x0e,0x29,0x31,0x34,0x17,0x1a,0x3c,0x3a,0x34,0x12,0x02,0x01,0x02,0x95,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x04,0xba,0x04,0xde,0x00,0x17,0x00,0x30,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x19,0x0b,0xb8,0x01,0x50,0xb2, -0x0c,0x0a,0x07,0xbe,0x01,0x54,0x00,0x0d,0x00,0x12,0x01,0x4b,0x00,0x0c,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0xba,0xab,0x34,0x60,0x8a,0x57,0x53,0xa4,0x3c, -0xa9,0x30,0x7f,0x86,0x83,0x35,0x7f,0xc4,0x86,0x46,0x02,0xf8,0x63,0x82,0x4d,0x1e,0x14,0x0c,0xfb,0xd8,0x04,0xad,0x0a,0x12,0x0d,0x08,0x36,0x77,0xba,0x84,0x00,0x01,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x00,0x29,0x00,0x3e,0xb9,0x00,0x00,0x01,0x50,0xb6,0x17,0x20,0x17,0x20,0x17,0x2b,0x0d,0xb8,0x01,0x50,0xb2,0x0a,0x20,0x1d, -0x41,0x0a,0x01,0x54,0x00,0x21,0x00,0x24,0x01,0x4b,0x00,0x0b,0x01,0x4a,0x00,0x12,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34, -0x2e,0x02,0x23,0x22,0x06,0x07,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x05,0x01,0x52,0x98,0xd8,0x86,0x7c,0xc7,0x8c,0x4a,0xaa,0x22,0x54,0x90,0x6d,0x67,0x99,0x66,0x33,0x26,0x47,0x63,0x3d,0x35,0x5e,0x30,0x15,0x2c,0x5d,0x41,0x52,0x95,0x72,0x43,0x02,0x56,0x87,0xe3,0xa3,0x5c,0x52,0x9d,0xe6,0x94,0x02,0x77,0xfd,0x96,0x54,0xaa, -0x8a,0x56,0x49,0x7d,0xa5,0x5c,0x8f,0x4c,0x84,0x62,0x39,0x07,0x09,0x94,0x08,0x0b,0x47,0x86,0xc0,0x79,0x00,0x01,0x00,0xbe,0x02,0x27,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x14,0xb9,0x00,0x00,0x01,0x50,0xb2,0x01,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x27, -0x02,0xa6,0x00,0x01,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01,0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4f,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07, -0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0xfe,0x00,0x04,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x00,0x25,0x00,0x35,0xb9,0x00,0x00,0x01,0x50,0xb6, -0x11,0x11,0x27,0x08,0x1b,0x1b,0x16,0x41,0x0a,0x01,0x54,0x00,0x1c,0x00,0x21,0x01,0x4b,0x00,0x09,0x00,0x0c,0x01,0x54,0x00,0x08,0x00,0x03,0x01,0x4e,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34, -0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x03,0xeb,0xfe,0xcb,0xfe,0xc4,0x28,0x53,0x4b,0x3d,0x12,0x15,0x2f,0x81,0x46,0x77,0xae,0x72,0x37,0x33,0x6e,0xab,0x78,0x1b,0x4d,0x53,0x51,0x20,0x14,0x1d,0x4a,0x4f,0x51,0x24,0x91,0xe2,0x9a,0x51,0x02,0x5f,0xfe,0xc7,0xfe,0xc7,0x07,0x0b,0x0d,0x07,0x8d,0x0a, -0x12,0x38,0x75,0xb4,0x7d,0x76,0xb5,0x7b,0x40,0x04,0x07,0x0b,0x06,0x8f,0x08,0x0d,0x09,0x05,0x4b,0x9d,0xf1,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x00,0x2b,0x00,0x39,0xb9,0x00,0x00,0x01,0x50,0xb6,0x1d,0x0e,0x1d,0x0e,0x1d,0x2d,0x26,0x41,0x0c,0x01,0x50,0x00,0x23,0x00,0x23,0x01,0x54,0x00,0x26,0x01,0x4a,0x00, -0x24,0x01,0x4c,0x00,0x0f,0x01,0x54,0x00,0x0e,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x03,0x0e,0x03,0x07,0x0e,0x03,0x07,0x37,0x32,0x3e,0x02,0x37,0x3e,0x03,0x37,0x13,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x32,0x1e,0x02, -0x03,0xeb,0x05,0x02,0x1c,0x06,0x1a,0x2d,0x41,0x2d,0x2f,0x7e,0x85,0x7e,0x2f,0x32,0x1a,0x48,0x4f,0x4f,0x1f,0x25,0x38,0x27,0x18,0x05,0x1b,0x01,0x05,0x22,0x3f,0x5a,0x37,0xfe,0x0a,0xa9,0x01,0x6e,0x56,0x8c,0x63,0x36,0x03,0x95,0x1c,0x3e,0x13,0xfe,0xe1,0x3b,0x76,0x6c,0x60,0x25,0x27,0x29,0x13,0x03,0x01,0x8e,0x03,0x0b,0x15,0x12, -0x15,0x42,0x53,0x5f,0x31,0x01,0x1a,0x0a,0x38,0x19,0x30,0x4a,0x32,0x1a,0x02,0x68,0xfe,0x2d,0x2f,0x54,0x72,0x00,0x00,0x02,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x00,0x0b,0x00,0x16,0x00,0x36,0xb9,0x00,0x00,0x01,0x50,0xb3,0x0c,0x0c,0x18,0x16,0xb8,0x01,0x50,0xb2,0x02,0x15,0x12,0x41,0x09,0x01,0x54,0x00,0x03,0x00,0x06,0x01, -0x4b,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x02,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x07,0x21,0x11,0x36,0x24,0x33,0x32,0x1e,0x02,0x15,0x03,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x04,0xe2,0x31,0xfc,0x0d,0x80,0x01,0x00,0x86,0x82,0xca,0x8a,0x48,0xab,0x37, -0x69,0x96,0x60,0x6a,0x9c,0x34,0xa9,0xa9,0x04,0xac,0x17,0x1b,0x42,0x7e,0xb6,0x75,0xfd,0xaf,0x02,0x53,0x5b,0x80,0x52,0x26,0x14,0x0b,0xfc,0x79,0x00,0x01,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x00,0x33,0x00,0x4b,0xb9,0x00,0x00,0x01,0x50,0x40,0x09,0x11,0x08,0x11,0x08,0x35,0x28,0x27,0x2b,0x22,0xb8,0x01,0x50,0xb2,0x23,0x21, -0x19,0x41,0x0d,0x01,0x54,0x00,0x2b,0x00,0x2e,0x01,0x4a,0x00,0x27,0x00,0x28,0x01,0x4b,0x00,0x23,0x01,0x4d,0x00,0x0c,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x32,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x16,0x16, -0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x04,0xe8,0x31,0x60,0x8e,0x5c,0x35,0x62,0x26,0x2c,0x21,0x40,0x28,0x38,0x51,0x35,0x1a,0x0e,0x21,0x38,0x52,0x71,0x4a,0x2c,0x5f,0x57,0x4a,0x17,0x09,0x0f, -0xa9,0x0a,0x17,0x94,0x16,0x1a,0x02,0x4a,0xba,0x75,0x7e,0xc1,0x83,0x43,0x01,0xb9,0x6f,0xab,0x75,0x3d,0x13,0x11,0x85,0x08,0x09,0x2a,0x4c,0x69,0x40,0xf8,0x30,0x64,0x5f,0x54,0x3e,0x25,0x15,0x29,0x3d,0x29,0x11,0x27,0x14,0xfc,0xaa,0x03,0xf5,0x2e,0x55,0x2d,0x40,0x20,0x54,0x3f,0x50,0x5c,0x52,0x94,0xcc,0x7a,0x00,0x01,0x00,0xbe, -0xfd,0xff,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x01,0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0xfd,0xff,0x06,0xce,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x00,0x19,0x00,0x33,0xb9,0x00,0x00,0x01, -0x50,0x40,0x09,0x03,0x03,0x01,0x1b,0x0e,0x0e,0x01,0x0e,0x09,0xbf,0x01,0x54,0x00,0x0f,0x00,0x12,0x01,0x4b,0x00,0x02,0x01,0x54,0x00,0x01,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x37,0x21,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x36,0x36,0x33, -0x32,0x1e,0x04,0x15,0x02,0x87,0xfd,0xe0,0x13,0x01,0x62,0x0d,0x2b,0x52,0x44,0x0f,0x24,0x24,0x1f,0x08,0x18,0x1c,0x56,0x25,0x45,0x65,0x49,0x2f,0x1b,0x0b,0xa2,0x02,0x7b,0x41,0x6d,0x50,0x2c,0x02,0x03,0x04,0x02,0x94,0x06,0x08,0x22,0x3e,0x54,0x64,0x71,0x3a,0x00,0x02,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x00,0x14,0x00,0x27, -0x00,0x32,0xb9,0x00,0x00,0x01,0x50,0xb3,0x15,0x15,0x29,0x1e,0xb8,0x01,0x50,0xb2,0x0a,0x1d,0x1a,0xbf,0x01,0x54,0x00,0x0b,0x00,0x10,0x01,0x4b,0x00,0x23,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x3e,0x03, -0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0xf7,0x4f,0x96,0xd9,0x8a,0x89,0xca,0x85,0x41,0x3c,0x87,0x8f,0x92,0x45,0x8c,0xd5,0x8f,0x48,0xab,0x2f,0x63,0x9a,0x6b,0x63,0xc4,0x4f,0x22,0x55,0x90,0x6d,0x6f,0x9c,0x61,0x2d,0x02,0x56,0x82,0xe1,0xa7,0x5f,0x5b,0xa4,0xe3, -0x87,0x02,0x59,0x09,0x11,0x0d,0x08,0x61,0xac,0xee,0x8d,0x68,0xb5,0x85,0x4d,0x10,0x0b,0xfe,0x39,0x54,0xaa,0x8a,0x56,0x55,0x86,0xa5,0x00,0x01,0x00,0x59,0xff,0x94,0x04,0x2b,0x04,0xcd,0x00,0x17,0x00,0x3a,0xb2,0x10,0x0d,0x00,0xb8,0x01,0x50,0xb5,0x0d,0x0e,0x15,0x15,0x19,0x0f,0xb8,0x01,0x51,0xb7,0x0e,0x08,0x08,0x0e,0x0d,0x10, -0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x07,0x27,0x3e,0x03,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xcd,0xdb,0x6b,0x2f,0x31,0x68,0x65,0x5f, -0x28,0xfe,0x72,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x64,0x91,0xd3,0x95,0x61,0x3f,0x27,0x10,0xa5,0x05,0x0d,0x13,0x17,0x0d,0x04,0x4b,0xfb,0xe8,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x8c,0x00,0x00,0x01,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x00,0x1b,0x00,0x3d,0xb9,0x00,0x00,0x01,0x50,0xb6,0x01,0x0e,0x01,0x0e,0x01,0x1d, -0x0d,0xbb,0x01,0x50,0x00,0x10,0x00,0x10,0x01,0x54,0xb4,0x0d,0x0d,0x1c,0x0c,0x07,0xbc,0x01,0x54,0x00,0x11,0x00,0x16,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x11,0x21,0x07,0x21, -0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0x39,0xab,0x30,0x6a,0xaa,0x7a,0x16,0x34,0x33,0x2e,0x11,0x01,0x18,0x19,0xfe,0x59,0x24,0x57,0x5e,0x5f,0x2c,0xa5,0xeb,0x94,0x45,0xfd,0xff,0x04,0x73,0x81,0xb3,0x70,0x32,0x04,0x06,0x08,0x04,0xfe,0x65,0x96,0x02,0xaa,0x0b,0x12,0x0e,0x08,0x47,0x98,0xec,0xa5,0x00,0x00,0x01,0x00,0x96, -0xff,0xed,0x04,0x9c,0x04,0xde,0x00,0x27,0x00,0x51,0xb9,0x00,0x00,0x01,0x50,0xb6,0x13,0x1b,0x13,0x1b,0x13,0x29,0x1a,0xb8,0x01,0x50,0xb4,0x1d,0x0a,0x0a,0x1d,0x1d,0xb8,0x01,0x54,0xb4,0x1a,0x1a,0x0e,0x19,0x16,0x41,0x0a,0x01,0x54,0x00,0x1e,0x00,0x23,0x01,0x4b,0x00,0x0b,0x00,0x0e,0x01,0x54,0x00,0x0a,0x00,0x05,0x01,0x4e,0x00, -0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x23,0x22,0x06,0x07,0x11,0x21,0x07,0x21,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x04,0x9c,0x54, -0x9c,0xde,0x8a,0x2d,0x70,0x74,0x70,0x2d,0x1c,0x4b,0xbc,0x7d,0x6a,0xa4,0x71,0x3a,0xca,0xd4,0x5c,0x94,0x26,0x01,0x4c,0x1c,0xfe,0x2b,0x2c,0x71,0x75,0x70,0x2c,0x8f,0xdf,0x9a,0x50,0x02,0x59,0xa0,0xea,0x98,0x4a,0x06,0x0c,0x14,0x0e,0x96,0x14,0x1c,0x32,0x6d,0xaf,0x7e,0xf2,0x01,0x03,0x11,0x0b,0xfe,0x7f,0x96,0x02,0x8b,0x0f,0x17, -0x10,0x08,0x50,0xa1,0xf2,0x00,0x00,0x01,0x00,0x1e,0xfd,0xff,0x04,0x03,0x04,0xe5,0x00,0x22,0x00,0x44,0xb3,0x17,0x09,0x06,0x0a,0xb8,0x01,0x50,0xb4,0x0b,0x0b,0x12,0x20,0x00,0xb8,0x01,0x50,0x40,0x0e,0x1f,0x1c,0x1c,0x24,0x13,0x12,0x12,0x13,0x13,0x17,0x06,0x0a,0x1f,0x20,0xba,0x01,0x4b,0x00,0x0a,0x01,0x4f,0x00,0x3f,0x3f,0x33, -0x12,0x39,0x39,0x33,0x2f,0x33,0x01,0x2f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x32,0x32,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0x37,0x01,0x16,0x16,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x04,0x03,0x1e,0x44,0x70,0x52,0x61,0x05,0x02, -0xa9,0x0a,0x17,0x27,0x1e,0xfe,0xa8,0xab,0x01,0x36,0x1d,0x32,0x0c,0x4a,0x63,0x3b,0x19,0x1d,0x14,0xa3,0x17,0x1f,0x03,0xd4,0x59,0x96,0x7a,0x61,0x24,0x2b,0x26,0x50,0x20,0xfc,0xda,0x03,0x23,0x3a,0x62,0x5a,0x54,0x2d,0x02,0x05,0x40,0xfe,0x1f,0x2d,0x6b,0x2d,0x20,0x4e,0x60,0x72,0x44,0x4c,0x72,0x29,0x42,0x32,0x8e,0x00,0x00,0x01, -0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x00,0x14,0x00,0x4e,0xb3,0x05,0x0d,0x0c,0x06,0xb8,0x01,0x51,0xb3,0x0a,0x0a,0x08,0x00,0xb8,0x01,0x50,0x40,0x10,0x12,0x12,0x08,0x16,0x0c,0x0b,0x0b,0x08,0x05,0x0d,0x06,0x0c,0x13,0x13,0x0b,0x0c,0xbd,0x01,0x4a,0x00,0x06,0x00,0x09,0x01,0x54,0x00,0x08,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f, -0x33,0x33,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x13,0x07,0x21,0x37,0x21,0x01,0x37,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x25,0x28,0x48,0x64,0x3c,0xdc,0x2c,0xfc,0x86,0x2d,0x02,0xb3,0xfd,0x39,0x9a,0x01,0xc9,0x23,0x41, -0x32,0x1e,0xaa,0x03,0xd4,0x60,0x94,0x77,0x62,0x2f,0xfe,0xca,0xa2,0xa2,0x03,0xee,0x44,0xfd,0x74,0x15,0x42,0x5c,0x76,0x47,0x01,0x15,0x00,0x02,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x00,0x29,0x00,0x2d,0x00,0x46,0xb9,0x00,0x00,0x01,0x50,0xb6,0x15,0x09,0x15,0x09,0x15,0x2f,0x2a,0xb8,0x01,0x50,0xb2,0x1f,0x2b,0x2a,0xb8,0x01, -0x4f,0xb4,0x2c,0x2c,0x0a,0x1f,0x1a,0xbf,0x01,0x54,0x00,0x20,0x00,0x25,0x01,0x4b,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x3f,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x07,0x0e,0x03,0x07,0x37,0x3e,0x03,0x37,0x37,0x3e,0x03,0x35, -0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x23,0x11,0x33,0x04,0xd2,0x02,0x02,0x08,0x10,0x60,0x9f,0xdf,0x90,0x15,0x5e,0x99,0x72,0x47,0x0c,0x0d,0x01,0x01,0x01,0x01,0x2a,0x58,0x88,0x5f,0x5b,0xa4,0x9b,0x97,0x4e,0x20,0x2d,0x7f,0x9a,0xad,0x5a,0x91,0xcf,0x85,0x3e,0xfc,0x9c,0xa9,0xa9,0x03, -0x4a,0x10,0x35,0x11,0x68,0xb7,0xf7,0x9a,0x4c,0x0b,0xa1,0x0b,0x35,0x69,0xaa,0x80,0x8a,0x09,0x1a,0x1b,0x1a,0x09,0x44,0x61,0x3e,0x1d,0x0a,0x11,0x18,0x0e,0xa6,0x06,0x10,0x0d,0x0a,0x32,0x65,0x97,0xfa,0x4f,0x04,0xe2,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01, -0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7, -0x8f,0x4f,0x02,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x00,0x31,0x00,0x56,0xbc,0x00,0x00,0x01,0x50,0x00,0x31,0x00,0x1b,0x01,0x50,0x40,0x0d,0x1a,0x31,0x1a,0x31,0x1a,0x33,0x0c,0x26,0x25,0x25,0x0e,0x0e,0x0d,0xb8,0x01,0x51,0xb2,0x0b,0x0c, -0x25,0xb8,0x01,0x54,0xb3,0x0e,0x0e,0x00,0x26,0xba,0x01,0x54,0x00,0x0b,0x01,0x4d,0xb2,0x1a,0x0c,0x00,0xb8,0x01,0x4a,0x00,0x3f,0x32,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x23,0x21, -0x03,0x33,0x13,0x3e,0x05,0x37,0x36,0x36,0x37,0x36,0x37,0x33,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x07,0x17,0x21,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x36,0x37,0x05,0xd8,0x06,0x0a,0x08,0x1a,0x14,0x13,0x4f,0x7e,0xaf,0x73,0xfd,0x97,0xb9,0xb3,0x6b,0x3b,0x5f,0x4a,0x38,0x2a,0x1d,0x09,0x05,0x0a,0x05,0x05,0x05,0xb0,0x04,0x05,0x05, -0x0a,0x06,0x0e,0x3e,0x76,0xb9,0x89,0x18,0x01,0xd6,0x3c,0x6b,0x58,0x40,0x10,0x16,0x1c,0x08,0x0a,0x05,0x04,0xcd,0x33,0x54,0x48,0xe8,0xab,0xa8,0xeb,0x94,0x44,0x04,0xcd,0xfd,0x0e,0x12,0x24,0x31,0x44,0x61,0x85,0x5a,0x2e,0x5d,0x26,0x2d,0x29,0x24,0x2c,0x26,0x62,0x39,0x8a,0xc9,0x93,0x66,0x27,0xa7,0x27,0x64,0xad,0x85,0xa6,0xea, -0x4c,0x59,0x39,0x00,0x00,0x01,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x00,0x2d,0x00,0x47,0xb2,0x22,0x22,0x0b,0xb8,0x01,0x50,0xb3,0x1e,0x1e,0x15,0x00,0xb8,0x01,0x50,0x40,0x09,0x01,0x01,0x2f,0x15,0x22,0x0a,0x0a,0x1f,0x07,0x41,0x09,0x01,0x54,0x00,0x23,0x00,0x28,0x01,0x4b,0x00,0x1a,0x01,0x54,0x00,0x12,0x01,0x4e,0x00,0x01, -0x00,0x2f,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x05, -0x23,0xab,0x39,0x71,0xaa,0x71,0x33,0x6f,0x39,0x04,0x12,0x24,0x42,0x64,0x48,0x1d,0x3e,0x21,0x13,0x14,0x20,0x0f,0x2e,0x3e,0x27,0x11,0x2c,0x4c,0x1e,0x13,0x37,0x81,0x8f,0x9a,0x4f,0x7c,0xd5,0x9d,0x5a,0x02,0xea,0x61,0x86,0x54,0x26,0x08,0x06,0xfd,0x73,0x3d,0x72,0x64,0x54,0x3b,0x21,0x04,0x05,0x91,0x04,0x01,0x1f,0x44,0x69,0x49, -0x02,0x90,0x07,0x0f,0x06,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x6d,0x02,0x09,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x27,0x0b,0x6d,0x02,0x09,0x00,0x00,0x00,0x06,0x0b,0x71,0x00,0x00,0xff,0xff, -0x00,0xbe,0x02,0x27,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x71,0x02,0x09,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0x0e,0x01,0x70,0x04,0xcc,0x00,0x03,0x00,0x11,0xb5,0x03,0x00,0x01,0x02,0x00,0x02,0x00,0x2f,0xcd,0x01,0x2f,0x33,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x04,0xcc, -0xfe,0x42,0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0x0e,0x02,0xa0,0x04,0xcc,0x00,0x03,0x00,0x07,0x00,0x20,0x40,0x0d,0x03,0x00,0x01,0x02,0x07,0x04,0x05,0x06,0x00,0x02,0x02,0x04,0x06,0x00,0x2f,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0x33,0xdd,0x32,0xd6,0x32,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76, -0x6c,0x9a,0x8c,0x76,0x6f,0x04,0xcc,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x53,0x01,0x48,0x02,0xfb,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5b,0x00,0xce,0x02,0xfb, -0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x06,0x0b,0x5c,0xad,0x00,0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x26,0x0b,0x5c,0xad,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0x00,0x03,0x00,0xbe,0x01,0x58,0x03,0x95,0x04,0xcd,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x30,0xb1,0x03,0x0b,0xb8,0x01,0x50,0xb3,0x0a,0x0a,0x0d,0x07,0xb8,0x01,0x50,0xb2,0x02,0x06,0x0a,0xb8,0x01,0x4b,0xb4,0x00,0x02,0x09,0x04,0x06,0xb8,0x01,0x4b,0x00,0x3f,0xdd,0x32,0xde,0xcd,0x3f,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x21,0x25,0x23,0x11,0x33,0x01,0x23, -0x11,0x33,0x03,0x95,0xfd,0x29,0x02,0xd7,0xfd,0xd2,0xa9,0xa9,0x02,0x2e,0xa9,0xa9,0x01,0x58,0x6a,0x65,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0x2b,0x04,0xcd,0x00,0x16,0x00,0x3a,0xb2,0x0f,0x0c,0x16,0xb8,0x01,0x50,0xb5,0x0c,0x0d,0x15,0x15,0x18,0x0e,0xb8,0x01,0x51,0xb7,0x0d,0x08,0x08,0x0d,0x0c,0x0f, -0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x03,0x23,0x23,0x27,0x33,0x32,0x32,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xaf,0x9a,0xca,0x2f,0xcd,0x33, -0x53,0x2b,0xfe,0x79,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x80,0x91,0xd3,0x95,0x61,0x26,0xa2,0x08,0x04,0x23,0xfc,0x04,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x70,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x06,0x0b,0x68,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x06,0x0b,0x6b,0x00,0x00, -0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x06,0x0b,0x6c,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x06,0x0b,0x73,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x02,0x06,0x0b,0x75,0x00,0x00, -0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x06,0x0b,0x80,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x06,0x0b,0x82,0x00,0x00,0x00,0x01,0x00,0x5f,0x02,0x12,0x04,0x0b,0x04,0x2b,0x00,0x07,0x00,0x19,0xb1,0x07,0x05,0xb8,0x01,0x50,0xb5,0x02,0x04,0x06,0x00,0x02,0x04,0x00,0x2f,0xde,0xcd,0x33, -0x01,0x2f,0xce,0xfd,0xce,0x30,0x31,0x01,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0b,0xfc,0x54,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0x86,0x01,0x93,0xfe,0x6d,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x63,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8, -0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x64,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x27,0x0b,0x63,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00, -0x00,0x27,0x0b,0x64,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0xa5,0xff,0x38,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5a,0x01,0xae,0x00,0x00,0xff,0xff,0x00,0xa5,0xfe,0x59,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5b,0x01,0xae,0x00,0x00, -0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0x3a,0xfe,0x43,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xd3,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x02,0x26,0x0b,0x6a,0x00,0x00, -0x00,0x07,0x0b,0x5e,0x01,0x10,0x00,0x8c,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x36,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb8,0x00,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x01,0xad, -0x04,0xcd,0x00,0x26,0x0b,0x6d,0x46,0x00,0x00,0x06,0x0b,0x5e,0x56,0x00,0xff,0xff,0xff,0xfa,0x00,0x00,0x02,0x87,0x04,0xcd,0x00,0x26,0x0b,0x6e,0x28,0x00,0x00,0x06,0x0b,0x5e,0x55,0x00,0xff,0xff,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x02,0x26,0x0b,0x70,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xc7,0x00,0x00,0xff,0xff,0xff,0xfb, -0x02,0x27,0x01,0xad,0x04,0xcd,0x00,0x26,0x0b,0x71,0x46,0x00,0x00,0x07,0x0b,0x5e,0x00,0x56,0x01,0x0e,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x5e, -0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0xff,0xff,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x02,0x26,0x0b,0x76,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd2,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x02,0x26, -0x0b,0x78,0x00,0x00,0x00,0x07,0x0b,0x5e,0x00,0xfa,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x02,0x26,0x0b,0x79,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb2,0x00,0x00,0xff,0xff,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x02,0x26,0x0b,0x7b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd5,0xff,0xd9,0xff,0xff,0x00,0x96, -0xff,0xed,0x04,0x9c,0x04,0xde,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x2f,0xff,0xf7,0xff,0xff,0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x02,0x26,0x0b,0x7e,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x68,0xff,0x16,0xff,0xff,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x02,0x26,0x0b,0x7f,0x00,0x00,0x00,0x07,0x0b,0x5e, -0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x80,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xb3,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x26, -0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x20,0x00,0x00,0xff,0xff,0x00,0xb5,0x00,0x00,0x01,0x6e,0x06,0x05,0x02,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x5c,0x01,0x11,0x00,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x05,0xd5,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0x4e, -0xff,0xed,0x03,0xeb,0x05,0xd5,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xc7,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0x9c,0x05,0xd5,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0x44,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0xba,0x06,0xa0,0x00,0x1b,0x00,0x40,0xb6,0x17,0x06,0x12,0x0c,0x0b, -0x0b,0x01,0xb8,0x01,0x50,0xb3,0x1a,0x1a,0x1d,0x12,0xb8,0x01,0x50,0xb7,0x0f,0x06,0x17,0x0b,0x12,0x12,0x0f,0x1b,0xbc,0x01,0x4a,0x00,0x10,0x01,0x4c,0x00,0x0b,0x01,0x4d,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x01,0x11,0x14,0x0e,0x02,0x07, -0x1e,0x03,0x17,0x23,0x02,0x00,0x25,0x11,0x33,0x11,0x16,0x16,0x17,0x16,0x17,0x36,0x36,0x35,0x11,0x04,0x89,0x28,0x4a,0x68,0x41,0x24,0x52,0x57,0x57,0x28,0xcb,0xc4,0xfe,0x36,0xfe,0xf8,0xaa,0x6f,0xc2,0x48,0x54,0x47,0x5c,0x6c,0x04,0xcd,0xfe,0xc1,0x52,0x83,0x6c,0x58,0x29,0x2b,0x6e,0x79,0x7e,0x3c,0x01,0x23,0x02,0x19,0xf6,0x02, -0x6e,0xfd,0xde,0x6f,0xd2,0x51,0x5f,0x55,0x35,0x99,0x6a,0x01,0x5d,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x09,0x9a,0x06,0xe8,0x00,0x04,0x00,0x08,0x00,0x0c,0x00,0x18,0x00,0x1c,0x00,0x21,0x00,0x2c,0x00,0x31,0x00,0x35,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4e,0x00,0x55,0x00,0x5c,0x00,0x64,0x00,0xee,0x40,0x10,0x05,0x32,0x06,0x33, -0x0a,0x19,0x46,0x1a,0x47,0x4b,0x2d,0x61,0x4a,0xce,0x3c,0x36,0xb8,0x01,0x50,0xb2,0x5d,0x53,0x5a,0x41,0x0a,0x01,0x52,0x00,0x25,0x00,0x29,0x01,0x52,0x00,0x4f,0x00,0x22,0x01,0x50,0x00,0x56,0x00,0x0d,0x01,0x50,0x40,0x28,0x16,0x02,0x1e,0x3c,0x5d,0x25,0x4f,0x56,0x16,0x1e,0x1e,0x16,0x56,0x4f,0x25,0x5d,0x3c,0x07,0x0a,0x42,0xce, -0x43,0x2f,0x4b,0x09,0x00,0x1d,0xce,0x0a,0x0b,0x44,0x30,0x0a,0x43,0x48,0x20,0x4c,0x0f,0x25,0x39,0xb8,0x01,0x56,0xb4,0x63,0x14,0x5a,0x63,0x59,0xb8,0x01,0x56,0xb2,0x53,0x52,0x5f,0xb8,0x01,0x56,0x40,0x19,0x3f,0x26,0x17,0x3f,0x01,0x2f,0x4c,0x63,0x53,0x3f,0x2f,0x2f,0x3f,0x53,0x63,0x4c,0x05,0x30,0x34,0x48,0x1e,0x33,0x47,0x03, -0x4b,0xb8,0x01,0x4d,0xb6,0x06,0x1a,0x03,0x07,0x1b,0x03,0x30,0x00,0x2f,0x17,0x33,0xc4,0x32,0x3f,0x17,0x33,0xc4,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x01,0x2f,0xe4,0x32,0x32,0x2f,0x33,0x33, -0xe4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xe4,0x32,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x23,0x01,0x35,0x21,0x05,0x21,0x35,0x21,0x01,0x23,0x11,0x33,0x01,0x10,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x35,0x11, -0x33,0x01,0x21,0x35,0x21,0x01,0x21,0x35,0x01,0x33,0x01,0x14,0x21,0x21,0x11,0x21,0x20,0x15,0x14,0x07,0x16,0x01,0x01,0x23,0x11,0x21,0x01,0x21,0x35,0x21,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x23,0x11,0x33,0x01,0x21,0x35,0x21,0x05,0x21,0x11,0x33,0x01,0x01,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34, -0x23,0x23,0x11,0x33,0x32,0x01,0x10,0x23,0x22,0x11,0x10,0x33,0x32,0x09,0x9a,0x78,0xfe,0xf3,0x01,0x85,0xfd,0x4e,0xfe,0x7d,0x01,0x83,0x02,0xb2,0x78,0x78,0xfe,0xc0,0xfd,0x67,0x3d,0x55,0x20,0x2f,0x71,0x8c,0xfb,0xda,0xfe,0x7e,0x01,0x82,0x05,0x66,0xfe,0x7b,0x01,0x0d,0x78,0xfd,0x12,0xfe,0xb7,0xfe,0xe0,0x01,0x1b,0x01,0x2a,0x6a, -0x8e,0xfa,0xd9,0xfe,0xf3,0x78,0x01,0x85,0x05,0x63,0xfe,0x7d,0x01,0x83,0xfd,0x19,0xc5,0xb8,0xb8,0xc0,0xc0,0xb8,0xb8,0xc5,0xfc,0x77,0x78,0x78,0x03,0xbc,0xfe,0x7e,0x01,0x82,0xfd,0x51,0xfe,0x7b,0x78,0x01,0x0d,0x04,0x79,0xc5,0x6c,0x7a,0xb7,0x22,0xcc,0x87,0x96,0xbd,0xfd,0x54,0xf0,0xec,0xec,0xf0,0x05,0x65,0x01,0x09,0x7a,0x7a, -0x7a,0xfb,0xca,0x01,0x82,0xfe,0xa8,0xfe,0xe1,0x36,0x5e,0x1e,0xa4,0x02,0x45,0x01,0x52,0x7a,0xf9,0x18,0x78,0x01,0x0d,0x01,0x41,0xfa,0x03,0x50,0xe0,0x6f,0x3d,0x36,0x03,0x14,0xfe,0xf7,0x01,0x83,0xf9,0x18,0x78,0x02,0xfa,0xd1,0xe4,0xe4,0xd1,0xd1,0xe7,0xe7,0xfe,0x6f,0x01,0x82,0xfb,0xcc,0x78,0x78,0x01,0x85,0xfe,0xf3,0x03,0xb8, -0x75,0xe6,0xf9,0x82,0xfe,0xf7,0x01,0x33,0x01,0x43,0xfe,0xbd,0xfe,0xc1,0x00,0x01,0x00,0x00,0xfe,0x09,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x01,0xb0, -0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xfe,0xd1,0x01,0x2f,0x66,0x00,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x01,0x07,0x0b,0x5e,0x02,0x2a,0xfe,0x6f,0x00,0x0f,0xb1,0x01,0x2c,0xb8,0xff,0xc0,0xb3,0x10,0x10,0x36,0x2c,0x00,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0, -0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0x59,0xff,0x04,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x58,0x02,0x3f,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x59,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x05,0x40,0x06,0xa0, -0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x54,0x02,0x63,0x00,0x00,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x00,0x18,0x00,0x2a,0x40,0x12,0x02,0x18,0x12,0x11,0x08,0x0b,0x11,0x13,0x05,0x40,0x10,0x10,0x01,0x0a,0xc0,0x11,0x11,0x1a,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xcd,0x33,0x01,0x2f,0xdc,0xcd, -0x10,0xdd,0xdc,0xcd,0x30,0x31,0x13,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x1e,0x03,0x15,0xbe,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0xfe,0x09,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40, -0x26,0x00,0x00,0x03,0xff,0x15,0x05,0x4e,0x00,0xeb,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3f,0xb9,0x00,0x06,0x01,0x51,0xb3,0x00,0x00,0x0c,0x1e,0xbe,0x01,0x51,0x00,0x18,0x00,0x12,0x01,0x51,0x00,0x0c,0x00,0x1b,0x01,0x55,0xb3,0x21,0x21,0x15,0x03,0xbd,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0x00,0x15,0x05,0x10,0x00, -0x3f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x03,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x07,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x5d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34, -0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x1d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x06,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0x73,0x05,0x4e,0x00,0x8e,0x07,0x0a,0x00,0x0b,0x00,0x24,0x40,0x0f,0x04,0x02,0x00,0x40, -0x0a,0x08,0x06,0x07,0x03,0x09,0x01,0x04,0x0b,0xc0,0x05,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcc,0x17,0x39,0x01,0x2f,0x33,0x33,0x1a,0xcc,0x32,0x32,0x30,0x31,0x13,0x07,0x17,0x07,0x17,0x07,0x23,0x37,0x27,0x37,0x27,0x37,0x8e,0xa1,0xa1,0xa1,0xa1,0xa1,0x7a,0xa1,0xa1,0xa1,0xa1,0xa1,0x07,0x0a,0x59,0x59,0x58,0x59,0x59,0x59,0x59,0x58, -0x59,0x59,0x00,0x02,0xff,0xa1,0x05,0x4e,0x00,0x5f,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0x41,0x09,0x01,0x51,0x00,0x06,0x00,0x15,0x01,0x55,0x00,0x0f,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xfd,0xde,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5f,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0xff,0x49,0x05,0x4e,0x00,0xb8, -0x07,0x0a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32,0xb9,0x00,0x04,0x01,0x51,0xb2,0x0a,0x0a,0x10,0xb8,0x01,0x51,0xb4,0x16,0x03,0x02,0x03,0x19,0xbe,0x01,0x55,0x00,0x13,0x00,0x0d,0x01,0x55,0x00,0x00,0x00,0x07,0x05,0x10,0x00,0x3f,0x33,0xfd,0xde,0xed,0x32,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x23,0x11,0x33, -0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x51,0x66,0x66,0x01,0x09,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x58,0x01,0xa8,0xfe,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c, -0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x03,0x03,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xcc,0x30,0x31,0x07,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0xbb,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23, -0x96,0x64,0x64,0xa7,0x00,0x01,0xff,0x61,0x05,0x4e,0x00,0x9f,0x06,0xdf,0x00,0x03,0x00,0x10,0xb3,0x00,0x02,0x03,0x01,0xb8,0x05,0x10,0x00,0x3f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x07,0x27,0x37,0x9f,0x9f,0x9f,0x9f,0x06,0x17,0xc9,0xc9,0xc8,0x00,0x00,0x01,0xfe,0xab,0x05,0x4e,0x01,0x56,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12, -0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33,0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x03,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, -0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x1b,0x1c,0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05, -0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26,0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x01,0xfe,0x26,0x05,0x57,0xff,0x9c,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x05,0x00,0x09,0x08,0x09,0x02,0xb8, -0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xdc,0xcd,0x30,0x31,0x03,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0x05,0xaa,0x26,0x2d,0x32,0x24,0x91,0x67,0x64,0xab,0x00,0x01,0x00,0x64,0xfe,0x09,0x01,0xc4,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00, -0x44,0x04,0x54,0x04,0x02,0xcb,0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x01,0x23,0x27,0x37,0x33,0x07,0x01,0xc4, -0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09,0xd4,0xd4,0xd4,0x00,0x02,0xff,0x42,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0xb3,0x04,0x00,0x07,0x0c,0xb8,0x01,0x51,0xb5,0x12,0x04,0x03,0x0a,0x0a,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xfd,0xde,0xcd,0xce,0x30, -0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x07,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xc0,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x3a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45, -0x05,0x57,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x01,0x00,0x64, -0x05,0x57,0x01,0xda,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x13,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x64,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x02,0xfe,0xe1, -0x05,0x57,0x01,0x1f,0x07,0x09,0x00,0x0b,0x00,0x17,0x00,0x25,0x40,0x0e,0x13,0x10,0x0c,0x0c,0x03,0x07,0x00,0x10,0x0f,0x0f,0x04,0x03,0x15,0x09,0xb8,0x05,0x10,0x00,0x3f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0xcc,0x32,0x2f,0xcc,0xcd,0x30,0x31,0x01,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x25,0x34,0x36, -0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xfe,0xe1,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x01,0x20,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x04,0xfe,0x06,0x05,0x35,0x01,0xfa,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x2b,0x00,0x37, -0x00,0x44,0x40,0x1f,0x29,0x32,0x1e,0x2c,0x24,0x2b,0x1e,0x02,0x16,0x00,0x0d,0x10,0x07,0x29,0x2a,0x35,0x2a,0x27,0x27,0x04,0x02,0x01,0x13,0x04,0x2f,0x21,0x21,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x33,0x2f,0xcd,0x10,0xcd,0x11,0x39,0x11,0x33,0x2f,0xce,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0xde,0xce,0xdc, -0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x07,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x28,0x3e, -0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x02,0x3d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44, -0x95,0x28,0x3e,0x53,0x70,0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x24,0x40,0x0f,0x0d,0x16,0x02,0x10,0x08,0x0f,0x02,0x0d,0x0e,0x19,0x0e,0x0b,0x13,0x05,0x0b,0x00,0x2f,0xdc,0xcd,0x10,0xce,0xcd,0x11,0x39,0x01,0x2f, -0xce,0xdc,0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x7d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0xe1,0x28,0x3e,0x53,0x70, -0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x00,0x01,0xff,0x5b,0x05,0x58,0x00,0xa6,0x07,0x00,0x00,0x11,0x00,0x2f,0x40,0x15,0x06,0x0a,0x09,0x11,0x40,0x00,0xc0,0x09,0x04,0x40,0x0d,0x40,0x09,0x10,0x48,0x0d,0x0d,0x11,0x09,0xc0,0x07,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcd,0x32,0x39,0x2f,0x2b, -0x1a,0xcd,0x01,0x2f,0x1a,0xdc,0x1a,0xcd,0x10,0xcd,0x32,0x30,0x31,0x13,0x15,0x14,0x06,0x23,0x22,0x27,0x15,0x23,0x11,0x33,0x15,0x16,0x33,0x32,0x36,0x35,0x35,0xa6,0x57,0x57,0x22,0x17,0x64,0x64,0x0f,0x1c,0x30,0x26,0x07,0x00,0x76,0x58,0x65,0x0a,0x7f,0x01,0xa8,0xcf,0x0b,0x2c,0x39,0x75,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe, -0xff,0xb1,0x00,0x18,0x00,0x30,0x40,0x17,0x09,0x0a,0x10,0x13,0x01,0x00,0x13,0x10,0x13,0x40,0x05,0x40,0x09,0x10,0x48,0x05,0x05,0x12,0xc0,0x09,0x01,0x01,0x1a,0x11,0x00,0x33,0x2f,0x33,0x1a,0xcc,0x39,0x2f,0x2b,0x1a,0xcd,0x32,0x01,0x2f,0xdd,0xcd,0x10,0xdd,0xdd,0xcd,0x30,0x31,0x07,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35, -0x33,0x15,0x14,0x0e,0x02,0x07,0x15,0x23,0x35,0x2e,0x03,0x35,0xbd,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0x4f,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40,0x26,0x00,0x01,0xff,0x6a,0xfe,0x09,0x00,0x96,0xff,0xb1,0x00,0x05,0x00,0x15,0xb7,0x05, -0x02,0x04,0x02,0x01,0x05,0x05,0x07,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0xfe,0x09,0x66,0x01,0x42,0x00,0x00,0x01,0xff,0x4b,0xfe,0x09,0x00,0xab,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00,0x44,0x04,0x54,0x04,0x02,0xcb, -0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xab,0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09, -0xd4,0xd4,0xd4,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x04,0x00,0x07,0x04,0x03,0x0a,0x0a,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64, -0x96,0x23,0x31,0x2c,0x00,0x02,0xfe,0xe1,0xfd,0xff,0x01,0x1f,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x26,0x40,0x10,0x00,0x07,0x04,0x04,0x0c,0x10,0x13,0x10,0x0f,0x0f,0x04,0x03,0x16,0x0a,0x0a,0x19,0x11,0x00,0x33,0x2f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xce,0xcd,0x32,0x10,0xde,0xcd,0x30,0x31,0x05,0x14,0x06,0x23,0x35,0x32, -0x36,0x35,0x34,0x27,0x33,0x16,0x05,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x01,0x1f,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xfe,0xe0,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x00,0x01,0xff,0x68,0xfd,0xff,0x00,0x99,0xff,0xbb, -0x00,0x09,0x00,0x2a,0x40,0x11,0x04,0x09,0x00,0x08,0x80,0x05,0x03,0x09,0x07,0x04,0x04,0x03,0x02,0x08,0x07,0x07,0x0b,0x11,0x00,0x33,0x2f,0x33,0xcc,0x32,0x39,0x19,0x2f,0x12,0x39,0x01,0x18,0x2f,0x33,0x1a,0xcc,0x32,0x39,0x39,0x30,0x31,0x13,0x07,0x07,0x35,0x37,0x27,0x37,0x37,0x15,0x07,0x99,0x4d,0xe4,0xa8,0xa8,0x4d,0xe4,0xaa, -0xfe,0x67,0x41,0x27,0x5c,0x1b,0xdd,0x41,0x27,0x59,0x1e,0x00,0x00,0x01,0xff,0x45,0x05,0x4d,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x08,0x00,0x05,0x08,0x09,0x02,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x13,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0xbb,0x06,0x64,0x04,0x8b,0x85, -0xbf,0xb7,0x05,0xa0,0x26,0x2d,0x32,0x24,0x9b,0x67,0x64,0xab,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x22,0x40,0x0e,0x02,0x16,0x00,0x0d,0x10,0x07,0x02,0x01,0x13,0x04,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x10,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0x30,0x31,0x13,0x07, -0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xe9,0x3e,0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44, -0x44,0x2f,0x2f,0x44,0x44,0x00,0xff,0xff,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x02,0x06,0x0b,0xd0,0x00,0x00,0x00,0x01,0xff,0x4b,0x05,0x4d,0x00,0xb5,0x07,0x09,0x00,0x05,0x00,0x31,0x40,0x17,0x00,0x04,0x80,0x84,0x05,0x94,0x05,0x02,0x05,0x34,0x03,0x01,0x03,0x34,0x01,0x01,0x01,0x02,0x05,0x05,0x03,0xc0,0x00,0xb8,0x05,0x10, -0x00,0x3f,0x1a,0xcc,0x39,0x3d,0x2f,0x01,0x18,0x2f,0x33,0x71,0x33,0x71,0x33,0x5d,0x1a,0xcd,0x32,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xb5,0x8d,0xdd,0xdd,0x8d,0xdc,0x05,0x4d,0xde,0xde,0xde,0x00,0x01,0xff,0x6a,0x05,0x58,0x00,0x96,0x07,0x00,0x00,0x05,0x00,0x14,0xb5,0x05,0x02,0x04,0x05,0x02,0x00,0xb8,0x05,0x10,0x00,0x3f, -0xcd,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0x05,0x58,0x66,0x01,0x42,0x00,0x01,0x00,0x64,0xfd,0xff,0x01,0xda,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x02,0x02,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xdd,0xce,0x30,0x31,0x17,0x34,0x37,0x33,0x06, -0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23,0x96,0x64,0x64,0xa7,0x00,0x01,0xfd,0x87,0x05,0x4e,0x00,0x32,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12,0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33, -0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x01,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xfe,0xc1,0x1c, -0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05,0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26, -0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x00,0x02,0xff,0x29,0x05,0x4e,0x00,0xd8,0x06,0xfd,0x00,0x0b,0x00,0x17,0x00,0x18,0xb7,0x12,0x06,0x0c,0x00,0x15,0x03,0x0f,0x09,0xb8,0x05,0x10,0x00,0x3f,0xcd,0xdc,0xcd,0x01,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xd7,0x78,0x5f,0x5f,0x79,0x79,0x5f,0x5f,0x78,0x60,0x43,0x34,0x35,0x43,0x43,0x35,0x34,0x43,0x06,0x25,0x55,0x83,0x83,0x55,0x55,0x82,0x82,0x55,0x2f,0x48,0x48,0x2f,0x2f,0x49,0x49,0x00,0xff,0xff,0xff,0xa4,0x05,0x4e,0x00,0x5d, -0x06,0x05,0x02,0x06,0x0b,0x5c,0x00,0x00,0x00,0x01,0x00,0xab,0x00,0x00,0x02,0xcb,0x04,0xde,0x00,0x19,0x00,0x2c,0xb5,0x0b,0x0b,0x18,0x18,0x1b,0x15,0x41,0x0a,0x01,0x50,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x18,0x01,0x4d,0x00,0x10,0x01,0x54,0x00,0x07,0x01,0x4a,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, -0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x17,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x21,0x17,0x21,0xab,0x0b,0x1b,0x2f,0x49,0x65,0x45,0x25,0x56,0x1c,0x18,0x08,0x1f,0x24,0x24,0x0f,0x44,0x52,0x2b,0x0d,0x01,0x62,0x13,0xfd,0xe0,0x03,0x1b,0x3a,0x71,0x64,0x54,0x3e,0x22,0x08,0x06,0x94,0x02,0x04,0x03,0x02,0x2c,0x50, -0x6d,0x41,0xfd,0x85,0xa2,0x00,0xff,0xff,0x00,0xb6,0x00,0xfc,0x01,0x6f,0x04,0xcd,0x02,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x11,0xfe,0xe4,0x00,0x01,0xfe,0xb2,0x05,0x67,0x01,0x4f,0x06,0x78,0x00,0x0d,0x00,0x15,0xb7,0x00,0x01,0x08,0x07,0x00,0x08,0x0b,0x04,0x00,0x2f,0xcd,0xcc,0x32,0x01,0x2f,0x33,0xcc,0x32,0x30, -0x31,0x13,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0xc8,0x87,0x17,0xaa,0x8d,0x8e,0xa9,0x18,0x87,0x10,0x60,0x51,0x5e,0x60,0x06,0x78,0x84,0x8d,0x8a,0x87,0x49,0x54,0x51,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0x9a,0x00,0x19,0x00,0x8c,0x40,0x5f,0x59,0x17,0x01,0x48,0x17,0x01,0x56,0x13,0x01,0x79, -0x06,0x01,0x6a,0x06,0x01,0x0b,0x06,0x1b,0x06,0x02,0x9a,0x05,0x01,0x68,0x05,0x01,0x2a,0x05,0x01,0x96,0x03,0x01,0x24,0x03,0x01,0x05,0x03,0x15,0x03,0x02,0x66,0x02,0x76,0x02,0x02,0x0d,0x0d,0x00,0x7d,0x10,0x19,0x20,0x19,0x30,0x19,0x03,0x19,0x19,0x1b,0x0f,0x11,0x7d,0x08,0x0b,0x0b,0x8a,0x0a,0x01,0x69,0x0a,0x79,0x0a,0x02,0x4b, -0x0a,0x01,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x00,0x00,0x15,0x0a,0x0f,0x91,0x0d,0x03,0x15,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xc4,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x10,0x13,0x23,0x35,0x21,0x15,0x21,0x04,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x05,0xaa,0xac,0xb6,0xfe,0xb6,0xfe,0xc6,0xb6,0xb0,0xf1,0xf1,0x05,0x4c,0xfc,0x89,0xfe,0xdb,0x7a,0x87,0xef,0xfc,0x86,0x7a,0x02,0xc8,0xfe,0xb4,0xc4,0xd0,0xc8,0xc1,0x01,0x3b,0x01,0x55,0x01,0x01, -0x98,0x98,0xef,0xfe,0xa8,0xf4,0x9c,0xac,0xaa,0x9b,0x01,0x04,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x16,0x00,0x5a,0x40,0x39,0x46,0x0e,0x01,0x37,0x0e,0x01,0x78,0x05,0x01,0x5b,0x05,0x01,0x16,0x15,0x7e,0x12,0x02,0x02,0x18,0x0a,0x0c,0x7e,0x68,0x09,0x78,0x09,0x02,0x09,0x0f,0x07,0x2f,0x07,0x3f,0x07,0x4f,0x07, -0x04,0x07,0x40,0x10,0x13,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x15,0x0a,0x13,0x03,0x15,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0xed,0x32,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06, -0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0xf0,0xfe,0x97,0xbc,0xc3,0xd7,0xfe,0x5b,0xb0,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xc1,0x02,0x7b,0x73,0x01,0x08,0xd8,0xfe,0xb4,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0xfa,0xfe,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x05,0x23,0x05,0xb2,0x00,0x17,0x00,0x5b,0x40,0x37, -0x82,0x14,0x01,0x8a,0x12,0x01,0x76,0x08,0x01,0x67,0x08,0x01,0x65,0x07,0x01,0x7a,0x05,0x01,0x69,0x05,0x01,0x16,0x7e,0x04,0x17,0x7e,0x02,0x04,0x02,0x04,0x02,0x19,0x0c,0x0a,0x7e,0x0d,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0c,0x0d,0x0d,0x16,0x06,0x91,0x13,0x04,0x16,0x91,0x01,0x03,0x12,0x00,0x3f,0xce,0xed,0x3f,0xed,0x11,0x39,0x2f, -0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x23,0x35,0x21,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x11,0x21,0x05,0x23,0x9c,0xfe,0x89,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71, -0xd5,0x01,0xa8,0x01,0x6b,0xcb,0xcb,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xfc,0xb2,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x4c,0x05,0x9a,0x00,0x16,0x00,0x26,0x00,0x7c,0x40,0x53,0x29,0x25,0x79,0x25,0x02,0x26,0x21,0x76,0x21,0x02,0x26,0x1d,0x76,0x1d,0x02,0x29,0x19,0x79,0x19,0x02, -0x8a,0x0b,0x01,0x8a,0x0a,0x01,0x89,0x06,0x01,0x86,0x02,0x01,0x12,0x7e,0x0c,0x11,0x11,0x00,0x7d,0x17,0x50,0x0c,0x01,0x10,0x17,0x20,0x17,0x50,0x17,0x60,0x17,0x04,0x0c,0x17,0x0c,0x17,0x28,0x1f,0x7d,0x08,0x0e,0x0e,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x08,0x1b,0x91,0x0c,0x13,0x12,0x0d,0x91,0x0f,0x03,0x23,0x91,0x04,0x13,0x00, -0x3f,0xed,0x3f,0xfd,0xc4,0xdd,0x32,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x37,0x36,0x37,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x16,0x17,0x16,0x07,0x34,0x27, -0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x4c,0xbe,0xb3,0xfe,0xfa,0xfe,0xfc,0xb7,0xc0,0xa0,0x99,0xec,0xfd,0xdb,0x04,0xf2,0xfd,0xdb,0xe9,0x9b,0xa1,0xb0,0x87,0x82,0xc0,0xbf,0x82,0x88,0x87,0x82,0xc0,0xbf,0x82,0x88,0x02,0x28,0xfe,0xfa,0xa2,0x98,0xa0,0xa9,0x01,0x04,0xee,0xa0,0x99,0x16,0x90,0x98, -0x98,0x90,0x19,0xa0,0xa5,0xe5,0xc3,0x79,0x73,0x74,0x7a,0xc1,0xc3,0x79,0x73,0x74,0x79,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x03,0xb8,0x05,0xb2,0x00,0x13,0x00,0x51,0x40,0x34,0x96,0x12,0x01,0x72,0x12,0x82,0x12,0x02,0x8a,0x10,0x01,0x79,0x10,0x01,0x7a,0x0f,0x01,0x56,0x06,0x66,0x06,0x02,0x59,0x03,0x69,0x03,0x02,0x00,0x7e,0x02, -0x02,0x15,0x0a,0x08,0x7e,0x0b,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0a,0x0b,0x0b,0x01,0x04,0x91,0x11,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34, -0x37,0x36,0x33,0x20,0x11,0x03,0xb8,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0x23,0x05,0xb2,0x00,0x19,0x00,0x6f,0x40,0x44,0xa7,0x16,0x01,0x84,0x16,0x01,0x71,0x16,0x01,0x06, -0x16,0x01,0x7a,0x14,0x8a,0x14,0x02,0x7a,0x13,0x01,0x66,0x0a,0x01,0x6a,0x07,0x01,0x03,0x18,0x7e,0x06,0x19,0x7e,0x01,0x00,0x06,0x01,0x06,0x01,0x06,0x01,0x1b,0x0e,0x0c,0x7e,0x0f,0x0f,0x11,0x1f,0x11,0x02,0x11,0x0e,0x0f,0x19,0x91,0x01,0x03,0x0f,0x03,0x0f,0x03,0x05,0x08,0x91,0x15,0x04,0x05,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39, -0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x21,0x05,0x23,0x9c, -0xcf,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xfd,0x73,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x12,0x00,0x22,0x00,0x51,0x40,0x18,0x4a,0x21,0x5a,0x21,0x02,0x45, -0x1d,0x55,0x1d,0x02,0x45,0x19,0x55,0x19,0x02,0x5a,0x15,0x01,0x49,0x15,0x01,0x00,0x7e,0x13,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x13,0x13,0x24,0x1b,0x7e,0x0d,0x7e,0x0a,0x08,0x17,0x91,0x0d,0x0f,0x10,0x09,0x91,0x0c,0x03,0x1f,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x01,0x2f,0xce,0xed,0xed,0x12,0x39,0x2f, -0x2b,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x21,0x35,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe7,0x87,0x84,0xfe,0x88,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55, -0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x03,0x0e,0x98,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0xe7,0x05,0x9a,0x00,0x0e,0x00,0x17,0x00,0x6b,0x40,0x45,0x06,0x15,0x86,0x15,0x02,0x9b,0x0a,0x01, -0x89,0x0a,0x01,0x7c,0x0a,0x01,0x6e,0x0a,0x01,0x0a,0x48,0x0e,0x49,0x29,0x0a,0x01,0x1a,0x0a,0x01,0x59,0x07,0x69,0x07,0x02,0x0d,0x03,0x7e,0x0f,0x0e,0x7e,0x02,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x02,0x19,0x13,0x7d,0x0f,0x09,0x1f,0x09,0x02,0x09,0x0e,0x91,0x01,0x03,0x03,0x04,0x10,0x91,0x0c,0x03,0x0f,0x91,0x04,0x12,0x00,0x3f,0xed, -0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x21,0x20,0x27,0x26,0x11,0x10,0x21,0x21,0x11,0x21,0x01,0x11,0x23,0x20,0x11,0x10,0x17,0x16,0x21,0x05,0xe7,0x9c,0xcf,0xfe,0xe8,0xfe, -0xa8,0xd4,0xda,0x02,0xf6,0x01,0x28,0x01,0x6b,0xfd,0xed,0x7c,0xfd,0xb6,0x9f,0x9c,0x01,0x19,0x01,0xc2,0xcb,0xfd,0x73,0xc2,0xc8,0x01,0x55,0x02,0xbb,0xfd,0x8b,0xfd,0x73,0x04,0x6a,0xfd,0xd9,0xfe,0xe9,0x98,0x94,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x05,0x7e,0x02,0x02,0x07,0x03, -0x02,0x91,0x05,0x03,0x01,0x12,0x00,0x3f,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x03,0x08,0xa8,0xfd,0xc0,0x02,0xe8,0x05,0x02,0x98,0x00,0x02,0x00,0x8c,0x00,0x00,0x04,0x7c,0x05,0x9a,0x00,0x11,0x00,0x21,0x00,0x6a,0x40,0x45,0x35,0x0f,0x01,0x35,0x0e,0x01,0x3a,0x06,0x01,0x3a,0x05,0x01, -0x45,0x0f,0x01,0x46,0x0e,0x01,0x4a,0x06,0x01,0x49,0x05,0x01,0x12,0x7e,0x11,0x7e,0x10,0x02,0x01,0x02,0x02,0x23,0x1a,0x7e,0x0b,0x7e,0x08,0x16,0x91,0x64,0x0b,0x01,0x35,0x0b,0x45,0x0b,0x55,0x0b,0x03,0x0b,0x0d,0x0a,0x03,0x1e,0x91,0x49,0x02,0x59,0x02,0x02,0x3a,0x02,0x01,0x02,0x04,0x01,0x12,0x00,0x3f,0xde,0x32,0x5d,0x5d,0xed, -0x3f,0xde,0x32,0x5d,0x5d,0xed,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x7c, -0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x01,0x30,0x77,0x96,0x8c,0xf2,0x02,0xcd,0xfe,0xd0,0x77,0x96,0x8c,0xf2,0xaf,0x67,0x74,0x75,0x6a,0xab,0xaf,0x67,0x74,0x75,0x6a,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x13,0x00,0x23, -0x00,0x61,0x40,0x3f,0x43,0x12,0x53,0x12,0x02,0x4a,0x06,0x01,0x49,0x05,0x59,0x05,0x02,0x5b,0x02,0x01,0x4a,0x02,0x01,0x00,0x7e,0x10,0x14,0x20,0x14,0x30,0x14,0x03,0x14,0x14,0x07,0x25,0x0c,0x7e,0x0a,0x1c,0x7e,0x0e,0x7e,0x0f,0x07,0x01,0x07,0x18,0x91,0x55,0x0e,0x01,0x46,0x0e,0x01,0x0e,0x10,0x10,0x0a,0x08,0x91,0x0d,0x03,0x20, -0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x3f,0x33,0x5d,0x5d,0xed,0x01,0x2f,0x5d,0xed,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x00,0x35,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15, -0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe2,0xfe,0xf0,0xdc,0x9c,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x01,0x20,0xec,0x03,0x0e,0xcb,0x01,0x63,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a, -0x73,0x74,0x66,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8,0x05,0xb0,0x05,0x9a,0x00,0x17,0x00,0x21,0x00,0x7c,0x40,0x53,0x5b,0x0f,0x01,0x3a,0x0f,0x4a,0x0f,0x02,0x3a,0x0e,0x4a,0x0e,0x5a,0x0e,0x03,0x5a,0x0a,0x01,0x49,0x0a,0x01,0x3a,0x0a,0x01,0x49,0x09,0x01,0x36,0x07,0x46,0x07,0x56,0x07,0x03,0x35,0x06,0x45,0x06,0x55,0x06,0x03,0x17, -0x7e,0x01,0x03,0x16,0x7e,0x11,0x00,0x19,0x10,0x19,0x02,0x19,0x19,0x23,0x1c,0x7e,0x0c,0x13,0x13,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x11,0x16,0x91,0x03,0x01,0x19,0x19,0x1e,0x12,0x91,0x15,0x03,0x1e,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xcc,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d, -0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01, -0x63,0xfc,0xf4,0x03,0xb4,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea,0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x02,0x98,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xa4,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x20, -0x95,0x17,0x01,0x94,0x0b,0x01,0x0f,0x0f,0x00,0x7e,0x02,0x02,0x08,0x1b,0x13,0x06,0x7e,0x08,0x13,0x15,0x91,0x06,0x04,0x04,0x08,0x10,0x91,0x0e,0x03,0x01,0x08,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x34,0x23, -0x22,0x07,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x21,0x15,0x21,0x22,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x04,0xa4,0xa8,0xf5,0xb4,0xe2,0xa8,0x6c,0x67,0xb8,0x02,0x14,0xfd,0xfe,0xf5,0xe4,0xc6,0xb7,0x67,0x6b,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x04,0x28,0xb5,0x60,0x5d,0x98,0xe8,0xfe,0xfa,0x7a,0x5e,0x61,0xb5,0x00,0x02,0x00,0x5e, -0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1f,0x00,0x2f,0x00,0xc8,0x40,0x8d,0x59,0x2e,0x01,0x99,0x2d,0x01,0x6a,0x2d,0x01,0x54,0x2b,0x64,0x2b,0x02,0x56,0x2a,0x86,0x2a,0x02,0x86,0x26,0x01,0x67,0x26,0x01,0x56,0x26,0x01,0x64,0x25,0x01,0x56,0x25,0x01,0x6a,0x23,0x01,0x59,0x22,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x76,0x12,0x01,0x27, -0x12,0x01,0x13,0x12,0x01,0x04,0x12,0x01,0x24,0x11,0x94,0x11,0x02,0x07,0x11,0x01,0x29,0x0f,0x99,0x0f,0x02,0x79,0x0e,0x01,0x0a,0x0e,0x1a,0x0e,0x02,0x79,0x0a,0x01,0x1b,0x0a,0x01,0x0a,0x0a,0x01,0x2a,0x09,0x9a,0x09,0x02,0x09,0x09,0x01,0x19,0x7e,0x06,0x1f,0x1f,0x14,0x7d,0x20,0x40,0x06,0x01,0x10,0x20,0x20,0x20,0x30,0x20,0x03, -0x06,0x20,0x06,0x20,0x31,0x28,0x7d,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x24,0x91,0x10,0x04,0x1f,0x1d,0x91,0x00,0x02,0x2c,0x91,0x06,0x08,0x13,0x00,0x3f,0x33,0xed,0xdc,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16, -0x33,0x32,0x37,0x36,0x05,0xaa,0x34,0x3c,0x88,0x5e,0x61,0x02,0x6e,0x85,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0xba,0x23,0x43,0x39,0x32,0x45,0x3c,0x34,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88,0xed,0xfc,0x86,0x7a,0xff,0x17,0x51,0x54,0x7e,0x25,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe, -0xc6,0xfe,0xa1,0xcc,0x22,0x48,0x37,0x4a,0x2c,0x28,0x1f,0x03,0x34,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x0f,0x00,0x45,0x40,0x2a,0x35,0x0c,0x01,0x26,0x0c,0x01,0x96,0x0a,0x01,0x33,0x0a,0x01,0x25,0x0a,0x01,0x59,0x03,0x01,0x4b,0x03,0x01,0x4a, -0x01,0x01,0x0f,0x7e,0x0d,0x0d,0x11,0x09,0x7e,0x07,0x05,0x0e,0x05,0x91,0x08,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x01,0x2f,0xcd,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x21,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x05,0xd5,0xfd, -0xdf,0xfd,0xf6,0xfe,0x88,0x02,0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0x43,0x05,0x9a,0x00,0x16,0x00,0x48,0x40,0x29,0x47,0x10,0x01,0x36,0x10,0x01,0x58,0x06,0x01,0x5a,0x05,0x01,0x14,0x00,0x7e,0x02,0x02,0x18, -0x0c,0x0e,0x7e,0x0a,0x09,0x0f,0x07,0x01,0x07,0x14,0x12,0x91,0x02,0x04,0x04,0x01,0x09,0x91,0x15,0x0c,0x03,0x01,0x12,0x00,0x3f,0x3f,0xc4,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0xce,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x21,0x35, -0x21,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x05,0x43,0xa8,0xbc,0xc3,0xd7,0xfe,0x23,0xfe,0xc8,0x02,0x20,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x94,0x86,0x98,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x05,0x23,0x05,0x9a,0x00,0x19,0x00,0x61,0x40,0x3c, -0x69,0x14,0x79,0x14,0x02,0x66,0x11,0x76,0x11,0x02,0x8a,0x07,0x01,0x96,0x05,0x01,0x80,0x05,0x01,0x05,0x05,0x01,0x19,0x7e,0x01,0x18,0x03,0x7e,0x00,0x15,0x01,0x15,0x15,0x1b,0x0d,0x0f,0x7e,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x19,0x91,0x01,0x03,0x0c,0x03,0x0c,0x03,0x16,0x03,0x13,0x91,0x06,0x13,0x00,0x3f,0xed,0x3f, -0x39,0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd,0xc4,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x15,0x10,0x21,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x11,0x33,0x11,0x21,0x05,0x23,0x9c,0xcf,0xfe,0x58,0xd5, -0x71,0x66,0x34,0x96,0x22,0x36,0x44,0x8a,0x01,0x00,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xd9,0xfe,0x34,0x8a,0x7c,0xc9,0x8e,0x6a,0x46,0x4e,0x64,0x83,0x56,0x6c,0x01,0x48,0x03,0xe0,0xfd,0x8b,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x04,0x05,0x9a,0x00,0x13,0x00,0x4b,0x40,0x2f,0x59,0x0d,0x69,0x0d,0x02,0x66,0x0a,0x01,0x57,0x0a,0x01,0x99, -0x05,0x01,0x8a,0x05,0x01,0x7b,0x05,0x01,0x75,0x02,0x01,0x12,0x00,0x7e,0x11,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x15,0x09,0x7e,0x06,0x11,0x12,0x12,0x08,0x03,0x0b,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07, -0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x04,0x04,0x65,0x72,0xd5,0xfe,0x58,0xa8,0x01,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x01,0xb7,0xc9,0x7c,0x8a,0x01,0xcc,0x03,0xe6,0xfc,0x20,0xfe,0xb8,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a, -0x00,0x0e,0x00,0x15,0x00,0x53,0x40,0x34,0x38,0x15,0x48,0x15,0x02,0x56,0x09,0x01,0x57,0x06,0x01,0x77,0x05,0x87,0x05,0x02,0x65,0x05,0x01,0x53,0x05,0x01,0x0e,0x0e,0x07,0x7d,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x01,0x17,0x13,0x0c,0x7e,0x01,0x0c,0x91,0x14,0x14,0x0d,0x12,0x91,0x02,0x03,0x0d,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f, -0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x23,0x11,0x21,0x03,0x10,0x21,0x23,0x11,0x33,0x20,0x04,0x29,0xfc,0x93,0x01,0x8a,0xdc,0x7e,0x89,0x99,0x8f,0xe0,0xbd,0x02,0xc5,0xb0,0xfe, -0xb0,0xc5,0xb0,0x01,0x65,0x05,0x9a,0x66,0x70,0xd6,0xdb,0x7f,0x76,0xfe,0x7a,0x03,0x4e,0x01,0x1c,0xfd,0xb4,0x00,0x00,0x02,0x00,0x5e,0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0xc8,0x40,0x8d,0x6a,0x2c,0x01,0x59,0x2c,0x01,0x69,0x2b,0x99,0x2b,0x02,0x64,0x29,0x01,0x87,0x28,0x01,0x55,0x28,0x01,0x87,0x24,0x01,0x55, -0x24,0x01,0x63,0x23,0x01,0x56,0x23,0x01,0x6b,0x21,0x01,0x59,0x20,0x01,0x07,0x1c,0x01,0x75,0x18,0x01,0x16,0x18,0x01,0x05,0x18,0x01,0x24,0x17,0x94,0x17,0x02,0x15,0x17,0x01,0x07,0x17,0x01,0x99,0x15,0x01,0x2a,0x15,0x01,0x18,0x15,0x01,0x19,0x14,0x79,0x14,0x02,0x0a,0x14,0x01,0x1a,0x10,0x7a,0x10,0x02,0x0b,0x10,0x01,0x99,0x0f, -0x01,0x2c,0x0f,0x01,0x1a,0x0f,0x01,0x09,0x0f,0x01,0x47,0x1c,0x01,0x1c,0x00,0x7e,0x0c,0x05,0x0a,0x0a,0x1a,0x7d,0x10,0x1e,0x20,0x1e,0x30,0x1e,0x03,0x1e,0x1e,0x2f,0x26,0x7d,0x0f,0x12,0x1f,0x12,0x02,0x12,0x22,0x91,0x16,0x04,0x05,0x91,0x06,0x2a,0x91,0x1c,0x0c,0x0e,0x13,0x00,0x3f,0x33,0x33,0xed,0xde,0xed,0x3f,0xed,0x01,0x2f, -0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xcc,0x33,0xed,0x32,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x14,0x06,0x07,0x06,0x23,0x35,0x16,0x37,0x36,0x35,0x34,0x27,0x06,0x21,0x20,0x27,0x26, -0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x16,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0xaa,0x86,0x6b,0x25,0x4d,0x22,0x27,0x82,0x41,0xb4,0xfe,0xe1,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0x7b,0x7b,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88, -0xed,0xfc,0x86,0x7a,0x1c,0x64,0xa2,0x21,0x0b,0x87,0x03,0x0c,0x28,0x74,0x52,0x2c,0xac,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe,0xc6,0xfe,0xe3,0xbc,0x55,0x02,0x17,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x03,0x00,0x5a,0x00,0x00,0x05,0x4c,0x05,0xb2,0x00,0x12,0x00,0x1b,0x00,0x24, -0x00,0x79,0x40,0x51,0x56,0x24,0x01,0x65,0x23,0x75,0x23,0x02,0x65,0x1f,0x75,0x1f,0x02,0x7b,0x1a,0x01,0x6a,0x1a,0x01,0x59,0x16,0x01,0x6a,0x15,0x7a,0x15,0x02,0x97,0x11,0x01,0x85,0x11,0x01,0x89,0x0d,0x01,0x98,0x09,0x01,0x8b,0x09,0x01,0x86,0x02,0x01,0x13,0x7d,0x10,0x00,0x20,0x00,0x02,0x00,0x04,0x18,0x7e,0x07,0x21,0x7d,0x1f, -0x0b,0x2f,0x0b,0x02,0x0b,0x1c,0x07,0x18,0x1c,0x91,0x07,0x04,0x04,0x06,0x17,0x1d,0x91,0x0f,0x04,0x06,0x12,0x00,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xdd,0x5d,0xed,0x10,0xfd,0xc4,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07, -0x11,0x23,0x11,0x26,0x27,0x26,0x35,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x03,0x34,0x27,0x26,0x27,0x11,0x36,0x37,0x36,0x05,0x11,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x05,0x4c,0xa1,0x9b,0xe9,0xa8,0xec,0x99,0xa0,0xc0,0xb7,0x01,0x04,0x01,0x06,0xb3,0xbe,0xb0,0x6c,0x67,0xa2,0xa3,0x66,0x6c,0xfd,0xe3,0xa3,0x66,0x6c,0x6c,0x67,0x03, -0x72,0xec,0xa5,0xa0,0x19,0xfe,0xd8,0x01,0x28,0x16,0x99,0xa0,0xee,0x01,0x04,0xa9,0xa0,0x98,0xa2,0xfe,0xf3,0xab,0x75,0x6e,0x1a,0xfc,0xaf,0x19,0x6f,0x75,0xfc,0x03,0x51,0x19,0x6f,0x75,0xac,0xaa,0x75,0x6f,0x00,0x01,0x00,0x32,0x00,0x00,0x04,0x62,0x05,0x9a,0x00,0x0f,0x00,0x46,0x40,0x2b,0x00,0x7e,0x20,0x02,0xa0,0x02,0xb0,0x02, -0xc0,0x02,0x04,0x02,0x03,0x0e,0x7e,0x06,0x07,0x7e,0x2f,0x09,0xaf,0x09,0xbf,0x09,0xcf,0x09,0x04,0x09,0x0b,0x06,0x0e,0x09,0x0b,0x91,0x06,0x01,0x03,0x03,0x05,0x0d,0x03,0x05,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xce,0xc4,0xfd,0xce,0xc4,0x01,0x2f,0xc4,0xdc,0x5d,0xed,0x10,0xfd,0xc4,0xdd,0x5d,0xed,0x31,0x30,0x01,0x23,0x35,0x21, -0x11,0x23,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x33,0x11,0x21,0x04,0x62,0x9c,0xfe,0xd8,0xa8,0xfe,0x3c,0x9c,0x01,0x28,0xa8,0x01,0xc4,0x02,0x9d,0xcb,0xfc,0x98,0x03,0x68,0x01,0x63,0xcb,0x01,0x9a,0xfe,0x66,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x00,0x0d,0x00,0x38,0x40,0x21,0x45,0x0c,0x01,0x44,0x0a,0x01,0x3a,0x05, -0x01,0x29,0x05,0x01,0x3a,0x03,0x01,0x29,0x03,0x01,0x00,0x7e,0x02,0x02,0x0f,0x06,0x7e,0x08,0x04,0x91,0x0b,0x04,0x01,0x07,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe, -0x93,0xfe,0x92,0xa8,0x02,0x17,0x02,0x14,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x12,0x00,0x3a,0x40,0x20,0x36,0x0c,0x01,0x68,0x06,0x01,0x4a,0x06,0x5a,0x06,0x02,0x10,0x00,0x7e,0x02,0x02,0x14,0x09,0x7e,0x07,0x02,0x04,0x91,0x10,0x0e,0x0e, -0x00,0x09,0x11,0x03,0x00,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x11,0x33,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0xa2,0xa8,0xbc,0xc3,0xd7,0xfe,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02, -0x7b,0x73,0x01,0x08,0xd8,0x01,0xb2,0xfe,0x52,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x38,0x86,0x1c,0x01,0x36,0x0f,0x01,0x36,0x0b,0x96,0x0b,0x02,0x27,0x0b,0x01,0x49,0x06,0x59,0x06,0x02,0x49,0x02,0x59,0x02,0x02,0x4a,0x01,0x01,0x21,0x7e,0x12,0x1f,0x1f, -0x18,0x23,0x09,0x7e,0x08,0x08,0x1a,0x7e,0x18,0x1f,0x1d,0x91,0x12,0x09,0x14,0x14,0x0d,0x1a,0x20,0x03,0x0d,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xce,0x33,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22, -0x27,0x26,0x35,0x33,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0x85,0x88,0xdf,0xdb,0x8d,0x87,0xa8,0x57,0x61,0x8f,0x90,0x5e,0x56,0xe4,0xc6,0xb7,0x67,0x6b,0xa8,0xf5,0xb4,0xe2,0xa8,0x01,0xb4,0xce,0x7e,0x80,0x8a,0x85,0xc0,0x76,0x63,0x6c, -0x6a,0x61,0x7d,0x01,0x12,0x7a,0x5e,0x61,0xb5,0x01,0xd4,0xfe,0x34,0xe8,0x6e,0x02,0x46,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x12,0x00,0x40,0x40,0x24,0x66,0x11,0x76,0x11,0x02,0x59,0x04,0x01,0x4a,0x04,0x01,0x39,0x04,0x01,0x00,0x7e,0x02,0x02,0x0a,0x14,0x0d,0x08,0x7e,0x0a,0x08,0x06,0x91,0x0d,0x0f,0x0f, -0x0a,0x0c,0x03,0x01,0x0a,0x12,0x00,0x3f,0xc4,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xc5,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xa8,0xbc,0xc3,0xd7, -0xfe,0x01,0xae,0x97,0x59,0x5c,0x70,0xfd,0x76,0x05,0x9a,0xfd,0x85,0x73,0xfe,0xf8,0xd8,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x00,0x05,0xb2,0x00,0x1f,0x00,0x83,0x40,0x57,0x66,0x18,0x01,0x06,0x17,0x16,0x17,0x56,0x17,0x66,0x17,0x04,0x56,0x13,0x66,0x13,0x02,0x66,0x12,0x01,0x08,0x0b,0x18,0x0b,0x02,0x29,0x05,0x01,0x77,0x0a, -0x01,0x99,0x07,0x01,0x79,0x06,0x01,0x0f,0x0f,0x1f,0x7e,0x02,0x10,0x1d,0x01,0x1d,0x1d,0x21,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x1e,0x1e,0x19,0x0f,0x11,0x91,0x96,0x0e,0x01,0x87,0x0e,0x01,0x76,0x0e,0x01,0x0e,0x0c,0x04,0x1d,0x19,0x91,0x69,0x02,0x79,0x02,0x02,0x02,0x04,0x13,0x00,0x12,0x00,0x3f,0x3f,0x33,0x5d,0xed,0x32, -0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36, -0x37,0x11,0x33,0x05,0x00,0xa8,0xa7,0xb9,0xfe,0xc6,0xb4,0xac,0xbf,0xc5,0x01,0x46,0xe0,0x9f,0xae,0xe4,0xf8,0x8d,0x82,0x7b,0x86,0xfe,0x66,0x5f,0x56,0x30,0xa8,0x40,0x58,0xcd,0xc3,0x01,0x42,0x01,0x4e,0xd2,0xd8,0x4c,0xba,0x6e,0xaf,0xa2,0xfe,0xfd,0xfe,0xf8,0x99,0xa6,0x28,0x23,0x34,0x01,0x56,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8, -0x05,0xb0,0x05,0x9a,0x00,0x15,0x00,0x1f,0x00,0x73,0x40,0x4c,0x39,0x1e,0x01,0x39,0x1d,0x01,0x36,0x1b,0x01,0x35,0x19,0x01,0x4b,0x0f,0x5b,0x0f,0x02,0x49,0x0e,0x59,0x0e,0x02,0x59,0x0a,0x01,0x4a,0x0a,0x01,0x5a,0x09,0x01,0x56,0x07,0x01,0x55,0x06,0x01,0x44,0x06,0x01,0x15,0x7e,0x01,0x03,0x14,0x7e,0x11,0x00,0x17,0x10,0x17,0x02, -0x17,0x17,0x21,0x1a,0x7e,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x14,0x11,0x91,0x17,0x01,0x03,0x03,0x12,0x03,0x1c,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xce,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35, -0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01,0x63,0xa8,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea, -0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x9a,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x5f,0x40,0x3c,0x67,0x19,0x77,0x19,0x02,0x68,0x14,0x78,0x14,0x02,0x85,0x12,0x95,0x12,0x02,0x86,0x11,0x96,0x11,0x02,0x89,0x02,0x99,0x02, -0x02,0x9a,0x01,0x01,0x89,0x01,0x01,0x00,0x7d,0x13,0x13,0x0d,0x1b,0x07,0x7e,0x09,0x17,0x0b,0x06,0x7e,0x0d,0x08,0x0a,0x91,0x07,0x18,0x91,0x05,0x05,0x0d,0x16,0x91,0x0e,0x03,0x0d,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0xde,0xfd,0xcd,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x21,0x15,0x21,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x07,0x34,0x21,0x23,0x11,0x33,0x20,0x04,0x38,0x81,0x78,0xcb,0xfe,0xf0,0x01,0x6b,0x9c,0xcf,0xa8,0x01,0xaa,0xd5,0x79,0x84,0xb1,0xfe,0xc9,0xec,0xec,0x01,0x37,0x04,0x2f,0xb2,0x60,0x59,0x99,0xfe,0x9d,0xcb, -0xfe,0x6d,0x05,0x9a,0x56,0x5e,0xb7,0xd3,0xfe,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x31,0x00,0xa6,0x40,0x68,0x66,0x31,0x76,0x31,0x02,0x76,0x29,0x01,0x7a,0x27,0x01,0x95,0x20,0x01,0x66,0x20,0x86,0x20,0x02,0x9a,0x1c,0x01,0x8b,0x1c,0x01,0x6c,0x1c,0x01,0x89,0x1a,0x01,0x7c,0x12,0x01,0x56,0x0f,0x01,0x89, -0x07,0x01,0x7a,0x07,0x01,0x69,0x07,0x01,0x66,0x02,0x01,0x66,0x01,0x01,0x23,0x21,0x7d,0x24,0x26,0x26,0x13,0x2e,0x2a,0x00,0x7d,0x17,0x1b,0x20,0x13,0x50,0x13,0x02,0x13,0x13,0x33,0x2a,0x7d,0x1b,0x0b,0x0d,0x7d,0x0a,0x08,0x08,0x1b,0x23,0x23,0x2e,0x28,0x2e,0x1d,0x11,0x0a,0x0a,0x17,0x11,0x17,0x04,0x28,0x91,0x1d,0x04,0x11,0x91, -0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14, -0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x34,0x27,0x26,0x27,0x26,0x27,0x26,0x35,0x10,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x04,0xb5,0xab,0x8c,0xec,0xe8,0x93,0xb3,0x0f,0xb4,0x12,0x81,0x62,0x9c,0x01,0x71, -0x7a,0x49,0xa5,0xf5,0x70,0xaf,0x01,0xfa,0xcb,0x84,0xa1,0x0a,0xae,0x08,0xfe,0xbe,0xfe,0xb8,0x80,0x48,0xaa,0xee,0x73,0xa9,0x01,0x85,0xdd,0x6a,0x56,0x57,0x6b,0xd9,0x43,0x40,0x43,0x42,0x8e,0x42,0x32,0x01,0x06,0x85,0x44,0x28,0x1f,0x2e,0x43,0x68,0xcc,0x01,0x78,0x4e,0x5f,0xbd,0x25,0x4b,0x45,0x2b,0xd2,0xe0,0x85,0x42,0x26,0x1e, -0x2b,0x48,0x6b,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x14,0x00,0x46,0x40,0x2a,0x39,0x10,0x01,0x66,0x02,0x76,0x02,0x02,0x45,0x02,0x55,0x02,0x02,0x47,0x01,0x57,0x01,0x02,0x07,0x07,0x14,0x7e,0x12,0x12,0x09,0x16,0x0c,0x05,0x7e,0x09,0x0e,0x91,0x03,0x03,0x06,0x13,0x0b,0x03,0x06,0x91,0x09,0x12,0x00,0x3f, -0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0xc5,0xfe,0xd7,0xc3,0xbc,0x02,0xf2,0xfc,0x66,0xa8,0xbd,0xb2,0x96,0x55,0x52,0xa8,0x03,0xe8, -0xd8,0xfe,0xf8,0x73,0xfe,0x1d,0x98,0x05,0x9a,0xfd,0x76,0x70,0x5c,0x59,0x97,0x01,0xae,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x05,0x1d,0x05,0x9a,0x00,0x0a,0x00,0x0d,0x00,0x6b,0x40,0x41,0x0d,0x0b,0x04,0x0c,0x00,0x0a,0x09,0x03,0x0c,0x00,0x05,0x0b,0x04,0x01,0x06,0x02,0x09,0x03,0x01,0x06,0x0b,0x03,0x09,0x03,0x7e,0x04,0x0b,0x14, -0x04,0x04,0x0b,0x09,0x09,0x0c,0x01,0x06,0x01,0x7e,0x00,0x0c,0x14,0x00,0x0c,0x00,0x00,0x04,0x0f,0x07,0x06,0x06,0x0b,0x04,0x01,0x04,0x0c,0x06,0x0b,0x91,0x09,0x03,0x01,0x00,0x03,0x04,0x12,0x00,0x3f,0xc4,0xdc,0xc4,0x3f,0xfd,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18, -0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x21,0x01,0x13,0x21,0x13,0x05,0x1d,0xce,0xfe,0xa3,0xfe,0x0e,0xce,0x02,0x59,0xfe,0xad,0xfe,0xfa,0x04,0xeb,0xfe,0x3c,0x86,0xfe,0x27,0xec,0xcc,0x01,0xdb,0xfd,0x59,0x03,0x33,0x01,0xcf,0x98,0xfd,0x99,0x01,0xcf,0xfe, -0xbd,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x35,0x29,0x0e,0x39,0x0e,0x49,0x0e,0x03,0x96,0x0c,0x01,0x44,0x0c,0x01,0x35,0x0c,0x01,0x26,0x0c,0x01,0x59,0x03,0x01,0x11,0x7e,0x10,0x0f,0x01,0x0f,0x0f,0x04,0x13,0x09,0x7e,0x07,0x0b,0x7e,0x0f,0x04,0x01,0x04,0x11,0x11,0x0a,0x0d,0x07,0x05, -0x91,0x0a,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0xd5,0xfd,0xdf,0xfd,0xf6,0xdc,0x9c,0x02, -0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0xcb,0x01,0x63,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x7f,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x34,0x97,0x0f,0xa7,0x0f,0x02,0x86,0x0f,0x01,0x7a,0x02,0x01,0x00,0x10,0x7e,0x01,0x01,0x09,0x13,0x0c,0x07,0x7e,0x09,0x75,0x0c, -0x01,0x56,0x0c,0x66,0x0c,0x02,0x44,0x0c,0x01,0x23,0x0c,0x33,0x0c,0x02,0x0c,0x0e,0x91,0x03,0x10,0x91,0x01,0x03,0x03,0x08,0x0b,0x03,0x08,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xde,0xed,0x10,0xed,0x32,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x10,0x23,0x22, -0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x13,0x33,0x04,0xf0,0xfe,0x95,0xf0,0x94,0x4c,0x44,0xa8,0xa8,0x6f,0xb5,0x01,0x49,0x41,0xd1,0x02,0x44,0x01,0x4a,0x78,0x6b,0xb1,0xfe,0x06,0x05,0x9a,0xfe,0x07,0x77,0xfe,0xc4,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0x9a,0x00,0x15,0x00,0x64,0x40,0x42,0x27,0x15, -0x01,0x86,0x14,0x01,0x37,0x14,0x01,0x25,0x14,0x01,0x6b,0x0d,0x7b,0x0d,0x02,0x59,0x0d,0x01,0x99,0x09,0x01,0x1b,0x09,0x5b,0x09,0x02,0x08,0x09,0x01,0x65,0x02,0x75,0x02,0x02,0x00,0x7d,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0b,0x17,0x12,0x7e,0x0f,0x06,0x06,0x0f,0x0f,0x91,0x13,0x10,0x03,0x06,0x08,0x91,0x9a,0x05,0x01,0x05,0x03,0x13, -0x00,0x3f,0x33,0x5d,0xed,0x32,0x3f,0xdc,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x00,0x11,0x34,0x00,0x23,0x21,0x11,0x33,0x15,0x33,0x20,0x00,0x04,0x8c,0xfe,0x75,0xfe,0xaf,0xcc,0x86,0x9a,0xba, -0x01,0x0a,0x01,0x20,0xfe,0xf1,0xf9,0xfe,0xf4,0x9c,0x86,0x01,0x3c,0x01,0x66,0x02,0xa7,0xfe,0xba,0xfe,0x87,0x3b,0xb3,0x56,0x01,0x1d,0x01,0x00,0xec,0x01,0x00,0x01,0x11,0x79,0xfe,0xb4,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x14,0x00,0x3f,0x40,0x24,0x36,0x0e,0x46,0x0e,0x02,0x5b,0x05,0x01,0x12,0x00,0x7e,0x02, -0x02,0x16,0x0a,0x0c,0x7e,0x09,0x07,0x40,0x09,0x0d,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x01,0x0a,0x13,0x03,0x01,0x12,0x00,0x3f,0x3f,0xce,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17, -0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd7,0xfe,0x33,0xb0,0x3b,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x72,0x88,0x92,0x64,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x01,0x00,0x96,0x00,0x00,0x04,0xc4,0x05,0x9a,0x00,0x10,0x00,0x41,0x40,0x26,0x96,0x0b,0x01,0x87,0x0b,0x01,0x49,0x06,0x01,0x3a, -0x06,0x01,0x3a,0x01,0x4a,0x01,0x02,0x09,0x7e,0x07,0x04,0x0f,0x7e,0x00,0x02,0x7e,0x04,0x05,0x02,0x91,0x0c,0x0c,0x04,0x0f,0x09,0x03,0x04,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x32,0x01,0x2f,0xfd,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11, -0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xc4,0xfe,0x3d,0xa8,0xfe,0x3d,0xa8,0x01,0x6f,0x01,0x6f,0xa8,0x04,0x48,0xfd,0xd4,0x2c,0xfe,0x10,0x01,0xf0,0x2e,0x02,0x13,0x01,0x69,0xfe,0xa2,0xfe,0x47,0x01,0xaa,0x01,0x6d,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x17,0x00,0x22,0x00,0x2e,0x00,0x6b,0x40,0x40,0x89,0x2d, -0x01,0x85,0x27,0x01,0x77,0x27,0x01,0x95,0x17,0x01,0x9a,0x11,0x01,0x94,0x0a,0x01,0x94,0x01,0x01,0x1e,0x07,0x03,0x7e,0x24,0x14,0x06,0x06,0x00,0x7d,0x18,0x14,0x18,0x14,0x18,0x30,0x29,0x7e,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x07,0x24,0x91,0x04,0x1e,0x91,0x02,0x14,0x04,0x04,0x2b,0x1d,0x91,0x15,0x03,0x2b,0x91,0x0b,0x13,0x00,0x3f, -0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x10,0xc4,0xfd,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x11,0x21,0x20,0x03, -0x34,0x27,0x26,0x23,0x23,0x11,0x33,0x32,0x37,0x36,0x01,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x06,0x3a,0xfe,0x3c,0xfe,0xf0,0x02,0x23,0xfd,0xdd,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0x01,0xaa,0x01,0xd2,0xb1,0x5b,0x45,0x97,0xec,0xec,0xa4,0x45,0x4e,0xfd,0x35,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38, -0x04,0x61,0xfe,0xc7,0x82,0x98,0xa8,0xb5,0xc9,0x57,0x5c,0xa8,0xab,0x60,0x58,0x02,0xf4,0xfe,0xc7,0x60,0x25,0x1c,0xfe,0xbe,0x21,0x24,0xfd,0x61,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x00,0x01,0x00,0x60,0xff,0xea,0x03,0x98,0x04,0x00,0x00,0x2d,0x00,0x58,0x40,0x36,0x99,0x16,0x01,0x88,0x16,0x01,0x95,0x29,0x01,0x76,0x29,0x86, -0x29,0x02,0x27,0x29,0x37,0x29,0x02,0x29,0x00,0x24,0x84,0x23,0x00,0x84,0x19,0x6a,0x1e,0x01,0x1e,0x19,0x10,0x19,0x90,0x19,0x02,0x23,0x19,0x23,0x19,0x2f,0x0f,0x84,0x0a,0x0d,0x0c,0x0c,0x24,0x0f,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x10, -0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x03,0x98,0x44,0x72,0x96,0x51,0x51,0x95,0x72,0x43,0x28,0x9c,0x1e,0x27,0x43,0x59,0x32,0x32,0x5a, -0x43,0x28,0x16,0x28,0x39,0x23,0x36,0x41,0x26,0x0f,0x03,0xa4,0x01,0x0e,0x20,0x35,0x28,0x2c,0x47,0x31,0x1b,0x01,0x4a,0x57,0x84,0x58,0x2d,0x2d,0x58,0x84,0x57,0x5f,0x50,0x37,0x38,0x44,0x36,0x4f,0x34,0x19,0x19,0x34,0x4f,0x36,0x2f,0x49,0x42,0x3f,0x25,0x38,0x57,0x59,0x69,0x4b,0x37,0x54,0x48,0x45,0x28,0x2c,0x52,0x57,0x63,0x00, -0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xec,0x00,0x16,0x00,0x26,0x00,0x84,0x40,0x59,0x96,0x21,0x01,0x96,0x1d,0x01,0x53,0x15,0x01,0x44,0x15,0x01,0x53,0x14,0x01,0x42,0x14,0x01,0x09,0x0a,0x01,0x5a,0x06,0x01,0x4b,0x06,0x01,0x59,0x05,0x01,0x56,0x03,0x01,0x56,0x02,0x01,0x45,0x02,0x01,0x17,0x83,0x40,0x00,0x50,0x00,0x02, -0x00,0x12,0x84,0x0c,0x10,0x84,0x0e,0x0c,0x1f,0x83,0x0f,0x08,0x3f,0x08,0x02,0x08,0x4f,0x0c,0x01,0x0c,0x0e,0x95,0x11,0x11,0x0f,0x1b,0x95,0x0c,0x00,0x13,0x10,0x13,0x20,0x13,0x03,0x13,0x10,0x0f,0x00,0x23,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x5d,0x33,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xdd,0x5d,0xed,0x10,0xde,0xed, -0x10,0xfd,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x10,0x37,0x36,0x37,0x35,0x21,0x11,0x33,0x15,0x21,0x11,0x16,0x17,0x16,0x03,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x50,0x85,0x8b,0xee, -0xe7,0x87,0x84,0x8d,0x71,0xb2,0xfe,0xb8,0xa4,0x01,0x48,0xb1,0x6b,0x80,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x01,0x02,0x91,0x74,0x17,0xc9,0x01,0x11,0x79,0xfe,0xa1,0x14,0x75,0x8c,0xfe,0xff,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02, -0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x8d,0x40,0x5b,0x49,0x42,0x59,0x42,0x02,0x59,0x3e,0x01,0x4a,0x3e,0x01,0x55,0x3b,0x01,0x46,0x3b,0x01,0x6a,0x23,0x01,0x76,0x1a,0x01,0x65,0x1a,0x01,0x07,0x1a,0x17,0x1a,0x02,0x48,0x0e,0x58,0x0e,0x02,0x19,0x0e,0x29,0x0e,0x39,0x0e,0x03,0x19,0x16,0x83,0x2e,0x2b, -0x2e,0x1c,0x83,0x40,0x30,0x40,0x01,0x2e,0x40,0x2e,0x40,0x26,0x44,0x08,0x05,0x83,0x09,0x0c,0x0c,0x38,0x83,0x0f,0x26,0x1f,0x26,0x02,0x26,0x08,0x09,0x33,0x95,0x19,0x2b,0x2b,0x00,0x3d,0x95,0x21,0x1c,0x00,0x95,0x11,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32, -0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x13,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xc6,0x2a,0x46,0x32,0x1c,0x06,0x0e,0xa6,0x10,0x06,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x85,0xc2,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81, -0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0x03,0x8e,0x1f,0x35,0x45,0x27,0x1b,0x2f,0x39,0x1d,0x46,0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0xfd,0xfa,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e, -0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x06,0xa0,0x04,0x18,0x00,0x3e,0x00,0x52,0x01,0x00,0x40,0xa8,0x97,0x11,0x01,0x95,0x10,0x01,0x57,0x50,0x01,0x55,0x4b,0x01,0x58,0x42,0x01,0x65,0x3d,0x01,0x65,0x3c,0x01,0x55,0x37,0x01,0x56,0x34,0x01,0x47,0x34,0x01,0x36,0x34,0x01,0x46,0x33,0x56,0x33,0x02,0x37,0x33, -0x01,0x39,0x2d,0x49,0x2d,0x59,0x2d,0x03,0x29,0x11,0x01,0x28,0x10,0x01,0x69,0x07,0x01,0x69,0x03,0x01,0x68,0x02,0x01,0x49,0x83,0x0a,0x38,0x9a,0x0c,0x01,0x89,0x0c,0x01,0x68,0x0c,0x78,0x0c,0x02,0x0c,0x0a,0x9d,0x2c,0x01,0x8f,0x2c,0x01,0x2c,0x31,0x92,0x1a,0x01,0x70,0x1a,0x01,0x1a,0x13,0x9d,0x20,0x01,0x7a,0x20,0x8a,0x20,0x02, -0x20,0x1f,0x1f,0x00,0x83,0x3f,0x0a,0x3f,0x0a,0x3f,0x54,0x13,0x83,0x31,0x29,0x29,0x31,0x4e,0x95,0x05,0x05,0x2c,0x44,0x95,0x3a,0x0c,0x0e,0x95,0x56,0x38,0x01,0x25,0x38,0x01,0x14,0x38,0x01,0x05,0x38,0x01,0x38,0x36,0x36,0x3a,0x10,0x26,0x1a,0x01,0x1a,0x20,0x2c,0x95,0x25,0x17,0x29,0x01,0x29,0x95,0x28,0x28,0x25,0x1f,0x20,0x1c, -0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x5d,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x11,0x33,0x5d,0x5d,0x5d,0x33,0x10,0xed,0x31, -0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, -0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0xa0,0x3c,0x74,0xa7,0x6b,0x6b,0xad,0x7b,0x43,0x46,0x6a,0x74,0x4d,0x7a,0x54,0x2d,0x2c,0x52,0x73,0x90,0xa7,0x5c,0x5d,0x96,0x7b,0x66,0x2d,0x68,0x64,0xc7,0xd4,0xe5,0x82,0x6c,0xc8,0x4b,0x4e,0xca,0x6b,0x54, -0x83,0x5c,0x30,0x45,0x81,0xbb,0x75,0xb7,0x83,0x7a,0xb4,0x6b,0xa7,0x74,0x3c,0xa8,0x21,0x45,0x6a,0x4a,0x4a,0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x6a,0x45,0x21,0x02,0x2e,0x6a,0xb3,0x82,0x49,0x4a,0x83,0xb3,0x6a,0x9e,0x74,0x4c,0x41,0x70,0x94,0x53,0x61,0x98,0x78,0x5d,0x4c,0x3e,0x1d,0x1d,0x38,0x39,0x39,0x1f,0x7d,0x3f,0x5e, -0x3f,0x20,0x3f,0x3f,0xa8,0x31,0x31,0x2e,0x77,0x91,0xaa,0x62,0x7b,0xcd,0x95,0x53,0x64,0x64,0x4a,0x83,0xb4,0x69,0x46,0x80,0x61,0x39,0x39,0x60,0x7f,0x46,0x47,0x7f,0x61,0x39,0x38,0x60,0x7f,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2d,0x00,0x6b,0x40,0x45,0x07,0x2b,0x17,0x2b,0x02,0x96,0x20,0x01,0x76,0x1f, -0x86,0x1f,0x96,0x1f,0x03,0x9c,0x1c,0x01,0x79,0x1c,0x89,0x1c,0x02,0x6a,0x16,0x01,0x59,0x16,0x01,0x75,0x12,0x01,0x57,0x12,0x67,0x12,0x02,0x77,0x11,0x01,0x2d,0x84,0x19,0x19,0x0a,0x2f,0x22,0x84,0x23,0x23,0x0d,0x0f,0x84,0x0c,0x0a,0x0d,0x0c,0x22,0x0c,0x22,0x14,0x1d,0x95,0x28,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed, -0x11,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e, -0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x80,0x71,0x32,0x53,0x3c,0x22,0xa6,0x3e,0x6b,0x8f,0x51,0x50,0x92,0x70,0x43,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d,0x6d,0x45, -0x02,0xc2,0x79,0x83,0x19,0x34,0x51,0x37,0x55,0x83,0x5a,0x2e,0x2b,0x57,0x85,0x59,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x43,0x00,0x9b,0x40,0x61,0x87,0x3d,0x01,0x76,0x3d,0x01,0x76,0x2d,0x86,0x2d,0x96,0x2d,0x03,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x5b,0x1c,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66, -0x12,0x02,0x75,0x11,0x01,0x3f,0x3e,0x1f,0x3b,0x83,0x26,0x26,0x19,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x45,0x30,0x84,0x31,0x40,0x12,0x18,0x48,0x31,0x31,0x0d,0x0f,0x84,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x3f,0x3e,0x1e,0x31,0x31,0x2b,0x20,0x95,0x1e,0x0c,0x1e,0x0c,0x1e,0x14,0x2b,0x95,0x36,0x10,0x14,0x95,0x05, -0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b, -0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x32,0x56,0x40,0x25,0xa6,0x41,0x6f,0x92,0x51,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54, -0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x1b,0x35,0x50,0x35,0x5a,0x84,0x57,0x2b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x03,0x00,0x3c,0xff,0xe8,0x05,0xcc,0x06,0x02,0x00,0x1a,0x00,0x2a,0x00,0x36,0x00,0x6e,0x40,0x44,0x48,0x36,0x58,0x36,0x02,0x46,0x33,0x56,0x33,0x02,0x47,0x2f,0x57,0x2f, -0x02,0x65,0x19,0x01,0x66,0x02,0x01,0x00,0x83,0x10,0x2b,0x30,0x2b,0x02,0x2b,0x2b,0x08,0x38,0x0f,0x84,0x23,0x31,0x83,0x08,0x1b,0x1b,0x15,0x84,0x0f,0x08,0x01,0x08,0x09,0x0b,0x95,0x27,0x2d,0x95,0x17,0x15,0x17,0x27,0x17,0x27,0x17,0x35,0x1f,0x95,0x12,0x01,0x35,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f, -0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x10,0xed,0xdc,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x21,0x22,0x27,0x26,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x11,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07, -0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x01,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x05,0xcc,0x6c,0x76,0xfe,0xf8,0xe5,0x80,0x79,0x31,0x64,0x91,0x52,0x50,0x9f,0x94,0x01,0x3d,0x88,0xc6,0xea,0x7a,0x6e,0xfc,0x38,0x24,0x28,0x44,0x44,0x28,0x24,0x24,0x28,0x43,0x43,0x29,0x25,0x03,0x20,0xfe,0xca,0xa8,0x53, -0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xf0,0x81,0x97,0x8f,0x88,0xe1,0x01,0xd3,0x2c,0x57,0x54,0x91,0x94,0xab,0xfe,0xc9,0xfe,0x9a,0x77,0x8d,0x80,0x01,0xf6,0x47,0x32,0x39,0x39,0x32,0x47,0x45,0x33,0x38,0x38,0x33,0xfd,0x6a,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0xc1,0x04,0x18,0x00,0x2a, -0x00,0x3e,0x00,0xca,0x40,0x8b,0x39,0x3c,0x01,0x36,0x38,0x01,0x37,0x32,0x01,0x38,0x2e,0x01,0x47,0x28,0x57,0x28,0x02,0x57,0x23,0x01,0x45,0x23,0x01,0x57,0x22,0x01,0x5a,0x1e,0x01,0x49,0x1e,0x01,0x48,0x1d,0x58,0x1d,0x02,0x58,0x19,0x01,0x49,0x19,0x01,0x4a,0x18,0x5a,0x18,0x02,0x45,0x14,0x55,0x14,0x02,0x47,0x13,0x57,0x13,0x02, -0x46,0x0f,0x01,0x39,0x0a,0x99,0x0a,0x02,0x2a,0x0a,0x01,0x99,0x09,0x01,0x68,0x05,0x98,0x05,0x02,0x94,0x03,0x01,0x76,0x02,0x86,0x02,0x02,0x03,0x04,0x04,0x07,0x19,0x23,0x01,0x23,0x37,0x0f,0x01,0x0f,0x11,0x83,0x2b,0x00,0x83,0x07,0x10,0x07,0x01,0x2b,0x07,0x2b,0x07,0x40,0x35,0x83,0x1b,0x30,0x95,0x20,0x20,0x0f,0x0c,0x95,0x24, -0x23,0x34,0x23,0x02,0x15,0x23,0x01,0x23,0x26,0x10,0x04,0x03,0x03,0x3a,0x95,0x16,0x16,0x00,0x3f,0xed,0x33,0x2f,0x33,0x3f,0x33,0x5d,0x5d,0xed,0x32,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x32,0x5d,0x32,0x5d,0x11,0x39,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x05,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, -0x33,0x32,0x3e,0x02,0x06,0xc1,0x7f,0x76,0x75,0x5d,0x65,0x2c,0x56,0x7e,0x52,0x3f,0x64,0x2d,0x4f,0x43,0x81,0xbc,0x79,0x74,0xb7,0x7f,0x43,0x44,0x83,0xc1,0x7d,0x5e,0x94,0x3c,0x43,0x98,0x5d,0x76,0xbb,0x81,0x44,0xfc,0xdd,0x23,0x4d,0x7c,0x59,0x58,0x7f,0x53,0x27,0x29,0x54,0x7e,0x56,0x59,0x7c,0x4d,0x23,0x01,0xe8,0xa5,0xfe,0x5d, -0x73,0x47,0xcc,0x88,0x4d,0x93,0x72,0x46,0x22,0x23,0x80,0xc5,0x77,0xc6,0x8f,0x50,0x4e,0x8b,0xc1,0x72,0x7b,0xca,0x90,0x4f,0x2e,0x30,0x30,0x2e,0x57,0x97,0xcd,0x5f,0x54,0x92,0x6c,0x3e,0x40,0x6d,0x93,0x54,0x52,0x8f,0x6a,0x3d,0x3d,0x6a,0x91,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x81,0x04,0x18,0x00,0x19,0x00,0x89,0x40,0x5a, -0x45,0x18,0x01,0x4a,0x14,0x01,0x96,0x0b,0x01,0x99,0x07,0x01,0x28,0x07,0x38,0x07,0x02,0x99,0x10,0x01,0x88,0x10,0x01,0x79,0x10,0x01,0x10,0x12,0x0f,0x96,0x02,0x01,0x87,0x02,0x01,0x76,0x02,0x01,0x02,0x03,0x00,0x67,0x0f,0x01,0x01,0x0f,0x01,0x68,0x03,0x01,0x0e,0x03,0x01,0x0f,0x03,0x0f,0x03,0x0d,0x00,0x83,0x20,0x05,0x30,0x05, -0xa0,0x05,0x03,0x05,0x05,0x1b,0x0d,0x83,0x0f,0x12,0x1f,0x12,0xaf,0x12,0x03,0x12,0x09,0x95,0x16,0x10,0x03,0x02,0x02,0x0f,0x10,0x16,0x00,0x3f,0x33,0x33,0x2f,0x33,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d, -0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x27,0x36,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x10,0x17,0x07,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x04,0x81,0xeb,0x75,0xb8,0x5e,0x65,0xa8,0xa8,0x63,0x5b,0xb8,0x75,0xeb,0x8b,0x90,0xf7,0xf7,0x8e,0x8a,0x01,0xe8,0xfe,0xb8,0xb8,0x73,0x8d,0x01,0x0e,0xab,0x72, -0x7b,0x7b,0x71,0xac,0xfe,0xf2,0x8d,0x73,0xb8,0x01,0x48,0xfa,0x98,0x9e,0x9e,0x98,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x39,0x00,0x72,0x40,0x44,0x86,0x33,0x01,0x77,0x33,0x01,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x6b,0x16,0x01,0x59,0x16,0x01,0x74,0x12,0x01,0x67,0x12,0x01,0x56,0x12,0x01,0x34,0x35,0x31,0x1f, -0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x3b,0x31,0x83,0x2b,0x26,0x0d,0x0f,0x84,0x0c,0x0a,0x35,0x34,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x14,0x2b,0x95,0x2c,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x39,0x01,0x2f,0x33,0xed,0x32,0x2f,0xce,0xed,0x11,0x12,0x39,0x2f,0xed, -0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x35,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03, -0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26, -0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x8b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x08,0x06,0x04,0x18,0x00,0x5f,0x01,0x72,0x40,0xf7,0x77,0x5e,0x01,0x86,0x5d,0x01,0x75,0x5d,0x01,0x89,0x58,0x01,0x77,0x53,0x01,0x89,0x50,0x01, -0x78,0x50,0x01,0x99,0x4f,0x01,0x97,0x4b,0x01,0x86,0x4b,0x01,0x99,0x47,0x01,0x88,0x47,0x01,0x79,0x47,0x01,0x78,0x41,0x01,0x66,0x2d,0x01,0x5a,0x29,0x6a,0x29,0x02,0x66,0x1f,0x01,0x64,0x1e,0x01,0x56,0x1e,0x01,0x5a,0x1a,0x6a,0x1a,0x02,0x6a,0x19,0x01,0x97,0x11,0x01,0x56,0x0f,0x66,0x0f,0x02,0x69,0x0b,0x01,0x99,0x07,0x01,0x88, -0x07,0x01,0x69,0x07,0x01,0x44,0x59,0x01,0x45,0x53,0x01,0x45,0x50,0x01,0x45,0x4c,0x01,0x47,0x4b,0x01,0x46,0x10,0x01,0x47,0x0f,0x01,0x4e,0x23,0x84,0x24,0x56,0x15,0x94,0x05,0x01,0x85,0x05,0x01,0x76,0x05,0x01,0x05,0x06,0x06,0x08,0x14,0x84,0x15,0x7f,0x3f,0x8f,0x3f,0x9f,0x3f,0x03,0x5c,0x3f,0x01,0x4b,0x3f,0x01,0x3a,0x3f,0x01, -0x2d,0x3f,0x01,0x3f,0x44,0x9b,0x38,0x01,0x8a,0x38,0x01,0x7b,0x38,0x01,0x6c,0x38,0x01,0x5a,0x38,0x01,0x38,0x93,0x35,0x01,0x85,0x35,0x01,0x62,0x35,0x01,0x35,0x37,0x37,0x30,0x00,0x83,0x08,0x24,0x15,0x08,0x08,0x15,0x24,0x03,0x61,0x30,0x83,0x44,0x3d,0x3d,0x44,0x0d,0x95,0x5b,0x5b,0x51,0x2b,0x95,0x49,0x49,0x70,0x4e,0x01,0x44, -0x4e,0x01,0x70,0x56,0x01,0x44,0x56,0x01,0x4e,0x56,0x23,0x51,0x14,0x14,0x23,0x23,0x05,0x1c,0x95,0x51,0x10,0x35,0x38,0x3f,0x95,0x3a,0x3d,0x95,0x3c,0x3c,0x3a,0x37,0x38,0x1c,0x06,0x05,0x16,0x00,0x3f,0x33,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x2f,0x11,0x12,0x39,0x39,0x5d,0x5d,0x5d, -0x5d,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x11,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15, -0x14,0x1e,0x02,0x17,0x04,0x17,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x08,0x06,0x1c,0x3a,0x59,0x3c,0x75,0xb8,0x1f,0x36,0x4a,0x2b,0x2b,0x42,0x30,0x20,0x14,0x08,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x29, -0x3f,0x2e,0x1e,0x13,0x08,0xa4,0x08,0x14,0x21,0x30,0x41,0x2b,0x2b,0x4a,0x36,0x1f,0x56,0x9f,0xde,0x89,0x01,0x91,0xb6,0x68,0xfe,0x6f,0xfd,0xf9,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x29,0x59,0x8d,0x63,0x2f,0x5a,0x4f,0x3f,0x15,0x2a,0x99,0x5d,0x2e,0x59,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x5a,0x2f,0x55,0x89,0x60,0x34,0x02,0x26, -0x4e,0xa3,0x99,0x85,0x2f,0x73,0x8d,0x01,0x3e,0x5a,0x87,0x5a,0x2d,0x2b,0x46,0x59,0x5d,0x59,0x22,0x22,0x58,0x5d,0x5a,0x46,0x2b,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x2d,0x5a,0x87,0x5a,0x91,0xd1,0x98,0x6c,0x2b,0x80,0x7a,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x5b,0xb2,0x8d,0x58,0x1b,0x33, -0x4a,0x2f,0x5f,0x68,0x1b,0x33,0x4a,0x2f,0x2f,0x4a,0x33,0x1b,0x3e,0x7d,0xbb,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x25,0x00,0x33,0x00,0x72,0x40,0x4a,0x59,0x31,0x01,0x56,0x2e,0x01,0x59,0x29,0x01,0x99,0x1e,0x01,0x99,0x1d,0x01,0x76,0x18,0x01,0x67,0x17,0x01,0x6a,0x14,0x7a,0x14,0x02,0x69,0x0d,0x01,0x69, -0x0c,0x01,0x26,0x25,0x83,0x30,0x11,0x40,0x11,0x02,0x11,0x11,0x0a,0x35,0x1a,0x84,0x1b,0x1b,0x2d,0x83,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x2b,0x95,0x4f,0x1b,0x01,0x1b,0x11,0x0f,0x0f,0x2f,0x15,0x95,0x20,0x01,0x2f,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xce,0x5d,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11, -0x12,0x39,0x2f,0x5d,0xed,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0x34,0x2e,0x02,0x23,0x20,0x11,0x10,0x21,0x32,0x3e,0x02,0x04,0x28, -0x3f,0x7a,0xb2,0x73,0x75,0xb7,0x7d,0x41,0x3b,0x75,0xae,0x74,0xc5,0x89,0x8d,0x87,0x31,0x56,0x41,0x25,0xa6,0x41,0x6f,0x91,0x50,0x66,0xa5,0x74,0x3f,0xa8,0x26,0x4e,0x7a,0x54,0xfe,0xca,0x01,0x36,0x52,0x79,0x50,0x27,0x01,0xe0,0x70,0xb9,0x85,0x4a,0x4c,0x8a,0xbf,0x73,0x71,0xb6,0x80,0x45,0x77,0xec,0x8a,0x9d,0x1e,0x3b,0x58,0x39, -0x55,0x89,0x61,0x35,0x3d,0x74,0xa6,0x69,0xfd,0xa4,0x50,0x86,0x60,0x36,0xfe,0x98,0xfe,0x88,0x3a,0x65,0x87,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x1f,0x00,0x2b,0x00,0x7f,0x40,0x2c,0x59,0x2b,0x01,0x56,0x29,0x01,0x47,0x29,0x01,0x56,0x28,0x01,0x55,0x24,0x01,0x5a,0x21,0x01,0x66,0x1e,0x76,0x1e,0x02,0x2b, -0x0a,0x3b,0x0a,0x4b,0x0a,0x03,0x0c,0x0a,0x1c,0x0a,0x02,0x69,0x05,0x01,0x10,0x11,0x11,0x00,0x83,0x20,0xb8,0xff,0xc0,0x40,0x24,0x0a,0x0d,0x48,0x20,0x20,0x2d,0x26,0x83,0x1a,0x84,0x0f,0x08,0x1f,0x08,0x02,0x08,0x22,0x95,0x1a,0x1c,0x1c,0x2a,0x11,0x13,0x95,0x10,0x0e,0x0e,0x16,0x95,0x0b,0x01,0x2a,0x95,0x04,0x16,0x00,0x3f,0xed, -0x3f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x01,0x2f,0x5d,0xed,0xed,0x12,0x39,0x2f,0x2b,0xed,0x32,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x10,0x21,0x32,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x11, -0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x28,0x7b,0x84,0xeb,0xe5,0x80,0x79,0x01,0x5a,0x40,0xeb,0x35,0x52,0x72,0x4a,0x83,0x88,0x44,0xf5,0x2d,0x64,0x4b,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1, -0x02,0xd0,0x01,0x52,0x46,0x46,0x71,0x5f,0x46,0x55,0x64,0xfe,0xa6,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x04,0x18,0x00,0x3e,0x00,0xb8,0x40,0x11,0x86,0x3c,0x96,0x3c,0x02,0x77,0x38,0x01,0x66,0x38,0x01,0x47,0x38,0x57,0x38,0x02,0x32,0xb8,0xff,0xf8,0x40,0x65, -0x0d,0x10,0x48,0x96,0x2e,0x01,0x87,0x2e,0x01,0x99,0x27,0x01,0x75,0x24,0x01,0x66,0x24,0x01,0x85,0x23,0x01,0x69,0x20,0x79,0x20,0x02,0x6a,0x0b,0x7a,0x0b,0x02,0x84,0x08,0x01,0x66,0x07,0x76,0x07,0x02,0x99,0x04,0x01,0x88,0x04,0x01,0x26,0x25,0x25,0x16,0x2b,0x83,0x22,0x16,0x35,0x16,0x05,0x06,0x06,0x15,0x00,0x83,0x09,0x15,0x84, -0x16,0x0e,0x95,0x3a,0x3a,0x71,0x35,0x01,0x62,0x35,0x01,0x40,0x35,0x50,0x35,0x02,0x35,0x30,0x16,0x16,0x26,0x1d,0x95,0x30,0x10,0x94,0x06,0x01,0x06,0x05,0x05,0x94,0x25,0x01,0x25,0x26,0x16,0x00,0x3f,0x33,0x5d,0x33,0x2f,0x33,0x5d,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0x32,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12, -0x39,0x2f,0x33,0x11,0x39,0x10,0xde,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03, -0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x05,0xae,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x37,0x64,0x8c,0x55,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f, -0x59,0x2e,0x55,0x8c,0x64,0x37,0x02,0x26,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x4e,0x7c,0xbb,0x7d,0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x00,0x00,0x01, -0x00,0x60,0xff,0xe8,0x03,0xf1,0x06,0x02,0x00,0x3f,0x00,0x99,0x40,0x5b,0x86,0x38,0x01,0x96,0x31,0x01,0x79,0x28,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66,0x12,0x02,0x7a,0x08,0x8a,0x08,0x02,0x7a,0x07,0x8a,0x07,0x02,0x46,0x3e,0x01,0x47,0x33,0x01,0x3a,0x3b,0x1f,0x31,0x2d,0x35,0x84,0x29,0x2d,0x26,0x26,0x19,0x2e,0x2d, -0x2d,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x41,0x0d,0x0f,0x84,0x0c,0x0a,0x3b,0x3a,0x1e,0x18,0x31,0x01,0x09,0x31,0x01,0x29,0x31,0x2e,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x2d,0x2e,0x01,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x11,0x39,0x39,0x5d,0x5d,0x11,0x39,0x39,0x01,0x2f,0x33, -0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23, -0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x27,0x37,0x1e,0x05,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x79,0x49,0x20,0x38,0x59,0x70,0x70,0x65,0x21,0x5e,0x23,0x70,0x7f,0x81,0x68, -0x41,0x1e,0x3f,0x64,0x46,0x49,0x82,0x62,0x39,0x01,0xbc,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1d,0x34,0x47,0x2a,0x37,0x46,0x31,0x24,0x2b,0x3b,0x2f,0x56,0x2c,0x3b,0x31,0x31,0x43,0x5f,0x47,0x2c,0x54,0x47,0x35,0x0c,0x04,0x0b,0x43, -0x66,0x85,0x00,0x01,0x00,0x3f,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x2d,0x00,0x8e,0x40,0x52,0x65,0x13,0x01,0x56,0x13,0x01,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x2c,0x2d,0x84,0x16,0x18,0x1a,0x28,0x25,0x27,0x27,0x20,0x1a,0x84,0x25,0x25,0x0d,0x16,0x16,0x08,0x2f,0x20,0x84,0x1f,0x1f,0x0b,0x0d,0x84,0x0a,0x08,0x28,0x95,0x18, -0x27,0x18,0x1f,0x20,0x0b,0x0a,0x0a,0x11,0x1d,0x95,0x22,0x89,0x16,0x99,0x16,0x02,0x16,0x2d,0x00,0x18,0x10,0x18,0x02,0x18,0x20,0x22,0x22,0x20,0x18,0x03,0x2d,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0x33, -0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x37,0x16, -0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x32,0x37,0x36,0x37,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x5f,0xab,0x3f,0x8e,0x9b,0xf9,0x21,0x89,0x17,0x7a,0x4c,0x40,0x6f,0x37,0xac,0x62,0x73,0x73,0x50,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c, -0x51,0x8a,0x03,0x3b,0x39,0x08,0x4a,0x65,0x75,0x93,0x01,0x1d,0x26,0xb9,0x47,0x47,0x6b,0x3c,0x82,0x1f,0x24,0x6a,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x06,0x02,0x00,0x52,0x00,0xfc,0x40,0xa7,0x96,0x4c,0x01,0x94,0x47,0x01,0x99,0x2f,0x01,0x66,0x4c,0x76,0x4c,0x02,0x84,0x4b,0x01,0x8c,0x48,0x01,0x8a,0x47,0x01,0x69,0x47,0x79, -0x47,0x02,0x4a,0x42,0x5a,0x42,0x6a,0x42,0x03,0x4a,0x39,0x5a,0x39,0x6a,0x39,0x03,0x7b,0x33,0x01,0x6a,0x33,0x01,0x85,0x2f,0x01,0x66,0x2f,0x76,0x2f,0x02,0x89,0x2c,0x01,0x86,0x25,0x96,0x25,0x02,0x77,0x21,0x01,0x25,0x04,0x01,0x55,0x03,0x01,0x46,0x03,0x01,0x34,0x03,0x01,0x26,0x03,0x01,0x9b,0x4e,0x01,0x4e,0x4d,0x4d,0x3e,0x94, -0x17,0x01,0x17,0x11,0x4a,0x07,0x0d,0x00,0x83,0x4a,0x3e,0x94,0x2d,0x01,0x2d,0x2e,0x2e,0x3d,0x31,0x0c,0x0d,0x0d,0x28,0x83,0x31,0x1e,0x3d,0x84,0x3e,0x70,0x1e,0x01,0x1e,0x23,0x3e,0x3e,0x4e,0x2e,0x2d,0x2d,0x4d,0x4e,0x16,0x36,0x95,0x23,0x45,0x95,0x17,0x19,0x19,0x9d,0x11,0x01,0x7a,0x11,0x8a,0x11,0x02,0x96,0x07,0x01,0x09,0x07, -0x19,0x07,0x29,0x07,0x03,0x11,0x07,0x0c,0x23,0x10,0x0d,0x0c,0x01,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x2f,0x33,0xed,0x10,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x5d,0x01,0x2f,0xfd,0x39,0xde,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x10,0xde,0xed,0x11,0x39,0x12,0x39,0x39, -0x5d,0x11,0x39,0x2f,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x37,0x3e,0x05,0x37,0x17,0x0e,0x05,0x07,0x06,0x06,0x07,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07, -0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03,0x60,0x30,0x64,0x99,0x69,0x3f,0x85,0x81,0x7a,0x67,0x50,0x18,0x76,0x17,0x5d,0x7a,0x8b,0x8b,0x80,0x31,0x3c,0x4a,0x13,0x18,0x18,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c, -0x64,0x37,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x02,0x26,0x84,0xe2,0xb8,0x8c,0x2d,0x1b,0x2a,0x24,0x23,0x28,0x30,0x21,0x53,0x25,0x3c,0x33,0x2c,0x29,0x28,0x16,0x1b,0x3f,0x19,0x03,0x1e, -0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x00,0x01,0x00,0x9a,0xff,0xe6,0x04,0x1d,0x05,0xec,0x00,0x19,0x00,0x6b,0x40,0x26, -0x99,0x13,0x01,0x68,0x13,0x78,0x13,0x02,0x69,0x0e,0x01,0x65,0x0c,0x01,0x56,0x0c,0x01,0x79,0x06,0x01,0x89,0x05,0x01,0x96,0x03,0x01,0x76,0x02,0x01,0x14,0x15,0x17,0x84,0x12,0x00,0x84,0x0f,0x12,0xb8,0xff,0xc0,0x40,0x1c,0x0a,0x0d,0x48,0x10,0x0f,0x20,0x0f,0x02,0x12,0x0f,0x12,0x0f,0x1b,0x0b,0x84,0x90,0x08,0x01,0x08,0x15,0x14, -0x10,0x0a,0x00,0x0d,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x10,0xed,0x10,0xfd,0xce,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x34,0x26,0x35,0x34,0x37,0x17,0x06, -0x15,0x14,0x16,0x04,0x1d,0x6a,0x76,0xe0,0xe5,0x74,0x6a,0xa2,0x01,0x21,0x01,0x1b,0x78,0xbf,0x4d,0x5e,0x6f,0x01,0xb3,0xd5,0x78,0x80,0x7b,0x77,0xd8,0x04,0x3c,0xfb,0xe1,0xfe,0xab,0x01,0x34,0x71,0xfb,0x3c,0x87,0x3d,0x87,0x23,0x34,0x1a,0xf7,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0xaa,0x05,0x31,0x00,0x36,0x00,0x42,0x01,0x23, -0x40,0xc8,0x09,0x13,0x01,0x06,0x10,0x01,0x57,0x35,0x01,0x77,0x2f,0x87,0x2f,0x02,0x77,0x2b,0x87,0x2b,0x02,0x88,0x27,0x01,0x7c,0x15,0x8c,0x15,0x02,0x6a,0x15,0x01,0x66,0x13,0x01,0x65,0x10,0x01,0x56,0x10,0x01,0x47,0x10,0x01,0x65,0x0f,0x85,0x0f,0x95,0x0f,0x03,0x69,0x0d,0x01,0x57,0x0a,0x01,0x79,0x06,0x01,0x79,0x02,0x01,0x1e, -0xa1,0x1f,0xb1,0x1f,0xc1,0x1f,0x03,0x50,0x1f,0x01,0x1f,0x1f,0x18,0x00,0x83,0x14,0x14,0x29,0x44,0x56,0x33,0x01,0x16,0x33,0x18,0x31,0x84,0x5a,0x27,0x01,0x27,0x41,0x25,0x37,0x3f,0x84,0x29,0x18,0x84,0x25,0x25,0x29,0x08,0x83,0x0f,0x0e,0x01,0x0e,0x0b,0x0c,0x29,0x7b,0x0c,0x8b,0x0c,0x9b,0x0c,0x03,0x49,0x0c,0x01,0x0c,0x85,0x41, -0x01,0x74,0x41,0x01,0x48,0x33,0x68,0x33,0x02,0x39,0x33,0x01,0x78,0x27,0x01,0x6a,0x27,0x01,0x58,0x27,0x01,0x3a,0x27,0x4a,0x27,0x02,0x06,0x27,0x16,0x27,0x26,0x27,0x03,0x27,0x33,0x41,0x03,0x3b,0x9c,0x16,0x01,0x8b,0x16,0x01,0x7c,0x16,0x01,0x6a,0x16,0x01,0x38,0x16,0x48,0x16,0x58,0x16,0x03,0x16,0x0b,0x0b,0x1c,0x2d,0x95,0x3b, -0x3b,0x1f,0x21,0x95,0x1e,0x1c,0x12,0x95,0x04,0x1c,0x00,0x3f,0xed,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x01,0x2f,0xce,0x32,0xdc,0x5d,0xed,0x11,0x33,0x2f,0xed,0x10,0xfd,0xde,0x11,0x39,0x39,0x5d,0xed,0x11, -0x39,0x39,0x5d,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x25,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x12,0x37,0x17,0x06,0x11,0x14,0x17,0x16,0x33,0x20,0x11,0x10,0x25,0x06,0x15,0x14,0x17,0x16,0x33, -0x32,0x37,0x17,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x36,0x05,0xaa,0xae,0xb5,0xfe,0xb2,0xfe,0xc5,0xb3,0xad,0xbb,0xb1,0x3b,0xf7,0x78,0x83,0xf0,0x02,0x01,0xfe,0x72,0x60,0x20,0x1d,0x25,0x39, -0x22,0x7a,0x52,0x83,0x62,0x4a,0x52,0x82,0x82,0x53,0x49,0x63,0x5e,0x4a,0x4f,0x87,0xd3,0x78,0x80,0xfe,0x22,0x1f,0x1b,0x23,0x25,0x1d,0x20,0x60,0x5f,0xd9,0xfe,0xb9,0xb7,0xbd,0xc1,0xbb,0x01,0x3a,0xeb,0x01,0x56,0x53,0x96,0x90,0xfe,0xa1,0xf3,0x96,0xa5,0x02,0x0d,0x01,0x67,0xf7,0x5b,0x45,0x28,0x19,0x17,0x2c,0x50,0x6d,0x39,0x40, -0x66,0x79,0x79,0x6e,0x72,0x6d,0x42,0x3a,0x3c,0x40,0x5b,0x62,0x7c,0x7b,0xaa,0xb5,0x02,0xb8,0x21,0x14,0x11,0x14,0x17,0x23,0x46,0x42,0x59,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x06,0x22,0x04,0x18,0x00,0x5a,0x00,0xe8,0x40,0x99,0x17,0x57,0x01,0x7a,0x53,0x01,0x69,0x53,0x01,0x7b,0x52,0x01,0x6a,0x52,0x01,0x48,0x50,0x58,0x50,0x02, -0x96,0x4e,0x01,0x65,0x4e,0x75,0x4e,0x02,0x97,0x4d,0x01,0x86,0x4d,0x01,0x65,0x4d,0x75,0x4d,0x02,0x69,0x49,0x01,0x98,0x3c,0x01,0x89,0x3c,0x01,0x57,0x35,0x01,0x46,0x35,0x01,0x37,0x35,0x01,0x48,0x2c,0x58,0x2c,0x02,0x49,0x2b,0x01,0x8a,0x1d,0x9a,0x1d,0x02,0x48,0x17,0x01,0x5a,0x16,0x01,0x49,0x16,0x01,0x65,0x12,0x75,0x12,0x02, -0x47,0x12,0x57,0x12,0x02,0x5a,0x84,0x19,0x19,0x27,0x5c,0x3d,0x20,0x3e,0x40,0x3e,0x50,0x3e,0x03,0x3e,0x3e,0x48,0x33,0x27,0x43,0x84,0x3b,0x50,0x26,0x84,0x27,0x0d,0x0f,0x84,0x0c,0x0a,0x0a,0x27,0x1f,0x95,0x55,0x55,0x4b,0x3e,0x3d,0x3d,0x4b,0x36,0x95,0x45,0x2e,0x0d,0x0c,0x50,0x26,0x4b,0x0c,0x26,0x0c,0x26,0x14,0x2e,0x95,0x4b, -0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xdc,0xed,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xdc,0xed,0x11,0x39,0x39,0x32,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02, -0x35,0x34,0x37,0x17,0x0e,0x03,0x15,0x14,0x33,0x36,0x36,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x06,0x22,0x4d,0x85,0xb4,0x66,0x59,0xa0,0x79,0x47,0x29,0x99,0x1c,0x2c,0x4c,0x64,0x39,0x43,0x77,0x59,0x33,0x17,0x2c,0x3d,0x27,0x24,0x38,0x2b,0x1e,0x12,0x09,0xa4,0x0a,0x13,0x1d,0x26,0x30,0x1c, -0x1d,0x2b,0x22,0x1e,0x11,0x21,0x73,0x63,0x32,0x50,0x38,0x1d,0x7f,0x69,0x12,0x20,0x1a,0x0f,0x4d,0x2e,0x45,0x1f,0x1f,0x84,0x58,0x2e,0x4c,0x3e,0x32,0x13,0x15,0x36,0x43,0x52,0x30,0x55,0x7e,0x52,0x29,0x0e,0x73,0xaf,0x76,0x3c,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4f,0x76,0x4e,0x02,0x40,0x5f, -0x89,0x59,0x2a,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x1a,0x35,0x4e,0x34,0x68,0x69,0x22,0x3c,0x54,0x32,0x88,0x6c,0x59,0x0b,0x20,0x28,0x30,0x1a,0x54,0x01,0x56,0x67,0x68,0x78,0x1f,0x39,0x4f,0x2f,0x2f,0x4f,0x39,0x1f,0x38,0x77,0xbb,0x84,0x00,0x00,0x02,0x00,0x40,0xfe,0x1e,0x06,0x9c,0x04,0x18,0x00,0x55, -0x00,0x69,0x00,0xd9,0x40,0x52,0x5a,0x67,0x01,0x39,0x67,0x49,0x67,0x02,0x36,0x63,0x46,0x63,0x56,0x63,0x03,0x56,0x5d,0x01,0x35,0x5d,0x45,0x5d,0x02,0x39,0x59,0x49,0x59,0x59,0x59,0x03,0x56,0x54,0x01,0x86,0x4f,0x96,0x4f,0x02,0x75,0x4f,0x01,0x95,0x4b,0x01,0x96,0x4a,0x01,0x7b,0x29,0x8b,0x29,0x02,0x69,0x28,0x01,0x58,0x28,0x01, -0x5a,0x16,0x01,0x86,0x11,0x01,0x9a,0x08,0x01,0x0d,0x0f,0x84,0x0a,0x0c,0x0a,0x50,0x51,0x4d,0x1f,0x5a,0x43,0x01,0x43,0x30,0xb8,0xff,0xf0,0x40,0x38,0x0f,0x12,0x48,0x30,0x32,0x83,0x56,0x4d,0x83,0x26,0x00,0x83,0x19,0x0a,0x56,0x26,0x19,0x19,0x26,0x56,0x0a,0x04,0x6b,0x60,0x83,0x3c,0x5b,0x95,0x41,0x41,0x48,0x0d,0x0c,0x65,0x95, -0x37,0x51,0x50,0x20,0x95,0x1e,0x37,0x1e,0x37,0x1e,0x14,0x30,0x2b,0x95,0x43,0x48,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x10,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xfd,0x32,0x2b,0x32, -0x5d,0xce,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, -0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0x9c,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c, -0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x2b,0x4a,0x63,0x38,0x2b,0x47,0x3c,0x35,0x1a,0x46,0x43,0x7b,0xad,0x6b,0x6b,0xad,0x7b,0x43,0x43,0x7b,0xad,0x6b,0xb4,0x7a,0x20,0x53,0x5e,0x64,0x30,0x58,0x9d,0x77,0x46,0x98,0x8d,0x49,0x82,0x62,0x39,0xfc,0xa8,0x27,0x4c,0x71,0x4a,0x4a, -0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x71,0x4c,0x27,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x36,0x57,0x3c,0x21,0x0a,0x13,0x1c,0x12,0x74,0x9e,0x6a,0xb3,0x83,0x4a,0x49,0x82,0xb3,0x6a,0x69,0xb4,0x83,0x4a, -0x64,0x17,0x25,0x1a,0x0e,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x01,0xef,0x46,0x7f,0x60,0x39,0x39,0x61,0x80,0x46,0x47,0x7f,0x60,0x38,0x39,0x61,0x7f,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x05,0xec,0x00,0x29,0x00,0xad,0x40,0x70,0x76,0x1b,0x01,0x79,0x18,0x01,0x59,0x13,0x69,0x13,0x02,0x75,0x0f,0x01, -0x57,0x0f,0x67,0x0f,0x02,0x09,0x25,0x01,0x95,0x1f,0x01,0x88,0x1b,0x01,0x28,0x29,0x84,0x74,0x26,0x01,0x26,0x00,0x27,0x70,0x27,0x02,0x27,0x24,0x20,0x16,0x01,0x16,0x16,0x08,0x2b,0x1d,0x84,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x30,0x08,0x01,0x0f,0x08,0x1f,0x08,0x02,0x08,0x8b,0x25,0x9b,0x25,0x02,0x7f,0x25,0x01,0x49,0x25,0x59,0x25, -0x02,0x27,0x25,0x28,0x8f,0x26,0x9f,0x26,0x02,0x26,0x22,0x0b,0x0a,0x1d,0x0a,0x1d,0x11,0x19,0x95,0x95,0x24,0x01,0x83,0x24,0x01,0x24,0x22,0x22,0x28,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x5d,0x5d,0xed,0x11,0x39,0x39,0x2f,0x2f,0x33,0x10,0xce,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x5d,0x5d,0x33, -0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xc4,0xcc,0x5d,0x32,0x5d,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33, -0x32,0x17,0x11,0x07,0x27,0x01,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x88,0x77,0x66,0x43,0x49,0xa6,0x7d,0x73,0xa8,0x97,0x68,0x81,0x6f,0x01,0x10,0x84,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x51,0x8a,0x01,0xfa,0x79,0x83,0x34,0x39, -0x68,0xa8,0x61,0x57,0x3e,0x01,0xd8,0x82,0x70,0x01,0x14,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x05,0xce,0x04,0x18,0x00,0x49,0x00,0xdb,0x40,0x91,0x67,0x3f,0x77,0x3f,0x02,0x49,0x3b,0x59,0x3b,0x02,0x3a,0x3b,0x01,0x6a,0x3a,0x01,0x66,0x31,0x01,0x46,0x30,0x56,0x30,0x66,0x30,0x03,0x35,0x30,0x01,0x69,0x2c,0x79,0x2c,0x02,0x86,0x1e, -0x96,0x1e,0x02,0x79,0x1a,0x01,0x99,0x19,0x01,0x7a,0x19,0x8a,0x19,0x02,0x76,0x15,0x86,0x15,0x96,0x15,0x03,0x75,0x14,0x01,0x89,0x10,0x99,0x10,0x02,0x47,0x42,0x8e,0x08,0x9e,0x08,0x02,0x7b,0x08,0x01,0x59,0x08,0x01,0x3a,0x08,0x4a,0x08,0x02,0x08,0x00,0x06,0x06,0x0d,0x83,0x42,0x36,0x26,0x27,0x27,0x21,0x83,0x29,0x8d,0x01,0x9d, -0x01,0x02,0x01,0x00,0x00,0x29,0x17,0x35,0x84,0x36,0x17,0x35,0x12,0x27,0x26,0x35,0x26,0x35,0x26,0x08,0x3d,0x95,0x12,0x2e,0x95,0x1c,0x1c,0x12,0x10,0x27,0x47,0x01,0x47,0x01,0x08,0x95,0x03,0x06,0xf4,0x05,0x05,0x03,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0xed,0x10,0xed,0x11, -0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0xfd,0x39,0xce,0x32,0x2f,0x33,0x5d,0x10,0xed,0x33,0x2f,0x39,0x10,0xde,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03, -0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x27,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x05,0x42,0x68,0xfe,0x9c,0xfe,0x55,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x37,0x64,0x8c,0x55, -0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c,0x64,0x37,0x08,0x0f,0x16,0x0e,0x98,0x2b,0x22,0x3a,0x4d,0x2b,0x2c,0x41,0x30,0x20,0x13,0x09,0xa4,0x01,0x08,0x13,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x48,0x88,0xc7,0x7f,0xab,0x01,0x00,0xfe,0x9b,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x7c,0xbb,0x7d, -0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x28,0x59,0x57,0x4e,0x1e,0x37,0x80,0x8d,0x5a,0x87,0x5a,0x2d,0x33,0x52,0x69,0x6c,0x67,0x27,0x27,0x67,0x6c,0x69,0x52,0x33,0x2d,0x5a,0x88,0x5a,0x89,0xcc,0x9a,0x72,0x2f,0x3f,0x7c,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x3b,0x00,0xcb,0x40,0x77, -0x66,0x32,0x01,0x86,0x31,0x01,0x74,0x31,0x01,0x65,0x31,0x01,0x56,0x31,0x01,0x9a,0x22,0x01,0x98,0x21,0x01,0x55,0x17,0x65,0x17,0x02,0x47,0x16,0x01,0x67,0x11,0x01,0x56,0x11,0x01,0x7a,0x08,0x01,0x79,0x07,0x01,0x3b,0x84,0x1a,0x39,0x39,0x0a,0x3d,0x5c,0x2a,0x6c,0x2a,0x7c,0x2a,0x03,0x3b,0x2a,0x4b,0x2a,0x02,0x2d,0x2a,0x01,0x2a, -0x2f,0x84,0x7c,0x29,0x01,0x6b,0x29,0x01,0x5c,0x29,0x01,0x3d,0x29,0x4d,0x29,0x02,0x2e,0x29,0x01,0x29,0x60,0x24,0x01,0x24,0x24,0x0d,0x0f,0x84,0x0c,0x0a,0x2a,0x29,0x29,0x3a,0x34,0x95,0x6a,0x1a,0x01,0x59,0x1a,0x01,0x3a,0x1a,0x4a,0x1a,0x02,0x2b,0x1a,0x01,0x1a,0x1f,0x0d,0x0c,0x1f,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x10,0x48,0x1f, -0x0c,0x1f,0x0c,0x3a,0x0f,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x33,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x33,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x37,0x17,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x03,0xf1,0x4a,0x81, -0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x17,0x3f,0x4b,0x53,0x2a,0x57,0x91,0x68,0x39,0x0f,0x0a,0x0b,0x0f,0x99,0x0b,0x08,0x08,0x0b,0x28,0x42,0x56,0x2f,0x3e,0x65,0x48,0x27,0xa4,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d, -0x6d,0x45,0x02,0x41,0x1a,0x2f,0x24,0x15,0x36,0x67,0x96,0x5f,0x33,0x59,0x22,0x28,0x22,0x37,0x1a,0x1e,0x1a,0x43,0x26,0x46,0x66,0x42,0x20,0x3b,0x63,0x80,0x45,0x85,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xdb,0x06,0x02,0x00,0x2b,0x00,0x37,0x00,0x9d,0x40,0x65,0x48,0x36,0x58,0x36,0x02,0x39,0x36,0x01,0x37,0x33,0x47,0x33,0x57,0x33, -0x03,0x38,0x2e,0x48,0x2e,0x58,0x2e,0x03,0x88,0x10,0x01,0x69,0x0a,0x01,0x66,0x03,0x01,0x86,0x28,0x96,0x28,0x02,0x86,0x26,0x96,0x26,0x02,0x99,0x10,0x01,0x08,0x83,0x32,0x32,0x16,0x20,0x22,0x84,0x1f,0x1f,0x1d,0x01,0x1d,0x16,0x27,0x16,0x15,0x2c,0x83,0x2b,0x84,0x10,0x0e,0x01,0x0e,0x15,0x84,0x16,0x1a,0x95,0x25,0x25,0x83,0x27, -0x93,0x27,0x02,0x27,0x29,0x1f,0x20,0x20,0x16,0x30,0x95,0x0e,0x0c,0x0c,0x34,0x11,0x95,0x29,0x01,0x34,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x2f,0x33,0x11,0x39,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xdc,0x5d,0xfd,0xed,0x11,0x12,0x39,0x10,0xde,0x5d,0x32,0xed,0x32,0x11,0x33,0x2f,0xed,0x31, -0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x20,0x11,0x03,0x34,0x27,0x26,0x23,0x20,0x11, -0x10,0x21,0x32,0x37,0x36,0x04,0xdb,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0x47,0x4c,0x1e,0xa6,0x20,0xad,0x8e,0xb9,0x53,0x53,0xbb,0x01,0x54,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xe0,0xe1,0x88,0x8f,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0xce,0x01, -0x45,0x64,0x49,0x69,0x69,0x49,0x64,0x65,0x51,0x3a,0x53,0x1d,0x52,0x4e,0x95,0xb5,0xbd,0xbd,0xfe,0x22,0xfd,0xc2,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x73,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x03,0xf8,0x06,0x02,0x00,0x23,0x00,0x2c,0x00,0x72,0x40,0x44,0x85,0x21,0xa5,0x21,0x02,0x87,0x17,0x01,0x88,0x06,0x98,0x06,0x02,0x7b, -0x08,0x01,0x80,0x04,0x90,0x04,0x02,0x76,0x04,0x01,0x04,0x00,0x05,0x05,0x1e,0x00,0x83,0x07,0x07,0x10,0x2e,0x19,0x84,0x24,0x2b,0x0e,0x1e,0x84,0x10,0x2b,0x95,0x1d,0x1d,0x37,0x1e,0x01,0x26,0x1e,0x01,0x1e,0x0a,0x95,0x20,0x20,0x0f,0x26,0x95,0x15,0x01,0x05,0x04,0x04,0x0f,0x15,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f, -0xed,0x33,0x5d,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07,0x27,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07, -0x15,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x03,0xf8,0x3d,0x3e,0x6b,0x75,0xb7,0x7a,0x74,0x81,0x51,0x4a,0xa4,0x37,0x48,0xb5,0x6b,0x41,0x46,0x7b,0x64,0xa3,0x72,0xe2,0x9c,0x61,0x5d,0xfe,0x32,0x50,0x43,0x28,0x25,0xe0,0x01,0xe3,0x8e,0x89,0x8c,0x58,0x73,0x9f,0xe1,0x88,0x9f,0x70,0x66,0x88,0xfe, -0x5c,0x04,0x83,0xb0,0x59,0x76,0x34,0x38,0x66,0x96,0x69,0x55,0x2b,0xd3,0xae,0x7a,0x77,0x02,0x91,0x4b,0x33,0x2f,0x45,0x8d,0x3c,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x04,0x8b,0x04,0x18,0x00,0x2d,0x00,0xcc,0x40,0x89,0x87,0x2d,0x01,0x65,0x2d,0x01,0x76,0x2c,0x01,0x86,0x29,0x96,0x29,0x02,0x64,0x29,0x74,0x29,0x02,0x46,0x26,0x96, -0x26,0x02,0x96,0x24,0x01,0x9a,0x20,0x01,0x8d,0x1f,0x01,0x39,0x1f,0x01,0x5d,0x17,0x01,0x48,0x16,0x01,0x69,0x13,0x01,0x48,0x13,0x01,0x84,0x10,0x01,0x75,0x0f,0x01,0x07,0x0f,0x17,0x0f,0x67,0x0f,0x03,0x9a,0x06,0x01,0x29,0x06,0x01,0x54,0x02,0x01,0x9a,0x0a,0x01,0x8b,0x0a,0x01,0x7e,0x0a,0x01,0x0a,0x08,0x0b,0x21,0x94,0x22,0x01, -0x22,0x21,0x2a,0x2b,0x19,0x28,0x83,0x1d,0x00,0x83,0x15,0x2f,0x21,0x3f,0x21,0x02,0x21,0x19,0x1d,0x15,0x15,0x1d,0x19,0x21,0x04,0x2f,0x0d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2b,0x2a,0x18,0x95,0x1a,0x1a,0x22,0x0b,0x0a,0x0a,0x21,0x22,0x10,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0xed,0x39, -0x39,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x5d,0x10,0xce,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x13,0x17, -0x02,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x04,0x8b,0x8e,0x85,0xcf,0xfe,0xdf,0x9b,0x8d,0xb0,0x88,0x8a,0x74,0x6d,0xb1,0x89,0x5a,0x60,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa2,0x8b,0x4c,0x77,0x3d,0x79, -0x65,0x45,0x4a,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0xcc,0xba,0x01,0x35,0x01,0xa5,0x01,0x9a,0x3a,0xfe,0x88,0xfe,0x71,0xfe,0xf4,0x96,0x8d,0x4c,0x51,0x8a,0x8b,0x98,0x8b,0xd9,0x8b,0x2c,0x26,0x85,0x60,0x6d,0x22,0x1c,0x4e,0x52,0x65,0xf3,0x36,0x04,0x0e,0xba,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x16, -0x00,0x22,0x00,0x68,0x40,0x26,0x59,0x21,0x01,0x56,0x1e,0x01,0x55,0x1c,0x01,0x59,0x19,0x01,0x78,0x0b,0x01,0x69,0x0b,0x01,0x66,0x03,0x01,0x94,0x12,0x01,0x76,0x12,0x86,0x12,0x02,0x12,0x00,0x11,0x0e,0x17,0x83,0x00,0x84,0x0e,0xb8,0xff,0xc0,0x40,0x1a,0x0a,0x0d,0x48,0x0e,0x0e,0x24,0x1d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x11, -0x12,0x01,0x1b,0x95,0x0e,0x0c,0x0f,0x1f,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0xfd,0xed,0x10,0xce,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x27,0x37,0x16, -0x17,0x16,0x15,0x03,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x04,0x28,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xb8,0x75,0x71,0x3f,0x3b,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xf4,0xf5,0x88,0x8f,0x96,0x8c,0xfa,0xf3,0x80,0x8d,0x77,0x4c,0x01,0x29,0x8d,0x73,0x58,0xa3,0x97, -0x98,0xfe,0x22,0xb5,0x5e,0x6d,0xfe,0x84,0xfe,0x74,0x73,0x63,0x00,0x02,0x00,0x32,0xfe,0x1e,0x04,0xdb,0x06,0x02,0x00,0x25,0x00,0x28,0x01,0x1e,0x40,0x21,0x98,0x22,0x01,0x96,0x20,0x01,0x86,0x0a,0x01,0x99,0x07,0x01,0x21,0x0d,0x0c,0x19,0x1a,0x18,0x1a,0x06,0x27,0x01,0x27,0x15,0x14,0x28,0x14,0x51,0x18,0x61,0x18,0x02,0x18,0xb8, -0xff,0xc8,0x40,0x90,0x33,0x36,0x48,0x00,0x18,0x10,0x18,0x20,0x18,0x03,0xf1,0x18,0x01,0x58,0x18,0x01,0x29,0x18,0x01,0x18,0x14,0x28,0x14,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x0c,0x84,0x0d,0x0d,0x26,0x0f,0x1a,0x01,0x1a,0x1a,0x28,0x03,0x05,0x84,0x00,0x31,0x17,0x41,0x17,0x51,0x17,0x71,0x17,0x81,0x17,0x05,0x77,0x17,0x01,0x56, -0x17,0x01,0x47,0x17,0x01,0x25,0x17,0x01,0x16,0x17,0x01,0x3e,0x26,0x4e,0x26,0x02,0x38,0x26,0x01,0x0b,0x26,0x01,0x17,0x26,0x28,0x26,0x84,0x16,0x17,0x14,0x16,0x16,0x17,0x02,0x0e,0x00,0x01,0x00,0x00,0x80,0x16,0x01,0x16,0x16,0x58,0x28,0x01,0x26,0x28,0x01,0x28,0x28,0x1b,0x21,0x0d,0x08,0x95,0x23,0x23,0x1f,0x03,0x02,0x02,0x0d, -0x26,0x27,0x95,0x1a,0x16,0x15,0x14,0x15,0x0d,0x15,0x0d,0x15,0x18,0x11,0x95,0x1f,0x01,0x17,0x18,0x1b,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x33,0xfd,0xc4,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x12,0x39,0x3f,0x01,0x3d,0x2f,0x5d,0x5d,0xc9,0x18,0x2f,0x5d,0x32,0x2f,0x5d,0x33,0x87,0x10,0x2b, -0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x72,0x5d,0x5d,0x5d,0x5d,0x5d,0x72,0x18,0x10,0xed,0x32,0x10,0xc9,0x2f,0x5d,0x12,0x39,0x2f,0xed,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x71,0x72,0x2b,0x72,0x10,0x87,0xc4,0xc4,0x01,0x5d,0x10,0x87,0x0e,0xc4,0x11,0x12,0x01,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x27,0x36,0x35, -0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x11,0x14,0x17,0x21,0x01,0x23,0x01,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x21,0x01,0x04,0xdb,0x20,0xa6,0x1e,0x4c,0x47,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0xac,0x1c,0x03,0xa7,0xfe,0x25,0xa2,0xfe,0x67,0x55,0x4d,0x57,0xb0,0xbb,0x53, -0x53,0xb9,0x8e,0xad,0xfe,0xf4,0xfd,0x4c,0x01,0x56,0x04,0xb8,0x4e,0x52,0x1d,0x53,0x3a,0x51,0x65,0x64,0x49,0x69,0x69,0x49,0x64,0xfe,0xc5,0x6c,0x5d,0xfa,0xaa,0x04,0x7f,0xef,0xa2,0xd3,0x78,0x89,0xbd,0xbd,0xb5,0xfd,0x9a,0xfb,0xe8,0x00,0x00,0x02,0x00,0x50,0xfe,0x1e,0x04,0x00,0x05,0xec,0x00,0x41,0x00,0x4c,0x00,0xe4,0x40,0x8d, -0x76,0x3f,0x01,0x75,0x3e,0x01,0x86,0x3d,0x01,0x73,0x3d,0x01,0x99,0x18,0x01,0x76,0x13,0x01,0x76,0x0f,0x01,0x67,0x0f,0x01,0x88,0x01,0x01,0x37,0x36,0x39,0x2f,0x36,0x36,0x34,0x31,0x32,0x2f,0x84,0x28,0x1c,0x42,0x00,0x84,0x15,0x42,0x15,0x42,0x15,0x22,0x4e,0x2d,0x84,0x2a,0x2a,0x22,0x0b,0x0d,0x84,0x0a,0x08,0x08,0x48,0x84,0x22, -0x43,0x42,0x45,0x4b,0xb9,0x32,0x01,0xa8,0x32,0x01,0x32,0x31,0x31,0x66,0x2f,0x01,0x37,0x2f,0x47,0x2f,0x57,0x2f,0x03,0x26,0x2f,0x01,0x69,0x39,0x01,0x38,0x39,0x48,0x39,0x58,0x39,0x03,0x29,0x39,0x01,0x1c,0x39,0x34,0x2f,0x28,0x05,0x1e,0x26,0x95,0x45,0x4b,0xb6,0x36,0x01,0xa7,0x36,0x01,0x36,0x37,0x37,0x0b,0x0a,0x0a,0x11,0x1e, -0x95,0x4b,0x4b,0x11,0x29,0x95,0x2e,0x2c,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xde,0xed,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0x32,0x2f,0x33,0x5d,0x5d,0x10,0xde,0xed,0x11,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f, -0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xc4,0xfd,0xcd,0x39,0x39,0x32,0x2f,0x10,0xc4,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x26,0x27,0x26,0x35,0x06, -0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x36,0x37,0x17,0x06,0x07,0x16,0x17,0x07,0x26,0x27,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x01,0x35,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0x00,0x9d,0x86,0xb6,0xb3,0x88,0x9c,0x28,0x9c,0x1e,0x68,0x58,0x71,0x74,0x56,0x69, -0x25,0x06,0xb5,0x19,0x28,0x5d,0x5d,0x71,0x43,0x3f,0x3f,0x44,0x70,0x5b,0x5f,0xfe,0x7c,0xa4,0x01,0x84,0x55,0x40,0x81,0x4b,0x56,0x56,0x4b,0x81,0x40,0x55,0x23,0x13,0x42,0x67,0x19,0x2b,0xfe,0x39,0x64,0x56,0x25,0x3d,0x3d,0x25,0x56,0x8c,0xa5,0x5f,0x52,0x57,0x64,0xa5,0x5e,0x51,0x37,0x37,0x45,0x65,0x3b,0x32,0x2d,0x36,0x65,0x51, -0x34,0x09,0xbb,0x2c,0x45,0x66,0x29,0x4b,0x46,0x6d,0x6d,0x47,0x4b,0x2a,0x01,0xa1,0x01,0x11,0x79,0xfd,0x61,0x59,0x69,0x60,0x74,0x5d,0x5d,0x74,0x5f,0x69,0x59,0x6d,0x41,0x34,0x1c,0x41,0x66,0x27,0x46,0x02,0x5f,0x43,0x40,0x3f,0x22,0x22,0x40,0x00,0x00,0x02,0x00,0xae,0xff,0xe8,0x04,0x76,0x05,0xec,0x00,0x11,0x00,0x1d,0x00,0x92, -0x40,0x62,0x5a,0x1d,0x01,0x49,0x1d,0x01,0x45,0x1b,0x55,0x1b,0x02,0x46,0x1a,0x56,0x1a,0x02,0x46,0x16,0x56,0x16,0x02,0x49,0x13,0x59,0x13,0x02,0x69,0x05,0x01,0x37,0x1d,0x01,0x37,0x1a,0x01,0x38,0x16,0x01,0x85,0x0e,0x01,0x74,0x0e,0x01,0x07,0x0e,0x17,0x0e,0x02,0x0e,0x0c,0x0b,0x2e,0x0d,0x01,0x1f,0x0d,0x01,0x0d,0x0d,0x00,0x83, -0x10,0x12,0x20,0x12,0x30,0x12,0x03,0x12,0x12,0x1f,0x0b,0x84,0x18,0x83,0x08,0x0c,0x2e,0x0d,0x01,0x0d,0x0d,0x0a,0x14,0x95,0x66,0x0b,0x01,0x0b,0x0e,0x0f,0x0a,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x5d,0x12,0x39, -0x39,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x01,0x33,0x01,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x76,0x7b,0x84,0xeb,0xe5,0x80,0x79,0xa8,0x01,0xd8,0xd7,0xfe,0xa0,0xea,0x79, -0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1,0x04,0x0c,0xfd,0x7a,0x01,0x9e,0xfe,0xd8,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x21,0xfe,0x1e,0x05,0xf5,0x04,0x18,0x00,0x43,0x01,0x30,0x40,0xb7,0x75,0x3a,0x01,0x67,0x29,0x01,0x56,0x29, -0x01,0x45,0x29,0x01,0x26,0x29,0x01,0x36,0x17,0x01,0x6a,0x0e,0x01,0x42,0x41,0x41,0x00,0x84,0x3f,0x3b,0x30,0x31,0x31,0x2c,0x3a,0x3b,0x28,0x38,0x08,0x39,0x38,0x08,0x38,0x2a,0x2b,0x17,0x29,0x3b,0x28,0x2b,0x17,0x18,0x06,0x19,0x2b,0x17,0x07,0x06,0x19,0x38,0x08,0xa5,0x2b,0x01,0x2b,0x08,0x38,0x08,0x84,0x17,0x2b,0x14,0x17,0x17, -0x2b,0x2b,0x2c,0x84,0x38,0x37,0x37,0x28,0x06,0x19,0x06,0x84,0x3b,0x28,0x14,0x3b,0x28,0x3b,0x3b,0x17,0x45,0x20,0x1f,0x22,0x84,0x1d,0x1f,0x1f,0x1d,0x19,0x19,0x17,0x10,0x0f,0x08,0x17,0x0a,0x84,0x00,0x15,0x01,0x15,0x15,0x17,0x38,0x2e,0x31,0x33,0x30,0x30,0x2e,0x95,0x33,0x33,0x26,0xc5,0x1f,0x01,0x1f,0x20,0x20,0x19,0x1b,0x95, -0x28,0x26,0x10,0xba,0x41,0x01,0xa9,0x41,0x01,0x41,0x42,0x42,0x3b,0x3d,0x95,0x04,0xd2,0x17,0x01,0x24,0x17,0x44,0x17,0x54,0x17,0x03,0x09,0x17,0x01,0x17,0x76,0x10,0x86,0x10,0x02,0x10,0x12,0x95,0x6c,0x0f,0x01,0x0f,0x0d,0x0d,0x06,0x04,0x1c,0x00,0x3f,0x33,0x33,0x2f,0x33,0x5d,0xed,0x32,0x5d,0x32,0x5d,0x5d,0x5d,0x10,0xed,0x32, -0x32,0x2f,0x33,0x5d,0x5d,0x3f,0x33,0xed,0x32,0x32,0x2f,0x33,0x5d,0x11,0x33,0x2f,0xed,0x32,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0x33,0x2f,0x5d,0xed,0x11,0x39,0xcc,0x32,0x11,0x33,0x2f,0xce,0x32,0x2f,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18,0x2f,0x33,0xed,0x32,0x87,0x04,0x10,0x2b,0x87, -0x7d,0xc4,0x00,0x5d,0x0f,0x0f,0x0f,0x87,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x0f,0x11,0x01,0x33,0x18,0x2f,0x33,0x10,0xde,0xed,0x33,0x2f,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x01,0x01, -0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x01,0x01,0x36,0x35,0x34,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x01,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x37,0x16,0x05,0xf5,0x40,0x3c,0x5b,0x90,0x52,0xfe,0xcf,0xfe,0xa4,0x33,0x8e,0x69,0x77,0x53,0x43,0x3c,0x4b,0x24,0x36,0x83, -0x01,0xef,0xfe,0xc3,0x36,0x2f,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x8b,0x52,0x01,0x3b,0x01,0xd3,0x59,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfe,0x26,0x01,0x35,0x37,0x30,0x2b,0x5a,0x7f,0x74,0xfe,0xf1,0x62,0x3a,0x37,0x86,0x01,0xf3,0xfe,0xfd,0x38,0x6c,0x5d,0x75,0x47,0x8a,0x47,0x34,0x24,0x6b,0x50,0x01,0x70,0x02, -0x06,0x58,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfd,0xff,0x01,0x5c,0x42,0x25,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x7e,0x64,0xfe,0x9f,0xfe,0x08,0x59,0x38,0x3d,0x87,0x58,0xac,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf3,0x06,0x02,0x00,0x3d,0x00,0xa2,0x40,0x5f,0x94,0x32,0x01,0x87,0x2e,0x01,0x98,0x15,0x01,0x86, -0x12,0x01,0x77,0x12,0x01,0x77,0x0f,0x87,0x0f,0x02,0x99,0x01,0x01,0x36,0x20,0x33,0x84,0x24,0x24,0x13,0x3a,0x19,0x38,0x84,0x1d,0x1d,0x13,0x20,0x20,0x19,0x19,0x0d,0x00,0x84,0x13,0x13,0x08,0x3f,0x2d,0x2c,0x2c,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x36,0x20,0x95,0x22,0x3a,0x19,0x0b,0x0a,0x0a,0x17,0x95,0x19,0x8b,0x2c,0x01, -0x18,0x31,0x01,0x9a,0x28,0x01,0x28,0x31,0x2c,0x03,0x2d,0x22,0x19,0x22,0x19,0x2d,0x01,0x11,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x33,0x11,0x39,0x10,0xed,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, -0x11,0x33,0x2f,0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26, -0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x04,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x03,0xf3,0x8f,0x80,0xd5,0xae,0x79,0x88,0x29,0x99,0x1c,0x55,0x4a,0x6c,0x01,0x3f,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x55,0x17,0x79,0xa1,0x2f,0x6a,0x3d,0x6d,0x41,0x5f,0x23,0x9d,0x01,0x32,0x6d,0x5c,0xc9, -0xc9,0x58,0x3a,0x37,0x01,0x2b,0xa2,0x55,0x4c,0x57,0x62,0xa7,0x5c,0x53,0x37,0x33,0x49,0x66,0x3a,0x32,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x44,0x1e,0x08,0x14,0x1b,0x10,0x24,0x54,0x60,0x48,0x1c,0x0b,0x18,0x2f,0xc9,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13,0x4b,0x47,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x95, -0x06,0x02,0x00,0x3d,0x00,0x45,0x00,0xc6,0x40,0x7a,0x76,0x41,0x01,0x57,0x41,0x67,0x41,0x02,0x65,0x30,0x01,0x99,0x2b,0x01,0x98,0x2a,0x01,0x99,0x29,0x01,0x99,0x28,0x01,0x99,0x17,0x01,0x9b,0x14,0x01,0x89,0x14,0x01,0x94,0x12,0x01,0x55,0x12,0x85,0x12,0x02,0x37,0x11,0x01,0x86,0x0d,0x01,0x89,0x07,0x01,0x6b,0x03,0x01,0x36,0x22, -0x33,0x84,0x26,0x26,0x15,0x3a,0x1b,0x00,0x22,0x22,0x2f,0x1b,0x01,0x1b,0x1b,0x42,0x38,0x84,0x1f,0x1f,0x15,0x2d,0x2c,0x3e,0x84,0x0b,0x0b,0x42,0x00,0x84,0x15,0x15,0x47,0x0f,0x42,0x83,0x06,0x3a,0x19,0x95,0x1b,0x42,0x95,0x0f,0x36,0x23,0x95,0x21,0x1b,0x0f,0x21,0x21,0x0f,0x1b,0x03,0x13,0x40,0x95,0x08,0x2c,0x2d,0x2d,0x08,0x01, -0x13,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x11,0x12,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x03,0x26,0x11,0x10,0x21,0x32,0x16,0x15,0x14,0x07,0x06,0x07,0x14,0x17,0x12,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17, -0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x23,0x22,0x11,0x36,0x37,0x36,0x04,0x95,0xfe,0x5f,0xfe,0xb4,0xb4,0x94,0x01,0x4e,0x67,0x7c,0x7d,0x7a,0x8f,0x67,0x87,0xf0,0x01,0x09,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x3d,0x40,0x41,0x51,0x21,0x81,0x1a,0x5b,0x88,0x0c,0x49,0x6d,0x5c, -0xc9,0xc9,0x58,0x3a,0x37,0xfd,0x5a,0x41,0xa3,0x65,0x45,0x3a,0x01,0x2b,0xfe,0xbd,0x01,0x30,0xfa,0x01,0x59,0x02,0x97,0x74,0x68,0xa0,0xa0,0x9b,0x26,0xd8,0xcc,0xfe,0xf1,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x36,0x29,0x27,0x28,0x39,0x50,0x4a,0x41,0x3c,0x59,0x0b,0x42,0x5c,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13, -0x4b,0x47,0x03,0xa4,0x55,0xfe,0x40,0x1b,0x83,0x6f,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x1d,0x04,0x18,0x00,0x19,0x00,0x27,0x01,0x04,0x40,0xb7,0x48,0x20,0x58,0x20,0x02,0x48,0x1c,0x58,0x1c,0x02,0x08,0x17,0x01,0x77,0x13,0x01,0x65,0x13,0x01,0x77,0x0f,0x01,0x65,0x0f,0x01,0x08,0x0b,0x01,0x25,0x1a,0x22,0x17,0x04,0x0b,0x03,0x0d, -0x19,0x19,0x15,0x83,0x1a,0x1a,0x29,0x22,0x83,0x0d,0x09,0x09,0x0d,0x1e,0x95,0x11,0x10,0x16,0x25,0x01,0x07,0x25,0x01,0xe7,0x25,0xf7,0x25,0x02,0xc5,0x25,0x01,0x97,0x25,0x01,0x73,0x25,0x83,0x25,0x02,0x64,0x25,0x01,0x47,0x25,0x57,0x25,0x02,0x25,0x09,0xda,0x0b,0x01,0x99,0x0b,0x01,0x0b,0x95,0x06,0x19,0xda,0x17,0x01,0x99,0x17, -0x01,0x17,0x95,0x19,0x00,0x01,0x08,0x00,0x01,0xe9,0x00,0xf9,0x00,0x02,0x9b,0x00,0x01,0x00,0x02,0x02,0x19,0x08,0x01,0x08,0x08,0x01,0xe9,0x08,0xf9,0x08,0x02,0x9b,0x08,0x01,0x08,0x0b,0x04,0x01,0xeb,0x04,0xfb,0x04,0x02,0x04,0x20,0x21,0x24,0x48,0x7c,0x04,0x01,0x5d,0x04,0x6d,0x04,0x02,0x4b,0x04,0x01,0x1a,0x04,0x2a,0x04,0x3a, -0x04,0x03,0x09,0x04,0x01,0xfa,0x04,0x01,0xdb,0x04,0xeb,0x04,0x02,0x9d,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x5d,0x5d,0x71,0x71,0x71,0x71,0x71,0x2b,0x71,0x72,0x33,0x5d,0x5d,0x71,0x71,0x33,0x2f,0x33,0x5d,0x5d,0x71,0x71,0xed,0x5d,0x5d,0x32,0x10,0xed,0x5d,0x5d,0x32,0x32,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x71,0x3f, -0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x17,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x37,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x16,0x37,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06, -0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x1d,0x92,0xec,0x84,0x73,0x73,0x85,0xec,0x92,0x8e,0xfb,0xe8,0x8a,0x7d,0xcc,0xcc,0x7e,0x8c,0xe8,0xfb,0x8e,0xfe,0xb7,0x59,0x4e,0x87,0x86,0x4e,0x57,0xa3,0x8a,0x8a,0xa2,0x1b,0x33,0x1e,0x1e,0x33,0x9c,0x47,0x02,0xa6,0x01,0x2a,0xe8,0x7d,0x71,0x71,0x7d,0xe8,0xfe,0xd6,0xa6,0x02,0x47,0x01,0x8b, -0xaa,0x56,0x4c,0x4c,0x56,0xaa,0x88,0xe0,0x39,0x39,0xe0,0x00,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x28,0x00,0x9a,0x40,0x5d,0x55,0x27,0x01,0x99,0x16,0x01,0x3a,0x16,0x4a,0x16,0x02,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x66,0x02,0x01,0x54,0x02,0x01,0x77,0x25,0x01,0x99,0x1a,0x01,0x8a,0x1a,0x01,0x59,0x1a, -0x69,0x1a,0x02,0x25,0x1a,0x24,0x19,0x19,0x0d,0x15,0x24,0x24,0x00,0x83,0x15,0x15,0x08,0x2a,0x1f,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x1a,0x1c,0x24,0x23,0x23,0x1f,0x19,0x25,0x95,0x0b,0x0a,0x18,0x0a,0x18,0x0a,0x11,0x1c,0x95,0x21,0x21,0x1e,0x95,0x1f,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f, -0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x11,0x33,0x2f,0x33,0x12,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17, -0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x25,0x15,0x01,0x16,0x17,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x86,0x57,0x5b,0xfe,0x54,0x52,0x01,0x65,0x77,0x77,0xab,0xb9,0x2b,0x93,0xcb,0xcc,0x01,0x03,0xfe,0x77,0xd2, -0x74,0x7e,0x1d,0xd2,0x7d,0x76,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x54,0x57,0x8c,0x01,0x4e,0x33,0x01,0xea,0x18,0x42,0x8c,0x42,0x42,0x33,0xfd,0xe1,0x19,0x6e,0x77,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x06,0x02,0x00,0x43,0x00,0xe0,0x40,0x8f,0x56,0x43,0x66,0x43,0x02,0x85,0x3d,0x01,0x57,0x3d,0x67,0x3d, -0x02,0x76,0x36,0x86,0x36,0x02,0x79,0x32,0x89,0x32,0x02,0x89,0x22,0x01,0x48,0x17,0x01,0x59,0x13,0x69,0x13,0x02,0x76,0x0f,0x86,0x0f,0x02,0x67,0x0f,0x01,0x56,0x0f,0x01,0x2d,0x2b,0x84,0x2e,0x30,0x30,0x15,0x85,0x3a,0x95,0x3a,0x02,0x3a,0x38,0x3e,0x83,0x9b,0x1f,0x01,0x79,0x1f,0x01,0x08,0x1f,0x01,0x1f,0x23,0x1d,0x1d,0x15,0x54, -0x40,0x01,0x41,0x40,0x00,0x19,0x19,0x0d,0x00,0x83,0x20,0x15,0x01,0x15,0x15,0x08,0x45,0x38,0x83,0x23,0x23,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2e,0x2d,0x40,0x41,0x1a,0x0b,0x0a,0x0a,0x11,0x18,0x95,0x1a,0x18,0x1f,0x01,0x3a,0x1f,0x1a,0x0f,0x2d,0x1f,0x2d,0x02,0x2d,0x1a,0x2d,0x1a,0x11,0x34,0x95,0x27,0x01,0x11, -0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x11,0x33,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11, -0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x24,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07, -0x27,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa7,0xfe,0xf2,0x2a,0xa7,0x89,0x79,0xaf,0xae,0x79,0x88,0x27,0x9d,0x1e,0x54,0x4a,0x6b,0x6c,0x4a, -0x55,0xa8,0x9c,0x9c,0xa8,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x8b,0x8b,0x98,0x8b,0xd9,0x5d,0x3f,0x66,0x1a,0x6a,0xc6,0xa8,0x61,0x57,0x57,0x62,0xa7,0x60,0x4f,0x37,0x37,0x45,0x67,0x39,0x32,0x32,0x39,0x67,0x98,0x4b,0x38,0x38,0x4d,0x9e,0xf3,0x36,0x04,0x0e, -0xba,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x21,0x00,0x2c,0x00,0x38,0x00,0x81,0x40,0x50,0x99,0x37,0x01,0x8a,0x37,0x01,0x85,0x31,0x01,0x8a,0x25,0x01,0x79,0x25,0x01,0x96,0x19,0x01,0x9a,0x16,0x01,0x7a,0x12,0x8a,0x12,0x02,0x9a,0x0b,0x01,0x7b,0x0b,0x01,0x7b,0x0a,0x01,0x1e,0x21,0x1c,0x01,0x1f,0x84,0x2e, -0x22,0x0e,0x0e,0x09,0x3a,0x28,0x83,0x14,0x14,0x33,0x83,0x09,0x40,0x09,0x0c,0x48,0x09,0x1c,0x22,0x95,0x0f,0x1f,0x0e,0x2e,0x01,0x95,0x20,0x0e,0x0e,0x35,0x26,0x95,0x18,0x01,0x35,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39, -0x2f,0xc4,0xc4,0xfd,0xc4,0xc4,0xde,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x35,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17, -0x16,0x33,0x13,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x04,0x92,0xfe,0xd4,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0xc6,0xb1,0x74,0x81,0x71,0x6b,0xb5,0xb6,0xcd,0x01,0x2c,0xfe,0xd4,0x01,0x2c,0xfe,0x2c,0x72,0x69,0xe1,0x4c,0x45,0x65,0xc6,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38,0x02,0x0e,0xa8,0xb5,0xc9, -0x57,0x5c,0xa8,0xab,0x60,0x58,0x9e,0x58,0x60,0xab,0xa8,0x5c,0x57,0xc9,0xb5,0xa8,0x98,0x9e,0x01,0x36,0xa8,0x68,0x7f,0xc4,0x60,0x39,0x32,0xfd,0x8a,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x03,0x00,0x60,0xfe,0x1e,0x07,0x48,0x06,0x02,0x00,0x31,0x00,0x3d,0x00,0x49,0x00,0xb9,0x40,0x79,0x46,0x45,0x01,0x46,0x43,0x01,0x49,0x3d, -0x01,0x49,0x33,0x01,0x55,0x45,0x01,0x59,0x43,0x01,0x55,0x3d,0x01,0x5a,0x33,0x01,0x44,0x83,0x0f,0x19,0x1f,0x19,0x3f,0x19,0x03,0x19,0x12,0x32,0x83,0x00,0x00,0x10,0x00,0x30,0x00,0x03,0x00,0x06,0x38,0x38,0x2c,0x0b,0x06,0x84,0x12,0x3e,0x3e,0x24,0x1f,0x12,0x24,0x22,0x95,0x25,0x27,0x01,0x34,0x95,0x44,0x2c,0x54,0x2c,0x02,0x2c, -0x2e,0x2e,0x42,0x95,0x44,0x1f,0x54,0x1f,0x02,0x1f,0x1d,0x0f,0x3c,0x95,0x79,0x06,0x01,0x6a,0x06,0x01,0x4b,0x06,0x5b,0x06,0x02,0x06,0x04,0x04,0x46,0x95,0x69,0x13,0x79,0x13,0x02,0x4b,0x13,0x5b,0x13,0x02,0x13,0x15,0x16,0x0b,0x09,0x95,0x0c,0x0e,0x1c,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x5d,0x5d,0xed,0x33,0x2f,0x33,0x5d,0x5d, -0x5d,0xed,0x3f,0x33,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xcc,0x33,0x2f,0x10,0xfd,0xce,0xc4,0x33,0x2f,0x10,0xdc,0x5d,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27, -0x26,0x35,0x35,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x01,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x07,0x48,0x7b,0x84,0xeb,0xbc,0x7a, -0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x7a,0xbc,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0xfc,0xe0,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa1,0x56,0x4b,0x01,0xf0,0xe6,0x8c,0x96,0x63,0xc9,0xd9,0x1b,0x94, -0x12,0x65,0x62,0x95,0xd1,0x63,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0x01,0x39,0xd9,0x1b,0x94,0x12,0x65,0x62,0x95,0xfe,0xbf,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x01,0x74,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x71,0x62,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2f,0x00,0xc2,0x40,0x83, -0x79,0x29,0x01,0x68,0x29,0x01,0x59,0x29,0x01,0x56,0x25,0x66,0x25,0x02,0x25,0x1f,0x01,0x77,0x1e,0x01,0x35,0x1e,0x01,0x85,0x1b,0x95,0x1b,0x02,0x8a,0x17,0x9a,0x17,0x02,0x75,0x12,0x01,0x67,0x12,0x01,0x7a,0x0f,0x01,0x2a,0x0a,0x01,0x69,0x09,0x01,0x06,0x02,0x16,0x02,0x02,0x2e,0x00,0x84,0x2d,0x2b,0x2b,0x0e,0x34,0x20,0x54,0x20, -0x64,0x20,0x84,0x20,0x04,0x20,0x23,0x1d,0x83,0x8b,0x0b,0x9b,0x0b,0x02,0x6d,0x0b,0x01,0x4a,0x0b,0x5a,0x0b,0x02,0x2f,0x0b,0x01,0x0b,0x08,0x20,0x0e,0x30,0x0e,0x02,0x0e,0x0e,0x31,0x23,0x83,0x08,0x14,0x84,0x15,0x15,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2d,0x2e,0x2e,0x27,0x20,0x20,0x04,0x15,0x15,0x0b,0x10,0x95,0x0b,0x19,0x10,0x27, -0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x03,0xf1,0x88,0x7d,0xaa,0xcf,0x85,0x8e,0xbc,0xae,0xae,0xbc,0xfe,0xfb,0x68,0x44, -0x4b,0xa6,0x7f,0x73,0xab,0xba,0x77,0x7c,0xbc,0xae,0xae,0xbc,0x5b,0x55,0x88,0x68,0x4e,0x55,0x1c,0x9a,0x28,0x6e,0xa9,0x6a,0x61,0x73,0x7b,0xd2,0xcd,0x76,0x4d,0x4e,0x58,0x85,0xf4,0x34,0x39,0x68,0xa8,0x61,0x57,0x60,0x63,0xa7,0xe0,0x72,0x4b,0x4b,0x57,0xa0,0x8b,0x50,0x4c,0x3c,0x42,0x68,0x49,0x33,0x37,0x51,0x00,0x01,0x00,0x5f, -0xfe,0x1e,0x03,0xf0,0x04,0x18,0x00,0x3b,0x00,0x76,0x40,0x49,0x56,0x2a,0x66,0x2a,0x76,0x2a,0x03,0x55,0x24,0x65,0x24,0x02,0x47,0x24,0x01,0x99,0x1a,0x01,0x9a,0x19,0x01,0x76,0x0a,0x86,0x0a,0x02,0x2f,0x31,0x84,0x2c,0x12,0x17,0x84,0x11,0x0c,0x0c,0x2e,0x2c,0x2c,0x3d,0x02,0x21,0x84,0x3b,0x6b,0x21,0x01,0x3a,0x21,0x4a,0x21,0x5a, -0x21,0x03,0x21,0x07,0x95,0x2e,0x2f,0x1c,0x2f,0x1c,0x2f,0x01,0x27,0x95,0x36,0x1c,0x11,0x12,0x12,0x01,0x0f,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x13,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x5f,0xa4,0x27,0x48,0x65,0x3e,0x2e,0x57,0x42,0x28,0x0c,0x07, -0x09,0x0a,0x99,0x0e,0x0b,0x0a,0x10,0x39,0x68,0x91,0x57,0x2a,0x53,0x4b,0x40,0x16,0x30,0x55,0x73,0x44,0x32,0x60,0x4b,0x2e,0x1c,0x99,0x29,0x49,0x79,0x9b,0x52,0x66,0xb1,0x81,0x4a,0x04,0x00,0x85,0x45,0x80,0x63,0x3b,0x20,0x42,0x66,0x46,0x26,0x43,0x1a,0x1e,0x1a,0x37,0x22,0x28,0x22,0x59,0x33,0x5f,0x96,0x67,0x36,0x15,0x24,0x2f, -0x1a,0xfd,0xbf,0x45,0x6d,0x4d,0x28,0x20,0x3c,0x55,0x35,0x4a,0x32,0x37,0x54,0x5b,0x56,0x8a,0x60,0x34,0x3d,0x74,0xa6,0x69,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x36,0x00,0x46,0x00,0x93,0x40,0x60,0x45,0x46,0x55,0x46,0x02,0x55,0x42,0x01,0x46,0x42,0x01,0x5a,0x3f,0x01,0x49,0x3f,0x01,0x59,0x39,0x01,0x4a,0x39, -0x01,0x64,0x27,0x01,0x69,0x23,0x01,0x79,0x1e,0x01,0x6a,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x02,0x16,0x12,0x26,0x12,0x46,0x12,0x56,0x12,0x04,0x2f,0x32,0x84,0x1a,0x1d,0x1a,0x0b,0x10,0x83,0x0a,0x05,0x05,0x2a,0x83,0x3c,0x30,0x3c,0x01,0x1a,0x3c,0x1a,0x3c,0x48,0x44,0x83,0x0f,0x20,0x1f,0x20,0x02,0x20,0x0a,0x0b,0x37,0x95,0x1d,0x2f, -0x2f,0x00,0x41,0x95,0x25,0x10,0x00,0x95,0x15,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x3e,0x02,0x35, -0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x06,0x06,0x15,0x14,0x1e,0x02,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xea,0x2a,0x46,0x32,0x1c,0x06, -0x04,0x04,0x06,0xa6,0x06,0x05,0x04,0x07,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x86,0xc1,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81,0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0xfe,0xa8,0x1f,0x35,0x45,0x27,0x1a,0x30,0x12,0x15,0x12,0x1d,0x16,0x1a,0x16, -0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0x02,0x06,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e,0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x01,0x00,0x40,0xfe,0x1e,0x04,0x96,0x04,0x18,0x00,0x33,0x00,0x93, -0x40,0x60,0x35,0x27,0x45,0x27,0x55,0x27,0x95,0x27,0x04,0x3a,0x23,0x4a,0x23,0x5a,0x23,0x03,0x65,0x16,0x01,0x94,0x2f,0x01,0x86,0x2f,0x01,0x64,0x2f,0x74,0x2f,0x02,0x2f,0x2a,0x8f,0x0c,0x9f,0x0c,0x02,0x3b,0x0c,0x4b,0x0c,0x5b,0x0c,0x03,0x18,0x0c,0x01,0x0c,0x0f,0x8b,0x01,0x9b,0x01,0x02,0x19,0x01,0x39,0x01,0x02,0x01,0x00,0x00, -0x1c,0x19,0x83,0x1d,0x20,0x20,0x35,0x2a,0x83,0x0f,0x09,0x09,0x0f,0x1d,0x1c,0x1c,0x0c,0x25,0x95,0x14,0x10,0x2f,0x01,0x0c,0x95,0x06,0x09,0x95,0x08,0x08,0x06,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x32, -0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x07,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x26,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0x96, -0x68,0x4f,0x98,0x9c,0xa4,0x5c,0xd7,0x94,0x4e,0xc0,0x6b,0xa8,0xb1,0x49,0x89,0xc5,0x7d,0x6f,0xb1,0x7b,0x42,0x0a,0x13,0x9d,0x0c,0x06,0x2b,0x52,0x77,0x4d,0x57,0x84,0x58,0x2d,0x43,0x84,0xc4,0x81,0x3a,0x65,0x5c,0x59,0xfe,0x9b,0x7d,0x3f,0x5e,0x3f,0x20,0x7e,0xa8,0x31,0x31,0x5e,0x01,0x30,0xca,0x7c,0xc7,0x8c,0x4b,0x4a,0x8a,0xc2, -0x78,0x28,0x4c,0x61,0x37,0x42,0x3a,0x23,0x56,0x8f,0x66,0x38,0x3b,0x68,0x90,0x54,0x81,0xb9,0x8e,0x71,0x39,0x1a,0x39,0x3e,0x44,0x00,0x00,0x03,0x00,0x70,0xff,0xea,0x02,0xf4,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x32,0x40,0x1a,0x0c,0xaf,0x12,0x12,0x1e,0x25,0x00,0xaf,0x06,0x06,0x18,0xaf,0x1e,0x15,0xb0,0x0f,0x0f,0x03, -0x21,0xb0,0x1b,0x16,0x03,0xb0,0x09,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x01,0x50,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x01,0xa4,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0xfe,0x5c,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x03,0xa8,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x28,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x2c,0x2f,0x41,0x42,0x2e,0x2e,0x43,0x42,0x00,0x00,0x02,0x00,0x32, -0x02,0x58,0x02,0x76,0x06,0x02,0x00,0x20,0x00,0x2e,0x00,0x67,0x40,0x3f,0xd7,0x2a,0x01,0x0a,0x1c,0x01,0xea,0x1c,0xfa,0x1c,0x02,0x0a,0x06,0x01,0xeb,0x06,0xfb,0x06,0x02,0x0b,0x05,0x01,0x05,0x02,0x01,0xe5,0x02,0xf5,0x02,0x02,0x10,0x11,0x11,0x00,0x00,0x21,0x10,0x21,0x02,0x21,0x1b,0x29,0x29,0x09,0x1b,0x1b,0x1d,0x25,0x2b,0x04, -0x00,0x25,0x01,0x25,0x16,0x0b,0x11,0x13,0x10,0x0e,0x0e,0x0b,0x01,0x00,0x3f,0x33,0x2f,0x33,0xcd,0x32,0x10,0xdd,0xdc,0x5d,0xdc,0xcd,0x10,0xcd,0x32,0x01,0x2f,0xcd,0x33,0x2f,0x10,0xdc,0x5d,0xcd,0x32,0x2f,0x33,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x5d,0x71,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x34,0x33,0x32, -0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x02,0x76,0x4a,0x4f,0x8d,0x89,0x4d,0x48,0xcf,0x26,0x8d,0x20,0x31,0x45,0x2c,0x4f,0x51,0x29,0x93,0x1b,0x35,0x13,0x0d,0x52,0x63,0x8d,0x48,0x42,0x78,0x1d, -0x24,0x65,0x64,0x29,0x21,0xae,0x63,0x26,0x1d,0x03,0x90,0x8a,0x54,0x5a,0x56,0x52,0x87,0x01,0xb0,0xcb,0x2a,0x2a,0x58,0x39,0x2a,0x1f,0x17,0x39,0xbc,0x48,0x55,0x4d,0x89,0x65,0x2a,0x35,0x38,0x2d,0x62,0xcb,0x3b,0x2e,0x00,0x01,0x00,0x28,0xff,0x40,0x04,0x25,0x04,0x18,0x00,0x32,0x00,0x8c,0x40,0x4f,0x96,0x23,0x01,0x1b,0x1c,0x1c, -0x19,0x84,0x1e,0x03,0x00,0x84,0x04,0x07,0x07,0x1e,0x1e,0x28,0x34,0x2c,0x2b,0x2b,0x2a,0x2e,0x0c,0x0d,0x0e,0x2d,0x2d,0x0e,0x0e,0x84,0x28,0x2a,0x14,0x28,0x2a,0xa8,0x2a,0xb8,0x2a,0x02,0x19,0x2a,0x29,0x2a,0x02,0x0a,0x2a,0x01,0x2a,0x1f,0x28,0x01,0x28,0x0c,0x03,0x09,0x95,0x2e,0x31,0x10,0x2a,0x95,0x2d,0x0f,0x16,0x95,0x20,0x25, -0x1c,0x1b,0x1b,0x0e,0x11,0x95,0x28,0x25,0x16,0x00,0x3f,0x33,0xed,0x32,0x33,0x2f,0x33,0x10,0xdc,0xed,0x3f,0xed,0x3f,0x33,0xfd,0xcc,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x33,0x2f, -0x39,0x31,0x30,0x5d,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x0d,0xa8,0x13,0x03,0x33,0x0d, -0x13,0xfe,0x54,0x7c,0x02,0x33,0x0d,0x13,0x01,0x2b,0x4a,0x30,0x40,0x50,0x72,0x7d,0x52,0x33,0x0d,0x13,0xfe,0xd4,0x4e,0x26,0x9f,0x08,0x8d,0xc7,0x1d,0x01,0x6e,0x18,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x73,0xfd,0xb6,0x09,0x1b,0x35,0x05,0x4d,0x13,0x53,0x41,0x6a,0x99,0x5b,0x57,0x2f,0x31, -0x05,0x51,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0x68,0x6b,0x15,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x30,0x00,0x95,0x40,0x54,0x9b,0x17,0x01,0x89,0x17,0x01,0x78,0x17,0x01,0x2f,0x30,0x02,0x00,0x00,0x84,0x30,0x1c,0x14,0x30,0x30,0x1c,0x30,0x1c,0x06,0x84,0x19,0x19,0x1c,0x1c,0x22,0x32,0x27,0x29,0x29,0x84,0x22, -0x24,0x14,0x22,0x22,0x24,0x26,0x25,0x25,0x24,0xa8,0x24,0xb8,0x24,0x02,0x24,0x22,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x1f,0x22,0x01,0x22,0x00,0x30,0x24,0x95,0x27,0x0f,0x2f,0x29,0x2c,0x95,0x10,0x15,0x0f,0x22,0x1c,0x02,0x1f,0x16,0x15,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x11,0x39,0xed,0x32,0x32,0x3f,0xed,0xd4, -0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17, -0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x9c,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75,0x9b,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03, -0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xba,0x43,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2d,0xa9,0x4a,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x30,0x04,0x18,0x00,0x33,0x00,0xbd, -0x40,0x74,0x78,0x15,0x01,0x9a,0x11,0x01,0x89,0x11,0x01,0x30,0x2d,0x2d,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xd9,0x1a,0x01,0x78,0x1a,0x01,0x1a,0x17,0x00,0x84,0x13,0x13,0x50,0x17,0x60,0x17,0x02,0x17,0x17,0x22,0x35,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x22,0x23,0xf7,0x23,0x01,0x88, -0x23,0xa8,0x23,0xc8,0x23,0x03,0x79,0x23,0x01,0x47,0x23,0x57,0x23,0x02,0x23,0x22,0x0a,0x0c,0x84,0x09,0x07,0x07,0x1f,0x22,0x01,0x22,0x40,0x0c,0x10,0x48,0x22,0x20,0x1a,0x1d,0x95,0x2d,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x0a,0x09,0x30,0x21,0x17,0x22,0x15,0x0f,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xc4,0x33,0xce,0x32,0x3f, -0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x05,0x14,0x07, -0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x16,0x04,0x30,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75, -0x9b,0x09,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x87,0x02,0x9c,0xb0,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2c,0xa9,0x4b,0x1d,0x2c,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0xb4,0x26, -0x26,0xfd,0x7d,0x0a,0x0c,0x32,0xba,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x04,0xa7,0x06,0x04,0x00,0x39,0x00,0x48,0x00,0xe4,0x40,0x9a,0x84,0x44,0x01,0x75,0x44,0x01,0x66,0x40,0x01,0x45,0x40,0x55,0x40,0x02,0x85,0x3f,0x01,0x8b,0x3d,0x01,0x7c,0x3d,0x01,0x48,0x3d,0x68,0x3d,0x02,0x79,0x3c,0x89,0x3c,0x02,0x48,0x36,0x58,0x36,0x68, -0x36,0x03,0x79,0x1e,0x89,0x1e,0x02,0x99,0x1d,0x01,0x99,0x1a,0x01,0x76,0x17,0x86,0x17,0x02,0x27,0x17,0x01,0x94,0x11,0x01,0x85,0x11,0x01,0x11,0x15,0x0c,0x0f,0x84,0x22,0x97,0x25,0x01,0x25,0x22,0x15,0x83,0x3a,0x03,0x00,0x84,0x04,0x07,0x07,0x89,0x3e,0x01,0x58,0x3e,0x78,0x3e,0x02,0x20,0x3e,0x3a,0x4f,0x22,0x5f,0x22,0x6f,0x22, -0x03,0x22,0x3a,0x22,0x3a,0x1c,0x4a,0x2e,0x31,0x84,0x2d,0x00,0x2a,0x10,0x2a,0x02,0x2a,0x2a,0x42,0x83,0x0f,0x1c,0x1f,0x1c,0x5f,0x1c,0x6f,0x1c,0x04,0x1c,0x25,0x0c,0x28,0x04,0x09,0x95,0x38,0x01,0x3e,0x95,0x20,0x20,0x45,0x28,0x95,0x33,0x2d,0x00,0x45,0x95,0x19,0x16,0x00,0x3f,0xed,0x3f,0xdc,0xed,0x11,0x39,0x2f,0xed,0x3f,0xfd, -0xce,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x11,0x33,0x5d,0x10,0xed,0x32,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x07, -0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x0f,0x02,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x10,0x07,0x06,0x21,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x37,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x01,0x34,0x27,0x26,0x27,0x06,0x07,0x06,0x15,0x14,0x16, -0x33,0x32,0x37,0x36,0x04,0xa7,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xaa,0x28,0x02,0x53,0x7c,0x1d,0x53,0x9e,0xa6,0xfe,0xf7,0xbd,0xde,0x90,0x93,0xfd,0x1d,0x09,0x15,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0x01,0xf7,0x44,0x30,0x9f,0xfe,0xc9,0x36,0x20,0x53,0xfe,0x84,0x6d,0x89,0x74,0xb9,0x77,0x6b,0x05, -0x50,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x35,0xc3,0x0a,0x0c,0x3c,0x42,0x63,0x25,0x66,0x95,0xfe,0xf7,0xb5,0xc0,0xc9,0xad,0xf8,0xb0,0xb4,0x2e,0x2f,0x38,0x19,0x30,0x71,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x9c,0x15,0xfc,0x5c,0x5e,0x48,0x2b,0x41,0x1b,0xa8,0x8b,0xbf,0x6d,0x85,0xa3,0x91,0x00,0x00,0x01, -0x00,0x28,0xfe,0x25,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x90,0x40,0x57,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0xb8,0x10,0xc8,0x10,0x02,0x10,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0xf7,0x19,0x01,0x88,0x19,0xa8,0x19,0xc8, -0x19,0x03,0x79,0x19,0x01,0x57,0x19,0x01,0x19,0x1f,0x18,0x01,0x18,0x40,0x0c,0x10,0x48,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x17,0x0d,0x04,0x18,0x15,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10, -0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25, -0x08,0x87,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x7e,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x01, -0x00,0x28,0xfe,0x25,0x06,0xc0,0x04,0x18,0x00,0x30,0x00,0xb5,0x40,0x69,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x23,0xc8,0x23,0x01,0x86,0x23,0x01,0x57,0x23,0x77,0x23,0x02,0x23,0x5f,0x22,0x8f,0x22,0xbf,0x22,0x03,0x22,0x17,0x2c,0x0e,0x0c,0x0c,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xa8, -0x1a,0xc8,0x1a,0x02,0x1a,0x17,0x12,0x84,0x13,0x13,0x17,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xb8,0x06,0x01,0x06,0x04,0x17,0x0c,0x06,0x09,0x95,0x2c,0x01,0x2f,0x2f,0x20,0x1a,0x1d,0x95,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x03,0x04,0x21,0x17,0x0e,0x22,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0xd4,0xc4,0x3f, -0xed,0x3f,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x18,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x31, -0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56,0x86,0x13, -0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfd,0x81,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35, -0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x86,0x71,0x15,0x00,0x00,0x02,0xff,0x3f,0xff,0xe7,0x04,0x25,0x06,0x04,0x00,0x2d,0x00,0x3f,0x00,0xa4,0x40,0x5e,0x87,0x04,0x01,0x76,0x04,0x01,0x64,0x04,0x01,0x53,0x04,0x01,0x03,0x01,0x01,0x84,0x3f,0x3d,0x14,0x3f,0x3f,0x3d,0x08,0x3f,0x18,0x3f,0x02,0x3f,0x3d,0x3d,0x0b,0x41, -0x1b,0x1d,0x84,0x18,0x34,0x33,0x29,0x28,0x27,0x35,0x27,0x35,0x35,0x84,0x0b,0x0e,0x14,0x0b,0x0b,0x0e,0x1a,0x18,0x18,0x0e,0x39,0x0e,0x01,0x2a,0x0e,0x01,0x0e,0x1f,0x0b,0x01,0x0b,0x3f,0x33,0x30,0x95,0x29,0x01,0x2c,0x10,0x0e,0x11,0x95,0x27,0x24,0x01,0x16,0x95,0x1f,0x1b,0x00,0x3d,0x35,0x38,0x95,0x0b,0x03,0x08,0x16,0x00,0x3f, -0x33,0x33,0xed,0x32,0x32,0x3f,0xde,0xed,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d, -0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37, -0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x9f,0x08,0xec,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x51,0x01,0x75,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94, -0x2c,0x5f,0x15,0xb4,0x27,0x25,0x04,0x4a,0x10,0x0d,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0x8b,0x6a,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x02,0x00,0x5b,0xff,0xa7,0x06,0xc3,0x04,0x58,0x00,0x3a,0x00,0x4c,0x00,0xf0,0x40,0x85, -0x88,0x2c,0x98,0x2c,0x02,0x87,0x1c,0x01,0x76,0x1b,0x86,0x1b,0x96,0x1b,0x03,0x97,0x07,0x01,0x1d,0x1c,0x1c,0x18,0x16,0x36,0x01,0x07,0x36,0x01,0x36,0x16,0x49,0x4a,0x4b,0x4c,0x18,0x16,0x16,0x84,0x4c,0x20,0x14,0x4c,0x4c,0x20,0x4c,0x20,0x40,0x41,0x42,0x31,0x31,0x42,0x42,0x84,0x26,0x29,0x14,0x26,0x26,0x29,0x2e,0x2d,0x2d,0x29, -0x29,0x5f,0x26,0x01,0x26,0x20,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x50,0x0d,0x01,0x0d,0x20,0x4c,0x40,0x29,0x3d,0x95,0x34,0x16,0x10,0x13,0x95,0x36,0x01,0x39,0x39,0x34,0x2d,0x2e,0x2e,0x31,0x34,0x10,0x49,0x42,0x45,0x95,0x23,0x0d,0x08,0x04,0x09,0x09,0x96,0x1c,0x01,0x1c,0x1d,0x1d,0x23,0x26, -0x26,0x20,0x18,0x23,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x11,0x33,0x2f,0x33,0x5d,0x33,0x2f,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xcc,0x5d,0x32,0x11, -0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35, -0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x05,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xc3,0x08,0x81,0x04, -0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x53,0x80,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x84,0x17,0x01,0x8f,0x4b,0x29,0x9f,0xfc,0xbb,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03, -0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x9f,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x22,0x39,0x62,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, -0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x28,0x00,0x00,0x03,0xa4,0x04,0x00,0x00,0x1f,0x00,0x52,0x40,0x2f,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xd8,0x06,0x01,0x06,0x00,0x04,0x01,0x04,0x04,0x21,0x15,0x17,0x84,0x14,0x13,0x12,0x10,0x0e,0x95,0x0f,0x19,0x1f,0x19,0x02,0x19,0x06,0x09,0x95,0x01,0x1e, -0x12,0x95,0x15,0x0f,0x03,0x04,0x15,0x00,0x3f,0xc4,0x3f,0xed,0xde,0x32,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0x33,0xce,0x32,0xed,0x32,0x12,0x39,0x2f,0x5d,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x23,0x37,0x21,0x06,0x15, -0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x03,0xa4,0x08,0x8a,0xa3,0x8e,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x02,0xc7,0x1d,0x01,0x6e,0x1f,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x02,0xec,0x25,0x27,0xfd,0x60,0x02,0xc3,0x0f,0x0e,0x2b,0x05,0x34,0x15,0x96,0x12,0x10,0x8b,0x78,0x15,0x28,0x05,0x31,0x15,0x00,0x00,0x02,0x00,0x59, -0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x27,0x00,0x37,0x00,0x95,0x40,0x4e,0x36,0x35,0x0f,0x0e,0x0d,0x04,0x01,0x01,0x84,0x37,0x0d,0x14,0x37,0x37,0x0d,0x37,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x39,0x2e,0x2d,0x23,0x22,0x21,0x2f,0x21,0x2f,0x2f,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x84,0x1c,0x1c,0x18,0x87,0x18,0x01,0x18, -0x1f,0x15,0x01,0x15,0x37,0x2d,0x2a,0x95,0x23,0x21,0x18,0x01,0x26,0x10,0x1c,0x00,0x35,0x2f,0x32,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e, -0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13, -0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x04,0x25,0x09,0x99,0x13,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x09,0x99,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x54,0x7c, -0x03,0x33,0x0d,0x13,0x01,0xac,0x7c,0x03,0x03,0x64,0x22,0x2a,0xfd,0x3b,0x58,0x59,0x09,0x1d,0xfe,0xa9,0x01,0x50,0x16,0x0e,0x35,0x85,0x14,0x6b,0x15,0xb4,0x22,0x2a,0x02,0xc5,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0xc0,0x35,0x05,0x73,0xfd,0xaf,0x0e,0x0f,0x35,0x05,0x73,0x02,0x51,0x0e,0x00, -0x00,0x02,0x00,0x31,0xff,0xa7,0x06,0xbe,0x04,0x58,0x00,0x30,0x00,0x42,0x00,0xd9,0x40,0x7c,0x79,0x22,0x01,0x87,0x07,0x01,0x76,0x07,0x01,0x24,0x23,0x23,0x1f,0x27,0x1b,0x1c,0x1c,0x84,0x1d,0x1f,0x14,0x1d,0x1f,0x7a,0x1f,0x8a,0x1f,0x9a,0x1f,0x03,0x1f,0x1d,0x12,0x07,0x2c,0x17,0x2c,0x02,0x2c,0x36,0x38,0x38,0x84,0x12,0x15,0x14, -0x12,0x12,0x15,0x15,0x12,0x09,0x08,0x08,0x04,0x41,0x40,0x3f,0x0c,0x42,0x0c,0x97,0x04,0x01,0x04,0x01,0x01,0x84,0x42,0x0c,0x14,0x42,0x42,0x0c,0x42,0x0c,0x12,0x42,0x36,0x33,0x95,0x2c,0x01,0x2f,0x2f,0x2a,0x9a,0x23,0x01,0x8b,0x23,0x01,0x23,0x24,0x24,0x1b,0x15,0x18,0x95,0x27,0x1f,0x2a,0x10,0x1c,0x1d,0x15,0x3f,0x38,0x3b,0x95, -0x0f,0x85,0x08,0x95,0x08,0x02,0x08,0x09,0x09,0x12,0x0c,0x04,0x0f,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x10,0x87,0xc4,0x0e, -0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35, -0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x80,0x02,0x33, -0x0d,0x13,0xfe,0x57,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x83,0x18,0x01,0x8a,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x62,0x15,0xb4,0x27,0x25,0x02,0x54, -0x09,0x14,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x83,0x6e,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x05,0x4c,0x06,0x04,0x00,0x30,0x00,0x3d,0x00,0xcc,0x40,0x7d,0x56,0x3c,0x01,0x95,0x38,0x01, -0x87,0x38,0x01,0x89,0x35,0x01,0x95,0x0e,0x01,0x46,0x0e,0x56,0x0e,0x02,0x8a,0x07,0x01,0x21,0x23,0x84,0x20,0x1e,0x1e,0x14,0x00,0x01,0x01,0x2d,0x31,0x12,0x13,0x14,0x3d,0x14,0x2e,0x2f,0x05,0x06,0x2d,0x06,0x2d,0x2d,0x84,0x14,0x3d,0x14,0x14,0x14,0x3d,0x14,0x3d,0x3d,0x3f,0x37,0x83,0x0c,0x1c,0x95,0x0f,0x25,0x1f,0x25,0x02,0x25, -0x14,0x17,0x95,0x2d,0x2a,0x01,0x20,0x00,0x05,0x31,0x33,0x54,0x00,0x64,0x00,0x02,0x45,0x00,0x01,0x16,0x00,0x26,0x00,0x36,0x00,0x03,0x07,0x00,0x01,0x66,0x2f,0x01,0x12,0x2f,0x00,0x03,0x10,0x01,0x01,0x33,0x95,0x20,0x10,0x01,0x10,0x10,0x47,0x3d,0x01,0x3d,0x39,0x95,0x06,0x0a,0x16,0x00,0x3f,0x33,0xed,0x32,0x5d,0x3f,0x5d,0xed, -0x32,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x39,0x3f,0x3f,0x33,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x26,0x27,0x26,0x27,0x03,0x06,0x07,0x06,0x23,0x20,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x16,0x05,0x26,0x23,0x20,0x07,0x06,0x15,0x14,0x33,0x32,0x37, -0x36,0x37,0x05,0x4c,0x25,0x1c,0x20,0x4d,0x51,0x7e,0x21,0xc3,0x98,0xa8,0xfe,0x85,0xee,0xf7,0x01,0x75,0x27,0x1b,0x3c,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x3b,0x83,0xfe,0xc0,0x1f,0x1a,0xfe,0xe3,0xc8,0xbb,0xee,0x59,0x73,0x8d,0x10,0x03,0x9b,0xa2,0x15,0x12,0x2d,0x1b, -0xfd,0xb3,0x9c,0x55,0x43,0x01,0x7a,0x01,0x1f,0xc9,0xd0,0x02,0x01,0x1a,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0xee,0x23,0x4f,0x03,0xaf,0xa4,0xcc,0xfb,0x2d,0x36,0x4c,0x00,0x01,0x00,0x31,0x00,0x00,0x04,0x8d,0x06,0x04,0x00,0x33,0x00,0x9e,0x40,0x59,0x03,0x00,0x84,0x06, -0x18,0x15,0x15,0x84,0x24,0x21,0x14,0x24,0x24,0x21,0x04,0x06,0x06,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x00,0x21,0x01,0x21,0x21,0x2c,0x35,0x2a,0x0f,0x0e,0x2b,0x0e,0x2b,0x2b,0x84,0x2c,0x2d,0x14,0x2c,0x2d,0x08,0x2d,0x01,0x2d,0x2c,0x2f,0x03,0x01,0x03,0x03,0x12,0x19,0x0e,0x01,0x0e,0x09,0x95,0x77,0x2d,0x01,0x26,0x2d,0x01,0x19, -0x2d,0x01,0x2d,0x32,0x01,0x21,0x27,0x18,0x12,0x1d,0x2b,0x2c,0x15,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x10,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0xc4,0x11,0x39,0x11,0x39,0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x11,0x39,0x2f,0x5d,0x01,0x2f,0x33,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x12,0x01,0x39,0x18, -0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23, -0x22,0x07,0x05,0x03,0x23,0x01,0x36,0x37,0x25,0x36,0x33,0x32,0x04,0x8d,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x3e,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x27,0x13,0x03,0x12,0xa4,0x12,0x03,0x14,0x28,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0x01,0x06,0x1f,0xae,0x01,0x76,0x53,0x21,0x9f,0x05,0x50,0x27,0x25,0x41, -0x64,0x0f,0x0e,0x35,0x05,0x63,0x0f,0x32,0xfe,0xc9,0x6a,0x15,0xb4,0x2a,0x22,0xa7,0x51,0x44,0x30,0x3d,0xfe,0x91,0x01,0x6f,0x3d,0x2d,0x34,0x65,0xc9,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x04,0xd0,0x94,0x2c,0x5f,0x15,0x00,0x01,0x00,0x5b,0xff,0xa7,0x06,0xea,0x04,0x58,0x00,0x35,0x00,0xba,0x40,0x67,0x96,0x05,0x01,0x07,0x87,0x06, -0x01,0x06,0x06,0x96,0x02,0x01,0x87,0x02,0x01,0x02,0x00,0x00,0x84,0x35,0x34,0x14,0x35,0x35,0x34,0x35,0x0a,0x50,0x34,0x01,0x34,0x2a,0x2c,0x2e,0x2e,0x84,0x2a,0x2b,0x14,0x2a,0x2a,0x2b,0x2b,0x2a,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x99,0x18,0x01,0x08,0x18,0x01,0x18,0x5f,0x15,0x01,0x15,0x0f, -0x2a,0x00,0x35,0x2b,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x2b,0x0f,0x34,0x2e,0x31,0x95,0x0d,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x12,0x0d,0x06,0x07,0x07,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0xc4,0x33,0x2f,0x33,0x10,0xd4,0xc4,0x01,0x2f, -0x33,0xcc,0x5d,0x32,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcc,0x5d,0x32,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x32,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23, -0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x06,0xea,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x82,0x4b,0x29,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04, -0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73, -0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x01,0x00,0x28,0xff,0xa7,0x05,0xa2,0x04,0x18,0x00,0x36,0x00,0x8e,0x40,0x4e,0x86,0x05,0x01,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x36,0x35,0x14,0x36,0x36,0x35,0x36,0x0a,0x35,0x35,0x10,0x38,0x20,0x22,0x84,0x1d,0xa7,0x2c,0x01,0x2c,0x2f,0x2f,0x84,0x10,0x13,0x14, -0x10,0x10,0x13,0x1f,0x1d,0x1d,0x13,0xd8,0x13,0x01,0x13,0x10,0x00,0x36,0x0f,0x1b,0x95,0x24,0x13,0x16,0x95,0x2c,0x29,0x10,0x1f,0x0f,0x35,0x2f,0x32,0x95,0x0d,0x94,0x06,0x01,0x06,0x07,0x07,0x10,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0xdc,0xed,0x3f,0xc4, -0x01,0x2f,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22, -0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51, -0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x28,0xfe,0x25, -0x05,0xa2,0x04,0x18,0x00,0x39,0x00,0x88,0x40,0x48,0x0c,0x0d,0x38,0x39,0x02,0x00,0x00,0x84,0x39,0x0b,0x14,0x39,0x39,0x0b,0x39,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13,0x3b,0x23,0x25,0x84,0x20,0x2f,0x32,0x32,0x84,0x13,0x16,0x14,0x13,0x13,0x16,0x22,0x20,0x20,0x16,0x16,0x13,0x00,0x39,0x0f,0x1e,0x95,0x27,0x16,0x19,0x95,0x2c, -0x2f,0x2c,0x22,0x22,0x2c,0x10,0x38,0x32,0x35,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0xdc,0xed,0x3f,0xc4,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f, -0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14, -0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xc3,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x85,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0x53,0x52,0x5f,0x09,0x1d,0xfe, -0xa9,0x01,0x4e,0x18,0x0e,0x61,0x59,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x59,0xff,0xa7,0x06,0xbc,0x05,0xec,0x00,0x3b,0x00,0xc6,0x40,0x6e,0x96,0x07,0x01,0x31,0x84,0x30, -0x30,0x19,0x2a,0x2b,0x2c,0x18,0x2c,0x16,0x37,0x36,0x35,0x17,0x35,0x17,0x17,0x84,0x18,0x2c,0x14,0x18,0x18,0x2c,0x57,0x2c,0x01,0x2c,0x18,0x22,0x24,0x24,0x84,0x1f,0x21,0x14,0x1f,0x21,0x38,0x21,0x01,0x09,0x21,0x01,0x21,0x6f,0x1f,0x01,0x1f,0x18,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x28,0x10,0x01, -0x10,0x20,0x0d,0x50,0x0d,0x02,0x0d,0x18,0x16,0x10,0x13,0x95,0x37,0x35,0x2c,0x01,0x3a,0x10,0x31,0x30,0x00,0x22,0x21,0x0f,0x2a,0x24,0x27,0x95,0x1f,0x19,0x1c,0x16,0x0d,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33,0x2f,0x33,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0x3f,0xc4,0x3f,0x33,0x33,0x33,0x33,0xed, -0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x5d,0x01,0x14, -0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x06,0xbc,0x08,0x81,0x04,0x15, -0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0e,0x12,0x01,0xa7,0x98,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e, -0x0f,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0f,0x0e,0x35,0x05,0x72,0x02,0xc3,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x59,0xff,0xa7,0x04,0x4c,0x05,0xec,0x00,0x26,0x00,0x7d,0x40,0x45,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x26,0x25,0x14, -0x26,0x26,0x25,0x18,0x26,0x01,0x26,0x0a,0x25,0x25,0x10,0x28,0x1c,0x1f,0x1f,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x18,0x84,0x17,0x17,0x13,0x08,0x13,0x28,0x13,0x38,0x13,0x03,0x13,0x1f,0x10,0x01,0x10,0x1c,0x13,0x00,0x26,0x0f,0x17,0x00,0x25,0x1f,0x22,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33, -0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x3f,0xc4,0x33,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22, -0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4c,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x97,0x14,0x01,0x14,0xa4,0x14,0x01,0x14,0x9c,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f, -0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0xc5,0x5e,0x53,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x5b,0x5f,0xfd,0x18,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x02,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x27,0x00,0x39,0x00,0xab,0x40,0x64,0x86,0x0e,0x01,0x75,0x0e,0x01,0x88,0x04,0x01,0x03,0x01,0x01, -0x84,0x39,0x37,0x14,0x39,0x39,0x37,0x18,0x39,0x01,0x09,0x39,0x01,0x39,0x37,0x12,0x13,0x13,0x37,0x37,0x18,0x3b,0x23,0x0a,0x2d,0x2f,0x2f,0x84,0x18,0x1b,0x14,0x18,0x18,0x1b,0x20,0x1f,0x1f,0x1b,0x09,0x1b,0x01,0x1b,0x1f,0x18,0x3f,0x18,0x02,0x18,0x39,0x2d,0x2a,0x95,0x26,0x1f,0x1b,0x20,0x20,0x23,0x01,0x26,0x10,0x5a,0x13,0x6a, -0x13,0x9a,0x13,0x03,0x13,0x15,0x12,0x12,0x10,0x95,0x15,0x1c,0x37,0x2f,0x32,0x95,0x18,0x0a,0x79,0x03,0x01,0x03,0x08,0x16,0x00,0x3f,0x33,0x5d,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d, -0x10,0xc4,0x01,0x33,0x32,0x11,0x12,0x39,0x18,0x2f,0x33,0x2f,0x33,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16, -0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x08,0x0b,0x02,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13, -0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94,0x2c,0x5f,0x15,0x01,0x18,0x08,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x25,0x3f,0x6b,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20, -0x0f,0x00,0x00,0x01,0x00,0x5b,0xfe,0x25,0x06,0xea,0x05,0xec,0x00,0x42,0x00,0xb9,0x40,0x64,0x31,0x33,0x33,0x84,0x2f,0x30,0x14,0x2f,0x2f,0x30,0x30,0x2f,0x26,0x29,0x29,0x84,0x1a,0x1d,0x14,0x1a,0x1a,0x1d,0x22,0x21,0x21,0x1d,0x1d,0x5f,0x1a,0x8f,0x1a,0x02,0x1a,0x2f,0x40,0x84,0x3f,0x3f,0x0e,0x0f,0x39,0x3a,0x3b,0x04,0x01,0x01, -0x84,0x3b,0x0d,0x14,0x3b,0x3b,0x0d,0x68,0x3b,0x01,0x3b,0x0d,0x08,0x84,0x09,0x09,0x60,0x0d,0x01,0x0d,0x14,0x2f,0x3f,0x00,0x26,0x21,0x1d,0x22,0x22,0x3b,0x31,0x01,0x30,0x0f,0x39,0x33,0x36,0x95,0x12,0x2f,0x29,0x2c,0x95,0x1a,0x14,0x17,0x17,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x33, -0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0xc4,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x01,0x2f,0x33,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x33,0x18,0x2f,0xed,0x10,0xcc,0x5d,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33, -0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33, -0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x06,0xea,0x13,0xb2,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x83,0x4a,0x2a,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0x96,0x14,0x01,0x14, -0xa4,0x14,0x01,0x04,0x66,0x5f,0x5b,0xfc,0xa7,0x52,0x5f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x61,0x59,0x14,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x02,0xc3,0x5e,0x53,0x14, -0x12,0x01,0x69,0xfe,0x97,0x12,0x00,0x03,0x00,0x5b,0xfe,0x25,0x06,0xbe,0x04,0x58,0x00,0x32,0x00,0x3e,0x00,0x50,0x01,0x06,0x40,0x94,0x25,0x2e,0x01,0x06,0x2e,0x16,0x2e,0x02,0x2e,0x38,0x18,0x4d,0x4e,0x4f,0x50,0x17,0x50,0x0d,0x38,0x0e,0x38,0x0e,0x0e,0x84,0x17,0x50,0x14,0x17,0x17,0x50,0x50,0x17,0x16,0x29,0x26,0x29,0x02,0x07, -0x29,0x01,0x29,0x44,0x46,0x46,0x84,0x1e,0x21,0x14,0x1e,0x1e,0x21,0x26,0x25,0x25,0x21,0x21,0x1e,0x17,0x12,0x84,0x13,0x13,0x17,0x09,0x08,0x08,0x04,0x3b,0x3c,0x3d,0x3e,0x04,0x01,0x01,0x84,0x3e,0x0c,0x14,0x3e,0x3e,0x0c,0x3e,0x20,0x0c,0x50,0x0c,0x02,0x0c,0x17,0x50,0x44,0x41,0x95,0x2c,0x3e,0x38,0x35,0x95,0x2e,0x01,0x31,0x31, -0x2c,0x25,0x21,0x26,0x26,0x29,0x2c,0x10,0x4d,0x46,0x39,0x49,0x95,0x1b,0x7b,0x3b,0x01,0x3b,0xa9,0x0c,0x01,0x9a,0x0c,0x01,0x7b,0x0c,0x8b,0x0c,0x02,0x0c,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x1e,0x18,0x17,0x0e,0x0d,0x1b,0x16,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x5d,0x33,0x5d,0x5d,0x5d,0x33, -0x5d,0x10,0xed,0x32,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x01,0x2f,0xcd,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4, -0x01,0x32,0x5d,0x5d,0x11,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x10,0x87,0x0e,0xc4,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36, -0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x25,0x36,0x37,0x13,0x36,0x25,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfd,0xf4,0x03,0x01,0x0c,0xa4, -0x0c,0x01,0x17,0xfe,0x81,0x50,0x24,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x85,0x16,0x01,0x8a,0x4e,0x26,0x9f,0xa7,0x33,0x0e,0x12,0xfe,0x58,0x8c,0x01,0xd5,0x36,0x0b,0x6e,0x03,0xfd,0x67,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd, -0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x77,0x29,0x1c,0x09,0x1d,0xfe,0xa9,0x01,0x39,0x1a,0x21,0x5d,0x6b,0x65,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x7f,0x6a,0x15,0xc0,0x35,0x05,0x73,0xfd,0x58,0x6d,0x0d,0x34,0x02,0x20,0x0f,0x0e,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, -0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x71,0xfe,0x25,0x04,0x75,0x05,0xec,0x00,0x39,0x00,0xb1,0x40,0x63,0x30,0x84,0x2f,0x2f,0x2b,0x21,0x1e,0x84,0x22,0x2f,0x25,0x01,0x25,0x25,0x2b,0x03,0x00,0x84,0x04,0x7f,0x07,0x01,0x07,0x07,0x34,0x2a,0x19,0x18,0x17,0x2b,0x17,0x0d,0x0c,0x35,0x34,0x0e,0x34,0x0e,0x0e,0x84, -0x17,0x2b,0x14,0x17,0x17,0x2b,0x89,0x2b,0x01,0xf8,0x2b,0x01,0x99,0x2b,0x01,0x85,0x2b,0x01,0x66,0x2b,0x01,0x08,0x2b,0x01,0x2b,0x17,0x12,0x84,0x13,0x13,0x17,0x2a,0x35,0x38,0x27,0x95,0x0c,0x19,0x09,0x1c,0x1c,0x03,0x09,0x95,0x38,0x34,0x2b,0x38,0x22,0x22,0x38,0x10,0x2f,0x00,0x0e,0x17,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x3f, -0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xfd,0xcc,0x32,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x5d,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0x33,0xed, -0x32,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x37,0x36,0x33, -0x32,0x04,0x75,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xad,0x9f,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x13,0x92,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xd0,0x15,0x01,0x14,0xa4,0x14,0x01,0x0a,0x78,0x44,0x30,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x36,0xfd,0x01,0x52,0x5f,0x09,0x1d,0xfe,0xa9, -0x01,0x4d,0x19,0x0e,0x5d,0x5d,0x02,0xc9,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x41,0x67,0x4e,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x44,0x44,0x25,0x15,0x00,0x01,0x00,0x28,0xff,0xa7,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x84,0x40,0x4a,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10, -0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0x88,0x19,0x01,0x79,0x19,0x01,0x18,0x19,0x01,0x19,0x1f,0x18,0x3f,0x18,0x02,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x0d,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33, -0x2f,0x33,0x33,0x5d,0x33,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26, -0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46, -0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x21,0x00,0x7e,0x40,0x45,0x20,0x0d,0x0c,0x0b,0x00,0x02,0x02,0x84,0x0b,0x21,0x14,0x0b,0x0b,0x21,0xa8,0x21,0x01,0x21,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13, -0x23,0x18,0x1a,0x1a,0x84,0x13,0x15,0x14,0x13,0x13,0x15,0x17,0x16,0x16,0x15,0xa9,0x15,0xb9,0x15,0x02,0x15,0x1f,0x13,0x01,0x13,0x00,0x21,0x15,0x95,0x18,0x0f,0x20,0x1a,0x1d,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33, -0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33, -0x32,0x37,0x25,0x13,0x04,0x4e,0xc5,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x10,0x06,0xfe,0x84,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x53,0x51,0x60,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x73,0x47,0x19,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35, -0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x5b,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x2c,0x00,0x8e,0x40,0x52,0x75,0x12,0x85,0x12,0x02,0x85,0x11,0x01,0x76,0x11,0x01,0x98,0x0c,0x01,0x95,0x08,0x01,0x95,0x07,0x01,0x2b,0x1a,0x02,0x00,0x00,0x84,0x2c,0x1a,0x14,0x2c,0x2c,0x1a,0x2c,0x1a,0x06,0x84,0x17,0x17,0x1a,0x1a,0x20,0x2e,0x23,0x25, -0x25,0x84,0x20,0x22,0x14,0x20,0x20,0x22,0x22,0x20,0x0f,0x84,0x0e,0x0e,0x1f,0x20,0x01,0x20,0x00,0x2c,0x23,0x22,0x0f,0x2b,0x25,0x28,0x95,0x0e,0x0f,0x20,0x1a,0x02,0x1d,0x16,0x13,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x32,0xed,0x32,0x32,0x3f,0xc4,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x87,0x10, -0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35, -0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x1a,0x9f,0x77,0xb5,0x9a,0x6f,0x61,0x12,0x9d,0x08,0x41,0x4c,0x67,0x5d,0x4a,0x61,0x19,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0xa8,0xa8,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xb0,0x43,0xae,0x51,0x3c,0x60,0x54, -0x6c,0x19,0x39,0x36,0x40,0x23,0x2f,0x5b,0x2d,0x9f,0x4a,0x70,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x33,0x00,0x97,0x40,0x52,0x96,0x07,0x01,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x21, -0x35,0x29,0x84,0x28,0x28,0x24,0x17,0x16,0x2f,0x2e,0x2d,0x18,0x2d,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0xe6,0x24,0x01,0xd7,0x24,0x01,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x1f,0x21,0x3f,0x21,0x02,0x21,0x16,0x10,0x13,0x95,0x2f,0x2d,0x24,0x01,0x32,0x10,0x28,0x00,0x0d,0x08,0x04,0x09,0x09,0x18,0x21,0x15,0x1d,0x1b,0x00,0x3f, -0x3f,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30, -0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07, -0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x3e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4b,0x18, -0x11,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x34,0x00,0xa5,0x40,0x5f,0x9a,0x23,0x01,0x76,0x1b,0x86,0x1b,0x02,0x95,0x07,0x01,0x77,0x07,0x87,0x07,0x02,0x1f,0x20,0x20,0x50,0x20,0x60,0x20,0x03,0x20,0x20,0x09,0x08, -0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x25,0x36,0x2d,0x2c,0x2c,0x28,0x30,0x16,0x18,0x18,0x84,0x25,0x28,0x14,0x25,0x28,0x28,0x1f,0x25,0x01,0x25,0x2c,0x28,0x2d,0x2d,0x16,0x10,0x13,0x95,0x30,0x01,0x33,0x10,0x9a,0x20,0x01,0x20,0x22,0x1f,0x1f,0x1d,0x95,0x22,0x1c,0x08,0x09,0x09,0x25,0x18,0x0d, -0x04,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x32,0x2f,0x5d, -0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81, -0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0x7a,0x23,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72, -0xfd,0xba,0xa7,0x61,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x00,0x00,0x02,0x00,0x59,0xff,0xe7,0x06,0xbc,0x05,0xec,0x00,0x2a,0x00,0x36,0x00,0xb6,0x40,0x64,0x20,0x84,0x1f,0x1f,0x1b,0x1a,0x2b,0x36,0x0f,0x0e,0x1b,0x0e,0x0c,0x26,0x25,0x24,0x0d,0x24, -0x0d,0x0d,0x84,0x0e,0x1b,0x14,0x0e,0x0e,0x1b,0x88,0x1b,0x01,0x79,0x1b,0x01,0x1b,0x0e,0x2d,0x30,0x30,0x84,0x15,0x18,0x14,0x15,0x18,0x78,0x18,0x01,0x69,0x18,0x01,0x08,0x18,0x01,0x18,0x15,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x04,0x0e,0x2d,0x2b,0x95,0x24,0x1b,0x18,0x1a,0x1a,0x0c,0x06,0x09,0x95,0x26, -0x01,0x29,0x10,0x1f,0x00,0x36,0x30,0x33,0x95,0x15,0x0f,0x12,0x16,0x03,0x04,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0xd4,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, -0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0xc4,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x36,0x35,0x34, -0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x05,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x06,0xbc,0x08,0xa5,0xa7,0xaa,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0x69,0x20,0xad,0x02,0x0b,0x03,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f, -0xfc,0xd0,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0e,0x12,0x01,0xa7,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0x23,0x22,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x87,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05, -0x72,0x00,0x00,0x01,0x00,0x3f,0xfe,0x25,0x06,0xc0,0x04,0x58,0x00,0x35,0x00,0xae,0x40,0x61,0x29,0x28,0x28,0x24,0x15,0x2c,0x01,0x06,0x2c,0x01,0x2c,0x16,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x5f,0x21,0x01,0x21,0x0e,0x06,0x31,0x16,0x31,0x02,0x31,0x0d,0x0c,0x0c,0x84,0x10,0x0e,0x14,0x10, -0x10,0x0e,0x10,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x50,0x04,0x80,0x04,0x02,0x04,0x0e,0x0c,0x06,0x09,0x95,0x31,0x01,0x34,0x34,0x2f,0x28,0x24,0x29,0x29,0x16,0x10,0x13,0x95,0x2c,0x2f,0x10,0x1d,0x1b,0x03,0x04,0x21,0x18,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0x33,0x33,0xd4,0xc4,0x3f,0x3f,0x33,0xed,0x32,0x32, -0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x5d,0x18,0x10,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x14, -0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56, -0xa5,0xa3,0xa7,0x03,0x33,0x0d,0x13,0xfe,0x57,0x87,0x18,0x01,0x14,0xa4,0x14,0x01,0x14,0x93,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x72,0xfd,0x80,0x72,0x2d,0x37,0x14, -0xfe,0x79,0x01,0x87,0x14,0x34,0x45,0x5e,0x02,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x86,0x71,0x15,0x00,0x01,0x00,0x21,0xfe,0x1f,0x04,0x80,0x04,0x18,0x00,0x44,0x00,0xd9,0x40,0x84,0x97,0x44,0x01,0x7a,0x2c,0x01,0x69,0x2c,0x01,0x9a,0x28,0x01,0x96,0x24,0x01,0x77,0x24,0x87,0x24,0x02,0x46,0x17,0x56,0x17, -0x02,0x85,0x13,0x01,0x36,0x28,0x01,0x01,0x00,0x00,0x42,0x84,0x04,0x3d,0x84,0x09,0x09,0x04,0x04,0x15,0x83,0x2a,0x2a,0x33,0x46,0x36,0x35,0x35,0x34,0x0f,0x0e,0x38,0x37,0x32,0x67,0x32,0x77,0x32,0x02,0x37,0x32,0x32,0x84,0x33,0x34,0x14,0x33,0x33,0x34,0x47,0x34,0x77,0x34,0x97,0x34,0x03,0x34,0x33,0x20,0x22,0x84,0x1f,0x1d,0x1d, -0x4f,0x33,0x5f,0x33,0x02,0x33,0x20,0x1f,0x0f,0x11,0x32,0x33,0x33,0x26,0x2e,0x95,0x00,0x01,0x09,0x01,0x19,0x01,0x29,0x01,0x03,0x11,0x01,0x11,0x01,0x26,0x0e,0x0b,0x95,0x38,0x3b,0x10,0x34,0x95,0x37,0x0f,0x26,0x95,0x19,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0xed,0x11,0x39, -0x2f,0xc4,0x12,0x39,0xce,0x32,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x87,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, -0x07,0x27,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x07,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07, -0x06,0x15,0x14,0x17,0x04,0x80,0x53,0x90,0x3f,0x0a,0x13,0x03,0x33,0x0d,0x13,0xfe,0x57,0x5e,0x81,0xca,0xcd,0x74,0x62,0xb8,0x9a,0xf1,0xc7,0x78,0x6f,0x3b,0x90,0x24,0x4b,0x52,0x87,0x8e,0x6b,0x87,0x40,0x4e,0x8c,0x64,0x5f,0x70,0x2d,0xab,0xa8,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x11,0x04,0x15,0x02,0x47,0x85, -0x5c,0x28,0x4d,0x06,0x37,0x6b,0x10,0x0d,0x35,0x05,0x72,0xfe,0x3f,0x4a,0x7b,0x69,0x8f,0xfe,0xf2,0x8a,0x75,0x50,0x4b,0x71,0x53,0x52,0x37,0x38,0x27,0x3c,0x29,0x2c,0x52,0x69,0xc4,0x56,0x43,0x54,0x2a,0x31,0x56,0x03,0x11,0x8b,0x67,0x6a,0x15,0xb4,0x28,0x24,0x49,0x11,0x0b,0x17,0x0f,0x00,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x2e, -0x04,0x58,0x00,0x30,0x00,0xbb,0x40,0x6b,0x18,0x25,0x01,0x99,0x2c,0x01,0x88,0x2c,0x01,0x9a,0x0f,0x01,0x77,0x0a,0x87,0x0a,0x02,0x2e,0x2d,0x2d,0x29,0x0e,0x0f,0x0f,0x04,0x01,0x01,0x84,0x29,0x26,0x14,0x29,0x29,0x26,0x18,0x29,0x01,0x09,0x29,0x01,0x29,0x26,0x26,0x14,0x32,0x1c,0x1b,0x1b,0x17,0x21,0x22,0x23,0x24,0x06,0x20,0x20, -0x06,0x06,0x84,0x14,0x17,0x14,0x14,0x17,0x17,0x1f,0x14,0x01,0x14,0x2d,0x2e,0x2e,0x1b,0x1c,0x1c,0x29,0x20,0x17,0x01,0x1d,0x0f,0x7a,0x0f,0x01,0x5b,0x0f,0x6b,0x0f,0x02,0x0f,0x11,0x0e,0x0e,0x0c,0x95,0x11,0x1c,0x26,0x24,0x95,0x14,0x79,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x33,0xed,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39, -0x5d,0x5d,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x0e,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01, -0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x07,0x25,0x36,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x04,0x2e,0x06,0x73,0x1f,0xae,0xfd,0xfe,0x01,0x5a,0x53,0xb6,0xcd,0xb2, -0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x84,0x03,0x15,0x63,0x53,0x90,0x3f,0x07,0x85,0x0c,0x07,0x01,0xdb,0x37,0x0a,0x70,0x03,0x15,0x63,0x53,0x90,0x3f,0x03,0x87,0x20,0x1d,0xfd,0xdc,0x95,0x2b,0x7f,0x12,0x0d,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x86,0x99,0x02,0x64,0x10,0x0c,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1c,0x21,0xfd,0x86, -0x38,0x2d,0x7a,0x0e,0x33,0x02,0x25,0x0f,0x0d,0x17,0x0f,0x46,0x85,0x5c,0x28,0x00,0x00,0x02,0xff,0x8a,0xfe,0x25,0x04,0x5a,0x04,0xb5,0x00,0x15,0x00,0x18,0x00,0x95,0x40,0x5d,0x27,0x01,0x01,0x06,0x05,0x18,0x16,0x08,0x17,0x02,0x09,0x16,0x08,0x0a,0x03,0x04,0x00,0x05,0x0a,0x03,0x01,0x00,0x05,0x17,0x02,0x16,0x05,0x00,0x05,0x84, -0x08,0x16,0x14,0x08,0x08,0x16,0x17,0x03,0x0a,0x03,0x84,0x02,0x17,0x14,0x02,0x02,0x17,0x00,0x00,0x0f,0x02,0x4f,0x02,0x6f,0x02,0x7f,0x02,0xbf,0x02,0x05,0x02,0x02,0x08,0x1a,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x0a,0x0a,0x07,0x0f,0x08,0x01,0x08,0x00,0x15,0x17,0x0a,0x16,0x95,0x10,0x15,0x0f,0x07,0x1b,0x08,0x05,0x03,0x02,0x15,0x00, -0x3f,0xc4,0x33,0x33,0x3f,0x3f,0xce,0xfd,0xc4,0xc4,0x12,0x39,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x2f,0x33,0xed,0x32,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x87,0x18,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x11,0x01,0x33,0x31,0x30,0x5d,0x01,0x01,0x13,0x23,0x03,0x00,0x03,0x23,0x12,0x01,0x03, -0x23,0x22,0x37,0x36,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x05,0x21,0x17,0x04,0x5a,0xfe,0x68,0xe6,0xb5,0xa5,0xfe,0x8d,0x8e,0xc3,0xc9,0x01,0xb5,0xaa,0x86,0x96,0x06,0x02,0x1d,0xa7,0x1f,0x29,0x03,0x42,0xfe,0xf5,0xfe,0xc4,0x6b,0x03,0xd1,0xfe,0x24,0xfe,0x0b,0x01,0x67,0xfe,0x2f,0xfe,0x8f,0x01,0xcd,0x02,0x0d,0x01,0x75,0x94,0x2f, -0x7e,0x78,0x15,0x28,0x8c,0xea,0x00,0x01,0x00,0x31,0xff,0xa7,0x06,0xe6,0x04,0x58,0x00,0x37,0x00,0xb7,0x40,0x65,0x89,0x20,0x01,0x97,0x05,0x01,0x22,0x70,0x21,0x01,0x21,0x21,0x1d,0x25,0x19,0x1a,0x1a,0x84,0x1b,0x1d,0x14,0x1b,0x1d,0x89,0x1d,0x01,0x1d,0x1b,0x10,0x2b,0x2e,0x2e,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x13,0x10,0x07, -0x06,0x06,0x02,0x36,0x35,0x0a,0x02,0x00,0x00,0x84,0x37,0x0a,0x14,0x37,0x37,0x0a,0x37,0x20,0x0a,0x01,0x0a,0x10,0x00,0x37,0x0f,0x21,0x1d,0x22,0x22,0x19,0x13,0x16,0x95,0x2b,0x25,0x28,0x10,0x1a,0x1b,0x15,0x29,0x35,0x01,0x35,0x2e,0x31,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x28,0x0a,0x01,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x5d,0x33, -0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x5d,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x3f,0xc4,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01, -0x32,0x11,0x33,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25, -0x36,0x37,0x13,0x06,0xe6,0xb1,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x7f,0x03,0x33,0x0e,0x13,0xfe,0x58,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7d,0x4b,0x2a,0x9f,0x0a,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x94,0x04,0x00,0xfc,0xb4,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21, -0x3a,0x62,0x15,0xb4,0x26,0x26,0x02,0x54,0x0e,0x0f,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x1e,0x30,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0xe5,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0xbe,0x05,0xec,0x00,0x2d,0x00,0x77,0x40,0x40,0x00,0x01,0x37,0x29,0x97,0x29, -0x02,0x29,0x2b,0x84,0x06,0x04,0x04,0x15,0x2f,0x1d,0x84,0x1c,0x1c,0x18,0x22,0x23,0x0a,0x0b,0x0c,0x21,0x21,0x0c,0x0c,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x69,0x18,0x01,0x18,0x15,0x10,0x84,0x11,0x11,0x15,0x02,0x95,0x2d,0x0a,0x07,0x95,0x23,0x21,0x18,0x26,0x10,0x1c,0x00,0x0c,0x15,0x15,0x11,0x1b,0x00,0x3f,0x3f,0x33,0x3f,0x3f, -0x33,0x33,0x33,0xed,0x32,0xdc,0xed,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0x5d,0xcc,0x32,0x31,0x30,0x01,0x07,0x23,0x22,0x27,0x27,0x26,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13, -0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x17,0x16,0x17,0x17,0x16,0x33,0x04,0xbe,0x1d,0xd3,0x60,0x22,0x38,0x0d,0x2a,0x10,0x10,0xfe,0xc5,0x9a,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x0f,0x03,0x01,0x04,0x42,0x32,0x4c, -0x27,0x19,0x17,0x32,0x08,0x19,0x02,0x7f,0x8b,0x87,0xde,0x34,0x05,0x63,0xfd,0x2e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x18,0x0f,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x3e,0x64,0x14,0x53,0x15,0x36,0x23,0x5a,0xc7,0x1f,0x00,0x01,0x00,0x35,0xff,0xe7,0x03,0xfe,0x04,0x00,0x00,0x1b,0x00,0x58, -0x40,0x35,0x89,0x0b,0x01,0x95,0x08,0x01,0x28,0x05,0x01,0x95,0x02,0x01,0x37,0x02,0x01,0x24,0x02,0x01,0x00,0x83,0x20,0x0d,0x01,0x0d,0x0d,0x1d,0x15,0x17,0x84,0x12,0x07,0x06,0x06,0x14,0x12,0x0f,0x95,0x1a,0x15,0x0f,0x08,0x06,0x18,0x06,0x02,0x06,0x04,0x07,0x07,0x09,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f, -0xde,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x23,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x20,0x03,0xfe,0x9c,0xa5,0xfe,0xe9,0xe9,0x88,0x65,0x81,0x9a,0xbf, -0x77,0x6b,0xbb,0xfe,0xc8,0x90,0x0e,0xa3,0x0a,0x29,0x01,0x2c,0x01,0x2f,0x02,0x41,0xfe,0xfe,0xa7,0xb1,0x8b,0x7f,0x7e,0x91,0x84,0xb5,0xde,0x94,0x1e,0x33,0x25,0x0c,0x28,0x00,0x00,0x01,0x00,0x46,0xfe,0x29,0x04,0x3c,0x05,0xec,0x00,0x33,0x00,0x94,0x40,0x4e,0x9a,0x1b,0x01,0x31,0x84,0x30,0x30,0x2c,0x2b,0x2a,0x0f,0x0e,0x0d,0x04, -0x01,0x01,0x84,0x2c,0x0d,0x14,0x2c,0x2c,0x0d,0x2c,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x35,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x08,0x18,0x01,0x18,0x1f,0x15,0x01,0x15,0x30,0x00,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x01,0x1e,0x0f,0x2a,0x24,0x27,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b, -0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f, -0xed,0x31,0x30,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x04,0x3c,0x14,0xb8,0x13,0x01,0x10,0xa4, -0x10,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xac,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x04,0x66,0x5d,0x5d,0xfc,0xa7,0x58,0x59,0x11,0x15,0xfe,0xad,0x01,0x53,0x15,0x08,0x35,0x85,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85, -0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x02,0xc2,0x62,0x4f,0x08,0x1e,0x01,0x69,0xfe,0x97,0x1e,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x27,0x00,0x6f,0x40,0x3c,0x02,0x00,0x00,0x84,0x27,0x25,0x14,0x27,0x27,0x25,0x27,0x25,0x0f,0x1c,0x1e,0x1e,0x84,0x17,0x19,0x14,0x17,0x17,0x19,0x1b, -0x1a,0x1a,0x19,0x19,0x17,0x0f,0x0b,0x84,0x0c,0x0c,0x06,0x08,0x84,0x11,0x0f,0x00,0x27,0x19,0x95,0x1c,0x0f,0x67,0x25,0x01,0x25,0x1e,0x21,0x95,0x17,0x11,0x06,0x02,0x14,0x16,0x0c,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x5d,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33, -0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcd,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x03,0x06,0x07,0x06,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x04,0x4e,0x99, -0x14,0x42,0x27,0x50,0x7e,0x06,0x01,0x14,0xa4,0x14,0x01,0x01,0x53,0x4b,0x29,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0f,0x11,0x01,0x7b,0x37,0x0a,0x96,0x04,0x00,0xfd,0x26,0x5d,0x31,0x1c,0x16,0x23,0x28,0x24,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x0d,0x12,0x17,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e, -0x0f,0x35,0x05,0x6e,0x10,0x31,0x02,0xda,0x00,0x02,0x00,0x59,0xff,0xe7,0x07,0x24,0x06,0x04,0x00,0x35,0x00,0x43,0x00,0xcc,0x40,0x71,0x43,0x36,0x2e,0x2f,0x30,0x42,0x30,0x0e,0x0f,0x20,0x21,0x22,0x0d,0x86,0x22,0x01,0x65,0x22,0x01,0x0d,0x22,0x22,0x84,0x42,0x30,0x14,0x42,0x42,0x30,0x3a,0x30,0x01,0x08,0x30,0x18,0x30,0x02,0x30, -0x42,0x38,0x3b,0x3b,0x84,0x29,0x2c,0x14,0x29,0x2c,0x78,0x2c,0x01,0x6a,0x2c,0x01,0x08,0x2c,0x01,0x2c,0x29,0x42,0x03,0x00,0x84,0x07,0x17,0x15,0x15,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x04,0x07,0x07,0x1a,0x1a,0x18,0x42,0x0d,0x09,0x95,0x30,0x34,0x01,0x42,0x3b,0x3e,0x95,0x29,0x22,0x26,0x16,0x17,0x18,0x15,0x38,0x36,0x95,0x2c, -0x2e,0x2e,0x20,0x1a,0x1d,0x95,0x15,0x0f,0x03,0x12,0x10,0x00,0x3f,0xce,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0xed,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, -0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x23,0x13,0x36,0x35, -0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x37,0x36,0x37,0x25,0x36,0x33,0x32,0x01,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x07,0x24,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x40,0x01,0x77,0x4a,0x2a,0x9f,0x08,0xa5,0xa7,0xaa, -0x03,0x33,0x0d,0x13,0xfe,0x54,0x6c,0x20,0xae,0xfe,0x90,0x55,0x1f,0x9f,0x08,0x69,0x20,0xad,0x02,0x12,0x25,0x1e,0xaf,0x01,0x76,0x53,0x21,0x9f,0xfc,0x68,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0f,0x13,0x01,0x6f,0x35,0x0b,0x05,0x50,0x27,0x25,0x41,0x64,0x0f,0x0e,0x35,0x05,0x63,0x0e,0x33,0xfe,0xc8,0x6b,0x15,0xb4,0x26,0x26,0xfc, -0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfe,0x02,0x95,0x2b,0x5b,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0xb8,0x93,0x2d,0x5f,0x15,0xfd,0x8d,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05,0x5f,0x0e,0x33,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x25,0x00,0x70,0x40,0x4b,0x98,0x21,0x01,0x98,0x20,0x01, -0x3a,0x20,0x01,0x29,0x20,0x01,0x94,0x1c,0x01,0x86,0x1c,0x01,0x25,0x1c,0x35,0x1c,0x02,0x87,0x1b,0x97,0x1b,0x02,0x48,0x14,0x01,0x49,0x13,0x01,0x45,0x0e,0x01,0x57,0x0e,0x01,0x07,0x7e,0x00,0x08,0x01,0x08,0x03,0x0c,0x25,0x7e,0x10,0x23,0x20,0x23,0x30,0x23,0x03,0x23,0x23,0x27,0x18,0x7e,0x16,0x24,0x18,0x03,0x1e,0x91,0x11,0x13, -0x03,0x91,0x0c,0x08,0x12,0x00,0x3f,0xde,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0x32,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14, -0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x03,0x04,0x83,0x99,0x99,0x47,0x5a,0x1a,0x66,0x8e,0xb1,0x65,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x23,0x40,0x1f,0x03,0x9f,0x9d,0x83,0x83,0x53,0x5c,0x01,0x53,0x7c,0x53,0x29,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6, -0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x11,0x00,0x7a,0x40,0x51,0x37,0x10,0x01,0xa8,0x10,0xb8,0x10,0x02,0x56,0x10,0x01,0x45,0x10,0x01,0x58,0x0e,0x01,0x4a,0x0e,0x01,0x26,0x05,0x01,0x97,0x05,0xa7,0x05,0x02,0x34,0x05,0x01,0x26,0x05,0x01,0x99,0x03,0x01,0x3a,0x03,0x01, -0xc0,0x08,0x01,0x08,0x00,0x7e,0x9f,0x01,0x01,0x01,0x01,0x13,0x07,0x0a,0x7e,0x8f,0x0c,0x01,0x0c,0x01,0x01,0x0f,0x08,0x91,0xaf,0x0a,0x01,0x9f,0x0a,0xdf,0x0a,0x02,0x0a,0x0a,0x0b,0x04,0x91,0x0f,0x04,0x0b,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd, -0xc6,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfc,0x4b,0xa8,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfe,0xa8,0x98,0xfe,0x8e,0x03,0x6d, -0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0x70,0x05,0xb2,0x00,0x10,0x00,0x19,0x00,0x76,0x40,0x4f,0x26,0x16,0x01,0xa7,0x14,0x01,0x26,0x14,0x01,0x3a,0x12,0x4a,0x12,0x02,0x28,0x12,0x01,0xa8,0x11,0x01,0xa8,0x0d,0x01,0x55,0x0d,0x01,0x3a,0x0a,0x4a,0x0a,0x5a,0x0a,0x03,0x3b,0x06,0x4b,0x06,0x5b,0x06,0x03,0x00,0x00, -0x1b,0x0f,0x01,0x7d,0x18,0x04,0x04,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x0f,0x18,0x91,0x01,0xaf,0x04,0x01,0x9f,0x04,0xdf,0x04,0x02,0x04,0x04,0x03,0x13,0x91,0x0b,0x04,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x11,0x21,0x20,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x11,0x21,0x00,0x26,0x23,0x20,0x03,0x12,0x21,0x21,0x11,0x05,0x70,0xfe,0xfc,0xa8,0xfe,0x9d,0xfe,0xfd,0xff,0x00,0x01,0x19,0x01,0x03,0xe8,0x01,0x0a,0x01,0x04,0xfe,0x54,0xaf,0xa7,0xfe,0xa2,0x0a,0x0a, -0x01,0x63,0x01,0x51,0x01,0x72,0xfe,0x8e,0x01,0x72,0x01,0x2a,0xf0,0x01,0x04,0x01,0x22,0xfe,0xde,0xfe,0xfe,0x78,0x02,0x43,0xdb,0xfe,0x6a,0xfe,0x78,0x01,0x84,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x11,0x00,0x62,0x40,0x3e,0x96,0x0e,0x01,0x35,0x0e,0x01,0x26,0x0e,0x01,0x29,0x0c,0x01,0x98,0x0c,0x01,0x3a, -0x0c,0x01,0x29,0x0c,0x01,0x49,0x03,0x01,0x46,0x03,0x56,0x03,0x02,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x07,0x05,0x08,0x7e,0x0a,0x0a,0x13,0x10,0x7e,0x11,0x11,0x11,0x0d,0x0a,0x06,0x91,0x08,0x08,0x02,0x0a,0x12,0x0d,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f, -0xfd,0x32,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xf1,0xa8,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfe,0x9d,0x98,0xfe,0x8e,0x03,0x62,0x01,0xb9,0xfe,0x56, -0x47,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x07,0x05,0x9a,0x00,0x11,0x00,0x64,0x40,0x3e,0x99,0x0e,0x01,0x3a,0x0e,0x01,0x26,0x0c,0x01,0xa7,0x0c,0x01,0x95,0x0c,0x01,0x34,0x0c,0x01,0x26,0x0c,0x01,0x4a,0x03,0x01,0xa8,0x01,0x01,0x45,0x01,0x01,0x09,0x09,0x13,0x11,0x7e,0x9f,0x10,0x01,0x10,0x10,0x13,0x07,0x0a,0x7e,0x8f,0x04, -0x01,0x04,0x10,0x10,0x02,0x0a,0x91,0x08,0x08,0x02,0x05,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x21,0x15,0x21,0x11, -0x10,0x21,0x20,0x11,0x35,0x33,0x04,0xd5,0xfd,0xec,0xfd,0xe9,0xa8,0x03,0xb5,0xfc,0x4b,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfe,0x8e,0x98,0xfe,0xa8,0xfe,0x47,0x01,0xaa,0x47,0x00,0x01,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x29,0x00,0x8e,0x40,0x5c,0x55,0x1c,0x01,0x27,0x19,0x01,0x84,0x18, -0x01,0x8c,0x14,0x01,0x99,0x13,0x01,0x24,0x0d,0x01,0x15,0x0d,0x01,0x69,0x09,0x79,0x09,0x02,0x1b,0x09,0x01,0x68,0x08,0x78,0x08,0x02,0x6a,0x04,0x7a,0x04,0x02,0x38,0x04,0x48,0x04,0x02,0x91,0x1d,0x01,0x83,0x1d,0x01,0x54,0x1d,0x01,0x1d,0x00,0x1b,0x7d,0x04,0x02,0x06,0x06,0x23,0x7d,0x24,0x24,0x02,0x2b,0x10,0x7d,0x11,0x11,0x00, -0x7e,0x0f,0x02,0x01,0x02,0x11,0x11,0x04,0x0b,0x91,0x16,0x04,0x1d,0x04,0x91,0x00,0x24,0x02,0x00,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x21,0x15,0x23,0x11,0x21,0x24,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x01,0x0e,0xaa,0x01,0x99,0x02,0x6f,0x36,0x69,0x9b,0x66,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd8,0x83,0x88,0xdc,0x99,0x53, -0xfe,0x29,0xc5,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xc8,0x01,0x60,0xe6,0x01,0xbb,0x62,0xaf,0x84,0x4d,0x3e,0x6f,0x9b,0x5d,0x81,0xd3,0x96,0x52,0x5b,0xa3,0xe4,0x88,0xfe,0x3d,0xed,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x00,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x83,0x05,0x9a,0x00,0x13,0x00,0x2d,0x40,0x17,0x12,0x12, -0x06,0x7e,0x07,0x07,0x0d,0x15,0x10,0x13,0x7e,0x0d,0x12,0x91,0x10,0x10,0x0f,0x03,0x07,0x00,0x91,0x0d,0x12,0x00,0x3f,0xed,0xce,0x3f,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x25,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x01,0x64,0x01,0xb3,0x55, -0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0xca,0xa8,0x03,0x1f,0xfc,0xe1,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x05,0x9a,0xfe,0x8e,0x98,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x0f,0x00,0x44,0x40,0x29,0xa8,0x0e,0x01,0x45,0x0e,0x01,0x4a,0x0c,0x01,0x25,0x05,0x35,0x05,0x02,0x2a,0x03,0x3a,0x03, -0x02,0x08,0x08,0x11,0x0f,0x7e,0x01,0x01,0x11,0x07,0x7e,0x0b,0x01,0x01,0x0a,0x04,0x91,0x0d,0x04,0x07,0x91,0x0a,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x20,0x11, -0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfb,0xa3,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfd,0x36,0x98,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x00,0x02,0x00,0xaa,0xff,0xe8,0x06,0x2b,0x05,0xb2,0x00,0x2c,0x00,0x3d,0x00,0xa0,0x40,0x6c,0x6a,0x3b,0x01,0x67,0x37,0x01,0x64,0x31,0x01,0x56,0x31,0x01,0x79,0x29, -0x01,0x78,0x28,0x01,0x99,0x24,0x01,0x88,0x24,0x01,0x7a,0x24,0x01,0x8a,0x23,0x9a,0x23,0x02,0x7b,0x23,0x01,0x86,0x1f,0x96,0x1f,0x02,0x75,0x1f,0x01,0x76,0x1e,0x01,0x46,0x14,0x01,0x49,0x10,0x01,0x97,0x08,0x01,0x86,0x07,0x96,0x07,0x02,0x25,0x07,0x35,0x07,0x02,0x16,0x07,0x01,0x98,0x03,0x01,0x2a,0x03,0x3a,0x03,0x02,0x1b,0x1a, -0x18,0x7e,0x2c,0x2e,0x2e,0x0c,0x3f,0x34,0x7e,0x26,0x0a,0x7e,0x0c,0x1b,0x2e,0x91,0x2c,0x18,0x18,0x39,0x05,0x91,0x12,0x04,0x39,0x91,0x21,0x21,0x0c,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x35,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, -0x17,0x32,0x3e,0x02,0x04,0x7d,0x3a,0x6b,0x95,0x5b,0x5c,0x95,0x6b,0x3a,0xa8,0x4f,0x95,0xd5,0x86,0x85,0xd4,0x94,0x4f,0x01,0x06,0xfe,0xfa,0x35,0x63,0x90,0x5b,0x53,0x89,0x62,0x35,0x3c,0x6d,0x97,0x5c,0xb2,0xb2,0x36,0x58,0x3d,0x21,0x18,0x31,0x49,0x31,0x34,0x52,0x38,0x1d,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc, -0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x38,0x98,0xee,0x65,0xa0,0x6f,0x3c,0x3b,0x6a,0x92,0x56,0x5e,0x9d,0x70,0x3e,0xfe,0x7a,0xee,0x2a,0x49,0x64,0x3a,0x33,0x58,0x41,0x27,0x03,0x29,0x4b,0x67,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x70,0x05,0x9a,0x00,0x10,0x00,0x19,0x00,0x6e,0x40,0x48,0x3a,0x18,0x4a,0x18, -0x9a,0x18,0x03,0x28,0x18,0x01,0x96,0x16,0x01,0x34,0x16,0x44,0x16,0x02,0x26,0x16,0x01,0x96,0x14,0x01,0x34,0x14,0x44,0x14,0x02,0x26,0x14,0x01,0x59,0x09,0x01,0x55,0x04,0x01,0x00,0x00,0x1b,0x0f,0x01,0x7e,0x0c,0x9f,0x11,0x01,0x11,0x11,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x12,0x01,0x91,0x0f,0x0c,0x0c,0x05,0x0d,0x03, -0x17,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x14,0x00,0x23,0x20,0x00,0x11,0x34,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x03,0x12,0x21, -0x32,0x36,0x05,0x70,0xfe,0xfc,0xfe,0xf6,0xe8,0xfe,0xfd,0xfe,0xe7,0x01,0x00,0x01,0x03,0x01,0x63,0xa8,0x01,0x04,0xfe,0x54,0xfe,0xaf,0xfe,0x9d,0x0a,0x0a,0x01,0x5e,0xa7,0xaf,0x03,0x90,0xfe,0x78,0xfe,0xfe,0xde,0x01,0x22,0x01,0x04,0xf0,0x01,0x2a,0x01,0x72,0xfe,0x8e,0xfd,0xe4,0x01,0x84,0xfe,0x78,0xfe,0x6a,0xdb,0x00,0x00,0x01, -0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x1b,0x00,0x5e,0x40,0x3c,0x9c,0x0a,0x01,0x8a,0x0a,0x01,0x89,0x09,0x99,0x09,0x02,0x98,0x05,0x01,0x39,0x05,0x01,0x89,0x04,0x01,0x4b,0x04,0x01,0x39,0x04,0x01,0x2b,0x04,0x01,0x18,0x04,0x01,0x1b,0x7e,0x01,0x01,0x0e,0x1d,0x11,0x0c,0x7e,0x0e,0x36,0x11,0x01,0x15,0x11,0x25,0x11,0x02, -0x11,0x07,0x91,0x16,0x16,0x10,0x03,0x01,0x0d,0x12,0x00,0x3f,0xce,0x3f,0x39,0x2f,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02, -0x15,0x04,0xd5,0xa8,0x2b,0x57,0x86,0x5b,0x5c,0x8c,0x5f,0x31,0xa8,0xa8,0x1d,0x4b,0x5e,0x71,0x42,0x85,0xc5,0x81,0x3f,0x01,0x3c,0xe7,0x6a,0xaa,0x75,0x3f,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x55,0xa2,0xec,0x97,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x08,0x05,0x9a,0x00,0x0f,0x00,0x1f,0x40,0x0f, -0x09,0x7e,0x0a,0x0a,0x11,0x03,0x7e,0x00,0x02,0x03,0x0a,0x03,0x91,0x00,0x12,0x00,0x3f,0xed,0xce,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0xbc,0xa8,0x01,0x6a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0x05,0x9a,0xfa,0xfe,0x37,0x60,0x80,0x49, -0x2b,0x49,0x36,0x1e,0x00,0x01,0x00,0xbc,0xff,0xe8,0x05,0xc3,0x05,0x9a,0x00,0x1f,0x00,0x5a,0x40,0x38,0x94,0x1e,0x01,0x6a,0x15,0x7a,0x15,0x8a,0x15,0x03,0x59,0x15,0x01,0x84,0x11,0x01,0x65,0x11,0x75,0x11,0x02,0x56,0x11,0x01,0x9a,0x02,0x01,0x0d,0x7e,0x05,0x1a,0x7e,0x18,0x05,0x18,0x05,0x18,0x09,0x21,0x0c,0x07,0x7e,0x09,0x19, -0x06,0x91,0x0d,0x0f,0x0b,0x03,0x13,0x91,0x00,0x00,0x08,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x3f,0xed,0xc4,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, -0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x04,0x23,0x5d,0x99,0x6c,0x3b,0xfe,0xde,0xa8,0xa8,0x01,0xc5,0x27,0x43,0x5b,0x35,0x35,0x5d,0x44,0x27,0xa3,0x3b,0x6d,0x9a,0x18,0x36,0x6d,0xa4,0x6d,0x01,0xcc,0xfc,0x98,0x05,0x9a,0xfe,0x66,0xfd,0xb6,0x51,0x7a,0x51,0x28,0x28,0x51,0x7a,0x51,0x02,0x4a,0xfd,0x9c,0x6d,0xa4,0x6d,0x36,0x00, -0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x04,0x05,0xb2,0x00,0x1a,0x00,0x25,0x00,0xf0,0x40,0x33,0x76,0x21,0x01,0x79,0x25,0x01,0x26,0x22,0x76,0x22,0x02,0x3a,0x1f,0x01,0x86,0x1d,0x01,0x39,0x1d,0x01,0x45,0x17,0x55,0x17,0x02,0x05,0x17,0x15,0x17,0x25,0x17,0x03,0x98,0x04,0x01,0x38,0x02,0x88,0x02,0x02,0x89,0x1c,0x01,0x96,0x16,0xa6, -0x16,0xe6,0x16,0x03,0x15,0xb8,0xff,0xe0,0xb3,0x2e,0x31,0x48,0x15,0xb8,0xff,0xc0,0x40,0x6e,0x25,0x28,0x48,0x0c,0x15,0x0a,0x11,0x18,0x7d,0x6b,0x05,0x7b,0x05,0x8b,0x05,0x03,0x08,0x05,0x18,0x05,0x02,0x6b,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x1e,0x05,0x07,0x10,0x1b,0x20,0x1b,0x30,0x1b,0x03,0x1b,0x1b,0x03,0x27,0x0a, -0x7e,0x07,0x20,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x1e,0x18,0x1a,0x1f,0x48,0x09,0x1e,0x01,0xe9,0x1e,0xf9,0x1e,0x02,0x1e,0x05,0x07,0x91,0x06,0x15,0x16,0x15,0x26,0x15,0x03,0xb9,0x15,0x01,0x15,0xb9,0x0c,0x01,0x0c,0xb0,0x0a,0xc0,0x0a,0xd0,0x0a,0x03,0x0a,0x0a,0x08,0x11,0x13,0x91,0x10,0x0e,0x04,0x08,0x03,0x23,0x91,0x00,0x13, -0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x10,0xcd,0x2f,0x5d,0x32,0x5d,0x32,0x71,0x72,0xed,0x32,0x32,0x5d,0x71,0x2b,0x01,0x2f,0x5d,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xfd,0xc4,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x05,0x20,0x00,0x11,0x10,0x37,0x26,0x27,0x11,0x33,0x15,0x16,0x17,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x26,0x07,0x16,0x00,0x11,0x10,0x00,0x13,0x10,0x24,0x27,0x06,0x11,0x14,0x16,0x33,0x36,0x36,0x02,0xc0,0xfe,0xf4,0xfe,0xaa,0xd4,0x63,0x71,0x9c,0x79,0x6c,0xed,0x01,0x42,0x86,0x70,0x7f,0x8a,0xad,0x84,0xe7,0x01,0x53,0xfe,0xbb, -0x95,0xfe,0x8e,0xe8,0xec,0xf7,0xb8,0xbd,0xda,0x18,0x01,0x4a,0x01,0x24,0x01,0x45,0xec,0x06,0x01,0x01,0x0c,0x79,0x01,0x0b,0x9d,0x10,0xb0,0x28,0x02,0x30,0x27,0xfe,0xd2,0xfe,0xde,0xfe,0xce,0xfe,0xa5,0x02,0x83,0x01,0x0c,0xef,0x0e,0xcb,0xfe,0xb9,0xea,0xf9,0x01,0xff,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x17, -0x00,0x49,0x40,0x2d,0x4b,0x16,0x01,0x95,0x08,0x01,0x84,0x08,0x01,0x34,0x03,0x01,0x25,0x03,0x01,0x0c,0x7e,0x0a,0x0f,0x0f,0x19,0x01,0x7e,0x17,0x8e,0x0f,0x01,0x49,0x0f,0x01,0x2a,0x0f,0x3a,0x0f,0x02,0x0f,0x05,0x91,0x14,0x0e,0x12,0x0b,0x0f,0x01,0x03,0x00,0x3f,0x3f,0x3f,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x01,0x2f,0xed,0x12,0x39, -0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x23,0x11,0x0e,0x03,0x23,0x20,0x02,0x11,0xaa,0xa8,0xab,0xb7,0x51,0x8b,0x64,0x39,0xa8,0xa8,0x1b,0x50,0x63,0x71,0x3b,0xfe,0xf6,0xff,0x05,0x9a,0xfd,0xa1,0xd6,0xd4,0x34,0x6c,0xa6,0x73,0xb6,0xfc,0x00,0x01, -0x7f,0x1c,0x30,0x24,0x15,0x01,0x2e,0x01,0x2e,0x00,0x00,0x01,0x00,0x21,0xff,0x68,0x04,0x50,0x06,0x02,0x00,0x0d,0x00,0xa1,0x40,0x5e,0xa6,0x08,0xb6,0x08,0x02,0xa9,0x04,0x01,0xb8,0x04,0x01,0x08,0x07,0x08,0x09,0x07,0x7e,0x06,0x05,0x14,0x06,0x06,0x05,0x06,0x05,0x0b,0x04,0x03,0x04,0x7e,0x0a,0x0b,0x14,0x0a,0x04,0x05,0x0a,0x0b, -0x08,0x09,0x04,0x05,0x08,0x05,0x04,0x7e,0x09,0x08,0x14,0x09,0x08,0x04,0x09,0x09,0x0a,0x61,0x05,0x01,0xc1,0x05,0xd1,0x05,0xe1,0x05,0x03,0x05,0x0a,0x05,0x0a,0x03,0x0d,0x7e,0x00,0x00,0x0f,0x03,0x86,0x0a,0x01,0x48,0x05,0x01,0x07,0x05,0x09,0x0a,0x04,0x06,0x0b,0x91,0x03,0x00,0x02,0x12,0x00,0x3f,0xce,0x33,0xed,0x2f,0x17,0x39, -0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x11,0x33,0x10,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x7d,0x10,0xc4,0x87,0x08,0x18,0x10,0x2b,0x87,0x05,0x7d,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x08,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x05,0x35,0x21,0x35,0x01,0x25,0x13, -0x17,0x07,0x05,0x15,0x01,0x21,0x11,0x03,0xa8,0xfc,0x79,0x02,0xb3,0xfe,0x8c,0x8c,0x95,0x46,0x01,0x6b,0xfd,0x76,0x03,0x34,0x98,0x98,0x2f,0x04,0x03,0xc2,0x01,0x0e,0x4e,0x86,0xba,0x1d,0xfc,0x41,0xfe,0xd0,0x00,0x02,0x00,0x5e,0xff,0xc6,0x05,0x38,0x05,0xb2,0x00,0x35,0x00,0x45,0x00,0xba,0x40,0x7a,0x39,0x34,0x49,0x34,0x59,0x34, -0x03,0x84,0x1f,0x01,0x9b,0x1a,0x01,0x86,0x14,0x01,0x7a,0x10,0x01,0x28,0x10,0x01,0x69,0x0f,0x79,0x0f,0x02,0x56,0x09,0x01,0x37,0x09,0x47,0x09,0x02,0x9d,0x2b,0x01,0x7c,0x2b,0x8c,0x2b,0x02,0x2b,0x2a,0x2a,0x91,0x25,0x01,0x64,0x25,0x74,0x25,0x84,0x25,0x03,0x30,0x25,0x36,0x22,0x7e,0x9e,0x3c,0x01,0x8d,0x3c,0x01,0x7e,0x3c,0x01, -0x6b,0x3c,0x01,0x3c,0x0a,0x36,0x10,0x0d,0x20,0x0d,0x02,0x0d,0x0d,0x47,0x36,0x7e,0x00,0x17,0x7e,0x18,0x18,0x0f,0x00,0x1f,0x00,0x02,0x00,0x3c,0x25,0x39,0x41,0x18,0x18,0x12,0x30,0x0a,0x33,0x05,0x91,0x41,0x39,0x91,0x33,0x2a,0x2b,0x2b,0x33,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xfd,0xde,0xed,0x11, -0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x35,0x34,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x1e,0x03,0x17,0x07,0x2e,0x03,0x27,0x06,0x04,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x36,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x5e,0x05,0x31,0x5f,0x8e,0x61,0x3f,0x7c,0x78,0x73,0x35,0x41,0x48,0x34,0x67,0x9c,0x69,0x63,0x98,0x67,0x36,0xb0, -0x54,0x99,0xd7,0x84,0x89,0xdb,0x9a,0x52,0x5d,0x53,0x14,0x40,0x45,0x42,0x17,0x73,0x18,0x42,0x46,0x43,0x18,0x74,0xfe,0xff,0x91,0xa9,0xb3,0xa6,0x5b,0x5b,0x6d,0xb5,0x51,0x23,0x4e,0x57,0x5d,0x30,0x38,0x50,0x34,0x18,0xf8,0x3f,0x67,0x49,0x29,0x18,0x2a,0x38,0x1f,0x4f,0xcb,0x8a,0x63,0xb8,0x8f,0x56,0x3f,0x70,0x9d,0x5d,0x81,0xd4, -0x97,0x54,0x63,0xae,0xed,0x8a,0xa7,0xfe,0xfc,0x64,0x0f,0x37,0x3e,0x3c,0x13,0x82,0x16,0x3f,0x41,0x3a,0x12,0x57,0x69,0x92,0x7c,0x29,0x3d,0x01,0x41,0x33,0x12,0x23,0x1c,0x12,0x12,0x1f,0x29,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x0f,0x00,0x56,0x40,0x38,0x96,0x0c,0x01,0x24,0x0c,0x34,0x0c,0x02,0x98,0x0a, -0x01,0x2a,0x0a,0x3a,0x0a,0x02,0xa8,0x03,0x01,0x57,0x03,0x01,0x45,0x03,0x01,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x06,0x05,0x7e,0xc0,0x09,0x01,0x09,0x09,0x11,0x0e,0x7e,0x0f,0x0e,0x0e,0x02,0x05,0x91,0x08,0x12,0x0b,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31, -0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x21,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xfe,0x67,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfd,0x2b,0x98,0x03,0x62,0x01,0xb9,0xfe,0x56,0x97,0x00,0x00,0x02,0x00,0x62,0x00,0x00,0x05,0x3a, -0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x7d,0x40,0x51,0x78,0x17,0x01,0x36,0x12,0x01,0x07,0x12,0x17,0x12,0x02,0x44,0x11,0x84,0x11,0x94,0x11,0x03,0x29,0x03,0x39,0x03,0x02,0x19,0x10,0x14,0x4a,0x04,0x7a,0x04,0x8a,0x04,0x9a,0x04,0x04,0x04,0x09,0x01,0x0d,0x0d,0x00,0x7e,0x15,0x15,0x1d,0x14,0x7e,0x01,0x06,0x06,0x01,0x19,0x20,0x24, -0x2a,0x48,0x19,0x20,0x17,0x1e,0x48,0x19,0x04,0x06,0x91,0x10,0x09,0xd0,0x07,0x01,0x07,0x07,0x01,0x0d,0x91,0x0c,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2b,0x2b,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x12,0x39,0x39,0x31,0x30, -0x71,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x10,0x37,0x26,0x23,0x35,0x20,0x17,0x36,0x21,0x33,0x15,0x23,0x22,0x07,0x04,0x00,0x11,0x01,0x21,0x11,0x10,0x24,0x27,0x06,0x11,0x05,0x3a,0xfb,0x82,0xca,0x59,0xcb,0x01,0x47,0x76,0xf7,0x01,0x56,0xce,0xe1,0xd4,0xa9,0x01,0x07,0x01,0x57,0xfc,0x2a,0x03,0x2e,0xfe,0xa6,0xfd,0xd7,0x02,0x10, -0x01,0x45,0xe7,0x07,0x9b,0x0f,0xcb,0x98,0x53,0x2c,0xfe,0xde,0xfe,0xce,0xfe,0x69,0x01,0x8d,0x01,0x0f,0xe4,0x18,0xd3,0xfe,0xbf,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x05,0x9a,0x00,0x0f,0x00,0x57,0x40,0x39,0x29,0x0e,0x39,0x0e,0x02,0x96,0x0c,0x01,0x25,0x0c,0x35,0x0c,0x02,0x4a,0x07,0x5a,0x07,0xda,0x07,0x03,0xc8,0x05, -0x01,0xa9,0x05,0x01,0x46,0x05,0x01,0xb7,0x0c,0x01,0x02,0x03,0x7e,0x30,0x0f,0x01,0x0f,0x0f,0x11,0x0a,0x7e,0xb0,0x08,0x01,0x08,0x09,0x03,0x0d,0x91,0x06,0x13,0x03,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, -0x21,0x15,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x04,0x2d,0x01,0xa3,0xfb,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x05,0x9a,0x98,0xfd,0x42,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x4d,0x05,0xb2,0x00,0x3f,0x00,0x9b,0x40,0x63,0x49,0x3e, -0x01,0x33,0x10,0x10,0x13,0x48,0x6a,0x33,0x01,0x57,0x2d,0x01,0x67,0x29,0x77,0x29,0x02,0x56,0x29,0x01,0x46,0x24,0x56,0x24,0x02,0x84,0x20,0x01,0x87,0x1f,0x01,0xaa,0x1a,0x01,0x98,0x1a,0x01,0x7a,0x1a,0x8a,0x1a,0x02,0x63,0x14,0x01,0x79,0x10,0x01,0x6b,0x10,0x01,0x79,0x0f,0x01,0x25,0x06,0x22,0x7e,0x0d,0x0d,0x2b,0x7e,0x00,0x00, -0x18,0x41,0x36,0x7e,0x35,0x35,0x18,0x06,0x06,0x17,0x7e,0x18,0x26,0x25,0x06,0x18,0x18,0x12,0x08,0x91,0x06,0x36,0x06,0x36,0x12,0x3b,0x91,0x30,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed, -0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x01,0x34,0x2e,0x02,0x23,0x21,0x35,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, -0x2e,0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xa5,0x3b,0x70,0xa3,0x69,0xfe,0xac,0x01,0x4e,0x5e,0x93,0x60,0x30,0x26,0x45,0x60,0x3a,0x34,0x61,0x4a,0x2c,0xa6,0x4b,0x79,0x9c,0x51,0x51,0x9a,0x79,0x49,0x9a,0x90,0x48,0x84,0x62,0x38,0x55,0x8f,0xba,0x64,0x5c,0xb0,0x8a,0x55,0x02,0xa6,0x30,0x57,0x7c,0x4b,0x41,0x7a, -0x5f,0x39,0x01,0x87,0x46,0x69,0x47,0x23,0x8b,0x21,0x42,0x63,0x42,0x3d,0x5c,0x3d,0x1e,0x1b,0x36,0x50,0x34,0x58,0x84,0x58,0x2c,0x2d,0x57,0x7f,0x53,0x8e,0xb6,0x28,0x04,0x05,0x34,0x5a,0x7b,0x48,0x67,0xa0,0x6e,0x39,0x27,0x54,0x86,0x60,0x34,0x50,0x37,0x1c,0x24,0x47,0x67,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x05,0x1c,0x05,0x9a, -0x00,0x0f,0x00,0x54,0x40,0x38,0x29,0x0c,0x39,0x0c,0x49,0x0c,0x99,0x0c,0x04,0x97,0x0a,0x01,0x25,0x0a,0x35,0x0a,0x45,0x0a,0x03,0x46,0x03,0x56,0x03,0x02,0xd7,0x03,0x01,0x58,0x03,0x01,0x56,0x01,0x01,0x0f,0x7e,0x10,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x7e,0x06,0x04,0x0e,0x0e,0x02,0x05,0x91,0x07,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f, -0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xce,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0x1c,0xfd,0xec,0xfd,0xe9,0xfb,0x01,0xa3,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc, -0x9e,0xfe,0x47,0x01,0xaa,0xab,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xf6,0x05,0xba,0x00,0x23,0x00,0xa4,0x40,0x69,0x97,0x22,0x01,0x98,0x1e,0x01,0x99,0x19,0x01,0x38,0x19,0x48,0x19,0x02,0x9b,0x18,0x01,0x94,0x14,0x01,0x85,0x09,0x01,0x76,0x09,0x01,0x27,0x09,0x01,0x87,0x08,0x01,0x84,0x02,0x01,0x55,0x02,0x01,0x47,0x02,0x01,0x01, -0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x00,0x9f,0x20,0x01,0x8c,0x20,0x01,0x71,0x01,0x01,0x64,0x01,0x01,0x20,0x01,0x21,0x23,0x23,0x11,0x7e,0x10,0x10,0x20,0x10,0x02,0x10,0x10,0x1b,0x25,0x22,0x21,0x21,0x06,0x7e,0x0f,0x1b,0x1f,0x1b,0x02,0x1b,0x00,0x11,0x00,0x11,0x22,0x04,0x0b,0x91,0x16,0x13,0x00, -0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4,0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x25,0x0e,0x03,0x15,0x14,0x1e,0x02, -0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x37,0x01,0x04,0xb8,0xfe,0x92,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86,0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0xfe,0x8b,0x27,0x03,0xe5,0x04,0x14,0x66,0x15,0x6b,0x99,0xbd,0x69,0x61, -0xa3,0x76,0x42,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4f,0x96,0xd7,0x88,0x6c,0xcf,0xae,0x84,0x22,0x6c,0x93,0xfe,0xed,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x19,0x00,0x3f,0x40,0x28,0x3b,0x12,0x4b,0x12,0x02,0x86,0x0a,0x96,0x0a,0x02,0x95,0x09,0x01,0x86,0x09,0x01,0x25,0x09,0x01,0x99,0x05,0x01,0x2a,0x05, -0x01,0x19,0x7e,0x01,0x01,0x1b,0x0c,0x7e,0x0e,0x07,0x91,0x14,0x04,0x01,0x0d,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x05,0x25,0xa8,0x39,0x69, -0x93,0x5a,0x5d,0x98,0x6c,0x3b,0xa8,0x4e,0x91,0xd0,0x83,0x88,0xd9,0x97,0x51,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc,0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x04,0xf6,0x05,0xb2,0x00,0x23,0x00,0x9a,0x40,0x63,0x46,0x1e,0x56,0x1e,0x96,0x1e,0x03,0x93,0x19,0x01, -0x45,0x18,0x01,0x9c,0x14,0x01,0x38,0x14,0x01,0x86,0x0d,0x01,0x89,0x09,0x01,0x3a,0x09,0x01,0x01,0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x99,0x22,0x01,0x22,0x21,0x21,0x81,0x20,0x91,0x20,0x02,0x34,0x20,0x74,0x20,0x02,0x20,0x23,0x1b,0x7e,0x6d,0x01,0x01,0x01,0x23,0x10,0x06,0x20,0x06,0x30,0x06,0x03, -0x06,0x06,0x11,0x25,0x00,0x23,0x23,0x10,0x7e,0x0f,0x11,0x1f,0x11,0x02,0x11,0x00,0x10,0x00,0x10,0x22,0x12,0x0b,0x91,0x16,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0xed,0x11,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4, -0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x05,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x07,0x01,0x9c,0x01,0x6e,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86, -0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0x01,0x75,0x27,0xfc,0x1b,0x01,0xa6,0x66,0x15,0x65,0x91,0xb8,0x69,0x61,0x9f,0x71,0x3e,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4b,0x91,0xd3,0x88,0x6c,0xc9,0xa7,0x7e,0x22,0x6c,0x93,0x01,0x13,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x89,0x05,0xb2,0x00,0x1c,0x00,0x58,0x40,0x38,0x7a,0x19, -0x01,0x68,0x19,0x01,0x1a,0x19,0x01,0x96,0x11,0x01,0x85,0x11,0x01,0x27,0x11,0x01,0x25,0x10,0x01,0x2a,0x0c,0x01,0x8b,0x0b,0x9b,0x0b,0x02,0x29,0x0b,0x01,0x16,0x03,0x01,0x13,0x7e,0x15,0x00,0x06,0x7e,0x08,0x1b,0x7e,0x00,0x08,0x08,0x01,0x00,0x15,0x12,0x1b,0x01,0x91,0x0e,0x04,0x00,0x3f,0xed,0x32,0x3f,0xce,0x11,0x39,0x2f,0x01, -0x2f,0xed,0xde,0xed,0x10,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x11,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x11,0x02,0xaf,0x52,0x8e,0x69,0x3c,0xa8,0x5b,0xa8,0xed,0x92,0x92,0xee,0xa9,0x5c,0xa8,0x3c,0x6a,0x90,0x54, -0x01,0x59,0x03,0xbc,0x0b,0x47,0x74,0x9f,0x62,0x74,0x7f,0x91,0xe0,0x99,0x4f,0x52,0x9e,0xe9,0x97,0xfc,0xbe,0x03,0x5d,0x5f,0x9a,0x71,0x45,0x0a,0xfc,0x43,0x00,0x02,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x28,0x00,0x3a,0x00,0xb7,0x40,0x79,0x95,0x37,0x01,0x47,0x37,0x01,0x93,0x36,0x01,0x94,0x33,0x01,0x55,0x32,0x95,0x32, -0x02,0x45,0x2d,0x01,0x36,0x2d,0x01,0x2b,0x2b,0x8b,0x2b,0x02,0x68,0x2a,0x78,0x2a,0x02,0x94,0x27,0x01,0x94,0x24,0x01,0x36,0x24,0x01,0x89,0x1e,0x01,0x8a,0x1d,0x01,0x8a,0x1b,0x01,0x5a,0x19,0x01,0x80,0x28,0x90,0x28,0x02,0x61,0x28,0x71,0x28,0x02,0x50,0x28,0x01,0x04,0x28,0x01,0x28,0x0c,0x39,0x7e,0x16,0x4f,0x10,0x01,0x3b,0x10, -0x01,0x29,0x10,0x01,0x10,0x0e,0x16,0x05,0x7e,0x06,0x06,0x26,0x7e,0x29,0x16,0x29,0x16,0x29,0x20,0x3c,0x0c,0x7e,0x0e,0x0e,0x2f,0x7e,0x20,0x39,0x10,0x2c,0x91,0x23,0x04,0x28,0x10,0x91,0x0c,0x06,0x0e,0x0c,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f, -0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x15,0x23,0x11,0x21,0x36,0x37,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35, -0x34,0x00,0x33,0x20,0x00,0x11,0x10,0x05,0x01,0x34,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x36,0x04,0x0a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0x29,0xaa,0x01,0x93,0x50,0x2f,0x35,0x41,0x1d,0x14,0x2c,0x45,0x30,0x43,0x88,0x6e,0x45,0x01,0x18,0xea,0x01,0x08,0x01,0x34,0xfe,0x26,0x01,0x2a,0xcf, -0xbd,0xa4,0xae,0x2d,0x4d,0x64,0x37,0x3d,0x63,0x44,0x25,0xc0,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0xc8,0x01,0x60,0x1d,0x1b,0x1e,0x3b,0x38,0x17,0x20,0x34,0x2c,0x27,0x13,0x1a,0x48,0x66,0x8a,0x5c,0xc0,0x01,0x12,0xfe,0xb3,0xfe,0xe3,0xfe,0x42,0xf2,0x02,0xa1,0xd6,0x01,0x0c,0xc3,0x78,0x33,0x5b,0x4e,0x3d,0x15,0x18,0x39, -0x47,0x56,0x33,0xae,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xc6,0x05,0xb2,0x00,0x11,0x00,0x6a,0x40,0x46,0xd9,0x0a,0xf9,0x0a,0x02,0xa8,0x0a,0x01,0x46,0x0a,0x01,0x09,0x08,0x01,0x59,0x08,0x01,0x4a,0x08,0x01,0x97,0x03,0x01,0x25,0x03,0x35,0x03,0x02,0xb7,0x01,0x01,0x29,0x01,0x39,0x01,0x02,0x70,0x0e,0x01,0x0e,0x0c,0x0f,0x7e,0x30, -0x11,0x70,0x11,0x02,0x11,0x11,0x13,0x04,0x7e,0xb0,0x06,0x01,0x06,0x0d,0x91,0x0f,0x0f,0x06,0x02,0x91,0x09,0x03,0x11,0x11,0x06,0x12,0x00,0x3f,0x33,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0xcd,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20, -0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x33,0x15,0x23,0x11,0x23,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0x02,0x0a,0x02,0x21,0xf1,0xf1,0xa8,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x3d,0x98,0xfd,0x7f,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x25,0x05,0x9a,0x00,0x19,0x00,0x3f,0x40,0x28,0x99,0x14, -0x01,0x2a,0x14,0x01,0x95,0x10,0x01,0x86,0x10,0x01,0x25,0x10,0x01,0x87,0x0f,0x97,0x0f,0x02,0x3b,0x07,0x4b,0x07,0x02,0x19,0x7e,0x17,0x17,0x1b,0x0c,0x7e,0x0a,0x18,0x0c,0x03,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x51,0x97,0xd9,0x88,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x97,0xe3,0x97,0x4b,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6,0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x00,0x01, -0x00,0x5e,0x00,0x00,0x05,0x7a,0x05,0x9a,0x00,0x11,0x00,0x57,0x40,0x36,0x9e,0x10,0x01,0x4b,0x10,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0x35,0x03,0x01,0x26,0x03,0x01,0x0a,0x08,0x7e,0x0c,0x06,0x06,0x13,0x01,0x7e,0x11,0x0b,0x4a,0x0d,0x5a,0x0d,0x02,0x3b,0x0d,0x01,0x2d,0x0d,0x01,0x1b,0x0d,0x01,0x0d,0x04,0x91,0x0f,0x09,0x91,0x0c, -0x12,0x01,0x07,0x03,0x00,0x3f,0xce,0x3f,0xed,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xce,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0x06,0x23,0x20,0x11,0x5e,0xa8,0x01,0x6d,0x01,0x6e,0xa8,0xf1,0xfe,0x67,0x84, -0xeb,0xfd,0xec,0x04,0x5e,0xfe,0xf1,0xfe,0x56,0x01,0xb9,0x02,0x3c,0xfa,0xfe,0x98,0x01,0x93,0x85,0x02,0x5c,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x3a,0x00,0xba,0x40,0x7a,0x75,0x2e,0x01,0x56,0x2e,0x66,0x2e,0x02,0x5b,0x2a,0x01,0x86,0x24,0x96,0x24,0x02,0x75,0x24,0x01,0x66,0x24,0x01,0x75,0x23,0x01,0x67, -0x23,0x01,0x89,0x1e,0x99,0x1e,0x02,0x89,0x1a,0x01,0x4a,0x1a,0x01,0x7a,0x15,0x01,0x69,0x14,0x01,0x5a,0x11,0x01,0x33,0x0e,0x01,0x88,0x08,0x01,0x08,0x10,0x0d,0x10,0x48,0x49,0x07,0x01,0x73,0x03,0x01,0x65,0x03,0x01,0x65,0x02,0x75,0x02,0x02,0x26,0x7e,0x27,0x27,0x12,0x36,0x31,0x00,0x7e,0x17,0x1c,0x60,0x12,0x01,0x12,0x12,0x3c, -0x31,0x7e,0x1c,0x0b,0x7e,0x0a,0x0a,0x60,0x1c,0x01,0x1c,0x27,0x27,0x36,0x2c,0x36,0x10,0x21,0x0b,0x0b,0x17,0x10,0x17,0x05,0x2c,0x91,0x21,0x04,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39, -0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, -0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xb5,0x5a,0x97,0xc6,0x6c,0x67,0xc8,0x9e,0x61,0xb1,0x45,0x6e,0x88,0x44,0x01,0x71,0x33,0x59,0x7a,0x48,0x6d,0xbf,0x8e,0x53,0x3f,0x7a,0xb1,0x72,0x5a,0xae,0x89,0x55,0xb0,0x29,0x4f,0x75,0x4b,0x48,0x6f,0x4c,0x27,0x38,0x62,0x81,0x48,0x6c,0xb9,0x87,0x4c,0x01,0x85, -0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x49,0x5e,0x3a,0x22,0x0d,0x14,0x3b,0x60,0x8e,0x68,0x55,0x8b,0x63,0x35,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52,0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x0d,0x00,0x4f, -0x40,0x33,0x46,0x0c,0x01,0x33,0x0c,0x01,0x4b,0x0a,0x01,0x3d,0x0a,0x01,0x94,0x05,0x01,0x85,0x05,0x01,0x26,0x05,0x01,0x17,0x05,0x01,0x89,0x03,0x99,0x03,0x02,0x18,0x03,0x28,0x03,0x02,0x0d,0x7e,0x01,0x01,0x0f,0x06,0x7e,0x08,0x00,0x00,0x07,0x04,0x91,0x0b,0x04,0x07,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x12, -0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x05,0x25,0xa8,0xfe,0x6b,0xfe,0x6a,0xa8,0x02,0x3f,0x02,0x3c,0x02,0xc6,0xab,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x90,0xff,0xe8,0x04,0xdf, -0x05,0xb2,0x00,0x2f,0x00,0x43,0x00,0x9f,0x40,0x67,0x59,0x2d,0x01,0x48,0x29,0x01,0x26,0x24,0x01,0x79,0x1e,0x01,0x68,0x1e,0x01,0x59,0x1e,0x01,0x5a,0x1d,0x01,0x76,0x18,0x01,0x67,0x18,0x01,0x56,0x18,0x01,0x66,0x14,0x76,0x14,0x02,0x64,0x0c,0x74,0x0c,0x84,0x0c,0x03,0x66,0x0b,0x76,0x0b,0x02,0x6a,0x07,0x01,0x7b,0x06,0x8b,0x06, -0x02,0x6c,0x06,0x01,0x01,0x10,0x04,0x0e,0x7e,0x30,0x30,0x16,0x7e,0x50,0x2b,0x01,0x2b,0x2b,0x04,0x45,0x21,0x7e,0x20,0x20,0x3a,0x7e,0x04,0x2f,0x2f,0x04,0x11,0x10,0x2e,0x3f,0x3f,0x01,0x91,0x21,0x2e,0x2e,0x35,0x26,0x91,0x1b,0x13,0x35,0x91,0x09,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x32,0x2f,0x11,0x39,0x39, -0x01,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x21,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0xcc,0xbf,0x43,0x45,0x51,0x83,0xa6,0x56,0x55,0xa4,0x82,0x50,0xfe,0xf0,0x49,0x7b,0x5a,0x33,0x5d,0x99,0xc7,0x6a,0x6c,0xc6,0x98,0x5c,0x02,0xa8,0x35,0x64,0x8e,0x5a,0x48,0x89, -0x6c,0x41,0xd1,0xdc,0xfe,0x42,0x03,0x2a,0x30,0x50,0x6a,0x39,0x3f,0x6d,0x4f,0x2d,0x2a,0x4d,0x6c,0x42,0x42,0x6c,0x4e,0x2a,0x03,0x29,0x32,0x93,0x64,0x5b,0x85,0x56,0x2a,0x28,0x57,0x87,0x5a,0xfe,0xed,0x51,0x04,0x05,0x31,0x57,0x7b,0x4e,0x6d,0xa1,0x6a,0x34,0x34,0x6a,0xa1,0x6d,0x43,0x6c,0x4b,0x28,0x20,0x43,0x68,0x48,0x8c,0x8d, -0x01,0x95,0x3a,0x5b,0x3e,0x21,0x23,0x3f,0x5b,0x37,0x40,0x61,0x41,0x22,0x01,0x03,0x23,0x41,0x5f,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xb2,0x05,0x9a,0x00,0x1a,0x00,0x57,0x40,0x34,0x9a,0x08,0x01,0x79,0x08,0x89,0x08,0x02,0x98,0x07,0x01,0x9a,0x03,0x01,0x3d,0x03,0x4d,0x03,0x02,0x2b,0x03,0x01,0x00,0x19,0x7e,0x01,0x01,0x0c, -0x1c,0x0f,0x0a,0x7e,0x0c,0x1a,0x91,0x01,0x26,0x0f,0x01,0x0f,0x14,0x91,0x05,0x01,0x05,0x01,0x05,0x0b,0x0e,0x03,0x0b,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x5d,0x10,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x34,0x26,0x23,0x22, -0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x05,0xb2,0xfe,0x7b,0xb7,0xb6,0x57,0x88,0x5e,0x31,0xa8,0xa8,0x21,0x49,0x58,0x6b,0x42,0x78,0xbb,0x84,0x4d,0x0b,0xe2,0x01,0xe6,0x47,0xd5,0xe9,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x44,0x84,0xc0,0x7c,0x00,0x03, -0x00,0x5e,0x00,0x00,0x05,0xf8,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0x26,0x00,0x87,0x40,0x5a,0x29,0x22,0x01,0x29,0x1e,0x01,0x26,0x19,0x01,0x26,0x15,0x01,0x68,0x12,0x78,0x12,0x02,0x68,0x0e,0x78,0x0e,0x02,0x67,0x07,0x77,0x07,0x02,0x67,0x04,0x77,0x04,0x02,0x17,0x7d,0x0f,0x10,0x01,0x10,0x10,0x0b,0x20,0x7d,0x90,0x06,0x01,0x00, -0x06,0xc0,0x06,0x02,0x06,0x06,0x25,0x02,0x09,0x7e,0x1b,0x14,0x10,0x0b,0xc0,0x0b,0xd0,0x0b,0xf0,0x0b,0x04,0x0b,0x0b,0x27,0x28,0x1b,0x25,0x91,0x0c,0x09,0x40,0x12,0x16,0x48,0x09,0x0b,0x12,0x24,0x1c,0x91,0x02,0x14,0x00,0x03,0x00,0x3f,0xdd,0x32,0xed,0x32,0x3f,0xdd,0x2b,0x32,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33, -0xed,0x32,0x32,0x32,0x2f,0x5d,0x71,0xed,0x11,0x33,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x15,0x04,0x17,0x16,0x15,0x14,0x00,0x21,0x15,0x23,0x35,0x20,0x27,0x26,0x35,0x34,0x37,0x36,0x25,0x01,0x06,0x15,0x14,0x17,0x16,0x33,0x11,0x06,0x01,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x32,0x02,0xd7, -0xa8,0x01,0x0d,0xb6,0xb6,0xfe,0x94,0xfe,0xf3,0xa8,0xfe,0xf2,0xb5,0xb6,0xb6,0xb5,0x01,0x0e,0xfe,0xab,0x74,0x74,0x73,0xe2,0xe2,0x02,0xdf,0x74,0x74,0x74,0xe1,0xe1,0x05,0x9a,0x8c,0x01,0xa3,0xa3,0xfb,0xfd,0xfe,0xb9,0x88,0x88,0xa3,0xa4,0xfd,0xfb,0xa3,0xa3,0x01,0xfe,0xe6,0x7f,0xab,0xa9,0x80,0x7f,0x03,0x52,0x01,0xfd,0x2e,0x80, -0xa9,0xab,0x7f,0x7f,0x01,0xfc,0xae,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xe1,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0xbe,0x40,0x87,0x39,0x20,0x49,0x20,0x59,0x20,0x99,0x20,0x04,0xe4,0x1e,0x01,0xa6,0x1e,0xb6,0x1e,0x02,0x94,0x1e,0x01,0x36,0x1e,0x46,0x1e,0x56,0x1e,0x03,0xe7,0x1a,0x01,0xa6,0x1a,0x01,0x94,0x1a,0x01,0x35,0x1a, -0x45,0x1a,0x55,0x1a,0x03,0x99,0x18,0x01,0x3a,0x18,0x4a,0x18,0x5a,0x18,0x03,0x06,0x10,0x01,0x5b,0x0c,0x01,0x49,0x0c,0x01,0xe8,0x0c,0x01,0xaa,0x0c,0xba,0x0c,0x02,0x56,0x0a,0x01,0xe7,0x0a,0x01,0x14,0x01,0x7e,0x1c,0x7d,0x04,0x07,0x04,0x15,0x15,0x0e,0x7e,0x16,0x10,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x04,0x16,0x04, -0x16,0x23,0x06,0x19,0x91,0x0b,0x26,0x1f,0x91,0x59,0x13,0x69,0x13,0x02,0x13,0x0f,0x11,0x01,0xbf,0x11,0xcf,0x11,0xdf,0x11,0x03,0x11,0x07,0x15,0x91,0x04,0x01,0x03,0x12,0x00,0x3f,0xdd,0x32,0xfd,0x32,0xde,0x5d,0x71,0x32,0x5d,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x32,0x2f,0x11,0x33,0x10,0xed, -0xed,0x32,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x23,0x22,0x27,0x15,0x21,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xe1,0xfc,0xb8,0xa8,0xdd,0xdd,0x01, -0x0b,0xe7,0xee,0x01,0x10,0xf8,0xee,0xda,0x88,0x03,0x48,0xa8,0x9f,0xab,0xa6,0xb0,0xac,0xaa,0xab,0x9f,0x98,0x98,0x98,0x98,0x02,0x8a,0xdf,0x01,0x19,0xfe,0xdf,0xe7,0xe8,0xfe,0xe8,0x77,0xf1,0x02,0x80,0xa8,0xd0,0xd3,0xa1,0xa6,0xda,0xd3,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x82,0x40,0x61, -0x1a,0x17,0x01,0xc8,0x13,0x01,0x0a,0x13,0x1a,0x13,0x02,0xc6,0x11,0x01,0x05,0x11,0x15,0x11,0x02,0x85,0x0d,0xc5,0x0d,0x02,0x04,0x0d,0x14,0x0d,0x02,0xc9,0x0b,0x01,0x56,0x0b,0x66,0x0b,0x96,0x0b,0x03,0xd7,0x07,0x01,0x55,0x07,0x65,0x07,0x95,0x07,0x03,0xc6,0x05,0x01,0x59,0x05,0x69,0x05,0x99,0x05,0x03,0xc6,0x01,0x01,0x5a,0x01, -0x6a,0x01,0x9a,0x01,0x03,0x09,0x7d,0x00,0x15,0x10,0x15,0x30,0x15,0x03,0x15,0x15,0x19,0x0f,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x0c,0x91,0x06,0x04,0x12,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70, -0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x03,0x00,0x86,0xff,0xe8,0x05,0x45,0x05,0x9a,0x00,0x1f,0x00,0x2a,0x00,0x35,0x00,0x82,0x40,0x54,0x3a,0x28,0x4a,0x28,0x02,0x29,0x28,0x01,0x7c,0x23,0x01,0x69,0x23,0x01,0x4a,0x23,0x01,0x39,0x23,0x01, -0x95,0x1d,0x01,0x99,0x14,0x01,0x45,0x0e,0x95,0x0e,0x02,0x24,0x0e,0x34,0x0e,0x02,0x05,0x0e,0x15,0x0e,0x02,0x96,0x0d,0x01,0x55,0x03,0x01,0x57,0x02,0x01,0x16,0x7e,0x2b,0x11,0x00,0x7e,0x20,0x25,0x1b,0x7e,0x11,0x0a,0x7e,0x0b,0x30,0x11,0x0b,0x0b,0x26,0x11,0x11,0x25,0x05,0x31,0x91,0x1b,0x30,0x1a,0x03,0x10,0x26,0x91,0x05,0x13, -0x00,0x3f,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x36, -0x33,0x33,0x11,0x1e,0x03,0x07,0x34,0x2e,0x02,0x27,0x11,0x3e,0x03,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x0e,0x02,0x05,0x45,0x59,0x9f,0xdb,0x82,0x88,0xe3,0xa4,0x5b,0xb1,0x36,0x61,0x84,0x4e,0x6d,0x9c,0x63,0x2f,0xd0,0xcb,0xa8,0x80,0xbf,0x7f,0x3f,0xb0,0x29,0x53,0x7d,0x54,0x4b,0x7b,0x57,0x30,0xfd,0x20,0x29,0x43,0x54,0x2b,0x40, -0x5a,0x38,0x19,0x01,0xe9,0x86,0xc2,0x7d,0x3c,0x44,0x86,0xc6,0x81,0x4d,0x82,0x63,0x3d,0x06,0x02,0xde,0x1a,0x3e,0x4b,0x5a,0x35,0x7a,0x8c,0xfe,0x3f,0x1e,0x61,0x7f,0x9b,0x57,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x09,0x33,0x57,0x7c,0x02,0xff,0x21,0x30,0x23,0x1a,0x0a,0x01,0x04,0x10,0x1c,0x28,0x00,0x00,0x01,0x00,0x00,0x04,0x90, -0x00,0xca,0x06,0x1c,0x00,0x0d,0x00,0x50,0x40,0x15,0x0c,0x18,0x22,0x25,0x48,0x0c,0x18,0x09,0x13,0x48,0x08,0x18,0x22,0x25,0x48,0x08,0x18,0x09,0x13,0x48,0x05,0xb8,0xff,0xe8,0xb3,0x1d,0x21,0x48,0x01,0xb8,0xff,0xf0,0x40,0x17,0x1d,0x21,0x48,0x00,0x06,0x03,0xc4,0x10,0x0a,0x20,0x0a,0x30,0x0a,0x03,0x0a,0x00,0xc5,0x40,0x0d,0xc0, -0x06,0xc5,0x07,0x00,0x2f,0xed,0x1a,0xde,0x1a,0xed,0x01,0x2f,0x5d,0xfd,0xce,0x32,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x13,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0xca,0x30,0x40,0x40,0x30,0x54,0x76,0x76,0x54,0x05,0xcb,0x41,0x34,0x34,0x41,0x51,0x6c,0x5a,0x5a,0x6c,0x00,0x01,0x00,0x00,0x04,0x8a, -0x00,0xe1,0x06,0x03,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x01,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x11,0x35,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x5e,0x14,0x34,0x3e, -0x3a,0x30,0x35,0x42,0x71,0x04,0x8a,0x49,0x05,0x62,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x60,0x93,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x22,0x40,0x11,0x78,0x03,0x88,0x03,0x98,0x03,0x03,0x03,0x40,0x00,0x80,0x01,0x40,0x02,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcd,0x1a,0xdd,0x1a, -0xcd,0x31,0x30,0x5d,0x01,0x03,0x23,0x13,0x01,0x35,0xb6,0x7f,0x8f,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x01,0x00,0x00,0x04,0x3e,0x01,0x92,0x06,0x03,0x00,0x1d,0x00,0x13,0xb6,0x03,0x1b,0x1b,0x0d,0x13,0x00,0x0f,0x00,0x2f,0xcc,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15, -0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x35,0x34,0x27,0x01,0x86,0x04,0x08,0x1a,0x2d,0x3c,0x22,0x1a,0x2c,0x21,0x12,0x08,0x71,0x04,0x07,0x59,0x48,0x18,0x2d,0x23,0x15,0x08,0x06,0x03,0x0f,0x30,0x13,0x23,0x38,0x2e,0x25,0x10,0x0c,0x19,0x1d,0x24,0x16,0x17,0x22,0x0f,0x2f,0x14,0x45,0x5b,0x1d,0x0a,0x19,0x1f,0x25, -0x16,0x17,0x22,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x31,0xb7,0x77,0x03,0x87,0x03,0x97,0x03,0x03,0x03,0xb8,0xff,0xf8,0x40,0x12,0x18,0x1c,0x48,0x01,0x40,0x00,0x80,0x03,0x40,0x50,0x02,0x60,0x02,0x02,0x02,0x03,0x80,0x01,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x5d,0x1a,0xcd,0x1a,0xdd,0x1a,0xcd,0x31, -0x30,0x2b,0x5d,0x01,0x23,0x03,0x33,0x01,0x35,0x7f,0xb6,0xa8,0x04,0xc2,0x01,0x48,0x00,0x01,0x00,0x00,0x04,0x76,0x02,0x29,0x06,0x1c,0x00,0x2d,0x00,0xa0,0xb5,0x2a,0x08,0x11,0x14,0x48,0x26,0xb8,0xff,0xf8,0x40,0x4f,0x11,0x14,0x48,0x2a,0x1c,0x01,0x1c,0x10,0x11,0x14,0x48,0x06,0x12,0x16,0x12,0x02,0x19,0x07,0x11,0x01,0x2a,0x09, -0x0d,0x01,0x08,0x0c,0x01,0x39,0x0c,0x10,0x19,0x1f,0x48,0x07,0x03,0x17,0x03,0x27,0x03,0x03,0x3e,0x00,0x7f,0x2d,0x8f,0x2d,0x02,0x2d,0x2d,0x16,0x0a,0x9f,0x23,0xaf,0x23,0x02,0x23,0x40,0x09,0x0c,0x48,0x23,0x16,0x10,0x17,0x20,0x17,0x30,0x17,0x03,0x17,0x00,0x00,0x0f,0xc0,0x05,0x01,0x05,0x28,0xb8,0xff,0xc0,0x40,0x12,0x15,0x1a, -0x48,0x28,0x17,0xaf,0x0f,0xbf,0x0f,0xcf,0x0f,0x03,0x0f,0xc0,0x1e,0x01,0x1e,0x17,0xb8,0x01,0x3a,0x00,0x3f,0xdc,0x71,0xcd,0x71,0x10,0xd4,0x2b,0xcd,0x71,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xcd,0xdc,0x2b,0x71,0xcd,0x11,0x39,0x2f,0x71,0xcd,0x31,0x30,0x5e,0x5d,0x2b,0x5e,0x5d,0x5d,0x5e,0x5d,0x5e,0x5d,0x2b,0x5d,0x2b,0x2b,0x01,0x14, -0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x01,0x37,0x07,0x10,0x1b,0x14,0x15,0x1f,0x14,0x09,0x16,0x24,0x30,0x19,0x32,0x4b,0x35,0x23,0x13,0x08,0x5b,0x09,0x1a,0x2e,0x4a,0x69,0x47,0x2e,0x51,0x3c,0x23,0x18, -0x2d,0x40,0x27,0x2a,0x3c,0x28,0x13,0x05,0x4f,0x0e,0x1e,0x19,0x10,0x0e,0x18,0x1f,0x10,0x1a,0x2b,0x1e,0x11,0x20,0x36,0x45,0x4a,0x49,0x1f,0x20,0x57,0x5e,0x5c,0x48,0x2d,0x1e,0x36,0x4a,0x2c,0x23,0x3f,0x2e,0x1b,0x1b,0x2f,0x3d,0x21,0x00,0x00,0x01,0x00,0x00,0x04,0xb7,0x02,0xce,0x06,0x1c,0x00,0x06,0x00,0x2a,0x40,0x16,0xa5,0x01, -0xb5,0x01,0xc5,0x01,0x03,0x96,0x01,0x01,0x01,0x06,0x04,0x00,0x00,0x02,0x04,0x00,0x06,0x05,0x01,0x04,0x00,0x2f,0xdd,0x32,0xcd,0x32,0x01,0x2f,0xcd,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x07,0x21,0x15,0x21,0x35,0x01,0x01,0x60,0xc9,0x02,0x37,0xfd,0x32,0x01,0x11,0x05,0xd1,0xd5,0x45,0x45,0x01,0x20,0x00,0x00,0x01, -0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x91,0x40,0x63,0x9c,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x57,0x1c,0x01,0x98,0x1b,0x01,0xc8,0x1a,0x01,0x9c,0x1a,0x01,0x07,0x0e,0x17,0x0e,0x02,0xf7,0x0e,0x01,0x36,0x0e,0x01,0x66,0x0c,0xe6,0x0c,0xf6,0x0c,0x03,0x55,0x0c,0x01,0x27,0x0c,0x37,0x0c,0x02,0x66,0x0c, -0x76,0x0c,0x86,0x0c,0x03,0x36,0x06,0x01,0x56,0x04,0x01,0x66,0x04,0x76,0x04,0x86,0x04,0x03,0x01,0x84,0x1f,0x08,0x15,0x15,0x12,0x84,0x10,0x1b,0x0a,0x84,0x08,0x08,0x20,0x21,0x16,0x0d,0x0d,0x1b,0x05,0x95,0x18,0x1d,0x16,0x14,0x0f,0x11,0x09,0x00,0x0f,0x00,0x3f,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x01, -0x39,0x2f,0xed,0x33,0xdc,0xed,0x33,0x2f,0x10,0xdc,0xed,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x71,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x69, -0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x16,0x00,0x5a,0x40,0x3a,0x75,0x15, -0x01,0x05,0x14,0x15,0x14,0x25,0x14,0x75,0x14,0x85,0x14,0x95,0x14,0x06,0xe8,0x06,0xf8,0x06,0x02,0xc7,0x06,0xd7,0x06,0x02,0x69,0x03,0x01,0x09,0x09,0x18,0x16,0x84,0x01,0x01,0x18,0x0f,0x0b,0x07,0x84,0x0d,0x10,0x04,0x95,0x13,0x01,0x01,0x13,0x10,0x0e,0x0f,0x0d,0x1b,0x09,0x95,0x0b,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x39,0x2f, -0x10,0xed,0x32,0x01,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfd,0x20,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x01,0x30, -0x01,0x18,0x01,0x46,0xb9,0x8d,0xfe,0x50,0x98,0xfe,0x29,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xf2,0x04,0x18,0x00,0x14,0x00,0x21,0x00,0x72,0x40,0x4d,0xc9,0x21,0xd9,0x21,0x02,0x26,0x20,0x36,0x20,0x02,0xc9,0x1e,0xd9,0x1e,0x02,0x64,0x1e,0x01,0x45,0x1e,0x55,0x1e,0x02,0x44,0x1a,0x54,0x1a,0x02, -0x68,0x0d,0x01,0xa7,0x0c,0x01,0xca,0x09,0xda,0x09,0x02,0x02,0x00,0x13,0x84,0x16,0x12,0x20,0x04,0x01,0x04,0x04,0x23,0x1c,0x83,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x12,0x0f,0x10,0x19,0x95,0x0e,0x10,0x05,0x1f,0x95,0x08,0x16,0x04,0x1b,0x00,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0xed, -0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xf2,0xe2,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01, -0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0x98,0x98,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfc,0x98,0x01,0x35,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xc3,0x04,0x18,0x00,0x16,0x00,0x5d,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86, -0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x14,0x00,0x12,0x84,0x01,0x01,0x18,0x0b,0x07,0x84,0x09,0x14,0x95,0x16,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x15,0x01,0x1b,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32, -0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0x32,0xce,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x23,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xcb,0xcb,0xfe,0x29,0x04,0x1f,0x01, -0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfe,0x26,0x98,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x2a,0x05,0xec,0x00,0x16,0x00,0x60,0x40,0x3e,0x7a,0x11,0x8a,0x11,0x02,0x10,0x18,0x10,0x14,0x48,0x09,0x10,0x19,0x10,0x29,0x10,0x03,0xc9,0x06,0xd9,0x06,0x02,0x06,0x10,0x1f,0x22,0x48,0x36,0x06,0x01,0x65,0x03,0x01,0x00, -0x00,0x18,0x09,0x84,0x0b,0x07,0x07,0x18,0x15,0x01,0x84,0x12,0x08,0x08,0x0f,0x00,0x95,0x15,0x0f,0x13,0x00,0x0c,0x04,0x95,0x0f,0x16,0x0b,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x01,0x21,0x11,0x10, -0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x21,0x04,0x2a,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xa4,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9,0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x04,0x5e,0xfe,0x14,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xec, -0x04,0x18,0x00,0x12,0x00,0x1f,0x00,0x67,0x40,0x46,0xc9,0x1f,0xd9,0x1f,0x02,0x26,0x1e,0x36,0x1e,0x02,0xc9,0x1c,0xd9,0x1c,0x02,0x45,0x1c,0x55,0x1c,0x02,0x44,0x18,0x54,0x18,0x02,0xa7,0x07,0x01,0xca,0x04,0xda,0x04,0x02,0x10,0x0e,0x84,0x14,0x0d,0x00,0x12,0x10,0x12,0x20,0x12,0x03,0x12,0x12,0x21,0x1a,0x83,0x1f,0x06,0x01,0x06, -0x10,0x95,0x12,0x1b,0x0d,0x0f,0x0c,0x17,0x95,0x09,0x10,0x00,0x1d,0x95,0x03,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33, -0x15,0x21,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x6c,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xdc,0xfe,0x80,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xb0,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfa,0xc1,0x98,0x03,0xa4,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00, -0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x2a,0x05,0xec,0x00,0x09,0x00,0x26,0x40,0x13,0x09,0x06,0x09,0x06,0x0b,0x04,0x07,0x84,0x01,0x06,0x95,0x04,0x0f,0x02,0x00,0x09,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xf8, -0xfc,0xae,0xa4,0x02,0xe0,0xfd,0x20,0x02,0xae,0x05,0xec,0xfe,0x14,0x98,0xfd,0x30,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x14,0x00,0x5c,0x40,0x0b,0x28,0x13,0x01,0x76,0x13,0x86,0x13,0x96,0x13,0x03,0x12,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x12,0x15,0x12,0x25,0x12,0x03,0x86,0x06,0x96,0x06,0x02,0xe8, -0x05,0x01,0x28,0x03,0x01,0x69,0x03,0x01,0x09,0x14,0x84,0x01,0x01,0x16,0x0d,0x07,0x84,0x0b,0x0e,0x04,0x95,0x11,0x10,0x0c,0x0f,0x09,0x95,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x5d,0x71,0x5d,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22, -0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfc,0x7c,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfc,0x79,0x98,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0xa6,0xfe,0x29,0x05,0x2b,0x04,0x18,0x00,0x0c,0x00,0x38,0x00,0x8c,0x40,0x5b, -0x98,0x35,0x01,0x97,0x23,0x01,0x66,0x23,0x76,0x23,0x86,0x23,0x03,0x65,0x22,0x01,0x89,0x1e,0x01,0x96,0x15,0x01,0x87,0x15,0x01,0x5a,0x10,0x01,0x49,0x10,0x01,0x9a,0x0a,0x01,0x89,0x0a,0x01,0x78,0x0a,0x01,0x69,0x0a,0x01,0x97,0x07,0x01,0x66,0x03,0x76,0x03,0x86,0x03,0x03,0x28,0x27,0x25,0x84,0x0d,0x01,0x01,0x19,0x3a,0x05,0x84, -0x33,0x1b,0x17,0x84,0x19,0x01,0x28,0x95,0x25,0x0d,0x0d,0x12,0x08,0x95,0x2e,0x16,0x1c,0x1d,0x1d,0x12,0x95,0x20,0x10,0x1a,0x0f,0x18,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x33,0x11,0x33,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xc4,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x03,0xe9,0x80,0x58,0x67, -0x4f,0x47,0x2e,0x41,0x28,0x12,0x03,0x2e,0x4e,0x69,0x3e,0x57,0x8b,0x62,0x35,0xa4,0xa4,0x04,0x40,0xd4,0x8a,0x5a,0x99,0x71,0x40,0x01,0x9a,0x9a,0x2c,0x56,0x80,0x54,0x45,0x74,0x54,0x2f,0x36,0x60,0x85,0x4f,0x01,0x5c,0x9e,0x6a,0x61,0x54,0x61,0x27,0x40,0x51,0x01,0x60,0x3a,0x5d,0x42,0x23,0x41,0x6b,0x88,0x47,0xfc,0x16,0x05,0xd7, -0xb4,0x60,0x6c,0x38,0x67,0x90,0x57,0x98,0x9e,0x52,0x88,0x63,0x37,0x32,0x58,0x77,0x46,0x52,0x84,0x5c,0x31,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xca,0x05,0xec,0x00,0x16,0x00,0x23,0x00,0x55,0x40,0x36,0x68,0x0f,0x01,0x4a,0x0f,0x5a,0x0f,0x02,0x48,0x0e,0x58,0x0e,0x02,0x68,0x09,0x01,0x5a,0x09,0x01,0x4d,0x09,0x01,0x66,0x05, -0x01,0x55,0x05,0x01,0x43,0x05,0x01,0x01,0x00,0x15,0x84,0x12,0x17,0x17,0x25,0x1b,0x83,0x0c,0x01,0x17,0x95,0x12,0x15,0x0f,0x14,0x00,0x1e,0x95,0x07,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc4,0xfd,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x14,0x0e, -0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x33,0x11,0x33,0x05,0x21,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x04,0xca,0xce,0x39,0x6f,0xa3,0x6b,0x7b,0xb8,0x79,0x3c,0x40,0x7b,0xb4,0x74,0x01,0x13,0xa8,0xce,0xfe,0x8a,0xfe,0xff,0xa7,0xa1,0x05,0x05,0xa1,0x8e,0x48,0x6b,0x45,0x22,0x03,0x76,0xfe,0x8d, -0x69,0xc3,0x96,0x59,0x52,0x92,0xc8,0x75,0x70,0xba,0x84,0x49,0x01,0xec,0xfe,0x14,0x8a,0xba,0xb9,0xc8,0xc9,0x46,0x72,0x92,0x4b,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x4e,0xb3,0x37,0x10,0x01,0x10,0xb8,0xff,0xd0,0x40,0x2c,0x11,0x14,0x48,0x71,0x10,0x01,0x06,0x10,0x16,0x10,0x26,0x10,0x03,0x86, -0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x11,0x84,0x01,0x01,0x13,0x0b,0x07,0x84,0x09,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x08,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x5d,0x2b,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23, -0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0xc3,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0x76,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x05,0x84,0x03,0x04,0x0f,0x01,0x95,0x03,0x1b, -0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0x2c,0xfe,0x30,0xa4,0xfe,0xc1,0x98,0x05,0xd7,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x0b,0x05,0xec,0x00,0x35,0x00,0x49,0x40,0x29,0x95,0x2c,0x01,0x87,0x2c,0x01,0x28,0x84,0x0d,0x35,0x84,0x01,0x33,0x0d,0x33,0x0d,0x33,0x1a, -0x37,0x1c,0x18,0x84,0x1a,0x34,0x0f,0x1e,0x13,0x95,0x23,0x10,0x1c,0x00,0x19,0x1b,0x2e,0x95,0x03,0x08,0x16,0x00,0x15,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x3f,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x21,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35, -0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x06,0x0b,0xa4,0x04,0x1a,0x38,0x44,0x51,0x32,0x61,0x80,0x4b,0x1f,0x0d,0x26,0x43,0x37,0x42,0x63,0x42,0x21,0xa4,0xa4,0x04,0x1e,0x41,0x4c,0x5b,0x36,0x54,0x6d, -0x3f,0x18,0x0d,0x2d,0x54,0x47,0x3e,0x5a,0x3b,0x1d,0xa4,0xa2,0x2f,0x45,0x2f,0x17,0x43,0x7c,0xb0,0x6d,0x62,0x50,0x84,0x5f,0x35,0x43,0x6b,0x84,0x40,0xfc,0x0d,0x07,0xc3,0xfd,0x6a,0x30,0x49,0x31,0x18,0x41,0x77,0xa9,0x68,0x71,0x51,0x86,0x60,0x35,0x43,0x69,0x80,0x3c,0x02,0x26,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xb0,0x06,0x02, -0x00,0x15,0x00,0x25,0x00,0xc7,0x40,0x64,0x96,0x1a,0x01,0x96,0x16,0x01,0x48,0x0a,0x58,0x0a,0x02,0x49,0x06,0x59,0x06,0x02,0x5a,0x05,0x01,0x49,0x05,0x01,0x56,0x03,0x01,0x45,0x03,0x01,0x56,0x02,0x01,0x47,0x02,0x01,0x79,0x0c,0x99,0x0c,0x02,0x4c,0x0c,0x5c,0x0c,0x02,0x38,0x0c,0x01,0x0c,0x23,0x0d,0x20,0xb5,0x11,0xc5,0x11,0x02, -0x87,0x11,0x01,0x62,0x11,0x01,0x47,0x11,0x57,0x11,0x02,0x46,0x14,0x56,0x14,0x02,0x11,0x14,0x10,0x12,0x12,0x00,0x83,0x10,0x20,0x20,0x20,0x30,0x20,0x03,0x20,0x20,0x08,0x27,0xe9,0x0f,0x01,0x0f,0x10,0x0d,0x12,0x48,0x0f,0x10,0xb8,0xff,0xc0,0x40,0x21,0x0e,0x12,0x48,0x10,0x36,0x0e,0x01,0x0e,0x0d,0x0d,0x18,0x83,0x20,0x08,0x01, -0x08,0x14,0x23,0x95,0x0f,0x10,0x0d,0x03,0x0e,0x0c,0x11,0x0f,0x0e,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc5,0x12,0x17,0x39,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xcd,0x2b,0x32,0x2b,0x5d,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d, -0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x01,0x37,0x17,0x07,0x01,0x21,0x15,0x23,0x16,0x25,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x26,0x27,0x27,0x23,0x22,0x04,0x50,0x85,0x8b,0xee,0xe7,0x87,0x84,0x89,0x78,0xce,0xfe,0x55, -0x97,0x88,0x43,0x01,0xda,0x01,0x76,0xd9,0x78,0xfd,0x14,0x5b,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x01,0x8c,0x2c,0x5b,0xd6,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0xfb,0x88,0x78,0x0f,0x01,0x21,0xe3,0x5a,0x65,0xfe,0xbd,0x8a,0x96,0x2c,0x69,0xa9,0xab,0x6a,0x73,0x74,0x66,0xb2,0xe6,0x73,0x1f,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2, -0x05,0xec,0x00,0x11,0x00,0x37,0x40,0x21,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95,0x02,0x05,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11, -0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x98,0x40,0x2c,0x75,0x10, -0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b, -0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, -0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2, -0xfe,0x5f,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xb2,0x05,0xc6,0x00,0x14,0x00,0x2f,0x00,0x93,0x40,0x5d,0x99,0x27,0x01,0x46,0x24,0x01,0x37,0x1d,0x01,0x9a,0x12,0x01,0x85,0x08,0x01,0x78,0x15,0x88,0x15,0x02,0x75,0x07,0x01,0x66,0x07,0x01,0x84,0x1a,0x01,0x00,0x1a,0x05,0x91,0x19,0x01,0x19,0x2f,0x2f,0x2a,0x0f,0x99,0x17,0x01,0x17, -0x90,0x18,0x01,0x18,0x16,0x15,0x15,0x05,0x83,0x0f,0x2a,0x01,0x2a,0x21,0x1f,0x84,0x0f,0x0f,0x01,0x0f,0x6c,0x00,0x7c,0x00,0x02,0x4a,0x00,0x5a,0x00,0x02,0x00,0x2f,0x19,0x15,0x18,0x04,0x16,0x1a,0x1a,0x16,0x0a,0x95,0x23,0x25,0x16,0x20,0x15,0x16,0x00,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0x33,0x5d,0x5d, -0x01,0x2f,0x5d,0xed,0xc4,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xcd,0x5d,0x32,0x5d,0x11,0x12,0x39,0x2f,0xcd,0x5d,0x11,0x39,0x39,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x02,0x01,0x37,0x17,0x07,0x05,0x07,0x1e,0x03,0x15,0x11,0x23, -0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0xf0,0x48,0x5c,0x35,0x14,0x25,0x41,0x56,0x32,0x47,0x6b,0x47,0x24,0x2c,0x4d,0x69,0xfe,0x4e,0x6e,0x8f,0x37,0x01,0x89,0x71,0x49,0x7f,0x5d,0x35,0xa4,0x04,0x62,0xc6,0x54,0x8d,0x67,0x3a,0x29,0x5b,0x91,0x67,0x03,0x73,0x44,0x80,0x78,0x73,0x36,0x47,0x6a,0x47,0x24, -0x33,0x5a,0x78,0x45,0x28,0x56,0x79,0x5a,0x45,0x01,0x9e,0xd6,0x3c,0x63,0xda,0x75,0x29,0x5a,0x72,0x8e,0x5b,0xfe,0x06,0xa2,0xba,0x32,0x64,0x95,0x63,0x5a,0xaa,0xaa,0xad,0x5d,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xd4,0x04,0x18,0x00,0x14,0x00,0x58,0x40,0x0b,0x28,0x10,0x01,0x76,0x10,0x86,0x10,0x96,0x10,0x03,0x0f,0xb8,0xff,0xe0, -0x40,0x2c,0x10,0x14,0x48,0x05,0x0f,0x15,0x0f,0x25,0x0f,0x03,0x86,0x05,0x96,0x05,0x02,0x28,0x02,0x01,0x68,0x02,0x01,0x14,0x12,0x84,0x01,0x01,0x16,0x0a,0x06,0x84,0x09,0x0c,0x03,0x95,0x0e,0x10,0x0a,0x0f,0x08,0x15,0x12,0x95,0x00,0x1b,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xcd,0x31, -0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x03,0x54,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xdc,0xfe,0x29,0x04,0x1f,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfc,0x4f,0x98,0x00,0x00,0x02, -0x00,0x60,0xff,0xe8,0x03,0x89,0x06,0x02,0x00,0x20,0x00,0x31,0x00,0x79,0x40,0x4c,0x49,0x2d,0x59,0x2d,0x02,0x76,0x24,0x86,0x24,0x96,0x24,0x03,0x67,0x24,0x01,0x75,0x12,0x01,0x66,0x12,0x01,0x86,0x0d,0x01,0x77,0x0d,0x01,0x49,0x03,0x59,0x03,0x99,0x03,0x03,0x2f,0x10,0x21,0x1f,0x01,0x1c,0x09,0x09,0x13,0x84,0x15,0x2b,0x2b,0x33, -0x21,0x84,0x1c,0x00,0x00,0x0f,0x1c,0x01,0x1c,0x26,0x95,0x17,0x19,0x16,0x14,0x15,0x09,0x0b,0x95,0x08,0x06,0x01,0x1f,0x2f,0x95,0x10,0x01,0x10,0x00,0x3f,0xc4,0xfd,0xc4,0x3f,0x33,0xed,0x32,0x3f,0x3f,0x33,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x07,0x33,0x20,0x11,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x10,0x21,0x23,0x06,0x06,0x60,0x5a,0x21,0x77,0xa0,0xc0,0x6b,0x43,0x29,0x34,0x3e,0x50, -0x8a,0x71,0x55,0x19,0x5e,0x01,0xcd,0xa4,0x04,0x6a,0xd1,0x99,0xad,0x17,0x1d,0x34,0xa8,0x1c,0x33,0x48,0x2d,0x3f,0x68,0x4a,0x28,0xfe,0xc9,0x78,0x1b,0x13,0x04,0x18,0x62,0xb1,0x87,0x50,0x0a,0x8d,0x0d,0x3c,0x63,0x7e,0x43,0xfe,0x1e,0xfd,0xca,0xa0,0xb8,0xde,0xe0,0x8d,0xf3,0x68,0xfe,0x24,0x53,0x78,0x4f,0x26,0x30,0x52,0x6e,0x3e, -0x85,0x01,0x69,0x61,0xec,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xaf,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x13,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x12,0x95,0x10,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x00,0x15,0x00,0x3f, -0x3f,0x33,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0x32,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x15,0x23,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x01,0x71,0xcd,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, -0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0x98,0x00,0x01,0xff,0x70,0xfe,0x29,0x01,0x80,0x04,0x00,0x00,0x0a,0x00,0x16,0x40,0x0a,0x0a,0x84,0x05,0x09,0x09,0x0f,0x06,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xce,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x11,0x11,0x33,0x01,0x80,0xcb,0xb5,0x90,0x8c,0xe0,0xa4,0x09, -0xe8,0xf8,0x98,0x01,0x3b,0x04,0x04,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x04,0x0b,0x05,0xec,0x00,0x13,0x00,0x3e,0x40,0x25,0x9a,0x10,0x01,0x8b,0x10,0x01,0x29,0x10,0x01,0x76,0x03,0x01,0x67,0x03,0x01,0x13,0x01,0x84,0x11,0x0d,0x0b,0x09,0x84,0x07,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x09,0x0f,0x12,0x95,0x01,0x00,0x00,0x3f,0xed, -0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xed,0xc4,0x32,0x2f,0xed,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x03,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x23,0x0a,0x01,0x66,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xc3,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e, -0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x01,0x00,0x60,0xfe,0x29,0x03,0xc6,0x04,0x18,0x00,0x2f,0x00,0x71,0x40,0x49,0x66,0x2d,0x76,0x2d,0x02,0x79,0x2b,0x01,0x48,0x22,0x58,0x22,0x02,0x9a,0x03,0x01,0x89,0x03,0x01,0x99,0x02,0x01,0x88,0x02,0x01,0x93,0x0f,0x01,0x64,0x0f,0x74,0x0f,0x84,0x0f,0x03,0x0f,0x13,0x1a,0x1a,0x0a, -0x84,0x9c,0x25,0x01,0x8b,0x25,0x01,0x6c,0x25,0x01,0x25,0x20,0x29,0x29,0x31,0x13,0x84,0x20,0x2f,0x84,0x00,0x00,0x20,0x19,0x95,0x1b,0x1b,0x00,0x00,0x2c,0x95,0x05,0x10,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x31,0x30, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x60,0x44,0x76,0x9e,0x5b,0x5b,0x9e,0x76,0x44,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x1a,0x33,0x49,0x30,0x01,0xfe,0xfd, -0xf1,0x51,0x7f,0x58,0x2f,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x8c,0x85,0x85,0x8c,0x02,0x89,0x5c,0x94,0x67,0x38,0x38,0x67,0x94,0x5c,0x5c,0x8e,0x6e,0x57,0x4b,0x46,0x4d,0x5b,0x3b,0x24,0x3d,0x2e,0x1a,0x94,0x30,0x57,0x77,0x48,0x4e,0x77,0x5d,0x4d,0x48,0x4a,0x5c,0x72,0x4b,0x7e,0x86,0x86,0x7e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00, -0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x98,0x40,0x2c,0x75,0x11,0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x95,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, -0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b, -0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2, -0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x01,0x00,0x60,0xfe,0x29,0x02,0xec,0x04,0x1c,0x00,0x29,0x00,0x6a,0x40,0x41,0xb7,0x29,0x01,0xa6,0x29,0x01,0x88,0x25,0x01,0x9a,0x1f,0x01,0x89,0x1f,0x01,0x99,0x1e,0x01,0x8a,0x1e,0x01,0x65,0x0a,0x01,0x47,0x09,0x01,0x67,0x08,0x01,0x67,0x01,0x01,0x27, -0x28,0x28,0x29,0x95,0x29,0x01,0x29,0x11,0x11,0x03,0x84,0x26,0x23,0x23,0x2b,0x0e,0x84,0x16,0x23,0x03,0x11,0x29,0x28,0x95,0x26,0x27,0x10,0x11,0x95,0x12,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x5d,0x11,0x33,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x36,0x36,0x35,0x34,0x27,0x01,0x25,0x17,0x07,0x02,0x64,0x11,0x13,0x34,0x3b,0x31,0x46,0x3a,0x38,0x22,0x0b,0x12,0x4e,0x01,0xad,0xfe,0x53,0x73,0x6c,0x06, -0x0d,0x15,0x0f,0x1b,0x4c,0x56,0x58,0x27,0x14,0x10,0x0c,0xfe,0x9c,0x01,0x07,0x5f,0x8d,0x01,0xa4,0x19,0x37,0x23,0x29,0x61,0x3b,0x30,0x48,0x41,0x41,0x29,0x0e,0x2b,0x0e,0x45,0x94,0x68,0x70,0x0c,0x24,0x28,0x29,0x13,0x22,0x54,0x59,0x58,0x27,0x13,0x26,0x10,0x19,0x12,0x02,0x08,0xbd,0x84,0x66,0x00,0x00,0x01,0x00,0x90,0xfe,0x29, -0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x5b,0x40,0x38,0x9c,0x1e,0x01,0x85,0x0c,0x01,0x66,0x0c,0x76,0x0c,0x02,0x86,0x03,0x01,0x77,0x03,0x01,0x66,0x03,0x01,0x02,0x84,0x1f,0x08,0x16,0x14,0x12,0x84,0x10,0x1b,0x0b,0x84,0x08,0x05,0x95,0x1d,0x9d,0x1b,0x01,0x48,0x1b,0x58,0x1b,0x02,0x1b,0x15,0x0d,0x95,0x18,0x16,0x13,0x1b,0x11,0x01, -0x0a,0x0f,0x00,0x3f,0xc4,0xc4,0x3f,0x3f,0xed,0x33,0x33,0x5d,0x5d,0xd4,0xed,0x01,0x2f,0xed,0x33,0xdc,0xed,0xc4,0x33,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06, -0x23,0x20,0x11,0x90,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfa,0x29,0x02,0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x04,0x04,0x18, -0x00,0x2d,0x00,0x44,0x00,0x86,0x40,0x57,0x66,0x40,0x01,0x67,0x3e,0x01,0x94,0x39,0x01,0x76,0x39,0x86,0x39,0x02,0x69,0x36,0x01,0x5a,0x29,0x01,0x49,0x29,0x01,0x67,0x17,0x01,0x93,0x16,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x66,0x16,0x01,0x95,0x15,0x01,0x85,0x14,0x01,0x77,0x0f,0x01,0x75,0x0e,0x01,0x89,0x02,0x99,0x02,0x02,0x1f, -0x1f,0x11,0x84,0x33,0x2e,0x42,0x84,0x00,0x00,0x07,0x33,0x33,0x26,0x46,0x3b,0x84,0x07,0x07,0x1b,0x84,0x26,0x2e,0x38,0x1f,0x95,0x21,0x1b,0x38,0x95,0x0c,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x3e,0x03,0x17,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x04,0x15,0x14,0x06, -0x01,0x5c,0x22,0x32,0x3c,0x32,0x22,0x43,0x78,0xa6,0x64,0x64,0xa8,0x78,0x43,0x4d,0x7d,0xa0,0xa6,0xa0,0x3e,0x10,0x15,0x2f,0x33,0x02,0xb1,0xfd,0x4f,0x39,0x5a,0x3f,0x21,0x28,0x23,0x3c,0x46,0x25,0x0a,0x6e,0x43,0x90,0x78,0x4d,0x2a,0x4d,0x6b,0x41,0x96,0x8f,0x1e,0x2e,0x34,0x2e,0x1e,0x0b,0x01,0x01,0x29,0x45,0x40,0x40,0x48,0x55, -0x35,0x58,0x81,0x55,0x29,0x39,0x65,0x8d,0x54,0x54,0x9b,0x8f,0x87,0x7f,0x7a,0x3b,0x0f,0x2d,0x0e,0x23,0x36,0x94,0x23,0x40,0x5b,0x38,0x2d,0x51,0x20,0x35,0x54,0x4b,0x48,0x43,0x3a,0x70,0x77,0x84,0x4e,0x3b,0x60,0x44,0x25,0x68,0x6a,0x23,0x41,0x3e,0x3d,0x41,0x45,0x27,0x2a,0x44,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x87,0x04,0x18, -0x00,0x17,0x00,0x55,0x40,0x31,0x86,0x10,0x96,0x10,0x02,0x75,0x10,0x01,0x6a,0x03,0x01,0x59,0x03,0x01,0x06,0x14,0x01,0x14,0x00,0x15,0x15,0x12,0x84,0x02,0x00,0x00,0x07,0x02,0x02,0x09,0x19,0x0d,0x0b,0x07,0x84,0x09,0x00,0x14,0x95,0x09,0x17,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xc4,0xed,0x39, -0x01,0x2f,0xfd,0xc4,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x25,0x24,0x11,0x10,0x25,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x21,0x15,0x21,0x02,0x5b,0x01,0x17,0xfe,0xfe,0x85,0xa1,0xa4,0xa4,0x04,0x74,0xe6,0x9e,0xd0, -0xc0,0x01,0x31,0xfd,0xd4,0x47,0x95,0x01,0x63,0x01,0x3e,0x11,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xea,0xf0,0xf7,0xbb,0x8c,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa5,0x40,0x3c,0x79,0x06,0x01,0x9b,0x06,0x01,0x8b,0x06,0x01,0x66,0x0b,0x01,0x56,0x0b,0x01,0x79,0x06,0x01,0x0d,0x10,0x0b,0x0c, -0x00,0x4c,0x38,0x03,0x01,0x01,0x15,0x03,0x0c,0x95,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f, -0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x32, -0x3f,0x5d,0x31,0x30,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x90,0xfe,0x29, -0x04,0xbe,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x00,0x12,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x11,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x13,0x95,0x01,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f, -0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x33,0x04,0xbe,0xfe,0x80,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xdc,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xf8,0xd5, -0x00,0x01,0x00,0x8f,0xff,0xe8,0x06,0x17,0x04,0x18,0x00,0x26,0x00,0x53,0x40,0x33,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c,0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x14,0x1d,0x0f,0x17,0x95,0x0d,0x10,0x16, -0x01,0x0a,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0xc4,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x33, -0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41,0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfd,0xaa,0xa2,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x02,0x4e,0xaa,0x61,0x61, -0xd8,0xce,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x53,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86,0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x29,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x69,0x03,0x01,0x12,0x84,0x01,0x01,0x14,0x0b,0x07,0x84,0x09, -0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74, -0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfb,0xe1,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x28,0x00,0x3d,0x00,0x70,0x40,0x47,0x55,0x31,0x01,0x46,0x31,0x01,0x45,0x2b,0x01,0x5a,0x21,0x01,0x7a,0x1b,0x01,0x69,0x1b,0x01,0x38,0x12,0x01,0x74,0x0e,0x01,0x9a,0x08,0x01,0x89, -0x08,0x01,0x8a,0x07,0x01,0x54,0x02,0x01,0x45,0x02,0x01,0x27,0x15,0x00,0x84,0x38,0x38,0x1e,0x3f,0x0b,0x83,0x0a,0x0a,0x2e,0x83,0x1e,0x28,0x0f,0x29,0x95,0x25,0x23,0x10,0x33,0x95,0x17,0x0b,0x19,0x16,0x10,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0xce,0x33,0xed,0x3f,0x33,0xed,0x3f,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f, -0xed,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x10,0x00,0x23,0x22,0x2e,0x04,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, -0x35,0x35,0x34,0x2e,0x02,0x04,0x10,0xfe,0xf7,0xf5,0x20,0x59,0x60,0x5f,0x4b,0x2f,0xa8,0x35,0x4f,0x5d,0x27,0x51,0x81,0x5a,0x30,0x04,0x75,0xeb,0x6a,0x9f,0x6a,0x35,0x38,0x73,0xb1,0x79,0xcf,0x64,0x04,0xa4,0xfe,0x3c,0x58,0x7b,0x4e,0x23,0x24,0x4a,0x71,0x4e,0x48,0x73,0x51,0x2b,0x2c,0x4e,0x69,0x52,0xfe,0xe6,0xfe,0xe6,0x0d,0x20, -0x35,0x52,0x70,0x4a,0x3f,0x57,0x35,0x17,0x32,0x65,0x96,0x65,0x70,0xc4,0x50,0x89,0xb7,0x67,0x74,0xcf,0x9b,0x5b,0xa6,0x8e,0x72,0x44,0x74,0x98,0x54,0x4a,0x88,0x68,0x3e,0x38,0x5f,0x7f,0x47,0x97,0x3c,0x6b,0x51,0x30,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x02,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x00,0x84,0x03, -0x05,0x0f,0x00,0x95,0x03,0x15,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0xb8,0xfd,0xa4,0xa4,0x98,0x98,0x04,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x06,0x17,0x05,0xec,0x00,0x26,0x00,0x55,0x40,0x35,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c, -0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x1d,0x00,0x14,0x0f,0x17,0x95,0x0d,0x10,0x16,0x0a,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31, -0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41, -0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfb,0xd3,0x02,0x79,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x04,0x3a,0xfd,0x6a,0x61,0x61,0xd8,0xce,0x00,0x02,0x00,0x00,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x62,0x40,0x3b,0x4a,0x21,0x5a,0x21, -0x02,0x43,0x1f,0x53,0x1f,0x02,0x66,0x09,0x76,0x09,0x02,0x12,0x12,0x0a,0x83,0x20,0x20,0x17,0x27,0x05,0x03,0x1a,0x14,0x0f,0x11,0x84,0x01,0x00,0x17,0x11,0x01,0x95,0x17,0x00,0x14,0x10,0x14,0x20,0x14,0x03,0x14,0x16,0x1b,0x1d,0x95,0x0f,0x0d,0x16,0x23,0x95,0x04,0x07,0x10,0x02,0x0f,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f, -0xdd,0x5d,0xc4,0xfd,0xc4,0x01,0x2f,0xcd,0xc4,0xfd,0x32,0xc4,0xc4,0xc4,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x15,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x01,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, -0x22,0x06,0xa6,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x6c,0x04,0x03,0x0a,0xfc,0xf6,0xa4,0xa6,0x01,0x4a,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0xa7,0x04,0xa7,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0xac,0xfe,0xc5,0x98,0x98,0x98,0x03,0x70,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xff,0xe8, -0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x85,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x0b,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x90, -0x15,0x03,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d, -0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed, -0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x03,0x00,0x60,0xfe,0x29,0x05,0x1f,0x05,0xec,0x00,0x0a,0x00,0x2f,0x00,0x38,0x00,0x93,0x40,0x5e,0x45,0x2d,0x01,0x46,0x2c,0x01,0x95,0x27,0x01,0x76,0x27,0x01,0x99,0x1c,0x01,0x96,0x16,0x01,0x34,0x16,0x01,0x25,0x16,0x01, -0x14,0x16,0x01,0x05,0x16,0x01,0x96,0x15,0x01,0x49,0x10,0x01,0x4c,0x0f,0x01,0x5b,0x08,0x01,0x3a,0x08,0x01,0x29,0x08,0x01,0x39,0x03,0x49,0x03,0x69,0x03,0x03,0x1e,0x83,0x30,0x19,0x2a,0x83,0x00,0x2f,0x05,0x25,0x84,0x19,0x12,0x83,0x13,0x35,0x0d,0x19,0x13,0x13,0x06,0x19,0x19,0x05,0x0d,0x36,0x95,0x25,0x35,0x24,0x00,0x18,0x06, -0x95,0x2f,0x0d,0x13,0x0b,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x27,0x11,0x3e, -0x03,0x01,0x23,0x11,0x2e,0x03,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x06,0x04,0x6f,0x29,0x53,0x7d,0x54,0x4c,0x7b,0x57,0x2f,0xfe,0xb3,0xa8,0x71,0xc5,0x91,0x53,0xb1,0x38,0x62,0x84,0x4b,0x6d,0x9c,0x63,0x2f,0x37, -0x69,0x99,0x62,0xa8,0x80,0xbf,0x7f,0x3f,0x4e,0x89,0xba,0x6c,0xfe,0x6d,0x29,0x43,0x54,0x2b,0x7c,0x6f,0x01,0xe9,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x0b,0x32,0x55,0x7c,0xfc,0x95,0x01,0xc2,0x07,0x49,0x84,0xbd,0x7d,0x50,0x83,0x60,0x3a,0x08,0x02,0xde,0x1e,0x47,0x56,0x67,0x3c,0x46,0x6f,0x4e,0x29,0xfd,0xea,0x1e,0x61,0x7c,0x9b, -0x57,0x7e,0xb7,0x7b,0x42,0x0a,0x04,0xd7,0x30,0x3b,0x2e,0x22,0x0d,0x01,0x56,0x4f,0x00,0x01,0x00,0x90,0xff,0xe8,0x05,0x5e,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x27,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x13,0x0f,0x13,0x15,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95, -0x02,0x05,0x16,0x12,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x21,0x05,0x5e,0xfd,0xe0,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78, -0x9b,0xa4,0x01,0x7c,0xa2,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x98,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12,0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f, -0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f, -0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0x00,0x2a,0x00,0x00,0x02,0x19,0x00,0xc8,0x00,0x09,0x00,0x35,0x40,0x1f,0x07,0x08,0x08,0x0b,0x73,0x03,0x83,0x03,0x02,0x55,0x03,0x65,0x03,0x02,0x46,0x03,0x01,0x27,0x03,0x37,0x03,0x02,0x03,0x02,0x02,0x03, -0x07,0x05,0x08,0x00,0x15,0x00,0x3f,0x32,0xdd,0x32,0xce,0x32,0x01,0x2f,0x33,0x71,0x71,0x71,0x71,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x17,0x06,0x01,0x19,0xa6,0x49,0x59,0x27,0x70,0x66,0x7b,0x1e,0x84,0x86,0x42,0x59,0x20,0x63,0x2c,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x69,0x05,0xec,0x00,0x23, -0x00,0x79,0x40,0x4b,0x9b,0x20,0x01,0x85,0x13,0x01,0x76,0x13,0x01,0x67,0x13,0x01,0x85,0x0b,0x01,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x9b,0x06,0x01,0x03,0x01,0x23,0x84,0x0f,0x12,0x84,0x21,0x1d,0x1b,0x19,0x84,0x17,0x80,0x0f,0x01,0x4f,0x21,0x01,0x0f,0x21,0x17,0x17,0x21,0x0f,0x03,0x25,0x09,0x84,0x07,0x23,0x95,0x10,0x00, -0x18,0x09,0x0f,0x1c,0x14,0x95,0x1f,0x0c,0x95,0x02,0x05,0x16,0x1a,0x00,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06, -0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, -0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x9b,0x05,0xec,0x00,0x28,0x00,0x8c,0x40,0x58,0x85,0x20,0x01,0x66,0x20,0x76,0x20,0x02,0x57,0x20,0x01,0x9b,0x1b,0x01,0x9a,0x10,0x01,0x85,0x03,0x01,0x66,0x03,0x76,0x03, -0x02,0x18,0x16,0x15,0x84,0x24,0x27,0x01,0x84,0x12,0x0d,0x0b,0x07,0x28,0x28,0x09,0x84,0x07,0x20,0x24,0x80,0x24,0x02,0x3f,0x12,0x01,0x10,0x07,0x70,0x07,0x02,0x24,0x12,0x07,0x07,0x12,0x24,0x03,0x2a,0x1e,0x84,0x1c,0x08,0x00,0x95,0x1e,0x27,0x0f,0x14,0x95,0x25,0x00,0x0c,0x04,0x95,0x0f,0x21,0x95,0x17,0x1a,0x16,0x0b,0x15,0x0f, -0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xed,0x3f,0xc4,0xfd,0xce,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xc4,0x32,0x10,0xfd,0xc4,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23, -0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x21,0x08,0x9b,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9, -0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x03,0xc6,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfe,0x14,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x23,0x00,0x81,0x40,0x52,0x92,0x22,0x01,0x85,0x17,0x01,0x66,0x17,0x76,0x17,0x02,0x57,0x17,0x01,0x9b,0x12,0x01,0x8a, -0x03,0x01,0x79,0x03,0x01,0x68,0x03,0x01,0x0f,0x0d,0x0b,0x84,0x1b,0x1f,0x1d,0x07,0x84,0x09,0x23,0x84,0x02,0x20,0x1b,0x80,0x1b,0x02,0x7f,0x09,0x01,0x10,0x02,0x01,0x1b,0x09,0x02,0x02,0x09,0x1b,0x03,0x25,0x15,0x84,0x13,0x1e,0x04,0x95,0x21,0x10,0x0a,0x95,0x1c,0x00,0x15,0x0f,0x18,0x95,0x0e,0x11,0x16,0x01,0x0c,0x15,0x08,0x1b, -0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20, -0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x08,0x69,0xa4,0xee,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe, -0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x25,0x00,0x81,0x40,0x51,0x85,0x21,0x01,0x66,0x21,0x76,0x21,0x02,0x57,0x21,0x01,0x9c,0x1c,0x01,0x9b,0x10,0x01,0x75,0x03,0x85,0x03,0x02,0x66,0x03,0x01,0x16,0x14,0x84,0x19,0x17,0x25,0x02,0x84,0x11,0x0d,0x0b,0x09,0x84, -0x07,0x80,0x25,0x01,0x4f,0x11,0x01,0xc0,0x07,0x01,0x25,0x11,0x07,0x07,0x11,0x25,0x03,0x27,0x1f,0x84,0x1d,0x08,0x1f,0x0f,0x15,0x95,0x17,0x1b,0x22,0x95,0x18,0x1b,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x12,0x95,0x00,0x00,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x33,0xd4,0x32,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, -0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0xc4,0x33,0x10,0xed,0x10,0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x03, -0x3e,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa5,0xfe,0xb7,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0xf9,0x6d,0x98,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x00,0x00,0x01, -0x00,0x90,0xfe,0x29,0x0a,0xc2,0x05,0xec,0x00,0x31,0x00,0x90,0x40,0x59,0x85,0x2b,0x01,0x76,0x2b,0x01,0x67,0x2b,0x01,0x83,0x1d,0x01,0x66,0x1d,0x76,0x1d,0x02,0x57,0x1d,0x01,0x9b,0x18,0x01,0x9a,0x09,0x01,0x88,0x09,0x01,0x9b,0x06,0x01,0x15,0x13,0x11,0x84,0x21,0x25,0x23,0x0d,0x84,0x0f,0x29,0x84,0x07,0x03,0x01,0x31,0x84,0x2f, -0x21,0x0f,0x07,0x2f,0x2f,0x07,0x0f,0x21,0x04,0x33,0x1b,0x84,0x19,0x24,0x0a,0x95,0x27,0x10,0x10,0x95,0x22,0x00,0x30,0x1b,0x0f,0x2c,0x95,0x02,0x05,0x1e,0x95,0x14,0x17,0x16,0x01,0x12,0x15,0x0e,0x1b,0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0x32,0xed,0x3f,0xc4,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, -0x2f,0x2f,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21, -0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x0a,0xc2,0xa4,0x04,0x66,0xc7,0xfe,0xab,0xc1,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x2c,0xdf,0x69,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0xb2,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac, -0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0xc1,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x83,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x2b,0x00,0x5a,0x40,0x30,0x0f,0x09,0x1c,0x1b,0x11,0x0e,0x7e,0x01,0x2a,0x14,0x01,0x08,0x09,0x1b,0x01,0x01,0x1b,0x09,0x03,0x2d,0x24,0x00, -0x08,0x14,0x23,0x92,0x24,0x11,0x2b,0x92,0x0e,0x00,0x00,0x00,0x24,0x10,0x24,0x02,0x24,0x24,0x08,0x1c,0x12,0x0b,0x07,0x92,0x08,0x03,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x11,0x33, -0x31,0x30,0x13,0x21,0x2e,0x03,0x23,0x23,0x35,0x21,0x15,0x21,0x16,0x16,0x17,0x21,0x15,0x21,0x06,0x06,0x07,0x15,0x1e,0x03,0x17,0x13,0x23,0x03,0x2e,0x03,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x37,0x21,0x83,0x01,0xe5,0x08,0x25,0x43,0x63,0x44,0xce,0x03,0x87,0xfe,0xb8,0x1d,0x25,0x06,0x01,0x00,0xfe,0xfb,0x15,0x9b,0x77,0x22,0x38, -0x34,0x33,0x1d,0xff,0xbe,0xe4,0x21,0x3b,0x43,0x51,0x36,0x70,0xcd,0x33,0x5c,0x49,0x33,0x0b,0xfe,0x1d,0x04,0x53,0x2a,0x45,0x31,0x1b,0x8c,0x8c,0x25,0x5d,0x39,0x8c,0x78,0xa9,0x20,0x04,0x10,0x2a,0x37,0x48,0x2e,0xfe,0x65,0x01,0x7e,0x37,0x54,0x38,0x1c,0x89,0x21,0x3b,0x53,0x32,0x00,0x02,0x00,0x37,0x00,0x00,0x04,0x1a,0x05,0x9a, -0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x1f,0x0b,0x00,0x02,0x7e,0x08,0x05,0x00,0x0d,0x05,0x0c,0x03,0x03,0x0d,0x0c,0x01,0x05,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x06,0x03,0x08,0x91,0x09,0x03,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x31, -0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x25,0x35,0x21,0x15,0x04,0x1a,0xfe,0x62,0xa8,0xfe,0x63,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0x03,0xdc,0xfc,0x24,0x03,0xdc,0x98,0x8e,0x98,0x98,0xff,0xff,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x00,0x0d, -0x00,0x18,0x00,0x22,0xbc,0x00,0x00,0x01,0x86,0x00,0x0e,0x00,0x13,0x01,0x86,0x40,0x09,0x08,0x10,0x9a,0x0b,0x10,0x16,0x9a,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf4, -0x3d,0x77,0xaf,0x72,0xd9,0xea,0xf4,0xeb,0xe0,0xd9,0xac,0xfe,0xe9,0x8f,0x9c,0x91,0x90,0x8c,0x95,0x02,0x04,0x83,0xc9,0x8a,0x47,0x01,0x06,0xff,0x01,0x14,0x01,0x19,0xfe,0xf0,0xfe,0xf5,0x01,0x93,0xcb,0xd0,0xbf,0xc8,0xcd,0x00,0x00,0x01,0x00,0x79,0x00,0x00,0x02,0x71,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00, -0x01,0x00,0x08,0x01,0x81,0x40,0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0x71,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f, -0x33,0x3f,0x45,0x21,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x00,0x26,0x00,0x34,0xb9,0x00,0x1b,0x01,0x86,0xb5,0x12,0x0a,0x0a,0x00,0x25,0x24,0xb8,0x01,0x86,0xb6,0x00,0x03,0x0a,0x12,0x03,0x24,0x0d,0xb8,0x01,0x7f,0xb5,0x16,0x10,0x24,0x99,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x2f,0x12, -0x39,0x2f,0x39,0xed,0x31,0x30,0x33,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x21,0x15,0x99,0x32,0x53,0x69,0x6e,0x69,0x53,0x32,0x7a,0x67,0x27,0x55,0x57,0x54,0x25,0x48,0xb5,0x67,0x5b,0x8a,0x5e,0x30,0x33,0x52,0x6a,0x6f,0x6a,0x52,0x33,0x02,0x93, -0x58,0x48,0x6d,0x56,0x44,0x3b,0x3a,0x40,0x4e,0x33,0x55,0x5d,0x12,0x20,0x2c,0x1a,0x9d,0x36,0x31,0x2b,0x4f,0x70,0x45,0x40,0x67,0x55,0x46,0x3e,0x39,0x3b,0x3f,0x26,0x93,0x00,0x00,0x01,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x00,0x2a,0x00,0x43,0x40,0x1b,0x16,0x89,0x1b,0x13,0x25,0x03,0x08,0x23,0x23,0x08,0x00,0x89,0x0f,0x0f, -0x2c,0x08,0x25,0x12,0x9a,0x08,0x05,0x1b,0x1e,0x13,0x13,0x05,0x18,0xb8,0x01,0x7f,0xb4,0x1e,0x10,0x0a,0x9a,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02, -0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb8,0x4a,0x85,0xb9,0x6f,0xcb,0x7b,0x91,0xbb,0x4a,0x7a,0x56,0x2f,0xfe,0x71,0x77,0x71,0x01,0x62,0xfe,0xf2,0x4b,0x90,0x42,0x88,0xbe,0x5b,0x92,0x68,0x38,0xfe,0xe1,0x4b,0x7c,0x59,0x32,0x02,0x60, -0x9f,0x71,0x3e,0x4e,0xb0,0x73,0x27,0x48,0x66,0x40,0x01,0x18,0x8b,0x01,0x09,0xf3,0x33,0x33,0xa0,0x52,0x32,0x5b,0x7e,0x4b,0xfe,0xe6,0x53,0x04,0x07,0x37,0x59,0x78,0x00,0x02,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x0e,0x00,0x15,0x00,0x31,0xb2,0x10,0x0e,0x05,0xb8,0x01,0x85,0x40,0x12,0x0f,0x09,0x06,0x06,0x17,0x09,0x11, -0x07,0x0e,0x10,0x09,0x01,0x10,0x9a,0x04,0x07,0x18,0x06,0x00,0x2f,0x3f,0x33,0xed,0x32,0x32,0x3f,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xb8,0xb8,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe, -0x24,0x01,0xe9,0x46,0x83,0x7b,0x72,0x04,0x02,0xfc,0x83,0x85,0xfe,0x68,0x01,0x98,0x7d,0x64,0xe3,0xea,0xe9,0x6b,0xfc,0x83,0x02,0x89,0x75,0xbc,0x9b,0x82,0x00,0x01,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x00,0x23,0x00,0x35,0xb9,0x00,0x1c,0x01,0x85,0xb3,0x17,0x17,0x08,0x00,0xb8,0x01,0x86,0xb2,0x0f,0x08,0x12,0xb8,0x01,0x7f, -0xb7,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x0f,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e, -0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x1c,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00, -0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x36,0xb3,0x12,0x2b,0x19,0x00,0xbb,0x01,0x86,0x00,0x21,0x00,0x19,0x01,0x86,0x40,0x0c,0x0a,0x26,0x9a,0x19,0x1c,0x1c,0x30,0x14,0x9a,0x0f,0x06,0x30,0xb8,0x01,0x7f,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x2f, -0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8, -0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d, -0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x45,0xfe,0x66,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x22,0xb9,0x00,0x07,0x01,0x86,0x40,0x0c,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x99,0x11,0x0f,0x08,0x00,0x2f,0x3f,0xed,0x39,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x0e,0x03,0x02, -0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x03,0xa1,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2, -0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47,0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x05,0x15,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x18,0x47,0x9a,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f, -0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02, -0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31, -0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57, -0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x00,0x20,0x00,0x34,0x00,0x33,0x40,0x16,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x10,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed, -0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec, -0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x01,0x8a,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a, -0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0xff,0xff,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x02,0x06,0x0c,0xb9,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x02,0xe0,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00,0x01,0x00,0x08,0x01,0x81,0x40, -0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xe0,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xff,0xff, -0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x02,0x06,0x0c,0xbb,0x00,0x00,0xff,0xff,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x02,0x06,0x0c,0xbc,0x00,0x00,0xff,0xff,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x06,0x0c,0xbd,0x00,0x00,0xff,0xff,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x02,0x06,0x0c,0xbe,0x00,0x00,0xff,0xff, -0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x02,0x06,0x0c,0xbf,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x66,0x03,0xf0,0x04,0x00,0x00,0x06,0x0c,0xc0,0x1b,0x00,0xff,0xff,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x02,0x06,0x0c,0xc1,0x00,0x00,0xff,0xff,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x02,0x06,0x0c,0xc2,0x00,0x00,0x00,0x02, -0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x20,0x40,0x10,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x0a,0x13,0x9a,0x0f,0x07,0x17,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03, -0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a,0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x00,0x01,0x00,0x53,0x00,0x00, -0x02,0x43,0x05,0xba,0x00,0x0e,0x00,0x28,0x40,0x13,0x0e,0x8a,0x00,0x06,0x00,0x06,0x00,0x0f,0x10,0x07,0x99,0x01,0x0c,0x06,0x06,0x0c,0x07,0x00,0x18,0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x9f,0x13,0x49,0x5b, -0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xfa,0x46,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2,0x05,0xb2,0x00,0x2a,0x00,0x2e,0x40,0x17,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x21,0x00,0x0e,0x1d,0x99,0x20,0x18,0x0a,0x0a,0x05,0x9a,0x0e,0x07,0x00, -0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51, -0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca,0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66, -0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x55,0x40,0x32,0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x0f,0x0f,0x2b,0x08,0x39,0x1a,0x01,0x2f,0x1a,0x01,0x1a,0x1a,0x18,0x9a,0x1d,0x24,0x12,0x9a,0x13,0x13,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x08,0x08, -0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x2f,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36, -0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e,0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08, -0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x56,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x2e,0x40,0x16,0x10,0x0e,0x04,0x8a,0x07,0x07,0x17,0x0f,0x09,0x04,0x08,0x99,0x09,0x01,0x0f,0x0f,0x06,0x11,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33, -0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xe0,0xe0,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1, -0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x3d,0x40,0x21,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89,0x0f,0x0f,0x25,0x08,0x12,0x9a,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x06,0x32,0x08,0x01,0x20,0x08,0x01,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed, -0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92, -0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2, -0x00,0x20,0x00,0x34,0x00,0x37,0x40,0x1c,0x12,0x0a,0x00,0x89,0x21,0x21,0x36,0x2b,0x19,0x89,0x0a,0x26,0x9a,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x9a,0x0f,0x07,0x30,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e, -0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b, -0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f, -0x54,0x75,0x00,0x01,0x00,0x45,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x12,0x00,0x24,0x40,0x11,0x07,0x89,0x0f,0x00,0x08,0x00,0x08,0x00,0x14,0x10,0x00,0x10,0x99,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02, -0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47, -0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x15,0x05,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x19,0x47,0x9a,0x0d,0x07,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39, -0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35, -0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58, -0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x35,0x40,0x1b,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x07,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0x39,0xed,0x01, -0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c, -0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4, -0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0x00,0x02,0x00,0x56,0xff,0xe8,0x03,0xfc,0x05,0xb2,0x00,0x0a,0x00,0x12,0x00,0x88,0x40,0x1a,0x0f,0x9a,0x00,0x19,0x0b,0x9a,0x06,0x07,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x89,0x11,0xb8,0xff,0xf0,0xb3, -0x0d,0x06,0x4d,0x11,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x30,0x11,0x01,0x11,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x20,0x11,0x40,0x11,0x02,0x11,0x11,0x14,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x89,0x03,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d, -0x03,0xb8,0xff,0xe0,0xb6,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x20,0x11,0x10,0x02,0x03,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x1a,0xd5,0xef,0xf9, -0xeb,0x01,0xc2,0xfe,0xcd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x18,0x01,0x6e,0x01,0x5a,0x01,0x7c,0x01,0x86,0xfd,0x21,0xfe,0x94,0xfe,0x81,0x05,0x3f,0xfd,0x91,0xfd,0xba,0x02,0x50,0x02,0x65,0x00,0x01,0x00,0xa8,0x00,0x00,0x03,0xdb,0x05,0xba,0x00,0x09,0x00,0x7e,0xb5,0x26,0x06,0x36,0x06,0x02,0x06,0xb8,0xff,0xf8,0x40,0x2d,0x0d,0x06, -0x4d,0x04,0x08,0x0d,0x06,0x4d,0x06,0x04,0x07,0x05,0x08,0x02,0x99,0x01,0x18,0x05,0x07,0x07,0x01,0x05,0x01,0x00,0x01,0x00,0x01,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x8a,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb3,0x0b, -0x06,0x4d,0x03,0xb8,0xff,0xf0,0xb6,0x0b,0x01,0x4d,0x03,0x03,0x0b,0x0a,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x33,0x2f,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x5d,0x21,0x21,0x35,0x21,0x11,0x05,0x35,0x25,0x11,0x21,0x03,0xdb,0xfc,0xd5,0x01,0x44, -0xfe,0xb4,0x01,0xf0,0x01,0x43,0x90,0x04,0x5a,0x63,0x9c,0x97,0xfa,0xd6,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xcd,0x05,0xb2,0x00,0x17,0x00,0xa3,0xb3,0x78,0x08,0x01,0x15,0xb8,0xff,0xe8,0x40,0x36,0x0c,0x00,0x4d,0x11,0x06,0x0e,0x02,0x15,0x99,0x01,0x18,0x0b,0x0b,0x09,0x9a,0x0e,0x07,0x0b,0x00,0x10,0x0c,0x06,0x4d,0x00,0x18,0x0b, -0x0d,0x01,0x4c,0x00,0x00,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x8a,0x20,0x06,0x30,0x06,0x02,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x19,0x0b,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x0b, -0x16,0x20,0x0b,0x0c,0x01,0x4c,0x16,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x33,0x2b,0x33,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x2b,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x5d,0x21, -0x21,0x35,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x01,0x15,0x21,0x03,0xc0,0xfc,0xa0,0x01,0xa2,0xa0,0x89,0x8e,0x83,0xc0,0xb0,0xa8,0xdf,0xc0,0xdc,0x98,0xc5,0xfe,0xb5,0x02,0x9b,0x92,0x01,0xa3,0xa0,0xd5,0x79,0x7c,0x88,0xa4,0xac,0x83,0xd0,0xaf,0x8a,0xfe,0xf9,0xc3,0xfe,0xb9, -0x04,0x00,0x00,0x01,0x00,0x83,0xff,0xe8,0x03,0xc0,0x05,0xb2,0x00,0x21,0x00,0xe5,0x40,0x3a,0x76,0x1c,0x01,0x74,0x16,0x01,0x7a,0x00,0x01,0x12,0x11,0x00,0x01,0x19,0x09,0x9a,0x0a,0x0a,0x14,0x34,0x01,0x01,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x9a,0x20,0x19,0x3b,0x11,0x01,0x2f,0x11,0x01,0x11,0x11,0x0f,0x9a,0x14, -0x07,0x19,0x09,0x10,0x0c,0x06,0x4d,0x09,0x70,0x11,0x01,0x11,0xb8,0xff,0xf0,0x40,0x3f,0x0d,0x06,0x4d,0x11,0x17,0x06,0x0c,0x06,0x4d,0x17,0x06,0x0b,0x06,0x4d,0x17,0x89,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x10,0x0c,0x06,0x4d,0x0d,0x14,0x0b,0x06,0x4d,0x0d,0x09,0x11,0x0d,0x03,0x00,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, -0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x89,0x7f,0x06,0x01,0x06,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x23,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x11, -0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x12,0x17,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2f,0x2b,0x5d,0x2f,0x2b,0x39,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35, -0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x83,0x93,0xb9,0x96,0xb3,0xfe,0x71,0x77,0x71,0x01,0x63,0xfe,0xf1,0x97,0x86,0x8a,0xbc,0xb5,0xd9,0xfe,0xe0,0x9b,0xb7,0xfe,0xeb,0xe3,0xcc,0x35,0xb1,0x74,0x96,0x7f,0x01,0x19,0x8b,0x01,0x08,0xf4,0x67,0xa0,0x52, -0xc0,0x96,0xfe,0xe5,0x51,0x04,0x0f,0xbb,0x8c,0xc1,0xed,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x8a,0x40,0x16,0x39,0x07,0x79,0x07,0x02,0x76,0x06,0x01,0x09,0x00,0x00,0x02,0x06,0x0b,0x0d,0x06,0x4c,0x02,0x8a,0x0b,0x07,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb4, -0x0b,0x0c,0x06,0x4c,0x03,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x0c,0x01,0x4c,0x03,0x03,0x14,0x12,0x05,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x0d,0x06,0x4c,0x2f,0x05,0x3f,0x05,0x4f,0x05,0x03,0x05,0x01,0x05,0x9a,0x09,0x06,0x12,0x12,0x03,0x0f,0xb8,0xff,0xf0,0xb7,0x0c,0x00,0x4d,0x0f,0x07,0x06,0x03, -0x18,0x00,0x3f,0x3f,0x33,0x2b,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x33,0x33,0xe9,0x2b,0x32,0x2f,0x32,0x31,0x30,0x00,0x5d,0x01,0x5d,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x04,0x0a,0xb8,0xa2,0xfd,0x5e,0x02, -0x7e,0xc6,0xb8,0xfe,0xa6,0x04,0x04,0x0e,0x29,0xfe,0x47,0x01,0x7d,0xfe,0x83,0x01,0x7d,0x6b,0x03,0xb2,0xfc,0x68,0x02,0x6c,0x42,0x52,0x24,0x4a,0xfd,0x6e,0x00,0x01,0x00,0xa4,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x19,0x00,0xb1,0x40,0x32,0x7a,0x00,0x01,0x00,0x01,0x0b,0x09,0x9a,0x12,0x12,0x0c,0x20,0x01,0x30,0x01,0x02,0x01,0x01, -0x03,0x9a,0x18,0x19,0x0f,0x99,0x0c,0x06,0x0e,0x00,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x89,0x7f,0x06,0x01,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x1b,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xe0,0x40,0x14, -0x0c,0x06,0x4d,0x00,0x10,0x06,0x0c,0x06,0x4d,0x10,0x0e,0x0b,0x06,0x4d,0x10,0x8b,0x70,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0b,0x20,0x0d,0x01,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x33,0x2b,0x2b,0x12,0x39, -0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x32,0x11,0x33,0x31,0x30,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x98,0xba,0xbe,0xb1,0x3c,0xa5, -0x02,0xb6,0xfd,0xe5,0x42,0x38,0xe6,0xfc,0xfe,0xf1,0xec,0xc7,0x23,0xae,0x5f,0xac,0x8e,0x8d,0x9e,0x0c,0x02,0xcf,0x94,0xfe,0x5c,0x04,0xe7,0xc9,0xd0,0xfe,0x00,0x02,0x00,0x6e,0xff,0xe8,0x03,0xfe,0x05,0xb2,0x00,0x16,0x00,0x22,0x00,0xae,0x40,0x3b,0x7a,0x14,0x01,0x76,0x0a,0x01,0x29,0x14,0x39,0x14,0x02,0x06,0x0f,0x15,0x17,0x9a, -0x09,0x09,0x15,0x1d,0x9a,0x0f,0x19,0x01,0x01,0x03,0x9a,0x15,0x07,0x01,0x40,0x0c,0x00,0x4d,0x01,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x89,0x20,0x20,0x30,0x20,0x02,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xe4,0x40,0x19, -0x0b,0x06,0x4d,0x20,0x20,0x24,0x1a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x89,0x12,0xb8,0xff,0xd4,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xd6,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x12,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, -0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x02,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x02,0x11,0x10,0x00,0x21,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, -0xa6,0x6f,0x7b,0xbf,0xe5,0x04,0x64,0xe4,0xbc,0xde,0xfe,0xc4,0xd8,0xf6,0x01,0x42,0x01,0x08,0x96,0xfe,0xf2,0x7f,0x9e,0x9d,0x82,0x7c,0x98,0x92,0x05,0x89,0x9b,0x39,0xfe,0xac,0xfe,0xe3,0xcb,0xf1,0xca,0xd3,0xfe,0xf5,0x01,0x58,0x01,0x37,0x01,0x79,0x01,0xc2,0xfd,0x44,0xac,0x75,0x93,0xd0,0xb5,0x8b,0x98,0xac,0x00,0x01,0x00,0x56, -0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x06,0x00,0xbc,0x40,0x0b,0x73,0x01,0x01,0x02,0x18,0x00,0x04,0x99,0x05,0x06,0x03,0xb8,0xff,0xd8,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x01,0x28,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf4,0x40,0x09,0x0d,0x06,0x4d,0x01,0x0c,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x10,0x0c, -0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0x03,0x00,0x02,0x02,0x04,0x20,0x00,0x30,0x00,0x02,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x00,0x20,0x0b,0x0c,0x01,0x4c,0x00,0x00,0x08,0x04,0xb8,0xff, -0xe0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x06,0x4d,0x04,0x40,0x0b,0x01,0x4d,0x04,0x40,0x0b,0x00,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0x12,0x39,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed, -0x39,0x3f,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x03,0xf2,0xfd,0xc8,0xaa,0x02,0x19,0xfd,0x2d,0x03,0x9c,0x05,0x66,0xfa,0x9a,0x05,0x06,0x94,0x00,0x00,0x03,0x00,0x64,0xff,0xe8,0x03,0xee,0x05,0xb2,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0xfa,0x40,0x26,0x7b,0x13,0x01,0x7b,0x0f,0x01,0x74,0x08,0x01,0x74,0x04,0x01, -0x76,0x07,0x01,0x29,0x08,0x0b,0x00,0x4d,0x35,0x1f,0x01,0x36,0x0a,0x01,0x36,0x1d,0x01,0x76,0x1e,0x01,0x20,0x08,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xf8,0x40,0x38,0x0d,0x06,0x4d,0x20,0x00,0x0b,0x03,0x1e,0x1e,0x06,0x25,0x9a,0x11,0x19,0x19,0x9a,0x06,0x07,0x00,0x0b,0x1e,0x20,0x04,0x03,0x16,0x89,0x09,0x18,0x0d,0x01,0x4d,0x09,0x09, -0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x89,0x20,0x28,0x30,0x28,0x02,0x28,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x28,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x28,0xb8,0xff,0xe8,0x40,0x0a,0x0b,0x06,0x4d,0x28,0x28,0x2b,0x14,0x1c,0x89,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff, -0xf8,0x40,0x17,0x0b,0x06,0x4d,0x03,0x03,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x89,0x14,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x2b,0xe9,0x11, -0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0xe9,0x12,0x17,0x39,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x17,0x33,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x01,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x05,0x15,0x04,0x11,0x14,0x04,0x23,0x22,0x26, -0x35,0x10,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x07,0x04,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x9a,0xfe,0xfe,0xec,0xba,0xa8,0xd8,0xfe,0xf6,0x01,0x3a,0xff,0x00,0xe4,0xb8,0xee,0x02,0xb2,0x7c,0x6b,0x64,0x8b,0xe9,0xed,0xf8,0xfe,0xee,0x9f,0x82,0x7c,0x9d,0x02,0xf0,0x04,0x78,0xe4,0x9b,0xc7,0xba,0x92,0xee, -0x84,0x04,0x70,0xfe,0xec,0xb2,0xd2,0xd0,0xa6,0x01,0x14,0x01,0xe0,0x63,0x72,0x77,0x5c,0xbb,0x5f,0x62,0xfa,0x6d,0xcf,0x6b,0x89,0x87,0x67,0xd8,0x00,0x02,0x00,0x5e,0xff,0xe8,0x03,0xec,0x05,0xb2,0x00,0x17,0x00,0x23,0x00,0xc1,0x40,0x29,0x79,0x14,0x01,0x74,0x15,0x01,0x76,0x04,0x01,0x2d,0x04,0x3d,0x04,0x02,0x29,0x14,0x39,0x14, -0x02,0x08,0x10,0x0a,0x9a,0x1e,0x1e,0x10,0x70,0x01,0x01,0x01,0x01,0x03,0x9a,0x16,0x19,0x18,0x9a,0x10,0x07,0x21,0x00,0xb8,0xff,0xea,0x40,0x17,0x0c,0x06,0x4d,0x00,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x21,0x13,0x89,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c, -0x06,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x1e,0x0b,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x25,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x89,0x0d,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x0d,0x2f,0x2b, -0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x33,0x2b,0x2b,0x2b,0x2f,0x2b,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x37,0x35,0x16,0x33,0x32,0x12,0x11,0x06,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x00,0x33,0x32,0x12, -0x11,0x10,0x00,0x21,0x22,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xac,0x78,0x86,0xc3,0xd9,0x02,0x02,0x5c,0xe4,0xb8,0xec,0x01,0x03,0xca,0xd4,0xed,0xfe,0xcc,0xfe,0xee,0x90,0x01,0x06,0x77,0x9f,0x9c,0x85,0x74,0xa1,0xa0,0x18,0x9e,0x44,0x01,0x3a,0x01,0x21,0x01,0x01,0xb9,0xfa,0xc5,0xd2,0x01,0x0d,0xfe,0xb1, -0xfe,0xc0,0xfe,0x73,0xfe,0x52,0x05,0x3f,0xb3,0x8a,0x97,0xad,0x9e,0x72,0xa3,0xce,0x00,0x02,0x00,0x48,0xff,0xec,0x02,0xa5,0x03,0x66,0x00,0x0a,0x00,0x12,0x00,0x20,0x40,0x10,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x0b,0xe7,0x06,0x2b,0x0f,0xe7,0x00,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30, -0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x14,0xdb,0xd1,0xe5,0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0xff,0xff,0x00,0x50,0x00,0x01,0x01,0xc2,0x03,0x69,0x01,0x07, -0x00,0xf0,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x68,0x00,0x01,0x02,0x92,0x03,0x67,0x03,0x07,0x00,0xf1,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x01,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x02,0x8e,0x03,0x67,0x03,0x07,0x00,0xf2,0x00,0x00,0xfd,0xb9,0x00,0x07, -0xb2,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0x00,0x01,0x02,0xaa,0x03,0x53,0x01,0x07,0x02,0x38,0x00,0x00,0xfd,0xb9,0x00,0x09,0xb3,0x01,0x00,0x03,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x02,0x8a,0x03,0x57,0x03,0x07,0x02,0x39,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x23,0x2d,0x00,0x3f, -0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xec,0x02,0xa6,0x03,0x66,0x00,0x26,0x00,0x36,0x00,0x2f,0x40,0x18,0x01,0x15,0xcd,0x34,0x34,0x38,0x2c,0x0c,0xcc,0x1f,0x27,0xe7,0x0c,0x10,0x10,0x31,0x06,0xe6,0x24,0x2b,0x31,0xe6,0x1a,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x31, -0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e, -0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x03,0x43,0x81,0x09,0x10,0x0c,0x07,0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x98,0x68,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15, -0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0xff,0xff,0x00,0x4d,0x00,0x01,0x02,0xa0,0x03,0x5d,0x03,0x07,0x02,0x3a,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x41,0xff,0xed,0x02,0xad,0x03,0x67,0x03,0x07,0x02,0x3b,0x00,0x00,0xfd,0xb9,0x00,0x0b,0xb4,0x02,0x01,0x00, -0x1f,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xeb,0x02,0xa6,0x03,0x66,0x00,0x27,0x00,0x39,0x00,0x31,0x40,0x19,0x2d,0xcc,0x23,0x10,0x35,0x1a,0xcd,0x06,0x05,0x05,0x10,0x3b,0x30,0xe7,0x0b,0x0b,0x28,0x00,0xe6,0x1f,0x2d,0x28,0xe6,0x15,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x12,0x01,0x39, -0x2f,0x10,0xed,0x33,0x2f,0x33,0xed,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b, -0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x71,0x56,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13,0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x62,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82, -0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2c,0x3e,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47,0x32,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x00,0x07,0x00,0x15,0x00,0x27,0x40,0x12,0x15,0x08,0x15,0x08,0x00,0x05,0x00,0x03,0x39,0x15,0x15,0x05,0x0f,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f, -0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x2e,0x03,0x27,0x23,0x0e,0x03,0x07,0x03,0x04,0x04,0xb3,0x71,0xfe,0x3d,0x6a,0xb3,0x01,0xae,0xa4,0x5e,0x98,0x02,0x07,0x08,0x07,0x01,0x03,0x02,0x06,0x07,0x07,0x03,0x92,0x01,0x1a,0xfe,0xe6,0x04,0x33, -0xfd,0x73,0x01,0x9a,0x05,0x17,0x1d,0x1c,0x0b,0x0c,0x1d,0x1d,0x18,0x07,0xfe,0x6b,0x00,0x03,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x3c,0x40,0x21,0x10,0x24,0x0d,0x38,0x16,0x16,0x06,0x00,0x38,0x1f,0x1b,0x24,0x37,0x06,0x10,0x23,0x3a,0x2f,0x1b,0x3f,0x1b,0x02,0x1b,0x1b,0x06,0x1a,0x3a,0x07, -0x35,0x24,0x3a,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x23,0x11,0x33, -0x32,0x36,0x03,0xa1,0x3b,0x67,0x8e,0x52,0xfe,0x91,0x01,0x67,0x4c,0x7c,0x57,0x2f,0x6c,0x61,0x3d,0x63,0x44,0x25,0xe7,0x71,0x72,0x83,0x71,0x73,0x82,0x3c,0x8f,0x90,0x83,0xa0,0x7b,0x87,0x01,0x35,0x45,0x72,0x51,0x2d,0x04,0x33,0x23,0x41,0x5b,0x37,0x5b,0x86,0x1e,0x03,0x06,0x2a,0x44,0x5b,0x01,0xb9,0x4e,0x3a,0xfe,0xc3,0x5a,0xfe, -0x6c,0x60,0x55,0xfe,0x9b,0x54,0x00,0x01,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x00,0x1d,0x00,0x1b,0x40,0x0d,0x16,0x38,0x07,0x0f,0x00,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x03,0xbb,0x83,0xc5,0x7d,0xc8,0x8c,0x4a,0x54,0x9b,0xd8,0x84,0xa9,0x6f,0x7a,0x96,0x63,0x9e,0x6d,0x3a,0x36,0x66,0x94,0x5e,0xad,0x7d,0x2c,0x3f,0x4d,0x8c,0xc6,0x79,0x80,0xd4,0x98,0x54,0x2c,0x9e,0x40,0x3d,0x70,0x9e,0x62,0x5d,0x96,0x6a,0x39,0x48,0x00,0x00,0x02,0x00,0xb0,0x00,0x00, -0x04,0x54,0x04,0x33,0x00,0x0a,0x00,0x17,0x00,0x1c,0x40,0x0e,0x00,0x38,0x0b,0x12,0x37,0x06,0x11,0x39,0x07,0x35,0x12,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9,0xef, -0x92,0xfe,0xe3,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x04,0x33,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfc,0xed,0x30,0x64,0x98,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x00,0x0b,0x00,0x3c,0x40,0x22,0x06,0x0a,0x37,0x01,0x08,0x04, -0x08,0x04,0x00,0x01,0x00,0x09,0x39,0x0f,0x06,0x01,0x2f,0x06,0x3f,0x06,0xff,0x06,0x03,0x06,0x06,0x01,0x05,0x39,0x02,0x35,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21, -0x03,0x27,0xfd,0x89,0x02,0x5b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x06,0x37,0x07,0x04,0x04,0x00,0x07,0x00,0x05,0x39,0x02,0x02,0x07,0x01,0x39,0x08,0x35,0x07,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39, -0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x00,0x01,0x00,0x58,0xff,0xed,0x04,0x20,0x04,0x45,0x00,0x22,0x00,0x2f,0x40,0x18,0x20,0x20,0x07,0x1e, -0x0f,0x00,0x37,0x1e,0x16,0x38,0x07,0x20,0x39,0x21,0x21,0x02,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, -0x33,0x32,0x36,0x37,0x11,0x21,0x35,0x21,0x04,0x20,0xb3,0xdc,0x7f,0xd2,0x96,0x52,0x5c,0xa4,0xe3,0x87,0xc0,0x86,0x8e,0xbd,0x60,0xa3,0x75,0x42,0x39,0x6b,0x98,0x60,0x42,0x6d,0x30,0xfe,0xfe,0x01,0xa4,0x4a,0x5d,0x4f,0x8e,0xc8,0x79,0x7b,0xd1,0x98,0x56,0x39,0xa4,0x53,0x3f,0x71,0x9b,0x5b,0x5e,0x99,0x6c,0x3a,0x16,0x16,0x01,0x0b, -0x8b,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x00,0x0b,0x00,0x27,0x40,0x13,0x08,0x04,0x37,0x05,0x09,0x00,0x37,0x01,0x03,0x39,0x08,0x08,0x05,0x0a,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11, -0x21,0x11,0x33,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0xa4,0x02,0x40,0xa5,0x01,0xf3,0xfe,0x0d,0x04,0x33,0xfe,0x4b,0x01,0xb5,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x00,0x03,0x00,0x10,0xb6,0x00,0x37,0x01,0x02,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x54,0xa4,0xa4,0x04,0x33, -0x00,0x01,0x00,0x11,0xff,0xed,0x01,0xe5,0x04,0x33,0x00,0x11,0x00,0x16,0x40,0x0a,0x00,0x37,0x0f,0x07,0x10,0x35,0x0a,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xe5,0x33,0x5d,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46, -0x2f,0x18,0xa4,0x01,0x81,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x3d,0x63,0x48,0x02,0xb3,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x00,0x12,0x00,0x33,0x40,0x18,0x10,0x11,0x11,0x00,0x12,0x0b,0x07,0x37,0x08,0x01,0x00,0x00,0x14,0x12,0x06,0x0b,0x0b,0x08,0x10,0x09,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12, -0x39,0x11,0x33,0x33,0x11,0x01,0x33,0x2f,0x33,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x03,0xec,0xcc,0xfe,0x60,0x09,0x19,0x06,0x04,0xa4,0xa4,0x04,0x05,0x19,0x0a,0x01,0x91,0xb8,0xfe,0x33,0x01,0xdd,0x0b,0x20,0x0a,0xfd, -0xee,0x04,0x33,0xfe,0x07,0x08,0x1e,0x0b,0x01,0xc8,0xfd,0xfc,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x05,0x00,0x16,0x40,0x0a,0x04,0x37,0x01,0x00,0x02,0x35,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0x2e,0xfd,0x82,0xa4,0x01,0xda,0x04,0x33,0xfc, -0x58,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x00,0x21,0x00,0x20,0x40,0x0f,0x17,0x10,0x14,0x37,0x15,0x20,0x06,0x05,0x00,0x37,0x01,0x16,0x35,0x15,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x33,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x26,0x27, -0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x05,0x62,0x9e,0x02,0x06,0x04,0x0a,0x14,0x11,0xfe,0x9d,0x58,0xfe,0x98,0x12,0x15,0x09,0x03,0x03,0x03,0x99,0xda,0x01,0x45,0x15,0x1b,0x06,0x06,0x0b,0x1e,0x11,0x01,0x46,0xd7,0x02,0xbe,0x2b,0x61,0x3e,0x24,0x3a,0x26,0xfc,0xfc,0x03,0x04, -0x26,0x38,0x26,0x20,0x62,0x49,0xfd,0x43,0x04,0x33,0xfd,0x3e,0x2a,0x4a,0x17,0x1d,0x4d,0x24,0x02,0xbf,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1a,0x40,0x0c,0x01,0x00,0x37,0x16,0x0c,0x09,0x37,0x0a,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x2f,0xed,0x33,0x31,0x30,0x21,0x23,0x01,0x26, -0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04,0x7a,0xae,0xfd,0xcc,0x1f,0x29,0x08,0x05,0x06,0x99,0xb9,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0x99,0x02,0xf7,0x2a,0x41,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x04,0x19,0x23,0x18,0x10,0x05,0x17,0x4e,0x39,0x02, -0xc7,0x00,0x00,0x02,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x13,0x00,0x23,0x00,0x1c,0x40,0x0e,0x00,0x38,0x14,0x1c,0x38,0x0a,0x17,0x39,0x0f,0x36,0x21,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34, -0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c, -0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x24,0x40,0x12,0x00,0x38,0x0f,0x14,0x07,0x37,0x08,0x06,0x3a,0x14,0x14,0x08,0x13,0x3a,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02, -0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0x01,0x4b,0x61,0x98,0x68,0x36,0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0xee,0x4d,0x82,0x5e,0x34,0xfe,0x73,0x04,0x33,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x58,0xff,0x65, -0x04,0xc5,0x04,0x45,0x00,0x18,0x00,0x28,0x00,0x24,0x40,0x12,0x00,0x38,0x19,0x21,0x38,0x0f,0x08,0x05,0x0a,0x1c,0x39,0x14,0x36,0x26,0x39,0x0a,0x34,0x07,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x06,0x07,0x05,0x23,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x49,0x22,0x28,0x01,0x15,0xf8,0xb2,0x4f,0x5a,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x4a,0x22,0x1b,0xe1,0x9e, -0x16,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0xdf,0x04,0x33,0x00,0x19,0x00,0x24,0x00,0x2e,0x40,0x17,0x16,0x09,0x00,0x11,0x38,0x1a,0x1f,0x09,0x37,0x0a,0x16,0x08,0x3a,0x1f,0x1f,0x0a,0x1e,0x3a,0x0b,0x35,0x01,0x0a, -0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xfd,0xc6,0x12,0x39,0x31,0x30,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x03,0xdf,0xc0,0xbe,0x13,0x24,0x29,0x2f,0x1d,0x61, -0xa4,0x01,0x6d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x3f,0x1c,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x01,0x47,0x20,0x2b,0x19,0x0a,0xfe,0x4b,0x04,0x33,0x27,0x4a,0x69,0x43,0x3a,0x63,0x4c,0x35,0x0d,0x03,0x1a,0x65,0x01,0xa1,0x57,0x4c,0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, -0x00,0x37,0x00,0x26,0x40,0x13,0x2e,0x37,0x0a,0x1f,0x27,0x00,0x37,0x15,0x15,0x2d,0x05,0x29,0x39,0x24,0x36,0x10,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xc4,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e, -0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x03,0x08,0x38,0x67,0x94,0x5d,0x20,0x4e,0x4c,0x41,0x12,0x1a,0x46,0x4d,0x4f,0x24,0x39,0x53,0x36,0x19,0x14,0x35,0x5d,0x4a,0x47,0x66,0x42,0x1f,0x39,0x66,0x8d,0x53,0xa0,0x4a,0x5f,0x93,0x32,0x4f,0x38,0x1d,0x0e,0x2f,0x56, -0x48,0x4f,0x6f,0x46,0x20,0x01,0x1b,0x44,0x70,0x4f,0x2b,0x0b,0x11,0x16,0x0c,0xac,0x15,0x24,0x1a,0x0e,0x16,0x28,0x38,0x22,0x1f,0x32,0x30,0x36,0x25,0x23,0x46,0x4c,0x58,0x35,0x40,0x68,0x49,0x28,0x26,0xa5,0x42,0x15,0x26,0x33,0x1e,0x1d,0x2f,0x31,0x36,0x22,0x26,0x47,0x4c,0x54,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33, -0x00,0x07,0x00,0x1e,0x40,0x0e,0x02,0x37,0x03,0x03,0x00,0x05,0x00,0x01,0x05,0x39,0x06,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe,0xa9,0xa4,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfc,0x58,0x03,0xa8,0x8b,0x00,0x01,0x00,0x9c,0xff,0xed, -0x04,0x26,0x04,0x33,0x00,0x15,0x00,0x1b,0x40,0x0d,0x00,0x37,0x13,0x09,0x37,0x06,0x14,0x07,0x35,0x0e,0x39,0x03,0x34,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x04,0x26,0xed,0xe2,0xd9,0xe2,0xa5,0x22,0x48, -0x6f,0x4d,0x4a,0x6b,0x45,0x20,0xa5,0x01,0xb3,0xe3,0xe3,0xdb,0xda,0x02,0x91,0xfd,0x80,0x51,0x77,0x4e,0x25,0x24,0x4d,0x76,0x51,0x02,0x83,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0f,0x00,0x0f,0xb5,0x03,0x00,0x03,0x35,0x02,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x1e, -0x03,0x17,0x33,0x36,0x36,0x37,0x01,0x04,0x15,0xfe,0x43,0xa3,0xfe,0x4b,0xb9,0x01,0x0c,0x10,0x17,0x0f,0x0a,0x02,0x03,0x04,0x20,0x22,0x01,0x12,0x04,0x33,0xfb,0xcd,0x04,0x33,0xfd,0x40,0x2a,0x40,0x32,0x24,0x0e,0x17,0x61,0x57,0x02,0xbf,0x00,0x01,0x00,0x05,0x00,0x00,0x06,0x64,0x04,0x33,0x00,0x26,0x00,0x0f,0xb5,0x1a,0x0a,0x1a, -0x35,0x19,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x03,0x2e,0x03,0x27,0x0e,0x03,0x07,0x03,0x23,0x01,0x33,0x13,0x1e,0x03,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x81,0xdf,0x1d,0x1a,0x04,0x03,0x05,0x1c,0x20,0xd4,0xb1,0xfe,0x8c,0xa3,0xdf,0x07,0x10,0x10,0x0f, -0x04,0x06,0x10,0x11,0x10,0x07,0xda,0xa3,0xfe,0x8c,0xb0,0xd7,0x10,0x16,0x0e,0x09,0x02,0x03,0x04,0x1a,0x1d,0xde,0x04,0x33,0xfd,0x5e,0x5a,0x71,0x17,0x1c,0x71,0x62,0x02,0x95,0xfb,0xcd,0x02,0xa4,0x15,0x37,0x3e,0x3e,0x1c,0x1f,0x43,0x40,0x39,0x14,0xfd,0x67,0x04,0x33,0xfd,0x6b,0x31,0x4d,0x3a,0x29,0x0e,0x17,0x71,0x5a,0x02,0xa2, -0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x00,0x19,0x00,0x0f,0xb5,0x0b,0x00,0x0d,0x35,0x0b,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x03,0xe4,0xc3,0xfe,0xfa,0x06,0x0e,0x08,0x03, -0x04,0x0e,0x0b,0xfe,0xc3,0x01,0x7c,0xfe,0xa2,0xc5,0xe6,0x0d,0x15,0x09,0x03,0x0d,0x17,0x0a,0xe3,0xb8,0xfe,0x9a,0x01,0x8e,0x0a,0x1a,0x12,0x09,0x1b,0x12,0xfe,0x72,0x02,0x28,0x02,0x0b,0xfe,0x91,0x14,0x25,0x12,0x19,0x27,0x0e,0x01,0x6c,0xfd,0xdf,0x00,0x01,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x00,0x0f,0x00,0x1d,0x40,0x0d, -0x0a,0x02,0x37,0x03,0x03,0x06,0x05,0x0f,0x00,0x05,0x35,0x03,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0xa7,0xfe,0x83,0xa3,0xfe,0x8d,0xb4,0xf3,0x06,0x0f,0x08,0x02,0x05,0x10,0x0b,0xff,0x04,0x33,0xfd,0x5a, -0xfe,0x73,0x01,0x8a,0x02,0xa9,0xfe,0x25,0x0c,0x21,0x15,0x0d,0x21,0x14,0x01,0xdb,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x07,0x07,0x00,0x01,0x04,0x06,0x03,0x00,0x00,0x07,0x39,0x08,0x35,0x05,0x01,0x39,0x04,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x12, -0x39,0x2f,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0xb3,0xfd,0x73,0x02,0x7c,0xfc,0x87,0x02,0x8b,0xfd,0xad,0x03,0x52,0x04,0x02,0xfc,0x89,0x8b,0x37,0x03,0x71,0x8b,0x00,0x00,0x02,0xff,0xf8,0x00,0x00,0x05,0x56,0x04,0x33,0x00,0x0f,0x00,0x13,0x00,0x59,0x40,0x33,0x0a,0x0e,0x37,0x01,0x11,0x01,0x10,0x01, -0x0c,0x08,0x08,0x0c,0x01,0x10,0x04,0x00,0x05,0x00,0x09,0x13,0x39,0x06,0x03,0x39,0x10,0x0d,0x39,0x0a,0x0f,0x0a,0x01,0x2f,0x0a,0x3f,0x0a,0xff,0x0a,0x03,0x10,0x0a,0x10,0x0a,0x01,0x06,0x35,0x05,0x33,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x01,0x2f, -0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x21,0x11,0x23,0x05,0x56,0xfd,0x89,0xfe,0x6f,0x9b,0xbb,0x02,0x46,0x02,0xfc,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0xfc,0x3c,0x01,0x4d,0x49,0x01,0x28,0xfe,0xd8, -0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x01,0x28,0x01,0xf6,0x00,0x02,0x00,0x58,0xff,0xed,0x05,0xe8,0x04,0x45,0x00,0x1e,0x00,0x2e,0x00,0x51,0x40,0x2f,0x19,0x1d,0x37,0x1f,0x1b,0x1f,0x1b,0x00,0x28,0x38,0x0b,0x17,0x00,0x18,0x20,0x39,0x15,0x1c,0x39,0x0f,0x19,0x01,0x2f,0x19,0x3f,0x19,0xff,0x19,0x03,0x19,0x19,0x01,0x15,0x35, -0x23,0x39,0x10,0x36,0x2d,0x39,0x06,0x34,0x1d,0x1f,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x5d,0x71,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x21,0x22,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x23,0x21, -0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0xe8,0xfd,0xab,0x06,0x3a,0x50,0x57,0x23,0x80,0xcf,0x93,0x4f,0x52,0x99,0xd8,0x86,0x25,0x58,0x49,0x2f,0x03,0x02,0x3b,0xfe,0x47,0x01,0x97,0xfe,0x69,0x01,0xd3,0xfd,0x89,0x40,0x6a,0x2b,0x5b,0x96,0x6c,0x3c,0x3b, -0x6b,0x95,0x59,0x5a,0x06,0x07,0x06,0x4f,0x8f,0xc8,0x7a,0x82,0xd2,0x94,0x50,0x06,0x06,0x06,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x06,0x03,0x14,0x0b,0x0b,0x3f,0x70,0x9a,0x5a,0x5b,0x98,0x6e,0x3e,0x00,0x00,0x01,0x00,0x38,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x0d,0x00,0x34,0x40,0x19,0x08,0x0c,0x37,0x01,0x0a,0x0a,0x00,0x05,0x03,0x01, -0x00,0x02,0x08,0x09,0x03,0x09,0x03,0x09,0x01,0x06,0x35,0x0c,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0x2e,0xfd,0x82,0x78,0x78,0xa4,0x01,0x01,0xfe, -0xff,0x01,0xda,0x01,0x95,0x44,0x8a,0x43,0x02,0x15,0xfe,0x48,0x8f,0x8b,0x8d,0xfe,0x99,0x00,0x00,0x03,0x00,0x41,0xff,0xda,0x04,0xa9,0x04,0x65,0x00,0x1b,0x00,0x26,0x00,0x32,0x00,0x28,0x40,0x14,0x1f,0x30,0x2c,0x00,0x38,0x1c,0x2c,0x38,0x0e,0x2f,0x1e,0x22,0x27,0x39,0x13,0x36,0x22,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x11, -0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x17,0x07,0x16,0x16,0x07,0x34,0x27,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x26,0x04,0xa9,0x4d,0x90,0xce, -0x82,0x6f,0xb6,0x45,0x83,0x4e,0x86,0x36,0x39,0x4d,0x92,0xd4,0x86,0x61,0xa4,0x42,0x7b,0x4f,0x7a,0x3f,0x42,0xab,0x44,0xfd,0xc4,0x30,0x80,0x4e,0x5c,0x8f,0x63,0x34,0xfe,0x88,0x57,0x8f,0x66,0x37,0x1d,0x1b,0x02,0x34,0x2d,0x74,0x02,0x27,0x82,0xd2,0x95,0x51,0x3c,0x39,0x88,0x49,0x8c,0x45,0xb0,0x69,0x81,0xd1,0x95,0x51,0x32,0x2f, -0x81,0x4b,0x7f,0x47,0xbd,0x80,0xa8,0x68,0xfd,0xac,0x2d,0x2f,0x38,0x6a,0x9b,0x02,0x07,0x3c,0x6e,0x9b,0x5e,0x46,0x78,0x31,0x02,0x4e,0x21,0x23,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x2e,0x40,0x17,0x00,0x38,0x11,0x16,0x0b,0x07,0x37,0x08,0x06,0x3a,0x16,0x15,0x3a,0x0b,0x16,0x0b,0x16,0x0b, -0x08,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0xa4,0xa7,0x61,0x98,0x68,0x36, -0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0x2c,0x4d,0x82,0x5e,0x34,0xcb,0x04,0x33,0xc2,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x00,0x0e,0x00,0x1f,0x00,0x35,0x40,0x1b,0x18,0x18,0x06,0x00,0x38,0x0f,0x16,0x1a,0x37,0x0a,0x08,0x06,0x19,0x08,0x39,0x16,0x09,0x09,0x06,0x15, -0x39,0x0b,0x35,0x1a,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9, -0xef,0x92,0xfe,0xe3,0x83,0x83,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0xfb,0xfb,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x01,0xe1,0x89,0x01,0xc9,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfe,0xc7,0x89,0xfe,0xaf,0x30,0x64,0x98,0x00,0x01,0x00,0xa6,0xff,0xee,0x03,0xe8,0x04,0x45,0x00,0x39, -0x00,0x3f,0x40,0x21,0x27,0x38,0x14,0x30,0x38,0x09,0x01,0x0f,0x1c,0x14,0x09,0x14,0x09,0x3b,0x1b,0x37,0x1c,0x2a,0x0e,0x3b,0x0f,0x0f,0x22,0x04,0x39,0x35,0x34,0x17,0x39,0x22,0x36,0x1c,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31, -0x30,0x25,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x9a,0x26,0x73,0x43,0x28,0x48,0x36,0x1f,0x2a,0x57,0x84,0x5a,0x39,0x5c, -0x41,0x23,0x5a,0x58,0x65,0x74,0xa4,0x42,0x6c,0x8c,0x4a,0x4e,0x7f,0x5a,0x31,0x68,0x77,0x56,0x7b,0x4f,0x25,0x31,0x5e,0x88,0x56,0x2c,0x43,0x35,0x2a,0x0a,0x97,0x12,0x1a,0x13,0x2a,0x42,0x30,0x2f,0x4f,0x3b,0x25,0x05,0x71,0x06,0x1c,0x2f,0x41,0x2a,0x45,0x43,0x71,0x7d,0xfd,0x32,0x02,0xe3,0x68,0x88,0x51,0x21,0x24,0x43,0x61,0x3c, -0x5a,0x80,0x1e,0x04,0x0d,0x31,0x48,0x62,0x3f,0x45,0x70,0x4f,0x2c,0x05,0x07,0x0a,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x96,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26, -0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0e,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x2c,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00, -0x00,0x00,0x04,0x04,0x05,0xd0,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x9f,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xa5,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x17,0x01,0x17,0x00, -0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x67,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x00,0x09,0xb3,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x58,0xfe,0x56,0x03,0xbb,0x04,0x45,0x02,0x26,0x0c,0xed,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x97,0x00,0x06, -0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x43,0x79,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xec,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d, -0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2c,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xd7,0x6c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa5,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x53,0x1e,0x00,0x0c, -0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0x81,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x43,0xaa,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06, -0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe9,0x00,0x00,0x02,0x1d,0x06,0x2c,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd7,0x8d,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3, -0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x05,0xd0,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x32,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58, -0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x68,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24, -0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x2c,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xd0,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x13,0x00,0x1e, -0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xa5,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xd6,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff, -0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x07,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed, -0x04,0x26,0x06,0x2c,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xeb,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xa5,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xc1,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00, -0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x4d,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc6,0x00,0x1e, -0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xdc,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfe,0x70,0x04,0x04,0x04,0x33,0x02,0x26,0x0c,0xeb,0x00,0x00, -0x00,0x07,0x00,0xdf,0x02,0xab,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x28,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x71,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2a,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xe0, -0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xa3,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xba,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x54,0x06,0x2a,0x02,0x26, -0x0c,0xee,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x02,0x06,0x0d,0x0a,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x4d,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x9c,0x00,0x1e, -0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xdc,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xac,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa3,0x02,0x26,0x0c,0xef,0x00,0x00, -0x01,0x07,0x00,0xdb,0x01,0x15,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x70,0x03,0x27,0x04,0x33,0x02,0x26,0x0c,0xef,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xbe,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xe0, -0x66,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xdc,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x52,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xfe,0x85,0x04,0x20,0x04,0x45,0x02,0x26,0x0c,0xf1, -0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xf8,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x05,0xa3,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xb0,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x2c,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07, -0x00,0xd7,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0xbc,0x04,0x33,0x00,0x13,0x00,0x17,0x00,0x4a,0x40,0x0e,0x17,0x0c,0x04,0x37,0x05,0x14,0x0d,0x00,0x37,0x01,0x03,0x39,0x17,0x17,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x16,0x13,0x06,0x39,0x09,0x10, -0x0c,0x09,0x17,0x09,0x17,0x09,0x05,0x0e,0x0a,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x2b,0x10,0xed,0x01,0x2f,0xed,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23, -0x07,0x35,0x21,0x15,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0x83,0x83,0xa4,0x02,0x40,0xa5,0x83,0x83,0xa5,0xfd,0xc0,0x01,0xf3,0xfe,0x0d,0x03,0x2b,0x89,0x7f,0x7f,0x7f,0x7f,0x89,0xad,0xad,0xad,0xff,0xff,0xff,0xc3,0x00,0x00,0x02,0x44,0x05,0xd0,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd8,0xa0,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05, -0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0x00,0x05,0x4d,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd9,0xc6,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x16,0x05,0xdc,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xda,0xcc,0x1e,0x00,0x0a, -0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x3f,0xfe,0x70,0x01,0x54,0x04,0x33,0x02,0x26,0x0c,0xf3,0x00,0x00,0x00,0x06,0x00,0xdf,0x01,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x01,0x65,0x05,0xa3,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xdb,0x34,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0xb0,0xff,0xed,0x03,0xe9,0x04,0x33,0x00,0x26,0x0c,0xf3,0x00,0x00,0x00,0x07,0x0c,0xf4,0x02,0x04,0x00,0x00,0xff,0xff,0x00,0x11,0xff,0xed,0x02,0xac,0x06,0x2c,0x02,0x26,0x0c,0xf4,0x00,0x00,0x01,0x06,0x00,0xd7,0x1c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0, -0xfe,0x85,0x03,0xec,0x04,0x33,0x02,0x26,0x0c,0xf5,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x06,0x28,0x02,0x26,0x0c,0xf6,0x00,0x00,0x01,0x06,0x00,0x8e,0x52,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0x2e,0x04,0x33, -0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x06,0x01,0x9c,0x6b,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x13,0x04,0xaa,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x00,0xdb,0x01,0x8a,0xfd,0x56,0xff,0xff,0x00,0xb0, -0x00,0x00,0x04,0x7a,0x06,0x28,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x9e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x04,0x7a,0x04,0x33,0x02,0x26,0x0c,0xf8,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x0c,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, -0x06,0x2a,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x16,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0x59,0x04,0x88,0x04,0x33,0x00,0x26,0x00,0x32,0x40,0x18,0x26,0x37,0x25,0x0f,0x25,0x08,0x08,0x25,0x1a,0x17,0x37,0x18,0x20,0x13,0x17,0x25,0x19,0x35,0x0f,0x00, -0x17,0x0a,0x39,0x05,0x00,0x2f,0xed,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x01,0x26,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04, -0x88,0x33,0x5e,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46,0x2f,0x18,0xfd,0xbc,0x20,0x28,0x08,0x05,0x06,0xa0,0xc0,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0xa0,0x13,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x42,0x6e,0x52,0x02,0xf1,0x29,0x42,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x21,0x19,0x23,0x18,0x10,0x05,0x17, -0x4e,0x39,0x02,0xaa,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0x4d,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3a,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xdc,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x3f,0x00,0x1e, -0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x1e,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x7d,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x28,0x02,0x26,0x0c,0xfc, -0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x03,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0xdf,0x04,0x33,0x02,0x26,0x0c,0xfc,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x2a,0x02,0x26,0x0c,0xfc,0x00,0x00,0x01,0x07, -0x00,0xe0,0x00,0x83,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x28,0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2c, -0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x06,0x00,0xd7,0x4e,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x08,0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x07,0x00,0xdd,0x00,0xdc,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2a,0x02,0x26,0x0c,0xfd,0x00,0x00, -0x01,0x06,0x00,0xe0,0x4f,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x19,0xfe,0x50,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x15,0x00,0x00,0xff,0xff,0x00,0x19,0xfe,0x85,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x06,0x01,0x9c,0x2d,0x00, -0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x06,0x2a,0x02,0x26,0x0c,0xfe,0x00,0x00,0x01,0x06,0x00,0xe0,0x43,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x08,0x01,0x08,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x00,0x0f,0x00,0x3d,0x40,0x1f,0x02,0x06,0x37,0x07,0x0b,0x07,0x0a,0x07,0x03,0x03,0x07,0x0a,0x03,0x00, -0x0d,0x00,0x01,0x0d,0x39,0x0e,0x05,0x09,0x39,0x02,0x0a,0x0a,0x07,0x0e,0x35,0x07,0x33,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe, -0xa9,0x01,0x0e,0xfe,0xf2,0xa4,0xfe,0xf1,0x01,0x0f,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfe,0xb6,0x89,0xfe,0x2b,0x01,0xd5,0x89,0x01,0x4a,0x8b,0x00,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xd0,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35, -0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0x4d,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x25,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xdc,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x2a,0x00,0x1e,0x00,0x0a,0xb4,0x01, -0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x3a,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x41,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x1e,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07, -0x00,0xde,0x01,0x51,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xfe,0x70,0x04,0x26,0x04,0x33,0x02,0x26,0x0c,0xff,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xaa,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x2c,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0xd7, -0x01,0xbe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xa6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26, -0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x5e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x05,0xa5,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x94,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, -0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x2c,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0xd7,0x67,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00, -0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x43,0x71,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x28,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x21,0x00,0x1e,0x00,0x0a, -0xb4,0x01,0x0f,0x0b,0x01,0x0b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x05,0xa3,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x3d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x2a,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07, -0x00,0xe0,0x00,0x8d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0a,0x01,0x0a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0xe3,0x02,0x26,0x0c,0xeb,0x00,0x00,0x00,0x27,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x01,0x07,0x00,0x8e,0x01,0x14,0x00,0xd9,0x00,0x2a,0x40,0x1b,0x04,0xe0,0x2f,0x01,0x90,0x2f,0x01,0x90,0x2f,0x01, -0x80,0x2f,0x01,0x70,0x2f,0x01,0x70,0x2f,0x01,0x60,0x2f,0x01,0x2f,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x11,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x05,0x56,0x06,0x28,0x02,0x26,0x0d,0x05,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x7b,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x16,0x01,0x16,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0x41,0xff,0xda,0x04,0xa9,0x06,0x28,0x02,0x26,0x0d,0x08,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x69,0x00,0x1e,0x00,0x0a,0xb4,0x03,0x0f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33, -0x02,0x06,0x0c,0xec,0x00,0x00,0x00,0x01,0x00,0x9c,0x00,0x00,0x03,0x06,0x04,0x33,0x00,0x05,0x00,0x18,0x40,0x0b,0x00,0x07,0x02,0x37,0x03,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x06,0xfe,0x3a,0xa4,0x02,0x6a,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00, -0x00,0x02,0x00,0x2a,0x00,0x00,0x04,0x20,0x04,0x33,0x00,0x05,0x00,0x0e,0x00,0x23,0x40,0x10,0x0e,0x02,0x06,0x05,0x02,0x05,0x0f,0x10,0x09,0x01,0x03,0x35,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x06, -0x07,0x01,0x04,0x20,0xfc,0x0a,0x01,0xa7,0xa4,0x01,0xab,0xcb,0xfe,0xed,0x1c,0x04,0x03,0x03,0x10,0x0e,0xfe,0xf3,0x39,0x03,0xfa,0xfc,0x06,0x51,0x02,0x9a,0x44,0x26,0x12,0x35,0x23,0xfd,0x66,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33, -0x02,0x06,0x0d,0x04,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x03,0x00,0x17,0x00,0x27,0x00,0x2f,0x40,0x18,0x02,0x01,0x20,0x04,0x38,0x18,0x18,0x29,0x20,0x38,0x0e,0x00,0x39,0x01,0x01,0x25,0x1b,0x39,0x13,0x36,0x25,0x39, -0x09,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x35,0x21,0x15,0x25,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xac,0x01,0x95,0x01,0x54,0x52, -0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x01,0xdd,0x8b,0x8b,0x4a,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0xff,0xff,0x00,0xb0, -0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0d,0x00,0x22,0x40,0x0f,0x04,0x03,0x0d,0x00,0x03,0x00,0x0f,0x0e,0x04,0x08,0x01,0x0d,0x33,0x01,0x35,0x00,0x3f,0x3f,0x12,0x39, -0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x31,0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x01,0xbd,0xa3,0x01,0xb5,0xb9,0xfe,0xf4,0x20,0x1e,0x04,0x03,0x04,0x20,0x22,0xfe,0xee,0x04,0x33,0xfb,0xcd,0x02,0xc0,0x53,0x5f,0x1c,0x17,0x61,0x57,0xfd,0x41,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, -0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x02,0x06,0x0c,0xf8,0x00,0x00,0x00,0x03,0x00,0x49,0x00,0x00,0x03,0x4c,0x04,0x33,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x30,0x40,0x19,0x02,0x03,0x06,0x07,0x04,0x0b,0x0a,0x0b,0x0a,0x0b,0x0c,0x0d,0x05,0x39,0x06,0x06,0x02,0x0a, -0x39,0x09,0x33,0x01,0x39,0x02,0x35,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x36,0xfd,0x29,0x02,0xd7,0x73,0xfe,0x0f,0x01,0xf1,0x89,0xfc,0xfd,0x03,0x03,0x03,0xa3,0x90,0xfd,0xa7,0x8c,0xfd,0x9a, -0x91,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x00,0x07,0x00,0x1b,0x40,0x0d,0x04,0x37,0x05,0x00,0x37,0x01,0x03,0x39,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11, -0x23,0x11,0x21,0x04,0x37,0xa5,0xfd,0xc2,0xa4,0x03,0x87,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x00,0x03,0x63,0x04,0x33,0x00,0x0b,0x00,0x34,0x40,0x1a,0x08,0x04,0x03,0x07,0x09,0x0b,0x04,0x09,0x0b,0x0b,0x09,0x04,0x03,0x0d, -0x0a,0x02,0x04,0x08,0x39,0x05,0x35,0x02,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x03,0x63,0xfc,0xcd,0x01,0x82,0xfe,0xa1,0x02,0xdc,0xfe,0x0d,0x01,0x27,0xfe,0xb0, -0x02,0x50,0x44,0x01,0xe5,0x01,0xbd,0x4d,0x8c,0xfe,0x87,0xfe,0x59,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x02,0x06,0x0d,0x03,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x46, -0x40,0x23,0x1f,0x12,0x01,0x37,0x37,0x0f,0x02,0x02,0x09,0x18,0x37,0x25,0x32,0x37,0x09,0x1f,0x37,0x3a,0x04,0x00,0x04,0x1e,0x2c,0x3a,0x0f,0x12,0x0f,0x04,0x0f,0x04,0x0f,0x02,0x10,0x36,0x02,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33, -0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x02,0xcd,0x99,0x18,0x66,0xaa,0x79,0x43,0x43,0x7a, -0xaa,0x67,0x16,0x99,0x17,0x69,0xaa,0x78,0x42,0x44,0x79,0xa9,0x65,0x19,0x17,0x46,0x70,0x4e,0x29,0x2a,0x4f,0x70,0x46,0xae,0x14,0x45,0x71,0x4f,0x2b,0x29,0x4e,0x70,0x47,0x8b,0x96,0x96,0x3e,0x71,0x9c,0x5f,0x5d,0x97,0x6a,0x3a,0x70,0x70,0x3b,0x6b,0x97,0x5b,0x5f,0x9c,0x71,0x3e,0x02,0xc4,0xfd,0xc1,0x27,0x4b,0x6c,0x46,0x41,0x69, -0x49,0x28,0xfd,0xc1,0x02,0x3f,0x27,0x49,0x6a,0x42,0x46,0x6c,0x4a,0x27,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x04,0xc3,0x04,0x33,0x00,0x1b,0x00,0x34,0x40,0x1a,0x0d,0x00,0x37,0x0e,0x1b,0x1b,0x06,0x15,0x37,0x14,0x07,0x37,0x06,0x01,0x19,0x39,0x0c,0x10, -0x10,0x0e,0x1b,0x06,0x14,0x35,0x0e,0x33,0x00,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0xec,0x19,0x97, -0x88,0x9f,0xe1,0xdd,0x19,0x99,0x19,0xd7,0xe6,0x9e,0x88,0x97,0x19,0x04,0x33,0xfd,0x60,0x8a,0x89,0x01,0x8d,0xfe,0x73,0xc6,0xd4,0xfe,0xf4,0x01,0x0c,0xd1,0xc9,0x01,0x8d,0xfe,0x73,0x89,0x8a,0x02,0xa0,0x00,0x00,0x01,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x00,0x2b,0x00,0x2a,0xbc,0x00,0x0f,0x01,0x50,0x00,0x1b,0x00,0x25,0x01, -0x50,0x40,0x0d,0x05,0x0a,0x39,0x20,0x36,0x2a,0x12,0x03,0x15,0x39,0x01,0x14,0x33,0x00,0x3f,0x33,0xed,0x32,0x32,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15, -0x14,0x0e,0x02,0x07,0x21,0x04,0xb8,0xfe,0x51,0x80,0x86,0x36,0x64,0x90,0x5a,0x5c,0x92,0x66,0x37,0x87,0x81,0xfe,0x50,0x01,0x0d,0x48,0x67,0x40,0x1e,0x51,0x93,0xcd,0x7d,0x7f,0xd0,0x93,0x50,0x1e,0x41,0x65,0x48,0x01,0x0c,0x8a,0x5d,0xd4,0x89,0x59,0x8c,0x62,0x33,0x33,0x62,0x8c,0x58,0x89,0xd5,0x5d,0x8a,0x8b,0x2c,0x62,0x6f,0x81, -0x4c,0x75,0xb8,0x80,0x43,0x42,0x7f,0xb9,0x76,0x4b,0x81,0x70,0x61,0x2d,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef, -0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe8,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x28,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6f,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00, -0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35, -0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf5,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x06,0x28,0x02,0x26,0x0d,0x80,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6d,0x00,0x1e,0x00,0x0a,0xb4,0x01, -0x0f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06, -0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x8a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x45,0x03,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0x00,0x01,0x00,0x22,0xff,0xf2,0x04,0x3f,0x04,0x33, -0x00,0x1d,0x00,0x3e,0x40,0x20,0x13,0x0b,0x37,0x0c,0x19,0x37,0x06,0x01,0x11,0x06,0x0c,0x06,0x0c,0x06,0x1f,0x0e,0x0a,0x39,0x13,0x13,0x0f,0x03,0x3a,0x1c,0x34,0x12,0x0e,0x39,0x0f,0x35,0x0c,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x32, -0x31,0x30,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x02,0x7c,0x32,0x49,0x4a,0x58,0x7e,0x72,0xba,0xa3,0xfe,0xd6,0x03,0x3a,0xfe,0x93,0xca,0x59,0x90,0x66,0x37,0xa4,0x97,0x4c,0x04,0x8c,0x19,0x5f,0x52,0x60,0x68,0xfe,0x10, -0x03,0xa9,0x8a,0x8a,0xfe,0xce,0x2c,0x56,0x7c,0x51,0x94,0xa2,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x06,0x28,0x00,0x26,0x0d,0x6b,0x14,0x00,0x01,0x07,0x00,0x8e,0x00,0xd6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x58,0xff,0xee,0x03,0xca,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17, -0x0f,0x16,0x07,0x1c,0x1c,0x1e,0x14,0x17,0x38,0x07,0x17,0x39,0x14,0x14,0x1a,0x11,0x39,0x0c,0x36,0x1a,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21, -0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0xca,0x83,0xc3,0x7d,0xcd,0x92,0x50,0x56,0x9a,0xd4,0x7f,0xb0,0x7f,0x86,0xaa,0xb1,0xcf,0x15,0x01,0xf7,0xfe,0x08,0x0e,0xc8,0xb4,0xb9,0x83,0x2d,0x3f,0x48,0x89,0xc7,0x7f,0x8a,0xd6,0x93,0x4d,0x2c,0x9e,0x40,0xa9,0xb6,0x89,0xa5,0xb7,0x48,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, -0x02,0x06,0x0c,0xfd,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x11, -0xff,0xed,0x01,0xe5,0x04,0x33,0x02,0x06,0x0c,0xf4,0x00,0x00,0x00,0x02,0x00,0x0d,0xff,0xef,0x06,0x32,0x04,0x33,0x00,0x26,0x00,0x2f,0x00,0x44,0xb6,0x02,0x19,0x1b,0x28,0x37,0x00,0x21,0xb8,0x01,0x50,0x40,0x1b,0x2c,0x19,0x00,0x2c,0x2c,0x00,0x19,0x03,0x31,0x0f,0x27,0x39,0x1b,0x1b,0x28,0x02,0x39,0x19,0x35,0x11,0x39,0x0c,0x34, -0x28,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x21,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, -0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x37,0xfe,0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0xe2,0x58,0x8b,0x60,0x33,0x36,0x65,0x8f,0x58,0xd6,0xc4,0x70,0x7a,0x74,0x76,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f, -0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0xfe,0x44,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x00,0x02,0x00,0xb0,0x00,0x00,0x06,0x46,0x04,0x33,0x00,0x08,0x00,0x1f,0x00,0x49,0xb6,0x1f,0x01,0x37,0x14,0x1c,0x14,0x0e,0xb8,0x01,0x50,0x40,0x1c,0x05,0x14,0x05,0x14,0x05,0x21,0x1b, -0x17,0x37,0x18,0x16,0x39,0x1b,0x00,0x39,0x1f,0x1b,0x1f,0x1b,0x1f,0x1d,0x19,0x35,0x01,0x39,0x17,0x14,0x33,0x00,0x3f,0x33,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x03,0xf3,0xbf,0x70,0x7a,0x6f,0x76,0x1e,0x58,0x8a,0x5e,0x31,0x36,0x65,0x8f,0x58,0xfe,0x8c,0xfe,0x03,0xa3,0xa3,0x01,0xfd,0xa3,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x8a,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xec,0xfe, -0x14,0x04,0x33,0xfe,0x43,0x01,0xbd,0xfe,0x44,0x00,0x00,0x01,0x00,0x22,0x00,0x00,0x04,0x64,0x04,0x33,0x00,0x12,0x00,0x34,0x40,0x1a,0x0f,0x07,0x37,0x08,0x00,0x37,0x01,0x08,0x01,0x08,0x01,0x14,0x0a,0x06,0x39,0x0f,0x0f,0x08,0x0e,0x0a,0x39,0x0b,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f, -0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x20,0x11,0x04,0x64,0xa4,0x6f,0x65,0xfc,0xa3,0xfe,0xd5,0x03,0x3a,0xfe,0x94,0xfd,0x01,0x77,0x01,0x24,0x66,0x5f,0xfe,0x17,0x03,0xa9,0x8a,0x8a,0xfe,0xc7,0xfe,0xb4,0x00,0xff,0xff, -0x00,0xb0,0x00,0x00,0x03,0xec,0x06,0x28,0x02,0x26,0x0c,0xf5,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x42,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x36,0xff,0xed,0x03,0xf4,0x05,0xdc,0x02,0x26,0x0d,0xab,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xea,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c, -0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0xe0,0x04,0x2f,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x01,0x37,0x04,0x00,0x37,0x09,0x04,0x09,0x04,0x09,0x0d,0x08,0x37,0x05,0x0a,0x06,0x35,0x08,0x39,0x01,0x05,0x33,0x03,0x00,0x2f,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, -0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0x2f,0xfe,0x8b,0x98,0xfe,0x8e,0xa3,0x02,0x38,0xa4,0xfe,0xe0,0x01,0x20,0x04,0x33,0xfc,0x57,0x03,0xa9,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9c,0x04,0x33,0x00,0x10, -0x00,0x1b,0x00,0x2f,0x40,0x18,0x03,0x12,0x0b,0x38,0x16,0x16,0x1d,0x05,0x12,0x37,0x00,0x11,0x39,0x05,0x05,0x12,0x04,0x39,0x01,0x35,0x12,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, -0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0xb0,0x02,0x7c,0xfe,0x27,0xca,0x58,0x8e,0x64,0x35,0x38,0x67,0x92,0x59,0xbf,0xac,0x7d,0x75,0x1b,0x3b,0x5c,0x40,0x04,0x33,0x8a,0xfe,0xce,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x50,0x5f,0x30,0x45,0x2b,0x14,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, -0x03,0xa1,0x04,0x33,0x02,0x06,0x0c,0xec,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0x33,0x00,0x06,0x0d,0x6b,0x14,0x00,0x00,0x02,0x00,0x12,0xfe,0xdf,0x04,0x6c,0x04,0x33,0x00,0x0f,0x00,0x18,0x00,0x44,0x40,0x23,0x0f,0x37,0x02,0x0e,0x37,0x10,0x12,0x37,0x0c,0x18,0x07,0x0c,0x07,0x10,0x06,0x02,0x10,0x02,0x10,0x1a, -0x03,0x37,0x06,0x12,0x39,0x0c,0x35,0x01,0x04,0x0e,0x07,0x18,0x39,0x03,0x33,0x00,0x3f,0xed,0x32,0x32,0x2f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x36,0x37,0x12,0x37,0x21,0x11,0x33,0x21,0x11, -0x21,0x06,0x06,0x07,0x06,0x06,0x07,0x04,0x6c,0x98,0xfc,0xd7,0x99,0x5d,0x3c,0x64,0x2a,0x55,0x0a,0x02,0x34,0xa0,0xfe,0xbd,0xfe,0xfd,0x07,0x2d,0x27,0x27,0x56,0x30,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0xab,0x61,0xdf,0x81,0x01,0x02,0xe6,0xfc,0x57,0x03,0x1f,0x58,0xcb,0x75,0x76,0xc2,0x4f,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27, -0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x05,0xe7,0x04,0x33,0x00,0x1d,0x00,0x17,0x40,0x0a,0x06,0x37,0x07,0x07,0x1f,0x1e,0x15,0x35,0x07,0x33,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, -0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xe7,0xc9,0xfe,0x47,0x15,0x0a,0x04,0x9c,0x04,0x0b,0x13,0xfe,0x46,0xca,0x01,0xff,0xfe,0x25,0xb9,0x01,0xa7,0x13,0x0b,0x04,0x9c,0x04,0x0a,0x15,0x01,0xa6,0xb8,0xfe,0x26,0x01,0xec,0x14,0x11,0xfd,0xef,0x02,0x11,0x10,0x15,0xfe,0x14,0x02,0x2e,0x02,0x05,0xfe,0x2f,0x15, -0x10,0x01,0xf6,0xfe,0x0a,0x10,0x15,0x01,0xd1,0xfd,0xfb,0x00,0x00,0x01,0x00,0x50,0xff,0xee,0x03,0x3d,0x04,0x45,0x00,0x2f,0x00,0x39,0x40,0x1e,0x10,0x38,0x17,0x0c,0x23,0x03,0x00,0x20,0x20,0x00,0x29,0x38,0x08,0x08,0x31,0x00,0x24,0x0b,0x3a,0x0c,0x0c,0x1b,0x03,0x3b,0x2e,0x34,0x15,0x3b,0x1b,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11, -0x39,0x2f,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x50,0x88,0xa9, -0x3d,0x65,0x46,0x27,0xfe,0xd9,0x76,0x6c,0x7e,0x89,0x1e,0x38,0x50,0x33,0x8e,0x89,0x42,0x96,0x56,0x54,0x88,0x60,0x34,0x75,0x71,0x3d,0x64,0x47,0x27,0x3d,0x72,0xa2,0x65,0xca,0x2d,0x96,0x5c,0x1b,0x33,0x48,0x2d,0xc2,0x80,0x60,0x58,0x25,0x3e,0x2c,0x18,0x55,0x8d,0x22,0x20,0x26,0x46,0x61,0x3b,0x69,0x83,0x1c,0x03,0x06,0x2b,0x44, -0x59,0x34,0x4a,0x77,0x54,0x2d,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1e,0x40,0x0e,0x0e,0x37,0x0c,0x0f,0x0f,0x1a,0x17,0x01,0x37,0x00,0x17,0x33,0x01,0x35,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x3e,0x03,0x37,0x01,0x33,0x11,0x23, -0x11,0x34,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0xb0,0x99,0x04,0x04,0x03,0x03,0x09,0x11,0x19,0x12,0x02,0x35,0xb9,0x99,0x06,0x05,0x08,0x29,0x1f,0xfd,0xcc,0xae,0x04,0x33,0xfd,0x39,0x39,0x4e,0x17,0x05,0x10,0x18,0x23,0x19,0x02,0xfc,0xfb,0xcd,0x02,0xe1,0x71,0x23,0x13,0x41,0x2a,0xfd,0x09,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, -0x05,0xdc,0x02,0x26,0x0d,0xa0,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x0d,0xff,0xef,0x03,0xda,0x04,0x33,0x00,0x1b,0x00,0x2b,0x40,0x16,0x03,0x37,0x1a,0x00, -0x37,0x01,0x1a,0x01,0x1a,0x01,0x1d,0x10,0x03,0x39,0x1a,0x35,0x12,0x39,0x0d,0x34,0x01,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x03,0xda,0xa3,0xfe, -0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f,0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00, -0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x02,0x06,0x0d,0x78,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x02,0x06,0x0c,0xed,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xed,0x03,0xf4,0x04,0x33,0x00,0x18,0x00,0x23,0x40,0x10,0x18,0x00,0x00,0x1a,0x12,0x11,0x10,0x16,0x06,0x18,0x11,0x35,0x0b,0x39,0x06,0x34, -0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x01,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x03,0xf4,0xfe,0x91,0x2c,0x56,0x61,0x72,0x48,0x57,0x3d,0x45,0x4c,0x1f,0x3a,0x39,0x3b,0x21,0xfe,0x63,0xb6,0x01,0x18,0x08,0x11, -0x06,0x01,0x01,0x23,0x04,0x33,0xfd,0x12,0x5a,0x82,0x54,0x28,0x17,0x98,0x26,0x0e,0x29,0x49,0x3c,0x03,0x01,0xfd,0xdc,0x0e,0x26,0x12,0x02,0x6a,0xff,0xff,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x02,0x06,0x0d,0x7d,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0xb0, -0xfe,0xdf,0x04,0xce,0x04,0x33,0x00,0x0b,0x00,0x2a,0x40,0x15,0x02,0x37,0x0b,0x0b,0x09,0x37,0x08,0x08,0x0d,0x05,0x37,0x04,0x08,0x04,0x35,0x0a,0x06,0x39,0x03,0x33,0x01,0x00,0x2f,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33, -0x04,0xce,0x99,0xfc,0x7b,0xa3,0x02,0x38,0xa4,0x9f,0xfe,0xdf,0x01,0x21,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xb0,0x04,0x33,0x00,0x15,0x00,0x2b,0x40,0x15,0x15,0x37,0x02,0x14,0x14,0x17,0x0c,0x37,0x0b,0x10,0x39,0x02,0x0b,0x05,0x05,0x01,0x14,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x33,0x12, -0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x03,0xb0,0xa3,0x56,0xa7,0x60,0x47,0x72,0x4f,0x2b,0xa3,0x54,0x60,0x4b,0x99,0x55,0xa3,0x01,0xd8,0x28,0x33,0x26,0x4b,0x6f,0x49,0x01,0x8d,0xfe, -0x90,0x64,0x5b,0x28,0x26,0x01,0xe1,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0xc3,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x07,0x37,0x06,0x0b,0x37,0x0a,0x06,0x0a,0x06,0x0a,0x0d,0x03,0x37,0x02,0x0a,0x06,0x02,0x35,0x08,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, -0x10,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc3,0xfa,0xed,0xa3,0x01,0x95,0xa3,0x01,0x95,0xa3,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0x00,0x00,0x01,0x00,0xb0,0xfe,0xdf,0x06,0x61,0x04,0x33,0x00,0x0f,0x00,0x39,0x40,0x1d,0x05,0x37,0x04,0x0e,0x37,0x0b,0x0b,0x09,0x37,0x08, -0x04,0x08,0x04,0x08,0x11,0x01,0x37,0x00,0x0a,0x06,0x02,0x39,0x0f,0x33,0x0d,0x08,0x04,0x00,0x35,0x00,0x3f,0x32,0x32,0x2f,0x3f,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x2f,0xed,0x10,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0xb0,0xa3,0x01, -0x95,0xa3,0x01,0x95,0xa3,0x9e,0x99,0xfa,0xe8,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0xfc,0x57,0xfe,0x55,0x01,0x21,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x04,0x3b,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x33,0x40,0x1a,0x05,0x12,0x37,0x00,0x0b,0x38,0x16,0x00,0x16,0x00,0x16,0x1b,0x02,0x11,0x3a,0x05,0x05,0x12,0x02,0x39, -0x03,0x35,0x12,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x4d,0xfe,0xd5,0x01,0xce,0xca,0x58,0x8f,0x64,0x36, -0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x03,0xa9,0x8a,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x03,0x00,0xb0,0x00,0x00,0x04,0xf1,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x1b,0x00,0x35,0x40,0x1b,0x09,0x38,0x14,0x18,0x37,0x19,0x14,0x19,0x14,0x19,0x1d,0x03, -0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x1a,0x01,0x35,0x10,0x3a,0x19,0x00,0x33,0x00,0x3f,0x32,0xed,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x23,0x11, -0x33,0xb0,0xa3,0xca,0x58,0x8f,0x64,0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x02,0xf2,0xa4,0xa4,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0xfe,0x0f,0x04,0x33,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9e,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x26,0x40,0x13, -0x09,0x38,0x14,0x14,0x19,0x03,0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x01,0x35,0x10,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xb0,0xa3,0xca,0x58,0x8f,0x64, -0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x01,0x00,0x54,0xff,0xee,0x03,0xc6,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17,0x15,0x38,0x08,0x06,0x00,0x05,0x05,0x1e,0x0d,0x00,0x06,0x39,0x07,0x07,0x10,0x02, -0x39,0x1a,0x34,0x0b,0x39,0x10,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x54,0x82,0xba,0xb4,0xc8,0x0e,0xfe,0x08,0x01, -0xf7,0x15,0xcf,0xb1,0xaa,0x86,0x7f,0xb0,0x86,0xd7,0x96,0x50,0x50,0x92,0xcd,0x7d,0xc4,0x82,0xbf,0x48,0xb7,0xa5,0x89,0xb6,0xa9,0x40,0x9e,0x2c,0x4d,0x94,0xd6,0x89,0x7f,0xc7,0x89,0x48,0x3f,0x00,0x00,0x02,0x00,0xb0,0xff,0xed,0x06,0x88,0x04,0x45,0x00,0x1a,0x00,0x2a,0x00,0x43,0xb9,0x00,0x23,0x01,0x50,0x40,0x20,0x0a,0x11,0x0a, -0x00,0x38,0x1b,0x0a,0x1b,0x0a,0x1b,0x2c,0x10,0x0c,0x37,0x0d,0x0b,0x3a,0x10,0x10,0x28,0x1e,0x39,0x16,0x36,0x0e,0x35,0x0d,0x33,0x28,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x06,0x88,0x52,0x91,0xc9,0x77,0x74,0xc1,0x8d,0x52,0x05,0xf9,0xa3,0xa3,0xfe,0x0e,0x57,0x8c,0xc0,0x78,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57, -0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4b,0x87,0xbd,0x72,0xfe,0x12,0x04,0x33,0xfe,0x3d,0x68,0xac,0x7c,0x45,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x03,0x39,0x04,0x33,0x00,0x1c,0x00,0x27,0x00,0x3d,0xb9,0x00,0x22,0x01,0x50,0x40,0x1b,0x16,0x1d,0x00, -0x37,0x01,0x10,0x01,0x16,0x01,0x16,0x01,0x29,0x09,0x0a,0x10,0x03,0x3a,0x27,0x27,0x09,0x1e,0x3a,0x1c,0x35,0x01,0x09,0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03, -0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x03,0x39,0xa4,0x9c,0x16,0x26,0x24,0x24,0x14,0x97,0xb8,0xb7,0x08,0x1b,0x23,0x2b,0x18,0x3b,0x5d,0x40,0x22,0x39,0x66,0x8f,0x56,0x01,0x5d,0xa3,0xb0,0x6d,0x77,0x20,0x3b,0x52,0x33,0x01,0xb5,0x08,0x1b,0x32,0x2a,0xfe,0xca,0x01, -0x63,0x10,0x26,0x24,0x1e,0x09,0x03,0x0c,0x32,0x49,0x5d,0x36,0x46,0x71,0x50,0x2b,0xfe,0x08,0x01,0x72,0x5e,0x58,0x2c,0x45,0x31,0x1a,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0xf9,0x00,0x07,0x00,0x1f,0x40,0x0f,0x00,0x37,0x05,0x05,0x09,0x02,0x37,0x03,0x06,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0xce,0x01,0x2f, -0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x33,0x03,0x1a,0xfe,0x39,0xa3,0x01,0xda,0x90,0x03,0xa9,0xfc,0x57,0x04,0x33,0xc6,0x00,0x01,0x00,0x35,0x00,0x00,0x03,0xff,0x06,0x04,0x00,0x1d,0x00,0x37,0x40,0x1c,0x1c,0x04,0x84,0x09,0x05,0x05,0x01,0x07,0x13,0x00,0x84,0x01,0x13,0x13,0x08,0x16,0x95,0x0f, -0x01,0x03,0x07,0x95,0x1c,0x08,0x0f,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x03, -0xff,0xa4,0xfe,0x2c,0xa4,0xae,0xae,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x04,0x01,0x06,0x04,0x00,0x1d,0x00,0x33,0x40,0x1a,0x0b,0x0f, -0x84,0x14,0x10,0x0d,0x10,0x0d,0x01,0x12,0x00,0x84,0x01,0x05,0x95,0x1a,0x01,0x0e,0x12,0x95,0x0b,0x13,0x0f,0x01,0x10,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11, -0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x04,0x01,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xae,0xae,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07,0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x05,0x19, -0x06,0x02,0x00,0x2c,0x00,0x59,0x40,0x2f,0x11,0x28,0x84,0x29,0x00,0x29,0x20,0x24,0x84,0x12,0x0a,0x25,0x29,0x25,0x22,0x22,0x25,0x29,0x03,0x1a,0x2b,0x1a,0x27,0x23,0x2b,0x95,0x2c,0x0a,0x1b,0x0a,0x1b,0x06,0x20,0x11,0x2c,0x0f,0x25,0x29,0x15,0x1d,0x95,0x18,0x01,0x0d,0x95,0x06,0x00,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33, -0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x13,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15, -0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0xe3,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd5,0x30,0x57,0x78,0x47,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0xa4,0xfe,0x2b,0xa4,0xae,0x04,0x00,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0xa6,0x4e,0x80,0x5b,0x33,0x12,0x94,0x1b, -0xd9,0x9e,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x00,0x01,0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x62,0x40,0x36,0x1e,0x08,0x84,0x09,0x0d,0x09,0x32,0x04,0x84,0x1f,0x17,0x05,0x09,0x05,0x09,0x05,0x01,0x0b,0x29,0x00,0x84,0x01,0x2c,0x95,0x25,0x01,0xb0,0x29,0xc0,0x29,0xe0,0x29,0x03,0x17,0x29,0x17, -0x29,0x0c,0x1a,0x95,0x13,0x00,0x07,0x03,0x0b,0x95,0x32,0x1e,0x0c,0x0f,0x05,0x01,0x09,0x15,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21, -0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x06,0x78,0xa4,0xfe,0x2c,0xa4,0xfe,0x2b,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e, -0x53,0x30,0x6d,0x71,0x01,0xd5,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01, -0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x58,0x40,0x2f,0x29,0x13,0x84,0x14,0x18,0x14,0x0b,0x0f,0x84,0x2a,0x22,0x10,0x14,0x10,0x0d,0x0d,0x10,0x14,0x03,0x01,0x16,0x00,0x84,0x01,0x05,0x95,0x30,0x01,0x22,0x22,0x17,0x25,0x95,0x1e,0x00,0x12,0x0e,0x16,0x95,0x29,0x0b,0x17,0x0f,0x10,0x01,0x14,0x15,0x00,0x3f,0x33, -0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02, -0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x06,0x78,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xfe,0x2d,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd3,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07, -0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x03,0x00,0x57,0xff,0xef,0x05,0x31,0x04,0x45,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x6d,0x40,0x3e,0x38,0x05,0x0f,0x33,0x37,0x2c,0x29,0x49, -0x2c,0x53,0x24,0x4e,0x12,0x03,0x17,0x21,0x37,0x58,0x60,0x37,0x17,0x40,0x2c,0x58,0x17,0x17,0x58,0x2c,0x40,0x04,0x69,0x53,0x37,0x0f,0x12,0x4e,0x49,0x05,0x04,0x00,0x5d,0x3b,0x1c,0x2f,0x2f,0x44,0x65,0x24,0x29,0x38,0x04,0x3d,0x1c,0x36,0x44,0x39,0x0a,0x34,0x3d,0x39,0x00,0x34,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x12, -0x39,0x2f,0x10,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07, -0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb2,0x2f,0x4a,0x41,0x3b,0x1f,0x23,0x56,0x6a, -0x7e,0x4b,0x5c,0x97,0x6c,0x3c,0x8b,0x85,0x19,0x30,0x26,0x17,0x30,0x53,0x71,0x41,0x40,0x6c,0x4d,0x2b,0x65,0x65,0x34,0x56,0x4a,0x3f,0x1e,0x33,0x35,0x08,0x07,0xa1,0x08,0x06,0x14,0x2a,0x40,0x2c,0x1d,0x2d,0x2d,0x33,0x21,0x18,0x34,0x1b,0x1e,0x41,0xfd,0x20,0x3a,0x63,0x52,0x44,0x1c,0x2a,0x4f,0x56,0x63,0x3d,0x2d,0x4e,0x39,0x20, -0x26,0x42,0x59,0xde,0x19,0x28,0x31,0x18,0x44,0x51,0x01,0x14,0x21,0x2a,0x17,0x5a,0x50,0x11,0x12,0x23,0x33,0x20,0x1b,0x31,0x26,0x16,0x2a,0x51,0x76,0x4b,0x73,0xa1,0x34,0x10,0x2b,0x36,0x43,0x28,0x3c,0x5b,0x3f,0x20,0x20,0x3c,0x54,0x34,0x5a,0x77,0x2a,0x14,0x3b,0x48,0x53,0x2b,0x55,0xcb,0x70,0x1d,0x32,0x19,0x19,0x2c,0x1e,0x40, -0x86,0x83,0x7e,0x37,0x20,0x2b,0x1a,0x0b,0x0c,0x09,0x85,0x0e,0x0b,0x8b,0x10,0x1d,0x27,0x18,0x3e,0x63,0x4d,0x3a,0x16,0x11,0x29,0x39,0x4a,0x32,0x2f,0x46,0x2e,0x18,0x02,0xd7,0x1f,0x2e,0x1e,0x0e,0x45,0x3b,0x1a,0x2f,0x28,0x20,0x0b,0x1c,0x4e,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2c,0x02,0x26,0x0c,0xed,0x00,0x00, -0x01,0x07,0x00,0xd7,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x06,0x2c,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x1e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x08, -0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x06,0x01,0x9c,0x25,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x01,0x0f,0x00,0x33,0x04,0x7b,0x05,0x9a, -0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x03,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x0a,0x05,0x9a,0x01,0x47,0x00,0x37,0xff,0xfe,0x05,0x9a, -0x40,0x00,0xc0,0x00,0x00,0x07,0xb2,0x00,0x07,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x02,0x06,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x01,0x0f,0x00,0x2e,0x04,0xa4,0x05,0x9a, -0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x01,0x0f,0x00,0x26,0x04,0xf4,0x05,0x9a,0xc0,0x00, -0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x05,0x9a,0x02,0x06,0x00,0x29,0x00,0x00,0xff,0xff,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x01,0x0f,0x00,0x29,0x03,0xe8,0x05,0x9a,0xc0,0x00,0x00,0x07, -0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde, -0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x02,0x06,0x00,0x35,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x00,0x04,0x0d,0x05,0x9a,0x01,0x0f,0x00,0x35,0x04,0xc9,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x0b,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6, -0x05,0x9a,0x01,0x0f,0x00,0x39,0x04,0xf8,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x02,0x06,0x00,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x91,0xff,0xe8,0x05,0x1f,0x05,0xb2, -0x01,0x0f,0x00,0x2a,0x05,0x7d,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x02,0xc7,0x05,0xb2,0x01,0x0f,0x00,0x2d,0x02,0xdb,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x0b,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a, -0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x03,0xda,0x05,0x9a,0x01,0x0f,0x00,0x25,0x04,0x96,0x05,0x9a,0xc0,0x00,0x00,0x0b,0xb4,0x02,0x01,0x00,0x01,0x12,0x00,0x3f, -0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0x17,0x00,0x00,0x05,0x13,0x05,0x9a,0x01,0x0f,0x00,0x24,0x05,0x29,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x06,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06, -0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x03,0x50,0x05,0x9a,0x01,0x0f,0x00,0x28,0x04,0x0c,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32, -0x00,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x02,0x06,0x00,0x38,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x01,0x0f,0x00,0x38,0x05,0x7f,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x05,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x01,0x0f,0x00,0x2f,0x03,0xc4, -0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x04,0xe0,0x05,0x9a,0x01,0x0f,0x00,0x27,0x05,0x9c,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x01,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x02,0x06,0x00,0x11,0x00,0x00,0xff,0xff, -0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x02,0x06,0x00,0x0f,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x03,0x0c,0x00,0xcb,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x11,0x01,0xbc,0x00,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x02,0xf8,0x00,0xe4,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x0f,0x01,0xbc,0x00,0x00,0xff,0xff, -0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x02,0x06,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xea,0x04,0x83,0x02,0x7b,0x00,0x26,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x11,0x03,0x33,0x00,0x00,0xff,0xff,0x00,0x90,0x01,0xc8,0x02,0xb2,0x03,0xf4, -0x02,0x27,0x00,0x10,0x00,0x00,0x01,0x79,0x00,0x06,0x00,0x10,0x00,0xce,0x00,0x01,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x61,0x40,0x40,0x02,0x0a,0x92,0x0b,0x03,0x03,0x07,0x92,0x40,0x06,0x01,0x04,0x0e,0x03,0x07,0x08,0x42,0x0a,0x07,0x40,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06, -0x4d,0x03,0x7e,0x08,0x08,0x04,0x0d,0x06,0x4d,0x08,0x02,0x0c,0x06,0x4d,0x08,0x02,0x0b,0x06,0x4d,0x08,0x40,0x0d,0x01,0x4d,0x0c,0x0d,0x08,0x7e,0xff,0x30,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x1a,0x18,0xcd,0x32,0x2b,0x01,0x10,0xe1,0x32,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x01,0x15,0x23, -0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x01,0xf0,0x8c,0x8c,0xfe,0x40,0x8c,0x8c,0x05,0x9a,0x90,0xfb,0x86,0x90,0x90,0x04,0x7a,0x90,0x00,0x00,0x02,0x00,0x5e,0xfe,0x7c,0x05,0xcc,0x05,0xb2,0x00,0x28,0x00,0x38,0x00,0x96,0x40,0x29,0x78,0x12,0x01,0x14,0x00,0x29,0x91,0x0b,0x04,0x31,0x91,0x00,0x19,0xee,0x24,0x1e,0x1e,0x75, -0x14,0x01,0x14,0x00,0x07,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x35,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x35,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x35,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x35,0x30,0x35,0x02,0x35,0x35,0x3a,0x2d,0x06,0x0d,0x06,0x4d,0x2d,0x06,0x0c,0x06, -0x4d,0x2d,0x06,0x0b,0x06,0x4d,0x2d,0x7d,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x2f,0x3a,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x5d,0xc2,0x2f,0x00,0x2f,0xed,0x2f,0xed,0x3f,0xed,0x12,0x39,0x31,0x30, -0x01,0x5d,0x05,0x22,0x2e,0x02,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x02,0xf4,0x40,0x84,0x7c,0x71,0x2e,0xb7,0xba,0xbc,0x01,0x46,0x01, -0x24,0xb6,0xb6,0x3d,0x7c,0xbc,0x80,0x34,0x5b,0x5b,0x62,0x3b,0x10,0x26,0x27,0x24,0x0f,0x10,0x28,0x29,0x28,0x11,0x60,0x99,0x85,0x7c,0x2e,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0x19,0x33,0x4b,0x32,0xc8,0x01,0x43,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0x88,0xf1,0xc2,0x87,0x1d,0x38,0x56,0x3b,0x1e,0x03, -0x07,0x09,0x06,0xa2,0x05,0x07,0x05,0x03,0x39,0x63,0x84,0x05,0x7e,0xa3,0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x03,0x00,0x77,0xff,0xe7,0x05,0x91,0x05,0xb2,0x00,0x29,0x00,0x37,0x00,0x46,0x00,0x69,0x40,0x3c,0x02,0x38,0x3b,0x0b,0x04,0x12,0x04,0x24,0x27,0x1f,0x1c,0x36,0x24,0x05, -0x12,0x01,0x45,0x95,0x04,0x13,0x2f,0x96,0x12,0x04,0x27,0x02,0x25,0x09,0x1f,0x38,0x24,0x40,0x0b,0x36,0x3b,0x1c,0x04,0x17,0x0d,0x25,0xef,0x24,0x17,0x84,0x2a,0x34,0x84,0x0d,0x0d,0x2a,0x24,0x03,0x09,0x01,0x00,0x00,0x48,0x40,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x17,0x39,0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17, -0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2f,0x11,0x17,0x39,0x2f,0x11,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x25,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x3e,0x03,0x37,0x33,0x02,0x07,0x16,0x16,0x01,0x34,0x2e, -0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x17,0x36,0x13,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0x91,0xe5,0x9a,0xc2,0xfe,0xed,0x67,0xa7,0x77,0x41,0x01,0x47,0x9b,0x38,0x65,0x8a,0x52,0x4d,0x7e,0x5a,0x31,0x21,0x4c,0x7c,0x5b,0x67,0xbb,0x55,0x17,0x29,0x20,0x12,0x01,0x97,0x01,0xab,0x14,0x87,0xfe,0x34,0x1c,0x30, -0x41,0x25,0x32,0x50,0x39,0x1e,0x8d,0xfe,0x62,0x46,0xcc,0x87,0x45,0x60,0x3c,0x1b,0x2c,0x4d,0x68,0x3d,0xdc,0x9e,0xb7,0x39,0x66,0x8e,0x56,0xfd,0xa7,0xc7,0x8b,0x49,0x7c,0x5a,0x33,0x2d,0x50,0x6e,0x40,0x42,0x6b,0x5f,0x56,0x2d,0x6d,0xbe,0x54,0x21,0x5c,0x67,0x6a,0x2f,0xfe,0xf2,0xd8,0x14,0x87,0x04,0x04,0x27,0x43,0x30,0x1c,0x1e, -0x37,0x4c,0x2e,0x6d,0x9d,0x7a,0xfd,0x30,0x48,0xd3,0x8f,0x23,0x45,0x4b,0x54,0x32,0x3a,0x5e,0x42,0x24,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x91,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1e,0x40,0x0f,0x03,0x03,0x02,0x13,0xb0,0x09,0x13,0x01,0x02,0x00,0x7d,0x03,0x04,0xaf,0x0e,0x2f,0xe1,0xd4,0xe1,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f, -0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x01,0x77,0x14,0x72,0x14,0xb4,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x28,0x1e,0x12,0x05,0x9a,0xfb,0xf9,0x04,0x07,0xfa,0xc2,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12, -0x12,0x1e,0x29,0x00,0x00,0x01,0x00,0x5c,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x14,0x00,0x17,0x40,0x0a,0x14,0x0c,0xb2,0x15,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x5c,0x37,0x4c, -0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x00,0x13,0x00,0x28,0x00,0x22,0x40,0x11,0x05,0xb0,0x0f,0x10,0x28,0x20,0xb2,0x29,0x00,0xaf,0x0a,0x17,0x23,0x14, -0x23,0xaf,0x1d,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x10,0xf4,0xc4,0x3f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0x52,0x12,0x1e,0x29,0x18,0x17,0x28,0x1e,0x11, -0x11,0x1e,0x28,0x17,0x16,0x29,0x20,0x12,0xf4,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x03,0xa8,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x28,0x1e,0x12,0x11,0x1e,0x29,0xfb,0x69,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x02,0x00,0x83, -0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x32,0x40,0x0b,0x19,0x17,0x95,0x1c,0x04,0x09,0x30,0xb0,0x26,0x13,0x08,0xb8,0x01,0x03,0x40,0x0c,0x09,0x21,0xaf,0x2b,0x2b,0x19,0x00,0x84,0x12,0x12,0x36,0x19,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14, -0x07,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x31,0x44,0x2a,0x12,0x70,0x0f,0x25,0x3d,0x2d,0x57,0x59,0x21,0x3d,0x55,0x34,0xa9,0x7c,0x99,0xa5, -0x53,0x88,0x60,0x35,0xfe,0xc1,0x11,0x1e,0x28,0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x2a,0x41,0x39,0x3a,0x22,0x4a,0x4e,0x31,0x52,0x4a,0x48,0x29,0x4e,0x8f,0x50,0x31,0x51,0x39,0x20,0x85,0xb0,0x60,0x32,0x5a,0x7f,0xfb,0xb5,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e, -0x12,0x12,0x1e,0x28,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00, -0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b, -0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2, -0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18, -0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2, -0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44, -0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a, -0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17,0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31, -0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31,0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68, -0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1,0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d, -0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0xff,0xff,0x00,0x60,0xff,0xe8,0x05,0x76,0x05,0xf6,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x0e,0x10,0x03,0x70,0x06,0x63,0x00,0x14,0x40,0x0b, -0x02,0x27,0x9d,0x27,0x27,0x10,0x10,0x25,0x02,0x2a,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0xa4,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x54,0x06,0x11,0x00,0x16,0xb1,0x01,0x15,0xb8,0xff,0xb6,0xb7,0x15,0x15,0x05,0x05,0x25,0x01,0x12,0x04,0x00,0x3f,0x35,0x01,0x2b, -0x11,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x8b,0x05,0xf6,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x0e,0x10,0x00,0x85,0x06,0x63,0x00,0x14,0x40,0x0b,0x01,0x0d,0x78,0x0d,0x0d,0x03,0x03,0x25,0x01,0x10,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0xff,0xe4,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00, -0x01,0x07,0x0d,0xfc,0xff,0x70,0x00,0x00,0x00,0x16,0xb1,0x01,0x1f,0xb8,0xff,0x62,0xb7,0x1f,0x1f,0x0a,0x0a,0x25,0x01,0x1f,0x04,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x5e,0xfe,0x05,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x65,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10, -0x06,0x3c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x0f,0x0e,0x10,0x03,0xe5,0x04,0x41,0xc0,0x00,0x00,0x15,0x40,0x0c,0x02,0x32,0x11,0x26,0x02,0x35,0x0b,0x35,0x2f,0x10,0x18,0x25,0x01,0x2b,0x11,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xd6, -0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0x87,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x45,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51, -0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xc5,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xf9,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x0e,0x10,0xed,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x03,0x7f, -0x05,0xf6,0x00,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x79,0x06,0x63,0x00,0x16,0xb1,0x01,0x1e,0xb8,0x01,0x37,0xb7,0x1e,0x1e,0x0a,0x0a,0x25,0x01,0x21,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x79,0xfe,0x05,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x0e,0x10,0x7f,0x00,0xff,0xff, -0x00,0x68,0xfe,0x05,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x0e,0x10,0x14,0x00,0xff,0xff,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x02,0x06,0x0d,0xf7,0x00,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f, -0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, -0x5f,0x2d,0x00,0x01,0x01,0x3d,0xfe,0x05,0x02,0x06,0xff,0x93,0x00,0x12,0x00,0x12,0xb6,0x12,0x0c,0x03,0x0f,0x00,0x0f,0x09,0x2f,0xc1,0xc4,0x12,0x39,0x00,0x2f,0xc4,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x50,0x31,0x21,0x12,0x17,0x24,0x18,0x2b,0x2e,0x33, -0x3d,0x45,0x46,0xfe,0x3a,0x28,0x41,0x17,0x16,0x12,0x0b,0x10,0x22,0x1e,0x22,0x34,0x48,0x45,0x4e,0x7c,0x37,0x00,0xff,0xff,0x00,0x29,0xfe,0x05,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x0e,0x10,0x7a,0x00,0xff,0xff,0x00,0x2b,0xfe,0x05,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x00,0x06,0x0e,0x10, -0xe5,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3d,0x00,0x60,0x40,0x25,0x3b,0x36,0x14,0x0f,0x36,0x0f,0x36,0x0f,0x3f,0x25,0x31,0x28,0x11,0x38,0x38,0x2d,0x1f,0x19,0x0d,0x33,0x0d,0x00,0x01,0x01,0x02,0x0a,0x2d,0x0d,0x26,0x0a,0x0a,0x26,0x0d,0x2d,0x04,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08, -0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x16,0x33, -0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x93,0x17, -0x12,0x4e,0x11,0x64,0x12,0x15,0x28,0x3a,0x26,0x17,0x32,0x1c,0x11,0x36,0x16,0x14,0x10,0x01,0x06,0x07,0x64,0x08,0x10,0x1a,0x12,0x67,0x0a,0x10,0x07,0x12,0x0e,0x23,0x23,0x11,0x63,0x10,0x06,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0x1c,0x05,0x50,0x29,0x24,0x2f,0x2f,0x24,0x40,0x31,0x1c,0x0d, -0x10,0x0f,0x0d,0x03,0x01,0x32,0x6b,0x4a,0x7a,0x77,0x47,0x78,0x74,0x7a,0x49,0x2a,0x4a,0x24,0x05,0x2c,0x25,0x25,0x27,0x26,0x2e,0x12,0x24,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3a,0x00,0x57,0xb3,0x09,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb6,0x2a,0x20,0x20,0x2a,0x30,0x2f,0x1b,0xb8,0x04,0xfd,0x40, -0x11,0x15,0x00,0x01,0x01,0x02,0x0a,0x25,0x0b,0x2f,0x03,0x08,0x15,0x0a,0x15,0x0a,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xcd,0x32,0x11,0x33,0x10,0xed,0x10,0xcd,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, -0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01, -0xce,0x01,0x61,0xbf,0x38,0x3f,0x20,0x07,0x12,0x1e,0x25,0x12,0x24,0x33,0x1e,0x41,0x42,0x23,0x45,0x36,0x22,0x09,0x1b,0x2f,0x26,0x24,0x2d,0x19,0x0a,0x15,0x36,0x5d,0x48,0x33,0x3b,0x1e,0x08,0x11,0x26,0x3f,0x2e,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x01,0xa7,0x34,0x4a,0x32,0x1c,0x06,0x0d,0x0f, -0x08,0x03,0x07,0x08,0x67,0x14,0x0d,0x1c,0x2f,0x22,0x0f,0x2c,0x36,0x3f,0x23,0x10,0x21,0x21,0x21,0x11,0x19,0x33,0x31,0x2f,0x16,0x6c,0x0c,0x16,0x14,0x11,0x06,0x0a,0x14,0x18,0x20,0x17,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x30,0x00,0x4f,0xb1,0x09,0x1d,0xbb,0x05,0x0b,0x00,0x1e,0x00,0x14,0x04,0xfd, -0x40,0x14,0x27,0x0b,0x0b,0x27,0x00,0x01,0x01,0x02,0x0a,0x2c,0x08,0x0f,0x1d,0x0a,0x0a,0x1d,0x0f,0x03,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xcd,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x01,0x2f,0xed, -0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x13,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x23, -0x22,0x34,0x10,0x76,0x07,0x16,0x1c,0x24,0x14,0x13,0x11,0x0a,0x0b,0x0a,0x64,0x0c,0x0f,0x0c,0x4a,0x34,0x21,0x39,0x2e,0x22,0x0a,0x02,0x0d,0x1a,0x11,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0xb5,0x35,0x8b,0x47,0x1b,0x37,0x2b,0x1c,0x17,0x12,0x0f,0x2b,0x4f,0x78,0x5b,0x7a,0x77,0x5e,0x82,0x5a, -0x39,0x15,0x36,0x3e,0x16,0x25,0x31,0x19,0x25,0x3b,0x1f,0x00,0x00,0x02,0x00,0x1e,0xfe,0xa9,0x06,0xd2,0x03,0x61,0x00,0x3b,0x00,0x4d,0x00,0x5d,0xb4,0x38,0x25,0x16,0x10,0x06,0xb8,0x05,0x0a,0xb4,0x25,0x49,0x49,0x25,0x41,0xb8,0x05,0x0a,0xb7,0x2d,0x25,0x2d,0x25,0x2d,0x4f,0x13,0x19,0xb8,0x05,0x0a,0xb3,0x10,0x25,0x05,0x28,0xb8, -0x04,0xfb,0xb5,0x38,0x2f,0x46,0x01,0x46,0x3c,0xb8,0x04,0xfb,0xb4,0x2f,0x32,0x01,0x32,0x1e,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x07,0x15,0x14,0x0e, -0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x25,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x06,0xd2,0x0f,0x2c,0x39,0x43,0x25, -0x49,0x99,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x09,0x08,0xfe,0xc7,0x01,0xeb,0x13,0x13,0x2b,0x64,0xa5,0x7a,0x62,0x8f,0x64,0x3e,0x24,0x0e,0x02,0x2d,0x57,0x28,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x23,0x30,0x0c,0x33,0x5a,0x23,0xfd,0xf3,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x25,0x4d,0x27,0x07,0x27,0x36,0x43, -0x01,0x7c,0x0d,0x20,0x23,0x25,0x11,0x04,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x31,0x6b,0x3a,0x3a,0x72,0x61,0x64,0xa8,0x48,0x5f,0x84,0x54,0x26,0x1a,0x30,0x42,0x50,0x5b,0x30,0x0e,0x0f,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x38,0x91,0x52,0x1c,0x3b,0x1a,0xa6,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0e,0x0d, -0x3a,0x7a,0x63,0x40,0x00,0x04,0x00,0x7c,0x00,0x00,0x05,0x61,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x5e,0xb4,0x0d,0x0e,0x0e,0x00,0x09,0xbb,0x05,0x0c,0x00,0x08,0x00,0x05,0x05,0x0c,0x40,0x0c,0x04,0x0c,0x0f,0x0f,0x04,0x00,0x08,0x04,0x08,0x04,0x11,0x01,0xb8,0x05,0x0c,0xb5,0x00,0x2f,0x0d,0x01,0x0d,0x0c,0xbb, -0x04,0xe6,0x00,0x0a,0x00,0x06,0x04,0xfe,0xb5,0x08,0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33, -0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0xfc,0x12,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00,0x00,0x05,0x00,0x7c,0x00,0x00,0x06,0xd5,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x6d,0xb4,0x01,0x02,0x02, -0x04,0x11,0xbe,0x05,0x0c,0x00,0x10,0x00,0x0d,0x05,0x0c,0x00,0x0c,0x00,0x09,0x05,0x0c,0x40,0x0f,0x08,0x00,0x03,0x03,0x08,0x04,0x10,0x0c,0x08,0x08,0x0c,0x10,0x03,0x15,0x05,0xb8,0x05,0x0c,0xb3,0x04,0x12,0x0e,0x0a,0xb8,0x04,0xfe,0xb6,0x10,0x0c,0x2f,0x09,0x01,0x09,0x06,0xb8,0x04,0xfe,0xb5,0x05,0x2f,0x01,0x01,0x01,0x00,0xb8, -0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x2f,0xed,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x33,0x01,0x33,0x01,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x7c,0x03,0x0d, -0x8f,0xfc,0xf3,0x4b,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x05,0x58,0xfa,0xa8,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0xf7,0xf7,0x00,0x01,0x00,0x76,0xfe,0xf8,0x01,0x8b,0x00,0xe4,0x00,0x03,0x00,0x10,0xb7,0x2f,0x01,0x01,0x01,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0x31,0x30,0x25,0x13, -0x23,0x03,0x01,0x16,0x75,0x75,0xa0,0xe4,0xfe,0x14,0x01,0xec,0x00,0x02,0xff,0xc8,0x06,0x1d,0x02,0x29,0x08,0xde,0x00,0x2b,0x00,0x2f,0x00,0x2c,0xbc,0x00,0x2f,0x05,0x0d,0x00,0x2c,0x00,0x13,0x05,0x0d,0x40,0x09,0x16,0x26,0x09,0x2d,0x14,0x0e,0x1e,0x2c,0x29,0xb9,0x05,0x01,0x00,0x04,0x00,0x2f,0xfd,0xce,0xde,0xcd,0x2f,0x2f,0x01, -0x2f,0xcd,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x11,0x33,0x11,0x02,0x29,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35, -0x3b,0x16,0x1d,0x10,0x0d,0x0d,0x58,0x10,0x1d,0x26,0x15,0x06,0x0c,0x06,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x7f,0x58,0x06,0x8f,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x07,0x17,0x16,0x01,0x76,0xfe,0x7e,0x26,0x34,0x21,0x11,0x03,0x01,0x01,0x01,0x0f,0x12,0x19,0x10,0x09,0x48,0x02,0x0d, -0xfd,0xf3,0x00,0x02,0x00,0x43,0x06,0x1f,0x01,0x6c,0x08,0xbb,0x00,0x16,0x00,0x1a,0x00,0x23,0xb2,0x17,0x17,0x0e,0xbb,0x05,0x0d,0x00,0x07,0x00,0x19,0x04,0xfd,0xb2,0x18,0x0a,0x02,0xb9,0x04,0xfd,0x00,0x13,0x00,0x2f,0xfd,0xd6,0xd6,0xed,0x01,0x2f,0xed,0x33,0x2f,0x31,0x30,0x13,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33, -0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x13,0x23,0x35,0x33,0x43,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0xda,0x57,0x57,0x06,0x90,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0x00,0x37,0x06,0x7c, -0x01,0xcf,0x06,0xca,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x06,0xca,0x4e,0x00,0x02,0x00,0x0d,0x06,0x5c,0x01,0xb5,0x07,0xe2,0x00,0x23,0x00,0x2f,0x00,0x36,0xb2,0x16,0x09,0x13,0xb8,0x05,0x0e,0xb4,0x24,0x19,0x19,0x24,0x2a,0xb8,0x05,0x0e, -0x40,0x0c,0x09,0x16,0x19,0x19,0x20,0x0e,0x27,0x2d,0x03,0x03,0x20,0x1a,0x00,0x2f,0x2e,0xc9,0x2f,0x32,0xd4,0xcd,0x11,0x33,0x2f,0x39,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x32,0x37,0x35,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26, -0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x1e,0x21,0x41,0x26,0x01,0x09,0x06,0x2d,0x1b,0x2b,0x38,0x1d,0x1c,0x34,0x28,0x19,0x3f,0x33,0x05,0x19,0x06,0x2f,0x14,0x23,0x10,0x15,0x2b,0x11,0x28,0x48,0x23,0x01,0x5d,0x2d,0x1b,0x1d,0x30,0x1f,0x17,0x2a,0x35,0x06,0xea,0x08, -0x08,0x01,0x02,0x3c,0x3b,0x22,0x35,0x24,0x13,0x12,0x24,0x36,0x24,0x3b,0x4f,0x17,0x05,0x16,0x05,0x35,0x0f,0x1f,0x0f,0x05,0x03,0x08,0x07,0xb0,0x23,0x22,0x22,0x20,0x1a,0x36,0x19,0x0e,0x32,0x00,0x00,0x01,0x00,0x37,0xff,0x23,0x01,0xcf,0xff,0x71,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30, -0x17,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x8f,0x4e,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x01,0x8b,0x03,0x11,0x02,0x26,0x0e,0x19,0x00,0x00,0x00,0x07,0x00,0x11,0x00,0x00,0x02,0x46,0xff,0xff,0x00,0x9a,0xfe,0x63,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x64,0xff,0xff,0x00,0x9a, -0xfe,0x0e,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0x1a,0x01,0x06,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x5b, -0x00,0x1a,0x01,0x06,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, -0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab, -0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53, -0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x0f,0x00,0x35, -0x00,0x41,0xb1,0x0d,0x24,0xb8,0x05,0x0b,0xb4,0x30,0x30,0x37,0x15,0x2a,0xb8,0x05,0x03,0x40,0x09,0x30,0x24,0x24,0x21,0x0c,0x20,0x04,0x00,0x12,0xb8,0x04,0xff,0xb5,0x2f,0x19,0x01,0x19,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x33,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xed, -0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33, -0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7, -0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0x00,0x01,0x00,0x52,0xff,0xea,0x04,0x02,0x03,0xba,0x00,0x24,0x00,0x29,0xb1,0x1b,0x0f,0xb8,0x05,0x0a,0xb5,0x06,0x1c,0x21,0x14,0x14,0x03,0xbd,0x04,0xfb,0x00,0x0b, -0x00,0x21,0x05,0x03,0x00,0x15,0x05,0x03,0x00,0x3f,0x3f,0xc4,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x52,0x61,0xa6,0x39,0x92,0x7f,0x1c,0x31,0x40,0x24, -0xa6,0x38,0x4d,0x1d,0x07,0x18,0x2d,0x46,0x36,0x16,0x21,0x3f,0x38,0x2d,0x0f,0x05,0x1a,0x51,0x64,0x75,0x3e,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x47,0x4e,0x2e,0x92,0xb0,0xc3,0x5f,0xa7,0xfe,0xe3,0x80,0x20,0x4d,0x43,0x2d,0xa7,0x10,0x23,0x39,0x29,0x2d,0x3c,0x25,0x0f,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x05,0x5d, -0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0xad,0x00,0x01,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x03,0x0f,0x00,0x58,0x00,0x83,0xb1,0x13,0x08,0xb8,0x05,0x0a,0xb2,0x05,0x1e,0x54,0xb8,0x05,0x0a,0xb3,0x51,0x27,0x27,0x49,0xb8,0x05,0x0a,0x40,0x0a,0x42,0x05,0x51,0x42,0x42,0x51,0x05,0x03,0x5a,0x38,0xb8,0x05,0x0a, -0x40,0x0e,0x31,0x2f,0x53,0x01,0x53,0x2f,0x46,0x01,0x46,0x2f,0x35,0x01,0x35,0x3d,0xb8,0x04,0xfb,0xb6,0x1f,0x2c,0x2f,0x2c,0x02,0x2c,0x4c,0xba,0x04,0xfb,0x00,0x23,0x05,0x03,0xb6,0x26,0x12,0x1d,0x03,0x06,0x0d,0x00,0xba,0x04,0xfb,0x00,0x18,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x12,0x17,0x39,0x3f, -0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07, -0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x07,0x57,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c, -0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03,0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x9b,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, -0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0x00,0x01, -0xff,0xba,0xff,0xf2,0x06,0xae,0x03,0x0f,0x00,0x4d,0x00,0x68,0xb5,0x27,0x39,0x1e,0x46,0x13,0x08,0xbe,0x05,0x0a,0x00,0x05,0x00,0x49,0x05,0x0a,0x00,0x46,0x00,0x3c,0x05,0x0a,0x40,0x17,0x39,0x48,0x2f,0x3a,0x01,0x3a,0x26,0x1d,0x06,0x13,0x18,0x12,0x12,0x06,0x18,0x41,0x34,0x34,0x33,0x33,0x0d,0x0d,0x00,0xb8,0x04,0xfb,0xb3,0x2c, -0x23,0x0e,0x18,0xb8,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0x2f,0x5d,0x33,0x01,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x39,0x12,0x39,0x11,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33, -0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x04,0xab,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e, -0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, -0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31, -0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x00,0x4b,0x00,0x5f,0x00,0x7b,0xbf,0x00,0x26,0x05,0x0a,0x00,0x1f,0x00,0x5d,0x05,0x0a,0x00,0x2b,0x00, -0x37,0x05,0x0a,0x40,0x0a,0x51,0x2b,0x51,0x1f,0x51,0x1f,0x51,0x0e,0x3d,0x15,0xb8,0x05,0x0a,0x40,0x0a,0x0e,0x5d,0x5d,0x4c,0x4c,0x3c,0x3c,0x42,0x04,0x2b,0xbd,0x04,0xfb,0x00,0x3d,0x00,0x47,0x05,0x03,0x00,0x56,0x04,0xfb,0x40,0x0d,0x2f,0x32,0x01,0x32,0x2f,0x23,0x01,0x23,0x2f,0x12,0x01,0x12,0x1a,0xb8,0x04,0xfb,0xb5,0x1f,0x09, -0x2f,0x09,0x02,0x09,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x39,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, -0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0xf8,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81, -0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x46,0x38,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xa1,0xe7,0x9d,0x5e,0x02,0x99,0x6b, -0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x03,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b, -0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x03,0x08,0x9d,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0x00,0x00,0x02,0xff,0xba,0xff,0xea,0x08,0x04,0x03,0x3c,0x00,0x42,0x00,0x54,0x00,0x64,0xbc,0x00,0x52,0x05,0x0a,0x00,0x27,0x00,0x33,0x05,0x0a,0xb7,0x48,0x27,0x48,0x27, -0x48,0x1b,0x39,0x22,0xbd,0x05,0x0a,0x00,0x1b,0x00,0x39,0x05,0x03,0x00,0x4d,0x04,0xfb,0x40,0x13,0x2f,0x2e,0x01,0x2e,0x2f,0x1e,0x01,0x1e,0x52,0x52,0x43,0x43,0x38,0x38,0x27,0x27,0x3e,0x09,0x15,0xbc,0x04,0xfb,0x00,0x0e,0x05,0x03,0x00,0x00,0x05,0x03,0x00,0x3f,0x3f,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x2f, -0x5d,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03, -0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x04,0xe7,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c, -0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x3e,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x16,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f, -0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x50, -0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x4c,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2f,0x2f,0x0b,0x3b,0x24,0xb8,0x05,0x0a,0x40,0x11,0x21,0x0b,0x25,0x1b, -0x15,0x23,0x15,0x15,0x0b,0x3b,0x3b,0x2a,0x2a,0x1e,0x1e,0x10,0x0a,0xbd,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x34,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x11,0x33,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33, -0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54, -0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e, -0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x00,0x02,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x43,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2a,0x2a,0x3a,0x36,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x1c,0x20,0x0c,0x1e, -0x36,0x36,0x25,0x25,0x18,0xb8,0x04,0xff,0xb3,0x11,0x0c,0x0c,0x11,0xbb,0x05,0x03,0x00,0x2f,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35, -0x34,0x36,0x33,0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2, -0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01, -0x00,0x02,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x50,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x33,0x33,0x0b,0x3f,0x28,0xb8,0x05,0x0a,0xb6,0x25,0x0b,0x29,0x15,0x27,0x1a,0x15,0xb8,0x05,0x03,0x40,0x0a,0x3f,0x3f,0x2e,0x2e,0x22,0x22,0x21,0x21,0x10,0x0a,0xbd,0x04,0xff,0x00,0x0b,0x05,0x03,0x00,0x38,0x04,0xfb, -0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x3f,0x33,0x2f,0x12,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x36,0x37, -0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, -0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25, -0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae, -0x05,0xec,0x02,0x26,0x0e,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03, -0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00, -0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, -0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50, -0x00,0x0a,0xb4,0x01,0x2f,0x4b,0x01,0x4b,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6e,0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6e, -0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0xf9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x03,0xb9,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba, -0xfe,0xa6,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9a, -0xff,0x55,0x05,0x91,0x06,0x11,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xd1,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51, -0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50, -0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x2e,0x00,0x4f,0x00,0x66,0xb1,0x1e,0x13,0xbe,0x05,0x0a,0x00,0x10,0x00,0x4a,0x05,0x0b,0x00,0x31,0x00,0x42,0x05,0x0b,0x40,0x0a, -0x39,0x10,0x31,0x39,0x39,0x31,0x10,0x03,0x51,0x03,0xbe,0x05,0x0a,0x00,0x2b,0x00,0x3e,0x04,0xfd,0x00,0x3f,0x00,0x2f,0x04,0xfd,0xb5,0x4f,0x1e,0x23,0x18,0x18,0x0b,0xbc,0x04,0xfb,0x00,0x23,0x05,0x03,0x00,0x19,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x2f,0xfd,0xd4,0xed, -0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27, -0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x64,0x75,0x20,0x04,0x26,0x6f,0x87,0x9b,0x53,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f, -0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0xac,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x34,0x1a,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x57,0x0b, -0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x00,0x2c,0x00,0x2e,0x40,0x11,0x11,0x15,0x12,0x03,0x00,0x14,0x2f,0x13,0x01,0x13,0x27,0x27,0x26,0x26,0x21,0x21, -0x06,0xbb,0x04,0xfb,0x00,0x22,0x00,0x00,0x05,0x03,0x00,0x3f,0x32,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23, -0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40,0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x17,0x47,0x68,0x8d,0x5d,0x0e,0x34,0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b,0x8a,0x4a, -0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x22,0x3a,0x2b,0x18,0x00,0x00,0x02,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x00,0x2f,0x00,0x41,0x00,0x54,0xb9,0x00,0x3d,0x01,0x52,0xb5,0x1f,0x1f,0x16,0x1a,0x06,0x2b,0xbb,0x05,0x0a,0x00,0x35,0x00,0x11,0x05,0x0a,0xb4,0x1a,0x0e,0x05,0x09,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x26, -0x01,0x26,0x2f,0x16,0x01,0x16,0x09,0xb8,0x05,0x03,0xb3,0x1f,0x30,0x30,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x3f,0x2f,0x5d,0x2f,0x5d,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x39,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23, -0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42, -0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24, -0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x02,0xaf,0x00,0x30,0x00,0x40,0x00,0x32,0xb2,0x31,0x08,0x3c,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x24,0x01,0x24,0x34,0x30,0x30,0x0d,0x05,0x17,0xb8,0x04,0xfb,0xb4,0x10, -0x08,0x08,0x00,0x10,0xb8,0x05,0x03,0x00,0x3f,0x33,0x33,0x2f,0x10,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33, -0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0xad,0x16,0x5b,0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4, -0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0xff,0xff,0x00,0x9b, -0xfd,0xff,0x05,0x58,0x03,0x5c,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x03,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53,0x00,0x2d,0x00,0x3f,0x00,0x50,0x00,0x63,0xb3,0x12, -0x1f,0x17,0x24,0xb8,0x05,0x0a,0xb2,0x4b,0x46,0x43,0xb8,0x05,0x0b,0xb6,0x31,0x4b,0x31,0x4b,0x31,0x52,0x3b,0xbf,0x05,0x0a,0x00,0x17,0x00,0x49,0x04,0xfc,0x00,0x29,0x05,0x03,0x00,0x36,0x04,0xfc,0x40,0x10,0x1c,0x00,0x46,0x40,0x1c,0x04,0x05,0x1e,0x2f,0x1f,0x01,0x1f,0x2e,0x0f,0x0f,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00, -0x3f,0xed,0x32,0x11,0x33,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27,0x35,0x16,0x04,0x16,0x16, -0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0x3b,0x26,0x61,0x6c,0x73,0x37,0x9e,0x23,0x23,0x23,0x23,0x3a,0x72,0x3a,0x84,0x38,0x01,0x4a,0x60,0x38,0x15,0x25,0x43,0x5c, -0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x34,0x20,0x20,0x33,0x02,0x03,0x04,0x1e,0x44,0x4d,0x55,0x2f,0x37,0x79,0x6c, -0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x00,0x2a, -0x00,0x3c,0x00,0x4d,0x00,0x63,0xb3,0x0f,0x1c,0x14,0x21,0xb8,0x05,0x0a,0xb2,0x48,0x43,0x40,0xb8,0x05,0x0b,0xb6,0x2e,0x48,0x2e,0x48,0x2e,0x4f,0x38,0xbf,0x05,0x0a,0x00,0x14,0x00,0x46,0x04,0xfc,0x00,0x26,0x05,0x03,0x00,0x33,0x04,0xfc,0x40,0x10,0x19,0x00,0x43,0x3d,0x19,0x04,0x05,0x1b,0x2f,0x1c,0x01,0x1c,0x2b,0x0e,0x0e,0x0c, -0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x32,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27, -0x35,0x16,0x04,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0xe6,0x23,0x59,0x63,0x69,0x33,0x55,0x80,0x23,0x20,0x52,0x9c,0x51,0x80,0x3b,0x01,0x4a,0x60,0x38, -0x15,0x25,0x43,0x5c,0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x0b,0x05,0xa7,0x0a,0x08,0x03,0x04,0x1e,0x44,0x4d,0x55, -0x2f,0x37,0x79,0x6c,0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0xff,0xba,0xfd,0xff,0x04,0x02, -0x03,0x56,0x00,0x2c,0x00,0x3c,0x00,0x4c,0x00,0x59,0xb1,0x19,0x0c,0xb8,0x05,0x0a,0xb5,0x32,0x47,0x47,0x32,0x3c,0x3d,0xb8,0x05,0x0a,0x40,0x09,0x12,0x00,0x25,0x2d,0x13,0x13,0x12,0x12,0x00,0xb8,0x04,0xfb,0xb3,0x3d,0x16,0x14,0x25,0xba,0x05,0x03,0x00,0x42,0x04,0xfb,0xb6,0x1f,0x1e,0x2f,0x1e,0x02,0x1e,0x37,0xb8,0x04,0xfb,0xb3, -0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17,0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x27,0x23, -0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0xb4,0x15,0x41,0x4e,0x55,0x51,0x49,0x1b,0x2f,0x54,0x3f,0x25,0x16,0x27,0x34,0x1d,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x27,0x49,0x66,0x3f,0x24,0x54,0x55,0x50,0x3f, -0x29,0x04,0xab,0x23,0x23,0x23,0x23,0x01,0xd0,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x16,0x1a,0x47,0x47,0x3d,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x27,0x22,0x2e,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x99,0x85,0xcf,0x9c,0x6c,0x43,0x1e,0x45,0x6d,0x87,0x43,0x35,0x5d,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x79,0x3f,0x33,0x5f,0x49,0x2d,0x14,0x2e, -0x4b,0x6f,0x96,0x61,0x34,0x20,0x20,0x33,0x33,0x53,0x69,0x36,0x28,0x55,0x45,0x2d,0x47,0x88,0xc6,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x55,0xb2,0x1f,0x1f,0x1c,0xb8,0x05,0x0a,0xb4,0x36,0x0b,0x0b,0x36,0x32,0xb8, -0x05,0x0a,0xb2,0x11,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x27,0x1f,0x24,0x2f,0x24,0x02,0x24,0x2d,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x16,0x01,0x16,0x36,0x35,0x35,0x1d,0x1d,0x1c,0xbb,0x04,0xfb,0x00,0x1e,0x00,0x0b,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0x33, -0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c, -0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54, -0x56,0x48,0xbf,0x6d,0xa7,0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf2,0x03,0x0f,0x02,0x06,0x0e,0x6f,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x02,0x06,0x09,0x3b,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6, -0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xa1,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x60,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26, -0xb8,0x05,0x0d,0xb5,0x1f,0x22,0x22,0x1f,0x00,0x31,0xbb,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0xb4,0x36,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed, -0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63, -0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37, -0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x01,0x6b,0x58,0x57,0x58,0x00,0x03,0xff,0xd8,0x06,0x60,0x02,0x2c,0x08,0x21,0x00,0x1e,0x00,0x35,0x00,0x41,0x00,0x4c,0xb4,0x14,0x39,0x04,0x32,0x11,0xbe,0x05,0x0d,0x00,0x39,0x00,0x22,0x05,0x0d,0x00,0x32,0x00,0x3f,0x05,0x0d,0xb4,0x07,0x36,0x1b,0x1e, -0x0c,0xb8,0x04,0xfd,0x40,0x0a,0x3c,0x00,0x1f,0x35,0x04,0x14,0x27,0x2d,0x2d,0x00,0xb9,0x05,0x00,0x00,0x1e,0x00,0x2f,0xed,0x32,0x2f,0xdd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, -0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x88,0x2d,0x58,0x2e,0x01,0x2e,0x2b,0x1a,0x2d,0x3c,0x22,0x24,0x3d,0x2c,0x19, -0x2a,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x27,0x2e,0x23,0x23,0x2f,0x31,0x06,0xb0,0x04,0x0e,0x13,0x05,0x1f,0x4e,0x2d,0x24,0x3b,0x2b,0x18,0x18,0x2b,0x39,0x21,0x33,0x4c,0x21,0x08,0x09,0x05,0x4a,0x0a,0x15, -0x0b,0x21,0x1d,0x05,0x01,0x86,0x17,0x41,0x2a,0x0e,0x14,0x02,0x02,0x28,0x21,0x26,0x2c,0x17,0x27,0x35,0x1e,0x4d,0x74,0x24,0xfe,0xe1,0x18,0x3a,0x21,0x22,0x29,0x27,0x20,0x26,0x3a,0x00,0x00,0x04,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x29,0x00,0x2f,0x00,0x4e,0x00,0x65,0x00,0x71,0x00,0xaa,0x40,0x0a,0x44,0x2c,0x34,0x03,0x12,0x52, -0x52,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x62,0x62,0x12,0x15,0x15,0x12,0x12,0x41,0x41,0x03,0xb8,0x05,0x0d,0x40,0x0d,0x2c,0x69,0x69,0x2c,0x2f,0x2f,0x2c,0x0a,0x26,0x1f,0x6f,0x6f,0x37,0xb8,0x05,0x0d,0xb3,0x26,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x09,0x1f,0x22,0x22,0x1f,0x00,0x4b,0x66,0x4e,0x3c,0xb8,0x04,0xfd,0x40, -0x0a,0x6c,0x30,0x4f,0x65,0x34,0x44,0x57,0x5d,0x5d,0x30,0xb8,0x05,0x00,0xb6,0x4e,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xde,0xed,0x32,0x2f,0xcd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xe4,0x33, -0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x11,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x11,0x12,0x39,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36, -0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02, -0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0xb9,0x2d,0x58,0x2e,0x01,0x2e,0x28,0x1c,0x2d,0x3a,0x1f, -0x1f,0x3b,0x2e,0x1c,0x28,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x25,0x32,0x1e,0x1d,0x31,0x2e,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30, -0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x8e,0x04,0x0e,0x13,0x05,0x1d,0x49,0x2b,0x27,0x3a,0x27,0x13,0x13,0x25,0x38,0x25,0x30,0x48,0x20,0x08,0x09,0x05,0x4a,0x0a,0x15,0x0b,0x21,0x1b,0x05,0x01,0x78,0x15,0x3d,0x26,0x0e,0x12,0x02,0x02,0x28,0x21,0x26,0x2c,0x16,0x26,0x33,0x1d,0x4b,0x70, -0x23,0xfe,0xed,0x16,0x35,0x1f,0x23,0x23,0x23,0x21,0x23,0x33,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x04,0x00,0x2f,0x00,0x33,0x00,0x5e,0xb4,0x0a,0x31,0x23,0x23,0x30,0xbb,0x05,0x0b,0x00,0x31,0x00,0x26,0x05,0x0d,0xb5,0x22,0x22,0x31,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40, -0x0d,0x2c,0x2f,0x2f,0x2c,0x00,0x33,0x30,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xd6,0xcd,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x11,0x33,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02, -0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x92,0x74,0x74,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x64,0x01,0x6a,0x00,0x00,0x03, -0xff,0x6c,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3d,0x00,0x4b,0x00,0x69,0xb2,0x3a,0x11,0x37,0xb8,0x05,0x0d,0xb5,0x3e,0x09,0x09,0x3e,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2b,0x06,0x06,0x46,0xb8,0x05,0x0d,0xb7,0x2d,0x0e,0x09,0x0a,0x25,0x22,0x1f,0x32,0xb8,0x04,0xfd,0xb3,0x41,0x3a,0x49,0x28,0xb8,0x04,0xfd,0xb4,0x1f,0x16, -0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15, -0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36, -0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a, -0x2f,0x3b,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00, -0x00,0x02,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0x3b,0x00,0x18,0x00,0x1c,0x00,0x3f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb7,0x11,0x11,0x1d,0x1a,0x0e,0x09,0x0a,0x1a,0xb8,0x04,0xfd,0xb4,0x1b,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f, -0x10,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x25,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21, -0xfe,0x92,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xb8,0x58,0x00,0x03,0xff,0xf8,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3c,0x00,0x4a,0x00,0x65,0xb3,0x39,0x18,0x11,0x36,0xb8,0x05,0x0d,0xb5,0x3d,0x09,0x09,0x3d,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2a, -0x06,0x06,0x45,0xb8,0x05,0x0d,0xb4,0x2c,0x0e,0x09,0x0a,0x31,0xb8,0x04,0xfd,0xb3,0x40,0x39,0x48,0x26,0xb8,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x12,0x39,0x01, -0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02, -0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34, -0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14,0x27,0x3a, -0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x03,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0xea,0x00,0x18,0x00,0x1c,0x00,0x20,0x00,0x41,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb4,0x11,0x0e,0x09,0x0a,0x1a,0xbb,0x04,0xfd,0x00,0x1b,0x00,0x1e,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18, -0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01, -0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x01,0x67,0x58,0x57,0x58,0x00,0x00,0x03, -0x00,0x49,0x05,0x26,0x01,0xbd,0x08,0x42,0x00,0x17,0x00,0x2b,0x00,0x37,0x00,0x55,0xbc,0x00,0x1d,0x05,0x0d,0x00,0x2f,0x00,0x06,0x05,0x0d,0xb3,0x0e,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb5,0x0b,0x27,0x0e,0x09,0x0a,0x18,0xbb,0x04,0xfd,0x00,0x32,0x00,0x2c,0x04,0xfd,0xb4,0x22,0x15,0x17,0x17,0x15,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c, -0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0xed,0x39,0x2f,0x39,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x2d,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x70,0x28,0x45,0x31,0x1c,0x1c,0x31,0x45,0x28,0x2a,0x45,0x30,0x1b,0x1b,0x31,0x44,0x2a,0x30,0x30,0x30, -0x30,0x30,0x30,0x30,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x33,0x3a,0x21,0x37,0x28,0x16,0x06,0x01,0xbf,0x1c,0x31,0x42,0x26,0x26,0x42,0x30,0x1c,0x1c,0x30,0x42,0x26,0x26,0x42,0x31,0x1c,0xfe,0xee,0x33,0x2a,0x29,0x35,0x35,0x29,0x2a,0x33,0x00,0x00,0x03,0x00,0x05,0xfe,0x00,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c, -0x00,0x20,0x00,0x3d,0xb1,0x0e,0x06,0xbe,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0x00,0x1a,0x00,0x1f,0x04,0xfd,0xb2,0x1e,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09,0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31, -0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04, -0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfd,0x9d,0x58,0x01,0x07,0x58,0x00,0x00,0x02,0x00,0x05,0xfe,0xaf,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c,0x00,0x35,0xb1,0x0e,0x06,0xbb,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0xb2,0x1a,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09, -0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, -0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfe,0x4c,0x58,0xff,0xff,0x00,0x4f,0xfe,0xf8,0x01,0x64,0x00,0xe4,0x00,0x06,0x00,0x0f,0x28,0x00,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59, -0x03,0x0f,0x00,0x2e,0x00,0x3c,0xb1,0x0c,0x01,0xb8,0x05,0x0a,0xb3,0x2d,0x2d,0x30,0x20,0xb8,0x05,0x0a,0x40,0x0a,0x19,0x2f,0x2e,0x01,0x2e,0x2f,0x1d,0x01,0x1d,0x11,0xb8,0x05,0x03,0xb2,0x0c,0x28,0x06,0xba,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x3f,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39, -0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40, -0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0x03,0x0f,0xfe,0x89,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0x00,0x01,0xff,0xba,0xff,0xf2, -0x01,0xf2,0x03,0x0f,0x00,0x16,0x00,0x1e,0xbe,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0f,0x05,0x03,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c, -0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x00,0x00,0x02,0x00,0x9b,0xfd,0xff,0x06,0x03,0x02,0xb7,0x00,0x30,0x00,0x41,0x00,0x65,0xb2,0x13,0x13,0x10,0xb8,0x05,0x0a,0xb4,0x3f,0x30,0x30,0x3f,0x3b,0xb8,0x05,0x0a,0xb6,0x05, -0x3f,0x05,0x3f,0x05,0x43,0x24,0xb8,0x05,0x0a,0xb5,0x1d,0x2f,0x21,0x01,0x21,0x29,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x18,0x2f,0x18,0x02,0x18,0x3f,0x3e,0x3e,0x10,0xbd,0x04,0xfb,0x00,0x00,0x00,0x12,0x05,0x03,0x00,0x36,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d, -0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e,0x03,0x23,0x22, -0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e,0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86, -0x65,0x04,0x0e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19,0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49, -0x03,0x62,0x02,0x06,0x09,0x3c,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x02,0x06,0x09,0x3d,0x00,0x00,0xff,0xff,0x00,0x49,0x04,0x7c,0x01,0xa2,0x05,0xe9,0x00,0x07,0x09,0x7e,0x00,0x00,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01, -0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe7,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0x00,0x0e,0xb6,0x04,0x03,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, -0xff,0xba,0xff,0xf2,0x03,0xa3,0x05,0x3e,0x00,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x3e,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x21,0x02,0xac, -0x00,0x00,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xb9,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff, -0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, -0x0f,0x52,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff, -0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca, -0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff, -0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, -0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x16,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x4c,0x01,0x4c,0x00,0x11, -0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d, -0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, -0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xf4,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0xab, -0x00,0xf5,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea, -0x04,0x02,0x05,0x5d,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d, -0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0x07,0x02,0x26,0x0e,0x31, -0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x06,0xae,0x04,0x07,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x03,0x0f,0x02,0x26,0x0e,0x31, -0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x03,0x0f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46, -0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, -0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x05,0xca,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x05,0xca,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e, -0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x3b, -0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x08,0x04,0x03,0x62,0x00,0x41,0x00,0x55,0x00,0x5c,0xb1,0x10,0x0d,0xbb,0x05,0x0a,0x00,0x42,0x00,0x4e,0x05,0x0a,0xb6,0x00,0x42,0x00,0x42,0x00,0x57,0x2f,0xb8,0x05,0x0a,0xb5,0x28,0x2f,0x2c,0x01,0x2c,0x1f,0xb8,0x05,0x03,0x40,0x09,0x53,0x1a,0x05, -0x14,0x3c,0x3c,0x39,0x39,0x13,0xbc,0x04,0xfb,0x00,0x14,0x05,0x03,0x00,0x49,0x04,0xfb,0xb3,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03, -0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb0,0x30,0x55,0x74,0x44, -0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b, -0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35, -0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7, -0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, -0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5, -0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x05,0x91,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c, -0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x00,0x43,0x00,0x49,0xb4,0x13,0x05,0x05,0x1b,0x37,0xb8,0x05,0x0a,0x40,0x0c,0x30,0x1b,0x2f,0x34,0x01, -0x34,0x0a,0x0e,0x0b,0x03,0x0c,0x28,0xb8,0x05,0x03,0xb5,0x3f,0x20,0x20,0x1f,0x1f,0x1a,0xba,0x04,0xfb,0x00,0x1b,0x05,0x03,0xb4,0x0d,0x2f,0x0c,0x01,0x0c,0x00,0x2f,0x5d,0x33,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x2f,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x10,0xcd,0x31,0x30,0x25,0x3e,0x03,0x35,0x34,0x2e,0x02, -0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x05,0x4b,0x25,0x32,0x1c,0x0c,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40, -0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x22,0x53,0x44,0x27,0x5d,0x74,0x90,0x5a,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4f,0x80,0x66,0x4f,0xad,0x0a,0x1d,0x26,0x2d,0x1a,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b, -0x8a,0x4a,0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x2d,0x3d,0x15,0x0c,0x10,0x09,0x03,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x02,0x05,0x0a,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x06,0x0e,0x56,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xea, -0x08,0xaf,0x04,0x19,0x00,0x48,0x00,0x52,0xb9,0x00,0x25,0x05,0x0a,0xb2,0x1a,0x3b,0x30,0xb8,0x05,0x0a,0xb4,0x11,0x0e,0x0e,0x11,0x14,0xb8,0x04,0xfb,0xb7,0x2b,0x2b,0x1f,0x3b,0x41,0x35,0x35,0x07,0x41,0x09,0x04,0xfb,0x00,0x41,0x05,0x03,0x00,0x32,0x04,0xfb,0x00,0x36,0x05,0x03,0x00,0x20,0x04,0xfb,0xb3,0x2f,0x1f,0x01,0x1f,0x00, -0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x39,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x04,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14, -0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x06,0x04,0x21,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc7,0xd4,0xd8,0x65,0x72,0xbb,0x9d,0x83,0x72,0x68,0x33,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f, -0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4b,0x1a,0x04,0x0c,0x21,0x14,0x76,0xfe,0x25,0xfe,0xa9,0x47,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x01,0x02,0x02,0x05,0x06,0x04,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66, -0x38,0x23,0x2c,0x05,0x03,0xa7,0x2c,0x29,0x16,0x21,0x0e,0x0a,0x0e,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0x19,0x00,0x4d,0x00,0x61,0xb1,0x3f,0x34,0xb8,0x05,0x0a,0x40,0x09,0x15,0x12,0x12,0x24,0x15,0x15,0x1e,0x3a,0x29,0xbb,0x05,0x0a,0x00,0x1e,0x00,0x18,0x04,0xfb,0xb3,0x2f,0x2f,0x23, -0x47,0xbc,0x05,0x03,0x00,0x3a,0x05,0x03,0x00,0x24,0x04,0xfb,0x40,0x0c,0x2f,0x23,0x01,0x23,0x3f,0x00,0x39,0x36,0x36,0x0d,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x11,0x39,0x2f,0x5d,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x39,0x33,0x2f,0x10,0xed, -0x39,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07, -0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e,0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4c,0x19,0x04,0x0b, -0x22,0x14,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x23,0x2c,0x05,0x03,0xa7,0x2d,0x28,0x15,0x22,0x0e, -0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea, -0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x07,0xcb,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73, -0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, -0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59, -0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xc3, -0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xc3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39, -0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00, -0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27, -0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x08,0xbd,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x4f,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x5d,0x35,0x35, -0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x08,0xbd,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x3c,0x01,0x20,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e, -0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x07,0x67,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x08,0x7f,0x02,0x26,0x09,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e, -0xb6,0x01,0x03,0x02,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x72,0xb1,0x0e,0x01,0xbb,0x05,0x0a,0x00,0x27,0x00,0x2a,0x05,0x0c,0xb2,0x29,0x29,0x2d,0xbb,0x05,0x0c,0x00,0x2e,0x00,0x31,0x05,0x0c,0x40,0x0a,0x32,0x27,0x2e, -0x32,0x32,0x2e,0x27,0x03,0x36,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x29,0x04,0xfb,0xb2,0x2c,0x31,0x2d,0xb8,0x04,0xfb,0x40,0x0c,0x33,0x2f,0x30,0x01,0x30,0x1a,0x0d,0x00,0x11,0x11,0x22,0x06,0xbb,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x00,0x00,0x2f,0x3f,0xed,0x32,0x33,0x2f,0x12,0x39,0x2f,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01, -0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x23,0x35,0x33,0x37,0x23,0x35,0x33, -0x05,0x23,0x35,0x33,0x04,0x9e,0x0c,0x27,0x49,0x3e,0x1a,0x23,0x4c,0x48,0x3e,0x14,0x03,0x41,0xda,0xa3,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xfc,0xc9,0xc9,0xab,0xc9,0xc9,0xfe,0xaa,0xc9,0xc9,0x05,0xec,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x10,0x27,0x44,0x35,0x56,0x5a,0x45, -0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x2e,0x67,0xa7,0x79,0x03,0x9c,0xf7,0xd8,0xbd,0x5b,0xbd,0xbd,0xbd,0x00,0x03,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x2c,0x34,0x30,0xb8,0x05,0x0c,0x40,0x09,0x31,0x35,0x31,0x2c,0x31, -0x2c,0x31,0x39,0x22,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x34,0x04,0xfb,0xb4,0x2f,0x37,0x01,0x37,0x30,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x33,0x01,0x33,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed, -0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, -0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e, -0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50, -0x00,0x83,0xfe,0xab,0x00,0x01,0x00,0x9b,0xfd,0xff,0x05,0x58,0x01,0xc1,0x00,0x2a,0x00,0x4a,0xb2,0x0b,0x00,0x0c,0xb8,0x05,0x0a,0xb5,0x2a,0x27,0x27,0x2c,0x1a,0x1d,0xb8,0x05,0x0a,0x40,0x0b,0x19,0x16,0x2f,0x2a,0x01,0x2a,0x2f,0x1a,0x01,0x1a,0x22,0xb8,0x04,0xfb,0xb7,0x1f,0x11,0x2f,0x11,0x02,0x11,0x0c,0x06,0xba,0x04,0xfb,0x00, -0x07,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, -0x26,0x27,0x04,0x84,0x08,0x09,0x06,0x09,0x55,0x5f,0x16,0x3f,0x4a,0x17,0x05,0x03,0x3c,0x82,0xcf,0x95,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0x2d,0x54,0x2a,0x3f,0x3e,0xa7,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, -0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x0e,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0xff,0xba, -0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0x00,0x03,0x00,0x9b,0xfe,0x55,0x05,0x58,0x04,0xb6,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x39,0x14,0x17,0xb8,0x05,0x0e,0xb2,0x44,0x23,0x21,0xb8,0x05,0x0e,0xb5,0x4a,0x44,0x4a,0x44,0x4a, -0x3d,0xb8,0x05,0x0c,0xb6,0x3e,0x39,0x3e,0x39,0x3e,0x4e,0x2f,0xbb,0x05,0x0a,0x00,0x28,0x00,0x40,0x01,0x57,0xb5,0x3d,0x2f,0x3c,0x01,0x3c,0x1c,0xb8,0x05,0x00,0xb3,0x41,0x14,0x23,0x47,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x34,0x01,0x34,0x2f,0x2c,0x01,0x2c,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d, -0x2f,0x5d,0xfd,0x39,0x39,0xd6,0xed,0x2f,0x5d,0xd6,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, -0x02,0x35,0x34,0x37,0x2e,0x03,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x39,0x35,0x14,0x04,0x2b,0xa3,0x80,0x14,0x17,0x1a,0x2b,0x3a, -0x20,0x23,0x3b,0x2b,0x19,0x21,0x6e,0x95,0x5b,0x27,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0x63,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x03,0x17,0x5e,0xab,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x60,0x7d,0x18,0x15,0x38,0x21,0x20,0x3a,0x2c,0x19,0x19,0x2c,0x39, -0x21,0x3b,0x2a,0x0b,0x4d,0x7e,0xab,0x68,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0xea,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07, -0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x04,0x74,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53, -0x02,0x06,0x0e,0x5b,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x03,0x56,0x02,0x06,0x0e,0x5d,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x04,0x11, -0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfc,0x28,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x03,0x5c,0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x02,0xac,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00, -0xfd,0xfe,0x04,0x02,0x03,0x1c,0x00,0x2c,0x00,0x41,0x00,0x6a,0xb2,0x12,0x2b,0x37,0xb8,0x05,0x0a,0xb2,0x13,0x20,0x2b,0xb8,0x05,0x0a,0xb4,0x18,0x3f,0x3f,0x18,0x12,0xb8,0x04,0xfd,0xb6,0x2f,0x15,0x01,0x15,0x15,0x0d,0x1b,0xb8,0x04,0xfb,0xb6,0x2f,0x3c,0x3f,0x3c,0x02,0x3c,0x32,0xb8,0x04,0xfb,0xb5,0x2f,0x25,0x01,0x25,0x0a,0x0d, -0xb8,0x04,0xfb,0x40,0x09,0x09,0x1f,0x06,0x2f,0x06,0x02,0x06,0x18,0x2b,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x16, -0x16,0x33,0x32,0x3e,0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x25,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x04,0x02,0xc3,0x0d,0x3f,0x72,0xab,0x79,0x58,0xad,0x58,0x67,0xab,0x45,0x3e,0x60,0x48,0x33, -0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x30,0x56,0x2a,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0xb7,0xfe,0x96,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0x0e,0x62,0xb5,0x8a,0x53,0x2c,0x2a,0xa6,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11, -0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d,0x4f,0x9e,0xee,0x9f,0x09,0xef,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x59,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, -0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, -0xfd,0xff,0x04,0x02,0x05,0x91,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6d, -0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba, -0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54, -0x00,0x83,0xfd,0xce,0x00,0x01,0x00,0x81,0x06,0xa6,0x01,0x86,0x07,0xab,0x00,0x13,0x00,0x19,0xbc,0x00,0x0a,0x05,0x0c,0x00,0x00,0x00,0x05,0x04,0xfe,0xb3,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x81,0x13,0x23,0x2f,0x1d, -0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x07,0x28,0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x13,0x23,0x2f,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff, -0xff,0xba,0xfe,0xa6,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x00,0x26,0x0e,0x35,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x07,0x0f,0x50,0x06,0x3c,0xfe,0xab,0xff,0xff, -0xff,0xba,0xfe,0xa6,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x0f, -0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x55,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x21,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca, -0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07, -0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07, -0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07, -0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83, -0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0x5a,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff, -0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27, -0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x52,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0x13,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c, -0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x56,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xab,0xfe,0xa6, -0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90, -0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x57, -0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x02,0x26,0x0e,0x57,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, -0x04,0xad,0x02,0xaf,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0x00,0x04,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x82,0xb1,0x11,0x03,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x31,0x05,0x0c,0xb2,0x30,0x30,0x38,0xbe,0x05,0x0c,0x00,0x39,0x00,0x34,0x05,0x0c,0x00, -0x35,0x00,0x22,0x05,0x0a,0x40,0x0e,0x1b,0x2c,0x39,0x35,0x1b,0x1b,0x35,0x39,0x2c,0x04,0x3d,0x3c,0x38,0x34,0xb8,0x04,0xfb,0xb5,0x3a,0x2f,0x37,0x01,0x37,0x33,0xb8,0x01,0x57,0xb5,0x30,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00, -0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xd6,0xed,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, -0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94, -0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xab,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xbd,0xbd,0x00,0xff,0xff, -0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x06,0x64,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff, -0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0xba,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x63,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f, -0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x14,0x40,0x0a,0x02,0x2f,0x25,0x01,0x25,0x01, -0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0x00,0x03,0x00,0x7e, -0xfd,0xfe,0x04,0x2d,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x6a,0xb4,0x24,0x02,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb2,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0xb7,0x28,0x44,0x28,0x44,0x28,0x4e,0x10,0x21,0xbb,0x05,0x0a,0x00,0x02,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x0f,0x2a,0x2f,0x2f, -0x01,0x2f,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35, -0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x2b,0xad,0x53,0xa8,0xfe, -0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0xfd,0xfe, -0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f, -0x33,0x43,0x24,0x00,0x00,0x04,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x7e,0xb2,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb5,0x44,0x58,0x58,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0x40,0x0b,0x28,0x44,0x28,0x44,0x28,0x5c,0x24,0x02,0x4d,0x10,0x21,0xbf,0x05,0x0a,0x00,0x02,0x00,0x50,0x04,0xfb,0x00, -0x52,0x05,0x03,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2a,0x2f,0x2f,0x01,0x2f,0x1b,0x07,0x1c,0x4d,0x04,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x3f,0xed,0x01,0x2f, -0xed,0x39,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33, -0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5, -0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x06,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xba,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35, -0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x02,0x43,0x68,0x55, -0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0x00,0x05,0x00,0x7e,0xfd,0xfa,0x04,0x2d, -0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x50,0x00,0x54,0x00,0x9d,0xb9,0x00,0x52,0x05,0x0a,0xb7,0x51,0x51,0x44,0x24,0x02,0x1b,0x1b,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4,0x2c,0x4c,0x28,0x28,0x4d,0xb8,0x05,0x0a,0xb7,0x4e,0x44,0x4e,0x44,0x4e,0x56,0x10,0x21,0xb8,0x05,0x0a,0xb4,0x02,0x2c,0x2a,0x52,0x4d, -0xb8,0x05,0x02,0xb2,0x53,0x50,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2f,0x2f,0x3f,0x2f,0x02,0x2f,0x2f,0x2a,0x01,0x2a,0x1c,0x07,0x1b,0x03,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x2f,0x5d, -0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04, -0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63, -0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xb9,0xb9,0x01,0x42,0xb9,0xb9, -0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38, -0x1f,0x33,0x43,0x24,0xfe,0x83,0xb5,0xb5,0xb5,0x00,0x00,0x06,0x00,0x7e,0xfd,0xfa,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x5e,0x00,0x62,0x00,0xb1,0xb2,0x24,0x02,0x4d,0xb8,0x05,0x0b,0xb3,0x58,0x58,0x44,0x60,0xb8,0x05,0x0a,0xb3,0x34,0x5f,0x5f,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4, -0x2c,0x4c,0x28,0x28,0x5b,0xb8,0x05,0x0a,0xb7,0x5c,0x44,0x5c,0x44,0x5c,0x64,0x10,0x21,0xb8,0x05,0x0a,0xb2,0x02,0x5f,0x5b,0xb8,0x04,0xfb,0x40,0x0a,0x61,0x2f,0x5e,0x01,0x5e,0x51,0x50,0x50,0x2f,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0xb3,0x2c,0x52,0x2a,0x2f,0xba,0x04, -0xfb,0x00,0x52,0x05,0x03,0xb6,0x4d,0x1c,0x07,0x1b,0x04,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x3f,0xf4,0xc6,0x12,0x39,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, -0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x10,0xe4,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54, -0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x33,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xe7,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfe,0x86,0xb9,0xb9, -0x01,0x42,0xb9,0xb9,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e, -0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x01,0xdf,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xfc,0xac,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0x68,0x02,0xdb,0x00,0x42,0x00,0x50,0x00,0x54,0x00,0x58,0x00,0x92,0xb1,0x0d,0x30,0xb8,0x05,0x0e,0xb2,0x48,0x48,0x55,0xb8,0x05,0x0a,0xb2,0x56,0x50,0x27,0xb8,0x05,0x0d, -0xb2,0x3f,0x3f,0x51,0xb8,0x05,0x0a,0x40,0x09,0x52,0x56,0x52,0x56,0x52,0x5a,0x15,0x55,0x51,0xb8,0x04,0xfb,0x40,0x09,0x57,0x54,0x43,0x3e,0x3e,0x43,0x3b,0x3b,0x35,0xb8,0x04,0xfd,0xb4,0x2f,0x43,0x01,0x43,0x4b,0xb8,0x04,0xfd,0x40,0x0b,0x27,0x2f,0x2b,0x01,0x2b,0x20,0x0c,0x21,0x03,0x00,0x12,0xb8,0x04,0xff,0xb7,0x2f,0x19,0x01, -0x19,0x26,0x3f,0x3f,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0xd6,0x5d,0xed,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd4,0x32,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22, -0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x03,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e, -0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x79,0x66,0x5c,0x65,0x76,0x4e,0x20,0x2c,0x75,0x95,0xb4,0x6a,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e, -0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x30,0x25,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x09,0x41,0x57,0x5f,0x27,0x7a,0x01,0x3d,0x42,0x22,0x39,0x4b,0x29,0x3a, -0x40,0x1e,0x05,0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe6,0x17,0x1c,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0xad,0x02,0xdb,0x00,0x4f,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0xa7,0xb1,0x0d,0x3d,0xb8,0x05,0x0e,0xb6,0x55,0x55,0x62,0x63,0x30,0x30,0x24, -0xba,0x05,0x0b,0x00,0x62,0x05,0x0a,0xb2,0x63,0x5d,0x34,0xb8,0x05,0x0d,0xb2,0x4c,0x4c,0x5e,0xb8,0x05,0x0a,0x40,0x09,0x5f,0x63,0x5f,0x63,0x5f,0x67,0x66,0x62,0x5e,0xb8,0x04,0xfb,0xb2,0x64,0x61,0x42,0xb8,0x04,0xfd,0x40,0x0a,0x50,0x4b,0x4b,0x48,0x48,0x2f,0x50,0x01,0x50,0x58,0xb8,0x04,0xfd,0xb5,0x34,0x2f,0x38,0x01,0x38,0x2a, -0xb8,0x05,0x03,0xb7,0x30,0x24,0x21,0x0c,0x20,0x05,0x00,0x12,0xb8,0x04,0xff,0x40,0x09,0x2f,0x19,0x01,0x19,0x33,0x4c,0x4c,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x3f,0x2f,0x5d,0x33,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11, -0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xfd,0xe4,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02, -0x27,0x06,0x06,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57, -0x4e,0x7e,0x33,0x37,0x84,0x4e,0x4f,0x7a,0x66,0x5c,0x64,0x77,0x4e,0x20,0x1d,0x46,0x2a,0x03,0x14,0x35,0x5c,0x4a,0x14,0x62,0x7c,0x49,0x1e,0x04,0x48,0xad,0x67,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e,0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23, -0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x2f,0x26,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x06,0x22,0x17,0x27,0x36,0x23,0x10,0xa7,0x29,0x45,0x59,0x31,0x2a,0x5a,0x25,0x7a,0x01,0x3c,0x43,0x22,0x39,0x4b,0x29,0x3a,0x40,0x1e,0x05, -0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe5,0x17,0x1b,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x07,0x0d,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02, -0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x07,0x0d,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4, -0x07,0x0d,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07,0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x07,0x0d,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07, -0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x07,0x0d,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x1d,0x01,0x1d,0x00,0x11,0x5d, -0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x07,0x0d,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x06,0x8c,0x02,0x26,0x09,0x13,0x00,0x00, -0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x06,0x8c,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x06,0x13,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad, -0x06,0x13,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x17,0x00,0x00,0x01,0xf2,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00,0xff,0xff,0x00,0x17,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00, -0xff,0xff,0x00,0x16,0x00,0x00,0x01,0xfa,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00, -0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x45,0x01,0x2f,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba, -0xfe,0xa6,0x02,0x4c,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab, -0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae, -0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x68,0x01,0x2f,0x68,0x01,0x68,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x96,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88, -0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x91, -0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x01,0x07,0x0f,0x60,0x02,0x01,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x43,0x01,0x43,0x00,0x11, -0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0x75,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x33,0x01,0x33,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a, -0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x17,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x17,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff, -0x00,0x16,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x16,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65, -0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff, -0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a, -0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x7e,0xfd,0xfe,0x04,0x2c,0x03,0x54,0x00,0x24,0x00,0x4a,0x00,0x65,0xb9,0x00,0x3e,0x05,0x0b,0xb5,0x31,0x31,0x38,0x24,0x02,0x37,0xb8,0x05,0x0d,0xb4,0x38,0x38,0x4c,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x37,0x01,0x37,0x47,0x25,0x28,0x2e,0xb8,0x04,0xfd, -0x40,0x13,0x41,0x4a,0x4a,0x41,0x41,0x2f,0x25,0x01,0x25,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01, -0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01, -0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x01,0xd3,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd, -0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x02,0xd6,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35, -0x1c,0x00,0x00,0x03,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x32,0x00,0x58,0x00,0x81,0xb5,0x24,0x55,0x33,0x03,0x02,0x25,0xbb,0x05,0x0b,0x00,0x30,0x00,0x4c,0x05,0x0b,0xb2,0x3f,0x3f,0x45,0xb8,0x05,0x0d,0xb7,0x46,0x30,0x46,0x30,0x46,0x5a,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x45,0x01,0x45,0x55,0x33, -0x36,0x3c,0xb8,0x04,0xfd,0x40,0x0a,0x4f,0x58,0x58,0x4f,0x4f,0x2f,0x33,0x01,0x33,0x28,0xba,0x04,0xfb,0x00,0x2a,0x05,0x03,0x40,0x0a,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x3f,0xed,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d, -0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x17,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36, -0x36,0x07,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8, -0x58,0x5d,0x58,0x02,0x89,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x96,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d, -0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x03,0x58,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x7a,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0xff,0xff,0xff,0xba, -0xfd,0x78,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x52,0x01,0x52, -0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x50,0x02,0x26,0x09,0x19,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x50,0x02,0x26,0x0e,0x31,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd, -0x00,0x0a,0xb4,0x01,0x2f,0x75,0x01,0x75,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x50,0x02,0x26,0x08,0xd4,0x00,0x00,0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x5f,0x01,0x5f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x50,0x02,0x26,0x0e,0x32,0x00,0x00, -0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0xb8,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0a,0x6e,0x05,0x46,0xfc,0xdc,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0xb8,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0a,0x6e, -0x05,0x46,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x04,0xb8,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x04,0xb8,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26, -0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba, -0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0x00,0x01,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x00,0xb0,0x00,0x03,0x00,0x19,0xbc,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x35,0x33,0x01, -0x5d,0xb9,0xb9,0x05,0xb5,0x00,0x00,0x02,0x00,0x03,0xff,0xfb,0x01,0xfe,0x00,0xb0,0x00,0x03,0x00,0x07,0x00,0x29,0xb9,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01,0x08,0x04,0xb8,0x05,0x0a,0xb2,0x05,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17, -0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x00,0x02,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x25,0xb1,0x04,0x00,0xb8,0x05,0x0a,0xb2,0x05,0x01,0x07,0xbb,0x05,0x02,0x00,0x04,0x00,0x02,0x05,0x02,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xfd,0xd6,0xed, -0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x05,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x5d,0xb9,0xb9,0xb9,0xb9,0x05,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x41,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01, -0x0c,0x08,0xb8,0x05,0x02,0xb6,0x0b,0x0b,0x00,0x07,0x06,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, -0xa1,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x37,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb2,0x01,0x04,0x00,0xb8,0x05,0x02,0xb3,0x06,0x03,0x03,0x0a,0xb8,0x05,0x02,0xb3,0x2f,0x08,0x01, -0x08,0x00,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd6,0xed,0xd4,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x01,0x13,0xb5,0xb5,0xb5,0xfe,0x33,0xb5,0x00,0x00,0x03,0xff,0x62,0xff,0xfb,0x02,0x9f,0x00,0xb0,0x00,0x03,0x00,0x07, -0x00,0x0b,0x00,0x35,0xbf,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0xb5,0x01,0x01,0x0c,0x0a,0x06,0x02,0xb8,0x05,0x02,0xb5,0x09,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0xed,0x32,0x32,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35, -0x33,0x05,0x23,0x35,0x33,0x1b,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x3f,0xb1,0x08,0x00,0xb8,0x05,0x0a,0xb5,0x09,0x01,0x01,0x10,0x0c,0x04,0xb8,0x05,0x0a,0xb3,0x0d,0x05,0x0d,0x08,0xb8, -0x05,0x02,0xb4,0x0e,0x0b,0x0b,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, -0xfe,0xbe,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xc6,0x00,0x00,0x02,0x2c,0x02,0x62,0x00,0x19,0x00,0x27,0x00,0x44,0xb2,0x27,0x27,0x06,0xb8,0x05,0x0d,0xb3,0x03,0x03,0x28,0x0f,0xb8,0x05,0x0e,0xb4,0x1f,0x06,0x14,0x05,0x0a,0xb8,0x05,0x01,0xb7,0x22,0x00,0x27,0x1a,0x1a,0x03,0x03, -0x00,0xb8,0x05,0x01,0xb4,0x2f,0x14,0x01,0x14,0x02,0x00,0x3f,0x5d,0xed,0x32,0x2f,0x33,0x11,0x33,0x10,0xd4,0xfd,0xc6,0x12,0x39,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x27,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35, -0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x3a,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x72,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04, -0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x00,0x02,0xff,0x97,0x06,0x7d,0x01,0xf0,0x07,0xe8,0x00,0x1b,0x00,0x29,0x00,0x2b,0xbf,0x00,0x0e,0x05,0x0d,0x00,0x21,0x00,0x09,0x04,0xfd,0x00,0x24,0x00,0x1c,0x04,0xfd,0xb3,0x13,0x27,0x13,0x03,0xb8,0x04,0xfd,0xb1,0x18,0x13,0x00,0x2f,0xdc,0xed,0x11,0x39,0x10,0xfd, -0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x69,0x2f,0x4d,0x27,0x0c,0x15,0x0b,0x24,0x77,0x4d,0x27,0x3c,0x29,0x16,0x21,0x39,0x4b,0x2a,0x20, -0x3e,0x3a,0x38,0x19,0x16,0x39,0x23,0x01,0x57,0x1c,0x2b,0x1e,0x10,0x2c,0x1f,0x27,0x4e,0x20,0x1a,0x37,0x06,0xcd,0x20,0x21,0x02,0x03,0x70,0x6f,0x1b,0x2d,0x3a,0x20,0x29,0x49,0x37,0x20,0x10,0x14,0x10,0x13,0x1b,0x56,0x13,0x1e,0x25,0x13,0x22,0x27,0x46,0x53,0x0a,0x0f,0x00,0x01,0x00,0x00,0x04,0x82,0x03,0x4b,0x07,0x38,0x00,0x03, -0x00,0x11,0xb6,0x03,0x01,0x00,0x2f,0x02,0x01,0x02,0x00,0x2f,0x5d,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x11,0x35,0x01,0x15,0x03,0x4b,0x04,0x82,0x94,0x02,0x22,0x94,0x00,0x00,0x01,0x00,0x89,0xfe,0x0a,0x01,0x93,0xff,0xfa,0x00,0x1c,0x00,0x17,0xb9,0x00,0x03,0x05,0x0b,0xb2,0x17,0x1c,0x12,0xb9,0x04,0xfe,0x00,0x08,0x00,0x2f,0xfd,0xc4, -0x01,0x2f,0xed,0x31,0x30,0x05,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x5d,0x36,0x3a,0x06,0x0c,0x19,0x0e,0x1b,0x29,0x1b,0x0e,0x0f,0x1d,0x2c,0x1d,0x27,0x39,0x24,0x11,0x14,0x2a,0x44,0x30,0x46,0x17,0x57,0x33,0x17,0x16,0x03,0x05,0x14,0x20, -0x29,0x16,0x16,0x2b,0x21,0x15,0x22,0x3a,0x4c,0x2b,0x2c,0x54,0x49,0x3e,0x16,0x00,0x00,0x02,0x00,0x60,0xfd,0xff,0x01,0xa1,0xff,0x40,0x00,0x0b,0x00,0x17,0x00,0x2d,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x06,0x05,0x00,0xb4,0x2f,0x0c,0x01,0x0c,0x12,0xb8,0x05,0x00,0xb3,0x2f,0x00,0x01,0x00,0x00, -0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x02,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0xc0,0x5d,0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6, -0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x01,0x00,0x1e,0x04,0x20,0x02,0x8e,0x04,0x8d,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x8e,0xfd,0x90,0x02,0x70,0x04,0x20,0x6d,0x00,0x00,0x02,0x00,0x3c,0xfd,0xff,0x01,0xc5,0xff,0x67,0x00,0x03, -0x00,0x07,0x00,0x21,0xbc,0x00,0x04,0x05,0x0b,0x00,0x05,0x00,0x00,0x05,0x0b,0xb2,0x01,0x04,0x00,0xb8,0x04,0xfe,0xb1,0x06,0x03,0x00,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0xb5,0x79,0x79,0x01,0x10,0x79,0x79,0xfd,0xff,0x01,0x68,0xfe,0x98,0x01,0x68,0x00,0x01,0x00,0x17, -0x05,0x44,0x01,0x77,0x07,0x6e,0x00,0x0f,0x00,0x17,0xb9,0x00,0x09,0x05,0x0d,0xb2,0x0a,0x09,0x01,0xb9,0x05,0x01,0x00,0x02,0x00,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x17,0x01,0x60,0xee,0x09,0x0d,0x09,0x04,0x59,0x08,0x0f,0x16,0x07,0x6e,0x66,0x2c,0x4e,0x50, -0x58,0x35,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x00,0x01,0x00,0x16,0x05,0x44,0x01,0xfa,0x07,0x6e,0x00,0x33,0x00,0x44,0xb9,0x00,0x31,0x05,0x0d,0xb2,0x2c,0x18,0x1c,0xb8,0x05,0x0d,0xb3,0x07,0x2e,0x1d,0x0a,0xb8,0x05,0x0d,0x40,0x0b,0x04,0x1c,0x18,0x02,0x0f,0x24,0x2f,0x2f,0x07,0x29,0x02,0xb8,0x05,0x01,0xb3,0x0f,0x15,0x15,0x0f,0x00, -0x2f,0x33,0x2f,0x10,0xfd,0x32,0xc6,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0x39,0x39,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17, -0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x01,0x36,0x13,0x12,0x45,0x08,0x07,0x59,0x10,0x12,0x24,0x34,0x22,0x14,0x2d,0x19,0x0f,0x30,0x14,0x11,0x0f,0x01,0x06,0x06,0x59,0x07,0x0f,0x17,0x10,0x5c,0x09,0x0e,0x06,0x0f,0x0e,0x1f,0x1f,0x0f,0x58,0x0f,0x06,0x06,0xe6,0x04,0x47,0x12,0x24,0x0f,0x29,0x2b,0x20,0x39, -0x2c,0x19,0x0c,0x0e,0x0d,0x0c,0x03,0x01,0x2d,0x5f,0x42,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x41,0x26,0x42,0x20,0x04,0x27,0x21,0x23,0x21,0x23,0x28,0x10,0x20,0x00,0x01,0x00,0x30,0x05,0x44,0x01,0xd9,0x07,0x73,0x00,0x25,0x00,0x2b,0xb9,0x00,0x19,0x05,0x0b,0xb2,0x0c,0x0c,0x12,0xb8,0x05,0x0d,0xb6,0x13,0x13,0x22,0x03,0x25,0x25,0x1c, -0xb8,0x05,0x01,0xb1,0x03,0x09,0x00,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0xd9,0x1e,0x2e,0x0f,0x69,0x06,0x14, -0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0x07,0x6e,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0x00,0x01,0x00,0x9a,0xff,0xd2,0x06,0xae, -0x02,0xbd,0x00,0x42,0x00,0x4c,0xb9,0x00,0x14,0x05,0x0a,0xb2,0x2f,0x2f,0x0f,0xb8,0x05,0x0a,0xb3,0x34,0x34,0x44,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x39,0x01,0x39,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d, -0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x41,0x63,0x4d,0x3a,0x2f,0x27,0x14,0x1a,0x2b,0x1d,0x1c,0x1f,0x12,0x15,0x12,0x29,0x48,0x60,0x6e,0x76,0x39,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0xa0,0x91,0x10,0x13,0x10,0x21,0x3a,0x4e,0x2c,0x3d,0x65,0x2a,0x12,0x1e,0x21,0x29,0x3a,0x50,0x99,0xa7,0x22, -0x3a,0x4c,0x53,0x55,0x25,0x33,0x2e,0x24,0x17,0x11,0x27,0x2d,0x36,0x20,0x2e,0x4a,0x39,0x28,0x1b,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x41,0x38,0x14,0x29,0x2b,0x31,0x1d,0x27,0x45,0x33,0x1e,0x41,0x4d,0x20,0x49,0x47,0x41,0x32,0x1d,0x00,0xff,0xff,0xff,0xa2,0x00,0x26,0x02,0xd4,0x06,0xbf, -0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0x00,0x26,0x02,0xd4,0x07,0x78,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0x00,0x72,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, -0x09,0x7f,0x72,0x00,0x00,0x01,0x00,0x72,0x00,0x26,0x02,0xd4,0x05,0x58,0x00,0x03,0x00,0x0c,0xb4,0x02,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x25,0x01,0x33,0x01,0x02,0x32,0xfe,0x40,0xa6,0x01,0xbc,0x26,0x05,0x32,0xfa,0xce,0xff,0xff,0xff,0x97,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, -0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0xc2,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x01,0x20,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff, -0x00,0x3a,0x00,0x26,0x02,0xf8,0x05,0xe9,0x02,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x17,0x00,0x26,0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5e,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x04,0x01,0x04,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x16,0x00,0x26, -0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5f,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0x00,0x01,0xff,0xc8,0xff,0xf2,0x05,0x49,0x03,0x0f,0x00,0x37,0x00,0x4b,0xb9,0x00,0x1a,0x05,0x0a,0xb2,0x17,0x23,0x0d,0xbb,0x05,0x0a,0x00,0x0a,0x00,0x00,0x05,0x0a,0xb3,0x30, -0x30,0x30,0x33,0xb8,0x04,0xff,0xb6,0x2f,0x34,0x01,0x34,0x23,0x12,0x05,0xbc,0x04,0xfb,0x00,0x28,0x05,0x03,0x00,0x1f,0x05,0x03,0xb4,0x18,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, -0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x01,0x47,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x5b,0x84,0x24, -0x04,0x1a,0x42,0x47,0x48,0x21,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x01,0x95,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x36,0x45,0x23,0x2f,0x1d,0x0c,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c, -0x09,0x08,0x00,0x01,0xff,0xc8,0xff,0xf2,0x06,0x03,0x03,0x0f,0x00,0x44,0x00,0x5c,0xb1,0x35,0x2a,0xb8,0x05,0x0a,0xb2,0x27,0x40,0x1d,0x41,0x09,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x08,0x00,0x3a,0x05,0x03,0x00,0x30,0x05,0x03,0xb7,0x28,0x2f,0x1b,0x01,0x1b,0x08,0x08,0x0b,0xb8,0x04,0xff,0x40,0x0b,0x2f,0x0c,0x01,0x0c, -0x40,0x35,0x00,0x2f,0x22,0x22,0x15,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x39,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xc6,0x3f,0x3f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x39,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e, -0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x01,0xea,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e, -0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x0e,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c,0x09,0x08,0x64,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc, -0xfe,0x8f,0x43,0x62,0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x00,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07, -0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x04,0x07,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x04,0x07,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07, -0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x03,0x0f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x03,0x0f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x05,0x1f, -0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0xf9,0xfd,0xce,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x05,0x1f, -0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f, -0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff, -0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x07,0x0d,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0xf9,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0xf9,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x3d,0x01,0x3d,0x00, -0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x07,0x0d,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0xf9,0x04,0xab,0x01,0x07,0x0f,0x51,0x01,0xf9,0x03,0x57,0x00,0x0c,0xb5,0x04,0x03,0x20,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x50,0x02,0x26,0x0f,0x6c, -0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x50,0x02,0x26,0x0f,0x6d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2, -0x05,0x49,0x04,0xb8,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x04,0xb8,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0x00,0x02,0xff,0xc8,0xff,0xea,0x06,0xa0,0x03,0x3c,0x00,0x30,0x00,0x42,0x00,0x44,0xb9,0x00,0x0c,0x05,0x0a,0xb7, -0x36,0x36,0x44,0x40,0x00,0x20,0x20,0x23,0xb8,0x04,0xff,0x40,0x09,0x2f,0x24,0x01,0x24,0x40,0x40,0x31,0x31,0x00,0xbc,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x3b,0x04,0xfb,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x3e, -0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0xd4,0x18,0x4c,0x67,0x81,0x9a,0xb3,0x66,0x79,0xae,0x70,0x36,0x2d,0x52,0x71, -0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x02,0xa7,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9b,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55, -0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x0a,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x02,0xff,0xc8,0xff,0xea,0x07,0x59,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x50,0xb9,0x00,0x05,0x05, -0x0a,0x40,0x09,0x47,0x47,0x0b,0x3f,0x33,0x0b,0x22,0x22,0x25,0xb8,0x04,0xff,0xb4,0x2f,0x26,0x01,0x26,0x15,0xb8,0x05,0x03,0xb6,0x42,0x3f,0x3f,0x33,0x33,0x10,0x0a,0xbc,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x3a,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x2f,0x5d,0xed, -0x32,0x2f,0x01,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x3e,0x05,0x17,0x22,0x0e,0x02,0x07,0x16,0x16,0x33,0x32, -0x3e,0x02,0x35,0x34,0x2e,0x02,0x04,0xd3,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x29,0x18,0x4c,0x67,0x81,0x9a, -0xb3,0x4c,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9d,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x03,0x3c,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x02,0x41,0x96,0x95, -0x8b,0x6a,0x40,0xa9,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73, -0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x03,0x3c,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x03,0x3c,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x05,0xca,0x02,0x26,0x0f,0x82, -0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5, -0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5,0xfe,0xab,0x00,0x01,0xfd,0xa6,0xff,0xea,0x01,0x47,0x05,0xec,0x00,0x15,0x00,0x1a,0xbf,0x00,0x0b,0x05,0x0a,0x00,0x08,0x00,0x03,0x04,0xfb,0x00,0x12,0x05,0x03,0x00, -0x0a,0x00,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x23,0x3f,0x5a,0x6e,0x81,0x46,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0x60,0x56,0x77,0x4f,0x2c,0x15,0x05, -0x0a,0x0e,0x00,0x01,0xfd,0xa6,0xff,0xea,0x02,0x01,0x05,0xec,0x00,0x1e,0x00,0x29,0xb1,0x16,0x0b,0xb8,0x05,0x0a,0xb5,0x08,0x16,0x1b,0x10,0x10,0x03,0xbd,0x04,0xfb,0x00,0x1b,0x05,0x03,0x00,0x11,0x05,0x03,0x00,0x0a,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02, -0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x0f,0x2a,0x48,0x39,0x16,0x5a,0x6d,0x1e,0x04,0x1d,0x56,0x6d,0x82,0x4a,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0xac,0x47,0x62,0x3c,0x1a,0xa7,0x3b, -0x3c,0x2d,0x33,0x19,0x06,0x0a,0x0e,0x00,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0x4f,0x07,0x67,0x02,0x26, -0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x07,0x67,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xf0,0x08,0x7f,0x02,0x26,0x0f,0x8c,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03, -0x02,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x08,0x7f,0x02,0x26,0x0f,0x8d,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x29,0x01,0x29,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x01,0xf0,0x05,0xec,0x02,0x26, -0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xfb,0x05,0xec,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0xff,0xff,0xfd,0xa6, -0xff,0xea,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0x00,0x01,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x00,0x22,0x00,0x2c,0xbc,0x00,0x0b,0x05,0x0a,0x00,0x1b,0x00,0x16,0x04,0xfb,0x40,0x09,0x1f,0x10,0x2f,0x10,0x02,0x10,0x08,0x08,0x06,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00, -0x00,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x3e,0x03,0x03,0x35,0x1d,0x20,0x28,0x2c,0x3c,0x30,0x11,0x14,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0x7c,0x59, -0x55,0x74,0x45,0x1e,0x2d,0x20,0x2a,0x5b,0x57,0x4e,0x02,0x0a,0x2f,0x1d,0x1e,0x32,0x03,0x52,0x9c,0x46,0x8a,0xd4,0x90,0x4a,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x76,0xda,0x67,0x06,0x09,0x06,0x03,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57, -0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0xb9,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6d,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00, -0x00,0x07,0x0f,0x5b,0x01,0xc9,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x2b,0xfe,0x00,0xff,0xff,0x00,0x39,0xfd,0xe1,0x04,0x6a,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x42,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x27,0x01,0x27, -0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x2b,0xfe,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39, -0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x87,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x5c, -0x00,0xf9,0xfc,0x4f,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xbc,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x07,0x0d,0x02,0x26, -0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0x0c,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0x0c,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x05,0x74,0x04,0x21,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x4d, -0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50,0x00,0x0a,0xb4,0x01,0x2f,0x3d,0x01,0x3d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x03,0xb9,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc, -0x03,0x09,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xd1,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0x00,0x01,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x00,0x36,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2c,0x2c,0x38,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00, -0x04,0xff,0xb4,0x2f,0x31,0x01,0x31,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06, -0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0x43,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x01, -0x6e,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23,0x2f,0x1d,0x1e,0x32,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00, -0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0xdd,0x05,0x3e,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0x3b,0xfd,0x55,0x00,0x01,0x00,0x1e,0xff,0x02,0x06,0x1f,0x02,0x0a,0x00,0x38,0x00,0x58,0xb9,0x00,0x1d,0x05,0x0a,0xb5,0x2d,0x2d,0x16,0x0b,0x05,0x32,0xb8,0x05,0x0a,0xb3,0x16,0x16, -0x3a,0x0e,0xb8,0x05,0x0a,0x40,0x0d,0x05,0x08,0x08,0x05,0x09,0x0a,0x0a,0x0b,0x0b,0x22,0x08,0x08,0x28,0xb8,0x04,0xff,0xb4,0x2f,0x22,0x01,0x22,0x00,0xb8,0x04,0xfb,0xb3,0x2f,0x13,0x01,0x13,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x11,0x39, -0x11,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x03,0x5c,0x98,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3, -0x0e,0x12,0x24,0x5d,0xa2,0x7e,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x2c,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0xfe,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23, -0x2f,0x1d,0x1e,0x32,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x00,0x07,0x0f,0x54, -0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5f, -0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x9a,0xff,0xd2,0x05,0x74, -0x02,0xbd,0x00,0x32,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2a,0x2a,0x34,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00,0x04,0xff,0xb4,0x2f,0x2d,0x01,0x2d,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39, -0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x38,0x40,0x1f,0x07,0x0c,0x0f,0x0d,0x29,0x47,0x60,0x70,0x7b, -0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xa9,0x96,0x0e,0x12,0x0e,0xae,0xa1,0x1d,0x20,0x28,0x01,0x6e,0x0a,0x10,0x12,0x07,0x0c,0x15,0x19,0x20,0x17,0x2d,0x48,0x37,0x27,0x19,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x30,0x29,0x0e,0x1a,0x1c,0x21,0x17,0x59,0x61, -0x2f,0x1d,0x1e,0x32,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32, -0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x04,0xad,0xfd,0xf2,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x02,0x09,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10, -0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f, -0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x06,0xae,0xfb,0xf1,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27, -0x04,0x0a,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5, -0x03,0x3d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26, -0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72, -0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x02,0x06,0x0f,0xab,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00, -0x00,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xfe,0x0e,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0x00,0x01,0xff,0xf1,0xff,0xf2,0x01,0x47,0x05,0x7e,0x00,0x0d,0x00,0x1a,0xbf,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0d,0x05,0x03,0x00,0x07,0x00, -0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x27,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x09,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x99,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce,0x65,0x86,0x4f,0x20,0x00,0x00,0x01,0xff,0xea,0xff,0xf2,0x02,0x24,0x04,0xe8,0x00,0x1c,0x00,0x22,0xb9,0x00,0x00,0x05,0x0a,0xb5, -0x1a,0x10,0x0d,0x1c,0x15,0x05,0xbb,0x04,0xfb,0x00,0x14,0x00,0x0d,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x2f,0x12,0x39,0x01,0x2f,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x47,0x0c,0x26,0x46,0x39,0x16,0x16,0x06,0x0d, -0x13,0x0c,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x0a,0x1c,0x41,0x36,0x24,0x9c,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x31,0x1f,0x10,0x1f,0x19,0x0f,0x40,0x3b,0x3f,0x3c,0xa7,0x13,0x2c,0x47,0x34,0x03,0x95,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x25,0x03,0xd7,0x00,0x21,0x00,0x2f,0x00,0x48,0xb9,0x00,0x15,0x05,0x0a,0xb5,0x12,0x05,0x2a,0x2a, -0x31,0x22,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x2b,0x04,0xfc,0xb2,0x12,0x14,0x2a,0xb8,0x04,0xfc,0x40,0x0a,0x15,0x14,0x05,0x05,0x00,0x2f,0x14,0x01,0x14,0x1a,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xdd,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x31,0x30,0x05,0x22, -0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x03,0xec,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x17,0x18,0x07, -0x0e,0x16,0xfd,0x3d,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x0e,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x31,0x1e,0x10,0x20,0x19,0x0f,0x01,0xea,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0xff,0xff,0x00,0x39,0xfd,0xff, -0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0c,0x03,0x57,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0x77,0x05,0xb2,0x00,0x23,0x00,0x65,0x40,0x38,0x82,0x16,0x01,0x76,0x0a,0x01,0x63,0x09,0x01,0x6a,0x07,0x7a,0x07,0x02,0x1a,0x1d,0x1f,0x18,0x1b,0x7e,0x01,0x00,0x03,0x22,0x05,0x01,0x01,0x25,0x0e,0x0c, -0x7e,0x0f,0x11,0x0e,0x0f,0x1f,0x22,0x91,0x01,0x1c,0x02,0x05,0x18,0x91,0x1b,0x02,0x0f,0x02,0x0f,0x02,0x20,0x12,0x08,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xc4,0xc4,0xde,0xc4,0x10,0xfd,0xc4,0xc4,0xde,0xc4,0x31, -0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x35,0x23,0x35,0x33,0x35,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x02,0x52,0xbe,0xbe,0xbe,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0xbf,0xbf,0xbf,0xbf,0xa8, -0xbe,0x02,0x33,0x6e,0x84,0xbb,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x84,0x6e,0x84,0xfe,0x51,0x01,0xaf,0x00,0x00,0x01,0x00,0x65,0xff,0xe8,0x04,0xb6,0x05,0xb2,0x00,0x31,0x00,0xed,0x40,0xa0,0x6a,0x31,0x7a,0x31,0x8a,0x31,0x03,0x7a,0x30,0x01,0x68,0x30,0x01,0x08,0x2c,0x01,0x8c,0x2b, -0x01,0x6b,0x2b,0x7b,0x2b,0x02,0x56,0x24,0x01,0x56,0x23,0x01,0x37,0x23,0x01,0x57,0x20,0x01,0x88,0x19,0x01,0x49,0x19,0x01,0x8b,0x18,0x01,0x4a,0x18,0x01,0x86,0x17,0x01,0x77,0x17,0x01,0x83,0x16,0x93,0x16,0x02,0x61,0x16,0x71,0x16,0x02,0x07,0x16,0x01,0x85,0x13,0x95,0x13,0x02,0x76,0x13,0x01,0x07,0x13,0x01,0x95,0x12,0x01,0x86, -0x12,0x01,0x65,0x12,0x75,0x12,0x02,0x76,0x01,0x01,0x65,0x01,0x01,0x28,0x2a,0x7d,0x27,0x25,0x25,0x08,0x1b,0x1f,0x17,0x7d,0x04,0x00,0x00,0x08,0x01,0x08,0x08,0x33,0x1f,0x7d,0x00,0x0e,0x0c,0x7d,0x0f,0x11,0x11,0x0f,0x00,0x01,0x00,0x00,0x28,0x10,0x28,0x02,0x28,0x28,0x1b,0x21,0x0f,0x0f,0x04,0x0a,0x25,0x04,0x01,0x04,0x15,0x21, -0x91,0x3a,0x1b,0x01,0x29,0x1b,0x01,0x1b,0x2e,0x13,0x0a,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x36,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x14,0x07,0x06,0x07,0x06,0x07,0x06,0x15,0x10,0x21,0x32,0x37,0x36,0x35,0x34, -0x27,0x33,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x65,0xa9,0x73,0xee,0xaa,0x48,0x80,0xfe,0xb8,0xfe,0xbe,0x08,0xae,0x0a,0xa1,0x84,0xcb,0x01,0xfa,0xaf,0x70,0xf5,0xa5,0x49,0x7a,0x01,0x71,0x9c,0x62,0x81,0x12,0xb4,0x0f,0xb3,0x93,0xe8,0xec,0x8c,0xab,0x01,0x85,0xcc,0x6b,0x48,0x2b,0x1e,0x26,0x42,0x85,0xe0,0xd2,0x2b,0x45, -0x4b,0x25,0xbd,0x5f,0x4e,0xfe,0x88,0xcc,0x68,0x43,0x2e,0x1f,0x28,0x44,0x85,0xfe,0xfa,0x32,0x42,0x8e,0x42,0x43,0x40,0x43,0xd9,0x6b,0x57,0x56,0x6a,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0x95,0x40,0x0d,0x7c,0x06,0x01,0x74,0x01,0x01,0x01,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x29, -0x0b,0x0d,0x01,0x4c,0x15,0x00,0x25,0x00,0x02,0x03,0x00,0x01,0xe3,0x00,0xf3,0x00,0x02,0x1a,0x05,0x2a,0x05,0x02,0x0c,0x05,0x01,0xec,0x05,0xfc,0x05,0x02,0x05,0x01,0x91,0x04,0x12,0x00,0x07,0x91,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01, -0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x71,0x01,0x2b,0x2b,0x5d, -0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x5f,0xff,0xe8,0x03,0xf0,0x06,0x02,0x00,0x2f,0x00,0xc5,0x40,0x82,0x7a,0x2f,0x01,0x79,0x2e,0x01,0x08,0x2e,0x18,0x2e,0x02,0x86,0x27,0x01, -0x24,0x27,0x01,0x26,0x26,0x46,0x26,0x02,0x85,0x23,0x01,0x56,0x23,0x01,0x79,0x21,0x01,0x79,0x1e,0x01,0x87,0x1a,0x97,0x1a,0x02,0x96,0x19,0x01,0x85,0x19,0x01,0x07,0x19,0x01,0x95,0x15,0x01,0x06,0x15,0x86,0x15,0x02,0x86,0x14,0x01,0x79,0x12,0x01,0x3b,0x12,0x01,0x38,0x11,0x01,0x9a,0x0e,0x01,0x65,0x0b,0x01,0x57,0x0b,0x01,0x57, -0x07,0x67,0x07,0x02,0x25,0x22,0x28,0x83,0x10,0x0d,0x0d,0x13,0x31,0x1b,0x84,0x1c,0x22,0x83,0x13,0x05,0x84,0x00,0x00,0x13,0x03,0x02,0x02,0x09,0x10,0x98,0x10,0x01,0x6a,0x10,0x01,0x10,0x20,0x2c,0x1b,0x1b,0x25,0x20,0x25,0x17,0x09,0x95,0x2c,0x16,0x20,0x95,0x17,0x01,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11, -0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x2f,0xed,0x11,0x12,0x39,0x2f,0x39,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32, -0x37,0x36,0x35,0x34,0x27,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x5f,0x28,0x9a,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xbc,0xae,0xae,0xbc,0x7c,0x77,0xba,0xab,0x73,0x7f,0xa6,0x4b,0x44,0x68,0xfe,0xfb,0xbc, -0xae,0xae,0xbc,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x01,0x5c,0x5e,0x51,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x95,0xaa,0x57,0x4b,0x4b,0x72,0xe5,0xae,0x63,0x60,0x57,0x61,0xa8,0x68,0x39,0x34,0xfb,0x8a,0x58,0x4e,0x4d,0x76,0xd7,0xdc,0x7b,0x73,0x61,0x6a,0x00,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0x52,0x04,0x54,0x00,0x35,0x00,0x49, -0x00,0x8c,0x40,0x5b,0x49,0x47,0x59,0x47,0x69,0x47,0x03,0x65,0x43,0x01,0x46,0x43,0x56,0x43,0x02,0x64,0x3d,0x01,0x9c,0x09,0x01,0x7a,0x08,0x01,0x8f,0x0a,0x9f,0x0a,0x02,0x7e,0x0a,0x01,0x6f,0x0a,0x01,0x87,0x3b,0x01,0x92,0x2c,0x01,0x81,0x2c,0x01,0x63,0x2c,0x73,0x2c,0x02,0x2c,0x1b,0x3b,0x0a,0x04,0x05,0x24,0x24,0x31,0x83,0x30, -0x36,0x01,0x36,0x36,0x4b,0x40,0x83,0x05,0x12,0x12,0x05,0x13,0x18,0x95,0x12,0x0a,0x0d,0x0d,0x3b,0x2c,0x24,0x29,0x95,0x23,0x1b,0x1e,0x10,0x45,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x17,0x39,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x07,0x35,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x13, -0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x4c,0x6c,0xad,0x7b,0x42,0x22,0x4f,0x81,0x5f,0x30,0x69,0x3b,0x33,0x55,0x1f,0x24,0x1e,0x1b,0x22,0x1d,0x51,0x33,0x89,0xda,0x57,0x34,0x72,0x40,0x30,0x4b,0x1a,0x1f,0x16,0x1a,0x21,0x1c,0x4e,0x30,0x0c,0x16,0x0b,0x39,0x50,0x32,0x17,0x42,0x7b,0xad,0xc2, -0x1d,0x3d,0x5d,0x3f,0x59,0x86,0x5a,0x2d,0x26,0x4b,0x72,0x4b,0x4b,0x72,0x4b,0x26,0x18,0x40,0x7a,0xae,0x6e,0x33,0x84,0x89,0x81,0x30,0x0d,0x0e,0x09,0x05,0x06,0x07,0x97,0x03,0x04,0x02,0x05,0x31,0x2a,0x0b,0x0b,0x03,0x02,0x03,0x02,0x92,0x05,0x04,0x03,0x06,0x01,0x01,0x35,0x77,0x77,0x72,0x30,0x6e,0xae,0x7a,0x40,0x01,0xd6,0x32, -0x70,0x6e,0x66,0x29,0x1e,0x61,0x72,0x78,0x36,0x4c,0x7b,0x56,0x2f,0x2f,0x56,0x7b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x83,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83, -0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b, -0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1, -0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x01,0xff,0xe6,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x3f,0x00,0x91,0x40,0x58,0x75,0x35,0x85,0x35,0x02,0x09,0x2d,0x01, -0x05,0x28,0x15,0x28,0x02,0x6a,0x1d,0x01,0x99,0x0a,0x01,0x99,0x05,0x01,0x00,0x02,0x83,0x3f,0x3d,0x3d,0x17,0x30,0x2f,0x33,0x2a,0x83,0x11,0x12,0x0c,0x17,0x17,0x41,0x33,0x83,0x0c,0x1f,0x84,0x20,0x20,0x0c,0x3f,0x00,0x00,0x30,0x38,0x09,0x2f,0x49,0x2f,0x59,0x2f,0x03,0x7a,0x30,0x01,0x28,0x30,0x01,0x2f,0x30,0x07,0x20,0x20,0x12, -0x1a,0x95,0x16,0x12,0x01,0x35,0x11,0x01,0x12,0x11,0x25,0x10,0x38,0x95,0x07,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x5d,0x5d,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30, -0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x70,0x0d,0x53,0x8c, -0xb9,0x66,0x51,0x94,0x71,0x43,0x25,0x45,0x64,0x3f,0x01,0x7d,0x43,0x5c,0x3a,0x1a,0x6c,0x6d,0x32,0x5c,0x4e,0x3a,0x0f,0xa6,0x12,0x5b,0x80,0x9d,0x54,0x4b,0x87,0x65,0x3c,0x27,0x46,0x63,0x3d,0xfe,0x85,0x80,0x79,0x28,0x45,0x5e,0x36,0x3d,0x75,0x5b,0x37,0x09,0x41,0x2a,0x30,0x66,0xa9,0x78,0x42,0x32,0x5b,0x83,0x51,0x45,0x80,0x6d, -0x56,0x1a,0x9b,0x1b,0x3e,0x49,0x54,0x31,0x4d,0x5d,0x1b,0x36,0x50,0x34,0x56,0x84,0x59,0x2d,0x23,0x49,0x6e,0x4b,0x43,0x7a,0x68,0x54,0x1e,0x96,0x33,0x9c,0x70,0x35,0x53,0x39,0x1e,0x2c,0x4e,0x6c,0x41,0x20,0x1b,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x04,0x55,0x04,0x00,0x00,0x09,0x00,0x41,0x40,0x22,0x06,0x01,0x00,0x01,0x84,0x05, -0x06,0x14,0x05,0x05,0x06,0x09,0x00,0x00,0x02,0x03,0x03,0x05,0x0b,0x08,0x07,0x07,0x04,0x05,0x06,0x95,0x00,0x08,0x0f,0x05,0x01,0x95,0x03,0x15,0x00,0x3f,0xed,0x33,0x3f,0x33,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x31,0x30,0x01,0x01,0x21,0x07,0x21,0x37,0x01, -0x21,0x37,0x21,0x04,0x4b,0xfd,0x04,0x02,0x44,0x1d,0xfc,0xb7,0x0a,0x02,0xfb,0xfd,0xef,0x1e,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x00,0x02,0x00,0x72,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x0d,0x00,0x18,0x00,0x20,0x40,0x10,0x0a,0x89,0x11,0x11,0x1a,0x16,0x89,0x04,0x13,0x9a,0x07,0x07,0x0e,0x9a,0x00,0x19, -0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x11,0x14,0x02,0x06,0x27,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x02,0x22,0x80,0xc6,0x6a,0xef,0xda,0xcb,0xd8,0x6e,0xc9,0x84,0x82,0x91,0xfe,0xff,0x8b,0x90,0x8e,0x18,0xb6,0x01,0x4d,0xdd,0x01, -0x64,0x01,0x86,0xfe,0x89,0xfe,0x9e,0xe4,0xfe,0xa9,0xb6,0x8a,0x01,0x3b,0x01,0x36,0x02,0x45,0xfe,0xd9,0xfe,0xd8,0xfe,0xdd,0xfe,0xbc,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xb2,0x05,0x9a,0x00,0x1f,0x00,0x29,0x40,0x0f,0x18,0x08,0x01,0x8a,0x0b,0x10,0x00,0x14,0x1d,0x1d,0x09,0x14,0x06,0x01,0x0e,0xb8,0x01,0x81,0xb1,0x09,0x18,0x00, -0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xcd,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x02,0x75,0xf4,0x1d,0x1f,0x1f,0x1d,0xfd,0x74,0x1f,0x1d,0x1d,0x1f,0xf4,0x29, -0x33,0x7f,0x24,0x0f,0xce,0x05,0x42,0x23,0x24,0x0f,0x04,0xe3,0xfb,0xc1,0x30,0x20,0x20,0x34,0x34,0x20,0x20,0x30,0x04,0xa5,0x2f,0x22,0x1c,0xfe,0x70,0x0c,0x0b,0x20,0x2f,0x1d,0x00,0x01,0x00,0xc2,0xff,0xe8,0x03,0x8a,0x05,0xb2,0x00,0x1b,0x00,0x27,0x40,0x13,0x00,0x8a,0x14,0x14,0x1d,0x13,0x05,0x8a,0x0b,0x04,0x9b,0x13,0x13,0x08, -0x18,0x0f,0x07,0x08,0x19,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x03,0x8a,0x1c,0x1d,0xfe,0x15,0x30,0x20,0x22,0x32,0x31,0x23,0x20, -0x30,0x01,0x80,0x31,0x23,0x20,0x30,0x03,0x54,0x22,0x32,0xfd,0x21,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b,0x1e,0xfe,0x2b,0x01,0xd5,0x1d,0x1c,0x1b,0x1e,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x03,0x34,0x05,0xb2,0x00,0x19,0x00,0x26,0x40,0x0c,0x0f,0x07,0x01,0x8a,0x13,0x0a,0x0c,0x9b,0x11,0x11,0x17,0x09,0xb8,0x01,0x81,0xb3, -0x05,0x18,0x17,0x07,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0xcd,0x32,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x35,0x34,0x33,0x21,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x2c,0x1a,0xfe,0x77,0x46,0x46,0x01,0x2b,0xfe,0xcb,0x1f,0x1d,0x1d,0x1f,0x01,0x35, -0x30,0x20,0x22,0x32,0x05,0x79,0xfa,0xd9,0x1c,0x36,0x51,0x53,0x01,0x99,0x30,0x20,0x20,0x34,0x02,0x98,0x1e,0x1b,0x1c,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x03,0x55,0x05,0xb2,0x00,0x1a,0x00,0x2b,0x40,0x0f,0x09,0x01,0x8a,0x14,0x14,0x1c,0x05,0x8a,0x0f,0x04,0x9b,0x13,0x13,0x18,0x05,0xb8,0x01,0x81,0xb3,0x0c,0x18,0x18,0x07,0x00, -0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x01,0x11,0x14,0x23,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x55,0x32,0xfe,0x78,0x01,0x74,0x1e,0x28,0x46,0xfe,0x2e,0x1e,0x28,0x1d,0x1f,0x01,0x7e,0x31,0x23, -0x20,0x30,0x05,0x79,0xfd,0x7a,0x54,0xfe,0x05,0x2a,0x23,0x57,0x39,0x30,0x02,0x86,0x20,0x34,0x02,0x36,0x1d,0x1c,0x1b,0x00,0x00,0x01,0x01,0x08,0xff,0xe8,0x03,0x47,0x05,0xb2,0x00,0x16,0x00,0x1e,0x40,0x0e,0x06,0x01,0x0a,0x8a,0x10,0x09,0x9b,0x01,0x01,0x0d,0x14,0x07,0x0d,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd, -0x32,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x01,0xac,0x01,0x55,0x1e,0x28,0x28,0x1e,0xfe,0xab,0x30,0x20,0x22,0x32,0x31,0x23,0x20,0x30,0x05,0x79,0xfd,0xb3,0x2a,0x28,0x2b,0x27,0xfd,0x99,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b, -0x00,0x01,0x00,0xe1,0xff,0xe9,0x03,0x73,0x05,0xb2,0x00,0x17,0x00,0x23,0x40,0x11,0x01,0x8a,0x07,0x07,0x19,0x14,0x8a,0x0b,0x09,0x9b,0x14,0x14,0x10,0x04,0x19,0x10,0x07,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x22,0x26,0x35,0x11,0x34, -0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x32,0x16,0x03,0x73,0x31,0x23,0x20,0x30,0xfe,0x66,0x22,0x32,0x30,0x20,0x22,0x32,0x01,0xb2,0x1d,0x1f,0x02,0xef,0xfd,0x33,0x1c,0x1d,0x1b,0x1e,0x02,0x7d,0x1c,0x1d,0x02,0xa1,0x1e,0x1b,0x1c,0x1d,0xfd,0xca,0x34,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xaf,0x05,0xb2,0x00,0x16,0x00,0x21,0x40,0x0f, -0x0d,0x11,0x11,0x18,0x0c,0x8a,0x04,0x0c,0x0f,0x0f,0x01,0x08,0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x06,0x01,0x68,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01, -0xd6,0x0d,0x20,0x24,0x43,0x06,0xfd,0xec,0x0e,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfb,0x59,0x03,0x42,0x19,0x35,0x1f,0x0b,0x0c,0xfc,0x57,0x19,0x00,0x00,0x02,0x00,0xa9,0x00,0x00,0x03,0xa7,0x05,0xb2,0x00,0x14,0x00,0x17,0x00,0x26,0x40,0x12,0x15,0x03,0x03,0x19,0x00,0x17,0x8a,0x0d,0x16,0x9b,0x17,0x00,0x00,0x0a,0x11,0x07, -0x0a,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x32,0x15,0x14,0x06,0x07,0x01,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0x21,0x11,0x01,0x4d,0x02,0x1d,0x3d,0x16,0x16,0xfe,0x22,0x0e,0x1f,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01,0x83, -0xfe,0x7d,0x04,0x2a,0x3a,0x26,0x3a,0x27,0xfc,0xb0,0x19,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfe,0x0d,0xfd,0x4d,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x03,0x94,0x05,0xb2,0x00,0x13,0x00,0x1f,0x00,0x33,0x40,0x1a,0x04,0x8a,0x09,0x00,0x8b,0x14,0x09,0x14,0x09,0x14,0x21,0x1a,0x8b,0x0e,0x1d,0x9b,0x03,0x0b,0x0b,0x11,0x07,0x19, -0x17,0x9b,0x11,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x94,0x9a,0x80,0x32, -0x20,0x20,0x32,0x82,0x98,0xca,0xa6,0xa6,0xc2,0x9a,0x6b,0x61,0x65,0x73,0x71,0x67,0x5c,0x70,0x04,0x6f,0x78,0xab,0x17,0xfc,0xec,0x1e,0x1b,0x1b,0x1e,0x03,0x15,0x19,0xaa,0x76,0x94,0xaf,0xad,0x8d,0x4f,0x57,0x57,0x4f,0x56,0x60,0x64,0x00,0x00,0x02,0x00,0x76,0x00,0xf7,0x03,0xb0,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x1f,0x40,0x0f, -0x10,0x8a,0x09,0x09,0x1d,0x03,0x8a,0x18,0x06,0x99,0x14,0x00,0x99,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x14,0x6e,0x8f,0x93,0x6a,0x6a, -0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f,0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x00,0x01,0x00,0x8a,0xfe,0xe6,0x03,0x37,0x05,0x9c,0x00,0x29,0x00,0x49,0x40,0x26,0x0a,0x8a,0x20,0x11,0x8a,0x17,0x0e,0x29,0x14,0x1c, -0x29,0x14,0x20,0x17,0x17,0x20,0x14,0x29,0x1c,0x05,0x2b,0x26,0x8a,0x02,0x0e,0x1c,0x29,0x1c,0x13,0x00,0x00,0x06,0x14,0x13,0x23,0x99,0x06,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x26,0x35, -0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x6f,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49, -0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0,0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x00,0x01,0x00,0x6d,0xfe,0xdb,0x03,0xbe,0x05,0x9c,0x00,0x21,0x00,0x3c,0x40,0x1d,0x00,0x21,0x1d,0x1a, -0x8a,0x0e,0x02,0x0e,0x06,0x06,0x13,0x14,0x0b,0x0e,0x09,0x09,0x11,0x0b,0x9a,0x02,0x1d,0x1d,0x00,0x11,0x9b,0x16,0x06,0x21,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x01,0x2f,0x33,0xc4,0x32,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32, -0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x39,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a, -0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe,0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0x76,0xfe,0xde,0x03,0xa2,0x05,0x88,0x00,0x2f,0x00,0x60,0x40,0x19,0x00,0x2f,0x2b,0x28,0x8a,0x0f,0x0c,0x24,0x0f,0x2f,0x0f,0x2f,0x0f,0x31,0x03,0x18,0x14,0x06,0x14,0x06,0x1c,0x22,0x8a,0x18,0x0c,0xb8, -0x01,0x7e,0x40,0x15,0x2b,0x03,0x2b,0x24,0x13,0x9b,0x14,0x2b,0x09,0x14,0x14,0x09,0x2b,0x03,0x00,0x1c,0x9b,0x1d,0x06,0x2f,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc6,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x10,0xed,0x32, -0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x02,0xf6,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a, -0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a,0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c, -0x00,0x02,0x00,0x6c,0xff,0xf3,0x04,0x48,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x50,0xb6,0x26,0x8b,0x10,0x09,0x8b,0x2c,0x02,0xb8,0x01,0x85,0x40,0x22,0x24,0x2f,0x20,0x13,0x03,0x10,0x06,0x2c,0x24,0x10,0x2c,0x24,0x24,0x2c,0x10,0x03,0x33,0x1c,0x8a,0x17,0x06,0x13,0x20,0x13,0x2f,0x03,0x0d,0x25,0x19,0x06,0x29,0x99,0x0d,0x19,0x00, -0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x16,0x17, -0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x41,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99,0x74,0xc1, -0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x97,0xfe,0xdb,0x05,0x22,0x05,0x88,0x00,0x25,0x00,0x49,0x40,0x24,0x25,0x00,0x1a,0x09,0x13,0x0b,0x11,0x00,0x0b,0x11, -0x11,0x0b,0x00,0x03,0x22,0x17,0x16,0x27,0x03,0x8a,0x22,0x13,0x1a,0x1a,0x1e,0x9b,0x09,0x06,0x0e,0x06,0x0e,0x17,0x25,0x06,0x16,0x17,0x00,0x2f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x10,0xc6,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x32,0x11,0x33,0x31,0x30,0x01,0x06,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x8d,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b, -0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9,0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x00,0x01,0x00,0x90,0xfe,0xde,0x04,0xce,0x05,0x88,0x00,0x36,0x00,0x63,0x40,0x33,0x04,0x8a,0x19,0x16,0x15,0x22,0x1f,0x13, -0x0b,0x11,0x1f,0x0b,0x11,0x15,0x15,0x11,0x0b,0x1f,0x04,0x26,0x38,0x2d,0x2d,0x36,0x32,0x8a,0x26,0x0e,0x01,0x13,0x19,0x19,0x09,0x07,0x99,0x1b,0x22,0x01,0x9b,0x35,0x1b,0x35,0x1b,0x35,0x16,0x2e,0x9b,0x2b,0x06,0x15,0x16,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x33,0x11,0x33,0x11,0x39, -0x01,0x2f,0xfd,0xc6,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x32,0xed,0x31,0x30,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35, -0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x61,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b,0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2, -0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x01,0x00,0x76,0xff,0xf8,0x04,0xca,0x05,0x88,0x00,0x29,0x00,0x4d,0xbc,0x00,0x24,0x01,0x85,0x00,0x06,0x00,0x0d,0x01,0x85,0x40,0x0a,0x1d, -0x06,0x29,0x1d,0x1d,0x29,0x06,0x03,0x2b,0x16,0xb8,0x01,0x85,0x40,0x0f,0x15,0x00,0x9b,0x29,0x21,0x9b,0x09,0x29,0x09,0x29,0x09,0x11,0x15,0x06,0x1a,0xb8,0x01,0x80,0xb1,0x11,0x18,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01, -0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0xd4,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2,0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93, -0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x01,0x00,0x80,0xff,0xa1,0x04,0x3e,0x05,0x96,0x00,0x16,0x00,0x2f, -0x40,0x16,0x16,0x00,0x0a,0x0b,0x00,0x0b,0x00,0x0b,0x18,0x04,0x8b,0x12,0x0b,0x0a,0x0a,0x0e,0x00,0x16,0x06,0x07,0x99,0x0e,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26, -0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x97,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c,0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x00,0x01,0x00,0x76,0xfe,0xe6,0x04,0x23,0x05,0x9c, -0x00,0x27,0x00,0x42,0x40,0x21,0x27,0x00,0x24,0x8a,0x02,0x12,0x13,0x10,0x89,0x16,0x00,0x1d,0x13,0x16,0x02,0x16,0x02,0x16,0x29,0x08,0x8a,0x1d,0x00,0x9a,0x27,0x27,0x12,0x05,0x9b,0x20,0x06,0x13,0x12,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, -0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x01,0xf1,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec, -0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce,0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0x96,0x00,0x93,0x04,0x9f,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x1f,0x40,0x0f, -0x1b,0x8a,0x00,0x00,0x20,0x08,0x8a,0x13,0x0b,0x9b,0x0f,0x04,0x9b,0x17,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x03,0xff,0x55,0x9d, -0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67,0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x00,0x01,0x00,0x64,0xff,0xe7,0x03,0x88,0x05,0xb1,0x00,0x25,0x00,0x35, -0x40,0x1a,0x06,0x8a,0x14,0x25,0x0d,0x12,0x22,0x14,0x0d,0x22,0x14,0x14,0x22,0x0d,0x03,0x27,0x1c,0x25,0x1f,0x10,0x10,0x0a,0x1f,0x07,0x0a,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14,0x02,0x06,0x23, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x32,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98,0xfe,0x81,0x7a, -0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x00,0x01,0x00,0x78,0xff,0xa7,0x05,0x09,0x05,0xb1,0x00,0x2d,0x00,0x43,0x40,0x13,0x03,0x00,0x89,0x0c,0x15,0x27,0x23,0x1d,0x07,0x15,0x23,0x23,0x15,0x07,0x03,0x2f,0x1d,0x03,0x0d,0xb8,0x01,0x81, -0x40,0x0b,0x19,0x27,0x27,0x20,0x0c,0x0c,0x08,0x20,0x07,0x07,0x08,0x00,0x2f,0x33,0x3f,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0xed,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36, -0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x47,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b, -0x7e,0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x00,0x01,0x00,0x82,0x00,0x93,0x05,0x8b,0x05,0x36,0x00,0x23,0x00,0x38,0x40,0x14,0x1a,0x8a,0x07,0x0a,0x0d,0x13, -0x0d,0x07,0x07,0x0d,0x13,0x03,0x25,0x00,0x22,0x0a,0x10,0x10,0x16,0x03,0xb8,0x01,0x80,0xb4,0x1e,0x22,0x00,0x16,0x06,0x00,0x3f,0xc6,0x32,0xd4,0xed,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x31,0x30,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x07,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xfb,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0,0x70,0x9e,0xe3,0x18,0x0e,0x3c, -0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0x8c,0x00,0x4c,0x04,0x91,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x46,0x40,0x26,0x2c,0x8a,0x12,0x1a,0x8a,0x33,0x03,0x8b,0x1e,0x0e,0x12,0x33,0x1d,0x1e,0x12,0x33,0x1e,0x1e,0x33,0x12,0x03,0x3a, -0x26,0x8a,0x0b,0x22,0x1d,0x0e,0x30,0x04,0x16,0x29,0x99,0x07,0x36,0x9b,0x16,0x07,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, -0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x7e,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, -0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, -0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x96,0x00,0x01,0x05,0x82,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x5a,0x40,0x18,0x02,0x8a,0x30,0x2b,0x25,0x0f,0x89,0x28,0x09,0x14,0x00,0x30,0x28,0x28,0x30,0x00,0x14,0x09,0x05,0x34,0x20,0x8a,0x1a,0x13,0xb8,0x01,0x7e,0x40,0x10,0x09,0x2b,0x05,0x12,0x30,0x08,0x1e,0x12,0x08,0x12,0x08, -0x16,0x00,0x1e,0x07,0x25,0xb8,0x01,0x80,0xb1,0x16,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x32,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x33,0x10,0xed,0x31,0x30,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14, -0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xbf,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78, -0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77,0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00, -0x00,0x01,0x00,0x64,0xff,0xe5,0x06,0x29,0x05,0xb1,0x00,0x2d,0x00,0x5a,0xb9,0x00,0x0a,0x01,0x85,0x40,0x12,0x19,0x06,0x1b,0x01,0x8a,0x21,0x1b,0x21,0x19,0x21,0x28,0x28,0x21,0x19,0x03,0x2f,0x11,0x02,0xb8,0x01,0x80,0x40,0x12,0x11,0x12,0x1b,0x1e,0x22,0x06,0x12,0x1e,0x06,0x12,0x12,0x06,0x1e,0x03,0x0e,0x2b,0x07,0x15,0xb8,0x01, -0x80,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36, -0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x92,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74,0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89, -0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0x87,0xff,0xe8,0x04,0xa0,0x05,0xb1,0x00,0x21,0x00,0x30,0x00,0x43,0x40,0x0a,0x24,0x14,0x8a,0x21,0x1b,0x21,0x1b,0x21, -0x32,0x2e,0xb8,0x01,0x82,0xb4,0x05,0x05,0x2e,0x24,0x22,0xb8,0x01,0x80,0x40,0x0d,0x00,0x0d,0x15,0x1e,0x02,0x02,0x0d,0x1e,0x19,0x2a,0x9b,0x0d,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x32,0x32,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x27,0x26, -0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0x4e,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59,0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58, -0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83,0x0a,0x25,0x00,0x00,0x02,0x00,0x78,0xff,0xe8, -0x06,0x08,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x6e,0xb3,0x1f,0x8a,0x18,0x26,0xb8,0x01,0x86,0x40,0x2d,0x3e,0x12,0x24,0x1a,0x3e,0x18,0x1a,0x3e,0x3e,0x1a,0x18,0x03,0x43,0x0e,0x35,0x8a,0x07,0x31,0x1a,0x1c,0x3e,0x34,0x32,0x9b,0x10,0x23,0x9b,0x15,0x12,0x0e,0x02,0x0a,0x1c,0x0e,0x15,0x2b,0x1c,0x10,0x15,0x15,0x10,0x1c,0x03,0x0a, -0x3a,0xb8,0x01,0x80,0xb3,0x2b,0x19,0x0a,0x07,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x27,0x27,0x06,0x23,0x22,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03,0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0x01,0x26,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41, -0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab,0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f, -0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x00,0x01,0x00,0x96,0xff,0xe7,0x05,0x3b,0x05,0xb1,0x00,0x3c,0x00,0x67,0xb9,0x00,0x1a,0x01,0x83,0xb6,0x39,0x0d,0x39,0x0d,0x39,0x07,0x35,0xb8,0x01,0x85,0x40,0x24, -0x1d,0x2d,0x2a,0x24,0x2a,0x1d,0x1d,0x2a,0x24,0x03,0x3e,0x07,0x89,0x14,0x00,0x9b,0x18,0x31,0x21,0x07,0x10,0x0a,0x21,0x2d,0x18,0x27,0x0a,0x18,0x0a,0x18,0x10,0x27,0x07,0x10,0x19,0x1a,0xb8,0x01,0x81,0xb1,0x39,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x01, -0x2f,0xec,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x2e,0x02,0x02,0x26,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85, -0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44,0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x02,0x00,0x98,0x00,0xe6,0x03,0xee, -0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x00,0x01,0x85,0xb3,0x0c,0x0c,0x19,0x12,0xbe,0x01,0x85,0x00,0x06,0x00,0x15,0x01,0x7e,0x00,0x03,0x00,0x0f,0x01,0x7e,0xb1,0x09,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34, -0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x00,0xff,0xba,0x03,0x6f,0x05,0x1a,0x00,0x15,0x00,0x1e,0x00,0x36,0x40,0x09, -0x16,0x12,0x8a,0x02,0x00,0x02,0x00,0x20,0x1b,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x1d,0x99,0x05,0x05,0x00,0x19,0x9b,0x0d,0x06,0x15,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x33,0x31,0x30,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34, -0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x6f,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01,0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44, -0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x5d,0xff,0xbe,0x04,0x26,0x04,0xee,0x00,0x20,0x00,0x4d,0xb2,0x1e,0x05,0x1c,0xb8,0x01,0x85,0x40,0x1d,0x10,0x0d,0x10,0x01,0x00,0x09,0x10,0x00,0x00,0x10,0x09,0x03,0x22,0x16,0x0d,0x05,0x1e,0x1e,0x07,0x0b,0x07,0x0b,0x07,0x01,0x13,0x9b,0x19,0x06,0x00,0xb8,0x01,0x80,0xb1,0x01,0x19,0x00,0x3f, -0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x33,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x32,0x31,0x30,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00,0x15,0x10,0x05,0x16,0x16, -0x04,0x26,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x00,0x01,0x00,0x6b,0xff,0x7b, -0x04,0x19,0x05,0x04,0x00,0x2a,0x00,0x68,0xb6,0x05,0x04,0x04,0x2c,0x29,0x00,0x26,0xb8,0x01,0x85,0x40,0x19,0x1b,0x08,0x02,0x02,0x16,0x1b,0x0d,0x16,0x0d,0x16,0x22,0x13,0x1b,0x02,0x09,0x29,0x29,0x17,0x0f,0x0f,0x11,0x16,0x9b,0x17,0x11,0xb8,0x01,0x81,0x40,0x0b,0x09,0x17,0x09,0x17,0x09,0x05,0x1f,0x9b,0x24,0x06,0x04,0xb9,0x01, -0x80,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x01,0x2f,0x33,0xc4,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33, -0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x19,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96,0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c, -0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00,0x00,0x02,0x00,0x94,0xff,0xba,0x03,0xf0,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x53,0xb3,0x00,0x89,0x1c,0x06,0xbb,0x01,0x85,0x00,0x1d,0x00,0x24, -0x01,0x85,0x40,0x1e,0x0e,0x02,0x1c,0x12,0x21,0x18,0x03,0x1d,0x0e,0x1c,0x1d,0x0e,0x0e,0x1d,0x1c,0x03,0x2b,0x15,0x89,0x14,0x18,0x02,0x12,0x21,0x04,0x0a,0x1c,0x14,0x06,0x27,0xb8,0x01,0x80,0xb1,0x0a,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10, -0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x30,0xfe,0xef,0x81,0x3d,0x1f,0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80, -0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b,0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c, -0x00,0x01,0x00,0x59,0xff,0xf6,0x04,0x2b,0x04,0xe1,0x00,0x1a,0x00,0x48,0xb9,0x00,0x10,0x01,0x85,0xb2,0x0a,0x18,0x00,0xb8,0x01,0x85,0x40,0x0d,0x01,0x0a,0x01,0x0a,0x01,0x1c,0x12,0x89,0x0d,0x07,0x18,0x12,0x15,0xb8,0x01,0x80,0x40,0x0b,0x02,0x07,0x0d,0x04,0x04,0x01,0x19,0x0d,0x06,0x01,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f, -0x12,0x39,0x39,0xed,0x32,0x32,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x2b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23,0xaa,0x5a, -0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x7d,0xff,0xf6,0x04,0x06,0x06,0x30,0x00,0x2d,0x00,0x68,0xb9,0x00,0x17,0x01,0x85,0x40,0x10,0x0c,0x13,0x0e,0x13,0x1a,0x1a,0x13,0x0e,0x03,0x05,0x2f,0x25,0x25, -0x00,0x20,0x28,0xb8,0x01,0x85,0x40,0x1c,0x09,0x07,0x05,0x14,0x9b,0x11,0x0c,0x00,0x2d,0x07,0x26,0x9b,0x23,0x1a,0x1b,0x2d,0x23,0x1b,0x1b,0x23,0x2d,0x03,0x02,0x1d,0x9b,0x0c,0x06,0x2b,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x10,0xdd,0xed,0x01, -0x2f,0x33,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33, -0x32,0x37,0x04,0x06,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39,0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61, -0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xbf,0xff,0xf0,0x03,0xc4,0x05,0x25,0x00,0x17,0x00,0x40,0xb4,0x03,0x04,0x10,0x0f,0x00,0xb8,0x01,0x85,0x40,0x09,0x07,0x0f,0x07,0x04,0x07,0x04,0x07,0x19,0x0d,0xb8,0x01,0x85,0x40,0x0c,0x12,0x0f,0x10,0x10,0x15,0x04,0x03,0x19,0x0a,0x9b,0x15,0x06,0x00,0x3f,0xed,0x3f,0x33, -0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xc4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4, -0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0x29,0x00,0x18,0x00,0x3c,0xb6,0x10,0x00,0x10,0x00,0x1a,0x0e,0x13,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x00,0x18,0x18,0x10,0x02,0x0c,0x0f,0xb8,0x01, -0x80,0xb3,0x07,0x10,0x06,0x16,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b, -0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0xda,0x00,0x25,0x00,0x4a,0xb9,0x00,0x19,0x01,0x85,0x40,0x0e,0x0f,0x1d,0x11, -0x1d,0x15,0x00,0x00,0x15,0x1d,0x11,0x04,0x27,0x0e,0x20,0xb8,0x01,0x85,0xb7,0x09,0x05,0x17,0x9b,0x14,0x1c,0x0c,0x0e,0xb8,0x01,0x80,0xb3,0x07,0x1e,0x06,0x23,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xcd,0x33,0xd4,0xed,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30, -0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03, -0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0x76,0x01,0x13,0x03,0xc8,0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x27,0xb9,0x00,0x10,0x01,0x85,0xb3,0x09,0x09,0x1b,0x03,0xbb,0x01, -0x85,0x00,0x17,0x00,0x06,0x01,0x80,0xb4,0x13,0x00,0x9b,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x20,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75, -0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b,0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x02,0x00,0x2d,0xff,0xe8,0x03,0x89,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x3c,0x40,0x0b,0x18,0x0d,0x8a,0x0e,0x0f,0x15,0x0f,0x15,0x0f,0x23,0x1f,0xbb,0x01,0x85,0x00,0x06, -0x00,0x16,0x01,0x80,0xb3,0x03,0x03,0x09,0x0d,0xb8,0x01,0x80,0xb5,0x12,0x19,0x1c,0x9b,0x09,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x31,0x30,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35, -0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x0c,0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49, -0x4c,0x5e,0x00,0x01,0x00,0x7c,0xff,0xe8,0x04,0x43,0x05,0xb2,0x00,0x26,0x00,0x55,0xb9,0x00,0x00,0x01,0x85,0x40,0x24,0x09,0x0a,0x1b,0x0a,0x1b,0x0a,0x28,0x18,0x03,0x8b,0x21,0x13,0x10,0x0a,0x09,0x03,0x21,0x20,0x18,0x10,0x16,0x09,0x10,0x16,0x20,0x20,0x16,0x10,0x09,0x04,0x0c,0x1e,0x9b,0x23,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0c, -0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x32,0x11,0x33,0x01,0x2f,0xcd,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36, -0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0x84,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38,0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53, -0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x00,0x01,0x00,0x0f,0xff,0xe8,0x04,0x52,0x05,0xb2,0x00,0x2b,0x00,0x5b,0xb9,0x00,0x02,0x01,0x85,0x40,0x0d,0x00,0x1d,0x10,0x10,0x2d,0x1d,0x23,0x17,0x23,0x17,0x0a,0x09,0x29,0xb8,0x01,0x85,0x40,0x17,0x1d,0x09,0x0a,0x00,0x13,0x17,0x9b,0x18,0x23,0x22,0x0a, -0x18,0x22,0x22,0x18,0x0a,0x03,0x06,0x20,0x9b,0x25,0x07,0x0d,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24, -0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0x80,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96,0x78, -0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0xc4,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x57,0xbc,0x00,0x16,0x01,0x85,0x00, -0x0d,0x00,0x07,0x01,0x85,0x40,0x1c,0x11,0x02,0x03,0x14,0x01,0x0f,0x03,0x0d,0x04,0x11,0x03,0x0d,0x11,0x03,0x03,0x11,0x0d,0x03,0x1d,0x00,0x10,0x01,0x0f,0x04,0x14,0x04,0x00,0x19,0xb8,0x01,0x80,0xb7,0x0a,0x19,0x03,0x10,0x10,0x02,0x00,0x07,0x00,0x3f,0x32,0x32,0x11,0x33,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x01,0x01,0x17,0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x70,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19, -0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae,0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x00,0x01,0x00,0x16,0xff,0xe8,0x05,0x11,0x05,0xb2,0x00,0x22,0x00,0x4b,0x40,0x12,0x01,0x02,0x20,0x00,0x8a,0x08,0x02,0x08, -0x02,0x08,0x24,0x1b,0x8a,0x15,0x0e,0x21,0x06,0x1e,0xb8,0x01,0x80,0x40,0x0d,0x15,0x09,0x14,0x0b,0x14,0x0b,0x14,0x05,0x12,0x9b,0x17,0x07,0x00,0xb8,0x01,0x80,0xb1,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0xed,0x3f,0x01,0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31, -0x30,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x38,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82, -0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x01,0x00,0x41,0xff,0xe8,0x04,0x85,0x05,0xbb,0x00,0x36,0x00,0x70,0xbf,0x00,0x0a,0x01,0x85,0x00,0x15,0x00,0x2a,0x01,0x85,0x00,0x27,0x00,0x04,0x01,0x85,0x40,0x11,0x1b,0x1d,0x27,0x1b,0x15, -0x00,0x0f,0x27,0x1b,0x1b,0x27,0x0f,0x00,0x15,0x05,0x38,0x30,0xb8,0x01,0x85,0x40,0x16,0x20,0x0f,0x10,0x07,0x17,0x17,0x1d,0x12,0x00,0x9b,0x2d,0x22,0x10,0x0d,0x22,0x27,0x36,0x36,0x0d,0x27,0x07,0x12,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x12,0x39,0x39,0x11,0x33, -0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17, -0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x30,0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05, -0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62,0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x36,0xff,0xe8,0x04,0xaf,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x53,0xb1,0x21,0x16,0xbb,0x01,0x85,0x00,0x07,0x00,0x27, -0x01,0x85,0x40,0x0d,0x0f,0x07,0x0f,0x07,0x0f,0x2b,0x00,0x8b,0x1d,0x1d,0x00,0x21,0x1e,0xb8,0x01,0x80,0x40,0x09,0x0c,0x09,0x0c,0x00,0x0c,0x00,0x0c,0x12,0x03,0xb8,0x01,0x80,0xb5,0x1a,0x19,0x24,0x9b,0x12,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39, -0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xd1,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9, -0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a,0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x00,0x01, -0x00,0x80,0xff,0xe8,0x04,0x3e,0x05,0xbc,0x00,0x14,0x00,0x33,0x40,0x14,0x14,0x00,0x09,0x0a,0x00,0x0a,0x00,0x0a,0x16,0x04,0x8b,0x10,0x0a,0x09,0x09,0x0d,0x00,0x14,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01, -0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0x7c,0xfe,0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x02, -0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x58,0x40,0x13,0x03,0x00,0x15,0x16,0x01,0x02,0x0b,0x0c,0x00,0x16,0x02,0x0c,0x0c,0x02,0x16,0x00,0x04,0x1a,0x04,0xb8,0x01,0x85,0x40,0x13,0x12,0x0c,0x0b,0x00,0x03,0x02,0x01,0x0b,0x03,0x01,0x01,0x03,0x0b,0x03,0x0e,0x16,0x15,0x07,0x08,0xb8,0x01,0x80,0xb1,0x0e, -0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02, -0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6,0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0x82,0x00,0xd7,0x04,0x4f,0x04,0x89, -0x00,0x0f,0x00,0x1c,0x00,0x22,0x40,0x09,0x08,0x89,0x10,0x10,0x1e,0x16,0x89,0x00,0x19,0xb8,0x01,0x80,0xb4,0x0c,0x13,0x9b,0x04,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14, -0x16,0x33,0x32,0x36,0x36,0x82,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81,0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x00,0x82,0xff,0xe2,0x03,0x7f,0x05,0x7d,0x00,0x15, -0x00,0x21,0x00,0x3b,0x40,0x0e,0x08,0x8a,0x13,0x12,0x16,0x12,0x16,0x12,0x23,0x0e,0x1c,0x89,0x00,0x1f,0xb8,0x01,0x80,0x40,0x0d,0x0e,0x04,0x0c,0x0c,0x13,0x19,0x9b,0x04,0x06,0x12,0x9a,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x13, -0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x82,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03, -0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68,0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x00,0x96,0xff,0xe2,0x03,0x93,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x3d,0x40,0x0f,0x03,0x04,0x0a,0x00,0x89,0x1e,0x04,0x1e,0x04,0x1e,0x25,0x18,0x89,0x10,0x1b,0xb8,0x01,0x80, -0x40,0x0d,0x0a,0x14,0x0c,0x0c,0x03,0x21,0x9b,0x14,0x06,0x04,0x9a,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31,0x30,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16, -0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x93,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64, -0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d,0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x4c,0x05,0x7d,0x00,0x33,0x00,0x57,0x40,0x1a,0x11,0x10,0x14,0x89,0x0d,0x22,0x32,0x8a,0x33,0x29,0x8a,0x2a,0x10,0x0d,0x33,0x2a,0x2a,0x33,0x0d,0x10,0x04,0x35,0x07,0x89,0x1b,0x0a,0xb8,0x01,0x81,0x40,0x11,0x10,0x22,0x11, -0x17,0x11,0x17,0x11,0x1f,0x2a,0x33,0x18,0x2e,0x04,0x9b,0x25,0x1f,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36, -0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0xaf,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f, -0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57,0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x00,0x02,0x00,0x64,0xff,0xe5,0x05,0x0b, -0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x53,0x40,0x29,0x1e,0x89,0x00,0x10,0x89,0x18,0x0b,0x8b,0x0a,0x08,0x1b,0x03,0x03,0x00,0x0d,0x18,0x0a,0x00,0x18,0x0a,0x0a,0x18,0x00,0x03,0x25,0x06,0x89,0x05,0x0b,0x05,0x05,0x08,0x03,0x0d,0x1b,0x04,0x14,0x0a,0x06,0x07,0x21,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17, -0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01, -0x27,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2,0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38, -0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x00,0x03,0x00,0x64,0xff,0xe5,0x05,0x23,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x6e,0x40,0x39,0x37,0x89,0x0a,0x1d,0x89,0x25,0x12,0x89,0x31,0x19,0x18,0x3a,0x28,0x03,0x08,0x04,0x0a,0x25,0x15,0x1b,0x31,0x18,0x0a,0x25,0x31,0x18,0x18,0x31,0x25,0x0a,0x04,0x3e,0x06,0x05,0x2b,0x89,0x00,0x18, -0x05,0x08,0x3a,0x15,0x03,0x28,0x1b,0x06,0x06,0x19,0x06,0x19,0x06,0x21,0x34,0x9b,0x0e,0x06,0x2e,0xb8,0x01,0x80,0xb1,0x21,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x32,0x33,0x01,0x2f,0xed,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x10,0xed, -0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, -0x17,0x36,0x36,0x01,0x0b,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02,0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56, -0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03,0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0xe2,0x05,0x7d,0x00,0x2f,0x00,0x57,0x40,0x16,0x12,0x89, -0x1f,0x2c,0x89,0x05,0x1f,0x05,0x1f,0x05,0x24,0x31,0x19,0x18,0x18,0x00,0x0c,0x89,0x24,0x18,0x19,0x1c,0xb8,0x01,0x80,0x40,0x0f,0x15,0x0c,0x28,0x1f,0x15,0x19,0x15,0x19,0x15,0x00,0x09,0x9b,0x28,0x06,0x01,0xb8,0x01,0x81,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, -0x01,0x2f,0xed,0xc4,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, -0x10,0x00,0x21,0x64,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77,0xa7,0x77,0x76,0x55,0x50, -0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x02,0x00,0x64,0xff,0xe5,0x04,0xed,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x50,0x40,0x13,0x24,0x89,0x05,0x15,0x89,0x2e,0x05,0x2e,0x00,0x00,0x2e,0x05,0x03,0x35,0x28,0x0d,0x8a,0x1c,0x2b,0xb8,0x01,0x80,0x40,0x10,0x18,0x31,0x9b,0x12, -0x0f,0x12,0x18,0x12,0x18,0x12,0x00,0x09,0x9b,0x20,0x06,0x01,0xb8,0x01,0x80,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15, -0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x64,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06, -0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79,0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01, -0x00,0xb4,0x00,0x00,0x04,0x5a,0x05,0x42,0x00,0x05,0x00,0x16,0x40,0x0a,0x01,0x04,0x89,0x05,0x05,0x18,0x03,0x9b,0x00,0x06,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xfd,0xc4,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x23,0xb4,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0x82,0xff,0xe2,0x03,0xf2,0x05,0x62,0x00,0x16, -0x00,0x3b,0x40,0x1d,0x04,0x03,0x0c,0x08,0x89,0x13,0x12,0x0c,0x00,0x05,0x12,0x05,0x12,0x18,0x0f,0x89,0x00,0x0c,0x05,0x0b,0x0b,0x03,0x12,0x99,0x13,0x19,0x06,0x03,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x33,0x31,0x30,0x13,0x34,0x12, -0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0x82,0xb1,0x9b,0x1b,0x01,0x62,0xa7,0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51, -0x96,0x3b,0xf3,0x01,0x35,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x41,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x20,0x40,0x10,0x00,0x89,0x0c,0x0c,0x19,0x12,0x89,0x06,0x09,0x99,0x0f,0x06,0x15,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33, -0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x41,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe,0xeb,0xfe,0xfc,0x01, -0x02,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0x94,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x57,0x40,0x30,0x21,0x89,0x14,0x19,0x0a,0x89,0x2d,0x1e,0x2d,0x00,0x89,0x07,0x14,0x2d,0x03,0x07,0x17,0x17,0x07,0x03,0x2d,0x14,0x05,0x2f,0x26,0x89,0x11,0x09,0x23,0x9b,0x14,0x19,0x21,0x21,0x0d,0x18,0x20,0x9b,0x15,0x06,0x2a,0x99, -0x0d,0x18,0x04,0x99,0x03,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37, -0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x05,0x94,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01, -0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02,0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0xf0,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x62,0xb4,0x23,0x89,0x0d,0x13,0x16,0xb8,0x01, -0x84,0x40,0x0f,0x2f,0x2a,0x89,0x04,0x00,0x0d,0x2f,0x04,0x04,0x2f,0x0d,0x00,0x04,0x3c,0x35,0xbe,0x01,0x84,0x00,0x1c,0x00,0x32,0x01,0x7e,0x00,0x13,0x00,0x38,0x01,0x7e,0x40,0x12,0x19,0x08,0x27,0x27,0x19,0x13,0x19,0x13,0x19,0x01,0x10,0x9b,0x20,0x06,0x2d,0x99,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, -0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15, -0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xf0,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04,0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f, -0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0x8c,0x00,0x00,0x05,0xd1,0x05,0x31,0x00,0x20,0x00,0x51,0x40,0x2b,0x16,0x0c, -0x89,0x0d,0x1f,0x1c,0x89,0x05,0x14,0x00,0x05,0x0d,0x01,0x05,0x05,0x01,0x0d,0x03,0x22,0x10,0x89,0x11,0x02,0x1f,0x99,0x01,0x08,0x9b,0x16,0x01,0x19,0x19,0x12,0x01,0x18,0x15,0x0f,0x9b,0x12,0x06,0x0d,0x11,0x18,0x00,0x3f,0x33,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, -0x2f,0x2f,0x11,0x39,0x39,0x10,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x05,0xd1,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72, -0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38,0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0xa3,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x50,0x40,0x2b,0x18,0x89,0x0c,0x11,0x02,0x89,0x24,0x15, -0x24,0x00,0x89,0x12,0x0c,0x24,0x0f,0x12,0x12,0x0f,0x24,0x0c,0x04,0x26,0x1e,0x89,0x09,0x01,0x1a,0x9b,0x11,0x0c,0x18,0x18,0x05,0x10,0x17,0x9b,0x13,0x0d,0x06,0x21,0x99,0x05,0x18,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10, -0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x05,0xa3,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed, -0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x8c,0xfd,0xb9,0x07,0x18,0x07,0x21,0x00,0x34,0x00,0x62,0x40,0x35,0x19,0x89,0x1a,0x1f, -0x15,0x89,0x16,0x24,0x8a,0x0f,0x34,0x8a,0x00,0x1d,0x16,0x0f,0x1a,0x16,0x0f,0x00,0x00,0x0f,0x16,0x1a,0x04,0x36,0x08,0x89,0x2c,0x1e,0x18,0x9b,0x1b,0x04,0x9b,0x30,0x1b,0x12,0x9b,0x1f,0x21,0x00,0x21,0x00,0x1a,0x1b,0x06,0x0c,0x99,0x28,0x16,0x1a,0x18,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x10,0xd4, -0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x33,0x32,0x16, -0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x76,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93,0xc3,0xd3,0x01,0x8c,0x01,0x10, -0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01,0x1a,0xfe,0xfe,0x2c,0xfe,0xce, -0x00,0x03,0x00,0x50,0x00,0x00,0x07,0x45,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x7a,0x40,0x44,0x3e,0x89,0x2d,0x03,0x23,0x89,0x3a,0x3b,0x3a,0x06,0x1d,0x89,0x1e,0x10,0x0d,0x89,0x17,0x2d,0x3a,0x1e,0x01,0x13,0x17,0x12,0x12,0x17,0x13,0x01,0x1e,0x3a,0x2d,0x07,0x40,0x34,0x89,0x2a,0x14,0x10,0x99,0x13,0x19,0x9b,0x06,0x13, -0x0a,0x0a,0x2e,0x13,0x18,0x22,0x30,0x9b,0x03,0x2d,0x3e,0x3e,0x26,0x02,0x3d,0x9b,0x2e,0x06,0x37,0x99,0x26,0x18,0x1e,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32, -0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15, -0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x30,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d, -0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0x5f,0x05,0x31,0x00,0x1a,0x00,0x26, -0x00,0x41,0x40,0x23,0x0f,0x89,0x1b,0x02,0x89,0x03,0x1b,0x03,0x00,0x00,0x03,0x1b,0x03,0x28,0x09,0x21,0x89,0x15,0x1e,0x9b,0x09,0x0c,0x0c,0x12,0x01,0x05,0x9b,0x19,0x06,0x24,0x99,0x12,0x18,0x03,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, -0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5f,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88,0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3, -0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x00,0x03,0x00,0x32,0xff,0x00,0x06,0xe6,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40, -0x00,0x78,0x40,0x2c,0x29,0x01,0x89,0x02,0x28,0x89,0x11,0x04,0x89,0x2b,0x14,0x17,0x89,0x35,0x3b,0x8a,0x1e,0x0f,0x11,0x2b,0x02,0x11,0x2b,0x35,0x1e,0x1e,0x35,0x2b,0x11,0x02,0x05,0x42,0x2f,0x89,0x0b,0x2a,0x06,0x04,0x2c,0x9b,0x0e,0x28,0x0e,0x3e,0xb8,0x01,0x80,0x40,0x13,0x1a,0x14,0x1a,0x22,0x0e,0x1a,0x0e,0x1a,0x07,0x38,0x9b, -0x22,0x06,0x32,0x99,0x07,0x19,0x02,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x06, -0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xe6,0xa8,0xfb,0x59, -0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44,0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74, -0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x50,0xff,0xe4,0x07,0x4d,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x91,0x40,0x50, -0x40,0x89,0x20,0x13,0x15,0x08,0x41,0x26,0x03,0x03,0x23,0x23,0x03,0x25,0x15,0x89,0x3c,0x3d,0x3c,0x44,0x8a,0x11,0x0b,0x8a,0x49,0x30,0x00,0x2d,0x8a,0x03,0x00,0x49,0x03,0x20,0x3c,0x11,0x49,0x03,0x03,0x49,0x11,0x3c,0x20,0x05,0x4e,0x36,0x89,0x1d,0x14,0x32,0x9b,0x25,0x20,0x40,0x40,0x19,0x23,0x3f,0x9b,0x21,0x06,0x9b,0x08,0x41, -0x29,0x29,0x0e,0x21,0x06,0x39,0x99,0x19,0x18,0x47,0x99,0x0e,0x18,0x00,0x30,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, -0x10,0xed,0x32,0x11,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07, -0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x43,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47,0x3d, -0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28,0x5d, -0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x02,0x00,0x72,0xff,0xe5,0x05,0x5b,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x0c,0x8b,0x1c,0x1c,0x21,0x14,0x8b,0x04,0x10,0x9b,0x08,0x06,0x18,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f, -0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x02,0xe6,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f, -0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81,0xe0,0x7e,0x00,0x00,0x01,0x00,0x74,0xff,0xe6,0x06,0x74,0x04,0xc9,0x00,0x1b,0x00,0x3e,0xb4,0x07,0x06,0x15,0x16,0x12,0xb8,0x01,0x85,0x40,0x0a,0x18,0x06,0x16, -0x18,0x18,0x16,0x06,0x03,0x1d,0x04,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x00,0x9b,0x0e,0x06,0x16,0x06,0x06,0x15,0x07,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32, -0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x74,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf,0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69, -0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x60,0x00,0x00,0x06,0x3d,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x45,0xb9,0x00,0x19,0x01,0x85,0x40,0x12,0x05,0x08,0x0a,0x8b,0x1f,0x25,0x8b,0x11,0x05,0x1f,0x11,0x11,0x1f,0x05,0x03,0x2c,0x00,0x28,0xb8,0x01,0x80,0x40,0x0c,0x08,0x0e,0x0e,0x15,0x00,0x99,0x1e,0x18,0x22,0x9b, -0x15,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27, -0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x60,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91,0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe, -0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x00,0x01,0x00,0x58,0xff,0xe7,0x03,0xcf,0x04,0xc9,0x00,0x28,0x00,0x53,0x40,0x2c,0x23,0x8b,0x17,0x00,0x8b,0x0e,0x26,0x0e,0x12,0x17,0x0e,0x0e,0x17,0x12,0x03,0x2a,0x1c,0x1d,0x07,0x06,0x06,0x07,0x26,0x12,0x9b,0x13,0x1d,0x1c,0x07,0x13, -0x1c,0x1c,0x13,0x07,0x03,0x1f,0x0a,0x99,0x04,0x19,0x1a,0x9b,0x1f,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x01,0x2f,0x33,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36, -0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x03,0xcf,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba,0x68,0x49,0x50,0x4e,0x5e,0x01,0x54, -0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x02,0x00,0x73,0xff,0xe8,0x05,0x9f,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x66,0x40,0x36,0x16,0x8b,0x0f,0x13,0x12,0x1d,0x8b,0x03,0x08,0x8b,0x23,0x2a,0x2b,0x1a,0x12,0x25,0x03,0x23, -0x0f,0x12,0x03,0x23,0x2b,0x2b,0x23,0x03,0x12,0x0f,0x05,0x34,0x2e,0x8b,0x28,0x2b,0x2a,0x06,0x9b,0x0c,0x1a,0x26,0x0c,0x20,0x2a,0x0c,0x2a,0x0c,0x13,0x00,0x9a,0x20,0x19,0x12,0x13,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, -0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06, -0x15,0x14,0x16,0x16,0x17,0x02,0xfe,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39,0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31, -0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54,0x20,0x00,0x00,0x02,0x00,0x5d,0xff,0xc0,0x06,0x59,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x7f,0xb9,0x00,0x1a,0x01,0x84,0x40,0x0a,0x19,0x0a,0x8b,0x34,0x13,0x20,0x3a,0x8b,0x04, -0x00,0xb8,0x01,0x84,0x40,0x14,0x2c,0x02,0x0d,0x20,0x03,0x34,0x2c,0x04,0x2f,0x19,0x34,0x04,0x2f,0x2f,0x04,0x34,0x19,0x04,0x40,0x28,0xb8,0x01,0x84,0x40,0x0c,0x29,0x00,0x2c,0x28,0x2f,0x9b,0x30,0x06,0x29,0x28,0x19,0x3c,0xb8,0x01,0x81,0x40,0x0f,0x02,0x0d,0x25,0x19,0x25,0x19,0x07,0x16,0x99,0x1d,0x19,0x37,0x9b,0x07,0x06,0x00, -0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0xed,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17, -0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37,0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0xbd,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31, -0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02,0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f, -0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07,0x62,0x00,0x01,0x00,0x73,0x00,0x00,0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x02,0x00,0x0a,0x13,0x1a,0x1a,0x13,0x0a,0x03,0x20,0x0e,0x17,0x8a,0x04,0x00,0x02,0x14,0x9b, -0x11,0x11,0x08,0x19,0x99,0x1c,0x18,0x0b,0x9b,0x08,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15, -0x21,0x22,0x26,0x73,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x00,0x70,0xff,0xe5,0x04,0x44,0x04,0xc9,0x00,0x2e,0x00,0x54, -0xb3,0x04,0x8a,0x03,0x22,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1a,0x8b,0x1b,0x03,0x14,0x1b,0x1b,0x14,0x03,0x03,0x30,0x2c,0xb8,0x01,0x85,0x40,0x11,0x0b,0x2c,0x07,0x03,0x14,0x1b,0x1e,0x03,0x1b,0x03,0x1b,0x07,0x17,0x9b,0x1e,0x06,0x00,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39, -0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x02,0x56, -0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c,0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53, -0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x74,0xff,0xe7,0x06,0x8b,0x04,0xc9,0x00,0x20,0x00,0x42,0xb1,0x03,0x06,0xb8,0x01,0x85,0x40,0x0c,0x1d,0x12,0x20,0x1d,0x01,0x01,0x1d,0x20,0x12,0x04,0x22,0x15,0xb8,0x01,0x85,0xb5,0x0e,0x12,0x11,0x11,0x00,0x19,0xb8,0x01,0x81,0xb6,0x0a,0x19,0x20,0x03, -0x9b,0x00,0x06,0x00,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x03,0x21,0x03, -0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb,0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x73,0x00,0x00, -0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x1d,0x1b,0x16,0x0e,0x04,0x04,0x0e,0x16,0x03,0x20,0x08,0x12,0x8a,0x00,0x1b,0x1d,0x0f,0x9b,0x0c,0x0c,0x03,0x14,0x99,0x17,0x18,0x06,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30, -0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x73,0xcf,0xbd,0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c, -0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x05,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x00,0x8a,0x10,0x10,0x21,0x18,0x8a,0x08,0x14,0x9b,0x0c,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x04,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31, -0x30,0x01,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x05,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e, -0x02,0x55,0xa2,0xfe,0xea,0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x00,0x01,0x00,0x82,0xff,0xfd,0x05,0x1b,0x04,0xac,0x00,0x1d,0x00,0x37,0x40,0x1c,0x13,0x12,0x03,0x04,0x00,0x8a,0x07,0x12,0x04,0x07,0x07,0x04,0x12,0x03,0x1f,0x0f,0x8a,0x16, -0x0b,0x9b,0x1a,0x06,0x04,0x12,0x12,0x03,0x13,0x18,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04, -0x12,0x05,0x1b,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00,0x01,0x00,0x64, -0x00,0x00,0x04,0x54,0x04,0xac,0x00,0x25,0x00,0x44,0x40,0x0f,0x17,0x18,0x00,0x8a,0x0b,0x18,0x0b,0x18,0x0b,0x27,0x12,0x89,0x05,0x1e,0x15,0xb8,0x01,0x81,0x40,0x0c,0x18,0x17,0x1a,0x17,0x1a,0x17,0x05,0x0f,0x9b,0x22,0x06,0x06,0xb8,0x01,0x81,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x01, -0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0x54,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, -0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0x82,0xff,0xdd,0x04,0xa3,0x04,0xac, -0x00,0x32,0x00,0x3c,0x00,0x7a,0x40,0x21,0x1e,0x1f,0x1f,0x13,0x1a,0x8a,0x25,0x2c,0x8a,0x13,0x03,0x11,0x35,0x03,0x25,0x2e,0x13,0x00,0x25,0x13,0x00,0x00,0x13,0x25,0x03,0x3e,0x3a,0x8a,0x0a,0x38,0x9b,0x0e,0x1c,0xb8,0x01,0x81,0x40,0x12,0x22,0x1f,0x1e,0x11,0x35,0x2e,0x03,0x04,0x06,0x0e,0x22,0x1e,0x1e,0x22,0x0e,0x03,0x28,0x33, -0xb8,0x01,0x81,0xb2,0x06,0x18,0x30,0xb8,0x01,0x81,0xb5,0x00,0x19,0x17,0x9b,0x28,0x06,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30, -0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x04,0xa3,0x54, -0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c,0x42,0x6f,0x55,0x53,0xbe,0x6e, -0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x6e,0xff,0xf3,0x05,0x8a,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x39,0x37,0x8a,0x11,0x26,0x26,0x22,0x1b,0x8a,0x27,0x0b,0x8a,0x31,0x05,0x8a,0x22,0x2f, -0x15,0x11,0x13,0x1d,0x27,0x08,0x31,0x22,0x11,0x27,0x31,0x22,0x22,0x31,0x27,0x11,0x04,0x3e,0x2c,0x8b,0x15,0x26,0x9b,0x00,0x06,0x34,0x9b,0x13,0x08,0x0e,0x1d,0x2f,0x18,0x1f,0x1f,0x0e,0x29,0x9b,0x18,0x06,0x3a,0xb8,0x01,0x81,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0xed,0x3f,0xed, -0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36, -0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfe,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56,0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88, -0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a,0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45, -0x00,0x03,0x00,0x82,0xff,0xdc,0x05,0xd8,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x99,0x40,0x4a,0x00,0x8b,0x36,0x04,0x8b,0x0b,0x3b,0x8b,0x30,0x22,0x21,0x21,0x1e,0x18,0x18,0x3f,0x08,0x08,0x0b,0x2c,0x0f,0x8a,0x3f,0x1e,0x8b,0x25,0x02,0x36,0x2e,0x0d,0x3d,0x03,0x0b,0x30,0x36,0x0b,0x30,0x3f,0x25,0x25,0x3f,0x30,0x0b,0x36, -0x05,0x49,0x42,0x8b,0x15,0x3f,0x0f,0x9b,0x18,0x3d,0x2e,0x33,0x02,0x0d,0x2c,0x2c,0x07,0x39,0x9b,0x33,0x06,0x21,0x22,0x22,0x12,0x1b,0x9b,0x28,0x06,0x45,0xb8,0x01,0x80,0xb2,0x12,0x18,0x08,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x12,0x39,0x39, -0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xd8,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b, -0xc7,0xa8,0x73,0xa0,0xea,0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73, -0xa2,0x9e,0x18,0xac,0xfa,0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x02,0x00,0x64,0x00,0x00,0x05,0x43,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x64,0xb9,0x00,0x11,0x01,0x85,0x40, -0x12,0x1e,0x23,0x8b,0x17,0x0c,0x8b,0x07,0x00,0x1e,0x17,0x07,0x07,0x17,0x1e,0x00,0x04,0x2a,0x19,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x17,0x23,0x23,0x21,0x9b,0x0e,0x26,0xb8,0x01,0x81,0x40,0x0d,0x0c,0x07,0x0e,0x14,0x14,0x01,0x0e,0x06,0x09,0x9b,0x0a,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12, -0x39,0x2f,0x12,0x39,0x39,0xed,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xc6,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23,0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23, -0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x43,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e,0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a, -0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x04,0x9e,0x04,0xc1,0x00,0x27,0x00,0x42,0x40,0x1a,0x11,0x8a,0x16,0x1c,0x8a,0x0b,0x16,0x0b,0x27,0x27,0x0b,0x16,0x03,0x29,0x23,0x8a,0x05,0x1e,0x09,0x13,0x09,0x01,0x14,0x14,0x19,0x26,0xb8,0x01,0x81,0xb5,0x01,0x18,0x0e,0x9b,0x19,0x06, -0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15, -0x14,0x16,0x33,0x21,0x04,0x9e,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61,0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70, -0x5b,0x83,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x43,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x59,0xb3,0x24,0x24,0x22,0x13,0xb8,0x01,0x84,0x40,0x24,0x27,0x01,0x04,0x8a,0x22,0x27,0x22,0x00,0x00,0x22,0x27,0x03,0x33,0x2d,0x1a,0x8a,0x0c,0x2f,0x99,0x16,0x24,0x01,0x9b,0x25,0x18,0x25,0x16,0x25,0x16,0x25,0x08,0x2a,0x9b,0x10,0x06,0x1e, -0xb8,0x01,0x81,0xb1,0x08,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14, -0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x43,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f, -0x25,0x2e,0x41,0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x02,0x00,0x82,0x00,0x00,0x04,0x44,0x04,0xac,0x00,0x26,0x00,0x31, -0x00,0x70,0x40,0x3c,0x17,0x18,0x0b,0x8b,0x31,0x10,0x89,0x1d,0x1f,0x06,0x2c,0x03,0x31,0x1d,0x00,0x18,0x31,0x1d,0x1d,0x31,0x18,0x00,0x04,0x33,0x04,0x8a,0x21,0x18,0x17,0x2f,0x99,0x0e,0x29,0x9b,0x08,0x06,0x2c,0x1f,0x10,0x04,0x0e,0x08,0xc0,0x0e,0xf0,0x0e,0x02,0x17,0x0e,0x08,0x08,0x0e,0x17,0x03,0x1a,0x01,0x9b,0x25,0x06,0x15, -0xb8,0x01,0x81,0xb1,0x1a,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0x44,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c,0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b, -0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b,0x29,0x00,0x00,0x02,0x00,0x5d,0xff,0xe8,0x03,0xe9,0x03,0x7c,0x00,0x0b, -0x00,0x1b,0x00,0x23,0x40,0x0d,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06,0x00,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, -0x14,0x06,0x06,0x02,0x23,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0,0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x02,0x00,0x00,0xfe,0x63,0x06,0xd4,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x37,0x40,0x1e, -0x21,0x8a,0x11,0x00,0x8a,0x19,0x11,0x09,0x19,0x19,0x09,0x11,0x03,0x23,0x04,0x89,0x0d,0x1d,0x9b,0x15,0x07,0x07,0x99,0x0a,0x18,0x21,0x10,0x99,0x01,0x18,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21, -0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21,0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xd4,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d, -0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02,0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x01,0x00,0x64,0xff,0xe6,0x07,0x12,0x05,0xb3,0x00,0x1e,0x00,0x3d,0x40,0x21,0x10,0x0f,0x1e,0x89,0x02,0x1b,0x89,0x06,0x0f,0x02,0x06,0x00,0x00,0x06,0x02,0x0f,0x04,0x20,0x0c,0x89,0x13,0x03,0x1e,0x99,0x02,0x18,0x09,0x9b, -0x17,0x07,0x0f,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x07,0x12, -0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x00,0x01,0x00,0x64, -0xff,0xe6,0x07,0x1b,0x05,0xb3,0x00,0x2d,0x00,0x50,0x40,0x2b,0x19,0x18,0x22,0x0d,0x8a,0x0e,0x2d,0x2a,0x8a,0x06,0x01,0x06,0x18,0x0e,0x02,0x06,0x06,0x02,0x0e,0x18,0x04,0x2f,0x15,0x8a,0x1c,0x22,0x19,0x09,0x12,0x9b,0x26,0x1f,0x07,0x18,0x19,0x19,0x0e,0x18,0x03,0x2d,0x99,0x02,0x18,0x00,0x3f,0xed,0x39,0x3f,0x3f,0x33,0x3f,0x33, -0xed,0x32,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x32,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36, -0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x07,0x1b,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66,0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9, -0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93,0x56,0x00,0x00,0x02,0x00,0x61,0xff,0xe6,0x06,0x81,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x6d,0x40,0x38,0x14,0x13,0x37,0x89,0x07,0x00,0x89,0x31,0x26,0x26,0x10,0x2b,0x89,0x20,0x1d,0x34,0x0a,0x03,0x07,0x31, -0x2e,0x20,0x13,0x07,0x31,0x20,0x20,0x31,0x07,0x13,0x04,0x3e,0x10,0x89,0x17,0x1d,0x2e,0x0a,0x34,0x04,0x04,0x26,0x25,0x25,0x1b,0x23,0x9b,0x28,0x0c,0x9b,0x1b,0x07,0x13,0x14,0x19,0x3a,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x31,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b, -0xbb,0xb2,0x7c,0x69,0x80,0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe, -0x01,0x24,0x00,0x01,0x00,0x61,0xfd,0xfe,0x07,0x0f,0x07,0x61,0x00,0x43,0x00,0x71,0x40,0x38,0x1f,0x8a,0x24,0x22,0x21,0x2a,0x8a,0x19,0x30,0x8a,0x11,0x00,0x01,0x41,0x8a,0x03,0x2c,0x11,0x01,0x24,0x21,0x14,0x19,0x11,0x01,0x03,0x03,0x01,0x11,0x19,0x14,0x21,0x24,0x07,0x45,0x0a,0x8a,0x39,0x01,0x00,0x19,0x06,0x9b,0x3d,0x27,0x2c, -0x14,0x9b,0x15,0x15,0x22,0x1c,0x9b,0x27,0x07,0x0e,0xb8,0x01,0x80,0xb3,0x34,0x21,0x22,0x19,0x00,0x3f,0x33,0xd4,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x10,0xd4,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31, -0x30,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32, -0x04,0x12,0x11,0x14,0x02,0x06,0x7d,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01,0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01, -0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc,0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9, -0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xf4,0x05,0xb3,0x00,0x3e,0x00,0x6a,0x40,0x0b,0x00,0x3e,0x0a,0x33,0x8a,0x34,0x11,0x2a,0x8a,0x2b,0x17,0xb8,0x01,0x85,0x40,0x24,0x23,0x3e,0x34,0x1d,0x2b,0x23,0x23,0x2b,0x1d,0x34,0x3e,0x05,0x40,0x3c,0x8a,0x03,0x12,0x0b, -0x0b,0x34,0x2f,0x26,0x38,0x9b,0x15,0x0e,0x07,0x07,0x3e,0x00,0x19,0x1d,0x1e,0x1e,0x34,0x20,0xb8,0x01,0x80,0xb3,0x1b,0x2b,0x34,0x18,0x00,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10, -0xed,0x39,0x11,0x33,0x31,0x30,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11,0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22, -0x06,0x02,0x15,0x10,0x17,0xee,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99,0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f, -0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03,0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x00,0x46,0xff,0xe6,0x05,0x17,0x05,0xb3,0x00,0x0b,0x00,0x30, -0x00,0x47,0x40,0x1d,0x2a,0x89,0x13,0x17,0x1b,0x89,0x00,0x13,0x00,0x30,0x30,0x00,0x13,0x03,0x32,0x06,0x8a,0x22,0x09,0x99,0x30,0x0c,0x18,0x1f,0x0c,0x1f,0x0c,0x26,0x0f,0xb8,0x01,0x80,0xb5,0x2e,0x19,0x03,0x9b,0x26,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, -0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x02,0x8f,0x6e,0x5e,0x5e,0x7a, -0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf,0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60, -0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xea,0x05,0xb3,0x00,0x2d,0x00,0x57,0x40,0x2a,0x2c,0x01,0x8a,0x0e,0x28,0x89,0x13,0x1d,0x1c,0x0e,0x13,0x0f,0x07,0x1c,0x1c,0x07,0x0f,0x13,0x0e,0x05,0x2f,0x19,0x89,0x20,0x2d,0x06,0x16,0x9b,0x24,0x07, -0x1c,0x1d,0x19,0x10,0x2b,0x99,0x0f,0x07,0x08,0x08,0x0f,0x0b,0xb8,0x01,0x80,0xb2,0x04,0x0f,0x18,0x00,0x3f,0xd4,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x39,0x3f,0x33,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35, -0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xea,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78, -0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x05,0x06,0x00, -0x00,0x02,0x00,0x61,0xff,0xe6,0x07,0x02,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x84,0x40,0x45,0x1b,0x1a,0x26,0x10,0x8a,0x11,0x46,0x8a,0x07,0x00,0x8a,0x40,0x35,0x35,0x17,0x3a,0x8a,0x2e,0x2b,0x43,0x0a,0x03,0x07,0x40,0x3d,0x2e,0x1a,0x11,0x07,0x40,0x2e,0x2e,0x40,0x07,0x11,0x1a,0x05,0x4c,0x17,0x8a,0x1e,0x0c,0x14,0x9b,0x22,0x2b, -0x26,0x43,0x0a,0x3d,0x26,0x04,0x04,0x35,0x34,0x34,0x22,0x31,0x9b,0x37,0x29,0x22,0x07,0x1a,0x1b,0x19,0x11,0x18,0x48,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x39, -0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17, -0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0xc2,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90, -0x85,0x3d,0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad, -0x90,0x81,0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x2b,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x20,0x40,0x10,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06, -0x00,0x99,0x0c,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x02,0xd5,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab, -0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0xa3,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x5f,0xbc,0x00,0x2c,0x01,0x82,0x00,0x00,0x00,0x06,0x01,0x82,0x40,0x18,0x32,0x14,0x89,0x1b,0x28, -0x32,0x00,0x32,0x17,0x1b,0x1b,0x17,0x32,0x00,0x04,0x39,0x22,0x89,0x0c,0x18,0x99,0x17,0x18,0x2f,0xb8,0x01,0x7d,0x40,0x11,0x28,0x35,0x9b,0x03,0x28,0x03,0x28,0x03,0x09,0x1f,0x9b,0x10,0x06,0x26,0x99,0x09,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, -0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35, -0x34,0x26,0x23,0x22,0x06,0x02,0x28,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a, -0x88,0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x02,0x00,0xb4,0x00,0x00,0x05,0x90,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x71,0xb9,0x00,0x2d,0x01,0x83,0x40,0x2f,0x00,0x42,0x8c,0x30,0x39,0x8c,0x48,0x27,0x26,0x06,0x0e, -0x89,0x1f,0x06,0x48,0x1f,0x00,0x30,0x48,0x1f,0x1f,0x48,0x30,0x00,0x04,0x4c,0x18,0x89,0x15,0x16,0x06,0x45,0x3f,0x30,0x3c,0x36,0x06,0x27,0x3c,0x36,0x27,0x27,0x36,0x3c,0x03,0x03,0x1b,0xb8,0x01,0x80,0xb7,0x12,0x18,0x23,0x2a,0x9b,0x0a,0x03,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11, -0x12,0x39,0x33,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11, -0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x22,0x76,0x72,0x41,0x5d,0x15,0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b, -0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b,0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a, -0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x73,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x71,0xbc,0x00,0x31,0x01,0x82,0x00,0x25,0x00,0x2b,0x01,0x82,0x40,0x30,0x37,0x1c,0x1b,0x09,0x0f,0x89,0x15, -0x09,0x37,0x12,0x25,0x37,0x12,0x15,0x15,0x12,0x37,0x25,0x04,0x3b,0x22,0x89,0x03,0x13,0x99,0x12,0x18,0x18,0x1f,0x9b,0x06,0x2e,0x9b,0x25,0x00,0x28,0x09,0x1c,0x06,0x28,0x1c,0x28,0x1c,0x00,0x0c,0x06,0x06,0x34,0xb8,0x01,0x7d,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0xed, -0x10,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15, -0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x2f,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e,0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37, -0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74,0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x3b, -0x00,0x47,0x00,0x84,0xb9,0x00,0x06,0x01,0x82,0xb4,0x3f,0x28,0x89,0x27,0x45,0xbb,0x01,0x82,0x00,0x0c,0x00,0x0e,0x01,0x83,0x40,0x16,0x00,0x39,0x0c,0x00,0x14,0x3f,0x27,0x0c,0x00,0x00,0x0c,0x27,0x3f,0x14,0x05,0x49,0x32,0x89,0x1e,0x17,0x11,0x3c,0xb8,0x01,0x7d,0x40,0x1a,0x09,0x42,0x9b,0x03,0x22,0x2d,0x11,0x1b,0x0c,0x09,0x2d, -0x03,0x27,0x09,0x03,0x09,0x03,0x1b,0x27,0x06,0x39,0x35,0x99,0x1b,0x18,0x13,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed, -0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37, -0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xcb,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f, -0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a, -0x2a,0x3a,0x00,0x03,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0xaa,0xbf,0x00,0x29,0x01,0x83,0x00,0x1b,0x00,0x4d,0x01,0x82,0x00,0x27,0x00,0x21,0x01,0x82,0x40,0x12,0x47,0x18,0x27,0x1b,0x27,0x47,0x2f,0x2f,0x47,0x27,0x1b,0x04,0x11,0x5d,0x07,0x89,0x06,0x00,0xb8,0x01,0x82,0x40,0x18,0x56,0x50, -0x8c,0x3e,0x3c,0x56,0x3e,0x06,0x56,0x3e,0x3e,0x56,0x06,0x03,0x5d,0x11,0x89,0x39,0x0c,0x01,0x4b,0x9b,0x1e,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x24,0x32,0x2c,0x3c,0x53,0x01,0x03,0x41,0x27,0x1e,0x2c,0x24,0x1e,0x24,0x1e,0x24,0x36,0x59,0x41,0x06,0x18,0x14,0x99,0x36,0x18,0x2e,0xb8,0x01,0x80,0xb3,0x2f,0x19,0x06,0x06,0x00,0x3f,0x3f, -0xed,0x3f,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07, -0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16, -0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x5d,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41, -0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59, -0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01,0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x00,0x50,0xff,0xf4,0x04,0xa7,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x63,0x40,0x09,0x18,0x89,0x05,0x25, -0x8c,0x2f,0x12,0x0b,0x29,0xb8,0x01,0x83,0x40,0x14,0x1f,0x00,0x0b,0x2f,0x1f,0x05,0x2f,0x1f,0x1f,0x2f,0x05,0x03,0x36,0x0f,0x89,0x0e,0x32,0x9b,0x22,0x2c,0xb8,0x01,0x7d,0x40,0x12,0x00,0x12,0x0b,0x22,0x00,0x22,0x00,0x15,0x02,0x99,0x1c,0x18,0x08,0x9b,0x15,0x06,0x0e,0x06,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f, -0x39,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xb5,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58,0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9, -0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x80,0x05,0xe6,0x00,0x3b,0x00,0x47,0x00,0x7b,0x40,0x0c,0x17,0x89,0x14,0x26,0x25,0x06,0x06,0x2c, -0x0d,0x89,0x1e,0x35,0xb8,0x01,0x82,0x40,0x21,0x45,0x3f,0x8c,0x2f,0x1c,0x1e,0x45,0x14,0x1e,0x45,0x2f,0x2f,0x45,0x1e,0x14,0x04,0x49,0x2c,0x89,0x00,0x3c,0x9b,0x2e,0x38,0x32,0x06,0x26,0x32,0x26,0x32,0x26,0x03,0x42,0xb8,0x01,0x7d,0xb2,0x38,0x18,0x10,0xb8,0x01,0x80,0x40,0x0a,0x1c,0x18,0x15,0x06,0x21,0x29,0x9b,0x0a,0x03,0x06, -0x00,0x3f,0x33,0xed,0x32,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06, -0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48, -0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39,0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31, -0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x02,0x00,0x82,0xff,0xf6,0x05,0x9c,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb9,0x00,0x0b,0x01,0x82,0x40, -0x1b,0x47,0x27,0x89,0x26,0x41,0x8c,0x05,0x1a,0x33,0x00,0x47,0x26,0x33,0x05,0x1d,0x47,0x26,0x05,0x05,0x26,0x47,0x03,0x4e,0x31,0x89,0x1d,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x02,0x15,0x9b,0x36,0x4a,0x9b,0x08,0x21,0x2c,0x00,0x02,0x36,0x2c,0x08,0x26,0x02,0x36,0x08,0x08,0x36,0x02,0x03,0x0e,0x26,0x06,0x33,0xb8,0x01,0x81,0xb5,0x1a, -0x18,0x3d,0x99,0x0e,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36, -0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, -0x23,0x22,0x06,0x04,0xfc,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a, -0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39, -0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x1b,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x7a,0x40,0x0a,0x06,0x20,0x2a,0x13,0x89,0x12,0x21,0x89,0x22,0x32,0xbb,0x01,0x82,0x00,0x41,0x00,0x3b,0x01,0x82,0x40,0x19,0x2c,0x12,0x22,0x41,0x2c,0x2c,0x41,0x22,0x12,0x04,0x45,0x2a,0x89,0x00,0x38,0x9b,0x06,0x20,0x03,0x2c,0x35,0x2f,0x2f, -0x03,0x3e,0xb8,0x01,0x7d,0x40,0x15,0x35,0x18,0x1d,0x9b,0x09,0x17,0x9b,0x0f,0x09,0x0f,0x09,0x0f,0x12,0x22,0x18,0x12,0x06,0x26,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10, -0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14, -0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23,0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65, -0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73,0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28, -0x3c,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x05,0x3f,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x20,0x40,0x10,0x04,0x89,0x13,0x13,0x20,0x1b,0x89,0x0c,0x00,0x99,0x17,0x06,0x10,0x99,0x08,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34, -0x12,0x24,0x13,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x02,0xe2,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb, -0xe5,0xf9,0xc8,0x80,0xd0,0x74,0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0x78,0xff,0xf7,0x05,0x3b,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x61,0xb5,0x29,0x89,0x04,0x00,0x01,0x19,0xbb,0x01,0x82,0x00,0x2e,0x00,0x33,0x01,0x82,0x40,0x12,0x13,0x11,0x2e,0x13,0x04,0x01,0x2e,0x13,0x13,0x2e,0x01,0x04,0x04,0x38,0x0c,0x89,0x21,0x0f, -0xb8,0x01,0x7f,0x40,0x11,0x2b,0x11,0x31,0x11,0x16,0x1d,0x16,0x1d,0x16,0x00,0x25,0x99,0x08,0x06,0x01,0x00,0x18,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36, -0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xf3,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85, -0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9,0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe, -0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x04,0x52,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x5a,0xbf,0x00,0x2f,0x01,0x82,0x00,0x03,0x00,0x17,0x01,0x84,0x00,0x16,0x00,0x09,0x01,0x82,0x40,0x22,0x29,0x00,0x16,0x29,0x03,0x16,0x29,0x29,0x16,0x03,0x03,0x33,0x20,0x89,0x11, -0x13,0x1b,0x2c,0x06,0x31,0x00,0x1b,0x16,0x00,0x06,0x06,0x0d,0x17,0x16,0x07,0x24,0x99,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x39,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69, -0x8f,0x57,0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x50, -0xff,0xf2,0x05,0x71,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x88,0x40,0x23,0x4e,0x89,0x27,0x54,0x22,0x07,0x89,0x3f,0x24,0x46,0x16,0x2f,0x04,0x27,0x2d,0x89,0x48,0x0f,0x89,0x35,0x22,0x3f,0x27,0x3f,0x48,0x35,0x45,0x45,0x35,0x48,0x3f,0x27,0x05,0x5e,0x5a,0xb8,0x01,0x82,0x40,0x1e,0x1c,0x0a,0x3b,0x45,0x3b,0x00,0x00,0x2a, -0x04,0x9b,0x42,0x2a,0x57,0x9b,0x24,0x2f,0x22,0x16,0x04,0x19,0x46,0x2a,0x1f,0x1f,0x19,0x4c,0x9b,0x2a,0x06,0x51,0xb8,0x01,0x7d,0xb5,0x19,0x19,0x32,0x99,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x17,0x39,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16, -0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34,0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x90,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb, -0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57,0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e, -0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae,0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27, -0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x78,0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x8b,0xbc,0x00,0x0d,0x01,0x84,0x00,0x43,0x00,0x3b,0x01,0x82,0x40,0x44,0x4b,0x25,0x89,0x22,0x51,0x03,0x03,0x3e,0x08,0x03,0x43,0x06,0x8a,0x34,0x13,0x32,0x22,0x34,0x43,0x4b,0x22,0x34,0x34,0x22,0x4b, -0x43,0x04,0x55,0x2d,0x89,0x19,0x46,0x0a,0x53,0x00,0x4d,0x38,0x1d,0x29,0x08,0x32,0x3e,0x13,0x04,0x10,0x0a,0x03,0x00,0x29,0x38,0x23,0x0a,0x00,0x38,0x38,0x00,0x0a,0x03,0x10,0x23,0x06,0x30,0x99,0x15,0x19,0x40,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x12,0x17,0x39, -0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34, -0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x42,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74, -0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e,0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f, -0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f,0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0x78, -0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0xba,0xb9,0x00,0x59,0x01,0x82,0xb6,0x3a,0x38,0x03,0x42,0x03,0x3a,0x40,0xb8,0x01,0x82,0x40,0x13,0x54,0x00,0x8a,0x45,0x3a,0x54,0x45,0x45,0x54,0x3a,0x03,0x33,0x6a,0x20,0x8a,0x10,0x66,0x1d,0x17,0xbb,0x01,0x82,0x00,0x60,0x00,0x27,0x01,0x84,0x40,0x41, -0x4d,0x1d,0x48,0x22,0x2d,0x0e,0x05,0x60,0x10,0x60,0x4d,0x4d,0x60,0x10,0x03,0x6a,0x09,0x89,0x33,0x50,0x24,0x68,0x1a,0x62,0x14,0x06,0x38,0x03,0x42,0x56,0x3d,0x22,0x0e,0x48,0x2d,0x04,0x2a,0x24,0x1d,0x1a,0x42,0x52,0x38,0x03,0x14,0x3d,0x24,0x1a,0x14,0x3d,0x3d,0x14,0x1a,0x24,0x04,0x2a,0x47,0x06,0x0c,0x99,0x2f,0x19,0x4a,0x2a, -0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10, -0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36, -0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x12,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6, -0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a, -0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f, -0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x78,0xff,0xf2,0x06,0x58,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0xad,0x40,0x0c,0x2a,0x29,0x38,0x89,0x1c,0x0c,0x3e,0x4e,0x16,0x04,0x0e,0x14,0xb8,0x01,0x84,0xb4,0x51,0x31,0x89,0x24,0x57,0xbb, -0x01,0x84,0x00,0x0e,0x00,0x4b,0x01,0x82,0x40,0x26,0x5c,0x62,0x03,0x03,0x5c,0x44,0x29,0x1c,0x51,0x24,0x0e,0x5c,0x5c,0x0e,0x24,0x51,0x1c,0x29,0x06,0x66,0x06,0x89,0x44,0x21,0x34,0x29,0x34,0x2a,0x2a,0x5f,0x2e,0x9b,0x27,0x5f,0x54,0x9b,0x11,0x59,0xb8,0x01,0x7d,0x40,0x11,0x00,0x4e,0x16,0x0c,0x3e,0x04,0x40,0x11,0x03,0x00,0x5f, -0x11,0x00,0x11,0x00,0x40,0x48,0xb8,0x01,0x7d,0xb7,0x5f,0x06,0x18,0x0a,0x99,0x3c,0x40,0x19,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11, -0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x05,0x07,0x27, -0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x36,0x57,0x15,0x2e,0x40, -0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21,0x1a,0x1a,0x25,0xf4,0x1a, -0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a,0x6a,0x94,0x01,0x04,0x9f, -0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x64,0xfd,0xeb,0x05,0x98,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x85,0xb3,0x3b,0x1e,0x21,0x40,0xb8,0x01,0x82,0xb2,0x19,0x0f,0x00,0xb8,0x01,0x83,0x40,0x14,0x2e, -0x23,0x2e,0x11,0x89,0x21,0x06,0x89,0x07,0x19,0x2e,0x21,0x07,0x07,0x21,0x2e,0x19,0x04,0x45,0x33,0xb8,0x01,0x83,0x40,0x11,0x28,0x3f,0x9b,0x35,0x25,0x1e,0x16,0x1c,0x23,0x0f,0x25,0x1c,0x25,0x1c,0x25,0x0c,0x38,0xb8,0x01,0x7d,0x40,0x0f,0x07,0x16,0x19,0x30,0x2b,0x2e,0x00,0x00,0x0c,0x2b,0x2b,0x02,0x99,0x0c,0x06,0x00,0x3f,0xed, -0x39,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x3f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x23, -0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfc,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d,0x82, -0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59,0x69, -0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0x70,0xfe,0xa4,0x05,0x65,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0xa6,0xb3,0x0a,0x56,0x14,0x0c,0xb8,0x01,0x82,0x40,0x09,0x5e,0x24, -0x06,0x89,0x5a,0x62,0x8c,0x14,0x3d,0xb8,0x01,0x82,0x40,0x1e,0x6b,0x71,0x37,0x34,0x89,0x44,0x37,0x6b,0x44,0x5e,0x5a,0x14,0x6b,0x44,0x44,0x6b,0x14,0x5a,0x5e,0x05,0x75,0x4b,0x89,0x1d,0x2b,0x9b,0x00,0x00,0x03,0x48,0xb8,0x01,0x80,0xb4,0x31,0x54,0x0a,0x14,0x68,0xb8,0x01,0x7d,0x40,0x1b,0x40,0x5a,0x21,0x6e,0x9b,0x3a,0x56,0x60, -0x14,0x03,0x1a,0x21,0x37,0x3a,0x40,0x3a,0x40,0x3a,0x1a,0x28,0x31,0x06,0x4e,0x99,0x1a,0x19,0x65,0xb8,0x01,0x7d,0xb1,0x0f,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x12,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34, -0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36, -0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xfa,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf,0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c, -0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51, -0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70,0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20, -0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x06,0xb5,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x64,0x40,0x09,0x02,0x89,0x31,0x00,0x33,0x27,0x89,0x0d,0x1a,0xb8,0x01,0x82,0x40,0x1b,0x37,0x3d,0x14,0x14,0x37,0x21,0x31,0x33,0x0d,0x37,0x37,0x0d,0x33,0x31,0x04,0x41, -0x12,0x89,0x21,0x3a,0x9b,0x14,0x1d,0x17,0x17,0x0f,0x34,0xb8,0x01,0x7d,0x40,0x0c,0x1d,0x19,0x33,0x00,0x24,0x99,0x0f,0x06,0x2e,0x99,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x32,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, -0x10,0xed,0x31,0x30,0x01,0x12,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22, -0x06,0x15,0x14,0x16,0x06,0x13,0xa2,0x70,0xcd,0x84,0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd, -0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f,0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0x01,0xb4,0x03,0xde,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x1f,0x40,0x0f, -0x11,0x89,0x09,0x09,0x1e,0x03,0x89,0x19,0x06,0x99,0x15,0x00,0x9b,0x0d,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x2c,0x79,0x93,0x8d,0x7f, -0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00,0x01,0x00,0x64,0xff,0x83,0x03,0x98,0x05,0x9a,0x00,0x1d,0x00,0x38,0x40,0x1c,0x19,0x89,0x0e,0x0d,0x1d,0x00,0x03,0x0d, -0x00,0x00,0x0d,0x03,0x03,0x1f,0x09,0x89,0x11,0x0d,0x0a,0x0e,0x0e,0x15,0x00,0x1d,0x06,0x9b,0x15,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x31,0x30,0x17,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35, -0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0xe9,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b,0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe, -0xae,0xfe,0x9b,0x9a,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x00,0x05,0x9a,0x00,0x23,0x00,0x38,0x40,0x1b,0x00,0x23,0x23,0x25,0x0c,0x20,0x0f,0x08,0x08,0x16,0x1c,0x89,0x0f,0x05,0x9b,0x20,0x0a,0x15,0x0a,0x15,0x00,0x12,0x9b,0x19,0x06,0x23,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x01,0x2f,0xed,0xc4,0x39, -0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0x67,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a, -0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36,0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x00,0x78,0xff,0x83,0x03,0xd3,0x05,0x9a,0x00,0x31,0x00,0x64,0x40,0x33,0x1f,0x1e, -0x1e,0x33,0x07,0x18,0x89,0x2b,0x28,0x04,0x00,0x16,0x2b,0x07,0x0e,0x00,0x2b,0x2b,0x00,0x0e,0x03,0x24,0x14,0x89,0x07,0x2e,0x9b,0x02,0x16,0x02,0x21,0x9b,0x26,0x0d,0x11,0x02,0x28,0x1c,0x26,0x1f,0x02,0x26,0x02,0x26,0x11,0x1e,0x1f,0x0a,0x9b,0x11,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11, -0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x10,0xed,0x11,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x17,0x07, -0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0x0a,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78,0x73,0x43,0x81,0x23,0x03,0x68, -0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x81,0x05,0x9a,0x00,0x22,0x00,0x33,0x40,0x1a,0x1c,0x89,0x04,0x0e,0x02,0x0e,0x20,0x20,0x0e,0x02, -0x03,0x24,0x09,0x89,0x14,0x21,0x9b,0x20,0x20,0x0f,0x04,0x9b,0x18,0x06,0x0e,0x0f,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x20,0x11,0x34,0x37,0x22,0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32, -0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x29,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01,0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01, -0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x3a,0x40,0x1c,0x04,0x03,0x00,0x89,0x16,0x07,0x14,0x16,0x03,0x16,0x03,0x16,0x18,0x0e,0x8a,0x0d,0x12,0x99,0x07,0x0e,0x09,0x09,0x04,0x00,0x0e,0x07,0x03,0x04,0x00,0x2f,0x33,0x3f, -0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17,0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08, -0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x78,0xff,0xf6,0x05,0x17,0x05,0x9a,0x00,0x2c,0x00,0x3f,0x40,0x20,0x17,0x16,0x16,0x1c,0x24,0x89,0x08,0x1c,0x89,0x10,0x08,0x10, -0x08,0x10,0x2e,0x00,0x8a,0x2c,0x1c,0x08,0x28,0x00,0x00,0x13,0x04,0x99,0x28,0x18,0x19,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02, -0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x1c,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70,0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1, -0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f,0xf0,0x01,0xf1,0x01,0x75,0x00,0x01,0x00,0x64,0xff,0xf6,0x05,0x65,0x05,0xae,0x00,0x26,0x00,0x46,0x40,0x12,0x00,0x8b,0x26,0x1b, -0x89,0x0c,0x1f,0x0c,0x07,0x26,0x0c,0x07,0x07,0x0c,0x26,0x03,0x28,0x12,0xb8,0x01,0x84,0x40,0x10,0x13,0x13,0x07,0x12,0x12,0x04,0x0f,0x9b,0x17,0x06,0x21,0x99,0x04,0x18,0x00,0x07,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30, -0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x65,0x07,0x72,0xf7,0xd9,0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54, -0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8,0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x5a, -0x05,0xae,0x00,0x15,0x00,0x2f,0x40,0x15,0x0c,0x0d,0x00,0x15,0x0f,0x08,0x0d,0x15,0x0d,0x15,0x17,0x08,0x0f,0x08,0x07,0x07,0x0d,0x0c,0x07,0x15,0x00,0x00,0x2f,0x32,0x3f,0x33,0x39,0x2f,0x33,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02, -0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x03,0xc1,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb,0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x2a, -0x05,0x9a,0x00,0x25,0x00,0x3e,0x40,0x20,0x00,0x25,0x0e,0x89,0x16,0x09,0x89,0x1c,0x25,0x16,0x1c,0x11,0x11,0x1c,0x16,0x25,0x04,0x27,0x23,0x89,0x02,0x11,0x0e,0x06,0x12,0x12,0x00,0x1c,0x9b,0x06,0x06,0x00,0x00,0x2f,0x3f,0xec,0x12,0x39,0x2f,0x12,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed, -0x11,0x33,0x31,0x30,0x17,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0xa3,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b, -0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12,0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x21,0x40,0x0c,0x00,0x8b, -0x10,0x10,0x1d,0x16,0x8b,0x08,0x13,0x9b,0x0c,0x19,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x01,0x78,0xd2,0x78,0x78,0xd0, -0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x01,0x00,0x7f,0xff,0xf1,0x03,0xda,0x03,0x6e,0x00,0x1b,0x00,0x34,0x40,0x12,0x1b,0x0f,0x0f,0x00,0x0e,0x07,0x8b,0x15,0x00,0x1b, -0x0e,0x0f,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0xb8,0x01,0x7f,0xb3,0x0b,0x18,0x9b,0x03,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26, -0x23,0x22,0x06,0x07,0x80,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65,0x58,0x00,0x00,0x01,0x00,0x3a,0xfd,0xfe,0x03,0xc2,0x03,0x64,0x00,0x12,0x00,0x24, -0x40,0x0d,0x00,0x8b,0x10,0x10,0x14,0x09,0x8b,0x08,0x08,0x08,0x04,0x11,0x0d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xc2,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98, -0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e,0x00,0x01,0x00,0x7f,0xfd,0xfe,0x03,0xda,0x03,0x6e,0x00,0x1f,0x00,0x47,0x40,0x1b,0x00,0xa8,0x1f,0x1f,0x21,0x1e,0x0a,0x10,0x04,0x04,0x11,0x03,0x18,0x8b,0x0a,0x11,0x10,0x03,0x1e,0x04,0x1c,0x10,0x04,0x10,0x04,0x14,0x07,0xb8, -0x01,0x7f,0xb4,0x1c,0x0d,0x9b,0x14,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x11,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16, -0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x03,0x0f,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86,0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a, -0x01,0xfe,0x07,0x00,0x00,0x01,0x00,0x80,0xfd,0xfe,0x03,0xdb,0x03,0x6e,0x00,0x1f,0x00,0x45,0x40,0x1d,0x0f,0x1b,0x1b,0x0e,0x01,0x1c,0x1c,0x07,0x21,0x1f,0x89,0x00,0x15,0x8b,0x07,0x1c,0x1b,0x0e,0x0f,0x01,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0x9b,0x0b,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39, -0x2f,0x2f,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x39,0x33,0x33,0x11,0x33,0x31,0x30,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x9f,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74, -0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b,0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x5c, -0xb4,0x14,0x8b,0x24,0x02,0x05,0xbb,0x01,0x83,0x00,0x2e,0x00,0x28,0x01,0x83,0x40,0x0d,0x0b,0x24,0x2e,0x0b,0x0b,0x2e,0x24,0x03,0x35,0x1d,0x8b,0x1c,0x31,0xbb,0x01,0x7e,0x00,0x02,0x00,0x2b,0x01,0x7e,0x40,0x0a,0x08,0x02,0x08,0x1c,0x1c,0x08,0x02,0x03,0x0f,0x21,0xb8,0x01,0x7f,0xb3,0x18,0x00,0x9b,0x0f,0x00,0x2f,0xed,0x2f,0xed, -0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36, -0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x4d,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81,0x56,0x5b,0x87,0x84, -0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x6f,0xb9,0x00,0x30,0x01,0x83,0xb7,0x00,0x0b,0x8b,0x28,0x1a,0x8b,0x1b,0x06, -0xb8,0x01,0x83,0x40,0x11,0x36,0x08,0x36,0x00,0x28,0x1b,0x36,0x36,0x1b,0x28,0x00,0x04,0x3d,0x23,0x8b,0x12,0x33,0xb8,0x01,0x7e,0x40,0x18,0x2d,0x08,0x2d,0x39,0x9b,0x03,0x2d,0x03,0x2f,0x1b,0x01,0x1b,0x30,0x2d,0x01,0x1b,0x03,0x2d,0x03,0x0e,0x1f,0x9b,0x17,0x25,0xb9,0x01,0x7f,0x00,0x0e,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39, -0x5d,0x2f,0x5d,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26, -0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a,0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83, -0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61,0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x00,0x01,0x00,0x80,0xfe,0x05, -0x04,0x30,0x03,0x6e,0x00,0x32,0x00,0x43,0xb9,0x00,0x00,0x01,0x84,0x40,0x0c,0x32,0x23,0x8b,0x10,0x32,0x10,0x32,0x10,0x34,0x19,0x18,0x2a,0xb8,0x01,0x84,0x40,0x0b,0x08,0x18,0x19,0x32,0x19,0x32,0x04,0x13,0x9b,0x1f,0x2d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x32, -0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x04,0x30,0x07,0x40,0x6d, -0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69,0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca, -0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x02,0x00,0x80,0xff,0xf0,0x04,0x01,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x47,0xb5,0x1a,0x8b,0x03,0x1d,0x00,0x0c,0xb8,0x01,0x83,0x40,0x0f,0x1e,0x03,0x00,0x1e,0x1e,0x00,0x03,0x03,0x26,0x21,0x8b,0x12,0x00,0x1d,0x21,0xb8,0x01,0x7d,0xb6,0x09,0x09,0x0f, -0x06,0x9b,0x16,0x23,0xb9,0x01,0x80,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, -0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0xa5,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d,0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92, -0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x09,0x05,0x29,0x16,0x8b,0x15,0x26,0x8b,0x08,0x2b,0xbb,0x01,0x83,0x00,0x37,0x00,0x31,0x01,0x83,0x40,0x10,0x00,0x29,0x15,0x08,0x37,0x00,0x00,0x37,0x08,0x15,0x04,0x3e,0x0e,0x8b,0x1e,0x34, -0xb8,0x01,0x7e,0x40,0x19,0x2e,0x3a,0x9b,0x03,0x29,0x03,0x20,0x15,0x30,0x15,0x40,0x15,0x03,0x15,0x2e,0x03,0x03,0x2e,0x15,0x03,0x1a,0x0b,0x9b,0x23,0x11,0xb9,0x01,0x7f,0x00,0x1a,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x39, -0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a,0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe, -0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x23,0x40,0x0d,0x00,0x8b,0x1a,0x1a,0x1c,0x16,0x8b,0x07, -0x12,0x9b,0x0c,0x07,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef, -0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8,0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x00,0x01,0x00,0x66,0xff,0xe7,0x03,0xa8,0x05,0xe8,0x00,0x09,0x00,0x2d,0x40,0x15,0x03,0x8b,0x07,0x05,0x07,0x05,0x0b,0x00,0x05,0x04,0x00,0x09, -0x04,0x09,0x04,0x09,0x01,0x07,0x18,0x01,0x06,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0x66,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa,0xcb,0x86,0x80,0xd2,0x05,0x35,0x83, -0x00,0x01,0x00,0x80,0x00,0x00,0x03,0xd2,0x05,0xe9,0x00,0x22,0x00,0x32,0xb7,0x08,0x8b,0x1b,0x1b,0x24,0x22,0x03,0x11,0xb8,0x01,0x84,0x40,0x0e,0x00,0x12,0x03,0x00,0x00,0x01,0x12,0x18,0x1e,0x9b,0x05,0x05,0x01,0x06,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x31,0x30, -0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x80,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa,0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed, -0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x34,0x05,0xe3,0x00,0x12,0x00,0x2c,0xb6,0x0a,0x8b,0x0b,0x0b,0x14,0x03,0x12,0xbb,0x01,0x85,0x00,0x00,0x00,0x0f,0x01,0x7f,0xb7,0x03,0x05,0x05,0x01,0x06,0x0b,0x00,0x18, -0x00,0x3f,0x32,0x3f,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x01,0x33,0x03,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x66,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01, -0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x66,0xff,0xe7,0x04,0x8b,0x05,0xe3,0x00,0x09,0x00,0x37,0x40,0x09,0x03,0x8b,0x07,0x05,0x07,0x05,0x07,0x0b,0x09,0xb8,0x01,0x85,0x40,0x0f,0x00,0x05,0x08,0x01,0x03,0x07,0x04,0x04,0x01,0x07,0x18,0x01,0x06,0x00,0x18,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0x01, -0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x33,0x01,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x66,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x59,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x35,0x40,0x16,0x00,0x04, -0x8b,0x0f,0x1c,0x02,0x1c,0x02,0x1f,0x15,0x8b,0x0b,0x03,0x12,0x9b,0x00,0x0e,0x0e,0x08,0x10,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x08,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, -0x21,0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xdf,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00, -0x00,0x02,0x00,0x80,0x00,0x00,0x04,0x59,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x36,0x40,0x1b,0x10,0x02,0x8b,0x03,0x1d,0x03,0x00,0x03,0x00,0x03,0x1f,0x19,0x8b,0x08,0x10,0x1c,0x99,0x01,0x05,0x05,0x03,0x16,0x9b,0x0b,0x07,0x03,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, -0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x59,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e,0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd, -0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x03,0x41,0x05,0xe3,0x00,0x07,0x00,0x2a,0x40,0x0d,0x02,0x89,0x05,0x03,0x01,0x05,0x05,0x01,0x03,0x03,0x09,0x00,0x02,0xb8,0x01,0x7f,0xb5,0x05,0x18,0x07,0x9b,0x00,0x06,0x00,0x3f,0xed, -0x3f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0x67,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe,0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x59,0x40,0x29,0x1a,0x1b,0x00,0x27, -0x03,0x09,0x8b,0x29,0x24,0x29,0x14,0x11,0x1b,0x06,0x29,0x1b,0x27,0x29,0x29,0x27,0x1b,0x03,0x36,0x1e,0x2f,0x8b,0x17,0x11,0x27,0x1b,0x1b,0x00,0x1a,0x14,0x06,0x0d,0x2c,0x9b,0x21,0x06,0x32,0xb8,0x01,0x7f,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0xc4,0x32,0x32,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x13,0x34,0x26,0x23, -0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5b,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76,0xce,0x7a,0x79,0xd0,0x75, -0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x02,0x00,0x80,0xff,0xdc,0x04,0x01,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x5a,0x40,0x2e,0x0d,0x0c,0x27,0x00,0x1e,0x24,0x8b,0x03,0x28,0x03,0x13,0x10,0x0c,0x21,0x03,0x0c, -0x00,0x03,0x03,0x00,0x0c,0x03,0x35,0x2e,0x09,0x8b,0x16,0x10,0x31,0x99,0x13,0x21,0x1a,0x06,0x06,0x0d,0x2b,0x9b,0x1a,0x07,0x00,0x0c,0x0c,0x27,0x0d,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10, -0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf1,0x39,0x40, -0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f,0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e, -0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0x14,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x26,0xb9,0x00,0x00,0x01,0x85,0x40,0x0b,0x0c,0x0c,0x19,0x12,0x8a,0x06,0x0f,0x9b,0x09,0x06,0x15,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed, -0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x14,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01,0x84,0x01,0x78,0x01,0x63,0xfe, -0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x00,0x8c,0xff,0xec,0x04,0x4d,0x05,0xa3,0x00,0x2c,0x00,0x56,0xb9,0x00,0x16,0x01,0x85,0x40,0x0e,0x2b,0x09,0x03,0x23,0x09,0x03,0x1d,0x1d,0x03,0x09,0x23,0x04,0x2e,0x28,0xbb,0x01,0x85,0x00,0x0f,0x00,0x2b,0x01,0x7f,0x40,0x15, -0x0c,0x1c,0x1d,0x00,0x0c,0x06,0x0c,0x1d,0x1d,0x0c,0x06,0x03,0x13,0x1f,0x99,0x1a,0x19,0x25,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04,0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x38,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc, -0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a,0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x64,0xff,0xec,0x05,0x7f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x85,0xb5,0x31, -0x1a,0x1a,0x13,0x21,0x4d,0xbe,0x01,0x85,0x00,0x2b,0x00,0x25,0x01,0x84,0x00,0x52,0x00,0x38,0x01,0x85,0x40,0x0b,0x13,0x2b,0x52,0x13,0x13,0x52,0x2b,0x03,0x57,0x4c,0x04,0xb8,0x01,0x85,0xb4,0x48,0x40,0x9b,0x0b,0x50,0xb8,0x01,0x7e,0x40,0x13,0x28,0x55,0x9b,0x21,0x1a,0x9b,0x31,0x0b,0x28,0x21,0x31,0x31,0x21,0x28,0x0b,0x04,0x2f, -0x10,0x07,0xb8,0x01,0x7f,0x40,0x0b,0x3b,0x45,0x19,0x16,0x1d,0x9b,0x4c,0x00,0x34,0x2f,0x06,0x00,0x3f,0x33,0xc4,0x32,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x11, -0x33,0x31,0x30,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x94,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85, -0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48, -0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x06,0x1e,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x5e,0xb9,0x00,0x15,0x01,0x84,0xb2,0x2e,0x22,0x08,0xbb,0x01,0x85,0x00,0x09,0x00,0x28,0x01,0x85,0x40,0x0b, -0x00,0x2e,0x09,0x00,0x00,0x09,0x2e,0x03,0x33,0x11,0x29,0xb8,0x01,0x85,0x40,0x0f,0x1b,0x31,0x9b,0x22,0x1f,0x11,0x11,0x18,0x04,0x0d,0x9b,0x24,0x1f,0x06,0x2c,0xb8,0x01,0x7e,0xb4,0x18,0x19,0x00,0x09,0x18,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f, -0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x7e,0x82,0x62,0x69, -0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4, -0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0xc4,0x06,0x27,0x00,0x3d,0x00,0x6f,0x40,0x12,0x08,0x89,0x32,0x38,0x8b,0x03,0x2f,0x00,0x32,0x00,0x03,0x03,0x00,0x32,0x03,0x28,0x0b,0x1f,0xb8,0x01,0x85,0xb6,0x1c,0x0b,0x1c,0x0b,0x1c,0x3f,0x28,0xb8,0x01,0x85,0x40,0x14,0x15,0x23,0x19,0x19,0x1d,0x35, -0x0e,0x2f,0x2f,0x12,0x03,0x35,0x3b,0x3b,0x12,0x06,0x9b,0x35,0x06,0x2b,0xb8,0x01,0x7f,0xb4,0x12,0x19,0x0b,0x0c,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0x10,0xc4,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10, -0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, -0x22,0x26,0x03,0x9f,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12, -0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7,0x4c,0x5e,0x4f,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0xf8,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0xa2,0xb9,0x00,0x4f,0x01,0x84,0xb4,0x3e,0x46,0x3c,0x3e, -0x44,0xbb,0x01,0x84,0x00,0x55,0x00,0x04,0x01,0x85,0x40,0x1f,0x4a,0x2a,0x89,0x15,0x1b,0x8b,0x24,0x13,0x21,0x15,0x21,0x24,0x24,0x21,0x15,0x03,0x0c,0x2d,0x3e,0x55,0x4a,0x2d,0x00,0x00,0x2d,0x4a,0x55,0x3e,0x05,0x5c,0x0c,0xb8,0x01,0x85,0x40,0x1e,0x37,0x00,0x4e,0x41,0x30,0x13,0x27,0x9b,0x18,0x46,0x3c,0x08,0x13,0x34,0x24,0x1e, -0x08,0x52,0x18,0x41,0x1e,0x18,0x1e,0x18,0x34,0x58,0x9b,0x41,0x06,0x0f,0xb8,0x01,0x7f,0xb4,0x34,0x19,0x2d,0x2e,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f, -0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23, -0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x04,0xf8,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d, -0x2d,0xfe,0xc7,0xc5,0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe, -0xaf,0x86,0x83,0x89,0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01, -0x00,0x7b,0xff,0xec,0x04,0x61,0x06,0x3b,0x00,0x3a,0x00,0x76,0xb9,0x00,0x24,0x01,0x85,0xb4,0x0b,0x32,0x89,0x00,0x1e,0xb8,0x01,0x85,0x40,0x11,0x17,0x12,0x13,0x0b,0x00,0x39,0x17,0x13,0x13,0x17,0x39,0x00,0x0b,0x05,0x3c,0x1a,0x05,0xb8,0x01,0x85,0xb3,0x2b,0x13,0x12,0x02,0xb8,0x01,0x7f,0x40,0x0d,0x2e,0x00,0x2e,0x35,0x12,0x2e, -0x35,0x35,0x2e,0x12,0x03,0x20,0x08,0xb8,0x01,0x7f,0x40,0x0a,0x27,0x19,0x1a,0x1b,0x17,0x1e,0x0f,0x9b,0x20,0x06,0x00,0x3f,0xed,0x39,0x39,0xc4,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed, -0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x02,0x4c,0x16, -0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e,0x72,0x26,0x1b,0x15,0x19,0x2a, -0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0xa0,0xff,0xec,0x05,0x85,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x76,0xb9,0x00,0x1c,0x01,0x84,0xb5,0x3d,0x28,0x11,0x11,0x38,0x2e,0xbb,0x01,0x85,0x00,0x0a,0x00, -0x04,0x01,0x85,0x40,0x0d,0x33,0x3d,0x0a,0x37,0x33,0x33,0x37,0x0a,0x3d,0x04,0x42,0x18,0x38,0xb8,0x01,0x85,0x40,0x15,0x22,0x40,0x9b,0x18,0x11,0x9b,0x28,0x18,0x28,0x18,0x28,0x1f,0x0e,0x14,0x9b,0x37,0x00,0x2a,0x26,0x06,0x3b,0xb8,0x01,0x7e,0xb2,0x1f,0x19,0x30,0xb8,0x01,0x7f,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33, -0xc6,0x32,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15, -0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xba,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63,0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91, -0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57, -0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0x8e,0x06,0x27,0x00,0x45,0x00,0x6d,0xb9,0x00,0x00,0x01,0x85,0xb5,0x43,0x33,0x13,0x13,0x0c,0x2e,0xb8,0x01,0x85,0x40,0x0f,0x1a,0x1f,0x89,0x28,0x43,0x1a,0x22,0x28,0x28,0x22,0x1a,0x43,0x04,0x47,0x0c,0xbb,0x01,0x85,0x00,0x39,0x00,0x13,0x01, -0x81,0x40,0x09,0x33,0x1f,0x25,0x33,0x25,0x33,0x2b,0x17,0x0f,0xb8,0x01,0x7f,0x40,0x0b,0x31,0x36,0x19,0x05,0x3f,0x3f,0x44,0x1d,0x9b,0x2b,0x06,0x00,0x3f,0xed,0xc4,0x39,0x11,0x33,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11, -0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37, -0x3e,0x02,0x35,0x35,0x33,0x04,0x8e,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52,0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55, -0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x01,0x00,0xe9,0xff,0xec,0x04,0xac,0x06,0x3b, -0x00,0x43,0x00,0x85,0xb9,0x00,0x2f,0x01,0x85,0xb5,0x1b,0x40,0x04,0x8a,0x05,0x0b,0xb8,0x01,0x85,0x40,0x15,0x3b,0x05,0x23,0x38,0x29,0x3b,0x00,0x1b,0x10,0x23,0x29,0x3b,0x3b,0x29,0x23,0x10,0x1b,0x00,0x06,0x45,0x15,0xb8,0x01,0x85,0x40,0x20,0x36,0x00,0x43,0x3e,0x1e,0x9b,0x2c,0x38,0x12,0x9b,0x0f,0x20,0x26,0x2c,0x40,0x05,0x3e, -0x26,0x2c,0x0f,0x05,0x05,0x0f,0x2c,0x26,0x04,0x33,0x08,0x9b,0x3e,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x33,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39, -0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35, -0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xac,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8,0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67, -0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x02,0x00,0x84,0x00,0x45,0x03,0x96,0x05,0xa3,0x00,0x0e, -0x00,0x1d,0x00,0x1f,0x40,0x0f,0x0f,0x89,0x00,0x00,0x1f,0x07,0x89,0x17,0x0b,0x9a,0x13,0x03,0x9b,0x1b,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32, -0x12,0x02,0xef,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x00,0x01,0x00,0x69,0xfe,0xf1,0x03,0x48, -0x05,0xa3,0x00,0x2e,0x00,0x3d,0x40,0x0f,0x00,0x89,0x15,0x1c,0x89,0x28,0x15,0x21,0x28,0x28,0x21,0x15,0x03,0x30,0x0e,0xb8,0x01,0x83,0x40,0x0e,0x09,0x0c,0x24,0x0c,0x24,0x05,0x18,0x9b,0x2c,0x06,0x11,0x99,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, -0xed,0x31,0x30,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x48,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11,0x1f,0x06,0x0b, -0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01,0x0e,0x01,0x9e, -0xe2,0xfe,0xd5,0x00,0x00,0x01,0x00,0x84,0x00,0x8a,0x04,0x64,0x05,0xa3,0x00,0x3f,0x00,0x4e,0xb5,0x0c,0x32,0x08,0x32,0x0f,0x00,0xb8,0x01,0x83,0x40,0x21,0x3b,0x2f,0x89,0x15,0x3b,0x15,0x0f,0x20,0x20,0x0f,0x15,0x3b,0x04,0x41,0x1c,0x89,0x27,0x32,0x08,0x0c,0x05,0x08,0x3d,0x3d,0x08,0x05,0x0c,0x04,0x23,0x17,0x9b,0x2c,0x06,0x00, -0x3f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15, -0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x64,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f, -0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b,0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb, -0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01,0x00,0x84,0x01,0x73,0x04,0x1b,0x05,0xa3,0x00,0x54,0x00,0x4c,0x40,0x28,0x47,0x89,0x14,0x41,0x4b,0x0c,0x14,0x34,0x23,0x0c,0x14,0x00,0x00,0x14,0x0c,0x23,0x34,0x05,0x56,0x2f,0x89,0x3a,0x16,0x2b,0x9b,0x3e,0x41,0x3e,0x51,0x1f,0x51,0x1f,0x04,0x37,0x4b,0x03,0x0a,0x43, -0x3e,0x06,0x00,0x3f,0x33,0xc4,0x17,0x32,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07, -0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x04,0x0e,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23, -0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29,0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07, -0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14,0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01, -0x00,0x84,0xff,0xc3,0x03,0x45,0x05,0xa7,0x00,0x26,0x00,0x2d,0x40,0x17,0x10,0x12,0x04,0x89,0x1f,0x25,0x12,0x1f,0x1f,0x12,0x25,0x03,0x28,0x18,0x8a,0x0b,0x1b,0x9a,0x08,0x10,0x06,0x00,0x07,0x00,0x3f,0x3f,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x32,0x16,0x16,0x15,0x10,0x02, -0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xa9,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed, -0x6b,0xfe,0xef,0xfe,0x1c,0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x01,0x00,0x84,0x01,0x46,0x03,0x79,0x05,0xa7,0x00,0x33,0x00,0x49,0xb9,0x00,0x31,0x01,0x83,0xb4,0x07,0x2f,0x89,0x28,0x0a,0xb8,0x01,0x84,0x40,0x1b, -0x21,0x00,0x07,0x28,0x21,0x21,0x28,0x07,0x00,0x04,0x35,0x19,0x8b,0x13,0x0a,0x16,0x2b,0x04,0x16,0x04,0x16,0x0f,0x2b,0x07,0x1d,0x99,0x0f,0x00,0x2f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27, -0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0x79,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d, -0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d,0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18, -0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0xdd,0x05,0xa3,0x00,0x40,0x00,0x49,0xb7,0x06,0x89,0x22,0x00,0x3b,0x8b,0x36,0x27,0xb8,0x01,0x82,0x40,0x1c,0x2e,0x22,0x15,0x36,0x2e,0x2e,0x36,0x15,0x22,0x04,0x42,0x1c,0x89,0x0d,0x24,0x00,0x00,0x2b,0x2b,0x39,0x1f,0x9a,0x09,0x39,0x06,0x19,0x12,0x06, -0x00,0x3f,0x33,0x3f,0xd4,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32, -0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x7d,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01, -0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe,0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44, -0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x00,0x01,0x00,0x84,0xff,0xf6,0x03,0xe8,0x05,0xa3,0x00,0x3e,0x00,0x4a,0x40,0x29,0x00,0x89,0x2c,0x23,0x89,0x0a,0x27,0x89,0x06,0x2c,0x0a,0x06,0x16,0x16,0x06,0x0a,0x2c,0x04,0x40,0x37,0x10,0x89,0x1d,0x34,0x34,0x20,0x30,0x9b,0x3b,0x06,0x0d,0x9b,0x20,0x06,0x16,0x19,0x18,0x29, -0x9a,0x03,0x18,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35, -0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03,0xe8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b, -0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f,0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21, -0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0x70,0x00,0x45,0x03,0x6c,0x05,0xa7,0x00,0x31,0x00,0x41,0xb9,0x00,0x1c,0x01,0x85,0x40,0x10,0x17,0x05,0x89,0x27,0x17,0x27,0x00,0x00,0x27,0x17,0x03,0x33,0x22,0x8b,0x14,0x22,0xb8,0x01,0x81,0xb5,0x11,0x2f,0x11,0x2f,0x19,0x27,0xb8,0x01,0x80,0xb2,0x0a,0x19,0x07,0x00,0x3f, -0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xec,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37, -0x3e,0x04,0x17,0x32,0x16,0x03,0x6c,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26,0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f, -0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0x33,0x05,0xa7,0x00,0x37,0x00,0x3f,0x40,0x21,0x00,0x1f,0x2d,0x89,0x0e,0x33,0x89,0x08,0x1f,0x0e,0x08,0x08,0x0e,0x1f,0x03,0x39, -0x14,0x89,0x27,0x36,0x9a,0x02,0x1c,0x02,0x1c,0x2a,0x17,0x9a,0x23,0x11,0x9b,0x2a,0x07,0x00,0x3f,0xed,0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02, -0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x03,0x07,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e, -0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4,0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b, -0x08,0x00,0x00,0x02,0x00,0x60,0xff,0xe7,0x04,0xa2,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x23,0x40,0x0d,0x09,0x89,0x15,0x15,0x19,0x0f,0x89,0x03,0x0c,0x9b,0x06,0x06,0x12,0xb8,0x01,0x7f,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14, -0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x81,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x00,0x01,0x00,0x50, -0xff,0xe7,0x03,0x44,0x04,0x19,0x00,0x15,0x00,0x28,0x40,0x0b,0x0a,0x00,0x05,0x89,0x10,0x0b,0x15,0x0b,0x15,0x02,0x0d,0xb8,0x01,0x7f,0xb5,0x08,0x19,0x13,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0xc4,0x32,0x31,0x30,0x13,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x56,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00,0x02,0x00,0x2d,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x50,0xb9,0x00,0x0d,0x01, -0x83,0x40,0x0b,0x25,0x19,0x8a,0x0b,0x25,0x0b,0x25,0x0b,0x29,0x03,0x20,0xb8,0x01,0x83,0xb3,0x13,0x03,0x04,0x22,0xb8,0x01,0x7d,0x40,0x11,0x10,0x0d,0x10,0x16,0x04,0x10,0x04,0x10,0x00,0x1d,0x9b,0x16,0x06,0x06,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed, -0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb0,0x7b,0xb8,0x50,0xa8,0xdf,0x77,0xb4,0x63,0x1d,0x0c, -0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x00,0x50,0xfd,0x6d,0x03,0xd7,0x04,0x19, -0x00,0x25,0x00,0x40,0x40,0x18,0x1c,0x27,0x13,0x0a,0x25,0x10,0x89,0x05,0x19,0x99,0x1e,0x19,0x0b,0x0a,0x15,0x00,0x13,0x0a,0x00,0x0a,0x00,0x0d,0x25,0x02,0xb8,0x01,0x7f,0xb5,0x13,0x18,0x08,0x9b,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0xc4,0x32,0x39, -0x10,0xc6,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x50,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19,0x53,0xb6,0xe0,0x44,0x43, -0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x21,0x00,0x46,0x40,0x1d,0x1f,0x0a,0x0e,0x89,0x0f,0x12,0x0f,0x0a, -0x0f,0x0a,0x0f,0x23,0x03,0x89,0x17,0x1e,0x1f,0x12,0x09,0x1f,0x09,0x1f,0x14,0x00,0x9b,0x1b,0x06,0x0a,0x06,0xb8,0x01,0x7f,0xb3,0x14,0x18,0x0f,0x18,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x06,0x15, -0x14,0x16,0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x02,0x75,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f, -0xa9,0x9c,0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x05,0xb0,0x04,0x19,0x00,0x32,0x00,0x59,0xb9,0x00,0x0a,0x01,0x84,0x40,0x21,0x05,0x18,0x17,0x2b,0x2b,0x1f,0x00,0x8a,0x0f,0x22,0x05,0x0f,0x0f, -0x05,0x22,0x03,0x34,0x1f,0x89,0x24,0x21,0x22,0x2b,0x18,0x07,0x22,0x18,0x18,0x22,0x07,0x03,0x28,0x0d,0xb8,0x01,0x7f,0xb7,0x02,0x19,0x14,0x1b,0x9b,0x2e,0x28,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x11,0x33, -0x33,0x10,0xed,0x31,0x30,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0xb0,0xfa,0x6c,0x79,0x14,0x83,0x0e, -0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, -0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x00,0x01,0x00,0x77,0xff,0xe7,0x04,0x35,0x07,0x62,0x00,0x31,0x00,0x50,0x40,0x26,0x19,0x8b,0x0d,0x1f,0x89,0x06,0x0d,0x06,0x13,0x2c,0x2c,0x13,0x06,0x0d,0x04,0x33,0x31,0x8a,0x26,0x12,0x06,0x19,0x22,0x13,0x13,0x22,0x2b,0x2c,0x2c,0x10,0x2e,0x9b,0x29,0x16,0x9b,0x10,0x06,0x03, -0xb8,0x01,0x7f,0xb1,0x22,0x19,0x00,0x3f,0xed,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15, -0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0x1b,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46,0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1, -0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d,0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x60,0xfd,0x6d,0x06,0xec,0x04,0x19,0x00,0x32,0x00,0x5e,0x40,0x09, -0x08,0x07,0x1b,0x1b,0x0f,0x23,0x8a,0x32,0x2b,0xb8,0x01,0x83,0x40,0x21,0x2a,0x12,0x32,0x2a,0x2a,0x32,0x12,0x03,0x34,0x0f,0x89,0x14,0x04,0x0b,0x9b,0x18,0x11,0x12,0x1b,0x08,0x18,0x2a,0x12,0x08,0x08,0x12,0x2a,0x03,0x30,0x1e,0x18,0x06,0x25,0xb8,0x01,0x7f,0xb1,0x30,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, -0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11, -0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x11,0x05,0x0c,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b, -0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x3f,0x04,0x00,0x00,0x0e,0x00,0x2a,0x40,0x14,0x0b,0x89,0x08,0x07,0x00,0x00,0x04,0x0c,0x0c,0x10,0x03,0x89,0x04,0x00,0x04,0x07, -0x06,0x0c,0x04,0x18,0x00,0x3f,0x33,0x3f,0x12,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x33,0xed,0x31,0x30,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0x25,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99,0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e, -0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x00,0x60,0xfd,0x6d,0x04,0x25,0x04,0x19,0x00,0x24,0x00,0x4d,0xb9,0x00,0x0e,0x01,0x85,0x40,0x12,0x09,0x05,0x89,0x14,0x09,0x14,0x20,0x20,0x14,0x09,0x03,0x26,0x1a,0x89,0x00,0x20,0x1f,0x11,0xb8,0x01,0x7e,0x40,0x11,0x07,0x1f,0x07,0x0b,0x0b,0x07,0x1f,0x03,0x02,0x1d,0x9a,0x22, -0x19,0x17,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12, -0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x60,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, -0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0x60,0xff,0xe7,0x04,0x7b,0x05,0xfa,0x00,0x22,0x00,0x4b,0xb1,0x03,0x0e,0xb8,0x01,0x84,0x40,0x19,0x0f,0x0a,0x89,0x05,0x0f,0x1b,0x05,0x05,0x1b,0x0f,0x03,0x24,0x15,0x89,0x20,0x1b,0x1a,0x03,0x0f,0x1a,0x0f,0x1a,0x0f,0x00,0x18,0xb8,0x01,0x7f,0xb6,0x1d,0x19,0x12,0x9b,0x07,0x00,0x06, -0x00,0x3f,0xc6,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11, -0x34,0x12,0x02,0x29,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35,0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x00,0x03,0x00,0x82, -0xff,0xe8,0x05,0x70,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33,0x00,0x5c,0xbc,0x00,0x1b,0x01,0x85,0x00,0x27,0x00,0x00,0x01,0x85,0xb2,0x1a,0x05,0x14,0xb8,0x01,0x85,0x40,0x0f,0x13,0x2e,0x8a,0x21,0x27,0x1a,0x13,0x21,0x21,0x13,0x1a,0x27,0x04,0x35,0x0c,0xb8,0x01,0x85,0x40,0x12,0x0b,0x16,0x10,0x99,0x05,0x1a,0x13,0x0b,0x02,0x09, -0x2b,0x9b,0x24,0x06,0x31,0x99,0x1e,0x19,0x00,0x3f,0xed,0x3f,0xed,0xde,0x32,0xcd,0x32,0x32,0x39,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33, -0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x70,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76,0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe, -0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2,0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83, -0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x00,0xf0,0x00,0x00,0x01,0x91,0x06,0xd0,0x00,0x03,0x00,0x12,0xb9,0x00,0x00,0x01,0x85,0xb3,0x01,0x02,0x01,0x18,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x91,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x64,0xff,0xe8,0x06,0x29,0x06,0xe8,0x00,0x20,0x00,0x2c, -0x00,0x38,0x00,0x45,0x00,0x81,0xb9,0x00,0x14,0x01,0x84,0xb4,0x39,0x21,0x89,0x27,0x18,0xbb,0x01,0x85,0x00,0x09,0x00,0x3f,0x01,0x84,0x40,0x37,0x0e,0x00,0x39,0x27,0x09,0x0e,0x0e,0x09,0x27,0x39,0x00,0x05,0x47,0x2d,0x89,0x33,0x3c,0x9b,0x11,0x43,0x00,0x20,0x06,0x9b,0x1a,0x24,0x30,0x2a,0x36,0x17,0x0a,0x18,0x20,0x1a,0x0a,0x36, -0x43,0x20,0x1a,0x30,0x36,0x36,0x30,0x1a,0x20,0x04,0x09,0x43,0x06,0x09,0x18,0x1e,0x99,0x02,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10, -0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, -0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x06,0x29,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x01,0x77, -0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a,0x72,0x00,0x02,0x00,0x64, -0x00,0x00,0x04,0xfa,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x6f,0xb1,0x16,0x22,0xbb,0x01,0x84,0x00,0x2a,0x00,0x04,0x01,0x85,0xb2,0x05,0x25,0x00,0xb8,0x01,0x84,0x40,0x0f,0x0b,0x12,0x27,0x0b,0x2a,0x05,0x0e,0x0b,0x0b,0x0e,0x05,0x2a,0x04,0x37,0x30,0xb8,0x01,0x84,0x40,0x1b,0x1c,0x33,0x99,0x19,0x2d,0x9b,0x1f,0x22,0x07,0x03,0x9b, -0x06,0x27,0x0e,0x9b,0x0f,0x06,0x0f,0x06,0x0f,0x05,0x16,0x9b,0x22,0x06,0x05,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x33,0x10,0xdd,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x33,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x10,0x21,0x23,0x11, -0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xfa,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02, -0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b,0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74, -0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x01,0x00,0xb4,0x00,0x00,0x05,0x0a,0x06,0xd0,0x00,0x12,0x00,0x5c,0xb1,0x11,0x04,0xb8,0x01,0x85,0xb5,0x05,0x0e,0x05,0x0b,0x0a,0x00,0xb8,0x01,0x85,0x40,0x0a,0x01,0x05,0x0a,0x01,0x01,0x0a,0x05,0x03,0x14,0x0d,0xb8,0x01,0x85,0x40,0x16,0x07,0x03,0x07,0x9b,0x11,0x0d,0x0a,0x0b,0x0d,0x0f,0x0b, -0x0b,0x0f,0x0d,0x03,0x0c,0x01,0x05,0x18,0x08,0x0c,0x07,0x00,0x3f,0xcd,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11, -0x33,0x11,0x21,0x05,0x0a,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xb4,0xff,0xe9,0x04,0xc6,0x06,0xd0,0x00,0x1b,0x00,0x4b,0xb9,0x00,0x00,0x01,0x84,0x40,0x0d,0x12, -0x11,0x07,0x04,0x11,0x11,0x04,0x07,0x03,0x1d,0x14,0x10,0x0d,0xb8,0x01,0x85,0x40,0x13,0x0e,0x0a,0x9b,0x11,0x12,0x14,0x18,0x12,0x18,0x12,0x0e,0x0f,0x13,0x07,0x0e,0x18,0x04,0x03,0x19,0x00,0x3f,0x33,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x32,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, -0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x04,0xc6,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b, -0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39,0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x02,0x00,0x64,0xff,0xe8,0x03,0xfa,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x5e,0xb9,0x00,0x00,0x01,0x84,0x40,0x13,0x1b,0x21,0x1b,0x21,0x1b,0x05,0x28,0x07,0x0a,0x14,0x11,0x04,0x08,0x12,0x12,0x08,0x0e,0x08,0x16, -0xb8,0x01,0x85,0x40,0x18,0x05,0x1e,0x9b,0x18,0x14,0x08,0x9b,0x09,0x11,0x09,0x16,0x18,0x09,0x18,0x09,0x03,0x0c,0x99,0x0f,0x06,0x24,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0xed,0xc6,0xc4,0x11,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x2f,0x2f, -0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfa,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f, -0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51,0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x00,0xff,0xe8,0x05,0x9d,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x5a, -0xb5,0x0a,0x8a,0x16,0x08,0x16,0x0d,0xb8,0x01,0x84,0xb7,0x26,0x16,0x26,0x16,0x26,0x2d,0x00,0x20,0xb8,0x01,0x84,0x40,0x1b,0x13,0x0a,0x16,0x16,0x1f,0x29,0x29,0x10,0x1f,0x19,0x9b,0x06,0x08,0x06,0x08,0x06,0x1f,0x1d,0x9b,0x02,0x17,0x1f,0x07,0x23,0x99,0x10,0x19,0x00,0x3f,0xed,0x3f,0x33,0xdd,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10, -0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b, -0x5b,0xfb,0x47,0x53,0x77,0x76,0x54,0x54,0x76,0x77,0x00,0x04,0x00,0x82,0xff,0xe8,0x04,0x4e,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x6f,0x40,0x0a,0x34,0x8a,0x1e,0x0c,0x89,0x12,0x00,0x89,0x06,0x18,0xb8,0x01,0x85,0x40,0x11,0x2e,0x20,0x12,0x2c,0x06,0x2e,0x1e,0x12,0x06,0x2e,0x2e,0x06,0x12,0x1e,0x04,0x22,0x2a, -0xbb,0x01,0x85,0x00,0x29,0x00,0x23,0x01,0x85,0x40,0x11,0x22,0x31,0x9b,0x2c,0x20,0x26,0x26,0x1b,0x22,0x09,0x15,0x03,0x0f,0x29,0x22,0x06,0x37,0xb8,0x01,0x80,0xb1,0x1b,0x19,0x00,0x3f,0xed,0x3f,0x33,0xde,0x32,0xcd,0x32,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12, -0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22, -0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x13,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf,0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b, -0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x03,0x00,0x64,0xff,0xe9,0x05,0xdd,0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x82,0xb9,0x00,0x30,0x01, -0x84,0x40,0x11,0x23,0x0d,0x0d,0x3b,0x06,0x89,0x36,0x04,0x08,0x8b,0x12,0x1d,0x12,0x20,0x03,0x23,0x00,0xb8,0x01,0x84,0x40,0x0c,0x29,0x23,0x36,0x12,0x29,0x29,0x12,0x36,0x23,0x04,0x43,0x3b,0xb8,0x01,0x85,0xb5,0x17,0x2d,0x9b,0x26,0x33,0x3f,0xb8,0x01,0x81,0x40,0x14,0x14,0x38,0x9b,0x1b,0x20,0x03,0x1d,0x36,0x06,0x12,0x06,0x1b, -0x14,0x1b,0x14,0x1b,0x0c,0x33,0x06,0x0d,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x14, -0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37, -0x05,0xdd,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57,0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86, -0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0x00,0x02,0x00,0x67,0xff,0xe7,0x04,0x72,0x05,0xb2,0x00,0x0f,0x00,0x1d,0x00,0x2b, -0xb9,0x00,0x0c,0x01,0x86,0xb3,0x1b,0x1b,0x1f,0x14,0xbb,0x01,0x86,0x00,0x04,0x00,0x10,0x01,0x80,0xb2,0x08,0x07,0x17,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x16,0x15,0x10,0x02,0x04,0x13,0x22,0x06,0x02,0x15, -0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x01,0xe2,0x78,0xab,0x58,0xae,0x01,0x28,0xc1,0x69,0xaa,0x61,0xab,0xfe,0xde,0x4a,0x87,0xd4,0x86,0x75,0x70,0x81,0xd2,0x85,0x71,0x19,0x75,0xd1,0x86,0x01,0x19,0x01,0xe9,0xfd,0x6a,0xc3,0x7e,0xfe,0xcf,0xfe,0x0a,0xf9,0x05,0x2d,0xd0,0xfe,0x65,0xd5,0xa5,0xaa,0xcf,0x01,0x9b,0xd0,0xa4, -0xb1,0x00,0x00,0x01,0x00,0x84,0xff,0xe7,0x04,0x18,0x05,0xb5,0x00,0x23,0x00,0x40,0xb9,0x00,0x18,0x01,0x86,0xb2,0x0d,0x13,0x1f,0xb8,0x01,0x86,0x40,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x25,0x00,0x00,0x13,0x00,0x13,0x10,0x03,0xb8,0x01,0x80,0xb2,0x21,0x19,0x16,0xb8,0x01,0x80,0xb1,0x10,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39, -0x2f,0x2f,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x1e,0x02,0x15,0x10,0x21,0x22,0x27,0x84,0x3b,0xbe,0x50,0x9c,0x97,0x33,0x4d,0x46,0x3a,0x1f,0xc2,0xbd,0x5d, -0x5b,0x2e,0x35,0x48,0xe4,0x34,0x54,0x49,0x30,0x1d,0xfe,0x26,0xcd,0x7b,0xb2,0x13,0x1a,0x83,0x9b,0x3a,0x7c,0x6b,0x61,0x70,0x78,0x3f,0xb2,0xb7,0x10,0x9e,0x08,0x08,0xb2,0x40,0x88,0x7b,0x6c,0x62,0x69,0x3c,0xfe,0x38,0x1d,0x00,0x00,0x01,0x00,0x67,0xff,0xe7,0x04,0x8e,0x05,0xb2,0x00,0x27,0x00,0x61,0xb9,0x00,0x19,0x01,0x86,0xb4, -0x0b,0x12,0x89,0x13,0x00,0xb8,0x01,0x85,0x40,0x0e,0x27,0x09,0x1d,0x0b,0x1d,0x13,0x27,0x27,0x13,0x1d,0x0b,0x04,0x29,0x21,0xb8,0x01,0x86,0xb2,0x06,0x09,0x1c,0xb8,0x01,0x80,0x40,0x09,0x1d,0x27,0x13,0x13,0x27,0x1d,0x03,0x03,0x16,0xb8,0x01,0x80,0xb2,0x0f,0x07,0x24,0xb8,0x01,0x80,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12, -0x17,0x39,0x2f,0x2f,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33, -0x32,0x12,0x13,0x04,0x8e,0x5d,0xfe,0xc9,0xde,0xcc,0xe9,0x92,0x7a,0xaa,0x64,0xc0,0x84,0xa0,0xe2,0x1d,0xac,0x18,0x7e,0x65,0x73,0x86,0x97,0x8a,0x28,0x9b,0xc0,0x97,0x7c,0xa0,0xec,0x3f,0x02,0xcf,0xfe,0x7f,0xfe,0x99,0xe4,0xca,0x85,0xd5,0x2a,0x6c,0xc4,0x6b,0xa4,0x5a,0xae,0x91,0x4b,0x56,0x6d,0x57,0x70,0x74,0x9e,0xa7,0x8f,0x7e, -0x95,0x01,0x4f,0x01,0x26,0x00,0x00,0x01,0x00,0x3f,0xff,0xe7,0x04,0x9f,0x05,0x9d,0x00,0x2c,0x00,0x5e,0xb6,0x0e,0x8a,0x1e,0x09,0x8a,0x23,0x15,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1e,0x23,0x14,0x14,0x23,0x1e,0x03,0x2a,0x2e,0x03,0x01,0x29,0xb8,0x01,0x85,0x40,0x0f,0x2c,0x2a,0x2a,0x18,0x25,0x99,0x06,0x04,0x06,0x14,0x06,0x14,0x06, -0x00,0x10,0xb8,0x01,0x80,0xb6,0x1b,0x19,0x03,0x2c,0x99,0x00,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x3f,0x01,0x2f,0xc6,0xfd,0xc4,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x21,0x07,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06, -0x15,0x14,0x33,0x32,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x07,0x03,0x23,0x01,0x23,0xb1,0x03,0x9f,0x20,0xfd,0xc3,0x4d,0x6c,0x69,0x77,0x90,0x04,0x3d,0x21,0x52,0x2b,0x33,0x17,0x16,0xa2,0x17,0x0f,0x21,0x3e,0x68,0x57,0x70,0x6f,0x26,0x36,0x06,0x84,0x51,0x7f,0x19, -0x91,0xa1,0x01,0x12,0xc0,0x05,0x9d,0x91,0xfe,0x96,0x36,0x84,0x6e,0x10,0x26,0xfe,0xf3,0x79,0x44,0x61,0x44,0x68,0x62,0x6d,0x44,0x75,0x56,0x30,0x69,0x72,0x3a,0xab,0xf1,0x1b,0x1b,0x79,0x51,0x48,0xfd,0x52,0x05,0x0c,0x00,0x02,0x00,0x6b,0xff,0xe7,0x04,0x21,0x05,0xb0,0x00,0x14,0x00,0x21,0x00,0x4f,0xb2,0x10,0x0f,0x03,0xb8,0x01, -0x86,0x40,0x21,0x1e,0x14,0x00,0x01,0x12,0x15,0x0e,0x04,0x1e,0x0f,0x1e,0x00,0x00,0x1e,0x0f,0x03,0x23,0x19,0x89,0x09,0x00,0x0f,0x0f,0x15,0x01,0x0e,0x12,0x04,0x06,0x14,0x10,0x07,0x1b,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17, -0x39,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x01,0x00,0x15,0x14,0x04,0x21,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x27,0x37,0x16,0x17,0x36,0x37,0x01,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x35,0x34,0x02,0x27,0x04,0x20,0xff,0x00,0x01,0x01,0xfe,0xf8,0xfe,0xf2,0xcb,0xd5,0x51,0x92,0xa5,0x5f,0xaa,0x98,0x3e,0x53,0x78,0x5c, -0xfe,0xfc,0x5d,0xc5,0x69,0x01,0x0b,0xa0,0xb9,0x7d,0x56,0x05,0x4f,0xfe,0xff,0xfe,0x52,0xeb,0xec,0xe2,0xb4,0xb0,0x66,0xc6,0xcb,0xad,0x64,0xfd,0x60,0x53,0x80,0x7a,0x58,0xfe,0x16,0x4b,0xf3,0xd3,0x47,0xe8,0x9a,0x8a,0x54,0x01,0x3f,0x88,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x61,0x05,0xb5,0x00,0x26,0x00,0x32,0x00,0x63,0x41,0x0b, -0x00,0x30,0x01,0x86,0x00,0x21,0x00,0x04,0x01,0x84,0x00,0x1f,0x00,0x00,0x01,0x86,0x00,0x2a,0x00,0x12,0x01,0x85,0x40,0x0c,0x11,0x21,0x1f,0x2a,0x11,0x11,0x2a,0x1f,0x21,0x04,0x34,0x0b,0xb8,0x01,0x86,0x40,0x0a,0x18,0x27,0x1f,0x04,0x11,0x04,0x11,0x04,0x15,0x2d,0xb8,0x01,0x80,0xb2,0x24,0x07,0x0e,0xb8,0x01,0x80,0xb1,0x15,0x19, -0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x07,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x37,0x17,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x36,0x37, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x03,0x8f,0x51,0xa4,0x63,0x0b,0x37,0x52,0x49,0x38,0x1e,0x7b,0x7b,0x8f,0xf7,0x3f,0xa2,0x58,0xfe,0xc1,0xd5,0xc6,0xd3,0x1f,0x39,0x4c,0x51,0x45,0x0e,0x3d,0xa0,0x77,0x7f,0x92,0xfe,0x9d,0x5c,0x5f,0x3e,0x2f,0x2b,0x40,0x18,0x04,0xab, -0x4b,0x78,0x54,0x0d,0x2d,0x5e,0x5c,0x50,0x56,0x59,0x30,0x72,0x7a,0x01,0x10,0xd8,0x27,0xfe,0xdc,0xfe,0xc5,0xcb,0xbc,0x3e,0x65,0x5c,0x54,0x58,0x72,0x39,0x74,0x6b,0x77,0x9b,0x93,0xfe,0x0f,0x47,0x31,0x2b,0x41,0x43,0x30,0x35,0x48,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0x48,0x05,0x9a,0x00,0x1e,0x00,0x3d,0xb9,0x00,0x1a,0x01, -0x85,0x40,0x0c,0x19,0x05,0x19,0x01,0x19,0x01,0x19,0x20,0x12,0x8a,0x0b,0x15,0xb8,0x01,0x80,0x40,0x0c,0x05,0x0e,0x08,0x08,0x00,0x19,0x0e,0x06,0x01,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36,0x36,0x37,0x37,0x06, -0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33,0x03,0x0e,0x02,0x01,0x7d,0x10,0x98,0xae,0x2b,0x34,0x29,0x97,0x57,0x81,0xa4,0x08,0x5d,0xa1,0x5a,0x06,0x5d,0x45,0x55,0x9d,0x2d,0x6a,0xa1,0xbd,0x2e,0x81,0xca,0x19,0x87,0x0c,0xa9,0xc3,0xf1,0x1a,0x22,0x87,0x67,0x2b,0x20,0x01, -0xc6,0xfe,0x4d,0x1d,0x19,0x35,0x43,0x32,0x2a,0x02,0x05,0xfc,0x7e,0xd5,0xdf,0x77,0x00,0x01,0x00,0x59,0xff,0xe7,0x04,0x5f,0x05,0xb5,0x00,0x19,0x00,0x41,0xb2,0x0c,0x0d,0x12,0xb8,0x01,0x86,0x40,0x11,0x07,0x0d,0x07,0x0d,0x07,0x1b,0x00,0x89,0x19,0x0d,0x0c,0x19,0x0c,0x19,0x0c,0x0f,0x02,0xb8,0x01,0x80,0xb2,0x16,0x19,0x0a,0xb8, -0x01,0x80,0xb1,0x0f,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x16,0x33,0x32,0x36,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x21,0x32,0x16,0x15,0x10,0x02,0x04,0x23,0x22,0x26,0x27,0x01,0x0d,0x2e,0x9a,0x69,0xaf,0x7f, -0x4c,0x75,0x71,0x9e,0x75,0x89,0xa9,0x01,0x04,0xb1,0xcb,0xae,0xfe,0xd6,0xc0,0x8c,0xc8,0x1a,0x01,0x34,0xaf,0x7f,0xe7,0x01,0x44,0x99,0xa1,0xae,0x96,0x5a,0xda,0xf9,0xd4,0xfe,0xe8,0xfe,0x14,0xfd,0xb4,0x98,0x00,0x01,0x00,0x7b,0xff,0xe7,0x04,0x7f,0x05,0xb2,0x00,0x1a,0x00,0x3f,0x40,0x0b,0x0d,0x0c,0x1a,0x89,0x00,0x0c,0x00,0x0c, -0x00,0x1c,0x07,0xb8,0x01,0x86,0xb7,0x13,0x0d,0x0c,0x00,0x0c,0x00,0x10,0x02,0xb8,0x01,0x80,0xb2,0x17,0x07,0x0a,0xb8,0x01,0x80,0xb1,0x10,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x16,0x33, -0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x17,0x03,0xcc,0x30,0x98,0x69,0xad,0x80,0x4c,0x75,0x70,0x9e,0x75,0x88,0x57,0xd3,0x82,0xaf,0xcc,0xae,0x01,0x28,0xc1,0x8d,0xc7,0x19,0x04,0x65,0xaf,0x7c,0xe7,0xfe,0xbd,0x9a,0xa5,0xaa,0x96,0x5a,0x70,0x6a,0xf9,0xd3,0x01,0x19,0x01,0xe9,0xfd,0xb6,0x96, -0x00,0x01,0x00,0x8b,0xff,0xe7,0x04,0x9b,0x05,0x9d,0x00,0x15,0x00,0x29,0xb9,0x00,0x08,0x01,0x85,0xb4,0x07,0x07,0x17,0x13,0x00,0xb8,0x01,0x86,0xb4,0x0f,0x07,0x12,0x06,0x03,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33, -0x03,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x01,0x32,0x68,0x6d,0x75,0x88,0x22,0xd3,0xa2,0xd8,0x32,0xe2,0xbf,0xa7,0xbe,0x31,0xb1,0xa2,0xaf,0x2e,0x01,0x45,0x67,0x59,0x97,0x99,0x03,0xe7,0xfc,0x0a,0xef,0xd0,0xa3,0x8f,0x6c,0xd2,0x03,0x46,0xfc,0xca,0xcf,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a, -0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0xff,0xd0,0xfe,0x9d,0x02,0x51,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0xf9,0xeb,0x00,0x0b,0xb6,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf9,0x00,0x00,0x02,0x29,0x07,0x18,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x2a, -0xfe,0xb9,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xf0,0x07,0x5e,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x78,0x40,0x0a,0x12,0x0c,0x0b,0x05, -0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xfe,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf2,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0d, -0x0d,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfd,0x00,0x00,0x02,0x31,0x07,0x6b,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa1,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x10,0x05,0x26,0x01,0x00,0x10,0x0c,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xbe, -0x00,0x00,0x03,0x58,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x68,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x74,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x40,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xa1,0x00,0x27,0x0d,0xf2, -0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x31,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0x00,0x00,0x03,0x67,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x77,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7d, -0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x3a,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41, -0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x88,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x88,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x25,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c, -0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41,0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, -0xff,0xff,0xff,0xbf,0x00,0x00,0x02,0x48,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x58,0x00,0x01,0x07,0x04,0x61,0xfd,0xdd,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb9,0xb7,0x10,0x0c,0x0b,0x05,0x25,0x01,0x13,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x4a,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07, -0x04,0x27,0xfd,0xda,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb5,0xb7,0x0d,0x18,0x0b,0x05,0x25,0x01,0x15,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01, -0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2, -0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07, -0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0xfe,0x70,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00, -0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x1a,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x07,0x83,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xf0,0x01,0x5c,0x00,0x13,0x40,0x0b, -0x01,0x00,0x16,0x15,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x4c,0x05,0x9a,0x00,0x26,0x0d,0xf2,0x00,0x00,0x00,0x07,0x00,0x2d,0x02,0x21,0x00,0x00,0xff,0xff,0xff,0xd1,0x00,0x00,0x02,0x52,0x07,0x0c,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xae, -0x01,0x5a,0x00,0x13,0x40,0x0b,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xfe,0xc6,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x06,0x02,0x45,0xbc,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1c, -0x00,0x00,0x01,0xf0,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xca,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xc5,0x40,0x09,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x04,0x60, -0xfd,0xf6,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd0,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf9,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0xcf,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, -0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xf3,0x00,0x00,0x02,0x3a,0x07,0xd1,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x76,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x06,0x1f,0x19,0x0b,0x05,0x25,0x03,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, -0xff,0xf8,0x00,0x00,0x02,0x2a,0x07,0x62,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x92,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x64, -0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xaf,0x00,0x00,0x02,0x2c,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x3c,0x00,0x01,0x07,0x04,0x55,0xfd,0xde,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd6,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, -0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x06,0xe2,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x42,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x10,0x06,0x79, -0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd6,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x02,0x24,0x07,0x1a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xda,0x01,0x5c,0x00,0x13,0x40,0x0b, -0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x55,0x00,0x5b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95, -0x00,0x99,0x00,0x9d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e, -0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x05,0x21,0x35,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35, -0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d, -0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0xe0,0xfe,0xf0,0x59,0x5b,0xba,0x58,0xfb,0xbb,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56, -0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08, -0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x04,0x4b,0x01,0x0b,0x13,0x4c,0x26,0xfe,0x96,0x03,0x8b,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c, -0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x73,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99, -0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, -0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x33,0x15,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35, -0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35, -0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0x2f,0xae,0xfe,0xe5,0x7c,0x25,0x1e,0x40,0x37,0x33,0x38,0x47,0x42,0x4a,0x5b,0xfc,0x14,0xeb,0x96,0x04, -0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18, -0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x4d,0x02,0x4f,0x4a,0x76,0x24,0x30,0x1b,0x3b,0x2c,0x53,0x25,0x43,0x38,0x4b, -0x51,0x03,0x37,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0, -0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x92,0x00,0x96,0x00,0x9a,0x00,0x9e,0x00,0xa2,0x00,0xa6,0x00,0xaa,0x00,0xae,0x00,0xb2,0x00,0xb6,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, -0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, -0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01, -0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34, -0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x01,0xd9,0x2b,0x3a,0x24,0x28,0x32,0x2b,0x27,0x24,0x54,0x41,0x2b,0x29,0x2d,0x3d,0x42,0x49,0x55,0x2d,0x35,0x58,0x4e,0x42,0xfc,0x98,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56, -0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x45,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a, -0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x0a,0x52,0x1f,0x1f,0x1c,0x1d,0x1f,0x48,0x38,0x35,0x1c,0x4d,0x17,0x3b,0x30,0x54,0x15,0x02,0x06,0x37,0x27,0x3d,0x46,0x03,0xdd,0xec, -0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x13,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x0b,0x00,0x41, -0x00,0x5d,0x00,0x63,0x00,0x69,0x00,0x6f,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0x00,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35, -0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x17,0x16,0x17,0x33,0x36,0x37,0x37,0x33,0x25,0x35,0x33,0x15,0x23,0x15,0x25,0x35, -0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33, -0x03,0x82,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xe5,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x7b,0x60,0x04,0x02,0x08,0x06,0x65, -0x4f,0x67,0x04,0x09,0x03,0x04,0x57,0x8e,0x58,0x0a,0x05,0x02,0x08,0x09,0x58,0x8a,0xfc,0x28,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55, -0x05,0x6b,0x56,0x56,0x02,0xac,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfe,0x63,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d, -0x0c,0x02,0x19,0x01,0x01,0x2a,0x32,0x27,0x12,0xfe,0xdc,0x01,0x21,0x0c,0x30,0x3f,0x30,0xee,0x01,0xae,0xff,0x1f,0x1e,0x23,0x1b,0xfe,0x0a,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03, -0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x03,0x00,0x93,0xff,0x43,0x03,0x75,0x05,0xb8,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0x5b,0xb1,0x16,0x1c,0xb8,0x01,0x84,0x40,0x0d,0x29,0x19,0x13,0x00,0x00,0x1f,0x10,0x09,0x03,0x03,0x0d,0x29,0x23,0xb8,0x01,0x84,0x40,0x0b,0x06,0x0d,0x1f,0x19,0x13,0x09, -0x26,0x0a,0x03,0x20,0x18,0xb8,0x01,0x7e,0xb6,0x10,0x7f,0x13,0x01,0x13,0x27,0x09,0xb8,0x01,0x7e,0xb1,0x00,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x71,0x33,0xed,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x2f,0x33,0x33,0x33,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x22, -0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x03,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x2e,0x5e,0xc1,0x79,0x35,0xb6,0x4f,0xc7,0x76,0xb3,0x8a,0x5e,0xb2,0x44,0x5d,0x99,0xbd,0x8a,0xad,0xf8,0x4c,0x59,0x48,0xbb,0xaf, -0x07,0xc4,0xbd,0x4e,0x9e,0x2f,0x3e,0x01,0xd0,0x60,0xa2,0x6e,0x84,0xbf,0x13,0xa3,0x9f,0x06,0x2d,0x9a,0x48,0x06,0xfe,0x21,0x59,0xa8,0x6b,0x80,0xaf,0x02,0xce,0x01,0xa6,0x0f,0x68,0x4b,0x4d,0x64,0xfe,0xff,0xfe,0x66,0x26,0x97,0x7d,0x00,0x00,0x05,0x00,0x48,0xff,0xec,0x05,0xaa,0x05,0x27,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27, -0x00,0x33,0x00,0x6f,0xb5,0x18,0x1a,0x18,0x1a,0x03,0x25,0xbe,0x01,0x83,0x00,0x31,0x00,0x09,0x01,0x83,0x00,0x15,0x00,0x2b,0x01,0x83,0xb7,0x1f,0x15,0x1f,0x15,0x1f,0x03,0x31,0x0f,0xbb,0x01,0x83,0x00,0x03,0x00,0x12,0x01,0x7d,0xb5,0x70,0x00,0x01,0x00,0x00,0x0c,0xb8,0x01,0x7d,0xb6,0x06,0x06,0x7f,0x1b,0x01,0x1b,0x28,0xb8,0x01, -0x7d,0xb2,0x22,0x22,0x2e,0xb8,0x01,0x7d,0xb2,0x1c,0x1c,0x1a,0x00,0x2f,0x33,0x2f,0xed,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x33,0x2f,0x71,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, -0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x6e,0x86,0xa0,0xa9,0x8f,0x8b,0x99,0xab,0x7e,0x56,0x64,0x62,0x54,0x55,0x60,0x5f,0x03,0x07,0xfc,0xbe,0x81,0x03,0x40,0x23, -0x86,0xa0,0xab,0x8d,0x8a,0x9a,0xac,0x7e,0x57,0x62,0x62,0x54,0x55,0x60,0x5f,0x02,0x88,0xb0,0x94,0xa1,0xba,0xac,0x9c,0x9c,0xbb,0x02,0x3b,0x7f,0x70,0x6d,0x7b,0x7f,0x71,0x6d,0x7a,0x50,0xfa,0xe4,0x05,0x1c,0xfa,0xd9,0xb2,0x92,0xa2,0xbb,0xae,0x9c,0x9b,0xbc,0x02,0x3b,0x7f,0x70,0x6c,0x7a,0x7f,0x70,0x6e,0x78,0x00,0x03,0x00,0x6c, -0xff,0xeb,0x05,0xa8,0x05,0x29,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x7e,0xb1,0x41,0x33,0xbb,0x01,0x84,0x00,0x2c,0x00,0x60,0x01,0x84,0xb6,0x17,0x12,0x4e,0x24,0x03,0x17,0x21,0xb8,0x01,0x84,0xb3,0x58,0x29,0x05,0x38,0xb8,0x01,0x85,0x40,0x0b,0x49,0x17,0x58,0x49,0x49,0x58,0x17,0x03,0x0f,0x2c,0x53,0xb8,0x01,0x84,0xb3,0x0f,0x24, -0x12,0x4e,0xb8,0x01,0x7e,0x40,0x0c,0x29,0x49,0x38,0x05,0x04,0x0a,0x65,0x2f,0x65,0x2f,0x44,0x5d,0xb8,0x01,0x7e,0xb2,0x1c,0x3d,0x44,0xb8,0x01,0x7e,0xb1,0x00,0x0a,0x00,0x2f,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0xed,0x39,0x39,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x39, -0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37, -0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0x1d,0x33,0x4f,0x43,0x3f,0x22,0x25,0x5f,0x74,0x89,0x51,0x62,0xa3,0x74,0x40,0x9d,0x91,0x1c,0x36,0x2b,0x1a,0x34,0x5a,0x7c,0x47,0x47,0x75,0x54,0x2f,0x7c,0x7c,0x3e, -0x66,0x56,0x4a,0x24,0x4a,0x4a,0x08,0x07,0x90,0x07,0x03,0x02,0x23,0x3a,0x4d,0x2a,0x1f,0x35,0x35,0x39,0x25,0x1b,0x38,0x1e,0x21,0x47,0xfc,0xe5,0x45,0x74,0x62,0x4f,0x21,0x37,0x5e,0x5f,0x6b,0x47,0x39,0x60,0x46,0x28,0x2d,0x4f,0x69,0x01,0x20,0x22,0x34,0x3f,0x1f,0x59,0x6a,0x01,0x17,0x29,0x36,0x1f,0x72,0x71,0x15,0x1c,0x34,0x4a, -0x2f,0x27,0x48,0x38,0x22,0x31,0x5f,0x8c,0x5a,0x8b,0xc5,0x3e,0x14,0x35,0x44,0x53,0x31,0x47,0x6f,0x4c,0x27,0x27,0x48,0x66,0x3e,0x6d,0x90,0x33,0x18,0x47,0x57,0x64,0x35,0x66,0xf7,0x87,0x22,0x3d,0x1e,0x1e,0x36,0x25,0x52,0xa7,0x9d,0x8d,0x3b,0x2b,0x41,0x2b,0x15,0x0e,0x0b,0x89,0x0d,0x0d,0x81,0x1e,0x32,0x42,0x24,0x56,0x7a,0x59, -0x40,0x1b,0x17,0x37,0x4b,0x64,0x43,0x3e,0x5e,0x3e,0x20,0x03,0x9d,0x2d,0x40,0x29,0x13,0x60,0x52,0x25,0x42,0x38,0x2b,0x10,0x28,0x6a,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x1b,0x00,0x4d,0xb1,0x14,0x18,0xb8,0x01,0x84,0x40,0x0c,0x08,0x04,0x16,0x0f,0x00,0x00,0x0f,0x16,0x04,0x04,0x1d,0x1a,0xb8,0x01,0x86,0xb3, -0x06,0x01,0x17,0x06,0xb8,0x01,0x7e,0xb4,0x14,0x07,0x07,0x1a,0x11,0xb8,0x01,0x7e,0xb2,0x0c,0x02,0x1a,0xb9,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34, -0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x14,0x07,0x21,0x03,0x8f,0xfc,0xd1,0xc6,0xb3,0xb3,0xc5,0x9d,0x6a,0x57,0x5b,0x64,0xd0,0x01,0x0c,0xfe,0xf4,0xaf,0x02,0x84,0x7a,0x3f,0xdd,0xa9,0x80,0xe6,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0xd6,0x80,0x8d,0xdb,0x58,0x00,0x02,0x00,0x77,0xff,0xc4,0x02,0xdb, -0x05,0x47,0x00,0x26,0x00,0x30,0x00,0x5c,0xb2,0x1c,0x00,0x25,0xbb,0x01,0x84,0x00,0x2e,0x00,0x20,0x01,0x84,0xb2,0x07,0x16,0x02,0xb8,0x01,0x84,0x40,0x09,0x0d,0x16,0x0d,0x16,0x0d,0x12,0x2e,0x14,0x29,0xb8,0x01,0x84,0x40,0x0c,0x12,0x00,0x2c,0x14,0x27,0x20,0x27,0x2c,0x0d,0x04,0x05,0x1e,0xbc,0x01,0x7e,0x00,0x19,0x00,0x0a,0x01, -0x7e,0x00,0x05,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xfd,0xc5,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xed,0x10,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17, -0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x54,0x52,0xb6,0x8c,0x77,0x61,0x75,0x6d,0x4c,0x53,0x40,0x83,0xd3,0x85,0x60,0xa9,0x8b,0x76,0x50,0x5b,0x6f,0x98,0x49,0x94,0xca,0xfe,0x8e,0x5c,0x66,0x80,0x50,0x5f,0x01,0x79,0x43,0x66,0x77,0x95,0x33,0x8f,0x43,0x48, -0x36,0x30,0x42,0x46,0x6e,0xb1,0x94,0x49,0x4b,0x7f,0x73,0x95,0x27,0x8f,0x38,0x83,0x31,0x52,0x47,0x61,0xa8,0x9a,0x01,0x5b,0x2e,0x62,0x41,0x63,0x39,0x3d,0x5f,0x41,0x5b,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x03,0xb0,0x05,0x13,0x00,0x1b,0x00,0x72,0xb3,0x10,0x0c,0x05,0x09,0xbb,0x01,0x84,0x00,0x0a,0x00,0x01,0x01,0x82,0x40,0x15, -0x18,0x03,0x07,0x0c,0x12,0x0a,0x0e,0x18,0x07,0x07,0x18,0x0e,0x0a,0x12,0x0c,0x06,0x00,0x13,0x00,0x08,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x05,0x0d,0x04,0x10,0xb8,0x01,0x7e,0x40,0x13,0x11,0x01,0x18,0x11,0x0f,0x11,0x1f,0x11,0x02,0x0d,0x11,0x0d,0x11,0x0a,0x13,0x7f,0x00,0x01,0x00,0x00,0x2f,0x71,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x5d, -0x11,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0xb0, -0xfe,0xbe,0x01,0x02,0xfe,0xd1,0x01,0x2f,0xfe,0xd1,0x94,0xfe,0xc8,0x01,0x38,0xfe,0xc8,0x01,0x08,0xfe,0xc1,0xae,0xe2,0x19,0x12,0x03,0x0c,0x21,0xe4,0x05,0x13,0xfd,0xae,0x7e,0xbc,0x7e,0xfe,0xf7,0x01,0x09,0x7e,0xbc,0x7e,0x02,0x52,0xfe,0x2f,0x35,0x30,0x26,0x44,0x01,0xcc,0x00,0x00,0x01,0x00,0x96,0xfe,0x99,0x03,0xb5,0x03,0xa0, -0x00,0x18,0x00,0x29,0xb1,0x0e,0x0a,0xbb,0x01,0x84,0x00,0x0b,0x00,0x17,0x01,0x84,0xb5,0x14,0x03,0x15,0x0d,0x0b,0x11,0xb8,0x01,0x7e,0xb1,0x06,0x01,0x00,0x2f,0x2f,0xed,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32, -0x36,0x35,0x11,0x33,0x11,0x14,0x03,0xb5,0x9a,0x14,0x05,0x4c,0xb1,0x97,0x40,0x04,0x94,0x94,0x7d,0x65,0x6d,0x89,0x96,0x41,0x57,0xad,0x70,0xfe,0x3e,0x05,0x07,0xfd,0xc9,0x73,0x88,0x9b,0x84,0x02,0x13,0xfd,0x50,0xaa,0x00,0x01,0x00,0x2e,0xfe,0x57,0x04,0x48,0x05,0x13,0x00,0x0b,0x00,0x32,0xb1,0x08,0x0a,0xbb,0x01,0x86,0x00,0x01, -0x00,0x09,0x01,0x86,0x40,0x10,0x03,0x03,0x00,0x04,0x01,0x07,0x00,0x08,0x9a,0x7f,0x05,0x01,0x05,0x0a,0x9a,0x01,0x00,0x2f,0xed,0x2f,0x71,0xed,0x01,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0x48,0xfb,0xe6,0x02,0x65,0xfd,0xbd,0x03,0xd4, -0xfd,0x0b,0x02,0x1a,0xfd,0xca,0x03,0x35,0xfe,0x57,0x47,0x03,0x20,0x03,0x04,0x51,0x8b,0xfd,0x39,0xfd,0x21,0x00,0x00,0x01,0x00,0x5c,0xff,0xea,0x03,0x97,0x05,0x29,0x00,0x25,0x00,0x58,0xb4,0x14,0x25,0x25,0x27,0x1d,0xb8,0x01,0x85,0xb2,0x09,0x21,0x05,0xb8,0x01,0x7e,0xb4,0x06,0x1e,0x06,0x1c,0x0c,0xb8,0x01,0x7e,0x40,0x13,0x0d, -0x19,0x0d,0x0f,0x06,0x1f,0x06,0x02,0x3f,0x0d,0x4f,0x0d,0x02,0x06,0x0d,0x06,0x0d,0x23,0x16,0xbc,0x01,0x7e,0x00,0x11,0x00,0x23,0x01,0x7e,0x00,0x02,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0x39,0x31,0x30,0x25,0x06,0x23,0x20, -0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x33,0x32,0x37,0x03,0x97,0x79,0x87,0xfe,0x7d,0x4a,0x6e,0x62,0x03,0x05,0x64,0x77,0x2e,0x01,0x01,0xb7,0x7c,0x62,0x68,0x80,0x72,0xb0,0x24,0x01,0xc3,0xfe,0x2a,0x08,0x07, -0x01,0xd7,0xfe,0x37,0x41,0xfc,0x77,0x80,0x2d,0x43,0x01,0xcb,0x7f,0x1c,0x29,0x2c,0x36,0x7f,0xd9,0xf6,0x33,0x93,0x47,0xb6,0x9a,0x7f,0x5a,0x4d,0x7f,0xfe,0xb4,0x4f,0x00,0x03,0x00,0x73,0x00,0x00,0x06,0x30,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x24,0x00,0x70,0xb1,0x0e,0x1f,0xbe,0x01,0x83,0x00,0x14,0x00,0x08,0x01,0x82,0x00,0x03, -0x00,0x23,0x01,0x84,0x40,0x11,0x19,0x0f,0x03,0x00,0x0f,0x0f,0x00,0x03,0x03,0x05,0x0a,0x14,0x0c,0x01,0x05,0x08,0x02,0xbb,0x01,0x7d,0x00,0x01,0x00,0x17,0x01,0x7d,0xb7,0x1c,0x01,0x1c,0x01,0x1c,0x0d,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0a,0x0f,0x04,0x99,0x07,0x07,0x7f,0x0d,0x01,0x0d,0x0c,0x00,0x2f,0x2f,0x71,0x33,0x2f,0xed,0x2f, -0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, -0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0xc4,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfa,0xee,0x67,0xd6,0x5c,0x63, -0x32,0x35,0x42,0x5d,0x87,0x45,0x77,0x62,0x8b,0xb1,0x8d,0x04,0x00,0x04,0x00,0x73,0x00,0x00,0x06,0x0a,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x18,0x00,0x20,0x00,0x7d,0xb5,0x17,0x10,0x0e,0xa8,0x11,0x08,0xbb,0x01,0x82,0x00,0x03,0x00,0x1d,0x01,0x83,0x40,0x18,0x13,0x03,0x00,0x13,0x13,0x00,0x03,0x03,0x05,0x1e,0x1a,0x19,0x0a,0x11, -0x0c,0x01,0x05,0x04,0x99,0x07,0x07,0x0d,0x0f,0x13,0xb8,0x01,0x7d,0xb5,0x1d,0x17,0x14,0x1d,0x08,0x02,0xb8,0x01,0x7d,0x40,0x11,0x01,0x19,0x15,0x1d,0x01,0x15,0x15,0x01,0x1d,0x03,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0x0c,0x00,0x2f,0x33,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32, -0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x33,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x02,0x43, -0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0x9e,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0a,0x18,0xc6,0xe8,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, -0x00,0x04,0x00,0x75,0x00,0x00,0x06,0x45,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x2f,0x00,0x37,0x00,0x9a,0xb5,0x2e,0x27,0x25,0xa8,0x28,0x17,0xbe,0x01,0x82,0x00,0x0d,0x00,0x1c,0x01,0x83,0x00,0x06,0x00,0x34,0x01,0x83,0x40,0x0f,0x2a,0x0d,0x06,0x2a,0x2a,0x06,0x0d,0x03,0x09,0x35,0x30,0x21,0x28,0x23,0x1a,0xb8,0x01,0x86,0xb4,0x11, -0x00,0x09,0x26,0x2a,0xb8,0x01,0x7d,0xb5,0x34,0x2e,0x2b,0x34,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0x40,0x0d,0x1f,0x30,0x2c,0x34,0x1f,0x2c,0x2c,0x1f,0x34,0x03,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb7,0x14,0x14,0x7f,0x24,0x01,0x24,0x28,0x23,0x00,0x2f,0x33,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x17,0x39, -0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0xc6,0xed,0xc4,0x2f,0xc4,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, -0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66,0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x74,0xfc,0xf7,0x82, -0x03,0x0a,0x01,0x98,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0b,0x17,0xc6,0xe8,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, -0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x3e,0x05,0x13,0x00,0x11,0x00,0x4b,0x40,0x09,0x00,0x0e,0x00,0x0e,0x03,0x09,0x10,0x0c,0x02,0xb8,0x01,0x85,0xb4,0x07,0x05,0x03,0x01,0x05,0xb8,0x01,0x7f,0x40,0x12,0x06,0x10,0x06,0x0f,0x9a,0x0c,0x06,0x0c,0x06,0x0c,0x03,0x0b,0x9a,0x7f,0x08,0x01,0x08,0x03,0x00,0x2f,0x2f,0x71,0xed,0x12,0x39, -0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x20,0xdd,0x99,0x91,0x91,0x02,0x94,0xfe,0x05,0x01,0xd5,0xfe,0x2b,0xdd,0xfc,0xfc,0xfc,0x8d,0x03,0x8a, -0x8a,0xfe,0x3f,0x89,0xb6,0x00,0x00,0x04,0x00,0xaa,0xff,0xea,0x07,0xd0,0x05,0x13,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0x9b,0xb1,0x36,0x41,0xbb,0x01,0x84,0x00,0x2b,0x00,0x06,0x01,0x85,0xb2,0x0e,0x1d,0x21,0xb8,0x01,0x84,0xb5,0x1a,0x18,0x16,0x1f,0x11,0x3b,0xb8,0x01,0x84,0x40,0x0f,0x26,0x30,0x0e,0x16,0x11,0x30,0x30, -0x11,0x16,0x0e,0x04,0x02,0x2b,0x0b,0x01,0xb8,0x01,0x85,0x40,0x0e,0x02,0x2b,0x3b,0x44,0x33,0x44,0x13,0x0b,0x9a,0x00,0x33,0x38,0x20,0x18,0xb8,0x01,0x7e,0x40,0x0d,0x19,0x1d,0x19,0x00,0x19,0x1c,0x1c,0x19,0x00,0x03,0x03,0x29,0x23,0xb8,0x01,0x7e,0x40,0x09,0x13,0x0a,0x9a,0x7f,0x03,0x01,0x03,0x02,0x18,0x00,0x3f,0x2f,0x71,0xed, -0x2f,0xed,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x33,0x10,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x11,0x33,0x10,0xc6,0x33,0xed,0x32,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x06,0x23,0x03, -0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x43,0x99,0x01,0x1b,0x01, -0xa3,0xf0,0xd5,0x60,0x55,0x01,0x30,0xfe,0xe3,0x03,0xd3,0x34,0x57,0x76,0x6a,0x8d,0x8d,0x94,0xd7,0xd7,0x77,0x36,0x2a,0x3e,0x6d,0x7c,0x93,0x3a,0xdf,0x61,0xa6,0x85,0x75,0x47,0x57,0x67,0x42,0x4f,0x62,0x55,0x7f,0x44,0x9f,0x8c,0x92,0x01,0xeb,0xfe,0x15,0x05,0x13,0xfe,0x7c,0xbe,0xe6,0x02,0x9e,0xfd,0xec,0x01,0x13,0x01,0x01,0xfb, -0x80,0x1d,0x81,0x8f,0x01,0xa4,0x7d,0xe3,0x31,0xfe,0xec,0x7d,0xfe,0x76,0xad,0x1f,0x66,0x9f,0x5a,0x68,0x24,0x48,0x54,0x38,0x69,0x6e,0x83,0x2a,0x91,0x3e,0x39,0x2e,0x33,0x28,0x23,0x39,0x66,0x43,0x71,0x82,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x23,0x00,0x81,0xb5,0x10,0x0c,0x07,0x22,0x1e,0x01,0xb8,0x01,0x84, -0x40,0x0e,0x12,0x0e,0x0a,0x20,0x00,0x0a,0x00,0x19,0x19,0x00,0x0a,0x03,0x05,0x04,0xb8,0x01,0x86,0xb3,0x07,0x05,0x01,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x22,0x0d,0x21,0x10,0xb8,0x01,0x7e,0x40,0x16,0x11,0x1e,0x11,0x30,0x0d,0x40,0x0d,0x02,0x2f,0x11,0x01,0x00,0x11,0x10,0x11,0x02,0x0d,0x11,0x0d,0x11,0x04,0x1b,0xb8,0x01,0x7e,0xb2, -0x16,0x08,0x04,0xb9,0x01,0x7e,0x00,0x07,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xed,0x32,0x32,0x10,0xc4,0x32,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35, -0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0xc6,0xfe,0xf4,0xaf,0x02,0x84,0xfc,0xd1,0xc6,0xb3,0xb3,0xb3,0xb3,0xc5,0x9d,0x6b,0x56,0x5a,0x65,0xd0,0x01,0x0c,0xfe,0xf4,0x01,0x0c,0x01,0xba,0x08,0xdc,0x57,0x7f,0x7a,0x41,0xdb,0x24, -0x7f,0x7b,0x80,0x71,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0x61,0x80,0x7b,0x00,0x05,0x00,0x73,0xff,0xee,0x06,0x35,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x21,0x00,0x2a,0x00,0x34,0x00,0x9a,0xbc,0x00,0x24,0x01,0x83,0x00,0x20,0x00,0x29,0x01,0x83,0x40,0x0a,0x1a,0x0e,0x18,0x1a,0x20,0x1a,0x20,0x1a,0x16,0x10,0xbb,0x01,0x83,0x00,0x33, -0x00,0x2d,0x01,0x83,0x40,0x0b,0x16,0x0c,0x16,0x0a,0x0a,0x16,0x0c,0x03,0x03,0x33,0x08,0xb8,0x01,0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb7,0x01,0x18,0x0e,0x2b,0x22,0x2b,0x13,0x26,0xb8,0x01,0x7d,0x40,0x0e,0x1d,0x22,0x30,0x1d,0x01,0x1d,0x01,0x1d,0x0c,0x7f,0x0d,0x01,0x0d,0x30,0xb8,0x01,0x7d,0xb3, -0x13,0x13,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21, -0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7, -0x83,0x03,0x0a,0x01,0x35,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, -0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x75,0xff,0xee,0x06,0x76,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x38,0x00,0x41,0x00,0x4b,0x00,0xc3,0xbc,0x00,0x3b,0x01,0x83,0x00,0x37,0x00,0x40,0x01,0x83,0x40,0x0a,0x31,0x25,0x2f,0x31,0x37,0x31,0x37,0x31,0x2d,0x27,0xbb,0x01,0x83,0x00,0x4a,0x00,0x0d, -0x01,0x82,0x40,0x09,0x11,0x09,0x1a,0x03,0x00,0x17,0x17,0x00,0x1c,0xbb,0x01,0x83,0x00,0x06,0x00,0x44,0x01,0x83,0x40,0x0f,0x2d,0x23,0x06,0x2d,0x21,0x21,0x2d,0x06,0x23,0x04,0x00,0x4a,0x00,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0xb7,0x1f,0x2f,0x25,0x42,0x39,0x42,0x2a,0x3d,0xb8,0x01,0x7d,0x40,0x0b, -0x34,0x39,0x34,0x47,0x1f,0x34,0x1f,0x34,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb6,0x14,0x14,0x7f,0x24,0x01,0x24,0x47,0xb8,0x01,0x7d,0xb3,0x2a,0x2a,0x23,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x39, -0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, -0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66, -0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x75,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x35,0x93,0x94,0x87,0x71,0x98,0x93,0x77,0x8b,0x77,0x6a,0x83,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x43,0x40,0x53,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05, -0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x82,0xff,0xee,0x06,0x78,0x05,0x17,0x00,0x15,0x00,0x19,0x00,0x2d,0x00,0x36,0x00,0x40,0x00,0xb6,0xbc,0x00,0x30,0x01,0x83,0x00,0x2c,0x00, -0x35,0x01,0x83,0x40,0x0a,0x26,0x1a,0x24,0x26,0x2c,0x26,0x2c,0x26,0x22,0x1c,0xb8,0x01,0x83,0xb2,0x3f,0x0c,0x11,0xbb,0x01,0x83,0x00,0x06,0x00,0x39,0x01,0x83,0x40,0x0d,0x22,0x18,0x06,0x22,0x16,0x16,0x22,0x06,0x18,0x04,0x09,0x3f,0x0e,0xb8,0x01,0x82,0xb2,0x00,0x09,0x08,0xb8,0x01,0x7d,0xb3,0x0e,0x0e,0x0a,0x03,0xb8,0x01,0x7d, -0xb7,0x14,0x1a,0x24,0x37,0x2e,0x37,0x1f,0x32,0xb8,0x01,0x7d,0x40,0x0b,0x29,0x2e,0x29,0x3c,0x14,0x29,0x14,0x29,0x1f,0x19,0x0d,0xb8,0x01,0x7d,0xb6,0x0a,0x0a,0x7f,0x19,0x01,0x19,0x3c,0xb8,0x01,0x7d,0xb3,0x1f,0x1f,0x18,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10, -0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xfd,0xc4,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x11,0x21,0x15,0x21,0x15,0x36,0x16,0x15, -0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x82,0x67,0x4e,0x4d,0x5b,0xb9,0x8c,0x01,0x9e,0xfe,0xd6,0xa5,0xa9,0x9e,0x89,0x70,0x04, -0x6c,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x34,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x25,0x84,0x3f,0x51,0x40,0x8a,0x08,0x01,0x9a,0x71,0xb5,0x0c,0x89,0x74,0x72,0x90,0x03,0x15,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43, -0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x93,0xff,0xee,0x05,0xfe,0x05,0x1c,0x00,0x06,0x00,0x0a,0x00,0x1e,0x00,0x27,0x00,0x31,0x00,0x9a,0xbc,0x00,0x21,0x01,0x83,0x00,0x1d,0x00,0x26,0x01,0x83,0x40,0x0a,0x17,0x0b,0x15,0x17,0x1d,0x17,0x1d, -0x17,0x13,0x0d,0xbe,0x01,0x83,0x00,0x30,0x00,0x06,0x01,0x85,0x00,0x02,0x00,0x2a,0x01,0x83,0x40,0x0f,0x13,0x01,0x09,0x02,0x13,0x07,0x07,0x13,0x02,0x09,0x01,0x05,0x30,0x03,0x03,0xb8,0x01,0x7d,0x40,0x0a,0x04,0x04,0x0a,0x0b,0x15,0x1f,0x28,0x28,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0e,0x1a,0x1f,0x2d,0x1a,0x01,0x1a,0x01,0x1a,0x10, -0x7f,0x0a,0x01,0x0a,0x2d,0xb8,0x01,0x7d,0xb3,0x10,0x10,0x09,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39, -0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x01,0x21,0x35,0x21,0x15,0x25,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x73,0x84,0x01,0x23,0xfe,0x81,0x02, -0x1b,0x02,0x09,0xfc,0xf6,0x82,0x03,0x0a,0x01,0x35,0x94,0x95,0x87,0x71,0x97,0x92,0x76,0x8a,0x77,0x6a,0x83,0xf8,0x7b,0x78,0x36,0x46,0x74,0x90,0x55,0x42,0x40,0x54,0x02,0x11,0x02,0xa0,0x6b,0x30,0x27,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, -0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x04,0x1e,0x05,0x2b,0x00,0x27,0x00,0x61,0xb1,0x22,0x26,0xb8,0x01,0x84,0x40,0x0a,0x1d,0x01,0x10,0x24,0x24,0x10,0x01,0x03,0x00,0x18,0xb8,0x01,0x84,0xb3,0x07,0x20,0x00,0x02,0xbe,0x01,0x7e,0x00,0x1d,0x00,0x25,0x01,0x7e,0x00,0x22,0x00, -0x21,0x01,0x7e,0x40,0x0a,0x1e,0x1d,0x22,0x1e,0x1e,0x22,0x1d,0x03,0x26,0x13,0xbc,0x01,0x7e,0x00,0x0c,0x00,0x26,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x2e,0x03, -0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x1e,0xfd,0xed,0x61,0x9b,0x6c,0x3a,0x42,0x7d,0xb3,0x70,0x3e,0x71,0x2f,0x34,0x74,0x3b,0x4d,0x7a,0x52,0x2c,0x21,0x42,0x64,0x43,0x01,0xfe,0xfe,0x95,0x01,0x51,0xfe,0xaf, -0x01,0x80,0x01,0x5a,0x03,0x4c,0x80,0xa7,0x5f,0x6f,0xbb,0x87,0x4b,0x17,0x17,0x9b,0x24,0x22,0x39,0x63,0x85,0x4b,0x45,0x75,0x59,0x39,0x0a,0x01,0xba,0x7f,0xfe,0xf0,0x7f,0xfe,0xed,0x00,0x00,0x03,0x00,0x6b,0xff,0xbc,0x03,0xb5,0x05,0xa7,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x34,0x40,0x09,0x3b,0x32,0x3f,0x03,0x28,0x15,0x15,0x42, -0x2f,0xb8,0x01,0x85,0xb6,0x28,0x3e,0x31,0x32,0x03,0x37,0x10,0xbc,0x01,0x7e,0x00,0x1b,0x00,0x37,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15, -0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x37,0x01,0x14,0x17,0x13,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16,0x17,0x01,0x26,0x02,0xe9,0x27,0x17,0x2b,0x14,0x27,0x68,0x2c,0x0e,0x1d,0x0f,0x36,0x2b,0xfe,0xc3,0x3c,0x4b,0x2a,0x47,0x42,0x41,0x23,0x22,0x43,0x48,0x4f, -0x2f,0x52,0x48,0x15,0x67,0x20,0x26,0x23,0x2f,0x66,0x46,0x45,0x4c,0x4a,0x84,0xb4,0x6b,0x29,0xfe,0x89,0x2f,0xf2,0x41,0x6b,0x4c,0x29,0x01,0xb2,0x09,0x10,0x08,0xfe,0xe2,0x0f,0x21,0x13,0x01,0x32,0x1a,0x05,0xa7,0x7e,0x02,0x02,0x82,0x93,0x04,0x09,0x04,0x96,0x19,0x0e,0xfb,0xee,0x19,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08, -0x16,0x44,0x69,0x16,0x1b,0x9a,0xe8,0x55,0xe8,0x90,0x8c,0xea,0xb3,0x73,0x13,0x87,0xfc,0xd3,0x96,0x74,0x03,0x1e,0x1a,0x63,0x8a,0xab,0x01,0xce,0x01,0x01,0xfc,0x52,0x14,0x21,0x10,0x03,0xf2,0x03,0x00,0x01,0x00,0x6b,0xff,0xea,0x03,0xb5,0x05,0x29,0x00,0x3e,0x00,0x45,0xb1,0x37,0x07,0xb8,0x01,0x83,0xb3,0x34,0x34,0x00,0x2f,0xb8, -0x01,0x85,0xb4,0x1a,0x25,0x10,0x00,0x02,0xb8,0x01,0x7e,0x40,0x09,0x35,0x37,0x34,0x07,0x04,0x3b,0x3b,0x0a,0x2a,0xbc,0x01,0x7e,0x00,0x1f,0x00,0x0a,0x01,0x7e,0x00,0x15,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0x33,0x33,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15, -0x11,0x16,0x32,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x03,0xb5,0x23,0x41,0x56,0x39,0x39,0x04,0x0b,0x06,0x2a,0x47,0x42,0x41,0x23,0x22,0x43, -0x48,0x4f,0x2f,0x77,0xc7,0x90,0x51,0x5b,0xa1,0xd9,0x7e,0x28,0x40,0x3a,0x38,0x1d,0x23,0x3c,0x3a,0x3c,0x24,0x5f,0x9e,0x74,0x41,0x24,0x41,0x5c,0x39,0x85,0x03,0x1d,0x74,0x49,0x1a,0x27,0x0e,0x02,0xd1,0x1b,0x50,0x50,0x8c,0xfe,0xaa,0x01,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08,0x5d,0xa8,0xef,0x93,0x9c,0x01,0x00,0xb7,0x65, -0x05,0x09,0x0e,0x0a,0x96,0x11,0x16,0x0f,0x07,0x52,0x94,0xce,0x7c,0x59,0x9e,0x7f,0x5e,0x1b,0x02,0xcd,0xab,0x58,0x62,0x07,0x05,0x00,0x00,0x01,0x00,0x96,0xff,0x28,0x05,0xbc,0x04,0x93,0x00,0x2e,0x00,0x62,0xb1,0x23,0x1f,0xb8,0x01,0x84,0xb2,0x20,0x2b,0x11,0xb8,0x01,0x84,0x40,0x0d,0x16,0x15,0x20,0x12,0x00,0x01,0x12,0x01,0x12, -0x01,0x06,0x20,0x05,0xb8,0x01,0x84,0xb2,0x06,0x0f,0x19,0xb8,0x01,0x7e,0x40,0x12,0x26,0x13,0x16,0x10,0x2b,0x04,0x26,0x20,0x2e,0x2e,0x2d,0x01,0x26,0x15,0x15,0x12,0x06,0x20,0x00,0x2f,0x33,0x33,0x33,0x2f,0x2f,0x33,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11, -0x12,0x39,0x33,0xed,0x39,0x10,0xed,0x32,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x22,0x07,0x03,0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x00,0x7a,0x03,0x01,0x33,0x95,0x0f,0x2e,0x51, -0x41,0x07,0x0b,0x07,0xcc,0x94,0xde,0x8b,0x01,0x69,0xd3,0x39,0x56,0x37,0x1b,0x95,0x95,0x04,0x63,0xbd,0x2d,0x54,0x46,0x33,0x0c,0x39,0x56,0x90,0x04,0x93,0xde,0xfe,0x87,0xfd,0xc4,0x02,0x15,0x3f,0x6b,0x4e,0x2b,0x01,0xfe,0x8f,0xfe,0x3a,0xb9,0xfe,0x6f,0x02,0x8d,0x72,0x01,0x11,0x33,0x54,0x6a,0x36,0xfd,0xef,0x03,0xa0,0x93,0xa8, -0x1b,0x32,0x47,0x2c,0x69,0x2f,0x01,0x06,0x00,0x05,0x00,0x20,0x00,0x00,0x04,0x91,0x05,0x13,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x29,0x00,0x31,0x00,0xa2,0x40,0x0f,0x2f,0x22,0x21,0x12,0x04,0x11,0x14,0x11,0x28,0x0e,0x09,0x09,0x0c,0x08,0x10,0xb8,0x01,0x83,0x40,0x0d,0x29,0x1c,0x1f,0x04,0x04,0x03,0x1d,0x05,0x28,0x03,0x2e,0x20, -0x14,0xb8,0x01,0x84,0x40,0x0b,0x15,0x17,0x00,0x00,0x19,0x01,0x15,0x29,0x13,0x0f,0x17,0xb8,0x01,0x7e,0x40,0x09,0x18,0x20,0x1c,0x0c,0x18,0x23,0x1f,0x0b,0x1b,0xb8,0x01,0x7e,0x40,0x1c,0x00,0x2e,0x08,0x04,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x4f,0x00,0x04,0x18,0x00,0x18,0x00,0x02,0x25,0x15,0x11,0x2b,0x06,0x7f,0x02,0x01,0x02, -0x00,0x2f,0x71,0xc4,0x33,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x33,0x11,0x12,0x17,0x39,0x31,0x30, -0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x03,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x05,0x33,0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x20,0x8a,0xb8,0xdb,0x01,0x3e,0x88,0x8e,0x8e,0x8e,0x8e,0xaf,0xed,0xfe, -0xcc,0x89,0x8a,0x8a,0x8a,0x02,0x99,0xc2,0xff,0xfe,0xb7,0xf6,0x3e,0xb8,0x02,0x4b,0x03,0x06,0x85,0xfe,0x3b,0x04,0x06,0x79,0x57,0x19,0x03,0x55,0x01,0xbe,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x7f,0x7c,0x7e,0xfe,0x24,0x01,0xdc,0xfe,0x24,0x01,0xdc,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0xfd,0xf2,0x2d,0x91,0x56,0x02,0x79,0x2a,0x86,0x50,0xb0, -0x32,0x00,0x00,0x03,0x00,0xaa,0xff,0xea,0x05,0xdb,0x05,0x13,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x79,0xb1,0x3a,0x4c,0xb8,0x01,0x84,0xb3,0x27,0x13,0x07,0x0e,0xbb,0x01,0x85,0x00,0x1e,0x00,0x42,0x01,0x84,0x40,0x0c,0x31,0x22,0x00,0x31,0x1e,0x31,0x1e,0x31,0x07,0x27,0x18,0x06,0xb8,0x01,0x85,0x40,0x09,0x07,0x13,0x18,0x9a,0x05, -0x27,0x42,0x51,0x3d,0xb8,0x01,0x7e,0x40,0x0d,0x36,0x05,0x36,0x05,0x36,0x07,0x17,0x9a,0x7f,0x08,0x01,0x08,0x25,0xb8,0x01,0x7e,0xb4,0x51,0x51,0x01,0x07,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12,0x39,0x39,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11, -0x33,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17, -0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0xa3,0xb5,0xa0,0x47,0x80,0x44,0x99,0x01,0x3f,0x55,0x90,0x67,0x3a,0x25,0x47,0x67,0x43,0x49,0x3c,0xfe,0x65,0x84,0x39,0x61,0x46,0x28,0x81,0x80,0x01,0xee,0x38,0x75,0x3d,0xa0,0x1a,0x2d,0x3a,0x1f,0x43,0x57,0x36, -0x16,0x2a,0x4f,0x71,0x48,0x33,0x69,0x28,0x2e,0x64,0x37,0x20,0x38,0x27,0x16,0x14,0x27,0x37,0x20,0x3c,0x5b,0x3c,0x1e,0x1f,0x4a,0x77,0x58,0x3f,0x77,0x31,0x01,0x87,0xa2,0xfd,0xd7,0x05,0x13,0x2a,0x57,0x82,0x57,0x44,0x76,0x5d,0x41,0x0f,0x03,0x1b,0x7f,0x02,0xd4,0xfe,0x29,0x23,0x40,0x5d,0x3a,0x69,0x74,0xfc,0x32,0x26,0x2d,0x64, -0x1c,0x28,0x1c,0x16,0x0b,0x15,0x30,0x3b,0x46,0x2a,0x31,0x53,0x3f,0x25,0x13,0x10,0x94,0x1d,0x1c,0x0d,0x19,0x25,0x16,0x1e,0x26,0x1b,0x14,0x0a,0x14,0x2b,0x38,0x49,0x31,0x2d,0x55,0x43,0x29,0x1b,0x18,0x00,0x00,0x07,0x00,0x12,0x00,0x00,0x05,0x53,0x05,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43, -0x00,0x6a,0xb4,0x3b,0x33,0x05,0x01,0x09,0xb8,0x01,0x7e,0x40,0x0b,0x0a,0x28,0x24,0x20,0x1e,0x0a,0x2b,0x27,0x23,0x1d,0x0d,0xb8,0x01,0x7e,0x40,0x23,0x0e,0x40,0x1a,0x16,0x12,0x0e,0x0f,0x0e,0x1f,0x0e,0x3f,0x0e,0x4f,0x0e,0x04,0x0a,0x0e,0x0a,0x0e,0x07,0x3c,0x18,0x14,0x10,0x10,0x7f,0x14,0x01,0x14,0x37,0x36,0x2e,0x2e,0x03,0x07, -0x00,0x2f,0x33,0x33,0x11,0x33,0x33,0x2f,0x71,0x33,0x2f,0x11,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x31,0x30,0x01,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x33, -0x13,0x33,0x13,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x07,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0x53,0xf4,0x5a,0x93,0x59,0xd2,0x59,0x92,0x5d,0xed,0xd3,0x17,0xbc,0xa2,0x56, -0x82,0x51,0xf4,0x55,0x78,0x50,0xe9,0x4f,0x80,0x54,0xad,0xc5,0x17,0xdb,0xfc,0x0e,0x95,0x18,0xc4,0x02,0x27,0x8f,0x16,0xbc,0xf9,0xa1,0x16,0x74,0xe0,0x0c,0x02,0x04,0x03,0x0f,0x22,0x67,0x02,0x33,0x0a,0x04,0x02,0x03,0x0d,0x20,0x62,0xd4,0x02,0x04,0x0c,0x12,0x43,0x11,0x0c,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x01,0xde,0x7f, -0x7b,0x80,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x80,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0xfe,0x57,0x3f,0x44,0x30,0x53,0xaf,0xb7,0x33,0x46,0x2f,0x4e,0xb3,0x02,0x5c,0x43,0x40,0x5f,0x5d,0x3d,0x00,0x00,0x03,0x00,0x57,0xfe,0xf3,0x04,0x29,0x05,0x5d,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x64,0xb4,0x14,0x14,0x01, -0x33,0x28,0xb8,0x01,0x84,0xb4,0x0a,0x32,0x1b,0x19,0x00,0xb8,0x01,0x84,0xb4,0x1d,0x16,0x12,0x01,0x33,0xbb,0x01,0x7d,0x00,0x34,0x00,0x23,0x01,0x7e,0xb2,0x0f,0x1c,0x14,0xb8,0x01,0x7e,0x40,0x0c,0x15,0x19,0x15,0x02,0x12,0x0f,0x15,0x0f,0x15,0x05,0x18,0x2d,0xb8,0x01,0x7e,0xb3,0x05,0x18,0x01,0x18,0x00,0x3f,0x3f,0xed,0x2f,0x12, -0x39,0x39,0x2f,0x2f,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x2f,0xed,0x01,0x2f,0x33,0x33,0x33,0xfd,0x32,0xc6,0xc6,0x2f,0xed,0xc4,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x03,0xae,0x94,0x04,0x67,0xd8,0x62,0x91,0x5f,0x2e,0x35,0x6a,0xa0,0x6a,0xbc,0x5a,0x04,0xfe,0xd4,0x01,0x2c,0x94,0x7b,0x7b,0x94,0x28,0x46,0x60,0x39,0x4e,0x6f,0x46,0x21,0x20,0x43,0x68,0x49,0x40,0x68,0x4a,0x26,0x70,0xfc,0xfe,0x03,0x02,0x9e,0xb4, -0x4b,0x7d,0xa9,0x5f,0x67,0xb8,0x8b,0x51,0x96,0x01,0x22,0x79,0xa3,0xa3,0x79,0xfd,0x62,0x89,0x38,0x62,0x49,0x29,0x3c,0x68,0x87,0x4c,0x44,0x7e,0x60,0x38,0x34,0x57,0x72,0xfd,0x8f,0x6c,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0x9d,0x05,0x13,0x00,0x19,0x00,0x42,0xb6,0x18,0x19,0x16,0x03,0x00,0x0f,0x07,0xb8,0x01,0x85,0xb7,0x0c,0x0a, -0x08,0x15,0x00,0x19,0x06,0x0a,0xb8,0x01,0x7e,0x40,0x0d,0x16,0x10,0x0f,0x0b,0x0b,0x01,0x14,0x7f,0x0e,0x01,0x0e,0x08,0x01,0x00,0x2f,0x33,0x2f,0x71,0x33,0x12,0x39,0x2f,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0xc6,0x33,0xed,0x32,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35, -0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0x9d,0xc6,0xfe,0x92,0x0f,0x0d,0x07,0x03,0x99,0x84,0x84,0x99,0x03,0x07,0x14,0x08,0x01,0x6f,0xb0,0xfe,0x61,0x01,0x4e,0xfe,0xb9,0x02,0x1c,0x18,0x18,0x0d,0xfd,0xa7,0x02,0x5f,0x80,0x02,0x34,0xfd,0xca,0x0d,0x1e,0x0b,0x02,0x00,0xfd,0xcc,0x80,0x00,0x01, -0x00,0x25,0x00,0x00,0x03,0x1a,0x05,0x13,0x00,0x17,0x00,0x5e,0xb9,0x00,0x06,0x01,0x84,0x40,0x2c,0x07,0x15,0x11,0x9a,0x12,0x02,0x0b,0x03,0x0a,0x0a,0x09,0x0f,0x16,0x0e,0x17,0x0e,0x0d,0x08,0x05,0x09,0x04,0x04,0x03,0x0c,0x01,0x0d,0x00,0x00,0x17,0x09,0x0d,0x03,0x17,0x17,0x03,0x0d,0x09,0x04,0x07,0x7f,0x12,0x01,0x12,0x07,0x00, -0x2f,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x21,0x35,0x21,0x15,0x21, -0x11,0x37,0x02,0xbf,0xd4,0xd4,0xd4,0x98,0xd9,0xd9,0xd9,0xd9,0xfe,0xd2,0x02,0xf5,0xfe,0xd1,0xd4,0x03,0x5c,0x79,0xb9,0x79,0x81,0x78,0xfe,0x56,0x01,0x53,0x7a,0x80,0x7a,0xb9,0x7a,0x81,0x7a,0x01,0x7c,0x8a,0x8a,0xfe,0xdb,0x78,0x00,0x05,0x00,0x28,0xfe,0xbf,0x08,0x0c,0x05,0xdb,0x00,0x3a,0x00,0x53,0x00,0x6a,0x00,0x7e,0x00,0x8e, -0x00,0x98,0x40,0x09,0x8c,0x3e,0x0c,0x1e,0x4f,0x36,0x2f,0x24,0x00,0xb8,0x01,0x85,0x40,0x11,0x4a,0x68,0x54,0x6b,0x2a,0x1e,0x24,0x4a,0x6b,0x6b,0x4a,0x24,0x1e,0x2a,0x05,0x14,0x5e,0xbb,0x01,0x83,0x00,0x75,0x00,0x84,0x01,0x82,0x40,0x29,0x14,0x6a,0x24,0x4f,0x4f,0x36,0x0c,0x8c,0x07,0x7f,0x7f,0x3e,0x1e,0x43,0x19,0x68,0x63,0x7a, -0x59,0x19,0x59,0x29,0x29,0x59,0x19,0x03,0x0f,0x36,0x32,0x32,0x2f,0x36,0x43,0x89,0x89,0x0f,0x70,0x63,0x63,0x07,0x0f,0x00,0x2f,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x12,0x39,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x2f,0x01,0x2f, -0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x33,0x11,0x33,0x33,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36, -0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15, -0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0xe7,0x20,0x45,0x6d,0x9a,0xca,0x7f,0x35,0x5d,0x4f,0x45,0x1f,0x3c,0x86,0x4d,0x2a,0x43,0x2f,0x1a,0x20,0x34,0x44,0x24,0x23,0x3d,0x38,0x34,0x1a,0x30,0x50,0x23,0x21,0x55,0x37,0x52,0x8c,0x7d,0x72,0x37,0x2f,0x3f,0x90,0xa1,0xb0,0x5e,0x3d,0x91,0x58,0x32,0x40,0x62,0x28,0x7d,0xbc, -0x7d,0x3e,0xfd,0x1c,0x2d,0x69,0x40,0x1b,0x39,0x42,0x48,0x2a,0x5f,0x98,0x76,0x55,0x37,0x1b,0x36,0x67,0x99,0x63,0x18,0x2d,0x29,0x29,0x02,0xa9,0x0e,0x29,0x4a,0x74,0x58,0x38,0x5c,0x43,0x26,0x28,0x4d,0x6f,0x48,0x1e,0x39,0x31,0x27,0x0b,0x7d,0x94,0x01,0x43,0x10,0x21,0x34,0x23,0x28,0x3e,0x2a,0x16,0x12,0x21,0x31,0x1d,0x30,0x43, -0x28,0x12,0xfa,0x8c,0x13,0x23,0x1b,0x11,0x11,0x19,0x22,0x10,0x34,0x59,0x28,0x2d,0x53,0x02,0xee,0x50,0xae,0xa7,0x95,0x71,0x42,0x12,0x1f,0x29,0x15,0x39,0x36,0x19,0x2e,0x41,0x27,0x2b,0x43,0x2d,0x17,0x0e,0x1a,0x21,0x13,0x56,0xf4,0x9b,0x99,0xe1,0x55,0x0a,0x30,0x42,0x4f,0x29,0x48,0x33,0x5f,0x4a,0x2f,0x02,0x42,0x5c,0x22,0x3b, -0x1c,0x43,0x2b,0x0e,0x56,0x8c,0xc0,0xa1,0xb1,0xfe,0xff,0x57,0x13,0x21,0x19,0x0e,0x39,0x61,0x81,0x8d,0x92,0x43,0x6c,0xa9,0x79,0x46,0x09,0x29,0x67,0x7b,0x94,0xfd,0xf1,0x31,0x69,0x57,0x39,0x21,0x41,0x5e,0x3d,0x41,0x73,0x56,0x31,0x0f,0x1c,0x28,0x18,0xfe,0x55,0x02,0x40,0x1d,0x38,0x2b,0x1a,0x22,0x39,0x49,0x27,0x25,0x3c,0x2c, -0x17,0x2c,0x40,0x4b,0x13,0x0c,0x17,0x21,0x14,0x16,0x23,0x17,0x0d,0x31,0x30,0x23,0x31,0x00,0x00,0x02,0x00,0x2b,0xfe,0x7a,0x03,0x18,0x05,0x54,0x00,0x3c,0x00,0x4e,0x00,0x5e,0xb9,0x00,0x02,0x01,0x82,0xb2,0x3b,0x28,0x47,0xb8,0x01,0x83,0xb3,0x0c,0x4a,0x35,0x1b,0xbb,0x01,0x82,0x00,0x07,0x00,0x16,0x01,0x82,0x40,0x1a,0x3d,0x3b, -0x0c,0x07,0x3d,0x3d,0x07,0x0c,0x3b,0x04,0x00,0x20,0x8a,0x30,0x00,0x25,0x4a,0x1b,0x07,0x35,0x01,0x02,0x3b,0x07,0x00,0x42,0xb8,0x01,0x7d,0xb2,0x11,0x3a,0x00,0x00,0x2f,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0xcd,0x32,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30, -0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03, -0x2b,0xe7,0x44,0x10,0x11,0x0f,0x25,0x14,0x23,0x43,0x34,0x20,0x1d,0x35,0x4c,0x30,0x2b,0x40,0x2b,0x15,0x0f,0x1a,0x22,0x14,0x2a,0x59,0x49,0x2d,0x38,0x64,0x88,0x4f,0x0a,0x0a,0x01,0x08,0x0b,0x21,0x49,0x3d,0x28,0x15,0x25,0x30,0x1b,0x20,0x40,0x1a,0x1d,0x1c,0x5a,0x59,0x01,0xa2,0x0d,0x17,0x1e,0x13,0x0f,0x1e,0x17,0x0d,0x3b,0x2d, -0x0d,0x16,0x11,0x0a,0x01,0xf0,0xfe,0xfe,0x32,0x3a,0x32,0x82,0x4a,0x44,0x80,0x7e,0x7d,0x41,0x39,0x5d,0x42,0x24,0x1f,0x3a,0x53,0x32,0x1f,0x5f,0x79,0x8a,0x4b,0x4c,0x9d,0xaa,0xbb,0x69,0x48,0x88,0x69,0x40,0x0b,0x08,0x06,0x0e,0x03,0x08,0x36,0x51,0x6d,0x40,0x4e,0x90,0x85,0x7b,0x3a,0x72,0xd1,0x52,0x60,0x55,0x01,0x31,0xdf,0x04, -0x6c,0x2b,0x3b,0x24,0x10,0x12,0x25,0x3b,0x2a,0x5e,0xad,0x57,0x36,0x66,0x5d,0x4e,0x00,0x04,0x00,0x22,0x00,0x00,0x04,0x20,0x05,0x13,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x7f,0xb3,0x30,0x2b,0x2d,0x0c,0xb8,0x01,0x85,0xb6,0x20,0x00,0x1c,0x2d,0x2f,0x24,0x19,0xb8,0x01,0x85,0x40,0x09,0x1e,0x02,0x1a,0x18,0x9a,0x2d,0x2c, -0x12,0x1c,0xb8,0x01,0x7e,0xb6,0x1d,0x24,0x0f,0x1d,0x23,0x0a,0x00,0xb8,0x01,0x7e,0x40,0x21,0x01,0x2f,0x07,0x01,0x50,0x2d,0x01,0x50,0x1d,0x01,0x1d,0x40,0x09,0x0d,0x48,0x20,0x01,0x01,0x2d,0x1d,0x01,0x01,0x1d,0x2d,0x03,0x03,0x1a,0x2e,0x9a,0x7f,0x03,0x01,0x03,0x00,0x2f,0x71,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x2b, -0x5d,0x5d,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x01,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0xc6,0x32,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33, -0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36,0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x22,0x88,0x01,0x59,0x91,0xc7,0x2a,0x9b,0x82,0x03,0x03,0x02,0x84,0xa5,0x19,0x50,0x69,0x7f,0x49,0x9e,0x99,0x88,0x88,0x02,0x57,0x03,0xfe,0x45,0x01,0xba,0x01,0x03,0xfe,0xd8,0x5d,0x7b,0x22,0xfe,0x70,0x01,0x94,0x20,0x73, -0x5b,0x03,0x9d,0x80,0xf6,0x7e,0x78,0x80,0x18,0x1a,0x13,0x24,0x12,0x7f,0x3c,0x5f,0x42,0x23,0xfe,0x5d,0x02,0xa3,0x7f,0x7b,0x39,0x1e,0x1b,0x7b,0x0f,0x21,0xfe,0xda,0x3f,0x38,0x77,0x02,0x5d,0x6c,0x33,0x39,0x00,0x03,0x00,0x4c,0xff,0x43,0x03,0x93,0x05,0xb8,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x65,0x40,0x1a,0x1c,0x2e,0x2d,0x17, -0x16,0x0f,0x06,0x0e,0x00,0x00,0x02,0x22,0x23,0x0c,0x04,0x0d,0x01,0x0d,0x13,0x0e,0x01,0x0e,0x01,0x0e,0x07,0x19,0xbe,0x01,0x84,0x00,0x2b,0x00,0x1d,0x01,0x84,0x00,0x07,0x00,0x2d,0x01,0x7e,0xb4,0x17,0x17,0x0f,0x22,0x28,0xb8,0x01,0x7e,0xb4,0x02,0x1b,0x18,0x23,0x16,0xb8,0x01,0x7e,0xb1,0x0c,0x0f,0x00,0x2f,0x33,0xed,0x32,0x3f, -0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e, -0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x04,0x63,0x11,0x5b,0x87,0x58,0x2c,0x3d,0x76,0xaf,0x73,0x10,0x63,0x10,0x4a,0x80,0x34,0x37,0x87,0x4b,0x29,0x01,0x43,0xa8,0xcb,0x0b,0xfe,0xcf,0x19,0x33,0x53,0x3b,0x59,0x4e,0x73,0x4d,0x25,0x01,0x46,0x3c,0x72,0x2c,0xc0,0x24,0xbd,0xcc,0x13,0x64,0x9e,0xd3,0x81,0x96,0xee,0xaa,0x5f, -0x07,0xac,0xac,0x05,0x21,0x1d,0xa0,0x2b,0x30,0x06,0xfe,0x1c,0xfd,0xce,0x6f,0x02,0x7e,0x65,0xa6,0x7d,0x53,0x13,0x03,0xf4,0x09,0x51,0x87,0xb6,0xfd,0x93,0x1e,0x1f,0x01,0x63,0xfe,0x60,0x00,0x03,0x00,0x0b,0x00,0x00,0x03,0xdd,0x05,0x13,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x45,0xb6,0x1c,0x1d,0x1d,0x15,0x0a,0x06,0x0e,0xb8,0x01, -0x7e,0xb6,0x0f,0x18,0x03,0x0f,0x1b,0x02,0x12,0xb8,0x01,0x7e,0x40,0x0f,0x13,0x20,0x17,0x13,0x0f,0x13,0x0f,0x13,0x08,0x7f,0x15,0x01,0x15,0x0c,0x08,0x00,0x2f,0x33,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x23,0x17,0x33, -0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x03,0xc8,0xba,0x34,0x86,0x5f,0x74,0xa8,0x6b,0xfe,0x52,0x68,0xa9,0x73,0x5d,0x85,0x33,0xb8,0xe0,0xa4,0x9d,0xa4,0xfe,0x5a,0x01,0x65,0x2f,0xfe,0xf8,0x84,0x02,0x08,0x0a, -0x4b,0xbe,0x4d,0x09,0x03,0x0e,0x80,0xa2,0x80,0xfe,0x94,0x01,0x6c,0xfe,0x94,0x01,0x6c,0x80,0xa2,0x80,0x02,0x05,0xfd,0xfb,0xfe,0xde,0xa2,0x01,0xde,0x37,0x1f,0xfe,0xf8,0x01,0x08,0x1b,0x00,0x01,0x00,0x5f,0xff,0xea,0x03,0x85,0x05,0x29,0x00,0x47,0x00,0x5c,0xb3,0x3c,0x21,0x16,0x44,0xbb,0x01,0x85,0x00,0x35,0x00,0x0e,0x01,0x85, -0xb2,0x21,0x09,0x26,0xb8,0x01,0x7d,0xb4,0x27,0x06,0x27,0x01,0x2f,0xb8,0x01,0x7d,0x40,0x1b,0x30,0x46,0x30,0x20,0x27,0x01,0x0f,0x27,0x1f,0x27,0x02,0x3f,0x30,0x4f,0x30,0x02,0x27,0x30,0x27,0x30,0x11,0x3a,0x9a,0x3f,0x11,0x9a,0x1c,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11, -0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x11,0x39,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33,0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35, -0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0x85,0x65,0x04,0x2b,0x3b,0x2f,0x35,0x01,0x33,0xfe,0x15,0x21,0x1a,0x29,0x2e,0x8a,0x8d,0x28,0x60,0x60,0x56,0x1f,0x1a,0x54,0x5e,0x5b,0x1f,0x5c,0xa7,0x80,0x4b,0x1b,0x11,0x17,0x4c,0xb4,0x14,0x15,0x3f,0x45,0x2a,0x24,0xfe,0x51,0x02,0x44,0x17, -0x0d,0x13,0x31,0x4e,0x63,0x32,0xb4,0x73,0x57,0xc1,0x54,0xa2,0x7f,0x4e,0x18,0x23,0x02,0xf3,0x04,0x2b,0x23,0x1c,0x1c,0x61,0x14,0x15,0x1f,0x4e,0x35,0x62,0x68,0x10,0x1e,0x2c,0x1b,0xb3,0x12,0x1c,0x13,0x0a,0x25,0x54,0x85,0x60,0x48,0x39,0x21,0x1e,0x61,0x0e,0x0c,0x26,0x23,0x15,0x12,0x61,0x16,0x1b,0x25,0x32,0x35,0x4a,0x2f,0x15, -0x4f,0xab,0x2e,0x2a,0x55,0x83,0x59,0x46,0x34,0x00,0x00,0x02,0x00,0x4e,0xff,0x43,0x03,0x88,0x05,0xb8,0x00,0x18,0x00,0x21,0x00,0x38,0xb2,0x16,0x10,0x03,0xb8,0x01,0x82,0xb5,0x1f,0x0d,0x04,0x04,0x00,0x1b,0xb8,0x01,0x84,0x40,0x0d,0x09,0x13,0x00,0x20,0x15,0x9a,0x0d,0x10,0x1f,0x16,0x9a,0x05,0x02,0x00,0x2f,0x33,0xed,0x32,0x2f, -0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10,0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x03,0x88,0x68,0x97,0x5f,0xd0,0x80,0x8c,0x9e,0x81,0xbd,0x5f, -0x9c,0x63,0x71,0x8e,0x94,0x6b,0xfd,0xd1,0x73,0x6c,0x56,0x82,0x7d,0x36,0x41,0x09,0xa9,0xa9,0x0f,0xa2,0xb2,0x01,0x22,0x01,0x38,0xc0,0x9d,0x1c,0x96,0x8f,0x01,0x35,0xa2,0x4d,0x01,0xfb,0xd4,0x06,0x51,0x03,0x40,0x96,0xfa,0xed,0x8e,0x70,0x17,0x04,0x1c,0x1c,0x00,0x05,0x00,0xaa,0xff,0x43,0x03,0x8c,0x05,0xb8,0x00,0x17,0x00,0x1e, -0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x76,0xb6,0x0c,0x10,0x1d,0x1d,0x2c,0x05,0x15,0xb8,0x01,0x82,0xb4,0x16,0x25,0x02,0x16,0x09,0xb8,0x01,0x85,0x40,0x0a,0x29,0x16,0x21,0x29,0x29,0x21,0x16,0x03,0x00,0x10,0xb8,0x01,0x85,0xb2,0x1a,0x24,0x20,0xb8,0x01,0x85,0x40,0x1c,0xa0,0x00,0xb0,0x00,0x02,0x00,0x0d,0x1c,0x1f,0x9a,0x2c,0x24, -0x24,0x01,0x1d,0x20,0x9a,0x17,0x14,0x04,0x2b,0x23,0x9a,0x05,0x7f,0x01,0x01,0x01,0x00,0x2f,0x71,0x33,0xed,0x32,0x2f,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x39,0x01,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x12,0x39,0x31,0x30,0x33,0x11, -0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xaa,0x01,0x1d,0x5e,0x85,0x53,0x5c,0x78,0x69,0x7d,0x97,0x6f,0x63,0x95,0x5e,0xe5,0x40,0xc7,0x53,0xfe, -0xcb,0x84,0x84,0x84,0xb3,0x40,0x95,0x32,0x05,0x13,0xa5,0xa6,0x08,0x49,0x53,0x84,0x6e,0xa4,0x22,0x04,0x0f,0xa8,0x86,0xa6,0x68,0x5e,0x08,0xbe,0xbd,0xc9,0x40,0x6e,0xc4,0x1d,0xfe,0x34,0x0a,0x01,0xc7,0xfe,0x2d,0x01,0xd3,0x02,0x2c,0xfe,0x5d,0x01,0xa3,0xfe,0x99,0x3d,0x6d,0x9b,0x1c,0xfe,0x6f,0x0e,0x00,0x05,0x00,0x8c,0xfe,0x2f, -0x0a,0x0a,0x05,0x5d,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0x95,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x33,0x05,0x0a,0x40,0x09,0x30,0x30,0x53,0x89,0x54,0x57,0x89,0x58,0x24,0xb8,0x05,0x0a,0x40,0x0e,0x21,0x0d,0x54,0x58,0x21,0x52,0x52,0x21,0x58,0x54,0x0d,0x05,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x00,0x03, -0xb8,0x05,0x0a,0x40,0x0a,0x1a,0x1d,0x44,0x22,0x22,0x44,0x1d,0x03,0x0f,0x3a,0xb8,0x04,0xfb,0xb4,0x2f,0x4f,0x01,0x4f,0x1e,0xb8,0x04,0xfb,0xb6,0x2f,0x29,0x01,0x29,0x59,0x55,0x08,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x54,0x2f,0x15,0x01,0x15,0x31,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x5d, -0xed,0x2f,0x5d,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x01,0x2f,0xfd,0xc6,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05, -0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2f,0x0a,0x0a,0x20,0x47,0x71,0x51,0x5d,0x85,0x55,0x27,0x8d,0x33, -0x75,0xc0,0x8e,0x7a,0xa5,0x63,0x2b,0x0c,0x0d,0x05,0xf7,0x55,0x52,0x8d,0x31,0x56,0x73,0x40,0x3e,0x5b,0x41,0x29,0x18,0x09,0x8e,0x08,0x20,0x3e,0x01,0x45,0x71,0x50,0x4d,0x69,0x3f,0x1b,0x11,0x1c,0x25,0x14,0x92,0x17,0x24,0x1a,0x0d,0x3d,0x6e,0x97,0x59,0x2e,0x62,0x34,0xfe,0x72,0xa8,0xa8,0x01,0x23,0xa7,0xa7,0x01,0x7e,0x41,0x6e, -0x32,0x56,0x78,0x49,0x21,0x2c,0x64,0xa2,0x75,0x04,0x51,0xfb,0x9d,0x82,0xce,0x90,0x4e,0x3e,0x74,0xa5,0x68,0x39,0x76,0x44,0xfb,0x5f,0x65,0x01,0x7e,0xfe,0x7c,0x61,0x83,0x4f,0x22,0x1e,0x34,0x44,0x4f,0x55,0x2a,0x04,0x0d,0xfc,0x29,0x3a,0x60,0x43,0x26,0xfe,0x6a,0x23,0x37,0x62,0x85,0x4d,0x44,0x81,0x7b,0x77,0x39,0x3b,0x81,0x81, -0x7e,0x38,0x7d,0xc0,0x83,0x43,0x14,0x15,0x6e,0xa4,0xa4,0xa4,0x00,0x03,0x00,0x6e,0xff,0xee,0x06,0x34,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x2e,0x00,0x82,0xb9,0x00,0x1b,0x01,0x82,0x40,0x09,0x27,0x18,0x1f,0x03,0x0f,0x25,0x25,0x0f,0x2a,0xb8,0x01,0x83,0x40,0x0b,0x14,0x0a,0x0f,0x0c,0x0c,0x0f,0x0a,0x03,0x03,0x14,0x08,0xb8,0x01, -0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb2,0x01,0x27,0x17,0xb8,0x01,0x7d,0xb3,0x18,0x18,0x11,0x1d,0xb8,0x01,0x7d,0x40,0x0b,0x22,0x01,0x22,0x01,0x22,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0xb8,0x01,0x7d,0xb3,0x2d,0x2d,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12, -0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, -0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x3d,0xfe,0x38,0xa7,0xae,0x01,0x24,0xab,0x02,0xef,0xfc,0xf6,0x82,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4d,0x49,0xb2,0x82,0x55,0x54,0x4f,0x72,0x67,0x79,0x83,0xa0,0x9a,0x80,0x7d,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c, -0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x03,0x00,0x80,0xff,0xee,0x06,0x32,0x05,0x25,0x00,0x16,0x00,0x1a,0x00,0x3b,0x00,0x9c,0xb9,0x00,0x28,0x01,0x82,0x40,0x09,0x2c,0x24,0x35,0x03,0x1b,0x32,0x32,0x1b,0x37,0xbb,0x01,0x83,0x00, -0x21,0x00,0x11,0x01,0x83,0x40,0x13,0x06,0x0b,0x01,0x19,0x00,0x06,0x1b,0x19,0x06,0x1b,0x17,0x17,0x1b,0x06,0x19,0x04,0x01,0x21,0x15,0xbb,0x01,0x84,0x00,0x01,0x00,0x09,0x01,0x7d,0xb4,0x0e,0x0e,0x1a,0x34,0x24,0xb8,0x01,0x7d,0xb3,0x25,0x25,0x1e,0x2a,0xb8,0x01,0x7d,0xb2,0x2f,0x02,0x15,0xb8,0x01,0x7d,0x40,0x0b,0x01,0x2f,0x01, -0x2f,0x01,0x19,0x7f,0x1a,0x01,0x1a,0x1e,0xb8,0x01,0x7d,0xb3,0x3a,0x3a,0x19,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11, -0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15, -0x14,0x06,0x23,0x22,0x02,0x76,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0xb4,0xfc,0xf7,0x83,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4e,0x73,0x66,0x79,0x83,0xa0,0x9a,0x80,0x7c,0x02,0x11,0x67,0xd6,0x5d,0x62,0x32,0x35,0x42,0x5d,0x87,0x45,0x77, -0x62,0x8b,0xb0,0x8e,0x03,0x02,0x93,0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x00,0x02,0x00,0xb2,0x04,0x37,0x02,0xbc,0x06,0x1f,0x00,0x03,0x00,0x07,0x00,0x1f,0xbc,0x00,0x05,0x01,0x85,0x00,0x06,0x00,0x01,0x01,0x85,0xb5,0x02,0x06, -0x02,0x02,0x07,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x51,0x9f,0x02,0x0a,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0xfe,0x18,0x01,0xe8,0x00,0x00,0x01,0x00,0xb2,0x04,0x37,0x01,0x51,0x06,0x1f,0x00,0x03,0x00,0x13,0xb9,0x00,0x01,0x01,0x85,0xb3,0x02,0x02, -0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x51,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0x00,0x01,0x00,0x53,0x03,0x1d,0x03,0x55,0x06,0x1f,0x00,0x0e,0x00,0x0f,0xb4,0x0c,0x0b,0x03,0x03,0x0c,0x00,0x2f,0x33,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x01,0x05,0x13,0x07,0x03,0x03,0x27,0x13,0x25,0x37,0x05, -0x03,0x33,0x03,0x25,0x03,0x55,0xfe,0xd4,0xd0,0x79,0xaa,0xad,0x78,0xd0,0xfe,0xd2,0x31,0x01,0x1f,0x1a,0x97,0x19,0x01,0x20,0x04,0xb7,0x3e,0xfe,0xf7,0x53,0x01,0x21,0xfe,0xdf,0x53,0x01,0x09,0x3e,0x88,0x6c,0x01,0x4c,0xfe,0xb4,0x6c,0x00,0x00,0x01,0x00,0x2b,0xfe,0xdf,0x01,0x59,0x00,0xf9,0x00,0x03,0x00,0x0f,0xb4,0x02,0x00,0x02, -0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x01,0x59,0xae,0x80,0x80,0xf9,0xfd,0xe6,0x02,0x1a,0x00,0x00,0x01,0x00,0xa6,0x02,0x49,0x03,0x1e,0x02,0xde,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x99,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1e,0xfd,0x88,0x02,0x78, -0x02,0x49,0x95,0x00,0x00,0x01,0x00,0x7a,0xff,0xe8,0x01,0x6f,0x00,0xde,0x00,0x0b,0x00,0x0d,0xb3,0x09,0x03,0x06,0x00,0x00,0x2f,0x32,0x01,0x2f,0xcd,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x18,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x02,0x00,0x7a, -0xff,0xe8,0x01,0x6f,0x04,0x77,0x00,0x0b,0x00,0x17,0x00,0x15,0xb7,0x15,0x09,0x0f,0x03,0x12,0x0c,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48, -0x48,0x33,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfc,0x63,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x00,0x02,0x00,0x2b,0xfe,0xdf,0x01,0x71,0x04,0x77,0x00,0x0b,0x00,0x0f,0x00,0x1a,0x40,0x0a,0x0c,0x0c,0x0e,0x09,0x03,0x0e,0x0e,0x0f,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x2f, -0x01,0x2f,0xcd,0x2f,0x39,0x2f,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xf7,0x33,0x47,0x47,0x33,0x32,0x48,0x48,0x30,0xae,0x80,0x80,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfd,0x74,0xfd,0xe6,0x02,0x1a,0x00,0x01,0x00,0x00,0xfe,0xa9,0x03,0xd7,0xff,0x32,0x00,0x03, -0x00,0x0e,0xb4,0x01,0x00,0x01,0x9a,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xd7,0xfc,0x29,0x03,0xd7,0xfe,0xa9,0x89,0x00,0x00,0x02,0x00,0x6a,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x05,0x0b,0x00,0x19,0x2f,0x33,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, -0x01,0x33,0x01,0x04,0x46,0xc3,0xfe,0xa7,0x01,0x59,0xc5,0xfe,0x9d,0x61,0xc0,0xfe,0xa6,0x01,0x5a,0xc0,0xfe,0xa2,0xe7,0x01,0x85,0x01,0x8d,0xfe,0x73,0xfe,0x7b,0x01,0x85,0x01,0x8d,0xfe,0x73,0x00,0x00,0x02,0x00,0x68,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x03,0x09,0x00,0x19,0x2f,0x33,0x31,0x30,0x01, -0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x04,0x48,0xfe,0xa4,0xbf,0x01,0x5d,0xfe,0xa3,0xbf,0x66,0xfe,0xa7,0xc5,0x01,0x64,0xfe,0x9c,0xc5,0x02,0x6e,0xfe,0x79,0x01,0x87,0x01,0x8b,0xfe,0x75,0xfe,0x79,0x01,0x87,0x01,0x8b,0x00,0x01,0x00,0x00,0x02,0x29,0x04,0x5f,0x02,0xb6,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x01, -0xb9,0x01,0x7f,0x00,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x5f,0xfb,0xa1,0x04,0x5f,0x02,0x29,0x8d,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00, -0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35, -0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11, -0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12, -0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27, -0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61, -0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20, -0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34, -0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17, -0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31, -0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1, -0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44, -0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x74,0x03,0xd0, -0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28, -0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x00,0x02,0x00,0x90,0x03,0xd0,0x02,0xbd,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2d,0x40,0x15,0x26,0x1a,0x20,0x29,0x29,0x20,0xaf,0x1a,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x15,0x00,0x1d,0x08,0x04,0x00, -0x3f,0x33,0xc4,0x32,0x01,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x05,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x52,0x27,0x46,0x35, -0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x01,0x0b,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x3b,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, -0x5f,0x2d,0x00,0x03,0x00,0x8d,0xff,0xe7,0x06,0x57,0x05,0xb1,0x00,0x15,0x00,0x31,0x00,0x4d,0x00,0x40,0x40,0x1d,0x10,0x0b,0x00,0x05,0x00,0x05,0x00,0x40,0x32,0x16,0x24,0x40,0x0b,0x0b,0x0d,0x15,0x02,0x13,0x0d,0x08,0x13,0x08,0x13,0x08,0x1d,0x39,0x2b,0x47,0x1d,0x00,0x2f,0xc9,0x2f,0xc9,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10, -0xc9,0xc6,0x10,0xc2,0x2f,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc9,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x25,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x04,0x33,0x32, -0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x04,0x80,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0xfc,0x0d,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x7f,0x2c,0x50,0x70,0x88,0x9d,0x55,0x54, -0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x54,0x55,0x9d,0x88,0x70,0x50,0x2c,0x01,0x49,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0xfb,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x5f,0x55,0x9c,0x88,0x70,0x50,0x2c, -0x2c,0x50,0x70,0x88,0x9c,0x55,0x55,0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x00,0xff,0xff,0x00,0x70,0x00,0xb2,0x01,0x50,0x04,0xde,0x02,0x07,0x00,0x1d,0x00,0x00,0x00,0xc8,0x00,0x17,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b, -0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x5b,0x00,0x6b,0x00,0x73,0x00,0x7c,0x00,0xb2,0x00,0xbc,0x00,0xc3,0x01,0x65,0x40,0xc6,0x3b,0x1b,0x38,0x18,0x37,0x2f,0x14,0x34,0x2c,0x23,0x1f,0x20,0x1c,0x0c,0x64,0x65,0x79,0x97,0x97,0xab,0x7d,0x8e,0x03,0x11,0x4d,0x50,0x51,0xa1,0x8e,0xab,0x86,0x48, -0x57,0x59,0x57,0xbe,0xb4,0xb5,0x6d,0x75,0x5c,0xb9,0xc1,0x61,0x71,0x68,0x79,0x06,0x12,0x11,0x51,0x8e,0x86,0x57,0xb5,0x5c,0xc1,0x71,0x79,0x12,0x12,0x79,0x71,0xc1,0x5c,0xb5,0x57,0x86,0x8e,0x51,0x11,0x0b,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04, -0x14,0x2a,0x42,0x29,0x41,0x46,0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x97,0x97,0x9c,0x7e,0x81,0x5a,0x52,0x51,0x51,0x49,0x15,0x0d,0xb0,0x81,0xb3,0xbe,0xbd,0xb6,0x9c,0x93,0x5c,0x75,0x49,0x57,0x74,0x6d,0x6c,0x5d,0x4d,0x52,0x0a,0x00,0x0d,0xb5,0x81,0xbe,0xb6,0x93,0x75,0x57,0x6d,0x5d,0x52,0x00, -0x00,0x52,0x5d,0x6d,0x57,0x75,0x93,0xb6,0xbe,0x81,0xb5,0x0d,0x0c,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, -0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc0,0x2f,0x10,0xc4,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9, -0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc5,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4, -0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01, -0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, -0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0xbc,0xeb,0x96, -0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfd,0x02,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b, -0x98,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0xfd,0x7c,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22, -0x24,0x40,0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff, -0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0xae,0x35,0x30,0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0xfd,0x3a,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30, -0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0x00,0x00,0x15,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, -0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x7d,0x00,0x87,0x00,0x8e,0x00,0x98,0x00,0xb4,0x01,0x57,0x40,0xbf,0x3b,0x1b,0x38,0x18,0x14,0x23,0x1f,0x20,0x1c,0x0c,0xa8,0x2f,0x2f,0x37,0x62,0x62,0x76,0x34,0x2c,0xa4,0x8f,0x8f,0x96,0x48,0x59,0x93,0x03,0x11,0x97,0x90,0x6c,0x59, -0x96,0x92,0x76,0x51,0x37,0xa4,0x89,0x7f,0x80,0x84,0x8c,0x06,0x12,0x11,0x90,0x59,0x92,0x51,0xa4,0x80,0x8c,0x12,0x99,0x99,0x12,0x8c,0x80,0xa4,0x51,0x92,0x59,0x90,0x11,0x0a,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04,0x14,0x2a,0x42,0x29,0x41,0x46, -0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x62,0x62,0x67,0x49,0x4c,0xb4,0xa4,0xac,0x15,0x0d,0x7b,0x4c,0x7e,0x89,0x88,0x81,0x67,0x5e,0xa3,0x9b,0x90,0x97,0xb1,0xb0,0xa9,0xa8,0x04,0x97,0x9e,0x9f,0xac,0x93,0x94,0x0a,0x00,0x0d,0x80,0x4c,0x89,0x81,0x5e,0x97,0xac,0x94,0x00,0x00,0x94,0xac,0x97,0x5e, -0x81,0x89,0x4c,0x80,0x0d,0x0a,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32, -0x11,0x17,0x33,0x10,0xc9,0x32,0x32,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc4,0x32,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, -0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32,0x10,0xca,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0xc4,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23, -0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x35,0x16, -0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0x25,0x21,0x35,0x13,0x23,0x35, -0x21,0x15,0x03,0x33,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xbc,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1, -0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfb,0xac,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40, -0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0xfe,0x82,0xfe,0xa5,0xdd,0xcd,0x01,0x4a,0xd8,0xd9,0x02,0xb6,0x71,0x6c,0x47,0x06,0x01,0x01,0x03,0x05,0x49,0x70,0x71,0x6a,0x3c,0x04,0x02,0x02,0x01,0x07,0x4e,0x68,0x47,0x04,0x03,0x01,0x01,0x05,0x3b,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56, -0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0xfd,0xc7,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c, -0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0xba,0x38,0x01,0x27,0x4f,0x36,0xfe,0xd6,0x01,0x60,0xfe,0x52,0x01,0x14,0x15,0x1b,0x1d,0x13,0xfe,0xec,0x01,0xae,0xfe,0xe2,0x13,0x1f,0x17,0x1c,0x01,0x1d,0xfe,0xdf, -0x10,0x1e,0x18,0x18,0x01,0x1f,0x00,0x16,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x35,0x00,0x3b,0x00,0x41,0x00,0x47,0x00,0x4d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x91,0x00,0xa5,0x00,0xb5,0x00,0xbd,0x00,0xc6,0x01,0x62,0x40,0xc3, -0x71,0x51,0x6e,0x4e,0x6d,0x65,0x4a,0x6a,0x62,0x59,0x56,0x52,0x42,0x1a,0x1a,0x2e,0x00,0x11,0xae,0xaf,0xc3,0x39,0x47,0x83,0x86,0x87,0xb7,0xbf,0xa6,0xab,0xbb,0xb2,0xc3,0x7e,0x8d,0x8f,0x8d,0x97,0x9a,0x9b,0x24,0x11,0x2e,0x09,0x92,0xa1,0xa3,0xa1,0x3c,0x48,0x47,0x87,0xa6,0xbb,0xc3,0x8d,0x9b,0x11,0x09,0xa1,0x48,0x48,0xa1,0x09, -0x11,0x9b,0x8d,0xc3,0xbb,0xa6,0x87,0x47,0x0b,0x4a,0x66,0x72,0x76,0x3b,0x04,0x45,0x36,0x67,0x73,0x77,0x04,0x42,0x3f,0x5a,0x5e,0x7a,0x04,0x4d,0x5b,0x5f,0x7b,0x40,0x04,0x4a,0x60,0x78,0x5f,0x77,0x7c,0x74,0x37,0x5b,0x67,0x67,0x45,0x01,0xbf,0xa4,0x90,0x88,0x9b,0x87,0x87,0x7f,0x1a,0x7b,0x73,0x73,0xb6,0x5c,0xae,0xaf,0x03,0x68, -0xb7,0x4b,0x43,0x33,0xa6,0xbf,0x04,0xbf,0xbe,0xb7,0x1f,0xb6,0xa7,0x16,0xa7,0x93,0x7f,0x8d,0xa1,0x8d,0x97,0x83,0x88,0x9c,0x88,0x40,0x36,0x43,0xbf,0xb7,0xa7,0x8d,0x88,0x36,0x36,0x88,0x8d,0xa7,0xb7,0xbf,0x43,0x07,0x37,0x4f,0x53,0x63,0x49,0x04,0x45,0x48,0x4e,0x52,0x62,0x04,0x42,0x56,0x6a,0x6e,0x3c,0x04,0x3a,0x3d,0x57,0x6b, -0x6f,0x04,0x37,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x10,0xc9,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x17,0x32,0x10,0xc0,0x2f,0x32,0x32,0x10,0xc0,0x2f, -0x32,0x10,0xc4,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10, -0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc5,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0xc4,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, -0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33, -0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x11,0x33,0x32, -0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x04,0x10,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13, -0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0xfc,0x95,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfc,0xe4, -0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0x02,0x01,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0xfc,0xc7,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0x01,0x0e,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11, -0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x03,0xd2,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01, -0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfc,0x34,0x01,0xae,0x35,0x30, -0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0x00,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0x15,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11, -0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0xad,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x3b,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0x16,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27, -0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0xae,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x60, -0x01,0x60,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e, -0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07, -0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e,0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e, -0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00, -0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff, -0x06,0x16,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27, -0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x08,0xc2,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x0e,0x6f,0x06,0xae, -0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x09,0x5a,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x09,0x3b,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a, -0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0xca,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0x83,0xfd,0xcf,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x55,0x01,0x55,0x00,0x11,0x5d,0x35,0xff,0xff, -0x00,0x9a,0xff,0x02,0x08,0xc2,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x09,0x5a,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x09,0x3b,0x06,0xae, -0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11, -0x5d,0x35,0x00,0x02,0xff,0x0e,0x04,0x88,0x00,0xf3,0x07,0x90,0x00,0x19,0x00,0x25,0x00,0x2b,0x40,0x0d,0x0d,0x0d,0x00,0x1a,0x14,0x14,0x20,0x06,0x1d,0x14,0x17,0x17,0x0c,0xbb,0x01,0x36,0x00,0x23,0x00,0x03,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x14,0x06, -0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x37,0x15,0x06,0x07,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0xf3,0x83,0x6c,0x74,0x82,0x2d,0x68,0x80,0x71,0x1e,0x0e,0x34,0x58,0x46,0x42,0x26,0x06,0x02,0x3c,0x6f,0x69,0x79,0x54,0x58,0x48,0x68,0x34,0x59,0x4a,0x45, -0x54,0x05,0x8c,0x77,0x8d,0xa3,0xa0,0x78,0xaa,0x67,0x15,0x13,0x14,0x4d,0x0e,0x09,0x0e,0x0c,0x2f,0x68,0x49,0x57,0x8c,0x7a,0x59,0x67,0x62,0x3f,0x5c,0x79,0x68,0x00,0x00,0x03,0xff,0x36,0x04,0x96,0x00,0xcb,0x06,0x96,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x31,0x40,0x10,0x0b,0x09,0x0d,0x0d,0x04,0x00,0x14,0x11,0x18,0x04,0x17,0x11, -0x11,0x18,0x10,0x05,0xbb,0x01,0x38,0x00,0x18,0x00,0x04,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0xc4,0x31,0x30,0x13,0x14,0x06,0x23,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x27,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34,0x23,0x23,0x15,0x33,0x32,0xcb,0x61, -0x47,0xed,0xdf,0x4c,0x57,0x62,0x75,0x65,0x59,0x85,0x7b,0x63,0x13,0x6f,0x82,0x8e,0x63,0x05,0x29,0x40,0x53,0x02,0x00,0x42,0x3b,0x64,0x15,0x0f,0x7c,0x43,0x90,0x94,0x4e,0x9e,0x00,0x01,0xff,0x72,0x04,0x96,0x00,0x8f,0x06,0x96,0x00,0x05,0x00,0x17,0xb4,0x04,0x01,0x02,0x00,0x03,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f, -0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x03,0x11,0x23,0x11,0x21,0x15,0x3c,0x52,0x01,0x1d,0x06,0x50,0xfe,0x46,0x02,0x00,0x46,0x00,0x02,0xfe,0xfc,0x03,0xdb,0x01,0x05,0x06,0x96,0x00,0x0c,0x00,0x11,0x00,0x2f,0x40,0x0b,0x0a,0x11,0x11,0x00,0x10,0x03,0x04,0x0c,0x00,0x0e,0x08,0xb8,0x01,0x38,0xb5,0x10,0x0a,0x05,0x04,0x00,0x02,0xb8, -0x01,0x3a,0x00,0x3f,0xce,0x32,0xc9,0x32,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0xc8,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x36,0x13,0x21,0x11,0x33,0x11,0x03,0x23,0x06,0x07,0x33,0xbf,0xfe,0x83,0x46,0x2e,0x81,0x04,0x01,0x0a,0x4c,0x9e,0x72,0x0d,0x67,0xe6,0x03,0xdb,0xbb,0xbb,0x01,0x01,0xba,0x01, -0x00,0xfe,0x46,0xfe,0xff,0x02,0x75,0xd5,0x9f,0x00,0x00,0x01,0xfe,0x84,0x04,0x96,0x01,0x7d,0x06,0x96,0x00,0x15,0x00,0x2f,0x40,0x12,0x10,0x03,0x04,0x0d,0x04,0x0a,0x09,0x04,0x13,0x13,0x04,0x09,0x0a,0x04,0x08,0x15,0x08,0x0b,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, -0x11,0x33,0x10,0xc9,0x32,0x31,0x30,0x01,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x23,0x13,0x27,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x07,0x13,0x01,0x0e,0xe5,0x02,0x4e,0x02,0xe4,0x6f,0xfe,0xee,0x68,0xdb,0x02,0x4e,0x02,0xdb,0x6a,0xf0,0xff,0x04,0x96,0xfd,0xfd,0xfd,0xfd,0x01,0x08,0xf8,0xf0,0xf0,0xf0,0xf0,0xf8,0xfe,0xf8, -0x00,0x01,0xff,0x46,0x04,0x88,0x00,0xbb,0x06,0xa1,0x00,0x21,0x00,0x37,0x40,0x13,0x1e,0x1f,0x0d,0x1b,0x11,0x11,0x0a,0x16,0x05,0x0d,0x00,0x0a,0x1f,0x0d,0x0e,0x0e,0x08,0x14,0x19,0xbb,0x01,0x39,0x00,0x08,0x00,0x03,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x39,0x01,0x2f,0xc9,0x2f,0xc4,0x32,0x12,0x39,0x2f,0xc9, -0x10,0xc9,0x32,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0xbb,0x70,0x64,0x6b,0x36,0x3f,0x5d,0x88,0x95,0x32,0x30,0x82,0x37,0x39,0x4b,0x4a,0x57,0x45,0xbb,0x3a,0x30,0x38,0x46,0x05,0x21, -0x47,0x52,0x1b,0x51,0x26,0x56,0x55,0x46,0x51,0x1f,0x2c,0x25,0x4c,0x1f,0x89,0x2e,0x41,0x09,0x02,0x05,0x42,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0c,0x00,0x29,0x40,0x0c,0x0a,0x0a,0x04,0x0c,0x07,0x03,0x0b,0x04,0x02,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33, -0x39,0x39,0x01,0x2f,0xc8,0xc9,0x32,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x01,0x62,0xe2,0x02,0x52,0x52,0x02,0xd7,0x6c,0xee,0x01,0x00,0x04,0x96,0xf6,0xf6,0x02,0x00,0xeb,0xeb,0xf7,0xfe,0xf7,0x00,0x01,0xff,0x20,0x04,0x8f,0x00,0xe1,0x06,0x96,0x00,0x0e,0x00,0x1c,0xb4,0x07, -0x0e,0x00,0x02,0x0c,0xb8,0x01,0x38,0xb2,0x0a,0x05,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xd4,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x13,0x11,0x23,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x8f,0x77,0x12,0x61,0x59,0x1a,0x12,0x0d,0x19,0x70,0x1e,0x01,0x0d,0x04,0x96,0x01,0xbb,0xe9,0xd9,0x07,0x47,0x09,0x01, -0xc2,0xfe,0x00,0x00,0x00,0x01,0xfe,0xec,0x04,0x96,0x01,0x15,0x06,0x96,0x00,0x10,0x00,0x17,0xb4,0x07,0x08,0x10,0x00,0x09,0xba,0x01,0x38,0x00,0x08,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11,0x07,0x03,0x23,0x03,0x27,0x11,0x23,0x11,0x33,0x13,0x17,0x37,0x13,0x33,0x11,0xc4,0x0f,0x93,0x49,0x84,0x22, -0x47,0x69,0x87,0x25,0x24,0x83,0x6d,0x04,0x96,0x01,0xa6,0x2d,0xfe,0x87,0x01,0x48,0x5e,0xfe,0x5a,0x02,0x00,0xfe,0xb2,0x65,0x63,0x01,0x50,0xfe,0x00,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0b,0x00,0x27,0x40,0x0b,0x07,0x03,0x04,0x0b,0x08,0x00,0x02,0x07,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00, -0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x32,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x83,0xfe,0xfb,0x52,0x52,0x01,0x05,0x52,0x04,0x96,0xe8,0xe8,0x02,0x00,0xd2,0xd2,0xfe,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15, -0x00,0x1c,0xb5,0x09,0x14,0x0f,0x03,0x0c,0x06,0xbb,0x01,0x39,0x00,0x12,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x71,0x89,0x8d,0x79,0x71,0x81,0x8a,0x6e,0x4f,0x5d,0x5b, -0x51,0xa4,0x04,0x89,0x91,0x76,0x82,0x90,0x8e,0x7c,0x7c,0x93,0x01,0xd3,0x6a,0x5e,0x5b,0x6a,0xc7,0xc6,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x07,0x00,0x1c,0xb5,0x03,0x04,0x07,0x00,0x02,0x05,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11, -0x21,0x11,0x23,0x11,0x21,0x11,0x83,0xfe,0xfb,0x52,0x01,0xa9,0x04,0x96,0x01,0xba,0xfe,0x46,0x02,0x00,0xfe,0x00,0x00,0x02,0xff,0x15,0x03,0xa9,0x00,0xec,0x06,0xa2,0x00,0x10,0x00,0x1d,0x00,0x2e,0x40,0x0c,0x0b,0x17,0x11,0x05,0x01,0x02,0x00,0x05,0x08,0x14,0x01,0x0e,0xbd,0x01,0x3b,0x00,0x1a,0x00,0x08,0x01,0x39,0x00,0x03,0x01, -0x38,0x00,0x3f,0x3f,0xc9,0x3f,0xce,0xc9,0x12,0x39,0x39,0x01,0x2f,0xc9,0x32,0x32,0x2f,0xc9,0x31,0x30,0x03,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x99,0x52,0x52,0x02,0x3c,0x75,0x64,0x6e,0x7d,0x6c,0x65,0x35,0x02,0x52, -0x40,0x46,0x59,0x4e,0x44,0x47,0x58,0x04,0xdf,0xfe,0xca,0x02,0xed,0x5a,0x66,0x8a,0x73,0x82,0x9a,0x56,0x83,0x3b,0x59,0x6c,0x6d,0x52,0x64,0x62,0x48,0x00,0x00,0x01,0xff,0x40,0x04,0x89,0x00,0xc1,0x06,0xa2,0x00,0x15,0x00,0x1c,0xb5,0x05,0x10,0x0b,0x00,0x02,0x13,0xbb,0x01,0x39,0x00,0x08,0x00,0x0d,0x01,0x3b,0x00,0x3f,0xc9,0x3f, -0xc9,0x01,0x2f,0x33,0x2f,0xc9,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xc1,0x38,0x41,0x4f,0x65,0x5d,0x51,0x43,0x3c,0x3d,0x51,0x6b,0x88,0x93,0x77,0x46,0x31,0x06,0x35,0x27,0x72,0x58,0x58,0x6b,0x2d,0x4e,0x25,0x8c,0x74,0x7d,0x9c,0x19,0x00,0x01, -0xff,0x3e,0x04,0x96,0x00,0xc3,0x06,0x96,0x00,0x07,0x00,0x1d,0xb7,0x01,0x02,0x02,0x06,0x04,0x00,0x04,0x05,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x32,0x01,0x2f,0x2f,0x39,0x2f,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x2a,0x52,0x9a,0x01,0x85,0x06,0x50,0xfe,0x46,0x01,0xba,0x46,0x46,0x00,0x01, -0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x10,0x00,0x1d,0xb7,0x01,0x09,0x09,0x0a,0x08,0x02,0x00,0x03,0xba,0x01,0x3a,0x00,0x00,0x01,0x38,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xc9,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x23,0x06,0x07,0x23,0x37,0x03,0x33,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x7b,0x02, -0x12,0x6b,0x5e,0xae,0xa8,0x60,0x6b,0x0e,0x02,0x1a,0x65,0x06,0x96,0xfe,0xfe,0xfe,0xcc,0x20,0xac,0xfc,0x01,0x04,0xbd,0x1b,0x31,0xa7,0x00,0x01,0xff,0x06,0x03,0xdb,0x00,0xfb,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0a,0x09,0x06,0x06,0x00,0x05,0x02,0x0b,0x00,0x07,0x04,0xb8,0x01,0x38,0xb3,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00, -0x3f,0xce,0xc9,0x32,0x3f,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0xb4,0xfe,0x52,0x52,0x01,0x05,0x52,0x4c,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x01,0xff,0x2f,0x04,0x96,0x00,0xd2,0x06,0x96,0x00,0x0f,0x00,0x24, -0x40,0x0b,0x08,0x05,0x0f,0x0c,0x00,0x03,0x01,0x0a,0x0a,0x0d,0x07,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xcd,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x35,0x06,0x23,0x22,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x35,0x33,0x11,0x81,0x57,0x4f,0xac,0x52,0x61,0x49,0x56,0x51,0x04,0x96,0xce, -0x31,0xb6,0xad,0xa9,0x71,0x2b,0xeb,0xfe,0x04,0x00,0x00,0x01,0xfe,0xba,0x04,0x96,0x01,0x47,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0b,0x07,0x04,0x04,0x00,0x0b,0x08,0x03,0x00,0x09,0x05,0x02,0xb8,0x01,0x38,0xb2,0x07,0x03,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31, -0x30,0x01,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xfe,0xba,0x52,0xcc,0x52,0xcb,0x52,0x04,0x96,0x02,0x00,0xfe,0x46,0x01,0xba,0xfe,0x46,0x01,0xba,0xfe,0x00,0x00,0x01,0xfe,0x93,0x03,0xdb,0x01,0x6d,0x06,0x96,0x00,0x0f,0x00,0x37,0x40,0x10,0x09,0x06,0x0d,0x0a,0x06,0x0a,0x06,0x0a,0x00,0x05,0x02,0x0f,0x00,0x0b, -0x07,0x04,0xb8,0x01,0x38,0xb4,0x0d,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00,0x3f,0xce,0xc9,0x32,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x31,0x30,0x01,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x01,0x25,0xfd,0x6e,0x52,0xcb,0x52,0xcc,0x52, -0x4d,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x03,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa1,0x00,0x0b,0x00,0x1b,0x00,0x28,0x00,0x40,0x40,0x19,0x27,0x09,0x19,0x1f,0x13,0x03,0x19,0x13,0x1f,0x0c,0x27,0x10,0x21,0x25,0x1f,0x27,0x21,0x21,0x27,0x1f,0x25,0x04,0x16,0x1c,0x06,0xbb, -0x01,0x39,0x00,0x16,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x33,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x22,0x27,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x06, -0x03,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x26,0x02,0x73,0x87,0x8c,0x79,0x73,0x80,0x89,0x29,0x16,0x36,0x32,0x15,0x0d,0x29,0x27,0x08,0x5c,0x45,0x48,0x51,0x0a,0x1d,0x30,0x55,0x49,0x59,0x08,0x48,0x19,0x13,0x39,0x3b,0x0c,0x0e,0x4a,0x10,0x04,0x89,0x8f,0x78,0x80,0x91,0x8c,0x7d,0x7c,0x91,0xcc,0x1b,0x1a,0x10, -0x0c,0x4b,0x57,0x4e,0x55,0x0b,0x0f,0x01,0x05,0x55,0x4d,0x18,0x19,0x1b,0x1d,0xa1,0x00,0x01,0xfe,0x94,0x04,0x88,0x01,0x6c,0x06,0x96,0x00,0x17,0x00,0x30,0x40,0x0d,0x01,0x02,0x0d,0x02,0x0d,0x02,0x12,0x16,0x07,0x12,0x00,0x04,0x15,0xbd,0x01,0x38,0x00,0x0a,0x00,0x0f,0x01,0x3b,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f,0xc9, -0x32,0x01,0x2f,0xc9,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0xd3,0x52,0xe0,0x56,0x64,0x58,0x4b,0x44,0x3a,0x39,0x48,0x6d,0x86,0x8d,0x7c,0x01,0xcf,0x06,0x50,0xfe,0x46,0x01,0xba,0x65,0x59,0x55, -0x6e,0x2d,0x4e,0x26,0x8c,0x75,0x7d,0x90,0x46,0x00,0x00,0x02,0xff,0x36,0x04,0x89,0x00,0xcb,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x3a,0x40,0x12,0x0f,0x0f,0x19,0x08,0x1e,0x0b,0x00,0x01,0x15,0x0f,0x12,0x0b,0x0b,0x1b,0x02,0x05,0x0d,0x12,0xbd,0x01,0x39,0x00,0x1b,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f, -0xc9,0x12,0x39,0x12,0x39,0x2f,0x12,0x39,0xc9,0x01,0x2f,0xc9,0x33,0x33,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0xcb,0x52,0x02,0x35,0x68,0x4e,0x56,0xa4,0x9f,0x6a,0x5c,0x4a,0x40, -0x6e,0xb4,0x52,0x7c,0x42,0x31,0x64,0x3a,0x51,0x04,0x96,0x50,0x5d,0x52,0x43,0x8d,0x18,0x18,0x81,0x3e,0x54,0x30,0xbe,0x4a,0x13,0x0a,0x2a,0x2e,0x56,0x54,0x40,0x00,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x2d,0x40,0x0e,0x06,0x06,0x00,0x12,0x17,0x01,0x0b,0x01,0x05,0x17,0x17,0x03,0x14,0x0e, -0xbb,0x01,0x39,0x00,0x03,0x00,0x08,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x56,0x4a,0x41,0x71,0x6d,0x7c, -0x86,0x65,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8b,0x80,0x76,0x98,0x80,0x76,0x1a,0x96,0x51,0x45,0x00,0x01,0xff,0x27,0x04,0x96,0x00,0xda,0x06,0x96,0x00,0x19,0x00,0x4c,0x40,0x1f,0x04,0x08,0x01,0x17,0x17,0x14,0x0d,0x19,0x19,0x13,0x14,0x06,0x06,0x0c,0x0d,0x10,0x17,0x08,0x17,0x07,0x19,0x00, -0x04,0x00,0x17,0x00,0x17,0x00,0x02,0x14,0x0d,0xba,0x01,0x3a,0x00,0x02,0x01,0x38,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x33,0xc9,0x32,0x31,0x30,0x03,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x16,0x16,0x15, -0x15,0x23,0x35,0x34,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x37,0x35,0x23,0xae,0x86,0x52,0x85,0x85,0x57,0x59,0x52,0x85,0x8a,0x52,0xb1,0x86,0x06,0x3a,0x5c,0x5c,0x43,0x4c,0x0a,0x78,0x6a,0x29,0x32,0xa1,0xa1,0x32,0x2c,0xd8,0x12,0x4b,0x00,0x00,0x02,0xff,0x18,0x04,0x88,0x00,0xe8,0x07,0x8c,0x00,0x12,0x00,0x1c,0x00,0x3b,0x40,0x1a, -0x10,0x08,0x0c,0x19,0x00,0x16,0x08,0x19,0x16,0x16,0x19,0x08,0x03,0x06,0x0f,0x1b,0x09,0x06,0x19,0x0c,0x09,0x0c,0x09,0x0f,0x13,0x03,0xb8,0x01,0x3b,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0xc9,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x11,0x33,0x10,0xc9,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x26,0x35, -0x34,0x37,0x03,0x33,0x16,0x17,0x37,0x13,0x33,0x03,0x16,0x16,0x07,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x15,0x14,0x5d,0x44,0x34,0x35,0x47,0x47,0x98,0x5f,0x59,0x0e,0x09,0xa5,0x5c,0xda,0x23,0x2c,0x7a,0x19,0x10,0x0f,0x1d,0x26,0x04,0xf8,0x30,0x40,0x3d,0x36,0x37,0x89,0x01,0x20,0xb6,0x23,0x16,0x01,0x74,0xfe,0x30,0x3e,0x5e,0x52, -0x21,0x0e,0x10,0x2d,0x3a,0x4f,0x28,0x2f,0x00,0x02,0xfe,0xf7,0x04,0x96,0x01,0x0a,0x07,0x8c,0x00,0x12,0x00,0x19,0x00,0x3b,0x40,0x19,0x0f,0x0b,0x17,0x08,0x04,0x04,0x06,0x0d,0x00,0x13,0x06,0x16,0x0f,0x0e,0x06,0x07,0x0b,0x07,0x0f,0x07,0x0f,0x07,0x09,0x17,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33, -0x10,0xc9,0x32,0x10,0xc9,0x01,0x2f,0x2f,0xc9,0xc4,0x12,0x39,0x2f,0x33,0xc9,0x32,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x32,0x16,0x07,0x34,0x23,0x23,0x15,0x33,0x32,0x01,0x0a,0x5c,0x48,0xe3,0x8c,0x8c,0x52,0x9c,0x9c,0x89,0x4f,0x5d,0x54,0x68,0x79,0x7a,0x67,0x05, -0x36,0x47,0x59,0x02,0x59,0x43,0x5a,0x5a,0x43,0xfe,0xe2,0x51,0x4a,0x55,0xaf,0x00,0x00,0x02,0xfe,0xa2,0x04,0x8a,0x01,0x5e,0x06,0xa2,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x10,0x15,0x0a,0x03,0x03,0x06,0x10,0x19,0x09,0x05,0x06,0x04,0x09,0x09,0x17,0x13,0x0d,0xbf,0x01,0x39,0x00,0x07,0x01,0x38,0x00,0x06,0x01,0x3a,0x00,0x17,0x00, -0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0x3f,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0x33,0xc9,0x31,0x30,0x13,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x15,0x14,0x33,0x32,0x35,0x34,0x6c,0x6a,0x79,0x04,0x91,0x52,0x52,0x92,0x0d,0x7c, -0x69,0x70,0x76,0x81,0x6c,0x99,0x9b,0x97,0x04,0x8a,0x7f,0x75,0xe8,0x02,0x00,0xd2,0x66,0x78,0x8e,0x7c,0x7f,0x8f,0x01,0xd3,0xc8,0xc6,0xc7,0xc7,0x00,0x02,0xfe,0xc2,0x04,0x8a,0x01,0x3f,0x06,0xa2,0x00,0x1b,0x00,0x26,0x00,0x5e,0x40,0x1d,0x0f,0x0b,0x0c,0x15,0x15,0x1c,0x09,0x07,0x07,0x00,0x0c,0x22,0x1b,0x11,0x00,0x15,0x15,0x13, -0x18,0x0a,0x0f,0x23,0x11,0x0f,0x11,0x0f,0x11,0x1f,0x18,0xbd,0x01,0x39,0x00,0x0d,0x01,0x38,0x00,0x00,0x00,0x0c,0x01,0x3a,0xb4,0x01,0x02,0x02,0x1f,0x04,0xb8,0x01,0x3b,0x00,0x3f,0xd9,0xc0,0x2f,0x32,0x3f,0x33,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x01,0x2f,0x33,0xc9,0x33,0x2f,0x12,0x39, -0x2f,0xcd,0xd9,0xc0,0x2f,0x10,0xc9,0x32,0x31,0x30,0x13,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x21,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0xed,0x02,0x32,0x6b,0x4c,0x57,0x1c,0xb3,0x52,0x52,0x01,0x38,0xa1,0x69,0x5b, -0x4c,0x47,0x67,0xb4,0xfe,0xc0,0x3a,0x28,0x3f,0x4d,0x7c,0x42,0x30,0x04,0x96,0x50,0x5c,0x51,0x43,0x3c,0x24,0xe8,0x02,0x00,0xd2,0x16,0x83,0x3f,0x54,0x30,0xbf,0xfe,0xb3,0x8e,0x2a,0x2b,0x57,0x3c,0x37,0x12,0x0a,0x2b,0x00,0x02,0xff,0x07,0x04,0x96,0x00,0xfa,0x06,0x96,0x00,0x08,0x00,0x14,0x00,0x47,0x40,0x1b,0x00,0x00,0x0d,0x07, -0x0e,0x04,0x03,0x0b,0x08,0x10,0x0e,0x08,0x08,0x0e,0x10,0x03,0x09,0x12,0x09,0x0b,0x10,0x10,0x08,0x0a,0x03,0x04,0x13,0xb8,0x01,0x38,0xb2,0x12,0x0e,0x0a,0xb8,0x01,0x3a,0x00,0x3f,0x33,0x33,0x3f,0xc9,0x32,0x12,0x39,0x39,0x11,0x33,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0xc6,0x32,0x10,0xc4,0xd9,0xc0,0x2f,0x31, -0x30,0x13,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x17,0x17,0x23,0x27,0x07,0x15,0x23,0x35,0x27,0x07,0x23,0x13,0x33,0x3a,0x26,0x0e,0x04,0x02,0x02,0x08,0x2f,0x3d,0xf6,0x58,0x4c,0x30,0x4b,0x32,0x4e,0x54,0xd6,0x51,0x05,0xa3,0x69,0x22,0x25,0x14,0x23,0x75,0x46,0xcb,0xc6,0x3b,0x8b,0x8b,0x3c,0xc7,0x02,0x00,0x00,0x00,0x02,0xfe,0xee, -0x04,0x96,0x01,0x12,0x06,0x96,0x00,0x12,0x00,0x17,0x00,0x51,0x40,0x20,0x12,0x12,0x0e,0x13,0x03,0x04,0x0f,0x16,0x0c,0x04,0x16,0x16,0x04,0x0c,0x03,0x0d,0x13,0x14,0x09,0x0d,0x0f,0x0c,0x02,0x05,0x16,0x0c,0x16,0x0c,0x16,0x00,0x14,0x0d,0xb8,0x01,0x38,0xb2,0x09,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x3f,0xc9,0x12,0x39, -0x39,0x2f,0x2f,0x10,0xc9,0x32,0x11,0x33,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xbb,0x12,0x80,0x4e,0x44,0x47,0x0b,0x57,0x15,0x5c,0x57, -0x9f,0x01,0xda,0xa4,0x53,0x5b,0x17,0xa8,0xc9,0x5b,0x07,0x04,0x04,0x96,0xb3,0x26,0xd9,0xda,0x15,0x68,0x5d,0x7e,0x7c,0x1b,0xeb,0xec,0x1b,0x7a,0x7f,0x01,0xbc,0x91,0x0f,0x08,0x00,0x02,0xfe,0xb2,0x04,0x96,0x01,0x4f,0x06,0x96,0x00,0x17,0x00,0x1c,0x00,0x69,0x40,0x2d,0x17,0x17,0x13,0x18,0x19,0x12,0x03,0x04,0x14,0x1b,0x12,0x0a, -0x11,0x04,0x1b,0x1b,0x04,0x11,0x0a,0x12,0x05,0x0d,0x18,0x10,0x0c,0x08,0x08,0x0c,0x0d,0x02,0x05,0x1b,0x0b,0x10,0x14,0x1b,0x10,0x10,0x1b,0x14,0x03,0x00,0x19,0x0e,0x12,0xb8,0x01,0x38,0xb3,0x0d,0x08,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x32,0x3f,0xc4,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x32,0x01, -0x2f,0xd9,0xc2,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x07,0x23,0x36,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xf8,0x11,0x82,0x4e,0x86,0x0f,0x57,0x1e, -0x72,0xb7,0x52,0x52,0xdf,0x8f,0x01,0xda,0xa4,0x54,0x5a,0x17,0xa8,0xc9,0x5a,0x07,0x09,0x04,0x96,0xb0,0x29,0xd9,0xda,0x29,0xb1,0xb7,0x35,0xec,0x02,0x00,0xd4,0xd4,0xec,0x1c,0x76,0x82,0x01,0xbc,0x91,0x0f,0x0f,0x00,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x25,0x00,0x3f,0x40,0x21,0x06,0x1a,0x0a,0x0a,0x1a,0x06, -0x03,0x00,0x03,0x09,0x0e,0x7f,0x05,0x00,0x09,0x06,0x91,0x07,0x03,0x1d,0x92,0x16,0x16,0x03,0x23,0x92,0x1a,0x11,0x04,0x0a,0x91,0x03,0x12,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xc4,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21, -0x15,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x03,0xe8,0xa4,0xfc,0xdd,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x2a,0x94,0xa1,0x8b,0x73,0x45,0x8b,0x50,0x5d,0x4e,0x40,0x41,0x8c,0x87,0x78,0x4a,0x79,0x3f,0x30,0x64,0x32, -0x37,0x45,0x79,0x79,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0x87,0x7f,0x6f,0x8a,0x2e,0x24,0x29,0x43,0x33,0x73,0x85,0x29,0x19,0x13,0x26,0x3e,0x00,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x22,0x00,0x40,0x40,0x22,0x18,0x06,0x0a,0x05,0x05,0x0a,0x06,0x18,0x04,0x00,0x03,0x09,0x0d,0xed,0x00,0x09,0x06,0x95,0x07,0x0f, -0x1b,0x96,0x14,0x14,0x03,0x20,0x96,0x18,0x10,0x04,0x0a,0x95,0x03,0x15,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22, -0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x03,0x11,0x99,0xfd,0xa9,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x7b,0x01,0x11,0x7a,0x67,0x65,0x9b,0x52,0x46,0x39,0x39,0x81,0x78,0x6e,0x44,0x82,0x4b,0x50,0x2e,0x36,0x34,0x72,0x72,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xf5,0x6a,0x84,0x4c,0x28,0x40,0x30, -0x6f,0x7e,0x2c,0x22,0x26,0x3e,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x2d,0x00,0x5a,0x40,0x30,0x2d,0x1b,0x03,0x1b,0x0b,0x2c,0x07,0x07,0x2c,0x0b,0x1b,0x03,0x05,0x27,0x2a,0x09,0x06,0x0f,0x7f,0x02,0x27,0x1e,0x92,0x17,0x17,0x2a,0x24,0x92,0x1b,0x12,0x2b,0x0b,0x91,0x2a,0x0a,0x2d,0x92,0x07,0x00,0x00,0x04,0x2a, -0x12,0x06,0x03,0x91,0x04,0x03,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x31,0x30,0x13,0x21,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x01,0x21,0x32,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0xa2,0x01,0x85,0x01,0x3b,0xfd,0x02,0x04,0x00,0xfe,0x78,0x01,0x38,0xfe,0x72,0xfe,0x96,0x02,0x2a,0xa2,0x93,0x8b,0x72,0x42,0x7d,0x61,0x61,0x4a,0x40,0x42,0x8c,0x87,0x79,0x5c,0x69,0x3e, -0x30,0x63,0x32,0x37,0x44,0xa4,0xfc,0xdd,0x01,0xae,0xfe,0xd3,0x03,0x2e,0x01,0xd4,0x98,0x28,0xfd,0xbc,0x80,0xfd,0xea,0x7e,0x88,0x6f,0x8a,0x27,0x2b,0x29,0x43,0x33,0x73,0x85,0x2a,0x18,0x13,0x26,0x3e,0x2e,0x79,0x2f,0x02,0x7f,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x2c,0x00,0x5a,0x40,0x31,0x1b,0x03,0x2c,0x0b, -0x2b,0x07,0x02,0x02,0x07,0x2b,0x0b,0x2c,0x03,0x1b,0x07,0x26,0x29,0x09,0x06,0x0f,0xed,0x26,0x1e,0x96,0x17,0x17,0x29,0x23,0x96,0x1b,0x12,0x2a,0x0b,0x95,0x29,0x0a,0x2c,0x96,0x07,0x00,0x00,0x04,0x29,0x15,0x06,0x03,0x95,0x04,0x0f,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39, -0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x13,0x21,0x13,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x03,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01, -0x23,0x7d,0x01,0x31,0xd1,0xfd,0xdb,0x03,0x16,0xfe,0xec,0x01,0x04,0xfe,0xa4,0xf2,0x01,0x7f,0x80,0x8d,0x7c,0x6b,0x40,0x97,0x2f,0x4c,0x45,0x36,0x37,0x81,0x76,0x6a,0x41,0x7d,0x4f,0x54,0x2f,0x39,0x36,0x76,0xfd,0x86,0x01,0x33,0xd7,0x02,0x54,0x01,0x20,0x8c,0x2f,0xfe,0x83,0x7a,0xfe,0xb2,0x7f,0x76,0x69,0x85,0x33,0x19,0x28,0x40, -0x30,0x70,0x7d,0x2b,0x23,0x26,0x3e,0x2a,0x72,0x33,0x01,0xa7,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xdc,0x05,0xb2,0x00,0x27,0x00,0x29,0x40,0x16,0x00,0x1a,0x7d,0x0d,0x22,0x7d,0x13,0x06,0x13,0x0d,0x22,0x27,0x04,0x03,0x10,0x91,0x17,0x04,0x24,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd, -0xc4,0x31,0x30,0x25,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x37,0x03,0xdc,0x3f,0xcb,0x5d,0xf1,0xfe,0xf3,0xae,0xce,0x8f,0x74,0x34,0x9b,0x96,0x5e,0x8e,0x5a,0x4f,0x88,0x5e,0xef,0x01, -0x03,0x43,0x92,0x8f,0x9d,0x7a,0x38,0x01,0x34,0x63,0xe0,0x3e,0x3a,0x26,0x2c,0xb6,0xa9,0x91,0xd8,0x66,0x48,0x55,0x5d,0x44,0x5a,0x6c,0x24,0x34,0xbd,0x1e,0x15,0xbd,0xad,0x5d,0x8e,0x7a,0x49,0x50,0x5e,0x65,0x44,0xc4,0x4a,0x37,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0x17,0x04,0x18,0x00,0x22,0x00,0x29,0x40,0x16,0x00,0x16,0x83,0x0b, -0x1d,0x83,0x10,0x05,0x10,0x0b,0x1d,0x22,0x04,0x02,0x0e,0x95,0x13,0x10,0x1f,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x15, -0x14,0x33,0x32,0x36,0x37,0x03,0x17,0x70,0xa2,0xc6,0xcf,0x87,0x9e,0x82,0x56,0x6a,0x60,0x91,0x73,0x68,0x86,0xb5,0xd3,0x75,0x9e,0x6c,0x53,0x2b,0xd8,0x52,0x99,0x3c,0x25,0x3d,0x88,0x85,0x71,0x9c,0x3e,0x34,0x55,0x3c,0x40,0x49,0x4a,0xa6,0x2e,0x91,0x7e,0x72,0x91,0x40,0x2c,0x36,0x41,0x2b,0x86,0x35,0x2e,0x00,0x00,0x01,0x00,0xbc, -0xff,0xf0,0x02,0xc8,0x05,0x9a,0x00,0x11,0x00,0x1f,0x40,0x0f,0x09,0x7e,0x06,0x00,0x7f,0x0f,0x10,0x10,0x03,0x07,0x03,0x0c,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xc8,0x8b,0x79,0x7d, -0x8b,0xa8,0x3c,0x2d,0x2c,0x37,0x98,0xfa,0x7d,0x8d,0x9a,0x93,0x04,0x7d,0xfb,0x82,0x54,0x45,0x3b,0x3d,0x2b,0x00,0x00,0x01,0x00,0xa6,0xff,0xf0,0x02,0xa5,0x04,0x00,0x00,0x11,0x00,0x22,0xb3,0x09,0x84,0x06,0x00,0xb8,0x01,0x2e,0x40,0x0a,0x0f,0x10,0x10,0x03,0x07,0x0f,0x0c,0xec,0x03,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01, -0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xa5,0x85,0x78,0x7b,0x87,0xa3,0x38,0x31,0x2a,0x34,0x95,0xf1,0x76,0x8b,0x98,0x8b,0x02,0xed,0xfd,0x12,0x4a,0x48,0x38,0x3b,0x28,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x19,0x00,0x4d, -0x40,0x29,0x12,0x16,0x7e,0x0f,0x0b,0x0b,0x07,0x00,0x0d,0x06,0x7e,0x07,0x14,0x19,0x7e,0x00,0x16,0x03,0x91,0x0b,0x15,0x0d,0x92,0x0e,0x12,0x0e,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0e,0x0b,0x0e,0x07,0x10,0x03,0x00,0x07,0x12,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x33,0x01,0x2f,0xfd, -0xc4,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x12,0x37,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x15,0x04,0x11,0x11,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0xe0,0xe2,0xfe,0xba,0x01,0x46,0xa8,0x01,0x46,0xfe,0xba,0x01,0xc1,0x01,0x7c,0x01,0xaa,0xfe, -0x47,0xfe,0x93,0x01,0x78,0x01,0x08,0x01,0x28,0x11,0x99,0x8a,0xbe,0xbe,0x8a,0x9b,0x2e,0xfd,0xd8,0xfe,0x9f,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4,0x04,0x00,0x00,0x19,0x00,0x47,0x40,0x24,0x14,0x19,0x0d,0x07,0x12,0x16,0x84,0x0f,0x0b,0x0b,0x00,0x07,0x84,0x08,0x19,0x84,0x00,0x15,0x0d,0x96,0x12,0x0e,0x0e,0x08,0x10,0x03, -0x96,0x16,0x0b,0x0b,0x08,0x10,0x0f,0x00,0x08,0x15,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x10,0xc4,0x31,0x30,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15, -0x21,0x15,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8b,0x89,0xa4,0x01,0x62,0xfe,0xf5,0x01,0x0b,0xa4,0x01,0x0b,0xfe,0xf5,0x01,0x61,0x6b,0x01,0x3c,0xa1,0xa7,0x5f,0x58,0x01,0xac,0x28,0x96,0x86,0xb8,0xb8,0x86,0x97,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0x48,0xff,0xe7,0x05,0x73,0x05,0x9a,0x00,0x16,0x00,0x35,0x00,0x55,0x40,0x18, -0x2b,0x1d,0x7e,0x07,0x10,0x23,0x28,0x23,0x28,0x23,0x04,0x17,0x0f,0x13,0x7d,0x17,0x2e,0x7d,0x08,0x04,0x20,0x25,0x1a,0x2b,0xb8,0x01,0x05,0x40,0x10,0x07,0x10,0x0c,0x07,0x25,0x07,0x25,0x07,0x00,0x0e,0x08,0x03,0x32,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x01, -0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc4,0xfd,0xcd,0x31,0x30,0x05,0x22,0x24,0x26,0x35,0x34,0x36,0x37,0x01,0x33,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x16,0x16,0x15,0x14,0x06,0x04,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x06, -0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x02,0xe9,0xca,0xfe,0xcb,0xa2,0xfe,0xed,0xfe,0x69,0xdc,0x01,0x34,0x36,0x06,0x31,0x01,0x2b,0xca,0xfe,0x88,0xe1,0xfc,0xa4,0xfe,0xd6,0x01,0x1c,0xd1,0xb0,0x46,0x36,0x2a,0x33,0x38,0x43,0x4f,0x4e,0x69,0x7a,0x32,0x39,0xb2,0xdb,0x73,0xf1,0x92,0x8f,0xd8,0x6a,0x19,0x6e,0xc8,0x86,0xad, -0xe5,0x26,0x02,0x3f,0xfe,0x20,0x5e,0x56,0x01,0xe8,0xfd,0xc3,0x26,0xdc,0xa4,0x8d,0xd3,0x70,0x01,0xca,0x88,0xa3,0x0c,0x60,0x71,0x2b,0x21,0x2f,0x1f,0x89,0x1d,0x64,0x59,0x48,0x7f,0x4e,0x14,0xa6,0x82,0x61,0x8f,0x54,0x52,0x95,0x00,0x02,0x00,0x19,0xff,0xe7,0x03,0xb6,0x05,0xed,0x00,0x14,0x00,0x20,0x00,0x3b,0x40,0x1e,0x0e,0x1e, -0x09,0x15,0x84,0x07,0x12,0x00,0x84,0x1b,0x07,0x1b,0x07,0x1b,0x0a,0x11,0x0a,0x0e,0x12,0x1e,0x03,0x0a,0x0a,0x04,0x10,0x00,0x18,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc5,0x10,0xfd,0xc5,0xc6,0x32,0x31,0x30,0x25,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34, -0x13,0x01,0x33,0x13,0x16,0x17,0x37,0x01,0x33,0x01,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x02,0xa2,0x3c,0x6e,0x45,0x71,0x87,0x8d,0xfe,0xd1,0xbe,0x92,0x20,0x1c,0x13,0x01,0x46,0xb8,0xfe,0x4e,0x4f,0x4f,0xfe,0xba,0x2c,0x27,0x26,0x2c,0x32,0x27,0x28,0x24,0xc6,0x3b,0x68,0x3c,0x7e,0x67,0x79,0x01, -0x07,0x02,0x40,0xfe,0xd5,0x42,0x45,0x2d,0x02,0xe6,0xfc,0x62,0x87,0xb5,0x43,0x2b,0x32,0x32,0x2b,0x23,0x85,0x47,0x59,0x6e,0x00,0x01,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x05,0xb2,0x00,0x32,0x00,0x49,0x40,0x28,0x1e,0x02,0x1e,0x02,0x17,0x09,0x7d,0x30,0x24,0x7d,0x17,0x00,0x21,0x91,0x1b,0x10,0xee,0x02,0x1e,0x1e,0x1b,0x0f,0x2a,0x1f, -0x2a,0x2f,0x2a,0x03,0x2a,0x2a,0x13,0x05,0x1b,0x04,0x2d,0x27,0x91,0x0d,0x13,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x26,0x27, -0x06,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x36,0x37,0x16,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x06,0x14,0xa8,0x66,0x71,0x9b,0xc5,0x01,0x2e,0xa5,0xa4,0xfe,0xd0,0xc6,0x5e,0xd2,0x5b,0x5a,0xd6,0x5d,0xc5,0xfe,0xcf,0xa4,0xa2,0x01,0x2e,0xc8,0xa1,0x6b, -0x2e,0x8f,0x51,0xdc,0xfe,0xf6,0x01,0x0c,0xf2,0x6f,0xc9,0x3f,0x42,0xc2,0x75,0xef,0x01,0x0f,0xfe,0xf8,0x05,0x1a,0x45,0xb2,0x2b,0xb9,0xfe,0xaa,0xdf,0xd9,0xfe,0xb3,0xb6,0x2c,0x2a,0x29,0x2d,0xb6,0x01,0x4c,0xd8,0xda,0x01,0x57,0xbf,0x2b,0xb2,0x20,0x25,0xfe,0xbc,0xfe,0xf0,0xfe,0xee,0xfe,0xcb,0x35,0x2b,0x2b,0x35,0x01,0x31,0x01, -0x16,0x01,0x11,0x01,0x43,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x06,0xc6,0x04,0x18,0x00,0x2b,0x00,0x47,0x40,0x26,0x0c,0x20,0x0c,0x20,0x06,0x27,0x83,0x1b,0x11,0x83,0x06,0x1e,0x0e,0xec,0x09,0x00,0xec,0x20,0x0c,0x0c,0x09,0x16,0x40,0x09,0x0c,0x48,0x16,0x16,0x02,0x23,0x09,0x10,0x18,0x14,0x95,0x2a,0x02,0x16,0x00,0x3f,0x33,0xed, -0x32,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, -0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x03,0x96,0x93,0xaf,0x98,0xe4,0x78,0x01,0x0a,0xdc,0x80,0x67,0x69,0x82,0x93,0xa7,0xc1,0xa7,0xa5,0x7f,0x80,0xa2,0xa9,0xbf,0xa5,0x93,0x83,0x69,0x6a,0x7e,0x90,0xdd,0x77,0xfe,0xf3,0xe6,0xae,0x42,0x5a,0x84,0xf3,0x9b,0xf6,0x01,0x28,0x30,0xaa,0x49,0xd2,0xb9,0xb9,0xcf,0x63,0x63,0xd0,0xb8,0xb8, -0xd3,0x49,0xaa,0x30,0x87,0xf7,0xa0,0xef,0xfe,0xdd,0x00,0x02,0xff,0xf3,0x00,0x00,0x04,0x5a,0x05,0xb2,0x00,0x14,0x00,0x1d,0x00,0x2d,0x40,0x17,0x00,0x1a,0x7e,0x08,0x08,0x0e,0x04,0x7d,0x15,0x0e,0x19,0x91,0x00,0x00,0x08,0x0c,0x92,0x11,0x04,0x1a,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed, -0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x01,0x86,0x01,0x1d,0xcb,0xec,0xf5,0xda,0xfe,0x53,0x4a,0x51,0x26,0x2a,0x2f,0x3e,0x8e,0x98,0x02,0x23,0xa1,0x9d,0xe5,0xe7,0x9a,0xa2,0x03, -0x3a,0xd0,0xbe,0xc5,0xe7,0x04,0x05,0x9f,0x83,0x15,0x8e,0x12,0xce,0xbf,0xfd,0x7d,0x86,0x7a,0xfd,0xf6,0x8c,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x19,0x04,0x18,0x00,0x06,0x00,0x1b,0x00,0x2d,0x40,0x17,0x13,0x04,0x84,0x1b,0x1b,0x00,0x0c,0x17,0x83,0x00,0x03,0x95,0x13,0x13,0x0f,0x04,0x95,0x1b,0x15,0x0a,0x95,0x0f,0x10,0x00, -0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x34,0x23,0x23,0x11,0x33,0x32,0x01,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x03,0x71,0xce,0xf4,0xf6,0xcc,0xfd,0x9a,0x3b,0x4a,0x30,0x24,0x39,0x37,0x83,0x8a,0x01, -0x14,0x9b,0xbb,0xb5,0x91,0xfe,0x38,0x01,0x40,0xaa,0xfe,0xa2,0x02,0x5b,0x50,0x57,0x0f,0x88,0x11,0x99,0x91,0x77,0xa5,0x92,0x92,0xae,0x00,0x03,0x00,0x33,0x00,0x00,0x06,0xa2,0x05,0x9a,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x15,0x7e,0x08,0x04,0x7d,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x7e,0x00,0x14,0x91, -0x0d,0x0d,0x08,0x0b,0x01,0x03,0x00,0x12,0x0a,0x91,0x0b,0x03,0x15,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x10,0x21, -0x23,0x11,0x33,0x32,0x36,0x05,0xfa,0xa8,0xfe,0xb1,0xf5,0xda,0xfe,0x53,0xfe,0x5c,0x02,0x4c,0x01,0x1e,0xcb,0xeb,0xb1,0xfe,0xc3,0xe6,0xe7,0x97,0xa5,0x05,0x9a,0xfa,0x66,0x01,0xac,0xc4,0xe8,0x05,0x02,0x98,0xfd,0xa0,0xd3,0xc5,0x01,0x00,0xfd,0xf6,0x89,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x05,0xae,0x04,0x00,0x00,0x03,0x00,0x10, -0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x16,0x84,0x08,0x04,0x83,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x84,0x00,0x15,0x95,0x0d,0x0d,0x08,0x0b,0x01,0x0f,0x00,0x15,0x0a,0x95,0x0b,0x0f,0x16,0x95,0x08,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10, -0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x05,0x0c,0xa2,0xfe,0xae,0xb6,0x92,0xfe,0x3a,0xfe,0xce,0x01,0xd6,0x01,0x14,0xa0,0xb6,0xa8,0x67,0x6c,0xef,0xef,0xd3,0x04,0x00,0xfc,0x00,0x01,0x40,0x93,0xad,0x03,0x73,0x8d,0xfe, -0x77,0xa6,0x93,0x57,0x55,0xfe,0xa2,0x00,0x00,0x02,0x00,0xbb,0x00,0x00,0x06,0x5d,0x05,0x9a,0x00,0x16,0x00,0x1f,0x00,0x4b,0x40,0x27,0x07,0x0b,0x1c,0x7e,0x04,0x13,0x09,0x13,0x09,0x17,0x03,0x16,0x7e,0x00,0x0f,0x7d,0x17,0x0a,0x15,0x91,0x07,0x03,0x03,0x13,0x01,0x1b,0x91,0x0b,0x0b,0x13,0x05,0x01,0x03,0x00,0x12,0x1c,0x91,0x13, -0x12,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x32,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11, -0x33,0x32,0x36,0xbb,0xa8,0x01,0x7e,0xa8,0x01,0x67,0xfe,0x99,0x01,0x1a,0xce,0xec,0xfb,0xd7,0xfe,0x56,0xfe,0x82,0x04,0x49,0x9c,0xa5,0xe2,0xe3,0x9c,0xa4,0x05,0x9a,0x95,0x95,0x95,0x98,0xfe,0xcd,0xd2,0xbc,0xc9,0xe3,0x04,0x6d,0xfb,0x93,0x01,0xa2,0x80,0x80,0xfd,0xf6,0x89,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xaa,0x05,0xec, -0x00,0x16,0x00,0x1e,0x00,0x4b,0x40,0x27,0x09,0x17,0x07,0x0b,0x1c,0x84,0x04,0x13,0x13,0x17,0x03,0x16,0x84,0x00,0x0f,0x83,0x17,0x0a,0x15,0x95,0x07,0x03,0x03,0x13,0x01,0x1b,0x95,0x0b,0x0b,0x13,0x05,0x01,0x00,0x00,0x15,0x1c,0x95,0x13,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32, -0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x32,0x10,0xc4,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0xa6,0xa4,0x01,0x52,0xa4,0x01,0x1e,0xfe,0xe2,0x01,0x14,0xa2,0xb4,0xb6,0x91,0xfe, -0x39,0xfe,0xae,0x03,0xb8,0x63,0x70,0xef,0xef,0xd3,0x05,0xec,0xc3,0xc3,0xc3,0x8d,0xfd,0xdb,0xa7,0x90,0x91,0xaf,0x04,0x9c,0xfb,0x64,0x01,0x3e,0x55,0x57,0xfe,0xa2,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x6a,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x1d,0x07,0x7e,0x1c,0x1c,0x0c,0x16,0x7d,0x00,0x0b,0x7e,0x08,0x0c,0x0e,0x91, -0x07,0x07,0x0c,0x09,0x03,0x0c,0x12,0x1f,0x91,0x04,0x04,0x19,0x91,0x12,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x12,0x24,0x33,0x20,0x00,0x13,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x37,0x10,0x12,0x33, -0x32,0x12,0x11,0x10,0x00,0x23,0x22,0x02,0x60,0x9a,0x01,0x21,0xbf,0x01,0x1b,0x01,0x5b,0x1f,0x01,0x53,0xa8,0xa8,0xfe,0xb2,0xa5,0xfe,0xdb,0xb7,0xcd,0xfe,0xd7,0x9d,0xb0,0xfe,0xe5,0xdf,0xf2,0xfe,0xfd,0xe1,0xe0,0xf0,0x02,0xdf,0xd7,0x01,0x49,0xb3,0xfe,0xae,0xfe,0xd5,0x02,0x65,0xfa,0x66,0x02,0x9e,0xc6,0xfe,0xbb,0xab,0xb7,0x01, -0x59,0xd0,0xfe,0xe9,0xfe,0xce,0x01,0x3b,0x01,0x17,0x01,0x13,0x01,0x36,0xfe,0xcd,0x00,0x02,0x00,0x63,0xff,0xe8,0x05,0xdb,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x38,0x40,0x1e,0x06,0x0d,0x84,0x18,0x18,0x0b,0x14,0x83,0x00,0x0a,0x84,0x07,0x0b,0x0d,0x95,0x06,0x06,0x0b,0x08,0x0f,0x0b,0x15,0x1a,0x95,0x03,0x10,0x16,0x95,0x11,0x16, -0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x0e,0x02,0x23,0x22,0x00,0x37,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x63,0xf0,0xdc,0xca,0xff,0x1b,0x01,0x24,0xa4,0xa4,0xfe,0xde,0x05, -0x6f,0xcb,0x8f,0xe2,0xfe,0xfe,0xa7,0x01,0x2f,0x01,0x36,0xfe,0xce,0xfe,0xcd,0x02,0x04,0xff,0x01,0x15,0xe9,0xd3,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x94,0xde,0x77,0x01,0x24,0xf2,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x48,0xb9,0x00,0x14,0x01,0x04,0x40,0x22,0x05, -0x04,0x05,0x15,0x15,0x05,0x04,0x03,0x08,0x0f,0x0b,0x07,0x7e,0x08,0x02,0x91,0x14,0x06,0x91,0x0b,0x14,0x0b,0x14,0x0b,0x08,0x11,0x0d,0x03,0x09,0x03,0x04,0x00,0x08,0x12,0x00,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30, -0x21,0x03,0x21,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x06,0x96,0x98,0xfd,0xa0,0x8f,0xbb,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae,0x02,0x28,0xfd,0x80,0x04,0x09,0x0e,0xdf,0x01,0xf1,0xe1,0x0b,0x01,0x92,0xfe,0x6e,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b, -0x02,0x75,0xfa,0x66,0x04,0xec,0x37,0x29,0xfd,0x9d,0x02,0x63,0x1f,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xa1,0x04,0x18,0x00,0x1c,0x00,0x27,0x00,0x5d,0x40,0x31,0x0f,0x0b,0x84,0x0c,0x16,0x1d,0x83,0x09,0x07,0x07,0x00,0x0c,0x23,0x1c,0x84,0x11,0x00,0x13,0x95,0x19,0x10,0x01,0x02,0x0a,0x95,0x0f,0x24,0x96,0x11,0x02,0x0c,0x0f, -0x16,0x11,0x0d,0x0f,0x11,0x0f,0x11,0x0c,0x0d,0x0f,0x00,0x0c,0x15,0x20,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x3f,0xed,0x01,0x2f,0x33,0xed,0x33,0x2f,0x12,0x39,0x2f,0xcd,0xfd,0xc4,0x10,0xed,0x32,0x31,0x30,0x21,0x35,0x23,0x06,0x23, -0x22,0x26,0x35,0x34,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0x04,0xfd,0x04,0x67,0xd4,0x97,0xaf,0x38,0xfe,0x9a,0xa4,0xa4,0x02,0x71,0x01,0x42,0xd3,0x60,0xa0,0x4e,0x93,0xc9,0x01,0x69,0xfd,0x7f,0x6b,0x59,0x7a, -0x9f,0xef,0x88,0x66,0xa0,0xb8,0x9f,0x89,0x74,0x4d,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x2d,0x01,0x05,0x3d,0x41,0xa8,0x60,0xfe,0x82,0xfd,0x66,0x01,0x1c,0x4c,0x5e,0xab,0x83,0x66,0x21,0x14,0x56,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x11,0x00,0x2f,0x40,0x18,0x07,0x0d,0x0e,0x04,0x04,0x0e, -0x0d,0x07,0x04,0x00,0x03,0x00,0x06,0x92,0x0d,0x0d,0x00,0x09,0x01,0x03,0x07,0x92,0x00,0x12,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x33,0x01,0x33,0x01,0x27,0x03,0x21,0x03,0x01,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x16,0x02,0x26,0xae,0x02,0x28,0xf1, -0xae,0xfe,0x3a,0xa8,0x01,0x8d,0x04,0x08,0x08,0x08,0x97,0x01,0x62,0x99,0x08,0x06,0x05,0x9a,0xfa,0x66,0x91,0x01,0xd2,0xfe,0x2e,0x04,0x5b,0x23,0x2b,0x14,0xfe,0x62,0x01,0xa0,0x17,0x2c,0x00,0x03,0x00,0x0a,0x00,0x00,0x03,0xc7,0x04,0x00,0x00,0x03,0x00,0x07,0x00,0x0f,0x00,0x2f,0x40,0x18,0x04,0x0b,0x0c,0x05,0x05,0x0c,0x0b,0x04, -0x04,0x00,0x01,0x00,0x07,0x96,0x0b,0x0b,0x01,0x08,0x02,0x0f,0x04,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x21,0x21,0x01,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x27,0x26,0x27,0x03,0xc7,0xfc,0x43,0x01,0x98,0xa1,0xfe,0xa0,0x02,0x05, -0x71,0xfe,0xe3,0x8c,0x05,0x1a,0x43,0xcb,0x40,0x14,0x10,0x04,0x00,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x44,0x47,0xb9,0xb5,0x34,0x5b,0x00,0x00,0x04,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x14,0x00,0x1b,0x00,0x1f,0x00,0x24,0x00,0x69,0x40,0x38,0x16,0x14,0x1c,0x0b,0x7e,0x0c,0x24,0x0c,0x15,0x02,0x7e,0x19,0x00,0x23,0x14,0x0c, -0x19,0x1d,0x01,0x01,0x1d,0x19,0x0c,0x14,0x23,0x00,0x07,0x06,0x11,0x06,0x0a,0x0e,0x92,0x23,0x1c,0x23,0x1f,0x20,0x92,0x14,0x19,0x02,0x14,0x23,0x14,0x23,0x14,0x00,0x0c,0x07,0x11,0x12,0x16,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f, -0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xfd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0x31,0x30,0x13,0x21,0x01,0x16,0x16,0x12,0x17,0x23,0x26,0x27,0x21,0x11,0x23,0x11,0x21,0x06,0x07,0x23,0x12,0x00,0x37,0x01,0x21,0x13,0x16,0x17,0x36,0x36,0x13,0x21,0x26,0x27,0x27,0x06,0x06,0x07,0x21,0xa5,0x04,0x9f,0xfe, -0x52,0x9e,0xcb,0x7e,0x2d,0xbf,0x10,0x31,0xfe,0x98,0xa8,0xfe,0x8c,0x2c,0x10,0xc1,0x2f,0x01,0x01,0xe9,0x01,0xe5,0xfd,0x9f,0xf8,0x23,0x11,0x11,0x0e,0x31,0x01,0x25,0x6e,0xb7,0xa8,0x68,0x8b,0x3e,0x01,0x31,0x05,0x9a,0xfd,0x60,0x36,0xb2,0xfe,0xea,0xfc,0xb1,0x6b,0xfe,0xe4,0x01,0x1c,0x6d,0xaf,0x01,0x4a,0x01,0x6c,0x46,0x02,0x06, -0xfe,0x6a,0x37,0x39,0x33,0x1a,0xfe,0x58,0x9c,0x33,0x02,0x1f,0x5b,0x57,0x00,0x04,0x00,0x1e,0x00,0x00,0x04,0x66,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0x21,0x00,0x26,0x00,0x6d,0x40,0x0c,0x20,0x17,0x0e,0x22,0x04,0xef,0x05,0x21,0x05,0x23,0x16,0x11,0xb8,0x01,0x2e,0x40,0x2a,0x1a,0x0f,0x0e,0x05,0x1a,0x10,0x10,0x1a,0x05,0x0e,0x0f, -0x05,0x0a,0x15,0x0a,0x03,0x07,0x96,0x20,0x22,0x20,0x26,0x1d,0x96,0x0e,0x11,0x1a,0x0e,0x0f,0x20,0x0e,0x20,0x0e,0x0a,0x17,0x95,0x0f,0x0f,0x05,0x00,0x0a,0x15,0x00,0x3f,0x33,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, -0x2f,0x10,0xfd,0xcd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xcd,0x31,0x30,0x21,0x26,0x27,0x23,0x15,0x23,0x35,0x21,0x06,0x07,0x23,0x3e,0x02,0x37,0x01,0x21,0x01,0x1e,0x02,0x17,0x01,0x21,0x17,0x16,0x17,0x36,0x36,0x07,0x06,0x06,0x07,0x3b,0x02,0x26,0x26,0x27,0x03,0xb8,0x0a,0x21,0xf9,0x9c,0xff,0x00,0x1a,0x11,0xaf,0x24,0x60, -0x98,0x74,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0x73,0x9b,0x5e,0x1d,0xfe,0xb0,0xfe,0x6f,0x9f,0x1c,0x08,0x03,0x0a,0x5d,0x3a,0x5a,0x2d,0xc1,0x9c,0xb9,0x35,0x4c,0x38,0x74,0x4e,0xc2,0xc2,0x40,0x82,0xbe,0xc9,0x81,0x23,0x01,0xd5,0xfe,0x29,0x24,0x8a,0xcd,0xae,0x03,0x79,0xff,0x2b,0x17,0x08,0x11,0x9d,0x12,0x37,0x35,0x3a,0x30,0x12,0x00, -0x00,0x03,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x49,0x40,0x27,0x08,0x04,0x7e,0x05,0x14,0x0e,0x7e,0x0f,0x02,0x01,0x02,0x15,0x0c,0x0c,0x15,0x02,0x01,0x04,0x00,0x05,0x00,0x0e,0x03,0x91,0x14,0x08,0x08,0x01,0x11,0x0a,0x03,0x06,0x03,0x05,0x12,0x0f,0x92,0x01,0x12,0x00,0x3f,0xed,0x3f,0x3f, -0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc5,0xfd,0xcd,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x03,0x21,0x03,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x07,0x50,0xfb,0x04,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae, -0x01,0x37,0xbe,0xfe,0x5a,0xb8,0x01,0x8d,0x04,0x09,0x0e,0x83,0x01,0x38,0x84,0x09,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xf7,0x01,0xfd,0xfe,0x03,0x04,0x5b,0x37,0x29,0xfe,0x99,0x01,0x67,0x1b,0x00,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0xd0,0x04,0x00,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x4d,0x40,0x2a,0x08,0x04, -0x84,0x05,0x01,0x02,0x0c,0x13,0x14,0x0d,0x0d,0x14,0x13,0x0c,0x02,0x01,0x06,0x00,0x05,0x00,0x0f,0x96,0x13,0x03,0x95,0x08,0x13,0x08,0x13,0x08,0x01,0x10,0x0a,0x0f,0x06,0x0f,0x05,0x15,0x0c,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f, -0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x26,0x26,0x27,0x05,0xd0,0xfc,0x43,0xba,0xfe,0x7d,0xa4,0xa4,0x01,0xba,0xa7,0xa1,0xfe,0xa0,0x02,0x05,0x71,0xfe,0xe3,0x8c,0x06,0x18,0x44,0xcb,0x2c,0x2c,0x0c,0x01,0xd1,0xfe, -0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x47,0x44,0xb9,0x7b,0x7c,0x4d,0x00,0x00,0x01,0x00,0x1e,0xfe,0x29,0x05,0xfe,0x05,0x9a,0x00,0x1a,0x00,0x2f,0x40,0x17,0x1a,0x7e,0x02,0x00,0x00,0x0b,0x14,0x0b,0x19,0x18,0x01,0x02,0x02,0x12,0x15,0x12,0x12,0x03,0x0e,0x91,0x00,0x08,0x13,0x00,0x3f,0xc6,0xed,0x3f, -0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x26,0x27,0x23,0x11,0x03,0x4d,0x05,0x0e,0x1a,0xe0,0x2c,0x8c,0x6d,0x6b,0x85,0x0d,0xa1,0x0d,0x51,0x2c,0x3c,0x1f,0x01,0xb4, -0x9a,0x02,0x0c,0xc0,0xfe,0xe4,0x1d,0x0a,0x05,0xfe,0x29,0x05,0xc9,0x60,0x47,0xfd,0xa3,0x89,0x7e,0x7b,0x80,0x64,0x4b,0x51,0x04,0x80,0xfa,0x66,0x03,0x44,0x5c,0x52,0xfa,0x37,0x00,0x01,0x00,0x05,0xfe,0x29,0x04,0xd0,0x04,0x00,0x00,0x1a,0x00,0x30,0x40,0x18,0x1a,0xef,0x02,0x00,0x00,0x0a,0x14,0x0a,0x19,0x18,0x01,0x02,0x02,0x12, -0x15,0x15,0x12,0x0f,0x0e,0x95,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x02,0xa3,0x05,0x0f,0x12, -0x81,0x2f,0x78,0x5c,0xd5,0x1f,0x9d,0x05,0x29,0x29,0x27,0x39,0x22,0x01,0x2a,0x9d,0x01,0x8e,0xaa,0xbd,0x1a,0x0b,0x05,0xfe,0x29,0x04,0x86,0x54,0x36,0xfe,0xaf,0x85,0x68,0xeb,0x30,0x2d,0x43,0x56,0x02,0xf2,0xfc,0x00,0x02,0x16,0x58,0x41,0xfb,0x7a,0x00,0x01,0x00,0x3e,0xfe,0x7f,0x05,0x34,0x05,0x9a,0x00,0x0b,0x00,0x2a,0x40,0x15, -0x05,0x7e,0x02,0x02,0x06,0x0b,0x7f,0x00,0x09,0x7e,0x06,0x00,0x0a,0x07,0x03,0x03,0x05,0x01,0x91,0x0a,0x12,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0xc0,0xa8,0x02,0xe6,0xa8,0xfb,0xa5,0xfe,0x7f,0x02,0x19, -0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0x66,0xfe,0x7f,0x00,0x01,0x00,0x3e,0xfe,0x8b,0x04,0x27,0x04,0x00,0x00,0x0b,0x00,0x2a,0x40,0x15,0x05,0x84,0x02,0x02,0x06,0x0b,0xed,0x00,0x09,0x84,0x06,0x00,0x0a,0x07,0x03,0x0f,0x05,0x01,0x95,0x0a,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed, -0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0x97,0xa4,0x02,0x0a,0xa4,0xfc,0xa4,0xfe,0x8b,0x02,0x00,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x00,0xfe,0x8b,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x06,0xc6,0x05,0x9a,0x00,0x0f,0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x7e,0x15,0x03,0x7f,0x04,0x15,0x04, -0x15,0x04,0x0e,0x07,0x7f,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0xee,0x0d,0x03,0x01,0x14,0x09,0x91,0x06,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21, -0x15,0x21,0x21,0x06,0x02,0x07,0x21,0x04,0x87,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x92,0xc8,0x0c,0x04,0xe2,0xfd,0x19,0xfe,0x94,0x0e,0xb9,0x78,0x02,0xab,0x04,0xfe,0xfb,0x9a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x0d,0x02,0xba,0x01,0x3b,0x9c,0xe5,0xfd,0x66,0xe7,0x00,0x02,0x00,0x12,0xfe,0x8b,0x05,0x20,0x04,0x00,0x00,0x0f, -0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x84,0x15,0x03,0xed,0x04,0x15,0x04,0x15,0x04,0x0e,0x07,0xed,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0x95,0x0d,0x0f,0x01,0x14,0x09,0x95,0x06,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31, -0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x21,0x15,0x21,0x23,0x06,0x02,0x07,0x21,0x03,0x8b,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x7d,0x8d,0x03,0xa9,0xfd,0xc7,0xe3,0x0a,0x79,0x66,0x01,0xcc,0x03,0x74,0xfd,0x17,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xb0,0x01,0xc9,0xfc,0x8c,0xc5,0xfe,0x7d,0xa1, -0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe3,0x05,0x9a,0x00,0x17,0x00,0x24,0x40,0x12,0x17,0x7e,0x00,0x00,0x0a,0x14,0x0a,0x16,0x02,0xee,0x13,0x03,0x0e,0x91,0x08,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x21,0x07,0x06,0x02,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x16, -0x33,0x32,0x36,0x12,0x12,0x13,0x21,0x15,0x21,0x11,0x03,0xfc,0xfe,0x71,0x20,0x1e,0x46,0x57,0x8e,0x6b,0x4d,0x3c,0x12,0x47,0x18,0x44,0x4f,0x4b,0x55,0x2e,0x05,0x01,0xfd,0xc1,0x04,0xfe,0xf9,0xe7,0xfe,0x48,0xfe,0xfa,0x77,0x15,0x9e,0x0b,0x12,0x6e,0x01,0x26,0x02,0x1c,0x01,0x6b,0x9c,0xfb,0x02,0x00,0x00,0x01,0x00,0x10,0xff,0xf2, -0x05,0x26,0x04,0x00,0x00,0x11,0x00,0x24,0x40,0x12,0x11,0x84,0x00,0x00,0x07,0x0e,0x07,0x10,0x02,0x95,0x0d,0x0f,0x0a,0x95,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x13,0x21,0x15,0x21,0x11,0x02,0xee, -0xee,0x28,0xc1,0xaf,0x38,0x20,0x1f,0x2d,0x6d,0x8b,0x23,0x03,0xaf,0xfe,0x6b,0x03,0x74,0xfe,0x21,0xfe,0x5d,0x0e,0x8d,0x12,0x01,0xbf,0x01,0xc6,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x08,0xb1,0x05,0x9a,0x00,0x1f,0x00,0x3f,0x40,0x1f,0x07,0x06,0x03,0x01,0x7e,0x02,0x02,0x14,0x1e,0x10,0x13,0x7e,0x14,0x00,0xee,0x1d, -0x1d,0x15,0x0f,0x07,0x06,0x10,0x19,0x10,0x14,0x15,0x03,0x0c,0x02,0x14,0x12,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x39,0x11,0x33,0x33,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x2f,0xed,0x33,0x33,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15, -0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x01,0x21,0x15,0x06,0x72,0xa7,0x02,0x0c,0x04,0x0d,0x10,0x0e,0xfe,0x16,0x52,0xfe,0x17,0x13,0x17,0x05,0x08,0xa2,0xde,0x01,0xb8,0x31,0x11,0x06,0x29,0x1a,0x01,0xc4,0x03,0x10,0x04,0xfe,0xfb,0x02,0x03,0xc2,0x20,0x39,0xbe,0x2e,0x3f,0x1e,0xfb,0xb2,0x04,0x46,0x2d,0x66,0x6a,0xaf, -0xfc,0x40,0x05,0x9a,0xfc,0x18,0x70,0x3c,0x70,0x3c,0x03,0xe8,0x9c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x8d,0x04,0x00,0x00,0x17,0x00,0x34,0x40,0x1a,0x17,0x84,0x00,0x00,0x0a,0x14,0x09,0xed,0x0a,0x16,0x95,0x13,0x13,0x0b,0x01,0x08,0x0f,0x08,0x0a,0x0b,0x0f,0x00,0x0a,0x15,0x05,0x15,0x00,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x39, -0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x21,0x15,0x21,0x11,0x04,0x56,0x10,0x26,0xfe,0xf2,0x93,0xfe,0xf8,0x2d,0x17,0x8d,0xd1,0x01,0x0e,0x3e,0x0a,0x04,0x0f,0x26,0x01,0x18,0x02,0x6f, -0xfe,0x6b,0x03,0x4c,0x2f,0x6a,0xfd,0x4d,0x02,0x90,0x74,0x48,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x9a,0x2f,0x39,0x5d,0x02,0xcf,0x8c,0xfc,0x8c,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x28,0x40,0x14,0x15,0x7d,0x09,0x21,0x1b,0x7d,0x03,0x0f,0x00,0x06,0x06,0x0c,0x18,0x91,0x12,0x04, -0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x02,0x30,0x41,0x42,0x31, -0x30,0x42,0x41,0x37,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe,0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x02,0x70,0x3c,0x30,0x2b,0x3e,0x39,0x30,0x2e,0x3e,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe, -0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x28,0x40,0x14,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x00,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01, -0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x58,0x29,0x38,0x3a,0x27,0x2a,0x37,0x35,0x32,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02, -0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x01,0xaa,0x38,0x2a,0x2d,0x32,0x37,0x28,0x27,0x3b,0xfe,0x3e,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03,0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0x00,0x00,0x04,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f, -0x00,0x32,0x40,0x19,0x2d,0x27,0x15,0x7d,0x21,0x1b,0x7d,0x09,0x03,0x0f,0x24,0x00,0x00,0x2a,0x06,0x06,0x0c,0x18,0x91,0x12,0x04,0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xc4,0xed,0x2f,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x13,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x34,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x9a,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe, -0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x1e,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x02,0x70,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe,0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0xfd, -0x56,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x32,0x40,0x19,0x2e,0x28,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x25,0x00,0x00,0x2b,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39, -0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc4,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, -0x06,0x01,0xc9,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x63,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02,0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x16,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x01,0xaf,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0xfe,0x39,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03, -0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0xfe,0x21,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x09,0x58,0x05,0xb2,0x00,0x1d,0x00,0x2b,0x00,0x37,0x00,0x43,0x00,0x4f,0x00,0x3f,0x40,0x20,0x21,0x7d,0x35,0x35,0x0c,0x4d,0x47,0x1a,0x7d,0x28,0x41,0x3b,0x2f,0x7d,0x0c,0x44,0x38,0x38,0x4a,0x3e, -0x3e,0x09,0x1e,0x2c,0x91,0x0f,0x04,0x25,0x32,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0xc4,0x2f,0xed,0xc4,0xc6,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x33,0x3e,0x02,0x33, -0x20,0x00,0x11,0x10,0x07,0x06,0x01,0x22,0x02,0x11,0x14,0x12,0x16,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x21,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x10,0x02,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0xe8,0x7b,0xc7,0x98,0x2f,0x08,0x27, -0x36,0x9e,0xfe,0xe7,0xfe,0xea,0xfe,0xb1,0x01,0x55,0x01,0x26,0xb8,0x01,0x0a,0x3e,0x08,0x24,0x9d,0xd9,0x83,0x01,0x0e,0x01,0x4c,0xaa,0xa8,0xfe,0xed,0xca,0xf6,0x69,0xc2,0x8a,0xcd,0xf3,0x67,0xc5,0xfb,0x52,0xc8,0xf8,0xf4,0xc1,0xdb,0xe5,0xef,0xcd,0x2d,0x3c,0x40,0x2a,0x2b,0x40,0x3d,0x03,0xf6,0x2b,0x3e,0x3f,0x2b,0x2b,0x40,0x3c, -0x18,0x4e,0x9d,0x7b,0x68,0x3d,0xc1,0x01,0x91,0x01,0x44,0x01,0x59,0x01,0x9c,0xbb,0xa6,0x66,0xa8,0x53,0xfe,0x70,0xfe,0xbd,0xfe,0x9f,0xca,0xcc,0x05,0x32,0xfe,0xb7,0xfe,0xfc,0xac,0xfe,0xf5,0x97,0x01,0x2e,0x01,0x1b,0xbb,0x01,0x0a,0x8d,0xfe,0xba,0xfe,0xf7,0xfe,0xf3,0xfe,0xc1,0x01,0x41,0xfe,0x01,0x2f,0x01,0x2d,0xfd,0x56,0x3f, -0x2d,0x30,0x39,0x39,0x30,0x2e,0x3e,0x3b,0x31,0x30,0x39,0x39,0x30,0x2e,0x3e,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x06,0xdc,0x04,0x18,0x00,0x1b,0x00,0x28,0x00,0x34,0x00,0x40,0x00,0x4c,0x00,0x4b,0x40,0x28,0x3e,0x83,0x38,0x20,0x83,0x32,0x4a,0x83,0x44,0x38,0x32,0x44,0x44,0x32,0x38,0x03,0x0c,0x19,0x83,0x26,0x2c,0x83,0x0c,0x41, -0x35,0x35,0x47,0x3b,0x3b,0x08,0x1c,0x29,0x95,0x0f,0x10,0x23,0x2f,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x00, -0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x17,0x14,0x02,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x0e, -0x57,0x89,0x6d,0x25,0x04,0x2a,0xbe,0x8c,0x86,0xc6,0x78,0x01,0x08,0xd1,0x84,0xbd,0x29,0x04,0x32,0xc4,0x86,0xca,0xee,0x01,0xfb,0xc9,0x5f,0x86,0x41,0x99,0x8d,0x88,0x94,0x94,0xfc,0x8e,0x85,0xa1,0x9d,0x89,0x84,0x98,0x95,0x8c,0x24,0x34,0x32,0x26,0x23,0x35,0x32,0x02,0xc4,0x25,0x33,0x32,0x26,0x23,0x35,0x32,0x18,0x32,0x66,0x57, -0x71,0x7e,0x7a,0xea,0xa8,0x01,0x0b,0x01,0x19,0x7e,0x70,0x75,0x79,0xfe,0xe2,0xf6,0xf5,0xfe,0xd9,0x03,0xa6,0x6b,0xad,0x78,0xb2,0xda,0xce,0xbe,0xc2,0xce,0xd3,0xc1,0xb5,0xd3,0xc8,0xc9,0xbb,0xd0,0xfe,0x1c,0x38,0x2a,0x2a,0x35,0x33,0x2c,0x29,0x39,0x39,0x29,0x2a,0x35,0x33,0x2c,0x29,0x39,0x00,0x0f,0x00,0x7e,0xff,0xe7,0x05,0xd7, -0x05,0xb3,0x00,0x2a,0x00,0x36,0x00,0x42,0x00,0x4e,0x00,0x5a,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0x96,0x00,0xa2,0x00,0xae,0x00,0xba,0x00,0xc6,0x00,0xd2,0x01,0x3c,0xb1,0xbe,0x82,0xb8,0x01,0x04,0x40,0x0f,0x0f,0x09,0x07,0x11,0x07,0x58,0x7f,0x52,0x34,0x64,0x7f,0x5e,0x2e,0x5e,0xa6,0xb8,0x01,0x04,0xb4,0xa0,0x16,0x02, -0xca,0x8e,0xb8,0x01,0x04,0x40,0x0d,0x88,0xc4,0x88,0x4c,0x7f,0x46,0x40,0x7c,0x7f,0x76,0x3a,0x76,0xb2,0xb8,0x01,0x04,0xb4,0xac,0x1d,0x26,0x1b,0x28,0xb8,0x01,0x04,0x40,0x1d,0x94,0xd0,0x94,0x70,0x7f,0x6a,0x07,0x52,0x5e,0xa0,0x88,0x46,0x76,0xac,0x94,0x6a,0x6a,0x94,0xac,0x76,0x46,0x88,0xa0,0x5e,0x52,0x07,0x0a,0x0c,0x21,0xbb, -0x01,0x04,0x00,0xb8,0x00,0x9a,0x01,0x04,0xb2,0x0c,0xc7,0xbb,0xb8,0x01,0x05,0x40,0x0c,0x14,0x73,0x5b,0xee,0x61,0x79,0x61,0x8b,0x7f,0x26,0x25,0x09,0xb8,0x01,0x05,0x40,0x0f,0x9d,0xb5,0x9d,0x67,0x43,0x4f,0xee,0x55,0x6d,0x49,0x55,0xcd,0xc1,0xaf,0x97,0xb8,0x01,0x05,0x40,0x2a,0x0f,0x1e,0x1d,0x0f,0x37,0x2b,0xee,0x31,0x3d,0x31, -0x80,0x55,0x01,0x02,0x61,0x7f,0x9d,0xa9,0x55,0xa3,0xc1,0x0f,0x31,0x16,0x16,0x31,0x0f,0xc1,0xa3,0x55,0xa9,0x9d,0x7f,0x61,0x02,0x0b,0x04,0x18,0x14,0x04,0x91,0x85,0xb8,0x01,0x05,0xb2,0x00,0x04,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10, -0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33, -0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xcd,0x32,0xed,0x32,0x31,0x30,0x05,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x37,0x32,0x16,0x15, -0x14,0x06,0x07,0x23,0x27,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe2,0x8f,0x45,0x45,0x8b,0x78,0x94,0x27,0x65,0x76,0x74,0x66,0x26,0x91, -0x7e,0x8a,0x43,0x47,0x8f,0x7a,0x88,0x23,0x1c,0x6f,0x89,0x80,0x6e,0x13,0x14,0x24,0x89,0xfd,0xdc,0x1d,0x2c,0x2b,0x1e,0x1f,0x2d,0x2b,0x01,0x83,0x1d,0x2c,0x2c,0x1d,0x1e,0x2e,0x2b,0xd5,0x1d,0x2c,0x2c,0x1d,0x1d,0x2f,0x2c,0xfe,0x3c,0x1d,0x2d,0x2d,0x1d,0x1e,0x2e,0x2c,0x94,0x1d,0x2c,0x2d,0x1c,0x1e,0x2e,0x2b,0x02,0x73,0x1d,0x2c, -0x2c,0x1d,0x20,0x2b,0x2b,0xfe,0xf0,0x1d,0x2c,0x2b,0x1e,0x1e,0x2e,0x2b,0xfe,0x3b,0x46,0x54,0x56,0x48,0x4b,0x4f,0x4f,0x01,0x55,0x47,0x54,0x57,0x48,0x49,0x51,0x50,0xfd,0x5a,0x47,0x54,0x56,0x49,0x48,0x51,0x50,0x01,0x57,0x47,0x54,0x55,0x4a,0x48,0x51,0x51,0x01,0x58,0x46,0x55,0x56,0x48,0x49,0x51,0x4e,0xfd,0x1d,0x46,0x54,0x56, -0x48,0x49,0x51,0x50,0x01,0x56,0x47,0x54,0x56,0x49,0x49,0x51,0x50,0x19,0x65,0x65,0x9e,0x84,0x60,0x44,0x0f,0x99,0x76,0x77,0x9b,0x11,0x41,0x5d,0x86,0xa1,0x66,0x66,0x9e,0x8a,0x5c,0x41,0x02,0x9f,0x87,0x80,0x98,0x07,0x01,0x44,0x60,0x83,0x9e,0x04,0x5f,0x2a,0x25,0x22,0x2b,0x28,0x25,0x22,0x2d,0x2b,0x24,0x24,0x29,0x28,0x25,0x22, -0x2d,0xfe,0x3e,0x2a,0x26,0x24,0x29,0x27,0x26,0x22,0x2e,0x2b,0x25,0x22,0x2b,0x28,0x25,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x25,0x28,0x28,0x25,0x22,0x2d,0x01,0xc1,0x2c,0x24,0x23,0x2a,0x2a,0x23,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x22,0x2b,0x27,0x26,0x22,0x2d,0x01,0x09,0x69,0x59,0x5a,0x65,0x66,0x5a,0x5a,0x67,0x6a,0x59,0x59,0x65,0x64, -0x5c,0x5c,0x65,0x01,0xc2,0x6a,0x58,0x58,0x67,0x64,0x5b,0x5d,0x65,0x69,0x59,0x5a,0x65,0x63,0x5c,0x5f,0x63,0x6a,0x58,0x5a,0x65,0x64,0x5c,0x59,0x68,0x01,0xc2,0x69,0x5a,0x5a,0x65,0x64,0x5c,0x5b,0x67,0x6a,0x59,0x5a,0x65,0x64,0x5c,0x5c,0x66,0x00,0x00,0x01,0xfe,0xc2,0x04,0xd3,0x01,0x3e,0x05,0x87,0x00,0x0f,0x00,0x1a,0x40,0x0a, -0x0b,0x0c,0x03,0x04,0x00,0x40,0x07,0x80,0x0c,0x04,0x00,0x2f,0x33,0x1a,0xdd,0x1a,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x15,0x15,0x23,0x35,0x34,0x33,0x21,0x32,0x15,0x15,0x23,0x35,0x34,0x23,0x70,0x42,0x8c,0x7a,0x01,0x88,0x7a,0x8b,0x42,0x05,0x20,0x31,0x1c,0x2e,0x86,0x88,0x2c,0x1c,0x31,0x00,0x00,0x08,0x00,0x6f, -0xfe,0xb6,0x07,0x72,0x05,0xf8,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0x39,0x40,0x1b,0x35,0x59,0x5b,0x37,0x5b,0x29,0x4d,0x4f,0x2b,0x4f,0x1d,0x41,0x43,0x1f,0x43,0x5b,0x4f,0x43,0x43,0x4f,0x5b,0x03,0x07,0x11,0x13,0x05,0x07,0x00,0x2f,0xce,0x2f,0xce,0x12,0x17,0x39,0x2f,0x2f,0x2f, -0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x31,0x30,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x03,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37, -0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x04,0x1d,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x87,0x7e, -0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x01,0xa4,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x1c,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0xfe,0xdf,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfb,0x1c,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfe,0xd4,0x7e, -0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x27,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x05,0x30,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xf9,0x78,0xba,0x7b,0x7b,0xba,0xc7,0x88,0x88,0x04,0x63,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba, -0xc8,0x89,0x89,0x03,0xcd,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0x00,0x02,0x01,0x13,0xfe,0x52,0x06,0xce,0x06,0x5b,0x00,0x07,0x00,0x0f,0x00,0x40,0xb1,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x06,0x08,0x01,0x0f,0xb8,0x01,0x04,0x40,0x0c,0x02,0x0c, -0x0d,0x09,0x02,0x06,0x09,0x06,0x09,0x06,0x07,0x0b,0xbc,0x01,0x05,0x00,0x08,0x00,0x04,0x01,0x05,0x00,0x07,0x00,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x19,0x02,0x33,0x11,0x21,0x11,0x33,0x11,0x06,0xce,0x60, -0xfb,0x09,0x64,0x64,0x04,0xf7,0x60,0x06,0x5b,0xfe,0x26,0x01,0x80,0xfe,0x80,0x01,0xda,0xf7,0xf7,0x01,0xda,0xfe,0x80,0x01,0x80,0xfe,0x26,0x00,0x00,0x0a,0x00,0x26,0xfe,0x52,0x07,0xbb,0x06,0x5b,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0xae,0xb3,0x28,0x10,0x14, -0x2f,0xb8,0x01,0x04,0xb3,0x2c,0x0b,0x07,0x0f,0xb8,0x01,0x04,0xb4,0x0c,0x04,0x00,0x0c,0x1b,0xb8,0x01,0x04,0x40,0x1f,0x18,0x25,0x1d,0x21,0x14,0x2c,0x02,0x0c,0x09,0x18,0x21,0x21,0x18,0x09,0x0c,0x02,0x2c,0x14,0x07,0x11,0x24,0x20,0x1c,0x29,0x15,0x11,0x19,0x0d,0x2d,0x22,0x16,0xb8,0x01,0x05,0xb4,0x15,0x21,0x15,0x26,0x2a,0xb8, -0x01,0x05,0xb4,0x29,0x25,0x29,0x1e,0x12,0xb8,0x01,0x05,0x40,0x12,0x11,0x1d,0x11,0x2d,0x15,0x29,0x11,0x11,0x29,0x15,0x2d,0x04,0x03,0x18,0x0c,0x2c,0x0a,0x02,0xb8,0x01,0x05,0xb1,0x07,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33, -0x10,0xed,0x32,0x11,0x33,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x11,0x33,0x33,0x31,0x30,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x03,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21, -0x35,0x21,0x01,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x05,0x21,0x35,0x21,0x13,0x11,0x33,0x11,0x03,0xbd,0xc0,0xc0,0x64,0xb6,0xb6,0x64,0x64,0xfd,0xd5,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0x03,0x61,0x64,0x02,0x00,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfa,0x3b, -0xfe,0x30,0x01,0xd0,0x2d,0x64,0x04,0x8b,0xb6,0x64,0xb6,0xb6,0x64,0xb6,0xf9,0xc7,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0xfd,0x64,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0x01,0x36,0x64,0x64,0x64,0xfb,0xca,0x01,0xd0,0xfe,0x30,0x00,0x00,0x02,0x00,0x7d,0x02,0xaf,0x03,0x54,0x05,0xeb,0x00,0x0b,0x00,0x17, -0x00,0x64,0xb2,0x16,0x0c,0x17,0xb8,0x01,0x00,0xb5,0x00,0x14,0x0e,0x12,0x10,0x06,0xb8,0x01,0x00,0x40,0x23,0x11,0x00,0x0e,0x11,0x11,0x0e,0x00,0x03,0x01,0x07,0x05,0x0b,0x01,0x0f,0x0c,0x0b,0x08,0x0b,0x13,0x16,0x01,0x04,0x01,0x0e,0x09,0x0b,0x14,0x01,0x0b,0x01,0x0b,0x01,0x03,0x09,0x03,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, -0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x01,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xfd,0xc5,0x32,0x11,0x33,0x10,0xed,0xc5,0x32,0x31,0x30,0x13,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x23,0x07,0x27,0x23,0x37,0x33,0x17,0x37,0x33,0x27,0x37,0x23,0x27,0x07,0x23,0x17,0xfa,0x7d, -0xf9,0x73,0x74,0xf7,0x7c,0x7c,0xf8,0x73,0x73,0xf7,0x69,0xb1,0x50,0x50,0xb0,0x58,0x58,0xb0,0x50,0x51,0xb0,0x58,0x04,0x4e,0xd5,0xc8,0xc8,0xd6,0xd6,0xc8,0xc8,0x3d,0x8b,0x8b,0x99,0x99,0x8b,0x8b,0x99,0x00,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf2,0x00,0x0d,0x00,0x13,0xb6,0x0a,0x04,0x0a,0x04,0x80,0x00,0x07,0x00,0x2f, -0xc9,0x1a,0xcd,0x32,0x01,0x2f,0x2f,0x31,0x30,0x03,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x01,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x01,0xff,0x33,0x04,0x80,0x00,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01, -0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x0e,0x1b,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1d,0x27, -0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2,0x00,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0d,0x00,0x11,0xb5,0x0a,0x04,0x00,0x07,0x0a,0x04,0x00,0x2f,0x33,0x2f,0xc9,0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, -0x33,0x02,0x5f,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x00,0x01,0x01,0x33,0x04,0x80,0x02,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01,0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39, -0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x01,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x02,0x0f,0x1a,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1e,0x26,0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2, -0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x06,0xa2,0x00,0x10,0x00,0x16,0x00,0x42,0x40,0x22,0x15,0x03,0x0c,0x7f,0x09,0x0e,0x7e,0x16,0x09,0x16,0x09,0x16,0x00,0x03,0x7f,0x04,0x10,0x7f,0x00,0x0a,0x0c,0x00,0x04,0x02,0x12,0x91,0x0c,0x03,0x0e,0x15,0x05,0x91,0x02,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd, -0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x21,0x06,0x02,0x07,0x21,0x04,0xad,0xfb,0xfd,0x9b,0x6f,0xa4,0xc2,0x90,0x02,0x13,0xc1,0xfe,0x97,0xfe,0x94,0x11,0xb6,0x78,0x02,0xab,0xfe,0x7f, -0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x31,0x02,0xdb,0x01,0x11,0xed,0xfe,0xf8,0xfa,0xfe,0xfd,0xe7,0x06,0x83,0xf6,0xfd,0x7c,0xf0,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x05,0x0e,0x00,0x10,0x00,0x15,0x00,0x40,0x40,0x21,0x14,0x0c,0xed,0x09,0x0e,0x84,0x15,0x09,0x15,0x09,0x15,0x00,0x03,0xed,0x04,0x10,0xed,0x00,0x0a,0x0c, -0x00,0x04,0x02,0x12,0x95,0x0c,0x0f,0x0e,0x14,0x05,0x95,0x02,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x23,0x02,0x03,0x21, -0x03,0x98,0xfd,0x06,0x8c,0x5c,0x88,0x81,0x90,0x01,0x84,0x98,0xfe,0xc4,0xe3,0x20,0xc9,0x01,0xcc,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0xcf,0x01,0xad,0x01,0x15,0xf2,0xfe,0xf2,0xfc,0x8b,0xfe,0x00,0x04,0xea,0xfe,0x4d,0xfe,0xc9,0x00,0x00,0x01,0x00,0x79,0xfe,0x29,0x03,0xde,0x05,0xb2,0x00,0x22,0x00,0x28,0x40,0x15,0x22,0x16, -0x7d,0x0b,0x11,0x1d,0x7d,0x05,0x11,0x16,0x05,0x00,0x04,0x0e,0x02,0x91,0x20,0x13,0x91,0x0e,0x04,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x02, -0x15,0x14,0x04,0x23,0x22,0x27,0x79,0xb7,0xca,0x93,0xa1,0x87,0xc8,0xbf,0xa5,0x01,0x0f,0xe3,0xa5,0x90,0x9e,0xa8,0x88,0xa9,0xa3,0x95,0x98,0x9b,0x48,0xfe,0xf6,0xf4,0xcc,0x9b,0xbf,0x81,0xa4,0x94,0x7d,0xbf,0x8b,0x83,0xff,0x9e,0xd4,0xff,0x33,0xbd,0x58,0xa9,0x89,0x7f,0xd0,0x5e,0x61,0xa0,0xb7,0x76,0xe7,0xfd,0x52,0x00,0x00,0x01, -0x00,0x67,0xfe,0x29,0x03,0x0f,0x04,0x18,0x00,0x23,0x00,0x29,0x40,0x16,0x23,0x18,0x83,0x0c,0x13,0x1e,0x83,0x06,0x13,0x18,0x06,0x00,0x04,0x10,0x03,0x95,0x21,0x1b,0x15,0x95,0x10,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26, -0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x67,0x3d,0x9b,0x50,0x64,0x74,0x6d,0x7d,0x8e,0x85,0x61,0xb3,0x74,0x8e,0x60,0x72,0x88,0x63,0x71,0x62,0x76,0xa0,0x85,0xda,0xbb,0x9b,0x77,0xea,0x2e,0x35,0x7c,0x74,0x5d,0x93,0x4b,0x53,0xd5,0x8d,0x70, -0xb3,0x62,0x2e,0xa6,0x4a,0x81,0x72,0x63,0x90,0x48,0x63,0xc3,0x83,0xb5,0xd9,0x3d,0x00,0x01,0x00,0x60,0xff,0xe8,0x08,0x9a,0x05,0xb2,0x00,0x34,0x00,0x72,0x40,0x3e,0x28,0x7d,0x1d,0x2b,0x08,0x7d,0x06,0x15,0x2f,0x03,0x7e,0x04,0x2c,0x04,0x22,0x18,0x1d,0x15,0x04,0x33,0x32,0x32,0x33,0x04,0x15,0x1d,0x18,0x22,0x07,0x0e,0x34,0x0e, -0x33,0x2f,0x02,0x2f,0x02,0x06,0x18,0x92,0x2b,0x0f,0x04,0x22,0x2d,0x19,0x19,0x04,0x31,0x2d,0x03,0x20,0x92,0x25,0x04,0x12,0x92,0x0c,0x13,0x00,0x04,0x12,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12,0x39,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, -0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xed,0xc4,0x10,0xed,0x31,0x30,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x11,0x33,0x11, -0x33,0x01,0x33,0x01,0x01,0x07,0xb0,0xfd,0xd7,0x2b,0xa8,0xfe,0x9d,0x91,0x7c,0xed,0xa2,0xf6,0x81,0x55,0xc7,0x61,0x9e,0xb4,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x94,0x7c,0xb9,0xa5,0xa3,0xc9,0xcc,0xea,0x54,0x45,0x01,0x9d,0xa8,0x2b,0x02,0x17,0xd1,0xfd,0xa1,0x02,0x8a,0x02,0xa0,0xfd,0x60,0x02,0xa0,0x5f,0xab,0x80,0xc3,0x6b,0x54,0xb6, -0x40,0x3b,0x96,0x7f,0x01,0x14,0x8b,0x8c,0x7c,0x6f,0x7f,0x71,0xaa,0x58,0xbf,0xa1,0x64,0x9a,0x29,0x02,0x6f,0xfd,0x91,0x02,0x6f,0xfd,0x59,0xfd,0x0d,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x07,0x39,0x04,0x19,0x00,0x31,0x00,0x6f,0x40,0x3c,0x30,0x1d,0x84,0x13,0x20,0x00,0x84,0x0b,0x24,0x2d,0x84,0x2e,0x21,0x2e,0x0e,0x13,0x0b,0x2e, -0x28,0x27,0x27,0x28,0x2e,0x0b,0x13,0x0e,0x06,0x05,0x29,0x18,0x05,0x28,0x2c,0x24,0x24,0x2c,0x30,0x0e,0x95,0x20,0x06,0x2e,0x18,0x0f,0x0f,0x22,0x2a,0x2e,0x15,0x26,0x22,0x0f,0x16,0x95,0x1b,0x10,0x09,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12, -0x39,0x01,0x2f,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0xcd,0x10,0xfd,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x21,0x11,0x33,0x11, -0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x03,0x3b,0xe0,0xc8,0xde,0x65,0x3a,0xab,0x54,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x84,0x81,0x76,0x6a,0x95,0x96,0xa1,0x97,0x01,0x76,0x35,0x2c,0x01,0x36,0xa4,0x2a,0x01,0x88,0xd7,0xfe,0x29,0x01,0xfc,0xe6,0xfe,0x62,0x2a,0xa4,0xfe,0xf6,0x5e,0x01,0x19,0x8c,0xa6,0x36, -0xa1,0x23,0x28,0xac,0xaa,0x8b,0x4f,0x53,0x46,0x51,0x4b,0x99,0x3e,0xfe,0xed,0x3f,0x53,0x20,0x01,0xac,0xfe,0x54,0x01,0xac,0xfe,0x16,0xfd,0xea,0x01,0xc9,0xfe,0x37,0x01,0xc9,0x40,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0xc6,0x05,0x9a,0x00,0x20,0x00,0x38,0x40,0x1c,0x19,0x7e,0x16,0x14,0x14,0x00,0x0f,0x7e,0x0c,0x20,0x7e,0x1d, -0x00,0x1b,0x11,0x91,0x03,0x01,0x05,0x0d,0x09,0x09,0x1e,0x17,0x0d,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x27,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35, -0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x06,0x1e,0xc3,0xa9,0xc3,0x5b,0x68,0x79,0x7c,0x41,0x9f,0xb1,0xa8,0xc9,0x4d,0xba,0x4d,0x09,0xa8,0xc9,0x96,0xb5,0xa8,0x02,0x85,0x79,0x95,0x3f,0x36,0x20,0xc1,0xad,0x02,0x20,0xfd,0xf2,0xec,0x42,0x32,0x2f,0x3c,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x00,0x01, -0x00,0x98,0x00,0x00,0x06,0x3b,0x04,0x00,0x00,0x20,0x00,0x3c,0x40,0x1e,0x19,0xef,0x14,0x16,0x14,0x16,0x14,0x00,0x0f,0x84,0x0c,0x20,0x84,0x1d,0x00,0x1b,0x11,0xec,0x04,0x01,0x07,0x0d,0x0a,0x0a,0x1e,0x17,0x0d,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12, -0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x05,0x98,0x46,0x9a,0x5a,0x60,0x8d,0x22,0x90,0x98,0x49,0xfe,0xba,0xa4,0xb4,0x59,0x98,0x43,0x0c,0xa3,0xb5,0x8b,0x9d, -0xa3,0x01,0x9c,0x27,0x3b,0x43,0x3c,0x4f,0x30,0x01,0x6c,0x01,0x5a,0xfe,0xaf,0xe2,0x38,0x24,0x32,0x4b,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x02,0x00,0x0f,0xfe,0x38,0x05,0xda,0x05,0x9a,0x00,0x29,0x00,0x2f,0x00,0x4c,0x40,0x27,0x2e,0x13,0x7f,0x14,0x08,0x1b,0x7e,0x29,0x2f,0x1e,0x7f,0x0e,0x2f,0x0e,0x2f,0x0e, -0x05,0x14,0x21,0x24,0x7f,0x05,0x2b,0x91,0x19,0x03,0x21,0x09,0x08,0x08,0x03,0x27,0x2e,0x1b,0x15,0x91,0x14,0x12,0x12,0x00,0x3f,0xcd,0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35, -0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x32,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x21,0x06,0x02,0x07,0x21,0x04,0x2a,0x24,0x60,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3b,0x42,0x3c,0x40,0xfb,0xf0,0x9b,0x6f,0x92,0xc7,0x0d,0x02, -0xa3,0x47,0xf9,0x36,0x28,0x32,0x3f,0x85,0x77,0x68,0x4b,0x4c,0xfe,0x94,0x0f,0xb1,0x7f,0x02,0xab,0xfe,0xc7,0x0e,0x12,0x43,0x3a,0x69,0x01,0x21,0x1b,0x1f,0x19,0xfe,0x7f,0x02,0x19,0x01,0x0a,0x02,0xc6,0x01,0x32,0xfa,0xec,0xa6,0x33,0x41,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x06,0xb0,0xef,0xfd,0x83,0xfe,0x00,0x00,0x02,0x00,0x12, -0xfe,0x38,0x04,0xcb,0x04,0x00,0x00,0x2a,0x00,0x30,0x00,0x54,0x40,0x0a,0x2f,0x13,0xed,0x14,0x08,0x1c,0x84,0x2a,0x30,0x1f,0xb8,0x01,0x2e,0x40,0x09,0x0e,0x30,0x0e,0x30,0x0e,0x05,0x14,0x22,0x25,0xb8,0x01,0x2e,0x40,0x12,0x05,0x2c,0x95,0x1a,0x0f,0x22,0x09,0x08,0x08,0x03,0x28,0x2f,0x1c,0x15,0x95,0x14,0x12,0x15,0x00,0x3f,0xcd, -0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x35,0x21,0x11,0x33,0x32,0x15, -0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x23,0x06,0x02,0x07,0x21,0x03,0x1b,0x17,0x6d,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3a,0x43,0x3c,0x36,0xfc,0xe9,0x8c,0x5b,0x80,0x8a,0x02,0x14,0x34,0xf9,0x36,0x28,0x30,0x41,0x87,0x75,0x68,0x4b,0x35,0xe3,0x0a,0x73,0x6d,0x01,0xcd,0xfe,0xc7,0x0a,0x16,0x43,0x3a,0x69,0x01, -0x20,0x1c,0x1f,0x19,0xfe,0x8b,0x02,0x00,0xb6,0x01,0xc8,0xea,0x0d,0xfc,0x87,0xa7,0x34,0x40,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x05,0x23,0xbc,0xfe,0x80,0xae,0x00,0x00,0x01,0x00,0x29,0xfe,0x66,0x05,0x3d,0x05,0x9a,0x00,0x1e,0x00,0x39,0x40,0x1d,0x13,0x0b,0xad,0x0c,0x1e,0x1e,0x05,0x0e,0x18,0x7d,0x11,0x05,0x0a,0x91,0x13,0x13, -0x0c,0x12,0x0e,0x91,0x0f,0x03,0x00,0x0c,0x02,0x91,0x1c,0x0c,0x12,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0x33,0xe4,0x32,0x31,0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x12,0x15, -0x14,0x02,0x06,0x23,0x22,0x27,0x01,0xc8,0xa2,0x9c,0xba,0xcd,0x76,0xda,0x8d,0x42,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x4a,0xc1,0x01,0x26,0x9e,0x89,0xff,0xab,0xaa,0x98,0x96,0x6c,0xde,0xcc,0x94,0xe8,0x7e,0xfd,0x5e,0x05,0x02,0x98,0x98,0xfe,0x38,0xa2,0xfe,0xd6,0xc0,0xab,0xfe,0xf5,0x92,0x4c,0x00,0x00,0x01,0x00,0x1e,0xfe,0x66, -0x04,0x56,0x04,0x00,0x00,0x1d,0x00,0x39,0x40,0x1d,0x12,0x0a,0x84,0x1d,0x0b,0x0b,0x05,0x0d,0x16,0x83,0x10,0x05,0x09,0x95,0x12,0x12,0x0b,0x11,0x0d,0x95,0x0e,0x0f,0x00,0x0b,0x02,0x95,0x1a,0x0b,0x15,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0xc4,0xed,0x32,0x31, -0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x01,0x52,0x79,0x87,0xa5,0xb7,0xd9,0xbf,0x20,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x42,0xf7,0x01,0x27,0x81,0xeb,0x9a,0x4c,0x6c,0x46,0xc0,0x4e,0xb9,0xab,0xb9,0xd7,0xfe, -0x1a,0x03,0x74,0x8c,0x8c,0xff,0x00,0xfe,0xde,0xfa,0x8e,0xe5,0x7f,0x16,0x24,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x23,0x40,0x11,0x0c,0x7e,0x05,0x00,0x05,0x00,0x09,0x07,0x0b,0x07,0x91,0x08,0x03,0x0f,0x92,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31, -0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x83,0x3c,0x57,0x95,0x95,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x52,0x56,0x44,0x29,0x01,0x19,0xa3,0xac,0x03,0xcb,0x98,0x98,0xfc,0x53,0x78,0x66,0x1d,0x00,0x01,0x00,0x1e,0xff,0xe8,0x03,0x29,0x04,0x00,0x00,0x10,0x00,0x23,0x40,0x11, -0x0b,0x84,0x04,0x00,0x04,0x00,0x08,0x06,0x0a,0x06,0x95,0x07,0x0f,0x0e,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x0c,0x34,0x58,0xfe,0xd2,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x55,0x53, -0x45,0x29,0x01,0x19,0x01,0x50,0x02,0x3c,0x8c,0x8c,0xfd,0xdd,0x78,0x67,0x1d,0x00,0x00,0x01,0x00,0xae,0xfe,0x29,0x05,0xbd,0x05,0x9a,0x00,0x26,0x00,0x40,0x40,0x12,0x26,0x17,0x7e,0x14,0x14,0x0c,0x13,0x03,0x7f,0x10,0x21,0x1a,0x7f,0x0c,0x15,0x11,0x03,0x24,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05,0xb5,0x1e,0x17, -0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35, -0x34,0x36,0x33,0x21,0x15,0x01,0xd0,0x45,0x4e,0x88,0x8b,0x0f,0x01,0x32,0x93,0xb4,0x51,0x74,0x68,0xfc,0x6f,0xa8,0x02,0xe6,0xa8,0x63,0x68,0xff,0x00,0xfe,0xf0,0xfe,0x9a,0xd3,0xc6,0x8b,0x93,0x02,0x5a,0xd8,0x23,0x21,0x30,0x24,0x2c,0x51,0x4e,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x92,0x69,0xab,0xa1,0x56,0x63, -0x4e,0x5d,0x65,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x04,0xc6,0x04,0x00,0x00,0x24,0x00,0x44,0x40,0x10,0x11,0x84,0x0e,0x24,0x15,0x84,0x12,0x0e,0x12,0x0e,0x12,0x0a,0x03,0xed,0x1f,0x18,0xb8,0x01,0x2e,0x40,0x10,0x0a,0x22,0x00,0x00,0x0e,0x06,0x1c,0x1b,0x13,0x0f,0x0f,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x3f, -0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x01,0x9a,0x3c,0x44,0x78, -0x6c,0xc3,0xc3,0xaf,0x72,0x60,0xfd,0x45,0xa4,0x02,0x0a,0xa4,0x61,0x6d,0xfb,0xfb,0xed,0xaa,0xaa,0x87,0x77,0x01,0xab,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x29,0xfe,0x9b,0x04,0x0c,0x05,0x9a,0x00,0x13, -0x00,0x31,0x40,0x19,0x00,0x7e,0x0a,0x05,0x13,0x7e,0x0c,0x0a,0x0c,0x0a,0x0c,0x10,0x0e,0x12,0x0e,0x91,0x0f,0x03,0x02,0x92,0x07,0x0b,0x92,0x00,0x12,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33, -0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0xcf,0x0a,0xa5,0x4c,0x32,0x38,0x52,0x9f,0xac,0x9f,0xfe,0x63,0x03,0xe3,0xfe,0x62,0xdb,0x20,0x92,0x18,0xc5,0xba,0x76,0x04,0x72,0x98,0x98,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x9b,0x03,0x29,0x04,0x00,0x00,0x13,0x00,0x2d,0x40,0x17,0x05,0x13,0x84,0x0c,0x0c,0x0a,0x10,0x0e,0x00,0x84, -0x0a,0x12,0x0e,0x95,0x0f,0x0f,0x02,0x95,0x07,0x0b,0xec,0x00,0x15,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0xc6,0x2f,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0x53,0x0a,0xa4,0x44,0x2e,0x3d,0x45,0x9c,0xa6,0xa3, -0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xdb,0x20,0x93,0x17,0xc7,0xb8,0x76,0x02,0xe4,0x8c,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xc5,0x05,0x9a,0x00,0x14,0x00,0x37,0x40,0x1c,0x0d,0x7e,0x06,0x0b,0x06,0x0b,0x00,0x08,0x14,0x7e,0x11,0x00,0x12,0x03,0x0c,0x08,0x91,0x09,0x0f,0x91,0x01,0x09,0x03,0x03,0x09,0x03,0x00,0x12, -0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x21,0x32,0x37,0x11,0x33,0x11,0x05,0x1d,0xf2,0xcb,0xc3,0xd7,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x04,0xc4,0xe7,0xa8,0x02, -0x85,0x79,0xc3,0xb0,0x01,0x85,0x96,0x98,0xfe,0x85,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xae,0x04,0x00,0x00,0x13,0x00,0x37,0x40,0x1c,0x0c,0x84,0x05,0x0a,0x05,0x0a,0x00,0x07,0x13,0x84,0x10,0x00,0x11,0x0f,0x0b,0x07,0x95,0x08,0x0e,0xec,0x01,0x08,0x03,0x03,0x08,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x39, -0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x20,0x11,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x04,0x0b,0xba,0x9c,0xfe,0x9d,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xca,0x9a,0xb1,0xa3,0x01,0x9c,0x62,0x01,0x6c,0xce,0x8c, -0x8c,0xc6,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0xb4,0x00,0x19,0x00,0x2c,0x40,0x16,0x0b,0x18,0x7e,0x19,0x11,0x7e,0x05,0x12,0x15,0x91,0x0b,0x19,0x0d,0x0d,0x02,0x12,0x19,0x12,0x07,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xc4,0xed,0x2f,0xed,0x32, -0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0xa6,0x01,0xf2,0x63,0x61,0x5c,0x63,0xae,0xa1,0xea,0xc0,0xbf,0xca,0xa8,0xf5,0xb6,0xe0,0xa8,0x03,0xb4,0x02,0x00,0x17,0x9a,0x1d,0xba,0xca,0x88,0x7a,0xc5,0xaf,0xfd,0xe6,0x02,0x12,0xe8, -0x6e,0xfd,0x74,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1d,0x00,0x29,0x40,0x15,0x0d,0x1c,0x84,0x1d,0x06,0x13,0x84,0x14,0x0d,0x10,0x14,0x1d,0x15,0x17,0x95,0x10,0x10,0x09,0x95,0x03,0x01,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32, -0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x06,0x15,0x11,0x23,0xa6,0xf2,0xe5,0x86,0x82,0x3e,0x8c,0x3d,0xa4,0x90,0x04,0x75,0xdb,0x01,0x5a,0xa4,0xee,0x4d,0x83,0x4c,0xa4,0x03,0xe9,0xfc,0x01,0x1d,0x37,0x98,0x20,0x24,0xc3,0xc8,0x96,0xc2,0xfe,0x5f,0xfd,0x89,0x02, -0x4e,0x01,0x40,0x53,0x97,0x60,0xfd,0xbc,0x00,0x01,0x00,0xbc,0xfe,0x29,0x07,0xa5,0x05,0x9a,0x00,0x2a,0x00,0x54,0x40,0x1d,0x03,0x7f,0x25,0x17,0x7e,0x14,0x2a,0x1b,0x7e,0x18,0x25,0x14,0x18,0x18,0x14,0x25,0x03,0x0c,0x13,0x7e,0x10,0x1e,0x7f,0x0c,0x19,0x15,0x11,0x03,0x28,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05, -0xb6,0x22,0x1b,0x17,0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11, -0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x03,0x47,0x45,0x4e,0x88,0x8b,0x0f,0x01,0xa3,0x93,0xb4,0x51,0x75,0x68,0xfa,0x88,0xa8,0x02,0x13,0xa8,0x02,0x12,0xa8,0x62,0x6a,0xff,0x00,0xfe,0xf0,0xfe,0x28,0xd2,0xc6,0x8b,0x93,0x02,0xcb,0xd8,0x23,0x21,0x30,0x24,0x2b, -0x53,0x4d,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x91,0x6a,0xaa,0xa2,0x56,0x63,0x4e,0x5d,0x65,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x8f,0x04,0x00,0x00,0x28,0x00,0x51,0x40,0x16,0x03,0xed,0x23,0x15,0x84,0x12,0x28,0x19,0x84,0x16,0x23,0x12,0x16,0x16,0x12,0x23,0x03,0x0a,0x11,0x84,0x0e,0x1c, -0xb8,0x01,0x2e,0x40,0x12,0x0a,0x26,0x00,0x00,0x0e,0x06,0x20,0x1b,0x17,0x13,0x0f,0x0f,0x19,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x33,0x3f,0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33, -0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x02,0x85,0x3c,0x44,0x78,0x6c,0x01,0xa1,0xc3,0xaf,0x72,0x60,0xfb,0x7c,0xa4,0x01,0x97,0xa4,0x01,0x98,0xa4,0x61,0x6d,0xfb,0xfb,0xfe,0x35,0xaa,0xaa,0x87, -0x77,0x02,0x89,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x04,0x1b,0x05,0x2f,0x00,0x1c,0x00,0x47,0x40,0x24,0x0f,0x07,0x84,0x08,0x0c,0x08,0x13,0x17,0x84,0x04,0x10,0x04, -0x08,0x04,0x08,0x04,0x00,0x0a,0x15,0x00,0x12,0x0e,0x16,0x06,0x0a,0x95,0x13,0x0f,0x0b,0x0f,0x08,0x15,0x1a,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0xc4,0x32,0x01,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23, -0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0x1b,0x3a,0x5f,0xfe,0xf3,0xf6,0xa4,0xb0,0xb0,0xa4,0xf6,0xa4,0x01,0x01,0xfe,0xff,0x46,0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xfa,0x35,0xfe,0xd1,0xfa,0x35,0xfe,0xd1,0x8b,0xfd, -0xbe,0x67,0x58,0x22,0x00,0x04,0x00,0x32,0x00,0x00,0x04,0x37,0x05,0xb2,0x00,0x3f,0x00,0x48,0x00,0x51,0x00,0x5a,0x00,0xb2,0xb1,0x4f,0x2b,0xb8,0x01,0x04,0xb2,0x09,0x2c,0x35,0xb8,0x01,0x04,0xb2,0x58,0x46,0x26,0xb8,0x01,0x04,0xb4,0x51,0x15,0x27,0x3e,0x21,0xb8,0x01,0x04,0x40,0x0e,0x22,0x48,0x22,0x2c,0x58,0x27,0x22,0x22,0x27, -0x58,0x2c,0x04,0x00,0x55,0xb8,0x01,0x04,0x40,0x40,0x30,0x10,0x1d,0x7d,0x00,0x58,0x3e,0x4f,0x48,0x51,0x05,0x52,0x46,0x25,0x52,0x33,0x42,0x3b,0x3b,0x33,0x4b,0x37,0x37,0x1d,0x00,0x39,0x35,0x2d,0x2a,0x20,0x23,0x28,0x09,0x25,0x10,0x15,0x09,0x03,0x33,0x25,0x40,0x09,0x11,0x48,0x0f,0x33,0x1f,0x33,0x2f,0x33,0x03,0x25,0x33,0x25, -0x33,0x0d,0x27,0x22,0x2c,0x12,0x12,0x91,0x0d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x11,0x17,0x39,0x12,0x17,0x39,0x33,0x2f,0xc9,0x11,0x33,0x2f,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xc4,0x33, -0xed,0x32,0x10,0xed,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x27,0x2e,0x02,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x06,0x23,0x15,0x23,0x35,0x26,0x27,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32, -0x17,0x36,0x33,0x32,0x15,0x15,0x36,0x27,0x34,0x23,0x22,0x06,0x15,0x15,0x32,0x37,0x25,0x34,0x23,0x22,0x06,0x15,0x15,0x16,0x17,0x25,0x22,0x06,0x15,0x14,0x16,0x17,0x35,0x34,0x03,0x87,0x33,0x5a,0x7b,0x47,0x9e,0x83,0x43,0x82,0xe5,0x8b,0xd3,0x62,0x7f,0xc7,0x8d,0xa4,0x2f,0x66,0xa2,0xaa,0x88,0x4a,0x90,0x84,0x60,0x42,0x61,0x60, -0x64,0x40,0x60,0x3f,0x4b,0x3c,0x33,0x5b,0x17,0x2f,0x5a,0x59,0x1e,0x2f,0x5c,0x85,0x64,0xc4,0x4e,0x24,0x31,0x69,0x3a,0xfe,0xfd,0x4e,0x26,0x30,0x39,0x6b,0xfe,0xde,0x13,0x0f,0x22,0x1e,0x01,0x5e,0x3a,0x56,0x48,0x40,0x24,0x50,0x6f,0x84,0x56,0x74,0xae,0x5d,0x33,0xbd,0x58,0x76,0x62,0x3a,0x56,0x4c,0x50,0x55,0x71,0x8a,0x57,0x7d, -0x8b,0x1b,0x4c,0x3e,0x06,0x38,0x3a,0x05,0x0d,0x4c,0x68,0x1a,0x6d,0x49,0x33,0x3d,0x54,0x53,0x53,0x53,0xaa,0x53,0x36,0x0c,0x6b,0x3e,0x30,0x6b,0x0c,0x65,0x68,0x3d,0x34,0x55,0x0c,0x05,0xe8,0x26,0x15,0x23,0x46,0x11,0x6e,0x47,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x06,0x00,0x09,0x03,0x00, -0x2f,0xc4,0x01,0x2f,0xc4,0x31,0x30,0x37,0x01,0x23,0x27,0x05,0x17,0x13,0x27,0x35,0x01,0xe7,0x03,0x46,0xa8,0x68,0x01,0xcc,0x05,0x08,0x69,0xfc,0xb9,0xae,0x03,0x46,0x68,0x08,0x04,0xfe,0x33,0x69,0xac,0xfc,0xb8,0x00,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x00,0x06,0x09,0x03,0x00,0x2f,0xc4, -0x01,0x2f,0xc4,0x31,0x30,0x01,0x01,0x37,0x17,0x25,0x27,0x03,0x17,0x07,0x01,0x04,0xf6,0xfc,0xb8,0xaa,0x69,0xfe,0x33,0x04,0x09,0x69,0x02,0x03,0x4a,0x03,0xfe,0xfc,0xb8,0x02,0x68,0x08,0x04,0x01,0xcd,0x68,0xaf,0x03,0x4a,0x00,0x00,0x02,0x00,0x00,0xff,0xb8,0x06,0x78,0x06,0x2e,0x00,0x09,0x00,0x13,0x00,0x2e,0x40,0x16,0x06,0x10, -0x06,0x10,0x00,0x0a,0x0a,0x15,0x30,0x00,0x01,0x00,0x03,0x0d,0x03,0x0d,0x09,0x3f,0x13,0x01,0x13,0x09,0x00,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x35,0x01,0x21,0x37,0x21,0x17,0x11,0x07,0x11,0x09,0x02,0x21,0x07,0x21,0x27,0x11,0x37,0x11,0x01,0x01,0xee,0xfe, -0x91,0xb3,0x01,0xfe,0x02,0xb3,0xfe,0x11,0x05,0xe8,0xfe,0x12,0x01,0x6f,0xb3,0xfe,0x02,0x02,0xb3,0x01,0xef,0x48,0x01,0xee,0xb3,0x02,0xfe,0x02,0xb3,0x01,0x73,0xfe,0x0f,0x05,0xe6,0xfe,0x12,0xb3,0x02,0x01,0xfe,0xb3,0xfe,0x8d,0x01,0xf1,0x00,0x03,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x13,0x00,0x1b,0x00,0x2f,0x00,0x3a, -0x40,0x1d,0x1b,0x08,0x08,0x09,0x09,0x1c,0xaf,0x26,0x26,0x0c,0x00,0x84,0x17,0x17,0x31,0x0c,0x1b,0x0f,0x09,0x2b,0xb0,0x21,0x15,0x0c,0x0a,0x1a,0x95,0x0f,0x00,0x00,0x3f,0xfd,0x32,0xcc,0x3f,0xfd,0xce,0x11,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x33,0x2f,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x07,0x0e,0x03,0x15, -0x07,0x23,0x03,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x1e,0x38,0x2b,0x1a,0x03,0x87,0x10,0x5e,0x4c,0x99,0xa5,0x53,0x88,0x60,0x35,0xfe,0xae,0x57,0x59,0x65,0x55,0x0a,0x27,0x11,0x1e,0x28, -0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x1a,0x33,0x32,0x32,0x19,0x7f,0x03,0x80,0x20,0x52,0xb0,0x60,0x32,0x5a,0x7f,0xfe,0x78,0x4e,0x8f,0x50,0x58,0x73,0x0d,0xfd,0xe8,0xfd,0x50,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x29,0x00,0xff,0xff,0x00,0xac, -0xfe,0x1e,0x03,0x00,0x06,0x1e,0x00,0x26,0x00,0x5f,0x00,0x00,0x00,0x07,0x00,0x5f,0x01,0xc0,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x45,0x00,0x15,0xb7,0x24,0x14,0x32,0x05,0x41,0x19,0x2b,0x0d,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x33,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e, -0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x01,0x14,0x1e,0x04,0x17,0x3e,0x05,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b, -0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0xfd,0x2b,0x34,0x54,0x69,0x6c,0x63,0x23,0x23,0x62,0x6b,0x68,0x53,0x34,0x1c,0x30,0x42,0x26,0x3a,0x5b,0x49,0x39,0x16,0x17,0x38,0x49,0x5c,0x39,0x26,0x42,0x30,0x1c,0x05,0x23,0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b, -0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0xfe,0xa0,0x50,0x8e,0x7e,0x6f,0x63,0x57,0x26,0x26,0x57,0x63,0x6f,0x7e,0x8e,0x50,0x3d,0x58,0x38,0x1a,0x2e,0x4b,0x5e,0x2f,0x2f,0x5e,0x4b,0x2e,0x1a,0x38,0x58,0x00,0x00,0x02,0x00,0x30,0x00,0x00,0x03,0x43,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x21,0x40,0x0e,0x1c,0x00,0x0f,0x12,0x1d,0x0b, -0x01,0x0e,0x1e,0x1c,0x03,0x11,0x03,0x03,0x00,0x3f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x33,0xcd,0x33,0x2f,0xcd,0x32,0x32,0x31,0x30,0x01,0x25,0x11,0x33,0x15,0x37,0x15,0x07,0x11,0x37,0x15,0x07,0x11,0x23,0x35,0x05,0x11,0x23,0x35,0x07,0x35,0x37,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x11,0x05,0x01,0x37,0x01,0x05,0x67,0xa0,0xa0, -0xa0,0xa0,0x67,0xfe,0xfb,0x67,0xa0,0xa0,0xa0,0xa0,0x67,0x01,0x05,0xfe,0xfb,0x03,0xff,0x8b,0x01,0x10,0xd9,0x55,0x98,0x55,0xfe,0x42,0x55,0x98,0x55,0xfe,0xda,0xef,0x8b,0xfe,0xef,0xda,0x55,0x98,0x55,0x01,0xbe,0x55,0x98,0x55,0x01,0x0e,0xfc,0xd3,0x8b,0x01,0xbe,0x8b,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e, -0x00,0x2c,0x00,0x3a,0x00,0x48,0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x7f,0x00,0x8c,0x00,0x1e,0x40,0x13,0x30,0x49,0x23,0x36,0x57,0x41,0x86,0x50,0x79,0x6e,0x2b,0x5d,0x80,0x68,0x0e,0x3b,0x0f,0x73,0x00,0x00,0x2f,0x32,0x2f,0x33,0x17,0x39,0x31,0x30,0x05,0x22,0x27,0x2e,0x02,0x27,0x26,0x35,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32, -0x17,0x16,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x07,0x06,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x36,0x33,0x32,0x16,0x17,0x36,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x37,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, -0x37,0x26,0x26,0x35,0x34,0x03,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x23,0x22,0x26,0x13,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x01,0x32,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x07,0x16,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x03,0xff,0xa4,0x76,0x69, -0xb5,0x6e,0x05,0x6e,0x6e,0x08,0xe8,0xa1,0x76,0xa4,0xa2,0x79,0xa0,0xe6,0x0a,0x6f,0x3a,0x34,0x07,0x6d,0xb6,0x69,0x77,0x02,0x11,0x54,0x96,0x56,0x63,0xa4,0x24,0x5a,0x64,0x87,0xde,0x2d,0x1b,0x84,0x23,0xa4,0x62,0x53,0x95,0x58,0x1c,0x2a,0xe1,0x86,0x66,0xfe,0x27,0x83,0xbd,0x6f,0x5e,0x2d,0x51,0x88,0x48,0x3e,0xfe,0x44,0x5b,0x71, -0x53,0x93,0x59,0x46,0x3b,0x81,0xa0,0xf1,0x1b,0x54,0x92,0x59,0x61,0xa7,0x22,0x5a,0x63,0x88,0xde,0x3c,0x24,0x9d,0x5c,0x5c,0x9b,0x56,0x1b,0x2c,0xdf,0x87,0x60,0x01,0xd3,0x82,0xbd,0x6b,0x60,0x2c,0x9d,0x86,0x40,0x01,0xbb,0x5a,0x74,0xb9,0x86,0x43,0x3e,0x7f,0xa0,0x48,0x6c,0x05,0x6c,0xb8,0x67,0x76,0xa5,0xa4,0x78,0xa0,0xe8,0x08, -0x6c,0x6d,0x08,0xe7,0x9f,0x7b,0xa4,0x4f,0x92,0x39,0x6a,0xb4,0x6c,0x06,0x6b,0x03,0x16,0x54,0x95,0x58,0x70,0x5d,0x2d,0x9f,0x84,0x40,0x01,0xbd,0x5c,0x6f,0x55,0x95,0x54,0x47,0x3c,0x82,0xa0,0x01,0x0c,0xbb,0x85,0x61,0xa5,0x24,0x58,0x67,0x60,0xa7,0x75,0x13,0x1c,0x81,0x23,0xa6,0x61,0x54,0x94,0x58,0x1b,0x2a,0xe1,0x85,0x66,0xfe, -0xaa,0x3c,0x46,0x53,0x95,0x57,0x6f,0x5d,0x2d,0xa1,0xfe,0x86,0x5b,0x71,0x56,0x94,0x55,0x45,0x3e,0x83,0xa0,0xfe,0xf5,0xbe,0x80,0x61,0xa2,0x28,0x58,0x66,0x87,0xda,0x2e,0x1c,0x80,0x23,0xa2,0x65,0x82,0xbf,0x1b,0x2b,0xdd,0x86,0x6f,0x00,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e,0x00,0x2c,0x00,0x3a,0x00,0x48, -0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x80,0x00,0x8e,0x00,0x21,0x40,0x15,0x38,0x49,0x2f,0x29,0x32,0x57,0x43,0x88,0x50,0x7a,0x21,0x6a,0x5f,0x81,0x70,0x0f,0x07,0x73,0x16,0x3b,0x07,0x00,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x31,0x30,0x13,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32,0x17,0x1e,0x02,0x17,0x16,0x15,0x14,0x07,0x06,0x06, -0x07,0x06,0x23,0x22,0x27,0x2e,0x02,0x27,0x26,0x26,0x37,0x14,0x17,0x36,0x36,0x33,0x32,0x17,0x26,0x26,0x23,0x22,0x06,0x06,0x13,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x25,0x22,0x07,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x17,0x16,0x15,0x14,0x06,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34, -0x26,0x13,0x06,0x06,0x23,0x22,0x27,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x03,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x05,0x32,0x37,0x26,0x26,0x35,0x34,0x37,0x06,0x06,0x15,0x14,0x16,0x16,0x25,0x26,0x35,0x34,0x36,0x37,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0xe6,0x6f,0x08,0xe6,0xa2,0x79,0xa2, -0xa4,0x76,0x68,0xb6,0x6e,0x05,0x6e,0x6e,0x08,0xe6,0xa3,0x76,0xa4,0xa2,0x77,0x68,0xb6,0x70,0x05,0x34,0x3a,0x67,0x1b,0x2d,0xde,0x87,0x64,0x5a,0x23,0xa6,0x62,0x57,0x95,0x54,0x84,0x56,0x66,0x86,0xe1,0x2a,0x1c,0x57,0x94,0x55,0x62,0xa4,0x02,0x0c,0x43,0x3e,0x49,0x87,0x51,0x2d,0x5e,0x6f,0xbe,0xf7,0x2d,0xa0,0x81,0x3b,0x46,0x57, -0x94,0x54,0x71,0xc3,0x2b,0xde,0x88,0x63,0x5a,0x23,0xa6,0x61,0x5a,0x92,0x53,0x82,0x5d,0x60,0x88,0xdf,0x2b,0x1b,0x56,0x9a,0x5d,0x5b,0x9d,0xfd,0xf5,0x43,0x40,0x84,0x9f,0x2c,0x5f,0x6c,0x57,0x95,0xfe,0xdb,0x2d,0xa0,0x7f,0x3e,0x43,0x55,0x93,0x57,0x74,0x02,0xcd,0xa4,0x7b,0x9c,0xe9,0x09,0x6d,0x6c,0x05,0x6e,0xb5,0x68,0x78,0xa4, -0xa5,0x76,0xa0,0xe8,0x08,0x6c,0x6b,0x05,0x6c,0xb6,0x69,0x39,0x92,0x50,0x42,0x40,0x85,0x9e,0x2d,0x5c,0x71,0x58,0x95,0x01,0x27,0x2c,0xa0,0x82,0x3c,0x47,0x54,0x94,0x56,0x70,0xdd,0x1c,0x14,0x75,0xa6,0x60,0x67,0x58,0x24,0xa6,0x60,0x85,0xbb,0x81,0x59,0x66,0x85,0xe1,0x2a,0x1b,0x57,0x93,0x56,0x61,0xa6,0xfe,0x74,0x81,0xa1,0x2d, -0x5f,0x6d,0x58,0x96,0x51,0x46,0xfe,0x41,0x2d,0xa0,0x83,0x3e,0x45,0x55,0x94,0x56,0x70,0xdc,0x1c,0x2d,0xda,0x88,0x66,0x58,0x27,0xa3,0x61,0x54,0x94,0x56,0x80,0x53,0x6f,0x86,0xdd,0x2b,0x1b,0x55,0x97,0x55,0x64,0xa4,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x4b,0x04,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00, -0x00,0x0b,0xb6,0x01,0x00,0x12,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0xfd,0x33,0x00,0x00,0x02,0xcd,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x21,0x37,0x21,0x11,0x21,0xfd,0x33,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0xfb,0x5e,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1, -0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x07,0x23,0x07,0x33,0x07,0x23,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x23,0x37,0x33,0x37,0x23,0x37,0x33,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x07,0x33,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xf6,0x19,0xd1, -0x32,0xe1,0x1a,0xdc,0x42,0x8d,0x41,0xc8,0x3f,0x8c,0x3f,0xd2,0x14,0xd4,0x31,0xde,0x17,0xde,0x3d,0x8d,0x3d,0xc9,0x3f,0x8a,0x3d,0xa2,0xc9,0x35,0xcb,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x0f,0x6e,0xf0,0x6b,0xfe,0xd9,0x01,0x27,0xfe,0xd9,0x01,0x27,0x6b,0xf0,0x6e,0x01,0x29,0xfe,0xd7,0x01,0x29,0xfe,0xd7,0x6e, -0xf0,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x00,0x01,0x11,0x23,0x11,0x06,0x06,0x07,0x06,0x06,0x07,0x35,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x04,0x62,0xae,0x16,0x31,0x1a,0x1c,0x3e,0x25,0x19,0x29,0x14,0x14, -0x28,0x14,0x13,0x27,0x13,0x15,0x29,0x15,0xfc,0x7a,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x04,0xb2,0xfb,0xfd,0x03,0x3f,0x0f,0x1c,0x0b,0x0b,0x13,0x09,0x8b,0x07,0x0e,0x07,0x08,0x11,0x08,0x0a,0x14,0x0b,0x0b,0x1a,0x0b,0x01,0x41,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03, -0x00,0x07,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x21,0x35,0x01,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x07,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x4a,0xfd,0x6f,0x01,0x3d,0x31,0x45,0x2c,0x13,0x10,0x28,0x42,0x32,0x49, -0x82,0x43,0x80,0xa9,0x45,0x73,0x53,0x2e,0x1f,0x3d,0x5b,0x3b,0xed,0x01,0xd6,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x20,0x84,0x01,0x23,0x2d,0x4a,0x46,0x4c,0x2f,0x15,0x38,0x33,0x23,0x3a,0x39,0x97,0x5c,0x2e,0x4e,0x65,0x37,0x3b,0x65,0x60,0x5f,0x34,0xd1,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89, -0x00,0x03,0x00,0x07,0x00,0x3e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x94, -0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd6,0x3a,0x95,0x48,0x21,0x4c,0x41,0x2b,0x29,0x49,0x63,0x3a,0x5d,0x58,0x34,0x57,0x3f,0x23,0x21,0x33,0x3c,0x1c,0x3b,0x82,0x35,0x36,0x81,0x49,0x3f,0x77,0x5c,0x37,0x73,0x64,0x31,0x5c,0x47,0x2a,0x3f,0x6c,0x8f,0x4f,0x50,0x92,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x4a, -0x9a,0x29,0x28,0x0e,0x25,0x40,0x31,0x31,0x45,0x2b,0x14,0x80,0x12,0x29,0x40,0x2e,0x2b,0x37,0x1f,0x0c,0x24,0x24,0x8e,0x1d,0x1d,0x1d,0x3c,0x5c,0x3f,0x64,0x80,0x17,0x05,0x26,0x3f,0x55,0x33,0x4a,0x70,0x4c,0x27,0x1b,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x12,0x00,0x15,0x00,0x00,0x13,0x11, -0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x01,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x83,0x88,0xae,0xfe,0x21,0x01,0xc4,0xc9,0x88,0xfe,0xca,0xfe,0xd7,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfb,0x2a,0xfe,0xfb,0x01,0x05,0x7f,0x02,0x79,0xfd,0x99,0x01, -0xac,0xfe,0x54,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2c,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x3e,0x02,0x32,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x94,0x06, -0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd7,0x7b,0x7e,0x36,0x5c,0x43,0x26,0x2d,0x4b,0x64,0x37,0x33,0x88,0x02,0x41,0xfe,0x6c,0x0e,0x0c,0x09,0x0a,0x0c,0x4f,0x92,0x6e,0x42,0x47,0x75,0x98,0x52,0xa5,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x3f,0x97,0x42,0x18,0x30,0x47,0x2f,0x30,0x43,0x2c,0x14,0x09,0x02,0x16,0x86, -0xfe,0xf8,0x01,0x01,0x01,0x21,0x48,0x73,0x52,0x56,0x7a,0x4f,0x25,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02, -0x35,0x34,0x3e,0x04,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x31,0x5a,0x61,0x56,0x77,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76, -0x48,0xfe,0xe2,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e,0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x7c,0x2c,0x46,0x70,0x90,0x49,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0xfe,0x24,0x1c,0x34,0x4a,0x2e, -0x29,0x49,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b,0x31,0x17,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x0e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xae,0xfe,0x1a,0xad,0x01,0xb4,0xfd,0x9a,0x03,0x45, -0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x05,0xfc,0x23,0x03,0x78,0x8b,0x00,0x00,0x05,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2b,0x00,0x3f,0x00,0x53,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x13,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfc,0x03,0x3b,0x70,0x56,0x34,0x5a,0x5e,0x34,0x53,0x3b,0x1f,0x3a, -0x62,0x7e,0x44,0x44,0x7e,0x62,0x3a,0x1f,0x3b,0x53,0x34,0x5e,0x5a,0x34,0x56,0x70,0x3b,0x1e,0x37,0x28,0x18,0x13,0x26,0x37,0x25,0x25,0x38,0x25,0x13,0x18,0x28,0x37,0x1e,0x28,0x44,0x32,0x1d,0x1a,0x30,0x46,0x2b,0x2c,0x45,0x30,0x1a,0x1d,0x32,0x44,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x2b,0x21,0x40,0x5e,0x3d, -0x50,0x86,0x23,0x17,0x3a,0x47,0x54,0x31,0x43,0x64,0x42,0x20,0x20,0x42,0x64,0x43,0x31,0x54,0x47,0x3a,0x17,0x23,0x86,0x50,0x3d,0x5e,0x40,0x21,0xfe,0x4a,0x0a,0x24,0x31,0x3c,0x21,0x13,0x2a,0x24,0x18,0x18,0x24,0x2a,0x13,0x21,0x3c,0x31,0x24,0xfe,0x11,0x19,0x2a,0x37,0x1e,0x24,0x39,0x30,0x2a,0x15,0x15,0x2a,0x30,0x39,0x24,0x1e, -0x37,0x2a,0x19,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x27,0x01,0x32,0x3e, -0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xdb,0x5a,0x61,0x55,0x78,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76,0x48,0x01,0x1e,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e, -0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0xc2,0x2c,0x46,0x70,0x8f,0x4a,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0x01,0xdc,0x1c,0x34,0x4a,0x2e,0x28,0x4a,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b, -0x31,0x17,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x10,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x25,0x22,0x26,0x27,0x26,0x35,0x34,0x36,0x37,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x06,0x03,0x22,0x11,0x14,0x16,0x33,0x32,0x11,0x34,0x26,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x03,0xd1,0x55,0x7f,0x30,0x5d,0x2f, -0x32,0x62,0xb5,0x01,0x5c,0x2f,0x32,0x63,0xa0,0xc1,0x5f,0x5e,0xb9,0x58,0xfc,0x57,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x9e,0x40,0x40,0x7f,0xf5,0x87,0xc8,0x46,0x89,0xfd,0xfa,0x80,0xc2,0x44,0x86,0x03,0x8e,0xfe,0x6d,0xbd,0xbc,0x01,0x7f,0xc9,0xc4,0x01,0xc7,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xff,0xff,0x00,0x90,0x01,0xfa, -0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26, -0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23, -0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08, -0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20, -0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x01, -0xeb,0x13,0x1e,0x19,0x13,0x0c,0x07,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, -0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x4e,0x8b,0x81,0x7f,0x88,0x94,0x57,0xfe,0xd1,0x01, -0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34, -0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06, -0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x08,0xca,0x68, -0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e, -0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd5,0x02,0x84, -0xfe,0x1b,0x14,0x1e,0x14,0x0b,0x7d,0x0e,0x1c,0x2b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13, -0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x85,0x5b,0xa1,0xa7,0xb6,0x6e,0xfe,0xd1,0x01,0x29,0x76,0xcc, -0xc7,0xcf,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xc4,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26, -0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06, -0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16, -0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, -0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27, -0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd3,0x11,0x1d,0x0c,0x11,0x1e,0x0e,0x21,0x30,0x1e,0x0e,0x1d,0x7d,0x1d,0x19,0x18,0x29,0x13,0x21,0x2f,0x1f,0x0d,0x1c,0x7d,0x1d,0x1e,0x3c,0x56,0x38,0x24,0x52,0x30,0x39, -0x4f,0x21,0x23,0x09,0x0d,0x09,0x05,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, -0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x49,0x80,0x3d,0x04,0x03,0x16,0x26,0x33,0x1d,0x43, -0x3e,0x47,0x45,0x41,0x33,0x07,0x06,0x16,0x26,0x33,0x1d,0x43,0x3e,0x47,0x45,0x31,0x56,0x3f,0x24,0x13,0x16,0x28,0x07,0x36,0x6d,0x74,0x7f,0x48,0xfe,0xd1,0x01,0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b, -0x00,0xbd,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14, -0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27, -0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, -0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f, -0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0x63,0x43,0x5f,0x40,0x24,0x14,0x05,0x22,0x39,0x46, -0x24,0x3c,0x61,0x2f,0x65,0x72,0x39,0x6f,0x59,0x38,0x16,0x35,0x59,0x43,0x40,0x56,0x32,0x15,0x23,0x57,0x92,0x6e,0x5c,0x6c,0x37,0x10,0x19,0x42,0x73,0x5b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16, -0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20, -0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x03,0xbf,0x3f,0x65,0x53,0x40,0x2f,0x21,0x09,0x22,0x2a,0x18,0x08,0x10,0x0c,0x84,0x24,0x18,0x33,0x51,0x38,0x21,0x54,0x65,0x76,0x42,0x1e,0x36,0x37,0x3b,0x21,0x2b,0x5b,0x59,0x54,0x25,0x8d,0x1c,0x38,0x33,0x29,0x0c,0x14,0x20,0x2b,0x39,0x2d,0x00,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16, -0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0xb5,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17, -0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21, -0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, -0x2e,0x02,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39, -0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20, -0x20,0x2f,0x01,0xe9,0x39,0x7c,0x66,0x43,0x31,0x5b,0x84,0x52,0x51,0x7c,0x55,0x2b,0x1f,0x34,0x45,0x4b,0x4c,0x20,0x20,0x49,0x3f,0x29,0x21,0x3a,0x4c,0x2b,0x3b,0x55,0x37,0x1a,0x2f,0x45,0x4e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e, -0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20, -0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0x24,0x44,0x84,0xc1,0x7d,0x4d,0x7f,0x5b,0x31,0x2d,0x51,0x73,0x48,0x54,0x92,0x7a,0x60,0x42,0x23,0x81,0x3c,0x6a,0x96,0x59,0x34,0x4a,0x2e,0x15,0x1b,0x32,0x46,0x2c,0x5f,0x98,0x68,0x38,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f, -0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14, -0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01, -0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68, -0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c, -0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0xb1,0x13,0x1e,0x16,0x11,0x0b,0x09,0x06,0x04,0x03,0x02,0xfe,0x15,0x02,0x64,0x04,0x04,0x06,0x0a,0x10,0x1b,0x27,0x1b, -0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb, -0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x52,0x84,0x72,0x63,0x61,0x62,0x71,0x83,0x51,0x43,0x85,0x9e,0x70,0xac,0x93,0x84,0x91,0xab,0x6e,0x00,0x00,0x09, -0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33, -0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10, -0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e, -0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05, -0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xce,0x50,0x8c,0x3e,0x05,0x41,0x8a, -0x50,0x7e,0x66,0xad,0x4d,0x77,0x29,0x54,0x57,0x5c,0x31,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d, -0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xba,0xd9,0xfe,0x34,0xf8,0xf8,0x01,0xcc,0xd9,0xfe,0xe6,0xfd, -0xc7,0xfe,0xd8,0x9b,0x01,0x27,0x01,0x1d,0x01,0x14,0x88,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34, -0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27, -0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36, -0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6, -0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e, -0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x06,0x51,0x8b,0x3e,0x05,0x41,0x8a,0x50,0x7f,0x34,0x5d,0x57,0x52,0x27,0x77,0x51,0xad,0x62,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e, -0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21, -0x2e,0x2f,0x01,0x49,0xda,0x01,0xcc,0xf7,0xf8,0xfe,0x34,0xd9,0x8e,0x01,0x1a,0x01,0x1e,0x01,0x21,0x94,0xfe,0xcb,0xfd,0xc9,0xfe,0xf1,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xaa,0x00,0xbf,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16, -0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07, -0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x03,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28, -0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27, -0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x51,0x80,0x20,0x2c,0x1c,0x11,0x07,0x64,0x60,0x40,0x71,0x54,0x32,0x29,0x4d,0x70,0x48, -0x46,0x71,0x30,0x1a,0x1e,0x12,0x09,0x05,0x06,0x10,0x1e,0x32,0xe3,0x03,0x06,0x08,0x0c,0x08,0x1c,0x58,0x38,0x23,0x3c,0x2c,0x19,0x20,0x38,0x4d,0x2e,0x26,0x53,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f, -0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80, -0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x4e,0x97,0x8d,0x83,0x39,0x2f,0x2a,0x4d,0x72,0x48,0x40,0x7b,0x60,0x3b,0x40,0x4c,0x28,0x50,0x57,0x62,0x3b,0x41,0x91,0xa2,0xb5,0x02,0x43,0x22,0x34,0x2d,0x28,0x15,0x46,0x4e,0x1e,0x34,0x46,0x27,0x2c,0x45,0x30,0x19,0x13,0x00,0x01,0x00,0x53,0x00,0x00,0x04,0x2d,0x05,0x9a,0x00,0x1d, -0x00,0x70,0x40,0x25,0x1b,0x00,0x1a,0x01,0x1a,0x03,0x18,0x02,0x0f,0x19,0x1f,0x19,0x02,0x19,0x40,0x0f,0x12,0x48,0x19,0x19,0x15,0x17,0x04,0x16,0x05,0x16,0x14,0x07,0x15,0x06,0x06,0x00,0x05,0x10,0x05,0x02,0x05,0xb8,0xff,0xc0,0x40,0x1a,0x0f,0x12,0x48,0x05,0x05,0x02,0x01,0x60,0x15,0x70,0x15,0x02,0x0d,0x15,0x01,0x01,0x15,0x0d, -0x03,0x13,0x1c,0x03,0x08,0x91,0x13,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x2f,0x2b,0x5d,0x33,0x11,0x12,0x39,0x39,0x32,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0x2b,0x5d,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x25,0x15,0x05,0x15,0x25,0x15,0x05,0x11,0x33,0x32,0x37,0x36,0x37, -0x33,0x06,0x07,0x06,0x23,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x33,0x01,0xea,0x01,0x58,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x23,0xa3,0x68,0x66,0x0b,0xa4,0x14,0x93,0x90,0xee,0xc6,0xef,0xef,0xef,0xef,0xa8,0x04,0x1d,0x89,0x99,0x89,0x83,0x89,0x99,0x88,0xfe,0x2e,0x69,0x69,0xb9,0xfe,0x92,0x92,0x02,0x26,0x5e,0x98,0x5f, -0x83,0x5f,0x98,0x5f,0x01,0xc0,0x00,0x02,0x00,0xbb,0x00,0xf7,0x03,0xf5,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x59,0x6e,0x8f,0x93,0x6a,0x6a,0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f, -0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x01,0x01,0x01,0xfe,0xe6,0x03,0xae,0x05,0x9c,0x00,0x29,0x00,0x00,0x01,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07, -0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0xe6,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49,0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0, -0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x01,0x00,0xaf,0xfe,0xdb,0x04,0x00,0x05,0x9c,0x00,0x21,0x00,0x00,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16, -0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x7b,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a,0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe, -0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0xc2,0xfe,0xde,0x03,0xee,0x05,0x88,0x00,0x2f,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14, -0x06,0x07,0x15,0x16,0x16,0x17,0x03,0x42,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a,0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a, -0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c,0x00,0x02,0x00,0x6a,0xff,0xf3,0x04,0x46,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16, -0x16,0x17,0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x3f,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99, -0x74,0xc1,0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x64,0xfe,0xdb,0x04,0xef,0x05,0x88,0x00,0x25,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x5a,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b,0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9, -0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x01,0x00,0x39,0xfe,0xde,0x04,0x77,0x05,0x88,0x00,0x36,0x00,0x00,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x0a,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b, -0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2,0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x00,0x01,0x00,0x2e,0xff,0xf8, -0x04,0x82,0x05,0x88,0x00,0x29,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0x8c,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2, -0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93,0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x00,0x01,0x00,0x79, -0xff,0xa1,0x04,0x37,0x05,0x96,0x00,0x16,0x00,0x00,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x90,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c, -0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x01,0x00,0x81,0xfe,0xe6,0x04,0x2e,0x05,0x9c,0x00,0x27,0x00,0x00,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16, -0x15,0x14,0x06,0x07,0x01,0xfc,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec,0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce, -0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0xfd,0x00,0x93,0x05,0x06,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x04,0x66,0x55,0x9d,0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67, -0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x01,0x01,0x70,0xff,0xe7,0x04,0x94,0x05,0xb1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14, -0x02,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x02,0x3e,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98, -0xfe,0x81,0x7a,0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x01,0x00,0xb9,0xff,0xa7,0x05,0x4a,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36,0x35, -0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x88,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b,0x7e, -0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x01,0x00,0x7d,0x00,0x93,0x05,0x86,0x05,0x36,0x00,0x23,0x00,0x00,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26, -0x27,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xf6,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0, -0x70,0x9e,0xe3,0x18,0x0e,0x3c,0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0xff,0x00,0x4c,0x05,0x04,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, -0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xf1,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, -0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, -0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x8c,0x00,0x01,0x05,0x78,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x00,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36, -0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xb5,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78,0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77, -0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00,0x00,0x01,0x00,0x1f,0xff,0xe5,0x05,0xe4,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14, -0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x4d,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74, -0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89,0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0xf5,0xff,0xe8,0x05,0x0e,0x05,0xb1,0x00,0x21,0x00,0x30, -0x00,0x00,0x01,0x06,0x23,0x22,0x24,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0xbc,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59, -0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83, -0x0a,0x25,0x00,0x02,0x00,0x3a,0xff,0xe8,0x05,0xca,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x00,0x13,0x27,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03, -0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0xe8,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab, -0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f,0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x01,0x00,0xaf,0xff,0xe7,0x05,0x54, -0x05,0xb1,0x00,0x3c,0x00,0x00,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23, -0x2e,0x02,0x02,0x3f,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85,0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44, -0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x00,0x02,0x00,0xb7,0x00,0xe6,0x04,0x0d,0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0d,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x2a,0xff,0xba,0x03,0x99,0x05,0x1a, -0x00,0x15,0x00,0x1e,0x00,0x00,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x99,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01, -0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44,0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x7d,0xff,0xbe,0x04,0x46,0x04,0xee,0x00,0x20,0x00,0x00,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00, -0x15,0x10,0x05,0x16,0x16,0x04,0x46,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x01, -0x00,0x8b,0xff,0x7b,0x04,0x39,0x05,0x04,0x00,0x2a,0x00,0x00,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33,0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x39,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96, -0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c,0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00, -0x00,0x02,0x00,0xb4,0xff,0xba,0x04,0x10,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x00,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0x30,0xfe,0xef,0x81,0x3d,0x1f, -0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80,0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b, -0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c,0x00,0x00,0x01,0x00,0x79,0xff,0xf6,0x04,0x4b,0x04,0xe1,0x00,0x1a,0x00,0x00,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x4b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23, -0xaa,0x5a,0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x9d,0xff,0xf6,0x04,0x26,0x06,0x30,0x00,0x2d,0x00,0x00,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33, -0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x26,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39, -0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61,0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xdf,0xff,0xf0,0x03,0xe4,0x05,0x25,0x00,0x17,0x00,0x00,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17, -0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xe4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4,0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0x29,0x00,0x18, -0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f, -0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0xda,0x00,0x25,0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe, -0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0xe1,0x01,0x13,0x04,0x33, -0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x8b,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75,0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b, -0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x00,0x02,0x00,0xdc,0xff,0xe8,0x04,0x38,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xbb, -0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49,0x4c,0x5e,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x6d,0x05,0xb2,0x00,0x26, -0x00,0x00,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0xae,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38, -0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53,0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0xab,0x05,0xb2,0x00,0x2b,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22, -0x24,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0xd9,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96, -0x78,0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x00,0x02,0x00,0x2d,0xff,0xe8,0x04,0xe7,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x00,0x13,0x01,0x01,0x17, -0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x93,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19,0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae, -0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x01,0x00,0x0c,0xff,0xe8,0x05,0x07,0x05,0xb2,0x00,0x22,0x00,0x00,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32, -0x37,0x11,0x33,0x04,0x2e,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82,0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x00,0x01,0x00,0x68,0xff,0xe8, -0x04,0xac,0x05,0xbb,0x00,0x36,0x00,0x00,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x57, -0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05,0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62, -0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x4d,0xff,0xe8,0x04,0xc6,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x00,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06, -0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe8,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9,0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a, -0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x01,0x00,0xab,0xff,0xe8,0x04,0x69,0x05,0xbc,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0xa7,0xfe, -0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x00,0x02,0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x00,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16, -0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02,0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6, -0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0xad,0x00,0xd7,0x04,0x7a,0x04,0x89,0x00,0x0f,0x00,0x1c,0x00,0x00,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0xad,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81, -0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, -0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x15,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03,0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68, -0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0x04,0x12,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64,0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d, -0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x01,0x00,0x2f,0x00,0x00,0x04,0xf9,0x05,0x7d,0x00,0x33,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0x5c,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f,0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57, -0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x02,0x00,0x40,0xff,0xe5,0x04,0xe7,0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26, -0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x03,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2, -0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38,0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x03,0x00,0x34,0xff,0xe5,0x04,0xf3,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x00,0x13,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27, -0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0xdb,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02, -0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56,0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03, -0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x01,0x00,0x55,0x00,0x00,0x04,0xd3,0x05,0x7d,0x00,0x2f,0x00,0x00,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36, -0x33,0x32,0x16,0x16,0x15,0x10,0x00,0x21,0x55,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77, -0xa7,0x77,0x76,0x55,0x50,0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x00,0x02,0x00,0x4f,0xff,0xe5,0x04,0xd8,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x00,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x4f,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06,0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79, -0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x04,0x67,0x05,0x42,0x00,0x05, -0x00,0x00,0x13,0x21,0x15,0x21,0x11,0x23,0xc1,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0xdc,0xff,0xe2,0x04,0x4c,0x05,0x62,0x00,0x16,0x00,0x00,0x13,0x34,0x12,0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0xdc,0xb1,0x9b,0x1b,0x01,0x62,0xa7, -0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51,0x96,0x3b,0xf3,0x01,0x35,0x00,0x02,0x01,0xbd,0xff,0xe8,0x05,0x87,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02, -0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x05,0x87,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe, -0xeb,0xfe,0xfc,0x01,0x02,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x06,0x44,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14, -0x16,0x16,0x33,0x32,0x36,0x35,0x06,0x44,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01,0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02, -0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x02,0x00,0xd2,0x00,0x00,0x06,0x72,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x00,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33, -0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x72,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04, -0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f,0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0xff,0x00,0x00,0x06,0x44, -0x05,0x31,0x00,0x20,0x00,0x00,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x06,0x44,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72,0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38, -0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x03,0x00,0xf8,0x00,0x00,0x06,0x4b,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x00,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11, -0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x06,0x4b,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed,0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02, -0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x5c,0xfd,0xb9,0x06,0xe8,0x07,0x21,0x00,0x34,0x00,0x00,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15, -0x23,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x46,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93, -0xc3,0xd3,0x01,0x8c,0x01,0x10,0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01, -0x1a,0xfe,0xfe,0x2c,0xfe,0xce,0x00,0x03,0x00,0x27,0x00,0x00,0x07,0x1c,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x00,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26, -0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x07,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84, -0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d,0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02, -0x01,0x1a,0x00,0x00,0x06,0x29,0x05,0x31,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x06,0x29,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88, -0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3,0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x03,0x00,0x48,0xff,0x00, -0x06,0xfc,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x06,0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32, -0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xfc,0xa8,0xfb,0x59,0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44, -0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74,0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x23, -0xff,0xe4,0x07,0x20,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02, -0x07,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x16,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47, -0x3d,0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28, -0x5d,0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x00,0x02,0x00,0xbf,0xff,0xe5,0x05,0xa8,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x00,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, -0x36,0x36,0x35,0x34,0x26,0x26,0x03,0x33,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f,0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81, -0xe0,0x7e,0x00,0x01,0x00,0x34,0xff,0xe6,0x06,0x34,0x04,0xc9,0x00,0x1b,0x00,0x00,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x34,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf, -0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69,0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x45,0x00,0x00,0x06,0x22,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x00,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26, -0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x45,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91, -0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe,0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x01,0x01,0x78,0xff,0xe7,0x04,0xef,0x04,0xc9,0x00,0x28,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22, -0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x04,0xef,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba, -0x68,0x49,0x50,0x4e,0x5e,0x01,0x54,0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x00,0x02,0x00,0x9e,0xff,0xe8,0x05,0xca,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16, -0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x17,0x03,0x29,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39, -0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31,0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54, -0x20,0x00,0x00,0x02,0x00,0x36,0xff,0xc0,0x06,0x32,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x00,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37, -0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0x96,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31,0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02, -0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f,0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07, -0x62,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15,0x21,0x22,0x26,0x99,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b, -0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x01,0x4a,0xff,0xe5,0x05,0x1e,0x04,0xc9,0x00,0x2e,0x00,0x00,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34, -0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x03,0x30,0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c, -0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53,0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x28,0xff,0xe7,0x06,0x3f,0x04,0xc9,0x00,0x20,0x00,0x00,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02, -0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x02,0xd5,0x03,0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb, -0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x99,0xcf,0xbd, -0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c,0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0xac,0x00,0x00,0x05,0x2f,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x00,0x01,0x14,0x02,0x04, -0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x2f,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e,0x02,0x55,0xa2,0xfe,0xea, -0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x01,0x00,0xa1,0xff,0xfd,0x05,0x3a,0x04,0xac,0x00,0x1d,0x00,0x00,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24, -0x33,0x32,0x04,0x12,0x05,0x3a,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00, -0x00,0x01,0x00,0xf6,0x00,0x00,0x04,0xe6,0x04,0xac,0x00,0x25,0x00,0x00,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0xe6,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, -0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0xdd,0xff,0xdd,0x04,0xfe,0x04,0xac, -0x00,0x32,0x00,0x3c,0x00,0x00,0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22, -0x15,0x14,0x16,0x04,0xfe,0x54,0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c, -0x42,0x6f,0x55,0x53,0xbe,0x6e,0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x60,0xff,0xf3,0x05,0x7c,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06, -0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56, -0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88,0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a, -0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45,0x00,0x03,0x00,0x43,0xff,0xdc,0x05,0x99,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x00,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x25,0x26, -0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x99,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b,0xc7,0xa8,0x73,0xa0,0xea, -0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73,0xa2,0x9e,0x18,0xac,0xfa, -0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x00,0x02,0x00,0x7e,0x00,0x00,0x05,0x5d,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x00,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23, -0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5d,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e, -0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a,0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x05,0x06,0x04,0xc1,0x00,0x27,0x00,0x00,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26, -0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15,0x14,0x16,0x33,0x21,0x05,0x06,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61, -0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70,0x5b,0x83,0x00,0x02,0x00,0x8d,0x00,0x00,0x05,0x4e,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, -0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x4e,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f,0x25,0x2e,0x41, -0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x00,0x02,0x01,0x0d,0x00,0x00,0x04,0xcf,0x04,0xac,0x00,0x26,0x00,0x31,0x00,0x00, -0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0xcf,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c, -0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b,0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b, -0x29,0x00,0x00,0x02,0x01,0xc8,0xff,0xe8,0x05,0x54,0x03,0x7c,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x8e,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0, -0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x00,0x02,0x00,0x24,0xfe,0x63,0x06,0xf8,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x00,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21, -0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xf8,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d,0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02, -0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x00,0x01,0x00,0x37,0xff,0xe6,0x06,0xe5,0x05,0xb3,0x00,0x1e,0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x06,0xe5,0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5, -0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x01,0x00,0x32,0xff,0xe6,0x06,0xe9,0x05,0xb3,0x00,0x2d, -0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x06,0xe9,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66, -0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9,0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93, -0x56,0x00,0x00,0x02,0x00,0x7e,0xff,0xe6,0x06,0x9e,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x4e,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b,0xbb,0xb2,0x7c,0x69,0x80, -0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe,0x01,0x24,0x00,0x00,0x01, -0x00,0x37,0xfd,0xfe,0x06,0xe5,0x07,0x61,0x00,0x43,0x00,0x00,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06, -0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x11,0x14,0x02,0x06,0x53,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01, -0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01,0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc, -0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9,0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x00,0x01,0x00,0x46,0xfd,0xfe,0x06,0xd6,0x05,0xb3,0x00,0x3e,0x00,0x00,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11, -0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x02,0x15,0x10,0x17,0xd0,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99, -0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f,0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03, -0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x01,0x25,0xff,0xe6,0x05,0xf6,0x05,0xb3,0x00,0x0b,0x00,0x30,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15, -0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x03,0x6e,0x6e,0x5e,0x5e,0x7a,0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf, -0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60,0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x01,0x00,0x4b,0xfd,0xfe,0x06,0xd1,0x05,0xb3,0x00,0x2d,0x00,0x00,0x01,0x11,0x10,0x00,0x21,0x22, -0x26,0x27,0x35,0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xd1,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83, -0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74, -0x05,0x06,0x00,0x02,0x00,0x3d,0xff,0xe6,0x06,0xde,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17,0x36,0x36, -0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0x9e,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90,0x85,0x3d, -0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad,0x90,0x81, -0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0xdf,0xff,0xf4,0x05,0x88,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26, -0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x03,0x32,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab,0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0xa3, -0xff,0xf4,0x05,0xc4,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x22,0x06,0x02,0x49,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a,0x88, -0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x00,0x02,0x00,0xc6,0x00,0x00,0x05,0xa2,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23, -0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x34,0x76,0x72,0x41,0x5d,0x15, -0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b,0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b, -0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a,0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x00,0x02,0x00,0xbb,0xff,0xf4,0x05,0xac,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x00,0x05,0x22,0x02,0x35, -0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x68,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e, -0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37,0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74, -0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x02,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x3b,0x00,0x47,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x18,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda, -0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57, -0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x00,0x03,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0x00,0x01,0x07,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16, -0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xaa,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38, -0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01, -0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x01,0x08,0xff,0xf4,0x05,0x5f,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33, -0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x6d,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58, -0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9,0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x02,0x00,0x35,0xff,0xf4,0x06,0x33,0x05,0xe6,0x00,0x3b,0x00,0x47, -0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06,0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48,0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39, -0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31,0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x00,0x02,0x00,0xa7, -0xff,0xf6,0x05,0xc1,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36, -0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x21,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c, -0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a,0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71, -0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39,0x3a,0x00,0x00,0x02,0x00,0x67,0xff,0xf4,0x06,0x00,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26, -0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x67,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23, -0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65,0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73, -0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0xd0,0xff,0xf2,0x05,0x97,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x00,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x13,0x32,0x36,0x35, -0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x3a,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb,0xe5,0xf9,0xc8,0x80,0xd0,0x74, -0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0xd2,0xff,0xf7,0x05,0x95,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x00,0x05,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15, -0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x4d,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85,0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9, -0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe,0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x02,0x01,0x47,0xff,0xf2,0x05,0x21,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x00,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x08,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69,0x8f,0x57, -0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0xa3,0xff,0xf2, -0x05,0xc4,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x00,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34, -0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xe3,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb,0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57, -0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e,0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae, -0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03, -0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32, -0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xa7,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e, -0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f, -0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0x00,0x01,0x14,0x06,0x23, -0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36, -0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x77,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19, -0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4, -0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f,0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83, -0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x44,0xff,0xf2,0x06,0x24,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, -0x33,0x32,0x05,0x07,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfe, -0x36,0x57,0x15,0x2e,0x40,0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21, -0x1a,0x1a,0x25,0xf4,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a, -0x6a,0x94,0x01,0x04,0x9f,0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x9a,0xfd,0xeb,0x05,0xce,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x00,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26, -0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d, -0x82,0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59, -0x69,0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0xb9,0xfe,0xa4,0x05,0xae,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16, -0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16, -0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x43,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf, -0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c,0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f, -0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51,0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70, -0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20,0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x15,0xff,0xf2,0x06,0x52,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x00,0x01,0x12,0x11,0x14,0x06,0x06, -0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0xb0,0xa2,0x70,0xcd,0x84, -0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd,0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f, -0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x01,0x09,0x01,0xb4,0x04,0x6f,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, -0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0xbd,0x79,0x93,0x8d,0x7f,0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00, -0x00,0x01,0x01,0x22,0xff,0x83,0x04,0x56,0x05,0x9a,0x00,0x1d,0x00,0x00,0x05,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0x01,0xa7,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b, -0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe,0xae,0xfe,0x9b,0x9a,0x00,0x00,0x01,0x00,0xf8,0xff,0x83,0x04,0x80,0x05,0x9a,0x00,0x23,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32, -0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0xe7,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a,0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36, -0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x01,0x0e,0xff,0x83,0x04,0x69,0x05,0x9a,0x00,0x31,0x00,0x00,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14, -0x06,0x06,0x07,0x16,0x17,0x07,0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0xa0,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78, -0x73,0x43,0x81,0x23,0x03,0x68,0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0xb7,0xff,0x83,0x04,0xc0,0x05,0x9a,0x00,0x22,0x00,0x00,0x01,0x20,0x11,0x34,0x37,0x22, -0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x68,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01, -0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01,0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x00,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17, -0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08,0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x6c, -0xff,0xf6,0x05,0x0b,0x05,0x9a,0x00,0x2c,0x00,0x00,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x10,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70, -0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1,0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f, -0xf0,0x01,0xf1,0x01,0x75,0x00,0x00,0x01,0x00,0x3b,0xff,0xf6,0x05,0x3c,0x05,0xae,0x00,0x26,0x00,0x00,0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x3c,0x07,0x72,0xf7,0xd9, -0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54,0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8, -0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0xcb,0xff,0x83,0x04,0xad,0x05,0xae,0x00,0x15,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02,0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x04,0x14,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb, -0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x01,0x00,0xe3,0xff,0x83,0x04,0x95,0x05,0x9a,0x00,0x25,0x00,0x00,0x05,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35, -0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0x01,0x0e,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b,0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12, -0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x02,0x00,0x47,0xff,0xf1,0x03,0xc8,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xc8, -0x78,0xd2,0x78,0x78,0xd0,0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x01,0x00,0x5a,0xff,0xf1,0x03,0xb5,0x03,0x6e,0x00,0x1b,0x00,0x00,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15, -0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x5b,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65, -0x58,0x00,0x00,0x01,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x64,0x00,0x12,0x00,0x00,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xcc,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e, -0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x02,0xea,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86, -0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a,0x01,0xfe,0x07,0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36, -0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x79,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74,0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b, -0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x00,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16, -0x16,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x11,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81, -0x56,0x5b,0x87,0x84,0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x44,0xff,0xf1,0x03,0xcc,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16, -0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a, -0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83,0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61, -0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x01,0x00,0x30,0xfe,0x05,0x03,0xe0,0x03,0x6e,0x00,0x32,0x00,0x00,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06, -0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xe0,0x07,0x40,0x6d,0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69, -0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca,0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x00,0x02,0x00,0x47,0xff,0xf0,0x03,0xc8,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07, -0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0x6c,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d, -0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92,0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x00,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22, -0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a, -0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe,0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02, -0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x00,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef,0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8, -0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x01,0x00,0xa3,0xff,0xe7,0x03,0xe5,0x05,0xe8,0x00,0x09,0x00,0x00,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0xa3,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa, -0xcb,0x86,0x80,0xd2,0x05,0x35,0x83,0x00,0x00,0x01,0x00,0x9b,0x00,0x00,0x03,0xed,0x05,0xe9,0x00,0x22,0x00,0x00,0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x9b,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa, -0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed,0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x5d,0x00,0x00,0x04,0x2b,0x05,0xe3,0x00,0x12,0x00,0x00,0x33,0x01,0x33,0x03, -0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x5d,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01,0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x31,0xff,0xe7,0x04,0x56,0x05,0xe3,0x00,0x09,0x00,0x00,0x33,0x01, -0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x31,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x00,0x02,0x00,0x57,0xff,0xf1,0x04,0x30,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21, -0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xb6,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00,0x02, -0x00,0x57,0x00,0x00,0x04,0x30,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x30,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e, -0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd,0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x03,0xb1,0x05,0xe3,0x00,0x07,0x00,0x00,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0xd7,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe, -0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x83,0xff,0xf1,0x04,0x04,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27, -0x37,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5e,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76, -0xce,0x7a,0x79,0xd0,0x75,0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x02,0x00,0x83,0xff,0xdc,0x04,0x04,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, -0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf4,0x39,0x40,0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f, -0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e,0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x01,0x48, -0xff,0xec,0x04,0xbc,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0xbc,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01, -0x84,0x01,0x78,0x01,0x63,0xfe,0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x01,0x21,0xff,0xec,0x04,0xe2,0x05,0xa3,0x00,0x2c,0x00,0x00,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04, -0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0xcd,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc,0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a, -0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x74,0xff,0xec,0x05,0x8f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x00,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36, -0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27, -0xa4,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85,0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d, -0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48,0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9, -0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x02,0x00,0x43,0xff,0xec,0x05,0xc1,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x00,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14, -0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x21,0x82,0x62,0x69,0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59, -0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4,0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xf0,0xff,0xec,0x05,0x14,0x06,0x27,0x00,0x3d,0x00,0x00,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35, -0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x03,0xef,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a, -0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12,0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7, -0x4c,0x5e,0x4f,0x00,0x00,0x02,0x00,0xd6,0xff,0xec,0x05,0x2e,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x14, -0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x2e,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0xfe,0xc7,0xc5, -0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe,0xaf,0x86,0x83,0x89, -0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01,0x01,0x0f,0xff,0xec, -0x04,0xf5,0x06,0x3b,0x00,0x3a,0x00,0x00,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x02,0xe0,0x16,0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e, -0x72,0x26,0x1b,0x15,0x19,0x2a,0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0x8f,0xff,0xec,0x05,0x74,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11, -0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xa9,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63, -0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91,0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e, -0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57,0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x01,0x0b,0xff,0xec,0x04,0xf9,0x06,0x27,0x00,0x45,0x00,0x00,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34, -0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x35,0x33,0x04,0xf9,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52, -0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55,0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45, -0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x00,0x01,0x01,0x20,0xff,0xec,0x04,0xe3,0x06,0x3b,0x00,0x43,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xe3,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8, -0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67,0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80, -0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x00,0x02,0x00,0x9d,0x00,0x45,0x03,0xaf,0x05,0xa3,0x00,0x0e,0x00,0x1d,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33, -0x32,0x12,0x03,0x08,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x01,0x00,0xb6,0xfe,0xf1,0x03,0x95, -0x05,0xa3,0x00,0x2e,0x00,0x00,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x95,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11, -0x1f,0x06,0x0b,0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01, -0x0e,0x01,0x9e,0xe2,0xfe,0xd5,0x00,0x01,0x00,0x36,0x00,0x8a,0x04,0x16,0x05,0xa3,0x00,0x3f,0x00,0x00,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33, -0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x16,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f,0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b, -0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb,0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01, -0x00,0x5a,0x01,0x73,0x03,0xf1,0x05,0xa3,0x00,0x54,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06, -0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x03,0xe4,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23,0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29, -0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07,0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14, -0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01,0x00,0xc5,0xff,0xc3,0x03,0x86,0x05,0xa7,0x00,0x26,0x00,0x00,0x01,0x32,0x16,0x16,0x15,0x10,0x02,0x06,0x23,0x22,0x26,0x35, -0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xea,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed,0x6b,0xfe,0xef,0xfe,0x1c, -0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x00,0x01,0x00,0xab,0x01,0x46,0x03,0xa0,0x05,0xa7,0x00,0x33,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0xa0,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d,0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d, -0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18,0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x01,0x00,0x79,0xff,0xc3, -0x03,0xd2,0x05,0xa3,0x00,0x40,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34, -0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x72,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01,0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe, -0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44,0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x01,0x00,0x74,0xff,0xf6,0x03,0xd8,0x05,0xa3,0x00,0x3e,0x00,0x00, -0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03, -0xd8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b,0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f, -0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21,0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0xa8,0x00,0x45,0x03,0xa4,0x05,0xa7,0x00,0x31,0x00,0x00,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26, -0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37,0x3e,0x04,0x17,0x32,0x16,0x03,0xa4,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26, -0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f,0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x00,0x01, -0x00,0xce,0xff,0xc3,0x03,0x7d,0x05,0xa7,0x00,0x37,0x00,0x00,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14, -0x16,0x17,0x16,0x03,0x51,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e,0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4, -0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b,0x08,0x00,0x02,0x00,0xc3,0xff,0xe7,0x05,0x05,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x00,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15, -0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xe4,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x01,0x01,0x6a,0xff,0xe7,0x04,0x5e,0x04,0x19, -0x00,0x15,0x00,0x00,0x01,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x01,0x70,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00, -0x00,0x02,0x01,0x08,0xfd,0x6d,0x04,0xc0,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x00,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x8b,0x7b,0xb8,0x50,0xa8,0xdf,0x77, -0xb4,0x63,0x1d,0x0c,0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x01,0x20,0xfd,0x6d, -0x04,0xa7,0x04,0x19,0x00,0x25,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x01,0x20,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19, -0x53,0xb6,0xe0,0x44,0x43,0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x01,0x01,0x21,0xfd,0x6d,0x04,0xa6,0x04,0x19,0x00,0x21,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16, -0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x03,0x36,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f,0xa9,0x9c, -0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x3c,0xfd,0x6d,0x05,0x8c,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22, -0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0x8c,0xfa,0x6c,0x79,0x14,0x83,0x0e,0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b, -0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x01,0x01,0x05,0xff,0xe7,0x04,0xc3,0x07,0x62,0x00,0x31,0x00,0x00,0x01,0x10,0x12,0x33, -0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0xa9,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46, -0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1,0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d, -0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x50,0xfd,0x6d,0x06,0xdc,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15, -0x14,0x06,0x23,0x22,0x11,0x04,0xfc,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, -0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xfe,0x04,0x00,0x00,0x0e,0x00,0x00,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0xe4,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99, -0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e,0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x01,0x01,0xfd,0x6d,0x04,0xc6,0x04,0x19,0x00,0x24,0x00,0x00,0x01,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33, -0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x01,0x01,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, -0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0xf1,0x05,0xfa,0x00,0x22,0x00,0x00,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11,0x34,0x12,0x02,0x9f,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35, -0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x03,0x00,0x8b,0xff,0xe8,0x05,0x79,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33, -0x00,0x00,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33,0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x79,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76, -0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe,0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2, -0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83,0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x02,0xb1,0x00,0x00,0x03,0x52,0x06,0xd0,0x00,0x03,0x00,0x00,0x21,0x23,0x11,0x33,0x03,0x52,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x1f,0xff,0xe8,0x05,0xe4, -0x06,0xe8,0x00,0x20,0x00,0x2c,0x00,0x38,0x00,0x45,0x00,0x00,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x05,0xe4,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40, -0x2b,0x2d,0x3e,0x01,0x77,0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a, -0x72,0x00,0x00,0x02,0x00,0xb7,0x00,0x00,0x05,0x4d,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x00,0x01,0x10,0x21,0x23,0x11,0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27, -0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x4d,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02,0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b, -0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74,0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x05,0x2d,0x06,0xd0,0x00,0x12,0x00,0x00,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x05, -0x2d,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xf9,0xff,0xe9,0x05,0x0b,0x06,0xd0,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22, -0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x05,0x0b,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b,0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39, -0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x00,0x02,0x01,0x37,0xff,0xe8,0x04,0xcd,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04, -0xcd,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f,0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51, -0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x33,0xff,0xe8,0x05,0xd0,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x00,0x13,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, -0x33,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b,0x5b,0xfb,0x47,0x53,0x77, -0x76,0x54,0x54,0x76,0x77,0x00,0x00,0x04,0x01,0x1c,0xff,0xe8,0x04,0xe8,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16, -0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xad,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf, -0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x00,0x03,0x00,0x45,0xff,0xe9,0x05,0xbe, -0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36, -0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37,0x05,0xbe,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57, -0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86,0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0xff,0xff,0x00,0x00, -0xfd,0xff,0x03,0xbd,0xff,0xbb,0x02,0x26,0x0b,0x59,0x00,0x00,0x00,0x27,0x0b,0x5f,0x02,0x6d,0x00,0x00,0x00,0x07,0x0b,0x53,0x03,0x04,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5a,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00, -0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5b,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00,0xff,0xff,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x02,0x06,0x0b,0x66,0x00,0x00,0xff,0xff,0xfe,0xe6,0x05,0x77,0x01,0x1b,0x06,0x40,0x02,0x27, -0x0b,0x66,0xff,0x4a,0x00,0x00,0x00,0x07,0x0b,0x66,0x00,0xb4,0x00,0x00,0xff,0xff,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x02,0x06,0x0b,0x67,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x05,0xd5,0x02,0x26,0x0b,0x6a,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x05,0xd5, -0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x05,0xd5,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x05,0xd5,0x02,0x26,0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xf3,0x00,0x00,0x00,0x02, -0x00,0x6d,0xff,0xe8,0x01,0xcc,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x4d,0x40,0x2e,0x11,0x03,0x7e,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x15,0x91,0x14,0x0d,0x91,0x00,0x2f,0x14,0x01,0x20,0x00,0x50,0x00,0x80,0x00,0xb0,0x00,0xd0,0x00,0xe0,0x00,0x06,0x14,0x00,0x14,0x00,0x06,0x1b,0x91,0x0e,0x04,0x07,0x91,0x06,0x13,0x00,0x3f, -0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x6d,0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52, -0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52,0x02,0xa6,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x03,0xa4,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x00,0x02,0x00,0x5a,0x01,0x80,0x01,0x52,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x30,0x40,0x18,0x11,0x03,0xed,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x07, -0x96,0x06,0x0d,0x96,0x00,0x15,0x96,0x14,0x1b,0x96,0x0e,0x04,0x00,0x3f,0xed,0xd6,0xed,0xd6,0xed,0xd6,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x5a,0x68, -0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x68,0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x03,0x70,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x02,0xc4,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x00,0x00,0x01,0x00,0x5b,0x02,0xac,0x01,0xde,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07, -0x07,0x0f,0x03,0x7e,0x0a,0x06,0x91,0x07,0x00,0x91,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0xde,0x60,0x7b,0x7b,0x60,0xa7,0xdc,0xdc,0xa7,0x05,0x1a,0x06,0x85,0x60,0x60,0x85,0x06,0x98,0xdc,0xa7,0xa7,0xdc,0x00, -0x00,0x01,0x00,0x4e,0x03,0x90,0x01,0x5e,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07,0x07,0x0f,0x03,0xed,0x0a,0x06,0x96,0x07,0x00,0x96,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x5e,0x3f,0x49,0x49,0x3f, -0x77,0x99,0x95,0x7b,0x05,0x30,0x05,0x4b,0x3f,0x3f,0x4b,0x05,0x82,0x02,0x98,0x77,0x75,0x98,0x04,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x04,0xf2,0x05,0x9a,0x00,0x15,0x00,0x3b,0x40,0x1f,0x13,0x00,0x7e,0x0b,0x06,0x0b,0x06,0x0b,0x17,0x12,0x0e,0x7e,0x0f,0x0d,0x91,0x40,0x12,0x10,0x0f,0x12,0x91,0x2b,0x30,0x14,0x10,0x03,0x08,0x91, -0x03,0x0f,0x12,0x00,0x3f,0xd4,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xb5,0xb7,0x4c,0x3d,0x4f,0x3e,0x5f,0x61,0xfd,0x1a,0xa8, -0xa8,0x02,0xe6,0xa8,0x3f,0xf8,0xed,0x1f,0xa5,0x2c,0x86,0x89,0x02,0x8d,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0x2f,0x40,0x18,0x00,0x84,0x0a,0x06,0x0a,0x06,0x0a,0x1c,0x15,0x11,0x84,0x12,0x15,0x0d,0x95,0x18,0x0f,0x13,0x00,0x08,0xec,0x03,0x12,0x15,0x00,0x3f, -0xd4,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xb7,0xaf,0x4d,0x3d,0x4f,0x3f,0xbe,0xee,0x77,0xa5,0xa4,0xa4,0x04,0x77,0xd9,0x01, -0x5a,0xd4,0xd2,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x4e,0x01,0x40,0xb8,0x92,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0x29,0xfe,0x21,0x05,0x83,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x31,0x1f,0x17,0x7e,0x13,0x0a,0x18,0x03,0x7d,0x10,0x15,0x21,0x1a,0x18,0x1d,0x10,0x21,0x21,0x10,0x1d,0x18,0x1a,0x05,0x22,0x23, -0x00,0x14,0x21,0x15,0x91,0x1f,0x12,0x92,0x00,0x00,0x06,0x1f,0x1f,0x18,0x1e,0x1a,0x91,0x1b,0x03,0x0a,0x0d,0x92,0x06,0x18,0x12,0x00,0x3f,0xd4,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x10,0xc6,0xc4,0xe9,0x32, -0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x03,0xea,0xbf,0xda,0xfe,0xdf,0xea,0x76,0xaa,0x56,0x63,0xb7,0x63,0x96,0xbc,0xfe,0xa1,0x8c,0x01,0x8a,0xfd,0xfe,0xa8,0xfe,0x63,0x03,0xe3,0xfe, -0x62,0x03,0x02,0x01,0x73,0x04,0xd8,0xb6,0xce,0xf2,0x26,0x2e,0xb6,0x44,0x37,0xa0,0x87,0x01,0x1e,0x07,0x02,0x3f,0xfc,0xc5,0x05,0x02,0x98,0x98,0xfe,0xd1,0x28,0x00,0x00,0x01,0x00,0x2b,0xfe,0x21,0x04,0xe4,0x05,0x2f,0x00,0x29,0x00,0x57,0x40,0x2e,0x00,0x12,0x03,0x83,0x0e,0x14,0x29,0x12,0x0e,0x29,0x29,0x0e,0x12,0x03,0x2b,0x27, -0x15,0x84,0x24,0x22,0x09,0x20,0x29,0x15,0x21,0x95,0x23,0x11,0x96,0x00,0x00,0x06,0x27,0x26,0x23,0x0f,0x1b,0x19,0x95,0x1e,0x15,0x09,0x0b,0x95,0x06,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x32,0x01,0x2f,0xc4,0x33,0x33,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10, -0xe9,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x03,0x20,0xd2,0xf2,0xfe,0xb5,0xf0,0xb6,0x9a,0xa6,0xb0,0xab,0xe2,0xdb,0xd1,0x52,0x01, -0x80,0xfd,0xc1,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x03,0x2a,0x01,0xae,0x1c,0xe9,0xb3,0xce,0xfe,0xf9,0x51,0xa2,0x68,0xb2,0x94,0x9b,0xa0,0x33,0x02,0x14,0xfd,0xbf,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x33,0x00,0x00,0x01,0x00,0x66,0xff,0xe9,0x04,0x0b,0x05,0xb2,0x00,0x24, -0x00,0x4b,0x40,0x17,0x24,0x1a,0x18,0x01,0x20,0x0e,0x1a,0x01,0x0e,0x0e,0x01,0x1a,0x03,0x26,0x09,0x7d,0x15,0x20,0x23,0x91,0x1c,0x00,0x05,0xb8,0x01,0x05,0x40,0x0e,0x19,0x1a,0x24,0x1b,0x19,0x04,0x12,0x1c,0x04,0x0e,0x0c,0x91,0x12,0x13,0x00,0x3f,0xed,0x32,0x3f,0x12,0x17,0x39,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12, -0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x03,0x3c,0x0c,0x25,0x13,0x26,0x1f,0xd2,0xca,0xd4,0xac,0xb9,0xbb,0x5c, -0xb3,0x65,0xfe,0xfd,0xfe,0xd2,0x01,0x17,0xf4,0xfe,0x49,0x01,0xb7,0x93,0x9c,0x4f,0x53,0xbf,0x58,0xf8,0x03,0x40,0x8c,0x03,0x03,0x01,0x02,0x99,0x9b,0x7e,0x8c,0x5c,0xa6,0x29,0x23,0xdc,0xc3,0xc6,0xd8,0x02,0x04,0x01,0x23,0x2e,0x01,0x35,0x24,0x22,0xaa,0x30,0x28,0xab,0x00,0x01,0x00,0x26,0xfe,0x1d,0x03,0xc5,0x04,0x00,0x00,0x25, -0x00,0x4a,0x40,0x26,0x25,0x1b,0x19,0x00,0x1b,0x00,0x1b,0x00,0x16,0x21,0x10,0x10,0x27,0x09,0x84,0x16,0x21,0x24,0x95,0x1d,0x06,0x96,0x00,0x1c,0x25,0x1b,0x03,0x1d,0x19,0x19,0x13,0x1d,0x10,0x0f,0x0c,0x95,0x13,0x1c,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f, -0xc4,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x02,0xf6,0x0c,0x25,0x13,0x26,0x1f,0xc3,0xde,0xe3,0xa2,0x5e,0xb8,0x5e, -0x67,0xaa,0x63,0xf9,0xfe,0xce,0x01,0x1e,0xee,0xfe,0x56,0x01,0x8f,0x9a,0xaa,0x4e,0x53,0xbf,0x58,0xf0,0x01,0x8e,0x8c,0x03,0x03,0x01,0x02,0xa9,0x97,0x83,0xa0,0x34,0x2e,0x9c,0x2d,0x24,0xe3,0xca,0xc5,0xe3,0x02,0x05,0x01,0x23,0x2e,0x01,0x36,0x24,0x22,0x9b,0x30,0x28,0xbe,0x00,0x00,0x02,0x00,0x51,0xff,0xe6,0x03,0x95,0x05,0x9a, -0x00,0x12,0x00,0x1e,0x00,0x35,0x40,0x1a,0x13,0x12,0x01,0x7e,0x0f,0x08,0x0f,0x08,0x0f,0x20,0x1e,0x10,0x11,0x10,0x91,0x17,0x12,0x1e,0x1e,0x04,0x12,0x03,0x0b,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x01,0x2f,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x01,0x11,0x14,0x06,0x23, -0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x03,0x95,0xa4,0xbc,0x23,0x65,0x21,0x1f,0x61,0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x05,0x9a,0xfb,0xdc,0xde,0xb2,0x0f,0x10,0xa5,0x11,0x1b, -0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0x00,0x02,0x00,0x21,0xfe,0x1e,0x03,0x50,0x04,0x00,0x00,0x12,0x00,0x1d,0x00,0x30,0x40,0x18,0x13,0x11,0x00,0x84,0x0e,0x07,0x0e,0x07,0x0e,0x1f,0x1d,0x10,0x17,0x11,0x0f,0x10,0x1d,0x96,0x0f,0x15,0x0a,0x95,0x03,0x1c,0x00,0x3f, -0xed,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x03,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75, -0x02,0x85,0xaa,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22,0xfd,0x8e,0x00,0x03,0x00,0x51,0xff,0xe6,0x04,0xa1,0x05,0x9a,0x00,0x16,0x00,0x22,0x00,0x26,0x00,0x54,0x40,0x2c,0x26,0x23,0x24,0x25, -0x01,0x04,0x7e,0x13,0x17,0x16,0x13,0x23,0x03,0x25,0x13,0x0c,0x0c,0x13,0x25,0x03,0x23,0x05,0x28,0x22,0x14,0x25,0x12,0x26,0x04,0x14,0x91,0x15,0x01,0x1b,0x16,0x22,0x22,0x08,0x16,0x03,0x0f,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xfd,0x32,0xcc,0x3f,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, -0x2f,0x2f,0x11,0x33,0x33,0x10,0xe9,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x05,0x03,0x23,0x13,0x03,0x95,0xf1,0xf1,0xa6,0xba,0x23,0x65,0x21,0x1f,0x61, -0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x03,0x99,0xa6,0x7b,0x75,0x05,0x9a,0xfc,0x61,0x96,0x0e,0xc7,0xaa,0x0f,0x10,0xa5,0x11,0x1b,0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0xf8,0xfe,0xfc,0x01,0x04,0x00,0x00,0x03, -0x00,0x21,0xfe,0x1e,0x04,0x72,0x04,0x00,0x00,0x16,0x00,0x21,0x00,0x25,0x00,0x4b,0x40,0x26,0x23,0x24,0x25,0x22,0x07,0x24,0x14,0x22,0x22,0x14,0x24,0x07,0x04,0x27,0x21,0x10,0x13,0x16,0x84,0x17,0x11,0x0e,0x1b,0x11,0x0f,0x24,0x24,0x03,0x13,0x10,0x21,0x25,0x16,0x0f,0x15,0x0a,0x03,0x1c,0x00,0x3f,0xcd,0x3f,0x33,0xcc,0xcd,0x32, -0x32,0x12,0x39,0x2f,0x3f,0x33,0x01,0x2f,0x33,0x33,0xe9,0x32,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x11,0x21,0x15,0x21,0x27,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x05,0x03,0x23, -0x13,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75,0x02,0x85,0xaa,0x01,0x05,0xfe,0xfb,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x03,0xa3,0xa6,0x7b,0x75,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x84,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22, -0xfd,0x8e,0xdc,0xfe,0xfc,0x01,0x04,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x03,0x00,0x00,0x0b,0x02,0x05,0x84,0x07,0x05,0x95,0x02,0x02,0x07,0x01,0x95,0x08,0x07,0x15,0x00,0x3f,0xdd,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xc6,0x31,0x30,0x01,0x21,0x11,0x21, -0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45,0x00,0x21,0x00,0x34,0x40,0x1b,0x1b,0x84,0x06,0x11,0x06,0x11,0x21,0x23,0x16,0x84,0x0b,0x21,0x11,0x13,0x95,0x16,0x0b,0x1b,0x06,0x04,0x0e,0x1e, -0x00,0x03,0x95,0x1e,0x16,0x00,0x3f,0xfd,0xc6,0x10,0xd4,0x17,0x39,0xfd,0xc6,0x01,0x2f,0xd4,0xe9,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x6b,0x33, -0xa3,0x4a,0x73,0x68,0x71,0xfe,0xef,0x7c,0xd7,0xa8,0xa0,0x4a,0x5f,0x93,0x61,0x75,0x77,0x01,0x01,0x87,0xd7,0xb9,0x43,0xa8,0x22,0xd7,0x29,0x38,0x54,0x44,0x46,0x57,0x87,0x91,0x69,0x7e,0x9b,0x26,0xa5,0x42,0x4e,0x3e,0x4d,0x59,0x7b,0x8d,0x67,0x88,0xa6,0x28,0x16,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x08,0xf1,0x05,0x9a,0x00,0x17, -0x00,0x21,0x00,0x2b,0x00,0x3f,0x40,0x1f,0x17,0x0c,0x1c,0x03,0x05,0x26,0x13,0x00,0x00,0x05,0x13,0x13,0x2d,0x05,0x26,0x1c,0x16,0x03,0x91,0x2b,0x21,0x21,0x04,0x1c,0x11,0x06,0x03,0x14,0x01,0x04,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x12,0x39, -0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0x6f,0x16,0x06, -0x0b,0x02,0x04,0x15,0x09,0x01,0x77,0xae,0x02,0x28,0xba,0x98,0xfd,0xa0,0x60,0xfe,0xaa,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x05,0xd0,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x47,0x3b,0x12,0x23,0x0d,0x0d,0x40,0x16,0x03,0xd3,0xfa,0x66,0x01,0x92,0xfe,0xf2,0x01,0xa5,0x02,0x63, -0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x02,0x63,0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0xfc,0x04,0x18,0x00,0x2d,0x00,0x38,0x00,0x43,0x00,0x5d,0x40,0x30,0x09,0x09,0x00,0x32,0xef,0x39,0x23,0x19,0x39,0x2e,0x11,0x84,0x12,0x04,0x12,0x39,0x12,0x39,0x12,0x45,0x3d,0x83,0x27,0x20,0x09,0x27, -0x27,0x06,0x25,0x95,0x2a,0x2e,0x39,0x96,0x04,0x23,0x23,0x0d,0x2a,0x0f,0x35,0x40,0x95,0x16,0x1d,0x16,0x12,0x15,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x33,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x31, -0x30,0x01,0x36,0x36,0x37,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x05,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x25,0x07,0x06,0x06,0x15,0x14, -0x16,0x33,0x32,0x36,0x35,0x03,0x7b,0x1f,0x5b,0x30,0x01,0x33,0xcd,0x3f,0x8f,0x1f,0x3d,0x87,0x52,0x9f,0xa9,0xa4,0x04,0x6a,0xd1,0x78,0x91,0x26,0x04,0x32,0xa9,0x6b,0x94,0xb2,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0xb9,0xa8,0x01,0xdd,0xf7,0x82,0x64,0x73,0x51,0x78,0xa1,0xfd,0x87,0xf7,0x82,0x64,0x6d,0x57,0x7a,0x9f,0x02, -0x2d,0x12,0x18,0x07,0x2b,0x01,0x05,0x49,0x35,0x9e,0x39,0x31,0xbe,0xc0,0xfd,0x66,0xa0,0xb8,0x5b,0x61,0x5a,0x62,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xc3,0xbb,0x94,0x22,0x12,0x5f,0x57,0x4d,0x5d,0xae,0x80,0x66,0x22,0x12,0x5f,0x57,0x50,0x5a,0xae,0x80,0x00,0x00,0x03,0x00,0x16,0xff,0xe8,0x08,0xdb,0x05,0xb2, -0x00,0x15,0x00,0x21,0x00,0x2b,0x00,0x3b,0x40,0x1f,0x0d,0x7d,0x26,0x06,0x1b,0x1b,0x00,0x2d,0x21,0x7f,0x07,0x00,0x14,0x91,0x06,0x2b,0x2b,0x01,0x15,0x12,0x18,0x91,0x10,0x13,0x1e,0x91,0x0a,0x04,0x26,0x01,0x03,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x2f,0xe9,0x11,0x12,0x39,0x2f,0x39,0x39, -0xe9,0x31,0x30,0x33,0x01,0x33,0x13,0x16,0x17,0x17,0x33,0x36,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x24,0x27,0x21,0x03,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x07,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x9f,0x0b,0x08,0x0c,0x04,0x21,0x01,0x60,0x01,0x1a,0x01,0x28,0x01, -0x6c,0xfe,0x8c,0xfe,0xc8,0xeb,0xfe,0xbd,0x42,0xfd,0xa1,0x8f,0x03,0x6e,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xb6,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x62,0x1d,0x19,0x2c,0xdf,0x01,0x39,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0xed,0xbd,0xfe,0x6e,0x01,0xc1,0xfe,0xbe,0x01,0x34, -0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xa2,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0xb6,0x04,0x18,0x00,0x20,0x00,0x2c,0x00,0x37,0x00,0x52,0x40,0x2c,0x00,0x14,0x2c,0x84,0x30,0x0a,0x30,0x1b,0x83,0x26,0x30,0x26,0x30,0x26,0x39,0x34,0x83,0x0e,0x07,0x23,0x95,0x1e, -0x16,0x29,0x95,0x18,0x10,0x0e,0x0c,0x95,0x11,0x30,0x96,0x14,0x11,0x00,0x0a,0x0a,0x11,0x10,0x37,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x39,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x39,0x39,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22, -0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x03,0x27,0x02,0x45,0xc8,0x78,0x92,0xb4,0x01,0x52,0x01,0x33,0xd3,0xba, -0x94,0x97,0xc5,0x8d,0x98,0x18,0x04,0x44,0xd3,0x6a,0xe0,0xfa,0xfe,0xf2,0xe4,0x83,0xe0,0x22,0xb4,0x99,0x9c,0xa2,0xa2,0x9c,0x9c,0xb1,0xfe,0xc2,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xcd,0x73,0x72,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0x64,0x4b,0x61,0x4e,0xfe,0xe4,0xf8,0xf3,0xfe,0xd7,0x75,0xed,0xd8,0xcf,0xbd,0xbe, -0xd2,0xe1,0xa1,0xfe,0x66,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0xff,0xe8,0x07,0x3a,0x05,0x9a,0x00,0x13,0x00,0x1d,0x00,0x30,0x40,0x18,0x02,0x7e,0x18,0x08,0x0c,0x01,0x01,0x1f,0x0c,0x0a,0x91,0x1d,0x1d,0x0b,0x18,0x01,0x0d,0x03,0x0b,0x12,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xcd,0x12, -0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0xe9,0x31,0x30,0x01,0x11,0x33,0x11,0x10,0x21,0x22,0x26,0x27,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x16,0x16,0x33,0x20,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x06,0x92,0xa8,0xfd,0xdf,0x34,0x59,0x34,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0xf5,0x12,0x29, -0x11,0x01,0x67,0xfc,0xf7,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x02,0x29,0x03,0x71,0xfc,0xaa,0xfd,0xa4,0x0a,0x0e,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfa,0xea,0x03,0x02,0x01,0xaa,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x26,0x00,0x31,0x00,0x50,0x40,0x2b, -0x1d,0x84,0x2a,0x12,0x08,0x2a,0x02,0x00,0x84,0x24,0x2a,0x24,0x2a,0x24,0x33,0x2e,0x83,0x18,0x0f,0x25,0x0f,0x18,0x16,0x95,0x1b,0x2a,0x96,0x12,0x12,0x1b,0x0f,0x08,0x31,0x95,0x0c,0x16,0x02,0x21,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x39,0x2f,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe1,0x12, -0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xe9,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33, -0x06,0x1e,0x9f,0x04,0x63,0xd0,0x75,0x98,0x2f,0x03,0x3f,0xc0,0x6a,0x99,0xad,0x01,0x52,0x01,0x33,0x6b,0x68,0xba,0x94,0x97,0xc5,0x01,0x69,0x7b,0x74,0x74,0x94,0xa4,0xfc,0x27,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa2,0xba,0x57,0x65,0x5d,0x5f,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x11,0x75,0x7f,0x7e,0xa8,0x60,0xfe,0x82,0xf4,0x92,0xa2,0xb2, -0x8e,0x02,0x4e,0xfc,0x72,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x10,0x00,0x1a,0x00,0x32,0x40,0x18,0x15,0x05,0x00,0x0a,0x0b,0x0b,0x1c,0x0c,0x06,0x00,0x0f,0x91,0x1a,0x1a,0x01,0x10,0x05,0x0d,0x12,0x0a,0x03,0x15,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0x33,0x33,0x12, -0x39,0x2f,0xed,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01,0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x98,0xfd,0xa0,0x8f, -0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x66,0x01,0x92,0xfe,0x6e,0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1b,0x00,0x26,0x00,0x45,0x40,0x24,0x0c,0x04,0x84,0x17,0x0e,0x1f, -0x1f,0x14,0x0a,0x0b,0x0b,0x28,0x23,0x83,0x1b,0x14,0x1f,0x96,0x05,0x17,0x17,0x02,0x0e,0x26,0x95,0x11,0x16,0x0c,0x15,0x0a,0x0f,0x1b,0x19,0x95,0x02,0x10,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xc4,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xe9,0x32,0x31,0x30,0x13,0x36,0x33, -0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0xbe,0x97,0xc5,0x01,0x69,0x04,0x03,0x16,0x11,0xdc,0xad,0xfe,0x4a,0xa5,0x04,0x6a,0xd1,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x01,0x87, -0x9a,0xf7,0x8f,0x57,0x6e,0x56,0x03,0xb8,0x60,0xfe,0x82,0xfe,0x87,0x24,0x51,0x2a,0x02,0x40,0xfc,0x00,0xa0,0xb8,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xfd,0x62,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x03,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x22,0x00,0x3b,0x40,0x1c,0x00,0x1d, -0x10,0x1d,0x05,0x0d,0x0a,0x0b,0x0b,0x24,0x05,0x22,0x0f,0x03,0x91,0x0c,0x08,0x1c,0x14,0x14,0x04,0x10,0x0a,0x06,0x03,0x01,0x04,0x12,0x00,0x3f,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x11,0x33,0x2f,0x33,0xc6,0x12,0x39,0x39,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01, -0x21,0x13,0x33,0x03,0x33,0x15,0x21,0x01,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x21,0x05,0x11,0xb9,0xe5,0xfe,0x3a,0xdc,0xbb,0x02,0x26,0xae,0x01,0x02,0x01,0x94,0xef,0xb5,0xf9,0xcd,0xfe,0xfb,0xfc,0x9b,0x05,0x0b,0x07,0x93,0x01,0x57,0x93,0x05,0x0c,0x05,0x02,0x0d,0x14,0x0b,0x04, -0x10,0x08,0x70,0xfe,0xdc,0x02,0x64,0xfd,0x9c,0x05,0x9a,0xfd,0x61,0x02,0x9f,0xfd,0x61,0x97,0x02,0x88,0x1f,0x30,0x11,0xfe,0x6f,0x01,0x91,0x0f,0x30,0x21,0xfc,0x3d,0x36,0x49,0x18,0x51,0x16,0x01,0x3b,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1d,0x00,0x24,0x00,0x2f,0x00,0x4d,0x40,0x28,0x1a,0x17,0x18,0x18, -0x31,0x1d,0x15,0x1f,0x84,0x0a,0x01,0x2f,0x28,0x83,0x0f,0x07,0x17,0x0f,0x0f,0x0d,0x95,0x12,0x1f,0x1c,0x2f,0x96,0x19,0x15,0x20,0x0a,0x0a,0x12,0x10,0x01,0x2b,0x95,0x04,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe9,0x2f,0x33,0x33,0xe9,0x32,0x32, -0x11,0x33,0x2f,0x33,0xc6,0x31,0x30,0x21,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x24,0x21,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x13,0x23,0x15,0x33,0x36,0x36,0x37,0x27,0x20,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x02,0xdf,0x04,0x6a,0xd1,0x99,0xad,0x01,0x29, -0x01,0x5c,0x69,0x6a,0xba,0x94,0x97,0xc5,0x01,0x69,0x7e,0x8c,0xad,0x9f,0x77,0xaf,0xdf,0x4b,0x4c,0x04,0x05,0x20,0x11,0xf3,0xfe,0xf6,0xbe,0x6e,0x56,0x7f,0x9a,0xa0,0xb8,0xa1,0x87,0xbe,0xbf,0x83,0x7e,0x7e,0xa8,0x60,0xfe,0x82,0x0d,0x01,0x73,0xfe,0x8d,0x83,0xfd,0xf6,0x02,0x0a,0xf1,0x2e,0x64,0x2e,0x31,0x76,0x78,0x4b,0x5f,0xa9, -0x8f,0x60,0x00,0x02,0x00,0x16,0xfe,0x1e,0x07,0x24,0x05,0x9a,0x00,0x1c,0x00,0x26,0x00,0x42,0x40,0x22,0x21,0x00,0x0c,0x05,0x19,0x03,0x0b,0x13,0x13,0x00,0x0a,0x0b,0x0b,0x28,0x00,0x1b,0x91,0x05,0x1c,0x26,0x26,0x01,0x19,0x1c,0x12,0x15,0x91,0x0f,0x1c,0x0a,0x03,0x21,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0xed,0x3f,0x33,0x12,0x39, -0x2f,0x12,0x39,0xed,0x01,0x2f,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01, -0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xe5,0x5f,0xb6,0x8c,0x1e,0x30,0x1d,0x31,0x30,0x3a,0x60,0x22,0x48,0xa2,0xfd,0xa0,0x8f,0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x53,0xfd,0xd2,0x05,0x08,0x9d,0x12,0x56,0x50,0xa4,0x01,0x92,0xfe,0x6e, -0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xfe,0x1e,0x05,0x3a,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x56,0x40,0x2d,0x28,0x13,0x84,0x25,0x0a,0x1b,0x25,0x1a,0x20,0x25,0x20,0x25,0x07,0x19,0x1a,0x1a,0x32,0x2d,0x83,0x07,0x0e,0x0e,0x07,0x22,0x95,0x1d,0x1c,0x19,0x0f,0x0e,0x0c,0x95,0x11,0x29, -0x96,0x14,0x0a,0x0a,0x11,0x10,0x00,0x30,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0xed,0x10,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xe9,0x33,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22, -0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x26,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0xe4,0x04,0x36,0xa1,0x69,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0x01,0x69,0x04,0x03,0x18,0x10,0xdb,0xad,0xfe,0x0a,0x7e,0xe4, -0x41,0x2a,0x34,0x2d,0x7f,0x3d,0x50,0x9f,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa8,0x5d,0x63,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0xfe,0x8c,0x24,0x51,0x2a,0x02,0x3b,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x70,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x68,0xff,0xe8,0x04,0x96, -0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x7d,0x05,0x21,0x05,0x21,0x05,0x23,0x0a,0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x91,0x13,0x13,0x0a,0x08,0x91,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37, -0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x00,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x68,0x9d,0xd9,0xea,0x01,0x1e,0xfe,0xcc,0xf6,0xb9,0x9b,0x87,0xcb,0x01,0x3e,0x01,0x9e,0xfe,0x8f,0xfe,0xcf,0xed,0x9f,0x01,0x27,0x3a,0x29,0x2a,0x38,0x38,0x2a, -0x29,0x3a,0xdf,0x60,0x01,0x38,0x01,0x05,0x01,0x14,0x01,0x4a,0x56,0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xbf,0xfe,0x77,0x54,0x02,0xc2,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28,0x00,0x00,0x02,0x00,0x50,0xff,0xe8,0x03,0x52,0x04,0x18,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x83,0x05,0x21,0x05,0x21,0x05,0x23,0x0a, -0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x95,0x13,0x16,0x0a,0x08,0x95,0x0d,0x10,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x27,0x12, -0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x52,0x77,0x85,0x9e,0xbe,0xca,0x9c,0x81,0x73,0x69,0x85,0xf1,0x01,0x23,0xfe,0xf3,0xdb,0xa1,0x77,0xa1,0x3a,0x29,0x2a,0x38,0x38,0x2a,0x29,0x3a,0xcb,0x59,0xd0,0xb4,0xb6,0xe2,0x50,0xa8,0x32,0xfe,0xcd,0xfd,0xe4,0xfe,0xe4,0x47,0x01,0xfd,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28, -0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x46,0x40,0x23,0x17,0x18,0x00,0x19,0x10,0x10,0x07,0x01,0x00,0x00,0x1b,0x12,0x0e,0x06,0x7e,0x0b,0x09,0x07,0x11,0x09,0x92,0x0e,0x04,0x19,0x12,0x03,0x0a,0x0a,0x07,0x17,0x0c,0x03,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0x33,0xed,0x32, -0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x39,0x10,0xc6,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c, -0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x43,0x40,0x22,0x09,0x09,0x0d,0x0e,0x11,0x0e,0x10,0x10,0x16,0x0f,0x0b,0x07,0x14,0x84,0x04,0x02,0x00,0x0d,0x0f,0x0a,0x02,0x96, -0x07,0x12,0x0f,0x0b,0x03,0x03,0x03,0x05,0x00,0x11,0x00,0x15,0x00,0x3f,0x32,0x3f,0x39,0x2f,0x17,0x39,0x33,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x32,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x39,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11, -0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x02,0x00,0xe6,0xfe,0x3c,0x04,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0xfd,0xee,0x01,0xec,0xfe,0x14,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x41,0x40,0x21,0x0a,0x0c,0x13,0x0c,0x13,0x0c,0x08,0x09,0x09,0x10, -0x0f,0x0f,0x1b,0x03,0x19,0x7e,0x00,0x13,0x12,0x0d,0x0c,0x0c,0x03,0x0a,0x17,0x12,0x05,0x08,0x01,0x03,0x10,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xe1,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01, -0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79, -0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x40,0x40,0x21,0x02,0x13,0x84,0x14,0x0e,0x08,0x0e,0x08,0x05,0x14,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x0e,0x09,0x08,0x08,0x02,0x06,0x11,0x0e,0x05,0x04,0x0c,0x14,0x15,0x04,0x0f,0x00,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x17,0x39,0x11, -0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x32,0x31,0x30,0x13,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0xa6,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x05,0xec,0xfc, -0x3f,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2,0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x21,0x00,0x54,0x40,0x2b,0x12,0x14,0x1b,0x14,0x1b,0x14,0x10,0x11,0x11,0x18,0x17,0x17,0x23,0x0b,0x07,0x21,0x7e,0x04,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x15,0x14,0x1b,0x1a,0x1a, -0x1f,0x12,0x0b,0x14,0x05,0x03,0x03,0x10,0x05,0x03,0x18,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11, -0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02, -0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79,0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1c,0x00,0x59,0x40,0x2e,0x0d,0x0f,0x16,0x0f,0x16,0x0f,0x0b,0x0c,0x0c,0x13,0x12,0x12,0x1e,0x09,0x05,0x1a,0x84,0x02,0x00,0x1b,0x10,0x0f,0x16,0x15,0x15,0x18,0x0d,0x09, -0x0f,0x05,0x0b,0x1b,0x08,0x00,0x96,0x05,0x01,0x01,0x03,0x13,0x1b,0x15,0x0b,0x0f,0x03,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x33, -0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0x11,0x27,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2, -0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x04,0xb2,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0x3b,0x05,0x9a,0x00,0x09,0x00,0x2a,0x40,0x16,0x01,0x7e,0x04,0x02,0x04,0x02,0x0b,0x08,0x7e,0x06,0x06,0x05,0x09,0x00,0x04,0x04,0x07,0x03,0x01,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f, -0x2f,0xe1,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x07,0x11,0x33,0x11,0x01,0xfc,0x02,0x3f,0xfd,0x18,0x97,0xa9,0x03,0x18,0xfd,0x80,0x98,0x02,0xa8,0x2f,0x03,0x21,0xfd,0x4d,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xdc,0x05,0xed,0x00,0x07,0x00,0x2b,0x40,0x16,0x06,0x84,0x04,0x00,0x84,0x02,0x04,0x02,0x04,0x02,0x08,0x09,0x04,0x03, -0x07,0x00,0x04,0x02,0x05,0x00,0x02,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x11,0x23,0x11,0x07,0x11,0x33,0x11,0x01,0xdc,0xa4,0x92,0xa4,0x03,0x43,0xfc,0xbd,0x02,0xd5,0x2e,0x03,0x46,0xfd,0x26,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d, -0x00,0x2d,0x40,0x16,0x09,0x0c,0x09,0x0c,0x0f,0x0b,0x7e,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x03,0x00,0x05,0x03,0x0b,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x15,0xbc,0xaa,0xaa, -0xa8,0xe8,0xe8,0x02,0x40,0x04,0x9c,0x85,0x79,0x79,0x85,0xfb,0xfc,0x98,0x00,0x01,0x00,0x1e,0x00,0x00,0x01,0xd2,0x05,0xec,0x00,0x0b,0x00,0x2c,0x40,0x15,0x09,0x09,0x07,0x0a,0x84,0x04,0x02,0x00,0x00,0x0c,0x0d,0x0a,0x02,0x96,0x07,0x03,0x03,0x05,0x00,0x00,0x15,0x00,0x3f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f, -0xc6,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xa6,0x88,0x88,0xa4,0x88,0x88,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfb,0x4e,0x00,0x03,0x00,0x00,0xff,0xe8,0x06,0x08,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3f,0x40,0x20,0x0a,0x0a,0x08,0x0b,0x7d,0x12,0x1f,0x1f,0x21,0x18, -0x19,0x7d,0x02,0x00,0x11,0x19,0x0b,0x11,0x91,0x18,0x08,0x02,0x02,0x05,0x1c,0x91,0x0e,0x13,0x15,0x91,0x05,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x35,0x33,0x12,0x00,0x21,0x20,0x00,0x13,0x33,0x15,0x23,0x02, -0x00,0x21,0x20,0x00,0x03,0x25,0x26,0x02,0x23,0x22,0x00,0x07,0x15,0x16,0x00,0x33,0x32,0x00,0x37,0x61,0x14,0x01,0x7a,0x01,0x27,0x01,0x1e,0x01,0x5d,0x17,0x60,0x62,0x16,0xfe,0x91,0xfe,0xdd,0xfe,0xdc,0xfe,0x9a,0x14,0x04,0x97,0x15,0xfe,0xda,0xd3,0xfe,0xee,0x14,0x14,0x01,0x0f,0xca,0xdf,0x01,0x05,0x15,0x02,0x7e,0x9b,0x01,0x2c, -0x01,0x6d,0xfe,0x9e,0xfe,0xc9,0x9b,0xfe,0xd0,0xfe,0x9a,0x01,0x69,0x01,0x2d,0x9b,0xf9,0x01,0x08,0xfe,0xea,0xeb,0x9b,0xe6,0xfe,0xe7,0x01,0x09,0xf6,0x00,0x00,0x03,0x00,0x00,0xff,0xe8,0x04,0xb0,0x04,0x18,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3b,0x40,0x1e,0x08,0x08,0x07,0x0a,0x83,0x19,0x18,0x1f,0x12,0x83,0x01,0x00,0x10,0x12, -0x0a,0x11,0x95,0x1f,0x07,0x00,0x00,0x04,0x15,0x95,0x0d,0x16,0x1c,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x00,0x23,0x22,0x00,0x27,0x23,0x21,0x16,0x16, -0x33,0x32,0x36,0x37,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x66,0x1e,0x01,0x10,0xd6,0xce,0xfd,0x16,0x65,0x62,0x10,0xfe,0xf2,0xde,0xdc,0xfe,0xf9,0x0e,0x61,0x01,0x0a,0x0c,0xb1,0x97,0x96,0xa5,0x0d,0x04,0x15,0xa3,0x8c,0x87,0xb0,0x19,0x02,0x5b,0xd0,0xed,0xec,0xd1,0x8b,0xe1,0xfe,0xf9,0x01,0x04,0xe4,0xa4,0xba,0xb2,0xac,0x8c,0x95, -0x9d,0xa0,0x92,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x06,0xcb,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x2c,0x00,0x44,0x40,0x25,0x00,0x2b,0x22,0x03,0x11,0x0b,0x7d,0x1b,0x06,0x7f,0x25,0x1b,0x25,0x1b,0x25,0x2e,0x21,0x7d,0x11,0x1e,0x91,0x14,0x04,0x22,0x92,0x09,0x09,0x03,0x18,0x91,0x0e,0x13,0x00,0x28,0x92,0x03,0x04,0x00,0x3f,0xed, -0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x17,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x15,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x25,0x36,0x36,0x35, -0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x04,0xda,0x26,0x7c,0x55,0x73,0x87,0xa0,0x83,0x02,0xfe,0x8e,0xfe,0xc6,0xfe,0xd0,0xfe,0x90,0x01,0x78,0x01,0x40,0x01,0x14,0xfc,0xe4,0x01,0x11,0xdf,0xef,0x01,0x0d,0xfe,0xfd,0xed,0xe8,0xfe,0xec,0x04,0x89,0x47,0x59,0x39,0x37,0x31,0x4e,0x19,0x4c,0x05,0x04,0x52,0x5c,0x9d,0x84,0x95,0xcd,0x11, -0x1f,0x20,0xfe,0xa8,0xfe,0x61,0x01,0x97,0x01,0x3d,0x01,0x59,0x01,0x9d,0xfc,0x1a,0xfe,0xb3,0x01,0x40,0x01,0x09,0x01,0x17,0x01,0x3b,0xfe,0xac,0xfb,0xd3,0x13,0x7e,0x57,0x4f,0x56,0x4a,0x42,0x71,0x00,0x03,0x00,0x60,0xff,0xe8,0x05,0x4b,0x04,0x18,0x00,0x13,0x00,0x1f,0x00,0x2a,0x00,0x45,0xb7,0x20,0x29,0x04,0x03,0x0d,0x84,0x19, -0x0a,0xb8,0x01,0x03,0x40,0x1b,0x23,0x19,0x23,0x19,0x23,0x2c,0x1f,0x83,0x13,0x20,0x96,0x0d,0x0d,0x07,0x16,0x95,0x10,0x16,0x04,0x26,0x96,0x07,0x0f,0x1c,0x95,0x02,0x10,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x17,0x39,0x31,0x30,0x12,0x00,0x33, -0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x00,0x23,0x22,0x00,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x60,0x01,0x1b,0xef,0xc4,0x7a,0x22,0x61,0x3c,0x6a,0x7a,0x8e,0x6f,0x16,0xfe,0xef,0xd5,0xe3,0xfe,0xf1,0xa8,0xba,0x9c,0xa1, -0xa9,0xa8,0xa2,0x9f,0xb7,0x03,0x45,0x39,0x40,0x34,0x31,0x23,0x33,0x14,0x4a,0x02,0xef,0x01,0x29,0x68,0x2f,0x39,0x8d,0x79,0x79,0xb8,0x15,0xe0,0xfe,0xfc,0x01,0x24,0xe8,0xa9,0xd9,0xcf,0xbd,0xbf,0xd1,0xe1,0xb3,0x4c,0x19,0x67,0x45,0x40,0x55,0x29,0x1f,0x70,0x00,0x03,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x00,0x19,0x00,0x25, -0x00,0x31,0x00,0x3f,0x40,0x22,0x00,0x0d,0x25,0x7d,0x2b,0x2b,0x07,0x13,0x7d,0x1f,0x1f,0x33,0x31,0x7d,0x07,0x1c,0x91,0x16,0x13,0x22,0x91,0x10,0x04,0x0d,0x00,0x04,0x2e,0x91,0x0a,0x04,0x28,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39, -0x39,0x31,0x30,0x01,0x0e,0x02,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x36,0x24,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x26,0x26,0x36,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x05,0x50,0x1e,0xb0,0xef,0x95,0xfe,0xcf,0xfe,0x91,0x01,0x77, -0x01,0x41,0xd1,0x01,0x2c,0x43,0x42,0x01,0x39,0xe2,0x01,0x28,0x01,0x6c,0xfe,0x8c,0xfe,0xc8,0x93,0xec,0xae,0x3d,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfb,0x63,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x01,0x4a,0x54,0xb2,0x5c,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xc5,0x9e,0x9a, -0xc9,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x5d,0xb1,0xcb,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xfe,0xf6,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3f,0x40,0x22,0x00,0x0c, -0x23,0x83,0x29,0x29,0x06,0x12,0x83,0x1d,0x1d,0x31,0x2f,0x83,0x06,0x1a,0x95,0x15,0x16,0x20,0x95,0x0f,0x10,0x0c,0x00,0x03,0x2c,0x95,0x09,0x10,0x26,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39,0x39,0x31,0x30,0x25,0x06,0x06,0x23,0x22, -0x00,0x35,0x10,0x00,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x04,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0xf9,0x2d,0xdb,0x9f,0xe4,0xfe,0xf2,0x01,0x19,0xf1,0x92,0xd7,0x2e,0x27,0xe6,0xa4,0xe6,0x01,0x00,0xfe, -0xeb,0xe9,0x98,0xde,0x2c,0xbb,0x9b,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xfc,0xb8,0xba,0x9c,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xc9,0x60,0x81,0x01,0x1f,0xed,0x01,0x01,0x01,0x23,0x75,0x6b,0x5b,0x85,0xfe,0xe5,0xf9,0xf5,0xfe,0xd9,0x81,0xd9,0xd0,0xcf,0xbd,0xbf,0xd1,0xda,0xbb,0xb5,0xd2,0xcf,0xbd,0xbf,0xd1,0xda,0xba,0x00,0x02,0x00,0x19, -0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x47,0x40,0x24,0x0f,0x7d,0x18,0x18,0x06,0x1c,0x14,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x00,0x91,0x14,0x04,0x08,0x92,0x09,0x01,0x09,0x14,0x09,0x14,0x09,0x06,0x13,0x91,0x0b,0x03,0x06,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32, -0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x04,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0x01,0x0d,0xfe,0xf3,0xa8,0xa3,0xa3,0x01,0x8a,0xe1,0x01,0x02,0xfe,0xe8,0xf0,0xbd, -0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0x9d,0x85,0xfc,0xfc,0x85,0x04,0x19,0xe2,0xca,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x1e,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x19,0x00,0x26,0x00,0x49,0x40,0x27,0x0d,0x83,0x20,0x20,0x19,0x28,0x16,0x16,0x14,0x06,0x18,0x84,0x03,0x01,0x19,0x00,0x16,0x96, -0x03,0x15,0x15,0x10,0x19,0x1b,0x12,0x1d,0x95,0x2f,0x10,0x01,0x10,0x16,0x06,0x23,0x95,0x0a,0x10,0x04,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xf9,0x32,0x32,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33, -0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x88,0x88,0xa4,0x04,0x3f,0xaf,0x74,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x4b,0xfe,0xb5,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xfe,0xdd,0x86,0x04,0x9d,0xb4,0x68, -0x64,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xcf,0x86,0xb4,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x05,0x31,0x05,0x9a,0x00,0x18,0x00,0x20,0x00,0x39,0x40,0x1d,0x15,0x7d,0x1e,0x1e,0x02,0x22,0x07,0x7e,0x0c,0x1a,0x01,0x7e,0x10,0x02,0x03,0x00,0x91,0x10,0x1a,0x09,0x1a,0x09, -0x02,0x19,0x91,0x11,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35, -0x10,0x21,0x02,0x6c,0xa8,0x5c,0x51,0x59,0x14,0x9e,0x16,0xca,0x9a,0x42,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0x5c,0x4e,0x36,0x34,0x36,0x44,0x89,0xa9,0x02,0xe4,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02,0x00,0x05,0xfe,0x29,0x05,0x46, -0x04,0x18,0x00,0x1d,0x00,0x28,0x00,0x39,0x40,0x1e,0x09,0x83,0x22,0x14,0x83,0x1a,0x1e,0x02,0x0e,0x84,0x00,0x0f,0x17,0x17,0x0d,0x0f,0x1b,0x00,0x1e,0x95,0x10,0x0d,0x15,0x03,0x25,0x95,0x06,0x10,0x01,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x32,0xd4,0xed,0x2f,0xe9,0x31, -0x30,0x25,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x3b,0x02,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x98,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xa4,0x39,0x64,0x6c,0x1c,0x94,0x07,0x0b,0xb1,0x99, -0xed,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0x8a,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x01,0xd7,0x52,0x52,0x32,0x3a,0x0e,0x4b,0x1d,0x89,0x9b,0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x27,0x05,0xb2,0x00,0x23,0x00,0x2b,0x00,0x41,0x40,0x22,0x20,0x7d,0x29,0x29,0x02,0x2d, -0x15,0x7e,0x0e,0x08,0x08,0x2c,0x25,0x01,0x7e,0x1b,0x02,0x03,0x00,0x91,0x1b,0x25,0x25,0x01,0x24,0x91,0x1c,0x03,0x0b,0x91,0x12,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x26, -0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x16,0x16,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x03,0x62,0xa8,0x27,0xcd,0xb4,0x41,0x4e,0x20,0x3a,0x1f,0x28,0x42,0x28,0x7f,0x9f,0x27,0x5b,0x55,0x29,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0, -0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0xb0,0xca,0xd3,0x4e,0x5b,0x0c,0x0a,0x9e,0x0b,0x0b,0x9c,0x7c,0xc4,0x83,0x6b,0x31,0x02,0xe3,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x05,0xfe,0x29,0x06,0x85,0x04,0x96,0x00,0x28,0x00,0x33,0x00,0x44,0x40,0x24,0x23,0x83, -0x2d,0x2d,0x00,0x35,0x15,0x84,0x0c,0x05,0x05,0x34,0x29,0x1d,0x28,0x84,0x1a,0x00,0x1d,0x30,0x95,0x20,0x10,0x09,0x95,0x11,0x1b,0x0f,0x29,0x1a,0x95,0x27,0x01,0x15,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30, -0x01,0x11,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x16,0x33,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x02,0xd7,0x49,0xcd,0xb4,0x3e,0x43,0x23,0x41,0x23,0x28,0x1e, -0x31,0x20,0x83,0x92,0x29,0x5d,0x55,0x4b,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0xfe,0x29,0x01,0xd7,0xb0,0xca,0x01,0xf3,0x4f,0x50,0x10,0x10,0x94,0x09,0x07,0x06,0x95,0x83,0xfe,0x2b,0x81,0x6c,0x32,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x02,0x61, -0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x5e,0xfe,0xd0,0x06,0x25,0x05,0xb2,0x00,0x18,0x00,0x24,0x00,0x4f,0x40,0x2a,0x02,0x7d,0x1e,0x0b,0x0a,0x07,0x10,0x05,0x1e,0x0e,0x1e,0x07,0x07,0x1e,0x0e,0x03,0x26,0x24,0x7d,0x15,0x21,0x91,0x18,0x04,0x0c,0x0f,0x09,0x06,0x04,0x0b,0x0b,0x0d,0x08,0x07,0x1b,0x91,0x0e,0x0d,0x10,0x05, -0x12,0x13,0x00,0x3f,0x33,0x33,0xc6,0x32,0xfd,0xc0,0x32,0x11,0x39,0x2f,0x17,0x39,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x32,0x10,0xe9,0x31,0x30,0x00,0x00,0x11,0x14,0x02,0x07,0x17,0x25,0x15,0x07,0x17,0x21,0x27,0x05,0x35,0x37,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x00,0x00, -0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x3e,0x01,0x6c,0xa1,0x77,0x44,0x01,0x05,0x8d,0xd7,0xfe,0xcf,0x46,0xff,0x00,0x8a,0x52,0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0xfd,0xf8,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x05,0xb2,0xfe,0x70,0xfe,0xbd,0xeb,0xfe,0xbd,0x51,0x31,0xa6, -0xa3,0x59,0x9a,0x34,0xa3,0xa3,0x58,0x3e,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfc,0x11,0xfe,0xbc,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x98,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2b,0x14,0x17,0x84,0x00,0x25,0x10,0x04,0x00,0x02,0x00,0x16,0x16, -0x00,0x02,0x03,0x27,0x1f,0x83,0x0b,0x12,0x0f,0x10,0x1c,0x95,0x0e,0x10,0x06,0x22,0x95,0x08,0x17,0x02,0x96,0x14,0x03,0x03,0x2f,0x08,0x01,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x33,0x10,0xe9,0x32,0x31, -0x30,0x01,0x35,0x21,0x35,0x21,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x15,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x6c,0xfe,0xb5,0x01,0x4b,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x88,0x88,0xa4,0xa7,0x7d,0x94,0xac,0xa4, -0x85,0x90,0xab,0xfe,0x29,0xb4,0x86,0x01,0x4d,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfb,0x63,0x86,0xb4,0x04,0x39,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x02,0x00,0x5e,0xfe,0x3c,0x07,0xa9,0x05,0xb2,0x00,0x23,0x00,0x2f,0x00,0x5a,0x40,0x31,0x00,0x01,0x0e,0x7d,0x29,0x1d,0x7e,0x16,0x03,0x11,0x29,0x01,0x29,0x19, -0x22,0x16,0x16,0x22,0x19,0x29,0x01,0x05,0x31,0x2f,0x7d,0x08,0x19,0x92,0x11,0x12,0x03,0x03,0x1a,0x1a,0x05,0x2c,0x91,0x0b,0x04,0x21,0x02,0x05,0x23,0x23,0x01,0x26,0x91,0x05,0x13,0x00,0x3f,0xed,0xc6,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x12, -0x39,0x39,0x10,0xe9,0x10,0xe9,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x07,0x17,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x17,0x21,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x43,0xaf,0x01,0x00,0xae, -0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0x01,0x28,0x01,0x6c,0x8f,0x89,0x6e,0x01,0x38,0x64,0x6c,0x6d,0x85,0x01,0xc6,0xcc,0x59,0x8a,0xfe,0xaa,0xb5,0xfe,0xe7,0xfc,0x02,0x01,0x11,0xdf,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfe,0x3c,0x01,0x4b,0x82,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfe,0x70,0xfe, -0xbd,0xce,0xfe,0xac,0x5d,0x4f,0x01,0x93,0x81,0xb7,0x32,0x4c,0x4c,0x91,0x90,0x8e,0x3d,0xb4,0xb0,0xfe,0x49,0x82,0x02,0x83,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x02,0x00,0x60,0xfe,0x29,0x06,0x12,0x04,0x18,0x00,0x25,0x00,0x32,0x00,0x56,0x40,0x2e,0x00,0x01,0x32,0x23,0x84,0x24,0x10,0x02, -0x24,0x1d,0xef,0x16,0x01,0x09,0x24,0x19,0x16,0x16,0x19,0x24,0x03,0x34,0x2c,0x83,0x09,0x25,0x01,0x01,0x06,0x24,0x1b,0x19,0x95,0x1a,0x10,0x0e,0x29,0x95,0x0c,0x10,0x12,0x03,0x2f,0x95,0x06,0x16,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39, -0x10,0xed,0x11,0x33,0x33,0x10,0xe9,0x33,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x01,0x11,0x23,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02, -0xcd,0xa5,0x01,0x44,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x9b,0x64,0x6c,0x71,0x81,0x01,0xc4,0xc4,0x52,0x43,0x4e,0xfe,0xe1,0xa4,0xa7,0x7d,0x94,0xac,0xa4,0x85,0x90,0xab,0xfe,0x4e,0x01,0x9f,0xc3,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfc,0xbe,0xc7,0x81,0xb7,0x32,0x4f,0x50,0x8a,0x90,0x8e,0x40,0xa4, -0x58,0x65,0xfe,0x92,0xfe,0x3e,0xf0,0x03,0x49,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0x13,0x05,0xb3,0x00,0x16,0x00,0x3d,0x40,0x1f,0x14,0x01,0x11,0x7d,0x04,0x16,0x15,0x01,0x04,0x15,0x15,0x04,0x01,0x03,0x18,0x0a,0x7e,0x0b,0x14,0x01,0x0a,0x01,0x0a,0x01,0x0e,0x16,0x12,0x07,0x91,0x0e, -0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x35,0x24,0x24,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x00,0x07,0x01,0x23,0x01,0x3c,0x01,0x0c,0x01,0x0a,0xa1,0x84,0x8f,0xb1,0x24,0xab, -0x24,0x01,0x1a,0xd4,0xd0,0x01,0x02,0xfe,0xeb,0xca,0x01,0xf0,0xd3,0x02,0x4c,0x3e,0x27,0xc6,0x94,0x7b,0x95,0x9b,0x8f,0xd2,0xf0,0xe7,0xc1,0xa8,0xfe,0xf9,0x2c,0xfd,0xd0,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x03,0x0b,0x04,0x18,0x00,0x16,0x00,0x3e,0x40,0x20,0x0b,0x0a,0x06,0x83,0x10,0x09,0x0c,0x0a,0x10,0x0c,0x0c,0x10,0x0a,0x03, -0x18,0x16,0x84,0x00,0x0c,0x09,0x96,0x0d,0x00,0x0d,0x00,0x03,0x0b,0x15,0x13,0x95,0x03,0x10,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x23,0x01,0x35,0x36,0x36,0x35,0x34, -0x26,0x23,0x22,0x06,0x07,0x0f,0x29,0xbb,0xa1,0x94,0xbe,0xab,0x93,0x01,0x63,0xd6,0xfe,0xaa,0x9d,0xc2,0x5e,0x4e,0x58,0x66,0x1f,0x02,0xcf,0xa1,0xa8,0xae,0x89,0x71,0xae,0x32,0xfe,0x70,0x01,0x9e,0x40,0x16,0x8c,0x61,0x4c,0x61,0x56,0x69,0x00,0x01,0x00,0x3d,0x00,0x00,0x04,0x53,0x05,0xb0,0x00,0x1e,0x00,0x4c,0x40,0x26,0x10,0x7e, -0x04,0x1a,0x1a,0x18,0x1c,0x7e,0x1d,0x15,0x1d,0x04,0x1d,0x04,0x1d,0x20,0x14,0x09,0x00,0x1b,0x1e,0x91,0x15,0x18,0x01,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x12,0x09,0x07,0x92,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10, -0xf9,0x32,0xc2,0x2f,0x10,0xe9,0x31,0x30,0x13,0x35,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x3d,0xfe,0xa8,0x4e,0x3e,0x76,0x5f,0x3d,0x77,0x3d,0x80,0x95,0x5a,0x91,0xaf,0x01,0xf1,0xa8,0xcc,0xcc,0xa8,0x01,0x47,0x96,0x01, -0x05,0x01,0x29,0x7c,0x43,0x55,0x76,0xa4,0x39,0x2a,0x9e,0x8b,0x64,0xc5,0xc3,0xbe,0x01,0xfb,0xfe,0x05,0x96,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0x00,0x0f,0xfe,0xe7,0x03,0xe0,0x04,0x18,0x00,0x1e,0x00,0x48,0x40,0x24,0x1b,0x84,0x0e,0x04,0x04,0x03,0x07,0x84,0x08,0x00,0x08,0x0e,0x08,0x0e,0x08,0x20,0x1e,0x14,0x0a,0x14,0x11,0x95, -0x18,0x01,0x01,0x09,0x18,0x10,0x0b,0x03,0x00,0x96,0x08,0x06,0x09,0x15,0x00,0x3f,0x33,0xcd,0xed,0x32,0x32,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x10,0xe9,0x31,0x30,0x25,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x37,0x36,0x12,0x35,0x34, -0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x02,0x9d,0xa4,0x9f,0x9f,0xa4,0xfd,0x72,0x02,0xc9,0xca,0x46,0x42,0x36,0x6b,0x30,0x39,0x79,0x39,0x7d,0x91,0xb1,0xd6,0x84,0x01,0xe3,0xfe,0x1d,0x84,0xfe,0xe7,0x01,0x19,0x77,0xc4,0x01,0x44,0x7f,0x42,0x4e,0x36,0x36,0x93,0x34,0x2f,0x98,0x7b,0x7a,0xfe, -0xd1,0xd8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1d,0x14,0x00,0x05,0x06,0x00,0x06,0x00,0x06,0x0f,0x10,0x10,0x16,0x03,0x02,0x04,0x07,0x01,0x13,0x0b,0x05,0x14,0x14,0x02,0x12,0x12,0x0f,0x05,0x02,0x03,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x32,0x11,0x33,0x2f,0x33, -0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x37,0x13,0x01,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0xb0,0xb1,0xfe,0xb1,0xbb,0xed,0xf3,0x93,0xfe,0xc2,0x58,0x0a,0x0e,0x05,0x04,0x07,0x1a,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x6f,0x68,0x0f,0x01,0xee,0x03,0x9d,0xfd,0x5a,0x02, -0xa6,0xfc,0x8a,0xfb,0x1c,0x3f,0x24,0x3c,0x45,0x04,0x6f,0xfa,0x66,0x01,0x31,0xfe,0xde,0x00,0x00,0x01,0xff,0xe8,0xff,0x37,0x03,0xcb,0x04,0xd1,0x00,0x14,0x00,0x42,0x40,0x24,0x10,0x0f,0x06,0x03,0x01,0x13,0x04,0x07,0x12,0x05,0x05,0x02,0x0f,0x05,0x02,0x02,0x05,0x0f,0x03,0x16,0x14,0x00,0x04,0x07,0x01,0x0a,0x04,0x03,0x14,0x12, -0x15,0x06,0x0f,0x0f,0x03,0x0f,0x00,0x3f,0x3f,0xce,0x3f,0xce,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x33,0x32,0x11,0x33,0x30,0x31,0x07,0x01,0x03,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0x18,0x01,0x09,0xe3,0xb4,0x88,0xff,0x87,0xfe, -0xb7,0x3f,0x1d,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0xa1,0x62,0xc3,0xc9,0x02,0x71,0x02,0x58,0xfe,0x79,0x02,0x58,0xfc,0xfb,0xb4,0x53,0x3c,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0x01,0xfe,0x36,0x00,0x00,0x01,0x00,0x1a,0xfe,0x1e,0x07,0x60,0x05,0x9a,0x00,0x2c,0x00,0x4e,0x40,0x27,0x18,0x17,0x1d,0x23,0x22,0x13, -0x0f,0x01,0x27,0x1d,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x1d,0x27,0x13,0x03,0x18,0x2c,0x22,0x19,0x03,0x0f,0x18,0x12,0x0b,0x91,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x33,0x11,0x33, -0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x07,0x60,0xfe,0x74,0x3c,0x75,0x9c,0x63,0x1d,0x31,0x1d,0x30,0x31,0x3b, -0x67,0x1f,0x3c,0xfe,0xc8,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x37,0x09,0x09,0x03,0x03,0x04,0x0a,0x0a,0x01,0x24,0x05,0x9a,0xfa,0x88,0xd5,0xca,0x65,0x05,0x08,0x9d,0x12,0x56,0x52,0xa2,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a, -0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xb0,0x20,0x4a,0x20,0x21,0x43,0x26,0x04,0x50,0x00,0x00,0x01,0x00,0x18,0xfe,0x1e,0x05,0xb0,0x04,0x00,0x00,0x2c,0x00,0x4b,0x40,0x25,0x18,0x17,0x1f,0x23,0x22,0x13,0x0f,0x27,0x1f,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x27,0x1e,0x13,0x03,0x18,0x2c, -0x22,0x19,0x0f,0x0b,0x95,0x05,0x0f,0x18,0x15,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x26,0x26,0x27, -0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x05,0xb0,0xfe,0xb4,0x39,0x59,0x88,0x6a,0x1c,0x34,0x1b,0x34,0x2d,0x51,0x66,0x23,0x2d,0xdd,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd5, -0x05,0x06,0x02,0x06,0x06,0x08,0xd6,0x04,0x00,0xfb,0xb6,0xba,0x90,0x4e,0x05,0x08,0x93,0x12,0x5b,0x6f,0x8a,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x13,0x2d,0x1c,0x13,0x2f,0x1a,0x03,0x04,0x00,0x00,0x01,0x00,0x55,0xfe,0x21,0x04,0x93,0x05,0xc2,0x00,0x2c, -0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x7d,0x1c,0x1c,0x2e,0x16,0x06,0x7d,0x26,0x0b,0x22,0x91,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12,0x03,0x91,0x29,0x16,0x19,0x91,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed, -0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x04,0x15,0x14,0x04,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, -0x16,0x17,0x02,0x7e,0x1f,0x63,0x27,0x59,0x78,0x8e,0x84,0x01,0xf9,0xfe,0xad,0xd3,0x01,0x04,0xfe,0xc0,0xfe,0xfb,0x57,0xae,0x57,0x59,0xb1,0x58,0xb9,0xd8,0xc2,0xf0,0x68,0x01,0x4c,0xfe,0xd8,0xec,0xd9,0x9b,0x32,0x5b,0x29,0x05,0x00,0x10,0x1d,0x74,0x5b,0x74,0x7d,0x56,0xfe,0x65,0xe0,0xbe,0xcc,0xf1,0x20,0x2a,0xa2,0x32,0x22,0x9c, -0x8e,0x91,0x8e,0x37,0x01,0x9c,0xc9,0xc0,0x95,0xcf,0x0b,0x0c,0x00,0x01,0x00,0x3e,0xfe,0x21,0x04,0x0c,0x04,0xdd,0x00,0x2c,0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x83,0x1c,0x1c,0x2e,0x16,0x06,0x83,0x26,0x0b,0x22,0x95,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12, -0x03,0x96,0x29,0x16,0x19,0x95,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23, -0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x02,0x00,0x26,0x4b,0x27,0x39,0x4a,0x5d,0x5e,0x01,0xec,0xfe,0xbe,0xd4,0xee,0xfe,0xc6,0xf1,0x53,0xa6,0x53,0x55,0xa8,0x54,0xab,0xd3,0xe0,0xcf,0x4f,0x01,0x42,0xfe,0xf9,0x9e,0xc5,0xa8,0x77,0x29, -0x51,0x29,0x04,0x33,0x14,0x10,0x46,0x39,0x4a,0x4e,0x53,0xfe,0x7e,0x11,0xd6,0xb6,0xc6,0xe7,0x1f,0x28,0xa2,0x34,0x2a,0x9c,0x8b,0x91,0x96,0x35,0x01,0x85,0xa0,0x84,0x70,0x95,0x0b,0x11,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x56,0x40,0x16,0x11,0x7d,0x1a,0x16,0x0d,0x01,0x0b,0x0b,0x09,0x01, -0x7e,0x06,0x04,0x02,0x00,0x91,0x16,0x15,0x91,0x0d,0x0c,0x04,0xb8,0x01,0x05,0xb6,0x05,0x09,0x05,0x20,0x16,0x01,0x05,0xb8,0xff,0xc0,0x40,0x0c,0x09,0x0e,0x48,0x16,0x05,0x16,0x05,0x02,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x11,0x33,0x10,0xfd,0x32,0xdc,0xed,0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9, -0x32,0xc0,0x2f,0x11,0x33,0x33,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xaa,0xaa,0xa8,0xd4,0xd4,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0xfe,0xc2,0x04, -0xee,0x67,0x45,0x45,0x67,0x36,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2c,0x10,0x83,0x1f,0x08,0x1f,0x08,0x1f,0x27,0x0a,0x06,0x17,0x84,0x03,0x01,0x18,0x17,0x1b,0x15,0x1c,0x95,0x13,0x16,0x0a,0x22,0x95,0x0d, -0x09,0x01,0x96,0x06,0x02,0x02,0x04,0x00,0x0d,0x10,0x0d,0x20,0x0d,0x03,0x0d,0x10,0x04,0x00,0x00,0x3f,0x3f,0x5d,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36, -0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x9a,0xcc,0xfe,0xee, -0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfd,0x95,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x44,0x40,0x23,0x11,0x7d,0x1a,0x1a,0x06,0x1e,0x16,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x15,0x91,0x0d,0x0d,0x06,0x0b,0x03,0x16,0x91,0x00,0x01,0x0f, -0x09,0x01,0x09,0x04,0x08,0x06,0x12,0x00,0x3f,0xde,0x32,0xdd,0x5d,0x32,0xdc,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36, -0x35,0x10,0x21,0x01,0x64,0xd4,0xd4,0xa8,0xaa,0xaa,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0x55,0x67,0x82,0x82,0x67,0x04,0xb1,0xe2,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4b,0x40,0x28, -0x0c,0x1f,0x1f,0x18,0x27,0x19,0x17,0x15,0x15,0x13,0x06,0x17,0x03,0x01,0x18,0x17,0x1b,0x11,0x1c,0x95,0x0f,0x00,0x16,0x96,0x03,0x13,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0x16,0x06,0x22,0x95,0x09,0x10,0x04,0x00,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xde,0x32,0xed,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xd1,0x32,0x32,0xc2,0x2f, -0x11,0x33,0x11,0x12,0x39,0x2f,0xc1,0x31,0x30,0x17,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x54,0xfe, -0xac,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xf8,0x86,0x06,0x5e,0xfd,0x60,0xcc,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xfa,0x86,0xdf,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x01,0x00,0xbc,0xfe,0x29,0x03,0xc7,0x05,0x9a,0x00,0x0b,0x00,0x23,0x40,0x10,0x09,0x0a,0x0a,0x0d,0x04,0x00,0x7e,0x01, -0x04,0x0b,0x01,0x09,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x64,0xa8,0xa8,0x04,0x03,0x0e,0x0d,0x01,0x8c,0xb5,0xfd,0x9d,0xfe,0x29,0x07,0x71,0xfb,0xcb,0x12,0x31,0x1e,0x03,0xd4,0xfa,0x66,0x00, -0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0x28,0x04,0x00,0x00,0x0b,0x00,0x21,0x40,0x0f,0x08,0x09,0x09,0x0d,0x03,0x0a,0x84,0x00,0x0a,0x03,0x08,0x01,0x0f,0x00,0x1b,0x00,0x3f,0x3f,0x33,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x11,0xa6,0xa4,0x04,0x0a,0x2b, -0x14,0xe4,0xad,0xfe,0x22,0xfe,0x29,0x05,0xd7,0xfd,0x34,0x33,0x68,0x2f,0x02,0x02,0xfc,0x00,0xfe,0x29,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x5d,0x05,0xb2,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x7d,0x0f,0x23,0x7d,0x06,0x1f,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x29,0x1f,0x0a,0x91,0x0b,0x0b,0x19,0x00,0x03,0x91,0x26, -0x13,0x15,0x12,0x91,0x19,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15, -0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x60,0x4b,0xa1,0x4b,0x80,0x99,0x9b,0x93,0x71,0x5a,0x7f,0x95,0x67,0x62,0x45,0x99,0x41,0x4b,0x93,0x4b,0xa9,0xc3,0x6d,0x6a,0x7c,0x8c,0xf8,0xcc,0x4e,0x9d,0x4e,0xd7,0x32,0x26,0x95,0x82,0x80,0x85,0x98,0x97,0x84,0x64,0x69,0x2d,0x30,0xa2,0x2b,0x27,0xc1,0xa0,0x7d, -0xa9,0x2d,0x08,0x16,0xbe,0x8c,0xc4,0xea,0x21,0x2c,0x00,0x01,0x00,0x1e,0xfe,0x23,0x02,0xe7,0x04,0x18,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x84,0x0f,0x23,0x84,0x06,0x20,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x00,0x1f,0x0a,0x95,0x0b,0x0b,0x19,0x00,0x03,0x95,0x26,0x1c,0x15,0x12,0x95,0x19,0x10,0x00,0x3f,0xed,0x32, -0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x00,0x23, -0x22,0x26,0x27,0x21,0x23,0x6c,0x2b,0x97,0xd0,0x9c,0xba,0x46,0x52,0x78,0xa1,0x71,0x65,0x47,0x8f,0x47,0x48,0x94,0x48,0xaf,0xc6,0x72,0x51,0x80,0x73,0xfe,0xcf,0xdb,0x2a,0x66,0x2a,0xfe,0xcc,0x0f,0x11,0xc5,0x96,0x8b,0x85,0x89,0xa2,0x78,0x65,0x70,0x29,0x2b,0x98,0x25,0x20,0xb8,0xa6,0x5d,0xc0,0x2a,0x05,0x2c,0xbb,0x80,0xcd,0xfe, -0xe9,0x08,0x09,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x03,0xba,0x05,0xb0,0x00,0x19,0x00,0x24,0x00,0x41,0x40,0x21,0x24,0x0e,0x7e,0x00,0x03,0x00,0x0a,0x7d,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x91,0x12,0x0e,0x00,0x91,0x24,0x02,0x02,0x07,0x12,0x13,0x20,0x91,0x07,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed, -0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x32,0x31,0x30,0x01,0x21,0x35,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x01,0x83,0xfe,0xe2,0x01,0x1e, -0x95,0x86,0x7d,0x9f,0xb9,0x86,0x50,0xd1,0xbc,0x54,0x36,0x36,0x56,0xe3,0xf9,0x49,0x45,0x31,0x36,0x41,0x37,0x03,0x70,0x97,0x81,0x8c,0x9c,0x99,0x7c,0x80,0xab,0xfe,0x92,0xf8,0xfe,0xde,0x18,0xa6,0x27,0x01,0x81,0x02,0x07,0x53,0x41,0x36,0x4a,0x50,0x43,0x81,0x00,0x02,0xff,0x76,0xfe,0x1e,0x03,0x15,0x06,0x02,0x00,0x19,0x00,0x24, -0x00,0x41,0x40,0x21,0x24,0x0e,0x84,0x00,0x03,0x00,0x0a,0x83,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x95,0x12,0x0e,0x00,0x95,0x24,0x02,0x02,0x07,0x12,0x1c,0x20,0x95,0x07,0x00,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9, -0x32,0x31,0x30,0x13,0x23,0x35,0x37,0x35,0x34,0x36,0x37,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xe2,0xd8,0xd8,0x91,0x8a,0x7d,0x9b,0xae,0x83,0x5e,0xcc,0xbc,0x45,0x43,0x49,0x43,0xe0,0xf9,0x43,0x4f,0x3d,0x33,0x3c,0x3b, -0x03,0xc6,0x8c,0x01,0x87,0x89,0x9e,0x01,0x98,0x7a,0x82,0xa8,0xfc,0x65,0xfd,0xfe,0xf0,0x20,0x99,0x2d,0x01,0x66,0x04,0x42,0x57,0x47,0x3d,0x4b,0x54,0x4a,0x88,0x00,0x00,0x01,0x00,0x38,0xff,0xe8,0x03,0xca,0x05,0xb2,0x00,0x25,0x00,0x37,0x40,0x1c,0x15,0x7d,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x7e,0x0f,0x1c,0x1f,0x91,0x18, -0x08,0x05,0x91,0x0c,0x0c,0x12,0x18,0x13,0x25,0x91,0x12,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26, -0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x26,0x23,0x01,0x7c,0x9b,0x8b,0x7c,0x3a,0x6e,0x36,0x35,0x6d,0x3d,0xc1,0xee,0xf8,0xcd,0xde,0xef,0xfe,0xc0,0xfe,0xe7,0x3c,0x77,0x3c,0x39,0x81,0x39,0xcf,0xd6,0x8f,0x90,0x05,0x1c,0xae,0x8d,0x90,0xaf,0x28,0x2b,0xa2,0x23,0x24,0xfc,0xc7,0xd7,0x01,0x0c,0xfe,0x9f,0xfe,0xbe,0xfe,0x87, -0xfe,0x52,0x18,0x16,0xa5,0x1d,0x20,0x01,0x4c,0x01,0x45,0x01,0x10,0xfd,0x00,0x01,0x00,0x43,0xfe,0x4e,0x03,0xce,0x04,0x18,0x00,0x25,0x00,0x34,0x40,0x1a,0x15,0x83,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x84,0x0f,0x08,0x05,0x95,0x0c,0x0c,0x12,0x1c,0x1f,0x95,0x18,0x25,0x95,0x12,0x0f,0x00,0x3f,0xed,0x2f,0xed,0x32,0x11,0x39, -0x2f,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x01,0x83,0x9c,0x8e,0x7b,0x39,0x6d,0x37,0x36,0x71, -0x37,0xc0,0xec,0xf5,0xcd,0xdd,0xec,0xfe,0xc8,0xfe,0xe2,0x3c,0x76,0x3c,0x39,0x82,0x38,0xd4,0xd5,0x91,0x92,0x03,0x8e,0xb6,0x8e,0x96,0xb2,0x24,0x2b,0x98,0x23,0x1e,0xfb,0xc5,0xd6,0x01,0x0a,0xfe,0xa2,0xfe,0xbb,0xfe,0x8a,0xfe,0x4f,0x16,0x14,0x9d,0x1d,0x20,0x01,0x55,0x01,0x49,0x01,0x18,0x01,0x00,0x00,0x01,0x00,0x28,0x02,0x89, -0x02,0x39,0x05,0xaa,0x00,0x24,0x00,0x44,0xb3,0x00,0x00,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x18,0x18,0x26,0x1e,0xb8,0x01,0x04,0xb3,0x12,0x05,0x12,0x15,0xb8,0x01,0x05,0xb2,0x0e,0x24,0x21,0xb8,0x01,0x05,0xb4,0x02,0x02,0x08,0x0e,0x1b,0xb8,0x01,0x05,0xb1,0x08,0x04,0x00,0x3f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01, -0x2f,0xc4,0xe9,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x01,0x7a,0x2b,0x32,0x77,0x7e,0x8f,0x71,0x83,0x8e,0xa9,0x9c,0x29,0x4b,0x26, -0x28,0x4b,0x28,0x5f,0x62,0x49,0x45,0x3a,0x47,0x38,0x3f,0x18,0x31,0x13,0x03,0xbb,0x11,0x83,0x72,0x74,0x97,0xbf,0xad,0xc5,0xf0,0x0f,0x0e,0x78,0x14,0x11,0xa3,0xa1,0x86,0x77,0x55,0x42,0x3f,0x52,0x0c,0x0e,0x00,0x02,0x00,0x60,0xff,0x43,0x05,0x60,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x4e,0x40,0x2a,0x27,0x19,0x84,0x15,0x09,0x06, -0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x04,0x29,0x21,0x83,0x10,0x17,0x00,0x15,0x1e,0x95,0x13,0x10,0x0a,0x24,0x95,0x07,0x0d,0x16,0x02,0x00,0x19,0x95,0x05,0x09,0x15,0x00,0x3f,0x33,0xfd,0xc6,0x33,0x3f,0xc6,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33, -0x11,0x33,0xe9,0x33,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0xbc,0x8e,0x59,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x04,0x72,0xee,0xc0,0xe8,0xff,0xd6,0xd3, -0x60,0x04,0xa4,0x53,0xf7,0xa6,0x7c,0x97,0xab,0xa3,0x8d,0x88,0xac,0x01,0x44,0xba,0x8a,0xbd,0xbd,0xae,0xc6,0x01,0x11,0xef,0xfc,0x01,0x34,0xa6,0x02,0x7a,0xfa,0x9e,0x01,0xdc,0x7e,0xaa,0xdd,0xc1,0xb1,0xcd,0xc6,0x97,0x00,0x01,0x00,0xa6,0xff,0x43,0x02,0x9a,0x05,0xec,0x00,0x0d,0x00,0x30,0x40,0x17,0x0b,0x0c,0x05,0x06,0x0c,0x06, -0x00,0x08,0x08,0x0f,0x03,0x84,0x00,0x01,0x00,0x07,0x05,0x03,0x95,0x0c,0x0a,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0xa6,0xa4,0x53,0x57,0x8e,0x57,0x6f,0xb1,0x59,0x8e, -0x59,0x05,0xec,0xfa,0x9e,0xba,0xba,0x8a,0xbd,0xbd,0x00,0x01,0x00,0xa6,0xff,0x43,0x07,0xa4,0x04,0x18,0x00,0x29,0x00,0x5d,0x40,0x32,0x1d,0x19,0x84,0x1a,0x23,0x11,0x84,0x12,0x28,0x84,0x09,0x06,0x07,0x00,0x01,0x12,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x12,0x05,0x04,0x1a,0x04,0x23,0x1d,0x0d,0x15,0x95,0x25,0x20,0x10,0x1b, -0x0f,0x12,0x19,0x15,0x02,0x00,0x28,0x95,0x07,0x05,0x09,0x15,0x00,0x3f,0x33,0xc6,0xfd,0xc6,0x33,0x3f,0x33,0x3f,0x3f,0x33,0xed,0x32,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xe9,0x10,0xe9,0x39,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x33,0x06,0xfe,0x8e,0x57,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x68,0x7d,0x69,0x93,0xa4,0xe9,0x6a,0x8e,0xa4,0xa4,0x04,0x6d,0xd1,0x68,0x9e,0x1c,0x72,0xe2,0x01,0x52,0x53,0x01,0x44, -0xba,0x8a,0xbd,0xbd,0x02,0x4c,0xa7,0x9b,0xbe,0x88,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb3,0x93,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x76,0x5e,0xd4,0xfe,0x5f,0xfe,0x13,0x00,0x00,0x01,0x00,0xa6,0xff,0x43,0x05,0x48,0x04,0x18,0x00,0x1c,0x00,0x45,0x40,0x25,0x14,0x10,0x84,0x11,0x1b,0x84,0x06,0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01, -0x07,0x09,0x04,0x04,0x11,0x04,0x15,0x0c,0x95,0x17,0x10,0x12,0x0f,0x11,0x15,0x00,0x1b,0x95,0x07,0x09,0x15,0x00,0x3f,0xc6,0xfd,0xc6,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11,0x10,0x23, -0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x04,0xa5,0x8e,0x5a,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x53,0x01,0x46,0xbc,0x8a,0xbd,0xbd,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0x18,0x00,0x00,0x01,0x00,0xa6, -0x00,0x00,0x02,0xbc,0x04,0x91,0x00,0x17,0x00,0x3a,0x40,0x1e,0x09,0x0a,0x00,0x01,0x0a,0x01,0x06,0x06,0x01,0x0a,0x03,0x19,0x12,0x0f,0x84,0x10,0x11,0x0f,0x10,0x15,0x14,0x0b,0x09,0x08,0xec,0x17,0x00,0x96,0x02,0x10,0x00,0x3f,0xed,0x33,0xfd,0xcd,0x33,0x33,0x3f,0x3f,0x01,0x2f,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, -0x11,0x33,0x31,0x30,0x01,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x07,0x23,0x37,0x06,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x02,0x26,0x7a,0x23,0x14,0x1e,0x0d,0x26,0x42,0x3a,0x7a,0x31,0x3a,0x4d,0xa4,0xa4,0x04,0x1a,0x5b,0x3b,0x04,0x91,0x80,0x02,0x06,0x05,0xaa,0x1d,0x03,0xd7,0xb7,0x26,0xa8,0x82,0xfd,0xf6, -0x04,0x00,0xd3,0x4f,0x6c,0x18,0x00,0x02,0x00,0xa6,0xff,0x43,0x04,0xa2,0x04,0x01,0x00,0x1e,0x00,0x27,0x00,0x53,0x40,0x2c,0x0f,0x06,0x0c,0x83,0x1c,0x1d,0x16,0x17,0x17,0x14,0x1d,0x00,0x04,0x19,0x24,0x19,0x24,0x19,0x07,0x1a,0x20,0x06,0x84,0x07,0x0f,0x20,0x96,0x05,0x05,0x06,0x1f,0x96,0x08,0x0f,0x06,0x15,0x18,0x16,0x14,0x95, -0x1d,0x1b,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xe9,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0xed,0x11,0x39,0x31,0x30,0x21,0x03,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x17,0x33,0x37, -0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0xe5,0x98,0x2e,0x40,0x4e,0x47,0xa4,0x01,0x36,0xce,0xb2,0x90,0x67,0x1f,0x3b,0x2a,0x69,0x53,0x4f,0x8e,0x4f,0x6f,0xb1,0x59,0x8e,0x59,0xfd,0xe7,0x78,0x72,0x80,0x67,0x73,0x01,0x1b,0x54,0x34,0xfe,0x5d,0x04,0x01,0x8b,0x94,0x5f,0x97,0x0c, -0x03,0x09,0x3d,0x4d,0xc0,0xa7,0xa7,0x8a,0xbd,0xbd,0x03,0x7e,0xfe,0xab,0x5f,0x5a,0x4f,0x4d,0x00,0x02,0x00,0x2b,0xff,0xea,0x05,0x12,0x05,0xb1,0x00,0x21,0x00,0x2c,0x00,0x4d,0x40,0x28,0x1c,0xef,0x25,0x09,0x25,0x09,0x25,0x2e,0x14,0x03,0x84,0x11,0x0f,0x0d,0x2c,0x21,0x84,0x15,0x00,0x28,0x96,0x19,0x20,0x02,0x0e,0x95,0x11,0x2c, -0x14,0x11,0x13,0x13,0x11,0x0f,0x06,0x95,0x0b,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0xd4,0xed,0x01,0x2f,0x33,0xe9,0x32,0x2f,0xc6,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35, -0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x02,0xf2,0xfe,0x8d,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x73,0x8c,0x8a,0x83,0x87,0xa7,0xa0,0x35,0x36,0x4f,0x5d,0x37,0x39,0x39,0x37,0x03,0x74,0xfd,0xbf,0x67, -0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x6e,0xa9,0x9a,0x96,0x82,0x8d,0x98,0xfc,0x8c,0x04,0x00,0x4b,0x4f,0x49,0x48,0x52,0x6e,0x6b,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x03,0x5b,0x05,0xb2,0x00,0x22,0x00,0x2e,0x00,0x4c,0x40,0x28,0x1f,0x10,0x22,0x0d,0x7e,0x26,0x03,0x23,0x00,0x26,0x13,0x7e,0x1c,0x26, -0x1c,0x26,0x1c,0x30,0x22,0x00,0x2c,0x7e,0x18,0x07,0x1f,0x03,0x10,0x23,0x04,0x22,0x22,0x0a,0x18,0x91,0x16,0x12,0x29,0x91,0x0a,0x03,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xc6,0xe9,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x12,0x39,0x39,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x13,0x36,0x12,0x37, -0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x07,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x95,0x4d,0x8d,0x3c,0x10,0x93,0x4c,0x98,0x6f,0x73,0x88,0x31,0x22,0x84,0x6c,0xe5,0xc4,0xfe,0x3a,0x01,0xd1, -0x69,0x89,0x42,0x48,0x3d,0x87,0x4b,0xcf,0x15,0x18,0x2c,0x29,0x29,0x31,0x49,0x01,0x3a,0x80,0x01,0x04,0x80,0x0e,0x82,0x97,0x4f,0x6b,0x93,0x92,0x79,0x4b,0xa5,0x59,0x84,0xd8,0x73,0xba,0xd5,0x97,0x89,0x6d,0x54,0x9e,0x4e,0x7e,0xed,0x7b,0x02,0xf5,0x38,0x5d,0x38,0x36,0x3b,0x3c,0x29,0x39,0x69,0x00,0x00,0x02,0x00,0x0f,0xff,0xe8, -0x05,0xaa,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x28,0x40,0x14,0x05,0x7d,0x0e,0x0b,0x14,0x14,0x1c,0x1a,0x7d,0x00,0x0b,0x11,0x91,0x08,0x13,0x17,0x0e,0x91,0x01,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x01,0x2f,0xc6,0xe9,0x12,0x39,0x2f,0x12,0x39,0xe9,0x31,0x30,0x13,0x35,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x34,0x12, -0x37,0x02,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x0f,0x03,0x07,0x01,0x25,0x01,0x6f,0xfe,0x8c,0xfe,0xc8,0xfe,0xd4,0xfe,0x8c,0x99,0x74,0x5d,0x01,0x11,0xdf,0xe9,0x01,0x13,0xfe,0xfc,0xec,0xe1,0xfe,0xe5,0x05,0x02,0x98,0xfe,0x6d,0xfe,0xcc,0xfe,0xb0,0xfe,0x65,0x01,0x8d,0x01,0x3b,0xe1,0x01,0x2a,0x47,0xfc,0xc1, -0xfe,0xbc,0x01,0x34,0x01,0x09,0x01,0x10,0x01,0x36,0xfe,0xb9,0xfc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x18,0x05,0xe9,0x00,0x13,0x00,0x1e,0x00,0x2f,0x40,0x18,0x09,0x0c,0x10,0x83,0x19,0x19,0x20,0x0d,0x0c,0x1e,0x83,0x02,0x08,0x05,0x16,0x95,0x13,0x16,0x0d,0x00,0x1b,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39, -0x01,0x2f,0xe9,0xc4,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x04,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x37,0x26,0x00,0x27,0x33,0x04,0x00,0x11,0x14,0x00,0x23,0x00,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x01,0x5c,0xfc,0x01,0x09,0xde,0x33,0x5e,0x1f,0x03,0x4f,0xfe,0xea,0xbc,0xfa,0x01,0x20,0x01,0x25,0xfe, -0xfa,0xd4,0xfe,0xca,0xa9,0x91,0x8a,0xa4,0xfe,0xd6,0x96,0xa8,0x18,0x01,0x1c,0xf6,0xf0,0x01,0x2e,0x1e,0x1d,0x02,0x77,0x01,0x06,0x8d,0xdb,0xfe,0x07,0xfe,0xf1,0xef,0xfe,0xd1,0x01,0x61,0xd7,0xdf,0xad,0x01,0x90,0xdc,0xb8,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xac,0x00,0x15,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x17, -0x0d,0x06,0x09,0x83,0x0b,0x0e,0x02,0xf4,0x12,0x01,0x0c,0x00,0x0a,0x1b,0x06,0xec,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x02,0xf4,0x2f,0x57,0x78, -0x92,0x01,0x77,0xfe,0x89,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x04,0xea,0x21,0xd1,0xc8,0xfd,0x25,0x97,0xfe,0x29,0x07,0x71,0xd3,0x6b,0x7a,0x07,0x07,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x14,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x16,0x0d,0x06,0x09,0x84,0x0b,0x0e,0x02,0xec,0x12,0x10,0x0c,0x0f, -0x0a,0x1b,0x06,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0x01,0x56,0xfe,0xaa,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24, -0x03,0x5a,0x21,0xc5,0xac,0xfe,0x80,0x8a,0xfe,0x29,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0x49,0x05,0x9a,0x00,0x1a,0x00,0x2b,0x00,0x4d,0x40,0x28,0x07,0x7d,0x18,0x0b,0x7d,0x1d,0x00,0x04,0x15,0x25,0x1d,0x18,0x1d,0x04,0x04,0x1d,0x18,0x03,0x2d,0x28,0x7d,0x01,0x12,0x18,0x07,0x25,0x07,0x02,0x15,0x15, -0x02,0x2b,0x91,0x0f,0x13,0x04,0x00,0x91,0x02,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0xcd,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x11,0x33,0x10,0xe9,0x10,0xe9,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x04,0x16,0x15,0x15,0x06,0x04,0x23,0x22,0x24,0x35, -0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x12,0x36,0x35,0x34,0x26,0x2f,0x02,0x26,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0x82,0xfe,0x27,0x03,0x4b,0x95,0xeb,0x01,0x31,0xa4,0x06,0xfe,0xe8,0xe5,0xdb,0xfe,0xef,0xc0,0xda,0x19,0x17,0x69,0xb6,0xb6,0x55,0x39,0x4b,0x3c,0x0e,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x05,0x04,0x96,0x85, -0x1a,0x90,0x52,0x52,0xce,0xcb,0x81,0x07,0xd0,0xee,0xed,0xc3,0x9d,0xee,0x61,0x21,0x53,0x23,0x46,0x7f,0xfb,0x9f,0xa1,0x8c,0x40,0x76,0x2d,0x3a,0x2d,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x59,0x00,0x00,0x04,0x48,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0x45,0x40,0x24,0x1b,0x7d,0x07,0x15,0x7d,0x2a,0x00,0x0f, -0x07,0x2a,0x01,0x01,0x2a,0x07,0x03,0x2f,0x20,0x7d,0x04,0x0f,0x27,0x1b,0x07,0x07,0x18,0x18,0x03,0x2d,0x91,0x12,0x04,0x04,0x00,0x91,0x03,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0xcd,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x25,0x21,0x15,0x21,0x35, -0x36,0x24,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x20,0x01,0xd9,0xfc,0xb5,0x7b,0x01,0x05,0x45,0x47,0x46,0x8f,0x74,0x06,0x01,0x17,0xe6,0xdb,0x01,0x11,0xc9,0xd1, -0x19,0x17,0x69,0xb6,0xb6,0x60,0x9a,0x1c,0x0d,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x96,0x96,0x85,0x12,0x93,0x57,0x2a,0x53,0x33,0x32,0x6a,0xb5,0x65,0x0d,0xcf,0xef,0xed,0xc3,0xa1,0xf0,0x5b,0x21,0x53,0x23,0x46,0x7f,0x04,0x61,0xa1,0x8c,0x41,0x85,0x6f,0x15,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x39, -0x04,0x3f,0x04,0x18,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x21,0x14,0x1c,0x17,0x84,0x07,0x11,0x83,0x24,0x00,0x0b,0x07,0x01,0x24,0x07,0x24,0x07,0x24,0x29,0x1c,0x83,0x04,0x0b,0x21,0x96,0x14,0x14,0x02,0x27,0x95,0x0e,0x10,0x04,0x00,0x95,0x02,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xe9,0x12, -0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xe9,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x36,0x36,0x35,0x34,0x24,0x26,0x35,0x34,0x24,0x33,0x32,0x04,0x15,0x14,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x1f,0x02,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x08,0x01,0xc0,0xfc,0xd3,0xd5, -0xb0,0xfe,0xc2,0x82,0x01,0x1a,0xef,0xca,0x01,0x0c,0xd8,0xc6,0x14,0x11,0x6a,0x96,0xbe,0x5c,0x60,0x6a,0x1b,0xa7,0xa7,0xaa,0x8a,0xfe,0xc5,0x8c,0x47,0x61,0x97,0x4e,0x5b,0xd6,0xd0,0x86,0xd5,0xf6,0xef,0xc9,0xb2,0xfe,0xf7,0x5c,0x21,0x41,0x21,0x4d,0x8e,0x04,0xa2,0xa7,0x95,0x68,0x7f,0x4d,0x54,0x18,0x52,0xc8,0x95,0x8c,0xa1,0x00, -0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x02,0x7e,0x03,0x03,0x07,0x05,0x03,0x12,0x05,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x20,0x02,0xe8,0xa8,0xfd,0xc0,0x05,0x9a,0xfa,0x66,0x05,0x02,0x00,0x01,0x00,0xa6,0x00,0x00, -0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x84,0x01,0x01,0x04,0x05,0x02,0x00,0x01,0x15,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0xfc,0x05,0xb2,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x7e,0x0d,0x06,0x0d,0x06, -0x20,0x17,0x14,0x7e,0x15,0x19,0x10,0x91,0x1b,0x04,0x17,0x03,0x14,0x1b,0x03,0x91,0x0a,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33, -0x12,0x21,0x32,0x12,0x11,0x05,0x27,0x34,0x31,0x20,0x36,0x1a,0x18,0x44,0x1f,0x7e,0x84,0xfe,0x9f,0xc1,0xf9,0xa8,0xa8,0x06,0x9d,0x01,0x3f,0xe8,0xf9,0x01,0x21,0x5b,0x48,0x0e,0x0e,0x9e,0x0b,0x09,0x91,0x7f,0x02,0x3d,0x01,0xe5,0xfe,0xe5,0xd4,0xfa,0xfe,0x07,0x71,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x01,0x00,0xa6, -0xfe,0x29,0x04,0xb0,0x04,0x18,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x84,0x0d,0x06,0x0d,0x06,0x20,0x18,0x14,0x84,0x15,0x18,0x10,0x95,0x1b,0x10,0x17,0x0f,0x14,0x1b,0x03,0x95,0x0a,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15, -0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0x2c,0x2c,0x16,0x34,0x16,0x17,0x39,0x19,0x73,0x80,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x01,0x14,0x5e,0x45,0x0a,0x0e,0x8d,0x0b,0x09,0x8d,0x83,0x01,0x50,0x01,0x46,0xb8,0x8e,0xfb,0xe1, -0x05,0xd7,0xaa,0xc2,0xd8,0xce,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xb2,0x00,0x11,0x00,0x21,0x40,0x10,0x0c,0x0c,0x13,0x04,0x00,0x83,0x01,0x04,0x0e,0xf4,0x08,0x01,0x03,0x00,0x00,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16, -0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x01,0x64,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x2f,0x57,0x78,0x92,0xfe,0x29,0x07,0x71,0xcd,0x6b,0x7a,0x07,0x07,0xb4,0x21,0xd1,0xc8,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x21,0x40,0x10,0x00,0x00,0x12,0x0b,0x06,0x84,0x07,0x0a,0x02,0xec,0x0e,0x10, -0x09,0x0f,0x06,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x03,0x5a,0x21,0xc5,0xac,0xfc,0x1f,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00, -0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xb9,0x05,0x9b,0x00,0x1e,0x00,0x2f,0x40,0x17,0x1d,0x19,0x12,0x08,0x12,0x08,0x20,0x1e,0x0c,0x7d,0x19,0x13,0x12,0x12,0x0f,0x91,0x16,0x13,0x09,0x1d,0x91,0x00,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xe1,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x33,0x32, -0x37,0x21,0x32,0x17,0x33,0x15,0x21,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x20,0x00,0x11,0x34,0x12,0x36,0x37,0x21,0x6b,0xe6,0x64,0x4f,0x01,0xc6,0x32,0x3a,0x83,0xfe,0x88,0xe7,0xfe,0xb4,0x01,0x20,0xe9,0x57,0xa6,0x78,0x50,0xc0,0x6a,0xfe,0xc4,0xfe,0x88,0x84,0xad,0x35,0xfe,0xa7,0x05,0x9a,0x01,0x01, -0x97,0xfe,0xa4,0xeb,0xfa,0xfe,0xbd,0x28,0x38,0xa3,0x2a,0x2a,0x01,0x88,0x01,0x42,0x91,0x01,0x18,0x96,0x12,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x98,0x04,0x00,0x00,0x17,0x00,0x2d,0x40,0x16,0x16,0x13,0x0c,0x02,0x0c,0x02,0x19,0x17,0x06,0x83,0x13,0x0c,0x0c,0x09,0x95,0x10,0x16,0x03,0x16,0x95,0x00,0x0f,0x00,0x3f,0xed,0x32, -0x3f,0xed,0x32,0x2f,0x01,0x2f,0xe9,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x37,0x23,0x60,0x03,0x38,0xfe,0xe3,0x9c,0xbf,0xbd,0x93,0x44,0x7f,0x44,0x45,0x82,0x44,0xdd,0xfe,0xe7,0x72,0x5a,0xe2,0x04,0x00, -0x89,0xda,0xaf,0xa1,0xdc,0x2b,0x30,0x9c,0x29,0x1f,0x01,0x16,0xdf,0x95,0xcc,0x39,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x09,0x00,0x25,0x40,0x12,0x08,0x7e,0x01,0x07,0x07,0x0b,0x04,0x7e,0x03,0x02,0x91,0x05,0x05,0x07,0x03,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33, -0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x4a,0xfc,0x72,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0x03,0x0c,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x00,0x02,0xff,0xe5,0xfe,0x1e,0x03,0x30,0x05,0xec,0x00,0x22,0x00,0x2c,0x00,0x55,0x40,0x2c,0x00,0x08,0x84,0x12,0x23,0x20,0x12,0x0c,0x04,0x12,0x04,0x12,0x04,0x2e, -0x28,0xef,0x1a,0x07,0x17,0x96,0x04,0x03,0x2b,0x00,0x2b,0x25,0x96,0x1d,0x20,0x1d,0x20,0x2b,0x01,0x2b,0x1d,0x2b,0x1d,0x0f,0x21,0x00,0x0a,0x95,0x0f,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x11,0x33,0x33, -0x10,0xe9,0x32,0x31,0x30,0x01,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x07,0x22,0x07,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x03,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x16,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0xac,0x3c,0x32,0x29,0x4d,0x8e, -0xba,0x15,0x0c,0x0d,0x2e,0x8d,0xa4,0x85,0x6a,0x25,0x53,0x26,0xa4,0xa4,0x04,0x8f,0x2a,0x39,0x4d,0x61,0x25,0x03,0x8b,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfc,0x8d,0xdf,0x1a,0x93,0x13,0xc0,0xa1,0x03,0x51,0x02,0x01,0x01,0x81,0x73,0x65,0x7b,0x16,0x22,0x01,0x84,0xfd,0x6a,0xc4,0x30,0x2a,0x3a,0x36,0x00,0x01,0x00,0xbc,0xfe,0x7f, -0x06,0x00,0x05,0x9a,0x00,0x1a,0x00,0x38,0x40,0x1c,0x12,0x0c,0x7e,0x0b,0x0e,0x7f,0x10,0x0b,0x10,0x0b,0x10,0x1c,0x02,0x1a,0x7e,0x00,0x15,0x06,0x01,0x1a,0x10,0x0d,0x91,0x12,0x12,0x0b,0x01,0x03,0x00,0x3f,0x33,0x3f,0xed,0xce,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x33,0x31,0x30, -0x33,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0xbc,0xda,0x02,0xce,0x17,0x1c,0x07,0x04,0x05,0x05,0xa8,0xc0,0x9b,0xf3,0xfd,0x1e,0x1b,0x13,0x06,0x04,0x04,0x05,0x9a,0xfb,0x9b,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x03,0xf2,0xfa,0xfe,0xfd,0xe7, -0x01,0x81,0x04,0x77,0x2a,0x30,0x17,0x61,0x4d,0xfb,0xf4,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x18,0x00,0x16,0x00,0x35,0x40,0x1b,0x13,0x84,0x01,0x15,0xed,0x16,0x01,0x16,0x01,0x16,0x18,0x0b,0x08,0x84,0x09,0x0c,0x04,0x0f,0x10,0x0a,0x0f,0x08,0x15,0x16,0x13,0x01,0x15,0x00,0x3f,0xcd,0xce,0x3f,0x3f,0x3f,0xcd,0x32, -0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x11,0x23,0x04,0x02,0xae,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x97,0x8d,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa, -0xc2,0xd8,0xce,0xfe,0x19,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x1b,0x00,0x3e,0x40,0x1f,0x15,0x06,0x06,0x1d,0x1a,0x01,0x7d,0x0f,0x0d,0x0c,0x14,0x15,0x15,0x17,0x91,0x12,0x01,0x0c,0x91,0x1a,0x0f,0x0f,0x12,0x04,0x07,0x06,0x06,0x04,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0x39,0x2f, -0x33,0xed,0x32,0x10,0xed,0x32,0x2f,0x33,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x03,0x23,0x35,0x33,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x02,0xa2,0xfe,0x6e,0x10,0x01,0x18,0xde,0xd8,0x9e,0x9f,0xed,0xfe,0xdc,0xfe,0x93, -0x10,0x5f,0x62,0x1d,0x01,0x91,0x01,0x2a,0xcb,0x87,0x9b,0xb9,0xe3,0xfe,0xd6,0x19,0x01,0x90,0x02,0x7d,0xe7,0xfe,0xe9,0x60,0xa3,0x54,0x01,0x6b,0x01,0x2a,0x9b,0x01,0x25,0x01,0x75,0x3b,0xb3,0x56,0xfe,0xe8,0xea,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x1b,0x00,0x32,0x40,0x19,0x07,0x14,0x14,0x1d,0x0c,0x0f, -0x83,0x01,0x00,0x1a,0x0f,0x1a,0x95,0x0c,0x00,0x00,0x04,0x12,0x95,0x17,0x16,0x09,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15, -0x06,0x23,0x22,0x00,0x27,0x23,0x68,0x1f,0x01,0x15,0xd8,0x85,0x69,0x73,0x81,0x89,0xbc,0x19,0x01,0x36,0xfe,0xc3,0x09,0xbc,0x96,0x85,0x77,0x77,0xa1,0xd5,0xfe,0xf5,0x08,0x60,0x02,0x5c,0xc6,0xf6,0x32,0xa8,0x50,0xac,0x86,0x8b,0xa5,0xba,0x59,0x9c,0x47,0x01,0x0d,0xdc,0x00,0x01,0x00,0x01,0xff,0xe8,0x05,0x1a,0x05,0xb2,0x00,0x1f, -0x00,0x78,0x40,0x2b,0x19,0x19,0x00,0x00,0x0b,0x7e,0x06,0x08,0x06,0x08,0x06,0x21,0x1e,0x01,0x7e,0x13,0x10,0x19,0x19,0x1b,0x91,0x16,0x10,0x01,0x11,0x00,0x00,0x1f,0x08,0x91,0x13,0x1e,0x12,0x1f,0x12,0x11,0x1f,0x16,0x11,0xc0,0x09,0x01,0x09,0xb8,0xff,0xc0,0xb3,0x0f,0x13,0x48,0x09,0xb8,0xff,0xc0,0x40,0x0d,0x0a,0x0d,0x48,0x09, -0x09,0x16,0x04,0x0b,0x06,0x04,0x91,0x0d,0x13,0x00,0x3f,0xed,0x32,0x32,0x3f,0x39,0x2f,0x2b,0x2b,0x5d,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x32,0x2f,0x32,0x2f,0x31,0x30,0x01,0x01,0x16,0x00,0x33,0x32, -0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x03,0x07,0x35,0x37,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x01,0x05,0x1a,0xfb,0xf6,0x13,0x01,0x19,0xe5,0xa9,0x7a,0xfe,0xc6,0x01,0xe2,0xd9,0xfe,0xf9,0xfe,0xe7,0xfe,0x92,0x20,0x64,0x5d,0x0b,0x01,0xa2,0x01,0x3b,0xeb,0x9e,0xaf,0xed,0xe2,0xfe,0xd5,0x14,0x04, -0x08,0x03,0xe0,0xfe,0x9c,0xed,0xfe,0xf0,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x4c,0x01,0x0d,0x22,0x9a,0x20,0x01,0x41,0x01,0x98,0x4c,0xba,0x6e,0xfe,0xdc,0xe0,0x01,0x64,0x00,0x03,0x00,0x00,0xfe,0x1e,0x04,0x81,0x04,0x18,0x00,0x21,0x00,0x29,0x00,0x31,0x00,0x60,0x40,0x34,0x22,0x2a,0x84,0x0d,0x0b,0x00,0x0e,0x1b,0x1b,0x19, -0x1d,0x84,0x2b,0x29,0x16,0x04,0x00,0x02,0x95,0x1f,0x1b,0x17,0x0f,0x15,0x2e,0x95,0x1c,0x29,0x22,0x0b,0x04,0x0c,0x1b,0x1b,0x19,0x2a,0x0e,0x03,0x0d,0x1a,0x0d,0x0c,0x1a,0x0c,0x08,0x13,0x10,0x05,0x25,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x3f, -0x3f,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0xf9,0x32,0xc2,0x2f,0x2f,0xc4,0x33,0xcd,0xe9,0x32,0x31,0x30,0x17,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x07,0x35,0x37,0x26,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x15,0x07,0x11,0x10,0x21,0x22,0x27,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x05,0x25, -0x26,0x26,0x23,0x22,0x06,0x15,0xa8,0xac,0x9e,0x01,0x7a,0x04,0x75,0xeb,0x96,0xd0,0x29,0x79,0x62,0x02,0xfa,0xdb,0xcf,0x64,0x04,0xa4,0x71,0x71,0xfd,0xe4,0xbe,0x8e,0x72,0x1e,0x91,0x6c,0x8a,0xad,0xfd,0x9c,0x02,0x5c,0x16,0x97,0x6b,0x99,0xab,0xf6,0x60,0x01,0x92,0x70,0xc4,0xa8,0x8e,0x29,0x8e,0x21,0x0e,0x1e,0x01,0x14,0x01,0x34, -0xa6,0x8e,0xfe,0xe9,0x27,0x8e,0x27,0xfd,0xf7,0xfd,0xcc,0x48,0x02,0xf0,0x67,0x7d,0xc4,0x99,0x53,0x45,0xd1,0x5c,0x84,0xdf,0xc5,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x17,0x00,0x1d,0x00,0x57,0x40,0x2f,0x0b,0x10,0x0d,0x09,0x0a,0x0a,0x11,0x10,0x10,0x1f,0x13,0x04,0x19,0x7e,0x17,0x01,0x15,0x0f,0x12,0x13, -0x16,0x04,0x17,0x0e,0x0e,0x0c,0x1a,0x19,0x01,0x04,0x00,0x0d,0x00,0x17,0x17,0x18,0x0b,0x04,0x0d,0x05,0x02,0x11,0x15,0x12,0x09,0x02,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0xc6,0xed,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x33,0x11,0x39,0x31, -0x30,0x13,0x37,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x25,0x15,0x05,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x07,0x01,0x15,0x37,0x27,0x26,0x27,0x12,0xaa,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0x81,0x01,0xfb,0xfe,0x6a,0x01,0xac,0xea,0xfe,0x97,0xeb,0xa8,0xaa,0x01,0x52,0x89,0x5f,0x1e,0x08,0x01,0x7c, -0x3a,0x03,0xe4,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x93,0xaf,0x96,0x8c,0xfe,0x1c,0x01,0xab,0x51,0xfe,0xa6,0x01,0x20,0x3a,0x01,0xdc,0xd2,0x2f,0x71,0x24,0x0e,0x00,0x00,0x02,0x00,0x26,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x18,0x00,0x54,0x40,0x2e,0x12,0x11,0x15,0x0e,0x06,0x84,0x0b,0x09,0x07,0x14,0x10,0x11, -0x11,0x03,0x02,0x01,0x04,0x05,0x08,0x04,0x09,0x00,0x00,0x13,0x16,0x15,0x0b,0x04,0x0a,0x14,0x0a,0x09,0x09,0x17,0x12,0x0e,0x14,0x05,0x07,0x10,0x0f,0x0c,0x00,0x03,0x07,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0xce,0x33,0xe9, -0x32,0x32,0x11,0x39,0x31,0x30,0x01,0x05,0x01,0x23,0x01,0x07,0x15,0x23,0x35,0x07,0x35,0x37,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x25,0x05,0x37,0x27,0x23,0x03,0xea,0xfe,0xc2,0x01,0x4c,0xe6,0xfe,0xf7,0xbf,0xa4,0x80,0x80,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x4d,0x01,0xa5,0xfd,0x60,0x5c,0x58,0x04,0x01,0xc5,0x6d,0xfe,0xa8, -0x01,0x20,0x42,0xde,0xa6,0x2c,0x8e,0x2c,0x04,0xb8,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x50,0x91,0xe7,0x20,0x60,0x00,0x00,0x03,0x00,0x12,0x00,0x00,0x05,0xea,0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0x26,0x00,0x58,0x40,0x31,0x0c,0x08,0x0a,0x0a,0x08,0x7e,0x25,0x07,0x07,0x28,0x18,0x04,0x11,0x7e,0x02,0x00,0x12,0x0c,0x25,0x26,0x0f,0x10, -0x13,0x06,0x00,0x0b,0x0b,0x06,0x09,0x01,0x0a,0x01,0x00,0x20,0x00,0x02,0x18,0x19,0x05,0x0a,0x14,0x08,0x03,0x0e,0x12,0x12,0x07,0x03,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xce,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x31,0x30, -0x13,0x35,0x37,0x11,0x33,0x01,0x25,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x23,0x01,0x05,0x11,0x23,0x11,0x13,0x16,0x16,0x15,0x11,0x25,0x03,0x26,0x27,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x05,0x12,0xaa,0xda,0x01,0x90,0x01,0x72,0xa8,0xaa,0xaa,0xce,0xfe,0x6a,0xfe,0x88,0xa8,0xa0,0x04,0x04,0x01,0x26,0xfa,0x1b,0x13,0x03, -0x02,0x17,0x1c,0x07,0x04,0x05,0x05,0xfe,0xde,0x01,0x82,0x9a,0x3a,0x03,0x44,0xfd,0x8e,0x7e,0x01,0xf4,0xfe,0x45,0x3a,0x9a,0x3a,0xfc,0xbb,0x02,0x75,0x80,0xfe,0x0b,0x01,0xbc,0x03,0x15,0x17,0x61,0x4d,0xfe,0x83,0x64,0x01,0x84,0x2a,0x30,0xfc,0x64,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x01,0x64,0x63,0x00,0x00,0x02,0x00,0x19,0x00,0x00, -0x04,0x86,0x04,0x18,0x00,0x15,0x00,0x1c,0x00,0x55,0x40,0x2e,0x17,0x0d,0x06,0x84,0x0b,0x09,0x07,0x14,0x02,0x00,0x00,0x02,0x84,0x18,0x03,0x0f,0x1a,0x95,0x01,0x04,0x05,0x03,0x09,0x00,0x00,0x14,0x18,0x17,0x0b,0x04,0x0a,0x15,0x0a,0x09,0x09,0x08,0x15,0x03,0x06,0x11,0x10,0x0d,0x0f,0x03,0x06,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12, -0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x01,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x2f,0xce,0x33,0xe9,0x32,0x32,0x31,0x30,0x01,0x07,0x11,0x23,0x11,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x37,0x05,0x15,0x25,0x26,0x23,0x22,0x06,0x04,0x86,0x8e,0xa4, -0xfd,0xf6,0xa4,0x8d,0x8d,0xa4,0x04,0x74,0xdc,0x93,0xad,0x14,0x94,0xfc,0xc4,0x02,0x05,0x1d,0xcc,0x7a,0xa2,0x02,0x78,0x30,0xfd,0xb8,0x02,0x10,0xb4,0xfe,0xa4,0x01,0x23,0x30,0x8e,0x30,0x02,0x4f,0xaa,0xc2,0xa6,0x9e,0x32,0xbe,0x5e,0xb2,0xf2,0xb8,0x00,0x03,0x00,0x12,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1d,0x00,0x24,0x00,0x2a, -0x00,0x65,0x40,0x35,0x0f,0x22,0x1c,0x15,0x14,0x09,0x09,0x14,0x14,0x2c,0x07,0x0c,0x27,0x23,0x26,0x1e,0x1b,0x7e,0x02,0x00,0x1c,0x0a,0x23,0x24,0x1d,0x04,0x00,0x09,0x09,0x07,0x27,0x26,0x02,0x04,0x01,0x08,0x01,0x00,0x0f,0x1e,0x91,0x08,0x00,0x1a,0x1a,0x03,0x15,0x1b,0x12,0x25,0x91,0x03,0x03,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39, -0x2f,0x39,0x39,0xed,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x2f,0x33,0xc1,0x32,0x11,0x33,0x2f,0x33,0x2f,0x11,0x33,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x37,0x11,0x21,0x32,0x16,0x17,0x37,0x15,0x07,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x01,0x23,0x03,0x26,0x26, -0x23,0x23,0x11,0x23,0x11,0x17,0x33,0x32,0x36,0x35,0x35,0x05,0x11,0x11,0x25,0x26,0x26,0x23,0x12,0xaa,0x01,0xac,0x84,0xcd,0x35,0xbc,0x91,0x03,0xa7,0x97,0x2f,0x4d,0x59,0x01,0x0d,0xc8,0xf0,0x47,0x7b,0x58,0x8a,0xa8,0xa8,0xe4,0x81,0xa3,0xfd,0xf8,0x01,0xdb,0x23,0x7b,0x57,0x02,0xf4,0x9a,0x3a,0x01,0xd2,0x5d,0x5f,0x40,0x9a,0x31, -0x1b,0x1c,0x90,0xcb,0x27,0x04,0x15,0x44,0x8e,0xfe,0x51,0x01,0x92,0x79,0x57,0xfd,0x9e,0x03,0x2e,0x34,0x97,0x7d,0x0a,0xb1,0x01,0x9b,0xfe,0xff,0xa1,0x2f,0x31,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x17,0x00,0x48,0x40,0x23,0x17,0x11,0x11,0x19,0x16,0x09,0x02,0x84,0x07,0x05,0x03,0x11,0x11,0x0b,0x13,0x0e, -0x10,0x04,0x01,0x05,0x00,0x00,0x07,0x16,0x06,0x17,0x06,0x05,0x17,0x05,0x03,0x08,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x3f,0xcd,0x32,0x32,0x2f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33, -0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x25,0x02,0xa4,0xfe,0xa6,0xa4,0x83,0x83,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x2c,0x50,0x69,0x8d,0x01,0x5a,0x02,0x20,0xa1,0xfe,0x81,0x01,0x33,0x3c,0x92,0x3c,0x02,0x3b,0xd3,0x6e,0x77,0x0e,0xaa,0x21,0xc5,0xa5,0xa1,0x00,0x00,0x01,0x00,0x45,0xff,0xe8,0x04,0x06, -0x05,0xb2,0x00,0x2a,0x00,0x5b,0x40,0x31,0x0f,0x7d,0x00,0x04,0x15,0x15,0x19,0x7d,0x26,0x04,0x26,0x0a,0x0a,0x26,0x04,0x03,0x2c,0x20,0x1f,0x20,0x29,0x16,0x2a,0x15,0x15,0x01,0x13,0x00,0x14,0x00,0x2a,0x26,0x19,0x2a,0x14,0x04,0x0f,0x06,0x07,0x23,0x91,0x1c,0x13,0x09,0x0a,0x0c,0x91,0x07,0x04,0x00,0x3f,0xed,0xcd,0x32,0x3f,0xed, -0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xc4,0x32,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xf9,0xc2,0x2f,0x10,0xc6,0xe9,0x31,0x30,0x13,0x25,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x25,0x15,0x05,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26, -0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x05,0x45,0x01,0x2b,0x86,0x6f,0x01,0x1b,0xd7,0xd3,0x62,0x7f,0xc7,0x8a,0xa7,0x54,0x8e,0x3f,0x01,0xba,0xfe,0xf0,0x7b,0x6d,0xfe,0xf2,0xf0,0x52,0xe2,0x33,0x40,0xe2,0x5f,0x9c,0x98,0x62,0xaf,0xfe,0x28,0x02,0x6f,0x66,0x4d,0xa4,0x6d,0xae,0xd1,0x33,0xbd,0x58,0x74,0x64,0x4d, -0x68,0x4d,0x1f,0x97,0x96,0x5d,0x4f,0xa8,0x64,0xba,0xc8,0x2f,0x23,0xc6,0x39,0x48,0x72,0x6d,0x4a,0x79,0x59,0xa1,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x2b,0x04,0x18,0x00,0x27,0x00,0x63,0x40,0x35,0x26,0x01,0x04,0x22,0x83,0x13,0x17,0x04,0x83,0x0e,0x27,0x1d,0x14,0x11,0x0e,0x17,0x0e,0x1d,0x1d,0x0e,0x17,0x03,0x29,0x09,0x1d,0x1f, -0x95,0x11,0x01,0x12,0x00,0x00,0x14,0x26,0x13,0x27,0x13,0x12,0x0e,0x04,0x12,0x27,0x17,0x22,0x06,0x07,0x1a,0x10,0x0a,0x0c,0x95,0x07,0x16,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xfd,0xc6,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x10,0xe9,0x10, -0xc6,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x35,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x25,0x03,0x2b,0x9e,0x3f,0x43,0xe2,0xb3,0x9f,0x73,0x85,0xa2,0xd8,0x41,0x68,0xfe,0xa2,0xa7, -0x53,0x4a,0xe2,0xa6,0x86,0x68,0x71,0x93,0x5b,0x6f,0x41,0x39,0x51,0x01,0x4e,0x02,0x2a,0x37,0x27,0x6a,0x50,0x89,0xa1,0x3d,0xb0,0x63,0x90,0x33,0x4d,0x2a,0x78,0x8e,0x39,0x2d,0x74,0x54,0x84,0xa4,0x2e,0xa6,0x4a,0x50,0x40,0x3b,0x45,0x18,0x21,0x73,0x00,0x01,0xff,0xac,0x00,0x00,0x05,0x44,0x05,0x9a,0x00,0x17,0x00,0x39,0x40,0x1e, -0x17,0x7e,0x14,0x00,0x00,0x04,0x19,0x09,0x7e,0x0e,0x13,0x03,0x7e,0x04,0x15,0x03,0x02,0x91,0x13,0x0b,0x0b,0x04,0x06,0x91,0x11,0x03,0x04,0x12,0x00,0x12,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x2f,0xed,0x3f,0x01,0x2f,0xed,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0x33,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x23,0x22,0x06, -0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x9c,0xfd,0x1a,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc8,0x9a,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x02,0x5c,0x4e,0x36,0x34,0x36,0x44,0x88,0xaa,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x02,0x00,0x19,0x02,0x9a,0x03,0x4b,0x05,0x9a,0x00,0x13, -0x00,0x17,0x00,0x5d,0xb3,0x0a,0x0a,0x08,0x0c,0xb8,0x01,0x0c,0xb7,0x14,0x05,0x0d,0x0d,0x19,0x17,0x04,0x10,0xb8,0x01,0x0c,0xb3,0x13,0x01,0x11,0x0f,0xb8,0x01,0x0e,0x40,0x0a,0x30,0x17,0x40,0x17,0x02,0x17,0x17,0x00,0x0d,0x11,0xb8,0x01,0x0a,0xb2,0x16,0x0b,0x13,0xb8,0x01,0x0e,0xb4,0x08,0x04,0x00,0x06,0x02,0xb8,0x01,0x06,0x00, -0x3f,0x33,0xde,0x32,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xce,0xe1,0x32,0x32,0x12,0x39,0x2f,0x33,0x33,0xf1,0x32,0xca,0x2f,0x31,0x30,0x13,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x05,0x35,0x21,0x15,0x19,0x62,0x83,0x01,0x68,0x84,0x61, -0x61,0x84,0xfe,0x98,0x83,0x62,0x02,0x4d,0xfe,0x98,0x05,0x2b,0x6f,0x6f,0x6f,0x6f,0x70,0xfd,0xdf,0x01,0x4e,0xfe,0xb2,0x02,0x21,0x63,0x63,0x63,0x00,0x03,0x00,0x3e,0x02,0x89,0x03,0xf6,0x04,0xcf,0x00,0x1f,0x00,0x2b,0x00,0x30,0x00,0x7a,0xb3,0x15,0x02,0x30,0x0b,0xb8,0x01,0x0c,0xb2,0x22,0x0f,0x0a,0xb8,0x01,0x0c,0xb6,0x2c,0x22, -0x2c,0x22,0x2c,0x32,0x28,0xb8,0x01,0x0c,0xb2,0x1c,0x02,0x25,0xbb,0x01,0x0d,0x00,0x1f,0x00,0x0b,0x01,0x0d,0x40,0x0e,0x0c,0x30,0x1c,0x30,0x2c,0x30,0x03,0x30,0x0f,0x30,0x0f,0x1f,0x0d,0x2e,0x41,0x0d,0x01,0x0d,0x00,0x06,0x00,0x1f,0x01,0x09,0x00,0x15,0x00,0x2b,0x01,0x0d,0x00,0x19,0x00,0x0d,0x01,0x0d,0x00,0x12,0x00,0x19,0x01, -0x0b,0x00,0x3f,0xd4,0xed,0x10,0xed,0x32,0x3f,0xd4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x32,0x39,0x39,0x31,0x30,0x00,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x06, -0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x12,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x25,0x26,0x23,0x22,0x07,0x01,0x9f,0x71,0x2b,0x04,0x23,0x6a,0x37,0x71,0x82,0xfe,0x87,0x0b,0x99,0x5b,0x4f,0x48,0x78,0x3b,0x6c,0x29,0x04,0x26,0x71,0x48,0x7f,0x9b,0xa0,0x86,0x43,0x57,0x57,0x49,0x49,0x57,0x58,0x48,0x02,0x1d, -0x02,0x78,0x78,0x0c,0x04,0xcf,0x2c,0x3c,0x36,0x32,0x92,0x7b,0x43,0x8f,0x35,0x6f,0x2d,0x2a,0x3c,0x30,0x36,0x9d,0x80,0x85,0xa4,0xfe,0x25,0x61,0x57,0x58,0x60,0x61,0x57,0x57,0x61,0xee,0x8a,0x8a,0x00,0x01,0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x3b,0x40,0x1f,0x1b,0x0b,0x84,0x08,0x08,0x1f,0x14,0x12,0x84,0x11, -0x11,0x21,0x02,0x84,0x1f,0x1b,0x05,0x95,0x1d,0x16,0x15,0x0d,0x95,0x18,0x16,0x14,0x15,0x11,0x01,0x09,0x0f,0x00,0x3f,0x33,0x33,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35, -0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x67,0x7e,0x68,0x94,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6e,0xd0,0x6b,0x9a,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xa8,0x9a,0xc1,0x85,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb4,0x92,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1, -0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x7e,0x03,0x06,0x03,0x06,0x03,0x0b,0x09,0x04,0x91,0x07,0x07,0x00,0x03,0x12,0x08,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11, -0x21,0x54,0x02,0xd8,0xa8,0xfd,0xfa,0x02,0x06,0xfd,0xd0,0x05,0x9a,0xfa,0x66,0x02,0x7b,0x97,0x01,0xf0,0x00,0x02,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x28,0x40,0x14,0x11,0x08,0x7e,0x09,0x09,0x14,0x0d,0x7d,0x03,0x0a,0x91,0x11,0x11,0x06,0x09,0x12,0x12,0x91,0x06,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39, -0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x01,0x22,0x00,0x35,0x34,0x36,0x33,0x21,0x11,0x23,0x11,0x03,0x20,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0x5a,0xf0,0xfe,0xe8,0xff,0xe4,0x01,0x8a,0xa8,0xc5,0xfe,0xb0,0xb6,0xaf,0xb0,0x02,0x1e,0x01,0x05,0xcb,0xcd,0xdf,0xfa,0x66,0x02,0x1e,0x02,0xe4,0xfe,0xe4,0x92,0x9e, -0x02,0x4c,0x00,0x01,0x00,0xbd,0x00,0x00,0x06,0x73,0x05,0x9a,0x00,0x1e,0x00,0x30,0x40,0x18,0x15,0x13,0x7e,0x05,0x00,0x0d,0x12,0x12,0x20,0x1d,0x01,0x7e,0x00,0x0d,0x06,0x18,0x03,0x15,0x1d,0x12,0x12,0x09,0x00,0x03,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x39,0x12,0x39,0xe9,0x33,0x31,0x30, -0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0xbd,0xa7,0x07,0x07,0x04,0x18,0x13,0x01,0xea,0x52,0x01,0xe9,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0xfe,0x48,0x33,0x0f,0x06,0x16,0x22,0x0d,0xfe,0x3f,0xd2,0x05,0x9a,0xfc, -0x3e,0x39,0x8b,0x53,0x63,0x28,0x04,0x4e,0xfb,0xba,0x2e,0x65,0x2b,0x8b,0x63,0x03,0xc0,0xfa,0x66,0x03,0xe8,0x74,0x38,0x3c,0x57,0x1d,0xfc,0x1c,0x00,0x01,0x00,0xbc,0xfe,0x29,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x7e,0x01,0x01,0x04,0x05,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31, -0x30,0x01,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0xfe,0x29,0x07,0x71,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x09,0x12,0x05,0x9a,0x00,0x27,0x00,0x48,0x40,0x25,0x0c,0x0b,0x04,0x00,0x0f,0x15,0x14,0x24,0x1f,0x1e,0x18,0x18,0x24,0x0f,0x04,0x04,0x0a,0x1d,0x1d,0x29,0x27,0x10,0x0a,0x0f,0x18,0x04,0x23,0x04,0x09,0x1c,0x14,0x0b,0x03,0x1f, -0x00,0x09,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x01,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37, -0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x03,0x70,0xfe,0xcc,0x13,0x0a,0x03,0x04,0x03,0x12,0x0a,0xfe,0xd7,0xb6,0x01,0xb2,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0xb6,0xfe,0x6b,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0x04, -0x1a,0x46,0x23,0x25,0x25,0x46,0x23,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0xfa,0x66,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd7,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00, -0x01,0x07,0x02,0x3a,0x04,0x37,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xeb,0x06,0xd4,0x05,0xb0,0x00,0x27,0x0c,0xea,0x04,0x2e,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x06,0x00,0xf0,0x00,0x00,0x00,0x09,0xb3,0x01,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, -0x00,0x4a,0xff,0xec,0x09,0x19,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xf0,0x04,0x00,0xfd,0xb9,0x00,0x27,0x0c,0xe1,0x06,0x74,0x00,0x00,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x0e,0xb6,0x03,0x02,0x1a,0x2d,0x01,0x0d,0x2c,0x00,0x3f,0x35,0x3f,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xa3,0x05,0xb0, -0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x02,0x39,0x04,0x19,0xfd,0xb9,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x07,0xb2,0x01,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9, -0x00,0x07,0xb2,0x02,0x47,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x48,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0xff,0xec,0x06,0xa3,0x05,0x9a,0x00,0x26, -0x02,0x38,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x19,0xfd,0xb9,0x00,0x07,0xb2,0x03,0x39,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xb3,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x0d,0x00,0x00,0x00,0x09, -0xb3,0x03,0x02,0x2b,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x06,0xed,0x05,0x9e,0x00,0x26,0x02,0x39,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xf9,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x47,0x00,0x00,0x00,0x09,0xb3,0x03,0x02,0x43,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x05,0x71,0x05,0xb0, -0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff, -0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x05,0x12,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x00,0x4c,0x03,0xac,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x02,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x27,0x00,0x4c,0x03,0xac,0x00,0x00,0x00,0x07, -0x00,0x4c,0x05,0x9c,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18, -0x02,0x06,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x2d,0x40,0x17,0x11,0x7e,0x22,0x22,0x05,0x0a,0x7d,0x17,0x17,0x25,0x1c,0x7d,0x05,0x10,0x23,0x91,0x07,0x03,0x11,0x22,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12, -0x39,0x2f,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x11,0x03,0x64,0xaa,0xfe,0xe4,0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x66,0x68,0x8b,0xdd,0x9a,0x52,0xfd, -0xb6,0xfe,0x74,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfb,0x96,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x04,0x6a,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x2b,0x00,0x41,0x40,0x22,0x11,0x7e, -0x24,0x24,0x00,0x04,0x7d,0x1e,0x1e,0x2d,0x2b,0x0b,0x18,0x7e,0x00,0x2a,0x92,0x0b,0x2b,0x92,0x17,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x33,0x11,0x21, -0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xd4,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xd6,0x8b,0xdd,0x9a,0x52,0xfd, -0xb6,0x83,0x78,0x89,0x24,0x44,0x60,0x3c,0x5a,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfc,0xba,0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x05,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x48, -0x00,0x53,0x00,0x6b,0x40,0x39,0x45,0x7e,0x20,0x53,0x30,0x3d,0x7e,0x19,0x3e,0x26,0x19,0x36,0x7e,0x4c,0x20,0x19,0x4c,0x4c,0x19,0x20,0x03,0x05,0x0a,0x7d,0x2c,0x2c,0x55,0x13,0x7d,0x05,0x52,0x3f,0x92,0x26,0x30,0x26,0x53,0x3e,0x92,0x1a,0x3c,0x1a,0x26,0x1a,0x26,0x1a,0x00,0x2f,0x10,0x91,0x07,0x03,0x3d,0x19,0x91,0x00,0x12,0x00, -0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x33,0x10,0xe9,0x32,0x32,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x01, -0x23,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x01,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x03,0x64,0xaa,0xfe,0xe4, -0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xfe,0xf2,0x72,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x5c,0x65,0xa0,0x6f,0x3a,0x3b,0x6f,0xa1,0x65,0x5a,0x01,0x10,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x72,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xa8,0x5a,0x3c,0x60,0x44,0x24,0x89,0x78,0x01,0x62,0x78,0x89, -0x24,0x44,0x60,0x3c,0x5a,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x9d,0x38,0x6b,0x9d,0x65,0x65,0x95,0x61,0x30,0xfc,0x33,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x01,0x24,0x02,0x22,0x1a,0x3d,0x64,0x49,0x93,0x8b, -0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x19,0x00,0x2f,0x40,0x18,0x06,0x7d,0x13,0x13,0x1b,0x0d,0x19,0x0c,0x2f,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x13,0x00,0x19,0x19,0x17,0x91,0x02,0x04,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0x33,0x12, -0x39,0x2f,0xe9,0x31,0x30,0x13,0x36,0x33,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x23,0x22,0x07,0x68,0x9f,0xed,0x01,0x31,0xb9,0xb8,0xcf,0xcf,0xfe,0xc2,0xcb,0x87,0x9b,0xb9,0xf6,0x9b,0x99,0x8f,0x90,0xe9,0xd9,0x9d,0x05,0x5e,0x54,0xc5,0xc4,0xfe,0xbf,0xfe,0xa7,0xd3, -0xd4,0x3b,0xb3,0x56,0xa5,0xa5,0x01,0x14,0x01,0x05,0x9d,0x9b,0x60,0x00,0x00,0x01,0x00,0x5e,0xfe,0x7f,0x04,0x8c,0x05,0xb2,0x00,0x20,0x00,0x38,0x40,0x1e,0x1c,0x7f,0x1f,0x0d,0x1f,0x0d,0x22,0x14,0x7d,0x05,0x0c,0x30,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x04,0x20,0x1c,0x01,0x1c,0x1c,0x19,0x91,0x1e,0x00,0x13,0x00,0x3f,0xce,0xed, -0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x23,0x11,0x06,0x03,0x00,0xa1,0xfb,0xac,0x5a,0x6b,0xc2,0x01,0x0d,0xa2,0xcb,0x87, -0x9b,0xb9,0x87,0xcf,0x8c,0x48,0x47,0x87,0xc0,0x7a,0x6b,0xba,0x51,0x9b,0x6e,0x18,0x70,0xc2,0x01,0x04,0x94,0xa6,0x01,0x1a,0xcd,0x73,0x3b,0xb3,0x56,0x61,0xa6,0xdc,0x7b,0x7a,0xd1,0x9a,0x58,0x2f,0x32,0xfd,0x9f,0x01,0x83,0x1a,0x00,0x01,0x01,0x05,0xff,0xcc,0x05,0x57,0x05,0xc6,0x00,0x08,0x00,0x24,0x40,0x0f,0x03,0x08,0x01,0x07, -0x07,0x0a,0x05,0x07,0x00,0x06,0x06,0x03,0x01,0x05,0x03,0x00,0x2f,0xdd,0xc4,0x12,0x39,0x11,0x33,0x2f,0x01,0x2f,0x12,0x39,0x2f,0x39,0xc9,0x39,0x31,0x30,0x01,0x01,0x11,0x01,0x01,0x11,0x01,0x11,0x21,0x03,0xb1,0x01,0xa6,0xfd,0xd7,0xfd,0xd7,0x01,0xa8,0x01,0x04,0x01,0x66,0x01,0x70,0xfe,0xd7,0xfe,0x1f,0x01,0xe1,0x01,0x29,0xfe, -0x90,0x04,0x60,0x00,0x00,0x04,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x36,0x00,0x3f,0x00,0x65,0x40,0x18,0x2f,0x7f,0x3a,0x11,0x7e,0x26,0x3a,0x26,0x3a,0x26,0x00,0x04,0x7d,0x1e,0x1e,0x41,0x3f,0x36,0x2b,0x0b,0x18,0x7e,0x00,0x3e,0xb8,0x01,0x05,0xb4,0x2b,0x2a,0x92,0x0b,0x3f,0xb8,0x01,0x05,0x40,0x14, -0x35,0x36,0x92,0x17,0x40,0x0b,0x01,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xfd,0xd6,0xed,0x10,0xfd,0xd6,0xed,0x01,0x2f,0xe9,0x32,0x32,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x33,0x11,0x21, -0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe, -0xe4,0xaa,0xd4,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xd6,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x54,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x4c, -0x93,0xd8,0x8c,0x02,0x27,0xfc,0x6e,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x00,0x07,0x00,0x5e,0x00,0x00,0x08,0xba,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x53,0x00,0x69,0x00,0x72,0x00,0x7b,0x00,0x95,0x40,0x2c,0x4e,0x7e,0x2c,0x78,0x7f,0x45,0x72,0x69, -0x5e,0x19,0x26,0x7e,0x3c,0x73,0x49,0x3e,0x32,0x3c,0x62,0x7f,0x6d,0x1f,0x7e,0x59,0x2c,0x45,0x3c,0x6d,0x59,0x59,0x6d,0x3c,0x45,0x2c,0x05,0x05,0x0a,0x7d,0x15,0x36,0x7d,0x05,0x71,0x74,0xb8,0x01,0x05,0x40,0x13,0x5e,0x49,0x5d,0x4a,0x92,0x19,0x20,0x32,0x30,0x32,0x02,0x32,0x18,0x33,0x91,0x07,0x03,0x72,0x73,0xb8,0x01,0x05,0x40, -0x0f,0x68,0x3f,0x69,0x3e,0x92,0x25,0x2f,0x3d,0x01,0x3d,0x26,0x3c,0x91,0x00,0x12,0x00,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x01,0x2f,0xe9,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x33,0x33,0x33,0x33,0x10, -0xe9,0x32,0x32,0x32,0x32,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x37,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x20,0x11,0x14,0x1e,0x02, -0x33,0x33,0x3d,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x64,0xaa,0xfe, -0xe4,0xce,0x72,0x02,0xf6,0x02,0x70,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x02,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0xe0,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xfe,0xca,0x7d,0xc4,0x89,0x48,0x48,0x89,0xc6,0x7d,0x8c,0xe0,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0xd6,0x3e,0x48,0x77,0x56,0x30,0xa8,0x9f,0x3c,0x8c,0xbf,0xb1,0x2a,0x5a, -0x8b,0x61,0x01,0xc0,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0xa8,0x3c,0x5c,0x56,0x56,0x5c,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x98,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x5b,0x42, -0x7e,0xb5,0x73,0x7c,0xb2,0x71,0x35,0x53,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x5b,0x7d,0x4b,0x1e,0x44,0x6e,0x50,0x90,0x7c,0x4b,0xaf,0xa8,0x4a,0x83,0x64,0x3a,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x01,0x4e,0x48,0x55,0x5f,0x52,0x00,0xff,0xff,0x00,0x48,0xff,0xec, -0x06,0xd9,0x05,0xae,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x00,0x27,0x00,0xf2,0x04,0x4b,0xfd,0xb9,0x01,0x06,0x08,0x8d,0x00,0x00,0x00,0x07,0xb2,0x01,0x23,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0x46,0x04,0x27,0x01,0xb6,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x52,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30, -0x01,0x21,0x35,0x21,0x04,0x27,0xfb,0xd9,0x04,0x27,0x01,0x46,0x70,0x00,0x00,0x02,0x00,0xab,0xfe,0x0a,0x07,0x59,0x03,0x0f,0x00,0x2e,0x00,0x35,0x00,0x00,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03, -0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0xfd,0x6c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x03,0x0f,0xfe,0x89, -0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xac,0x03,0x0f,0x00,0x1f,0x00,0x26,0x00,0x00,0x01,0x14, -0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xa9,0xec,0x7d,0xab, -0xa8,0x79,0xe6,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x02,0x00,0xab,0xfe,0x0a,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35, -0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0xa7,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x02, -0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0xfb,0xab,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xa6,0x03,0x0f,0x00,0x16,0x00,0x1d,0x00,0x00,0x37,0x32,0x3e,0x02, -0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x49,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20, -0x20,0x33,0xfd,0x71,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xb2,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x00,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36, -0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe, -0xf9,0xb9,0xb9,0xfe,0xe9,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x0e,0xb5,0x03,0x7e,0xb5,0xb5,0xb5,0x00,0x04, -0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xb2,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, -0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63,0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31, -0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xd4,0xb9,0xb9,0xf2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80,0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19, -0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfc,0xe6,0xb5,0x03,0xa6,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x04,0xb2,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32, -0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42, -0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x15,0x22, -0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39, -0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10, -0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7,0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x38,0x00,0x3c,0x00,0x00,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92, -0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a, -0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36, -0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, -0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82, -0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x00,0x04,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33, -0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23, -0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a, -0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26, -0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26, -0x70,0x89,0x9d,0x54,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a, -0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x06,0x3c,0x00,0x36,0x00,0x4a,0x00,0x4e,0x00,0x52,0x00,0x56, -0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35, -0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f, -0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60, -0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6,0x03,0x49,0x06,0x3c,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, -0x00,0x48,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33, -0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9, -0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6, -0x04,0x02,0x06,0x3c,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8, -0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17, -0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x08,0x04,0x06,0x3c,0x00,0x41,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x01,0x34,0x3e,0x02, -0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36, -0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xb0,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d, -0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07, -0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5, -0x00,0x05,0x00,0x9b,0xfc,0xb6,0x05,0x4b,0x04,0x79,0x00,0x30,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05, -0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21, -0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26, -0x1d,0x32,0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x03,0x1f,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x05,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e, -0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81, -0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04, -0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00,0x05,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16, -0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30, -0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9, -0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00, -0x00,0x05,0x00,0x9b,0xfc,0xb6,0x06,0x03,0x04,0x79,0x00,0x30,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e, -0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e, -0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86,0x65,0x04,0x0e,0xfe,0xf5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19, -0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x02,0xb6,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x51,0x05,0xec,0x00,0x2d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, -0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xa8,0x8f,0xe4, -0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x00,0x26,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32, -0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x2e,0x47,0x30,0x18,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xe0,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x0f,0x2a, -0x48,0x39,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x2f,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21, -0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfe,0x2c,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20, -0x20,0x33,0x12,0x2c,0x47,0x35,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x38,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02, -0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04, -0x5c,0x83,0x6d,0xfe,0x30,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x05,0x00,0x39,0xfd,0xff,0x03,0xf4,0x05,0x91,0x00,0x26,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, -0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x02,0xac,0x4c,0x79,0x55,0x2e, -0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30, -0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0f,0x0d,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x03,0xf4,0x05,0x91,0x00,0x23,0x00,0x33,0x00,0x37, -0x00,0x3b,0x00,0x3f,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x23,0x23, -0x23,0x23,0x1a,0x3f,0x57,0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0xb0,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f, -0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x02,0x89,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x91,0x00,0x30,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x05,0x23,0x22,0x26, -0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33,0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x5b, -0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4,0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0xaf,0xb9,0xb9,0x01,0x42, -0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0x02,0x85,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0x00,0x39, -0xfd,0xff,0x04,0xad,0x05,0x91,0x00,0x2f,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, -0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55, -0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24,0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01, -0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x04,0x00,0x82,0xfe,0x10,0x05,0x91,0x04,0xcc,0x00,0x35,0x00,0x4e,0x00,0x52,0x00,0x56,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, -0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d, -0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xfe,0xa1,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58, -0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x05,0x0c,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x4a,0xb5,0xb5,0xb5, -0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x05,0x3e,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x37,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26, -0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x63,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c, -0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x05,0x78,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x1f,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23, -0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23, -0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0d,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xdf,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0xc4,0x03,0x04,0x25, -0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x6e,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x82,0xfd,0xc0,0x06,0xae,0x04,0x68,0x00,0x44,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34, -0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67, -0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0x36,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55, -0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57, -0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x03,0x64,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x5e,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x9a,0xfe,0x10,0x05,0x91,0x04,0x78,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06, -0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b, -0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0x9d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xb2,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23, -0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0xfe,0xbb,0xb5,0xb5,0xb5,0x04,0xfe,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01, -0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x04, -0xa2,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xf2, -0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xec,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfb,0x97,0xb5,0xb5,0xb5,0x04, -0xa2,0xb5,0x00,0x04,0x00,0x9a,0xfd,0xc0,0x06,0xae,0x03,0xba,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, -0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d, -0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x9b,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c, -0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0xfd,0x27,0xb5,0xb5,0xb5,0x04,0x90,0xb5,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x28,0x00,0x38,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e, -0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1a,0x28,0x1c,0x0f,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f, -0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26,0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x41,0x8e,0x8f,0x8b,0x3e,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10, -0x10,0x1c,0x15,0x0c,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x30,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32, -0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1e,0x2b,0x0f,0x06,0x1c,0x31,0x49,0x32,0x16,0x3f,0x4a,0x1a,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f,0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26, -0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x4c,0xa5,0x53,0x21,0x31,0x20,0x0f,0xa7,0x24,0x21,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10,0x10,0x1c,0x15,0x0c,0x00, -0x00,0x03,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x3a,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01, -0x23,0x35,0x33,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0x93,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41, -0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xfe,0x8c,0xb5,0x00,0x03,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x3c,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e, -0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c,0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30, -0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0x7f,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x56,0x48,0xbf,0x6d,0xa7, -0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xfe,0x23,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x03,0xfe,0x03,0x62,0x00,0x3d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x00,0x25,0x16,0x16,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23, -0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x27,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x15,0x1d,0x47,0x26,0x19,0x23,0x23,0x23, -0x23,0x22,0x17,0x3f,0x4a,0x51,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x10,0x22,0x0a,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x82,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9, -0x01,0x42,0xb9,0xb9,0xa5,0x05,0x07,0x33,0x20,0x20,0x34,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05,0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0xa2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20, -0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x04,0x1c,0x03,0x62,0x00,0x37,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34, -0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x1c,0x30,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x0e,0x25, -0x09,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x39,0x8b,0xfe,0xd3,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05, -0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xd4,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x01,0x00,0x00,0x06,0x40,0x02,0x35,0x07,0xaa,0x00,0x1b, -0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23, -0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0x33,0x08,0x14,0x00,0x2a,0x00,0x37,0x00,0x00,0x01,0x06,0x07,0x06,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x36,0x37,0x26,0x27,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x37,0x27,0x34,0x26, -0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x02,0x33,0x25,0x29,0x0b,0x11,0x22,0x72,0x54,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x2d,0x26,0x12,0x10,0x10,0x10,0x1c,0x2c,0x1b,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x0f,0x0e,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x07,0x07,0x0c,0x09, -0x14,0x12,0x25,0x31,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x0b,0x05,0x07,0x02,0x05,0x09,0x24,0x38,0x27,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x14,0x15,0x06,0x07,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x02,0x1a,0x00,0x00,0x01,0x00,0x00,0xfe,0x89,0x02,0x35,0xff,0xf3,0x00,0x1b,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02, -0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfe,0x89,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00, -0x00,0x02,0x00,0x00,0x06,0x40,0x02,0x7b,0x08,0x72,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22, -0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e, -0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x04,0x00,0x00,0x06,0x76,0x02,0xdd,0x08,0xfa,0x00,0x28,0x00,0x51,0x00,0x5e,0x00,0x6c,0x00,0x00,0x01,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x2e,0x03, -0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x37,0x01,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x06,0x06,0x07,0x17,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x05,0x34,0x26,0x23,0x22, -0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x02,0xdd,0x26,0x28,0x0f,0x2e,0x40,0x53,0x34,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x43,0x31,0x19,0x2f,0x24,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0xfd,0x35,0x25,0x29,0x0f,0x2e,0x40,0x52,0x35,0x21,0x44,0x3e,0x30,0x0e,0x44,0x08,0x19, -0x27,0x34,0x22,0x44,0x31,0x19,0x2f,0x25,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x01,0xdd,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x12,0x20,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x1a,0x2d,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x17,0x03,0x15,0x24, -0x34,0x23,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x16,0x13,0x03,0x06,0x04,0x01,0x14,0x0c,0x09,0x19,0x2e,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0d,0x22,0x1e,0x15,0x18,0x03,0x15,0x24,0x34,0x22,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x15,0x13,0x02,0x07,0x03,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x03,0x1b,0xb1,0x2a,0x21,0x24, -0x1f,0x1f,0x24,0x01,0x01,0x1b,0x00,0x02,0x00,0x00,0xfd,0xc1,0x02,0x7b,0xff,0xf3,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15, -0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfd,0xc1,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b, -0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x01,0x00,0x64,0x06,0x76,0x01,0x1d,0x07,0x2b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x06,0x76,0xb5,0x00,0x00,0x02,0x00,0x64,0x06,0x76, -0x02,0x5f,0x07,0x2b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x06,0x76,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0x06,0x41,0x02,0x3f,0x07,0xda,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16, -0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1a,0x1e,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e,0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d, -0x4c,0x3f,0x11,0x06,0x41,0x23,0x20,0x04,0x04,0x06,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0b,0x04,0x05,0x23,0x26,0xcf,0x2a,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x01,0x00,0x64,0xfe,0xa6,0x01,0x1d,0xff,0x5b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0xfe,0xa6, -0xb5,0x00,0x00,0x02,0x00,0x64,0xfe,0xa6,0x02,0x5f,0xff,0x5b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xa6,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0xfd,0xd1,0x02,0x3f,0xff,0x6a,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22, -0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1b,0x1d,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e, -0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d,0x4c,0x40,0x11,0xfd,0xd1,0x23,0x21,0x05,0x03,0x07,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0a,0x05,0x04,0x24,0x26,0xd0,0x29,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0xae,0x08,0x74,0x00,0x03,0x00,0x07,0x00,0x00, -0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0x06,0xde,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x04,0xff,0xbf,0x06,0x55,0x03,0xd2,0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x51,0x00,0x5f,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32, -0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, -0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x01,0xcf,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e, -0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25, -0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0xe9,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x00,0xfd,0x6c,0x02,0xae,0xff,0x6a,0x00,0x03,0x00,0x07, -0x00,0x00,0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0xfd,0xd4,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x01,0xc8,0x08,0xdd,0x00,0x23,0x00,0x35,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x3c,0x5c,0x2b,0x34,0x41,0x25,0x0e,0x15,0x2d,0x17,0x24,0x42,0x33,0x1e,0x1a,0x2e,0x3f,0x24,0x26,0x45,0x1d,0x1d,0x1d,0x1e,0x3f,0x63,0x45,0x31,0x5c,0x36,0x01,0x6a,0x01,0x11, -0x1d,0x25,0x15,0x0f,0x1c,0x17,0x0e,0x12,0x1d,0x27,0x15,0x13,0x28,0x07,0x01,0x18,0x12,0x1e,0x31,0x3d,0x20,0x08,0x0a,0x16,0x2a,0x3d,0x28,0x22,0x47,0x39,0x25,0x2b,0x2e,0x2d,0x70,0x47,0x3e,0x6c,0x51,0x2f,0x10,0x19,0x01,0x3d,0x14,0x38,0x33,0x24,0x0f,0x1a,0x24,0x14,0x13,0x1f,0x15,0x0c,0x06,0x00,0x00,0x03,0x00,0x0a,0x06,0x7b, -0x02,0x06,0x08,0x1c,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x00,0x13,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x32,0x36,0x37,0x23,0x16,0x16,0x13,0x22,0x06,0x07,0x33,0x26,0x26,0x0a,0x5c,0x0a,0x50,0x42,0x42,0x52,0x0b,0x65,0x64,0x08,0x50,0x48,0x45,0x51,0x08,0x5a,0xfb,0x2a,0x22, -0x04,0xa3,0x04,0x25,0x2a,0x27,0x26,0x05,0xa0,0x05,0x23,0x07,0x7e,0x50,0x4e,0x4e,0x50,0x58,0x55,0x56,0x56,0x55,0x60,0x2b,0x35,0x35,0x2b,0x01,0x0b,0x25,0x2e,0x2d,0x26,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0xdf,0x00,0x03,0x00,0x07,0x00,0x00,0x13,0x21,0x15,0x21,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01, -0x5b,0xb9,0xb9,0x06,0xd4,0x58,0xae,0xb5,0x00,0x02,0x00,0x05,0xfe,0x07,0x02,0x01,0xff,0x6a,0x00,0x03,0x00,0x07,0x00,0x00,0x17,0x21,0x15,0x21,0x01,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0x5b,0xb9,0xb9,0x96,0x58,0xfe,0xf5,0xb5,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07, -0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0x07,0x8e,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49, -0xff,0x6a,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07,0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0xfe,0xb0,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49,0xff,0x6a,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0xfe,0x3e,0xba,0x7d,0x76,0x76,0x7d, -0xba,0x00,0x00,0x02,0x00,0x00,0x06,0x62,0x02,0xd9,0x08,0x48,0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x03, -0x00,0x64,0x06,0x62,0x04,0x41,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x11,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72, -0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x02,0x00,0x64,0x06,0x62,0x02,0xb1,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x03,0x00,0x00,0x06,0x55,0x02,0x84, -0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x33,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x25,0x23,0x35,0x33,0x01,0xf6,0x17,0x28,0x11, -0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0c,0x08,0x36,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0xfe,0x8a,0xb9,0xb9,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x02,0x45,0x43,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42, -0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x11,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x0b,0xf8,0x02,0x3e,0x00,0x45,0x00,0x2c,0xb1,0x40,0x37,0xb8,0x04,0xfb,0xb5,0x0e,0x45,0x45,0x3c,0x3c,0x30,0xb8,0x04,0xfb,0xb4,0x15,0x05,0x0e,0x28,0x1f,0xb9,0x04,0xfb,0x00,0x21,0x00,0x2f,0xfd, -0x32,0xde,0x32,0xdc,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x15,0x21,0x22,0x26,0x27,0x27,0x37,0x21,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x33,0x14, -0x16,0x33,0x32,0x3e,0x02,0x35,0x0b,0xf8,0x16,0x2d,0x44,0x2e,0x2d,0x4a,0x17,0x07,0x12,0x24,0x26,0x28,0x16,0x29,0x39,0x2c,0x25,0x2b,0x36,0x26,0x20,0x24,0x14,0x05,0x0b,0x17,0x21,0x17,0x8c,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0xa7,0x17,0x15,0x1a,0x38,0x56,0x3c,0x2a,0x3d,0x30,0x28,0x29,0x2f,0x20,0x20,0x2d,0x1c,0x0d,0x6e, -0x26,0x33,0x13,0x18,0x0e,0x06,0x02,0x3d,0x45,0x6f,0x4e,0x2a,0x27,0x2a,0x1a,0x20,0x11,0x06,0x14,0x1e,0x24,0x1e,0x14,0x11,0x1a,0x20,0x10,0x15,0x30,0x2e,0x27,0x0b,0xa7,0x0e,0x0f,0x85,0x05,0x25,0x5c,0x23,0x30,0x5a,0x47,0x2b,0x17,0x22,0x27,0x22,0x17,0x20,0x30,0x37,0x17,0x54,0x4a,0x1f,0x30,0x37,0x18,0x00,0x00,0x01,0x00,0xbc, -0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c, -0x8b,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x33,0x05,0x9a,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x04,0x33,0xa8,0xf6,0xa8,0xf5,0xa8,0x05,0x9a,0xfe,0x1e,0x01,0x4a,0xfa,0xfe,0x05,0x02,0xfe,0xb6,0x01,0xe2,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x03,0xe8, -0x05,0x3f,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x23,0x15,0x23,0x11,0x03,0xe8,0x9e,0xdc,0xa4,0xdc,0x9e,0x05,0x3f,0xfe,0x8e,0xe6,0xfb,0x4d,0x04,0xb3,0xe6,0x01,0x72,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x01,0xef,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00, -0x02,0x06,0x02,0x0f,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x8c,0x04,0x98,0x05,0x9a,0x00,0x12,0x00,0x00,0x25,0x01,0x27,0x01,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x98,0xfe,0x30,0x63,0x01,0x49,0xfd,0xe0,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x05,0xfe,0x87, -0x74,0x01,0x0b,0x02,0x85,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe4,0x05,0x9a,0x00,0x28,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x23,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13, -0x21,0x01,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x06,0xe4,0xcd,0xfe,0xb6,0x10,0x11,0x04,0x05,0x11,0x0c,0xfe,0xac,0xce,0x01,0xe0,0xfe,0xa4,0x7a,0x6d,0x10,0x2d,0x14,0x52,0xc5,0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x01,0x76,0x01,0x25,0x0e,0x1a,0x0b,0x04,0x1f,0x19,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x1b,0x2c, -0x0b,0x24,0x18,0xfd,0xdb,0x02,0xd1,0x02,0x31,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfe,0x08,0x19,0x32,0x19,0x41,0x27,0x01,0xf4,0xfd,0x39,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x05,0x40,0x04,0x00,0x00,0x21,0x00,0x00,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x03, -0x23,0x02,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x13,0x16,0x16,0x17,0x33,0x01,0x05,0x40,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xf5,0x30,0x29,0x64,0x63,0xa8,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x01,0x1f,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06, -0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x01,0x7f,0xfe,0x0f,0xc9,0xc9,0x0e,0x8d,0x12,0x03,0x85,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x11,0x00,0x19,0x00,0x00,0x01,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x17,0x13,0x33,0x01,0x01,0x23,0x01,0x06,0x06,0x23, -0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe7,0x7d,0x73,0x0b,0xf1,0xc1,0xfe,0x3d,0x01,0xc9,0xcd,0xfe,0x63,0x42,0xab,0x68,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0x70,0x66,0xb5,0x01,0x8b,0xfd,0x39,0xfd,0x2d,0x02,0x80,0x32,0x30,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02, -0x00,0xa6,0xfe,0x29,0x05,0xea,0x04,0x18,0x00,0x1a,0x00,0x2f,0x00,0x00,0x09,0x02,0x23,0x03,0x0e,0x03,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0xea,0xfe,0xa8,0x01,0x52,0xbf,0xe2,0x13,0x4e, -0x72,0x95,0x5a,0xc7,0x6c,0x04,0xa4,0xa4,0x04,0x79,0xe9,0x58,0x8f,0x6a,0x42,0x0b,0xe7,0xfc,0x15,0x2b,0x4e,0x6b,0x40,0x4b,0x76,0x52,0x2b,0x29,0x4c,0x6d,0x43,0x47,0x75,0x53,0x2e,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x74,0x5b,0x93,0x67,0x37,0xac,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0x3a,0x6b,0x99,0x5e,0x01,0x84,0xfe,0x31,0x8f,0x3f, -0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65,0x55,0x87,0x5f,0x32,0x35,0x5e,0x80,0x00,0x02,0x00,0x3d,0x00,0x00,0x06,0x4d,0x05,0x9a,0x00,0x24,0x00,0x2f,0x00,0x00,0x21,0x21,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23, -0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x06,0x4d,0xfd,0x08,0xd1,0x1e,0x34,0x31,0x2f,0x19,0xb4,0xc8,0xda,0x0a,0x21,0x2b,0x33,0x1d,0x47,0x70,0x4e,0x29,0x44,0x7a,0xaa,0x66,0x03,0xd0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xe9,0x8f,0x9c,0x2a,0x4d,0x6d,0x43,0x02,0x62,0x0b,0x25,0x47,0x3b,0xfe,0x50,0x01,0xdf,0x16,0x34, -0x30,0x29,0x0b,0x04,0x10,0x43,0x60,0x7b,0x47,0x5c,0x95,0x6a,0x39,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x02,0x62,0x02,0x08,0x85,0x7b,0x3d,0x62,0x44,0x25,0x00,0x00,0x03,0x00,0x3e,0xff,0xe8,0x06,0x3a,0x04,0x18,0x00,0x28,0x00,0x31,0x00,0x38,0x00,0x00,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22, -0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x07,0x11,0x23,0x22,0x15,0x14,0x33,0x06,0x3a,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x63,0xa1,0x77,0x48,0x0a,0x8c,0x63,0x51,0x85,0xbe,0xac,0x3d,0x54,0x79,0x7d,0x33, -0x61,0x8b,0x58,0x01,0x66,0x3e,0x9b,0x5a,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0xab,0xc2,0xcf,0xc9,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x3c,0x72,0xa7,0x6b,0xa0,0xfe,0xf8,0x01,0x3c,0x6f,0x22,0x10,0x8f,0x6d,0x44,0x6d,0x4d,0x29,0x62,0x3a,0x40,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42, -0x31,0x01,0x43,0x9d,0xa6,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x27,0x37,0x17,0x37,0x33,0x01,0x17,0x07,0x27,0x03,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xa8,0x04,0x07,0x13,0x0c,0x01,0x04,0x7f,0x6a, -0x79,0xb0,0xd1,0xfe,0xe6,0x92,0x6e,0x8b,0xe6,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x01,0x30,0x8d,0x69,0x82,0xcd,0xfe,0xc5,0x9c,0x71,0x99,0xfe,0xff,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x14,0x00,0x00,0x01,0x37,0x33,0x07,0x17,0x07,0x27,0x07,0x01,0x23,0x01,0x23,0x11,0x23, -0x11,0x33,0x11,0x33,0x37,0x27,0x37,0x02,0x84,0x78,0xd7,0xed,0x66,0x61,0x5e,0x95,0x02,0x00,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0xdf,0x57,0x5f,0x03,0x7d,0x83,0xf6,0x77,0x54,0x6e,0x9b,0xfd,0xee,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0xf3,0x66,0x55,0x00,0x00,0x01,0x00,0x10,0xfe,0x66,0x07,0x73,0x05,0x9a,0x00,0x2e,0x00,0x00, -0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0xfe,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfe,0x72,0x6d,0x10,0x2d,0x14,0x52,0xc5, -0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x02,0xc2,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x05,0x02,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0x10, -0xfe,0x66,0x05,0xf1,0x04,0x00,0x00,0x2c,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x23,0x06,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x02,0xed,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20, -0xa3,0xee,0x15,0x46,0x65,0x85,0x53,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x02,0x1a,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0,0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x03,0x75,0xfb,0xfe,0xa9,0xd4,0x5d,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01, -0x00,0xbc,0xfe,0x66,0x07,0xc1,0x05,0x9a,0x00,0x25,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x04,0x4c,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfd,0x1a,0xa8,0xa8,0x02, -0xe6,0xa8,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x02,0xa3,0xfd,0x5d,0x05,0x9a,0xfd,0xa0,0x02,0x60,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x58,0x04,0x00,0x00,0x27,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e, -0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0x54,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0, -0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x7f,0x05,0x41,0x05,0x9a,0x00,0x16,0x00,0x00,0x13,0x33,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x34,0x23, -0x22,0x07,0x11,0x23,0xa6,0xa8,0xe5,0xc5,0x5e,0x92,0x65,0x34,0xc0,0x9b,0xcd,0xf6,0xb1,0xe4,0xa8,0x05,0x9a,0xfd,0x7b,0x79,0x32,0x5f,0x8a,0x58,0xfe,0x7d,0xfd,0xe7,0x01,0x81,0x02,0x13,0xe7,0x6e,0xfd,0x74,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x76,0x04,0x00,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11, -0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x11,0x15,0x33,0x04,0x76,0x8d,0xae,0xc2,0x94,0xaa,0xa3,0xa3,0xb5,0x97,0x01,0x58,0x97,0xfe,0x8b,0x01,0x75,0x01,0x52,0xe1,0x56,0xfe,0x23,0x04,0x00,0xfe,0x64,0x62,0xfe,0x94,0xcf,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1a,0x00,0x00,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37, -0x35,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x37,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x32,0x58,0x76,0x45,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0x02,0xec,0x92,0xfd,0xa6,0x01,0xf8,0x6a,0xa5,0x68,0xd9,0x8c,0xa6,0x51,0x81,0x5a,0x30,0x12,0x94,0x1b,0xd9,0xfe,0x5f,0x8f,0x00,0x01,0x00,0x35, -0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x18,0x00,0x00,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xba,0x0d,0x3b,0x52,0x67,0x39,0x4b,0x2c,0x30,0x3d,0x7b,0x23,0x05,0x09,0x8c,0xfb,0x83,0x03,0x74,0x8c,0x7d,0x8c,0x3a,0x5d, -0x40,0x22,0x12,0x94,0x1b,0x6e,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x27,0x00,0x38,0x00,0x00,0x01,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x03,0x04,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, -0x02,0x35,0x34,0x2e,0x02,0x03,0xe7,0xa9,0xab,0x32,0x51,0x3a,0x20,0x19,0x36,0x55,0x3c,0x72,0xa7,0x6e,0x36,0x4a,0x88,0xc0,0x77,0x6d,0xb5,0x83,0x49,0xd3,0xcc,0xee,0x36,0x65,0x91,0x5a,0xa6,0xbf,0xfe,0x92,0x2f,0x57,0x7a,0x4b,0x4f,0x7f,0x59,0x30,0x22,0x4a,0x75,0x05,0xbe,0xb7,0x65,0x12,0x21,0x2f,0x1d,0x18,0x31,0x36,0x3e,0x24, -0x45,0x7c,0x81,0x8f,0x5a,0x75,0xbb,0x83,0x47,0x46,0x7f,0xb1,0x6c,0x9c,0x01,0x01,0x58,0x93,0xa3,0x40,0x63,0x44,0x23,0xfd,0x75,0x95,0xfe,0xec,0x4f,0x7e,0x59,0x30,0x32,0x5d,0x82,0x50,0x3b,0x68,0x63,0x62,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0x0c,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x05,0x23, -0x11,0x33,0x05,0x0c,0xfd,0x18,0xa8,0x02,0x40,0xfc,0x58,0xa8,0xa8,0x05,0x9a,0xfa,0xfe,0x98,0x05,0x9a,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x26,0x05,0xec,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x03,0x26,0x88,0xa4,0xb0,0xa4,0x88,0x88,0xa4,0xb0, -0xa4,0x88,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0x86,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x01,0x00,0x81,0xff,0xe9,0x04,0x4b,0x05,0xee,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27, -0x03,0x8d,0x5a,0x64,0x43,0x7d,0xb1,0x6e,0x77,0xb7,0x7d,0x40,0x3b,0x62,0x7d,0x42,0x80,0x3e,0x6c,0x50,0x2e,0x2a,0x51,0x75,0x4b,0x43,0x6d,0x4e,0x2b,0x38,0x33,0x03,0x9b,0x43,0xda,0x8d,0x75,0xbf,0x89,0x4b,0x56,0xa4,0xf0,0x9b,0x92,0x01,0x11,0xea,0xb9,0x3a,0x6b,0x40,0x9e,0xc2,0xe8,0x8b,0x6c,0xb7,0x84,0x4b,0x36,0x5e,0x82,0x4c, -0x60,0x96,0x32,0x00,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xaa,0x05,0xf1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x02,0xf1,0x58,0x61,0x33,0x61,0x8c,0x5a,0x6c,0xa5,0x6f,0x39,0x3b,0x61, -0x7c,0x42,0x78,0x3e,0x6c,0x50,0x2e,0x25,0x47,0x66,0x41,0x31,0x4d,0x34,0x1c,0x38,0x33,0x03,0x96,0x42,0xd8,0x8c,0x75,0xbf,0x89,0x4b,0x56,0xa5,0xf0,0x9b,0x93,0x01,0x13,0xeb,0xb9,0x39,0x65,0x40,0x9f,0xc4,0xec,0x8d,0x6e,0xbb,0x88,0x4d,0x37,0x62,0x86,0x4e,0x61,0x98,0x33,0x00,0x00,0x02,0x00,0x06,0xff,0xe7,0x04,0x96,0x05,0x9a, -0x00,0x1a,0x00,0x29,0x00,0x00,0x01,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x26,0x04,0x96,0xfe,0x45,0x3c,0x70,0x71,0x76,0x41,0x3b,0x5f,0x43,0x24,0x42,0x6e,0x8d,0x4b,0x30,0x2f,0xfe,0x4f,0xbf, -0x01,0x58,0x05,0x12,0x0e,0x05,0x01,0x65,0xfd,0x96,0x2e,0x4a,0x35,0x1d,0x3a,0x35,0x18,0x35,0x3c,0x42,0x24,0x43,0x05,0x9a,0xfc,0x17,0x87,0xb0,0x69,0x2a,0x26,0x44,0x5e,0x37,0x48,0x6f,0x4b,0x26,0x06,0x03,0x92,0xfd,0x02,0x0a,0x2e,0x25,0x03,0x5b,0xfb,0xea,0x15,0x26,0x35,0x20,0x3b,0x3c,0x19,0x38,0x5c,0x44,0x16,0x00,0x00,0x02, -0xff,0xbd,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x19,0x00,0x29,0x00,0x00,0x01,0x01,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x37,0x26,0x22,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x32,0x52,0x3b,0x20,0x43,0x6f, -0x8f,0x4b,0x14,0x25,0x13,0xfe,0x79,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x01,0x23,0xfe,0x08,0x2e,0x4c,0x36,0x1e,0x49,0x12,0x2a,0x2b,0x28,0x0f,0x22,0x0e,0x1e,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x1b,0x36,0x51,0x36,0x48,0x6f,0x4a,0x26,0x02,0x02,0x03,0xe7,0xfc,0xec,0x4e,0x0c,0x26,0x1a,0x03,0x16,0xfb,0x93,0x15,0x25,0x35,0x20, -0x58,0x12,0x25,0x38,0x25,0x51,0x02,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x05,0x8c,0x05,0xb2,0x00,0x18,0x00,0x2d,0x00,0x00,0x01,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x15,0x23,0x11,0x33,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x64, -0x27,0x70,0x7c,0x7e,0x35,0x85,0xe0,0xa2,0x5b,0x67,0xb0,0xea,0x82,0x42,0x7c,0x6c,0x5a,0x21,0xa8,0xa8,0x16,0x65,0x7c,0x84,0x35,0x5d,0xa5,0x7d,0x49,0x40,0x76,0xa5,0x66,0x33,0x82,0x7d,0x69,0x1c,0x04,0xab,0x4a,0x65,0x3d,0x1b,0x6a,0xc3,0xfe,0xeb,0xab,0xa9,0xfe,0xf1,0xbf,0x66,0x22,0x3b,0x4d,0x2b,0xbd,0x05,0x9a,0xfc,0x6d,0x6e, -0x96,0x5c,0x28,0x4e,0x96,0xd9,0x8c,0x8a,0xdc,0x9a,0x52,0x27,0x5c,0x98,0x70,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x40,0x04,0x18,0x00,0x31,0x00,0x3a,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, -0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x0a,0x04,0xaf,0x9b,0x3c,0x79,0x6b,0x52,0x15,0x6a,0x03,0x18,0x2d,0x45,0x30,0x28,0x46,0x3b,0x32,0x15,0x4a,0x1e,0x4d,0x56,0x5c,0x2d,0x54,0x7a,0x1b,0x29,0x67,0x75,0x7d,0x3f,0x75,0xb7,0x7e,0x42,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01, -0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x12,0x39,0x6a,0x57,0x1b,0x1f,0x43,0x37,0x24,0x23,0x3d,0x51,0x2e,0x23,0x57,0x7f,0x54,0x29,0x67,0x62,0x45,0x5c,0x38,0x17,0x47,0x89,0xc6,0x7e,0x77,0xc7,0x8f,0x4f,0x43,0x7f,0xb6,0x73,0x56,0x8b,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x00,0x01,0x00,0x78,0xff,0xee,0x02,0x8e, -0x05,0xfe,0x00,0x25,0x00,0x00,0x37,0x16,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x27,0x78,0x2b,0x51,0x69,0x47,0x22,0x24,0x24,0x22,0x47,0x69,0x51,0x2b,0x24,0x3e,0x2d,0x51,0x46,0x36,0x12,0x04,0xa4,0xa4, -0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xa6,0x21,0x63,0x30,0x81,0x53,0x02,0x14,0x52,0x82,0x30,0x63,0x21,0xaa,0x0e,0x1f,0x3b,0x55,0x36,0xd3,0xfa,0x14,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x13,0x00,0x2f,0x00,0x3e,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x03,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x02,0x52,0x71,0xb8,0x82,0x47,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f, -0x59,0x30,0x4d,0x46,0x06,0x1f,0x38,0x4d,0x2d,0x2c,0x4a,0x36,0x1f,0x07,0x3e,0x40,0xaa,0x9f,0x18,0x29,0x1e,0x11,0x70,0x19,0x2b,0x1f,0x11,0x41,0x18,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x73,0xab,0x31,0x18,0x1b,0x2d,0x49,0x34,0x1c,0x1d,0x33,0x46,0x2a, -0x1c,0x16,0x31,0xa7,0x74,0xc1,0xcf,0xfd,0xc5,0x11,0x1f,0x29,0x18,0x70,0x11,0x1e,0x29,0x18,0x31,0x40,0x00,0x01,0x00,0x49,0x00,0x00,0x02,0xc0,0x04,0x33,0x00,0x0b,0x00,0x00,0x37,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x49,0x01,0xd3,0xfe,0x6b,0x01,0x95,0xfe,0x49,0x02,0x5b,0xfd,0x89,0x8b,0x01,0x52,0x8b,0x01, -0x40,0x8b,0xfb,0xcd,0x00,0x02,0x00,0x06,0xfd,0xe3,0x01,0x4a,0x02,0x13,0x00,0x0d,0x00,0x19,0x00,0x00,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x27,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x40,0x74,0x6e,0x15,0x2c,0x17,0x3a,0x20,0x6a,0x76,0x3f,0x1d,0x2a,0x2a,0x1d,0x1e,0x2b, -0x2b,0xf7,0x8f,0x97,0x0b,0x0a,0x72,0x25,0xb5,0x02,0x19,0x76,0x28,0x1e,0x1d,0x27,0x27,0x1d,0x1d,0x29,0x00,0x01,0x00,0x1c,0x02,0x9a,0x02,0xdb,0x05,0xa3,0x00,0x08,0x00,0x00,0x01,0x01,0x23,0x01,0x33,0x13,0x17,0x37,0x13,0x02,0xdb,0xfe,0xd7,0x79,0xfe,0xe3,0x83,0xcf,0x0a,0x0a,0xd9,0x05,0xa3,0xfc,0xf7,0x03,0x09,0xfd,0xb7,0x2f, -0x2e,0x02,0x4a,0x00,0x00,0x01,0x00,0x79,0xfe,0x92,0x03,0xde,0x05,0xb2,0x00,0x49,0x00,0x00,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x27,0x26,0x26,0x27,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03, -0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xab,0x23,0x5b,0x38,0x32,0x5f,0x53,0x42,0x15,0x41,0x8c,0x23,0x3d,0x14,0x22,0x5f,0x69,0x6a,0x2d,0x9c,0x98,0x27,0x53,0x7e,0x57,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd3,0x62,0x7f,0xc7,0x38,0x6d,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d, -0x4d,0x83,0xac,0x5f,0x13,0x1d,0x0b,0x0f,0x2c,0x33,0x38,0x1a,0x2c,0x56,0x2b,0xfe,0xb9,0x14,0x13,0x15,0x2b,0x40,0x2b,0x83,0x4a,0x0a,0x18,0x0e,0xc6,0x1e,0x30,0x21,0x12,0x71,0x6d,0x37,0x4f,0x45,0x45,0x2d,0x27,0x4d,0x5e,0x77,0x50,0x62,0x90,0x5f,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66, -0x7d,0x4f,0x64,0x8e,0x5d,0x2e,0x04,0x11,0x28,0x17,0x1d,0x2c,0x1d,0x0f,0x14,0x15,0x00,0x01,0x00,0x21,0xfe,0x8b,0x04,0x64,0x05,0x9a,0x00,0x1c,0x00,0x00,0x01,0x01,0x1e,0x03,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x2e,0x03,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xbd,0x3a,0x6d,0x60,0x54,0x23, -0x4e,0x75,0x32,0x29,0x43,0x28,0x40,0x69,0xaa,0xaa,0x2b,0x51,0x54,0x59,0x33,0xae,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x2e,0x0c,0x30,0x3e,0x48,0x24,0x51,0x50,0x14,0x15,0x91,0x26,0xba,0x2e,0x47,0x2e,0x18,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x01,0xcf,0x00,0x17,0x00,0x00,0x17,0x22,0x2e,0x02, -0x35,0x34,0x3e,0x02,0x37,0x17,0x0e,0x03,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x1b,0x24,0x26,0x0b,0x66,0x0b,0x16,0x13,0x10,0x06,0x24,0x30,0x12,0x1f,0x29,0x16,0x12,0x1e,0x29,0x17,0x20,0x67,0x6e,0x63,0x1d,0x13,0x19,0x3c,0x41,0x41,0x1e,0x0a,0x3d,0x26,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0x70,0x00,0xf8, -0x01,0x50,0x01,0xd9,0x00,0x13,0x00,0x00,0x37,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xf8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x27,0xff,0xd4, -0x01,0x3c,0x01,0xc0,0x00,0x03,0x00,0x00,0x01,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0x01,0xc0,0xfe,0x14,0x01,0xec,0x00,0x00,0x02,0x00,0x6f,0xff,0xea,0x01,0x9a,0x05,0x08,0x00,0x13,0x00,0x17,0x00,0x00,0x37,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x03,0x13,0x33,0x03,0xdf,0x17,0x29,0x1e, -0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x43,0xa0,0x75,0x75,0xc8,0x12,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x12,0x02,0x54,0x01,0xec,0xfe,0x14,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x01,0xda,0x05,0x99,0x00,0x09,0x00,0x00,0x25,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x33, -0x01,0xaa,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x30,0xe5,0x02,0xb6,0x1e,0x96,0x14,0x01,0x9a,0xfe,0x66,0x00,0x01,0x01,0x2e,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x09,0x00,0x00,0x01,0x33,0x03,0x33,0x03,0x25,0x15,0x25,0x03,0x23,0x01,0x2e,0x30,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x28,0x4c,0x03,0xff,0x01,0x9a,0xfe,0x66, -0x14,0x96,0x1e,0xfd,0x4a,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x00,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x13,0x33,0x13,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x28,0x4c,0x28,0x01,0x06,0x02,0x6b,0x14,0xfe,0x66,0x01,0x9a,0x14,0x96,0x1e,0x02,0xb6,0xfd,0x4a,0x1e,0x00, -0x00,0x02,0x00,0x83,0x01,0x31,0x03,0x27,0x05,0xd3,0x00,0x1f,0x00,0x2d,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x1e,0x02,0x17,0x16,0x15,0x14,0x06,0x07,0x01,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x35,0x34,0x2e,0x02,0x02,0x1e,0x18,0x5d,0x3d,0xe9, -0x93,0x6a,0x31,0x5a,0x7d,0x4c,0x84,0x57,0x65,0x7a,0xa8,0x0d,0x32,0x61,0x54,0xdf,0x3d,0x39,0xfe,0xdd,0x65,0x1a,0x3c,0x61,0x47,0x58,0x18,0x38,0x5d,0x01,0x31,0x13,0x3c,0x20,0x7a,0xc3,0xa3,0x51,0x52,0x8d,0x40,0x6b,0x4d,0x2b,0x2b,0x9e,0x3e,0x90,0x1c,0x2f,0x32,0x3a,0x28,0x6a,0xbb,0x4c,0x7b,0x35,0x01,0xd1,0x33,0x6c,0x25,0x3d, -0x39,0x39,0x20,0x43,0x69,0x24,0x3b,0x36,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0b,0xf2,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0b,0xf2,0xf4,0x0e,0x0b,0xf2,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0f,0xfe,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0f,0xfe,0xf0,0x02,0x0f,0xfe,0x01,0xfa, -0x81,0x00,0x00,0x01,0x00,0x25,0x06,0x12,0x02,0x7d,0x09,0x46,0x00,0x1f,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x02,0x7d,0x5c,0x85,0x55,0x8a,0x62,0x36,0x3a,0x67,0x8f,0x56,0x74,0x5e,0x6b,0x68,0x6b,0x8d,0x0e,0x01, -0x54,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x34,0x06,0x44,0x32,0x3a,0x68,0x92,0x58,0x60,0x9c,0x6f,0x3d,0x25,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x01,0x00,0x5b,0x06,0x20,0x02,0xe6,0x09,0x3a,0x00,0x09,0x00,0x00,0x01,0x23,0x11,0x01,0x23,0x11,0x33,0x11,0x01,0x33,0x02,0xe6,0x78,0xfe,0x76,0x89, -0x78,0x01,0x87,0x8c,0x06,0x20,0x02,0x64,0xfd,0x9c,0x03,0x1a,0xfd,0x9e,0x02,0x62,0x00,0x03,0xff,0xda,0x06,0x1f,0x01,0x31,0x09,0x2f,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x00,0x13,0x23,0x11,0x33,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x76, -0x76,0x2c,0x1b,0x28,0x27,0x1b,0x1d,0x27,0x26,0xeb,0x1d,0x29,0x28,0x1c,0x1c,0x29,0x28,0x06,0x1f,0x02,0x3e,0x51,0x24,0x1c,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x26,0x1a,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x00,0x01,0xff,0xf7,0x05,0x1c,0x02,0x26,0x08,0x5d,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32, -0x36,0x37,0x37,0x26,0x02,0x27,0x33,0x13,0x13,0x02,0x26,0xfe,0xfc,0x22,0x68,0x41,0x12,0x24,0x12,0x2b,0x17,0x1b,0x2e,0x0e,0x2a,0x35,0x70,0x36,0x80,0x97,0x9e,0x08,0x5d,0xfd,0x72,0x55,0x5e,0x05,0x06,0x68,0x0f,0x25,0x23,0x65,0x89,0x01,0x1e,0x89,0xfe,0x53,0x01,0xad,0x00,0x02,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x00,0x0e, -0x00,0x16,0x00,0x00,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0xea,0xde,0x01,0x55,0x84,0x79,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x02,0xb0,0x6a,0xfe,0xb9,0x74,0x6e,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x44,0x3e,0x7f,0x00,0x03, -0x00,0x5b,0x06,0x1f,0x03,0x0c,0x09,0x39,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x00,0x01,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x0c,0x77,0x77,0xfd,0x4f,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfc, -0xe6,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x02,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x00,0x0c,0x00,0x14,0x00,0x00,0x13,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x5a,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c, -0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x00,0x01,0x00,0x1e,0x06,0x1f,0x03,0xd5,0x09,0x39,0x00,0x2d,0x00,0x00,0x01,0x2e,0x05,0x27,0x33,0x1e,0x03,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x26,0x26, -0x27,0x03,0x01,0x19,0x2b,0x41,0x31,0x24,0x1c,0x14,0x0a,0x79,0x0c,0x20,0x2b,0x38,0x26,0x6b,0x0c,0x12,0x0f,0x0d,0x06,0x78,0x0d,0x1f,0x2b,0x39,0x26,0x1a,0x2a,0x23,0x1c,0x18,0x14,0x09,0x78,0x09,0x15,0x1b,0x24,0x32,0x40,0x2b,0x6b,0x2a,0x3f,0x18,0x68,0x06,0x1f,0x53,0x89,0x7b,0x73,0x7a,0x86,0x50,0x6c,0xa7,0x90,0x89,0x4f,0x01, -0x11,0x28,0x52,0x59,0x60,0x37,0x6e,0xa6,0x91,0x89,0x51,0x36,0x5f,0x5d,0x5f,0x6a,0x7a,0x4a,0x51,0x86,0x7a,0x74,0x7a,0x89,0x52,0x51,0x83,0x3c,0xfe,0xf0,0x00,0x01,0x00,0x5c,0x06,0x12,0x03,0xfb,0x09,0x46,0x00,0x27,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x16,0x17, -0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xfb,0x5e,0x84,0x50,0x84,0x61,0x3a,0x06,0xcf,0x79,0x79,0xd1,0x09,0x40,0x66,0x86,0x4e,0x3b,0x68,0x2f,0x6d,0x66,0x6c,0x8d,0x0d,0x01,0x53,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x35,0x06,0x44,0x32,0x33,0x5e,0x83,0x50,0xfe,0xa9,0x03,0x1a, -0xfe,0xa6,0x52,0x85,0x5d,0x33,0x13,0x12,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28, -0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xc8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfd,0xa3,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23, -0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfb,0xe1,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64, -0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfa,0x1f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f, -0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0xff,0xf1,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12, -0x12,0x1f,0x29,0x07,0x58,0xf8,0x99,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01, -0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x06,0x90,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x04,0xfb,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03, -0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x03,0x39,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29, -0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x01,0x77, -0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0xff,0xf1,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29, -0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x0f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x02,0xc9,0x06,0xd4,0xf9,0x2c,0x07,0x58,0x00, -0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x05,0x1f,0xfa,0xe1,0x07,0x58,0xfe,0x4b,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb, -0x94,0x94,0x02,0x35,0x03,0x6a,0xfc,0x96,0x07,0x58,0xfc,0x96,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x01,0xb5,0xfe,0x4b,0x07,0x58,0xfa,0xe1,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00, -0x13,0x33,0x11,0x21,0x15,0x21,0x96,0x94,0x02,0x35,0xfd,0x37,0x07,0x58,0xf9,0x2c,0x84,0x00,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0e,0x00,0x26,0x00,0x3a,0x00,0x46,0x00,0x5f,0xb9,0x00,0x0e,0x01,0x43,0xb2,0x07,0x0d,0x36,0xbb,0x01,0x43,0x00,0x20,0x00,0x16,0x01,0x43,0x40,0x0c,0x2c,0x0d,0x20,0x2c,0x2c,0x20, -0x0d,0x03,0x3b,0x41,0x3b,0x44,0xbc,0x01,0x42,0x00,0x3e,0x01,0x41,0x00,0x27,0x01,0x44,0xb2,0x1b,0x07,0x31,0xb8,0x01,0x44,0x40,0x0c,0x0f,0x19,0x0e,0x18,0x04,0x0c,0x01,0x0c,0x06,0x07,0x00,0x07,0x00,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x10,0xe6, -0x10,0xcd,0xe6,0x30,0x31,0x01,0x23,0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0x05,0x32,0x3e,0x04,0x35,0x34,0x02,0x26,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x1e,0x04,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x04,0x2f, -0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0x8f,0x64,0x8f,0x62,0x3b,0x20,0x0a,0x2c,0x61,0x9d,0x70,0x75,0xa8,0x6c,0x33,0x0f,0x24,0x3c,0x5c,0x7e,0x6a,0x3a,0x4a,0x2b,0x10,0x11,0x2c,0x4d,0x3b,0x3c,0x4e,0x2d,0x12,0x12,0x2f,0x50,0xfa,0x1d,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe, -0x1b,0xfd,0x49,0x05,0xba,0x21,0x45,0x3f,0x33,0x0f,0xce,0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x18,0x45,0x73,0x98,0xa6,0xa9,0x4c,0xb8,0x01,0x13,0xb8,0x5c,0x62,0xc2,0xfe,0xe0,0xbe,0x58,0xae,0x9f,0x87,0x64,0x38,0x05,0x0d,0x46,0x8d,0xd3,0x8d,0x87,0xcc,0x87,0x44,0x42,0x85,0xc8,0x85,0x8f,0xd7,0x8f,0x48,0xfd,0xd8,0x01,0xe5,0x02, -0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x08,0x05,0x9a,0x00,0x1a,0x00,0x27,0x00,0x5c,0x40,0x35,0x76,0x15,0x01,0x59,0x22,0x69,0x22,0x89,0x22,0x03,0x22,0x15,0x29,0x05,0x01,0x1c,0x09,0x0d,0x0b,0x06,0x0f,0x07,0x03,0x02,0x0a,0x02,0x0b,0x1a,0x1d,0x0e,0x1d,0x2f,0x02,0x6f, -0x02,0x7f,0x02,0xbf,0x02,0x04,0x2f,0x1d,0x01,0x02,0x1d,0x02,0x1d,0x05,0x27,0x0f,0x06,0x05,0x18,0x00,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x10,0xcd,0x32,0x01,0x2f,0x33,0x33,0xce,0x32,0xcd,0x32,0x32,0x10,0xde,0xcd,0x5d,0x5d,0x30,0x31,0x01,0x15,0x21,0x15,0x21,0x11,0x23,0x11, -0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x5b,0x01,0x82,0xfe,0x7e,0xa4,0x77,0x77,0x77,0x77,0x01,0x84,0x5c,0xa7,0x7f,0x4b,0x43,0x80,0xb8,0x76,0xbc,0xa7,0x57,0x85,0x5b,0x2e,0x2a,0x54,0x7e,0x54,0x02,0x7f,0xcf,0x8b,0xfe, -0xdb,0x01,0x25,0x8b,0xcf,0x8b,0x02,0x90,0x2f,0x60,0x92,0x63,0x66,0x98,0x66,0x33,0x02,0x90,0xfd,0xfb,0x1b,0x3d,0x64,0x48,0x47,0x62,0x3d,0x1b,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0xe6,0x05,0x9a,0x00,0x27,0x00,0x57,0x40,0x35,0x67,0x25,0x01,0x00,0x12,0x25,0x13,0x13,0x1e,0x0a,0x0f,0x07,0x3f,0x07,0x02,0x07,0x29,0x1b,0x5f,0x1e, -0x6f,0x1e,0x8f,0x1e,0xaf,0x1e,0x04,0x1e,0x78,0x11,0x88,0x11,0x02,0x11,0x5b,0x14,0x01,0x3a,0x14,0x4a,0x14,0x02,0x14,0x00,0x25,0x25,0x13,0x27,0x06,0x1c,0x09,0x13,0x18,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x33,0xcd,0x5d,0x5d,0x32,0x5d,0x01,0x2f,0x5d,0xcd,0x10,0xde,0x5d,0xcd,0x12,0x39,0x2f,0x33,0xcd,0x32,0x00,0x5d,0x30, -0x31,0x01,0x1e,0x04,0x12,0x15,0x15,0x23,0x35,0x34,0x2e,0x04,0x27,0x11,0x23,0x11,0x0e,0x05,0x15,0x15,0x23,0x35,0x34,0x12,0x3e,0x03,0x37,0x11,0x33,0x03,0x5e,0x55,0xa3,0x90,0x78,0x57,0x31,0xa4,0x27,0x45,0x5d,0x6c,0x75,0x3a,0xa4,0x39,0x73,0x6c,0x5e,0x46,0x28,0xa4,0x32,0x58,0x7a,0x90,0xa1,0x53,0xa4,0x04,0x6d,0x09,0x39,0x65, -0x95,0xcd,0xfe,0xf9,0xa5,0xb8,0xbf,0x91,0xe3,0xac,0x79,0x51,0x2c,0x09,0xfc,0x22,0x03,0xe0,0x08,0x2a,0x4f,0x7a,0xad,0xe5,0x94,0xbf,0xb8,0xa8,0x01,0x0b,0xce,0x95,0x63,0x35,0x08,0x01,0x2c,0x00,0x00,0x16,0x00,0x26,0x00,0x00,0x07,0x15,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, -0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x57,0x00,0x5c,0x00,0x62,0x00,0x7c,0x00,0x00,0x13,0x35,0x33,0x15,0x23,0x15,0x03,0x35,0x33,0x15,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x13,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23, -0x35,0x33,0x35,0x23,0x35,0x33,0x25,0x35,0x33,0x15,0x23,0x35,0x03,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x23,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x27,0x15,0x07,0x05,0x21,0x11,0x33,0x11, -0x33,0x05,0x23,0x11,0x34,0x34,0x37,0x03,0x23,0x03,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x16,0x17,0x36,0x37,0x3e,0x03,0x37,0x33,0x26,0xeb,0x96,0x55,0x55,0x96,0x5b,0xd3,0xd3,0xd3,0x5e,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0xfd,0x0d,0x55,0x55,0x55,0x55,0x05,0xae,0xec,0x56,0x96,0x96,0x56,0xfd,0xe6,0xd2,0x01,0x48,0x56,0x56, -0x56,0x56,0xfc,0xb7,0xd1,0xd1,0xd1,0x5e,0xd2,0x01,0x48,0x56,0x56,0xfb,0x91,0x50,0x35,0xc6,0x32,0x50,0xc2,0x48,0x28,0x4d,0x01,0x4b,0x02,0x7d,0xfe,0xed,0x4a,0xc9,0x02,0x4a,0x4b,0x01,0xa9,0x28,0xaa,0x48,0x5b,0x9a,0x08,0x04,0x05,0x0a,0x08,0x12,0x28,0x29,0x28,0x12,0x58,0x04,0xd4,0xec,0x55,0x97,0xfb,0x2c,0xeb,0x95,0x56,0x56, -0x56,0x05,0x6b,0x55,0x55,0xfa,0x95,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xf3,0x55,0xec,0x97,0xfa,0x95,0x56,0x95,0xeb,0x56,0x56,0x01,0x48,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x05,0x6b,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0xfe,0xb6,0x8c,0x8c,0x01,0xfb,0xfe,0xce,0xcf,0x02,0x02,0xcf,0xc9, -0x01,0xfb,0xfe,0x42,0x3d,0x01,0x53,0x09,0x14,0x0b,0xfe,0x85,0x01,0x7b,0x29,0xfe,0xae,0x01,0xfb,0xfe,0xa2,0x12,0x0f,0x09,0x1b,0x10,0x28,0x59,0x5c,0x59,0x27,0x00,0x00,0x01,0x00,0xbc,0xfe,0x96,0x06,0x72,0x05,0x9a,0x00,0x26,0x00,0x1f,0x40,0x10,0x0e,0x16,0x21,0x03,0x1c,0x1d,0x03,0x08,0x03,0x03,0x1c,0x12,0x12,0x12,0x00,0x03, -0x00,0x3f,0x3f,0x3f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x30,0x31,0x01,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x06,0x72,0xfe,0xaf,0x3f,0x39,0x32,0x3e,0xb2,0x07,0x07,0x04, -0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x16,0x22,0x0d,0x01,0xc1,0x05,0x9a,0xfa,0x9b,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x03,0x8d,0x39,0x8b,0x53,0x63,0x28,0xfb,0xb2,0x04,0x46,0x2e,0x65,0x2b,0x8c,0x62,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x74,0x38,0x3c,0x57,0x1d,0x03,0xe4, -0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x11,0x00,0x1a,0x40,0x0c,0x11,0x0d,0x06,0x02,0x02,0x01,0x06,0x12,0x04,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x30,0x31,0x13,0x33,0x13,0x21,0x13,0x33,0x01,0x23,0x03,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x16,0xba,0x98,0x02, -0x60,0x8f,0xbb,0xfd,0xda,0xae,0x9f,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x6e,0x01,0x92,0xfa,0x66,0x03,0x71,0xfd,0x9d,0x0f,0x30,0x21,0x1f,0x30,0x11,0x02,0x63,0xff,0xff,0x00,0x60,0xfe,0x96,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x08,0x5d,0x02,0x89,0x00,0x00,0xff,0xff,0x00,0xa6, -0xfe,0x96,0x04,0x91,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x03,0x00,0x6e,0x00,0x00,0x05,0x5b,0x05,0x9a,0x00,0x2a,0x00,0x32,0x00,0x3c,0x00,0x29,0x40,0x15,0x1f,0x35,0x91,0x2b,0x13,0x91,0x01,0x01,0x2b,0x0a,0x2b,0x0a,0x00,0x3c,0x91,0x14,0x03,0x2c,0x91,0x00,0x12,0x00,0x3f,0xed, -0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x39,0x30,0x31,0x21,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e, -0x02,0x35,0x34,0x21,0x01,0xe8,0x47,0x28,0x3b,0x27,0x13,0x06,0x05,0x98,0x09,0x28,0x4b,0x6a,0x41,0x5c,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xe4,0x95,0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x02,0x9c,0x17,0x25,0x31,0x1a,0x0f,0x2c,0x13,0x30,0x29,0x47, -0x67,0x44,0x20,0x02,0x68,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0x02,0x9c,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0x00,0x02,0x00,0x75,0xfe,0xab,0x05,0x80,0x05,0xec,0x00,0x30,0x00,0x43,0x00,0x24,0x40,0x14,0x12,0x0f,0x21,0x03,0x15,0x23, -0x15,0x2d,0x96,0x05,0x36,0x95,0x1f,0x15,0x40,0x95,0x15,0x10,0x11,0x00,0x00,0x3f,0x3f,0xed,0x3f,0xed,0xdc,0xed,0x3f,0x12,0x17,0x39,0x30,0x31,0x05,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x23,0x15,0x23,0x11,0x0e,0x03,0x15,0x14, -0x16,0x33,0x32,0x36,0x37,0x03,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03,0x4d,0x10,0x3c,0x4c,0x54,0x27,0x7d,0xac,0x6c,0x30,0x2b,0x57,0x83,0x58,0xa4,0x46,0x9f,0x5b,0x66,0xa9,0x78,0x43,0x40,0x79,0xad,0x6d,0xcc,0x67,0x04,0xa4,0x2f,0x44,0x2c,0x16,0x8d,0x98,0x3f,0x77,0x27,0xa9,0x2b,0x4e, -0x6b,0x40,0x4b,0x76,0x52,0x2b,0x22,0x50,0x83,0x61,0x4e,0x85,0x39,0xf7,0x12,0x22,0x1a,0x10,0x44,0x79,0xa9,0x65,0x4c,0xc0,0xc9,0xc3,0x4e,0x02,0x90,0xfd,0xe0,0x23,0x29,0x48,0x85,0xbb,0x72,0x7f,0xd1,0x94,0x52,0xac,0x94,0x02,0x9c,0x41,0x91,0x92,0x89,0x39,0xa8,0xae,0x1d,0x19,0x02,0x4c,0x3f,0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65, -0x46,0x83,0x66,0x3d,0x2b,0x25,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x15,0x00,0x20,0x40,0x10,0x14,0x91,0x01,0x01,0x09,0x91,0x06,0x06,0x02,0x11,0x91,0x0c,0x04,0x91,0x02,0x03,0x00,0x3f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x10, -0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x1f,0xdb,0x02,0xd8,0xfd,0xd0,0x01,0x20,0xfe,0xe0,0xfe,0xae,0x3f,0x39,0x32,0x3e,0xb2,0xdb,0x03,0x12,0x02,0x88,0x98,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x02,0x46,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1d,0x00,0x33,0xb6,0x05, -0x95,0x08,0x08,0x02,0x95,0x1d,0xb8,0xff,0xc0,0x40,0x14,0x09,0x0c,0x48,0x1d,0x1d,0x03,0x1c,0x95,0x19,0x0f,0x16,0x95,0x11,0x00,0x09,0x95,0x0c,0x0f,0x03,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x30,0x31,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34, -0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x15,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0x03,0x06,0x8c,0xfd,0x86,0x02,0x7a,0x8c,0x6e,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0x8c,0x6e,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0xb2, -0x00,0x21,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x92,0x35,0x35,0x00,0x21,0x03,0x1f,0x2d,0x91,0x1a,0x04,0x02,0x22,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e, -0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44,0x22,0x43,0x79,0xab,0x68,0x3b,0x70,0x64,0x56,0x22,0xa8,0xfd,0xbe,0x4d,0x7b,0x63, -0x4e,0x21,0x21,0x54,0x63,0x72,0x3f,0x47,0x69,0x46,0x23,0xae,0x9d,0xc2,0xbc,0x30,0x55,0x73,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x14,0x23,0x31,0x1d,0x6d,0xfa,0xdd,0x27,0x40,0x52,0x2c,0x02,0xf3,0x2d,0x4b,0x36,0x1d,0x23,0x40,0x59,0x35,0x7e,0x80,0x8b, -0x8a,0x8a,0x3e,0x66,0x49,0x28,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x19,0x00,0x1f,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x96,0x34,0x34,0x01,0x1f,0x0f,0x1d,0x2b,0x95,0x18,0x10,0x02,0x20,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06, -0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64, -0x6f,0x36,0x5d,0x7c,0x47,0x2e,0x52,0x45,0x39,0x16,0xa4,0xfe,0x54,0x24,0x4a,0x45,0x3e,0x17,0x16,0x38,0x41,0x48,0x25,0x37,0x4d,0x31,0x16,0x6d,0x7b,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x12,0x1c,0x23,0x12,0x4a,0xfc,0x71,0x10, -0x1e,0x2e,0x1e,0x02,0x28,0x1b,0x2d,0x21,0x12,0x19,0x2b,0x3c,0x22,0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x14,0x05,0xb2,0x00,0x1e,0x00,0x39,0x00,0x1c,0x40,0x0e,0x0a,0x28,0x92,0x27,0x27,0x00,0x1f,0x91,0x15,0x04,0x30,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39, -0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x02,0x6a,0x7b,0xc3,0x87,0x47,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44, -0x22,0x44,0x80,0xb8,0x74,0x94,0xf3,0xae,0x5f,0x62,0xb3,0xfb,0x90,0x50,0x72,0x4b,0x23,0xae,0x9d,0xc2,0xbc,0x31,0x58,0x7a,0x4a,0x75,0xc0,0x87,0x4a,0x46,0x81,0xb7,0x18,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x6a,0xbf,0xfe,0xf6,0xa0,0xaa,0xfe,0xe9,0xc8,0x6e,0x05,0x32, -0x23,0x40,0x59,0x35,0x7e,0x80,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x52,0x99,0xdc,0x8a,0x8f,0xde,0x97,0x4e,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x19,0x00,0x1c,0x00,0x3b,0x00,0x1e,0x40,0x0f,0x00,0x1c,0x1d,0x96,0x3b,0x3b,0x08,0x26,0x95,0x12,0x16,0x30,0x95,0x08,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, -0x39,0x39,0x30,0x31,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x17,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x33,0x01,0x5c,0x64,0x6f,0x38,0x68,0x96,0x5d,0x6f,0xb8, -0x84,0x49,0x49,0x87,0xc0,0x78,0x63,0x9d,0x6d,0x3b,0x24,0x42,0x5d,0x39,0xbe,0x0b,0x4a,0x67,0x3f,0x1c,0x80,0x89,0x54,0x82,0x58,0x2e,0x24,0x50,0x82,0x5e,0x37,0x56,0x3c,0x1f,0x18,0x36,0x59,0x41,0x06,0x02,0x17,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x43,0x85,0xc8,0x85,0x71,0xc5,0x92,0x54,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28, -0x05,0x44,0x17,0x2c,0x42,0x2a,0x57,0x57,0x3b,0x6a,0x92,0x56,0x52,0x92,0x6d,0x3f,0x19,0x2b,0x3c,0x22,0x29,0x3b,0x26,0x13,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0x9a,0x00,0x2b,0x00,0x21,0x40,0x11,0x0f,0x1c,0x92,0x1b,0x1b,0x00,0x2b,0x03,0x15,0x03,0x02,0x24,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f, -0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x7d,0x8a,0xa8,0x31, -0x58,0x7b,0x4a,0xc2,0xbc,0x30,0x55,0x73,0x43,0x4d,0x7b,0x63,0x4e,0x21,0xa8,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x22,0x87,0x74,0x01,0x8b,0xfe,0x76,0x39,0x56,0x39,0x1d,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x27,0x40,0x52,0x2c,0x04,0x3e,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x00,0x00,0x2b, -0x00,0x21,0x40,0x11,0x0f,0x1b,0x96,0x1a,0x1a,0x00,0x2b,0x0f,0x15,0x0f,0x02,0x24,0x92,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e, -0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64,0x6f,0xa4,0x6d,0x7a,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x70,0x24,0x4a,0x45,0x3e,0x17,0xa4,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x01,0x0e,0xfe,0xec, -0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x10,0x1e,0x2e,0x1e,0x03,0x15,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x06,0x01,0xee,0x00,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0x2c,0x05,0xb2,0x00,0x1f,0x00,0x36,0x00,0x25,0x40,0x14,0x19,0x91,0x16,0x2f,0x14,0x01,0x14,0x11,0x03,0x0f,0x1d,0x00,0x20,0x91, -0x0a,0x04,0x2a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x33,0xed,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04, -0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xa9,0xf0,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8,0xfd,0x6b,0xf4,0xb6,0xdf,0xc9,0xf2,0xfd,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x9a,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a, -0xb7,0xfa,0xf0,0xfd,0x94,0x4f,0xb2,0x69,0xdf,0xdd,0x64,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36,0x00,0x00,0x02,0x00,0x28,0x00,0x00,0x04,0x9d,0x05,0x9a,0x00,0x20,0x00,0x2c,0x00,0x32,0x40,0x1c,0x1e,0x07,0x92,0x2b,0x17,0x2b,0x23,0x92,0x11,0x8f, -0x11,0xef,0x11,0x02,0x61,0x11,0x01,0x2b,0x11,0x2b,0x11,0x01,0x15,0x03,0x1f,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x21,0x21,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06, -0x07,0x11,0x21,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x04,0x9d,0xfd,0x18,0x0b,0x10,0x13,0x19,0x15,0x46,0x71,0x4f,0x2b,0x23,0x3f,0x58,0x35,0x25,0x53,0x26,0xa8,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0x02,0x40,0xfd,0x18,0x04,0x8f,0x2a,0x39,0x12,0x29,0x43,0x30,0x25,0x02,0x22,0x01,0x01,0x01,0x01,0x21,0x3e,0x5b,0x3a, -0x31,0x53,0x3b,0x21,0x16,0x22,0x01,0xe0,0xfd,0x43,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfe,0x4a,0x02,0x10,0xc4,0x30,0x2a,0x1d,0x2a,0x1c,0x0d,0x00,0x01,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x00,0x10,0x00,0x19,0x40,0x0d,0x0e,0x12,0x04,0x10,0x0a,0x03,0x06,0x09,0x12,0x06,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39, -0x3f,0x30,0x31,0x13,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x02,0xea,0x02,0x2a,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0xfd,0xe8,0xd1,0x02,0x67,0x05,0x9a,0xfd,0x70,0x25,0x0d,0x02,0xc2,0xfa,0x66,0x02,0xa2,0x16,0x1b,0xfd,0x8f,0x02,0xb0,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c, -0x05,0x9a,0x00,0x07,0x00,0x0f,0xb6,0x05,0x03,0x06,0x02,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0c,0xfc,0x1d,0x01,0x9d,0xa8,0x01,0x9e,0x98,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x32,0x02,0x79,0x05,0xcc,0x03,0x21,0x00,0x03,0x00,0x08,0xb1,0x01,0x03,0x00,0x2f,0xcd, -0x30,0x31,0x01,0x15,0x21,0x35,0x05,0xcc,0xfa,0x66,0x03,0x21,0xa8,0xa8,0x00,0x03,0xff,0xf9,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x27,0x00,0x30,0x00,0x39,0x00,0x30,0x40,0x19,0x1c,0x0f,0x20,0x0c,0x35,0x1d,0x0f,0x19,0x14,0x04,0x2d,0x2d,0x07,0x28,0x95,0x14,0x10,0x31,0xec,0x07,0x16,0x25,0xec,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed, -0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0x33,0xcd,0x32,0x32,0x3f,0x30,0x31,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x1e,0x03,0x33,0x32,0x37,0x01,0x22,0x0e,0x02,0x07,0x21,0x26,0x26,0x03,0x32,0x36,0x37,0x21,0x1e, -0x03,0x04,0xc5,0x33,0x2c,0x9a,0x36,0x04,0x95,0xfe,0xf7,0x5a,0x94,0x6b,0x3d,0x04,0x61,0x67,0x0c,0x4d,0x79,0xa3,0x63,0x3f,0x72,0x60,0x4c,0x1a,0x04,0x55,0xac,0xab,0xa0,0xaa,0x10,0x20,0x26,0x2c,0x1c,0x16,0x12,0xfd,0x74,0x3f,0x67,0x4e,0x33,0x0a,0x02,0x53,0x2a,0x92,0x95,0x66,0xa8,0x3a,0xfd,0xb1,0x05,0x29,0x43,0x5d,0x05,0x0d, -0x01,0x25,0xfe,0xcb,0x48,0x7f,0xae,0x66,0x81,0x68,0xac,0x7c,0x44,0x26,0x4a,0x6a,0x44,0x01,0x06,0xfe,0x44,0x81,0x59,0x75,0x46,0x1d,0x05,0x02,0xf9,0x32,0x59,0x79,0x48,0xa2,0xaa,0xfc,0xe8,0xa6,0xa5,0x47,0x79,0x58,0x33,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x58,0x04,0x18,0x00,0x29,0x00,0x38,0x00,0x41,0x00,0x43,0x40,0x24, -0x23,0x25,0x95,0x20,0x10,0x18,0x16,0x95,0x1b,0x39,0x95,0x28,0x2a,0x95,0x14,0x08,0x0c,0x28,0x1d,0x14,0x1b,0x28,0x14,0x28,0x14,0x0c,0x1b,0x10,0x33,0x95,0x0c,0x16,0x3e,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x3f,0xed,0x32,0x30, -0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x15,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x05,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x37,0x1e,0x03,0x33,0x32,0x36,0x37,0x06,0x58,0x38, -0x6b,0x9d,0x65,0x80,0xcc,0x3e,0x04,0x91,0xf2,0x4d,0x79,0x55,0x2d,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xdb,0x48,0x3c,0xb8,0x7b,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfc,0x87,0xcb,0x8b,0x89,0x1b,0x33,0x49,0x2d,0x3b,0x67,0x4d,0x2c,0xa8,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73,0xb6,0x7f,0x43, -0x7e,0x6e,0x07,0xe5,0x2a,0x4d,0x6d,0x44,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xb1,0x56,0x5b,0x62,0x9a,0x72,0xb9,0xac,0x50,0x0c,0x08,0x52,0x5f,0x24,0x3c,0x2b,0x17,0x2d,0x50,0x6c,0x3f,0x04,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0x40,0x04,0x12,0x00,0x20,0x00,0x2a,0x00,0x22,0x40,0x0f, -0x1f,0x1e,0x14,0x21,0x1e,0x21,0x1e,0x21,0x01,0x25,0x0d,0x20,0x19,0x01,0x15,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x30,0x31,0x05,0x37,0x2e,0x03,0x35,0x11,0x34,0x3e,0x02,0x37,0x25,0x33,0x13,0x16,0x15,0x14,0x07,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x01,0x03,0x25,0x36,0x35, -0x27,0x0e,0x03,0x15,0x01,0xac,0x09,0x62,0x82,0x4d,0x20,0x07,0x10,0x1c,0x14,0x01,0x7c,0x31,0xd9,0x0f,0x1a,0xfe,0x35,0x2f,0x45,0x50,0x21,0x21,0x31,0x2d,0x2f,0x1e,0x2d,0xfe,0xaf,0x92,0x01,0x0b,0x11,0xa7,0x19,0x2b,0x1f,0x12,0x0d,0x1a,0x1e,0x4b,0x5b,0x6c,0x40,0x01,0x18,0x23,0x2d,0x20,0x17,0x0c,0xea,0xfe,0xd6,0x1a,0x09,0x0f, -0x10,0xfe,0xef,0x30,0x44,0x2d,0x15,0x07,0x13,0x21,0x19,0x2d,0xfe,0xd2,0x02,0x09,0x9a,0x0b,0x07,0xf1,0x10,0x1a,0x23,0x35,0x2c,0x00,0x00,0x02,0x00,0x13,0xff,0xe8,0x04,0x23,0x04,0x18,0x00,0x20,0x00,0x29,0x00,0x36,0x40,0x1e,0x11,0x0b,0xff,0x06,0x01,0x06,0x03,0x14,0x03,0x01,0x95,0x29,0xe0,0x03,0xf0,0x03,0x02,0x03,0x29,0x03, -0x29,0x0e,0x24,0x95,0x1b,0x10,0x09,0x95,0x0e,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xdd,0x5d,0xce,0x33,0x30,0x31,0x01,0x21,0x14,0x17,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x35,0x33,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x27, -0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x03,0xdd,0xfd,0x2d,0x06,0x03,0x13,0xfd,0x15,0x29,0x92,0x65,0xac,0x92,0x88,0xdd,0xa1,0xdb,0x31,0x71,0x53,0x06,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0x26,0x21,0x81,0x4d,0x50,0x72,0x9a,0x62,0x98,0x8f,0x81,0x33,0x39,0x77,0xc7,0x8f, -0x4f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x26,0x00,0x2f,0x00,0x27,0x40,0x14,0x0f,0x95,0x1b,0x1b,0x01,0x95,0x2f,0x13,0x2f,0x13,0x2f,0x09,0x2a,0x95,0x21,0x10,0x04,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f, -0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x04,0xc4,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x75,0xab,0x72,0x3a,0x04,0x0e,0x8a,0x29, -0x89,0x27,0x25,0x44,0x60,0x3b,0x22,0x0e,0x4c,0x77,0x9f,0x60,0x6f,0xa0,0x66,0x30,0xa8,0x01,0x86,0x79,0x41,0x66,0x4b,0x2e,0x09,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x4e,0x87,0xb4,0x66,0x77,0x4a,0x47,0x49,0x56,0x38,0x5a,0x40,0x22,0x5b,0x9f,0x77,0x45,0x50,0x88,0xb2,0x61,0x35,0x8f,0x9d,0x34,0x54,0x6c,0x38,0xff,0xff,0x00,0x35, -0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x06,0x00,0x49,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x11,0x04,0x35,0x04,0x18,0x00,0x2d,0x00,0x42,0x00,0x4e,0x00,0x45,0x40,0x2b,0x24,0x15,0x18,0x27,0x0f,0x33,0x95,0x22,0x10,0x24,0x12,0x01,0x02,0x46,0x2a,0x12,0x04,0x05,0x49,0x96,0x2f,0x0f,0x01,0x0f,0x3d,0x95,0xef,0x18,0x01,0x18,0x40,0x09, -0x0f,0x48,0x18,0x15,0x43,0x96,0x05,0x1b,0x2d,0x00,0x1b,0x00,0x3f,0x32,0x3f,0xed,0x3f,0x2b,0x5d,0xed,0xde,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0xed,0x3f,0x12,0x39,0x39,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, -0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x01,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xaa,0x1c,0x2b,0x49,0xbc,0x63,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x45,0x26,0x04,0x75,0xeb, -0x5f,0x9d,0x6f,0x3d,0x41,0x79,0xae,0x6d,0xcf,0x64,0x04,0xa4,0x4a,0x26,0x38,0x11,0xc9,0x2c,0x4e,0x69,0x3d,0x4b,0x78,0x54,0x2d,0x2a,0x4f,0x6f,0x45,0x45,0x72,0x53,0x2d,0xfe,0x95,0x4d,0x78,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x48,0xfe,0x11,0x42,0x36,0x3b,0x30,0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5b,0x7e,0x70,0xc4, -0x47,0x83,0xba,0x73,0x82,0xd2,0x95,0x50,0xa6,0x8e,0xfc,0x52,0xd0,0x83,0x29,0x60,0x39,0x04,0x29,0x3c,0x6b,0x51,0x30,0x38,0x6c,0x9c,0x64,0x54,0x8b,0x63,0x36,0x35,0x5d,0x80,0x4b,0xfc,0xd1,0x2a,0x26,0x1f,0x22,0x27,0x1d,0x23,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0xb7,0x05,0xec,0x00,0x2b,0x00,0x2b,0x40,0x15,0x21,0x20, -0x11,0x03,0x03,0x1a,0x27,0x0a,0x0b,0x20,0x27,0x0b,0x0b,0x27,0x20,0x03,0x16,0x2a,0x00,0x16,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26, -0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x01,0xae,0x0f,0x1d,0x0e,0x1b,0x25,0x17,0x09,0x57,0x27,0x58,0x47,0x6f,0x68,0x0e,0x18,0x0c,0xa4,0x0f,0x20,0x11,0x32,0x29,0x2d,0x2a,0x26,0x4d,0x53,0x6a,0x68,0x1a,0x1e,0xa4,0x03,0x1f,0x06,0x08,0x10,0x1c,0x27,0x17,0x5b,0x19,0x52,0x17, -0x63,0x4c,0x5f,0x70,0x04,0x03,0xfd,0x4d,0x02,0xff,0x05,0x07,0x3c,0x2e,0x34,0x32,0x0e,0x51,0x0e,0x62,0x55,0x5f,0x70,0x08,0x02,0x84,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0xa4,0x05,0xec,0x00,0x26,0x00,0x4f,0x6e,0x00,0x00,0x27,0x00,0xd8,0x00,0x00,0xfe,0x71,0x00,0x07,0x00,0xd8,0x00,0x00,0xfd,0x3b,0x00,0x03,0xff,0xf6,0x00,0x00, -0x01,0xfa,0x05,0xec,0x00,0x15,0x00,0x1b,0x00,0x22,0x00,0x29,0x40,0x13,0x20,0x15,0x15,0x18,0x02,0x1f,0x0d,0x0d,0x19,0x0a,0x02,0x0a,0x02,0x0a,0x01,0x0b,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x21,0x23,0x11,0x2e,0x03,0x35,0x34,0x36,0x37,0x11,0x33, -0x11,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x27,0x14,0x17,0x35,0x06,0x06,0x05,0x34,0x26,0x27,0x15,0x36,0x36,0x01,0x4a,0xa4,0x27,0x41,0x2e,0x1a,0x60,0x50,0xa4,0x50,0x60,0x1a,0x2f,0x41,0x26,0xe4,0x40,0x1d,0x23,0x01,0x1e,0x20,0x1a,0x1a,0x20,0x02,0x1c,0x0a,0x2a,0x3a,0x4a,0x2c,0x5b,0x7a,0x17,0x02,0x00,0xfe,0x01,0x16,0x7a,0x55, -0x2a,0x4a,0x3c,0x2d,0x0c,0xe6,0x5f,0x1e,0xf5,0x13,0x3f,0x26,0x23,0x3c,0x13,0xe3,0x13,0x3b,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0xb4,0x04,0x18,0x00,0x3a,0x00,0x47,0x00,0x36,0x40,0x1e,0x36,0x1a,0x95,0x38,0x03,0x96,0x01,0x01,0x3b,0x96,0x13,0x13,0x20,0x38,0x10,0x2e,0x24,0x95,0x31,0x10,0x2d,0x0f,0x2a,0x15,0x20,0x15,0x43,0x95, -0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33, -0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x54,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0x19,0x37,0x57,0x3e,0x35,0x5c,0x44,0x27,0xa4,0xe9,0x35,0x5b,0x42,0x26,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5d,0x4b,0x38, -0x0e,0x72,0xe2,0x01,0x52,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x74,0x54,0x7a,0x4f,0x25,0x34,0x5a,0x76,0x42,0xfd,0xb8,0x02,0x60,0x01,0x2e,0x30,0x56,0x78,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0xf2, -0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x58,0x04,0x18,0x00,0x26,0x00,0x33,0x00,0x2b,0x40,0x17,0x20,0x17,0x95,0x23,0x03,0x96,0x00,0x00,0x27,0x96,0x13,0x13,0x1c,0x23,0x10,0x1f,0x0f,0x1c,0x15,0x2f,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed, -0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0xf8,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42, -0x24,0x2a,0x4a,0x66,0x3c,0x56,0xee,0x7b,0x51,0x50,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x70,0x01,0x46,0x5d,0x5c,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0xf7,0x16,0x24,0x2f,0x19,0x35,0x3f, -0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xfe,0x11,0x04,0x1c,0x04,0x18,0x00,0x2e,0x00,0x3a,0x00,0x3f,0x40,0x28,0x17,0x95,0x24,0x10,0x20,0x0f,0x24,0x12,0x01,0x02,0x32,0x2b,0x12,0x04,0x05,0x35,0x96,0x2f,0x0f,0x5f,0x0f,0x6f,0x0f,0xef,0x0f,0x04,0x06,0x0f,0x01,0x0f,0x0f,0x1d,0x15,0x2e,0x00,0x00,0x2f,0x96,0x05,0x1b,0x00,0x3f, -0xed,0x33,0x2f,0x33,0x3f,0x33,0x2f,0x5d,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0x3f,0xed,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x16,0x16,0x17,0x25, -0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x91,0x1c,0x2a,0x4a,0xbb,0x64,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x46,0x26,0xee,0x3d,0x68,0x4c,0x2b,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x27,0x23,0x26,0x37,0x11,0xfd,0xca,0x44,0x83,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x47,0xfe,0x11,0x42,0x36,0x3b,0x30, -0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5a,0x7f,0x02,0x0c,0x01,0x46,0x31,0x57,0x78,0x46,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfd,0xca,0x61,0x9e,0x3f,0x28,0x60,0x39,0x63,0x29,0x26,0x1f,0x23,0x27,0x1d,0x23,0x2a,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0xc9,0x04,0x12,0x00,0x1e,0x00,0x30,0x00,0x0d,0xb4,0x30, -0x1e,0x25,0x10,0x16,0x00,0x3f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x07,0x1e,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x05,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x26,0x27,0x03,0x02,0x20,0x03,0x23,0x36,0x40,0x20,0x16,0x15,0x19,0x38, -0x5c,0x42,0xbd,0x43,0x04,0xbe,0xb4,0x10,0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0xfe,0xa6,0x2d,0x52,0x42,0x2d,0x06,0x0e,0x26,0x22,0x18,0x29,0x28,0x30,0x56,0x13,0x03,0xd9,0x0e,0x05,0x3b,0x55,0x67,0x32,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x14,0x50,0x2d,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0xd4, -0xfd,0xb8,0x15,0x1e,0x15,0x0a,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x4a,0x74,0x2a,0x00,0x03,0x00,0x54,0xff,0xb4,0x03,0xc9,0x04,0x40,0x00,0x22,0x00,0x31,0x00,0x37,0x00,0x16,0x40,0x09,0x37,0x00,0x20,0x13,0x12,0x12,0x23,0x0e,0x16,0x00,0x3f,0xcd,0x33,0x2f,0x33,0x2f,0x33,0x33,0x30,0x31,0x01,0x07,0x16,0x16,0x17,0x16,0x16,0x15, -0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x07,0x23,0x37,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x17,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x01,0x1e,0x03,0x03,0x11,0x13,0x26,0x26,0x27,0x03,0x9e,0x83,0x1b,0x46,0x22,0x16,0x15,0x19,0x38,0x5c,0x42,0xbd,0x43,0x03,0x60,0x5b,0x50,0x78,0x62,0x52,0x10, -0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0x14,0x31,0xab,0x0e,0x26,0x22,0x18,0x29,0x28,0x06,0xfe,0xff,0x2b,0x4f,0x3f,0x2b,0xee,0xcb,0x1b,0x2d,0x0b,0x04,0x40,0xd3,0x2d,0x6d,0x36,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x0e,0x31,0x1e,0x81,0x9f,0x16,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0x22,0x50,0xfc, -0x64,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x09,0xfe,0x63,0x14,0x1c,0x14,0x09,0x02,0x9a,0xfe,0x64,0x01,0x48,0x27,0x42,0x1a,0x00,0x02,0x00,0x80,0xff,0xb4,0x04,0x50,0x04,0x40,0x00,0x23,0x00,0x2b,0x00,0x2b,0x40,0x15,0x0c,0x22,0x0e,0x23,0x23,0x1f,0x12,0x1b,0x12,0x1b,0x09,0x18,0x95,0x1f,0x10,0x0e,0x0e,0x24,0x95,0x09,0x16,0x00, -0x3f,0xed,0x33,0x2f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x30,0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x27,0x33,0x16,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x17,0x37,0x01,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x04,0x25, -0x66,0x47,0x4a,0x48,0x84,0xbd,0x75,0x38,0x64,0x2d,0x36,0x78,0x53,0x7a,0x34,0xb3,0x0e,0x28,0x17,0x01,0x9c,0x4d,0x71,0x6b,0x9b,0x29,0xaf,0x34,0xfd,0xb9,0x4b,0x81,0x36,0x40,0xfe,0xb2,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x04,0x40,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x12,0x11,0x57,0x87,0x54,0x98,0x1f,0x34,0x15,0x02,0x99,0x36, -0x65,0x5e,0x9f,0xae,0x20,0x1f,0x67,0xfc,0x32,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1f,0x04,0x18,0x00,0x22,0x00,0x32,0x00,0x3b,0x00,0x2c,0x40,0x18,0x1e,0x95,0x19,0x10,0x33,0x95,0x16,0x14,0x08,0x21,0x21,0x0a,0x23,0x95,0x14,0x10,0x2d,0x95,0x0a,0x16,0x38,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f, -0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0xed,0x3f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x20,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1e,0x03,0x33, -0x32,0x36,0x37,0x07,0x1f,0x38,0x6b,0x9d,0x65,0x80,0xca,0x3c,0x83,0xfe,0xe1,0x72,0xb9,0x81,0x46,0x4a,0x89,0xc1,0x78,0x01,0x17,0x6f,0x39,0xc2,0x86,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfb,0x3f,0x4e,0x7f,0x59,0x30,0x30,0x58,0x7e,0x4e,0xa0,0xac,0xac,0x01,0x52,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73, -0xb6,0x7f,0x43,0x7e,0x6e,0xec,0x4b,0x89,0xc0,0x76,0x81,0xcc,0x8e,0x4b,0xd4,0x67,0x6d,0x62,0x9a,0x72,0xb9,0xac,0x01,0x65,0x38,0x69,0x98,0x5f,0x5a,0x8f,0x65,0x36,0xcc,0xbe,0xc3,0xcf,0xfe,0x10,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x04,0x00,0x60,0xff,0xb4,0x07,0x21,0x04,0x40,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0x4a,0x00,0x41, -0x40,0x24,0x2e,0x95,0x29,0x2c,0x3f,0x34,0x0b,0x04,0x0c,0x2d,0x2d,0x29,0x10,0x42,0x95,0x10,0x13,0x26,0x24,0x19,0x19,0x13,0x1f,0x95,0x24,0x10,0x45,0x95,0x13,0x16,0x0c,0x0c,0x37,0x95,0x09,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0x33,0x2f,0x12,0x17,0x39,0x10,0xed,0x30, -0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x35,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x16,0x17,0x37,0x05,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x16, -0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0xf5,0x69,0x48,0x4d,0x4a,0x89,0xc2,0x77,0x6a,0x55,0x33,0x78,0x52,0x4d,0x2d,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x4d,0x85,0x38,0x43,0xfe,0xa9,0xa0,0xac,0x3c,0x39,0x01,0x9c,0x52,0x75,0x4f,0x7f, -0x59,0x2f,0x24,0x22,0xfe,0x72,0x39,0xfc,0x2a,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x04,0x40,0xaa,0x45,0xc7,0x7c,0x81,0xcc,0x8e,0x4b,0x1f,0x53,0x84,0x38,0x63,0xeb,0x45,0x7f,0xb5,0x70,0x58,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x23,0x21,0x6c,0xb2,0xcc,0xbe,0x72,0xa5,0x33,0x02,0x9a,0x3a,0xfc,0xe4,0x39,0x69,0x97, -0x5f,0x4e,0x7f,0x31,0xfd,0x7f,0x15,0x01,0x2c,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x24,0x00,0x2d,0x00,0x36,0x00,0x3f,0x00,0x3b,0x40,0x20,0x3a,0x95,0x1f,0x16,0x37,0x95,0x01,0x2b,0x95,0x31,0x1c,0x1a,0x01,0x0d,0x31,0x01,0x31,0x01,0x31,0x10,0x25,0x95,0x1a,0x16,0x2e,0x95, -0x10,0x10,0x06,0x95,0x0b,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x3f,0xed,0x30,0x31,0x13,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x01, -0x32,0x3e,0x02,0x37,0x21,0x16,0x16,0x13,0x22,0x06,0x07,0x21,0x2e,0x03,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x60,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x73,0xb8,0x81,0x46,0x4a,0x89,0xc2,0x77,0xfe,0xda,0x6c,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x04,0xc3,0x49,0x77, -0x58,0x35,0x07,0xfd,0x63,0x0b,0xab,0x95,0x8c,0xa7,0x14,0x02,0x95,0x0a,0x38,0x55,0x72,0xfb,0x9e,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x02,0x29,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x4c,0x89,0xc0,0x75,0x81,0xcc,0x8e,0x4b,0xeb,0xeb,0x45,0x7f,0xb5,0x70,0xfe,0xa1,0x30,0x5b,0x82,0x52,0xab,0xb4,0x03,0x1c,0x9d,0x95, -0x47,0x72,0x4f,0x2a,0xfe,0x10,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x1f,0x40,0x11,0x33,0x95,0x29,0x10,0x17,0x95,0x10,0x10,0x21,0x95,0x06,0x16,0x03,0x3d,0x95,0x00,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x06, -0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x9a,0x8d,0xd5,0x3f,0x42,0xd6,0x8f,0x71,0xb8,0x82, -0x47,0x49,0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x71,0x66,0x66,0x71,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69, -0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x03,0x00,0x60,0xff,0xb4,0x07,0x98,0x04,0x40,0x00,0x3c,0x00,0x47,0x00,0x4f,0x00,0x30,0x40,0x1b,0x03,0x45,0x4d,0x32,0x04,0x05,0x33,0x33,0x3d,0x95, -0x2f,0x10,0x1d,0x95,0x16,0x10,0x09,0x27,0x95,0x0c,0x16,0x05,0x05,0x48,0x95,0x00,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x12,0x17,0x39,0x30,0x31,0x05,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23, -0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x05,0x9a,0x38,0x64,0x2d,0x36,0x78,0x54,0x26,0x3f,0x19,0x42,0xd6,0x8f,0x71,0xb8,0x82,0x47,0x49, -0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x4b,0x81,0x36,0x40,0x79,0x66,0x47,0x4a,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x3f,0x3a,0x01,0x9b,0x4d,0x71,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x18,0x13,0x11,0x58,0x87,0x1a,0x42,0x28,0x66,0x71,0x4b,0x8a, -0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x20,0x1f,0x67,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x69,0x9f,0x33,0x02,0x99,0x36,0xfc,0xe4,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4, -0x04,0x00,0x00,0x11,0x00,0x19,0x40,0x0c,0x0b,0x03,0x96,0x0e,0x0e,0x07,0x0c,0x0f,0x07,0x15,0x00,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x30,0x31,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x11,0x33,0x11,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8c,0x88,0xa4,0x01,0x62,0xa4,0x01,0x61,0x6b,0x01,0x3c, -0xa0,0xa8,0x5f,0x58,0x01,0xab,0x29,0x01,0xd4,0xfe,0x2b,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0xb0,0xfe,0x8d,0x04,0x24,0x04,0x33,0x00,0x2a,0x00,0x35,0x00,0x1d,0x40,0x0e,0x0a,0x27,0x3a,0x30,0x30,0x28,0x2f,0x3a,0x2a,0x16,0x3a,0x1d,0x28,0x08,0x00,0x3f,0xdc,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x32,0x1e, -0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x02,0x1d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x55,0x37,0x19,0x09,0x1b,0x30,0x28,0x11,0x20, -0x0e,0x11,0x22,0x13,0x96,0x83,0x27,0x40,0x51,0x29,0x90,0xa4,0x02,0x37,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x04,0x33,0x27,0x4a,0x69,0x43,0x3b,0x62,0x4c,0x35,0x0d,0x03,0x14,0x2e,0x3e,0x4f,0x33,0xe8,0x3b,0x58,0x3a,0x1e,0x05,0x05,0x88,0x04,0x04,0xb8,0xb9,0xff,0x25,0x43,0x33,0x1d,0xfe,0x4b,0x04,0x33,0xfe,0xd7,0x57,0x4c, -0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xef,0x04,0x00,0x00,0x0d,0x00,0x11,0xb7,0x09,0x00,0x0d,0x0f,0x07,0x0f,0x05,0x15,0x00,0x3f,0x3f,0x3f,0x33,0x32,0x30,0x31,0x01,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x01,0xef,0x35,0x2a,0x46,0xa4,0xa4,0x04,0x18,0x51,0x35,0x03,0x6a, -0x18,0x3a,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x49,0x68,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf2,0x04,0x12,0x00,0x1e,0x00,0x1b,0x40,0x0e,0x14,0x07,0x0a,0xec,0x1a,0x10,0x13,0x0f,0x10,0x15,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x30,0x31,0x01,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23, -0x22,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x03,0x90,0x3e,0x24,0x2c,0x50,0x65,0x45,0x2a,0x50,0x20,0x35,0x4a,0x23,0x46,0xa4,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x36,0x55, -0x3b,0x1f,0x20,0x1d,0x3d,0x00,0x00,0x02,0x00,0x1c,0xff,0xe8,0x03,0x9e,0x04,0x12,0x00,0x26,0x00,0x33,0x00,0x28,0x40,0x15,0x02,0xec,0x24,0x10,0x0a,0x96,0x07,0x07,0x27,0x96,0x1e,0x1c,0x1b,0x1b,0x10,0x1c,0x0f,0x2f,0x95,0x10,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x26, -0x23,0x22,0x07,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0x9e,0x2c,0x50,0x6a,0x46,0x46,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66, -0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xfd,0xa3,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x03,0x5a,0x21,0x63,0x62,0xac,0x32,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0xfd,0x65,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02, -0x00,0x1c,0xff,0xe8,0x04,0xd4,0x04,0x12,0x00,0x32,0x00,0x3f,0x00,0x30,0x40,0x1a,0x07,0x0a,0xec,0x2e,0x10,0x14,0x96,0x11,0x11,0x33,0x96,0x28,0x27,0x25,0x25,0x1a,0x27,0x0f,0x3b,0x95,0x1a,0x16,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x32,0x30,0x31,0x01,0x32, -0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x04,0x72,0x3e,0x24,0x2c,0x50,0x65,0x45, -0x2a,0x50,0x20,0x35,0x4a,0x23,0x23,0x23,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0xfd,0x29,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x32,0x90,0x56,0x28,0x6f,0x63,0x46,0x6b,0x48,0x25, -0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x20,0x1d,0x3d,0xfd,0x57,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x03,0x14,0x04,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x05,0x96,0x0f,0x0a,0x0f,0x0a,0x0f,0x01,0x14,0x0f,0x0c,0x0f,0x01,0x15,0x00,0x3f,0x3f,0x3f, -0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x30,0x31,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x03,0x14,0xa4,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x03,0x64,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21, -0x11,0x00,0x00,0x02,0x00,0x3c,0xff,0xe9,0x05,0x06,0x04,0x00,0x00,0x20,0x00,0x2c,0x00,0x29,0x40,0x16,0x21,0x96,0x1c,0x09,0x96,0x13,0x0d,0x1c,0x13,0x13,0x1c,0x0d,0x03,0x00,0x18,0x0f,0x10,0x0f,0x27,0x96,0x00,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x30,0x31,0x05,0x22,0x2e,0x02,0x35, -0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x11,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xb0,0x48,0x76,0x54,0x2e,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x49,0x6b,0x01, -0x3e,0xb2,0x94,0x5d,0x4f,0x4e,0x5b,0x5a,0x4c,0x4b,0x17,0x27,0x4b,0x70,0x4a,0x02,0x4f,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21,0x11,0xfe,0x73,0x24,0xfe,0xac,0xaa,0xb0,0x02,0x52,0x81,0x83,0x79,0x79,0x7a,0x7d,0x80,0x7f,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x02,0x06,0x05,0x88,0x00,0x00, -0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x12,0x00,0x19,0x40,0x0c,0x11,0x11,0x01,0x09,0x0f,0x02,0x0c,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6, -0xfe,0x92,0xa3,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x58,0x58,0x90,0x01,0x03,0x00,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1f,0x00,0x28,0x40,0x13,0x0a,0x01,0x18,0x10,0x14,0x0d,0x10,0x12,0x10,0x12,0x10,0x07,0x0f,0x0f,0x04,0x1b,0x95,0x07,0x15,0x00,0x3f,0xed, -0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xcd,0x32,0x32,0x30,0x31,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x35,0x33,0x15,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x3e,0x02,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe, -0xc4,0xfd,0xf4,0xfa,0x3c,0x65,0x48,0x29,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x50,0x50,0xb4,0x29,0x25,0xfe,0xbc,0x2f,0x54,0x76,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x12,0x00,0x27,0x00,0x3b,0x00,0x29,0x40,0x16,0x0e,0x0e,0x25,0x28,0x32,0x10,0x07,0x95,0x25,0x16,0x23,0x1b,0x11,0x95, -0x1e,0x16,0x1a,0x15,0x17,0x0f,0x01,0x0f,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x3f,0xed,0x3f,0xcd,0x12,0x39,0x2f,0x30,0x31,0x13,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x23,0x20,0x11,0x01,0x22,0x2e, -0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xa6,0xa4,0x19,0x36,0x57,0x3f,0x34,0x5c,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6e,0xd0,0x35,0x5d,0x4b,0x37,0x0e,0x72,0xe2,0xfe,0xae,0x02,0xd7,0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x16,0x28,0x1d,0x11,0x11,0x1d,0x28,0x04,0x00,0xfd,0xb4, -0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0xfe,0xd2,0x30,0x57,0x77,0x48,0x02,0x48,0xfc,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0x01,0xa1,0x01,0xb4,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11,0x00,0x00,0x02,0x00,0xa6,0xff,0xee,0x06,0x54,0x04,0x18,0x00,0x27,0x00,0x3b,0x00,0x2b, -0x40,0x17,0x28,0x32,0x16,0x07,0x95,0x25,0x10,0x11,0x95,0x1e,0x10,0x23,0x1b,0x19,0x0e,0x0e,0x18,0x19,0x0f,0x18,0x15,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x3f,0xcd,0x30,0x31,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11, -0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x06,0x54,0xa4,0x19,0x36,0x57,0x3f,0x35,0x5b,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5e,0x4b,0x37,0x0e,0x72,0xe2,0x01,0x52,0xfd,0x29, -0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x17,0x27,0x1d,0x11,0x11,0x1d,0x27,0x02,0x4c,0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0x01,0x2e,0x30,0x57,0x77,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0x4c,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11, -0x00,0x01,0x00,0x0e,0xff,0xe8,0x04,0x46,0x04,0x31,0x00,0x21,0x00,0x1c,0x40,0x0e,0x0d,0x95,0x13,0x13,0x02,0x01,0x20,0x0f,0x1b,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x33,0x2f,0xed,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02, -0x15,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0x46,0xa4,0x04,0x66,0xd6,0xfe,0x92,0x0a,0x1c,0x35,0x2a,0x1e,0x2a,0x19,0x2a,0x4c,0x48,0x68,0x43,0x20,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x01,0x2b,0x38,0x54,0x37,0x1c,0x0d,0x0e,0x94,0x12,0x34,0x5e,0x82,0x4e,0xfe,0xe7,0xfe,0xbc,0x58,0x58,0x90,0x02,0x4e,0x00, -0xff,0xff,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x02,0x06,0x01,0xd3,0x00,0x00,0x00,0x02,0x00,0x0c,0xfe,0x21,0x04,0xbc,0x04,0x18,0x00,0x28,0x00,0x3c,0x00,0x28,0x40,0x15,0x38,0x18,0x0a,0x1b,0x07,0x04,0x19,0x1f,0x1f,0x08,0x19,0x0f,0x0d,0xec,0x12,0x10,0x2e,0x00,0x00,0x08,0x1b,0x00,0x3f,0x33,0x2f,0x32,0x3f,0xed,0x3f,0x12, -0x39,0x2f,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x22,0x26,0x27,0x26,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x33,0x01,0x13,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0xea, -0x3e,0x5c,0x1c,0x1c,0x35,0x1f,0xa0,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x2e,0x2a,0x21,0x4a,0x2b,0x44,0x39,0x32,0x1a,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xdc,0x1c,0x4c,0x2d,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x8c,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0xfe,0x21,0x38,0x30,0x30,0x6c, -0x43,0x01,0x56,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a,0x0a,0x15,0x32,0x51,0x3c,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfe,0x18,0x1a,0x1b,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0xc6,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x21, -0x00,0x20,0x40,0x12,0x02,0xec,0x1f,0x1c,0x08,0x16,0x05,0x19,0x04,0x07,0x18,0x1b,0x13,0xec,0x0e,0x10,0x07,0x0f,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x13,0x16,0x33,0x32,0x37,0x13,0x01,0x33,0x01,0x13,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x03,0x01,0x23,0x01,0x03,0x0e,0x03,0x23,0x22,0x27, -0x0c,0x27,0x27,0x48,0x44,0xec,0xfe,0x89,0xb9,0x01,0x11,0x8c,0x1a,0x32,0x39,0x44,0x2b,0x4a,0x21,0x2a,0x2e,0x48,0x42,0xae,0x01,0xc6,0xb9,0xfe,0xa1,0x9f,0x26,0x44,0x45,0x4b,0x2d,0x31,0x2b,0xfe,0xc6,0x10,0x96,0x02,0x0c,0x02,0xa8,0xfd,0xfa,0x01,0x4a,0x3d,0x52,0x31,0x14,0x0a,0x9a,0x0e,0x94,0xfe,0x77,0xfc,0xc8,0x02,0x91,0xfe, -0x95,0x57,0x75,0x48,0x1e,0x09,0x00,0x02,0x00,0x1a,0xff,0xd3,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x26,0x40,0x16,0x21,0x0f,0x37,0x25,0x01,0x1f,0x18,0x04,0x05,0x40,0x0b,0x0e,0x48,0x05,0x05,0x1d,0x15,0x2d,0x0f,0x16,0x00,0x0f,0x00,0x3f,0x3f,0x33,0x3f,0x39,0x2f,0x2b,0x17,0x39,0x33,0x3f,0x30,0x31,0x01,0x01,0x17,0x36, -0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d, -0x2b,0x34,0x46,0x34,0x2c,0x19,0x63,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x1b,0x32,0x49,0x2e, -0xb5,0x11,0x26,0x17,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0xff,0x1f,0xfe,0x57,0x03,0x92,0x04,0x00,0x00,0x15,0x00,0x1a,0x40,0x0e,0x06,0x0d,0x01,0x13,0x04,0x03,0x15,0x0f,0x0f,0x0f, -0x0b,0x1b,0x03,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x30,0x31,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00, -0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x02,0xff,0x1f,0xfe,0x57,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x2a,0x40,0x18,0x37,0x18,0x1f,0x01,0x25,0x04,0x27,0x2f,0x05,0x3f,0x05,0x02,0x05,0x05,0x0f,0x27,0x0f,0x21,0x0f,0x1d, -0x1b,0x2d,0x0f,0x16,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x01,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e, -0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x2b,0x29,0x3f,0x36,0x2e,0x16,0x74,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d, -0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x15,0x29,0x3e,0x29,0xd4,0x11,0x26,0x17,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x01, -0xfe,0xc8,0xfe,0x21,0x03,0x7a,0x04,0x00,0x00,0x23,0x00,0x1d,0x40,0x10,0x02,0xec,0x21,0x1c,0x0e,0x12,0x08,0x17,0x04,0x10,0x14,0x15,0x10,0x0f,0x0a,0x0f,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x33,0x01,0x01,0x23,0x03,0x26,0x27, -0x23,0x06,0x06,0x07,0x01,0x0e,0x03,0x23,0x22,0x27,0xfe,0xc8,0x27,0x27,0x14,0x1d,0x1f,0x2a,0x21,0x01,0xae,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0xb5,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0xab,0x2b,0x41,0x3c,0x41,0x2a,0x31,0x2b,0xfe,0xc6,0x10,0x0a,0x21,0x3f,0x34,0x02,0xa2,0x02,0x0a, -0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0xdc,0x45,0x64,0x40,0x1e,0x09,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0x40,0x04,0x00,0x00,0x14,0x00,0x18,0x40,0x0b,0x0f,0x0b,0x14,0x14,0x03,0x0d,0x0f,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31, -0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x40,0xfe,0xbe,0x7e,0xe4,0x41,0x2a,0x34,0x2d,0x7d,0x3d,0x52,0xfe,0x70,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x99,0x02,0x89,0xfc,0xd3,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x4e,0x0c,0x26,0x1a, -0x01,0x9f,0x00,0x02,0x00,0x25,0x03,0x50,0x02,0x4a,0x05,0xbe,0x00,0x10,0x00,0x21,0x00,0x14,0xb7,0x11,0x16,0x14,0x1c,0x0b,0x10,0x0d,0x05,0x00,0x2f,0xcd,0xcc,0x32,0xde,0xcd,0xcc,0x32,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e, -0x02,0x17,0x02,0x4a,0x05,0x2e,0x4a,0x61,0x39,0x3a,0x61,0x47,0x2a,0x02,0x64,0x0c,0xa0,0x45,0x60,0x0a,0x0a,0x60,0x45,0xa0,0x0c,0x64,0x02,0x2a,0x47,0x61,0x3a,0x37,0x62,0x4a,0x2f,0x05,0x05,0xbe,0x38,0x5c,0x43,0x25,0x24,0x42,0x5d,0x39,0x9b,0x53,0x48,0xfd,0x92,0x48,0x53,0x9b,0x39,0x5d,0x42,0x24,0x25,0x42,0x5d,0x38,0x00,0x01, -0x00,0x64,0x01,0xbc,0x02,0x4e,0x05,0xc4,0x00,0x21,0x00,0x14,0xb7,0x12,0x1f,0x1f,0x19,0x1a,0x0a,0x05,0x19,0x00,0x2f,0xdc,0xcd,0x2f,0x12,0x39,0x2f,0xcd,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02, -0x4e,0x1f,0x3a,0x56,0x36,0x2b,0x24,0x2b,0x26,0x13,0x25,0x1b,0x11,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0x02,0xa0,0x3e,0x57,0x36,0x19,0x10,0x5f,0x16,0x06,0x1a,0x32,0x2c,0x01,0x3a,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x01,0x00,0x00,0x02,0x9a,0x01,0xf4,0x05,0xc4,0x00,0x28, -0x00,0x29,0x40,0x13,0x1c,0x1d,0x0e,0x02,0x02,0x16,0x23,0x07,0x08,0x1d,0x23,0x08,0x08,0x23,0x1d,0x03,0x12,0x27,0x12,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26, -0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x01,0x3c,0x12,0x11,0x24,0x1b,0x3f,0x1e,0x42,0x35,0x50,0x4b,0x10,0x0d,0x80,0x0a,0x14,0x0b,0x21,0x1b,0x21,0x1e,0x1e,0x39,0x3f,0x4d,0x4c,0x09,0x11,0x09,0x80,0x04,0x6b,0x05,0x27,0x20,0x3d,0x11,0x43,0x11,0x48,0x38,0x45,0x52, -0x03,0xfe,0x81,0x01,0xb9,0x03,0x04,0x29,0x1f,0x23,0x23,0x0a,0x41,0x0b,0x48,0x3e,0x45,0x52,0x03,0x02,0x01,0x20,0x00,0x01,0x00,0x00,0x02,0x95,0x01,0xbf,0x05,0xc0,0x00,0x2f,0x00,0x23,0x40,0x0f,0x03,0x2d,0x2d,0x0a,0x10,0x10,0x28,0x22,0x22,0x15,0x1b,0x1b,0x07,0x1e,0x07,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x33,0x2f,0xcd,0x32, -0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x33,0x11,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x27,0x15,0x16,0x33,0x32,0x37,0x01,0xbf,0x02,0x40,0x38,0x11,0x10,0x86,0x14, -0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x14,0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x86,0x0d,0x11,0x3e,0x02,0x3d,0x02,0x40,0x38,0x11,0x10,0x0d,0x11,0x3e,0x02,0x04,0x3d,0x47,0x59,0x03,0xfe,0xf5,0x01,0x45,0x06,0x50,0x49,0x57,0x04,0x76,0x06,0x50,0x49,0x57,0x04,0xcc,0xfe,0xf7,0x04,0x52,0x47,0x59,0x03,0x79,0x04, -0x52,0x00,0x00,0x01,0x00,0x00,0x02,0x8d,0x02,0x80,0x04,0xfc,0x00,0x25,0x00,0x19,0x40,0x0a,0x0c,0x13,0x13,0x02,0x01,0x25,0x1e,0x06,0x06,0x01,0x00,0x2f,0x33,0x2f,0xcd,0x2f,0x12,0x39,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02, -0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x02,0x80,0x7f,0x02,0x1d,0x4f,0x3d,0xd3,0x1c,0x30,0x11,0x18,0x0e,0x0c,0x2e,0x16,0x29,0x42,0x2d,0x18,0x05,0x14,0x29,0x23,0x24,0x3a,0x29,0x15,0x7f,0x02,0x9a,0x5c,0x35,0x34,0xf7,0xa0,0x40,0x3f,0x07,0x08,0x5e,0x05,0x05,0x1e,0x35,0x4a,0x2c,0x8c,0x2e,0x45,0x2e,0x17, -0x1e,0x33,0x41,0x24,0x01,0x3b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0x18,0x00,0x14,0x00,0x29,0x00,0x1b,0x40,0x0e,0x00,0x1b,0x95,0x13,0x10,0x06,0x25,0x95,0x09,0x16,0x04,0x15,0x03,0x0f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x01,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, -0x3e,0x02,0x33,0x32,0x13,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x66,0x04,0xa4,0xa4,0x04,0x7a,0xe8,0x63,0x9c,0x6c,0x39,0x40,0x79,0xad,0x6d,0xcc,0x6b,0x2c,0x4e,0x6b,0x3f,0x4a,0x76,0x52,0x2c,0x29,0x4c,0x6c,0x44,0x48,0x75,0x53,0x2d,0x03,0x6c,0x94,0xfc,0x00,0xb4,0xcc,0x48,0x84, -0xbb,0x73,0x7f,0xd0,0x95,0x52,0xfd,0xb7,0x8f,0x3e,0x6f,0x53,0x30,0x3b,0x6f,0xa0,0x65,0x55,0x87,0x5f,0x32,0x36,0x5e,0x7f,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x02,0x06,0x0d,0x80,0x00,0x00,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x04,0x7f,0x00,0x07,0x0f,0x50,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0xcf,0xfe,0xe8, -0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x50,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x04,0x7f,0x00,0x07,0x0f,0x51,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfe,0xe8,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x51,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x53,0x00,0x2b, -0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x53,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x54,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x54,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29, -0x05,0x97,0x00,0x07,0x0f,0x56,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x56,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x67,0xfe,0x36,0x01,0xf0,0xff,0x9e,0x00,0x06,0x0f,0x5d,0x2b,0x37,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x05,0x97,0x00,0x07,0x0f,0x52,0x00,0x2b,0x03,0xcf,0xff,0xff, -0x00,0xcf,0xfd,0xd0,0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x52,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x8b,0xfe,0x63,0x01,0xcc,0xff,0xa4,0x00,0x06,0x0f,0x5b,0x2b,0x64,0xff,0xff,0x00,0x0c,0x03,0xca,0x02,0x72,0x06,0x2c,0x00,0x07,0x0f,0x57,0x00,0x46,0x03,0xca,0xff,0xff,0x00,0x0c,0xfe,0x17,0x02,0x72,0x00,0x79,0x00,0x07,0x0f,0x57, -0x00,0x46,0xfe,0x17,0xff,0xff,0xff,0xd4,0x03,0xc3,0x02,0x33,0x06,0xa7,0x02,0x07,0x0e,0x65,0x00,0x00,0xfe,0xa3,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x95,0x00,0x27,0x0a,0x65,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x06,0xa0,0x00,0x27,0x0a,0x66,0x00,0x1e,0xfe,0xa3, -0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x9f,0x00,0x27,0x0a,0x67,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x05,0xff,0xf2,0x02,0x01,0x07,0x8d,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x01,0x07,0x8d,0x02,0x26, -0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0x00,0x02,0x00,0x52,0xfe,0x9c,0x0c,0xb6,0x03,0xba,0x00,0x7a,0x00,0x8a,0x00,0x68,0xb1,0x72,0x03,0xbd,0x04,0xfb,0x00,0x77,0x05,0x03,0x00,0x15,0x00,0x6a,0x04,0xfb,0xb6,0x6b,0x6b,0x59,0x1f,0x5e,0x37,0x34,0xb8,0x04,0xfb,0xb6,0x7b,0x55,0x59,0x33,0x33,0x2c,0x3c,0x41,0x09,0x04, -0xfb,0x00,0x59,0x05,0x03,0x00,0x7e,0x04,0xfb,0x00,0x50,0x05,0x03,0x00,0x86,0x04,0xfb,0xb5,0x2f,0x46,0x01,0x46,0x46,0x25,0xb8,0x04,0xff,0xb3,0x2c,0x0e,0x0e,0x2c,0x00,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x32,0x32,0x39,0x11,0x33,0x2f,0xed,0x32,0x3f,0xed,0x32, -0x30,0x31,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x00,0x17,0x1e,0x03,0x17,0x26,0x26,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x05,0x15,0x14,0x1e,0x02,0x17,0x07,0x2e,0x05,0x27,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x52,0x61,0xa6,0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x01,0x05,0x2d,0x1f,0x5e,0x76,0x8a,0x4b, -0x06,0x09,0x31,0x5a,0x80,0x9f,0xb9,0x67,0x39,0x60,0x68,0x7d,0x56,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x13,0x30,0x55,0x44,0x3f,0x56,0x3a,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x32,0x88,0x55,0x31,0x43,0x6e, -0x50,0x30,0x05,0x30,0x6f,0x70,0x66,0x50,0x2f,0x24,0x4b,0x73,0x50,0x2f,0x50,0xad,0xad,0xa5,0x91,0x77,0x28,0x1c,0x53,0x67,0x76,0x3f,0x3a,0x9a,0x4b,0x09,0xd1,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3e,0x2e,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xfe,0xdc,0xf9,0x5a,0x97,0x7b,0x61,0x23, -0x1e,0x39,0x12,0x38,0x57,0x47,0x3e,0x3d,0x42,0x29,0x05,0x1b,0x36,0x2a,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2a,0x3a,0x26,0x11,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x4b,0x48,0x29,0x4d,0x6e,0x45,0x0c,0x24,0x2a,0x31, -0x34,0x38,0x1b,0x25,0x43,0x35,0x22,0x04,0xaa,0x08,0x2a,0x41,0x55,0x67,0x77,0x42,0x2c,0x3b,0x24,0x0f,0x0c,0x0a,0x01,0x05,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0x00,0x12,0x00,0x32,0xff,0x17,0x07,0xc3,0x06,0x5d,0x01,0x37,0x01,0x67,0x01,0x8a,0x01,0xb5,0x01,0xb9,0x01,0xc7,0x01,0xec,0x02,0x11,0x02,0x21, -0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x48,0x02,0x4c,0x02,0x50,0x02,0x54,0x02,0x58,0x02,0x5c,0x00,0x00,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17, -0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x15,0x14,0x16,0x33,0x33,0x35,0x33,0x15,0x21, -0x32,0x3e,0x02,0x35,0x11,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x14,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17, -0x33,0x11,0x33,0x11,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x23,0x11,0x14,0x1e,0x02,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17, -0x36,0x36,0x37,0x15,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06, -0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x27,0x15,0x14,0x0e,0x02,0x23, -0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x35,0x01,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14, -0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x05,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x34, -0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x03,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x13,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x21,0x15,0x21,0x25,0x33,0x15,0x23,0x03,0x23,0x35,0x33, -0x07,0x23,0x35,0x33,0x05,0xf4,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x68,0x2f,0x35,0x0b,0x15,0x31,0x14,0x97,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e, -0x19,0x15,0x8d,0x09,0x15,0x11,0x0c,0xdb,0x1d,0x27,0x0d,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x13,0x23,0xd2,0x41,0x01,0xee,0x09,0x15,0x11,0x0c,0x0c,0x26,0x2e,0x0a,0x15,0x31,0x14,0x27,0x2f,0x22,0x1b,0x12,0x13,0x24,0x21,0x29,0x21,0x8b,0x94,0x75, -0x6a,0x01,0x02,0x3c,0x03,0x20,0x30,0x3a,0x1a,0x73,0x6d,0x24,0x2a,0x24,0x42,0x3c,0x1f,0x2a,0x22,0x24,0x1a,0x09,0x14,0x11,0x0b,0x41,0x18,0x22,0x0a,0x41,0x1a,0x21,0x05,0x05,0x42,0x04,0x04,0x03,0x04,0x3c,0x10,0x36,0x3d,0x3e,0x19,0x2c,0x3c,0x25,0x10,0x21,0x39,0x4d,0x2d,0x4b,0x1a,0x36,0x30,0x28,0x0d,0x01,0x0f,0x2d,0x16,0x0e, -0x07,0x11,0x1d,0x15,0xb7,0x2e,0x1b,0x15,0x2c,0x42,0x2c,0x0e,0x2d,0x12,0x11,0x25,0x14,0x17,0x26,0x1d,0x10,0x24,0x35,0x2f,0x4e,0x33,0x2d,0x4e,0x4a,0x48,0x27,0x8c,0x2f,0x35,0x0b,0x15,0x31,0x14,0xfe,0x16,0x07,0x11,0x1d,0x15,0x6b,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfc, -0x2c,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x04,0x1d,0x2a,0x43,0x20,0x27,0x31,0x1b,0x0a,0x01,0x21,0x22,0x1a,0x30,0x25,0x16,0x13,0x21,0x2d,0x1b,0x1d,0x2e,0x14,0x16,0x15,0x14,0x2d,0x48, -0x33,0x23,0x43,0x27,0xe6,0x12,0x1c,0x23,0x12,0x34,0x16,0x0d,0x27,0x11,0x14,0x29,0x0b,0x11,0x28,0x11,0xfe,0xa3,0x01,0x60,0x11,0x1f,0x30,0x15,0x1b,0x11,0x1e,0x2d,0x18,0x1d,0x15,0x1e,0xfd,0xf8,0x42,0x42,0x04,0x15,0x4d,0x3c,0x11,0x19,0x1c,0x0c,0x17,0x2d,0x28,0x21,0x0b,0xfa,0xe9,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09, -0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x02,0x68,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x03,0x7c,0x0d,0x16,0x1c,0x0f,0x0c,0x16,0x11,0x0b,0x31,0x20,0x0f,0x1e,0xfa,0x73,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xf3, -0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x05,0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x03,0x5d,0x01,0x0d,0xfe,0xf3,0x01,0x0d,0xfe,0xf3,0x02,0x36,0x01,0x0d,0xfe,0xf3,0xfd,0x85,0xd1,0xd1,0xe2,0x4c,0x4c,0x83,0x4b,0x4b,0x01,0x23,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x18,0x0d,0x15,0x10,0x13,0x0e,0x10,0x11, -0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x01,0x48,0x14,0x11,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x07,0xf3,0x26,0x27,0x7c,0x7c,0x05, -0x0d,0x16,0x11,0x01,0x83,0x02,0x17,0x0c,0x15,0x10,0x2b,0x34,0x2b,0x1d,0x1a,0x10,0x26,0x2b,0x30,0x1a,0x4f,0x4b,0x4d,0x55,0x0e,0x17,0x0e,0x13,0x15,0x09,0x20,0x25,0x12,0x05,0x29,0x30,0x11,0x22,0x26,0x2c,0x1c,0x39,0x48,0x2b,0x33,0x2b,0x05,0x0e,0x15,0x11,0x02,0x0c,0xfe,0x0b,0x1a,0x30,0x05,0x01,0xb8,0xfe,0x48,0x02,0x17,0x14, -0x11,0x29,0x17,0x17,0x2b,0x15,0x21,0x03,0x38,0x59,0x3e,0x21,0x1c,0x2f,0x40,0x24,0x33,0x39,0x1b,0x06,0x02,0x09,0x14,0x12,0x14,0x1d,0xfe,0x94,0x0f,0x1c,0x17,0x0e,0x27,0x3b,0x19,0x1d,0x35,0x27,0x17,0x03,0x03,0x46,0x03,0x04,0x05,0x11,0x1f,0x19,0x17,0x37,0x21,0x09,0x1f,0x19,0x4e,0x14,0x1a,0x10,0x06,0x18,0x0d,0x15,0x10,0xfe, -0xcf,0x0f,0x1c,0x17,0x0e,0x04,0x0d,0x16,0x12,0x63,0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x63,0x49,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0x03,0x42,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20, -0x01,0x39,0xfa,0x39,0x11,0x0e,0x1a,0x28,0x33,0x1a,0x0f,0x10,0x1f,0x2d,0x1d,0x19,0x37,0x2f,0x1e,0x21,0x21,0x22,0x5c,0x34,0x2d,0x53,0x3f,0x26,0x0f,0x12,0x56,0x6d,0x1b,0x21,0x12,0x06,0x16,0x0e,0x08,0x0b,0x0e,0x0f,0x0a,0x30,0x0f,0x17,0x43,0x32,0x1d,0x1a,0x0e,0x18,0x43,0x31,0x1d,0x1a,0x01,0x0e,0x18,0x6b,0x06,0x70,0xfd,0x3c, -0x95,0x1b,0x24,0x20,0x29,0x18,0x0a,0x1c,0x2f,0x3e,0x21,0x02,0x02,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0x69,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03, -0x0f,0x08,0xfa,0xc0,0x0f,0x2d,0x2a,0x1e,0x0f,0x17,0x1e,0x0f,0x1d,0x21,0x05,0x20,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x02,0x33,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0x01,0xe7,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfc,0xd6,0x25,0x01,0x6f,0x25,0x03,0x3f,0x25,0x51,0x25,0xfb,0x58,0x4c,0x4c,0x4c,0x00,0x00,0x05, -0x00,0x32,0xff,0xba,0x06,0xc7,0x06,0x22,0x00,0xa9,0x00,0xb9,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0x00,0x25,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x26, -0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x16,0x33,0x32,0x37,0x26,0x02,0x27,0x35,0x33,0x16,0x12,0x17,0x33,0x11,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x3e,0x03,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x3e,0x02, -0x37,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x17,0x36,0x36,0x37,0x26,0x26,0x27,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x36,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x37,0x15,0x0e,0x05,0x25,0x26,0x26,0x27,0x0e,0x03,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32, -0x3e,0x02,0x35,0x01,0x23,0x35,0x33,0x07,0x23,0x35,0x33,0x04,0xc2,0x2d,0x39,0x10,0x09,0x0a,0x3b,0x5d,0x7e,0x4c,0x6b,0xc5,0xab,0x8a,0x2e,0x33,0x93,0xae,0xc0,0x60,0x3e,0x70,0x56,0x32,0x14,0x2d,0x39,0x16,0x14,0x37,0x3d,0x42,0x20,0x2d,0x5e,0x58,0x4d,0x1c,0x34,0x69,0x29,0x25,0x40,0x22,0x10,0x10,0x05,0x10,0x07,0x0f,0x08,0x32, -0x43,0x2c,0x4d,0x39,0x20,0x17,0x48,0x2a,0x21,0x33,0x23,0x13,0x34,0x51,0x61,0x2d,0x4c,0x3e,0x46,0x3a,0x24,0x39,0x96,0x61,0x5c,0x41,0x81,0x3e,0x08,0x48,0x25,0x0e,0x1b,0x0d,0x13,0x22,0x18,0x0e,0x47,0x08,0x0b,0x0a,0x25,0x14,0x16,0x47,0x16,0x19,0x3d,0x42,0x44,0x21,0x22,0x41,0x22,0x23,0x27,0x2a,0x62,0x35,0x22,0x13,0x1f,0x0c, -0x15,0x3e,0x2a,0x2b,0x56,0x2f,0x1c,0x21,0x2a,0x57,0x33,0x63,0x5d,0x14,0x2d,0x14,0x03,0x19,0x17,0x3d,0x22,0x15,0x27,0x15,0x59,0x1e,0x51,0x5d,0x63,0x5f,0x56,0x01,0x3d,0x0f,0x2b,0x20,0x2f,0x60,0x5b,0x51,0x20,0x0f,0x2e,0x1d,0x29,0x5e,0x5c,0x56,0xfb,0x47,0x22,0x43,0x35,0x21,0x24,0x1f,0x10,0x2a,0x25,0x19,0x04,0xb9,0x3f,0x3f, -0xad,0x3f,0x3f,0x47,0x28,0x26,0x1f,0x18,0x38,0x30,0x20,0x31,0x4e,0x61,0x30,0x61,0x37,0x67,0x50,0x30,0x18,0x29,0x36,0x1e,0x1c,0x24,0x2f,0x25,0x34,0x21,0x0f,0x11,0x1d,0x24,0x13,0x54,0x1e,0x2d,0x0b,0x0a,0x06,0x03,0x02,0x39,0x19,0x33,0x19,0x19,0x15,0x28,0x39,0x23,0x17,0x20,0x18,0x29,0x34,0x1c,0x34,0x44,0x29,0x13,0x03,0x25, -0xfe,0xec,0x32,0x36,0x15,0xab,0x01,0x4c,0x9f,0x05,0x6b,0xfe,0xea,0xb4,0x03,0x86,0xfc,0x77,0x4c,0x31,0x2b,0x5c,0x30,0x08,0x1f,0x27,0x2c,0x15,0x04,0x7b,0xfb,0xb5,0x20,0x38,0x1a,0x17,0x20,0x04,0xa7,0xfb,0x59,0x0d,0x16,0x1c,0x10,0x0a,0x08,0x52,0x13,0x11,0x0c,0x0a,0x11,0x08,0x11,0x21,0x10,0x10,0x0e,0x52,0x0e,0x10,0x1e,0x43, -0x0b,0x1a,0x0b,0x5a,0x0f,0x0e,0x24,0x13,0x0c,0x1a,0x10,0x32,0x54,0x16,0x33,0x34,0x31,0x25,0x17,0xda,0x0e,0x1b,0x0f,0x18,0x2d,0x23,0x16,0x01,0x1c,0x24,0x18,0x27,0x30,0x01,0xe0,0x03,0x0b,0x19,0x2b,0x22,0x1e,0x29,0x06,0x0d,0x14,0x0e,0xfd,0x9c,0x40,0x85,0x40,0x00,0x00,0x20,0x00,0x32,0xfe,0x62,0x08,0x31,0x06,0xaf,0x00,0x69, -0x00,0xcf,0x01,0x2d,0x01,0x5d,0x01,0x61,0x01,0x86,0x01,0x8a,0x01,0x96,0x01,0xa5,0x01,0xb4,0x01,0xbe,0x01,0xc2,0x01,0xc6,0x01,0xca,0x01,0xf0,0x01,0xf4,0x02,0x1a,0x02,0x1e,0x02,0x2a,0x02,0x36,0x02,0x42,0x02,0x4e,0x02,0x52,0x02,0x56,0x02,0x5a,0x02,0x5e,0x02,0x62,0x02,0x66,0x02,0x6a,0x02,0x6e,0x02,0x93,0x02,0xb8,0x00,0x00, -0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02, -0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x06,0x06,0x07,0x0e,0x03,0x23,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, -0x37,0x36,0x36,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x37,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x06,0x06,0x07,0x0e,0x03,0x23,0x23, -0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22,0x06, -0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x25,0x33,0x11,0x23,0x01,0x06,0x06,0x15, -0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x23,0x35,0x33,0x13,0x22,0x06,0x07,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x01,0x32,0x36,0x35, -0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x25,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16, -0x33,0x01,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x01,0x33,0x11,0x23,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22, -0x06,0x15,0x14,0x16,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x05,0x06,0x06,0x15, -0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x13,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23, -0x22,0x26,0x35,0x34,0x34,0x37,0x08,0x31,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x20,0x33,0x0f,0x15,0x31,0x14,0x30,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05, -0x0e,0x19,0x15,0x26,0x09,0x15,0x11,0x0c,0x41,0x1d,0x23,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfd,0x03,0x1a,0x32,0x17,0x16,0x32,0x39,0x3f,0x23,0x24,0x44,0x1c,0x13,0x2c,0x20,0x21,0x3a,0x18,0x12,0x2d,0x19,0x18,0x11,0x15,0x09,0x05,0x58,0x65,0x2f,0x41,0x28,0x12,0x03,0x02, -0x02,0x03,0x42,0x05,0x05,0x31,0x3b,0x23,0x32,0x1f,0x0e,0x07,0x06,0x42,0x08,0x02,0x1c,0x1d,0x10,0x16,0x11,0x0b,0x04,0x0d,0x1a,0x20,0x29,0x1c,0x29,0x34,0x1c,0x0b,0x01,0x08,0x12,0x20,0x1b,0x1c,0x18,0x2f,0x34,0x3b,0x23,0x16,0x23,0x23,0x23,0x16,0x18,0x2f,0x17,0x14,0x33,0x1b,0x22,0x3c,0x3c,0x3f,0x23,0x4f,0x0e,0x31,0x2a,0x16, -0x2e,0x37,0x42,0x2a,0x38,0x20,0x2a,0x0e,0x15,0x31,0x14,0x27,0x17,0x28,0x0d,0x10,0x24,0x1a,0x13,0x26,0x11,0x0f,0x1b,0x0a,0x19,0x15,0x0f,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0b,0x19,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e,0x18,0x15,0x1d,0x09,0x15,0x11,0x0c,0x40,0x14,0x23,0x4b,0x19,0x2e,0x33,0x3b,0x26,0x19,0x19, -0x38,0x2c,0x18,0x2e,0x17,0x14,0x32,0x1c,0x2a,0x39,0x1a,0x0d,0x19,0x1e,0x24,0x17,0xfd,0x23,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x01,0x20,0x42,0x42,0xfe,0x7f,0x02,0x01,0x18,0x14,0x2d, -0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x01,0x40,0x33,0x33,0x32,0x1e,0x27,0x0c,0x1e,0x38,0x3e,0x08,0x10,0x19,0xfe,0x84,0x17,0x1c,0x12,0x0a,0x06,0x15,0x19,0x09,0x11,0x16,0x0c,0x2c,0x03,0x0f,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xfb,0xfb,0x29,0x1b,0x0c,0x18, -0x0c,0x32,0x42,0x07,0xb1,0x4b,0x4b,0xf9,0x00,0x4b,0x4b,0xac,0x2d,0x2d,0x04,0xac,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a,0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xdf,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a, -0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xfe,0x50,0x20,0x2c,0x2c,0x20,0x20,0x2c,0x2c,0x20,0x11,0x15,0x15,0x11,0x10,0x15,0x15,0xfe,0xd8,0x1f,0x2c,0x2c,0x1f,0x21,0x2c,0x2c,0x21,0x10,0x15,0x15,0x10,0x11,0x15,0x15,0xfe,0x51,0x4b,0x4b,0x83,0x4c,0x4c,0x02,0x10, -0xd1,0xd1,0xfe,0xd8,0xc7,0xc7,0x60,0xc7,0xc7,0x01,0x86,0xd1,0xd1,0xfb,0x5c,0xc7,0xc7,0x75,0xbd,0xbd,0x05,0x44,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x2c,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d, -0x02,0x04,0xf0,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x63,0x4c,0x2a,0x26,0x04,0x0d,0x16,0x12,0x63, -0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x9f,0x85,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0xfc,0xfb,0x07,0x20,0x0e,0x0e,0x1f,0x1a,0x10,0x27,0x14,0x13,0x1c,0x14,0x14,0x1c,0x08,0x07,0x59,0x63,0x19,0x2e,0x42,0x29,0x0f,0x1b,0x0e,0x0e,0x16,0x0c,0x21,0x2f,0x11,0x3f,0x31,0x10,0x24,0x3b,0x2b,0x17,0x3d,0x24,0x41,0x11,0x14,0x0b,0x11, -0x13,0x09,0x1b,0x2e,0x23,0x14,0x22,0x2d,0x2c,0x0a,0x09,0x12,0x0f,0x09,0x0f,0x1a,0x25,0x17,0x0b,0x11,0x0c,0x06,0x08,0x06,0x46,0x06,0x08,0x15,0x19,0x15,0x01,0xfd,0x54,0x04,0x19,0x1d,0x0f,0x1d,0x17,0x0e,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c, -0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x9f,0x89,0x2a,0x25,0x0d,0x19,0x26,0x19,0x0c,0x0d,0x15,0x08,0x06,0x45,0x06,0x08,0x15,0x0d,0x06,0x0c,0x09,0x06,0x04,0x83,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21, -0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x39,0x5a,0xfd,0xf1,0x02,0x46,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfc,0x7e,0xdb,0xfe,0xa4,0x2c,0x25,0x20,0x29,0x0a,0x19,0x16,0x0f,0xfd,0x41,0x04,0x05,0x03,0x01,0x0f,0x14, -0x0c,0x1c,0x19,0x11,0x04,0x56,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x6a,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfe,0xb5,0x4c,0xfe,0xb0,0x4d,0x03,0xa2,0x71,0xfb,0x17,0x14,0x25,0x01,0x9c,0xfe,0x61,0x29,0x32,0x1b,0x09,0x10,0x2e,0x3e,0x27,0x11,0x12,0x45,0x10,0x35,0x38,0x31,0x5b,0x2b,0x1f,0x2c,0x1b,0x16,0x12, -0x01,0xd0,0xfd,0xe7,0xfd,0xd0,0x14,0x25,0x01,0xa7,0xfe,0x56,0x29,0x31,0x1b,0x09,0x10,0x2e,0x41,0x2a,0x13,0x12,0x44,0x10,0x3d,0x39,0x30,0x5b,0x2c,0x1f,0x2d,0x1b,0x16,0x12,0x01,0xdb,0xfd,0xdd,0x06,0xa1,0x2d,0x20,0x20,0x2c,0x2c,0x20,0x20,0x2d,0x71,0x14,0x10,0x10,0x15,0x15,0x10,0x10,0x14,0xfd,0xfb,0x2d,0x21,0x20,0x2c,0x2c, -0x20,0x21,0x2d,0x72,0x14,0x10,0x10,0x16,0x16,0x10,0x10,0x14,0xfb,0xca,0x4c,0x4c,0x4c,0x04,0x61,0x25,0x8e,0x29,0xfb,0x6f,0x29,0x02,0x00,0x25,0x21,0x2a,0x03,0x7d,0x2a,0xbb,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfd,0x87,0x0a,0x14, -0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xff,0xff,0x00,0x29,0x03,0xcb,0x02,0x25,0x04,0xdc,0x00,0x07,0x09,0x2c,0x00,0x24,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0xdc,0x00,0x27,0x09,0x2c,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02, -0x00,0x00,0xff,0xff,0x00,0x05,0x03,0x9a,0x02,0x9c,0x05,0x53,0x00,0x07,0x09,0x2d,0x00,0xd2,0xfd,0x45,0x00,0x01,0x00,0x9a,0xff,0xf2,0x03,0x2a,0x02,0xdd,0x00,0x13,0x00,0x10,0xb1,0x0a,0x12,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x30,0x31,0x05,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14, -0x1e,0x02,0x33,0x33,0x03,0x2a,0x79,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x56,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0xff,0xff,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71,0x00,0x06,0x09,0x2e,0x00,0x00,0xff,0xff,0x00,0x15,0x03,0xcb,0x02,0x11,0x04,0x23,0x00,0x07, -0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0x23,0x02,0x26,0x14,0x02,0x00,0x00,0x00,0x07,0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0x00,0x21,0x03,0x90,0x02,0x2c,0x05,0x49,0x00,0x07,0x09,0x30,0x00,0x62,0xfd,0x3b,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x49,0x00,0x27,0x09,0x30,0x00,0x62, -0xfd,0x3b,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x29,0xff,0x19,0x02,0x25,0xff,0x71,0x00,0x06,0x09,0x31,0x24,0x00,0xff,0xff,0xff,0xba,0xff,0x19,0x02,0x4e,0x00,0x99,0x00,0x26,0x09,0x31,0x24,0x00,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xf8,0x03,0xc5,0x02,0x57,0x04,0xef,0x00,0x07,0x09,0x32,0x00,0x24,0xfd,0x4f, -0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x57,0x04,0xef,0x00,0x27,0x09,0x32,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x69,0x03,0xbb,0x01,0xe5,0x05,0x2e,0x00,0x07,0x09,0x33,0x00,0x24,0xfd,0x45,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x2e,0x00,0x27,0x09,0x33,0x00,0x24,0xfd,0x45,0x00,0x06,0x14,0x02, -0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0x4e,0x00,0x99,0x00,0x08,0x00,0x0e,0xbb,0x00,0x08,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x30,0x31,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x02,0x4e,0xfd,0xb2,0x23,0x23,0x23,0x23,0x02,0x4e,0x0e,0x34,0x20,0x20,0x33,0x00,0x01,0xff,0xe7,0x06,0x19,0x05,0x0f,0x07,0x5f, -0x00,0x1a,0x00,0x16,0xbc,0x00,0x12,0x04,0xfb,0x00,0x07,0x00,0x19,0x04,0xfb,0xb1,0x0c,0x02,0x00,0x2f,0x33,0xed,0xdc,0xed,0x30,0x31,0x01,0x07,0x21,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x04,0x33,0x21,0x05,0x0f,0x5a,0xfd,0xf4,0x4a,0x7d,0x66,0x4d,0x19,0x10,0x27,0x2e,0x34,0x1d,0x79,0x28,0x57, -0x5a,0x59,0x2a,0x18,0x39,0x3f,0x44,0x49,0x4c,0x27,0x02,0x3c,0x06,0xb6,0x9d,0x32,0x3d,0x32,0x08,0x1f,0x3c,0x34,0x55,0x78,0x4c,0x23,0x18,0x23,0x29,0x23,0x18,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x76,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d, -0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, -0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x76,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d,0xff,0xff,0x00,0xc4,0xfd,0xe4,0x01,0x42,0xff,0x6c,0x00,0x07,0x09,0x73,0x00,0x00,0xf7,0x68,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15, -0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, -0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46, -0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xb9,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x5d,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, -0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0x00,0x02,0x00,0xab,0xfe,0x0c,0x03,0x49,0x02,0xb7,0x00,0x15,0x00,0x29,0x00,0x18,0xb1,0x11,0x1d,0xbd,0x04,0xfb,0x00,0x0a,0x00,0x27,0x04,0xfb,0x00,0x00, -0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x06,0x06,0x37,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x9c,0x2a,0x58,0x7e,0x01, -0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xf0,0x92,0xfd,0xd5,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x02,0x00,0xab,0xfe,0x0c,0x04,0x02,0x02,0xb7,0x00,0x18, -0x00,0x2c,0x00,0x23,0xb1,0x14,0x11,0x41,0x0a,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x20,0x04,0xfb,0x00,0x0a,0x00,0x2a,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x3f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x11,0x23,0x11,0x06,0x06,0x37,0x2e, -0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x33,0x08,0xbd,0xb9,0x9c,0x2a,0x58,0x7e,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x47,0xbc, -0x72,0xa7,0xfe,0x1a,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc3,0x05,0xca,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, -0x05,0xca,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0x00,0x01,0x00,0x8c,0x06,0x56,0x01,0xc8,0x08,0x05,0x00,0x18,0x00,0x0c,0xb3,0x08,0x0e,0x00,0x18,0x00,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x13,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x8c,0x2a,0x49,0x35,0x1f,0x3e,0x2d,0x10,0x1d,0x0d,0x21,0x1f,0x37,0x52,0x36,0x1b,0x2d,0x53,0x75,0x47,0x06,0xa9,0x0a,0x17,0x23,0x33,0x26,0x29,0x2a,0x04,0x03,0x6d,0x06,0x1c,0x2e,0x3e,0x22,0x3e,0x57,0x3c,0x26,0x0e,0x00,0x00,0x01,0xfe,0x45,0x04,0x3a,0xff,0xd9,0x05,0xc0,0x00,0x03,0x00,0x0c, -0xb3,0x03,0x02,0x01,0x00,0x00,0x2f,0x32,0xcd,0x32,0x30,0x31,0x01,0x35,0x01,0x15,0xfe,0x45,0x01,0x94,0x04,0x3a,0x85,0x01,0x01,0x8f,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xbb,0x05,0x9a,0x00,0x26,0x01,0xb5,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x5b, -0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x91,0x04,0x00,0x00,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x0a,0xbe,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x98,0xfe,0x96,0x04,0xf2,0x05,0x9a,0x00,0x13,0x00,0x1d,0x40,0x0e,0x10,0x91,0x0b,0x0b,0x06,0x07,0x91,0x01,0x01,0x06,0x12,0x03,0x00,0x03,0x00,0x3f,0x32,0x3f,0x39,0x2f,0xed,0x11, -0x33,0x2f,0xed,0x30,0x31,0x01,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x01,0x64,0x02,0xe6,0xa8,0xa8,0xfd,0x1a,0xfe,0xbc,0x4c,0x3c,0x36,0x44,0xaa,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x02,0x8e,0xfd,0x9d,0xfe,0x6b,0x1a,0x94,0x17,0x01,0x08,0x05,0x65,0x00,0x00,0x01, -0xff,0x5c,0xfe,0x1e,0x03,0xf8,0x04,0x00,0x00,0x16,0x00,0x1f,0x40,0x0f,0x16,0x95,0x10,0x10,0x0e,0x14,0x0a,0x95,0x05,0x05,0x14,0x15,0x11,0x0e,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x30,0x31,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x23,0x11, -0x21,0x01,0x4a,0x31,0x5d,0x87,0x57,0x4b,0x37,0x3d,0x45,0xc8,0xa4,0x02,0x0a,0xa4,0xa4,0xfd,0xf6,0x04,0x73,0xb2,0x7a,0x3f,0x1a,0x99,0x27,0x01,0x3e,0x04,0x18,0xfe,0x5c,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x0a,0x06,0x05,0x9a,0x00,0x25,0x00,0x2e,0x00,0x32,0x40,0x1b,0x08,0x91,0x04,0x25,0x1e,0x03, -0x1a,0x1a,0x07,0x23,0x1c,0x03,0x27,0x91,0x19,0x03,0x12,0x0a,0x26,0x91,0x10,0x0c,0x0e,0x12,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12, -0x37,0x12,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x11,0x21,0x06,0x02,0x07,0x06,0x02,0x07,0x0a,0x06,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xfe,0x67,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x48,0x79,0x33,0x65,0x0d,0x02,0xa3,0x01,0x99,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xfc,0x6b,0xfe, -0x94,0x08,0x36,0x30,0x30,0x67,0x3a,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x02,0x8e,0xfe,0x0a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x84,0x01,0x31,0xb1,0x01,0x61,0x01,0x3b,0xfd,0x8b,0x02,0x75,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xfd,0xae,0x04,0x6a,0x7d,0xfe,0xe2,0xa7,0xa7,0xfe,0xee,0x6f,0x00,0x02,0x00,0x12,0xfe,0x8b, -0x08,0x44,0x04,0x00,0x00,0x1d,0x00,0x22,0x00,0x32,0x40,0x1b,0x07,0x95,0x02,0x1d,0x19,0x03,0x15,0x15,0x05,0x1b,0x17,0x0f,0x1f,0x95,0x14,0x0f,0x10,0x08,0x1e,0x95,0x0e,0x0a,0x0c,0x15,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x23, -0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x11,0x23,0x02,0x03,0x08,0x44,0xe6,0xfe,0x3c,0x04,0xa4,0xfe,0x99,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x05,0x05,0x02,0x14,0x01,0x67,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0xfc,0xa3,0xe3,0x1b, -0xce,0x01,0xec,0xfe,0x14,0x01,0xd1,0xfe,0xba,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x79,0x01,0xfc,0xfe,0x5c,0x01,0xa4,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0xfe,0x79,0x02,0xea,0xfe,0x62,0xfe,0xb4,0x00,0x00,0x03,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x13,0x00,0x1a,0x00,0x1f,0x00,0x29,0x40,0x14,0x09,0x14,0x91,0x11, -0x1e,0x13,0x1b,0x1b,0x04,0x0e,0x13,0x03,0x08,0x00,0x18,0x91,0x06,0x02,0x04,0x12,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x01,0x21,0x11,0x06,0x27,0x32, -0x37,0x11,0x01,0x04,0x81,0xc7,0x9b,0xfb,0xfd,0x9b,0x01,0x40,0x53,0x56,0xa8,0x63,0x02,0x28,0xa8,0xfd,0xae,0x30,0x2b,0xfe,0xe2,0x03,0x23,0xe5,0xb0,0xb1,0xe4,0xfe,0x66,0x98,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x1a,0x01,0xa4,0x2d,0xa2,0x73,0x02,0x1b,0xfd,0xed,0x93,0x36,0x02,0xdc,0xfc,0x72,0x06,0xfe,0x86,0x01,0xed,0x79,0x94, -0x6e,0x01,0xb1,0xfd,0xe1,0x00,0x00,0x03,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x1f,0x00,0x2b,0x40,0x15,0x09,0x13,0xec,0x18,0x10,0x1d,0x0d,0x1a,0x1a,0x04,0x11,0x0d,0x0f,0x08,0x01,0x16,0x95,0x06,0x02,0x04,0x15,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xed, -0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x07,0x21,0x11,0x06,0x27,0x32,0x37,0x11,0x01,0x16,0x03,0xdf,0x44,0x8b,0xfd,0x06,0x8c,0xe8,0x62,0xa4,0x30,0x01,0xd0,0xa3,0xfe,0x11,0x52,0x3f,0xb2,0x02,0x8f,0xb5,0x89,0x94,0xaa,0xfe,0x98,0x13,0x8b, -0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xfe,0x59,0xc4,0x01,0x5a,0xfe,0xae,0x6f,0x39,0x01,0xfa,0xfd,0x3a,0x15,0xc4,0x01,0x11,0x62,0x93,0x56,0x01,0x3a,0xfe,0x73,0x03,0x00,0xff,0xff,0x00,0x10,0xfe,0x80,0x05,0x60,0x05,0x9a,0x00,0x26,0x01,0xf2,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x00,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x8a, -0x04,0x29,0x04,0x00,0x00,0x26,0x02,0x12,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xdc,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x02,0x06,0x12,0x8f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x02,0x06,0x12,0x90,0x00,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x13,0x00,0x1a, -0x00,0x21,0x00,0x28,0x00,0x2f,0x00,0x22,0x40,0x11,0x15,0x2a,0x91,0x23,0x21,0x21,0x00,0x24,0x20,0x91,0x0a,0x03,0x14,0x2b,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x27,0x11, -0x21,0x1e,0x03,0x01,0x2e,0x03,0x27,0x11,0x21,0x21,0x11,0x0e,0x03,0x01,0x21,0x11,0x3e,0x03,0x02,0xfe,0x98,0xf8,0xb0,0x60,0x61,0xb4,0x01,0x02,0xa1,0x94,0xf3,0xae,0x5f,0x61,0xb3,0xfc,0xdf,0xfe,0x57,0x09,0x45,0x6f,0x94,0x02,0x93,0x08,0x40,0x6b,0x92,0x5a,0xfd,0xbb,0x01,0xa9,0x59,0x93,0x6e,0x45,0x03,0xda,0xfe,0x61,0x5b,0x91, -0x6a,0x40,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbf,0xfe,0xf6,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x9b,0x01,0xfa,0x6b,0xb0,0x82,0x51,0x02,0x89,0x6e,0xb2,0x82,0x4f,0x0c,0xfe,0x03,0x01,0xfc,0x0d,0x53,0x84,0xaf,0xfe,0xfc,0xfe,0x08,0x0d,0x50,0x80,0xaf,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18, -0x00,0x13,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x27,0x00,0x22,0x40,0x11,0x19,0x15,0x95,0x24,0x22,0x22,0x00,0x25,0x21,0x95,0x0a,0x0f,0x18,0x16,0x95,0x00,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x13,0x21, -0x11,0x36,0x05,0x11,0x21,0x1e,0x03,0x01,0x02,0x27,0x11,0x21,0x21,0x11,0x06,0x06,0x02,0x52,0x72,0xb8,0x82,0x46,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0xdf,0xfe,0xfe,0xef,0xfe,0x7d,0xfe,0xfa,0x06,0x26,0x40,0x5c,0x01,0xd0,0x24,0xda,0xfe,0x6a,0x01,0x02,0x69,0x85,0x18,0x4c,0x8a,0xc1,0x75,0x81,0xcb,0x8d,0x4b, -0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x01,0xe9,0xfe,0xa6,0x25,0x23,0x01,0x58,0x42,0x72,0x5a,0x3d,0x01,0xd6,0x01,0x0a,0x22,0xfe,0xd4,0x01,0x2a,0x15,0x98,0x00,0xff,0xff,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x02,0x06,0x13,0x7b,0x00,0x00,0xff,0xff,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x02,0x06,0x13,0x7d,0x00,0x00, -0x00,0x03,0x00,0x28,0xff,0xe8,0x04,0xca,0x05,0x88,0x00,0x4a,0x00,0x68,0x00,0x79,0x00,0x54,0x40,0x16,0x3a,0x37,0x99,0x40,0x32,0x27,0x2e,0x03,0x5a,0x4f,0x2b,0x00,0x4a,0x4a,0x2b,0x9a,0x55,0x55,0x22,0x9a,0x5e,0x07,0xb8,0x01,0x7f,0xb2,0x6f,0x6f,0x4b,0xb8,0x01,0x7f,0x40,0x0a,0x18,0x5e,0x18,0x5e,0x18,0x11,0x3b,0x40,0x19,0x75, -0xb9,0x01,0x7d,0x00,0x11,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x32,0x2f,0x33,0x10,0xcd,0x32,0x17,0x39,0x10,0xed,0x32,0x30,0x31,0x13,0x3e,0x03,0x37,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e, -0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x07,0x01,0x11,0x36,0x36,0x37,0x17,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x17,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x14,0x1e,0x02, -0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x7c,0x09,0x2b,0x3c,0x48,0x26,0x23,0x56,0x6b,0x3a,0x14,0x25,0x41,0x59,0x35,0x3e,0x56,0x36,0x18,0x01,0x6f,0x49,0x7f,0x5e,0x37,0x1a,0x3a,0x5d,0x43,0x12,0x26,0x25,0x20,0x0c,0x07,0x18,0x3b,0x26,0x20,0x3e,0x17,0x07,0x0e,0x28,0x19,0x07,0x27,0x3f,0x58,0x39,0x5b,0x8b,0x34,0x1c, -0x47,0x4c,0x4d,0x22,0x5b,0x91,0x69,0x40,0x09,0x24,0x44,0x3c,0x30,0x0e,0x01,0x82,0x21,0x2e,0x07,0x3b,0x05,0x0f,0x1b,0x15,0x15,0x2a,0x22,0x15,0x3b,0x30,0x2b,0x10,0x26,0x22,0x17,0x24,0x3d,0x51,0x2e,0xfd,0x4e,0x0d,0x21,0x38,0x2c,0x0c,0x03,0x0e,0x1e,0x1b,0x17,0x20,0x14,0x09,0x01,0x97,0x01,0x09,0x0f,0x15,0x0e,0x01,0x9d,0x37, -0x50,0x59,0x21,0x43,0x68,0x47,0x25,0x2c,0x46,0x56,0x2b,0x98,0x2a,0x4f,0x72,0x49,0x3e,0x78,0x5e,0x3b,0x06,0x11,0x1b,0x15,0x26,0x21,0x20,0x27,0x0b,0x14,0x0a,0x54,0x6c,0x40,0x19,0x35,0x30,0xb1,0x13,0x1c,0x13,0x09,0x2b,0x5d,0x92,0x67,0x08,0x0e,0x0a,0x07,0x02,0x02,0x30,0xfe,0xb3,0x17,0x37,0x20,0x11,0x14,0x2d,0x27,0x19,0x1c, -0x2c,0x33,0x17,0x11,0x39,0x48,0x14,0x2d,0x46,0x32,0x2e,0x45,0x2e,0x17,0x01,0x1b,0x21,0x35,0x25,0x13,0x7a,0x1b,0x3a,0x30,0x1f,0x17,0x27,0x34,0x00,0x01,0xff,0x38,0x06,0x19,0x05,0x0f,0x06,0xc0,0x00,0x04,0x00,0x0c,0xba,0x00,0x02,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x21,0x15,0x04,0xb5,0xfa,0x83,0x05, -0xd7,0x06,0x19,0xa7,0x0a,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x05,0x26,0x06,0x50,0x00,0x3b,0x00,0x2e,0x40,0x12,0x3a,0x31,0x00,0x30,0x17,0x0b,0x11,0x9a,0x36,0x15,0x06,0x0d,0x0d,0x23,0x36,0x07,0x26,0x21,0xb8,0x01,0x7f,0xb1,0x23,0x18,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x39,0x39,0xcc,0x32, -0x30,0x31,0x01,0x1e,0x03,0x17,0x23,0x2e,0x03,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x03,0x6d,0x67,0xa0,0x6f,0x3e,0x05,0xa5,0x05,0x23,0x42,0x65, -0x45,0x72,0x0e,0x1e,0x0f,0x12,0x21,0x10,0x72,0x47,0x67,0x43,0x20,0x45,0x83,0xbd,0x78,0x01,0xd7,0xfb,0xb4,0x01,0x12,0x4a,0x78,0x54,0x2e,0x40,0x74,0xa4,0x63,0x72,0x11,0x23,0x12,0x0e,0x1c,0x0e,0x72,0x05,0x9c,0x1b,0x76,0xa6,0xcd,0x73,0x5c,0x9d,0x7d,0x59,0x18,0xfe,0x19,0x01,0xff,0x01,0x02,0x02,0x02,0xfe,0x02,0x01,0xe1,0x1d, -0x69,0x8e,0xae,0x62,0x78,0xd9,0xa4,0x61,0x8c,0x8c,0x22,0x7c,0xa1,0xbb,0x62,0x7c,0xde,0xb3,0x81,0x20,0xba,0xa2,0x02,0x02,0x02,0x01,0xa1,0x00,0x00,0x03,0x00,0xbc,0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x28,0x00,0x33,0x00,0x3e,0x00,0x38,0x40,0x0b,0x12,0x2a,0x99,0x35,0x35,0x27,0x26,0x06,0x00,0x00,0x34,0xb8,0x01,0x80,0xb7,0x08, -0x02,0x27,0x06,0x1d,0x24,0x24,0x2b,0xb8,0x01,0x80,0xb3,0x22,0x1b,0x26,0x18,0x00,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x33,0x15,0x33,0x32,0x17,0x35,0x33,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x06,0x07,0x15,0x23,0x35, -0x06,0x22,0x23,0x23,0x15,0x23,0x35,0x23,0x11,0x33,0x13,0x23,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x01,0x7f,0x68,0x0f,0x23,0x24,0x68,0x3a,0x62,0x48,0x29,0x24,0x42,0x5b,0x37,0x48,0x71,0x4e,0x29,0xa9,0x9c,0x68,0x11,0x22,0x12,0x11,0x68,0xc3,0xc3,0x77,0x92,0x94,0x48,0x77, -0x54,0x2f,0xdc,0xfa,0x92,0x81,0x8b,0x17,0x3c,0x68,0x51,0x06,0x50,0xb6,0x03,0xb9,0xc7,0x0c,0x30,0x4b,0x69,0x47,0x3d,0x6c,0x58,0x41,0x12,0x04,0x09,0x3c,0x5c,0x78,0x45,0xac,0xc2,0x1f,0xe0,0xd3,0x02,0xd1,0xd1,0x05,0x9a,0xfd,0x02,0xfd,0xfc,0x1a,0x3d,0x64,0x4b,0xd9,0x1f,0x02,0x6c,0xfe,0x31,0x82,0x7c,0x2b,0x4c,0x39,0x21,0x00, -0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x02,0x19,0x00,0x13,0x00,0x12,0xb6,0x04,0x11,0x11,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a, -0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0xff,0xff,0x00,0x66,0xfe,0xef,0x02,0x56,0x02,0x19,0x02,0x07,0x07,0xb1,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x00,0xe6,0x02,0x19,0x00,0x03,0x00,0x08,0xb1,0x03,0x00,0x00,0x2f,0x2f,0x30,0x31,0x13,0x23,0x11,0x33,0xe6,0x80, -0x80,0xfe,0xef,0x03,0x2a,0x00,0xff,0xff,0x00,0x66,0xfe,0xef,0x03,0x9a,0x01,0x24,0x02,0x07,0x07,0xb2,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x01,0x24,0x00,0x13,0x00,0x14,0xb7,0x04,0x11,0x11,0x0e,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22, -0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0xff,0xff,0x00,0x66,0xfd,0xf9,0x02,0x89,0x01,0x24,0x02,0x07,0x07,0xb8,0x00,0x00,0xfc,0x55,0x00,0x01, -0x00,0x3c,0xfe,0xdc,0x01,0xcd,0x01,0x26,0x00,0x2e,0x00,0x12,0xb6,0x06,0x1f,0x15,0x03,0x2c,0x1c,0x15,0x00,0x2f,0x33,0x2f,0x33,0x12,0x39,0x39,0x30,0x31,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15, -0x14,0x0e,0x02,0x23,0x22,0x27,0x3c,0x28,0x59,0x2f,0x33,0x32,0x10,0x1d,0x27,0x16,0x2c,0x40,0x2a,0x14,0x22,0x3b,0x51,0x30,0x2a,0x4e,0x20,0x23,0x4d,0x2d,0x2a,0x34,0x39,0x33,0x27,0x3f,0x2c,0x17,0x27,0x42,0x55,0x2e,0x60,0x45,0x96,0x16,0x15,0x1d,0x21,0x13,0x1a,0x14,0x10,0x09,0x10,0x21,0x27,0x30,0x21,0x28,0x3e,0x2a,0x16,0x0f, -0x0e,0x6d,0x0f,0x14,0x1a,0x1d,0x20,0x26,0x13,0x0f,0x1f,0x28,0x32,0x21,0x2b,0x40,0x2a,0x15,0x25,0x00,0xff,0xff,0x00,0x0a,0xfe,0xe3,0x01,0x68,0x01,0xb7,0x02,0x07,0x07,0xb9,0x00,0x00,0xfc,0x55,0x00,0x03,0x00,0x1e,0x04,0xdb,0x03,0x93,0x0a,0x63,0x00,0x1d,0x00,0x26,0x00,0x31,0x00,0x27,0x40,0x11,0x1f,0x1d,0x1d,0x27,0x04,0x1e, -0x13,0x13,0x28,0x0e,0x04,0x0e,0x04,0x0e,0x02,0x10,0x02,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x11,0x23,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x02,0x14,0x77,0x12,0x52,0x87,0x60,0x34,0x36,0x61,0x88,0x53,0x0d,0x77,0x0a,0x54,0x8a,0x62,0x35,0x34,0x5f,0x86,0x52,0x14,0x0a,0x73,0x7f,0x7c,0x71,0x86,0x0d,0x70,0x7f,0x20,0x3e,0x5a,0x3b,0x06,0x29,0xfe,0xb2,0x01,0x4e,0x38,0x65,0x8d,0x55,0x5a,0x93,0x69,0x3a,0x01, -0x2b,0xfe,0xd5,0x3a,0x69,0x93,0x5a,0x54,0x8d,0x66,0x38,0x02,0xa4,0xfd,0xc6,0x95,0x84,0x89,0x98,0xfd,0xc6,0x02,0x3a,0x97,0x8a,0x41,0x67,0x4a,0x27,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14, -0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14, -0xb7,0x16,0x19,0x19,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10, -0xfe,0x0a,0x01,0xf6,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02, -0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x06,0x9a,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x16,0x19,0x19,0x07,0x09, -0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0xfe,0x0a,0x01,0xf6,0x06,0x9a, -0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, -0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f, -0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77, -0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25, -0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21, -0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00, -0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x02,0x00,0xc3,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0b,0x00,0x15,0x40,0x0a,0x09,0x04,0x91,0x06,0x03,0x0a,0x03,0x91,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x04, -0x0c,0xfc,0x1d,0x01,0x9d,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x9e,0x98,0x04,0x6a,0x98,0x98,0xfb,0x96,0x00,0x02,0x00,0x20,0xff,0xde,0x02,0xd9,0x05,0xa4,0x00,0x1d,0x00,0x29,0x00,0x2a,0x40,0x19,0x07,0x21,0x00,0x16,0x04,0xb9,0x24,0xc9,0x24,0x02,0x24,0x14,0x14,0x0a,0x19,0x03,0xb6,0x1e,0xc6,0x1e,0x02,0x1e,0x04,0x0a,0x12,0x00, -0x3f,0x33,0x33,0x5d,0x3f,0x12,0x39,0x2f,0x33,0x5d,0x17,0x39,0x30,0x31,0x25,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x05,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x83,0x1c,0x2d,0x0d,0x91,0x09,0x18,0x0d,0x38, -0x86,0x4a,0x35,0x59,0x40,0x24,0x29,0x46,0x5f,0x35,0x77,0x66,0x12,0xa8,0x17,0xfe,0x7c,0x2c,0x4d,0x20,0x22,0x47,0x28,0x33,0x33,0x36,0xd6,0x29,0x63,0x37,0x35,0x1b,0x3d,0x17,0x33,0x29,0x1d,0x36,0x4d,0x30,0x32,0x50,0x37,0x1d,0x43,0x4e,0x6d,0x03,0x95,0xfc,0x68,0x52,0x9e,0x91,0x1b,0x20,0x1b,0x1d,0x20,0x19,0x1e,0x1c,0xff,0xff, -0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x02,0x00,0x3b,0x00,0x00,0x00,0x03,0x00,0xbc,0xfe,0x29,0x04,0x2f,0x05,0x9a,0x00,0x19,0x00,0x21,0x00,0x2b,0x00,0x22,0x40,0x11,0x0b,0x1a,0x91,0x23,0x23,0x00,0x1b,0x91,0x17,0x19,0x19,0x17,0x12,0x22,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39, -0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x23,0x11,0x23,0x13,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0xbc,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xa8,0xa8,0xe4,0x95, -0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x05,0x9a,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0xfe,0x29,0x04,0x73,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0xff,0xff,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x02,0x02,0x01,0xc4, -0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x07,0x58,0x05,0x9a,0x00,0x44,0x00,0x20,0x40,0x10,0x38,0x91,0x21,0x12,0x1c,0x17,0x3f,0x3f,0x0a,0x00,0x91,0x17,0x12,0x2e,0x0a,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x3f,0xed,0x30,0x31,0x25,0x32,0x12,0x11,0x34,0x2e,0x04,0x27,0x33,0x1e,0x05,0x15,0x14,0x02,0x06,0x06, -0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x33,0x0e,0x05,0x15,0x10,0x12,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x05,0x5d,0xa0,0xab,0x18,0x28,0x35,0x3a,0x3b,0x1b,0xb5,0x18,0x38,0x39,0x35,0x29,0x19,0x46,0x85,0xc0,0x79,0x4a,0x72,0x5a,0x47,0x1e,0x1f,0x47,0x5a,0x72, -0x49,0x7a,0xbf,0x85,0x46,0x19,0x29,0x35,0x39,0x38,0x18,0xb5,0x1b,0x3b,0x3a,0x35,0x28,0x18,0xaa,0xa1,0x5c,0x76,0x44,0x1a,0xa8,0x18,0x42,0x77,0x7f,0x01,0x0a,0x01,0x15,0x45,0x96,0x96,0x8f,0x7b,0x63,0x1e,0x1c,0x58,0x73,0x88,0x98,0xa4,0x54,0xa7,0xfe,0xff,0xb0,0x5b,0x16,0x2b,0x3f,0x29,0x29,0x3f,0x2b,0x16,0x5b,0xb0,0x01,0x01, -0xa7,0x54,0xa4,0x98,0x88,0x73,0x58,0x1c,0x1e,0x63,0x7b,0x8f,0x96,0x96,0x45,0xfe,0xeb,0xfe,0xf6,0x32,0x62,0x93,0x62,0x01,0xc7,0xfe,0x4d,0x66,0x9b,0x68,0x34,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x04,0x01,0x02,0x02,0x01,0xd5,0x00,0x01,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x1e, -0x40,0x0f,0x12,0x95,0x04,0x04,0x00,0x11,0x95,0x02,0x0f,0x13,0x95,0x0f,0x0f,0x00,0x15,0x00,0x3f,0x32,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x21,0x23,0x11,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x06,0x23,0x21,0x11,0x21,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x4a,0xa4,0x03,0x04,0x01,0x14,0x51,0x7f,0x58, -0x2e,0x5c,0x5c,0x8f,0xfe,0x39,0xfe,0x44,0x02,0x60,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x6a,0x28,0x4e,0x71,0x49,0x93,0x54,0x53,0x03,0x74,0xfe,0x69,0xfe,0xaf,0xae,0xa3,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xfe,0x04,0x18,0x00,0x1f,0x00,0x28,0x00,0x27,0x40,0x15,0x23,0x95,0x1a,0x0f,0x01,0x95,0x28,0x28,0x0f,0x95,0x14,0x14,0x11,0x12, -0x0f,0x11,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xfe,0xfd,0x2d,0x04, -0xaf,0x9b,0xac,0x92,0x88,0xdd,0x68,0xa8,0x78,0x44,0x04,0xfe,0xc8,0xa4,0xa4,0x01,0x3e,0x0f,0x52,0x7b,0x9c,0x59,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x42,0x7f,0xb8,0x76,0xfe,0x29,0x04,0x00,0xfe,0x62,0x62,0xa2,0x73,0x3f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c, -0x4f,0x6f,0x42,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x37,0x04,0x18,0x00,0x2e,0x00,0x37,0x00,0x2e,0x40,0x19,0x32,0x95,0x29,0x0f,0x01,0x95,0x0c,0x0f,0x26,0x23,0x37,0x37,0x0f,0x1e,0x95,0x23,0x0f,0x14,0x95,0x0f,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0xed, -0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x06,0x37,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88, -0xdd,0x88,0xc8,0x3a,0x45,0xdd,0x91,0x85,0x69,0x73,0x81,0x4e,0x84,0x5f,0x35,0x31,0x5b,0x81,0x4f,0x85,0x77,0x77,0xa1,0x89,0xd0,0x3f,0x40,0xc7,0x79,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x6d,0x69,0x66,0x70,0x32,0xa8,0x50,0x3b,0x6c,0x96,0x5b,0x5a,0x8f,0x65,0x36, -0x59,0x9c,0x47,0x73,0x65,0x66,0x72,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x90,0xff,0xe8,0x07,0x2a,0x04,0x18,0x00,0x23,0x00,0x33,0x00,0x22,0x40,0x12,0x24,0x95,0x1a,0x0f,0x17,0x03,0x08,0x15,0x0b,0x0f,0x0f,0x95,0x08,0x15,0x2e,0x95,0x00,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39, -0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x0e,0x03,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x2c,0x81,0xc6,0x40,0x17,0x3d,0x58,0x77,0x4f,0xfe,0x5d,0xa3,0x01,0x00, -0x48,0x66,0x40,0x1d,0xa4,0x42,0xb2,0x6e,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x5e,0x57,0x23,0x41,0x33,0x1e,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x2f,0x55,0x75,0x47,0x02,0x4e,0x62,0x3c,0x3e,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96, -0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x00,0x01,0x00,0x35,0xff,0xea,0x04,0xce,0x06,0x02,0x00,0x26,0x00,0x26,0x40,0x14,0x1c,0x0b,0x16,0x95,0x11,0x00,0x20,0x06,0x09,0x95,0x1d,0x19,0x0b,0x0f,0x07,0x15,0x24,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x30,0x31,0x25,0x06, -0x23,0x20,0x11,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0xce,0x3b,0x5e,0xfe,0xf3,0xfe,0x5f,0xa3,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0x01,0xa1,0xa4,0x01,0x02,0xfe,0xfe,0x46, -0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x05,0x47,0x05,0x2f,0x00,0x3d,0x00,0x25,0x40,0x14,0x37,0x95,0x34,0x0f,0x0b,0x21,0x1a,0x33,0x05,0x95,0x31,0x0f,0x1f,0x95, -0x1a,0x15,0x3b,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x3f,0xed,0x30,0x31,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x35,0x37, -0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x05,0x47,0x3b,0x5e,0xfe,0xf3,0xfe,0x3b,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x93,0x4f,0x9f,0x73,0x85,0xa2,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x3d,0x63,0x7e,0x40,0x01,0xd9,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3f,0x2c,0x0a,0x20, -0x01,0x2c,0x02,0x5e,0x0d,0x1c,0x2d,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5b,0x3d,0x4c,0x70,0x4a,0x24,0x3d,0xb0,0x63,0x90,0x27,0x38,0x2d,0x25,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x67,0x42,0x1f,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0xad,0x04,0xda,0x00,0x0b,0x00,0x0b, -0xb3,0x05,0x06,0x00,0x18,0x00,0x3f,0x2f,0x39,0x30,0x31,0x21,0x26,0x02,0x27,0x00,0x25,0x37,0x04,0x13,0x16,0x12,0x17,0x04,0x74,0x58,0xde,0x8d,0xfe,0xeb,0xfe,0xb4,0xe6,0x01,0x1d,0xe7,0x75,0xb8,0x46,0xcd,0x01,0x5b,0x97,0x01,0x2a,0x85,0x6c,0xd4,0xfe,0xbe,0xa3,0xfe,0xa0,0xc1,0x00,0x01,0x00,0x50,0xff,0xfa,0x02,0xd5,0x04,0xdd, -0x00,0x42,0x00,0x26,0x40,0x11,0x2a,0x29,0x29,0x10,0x11,0x36,0x3e,0x11,0x3e,0x11,0x3e,0x05,0x18,0x20,0x33,0x05,0x18,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23, -0x22,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x36,0x1e,0x02,0x15,0x14,0x06,0x15,0x33,0x15,0x23,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x02,0xd5,0x2d,0x51,0x70,0x43,0x17,0x4c,0x4b,0x36,0x1b,0x28,0x30,0x14,0xf7,0x01,0x0e,0x09,0x0d,0x4a,0x40,0x1d,0x27,0x08,0x11,0x0d,0x10, -0x47,0x69,0x45,0x21,0x04,0xe1,0xf3,0x2b,0x39,0x21,0x0d,0x39,0x42,0x3c,0x57,0x1d,0x27,0x20,0x11,0x1b,0x22,0x12,0x1d,0x2d,0x1f,0x10,0x01,0x02,0x2f,0x5e,0x4c,0x2f,0x26,0x46,0x62,0x3c,0x36,0x7a,0x80,0x82,0x3e,0x4e,0x11,0x39,0x28,0x4e,0x55,0x0b,0x08,0x1f,0x1a,0x11,0x26,0x17,0x02,0x3b,0x5e,0x72,0x36,0x17,0x2e,0x15,0x4e,0x7a, -0x9f,0x6a,0x44,0x1d,0x5d,0x65,0x47,0x36,0x12,0x31,0x19,0x13,0x25,0x1b,0x11,0x19,0x27,0x31,0x00,0x03,0x00,0x3c,0xfd,0xec,0x06,0xe7,0x05,0x65,0x00,0x3b,0x00,0x4f,0x00,0x63,0x00,0x43,0x40,0x0e,0x2e,0x15,0x9b,0x18,0x55,0x9b,0x4b,0x18,0x4b,0x18,0x4b,0x06,0x21,0x1f,0xb8,0x01,0x80,0x40,0x0c,0x27,0x5f,0x9b,0x41,0x41,0x06,0x39, -0x99,0x02,0x02,0x35,0x0b,0xb8,0x01,0x80,0xb2,0x09,0x06,0x18,0x00,0x3f,0x33,0xed,0x33,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x2f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x30,0x31,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x20,0x35, -0x34,0x2e,0x02,0x23,0x22,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x15,0x14,0x0e,0x02,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xcf,0x67,0x59, -0xb2,0x7f,0x56,0x2f,0xbf,0x5e,0x8c,0x50,0xa6,0x34,0x5a,0x43,0x26,0x2d,0x51,0x70,0x43,0x8b,0x8b,0x01,0x35,0x27,0x44,0x5c,0x34,0x9c,0x5d,0x89,0x18,0x4f,0x65,0x76,0x40,0x59,0x96,0x6c,0x3c,0xa6,0xa3,0x33,0x5c,0x7f,0x4b,0x0c,0x4f,0x63,0x61,0x42,0x2c,0x03,0x61,0x3f,0x6c,0x8f,0x51,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x50, -0x90,0x6c,0x3f,0xa1,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0xfe,0x20,0x34,0xcd,0x8a,0xc5,0x1f,0xa4,0x4d,0x77,0x1e,0x38,0x4c,0x2f,0x38,0x5b,0x40,0x22,0xa0,0xdc,0x31,0x53,0x3d,0x23,0x77,0x50,0x2d,0x49,0x33,0x1c,0x38,0x66,0x8e,0x56,0xc3,0x6a,0x63,0xe1,0x4a,0x7f,0x60,0x3d,0x09,0x60, -0x81,0xa5,0x26,0x02,0xdb,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x51,0x90,0x6c,0x3f,0x3f,0x6c,0x90,0x51,0x30,0x55,0x41,0x25,0x25,0x41,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x00,0x02,0x00,0x54,0xfe,0x9b,0x08,0x76,0x08,0xe0,0x00,0x72,0x00,0x82,0x00,0x53,0xb9,0x00,0x39,0x01,0x81,0xb4,0x4b,0x4b,0x43,0x48,0x42,0xb8, -0x01,0x81,0x40,0x18,0x45,0x11,0x63,0x79,0x23,0x04,0x16,0x7e,0x1e,0x1e,0x01,0x76,0x16,0x16,0x69,0x71,0x01,0x01,0x45,0x45,0x43,0x0c,0x69,0x2d,0xb8,0x01,0x81,0xb4,0x55,0x55,0x40,0x43,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x17,0x39,0x10,0xed, -0x32,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x0e,0x02,0x02,0x15,0x14,0x12,0x04,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21, -0x15,0x23,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x06,0x04,0x23,0x22,0x24,0x24,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x21,0x25,0x34,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x06,0xe5,0xfe,0x0b,0x1d,0x2f,0x20,0x11,0x28,0x4b,0x6b,0x42,0x3a, -0x60,0x47,0x2a,0x04,0x08,0x1a,0x20,0x20,0x0e,0x76,0x82,0x23,0x3f,0x56,0x34,0x38,0x56,0x40,0x2a,0x0d,0x46,0x93,0x78,0x4c,0x90,0x01,0x05,0x01,0x6d,0xde,0x5f,0xaf,0x96,0x7b,0x57,0x30,0x18,0x2d,0x40,0x29,0x1d,0x36,0x29,0x19,0xd8,0xfe,0xd7,0xd8,0x03,0xcd,0xf4,0x40,0x7f,0x50,0x81,0x5a,0x31,0x66,0xd9,0xfe,0xad,0xec,0xb2,0xfe, -0xc6,0xfe,0xf8,0xd2,0x91,0x4d,0x30,0x54,0x71,0x82,0x8d,0x45,0x44,0x75,0x9d,0x58,0x60,0xa4,0x77,0x44,0x23,0x23,0x01,0x21,0xfd,0x25,0x2b,0x2e,0x26,0x3b,0x11,0x02,0x16,0x22,0x2a,0x17,0x10,0x1d,0x16,0x0d,0x05,0xa8,0x7f,0x12,0x39,0x44,0x47,0x20,0x48,0x75,0x53,0x2e,0x29,0x46,0x61,0x37,0x04,0x08,0x08,0x05,0x78,0x6e,0x32,0x52, -0x3b,0x20,0x27,0x40,0x52,0x2c,0x2d,0x8f,0xd4,0xfe,0xe1,0xbd,0xda,0xfe,0xa0,0xfa,0x87,0x08,0x1f,0x3f,0x6e,0xa6,0x77,0x47,0x78,0x57,0x31,0x21,0x36,0x42,0x21,0xfe,0x1c,0x04,0x78,0xfb,0x88,0x05,0x28,0xb0,0xfe,0x99,0x3e,0x46,0x7c,0xad,0x67,0xb3,0xfe,0xee,0xba,0x5f,0x4b,0x8d,0xca,0xfe,0x01,0x2c,0xa9,0x8e,0xf6,0xd0,0xaa,0x87, -0x64,0x21,0x17,0x58,0x9d,0x75,0x45,0x45,0x78,0xa5,0x60,0x3c,0x7a,0x3b,0x56,0x36,0x30,0x15,0x0e,0x1e,0x37,0x2a,0x1a,0x0f,0x18,0x1f,0x00,0x01,0x00,0x74,0x00,0xfd,0x03,0x47,0x05,0x5a,0x00,0x5c,0x00,0x2b,0x40,0x14,0x37,0x53,0x59,0x22,0x1c,0x12,0x2d,0x03,0x53,0x03,0x12,0x12,0x03,0x53,0x03,0x0a,0x4d,0x40,0x21,0x0a,0x00,0x2f, -0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x32,0x32,0x11,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x11,0x26,0x26,0x27,0x22,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, -0x17,0x35,0x34,0x26,0x23,0x22,0x06,0x23,0x22,0x2e,0x02,0x27,0x13,0x33,0x17,0x16,0x33,0x32,0x37,0x17,0x07,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x15,0x36,0x36,0x37,0x03,0x47,0x2e,0x82,0x53,0x0d,0x15,0x1a,0x0c,0x42,0x24,0x50,0x43,0x2c,0x3b,0x2e,0x06,0x1b,0x1b,0x15,0x18,0x1c,0x18,0x0b,0x15, -0x20,0x15,0x2e,0x55,0x31,0x36,0x3c,0x10,0x1c,0x26,0x17,0x27,0x3b,0x07,0x0e,0x28,0x1e,0x2a,0x25,0x0f,0x17,0x09,0x0b,0x10,0x10,0x12,0x0c,0xfc,0x1c,0x9f,0x06,0x12,0x0f,0x0c,0x1d,0x75,0x08,0x1e,0x2b,0x38,0x22,0x1a,0x28,0x11,0x0e,0x19,0x0b,0x27,0x3f,0x2d,0x18,0x34,0x66,0x33,0x03,0x8b,0x54,0x4f,0x0e,0xfe,0x69,0x0f,0x1a,0x13, -0x0a,0x38,0x5b,0x75,0x3d,0x3f,0x47,0x06,0x18,0x33,0x2d,0x27,0x27,0x14,0x08,0x07,0x0c,0x25,0x23,0x19,0x01,0x69,0x04,0x0b,0x12,0x3f,0x2a,0x16,0x26,0x1d,0x10,0x2b,0x23,0x09,0x0d,0x0c,0x34,0x35,0x28,0x03,0x0e,0x1b,0x27,0x18,0x01,0x0c,0x6c,0x06,0x09,0x2a,0x78,0x1a,0x20,0x1a,0x2a,0x1b,0x02,0x03,0x17,0x25,0x31,0x1a,0x93,0x05, -0x2c,0x3b,0x00,0x01,0xff,0xf8,0xff,0xec,0x09,0x3b,0x05,0xcd,0x00,0xa4,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x3e,0x03,0x37,0x17,0x0e,0x05,0x07,0x0e,0x05,0x07,0x3e,0x05,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x17, -0x0e,0x05,0x07,0x0e,0x05,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x3e,0x05,0x37,0x0e,0x03,0x07,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x12,0x37,0x3e,0x05,0x37,0x0e,0x05,0x07,0x0e,0x05,0x01,0x0a,0x3f,0x65,0x48,0x26,0x1c,0x31,0x44,0x29,0x22, -0x2c,0x1a,0x0b,0x14,0x2c,0x43,0x2f,0x1a,0x11,0x13,0x2e,0x4b,0x38,0x4b,0x87,0x7e,0x77,0x76,0x78,0x41,0x61,0xc1,0xb0,0x96,0x36,0x21,0x09,0x32,0x40,0x47,0x3f,0x2e,0x07,0x07,0x24,0x30,0x36,0x31,0x26,0x07,0x20,0x4b,0x51,0x55,0x55,0x52,0x27,0x2d,0x4a,0x43,0x40,0x23,0x39,0x70,0x64,0x55,0x1f,0x22,0x17,0x3d,0x44,0x48,0x46,0x40, -0x19,0x15,0x38,0x3c,0x3b,0x2f,0x1d,0x10,0x1b,0x51,0x5b,0x5e,0x29,0x19,0x27,0x5f,0x62,0x5f,0x28,0x23,0x38,0x27,0x15,0x24,0x3b,0x48,0x48,0x3f,0x15,0x1a,0x4d,0x55,0x58,0x4b,0x37,0x0a,0x1a,0x70,0x9d,0xc4,0x6d,0x3e,0x6b,0x5d,0x51,0x24,0x1f,0x38,0x34,0x2f,0x15,0x22,0x27,0x14,0x05,0x19,0x49,0x84,0x6c,0x18,0x3e,0x42,0x41,0x36, -0x28,0x08,0x2c,0x6c,0x74,0x79,0x71,0x67,0x28,0x37,0x6d,0x71,0x78,0x85,0x96,0x14,0x27,0x48,0x63,0x3c,0x2b,0x4c,0x38,0x20,0x14,0x21,0x28,0x14,0x18,0x2d,0x26,0x1c,0x06,0x03,0x16,0x12,0x09,0x30,0x31,0x26,0x3a,0x65,0x8b,0xa0,0xaf,0x58,0x84,0xef,0xc3,0x90,0x26,0x15,0x15,0x6e,0x91,0xa1,0x8e,0x69,0x10,0x10,0x59,0x79,0x8e,0x8f, -0x83,0x30,0x20,0x66,0x7c,0x8a,0x8a,0x82,0x35,0x3d,0x64,0x55,0x4b,0x25,0x3d,0x69,0x54,0x3e,0x12,0x21,0x21,0x65,0x78,0x85,0x85,0x7d,0x33,0x2a,0x79,0x8a,0x90,0x81,0x67,0x1c,0x1d,0x38,0x59,0x6e,0x35,0x15,0x36,0x72,0x5e,0x3d,0x1a,0x3c,0x64,0x4a,0x31,0x7c,0x86,0x87,0x78,0x60,0x1c,0x23,0x5f,0x67,0x67,0x56,0x3e,0x0b,0x12,0x56, -0x97,0xde,0x99,0x59,0xa6,0x98,0x85,0x36,0x2e,0x4f,0x3b,0x21,0x2f,0x45,0x4d,0x1e,0x21,0x7b,0xbc,0x01,0x01,0xa7,0x26,0x5c,0x5e,0x5b,0x4c,0x36,0x0b,0x21,0x6b,0x82,0x91,0x90,0x86,0x36,0x49,0xa1,0x9b,0x8d,0x6b,0x3f,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x04,0x2a,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc9, -0xfe,0xf4,0xff,0xff,0x00,0xab,0xfe,0xa6,0x05,0xf4,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06,0x09,0x24,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xfd,0xc9, -0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xad,0xfd,0xce,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0x39,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x5f,0x02,0x26,0x09,0x17, -0x00,0x00,0x00,0x07,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x05,0xe2,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x07,0x0a,0x1f,0x01,0xc4,0xfd,0x56,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x02,0x06,0x09,0xc8,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff, -0x05,0x4b,0x02,0xb7,0x02,0x06,0x09,0x7c,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1,0x02,0x06,0x09,0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x04,0xb4,0x09,0x9a,0x00,0x28,0x00,0x2c,0x00,0x6e,0x00,0x7c,0x00,0x00,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23, -0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x13,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26, -0x27,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x33,0x27,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x17,0x3e,0x03,0x03,0x75,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x0b,0x13,0x08,0x08,0x6a,0x4d,0x15,0x2b,0x17,0x17,0x2f,0x10,0x1d,0x27,0x18,0x0a,0x1f,0x11,0x61,0x0c,0x12,0x05,0x04, -0x1d,0x1d,0xee,0x5c,0x5c,0xfd,0x6b,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x1b,0x45,0x78,0x33,0x31,0x26,0x10,0x23,0x38,0x27,0x26,0x53,0x26,0x2b,0x4d,0x28,0x3f,0x5b,0x39,0x1b,0x0a,0x1a,0x2e,0x23,0x19,0x30,0x11,0x08,0x05,0x12,0x2d,0x32,0x35,0x1a,0x19,0x38,0x2d,0x1e,0x09,0x19,0x2c,0x24,0x25,0x50,0x2d,0x8d,0x26,0x21,0x18,0x32, -0x17,0x11,0x27,0x14,0x1c,0x24,0x15,0x07,0x07,0x95,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x07,0x03,0x66,0x67,0x08,0x0b,0x5f,0x07,0x09,0x15,0x26,0x34,0x1f,0x39,0x73,0x30,0x1d,0x42,0x20,0x14,0x15,0x02,0x05,0xfd,0x9a,0x61,0x16,0x23,0xb7,0xba,0x31,0x3c,0x20,0x0a,0x36,0x2e,0x16,0x30,0x1a,0x16,0x27,0x1e,0x11,0x0f, -0x0d,0x5a,0x14,0x09,0x1e,0x35,0x45,0x27,0x15,0x2b,0x2a,0x29,0x15,0x1c,0x45,0x1d,0x46,0x05,0x09,0x01,0x03,0x07,0x07,0x04,0x07,0x13,0x25,0x1e,0x0e,0x26,0x2a,0x2b,0x14,0x17,0x1a,0xbb,0x0b,0x08,0x04,0x03,0x1a,0x2e,0x14,0x0d,0x18,0x15,0x11,0x00,0x00,0x02,0xff,0x2b,0x06,0x1f,0x02,0xdf,0x08,0x40,0x00,0x36,0x00,0x48,0x00,0x21, -0x40,0x0e,0x00,0x37,0x37,0x23,0x31,0x05,0x0f,0x0f,0x1a,0x3f,0x05,0x05,0x29,0x1a,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x33,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, -0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x17,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x01,0x35,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71,0x51,0x17,0x3e,0x3b,0x30,0x0a,0x02,0x02,0x1a,0x36,0x56,0x3e,0x3f,0x54,0x32,0x15,0x06,0x07,0x56, -0x05,0x05,0x3a,0x45,0x28,0x38,0x23,0x10,0x07,0x07,0x58,0x0a,0x02,0x1b,0x13,0xd3,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x2f,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x06,0x0c,0x0a,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x1a,0x37,0x1d,0x1b,0x29,0x16,0x42, -0x34,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x5d,0x14,0x1c,0x03,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x00,0x06,0x1e,0x01,0xba,0x08,0xdd,0x00,0x35,0x00,0x19,0x40,0x0a,0x19,0x00,0x30,0x30,0x11,0x2a,0x21,0x21,0x0a,0x11,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0x30,0x31,0x01, -0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x32,0x16,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x3e,0x03,0x37,0x01,0x62,0x47,0x61,0x3d,0x1b,0x12,0x26,0x3d,0x2b,0x2d,0x65,0x26,0x2f,0x5c,0x2e,0x45,0x61, -0x3e,0x1d,0x23,0x30,0x1c,0x1a,0x1c,0x35,0x4d,0x30,0x06,0x16,0x1a,0x16,0x06,0x0b,0x2b,0x11,0x34,0x43,0x11,0x0e,0x10,0x2f,0x34,0x37,0x1a,0x07,0xaa,0x10,0x28,0x2f,0x33,0x1b,0x18,0x2b,0x20,0x13,0x16,0x0e,0x63,0x10,0x12,0x21,0x38,0x4c,0x2a,0x2a,0x56,0x2a,0x1f,0x49,0x23,0x24,0x44,0x34,0x1f,0x02,0x03,0x03,0x64,0x02,0x03,0x25, -0x32,0x1a,0x2d,0x0f,0x0a,0x13,0x13,0x10,0x07,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x01,0xf5,0x09,0x3e,0x00,0x2a,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x27,0x40,0x11,0x40,0x3e,0x3e,0x3b,0x39,0x39,0x2b,0x00,0x19,0x0f,0x0f,0x22,0x33,0x19,0x19,0x08,0x22,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x32,0x2f,0x33, -0x33,0x2f,0x33,0x30,0x31,0x13,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x65, -0x03,0x05,0x0f,0x23,0x3a,0x2c,0x31,0x3c,0x23,0x0e,0x03,0x18,0x1a,0x1d,0x36,0x29,0x19,0x15,0x26,0x33,0x1e,0x21,0x33,0x19,0x16,0x17,0x7d,0x88,0x43,0x5c,0x38,0x19,0x05,0x05,0x01,0x61,0x0b,0x15,0x0b,0x02,0x0b,0x11,0x16,0x0b,0x10,0x1d,0x27,0x2f,0x73,0x73,0xc8,0x73,0x73,0x07,0xa4,0x1a,0x2c,0x13,0x21,0x2c,0x1b,0x0c,0x0f,0x1b, -0x25,0x15,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x25,0x25,0x21,0x65,0x33,0x7e,0x77,0x1b,0x34,0x4e,0x32,0x17,0x32,0x1c,0x10,0x01,0x05,0x0e,0x25,0x21,0x17,0x2b,0x19,0x15,0x18,0x01,0x38,0x71,0x71,0x71,0x00,0x00,0x03,0x00,0x32,0x05,0xd1,0x01,0xd4,0x08,0x8c,0x00,0x1c,0x00,0x20,0x00,0x24,0x00,0x1d,0x40,0x0c,0x23,0x22, -0x22,0x1f,0x1d,0x1d,0x11,0x08,0x1c,0x1c,0x16,0x08,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x32,0x2f,0x33,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x21,0x15,0x21,0x01,0xc7,0x07,0x06, -0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x31,0x73,0x73,0xdd,0x01,0x52,0xfe,0xae,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x38,0x71,0xfd,0x9d,0x58,0xff,0xff,0x00,0x32,0xfc,0xd5,0x01,0xd4, -0xff,0x90,0x02,0x03,0x14,0x61,0x00,0x00,0xf7,0x04,0x00,0x0b,0xfc,0xe6,0x07,0x1d,0x02,0xe0,0x0a,0x0e,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x78,0x00,0x7c,0x00,0x80,0x00,0x84,0x00,0x88,0x00,0x8c,0x00,0x00,0x03,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35, -0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17, -0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x01,0x33,0x11,0x23,0x01,0x33,0x15,0x23,0x07,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xf6,0x14,0x26,0x50,0x09,0x14,0x12,0x0c,0x5c,0x13,0x26,0x36,0x09,0x15, -0x11,0x0c,0x5c,0x11,0x21,0x3e,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x3b,0x23,0x32,0x11,0x17,0x35,0x19,0x4c,0x19,0x2c,0x0d,0x17,0x39,0x19,0x6a,0x17,0x2d,0x0d,0x17,0x35,0x1a,0x0e,0x17,0x27,0x22,0x1d,0x0e,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15, -0x11,0x0c,0x5c,0x03,0x7a,0x5c,0x5c,0xfc,0xdd,0x3f,0x3f,0x9e,0x65,0x65,0x02,0x2e,0x65,0x65,0xfc,0x7b,0x65,0x65,0x03,0xcc,0x64,0x64,0xfc,0xc0,0x64,0x64,0x01,0x12,0x64,0x64,0x45,0x64,0x64,0x02,0x2e,0x64,0x64,0x07,0xe9,0x2c,0x28,0x06,0x0d,0x16,0x11,0x01,0xcb,0xfe,0x4f,0x2c,0x28,0x06,0x0d,0x16,0x11,0xb7,0x9d,0x2a,0x2a,0x16, -0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x15,0x12,0x16,0x11,0x16,0x11,0x16,0x11,0x18,0x0f,0x16,0x11,0x0c,0x13,0x18,0x0c,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x01,0x14,0xfd,0x9a,0x02,0xda,0xc4,0x8f,0x62,0x62,0x62,0xeb,0x62,0xaf,0x62, -0xfe,0x8d,0x62,0xaf,0x62,0xea,0x62,0x62,0x62,0x00,0x00,0x07,0xfb,0x6b,0x06,0xaa,0x03,0xb0,0x09,0x9a,0x00,0x84,0x00,0x94,0x00,0x98,0x00,0xa4,0x00,0xa8,0x00,0xac,0x00,0xb0,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22, -0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06, -0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x03,0x1e,0x03,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x01,0x33,0x11,0x23,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x13,0x23,0x35,0x33, -0x17,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0xfc,0xb3,0x26,0x47,0x16,0x32,0x29,0x0c,0x13,0x1a,0x0e,0x5f,0x17,0x20,0x0b,0x02,0x08,0x0e,0x15,0x0f,0x09,0x2a,0x4f,0x49,0x45,0x20,0x0b,0x1d,0x3f,0x32,0x1e,0x3d,0x13,0x17,0x3c,0x1f,0x32,0x45,0x1e,0x0d,0x1d,0x22,0x2b,0x1c,0x10,0x3d,0x02,0x22,0x2c,0x1d,0x09,0x15,0x11,0x0c,0x5c,0x03, -0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x10,0x21,0x0d,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x1c,0x27,0x0e,0x14,0x34,0x1a,0x22,0x35,0x12,0x17,0x37,0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x2d,0x42,0x08,0x1c,0x41,0x4b,0x54,0x2f,0x0f,0x1b,0x2b,0x0c,0x1a,0x4e,0x2e,0x17,0x41,0x1d,0xe7,0x35,0x49,0x2d,0x13, -0x51,0x49,0x47,0x4b,0x35,0x21,0x1f,0x07,0xb2,0x5c,0x5c,0xf8,0x73,0x21,0x17,0x20,0x1c,0x18,0x21,0x1a,0x21,0x20,0x65,0x65,0x8c,0x64,0x64,0x02,0xe0,0x64,0x64,0x07,0x9e,0x05,0x06,0x14,0x16,0x12,0x3e,0x4b,0x52,0x24,0x45,0x79,0x31,0x0a,0x19,0x17,0x0f,0x01,0x12,0x1e,0x27,0x14,0x05,0x10,0x18,0x08,0x05,0x58,0x08,0x0b,0x19,0x10, -0x06,0x0d,0x0b,0x09,0x02,0x59,0x27,0x14,0x10,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x2b,0x2a,0x02,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x13,0x0f,0x13,0x0f,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x30,0x2a,0x10,0x20,0x1a,0x10,0x1c,0x11,0x1b,0x15, -0x08,0x04,0x01,0x96,0x21,0x43,0x45,0x47,0x25,0x42,0x51,0x49,0x3e,0x40,0x63,0x1f,0x1a,0x01,0x0c,0xfd,0x9a,0x8a,0x1a,0x17,0x1a,0x16,0x1f,0x3c,0x23,0x16,0x42,0x01,0x2a,0x62,0x62,0x62,0xfd,0x3b,0x62,0x00,0x00,0x06,0xfb,0x9b,0x07,0x31,0x03,0x92,0x09,0x9a,0x00,0x7e,0x00,0x82,0x00,0x92,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00, -0x01,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37, -0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x16,0x16,0x17,0x01,0x33,0x11,0x23,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23, -0x22,0x0e,0x02,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x7a,0x17,0x1d,0x5d,0x03,0x0c,0x16,0x13,0x10,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x20,0x2c,0x0f,0x14,0x34,0x1a,0x1b,0x24,0x2d,0x11,0x11,0x2e,0x35,0x3b,0x1e,0x48,0x66,0x45,0x2a,0x0b,0x0c,0x11, -0x07,0x17,0x37,0x19,0x19,0x11,0x1c,0x1a,0x19,0x0f,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x39,0x17,0x21,0x09,0x05,0x5c,0x0e,0x02,0x0e,0x10,0x0f,0x37,0x4e,0x65,0x3d,0x33,0x4a, -0x30,0x17,0x01,0x0e,0x17,0x01,0xe2,0x5c,0x5c,0xfc,0x5a,0x21,0x52,0x35,0x26,0x39,0x27,0x14,0x40,0x32,0x25,0x41,0x34,0x29,0xfe,0x59,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x11,0x64,0x64,0x04,0x24,0x64,0x64,0x07,0x95,0x17,0x23,0xb8,0x9b,0x17,0x20,0x16,0x0a,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a, -0x01,0x11,0x10,0x13,0x0f,0x0f,0x18,0x0e,0x11,0x09,0x02,0x01,0x03,0x05,0x05,0x05,0x0f,0x08,0x16,0x11,0x03,0x06,0x08,0x06,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x19,0x0f,0x11, -0x3a,0x17,0x68,0x0b,0x11,0x04,0x28,0x5c,0x4e,0x34,0x1f,0x35,0x46,0x27,0x20,0x25,0x01,0x02,0x04,0xfd,0x9a,0x61,0x01,0x01,0x03,0x0c,0x19,0x16,0x3a,0x31,0x1d,0x2f,0x3c,0x24,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x01,0x42,0x62,0x8d,0x62,0x00,0x00,0x05,0xfc,0x00,0x07,0x1d,0x02,0x8d,0x09,0xb2,0x00,0x7e, -0x00,0x82,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x00,0x01,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x35,0x25,0x15,0x07,0x1e,0x03,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22, -0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x05,0x23,0x35, -0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfe,0x24,0x14,0x26,0xd5,0x43,0x30,0x23,0x40,0x5a,0x36,0x01,0x5e,0xea,0x42,0x50,0x2e,0x15,0x07,0x01,0x07,0x10,0x1d,0x19,0x13,0x09,0x15,0x11,0x0c,0x5c,0x03,0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x0f,0x22,0x38,0x29,0x22,0x35,0x12,0x17,0x37, -0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x0a,0x16,0x16,0x12,0x05,0x17,0x50,0x42,0xdd,0x23,0x32,0x11,0x17,0x35,0x1a,0x10,0x2c,0x41,0x1c,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15,0x11,0x0c,0x5c,0xfe,0x62,0x65,0x65,0x01,0x57,0x65,0x65,0x8c,0x64, -0x64,0xfe,0xa9,0x64,0x64,0x07,0xe9,0x2c,0x28,0x1a,0x18,0x1b,0x35,0x34,0x34,0x1b,0x3d,0xdb,0x61,0x94,0x20,0x38,0x36,0x36,0x1e,0x07,0x18,0x16,0x11,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x33,0x46,0x2b,0x14,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x0b,0x10,0x12, -0x07,0x17,0x1d,0x15,0x12,0x16,0x11,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x54,0x62,0x27,0x62,0x62,0x62,0xeb,0x62,0x00,0x00,0x06,0xfd,0x71,0x07,0x31,0x01,0x80,0x09,0x5c,0x00,0x43,0x00,0x52,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d, -0x00,0x00,0x03,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x17,0x34, -0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfc,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x1a,0x2f, -0x14,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0xc8,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0x8c,0x64,0x64,0xfe,0x63,0x64,0x64, -0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x08,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14, -0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0x62,0x62,0x62,0x62,0x00,0x0a,0xfd,0x0e,0x06,0x71,0x02,0x8c,0x09,0x5c,0x00,0x4b,0x00,0x6d,0x00,0x7c,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xaf,0x00,0x00,0x01,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, -0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0x16,0x16,0x33,0x32, -0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23, -0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0xfe,0xa0,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x19,0x30,0x14,0x15,0x30,0x2f,0x2c,0x12,0x27,0x30,0x42,0x1d,0x16,0x2b,0x17,0x1c,0x28,0x50, -0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x19,0x2f,0x1e,0x14,0x1e,0x05,0x22,0x10,0x02,0x89,0x2a,0x51,0x1d,0x1e,0x27,0x19,0x0c,0x02,0x16,0x1c,0x1d,0x35,0x2a,0x19,0x16,0x25,0x33,0x1e,0x2d,0x3b,0x23,0x0f,0x16,0x30,0x4e,0x37,0x26,0x4b,0x27,0xfe,0x3f,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c, -0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0xfd,0x2c,0x65,0x65,0x01,0xc3,0x64,0x64,0x01,0x9d,0x64,0x64,0xfd,0x2c,0x64,0x64,0x03,0xe3,0x0b,0x15,0x0a,0x02,0x0b,0x11,0x14,0x0c,0x08,0x10,0x0d,0x08,0x27,0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d, -0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x08,0x0a,0x04,0x01,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x14,0x1c,0x03,0x02,0x16,0x31,0xe9,0x11,0x13,0x12,0x1d,0x25,0x14,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x38,0x51,0x59,0x21,0x30,0x59,0x43, -0x29,0x09,0x13,0x01,0x4b,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0xfe,0xd6,0x62,0x66,0x62,0x62,0x62,0xfe,0xd6,0x62,0xff,0x02,0x05,0x0e,0x25,0x21,0x16,0x0c,0x14,0x17,0x0c,0x16,0x18,0x00,0x02,0x00,0x00,0x06,0x71,0x02,0xf4, -0x08,0x06,0x00,0x1b,0x00,0x2e,0x00,0x14,0xb7,0x21,0x18,0x18,0x05,0x2a,0x10,0x10,0x05,0x00,0x2f,0x33,0x2f,0x33,0x11,0x33,0x11,0x33,0x30,0x31,0x01,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x37,0x25,0x14,0x1e,0x02,0x33,0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x23, -0x22,0x0e,0x02,0x02,0xf4,0x11,0x3c,0x4e,0x5d,0x31,0xef,0x3f,0x54,0x33,0x16,0x11,0x2b,0x48,0x38,0x2b,0x43,0x2c,0x17,0x13,0x81,0x59,0x93,0x2d,0xfd,0x66,0x0f,0x21,0x34,0x24,0x15,0x0f,0x0d,0x10,0x1a,0x20,0x10,0x1d,0x25,0x15,0x08,0x06,0x98,0x08,0x0f,0x0a,0x06,0x26,0x3c,0x49,0x23,0x21,0x47,0x3a,0x25,0x1f,0x36,0x4a,0x2b,0x32, -0x33,0x13,0x10,0x41,0x13,0x24,0x1c,0x11,0x1d,0x31,0x15,0x19,0x26,0x1a,0x0d,0x12,0x1c,0x25,0x00,0x02,0xff,0xfe,0x06,0x71,0x03,0x28,0x07,0xeb,0x00,0x29,0x00,0x39,0x00,0x21,0x40,0x0e,0x0f,0x2d,0x2d,0x20,0x08,0x14,0x1c,0x1c,0x26,0x35,0x14,0x14,0x03,0x26,0x00,0x2f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x33,0x11, -0x33,0x30,0x31,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x22,0x27,0x25,0x32,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x02,0x0f,0x1b,0x0d,0x37,0x4b,0x2e,0x16,0x03,0x5b,0x04,0x0c, -0x18,0x15,0x0d,0x30,0x44,0x57,0x35,0x42,0x43,0x1d,0x41,0x67,0x4a,0x5d,0x4c,0x52,0x06,0x04,0x0b,0x22,0x35,0x4c,0x35,0x0a,0x13,0x0b,0x01,0xe4,0x08,0x16,0x0c,0x16,0x3f,0x3a,0x2a,0x23,0x1d,0x1f,0x34,0x29,0x1e,0x06,0xda,0x01,0x02,0x11,0x1f,0x2e,0x1e,0x14,0x1a,0x26,0x1a,0x0d,0x01,0x29,0x61,0x53,0x37,0x4c,0x46,0x28,0x51,0x42, -0x2a,0x3e,0x34,0x19,0x2b,0x1f,0x12,0x01,0x66,0x01,0x08,0x18,0x2f,0x27,0x17,0x24,0x1f,0x33,0x3f,0x00,0x00,0x02,0x00,0xdc,0x01,0x03,0x03,0xa8,0x04,0x9a,0x00,0x1e,0x00,0x39,0x00,0x1a,0xb1,0x03,0x1b,0xb8,0x04,0xfb,0xb3,0x36,0x1f,0x22,0x2c,0xb9,0x04,0xfb,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xce,0x33,0xed,0x32,0x30,0x31,0x01,0x06, -0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3f,0x20,0x4d,0x2e,0x25,0x47,0x39,0x23,0x24,0x3b,0x4c,0x51,0x4e,0x20,0x1e,0x4d,0x4e,0x4b,0x3b, -0x23,0x26,0x3c,0x4b,0x25,0x2d,0x4a,0x1b,0x28,0x2d,0x30,0x13,0x24,0x1c,0x10,0x35,0x4b,0x52,0x1d,0x1d,0x4e,0x48,0x32,0x0f,0x1a,0x25,0x15,0x28,0x31,0x02,0x01,0x68,0x38,0x2d,0x1c,0x46,0x78,0x5c,0x5a,0xa0,0x87,0x6c,0x4c,0x28,0x27,0x4a,0x69,0x83,0x9c,0x57,0x60,0x7e,0x4b,0x1e,0x2d,0x38,0xaf,0x3a,0x49,0x0f,0x28,0x45,0x37,0x62, -0xa9,0x7b,0x46,0x47,0x7b,0xa6,0x5e,0x35,0x46,0x2c,0x12,0x44,0x3f,0x00,0xff,0xff,0xfe,0xd4,0xfe,0x53,0x00,0xdf,0x00,0x0c,0x02,0x07,0x0a,0x51,0xff,0x15,0xf7,0xe0,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x47,0x0f,0x54,0x01,0x91,0xfe,0xe7,0x2d,0x51,0x2d,0x42,0xff,0xff,0xff,0xba, -0xfd,0xc9,0x04,0xad,0x03,0x5e,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x7f,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x3c,0x03,0x8a,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x31,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xae,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06, -0x0e,0x55,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0xf6,0xfe,0xab,0x00,0x06,0x0e,0x56,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0x98,0xfe,0xab,0x00,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x12,0x00,0x27, -0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x06,0x0e,0x6e,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x27,0x0f,0x50,0x00,0xa1,0xfe,0xab,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x19,0x00,0x65,0xfc,0xe0,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x8d,0x05,0x3e,0x00,0x27, -0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0x12,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0x3e,0x02,0x26, -0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x8d,0x05,0x3e,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x04,0x39,0x02,0x26, -0x0e,0x6e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0xf1,0x05,0x17,0x00,0x21,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x25,0x40,0x0c,0x4b,0x47,0x4a,0x49,0x34,0x22,0x3a,0x2d,0x2d,0x20,0x05,0x19,0xb8,0x04,0xfb,0xb1,0x06,0x12,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde, -0x32,0xcd,0x32,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, -0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x07,0x20,0x44,0x3e,0x16,0x32,0x4a,0x37,0x27,0x0f,0x04,0x1a,0x41,0x46,0x47,0x21,0xfe,0x1b,0x23,0x23,0x23,0x23,0x01,0xef,0x1d,0x43,0x38,0x25,0x9c,0xfd,0x2d,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a, -0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x10,0x1f,0x2e,0x1e,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0x5b,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25, -0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0x48,0x05,0x17,0x00,0x14,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x21,0x40,0x0b,0x3e,0x3a,0x3d,0x3c,0x27,0x15,0x2d,0x20,0x20,0x14,0x0d,0xb9,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde,0x32,0xcd,0x32,0x30,0x31,0x01,0x11,0x14, -0x0e,0x02,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x3d,0x63,0x80,0x43,0xfe,0x1b,0x23, -0x23,0x23,0x23,0x01,0xef,0x2e,0x47,0x30,0x18,0xfd,0xc9,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a,0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x03,0x0f,0xfe,0x3d,0x71,0x88,0x49,0x18,0x34,0x20,0x20,0x33,0x0f,0x2a,0x48,0x39,0x01,0xbc,0x01,0x5b,0x1a,0x3c, -0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x03,0xfe,0x84,0x06,0x71,0x01,0x76,0x08,0x8f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x1d,0x40,0x0c,0x24,0x27,0x27,0x29,0x2b,0x2b,0x00,0x18,0x11,0x11, -0x0b,0x18,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0xfe,0xed,0x06,0x09,0x12,0x1a,0x10,0x22, -0x37,0x56,0x44,0x49,0x66,0x3f,0x1d,0x5e,0x38,0x65,0x8a,0x52,0x49,0x60,0x43,0x32,0x1b,0x24,0x1c,0x0a,0x07,0x01,0x46,0x73,0x73,0xb9,0x72,0x72,0x07,0xe2,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x32,0x2b,0xef,0xf3,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70, -0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x5f,0x00,0x27,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0x00,0x06,0x0b,0x0c,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x04,0x24,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x07,0x0a,0x1f,0x01,0xde,0xfb,0x98,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac, -0x05,0xb4,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x74,0x05,0xb4,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04, -0x03,0x62,0x02,0x06,0x0e,0xa5,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03, -0x02,0xb7,0x02,0x02,0x0e,0x70,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58, -0x01,0xc1,0x02,0x02,0x0e,0xcf,0x00,0x00,0x00,0x01,0x00,0xab,0x01,0xe1,0x01,0xac,0x02,0xe2,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x2d,0x17,0x2e,0x25,0x18,0x18,0x25,0x2e,0x17,0x16,0x2d,0x25,0x17,0x17,0x25,0x2d,0x01, -0xe1,0x17,0x25,0x2d,0x16,0x16,0x2f,0x25,0x18,0x18,0x25,0x2f,0x16,0x16,0x2d,0x25,0x17,0x00,0x00,0x01,0x00,0xd4,0x01,0x18,0x01,0x84,0x03,0xe5,0x00,0x0d,0x00,0x08,0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x01,0x43,0x11,0x18,0x10,0x08,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5, -0x45,0x74,0x70,0x74,0x45,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x66,0x01,0x18,0x02,0x01,0x03,0xe5,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0e,0x07,0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x21,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x21,0x02,0x01,0xfe,0xf2,0x08,0x0d,0x09,0x05,0x6b,0x07,0x10,0x1b,0x13,0x01,0x9b, -0x03,0x5d,0x2b,0x51,0x53,0x59,0x32,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x1f,0x01,0x18,0x02,0x39,0x03,0xe5,0x00,0x37,0x00,0x14,0xb7,0x30,0x2b,0x25,0x06,0x16,0x1c,0x00,0x0d,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x32,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16, -0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x8e,0x0c,0x12,0x07,0x04,0x09,0x04,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d,0x04,0x02,0x08,0x0e,0x07,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d, -0x18,0x2b,0x3c,0x23,0x18,0x33,0x1d,0x13,0x2f,0x18,0x10,0x05,0x05,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x30,0x51,0x27,0x01,0x25,0x1b,0x19,0x38,0x18,0x20,0x37,0x1b,0x0e,0x19,0x0d,0x02,0x01,0x25,0x1b,0x19,0x38,0x18,0x21,0x35,0x1d,0x29,0x3f,0x2d,0x17,0x0b,0x0f,0x0d,0x0c,0x2d,0x5e,0x39,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00, -0x00,0x01,0x00,0x7f,0x01,0x0b,0x01,0xd8,0x03,0xfa,0x00,0x2e,0x00,0x0c,0xb3,0x14,0x13,0x2e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37, -0x01,0xd8,0x23,0x3f,0x21,0x27,0x4d,0x3d,0x25,0x3b,0x46,0x43,0x38,0x1b,0x3e,0x66,0x4b,0x39,0x44,0x23,0x0b,0x21,0x35,0x44,0x24,0x3f,0x4a,0x25,0x0a,0x16,0x1f,0x25,0x0f,0x14,0x20,0x1e,0x20,0x13,0x01,0x20,0x0b,0x0a,0x10,0x23,0x37,0x28,0x2f,0x6c,0x44,0x20,0x42,0x33,0x22,0x41,0x3a,0x35,0x17,0x8d,0x11,0x1b,0x14,0x0e,0x04,0x0a, -0x1b,0x1c,0x1d,0x0d,0x1d,0x35,0x4b,0x32,0x1d,0x07,0x0e,0x0f,0x07,0x02,0x01,0x04,0x06,0x05,0x00,0x02,0x00,0x4f,0x01,0x60,0x02,0x08,0x03,0x99,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x14,0x0a,0x1e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x26,0x30,0x4f,0x39,0x1f,0x2c,0x42,0x4b,0x20,0x22,0x4f,0x43,0x2c,0x22,0x3c,0x53,0x30,0x11,0x26,0x20,0x16,0x12,0x1e,0x28,0x16,0x23,0x2d,0x1b,0x0a,0x18,0x24,0x29,0x01,0x60,0x1b,0x36,0x4f,0x35,0x54,0x84,0x5b,0x31,0x2b,0x54,0x7e,0x54,0x39,0x56,0x3b, -0x1e,0x01,0xb3,0x1f,0x38,0x4d,0x2e,0x1b,0x22,0x14,0x07,0x0f,0x19,0x1f,0x10,0x30,0x4e,0x37,0x1e,0x00,0x00,0x01,0x00,0x35,0x01,0x18,0x02,0x22,0x03,0xe5,0x00,0x12,0x00,0x0a,0xb2,0x12,0x07,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x01,0xb2,0x10,0x16,0x10,0x09,0x06,0x04,0x02, -0xfe,0xce,0x01,0x99,0x03,0x02,0x04,0x07,0x0a,0x11,0x18,0x11,0x01,0x18,0x43,0x66,0x56,0x4d,0x55,0x63,0x41,0x88,0x63,0x46,0x6c,0x5b,0x53,0x5b,0x6a,0x45,0x00,0x01,0x00,0x1b,0x01,0x12,0x02,0x3c,0x03,0xe5,0x00,0x13,0x00,0x0c,0xb3,0x03,0x10,0x00,0x0a,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07, -0x23,0x2e,0x03,0x27,0x33,0x16,0x16,0x17,0x01,0x2d,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x38,0x32,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x01,0xe5,0x87,0xfc,0x7d,0x60,0xb6,0xb1,0xb1,0x5b,0x60,0xb4,0xb1,0xb1,0x5d,0x7d,0xfb,0x88,0x00,0x00,0x01,0x00,0x1b,0x01,0x18,0x02,0x3c,0x03,0xea,0x00,0x13,0x00,0x0c,0xb3,0x13, -0x09,0x10,0x03,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x3e,0x03,0x37,0x33,0x1e,0x03,0x17,0x23,0x26,0x26,0x27,0x01,0x2a,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x37,0x33,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x03,0x18,0x88,0xfb,0x7d,0x60,0xb5,0xb1,0xb1,0x5b,0x5f,0xb4,0xb1,0xb1,0x5d,0x7d,0xfa, -0x89,0x00,0x00,0x02,0x00,0x35,0x01,0x18,0x02,0x23,0x03,0xeb,0x00,0x1c,0x00,0x2d,0x00,0x0e,0xb4,0x1c,0x05,0x28,0x20,0x0f,0x00,0x2f,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x01,0x26,0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x03,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14, -0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x01,0xb2,0x28,0x20,0x08,0x38,0x36,0x27,0x45,0x35,0x1e,0x1c,0x33,0x47,0x2c,0x2a,0x47,0x1f,0x10,0x13,0x0c,0x07,0x04,0x03,0x0a,0x15,0x23,0x1d,0xdd,0x0e,0x2d,0x1f,0x13,0x1e,0x14,0x0b,0x38,0x29,0x14,0x2e,0x18,0x03,0x07,0x01,0x18,0x5b,0xa5,0x40,0x16,0x19,0x31,0x4a,0x32,0x2f,0x53,0x3d,0x24, -0x28,0x2e,0x1a,0x30,0x36,0x3e,0x26,0x26,0x53,0x63,0x75,0x48,0x02,0x04,0x22,0x28,0x10,0x19,0x20,0x0f,0x26,0x25,0x08,0x07,0x1a,0x1f,0x00,0x01,0x00,0x53,0x01,0x18,0x02,0x05,0x03,0xf1,0x00,0x2b,0x00,0x10,0xb5,0x24,0x1c,0x15,0x0b,0x00,0x05,0x00,0x2f,0x33,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x13,0x17,0x17,0x36,0x36,0x33,0x32,0x16, -0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0xc2,0x12,0x03,0x1a,0x58,0x3f,0x0c,0x23,0x16,0x22,0x25,0x1d,0x38,0x2b,0x1b,0x14,0x1f,0x27,0x14,0x2d,0x58,0x27,0x1f,0x5b,0x30,0x18,0x2e,0x14,0x02,0x02,0x02, -0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x52,0x01,0x2a,0x35,0x03,0x05,0x85,0x08,0x0a,0x13,0x1c,0x12,0x11,0x17,0x0f,0x07,0x1e,0x18,0x8a,0x14,0x1d,0x09,0x0b,0x01,0x1b,0x33,0x20,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x00,0x02,0x00,0x32,0x01,0x07,0x02,0x25,0x03,0xed,0x00,0x1a,0x00,0x35,0x00,0x12,0xb6,0x28,0x25,0x2c,0x03,0x17, -0x1b,0x0d,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x33,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x29,0x14,0x34,0x1e,0x1a, -0x33,0x2a,0x1a,0x32,0x4c,0x58,0x27,0x26,0x57,0x49,0x30,0x1c,0x2c,0x36,0x1a,0x1d,0x32,0x12,0x04,0x15,0x32,0x2b,0x1c,0x08,0x0d,0x13,0x0b,0x17,0x18,0x02,0x5b,0x17,0x1b,0x0a,0x12,0x0e,0x08,0x1e,0x2d,0x34,0x01,0x4e,0x28,0x1f,0x17,0x3b,0x64,0x4e,0x6c,0xb1,0x7f,0x46,0x44,0x7b,0xae,0x69,0x50,0x69,0x3e,0x19,0x1f,0x28,0x02,0x1f, -0x35,0x5d,0x7f,0x4b,0x26,0x32,0x1d,0x0c,0x31,0x39,0x34,0x35,0x09,0x1b,0x31,0x27,0x4e,0x81,0x5d,0x34,0x00,0x01,0x00,0x59,0x01,0x03,0x01,0xff,0x03,0xec,0x00,0x27,0x00,0x19,0x40,0x0a,0x20,0x19,0x00,0x23,0x1f,0x1f,0x24,0x23,0x0f,0x08,0x00,0x2f,0xcd,0x2f,0x33,0x39,0x2f,0x12,0x39,0x33,0x33,0x30,0x31,0x01,0x26,0x26,0x35,0x34, -0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x27,0x36,0x36,0x37,0x01,0x18,0x48,0x46,0x24,0x3f,0x56,0x32,0x10,0x25,0x1a,0x1b,0x2a,0x12,0x18,0x2b,0x21,0x14,0x12,0x1c,0x25,0x14,0x12,0x1f,0x0f,0x14,0x2e,0x21,0x6a,0xc3,0x5a,0x1f, -0x28,0x62,0x36,0x02,0x70,0x13,0x59,0x45,0x31,0x4c,0x33,0x1b,0x03,0x04,0x88,0x04,0x04,0x07,0x12,0x1f,0x17,0x16,0x1e,0x13,0x09,0x06,0x05,0x0b,0x1a,0x10,0x9b,0x2e,0xb4,0x86,0x9c,0x3c,0x65,0x2d,0x00,0x01,0x00,0x2b,0x01,0x18,0x02,0x2d,0x03,0xec,0x00,0x28,0x00,0x0e,0xb4,0x09,0x0f,0x04,0x23,0x19,0x00,0x2f,0x2f,0x33,0xdd,0xcc, -0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x01,0x6c,0x0e,0x1e,0x13,0x82,0x1e,0x2b,0x21,0x18,0x0a,0x5b,0x09,0x19,0x20,0x27,0x16,0x17,0x13,0x09,0x03,0x08,0x08,0x6b,0x0b,0x0d,0x0b, -0x4c,0x3e,0x22,0x38,0x2c,0x22,0x0c,0x03,0x71,0x21,0x37,0x1c,0x2a,0x48,0x45,0x45,0x26,0x22,0x3c,0x2b,0x19,0x17,0x12,0x11,0x2c,0x14,0x2d,0x7c,0x58,0xd2,0xce,0x60,0x7a,0x51,0x36,0x1b,0x45,0x45,0x15,0x23,0x2c,0x17,0x00,0x01,0x00,0x4d,0x01,0x12,0x02,0x0a,0x03,0xe5,0x00,0x0e,0x00,0x0c,0xb3,0x09,0x05,0x07,0x00,0x00,0x2f,0x2f, -0xcd,0x32,0x30,0x31,0x01,0x0e,0x03,0x07,0x21,0x15,0x21,0x35,0x3e,0x03,0x37,0x01,0x5d,0x06,0x15,0x1e,0x26,0x18,0x01,0x24,0xfe,0x43,0x25,0x39,0x29,0x19,0x06,0x03,0xe5,0x79,0xb1,0x87,0x69,0x31,0x88,0x47,0x43,0x7f,0x94,0xb9,0x7d,0x00,0x00,0x06,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x08,0x36,0x00,0x64,0x00,0x78,0x00,0x86,0x00,0xb4, -0x00,0xb8,0x00,0xbc,0x00,0x54,0x40,0x0b,0xb8,0xb6,0xa0,0x87,0x94,0x9a,0x8d,0xa6,0xad,0x4d,0x34,0xb8,0x04,0xfb,0x40,0x0f,0x3e,0x82,0x40,0x7e,0x82,0x7e,0x82,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x61,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x1a,0xbc,0xba,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32, -0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0xed,0x10,0xde,0x32,0xdd,0x32,0xdc,0x32,0x32,0xde,0xcd,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27, -0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33, -0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x25,0x23,0x11,0x33,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38, -0x16,0x31,0x55,0x75,0x44,0x48,0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c, -0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x02,0xf8,0x03,0x01,0x26,0x2d,0x2d,0x22,0x01,0x5f,0x01,0x22,0x2d,0x30,0x24,0x03,0x5f, -0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x6b,0x74,0x74,0x04,0xfb,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82,0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a, -0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26, -0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0x80,0x1c,0x18,0x09,0x33,0x3f,0x3d,0x3c,0x0d,0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x53,0x01,0x56,0xfc,0x39,0xb5,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x05,0x7e, -0x00,0x64,0x00,0x78,0x00,0x86,0x00,0x8a,0x00,0x3b,0xb9,0x00,0x34,0x04,0xfb,0x40,0x0d,0x82,0x3e,0x40,0x7e,0x7e,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x60,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x19,0x8a,0x88,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x2f,0x12, -0x39,0x39,0xed,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, -0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38,0x16,0x31,0x55,0x75,0x44,0x48, -0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c,0x26,0x46,0x39,0x25,0x42,0x31, -0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x08,0xfe,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82, -0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01, -0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x02,0x62,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x00,0x0e,0x00,0x0c,0xba,0x00,0x0e,0x04,0xfb,0x00,0x01,0x00,0x2f,0xed,0x30,0x31,0x05,0x21, -0x22,0x2e,0x02,0x27,0x27,0x37,0x1e,0x03,0x33,0x21,0x08,0xfe,0xf9,0xb1,0x4b,0x99,0x8f,0x7d,0x2e,0x1e,0x05,0x36,0x8d,0x9f,0xa9,0x50,0x06,0x2b,0x0e,0x07,0x0f,0x15,0x0e,0x91,0x05,0x0a,0x0f,0x0a,0x05,0x00,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed, -0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9,0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9, -0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0x00,0x01,0x00,0xf2,0x02,0x84,0x02,0x5a,0x03,0xed,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa8,0x20,0x40,0x35,0x21,0x21,0x35,0x40,0x20,0x1f,0x40,0x33,0x20,0x20,0x33,0x40,0x02,0x84,0x20,0x34,0x3f,0x20,0x1f,0x41,0x34,0x22,0x21,0x35,0x41,0x1f,0x20,0x3f,0x34,0x20,0x00,0x00,0x01,0x01,0x2f,0x01,0x4a,0x02,0x1d,0x05,0x7d,0x00,0x0d,0x00,0x08, -0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0xb7,0x19,0x27,0x19,0x0d,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x6c,0xb4,0xb1,0xbc,0x73,0xfe,0xcd,0x01,0x2d,0x67,0xb5,0xb5,0xc1,0x74,0x00,0x01,0x00,0x76,0x01,0x4a,0x02,0xd6,0x05,0x7d,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0f,0x08, -0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x02,0xd6,0xfe,0x4a,0x10,0x19,0x12,0x09,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x97,0x4f,0x9b,0xa0,0xa9,0x5d,0xfe,0xf4,0x01,0x06,0x75,0xc5,0xbc,0xc3,0x74,0x00,0x00,0x01,0x00,0x25,0x01,0x4a,0x03,0x28,0x05,0x7d,0x00,0x3c,0x00,0x14, -0xb7,0x35,0x2c,0x26,0x06,0x15,0x1d,0x00,0x0f,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26, -0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xac,0x11,0x1b,0x0b,0x0c,0x17,0x0b,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x1f,0x12,0x24,0x1e,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x0e,0x10,0x1d,0x39,0x54,0x37,0x23,0x4c,0x2d,0x1b,0x42,0x25,0x0c,0x19,0x0d,0x06,0x0a,0x07,0x04,0x83,0x10,0x1c,0x27,0x17,0x05,0x7d,0x45,0x79, -0x3a,0x03,0x02,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x4b,0x45,0x36,0x2d,0x0a,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x21,0x52,0x27,0x2c,0x51,0x3e,0x24,0x11,0x16,0x14,0x12,0x02,0x02,0x28,0x53,0x62,0x77,0x4c,0xfe,0xe1,0x01,0x1a,0x6c,0xcb,0xc4,0xbf,0x5f,0x00,0x00,0x01,0x00,0xab,0x01,0x38,0x02,0xa1,0x05,0x97,0x00,0x2f,0x00,0x0c, -0xb3,0x25,0x24,0x0a,0x10,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x3f,0x5f,0x6c,0x36,0x0e,0x25,0x36,0x3d,0x18,0x39,0x58,0x30,0x62,0x65, -0x37,0x6d,0x56,0x35,0x15,0x30,0x50,0x3c,0x39,0x4d,0x2e,0x14,0x24,0x55,0x8e,0x6b,0x56,0x66,0x34,0x0f,0x20,0x43,0x6a,0x4b,0x03,0x91,0x55,0x7b,0x56,0x33,0x0c,0x1c,0x22,0x12,0x06,0x0c,0x0d,0x96,0x21,0x17,0x31,0x4e,0x38,0x20,0x4d,0x5b,0x68,0x3a,0x1b,0x31,0x34,0x39,0x22,0x2d,0x58,0x55,0x4f,0x23,0x9f,0x1a,0x31,0x29,0x21,0x0a, -0x11,0x22,0x28,0x33,0x22,0x00,0x00,0x02,0x00,0x62,0x01,0xbc,0x02,0xeb,0x04,0xf3,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x1e,0x0a,0x14,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, -0x2e,0x02,0x01,0xa1,0x35,0x74,0x62,0x3f,0x2f,0x57,0x7c,0x4c,0x4a,0x75,0x51,0x2b,0x40,0x60,0x6f,0x2e,0x1c,0x41,0x37,0x25,0x1e,0x33,0x43,0x26,0x36,0x4c,0x30,0x15,0x29,0x3d,0x46,0x04,0xf3,0x40,0x7c,0xb8,0x78,0x4d,0x7a,0x56,0x2e,0x29,0x4e,0x70,0x47,0x78,0xc1,0x87,0x49,0x94,0x35,0x5e,0x84,0x4f,0x2e,0x3f,0x26,0x11,0x18,0x2c, -0x3c,0x23,0x54,0x85,0x5d,0x31,0x00,0x01,0x00,0x42,0x01,0x4a,0x03,0x0a,0x05,0x7d,0x00,0x13,0x00,0x0a,0xb2,0x13,0x08,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0x80,0x17,0x21,0x17,0x0e,0x0a,0x06,0x03,0x03,0xfe,0x35,0x02,0x4a,0x05,0x03,0x07,0x0a,0x0f,0x19,0x23,0x1a, -0x01,0x4a,0x60,0x96,0x7e,0x70,0x79,0x8a,0x59,0x5c,0x97,0x94,0x68,0xa1,0x89,0x7d,0x88,0xa1,0x67,0x00,0x00,0x01,0x00,0x1c,0x01,0x47,0x03,0x30,0x05,0x7d,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0e,0x07,0x00,0x00,0x2f,0x32,0x2f,0x33,0x30,0x31,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x06,0x0a,0x02,0x07,0x23,0x26,0x0a,0x02,0x27, -0xa5,0x49,0x7d,0x39,0x04,0x3a,0x7d,0x49,0x88,0x32,0x59,0x53,0x4c,0x24,0x78,0x27,0x4e,0x53,0x57,0x2f,0x05,0x7d,0xc7,0xfe,0x64,0xdf,0xdf,0x01,0x9d,0xc6,0x89,0xfe,0xf5,0xfe,0xf5,0xfe,0xf3,0x8a,0x91,0x01,0x12,0x01,0x0b,0x01,0x05,0x83,0x00,0x01,0x00,0x1d,0x01,0x4a,0x03,0x30,0x05,0x80,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0d,0x00, -0x07,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36,0x1a,0x02,0x37,0x33,0x16,0x1a,0x02,0x17,0x02,0xa8,0x4a,0x7d,0x38,0x05,0x39,0x7e,0x48,0x88,0x31,0x59,0x52,0x4d,0x25,0x78,0x26,0x4e,0x53,0x57,0x2f,0x01,0x4a,0xc7,0x01,0x9b,0xe0,0xe0,0xfe,0x64,0xc6,0x88,0x01,0x0b,0x01,0x0b,0x01,0x0e, -0x8a,0x90,0xfe,0xed,0xfe,0xf6,0xfe,0xfa,0x83,0x00,0x00,0x02,0x00,0x3c,0x01,0x4a,0x03,0x10,0x05,0x87,0x00,0x1e,0x00,0x33,0x00,0x10,0xb5,0x07,0x31,0x31,0x1e,0x27,0x11,0x00,0x2f,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x01,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03, -0x17,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x02,0x88,0x1f,0x28,0x1b,0x10,0x06,0x5d,0x55,0x3b,0x6a,0x4f,0x2e,0x27,0x4a,0x6a,0x43,0x41,0x6a,0x2d,0x18,0x1d,0x11,0x09,0x05,0x05,0x0f,0x1e,0x31,0x27,0xfe,0xf3,0x03,0x05,0x07,0x09,0x07,0x19,0x4d,0x33,0x1f,0x35,0x26,0x15,0x1c,0x30, -0x42,0x27,0x22,0x4a,0x01,0x4a,0x47,0x8a,0x81,0x77,0x34,0x29,0x26,0x4a,0x6c,0x46,0x3f,0x76,0x5b,0x37,0x3b,0x47,0x26,0x4b,0x51,0x5c,0x38,0x3b,0x85,0x97,0xab,0x63,0x02,0x86,0x1b,0x2b,0x25,0x21,0x11,0x3d,0x44,0x1b,0x2d,0x3b,0x20,0x25,0x3a,0x27,0x14,0x10,0x00,0x01,0x00,0x69,0x01,0x4a,0x02,0xe4,0x05,0x92,0x00,0x31,0x00,0x12, -0xb6,0x22,0x17,0x17,0x2a,0x0d,0x00,0x07,0x00,0x2f,0x33,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xf0,0x21,0x04,0x0d, -0x32,0x46,0x59,0x35,0x16,0x36,0x1d,0x33,0x36,0x30,0x58,0x42,0x28,0x1e,0x31,0x3c,0x1e,0x24,0x48,0x43,0x3d,0x19,0x12,0x37,0x45,0x4d,0x27,0x2a,0x53,0x1d,0x03,0x0a,0x07,0x83,0x0b,0x19,0x28,0x1e,0x05,0x7d,0x92,0x21,0x3d,0x2e,0x1b,0x05,0x08,0x95,0x0c,0x12,0x22,0x30,0x1d,0x1a,0x25,0x18,0x0b,0x0e,0x17,0x1e,0x10,0x9a,0x0e,0x1c, -0x16,0x0f,0x14,0x17,0x02,0x48,0xac,0x53,0xfe,0xe5,0x01,0x16,0x6a,0xba,0xba,0xc8,0x77,0x00,0x00,0x02,0x00,0x3c,0x01,0x36,0x03,0x10,0x05,0x81,0x00,0x1e,0x00,0x3c,0x00,0x12,0xb6,0x3c,0x3a,0x24,0x03,0x1b,0x30,0x0f,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33, -0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x01,0xa3,0x20,0x4c,0x2e,0x25,0x49,0x3b,0x24,0x22,0x38,0x4b,0x52,0x53,0x26,0x25,0x51,0x4f,0x48,0x37,0x20,0x27,0x3d,0x4d,0x26,0x2c,0x49,0x1c,0x36,0x0a, -0x15,0x21,0x16,0x23,0x25,0x10,0x02,0x16,0x25,0x30,0x35,0x35,0x18,0x23,0x50,0x44,0x2c,0x0e,0x18,0x21,0x13,0x50,0x06,0x01,0xa3,0x3c,0x31,0x22,0x55,0x91,0x70,0x6b,0xbe,0xa1,0x80,0x59,0x30,0x2e,0x57,0x7d,0x9c,0xba,0x68,0x74,0x98,0x5a,0x25,0x31,0x3c,0xcb,0x1f,0x37,0x29,0x18,0x33,0x47,0x48,0x15,0x53,0x96,0x81,0x68,0x49,0x28, -0x59,0x9a,0xd2,0x78,0x41,0x57,0x34,0x16,0x9c,0x00,0x00,0x01,0x00,0x6f,0x01,0x3a,0x02,0xdd,0x05,0x86,0x00,0x25,0x00,0x1b,0x40,0x0c,0x20,0x00,0x07,0x03,0x03,0x25,0x25,0x03,0x16,0x10,0x04,0x03,0x00,0x2f,0x33,0x2f,0xcd,0x11,0x39,0x2f,0x12,0x17,0x39,0x30,0x31,0x01,0x06,0x00,0x07,0x27,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34, -0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x02,0xdd,0xa7,0xfe,0xde,0x83,0x22,0x43,0xa6,0x5e,0x01,0x6e,0x76,0x30,0x57,0x79,0x4a,0x2d,0x3e,0x1d,0x3b,0x1a,0x27,0x46,0x33,0x1e,0x19,0x2c,0x3b,0x21,0x34,0x35,0x1d,0x3c,0x24,0x03,0x78,0x4e,0xfe,0xe3,0xd3,0xaf, -0x6d,0xbe,0x4c,0x03,0x16,0x88,0x69,0x42,0x69,0x4a,0x27,0x09,0x99,0x05,0x05,0x0f,0x22,0x37,0x28,0x25,0x36,0x24,0x11,0x13,0x11,0x22,0x12,0x00,0x00,0x01,0x00,0x41,0x01,0x4a,0x03,0x0b,0x05,0x88,0x00,0x29,0x00,0x0e,0xb4,0x04,0x09,0x29,0x20,0x16,0x00,0x2f,0x2f,0x33,0xdd,0xce,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23, -0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0x0b,0x42,0x54,0x1c,0x7a,0x0d,0x29,0x35,0x40,0x25,0x15,0x1a,0x0f,0x06,0x08,0x0c,0x0d,0x0c,0x08,0x83,0x13,0x16,0x13,0x67,0x5e,0x34,0x56,0x44,0x30,0x0e,0x04,0x14,0x30,0x1d,0x05,0x7d,0x61, -0xc2,0x71,0x36,0x60,0x46,0x29,0x0b,0x13,0x19,0x0d,0x11,0x2b,0x3b,0x52,0x73,0x99,0x65,0xfe,0xda,0x01,0x10,0x93,0xd0,0x8e,0x5b,0x1e,0x5b,0x69,0x29,0x3f,0x4e,0x25,0x3c,0x65,0x2f,0x00,0x00,0x01,0x00,0x6b,0x01,0x47,0x02,0xe1,0x05,0x7d,0x00,0x12,0x00,0x0c,0xb3,0x00,0x0f,0x11,0x08,0x00,0x2f,0x2f,0xcd,0x32,0x30,0x31,0x13,0x3e, -0x05,0x37,0x33,0x0e,0x05,0x07,0x21,0x15,0x21,0x6b,0x25,0x3f,0x33,0x28,0x1e,0x13,0x05,0x83,0x06,0x12,0x19,0x21,0x27,0x2f,0x1a,0x01,0xc0,0xfd,0x8a,0x01,0x8b,0x45,0x83,0x89,0x98,0xb2,0xd5,0x82,0x82,0xd1,0xaa,0x8a,0x77,0x6b,0x36,0x97,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x5f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07, -0x0a,0x1f,0x01,0x09,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x04,0x24,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x27,0x0a,0x1f,0x02,0x00,0xfb,0x98,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x01,0x00,0x55,0xff,0xe8,0x04,0x79,0x05,0x9a,0x00,0x2d,0x00,0x14,0x40,0x09,0x0e,0x0e,0x05,0x24,0x03,0x16,0x91,0x05,0x13,0x00, -0x3f,0xed,0x3f,0x12,0x39,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x04,0x79,0x4e,0x8f,0xc7,0x78,0x78,0xc1,0x87,0x48,0x0c,0x10,0xb4,0x0e,0x12,0x2c,0x58,0x83,0x58,0xb1, -0xb4,0x1e,0x35,0x49,0x2b,0x2f,0x57,0x44,0x2c,0x04,0xa8,0x03,0x22,0x38,0x4c,0x2e,0x2b,0x57,0x45,0x2b,0x01,0xdc,0x7b,0xbb,0x7e,0x40,0x43,0x75,0x9e,0x5b,0x27,0x52,0x2a,0x21,0x50,0x33,0x3e,0x67,0x4b,0x29,0xa9,0xae,0x40,0x6f,0x62,0x56,0x28,0x2c,0x67,0x85,0xab,0x72,0x60,0x89,0x69,0x57,0x2e,0x2c,0x60,0x74,0x8e,0x00,0x00,0x02, -0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0x9a,0x00,0x2f,0x00,0x41,0x00,0x1c,0x40,0x0e,0x3d,0x91,0x26,0x13,0x12,0x00,0x10,0x03,0x03,0x1c,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0x12,0x39,0x3f,0xed,0x30,0x31,0x01,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x06,0x35,0x35,0x33,0x15,0x14,0x1e,0x04,0x15,0x14,0x06,0x07,0x1e, -0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x0e,0x1b,0x0e,0x01,0x01,0x20,0x35,0x44,0x46,0x44,0x35,0x20,0xa4,0x38,0x55,0x62,0x55,0x38,0x04,0x02,0x4d,0x74,0x4d,0x26,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88, -0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x01,0x01,0x05,0x0a,0x05,0x18,0x1e,0x16,0x11,0x17,0x20,0x34,0x4b,0x36,0x28,0x28,0x1f,0x23,0x1d,0x1d,0x33,0x4f,0x40,0x0b,0x27,0x0f,0x1c,0x60,0x80,0x9c,0x57,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7, -0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x41,0x00,0x21,0x40,0x11,0x3d,0x91,0x26,0x13,0x10,0x10,0x00,0x0b,0x91,0x16,0x04,0x03,0x1e,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x30,0x31,0x01, -0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f, -0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e, -0x2a,0x2a,0x50,0x71,0x46,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x02,0x00,0x82,0xff,0xe0,0x06,0xac,0x05,0xaf,0x00,0x42,0x00,0x52,0x00,0x34,0x40,0x1b,0x1f,0x2e,0x2a,0x92,0x33,0x50,0x91,0x0a, -0x33,0x0a,0x33,0x0a,0x25,0x15,0x91,0x3d,0x04,0x24,0x25,0x13,0x12,0x40,0x40,0x48,0x91,0x00,0x04,0x00,0x3f,0xed,0x39,0x11,0x33,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02, -0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x3e,0x03,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xdf,0x6a,0xab,0x78,0x40,0x40,0x78,0xab,0x6a,0x6a,0xb1,0x7f,0x47,0x29,0x26,0x38,0x6d,0x31, -0x4e,0x79,0x53,0x2b,0x59,0x94,0xc0,0x67,0x57,0xa4,0x9b,0x91,0x45,0x5d,0x44,0xbb,0xd2,0xda,0x63,0x78,0xc1,0x3c,0x1b,0x46,0x4d,0x50,0x25,0x52,0x89,0x62,0x36,0x48,0x85,0xbb,0x73,0x55,0x9a,0x47,0x3e,0x97,0x01,0x74,0x21,0x46,0x6c,0x4a,0x4b,0x72,0x4d,0x27,0x9b,0x96,0x95,0x88,0x05,0xaf,0x42,0x7d,0xb6,0x75,0x75,0xb6,0x7d,0x40, -0x41,0x7e,0xb6,0x75,0x56,0x90,0x39,0x22,0x11,0x38,0x67,0x93,0x5a,0x82,0xb6,0x7f,0x54,0x20,0x1b,0x35,0x3e,0x4a,0x2f,0x7b,0x33,0x5b,0x45,0x28,0x23,0x1b,0x9c,0x0a,0x11,0x0d,0x08,0x02,0x22,0x68,0x8a,0xab,0x66,0x7e,0xca,0x8c,0x4b,0x25,0x37,0x2d,0x2f,0xfe,0x16,0x52,0x7e,0x57,0x2d,0x32,0x5a,0x7c,0x4a,0xa5,0xaf,0xad,0x00,0x01, -0x00,0x64,0xff,0xe8,0x04,0x87,0x05,0xb2,0x00,0x31,0x00,0x1b,0x40,0x0d,0x26,0x0e,0x26,0x0e,0x05,0x21,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11, -0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x04,0x87,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x2d,0x51,0x72,0x44,0x42,0x6c,0x4b,0x29,0xb0,0x48,0x7e,0xaa,0x62,0x62,0xae,0x81,0x4b,0x01,0xda,0x71,0xb7,0x83,0x47,0x44, -0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x02,0x27,0x44,0x68,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x35,0x66,0x96,0x61,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x41,0x00,0x22,0x40,0x11,0x3d,0x1f,0x2d,0x22,0x91,0x0d,0x1f,0x1f,0x05,0x2a,0x91,0x33, -0x04,0x15,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xfd,0xce,0x12,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x3e,0x02, -0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7f,0x82,0x79,0x8c,0xb0,0x40,0x75,0xa5,0x65,0x5c,0x9b,0x71,0x3f,0x21,0x3f,0x5d,0x3c,0x43,0x76,0x59,0x33, -0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x68,0x6b,0x5c,0x88,0x5a,0x2c,0x31,0x5c,0x81,0x50,0x3b,0x66,0x4e,0x34,0x09,0x08,0x3c,0x61,0x83,0x00,0x00,0x03,0x00,0x28,0xff,0xe8,0x05,0xfe,0x05,0xb2, -0x00,0x27,0x00,0x37,0x00,0x45,0x00,0x24,0x40,0x13,0x1e,0x3b,0x91,0x23,0x10,0x0b,0x33,0x91,0x10,0x10,0x05,0x2b,0x91,0x1a,0x04,0x43,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x3f,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, -0x33,0x32,0x16,0x15,0x15,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xfe,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x0d,0x28,0x2e,0x34,0x19,0x41,0x70,0x53,0x30,0x2f,0x56,0x79,0x49,0x9e,0xa1,0x21, -0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0xfc,0x0e,0x58,0x45,0x45,0x58,0x18,0x2a,0x39,0x21,0x21,0x3a,0x2a,0x19,0x03,0x40,0xa8,0x9d,0x4f,0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa0,0x02,0x16,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x01,0x70,0x0d,0x16,0x0f,0x09,0x2a,0x51,0x73,0x4a,0x4a,0x76,0x53,0x2c,0x9b,0x9c,0xf7,0x29,0x38,0x22, -0x0f,0x42,0x82,0xbf,0x01,0xe2,0x54,0x52,0x52,0x54,0x2c,0x3e,0x28,0x12,0x12,0x28,0x3e,0xfd,0xc7,0xbf,0xb1,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x02,0x00,0x82,0xff,0xe8,0x07,0x4c,0x05,0xb2,0x00,0x28,0x00,0x36,0x00,0x20,0x40,0x11,0x10,0x23,0x23,0x0e,0x91,0x26,0x04,0x2c,0x91,0x21,0x04,0x34,0x91,0x17,0x13,0x06,0x12,0x00, -0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x39,0x11,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x02,0x23,0x22,0x07,0x16,0x11,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x12,0x07, -0x4c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xae,0xb4,0x91,0x58,0x61,0x4a,0x8b,0xca,0x7f,0x73,0xc3,0x8d,0x4f,0x4c,0x8e,0xce,0x82,0xc6,0x7d,0x44,0xac,0x67,0xf9,0x01,0x0d,0xfc,0xb6,0xae,0xb4,0xb2,0xbc,0x32,0x5e,0x88,0x56,0xac,0xb6,0x02,0xc0,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb8,0xcd,0x6b,0x01,0x2a,0x01,0x2c,0x60, -0xb7,0xfe,0xc7,0xba,0xfe,0xea,0xb8,0x5c,0x53,0xaf,0x01,0x12,0xc0,0xc0,0x01,0x1c,0xbd,0x5d,0x75,0x3c,0x39,0xfe,0x89,0xfe,0x8b,0x01,0x2a,0x01,0x2b,0xfe,0xd4,0xfe,0xd3,0x97,0xda,0x8e,0x44,0x01,0x1f,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x04,0xb2,0x05,0xb2,0x00,0x24,0x00,0x0f,0xb6,0x0b,0x1a,0x12,0x12,0x91,0x00,0x04,0x00,0x3f, -0xed,0x3f,0x33,0x30,0x31,0x01,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x21,0x22,0x02,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x02,0xa7,0x7c,0xc3,0x86,0x46,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xfe,0x9c,0xb4,0xb8,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e, -0x4b,0x8e,0xcb,0x05,0xb2,0x5e,0xbc,0xfe,0xe5,0xbd,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb6,0xc9,0x67,0x02,0x60,0xfe,0xd4,0xfe,0xd6,0x6b,0xcd,0xb8,0x9c,0x3a,0x39,0x8a,0xab,0xd2,0x80,0xbd,0x01,0x1b,0xbc,0x5e,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x36,0x23,0x91,0x0e,0x20,0x20, -0x05,0x2b,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x35,0x32,0x1e,0x02, -0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x0e,0x0f,0xb8,0x12,0x14,0x36,0x60,0x83,0x4c,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7b,0x83,0x63,0x9f,0x70,0x3c,0x21,0x40,0x5e,0x3d,0x45,0x78,0x58,0x33,0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60, -0x26,0x52,0x2c,0x26,0x4f,0x2e,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x97,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x34,0x0a,0x09,0x3c,0x61,0x82,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x08,0x12,0x05,0xb3,0x00,0x5c,0x00,0x3d,0x40,0x21,0x48,0x3e,0x0e,0x0a,0x07,0x91,0x57,0x0b, -0x57,0x3e,0x2e,0x57,0x57,0x2e,0x3e,0x03,0x00,0x39,0x91,0x24,0x04,0x21,0x1b,0x42,0x91,0x1e,0x04,0x4d,0x91,0x18,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x30,0x31,0x21,0x2e,0x05,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03, -0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x04,0x16, -0x17,0x05,0xf6,0x0c,0x50,0x7a,0x9e,0xb3,0xc4,0x63,0x7e,0xf0,0x68,0x3c,0x93,0x55,0x66,0x8e,0x58,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x9a,0x2f,0x27,0x9a,0x67,0x65,0x9d,0x26,0x32,0x93,0x66,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x48,0x29,0x73,0x64,0xa8,0x63,0x73,0x39,0x4f,0x31,0x15,0xa8,0x64, -0x73,0x2c,0x49,0x35,0x1d,0x43,0x6f,0x8e,0x4b,0xc7,0x01,0x59,0x01,0x0b,0xb0,0x1f,0x1c,0x38,0x31,0x2a,0x1e,0x11,0x1f,0x22,0x9c,0x11,0x16,0x05,0x33,0x85,0x9c,0xb0,0x5f,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x61,0x5f,0x66,0x5a,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0xac, -0xae,0x88,0x88,0xae,0xac,0x2b,0x57,0x81,0x57,0x88,0x88,0xae,0xac,0x26,0x53,0x84,0x5f,0x77,0xb9,0x8e,0x67,0x23,0x0f,0x39,0x5c,0x80,0x55,0x00,0x00,0x02,0x00,0x82,0xff,0xe8,0x04,0x74,0x05,0xb2,0x00,0x2a,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x14,0x36,0x91,0x1f,0x0f,0x0f,0x05,0x1a,0x91,0x25,0x04,0x2e,0x91,0x05,0x13,0x00,0x3f,0xed, -0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0x74,0x47,0x82,0xb7, -0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x62,0x5c,0x50,0x20,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xb0,0x4b,0x81,0xae,0x62,0x62,0xae,0x82,0x4c,0xfc,0xbe,0xa2,0xa5,0xaf,0xa4,0x2f,0x57,0x7e,0x4f,0x4e,0x7a,0x54,0x2b,0x01,0xfc,0x7f,0xc6,0x88,0x47,0x48,0x8c,0xcc,0x84,0x7d,0xbc,0x7e,0x3f,0x0f,0x23,0x38,0x29,0x92, -0x45,0x69,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x32,0x63,0x92,0x61,0xfd,0xdc,0xc7,0xc1,0xc0,0xc4,0x60,0x89,0x58,0x29,0x28,0x57,0x87,0x00,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0xb2,0x00,0x30,0x00,0x40,0x00,0x2b,0x40,0x16,0x21,0x2b,0x91,0x18,0x26,0x91,0x1d,0x1d,0x18,0x00,0x36,0x91,0x05,0x05,0x0f,0x20, -0x18,0x04,0x3e,0x91,0x0f,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15, -0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x42,0x21,0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0xa3,0xac,0x2b,0x63,0x5f,0x55,0x1e,0x2a,0x74,0x38,0x17,0x36,0x38,0x36,0x18,0x2e,0x62,0x5e,0x56,0x22,0x2e,0x41,0x28,0x13,0x02,0xa6,0x2d,0x56,0x7c,0x4e,0x4f, -0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa8,0x03,0x84,0x29,0x38,0x22,0x0f,0x42,0x82,0xbf,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x02,0x5a,0xa9,0xa9,0x16,0x1a,0x16,0x21,0x23,0xaa,0x0c,0x12,0x0c,0x06,0x16,0x1a,0x16,0x10,0x28,0x42,0x33,0xfd,0xa1,0x60,0x8b,0x5a,0x2b,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x00,0x01,0x00,0x82, -0x00,0x00,0x06,0xf8,0x05,0xb4,0x00,0x3e,0x00,0x20,0x40,0x10,0x2a,0x25,0x0c,0x0c,0x2f,0x1c,0x3a,0x12,0x05,0x91,0x2f,0x04,0x12,0x91,0x25,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, -0x02,0x17,0x23,0x2e,0x03,0x35,0x10,0x12,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x06,0x48,0x21,0x46,0x6c,0x4a,0x3a,0x67,0x4e,0x2d,0xa4,0x2d,0x4e,0x67,0x3a,0x4a,0x6c,0x46,0x21,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e,0xee,0xe2,0x36,0x6e,0x62,0x4f,0x16,0x13, -0x4f,0x68,0x78,0x3d,0x69,0xa5,0x72,0x3c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0x02,0xbc,0x91,0xe2,0x9c,0x52,0x46,0x86,0xc4,0x7e,0x6e,0x6e,0x7e,0xc4,0x86,0x46,0x4e,0x98,0xde,0x91,0x73,0xd0,0xb5,0x96,0x3a,0x39,0x8a,0xac,0xd2,0x80,0x01,0x77,0x01,0x7c,0x23,0x4a,0x76,0x52,0x52,0x75,0x4b,0x23,0x61,0xbf,0xfe,0xe3,0xbb, -0x81,0xd0,0xa9,0x89,0x39,0x3a,0x96,0xb2,0xcb,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0x9a,0x00,0x43,0x00,0x1f,0x40,0x0f,0x3b,0x01,0x0f,0x36,0x91,0x21,0x33,0x33,0x01,0x29,0x91,0x19,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x11,0x39,0x30,0x31,0x01,0x33,0x1e,0x07,0x15,0x14,0x0e,0x02,0x07, -0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x06,0x01,0x12,0xbe,0x04,0x3a,0x5a,0x71,0x75,0x6f,0x57,0x35,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3, -0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x4f,0x6d,0x44,0x1e,0x36,0x58,0x71,0x78,0x74,0x5e,0x3e,0x05,0x9a,0x23,0x2a,0x1b,0x11,0x16,0x21,0x38,0x56,0x41,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83,0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a, -0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x28,0x2f,0x1c,0x12,0x15,0x20,0x39,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xc3,0x05,0xb2,0x00,0x42,0x00,0x35,0x40,0x1e,0x3e,0x1a,0x92,0x00,0x0e,0x00,0x0e,0x00,0x20,0xb0,0x30,0xc0,0x30,0xd0,0x30,0x03,0x30,0x13,0x91,0x08,0x08,0x21, -0x38,0x91,0x27,0x13,0x21,0x04,0x20,0x03,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0xce,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x32,0x3e,0x02,0x37,0x33,0x07,0x11,0x14,0x0e,0x02,0x23, -0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x02,0xf1,0x14,0x13,0x2a,0x53,0x7c,0x52,0x3f,0x81,0x68,0x41,0xaa,0x20,0x33,0x3f,0x1f,0x52,0x5d,0x2a,0x31,0x37,0x5e,0x9c,0x86,0x76,0x37,0x4c,0x01,0x4a,0x8b,0xca,0x80,0x75,0xc1,0x8b,0x4c,0x0f,0x10,0xb6,0x0f,0x16, -0x30,0x5e,0x88,0x59,0x57,0x85,0x5a,0x2f,0x18,0x44,0x4e,0x55,0x04,0x7c,0x23,0x4a,0x25,0x39,0x6a,0x52,0x31,0x21,0x4b,0x78,0x58,0x2f,0x3f,0x27,0x11,0x4d,0x51,0x2b,0x43,0x1c,0x83,0x10,0x27,0x43,0x33,0x02,0xfc,0x2a,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53, -0x02,0xe8,0x0e,0x18,0x14,0x0c,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xd0,0x05,0x9a,0x00,0x54,0x00,0x44,0x40,0x14,0x17,0x45,0x91,0x1e,0x3e,0x1b,0x1b,0x38,0x91,0x23,0x80,0x23,0x90,0x23,0xa0,0x23,0xe0,0x23,0x04,0x23,0xb8,0xff,0xc0,0x40,0x11,0x09,0x0d,0x48,0x3e,0x23,0x3e,0x23,0x0d,0x4f,0x2d,0x12,0x12,0x91,0x07,0x07,0x0d,0x03, -0x00,0x3f,0x33,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x10,0xed,0x33,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x13,0x34,0x3e,0x04,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x07,0x0e,0x03,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02, -0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x82,0x3f,0x6a,0x8d,0x9b,0xa0,0x49,0x55,0x6c,0x42,0x24,0x0d,0xb5,0x10,0x49,0x77,0xa8,0x6f,0x4d,0x8b,0x72,0x58,0x1a,0x05,0x22,0x4f,0x28,0x6a,0x88,0x1b,0x0e,0x3d,0x51,0x5f,0x2f,0x54,0x8b,0x63,0x37,0x1d,0x2f, -0x3c,0x1f,0xc2,0x23,0x45,0x36,0x21,0x22,0x39,0x4b,0x29,0x3b,0x53,0x33,0x17,0xa2,0x14,0x32,0x54,0x40,0x2f,0x4f,0x39,0x20,0x23,0x37,0x44,0x21,0xc2,0x1f,0x3c,0x2f,0x1d,0x02,0x26,0xab,0xf2,0xa4,0x62,0x38,0x18,0x09,0x0a,0x13,0x1a,0x25,0x1c,0x42,0x58,0x3c,0x27,0x10,0x0b,0x11,0x20,0x3b,0x34,0x1d,0x1a,0x7c,0x85,0x45,0x61,0x3d, -0x1d,0x3e,0x7d,0xbb,0x7c,0x66,0xa3,0x85,0x6b,0x2d,0x29,0x6b,0x88,0xa6,0x64,0x62,0x85,0x52,0x23,0x37,0x60,0x83,0x4c,0x30,0x30,0x4d,0x83,0x60,0x36,0x29,0x56,0x83,0x5a,0x64,0xa6,0x88,0x6b,0x29,0x2d,0x6d,0x87,0xa2,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xac,0x05,0x9a,0x00,0x27,0x00,0x18,0x40,0x0b,0x23,0x15,0x1f,0x1f,0x05,0x0c, -0x03,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x04,0xac,0x46,0x83,0xbb,0x75,0x80,0xc6,0x87,0x46,0xa2,0xb2,0xad,0x58,0x85, -0x58,0x2c,0x13,0x1e,0x21,0x1e,0x13,0x15,0x1b,0xb1,0x15,0x22,0x29,0x31,0x29,0x01,0x98,0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfc,0x42,0xa6,0xb8,0x2a,0x4b,0x68,0x3d,0x3a,0x5e,0x4e,0x43,0x40,0x40,0x24,0x22,0x4c,0x2d,0x20,0x46,0x32,0x2c,0x5a,0x6c,0x86,0x00,0x02,0x00,0x6e,0xff,0xe8,0x05,0xba,0x05,0xb2,0x00,0x5a, -0x00,0x66,0x00,0x3e,0xb6,0x3d,0x2d,0x64,0x54,0x64,0x01,0x64,0xb8,0xff,0xe0,0x40,0x1a,0x10,0x15,0x48,0x64,0x9f,0x13,0x01,0x13,0x13,0x35,0x1e,0x1b,0x92,0x23,0x23,0x49,0x55,0x0f,0x05,0x91,0x49,0x13,0x5e,0x92,0x35,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0x5d,0x33,0x2b,0x5d,0x12,0x39,0x39, -0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x27,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x16,0x16,0x17,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e, -0x02,0x37,0x33,0x0e,0x03,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x1d,0x57,0x8e,0xb4,0x5d,0x3a,0x78,0x70,0x62,0x49,0x2a,0x20,0x38,0x4a,0x56,0x5b,0x2d,0x19,0x2b,0x21,0x13,0x31,0x36,0x1d,0x38,0x11,0x23,0x39,0x18,0x52,0x92,0x38,0x5c,0x41,0x24,0x17,0x26,0x33,0x1c,0x3a,0x48,0x28,0x46,0x5c,0x35,0x31, -0x5a,0x46,0x2a,0x43,0x30,0x30,0x66,0x61,0x56,0x40,0x26,0x71,0xbc,0xf6,0x84,0x52,0xa4,0x97,0x81,0x60,0x37,0x21,0x3a,0x4f,0x2d,0xd7,0x35,0x5c,0x46,0x28,0x02,0xbf,0x33,0x2a,0x31,0x31,0x36,0x2d,0x27,0x35,0x02,0x1c,0x6e,0x9c,0x64,0x2f,0x11,0x25,0x3b,0x54,0x70,0x47,0x3c,0x5f,0x4c,0x3d,0x34,0x2e,0x17,0x15,0x27,0x25,0x24,0x12, -0x26,0x32,0x1a,0x16,0x11,0x2d,0x16,0x6d,0x22,0x3b,0x52,0x30,0x27,0x44,0x3b,0x34,0x17,0x2a,0x70,0x51,0x31,0x52,0x3b,0x21,0x21,0x3b,0x52,0x31,0x3c,0x67,0x2d,0x17,0x32,0x3d,0x4b,0x5f,0x77,0x4a,0x93,0xd2,0x86,0x3f,0x1c,0x39,0x59,0x7a,0x9c,0x61,0x46,0x89,0x7f,0x74,0x31,0x2f,0x6f,0x7b,0x86,0x02,0x72,0x23,0x2d,0x2f,0x21,0x2c, -0x41,0x1c,0x20,0x42,0x00,0x01,0x00,0x0a,0xff,0xe8,0x06,0x23,0x05,0xb8,0x00,0x54,0x00,0x30,0x40,0x19,0x10,0x91,0x0d,0x1e,0x07,0x07,0x19,0x4e,0x35,0x4e,0x35,0x4e,0x21,0x3d,0x91,0x2c,0x13,0x48,0x91,0x21,0x04,0x00,0x91,0x19,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed, -0x30,0x31,0x01,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x16,0x33,0x32,0x3e,0x06,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15, -0x23,0x35,0x34,0x2e,0x02,0x02,0x76,0x32,0x39,0x27,0x22,0x36,0x58,0x49,0x32,0x53,0x3b,0x21,0x97,0x30,0x1d,0x1e,0x2b,0x20,0x1c,0x20,0x29,0x3b,0x51,0x39,0x38,0x5a,0x42,0x2b,0x08,0x1d,0x9b,0x74,0x54,0x88,0x60,0x33,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x20, -0x36,0x48,0x29,0x3b,0x52,0x33,0x17,0xa8,0x13,0x2d,0x49,0x05,0x21,0x2f,0x45,0x51,0x45,0x2e,0x23,0x3f,0x55,0x32,0x2a,0x2a,0x1b,0x2c,0x39,0x3a,0x39,0x2c,0x1b,0x26,0x44,0x5f,0x38,0x80,0x7f,0x3e,0x7d,0xbb,0x7c,0xfe,0x16,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82, -0x53,0x01,0xe1,0x64,0x89,0x52,0x24,0x37,0x60,0x83,0x4c,0x30,0x30,0x49,0x82,0x63,0x39,0x00,0x00,0x02,0x00,0x55,0xff,0xe8,0x06,0xd5,0x05,0xb2,0x00,0x56,0x00,0x66,0x00,0x31,0x40,0x1a,0x64,0x91,0x04,0x2b,0x47,0x19,0x91,0x16,0x2b,0x16,0x2b,0x16,0x3d,0x0c,0x91,0x52,0x13,0x38,0x21,0x91,0x3d,0x04,0x5c,0x91,0x35,0x04,0x00,0x3f, -0xed,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xce,0xed,0x30,0x31,0x01,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x07,0x06,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, -0x02,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0x59,0x03,0x02,0xb0,0x03,0x02,0x3f,0x6c,0x92,0x53,0x69,0x96,0x60,0x2d,0x25,0x4f,0x79,0x54,0x5e,0x58,0x51,0x6c, -0x41,0x1b,0x82,0x82,0x61,0xaf,0x53,0x1d,0x3a,0x6c,0x9b,0x62,0x61,0xa1,0x73,0x40,0x42,0x75,0xa0,0x5e,0x64,0x9d,0x36,0x37,0x6e,0x6f,0x6f,0x39,0x5d,0x9c,0x71,0x40,0x20,0x3e,0x5a,0x3a,0x3a,0x69,0x4f,0x2e,0x62,0xa2,0xce,0x6c,0x81,0xd4,0x97,0x52,0xa4,0x1c,0x3b,0x5c,0x40,0x41,0x61,0x42,0x21,0x83,0x82,0x80,0x73,0x01,0x8e,0x0f, -0x1f,0x11,0x11,0x1e,0x0f,0x44,0x66,0x44,0x22,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x5f,0x6d,0x01,0x02,0x30,0x3d,0x54,0x69,0x6c,0xa6,0x71,0x3b,0x3c,0x72,0xa7,0x6b,0x6a,0xa6,0x72,0x3c,0x3e,0x3c,0x26,0x31,0x1c,0x0a,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x33,0x09,0x04,0x07,0x3b,0x61,0x83,0x4e,0x75, -0xad,0x71,0x37,0x3c,0x6e,0x9c,0x02,0xc1,0x47,0x6f,0x4c,0x27,0x2c,0x4e,0x6c,0x41,0x90,0x99,0x98,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x7d,0x05,0x9a,0x00,0x31,0x00,0x23,0x40,0x11,0x24,0x0a,0x24,0x0a,0x1b,0x13,0x05,0x91,0x10,0x10,0x15,0x2c,0x91,0x1b,0x13,0x15,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x12,0x39, -0x39,0x2f,0x2f,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xd5,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xa6,0x48,0x7e,0xaa,0x62,0x59, -0x9c,0x41,0xa8,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x02,0xed,0x43,0x68,0x47,0x24,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x28,0x29,0x01,0x51,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a, -0x82,0x53,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xb6,0x05,0xb3,0x00,0x4d,0x00,0x33,0x40,0x1b,0x08,0x05,0x92,0x4a,0x09,0x0c,0x19,0x37,0x1c,0x0c,0x26,0x37,0x37,0x26,0x0c,0x03,0x00,0x31,0x91,0x1c,0x04,0x3e,0x91,0x16,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x33,0xed, -0x32,0x30,0x31,0x21,0x2e,0x03,0x27,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x16,0x16, -0x17,0x04,0x49,0x19,0x65,0x8a,0xa7,0x6e,0x46,0xbb,0x59,0x41,0x98,0x51,0x68,0x90,0x5a,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x92,0x2f,0x27,0x99,0x67,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x49,0x2a,0x39,0x4f,0x30,0x15,0xa8,0x16,0x31,0x4f,0x39,0x2c,0x49,0x35,0x1d,0x2b,0x4a,0x62,0x6d,0x74,0x36, -0xb8,0xf1,0x2f,0x2e,0x4f,0x3a,0x23,0x04,0x1e,0x23,0x9c,0x15,0x19,0x02,0x2d,0x83,0x9e,0xb3,0x5e,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0x2b,0x57,0x81,0x57,0x88,0x88,0x57,0x81,0x57,0x2b,0x26,0x53,0x84,0x5f,0x5a,0x98,0x7e,0x65,0x4f, -0x39,0x13,0x2d,0xa7,0x7d,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x91,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x00,0x1a,0x91,0x30,0x05,0x05,0x21,0x38,0x91,0x27,0x13,0x10,0x21,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03, -0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xe9,0x20,0x54,0x5e,0x63,0x30,0x5a,0xa8,0x80,0x4d,0x08,0x0d,0x13,0x0b,0xb6,0x0d,0x15,0x0f,0x08,0x39,0x57,0x68,0x30,0x49,0x7f,0x5e,0x36,0xa8, -0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x03,0x5f,0x2a,0x3a,0x26,0x11,0x34,0x6d,0xaa,0x77,0x21,0x49,0x48,0x45,0x1d,0x1a,0x45,0x4b,0x4c,0x22,0x5f,0x74,0x3f,0x15,0x33,0x57,0x75,0x42,0xfe,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20, -0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xf3,0x05,0xb3,0x00,0x13,0x00,0x57,0x00,0x32,0x40,0x1c,0x38,0x33,0x2b,0x20,0x0f,0x91,0x57,0x48,0x00,0x52,0x10,0x52,0x02,0x52,0x52,0x3d,0x05,0x91,0x48,0x13,0x19,0x92,0x3d,0x04,0x26,0x92,0x33,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12, -0x39,0x2f,0x5d,0x12,0x39,0xed,0xce,0x32,0x11,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32, -0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x01,0xb1,0x39,0x5d,0x75,0x3c,0x3c,0x79,0x61,0x3d,0x39,0x5e,0x7a,0x42,0x42,0x76,0x5a,0x35,0x02,0x9a,0x18,0x2d,0x44,0x2b,0x36,0x48,0x2c,0x13,0x9e,0x1c,0x33,0x46,0x2a,0x4e,0x4f,0x15,0xb5,0x0e,0x32,0x5a,0x7b,0x49,0x2a,0x4e, -0x45,0x38,0x13,0x11,0x36,0x43,0x4d,0x29,0x5a,0x87,0x5b,0x2d,0x52,0x89,0xb3,0x61,0x69,0xbc,0x8c,0x52,0x59,0x8e,0xae,0x56,0x31,0x62,0x5b,0x51,0x20,0x01,0xde,0x56,0x83,0x59,0x2e,0x2d,0x58,0x82,0x55,0x55,0x83,0x59,0x2e,0x2b,0x56,0x83,0x01,0xc8,0x50,0x71,0x48,0x22,0x1e,0x33,0x45,0x27,0x2b,0x2b,0x2d,0x46,0x30,0x1a,0x62,0x54, -0x30,0x42,0x36,0x32,0x52,0x7b,0x53,0x2a,0x0f,0x23,0x38,0x29,0x28,0x38,0x24,0x10,0x32,0x6d,0xac,0x7a,0xfd,0xec,0x72,0xb9,0x81,0x46,0x46,0x84,0xbc,0x76,0x78,0xb8,0x7d,0x3f,0x11,0x24,0x37,0x27,0x00,0x02,0x00,0xa0,0x00,0x00,0x04,0x94,0x05,0xb1,0x00,0x0d,0x00,0x3f,0x00,0x22,0x40,0x11,0x06,0x91,0x3a,0x3a,0x3b,0x23,0x91,0x0e, -0x0e,0x2a,0x00,0x92,0x30,0x04,0x19,0x2a,0x12,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x33,0x2f,0xed,0x30,0x31,0x01,0x22,0x0e,0x02,0x15,0x15,0x3e,0x03,0x35,0x34,0x26,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32, -0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x3e,0x03,0x01,0xde,0x23,0x39,0x28,0x16,0x4e,0x6e,0x45,0x1f,0x3f,0x9a,0x63,0xab,0x7f,0x48,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x37,0x56,0x6b,0x33,0x48,0x87,0x69,0x3f,0xa2,0x33,0x57,0x73,0x41,0x44,0x6f,0x50,0x2b,0x2e,0x6b,0xb0,0x81,0x21,0x5b,0x66,0x6b,0x05,0x21,0x18,0x2a, -0x3c,0x24,0x83,0x0a,0x25,0x31,0x3b,0x20,0x30,0x3a,0xfe,0x36,0x35,0x71,0xb0,0x7b,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x5f,0x7b,0x47,0x1c,0x30,0x57,0x7d,0x4c,0xfe,0x8e,0x04,0x74,0x4c,0x77,0x50,0x2a,0x20,0x3f,0x5b,0x3b,0x34,0x66,0x5a,0x48,0x16,0xc5,0x2d,0x43,0x2c,0x16,0x00,0x01,0x00,0x82,0xff,0xe8,0x05,0x1d, -0x05,0x9a,0x00,0x42,0x00,0x20,0x40,0x10,0x14,0x3d,0x91,0x00,0x07,0x3c,0x3c,0x1e,0x28,0x03,0x31,0x91,0x1e,0x13,0x07,0x03,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x04,0x35,0x33,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35, -0x34,0x3e,0x02,0x37,0x33,0x06,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x04,0x28,0x3a,0x57,0x65,0x57,0x3a,0xb1,0x39,0x55,0x64,0x55,0x39,0x24,0x41,0x5c,0x37,0x45,0x77,0x56,0x31,0x5f,0x9f,0xd2,0x73,0x87,0xdd,0x9e,0x56,0x1f,0x34,0x42,0x23,0xc7,0x6d,0x68,0x3c,0x72, -0xa4,0x68,0x69,0x97,0x60,0x2d,0x2c,0x58,0x85,0x59,0x7f,0x79,0x46,0x6a,0x48,0x25,0x04,0x1a,0x31,0x32,0x20,0x1c,0x35,0x5c,0x50,0x2c,0x2d,0x1d,0x1c,0x36,0x5e,0x51,0x30,0x54,0x42,0x2d,0x08,0x09,0x3c,0x61,0x82,0x4e,0x75,0xad,0x71,0x37,0x5e,0xbc,0x01,0x1b,0xbd,0x7b,0xd3,0xaf,0x8d,0x36,0x94,0xfe,0xa4,0xd6,0x94,0xe0,0x96,0x4b, -0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x20,0x32,0x3e,0x00,0x02,0x00,0x6e,0xff,0xe8,0x04,0x60,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x15,0x03,0x22,0x91,0x14,0x0f,0x10,0x1a,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, -0x1e,0x02,0x17,0x11,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x04,0x60,0x47,0x82,0xb7,0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x63,0x5b,0x51,0x1f,0xa8,0xfc,0xbe,0xa2,0xa5,0xae,0xa5,0x2f,0x57,0x7e,0x4f,0x9d,0xaa,0x02,0x06,0x7f,0xc9,0x8c,0x4a,0x4b,0x90,0xcf,0x84,0x7d,0xc0,0x82,0x43, -0x10,0x24,0x39,0x28,0x02,0x17,0xfc,0x76,0xc7,0xcb,0xcb,0xc3,0x60,0x8c,0x5d,0x2d,0xb3,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x04,0xff,0x05,0xb3,0x00,0x41,0x00,0x56,0x00,0x33,0x40,0x1c,0x3f,0x53,0x91,0x17,0x12,0x30,0x00,0x00,0x00,0x10,0x00,0x02,0x23,0x00,0x23,0x00,0x09,0x29,0x92,0x1c,0x04,0x36,0x92,0x12,0x04,0x47,0x09,0x12, -0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xce,0x11,0x39,0xed,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x07,0x01,0x23,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35, -0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x17,0x36,0x36,0x13,0x1e,0x03,0x17,0x33,0x3e,0x03,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x02,0xa4,0x58,0x8c,0x62,0x33,0x2d,0xfe,0xfe,0x8e,0xfe,0x17,0x11,0x16,0x32,0x5a,0x7e,0x4b,0x29,0x4d,0x43,0x36,0x11,0x13,0x38,0x45,0x4e,0x2a,0x49,0x7c,0x5a,0x33,0x0e, -0xb7,0x15,0x4f,0x4e,0x2a,0x46,0x33,0x1c,0x9e,0x13,0x2c,0x48,0x36,0x22,0x3b,0x2b,0x19,0x0c,0x0c,0x39,0x4e,0xa7,0x33,0x05,0x10,0x10,0x0d,0x03,0x02,0x03,0x0e,0x11,0x11,0x05,0x72,0x18,0x67,0x72,0x4b,0x7e,0x37,0x03,0xd5,0x28,0x4c,0x6d,0x45,0x59,0x5a,0xfe,0x04,0x03,0xca,0x23,0x5b,0x32,0x51,0x76,0x4d,0x25,0x10,0x24,0x38,0x28, -0x29,0x38,0x23,0x0f,0x2a,0x53,0x7b,0x52,0x32,0x36,0x42,0x30,0x54,0x62,0x1a,0x30,0x46,0x2d,0x2b,0x2b,0x27,0x45,0x33,0x1e,0x18,0x2e,0x43,0x2b,0x1d,0x36,0x17,0x72,0x1d,0x20,0xfd,0x79,0x0b,0x20,0x25,0x25,0x0f,0x0f,0x25,0x25,0x21,0x0b,0xe1,0x2e,0x3a,0x53,0x53,0x1c,0x19,0x00,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x26,0x05,0x9a, -0x00,0x41,0x00,0x53,0x00,0x3f,0x40,0x25,0x02,0x41,0x09,0x4f,0x2d,0x10,0x06,0x05,0x0d,0x0d,0x4c,0x91,0x1f,0x32,0x05,0x05,0x42,0x91,0x3c,0x6f,0x32,0x7f,0x32,0xdf,0x32,0x03,0x32,0x3c,0x32,0x3c,0x01,0x27,0x91,0x16,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x10,0xce,0xed,0x33,0x2f, -0x12,0x17,0x39,0x30,0x31,0x01,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x25,0x22, -0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x03,0xad,0xa8,0x33,0x66,0x38,0x39,0x69,0x30,0x30,0x69,0x39,0x38,0x66,0x33,0x4a,0x8b,0xca,0x80,0x7e,0xc1,0x82,0x43,0x0f,0x10,0xb6,0x0f,0x16,0x2b,0x58,0x87,0x5c,0x57,0x85,0x5a,0x2f,0x2d,0x5a,0x5f,0x66,0x37,0x43,0x70,0x52,0x2e,0x2e,0x52,0x70,0x43,0x37,0x66,0x5f, -0x5a,0x2d,0xfe,0x88,0x17,0x32,0x2a,0x1b,0x1b,0x2a,0x32,0x17,0x66,0xbf,0x55,0x2a,0x5b,0x5f,0x63,0x05,0x9a,0xfe,0xac,0x2a,0x4d,0x21,0xa0,0x1d,0x46,0x26,0x26,0x45,0x1d,0xa0,0x20,0x4e,0x29,0xfe,0xb6,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x01,0x53,0x22, -0x3b,0x2c,0x19,0x2b,0x4f,0x6d,0x42,0x42,0x6d,0x4e,0x2b,0x19,0x2c,0x3b,0x22,0x0f,0x0f,0x23,0x39,0x2a,0x2a,0x3a,0x23,0x0f,0x55,0x40,0x20,0x37,0x28,0x17,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x22,0x91,0x11,0x13,0x1a,0x91,0x02,0x07,0x10,0x01,0x03,0x00,0x3f,0x3f,0x33,0xed, -0x3f,0xed,0x30,0x31,0x13,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x25,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0xa0,0xa8,0x1f,0x51,0x5b,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x03,0x42,0xaa,0x9d,0x4f,0x7e,0x57,0x2f,0xa5,0xae, -0xa5,0xa2,0x05,0x9a,0xfd,0xe9,0x28,0x39,0x24,0x10,0x43,0x82,0xc0,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x0a,0xbf,0xb3,0x2d,0x5d,0x8c,0x60,0xc3,0xcb,0xcb,0x00,0x01,0x00,0x50,0xff,0xe8,0x05,0xea,0x05,0xb2,0x00,0x5b,0x00,0x34,0x40,0x1d,0x14,0x4f,0x21,0x4f,0x21,0x4f,0x29,0x48,0x91,0x57,0x13,0x5b,0x44,0x15,0x2d,0x04, -0x08,0x34,0x91,0x3b,0x04,0x19,0x92,0x29,0x04,0x0e,0x92,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x26,0x26,0x27,0x22,0x06,0x06,0x15,0x14, -0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x01,0x01,0x16,0x16,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x01,0xd9,0x19,0x1d,0x24,0x49, -0x6e,0x4a,0x20,0x48,0x1f,0x3c,0x4b,0x39,0x39,0x3b,0x3d,0x01,0xc9,0xfe,0xb5,0x0f,0x21,0x12,0x09,0x1a,0x16,0x1c,0x17,0xa4,0x11,0x15,0x25,0x3d,0x4e,0x2a,0x48,0x6a,0x2a,0x01,0x32,0x01,0xc4,0x23,0x1b,0x29,0x1e,0x35,0x51,0x2c,0x2b,0x66,0x28,0x3d,0x5a,0x3b,0x1d,0x3e,0x3e,0xfe,0x21,0x01,0x40,0x0f,0x1f,0x15,0x20,0x18,0x1c,0x17, -0xae,0x11,0x15,0x26,0x3f,0x50,0x2a,0x48,0x6f,0x2a,0xfe,0xd9,0x01,0x7c,0x24,0x54,0x28,0x2f,0x58,0x44,0x29,0x0d,0x0f,0xb5,0x47,0x3f,0x2e,0x30,0x61,0x26,0x01,0x45,0x02,0x1e,0x18,0x0f,0x01,0x08,0x1f,0x1d,0x26,0x5b,0x2c,0x2b,0x50,0x2c,0x37,0x52,0x37,0x1b,0x3f,0x45,0xfe,0x10,0x01,0x42,0x19,0x34,0x14,0x1a,0x22,0x1e,0x17,0xa4, -0x11,0x15,0x22,0x3a,0x4f,0x2d,0x3c,0x6d,0x2c,0xfe,0xad,0xfd,0xfa,0x18,0x12,0x01,0x04,0x24,0x1d,0x26,0x55,0x2c,0x2b,0x50,0x2c,0x37,0x54,0x38,0x1d,0x3f,0x45,0x01,0xe3,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x04,0x46,0x05,0x9a,0x00,0x52,0x00,0x2e,0x40,0x19,0x31,0x16,0x91,0x13,0x39,0x0d,0x91,0x0a,0x5f,0x0a,0x01,0x13,0x4b,0x0a, -0x0a,0x4b,0x13,0x03,0x22,0x00,0x91,0x43,0x13,0x22,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14, -0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x58,0x4a,0x76,0x52,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x2a,0x46,0x58,0x5d,0x58,0x46,0x2a,0xb1,0x2a,0x46,0x58,0x5d,0x58,0x46, -0x2a,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17,0x3f,0x7c,0xbb,0x7b,0x6f,0xbd,0x8a,0x4e,0x1e,0xb7,0x12,0x13,0x33,0x5c,0x7e,0x7e,0x13,0x2a,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x3b,0x1e,0x24,0x16,0x0e,0x13,0x1d,0x33,0x4f,0x3b,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44, -0x32,0x27,0x49,0x3c,0x29,0x07,0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x00,0x01,0x00,0x82,0xff,0xe8,0x04,0xcc,0x05,0x9a,0x00,0x57,0x00,0x2c,0x40,0x17,0x20,0x4c,0x91,0x49,0x18,0x55,0x91,0x52,0x5f,0x49,0x01,0x49, -0x52,0x49,0x52,0x09,0x3f,0x91,0x2a,0x13,0x35,0x09,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35,0x34, -0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x04,0x1b,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0xb1,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17, -0x3f,0x7c,0xbb,0x7b,0x87,0xdd,0x9e,0x56,0x1e,0x33,0x43,0x24,0xc9,0x38,0x50,0x33,0x17,0x3b,0x70,0xa2,0x68,0x47,0x73,0x50,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x04,0x47,0x1e,0x25,0x18,0x11,0x14,0x1e,0x32,0x4b,0x38,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44,0x32,0x27,0x49,0x3c,0x29,0x07, -0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x5e,0xbc,0x01,0x1b,0xbd,0x7c,0xd2,0xaf,0x8d,0x36,0x4a,0xa0,0xb0,0xc1,0x6b,0x94,0xe0,0x96,0x4b,0x13,0x29,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x00,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29, -0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1f,0x04,0x37,0xee,0x08,0x08,0x10,0x15,0x91,0x0f,0x0a,0x13,0x00,0x27,0x91,0x01,0x06,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0xed,0x30,0x31,0x25,0x15,0x0e,0x03,0x23,0x22,0x27,0x06,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x17,0x2e,0x03,0x35,0x34,0x12, -0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x36,0x36,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x12,0x17,0x3e,0x03,0x05,0xe4,0x35,0x64,0x6d,0x7c,0x4c,0x82,0x72,0x6b,0x74,0x56,0x83,0x6f,0x63,0x34,0x2f,0x5a,0x5f,0x67,0x3c,0x5c,0x83,0x56,0x28,0x5d,0xaf,0xfa,0x9e,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x78, -0x40,0x7b,0xb1,0x70,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0xd8,0xb0,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0x01,0x04,0xb4,0x5e,0x5d,0xae,0xf8,0x9c,0xe2,0xfe,0xab,0x5d,0x04,0x2f,0x02,0x54,0x85,0xc8,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0xfe, -0xc7,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0xbb,0x00,0x34,0x00,0x26,0x40,0x13,0x0c,0x0a,0x91,0x1b,0x2d,0x1b,0x2d,0x15,0x00,0x91,0x25,0x13,0x10,0x91,0x15,0x15,0x18,0x13,0x04,0x00,0x3f,0x33,0x33,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34, -0x2e,0x02,0x23,0x23,0x35,0x01,0x23,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x37,0x15,0x01,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x78,0x64,0x8a,0x54,0x25,0x2c,0x58,0x85,0x59,0xc5,0x01,0x64,0x03,0x77,0x76,0xaa,0xb7,0x2b,0x8d,0xce,0x67,0xff,0x81, -0xfe,0x76,0x03,0x8b,0xb9,0x6d,0x2d,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x7f,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x4b,0x01,0xdb,0x18,0x41,0x97,0x40,0x21,0x20,0x3f,0xfd,0xf0,0x02,0x07,0x53,0x7c,0x97,0x4b,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69, -0x48,0x25,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0x9a,0x00,0x44,0x00,0x2e,0x40,0x1a,0x3d,0x91,0x08,0x0f,0x36,0x91,0x33,0x00,0x33,0x10,0x33,0x02,0x08,0x33,0x21,0x21,0x33,0x08,0x03,0x00,0x29,0x91,0x19,0x13,0x00,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x30,0x31,0x01,0x33, -0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x01,0x17,0xaf,0x09,0x1f,0x3d,0x5a,0x3b, -0x01,0x91,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0x70,0x6a,0x4f,0x6d,0x45,0x1f,0xfe,0x58,0x93,0x69,0x3b,0x06,0x05,0x9a,0x24,0x1b,0x23,0x29,0x15,0x05,0xda,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83, -0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x55,0x17,0x35,0x57,0x41,0x14,0x2c,0x00,0x03,0x00,0x6e,0xff,0xe8,0x04,0x29,0x05,0xb2,0x00,0x29,0x00,0x38,0x00,0x47,0x00,0x35,0x40,0x1c,0x24,0x2a,0x91,0x13,0x27,0x13, -0x01,0x39,0x91,0x12,0x28,0x12,0x2f,0x13,0x01,0x13,0x12,0x13,0x12,0x07,0x2e,0x91,0x1e,0x04,0x44,0x91,0x07,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x01,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x22, -0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x13,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x04,0x29,0xad,0x35,0x63,0x8e,0x5a,0x54,0x91,0x6c,0x3d,0x3e,0x6f,0x9a,0x5c,0xc9,0xc9,0x5c,0x9a,0x6f,0x3e, -0x3d,0x6a,0x92,0x55,0x5a,0x8e,0x63,0x35,0xad,0xad,0xad,0xfe,0xb1,0x73,0x6b,0x2f,0x53,0x3e,0x24,0x25,0x42,0x5c,0x36,0xc9,0xc9,0x36,0x5c,0x42,0x25,0x24,0x3e,0x53,0x2f,0x68,0x76,0x01,0xe6,0x94,0x5a,0x88,0x5b,0x2d,0x29,0x52,0x7a,0x52,0x51,0x7c,0x55,0x2b,0xa2,0x2b,0x55,0x7c,0x51,0x52,0x7a,0x52,0x29,0x2e,0x5a,0x88,0x5a,0x94, -0x96,0xa2,0x01,0x38,0x94,0x69,0x6c,0x13,0x2a,0x44,0x31,0x2e,0x44,0x2e,0x17,0xfe,0x32,0x17,0x2e,0x45,0x2d,0x31,0x44,0x2a,0x13,0x6b,0x6a,0x00,0x00,0x03,0x00,0x6e,0xff,0xf1,0x05,0xd9,0x05,0xa7,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x2d,0x40,0x17,0x37,0x91,0x04,0x04,0x20,0x91,0x1d,0x2d,0x92,0x0e,0x0e,0x2a,0x92,0x13,0x1d,0x13, -0x1d,0x13,0x01,0x10,0x03,0x01,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x30,0x31,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23, -0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x03,0x78,0xa8,0x2b,0x7c,0xd0,0x97,0x54,0x54,0x97,0xd1,0x7d,0x29,0xa8,0x2a,0x7d,0xd0,0x96,0x54,0x55,0x97,0xcf,0x7a,0x2c,0x2c,0x5a,0x91,0x64,0x36,0x37,0x65,0x91,0x5a,0xd2,0x29,0x59,0x91,0x67,0x38,0x35,0x64,0x92,0x5c,0xba,0xc9,0xc9,0x54,0x96,0xd1,0x7d,0x7b,0xc9,0x8f, -0x4d,0x95,0x95,0x4f,0x8f,0xc8,0x7a,0x7e,0xd1,0x96,0x53,0x03,0xca,0xfc,0xcc,0x39,0x6b,0x9a,0x62,0x5b,0x95,0x6a,0x3a,0xfc,0xcc,0x03,0x34,0x39,0x69,0x96,0x5d,0x62,0x9b,0x6a,0x38,0x00,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0xc1,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x29,0x0a,0x1a,0x31,0x2b,0x91,0x36,0x13,0x15,0x0f,0x91,0x1a, -0x04,0x00,0x3f,0xed,0xcd,0x3f,0xed,0xcd,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x10,0x21,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x76,0x4c,0x86,0xb8,0x6c, -0x49,0x81,0x62,0x39,0x28,0x4c,0x70,0x49,0x4c,0x76,0x50,0x29,0xaa,0x54,0x88,0xae,0x59,0x71,0xb0,0x79,0x3f,0x4c,0x85,0xb6,0x6a,0x46,0x82,0x65,0x3d,0x01,0x74,0x44,0x89,0x6f,0x46,0xab,0x60,0x9d,0xc7,0x67,0x6b,0xc5,0x96,0x5a,0x01,0x85,0x6f,0x92,0x5f,0x37,0x13,0x0c,0x25,0x3c,0x5b,0x43,0x33,0x52,0x3b,0x20,0x24,0x42,0x5c,0x38, -0x6f,0x99,0x5f,0x2b,0x35,0x63,0x8b,0x55,0x66,0x8d,0x60,0x3a,0x14,0x0d,0x24,0x3e,0x5e,0x47,0xfe,0xfa,0x1d,0x41,0x6a,0x4e,0x74,0xa3,0x67,0x2f,0x2a,0x60,0x9e,0x00,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xc3,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x3d,0x23,0x91,0x0e,0x38,0x38,0x16,0x2d,0x1d,0x03,0x05,0x91,0x16,0x13,0x00,0x3f, -0xed,0x3f,0x33,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x48, -0x2f,0x5a,0x85,0x57,0x58,0x86,0x5a,0x2e,0x16,0x0f,0xb6,0x10,0x0f,0x4a,0x87,0xbe,0x75,0x80,0xca,0x8b,0x4a,0xa8,0x36,0x5e,0x7f,0x49,0x30,0x68,0x57,0x39,0x08,0x0f,0x15,0x0d,0xb6,0x0b,0x13,0x0d,0x08,0x4d,0x80,0xa8,0x5a,0x30,0x63,0x5e,0x54,0x20,0x01,0xdc,0x53,0x82,0x5a,0x2f,0x2b,0x4b,0x68,0x3d,0x30,0x53,0x20,0x2a,0x53,0x27, -0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfe,0x42,0x75,0x57,0x33,0x19,0x44,0x78,0x5f,0x22,0x48,0x47,0x40,0x1a,0x1d,0x45,0x48,0x49,0x21,0x77,0xaa,0x6d,0x34,0x11,0x26,0x3a,0x2a,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x3f,0x00,0x26,0x40,0x15,0x1e,0x03,0x35,0x91,0x11,0x00,0x40,0x09, -0x0d,0x48,0x00,0x00,0x16,0x3d,0x91,0x26,0x04,0x0b,0x91,0x16,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xce,0xed,0x39,0x39,0x30,0x31,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, -0x02,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x02,0x87,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f,0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0xfe,0x14,0x33,0x5b,0x7f,0x4d, -0xb8,0xc4,0x32,0x5f,0x89,0x58,0xb0,0xb4,0x01,0x7f,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e,0x2a,0x2a,0x50,0x70,0x47,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0x02,0x19,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0xca,0x00,0x01, -0x00,0x82,0xff,0xd5,0x05,0x14,0x05,0xb2,0x00,0x24,0x00,0x22,0x40,0x10,0x03,0x22,0x00,0x24,0x12,0x24,0x12,0x24,0x01,0x18,0x91,0x0d,0x04,0x02,0x01,0x13,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x39,0x39,0x30,0x31,0x25,0x01,0x35,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, -0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x25,0x04,0xd6,0xfc,0x21,0x01,0x73,0x71,0xb5,0x7e,0x44,0x59,0x9d,0xd8,0x7f,0x83,0xd6,0x99,0x53,0xaa,0x36,0x68,0x9a,0x63,0x65,0x9c,0x6b,0x37,0x4d,0x94,0xd5,0x89,0x01,0x01,0x6a,0xe5,0xfe,0xf0,0x9d,0x6b,0x20,0x75,0xa2,0xcd,0x78,0x84,0xdd,0x9f,0x59,0x50,0x96,0xd5,0x85, -0x5d,0x9d,0x70,0x3f,0x48,0x7e,0xaa,0x61,0x68,0xb8,0x92,0x65,0x15,0x65,0x00,0x01,0x00,0x62,0xff,0xe8,0x04,0xad,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x31,0x12,0x05,0x2c,0x91,0x26,0x21,0x04,0x10,0x91,0x0a,0x05,0x13,0x00,0x3f,0xcd,0xed,0x3f,0xcd,0xed,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35, -0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xad,0x5a,0x96,0xc5,0x6b,0x67,0xc7,0x9d,0x60,0xab,0x46,0x6f,0x89,0x44,0x01,0x74,0x3d,0x65,0x82,0x46,0x6a,0xb6,0x85,0x4c,0x42,0x7b, -0xaf,0x6d,0x59,0xad,0x89,0x54,0xaa,0x29,0x50,0x76,0x4c,0x49,0x70,0x4d,0x27,0x39,0x61,0x82,0x49,0x6c,0xb8,0x86,0x4c,0x01,0x85,0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x47,0x5e,0x3e,0x24,0x0d,0x14,0x3a,0x60,0x8d,0x66,0x53,0x8b,0x63,0x37,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52, -0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29,0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1e,0x13,0x0f,0x14,0x91,0x0e,0x09,0x04,0x37,0xee,0x07,0x07,0x29,0x26,0x91,0x00,0x05,0x04,0x00,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0x33,0xed,0x32,0x3f,0xed,0x30,0x31, -0x13,0x3e,0x03,0x33,0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x27,0x1e,0x03,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x06,0x06,0x07,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x27,0x0e,0x03,0x64,0x34,0x65,0x6d,0x7c,0x4c,0x82,0x72,0x6a,0x75,0x55,0x84,0x6f,0x62,0x35,0x2f, -0x5a,0x5f,0x67,0x3c,0x5b,0x84,0x56,0x28,0x5d,0xaf,0xfb,0x9d,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x66,0xde,0x40,0x7b,0xb0,0x71,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0x05,0x72,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0xfe,0xfc,0xb4,0x5e, -0x5d,0xae,0xf8,0x9c,0xe2,0x01,0x55,0x5d,0x04,0x2f,0x26,0xfd,0xd2,0x86,0xc7,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0x01,0x39,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x05,0xbe,0x05,0xb2,0x00,0x13,0x00,0x27,0x00,0x10,0xb7,0x14,0x91,0x0a,0x04,0x1e,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22, -0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x03,0x15,0x98,0xf6,0xb0,0x5f,0x60,0xb4,0x01,0x01,0xa0,0x94,0xf2,0xac,0x5f,0x61,0xb2,0xfb,0x8f,0x72,0xbc,0x87,0x4a,0x48,0x83,0xb8,0x70,0x76,0xbd,0x85, -0x47,0x44,0x81,0xb9,0x18,0x6a,0xc0,0x01,0x0a,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbe,0xfe,0xf5,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x05,0x32,0x56,0x9c,0xd9,0x84,0x83,0xd9,0x9b,0x55,0x4f,0x96,0xda,0x8a,0x8d,0xdd,0x98,0x50,0x00,0x00,0x03,0x00,0xbe,0x02,0x27,0x03,0x98,0x06,0x8f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x1a,0x40,0x09, -0x0b,0x09,0x09,0x02,0x05,0x07,0x07,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x05,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x31,0xa9,0xa9,0xfe,0xe8,0xa9,0xa9,0x02,0x27,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x67,0x02,0x29,0x00,0x00,0x00,0x00,0x01, -0x00,0x00,0xc2,0x66,0x00,0x01,0x20,0x64,0xc0,0x00,0x00,0x0d,0x02,0x58,0x00,0x05,0x00,0x55,0xff,0xcd,0x00,0x05,0x00,0x56,0xff,0xbe,0x00,0x05,0x00,0xe4,0xff,0xbe,0x00,0x05,0x00,0xfb,0xff,0xbe,0x00,0x05,0x01,0x1b,0xff,0xcd,0x00,0x05,0x01,0x1d,0xff,0xcd,0x00,0x05,0x01,0x1f,0xff,0xbe,0x00,0x05,0x01,0x73,0xff,0xcd,0x00,0x05, -0x01,0x75,0xff,0xbe,0x00,0x05,0x01,0xd5,0xff,0x6f,0x00,0x05,0x02,0x2b,0xff,0xbc,0x00,0x05,0x02,0x3e,0xff,0xbe,0x00,0x0a,0x00,0x55,0xff,0xcd,0x00,0x0a,0x00,0x56,0xff,0xbe,0x00,0x0a,0x00,0xe4,0xff,0xbe,0x00,0x0a,0x00,0xfb,0xff,0xbe,0x00,0x0a,0x01,0x1b,0xff,0xcd,0x00,0x0a,0x01,0x1d,0xff,0xcd,0x00,0x0a,0x01,0x1f,0xff,0xbe, -0x00,0x0a,0x01,0x73,0xff,0xcd,0x00,0x0a,0x01,0x75,0xff,0xbe,0x00,0x0a,0x01,0xd5,0xff,0x6f,0x00,0x0a,0x02,0x2b,0xff,0xbc,0x00,0x0a,0x02,0x3e,0xff,0xbe,0x00,0x0b,0x00,0x4d,0x00,0xe9,0x00,0x0b,0x01,0x64,0x00,0xe9,0x00,0x0d,0x00,0x24,0xff,0x5a,0x00,0x0d,0x00,0x2d,0xff,0x66,0x00,0x0d,0x00,0x46,0xff,0x9a,0x00,0x0d,0x00,0x47, -0xff,0x9a,0x00,0x0d,0x00,0x48,0xff,0x9a,0x00,0x0d,0x00,0x4a,0xff,0x9a,0x00,0x0d,0x00,0x52,0xff,0x9a,0x00,0x0d,0x00,0x54,0xff,0x9a,0x00,0x0d,0x00,0xa9,0xff,0x58,0x00,0x0d,0x00,0xf8,0xff,0x9a,0x00,0x0d,0x00,0xfd,0xff,0x9a,0x00,0x0d,0x00,0xff,0xff,0x9a,0x00,0x0d,0x01,0x00,0xff,0x9a,0x00,0x0d,0x01,0x03,0xff,0x5a,0x00,0x0d, -0x01,0x05,0xff,0x5a,0x00,0x0d,0x01,0x08,0xff,0x9a,0x00,0x0d,0x01,0x0b,0xff,0x9a,0x00,0x0d,0x01,0x45,0xff,0x5a,0x00,0x0d,0x01,0x48,0xff,0x9a,0x00,0x0d,0x01,0x52,0xff,0x9a,0x00,0x0d,0x01,0x54,0xff,0x9a,0x00,0x0d,0x01,0x56,0xff,0x9a,0x00,0x0d,0x01,0x63,0xff,0x66,0x00,0x0d,0x01,0x85,0xff,0x5a,0x00,0x0d,0x01,0x87,0xff,0x5a, -0x00,0x0d,0x01,0xa9,0xff,0x58,0x00,0x0d,0x01,0xb0,0xff,0x58,0x00,0x0d,0x01,0xe7,0xff,0x58,0x00,0x0d,0x02,0x0c,0xff,0x98,0x00,0x0d,0x02,0x15,0xff,0x98,0x00,0x0d,0x02,0x18,0xff,0x98,0x00,0x0d,0x02,0x1b,0xff,0x98,0x00,0x0d,0x02,0x27,0xff,0x98,0x00,0x0d,0x02,0x2a,0xff,0x98,0x00,0x0f,0x00,0xb4,0xff,0x31,0x00,0x0f,0x00,0xb5, -0xff,0x31,0x00,0x0f,0x00,0xb6,0xff,0x31,0x00,0x0f,0x00,0xb7,0xff,0x31,0x00,0x10,0x01,0x33,0xff,0xdb,0x00,0x10,0x01,0xd3,0xff,0xe7,0x00,0x10,0x02,0x37,0xff,0xdb,0x00,0x11,0x00,0xb4,0xff,0x31,0x00,0x11,0x00,0xb5,0xff,0x3d,0x00,0x11,0x00,0xb6,0xff,0x31,0x00,0x11,0x00,0xb7,0xff,0x3d,0x00,0x1e,0x02,0x37,0xff,0xdb,0x00,0x22, -0x01,0xcb,0xff,0xe7,0x00,0x22,0x02,0x37,0xff,0xdb,0x00,0x24,0x00,0x0d,0xff,0x7f,0x00,0x24,0x00,0x0f,0x00,0x44,0x00,0x24,0x00,0x1e,0x00,0x44,0x00,0x24,0x00,0x26,0xff,0xe5,0x00,0x24,0x00,0x2a,0xff,0xe5,0x00,0x24,0x00,0x2d,0x00,0x5e,0x00,0x24,0x00,0x32,0xff,0xe5,0x00,0x24,0x00,0x37,0xff,0x6d,0x00,0x24,0x00,0x38,0xff,0xe5, -0x00,0x24,0x00,0x39,0xff,0x8b,0x00,0x24,0x00,0x3a,0xff,0xb6,0x00,0x24,0x00,0x3c,0xff,0x64,0x00,0x24,0x00,0x3d,0x00,0x3b,0x00,0x24,0x00,0x57,0xff,0xe5,0x00,0x24,0x00,0x59,0xff,0xd5,0x00,0x24,0x00,0x5a,0xff,0xe5,0x00,0x24,0x00,0x5c,0xff,0xdb,0x00,0x24,0x00,0x8d,0xff,0x9a,0x00,0x24,0x00,0xb4,0xff,0x66,0x00,0x24,0x00,0xb5, -0xff,0x3f,0x00,0x24,0x00,0xb6,0xff,0x66,0x00,0x24,0x00,0xb7,0xff,0x3f,0x00,0x24,0x00,0xba,0xff,0xc1,0x00,0x24,0x00,0xbb,0xff,0x64,0x00,0x24,0x00,0xe5,0x00,0x3b,0x00,0x24,0x00,0xea,0xff,0x64,0x00,0x24,0x00,0xeb,0xff,0xdb,0x00,0x24,0x00,0xf7,0xff,0xe5,0x00,0x24,0x00,0xfc,0xff,0xe5,0x00,0x24,0x00,0xfe,0xff,0xe5,0x00,0x24, -0x01,0x18,0xff,0xe5,0x00,0x24,0x01,0x20,0xff,0x6d,0x00,0x24,0x01,0x21,0xff,0xe5,0x00,0x24,0x01,0x22,0xff,0x6d,0x00,0x24,0x01,0x23,0xff,0xe5,0x00,0x24,0x01,0x24,0xff,0xe5,0x00,0x24,0x01,0x26,0xff,0xe5,0x00,0x24,0x01,0x28,0x00,0x3b,0x00,0x24,0x01,0x2a,0x00,0x3b,0x00,0x24,0x01,0x47,0xff,0xe5,0x00,0x24,0x01,0x51,0xff,0xe5, -0x00,0x24,0x01,0x53,0xff,0xe5,0x00,0x24,0x01,0x55,0xff,0xe5,0x00,0x24,0x01,0x63,0x00,0x5e,0x00,0x24,0x01,0x6e,0xff,0xe5,0x00,0x24,0x01,0x70,0xff,0xe5,0x00,0x24,0x01,0x76,0xff,0x6d,0x00,0x24,0x01,0x77,0xff,0xe5,0x00,0x24,0x01,0x78,0xff,0xe5,0x00,0x24,0x01,0x7a,0xff,0xe5,0x00,0x24,0x01,0x7c,0xff,0xe5,0x00,0x24,0x01,0x7e, -0xff,0xe5,0x00,0x24,0x01,0x80,0xff,0xb6,0x00,0x24,0x01,0x81,0xff,0xe5,0x00,0x24,0x01,0x82,0xff,0x64,0x00,0x24,0x01,0x83,0xff,0xdb,0x00,0x24,0x01,0x89,0xff,0xe5,0x00,0x24,0x01,0x8c,0xff,0xb6,0x00,0x24,0x01,0x8d,0xff,0xe5,0x00,0x24,0x01,0x8e,0xff,0xb6,0x00,0x24,0x01,0x8f,0xff,0xe5,0x00,0x24,0x01,0x90,0xff,0xb6,0x00,0x24, -0x01,0x91,0xff,0xe5,0x00,0x24,0x01,0x92,0xff,0x64,0x00,0x24,0x01,0x93,0xff,0xdb,0x00,0x25,0x00,0x37,0xff,0xa4,0x00,0x25,0x00,0x3c,0xff,0xbe,0x00,0x25,0x00,0xbb,0xff,0xbe,0x00,0x25,0x00,0xc4,0xff,0xb2,0x00,0x25,0x00,0xc5,0xff,0xb2,0x00,0x25,0x00,0xea,0xff,0xbe,0x00,0x25,0x01,0x20,0xff,0xa4,0x00,0x25,0x01,0x22,0xff,0xa4, -0x00,0x25,0x01,0x76,0xff,0xa4,0x00,0x25,0x01,0x82,0xff,0xbe,0x00,0x25,0x01,0x92,0xff,0xbe,0x00,0x26,0x00,0x22,0x00,0x02,0x00,0x26,0x00,0x26,0xff,0xc9,0x00,0x26,0x00,0x2a,0xff,0xc9,0x00,0x26,0x00,0x32,0xff,0xe5,0x00,0x26,0x00,0x34,0xff,0xc9,0x00,0x26,0x00,0x64,0xff,0xc9,0x00,0x26,0x00,0x67,0xff,0xc9,0x00,0x26,0x00,0x77, -0x00,0x1d,0x00,0x26,0x00,0x92,0xff,0xc9,0x00,0x26,0x00,0xaa,0xff,0xcf,0x00,0x26,0x00,0xaf,0xff,0xc9,0x00,0x26,0x00,0xb0,0xff,0xc9,0x00,0x26,0x00,0xbe,0xff,0xcf,0x00,0x26,0x00,0xd0,0xff,0xc9,0x00,0x26,0x00,0xd1,0xff,0xc9,0x00,0x26,0x00,0xd2,0xff,0xc9,0x00,0x26,0x00,0xf7,0xff,0xc9,0x00,0x26,0x00,0xfc,0xff,0xc9,0x00,0x26, -0x00,0xfe,0xff,0xc9,0x00,0x26,0x01,0x18,0xff,0xe5,0x00,0x26,0x01,0x47,0xff,0xc9,0x00,0x26,0x01,0x51,0xff,0xc9,0x00,0x26,0x01,0x53,0xff,0xc9,0x00,0x26,0x01,0x55,0xff,0xc9,0x00,0x26,0x01,0x5c,0x00,0x1d,0x00,0x26,0x01,0x5e,0x00,0x1d,0x00,0x26,0x01,0x60,0x00,0x1d,0x00,0x26,0x01,0x6e,0xff,0xe5,0x00,0x26,0x01,0x70,0xff,0xe5, -0x00,0x26,0x01,0x89,0xff,0xe5,0x00,0x27,0x00,0x0f,0xff,0x7f,0x00,0x27,0x00,0x11,0xff,0x7f,0x00,0x27,0x00,0x24,0xff,0xdf,0x00,0x27,0x00,0x37,0xff,0xa4,0x00,0x27,0x00,0x3b,0xff,0xcb,0x00,0x27,0x00,0x3d,0xff,0xcf,0x00,0x27,0x00,0x62,0xff,0xdf,0x00,0x27,0x00,0x63,0xff,0xdf,0x00,0x27,0x00,0x91,0xff,0xb6,0x00,0x27,0x00,0xac, -0xff,0x7f,0x00,0x27,0x00,0xad,0xff,0xdf,0x00,0x27,0x00,0xae,0xff,0xdf,0x00,0x27,0x00,0xbb,0xff,0xf6,0x00,0x27,0x00,0xc4,0xff,0x8b,0x00,0x27,0x00,0xc5,0xff,0x8b,0x00,0x27,0x00,0xc7,0xff,0xdf,0x00,0x27,0x00,0xc9,0xff,0xdf,0x00,0x27,0x00,0xe5,0xff,0xcf,0x00,0x27,0x01,0x03,0xff,0xdf,0x00,0x27,0x01,0x05,0xff,0xdf,0x00,0x27, -0x01,0x20,0xff,0xa4,0x00,0x27,0x01,0x22,0xff,0xa4,0x00,0x27,0x01,0x28,0xff,0xcf,0x00,0x27,0x01,0x2a,0xff,0xcf,0x00,0x27,0x01,0x45,0xff,0xdf,0x00,0x27,0x01,0x76,0xff,0xa4,0x00,0x27,0x01,0x85,0xff,0xdf,0x00,0x27,0x01,0x87,0xff,0xdf,0x00,0x28,0x00,0x24,0x00,0x0a,0x00,0x28,0x00,0x2d,0x00,0x44,0x00,0x28,0x00,0x37,0x00,0x04, -0x00,0x28,0x00,0x3a,0x00,0x1d,0x00,0x28,0x00,0x3b,0x00,0x08,0x00,0x28,0x00,0x62,0x00,0x0a,0x00,0x28,0x00,0x63,0x00,0x0a,0x00,0x28,0x00,0x77,0x00,0x12,0x00,0x28,0x00,0xad,0x00,0x0a,0x00,0x28,0x00,0xae,0x00,0x0a,0x00,0x28,0x00,0xc7,0x00,0x0a,0x00,0x28,0x00,0xc9,0x00,0x0a,0x00,0x28,0x01,0x03,0x00,0x0a,0x00,0x28,0x01,0x05, -0x00,0x0a,0x00,0x28,0x01,0x20,0x00,0x04,0x00,0x28,0x01,0x22,0x00,0x04,0x00,0x28,0x01,0x45,0x00,0x0a,0x00,0x28,0x01,0x5c,0x00,0x12,0x00,0x28,0x01,0x5e,0x00,0x12,0x00,0x28,0x01,0x60,0x00,0x12,0x00,0x28,0x01,0x63,0x00,0x44,0x00,0x28,0x01,0x76,0x00,0x04,0x00,0x28,0x01,0x80,0x00,0x1d,0x00,0x28,0x01,0x85,0x00,0x0a,0x00,0x28, -0x01,0x87,0x00,0x0a,0x00,0x28,0x01,0x8c,0x00,0x1d,0x00,0x28,0x01,0x8e,0x00,0x1d,0x00,0x28,0x01,0x90,0x00,0x1d,0x00,0x29,0x00,0x0f,0xff,0x66,0x00,0x29,0x00,0x11,0xff,0x66,0x00,0x29,0x00,0x24,0xff,0x7b,0x00,0x29,0x00,0x2d,0xff,0xbe,0x00,0x29,0x00,0x36,0xff,0xe5,0x00,0x29,0x00,0x37,0x00,0x0e,0x00,0x29,0x00,0x44,0xff,0xb4, -0x00,0x29,0x00,0x49,0x00,0x0a,0x00,0x29,0x00,0x62,0xff,0x7b,0x00,0x29,0x00,0x63,0xff,0x7b,0x00,0x29,0x00,0x77,0x00,0x27,0x00,0x29,0x00,0x91,0xff,0x4c,0x00,0x29,0x00,0xac,0xff,0x66,0x00,0x29,0x00,0xad,0xff,0x7b,0x00,0x29,0x00,0xae,0xff,0x7b,0x00,0x29,0x00,0xc4,0xff,0x4a,0x00,0x29,0x00,0xc5,0xff,0x4a,0x00,0x29,0x00,0xc7, -0xff,0x7b,0x00,0x29,0x00,0xc9,0xff,0x7b,0x00,0x29,0x00,0xe3,0xff,0xe5,0x00,0x29,0x00,0xfa,0xff,0xe5,0x00,0x29,0x01,0x03,0xff,0x7b,0x00,0x29,0x01,0x05,0xff,0x7b,0x00,0x29,0x01,0x06,0xff,0xb4,0x00,0x29,0x01,0x1e,0xff,0xe5,0x00,0x29,0x01,0x20,0x00,0x0e,0x00,0x29,0x01,0x22,0x00,0x0e,0x00,0x29,0x01,0x45,0xff,0x7b,0x00,0x29, -0x01,0x5c,0x00,0x27,0x00,0x29,0x01,0x5e,0x00,0x27,0x00,0x29,0x01,0x60,0x00,0x27,0x00,0x29,0x01,0x63,0xff,0xbe,0x00,0x29,0x01,0x74,0xff,0xe5,0x00,0x29,0x01,0x76,0x00,0x0e,0x00,0x29,0x01,0x85,0xff,0x7b,0x00,0x29,0x01,0x87,0xff,0x7b,0x00,0x29,0x01,0x88,0xff,0xb4,0x00,0x29,0x02,0x3d,0xff,0xe5,0x00,0x2a,0x00,0x37,0xff,0xcf, -0x00,0x2a,0x00,0x39,0xff,0xe5,0x00,0x2a,0x00,0x5c,0xff,0xe5,0x00,0x2a,0x00,0xba,0xff,0xe5,0x00,0x2a,0x00,0xeb,0xff,0xe5,0x00,0x2a,0x01,0x20,0xff,0xcf,0x00,0x2a,0x01,0x22,0xff,0xcf,0x00,0x2a,0x01,0x76,0xff,0xcf,0x00,0x2a,0x01,0x83,0xff,0xe5,0x00,0x2a,0x01,0x93,0xff,0xe5,0x00,0x2d,0x00,0x0f,0xff,0x9a,0x00,0x2d,0x00,0x11, -0xff,0x9a,0x00,0x2d,0x00,0x24,0xff,0xdb,0x00,0x2d,0x00,0x2d,0xff,0xbe,0x00,0x2d,0x00,0x44,0xff,0xe5,0x00,0x2d,0x00,0x62,0xff,0xdb,0x00,0x2d,0x00,0x63,0xff,0xdb,0x00,0x2d,0x00,0x69,0xff,0xe5,0x00,0x2d,0x00,0x6a,0xff,0xe5,0x00,0x2d,0x00,0x6b,0xff,0xe5,0x00,0x2d,0x00,0x6c,0xff,0xe5,0x00,0x2d,0x00,0x6d,0xff,0xe5,0x00,0x2d, -0x00,0x6e,0xff,0xe5,0x00,0x2d,0x00,0x91,0xff,0x98,0x00,0x2d,0x00,0xa0,0xff,0xe5,0x00,0x2d,0x00,0xac,0xff,0x9a,0x00,0x2d,0x00,0xad,0xff,0xdb,0x00,0x2d,0x00,0xae,0xff,0xdb,0x00,0x2d,0x00,0xc4,0xff,0x66,0x00,0x2d,0x00,0xc5,0xff,0x9a,0x00,0x2d,0x00,0xc7,0xff,0xdb,0x00,0x2d,0x00,0xc9,0xff,0xdb,0x00,0x2d,0x01,0x03,0xff,0xdb, -0x00,0x2d,0x01,0x04,0xff,0xe5,0x00,0x2d,0x01,0x05,0xff,0xdb,0x00,0x2d,0x01,0x06,0xff,0xe5,0x00,0x2d,0x01,0x45,0xff,0xdb,0x00,0x2d,0x01,0x46,0xff,0xe5,0x00,0x2d,0x01,0x63,0xff,0xbe,0x00,0x2d,0x01,0x85,0xff,0xdb,0x00,0x2d,0x01,0x86,0xff,0xe5,0x00,0x2d,0x01,0x87,0xff,0xdb,0x00,0x2d,0x01,0x88,0xff,0xe5,0x00,0x2e,0x00,0x0f, -0x00,0x27,0x00,0x2e,0x00,0x1e,0x00,0x27,0x00,0x2e,0x00,0x26,0xff,0xa6,0x00,0x2e,0x00,0x2a,0xff,0xa6,0x00,0x2e,0x00,0x2d,0x00,0x5a,0x00,0x2e,0x00,0x32,0xff,0xa6,0x00,0x2e,0x00,0x34,0xff,0xa6,0x00,0x2e,0x00,0x3b,0x00,0x25,0x00,0x2e,0x00,0x3d,0x00,0x27,0x00,0x2e,0x00,0x46,0xff,0xe5,0x00,0x2e,0x00,0x47,0xff,0xe5,0x00,0x2e, -0x00,0x48,0xff,0xe5,0x00,0x2e,0x00,0x4a,0xff,0xe5,0x00,0x2e,0x00,0x52,0xff,0xe5,0x00,0x2e,0x00,0x54,0xff,0xe5,0x00,0x2e,0x00,0x57,0xff,0xd1,0x00,0x2e,0x00,0x59,0xff,0xb6,0x00,0x2e,0x00,0x5a,0xff,0xcb,0x00,0x2e,0x00,0x5c,0xff,0xa4,0x00,0x2e,0x00,0x64,0xff,0x9a,0x00,0x2e,0x00,0x67,0xff,0xa6,0x00,0x2e,0x00,0x6f,0xff,0xe5, -0x00,0x2e,0x00,0x70,0xff,0xe5,0x00,0x2e,0x00,0x71,0xff,0xe5,0x00,0x2e,0x00,0x72,0xff,0xe5,0x00,0x2e,0x00,0x73,0xff,0xe5,0x00,0x2e,0x00,0x74,0xff,0xcf,0x00,0x2e,0x00,0x77,0x00,0x27,0x00,0x2e,0x00,0x79,0xff,0xe5,0x00,0x2e,0x00,0x7a,0xff,0xe5,0x00,0x2e,0x00,0x7b,0xff,0xe5,0x00,0x2e,0x00,0x7c,0xff,0xe5,0x00,0x2e,0x00,0x7d, -0xff,0xe5,0x00,0x2e,0x00,0x92,0xff,0xa6,0x00,0x2e,0x00,0xaf,0xff,0xa6,0x00,0x2e,0x00,0xb0,0xff,0xa6,0x00,0x2e,0x00,0xb1,0xff,0xe5,0x00,0x2e,0x00,0xba,0xff,0xa4,0x00,0x2e,0x00,0xc4,0x00,0x44,0x00,0x2e,0x00,0xc5,0x00,0x44,0x00,0x2e,0x00,0xd0,0xff,0xa6,0x00,0x2e,0x00,0xd1,0xff,0xa6,0x00,0x2e,0x00,0xd2,0xff,0xa6,0x00,0x2e, -0x00,0xe5,0x00,0x27,0x00,0x2e,0x00,0xeb,0xff,0xa4,0x00,0x2e,0x00,0xf7,0xff,0xa6,0x00,0x2e,0x00,0xf8,0xff,0xe5,0x00,0x2e,0x00,0xfc,0xff,0xa6,0x00,0x2e,0x00,0xfd,0xff,0xe5,0x00,0x2e,0x00,0xfe,0xff,0xa6,0x00,0x2e,0x00,0xff,0xff,0xe5,0x00,0x2e,0x01,0x00,0xff,0xe5,0x00,0x2e,0x01,0x08,0xff,0xe5,0x00,0x2e,0x01,0x0b,0xff,0xe5, -0x00,0x2e,0x01,0x0d,0xff,0xe5,0x00,0x2e,0x01,0x18,0xff,0xa6,0x00,0x2e,0x01,0x19,0xff,0xe5,0x00,0x2e,0x01,0x21,0xff,0xd1,0x00,0x2e,0x01,0x23,0xff,0xd1,0x00,0x2e,0x01,0x28,0x00,0x27,0x00,0x2e,0x01,0x2a,0x00,0x27,0x00,0x2e,0x01,0x47,0xff,0xa6,0x00,0x2e,0x01,0x48,0xff,0xe5,0x00,0x2e,0x01,0x4c,0xff,0xe5,0x00,0x2e,0x01,0x4e, -0xff,0xe5,0x00,0x2e,0x01,0x50,0xff,0xe5,0x00,0x2e,0x01,0x51,0xff,0xa6,0x00,0x2e,0x01,0x52,0xff,0xe5,0x00,0x2e,0x01,0x53,0xff,0xa6,0x00,0x2e,0x01,0x54,0xff,0xe5,0x00,0x2e,0x01,0x55,0xff,0xa6,0x00,0x2e,0x01,0x56,0xff,0xe5,0x00,0x2e,0x01,0x5c,0x00,0x27,0x00,0x2e,0x01,0x5e,0x00,0x27,0x00,0x2e,0x01,0x60,0x00,0x27,0x00,0x2e, -0x01,0x63,0x00,0x5a,0x00,0x2e,0x01,0x6e,0xff,0xa6,0x00,0x2e,0x01,0x6f,0xff,0xe5,0x00,0x2e,0x01,0x70,0xff,0xa6,0x00,0x2e,0x01,0x71,0xff,0xe5,0x00,0x2e,0x01,0x77,0xff,0xd1,0x00,0x2e,0x01,0x81,0xff,0xcb,0x00,0x2e,0x01,0x83,0xff,0xa4,0x00,0x2e,0x01,0x89,0xff,0xa6,0x00,0x2e,0x01,0x8a,0xff,0xe5,0x00,0x2e,0x01,0x8d,0xff,0xcb, -0x00,0x2e,0x01,0x8f,0xff,0xcb,0x00,0x2e,0x01,0x91,0xff,0xcb,0x00,0x2e,0x01,0x93,0xff,0xa4,0x00,0x2f,0x00,0x0d,0xff,0x31,0x00,0x2f,0x00,0x22,0xff,0x9a,0x00,0x2f,0x00,0x24,0x00,0x3b,0x00,0x2f,0x00,0x26,0xff,0xbe,0x00,0x2f,0x00,0x2a,0xff,0xbe,0x00,0x2f,0x00,0x2d,0x00,0x64,0x00,0x2f,0x00,0x32,0xff,0xba,0x00,0x2f,0x00,0x34, -0xff,0xba,0x00,0x2f,0x00,0x37,0xff,0x8f,0x00,0x2f,0x00,0x38,0xff,0xe3,0x00,0x2f,0x00,0x39,0xff,0x8b,0x00,0x2f,0x00,0x3a,0xff,0xcf,0x00,0x2f,0x00,0x3c,0xff,0x7f,0x00,0x2f,0x00,0x3d,0x00,0x3b,0x00,0x2f,0x00,0x57,0xff,0xe5,0x00,0x2f,0x00,0x59,0xff,0x9a,0x00,0x2f,0x00,0x5a,0xff,0xbe,0x00,0x2f,0x00,0x5c,0xff,0xb4,0x00,0x2f, -0x00,0x64,0xff,0xbe,0x00,0x2f,0x00,0x67,0xff,0xba,0x00,0x2f,0x00,0x68,0xff,0xe3,0x00,0x2f,0x00,0x8d,0xff,0x9a,0x00,0x2f,0x00,0x92,0xff,0xba,0x00,0x2f,0x00,0xaf,0xff,0xba,0x00,0x2f,0x00,0xb0,0xff,0xba,0x00,0x2f,0x00,0xb4,0xff,0x73,0x00,0x2f,0x00,0xb5,0xff,0x8b,0x00,0x2f,0x00,0xb6,0xff,0x73,0x00,0x2f,0x00,0xb7,0xff,0x7f, -0x00,0x2f,0x00,0xba,0xff,0xb4,0x00,0x2f,0x00,0xbb,0xff,0x9a,0x00,0x2f,0x00,0xc4,0x00,0x44,0x00,0x2f,0x00,0xc5,0x00,0x44,0x00,0x2f,0x00,0xd0,0xff,0xba,0x00,0x2f,0x00,0xd1,0xff,0xba,0x00,0x2f,0x00,0xd2,0xff,0xba,0x00,0x2f,0x00,0xd3,0xff,0xe3,0x00,0x2f,0x00,0xd4,0xff,0xe3,0x00,0x2f,0x00,0xd5,0xff,0xe3,0x00,0x2f,0x00,0xe5, -0x00,0x3b,0x00,0x2f,0x00,0xea,0xff,0x7f,0x00,0x2f,0x00,0xeb,0xff,0xb4,0x00,0x2f,0x00,0xf7,0xff,0xbe,0x00,0x2f,0x00,0xfc,0xff,0xbe,0x00,0x2f,0x00,0xfe,0xff,0xbe,0x00,0x2f,0x01,0x03,0x00,0x3b,0x00,0x2f,0x01,0x05,0x00,0x3b,0x00,0x2f,0x01,0x18,0xff,0xba,0x00,0x2f,0x01,0x20,0xff,0x8f,0x00,0x2f,0x01,0x21,0xff,0xe5,0x00,0x2f, -0x01,0x22,0xff,0x8f,0x00,0x2f,0x01,0x23,0xff,0xe5,0x00,0x2f,0x01,0x24,0xff,0xe3,0x00,0x2f,0x01,0x26,0xff,0xe3,0x00,0x2f,0x01,0x28,0x00,0x3b,0x00,0x2f,0x01,0x2a,0x00,0x3b,0x00,0x2f,0x01,0x45,0x00,0x3b,0x00,0x2f,0x01,0x47,0xff,0xbe,0x00,0x2f,0x01,0x51,0xff,0xbe,0x00,0x2f,0x01,0x53,0xff,0xbe,0x00,0x2f,0x01,0x55,0xff,0xbe, -0x00,0x2f,0x01,0x63,0x00,0x64,0x00,0x2f,0x01,0x6e,0xff,0xba,0x00,0x2f,0x01,0x70,0xff,0xba,0x00,0x2f,0x01,0x76,0xff,0x8f,0x00,0x2f,0x01,0x77,0xff,0xe5,0x00,0x2f,0x01,0x78,0xff,0xe3,0x00,0x2f,0x01,0x7a,0xff,0xe3,0x00,0x2f,0x01,0x7c,0xff,0xe3,0x00,0x2f,0x01,0x7e,0xff,0xe3,0x00,0x2f,0x01,0x80,0xff,0xcf,0x00,0x2f,0x01,0x81, -0xff,0xbe,0x00,0x2f,0x01,0x82,0xff,0x7f,0x00,0x2f,0x01,0x83,0xff,0xb4,0x00,0x2f,0x01,0x85,0x00,0x3b,0x00,0x2f,0x01,0x87,0x00,0x3b,0x00,0x2f,0x01,0x89,0xff,0xba,0x00,0x2f,0x01,0x8c,0xff,0xcf,0x00,0x2f,0x01,0x8d,0xff,0xbe,0x00,0x2f,0x01,0x8e,0xff,0xcf,0x00,0x2f,0x01,0x8f,0xff,0xbe,0x00,0x2f,0x01,0x90,0xff,0xcf,0x00,0x2f, -0x01,0x91,0xff,0xbe,0x00,0x2f,0x01,0x92,0xff,0x7f,0x00,0x2f,0x01,0x93,0xff,0xb4,0x00,0x32,0x00,0x0f,0xff,0xa4,0x00,0x32,0x00,0x11,0xff,0xa4,0x00,0x32,0x00,0x24,0xff,0xe5,0x00,0x32,0x00,0x2d,0xff,0xf6,0x00,0x32,0x00,0x37,0xff,0xa4,0x00,0x32,0x00,0x3b,0xff,0xdb,0x00,0x32,0x00,0x3c,0xff,0xe7,0x00,0x32,0x00,0x3d,0xff,0xcf, -0x00,0x32,0x00,0x62,0xff,0xe5,0x00,0x32,0x00,0x63,0xff,0xe5,0x00,0x32,0x00,0xac,0xff,0xa4,0x00,0x32,0x00,0xad,0xff,0xe5,0x00,0x32,0x00,0xae,0xff,0xe5,0x00,0x32,0x00,0xbb,0xff,0xf6,0x00,0x32,0x00,0xc4,0xff,0x4c,0x00,0x32,0x00,0xc5,0xff,0x98,0x00,0x32,0x00,0xc7,0xff,0xe5,0x00,0x32,0x00,0xc9,0xff,0xe5,0x00,0x32,0x00,0xe5, -0xff,0xcf,0x00,0x32,0x00,0xea,0xff,0xe7,0x00,0x32,0x01,0x03,0xff,0xe5,0x00,0x32,0x01,0x05,0xff,0xe5,0x00,0x32,0x01,0x20,0xff,0xa4,0x00,0x32,0x01,0x22,0xff,0xa4,0x00,0x32,0x01,0x28,0xff,0xcf,0x00,0x32,0x01,0x2a,0xff,0xcf,0x00,0x32,0x01,0x45,0xff,0xe5,0x00,0x32,0x01,0x63,0xff,0xf6,0x00,0x32,0x01,0x76,0xff,0xa4,0x00,0x32, -0x01,0x82,0xff,0xe7,0x00,0x32,0x01,0x85,0xff,0xe5,0x00,0x32,0x01,0x87,0xff,0xe5,0x00,0x32,0x01,0x92,0xff,0xe7,0x00,0x33,0x00,0x0f,0xfe,0xba,0x00,0x33,0x00,0x11,0xfe,0xba,0x00,0x33,0x00,0x24,0xff,0x62,0x00,0x33,0x00,0x2a,0xff,0xf6,0x00,0x33,0x00,0x2d,0xff,0x7f,0x00,0x33,0x00,0x3a,0x00,0x27,0x00,0x33,0x00,0x3b,0xff,0xc3, -0x00,0x33,0x00,0x44,0xff,0xbe,0x00,0x33,0x00,0x46,0xff,0xb4,0x00,0x33,0x00,0x47,0xff,0xb4,0x00,0x33,0x00,0x48,0xff,0xb4,0x00,0x33,0x00,0x4a,0xff,0xb4,0x00,0x33,0x00,0x52,0xff,0xb4,0x00,0x33,0x00,0x54,0xff,0xb6,0x00,0x33,0x00,0x62,0xff,0x62,0x00,0x33,0x00,0x63,0xff,0x62,0x00,0x33,0x00,0x69,0xff,0xbe,0x00,0x33,0x00,0x6a, -0xff,0xbe,0x00,0x33,0x00,0x6b,0xff,0xbe,0x00,0x33,0x00,0x6c,0xff,0xbe,0x00,0x33,0x00,0x6d,0xff,0xbe,0x00,0x33,0x00,0x6e,0xff,0xbe,0x00,0x33,0x00,0x6f,0xff,0xb4,0x00,0x33,0x00,0x70,0xff,0xb4,0x00,0x33,0x00,0x71,0xff,0xb4,0x00,0x33,0x00,0x72,0xff,0xb4,0x00,0x33,0x00,0x73,0xff,0xb4,0x00,0x33,0x00,0x79,0xff,0xb4,0x00,0x33, -0x00,0x7a,0xff,0xb4,0x00,0x33,0x00,0x7b,0xff,0xb4,0x00,0x33,0x00,0x7c,0xff,0xb4,0x00,0x33,0x00,0x7d,0xff,0xb4,0x00,0x33,0x00,0x91,0xfe,0xe9,0x00,0x33,0x00,0xa0,0xff,0xbe,0x00,0x33,0x00,0xac,0xfe,0xba,0x00,0x33,0x00,0xad,0xff,0x62,0x00,0x33,0x00,0xae,0xff,0x62,0x00,0x33,0x00,0xb1,0xff,0xb4,0x00,0x33,0x00,0xc4,0xfe,0xba, -0x00,0x33,0x00,0xc5,0xfe,0xae,0x00,0x33,0x00,0xc7,0xff,0x62,0x00,0x33,0x00,0xc9,0xff,0x62,0x00,0x33,0x00,0xf7,0xff,0xf6,0x00,0x33,0x00,0xf8,0xff,0xb4,0x00,0x33,0x00,0xfd,0xff,0xb4,0x00,0x33,0x00,0xff,0xff,0xb4,0x00,0x33,0x01,0x00,0xff,0xb4,0x00,0x33,0x01,0x03,0xff,0x62,0x00,0x33,0x01,0x04,0xff,0xbe,0x00,0x33,0x01,0x05, -0xff,0x62,0x00,0x33,0x01,0x06,0xff,0xbe,0x00,0x33,0x01,0x08,0xff,0xb4,0x00,0x33,0x01,0x0b,0xff,0xb4,0x00,0x33,0x01,0x0d,0xff,0xb4,0x00,0x33,0x01,0x19,0xff,0xb4,0x00,0x33,0x01,0x45,0xff,0x62,0x00,0x33,0x01,0x46,0xff,0xbe,0x00,0x33,0x01,0x48,0xff,0xb4,0x00,0x33,0x01,0x4c,0xff,0xb4,0x00,0x33,0x01,0x4e,0xff,0xb4,0x00,0x33, -0x01,0x50,0xff,0xb4,0x00,0x33,0x01,0x51,0xff,0xf6,0x00,0x33,0x01,0x52,0xff,0xb4,0x00,0x33,0x01,0x53,0xff,0xf6,0x00,0x33,0x01,0x54,0xff,0xb4,0x00,0x33,0x01,0x55,0xff,0xf6,0x00,0x33,0x01,0x56,0xff,0xb4,0x00,0x33,0x01,0x63,0xff,0x7f,0x00,0x33,0x01,0x6f,0xff,0xb4,0x00,0x33,0x01,0x71,0xff,0xb4,0x00,0x33,0x01,0x80,0x00,0x27, -0x00,0x33,0x01,0x85,0xff,0x62,0x00,0x33,0x01,0x86,0xff,0xbe,0x00,0x33,0x01,0x87,0xff,0x62,0x00,0x33,0x01,0x88,0xff,0xbe,0x00,0x33,0x01,0x8a,0xff,0xb4,0x00,0x33,0x01,0x8c,0x00,0x27,0x00,0x33,0x01,0x8e,0x00,0x27,0x00,0x33,0x01,0x90,0x00,0x27,0x00,0x34,0x00,0x0f,0xff,0xa4,0x00,0x34,0x00,0x11,0xff,0x7f,0x00,0x34,0x00,0x24, -0xff,0xe5,0x00,0x34,0x00,0x37,0xff,0xa4,0x00,0x34,0x00,0x3b,0xff,0xdb,0x00,0x34,0x00,0x3c,0xff,0xf6,0x00,0x34,0x00,0x3d,0xff,0xcf,0x00,0x34,0x00,0x62,0xff,0xe5,0x00,0x34,0x00,0x63,0xff,0xe5,0x00,0x34,0x00,0xac,0xff,0x7f,0x00,0x34,0x00,0xad,0xff,0xe5,0x00,0x34,0x00,0xae,0xff,0xe5,0x00,0x34,0x00,0xbb,0xff,0xf6,0x00,0x34, -0x00,0xc4,0xff,0x98,0x00,0x34,0x00,0xc5,0xff,0x98,0x00,0x34,0x00,0xc7,0xff,0xe5,0x00,0x34,0x00,0xc9,0xff,0xe5,0x00,0x34,0x00,0xe5,0xff,0xcf,0x00,0x34,0x00,0xea,0xff,0xf6,0x00,0x34,0x01,0x03,0xff,0xe5,0x00,0x34,0x01,0x05,0xff,0xe5,0x00,0x34,0x01,0x20,0xff,0xa4,0x00,0x34,0x01,0x22,0xff,0xa4,0x00,0x34,0x01,0x28,0xff,0xcf, -0x00,0x34,0x01,0x2a,0xff,0xcf,0x00,0x34,0x01,0x45,0xff,0xe5,0x00,0x34,0x01,0x76,0xff,0xa4,0x00,0x34,0x01,0x82,0xff,0xf6,0x00,0x34,0x01,0x85,0xff,0xe5,0x00,0x34,0x01,0x87,0xff,0xe5,0x00,0x34,0x01,0x92,0xff,0xf6,0x00,0x35,0x00,0x1e,0x00,0x52,0x00,0x35,0x00,0x26,0xff,0xe3,0x00,0x35,0x00,0x2a,0xff,0xe3,0x00,0x35,0x00,0x2d, -0x00,0x39,0x00,0x35,0x00,0x32,0xff,0xec,0x00,0x35,0x00,0x34,0xff,0xec,0x00,0x35,0x00,0x37,0xff,0xcb,0x00,0x35,0x00,0x3c,0xff,0xd9,0x00,0x35,0x00,0x46,0xff,0xcb,0x00,0x35,0x00,0x47,0xff,0xcb,0x00,0x35,0x00,0x48,0xff,0xc7,0x00,0x35,0x00,0x4a,0xff,0xc7,0x00,0x35,0x00,0x52,0xff,0xc5,0x00,0x35,0x00,0x54,0xff,0xcb,0x00,0x35, -0x00,0x64,0xff,0xe5,0x00,0x35,0x00,0x67,0xff,0xec,0x00,0x35,0x00,0x6f,0xff,0xbe,0x00,0x35,0x00,0x70,0xff,0xbe,0x00,0x35,0x00,0x71,0xff,0xbe,0x00,0x35,0x00,0x72,0xff,0xbe,0x00,0x35,0x00,0x73,0xff,0xbe,0x00,0x35,0x00,0x79,0xff,0xc5,0x00,0x35,0x00,0x7a,0xff,0xc5,0x00,0x35,0x00,0x7b,0xff,0xc5,0x00,0x35,0x00,0x7c,0xff,0xc5, -0x00,0x35,0x00,0x7d,0xff,0xc5,0x00,0x35,0x00,0x92,0xff,0xec,0x00,0x35,0x00,0xaf,0xff,0xec,0x00,0x35,0x00,0xb0,0xff,0xec,0x00,0x35,0x00,0xb1,0xff,0xc5,0x00,0x35,0x00,0xbb,0xff,0xe5,0x00,0x35,0x00,0xd0,0xff,0xec,0x00,0x35,0x00,0xd1,0xff,0xec,0x00,0x35,0x00,0xd2,0xff,0xec,0x00,0x35,0x00,0xea,0xff,0xd9,0x00,0x35,0x00,0xf7, -0xff,0xe3,0x00,0x35,0x00,0xf8,0xff,0xc7,0x00,0x35,0x00,0xfc,0xff,0xe3,0x00,0x35,0x00,0xfd,0xff,0xcb,0x00,0x35,0x00,0xfe,0xff,0xe3,0x00,0x35,0x00,0xff,0xff,0xcb,0x00,0x35,0x01,0x00,0xff,0xcb,0x00,0x35,0x01,0x08,0xff,0xcb,0x00,0x35,0x01,0x0b,0xff,0xc7,0x00,0x35,0x01,0x0d,0xff,0xbe,0x00,0x35,0x01,0x18,0xff,0xec,0x00,0x35, -0x01,0x19,0xff,0xc5,0x00,0x35,0x01,0x20,0xff,0xcb,0x00,0x35,0x01,0x22,0xff,0xcb,0x00,0x35,0x01,0x47,0xff,0xe3,0x00,0x35,0x01,0x48,0xff,0xcb,0x00,0x35,0x01,0x4c,0xff,0xbe,0x00,0x35,0x01,0x4e,0xff,0xbe,0x00,0x35,0x01,0x50,0xff,0xbe,0x00,0x35,0x01,0x51,0xff,0xe3,0x00,0x35,0x01,0x52,0xff,0xc7,0x00,0x35,0x01,0x53,0xff,0xe3, -0x00,0x35,0x01,0x54,0xff,0xc7,0x00,0x35,0x01,0x55,0xff,0xe3,0x00,0x35,0x01,0x56,0xff,0xc7,0x00,0x35,0x01,0x63,0x00,0x39,0x00,0x35,0x01,0x6e,0xff,0xec,0x00,0x35,0x01,0x6f,0xff,0xc5,0x00,0x35,0x01,0x70,0xff,0xec,0x00,0x35,0x01,0x71,0xff,0xc5,0x00,0x35,0x01,0x76,0xff,0xcb,0x00,0x35,0x01,0x82,0xff,0xd9,0x00,0x35,0x01,0x89, -0xff,0xec,0x00,0x35,0x01,0x8a,0xff,0xc5,0x00,0x35,0x01,0x92,0xff,0xd9,0x00,0x36,0x00,0x57,0xff,0xbe,0x00,0x36,0x00,0x59,0xff,0xcf,0x00,0x36,0x00,0x5a,0xff,0xe5,0x00,0x36,0x00,0x5c,0xff,0xd1,0x00,0x36,0x00,0xba,0xff,0xbe,0x00,0x36,0x00,0xc4,0xff,0xb2,0x00,0x36,0x00,0xc5,0xff,0xb2,0x00,0x36,0x00,0xeb,0xff,0xd1,0x00,0x36, -0x01,0x21,0xff,0xbe,0x00,0x36,0x01,0x23,0xff,0xbe,0x00,0x36,0x01,0x77,0xff,0xbe,0x00,0x36,0x01,0x81,0xff,0xe5,0x00,0x36,0x01,0x83,0xff,0xd1,0x00,0x36,0x01,0x8d,0xff,0xe5,0x00,0x36,0x01,0x8f,0xff,0xe5,0x00,0x36,0x01,0x91,0xff,0xe5,0x00,0x36,0x01,0x93,0xff,0xd1,0x00,0x37,0x00,0x0f,0xff,0x7f,0x00,0x37,0x00,0x11,0xff,0x4c, -0x00,0x37,0x00,0x1d,0xff,0xe9,0x00,0x37,0x00,0x1e,0xff,0xe9,0x00,0x37,0x00,0x24,0xff,0x66,0x00,0x37,0x00,0x26,0xff,0xa4,0x00,0x37,0x00,0x2a,0xff,0xa4,0x00,0x37,0x00,0x2d,0xff,0x8f,0x00,0x37,0x00,0x32,0xff,0xa4,0x00,0x37,0x00,0x34,0xff,0xa4,0x00,0x37,0x00,0x37,0x00,0x27,0x00,0x37,0x00,0x39,0x00,0x2b,0x00,0x37,0x00,0x3a, -0x00,0x27,0x00,0x37,0x00,0x3b,0xff,0xfa,0x00,0x37,0x00,0x3c,0x00,0x1d,0x00,0x37,0x00,0x44,0xff,0x27,0x00,0x37,0x00,0x46,0xff,0x2d,0x00,0x37,0x00,0x47,0xff,0x2d,0x00,0x37,0x00,0x48,0xff,0x2d,0x00,0x37,0x00,0x49,0xff,0xa0,0x00,0x37,0x00,0x4a,0xff,0x2d,0x00,0x37,0x00,0x50,0xff,0x4e,0x00,0x37,0x00,0x51,0xff,0x4e,0x00,0x37, -0x00,0x52,0xff,0x2d,0x00,0x37,0x00,0x53,0xff,0x4e,0x00,0x37,0x00,0x54,0xff,0x2d,0x00,0x37,0x00,0x55,0xff,0x4e,0x00,0x37,0x00,0x56,0xff,0x66,0x00,0x37,0x00,0x58,0xff,0x4e,0x00,0x37,0x00,0x59,0xff,0x9a,0x00,0x37,0x00,0x5a,0xff,0x8f,0x00,0x37,0x00,0x5b,0xff,0x4c,0x00,0x37,0x00,0x5c,0xff,0x8f,0x00,0x37,0x00,0x5d,0xff,0x7f, -0x00,0x37,0x00,0x62,0xff,0x66,0x00,0x37,0x00,0x63,0xff,0x66,0x00,0x37,0x00,0x64,0xff,0xa4,0x00,0x37,0x00,0x67,0xff,0xa4,0x00,0x37,0x00,0x69,0xff,0x27,0x00,0x37,0x00,0x6a,0xff,0x27,0x00,0x37,0x00,0x6b,0xff,0x27,0x00,0x37,0x00,0x6c,0xff,0x27,0x00,0x37,0x00,0x6d,0xff,0x3f,0x00,0x37,0x00,0x6e,0xff,0x27,0x00,0x37,0x00,0x6f, -0xff,0x1b,0x00,0x37,0x00,0x70,0xff,0x2d,0x00,0x37,0x00,0x71,0xff,0x2d,0x00,0x37,0x00,0x72,0xff,0x2d,0x00,0x37,0x00,0x73,0xff,0x2d,0x00,0x37,0x00,0x74,0xff,0xe9,0x00,0x37,0x00,0x76,0x00,0x31,0x00,0x37,0x00,0x77,0x00,0x6f,0x00,0x37,0x00,0x78,0xff,0x4e,0x00,0x37,0x00,0x79,0xff,0x2d,0x00,0x37,0x00,0x7a,0xff,0x2d,0x00,0x37, -0x00,0x7b,0xff,0x2d,0x00,0x37,0x00,0x7c,0xff,0x2d,0x00,0x37,0x00,0x7d,0xff,0x2d,0x00,0x37,0x00,0x7e,0xff,0x4e,0x00,0x37,0x00,0x7f,0xff,0x4e,0x00,0x37,0x00,0x80,0xff,0x4e,0x00,0x37,0x00,0x81,0xff,0x4e,0x00,0x37,0x00,0x8d,0x00,0x52,0x00,0x37,0x00,0x91,0xff,0x0c,0x00,0x37,0x00,0x92,0xff,0xa4,0x00,0x37,0x00,0xa0,0xff,0x27, -0x00,0x37,0x00,0xaa,0xff,0x9a,0x00,0x37,0x00,0xab,0xff,0xcf,0x00,0x37,0x00,0xac,0xff,0x4c,0x00,0x37,0x00,0xad,0xff,0x66,0x00,0x37,0x00,0xae,0xff,0x66,0x00,0x37,0x00,0xaf,0xff,0xa4,0x00,0x37,0x00,0xb0,0xff,0xa4,0x00,0x37,0x00,0xb1,0xff,0x2d,0x00,0x37,0x00,0xb5,0x00,0x27,0x00,0x37,0x00,0xb7,0x00,0x27,0x00,0x37,0x00,0xba, -0xff,0x8f,0x00,0x37,0x00,0xbe,0xff,0x9a,0x00,0x37,0x00,0xbf,0xff,0xcf,0x00,0x37,0x00,0xc4,0xff,0x17,0x00,0x37,0x00,0xc5,0xff,0x17,0x00,0x37,0x00,0xc7,0xff,0x66,0x00,0x37,0x00,0xc9,0xff,0x66,0x00,0x37,0x00,0xd0,0xff,0xa4,0x00,0x37,0x00,0xd1,0xff,0xa4,0x00,0x37,0x00,0xd2,0xff,0xa4,0x00,0x37,0x00,0xe4,0xff,0x66,0x00,0x37, -0x00,0xe6,0xff,0x7f,0x00,0x37,0x00,0xea,0x00,0x1d,0x00,0x37,0x00,0xeb,0xff,0x8f,0x00,0x37,0x00,0xf7,0xff,0xa4,0x00,0x37,0x00,0xf8,0xff,0x2d,0x00,0x37,0x00,0xfb,0xff,0x66,0x00,0x37,0x00,0xfc,0xff,0xa4,0x00,0x37,0x00,0xfd,0xff,0x2d,0x00,0x37,0x00,0xfe,0xff,0xa4,0x00,0x37,0x00,0xff,0xff,0x2d,0x00,0x37,0x01,0x00,0xff,0x2d, -0x00,0x37,0x01,0x03,0xff,0x66,0x00,0x37,0x01,0x04,0xff,0x27,0x00,0x37,0x01,0x05,0xff,0x66,0x00,0x37,0x01,0x06,0xff,0x27,0x00,0x37,0x01,0x08,0xff,0x2d,0x00,0x37,0x01,0x0b,0xff,0x2d,0x00,0x37,0x01,0x0d,0xff,0x2d,0x00,0x37,0x01,0x15,0xff,0x4e,0x00,0x37,0x01,0x17,0xff,0x4e,0x00,0x37,0x01,0x18,0xff,0xa4,0x00,0x37,0x01,0x19, -0xff,0x2d,0x00,0x37,0x01,0x1b,0xff,0x4e,0x00,0x37,0x01,0x1d,0xff,0x4e,0x00,0x37,0x01,0x1f,0xff,0x66,0x00,0x37,0x01,0x20,0x00,0x27,0x00,0x37,0x01,0x22,0x00,0x27,0x00,0x37,0x01,0x25,0xff,0x4e,0x00,0x37,0x01,0x27,0xff,0x4e,0x00,0x37,0x01,0x29,0xff,0x7f,0x00,0x37,0x01,0x2b,0xff,0x7f,0x00,0x37,0x01,0x45,0xff,0x66,0x00,0x37, -0x01,0x46,0xff,0x27,0x00,0x37,0x01,0x47,0xff,0xa4,0x00,0x37,0x01,0x48,0xff,0x2d,0x00,0x37,0x01,0x4c,0xff,0x2d,0x00,0x37,0x01,0x4e,0xff,0x2d,0x00,0x37,0x01,0x50,0xff,0x2d,0x00,0x37,0x01,0x51,0xff,0xa4,0x00,0x37,0x01,0x52,0xff,0x2d,0x00,0x37,0x01,0x53,0xff,0xa4,0x00,0x37,0x01,0x54,0xff,0x2d,0x00,0x37,0x01,0x55,0xff,0xa4, -0x00,0x37,0x01,0x56,0xff,0x2d,0x00,0x37,0x01,0x5c,0x00,0x6f,0x00,0x37,0x01,0x5e,0x00,0x6f,0x00,0x37,0x01,0x60,0x00,0x6f,0x00,0x37,0x01,0x63,0xff,0x8f,0x00,0x37,0x01,0x6d,0xff,0x4e,0x00,0x37,0x01,0x6e,0xff,0xa4,0x00,0x37,0x01,0x6f,0xff,0x2d,0x00,0x37,0x01,0x70,0xff,0xa4,0x00,0x37,0x01,0x71,0xff,0x2d,0x00,0x37,0x01,0x73, -0xff,0x4e,0x00,0x37,0x01,0x75,0xff,0x66,0x00,0x37,0x01,0x76,0x00,0x27,0x00,0x37,0x01,0x79,0xff,0x4e,0x00,0x37,0x01,0x7b,0xff,0x4e,0x00,0x37,0x01,0x7d,0xff,0x4e,0x00,0x37,0x01,0x7f,0xff,0x4e,0x00,0x37,0x01,0x80,0x00,0x27,0x00,0x37,0x01,0x81,0xff,0x8f,0x00,0x37,0x01,0x82,0x00,0x1d,0x00,0x37,0x01,0x83,0xff,0x8f,0x00,0x37, -0x01,0x85,0xff,0x66,0x00,0x37,0x01,0x86,0xff,0x27,0x00,0x37,0x01,0x87,0xff,0x66,0x00,0x37,0x01,0x88,0xff,0x27,0x00,0x37,0x01,0x89,0xff,0xa4,0x00,0x37,0x01,0x8a,0xff,0x2d,0x00,0x37,0x01,0x8c,0x00,0x27,0x00,0x37,0x01,0x8d,0xff,0x8f,0x00,0x37,0x01,0x8e,0x00,0x27,0x00,0x37,0x01,0x8f,0xff,0x8f,0x00,0x37,0x01,0x90,0x00,0x27, -0x00,0x37,0x01,0x91,0xff,0x8f,0x00,0x37,0x01,0x92,0x00,0x1d,0x00,0x37,0x01,0x93,0xff,0x8f,0x00,0x37,0x02,0x3e,0xff,0x66,0x00,0x38,0x00,0x24,0xff,0xd7,0x00,0x38,0x00,0x91,0xff,0x8b,0x00,0x38,0x00,0xc4,0xff,0xa6,0x00,0x38,0x00,0xc5,0xff,0xa6,0x00,0x38,0x01,0x03,0xff,0xd7,0x00,0x38,0x01,0x05,0xff,0xd7,0x00,0x38,0x01,0x45, -0xff,0xd7,0x00,0x38,0x01,0x85,0xff,0xd7,0x00,0x38,0x01,0x87,0xff,0xd7,0x00,0x39,0x00,0x0f,0xff,0x33,0x00,0x39,0x00,0x11,0xff,0x1b,0x00,0x39,0x00,0x24,0xff,0x8b,0x00,0x39,0x00,0x26,0xff,0xd5,0x00,0x39,0x00,0x2a,0xff,0xd5,0x00,0x39,0x00,0x2d,0xff,0xba,0x00,0x39,0x00,0x32,0xff,0xf4,0x00,0x39,0x00,0x34,0xff,0xd5,0x00,0x39, -0x00,0x36,0xff,0xe5,0x00,0x39,0x00,0x37,0x00,0x27,0x00,0x39,0x00,0x44,0xff,0x6d,0x00,0x39,0x00,0x46,0xff,0x7f,0x00,0x39,0x00,0x47,0xff,0x7f,0x00,0x39,0x00,0x48,0xff,0x7f,0x00,0x39,0x00,0x4a,0xff,0x7f,0x00,0x39,0x00,0x50,0xff,0xb4,0x00,0x39,0x00,0x51,0xff,0xb4,0x00,0x39,0x00,0x52,0xff,0x7f,0x00,0x39,0x00,0x53,0xff,0xb4, -0x00,0x39,0x00,0x54,0xff,0x7f,0x00,0x39,0x00,0x55,0xff,0xb4,0x00,0x39,0x00,0x56,0xff,0xbe,0x00,0x39,0x00,0x58,0xff,0xb4,0x00,0x39,0x00,0x62,0xff,0x8b,0x00,0x39,0x00,0x63,0xff,0x8b,0x00,0x39,0x00,0x64,0xff,0xe1,0x00,0x39,0x00,0x67,0xff,0xf4,0x00,0x39,0x00,0x69,0xff,0x6d,0x00,0x39,0x00,0x6a,0xff,0x6d,0x00,0x39,0x00,0x6b, -0xff,0x6d,0x00,0x39,0x00,0x6c,0xff,0x6d,0x00,0x39,0x00,0x6d,0xff,0x6d,0x00,0x39,0x00,0x6e,0xff,0x6d,0x00,0x39,0x00,0x6f,0xff,0x7f,0x00,0x39,0x00,0x70,0xff,0x7f,0x00,0x39,0x00,0x71,0xff,0x7f,0x00,0x39,0x00,0x72,0xff,0x7f,0x00,0x39,0x00,0x73,0xff,0x7f,0x00,0x39,0x00,0x76,0x00,0x1d,0x00,0x39,0x00,0x77,0x00,0x5a,0x00,0x39, -0x00,0x78,0xff,0xb4,0x00,0x39,0x00,0x79,0xff,0x7f,0x00,0x39,0x00,0x7a,0xff,0x7f,0x00,0x39,0x00,0x7b,0xff,0x7f,0x00,0x39,0x00,0x7c,0xff,0x7f,0x00,0x39,0x00,0x7d,0xff,0x7f,0x00,0x39,0x00,0x7e,0xff,0xb4,0x00,0x39,0x00,0x7f,0xff,0xb4,0x00,0x39,0x00,0x80,0xff,0xb4,0x00,0x39,0x00,0x81,0xff,0xb4,0x00,0x39,0x00,0x8d,0x00,0x52, -0x00,0x39,0x00,0x91,0xff,0x44,0x00,0x39,0x00,0x92,0xff,0xf4,0x00,0x39,0x00,0xa0,0xff,0x6d,0x00,0x39,0x00,0xa2,0xff,0x75,0x00,0x39,0x00,0xaa,0xff,0xcf,0x00,0x39,0x00,0xac,0xff,0x1b,0x00,0x39,0x00,0xad,0xff,0x8b,0x00,0x39,0x00,0xae,0xff,0x8b,0x00,0x39,0x00,0xaf,0xff,0xf4,0x00,0x39,0x00,0xb0,0xff,0xf4,0x00,0x39,0x00,0xb1, -0xff,0x7f,0x00,0x39,0x00,0xbe,0xff,0xcf,0x00,0x39,0x00,0xc4,0xff,0x73,0x00,0x39,0x00,0xc5,0xff,0x7f,0x00,0x39,0x00,0xc7,0xff,0x8b,0x00,0x39,0x00,0xc9,0xff,0x8b,0x00,0x39,0x00,0xd0,0xff,0xf4,0x00,0x39,0x00,0xd1,0xff,0xf4,0x00,0x39,0x00,0xd2,0xff,0xf4,0x00,0x39,0x00,0xe3,0xff,0xe5,0x00,0x39,0x00,0xe4,0xff,0xbe,0x00,0x39, -0x00,0xf7,0xff,0xd5,0x00,0x39,0x00,0xf8,0xff,0x7f,0x00,0x39,0x00,0xfa,0xff,0xe5,0x00,0x39,0x00,0xfb,0xff,0xbe,0x00,0x39,0x00,0xfc,0xff,0xd5,0x00,0x39,0x00,0xfd,0xff,0x7f,0x00,0x39,0x00,0xfe,0xff,0xd5,0x00,0x39,0x00,0xff,0xff,0x7f,0x00,0x39,0x01,0x00,0xff,0x7f,0x00,0x39,0x01,0x03,0xff,0x8b,0x00,0x39,0x01,0x04,0xff,0x6d, -0x00,0x39,0x01,0x05,0xff,0x8b,0x00,0x39,0x01,0x06,0xff,0x6d,0x00,0x39,0x01,0x08,0xff,0x7f,0x00,0x39,0x01,0x0b,0xff,0x7f,0x00,0x39,0x01,0x0d,0xff,0x7f,0x00,0x39,0x01,0x15,0xff,0xb4,0x00,0x39,0x01,0x17,0xff,0xb4,0x00,0x39,0x01,0x18,0xff,0xf4,0x00,0x39,0x01,0x19,0xff,0x7f,0x00,0x39,0x01,0x1b,0xff,0xb4,0x00,0x39,0x01,0x1d, -0xff,0xb4,0x00,0x39,0x01,0x1e,0xff,0xe5,0x00,0x39,0x01,0x1f,0xff,0xbe,0x00,0x39,0x01,0x20,0x00,0x27,0x00,0x39,0x01,0x22,0x00,0x27,0x00,0x39,0x01,0x25,0xff,0xb4,0x00,0x39,0x01,0x27,0xff,0xb4,0x00,0x39,0x01,0x45,0xff,0x8b,0x00,0x39,0x01,0x46,0xff,0x6d,0x00,0x39,0x01,0x47,0xff,0xd5,0x00,0x39,0x01,0x48,0xff,0x7f,0x00,0x39, -0x01,0x4c,0xff,0x7f,0x00,0x39,0x01,0x4e,0xff,0x7f,0x00,0x39,0x01,0x50,0xff,0x7f,0x00,0x39,0x01,0x51,0xff,0xd5,0x00,0x39,0x01,0x52,0xff,0x7f,0x00,0x39,0x01,0x53,0xff,0xd5,0x00,0x39,0x01,0x54,0xff,0x7f,0x00,0x39,0x01,0x55,0xff,0xd5,0x00,0x39,0x01,0x56,0xff,0x7f,0x00,0x39,0x01,0x5c,0x00,0x5a,0x00,0x39,0x01,0x5e,0x00,0x5a, -0x00,0x39,0x01,0x60,0x00,0x5a,0x00,0x39,0x01,0x63,0xff,0xba,0x00,0x39,0x01,0x6d,0xff,0xb4,0x00,0x39,0x01,0x6e,0xff,0xf4,0x00,0x39,0x01,0x6f,0xff,0x7f,0x00,0x39,0x01,0x70,0xff,0xf4,0x00,0x39,0x01,0x71,0xff,0x7f,0x00,0x39,0x01,0x73,0xff,0xb4,0x00,0x39,0x01,0x74,0xff,0xe5,0x00,0x39,0x01,0x75,0xff,0xbe,0x00,0x39,0x01,0x76, -0x00,0x27,0x00,0x39,0x01,0x79,0xff,0xb4,0x00,0x39,0x01,0x7b,0xff,0xb4,0x00,0x39,0x01,0x7d,0xff,0xb4,0x00,0x39,0x01,0x7f,0xff,0xb4,0x00,0x39,0x01,0x85,0xff,0x8b,0x00,0x39,0x01,0x86,0xff,0x6d,0x00,0x39,0x01,0x87,0xff,0x8b,0x00,0x39,0x01,0x88,0xff,0x6d,0x00,0x39,0x01,0x89,0xff,0xf4,0x00,0x39,0x01,0x8a,0xff,0x7f,0x00,0x39, -0x02,0x3d,0xff,0xe5,0x00,0x39,0x02,0x3e,0xff,0xbe,0x00,0x3a,0x00,0x0f,0xff,0x8b,0x00,0x3a,0x00,0x11,0xff,0x7f,0x00,0x3a,0x00,0x24,0xff,0xb6,0x00,0x3a,0x00,0x37,0x00,0x27,0x00,0x3a,0x00,0x44,0xff,0xb4,0x00,0x3a,0x00,0x46,0xff,0xcf,0x00,0x3a,0x00,0x47,0xff,0xcf,0x00,0x3a,0x00,0x48,0xff,0xcf,0x00,0x3a,0x00,0x4a,0xff,0xcf, -0x00,0x3a,0x00,0x52,0xff,0xcf,0x00,0x3a,0x00,0x54,0xff,0xcf,0x00,0x3a,0x00,0x62,0xff,0xb6,0x00,0x3a,0x00,0x63,0xff,0xb6,0x00,0x3a,0x00,0x69,0xff,0xb4,0x00,0x3a,0x00,0x6a,0xff,0xb4,0x00,0x3a,0x00,0x6b,0xff,0xb4,0x00,0x3a,0x00,0x6c,0xff,0xb4,0x00,0x3a,0x00,0x6d,0xff,0xb4,0x00,0x3a,0x00,0x6e,0xff,0xb4,0x00,0x3a,0x00,0x6f, -0xff,0xcf,0x00,0x3a,0x00,0x70,0xff,0xcf,0x00,0x3a,0x00,0x71,0xff,0xcf,0x00,0x3a,0x00,0x72,0xff,0xcf,0x00,0x3a,0x00,0x73,0xff,0xcf,0x00,0x3a,0x00,0x76,0x00,0x31,0x00,0x3a,0x00,0x77,0x00,0x64,0x00,0x3a,0x00,0x79,0xff,0xcf,0x00,0x3a,0x00,0x7a,0xff,0xcf,0x00,0x3a,0x00,0x7b,0xff,0xcf,0x00,0x3a,0x00,0x7c,0xff,0xcf,0x00,0x3a, -0x00,0x7d,0xff,0xcf,0x00,0x3a,0x00,0x91,0xff,0x9a,0x00,0x3a,0x00,0xa0,0xff,0xb4,0x00,0x3a,0x00,0xa2,0xff,0xa4,0x00,0x3a,0x00,0xaa,0xff,0xcf,0x00,0x3a,0x00,0xab,0x00,0x27,0x00,0x3a,0x00,0xac,0xff,0x7f,0x00,0x3a,0x00,0xad,0xff,0xb6,0x00,0x3a,0x00,0xae,0xff,0xb6,0x00,0x3a,0x00,0xb1,0xff,0xcf,0x00,0x3a,0x00,0xbe,0xff,0xcf, -0x00,0x3a,0x00,0xbf,0x00,0x27,0x00,0x3a,0x00,0xc4,0xff,0x7f,0x00,0x3a,0x00,0xc5,0xff,0x8b,0x00,0x3a,0x00,0xc7,0xff,0xb6,0x00,0x3a,0x00,0xc9,0xff,0xb6,0x00,0x3a,0x00,0xf8,0xff,0xcf,0x00,0x3a,0x00,0xfd,0xff,0xcf,0x00,0x3a,0x00,0xff,0xff,0xcf,0x00,0x3a,0x01,0x00,0xff,0xcf,0x00,0x3a,0x01,0x03,0xff,0xb6,0x00,0x3a,0x01,0x04, -0xff,0xb4,0x00,0x3a,0x01,0x05,0xff,0xb6,0x00,0x3a,0x01,0x06,0xff,0xb4,0x00,0x3a,0x01,0x08,0xff,0xcf,0x00,0x3a,0x01,0x0b,0xff,0xcf,0x00,0x3a,0x01,0x0d,0xff,0xcf,0x00,0x3a,0x01,0x19,0xff,0xcf,0x00,0x3a,0x01,0x20,0x00,0x27,0x00,0x3a,0x01,0x22,0x00,0x27,0x00,0x3a,0x01,0x45,0xff,0xb6,0x00,0x3a,0x01,0x46,0xff,0xb4,0x00,0x3a, -0x01,0x48,0xff,0xcf,0x00,0x3a,0x01,0x4c,0xff,0xcf,0x00,0x3a,0x01,0x4e,0xff,0xcf,0x00,0x3a,0x01,0x50,0xff,0xcf,0x00,0x3a,0x01,0x52,0xff,0xcf,0x00,0x3a,0x01,0x54,0xff,0xcf,0x00,0x3a,0x01,0x56,0xff,0xcf,0x00,0x3a,0x01,0x5c,0x00,0x64,0x00,0x3a,0x01,0x5e,0x00,0x64,0x00,0x3a,0x01,0x60,0x00,0x64,0x00,0x3a,0x01,0x6f,0xff,0xcf, -0x00,0x3a,0x01,0x71,0xff,0xcf,0x00,0x3a,0x01,0x76,0x00,0x27,0x00,0x3a,0x01,0x85,0xff,0xb6,0x00,0x3a,0x01,0x86,0xff,0xb4,0x00,0x3a,0x01,0x87,0xff,0xb6,0x00,0x3a,0x01,0x88,0xff,0xb4,0x00,0x3a,0x01,0x8a,0xff,0xcf,0x00,0x3b,0x00,0x0f,0x00,0x44,0x00,0x3b,0x00,0x11,0x00,0x39,0x00,0x3b,0x00,0x1e,0x00,0x52,0x00,0x3b,0x00,0x26, -0xff,0xe9,0x00,0x3b,0x00,0x2a,0xff,0xe9,0x00,0x3b,0x00,0x2d,0x00,0x60,0x00,0x3b,0x00,0x32,0xff,0xe9,0x00,0x3b,0x00,0x34,0xff,0xe9,0x00,0x3b,0x00,0x37,0x00,0x21,0x00,0x3b,0x00,0x64,0xff,0xe9,0x00,0x3b,0x00,0x67,0xff,0xe9,0x00,0x3b,0x00,0x77,0x00,0x52,0x00,0x3b,0x00,0x92,0xff,0xe9,0x00,0x3b,0x00,0xac,0x00,0x39,0x00,0x3b, -0x00,0xaf,0xff,0xe9,0x00,0x3b,0x00,0xb0,0xff,0xe9,0x00,0x3b,0x00,0xc4,0x00,0x44,0x00,0x3b,0x00,0xc5,0x00,0x52,0x00,0x3b,0x00,0xd0,0xff,0xe9,0x00,0x3b,0x00,0xd1,0xff,0xe9,0x00,0x3b,0x00,0xd2,0xff,0xe9,0x00,0x3b,0x00,0xf7,0xff,0xe9,0x00,0x3b,0x00,0xfc,0xff,0xe9,0x00,0x3b,0x00,0xfe,0xff,0xe9,0x00,0x3b,0x01,0x18,0xff,0xe9, -0x00,0x3b,0x01,0x20,0x00,0x21,0x00,0x3b,0x01,0x22,0x00,0x21,0x00,0x3b,0x01,0x47,0xff,0xe9,0x00,0x3b,0x01,0x51,0xff,0xe9,0x00,0x3b,0x01,0x53,0xff,0xe9,0x00,0x3b,0x01,0x55,0xff,0xe9,0x00,0x3b,0x01,0x5c,0x00,0x52,0x00,0x3b,0x01,0x5e,0x00,0x52,0x00,0x3b,0x01,0x60,0x00,0x52,0x00,0x3b,0x01,0x63,0x00,0x60,0x00,0x3b,0x01,0x6e, -0xff,0xe9,0x00,0x3b,0x01,0x70,0xff,0xe9,0x00,0x3b,0x01,0x76,0x00,0x21,0x00,0x3b,0x01,0x89,0xff,0xe9,0x00,0x3c,0x00,0x0f,0xff,0x50,0x00,0x3c,0x00,0x11,0xff,0x3d,0x00,0x3c,0x00,0x24,0xff,0x62,0x00,0x3c,0x00,0x26,0xff,0xd3,0x00,0x3c,0x00,0x2a,0xff,0xd3,0x00,0x3c,0x00,0x2d,0xff,0xbe,0x00,0x3c,0x00,0x32,0xff,0xd3,0x00,0x3c, -0x00,0x34,0xff,0xd3,0x00,0x3c,0x00,0x36,0xff,0xe5,0x00,0x3c,0x00,0x37,0x00,0x27,0x00,0x3c,0x00,0x44,0xff,0x39,0x00,0x3c,0x00,0x46,0xff,0x4c,0x00,0x3c,0x00,0x47,0xff,0x4c,0x00,0x3c,0x00,0x48,0xff,0x4c,0x00,0x3c,0x00,0x49,0xff,0xe5,0x00,0x3c,0x00,0x4a,0xff,0x4c,0x00,0x3c,0x00,0x50,0xff,0x73,0x00,0x3c,0x00,0x51,0xff,0x73, -0x00,0x3c,0x00,0x52,0xff,0x4c,0x00,0x3c,0x00,0x53,0xff,0x73,0x00,0x3c,0x00,0x54,0xff,0x4c,0x00,0x3c,0x00,0x55,0xff,0x73,0x00,0x3c,0x00,0x56,0xff,0x7b,0x00,0x3c,0x00,0x58,0xff,0x73,0x00,0x3c,0x00,0x62,0xff,0x62,0x00,0x3c,0x00,0x63,0xff,0x62,0x00,0x3c,0x00,0x64,0xff,0xcd,0x00,0x3c,0x00,0x67,0xff,0xd3,0x00,0x3c,0x00,0x69, -0xff,0x39,0x00,0x3c,0x00,0x6a,0xff,0x39,0x00,0x3c,0x00,0x6b,0xff,0x39,0x00,0x3c,0x00,0x6c,0xff,0x7f,0x00,0x3c,0x00,0x6d,0xff,0x66,0x00,0x3c,0x00,0x6e,0xff,0x39,0x00,0x3c,0x00,0x6f,0xff,0x4c,0x00,0x3c,0x00,0x70,0xff,0x4c,0x00,0x3c,0x00,0x71,0xff,0x4c,0x00,0x3c,0x00,0x72,0xff,0x4c,0x00,0x3c,0x00,0x73,0xff,0x4c,0x00,0x3c, -0x00,0x77,0x00,0x5a,0x00,0x3c,0x00,0x78,0xff,0x73,0x00,0x3c,0x00,0x79,0xff,0x4c,0x00,0x3c,0x00,0x7a,0xff,0x4c,0x00,0x3c,0x00,0x7b,0xff,0x4c,0x00,0x3c,0x00,0x7c,0xff,0x4c,0x00,0x3c,0x00,0x7d,0xff,0x4c,0x00,0x3c,0x00,0x7e,0xff,0x73,0x00,0x3c,0x00,0x7f,0xff,0x73,0x00,0x3c,0x00,0x80,0xff,0x73,0x00,0x3c,0x00,0x81,0xff,0x73, -0x00,0x3c,0x00,0x91,0xff,0x3f,0x00,0x3c,0x00,0x92,0xff,0xd3,0x00,0x3c,0x00,0xa0,0xff,0x39,0x00,0x3c,0x00,0xa2,0xff,0x1b,0x00,0x3c,0x00,0xaa,0xff,0xcf,0x00,0x3c,0x00,0xac,0xff,0x3d,0x00,0x3c,0x00,0xad,0xff,0x62,0x00,0x3c,0x00,0xae,0xff,0x62,0x00,0x3c,0x00,0xaf,0xff,0xd3,0x00,0x3c,0x00,0xb0,0xff,0xd3,0x00,0x3c,0x00,0xb1, -0xff,0x4c,0x00,0x3c,0x00,0xbe,0xff,0x9a,0x00,0x3c,0x00,0xc4,0xff,0x08,0x00,0x3c,0x00,0xc5,0xff,0x08,0x00,0x3c,0x00,0xc7,0xff,0x62,0x00,0x3c,0x00,0xc9,0xff,0x62,0x00,0x3c,0x00,0xd0,0xff,0xd3,0x00,0x3c,0x00,0xd1,0xff,0xd3,0x00,0x3c,0x00,0xd2,0xff,0xd3,0x00,0x3c,0x00,0xe3,0xff,0xe5,0x00,0x3c,0x00,0xe4,0xff,0x7b,0x00,0x3c, -0x00,0xf7,0xff,0xd3,0x00,0x3c,0x00,0xf8,0xff,0x4c,0x00,0x3c,0x00,0xfa,0xff,0xe5,0x00,0x3c,0x00,0xfb,0xff,0x7b,0x00,0x3c,0x00,0xfc,0xff,0xd3,0x00,0x3c,0x00,0xfd,0xff,0x4c,0x00,0x3c,0x00,0xfe,0xff,0xd3,0x00,0x3c,0x00,0xff,0xff,0x4c,0x00,0x3c,0x01,0x00,0xff,0x4c,0x00,0x3c,0x01,0x03,0xff,0x62,0x00,0x3c,0x01,0x04,0xff,0x7f, -0x00,0x3c,0x01,0x05,0xff,0x62,0x00,0x3c,0x01,0x06,0xff,0x39,0x00,0x3c,0x01,0x08,0xff,0x4c,0x00,0x3c,0x01,0x0b,0xff,0x4c,0x00,0x3c,0x01,0x0d,0xff,0x4c,0x00,0x3c,0x01,0x15,0xff,0x73,0x00,0x3c,0x01,0x17,0xff,0x73,0x00,0x3c,0x01,0x18,0xff,0xd3,0x00,0x3c,0x01,0x19,0xff,0x4c,0x00,0x3c,0x01,0x1b,0xff,0x73,0x00,0x3c,0x01,0x1d, -0xff,0x73,0x00,0x3c,0x01,0x1e,0xff,0xe5,0x00,0x3c,0x01,0x1f,0xff,0x7b,0x00,0x3c,0x01,0x20,0x00,0x27,0x00,0x3c,0x01,0x22,0x00,0x27,0x00,0x3c,0x01,0x25,0xff,0x73,0x00,0x3c,0x01,0x27,0xff,0x73,0x00,0x3c,0x01,0x45,0xff,0x62,0x00,0x3c,0x01,0x46,0xff,0x7f,0x00,0x3c,0x01,0x47,0xff,0xd3,0x00,0x3c,0x01,0x48,0xff,0x4c,0x00,0x3c, -0x01,0x4c,0xff,0x4c,0x00,0x3c,0x01,0x4e,0xff,0x4c,0x00,0x3c,0x01,0x50,0xff,0x4c,0x00,0x3c,0x01,0x51,0xff,0xd3,0x00,0x3c,0x01,0x52,0xff,0x4c,0x00,0x3c,0x01,0x53,0xff,0xd3,0x00,0x3c,0x01,0x54,0xff,0x4c,0x00,0x3c,0x01,0x55,0xff,0xd3,0x00,0x3c,0x01,0x56,0xff,0x4c,0x00,0x3c,0x01,0x5c,0x00,0x5a,0x00,0x3c,0x01,0x5e,0x00,0x5a, -0x00,0x3c,0x01,0x60,0x00,0x5a,0x00,0x3c,0x01,0x63,0xff,0xbe,0x00,0x3c,0x01,0x6d,0xff,0x73,0x00,0x3c,0x01,0x6e,0xff,0xd3,0x00,0x3c,0x01,0x6f,0xff,0x4c,0x00,0x3c,0x01,0x70,0xff,0xd3,0x00,0x3c,0x01,0x71,0xff,0x4c,0x00,0x3c,0x01,0x73,0xff,0x73,0x00,0x3c,0x01,0x74,0xff,0xe5,0x00,0x3c,0x01,0x75,0xff,0x7b,0x00,0x3c,0x01,0x76, -0x00,0x27,0x00,0x3c,0x01,0x79,0xff,0x73,0x00,0x3c,0x01,0x7b,0xff,0x73,0x00,0x3c,0x01,0x7d,0xff,0x73,0x00,0x3c,0x01,0x7f,0xff,0x73,0x00,0x3c,0x01,0x85,0xff,0x62,0x00,0x3c,0x01,0x86,0xff,0x7f,0x00,0x3c,0x01,0x87,0xff,0x62,0x00,0x3c,0x01,0x88,0xff,0x39,0x00,0x3c,0x01,0x89,0xff,0xd3,0x00,0x3c,0x01,0x8a,0xff,0x4c,0x00,0x3c, -0x02,0x3d,0xff,0xe5,0x00,0x3c,0x02,0x3e,0xff,0x7b,0x00,0x3d,0x00,0x2d,0x00,0x52,0x00,0x3d,0x00,0x37,0x00,0x27,0x00,0x3d,0x00,0x5c,0xff,0xcb,0x00,0x3d,0x00,0x77,0x00,0x46,0x00,0x3d,0x00,0xab,0x00,0x27,0x00,0x3d,0x00,0xba,0xff,0xbe,0x00,0x3d,0x00,0xbf,0x00,0x52,0x00,0x3d,0x00,0xeb,0xff,0xcb,0x00,0x3d,0x01,0x20,0x00,0x27, -0x00,0x3d,0x01,0x22,0x00,0x27,0x00,0x3d,0x01,0x5c,0x00,0x46,0x00,0x3d,0x01,0x5e,0x00,0x46,0x00,0x3d,0x01,0x60,0x00,0x46,0x00,0x3d,0x01,0x63,0x00,0x52,0x00,0x3d,0x01,0x76,0x00,0x27,0x00,0x3d,0x01,0x83,0xff,0xcb,0x00,0x3d,0x01,0x93,0xff,0xcb,0x00,0x3e,0x00,0x4d,0x00,0xe9,0x00,0x3e,0x01,0x64,0x00,0xe9,0x00,0x45,0x00,0x44, -0xff,0xe5,0x00,0x45,0x00,0x49,0xff,0xf6,0x00,0x45,0x00,0x5b,0xff,0xe7,0x00,0x45,0x00,0x69,0xff,0xe5,0x00,0x45,0x00,0x6a,0xff,0xe5,0x00,0x45,0x00,0x6b,0xff,0xe5,0x00,0x45,0x00,0x6c,0xff,0xe5,0x00,0x45,0x00,0x6d,0xff,0xe5,0x00,0x45,0x00,0x6e,0xff,0xe5,0x00,0x45,0x00,0xa0,0xff,0xe5,0x00,0x45,0x00,0xc0,0xff,0xf6,0x00,0x45, -0x00,0xc1,0xff,0xf6,0x00,0x45,0x01,0x04,0xff,0xe5,0x00,0x45,0x01,0x06,0xff,0xe5,0x00,0x45,0x01,0x46,0xff,0xe5,0x00,0x45,0x01,0x86,0xff,0xe5,0x00,0x45,0x01,0x88,0xff,0xe5,0x00,0x46,0x00,0x2d,0x00,0x46,0x00,0x46,0x00,0x37,0xff,0x9a,0x00,0x46,0x00,0x3c,0xff,0xb4,0x00,0x46,0x00,0xea,0xff,0xb4,0x00,0x46,0x01,0x20,0xff,0x9a, -0x00,0x46,0x01,0x22,0xff,0x9a,0x00,0x46,0x01,0x63,0x00,0x46,0x00,0x46,0x01,0x76,0xff,0x9a,0x00,0x46,0x01,0x82,0xff,0xb4,0x00,0x46,0x01,0x92,0xff,0xb4,0x00,0x48,0x00,0x05,0xff,0x98,0x00,0x48,0x00,0x0a,0xff,0x98,0x00,0x49,0x00,0x0c,0x00,0x8d,0x00,0x49,0x00,0x0f,0xff,0x7f,0x00,0x49,0x00,0x10,0xff,0x9a,0x00,0x49,0x00,0x11, -0xff,0x7f,0x00,0x49,0x00,0x1d,0x00,0x52,0x00,0x49,0x00,0x1e,0x00,0x52,0x00,0x49,0x00,0x22,0x00,0x42,0x00,0x49,0x00,0x40,0x00,0x8d,0x00,0x49,0x00,0x45,0x00,0x12,0x00,0x49,0x00,0x4b,0x00,0x12,0x00,0x49,0x00,0x57,0x00,0x25,0x00,0x49,0x00,0x59,0x00,0x27,0x00,0x49,0x00,0x5a,0x00,0x27,0x00,0x49,0x00,0x5b,0x00,0x12,0x00,0x49, -0x00,0x5c,0x00,0x21,0x00,0x49,0x00,0x60,0x00,0x52,0x00,0x49,0x00,0x75,0x00,0x2d,0x00,0x49,0x00,0x76,0x00,0x12,0x00,0x49,0x00,0x77,0x00,0x79,0x00,0x49,0x00,0x8d,0x00,0x93,0x00,0x49,0x00,0xab,0x00,0x27,0x00,0x49,0x00,0xac,0xff,0x7f,0x00,0x49,0x00,0xb4,0x00,0x5e,0x00,0x49,0x00,0xb5,0x00,0x52,0x00,0x49,0x00,0xb6,0x00,0x5e, -0x00,0x49,0x00,0xb7,0x00,0x52,0x00,0x49,0x00,0xbf,0x00,0x27,0x00,0x49,0x00,0xc4,0xff,0xb0,0x00,0x49,0x00,0xc5,0xff,0xb0,0x00,0x49,0x00,0xeb,0x00,0x21,0x00,0x49,0x00,0xed,0x00,0x12,0x00,0x49,0x01,0x21,0x00,0x25,0x00,0x49,0x01,0x23,0x00,0x25,0x00,0x49,0x01,0x58,0x00,0x12,0x00,0x49,0x01,0x5a,0x00,0x12,0x00,0x49,0x01,0x5c, -0x00,0x79,0x00,0x49,0x01,0x5e,0x00,0x79,0x00,0x49,0x01,0x60,0x00,0x79,0x00,0x49,0x01,0x77,0x00,0x25,0x00,0x49,0x01,0x81,0x00,0x27,0x00,0x49,0x01,0x83,0x00,0x21,0x00,0x49,0x01,0x8d,0x00,0x27,0x00,0x49,0x01,0x8f,0x00,0x27,0x00,0x49,0x01,0x91,0x00,0x27,0x00,0x49,0x01,0x93,0x00,0x21,0x00,0x4a,0x00,0x4d,0x00,0x2f,0x00,0x4a, -0x01,0x64,0x00,0x2f,0x00,0x4d,0x00,0x4d,0x00,0x23,0x00,0x4d,0x01,0x64,0x00,0x23,0x00,0x4e,0x00,0x0f,0x00,0x52,0x00,0x4e,0x00,0x10,0xff,0x75,0x00,0x4e,0x00,0x11,0x00,0x52,0x00,0x4e,0x00,0x1d,0x00,0x52,0x00,0x4e,0x00,0x1e,0x00,0x52,0x00,0x4e,0x00,0x46,0xff,0xd7,0x00,0x4e,0x00,0x47,0xff,0xe5,0x00,0x4e,0x00,0x48,0xff,0xd7, -0x00,0x4e,0x00,0x4a,0xff,0xd7,0x00,0x4e,0x00,0x52,0xff,0xd7,0x00,0x4e,0x00,0x54,0xff,0xe5,0x00,0x4e,0x00,0x57,0xff,0xf0,0x00,0x4e,0x00,0x6f,0xff,0xe5,0x00,0x4e,0x00,0x70,0xff,0xd7,0x00,0x4e,0x00,0x71,0xff,0xd7,0x00,0x4e,0x00,0x72,0xff,0xd7,0x00,0x4e,0x00,0x73,0xff,0xd7,0x00,0x4e,0x00,0x79,0xff,0xd7,0x00,0x4e,0x00,0x7a, -0xff,0xd7,0x00,0x4e,0x00,0x7b,0xff,0xd7,0x00,0x4e,0x00,0x7c,0xff,0xd7,0x00,0x4e,0x00,0x7d,0xff,0xd7,0x00,0x4e,0x00,0xac,0x00,0x52,0x00,0x4e,0x00,0xb1,0xff,0xd7,0x00,0x4e,0x00,0xf8,0xff,0xd7,0x00,0x4e,0x00,0xfd,0xff,0xd7,0x00,0x4e,0x00,0xff,0xff,0xd7,0x00,0x4e,0x01,0x00,0xff,0xe5,0x00,0x4e,0x01,0x08,0xff,0xe5,0x00,0x4e, -0x01,0x0b,0xff,0xd7,0x00,0x4e,0x01,0x0d,0xff,0xd7,0x00,0x4e,0x01,0x19,0xff,0xd7,0x00,0x4e,0x01,0x21,0xff,0xf0,0x00,0x4e,0x01,0x23,0xff,0xf0,0x00,0x4e,0x01,0x48,0xff,0xd7,0x00,0x4e,0x01,0x4c,0xff,0xd7,0x00,0x4e,0x01,0x4e,0xff,0xd7,0x00,0x4e,0x01,0x50,0xff,0xd7,0x00,0x4e,0x01,0x52,0xff,0xd7,0x00,0x4e,0x01,0x54,0xff,0xd7, -0x00,0x4e,0x01,0x56,0xff,0xd7,0x00,0x4e,0x01,0x6f,0xff,0xd7,0x00,0x4e,0x01,0x71,0xff,0xd7,0x00,0x4e,0x01,0x77,0xff,0xf0,0x00,0x4e,0x01,0x8a,0xff,0xd7,0x00,0x51,0x00,0x05,0xff,0x98,0x00,0x51,0x00,0x0a,0xff,0x98,0x00,0x52,0x00,0x05,0xff,0x6f,0x00,0x52,0x00,0x0a,0xff,0x6f,0x00,0x52,0x00,0x44,0xff,0xe5,0x00,0x52,0x00,0x49, -0xff,0xdb,0x00,0x52,0x00,0x5b,0xff,0xe7,0x00,0x52,0x00,0x69,0xff,0xe5,0x00,0x52,0x00,0x6a,0xff,0xe5,0x00,0x52,0x00,0x6b,0xff,0xe5,0x00,0x52,0x00,0x6c,0xff,0xe5,0x00,0x52,0x00,0x6d,0xff,0xe5,0x00,0x52,0x00,0x6e,0xff,0xe5,0x00,0x52,0x00,0xa0,0xff,0xe5,0x00,0x52,0x00,0xb4,0xff,0xb2,0x00,0x52,0x00,0xb5,0xff,0x7d,0x00,0x52, -0x00,0xb6,0xff,0xbe,0x00,0x52,0x00,0xb7,0xff,0x7d,0x00,0x52,0x00,0xc0,0xff,0xe7,0x00,0x52,0x00,0xc1,0xff,0xe7,0x00,0x52,0x01,0x04,0xff,0xe5,0x00,0x52,0x01,0x06,0xff,0xe5,0x00,0x52,0x01,0x46,0xff,0xe5,0x00,0x52,0x01,0x86,0xff,0xe5,0x00,0x52,0x01,0x88,0xff,0xe5,0x00,0x53,0x00,0x44,0xff,0xe5,0x00,0x53,0x00,0x49,0xff,0xdb, -0x00,0x53,0x00,0x5b,0xff,0xe7,0x00,0x53,0x00,0x69,0xff,0xe5,0x00,0x53,0x00,0x6a,0xff,0xe5,0x00,0x53,0x00,0x6b,0xff,0xe5,0x00,0x53,0x00,0x6c,0xff,0xe5,0x00,0x53,0x00,0x6d,0xff,0xe5,0x00,0x53,0x00,0x6e,0xff,0xe5,0x00,0x53,0x00,0xa0,0xff,0xe5,0x00,0x53,0x00,0xb4,0xff,0xcb,0x00,0x53,0x00,0xb5,0xff,0x89,0x00,0x53,0x00,0xb6, -0xff,0x89,0x00,0x53,0x00,0xb7,0xff,0x89,0x00,0x53,0x00,0xc0,0xff,0xe7,0x00,0x53,0x00,0xc1,0xff,0xe7,0x00,0x53,0x01,0x04,0xff,0xe5,0x00,0x53,0x01,0x06,0xff,0xe5,0x00,0x53,0x01,0x46,0xff,0xe5,0x00,0x53,0x01,0x86,0xff,0xe5,0x00,0x53,0x01,0x88,0xff,0xe5,0x00,0x54,0x00,0x4d,0x00,0x66,0x00,0x54,0x01,0x64,0x00,0x66,0x00,0x55, -0x00,0x0f,0xff,0x62,0x00,0x55,0x00,0x10,0xff,0x7f,0x00,0x55,0x00,0x11,0xff,0x56,0x00,0x55,0x00,0x1d,0x00,0x52,0x00,0x55,0x00,0x1e,0x00,0x52,0x00,0x55,0x00,0x46,0xff,0xe5,0x00,0x55,0x00,0x47,0xff,0xe5,0x00,0x55,0x00,0x48,0xff,0xe5,0x00,0x55,0x00,0x49,0x00,0x27,0x00,0x55,0x00,0x4a,0xff,0xe5,0x00,0x55,0x00,0x50,0xff,0xfc, -0x00,0x55,0x00,0x51,0xff,0xfc,0x00,0x55,0x00,0x52,0xff,0xe5,0x00,0x55,0x00,0x54,0xff,0xe5,0x00,0x55,0x00,0x56,0x00,0x0e,0x00,0x55,0x00,0x57,0x00,0x3b,0x00,0x55,0x00,0x59,0x00,0x52,0x00,0x55,0x00,0x5a,0x00,0x52,0x00,0x55,0x00,0x5b,0x00,0x3b,0x00,0x55,0x00,0x5c,0x00,0x52,0x00,0x55,0x00,0x5d,0x00,0x27,0x00,0x55,0x00,0x6f, -0xff,0xe5,0x00,0x55,0x00,0x70,0xff,0xe5,0x00,0x55,0x00,0x71,0xff,0xe5,0x00,0x55,0x00,0x72,0xff,0xe5,0x00,0x55,0x00,0x73,0xff,0xe5,0x00,0x55,0x00,0x79,0xff,0xe5,0x00,0x55,0x00,0x7a,0xff,0xe5,0x00,0x55,0x00,0x7b,0xff,0xe5,0x00,0x55,0x00,0x7c,0xff,0xe5,0x00,0x55,0x00,0x7d,0xff,0xe5,0x00,0x55,0x00,0xac,0xff,0x56,0x00,0x55, -0x00,0xb1,0xff,0xe5,0x00,0x55,0x00,0xb4,0x00,0xa4,0x00,0x55,0x00,0xb5,0x00,0x79,0x00,0x55,0x00,0xb6,0x00,0xa4,0x00,0x55,0x00,0xb7,0x00,0x79,0x00,0x55,0x00,0xc4,0xff,0x62,0x00,0x55,0x00,0xc5,0xff,0x62,0x00,0x55,0x00,0xe4,0x00,0x0e,0x00,0x55,0x00,0xe6,0x00,0x27,0x00,0x55,0x00,0xeb,0x00,0x52,0x00,0x55,0x00,0xf8,0xff,0xe5, -0x00,0x55,0x00,0xfb,0x00,0x0e,0x00,0x55,0x00,0xfd,0xff,0xe5,0x00,0x55,0x00,0xff,0xff,0xe5,0x00,0x55,0x01,0x00,0xff,0xe5,0x00,0x55,0x01,0x08,0xff,0xe5,0x00,0x55,0x01,0x0b,0xff,0xe5,0x00,0x55,0x01,0x0d,0xff,0xe5,0x00,0x55,0x01,0x19,0xff,0xe5,0x00,0x55,0x01,0x1f,0x00,0x0e,0x00,0x55,0x01,0x21,0x00,0x3b,0x00,0x55,0x01,0x23, -0x00,0x3b,0x00,0x55,0x01,0x29,0x00,0x27,0x00,0x55,0x01,0x2b,0x00,0x27,0x00,0x55,0x01,0x48,0xff,0xe5,0x00,0x55,0x01,0x4c,0xff,0xe5,0x00,0x55,0x01,0x4e,0xff,0xe5,0x00,0x55,0x01,0x50,0xff,0xe5,0x00,0x55,0x01,0x52,0xff,0xe5,0x00,0x55,0x01,0x54,0xff,0xe5,0x00,0x55,0x01,0x56,0xff,0xe5,0x00,0x55,0x01,0x6d,0xff,0xfc,0x00,0x55, -0x01,0x6f,0xff,0xe5,0x00,0x55,0x01,0x71,0xff,0xe5,0x00,0x55,0x01,0x75,0x00,0x0e,0x00,0x55,0x01,0x77,0x00,0x3b,0x00,0x55,0x01,0x81,0x00,0x52,0x00,0x55,0x01,0x83,0x00,0x52,0x00,0x55,0x01,0x8a,0xff,0xe5,0x00,0x55,0x01,0x8d,0x00,0x52,0x00,0x55,0x01,0x8f,0x00,0x52,0x00,0x55,0x01,0x91,0x00,0x52,0x00,0x55,0x01,0x93,0x00,0x52, -0x00,0x55,0x02,0x3e,0x00,0x0e,0x00,0x57,0x00,0x10,0xff,0x8f,0x00,0x57,0x00,0x22,0xff,0xcb,0x00,0x57,0x00,0x46,0xff,0xe5,0x00,0x57,0x00,0x47,0xff,0xe5,0x00,0x57,0x00,0x48,0xff,0xf0,0x00,0x57,0x00,0x4a,0xff,0xf0,0x00,0x57,0x00,0x52,0xff,0xf0,0x00,0x57,0x00,0x54,0xff,0xf0,0x00,0x57,0x00,0x5b,0x00,0x1d,0x00,0x57,0x00,0x6f, -0xff,0xe5,0x00,0x57,0x00,0x70,0xff,0xf0,0x00,0x57,0x00,0x71,0xff,0xf0,0x00,0x57,0x00,0x72,0xff,0xf0,0x00,0x57,0x00,0x73,0xff,0xf0,0x00,0x57,0x00,0x79,0xff,0xf0,0x00,0x57,0x00,0x7a,0xff,0xf0,0x00,0x57,0x00,0x7b,0xff,0xf0,0x00,0x57,0x00,0x7c,0xff,0xf0,0x00,0x57,0x00,0x7d,0xff,0xf0,0x00,0x57,0x00,0xab,0x00,0x27,0x00,0x57, -0x00,0xb1,0xff,0xf0,0x00,0x57,0x00,0xbf,0x00,0x27,0x00,0x57,0x00,0xf8,0xff,0xf0,0x00,0x57,0x00,0xfd,0xff,0xe5,0x00,0x57,0x00,0xff,0xff,0xe5,0x00,0x57,0x01,0x00,0xff,0xe5,0x00,0x57,0x01,0x08,0xff,0xe5,0x00,0x57,0x01,0x0b,0xff,0xf0,0x00,0x57,0x01,0x0d,0xff,0xf0,0x00,0x57,0x01,0x19,0xff,0xf0,0x00,0x57,0x01,0x48,0xff,0xe5, -0x00,0x57,0x01,0x4c,0xff,0xf0,0x00,0x57,0x01,0x4e,0xff,0xf0,0x00,0x57,0x01,0x50,0xff,0xf0,0x00,0x57,0x01,0x52,0xff,0xf0,0x00,0x57,0x01,0x54,0xff,0xf0,0x00,0x57,0x01,0x56,0xff,0xf0,0x00,0x57,0x01,0x6f,0xff,0xf0,0x00,0x57,0x01,0x71,0xff,0xf0,0x00,0x57,0x01,0x8a,0xff,0xf0,0x00,0x58,0x00,0x05,0xff,0xbe,0x00,0x58,0x00,0x0a, -0xff,0xbe,0x00,0x59,0x00,0x0f,0xff,0x8b,0x00,0x59,0x00,0x11,0xff,0x7f,0x00,0x59,0x00,0x44,0xff,0xdb,0x00,0x59,0x00,0x46,0xff,0xf4,0x00,0x59,0x00,0x47,0xff,0xf0,0x00,0x59,0x00,0x48,0xff,0xf4,0x00,0x59,0x00,0x4a,0xff,0xf4,0x00,0x59,0x00,0x52,0xff,0xf4,0x00,0x59,0x00,0x54,0xff,0xf0,0x00,0x59,0x00,0x69,0xff,0xdb,0x00,0x59, -0x00,0x6a,0xff,0xdb,0x00,0x59,0x00,0x6b,0xff,0xdb,0x00,0x59,0x00,0x6c,0xff,0xdb,0x00,0x59,0x00,0x6d,0xff,0xdb,0x00,0x59,0x00,0x6e,0xff,0xdb,0x00,0x59,0x00,0x6f,0xff,0xf4,0x00,0x59,0x00,0x70,0xff,0xf4,0x00,0x59,0x00,0x71,0xff,0xf4,0x00,0x59,0x00,0x72,0xff,0xf4,0x00,0x59,0x00,0x73,0xff,0xf4,0x00,0x59,0x00,0x79,0xff,0xf4, -0x00,0x59,0x00,0x7a,0xff,0xf4,0x00,0x59,0x00,0x7b,0xff,0xf4,0x00,0x59,0x00,0x7c,0xff,0xf4,0x00,0x59,0x00,0x7d,0xff,0xf4,0x00,0x59,0x00,0xa0,0xff,0xdb,0x00,0x59,0x00,0xac,0xff,0x7f,0x00,0x59,0x00,0xb1,0xff,0xf4,0x00,0x59,0x00,0xc4,0xff,0x8b,0x00,0x59,0x00,0xc5,0xff,0x7f,0x00,0x59,0x00,0xf8,0xff,0xf4,0x00,0x59,0x00,0xfd, -0xff,0xf4,0x00,0x59,0x00,0xff,0xff,0xf4,0x00,0x59,0x01,0x00,0xff,0xf0,0x00,0x59,0x01,0x04,0xff,0xdb,0x00,0x59,0x01,0x06,0xff,0xdb,0x00,0x59,0x01,0x08,0xff,0xf0,0x00,0x59,0x01,0x0b,0xff,0xf4,0x00,0x59,0x01,0x0d,0xff,0xf4,0x00,0x59,0x01,0x19,0xff,0xf4,0x00,0x59,0x01,0x46,0xff,0xdb,0x00,0x59,0x01,0x48,0xff,0xf4,0x00,0x59, -0x01,0x4c,0xff,0xf4,0x00,0x59,0x01,0x4e,0xff,0xf4,0x00,0x59,0x01,0x50,0xff,0xf4,0x00,0x59,0x01,0x52,0xff,0xf4,0x00,0x59,0x01,0x54,0xff,0xf4,0x00,0x59,0x01,0x56,0xff,0xf4,0x00,0x59,0x01,0x6f,0xff,0xf4,0x00,0x59,0x01,0x71,0xff,0xf4,0x00,0x59,0x01,0x86,0xff,0xdb,0x00,0x59,0x01,0x88,0xff,0xdb,0x00,0x59,0x01,0x8a,0xff,0xf4, -0x00,0x5a,0x00,0x0f,0xff,0xa6,0x00,0x5a,0x00,0x11,0xff,0x9a,0x00,0x5a,0x00,0x46,0xff,0xfa,0x00,0x5a,0x00,0x47,0xff,0xf6,0x00,0x5a,0x00,0x48,0xff,0xf6,0x00,0x5a,0x00,0x4a,0xff,0xfa,0x00,0x5a,0x00,0x52,0xff,0xfa,0x00,0x5a,0x00,0x54,0xff,0xf6,0x00,0x5a,0x00,0x6f,0xff,0xfa,0x00,0x5a,0x00,0x70,0xff,0xf6,0x00,0x5a,0x00,0x71, -0xff,0xf6,0x00,0x5a,0x00,0x72,0xff,0xf6,0x00,0x5a,0x00,0x73,0xff,0xf6,0x00,0x5a,0x00,0x79,0xff,0xfa,0x00,0x5a,0x00,0x7a,0xff,0xfa,0x00,0x5a,0x00,0x7b,0xff,0xfa,0x00,0x5a,0x00,0x7c,0xff,0xfa,0x00,0x5a,0x00,0x7d,0xff,0xfa,0x00,0x5a,0x00,0xac,0xff,0x9a,0x00,0x5a,0x00,0xb1,0xff,0xfa,0x00,0x5a,0x00,0xc4,0xff,0xb4,0x00,0x5a, -0x00,0xc5,0xff,0xb4,0x00,0x5a,0x00,0xf8,0xff,0xfa,0x00,0x5a,0x00,0xfd,0xff,0xfa,0x00,0x5a,0x00,0xff,0xff,0xfa,0x00,0x5a,0x01,0x00,0xff,0xf6,0x00,0x5a,0x01,0x08,0xff,0xf6,0x00,0x5a,0x01,0x0b,0xff,0xf6,0x00,0x5a,0x01,0x0d,0xff,0xf6,0x00,0x5a,0x01,0x19,0xff,0xfa,0x00,0x5a,0x01,0x48,0xff,0xfa,0x00,0x5a,0x01,0x4c,0xff,0xf6, -0x00,0x5a,0x01,0x4e,0xff,0xf6,0x00,0x5a,0x01,0x50,0xff,0xf6,0x00,0x5a,0x01,0x52,0xff,0xfa,0x00,0x5a,0x01,0x54,0xff,0xfa,0x00,0x5a,0x01,0x56,0xff,0xfa,0x00,0x5a,0x01,0x6f,0xff,0xfa,0x00,0x5a,0x01,0x71,0xff,0xfa,0x00,0x5a,0x01,0x8a,0xff,0xfa,0x00,0x5b,0x00,0x46,0xff,0xf0,0x00,0x5b,0x00,0x47,0xff,0xf0,0x00,0x5b,0x00,0x48, -0xff,0xf0,0x00,0x5b,0x00,0x4a,0xff,0xf0,0x00,0x5b,0x00,0x52,0xff,0xf0,0x00,0x5b,0x00,0x54,0xff,0xf0,0x00,0x5b,0x00,0x6f,0xff,0xf0,0x00,0x5b,0x00,0x70,0xff,0xf0,0x00,0x5b,0x00,0x71,0xff,0xf0,0x00,0x5b,0x00,0x72,0xff,0xf0,0x00,0x5b,0x00,0x73,0xff,0xf0,0x00,0x5b,0x00,0x79,0xff,0xf0,0x00,0x5b,0x00,0x7a,0xff,0xf0,0x00,0x5b, -0x00,0x7b,0xff,0xf0,0x00,0x5b,0x00,0x7c,0xff,0xf0,0x00,0x5b,0x00,0x7d,0xff,0xf0,0x00,0x5b,0x00,0xb1,0xff,0xf0,0x00,0x5b,0x00,0xf8,0xff,0xf0,0x00,0x5b,0x00,0xfd,0xff,0xf0,0x00,0x5b,0x00,0xff,0xff,0xf0,0x00,0x5b,0x01,0x00,0xff,0xf0,0x00,0x5b,0x01,0x08,0xff,0xf0,0x00,0x5b,0x01,0x0b,0xff,0xf0,0x00,0x5b,0x01,0x0d,0xff,0xf0, -0x00,0x5b,0x01,0x19,0xff,0xf0,0x00,0x5b,0x01,0x48,0xff,0xf0,0x00,0x5b,0x01,0x4c,0xff,0xf0,0x00,0x5b,0x01,0x4e,0xff,0xf0,0x00,0x5b,0x01,0x50,0xff,0xf0,0x00,0x5b,0x01,0x52,0xff,0xf0,0x00,0x5b,0x01,0x54,0xff,0xf0,0x00,0x5b,0x01,0x56,0xff,0xf0,0x00,0x5b,0x01,0x6f,0xff,0xf0,0x00,0x5b,0x01,0x71,0xff,0xf0,0x00,0x5b,0x01,0x8a, -0xff,0xf0,0x00,0x5c,0x00,0x05,0x00,0x1d,0x00,0x5c,0x00,0x0a,0x00,0x1d,0x00,0x5c,0x00,0x0f,0xff,0x9a,0x00,0x5c,0x00,0x11,0xff,0x81,0x00,0x5c,0x00,0x22,0xff,0xb4,0x00,0x5c,0x00,0x46,0xff,0xf6,0x00,0x5c,0x00,0x47,0xff,0xf6,0x00,0x5c,0x00,0x48,0xff,0xf6,0x00,0x5c,0x00,0x49,0x00,0x04,0x00,0x5c,0x00,0x4a,0xff,0xf6,0x00,0x5c, -0x00,0x52,0xff,0xf6,0x00,0x5c,0x00,0x54,0xff,0xf6,0x00,0x5c,0x00,0x57,0x00,0x06,0x00,0x5c,0x00,0x6f,0xff,0xf6,0x00,0x5c,0x00,0x70,0xff,0xf6,0x00,0x5c,0x00,0x71,0xff,0xf6,0x00,0x5c,0x00,0x72,0xff,0xf6,0x00,0x5c,0x00,0x73,0xff,0xf6,0x00,0x5c,0x00,0x79,0xff,0xf6,0x00,0x5c,0x00,0x7a,0xff,0xf6,0x00,0x5c,0x00,0x7b,0xff,0xf6, -0x00,0x5c,0x00,0x7c,0xff,0xf6,0x00,0x5c,0x00,0x7d,0xff,0xf6,0x00,0x5c,0x00,0xac,0xff,0x81,0x00,0x5c,0x00,0xb1,0xff,0xf6,0x00,0x5c,0x00,0xbf,0x00,0x0c,0x00,0x5c,0x00,0xc4,0xff,0x8d,0x00,0x5c,0x00,0xc5,0xff,0x8d,0x00,0x5c,0x00,0xf8,0xff,0xf6,0x00,0x5c,0x00,0xfd,0xff,0xf6,0x00,0x5c,0x00,0xff,0xff,0xf6,0x00,0x5c,0x01,0x00, -0xff,0xf6,0x00,0x5c,0x01,0x08,0xff,0xf6,0x00,0x5c,0x01,0x0b,0xff,0xf6,0x00,0x5c,0x01,0x0d,0xff,0xf6,0x00,0x5c,0x01,0x19,0xff,0xf6,0x00,0x5c,0x01,0x21,0x00,0x06,0x00,0x5c,0x01,0x23,0x00,0x06,0x00,0x5c,0x01,0x48,0xff,0xf6,0x00,0x5c,0x01,0x4c,0xff,0xf6,0x00,0x5c,0x01,0x4e,0xff,0xf6,0x00,0x5c,0x01,0x50,0xff,0xf6,0x00,0x5c, -0x01,0x52,0xff,0xf6,0x00,0x5c,0x01,0x54,0xff,0xf6,0x00,0x5c,0x01,0x56,0xff,0xf6,0x00,0x5c,0x01,0x6f,0xff,0xf6,0x00,0x5c,0x01,0x71,0xff,0xf6,0x00,0x5c,0x01,0x77,0x00,0x06,0x00,0x5c,0x01,0x8a,0xff,0xf6,0x00,0x5e,0x00,0x4d,0x00,0xcb,0x00,0x5e,0x01,0x64,0x00,0xcb,0x00,0x62,0x00,0x2d,0x00,0x5e,0x00,0x62,0x00,0x37,0xff,0x6d, -0x00,0x62,0x00,0x39,0xff,0x8b,0x00,0x62,0x00,0x3a,0xff,0xb0,0x00,0x62,0x00,0x3c,0xff,0x64,0x00,0x62,0x00,0xea,0xff,0x64,0x00,0x62,0x01,0x20,0xff,0x6d,0x00,0x62,0x01,0x22,0xff,0x6d,0x00,0x62,0x01,0x63,0x00,0x5e,0x00,0x62,0x01,0x76,0xff,0x6d,0x00,0x62,0x01,0x80,0xff,0xb0,0x00,0x62,0x01,0x82,0xff,0x64,0x00,0x62,0x01,0x8c, -0xff,0xb0,0x00,0x62,0x01,0x8e,0xff,0xb0,0x00,0x62,0x01,0x90,0xff,0xb0,0x00,0x62,0x01,0x92,0xff,0x64,0x00,0x63,0x00,0x2d,0x00,0x5e,0x00,0x63,0x00,0x37,0xff,0x6d,0x00,0x63,0x00,0x39,0xff,0x8b,0x00,0x63,0x00,0x3a,0xff,0xb6,0x00,0x63,0x00,0x3c,0xff,0x64,0x00,0x63,0x00,0xea,0xff,0x64,0x00,0x63,0x01,0x20,0xff,0x6d,0x00,0x63, -0x01,0x22,0xff,0x6d,0x00,0x63,0x01,0x63,0x00,0x5e,0x00,0x63,0x01,0x76,0xff,0x6d,0x00,0x63,0x01,0x80,0xff,0xb6,0x00,0x63,0x01,0x82,0xff,0x64,0x00,0x63,0x01,0x8c,0xff,0xb6,0x00,0x63,0x01,0x8e,0xff,0xb6,0x00,0x63,0x01,0x90,0xff,0xb6,0x00,0x63,0x01,0x92,0xff,0x64,0x00,0x64,0x00,0x26,0xff,0xc9,0x00,0x64,0x00,0x2a,0xff,0xc9, -0x00,0x64,0x00,0x32,0xff,0xc9,0x00,0x64,0x00,0x34,0xff,0xc9,0x00,0x64,0x00,0xf7,0xff,0xc9,0x00,0x64,0x00,0xfc,0xff,0xc9,0x00,0x64,0x00,0xfe,0xff,0xc9,0x00,0x64,0x01,0x18,0xff,0xc9,0x00,0x64,0x01,0x47,0xff,0xc9,0x00,0x64,0x01,0x51,0xff,0xc9,0x00,0x64,0x01,0x53,0xff,0xc9,0x00,0x64,0x01,0x55,0xff,0xc9,0x00,0x64,0x01,0x6e, -0xff,0xc9,0x00,0x64,0x01,0x70,0xff,0xc9,0x00,0x64,0x01,0x89,0xff,0xc9,0x00,0x65,0x00,0x2d,0x00,0x3d,0x00,0x65,0x01,0x63,0x00,0x3d,0x00,0x67,0x00,0x24,0xff,0xe5,0x00,0x67,0x00,0x37,0xff,0xa4,0x00,0x67,0x00,0x3b,0xff,0xdb,0x00,0x67,0x00,0x3d,0xff,0xcf,0x00,0x67,0x00,0xe5,0xff,0xcf,0x00,0x67,0x01,0x03,0xff,0xe5,0x00,0x67, -0x01,0x05,0xff,0xe5,0x00,0x67,0x01,0x20,0xff,0xa4,0x00,0x67,0x01,0x22,0xff,0xa4,0x00,0x67,0x01,0x28,0xff,0xcf,0x00,0x67,0x01,0x2a,0xff,0xcf,0x00,0x67,0x01,0x45,0xff,0xe5,0x00,0x67,0x01,0x76,0xff,0xa4,0x00,0x67,0x01,0x85,0xff,0xe5,0x00,0x67,0x01,0x87,0xff,0xe5,0x00,0x79,0x00,0x44,0xff,0xe5,0x00,0x79,0x00,0x49,0xff,0xe7, -0x00,0x79,0x00,0x5b,0xff,0xe5,0x00,0x79,0x00,0xc0,0xff,0xe7,0x00,0x79,0x00,0xc1,0xff,0xe7,0x00,0x79,0x01,0x06,0xff,0xe5,0x00,0x79,0x01,0x88,0xff,0xe5,0x00,0x7a,0x00,0x44,0xff,0xe5,0x00,0x7a,0x00,0x49,0xff,0xe7,0x00,0x7a,0x00,0x5b,0xff,0xe5,0x00,0x7a,0x00,0xc0,0xff,0xe7,0x00,0x7a,0x00,0xc1,0xff,0xe7,0x00,0x7a,0x01,0x06, -0xff,0xe5,0x00,0x7a,0x01,0x88,0xff,0xe5,0x00,0x7b,0x00,0x44,0xff,0xe5,0x00,0x7b,0x00,0x49,0xff,0xe7,0x00,0x7b,0x00,0x5b,0xff,0xe5,0x00,0x7b,0x00,0xc0,0xff,0xe7,0x00,0x7b,0x00,0xc1,0xff,0xe7,0x00,0x7b,0x01,0x06,0xff,0xe5,0x00,0x7b,0x01,0x88,0xff,0xe5,0x00,0x7c,0x00,0x44,0xff,0xe5,0x00,0x7c,0x00,0x49,0xff,0xe7,0x00,0x7c, -0x00,0x5b,0xff,0xe5,0x00,0x7c,0x00,0xc0,0xff,0xe7,0x00,0x7c,0x00,0xc1,0xff,0xe7,0x00,0x7c,0x01,0x06,0xff,0xe5,0x00,0x7c,0x01,0x88,0xff,0xe5,0x00,0x7d,0x00,0x44,0xff,0xe5,0x00,0x7d,0x00,0x49,0xff,0xe7,0x00,0x7d,0x00,0x5b,0xff,0xe5,0x00,0x7d,0x00,0xc0,0xff,0xe7,0x00,0x7d,0x00,0xc1,0xff,0xe7,0x00,0x7d,0x01,0x06,0xff,0xe5, -0x00,0x7d,0x01,0x88,0xff,0xe5,0x00,0x91,0x00,0x2d,0x00,0x0e,0x00,0x91,0x01,0x63,0x00,0x0e,0x00,0x92,0x00,0x24,0xff,0xe5,0x00,0x92,0x00,0x37,0xff,0xa4,0x00,0x92,0x00,0x3b,0xff,0xdb,0x00,0x92,0x00,0x3d,0xff,0xcf,0x00,0x92,0x00,0xe5,0xff,0xcf,0x00,0x92,0x01,0x03,0xff,0xe5,0x00,0x92,0x01,0x05,0xff,0xe5,0x00,0x92,0x01,0x20, -0xff,0xa4,0x00,0x92,0x01,0x22,0xff,0xa4,0x00,0x92,0x01,0x28,0xff,0xcf,0x00,0x92,0x01,0x2a,0xff,0xcf,0x00,0x92,0x01,0x45,0xff,0xe5,0x00,0x92,0x01,0x76,0xff,0xa4,0x00,0x92,0x01,0x85,0xff,0xe5,0x00,0x92,0x01,0x87,0xff,0xe5,0x00,0xa1,0x00,0x44,0xff,0xe5,0x00,0xa1,0x00,0x49,0xff,0xe7,0x00,0xa1,0x00,0x5b,0xff,0xe5,0x00,0xa1, -0x00,0xc0,0xff,0xe7,0x00,0xa1,0x00,0xc1,0xff,0xe7,0x00,0xa1,0x01,0x06,0xff,0xe5,0x00,0xa1,0x01,0x88,0xff,0xe5,0x00,0xa2,0x00,0x3c,0xff,0x9a,0x00,0xa2,0x00,0x4d,0x00,0xbc,0x00,0xa2,0x00,0xea,0xff,0x9a,0x00,0xa2,0x01,0x64,0x00,0xbc,0x00,0xa2,0x01,0x82,0xff,0x9a,0x00,0xa2,0x01,0x92,0xff,0x9a,0x00,0xa4,0x00,0x4d,0x00,0xa0, -0x00,0xa4,0x01,0x33,0xff,0xdb,0x00,0xa4,0x01,0x64,0x00,0xa0,0x00,0xa4,0x02,0x37,0xff,0xdb,0x00,0xa9,0x00,0x0d,0xff,0x7f,0x00,0xa9,0x00,0x8d,0xff,0x98,0x00,0xa9,0x00,0xb4,0xff,0x66,0x00,0xa9,0x00,0xb5,0xff,0x3d,0x00,0xa9,0x00,0xb6,0xff,0x66,0x00,0xa9,0x00,0xb7,0xff,0x3d,0x00,0xa9,0x01,0x2d,0xff,0xd5,0x00,0xa9,0x01,0x2e, -0xff,0xd5,0x00,0xa9,0x01,0x33,0xff,0xa4,0x00,0xa9,0x01,0xb4,0xff,0xd5,0x00,0xa9,0x01,0xb7,0x00,0x3d,0x00,0xa9,0x01,0xb8,0xff,0x66,0x00,0xa9,0x01,0xb9,0xff,0x66,0x00,0xa9,0x01,0xba,0x00,0x3d,0x00,0xa9,0x01,0xbb,0xff,0x79,0x00,0xa9,0x01,0xbc,0x00,0x12,0x00,0xa9,0x01,0xbe,0xff,0x66,0x00,0xa9,0x01,0xc3,0xff,0xf6,0x00,0xa9, -0x01,0xc5,0xff,0xb6,0x00,0xa9,0x01,0xc8,0xff,0xf4,0x00,0xa9,0x01,0xcb,0x00,0x3d,0x00,0xa9,0x01,0xcd,0xff,0xdb,0x00,0xa9,0x01,0xd2,0xff,0xf6,0x00,0xa9,0x01,0xd3,0xff,0xc1,0x00,0xa9,0x01,0xd4,0xff,0xf6,0x00,0xa9,0x01,0xd7,0xff,0xf6,0x00,0xa9,0x01,0xd9,0xff,0xf6,0x00,0xaa,0x00,0x2d,0x00,0x52,0x00,0xaa,0x00,0x37,0xff,0xcf, -0x00,0xaa,0x00,0x3a,0x00,0x52,0x00,0xaa,0x00,0x3d,0x00,0x52,0x00,0xaa,0x00,0x5c,0x00,0x0c,0x00,0xaa,0x00,0xe5,0x00,0x52,0x00,0xaa,0x00,0xeb,0x00,0x0c,0x00,0xaa,0x01,0x20,0xff,0xcf,0x00,0xaa,0x01,0x22,0xff,0xcf,0x00,0xaa,0x01,0x28,0x00,0x52,0x00,0xaa,0x01,0x2a,0x00,0x52,0x00,0xaa,0x01,0x63,0x00,0x52,0x00,0xaa,0x01,0x76, -0xff,0xcf,0x00,0xaa,0x01,0x80,0x00,0x52,0x00,0xaa,0x01,0x83,0x00,0x0c,0x00,0xaa,0x01,0x8c,0x00,0x52,0x00,0xaa,0x01,0x8e,0x00,0x52,0x00,0xaa,0x01,0x90,0x00,0x52,0x00,0xaa,0x01,0x93,0x00,0x0c,0x00,0xaa,0x01,0xac,0x00,0x52,0x00,0xaa,0x01,0xb8,0xff,0xcd,0x00,0xaa,0x01,0xdc,0xff,0xcd,0x00,0xaa,0x01,0xe1,0x00,0x52,0x00,0xaa, -0x01,0xe3,0xff,0xcd,0x00,0xaa,0x01,0xeb,0x00,0x52,0x00,0xaa,0x01,0xf2,0x00,0x52,0x00,0xaa,0x01,0xf9,0xff,0xcd,0x00,0xaa,0x02,0x01,0xff,0xcd,0x00,0xaa,0x02,0x1a,0x00,0x0e,0x00,0xaa,0x02,0x31,0x00,0x0e,0x00,0xab,0x00,0x37,0xff,0xcf,0x00,0xab,0x00,0x39,0xff,0xcf,0x00,0xab,0x00,0x3a,0xff,0xcf,0x00,0xab,0x00,0x3c,0xff,0x9a, -0x00,0xab,0x00,0xea,0xff,0x9a,0x00,0xab,0x01,0x20,0xff,0xcf,0x00,0xab,0x01,0x22,0xff,0xcf,0x00,0xab,0x01,0x76,0xff,0xcf,0x00,0xab,0x01,0x80,0xff,0xcf,0x00,0xab,0x01,0x82,0xff,0x9a,0x00,0xab,0x01,0x8c,0xff,0xcf,0x00,0xab,0x01,0x8e,0xff,0xcf,0x00,0xab,0x01,0x90,0xff,0xcf,0x00,0xab,0x01,0x92,0xff,0x9a,0x00,0xab,0x01,0xb8, -0xff,0xcd,0x00,0xab,0x01,0xb9,0xff,0x98,0x00,0xab,0x01,0xdc,0xff,0xcd,0x00,0xab,0x01,0xe3,0xff,0xcd,0x00,0xab,0x01,0xf9,0xff,0xcd,0x00,0xab,0x02,0x01,0xff,0xcd,0x00,0xac,0x00,0xb4,0xff,0x31,0x00,0xac,0x00,0xb5,0xff,0x3d,0x00,0xac,0x00,0xb6,0xff,0x31,0x00,0xac,0x00,0xb7,0xff,0x3d,0x00,0xad,0x00,0x2d,0x00,0x5e,0x00,0xad, -0x00,0x37,0xff,0x6d,0x00,0xad,0x00,0x39,0xff,0x8b,0x00,0xad,0x00,0x3a,0xff,0xb6,0x00,0xad,0x00,0x3c,0xff,0x64,0x00,0xad,0x00,0xea,0xff,0x64,0x00,0xad,0x01,0x20,0xff,0x6d,0x00,0xad,0x01,0x22,0xff,0x6d,0x00,0xad,0x01,0x63,0x00,0x5e,0x00,0xad,0x01,0x76,0xff,0x6d,0x00,0xad,0x01,0x80,0xff,0xb6,0x00,0xad,0x01,0x82,0xff,0x64, -0x00,0xad,0x01,0x8c,0xff,0xb6,0x00,0xad,0x01,0x8e,0xff,0xb6,0x00,0xad,0x01,0x90,0xff,0xb6,0x00,0xad,0x01,0x92,0xff,0x64,0x00,0xae,0x00,0x2d,0x00,0x5e,0x00,0xae,0x00,0x37,0xff,0x6d,0x00,0xae,0x00,0x39,0xff,0x8b,0x00,0xae,0x00,0x3a,0xff,0xb6,0x00,0xae,0x00,0x3c,0xff,0x64,0x00,0xae,0x00,0xea,0xff,0x64,0x00,0xae,0x01,0x20, -0xff,0x6d,0x00,0xae,0x01,0x22,0xff,0x6d,0x00,0xae,0x01,0x63,0x00,0x5e,0x00,0xae,0x01,0x76,0xff,0x6d,0x00,0xae,0x01,0x80,0xff,0xb6,0x00,0xae,0x01,0x82,0xff,0x64,0x00,0xae,0x01,0x8c,0xff,0xb6,0x00,0xae,0x01,0x8e,0xff,0xb6,0x00,0xae,0x01,0x90,0xff,0xb6,0x00,0xae,0x01,0x92,0xff,0x64,0x00,0xaf,0x00,0x24,0xff,0xe5,0x00,0xaf, -0x00,0x37,0xff,0xa4,0x00,0xaf,0x00,0x3b,0xff,0xdb,0x00,0xaf,0x00,0x3d,0xff,0xcf,0x00,0xaf,0x00,0xe5,0xff,0xcf,0x00,0xaf,0x01,0x03,0xff,0xe5,0x00,0xaf,0x01,0x05,0xff,0xe5,0x00,0xaf,0x01,0x20,0xff,0xa4,0x00,0xaf,0x01,0x22,0xff,0xa4,0x00,0xaf,0x01,0x28,0xff,0xcf,0x00,0xaf,0x01,0x2a,0xff,0xcf,0x00,0xaf,0x01,0x45,0xff,0xe5, -0x00,0xaf,0x01,0x76,0xff,0xa4,0x00,0xaf,0x01,0x85,0xff,0xe5,0x00,0xaf,0x01,0x87,0xff,0xe5,0x00,0xb0,0x00,0x24,0x00,0x1d,0x00,0xb0,0x00,0x2d,0x00,0x44,0x00,0xb0,0x00,0x37,0x00,0x04,0x00,0xb0,0x00,0x3b,0x00,0x08,0x00,0xb0,0x01,0x03,0x00,0x1d,0x00,0xb0,0x01,0x05,0x00,0x1d,0x00,0xb0,0x01,0x20,0x00,0x04,0x00,0xb0,0x01,0x22, -0x00,0x04,0x00,0xb0,0x01,0x45,0x00,0x1d,0x00,0xb0,0x01,0x63,0x00,0x44,0x00,0xb0,0x01,0x76,0x00,0x04,0x00,0xb0,0x01,0x85,0x00,0x1d,0x00,0xb0,0x01,0x87,0x00,0x1d,0x00,0xb4,0x00,0x0f,0xff,0x98,0x00,0xb4,0x00,0x11,0xff,0x98,0x00,0xb4,0x00,0x24,0xff,0x25,0x00,0xb4,0x00,0x2d,0xff,0x62,0x00,0xb4,0x00,0x37,0x00,0x52,0x00,0xb4, -0x00,0x46,0xff,0x7f,0x00,0xb4,0x00,0x47,0xff,0x7f,0x00,0xb4,0x00,0x48,0xff,0x7f,0x00,0xb4,0x00,0x4a,0xff,0x73,0x00,0xb4,0x00,0x56,0xff,0xb2,0x00,0xb4,0x00,0x91,0xfe,0x87,0x00,0xb4,0x00,0xac,0xff,0x98,0x00,0xb4,0x00,0xe4,0xff,0xb2,0x00,0xb4,0x00,0xf8,0xff,0x73,0x00,0xb4,0x00,0xfb,0xff,0xb2,0x00,0xb4,0x00,0xfd,0xff,0x7f, -0x00,0xb4,0x00,0xff,0xff,0x7f,0x00,0xb4,0x01,0x00,0xff,0x7f,0x00,0xb4,0x01,0x03,0xff,0x25,0x00,0xb4,0x01,0x05,0xff,0x25,0x00,0xb4,0x01,0x08,0xff,0x7f,0x00,0xb4,0x01,0x0b,0xff,0x7f,0x00,0xb4,0x01,0x1f,0xff,0xb2,0x00,0xb4,0x01,0x20,0x00,0x52,0x00,0xb4,0x01,0x22,0x00,0x52,0x00,0xb4,0x01,0x45,0xff,0x25,0x00,0xb4,0x01,0x48, -0xff,0x7f,0x00,0xb4,0x01,0x52,0xff,0x73,0x00,0xb4,0x01,0x54,0xff,0x73,0x00,0xb4,0x01,0x56,0xff,0x73,0x00,0xb4,0x01,0x63,0xff,0x62,0x00,0xb4,0x01,0x75,0xff,0xb2,0x00,0xb4,0x01,0x76,0x00,0x52,0x00,0xb4,0x01,0x85,0xff,0x25,0x00,0xb4,0x01,0x87,0xff,0x25,0x00,0xb4,0x01,0xb8,0x00,0x52,0x00,0xb4,0x01,0xdc,0x00,0x52,0x00,0xb4, -0x01,0xe1,0xff,0x6f,0x00,0xb4,0x01,0xe3,0x00,0x52,0x00,0xb4,0x01,0xe7,0xff,0x23,0x00,0xb4,0x01,0xeb,0xff,0x6f,0x00,0xb4,0x01,0xf2,0xff,0x6f,0x00,0xb4,0x01,0xf9,0x00,0x52,0x00,0xb4,0x02,0x01,0x00,0x52,0x00,0xb4,0x02,0x0c,0xff,0x7f,0x00,0xb4,0x02,0x15,0xff,0x7f,0x00,0xb4,0x02,0x18,0xff,0x7f,0x00,0xb4,0x02,0x1b,0xff,0x7f, -0x00,0xb4,0x02,0x27,0xff,0x7f,0x00,0xb4,0x02,0x2a,0xff,0x7f,0x00,0xb4,0x02,0x2b,0xff,0xb0,0x00,0xb4,0x02,0x3e,0xff,0xb2,0x00,0xb5,0x00,0x0f,0xff,0x9a,0x00,0xb5,0x00,0x11,0xff,0x9a,0x00,0xb5,0x00,0x24,0xff,0x66,0x00,0xb5,0x00,0x37,0x00,0x52,0x00,0xb5,0x00,0x46,0xff,0xdd,0x00,0xb5,0x00,0x47,0xff,0x62,0x00,0xb5,0x00,0x48, -0xff,0x62,0x00,0xb5,0x00,0x4a,0xff,0x62,0x00,0xb5,0x00,0x52,0xff,0x62,0x00,0xb5,0x00,0x56,0xff,0x7f,0x00,0xb5,0x00,0x91,0xff,0x0a,0x00,0xb5,0x00,0xac,0xff,0x9a,0x00,0xb5,0x00,0xe4,0xff,0x7f,0x00,0xb5,0x00,0xf8,0xff,0x62,0x00,0xb5,0x00,0xfb,0xff,0x7f,0x00,0xb5,0x00,0xfd,0xff,0xdd,0x00,0xb5,0x00,0xff,0xff,0xdd,0x00,0xb5, -0x01,0x00,0xff,0x62,0x00,0xb5,0x01,0x03,0xff,0x66,0x00,0xb5,0x01,0x05,0xff,0x66,0x00,0xb5,0x01,0x08,0xff,0x62,0x00,0xb5,0x01,0x0b,0xff,0x62,0x00,0xb5,0x01,0x1f,0xff,0x7f,0x00,0xb5,0x01,0x20,0x00,0x52,0x00,0xb5,0x01,0x22,0x00,0x52,0x00,0xb5,0x01,0x45,0xff,0x66,0x00,0xb5,0x01,0x48,0xff,0xdd,0x00,0xb5,0x01,0x52,0xff,0x62, -0x00,0xb5,0x01,0x54,0xff,0x62,0x00,0xb5,0x01,0x56,0xff,0x62,0x00,0xb5,0x01,0x75,0xff,0x7f,0x00,0xb5,0x01,0x76,0x00,0x52,0x00,0xb5,0x01,0x85,0xff,0x66,0x00,0xb5,0x01,0x87,0xff,0x66,0x00,0xb5,0x01,0xdc,0x00,0x52,0x00,0xb5,0x01,0xe3,0x00,0x52,0x00,0xb5,0x01,0xe7,0xff,0x66,0x00,0xb5,0x01,0xf9,0x00,0x52,0x00,0xb5,0x02,0x01, -0x00,0x52,0x00,0xb5,0x02,0x0c,0xff,0x62,0x00,0xb5,0x02,0x15,0xff,0x62,0x00,0xb5,0x02,0x18,0xff,0x62,0x00,0xb5,0x02,0x1b,0xff,0x62,0x00,0xb5,0x02,0x27,0xff,0x62,0x00,0xb5,0x02,0x2a,0xff,0x62,0x00,0xb5,0x02,0x2b,0xff,0x7f,0x00,0xb5,0x02,0x3e,0xff,0x7f,0x00,0xb6,0x00,0x24,0xff,0x25,0x00,0xb6,0x00,0x26,0xff,0xbe,0x00,0xb6, -0x00,0x2d,0xff,0x6f,0x00,0xb6,0x00,0x37,0x00,0x52,0x00,0xb6,0x00,0x46,0xff,0x7f,0x00,0xb6,0x00,0x47,0xff,0x62,0x00,0xb6,0x00,0x48,0xff,0x7f,0x00,0xb6,0x00,0x4a,0xff,0x7f,0x00,0xb6,0x00,0x52,0xff,0x7f,0x00,0xb6,0x00,0x56,0xff,0xb2,0x00,0xb6,0x00,0x91,0xff,0x0a,0x00,0xb6,0x00,0xb6,0xff,0x54,0x00,0xb6,0x00,0xe4,0xff,0xb2, -0x00,0xb6,0x00,0xf8,0xff,0x7f,0x00,0xb6,0x00,0xfb,0xff,0xb2,0x00,0xb6,0x00,0xfc,0xff,0xbe,0x00,0xb6,0x00,0xfd,0xff,0x7f,0x00,0xb6,0x00,0xfe,0xff,0xbe,0x00,0xb6,0x00,0xff,0xff,0x7f,0x00,0xb6,0x01,0x00,0xff,0x62,0x00,0xb6,0x01,0x03,0xff,0x25,0x00,0xb6,0x01,0x05,0xff,0x25,0x00,0xb6,0x01,0x08,0xff,0x62,0x00,0xb6,0x01,0x0b, -0xff,0x7f,0x00,0xb6,0x01,0x1f,0xff,0xb2,0x00,0xb6,0x01,0x20,0x00,0x52,0x00,0xb6,0x01,0x22,0x00,0x52,0x00,0xb6,0x01,0x45,0xff,0x25,0x00,0xb6,0x01,0x47,0xff,0xbe,0x00,0xb6,0x01,0x48,0xff,0x7f,0x00,0xb6,0x01,0x52,0xff,0x7f,0x00,0xb6,0x01,0x54,0xff,0x7f,0x00,0xb6,0x01,0x56,0xff,0x7f,0x00,0xb6,0x01,0x63,0xff,0x6f,0x00,0xb6, -0x01,0x75,0xff,0xb2,0x00,0xb6,0x01,0x76,0x00,0x52,0x00,0xb6,0x01,0x85,0xff,0x25,0x00,0xb6,0x01,0x87,0xff,0x25,0x00,0xb6,0x01,0xdc,0x00,0x52,0x00,0xb6,0x01,0xde,0xff,0xbc,0x00,0xb6,0x01,0xe1,0xff,0x6f,0x00,0xb6,0x01,0xe3,0x00,0x52,0x00,0xb6,0x01,0xe7,0xff,0x23,0x00,0xb6,0x01,0xeb,0xff,0x6f,0x00,0xb6,0x01,0xf2,0xff,0x6f, -0x00,0xb6,0x01,0xf5,0xff,0xbc,0x00,0xb6,0x01,0xf8,0xff,0xbc,0x00,0xb6,0x01,0xf9,0x00,0x52,0x00,0xb6,0x01,0xfb,0xff,0xbc,0x00,0xb6,0x02,0x01,0x00,0x52,0x00,0xb6,0x02,0x0c,0xff,0x7f,0x00,0xb6,0x02,0x15,0xff,0x7f,0x00,0xb6,0x02,0x18,0xff,0x7f,0x00,0xb6,0x02,0x1b,0xff,0x7f,0x00,0xb6,0x02,0x27,0xff,0x7f,0x00,0xb6,0x02,0x2a, -0xff,0x7f,0x00,0xb6,0x02,0x2b,0xff,0xb0,0x00,0xb6,0x02,0x3e,0xff,0xb2,0x00,0xb7,0x00,0x0f,0xff,0x9a,0x00,0xb7,0x00,0x11,0xff,0x9a,0x00,0xb7,0x00,0x24,0xff,0x5a,0x00,0xb7,0x00,0x2d,0xff,0x62,0x00,0xb7,0x00,0x37,0x00,0x52,0x00,0xb7,0x00,0x44,0xff,0x98,0x00,0xb7,0x00,0x46,0xff,0x3d,0x00,0xb7,0x00,0x47,0xff,0x62,0x00,0xb7, -0x00,0x48,0xff,0x62,0x00,0xb7,0x00,0x4a,0xff,0x62,0x00,0xb7,0x00,0x52,0xff,0x62,0x00,0xb7,0x00,0x54,0xff,0x6f,0x00,0xb7,0x00,0x56,0xff,0x8b,0x00,0xb7,0x00,0x91,0xff,0x08,0x00,0xb7,0x00,0xac,0xff,0x9a,0x00,0xb7,0x00,0xb7,0xff,0x54,0x00,0xb7,0x00,0xc4,0xff,0x98,0x00,0xb7,0x00,0xe4,0xff,0x8b,0x00,0xb7,0x00,0xf8,0xff,0x62, -0x00,0xb7,0x00,0xfb,0xff,0x8b,0x00,0xb7,0x00,0xfd,0xff,0x3d,0x00,0xb7,0x00,0xff,0xff,0x3d,0x00,0xb7,0x01,0x00,0xff,0x62,0x00,0xb7,0x01,0x03,0xff,0x5a,0x00,0xb7,0x01,0x05,0xff,0x5a,0x00,0xb7,0x01,0x06,0xff,0x98,0x00,0xb7,0x01,0x08,0xff,0x62,0x00,0xb7,0x01,0x0b,0xff,0x62,0x00,0xb7,0x01,0x1f,0xff,0x8b,0x00,0xb7,0x01,0x20, -0x00,0x52,0x00,0xb7,0x01,0x22,0x00,0x52,0x00,0xb7,0x01,0x45,0xff,0x5a,0x00,0xb7,0x01,0x48,0xff,0x3d,0x00,0xb7,0x01,0x52,0xff,0x62,0x00,0xb7,0x01,0x54,0xff,0x62,0x00,0xb7,0x01,0x56,0xff,0x62,0x00,0xb7,0x01,0x63,0xff,0x62,0x00,0xb7,0x01,0x75,0xff,0x8b,0x00,0xb7,0x01,0x76,0x00,0x52,0x00,0xb7,0x01,0x85,0xff,0x5a,0x00,0xb7, -0x01,0x87,0xff,0x5a,0x00,0xb7,0x01,0x88,0xff,0x98,0x00,0xb7,0x01,0xdc,0x00,0x52,0x00,0xb7,0x01,0xe1,0xff,0x62,0x00,0xb7,0x01,0xe3,0x00,0x52,0x00,0xb7,0x01,0xe7,0xff,0x5a,0x00,0xb7,0x01,0xeb,0xff,0x62,0x00,0xb7,0x01,0xf2,0xff,0x62,0x00,0xb7,0x01,0xf9,0x00,0x52,0x00,0xb7,0x02,0x01,0x00,0x52,0x00,0xb7,0x02,0x07,0xff,0x96, -0x00,0xb7,0x02,0x0c,0xff,0x62,0x00,0xb7,0x02,0x15,0xff,0x62,0x00,0xb7,0x02,0x18,0xff,0x62,0x00,0xb7,0x02,0x1b,0xff,0x62,0x00,0xb7,0x02,0x27,0xff,0x62,0x00,0xb7,0x02,0x2a,0xff,0x62,0x00,0xb7,0x02,0x2b,0xff,0x8b,0x00,0xb7,0x02,0x3e,0xff,0x8b,0x00,0xba,0x00,0x46,0xff,0xf6,0x00,0xba,0x00,0x47,0xff,0xf6,0x00,0xba,0x00,0x48, -0xff,0xf6,0x00,0xba,0x00,0x4a,0xff,0xf6,0x00,0xba,0x00,0x52,0xff,0xf6,0x00,0xba,0x00,0x54,0xff,0xf6,0x00,0xba,0x00,0xf8,0xff,0xf6,0x00,0xba,0x00,0xfd,0xff,0xf6,0x00,0xba,0x00,0xff,0xff,0xf6,0x00,0xba,0x01,0x00,0xff,0xf6,0x00,0xba,0x01,0x08,0xff,0xf6,0x00,0xba,0x01,0x0b,0xff,0xf6,0x00,0xba,0x01,0x48,0xff,0xf6,0x00,0xba, -0x01,0x52,0xff,0xf6,0x00,0xba,0x01,0x54,0xff,0xf6,0x00,0xba,0x01,0x56,0xff,0xf6,0x00,0xbb,0x00,0x24,0xff,0x62,0x00,0xbb,0x00,0x26,0xff,0xe1,0x00,0xbb,0x00,0x2a,0xff,0xe1,0x00,0xbb,0x00,0x32,0xff,0xe1,0x00,0xbb,0x00,0x34,0xff,0xcd,0x00,0xbb,0x00,0x36,0xff,0xe5,0x00,0xbb,0x00,0xe3,0xff,0xe5,0x00,0xbb,0x00,0xf7,0xff,0xe1, -0x00,0xbb,0x00,0xfa,0xff,0xe5,0x00,0xbb,0x00,0xfc,0xff,0xe1,0x00,0xbb,0x00,0xfe,0xff,0xe1,0x00,0xbb,0x01,0x03,0xff,0x62,0x00,0xbb,0x01,0x05,0xff,0x62,0x00,0xbb,0x01,0x18,0xff,0xe1,0x00,0xbb,0x01,0x1e,0xff,0xe5,0x00,0xbb,0x01,0x45,0xff,0x62,0x00,0xbb,0x01,0x47,0xff,0xe1,0x00,0xbb,0x01,0x51,0xff,0xe1,0x00,0xbb,0x01,0x53, -0xff,0xe1,0x00,0xbb,0x01,0x55,0xff,0xe1,0x00,0xbb,0x01,0x6e,0xff,0xe1,0x00,0xbb,0x01,0x70,0xff,0xe1,0x00,0xbb,0x01,0x74,0xff,0xe5,0x00,0xbb,0x01,0x85,0xff,0x62,0x00,0xbb,0x01,0x87,0xff,0x62,0x00,0xbb,0x01,0x89,0xff,0xe1,0x00,0xbb,0x02,0x3d,0xff,0xe5,0x00,0xbe,0x00,0x2d,0x00,0x52,0x00,0xbe,0x00,0x37,0xff,0xcf,0x00,0xbe, -0x00,0x3a,0x00,0x27,0x00,0xbe,0x00,0x3d,0x00,0x52,0x00,0xbe,0x00,0x5c,0x00,0x0c,0x00,0xbe,0x00,0xe5,0x00,0x52,0x00,0xbe,0x00,0xeb,0x00,0x0c,0x00,0xbe,0x01,0x20,0xff,0xcf,0x00,0xbe,0x01,0x22,0xff,0xcf,0x00,0xbe,0x01,0x28,0x00,0x52,0x00,0xbe,0x01,0x2a,0x00,0x52,0x00,0xbe,0x01,0x63,0x00,0x52,0x00,0xbe,0x01,0x76,0xff,0xcf, -0x00,0xbe,0x01,0x80,0x00,0x27,0x00,0xbe,0x01,0x83,0x00,0x0c,0x00,0xbe,0x01,0x8c,0x00,0x27,0x00,0xbe,0x01,0x8e,0x00,0x27,0x00,0xbe,0x01,0x90,0x00,0x27,0x00,0xbe,0x01,0x93,0x00,0x0c,0x00,0xbe,0x01,0xdc,0xff,0xcd,0x00,0xbe,0x01,0xe1,0x00,0x52,0x00,0xbe,0x01,0xe3,0xff,0xcd,0x00,0xbe,0x01,0xeb,0x00,0x52,0x00,0xbe,0x01,0xf2, -0x00,0x52,0x00,0xbe,0x01,0xf9,0xff,0xcd,0x00,0xbe,0x02,0x01,0xff,0xcd,0x00,0xbe,0x02,0x1a,0x00,0x0e,0x00,0xbe,0x02,0x31,0x00,0x0e,0x00,0xbf,0x00,0x37,0xff,0x9a,0x00,0xbf,0x00,0x39,0xff,0xcf,0x00,0xbf,0x00,0x3a,0xff,0xcf,0x00,0xbf,0x00,0x3c,0xff,0x9a,0x00,0xbf,0x00,0xea,0xff,0x9a,0x00,0xbf,0x01,0x20,0xff,0x9a,0x00,0xbf, -0x01,0x22,0xff,0x9a,0x00,0xbf,0x01,0x76,0xff,0x9a,0x00,0xbf,0x01,0x80,0xff,0xcf,0x00,0xbf,0x01,0x82,0xff,0x9a,0x00,0xbf,0x01,0x8c,0xff,0xcf,0x00,0xbf,0x01,0x8e,0xff,0xcf,0x00,0xbf,0x01,0x90,0xff,0xcf,0x00,0xbf,0x01,0x92,0xff,0x9a,0x00,0xbf,0x01,0xdc,0xff,0x98,0x00,0xbf,0x01,0xe3,0xff,0x98,0x00,0xbf,0x01,0xf9,0xff,0x98, -0x00,0xbf,0x02,0x01,0xff,0x98,0x00,0xc4,0x00,0x2a,0xff,0xb2,0x00,0xc4,0x00,0x2d,0x00,0x6d,0x00,0xc4,0x00,0x32,0xff,0xa6,0x00,0xc4,0x00,0x37,0xff,0x31,0x00,0xc4,0x00,0x38,0xff,0xf6,0x00,0xc4,0x00,0x39,0xff,0x73,0x00,0xc4,0x00,0x3a,0xff,0x7f,0x00,0xc4,0x00,0x3b,0x00,0x39,0x00,0xc4,0x00,0x3c,0xff,0x08,0x00,0xc4,0x00,0x52, -0x00,0x19,0x00,0xc4,0x00,0x59,0xff,0x8b,0x00,0xc4,0x00,0x5a,0xff,0x7f,0x00,0xc4,0x00,0xea,0xff,0x08,0x00,0xc4,0x00,0xf7,0xff,0xb2,0x00,0xc4,0x01,0x18,0xff,0xa6,0x00,0xc4,0x01,0x20,0xff,0x31,0x00,0xc4,0x01,0x22,0xff,0x31,0x00,0xc4,0x01,0x24,0xff,0xf6,0x00,0xc4,0x01,0x26,0xff,0xf6,0x00,0xc4,0x01,0x51,0xff,0xb2,0x00,0xc4, -0x01,0x53,0xff,0xb2,0x00,0xc4,0x01,0x55,0xff,0xb2,0x00,0xc4,0x01,0x63,0x00,0x6d,0x00,0xc4,0x01,0x6e,0xff,0xa6,0x00,0xc4,0x01,0x70,0xff,0xa6,0x00,0xc4,0x01,0x76,0xff,0x31,0x00,0xc4,0x01,0x78,0xff,0xf6,0x00,0xc4,0x01,0x7a,0xff,0xf6,0x00,0xc4,0x01,0x7c,0xff,0xf6,0x00,0xc4,0x01,0x7e,0xff,0xf6,0x00,0xc4,0x01,0x80,0xff,0x7f, -0x00,0xc4,0x01,0x81,0xff,0x7f,0x00,0xc4,0x01,0x82,0xff,0x08,0x00,0xc4,0x01,0x89,0xff,0xa6,0x00,0xc4,0x01,0x8c,0xff,0x7f,0x00,0xc4,0x01,0x8d,0xff,0x7f,0x00,0xc4,0x01,0x8e,0xff,0x7f,0x00,0xc4,0x01,0x8f,0xff,0x7f,0x00,0xc4,0x01,0x90,0xff,0x7f,0x00,0xc4,0x01,0x91,0xff,0x7f,0x00,0xc4,0x01,0x92,0xff,0x08,0x00,0xc4,0x01,0xdc, -0xff,0x31,0x00,0xc4,0x01,0xde,0xff,0xa4,0x00,0xc4,0x01,0xe1,0x00,0x6f,0x00,0xc4,0x01,0xe3,0xff,0x31,0x00,0xc4,0x01,0xeb,0x00,0x6f,0x00,0xc4,0x01,0xf2,0x00,0x6f,0x00,0xc4,0x01,0xf5,0xff,0xa4,0x00,0xc4,0x01,0xf8,0xff,0xa4,0x00,0xc4,0x01,0xf9,0xff,0x31,0x00,0xc4,0x01,0xfb,0xff,0xa4,0x00,0xc4,0x01,0xfc,0x00,0x39,0x00,0xc4, -0x02,0x01,0xff,0x31,0x00,0xc4,0x02,0x08,0x00,0x1b,0x00,0xc4,0x02,0x0c,0x00,0x1b,0x00,0xc4,0x02,0x15,0x00,0x1b,0x00,0xc4,0x02,0x18,0x00,0x1b,0x00,0xc4,0x02,0x1b,0x00,0x1b,0x00,0xc4,0x02,0x27,0x00,0x1b,0x00,0xc4,0x02,0x2a,0x00,0x1b,0x00,0xc5,0x00,0x2a,0xff,0xa6,0x00,0xc5,0x00,0x2d,0x00,0x6d,0x00,0xc5,0x00,0x32,0xff,0xb2, -0x00,0xc5,0x00,0x37,0xff,0x31,0x00,0xc5,0x00,0x38,0xff,0xf6,0x00,0xc5,0x00,0x39,0xff,0x7f,0x00,0xc5,0x00,0x3a,0xff,0x8b,0x00,0xc5,0x00,0x3b,0x00,0x27,0x00,0xc5,0x00,0x3c,0xff,0x3d,0x00,0xc5,0x00,0x59,0xff,0x8b,0x00,0xc5,0x00,0x5a,0xff,0x7f,0x00,0xc5,0x00,0xea,0xff,0x3d,0x00,0xc5,0x00,0xf7,0xff,0xa6,0x00,0xc5,0x01,0x18, -0xff,0xb2,0x00,0xc5,0x01,0x20,0xff,0x31,0x00,0xc5,0x01,0x22,0xff,0x31,0x00,0xc5,0x01,0x24,0xff,0xf6,0x00,0xc5,0x01,0x26,0xff,0xf6,0x00,0xc5,0x01,0x51,0xff,0xa6,0x00,0xc5,0x01,0x53,0xff,0xa6,0x00,0xc5,0x01,0x55,0xff,0xa6,0x00,0xc5,0x01,0x63,0x00,0x6d,0x00,0xc5,0x01,0x6e,0xff,0xb2,0x00,0xc5,0x01,0x70,0xff,0xb2,0x00,0xc5, -0x01,0x76,0xff,0x31,0x00,0xc5,0x01,0x78,0xff,0xf6,0x00,0xc5,0x01,0x7a,0xff,0xf6,0x00,0xc5,0x01,0x7c,0xff,0xf6,0x00,0xc5,0x01,0x7e,0xff,0xf6,0x00,0xc5,0x01,0x80,0xff,0x8b,0x00,0xc5,0x01,0x81,0xff,0x7f,0x00,0xc5,0x01,0x82,0xff,0x3d,0x00,0xc5,0x01,0x89,0xff,0xb2,0x00,0xc5,0x01,0x8c,0xff,0x8b,0x00,0xc5,0x01,0x8d,0xff,0x7f, -0x00,0xc5,0x01,0x8e,0xff,0x8b,0x00,0xc5,0x01,0x8f,0xff,0x7f,0x00,0xc5,0x01,0x90,0xff,0x8b,0x00,0xc5,0x01,0x91,0xff,0x7f,0x00,0xc5,0x01,0x92,0xff,0x3d,0x00,0xc5,0x01,0xdc,0xff,0x31,0x00,0xc5,0x01,0xde,0xff,0xb0,0x00,0xc5,0x01,0xe1,0x00,0x6f,0x00,0xc5,0x01,0xe3,0xff,0x31,0x00,0xc5,0x01,0xeb,0x00,0x6f,0x00,0xc5,0x01,0xf2, -0x00,0x6f,0x00,0xc5,0x01,0xf5,0xff,0xb0,0x00,0xc5,0x01,0xf8,0xff,0xb0,0x00,0xc5,0x01,0xf9,0xff,0x31,0x00,0xc5,0x01,0xfb,0xff,0xb0,0x00,0xc5,0x01,0xfc,0x00,0x29,0x00,0xc5,0x02,0x01,0xff,0x31,0x00,0xc7,0x00,0x2d,0x00,0x5e,0x00,0xc7,0x00,0x37,0xff,0x6d,0x00,0xc7,0x00,0x39,0xff,0x8b,0x00,0xc7,0x00,0x3a,0xff,0xb6,0x00,0xc7, -0x00,0x3c,0xff,0x64,0x00,0xc7,0x00,0xea,0xff,0x64,0x00,0xc7,0x01,0x20,0xff,0x6d,0x00,0xc7,0x01,0x22,0xff,0x6d,0x00,0xc7,0x01,0x63,0x00,0x5e,0x00,0xc7,0x01,0x76,0xff,0x6d,0x00,0xc7,0x01,0x80,0xff,0xb6,0x00,0xc7,0x01,0x82,0xff,0x64,0x00,0xc7,0x01,0x8c,0xff,0xb6,0x00,0xc7,0x01,0x8e,0xff,0xb6,0x00,0xc7,0x01,0x90,0xff,0xb6, -0x00,0xc7,0x01,0x92,0xff,0x64,0x00,0xc8,0x00,0x2d,0x00,0x3d,0x00,0xc8,0x01,0x63,0x00,0x3d,0x00,0xc9,0x00,0x2d,0x00,0x5e,0x00,0xc9,0x00,0x37,0xff,0x6d,0x00,0xc9,0x00,0x39,0xff,0x8b,0x00,0xc9,0x00,0x3a,0xff,0xb6,0x00,0xc9,0x00,0x3c,0xff,0x64,0x00,0xc9,0x00,0xea,0xff,0x64,0x00,0xc9,0x01,0x20,0xff,0x6d,0x00,0xc9,0x01,0x22, -0xff,0x6d,0x00,0xc9,0x01,0x63,0x00,0x5e,0x00,0xc9,0x01,0x76,0xff,0x6d,0x00,0xc9,0x01,0x80,0xff,0xb6,0x00,0xc9,0x01,0x82,0xff,0x64,0x00,0xc9,0x01,0x8c,0xff,0xb6,0x00,0xc9,0x01,0x8e,0xff,0xb6,0x00,0xc9,0x01,0x90,0xff,0xb6,0x00,0xc9,0x01,0x92,0xff,0x64,0x00,0xca,0x00,0x2d,0x00,0x3d,0x00,0xca,0x01,0x63,0x00,0x3d,0x00,0xcb, -0x00,0x2d,0x00,0x3d,0x00,0xcb,0x01,0x63,0x00,0x3d,0x00,0xd0,0x00,0x24,0xff,0xe5,0x00,0xd0,0x00,0x37,0xff,0xa4,0x00,0xd0,0x00,0x3b,0xff,0xdb,0x00,0xd0,0x00,0x3d,0xff,0xcf,0x00,0xd0,0x00,0xe5,0xff,0xcf,0x00,0xd0,0x01,0x03,0xff,0xe5,0x00,0xd0,0x01,0x05,0xff,0xe5,0x00,0xd0,0x01,0x20,0xff,0xa4,0x00,0xd0,0x01,0x22,0xff,0xa4, -0x00,0xd0,0x01,0x28,0xff,0xcf,0x00,0xd0,0x01,0x2a,0xff,0xcf,0x00,0xd0,0x01,0x45,0xff,0xe5,0x00,0xd0,0x01,0x76,0xff,0xa4,0x00,0xd0,0x01,0x85,0xff,0xe5,0x00,0xd0,0x01,0x87,0xff,0xe5,0x00,0xd1,0x00,0x24,0xff,0xe5,0x00,0xd1,0x00,0x37,0xff,0xa4,0x00,0xd1,0x00,0x3b,0xff,0xdb,0x00,0xd1,0x00,0x3d,0xff,0xcf,0x00,0xd1,0x00,0xe5, -0xff,0xcf,0x00,0xd1,0x01,0x03,0xff,0xe5,0x00,0xd1,0x01,0x05,0xff,0xe5,0x00,0xd1,0x01,0x20,0xff,0xa4,0x00,0xd1,0x01,0x22,0xff,0xa4,0x00,0xd1,0x01,0x28,0xff,0xcf,0x00,0xd1,0x01,0x2a,0xff,0xcf,0x00,0xd1,0x01,0x45,0xff,0xe5,0x00,0xd1,0x01,0x76,0xff,0xa4,0x00,0xd1,0x01,0x85,0xff,0xe5,0x00,0xd1,0x01,0x87,0xff,0xe5,0x00,0xd2, -0x00,0x24,0xff,0xe5,0x00,0xd2,0x00,0x37,0xff,0xa4,0x00,0xd2,0x00,0x3b,0xff,0xdb,0x00,0xd2,0x00,0x3d,0xff,0xcf,0x00,0xd2,0x00,0xe5,0xff,0xcf,0x00,0xd2,0x01,0x03,0xff,0xe5,0x00,0xd2,0x01,0x05,0xff,0xe5,0x00,0xd2,0x01,0x20,0xff,0xa4,0x00,0xd2,0x01,0x22,0xff,0xa4,0x00,0xd2,0x01,0x28,0xff,0xcf,0x00,0xd2,0x01,0x2a,0xff,0xcf, -0x00,0xd2,0x01,0x45,0xff,0xe5,0x00,0xd2,0x01,0x76,0xff,0xa4,0x00,0xd2,0x01,0x85,0xff,0xe5,0x00,0xd2,0x01,0x87,0xff,0xe5,0x00,0xe1,0x00,0x0d,0xff,0x31,0x00,0xe1,0x00,0x22,0xff,0x9a,0x00,0xe1,0x00,0x24,0x00,0x3b,0x00,0xe1,0x00,0x26,0xff,0xbe,0x00,0xe1,0x00,0x2a,0xff,0xbe,0x00,0xe1,0x00,0x2d,0x00,0x64,0x00,0xe1,0x00,0x32, -0xff,0xba,0x00,0xe1,0x00,0x34,0xff,0xba,0x00,0xe1,0x00,0x37,0xff,0x8f,0x00,0xe1,0x00,0x38,0xff,0xe3,0x00,0xe1,0x00,0x39,0xff,0x8b,0x00,0xe1,0x00,0x3a,0xff,0xcf,0x00,0xe1,0x00,0x3c,0xff,0x7f,0x00,0xe1,0x00,0x3d,0x00,0x3b,0x00,0xe1,0x00,0x57,0xff,0xe5,0x00,0xe1,0x00,0x59,0xff,0x9a,0x00,0xe1,0x00,0x5a,0xff,0xbe,0x00,0xe1, -0x00,0x5c,0xff,0xb4,0x00,0xe1,0x00,0x64,0xff,0xbe,0x00,0xe1,0x00,0x67,0xff,0xba,0x00,0xe1,0x00,0x68,0xff,0xe3,0x00,0xe1,0x00,0x8d,0xff,0x9a,0x00,0xe1,0x00,0x92,0xff,0xba,0x00,0xe1,0x00,0xaf,0xff,0xba,0x00,0xe1,0x00,0xb0,0xff,0xba,0x00,0xe1,0x00,0xb4,0xff,0x73,0x00,0xe1,0x00,0xb5,0xff,0x8b,0x00,0xe1,0x00,0xb6,0xff,0x73, -0x00,0xe1,0x00,0xb7,0xff,0x7f,0x00,0xe1,0x00,0xba,0xff,0xb4,0x00,0xe1,0x00,0xbb,0xff,0x9a,0x00,0xe1,0x00,0xc4,0x00,0x44,0x00,0xe1,0x00,0xc5,0x00,0x44,0x00,0xe1,0x00,0xd0,0xff,0xba,0x00,0xe1,0x00,0xd1,0xff,0xba,0x00,0xe1,0x00,0xd2,0xff,0xba,0x00,0xe1,0x00,0xd3,0xff,0xe3,0x00,0xe1,0x00,0xd4,0xff,0xe3,0x00,0xe1,0x00,0xd5, -0xff,0xe3,0x00,0xe1,0x00,0xe5,0x00,0x3b,0x00,0xe1,0x00,0xea,0xff,0x7f,0x00,0xe1,0x00,0xeb,0xff,0xb4,0x00,0xe1,0x00,0xf7,0xff,0xbe,0x00,0xe1,0x00,0xfc,0xff,0xbe,0x00,0xe1,0x00,0xfe,0xff,0xbe,0x00,0xe1,0x01,0x03,0x00,0x3b,0x00,0xe1,0x01,0x05,0x00,0x3b,0x00,0xe1,0x01,0x18,0xff,0xba,0x00,0xe1,0x01,0x20,0xff,0x8f,0x00,0xe1, -0x01,0x21,0xff,0xe5,0x00,0xe1,0x01,0x22,0xff,0x8f,0x00,0xe1,0x01,0x23,0xff,0xe5,0x00,0xe1,0x01,0x24,0xff,0xe3,0x00,0xe1,0x01,0x26,0xff,0xe3,0x00,0xe1,0x01,0x28,0x00,0x3b,0x00,0xe1,0x01,0x2a,0x00,0x3b,0x00,0xe1,0x01,0x45,0x00,0x3b,0x00,0xe1,0x01,0x47,0xff,0xbe,0x00,0xe1,0x01,0x51,0xff,0xbe,0x00,0xe1,0x01,0x53,0xff,0xbe, -0x00,0xe1,0x01,0x55,0xff,0xbe,0x00,0xe1,0x01,0x63,0x00,0x64,0x00,0xe1,0x01,0x6e,0xff,0xba,0x00,0xe1,0x01,0x70,0xff,0xba,0x00,0xe1,0x01,0x76,0xff,0x8f,0x00,0xe1,0x01,0x77,0xff,0xe5,0x00,0xe1,0x01,0x78,0xff,0xe3,0x00,0xe1,0x01,0x7a,0xff,0xe3,0x00,0xe1,0x01,0x7c,0xff,0xe3,0x00,0xe1,0x01,0x7e,0xff,0xe3,0x00,0xe1,0x01,0x80, -0xff,0xcf,0x00,0xe1,0x01,0x81,0xff,0xbe,0x00,0xe1,0x01,0x82,0xff,0x7f,0x00,0xe1,0x01,0x83,0xff,0xb4,0x00,0xe1,0x01,0x85,0x00,0x3b,0x00,0xe1,0x01,0x87,0x00,0x3b,0x00,0xe1,0x01,0x89,0xff,0xba,0x00,0xe1,0x01,0x8c,0xff,0xcf,0x00,0xe1,0x01,0x8d,0xff,0xbe,0x00,0xe1,0x01,0x8e,0xff,0xcf,0x00,0xe1,0x01,0x8f,0xff,0xbe,0x00,0xe1, -0x01,0x90,0xff,0xcf,0x00,0xe1,0x01,0x91,0xff,0xbe,0x00,0xe1,0x01,0x92,0xff,0x7f,0x00,0xe1,0x01,0x93,0xff,0xb4,0x00,0xe3,0x00,0x57,0xff,0xbe,0x00,0xe3,0x00,0x59,0xff,0xcf,0x00,0xe3,0x00,0x5a,0xff,0xe5,0x00,0xe3,0x00,0x5c,0xff,0xd1,0x00,0xe3,0x00,0xba,0xff,0xbe,0x00,0xe3,0x00,0xc4,0xff,0xb2,0x00,0xe3,0x00,0xc5,0xff,0xb2, -0x00,0xe3,0x00,0xeb,0xff,0xd1,0x00,0xe3,0x01,0x21,0xff,0xbe,0x00,0xe3,0x01,0x23,0xff,0xbe,0x00,0xe3,0x01,0x77,0xff,0xbe,0x00,0xe3,0x01,0x81,0xff,0xe5,0x00,0xe3,0x01,0x83,0xff,0xd1,0x00,0xe3,0x01,0x8d,0xff,0xe5,0x00,0xe3,0x01,0x8f,0xff,0xe5,0x00,0xe3,0x01,0x91,0xff,0xe5,0x00,0xe3,0x01,0x93,0xff,0xd1,0x00,0xe5,0x00,0x2d, -0x00,0x52,0x00,0xe5,0x00,0x37,0x00,0x27,0x00,0xe5,0x00,0x5c,0xff,0xcb,0x00,0xe5,0x00,0x77,0x00,0x46,0x00,0xe5,0x00,0xab,0x00,0x27,0x00,0xe5,0x00,0xba,0xff,0xbe,0x00,0xe5,0x00,0xbf,0x00,0x52,0x00,0xe5,0x00,0xeb,0xff,0xcb,0x00,0xe5,0x01,0x20,0x00,0x27,0x00,0xe5,0x01,0x22,0x00,0x27,0x00,0xe5,0x01,0x5c,0x00,0x46,0x00,0xe5, -0x01,0x5e,0x00,0x46,0x00,0xe5,0x01,0x60,0x00,0x46,0x00,0xe5,0x01,0x63,0x00,0x52,0x00,0xe5,0x01,0x76,0x00,0x27,0x00,0xe5,0x01,0x83,0xff,0xcb,0x00,0xe5,0x01,0x93,0xff,0xcb,0x00,0xe8,0x00,0x0f,0xff,0x7f,0x00,0xe8,0x00,0x11,0xff,0x7f,0x00,0xe8,0x00,0x24,0xff,0xdf,0x00,0xe8,0x00,0x37,0xff,0xa4,0x00,0xe8,0x00,0x3b,0xff,0xcb, -0x00,0xe8,0x00,0x3d,0xff,0xcf,0x00,0xe8,0x00,0x62,0xff,0xdf,0x00,0xe8,0x00,0x63,0xff,0xdf,0x00,0xe8,0x00,0x91,0xff,0xb6,0x00,0xe8,0x00,0xac,0xff,0x7f,0x00,0xe8,0x00,0xad,0xff,0xdf,0x00,0xe8,0x00,0xae,0xff,0xdf,0x00,0xe8,0x00,0xbb,0xff,0xf6,0x00,0xe8,0x00,0xc4,0xff,0x8b,0x00,0xe8,0x00,0xc5,0xff,0x8b,0x00,0xe8,0x00,0xc7, -0xff,0xdf,0x00,0xe8,0x00,0xc9,0xff,0xdf,0x00,0xe8,0x00,0xe5,0xff,0xcf,0x00,0xe8,0x01,0x03,0xff,0xdf,0x00,0xe8,0x01,0x05,0xff,0xdf,0x00,0xe8,0x01,0x20,0xff,0xa4,0x00,0xe8,0x01,0x22,0xff,0xa4,0x00,0xe8,0x01,0x28,0xff,0xcf,0x00,0xe8,0x01,0x2a,0xff,0xcf,0x00,0xe8,0x01,0x45,0xff,0xdf,0x00,0xe8,0x01,0x76,0xff,0xa4,0x00,0xe8, -0x01,0x85,0xff,0xdf,0x00,0xe8,0x01,0x87,0xff,0xdf,0x00,0xea,0x00,0x0f,0xff,0x50,0x00,0xea,0x00,0x11,0xff,0x3d,0x00,0xea,0x00,0x24,0xff,0x62,0x00,0xea,0x00,0x26,0xff,0xd3,0x00,0xea,0x00,0x2a,0xff,0xd3,0x00,0xea,0x00,0x2d,0xff,0xbe,0x00,0xea,0x00,0x32,0xff,0xd3,0x00,0xea,0x00,0x34,0xff,0xd3,0x00,0xea,0x00,0x36,0xff,0xe5, -0x00,0xea,0x00,0x37,0x00,0x27,0x00,0xea,0x00,0x44,0xff,0x39,0x00,0xea,0x00,0x46,0xff,0x4c,0x00,0xea,0x00,0x47,0xff,0x4c,0x00,0xea,0x00,0x48,0xff,0x4c,0x00,0xea,0x00,0x49,0xff,0xe5,0x00,0xea,0x00,0x4a,0xff,0x4c,0x00,0xea,0x00,0x50,0xff,0x73,0x00,0xea,0x00,0x51,0xff,0x73,0x00,0xea,0x00,0x52,0xff,0x4c,0x00,0xea,0x00,0x53, -0xff,0x73,0x00,0xea,0x00,0x54,0xff,0x4c,0x00,0xea,0x00,0x55,0xff,0x73,0x00,0xea,0x00,0x56,0xff,0x7b,0x00,0xea,0x00,0x58,0xff,0x73,0x00,0xea,0x00,0x62,0xff,0x62,0x00,0xea,0x00,0x63,0xff,0x62,0x00,0xea,0x00,0x64,0xff,0xcd,0x00,0xea,0x00,0x67,0xff,0xd3,0x00,0xea,0x00,0x69,0xff,0x39,0x00,0xea,0x00,0x6a,0xff,0x39,0x00,0xea, -0x00,0x6b,0xff,0x39,0x00,0xea,0x00,0x6c,0xff,0x7f,0x00,0xea,0x00,0x6d,0xff,0x66,0x00,0xea,0x00,0x6e,0xff,0x39,0x00,0xea,0x00,0x6f,0xff,0x4c,0x00,0xea,0x00,0x70,0xff,0x4c,0x00,0xea,0x00,0x71,0xff,0x4c,0x00,0xea,0x00,0x72,0xff,0x4c,0x00,0xea,0x00,0x73,0xff,0x4c,0x00,0xea,0x00,0x77,0x00,0x5a,0x00,0xea,0x00,0x78,0xff,0x73, -0x00,0xea,0x00,0x79,0xff,0x4c,0x00,0xea,0x00,0x7a,0xff,0x4c,0x00,0xea,0x00,0x7b,0xff,0x4c,0x00,0xea,0x00,0x7c,0xff,0x4c,0x00,0xea,0x00,0x7d,0xff,0x4c,0x00,0xea,0x00,0x7e,0xff,0x73,0x00,0xea,0x00,0x7f,0xff,0x73,0x00,0xea,0x00,0x80,0xff,0x73,0x00,0xea,0x00,0x81,0xff,0x73,0x00,0xea,0x00,0x91,0xff,0x3f,0x00,0xea,0x00,0x92, -0xff,0xd3,0x00,0xea,0x00,0xa0,0xff,0x39,0x00,0xea,0x00,0xa2,0xff,0x1b,0x00,0xea,0x00,0xaa,0xff,0xcf,0x00,0xea,0x00,0xac,0xff,0x3d,0x00,0xea,0x00,0xad,0xff,0x62,0x00,0xea,0x00,0xae,0xff,0x62,0x00,0xea,0x00,0xaf,0xff,0xd3,0x00,0xea,0x00,0xb0,0xff,0xd3,0x00,0xea,0x00,0xb1,0xff,0x4c,0x00,0xea,0x00,0xbe,0xff,0x9a,0x00,0xea, -0x00,0xc4,0xff,0x08,0x00,0xea,0x00,0xc5,0xff,0x08,0x00,0xea,0x00,0xc7,0xff,0x62,0x00,0xea,0x00,0xc9,0xff,0x62,0x00,0xea,0x00,0xd0,0xff,0xd3,0x00,0xea,0x00,0xd1,0xff,0xd3,0x00,0xea,0x00,0xd2,0xff,0xd3,0x00,0xea,0x00,0xe3,0xff,0xe5,0x00,0xea,0x00,0xe4,0xff,0x7b,0x00,0xea,0x00,0xf7,0xff,0xd3,0x00,0xea,0x00,0xf8,0xff,0x4c, -0x00,0xea,0x00,0xfa,0xff,0xe5,0x00,0xea,0x00,0xfb,0xff,0x7b,0x00,0xea,0x00,0xfc,0xff,0xd3,0x00,0xea,0x00,0xfd,0xff,0x4c,0x00,0xea,0x00,0xfe,0xff,0xd3,0x00,0xea,0x00,0xff,0xff,0x4c,0x00,0xea,0x01,0x00,0xff,0x4c,0x00,0xea,0x01,0x03,0xff,0x62,0x00,0xea,0x01,0x04,0xff,0x7f,0x00,0xea,0x01,0x05,0xff,0x62,0x00,0xea,0x01,0x06, -0xff,0x39,0x00,0xea,0x01,0x08,0xff,0x4c,0x00,0xea,0x01,0x0b,0xff,0x4c,0x00,0xea,0x01,0x0d,0xff,0x4c,0x00,0xea,0x01,0x15,0xff,0x73,0x00,0xea,0x01,0x17,0xff,0x73,0x00,0xea,0x01,0x18,0xff,0xd3,0x00,0xea,0x01,0x19,0xff,0x4c,0x00,0xea,0x01,0x1b,0xff,0x73,0x00,0xea,0x01,0x1d,0xff,0x73,0x00,0xea,0x01,0x1e,0xff,0xe5,0x00,0xea, -0x01,0x1f,0xff,0x7b,0x00,0xea,0x01,0x20,0x00,0x27,0x00,0xea,0x01,0x22,0x00,0x27,0x00,0xea,0x01,0x25,0xff,0x73,0x00,0xea,0x01,0x27,0xff,0x73,0x00,0xea,0x01,0x45,0xff,0x62,0x00,0xea,0x01,0x46,0xff,0x7f,0x00,0xea,0x01,0x47,0xff,0xd3,0x00,0xea,0x01,0x48,0xff,0x4c,0x00,0xea,0x01,0x4c,0xff,0x4c,0x00,0xea,0x01,0x4e,0xff,0x4c, -0x00,0xea,0x01,0x50,0xff,0x4c,0x00,0xea,0x01,0x51,0xff,0xd3,0x00,0xea,0x01,0x52,0xff,0x4c,0x00,0xea,0x01,0x53,0xff,0xd3,0x00,0xea,0x01,0x54,0xff,0x4c,0x00,0xea,0x01,0x55,0xff,0xd3,0x00,0xea,0x01,0x56,0xff,0x4c,0x00,0xea,0x01,0x5c,0x00,0x5a,0x00,0xea,0x01,0x5e,0x00,0x5a,0x00,0xea,0x01,0x60,0x00,0x5a,0x00,0xea,0x01,0x63, -0xff,0xbe,0x00,0xea,0x01,0x6d,0xff,0x73,0x00,0xea,0x01,0x6e,0xff,0xd3,0x00,0xea,0x01,0x6f,0xff,0x4c,0x00,0xea,0x01,0x70,0xff,0xd3,0x00,0xea,0x01,0x71,0xff,0x4c,0x00,0xea,0x01,0x73,0xff,0x73,0x00,0xea,0x01,0x74,0xff,0xe5,0x00,0xea,0x01,0x75,0xff,0x7b,0x00,0xea,0x01,0x76,0x00,0x27,0x00,0xea,0x01,0x79,0xff,0x73,0x00,0xea, -0x01,0x7b,0xff,0x73,0x00,0xea,0x01,0x7d,0xff,0x73,0x00,0xea,0x01,0x7f,0xff,0x73,0x00,0xea,0x01,0x85,0xff,0x62,0x00,0xea,0x01,0x86,0xff,0x7f,0x00,0xea,0x01,0x87,0xff,0x62,0x00,0xea,0x01,0x88,0xff,0x39,0x00,0xea,0x01,0x89,0xff,0xd3,0x00,0xea,0x01,0x8a,0xff,0x4c,0x00,0xea,0x02,0x3d,0xff,0xe5,0x00,0xea,0x02,0x3e,0xff,0x7b, -0x00,0xeb,0x00,0x05,0x00,0x1d,0x00,0xeb,0x00,0x0a,0x00,0x1d,0x00,0xeb,0x00,0x0f,0xff,0x9a,0x00,0xeb,0x00,0x11,0xff,0x81,0x00,0xeb,0x00,0x22,0xff,0xb4,0x00,0xeb,0x00,0x46,0xff,0xf6,0x00,0xeb,0x00,0x47,0xff,0xf6,0x00,0xeb,0x00,0x48,0xff,0xf6,0x00,0xeb,0x00,0x49,0x00,0x04,0x00,0xeb,0x00,0x4a,0xff,0xf6,0x00,0xeb,0x00,0x52, -0xff,0xf6,0x00,0xeb,0x00,0x54,0xff,0xf6,0x00,0xeb,0x00,0x57,0x00,0x06,0x00,0xeb,0x00,0x6f,0xff,0xf6,0x00,0xeb,0x00,0x70,0xff,0xf6,0x00,0xeb,0x00,0x71,0xff,0xf6,0x00,0xeb,0x00,0x72,0xff,0xf6,0x00,0xeb,0x00,0x73,0xff,0xf6,0x00,0xeb,0x00,0x79,0xff,0xf6,0x00,0xeb,0x00,0x7a,0xff,0xf6,0x00,0xeb,0x00,0x7b,0xff,0xf6,0x00,0xeb, -0x00,0x7c,0xff,0xf6,0x00,0xeb,0x00,0x7d,0xff,0xf6,0x00,0xeb,0x00,0xac,0xff,0x81,0x00,0xeb,0x00,0xb1,0xff,0xf6,0x00,0xeb,0x00,0xbf,0x00,0x0c,0x00,0xeb,0x00,0xc4,0xff,0x8d,0x00,0xeb,0x00,0xc5,0xff,0x8d,0x00,0xeb,0x00,0xf8,0xff,0xf6,0x00,0xeb,0x00,0xfd,0xff,0xf6,0x00,0xeb,0x00,0xff,0xff,0xf6,0x00,0xeb,0x01,0x00,0xff,0xf6, -0x00,0xeb,0x01,0x08,0xff,0xf6,0x00,0xeb,0x01,0x0b,0xff,0xf6,0x00,0xeb,0x01,0x0d,0xff,0xf6,0x00,0xeb,0x01,0x19,0xff,0xf6,0x00,0xeb,0x01,0x21,0x00,0x06,0x00,0xeb,0x01,0x23,0x00,0x06,0x00,0xeb,0x01,0x48,0xff,0xf6,0x00,0xeb,0x01,0x4c,0xff,0xf6,0x00,0xeb,0x01,0x4e,0xff,0xf6,0x00,0xeb,0x01,0x50,0xff,0xf6,0x00,0xeb,0x01,0x52, -0xff,0xf6,0x00,0xeb,0x01,0x54,0xff,0xf6,0x00,0xeb,0x01,0x56,0xff,0xf6,0x00,0xeb,0x01,0x6f,0xff,0xf6,0x00,0xeb,0x01,0x71,0xff,0xf6,0x00,0xeb,0x01,0x77,0x00,0x06,0x00,0xeb,0x01,0x8a,0xff,0xf6,0x00,0xec,0x00,0x0f,0xfe,0xba,0x00,0xec,0x00,0x11,0xfe,0xba,0x00,0xec,0x00,0x24,0xff,0x62,0x00,0xec,0x00,0x2a,0xff,0xf6,0x00,0xec, -0x00,0x2d,0xff,0x7f,0x00,0xec,0x00,0x3a,0x00,0x27,0x00,0xec,0x00,0x3b,0xff,0xc3,0x00,0xec,0x00,0x44,0xff,0xbe,0x00,0xec,0x00,0x46,0xff,0xb4,0x00,0xec,0x00,0x47,0xff,0xb4,0x00,0xec,0x00,0x48,0xff,0xb4,0x00,0xec,0x00,0x4a,0xff,0xb4,0x00,0xec,0x00,0x52,0xff,0xb4,0x00,0xec,0x00,0x54,0xff,0xb6,0x00,0xec,0x00,0x62,0xff,0x62, -0x00,0xec,0x00,0x63,0xff,0x62,0x00,0xec,0x00,0x69,0xff,0xbe,0x00,0xec,0x00,0x6a,0xff,0xbe,0x00,0xec,0x00,0x6b,0xff,0xbe,0x00,0xec,0x00,0x6c,0xff,0xbe,0x00,0xec,0x00,0x6d,0xff,0xbe,0x00,0xec,0x00,0x6e,0xff,0xbe,0x00,0xec,0x00,0x6f,0xff,0xb4,0x00,0xec,0x00,0x70,0xff,0xb4,0x00,0xec,0x00,0x71,0xff,0xb4,0x00,0xec,0x00,0x72, -0xff,0xb4,0x00,0xec,0x00,0x73,0xff,0xb4,0x00,0xec,0x00,0x79,0xff,0xb4,0x00,0xec,0x00,0x7a,0xff,0xb4,0x00,0xec,0x00,0x7b,0xff,0xb4,0x00,0xec,0x00,0x7c,0xff,0xb4,0x00,0xec,0x00,0x7d,0xff,0xb4,0x00,0xec,0x00,0x91,0xfe,0xe9,0x00,0xec,0x00,0xa0,0xff,0xbe,0x00,0xec,0x00,0xac,0xfe,0xba,0x00,0xec,0x00,0xad,0xff,0x62,0x00,0xec, -0x00,0xae,0xff,0x62,0x00,0xec,0x00,0xb1,0xff,0xb4,0x00,0xec,0x00,0xc4,0xfe,0xba,0x00,0xec,0x00,0xc5,0xfe,0xae,0x00,0xec,0x00,0xc7,0xff,0x62,0x00,0xec,0x00,0xc9,0xff,0x62,0x00,0xec,0x00,0xf7,0xff,0xf6,0x00,0xec,0x00,0xf8,0xff,0xb4,0x00,0xec,0x00,0xfd,0xff,0xb4,0x00,0xec,0x00,0xff,0xff,0xb4,0x00,0xec,0x01,0x00,0xff,0xb4, -0x00,0xec,0x01,0x03,0xff,0x62,0x00,0xec,0x01,0x04,0xff,0xbe,0x00,0xec,0x01,0x05,0xff,0x62,0x00,0xec,0x01,0x06,0xff,0xbe,0x00,0xec,0x01,0x08,0xff,0xb4,0x00,0xec,0x01,0x0b,0xff,0xb4,0x00,0xec,0x01,0x0d,0xff,0xb4,0x00,0xec,0x01,0x19,0xff,0xb4,0x00,0xec,0x01,0x45,0xff,0x62,0x00,0xec,0x01,0x46,0xff,0xbe,0x00,0xec,0x01,0x48, -0xff,0xb4,0x00,0xec,0x01,0x4c,0xff,0xb4,0x00,0xec,0x01,0x4e,0xff,0xb4,0x00,0xec,0x01,0x50,0xff,0xb4,0x00,0xec,0x01,0x51,0xff,0xf6,0x00,0xec,0x01,0x52,0xff,0xb4,0x00,0xec,0x01,0x53,0xff,0xf6,0x00,0xec,0x01,0x54,0xff,0xb4,0x00,0xec,0x01,0x55,0xff,0xf6,0x00,0xec,0x01,0x56,0xff,0xb4,0x00,0xec,0x01,0x63,0xff,0x7f,0x00,0xec, -0x01,0x6f,0xff,0xb4,0x00,0xec,0x01,0x71,0xff,0xb4,0x00,0xec,0x01,0x80,0x00,0x27,0x00,0xec,0x01,0x85,0xff,0x62,0x00,0xec,0x01,0x86,0xff,0xbe,0x00,0xec,0x01,0x87,0xff,0x62,0x00,0xec,0x01,0x88,0xff,0xbe,0x00,0xec,0x01,0x8a,0xff,0xb4,0x00,0xec,0x01,0x8c,0x00,0x27,0x00,0xec,0x01,0x8e,0x00,0x27,0x00,0xec,0x01,0x90,0x00,0x27, -0x00,0xed,0x00,0x44,0xff,0xe5,0x00,0xed,0x00,0x49,0xff,0xf6,0x00,0xed,0x00,0x5b,0xff,0xe7,0x00,0xed,0x00,0x69,0xff,0xe5,0x00,0xed,0x00,0x6a,0xff,0xe5,0x00,0xed,0x00,0x6b,0xff,0xe5,0x00,0xed,0x00,0x6c,0xff,0xe5,0x00,0xed,0x00,0x6d,0xff,0xe5,0x00,0xed,0x00,0x6e,0xff,0xe5,0x00,0xed,0x00,0xa0,0xff,0xe5,0x00,0xed,0x00,0xc0, -0xff,0xf6,0x00,0xed,0x00,0xc1,0xff,0xf6,0x00,0xed,0x01,0x04,0xff,0xe5,0x00,0xed,0x01,0x06,0xff,0xe5,0x00,0xed,0x01,0x46,0xff,0xe5,0x00,0xed,0x01,0x86,0xff,0xe5,0x00,0xed,0x01,0x88,0xff,0xe5,0x00,0xf7,0x00,0x37,0xff,0xcf,0x00,0xf7,0x00,0x39,0xff,0xe5,0x00,0xf7,0x00,0x5c,0xff,0xe5,0x00,0xf7,0x00,0xba,0xff,0xe5,0x00,0xf7, -0x00,0xeb,0xff,0xe5,0x00,0xf7,0x01,0x20,0xff,0xcf,0x00,0xf7,0x01,0x22,0xff,0xcf,0x00,0xf7,0x01,0x76,0xff,0xcf,0x00,0xf7,0x01,0x83,0xff,0xe5,0x00,0xf7,0x01,0x93,0xff,0xe5,0x00,0xf8,0x00,0x4d,0x00,0x2f,0x00,0xf8,0x01,0x64,0x00,0x2f,0x00,0xfa,0x00,0x57,0xff,0xbe,0x00,0xfa,0x00,0x59,0xff,0xcf,0x00,0xfa,0x00,0x5a,0xff,0xe5, -0x00,0xfa,0x00,0x5c,0xff,0xd1,0x00,0xfa,0x00,0xba,0xff,0xbe,0x00,0xfa,0x00,0xc4,0xff,0xb2,0x00,0xfa,0x00,0xc5,0xff,0xb2,0x00,0xfa,0x00,0xeb,0xff,0xd1,0x00,0xfa,0x01,0x21,0xff,0xbe,0x00,0xfa,0x01,0x23,0xff,0xbe,0x00,0xfa,0x01,0x77,0xff,0xbe,0x00,0xfa,0x01,0x81,0xff,0xe5,0x00,0xfa,0x01,0x83,0xff,0xd1,0x00,0xfa,0x01,0x8d, -0xff,0xe5,0x00,0xfa,0x01,0x8f,0xff,0xe5,0x00,0xfa,0x01,0x91,0xff,0xe5,0x00,0xfa,0x01,0x93,0xff,0xd1,0x00,0xfc,0x00,0x26,0xff,0xc9,0x00,0xfc,0x00,0x2a,0xff,0xc9,0x00,0xfc,0x00,0x32,0xff,0xe5,0x00,0xfc,0x00,0x34,0xff,0xc9,0x00,0xfc,0x00,0x64,0xff,0xc9,0x00,0xfc,0x00,0x67,0xff,0xc9,0x00,0xfc,0x00,0x77,0x00,0x1d,0x00,0xfc, -0x00,0x92,0xff,0xc9,0x00,0xfc,0x00,0xaa,0xff,0xcf,0x00,0xfc,0x00,0xaf,0xff,0xc9,0x00,0xfc,0x00,0xb0,0xff,0xc9,0x00,0xfc,0x00,0xbe,0xff,0xcf,0x00,0xfc,0x00,0xd0,0xff,0xc9,0x00,0xfc,0x00,0xd1,0xff,0xc9,0x00,0xfc,0x00,0xd2,0xff,0xc9,0x00,0xfc,0x00,0xf7,0xff,0xc9,0x00,0xfc,0x00,0xfc,0xff,0xc9,0x00,0xfc,0x00,0xfe,0xff,0xc9, -0x00,0xfc,0x01,0x18,0xff,0xe5,0x00,0xfc,0x01,0x47,0xff,0xc9,0x00,0xfc,0x01,0x51,0xff,0xc9,0x00,0xfc,0x01,0x53,0xff,0xc9,0x00,0xfc,0x01,0x55,0xff,0xc9,0x00,0xfc,0x01,0x5c,0x00,0x1d,0x00,0xfc,0x01,0x5e,0x00,0x1d,0x00,0xfc,0x01,0x60,0x00,0x1d,0x00,0xfc,0x01,0x6e,0xff,0xe5,0x00,0xfc,0x01,0x70,0xff,0xe5,0x00,0xfc,0x01,0x89, -0xff,0xe5,0x00,0xfd,0x00,0x2d,0x00,0x46,0x00,0xfd,0x00,0x37,0xff,0x9a,0x00,0xfd,0x00,0x3c,0xff,0xb4,0x00,0xfd,0x00,0xea,0xff,0xb4,0x00,0xfd,0x01,0x20,0xff,0x9a,0x00,0xfd,0x01,0x22,0xff,0x9a,0x00,0xfd,0x01,0x63,0x00,0x46,0x00,0xfd,0x01,0x76,0xff,0x9a,0x00,0xfd,0x01,0x82,0xff,0xb4,0x00,0xfd,0x01,0x92,0xff,0xb4,0x00,0xfe, -0x00,0x26,0xff,0xc9,0x00,0xfe,0x00,0x2a,0xff,0xc9,0x00,0xfe,0x00,0x32,0xff,0xe5,0x00,0xfe,0x00,0x34,0xff,0xc9,0x00,0xfe,0x00,0x64,0xff,0xc9,0x00,0xfe,0x00,0x67,0xff,0xc9,0x00,0xfe,0x00,0x77,0x00,0x1d,0x00,0xfe,0x00,0x92,0xff,0xc9,0x00,0xfe,0x00,0xaa,0xff,0xcf,0x00,0xfe,0x00,0xaf,0xff,0xc9,0x00,0xfe,0x00,0xb0,0xff,0xc9, -0x00,0xfe,0x00,0xbe,0xff,0xcf,0x00,0xfe,0x00,0xd0,0xff,0xc9,0x00,0xfe,0x00,0xd1,0xff,0xc9,0x00,0xfe,0x00,0xd2,0xff,0xc9,0x00,0xfe,0x00,0xf7,0xff,0xc9,0x00,0xfe,0x00,0xfc,0xff,0xc9,0x00,0xfe,0x00,0xfe,0xff,0xc9,0x00,0xfe,0x01,0x18,0xff,0xe5,0x00,0xfe,0x01,0x47,0xff,0xc9,0x00,0xfe,0x01,0x51,0xff,0xc9,0x00,0xfe,0x01,0x53, -0xff,0xc9,0x00,0xfe,0x01,0x55,0xff,0xc9,0x00,0xfe,0x01,0x5c,0x00,0x1d,0x00,0xfe,0x01,0x5e,0x00,0x1d,0x00,0xfe,0x01,0x60,0x00,0x1d,0x00,0xfe,0x01,0x6e,0xff,0xe5,0x00,0xfe,0x01,0x70,0xff,0xe5,0x00,0xfe,0x01,0x89,0xff,0xe5,0x00,0xff,0x00,0x2d,0x00,0x46,0x00,0xff,0x00,0x37,0xff,0x9a,0x00,0xff,0x00,0x3c,0xff,0xb4,0x00,0xff, -0x00,0xea,0xff,0xb4,0x00,0xff,0x01,0x20,0xff,0x9a,0x00,0xff,0x01,0x22,0xff,0x9a,0x00,0xff,0x01,0x63,0x00,0x46,0x00,0xff,0x01,0x76,0xff,0x9a,0x00,0xff,0x01,0x82,0xff,0xb4,0x00,0xff,0x01,0x92,0xff,0xb4,0x01,0x03,0x00,0x0d,0xff,0x7f,0x01,0x03,0x00,0x0f,0x00,0x44,0x01,0x03,0x00,0x1e,0x00,0x44,0x01,0x03,0x00,0x26,0xff,0xe5, -0x01,0x03,0x00,0x2a,0xff,0xe5,0x01,0x03,0x00,0x2d,0x00,0x5e,0x01,0x03,0x00,0x32,0xff,0xe5,0x01,0x03,0x00,0x37,0xff,0x6d,0x01,0x03,0x00,0x38,0xff,0xe5,0x01,0x03,0x00,0x39,0xff,0x8b,0x01,0x03,0x00,0x3a,0xff,0xb6,0x01,0x03,0x00,0x3c,0xff,0x64,0x01,0x03,0x00,0x3d,0x00,0x3b,0x01,0x03,0x00,0x57,0xff,0xe5,0x01,0x03,0x00,0x59, -0xff,0xd5,0x01,0x03,0x00,0x5a,0xff,0xe5,0x01,0x03,0x00,0x5c,0xff,0xdb,0x01,0x03,0x00,0x8d,0xff,0x9a,0x01,0x03,0x00,0xb4,0xff,0x66,0x01,0x03,0x00,0xb5,0xff,0x3f,0x01,0x03,0x00,0xb6,0xff,0x66,0x01,0x03,0x00,0xb7,0xff,0x3f,0x01,0x03,0x00,0xba,0xff,0xc1,0x01,0x03,0x00,0xbb,0xff,0x64,0x01,0x03,0x00,0xe5,0x00,0x3b,0x01,0x03, -0x00,0xea,0xff,0x64,0x01,0x03,0x00,0xeb,0xff,0xdb,0x01,0x03,0x00,0xf7,0xff,0xe5,0x01,0x03,0x00,0xfc,0xff,0xe5,0x01,0x03,0x00,0xfe,0xff,0xe5,0x01,0x03,0x01,0x18,0xff,0xe5,0x01,0x03,0x01,0x20,0xff,0x6d,0x01,0x03,0x01,0x21,0xff,0xe5,0x01,0x03,0x01,0x22,0xff,0x6d,0x01,0x03,0x01,0x23,0xff,0xe5,0x01,0x03,0x01,0x24,0xff,0xe5, -0x01,0x03,0x01,0x26,0xff,0xe5,0x01,0x03,0x01,0x28,0x00,0x3b,0x01,0x03,0x01,0x2a,0x00,0x3b,0x01,0x03,0x01,0x47,0xff,0xe5,0x01,0x03,0x01,0x51,0xff,0xe5,0x01,0x03,0x01,0x53,0xff,0xe5,0x01,0x03,0x01,0x55,0xff,0xe5,0x01,0x03,0x01,0x63,0x00,0x5e,0x01,0x03,0x01,0x6e,0xff,0xe5,0x01,0x03,0x01,0x70,0xff,0xe5,0x01,0x03,0x01,0x76, -0xff,0x6d,0x01,0x03,0x01,0x77,0xff,0xe5,0x01,0x03,0x01,0x78,0xff,0xe5,0x01,0x03,0x01,0x7a,0xff,0xe5,0x01,0x03,0x01,0x7c,0xff,0xe5,0x01,0x03,0x01,0x7e,0xff,0xe5,0x01,0x03,0x01,0x80,0xff,0xb6,0x01,0x03,0x01,0x81,0xff,0xe5,0x01,0x03,0x01,0x82,0xff,0x64,0x01,0x03,0x01,0x83,0xff,0xdb,0x01,0x03,0x01,0x89,0xff,0xe5,0x01,0x03, -0x01,0x8c,0xff,0xb6,0x01,0x03,0x01,0x8d,0xff,0xe5,0x01,0x03,0x01,0x8e,0xff,0xb6,0x01,0x03,0x01,0x8f,0xff,0xe5,0x01,0x03,0x01,0x90,0xff,0xb6,0x01,0x03,0x01,0x91,0xff,0xe5,0x01,0x03,0x01,0x92,0xff,0x64,0x01,0x03,0x01,0x93,0xff,0xdb,0x01,0x05,0x00,0x0d,0xff,0x7f,0x01,0x05,0x00,0x0f,0x00,0x44,0x01,0x05,0x00,0x1e,0x00,0x44, -0x01,0x05,0x00,0x26,0xff,0xe5,0x01,0x05,0x00,0x2a,0xff,0xe5,0x01,0x05,0x00,0x2d,0x00,0x5e,0x01,0x05,0x00,0x32,0xff,0xe5,0x01,0x05,0x00,0x37,0xff,0x6d,0x01,0x05,0x00,0x38,0xff,0xe5,0x01,0x05,0x00,0x39,0xff,0x8b,0x01,0x05,0x00,0x3a,0xff,0xb6,0x01,0x05,0x00,0x3c,0xff,0x64,0x01,0x05,0x00,0x3d,0x00,0x3b,0x01,0x05,0x00,0x57, -0xff,0xe5,0x01,0x05,0x00,0x59,0xff,0xd5,0x01,0x05,0x00,0x5a,0xff,0xe5,0x01,0x05,0x00,0x5c,0xff,0xdb,0x01,0x05,0x00,0x8d,0xff,0x9a,0x01,0x05,0x00,0xb4,0xff,0x66,0x01,0x05,0x00,0xb5,0xff,0x3f,0x01,0x05,0x00,0xb6,0xff,0x66,0x01,0x05,0x00,0xb7,0xff,0x3f,0x01,0x05,0x00,0xba,0xff,0xc1,0x01,0x05,0x00,0xbb,0xff,0x64,0x01,0x05, -0x00,0xe5,0x00,0x3b,0x01,0x05,0x00,0xea,0xff,0x64,0x01,0x05,0x00,0xeb,0xff,0xdb,0x01,0x05,0x00,0xf7,0xff,0xe5,0x01,0x05,0x00,0xfc,0xff,0xe5,0x01,0x05,0x00,0xfe,0xff,0xe5,0x01,0x05,0x01,0x18,0xff,0xe5,0x01,0x05,0x01,0x20,0xff,0x6d,0x01,0x05,0x01,0x21,0xff,0xe5,0x01,0x05,0x01,0x22,0xff,0x6d,0x01,0x05,0x01,0x23,0xff,0xe5, -0x01,0x05,0x01,0x24,0xff,0xe5,0x01,0x05,0x01,0x26,0xff,0xe5,0x01,0x05,0x01,0x28,0x00,0x3b,0x01,0x05,0x01,0x2a,0x00,0x3b,0x01,0x05,0x01,0x47,0xff,0xe5,0x01,0x05,0x01,0x51,0xff,0xe5,0x01,0x05,0x01,0x53,0xff,0xe5,0x01,0x05,0x01,0x55,0xff,0xe5,0x01,0x05,0x01,0x63,0x00,0x5e,0x01,0x05,0x01,0x6e,0xff,0xe5,0x01,0x05,0x01,0x70, -0xff,0xe5,0x01,0x05,0x01,0x76,0xff,0x6d,0x01,0x05,0x01,0x77,0xff,0xe5,0x01,0x05,0x01,0x78,0xff,0xe5,0x01,0x05,0x01,0x7a,0xff,0xe5,0x01,0x05,0x01,0x7c,0xff,0xe5,0x01,0x05,0x01,0x7e,0xff,0xe5,0x01,0x05,0x01,0x80,0xff,0xb6,0x01,0x05,0x01,0x81,0xff,0xe5,0x01,0x05,0x01,0x82,0xff,0x64,0x01,0x05,0x01,0x83,0xff,0xdb,0x01,0x05, -0x01,0x89,0xff,0xe5,0x01,0x05,0x01,0x8c,0xff,0xb6,0x01,0x05,0x01,0x8d,0xff,0xe5,0x01,0x05,0x01,0x8e,0xff,0xb6,0x01,0x05,0x01,0x8f,0xff,0xe5,0x01,0x05,0x01,0x90,0xff,0xb6,0x01,0x05,0x01,0x91,0xff,0xe5,0x01,0x05,0x01,0x92,0xff,0x64,0x01,0x05,0x01,0x93,0xff,0xdb,0x01,0x07,0x00,0x0f,0xff,0x7f,0x01,0x07,0x00,0x11,0xff,0x7f, -0x01,0x07,0x00,0x24,0xff,0xdf,0x01,0x07,0x00,0x37,0xff,0xa4,0x01,0x07,0x00,0x3b,0xff,0xcb,0x01,0x07,0x00,0x3d,0xff,0xcf,0x01,0x07,0x00,0x62,0xff,0xdf,0x01,0x07,0x00,0x63,0xff,0xdf,0x01,0x07,0x00,0x91,0xff,0xb6,0x01,0x07,0x00,0xac,0xff,0x7f,0x01,0x07,0x00,0xad,0xff,0xdf,0x01,0x07,0x00,0xae,0xff,0xdf,0x01,0x07,0x00,0xbb, -0xff,0xf6,0x01,0x07,0x00,0xc4,0xff,0x8b,0x01,0x07,0x00,0xc5,0xff,0x8b,0x01,0x07,0x00,0xc7,0xff,0xdf,0x01,0x07,0x00,0xc9,0xff,0xdf,0x01,0x07,0x00,0xe5,0xff,0xcf,0x01,0x07,0x01,0x03,0xff,0xdf,0x01,0x07,0x01,0x05,0xff,0xdf,0x01,0x07,0x01,0x20,0xff,0xa4,0x01,0x07,0x01,0x22,0xff,0xa4,0x01,0x07,0x01,0x28,0xff,0xcf,0x01,0x07, -0x01,0x2a,0xff,0xcf,0x01,0x07,0x01,0x45,0xff,0xdf,0x01,0x07,0x01,0x76,0xff,0xa4,0x01,0x07,0x01,0x85,0xff,0xdf,0x01,0x07,0x01,0x87,0xff,0xdf,0x01,0x0a,0x00,0x24,0x00,0x0a,0x01,0x0a,0x00,0x2d,0x00,0x44,0x01,0x0a,0x00,0x37,0x00,0x04,0x01,0x0a,0x00,0x3a,0x00,0x1d,0x01,0x0a,0x00,0x3b,0x00,0x08,0x01,0x0a,0x00,0x62,0x00,0x0a, -0x01,0x0a,0x00,0x63,0x00,0x0a,0x01,0x0a,0x00,0x77,0x00,0x12,0x01,0x0a,0x00,0xad,0x00,0x0a,0x01,0x0a,0x00,0xae,0x00,0x0a,0x01,0x0a,0x00,0xc7,0x00,0x0a,0x01,0x0a,0x00,0xc9,0x00,0x0a,0x01,0x0a,0x01,0x03,0x00,0x0a,0x01,0x0a,0x01,0x05,0x00,0x0a,0x01,0x0a,0x01,0x20,0x00,0x04,0x01,0x0a,0x01,0x22,0x00,0x04,0x01,0x0a,0x01,0x45, -0x00,0x0a,0x01,0x0a,0x01,0x5c,0x00,0x12,0x01,0x0a,0x01,0x5e,0x00,0x12,0x01,0x0a,0x01,0x60,0x00,0x12,0x01,0x0a,0x01,0x63,0x00,0x44,0x01,0x0a,0x01,0x76,0x00,0x04,0x01,0x0a,0x01,0x80,0x00,0x1d,0x01,0x0a,0x01,0x85,0x00,0x0a,0x01,0x0a,0x01,0x87,0x00,0x0a,0x01,0x0a,0x01,0x8c,0x00,0x1d,0x01,0x0a,0x01,0x8e,0x00,0x1d,0x01,0x0a, -0x01,0x90,0x00,0x1d,0x01,0x0b,0x00,0x05,0xff,0x98,0x01,0x0b,0x00,0x0a,0xff,0x98,0x01,0x0c,0x00,0x24,0x00,0x0a,0x01,0x0c,0x00,0x2d,0x00,0x44,0x01,0x0c,0x00,0x37,0x00,0x04,0x01,0x0c,0x00,0x3a,0x00,0x1d,0x01,0x0c,0x00,0x3b,0x00,0x08,0x01,0x0c,0x00,0x62,0x00,0x0a,0x01,0x0c,0x00,0x63,0x00,0x0a,0x01,0x0c,0x00,0x77,0x00,0x12, -0x01,0x0c,0x00,0xad,0x00,0x0a,0x01,0x0c,0x00,0xae,0x00,0x0a,0x01,0x0c,0x00,0xc7,0x00,0x0a,0x01,0x0c,0x00,0xc9,0x00,0x0a,0x01,0x0c,0x01,0x03,0x00,0x0a,0x01,0x0c,0x01,0x05,0x00,0x0a,0x01,0x0c,0x01,0x20,0x00,0x04,0x01,0x0c,0x01,0x22,0x00,0x04,0x01,0x0c,0x01,0x45,0x00,0x0a,0x01,0x0c,0x01,0x5c,0x00,0x12,0x01,0x0c,0x01,0x5e, -0x00,0x12,0x01,0x0c,0x01,0x60,0x00,0x12,0x01,0x0c,0x01,0x63,0x00,0x44,0x01,0x0c,0x01,0x76,0x00,0x04,0x01,0x0c,0x01,0x80,0x00,0x1d,0x01,0x0c,0x01,0x85,0x00,0x0a,0x01,0x0c,0x01,0x87,0x00,0x0a,0x01,0x0c,0x01,0x8c,0x00,0x1d,0x01,0x0c,0x01,0x8e,0x00,0x1d,0x01,0x0c,0x01,0x90,0x00,0x1d,0x01,0x0d,0x00,0x05,0xff,0x98,0x01,0x0d, -0x00,0x0a,0xff,0x98,0x01,0x0e,0x00,0x0d,0xff,0x31,0x01,0x0e,0x00,0x22,0xff,0x9a,0x01,0x0e,0x00,0x24,0x00,0x3b,0x01,0x0e,0x00,0x26,0xff,0xbe,0x01,0x0e,0x00,0x2a,0xff,0xbe,0x01,0x0e,0x00,0x2d,0x00,0x64,0x01,0x0e,0x00,0x32,0xff,0xba,0x01,0x0e,0x00,0x34,0xff,0xba,0x01,0x0e,0x00,0x37,0xff,0x8f,0x01,0x0e,0x00,0x38,0xff,0xe3, -0x01,0x0e,0x00,0x39,0xff,0x8b,0x01,0x0e,0x00,0x3a,0xff,0xcf,0x01,0x0e,0x00,0x3c,0xff,0x7f,0x01,0x0e,0x00,0x3d,0x00,0x3b,0x01,0x0e,0x00,0x57,0xff,0xe5,0x01,0x0e,0x00,0x59,0xff,0x9a,0x01,0x0e,0x00,0x5a,0xff,0xbe,0x01,0x0e,0x00,0x5c,0xff,0xb4,0x01,0x0e,0x00,0x64,0xff,0xbe,0x01,0x0e,0x00,0x67,0xff,0xba,0x01,0x0e,0x00,0x68, -0xff,0xe3,0x01,0x0e,0x00,0x8d,0xff,0x9a,0x01,0x0e,0x00,0x92,0xff,0xba,0x01,0x0e,0x00,0xaf,0xff,0xba,0x01,0x0e,0x00,0xb0,0xff,0xba,0x01,0x0e,0x00,0xb4,0xff,0x73,0x01,0x0e,0x00,0xb5,0xff,0x8b,0x01,0x0e,0x00,0xb6,0xff,0x73,0x01,0x0e,0x00,0xb7,0xff,0x7f,0x01,0x0e,0x00,0xba,0xff,0xb4,0x01,0x0e,0x00,0xbb,0xff,0x9a,0x01,0x0e, -0x00,0xc4,0x00,0x44,0x01,0x0e,0x00,0xc5,0x00,0x44,0x01,0x0e,0x00,0xd0,0xff,0xba,0x01,0x0e,0x00,0xd1,0xff,0xba,0x01,0x0e,0x00,0xd2,0xff,0xba,0x01,0x0e,0x00,0xd3,0xff,0xe3,0x01,0x0e,0x00,0xd4,0xff,0xe3,0x01,0x0e,0x00,0xd5,0xff,0xe3,0x01,0x0e,0x00,0xe5,0x00,0x3b,0x01,0x0e,0x00,0xea,0xff,0x7f,0x01,0x0e,0x00,0xeb,0xff,0xb4, -0x01,0x0e,0x00,0xf7,0xff,0xbe,0x01,0x0e,0x00,0xfc,0xff,0xbe,0x01,0x0e,0x00,0xfe,0xff,0xbe,0x01,0x0e,0x01,0x03,0x00,0x3b,0x01,0x0e,0x01,0x05,0x00,0x3b,0x01,0x0e,0x01,0x18,0xff,0xba,0x01,0x0e,0x01,0x20,0xff,0x8f,0x01,0x0e,0x01,0x21,0xff,0xe5,0x01,0x0e,0x01,0x22,0xff,0x8f,0x01,0x0e,0x01,0x23,0xff,0xe5,0x01,0x0e,0x01,0x24, -0xff,0xe3,0x01,0x0e,0x01,0x26,0xff,0xe3,0x01,0x0e,0x01,0x28,0x00,0x3b,0x01,0x0e,0x01,0x2a,0x00,0x3b,0x01,0x0e,0x01,0x45,0x00,0x3b,0x01,0x0e,0x01,0x47,0xff,0xbe,0x01,0x0e,0x01,0x51,0xff,0xbe,0x01,0x0e,0x01,0x53,0xff,0xbe,0x01,0x0e,0x01,0x55,0xff,0xbe,0x01,0x0e,0x01,0x63,0x00,0x64,0x01,0x0e,0x01,0x6e,0xff,0xba,0x01,0x0e, -0x01,0x70,0xff,0xba,0x01,0x0e,0x01,0x76,0xff,0x8f,0x01,0x0e,0x01,0x77,0xff,0xe5,0x01,0x0e,0x01,0x78,0xff,0xe3,0x01,0x0e,0x01,0x7a,0xff,0xe3,0x01,0x0e,0x01,0x7c,0xff,0xe3,0x01,0x0e,0x01,0x7e,0xff,0xe3,0x01,0x0e,0x01,0x80,0xff,0xcf,0x01,0x0e,0x01,0x81,0xff,0xbe,0x01,0x0e,0x01,0x82,0xff,0x7f,0x01,0x0e,0x01,0x83,0xff,0xb4, -0x01,0x0e,0x01,0x85,0x00,0x3b,0x01,0x0e,0x01,0x87,0x00,0x3b,0x01,0x0e,0x01,0x89,0xff,0xba,0x01,0x0e,0x01,0x8c,0xff,0xcf,0x01,0x0e,0x01,0x8d,0xff,0xbe,0x01,0x0e,0x01,0x8e,0xff,0xcf,0x01,0x0e,0x01,0x8f,0xff,0xbe,0x01,0x0e,0x01,0x90,0xff,0xcf,0x01,0x0e,0x01,0x91,0xff,0xbe,0x01,0x0e,0x01,0x92,0xff,0x7f,0x01,0x0e,0x01,0x93, -0xff,0xb4,0x01,0x10,0x00,0x0d,0xff,0x31,0x01,0x10,0x00,0x22,0xff,0x9a,0x01,0x10,0x00,0x24,0x00,0x3b,0x01,0x10,0x00,0x26,0xff,0xbe,0x01,0x10,0x00,0x2a,0xff,0xbe,0x01,0x10,0x00,0x2d,0x00,0x64,0x01,0x10,0x00,0x32,0xff,0xba,0x01,0x10,0x00,0x34,0xff,0xba,0x01,0x10,0x00,0x37,0xff,0x8f,0x01,0x10,0x00,0x38,0xff,0xe3,0x01,0x10, -0x00,0x39,0xff,0x8b,0x01,0x10,0x00,0x3a,0xff,0xcf,0x01,0x10,0x00,0x3c,0xff,0x7f,0x01,0x10,0x00,0x3d,0x00,0x3b,0x01,0x10,0x00,0x57,0xff,0xe5,0x01,0x10,0x00,0x59,0xff,0x9a,0x01,0x10,0x00,0x5a,0xff,0xbe,0x01,0x10,0x00,0x5c,0xff,0xb4,0x01,0x10,0x00,0x64,0xff,0xbe,0x01,0x10,0x00,0x67,0xff,0xba,0x01,0x10,0x00,0x68,0xff,0xe3, -0x01,0x10,0x00,0x8d,0xff,0x9a,0x01,0x10,0x00,0x92,0xff,0xba,0x01,0x10,0x00,0xaf,0xff,0xba,0x01,0x10,0x00,0xb0,0xff,0xba,0x01,0x10,0x00,0xb4,0xff,0x73,0x01,0x10,0x00,0xb5,0xff,0x8b,0x01,0x10,0x00,0xb6,0xff,0x73,0x01,0x10,0x00,0xb7,0xff,0x7f,0x01,0x10,0x00,0xba,0xff,0xb4,0x01,0x10,0x00,0xbb,0xff,0x9a,0x01,0x10,0x00,0xc4, -0x00,0x44,0x01,0x10,0x00,0xc5,0x00,0x44,0x01,0x10,0x00,0xd0,0xff,0xba,0x01,0x10,0x00,0xd1,0xff,0xba,0x01,0x10,0x00,0xd2,0xff,0xba,0x01,0x10,0x00,0xd3,0xff,0xe3,0x01,0x10,0x00,0xd4,0xff,0xe3,0x01,0x10,0x00,0xd5,0xff,0xe3,0x01,0x10,0x00,0xe5,0x00,0x3b,0x01,0x10,0x00,0xea,0xff,0x7f,0x01,0x10,0x00,0xeb,0xff,0xb4,0x01,0x10, -0x00,0xf7,0xff,0xbe,0x01,0x10,0x00,0xfc,0xff,0xbe,0x01,0x10,0x00,0xfe,0xff,0xbe,0x01,0x10,0x01,0x03,0x00,0x3b,0x01,0x10,0x01,0x05,0x00,0x3b,0x01,0x10,0x01,0x20,0xff,0x8f,0x01,0x10,0x01,0x21,0xff,0xe5,0x01,0x10,0x01,0x22,0xff,0x8f,0x01,0x10,0x01,0x23,0xff,0xe5,0x01,0x10,0x01,0x24,0xff,0xe3,0x01,0x10,0x01,0x26,0xff,0xe3, -0x01,0x10,0x01,0x28,0x00,0x3b,0x01,0x10,0x01,0x2a,0x00,0x3b,0x01,0x10,0x01,0x45,0x00,0x3b,0x01,0x10,0x01,0x47,0xff,0xbe,0x01,0x10,0x01,0x51,0xff,0xbe,0x01,0x10,0x01,0x53,0xff,0xbe,0x01,0x10,0x01,0x55,0xff,0xbe,0x01,0x10,0x01,0x63,0x00,0x64,0x01,0x10,0x01,0x6e,0xff,0xba,0x01,0x10,0x01,0x70,0xff,0xba,0x01,0x10,0x01,0x76, -0xff,0x8f,0x01,0x10,0x01,0x77,0xff,0xe5,0x01,0x10,0x01,0x78,0xff,0xe3,0x01,0x10,0x01,0x7a,0xff,0xe3,0x01,0x10,0x01,0x7c,0xff,0xe3,0x01,0x10,0x01,0x7e,0xff,0xe3,0x01,0x10,0x01,0x80,0xff,0xcf,0x01,0x10,0x01,0x81,0xff,0xbe,0x01,0x10,0x01,0x82,0xff,0x7f,0x01,0x10,0x01,0x83,0xff,0xb4,0x01,0x10,0x01,0x85,0x00,0x3b,0x01,0x10, -0x01,0x87,0x00,0x3b,0x01,0x10,0x01,0x89,0xff,0xba,0x01,0x10,0x01,0x8c,0xff,0xcf,0x01,0x10,0x01,0x8d,0xff,0xbe,0x01,0x10,0x01,0x8e,0xff,0xcf,0x01,0x10,0x01,0x8f,0xff,0xbe,0x01,0x10,0x01,0x90,0xff,0xcf,0x01,0x10,0x01,0x91,0xff,0xbe,0x01,0x10,0x01,0x92,0xff,0x7f,0x01,0x10,0x01,0x93,0xff,0xb4,0x01,0x12,0x00,0x0d,0xff,0x31, -0x01,0x12,0x00,0x22,0xff,0x9a,0x01,0x12,0x00,0x24,0x00,0x3b,0x01,0x12,0x00,0x26,0xff,0xbe,0x01,0x12,0x00,0x2a,0xff,0xbe,0x01,0x12,0x00,0x2d,0x00,0x64,0x01,0x12,0x00,0x32,0xff,0xba,0x01,0x12,0x00,0x34,0xff,0xba,0x01,0x12,0x00,0x37,0xff,0x8f,0x01,0x12,0x00,0x38,0xff,0xe3,0x01,0x12,0x00,0x39,0xff,0x8b,0x01,0x12,0x00,0x3a, -0xff,0xcf,0x01,0x12,0x00,0x3c,0xff,0x7f,0x01,0x12,0x00,0x3d,0x00,0x3b,0x01,0x12,0x00,0x57,0xff,0xe5,0x01,0x12,0x00,0x59,0xff,0x9a,0x01,0x12,0x00,0x5a,0xff,0xbe,0x01,0x12,0x00,0x5c,0xff,0xb4,0x01,0x12,0x00,0x64,0xff,0xbe,0x01,0x12,0x00,0x67,0xff,0xba,0x01,0x12,0x00,0x68,0xff,0xe3,0x01,0x12,0x00,0x8d,0xff,0x9a,0x01,0x12, -0x00,0x92,0xff,0xba,0x01,0x12,0x00,0xaf,0xff,0xba,0x01,0x12,0x00,0xb0,0xff,0xba,0x01,0x12,0x00,0xb4,0xff,0x73,0x01,0x12,0x00,0xb5,0xff,0x8b,0x01,0x12,0x00,0xb6,0xff,0x73,0x01,0x12,0x00,0xb7,0xff,0x7f,0x01,0x12,0x00,0xba,0xff,0xb4,0x01,0x12,0x00,0xbb,0xff,0x9a,0x01,0x12,0x00,0xc4,0x00,0x44,0x01,0x12,0x00,0xc5,0x00,0x44, -0x01,0x12,0x00,0xd0,0xff,0xba,0x01,0x12,0x00,0xd1,0xff,0xba,0x01,0x12,0x00,0xd2,0xff,0xba,0x01,0x12,0x00,0xd3,0xff,0xe3,0x01,0x12,0x00,0xd4,0xff,0xe3,0x01,0x12,0x00,0xd5,0xff,0xe3,0x01,0x12,0x00,0xe5,0x00,0x3b,0x01,0x12,0x00,0xea,0xff,0x7f,0x01,0x12,0x00,0xeb,0xff,0xb4,0x01,0x12,0x00,0xf7,0xff,0xbe,0x01,0x12,0x00,0xfc, -0xff,0xbe,0x01,0x12,0x00,0xfe,0xff,0xbe,0x01,0x12,0x01,0x03,0x00,0x3b,0x01,0x12,0x01,0x05,0x00,0x3b,0x01,0x12,0x01,0x18,0xff,0xba,0x01,0x12,0x01,0x20,0xff,0x8f,0x01,0x12,0x01,0x21,0xff,0xe5,0x01,0x12,0x01,0x22,0xff,0x8f,0x01,0x12,0x01,0x23,0xff,0xe5,0x01,0x12,0x01,0x24,0xff,0xe3,0x01,0x12,0x01,0x26,0xff,0xe3,0x01,0x12, -0x01,0x28,0x00,0x3b,0x01,0x12,0x01,0x2a,0x00,0x3b,0x01,0x12,0x01,0x45,0x00,0x3b,0x01,0x12,0x01,0x47,0xff,0xbe,0x01,0x12,0x01,0x51,0xff,0xbe,0x01,0x12,0x01,0x53,0xff,0xbe,0x01,0x12,0x01,0x55,0xff,0xbe,0x01,0x12,0x01,0x63,0x00,0x64,0x01,0x12,0x01,0x6e,0xff,0xba,0x01,0x12,0x01,0x70,0xff,0xba,0x01,0x12,0x01,0x76,0xff,0x8f, -0x01,0x12,0x01,0x77,0xff,0xe5,0x01,0x12,0x01,0x78,0xff,0xe3,0x01,0x12,0x01,0x7a,0xff,0xe3,0x01,0x12,0x01,0x7c,0xff,0xe3,0x01,0x12,0x01,0x7e,0xff,0xe3,0x01,0x12,0x01,0x80,0xff,0xcf,0x01,0x12,0x01,0x81,0xff,0xbe,0x01,0x12,0x01,0x82,0xff,0x7f,0x01,0x12,0x01,0x83,0xff,0xb4,0x01,0x12,0x01,0x85,0x00,0x3b,0x01,0x12,0x01,0x87, -0x00,0x3b,0x01,0x12,0x01,0x89,0xff,0xba,0x01,0x12,0x01,0x8c,0xff,0xcf,0x01,0x12,0x01,0x8d,0xff,0xbe,0x01,0x12,0x01,0x8e,0xff,0xcf,0x01,0x12,0x01,0x8f,0xff,0xbe,0x01,0x12,0x01,0x90,0xff,0xcf,0x01,0x12,0x01,0x91,0xff,0xbe,0x01,0x12,0x01,0x92,0xff,0x7f,0x01,0x12,0x01,0x93,0xff,0xb4,0x01,0x15,0x00,0x05,0xff,0x98,0x01,0x15, -0x00,0x0a,0xff,0x98,0x01,0x17,0x00,0x05,0xff,0x98,0x01,0x17,0x00,0x0a,0xff,0x98,0x01,0x18,0x00,0x0f,0xff,0xa4,0x01,0x18,0x00,0x11,0xff,0xa4,0x01,0x18,0x00,0x24,0xff,0xe5,0x01,0x18,0x00,0x2d,0xff,0xf6,0x01,0x18,0x00,0x37,0xff,0xa4,0x01,0x18,0x00,0x3b,0xff,0xdb,0x01,0x18,0x00,0x3c,0xff,0xe7,0x01,0x18,0x00,0x3d,0xff,0xcf, -0x01,0x18,0x00,0x62,0xff,0xe5,0x01,0x18,0x00,0x63,0xff,0xe5,0x01,0x18,0x00,0xac,0xff,0xa4,0x01,0x18,0x00,0xad,0xff,0xe5,0x01,0x18,0x00,0xae,0xff,0xe5,0x01,0x18,0x00,0xbb,0xff,0xf6,0x01,0x18,0x00,0xc4,0xff,0x4c,0x01,0x18,0x00,0xc5,0xff,0x98,0x01,0x18,0x00,0xc7,0xff,0xe5,0x01,0x18,0x00,0xc9,0xff,0xe5,0x01,0x18,0x00,0xe5, -0xff,0xcf,0x01,0x18,0x00,0xea,0xff,0xe7,0x01,0x18,0x01,0x03,0xff,0xe5,0x01,0x18,0x01,0x05,0xff,0xe5,0x01,0x18,0x01,0x20,0xff,0xa4,0x01,0x18,0x01,0x22,0xff,0xa4,0x01,0x18,0x01,0x28,0xff,0xcf,0x01,0x18,0x01,0x2a,0xff,0xcf,0x01,0x18,0x01,0x45,0xff,0xe5,0x01,0x18,0x01,0x63,0xff,0xf6,0x01,0x18,0x01,0x76,0xff,0xa4,0x01,0x18, -0x01,0x82,0xff,0xe7,0x01,0x18,0x01,0x85,0xff,0xe5,0x01,0x18,0x01,0x87,0xff,0xe5,0x01,0x18,0x01,0x92,0xff,0xe7,0x01,0x19,0x00,0x05,0xff,0x6f,0x01,0x19,0x00,0x0a,0xff,0x6f,0x01,0x19,0x00,0x44,0xff,0xe5,0x01,0x19,0x00,0x49,0xff,0xdb,0x01,0x19,0x00,0x5b,0xff,0xe7,0x01,0x19,0x00,0x69,0xff,0xe5,0x01,0x19,0x00,0x6a,0xff,0xe5, -0x01,0x19,0x00,0x6b,0xff,0xe5,0x01,0x19,0x00,0x6c,0xff,0xe5,0x01,0x19,0x00,0x6d,0xff,0xe5,0x01,0x19,0x00,0x6e,0xff,0xe5,0x01,0x19,0x00,0xa0,0xff,0xe5,0x01,0x19,0x00,0xb4,0xff,0xb2,0x01,0x19,0x00,0xb5,0xff,0x7d,0x01,0x19,0x00,0xb6,0xff,0xbe,0x01,0x19,0x00,0xb7,0xff,0x7d,0x01,0x19,0x00,0xc0,0xff,0xe7,0x01,0x19,0x00,0xc1, -0xff,0xe7,0x01,0x19,0x01,0x04,0xff,0xe5,0x01,0x19,0x01,0x06,0xff,0xe5,0x01,0x19,0x01,0x46,0xff,0xe5,0x01,0x19,0x01,0x86,0xff,0xe5,0x01,0x19,0x01,0x88,0xff,0xe5,0x01,0x1a,0x00,0x1e,0x00,0x52,0x01,0x1a,0x00,0x26,0xff,0xe3,0x01,0x1a,0x00,0x2a,0xff,0xe3,0x01,0x1a,0x00,0x2d,0x00,0x39,0x01,0x1a,0x00,0x32,0xff,0xec,0x01,0x1a, -0x00,0x34,0xff,0xec,0x01,0x1a,0x00,0x37,0xff,0xcb,0x01,0x1a,0x00,0x3c,0xff,0xd9,0x01,0x1a,0x00,0x46,0xff,0xcb,0x01,0x1a,0x00,0x47,0xff,0xcb,0x01,0x1a,0x00,0x48,0xff,0xc7,0x01,0x1a,0x00,0x4a,0xff,0xc7,0x01,0x1a,0x00,0x52,0xff,0xc5,0x01,0x1a,0x00,0x54,0xff,0xcb,0x01,0x1a,0x00,0x64,0xff,0xe5,0x01,0x1a,0x00,0x67,0xff,0xec, -0x01,0x1a,0x00,0x6f,0xff,0xbe,0x01,0x1a,0x00,0x70,0xff,0xbe,0x01,0x1a,0x00,0x71,0xff,0xbe,0x01,0x1a,0x00,0x72,0xff,0xbe,0x01,0x1a,0x00,0x73,0xff,0xbe,0x01,0x1a,0x00,0x79,0xff,0xc5,0x01,0x1a,0x00,0x7a,0xff,0xc5,0x01,0x1a,0x00,0x7b,0xff,0xc5,0x01,0x1a,0x00,0x7c,0xff,0xc5,0x01,0x1a,0x00,0x7d,0xff,0xc5,0x01,0x1a,0x00,0x92, -0xff,0xec,0x01,0x1a,0x00,0xaf,0xff,0xec,0x01,0x1a,0x00,0xb0,0xff,0xec,0x01,0x1a,0x00,0xb1,0xff,0xc5,0x01,0x1a,0x00,0xbb,0xff,0xe5,0x01,0x1a,0x00,0xd0,0xff,0xec,0x01,0x1a,0x00,0xd1,0xff,0xec,0x01,0x1a,0x00,0xd2,0xff,0xec,0x01,0x1a,0x00,0xea,0xff,0xd9,0x01,0x1a,0x00,0xf7,0xff,0xe3,0x01,0x1a,0x00,0xf8,0xff,0xc7,0x01,0x1a, -0x00,0xfc,0xff,0xe3,0x01,0x1a,0x00,0xfd,0xff,0xcb,0x01,0x1a,0x00,0xfe,0xff,0xe3,0x01,0x1a,0x00,0xff,0xff,0xcb,0x01,0x1a,0x01,0x00,0xff,0xcb,0x01,0x1a,0x01,0x08,0xff,0xcb,0x01,0x1a,0x01,0x0b,0xff,0xc7,0x01,0x1a,0x01,0x0d,0xff,0xbe,0x01,0x1a,0x01,0x18,0xff,0xec,0x01,0x1a,0x01,0x19,0xff,0xc5,0x01,0x1a,0x01,0x20,0xff,0xcb, -0x01,0x1a,0x01,0x22,0xff,0xcb,0x01,0x1a,0x01,0x47,0xff,0xe3,0x01,0x1a,0x01,0x48,0xff,0xcb,0x01,0x1a,0x01,0x4c,0xff,0xbe,0x01,0x1a,0x01,0x4e,0xff,0xbe,0x01,0x1a,0x01,0x50,0xff,0xbe,0x01,0x1a,0x01,0x51,0xff,0xe3,0x01,0x1a,0x01,0x52,0xff,0xc7,0x01,0x1a,0x01,0x53,0xff,0xe3,0x01,0x1a,0x01,0x54,0xff,0xc7,0x01,0x1a,0x01,0x55, -0xff,0xe3,0x01,0x1a,0x01,0x56,0xff,0xc7,0x01,0x1a,0x01,0x63,0x00,0x39,0x01,0x1a,0x01,0x6e,0xff,0xec,0x01,0x1a,0x01,0x6f,0xff,0xc5,0x01,0x1a,0x01,0x70,0xff,0xec,0x01,0x1a,0x01,0x71,0xff,0xc5,0x01,0x1a,0x01,0x76,0xff,0xcb,0x01,0x1a,0x01,0x82,0xff,0xd9,0x01,0x1a,0x01,0x89,0xff,0xec,0x01,0x1a,0x01,0x8a,0xff,0xc5,0x01,0x1a, -0x01,0x92,0xff,0xd9,0x01,0x1b,0x00,0x0f,0xff,0x62,0x01,0x1b,0x00,0x10,0xff,0x7f,0x01,0x1b,0x00,0x11,0xff,0x56,0x01,0x1b,0x00,0x1d,0x00,0x52,0x01,0x1b,0x00,0x1e,0x00,0x52,0x01,0x1b,0x00,0x46,0xff,0xe5,0x01,0x1b,0x00,0x47,0xff,0xe5,0x01,0x1b,0x00,0x48,0xff,0xe5,0x01,0x1b,0x00,0x49,0x00,0x27,0x01,0x1b,0x00,0x4a,0xff,0xe5, -0x01,0x1b,0x00,0x50,0xff,0xfc,0x01,0x1b,0x00,0x51,0xff,0xfc,0x01,0x1b,0x00,0x52,0xff,0xe5,0x01,0x1b,0x00,0x54,0xff,0xe5,0x01,0x1b,0x00,0x56,0x00,0x0e,0x01,0x1b,0x00,0x57,0x00,0x3b,0x01,0x1b,0x00,0x59,0x00,0x52,0x01,0x1b,0x00,0x5a,0x00,0x52,0x01,0x1b,0x00,0x5b,0x00,0x3b,0x01,0x1b,0x00,0x5c,0x00,0x52,0x01,0x1b,0x00,0x5d, -0x00,0x27,0x01,0x1b,0x00,0x6f,0xff,0xe5,0x01,0x1b,0x00,0x70,0xff,0xe5,0x01,0x1b,0x00,0x71,0xff,0xe5,0x01,0x1b,0x00,0x72,0xff,0xe5,0x01,0x1b,0x00,0x73,0xff,0xe5,0x01,0x1b,0x00,0x79,0xff,0xe5,0x01,0x1b,0x00,0x7a,0xff,0xe5,0x01,0x1b,0x00,0x7b,0xff,0xe5,0x01,0x1b,0x00,0x7c,0xff,0xe5,0x01,0x1b,0x00,0x7d,0xff,0xe5,0x01,0x1b, -0x00,0xac,0xff,0x56,0x01,0x1b,0x00,0xb1,0xff,0xe5,0x01,0x1b,0x00,0xb4,0x00,0xa4,0x01,0x1b,0x00,0xb5,0x00,0x79,0x01,0x1b,0x00,0xb6,0x00,0xa4,0x01,0x1b,0x00,0xb7,0x00,0x79,0x01,0x1b,0x00,0xc4,0xff,0x62,0x01,0x1b,0x00,0xc5,0xff,0x62,0x01,0x1b,0x00,0xe4,0x00,0x0e,0x01,0x1b,0x00,0xe6,0x00,0x27,0x01,0x1b,0x00,0xeb,0x00,0x52, -0x01,0x1b,0x00,0xf8,0xff,0xe5,0x01,0x1b,0x00,0xfb,0x00,0x0e,0x01,0x1b,0x00,0xfd,0xff,0xe5,0x01,0x1b,0x00,0xff,0xff,0xe5,0x01,0x1b,0x01,0x00,0xff,0xe5,0x01,0x1b,0x01,0x08,0xff,0xe5,0x01,0x1b,0x01,0x0b,0xff,0xe5,0x01,0x1b,0x01,0x0d,0xff,0xe5,0x01,0x1b,0x01,0x19,0xff,0xe5,0x01,0x1b,0x01,0x1f,0x00,0x0e,0x01,0x1b,0x01,0x21, -0x00,0x3b,0x01,0x1b,0x01,0x23,0x00,0x3b,0x01,0x1b,0x01,0x29,0x00,0x27,0x01,0x1b,0x01,0x2b,0x00,0x27,0x01,0x1b,0x01,0x48,0xff,0xe5,0x01,0x1b,0x01,0x4c,0xff,0xe5,0x01,0x1b,0x01,0x4e,0xff,0xe5,0x01,0x1b,0x01,0x50,0xff,0xe5,0x01,0x1b,0x01,0x52,0xff,0xe5,0x01,0x1b,0x01,0x54,0xff,0xe5,0x01,0x1b,0x01,0x56,0xff,0xe5,0x01,0x1b, -0x01,0x6d,0xff,0xfc,0x01,0x1b,0x01,0x6f,0xff,0xe5,0x01,0x1b,0x01,0x71,0xff,0xe5,0x01,0x1b,0x01,0x75,0x00,0x0e,0x01,0x1b,0x01,0x77,0x00,0x3b,0x01,0x1b,0x01,0x81,0x00,0x52,0x01,0x1b,0x01,0x83,0x00,0x52,0x01,0x1b,0x01,0x8a,0xff,0xe5,0x01,0x1b,0x01,0x8d,0x00,0x52,0x01,0x1b,0x01,0x8f,0x00,0x52,0x01,0x1b,0x01,0x91,0x00,0x52, -0x01,0x1b,0x01,0x93,0x00,0x52,0x01,0x1b,0x02,0x3e,0x00,0x0e,0x01,0x1c,0x00,0x1e,0x00,0x52,0x01,0x1c,0x00,0x26,0xff,0xe3,0x01,0x1c,0x00,0x2a,0xff,0xe3,0x01,0x1c,0x00,0x2d,0x00,0x39,0x01,0x1c,0x00,0x32,0xff,0xec,0x01,0x1c,0x00,0x34,0xff,0xec,0x01,0x1c,0x00,0x37,0xff,0xcb,0x01,0x1c,0x00,0x3c,0xff,0xd9,0x01,0x1c,0x00,0x46, -0xff,0xcb,0x01,0x1c,0x00,0x47,0xff,0xcb,0x01,0x1c,0x00,0x48,0xff,0xc7,0x01,0x1c,0x00,0x4a,0xff,0xc7,0x01,0x1c,0x00,0x52,0xff,0xc5,0x01,0x1c,0x00,0x54,0xff,0xcb,0x01,0x1c,0x00,0x64,0xff,0xe5,0x01,0x1c,0x00,0x67,0xff,0xec,0x01,0x1c,0x00,0x6f,0xff,0xbe,0x01,0x1c,0x00,0x70,0xff,0xbe,0x01,0x1c,0x00,0x71,0xff,0xbe,0x01,0x1c, -0x00,0x72,0xff,0xbe,0x01,0x1c,0x00,0x73,0xff,0xbe,0x01,0x1c,0x00,0x79,0xff,0xc5,0x01,0x1c,0x00,0x7a,0xff,0xc5,0x01,0x1c,0x00,0x7b,0xff,0xc5,0x01,0x1c,0x00,0x7c,0xff,0xc5,0x01,0x1c,0x00,0x7d,0xff,0xc5,0x01,0x1c,0x00,0x92,0xff,0xec,0x01,0x1c,0x00,0xaf,0xff,0xec,0x01,0x1c,0x00,0xb0,0xff,0xec,0x01,0x1c,0x00,0xb1,0xff,0xc5, -0x01,0x1c,0x00,0xbb,0xff,0xe5,0x01,0x1c,0x00,0xd0,0xff,0xec,0x01,0x1c,0x00,0xd1,0xff,0xec,0x01,0x1c,0x00,0xd2,0xff,0xec,0x01,0x1c,0x00,0xea,0xff,0xd9,0x01,0x1c,0x00,0xf7,0xff,0xe3,0x01,0x1c,0x00,0xf8,0xff,0xc7,0x01,0x1c,0x00,0xfc,0xff,0xe3,0x01,0x1c,0x00,0xfd,0xff,0xcb,0x01,0x1c,0x00,0xfe,0xff,0xe3,0x01,0x1c,0x00,0xff, -0xff,0xcb,0x01,0x1c,0x01,0x00,0xff,0xcb,0x01,0x1c,0x01,0x08,0xff,0xcb,0x01,0x1c,0x01,0x0b,0xff,0xc7,0x01,0x1c,0x01,0x0d,0xff,0xbe,0x01,0x1c,0x01,0x18,0xff,0xec,0x01,0x1c,0x01,0x19,0xff,0xc5,0x01,0x1c,0x01,0x20,0xff,0xcb,0x01,0x1c,0x01,0x22,0xff,0xcb,0x01,0x1c,0x01,0x47,0xff,0xe3,0x01,0x1c,0x01,0x48,0xff,0xcb,0x01,0x1c, -0x01,0x4c,0xff,0xbe,0x01,0x1c,0x01,0x4e,0xff,0xbe,0x01,0x1c,0x01,0x50,0xff,0xbe,0x01,0x1c,0x01,0x51,0xff,0xe3,0x01,0x1c,0x01,0x52,0xff,0xc7,0x01,0x1c,0x01,0x53,0xff,0xe3,0x01,0x1c,0x01,0x54,0xff,0xc7,0x01,0x1c,0x01,0x55,0xff,0xe3,0x01,0x1c,0x01,0x56,0xff,0xc7,0x01,0x1c,0x01,0x63,0x00,0x39,0x01,0x1c,0x01,0x6e,0xff,0xec, -0x01,0x1c,0x01,0x6f,0xff,0xc5,0x01,0x1c,0x01,0x70,0xff,0xec,0x01,0x1c,0x01,0x71,0xff,0xc5,0x01,0x1c,0x01,0x76,0xff,0xcb,0x01,0x1c,0x01,0x82,0xff,0xd9,0x01,0x1c,0x01,0x89,0xff,0xec,0x01,0x1c,0x01,0x8a,0xff,0xc5,0x01,0x1c,0x01,0x92,0xff,0xd9,0x01,0x1d,0x00,0x0f,0xff,0x62,0x01,0x1d,0x00,0x10,0xff,0x7f,0x01,0x1d,0x00,0x11, -0xff,0x56,0x01,0x1d,0x00,0x1d,0x00,0x52,0x01,0x1d,0x00,0x1e,0x00,0x52,0x01,0x1d,0x00,0x46,0xff,0xe5,0x01,0x1d,0x00,0x47,0xff,0xe5,0x01,0x1d,0x00,0x48,0xff,0xe5,0x01,0x1d,0x00,0x49,0x00,0x27,0x01,0x1d,0x00,0x4a,0xff,0xe5,0x01,0x1d,0x00,0x50,0xff,0xfc,0x01,0x1d,0x00,0x51,0xff,0xfc,0x01,0x1d,0x00,0x52,0xff,0xe5,0x01,0x1d, -0x00,0x54,0xff,0xe5,0x01,0x1d,0x00,0x56,0x00,0x0e,0x01,0x1d,0x00,0x57,0x00,0x3b,0x01,0x1d,0x00,0x59,0x00,0x52,0x01,0x1d,0x00,0x5a,0x00,0x52,0x01,0x1d,0x00,0x5b,0x00,0x3b,0x01,0x1d,0x00,0x5c,0x00,0x52,0x01,0x1d,0x00,0x5d,0x00,0x27,0x01,0x1d,0x00,0x6f,0xff,0xe5,0x01,0x1d,0x00,0x70,0xff,0xe5,0x01,0x1d,0x00,0x71,0xff,0xe5, -0x01,0x1d,0x00,0x72,0xff,0xe5,0x01,0x1d,0x00,0x73,0xff,0xe5,0x01,0x1d,0x00,0x79,0xff,0xe5,0x01,0x1d,0x00,0x7a,0xff,0xe5,0x01,0x1d,0x00,0x7b,0xff,0xe5,0x01,0x1d,0x00,0x7c,0xff,0xe5,0x01,0x1d,0x00,0x7d,0xff,0xe5,0x01,0x1d,0x00,0xac,0xff,0x56,0x01,0x1d,0x00,0xb1,0xff,0xe5,0x01,0x1d,0x00,0xb4,0x00,0xa4,0x01,0x1d,0x00,0xb5, -0x00,0x79,0x01,0x1d,0x00,0xb6,0x00,0xa4,0x01,0x1d,0x00,0xb7,0x00,0x79,0x01,0x1d,0x00,0xc4,0xff,0x62,0x01,0x1d,0x00,0xc5,0xff,0x62,0x01,0x1d,0x00,0xe4,0x00,0x0e,0x01,0x1d,0x00,0xe6,0x00,0x27,0x01,0x1d,0x00,0xeb,0x00,0x52,0x01,0x1d,0x00,0xf8,0xff,0xe5,0x01,0x1d,0x00,0xfb,0x00,0x0e,0x01,0x1d,0x00,0xfd,0xff,0xe5,0x01,0x1d, -0x00,0xff,0xff,0xe5,0x01,0x1d,0x01,0x00,0xff,0xe5,0x01,0x1d,0x01,0x08,0xff,0xe5,0x01,0x1d,0x01,0x0b,0xff,0xe5,0x01,0x1d,0x01,0x0d,0xff,0xe5,0x01,0x1d,0x01,0x19,0xff,0xe5,0x01,0x1d,0x01,0x1f,0x00,0x0e,0x01,0x1d,0x01,0x21,0x00,0x3b,0x01,0x1d,0x01,0x23,0x00,0x3b,0x01,0x1d,0x01,0x29,0x00,0x27,0x01,0x1d,0x01,0x2b,0x00,0x27, -0x01,0x1d,0x01,0x48,0xff,0xe5,0x01,0x1d,0x01,0x4c,0xff,0xe5,0x01,0x1d,0x01,0x4e,0xff,0xe5,0x01,0x1d,0x01,0x50,0xff,0xe5,0x01,0x1d,0x01,0x52,0xff,0xe5,0x01,0x1d,0x01,0x54,0xff,0xe5,0x01,0x1d,0x01,0x56,0xff,0xe5,0x01,0x1d,0x01,0x6d,0xff,0xfc,0x01,0x1d,0x01,0x6f,0xff,0xe5,0x01,0x1d,0x01,0x71,0xff,0xe5,0x01,0x1d,0x01,0x75, -0x00,0x0e,0x01,0x1d,0x01,0x77,0x00,0x3b,0x01,0x1d,0x01,0x81,0x00,0x52,0x01,0x1d,0x01,0x83,0x00,0x52,0x01,0x1d,0x01,0x8a,0xff,0xe5,0x01,0x1d,0x01,0x8d,0x00,0x52,0x01,0x1d,0x01,0x8f,0x00,0x52,0x01,0x1d,0x01,0x91,0x00,0x52,0x01,0x1d,0x01,0x93,0x00,0x52,0x01,0x1d,0x02,0x3e,0x00,0x0e,0x01,0x1e,0x00,0x57,0xff,0xbe,0x01,0x1e, -0x00,0x59,0xff,0xcf,0x01,0x1e,0x00,0x5a,0xff,0xe5,0x01,0x1e,0x00,0x5c,0xff,0xd1,0x01,0x1e,0x00,0xba,0xff,0xbe,0x01,0x1e,0x00,0xc4,0xff,0xb2,0x01,0x1e,0x00,0xc5,0xff,0xb2,0x01,0x1e,0x00,0xeb,0xff,0xd1,0x01,0x1e,0x01,0x21,0xff,0xbe,0x01,0x1e,0x01,0x23,0xff,0xbe,0x01,0x1e,0x01,0x77,0xff,0xbe,0x01,0x1e,0x01,0x81,0xff,0xe5, -0x01,0x1e,0x01,0x83,0xff,0xd1,0x01,0x1e,0x01,0x8d,0xff,0xe5,0x01,0x1e,0x01,0x8f,0xff,0xe5,0x01,0x1e,0x01,0x91,0xff,0xe5,0x01,0x1e,0x01,0x93,0xff,0xd1,0x01,0x20,0x00,0x0f,0xff,0x7f,0x01,0x20,0x00,0x11,0xff,0x4c,0x01,0x20,0x00,0x1d,0xff,0xe9,0x01,0x20,0x00,0x1e,0xff,0xe9,0x01,0x20,0x00,0x24,0xff,0x66,0x01,0x20,0x00,0x26, -0xff,0xa4,0x01,0x20,0x00,0x2a,0xff,0xa4,0x01,0x20,0x00,0x2d,0xff,0x8f,0x01,0x20,0x00,0x32,0xff,0xa4,0x01,0x20,0x00,0x34,0xff,0xa4,0x01,0x20,0x00,0x37,0x00,0x27,0x01,0x20,0x00,0x39,0x00,0x2b,0x01,0x20,0x00,0x3a,0x00,0x27,0x01,0x20,0x00,0x3b,0xff,0xfa,0x01,0x20,0x00,0x3c,0x00,0x1d,0x01,0x20,0x00,0x44,0xff,0x27,0x01,0x20, -0x00,0x46,0xff,0x2d,0x01,0x20,0x00,0x47,0xff,0x2d,0x01,0x20,0x00,0x48,0xff,0x2d,0x01,0x20,0x00,0x49,0xff,0xa0,0x01,0x20,0x00,0x4a,0xff,0x2d,0x01,0x20,0x00,0x50,0xff,0x4e,0x01,0x20,0x00,0x51,0xff,0x4e,0x01,0x20,0x00,0x52,0xff,0x2d,0x01,0x20,0x00,0x53,0xff,0x4e,0x01,0x20,0x00,0x54,0xff,0x2d,0x01,0x20,0x00,0x55,0xff,0x4e, -0x01,0x20,0x00,0x56,0xff,0x66,0x01,0x20,0x00,0x58,0xff,0x4e,0x01,0x20,0x00,0x59,0xff,0x9a,0x01,0x20,0x00,0x5a,0xff,0x8f,0x01,0x20,0x00,0x5b,0xff,0x4c,0x01,0x20,0x00,0x5c,0xff,0x8f,0x01,0x20,0x00,0x5d,0xff,0x7f,0x01,0x20,0x00,0x62,0xff,0x66,0x01,0x20,0x00,0x63,0xff,0x66,0x01,0x20,0x00,0x64,0xff,0xa4,0x01,0x20,0x00,0x67, -0xff,0xa4,0x01,0x20,0x00,0x69,0xff,0x27,0x01,0x20,0x00,0x6a,0xff,0x27,0x01,0x20,0x00,0x6b,0xff,0x27,0x01,0x20,0x00,0x6c,0xff,0x27,0x01,0x20,0x00,0x6d,0xff,0x3f,0x01,0x20,0x00,0x6e,0xff,0x27,0x01,0x20,0x00,0x6f,0xff,0x1b,0x01,0x20,0x00,0x70,0xff,0x2d,0x01,0x20,0x00,0x71,0xff,0x2d,0x01,0x20,0x00,0x72,0xff,0x2d,0x01,0x20, -0x00,0x73,0xff,0x2d,0x01,0x20,0x00,0x74,0xff,0xe9,0x01,0x20,0x00,0x76,0x00,0x31,0x01,0x20,0x00,0x77,0x00,0x6f,0x01,0x20,0x00,0x78,0xff,0x4e,0x01,0x20,0x00,0x79,0xff,0x2d,0x01,0x20,0x00,0x7a,0xff,0x2d,0x01,0x20,0x00,0x7b,0xff,0x2d,0x01,0x20,0x00,0x7c,0xff,0x2d,0x01,0x20,0x00,0x7d,0xff,0x2d,0x01,0x20,0x00,0x7e,0xff,0x4e, -0x01,0x20,0x00,0x7f,0xff,0x4e,0x01,0x20,0x00,0x80,0xff,0x4e,0x01,0x20,0x00,0x81,0xff,0x4e,0x01,0x20,0x00,0x8d,0x00,0x52,0x01,0x20,0x00,0x91,0xff,0x0c,0x01,0x20,0x00,0x92,0xff,0xa4,0x01,0x20,0x00,0xa0,0xff,0x27,0x01,0x20,0x00,0xaa,0xff,0x9a,0x01,0x20,0x00,0xab,0xff,0xcf,0x01,0x20,0x00,0xac,0xff,0x4c,0x01,0x20,0x00,0xad, -0xff,0x66,0x01,0x20,0x00,0xae,0xff,0x66,0x01,0x20,0x00,0xaf,0xff,0xa4,0x01,0x20,0x00,0xb0,0xff,0xa4,0x01,0x20,0x00,0xb1,0xff,0x2d,0x01,0x20,0x00,0xb5,0x00,0x27,0x01,0x20,0x00,0xb7,0x00,0x27,0x01,0x20,0x00,0xba,0xff,0x8f,0x01,0x20,0x00,0xbe,0xff,0x9a,0x01,0x20,0x00,0xbf,0xff,0xcf,0x01,0x20,0x00,0xc4,0xff,0x17,0x01,0x20, -0x00,0xc5,0xff,0x17,0x01,0x20,0x00,0xc7,0xff,0x66,0x01,0x20,0x00,0xc9,0xff,0x66,0x01,0x20,0x00,0xd0,0xff,0xa4,0x01,0x20,0x00,0xd1,0xff,0xa4,0x01,0x20,0x00,0xd2,0xff,0xa4,0x01,0x20,0x00,0xe4,0xff,0x66,0x01,0x20,0x00,0xe6,0xff,0x7f,0x01,0x20,0x00,0xea,0x00,0x1d,0x01,0x20,0x00,0xeb,0xff,0x8f,0x01,0x20,0x00,0xf7,0xff,0xa4, -0x01,0x20,0x00,0xf8,0xff,0x2d,0x01,0x20,0x00,0xfb,0xff,0x66,0x01,0x20,0x00,0xfc,0xff,0xa4,0x01,0x20,0x00,0xfd,0xff,0x2d,0x01,0x20,0x00,0xfe,0xff,0xa4,0x01,0x20,0x00,0xff,0xff,0x2d,0x01,0x20,0x01,0x00,0xff,0x2d,0x01,0x20,0x01,0x03,0xff,0x66,0x01,0x20,0x01,0x04,0xff,0x27,0x01,0x20,0x01,0x05,0xff,0x66,0x01,0x20,0x01,0x06, -0xff,0x27,0x01,0x20,0x01,0x08,0xff,0x2d,0x01,0x20,0x01,0x0b,0xff,0x2d,0x01,0x20,0x01,0x0d,0xff,0x2d,0x01,0x20,0x01,0x15,0xff,0x4e,0x01,0x20,0x01,0x17,0xff,0x4e,0x01,0x20,0x01,0x18,0xff,0xa4,0x01,0x20,0x01,0x19,0xff,0x2d,0x01,0x20,0x01,0x1b,0xff,0x4e,0x01,0x20,0x01,0x1d,0xff,0x4e,0x01,0x20,0x01,0x1f,0xff,0x66,0x01,0x20, -0x01,0x20,0x00,0x27,0x01,0x20,0x01,0x22,0x00,0x27,0x01,0x20,0x01,0x25,0xff,0x4e,0x01,0x20,0x01,0x27,0xff,0x4e,0x01,0x20,0x01,0x29,0xff,0x7f,0x01,0x20,0x01,0x2b,0xff,0x7f,0x01,0x20,0x01,0x45,0xff,0x66,0x01,0x20,0x01,0x46,0xff,0x27,0x01,0x20,0x01,0x47,0xff,0xa4,0x01,0x20,0x01,0x48,0xff,0x2d,0x01,0x20,0x01,0x4c,0xff,0x2d, -0x01,0x20,0x01,0x4e,0xff,0x2d,0x01,0x20,0x01,0x50,0xff,0x2d,0x01,0x20,0x01,0x51,0xff,0xa4,0x01,0x20,0x01,0x52,0xff,0x2d,0x01,0x20,0x01,0x53,0xff,0xa4,0x01,0x20,0x01,0x54,0xff,0x2d,0x01,0x20,0x01,0x55,0xff,0xa4,0x01,0x20,0x01,0x56,0xff,0x2d,0x01,0x20,0x01,0x5c,0x00,0x6f,0x01,0x20,0x01,0x5e,0x00,0x6f,0x01,0x20,0x01,0x60, -0x00,0x6f,0x01,0x20,0x01,0x63,0xff,0x8f,0x01,0x20,0x01,0x6d,0xff,0x4e,0x01,0x20,0x01,0x6e,0xff,0xa4,0x01,0x20,0x01,0x6f,0xff,0x2d,0x01,0x20,0x01,0x70,0xff,0xa4,0x01,0x20,0x01,0x71,0xff,0x2d,0x01,0x20,0x01,0x73,0xff,0x4e,0x01,0x20,0x01,0x75,0xff,0x66,0x01,0x20,0x01,0x76,0x00,0x27,0x01,0x20,0x01,0x79,0xff,0x4e,0x01,0x20, -0x01,0x7b,0xff,0x4e,0x01,0x20,0x01,0x7d,0xff,0x4e,0x01,0x20,0x01,0x7f,0xff,0x4e,0x01,0x20,0x01,0x80,0x00,0x27,0x01,0x20,0x01,0x81,0xff,0x8f,0x01,0x20,0x01,0x82,0x00,0x1d,0x01,0x20,0x01,0x83,0xff,0x8f,0x01,0x20,0x01,0x85,0xff,0x66,0x01,0x20,0x01,0x86,0xff,0x27,0x01,0x20,0x01,0x87,0xff,0x66,0x01,0x20,0x01,0x88,0xff,0x27, -0x01,0x20,0x01,0x89,0xff,0xa4,0x01,0x20,0x01,0x8a,0xff,0x2d,0x01,0x20,0x01,0x8c,0x00,0x27,0x01,0x20,0x01,0x8d,0xff,0x8f,0x01,0x20,0x01,0x8e,0x00,0x27,0x01,0x20,0x01,0x8f,0xff,0x8f,0x01,0x20,0x01,0x90,0x00,0x27,0x01,0x20,0x01,0x91,0xff,0x8f,0x01,0x20,0x01,0x92,0x00,0x1d,0x01,0x20,0x01,0x93,0xff,0x8f,0x01,0x20,0x02,0x3e, -0xff,0x66,0x01,0x21,0x00,0x10,0xff,0x8f,0x01,0x21,0x00,0x22,0xff,0xcb,0x01,0x21,0x00,0x46,0xff,0xe5,0x01,0x21,0x00,0x47,0xff,0xe5,0x01,0x21,0x00,0x48,0xff,0xf0,0x01,0x21,0x00,0x4a,0xff,0xf0,0x01,0x21,0x00,0x52,0xff,0xf0,0x01,0x21,0x00,0x54,0xff,0xf0,0x01,0x21,0x00,0x5b,0x00,0x1d,0x01,0x21,0x00,0x6f,0xff,0xe5,0x01,0x21, -0x00,0x70,0xff,0xf0,0x01,0x21,0x00,0x71,0xff,0xf0,0x01,0x21,0x00,0x72,0xff,0xf0,0x01,0x21,0x00,0x73,0xff,0xf0,0x01,0x21,0x00,0x79,0xff,0xf0,0x01,0x21,0x00,0x7a,0xff,0xf0,0x01,0x21,0x00,0x7b,0xff,0xf0,0x01,0x21,0x00,0x7c,0xff,0xf0,0x01,0x21,0x00,0x7d,0xff,0xf0,0x01,0x21,0x00,0xab,0x00,0x27,0x01,0x21,0x00,0xb1,0xff,0xf0, -0x01,0x21,0x00,0xbf,0x00,0x27,0x01,0x21,0x00,0xf8,0xff,0xf0,0x01,0x21,0x00,0xfd,0xff,0xe5,0x01,0x21,0x00,0xff,0xff,0xe5,0x01,0x21,0x01,0x00,0xff,0xe5,0x01,0x21,0x01,0x08,0xff,0xe5,0x01,0x21,0x01,0x0b,0xff,0xf0,0x01,0x21,0x01,0x0d,0xff,0xf0,0x01,0x21,0x01,0x19,0xff,0xf0,0x01,0x21,0x01,0x48,0xff,0xe5,0x01,0x21,0x01,0x4c, -0xff,0xf0,0x01,0x21,0x01,0x4e,0xff,0xf0,0x01,0x21,0x01,0x50,0xff,0xf0,0x01,0x21,0x01,0x52,0xff,0xf0,0x01,0x21,0x01,0x54,0xff,0xf0,0x01,0x21,0x01,0x56,0xff,0xf0,0x01,0x21,0x01,0x6f,0xff,0xf0,0x01,0x21,0x01,0x71,0xff,0xf0,0x01,0x21,0x01,0x8a,0xff,0xf0,0x01,0x22,0x00,0x0f,0xff,0x7f,0x01,0x22,0x00,0x11,0xff,0x4c,0x01,0x22, -0x00,0x1d,0xff,0xe9,0x01,0x22,0x00,0x1e,0xff,0xe9,0x01,0x22,0x00,0x24,0xff,0x66,0x01,0x22,0x00,0x26,0xff,0xa4,0x01,0x22,0x00,0x2a,0xff,0xa4,0x01,0x22,0x00,0x2d,0xff,0x8f,0x01,0x22,0x00,0x32,0xff,0xa4,0x01,0x22,0x00,0x34,0xff,0xa4,0x01,0x22,0x00,0x37,0x00,0x27,0x01,0x22,0x00,0x39,0x00,0x2b,0x01,0x22,0x00,0x3a,0x00,0x27, -0x01,0x22,0x00,0x3b,0xff,0xfa,0x01,0x22,0x00,0x3c,0x00,0x1d,0x01,0x22,0x00,0x44,0xff,0x27,0x01,0x22,0x00,0x46,0xff,0x2d,0x01,0x22,0x00,0x47,0xff,0x2d,0x01,0x22,0x00,0x48,0xff,0x2d,0x01,0x22,0x00,0x49,0xff,0xa0,0x01,0x22,0x00,0x4a,0xff,0x2d,0x01,0x22,0x00,0x50,0xff,0x4e,0x01,0x22,0x00,0x51,0xff,0x4e,0x01,0x22,0x00,0x52, -0xff,0x2d,0x01,0x22,0x00,0x53,0xff,0x4e,0x01,0x22,0x00,0x54,0xff,0x2d,0x01,0x22,0x00,0x55,0xff,0x4e,0x01,0x22,0x00,0x56,0xff,0x66,0x01,0x22,0x00,0x58,0xff,0x4e,0x01,0x22,0x00,0x59,0xff,0x9a,0x01,0x22,0x00,0x5a,0xff,0x8f,0x01,0x22,0x00,0x5b,0xff,0x4c,0x01,0x22,0x00,0x5c,0xff,0x8f,0x01,0x22,0x00,0x5d,0xff,0x7f,0x01,0x22, -0x00,0x62,0xff,0x66,0x01,0x22,0x00,0x63,0xff,0x66,0x01,0x22,0x00,0x64,0xff,0xa4,0x01,0x22,0x00,0x67,0xff,0xa4,0x01,0x22,0x00,0x69,0xff,0x27,0x01,0x22,0x00,0x6a,0xff,0x27,0x01,0x22,0x00,0x6b,0xff,0x27,0x01,0x22,0x00,0x6c,0xff,0x27,0x01,0x22,0x00,0x6d,0xff,0x3f,0x01,0x22,0x00,0x6e,0xff,0x27,0x01,0x22,0x00,0x6f,0xff,0x1b, -0x01,0x22,0x00,0x70,0xff,0x2d,0x01,0x22,0x00,0x71,0xff,0x2d,0x01,0x22,0x00,0x72,0xff,0x2d,0x01,0x22,0x00,0x73,0xff,0x2d,0x01,0x22,0x00,0x74,0xff,0xe9,0x01,0x22,0x00,0x76,0x00,0x31,0x01,0x22,0x00,0x77,0x00,0x6f,0x01,0x22,0x00,0x78,0xff,0x4e,0x01,0x22,0x00,0x79,0xff,0x2d,0x01,0x22,0x00,0x7a,0xff,0x2d,0x01,0x22,0x00,0x7b, -0xff,0x2d,0x01,0x22,0x00,0x7c,0xff,0x2d,0x01,0x22,0x00,0x7d,0xff,0x2d,0x01,0x22,0x00,0x7e,0xff,0x4e,0x01,0x22,0x00,0x7f,0xff,0x4e,0x01,0x22,0x00,0x80,0xff,0x4e,0x01,0x22,0x00,0x81,0xff,0x4e,0x01,0x22,0x00,0x8d,0x00,0x52,0x01,0x22,0x00,0x91,0xff,0x0c,0x01,0x22,0x00,0x92,0xff,0xa4,0x01,0x22,0x00,0xa0,0xff,0x27,0x01,0x22, -0x00,0xaa,0xff,0x9a,0x01,0x22,0x00,0xab,0xff,0xcf,0x01,0x22,0x00,0xac,0xff,0x4c,0x01,0x22,0x00,0xad,0xff,0x66,0x01,0x22,0x00,0xae,0xff,0x66,0x01,0x22,0x00,0xaf,0xff,0xa4,0x01,0x22,0x00,0xb0,0xff,0xa4,0x01,0x22,0x00,0xb1,0xff,0x2d,0x01,0x22,0x00,0xb5,0x00,0x27,0x01,0x22,0x00,0xb7,0x00,0x27,0x01,0x22,0x00,0xba,0xff,0x8f, -0x01,0x22,0x00,0xbe,0xff,0x9a,0x01,0x22,0x00,0xbf,0xff,0xcf,0x01,0x22,0x00,0xc4,0xff,0x17,0x01,0x22,0x00,0xc5,0xff,0x17,0x01,0x22,0x00,0xc7,0xff,0x66,0x01,0x22,0x00,0xc9,0xff,0x66,0x01,0x22,0x00,0xd0,0xff,0xa4,0x01,0x22,0x00,0xd1,0xff,0xa4,0x01,0x22,0x00,0xd2,0xff,0xa4,0x01,0x22,0x00,0xe4,0xff,0x66,0x01,0x22,0x00,0xe6, -0xff,0x7f,0x01,0x22,0x00,0xea,0x00,0x1d,0x01,0x22,0x00,0xeb,0xff,0x8f,0x01,0x22,0x00,0xf7,0xff,0xa4,0x01,0x22,0x00,0xf8,0xff,0x2d,0x01,0x22,0x00,0xfb,0xff,0x66,0x01,0x22,0x00,0xfc,0xff,0xa4,0x01,0x22,0x00,0xfd,0xff,0x2d,0x01,0x22,0x00,0xfe,0xff,0xa4,0x01,0x22,0x00,0xff,0xff,0x2d,0x01,0x22,0x01,0x00,0xff,0x2d,0x01,0x22, -0x01,0x03,0xff,0x66,0x01,0x22,0x01,0x04,0xff,0x27,0x01,0x22,0x01,0x05,0xff,0x66,0x01,0x22,0x01,0x06,0xff,0x27,0x01,0x22,0x01,0x08,0xff,0x2d,0x01,0x22,0x01,0x0b,0xff,0x2d,0x01,0x22,0x01,0x0d,0xff,0x2d,0x01,0x22,0x01,0x15,0xff,0x4e,0x01,0x22,0x01,0x17,0xff,0x4e,0x01,0x22,0x01,0x18,0xff,0xa4,0x01,0x22,0x01,0x19,0xff,0x2d, -0x01,0x22,0x01,0x1b,0xff,0x4e,0x01,0x22,0x01,0x1d,0xff,0x4e,0x01,0x22,0x01,0x1f,0xff,0x66,0x01,0x22,0x01,0x20,0x00,0x27,0x01,0x22,0x01,0x22,0x00,0x27,0x01,0x22,0x01,0x25,0xff,0x4e,0x01,0x22,0x01,0x27,0xff,0x4e,0x01,0x22,0x01,0x29,0xff,0x7f,0x01,0x22,0x01,0x2b,0xff,0x7f,0x01,0x22,0x01,0x45,0xff,0x66,0x01,0x22,0x01,0x46, -0xff,0x27,0x01,0x22,0x01,0x47,0xff,0xa4,0x01,0x22,0x01,0x48,0xff,0x2d,0x01,0x22,0x01,0x4c,0xff,0x2d,0x01,0x22,0x01,0x4e,0xff,0x2d,0x01,0x22,0x01,0x50,0xff,0x2d,0x01,0x22,0x01,0x51,0xff,0xa4,0x01,0x22,0x01,0x52,0xff,0x2d,0x01,0x22,0x01,0x53,0xff,0xa4,0x01,0x22,0x01,0x54,0xff,0x2d,0x01,0x22,0x01,0x55,0xff,0xa4,0x01,0x22, -0x01,0x56,0xff,0x2d,0x01,0x22,0x01,0x5c,0x00,0x6f,0x01,0x22,0x01,0x5e,0x00,0x6f,0x01,0x22,0x01,0x60,0x00,0x6f,0x01,0x22,0x01,0x63,0xff,0x8f,0x01,0x22,0x01,0x6d,0xff,0x4e,0x01,0x22,0x01,0x6e,0xff,0xa4,0x01,0x22,0x01,0x6f,0xff,0x2d,0x01,0x22,0x01,0x70,0xff,0xa4,0x01,0x22,0x01,0x71,0xff,0x2d,0x01,0x22,0x01,0x73,0xff,0x4e, -0x01,0x22,0x01,0x75,0xff,0x66,0x01,0x22,0x01,0x76,0x00,0x27,0x01,0x22,0x01,0x79,0xff,0x4e,0x01,0x22,0x01,0x7b,0xff,0x4e,0x01,0x22,0x01,0x7d,0xff,0x4e,0x01,0x22,0x01,0x7f,0xff,0x4e,0x01,0x22,0x01,0x80,0x00,0x27,0x01,0x22,0x01,0x81,0xff,0x8f,0x01,0x22,0x01,0x82,0x00,0x1d,0x01,0x22,0x01,0x83,0xff,0x8f,0x01,0x22,0x01,0x85, -0xff,0x66,0x01,0x22,0x01,0x86,0xff,0x27,0x01,0x22,0x01,0x87,0xff,0x66,0x01,0x22,0x01,0x88,0xff,0x27,0x01,0x22,0x01,0x89,0xff,0xa4,0x01,0x22,0x01,0x8a,0xff,0x2d,0x01,0x22,0x01,0x8c,0x00,0x27,0x01,0x22,0x01,0x8d,0xff,0x8f,0x01,0x22,0x01,0x8e,0x00,0x27,0x01,0x22,0x01,0x8f,0xff,0x8f,0x01,0x22,0x01,0x90,0x00,0x27,0x01,0x22, -0x01,0x91,0xff,0x8f,0x01,0x22,0x01,0x92,0x00,0x1d,0x01,0x22,0x01,0x93,0xff,0x8f,0x01,0x22,0x02,0x3e,0xff,0x66,0x01,0x23,0x00,0x10,0xff,0x8f,0x01,0x23,0x00,0x22,0xff,0xcb,0x01,0x23,0x00,0x46,0xff,0xe5,0x01,0x23,0x00,0x47,0xff,0xe5,0x01,0x23,0x00,0x48,0xff,0xf0,0x01,0x23,0x00,0x4a,0xff,0xf0,0x01,0x23,0x00,0x52,0xff,0xf0, -0x01,0x23,0x00,0x54,0xff,0xf0,0x01,0x23,0x00,0x5b,0x00,0x1d,0x01,0x23,0x00,0x6f,0xff,0xe5,0x01,0x23,0x00,0x70,0xff,0xf0,0x01,0x23,0x00,0x71,0xff,0xf0,0x01,0x23,0x00,0x72,0xff,0xf0,0x01,0x23,0x00,0x73,0xff,0xf0,0x01,0x23,0x00,0x79,0xff,0xf0,0x01,0x23,0x00,0x7a,0xff,0xf0,0x01,0x23,0x00,0x7b,0xff,0xf0,0x01,0x23,0x00,0x7c, -0xff,0xf0,0x01,0x23,0x00,0x7d,0xff,0xf0,0x01,0x23,0x00,0xab,0x00,0x27,0x01,0x23,0x00,0xb1,0xff,0xf0,0x01,0x23,0x00,0xbf,0x00,0x27,0x01,0x23,0x00,0xf8,0xff,0xf0,0x01,0x23,0x00,0xfd,0xff,0xe5,0x01,0x23,0x00,0xff,0xff,0xe5,0x01,0x23,0x01,0x00,0xff,0xe5,0x01,0x23,0x01,0x08,0xff,0xe5,0x01,0x23,0x01,0x0b,0xff,0xf0,0x01,0x23, -0x01,0x0d,0xff,0xf0,0x01,0x23,0x01,0x19,0xff,0xf0,0x01,0x23,0x01,0x48,0xff,0xe5,0x01,0x23,0x01,0x4c,0xff,0xf0,0x01,0x23,0x01,0x4e,0xff,0xf0,0x01,0x23,0x01,0x50,0xff,0xf0,0x01,0x23,0x01,0x52,0xff,0xf0,0x01,0x23,0x01,0x54,0xff,0xf0,0x01,0x23,0x01,0x56,0xff,0xf0,0x01,0x23,0x01,0x6f,0xff,0xf0,0x01,0x23,0x01,0x71,0xff,0xf0, -0x01,0x23,0x01,0x8a,0xff,0xf0,0x01,0x24,0x00,0x24,0xff,0xd7,0x01,0x24,0x00,0x91,0xff,0x8b,0x01,0x24,0x00,0xc4,0xff,0xa6,0x01,0x24,0x00,0xc5,0xff,0xa6,0x01,0x24,0x01,0x03,0xff,0xd7,0x01,0x24,0x01,0x05,0xff,0xd7,0x01,0x24,0x01,0x45,0xff,0xd7,0x01,0x24,0x01,0x85,0xff,0xd7,0x01,0x24,0x01,0x87,0xff,0xd7,0x01,0x25,0x00,0x05, -0xff,0xbe,0x01,0x25,0x00,0x0a,0xff,0xbe,0x01,0x26,0x00,0x24,0xff,0xd7,0x01,0x26,0x00,0x91,0xff,0x8b,0x01,0x26,0x00,0xc4,0xff,0xa6,0x01,0x26,0x00,0xc5,0xff,0xa6,0x01,0x26,0x01,0x03,0xff,0xd7,0x01,0x26,0x01,0x05,0xff,0xd7,0x01,0x26,0x01,0x45,0xff,0xd7,0x01,0x26,0x01,0x85,0xff,0xd7,0x01,0x26,0x01,0x87,0xff,0xd7,0x01,0x27, -0x00,0x05,0xff,0xbe,0x01,0x27,0x00,0x0a,0xff,0xbe,0x01,0x28,0x00,0x2d,0x00,0x52,0x01,0x28,0x00,0x37,0x00,0x27,0x01,0x28,0x00,0x5c,0xff,0xcb,0x01,0x28,0x00,0x77,0x00,0x46,0x01,0x28,0x00,0xab,0x00,0x27,0x01,0x28,0x00,0xba,0xff,0xbe,0x01,0x28,0x00,0xbf,0x00,0x52,0x01,0x28,0x00,0xeb,0xff,0xcb,0x01,0x28,0x01,0x20,0x00,0x27, -0x01,0x28,0x01,0x22,0x00,0x27,0x01,0x28,0x01,0x5c,0x00,0x46,0x01,0x28,0x01,0x5e,0x00,0x46,0x01,0x28,0x01,0x60,0x00,0x46,0x01,0x28,0x01,0x63,0x00,0x52,0x01,0x28,0x01,0x76,0x00,0x27,0x01,0x28,0x01,0x83,0xff,0xcb,0x01,0x28,0x01,0x93,0xff,0xcb,0x01,0x2a,0x00,0x2d,0x00,0x52,0x01,0x2a,0x00,0x37,0x00,0x27,0x01,0x2a,0x00,0x5c, -0xff,0xcb,0x01,0x2a,0x00,0x77,0x00,0x46,0x01,0x2a,0x00,0xab,0x00,0x27,0x01,0x2a,0x00,0xba,0xff,0xbe,0x01,0x2a,0x00,0xbf,0x00,0x52,0x01,0x2a,0x00,0xeb,0xff,0xcb,0x01,0x2a,0x01,0x20,0x00,0x27,0x01,0x2a,0x01,0x22,0x00,0x27,0x01,0x2a,0x01,0x5c,0x00,0x46,0x01,0x2a,0x01,0x5e,0x00,0x46,0x01,0x2a,0x01,0x60,0x00,0x46,0x01,0x2a, -0x01,0x63,0x00,0x52,0x01,0x2a,0x01,0x76,0x00,0x27,0x01,0x2a,0x01,0x83,0xff,0xcb,0x01,0x2a,0x01,0x93,0xff,0xcb,0x01,0x2c,0x00,0x04,0x00,0x44,0x01,0x2c,0x00,0x0f,0xff,0x7d,0x01,0x2c,0x00,0x11,0xff,0x4c,0x01,0x2c,0x00,0x1d,0xff,0xe9,0x01,0x2c,0x00,0x1e,0xff,0xe9,0x01,0x2c,0x00,0x8d,0x00,0x52,0x01,0x2c,0x00,0xa9,0xff,0x6d, -0x01,0x2c,0x00,0xaa,0xff,0x98,0x01,0x2c,0x00,0xab,0xff,0xcd,0x01,0x2c,0x00,0xac,0xff,0x4c,0x01,0x2c,0x00,0xb5,0x00,0x29,0x01,0x2c,0x00,0xb7,0x00,0x29,0x01,0x2c,0x00,0xbe,0xff,0x98,0x01,0x2c,0x00,0xbf,0xff,0xcd,0x01,0x2c,0x00,0xc4,0xff,0x14,0x01,0x2c,0x00,0xc5,0xff,0x14,0x01,0x2c,0x01,0x2d,0xff,0xb6,0x01,0x2c,0x01,0x2e, -0xff,0xb6,0x01,0x2c,0x01,0x2f,0xff,0x2b,0x01,0x2c,0x01,0x30,0xff,0xb0,0x01,0x2c,0x01,0x31,0xff,0x2b,0x01,0x2c,0x01,0x32,0xff,0x2b,0x01,0x2c,0x01,0x33,0xff,0x8f,0x01,0x2c,0x01,0x34,0xff,0x2b,0x01,0x2c,0x01,0xa8,0x00,0x7b,0x01,0x2c,0x01,0xa9,0xff,0x6d,0x01,0x2c,0x01,0xac,0x00,0x0a,0x01,0x2c,0x01,0xb0,0xff,0x6d,0x01,0x2c, -0x01,0xb4,0xff,0xb6,0x01,0x2c,0x01,0xb8,0x00,0x2f,0x01,0x2c,0x01,0xb9,0x00,0x1d,0x01,0x2c,0x01,0xbc,0xff,0xcf,0x01,0x2c,0x01,0xbf,0xff,0x2b,0x01,0x2c,0x01,0xc0,0xff,0x2b,0x01,0x2c,0x01,0xc1,0xff,0x4e,0x01,0x2c,0x01,0xc2,0xff,0x8f,0x01,0x2c,0x01,0xc5,0xff,0xc1,0x01,0x2c,0x01,0xc7,0xff,0x4e,0x01,0x2c,0x01,0xc9,0xff,0x4e, -0x01,0x2c,0x01,0xca,0xff,0x4e,0x01,0x2c,0x01,0xcc,0xff,0x4e,0x01,0x2c,0x01,0xce,0xff,0xb0,0x01,0x2c,0x01,0xcf,0xff,0x2b,0x01,0x2c,0x01,0xd0,0xff,0x4e,0x01,0x2c,0x01,0xd1,0xff,0x2b,0x01,0x2c,0x01,0xd2,0xff,0x4e,0x01,0x2c,0x01,0xd3,0xff,0x7f,0x01,0x2c,0x01,0xd4,0xff,0x4e,0x01,0x2c,0x01,0xd5,0xff,0x2b,0x01,0x2c,0x01,0xd6, -0x00,0x52,0x01,0x2c,0x01,0xd7,0xff,0x4e,0x01,0x2c,0x01,0xd8,0xff,0x2b,0x01,0x2c,0x01,0xd9,0xff,0x4e,0x01,0x2c,0x01,0xda,0xff,0x2b,0x01,0x2c,0x02,0x37,0xff,0x8f,0x01,0x2d,0x00,0x0f,0xff,0xa2,0x01,0x2d,0x00,0xa9,0xff,0xcf,0x01,0x2d,0x00,0xc4,0xff,0x4a,0x01,0x2d,0x00,0xc5,0xff,0x96,0x01,0x2d,0x01,0xa9,0xff,0xe5,0x01,0x2d, -0x01,0xac,0xff,0xcd,0x01,0x2d,0x01,0xb0,0xff,0xe5,0x01,0x2d,0x01,0xb7,0xff,0xe3,0x01,0x2d,0x01,0xb8,0xff,0xa4,0x01,0x2d,0x01,0xb9,0xff,0xe7,0x01,0x2d,0x01,0xba,0xff,0xdb,0x01,0x2d,0x01,0xbe,0xff,0xe7,0x01,0x2d,0x01,0xcb,0xff,0xd7,0x01,0x2e,0x00,0x0f,0xff,0xa2,0x01,0x2e,0x00,0xa9,0xff,0xcf,0x01,0x2e,0x00,0xc4,0xff,0x4a, -0x01,0x2e,0x00,0xc5,0xff,0x96,0x01,0x2e,0x01,0xa9,0xff,0xcf,0x01,0x2e,0x01,0xac,0xff,0xcd,0x01,0x2e,0x01,0xb0,0xff,0xcf,0x01,0x2e,0x01,0xb7,0xff,0xe3,0x01,0x2e,0x01,0xb8,0xff,0xa4,0x01,0x2e,0x01,0xb9,0xff,0xe7,0x01,0x2e,0x01,0xba,0xff,0xd3,0x01,0x2e,0x01,0xbe,0xff,0xe7,0x01,0x2e,0x01,0xcb,0xff,0xc3,0x01,0x2f,0x01,0x2f, -0xff,0xee,0x01,0x2f,0x01,0x30,0xff,0xee,0x01,0x2f,0x01,0x32,0xff,0xee,0x01,0x2f,0x01,0x34,0xff,0xee,0x01,0x2f,0x01,0xbf,0xff,0xee,0x01,0x2f,0x01,0xcf,0xff,0xee,0x01,0x2f,0x01,0xd1,0xff,0xee,0x01,0x2f,0x01,0xd5,0xff,0xee,0x01,0x2f,0x01,0xd8,0xff,0xee,0x01,0x30,0x00,0x05,0xff,0x6f,0x01,0x30,0x00,0x0a,0xff,0x6f,0x01,0x30, -0x00,0xb4,0xff,0xb0,0x01,0x30,0x00,0xb5,0xff,0x7b,0x01,0x30,0x00,0xb6,0xff,0xbc,0x01,0x30,0x00,0xb7,0xff,0x7b,0x01,0x30,0x01,0x33,0xff,0xdb,0x01,0x30,0x01,0xc5,0xff,0xc1,0x01,0x30,0x01,0xd3,0xff,0xaa,0x01,0x30,0x02,0x37,0xff,0xdb,0x01,0x32,0x01,0x33,0x00,0x19,0x01,0x32,0x01,0xc5,0x00,0x31,0x01,0x32,0x01,0xcd,0x00,0x39, -0x01,0x32,0x01,0xd3,0x00,0x19,0x01,0x32,0x02,0x37,0x00,0x19,0x01,0x33,0x01,0x2f,0xff,0xdb,0x01,0x33,0x01,0x30,0xff,0xdb,0x01,0x33,0x01,0x32,0xff,0xdb,0x01,0x33,0x01,0x33,0x00,0x19,0x01,0x33,0x01,0x34,0xff,0xdb,0x01,0x33,0x01,0xbf,0xff,0xdb,0x01,0x33,0x01,0xc5,0x00,0x29,0x01,0x33,0x01,0xcd,0x00,0x25,0x01,0x33,0x01,0xcf, -0xff,0xdb,0x01,0x33,0x01,0xd0,0xff,0xcf,0x01,0x33,0x01,0xd3,0x00,0x19,0x01,0x33,0x01,0xd5,0xff,0xdb,0x01,0x33,0x01,0xd8,0xff,0xdb,0x01,0x33,0x01,0xda,0xff,0xdb,0x01,0x34,0x00,0x05,0xff,0x6f,0x01,0x34,0x00,0x0a,0xff,0x6f,0x01,0x34,0x00,0xb4,0xff,0xb0,0x01,0x34,0x00,0xb5,0xff,0x7b,0x01,0x34,0x00,0xb6,0xff,0xbc,0x01,0x34, -0x00,0xb7,0xff,0x7b,0x01,0x34,0x01,0x33,0xff,0xdb,0x01,0x34,0x01,0xc5,0xff,0xdb,0x01,0x34,0x01,0xd3,0xff,0xc3,0x01,0x34,0x02,0x37,0xff,0xdb,0x01,0x3a,0x00,0x4d,0x00,0x23,0x01,0x3a,0x01,0x64,0x00,0x23,0x01,0x3b,0x00,0x05,0xff,0x98,0x01,0x3b,0x00,0x0a,0xff,0x98,0x01,0x45,0x00,0x0d,0xff,0x7f,0x01,0x45,0x00,0x0f,0x00,0x44, -0x01,0x45,0x00,0x1e,0x00,0x44,0x01,0x45,0x00,0x26,0xff,0xe5,0x01,0x45,0x00,0x2a,0xff,0xe5,0x01,0x45,0x00,0x2d,0x00,0x5e,0x01,0x45,0x00,0x32,0xff,0xe5,0x01,0x45,0x00,0x37,0xff,0x6d,0x01,0x45,0x00,0x38,0xff,0xe5,0x01,0x45,0x00,0x39,0xff,0x8b,0x01,0x45,0x00,0x3a,0xff,0xb6,0x01,0x45,0x00,0x3c,0xff,0x64,0x01,0x45,0x00,0x3d, -0x00,0x3b,0x01,0x45,0x00,0x57,0xff,0xe5,0x01,0x45,0x00,0x59,0xff,0xd5,0x01,0x45,0x00,0x5a,0xff,0xe5,0x01,0x45,0x00,0x5c,0xff,0xdb,0x01,0x45,0x00,0x8d,0xff,0x9a,0x01,0x45,0x00,0xb4,0xff,0x66,0x01,0x45,0x00,0xb5,0xff,0x3f,0x01,0x45,0x00,0xb6,0xff,0x66,0x01,0x45,0x00,0xb7,0xff,0x3f,0x01,0x45,0x00,0xba,0xff,0xc1,0x01,0x45, -0x00,0xbb,0xff,0x64,0x01,0x45,0x00,0xe5,0x00,0x3b,0x01,0x45,0x00,0xea,0xff,0x64,0x01,0x45,0x00,0xeb,0xff,0xdb,0x01,0x45,0x00,0xf7,0xff,0xe5,0x01,0x45,0x00,0xfc,0xff,0xe5,0x01,0x45,0x00,0xfe,0xff,0xe5,0x01,0x45,0x01,0x18,0xff,0xe5,0x01,0x45,0x01,0x20,0xff,0x6d,0x01,0x45,0x01,0x21,0xff,0xe5,0x01,0x45,0x01,0x22,0xff,0x6d, -0x01,0x45,0x01,0x23,0xff,0xe5,0x01,0x45,0x01,0x24,0xff,0xe5,0x01,0x45,0x01,0x26,0xff,0xe5,0x01,0x45,0x01,0x28,0x00,0x3b,0x01,0x45,0x01,0x2a,0x00,0x3b,0x01,0x45,0x01,0x47,0xff,0xe5,0x01,0x45,0x01,0x51,0xff,0xe5,0x01,0x45,0x01,0x53,0xff,0xe5,0x01,0x45,0x01,0x55,0xff,0xe5,0x01,0x45,0x01,0x63,0x00,0x5e,0x01,0x45,0x01,0x6e, -0xff,0xe5,0x01,0x45,0x01,0x70,0xff,0xe5,0x01,0x45,0x01,0x76,0xff,0x6d,0x01,0x45,0x01,0x77,0xff,0xe5,0x01,0x45,0x01,0x78,0xff,0xe5,0x01,0x45,0x01,0x7a,0xff,0xe5,0x01,0x45,0x01,0x7c,0xff,0xe5,0x01,0x45,0x01,0x7e,0xff,0xe5,0x01,0x45,0x01,0x80,0xff,0xb6,0x01,0x45,0x01,0x81,0xff,0xe5,0x01,0x45,0x01,0x82,0xff,0x64,0x01,0x45, -0x01,0x83,0xff,0xdb,0x01,0x45,0x01,0x89,0xff,0xe5,0x01,0x45,0x01,0x8c,0xff,0xb6,0x01,0x45,0x01,0x8d,0xff,0xe5,0x01,0x45,0x01,0x8e,0xff,0xb6,0x01,0x45,0x01,0x8f,0xff,0xe5,0x01,0x45,0x01,0x90,0xff,0xb6,0x01,0x45,0x01,0x91,0xff,0xe5,0x01,0x45,0x01,0x92,0xff,0x64,0x01,0x45,0x01,0x93,0xff,0xdb,0x01,0x47,0x00,0x26,0xff,0xc9, -0x01,0x47,0x00,0x2a,0xff,0xc9,0x01,0x47,0x00,0x32,0xff,0xe5,0x01,0x47,0x00,0x34,0xff,0xc9,0x01,0x47,0x00,0x64,0xff,0xc9,0x01,0x47,0x00,0x67,0xff,0xc9,0x01,0x47,0x00,0x77,0x00,0x1d,0x01,0x47,0x00,0x92,0xff,0xc9,0x01,0x47,0x00,0xaa,0xff,0xcf,0x01,0x47,0x00,0xaf,0xff,0xc9,0x01,0x47,0x00,0xb0,0xff,0xc9,0x01,0x47,0x00,0xbe, -0xff,0xcf,0x01,0x47,0x00,0xd0,0xff,0xc9,0x01,0x47,0x00,0xd1,0xff,0xc9,0x01,0x47,0x00,0xd2,0xff,0xc9,0x01,0x47,0x00,0xf7,0xff,0xc9,0x01,0x47,0x00,0xfc,0xff,0xc9,0x01,0x47,0x00,0xfe,0xff,0xc9,0x01,0x47,0x01,0x18,0xff,0xe5,0x01,0x47,0x01,0x47,0xff,0xc9,0x01,0x47,0x01,0x51,0xff,0xc9,0x01,0x47,0x01,0x53,0xff,0xc9,0x01,0x47, -0x01,0x55,0xff,0xc9,0x01,0x47,0x01,0x5c,0x00,0x1d,0x01,0x47,0x01,0x5e,0x00,0x1d,0x01,0x47,0x01,0x60,0x00,0x1d,0x01,0x47,0x01,0x6e,0xff,0xe5,0x01,0x47,0x01,0x70,0xff,0xe5,0x01,0x47,0x01,0x89,0xff,0xe5,0x01,0x48,0x00,0x2d,0x00,0x46,0x01,0x48,0x00,0x37,0xff,0x9a,0x01,0x48,0x00,0x3c,0xff,0xb4,0x01,0x48,0x00,0xea,0xff,0xb4, -0x01,0x48,0x01,0x20,0xff,0x9a,0x01,0x48,0x01,0x22,0xff,0x9a,0x01,0x48,0x01,0x63,0x00,0x46,0x01,0x48,0x01,0x76,0xff,0x9a,0x01,0x48,0x01,0x82,0xff,0xb4,0x01,0x48,0x01,0x92,0xff,0xb4,0x01,0x4b,0x00,0x24,0x00,0x0a,0x01,0x4b,0x00,0x2d,0x00,0x44,0x01,0x4b,0x00,0x37,0x00,0x04,0x01,0x4b,0x00,0x3a,0x00,0x1d,0x01,0x4b,0x00,0x3b, -0x00,0x08,0x01,0x4b,0x00,0x62,0x00,0x0a,0x01,0x4b,0x00,0x63,0x00,0x0a,0x01,0x4b,0x00,0x77,0x00,0x12,0x01,0x4b,0x00,0xad,0x00,0x0a,0x01,0x4b,0x00,0xae,0x00,0x0a,0x01,0x4b,0x00,0xc7,0x00,0x0a,0x01,0x4b,0x00,0xc9,0x00,0x0a,0x01,0x4b,0x01,0x03,0x00,0x0a,0x01,0x4b,0x01,0x05,0x00,0x0a,0x01,0x4b,0x01,0x20,0x00,0x04,0x01,0x4b, -0x01,0x22,0x00,0x04,0x01,0x4b,0x01,0x45,0x00,0x0a,0x01,0x4b,0x01,0x5c,0x00,0x12,0x01,0x4b,0x01,0x5e,0x00,0x12,0x01,0x4b,0x01,0x60,0x00,0x12,0x01,0x4b,0x01,0x63,0x00,0x44,0x01,0x4b,0x01,0x76,0x00,0x04,0x01,0x4b,0x01,0x80,0x00,0x1d,0x01,0x4b,0x01,0x85,0x00,0x0a,0x01,0x4b,0x01,0x87,0x00,0x0a,0x01,0x4b,0x01,0x8c,0x00,0x1d, -0x01,0x4b,0x01,0x8e,0x00,0x1d,0x01,0x4b,0x01,0x90,0x00,0x1d,0x01,0x4c,0x00,0x05,0xff,0x98,0x01,0x4c,0x00,0x0a,0xff,0x98,0x01,0x4d,0x00,0x24,0x00,0x0a,0x01,0x4d,0x00,0x2d,0x00,0x44,0x01,0x4d,0x00,0x37,0x00,0x04,0x01,0x4d,0x00,0x3a,0x00,0x1d,0x01,0x4d,0x00,0x3b,0x00,0x08,0x01,0x4d,0x00,0x62,0x00,0x0a,0x01,0x4d,0x00,0x63, -0x00,0x0a,0x01,0x4d,0x00,0x77,0x00,0x12,0x01,0x4d,0x00,0xad,0x00,0x0a,0x01,0x4d,0x00,0xae,0x00,0x0a,0x01,0x4d,0x00,0xc7,0x00,0x0a,0x01,0x4d,0x00,0xc9,0x00,0x0a,0x01,0x4d,0x01,0x03,0x00,0x0a,0x01,0x4d,0x01,0x05,0x00,0x0a,0x01,0x4d,0x01,0x20,0x00,0x04,0x01,0x4d,0x01,0x22,0x00,0x04,0x01,0x4d,0x01,0x45,0x00,0x0a,0x01,0x4d, -0x01,0x5c,0x00,0x12,0x01,0x4d,0x01,0x5e,0x00,0x12,0x01,0x4d,0x01,0x60,0x00,0x12,0x01,0x4d,0x01,0x63,0x00,0x44,0x01,0x4d,0x01,0x76,0x00,0x04,0x01,0x4d,0x01,0x80,0x00,0x1d,0x01,0x4d,0x01,0x85,0x00,0x0a,0x01,0x4d,0x01,0x87,0x00,0x0a,0x01,0x4d,0x01,0x8c,0x00,0x1d,0x01,0x4d,0x01,0x8e,0x00,0x1d,0x01,0x4d,0x01,0x90,0x00,0x1d, -0x01,0x4e,0x00,0x05,0xff,0x98,0x01,0x4e,0x00,0x0a,0xff,0x98,0x01,0x4f,0x00,0x24,0x00,0x0a,0x01,0x4f,0x00,0x2d,0x00,0x44,0x01,0x4f,0x00,0x37,0x00,0x04,0x01,0x4f,0x00,0x3a,0x00,0x1d,0x01,0x4f,0x00,0x3b,0x00,0x08,0x01,0x4f,0x00,0x62,0x00,0x0a,0x01,0x4f,0x00,0x63,0x00,0x0a,0x01,0x4f,0x00,0x77,0x00,0x12,0x01,0x4f,0x00,0xad, -0x00,0x0a,0x01,0x4f,0x00,0xae,0x00,0x0a,0x01,0x4f,0x00,0xc7,0x00,0x0a,0x01,0x4f,0x00,0xc9,0x00,0x0a,0x01,0x4f,0x01,0x03,0x00,0x0a,0x01,0x4f,0x01,0x05,0x00,0x0a,0x01,0x4f,0x01,0x20,0x00,0x04,0x01,0x4f,0x01,0x22,0x00,0x04,0x01,0x4f,0x01,0x45,0x00,0x0a,0x01,0x4f,0x01,0x5c,0x00,0x12,0x01,0x4f,0x01,0x5e,0x00,0x12,0x01,0x4f, -0x01,0x60,0x00,0x12,0x01,0x4f,0x01,0x63,0x00,0x44,0x01,0x4f,0x01,0x76,0x00,0x04,0x01,0x4f,0x01,0x80,0x00,0x1d,0x01,0x4f,0x01,0x85,0x00,0x0a,0x01,0x4f,0x01,0x87,0x00,0x0a,0x01,0x4f,0x01,0x8c,0x00,0x1d,0x01,0x4f,0x01,0x8e,0x00,0x1d,0x01,0x4f,0x01,0x90,0x00,0x1d,0x01,0x50,0x00,0x05,0xff,0x98,0x01,0x50,0x00,0x0a,0xff,0x98, -0x01,0x51,0x00,0x37,0xff,0xcf,0x01,0x51,0x00,0x39,0xff,0xe5,0x01,0x51,0x00,0x5c,0xff,0xe5,0x01,0x51,0x00,0xba,0xff,0xe5,0x01,0x51,0x00,0xeb,0xff,0xe5,0x01,0x51,0x01,0x20,0xff,0xcf,0x01,0x51,0x01,0x22,0xff,0xcf,0x01,0x51,0x01,0x76,0xff,0xcf,0x01,0x51,0x01,0x83,0xff,0xe5,0x01,0x51,0x01,0x93,0xff,0xe5,0x01,0x52,0x00,0x4d, -0x00,0x2f,0x01,0x52,0x01,0x64,0x00,0x2f,0x01,0x53,0x00,0x37,0xff,0xcf,0x01,0x53,0x00,0x39,0xff,0xe5,0x01,0x53,0x00,0x5c,0xff,0xe5,0x01,0x53,0x00,0xba,0xff,0xe5,0x01,0x53,0x00,0xeb,0xff,0xe5,0x01,0x53,0x01,0x20,0xff,0xcf,0x01,0x53,0x01,0x22,0xff,0xcf,0x01,0x53,0x01,0x76,0xff,0xcf,0x01,0x53,0x01,0x83,0xff,0xe5,0x01,0x53, -0x01,0x93,0xff,0xe5,0x01,0x54,0x00,0x4d,0x00,0x2f,0x01,0x54,0x01,0x64,0x00,0x2f,0x01,0x55,0x00,0x37,0xff,0xcf,0x01,0x55,0x00,0x39,0xff,0xe5,0x01,0x55,0x00,0x5c,0xff,0xe5,0x01,0x55,0x00,0xba,0xff,0xe5,0x01,0x55,0x00,0xeb,0xff,0xe5,0x01,0x55,0x01,0x20,0xff,0xcf,0x01,0x55,0x01,0x22,0xff,0xcf,0x01,0x55,0x01,0x76,0xff,0xcf, -0x01,0x55,0x01,0x83,0xff,0xe5,0x01,0x55,0x01,0x93,0xff,0xe5,0x01,0x56,0x00,0x4d,0x00,0x2f,0x01,0x56,0x01,0x64,0x00,0x2f,0x01,0x63,0x00,0x0f,0xff,0x9a,0x01,0x63,0x00,0x11,0xff,0x9a,0x01,0x63,0x00,0x24,0xff,0xdb,0x01,0x63,0x00,0x2d,0xff,0xbe,0x01,0x63,0x00,0x44,0xff,0xe5,0x01,0x63,0x00,0x62,0xff,0xdb,0x01,0x63,0x00,0x63, -0xff,0xdb,0x01,0x63,0x00,0x69,0xff,0xe5,0x01,0x63,0x00,0x6a,0xff,0xe5,0x01,0x63,0x00,0x6b,0xff,0xe5,0x01,0x63,0x00,0x6c,0xff,0xe5,0x01,0x63,0x00,0x6d,0xff,0xe5,0x01,0x63,0x00,0x6e,0xff,0xe5,0x01,0x63,0x00,0x91,0xff,0x98,0x01,0x63,0x00,0xa0,0xff,0xe5,0x01,0x63,0x00,0xac,0xff,0x9a,0x01,0x63,0x00,0xad,0xff,0xdb,0x01,0x63, -0x00,0xae,0xff,0xdb,0x01,0x63,0x00,0xc4,0xff,0x66,0x01,0x63,0x00,0xc5,0xff,0x9a,0x01,0x63,0x00,0xc7,0xff,0xdb,0x01,0x63,0x00,0xc9,0xff,0xdb,0x01,0x63,0x01,0x03,0xff,0xdb,0x01,0x63,0x01,0x04,0xff,0xe5,0x01,0x63,0x01,0x05,0xff,0xdb,0x01,0x63,0x01,0x06,0xff,0xe5,0x01,0x63,0x01,0x45,0xff,0xdb,0x01,0x63,0x01,0x46,0xff,0xe5, -0x01,0x63,0x01,0x63,0xff,0xbe,0x01,0x63,0x01,0x85,0xff,0xdb,0x01,0x63,0x01,0x86,0xff,0xe5,0x01,0x63,0x01,0x87,0xff,0xdb,0x01,0x63,0x01,0x88,0xff,0xe5,0x01,0x64,0x00,0x4d,0x00,0x23,0x01,0x64,0x01,0x64,0x00,0x23,0x01,0x65,0x00,0x0f,0x00,0x27,0x01,0x65,0x00,0x1e,0x00,0x27,0x01,0x65,0x00,0x26,0xff,0xa6,0x01,0x65,0x00,0x2a, -0xff,0xa6,0x01,0x65,0x00,0x2d,0x00,0x5a,0x01,0x65,0x00,0x32,0xff,0xa6,0x01,0x65,0x00,0x34,0xff,0xa6,0x01,0x65,0x00,0x3b,0x00,0x25,0x01,0x65,0x00,0x3d,0x00,0x27,0x01,0x65,0x00,0x46,0xff,0xe5,0x01,0x65,0x00,0x47,0xff,0xe5,0x01,0x65,0x00,0x48,0xff,0xe5,0x01,0x65,0x00,0x4a,0xff,0xe5,0x01,0x65,0x00,0x52,0xff,0xe5,0x01,0x65, -0x00,0x54,0xff,0xe5,0x01,0x65,0x00,0x57,0xff,0xd1,0x01,0x65,0x00,0x59,0xff,0xb6,0x01,0x65,0x00,0x5a,0xff,0xcb,0x01,0x65,0x00,0x5c,0xff,0xa4,0x01,0x65,0x00,0x64,0xff,0x9a,0x01,0x65,0x00,0x67,0xff,0xa6,0x01,0x65,0x00,0x6f,0xff,0xe5,0x01,0x65,0x00,0x70,0xff,0xe5,0x01,0x65,0x00,0x71,0xff,0xe5,0x01,0x65,0x00,0x72,0xff,0xe5, -0x01,0x65,0x00,0x73,0xff,0xe5,0x01,0x65,0x00,0x74,0xff,0xcf,0x01,0x65,0x00,0x77,0x00,0x27,0x01,0x65,0x00,0x79,0xff,0xe5,0x01,0x65,0x00,0x7a,0xff,0xe5,0x01,0x65,0x00,0x7b,0xff,0xe5,0x01,0x65,0x00,0x7c,0xff,0xe5,0x01,0x65,0x00,0x7d,0xff,0xe5,0x01,0x65,0x00,0x92,0xff,0xa6,0x01,0x65,0x00,0xaf,0xff,0xa6,0x01,0x65,0x00,0xb0, -0xff,0xa6,0x01,0x65,0x00,0xb1,0xff,0xe5,0x01,0x65,0x00,0xba,0xff,0xa4,0x01,0x65,0x00,0xc4,0x00,0x44,0x01,0x65,0x00,0xc5,0x00,0x44,0x01,0x65,0x00,0xd0,0xff,0xa6,0x01,0x65,0x00,0xd1,0xff,0xa6,0x01,0x65,0x00,0xd2,0xff,0xa6,0x01,0x65,0x00,0xe5,0x00,0x27,0x01,0x65,0x00,0xeb,0xff,0xa4,0x01,0x65,0x00,0xf7,0xff,0xa6,0x01,0x65, -0x00,0xf8,0xff,0xe5,0x01,0x65,0x00,0xfc,0xff,0xa6,0x01,0x65,0x00,0xfd,0xff,0xe5,0x01,0x65,0x00,0xfe,0xff,0xa6,0x01,0x65,0x00,0xff,0xff,0xe5,0x01,0x65,0x01,0x00,0xff,0xe5,0x01,0x65,0x01,0x08,0xff,0xe5,0x01,0x65,0x01,0x0b,0xff,0xe5,0x01,0x65,0x01,0x0d,0xff,0xe5,0x01,0x65,0x01,0x18,0xff,0xa6,0x01,0x65,0x01,0x19,0xff,0xe5, -0x01,0x65,0x01,0x21,0xff,0xd1,0x01,0x65,0x01,0x23,0xff,0xd1,0x01,0x65,0x01,0x28,0x00,0x27,0x01,0x65,0x01,0x2a,0x00,0x27,0x01,0x65,0x01,0x47,0xff,0xa6,0x01,0x65,0x01,0x48,0xff,0xe5,0x01,0x65,0x01,0x4c,0xff,0xe5,0x01,0x65,0x01,0x4e,0xff,0xe5,0x01,0x65,0x01,0x50,0xff,0xe5,0x01,0x65,0x01,0x51,0xff,0xa6,0x01,0x65,0x01,0x52, -0xff,0xe5,0x01,0x65,0x01,0x53,0xff,0xa6,0x01,0x65,0x01,0x54,0xff,0xe5,0x01,0x65,0x01,0x55,0xff,0xa6,0x01,0x65,0x01,0x56,0xff,0xe5,0x01,0x65,0x01,0x5c,0x00,0x27,0x01,0x65,0x01,0x5e,0x00,0x27,0x01,0x65,0x01,0x60,0x00,0x27,0x01,0x65,0x01,0x63,0x00,0x5a,0x01,0x65,0x01,0x6e,0xff,0xa6,0x01,0x65,0x01,0x6f,0xff,0xe5,0x01,0x65, -0x01,0x70,0xff,0xa6,0x01,0x65,0x01,0x71,0xff,0xe5,0x01,0x65,0x01,0x77,0xff,0xd1,0x01,0x65,0x01,0x81,0xff,0xcb,0x01,0x65,0x01,0x83,0xff,0xa4,0x01,0x65,0x01,0x89,0xff,0xa6,0x01,0x65,0x01,0x8a,0xff,0xe5,0x01,0x65,0x01,0x8d,0xff,0xcb,0x01,0x65,0x01,0x8f,0xff,0xcb,0x01,0x65,0x01,0x91,0xff,0xcb,0x01,0x65,0x01,0x93,0xff,0xa4, -0x01,0x66,0x00,0x0f,0x00,0x52,0x01,0x66,0x00,0x10,0xff,0x75,0x01,0x66,0x00,0x11,0x00,0x52,0x01,0x66,0x00,0x1d,0x00,0x52,0x01,0x66,0x00,0x1e,0x00,0x52,0x01,0x66,0x00,0x46,0xff,0xd7,0x01,0x66,0x00,0x47,0xff,0xe5,0x01,0x66,0x00,0x48,0xff,0xd7,0x01,0x66,0x00,0x4a,0xff,0xd7,0x01,0x66,0x00,0x52,0xff,0xd7,0x01,0x66,0x00,0x54, -0xff,0xe5,0x01,0x66,0x00,0x57,0xff,0xf0,0x01,0x66,0x00,0x6f,0xff,0xe5,0x01,0x66,0x00,0x70,0xff,0xd7,0x01,0x66,0x00,0x71,0xff,0xd7,0x01,0x66,0x00,0x72,0xff,0xd7,0x01,0x66,0x00,0x73,0xff,0xd7,0x01,0x66,0x00,0x79,0xff,0xd7,0x01,0x66,0x00,0x7a,0xff,0xd7,0x01,0x66,0x00,0x7b,0xff,0xd7,0x01,0x66,0x00,0x7c,0xff,0xd7,0x01,0x66, -0x00,0x7d,0xff,0xd7,0x01,0x66,0x00,0xac,0x00,0x52,0x01,0x66,0x00,0xb1,0xff,0xd7,0x01,0x66,0x00,0xf8,0xff,0xd7,0x01,0x66,0x00,0xfd,0xff,0xd7,0x01,0x66,0x00,0xff,0xff,0xd7,0x01,0x66,0x01,0x00,0xff,0xe5,0x01,0x66,0x01,0x08,0xff,0xe5,0x01,0x66,0x01,0x0b,0xff,0xd7,0x01,0x66,0x01,0x0d,0xff,0xd7,0x01,0x66,0x01,0x19,0xff,0xd7, -0x01,0x66,0x01,0x21,0xff,0xf0,0x01,0x66,0x01,0x23,0xff,0xf0,0x01,0x66,0x01,0x48,0xff,0xd7,0x01,0x66,0x01,0x4c,0xff,0xd7,0x01,0x66,0x01,0x4e,0xff,0xd7,0x01,0x66,0x01,0x50,0xff,0xd7,0x01,0x66,0x01,0x52,0xff,0xd7,0x01,0x66,0x01,0x54,0xff,0xd7,0x01,0x66,0x01,0x56,0xff,0xd7,0x01,0x66,0x01,0x6f,0xff,0xd7,0x01,0x66,0x01,0x71, -0xff,0xd7,0x01,0x66,0x01,0x77,0xff,0xf0,0x01,0x66,0x01,0x8a,0xff,0xd7,0x01,0x67,0x00,0x0f,0x00,0x52,0x01,0x67,0x00,0x10,0xff,0x75,0x01,0x67,0x00,0x11,0x00,0x52,0x01,0x67,0x00,0x1d,0x00,0x52,0x01,0x67,0x00,0x1e,0x00,0x52,0x01,0x67,0x00,0x46,0xff,0xd7,0x01,0x67,0x00,0x47,0xff,0xe5,0x01,0x67,0x00,0x48,0xff,0xd7,0x01,0x67, -0x00,0x4a,0xff,0xd7,0x01,0x67,0x00,0x52,0xff,0xd7,0x01,0x67,0x00,0x54,0xff,0xe5,0x01,0x67,0x00,0x57,0xff,0xf0,0x01,0x67,0x00,0x6f,0xff,0xe5,0x01,0x67,0x00,0x70,0xff,0xd7,0x01,0x67,0x00,0x71,0xff,0xd7,0x01,0x67,0x00,0x72,0xff,0xd7,0x01,0x67,0x00,0x73,0xff,0xd7,0x01,0x67,0x00,0x79,0xff,0xd7,0x01,0x67,0x00,0x7a,0xff,0xd7, -0x01,0x67,0x00,0x7b,0xff,0xd7,0x01,0x67,0x00,0x7c,0xff,0xd7,0x01,0x67,0x00,0x7d,0xff,0xd7,0x01,0x67,0x00,0xac,0x00,0x52,0x01,0x67,0x00,0xb1,0xff,0xd7,0x01,0x67,0x00,0xf8,0xff,0xd7,0x01,0x67,0x00,0xfd,0xff,0xd7,0x01,0x67,0x00,0xff,0xff,0xd7,0x01,0x67,0x01,0x00,0xff,0xe5,0x01,0x67,0x01,0x08,0xff,0xe5,0x01,0x67,0x01,0x0b, -0xff,0xd7,0x01,0x67,0x01,0x0d,0xff,0xd7,0x01,0x67,0x01,0x19,0xff,0xd7,0x01,0x67,0x01,0x21,0xff,0xf0,0x01,0x67,0x01,0x23,0xff,0xf0,0x01,0x67,0x01,0x48,0xff,0xd7,0x01,0x67,0x01,0x4c,0xff,0xd7,0x01,0x67,0x01,0x4e,0xff,0xd7,0x01,0x67,0x01,0x50,0xff,0xd7,0x01,0x67,0x01,0x52,0xff,0xd7,0x01,0x67,0x01,0x54,0xff,0xd7,0x01,0x67, -0x01,0x56,0xff,0xd7,0x01,0x67,0x01,0x6f,0xff,0xd7,0x01,0x67,0x01,0x71,0xff,0xd7,0x01,0x67,0x01,0x77,0xff,0xf0,0x01,0x67,0x01,0x8a,0xff,0xd7,0x01,0x68,0x00,0x0d,0xff,0x31,0x01,0x68,0x00,0x22,0xff,0x9a,0x01,0x68,0x00,0x24,0x00,0x3b,0x01,0x68,0x00,0x26,0xff,0xbe,0x01,0x68,0x00,0x2a,0xff,0xbe,0x01,0x68,0x00,0x2d,0x00,0x64, -0x01,0x68,0x00,0x32,0xff,0xba,0x01,0x68,0x00,0x34,0xff,0xba,0x01,0x68,0x00,0x37,0xff,0x8f,0x01,0x68,0x00,0x38,0xff,0xe3,0x01,0x68,0x00,0x39,0xff,0x8b,0x01,0x68,0x00,0x3a,0xff,0xcf,0x01,0x68,0x00,0x3c,0xff,0x7f,0x01,0x68,0x00,0x3d,0x00,0x3b,0x01,0x68,0x00,0x57,0xff,0xe5,0x01,0x68,0x00,0x59,0xff,0x9a,0x01,0x68,0x00,0x5a, -0xff,0xbe,0x01,0x68,0x00,0x5c,0xff,0xb4,0x01,0x68,0x00,0x64,0xff,0xbe,0x01,0x68,0x00,0x67,0xff,0xba,0x01,0x68,0x00,0x68,0xff,0xe3,0x01,0x68,0x00,0x8d,0xff,0x9a,0x01,0x68,0x00,0x92,0xff,0xba,0x01,0x68,0x00,0xaf,0xff,0xba,0x01,0x68,0x00,0xb0,0xff,0xba,0x01,0x68,0x00,0xb4,0xff,0x73,0x01,0x68,0x00,0xb5,0xff,0x8b,0x01,0x68, -0x00,0xb6,0xff,0x73,0x01,0x68,0x00,0xb7,0xff,0x7f,0x01,0x68,0x00,0xba,0xff,0xb4,0x01,0x68,0x00,0xbb,0xff,0x9a,0x01,0x68,0x00,0xc4,0x00,0x44,0x01,0x68,0x00,0xc5,0x00,0x44,0x01,0x68,0x00,0xd0,0xff,0xba,0x01,0x68,0x00,0xd1,0xff,0xba,0x01,0x68,0x00,0xd2,0xff,0xba,0x01,0x68,0x00,0xd3,0xff,0xe3,0x01,0x68,0x00,0xd4,0xff,0xe3, -0x01,0x68,0x00,0xd5,0xff,0xe3,0x01,0x68,0x00,0xe5,0x00,0x3b,0x01,0x68,0x00,0xea,0xff,0x7f,0x01,0x68,0x00,0xeb,0xff,0xb4,0x01,0x68,0x00,0xf7,0xff,0xbe,0x01,0x68,0x00,0xfc,0xff,0xbe,0x01,0x68,0x00,0xfe,0xff,0xbe,0x01,0x68,0x01,0x03,0x00,0x3b,0x01,0x68,0x01,0x05,0x00,0x3b,0x01,0x68,0x01,0x18,0xff,0xba,0x01,0x68,0x01,0x20, -0xff,0x8f,0x01,0x68,0x01,0x21,0xff,0xe5,0x01,0x68,0x01,0x22,0xff,0x8f,0x01,0x68,0x01,0x23,0xff,0xe5,0x01,0x68,0x01,0x24,0xff,0xe3,0x01,0x68,0x01,0x26,0xff,0xe3,0x01,0x68,0x01,0x28,0x00,0x3b,0x01,0x68,0x01,0x2a,0x00,0x3b,0x01,0x68,0x01,0x45,0x00,0x3b,0x01,0x68,0x01,0x47,0xff,0xbe,0x01,0x68,0x01,0x51,0xff,0xbe,0x01,0x68, -0x01,0x53,0xff,0xbe,0x01,0x68,0x01,0x55,0xff,0xbe,0x01,0x68,0x01,0x63,0x00,0x64,0x01,0x68,0x01,0x6e,0xff,0xba,0x01,0x68,0x01,0x70,0xff,0xba,0x01,0x68,0x01,0x76,0xff,0x8f,0x01,0x68,0x01,0x77,0xff,0xe5,0x01,0x68,0x01,0x78,0xff,0xe3,0x01,0x68,0x01,0x7a,0xff,0xe3,0x01,0x68,0x01,0x7c,0xff,0xe3,0x01,0x68,0x01,0x7e,0xff,0xe3, -0x01,0x68,0x01,0x80,0xff,0xcf,0x01,0x68,0x01,0x81,0xff,0xbe,0x01,0x68,0x01,0x82,0xff,0x7f,0x01,0x68,0x01,0x83,0xff,0xb4,0x01,0x68,0x01,0x85,0x00,0x3b,0x01,0x68,0x01,0x87,0x00,0x3b,0x01,0x68,0x01,0x89,0xff,0xba,0x01,0x68,0x01,0x8c,0xff,0xcf,0x01,0x68,0x01,0x8d,0xff,0xbe,0x01,0x68,0x01,0x8e,0xff,0xcf,0x01,0x68,0x01,0x8f, -0xff,0xbe,0x01,0x68,0x01,0x90,0xff,0xcf,0x01,0x68,0x01,0x91,0xff,0xbe,0x01,0x68,0x01,0x92,0xff,0x7f,0x01,0x68,0x01,0x93,0xff,0xb4,0x01,0x6c,0x00,0x0f,0xff,0x9a,0x01,0x6c,0x00,0x11,0xff,0x9a,0x01,0x6c,0x00,0x24,0xff,0xdb,0x01,0x6c,0x00,0x2d,0xff,0xbe,0x01,0x6c,0x00,0x44,0xff,0xe5,0x01,0x6c,0x00,0x62,0xff,0xdb,0x01,0x6c, -0x00,0x63,0xff,0xdb,0x01,0x6c,0x00,0x69,0xff,0xe5,0x01,0x6c,0x00,0x6a,0xff,0xe5,0x01,0x6c,0x00,0x6b,0xff,0xe5,0x01,0x6c,0x00,0x6c,0xff,0xe5,0x01,0x6c,0x00,0x6d,0xff,0xe5,0x01,0x6c,0x00,0x6e,0xff,0xe5,0x01,0x6c,0x00,0x91,0xff,0x98,0x01,0x6c,0x00,0xa0,0xff,0xe5,0x01,0x6c,0x00,0xac,0xff,0x9a,0x01,0x6c,0x00,0xad,0xff,0xdb, -0x01,0x6c,0x00,0xae,0xff,0xdb,0x01,0x6c,0x00,0xc4,0xff,0x66,0x01,0x6c,0x00,0xc5,0xff,0x9a,0x01,0x6c,0x00,0xc7,0xff,0xdb,0x01,0x6c,0x00,0xc9,0xff,0xdb,0x01,0x6c,0x01,0x03,0xff,0xdb,0x01,0x6c,0x01,0x04,0xff,0xe5,0x01,0x6c,0x01,0x05,0xff,0xdb,0x01,0x6c,0x01,0x06,0xff,0xe5,0x01,0x6c,0x01,0x45,0xff,0xdb,0x01,0x6c,0x01,0x46, -0xff,0xe5,0x01,0x6c,0x01,0x63,0xff,0xbe,0x01,0x6c,0x01,0x85,0xff,0xdb,0x01,0x6c,0x01,0x86,0xff,0xe5,0x01,0x6c,0x01,0x87,0xff,0xdb,0x01,0x6c,0x01,0x88,0xff,0xe5,0x01,0x6d,0x00,0x4d,0x00,0x23,0x01,0x6d,0x01,0x64,0x00,0x23,0x01,0x6e,0x00,0x0f,0xff,0xa4,0x01,0x6e,0x00,0x11,0xff,0xa4,0x01,0x6e,0x00,0x24,0xff,0xe5,0x01,0x6e, -0x00,0x2d,0xff,0xf6,0x01,0x6e,0x00,0x37,0xff,0xa4,0x01,0x6e,0x00,0x3b,0xff,0xdb,0x01,0x6e,0x00,0x3c,0xff,0xe7,0x01,0x6e,0x00,0x3d,0xff,0xcf,0x01,0x6e,0x00,0x62,0xff,0xe5,0x01,0x6e,0x00,0x63,0xff,0xe5,0x01,0x6e,0x00,0xac,0xff,0xa4,0x01,0x6e,0x00,0xad,0xff,0xe5,0x01,0x6e,0x00,0xae,0xff,0xe5,0x01,0x6e,0x00,0xbb,0xff,0xf6, -0x01,0x6e,0x00,0xc4,0xff,0x4c,0x01,0x6e,0x00,0xc5,0xff,0x98,0x01,0x6e,0x00,0xc7,0xff,0xe5,0x01,0x6e,0x00,0xc9,0xff,0xe5,0x01,0x6e,0x00,0xe5,0xff,0xcf,0x01,0x6e,0x00,0xea,0xff,0xe7,0x01,0x6e,0x01,0x03,0xff,0xe5,0x01,0x6e,0x01,0x05,0xff,0xe5,0x01,0x6e,0x01,0x20,0xff,0xa4,0x01,0x6e,0x01,0x22,0xff,0xa4,0x01,0x6e,0x01,0x28, -0xff,0xcf,0x01,0x6e,0x01,0x2a,0xff,0xcf,0x01,0x6e,0x01,0x45,0xff,0xe5,0x01,0x6e,0x01,0x63,0xff,0xf6,0x01,0x6e,0x01,0x76,0xff,0xa4,0x01,0x6e,0x01,0x82,0xff,0xe7,0x01,0x6e,0x01,0x85,0xff,0xe5,0x01,0x6e,0x01,0x87,0xff,0xe5,0x01,0x6e,0x01,0x92,0xff,0xe7,0x01,0x6f,0x00,0x05,0xff,0x6f,0x01,0x6f,0x00,0x0a,0xff,0x6f,0x01,0x6f, -0x00,0x44,0xff,0xe5,0x01,0x6f,0x00,0x49,0xff,0xdb,0x01,0x6f,0x00,0x5b,0xff,0xe7,0x01,0x6f,0x00,0x69,0xff,0xe5,0x01,0x6f,0x00,0x6a,0xff,0xe5,0x01,0x6f,0x00,0x6b,0xff,0xe5,0x01,0x6f,0x00,0x6c,0xff,0xe5,0x01,0x6f,0x00,0x6d,0xff,0xe5,0x01,0x6f,0x00,0x6e,0xff,0xe5,0x01,0x6f,0x00,0xa0,0xff,0xe5,0x01,0x6f,0x00,0xb4,0xff,0xb2, -0x01,0x6f,0x00,0xb5,0xff,0x7d,0x01,0x6f,0x00,0xb6,0xff,0xbe,0x01,0x6f,0x00,0xb7,0xff,0x7d,0x01,0x6f,0x00,0xc0,0xff,0xe7,0x01,0x6f,0x00,0xc1,0xff,0xe7,0x01,0x6f,0x01,0x04,0xff,0xe5,0x01,0x6f,0x01,0x06,0xff,0xe5,0x01,0x6f,0x01,0x46,0xff,0xe5,0x01,0x6f,0x01,0x86,0xff,0xe5,0x01,0x6f,0x01,0x88,0xff,0xe5,0x01,0x70,0x00,0x0f, -0xff,0xa4,0x01,0x70,0x00,0x11,0xff,0xa4,0x01,0x70,0x00,0x24,0xff,0xe5,0x01,0x70,0x00,0x2d,0xff,0xf6,0x01,0x70,0x00,0x37,0xff,0xa4,0x01,0x70,0x00,0x3b,0xff,0xdb,0x01,0x70,0x00,0x3c,0xff,0xe7,0x01,0x70,0x00,0x3d,0xff,0xcf,0x01,0x70,0x00,0x62,0xff,0xe5,0x01,0x70,0x00,0x63,0xff,0xe5,0x01,0x70,0x00,0xac,0xff,0xa4,0x01,0x70, -0x00,0xad,0xff,0xe5,0x01,0x70,0x00,0xae,0xff,0xe5,0x01,0x70,0x00,0xbb,0xff,0xf6,0x01,0x70,0x00,0xc4,0xff,0x4c,0x01,0x70,0x00,0xc5,0xff,0x98,0x01,0x70,0x00,0xc7,0xff,0xe5,0x01,0x70,0x00,0xc9,0xff,0xe5,0x01,0x70,0x00,0xe5,0xff,0xcf,0x01,0x70,0x00,0xea,0xff,0xe7,0x01,0x70,0x01,0x03,0xff,0xe5,0x01,0x70,0x01,0x05,0xff,0xe5, -0x01,0x70,0x01,0x20,0xff,0xa4,0x01,0x70,0x01,0x22,0xff,0xa4,0x01,0x70,0x01,0x28,0xff,0xcf,0x01,0x70,0x01,0x2a,0xff,0xcf,0x01,0x70,0x01,0x45,0xff,0xe5,0x01,0x70,0x01,0x63,0xff,0xf6,0x01,0x70,0x01,0x76,0xff,0xa4,0x01,0x70,0x01,0x82,0xff,0xe7,0x01,0x70,0x01,0x85,0xff,0xe5,0x01,0x70,0x01,0x87,0xff,0xe5,0x01,0x70,0x01,0x92, -0xff,0xe7,0x01,0x71,0x00,0x05,0xff,0x6f,0x01,0x71,0x00,0x0a,0xff,0x6f,0x01,0x71,0x00,0x44,0xff,0xe5,0x01,0x71,0x00,0x49,0xff,0xdb,0x01,0x71,0x00,0x5b,0xff,0xe7,0x01,0x71,0x00,0x69,0xff,0xe5,0x01,0x71,0x00,0x6a,0xff,0xe5,0x01,0x71,0x00,0x6b,0xff,0xe5,0x01,0x71,0x00,0x6c,0xff,0xe5,0x01,0x71,0x00,0x6d,0xff,0xe5,0x01,0x71, -0x00,0x6e,0xff,0xe5,0x01,0x71,0x00,0xa0,0xff,0xe5,0x01,0x71,0x00,0xb4,0xff,0xb2,0x01,0x71,0x00,0xb5,0xff,0x7d,0x01,0x71,0x00,0xb6,0xff,0xbe,0x01,0x71,0x00,0xb7,0xff,0x7d,0x01,0x71,0x00,0xc0,0xff,0xe7,0x01,0x71,0x00,0xc1,0xff,0xe7,0x01,0x71,0x01,0x04,0xff,0xe5,0x01,0x71,0x01,0x06,0xff,0xe5,0x01,0x71,0x01,0x46,0xff,0xe5, -0x01,0x71,0x01,0x86,0xff,0xe5,0x01,0x71,0x01,0x88,0xff,0xe5,0x01,0x72,0x00,0x1e,0x00,0x52,0x01,0x72,0x00,0x26,0xff,0xe3,0x01,0x72,0x00,0x2a,0xff,0xe3,0x01,0x72,0x00,0x2d,0x00,0x39,0x01,0x72,0x00,0x32,0xff,0xec,0x01,0x72,0x00,0x34,0xff,0xec,0x01,0x72,0x00,0x37,0xff,0xcb,0x01,0x72,0x00,0x3c,0xff,0xd9,0x01,0x72,0x00,0x46, -0xff,0xcb,0x01,0x72,0x00,0x47,0xff,0xcb,0x01,0x72,0x00,0x48,0xff,0xc7,0x01,0x72,0x00,0x4a,0xff,0xc7,0x01,0x72,0x00,0x52,0xff,0xc5,0x01,0x72,0x00,0x54,0xff,0xcb,0x01,0x72,0x00,0x64,0xff,0xe5,0x01,0x72,0x00,0x67,0xff,0xec,0x01,0x72,0x00,0x6f,0xff,0xbe,0x01,0x72,0x00,0x70,0xff,0xbe,0x01,0x72,0x00,0x71,0xff,0xbe,0x01,0x72, -0x00,0x72,0xff,0xbe,0x01,0x72,0x00,0x73,0xff,0xbe,0x01,0x72,0x00,0x79,0xff,0xc5,0x01,0x72,0x00,0x7a,0xff,0xc5,0x01,0x72,0x00,0x7b,0xff,0xc5,0x01,0x72,0x00,0x7c,0xff,0xc5,0x01,0x72,0x00,0x7d,0xff,0xc5,0x01,0x72,0x00,0x92,0xff,0xec,0x01,0x72,0x00,0xaf,0xff,0xec,0x01,0x72,0x00,0xb0,0xff,0xec,0x01,0x72,0x00,0xb1,0xff,0xc5, -0x01,0x72,0x00,0xbb,0xff,0xe5,0x01,0x72,0x00,0xd0,0xff,0xec,0x01,0x72,0x00,0xd1,0xff,0xec,0x01,0x72,0x00,0xd2,0xff,0xec,0x01,0x72,0x00,0xea,0xff,0xd9,0x01,0x72,0x00,0xf7,0xff,0xe3,0x01,0x72,0x00,0xf8,0xff,0xc7,0x01,0x72,0x00,0xfc,0xff,0xe3,0x01,0x72,0x00,0xfd,0xff,0xcb,0x01,0x72,0x00,0xfe,0xff,0xe3,0x01,0x72,0x00,0xff, -0xff,0xcb,0x01,0x72,0x01,0x00,0xff,0xcb,0x01,0x72,0x01,0x08,0xff,0xcb,0x01,0x72,0x01,0x0b,0xff,0xc7,0x01,0x72,0x01,0x0d,0xff,0xbe,0x01,0x72,0x01,0x18,0xff,0xec,0x01,0x72,0x01,0x19,0xff,0xc5,0x01,0x72,0x01,0x20,0xff,0xcb,0x01,0x72,0x01,0x22,0xff,0xcb,0x01,0x72,0x01,0x47,0xff,0xe3,0x01,0x72,0x01,0x48,0xff,0xcb,0x01,0x72, -0x01,0x4c,0xff,0xbe,0x01,0x72,0x01,0x4e,0xff,0xbe,0x01,0x72,0x01,0x50,0xff,0xbe,0x01,0x72,0x01,0x51,0xff,0xe3,0x01,0x72,0x01,0x52,0xff,0xc7,0x01,0x72,0x01,0x53,0xff,0xe3,0x01,0x72,0x01,0x54,0xff,0xc7,0x01,0x72,0x01,0x55,0xff,0xe3,0x01,0x72,0x01,0x56,0xff,0xc7,0x01,0x72,0x01,0x63,0x00,0x39,0x01,0x72,0x01,0x6e,0xff,0xec, -0x01,0x72,0x01,0x6f,0xff,0xc5,0x01,0x72,0x01,0x70,0xff,0xec,0x01,0x72,0x01,0x71,0xff,0xc5,0x01,0x72,0x01,0x76,0xff,0xcb,0x01,0x72,0x01,0x82,0xff,0xd9,0x01,0x72,0x01,0x89,0xff,0xec,0x01,0x72,0x01,0x8a,0xff,0xc5,0x01,0x72,0x01,0x92,0xff,0xd9,0x01,0x73,0x00,0x0f,0xff,0x62,0x01,0x73,0x00,0x10,0xff,0x7f,0x01,0x73,0x00,0x11, -0xff,0x56,0x01,0x73,0x00,0x1d,0x00,0x52,0x01,0x73,0x00,0x1e,0x00,0x52,0x01,0x73,0x00,0x46,0xff,0xe5,0x01,0x73,0x00,0x47,0xff,0xe5,0x01,0x73,0x00,0x48,0xff,0xe5,0x01,0x73,0x00,0x49,0x00,0x27,0x01,0x73,0x00,0x4a,0xff,0xe5,0x01,0x73,0x00,0x50,0xff,0xfc,0x01,0x73,0x00,0x51,0xff,0xfc,0x01,0x73,0x00,0x52,0xff,0xe5,0x01,0x73, -0x00,0x54,0xff,0xe5,0x01,0x73,0x00,0x56,0x00,0x0e,0x01,0x73,0x00,0x57,0x00,0x3b,0x01,0x73,0x00,0x59,0x00,0x52,0x01,0x73,0x00,0x5a,0x00,0x52,0x01,0x73,0x00,0x5b,0x00,0x3b,0x01,0x73,0x00,0x5c,0x00,0x52,0x01,0x73,0x00,0x5d,0x00,0x27,0x01,0x73,0x00,0x6f,0xff,0xe5,0x01,0x73,0x00,0x70,0xff,0xe5,0x01,0x73,0x00,0x71,0xff,0xe5, -0x01,0x73,0x00,0x72,0xff,0xe5,0x01,0x73,0x00,0x73,0xff,0xe5,0x01,0x73,0x00,0x79,0xff,0xe5,0x01,0x73,0x00,0x7a,0xff,0xe5,0x01,0x73,0x00,0x7b,0xff,0xe5,0x01,0x73,0x00,0x7c,0xff,0xe5,0x01,0x73,0x00,0x7d,0xff,0xe5,0x01,0x73,0x00,0xac,0xff,0x56,0x01,0x73,0x00,0xb1,0xff,0xe5,0x01,0x73,0x00,0xb4,0x00,0xa4,0x01,0x73,0x00,0xb5, -0x00,0x79,0x01,0x73,0x00,0xb6,0x00,0xa4,0x01,0x73,0x00,0xb7,0x00,0x79,0x01,0x73,0x00,0xc4,0xff,0x62,0x01,0x73,0x00,0xc5,0xff,0x62,0x01,0x73,0x00,0xe4,0x00,0x0e,0x01,0x73,0x00,0xe6,0x00,0x27,0x01,0x73,0x00,0xeb,0x00,0x52,0x01,0x73,0x00,0xf8,0xff,0xe5,0x01,0x73,0x00,0xfb,0x00,0x0e,0x01,0x73,0x00,0xfd,0xff,0xe5,0x01,0x73, -0x00,0xff,0xff,0xe5,0x01,0x73,0x01,0x00,0xff,0xe5,0x01,0x73,0x01,0x08,0xff,0xe5,0x01,0x73,0x01,0x0b,0xff,0xe5,0x01,0x73,0x01,0x0d,0xff,0xe5,0x01,0x73,0x01,0x19,0xff,0xe5,0x01,0x73,0x01,0x1f,0x00,0x0e,0x01,0x73,0x01,0x21,0x00,0x3b,0x01,0x73,0x01,0x23,0x00,0x3b,0x01,0x73,0x01,0x29,0x00,0x27,0x01,0x73,0x01,0x2b,0x00,0x27, -0x01,0x73,0x01,0x48,0xff,0xe5,0x01,0x73,0x01,0x4c,0xff,0xe5,0x01,0x73,0x01,0x4e,0xff,0xe5,0x01,0x73,0x01,0x50,0xff,0xe5,0x01,0x73,0x01,0x52,0xff,0xe5,0x01,0x73,0x01,0x54,0xff,0xe5,0x01,0x73,0x01,0x56,0xff,0xe5,0x01,0x73,0x01,0x6d,0xff,0xfc,0x01,0x73,0x01,0x6f,0xff,0xe5,0x01,0x73,0x01,0x71,0xff,0xe5,0x01,0x73,0x01,0x75, -0x00,0x0e,0x01,0x73,0x01,0x77,0x00,0x3b,0x01,0x73,0x01,0x81,0x00,0x52,0x01,0x73,0x01,0x83,0x00,0x52,0x01,0x73,0x01,0x8a,0xff,0xe5,0x01,0x73,0x01,0x8d,0x00,0x52,0x01,0x73,0x01,0x8f,0x00,0x52,0x01,0x73,0x01,0x91,0x00,0x52,0x01,0x73,0x01,0x93,0x00,0x52,0x01,0x73,0x02,0x3e,0x00,0x0e,0x01,0x74,0x00,0x57,0xff,0xbe,0x01,0x74, -0x00,0x59,0xff,0xcf,0x01,0x74,0x00,0x5a,0xff,0xe5,0x01,0x74,0x00,0x5c,0xff,0xd1,0x01,0x74,0x00,0xba,0xff,0xbe,0x01,0x74,0x00,0xc4,0xff,0xb2,0x01,0x74,0x00,0xc5,0xff,0xb2,0x01,0x74,0x00,0xeb,0xff,0xd1,0x01,0x74,0x01,0x21,0xff,0xbe,0x01,0x74,0x01,0x23,0xff,0xbe,0x01,0x74,0x01,0x77,0xff,0xbe,0x01,0x74,0x01,0x81,0xff,0xe5, -0x01,0x74,0x01,0x83,0xff,0xd1,0x01,0x74,0x01,0x8d,0xff,0xe5,0x01,0x74,0x01,0x8f,0xff,0xe5,0x01,0x74,0x01,0x91,0xff,0xe5,0x01,0x74,0x01,0x93,0xff,0xd1,0x01,0x76,0x00,0x0f,0xff,0x7f,0x01,0x76,0x00,0x11,0xff,0x4c,0x01,0x76,0x00,0x1d,0xff,0xe9,0x01,0x76,0x00,0x1e,0xff,0xe9,0x01,0x76,0x00,0x24,0xff,0x66,0x01,0x76,0x00,0x26, -0xff,0xa4,0x01,0x76,0x00,0x2a,0xff,0xa4,0x01,0x76,0x00,0x2d,0xff,0x8f,0x01,0x76,0x00,0x32,0xff,0xa4,0x01,0x76,0x00,0x34,0xff,0xa4,0x01,0x76,0x00,0x37,0x00,0x27,0x01,0x76,0x00,0x39,0x00,0x2b,0x01,0x76,0x00,0x3a,0x00,0x27,0x01,0x76,0x00,0x3b,0xff,0xfa,0x01,0x76,0x00,0x3c,0x00,0x1d,0x01,0x76,0x00,0x44,0xff,0x27,0x01,0x76, -0x00,0x46,0xff,0x2d,0x01,0x76,0x00,0x47,0xff,0x2d,0x01,0x76,0x00,0x48,0xff,0x2d,0x01,0x76,0x00,0x49,0xff,0xa0,0x01,0x76,0x00,0x4a,0xff,0x2d,0x01,0x76,0x00,0x50,0xff,0x4e,0x01,0x76,0x00,0x51,0xff,0x4e,0x01,0x76,0x00,0x52,0xff,0x2d,0x01,0x76,0x00,0x53,0xff,0x4e,0x01,0x76,0x00,0x54,0xff,0x2d,0x01,0x76,0x00,0x55,0xff,0x4e, -0x01,0x76,0x00,0x56,0xff,0x66,0x01,0x76,0x00,0x58,0xff,0x4e,0x01,0x76,0x00,0x59,0xff,0x9a,0x01,0x76,0x00,0x5a,0xff,0x8f,0x01,0x76,0x00,0x5b,0xff,0x4c,0x01,0x76,0x00,0x5c,0xff,0x8f,0x01,0x76,0x00,0x5d,0xff,0x7f,0x01,0x76,0x00,0x62,0xff,0x66,0x01,0x76,0x00,0x63,0xff,0x66,0x01,0x76,0x00,0x64,0xff,0xa4,0x01,0x76,0x00,0x67, -0xff,0xa4,0x01,0x76,0x00,0x69,0xff,0x27,0x01,0x76,0x00,0x6a,0xff,0x27,0x01,0x76,0x00,0x6b,0xff,0x27,0x01,0x76,0x00,0x6c,0xff,0x27,0x01,0x76,0x00,0x6d,0xff,0x3f,0x01,0x76,0x00,0x6e,0xff,0x27,0x01,0x76,0x00,0x6f,0xff,0x1b,0x01,0x76,0x00,0x70,0xff,0x2d,0x01,0x76,0x00,0x71,0xff,0x2d,0x01,0x76,0x00,0x72,0xff,0x2d,0x01,0x76, -0x00,0x73,0xff,0x2d,0x01,0x76,0x00,0x74,0xff,0xe9,0x01,0x76,0x00,0x76,0x00,0x31,0x01,0x76,0x00,0x77,0x00,0x6f,0x01,0x76,0x00,0x78,0xff,0x4e,0x01,0x76,0x00,0x79,0xff,0x2d,0x01,0x76,0x00,0x7a,0xff,0x2d,0x01,0x76,0x00,0x7b,0xff,0x2d,0x01,0x76,0x00,0x7c,0xff,0x2d,0x01,0x76,0x00,0x7d,0xff,0x2d,0x01,0x76,0x00,0x7e,0xff,0x4e, -0x01,0x76,0x00,0x7f,0xff,0x4e,0x01,0x76,0x00,0x80,0xff,0x4e,0x01,0x76,0x00,0x81,0xff,0x4e,0x01,0x76,0x00,0x8d,0x00,0x52,0x01,0x76,0x00,0x91,0xff,0x0c,0x01,0x76,0x00,0x92,0xff,0xa4,0x01,0x76,0x00,0xa0,0xff,0x27,0x01,0x76,0x00,0xaa,0xff,0x9a,0x01,0x76,0x00,0xab,0xff,0xcf,0x01,0x76,0x00,0xac,0xff,0x4c,0x01,0x76,0x00,0xad, -0xff,0x66,0x01,0x76,0x00,0xae,0xff,0x66,0x01,0x76,0x00,0xaf,0xff,0xa4,0x01,0x76,0x00,0xb0,0xff,0xa4,0x01,0x76,0x00,0xb1,0xff,0x2d,0x01,0x76,0x00,0xb5,0x00,0x27,0x01,0x76,0x00,0xb7,0x00,0x27,0x01,0x76,0x00,0xba,0xff,0x8f,0x01,0x76,0x00,0xbe,0xff,0x9a,0x01,0x76,0x00,0xbf,0xff,0xcf,0x01,0x76,0x00,0xc4,0xff,0x17,0x01,0x76, -0x00,0xc5,0xff,0x17,0x01,0x76,0x00,0xc7,0xff,0x66,0x01,0x76,0x00,0xc9,0xff,0x66,0x01,0x76,0x00,0xd0,0xff,0xa4,0x01,0x76,0x00,0xd1,0xff,0xa4,0x01,0x76,0x00,0xd2,0xff,0xa4,0x01,0x76,0x00,0xe4,0xff,0x66,0x01,0x76,0x00,0xe6,0xff,0x7f,0x01,0x76,0x00,0xea,0x00,0x1d,0x01,0x76,0x00,0xeb,0xff,0x8f,0x01,0x76,0x00,0xf7,0xff,0xa4, -0x01,0x76,0x00,0xf8,0xff,0x2d,0x01,0x76,0x00,0xfb,0xff,0x66,0x01,0x76,0x00,0xfc,0xff,0xa4,0x01,0x76,0x00,0xfd,0xff,0x2d,0x01,0x76,0x00,0xfe,0xff,0xa4,0x01,0x76,0x00,0xff,0xff,0x2d,0x01,0x76,0x01,0x00,0xff,0x2d,0x01,0x76,0x01,0x03,0xff,0x66,0x01,0x76,0x01,0x04,0xff,0x27,0x01,0x76,0x01,0x05,0xff,0x66,0x01,0x76,0x01,0x06, -0xff,0x27,0x01,0x76,0x01,0x08,0xff,0x2d,0x01,0x76,0x01,0x0b,0xff,0x2d,0x01,0x76,0x01,0x0d,0xff,0x2d,0x01,0x76,0x01,0x15,0xff,0x4e,0x01,0x76,0x01,0x17,0xff,0x4e,0x01,0x76,0x01,0x18,0xff,0xa4,0x01,0x76,0x01,0x19,0xff,0x2d,0x01,0x76,0x01,0x1b,0xff,0x4e,0x01,0x76,0x01,0x1d,0xff,0x4e,0x01,0x76,0x01,0x1f,0xff,0x66,0x01,0x76, -0x01,0x20,0x00,0x27,0x01,0x76,0x01,0x22,0x00,0x27,0x01,0x76,0x01,0x25,0xff,0x4e,0x01,0x76,0x01,0x27,0xff,0x4e,0x01,0x76,0x01,0x29,0xff,0x7f,0x01,0x76,0x01,0x2b,0xff,0x7f,0x01,0x76,0x01,0x45,0xff,0x66,0x01,0x76,0x01,0x46,0xff,0x27,0x01,0x76,0x01,0x47,0xff,0xa4,0x01,0x76,0x01,0x48,0xff,0x2d,0x01,0x76,0x01,0x4c,0xff,0x2d, -0x01,0x76,0x01,0x4e,0xff,0x2d,0x01,0x76,0x01,0x50,0xff,0x2d,0x01,0x76,0x01,0x51,0xff,0xa4,0x01,0x76,0x01,0x52,0xff,0x2d,0x01,0x76,0x01,0x53,0xff,0xa4,0x01,0x76,0x01,0x54,0xff,0x2d,0x01,0x76,0x01,0x55,0xff,0xa4,0x01,0x76,0x01,0x56,0xff,0x2d,0x01,0x76,0x01,0x5c,0x00,0x6f,0x01,0x76,0x01,0x5e,0x00,0x6f,0x01,0x76,0x01,0x60, -0x00,0x6f,0x01,0x76,0x01,0x63,0xff,0x8f,0x01,0x76,0x01,0x6d,0xff,0x4e,0x01,0x76,0x01,0x6e,0xff,0xa4,0x01,0x76,0x01,0x6f,0xff,0x2d,0x01,0x76,0x01,0x70,0xff,0xa4,0x01,0x76,0x01,0x71,0xff,0x2d,0x01,0x76,0x01,0x73,0xff,0x4e,0x01,0x76,0x01,0x75,0xff,0x66,0x01,0x76,0x01,0x76,0x00,0x27,0x01,0x76,0x01,0x79,0xff,0x4e,0x01,0x76, -0x01,0x7b,0xff,0x4e,0x01,0x76,0x01,0x7d,0xff,0x4e,0x01,0x76,0x01,0x7f,0xff,0x4e,0x01,0x76,0x01,0x80,0x00,0x27,0x01,0x76,0x01,0x81,0xff,0x8f,0x01,0x76,0x01,0x82,0x00,0x1d,0x01,0x76,0x01,0x83,0xff,0x8f,0x01,0x76,0x01,0x85,0xff,0x66,0x01,0x76,0x01,0x86,0xff,0x27,0x01,0x76,0x01,0x87,0xff,0x66,0x01,0x76,0x01,0x88,0xff,0x27, -0x01,0x76,0x01,0x89,0xff,0xa4,0x01,0x76,0x01,0x8a,0xff,0x2d,0x01,0x76,0x01,0x8c,0x00,0x27,0x01,0x76,0x01,0x8d,0xff,0x8f,0x01,0x76,0x01,0x8e,0x00,0x27,0x01,0x76,0x01,0x8f,0xff,0x8f,0x01,0x76,0x01,0x90,0x00,0x27,0x01,0x76,0x01,0x91,0xff,0x8f,0x01,0x76,0x01,0x92,0x00,0x1d,0x01,0x76,0x01,0x93,0xff,0x8f,0x01,0x76,0x02,0x3e, -0xff,0x66,0x01,0x77,0x00,0x10,0xff,0x8f,0x01,0x77,0x00,0x22,0xff,0xcb,0x01,0x77,0x00,0x46,0xff,0xe5,0x01,0x77,0x00,0x47,0xff,0xe5,0x01,0x77,0x00,0x48,0xff,0xf0,0x01,0x77,0x00,0x4a,0xff,0xf0,0x01,0x77,0x00,0x52,0xff,0xf0,0x01,0x77,0x00,0x54,0xff,0xf0,0x01,0x77,0x00,0x5b,0x00,0x1d,0x01,0x77,0x00,0x6f,0xff,0xe5,0x01,0x77, -0x00,0x70,0xff,0xf0,0x01,0x77,0x00,0x71,0xff,0xf0,0x01,0x77,0x00,0x72,0xff,0xf0,0x01,0x77,0x00,0x73,0xff,0xf0,0x01,0x77,0x00,0x79,0xff,0xf0,0x01,0x77,0x00,0x7a,0xff,0xf0,0x01,0x77,0x00,0x7b,0xff,0xf0,0x01,0x77,0x00,0x7c,0xff,0xf0,0x01,0x77,0x00,0x7d,0xff,0xf0,0x01,0x77,0x00,0xab,0x00,0x27,0x01,0x77,0x00,0xb1,0xff,0xf0, -0x01,0x77,0x00,0xbf,0x00,0x27,0x01,0x77,0x00,0xf8,0xff,0xf0,0x01,0x77,0x00,0xfd,0xff,0xe5,0x01,0x77,0x00,0xff,0xff,0xe5,0x01,0x77,0x01,0x00,0xff,0xe5,0x01,0x77,0x01,0x08,0xff,0xe5,0x01,0x77,0x01,0x0b,0xff,0xf0,0x01,0x77,0x01,0x0d,0xff,0xf0,0x01,0x77,0x01,0x19,0xff,0xf0,0x01,0x77,0x01,0x48,0xff,0xe5,0x01,0x77,0x01,0x4c, -0xff,0xf0,0x01,0x77,0x01,0x4e,0xff,0xf0,0x01,0x77,0x01,0x50,0xff,0xf0,0x01,0x77,0x01,0x52,0xff,0xf0,0x01,0x77,0x01,0x54,0xff,0xf0,0x01,0x77,0x01,0x56,0xff,0xf0,0x01,0x77,0x01,0x6f,0xff,0xf0,0x01,0x77,0x01,0x71,0xff,0xf0,0x01,0x77,0x01,0x8a,0xff,0xf0,0x01,0x78,0x00,0x24,0xff,0xd7,0x01,0x78,0x00,0x91,0xff,0x8b,0x01,0x78, -0x00,0xc4,0xff,0xa6,0x01,0x78,0x00,0xc5,0xff,0xa6,0x01,0x78,0x01,0x03,0xff,0xd7,0x01,0x78,0x01,0x05,0xff,0xd7,0x01,0x78,0x01,0x45,0xff,0xd7,0x01,0x78,0x01,0x85,0xff,0xd7,0x01,0x78,0x01,0x87,0xff,0xd7,0x01,0x79,0x00,0x05,0xff,0xbe,0x01,0x79,0x00,0x0a,0xff,0xbe,0x01,0x7a,0x00,0x24,0xff,0xd7,0x01,0x7a,0x00,0x91,0xff,0x8b, -0x01,0x7a,0x00,0xc4,0xff,0xa6,0x01,0x7a,0x00,0xc5,0xff,0xa6,0x01,0x7a,0x01,0x03,0xff,0xd7,0x01,0x7a,0x01,0x05,0xff,0xd7,0x01,0x7a,0x01,0x45,0xff,0xd7,0x01,0x7a,0x01,0x85,0xff,0xd7,0x01,0x7a,0x01,0x87,0xff,0xd7,0x01,0x7b,0x00,0x05,0xff,0xbe,0x01,0x7b,0x00,0x0a,0xff,0xbe,0x01,0x7c,0x00,0x24,0xff,0xd7,0x01,0x7c,0x00,0x91, -0xff,0x8b,0x01,0x7c,0x00,0xc4,0xff,0xa6,0x01,0x7c,0x00,0xc5,0xff,0xa6,0x01,0x7c,0x01,0x03,0xff,0xd7,0x01,0x7c,0x01,0x05,0xff,0xd7,0x01,0x7c,0x01,0x45,0xff,0xd7,0x01,0x7c,0x01,0x85,0xff,0xd7,0x01,0x7c,0x01,0x87,0xff,0xd7,0x01,0x7d,0x00,0x05,0xff,0xbe,0x01,0x7d,0x00,0x0a,0xff,0xbe,0x01,0x7e,0x00,0x24,0xff,0xd7,0x01,0x7e, -0x00,0x91,0xff,0x8b,0x01,0x7e,0x00,0xc4,0xff,0xa6,0x01,0x7e,0x00,0xc5,0xff,0xa6,0x01,0x7e,0x01,0x03,0xff,0xd7,0x01,0x7e,0x01,0x05,0xff,0xd7,0x01,0x7e,0x01,0x45,0xff,0xd7,0x01,0x7e,0x01,0x85,0xff,0xd7,0x01,0x7e,0x01,0x87,0xff,0xd7,0x01,0x7f,0x00,0x05,0xff,0xbe,0x01,0x7f,0x00,0x0a,0xff,0xbe,0x01,0x80,0x00,0x0f,0xff,0x8b, -0x01,0x80,0x00,0x11,0xff,0x7f,0x01,0x80,0x00,0x24,0xff,0xb6,0x01,0x80,0x00,0x37,0x00,0x27,0x01,0x80,0x00,0x44,0xff,0xb4,0x01,0x80,0x00,0x46,0xff,0xcf,0x01,0x80,0x00,0x47,0xff,0xcf,0x01,0x80,0x00,0x48,0xff,0xcf,0x01,0x80,0x00,0x4a,0xff,0xcf,0x01,0x80,0x00,0x52,0xff,0xcf,0x01,0x80,0x00,0x54,0xff,0xcf,0x01,0x80,0x00,0x62, -0xff,0xb6,0x01,0x80,0x00,0x63,0xff,0xb6,0x01,0x80,0x00,0x69,0xff,0xb4,0x01,0x80,0x00,0x6a,0xff,0xb4,0x01,0x80,0x00,0x6b,0xff,0xb4,0x01,0x80,0x00,0x6c,0xff,0xb4,0x01,0x80,0x00,0x6d,0xff,0xb4,0x01,0x80,0x00,0x6e,0xff,0xb4,0x01,0x80,0x00,0x6f,0xff,0xcf,0x01,0x80,0x00,0x70,0xff,0xcf,0x01,0x80,0x00,0x71,0xff,0xcf,0x01,0x80, -0x00,0x72,0xff,0xcf,0x01,0x80,0x00,0x73,0xff,0xcf,0x01,0x80,0x00,0x76,0x00,0x31,0x01,0x80,0x00,0x77,0x00,0x64,0x01,0x80,0x00,0x79,0xff,0xcf,0x01,0x80,0x00,0x7a,0xff,0xcf,0x01,0x80,0x00,0x7b,0xff,0xcf,0x01,0x80,0x00,0x7c,0xff,0xcf,0x01,0x80,0x00,0x7d,0xff,0xcf,0x01,0x80,0x00,0x91,0xff,0x9a,0x01,0x80,0x00,0xa0,0xff,0xb4, -0x01,0x80,0x00,0xa2,0xff,0xa4,0x01,0x80,0x00,0xaa,0xff,0xcf,0x01,0x80,0x00,0xab,0x00,0x27,0x01,0x80,0x00,0xac,0xff,0x7f,0x01,0x80,0x00,0xad,0xff,0xb6,0x01,0x80,0x00,0xae,0xff,0xb6,0x01,0x80,0x00,0xb1,0xff,0xcf,0x01,0x80,0x00,0xbe,0xff,0xcf,0x01,0x80,0x00,0xbf,0x00,0x27,0x01,0x80,0x00,0xc4,0xff,0x7f,0x01,0x80,0x00,0xc5, -0xff,0x8b,0x01,0x80,0x00,0xc7,0xff,0xb6,0x01,0x80,0x00,0xc9,0xff,0xb6,0x01,0x80,0x00,0xf8,0xff,0xcf,0x01,0x80,0x00,0xfd,0xff,0xcf,0x01,0x80,0x00,0xff,0xff,0xcf,0x01,0x80,0x01,0x00,0xff,0xcf,0x01,0x80,0x01,0x03,0xff,0xb6,0x01,0x80,0x01,0x04,0xff,0xb4,0x01,0x80,0x01,0x05,0xff,0xb6,0x01,0x80,0x01,0x06,0xff,0xb4,0x01,0x80, -0x01,0x08,0xff,0xcf,0x01,0x80,0x01,0x0b,0xff,0xcf,0x01,0x80,0x01,0x0d,0xff,0xcf,0x01,0x80,0x01,0x19,0xff,0xcf,0x01,0x80,0x01,0x20,0x00,0x27,0x01,0x80,0x01,0x22,0x00,0x27,0x01,0x80,0x01,0x45,0xff,0xb6,0x01,0x80,0x01,0x46,0xff,0xb4,0x01,0x80,0x01,0x48,0xff,0xcf,0x01,0x80,0x01,0x4c,0xff,0xcf,0x01,0x80,0x01,0x4e,0xff,0xcf, -0x01,0x80,0x01,0x50,0xff,0xcf,0x01,0x80,0x01,0x52,0xff,0xcf,0x01,0x80,0x01,0x54,0xff,0xcf,0x01,0x80,0x01,0x56,0xff,0xcf,0x01,0x80,0x01,0x5c,0x00,0x64,0x01,0x80,0x01,0x5e,0x00,0x64,0x01,0x80,0x01,0x60,0x00,0x64,0x01,0x80,0x01,0x6f,0xff,0xcf,0x01,0x80,0x01,0x71,0xff,0xcf,0x01,0x80,0x01,0x76,0x00,0x27,0x01,0x80,0x01,0x85, -0xff,0xb6,0x01,0x80,0x01,0x86,0xff,0xb4,0x01,0x80,0x01,0x87,0xff,0xb6,0x01,0x80,0x01,0x88,0xff,0xb4,0x01,0x80,0x01,0x8a,0xff,0xcf,0x01,0x81,0x00,0x0f,0xff,0xa6,0x01,0x81,0x00,0x11,0xff,0x9a,0x01,0x81,0x00,0x46,0xff,0xfa,0x01,0x81,0x00,0x47,0xff,0xf6,0x01,0x81,0x00,0x48,0xff,0xf6,0x01,0x81,0x00,0x4a,0xff,0xfa,0x01,0x81, -0x00,0x52,0xff,0xfa,0x01,0x81,0x00,0x54,0xff,0xf6,0x01,0x81,0x00,0x6f,0xff,0xfa,0x01,0x81,0x00,0x70,0xff,0xf6,0x01,0x81,0x00,0x71,0xff,0xf6,0x01,0x81,0x00,0x72,0xff,0xf6,0x01,0x81,0x00,0x73,0xff,0xf6,0x01,0x81,0x00,0x79,0xff,0xfa,0x01,0x81,0x00,0x7a,0xff,0xfa,0x01,0x81,0x00,0x7b,0xff,0xfa,0x01,0x81,0x00,0x7c,0xff,0xfa, -0x01,0x81,0x00,0x7d,0xff,0xfa,0x01,0x81,0x00,0xac,0xff,0x9a,0x01,0x81,0x00,0xb1,0xff,0xfa,0x01,0x81,0x00,0xc4,0xff,0xb4,0x01,0x81,0x00,0xc5,0xff,0xb4,0x01,0x81,0x00,0xf8,0xff,0xfa,0x01,0x81,0x00,0xfd,0xff,0xfa,0x01,0x81,0x00,0xff,0xff,0xfa,0x01,0x81,0x01,0x00,0xff,0xf6,0x01,0x81,0x01,0x08,0xff,0xf6,0x01,0x81,0x01,0x0b, -0xff,0xf6,0x01,0x81,0x01,0x0d,0xff,0xf6,0x01,0x81,0x01,0x19,0xff,0xfa,0x01,0x81,0x01,0x48,0xff,0xfa,0x01,0x81,0x01,0x4c,0xff,0xf6,0x01,0x81,0x01,0x4e,0xff,0xf6,0x01,0x81,0x01,0x50,0xff,0xf6,0x01,0x81,0x01,0x52,0xff,0xfa,0x01,0x81,0x01,0x54,0xff,0xfa,0x01,0x81,0x01,0x56,0xff,0xfa,0x01,0x81,0x01,0x6f,0xff,0xfa,0x01,0x81, -0x01,0x71,0xff,0xfa,0x01,0x81,0x01,0x8a,0xff,0xfa,0x01,0x82,0x00,0x0f,0xff,0x50,0x01,0x82,0x00,0x11,0xff,0x3d,0x01,0x82,0x00,0x24,0xff,0x62,0x01,0x82,0x00,0x26,0xff,0xd3,0x01,0x82,0x00,0x2a,0xff,0xd3,0x01,0x82,0x00,0x2d,0xff,0xbe,0x01,0x82,0x00,0x32,0xff,0xd3,0x01,0x82,0x00,0x34,0xff,0xd3,0x01,0x82,0x00,0x36,0xff,0xe5, -0x01,0x82,0x00,0x37,0x00,0x27,0x01,0x82,0x00,0x44,0xff,0x39,0x01,0x82,0x00,0x46,0xff,0x4c,0x01,0x82,0x00,0x47,0xff,0x4c,0x01,0x82,0x00,0x48,0xff,0x4c,0x01,0x82,0x00,0x49,0xff,0xe5,0x01,0x82,0x00,0x4a,0xff,0x4c,0x01,0x82,0x00,0x50,0xff,0x73,0x01,0x82,0x00,0x51,0xff,0x73,0x01,0x82,0x00,0x52,0xff,0x4c,0x01,0x82,0x00,0x53, -0xff,0x73,0x01,0x82,0x00,0x54,0xff,0x4c,0x01,0x82,0x00,0x55,0xff,0x73,0x01,0x82,0x00,0x56,0xff,0x7b,0x01,0x82,0x00,0x58,0xff,0x73,0x01,0x82,0x00,0x62,0xff,0x62,0x01,0x82,0x00,0x63,0xff,0x62,0x01,0x82,0x00,0x64,0xff,0xcd,0x01,0x82,0x00,0x67,0xff,0xd3,0x01,0x82,0x00,0x69,0xff,0x39,0x01,0x82,0x00,0x6a,0xff,0x39,0x01,0x82, -0x00,0x6b,0xff,0x39,0x01,0x82,0x00,0x6c,0xff,0x7f,0x01,0x82,0x00,0x6d,0xff,0x66,0x01,0x82,0x00,0x6e,0xff,0x39,0x01,0x82,0x00,0x6f,0xff,0x4c,0x01,0x82,0x00,0x70,0xff,0x4c,0x01,0x82,0x00,0x71,0xff,0x4c,0x01,0x82,0x00,0x72,0xff,0x4c,0x01,0x82,0x00,0x73,0xff,0x4c,0x01,0x82,0x00,0x77,0x00,0x5a,0x01,0x82,0x00,0x78,0xff,0x73, -0x01,0x82,0x00,0x79,0xff,0x4c,0x01,0x82,0x00,0x7a,0xff,0x4c,0x01,0x82,0x00,0x7b,0xff,0x4c,0x01,0x82,0x00,0x7c,0xff,0x4c,0x01,0x82,0x00,0x7d,0xff,0x4c,0x01,0x82,0x00,0x7e,0xff,0x73,0x01,0x82,0x00,0x7f,0xff,0x73,0x01,0x82,0x00,0x80,0xff,0x73,0x01,0x82,0x00,0x81,0xff,0x73,0x01,0x82,0x00,0x91,0xff,0x3f,0x01,0x82,0x00,0x92, -0xff,0xd3,0x01,0x82,0x00,0xa0,0xff,0x39,0x01,0x82,0x00,0xa2,0xff,0x1b,0x01,0x82,0x00,0xaa,0xff,0xcf,0x01,0x82,0x00,0xac,0xff,0x3d,0x01,0x82,0x00,0xad,0xff,0x62,0x01,0x82,0x00,0xae,0xff,0x62,0x01,0x82,0x00,0xaf,0xff,0xd3,0x01,0x82,0x00,0xb0,0xff,0xd3,0x01,0x82,0x00,0xb1,0xff,0x4c,0x01,0x82,0x00,0xbe,0xff,0x9a,0x01,0x82, -0x00,0xc4,0xff,0x08,0x01,0x82,0x00,0xc5,0xff,0x08,0x01,0x82,0x00,0xc7,0xff,0x62,0x01,0x82,0x00,0xc9,0xff,0x62,0x01,0x82,0x00,0xd0,0xff,0xd3,0x01,0x82,0x00,0xd1,0xff,0xd3,0x01,0x82,0x00,0xd2,0xff,0xd3,0x01,0x82,0x00,0xe3,0xff,0xe5,0x01,0x82,0x00,0xe4,0xff,0x7b,0x01,0x82,0x00,0xf7,0xff,0xd3,0x01,0x82,0x00,0xf8,0xff,0x4c, -0x01,0x82,0x00,0xfa,0xff,0xe5,0x01,0x82,0x00,0xfb,0xff,0x7b,0x01,0x82,0x00,0xfc,0xff,0xd3,0x01,0x82,0x00,0xfd,0xff,0x4c,0x01,0x82,0x00,0xfe,0xff,0xd3,0x01,0x82,0x00,0xff,0xff,0x4c,0x01,0x82,0x01,0x00,0xff,0x4c,0x01,0x82,0x01,0x03,0xff,0x62,0x01,0x82,0x01,0x04,0xff,0x7f,0x01,0x82,0x01,0x05,0xff,0x62,0x01,0x82,0x01,0x06, -0xff,0x39,0x01,0x82,0x01,0x08,0xff,0x4c,0x01,0x82,0x01,0x0b,0xff,0x4c,0x01,0x82,0x01,0x0d,0xff,0x4c,0x01,0x82,0x01,0x15,0xff,0x73,0x01,0x82,0x01,0x17,0xff,0x73,0x01,0x82,0x01,0x18,0xff,0xd3,0x01,0x82,0x01,0x19,0xff,0x4c,0x01,0x82,0x01,0x1b,0xff,0x73,0x01,0x82,0x01,0x1d,0xff,0x73,0x01,0x82,0x01,0x1e,0xff,0xe5,0x01,0x82, -0x01,0x1f,0xff,0x7b,0x01,0x82,0x01,0x20,0x00,0x27,0x01,0x82,0x01,0x22,0x00,0x27,0x01,0x82,0x01,0x25,0xff,0x73,0x01,0x82,0x01,0x27,0xff,0x73,0x01,0x82,0x01,0x45,0xff,0x62,0x01,0x82,0x01,0x46,0xff,0x7f,0x01,0x82,0x01,0x47,0xff,0xd3,0x01,0x82,0x01,0x48,0xff,0x4c,0x01,0x82,0x01,0x4c,0xff,0x4c,0x01,0x82,0x01,0x4e,0xff,0x4c, -0x01,0x82,0x01,0x50,0xff,0x4c,0x01,0x82,0x01,0x51,0xff,0xd3,0x01,0x82,0x01,0x52,0xff,0x4c,0x01,0x82,0x01,0x53,0xff,0xd3,0x01,0x82,0x01,0x54,0xff,0x4c,0x01,0x82,0x01,0x55,0xff,0xd3,0x01,0x82,0x01,0x56,0xff,0x4c,0x01,0x82,0x01,0x5c,0x00,0x5a,0x01,0x82,0x01,0x5e,0x00,0x5a,0x01,0x82,0x01,0x60,0x00,0x5a,0x01,0x82,0x01,0x63, -0xff,0xbe,0x01,0x82,0x01,0x6d,0xff,0x73,0x01,0x82,0x01,0x6e,0xff,0xd3,0x01,0x82,0x01,0x6f,0xff,0x4c,0x01,0x82,0x01,0x70,0xff,0xd3,0x01,0x82,0x01,0x71,0xff,0x4c,0x01,0x82,0x01,0x73,0xff,0x73,0x01,0x82,0x01,0x74,0xff,0xe5,0x01,0x82,0x01,0x75,0xff,0x7b,0x01,0x82,0x01,0x76,0x00,0x27,0x01,0x82,0x01,0x79,0xff,0x73,0x01,0x82, -0x01,0x7b,0xff,0x73,0x01,0x82,0x01,0x7d,0xff,0x73,0x01,0x82,0x01,0x7f,0xff,0x73,0x01,0x82,0x01,0x85,0xff,0x62,0x01,0x82,0x01,0x86,0xff,0x7f,0x01,0x82,0x01,0x87,0xff,0x62,0x01,0x82,0x01,0x88,0xff,0x39,0x01,0x82,0x01,0x89,0xff,0xd3,0x01,0x82,0x01,0x8a,0xff,0x4c,0x01,0x82,0x02,0x3d,0xff,0xe5,0x01,0x82,0x02,0x3e,0xff,0x7b, -0x01,0x83,0x00,0x05,0x00,0x1d,0x01,0x83,0x00,0x0a,0x00,0x1d,0x01,0x83,0x00,0x0f,0xff,0x9a,0x01,0x83,0x00,0x11,0xff,0x81,0x01,0x83,0x00,0x22,0xff,0xb4,0x01,0x83,0x00,0x46,0xff,0xf6,0x01,0x83,0x00,0x47,0xff,0xf6,0x01,0x83,0x00,0x48,0xff,0xf6,0x01,0x83,0x00,0x49,0x00,0x04,0x01,0x83,0x00,0x4a,0xff,0xf6,0x01,0x83,0x00,0x52, -0xff,0xf6,0x01,0x83,0x00,0x54,0xff,0xf6,0x01,0x83,0x00,0x57,0x00,0x06,0x01,0x83,0x00,0x6f,0xff,0xf6,0x01,0x83,0x00,0x70,0xff,0xf6,0x01,0x83,0x00,0x71,0xff,0xf6,0x01,0x83,0x00,0x72,0xff,0xf6,0x01,0x83,0x00,0x73,0xff,0xf6,0x01,0x83,0x00,0x79,0xff,0xf6,0x01,0x83,0x00,0x7a,0xff,0xf6,0x01,0x83,0x00,0x7b,0xff,0xf6,0x01,0x83, -0x00,0x7c,0xff,0xf6,0x01,0x83,0x00,0x7d,0xff,0xf6,0x01,0x83,0x00,0xac,0xff,0x81,0x01,0x83,0x00,0xb1,0xff,0xf6,0x01,0x83,0x00,0xbf,0x00,0x0c,0x01,0x83,0x00,0xc4,0xff,0x8d,0x01,0x83,0x00,0xc5,0xff,0x8d,0x01,0x83,0x00,0xf8,0xff,0xf6,0x01,0x83,0x00,0xfd,0xff,0xf6,0x01,0x83,0x00,0xff,0xff,0xf6,0x01,0x83,0x01,0x00,0xff,0xf6, -0x01,0x83,0x01,0x08,0xff,0xf6,0x01,0x83,0x01,0x0b,0xff,0xf6,0x01,0x83,0x01,0x0d,0xff,0xf6,0x01,0x83,0x01,0x19,0xff,0xf6,0x01,0x83,0x01,0x21,0x00,0x06,0x01,0x83,0x01,0x23,0x00,0x06,0x01,0x83,0x01,0x48,0xff,0xf6,0x01,0x83,0x01,0x4c,0xff,0xf6,0x01,0x83,0x01,0x4e,0xff,0xf6,0x01,0x83,0x01,0x50,0xff,0xf6,0x01,0x83,0x01,0x52, -0xff,0xf6,0x01,0x83,0x01,0x54,0xff,0xf6,0x01,0x83,0x01,0x56,0xff,0xf6,0x01,0x83,0x01,0x6f,0xff,0xf6,0x01,0x83,0x01,0x71,0xff,0xf6,0x01,0x83,0x01,0x77,0x00,0x06,0x01,0x83,0x01,0x8a,0xff,0xf6,0x01,0x84,0x00,0x0c,0x00,0x8d,0x01,0x84,0x00,0x0f,0xff,0x7f,0x01,0x84,0x00,0x10,0xff,0x9a,0x01,0x84,0x00,0x11,0xff,0x7f,0x01,0x84, -0x00,0x1d,0x00,0x52,0x01,0x84,0x00,0x1e,0x00,0x52,0x01,0x84,0x00,0x22,0x00,0x42,0x01,0x84,0x00,0x40,0x00,0x8d,0x01,0x84,0x00,0x45,0x00,0x12,0x01,0x84,0x00,0x4b,0x00,0x12,0x01,0x84,0x00,0x57,0x00,0x25,0x01,0x84,0x00,0x59,0x00,0x27,0x01,0x84,0x00,0x5a,0x00,0x27,0x01,0x84,0x00,0x5b,0x00,0x12,0x01,0x84,0x00,0x5c,0x00,0x21, -0x01,0x84,0x00,0x60,0x00,0x52,0x01,0x84,0x00,0x75,0x00,0x2d,0x01,0x84,0x00,0x76,0x00,0x12,0x01,0x84,0x00,0x77,0x00,0x79,0x01,0x84,0x00,0x8d,0x00,0x93,0x01,0x84,0x00,0xab,0x00,0x27,0x01,0x84,0x00,0xac,0xff,0x7f,0x01,0x84,0x00,0xb4,0x00,0x5e,0x01,0x84,0x00,0xb5,0x00,0x52,0x01,0x84,0x00,0xb6,0x00,0x5e,0x01,0x84,0x00,0xb7, -0x00,0x52,0x01,0x84,0x00,0xbf,0x00,0x27,0x01,0x84,0x00,0xc4,0xff,0xb0,0x01,0x84,0x00,0xc5,0xff,0xb0,0x01,0x84,0x00,0xeb,0x00,0x21,0x01,0x84,0x00,0xed,0x00,0x12,0x01,0x84,0x01,0x21,0x00,0x25,0x01,0x84,0x01,0x23,0x00,0x25,0x01,0x84,0x01,0x58,0x00,0x12,0x01,0x84,0x01,0x5a,0x00,0x12,0x01,0x84,0x01,0x5c,0x00,0x79,0x01,0x84, -0x01,0x5e,0x00,0x79,0x01,0x84,0x01,0x60,0x00,0x79,0x01,0x84,0x01,0x77,0x00,0x25,0x01,0x84,0x01,0x81,0x00,0x27,0x01,0x84,0x01,0x83,0x00,0x21,0x01,0x84,0x01,0x8d,0x00,0x27,0x01,0x84,0x01,0x8f,0x00,0x27,0x01,0x84,0x01,0x91,0x00,0x27,0x01,0x84,0x01,0x93,0x00,0x21,0x01,0x85,0x00,0x0d,0xff,0x7f,0x01,0x85,0x00,0x0f,0x00,0x44, -0x01,0x85,0x00,0x1e,0x00,0x44,0x01,0x85,0x00,0x26,0xff,0xe5,0x01,0x85,0x00,0x2a,0xff,0xe5,0x01,0x85,0x00,0x2d,0x00,0x5e,0x01,0x85,0x00,0x32,0xff,0xe5,0x01,0x85,0x00,0x37,0xff,0x6d,0x01,0x85,0x00,0x38,0xff,0xe5,0x01,0x85,0x00,0x39,0xff,0x8b,0x01,0x85,0x00,0x3a,0xff,0xb6,0x01,0x85,0x00,0x3c,0xff,0x64,0x01,0x85,0x00,0x3d, -0x00,0x3b,0x01,0x85,0x00,0x57,0xff,0xe5,0x01,0x85,0x00,0x59,0xff,0xd5,0x01,0x85,0x00,0x5a,0xff,0xe5,0x01,0x85,0x00,0x5c,0xff,0xdb,0x01,0x85,0x00,0x8d,0xff,0x9a,0x01,0x85,0x00,0xb4,0xff,0x66,0x01,0x85,0x00,0xb5,0xff,0x3f,0x01,0x85,0x00,0xb6,0xff,0x66,0x01,0x85,0x00,0xb7,0xff,0x3f,0x01,0x85,0x00,0xba,0xff,0xc1,0x01,0x85, -0x00,0xbb,0xff,0x64,0x01,0x85,0x00,0xe5,0x00,0x3b,0x01,0x85,0x00,0xea,0xff,0x64,0x01,0x85,0x00,0xeb,0xff,0xdb,0x01,0x85,0x00,0xf7,0xff,0xe5,0x01,0x85,0x00,0xfc,0xff,0xe5,0x01,0x85,0x00,0xfe,0xff,0xe5,0x01,0x85,0x01,0x18,0xff,0xe5,0x01,0x85,0x01,0x20,0xff,0x6d,0x01,0x85,0x01,0x21,0xff,0xe5,0x01,0x85,0x01,0x22,0xff,0x6d, -0x01,0x85,0x01,0x23,0xff,0xe5,0x01,0x85,0x01,0x24,0xff,0xe5,0x01,0x85,0x01,0x26,0xff,0xe5,0x01,0x85,0x01,0x28,0x00,0x3b,0x01,0x85,0x01,0x2a,0x00,0x3b,0x01,0x85,0x01,0x47,0xff,0xe5,0x01,0x85,0x01,0x51,0xff,0xe5,0x01,0x85,0x01,0x53,0xff,0xe5,0x01,0x85,0x01,0x55,0xff,0xe5,0x01,0x85,0x01,0x63,0x00,0x5e,0x01,0x85,0x01,0x6e, -0xff,0xe5,0x01,0x85,0x01,0x70,0xff,0xe5,0x01,0x85,0x01,0x76,0xff,0x6d,0x01,0x85,0x01,0x77,0xff,0xe5,0x01,0x85,0x01,0x78,0xff,0xe5,0x01,0x85,0x01,0x7a,0xff,0xe5,0x01,0x85,0x01,0x7c,0xff,0xe5,0x01,0x85,0x01,0x7e,0xff,0xe5,0x01,0x85,0x01,0x80,0xff,0xb6,0x01,0x85,0x01,0x81,0xff,0xe5,0x01,0x85,0x01,0x82,0xff,0x64,0x01,0x85, -0x01,0x83,0xff,0xdb,0x01,0x85,0x01,0x89,0xff,0xe5,0x01,0x85,0x01,0x8c,0xff,0xb6,0x01,0x85,0x01,0x8d,0xff,0xe5,0x01,0x85,0x01,0x8e,0xff,0xb6,0x01,0x85,0x01,0x8f,0xff,0xe5,0x01,0x85,0x01,0x90,0xff,0xb6,0x01,0x85,0x01,0x91,0xff,0xe5,0x01,0x85,0x01,0x92,0xff,0x64,0x01,0x85,0x01,0x93,0xff,0xdb,0x01,0x87,0x00,0x24,0x00,0x0a, -0x01,0x87,0x00,0x2d,0x00,0x44,0x01,0x87,0x00,0x37,0x00,0x04,0x01,0x87,0x00,0x3a,0x00,0x1d,0x01,0x87,0x00,0x3b,0x00,0x08,0x01,0x87,0x00,0x62,0x00,0x0a,0x01,0x87,0x00,0x63,0x00,0x0a,0x01,0x87,0x00,0x77,0x00,0x12,0x01,0x87,0x00,0xad,0x00,0x0a,0x01,0x87,0x00,0xae,0x00,0x0a,0x01,0x87,0x00,0xc7,0x00,0x0a,0x01,0x87,0x00,0xc9, -0x00,0x0a,0x01,0x87,0x01,0x03,0x00,0x0a,0x01,0x87,0x01,0x05,0x00,0x0a,0x01,0x87,0x01,0x20,0x00,0x04,0x01,0x87,0x01,0x22,0x00,0x04,0x01,0x87,0x01,0x45,0x00,0x0a,0x01,0x87,0x01,0x5c,0x00,0x12,0x01,0x87,0x01,0x5e,0x00,0x12,0x01,0x87,0x01,0x60,0x00,0x12,0x01,0x87,0x01,0x63,0x00,0x44,0x01,0x87,0x01,0x76,0x00,0x04,0x01,0x87, -0x01,0x80,0x00,0x1d,0x01,0x87,0x01,0x85,0x00,0x0a,0x01,0x87,0x01,0x87,0x00,0x0a,0x01,0x87,0x01,0x8c,0x00,0x1d,0x01,0x87,0x01,0x8e,0x00,0x1d,0x01,0x87,0x01,0x90,0x00,0x1d,0x01,0x88,0x00,0x05,0xff,0x98,0x01,0x88,0x00,0x0a,0xff,0x98,0x01,0x89,0x00,0x0f,0xff,0xa4,0x01,0x89,0x00,0x11,0xff,0xa4,0x01,0x89,0x00,0x24,0xff,0xe5, -0x01,0x89,0x00,0x2d,0xff,0xf6,0x01,0x89,0x00,0x37,0xff,0xa4,0x01,0x89,0x00,0x3b,0xff,0xdb,0x01,0x89,0x00,0x3c,0xff,0xe7,0x01,0x89,0x00,0x3d,0xff,0xcf,0x01,0x89,0x00,0x62,0xff,0xe5,0x01,0x89,0x00,0x63,0xff,0xe5,0x01,0x89,0x00,0xac,0xff,0xa4,0x01,0x89,0x00,0xad,0xff,0xe5,0x01,0x89,0x00,0xae,0xff,0xe5,0x01,0x89,0x00,0xbb, -0xff,0xf6,0x01,0x89,0x00,0xc4,0xff,0x4c,0x01,0x89,0x00,0xc5,0xff,0x98,0x01,0x89,0x00,0xc7,0xff,0xe5,0x01,0x89,0x00,0xc9,0xff,0xe5,0x01,0x89,0x00,0xe5,0xff,0xcf,0x01,0x89,0x00,0xea,0xff,0xe7,0x01,0x89,0x01,0x03,0xff,0xe5,0x01,0x89,0x01,0x05,0xff,0xe5,0x01,0x89,0x01,0x20,0xff,0xa4,0x01,0x89,0x01,0x22,0xff,0xa4,0x01,0x89, -0x01,0x28,0xff,0xcf,0x01,0x89,0x01,0x2a,0xff,0xcf,0x01,0x89,0x01,0x45,0xff,0xe5,0x01,0x89,0x01,0x63,0xff,0xf6,0x01,0x89,0x01,0x76,0xff,0xa4,0x01,0x89,0x01,0x82,0xff,0xe7,0x01,0x89,0x01,0x85,0xff,0xe5,0x01,0x89,0x01,0x87,0xff,0xe5,0x01,0x89,0x01,0x92,0xff,0xe7,0x01,0x8a,0x00,0x05,0xff,0x6f,0x01,0x8a,0x00,0x0a,0xff,0x6f, -0x01,0x8a,0x00,0x44,0xff,0xe5,0x01,0x8a,0x00,0x49,0xff,0xdb,0x01,0x8a,0x00,0x5b,0xff,0xe7,0x01,0x8a,0x00,0x69,0xff,0xe5,0x01,0x8a,0x00,0x6a,0xff,0xe5,0x01,0x8a,0x00,0x6b,0xff,0xe5,0x01,0x8a,0x00,0x6c,0xff,0xe5,0x01,0x8a,0x00,0x6d,0xff,0xe5,0x01,0x8a,0x00,0x6e,0xff,0xe5,0x01,0x8a,0x00,0xa0,0xff,0xe5,0x01,0x8a,0x00,0xb4, -0xff,0xb2,0x01,0x8a,0x00,0xb5,0xff,0x7d,0x01,0x8a,0x00,0xb6,0xff,0xbe,0x01,0x8a,0x00,0xb7,0xff,0x7d,0x01,0x8a,0x00,0xc0,0xff,0xe7,0x01,0x8a,0x00,0xc1,0xff,0xe7,0x01,0x8a,0x01,0x04,0xff,0xe5,0x01,0x8a,0x01,0x06,0xff,0xe5,0x01,0x8a,0x01,0x46,0xff,0xe5,0x01,0x8a,0x01,0x86,0xff,0xe5,0x01,0x8a,0x01,0x88,0xff,0xe5,0x01,0x8c, -0x00,0x0f,0xff,0x8b,0x01,0x8c,0x00,0x11,0xff,0x7f,0x01,0x8c,0x00,0x24,0xff,0xb6,0x01,0x8c,0x00,0x37,0x00,0x27,0x01,0x8c,0x00,0x44,0xff,0xb4,0x01,0x8c,0x00,0x46,0xff,0xcf,0x01,0x8c,0x00,0x47,0xff,0xcf,0x01,0x8c,0x00,0x48,0xff,0xcf,0x01,0x8c,0x00,0x4a,0xff,0xcf,0x01,0x8c,0x00,0x52,0xff,0xcf,0x01,0x8c,0x00,0x54,0xff,0xcf, -0x01,0x8c,0x00,0x62,0xff,0xb6,0x01,0x8c,0x00,0x63,0xff,0xb6,0x01,0x8c,0x00,0x69,0xff,0xb4,0x01,0x8c,0x00,0x6a,0xff,0xb4,0x01,0x8c,0x00,0x6b,0xff,0xb4,0x01,0x8c,0x00,0x6c,0xff,0xb4,0x01,0x8c,0x00,0x6d,0xff,0xb4,0x01,0x8c,0x00,0x6e,0xff,0xb4,0x01,0x8c,0x00,0x6f,0xff,0xcf,0x01,0x8c,0x00,0x70,0xff,0xcf,0x01,0x8c,0x00,0x71, -0xff,0xcf,0x01,0x8c,0x00,0x72,0xff,0xcf,0x01,0x8c,0x00,0x73,0xff,0xcf,0x01,0x8c,0x00,0x76,0x00,0x31,0x01,0x8c,0x00,0x77,0x00,0x64,0x01,0x8c,0x00,0x79,0xff,0xcf,0x01,0x8c,0x00,0x7a,0xff,0xcf,0x01,0x8c,0x00,0x7b,0xff,0xcf,0x01,0x8c,0x00,0x7c,0xff,0xcf,0x01,0x8c,0x00,0x7d,0xff,0xcf,0x01,0x8c,0x00,0x91,0xff,0x9a,0x01,0x8c, -0x00,0xa0,0xff,0xb4,0x01,0x8c,0x00,0xa2,0xff,0xa4,0x01,0x8c,0x00,0xaa,0xff,0xcf,0x01,0x8c,0x00,0xab,0x00,0x27,0x01,0x8c,0x00,0xac,0xff,0x7f,0x01,0x8c,0x00,0xad,0xff,0xb6,0x01,0x8c,0x00,0xae,0xff,0xb6,0x01,0x8c,0x00,0xb1,0xff,0xcf,0x01,0x8c,0x00,0xbe,0xff,0xcf,0x01,0x8c,0x00,0xbf,0x00,0x27,0x01,0x8c,0x00,0xc4,0xff,0x7f, -0x01,0x8c,0x00,0xc5,0xff,0x8b,0x01,0x8c,0x00,0xc7,0xff,0xb6,0x01,0x8c,0x00,0xc9,0xff,0xb6,0x01,0x8c,0x00,0xf8,0xff,0xcf,0x01,0x8c,0x00,0xfd,0xff,0xcf,0x01,0x8c,0x00,0xff,0xff,0xcf,0x01,0x8c,0x01,0x00,0xff,0xcf,0x01,0x8c,0x01,0x03,0xff,0xb6,0x01,0x8c,0x01,0x04,0xff,0xb4,0x01,0x8c,0x01,0x05,0xff,0xb6,0x01,0x8c,0x01,0x06, -0xff,0xb4,0x01,0x8c,0x01,0x08,0xff,0xcf,0x01,0x8c,0x01,0x0b,0xff,0xcf,0x01,0x8c,0x01,0x0d,0xff,0xcf,0x01,0x8c,0x01,0x19,0xff,0xcf,0x01,0x8c,0x01,0x20,0x00,0x27,0x01,0x8c,0x01,0x22,0x00,0x27,0x01,0x8c,0x01,0x45,0xff,0xb6,0x01,0x8c,0x01,0x46,0xff,0xb4,0x01,0x8c,0x01,0x48,0xff,0xcf,0x01,0x8c,0x01,0x4c,0xff,0xcf,0x01,0x8c, -0x01,0x4e,0xff,0xcf,0x01,0x8c,0x01,0x50,0xff,0xcf,0x01,0x8c,0x01,0x52,0xff,0xcf,0x01,0x8c,0x01,0x54,0xff,0xcf,0x01,0x8c,0x01,0x56,0xff,0xcf,0x01,0x8c,0x01,0x5c,0x00,0x64,0x01,0x8c,0x01,0x5e,0x00,0x64,0x01,0x8c,0x01,0x60,0x00,0x64,0x01,0x8c,0x01,0x6f,0xff,0xcf,0x01,0x8c,0x01,0x71,0xff,0xcf,0x01,0x8c,0x01,0x76,0x00,0x27, -0x01,0x8c,0x01,0x85,0xff,0xb6,0x01,0x8c,0x01,0x86,0xff,0xb4,0x01,0x8c,0x01,0x87,0xff,0xb6,0x01,0x8c,0x01,0x88,0xff,0xb4,0x01,0x8c,0x01,0x8a,0xff,0xcf,0x01,0x8d,0x00,0x0f,0xff,0xa6,0x01,0x8d,0x00,0x11,0xff,0x9a,0x01,0x8d,0x00,0x46,0xff,0xfa,0x01,0x8d,0x00,0x47,0xff,0xf6,0x01,0x8d,0x00,0x48,0xff,0xf6,0x01,0x8d,0x00,0x4a, -0xff,0xfa,0x01,0x8d,0x00,0x52,0xff,0xfa,0x01,0x8d,0x00,0x54,0xff,0xf6,0x01,0x8d,0x00,0x6f,0xff,0xfa,0x01,0x8d,0x00,0x70,0xff,0xf6,0x01,0x8d,0x00,0x71,0xff,0xf6,0x01,0x8d,0x00,0x72,0xff,0xf6,0x01,0x8d,0x00,0x73,0xff,0xf6,0x01,0x8d,0x00,0x79,0xff,0xfa,0x01,0x8d,0x00,0x7a,0xff,0xfa,0x01,0x8d,0x00,0x7b,0xff,0xfa,0x01,0x8d, -0x00,0x7c,0xff,0xfa,0x01,0x8d,0x00,0x7d,0xff,0xfa,0x01,0x8d,0x00,0xac,0xff,0x9a,0x01,0x8d,0x00,0xb1,0xff,0xfa,0x01,0x8d,0x00,0xc4,0xff,0xb4,0x01,0x8d,0x00,0xc5,0xff,0xb4,0x01,0x8d,0x00,0xf8,0xff,0xfa,0x01,0x8d,0x00,0xfd,0xff,0xfa,0x01,0x8d,0x00,0xff,0xff,0xfa,0x01,0x8d,0x01,0x00,0xff,0xf6,0x01,0x8d,0x01,0x08,0xff,0xf6, -0x01,0x8d,0x01,0x0b,0xff,0xf6,0x01,0x8d,0x01,0x0d,0xff,0xf6,0x01,0x8d,0x01,0x19,0xff,0xfa,0x01,0x8d,0x01,0x48,0xff,0xfa,0x01,0x8d,0x01,0x4c,0xff,0xf6,0x01,0x8d,0x01,0x4e,0xff,0xf6,0x01,0x8d,0x01,0x50,0xff,0xf6,0x01,0x8d,0x01,0x52,0xff,0xfa,0x01,0x8d,0x01,0x54,0xff,0xfa,0x01,0x8d,0x01,0x56,0xff,0xfa,0x01,0x8d,0x01,0x6f, -0xff,0xfa,0x01,0x8d,0x01,0x71,0xff,0xfa,0x01,0x8d,0x01,0x8a,0xff,0xfa,0x01,0x8e,0x00,0x0f,0xff,0x8b,0x01,0x8e,0x00,0x11,0xff,0x7f,0x01,0x8e,0x00,0x24,0xff,0xb6,0x01,0x8e,0x00,0x37,0x00,0x27,0x01,0x8e,0x00,0x44,0xff,0xb4,0x01,0x8e,0x00,0x46,0xff,0xcf,0x01,0x8e,0x00,0x47,0xff,0xcf,0x01,0x8e,0x00,0x48,0xff,0xcf,0x01,0x8e, -0x00,0x4a,0xff,0xcf,0x01,0x8e,0x00,0x52,0xff,0xcf,0x01,0x8e,0x00,0x54,0xff,0xcf,0x01,0x8e,0x00,0x62,0xff,0xb6,0x01,0x8e,0x00,0x63,0xff,0xb6,0x01,0x8e,0x00,0x69,0xff,0xb4,0x01,0x8e,0x00,0x6a,0xff,0xb4,0x01,0x8e,0x00,0x6b,0xff,0xb4,0x01,0x8e,0x00,0x6c,0xff,0xb4,0x01,0x8e,0x00,0x6d,0xff,0xb4,0x01,0x8e,0x00,0x6e,0xff,0xb4, -0x01,0x8e,0x00,0x6f,0xff,0xcf,0x01,0x8e,0x00,0x70,0xff,0xcf,0x01,0x8e,0x00,0x71,0xff,0xcf,0x01,0x8e,0x00,0x72,0xff,0xcf,0x01,0x8e,0x00,0x73,0xff,0xcf,0x01,0x8e,0x00,0x76,0x00,0x31,0x01,0x8e,0x00,0x77,0x00,0x64,0x01,0x8e,0x00,0x79,0xff,0xcf,0x01,0x8e,0x00,0x7a,0xff,0xcf,0x01,0x8e,0x00,0x7b,0xff,0xcf,0x01,0x8e,0x00,0x7c, -0xff,0xcf,0x01,0x8e,0x00,0x7d,0xff,0xcf,0x01,0x8e,0x00,0x91,0xff,0x9a,0x01,0x8e,0x00,0xa0,0xff,0xb4,0x01,0x8e,0x00,0xa2,0xff,0xa4,0x01,0x8e,0x00,0xaa,0xff,0xcf,0x01,0x8e,0x00,0xab,0x00,0x27,0x01,0x8e,0x00,0xac,0xff,0x7f,0x01,0x8e,0x00,0xad,0xff,0xb6,0x01,0x8e,0x00,0xae,0xff,0xb6,0x01,0x8e,0x00,0xb1,0xff,0xcf,0x01,0x8e, -0x00,0xbe,0xff,0xcf,0x01,0x8e,0x00,0xbf,0x00,0x27,0x01,0x8e,0x00,0xc4,0xff,0x7f,0x01,0x8e,0x00,0xc5,0xff,0x8b,0x01,0x8e,0x00,0xc7,0xff,0xb6,0x01,0x8e,0x00,0xc9,0xff,0xb6,0x01,0x8e,0x00,0xf8,0xff,0xcf,0x01,0x8e,0x00,0xfd,0xff,0xcf,0x01,0x8e,0x00,0xff,0xff,0xcf,0x01,0x8e,0x01,0x00,0xff,0xcf,0x01,0x8e,0x01,0x03,0xff,0xb6, -0x01,0x8e,0x01,0x04,0xff,0xb4,0x01,0x8e,0x01,0x05,0xff,0xb6,0x01,0x8e,0x01,0x06,0xff,0xb4,0x01,0x8e,0x01,0x08,0xff,0xcf,0x01,0x8e,0x01,0x0b,0xff,0xcf,0x01,0x8e,0x01,0x0d,0xff,0xcf,0x01,0x8e,0x01,0x19,0xff,0xcf,0x01,0x8e,0x01,0x20,0x00,0x27,0x01,0x8e,0x01,0x22,0x00,0x27,0x01,0x8e,0x01,0x45,0xff,0xb6,0x01,0x8e,0x01,0x46, -0xff,0xb4,0x01,0x8e,0x01,0x48,0xff,0xcf,0x01,0x8e,0x01,0x4c,0xff,0xcf,0x01,0x8e,0x01,0x4e,0xff,0xcf,0x01,0x8e,0x01,0x50,0xff,0xcf,0x01,0x8e,0x01,0x52,0xff,0xcf,0x01,0x8e,0x01,0x54,0xff,0xcf,0x01,0x8e,0x01,0x56,0xff,0xcf,0x01,0x8e,0x01,0x5c,0x00,0x64,0x01,0x8e,0x01,0x5e,0x00,0x64,0x01,0x8e,0x01,0x60,0x00,0x64,0x01,0x8e, -0x01,0x6f,0xff,0xcf,0x01,0x8e,0x01,0x71,0xff,0xcf,0x01,0x8e,0x01,0x76,0x00,0x27,0x01,0x8e,0x01,0x85,0xff,0xb6,0x01,0x8e,0x01,0x86,0xff,0xb4,0x01,0x8e,0x01,0x87,0xff,0xb6,0x01,0x8e,0x01,0x88,0xff,0xb4,0x01,0x8e,0x01,0x8a,0xff,0xcf,0x01,0x8f,0x00,0x0f,0xff,0xa6,0x01,0x8f,0x00,0x11,0xff,0x9a,0x01,0x8f,0x00,0x46,0xff,0xfa, -0x01,0x8f,0x00,0x47,0xff,0xf6,0x01,0x8f,0x00,0x48,0xff,0xf6,0x01,0x8f,0x00,0x4a,0xff,0xfa,0x01,0x8f,0x00,0x52,0xff,0xfa,0x01,0x8f,0x00,0x54,0xff,0xf6,0x01,0x8f,0x00,0x6f,0xff,0xfa,0x01,0x8f,0x00,0x70,0xff,0xf6,0x01,0x8f,0x00,0x71,0xff,0xf6,0x01,0x8f,0x00,0x72,0xff,0xf6,0x01,0x8f,0x00,0x73,0xff,0xf6,0x01,0x8f,0x00,0x79, -0xff,0xfa,0x01,0x8f,0x00,0x7a,0xff,0xfa,0x01,0x8f,0x00,0x7b,0xff,0xfa,0x01,0x8f,0x00,0x7c,0xff,0xfa,0x01,0x8f,0x00,0x7d,0xff,0xfa,0x01,0x8f,0x00,0xac,0xff,0x9a,0x01,0x8f,0x00,0xb1,0xff,0xfa,0x01,0x8f,0x00,0xc4,0xff,0xb4,0x01,0x8f,0x00,0xc5,0xff,0xb4,0x01,0x8f,0x00,0xf8,0xff,0xfa,0x01,0x8f,0x00,0xfd,0xff,0xfa,0x01,0x8f, -0x00,0xff,0xff,0xfa,0x01,0x8f,0x01,0x00,0xff,0xf6,0x01,0x8f,0x01,0x08,0xff,0xf6,0x01,0x8f,0x01,0x0b,0xff,0xf6,0x01,0x8f,0x01,0x0d,0xff,0xf6,0x01,0x8f,0x01,0x19,0xff,0xfa,0x01,0x8f,0x01,0x48,0xff,0xfa,0x01,0x8f,0x01,0x4c,0xff,0xf6,0x01,0x8f,0x01,0x4e,0xff,0xf6,0x01,0x8f,0x01,0x50,0xff,0xf6,0x01,0x8f,0x01,0x52,0xff,0xfa, -0x01,0x8f,0x01,0x54,0xff,0xfa,0x01,0x8f,0x01,0x56,0xff,0xfa,0x01,0x8f,0x01,0x6f,0xff,0xfa,0x01,0x8f,0x01,0x71,0xff,0xfa,0x01,0x8f,0x01,0x8a,0xff,0xfa,0x01,0x90,0x00,0x0f,0xff,0x8b,0x01,0x90,0x00,0x11,0xff,0x7f,0x01,0x90,0x00,0x24,0xff,0xb6,0x01,0x90,0x00,0x37,0x00,0x27,0x01,0x90,0x00,0x44,0xff,0xb4,0x01,0x90,0x00,0x46, -0xff,0xcf,0x01,0x90,0x00,0x47,0xff,0xcf,0x01,0x90,0x00,0x48,0xff,0xcf,0x01,0x90,0x00,0x4a,0xff,0xcf,0x01,0x90,0x00,0x52,0xff,0xcf,0x01,0x90,0x00,0x54,0xff,0xcf,0x01,0x90,0x00,0x62,0xff,0xb6,0x01,0x90,0x00,0x63,0xff,0xb6,0x01,0x90,0x00,0x69,0xff,0xb4,0x01,0x90,0x00,0x6a,0xff,0xb4,0x01,0x90,0x00,0x6b,0xff,0xb4,0x01,0x90, -0x00,0x6c,0xff,0xb4,0x01,0x90,0x00,0x6d,0xff,0xb4,0x01,0x90,0x00,0x6e,0xff,0xb4,0x01,0x90,0x00,0x6f,0xff,0xcf,0x01,0x90,0x00,0x70,0xff,0xcf,0x01,0x90,0x00,0x71,0xff,0xcf,0x01,0x90,0x00,0x72,0xff,0xcf,0x01,0x90,0x00,0x73,0xff,0xcf,0x01,0x90,0x00,0x76,0x00,0x31,0x01,0x90,0x00,0x77,0x00,0x64,0x01,0x90,0x00,0x79,0xff,0xcf, -0x01,0x90,0x00,0x7a,0xff,0xcf,0x01,0x90,0x00,0x7b,0xff,0xcf,0x01,0x90,0x00,0x7c,0xff,0xcf,0x01,0x90,0x00,0x7d,0xff,0xcf,0x01,0x90,0x00,0x91,0xff,0x9a,0x01,0x90,0x00,0xa0,0xff,0xb4,0x01,0x90,0x00,0xa2,0xff,0xa4,0x01,0x90,0x00,0xaa,0xff,0xcf,0x01,0x90,0x00,0xab,0x00,0x27,0x01,0x90,0x00,0xac,0xff,0x7f,0x01,0x90,0x00,0xad, -0xff,0xb6,0x01,0x90,0x00,0xae,0xff,0xb6,0x01,0x90,0x00,0xb1,0xff,0xcf,0x01,0x90,0x00,0xbe,0xff,0xcf,0x01,0x90,0x00,0xbf,0x00,0x27,0x01,0x90,0x00,0xc4,0xff,0x7f,0x01,0x90,0x00,0xc5,0xff,0x8b,0x01,0x90,0x00,0xc7,0xff,0xb6,0x01,0x90,0x00,0xc9,0xff,0xb6,0x01,0x90,0x00,0xf8,0xff,0xcf,0x01,0x90,0x00,0xfd,0xff,0xcf,0x01,0x90, -0x00,0xff,0xff,0xcf,0x01,0x90,0x01,0x00,0xff,0xcf,0x01,0x90,0x01,0x03,0xff,0xb6,0x01,0x90,0x01,0x04,0xff,0xb4,0x01,0x90,0x01,0x05,0xff,0xb6,0x01,0x90,0x01,0x06,0xff,0xb4,0x01,0x90,0x01,0x08,0xff,0xcf,0x01,0x90,0x01,0x0b,0xff,0xcf,0x01,0x90,0x01,0x0d,0xff,0xcf,0x01,0x90,0x01,0x19,0xff,0xcf,0x01,0x90,0x01,0x20,0x00,0x27, -0x01,0x90,0x01,0x22,0x00,0x27,0x01,0x90,0x01,0x45,0xff,0xb6,0x01,0x90,0x01,0x46,0xff,0xb4,0x01,0x90,0x01,0x48,0xff,0xcf,0x01,0x90,0x01,0x4c,0xff,0xcf,0x01,0x90,0x01,0x4e,0xff,0xcf,0x01,0x90,0x01,0x50,0xff,0xcf,0x01,0x90,0x01,0x52,0xff,0xcf,0x01,0x90,0x01,0x54,0xff,0xcf,0x01,0x90,0x01,0x56,0xff,0xcf,0x01,0x90,0x01,0x5c, -0x00,0x64,0x01,0x90,0x01,0x5e,0x00,0x64,0x01,0x90,0x01,0x60,0x00,0x64,0x01,0x90,0x01,0x6f,0xff,0xcf,0x01,0x90,0x01,0x71,0xff,0xcf,0x01,0x90,0x01,0x76,0x00,0x27,0x01,0x90,0x01,0x85,0xff,0xb6,0x01,0x90,0x01,0x86,0xff,0xb4,0x01,0x90,0x01,0x87,0xff,0xb6,0x01,0x90,0x01,0x88,0xff,0xb4,0x01,0x90,0x01,0x8a,0xff,0xcf,0x01,0x91, -0x00,0x0f,0xff,0xa6,0x01,0x91,0x00,0x11,0xff,0x9a,0x01,0x91,0x00,0x46,0xff,0xfa,0x01,0x91,0x00,0x47,0xff,0xf6,0x01,0x91,0x00,0x48,0xff,0xf6,0x01,0x91,0x00,0x4a,0xff,0xfa,0x01,0x91,0x00,0x52,0xff,0xfa,0x01,0x91,0x00,0x54,0xff,0xf6,0x01,0x91,0x00,0x6f,0xff,0xfa,0x01,0x91,0x00,0x70,0xff,0xf6,0x01,0x91,0x00,0x71,0xff,0xf6, -0x01,0x91,0x00,0x72,0xff,0xf6,0x01,0x91,0x00,0x73,0xff,0xf6,0x01,0x91,0x00,0x79,0xff,0xfa,0x01,0x91,0x00,0x7a,0xff,0xfa,0x01,0x91,0x00,0x7b,0xff,0xfa,0x01,0x91,0x00,0x7c,0xff,0xfa,0x01,0x91,0x00,0x7d,0xff,0xfa,0x01,0x91,0x00,0xac,0xff,0x9a,0x01,0x91,0x00,0xb1,0xff,0xfa,0x01,0x91,0x00,0xc4,0xff,0xb4,0x01,0x91,0x00,0xc5, -0xff,0xb4,0x01,0x91,0x00,0xf8,0xff,0xfa,0x01,0x91,0x00,0xfd,0xff,0xfa,0x01,0x91,0x00,0xff,0xff,0xfa,0x01,0x91,0x01,0x00,0xff,0xf6,0x01,0x91,0x01,0x08,0xff,0xf6,0x01,0x91,0x01,0x0b,0xff,0xf6,0x01,0x91,0x01,0x0d,0xff,0xf6,0x01,0x91,0x01,0x19,0xff,0xfa,0x01,0x91,0x01,0x48,0xff,0xfa,0x01,0x91,0x01,0x4c,0xff,0xf6,0x01,0x91, -0x01,0x4e,0xff,0xf6,0x01,0x91,0x01,0x50,0xff,0xf6,0x01,0x91,0x01,0x52,0xff,0xfa,0x01,0x91,0x01,0x54,0xff,0xfa,0x01,0x91,0x01,0x56,0xff,0xfa,0x01,0x91,0x01,0x6f,0xff,0xfa,0x01,0x91,0x01,0x71,0xff,0xfa,0x01,0x91,0x01,0x8a,0xff,0xfa,0x01,0x92,0x00,0x0f,0xff,0x50,0x01,0x92,0x00,0x11,0xff,0x3d,0x01,0x92,0x00,0x24,0xff,0x62, -0x01,0x92,0x00,0x26,0xff,0xd3,0x01,0x92,0x00,0x2a,0xff,0xd3,0x01,0x92,0x00,0x2d,0xff,0xbe,0x01,0x92,0x00,0x32,0xff,0xd3,0x01,0x92,0x00,0x34,0xff,0xd3,0x01,0x92,0x00,0x36,0xff,0xe5,0x01,0x92,0x00,0x37,0x00,0x27,0x01,0x92,0x00,0x44,0xff,0x39,0x01,0x92,0x00,0x46,0xff,0x4c,0x01,0x92,0x00,0x47,0xff,0x4c,0x01,0x92,0x00,0x48, -0xff,0x4c,0x01,0x92,0x00,0x49,0xff,0xe5,0x01,0x92,0x00,0x4a,0xff,0x4c,0x01,0x92,0x00,0x50,0xff,0x73,0x01,0x92,0x00,0x51,0xff,0x73,0x01,0x92,0x00,0x52,0xff,0x4c,0x01,0x92,0x00,0x53,0xff,0x73,0x01,0x92,0x00,0x54,0xff,0x4c,0x01,0x92,0x00,0x55,0xff,0x73,0x01,0x92,0x00,0x56,0xff,0x7b,0x01,0x92,0x00,0x58,0xff,0x73,0x01,0x92, -0x00,0x62,0xff,0x62,0x01,0x92,0x00,0x63,0xff,0x62,0x01,0x92,0x00,0x64,0xff,0xcd,0x01,0x92,0x00,0x67,0xff,0xd3,0x01,0x92,0x00,0x69,0xff,0x39,0x01,0x92,0x00,0x6a,0xff,0x39,0x01,0x92,0x00,0x6b,0xff,0x39,0x01,0x92,0x00,0x6c,0xff,0x7f,0x01,0x92,0x00,0x6d,0xff,0x66,0x01,0x92,0x00,0x6e,0xff,0x39,0x01,0x92,0x00,0x6f,0xff,0x4c, -0x01,0x92,0x00,0x70,0xff,0x4c,0x01,0x92,0x00,0x71,0xff,0x4c,0x01,0x92,0x00,0x72,0xff,0x4c,0x01,0x92,0x00,0x73,0xff,0x4c,0x01,0x92,0x00,0x77,0x00,0x5a,0x01,0x92,0x00,0x78,0xff,0x73,0x01,0x92,0x00,0x79,0xff,0x4c,0x01,0x92,0x00,0x7a,0xff,0x4c,0x01,0x92,0x00,0x7b,0xff,0x4c,0x01,0x92,0x00,0x7c,0xff,0x4c,0x01,0x92,0x00,0x7d, -0xff,0x4c,0x01,0x92,0x00,0x7e,0xff,0x73,0x01,0x92,0x00,0x7f,0xff,0x73,0x01,0x92,0x00,0x80,0xff,0x73,0x01,0x92,0x00,0x81,0xff,0x73,0x01,0x92,0x00,0x91,0xff,0x3f,0x01,0x92,0x00,0x92,0xff,0xd3,0x01,0x92,0x00,0xa0,0xff,0x39,0x01,0x92,0x00,0xa2,0xff,0x1b,0x01,0x92,0x00,0xaa,0xff,0xcf,0x01,0x92,0x00,0xac,0xff,0x3d,0x01,0x92, -0x00,0xad,0xff,0x62,0x01,0x92,0x00,0xae,0xff,0x62,0x01,0x92,0x00,0xaf,0xff,0xd3,0x01,0x92,0x00,0xb0,0xff,0xd3,0x01,0x92,0x00,0xb1,0xff,0x4c,0x01,0x92,0x00,0xbe,0xff,0x9a,0x01,0x92,0x00,0xc4,0xff,0x08,0x01,0x92,0x00,0xc5,0xff,0x08,0x01,0x92,0x00,0xc7,0xff,0x62,0x01,0x92,0x00,0xc9,0xff,0x62,0x01,0x92,0x00,0xd0,0xff,0xd3, -0x01,0x92,0x00,0xd1,0xff,0xd3,0x01,0x92,0x00,0xd2,0xff,0xd3,0x01,0x92,0x00,0xe3,0xff,0xe5,0x01,0x92,0x00,0xe4,0xff,0x7b,0x01,0x92,0x00,0xf7,0xff,0xd3,0x01,0x92,0x00,0xf8,0xff,0x4c,0x01,0x92,0x00,0xfa,0xff,0xe5,0x01,0x92,0x00,0xfb,0xff,0x7b,0x01,0x92,0x00,0xfc,0xff,0xd3,0x01,0x92,0x00,0xfd,0xff,0x4c,0x01,0x92,0x00,0xfe, -0xff,0xd3,0x01,0x92,0x00,0xff,0xff,0x4c,0x01,0x92,0x01,0x00,0xff,0x4c,0x01,0x92,0x01,0x03,0xff,0x62,0x01,0x92,0x01,0x04,0xff,0x7f,0x01,0x92,0x01,0x05,0xff,0x62,0x01,0x92,0x01,0x06,0xff,0x39,0x01,0x92,0x01,0x08,0xff,0x4c,0x01,0x92,0x01,0x0b,0xff,0x4c,0x01,0x92,0x01,0x0d,0xff,0x4c,0x01,0x92,0x01,0x15,0xff,0x73,0x01,0x92, -0x01,0x17,0xff,0x73,0x01,0x92,0x01,0x18,0xff,0xd3,0x01,0x92,0x01,0x19,0xff,0x4c,0x01,0x92,0x01,0x1b,0xff,0x73,0x01,0x92,0x01,0x1d,0xff,0x73,0x01,0x92,0x01,0x1e,0xff,0xe5,0x01,0x92,0x01,0x1f,0xff,0x7b,0x01,0x92,0x01,0x20,0x00,0x27,0x01,0x92,0x01,0x22,0x00,0x27,0x01,0x92,0x01,0x25,0xff,0x73,0x01,0x92,0x01,0x27,0xff,0x73, -0x01,0x92,0x01,0x45,0xff,0x62,0x01,0x92,0x01,0x46,0xff,0x7f,0x01,0x92,0x01,0x47,0xff,0xd3,0x01,0x92,0x01,0x48,0xff,0x4c,0x01,0x92,0x01,0x4c,0xff,0x4c,0x01,0x92,0x01,0x4e,0xff,0x4c,0x01,0x92,0x01,0x50,0xff,0x4c,0x01,0x92,0x01,0x51,0xff,0xd3,0x01,0x92,0x01,0x52,0xff,0x4c,0x01,0x92,0x01,0x53,0xff,0xd3,0x01,0x92,0x01,0x54, -0xff,0x4c,0x01,0x92,0x01,0x55,0xff,0xd3,0x01,0x92,0x01,0x56,0xff,0x4c,0x01,0x92,0x01,0x5c,0x00,0x5a,0x01,0x92,0x01,0x5e,0x00,0x5a,0x01,0x92,0x01,0x60,0x00,0x5a,0x01,0x92,0x01,0x63,0xff,0xbe,0x01,0x92,0x01,0x6d,0xff,0x73,0x01,0x92,0x01,0x6e,0xff,0xd3,0x01,0x92,0x01,0x6f,0xff,0x4c,0x01,0x92,0x01,0x70,0xff,0xd3,0x01,0x92, -0x01,0x71,0xff,0x4c,0x01,0x92,0x01,0x73,0xff,0x73,0x01,0x92,0x01,0x74,0xff,0xe5,0x01,0x92,0x01,0x75,0xff,0x7b,0x01,0x92,0x01,0x76,0x00,0x27,0x01,0x92,0x01,0x79,0xff,0x73,0x01,0x92,0x01,0x7b,0xff,0x73,0x01,0x92,0x01,0x7d,0xff,0x73,0x01,0x92,0x01,0x7f,0xff,0x73,0x01,0x92,0x01,0x85,0xff,0x62,0x01,0x92,0x01,0x86,0xff,0x7f, -0x01,0x92,0x01,0x87,0xff,0x62,0x01,0x92,0x01,0x88,0xff,0x39,0x01,0x92,0x01,0x89,0xff,0xd3,0x01,0x92,0x01,0x8a,0xff,0x4c,0x01,0x92,0x02,0x3d,0xff,0xe5,0x01,0x92,0x02,0x3e,0xff,0x7b,0x01,0x93,0x00,0x05,0x00,0x1d,0x01,0x93,0x00,0x0a,0x00,0x1d,0x01,0x93,0x00,0x0f,0xff,0x9a,0x01,0x93,0x00,0x11,0xff,0x81,0x01,0x93,0x00,0x22, -0xff,0xb4,0x01,0x93,0x00,0x46,0xff,0xf6,0x01,0x93,0x00,0x47,0xff,0xf6,0x01,0x93,0x00,0x48,0xff,0xf6,0x01,0x93,0x00,0x49,0x00,0x04,0x01,0x93,0x00,0x4a,0xff,0xf6,0x01,0x93,0x00,0x52,0xff,0xf6,0x01,0x93,0x00,0x54,0xff,0xf6,0x01,0x93,0x00,0x57,0x00,0x06,0x01,0x93,0x00,0x6f,0xff,0xf6,0x01,0x93,0x00,0x70,0xff,0xf6,0x01,0x93, -0x00,0x71,0xff,0xf6,0x01,0x93,0x00,0x72,0xff,0xf6,0x01,0x93,0x00,0x73,0xff,0xf6,0x01,0x93,0x00,0x79,0xff,0xf6,0x01,0x93,0x00,0x7a,0xff,0xf6,0x01,0x93,0x00,0x7b,0xff,0xf6,0x01,0x93,0x00,0x7c,0xff,0xf6,0x01,0x93,0x00,0x7d,0xff,0xf6,0x01,0x93,0x00,0xac,0xff,0x81,0x01,0x93,0x00,0xb1,0xff,0xf6,0x01,0x93,0x00,0xbf,0x00,0x0c, -0x01,0x93,0x00,0xc4,0xff,0x8d,0x01,0x93,0x00,0xc5,0xff,0x8d,0x01,0x93,0x00,0xf8,0xff,0xf6,0x01,0x93,0x00,0xfd,0xff,0xf6,0x01,0x93,0x00,0xff,0xff,0xf6,0x01,0x93,0x01,0x00,0xff,0xf6,0x01,0x93,0x01,0x08,0xff,0xf6,0x01,0x93,0x01,0x0b,0xff,0xf6,0x01,0x93,0x01,0x0d,0xff,0xf6,0x01,0x93,0x01,0x19,0xff,0xf6,0x01,0x93,0x01,0x21, -0x00,0x06,0x01,0x93,0x01,0x23,0x00,0x06,0x01,0x93,0x01,0x48,0xff,0xf6,0x01,0x93,0x01,0x4c,0xff,0xf6,0x01,0x93,0x01,0x4e,0xff,0xf6,0x01,0x93,0x01,0x50,0xff,0xf6,0x01,0x93,0x01,0x52,0xff,0xf6,0x01,0x93,0x01,0x54,0xff,0xf6,0x01,0x93,0x01,0x56,0xff,0xf6,0x01,0x93,0x01,0x6f,0xff,0xf6,0x01,0x93,0x01,0x71,0xff,0xf6,0x01,0x93, -0x01,0x77,0x00,0x06,0x01,0x93,0x01,0x8a,0xff,0xf6,0x01,0xa1,0x00,0x0d,0xff,0x7f,0x01,0xa1,0x00,0x8d,0xff,0x98,0x01,0xa1,0x00,0xb4,0xff,0x66,0x01,0xa1,0x00,0xb5,0xff,0x3d,0x01,0xa1,0x00,0xb6,0xff,0x66,0x01,0xa1,0x00,0xb7,0xff,0x3d,0x01,0xa1,0x01,0x2d,0xff,0xe5,0x01,0xa1,0x01,0x2e,0xff,0xcf,0x01,0xa1,0x01,0x33,0xff,0x8f, -0x01,0xa1,0x01,0xb4,0xff,0xe5,0x01,0xa1,0x01,0xb7,0x00,0x3d,0x01,0xa1,0x01,0xb8,0xff,0x6d,0x01,0xa1,0x01,0xb9,0xff,0x64,0x01,0xa1,0x01,0xbb,0xff,0x79,0x01,0xa1,0x01,0xbe,0xff,0x64,0x01,0xa1,0x01,0xc5,0xff,0xaa,0x01,0xa1,0x01,0xc8,0xff,0xe7,0x01,0xa1,0x01,0xd3,0xff,0xcf,0x01,0xa2,0x00,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xa8, -0x00,0x0a,0x01,0xa2,0x01,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xb0,0x00,0x0c,0x01,0xa2,0x01,0xb8,0x00,0x33,0x01,0xa5,0x01,0xa9,0xff,0xe5,0x01,0xa5,0x01,0xb0,0xff,0xe5,0x01,0xa5,0x01,0xb8,0xff,0xa4,0x01,0xa5,0x01,0xb9,0xff,0xe7,0x01,0xa5,0x01,0xbe,0xff,0xe7,0x01,0xa5,0x01,0xcb,0xff,0xd7,0x01,0xa6,0x00,0x04,0xff,0xd7,0x01,0xa6, -0x00,0x11,0xff,0x71,0x01,0xa6,0x00,0x1e,0xff,0x4c,0x01,0xa6,0x00,0xa2,0xff,0xd7,0x01,0xa6,0x00,0xa9,0xff,0x71,0x01,0xa6,0x00,0xac,0xff,0x71,0x01,0xa6,0x01,0x2d,0xff,0xd3,0x01,0xa6,0x01,0x2e,0xff,0xd3,0x01,0xa6,0x01,0x2f,0xff,0x4c,0x01,0xa6,0x01,0x30,0xff,0xc3,0x01,0xa6,0x01,0x31,0xff,0x9c,0x01,0xa6,0x01,0x32,0xff,0x4c, -0x01,0xa6,0x01,0x33,0xff,0xcf,0x01,0xa6,0x01,0x34,0xff,0x4c,0x01,0xa6,0x01,0xa9,0xff,0x60,0x01,0xa6,0x01,0xb0,0xff,0x60,0x01,0xa6,0x01,0xb4,0xff,0xd3,0x01,0xa6,0x01,0xb8,0x00,0x29,0x01,0xa6,0x01,0xbf,0xff,0x4c,0x01,0xa6,0x01,0xc0,0xff,0x9c,0x01,0xa6,0x01,0xc3,0xff,0x9a,0x01,0xa6,0x01,0xc6,0xff,0xc1,0x01,0xa6,0x01,0xc7, -0xff,0x71,0x01,0xa6,0x01,0xc9,0xff,0xd7,0x01,0xa6,0x01,0xca,0xff,0x71,0x01,0xa6,0x01,0xcc,0xff,0x71,0x01,0xa6,0x01,0xce,0xff,0xb0,0x01,0xa6,0x01,0xcf,0xff,0x4c,0x01,0xa6,0x01,0xd0,0xff,0x71,0x01,0xa6,0x01,0xd1,0xff,0x4c,0x01,0xa6,0x01,0xd2,0xff,0x9a,0x01,0xa6,0x01,0xd3,0xff,0xdb,0x01,0xa6,0x01,0xd4,0xff,0x9a,0x01,0xa6, -0x01,0xd5,0xff,0x4c,0x01,0xa6,0x01,0xd7,0xff,0x9a,0x01,0xa6,0x01,0xd8,0xff,0x4c,0x01,0xa6,0x01,0xd9,0xff,0x9a,0x01,0xa6,0x01,0xda,0xff,0x4c,0x01,0xa6,0x02,0x37,0xff,0xcf,0x01,0xa8,0x01,0xcb,0x00,0x6a,0x01,0xa9,0x00,0x0d,0xff,0x7f,0x01,0xa9,0x00,0x0f,0x00,0x46,0x01,0xa9,0x00,0x1e,0x00,0x46,0x01,0xa9,0x00,0x8d,0xff,0x98, -0x01,0xa9,0x00,0xa4,0xff,0xf6,0x01,0xa9,0x00,0xb4,0xff,0x66,0x01,0xa9,0x00,0xb5,0xff,0x3d,0x01,0xa9,0x00,0xb6,0xff,0x66,0x01,0xa9,0x00,0xb7,0xff,0x3d,0x01,0xa9,0x01,0x2d,0xff,0xe5,0x01,0xa9,0x01,0x2e,0xff,0xcf,0x01,0xa9,0x01,0x33,0xff,0x8f,0x01,0xa9,0x01,0xb4,0xff,0xe5,0x01,0xa9,0x01,0xb7,0x00,0x3d,0x01,0xa9,0x01,0xb8, -0xff,0x6d,0x01,0xa9,0x01,0xb9,0xff,0x64,0x01,0xa9,0x01,0xbb,0xff,0x79,0x01,0xa9,0x01,0xbe,0xff,0x64,0x01,0xa9,0x01,0xc5,0xff,0xaa,0x01,0xa9,0x01,0xc8,0xff,0xe7,0x01,0xa9,0x01,0xcb,0x00,0x3d,0x01,0xa9,0x01,0xcd,0xff,0xcf,0x01,0xa9,0x01,0xd3,0xff,0xcf,0x01,0xa9,0x01,0xd4,0xff,0xf6,0x01,0xaa,0x00,0xc4,0xff,0xb0,0x01,0xaa, -0x00,0xc5,0xff,0xb0,0x01,0xaa,0x01,0xb8,0xff,0xa4,0x01,0xaa,0x01,0xb9,0xff,0xbe,0x01,0xaa,0x01,0xbb,0xff,0xe7,0x01,0xaa,0x01,0xbe,0xff,0xbe,0x01,0xaa,0x01,0xd3,0xff,0xe7,0x01,0xab,0x00,0xa9,0x00,0x0c,0x01,0xab,0x01,0xa8,0x00,0x0a,0x01,0xab,0x01,0xa9,0x00,0x0c,0x01,0xab,0x01,0xb0,0x00,0x0c,0x01,0xab,0x01,0xb8,0x00,0x33, -0x01,0xab,0x01,0xba,0x00,0x0a,0x01,0xac,0x00,0xab,0x00,0x29,0x01,0xac,0x00,0xbf,0x00,0x52,0x01,0xac,0x01,0xa8,0x00,0x3d,0x01,0xac,0x01,0xb8,0x00,0x29,0x01,0xac,0x01,0xcb,0x00,0x25,0x01,0xaf,0x00,0x0f,0x00,0x29,0x01,0xaf,0x00,0x1e,0x00,0x29,0x01,0xaf,0x00,0xc4,0x00,0x46,0x01,0xaf,0x00,0xc5,0x00,0x46,0x01,0xaf,0x01,0x2d, -0xff,0xa6,0x01,0xaf,0x01,0x2e,0xff,0x91,0x01,0xaf,0x01,0x2f,0xff,0xe7,0x01,0xaf,0x01,0x30,0xff,0xe7,0x01,0xaf,0x01,0x32,0xff,0xe7,0x01,0xaf,0x01,0x33,0xff,0x9a,0x01,0xaf,0x01,0x34,0xff,0xe7,0x01,0xaf,0x01,0xa8,0x00,0x4a,0x01,0xaf,0x01,0xac,0x00,0x29,0x01,0xaf,0x01,0xb4,0xff,0xa6,0x01,0xaf,0x01,0xb7,0x00,0x3f,0x01,0xaf, -0x01,0xba,0x00,0x25,0x01,0xaf,0x01,0xbb,0xff,0xdb,0x01,0xaf,0x01,0xbf,0xff,0xe7,0x01,0xaf,0x01,0xc2,0xff,0xe7,0x01,0xaf,0x01,0xc3,0xff,0xe7,0x01,0xaf,0x01,0xc5,0xff,0xd1,0x01,0xaf,0x01,0xc8,0xff,0xe7,0x01,0xaf,0x01,0xc9,0xff,0xe7,0x01,0xaf,0x01,0xca,0x00,0x29,0x01,0xaf,0x01,0xcb,0x00,0x3d,0x01,0xaf,0x01,0xcc,0x00,0x29, -0x01,0xaf,0x01,0xcf,0xff,0xe7,0x01,0xaf,0x01,0xd1,0xff,0xe7,0x01,0xaf,0x01,0xd2,0xff,0xe7,0x01,0xaf,0x01,0xd4,0xff,0xe7,0x01,0xaf,0x01,0xd5,0xff,0xe7,0x01,0xaf,0x01,0xd7,0xff,0xe7,0x01,0xaf,0x01,0xd9,0xff,0xe7,0x01,0xaf,0x01,0xda,0xff,0xe7,0x01,0xb0,0x00,0x0d,0xff,0x7f,0x01,0xb0,0x00,0x8d,0xff,0x98,0x01,0xb0,0x00,0xb4, -0xff,0x66,0x01,0xb0,0x00,0xb5,0xff,0x3d,0x01,0xb0,0x00,0xb6,0xff,0x66,0x01,0xb0,0x00,0xb7,0xff,0x3d,0x01,0xb0,0x01,0x2d,0xff,0xe5,0x01,0xb0,0x01,0x2e,0xff,0xcf,0x01,0xb0,0x01,0x33,0xff,0x8f,0x01,0xb0,0x01,0xb4,0xff,0xe5,0x01,0xb0,0x01,0xb7,0x00,0x3d,0x01,0xb0,0x01,0xb8,0xff,0x6d,0x01,0xb0,0x01,0xb9,0xff,0x64,0x01,0xb0, -0x01,0xbb,0xff,0x79,0x01,0xb0,0x01,0xbe,0xff,0x64,0x01,0xb0,0x01,0xc3,0xff,0xf6,0x01,0xb0,0x01,0xc5,0xff,0xaa,0x01,0xb0,0x01,0xc8,0xff,0xe7,0x01,0xb0,0x01,0xcb,0x00,0x3d,0x01,0xb0,0x01,0xcd,0xff,0xcf,0x01,0xb0,0x01,0xd3,0xff,0xcf,0x01,0xb0,0x01,0xd4,0xff,0xf6,0x01,0xb0,0x01,0xd9,0xff,0xf6,0x01,0xb3,0x01,0xa8,0x00,0x3d, -0x01,0xb3,0x01,0xb7,0x00,0x25,0x01,0xb3,0x01,0xcb,0x00,0x3d,0x01,0xb4,0x00,0x0f,0xff,0xa2,0x01,0xb4,0x00,0xa9,0xff,0xcf,0x01,0xb4,0x00,0xc4,0xff,0x4a,0x01,0xb4,0x00,0xc5,0xff,0x96,0x01,0xb4,0x01,0xa9,0xff,0xe5,0x01,0xb4,0x01,0xac,0xff,0xcd,0x01,0xb4,0x01,0xb0,0xff,0xe5,0x01,0xb4,0x01,0xb7,0xff,0xe3,0x01,0xb4,0x01,0xb8, -0xff,0xa4,0x01,0xb4,0x01,0xb9,0xff,0xe7,0x01,0xb4,0x01,0xba,0xff,0xdb,0x01,0xb4,0x01,0xbe,0xff,0xe7,0x01,0xb4,0x01,0xcb,0xff,0xd7,0x01,0xb6,0x00,0x0f,0xfe,0xba,0x01,0xb6,0x00,0x11,0xfe,0xba,0x01,0xb6,0x00,0xa9,0xff,0x58,0x01,0xb6,0x00,0xac,0xfe,0xba,0x01,0xb6,0x00,0xc4,0xfe,0xba,0x01,0xb6,0x00,0xc5,0xfe,0xae,0x01,0xb6, -0x01,0x2f,0xff,0xb2,0x01,0xb6,0x01,0x30,0xff,0xb2,0x01,0xb6,0x01,0x32,0xff,0xb2,0x01,0xb6,0x01,0x34,0xff,0xb2,0x01,0xb6,0x01,0xa9,0xff,0x60,0x01,0xb6,0x01,0xb0,0xff,0x60,0x01,0xb6,0x01,0xba,0xff,0xc3,0x01,0xb6,0x01,0xbf,0xff,0xb2,0x01,0xb6,0x01,0xcb,0xff,0xc3,0x01,0xb6,0x01,0xcf,0xff,0xb2,0x01,0xb6,0x01,0xd0,0xff,0xa0, -0x01,0xb6,0x01,0xd1,0xff,0xc3,0x01,0xb6,0x01,0xd5,0xff,0xc3,0x01,0xb6,0x01,0xd8,0xff,0xb2,0x01,0xb7,0x00,0xa9,0x00,0x3d,0x01,0xb7,0x01,0x2d,0xff,0xe7,0x01,0xb7,0x01,0x2e,0xff,0xe7,0x01,0xb7,0x01,0x33,0xff,0xb6,0x01,0xb7,0x01,0xa9,0x00,0x3d,0x01,0xb7,0x01,0xb0,0x00,0x3d,0x01,0xb7,0x01,0xb3,0x00,0x25,0x01,0xb7,0x01,0xb4, -0xff,0xe7,0x01,0xb7,0x01,0xba,0x00,0x12,0x01,0xb7,0x01,0xcb,0x00,0x3d,0x01,0xb7,0x01,0xd3,0xff,0xdb,0x01,0xb8,0x00,0x0f,0xff,0x7d,0x01,0xb8,0x00,0x11,0xff,0x4c,0x01,0xb8,0x00,0x1d,0xff,0x7d,0x01,0xb8,0x00,0x1e,0xff,0xe9,0x01,0xb8,0x00,0x8d,0x00,0x52,0x01,0xb8,0x00,0xa9,0xff,0x6d,0x01,0xb8,0x00,0xaa,0xff,0x98,0x01,0xb8, -0x00,0xab,0xff,0xcd,0x01,0xb8,0x00,0xac,0xff,0x4c,0x01,0xb8,0x00,0xb5,0x00,0x29,0x01,0xb8,0x00,0xb7,0x00,0x29,0x01,0xb8,0x00,0xbe,0xff,0x98,0x01,0xb8,0x00,0xbf,0xff,0xcd,0x01,0xb8,0x00,0xc4,0xff,0x14,0x01,0xb8,0x00,0xc5,0xff,0x14,0x01,0xb8,0x01,0x2d,0xff,0xa4,0x01,0xb8,0x01,0x2e,0xff,0xa4,0x01,0xb8,0x01,0x2f,0xff,0x2b, -0x01,0xb8,0x01,0x30,0xff,0xb0,0x01,0xb8,0x01,0x31,0xff,0x2b,0x01,0xb8,0x01,0x32,0xff,0x2b,0x01,0xb8,0x01,0x33,0xff,0x8f,0x01,0xb8,0x01,0x34,0xff,0x2b,0x01,0xb8,0x01,0xa8,0x00,0x7b,0x01,0xb8,0x01,0xa9,0xff,0x66,0x01,0xb8,0x01,0xb0,0xff,0x66,0x01,0xb8,0x01,0xb4,0xff,0xa4,0x01,0xb8,0x01,0xb8,0x00,0x29,0x01,0xb8,0x01,0xb9, -0x00,0x1d,0x01,0xb8,0x01,0xba,0xff,0xf8,0x01,0xb8,0x01,0xbe,0x00,0x1d,0x01,0xb8,0x01,0xbf,0xff,0x2b,0x01,0xb8,0x01,0xc0,0xff,0x2b,0x01,0xb8,0x01,0xc1,0xff,0x4e,0x01,0xb8,0x01,0xc2,0xff,0x8f,0x01,0xb8,0x01,0xc3,0xff,0x4e,0x01,0xb8,0x01,0xc5,0xff,0xc1,0x01,0xb8,0x01,0xc6,0xff,0xc1,0x01,0xb8,0x01,0xc7,0xff,0x4e,0x01,0xb8, -0x01,0xc9,0xff,0x4e,0x01,0xb8,0x01,0xca,0xff,0x4e,0x01,0xb8,0x01,0xcc,0xff,0x4e,0x01,0xb8,0x01,0xce,0xff,0xb0,0x01,0xb8,0x01,0xcf,0xff,0x2b,0x01,0xb8,0x01,0xd0,0xff,0x4e,0x01,0xb8,0x01,0xd1,0xff,0x2b,0x01,0xb8,0x01,0xd2,0xff,0x4e,0x01,0xb8,0x01,0xd3,0xff,0x7f,0x01,0xb8,0x01,0xd4,0xff,0x4e,0x01,0xb8,0x01,0xd5,0xff,0x2b, -0x01,0xb8,0x01,0xd6,0x00,0x52,0x01,0xb8,0x01,0xd7,0xff,0x4e,0x01,0xb8,0x01,0xd8,0xff,0x2b,0x01,0xb8,0x01,0xd9,0xff,0x4e,0x01,0xb8,0x01,0xda,0xff,0x2b,0x01,0xb8,0x02,0x37,0xff,0x8f,0x01,0xb9,0x00,0x0f,0xff,0x50,0x01,0xb9,0x00,0x11,0xff,0x3d,0x01,0xb9,0x00,0x1e,0xff,0x4c,0x01,0xb9,0x00,0xa2,0xff,0x19,0x01,0xb9,0x00,0xa9, -0xff,0x71,0x01,0xb9,0x00,0xaa,0xff,0xcd,0x01,0xb9,0x00,0xac,0xff,0x3d,0x01,0xb9,0x00,0xbe,0xff,0x98,0x01,0xb9,0x00,0xc4,0xff,0x06,0x01,0xb9,0x00,0xc5,0xff,0x06,0x01,0xb9,0x01,0x2d,0xff,0xd3,0x01,0xb9,0x01,0x2e,0xff,0xd3,0x01,0xb9,0x01,0x2f,0xff,0x4c,0x01,0xb9,0x01,0x30,0xff,0xc3,0x01,0xb9,0x01,0x31,0xff,0x9c,0x01,0xb9, -0x01,0x32,0xff,0x4c,0x01,0xb9,0x01,0x33,0xff,0xcf,0x01,0xb9,0x01,0x34,0xff,0x4c,0x01,0xb9,0x01,0xa8,0x00,0x5c,0x01,0xb9,0x01,0xa9,0xff,0x60,0x01,0xb9,0x01,0xb0,0xff,0x60,0x01,0xb9,0x01,0xb4,0xff,0xd3,0x01,0xb9,0x01,0xb8,0x00,0x29,0x01,0xb9,0x01,0xbf,0xff,0x4c,0x01,0xb9,0x01,0xc0,0xff,0x9c,0x01,0xb9,0x01,0xc2,0xff,0x9a, -0x01,0xb9,0x01,0xc3,0xff,0x9a,0x01,0xb9,0x01,0xc6,0xff,0xc1,0x01,0xb9,0x01,0xc7,0xff,0x71,0x01,0xb9,0x01,0xc9,0xff,0x9a,0x01,0xb9,0x01,0xca,0xff,0x71,0x01,0xb9,0x01,0xcc,0xff,0x71,0x01,0xb9,0x01,0xce,0xff,0xb0,0x01,0xb9,0x01,0xcf,0xff,0x4c,0x01,0xb9,0x01,0xd0,0xff,0x71,0x01,0xb9,0x01,0xd1,0xff,0x4c,0x01,0xb9,0x01,0xd2, -0xff,0x9a,0x01,0xb9,0x01,0xd3,0xff,0xdb,0x01,0xb9,0x01,0xd4,0xff,0x9a,0x01,0xb9,0x01,0xd5,0xff,0x4c,0x01,0xb9,0x01,0xd6,0x00,0x29,0x01,0xb9,0x01,0xd7,0xff,0x9a,0x01,0xb9,0x01,0xd8,0xff,0x4c,0x01,0xb9,0x01,0xd9,0xff,0x9a,0x01,0xb9,0x01,0xda,0xff,0x4c,0x01,0xb9,0x02,0x37,0xff,0xcf,0x01,0xba,0x00,0x0f,0x00,0x46,0x01,0xba, -0x00,0x10,0xff,0xe7,0x01,0xba,0x00,0x11,0x00,0x39,0x01,0xba,0x00,0x1e,0x00,0x52,0x01,0xba,0x00,0xa9,0x00,0x3d,0x01,0xba,0x00,0xac,0x00,0x39,0x01,0xba,0x00,0xc4,0x00,0x46,0x01,0xba,0x00,0xc5,0x00,0x52,0x01,0xba,0x01,0x2d,0xff,0xe7,0x01,0xba,0x01,0x2e,0xff,0xe7,0x01,0xba,0x01,0x33,0xff,0xc3,0x01,0xba,0x01,0xa8,0x00,0x52, -0x01,0xba,0x01,0xb4,0xff,0xe7,0x01,0xba,0x01,0xb7,0x00,0x12,0x01,0xba,0x01,0xb8,0x00,0x23,0x01,0xba,0x01,0xc2,0xff,0xe7,0x01,0xba,0x01,0xc3,0xff,0xe7,0x01,0xba,0x01,0xc9,0xff,0xe7,0x01,0xba,0x01,0xd2,0xff,0xe7,0x01,0xba,0x01,0xd4,0xff,0xe7,0x01,0xba,0x01,0xd6,0x00,0x0a,0x01,0xba,0x01,0xd7,0xff,0xe7,0x01,0xba,0x01,0xd9, -0xff,0xe7,0x01,0xbb,0x00,0xa9,0xff,0x71,0x01,0xbb,0x01,0x2f,0xff,0xe7,0x01,0xbb,0x01,0x30,0xff,0xe7,0x01,0xbb,0x01,0x32,0xff,0xe7,0x01,0xbb,0x01,0x34,0xff,0xe7,0x01,0xbb,0x01,0xa9,0xff,0x6d,0x01,0xbb,0x01,0xb0,0xff,0x6d,0x01,0xbb,0x01,0xbf,0xff,0xe7,0x01,0xbb,0x01,0xcf,0xff,0xe7,0x01,0xbb,0x01,0xd1,0xff,0xe7,0x01,0xbb, -0x01,0xd5,0xff,0xe7,0x01,0xbb,0x01,0xd8,0xff,0xe7,0x01,0xbb,0x01,0xda,0xff,0xe7,0x01,0xbc,0x00,0xa9,0x00,0x12,0x01,0xbe,0x00,0x04,0xff,0xd7,0x01,0xbe,0x00,0x11,0xff,0x71,0x01,0xbe,0x00,0x1e,0xff,0x4c,0x01,0xbe,0x00,0xa2,0xff,0xd7,0x01,0xbe,0x00,0xa9,0xff,0x71,0x01,0xbe,0x00,0xac,0xff,0x71,0x01,0xbe,0x01,0x2d,0xff,0xd3, -0x01,0xbe,0x01,0x2e,0xff,0xd3,0x01,0xbe,0x01,0x2f,0xff,0x4c,0x01,0xbe,0x01,0x30,0xff,0xc3,0x01,0xbe,0x01,0x31,0xff,0x9c,0x01,0xbe,0x01,0x32,0xff,0x4c,0x01,0xbe,0x01,0x33,0xff,0xcf,0x01,0xbe,0x01,0x34,0xff,0x4c,0x01,0xbe,0x01,0xa9,0xff,0x60,0x01,0xbe,0x01,0xb0,0xff,0x60,0x01,0xbe,0x01,0xb4,0xff,0xd3,0x01,0xbe,0x01,0xb8, -0x00,0x29,0x01,0xbe,0x01,0xbf,0xff,0x4c,0x01,0xbe,0x01,0xc0,0xff,0x9c,0x01,0xbe,0x01,0xc3,0xff,0x9a,0x01,0xbe,0x01,0xc6,0xff,0xc1,0x01,0xbe,0x01,0xc7,0xff,0x71,0x01,0xbe,0x01,0xc9,0xff,0xd7,0x01,0xbe,0x01,0xca,0xff,0x71,0x01,0xbe,0x01,0xcc,0xff,0x71,0x01,0xbe,0x01,0xce,0xff,0xb0,0x01,0xbe,0x01,0xcf,0xff,0x4c,0x01,0xbe, -0x01,0xd0,0xff,0x71,0x01,0xbe,0x01,0xd1,0xff,0x4c,0x01,0xbe,0x01,0xd2,0xff,0x9a,0x01,0xbe,0x01,0xd3,0xff,0xdb,0x01,0xbe,0x01,0xd4,0xff,0x9a,0x01,0xbe,0x01,0xd5,0xff,0x4c,0x01,0xbe,0x01,0xd7,0xff,0x9a,0x01,0xbe,0x01,0xd8,0xff,0x4c,0x01,0xbe,0x01,0xd9,0xff,0x9a,0x01,0xbe,0x01,0xda,0xff,0x4c,0x01,0xbe,0x02,0x37,0xff,0xcf, -0x01,0xbf,0x00,0x1e,0xff,0xee,0x01,0xbf,0x01,0x2f,0xff,0xee,0x01,0xbf,0x01,0x30,0xff,0xee,0x01,0xbf,0x01,0x32,0xff,0xee,0x01,0xbf,0x01,0x34,0xff,0xee,0x01,0xbf,0x01,0xcf,0xff,0xee,0x01,0xbf,0x01,0xd1,0xff,0xee,0x01,0xbf,0x01,0xd5,0xff,0xee,0x01,0xc1,0x00,0x05,0xff,0x98,0x01,0xc1,0x00,0x0a,0xff,0x98,0x01,0xc2,0x01,0xcb, -0x00,0x6a,0x01,0xc3,0x00,0x05,0xff,0x6f,0x01,0xc3,0x00,0x0a,0xff,0x6f,0x01,0xc3,0x01,0xc5,0xff,0xdb,0x01,0xc3,0x01,0xcb,0xff,0xe7,0x01,0xc3,0x01,0xd3,0xff,0xe7,0x01,0xc4,0x01,0x33,0xff,0xd1,0x01,0xc4,0x01,0xd3,0xff,0xc1,0x01,0xc5,0x01,0x30,0xff,0xe5,0x01,0xc5,0x01,0x33,0x00,0x19,0x01,0xc5,0x01,0xc8,0x00,0x19,0x01,0xc5, -0x01,0xd0,0xff,0xe7,0x01,0xc5,0x02,0x37,0x00,0x19,0x01,0xc6,0x01,0x2f,0xff,0xb6,0x01,0xc6,0x01,0x30,0xff,0xb6,0x01,0xc6,0x01,0x32,0xff,0xb6,0x01,0xc6,0x01,0x33,0xff,0x81,0x01,0xc6,0x01,0x34,0xff,0xb6,0x01,0xc6,0x01,0xa8,0x00,0x3d,0x01,0xc6,0x01,0xbf,0xff,0xb6,0x01,0xc6,0x01,0xc3,0xff,0xe7,0x01,0xc6,0x01,0xc5,0xff,0xc3, -0x01,0xc6,0x01,0xcd,0xff,0x8f,0x01,0xc6,0x01,0xcf,0xff,0xb6,0x01,0xc6,0x01,0xd1,0xff,0xb6,0x01,0xc6,0x01,0xd2,0xff,0xe7,0x01,0xc6,0x01,0xd4,0xff,0xc3,0x01,0xc6,0x01,0xd5,0xff,0xb6,0x01,0xc6,0x01,0xd7,0xff,0xe7,0x01,0xc6,0x01,0xd8,0xff,0xb6,0x01,0xc6,0x01,0xd9,0xff,0xe7,0x01,0xc7,0x00,0x05,0xff,0x98,0x01,0xc7,0x00,0x0a, -0xff,0x98,0x01,0xc9,0x01,0xcb,0x00,0x6a,0x01,0xca,0x00,0x0f,0x00,0x29,0x01,0xca,0x00,0x10,0xff,0xb8,0x01,0xca,0x00,0x11,0x00,0x29,0x01,0xca,0x00,0x1d,0x00,0x52,0x01,0xca,0x00,0x1e,0x00,0x52,0x01,0xca,0x00,0xac,0x00,0x29,0x01,0xca,0x01,0x2f,0xff,0xd7,0x01,0xca,0x01,0x30,0xff,0xd7,0x01,0xca,0x01,0x32,0xff,0xd7,0x01,0xca, -0x01,0x34,0xff,0xd7,0x01,0xca,0x01,0xbf,0xff,0xd7,0x01,0xca,0x01,0xcb,0x00,0x31,0x01,0xca,0x01,0xcf,0xff,0xd7,0x01,0xca,0x01,0xd1,0xff,0xd7,0x01,0xca,0x01,0xd5,0xff,0xd7,0x01,0xca,0x01,0xd8,0xff,0xd7,0x01,0xca,0x01,0xda,0xff,0xd7,0x01,0xcb,0x01,0x33,0xff,0xb0,0x01,0xcb,0x01,0xc3,0xff,0xdb,0x01,0xcb,0x01,0xcb,0x00,0x31, -0x01,0xcb,0x01,0xcd,0xff,0xd1,0x01,0xcb,0x01,0xd2,0xff,0xdb,0x01,0xcb,0x01,0xd3,0xff,0xcf,0x01,0xcb,0x01,0xd4,0xff,0xdb,0x01,0xcb,0x01,0xd7,0xff,0xdb,0x01,0xcb,0x01,0xd9,0xff,0xdb,0x01,0xcd,0x01,0x2f,0xff,0xd7,0x01,0xcd,0x01,0x30,0xff,0xd7,0x01,0xcd,0x01,0x32,0xff,0xd7,0x01,0xcd,0x01,0x34,0xff,0xd7,0x01,0xcd,0x01,0xbf, -0xff,0xd7,0x01,0xcd,0x01,0xcb,0xff,0xb6,0x01,0xcd,0x01,0xce,0xff,0xe7,0x01,0xcd,0x01,0xcf,0xff,0xd7,0x01,0xcd,0x01,0xd0,0xff,0xdb,0x01,0xcd,0x01,0xd1,0xff,0xec,0x01,0xcd,0x01,0xd5,0xff,0xd7,0x01,0xcd,0x01,0xd8,0xff,0xd7,0x01,0xcd,0x01,0xda,0xff,0xd7,0x01,0xce,0x01,0x2f,0xff,0xd7,0x01,0xce,0x01,0x30,0xff,0xd7,0x01,0xce, -0x01,0x32,0xff,0xd7,0x01,0xce,0x01,0x34,0xff,0xd7,0x01,0xce,0x01,0xbf,0xff,0xd7,0x01,0xce,0x01,0xcf,0xff,0xd7,0x01,0xce,0x01,0xd5,0xff,0xd7,0x01,0xce,0x01,0xda,0xff,0xd7,0x01,0xcf,0x00,0x05,0xff,0x6f,0x01,0xcf,0x00,0x0a,0xff,0x6f,0x01,0xcf,0x00,0xb4,0xff,0xb0,0x01,0xcf,0x00,0xb5,0xff,0x7b,0x01,0xcf,0x00,0xb6,0xff,0xbc, -0x01,0xcf,0x00,0xb7,0xff,0x7b,0x01,0xcf,0x01,0x33,0xff,0xdb,0x01,0xcf,0x01,0xc5,0xff,0xdb,0x01,0xcf,0x01,0xd3,0xff,0xc3,0x01,0xcf,0x02,0x37,0xff,0xdb,0x01,0xd0,0x00,0x05,0xff,0x6f,0x01,0xd0,0x00,0x0a,0xff,0x6f,0x01,0xd0,0x00,0xb4,0xff,0xb0,0x01,0xd0,0x00,0xb5,0xff,0x7b,0x01,0xd0,0x00,0xb6,0xff,0xbc,0x01,0xd0,0x00,0xb7, -0xff,0x7b,0x01,0xd0,0x01,0x33,0xff,0xdb,0x01,0xd0,0x01,0xc5,0xff,0xe7,0x01,0xd0,0x01,0xd3,0xff,0xc3,0x01,0xd0,0x02,0x37,0xff,0xdb,0x01,0xd1,0x01,0x2f,0xff,0xc3,0x01,0xd1,0x01,0x30,0xff,0xc3,0x01,0xd1,0x01,0x32,0xff,0xc3,0x01,0xd1,0x01,0x34,0xff,0xc3,0x01,0xd1,0x01,0xbf,0xff,0xc3,0x01,0xd1,0x01,0xcb,0x00,0x25,0x01,0xd1, -0x01,0xcf,0xff,0xc3,0x01,0xd1,0x01,0xd8,0xff,0xc3,0x01,0xd1,0x01,0xda,0xff,0xc3,0x01,0xd2,0x00,0x05,0xff,0x6f,0x01,0xd2,0x00,0x0a,0xff,0x6f,0x01,0xd2,0x00,0xb4,0xff,0xb0,0x01,0xd2,0x00,0xb5,0xff,0x7b,0x01,0xd2,0x00,0xb6,0xff,0xbc,0x01,0xd2,0x00,0xb7,0xff,0x7b,0x01,0xd2,0x01,0x33,0xff,0xdb,0x01,0xd2,0x01,0xc5,0xff,0xdb, -0x01,0xd2,0x01,0xcb,0xff,0xe7,0x01,0xd2,0x01,0xd3,0xff,0xe7,0x01,0xd2,0x02,0x37,0xff,0xdb,0x01,0xd3,0x00,0x10,0xff,0xe7,0x01,0xd3,0x01,0x2f,0xff,0xc3,0x01,0xd3,0x01,0x30,0xff,0x9c,0x01,0xd3,0x01,0x31,0xff,0xd7,0x01,0xd3,0x01,0x32,0xff,0xc3,0x01,0xd3,0x01,0x34,0xff,0xc3,0x01,0xd3,0x01,0xbf,0xff,0xc3,0x01,0xd3,0x01,0xc0, -0xff,0xd7,0x01,0xd3,0x01,0xc3,0xff,0xe7,0x01,0xd3,0x01,0xcb,0xff,0xe7,0x01,0xd3,0x01,0xcf,0xff,0xc3,0x01,0xd3,0x01,0xd1,0xff,0xbe,0x01,0xd3,0x01,0xd2,0xff,0xe7,0x01,0xd3,0x01,0xd3,0x00,0x19,0x01,0xd3,0x01,0xd5,0xff,0xc3,0x01,0xd3,0x01,0xd7,0xff,0xe7,0x01,0xd3,0x01,0xd8,0xff,0xc3,0x01,0xd3,0x01,0xd9,0xff,0xe7,0x01,0xd3, -0x01,0xda,0xff,0xc3,0x01,0xd4,0x01,0xcb,0xff,0xe7,0x01,0xd5,0x00,0x05,0xff,0x6f,0x01,0xd5,0x00,0x0a,0xff,0x6f,0x01,0xd5,0x00,0xb4,0xff,0xb0,0x01,0xd5,0x00,0xb5,0xff,0x7b,0x01,0xd5,0x00,0xb6,0xff,0xbc,0x01,0xd5,0x00,0xb7,0xff,0x7b,0x01,0xd5,0x01,0x33,0xff,0xdb,0x01,0xd5,0x01,0xc5,0xff,0xdb,0x01,0xd5,0x01,0xd3,0xff,0xe7, -0x01,0xd5,0x02,0x37,0xff,0xdb,0x01,0xd6,0x01,0xcb,0x00,0x6a,0x01,0xd7,0x00,0x05,0xff,0x6f,0x01,0xd7,0x00,0x0a,0xff,0x6f,0x01,0xd7,0x00,0xb4,0xff,0xb0,0x01,0xd7,0x00,0xb5,0xff,0x7b,0x01,0xd7,0x00,0xb6,0xff,0xbc,0x01,0xd7,0x00,0xb7,0xff,0x7b,0x01,0xd7,0x01,0xc5,0xff,0xdb,0x01,0xd7,0x01,0xcb,0xff,0xe7,0x01,0xd7,0x01,0xd3, -0xff,0xe7,0x01,0xd8,0x00,0x05,0xff,0x6f,0x01,0xd8,0x00,0x0a,0xff,0x6f,0x01,0xd8,0x00,0xb4,0xff,0xb0,0x01,0xd8,0x00,0xb5,0xff,0x7b,0x01,0xd8,0x00,0xb6,0xff,0xbc,0x01,0xd8,0x00,0xb7,0xff,0x7b,0x01,0xd8,0x01,0xc5,0xff,0xdb,0x01,0xd8,0x01,0xd3,0xff,0xc3,0x01,0xd9,0x00,0x05,0xff,0x6f,0x01,0xd9,0x00,0x0a,0xff,0x6f,0x01,0xd9, -0x00,0xb4,0xff,0xb0,0x01,0xd9,0x00,0xb5,0xff,0x7b,0x01,0xd9,0x00,0xb6,0xff,0xbc,0x01,0xd9,0x00,0xb7,0xff,0x7b,0x01,0xd9,0x01,0xc5,0xff,0xdb,0x01,0xd9,0x01,0xcb,0xff,0xe7,0x01,0xd9,0x01,0xd3,0xff,0xe7,0x01,0xda,0x00,0x05,0xff,0x6f,0x01,0xda,0x00,0x0a,0xff,0x6f,0x01,0xda,0x00,0xb4,0xff,0xb0,0x01,0xda,0x00,0xb5,0xff,0x7b, -0x01,0xda,0x00,0xb6,0xff,0xbc,0x01,0xda,0x00,0xb7,0xff,0x7b,0x01,0xda,0x01,0xc5,0xff,0xdb,0x01,0xda,0x01,0xd3,0xff,0xe7,0x01,0xdb,0x01,0xe1,0x00,0x46,0x01,0xdb,0x01,0xe7,0x00,0x0c,0x01,0xdb,0x01,0xeb,0x00,0x46,0x01,0xdb,0x01,0xed,0x00,0x14,0x01,0xdb,0x01,0xf2,0x00,0x46,0x01,0xdb,0x01,0xfc,0x00,0x0a,0x01,0xdc,0x01,0xdc, -0xff,0x79,0x01,0xdc,0x01,0xde,0xff,0xcf,0x01,0xdc,0x01,0xe1,0x00,0x29,0x01,0xdc,0x01,0xe3,0xff,0x79,0x01,0xdc,0x01,0xe5,0xff,0xee,0x01,0xdc,0x01,0xeb,0x00,0x29,0x01,0xdc,0x01,0xf2,0x00,0x29,0x01,0xdc,0x01,0xf5,0xff,0xcf,0x01,0xdc,0x01,0xf8,0xff,0xcf,0x01,0xdc,0x01,0xf9,0xff,0x79,0x01,0xdc,0x01,0xfa,0xff,0xee,0x01,0xdc, -0x01,0xfb,0xff,0xc3,0x01,0xdc,0x01,0xfe,0xff,0x60,0x01,0xdc,0x02,0x01,0xff,0x79,0x01,0xdc,0x02,0x19,0xff,0xcf,0x01,0xdc,0x02,0x1a,0xff,0xe7,0x01,0xdc,0x02,0x31,0xff,0xe7,0x01,0xdd,0x00,0x0f,0xff,0x83,0x01,0xdd,0x00,0x11,0xff,0x83,0x01,0xdd,0x00,0xaa,0xff,0x91,0x01,0xdd,0x00,0xab,0xff,0xd7,0x01,0xdd,0x00,0xac,0xff,0x83, -0x01,0xdd,0x01,0xdc,0x00,0x29,0x01,0xdd,0x01,0xde,0xff,0xa2,0x01,0xdd,0x01,0xe1,0xff,0xa2,0x01,0xdd,0x01,0xe3,0x00,0x29,0x01,0xdd,0x01,0xe5,0x00,0x1d,0x01,0xdd,0x01,0xe7,0xff,0x71,0x01,0xdd,0x01,0xeb,0xff,0xa2,0x01,0xdd,0x01,0xf2,0xff,0xa2,0x01,0xdd,0x01,0xf5,0xff,0xcf,0x01,0xdd,0x01,0xf8,0xff,0xcf,0x01,0xdd,0x01,0xf9, -0x00,0x29,0x01,0xdd,0x01,0xfa,0x00,0x1d,0x01,0xdd,0x01,0xfb,0xff,0xa2,0x01,0xdd,0x02,0x01,0x00,0x29,0x01,0xdd,0x02,0x06,0xff,0xe7,0x01,0xdd,0x02,0x07,0xff,0x27,0x01,0xdd,0x02,0x09,0xff,0x4e,0x01,0xdd,0x02,0x0a,0xff,0x4e,0x01,0xdd,0x02,0x0b,0xff,0x9e,0x01,0xdd,0x02,0x0c,0xff,0x2b,0x01,0xdd,0x02,0x0f,0xff,0x4e,0x01,0xdd, -0x02,0x10,0xff,0x4e,0x01,0xdd,0x02,0x11,0xff,0x4e,0x01,0xdd,0x02,0x12,0xff,0x9e,0x01,0xdd,0x02,0x13,0xff,0x4e,0x01,0xdd,0x02,0x14,0xff,0x4e,0x01,0xdd,0x02,0x15,0xff,0x2b,0x01,0xdd,0x02,0x16,0xff,0x4e,0x01,0xdd,0x02,0x17,0xff,0x4e,0x01,0xdd,0x02,0x18,0xff,0x2b,0x01,0xdd,0x02,0x19,0xff,0xc3,0x01,0xdd,0x02,0x1b,0xff,0x2b, -0x01,0xdd,0x02,0x1c,0xff,0x4c,0x01,0xdd,0x02,0x1d,0xff,0x4e,0x01,0xdd,0x02,0x1e,0xff,0x4e,0x01,0xdd,0x02,0x1f,0xff,0x4e,0x01,0xdd,0x02,0x20,0xff,0x4e,0x01,0xdd,0x02,0x21,0xff,0xc3,0x01,0xdd,0x02,0x22,0xff,0x4e,0x01,0xdd,0x02,0x23,0xff,0x4e,0x01,0xdd,0x02,0x24,0xff,0x60,0x01,0xdd,0x02,0x25,0xff,0x4e,0x01,0xdd,0x02,0x26, -0xff,0x54,0x01,0xdd,0x02,0x27,0xff,0x2b,0x01,0xdd,0x02,0x29,0xff,0x4e,0x01,0xdd,0x02,0x2a,0xff,0x2b,0x01,0xdd,0x02,0x2b,0xff,0x66,0x01,0xdd,0x02,0x2c,0x00,0x6f,0x01,0xdd,0x02,0x2d,0xff,0x9e,0x01,0xdd,0x02,0x2e,0xff,0x4e,0x01,0xdd,0x02,0x32,0xff,0x4e,0x01,0xdd,0x02,0x34,0xff,0x4e,0x01,0xde,0x00,0xaa,0xff,0xcd,0x01,0xde, -0x00,0xbe,0xff,0xcd,0x01,0xde,0x01,0xde,0xff,0xc9,0x01,0xde,0x01,0xf5,0xff,0xc9,0x01,0xde,0x01,0xf8,0xff,0xc9,0x01,0xde,0x01,0xfb,0xff,0xc9,0x01,0xde,0x02,0x19,0xff,0xdb,0x01,0xde,0x02,0x21,0xff,0xdb,0x01,0xde,0x02,0x2c,0x00,0x1f,0x01,0xdf,0x00,0xc4,0xff,0xb0,0x01,0xdf,0x00,0xc5,0xff,0xb0,0x01,0xdf,0x01,0xf5,0xff,0xe7, -0x01,0xdf,0x01,0xfb,0xff,0xdb,0x01,0xdf,0x01,0xfe,0xff,0xdb,0x01,0xdf,0x02,0x1a,0xff,0xcf,0x01,0xdf,0x02,0x31,0xff,0xcf,0x01,0xe1,0x01,0xdc,0xff,0x79,0x01,0xe1,0x01,0xde,0xff,0xe7,0x01,0xe1,0x01,0xe3,0xff,0x79,0x01,0xe1,0x01,0xf5,0xff,0xe7,0x01,0xe1,0x01,0xf8,0xff,0xe7,0x01,0xe1,0x01,0xf9,0xff,0x79,0x01,0xe1,0x01,0xfb, -0xff,0xe7,0x01,0xe1,0x01,0xfe,0xff,0x62,0x01,0xe1,0x02,0x01,0xff,0x79,0x01,0xe1,0x02,0x19,0xff,0xcf,0x01,0xe1,0x02,0x21,0xff,0xcf,0x01,0xe2,0x01,0xdc,0xff,0x79,0x01,0xe2,0x01,0xde,0xff,0xe7,0x01,0xe2,0x01,0xe3,0xff,0x79,0x01,0xe2,0x01,0xf5,0xff,0xe7,0x01,0xe2,0x01,0xf8,0xff,0xe7,0x01,0xe2,0x01,0xf9,0xff,0x79,0x01,0xe2, -0x01,0xfb,0xff,0xe7,0x01,0xe2,0x01,0xfe,0xff,0x62,0x01,0xe2,0x02,0x01,0xff,0x79,0x01,0xe2,0x02,0x19,0xff,0xcf,0x01,0xe2,0x02,0x21,0xff,0xcf,0x01,0xe3,0x01,0xdc,0xff,0x79,0x01,0xe3,0x01,0xe1,0x00,0x3d,0x01,0xe3,0x01,0xe3,0xff,0x58,0x01,0xe3,0x01,0xeb,0x00,0x3d,0x01,0xe3,0x01,0xf2,0x00,0x3d,0x01,0xe3,0x01,0xfb,0xff,0xe7, -0x01,0xe3,0x01,0xfe,0xff,0x4e,0x01,0xe3,0x02,0x01,0xff,0xae,0x01,0xe4,0x00,0x0f,0x00,0x29,0x01,0xe4,0x00,0x1e,0x00,0x29,0x01,0xe4,0x00,0xc4,0x00,0x46,0x01,0xe4,0x00,0xc5,0x00,0x46,0x01,0xe4,0x01,0xde,0xff,0xa4,0x01,0xe4,0x01,0xe1,0x00,0x5c,0x01,0xe4,0x01,0xeb,0x00,0x5c,0x01,0xe4,0x01,0xed,0x00,0x62,0x01,0xe4,0x01,0xf2, -0x00,0x5c,0x01,0xe4,0x01,0xf5,0xff,0xa4,0x01,0xe4,0x01,0xf8,0xff,0xa4,0x01,0xe4,0x01,0xfb,0xff,0xa4,0x01,0xe4,0x01,0xfc,0x00,0x25,0x01,0xe4,0x01,0xfe,0xff,0xc3,0x01,0xe4,0x02,0x08,0xff,0xe5,0x01,0xe4,0x02,0x0b,0x00,0x62,0x01,0xe4,0x02,0x0c,0xff,0xe5,0x01,0xe4,0x02,0x0d,0x00,0x3d,0x01,0xe4,0x02,0x12,0x00,0x62,0x01,0xe4, -0x02,0x15,0xff,0xe5,0x01,0xe4,0x02,0x18,0xff,0xe5,0x01,0xe4,0x02,0x1a,0xff,0xa2,0x01,0xe4,0x02,0x1b,0xff,0xe5,0x01,0xe4,0x02,0x1e,0xff,0xc3,0x01,0xe4,0x02,0x27,0xff,0xe5,0x01,0xe4,0x02,0x2a,0xff,0xe5,0x01,0xe4,0x02,0x2c,0x00,0x29,0x01,0xe4,0x02,0x2d,0x00,0x62,0x01,0xe4,0x02,0x31,0xff,0xa2,0x01,0xe5,0x00,0x0f,0xff,0x3b, -0x01,0xe5,0x00,0x11,0xff,0x2b,0x01,0xe5,0x00,0xac,0xff,0x2b,0x01,0xe5,0x01,0xdc,0x00,0x29,0x01,0xe5,0x01,0xe1,0xff,0x75,0x01,0xe5,0x01,0xe3,0x00,0x29,0x01,0xe5,0x01,0xe7,0xff,0x33,0x01,0xe5,0x01,0xeb,0xff,0x75,0x01,0xe5,0x01,0xed,0x00,0x25,0x01,0xe5,0x01,0xf2,0xff,0x75,0x01,0xe5,0x01,0xf9,0x00,0x29,0x01,0xe5,0x02,0x01, -0x00,0x29,0x01,0xe5,0x02,0x07,0xff,0x79,0x01,0xe5,0x02,0x09,0xff,0xb6,0x01,0xe5,0x02,0x0a,0xff,0xb6,0x01,0xe5,0x02,0x0b,0xfe,0xfe,0x01,0xe5,0x02,0x0c,0xff,0x91,0x01,0xe5,0x02,0x0f,0xff,0xb6,0x01,0xe5,0x02,0x10,0xff,0xb6,0x01,0xe5,0x02,0x11,0xff,0xb6,0x01,0xe5,0x02,0x12,0xfe,0xfe,0x01,0xe5,0x02,0x13,0xff,0xb6,0x01,0xe5, -0x02,0x14,0xff,0xb6,0x01,0xe5,0x02,0x15,0xff,0x91,0x01,0xe5,0x02,0x16,0xff,0xb6,0x01,0xe5,0x02,0x17,0xff,0xb6,0x01,0xe5,0x02,0x18,0xff,0x91,0x01,0xe5,0x02,0x1b,0xff,0x91,0x01,0xe5,0x02,0x1c,0xff,0xb6,0x01,0xe5,0x02,0x1d,0xff,0xb6,0x01,0xe5,0x02,0x1f,0xff,0xb6,0x01,0xe5,0x02,0x20,0xff,0xb6,0x01,0xe5,0x02,0x22,0xff,0xb6, -0x01,0xe5,0x02,0x23,0xff,0xb6,0x01,0xe5,0x02,0x25,0xff,0xb6,0x01,0xe5,0x02,0x26,0xff,0xaa,0x01,0xe5,0x02,0x27,0xff,0x91,0x01,0xe5,0x02,0x29,0xff,0xb6,0x01,0xe5,0x02,0x2a,0xff,0x91,0x01,0xe5,0x02,0x2b,0xff,0xc3,0x01,0xe5,0x02,0x2c,0x00,0x6d,0x01,0xe5,0x02,0x2d,0xfe,0xfe,0x01,0xe5,0x02,0x2e,0xff,0xb6,0x01,0xe5,0x02,0x30, -0xff,0xb6,0x01,0xe5,0x02,0x32,0xff,0xb6,0x01,0xe5,0x02,0x34,0xff,0xb6,0x01,0xe7,0x00,0x0d,0xff,0x7f,0x01,0xe7,0x00,0x0f,0x00,0x46,0x01,0xe7,0x00,0x1e,0x00,0x46,0x01,0xe7,0x00,0x8d,0xff,0x98,0x01,0xe7,0x00,0xb4,0xff,0x66,0x01,0xe7,0x00,0xb5,0xff,0x3d,0x01,0xe7,0x00,0xb6,0xff,0x66,0x01,0xe7,0x00,0xb7,0xff,0x3d,0x01,0xe7, -0x01,0xdc,0xff,0x6d,0x01,0xe7,0x01,0xde,0xff,0xe5,0x01,0xe7,0x01,0xe1,0x00,0x60,0x01,0xe7,0x01,0xe3,0xff,0x6d,0x01,0xe7,0x01,0xeb,0x00,0x60,0x01,0xe7,0x01,0xed,0x00,0x3d,0x01,0xe7,0x01,0xf2,0x00,0x60,0x01,0xe7,0x01,0xf5,0xff,0xe5,0x01,0xe7,0x01,0xf8,0xff,0xe5,0x01,0xe7,0x01,0xf9,0xff,0x6d,0x01,0xe7,0x01,0xfb,0xff,0xc3, -0x01,0xe7,0x01,0xfe,0xff,0x3d,0x01,0xe7,0x02,0x01,0xff,0x6d,0x01,0xe7,0x02,0x0b,0x00,0x56,0x01,0xe7,0x02,0x0d,0x00,0x29,0x01,0xe7,0x02,0x12,0x00,0x56,0x01,0xe7,0x02,0x1a,0xff,0xd9,0x01,0xe7,0x02,0x2d,0x00,0x56,0x01,0xe7,0x02,0x31,0xff,0xd9,0x01,0xe8,0x01,0xde,0xff,0xe7,0x01,0xe8,0x01,0xf5,0xff,0xe7,0x01,0xe8,0x01,0xf8, -0xff,0xe7,0x01,0xe8,0x01,0xfb,0xff,0xe7,0x01,0xe8,0x01,0xfe,0xff,0x62,0x01,0xe8,0x02,0x19,0xff,0xcf,0x01,0xe8,0x02,0x21,0xff,0xcf,0x01,0xe9,0x00,0xc4,0xff,0xb0,0x01,0xe9,0x00,0xc5,0xff,0xb0,0x01,0xe9,0x01,0xdc,0xff,0xa2,0x01,0xe9,0x01,0xe3,0xff,0xa2,0x01,0xe9,0x01,0xf9,0xff,0xa2,0x01,0xe9,0x01,0xfe,0xff,0xd5,0x01,0xe9, -0x02,0x01,0xff,0xa2,0x01,0xea,0x00,0x0f,0xff,0x83,0x01,0xea,0x00,0x11,0xff,0x83,0x01,0xea,0x00,0xaa,0xff,0x91,0x01,0xea,0x00,0xab,0xff,0xd7,0x01,0xea,0x00,0xac,0xff,0x83,0x01,0xea,0x01,0xdc,0x00,0x29,0x01,0xea,0x01,0xde,0xff,0xa2,0x01,0xea,0x01,0xe1,0xff,0x9e,0x01,0xea,0x01,0xe3,0x00,0x29,0x01,0xea,0x01,0xe5,0x00,0x1d, -0x01,0xea,0x01,0xe7,0xff,0x71,0x01,0xea,0x01,0xeb,0xff,0xa2,0x01,0xea,0x01,0xf2,0xff,0xa2,0x01,0xea,0x01,0xf5,0xff,0xcf,0x01,0xea,0x01,0xf8,0xff,0xcf,0x01,0xea,0x01,0xf9,0x00,0x29,0x01,0xea,0x01,0xfa,0x00,0x1d,0x01,0xea,0x01,0xfb,0xff,0xa2,0x01,0xea,0x02,0x01,0x00,0x29,0x01,0xea,0x02,0x06,0xff,0xe7,0x01,0xea,0x02,0x07, -0xff,0x27,0x01,0xea,0x02,0x09,0xff,0x4e,0x01,0xea,0x02,0x0a,0xff,0x4e,0x01,0xea,0x02,0x0b,0xff,0x9e,0x01,0xea,0x02,0x0c,0xff,0x2b,0x01,0xea,0x02,0x0f,0xff,0x4e,0x01,0xea,0x02,0x10,0xff,0x4e,0x01,0xea,0x02,0x11,0xff,0x4e,0x01,0xea,0x02,0x12,0xff,0x9e,0x01,0xea,0x02,0x13,0xff,0x4e,0x01,0xea,0x02,0x14,0xff,0x4e,0x01,0xea, -0x02,0x15,0xff,0x2b,0x01,0xea,0x02,0x16,0xff,0x4e,0x01,0xea,0x02,0x17,0xff,0x4e,0x01,0xea,0x02,0x18,0xff,0x2b,0x01,0xea,0x02,0x19,0xff,0xc3,0x01,0xea,0x02,0x1b,0xff,0x2b,0x01,0xea,0x02,0x1c,0xff,0x4c,0x01,0xea,0x02,0x1d,0xff,0x4e,0x01,0xea,0x02,0x1e,0xff,0x4e,0x01,0xea,0x02,0x1f,0xff,0x4e,0x01,0xea,0x02,0x20,0xff,0x4e, -0x01,0xea,0x02,0x21,0xff,0xc3,0x01,0xea,0x02,0x22,0xff,0x4e,0x01,0xea,0x02,0x23,0xff,0x4e,0x01,0xea,0x02,0x24,0xff,0x60,0x01,0xea,0x02,0x25,0xff,0x4e,0x01,0xea,0x02,0x26,0xff,0x54,0x01,0xea,0x02,0x27,0xff,0x2b,0x01,0xea,0x02,0x29,0xff,0x4e,0x01,0xea,0x02,0x2a,0xff,0x2b,0x01,0xea,0x02,0x2b,0xff,0x66,0x01,0xea,0x02,0x2c, -0x00,0x6f,0x01,0xea,0x02,0x2d,0xff,0x9e,0x01,0xea,0x02,0x2e,0xff,0x4e,0x01,0xea,0x02,0x32,0xff,0x4e,0x01,0xea,0x02,0x34,0xff,0x4e,0x01,0xec,0x01,0xe1,0x00,0x46,0x01,0xec,0x01,0xe7,0x00,0x0c,0x01,0xec,0x01,0xeb,0x00,0x46,0x01,0xec,0x01,0xed,0x00,0x14,0x01,0xec,0x01,0xf2,0x00,0x46,0x01,0xec,0x01,0xfc,0x00,0x0a,0x01,0xec, -0x02,0x2c,0x00,0x14,0x01,0xed,0x00,0x0f,0x00,0x52,0x01,0xed,0x00,0x1e,0x00,0x52,0x01,0xed,0x00,0xc4,0x00,0x5a,0x01,0xed,0x00,0xc5,0x00,0x5a,0x01,0xed,0x01,0xde,0xff,0xcd,0x01,0xed,0x01,0xe1,0x00,0x85,0x01,0xed,0x01,0xe7,0x00,0x3d,0x01,0xed,0x01,0xeb,0x00,0x85,0x01,0xed,0x01,0xed,0x00,0x66,0x01,0xed,0x01,0xf5,0xff,0xcd, -0x01,0xed,0x01,0xf8,0xff,0xcd,0x01,0xed,0x01,0xfb,0xff,0xcd,0x01,0xed,0x01,0xfc,0x00,0x25,0x01,0xed,0x01,0xfe,0xff,0xdb,0x01,0xed,0x02,0x06,0x00,0x3d,0x01,0xed,0x02,0x0b,0x00,0x7b,0x01,0xed,0x02,0x0d,0x00,0x3d,0x01,0xed,0x02,0x12,0x00,0x7b,0x01,0xed,0x02,0x1a,0xff,0xd1,0x01,0xed,0x02,0x1c,0x00,0x48,0x01,0xed,0x02,0x1e, -0xff,0xe7,0x01,0xed,0x02,0x2c,0x00,0x52,0x01,0xed,0x02,0x2d,0x00,0x7b,0x01,0xed,0x02,0x31,0xff,0xd1,0x01,0xee,0x01,0xdc,0xff,0xe1,0x01,0xee,0x01,0xde,0xff,0xdb,0x01,0xee,0x01,0xe3,0xff,0xe1,0x01,0xee,0x01,0xf5,0xff,0xdb,0x01,0xee,0x01,0xf8,0xff,0xdb,0x01,0xee,0x01,0xf9,0xff,0xe1,0x01,0xee,0x01,0xfb,0xff,0xdb,0x01,0xee, -0x01,0xfe,0xff,0xdd,0x01,0xee,0x02,0x01,0xff,0xe1,0x01,0xf1,0x00,0x0f,0x00,0x29,0x01,0xf1,0x00,0x1e,0x00,0x29,0x01,0xf1,0x00,0xc4,0x00,0x46,0x01,0xf1,0x00,0xc5,0x00,0x46,0x01,0xf1,0x01,0xde,0xff,0xa4,0x01,0xf1,0x01,0xe1,0x00,0x5c,0x01,0xf1,0x01,0xeb,0x00,0x5c,0x01,0xf1,0x01,0xed,0x00,0x62,0x01,0xf1,0x01,0xf2,0x00,0x5c, -0x01,0xf1,0x01,0xf5,0xff,0xa4,0x01,0xf1,0x01,0xf8,0xff,0xa4,0x01,0xf1,0x01,0xfb,0xff,0xa4,0x01,0xf1,0x01,0xfc,0x00,0x25,0x01,0xf1,0x01,0xfe,0xff,0xc3,0x01,0xf1,0x02,0x06,0x00,0x3d,0x01,0xf1,0x02,0x08,0xff,0xe5,0x01,0xf1,0x02,0x0b,0x00,0x62,0x01,0xf1,0x02,0x0c,0xff,0xe5,0x01,0xf1,0x02,0x0d,0x00,0x3d,0x01,0xf1,0x02,0x12, -0x00,0x62,0x01,0xf1,0x02,0x15,0xff,0xe5,0x01,0xf1,0x02,0x18,0xff,0xe5,0x01,0xf1,0x02,0x1a,0xff,0xa2,0x01,0xf1,0x02,0x1b,0xff,0xe5,0x01,0xf1,0x02,0x1e,0xff,0xc3,0x01,0xf1,0x02,0x27,0xff,0xe5,0x01,0xf1,0x02,0x2a,0xff,0xe5,0x01,0xf1,0x02,0x2c,0x00,0x29,0x01,0xf1,0x02,0x2d,0x00,0x62,0x01,0xf1,0x02,0x31,0xff,0xa2,0x01,0xf5, -0x00,0x0f,0xff,0xa2,0x01,0xf5,0x00,0x11,0xff,0xa2,0x01,0xf5,0x00,0xac,0xff,0xa2,0x01,0xf5,0x00,0xc4,0xff,0x4a,0x01,0xf5,0x00,0xc5,0xff,0x96,0x01,0xf5,0x01,0xdc,0xff,0xa2,0x01,0xf5,0x01,0xdf,0xff,0xdb,0x01,0xf5,0x01,0xe1,0xff,0xf6,0x01,0xf5,0x01,0xe3,0xff,0xa2,0x01,0xf5,0x01,0xe5,0xff,0xe7,0x01,0xf5,0x01,0xe7,0xff,0xe5, -0x01,0xf5,0x01,0xeb,0xff,0xf6,0x01,0xf5,0x01,0xed,0xff,0xcd,0x01,0xf5,0x01,0xf2,0xff,0xf6,0x01,0xf5,0x01,0xf9,0xff,0xa2,0x01,0xf5,0x01,0xfa,0xff,0xe7,0x01,0xf5,0x01,0xfc,0xff,0xdb,0x01,0xf5,0x02,0x01,0xff,0xa2,0x01,0xf7,0x00,0x0f,0xfe,0xba,0x01,0xf7,0x00,0x11,0xfe,0xba,0x01,0xf7,0x00,0xac,0xfe,0xba,0x01,0xf7,0x00,0xc4, -0xfe,0xba,0x01,0xf7,0x00,0xc5,0xfe,0xae,0x01,0xf7,0x01,0xde,0xff,0xf6,0x01,0xf7,0x01,0xe1,0xff,0x7f,0x01,0xf7,0x01,0xe5,0xff,0xe7,0x01,0xf7,0x01,0xe7,0xff,0x60,0x01,0xf7,0x01,0xeb,0xff,0x7f,0x01,0xf7,0x01,0xed,0xff,0xcf,0x01,0xf7,0x01,0xee,0xff,0xe7,0x01,0xf7,0x01,0xf2,0xff,0x7f,0x01,0xf7,0x01,0xf5,0xff,0xf6,0x01,0xf7, -0x01,0xf8,0xff,0xf6,0x01,0xf7,0x01,0xfa,0xff,0xe7,0x01,0xf7,0x01,0xfb,0xff,0xf6,0x01,0xf7,0x01,0xfc,0xff,0xc1,0x01,0xf7,0x02,0x07,0xff,0xbc,0x01,0xf7,0x02,0x0b,0xff,0x6d,0x01,0xf7,0x02,0x0c,0xff,0xb2,0x01,0xf7,0x02,0x12,0xff,0x6d,0x01,0xf7,0x02,0x15,0xff,0xb2,0x01,0xf7,0x02,0x18,0xff,0xb2,0x01,0xf7,0x02,0x1b,0xff,0xb2, -0x01,0xf7,0x02,0x27,0xff,0xb2,0x01,0xf7,0x02,0x2a,0xff,0xb2,0x01,0xf7,0x02,0x2d,0xff,0x6d,0x01,0xf8,0x00,0xaa,0xff,0xcd,0x01,0xf8,0x00,0xbe,0xff,0xcd,0x01,0xf8,0x01,0xde,0xff,0xc9,0x01,0xf8,0x01,0xed,0x00,0x31,0x01,0xf8,0x01,0xf5,0xff,0xc9,0x01,0xf8,0x01,0xf8,0xff,0xc9,0x01,0xf8,0x01,0xfb,0xff,0xc9,0x01,0xf8,0x02,0x19, -0xff,0xdb,0x01,0xf8,0x02,0x21,0xff,0xdb,0x01,0xf8,0x02,0x2c,0x00,0x1f,0x01,0xf9,0x00,0x0f,0xff,0x7d,0x01,0xf9,0x00,0x11,0xff,0x4c,0x01,0xf9,0x00,0x1d,0xff,0xe9,0x01,0xf9,0x00,0x1e,0xff,0xe9,0x01,0xf9,0x00,0x8d,0x00,0x52,0x01,0xf9,0x00,0xaa,0xff,0x98,0x01,0xf9,0x00,0xab,0xff,0xcd,0x01,0xf9,0x00,0xac,0xff,0x4c,0x01,0xf9, -0x00,0xb5,0x00,0x29,0x01,0xf9,0x00,0xb7,0x00,0x29,0x01,0xf9,0x00,0xbe,0xff,0x98,0x01,0xf9,0x00,0xbf,0xff,0xcd,0x01,0xf9,0x00,0xc4,0xff,0x14,0x01,0xf9,0x00,0xc5,0xff,0x14,0x01,0xf9,0x01,0xdc,0x00,0x29,0x01,0xf9,0x01,0xde,0xff,0xa2,0x01,0xf9,0x01,0xe1,0xff,0x8d,0x01,0xf9,0x01,0xe3,0x00,0x29,0x01,0xf9,0x01,0xe7,0xff,0x66, -0x01,0xf9,0x01,0xeb,0xff,0x8d,0x01,0xf9,0x01,0xf2,0xff,0x8d,0x01,0xf9,0x01,0xf5,0xff,0xa2,0x01,0xf9,0x01,0xf8,0xff,0xa2,0x01,0xf9,0x01,0xf9,0x00,0x29,0x01,0xf9,0x01,0xfb,0xff,0xa2,0x01,0xf9,0x01,0xfc,0xff,0xf8,0x01,0xf9,0x02,0x01,0x00,0x29,0x01,0xf9,0x02,0x06,0xff,0xe7,0x01,0xf9,0x02,0x07,0xff,0x27,0x01,0xf9,0x02,0x09, -0xff,0x4e,0x01,0xf9,0x02,0x0a,0xff,0x4e,0x01,0xf9,0x02,0x0b,0xff,0x9e,0x01,0xf9,0x02,0x0c,0xff,0x2b,0x01,0xf9,0x02,0x0d,0xff,0xa6,0x01,0xf9,0x02,0x0f,0xff,0x4e,0x01,0xf9,0x02,0x10,0xff,0x4e,0x01,0xf9,0x02,0x11,0xff,0x4e,0x01,0xf9,0x02,0x12,0xff,0x9e,0x01,0xf9,0x02,0x13,0xff,0x4e,0x01,0xf9,0x02,0x14,0xff,0x4e,0x01,0xf9, -0x02,0x15,0xff,0x2b,0x01,0xf9,0x02,0x16,0xff,0x4e,0x01,0xf9,0x02,0x17,0xff,0x4e,0x01,0xf9,0x02,0x18,0xff,0x2b,0x01,0xf9,0x02,0x19,0xff,0xc3,0x01,0xf9,0x02,0x1a,0xff,0x8d,0x01,0xf9,0x02,0x1b,0xff,0x2b,0x01,0xf9,0x02,0x1c,0xff,0x4c,0x01,0xf9,0x02,0x1d,0xff,0x4e,0x01,0xf9,0x02,0x1e,0xff,0x4e,0x01,0xf9,0x02,0x1f,0xff,0x4e, -0x01,0xf9,0x02,0x20,0xff,0x4e,0x01,0xf9,0x02,0x21,0xff,0xc3,0x01,0xf9,0x02,0x22,0xff,0x4e,0x01,0xf9,0x02,0x23,0xff,0x4e,0x01,0xf9,0x02,0x24,0xff,0x60,0x01,0xf9,0x02,0x25,0xff,0x4e,0x01,0xf9,0x02,0x26,0xff,0x54,0x01,0xf9,0x02,0x27,0xff,0x2b,0x01,0xf9,0x02,0x29,0xff,0x4e,0x01,0xf9,0x02,0x2a,0xff,0x2b,0x01,0xf9,0x02,0x2b, -0xff,0x66,0x01,0xf9,0x02,0x2c,0x00,0x6f,0x01,0xf9,0x02,0x2d,0xff,0x9e,0x01,0xf9,0x02,0x2e,0xff,0x4e,0x01,0xf9,0x02,0x30,0xff,0x4e,0x01,0xf9,0x02,0x31,0xff,0x8d,0x01,0xf9,0x02,0x32,0xff,0x4e,0x01,0xf9,0x02,0x34,0xff,0x4e,0x01,0xfa,0x00,0x0f,0xff,0x3b,0x01,0xfa,0x00,0x11,0xff,0x2b,0x01,0xfa,0x00,0xac,0xff,0x2b,0x01,0xfa, -0x01,0xdc,0x00,0x29,0x01,0xfa,0x01,0xe1,0xff,0x75,0x01,0xfa,0x01,0xe3,0x00,0x29,0x01,0xfa,0x01,0xe7,0xff,0x33,0x01,0xfa,0x01,0xeb,0xff,0x75,0x01,0xfa,0x01,0xed,0x00,0x25,0x01,0xfa,0x01,0xf2,0xff,0x75,0x01,0xfa,0x01,0xf8,0xff,0xdb,0x01,0xfa,0x01,0xf9,0x00,0x29,0x01,0xfa,0x02,0x01,0x00,0x29,0x01,0xfa,0x02,0x07,0xff,0x79, -0x01,0xfa,0x02,0x09,0xff,0xb6,0x01,0xfa,0x02,0x0a,0xff,0xb6,0x01,0xfa,0x02,0x0b,0xfe,0xfe,0x01,0xfa,0x02,0x0c,0xff,0x91,0x01,0xfa,0x02,0x0f,0xff,0xb6,0x01,0xfa,0x02,0x10,0xff,0xb6,0x01,0xfa,0x02,0x11,0xff,0xb6,0x01,0xfa,0x02,0x12,0xfe,0xfe,0x01,0xfa,0x02,0x13,0xff,0xb6,0x01,0xfa,0x02,0x14,0xff,0xb6,0x01,0xfa,0x02,0x15, -0xff,0x91,0x01,0xfa,0x02,0x16,0xff,0xb6,0x01,0xfa,0x02,0x17,0xff,0xb6,0x01,0xfa,0x02,0x18,0xff,0x91,0x01,0xfa,0x02,0x1b,0xff,0x91,0x01,0xfa,0x02,0x1c,0xff,0xb6,0x01,0xfa,0x02,0x1d,0xff,0xb6,0x01,0xfa,0x02,0x1f,0xff,0xb6,0x01,0xfa,0x02,0x20,0xff,0xb6,0x01,0xfa,0x02,0x22,0xff,0xb6,0x01,0xfa,0x02,0x23,0xff,0xb6,0x01,0xfa, -0x02,0x25,0xff,0xb6,0x01,0xfa,0x02,0x26,0xff,0xaa,0x01,0xfa,0x02,0x27,0xff,0x91,0x01,0xfa,0x02,0x29,0xff,0xb6,0x01,0xfa,0x02,0x2a,0xff,0x91,0x01,0xfa,0x02,0x2b,0xff,0xc3,0x01,0xfa,0x02,0x2c,0x00,0x6d,0x01,0xfa,0x02,0x2d,0xfe,0xfe,0x01,0xfa,0x02,0x2e,0xff,0xb6,0x01,0xfa,0x02,0x30,0xff,0xb6,0x01,0xfa,0x02,0x32,0xff,0xb6, -0x01,0xfa,0x02,0x34,0xff,0xb6,0x01,0xfb,0x00,0x0f,0xff,0xa2,0x01,0xfb,0x00,0x11,0xff,0xa2,0x01,0xfb,0x00,0xac,0xff,0xa2,0x01,0xfb,0x00,0xc4,0xff,0x4a,0x01,0xfb,0x00,0xc5,0xff,0x96,0x01,0xfb,0x01,0xdc,0xff,0xa2,0x01,0xfb,0x01,0xdf,0xff,0xdb,0x01,0xfb,0x01,0xe1,0xff,0xf6,0x01,0xfb,0x01,0xe3,0xff,0xa2,0x01,0xfb,0x01,0xe5, -0xff,0xe7,0x01,0xfb,0x01,0xe7,0xff,0xc3,0x01,0xfb,0x01,0xeb,0xff,0xf6,0x01,0xfb,0x01,0xed,0xff,0xcd,0x01,0xfb,0x01,0xee,0xff,0xcf,0x01,0xfb,0x01,0xf2,0xff,0xf6,0x01,0xfb,0x01,0xf9,0xff,0xa2,0x01,0xfb,0x01,0xfa,0xff,0xe7,0x01,0xfb,0x01,0xfc,0xff,0xdb,0x01,0xfb,0x02,0x01,0xff,0xa2,0x01,0xfb,0x02,0x07,0xff,0xe7,0x01,0xfb, -0x02,0x0b,0xff,0x91,0x01,0xfb,0x02,0x2d,0xff,0x91,0x01,0xfc,0x00,0x0f,0x00,0x46,0x01,0xfc,0x00,0x11,0x00,0x39,0x01,0xfc,0x00,0x1e,0x00,0x52,0x01,0xfc,0x00,0xac,0x00,0x39,0x01,0xfc,0x00,0xc4,0x00,0x46,0x01,0xfc,0x00,0xc5,0x00,0x52,0x01,0xfc,0x01,0xdc,0x00,0x23,0x01,0xfc,0x01,0xde,0xff,0xdb,0x01,0xfc,0x01,0xe1,0x00,0x62, -0x01,0xfc,0x01,0xe3,0x00,0x23,0x01,0xfc,0x01,0xeb,0x00,0x62,0x01,0xfc,0x01,0xed,0x00,0x25,0x01,0xfc,0x01,0xf2,0x00,0x62,0x01,0xfc,0x01,0xf5,0xff,0xe7,0x01,0xfc,0x01,0xf8,0xff,0xdb,0x01,0xfc,0x01,0xf9,0x00,0x23,0x01,0xfc,0x01,0xfb,0xff,0xdb,0x01,0xfc,0x02,0x01,0x00,0x23,0x01,0xfc,0x02,0x2c,0x00,0x52,0x01,0xfd,0x00,0x0f, -0x00,0x29,0x01,0xfd,0x00,0xc4,0x00,0x29,0x01,0xfd,0x00,0xc5,0x00,0x29,0x01,0xfd,0x01,0xe1,0x00,0x3d,0x01,0xfd,0x01,0xeb,0x00,0x3d,0x01,0xfd,0x01,0xf2,0x00,0x3d,0x01,0xfd,0x01,0xfe,0xff,0xdb,0x01,0xfd,0x02,0x0b,0x00,0x25,0x01,0xfd,0x02,0x12,0x00,0x25,0x01,0xfd,0x02,0x2d,0x00,0x25,0x02,0x00,0x00,0x0f,0x00,0x29,0x02,0x00, -0x00,0x1e,0x00,0x29,0x02,0x00,0x00,0xc4,0x00,0x29,0x02,0x00,0x00,0xc5,0x00,0x29,0x02,0x00,0x01,0xe1,0x00,0x3d,0x02,0x00,0x01,0xeb,0x00,0x3d,0x02,0x00,0x01,0xf2,0x00,0x3d,0x02,0x00,0x01,0xfb,0xff,0xcf,0x02,0x00,0x01,0xfe,0xff,0xdb,0x02,0x00,0x02,0x0b,0x00,0x25,0x02,0x00,0x02,0x12,0x00,0x25,0x02,0x00,0x02,0x2d,0x00,0x25, -0x02,0x01,0x01,0xdc,0xff,0x79,0x02,0x01,0x01,0xde,0xff,0xe7,0x02,0x01,0x01,0xe3,0xff,0x79,0x02,0x01,0x01,0xf5,0xff,0xe7,0x02,0x01,0x01,0xf8,0xff,0xe7,0x02,0x01,0x01,0xf9,0xff,0x79,0x02,0x01,0x01,0xfb,0xff,0xe7,0x02,0x01,0x01,0xfe,0xff,0x62,0x02,0x01,0x02,0x01,0xff,0x79,0x02,0x01,0x02,0x19,0xff,0xcf,0x02,0x01,0x02,0x21, -0xff,0xcf,0x02,0x03,0x01,0xdc,0xff,0x79,0x02,0x03,0x01,0xde,0xff,0xe7,0x02,0x03,0x01,0xe3,0xff,0x79,0x02,0x03,0x01,0xf5,0xff,0xe7,0x02,0x03,0x01,0xf8,0xff,0xe7,0x02,0x03,0x01,0xf9,0xff,0x79,0x02,0x03,0x01,0xfb,0xff,0xe7,0x02,0x03,0x01,0xfe,0xff,0x62,0x02,0x03,0x02,0x01,0xff,0x79,0x02,0x03,0x02,0x19,0xff,0xcf,0x02,0x03, -0x02,0x21,0xff,0xcf,0x02,0x04,0x00,0x0f,0xff,0xa2,0x02,0x04,0x00,0x11,0xff,0xa2,0x02,0x04,0x00,0xac,0xff,0xa2,0x02,0x04,0x00,0xc4,0xff,0x4a,0x02,0x04,0x00,0xc5,0xff,0x96,0x02,0x04,0x01,0xdc,0xff,0xa2,0x02,0x04,0x01,0xdf,0xff,0xdb,0x02,0x04,0x01,0xe1,0xff,0xf6,0x02,0x04,0x01,0xe3,0xff,0xa2,0x02,0x04,0x01,0xe5,0xff,0xe7, -0x02,0x04,0x01,0xe7,0xff,0xe5,0x02,0x04,0x01,0xeb,0xff,0xf6,0x02,0x04,0x01,0xf2,0xff,0xf6,0x02,0x04,0x01,0xf9,0xff,0xa2,0x02,0x04,0x01,0xfa,0xff,0xe7,0x02,0x04,0x01,0xfc,0xff,0xdb,0x02,0x04,0x02,0x01,0xff,0xa2,0x02,0x05,0x00,0x0f,0xff,0xa2,0x02,0x05,0x00,0x11,0xff,0xa2,0x02,0x05,0x00,0xac,0xff,0xa2,0x02,0x05,0x00,0xc4, -0xff,0x4a,0x02,0x05,0x00,0xc5,0xff,0x96,0x02,0x05,0x01,0xdc,0xff,0xa2,0x02,0x05,0x01,0xdf,0xff,0xdb,0x02,0x05,0x01,0xe1,0xff,0xf6,0x02,0x05,0x01,0xe3,0xff,0xa2,0x02,0x05,0x01,0xe5,0xff,0xe7,0x02,0x05,0x01,0xe7,0xff,0xe5,0x02,0x05,0x01,0xeb,0xff,0xf6,0x02,0x05,0x01,0xf2,0xff,0xf6,0x02,0x05,0x01,0xf9,0xff,0xa2,0x02,0x05, -0x01,0xfa,0xff,0xe7,0x02,0x05,0x01,0xfc,0xff,0xdb,0x02,0x05,0x02,0x01,0xff,0xa2,0x02,0x07,0x02,0x1e,0xff,0xe7,0x02,0x08,0x02,0x0b,0xff,0xe7,0x02,0x08,0x02,0x0d,0xff,0xe1,0x02,0x08,0x02,0x19,0xff,0xdb,0x02,0x08,0x02,0x21,0xff,0xdb,0x02,0x09,0x02,0x19,0xff,0xee,0x02,0x09,0x02,0x1e,0xff,0xe7,0x02,0x09,0x02,0x21,0xff,0xee, -0x02,0x0a,0x00,0x0f,0xff,0xc3,0x02,0x0a,0x00,0x11,0xff,0xae,0x02,0x0a,0x00,0xac,0xff,0xae,0x02,0x0a,0x02,0x07,0xff,0xc3,0x02,0x0a,0x02,0x0b,0xff,0xb6,0x02,0x0a,0x02,0x0c,0xff,0xdb,0x02,0x0a,0x02,0x12,0xff,0xb6,0x02,0x0a,0x02,0x15,0xff,0xdb,0x02,0x0a,0x02,0x18,0xff,0xdb,0x02,0x0a,0x02,0x19,0x00,0x29,0x02,0x0a,0x02,0x1b, -0xff,0xdb,0x02,0x0a,0x02,0x21,0x00,0x29,0x02,0x0a,0x02,0x26,0xff,0xe7,0x02,0x0a,0x02,0x27,0xff,0xdb,0x02,0x0a,0x02,0x2a,0xff,0xdb,0x02,0x0a,0x02,0x2d,0xff,0xb6,0x02,0x0b,0x02,0x12,0x00,0x14,0x02,0x0b,0x02,0x1e,0xff,0xdb,0x02,0x0b,0x02,0x2d,0x00,0x14,0x02,0x0c,0x00,0x05,0xff,0x98,0x02,0x0c,0x00,0x0a,0xff,0x98,0x02,0x0d, -0x00,0x0f,0x00,0x52,0x02,0x0d,0x00,0x10,0xff,0x73,0x02,0x0d,0x00,0x11,0x00,0x52,0x02,0x0d,0x00,0x1d,0x00,0x52,0x02,0x0d,0x00,0x1e,0x00,0x52,0x02,0x0d,0x00,0xac,0x00,0x52,0x02,0x0d,0x02,0x0b,0x00,0x29,0x02,0x0d,0x02,0x0c,0xff,0xd7,0x02,0x0d,0x02,0x0d,0x00,0x4a,0x02,0x0d,0x02,0x12,0x00,0x52,0x02,0x0d,0x02,0x15,0xff,0xd7, -0x02,0x0d,0x02,0x18,0xff,0xd7,0x02,0x0d,0x02,0x1b,0xff,0xd7,0x02,0x0d,0x02,0x1e,0xff,0xe7,0x02,0x0d,0x02,0x27,0xff,0xd7,0x02,0x0d,0x02,0x2a,0xff,0xd7,0x02,0x0d,0x02,0x2d,0x00,0x29,0x02,0x0e,0x02,0x1e,0xff,0xd7,0x02,0x11,0x00,0x0f,0x00,0x52,0x02,0x11,0x00,0x10,0xff,0x73,0x02,0x11,0x00,0x11,0x00,0x52,0x02,0x11,0x00,0x1d, -0x00,0x52,0x02,0x11,0x00,0x1e,0x00,0x52,0x02,0x11,0x00,0xac,0x00,0x52,0x02,0x11,0x02,0x0b,0x00,0x14,0x02,0x11,0x02,0x0c,0xff,0xd7,0x02,0x11,0x02,0x0d,0x00,0x3d,0x02,0x11,0x02,0x12,0x00,0x29,0x02,0x11,0x02,0x15,0xff,0xd7,0x02,0x11,0x02,0x18,0xff,0xd7,0x02,0x11,0x02,0x1b,0xff,0xd7,0x02,0x11,0x02,0x1e,0xff,0xe7,0x02,0x11, -0x02,0x27,0xff,0xd7,0x02,0x11,0x02,0x2a,0xff,0xd7,0x02,0x11,0x02,0x2d,0x00,0x29,0x02,0x15,0x00,0x05,0xff,0x6f,0x02,0x15,0x00,0x0a,0xff,0x6f,0x02,0x15,0x00,0xb4,0xff,0xb0,0x02,0x15,0x00,0xb5,0xff,0x7b,0x02,0x15,0x00,0xb6,0xff,0xbc,0x02,0x15,0x00,0xb7,0xff,0x7b,0x02,0x15,0x02,0x07,0xff,0xe5,0x02,0x15,0x02,0x0b,0xff,0xe7, -0x02,0x15,0x02,0x0d,0xff,0xd7,0x02,0x15,0x02,0x19,0xff,0xdb,0x02,0x15,0x02,0x1c,0xff,0xe7,0x02,0x15,0x02,0x21,0xff,0xdb,0x02,0x17,0x00,0x05,0xff,0x6f,0x02,0x17,0x00,0x0a,0xff,0x6f,0x02,0x17,0x00,0xb4,0xff,0xc9,0x02,0x17,0x00,0xb5,0xff,0x87,0x02,0x17,0x00,0xb6,0xff,0x87,0x02,0x17,0x00,0xb7,0xff,0x87,0x02,0x17,0x02,0x07, -0xff,0xe5,0x02,0x17,0x02,0x0b,0xff,0xe7,0x02,0x17,0x02,0x0d,0xff,0xd7,0x02,0x17,0x02,0x19,0xff,0xdb,0x02,0x17,0x02,0x1c,0xff,0xe7,0x02,0x17,0x02,0x21,0xff,0xdb,0x02,0x19,0x00,0x0f,0xff,0xc3,0x02,0x19,0x00,0x11,0xff,0xae,0x02,0x19,0x00,0xac,0xff,0xae,0x02,0x19,0x02,0x0b,0xff,0xdb,0x02,0x19,0x02,0x0c,0xff,0xdb,0x02,0x19, -0x02,0x12,0xff,0xdb,0x02,0x19,0x02,0x15,0xff,0xdb,0x02,0x19,0x02,0x18,0xff,0xdb,0x02,0x19,0x02,0x19,0x00,0x14,0x02,0x19,0x02,0x1a,0x00,0x29,0x02,0x19,0x02,0x1b,0xff,0xdb,0x02,0x19,0x02,0x21,0x00,0x29,0x02,0x19,0x02,0x26,0xff,0xe7,0x02,0x19,0x02,0x27,0xff,0xdb,0x02,0x19,0x02,0x2a,0xff,0xdb,0x02,0x19,0x02,0x2d,0xff,0xdb, -0x02,0x19,0x02,0x31,0x00,0x29,0x02,0x1a,0x00,0x05,0x00,0x1d,0x02,0x1a,0x00,0x0a,0x00,0x1d,0x02,0x1a,0x00,0x0f,0xff,0x98,0x02,0x1a,0x00,0x11,0xff,0x7f,0x02,0x1a,0x00,0x22,0xff,0xb2,0x02,0x1a,0x00,0xac,0xff,0x7f,0x02,0x1a,0x00,0xbf,0x00,0x0e,0x02,0x1a,0x00,0xc4,0xff,0x8b,0x02,0x1a,0x00,0xc5,0xff,0x8b,0x02,0x1a,0x02,0x0b, -0xff,0x91,0x02,0x1a,0x02,0x0c,0xff,0xf6,0x02,0x1a,0x02,0x12,0xff,0x91,0x02,0x1a,0x02,0x15,0xff,0xf6,0x02,0x1a,0x02,0x18,0xff,0xf6,0x02,0x1a,0x02,0x19,0x00,0x29,0x02,0x1a,0x02,0x1b,0xff,0xf6,0x02,0x1a,0x02,0x21,0x00,0x29,0x02,0x1a,0x02,0x27,0xff,0xf6,0x02,0x1a,0x02,0x2a,0xff,0xf6,0x02,0x1a,0x02,0x2d,0xff,0x91,0x02,0x1b, -0x00,0x05,0xff,0x6f,0x02,0x1b,0x00,0x0a,0xff,0x6f,0x02,0x1b,0x00,0xb4,0xff,0xb0,0x02,0x1b,0x00,0xb5,0xff,0x7b,0x02,0x1b,0x00,0xb6,0xff,0xbc,0x02,0x1b,0x00,0xb7,0xff,0x7b,0x02,0x1b,0x02,0x07,0xff,0xe5,0x02,0x1b,0x02,0x0b,0xff,0xe7,0x02,0x1b,0x02,0x0d,0xff,0xd7,0x02,0x1b,0x02,0x19,0xff,0xdb,0x02,0x1b,0x02,0x1c,0xff,0xe7, -0x02,0x1b,0x02,0x21,0xff,0xdb,0x02,0x1c,0x02,0x0b,0x00,0x14,0x02,0x1c,0x02,0x0c,0xff,0xee,0x02,0x1c,0x02,0x12,0x00,0x29,0x02,0x1c,0x02,0x15,0xff,0xee,0x02,0x1c,0x02,0x18,0xff,0xee,0x02,0x1c,0x02,0x1b,0xff,0xee,0x02,0x1c,0x02,0x1e,0xff,0xdb,0x02,0x1c,0x02,0x27,0xff,0xee,0x02,0x1c,0x02,0x2a,0xff,0xee,0x02,0x1c,0x02,0x2d, -0x00,0x29,0x02,0x1d,0x02,0x1e,0xff,0xdb,0x02,0x20,0x02,0x1e,0xff,0xdb,0x02,0x21,0x02,0x0c,0xff,0xf4,0x02,0x21,0x02,0x15,0xff,0xf4,0x02,0x21,0x02,0x18,0xff,0xf4,0x02,0x21,0x02,0x19,0xff,0xaa,0x02,0x21,0x02,0x1a,0xff,0xb6,0x02,0x21,0x02,0x1b,0xff,0xf4,0x02,0x21,0x02,0x1e,0xff,0x85,0x02,0x21,0x02,0x21,0xff,0xaa,0x02,0x21, -0x02,0x27,0xff,0xf4,0x02,0x21,0x02,0x2a,0xff,0xf4,0x02,0x21,0x02,0x31,0xff,0xb6,0x02,0x23,0x02,0x0c,0xff,0xf4,0x02,0x23,0x02,0x15,0xff,0xf4,0x02,0x23,0x02,0x18,0xff,0xf4,0x02,0x23,0x02,0x19,0xff,0xaa,0x02,0x23,0x02,0x1a,0xff,0xb6,0x02,0x23,0x02,0x1b,0xff,0xf4,0x02,0x23,0x02,0x1e,0xff,0x85,0x02,0x23,0x02,0x21,0xff,0xaa, -0x02,0x23,0x02,0x27,0xff,0xf4,0x02,0x23,0x02,0x2a,0xff,0xf4,0x02,0x23,0x02,0x31,0xff,0xb6,0x02,0x24,0x00,0x05,0xff,0x6f,0x02,0x24,0x00,0x0a,0xff,0x6f,0x02,0x24,0x00,0xb4,0xff,0xb0,0x02,0x24,0x00,0xb5,0xff,0x7b,0x02,0x24,0x00,0xb6,0xff,0xbc,0x02,0x24,0x00,0xb7,0xff,0x7b,0x02,0x24,0x02,0x07,0xff,0xe5,0x02,0x24,0x02,0x0b, -0xff,0xe7,0x02,0x24,0x02,0x0d,0xff,0xd7,0x02,0x24,0x02,0x19,0xff,0xdb,0x02,0x24,0x02,0x1c,0xff,0xe7,0x02,0x24,0x02,0x21,0xff,0xdb,0x02,0x25,0x00,0x05,0xff,0x6f,0x02,0x25,0x00,0x0a,0xff,0x6f,0x02,0x25,0x00,0xb4,0xff,0xb0,0x02,0x25,0x00,0xb5,0xff,0x7b,0x02,0x25,0x00,0xb6,0xff,0xbc,0x02,0x25,0x00,0xb7,0xff,0x7b,0x02,0x25, -0x02,0x07,0xff,0xe5,0x02,0x25,0x02,0x0b,0xff,0xe7,0x02,0x25,0x02,0x0d,0xff,0xd7,0x02,0x25,0x02,0x19,0xff,0xdb,0x02,0x25,0x02,0x1c,0xff,0xe7,0x02,0x25,0x02,0x21,0xff,0xdb,0x02,0x27,0x00,0x05,0xff,0x98,0x02,0x27,0x00,0x0a,0xff,0x98,0x02,0x28,0x00,0x05,0xff,0x6f,0x02,0x28,0x00,0x0a,0xff,0x6f,0x02,0x28,0x00,0xb4,0xff,0xb0, -0x02,0x28,0x00,0xb5,0xff,0x7b,0x02,0x28,0x00,0xb6,0xff,0xbc,0x02,0x28,0x00,0xb7,0xff,0x7b,0x02,0x28,0x02,0x07,0xff,0xee,0x02,0x28,0x02,0x19,0xff,0xe7,0x02,0x28,0x02,0x1c,0xff,0xee,0x02,0x28,0x02,0x1e,0xff,0xe7,0x02,0x28,0x02,0x21,0xff,0xe7,0x02,0x29,0x00,0x0f,0xff,0xc3,0x02,0x29,0x00,0x11,0xff,0xae,0x02,0x29,0x00,0xac, -0xff,0xae,0x02,0x29,0x02,0x07,0xff,0xc3,0x02,0x29,0x02,0x0b,0xff,0xb6,0x02,0x29,0x02,0x0c,0xff,0xdb,0x02,0x29,0x02,0x12,0xff,0xb6,0x02,0x29,0x02,0x15,0xff,0xdb,0x02,0x29,0x02,0x18,0xff,0xdb,0x02,0x29,0x02,0x19,0x00,0x29,0x02,0x29,0x02,0x1b,0xff,0xdb,0x02,0x29,0x02,0x21,0x00,0x29,0x02,0x29,0x02,0x26,0xff,0xe7,0x02,0x29, -0x02,0x27,0xff,0xdb,0x02,0x29,0x02,0x2a,0xff,0xdb,0x02,0x29,0x02,0x2d,0xff,0xb6,0x02,0x2a,0x01,0xe4,0xff,0xe5,0x02,0x2c,0x02,0x28,0x00,0x52,0x02,0x2c,0x02,0x2f,0x00,0x52,0x02,0x2d,0x02,0x0c,0xff,0xf4,0x02,0x2d,0x02,0x15,0xff,0xf4,0x02,0x2d,0x02,0x18,0xff,0xf4,0x02,0x2d,0x02,0x19,0xff,0xaa,0x02,0x2d,0x02,0x1a,0xff,0xb6, -0x02,0x2d,0x02,0x1b,0xff,0xf4,0x02,0x2d,0x02,0x1e,0xff,0x85,0x02,0x2d,0x02,0x21,0xff,0xaa,0x02,0x2d,0x02,0x27,0xff,0xf4,0x02,0x2d,0x02,0x2a,0xff,0xf4,0x02,0x2d,0x02,0x31,0xff,0xb6,0x02,0x2e,0x02,0x0c,0xff,0xf4,0x02,0x2e,0x02,0x15,0xff,0xf4,0x02,0x2e,0x02,0x18,0xff,0xf4,0x02,0x2e,0x02,0x19,0xff,0xaa,0x02,0x2e,0x02,0x1a, -0xff,0xb6,0x02,0x2e,0x02,0x1b,0xff,0xf4,0x02,0x2e,0x02,0x1e,0xff,0x85,0x02,0x2e,0x02,0x21,0xff,0xaa,0x02,0x2e,0x02,0x27,0xff,0xf4,0x02,0x2e,0x02,0x2a,0xff,0xf4,0x02,0x2e,0x02,0x31,0xff,0xb6,0x02,0x2f,0x00,0x05,0xff,0x98,0x02,0x2f,0x00,0x0a,0xff,0x98,0x02,0x30,0x00,0x0f,0x00,0x52,0x02,0x30,0x00,0x10,0xff,0x73,0x02,0x30, -0x00,0x11,0x00,0x52,0x02,0x30,0x00,0x1d,0x00,0x52,0x02,0x30,0x00,0x1e,0x00,0x52,0x02,0x30,0x00,0xac,0x00,0x52,0x02,0x30,0x02,0x0b,0x00,0x29,0x02,0x30,0x02,0x0c,0xff,0xd7,0x02,0x30,0x02,0x12,0x00,0x3d,0x02,0x30,0x02,0x15,0xff,0xd7,0x02,0x30,0x02,0x18,0xff,0xd7,0x02,0x30,0x02,0x1b,0xff,0xd7,0x02,0x30,0x02,0x1e,0xff,0xe7, -0x02,0x30,0x02,0x27,0xff,0xd7,0x02,0x30,0x02,0x2a,0xff,0xd7,0x02,0x30,0x02,0x2d,0x00,0x3d,0x02,0x31,0x00,0x05,0x00,0x1d,0x02,0x31,0x00,0x0a,0x00,0x1d,0x02,0x31,0x00,0x0f,0xff,0x98,0x02,0x31,0x00,0x11,0xff,0x7f,0x02,0x31,0x00,0x22,0xff,0xb2,0x02,0x31,0x00,0xac,0xff,0x7f,0x02,0x31,0x00,0xbf,0x00,0x0e,0x02,0x31,0x00,0xc4, -0xff,0x8b,0x02,0x31,0x00,0xc5,0xff,0x8b,0x02,0x31,0x02,0x0b,0xff,0x91,0x02,0x31,0x02,0x0c,0xff,0xf6,0x02,0x31,0x02,0x12,0xff,0x91,0x02,0x31,0x02,0x15,0xff,0xf6,0x02,0x31,0x02,0x18,0xff,0xf6,0x02,0x31,0x02,0x19,0x00,0x29,0x02,0x31,0x02,0x1b,0xff,0xf6,0x02,0x31,0x02,0x21,0x00,0x29,0x02,0x31,0x02,0x27,0xff,0xf6,0x02,0x31, -0x02,0x2a,0xff,0xf6,0x02,0x31,0x02,0x2d,0xff,0x91,0x02,0x33,0x01,0xdc,0x00,0x29,0x02,0x33,0x01,0xde,0xff,0xa2,0x02,0x33,0x01,0xe0,0x00,0x2d,0x02,0x33,0x01,0xe1,0xff,0xa2,0x02,0x33,0x01,0xe3,0x00,0x29,0x02,0x33,0x01,0xe5,0x00,0x1d,0x02,0x33,0x01,0xe7,0xff,0x71,0x02,0x33,0x01,0xeb,0xff,0xa2,0x02,0x33,0x01,0xf2,0xff,0xa2, -0x02,0x33,0x01,0xf5,0xff,0xcf,0x02,0x33,0x01,0xf8,0xff,0xcf,0x02,0x33,0x01,0xf9,0x00,0x29,0x02,0x33,0x01,0xfa,0x00,0x1d,0x02,0x33,0x01,0xfb,0xff,0xa2,0x02,0x33,0x02,0x01,0x00,0x29,0x02,0x33,0x02,0x06,0xff,0xe7,0x02,0x33,0x02,0x07,0xff,0x27,0x02,0x33,0x02,0x09,0xff,0x4e,0x02,0x33,0x02,0x0a,0xff,0x4e,0x02,0x33,0x02,0x0b, -0xff,0x9e,0x02,0x33,0x02,0x0c,0xff,0x2b,0x02,0x33,0x02,0x0f,0xff,0x4e,0x02,0x33,0x02,0x10,0xff,0x4e,0x02,0x33,0x02,0x11,0xff,0x4e,0x02,0x33,0x02,0x12,0xff,0x9e,0x02,0x33,0x02,0x13,0xff,0x4e,0x02,0x33,0x02,0x14,0xff,0x4e,0x02,0x33,0x02,0x15,0xff,0x2b,0x02,0x33,0x02,0x16,0xff,0x4e,0x02,0x33,0x02,0x17,0xff,0x4e,0x02,0x33, -0x02,0x18,0xff,0x2b,0x02,0x33,0x02,0x19,0xff,0xc3,0x02,0x33,0x02,0x1b,0xff,0x2b,0x02,0x33,0x02,0x1c,0xff,0x4c,0x02,0x33,0x02,0x1d,0xff,0x4e,0x02,0x33,0x02,0x1e,0xff,0x4e,0x02,0x33,0x02,0x1f,0xff,0x4e,0x02,0x33,0x02,0x20,0xff,0x4e,0x02,0x33,0x02,0x21,0xff,0xc3,0x02,0x33,0x02,0x22,0xff,0x4e,0x02,0x33,0x02,0x23,0xff,0x4e, -0x02,0x33,0x02,0x24,0xff,0x60,0x02,0x33,0x02,0x25,0xff,0x4e,0x02,0x33,0x02,0x26,0xff,0x54,0x02,0x33,0x02,0x27,0xff,0x2b,0x02,0x33,0x02,0x29,0xff,0x4e,0x02,0x33,0x02,0x2a,0xff,0x2b,0x02,0x33,0x02,0x2b,0xff,0x66,0x02,0x33,0x02,0x2c,0x00,0x6f,0x02,0x33,0x02,0x2d,0xff,0x9e,0x02,0x33,0x02,0x2e,0xff,0x4e,0x02,0x33,0x02,0x32, -0xff,0x4e,0x02,0x33,0x02,0x34,0xff,0x4e,0x02,0x34,0x00,0x0f,0xff,0xc3,0x02,0x34,0x00,0x11,0xff,0xae,0x02,0x34,0x00,0xac,0xff,0xae,0x02,0x34,0x02,0x07,0xff,0xc3,0x02,0x34,0x02,0x0b,0xff,0xb6,0x02,0x34,0x02,0x0c,0xff,0xdb,0x02,0x34,0x02,0x12,0xff,0xb6,0x02,0x34,0x02,0x15,0xff,0xdb,0x02,0x34,0x02,0x18,0xff,0xdb,0x02,0x34, -0x02,0x19,0x00,0x29,0x02,0x34,0x02,0x1b,0xff,0xdb,0x02,0x34,0x02,0x21,0x00,0x29,0x02,0x34,0x02,0x26,0xff,0xe7,0x02,0x34,0x02,0x27,0xff,0xdb,0x02,0x34,0x02,0x2a,0xff,0xdb,0x02,0x34,0x02,0x2c,0x00,0x52,0x02,0x34,0x02,0x2d,0xff,0xb6,0x02,0x37,0x01,0x33,0x00,0x19,0x02,0x37,0x01,0xc5,0x00,0x29,0x02,0x37,0x02,0x37,0x00,0x19, -0x02,0x3d,0x00,0x57,0xff,0xbe,0x02,0x3d,0x00,0x59,0xff,0xcf,0x02,0x3d,0x00,0x5a,0xff,0xe5,0x02,0x3d,0x00,0x5c,0xff,0xd1,0x02,0x3d,0x00,0xba,0xff,0xbe,0x02,0x3d,0x00,0xc4,0xff,0xb2,0x02,0x3d,0x00,0xc5,0xff,0xb2,0x02,0x3d,0x00,0xeb,0xff,0xd1,0x02,0x3d,0x01,0x21,0xff,0xbe,0x02,0x3d,0x01,0x23,0xff,0xbe,0x02,0x3d,0x01,0x77, -0xff,0xbe,0x02,0x3d,0x01,0x81,0xff,0xe5,0x02,0x3d,0x01,0x83,0xff,0xd1,0x02,0x3d,0x01,0x8d,0xff,0xe5,0x02,0x3d,0x01,0x8f,0xff,0xe5,0x02,0x3d,0x01,0x91,0xff,0xe5,0x02,0x3d,0x01,0x93,0xff,0xd1,0x00,0x00,0x00,0x00,0x00,0x30,0x02,0x46,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x14,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, -0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x05,0x00,0x18,0x02,0x52,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x0e, -0x02,0x6a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0d,0x0e,0x04,0x03,0x40,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0e,0x00,0x56,0x02,0xea,0x00,0x03, -0x00,0x01,0x04,0x03,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x05,0x00,0x02,0x00,0x10,0x11,0x50,0x00,0x03,0x00,0x01,0x04,0x06,0x00,0x02,0x00,0x0c,0x11,0x60,0x00,0x03,0x00,0x01,0x04,0x07,0x00,0x02,0x00,0x10,0x11,0x6c,0x00,0x03,0x00,0x01,0x04,0x08,0x00,0x02,0x00,0x10,0x11,0x7c,0x00,0x03,0x00,0x01,0x04,0x09, -0x00,0x00,0x02,0x18,0x11,0x8c,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x18, -0x02,0x52,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x0e,0x02,0x6a,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x0e,0x18,0x13,0xa4,0x00,0x03, -0x00,0x01,0x04,0x09,0x00,0x0e,0x00,0x4a,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0b,0x00,0x02,0x00,0x10,0x21,0xbc,0x00,0x03,0x00,0x01,0x04,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0e,0x00,0x02,0x00,0x0c,0x21,0xcc,0x00,0x03,0x00,0x01,0x04,0x10, -0x00,0x02,0x00,0x0e,0x21,0xd8,0x00,0x03,0x00,0x01,0x04,0x13,0x00,0x02,0x00,0x12,0x21,0xe6,0x00,0x03,0x00,0x01,0x04,0x14,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x15,0x00,0x02,0x00,0x10,0x21,0xf8,0x00,0x03,0x00,0x01,0x04,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x19,0x00,0x02,0x00,0x0e, -0x22,0x08,0x00,0x03,0x00,0x01,0x04,0x1b,0x00,0x02,0x00,0x10,0x22,0x16,0x00,0x03,0x00,0x01,0x04,0x1d,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x1f,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x24,0x00,0x02,0x00,0x0e,0x22,0x26,0x00,0x03,0x00,0x01,0x04,0x2d,0x00,0x02,0x00,0x0e,0x22,0x34,0x00,0x03, -0x00,0x01,0x08,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x08,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69, -0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20, -0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f, -0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37, -0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54, -0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65, -0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64, -0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64, -0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73, -0x00,0x2e,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72, -0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x35,0x00,0x2e,0x00,0x36,0x00,0x32,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x55,0x00,0x49,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72, -0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x6f,0x00,0x75,0x00,0x70,0x00,0x20,0x00,0x6f, -0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x70,0x00,0x61,0x00,0x6e,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x73,0x00,0x2e,0x00,0x6d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f, -0x00,0x66,0x00,0x74,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x74,0x00,0x79,0x00,0x70,0x00,0x6f,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x70,0x00,0x68,0x00,0x79,0x00,0x2f,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, -0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73, -0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72, -0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, -0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f, -0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65, -0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20, -0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65, -0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72, -0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74, -0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20, -0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66, -0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74, -0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c,0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41, -0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x68,0x00,0x65, -0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65, -0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69, -0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73, -0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f, -0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d, -0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48, -0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73, -0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, -0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20, -0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f, -0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f, -0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, -0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61, -0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77, -0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69, -0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75, -0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68, -0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72, -0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63, -0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73, -0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, -0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63, -0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0d, -0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76,0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74, -0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69, -0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e, -0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69, -0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f, -0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20, -0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c, -0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55,0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48, -0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c, -0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53, -0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45, -0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41,0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48, -0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44,0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49, -0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d,0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57, -0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c, -0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d, -0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54, -0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20, -0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6f, -0x00,0x62,0x00,0x79,0x01,0x0d,0x00,0x65,0x00,0x6a,0x00,0x6e,0x00,0xe9,0x00,0x6e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x72,0x00,0x64,0x03,0x9a,0x03,0xb1,0x03,0xbd,0x03,0xbf,0x03,0xbd,0x03,0xb9,0x03,0xba,0x03,0xac,0x00,0xa9,0x00,0x20,0x00,0x32, -0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52, -0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54, -0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30, -0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37,0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48, -0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62, -0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, -0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20, -0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72, -0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73,0x00,0x2e,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, -0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74, -0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73, -0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20, -0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66, -0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69, -0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20, -0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, -0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, -0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, -0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69, -0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74, -0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c, -0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69, -0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c, -0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, -0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69,0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d, -0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e, -0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48, -0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20, -0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a, -0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65, -0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f, -0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, -0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69, -0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f,0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63, -0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f, -0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c, -0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73, -0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69, -0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20, -0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75, -0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69, -0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c, -0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74, -0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e, -0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66, -0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76, -0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d, -0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, -0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72, -0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, -0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f,0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20, -0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59, -0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55, -0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52, -0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45, -0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20, -0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41, -0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48,0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44, -0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d, -0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52, -0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20, -0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20, -0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46, -0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e, -0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x61,0x00,0x6c,0x00,0x69,0x00,0x4e,0x00,0x6f,0x00,0x72, -0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x65,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x61,0x00,0x72,0x00,0x64,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6e,0x00,0x79,0x04,0x1e,0x04,0x31,0x04,0x4b,0x04,0x47,0x04,0x3d, -0x04,0x4b,0x04,0x39,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x6e,0x00,0x65,0x00,0x4e,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x64,0x00,0x6e,0x00,0x6f,0x00,0x41,0x00,0x72,0x00,0x72,0x00,0x75,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x4e,0x00,0x77,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x08,0x00,0x0a,0x00,0x13,0x00,0x07,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x23,0x8a,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x82,0x30,0x82,0x23,0x7e, -0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x23,0x6f,0x30,0x82,0x23,0x6b,0x02,0x01,0x01,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x71,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0xa0,0x63,0x30,0x61,0x30,0x2c,0x06,0x0a,0x2b,0x06,0x01, -0x04,0x01,0x82,0x37,0x02,0x01,0x1c,0xa2,0x1e,0x80,0x1c,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x4f,0x00,0x62,0x00,0x73,0x00,0x6f,0x00,0x6c,0x00,0x65,0x00,0x74,0x00,0x65,0x00,0x3e,0x00,0x3e,0x00,0x3e,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0xd1,0x66,0x06,0x5e,0x25,0x40, -0xdd,0x89,0xdd,0x33,0x17,0x38,0x13,0xf4,0x79,0x7b,0x24,0x66,0x3e,0x9d,0x0d,0xef,0x96,0x4e,0xe9,0x40,0xb6,0xb7,0x21,0xab,0x14,0x43,0xa0,0x82,0x0d,0x81,0x30,0x82,0x05,0xff,0x30,0x82,0x03,0xe7,0xa0,0x03,0x02,0x01,0x02,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00,0x01,0x03, -0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, -0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53, -0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x38,0x30,0x37,0x31,0x32,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x17,0x0d,0x31,0x39,0x30,0x37,0x32,0x36,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x30,0x74,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13, -0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72, -0x61,0x74,0x69,0x6f,0x6e,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x03,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01, -0x0a,0x02,0x82,0x01,0x01,0x00,0xd1,0x94,0x76,0x36,0xe6,0x86,0xab,0x36,0xfe,0x69,0xf9,0x46,0x7c,0x8b,0x88,0x50,0xcb,0x90,0x70,0x7f,0xb0,0x55,0xa9,0x24,0x1d,0x7e,0x39,0xe7,0x05,0x9f,0x0f,0xac,0x7b,0x97,0xb2,0xce,0x73,0x0a,0xfb,0xd4,0x9b,0x24,0x5c,0x16,0xb5,0x39,0xdd,0x1b,0x7e,0x33,0x6c,0x11,0xfc,0x3b,0x26,0xf3,0x98,0xaa, -0x5d,0x53,0x6b,0xaa,0xc3,0xec,0x13,0xb8,0xd2,0xef,0xcf,0x57,0x7f,0xcc,0x65,0xcb,0xaf,0x4d,0x2e,0x32,0xb1,0x56,0x2b,0x4e,0x34,0x07,0x89,0xfe,0x69,0x21,0xbd,0x3e,0x44,0xfb,0xde,0x12,0x9d,0x85,0xbf,0x7c,0x76,0x86,0x7d,0x72,0xb1,0x76,0x9b,0x61,0xe6,0x8a,0x64,0x4c,0x46,0xce,0xb6,0xd5,0x3a,0x8c,0x77,0x93,0x77,0x67,0x21,0x9c, -0xb6,0x5a,0x06,0x5e,0x47,0x86,0xf5,0x3c,0xd1,0x09,0xca,0x0d,0x3d,0xcd,0xb2,0xe9,0xa1,0x50,0x78,0xd1,0x84,0x88,0xe2,0x01,0x3c,0x22,0xfc,0xaf,0x96,0x08,0xcc,0x5d,0x99,0xc0,0xed,0xeb,0xa5,0x5a,0x98,0x92,0xf5,0xc8,0x40,0x4e,0x6a,0x73,0xaf,0xde,0xe3,0x74,0x7a,0xd3,0x5f,0x46,0x97,0xbc,0xe2,0x67,0x28,0x77,0x99,0xac,0xc1,0x0e, -0x31,0x16,0x8f,0x00,0x0f,0x01,0xfe,0x4b,0x5e,0x54,0x0f,0xca,0xc4,0x65,0x3f,0x0a,0xe3,0xa3,0x46,0xdb,0xf6,0x2c,0x03,0x3a,0x19,0xbe,0x68,0x05,0x16,0x9c,0xe6,0x7f,0x34,0xbf,0xa7,0x87,0x8d,0x65,0x39,0x26,0xc9,0x63,0xd4,0xef,0xc5,0xdd,0xbd,0x25,0xfe,0xfd,0x28,0xf4,0x34,0x86,0x79,0xac,0x2a,0xd5,0x5f,0x30,0x91,0x3b,0xe4,0x14, -0x6a,0xeb,0xb1,0xca,0x04,0x23,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x7e,0x30,0x82,0x01,0x7a,0x30,0x1f,0x06,0x03,0x55,0x1d,0x25,0x04,0x18,0x30,0x16,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x4c,0x08,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x03,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x47, -0xbe,0xc0,0xcb,0xe1,0xa6,0x3f,0xfd,0x65,0xd6,0x38,0xf2,0x03,0x5d,0xb7,0xaf,0x77,0xf7,0x40,0xff,0x30,0x50,0x06,0x03,0x55,0x1d,0x11,0x04,0x49,0x30,0x47,0xa4,0x45,0x30,0x43,0x31,0x29,0x30,0x27,0x06,0x03,0x55,0x04,0x0b,0x13,0x20,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e, -0x73,0x20,0x50,0x75,0x65,0x72,0x74,0x6f,0x20,0x52,0x69,0x63,0x6f,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x05,0x13,0x0d,0x32,0x33,0x30,0x30,0x31,0x32,0x2b,0x34,0x33,0x37,0x39,0x36,0x35,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x48,0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5, -0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x54,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4d,0x30,0x4b,0x30,0x49,0xa0,0x47,0xa0,0x45,0x86,0x43,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x72,0x6c,0x2f,0x4d,0x69,0x63, -0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x6c,0x30,0x61,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x55,0x30,0x53,0x30,0x51,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f, -0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x74,0x30, -0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x9f,0xf5,0xc9,0x53,0x0d,0x3f,0x0d,0x26,0xec,0xa2,0x44,0xd8,0x0d,0xd1,0x9f,0x63,0x96,0x06,0x4b,0x3f,0x1e,0x5c,0xc5,0x33,0xa3,0xa4,0xc3,0x6c,0xaf,0x1f,0xc0, -0x01,0xba,0xeb,0x65,0xec,0x9e,0x33,0x10,0x0f,0xa7,0xac,0x5b,0xd4,0xbd,0x90,0x61,0x17,0xe7,0x31,0xe7,0xc3,0x26,0xb4,0xac,0xf5,0x27,0xd3,0x48,0x93,0x86,0x88,0xfe,0x12,0x35,0x91,0x64,0x22,0xd1,0x6b,0x2d,0x3b,0xa8,0x2c,0x15,0x94,0x29,0xd2,0x37,0x96,0xe6,0x35,0xff,0x0c,0xce,0xc8,0x06,0x16,0x16,0x9e,0x24,0xb1,0xe2,0x39,0xf9, -0x6e,0x0e,0x78,0xd8,0x0c,0x1b,0xb6,0x29,0x60,0x27,0x76,0x34,0x24,0x9b,0xdd,0xb9,0x97,0x75,0xcb,0x01,0x3b,0xad,0x82,0x12,0x16,0x22,0x80,0x89,0x15,0x84,0xbb,0x98,0x50,0x20,0xb0,0x17,0x26,0x86,0x49,0xaf,0xce,0x7d,0x45,0x15,0x43,0x34,0x96,0xcf,0x81,0x5c,0x18,0x2c,0xd4,0x93,0xf2,0x67,0xab,0xe2,0x73,0xc8,0x3d,0xa3,0xcd,0xfc, -0x32,0x1e,0x60,0x1c,0xe9,0xb0,0x1b,0x30,0xfb,0x2c,0xbb,0x07,0x2e,0x96,0x84,0x93,0x45,0x28,0x54,0x5c,0xcd,0x96,0xfd,0xa0,0xdb,0x81,0xd8,0xb6,0x30,0xca,0x43,0xb1,0xf3,0x48,0xc0,0xb2,0x46,0x1c,0x5d,0x5e,0x76,0x2a,0x58,0x9f,0xd4,0xee,0xf2,0xf4,0xfa,0x48,0x4c,0xb5,0x61,0x8b,0xb0,0x8c,0x41,0xe9,0xaa,0xb8,0x9d,0x90,0xf4,0xff, -0x6a,0x42,0x0f,0xb9,0x3e,0xe9,0x0e,0xec,0x94,0xfc,0x8d,0x80,0xbb,0x78,0xe3,0x23,0xa7,0x78,0x5b,0xb2,0x6d,0x1f,0xf9,0x59,0xc1,0x7d,0xb6,0xd1,0x39,0xc9,0x79,0xe0,0x83,0x1c,0x60,0x0a,0xda,0x3d,0xb0,0xd1,0xed,0x36,0xbf,0x45,0x07,0xe9,0x1b,0x36,0x6e,0xe5,0x3d,0x3b,0x05,0x03,0xa7,0xd4,0xa7,0x25,0x12,0x8f,0xe6,0x76,0xa3,0x13, -0xb3,0x45,0x5a,0x43,0x31,0x82,0xda,0xd8,0x84,0xae,0xb9,0xb0,0x1f,0x75,0xf5,0xf6,0x1d,0x7d,0x51,0x11,0x37,0x27,0xe8,0xb5,0x35,0x84,0x71,0xf7,0x57,0xaa,0xae,0xfa,0x89,0x71,0xc9,0x98,0xd2,0x9e,0x5a,0x64,0x76,0xbe,0x8c,0xc3,0x7d,0x15,0x6a,0x91,0xf1,0x14,0xf4,0xf2,0xd9,0x35,0x31,0xb8,0xdb,0x72,0xfa,0xb4,0x75,0xc8,0x88,0x9b, -0x6a,0xbf,0x98,0x45,0xc7,0x66,0xb2,0xd7,0xff,0xce,0x92,0x90,0x75,0xe4,0xeb,0xe6,0x86,0xd2,0xc8,0x1b,0xdb,0x27,0xc0,0x5b,0x95,0x6f,0x49,0x6f,0x58,0x5d,0x69,0x2a,0xde,0x53,0x4b,0xf8,0xe8,0xca,0x7b,0xf6,0x6c,0x15,0xf9,0x03,0x19,0x0f,0x11,0x85,0xaa,0x4f,0x9a,0xbf,0xaa,0x57,0xdd,0x60,0xc6,0xf5,0x71,0x20,0xf4,0x51,0xa8,0x9a, -0xca,0xe9,0xd1,0xeb,0x34,0x47,0x3d,0x75,0xfa,0x22,0xec,0x55,0x3f,0x6a,0x19,0x39,0x6b,0x10,0xe9,0x5a,0x3f,0x8e,0xf4,0x23,0x78,0x30,0xb2,0xf2,0xa6,0x38,0xcb,0x35,0x8d,0xaa,0x98,0x59,0x24,0x40,0xb8,0x3a,0x67,0xa4,0x07,0x5f,0xa0,0xfe,0xd8,0x3b,0x49,0x13,0xfb,0x0c,0xe1,0xed,0x0b,0x6d,0x83,0x50,0xce,0xf0,0x7f,0x3e,0xe0,0xd9, -0x08,0xe8,0x8c,0x21,0x4a,0x41,0xc2,0xde,0xeb,0x8e,0x5b,0xee,0x03,0xc3,0x1d,0x6e,0x6e,0xe6,0x54,0x35,0x66,0x67,0x72,0x7c,0x1a,0xea,0x52,0xf6,0x22,0xc4,0x72,0x3f,0xae,0x30,0x82,0x07,0x7a,0x30,0x82,0x05,0x62,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x0e,0x90,0xd2,0x00,0x00,0x00,0x00,0x00,0x03,0x30,0x0d,0x06,0x09,0x2a,0x86, -0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64, -0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66, -0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x31,0x30,0x37,0x30,0x38,0x32,0x30,0x35,0x39,0x30,0x39,0x5a,0x17,0x0d,0x32,0x36,0x30,0x37,0x30,0x38,0x32,0x31,0x30,0x39,0x30,0x39,0x5a,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, -0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, -0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86, -0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,0x00,0xab,0xf0,0xfa,0x72,0x10,0x1c,0x2e,0xad,0xd8,0x6e,0xaa,0x82,0x10,0x4d,0x34,0xba,0xf2,0xb6,0x58,0x21,0x9f,0x42,0x1b,0x2a,0x6b,0xe9,0x5a,0x50,0xaa,0xb8,0x06,0x38,0x1a,0x04,0x49,0xba,0x7f,0xc3,0x0c,0x1e,0xdd,0x37,0x6b, -0xc6,0x12,0xd8,0x0b,0xf0,0x38,0xc2,0x99,0x06,0xb0,0xc8,0x39,0xd5,0x01,0x14,0x31,0x42,0xd3,0x89,0x0d,0x79,0x64,0x87,0x7e,0x94,0x60,0x24,0x6c,0xaf,0x9e,0x49,0x9c,0xe9,0x68,0x5e,0xd2,0xdf,0x9b,0x53,0xb2,0x0a,0x2c,0xc3,0xaf,0xd9,0xa9,0x2b,0xae,0x7a,0x09,0xaf,0xd7,0x96,0x59,0xca,0x60,0x1a,0x05,0xe9,0x66,0x76,0xe8,0x32,0x52, -0x26,0x12,0x2f,0xe7,0xab,0x08,0x50,0xcf,0xb3,0x44,0xb7,0x5d,0xd8,0xc4,0x2e,0x03,0x75,0xab,0x68,0xf3,0xcb,0x6d,0xf3,0x3a,0x5c,0xa1,0x16,0xf4,0x46,0xba,0xe0,0x38,0x64,0xac,0x6e,0x64,0x35,0x78,0xa6,0xa0,0x63,0x0f,0x2d,0xd3,0x40,0x93,0xf8,0xe3,0xde,0x07,0x0d,0xd5,0x5c,0x79,0xa5,0x49,0x29,0xe7,0x0d,0xbe,0xa0,0x13,0x77,0xbe, -0x94,0x3d,0xef,0xfb,0xe3,0x2b,0x5a,0x10,0x1f,0x4d,0x56,0x28,0xa2,0x7a,0x72,0xe0,0x12,0x3a,0xb7,0x49,0x5e,0xd8,0xed,0xed,0x43,0x91,0x83,0xd9,0x7b,0xb2,0x7b,0x86,0x1b,0xd9,0x3e,0xb1,0x8c,0x5d,0xe8,0x89,0x4f,0x84,0x1a,0xf2,0xa1,0x2f,0x59,0xe4,0x90,0x3b,0x2d,0xae,0x33,0x58,0xc5,0xb7,0x3e,0xfe,0x32,0xd3,0xb3,0x03,0x3d,0xb1, -0xb2,0xaf,0x92,0x38,0x7e,0xd2,0x9d,0x80,0x2c,0xf5,0x4e,0x56,0x91,0x21,0x35,0x25,0xc3,0x39,0x6e,0x64,0x7f,0x53,0xba,0x9c,0x0f,0xad,0x19,0x23,0x84,0xcb,0xf4,0xba,0x03,0x86,0x8d,0xf7,0x5f,0xf0,0xd0,0x52,0xbf,0x8c,0x94,0x87,0xbc,0xc0,0x21,0x74,0x25,0x5f,0x18,0x28,0xb6,0xcc,0x27,0x28,0x38,0x25,0x98,0x39,0x4a,0x36,0xcf,0x7c, -0xb1,0x92,0xae,0x1c,0x23,0xa7,0xa9,0x66,0xec,0x61,0x1f,0x6a,0xe1,0x28,0x49,0x9d,0x5f,0x88,0xe2,0x25,0x5d,0xd3,0x21,0x4b,0x3e,0x52,0xc4,0xb5,0x57,0x3f,0x24,0x03,0xf0,0xd1,0x7a,0x5b,0x2f,0xd5,0x23,0xe3,0x70,0x5d,0x0f,0x51,0x46,0x77,0xb3,0xf8,0x00,0xe1,0xbc,0xac,0x02,0x82,0x5f,0xdb,0xc0,0x15,0xb3,0xbd,0x1b,0xd4,0x55,0x4b, -0xe7,0x39,0xa1,0x0f,0xe9,0x23,0x49,0xbc,0x18,0xb8,0x44,0x7c,0x45,0xe4,0xc1,0xc3,0x72,0x7a,0xe0,0x72,0xe7,0x24,0xdf,0xbf,0x46,0x99,0xc5,0xef,0xc2,0x1c,0x57,0xdb,0x83,0x8d,0xec,0x4d,0x49,0x30,0xa7,0xab,0x8e,0xdf,0xec,0x5b,0x9f,0xaf,0xfc,0xdd,0xb0,0x66,0xe2,0xc1,0x97,0x81,0x7b,0xed,0xd6,0xed,0x4b,0xe7,0x49,0x29,0xa7,0x13, -0x28,0xa6,0xa7,0x7d,0x67,0x80,0xe6,0x8a,0x62,0x78,0x5f,0xb2,0x2f,0x84,0xd7,0x57,0x9c,0x5c,0xbf,0x77,0x28,0x28,0xf1,0xed,0x6d,0xc3,0x28,0x8f,0x2c,0x8f,0x40,0x37,0x4f,0xc1,0xe1,0x85,0x44,0x89,0xc4,0x09,0x4c,0xc5,0xd4,0xa5,0x43,0x2f,0x74,0x95,0xf7,0x6e,0xf8,0x78,0x20,0x58,0x2c,0x13,0x5d,0x60,0x95,0x9a,0x3e,0x4f,0x33,0x84, -0xda,0xb0,0x88,0x17,0xde,0x9e,0x4e,0xf4,0x96,0xb0,0xbc,0x46,0xa0,0x6c,0x98,0xd2,0xe0,0xd6,0x88,0x8c,0x0b,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xed,0x30,0x82,0x01,0xe9,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x48, -0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5,0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55, -0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x72,0x2d,0x3a,0x02,0x31,0x90,0x43,0xb9,0x14,0x05,0x4e,0xe1,0xea,0xa7,0xc7,0x31,0xd1,0x23,0x89,0x34,0x30,0x5a,0x06,0x03,0x55,0x1d,0x1f,0x04,0x53,0x30,0x51,0x30,0x4f,0xa0,0x4d,0xa0,0x4b,0x86,0x49, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f, -0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x6c,0x30,0x5e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x52,0x30,0x50,0x30,0x4e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x42,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f, -0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f,0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x74,0x30,0x81,0x9f,0x06,0x03,0x55,0x1d,0x20,0x04,0x81,0x97,0x30,0x81,0x94,0x30,0x81,0x91,0x06,0x09,0x2b,0x06,0x01,0x04, -0x01,0x82,0x37,0x2e,0x03,0x30,0x81,0x83,0x30,0x3f,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x33,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x70,0x72,0x69,0x6d,0x61, -0x72,0x79,0x63,0x70,0x73,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x70,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00, -0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x67,0xf2,0x86,0xa5,0x98,0xe0,0x54,0x79,0x1a,0x2e,0xd3,0xd8,0x74,0x67,0x22,0x9b,0x0b,0x96,0x11,0xe1,0x63,0x92,0x99,0x42,0x96,0x7d,0xd2,0x79,0x0c,0x90,0xc1,0x65,0x5f, -0x2e,0x2c,0x3e,0xf8,0xc3,0x72,0xd1,0x6d,0x83,0xfe,0xbe,0x3f,0xe8,0x0a,0xca,0x3b,0xbf,0x47,0xa9,0xa3,0xf3,0x69,0xdb,0x63,0xbf,0x22,0x35,0xa5,0x97,0x5d,0x65,0x84,0x90,0x7d,0x8b,0x46,0x50,0x55,0xd8,0x0c,0x92,0x7c,0xd2,0x1a,0x4b,0x1c,0xf3,0x3c,0x42,0x8b,0x52,0xd0,0xb0,0xfd,0x6b,0xe3,0x3e,0x07,0x2e,0x29,0x9b,0xe6,0x3d,0x1b, -0xa5,0xd4,0xb5,0x1d,0x77,0x94,0x39,0xe2,0xe9,0x64,0xc9,0x44,0x3d,0x78,0x7a,0x23,0xf3,0x13,0x7d,0xa6,0x90,0x74,0x83,0x8d,0xf4,0xcb,0x26,0x02,0x46,0x2a,0xc2,0x8a,0x10,0xbb,0xa4,0xa9,0x05,0x0c,0x9b,0xed,0x68,0xfa,0x68,0x2e,0x95,0xa0,0x2a,0x3f,0x2a,0x6b,0x58,0x49,0x63,0x1f,0x09,0x69,0x6e,0x5a,0x98,0x96,0xe4,0x83,0xf4,0xc0, -0x8f,0xf3,0x46,0x2b,0xde,0xfc,0x3b,0xd0,0xbd,0x35,0xef,0x6e,0x25,0xae,0xe5,0xaf,0x27,0xed,0xd0,0xdd,0xf3,0x0e,0xaf,0x99,0x28,0x97,0x98,0x4d,0x0e,0x3d,0x0b,0xf2,0x08,0x89,0xd6,0x1f,0xc3,0x32,0x18,0xe2,0xf0,0xc5,0x2d,0xce,0x5b,0x9e,0xb4,0x49,0x39,0x0a,0xc6,0x0a,0xc2,0xc6,0xad,0xae,0xe5,0xb2,0xd9,0xdb,0x15,0x88,0x51,0x45, -0x58,0x38,0x32,0x71,0x27,0x1a,0x7f,0xb1,0xf4,0x27,0xf8,0xde,0x2c,0x3a,0x20,0x69,0x98,0xb2,0x59,0x89,0x68,0x6e,0x6f,0xa7,0xb7,0x74,0xc3,0x40,0x05,0x06,0xa6,0x01,0x2a,0x28,0x3e,0x82,0x3f,0x13,0x4d,0x66,0x0b,0xc0,0xb3,0x4d,0xf5,0xe1,0x8f,0x7f,0x1c,0x6f,0x15,0x7d,0x45,0xa7,0x76,0xe5,0x40,0x2a,0x65,0xa3,0xc3,0x5d,0x52,0x62, -0x86,0xc3,0x1d,0x63,0x36,0x97,0x86,0xdf,0xda,0xf3,0xf8,0xf2,0x16,0xa1,0x9a,0x27,0xe1,0xcd,0xa5,0x97,0xd0,0xee,0x5d,0x63,0x41,0xe3,0x5b,0x07,0x9c,0x87,0x3e,0x06,0x77,0x06,0xd1,0x06,0xb1,0x75,0x1f,0x14,0xbe,0x61,0x61,0xb5,0xf0,0xdc,0xc6,0x1b,0x04,0xbe,0xdf,0x41,0xc7,0x0e,0x28,0xee,0xde,0x65,0x2f,0xec,0x97,0xf6,0xa1,0x5c, -0x96,0xd8,0x00,0xd6,0xa1,0x46,0xbd,0x59,0xf3,0x97,0xa5,0x09,0x4b,0x48,0x10,0x99,0x80,0x1f,0xd0,0x00,0x29,0xc5,0xb1,0x9b,0xa5,0x3f,0x45,0x77,0x1e,0x35,0xc6,0xd2,0xa2,0xa2,0x9f,0x7a,0x7a,0x22,0xfa,0x48,0x95,0x1f,0xab,0xfb,0x47,0x23,0x80,0xf5,0x9e,0xf8,0xbf,0x6b,0xb7,0x4b,0x97,0xe2,0xeb,0x75,0x78,0x1a,0xec,0xea,0x37,0x99, -0x79,0x18,0x4b,0xff,0xd6,0xb3,0x23,0x68,0x75,0xe6,0xaf,0xfa,0xfc,0x8b,0xeb,0x0b,0x80,0xea,0x69,0x3b,0xaf,0xfc,0x30,0xed,0x04,0x4c,0x8e,0xdf,0xdf,0x75,0x6d,0x63,0x91,0x3d,0xd1,0x9d,0x56,0x4e,0x4f,0xbf,0x80,0x57,0x22,0xa1,0x78,0x11,0x32,0x21,0x7a,0xef,0x41,0x0a,0xb1,0x3f,0xfb,0xa8,0xcc,0xa4,0x5d,0xc1,0xa1,0x88,0x9b,0x57, -0x71,0x56,0x4e,0x48,0x45,0xc0,0x42,0xc9,0x9b,0x76,0x5b,0x0a,0x80,0x48,0x6b,0xfd,0x79,0x9f,0xc1,0xbd,0x6d,0x6d,0x6a,0xc9,0x52,0x73,0x13,0x0d,0x7a,0x50,0xcd,0x31,0x82,0x15,0x5b,0x30,0x82,0x15,0x57,0x02,0x01,0x01,0x30,0x81,0x95,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11, -0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74, -0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00, -0x01,0x03,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x81,0xae,0x30,0x19,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0x30,0x1c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0b,0x31,0x0e,0x30, -0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x15,0x30,0x2f,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xef,0x1c,0x60,0x9d,0x4d,0xa4,0xea,0x66,0x76,0x09,0x51,0xf4,0xba,0x29,0x24,0x71,0xc9,0x1d,0x9e,0x20,0xa1,0x48,0x83,0xb3,0x95,0xb6,0x32,0x21,0x3f,0xc2,0xe1,0x1b,0x30,0x42, -0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0c,0x31,0x34,0x30,0x32,0xa0,0x14,0x80,0x12,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0xa1,0x1a,0x80,0x18,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63, -0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x04,0x82,0x01,0x00,0x40,0xe0,0xd2,0x89,0x67,0x1e,0x8d,0xfc,0xdd,0x9c,0xd3,0x57,0x55,0xe8,0x1f,0x88,0x8d,0x5a,0xb1,0x90,0xf0,0xfa,0xb0,0x85,0xec,0xba,0xfa,0x6d,0x70,0xfa,0xab,0x25,0x02,0xe2,0x31,0xef,0xa5,0xfb,0xb2,0x85,0x7a,0xf7,0x50, -0xcf,0x79,0xff,0xf4,0x16,0x03,0x5f,0x86,0xa6,0xde,0xda,0x4a,0xfc,0x47,0xdd,0x21,0x41,0x45,0xda,0xcd,0x3b,0xe9,0xf3,0xf1,0xe6,0xd3,0xf8,0x9b,0xd8,0x83,0xcb,0x5f,0x4e,0x07,0x80,0x70,0x2a,0xc3,0x57,0x1e,0xa3,0x72,0xf3,0xe7,0xc7,0x90,0xd3,0x53,0xc7,0x44,0x76,0xd6,0xff,0xeb,0x2e,0x62,0xf4,0x1b,0xe2,0x09,0x62,0x8f,0x0a,0x08, -0x1b,0xc9,0xc5,0x1a,0xe0,0xd3,0x20,0x65,0x22,0x84,0xc1,0x58,0x73,0xa8,0x05,0x4c,0x6c,0x2a,0xee,0x5c,0x61,0x76,0x16,0x53,0x2b,0xf2,0x1a,0xb3,0xdb,0x8c,0xd7,0x39,0x03,0x3d,0x4c,0xf6,0xbd,0x67,0x20,0x8e,0x69,0xf9,0x0e,0x50,0x18,0x08,0x70,0x7d,0x33,0xfb,0xff,0x2e,0x5c,0x62,0x2d,0x6e,0xc6,0x3e,0x5e,0xf7,0x60,0x56,0x99,0xce, -0x52,0x94,0xce,0x2f,0xae,0xf8,0x50,0x19,0xe7,0x6e,0x6a,0x22,0x9b,0x27,0x70,0xfe,0xbe,0x79,0xdb,0x31,0x52,0x01,0x3f,0x4e,0xb4,0xcd,0xe8,0xf7,0x30,0xc2,0x61,0x02,0xc7,0x05,0x9b,0x0a,0x2f,0xe5,0xf5,0x0e,0x0c,0x9d,0xcb,0x2a,0xb0,0x79,0xac,0x96,0xf8,0x39,0xf0,0xb4,0xe5,0x67,0x7f,0x94,0x8a,0xac,0x77,0x9a,0xc9,0x38,0xb9,0x93, -0xed,0xf5,0x33,0xc2,0x44,0x82,0x81,0x5d,0xab,0x33,0x75,0xd2,0x6e,0x43,0xf4,0x03,0xf0,0x91,0x23,0x18,0xfb,0xa1,0x82,0x12,0xe5,0x30,0x82,0x12,0xe1,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x03,0x03,0x01,0x31,0x82,0x12,0xd1,0x30,0x82,0x12,0xcd,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x12,0xbe, -0x30,0x82,0x12,0xba,0x02,0x01,0x03,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x82,0x01,0x51,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0xa0,0x82,0x01,0x40,0x04,0x82,0x01,0x3c,0x30,0x82,0x01,0x38,0x02,0x01,0x01,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84, -0x59,0x0a,0x03,0x01,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0x4d,0xd8,0x6e,0x4d,0x11,0x8e,0x9b,0xbb,0x96,0x9d,0x1d,0x2e,0x32,0x48,0x7c,0xb0,0xde,0x56,0x6c,0xeb,0x7e,0x1c,0xe6,0x73,0xbc,0xa1,0x52,0xc7,0xa9,0xdb,0x41,0x31,0x02,0x06,0x5c,0x3d,0xd3,0x10,0xa8,0xe5,0x18, -0x13,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x31,0x38,0x34,0x30,0x33,0x36,0x2e,0x37,0x34,0x35,0x5a,0x30,0x04,0x80,0x02,0x01,0xf4,0xa0,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69, -0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b, -0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37, -0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa0,0x82,0x0e,0x3c,0x30,0x82,0x04,0xf1,0x30,0x82,0x03,0xd9,0xa0,0x03,0x02,0x01,0x02,0x02,0x13, -0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68, -0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04, -0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x38,0x31,0x30,0x32,0x34,0x32,0x31,0x31,0x34,0x31,0x35,0x5a,0x17,0x0d,0x32,0x30,0x30,0x31,0x31,0x30,0x32,0x31,0x31,0x34,0x31,0x35,0x5a, -0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a, -0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26, -0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d, -0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa3,0xf7,0x56,0x35,0x84,0xf3,0xdd,0x34,0xe4,0xa3,0x93,0x48,0x65,0xb2,0x92,0x69,0xb8,0xa1, -0x51,0xc2,0xfb,0x51,0x1e,0x08,0xbe,0xa5,0x84,0xaf,0xf3,0x48,0x46,0x9b,0x6c,0x0c,0xdc,0x8f,0xc3,0x82,0x4b,0x12,0x11,0xb1,0x11,0x5c,0xff,0x22,0xb3,0x3e,0xc2,0xde,0xb7,0xda,0xac,0x93,0x45,0x91,0xf4,0x8a,0xff,0x12,0x16,0x6f,0xd2,0x2d,0x4f,0xc8,0x20,0x76,0x05,0x21,0x37,0x4b,0x9f,0xd4,0xfd,0x57,0x7e,0xa9,0xf4,0x91,0x21,0xa6, -0xb9,0x8c,0x69,0xbf,0xe9,0x21,0xb8,0x98,0x0c,0x20,0xb7,0x5b,0xb4,0xc5,0xbf,0x4f,0xc3,0x6c,0x74,0x86,0x8d,0x10,0xfc,0x68,0xfe,0x8d,0x0c,0x85,0x64,0x5b,0xf0,0x23,0x2d,0xda,0x24,0x0b,0x0c,0x50,0xb4,0x8c,0x8f,0x67,0x02,0x0d,0x97,0x37,0xb4,0x1f,0x1d,0xaf,0x8b,0xcd,0xd5,0x87,0x8c,0x1e,0x70,0xd3,0xee,0xdf,0x22,0xc9,0xfe,0x54, -0xac,0x57,0xf4,0xbe,0xcd,0x55,0x12,0xfb,0x9b,0xa0,0x29,0xe1,0xcb,0x56,0x02,0x2e,0x4d,0xcb,0x72,0x2a,0xbf,0x4c,0x8c,0x14,0x9a,0x84,0x2a,0x25,0xdf,0x11,0xce,0x80,0x81,0xea,0x15,0x60,0x62,0x57,0xa2,0x0e,0x1a,0x09,0x74,0xa5,0x18,0xad,0xe9,0x9a,0x88,0x56,0x2c,0xcd,0xaf,0xd2,0x69,0x5d,0x2f,0xf1,0x88,0x1a,0x96,0x11,0x38,0x51, -0x0e,0x97,0xbd,0xdd,0x6c,0x11,0x52,0xe8,0x32,0xa5,0x95,0x17,0xa4,0x27,0x49,0xa9,0x7e,0x38,0x1a,0x84,0x1d,0xe8,0xe5,0xe7,0xcd,0x9f,0x6c,0x9c,0x2f,0x44,0x65,0x13,0x5d,0x89,0x5a,0x80,0x3d,0x3c,0x5a,0x37,0x7e,0xfd,0x5f,0xc6,0xab,0x2d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x1b,0x30,0x82,0x01,0x17,0x30,0x1d,0x06,0x03,0x55, -0x1d,0x0e,0x04,0x16,0x04,0x14,0x26,0x77,0xcd,0x38,0x2b,0x45,0x7e,0xbd,0xd3,0x33,0x65,0x28,0xf7,0xcf,0xe3,0x68,0xf2,0x0e,0x65,0x4d,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x56,0x06,0x03,0x55, -0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0,0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74, -0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72, -0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74,0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x74,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x13,0x06, -0x03,0x55,0x1d,0x25,0x04,0x0c,0x30,0x0a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x08,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x91,0x3f,0xe2,0xd1,0x15,0x1b,0x20,0x21,0x1c,0xf2,0x7b,0xbc,0xe4,0x9b,0x59,0x03,0xdf,0x8c,0x9a,0x5c,0x62,0xc4,0x1e,0xc1,0xc5,0xd3, -0x4e,0x96,0x21,0x60,0xf5,0x03,0xe5,0xcf,0x83,0x98,0x94,0x27,0x4d,0x5d,0xf8,0x1a,0x4e,0xec,0xa4,0x59,0xe3,0x23,0x87,0x2c,0x2c,0xc8,0x72,0xf8,0xc4,0x26,0xc3,0x73,0x06,0x5a,0xa7,0xff,0xed,0xfe,0xee,0xa1,0x8a,0x27,0xc5,0x65,0x68,0xc8,0xf6,0x16,0x8f,0x5a,0x4e,0x72,0xe5,0x37,0xf1,0x91,0x81,0xfc,0x18,0xe4,0x6e,0x2c,0xcd,0x94, -0x99,0xb5,0xda,0x60,0xa0,0x60,0x5f,0x76,0x3c,0x64,0x46,0x45,0xff,0x19,0x16,0x0c,0x40,0x25,0x7f,0x67,0xbb,0x2f,0x3a,0xfc,0x1f,0xbf,0x18,0x6c,0x68,0x90,0x8c,0xad,0x9a,0x23,0x6f,0xfd,0xa9,0xa6,0x3e,0x29,0xb2,0x57,0x1e,0xaa,0x83,0x8c,0xa3,0x1a,0xb5,0x95,0xe3,0xd7,0x0b,0x78,0xc9,0xa4,0xd1,0x0b,0x1c,0xbb,0xcd,0xc5,0xcf,0xe3, -0x13,0x45,0x57,0x43,0x0f,0x1f,0xc1,0x17,0x86,0x26,0x71,0x2f,0xad,0x27,0x6e,0x11,0xf3,0xa6,0xb3,0x72,0x5d,0x90,0xa3,0xdd,0xa0,0x2b,0x74,0x87,0xf7,0x77,0x26,0xd9,0x06,0x8f,0x5f,0x4d,0xfd,0x1e,0x0f,0x7b,0x0c,0x34,0xf0,0x25,0x54,0x21,0xe4,0x6e,0x4b,0x1f,0xab,0x7d,0x9d,0x9a,0x01,0x80,0x02,0xdf,0xf6,0xa9,0xa6,0x19,0xf9,0x24, -0xd2,0xa8,0x14,0x2e,0x38,0xfa,0x21,0x59,0x33,0xfe,0x9b,0x67,0xca,0x10,0x77,0x4f,0x66,0x4e,0x7c,0x97,0xb7,0x04,0x5a,0xa5,0x04,0xb3,0x56,0x39,0xb6,0x2f,0x54,0x21,0xe2,0x5c,0xc5,0x01,0xa8,0x46,0x30,0x82,0x06,0x71,0x30,0x82,0x04,0x59,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x09,0x81,0x2a,0x00,0x00,0x00,0x00,0x00,0x02,0x30, -0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, -0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43, -0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,0x37,0x30,0x31,0x32,0x31,0x33,0x36,0x35,0x35,0x5a,0x17,0x0d,0x32,0x35,0x30,0x37,0x30,0x31,0x32,0x31,0x34,0x36,0x35,0x35,0x5a,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06, -0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73, -0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a, -0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa9,0x1d,0x0d,0xbc,0x77,0x11,0x8a,0x3a,0x20,0xec,0xfc,0x13,0x97,0xf5,0xfa,0x7f,0x69,0x94,0x6b,0x74,0x54,0x10,0xd5,0xa5,0x0a,0x00,0x82,0x85,0xfb,0xed,0x7c,0x68,0x4b,0x2c,0x5f,0xc5,0xc3,0xe5,0x61,0xc2, -0x76,0xb7,0x3e,0x66,0x2b,0x5b,0xf0,0x15,0x53,0x27,0x04,0x31,0x1f,0x41,0x1b,0x1a,0x95,0x1d,0xce,0x09,0x13,0x8e,0x7c,0x61,0x30,0x59,0xb1,0x30,0x44,0x0f,0xf1,0x60,0x88,0x84,0x54,0x43,0x0c,0xd7,0x4d,0xb8,0x38,0x08,0xb3,0x42,0xdd,0x93,0xac,0xd6,0x73,0x30,0x57,0x26,0x82,0xa3,0x45,0x0d,0xd0,0xea,0xf5,0x47,0x81,0xcd,0xbf,0x24, -0x60,0x32,0x58,0x60,0x46,0xf2,0x58,0x47,0x86,0x32,0x84,0x1e,0x74,0x61,0x67,0x91,0x5f,0x81,0x54,0xb1,0xcf,0x93,0x4c,0x92,0xc1,0xc4,0xa6,0x5d,0xd1,0x61,0x13,0x6e,0x28,0xc6,0x1a,0xf9,0x86,0x80,0xbb,0xdf,0x61,0xfc,0x46,0xc1,0x27,0x1d,0x24,0x67,0x12,0x72,0x1a,0x21,0x8a,0xaf,0x4b,0x64,0x89,0x50,0x62,0xb1,0x5d,0xfd,0x77,0x1f, -0x3d,0xf0,0x57,0x75,0xac,0xbd,0x8a,0x42,0x4d,0x40,0x51,0xd1,0x0f,0x9c,0x06,0x3e,0x67,0x7f,0xf5,0x66,0xc0,0x03,0x96,0x44,0x7e,0xef,0xd0,0x4b,0xfd,0x6e,0xe5,0x9a,0xca,0xb1,0xa8,0xf2,0x7a,0x2a,0x0a,0x31,0xf0,0xda,0x4e,0x06,0x91,0xb6,0x88,0x08,0x35,0xe8,0x78,0x1c,0xb0,0xe9,0x99,0xcd,0x3c,0xe7,0x2f,0x44,0xba,0xa7,0xf4,0xdc, -0x64,0xbd,0xa4,0x01,0xc1,0x20,0x09,0x93,0x78,0xcd,0xfc,0xbc,0xc0,0xc9,0x44,0x5d,0x5e,0x16,0x9c,0x01,0x05,0x4f,0x22,0x4d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xe6,0x30,0x82,0x01,0xe2,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16, -0x04,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f, -0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0xf6,0x56,0xcb,0x8f,0xe8,0xa2,0x5c,0x62,0x68,0xd1,0x3d,0x94,0x90,0x5b,0xd7,0xce,0x9a,0x18,0xc4,0x30,0x56,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0, -0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30, -0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70, -0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x74,0x30,0x81,0xa0,0x06,0x03,0x55,0x1d,0x20,0x01,0x01,0xff,0x04,0x81,0x95,0x30,0x81,0x92,0x30,0x81,0x8f,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82, -0x37,0x2e,0x03,0x30,0x81,0x81,0x30,0x3d,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x31,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x50,0x4b,0x49,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x43,0x50,0x53,0x2f,0x64,0x65,0x66,0x61,0x75,0x6c, -0x74,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x50,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x65,0x00, -0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x07,0xe6,0x88,0x51,0x0d,0xe2,0xc6,0xe0,0x98,0x3f,0x81,0x71,0x03,0x3d,0x9d,0xa3,0xa1,0x21,0x6f,0xb3,0xeb,0xa6,0xcc,0xf5,0x31,0xbe,0xcf,0x05,0xe2,0xa9,0xfe,0xfa,0x57,0x6d,0x19,0x30,0xb3, -0xc2,0xc5,0x66,0xc9,0x6a,0xdf,0xf5,0xe7,0xf0,0x78,0xbd,0xc7,0xa8,0x9e,0x25,0xe3,0xf9,0xbc,0xed,0x6b,0x54,0x57,0x08,0x2b,0x51,0x82,0x44,0x12,0xfb,0xb9,0x53,0x8c,0xcc,0xf4,0x60,0x12,0x8a,0x76,0xcc,0x40,0x40,0x41,0x9b,0xdc,0x5c,0x17,0xff,0x5c,0xf9,0x5e,0x17,0x35,0x98,0x24,0x56,0x4b,0x74,0xef,0x42,0x10,0xc8,0xaf,0xbf,0x7f, -0xc6,0x7f,0xf2,0x37,0x7d,0x5a,0x3f,0x1c,0xf2,0x99,0x79,0x4a,0x91,0x52,0x00,0xaf,0x38,0x0f,0x17,0xf5,0x2f,0x79,0x81,0x65,0xd9,0xa9,0xb5,0x6b,0xe4,0xc7,0xce,0xf6,0xca,0x7a,0x00,0x6f,0x4b,0x30,0x44,0x24,0x22,0x3c,0xcf,0xed,0x03,0xa5,0x96,0x8f,0x59,0x29,0xbc,0xb6,0xfd,0x04,0xe1,0x70,0x9f,0x32,0x4a,0x27,0xfd,0x55,0xaf,0x2f, -0xfe,0xb6,0xe5,0x8e,0x33,0xbb,0x62,0x5f,0x9a,0xdb,0x57,0x40,0xe9,0xf1,0xce,0x99,0x66,0x90,0x8c,0xff,0x6a,0x62,0x7f,0xdd,0xc5,0x4a,0x0b,0x91,0x26,0xe2,0x39,0xec,0x19,0x4a,0x71,0x63,0x9d,0x7b,0x21,0x6d,0xc3,0x9c,0xa3,0xa2,0x3c,0xfa,0x7f,0x7d,0x96,0x6a,0x90,0x78,0xa6,0x6d,0xd2,0xe1,0x9c,0xf9,0x1d,0xfc,0x38,0xd8,0x94,0xf4, -0xc6,0xa5,0x0a,0x96,0x86,0xa4,0xbd,0x9e,0x1a,0xae,0x04,0x42,0x83,0xb8,0xb5,0x80,0x9b,0x22,0x38,0x20,0xb5,0x25,0xe5,0x64,0xec,0xf7,0xf4,0xbf,0x7e,0x63,0x59,0x25,0x0f,0x7a,0x2e,0x39,0x57,0x76,0xa2,0x71,0xaa,0x06,0x8a,0x0f,0x89,0x16,0xba,0x61,0xa7,0x11,0xcb,0x9a,0xd8,0x0e,0x47,0x9a,0x80,0xc5,0xd0,0xcd,0xa7,0xd0,0xef,0x7d, -0x83,0xf0,0xe1,0x3b,0x71,0x09,0xdf,0x5d,0x74,0x98,0x22,0x08,0x61,0xda,0xb0,0x50,0x1e,0x6f,0xbd,0xf1,0xe1,0x00,0xdf,0xe7,0x31,0x07,0xa4,0x93,0x3a,0xf7,0x65,0x47,0x78,0xe8,0xf8,0xa8,0x48,0xab,0xf7,0xde,0x72,0x7e,0x61,0x6b,0x6f,0x77,0xa9,0x81,0xcb,0xa7,0x09,0xac,0x39,0xbb,0xec,0xc6,0xcb,0xd8,0x82,0xb4,0x72,0xcd,0x1d,0xf4, -0xb8,0x85,0x01,0x1e,0x80,0xfb,0x1b,0x89,0x2a,0x54,0x39,0xb2,0x5b,0xda,0xc8,0x0d,0x55,0x99,0x7a,0x87,0x73,0x3b,0x08,0xe6,0x98,0x2d,0xea,0x8d,0xe0,0x33,0x2e,0x12,0x29,0xf5,0xc0,0x2f,0x54,0x27,0x21,0xf7,0xc8,0xac,0x4e,0xda,0x28,0xb8,0xb1,0xa9,0xdb,0x96,0xb2,0xa7,0x42,0xa2,0xc9,0xcf,0x19,0x41,0x4d,0xe0,0x86,0xf9,0x2a,0x9a, -0xa3,0x11,0x66,0x30,0xd3,0xbb,0x74,0x32,0x4b,0xdf,0x63,0x7b,0xf5,0x99,0x8a,0x2f,0x1b,0xc7,0x21,0xaf,0x59,0xb5,0xae,0xdc,0x44,0x3c,0x97,0x50,0x71,0xd7,0xa1,0xd2,0xc5,0x55,0xe3,0x69,0xde,0x57,0xc1,0xd1,0xde,0x30,0xc0,0xfd,0xcc,0xe6,0x4d,0xfb,0x0d,0xbf,0x5d,0x4f,0xe9,0x9d,0x1e,0x19,0x38,0x2f,0xbc,0xcf,0x58,0x05,0x2e,0xef, -0x0d,0xa0,0x50,0x35,0xda,0xef,0x09,0x27,0x1c,0xd5,0xb3,0x7e,0x35,0x1e,0x08,0xba,0xda,0x36,0xdb,0xd3,0x5f,0x8f,0xde,0x74,0x88,0x49,0x12,0xa1,0x82,0x02,0xce,0x30,0x82,0x02,0x37,0x02,0x01,0x01,0x30,0x81,0xf8,0xa1,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31, -0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f, -0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54, -0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa2,0x23,0x0a,0x01, -0x01,0x30,0x07,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1a,0x03,0x15,0x00,0x38,0x3d,0xac,0x26,0x41,0x22,0x8f,0x3c,0xc6,0xc6,0x55,0xda,0x06,0x0a,0xf9,0x32,0x6d,0x93,0x2e,0x69,0xa0,0x81,0x83,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04, -0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31, -0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x30,0x22,0x18, -0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x18,0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x35,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x30,0x77,0x30,0x3d,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x01,0x31,0x2f,0x30,0x2d,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x02,0x01, -0x00,0x30,0x0a,0x02,0x01,0x00,0x02,0x02,0x19,0xf6,0x02,0x01,0xff,0x30,0x07,0x02,0x01,0x00,0x02,0x02,0x11,0x74,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf5,0x80,0x63,0x02,0x01,0x00,0x30,0x36,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x02,0x31,0x28,0x30,0x26,0x30,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a, -0x03,0x02,0xa0,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x07,0xa1,0x20,0xa1,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x01,0x86,0xa0,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x79,0x78,0x9e,0x72,0x3a,0x6f,0xf0,0x0e,0x50,0x48,0xa6,0x78,0x90,0xb3,0x7b,0xd8,0xf9,0xd8,0xeb, -0x34,0x2d,0x2b,0x30,0xd5,0x86,0xfa,0x8c,0xc2,0x8e,0x06,0xad,0x31,0xb1,0xf1,0xfa,0x4b,0x6b,0xce,0xd8,0x44,0x4c,0xc7,0xc5,0xb0,0xa0,0x86,0x94,0x97,0x10,0x01,0x25,0xd1,0x29,0x21,0x2b,0x6c,0x1d,0x67,0x37,0xd3,0x15,0x81,0x32,0x40,0xa9,0x7f,0x2e,0x6b,0x4d,0x0d,0xcb,0xc9,0xa0,0x05,0xed,0x54,0x89,0x0a,0x8c,0x7f,0x0d,0x52,0x1a, -0x26,0xda,0x26,0x7f,0x8e,0xa4,0xc2,0x49,0xba,0x54,0x51,0xd1,0x1e,0xfc,0xf2,0x66,0xbf,0x46,0xa5,0xde,0x59,0x55,0x9a,0xbc,0xea,0xca,0xf7,0xf7,0xf9,0x7b,0x77,0x66,0x86,0x03,0xf0,0xf2,0xb8,0x53,0x28,0xa3,0x4a,0x0e,0xbe,0xf9,0x71,0x31,0x82,0x03,0x0d,0x30,0x82,0x03,0x09,0x02,0x01,0x01,0x30,0x81,0x93,0x30,0x7c,0x31,0x0b,0x30, -0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72, -0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee, -0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x82,0x01,0x4a,0x30,0x1a,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0d,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0x30,0x2f,0x06, -0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xa9,0xb8,0x68,0x0f,0x5b,0x53,0xc4,0x53,0x8f,0x02,0x31,0x6a,0xa0,0x8b,0xf7,0x6b,0x41,0xea,0x53,0x11,0xcb,0xc2,0x98,0xe8,0xce,0x11,0x08,0xe6,0x0c,0xe8,0x14,0xd4,0x30,0x81,0xfa,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x02,0x2f,0x31,0x81, -0xea,0x30,0x81,0xe7,0x30,0x81,0xe4,0x30,0x81,0xbd,0x04,0x20,0x3f,0xae,0xc6,0x22,0xb7,0x3e,0xfb,0xf8,0xb4,0xb1,0x77,0x93,0x35,0x3e,0x92,0x51,0x0a,0x9f,0x0b,0x21,0x01,0xf2,0x99,0x2b,0x12,0x0c,0xd1,0x23,0x2f,0x10,0x2e,0xc3,0x30,0x81,0x98,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, -0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, -0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c, -0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x22,0x04,0x20,0x14,0xc2,0x54,0x4f,0xba,0xe2,0x1c,0xdf,0x0c,0x3b,0x9d,0xfc,0xbc,0x5c,0xd8,0xb1,0x97,0xa6,0x39,0x9a,0x30,0x96,0xf8,0xa5,0xf4,0xb2,0x11,0xd6,0x59,0xc6,0x50,0xdd,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x04,0x82,0x01,0x00,0x4e,0x09, -0xa9,0x0d,0x51,0x40,0x35,0x45,0x38,0x88,0x5f,0x87,0xc6,0xaf,0x4a,0xd8,0x8c,0x36,0x34,0xd4,0x98,0x9b,0x5b,0xfb,0xc0,0xc0,0x85,0xd8,0x62,0x7e,0x9d,0x36,0x78,0x97,0xc6,0x77,0x76,0x2c,0xfb,0xf7,0x48,0x80,0x3e,0x93,0x18,0x95,0x1d,0xda,0xab,0x0a,0x0a,0xd1,0x9d,0xdb,0xcd,0xb7,0x67,0x8c,0x91,0xa8,0xdd,0x33,0x8d,0x55,0x9e,0xa0, -0x25,0xdb,0x26,0x6d,0x71,0xea,0xb6,0x99,0x10,0xce,0xa6,0x7a,0xfe,0x58,0x2e,0xb0,0x19,0xbd,0xc4,0x92,0xa4,0xa4,0x2b,0x56,0x85,0x54,0x02,0xdc,0x8d,0xe5,0x7b,0x23,0xcd,0xd7,0xee,0x49,0xcb,0x8d,0x7d,0x2f,0x80,0x9d,0x48,0x77,0xa2,0xe1,0xcc,0xb9,0x66,0x09,0xbd,0x3b,0x43,0x88,0x4d,0x7d,0xbc,0x83,0xff,0xfc,0xbf,0x27,0x4d,0x0c, -0xc7,0x06,0xbb,0x68,0x0d,0x37,0xcc,0xa0,0x0f,0xda,0xe0,0xf5,0xcc,0x8c,0xd2,0x24,0x97,0xe4,0x6c,0x02,0x83,0xb3,0xbd,0x0e,0x50,0xdd,0x2f,0x0c,0x05,0xee,0xe7,0xda,0x9b,0x11,0xc4,0x9d,0x6e,0x67,0x8c,0x29,0x9b,0x4e,0xef,0x33,0xe7,0x31,0x20,0x9e,0xdf,0x47,0xdd,0x6a,0xea,0x7b,0xac,0x08,0x0f,0x83,0x04,0x2c,0xee,0x13,0x35,0x69, -0x90,0xb4,0x8a,0xbe,0xc5,0x5e,0x5e,0x29,0x29,0x09,0xc0,0x1b,0xa7,0x68,0x47,0x29,0x21,0x91,0x3b,0xdf,0xa3,0x2f,0x81,0x42,0x88,0x50,0x90,0x72,0x29,0x4f,0x24,0xc5,0x03,0x45,0x2e,0xa2,0x6a,0x10,0xf4,0xd1,0x0b,0x23,0xbd,0xbf,0x92,0x8c,0xc8,0x74,0x6e,0x35,0xcd,0x74,0x9b,0x38,0xdf,0x13,0xd2,0x2a,0xc5,0xfa,0x30,0xab,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x00,0x02,0x1a,0x02,0x22,0x00,0x02,0x00,0x57,0x00,0x00,0x02,0x43,0x00,0x01,0x02,0x44,0x02,0x56,0x00,0x03,0x02,0x57,0x04,0x61,0x00,0x01,0x04,0x62,0x04,0xaf,0x00,0x03,0x04,0xb0,0x05,0xfc,0x00,0x01,0x05,0xfd,0x06,0x02,0x00,0x03,0x06,0x03,0x06,0x65,0x00,0x01,0x06,0x66,0x06,0x72,0x00,0x03, -0x06,0x73,0x06,0x9a,0x00,0x01,0x06,0x9b,0x06,0x9b,0x00,0x03,0x06,0x9c,0x06,0xad,0x00,0x01,0x06,0xae,0x06,0xd9,0x00,0x02,0x06,0xda,0x06,0xda,0x00,0x03,0x06,0xdb,0x07,0x38,0x00,0x02,0x07,0x39,0x07,0x3d,0x00,0x03,0x07,0x3e,0x07,0x54,0x00,0x01,0x07,0x55,0x07,0x5f,0x00,0x03,0x07,0x60,0x07,0xec,0x00,0x01,0x07,0xed,0x07,0xf0, -0x00,0x03,0x07,0xf1,0x08,0x4b,0x00,0x01,0x08,0x4c,0x08,0x4f,0x00,0x03,0x08,0x50,0x09,0x2b,0x00,0x01,0x09,0x2c,0x09,0x33,0x00,0x03,0x09,0x34,0x09,0x36,0x00,0x01,0x09,0x37,0x09,0x37,0x00,0x03,0x09,0x38,0x09,0x70,0x00,0x01,0x09,0x71,0x09,0x71,0x00,0x02,0x09,0x72,0x09,0x72,0x00,0x01,0x09,0x73,0x09,0x75,0x00,0x03,0x09,0x76, -0x09,0x76,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x03,0x09,0x78,0x09,0x7d,0x00,0x01,0x09,0x7e,0x09,0x7f,0x00,0x03,0x09,0x80,0x0a,0x0e,0x00,0x01,0x0a,0x0f,0x0a,0x13,0x00,0x03,0x0a,0x14,0x0a,0x15,0x00,0x01,0x0a,0x16,0x0a,0x1f,0x00,0x03,0x0a,0x20,0x0a,0x20,0x00,0x01,0x0a,0x21,0x0a,0x23,0x00,0x03,0x0a,0x24,0x0a,0x4a,0x00,0x01, -0x0a,0x4b,0x0a,0x53,0x00,0x03,0x0a,0x54,0x0a,0x5b,0x00,0x01,0x0a,0x5c,0x0a,0x5e,0x00,0x03,0x0a,0x5f,0x0a,0x62,0x00,0x01,0x0a,0x63,0x0a,0x64,0x00,0x02,0x0a,0x65,0x0a,0x69,0x00,0x03,0x0a,0x6a,0x0a,0x6b,0x00,0x01,0x0a,0x6c,0x0a,0x71,0x00,0x03,0x0a,0x72,0x0a,0xda,0x00,0x01,0x0a,0xdb,0x0a,0xe3,0x00,0x03,0x0a,0xe4,0x0b,0x52, -0x00,0x01,0x0b,0x53,0x0b,0x5f,0x00,0x03,0x0b,0x60,0x0b,0x60,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x03,0x0b,0x62,0x0b,0x62,0x00,0x01,0x0b,0x63,0x0b,0x64,0x00,0x03,0x0b,0x65,0x0b,0x65,0x00,0x01,0x0b,0x66,0x0b,0x67,0x00,0x03,0x0b,0x68,0x0b,0xb8,0x00,0x01,0x0b,0xb9,0x0b,0xb9,0x00,0x03,0x0b,0xba,0x0b,0xbe,0x00,0x01,0x0b,0xbf, -0x0b,0xde,0x00,0x03,0x0b,0xdf,0x0b,0xe0,0x00,0x01,0x0b,0xe1,0x0b,0xe1,0x00,0x03,0x0b,0xe2,0x0e,0x19,0x00,0x01,0x0e,0x1a,0x0e,0x1e,0x00,0x03,0x0e,0x1f,0x0e,0x61,0x00,0x01,0x0e,0x62,0x0e,0x6c,0x00,0x03,0x0e,0x6d,0x0e,0xea,0x00,0x01,0x0e,0xeb,0x0e,0xeb,0x00,0x03,0x0e,0xec,0x12,0x58,0x00,0x01,0x12,0x59,0x12,0x5e,0x00,0x03, -0x12,0x5f,0x13,0x29,0x00,0x01,0x13,0x2a,0x13,0x44,0x00,0x03,0x13,0x45,0x13,0xd8,0x00,0x01,0x13,0xd9,0x13,0xe9,0x00,0x03,0x13,0xea,0x13,0xee,0x00,0x01,0x13,0xef,0x13,0xf2,0x00,0x02,0x13,0xf3,0x14,0x16,0x00,0x01,0x14,0x17,0x14,0x17,0x00,0x03,0x14,0x18,0x14,0x5c,0x00,0x01,0x14,0x5d,0x14,0x6a,0x00,0x03,0x14,0x6b,0x14,0x6b, -0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x03,0x14,0x6d,0x14,0x96,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x02,0x14,0x99,0x14,0xdf,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x33,0x02,0x44,0x02,0x44,0x00,0x02,0x02,0x45,0x02,0x45,0x00,0x04,0x02,0x46,0x02,0x47,0x00,0x02,0x04,0x62,0x04,0x73,0x00,0x02,0x04,0x75, -0x04,0x78,0x00,0x04,0x04,0x79,0x04,0x79,0x00,0x02,0x04,0x7b,0x04,0x7f,0x00,0x04,0x04,0x82,0x04,0x84,0x00,0x04,0x04,0x87,0x04,0x91,0x00,0x04,0x04,0x97,0x04,0x9a,0x00,0x04,0x04,0x9b,0x04,0x9d,0x00,0x02,0x04,0xa0,0x04,0xa2,0x00,0x02,0x04,0xa3,0x04,0xa3,0x00,0x04,0x04,0xa4,0x04,0xa4,0x00,0x02,0x04,0xa5,0x04,0xa7,0x00,0x04, -0x04,0xa8,0x04,0xaa,0x00,0x02,0x04,0xab,0x04,0xac,0x00,0x04,0x05,0xfd,0x06,0x00,0x00,0x02,0x06,0x66,0x06,0x72,0x00,0x02,0x07,0x3a,0x07,0x3d,0x00,0x03,0x07,0x55,0x07,0x57,0x00,0x02,0x07,0x58,0x07,0x5b,0x00,0x04,0x07,0x5c,0x07,0x5c,0x00,0x02,0x07,0xed,0x07,0xee,0x00,0x04,0x07,0xef,0x07,0xef,0x00,0x02,0x08,0x4c,0x08,0x4d, -0x00,0x02,0x08,0x4e,0x08,0x4e,0x00,0x04,0x08,0x4f,0x08,0x4f,0x00,0x02,0x09,0x2e,0x09,0x2e,0x00,0x01,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x01,0x09,0x7f,0x09,0x7f,0x00,0x01,0x0a,0x1a,0x0a,0x1a,0x00,0x01,0x0a,0x21,0x0a,0x21,0x00,0x01,0x0a,0x23,0x0a,0x23,0x00,0x01,0x0a,0x50,0x0a,0x50,0x00,0x01,0x0a,0x6f, -0x0a,0x6f,0x00,0x01,0x0a,0xdb,0x0a,0xe0,0x00,0x02,0x0a,0xe1,0x0a,0xe1,0x00,0x04,0x0a,0xe2,0x0a,0xe2,0x00,0x02,0x0a,0xe3,0x0a,0xe3,0x00,0x04,0x0e,0x1e,0x0e,0x1e,0x00,0x01,0x0e,0x6b,0x0e,0x6c,0x00,0x01,0x13,0x2c,0x13,0x2c,0x00,0x01,0x13,0x2f,0x13,0x2f,0x00,0x01,0x13,0x33,0x13,0x35,0x00,0x01,0x13,0x38,0x13,0x38,0x00,0x01, -0x13,0x3c,0x13,0x3c,0x00,0x01,0x13,0x3f,0x13,0x40,0x00,0x01,0x14,0x62,0x14,0x62,0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x0a,0x01,0xee,0x04,0xce,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x00,0xea,0x63,0x79,0x72,0x6c,0x00,0xf4,0x64,0x65,0x76,0x32,0x01,0x08,0x67,0x6a,0x72,0x32, -0x01,0x22,0x67,0x72,0x65,0x6b,0x01,0x12,0x67,0x75,0x72,0x32,0x01,0x2c,0x68,0x65,0x62,0x72,0x01,0x36,0x6b,0x68,0x6d,0x72,0x01,0x4e,0x6b,0x6e,0x64,0x32,0x01,0x44,0x6c,0x61,0x6f,0x20,0x01,0x58,0x6c,0x61,0x74,0x6e,0x01,0x62,0x6d,0x6c,0x6d,0x32,0x01,0x8a,0x6d,0x6f,0x6e,0x67,0x01,0x94,0x6d,0x79,0x6d,0x72,0x01,0x9e,0x6f,0x72, -0x79,0x32,0x01,0xb2,0x74,0x61,0x6c,0x75,0x01,0xa8,0x74,0x65,0x6c,0x32,0x01,0xc6,0x74,0x68,0x61,0x69,0x01,0xd0,0x74,0x69,0x62,0x74,0x01,0xda,0x74,0x6d,0x6c,0x32,0x01,0xbc,0x00,0x2e,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x3a,0x4d,0x4f,0x52,0x20,0x00,0x46,0x53,0x4e,0x44,0x20,0x00,0x52,0x55,0x52, -0x44,0x20,0x00,0x5e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x09,0x00,0x13,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0b,0x00,0x15,0x00,0x1f,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20, -0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0d,0x00,0x17,0x00,0x21,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x18,0x00,0x22,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x05, -0x00,0x01,0x00,0x0f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x10,0x00,0x19,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, -0xff,0xff,0x00,0x00,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x06,0x00,0x02,0x00,0x11,0x00,0x1a,0x00,0x23,0x00,0x00,0xff,0xff,0x00,0x04,0x00,0x07,0x00,0x03,0x00,0x1b,0x00,0x24,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00, -0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00, -0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x25,0x63,0x61,0x73,0x65,0x00,0xe0,0x63,0x61,0x73,0x65,0x00,0xe6,0x63,0x61,0x73,0x65,0x00,0xec,0x63,0x61,0x73,0x65,0x00,0xf2,0x63,0x70,0x73,0x70,0x00,0xf8,0x63,0x70,0x73,0x70,0x01,0x02,0x63,0x70,0x73,0x70,0x01,0x0c,0x63,0x70,0x73,0x70,0x01,0x16,0x6b,0x65,0x72,0x6e,0x01,0x20,0x6b,0x65, -0x72,0x6e,0x01,0x36,0x6b,0x65,0x72,0x6e,0x01,0x60,0x6b,0x65,0x72,0x6e,0x01,0x76,0x6b,0x65,0x72,0x6e,0x01,0x8c,0x6b,0x65,0x72,0x6e,0x01,0xa2,0x6b,0x65,0x72,0x6e,0x01,0xcc,0x6b,0x65,0x72,0x6e,0x01,0xd2,0x6b,0x65,0x72,0x6e,0x01,0xd8,0x6b,0x65,0x72,0x6e,0x01,0xde,0x6d,0x61,0x72,0x6b,0x01,0xe4,0x6d,0x61,0x72,0x6b,0x01,0xee, -0x6d,0x61,0x72,0x6b,0x01,0xf8,0x6d,0x61,0x72,0x6b,0x02,0x02,0x6d,0x61,0x72,0x6b,0x02,0x0c,0x6d,0x61,0x72,0x6b,0x02,0x16,0x6d,0x61,0x72,0x6b,0x02,0x20,0x6d,0x61,0x72,0x6b,0x02,0x28,0x6d,0x61,0x72,0x6b,0x02,0x6a,0x6d,0x61,0x72,0x6b,0x02,0x80,0x6d,0x6b,0x6d,0x6b,0x02,0x94,0x6d,0x6b,0x6d,0x6b,0x02,0x9c,0x6d,0x6b,0x6d,0x6b, -0x02,0xa4,0x6d,0x6b,0x6d,0x6b,0x02,0xac,0x6d,0x6b,0x6d,0x6b,0x02,0xb4,0x6d,0x6b,0x6d,0x6b,0x02,0xbc,0x6d,0x6b,0x6d,0x6b,0x02,0xc4,0x6d,0x6b,0x6d,0x6b,0x02,0xcc,0x6d,0x6b,0x6d,0x6b,0x02,0xd8,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00, -0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13, -0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09, -0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40, -0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00, -0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x00,0x00,0x1f,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20, -0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09, -0x00,0x0a,0x00,0x0c,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17, -0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x0d,0x00,0x0e,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x86,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x52,0x01,0x62,0x01,0x72,0x01,0x82,0x01,0x92,0x01,0xa2,0x01,0xb2,0x01,0xc2,0x01,0xd2, -0x01,0xe2,0x01,0xf2,0x02,0x02,0x02,0x12,0x02,0x22,0x02,0x32,0x02,0x42,0x02,0x52,0x02,0x62,0x02,0x72,0x02,0x96,0x02,0xa6,0x02,0xb6,0x02,0xc6,0x02,0xd6,0x02,0xe6,0x02,0xf6,0x03,0x06,0x03,0x2a,0x03,0x3a,0x03,0x68,0x04,0x5e,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x06,0x56,0x06,0x7a,0x06,0xee,0x07,0x1c,0x09,0x70,0x09,0x80,0x09,0x90, -0x09,0xa0,0x09,0xb0,0x09,0xc0,0x09,0xd0,0x09,0xe0,0x0a,0x04,0x0a,0x14,0x0a,0x38,0x0a,0x7a,0x0a,0xa8,0x0a,0xb8,0x0a,0xc8,0x0a,0xf6,0x0b,0x06,0x0b,0x16,0x0b,0x26,0x0b,0x36,0x0b,0x46,0x0b,0x56,0x0b,0x66,0x0b,0x76,0x0b,0x9a,0x0b,0xbe,0x0b,0xe2,0x0c,0x06,0x0c,0x2a,0x0c,0x4e,0x0c,0x72,0x0c,0x96,0x0c,0xba,0x0c,0xde,0x0c,0xee, -0x0c,0xfe,0x0d,0x0e,0x0d,0x1e,0x0d,0x2e,0x0d,0x3e,0x0d,0x4e,0x0d,0x5e,0x0d,0x6e,0x0d,0x7e,0x0d,0x8e,0x0d,0x9e,0x0d,0xae,0x0d,0xbe,0x0d,0xce,0x0d,0xde,0x0d,0xee,0x0d,0xfe,0x0e,0x0e,0x0e,0x1e,0x0e,0x2e,0x0e,0x3e,0x0e,0x4e,0x0e,0x5e,0x0e,0x6e,0x0e,0x7e,0x0e,0x8e,0x0e,0x9e,0x0e,0xae,0x0e,0xbe,0x0e,0xce,0x0e,0xde,0x0e,0xee, -0x0e,0xfe,0x0f,0x0e,0x0f,0x1e,0x0f,0x2e,0x0f,0x3e,0x0f,0x4e,0x0f,0x5e,0x0f,0x6e,0x0f,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0xae,0x0f,0xbe,0x0f,0xce,0x0f,0xde,0x0f,0xee,0x0f,0xfe,0x10,0x0e,0x10,0x1e,0x10,0x2e,0x10,0x3e,0x10,0x4e,0x10,0x5e,0x10,0x6e,0x10,0x7e,0x10,0x8e,0x00,0x09,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, -0x00,0x02,0x00,0x00,0x0f,0x86,0x00,0x01,0x00,0x02,0x00,0x00,0x2d,0x04,0x00,0x09,0x00,0x08,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x02,0x00,0x00,0x35,0xd0,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x16,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x82,0xbe,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0x97,0x3c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x98,0x5c,0x00,0x09,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x96,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x99,0xa2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0x9a,0x78,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa8,0x76,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa9,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xaa,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0xb1,0x9a,0x00,0x09,0x03,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xb2,0x1c,0x00,0x09,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0xfe,0xcc,0x00,0x09,0x04,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x01,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x01,0x00,0x00,0x48,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xe8,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xf2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x4a,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x01,0x02,0x92,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x02,0xa8,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x40,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x78,0x00,0x09,0x00,0x01, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x05,0x00,0x01,0x12,0xb8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x15,0x60,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x18,0xd4,0x00,0x09,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x4a,0xcc,0x00,0x09,0x00,0x01, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x3a,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x90,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xa2,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xe4, -0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xfc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x58,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x36,0x00,0x01, -0x00,0x08,0x00,0x00,0x4f,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x50,0x00,0x09,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde, -0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x58,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x64,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x7e,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xa2,0x00,0x01,0x00,0x08, -0x00,0x00,0x4f,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xe0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x12,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x24,0x00,0x01,0x00,0x08, -0x00,0x00,0x50,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x56,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x9e,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xaa,0x00,0x01,0x00,0x08, -0x00,0x00,0x50,0xb8,0x00,0x09,0x00,0x01,0x00,0x22,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x92,0x00,0x9a,0x00,0xa2,0x00,0xaa,0x00,0xb2,0x00,0xba,0x00,0xc2,0x00,0xca,0x00,0xd2,0x00,0xda,0x00,0xe2,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x01,0x12,0x01,0x1a, -0x01,0x22,0x01,0x2a,0x01,0x32,0x01,0x3a,0x01,0x42,0x01,0x4a,0x01,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xce,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xda,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xe8,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x16,0x00,0x01, -0x00,0x08,0x00,0x00,0x51,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x34,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x82,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x90,0x00,0x01, -0x00,0x08,0x00,0x00,0x51,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xf2,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x04,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x18,0x00,0x01, -0x00,0x08,0x00,0x00,0x52,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x36,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xa6,0x00,0x01, -0x00,0x08,0x00,0x00,0x52,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xca,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xdc,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xf0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1b,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xbe,0x00,0x09, -0x00,0x01,0x00,0x0c,0x00,0x1e,0x00,0x26,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xfa,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x14,0x00,0x01,0x00,0x08, -0x00,0x00,0x54,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x72,0x00,0x09,0x00,0x01, -0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xd8,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xe4,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xf2,0x00,0x09,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x08, -0x00,0x00,0x55,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x86,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xa2,0x00,0x01,0x00,0x08, -0x00,0x00,0x55,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xcc,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x56,0x00,0x01,0x00,0x08,0x00,0x00, -0x56,0x68,0x00,0x09,0x00,0x01,0x00,0x3b,0x00,0x7c,0x00,0x84,0x00,0x8c,0x00,0x94,0x00,0x9c,0x00,0xa4,0x00,0xac,0x00,0xb4,0x00,0xbc,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x01,0x14,0x01,0x1c,0x01,0x24,0x01,0x2c,0x01,0x34,0x01,0x3c,0x01,0x44,0x01,0x4c,0x01,0x54, -0x01,0x5c,0x01,0x64,0x01,0x6c,0x01,0x74,0x01,0x7c,0x01,0x84,0x01,0x8c,0x01,0x94,0x01,0x9c,0x01,0xa4,0x01,0xac,0x01,0xb4,0x01,0xbc,0x01,0xc4,0x01,0xcc,0x01,0xd4,0x01,0xdc,0x01,0xe4,0x01,0xec,0x01,0xf4,0x01,0xfc,0x02,0x04,0x02,0x0c,0x02,0x14,0x02,0x1c,0x02,0x24,0x02,0x2c,0x02,0x34,0x02,0x3c,0x02,0x44,0x02,0x4c,0x00,0x01, -0x00,0x08,0x00,0x00,0x56,0x62,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x90,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xc4,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xd8,0x00,0x01, -0x00,0x08,0x00,0x00,0x56,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x10,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x24,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x6e,0x00,0x01, -0x00,0x08,0x00,0x00,0x57,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xa8,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x12,0x00,0x01, -0x00,0x08,0x00,0x00,0x58,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xa6,0x00,0x01, -0x00,0x08,0x00,0x00,0x58,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xf4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x32,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x46,0x00,0x01, -0x00,0x08,0x00,0x00,0x59,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xaa,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xd4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xea,0x00,0x01, -0x00,0x08,0x00,0x00,0x59,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x18,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x4c,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x72,0x00,0x01, -0x00,0x08,0x00,0x00,0x5a,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x36,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xa4,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, -0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xd0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1e,0xda,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1f,0x28,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, -0x00,0x06,0x00,0x01,0x20,0x1c,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xc2,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xce,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xb0,0x00,0x09,0x00,0x01,0x00,0x03, -0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x46,0x00,0x09,0x00,0x01,0x00,0x06,0x00,0x12,0x00,0x1a,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xc6,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xd2, -0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xde,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xf6,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x02,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x66,0x00,0x01, -0x00,0x08,0x00,0x00,0x5d,0x72,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x7e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xc8,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08, -0x00,0x00,0x5e,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x70,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x21,0x7a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xa4,0x00,0x09,0x00,0x00, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xb6,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xca,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xde,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xf4,0x00,0x09,0x00,0x00, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x20,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x2e,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x62, -0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x8c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xa8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xb8,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xd4, -0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xf0,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x3c,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x4e, -0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x8a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x9c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xd8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c, -0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x0a,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x3e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x5e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x7e,0x00,0x09,0x00,0x00, -0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xd2,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x62,0x06,0x00,0x01,0x00,0x08, -0x00,0x00,0x62,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, -0x00,0x00,0x65,0x04,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x67,0x4e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0xf8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, -0x00,0x00,0x69,0xca,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6a,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6b,0xb0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6c,0x88,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, -0x00,0x00,0x6c,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6d,0xbc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x18,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, -0x00,0x00,0x6f,0xbe,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x70,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x71,0x6e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x72,0x94,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06, -0x00,0x00,0x72,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x73,0x40,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xe0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x60,0xfc,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x02,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x06,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x14,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x18,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x1c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x24,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x26,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x36,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x42,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x46,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x52,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x58,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x5c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x60,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x62,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x64,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x66,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x68,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x6c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x61,0x70,0x00,0x01,0x1c,0xce,0x00,0x05,0x00,0x00,0x00,0x53,0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x09,0x64,0x14,0x30,0x00,0xb8,0x10,0x92,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c, -0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x14,0x30,0x14,0x30,0x15,0x52,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8, -0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0x01,0x09,0x08,0x01,0x56,0x01,0x56,0x00,0x01,0x09,0x08, -0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55, -0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06, -0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55, -0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55, -0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b, -0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55, -0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55, -0xff,0x55,0x09,0x65,0xff,0x55,0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, -0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, -0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, -0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1, -0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55, -0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55, -0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0, -0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55, -0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55, -0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78, -0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55, -0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55, -0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf, -0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55, -0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55, -0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16, -0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55, -0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x3c,0xff,0x55,0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55, -0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a, -0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55, -0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55, -0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59, -0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55, -0x00,0x31,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c, -0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab, -0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab, -0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e, -0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x32,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55, -0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9, -0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55, -0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55, -0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26, -0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab, -0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55, -0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a, -0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab, -0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55, -0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2, -0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55, -0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55, -0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2, -0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55, -0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55, -0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a, -0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55, -0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55, -0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4, -0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55, -0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55, -0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20, -0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab, -0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55, -0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84, -0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55, -0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab, -0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83, -0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x9a,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55, -0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16, -0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55, -0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x65,0xff,0x55, -0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97, -0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55, -0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55, -0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a, -0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55, -0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab, -0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d, -0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55, -0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x3c,0xff,0x55, -0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, -0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x30,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x0e,0xff,0x55, -0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98, -0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab, -0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab, -0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40, -0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55, -0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa, -0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55, -0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55, -0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29, -0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55, -0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55, -0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, -0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, -0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, -0xff,0x55,0x09,0xb3,0xff,0x55,0xff,0x55,0x09,0xb4,0xff,0x55,0xff,0x55,0x09,0xb5,0xff,0x55,0xff,0x55,0x09,0xb6,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd, -0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55, -0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55, -0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9, -0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfd,0xff,0x55,0xff,0x55,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55, -0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55, -0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72, -0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab, -0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55, -0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7, -0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55, -0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab, -0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf, -0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab, -0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab, -0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74, -0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55, -0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55, -0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, -0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55, -0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1e,0x08,0xc8,0x08,0xc9,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x09,0x00,0x06,0x09,0x17,0x09,0x18,0x00,0x08,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x5d,0x09,0x5e,0x00,0x0b, -0x09,0x80,0x09,0x83,0x00,0x0d,0x09,0xad,0x09,0xad,0x00,0x11,0x09,0xaf,0x09,0xb1,0x00,0x12,0x09,0xb3,0x09,0xb8,0x00,0x15,0x0a,0x54,0x0a,0x57,0x00,0x1b,0x0a,0x88,0x0a,0x88,0x00,0x1f,0x0a,0xb4,0x0a,0xb5,0x00,0x20,0x0b,0x0c,0x0b,0x0f,0x00,0x22,0x0b,0x11,0x0b,0x18,0x00,0x26,0x0e,0x8f,0x0e,0x8f,0x00,0x2e,0x0e,0x93,0x0e,0x93, -0x00,0x2f,0x0e,0x95,0x0e,0x97,0x00,0x30,0x0f,0x02,0x0f,0x02,0x00,0x33,0x0f,0x22,0x0f,0x23,0x00,0x34,0x0f,0x28,0x0f,0x2b,0x00,0x36,0x0f,0x62,0x0f,0x63,0x00,0x3a,0x0f,0x66,0x0f,0x67,0x00,0x3c,0x0f,0x6a,0x0f,0x6b,0x00,0x3e,0x0f,0x98,0x0f,0xa6,0x00,0x40,0x0f,0xc3,0x0f,0xc3,0x00,0x4f,0x14,0x58,0x14,0x58,0x00,0x50,0x14,0x7d, -0x14,0x7d,0x00,0x51,0x14,0xad,0x14,0xad,0x00,0x52,0x00,0x02,0x01,0x70,0x00,0x05,0x00,0x00,0x02,0x2e,0x03,0x3a,0x00,0x08,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55, -0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab, -0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1f,0x08,0xc9, -0x08,0xca,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x08,0x00,0x06,0x09,0x0a,0x09,0x0b,0x00,0x07,0x09,0x29,0x09,0x29,0x00,0x09,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x85,0x09,0x85,0x00,0x0b,0x09,0xb3,0x09,0xb8,0x00,0x0c,0x0a,0x56,0x0a,0x57,0x00,0x12,0x0a,0xb4,0x0a,0xb5,0x00,0x14, -0x0b,0x0c,0x0b,0x0f,0x00,0x16,0x0b,0x11,0x0b,0x18,0x00,0x1a,0x0e,0x24,0x0e,0x24,0x00,0x22,0x0e,0x5e,0x0e,0x5e,0x00,0x23,0x0e,0x74,0x0e,0x75,0x00,0x24,0x0e,0xdc,0x0e,0xe3,0x00,0x26,0x0e,0xe6,0x0e,0xe6,0x00,0x2e,0x0f,0x02,0x0f,0x02,0x00,0x2f,0x0f,0x22,0x0f,0x23,0x00,0x30,0x0f,0x39,0x0f,0x39,0x00,0x32,0x0f,0x3b,0x0f,0x3b, -0x00,0x33,0x0f,0x62,0x0f,0x63,0x00,0x34,0x0f,0x66,0x0f,0x67,0x00,0x36,0x0f,0x6a,0x0f,0x6b,0x00,0x38,0x0f,0x98,0x0f,0xa6,0x00,0x3a,0x0f,0xc3,0x0f,0xc3,0x00,0x49,0x11,0x02,0x11,0x09,0x00,0x4a,0x14,0x58,0x14,0x58,0x00,0x52,0x14,0x7d,0x14,0x7d,0x00,0x53,0x14,0xad,0x14,0xad,0x00,0x54,0x00,0x02,0x00,0x2c,0x08,0xc9,0x08,0xc9, -0x00,0x01,0x08,0xca,0x08,0xca,0x00,0x03,0x08,0xff,0x09,0x01,0x00,0x04,0x09,0x04,0x09,0x04,0x00,0x04,0x09,0x08,0x09,0x08,0x00,0x01,0x09,0x0a,0x09,0x0a,0x00,0x02,0x09,0x0b,0x09,0x0b,0x00,0x03,0x09,0x29,0x09,0x29,0x00,0x02,0x09,0x45,0x09,0x45,0x00,0x07,0x09,0x85,0x09,0x85,0x00,0x03,0x09,0xb3,0x09,0xb5,0x00,0x05,0x09,0xb6, -0x09,0xb6,0x00,0x06,0x09,0xb7,0x09,0xb8,0x00,0x07,0x0a,0x56,0x0a,0x57,0x00,0x07,0x0a,0xb4,0x0a,0xb5,0x00,0x07,0x0b,0x0c,0x0b,0x0c,0x00,0x05,0x0b,0x0d,0x0b,0x0d,0x00,0x06,0x0b,0x0e,0x0b,0x0f,0x00,0x07,0x0b,0x11,0x0b,0x13,0x00,0x05,0x0b,0x14,0x0b,0x14,0x00,0x06,0x0b,0x15,0x0b,0x18,0x00,0x07,0x0e,0x24,0x0e,0x24,0x00,0x02, -0x0e,0x5e,0x0e,0x5e,0x00,0x02,0x0e,0x74,0x0e,0x75,0x00,0x02,0x0e,0xdc,0x0e,0xe3,0x00,0x02,0x0e,0xe6,0x0e,0xe6,0x00,0x02,0x0f,0x02,0x0f,0x02,0x00,0x06,0x0f,0x22,0x0f,0x23,0x00,0x07,0x0f,0x39,0x0f,0x39,0x00,0x02,0x0f,0x3b,0x0f,0x3b,0x00,0x02,0x0f,0x62,0x0f,0x63,0x00,0x04,0x0f,0x66,0x0f,0x67,0x00,0x04,0x0f,0x6a,0x0f,0x6b, -0x00,0x04,0x0f,0x98,0x0f,0x99,0x00,0x05,0x0f,0x9a,0x0f,0x9b,0x00,0x07,0x0f,0x9c,0x0f,0x9f,0x00,0x05,0x0f,0xa0,0x0f,0xa2,0x00,0x07,0x0f,0xa3,0x0f,0xa3,0x00,0x05,0x0f,0xa4,0x0f,0xa6,0x00,0x07,0x0f,0xc3,0x0f,0xc3,0x00,0x07,0x11,0x02,0x11,0x09,0x00,0x02,0x14,0x58,0x14,0x58,0x00,0x07,0x14,0x7d,0x14,0x7d,0x00,0x07,0x14,0xad, -0x14,0xad,0x00,0x07,0x00,0x02,0x00,0xf0,0x08,0xcc,0x08,0xcd,0x00,0x05,0x08,0xd4,0x08,0xd5,0x00,0x01,0x08,0xd6,0x08,0xd6,0x00,0x02,0x08,0xe1,0x08,0xe2,0x00,0x02,0x08,0xe5,0x08,0xe5,0x00,0x02,0x08,0xe8,0x08,0xe8,0x00,0x02,0x08,0xeb,0x08,0xeb,0x00,0x02,0x08,0xed,0x08,0xed,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x01,0x08,0xef, -0x08,0xef,0x00,0x02,0x08,0xf0,0x08,0xf0,0x00,0x01,0x08,0xf1,0x08,0xf1,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x06,0x08,0xf9,0x08,0xfa,0x00,0x01,0x08,0xff,0x08,0xff,0x00,0x01,0x09,0x01,0x09,0x01,0x00,0x01,0x09,0x06,0x09,0x06,0x00,0x01,0x09,0x07,0x09,0x07,0x00,0x02,0x09,0x09,0x09,0x09,0x00,0x03,0x09,0x0a,0x09,0x0a,0x00,0x01, -0x09,0x0c,0x09,0x0d,0x00,0x01,0x09,0x0f,0x09,0x0f,0x00,0x04,0x09,0x10,0x09,0x11,0x00,0x02,0x09,0x12,0x09,0x14,0x00,0x06,0x09,0x15,0x09,0x16,0x00,0x02,0x09,0x17,0x09,0x1a,0x00,0x01,0x09,0x1b,0x09,0x1e,0x00,0x02,0x09,0x1f,0x09,0x20,0x00,0x07,0x09,0x22,0x09,0x22,0x00,0x02,0x09,0x24,0x09,0x24,0x00,0x01,0x09,0x26,0x09,0x26, -0x00,0x02,0x09,0x28,0x09,0x28,0x00,0x02,0x09,0x29,0x09,0x2b,0x00,0x01,0x09,0x34,0x09,0x34,0x00,0x01,0x09,0x3c,0x09,0x3c,0x00,0x02,0x09,0x3e,0x09,0x3e,0x00,0x02,0x09,0x40,0x09,0x40,0x00,0x02,0x09,0x41,0x09,0x42,0x00,0x06,0x09,0x45,0x09,0x45,0x00,0x01,0x09,0x46,0x09,0x49,0x00,0x08,0x09,0x4a,0x09,0x4a,0x00,0x01,0x09,0x4c, -0x09,0x4c,0x00,0x06,0x09,0x4e,0x09,0x4e,0x00,0x02,0x09,0x5b,0x09,0x5b,0x00,0x02,0x09,0x5c,0x09,0x5c,0x00,0x05,0x09,0x5d,0x09,0x5d,0x00,0x02,0x09,0x5e,0x09,0x5e,0x00,0x01,0x09,0x60,0x09,0x60,0x00,0x02,0x09,0x63,0x09,0x63,0x00,0x02,0x09,0x64,0x09,0x64,0x00,0x04,0x09,0x65,0x09,0x65,0x00,0x0a,0x09,0x67,0x09,0x67,0x00,0x0a, -0x09,0x6c,0x09,0x6d,0x00,0x02,0x09,0x71,0x09,0x71,0x00,0x01,0x09,0x80,0x09,0x80,0x00,0x03,0x09,0x82,0x09,0x82,0x00,0x03,0x09,0x88,0x09,0x8a,0x00,0x01,0x09,0x8c,0x09,0x8c,0x00,0x02,0x09,0x8d,0x09,0x8d,0x00,0x01,0x09,0x8e,0x09,0x8e,0x00,0x02,0x09,0x8f,0x09,0x8f,0x00,0x06,0x09,0x90,0x09,0x90,0x00,0x02,0x09,0x92,0x09,0x92, -0x00,0x02,0x09,0x93,0x09,0x93,0x00,0x05,0x09,0x94,0x09,0x94,0x00,0x02,0x09,0x95,0x09,0x95,0x00,0x05,0x09,0x96,0x09,0x96,0x00,0x02,0x09,0x97,0x09,0x98,0x00,0x06,0x09,0x9b,0x09,0x9b,0x00,0x06,0x09,0x9e,0x09,0x9e,0x00,0x06,0x09,0xa1,0x09,0xa1,0x00,0x06,0x09,0xa4,0x09,0xa4,0x00,0x06,0x09,0xa7,0x09,0xa7,0x00,0x06,0x09,0xaa, -0x09,0xac,0x00,0x02,0x09,0xae,0x09,0xae,0x00,0x02,0x09,0xb2,0x09,0xb2,0x00,0x01,0x09,0xb3,0x09,0xb6,0x00,0x09,0x09,0xb7,0x09,0xbe,0x00,0x01,0x09,0xbf,0x09,0xc3,0x00,0x02,0x09,0xc4,0x09,0xc4,0x00,0x07,0x09,0xc6,0x09,0xc6,0x00,0x02,0x09,0xc8,0x09,0xca,0x00,0x02,0x09,0xcc,0x09,0xcd,0x00,0x02,0x09,0xd2,0x09,0xd3,0x00,0x02, -0x09,0xd7,0x09,0xd8,0x00,0x02,0x09,0xd9,0x09,0xda,0x00,0x08,0x09,0xdb,0x09,0xdb,0x00,0x01,0x09,0xdc,0x09,0xdc,0x00,0x08,0x09,0xdd,0x09,0xdd,0x00,0x01,0x09,0xde,0x09,0xde,0x00,0x08,0x09,0xdf,0x09,0xdf,0x00,0x01,0x09,0xe1,0x09,0xe5,0x00,0x08,0x09,0xe7,0x09,0xea,0x00,0x08,0x09,0xec,0x09,0xec,0x00,0x01,0x09,0xee,0x09,0xee, -0x00,0x01,0x09,0xf0,0x09,0xf0,0x00,0x01,0x09,0xf2,0x09,0xf2,0x00,0x06,0x09,0xf9,0x09,0xf9,0x00,0x05,0x09,0xfa,0x09,0xfa,0x00,0x06,0x09,0xfd,0x09,0xfd,0x00,0x09,0x09,0xfe,0x0a,0x05,0x00,0x01,0x0a,0x07,0x0a,0x07,0x00,0x01,0x0a,0x0a,0x0a,0x0b,0x00,0x01,0x0a,0x0d,0x0a,0x0d,0x00,0x01,0x0a,0x24,0x0a,0x25,0x00,0x01,0x0a,0x26, -0x0a,0x27,0x00,0x02,0x0a,0x28,0x0a,0x28,0x00,0x07,0x0a,0x2a,0x0a,0x2a,0x00,0x02,0x0a,0x3e,0x0a,0x3e,0x00,0x08,0x0a,0x56,0x0a,0x56,0x00,0x01,0x0a,0x58,0x0a,0x58,0x00,0x02,0x0a,0x5a,0x0a,0x5a,0x00,0x02,0x0a,0x63,0x0a,0x63,0x00,0x01,0x0a,0x72,0x0a,0x72,0x00,0x02,0x0a,0x73,0x0a,0x73,0x00,0x06,0x0a,0x74,0x0a,0x74,0x00,0x02, -0x0a,0x76,0x0a,0x76,0x00,0x02,0x0a,0x77,0x0a,0x77,0x00,0x06,0x0a,0x78,0x0a,0x78,0x00,0x02,0x0a,0x79,0x0a,0x79,0x00,0x06,0x0a,0x7a,0x0a,0x7a,0x00,0x02,0x0a,0x7b,0x0a,0x7b,0x00,0x06,0x0a,0x7c,0x0a,0x7c,0x00,0x02,0x0a,0x7d,0x0a,0x7d,0x00,0x06,0x0a,0x7e,0x0a,0x7e,0x00,0x02,0x0a,0x7f,0x0a,0x7f,0x00,0x01,0x0a,0x80,0x0a,0x80, -0x00,0x06,0x0a,0x83,0x0a,0x83,0x00,0x06,0x0a,0x86,0x0a,0x87,0x00,0x02,0x0a,0x88,0x0a,0x8a,0x00,0x01,0x0a,0x8b,0x0a,0x8b,0x00,0x07,0x0a,0x8d,0x0a,0x8d,0x00,0x02,0x0a,0x8f,0x0a,0x8f,0x00,0x07,0x0a,0x91,0x0a,0x91,0x00,0x02,0x0a,0x93,0x0a,0x93,0x00,0x07,0x0a,0x95,0x0a,0x95,0x00,0x02,0x0a,0x9d,0x0a,0x9e,0x00,0x08,0x0a,0xa0, -0x0a,0xa1,0x00,0x08,0x0a,0xa3,0x0a,0xa3,0x00,0x08,0x0a,0xa6,0x0a,0xa9,0x00,0x02,0x0a,0xab,0x0a,0xab,0x00,0x06,0x0a,0xad,0x0a,0xad,0x00,0x01,0x0a,0xaf,0x0a,0xaf,0x00,0x01,0x0a,0xb2,0x0a,0xb2,0x00,0x01,0x0a,0xb4,0x0a,0xb7,0x00,0x01,0x0b,0x19,0x0b,0x19,0x00,0x02,0x0e,0x20,0x0e,0x20,0x00,0x01,0x0e,0x3a,0x0e,0x3a,0x00,0x02, -0x0e,0x3d,0x0e,0x3d,0x00,0x02,0x0e,0x3f,0x0e,0x3f,0x00,0x08,0x0e,0x41,0x0e,0x41,0x00,0x08,0x0e,0x43,0x0e,0x43,0x00,0x08,0x0e,0x47,0x0e,0x47,0x00,0x01,0x0e,0x49,0x0e,0x49,0x00,0x06,0x0e,0x4b,0x0e,0x4b,0x00,0x01,0x0e,0x4d,0x0e,0x4d,0x00,0x06,0x0e,0x4f,0x0e,0x4f,0x00,0x01,0x0e,0x51,0x0e,0x51,0x00,0x06,0x0e,0x5b,0x0e,0x5c, -0x00,0x02,0x0e,0x5f,0x0e,0x5f,0x00,0x02,0x0e,0x6f,0x0e,0x6f,0x00,0x02,0x0e,0x71,0x0e,0x71,0x00,0x02,0x0e,0x76,0x0e,0x76,0x00,0x01,0x0e,0xa3,0x0e,0xa3,0x00,0x02,0x0e,0xac,0x0e,0xac,0x00,0x02,0x0e,0xaf,0x0e,0xaf,0x00,0x02,0x0e,0xd1,0x0e,0xd1,0x00,0x05,0x0e,0xd7,0x0e,0xd7,0x00,0x02,0x0e,0xe7,0x0e,0xe7,0x00,0x06,0x0e,0xe9, -0x0e,0xe9,0x00,0x06,0x0f,0x16,0x0f,0x16,0x00,0x06,0x0f,0x1a,0x0f,0x1a,0x00,0x06,0x0f,0x1e,0x0f,0x1e,0x00,0x01,0x0f,0x20,0x0f,0x20,0x00,0x01,0x0f,0x22,0x0f,0x22,0x00,0x01,0x0f,0x24,0x0f,0x24,0x00,0x06,0x0f,0x28,0x0f,0x28,0x00,0x01,0x0f,0x2a,0x0f,0x2a,0x00,0x01,0x0f,0x2c,0x0f,0x2c,0x00,0x01,0x0f,0x2e,0x0f,0x2e,0x00,0x06, -0x0f,0x30,0x0f,0x30,0x00,0x01,0x0f,0x32,0x0f,0x32,0x00,0x06,0x0f,0x34,0x0f,0x34,0x00,0x01,0x0f,0x36,0x0f,0x36,0x00,0x06,0x0f,0x38,0x0f,0x38,0x00,0x01,0x0f,0x3a,0x0f,0x3a,0x00,0x01,0x0f,0x3c,0x0f,0x3c,0x00,0x0a,0x0f,0x3e,0x0f,0x3e,0x00,0x0a,0x0f,0x40,0x0f,0x40,0x00,0x06,0x0f,0x44,0x0f,0x44,0x00,0x01,0x0f,0x46,0x0f,0x46, -0x00,0x01,0x0f,0x48,0x0f,0x48,0x00,0x01,0x0f,0x4a,0x0f,0x4a,0x00,0x01,0x0f,0x4c,0x0f,0x4c,0x00,0x01,0x0f,0x4e,0x0f,0x4e,0x00,0x08,0x0f,0x6c,0x0f,0x6c,0x00,0x01,0x0f,0x6e,0x0f,0x6e,0x00,0x01,0x0f,0x70,0x0f,0x70,0x00,0x01,0x0f,0x72,0x0f,0x72,0x00,0x01,0x0f,0x74,0x0f,0x74,0x00,0x01,0x0f,0x76,0x0f,0x76,0x00,0x01,0x0f,0x78, -0x0f,0x78,0x00,0x01,0x0f,0x7a,0x0f,0x7a,0x00,0x01,0x0f,0x7c,0x0f,0x7c,0x00,0x01,0x0f,0x7e,0x0f,0x7e,0x00,0x01,0x0f,0x80,0x0f,0x80,0x00,0x01,0x0f,0x82,0x0f,0x82,0x00,0x02,0x0f,0x84,0x0f,0x84,0x00,0x02,0x0f,0x86,0x0f,0x86,0x00,0x02,0x0f,0x88,0x0f,0x88,0x00,0x02,0x0f,0x8a,0x0f,0x8a,0x00,0x02,0x0f,0x8c,0x0f,0x8c,0x00,0x01, -0x0f,0x8e,0x0f,0x8e,0x00,0x01,0x0f,0x90,0x0f,0x90,0x00,0x01,0x0f,0x92,0x0f,0x92,0x00,0x01,0x0f,0x94,0x0f,0x94,0x00,0x06,0x0f,0x96,0x0f,0x96,0x00,0x01,0x0f,0xc0,0x0f,0xc0,0x00,0x01,0x10,0xfe,0x10,0xfe,0x00,0x01,0x11,0x00,0x11,0x00,0x00,0x01,0x11,0x02,0x11,0x02,0x00,0x01,0x11,0x04,0x11,0x04,0x00,0x01,0x11,0x06,0x11,0x06, -0x00,0x01,0x11,0x08,0x11,0x08,0x00,0x01,0x11,0x0a,0x11,0x0a,0x00,0x01,0x11,0x0c,0x11,0x0d,0x00,0x01,0x11,0x0f,0x11,0x0f,0x00,0x01,0x14,0x53,0x14,0x53,0x00,0x07,0x14,0x54,0x14,0x54,0x00,0x01,0x14,0x55,0x14,0x57,0x00,0x02,0x14,0x58,0x14,0x59,0x00,0x01,0x14,0x5a,0x14,0x5b,0x00,0x02,0x14,0x6f,0x14,0x6f,0x00,0x02,0x14,0x72, -0x14,0x72,0x00,0x08,0x14,0x75,0x14,0x75,0x00,0x05,0x14,0x78,0x14,0x78,0x00,0x06,0x14,0x7b,0x14,0x7b,0x00,0x05,0x14,0x80,0x14,0x80,0x00,0x06,0x14,0x83,0x14,0x83,0x00,0x02,0x14,0x97,0x14,0x98,0x00,0x02,0x00,0x01,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x1a,0x00,0x20,0x00,0x20,0x00,0x1a,0x00,0x1a,0x00,0x20,0x00,0x20, -0x00,0x1a,0x00,0x01,0x08,0xdd,0xff,0x55,0x00,0x01,0x08,0xdb,0xff,0x55,0x00,0x02,0x00,0x06,0x08,0xd7,0x08,0xd7,0x00,0x00,0x08,0xd9,0x08,0xd9,0x00,0x01,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x04,0x09,0x51,0x09,0x51,0x00,0x05,0x09,0x56,0x09,0x57,0x00,0x06,0x00,0x02,0x00,0x30,0x00,0x04,0x00,0x00,0x00,0x4c, -0x00,0x80,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0xfe,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x02,0x00,0x04,0x08,0xd9,0x08,0xda,0x00,0x00,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x51,0x09,0x53,0x00,0x04,0x09,0x55,0x09,0x57, -0x00,0x07,0x00,0x02,0x00,0x08,0x08,0xd9,0x08,0xda,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x01,0x08,0xdf,0x08,0xdf,0x00,0x03,0x09,0x51,0x09,0x52,0x00,0x01,0x09,0x53,0x09,0x53,0x00,0x02,0x09,0x55,0x09,0x55,0x00,0x02,0x09,0x56,0x09,0x56,0x00,0x01,0x09,0x57,0x09,0x57,0x00,0x03,0x00,0x02,0x00,0x0a,0x08,0xd7,0x08,0xd7,0x00,0x01, -0x08,0xdc,0x08,0xdc,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x02,0x08,0xdf,0x08,0xdf,0x00,0x03,0x08,0xe0,0x08,0xe0,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x01,0x09,0x54,0x09,0x55,0x00,0x01,0x09,0x56,0x09,0x56,0x00,0x02,0x09,0x57,0x09,0x57,0x00,0x03,0x09,0x58,0x09,0x58,0x00,0x02,0x00,0x01,0x10,0xc6,0x00,0x04,0x00,0x00,0x00,0x57, -0x00,0xb8,0x01,0xbe,0x01,0xe4,0x02,0x3e,0x02,0xa8,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x9c,0x07,0x96,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0xa8,0x0d,0x72,0x0e,0x88,0x0e,0xde,0x10,0x88,0x00,0xb8,0x00,0xb8,0x01,0xe4,0x06,0x16,0x0b,0x7a,0x06,0x16,0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x0e,0xde, -0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x06,0x16,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x09,0x0a,0x10,0x88,0x02,0x3e,0x0e,0xde,0x03,0x2a,0x09,0x0a,0x01,0xe4,0x01,0xe4,0x00,0xb8,0x00,0xb8,0x04,0xf0,0x06,0x16,0x08,0x14,0x08,0x14,0x09,0x0a,0x09,0x50,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x10,0x88,0x10,0x88,0x00,0xb8,0x01,0xe4,0x03,0x2a, -0x03,0x2a,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x16,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0d,0x72,0x0e,0xde,0x00,0xb8,0x06,0x16,0x0d,0x72,0x0d,0x72,0x0d,0x72,0x0e,0xde,0x09,0x0a,0x00,0x41,0x00,0x26,0xff,0xd8,0x00,0x2a,0xff,0xd8,0x00,0x2d,0x00,0x5e,0x00,0x32,0xff,0xd8, -0x00,0x37,0xff,0x6d,0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x74,0x00,0x3a,0xff,0x74,0x00,0x3c,0xff,0x74,0x00,0x3d,0x00,0x3c,0x00,0x59,0xff,0xd8,0x00,0x5a,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x64,0xff,0xd8,0x00,0x67,0xff,0xd8,0x00,0x68,0xff,0xd8,0x00,0x92,0xff,0xd8,0x00,0xaf,0xff,0xd8,0x00,0xb0,0xff,0xd8,0x00,0xba,0xff,0xd8, -0x00,0xbb,0xff,0x74,0x00,0xd0,0xff,0xd8,0x00,0xd1,0xff,0xd8,0x00,0xd2,0xff,0xd8,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3c,0x00,0xea,0xff,0x74,0x00,0xeb,0xff,0xd8,0x00,0xf7,0xff,0xd8,0x00,0xfc,0xff,0xd8,0x00,0xfe,0xff,0xd8,0x01,0x18,0xff,0xd8,0x01,0x20,0xff,0x6d,0x01,0x22,0xff,0x6d, -0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3c,0x01,0x2a,0x00,0x3c,0x01,0x47,0xff,0xd8,0x01,0x51,0xff,0xd8,0x01,0x53,0xff,0xd8,0x01,0x55,0xff,0xd8,0x01,0x63,0x00,0x5e,0x01,0x6e,0xff,0xd8,0x01,0x70,0xff,0xd8,0x01,0x76,0xff,0x6d,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8, -0x01,0x80,0xff,0x74,0x01,0x81,0xff,0xd8,0x01,0x82,0xff,0x74,0x01,0x83,0xff,0xd8,0x01,0x89,0xff,0xd8,0x01,0x8c,0xff,0x74,0x01,0x8d,0xff,0xd8,0x01,0x8e,0xff,0x74,0x01,0x8f,0xff,0xd8,0x01,0x90,0xff,0x74,0x01,0x91,0xff,0xd8,0x01,0x92,0xff,0x74,0x01,0x93,0xff,0xd8,0x00,0x09,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xbe,0x00,0xbb, -0xff,0xbe,0x00,0xea,0xff,0xbe,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xbe,0x01,0x92,0xff,0xbe,0x00,0x16,0x00,0x26,0xff,0xc9,0x00,0x2a,0xff,0xc9,0x00,0x32,0xff,0xc9,0x00,0x64,0xff,0xc9,0x00,0x67,0xff,0xc9,0x00,0x92,0xff,0xc9,0x00,0xaf,0xff,0xc9,0x00,0xb0,0xff,0xc9,0x00,0xd0,0xff,0xc9, -0x00,0xd1,0xff,0xc9,0x00,0xd2,0xff,0xc9,0x00,0xf7,0xff,0xc9,0x00,0xfc,0xff,0xc9,0x00,0xfe,0xff,0xc9,0x01,0x18,0xff,0xc9,0x01,0x47,0xff,0xc9,0x01,0x51,0xff,0xc9,0x01,0x53,0xff,0xc9,0x01,0x55,0xff,0xc9,0x01,0x6e,0xff,0xc9,0x01,0x70,0xff,0xc9,0x01,0x89,0xff,0xc9,0x00,0x1a,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39, -0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xc4,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a, -0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x00,0x20,0x00,0x24,0xff,0x88,0x00,0x2d,0xff,0xbe,0x00,0x44,0xff,0xba,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba, -0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x75,0x00,0x32,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0xba,0x01,0x45,0xff,0x88, -0x01,0x46,0xff,0xba,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x00,0x11,0x00,0x37,0xff,0xcf,0x00,0x39,0xff,0xd8,0x00,0x3a,0xff,0xd8,0x00,0x3b,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x5d,0xff,0xd8,0x00,0xba,0xff,0xd8,0x00,0xeb, -0xff,0xd8,0x01,0x20,0xff,0xcf,0x01,0x22,0xff,0xcf,0x01,0x76,0xff,0xcf,0x01,0x80,0xff,0xd8,0x01,0x83,0xff,0xd8,0x01,0x8c,0xff,0xd8,0x01,0x8e,0xff,0xd8,0x01,0x90,0xff,0xd8,0x01,0x93,0xff,0xd8,0x00,0x0d,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xb0,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce, -0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xb0,0x01,0x85,0xff,0xce,0x00,0x52,0x00,0x26,0xff,0xa6,0x00,0x2a,0xff,0xa6,0x00,0x2d,0x00,0x5a,0x00,0x32,0xff,0xa6,0x00,0x39,0x00,0x28,0x00,0x3a,0x00,0x28,0x00,0x3b,0x00,0x32,0x00,0x3c,0x00,0x28,0x00,0x3d, -0x00,0x28,0x00,0x46,0xff,0xe5,0x00,0x47,0xff,0xe5,0x00,0x48,0xff,0xe5,0x00,0x4a,0xff,0xe5,0x00,0x52,0xff,0xce,0x00,0x54,0xff,0xce,0x00,0x57,0xff,0xd1,0x00,0x59,0xff,0xba,0x00,0x5a,0xff,0xba,0x00,0x5b,0x00,0x1e,0x00,0x5c,0xff,0xa6,0x00,0x64,0xff,0xa6,0x00,0x67,0xff,0xa6,0x00,0x79,0xff,0xce,0x00,0x7a,0xff,0xce,0x00,0x7b, -0xff,0xce,0x00,0x7c,0xff,0xce,0x00,0x7d,0xff,0xce,0x00,0x92,0xff,0xa6,0x00,0xaf,0xff,0xa6,0x00,0xb0,0xff,0xa6,0x00,0xb1,0xff,0xce,0x00,0xba,0xff,0xa6,0x00,0xbb,0x00,0x28,0x00,0xd0,0xff,0xa6,0x00,0xd1,0xff,0xa6,0x00,0xd2,0xff,0xa6,0x00,0xe5,0x00,0x28,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0xa6,0x00,0xf7,0xff,0xa6,0x00,0xf8, -0xff,0xe5,0x00,0xfc,0xff,0xa6,0x00,0xfd,0xff,0xe5,0x00,0xfe,0xff,0xa6,0x00,0xff,0xff,0xe5,0x01,0x00,0xff,0xe5,0x01,0x08,0xff,0xe5,0x01,0x0b,0xff,0xe5,0x01,0x18,0xff,0xa6,0x01,0x19,0xff,0xce,0x01,0x21,0xff,0xd1,0x01,0x23,0xff,0xd1,0x01,0x28,0x00,0x28,0x01,0x2a,0x00,0x28,0x01,0x47,0xff,0xa6,0x01,0x48,0xff,0xe5,0x01,0x51, -0xff,0xa6,0x01,0x52,0xff,0xe5,0x01,0x53,0xff,0xa6,0x01,0x54,0xff,0xe5,0x01,0x55,0xff,0xa6,0x01,0x56,0xff,0xe5,0x01,0x63,0x00,0x5a,0x01,0x6e,0xff,0xa6,0x01,0x6f,0xff,0xce,0x01,0x70,0xff,0xa6,0x01,0x71,0xff,0xce,0x01,0x77,0xff,0xd1,0x01,0x80,0x00,0x28,0x01,0x81,0xff,0xba,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0xa6,0x01,0x89, -0xff,0xa6,0x01,0x8a,0xff,0xce,0x01,0x8c,0x00,0x28,0x01,0x8d,0xff,0xba,0x01,0x8e,0x00,0x28,0x01,0x8f,0xff,0xba,0x01,0x90,0x00,0x28,0x01,0x91,0xff,0xba,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0xa6,0x00,0x49,0x00,0x24,0x00,0x3c,0x00,0x26,0xff,0xba,0x00,0x2a,0xff,0xbe,0x00,0x2d,0x00,0x64,0x00,0x32,0xff,0xba,0x00,0x37,0xff,0x74, -0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x88,0x00,0x3a,0xff,0x88,0x00,0x3c,0xff,0x88,0x00,0x3d,0x00,0x3b,0x00,0x57,0xff,0xe5,0x00,0x59,0xff,0x9c,0x00,0x5a,0xff,0x9c,0x00,0x5c,0xff,0x9c,0x00,0x62,0x00,0x3c,0x00,0x63,0x00,0x3c,0x00,0x64,0xff,0xba,0x00,0x68,0xff,0xd8,0x00,0xad,0x00,0x3c,0x00,0xae,0x00,0x3c,0x00,0xba,0xff,0x9c, -0x00,0xbb,0xff,0x88,0x00,0xc7,0x00,0x3c,0x00,0xc9,0x00,0x3c,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3b,0x00,0xea,0xff,0x88,0x00,0xeb,0xff,0x9c,0x00,0xf7,0xff,0xbe,0x00,0xfc,0xff,0xba,0x00,0xfe,0xff,0xba,0x01,0x03,0x00,0x3c,0x01,0x05,0x00,0x3c,0x01,0x18,0xff,0xba,0x01,0x20,0xff,0x74, -0x01,0x21,0xff,0xe5,0x01,0x22,0xff,0x74,0x01,0x23,0xff,0xe5,0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3b,0x01,0x2a,0x00,0x3b,0x01,0x45,0x00,0x3c,0x01,0x47,0xff,0xba,0x01,0x51,0xff,0xbe,0x01,0x53,0xff,0xbe,0x01,0x55,0xff,0xbe,0x01,0x63,0x00,0x64,0x01,0x6e,0xff,0xba,0x01,0x70,0xff,0xba,0x01,0x76,0xff,0x74, -0x01,0x77,0xff,0xe5,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8,0x01,0x80,0xff,0x88,0x01,0x81,0xff,0x9c,0x01,0x82,0xff,0x88,0x01,0x83,0xff,0x9c,0x01,0x85,0x00,0x3c,0x01,0x89,0xff,0xba,0x01,0x8c,0xff,0x88,0x01,0x8d,0xff,0x9c,0x01,0x8e,0xff,0x88,0x01,0x8f,0xff,0x9c,0x01,0x90,0xff,0x88, -0x01,0x91,0xff,0x9c,0x01,0x92,0xff,0x88,0x01,0x93,0xff,0x9c,0x00,0x21,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xf6,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb, -0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xf6,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85, -0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3e,0x00,0x24,0xff,0x74,0x00,0x2d,0xff,0x7f,0x00,0x3b,0xff,0xce,0x00,0x44,0xff,0xba,0x00,0x46,0xff,0xb4,0x00,0x47,0xff,0xb4,0x00,0x48,0xff,0xb4,0x00,0x4a,0xff,0xb4,0x00,0x52,0xff,0xb4,0x00,0x54,0xff,0xb4,0x00,0x62,0xff,0x74, -0x00,0x63,0xff,0x74,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba,0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x6f,0xff,0xb4,0x00,0x70,0xff,0xb4,0x00,0x71,0xff,0xb4,0x00,0x72,0xff,0xb4,0x00,0x73,0xff,0xb4,0x00,0x79,0xff,0xb4,0x00,0x7a,0xff,0xb4,0x00,0x7b,0xff,0xb4,0x00,0x7c,0xff,0xb4, -0x00,0x7d,0xff,0xb4,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xb1,0xff,0xb4,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74,0x00,0xf8,0xff,0xb4,0x00,0xfd,0xff,0xb4,0x00,0xff,0xff,0xb4,0x01,0x00,0xff,0xb4,0x01,0x03,0xff,0x74,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0xba,0x01,0x08,0xff,0xb4, -0x01,0x0b,0xff,0xb4,0x01,0x0d,0xff,0xb4,0x01,0x19,0xff,0xb4,0x01,0x45,0xff,0x74,0x01,0x46,0xff,0xba,0x01,0x48,0xff,0xb4,0x01,0x4c,0xff,0xb4,0x01,0x4e,0xff,0xb4,0x01,0x50,0xff,0xb4,0x01,0x52,0xff,0xb4,0x01,0x54,0xff,0xb4,0x01,0x56,0xff,0xb4,0x01,0x63,0xff,0x7f,0x01,0x6f,0xff,0xb4,0x01,0x71,0xff,0xb4,0x01,0x85,0xff,0x74, -0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x01,0x8a,0xff,0xb4,0x00,0x1f,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb,0xff,0xce,0x00,0xc7, -0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e, -0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3d,0x00,0x26,0xff,0xe3,0x00,0x2a,0xff,0xe3,0x00,0x2d,0x00,0x39,0x00,0x32,0xff,0xec,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xd9,0x00,0x46,0xff,0xc4,0x00,0x47,0xff,0xc4,0x00,0x48,0xff,0xc4,0x00,0x4a,0xff,0xc4,0x00,0x52,0xff,0xc4,0x00,0x54,0xff,0xcb,0x00,0x64,0xff,0xe3, -0x00,0x6f,0xff,0xc4,0x00,0x70,0xff,0xc4,0x00,0x71,0xff,0xc4,0x00,0x72,0xff,0xc4,0x00,0x73,0xff,0xc4,0x00,0x79,0xff,0xc4,0x00,0x7a,0xff,0xc4,0x00,0x7b,0xff,0xc4,0x00,0x7c,0xff,0xc4,0x00,0x7d,0xff,0xc4,0x00,0xb1,0xff,0xc4,0x00,0xbb,0xff,0xd9,0x00,0xea,0xff,0xd9,0x00,0xf7,0xff,0xe3,0x00,0xf8,0xff,0xc4,0x00,0xfc,0xff,0xe3, -0x00,0xfd,0xff,0xc4,0x00,0xfe,0xff,0xe3,0x00,0xff,0xff,0xc4,0x01,0x00,0xff,0xc4,0x01,0x08,0xff,0xc4,0x01,0x0b,0xff,0xc4,0x01,0x0d,0xff,0xc4,0x01,0x18,0xff,0xec,0x01,0x19,0xff,0xc4,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x47,0xff,0xe3,0x01,0x48,0xff,0xc4,0x01,0x4c,0xff,0xc4,0x01,0x4e,0xff,0xc4,0x01,0x50,0xff,0xc4, -0x01,0x51,0xff,0xe3,0x01,0x52,0xff,0xc4,0x01,0x53,0xff,0xe3,0x01,0x54,0xff,0xc4,0x01,0x55,0xff,0xe3,0x01,0x56,0xff,0xc4,0x01,0x63,0x00,0x39,0x01,0x6e,0xff,0xec,0x01,0x6f,0xff,0xc4,0x01,0x70,0xff,0xec,0x01,0x71,0xff,0xc4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xd9,0x01,0x89,0xff,0xec,0x01,0x8a,0xff,0xc4,0x01,0x92,0xff,0xd9, -0x00,0x11,0x00,0x57,0xff,0xbe,0x00,0x59,0xff,0xce,0x00,0x5a,0xff,0xe2,0x00,0x5b,0xff,0xe2,0x00,0x5c,0xff,0xc4,0x00,0x5d,0xff,0xc4,0x00,0xba,0xff,0xc4,0x00,0xeb,0xff,0xc4,0x01,0x21,0xff,0xbe,0x01,0x23,0xff,0xbe,0x01,0x77,0xff,0xbe,0x01,0x81,0xff,0xe2,0x01,0x83,0xff,0xc4,0x01,0x8d,0xff,0xe2,0x01,0x8f,0xff,0xe2,0x01,0x91, -0xff,0xe2,0x01,0x93,0xff,0xc4,0x00,0x8a,0x00,0x24,0xff,0x74,0x00,0x26,0xff,0xa1,0x00,0x2a,0xff,0xa1,0x00,0x2d,0xff,0x8f,0x00,0x32,0xff,0xa1,0x00,0x36,0xff,0xd8,0x00,0x37,0x00,0x28,0x00,0x39,0x00,0x2b,0x00,0x3a,0x00,0x2b,0x00,0x3c,0x00,0x28,0x00,0x44,0xff,0x1a,0x00,0x46,0xff,0x38,0x00,0x47,0xff,0x38,0x00,0x48,0xff,0x38, -0x00,0x49,0xff,0xa0,0x00,0x4a,0xff,0x38,0x00,0x50,0xff,0x4e,0x00,0x51,0xff,0x4e,0x00,0x52,0xff,0x38,0x00,0x53,0xff,0x4e,0x00,0x54,0xff,0x38,0x00,0x55,0xff,0x4e,0x00,0x56,0xff,0x66,0x00,0x59,0xff,0x9a,0x00,0x5a,0xff,0x8f,0x00,0x5b,0xff,0x4c,0x00,0x5c,0xff,0x8f,0x00,0x5d,0xff,0x8f,0x00,0x62,0xff,0x74,0x00,0x63,0xff,0x74, -0x00,0x64,0xff,0xa1,0x00,0x67,0xff,0xa1,0x00,0x69,0xff,0x1a,0x00,0x6a,0xff,0x1a,0x00,0x6b,0xff,0x1a,0x00,0x6c,0xff,0x38,0x00,0x6d,0xff,0x38,0x00,0x6e,0xff,0x1a,0x00,0x6f,0xff,0x38,0x00,0x70,0xff,0x38,0x00,0x71,0xff,0x38,0x00,0x72,0xff,0x38,0x00,0x73,0xff,0x38,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32, -0x00,0x79,0xff,0x38,0x00,0x7a,0xff,0x38,0x00,0x7b,0xff,0x38,0x00,0x7c,0xff,0x38,0x00,0x7d,0xff,0x38,0x00,0x92,0xff,0xa1,0x00,0xa0,0xff,0x1a,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xaf,0xff,0xa1,0x00,0xb0,0xff,0xa1,0x00,0xb1,0xff,0x38,0x00,0xba,0xff,0x8f,0x00,0xbb,0x00,0x28,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74, -0x00,0xd0,0xff,0xa1,0x00,0xd1,0xff,0xa1,0x00,0xd2,0xff,0xa1,0x00,0xe3,0xff,0xd8,0x00,0xe4,0xff,0x66,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0x8f,0x00,0xf7,0xff,0xa1,0x00,0xf8,0xff,0x38,0x00,0xfa,0xff,0xd8,0x00,0xfb,0xff,0x66,0x00,0xfc,0xff,0xa1,0x00,0xfd,0xff,0x38,0x00,0xfe,0xff,0xa1,0x00,0xff,0xff,0x38,0x01,0x00,0xff,0x38, -0x01,0x03,0xff,0x74,0x01,0x04,0xff,0x38,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0x1a,0x01,0x08,0xff,0x38,0x01,0x0b,0xff,0x38,0x01,0x0d,0xff,0x38,0x01,0x18,0xff,0xa1,0x01,0x19,0xff,0x38,0x01,0x1b,0xff,0x4e,0x01,0x1d,0xff,0x4e,0x01,0x1e,0xff,0xd8,0x01,0x1f,0xff,0x66,0x01,0x20,0x00,0x28,0x01,0x22,0x00,0x28,0x01,0x45,0xff,0x74, -0x01,0x46,0xff,0x38,0x01,0x47,0xff,0xa1,0x01,0x48,0xff,0x38,0x01,0x4c,0xff,0x38,0x01,0x4e,0xff,0x38,0x01,0x50,0xff,0x38,0x01,0x51,0xff,0xa1,0x01,0x52,0xff,0x38,0x01,0x53,0xff,0xa1,0x01,0x54,0xff,0x38,0x01,0x55,0xff,0xa1,0x01,0x56,0xff,0x38,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0x8f, -0x01,0x6d,0xff,0x4e,0x01,0x6e,0xff,0xa1,0x01,0x6f,0xff,0x38,0x01,0x70,0xff,0xa1,0x01,0x71,0xff,0x38,0x01,0x73,0xff,0x4e,0x01,0x74,0xff,0xd8,0x01,0x75,0xff,0x66,0x01,0x76,0x00,0x28,0x01,0x80,0x00,0x2b,0x01,0x81,0xff,0x8f,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0x8f,0x01,0x85,0xff,0x74,0x01,0x86,0xff,0x38,0x01,0x88,0xff,0x1a, -0x01,0x89,0xff,0xa1,0x01,0x8a,0xff,0x38,0x01,0x8c,0x00,0x2b,0x01,0x8d,0xff,0x8f,0x01,0x8e,0x00,0x2b,0x01,0x8f,0xff,0x8f,0x01,0x90,0x00,0x2b,0x01,0x91,0xff,0x8f,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0x8f,0x02,0x3d,0xff,0xd8,0x02,0x3e,0xff,0x66,0x00,0x0b,0x00,0x24,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad, -0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x85,0xff,0xce,0x00,0x72,0x00,0x24,0xff,0x88,0x00,0x26,0xff,0xce,0x00,0x2a,0xff,0xce,0x00,0x2d,0xff,0xba,0x00,0x32,0xff,0xce,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x6a,0x00,0x46,0xff,0x7e, -0x00,0x47,0xff,0x7e,0x00,0x48,0xff,0x7e,0x00,0x4a,0xff,0x7e,0x00,0x50,0xff,0xb0,0x00,0x51,0xff,0xb0,0x00,0x52,0xff,0x7e,0x00,0x53,0xff,0xb4,0x00,0x54,0xff,0x7e,0x00,0x55,0xff,0xb4,0x00,0x56,0xff,0xbe,0x00,0x58,0xff,0xce,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x64,0xff,0xce,0x00,0x67,0xff,0xce,0x00,0x69,0xff,0x6a, -0x00,0x6a,0xff,0x6a,0x00,0x6b,0xff,0x6a,0x00,0x6c,0xff,0x6a,0x00,0x6d,0xff,0x6a,0x00,0x6e,0xff,0x6a,0x00,0x6f,0xff,0x7e,0x00,0x70,0xff,0x7e,0x00,0x71,0xff,0x7e,0x00,0x72,0xff,0x7e,0x00,0x73,0xff,0x7e,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0x7e,0x00,0x7a,0xff,0x7e,0x00,0x7b,0xff,0x7e, -0x00,0x7c,0xff,0x7e,0x00,0x7d,0xff,0x7e,0x00,0x92,0xff,0xce,0x00,0xa0,0xff,0x6a,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xaf,0xff,0xce,0x00,0xb0,0xff,0xce,0x00,0xb1,0xff,0x7e,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x00,0xd0,0xff,0xce,0x00,0xd1,0xff,0xce,0x00,0xd2,0xff,0xce,0x00,0xe4,0xff,0xbe,0x00,0xf7,0xff,0xce, -0x00,0xf8,0xff,0x7e,0x00,0xfb,0xff,0xbe,0x00,0xfc,0xff,0xce,0x00,0xfd,0xff,0x7e,0x00,0xfe,0xff,0xce,0x00,0xff,0xff,0x7e,0x01,0x00,0xff,0x7e,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0x6a,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0x6a,0x01,0x08,0xff,0x7e,0x01,0x0b,0xff,0x7e,0x01,0x0d,0xff,0x7e,0x01,0x18,0xff,0xce,0x01,0x19,0xff,0x7e, -0x01,0x1b,0xff,0xb4,0x01,0x1d,0xff,0xb4,0x01,0x1f,0xff,0xbe,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x25,0xff,0xce,0x01,0x27,0xff,0xce,0x01,0x45,0xff,0x88,0x01,0x46,0xff,0x6a,0x01,0x47,0xff,0xce,0x01,0x48,0xff,0x7e,0x01,0x4c,0xff,0x7e,0x01,0x4e,0xff,0x7e,0x01,0x50,0xff,0x7e,0x01,0x51,0xff,0xce,0x01,0x52,0xff,0x7e, -0x01,0x53,0xff,0xce,0x01,0x54,0xff,0x7e,0x01,0x55,0xff,0xce,0x01,0x56,0xff,0x7e,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x63,0xff,0xba,0x01,0x6d,0xff,0xb0,0x01,0x6e,0xff,0xce,0x01,0x6f,0xff,0x7e,0x01,0x70,0xff,0xce,0x01,0x71,0xff,0x7e,0x01,0x73,0xff,0xb4,0x01,0x75,0xff,0xbe,0x01,0x76,0x00,0x27, -0x01,0x79,0xff,0xce,0x01,0x7b,0xff,0xce,0x01,0x7d,0xff,0xce,0x01,0x7f,0xff,0xce,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0x6a,0x01,0x88,0xff,0x6a,0x01,0x89,0xff,0xce,0x01,0x8a,0xff,0x7e,0x02,0x3e,0xff,0xbe,0x00,0x45,0x00,0x24,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0xb0,0x00,0x46,0xff,0xb0,0x00,0x47,0xff,0xb0,0x00,0x48, -0xff,0xb0,0x00,0x4a,0xff,0xb0,0x00,0x52,0xff,0xb0,0x00,0x54,0xff,0xb0,0x00,0x62,0xff,0xb0,0x00,0x63,0xff,0xb0,0x00,0x69,0xff,0xb0,0x00,0x6a,0xff,0xb0,0x00,0x6b,0xff,0xb0,0x00,0x6c,0xff,0xb0,0x00,0x6d,0xff,0xb0,0x00,0x6e,0xff,0xb0,0x00,0x6f,0xff,0xb0,0x00,0x70,0xff,0xb0,0x00,0x71,0xff,0xb0,0x00,0x72,0xff,0xb0,0x00,0x73, -0xff,0xb0,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0xb0,0x00,0x7a,0xff,0xb0,0x00,0x7b,0xff,0xb0,0x00,0x7c,0xff,0xb0,0x00,0x7d,0xff,0xb0,0x00,0xa0,0xff,0xb0,0x00,0xad,0xff,0xb0,0x00,0xae,0xff,0xb0,0x00,0xb1,0xff,0xb0,0x00,0xc7,0xff,0xb0,0x00,0xc9,0xff,0xb0,0x00,0xf8,0xff,0xb0,0x00,0xfd, -0xff,0xb0,0x00,0xff,0xff,0xb0,0x01,0x00,0xff,0xb0,0x01,0x03,0xff,0xb0,0x01,0x04,0xff,0xb0,0x01,0x05,0xff,0xb0,0x01,0x06,0xff,0xb0,0x01,0x08,0xff,0xb0,0x01,0x0b,0xff,0xb0,0x01,0x0d,0xff,0xb0,0x01,0x19,0xff,0xb0,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x45,0xff,0xb0,0x01,0x46,0xff,0xb0,0x01,0x48,0xff,0xb0,0x01,0x4c, -0xff,0xb0,0x01,0x4e,0xff,0xb0,0x01,0x50,0xff,0xb0,0x01,0x52,0xff,0xb0,0x01,0x54,0xff,0xb0,0x01,0x56,0xff,0xb0,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x6f,0xff,0xb0,0x01,0x71,0xff,0xb0,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0xb0,0x01,0x86,0xff,0xb0,0x01,0x88,0xff,0xb0,0x01,0x8a,0xff,0xb0,0x00,0x15, -0x00,0x26,0xff,0xe9,0x00,0x2a,0xff,0xe9,0x00,0x2d,0x00,0x60,0x00,0x32,0xff,0xe9,0x00,0x37,0x00,0x21,0x00,0x64,0xff,0xe9,0x00,0xf7,0xff,0xe9,0x00,0xfc,0xff,0xe9,0x00,0xfe,0xff,0xe9,0x01,0x18,0xff,0xe9,0x01,0x20,0x00,0x21,0x01,0x22,0x00,0x21,0x01,0x47,0xff,0xe9,0x01,0x51,0xff,0xe9,0x01,0x53,0xff,0xe9,0x01,0x55,0xff,0xe9, -0x01,0x63,0x00,0x60,0x01,0x6e,0xff,0xe9,0x01,0x70,0xff,0xe9,0x01,0x76,0x00,0x21,0x01,0x89,0xff,0xe9,0x00,0x6a,0x00,0x24,0xff,0x60,0x00,0x26,0xff,0xb0,0x00,0x2a,0xff,0xb0,0x00,0x2d,0xff,0xbe,0x00,0x32,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x4c,0x00,0x46,0xff,0x4c,0x00,0x47,0xff,0x4c,0x00,0x48,0xff,0x4c,0x00,0x49, -0xff,0xe5,0x00,0x4a,0xff,0x4c,0x00,0x50,0xff,0x73,0x00,0x51,0xff,0x73,0x00,0x52,0xff,0x4c,0x00,0x53,0xff,0x74,0x00,0x54,0xff,0x4c,0x00,0x55,0xff,0x73,0x00,0x56,0xff,0x7b,0x00,0x62,0xff,0x60,0x00,0x63,0xff,0x60,0x00,0x64,0xff,0xb0,0x00,0x67,0xff,0xb0,0x00,0x69,0xff,0x4c,0x00,0x6a,0xff,0x4c,0x00,0x6b,0xff,0x4c,0x00,0x6c, -0xff,0x4c,0x00,0x6d,0xff,0x4c,0x00,0x6e,0xff,0x4c,0x00,0x6f,0xff,0x4c,0x00,0x70,0xff,0x4c,0x00,0x71,0xff,0x4c,0x00,0x72,0xff,0x4c,0x00,0x73,0xff,0x4c,0x00,0x77,0x00,0x32,0x00,0x79,0xff,0x4c,0x00,0x7a,0xff,0x4c,0x00,0x7b,0xff,0x4c,0x00,0x7c,0xff,0x4c,0x00,0x7d,0xff,0x4c,0x00,0x92,0xff,0xb0,0x00,0xa0,0xff,0x4c,0x00,0xad, -0xff,0x60,0x00,0xae,0xff,0x60,0x00,0xaf,0xff,0xb0,0x00,0xb0,0xff,0xb0,0x00,0xb1,0xff,0x4c,0x00,0xc7,0xff,0x60,0x00,0xc9,0xff,0x60,0x00,0xd0,0xff,0xb0,0x00,0xd1,0xff,0xb0,0x00,0xd2,0xff,0xb0,0x00,0xe4,0xff,0x7b,0x00,0xf7,0xff,0xb0,0x00,0xf8,0xff,0x4c,0x00,0xfb,0xff,0x7b,0x00,0xfc,0xff,0xb0,0x00,0xfd,0xff,0x4c,0x00,0xfe, -0xff,0xb0,0x00,0xff,0xff,0x4c,0x01,0x00,0xff,0x4c,0x01,0x03,0xff,0x60,0x01,0x04,0xff,0x4c,0x01,0x05,0xff,0x60,0x01,0x06,0xff,0x4c,0x01,0x08,0xff,0x4c,0x01,0x0b,0xff,0x4c,0x01,0x0d,0xff,0x4c,0x01,0x18,0xff,0xb0,0x01,0x19,0xff,0x4c,0x01,0x1b,0xff,0x73,0x01,0x1d,0xff,0x73,0x01,0x1f,0xff,0x7b,0x01,0x20,0x00,0x27,0x01,0x22, -0x00,0x27,0x01,0x45,0xff,0x60,0x01,0x46,0xff,0x4c,0x01,0x47,0xff,0xb0,0x01,0x48,0xff,0x4c,0x01,0x4c,0xff,0x4c,0x01,0x4e,0xff,0x4c,0x01,0x50,0xff,0x4c,0x01,0x51,0xff,0xb0,0x01,0x52,0xff,0x4c,0x01,0x53,0xff,0xb0,0x01,0x54,0xff,0x4c,0x01,0x55,0xff,0xb0,0x01,0x56,0xff,0x4c,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60, -0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x6d,0xff,0x73,0x01,0x6e,0xff,0xb0,0x01,0x6f,0xff,0x4c,0x01,0x70,0xff,0xb0,0x01,0x71,0xff,0x4c,0x01,0x73,0xff,0x73,0x01,0x75,0xff,0x7b,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0x60,0x01,0x86,0xff,0x4c,0x01,0x88,0xff,0x4c,0x01,0x89,0xff,0xb0,0x01,0x8a,0xff,0x4c,0x02,0x3e,0xff,0x7b,0x00,0x0f, -0x00,0x2d,0x00,0x52,0x00,0x37,0x00,0x27,0x00,0x5c,0xff,0xcb,0x00,0x77,0x00,0x32,0x00,0xba,0xff,0xcb,0x00,0xeb,0xff,0xcb,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0x00,0x52,0x01,0x76,0x00,0x27,0x01,0x83,0xff,0xcb,0x01,0x93,0xff,0xcb,0x00,0x02,0x00,0x3b, -0x00,0x24,0x00,0x27,0x00,0x00,0x00,0x29,0x00,0x2a,0x00,0x04,0x00,0x2d,0x00,0x2f,0x00,0x06,0x00,0x32,0x00,0x3d,0x00,0x09,0x00,0x62,0x00,0x64,0x00,0x15,0x00,0x67,0x00,0x68,0x00,0x18,0x00,0x92,0x00,0x92,0x00,0x1a,0x00,0xad,0x00,0xb0,0x00,0x1b,0x00,0xbb,0x00,0xbb,0x00,0x1f,0x00,0xc7,0x00,0xc7,0x00,0x20,0x00,0xc9,0x00,0xc9, -0x00,0x21,0x00,0xd0,0x00,0xd5,0x00,0x22,0x00,0xe3,0x00,0xe3,0x00,0x28,0x00,0xe5,0x00,0xe5,0x00,0x29,0x00,0xe8,0x00,0xe8,0x00,0x2a,0x00,0xea,0x00,0xea,0x00,0x2b,0x00,0xf7,0x00,0xf7,0x00,0x2c,0x00,0xfa,0x00,0xfa,0x00,0x2d,0x00,0xfc,0x00,0xfc,0x00,0x2e,0x00,0xfe,0x00,0xfe,0x00,0x2f,0x01,0x03,0x01,0x03,0x00,0x30,0x01,0x05, -0x01,0x05,0x00,0x31,0x01,0x0e,0x01,0x0e,0x00,0x32,0x01,0x18,0x01,0x18,0x00,0x33,0x01,0x1a,0x01,0x1a,0x00,0x34,0x01,0x1c,0x01,0x1c,0x00,0x35,0x01,0x1e,0x01,0x1e,0x00,0x36,0x01,0x20,0x01,0x20,0x00,0x37,0x01,0x22,0x01,0x22,0x00,0x38,0x01,0x24,0x01,0x24,0x00,0x39,0x01,0x26,0x01,0x26,0x00,0x3a,0x01,0x28,0x01,0x28,0x00,0x3b, -0x01,0x2a,0x01,0x2a,0x00,0x3c,0x01,0x45,0x01,0x45,0x00,0x3d,0x01,0x47,0x01,0x47,0x00,0x3e,0x01,0x51,0x01,0x51,0x00,0x3f,0x01,0x53,0x01,0x53,0x00,0x40,0x01,0x55,0x01,0x55,0x00,0x41,0x01,0x63,0x01,0x63,0x00,0x42,0x01,0x65,0x01,0x65,0x00,0x43,0x01,0x68,0x01,0x68,0x00,0x44,0x01,0x6e,0x01,0x6e,0x00,0x45,0x01,0x70,0x01,0x70, -0x00,0x46,0x01,0x72,0x01,0x72,0x00,0x47,0x01,0x74,0x01,0x74,0x00,0x48,0x01,0x76,0x01,0x76,0x00,0x49,0x01,0x78,0x01,0x78,0x00,0x4a,0x01,0x7a,0x01,0x7a,0x00,0x4b,0x01,0x7c,0x01,0x7c,0x00,0x4c,0x01,0x7e,0x01,0x7e,0x00,0x4d,0x01,0x80,0x01,0x80,0x00,0x4e,0x01,0x82,0x01,0x82,0x00,0x4f,0x01,0x85,0x01,0x85,0x00,0x50,0x01,0x89, -0x01,0x89,0x00,0x51,0x01,0x8c,0x01,0x8c,0x00,0x52,0x01,0x8e,0x01,0x8e,0x00,0x53,0x01,0x90,0x01,0x90,0x00,0x54,0x01,0x92,0x01,0x92,0x00,0x55,0x02,0x3d,0x02,0x3d,0x00,0x56,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x4c,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x62,0x00,0x68,0x00,0x1a,0x00,0x91,0x00,0x92, -0x00,0x21,0x00,0xad,0x00,0xb0,0x00,0x23,0x00,0xbb,0x00,0xbb,0x00,0x27,0x00,0xc7,0x00,0xd5,0x00,0x28,0x00,0xe1,0x00,0xe1,0x00,0x37,0x00,0xe3,0x00,0xe3,0x00,0x38,0x00,0xe5,0x00,0xe5,0x00,0x39,0x00,0xe8,0x00,0xe8,0x00,0x3a,0x00,0xea,0x00,0xea,0x00,0x3b,0x00,0xec,0x00,0xec,0x00,0x3c,0x00,0xf7,0x00,0xf7,0x00,0x3d,0x00,0xf9, -0x00,0xfa,0x00,0x3e,0x00,0xfc,0x00,0xfc,0x00,0x40,0x00,0xfe,0x00,0xfe,0x00,0x41,0x01,0x03,0x01,0x03,0x00,0x42,0x01,0x05,0x01,0x05,0x00,0x43,0x01,0x07,0x01,0x07,0x00,0x44,0x01,0x09,0x01,0x0a,0x00,0x45,0x01,0x0c,0x01,0x0c,0x00,0x47,0x01,0x0e,0x01,0x0e,0x00,0x48,0x01,0x10,0x01,0x10,0x00,0x49,0x01,0x12,0x01,0x12,0x00,0x4a, -0x01,0x14,0x01,0x14,0x00,0x4b,0x01,0x16,0x01,0x16,0x00,0x4c,0x01,0x18,0x01,0x18,0x00,0x4d,0x01,0x1a,0x01,0x1a,0x00,0x4e,0x01,0x1c,0x01,0x1c,0x00,0x4f,0x01,0x1e,0x01,0x1e,0x00,0x50,0x01,0x20,0x01,0x20,0x00,0x51,0x01,0x22,0x01,0x22,0x00,0x52,0x01,0x24,0x01,0x24,0x00,0x53,0x01,0x26,0x01,0x26,0x00,0x54,0x01,0x28,0x01,0x28, -0x00,0x55,0x01,0x2a,0x01,0x2a,0x00,0x56,0x01,0x39,0x01,0x39,0x00,0x57,0x01,0x45,0x01,0x45,0x00,0x58,0x01,0x47,0x01,0x47,0x00,0x59,0x01,0x49,0x01,0x49,0x00,0x5a,0x01,0x4b,0x01,0x4b,0x00,0x5b,0x01,0x4d,0x01,0x4d,0x00,0x5c,0x01,0x4f,0x01,0x4f,0x00,0x5d,0x01,0x51,0x01,0x51,0x00,0x5e,0x01,0x53,0x01,0x53,0x00,0x5f,0x01,0x55, -0x01,0x55,0x00,0x60,0x01,0x57,0x01,0x57,0x00,0x61,0x01,0x59,0x01,0x59,0x00,0x62,0x01,0x5b,0x01,0x5b,0x00,0x63,0x01,0x5d,0x01,0x5d,0x00,0x64,0x01,0x5f,0x01,0x5f,0x00,0x65,0x01,0x61,0x01,0x61,0x00,0x66,0x01,0x63,0x01,0x63,0x00,0x67,0x01,0x65,0x01,0x65,0x00,0x68,0x01,0x68,0x01,0x68,0x00,0x69,0x01,0x6a,0x01,0x6a,0x00,0x6a, -0x01,0x6c,0x01,0x6c,0x00,0x6b,0x01,0x6e,0x01,0x6e,0x00,0x6c,0x01,0x70,0x01,0x70,0x00,0x6d,0x01,0x72,0x01,0x72,0x00,0x6e,0x01,0x74,0x01,0x74,0x00,0x6f,0x01,0x76,0x01,0x76,0x00,0x70,0x01,0x78,0x01,0x78,0x00,0x71,0x01,0x7a,0x01,0x7a,0x00,0x72,0x01,0x7c,0x01,0x7c,0x00,0x73,0x01,0x7e,0x01,0x7e,0x00,0x74,0x01,0x80,0x01,0x80, -0x00,0x75,0x01,0x82,0x01,0x82,0x00,0x76,0x01,0x85,0x01,0x85,0x00,0x77,0x01,0x87,0x01,0x87,0x00,0x78,0x01,0x89,0x01,0x89,0x00,0x79,0x01,0x8c,0x01,0x8c,0x00,0x7a,0x01,0x8e,0x01,0x8e,0x00,0x7b,0x01,0x90,0x01,0x90,0x00,0x7c,0x01,0x92,0x01,0x92,0x00,0x7d,0x0b,0x21,0x0b,0x21,0x00,0x7e,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24, -0x00,0x48,0x00,0x02,0x00,0x02,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x26,0x00,0x02,0x00,0x0f, -0x00,0x8c,0x00,0x8c,0x00,0x6e,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x01,0x96,0x01,0x96,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x02,0x00,0x0b,0x00,0x0b,0x00,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x02,0x00,0x3e,0x00,0x3e,0x00,0x03,0x00,0x40,0x00,0x40,0x00,0x04,0x00,0x5e,0x00,0x5e,0x00,0x05, -0x00,0x60,0x00,0x60,0x00,0x06,0x00,0xa2,0x00,0xa2,0x00,0x07,0x00,0xa4,0x00,0xa4,0x00,0x08,0x00,0xaa,0x00,0xab,0x00,0x09,0x00,0xb2,0x00,0xb3,0x00,0x0b,0x00,0xbe,0x00,0xbf,0x00,0x0d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x02,0x00,0x02,0x0f,0x2c,0x0f,0x2d,0x00,0x00, -0x0f,0x30,0x0f,0x31,0x00,0x02,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4b,0x00,0x01,0x00,0x02,0x0a,0x07,0x0a,0x08,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x02, -0x00,0x14,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x0c,0x09,0x0c,0x00,0x03,0x09,0x2a,0x09,0x2b,0x00,0x04,0x09,0x4a,0x09,0x4b,0x00,0x06,0x09,0x8a,0x09,0x8b,0x00,0x08,0x0a,0x05,0x0a,0x08,0x00,0x0a,0x0a,0x0b,0x0a,0x0e,0x00,0x0e,0x0e,0x20,0x0e,0x21,0x00,0x12,0x0e,0x4b, -0x0e,0x4c,0x00,0x14,0x0e,0x4f,0x0e,0x50,0x00,0x16,0x0f,0x2c,0x0f,0x2d,0x00,0x18,0x0f,0x30,0x0f,0x31,0x00,0x1a,0x0f,0x34,0x0f,0x35,0x00,0x1c,0x13,0x1c,0x13,0x1c,0x00,0x1e,0x13,0x1f,0x13,0x20,0x00,0x1f,0x13,0x23,0x13,0x23,0x00,0x21,0x14,0x59,0x14,0x59,0x00,0x22,0x14,0x7e,0x14,0x7e,0x00,0x23,0x00,0x01,0x00,0x01,0x09,0x73, -0x00,0x01,0x03,0x7e,0x00,0x05,0x00,0x00,0x00,0x2e,0x00,0x66,0x00,0xd4,0x01,0x48,0x02,0x04,0x02,0x84,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x02,0x92,0x02,0x92,0x02,0x9a,0x02,0x92,0x02,0xc6,0x03,0x76,0x02,0x84,0x02,0x84,0x01,0x48,0x01,0x48,0x00,0x66,0x01,0x48,0x02,0x84,0x01,0x48,0x01,0x48,0x02,0xc6,0x02,0xc6,0x02,0xc6, -0x02,0xc6,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x01,0x48,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x01,0x48,0x02,0xc6,0x02,0x84,0x01,0x48,0x00,0x66,0x01,0x48,0x01,0x48,0x01,0x48,0x01,0x48,0x00,0x12,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec, -0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec,0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec, -0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec,0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x13,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x71,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec,0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec, -0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec,0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec, -0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x1f,0x0b,0x69,0xff,0xce,0xff,0xce,0x0b,0x6a,0xff,0xce,0xff,0xce,0x0b,0x6c,0xff,0xce,0xff,0xce,0x0b,0x6e,0x00,0x28,0x00,0x28,0x0b,0x6f,0xff,0xce,0xff,0xce,0x0b,0x70,0xff,0xd8,0xff,0xd8,0x0b,0x73,0xff,0xd8,0xff,0xd8,0x0b,0x75,0xff,0xce,0xff,0xce,0x0b,0x76,0xff,0xce,0xff,0xce, -0x0b,0x78,0xff,0xce,0xff,0xce,0x0b,0x79,0xff,0xd8,0xff,0xd8,0x0b,0x7b,0xff,0xce,0xff,0xce,0x0b,0x7c,0xff,0xd8,0xff,0xd8,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xce,0xff,0xce,0x0b,0x90,0xff,0xce,0xff,0xce,0x0b,0x91,0xff,0xd8,0xff,0xd8,0x0b,0x93,0xff,0xce,0xff,0xce,0x0b,0x94,0xff,0xce,0xff,0xce,0x0b,0x95,0xff,0xce, -0xff,0xce,0x0b,0x9f,0xff,0xce,0xff,0xce,0x0b,0xa1,0xff,0xce,0xff,0xce,0x0b,0xa4,0xff,0xd8,0xff,0xd8,0x0b,0xa6,0xff,0xce,0xff,0xce,0x0b,0xa7,0xff,0xd8,0xff,0xd8,0x0b,0xa9,0xff,0xce,0xff,0xce,0x0b,0xab,0xff,0xd8,0xff,0xd8,0x0b,0xac,0xff,0xce,0xff,0xce,0x0b,0xad,0xff,0xd8,0xff,0xd8,0x0b,0xb0,0xff,0xce,0xff,0xce,0x0b,0xb2, -0xff,0xce,0xff,0xce,0x00,0x15,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6e,0x00,0x14,0x00,0x14,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xec, -0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2, -0xff,0xec,0xff,0xec,0x00,0x02,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x00,0x01,0x0b,0x6e,0x00,0x14,0x00,0x14,0x00,0x07,0x0b,0x79,0xff,0xe2,0xff,0xe2,0x0b,0x7c,0xff,0xe2,0xff,0xe2,0x0b,0x91,0xff,0xe2,0xff,0xe2,0x0b,0xa4,0xff,0xe2,0xff,0xe2,0x0b,0xa7,0xff,0xe2,0xff,0xe2,0x0b,0xab,0xff,0xe2,0xff,0xe2, -0x0b,0xad,0xff,0xe2,0xff,0xe2,0x00,0x1d,0x0b,0x69,0xff,0xec,0xff,0xec,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x70,0xff,0xec,0xff,0xec,0x0b,0x73,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x79, -0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7c,0xff,0xec,0xff,0xec,0x0b,0x82,0xff,0xec,0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x91,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec, -0x0b,0xa4,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa7,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xab,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xad,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2,0xff,0xec,0xff,0xec,0x00,0x01,0x0b,0x81,0xff,0xe2,0xff,0xe2,0x00,0x02, -0x00,0x16,0x0b,0x68,0x0b,0x68,0x00,0x00,0x0b,0x6a,0x0b,0x6b,0x00,0x01,0x0b,0x6e,0x0b,0x6e,0x00,0x03,0x0b,0x70,0x0b,0x71,0x00,0x04,0x0b,0x73,0x0b,0x74,0x00,0x06,0x0b,0x79,0x0b,0x7a,0x00,0x08,0x0b,0x7d,0x0b,0x7f,0x00,0x0a,0x0b,0x81,0x0b,0x82,0x00,0x0d,0x0b,0x84,0x0b,0x85,0x00,0x0f,0x0b,0x8a,0x0b,0x8b,0x00,0x11,0x0b,0x8e, -0x0b,0x8f,0x00,0x13,0x0b,0x91,0x0b,0x92,0x00,0x15,0x0b,0x94,0x0b,0x94,0x00,0x17,0x0b,0x97,0x0b,0x9d,0x00,0x18,0x0b,0x9f,0x0b,0xa0,0x00,0x1f,0x0b,0xa4,0x0b,0xa4,0x00,0x21,0x0b,0xa7,0x0b,0xa8,0x00,0x22,0x0b,0xab,0x0b,0xab,0x00,0x24,0x0b,0xb0,0x0b,0xb1,0x00,0x25,0x0b,0xb5,0x0b,0xb5,0x00,0x27,0x0b,0xb7,0x0b,0xb7,0x00,0x28, -0x0b,0xba,0x0b,0xbe,0x00,0x29,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, -0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x30,0x00,0x5e,0x00,0x01, -0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x1c,0x00,0x50,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9, -0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x5a,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x4e,0x00,0x48,0x00,0x01,0x00,0x00,0x00,0x4f, -0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x3a,0x00,0x3a,0x00,0x34,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x05,0x0b,0x5f, -0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x02,0x02,0x36,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x02,0x02,0x22,0x02,0x38,0x00,0x01, -0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x03,0x02,0x0e,0x02,0x2a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xf2,0x00,0x02,0x01,0xf8,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xde,0x00,0x03,0x01,0xe4,0x02,0x00,0x02,0x22,0x00,0x01, -0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x01,0x02,0x12,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x03,0x01,0xd8,0x01,0xbc,0x01,0xc2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x04,0x01,0xc2,0x01,0xc2,0x01,0xa6,0x01,0xac,0x00,0x01, -0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x05,0x01,0xaa,0x01,0xaa,0x01,0xaa,0x01,0x8e,0x01,0x94,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x6e,0x00,0x03,0x01,0x90,0x01,0x74,0x01,0x8a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x04,0x01,0x7a, -0x01,0x5e,0x01,0x7a,0x01,0x74,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x04,0x01,0x62,0x01,0x62,0x01,0x46,0x01,0x5c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x28,0x00,0x05,0x01,0x4a,0x01,0x4a,0x01,0x2e,0x01,0x4a,0x01,0x44,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03, -0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x05,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x14,0x01,0x2a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf4,0x00,0x06,0x01,0x16,0x01,0x16,0x01,0x16,0x00,0xfa,0x01,0x16,0x01,0x10,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xd8,0x00,0x03,0x00,0xfa, -0x00,0xde,0x01,0x1c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc2,0x00,0x04,0x00,0xe4,0x00,0xc8,0x00,0xe4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x04,0x00,0xcc,0x00,0xcc,0x00,0xb0,0x00,0xee,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01, -0x00,0x92,0x00,0x05,0x00,0xb4,0x00,0xb4,0x00,0x98,0x00,0xb4,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x05,0x00,0x9a,0x00,0x9a,0x00,0x9a,0x00,0x7e,0x00,0xbc,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x06,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x64, -0x00,0x80,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x64,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x50,0x00,0x50,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x3a, -0x00,0x3a,0x00,0x3a,0x00,0x62,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, -0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x3c,0x00,0x02,0x03,0x42,0x03,0x82,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x03,0x03,0xa8,0x03,0x2e,0x03,0x6e, -0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x12,0x00,0x04,0x03,0x92,0x03,0x92,0x03,0x18,0x03,0x58,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x03,0x03,0x00,0x03,0x9c,0x03,0xa2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x04,0x03,0x64, -0x02,0xea,0x03,0x86,0x03,0x8c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xcc,0x00,0x05,0x03,0x4c,0x03,0x4c,0x02,0xd2,0x03,0x6e,0x03,0x74,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x02,0x02,0xb8,0x03,0x6a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01, -0x02,0x9e,0x00,0x03,0x03,0x1e,0x02,0xa4,0x03,0x56,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x88,0x00,0x04,0x03,0x08,0x03,0x08,0x02,0x8e,0x03,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x70,0x00,0x03,0x02,0x76,0x03,0x12,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03, -0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x04,0x02,0xda,0x02,0x60,0x02,0xfc,0x03,0x18,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x05,0x02,0xc2,0x02,0xc2,0x02,0x48,0x02,0xe4,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x03,0x02,0x2e,0x02,0xca,0x02,0xec, -0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x04,0x02,0x92,0x02,0x18,0x02,0xb4,0x02,0xd6,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xfa,0x00,0x05,0x02,0x7a,0x02,0x7a,0x02,0x00,0x02,0x9c,0x02,0xbe,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xe0, -0x00,0x03,0x01,0xe6,0x02,0x60,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x04,0x02,0x4a,0x01,0xd0,0x02,0x4a,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x05,0x02,0x32,0x02,0x32,0x01,0xb8,0x02,0x32,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x51, -0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x04,0x01,0x9e,0x02,0x18,0x02,0x3a,0x02,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x05,0x02,0x00,0x01,0x86,0x02,0x00,0x02,0x22,0x02,0x28,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x66,0x00,0x06,0x01,0xe6,0x01,0xe6, -0x01,0x6c,0x01,0xe6,0x02,0x08,0x02,0x0e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x03,0x01,0x50,0x01,0xca,0x02,0x02,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x04,0x01,0xb4,0x01,0x3a,0x01,0xb4,0x01,0xec,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00, -0x00,0x01,0x01,0x1c,0x00,0x05,0x01,0x9c,0x01,0x9c,0x01,0x22,0x01,0x9c,0x01,0xd4,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x02,0x00,0x05,0x01,0x08,0x01,0x82,0x01,0xa4,0x01,0xcc,0x01,0xd2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x06,0x01,0x68,0x00,0xee,0x01,0x68, -0x01,0x8a,0x01,0xb2,0x01,0xb8,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xcc,0x00,0x07,0x01,0x4c,0x01,0x4c,0x00,0xd2,0x01,0x4c,0x01,0x6e,0x01,0x96,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xae,0x00,0x04,0x00,0xb4,0x01,0x2e,0x01,0x50,0x01,0x6c,0x00,0x01,0x00,0x00, -0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x05,0x01,0x16,0x00,0x9c,0x01,0x16,0x01,0x38,0x01,0x54,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x06,0x00,0xfc,0x00,0xfc,0x00,0x82,0x00,0xfc,0x01,0x1e,0x01,0x3a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x60, -0x00,0x04,0x00,0x66,0x00,0xe0,0x01,0x02,0x01,0x24,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x05,0x00,0xc8,0x00,0x4e,0x00,0xc8,0x00,0xea,0x01,0x0c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x06,0x00,0xae,0x00,0xae,0x00,0x34,0x00,0xae,0x00,0xd0,0x00,0xf2, -0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x01,0x00,0xe8,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07, -0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30, -0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68, -0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x61,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1a,0x00,0x01,0x00,0x42, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00, -0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0xf8,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x02,0x01,0x0e,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x03,0x00,0xfa,0x00,0xfa, -0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x01,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xa2,0x00,0x02,0x00,0xd2,0x00,0xf4,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x03,0x00,0xbe,0x00,0xbe,0x00,0xe0,0x00,0x01, -0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x01,0x00,0xd0,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x02,0x00,0x96,0x00,0xbe,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x03,0x00,0x82,0x00,0x82,0x00,0xaa,0x00,0x01,0x00,0x00,0x00,0x53, -0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x9a,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2a,0x00,0x02,0x00,0x5a,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x46,0x00,0x46,0x00,0x74,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x01,0x00,0x02, -0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd, -0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x01,0x00,0x40,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x2c,0x00,0x01,0x00,0x32,0x00,0x02, -0x00,0x74,0x00,0x7a,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x5e,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88, -0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x03, -0x00,0x02,0x00,0xee,0x00,0xee,0x00,0x01,0x01,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x01,0x08,0x00,0xda,0x00,0xda,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xf2,0x00,0xf2,0x00,0xc4,0x00,0xc4,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55, -0x00,0x03,0x00,0x02,0x00,0xac,0x00,0xda,0x00,0x01,0x00,0xd4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0xc6,0x00,0x98,0x00,0xc6,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xb0,0x00,0xb0,0x00,0x82,0x00,0xb0,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x6a,0x00,0xc6,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0x84,0x00,0x56,0x00,0xb2,0x00,0x01,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0x6e,0x00,0x6e,0x00,0x40,0x00,0x9c,0x00,0x01,0x00,0x68,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x8a,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x7c,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95, -0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1, -0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x03,0x00,0x64,0x00,0x6a,0x00,0x6a,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x04,0x00,0x4e,0x00,0x54,0x00,0x82,0x00,0x54,0x00,0x01,0x00,0x7c, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x05,0x00,0x36,0x00,0x3c,0x00,0x6a,0x00,0x6a,0x00,0x3c,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x06,0x00,0x1c,0x00,0x22,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x22,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01, -0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61, -0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x03,0x00,0x02,0x06,0x38,0x06,0x3e,0x00,0x01,0x06,0x66,0x00,0x01,0x06,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x22,0x06,0xca,0x06,0x28, -0x00,0x01,0x06,0x50,0x00,0x01,0x06,0x90,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x06,0x0a,0x06,0x10,0x00,0x01,0x06,0x38,0x00,0x02,0x06,0xba,0x06,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0xa2,0x05,0xf2,0x05,0xf8,0x00,0x01,0x06,0x20,0x00,0x01,0x06,0x60,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, -0x00,0x04,0x06,0x8a,0x06,0x8a,0x05,0xda,0x05,0xe0,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x48,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x70,0x05,0xc0,0x05,0xc6,0x00,0x01,0x05,0xee,0x00,0x02,0x06,0x70,0x06,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x56,0x06,0x56,0x05,0xa6,0x05,0xac,0x00,0x01, -0x05,0xd4,0x00,0x02,0x06,0x56,0x06,0x14,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x8a,0x06,0x32,0x05,0x90,0x00,0x01,0x05,0xb8,0x00,0x02,0x06,0x3a,0x05,0xf8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x20,0x05,0x70,0x06,0x18,0x05,0x76,0x00,0x01,0x05,0x9e,0x00,0x01,0x05,0xde,0x00,0x01,0x00,0x00, -0x00,0x57,0x00,0x03,0x00,0x05,0x06,0x06,0x06,0x06,0x05,0x56,0x05,0xfe,0x05,0x5c,0x00,0x01,0x05,0x84,0x00,0x01,0x05,0xc4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0xea,0x05,0x3a,0x05,0xe2,0x05,0x40,0x00,0x01,0x05,0x68,0x00,0x02,0x05,0xea,0x05,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x05,0xce, -0x05,0xce,0x05,0x1e,0x05,0xc6,0x05,0x24,0x00,0x01,0x05,0x4c,0x00,0x02,0x05,0xce,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x05,0x00,0x05,0x06,0x00,0x01,0x05,0x2e,0x00,0x02,0x05,0xd2,0x05,0xd8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0xe8,0x05,0x90,0x04,0xee,0x00,0x01,0x05,0x16,0x00,0x02, -0x05,0xba,0x05,0xc0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x04,0xce,0x04,0xd4,0x00,0x01,0x04,0xfc,0x00,0x03,0x05,0x7e,0x05,0xa0,0x05,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x64,0x04,0xb4,0x04,0xba,0x00,0x01,0x04,0xe2,0x00,0x02,0x05,0x86,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, -0x00,0x04,0x05,0x4a,0x05,0x4a,0x04,0x9a,0x04,0xa0,0x00,0x01,0x04,0xc8,0x00,0x02,0x05,0x6c,0x05,0x72,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x2e,0x04,0x7e,0x04,0x84,0x00,0x01,0x04,0xac,0x00,0x03,0x05,0x2e,0x05,0x50,0x05,0x56,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0x12,0x05,0x12,0x04,0x62, -0x04,0x68,0x00,0x01,0x04,0x90,0x00,0x03,0x05,0x12,0x05,0x34,0x05,0x3a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0x44,0x04,0xec,0x04,0x4a,0x00,0x01,0x04,0x72,0x00,0x03,0x04,0xf4,0x05,0x16,0x05,0x1c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0xd8,0x04,0x28,0x04,0xd0,0x04,0x2e,0x00,0x01,0x04,0x56, -0x00,0x02,0x04,0xfa,0x05,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0xbc,0x04,0xbc,0x04,0x0c,0x04,0xb4,0x04,0x12,0x00,0x01,0x04,0x3a,0x00,0x02,0x04,0xde,0x04,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0x9e,0x03,0xee,0x04,0x96,0x03,0xf4,0x00,0x01,0x04,0x1c,0x00,0x03,0x04,0x9e,0x04,0xc0, -0x04,0xc6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0x80,0x04,0x80,0x03,0xd0,0x04,0x78,0x03,0xd6,0x00,0x01,0x03,0xfe,0x00,0x03,0x04,0x80,0x04,0xa2,0x04,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0xb0,0x03,0xb6,0x00,0x01,0x03,0xde,0x00,0x02,0x04,0x82,0x04,0x98,0x00,0x01,0x00,0x00,0x00,0x57, -0x00,0x03,0x00,0x02,0x03,0x98,0x03,0x9e,0x00,0x01,0x03,0xc6,0x00,0x02,0x04,0x6a,0x04,0x86,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x80,0x04,0x28,0x03,0x86,0x00,0x01,0x03,0xae,0x00,0x02,0x04,0x52,0x04,0x68,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x66,0x04,0x0e,0x03,0x6c,0x00,0x01,0x03,0x94, -0x00,0x02,0x04,0x38,0x04,0x54,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0x4c,0x03,0x52,0x00,0x01,0x03,0x7a,0x00,0x03,0x03,0xfc,0x04,0x1e,0x04,0x34,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xe2,0x03,0x32,0x03,0x38,0x00,0x01,0x03,0x60,0x00,0x02,0x04,0x04,0x04,0x1a,0x00,0x01,0x00,0x00,0x00,0x57, -0x00,0x03,0x00,0x04,0x03,0xc8,0x03,0xc8,0x03,0x18,0x03,0x1e,0x00,0x01,0x03,0x46,0x00,0x02,0x03,0xea,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xac,0x02,0xfc,0x03,0x02,0x00,0x01,0x03,0x2a,0x00,0x03,0x03,0xac,0x03,0xce,0x03,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x90,0x03,0x90, -0x02,0xe0,0x02,0xe6,0x00,0x01,0x03,0x0e,0x00,0x03,0x03,0x90,0x03,0xb2,0x03,0xc8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0xc2,0x02,0xc8,0x00,0x01,0x02,0xf0,0x00,0x03,0x03,0x72,0x03,0x94,0x03,0xb0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x58,0x02,0xa8,0x02,0xae,0x00,0x01,0x02,0xd6,0x00,0x02, -0x03,0x7a,0x03,0x96,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x3e,0x03,0x3e,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0xbc,0x00,0x02,0x03,0x60,0x03,0x7c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x22,0x02,0x72,0x02,0x78,0x00,0x01,0x02,0xa0,0x00,0x03,0x03,0x22,0x03,0x44,0x03,0x60,0x00,0x01,0x00,0x00, -0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x06,0x03,0x06,0x02,0x56,0x02,0x5c,0x00,0x01,0x02,0x84,0x00,0x03,0x03,0x06,0x03,0x28,0x03,0x44,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x02,0x38,0x02,0xe0,0x02,0x3e,0x00,0x01,0x02,0x66,0x00,0x03,0x02,0xe8,0x03,0x0a,0x03,0x20,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04, -0x02,0xcc,0x02,0x1c,0x02,0xc4,0x02,0x22,0x00,0x01,0x02,0x4a,0x00,0x02,0x02,0xee,0x03,0x04,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0xb0,0x02,0x00,0x02,0xa8,0x02,0x06,0x00,0x01,0x02,0x2e,0x00,0x02,0x02,0xd2,0x02,0xe8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x94,0x01,0xe4,0x02,0x8c,0x01,0xea, -0x00,0x01,0x02,0x12,0x00,0x03,0x02,0x94,0x02,0xb6,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0x76,0x02,0x76,0x00,0x01,0x01,0xf4,0x00,0x03,0x02,0x76,0x02,0x98,0x02,0xae,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xac,0x02,0x54,0x01,0xb2,0x00,0x01,0x01,0xda,0x00,0x03,0x02,0x5c,0x02,0x7e, -0x02,0x94,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x40,0x01,0x90,0x02,0x38,0x01,0x96,0x00,0x01,0x01,0xbe,0x00,0x02,0x02,0x62,0x02,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x02,0x24,0x02,0x24,0x01,0x74,0x02,0x1c,0x01,0x7a,0x00,0x01,0x01,0xa2,0x00,0x02,0x02,0x46,0x02,0x5c,0x00,0x01,0x00,0x00, -0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x06,0x01,0x56,0x01,0xfe,0x01,0x5c,0x00,0x01,0x01,0x84,0x00,0x03,0x02,0x06,0x02,0x28,0x02,0x3e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x38,0x01,0x3e,0x00,0x01,0x01,0x66,0x00,0x01,0x02,0x2c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x22,0x01,0xca,0x01,0x28, -0x00,0x01,0x01,0x50,0x00,0x01,0x02,0x16,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x0a,0x01,0x10,0x00,0x01,0x01,0x38,0x00,0x02,0x01,0xba,0x01,0xfe,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xa2,0x00,0xf2,0x00,0xf8,0x00,0x01,0x01,0x20,0x00,0x01,0x01,0xe6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, -0x00,0x04,0x01,0x8a,0x01,0x8a,0x00,0xda,0x00,0xe0,0x00,0x01,0x01,0x08,0x00,0x01,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x70,0x00,0xc0,0x00,0xc6,0x00,0x01,0x00,0xee,0x00,0x02,0x01,0x70,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x56,0x01,0x56,0x00,0xa6,0x00,0xac,0x00,0x01, -0x00,0xd4,0x00,0x02,0x01,0x56,0x01,0x9a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x00,0x8a,0x01,0x32,0x00,0x90,0x00,0x01,0x00,0xb8,0x00,0x02,0x01,0x3a,0x01,0x7e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x20,0x00,0x70,0x01,0x18,0x00,0x76,0x00,0x01,0x00,0x9e,0x00,0x01,0x01,0x64,0x00,0x01,0x00,0x00, -0x00,0x57,0x00,0x03,0x00,0x05,0x01,0x06,0x01,0x06,0x00,0x56,0x00,0xfe,0x00,0x5c,0x00,0x01,0x00,0x84,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x00,0xea,0x00,0x3a,0x00,0xe2,0x00,0x40,0x00,0x01,0x00,0x68,0x00,0x02,0x00,0xea,0x01,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x00,0xce, -0x00,0xce,0x00,0x1e,0x00,0xc6,0x00,0x24,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0xce,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, -0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c, -0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a, -0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b, -0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a, -0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x58,0x0b,0x5b,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x54,0x0b,0x56, -0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x01, -0x00,0x00,0x00,0x5b,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, -0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x88,0x00,0x01,0x00,0x01,0x0b,0x89,0x00,0x03,0x00,0x02,0x00,0x3e,0x00,0x6c,0x00,0x01,0x00,0x72,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x03,0x00,0x66,0x00,0x7c,0x00,0x82,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x94,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01, -0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, -0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x03,0x00,0x02,0x00,0x78,0x00,0xa6,0x00,0x01, -0x00,0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x64,0x00,0xa0,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x92,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x84,0x00,0x01,0x00,0x70,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x76,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x68,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, -0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x59,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5b,0x00,0x01,0x00,0x01, -0x0b,0x5d,0x00,0x01,0x00,0x01,0x0b,0xb9,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x7e,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x78,0x00,0x01,0x00,0x70,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x6a,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x5c,0x00,0x72,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05, -0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x03,0x00,0x00, -0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1, -0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d, -0x00,0x10,0x00,0x03,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x90,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x48,0x00,0x01,0x00,0x76,0x00,0x02,0x00,0x48,0x00,0x7c,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x60,0x00,0x03,0x00,0x32,0x00,0x32,0x00,0x66,0x00,0x01, -0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x04,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11, -0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x01,0x0b,0x75,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14, -0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01, -0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02, -0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x01,0x14,0x6b,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01, -0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01, -0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e, -0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01, -0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16, -0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01, -0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00, -0x00,0x75,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16, -0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, -0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00, -0x00,0x7a,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18, -0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x02,0x00,0x01,0x14,0x9e, -0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02, -0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01, -0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00, -0x00,0x82,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x04,0x00,0x18, -0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x85,0x00,0x02,0x00,0x01,0x14,0x9e, -0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x01,0x00,0x0a,0x00,0x03,0x00,0x64,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x03,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0xc8,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x5d, -0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x89,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88, -0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfc,0xb5,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0c,0x00,0x07,0xfc,0xc8,0xfc,0xc7,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00, -0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0xe6,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0xcd,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0x8e,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01, -0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac, -0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, -0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xff,0x82,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05, -0xfd,0x69,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfd,0x2a,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01, -0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, -0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e, -0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00, -0x00,0x01,0x02,0x1c,0x02,0x32,0x00,0x03,0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x00,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x50,0x4f,0xae,0x4f,0xb4, -0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x14,0x50,0x26,0x50,0x2c,0x50,0x32,0x50,0x38,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x56, -0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x9e,0x50,0xa4,0x50,0xaa,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xd4,0x50,0xda,0x50,0xe0,0x50,0xe6,0x50,0xec,0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04, -0x51,0x0a,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x56,0x50,0x5c, -0x50,0x62,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x7a,0x50,0x80,0x50,0x86,0x51,0x88,0x51,0x8e,0x51,0x94,0x51,0x9a,0x51,0xa0,0x51,0xa6,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0xac,0x51,0xb2,0x51,0xb8,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x51,0x40, -0x51,0x46,0x51,0x4c,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14, -0x51,0xbe,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x50,0x44,0x50,0x4a,0x50,0x50,0x51,0xbe,0x51,0xc4,0x51,0xca,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xe6,0x50,0xec, -0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x4f,0xde,0x50,0x1a,0x50,0x20,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x9a, -0x51,0xa0,0x51,0xa6,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0x64,0x51,0x6a,0x51,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85, -0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x4d,0x7c,0x00,0x00,0x4d,0x7c,0x00,0x50,0x4f,0xac,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x4f,0xd0, -0x4e,0xc2,0x4f,0xd6,0x4f,0xdc,0x4f,0xd0,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xee,0x4e,0x68,0x4f,0xf4,0x4f,0xfa,0x50,0x00,0x4e,0xb0,0x50,0x06,0x4e,0xd4,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24,0x50,0x2a,0x50,0x2a,0x50,0x2a,0x4e,0x20,0x4e,0x20,0x4f,0xe8,0x4f,0xe8,0x50,0x30,0x50,0x36,0x4f,0xb2,0x4f,0xc4, -0x4f,0xca,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x50,0x18,0x50,0x24,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x3c,0x50,0x42,0x4f,0xdc,0x50,0x3c,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xf4,0x50,0x48,0x4e,0xb0,0x50,0x06,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24, -0x4f,0xd0,0x4f,0xb8,0x4f,0xe2,0x50,0x06,0x50,0x36,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x24,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, -0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4c,0x94,0x00,0x50,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, -0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, -0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06, -0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4b,0xb2,0x00,0x50,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0, -0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xb2,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xdc,0x4e,0xb2,0x4e,0xe2,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xe8,0x4e,0xfa,0x4f,0x00,0x4e,0xdc,0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4e,0xb2,0x4e,0xb2,0x4e,0xb2,0x4e,0xca,0x4e,0xca,0x4e,0xd6,0x4e,0xd6,0x4e,0xb2, -0x4e,0xee,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xca,0x4f,0x0c,0x4f,0x06,0x4f,0x12,0x4f,0x06,0x4f,0x12,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4f,0x18,0x4e,0xf4,0x4e,0xc4,0x4f,0x18,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4e,0xf4,0x4e,0xe8,0x4f,0x00,0x4e,0xdc, -0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4f,0x2a,0x4f,0x30,0x4e,0xd6,0x4f,0x36,0x4f,0x24,0x4f,0x3c,0x4f,0x42,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, -0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0xd0,0x00,0x0c,0x4e,0x66,0x4e,0x6c,0x4e,0x72,0x4e,0x6c,0x4e,0x6c,0x4e,0x78,0x4e,0x66,0x4e,0x7e,0x4e,0x78,0x4e,0x84,0x4e,0x78,0x4e,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a, -0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x01,0x5c,0x01,0x72,0x00,0x02,0x00,0x0c,0x00,0x1a,0x00,0x03, -0x00,0x00,0x4a,0x64,0x00,0x00,0x4a,0x64,0x00,0x01,0x4a,0x64,0x00,0x50,0x4e,0x16,0x4e,0x1c,0x4e,0x22,0x4e,0x28,0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4e,0x5e,0x4e,0x64,0x4e,0x8e,0x4e,0x94,0x4e,0x9a, -0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x16,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e, -0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4e,0x8e,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xa6,0x4e,0xac,0x4e,0x5e,0x4e,0x7c,0x4e,0xd0,0x4e,0xd6,0x4e,0x22,0x4e,0x28,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4f,0x12, -0x4f,0x18,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4e,0x2e,0x4f,0x2a,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x30,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4e,0x82,0x4e,0x88,0x4f,0x30,0x4f,0x36,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6, -0x4e,0xac,0x4e,0x16,0x4e,0x58,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e,0x4e,0x64,0x4e,0x2e,0x4e,0x34,0x4f,0x48,0x4e,0xa0,0x4e,0xc4,0x4e,0xca,0x4e,0xa6,0x4e,0xac,0x4e,0x3a, -0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x12,0x4f,0x18,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00,0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, -0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xca,0x00,0x00,0x48,0xca,0x00,0x50,0x4a,0x76,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4b,0xc6,0x4d,0xd0,0x4b,0x8a,0x4d,0xd6,0x4b,0xc6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8, -0x4d,0xee,0x4d,0xf4,0x4b,0xc6,0x4d,0xfa,0x4e,0x00,0x4b,0x1e,0x4e,0x06,0x4e,0x0c,0x4e,0x12,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x49,0x68,0x49,0x68,0x49,0x68,0x4d,0xdc,0x4d,0xdc,0x4d,0xe8,0x4d,0xe8,0x4e,0x30,0x4b,0x1e,0x4d,0xb8,0x4d,0xbe,0x4d,0xca,0x4d,0xe2,0x4d,0xe8,0x4d,0xee,0x4d,0xdc,0x4e,0x2a,0x4e,0x24, -0x4e,0x24,0x4e,0x24,0x4e,0x24,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4c,0x2c,0x4e,0x36,0x4d,0xd6,0x4c,0x2c,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x4d,0xf4,0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x4e,0x0c,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x4e,0x3c,0x4e,0x42,0x4e,0x48,0x4e,0x4e,0x4e,0x54,0x4e,0x5a,0x4e,0x42, -0x4e,0x60,0x4e,0x66,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16, -0x00,0x02,0x00,0x00,0x47,0xe2,0x00,0x00,0x47,0xe2,0x00,0x0c,0x4d,0x84,0x4d,0x8a,0x49,0xbe,0x4d,0x8a,0x4d,0x8a,0x4d,0x90,0x4d,0x84,0x48,0xfe,0x4d,0x90,0x4d,0x96,0x4d,0x90,0x4d,0x72,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71, -0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x47,0x70,0x00,0x50,0x49,0x20,0x4c,0x62,0x4c,0x68, -0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0x70,0x4c,0x7a,0x4a,0x34,0x4c,0x80,0x4a,0x70,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x9e,0x4a,0x70,0x4c,0xa4,0x4c,0xaa,0x49,0xc8,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4c,0xc2,0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x48,0x12,0x48,0x12,0x48,0x12,0x4c,0x86,0x4c,0x86,0x4d,0x2e,0x4d,0x2e, -0x4c,0xda,0x49,0xc8,0x4c,0x62,0x4c,0x68,0x4c,0x74,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x86,0x4c,0xd4,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0x62,0x4c,0x68,0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0xd6,0x4c,0xe0,0x4c,0x80,0x4a,0xd6,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xc2, -0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x4d,0x34,0x4c,0xec,0x4c,0xf2,0x4c,0xf8,0x4c,0xfe,0x4d,0x04,0x4c,0xec,0x4d,0x0a,0x4d,0x10,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7, -0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x46,0x8e,0x00,0x0c,0x4c,0x58,0x4c,0x5e,0x4c,0x64,0x4c,0x5e,0x4c,0x5e,0x4c,0x6a,0x4c,0x58,0x4c,0x70,0x4c,0x6a,0x4c,0x76,0x4c,0x6a,0x4c,0x22,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x09,0x0b,0x6a, -0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0x64,0x00,0xa4,0x00,0x01,0x00,0x0c,0x00,0x4a, -0x00,0x0f,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x0c, -0x46,0x50,0x4b,0xd8,0x47,0xfa,0x4b,0xd8,0x4b,0xd8,0x4b,0xde,0x46,0x50,0x4b,0xe4,0x4b,0xde,0x4b,0xea,0x4b,0xde,0x4b,0x7e,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08, -0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07, -0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x45,0x44,0x00,0x00,0x45,0x44,0x00,0x50,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4a,0x3e,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4a,0x3e, -0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x47,0xaa,0x45,0x88,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x46,0x24,0x46,0x24,0x46,0x24,0x4a,0x8c,0x4a,0x8c,0x4b,0x82,0x4b,0x82,0x48,0x04,0x46,0x8a,0x4b,0x4c,0x4b,0x5e,0x4b,0x64,0x4b,0xbe,0x4b,0x82,0x4b,0x88, -0x4b,0xb2,0x47,0xf8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0xc4,0x4b,0x0a,0x4b,0x76,0x4b,0xc4,0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x94,0x47,0xaa,0x4b,0x9a,0x4b,0xa0,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x4a,0x3e,0x4b,0x52,0x4b,0x7c,0x4b,0xa0, -0x46,0x8a,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x47,0xf8,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0, -0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x44,0x5c,0x00,0x00,0x44,0x5c,0x00,0x50,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4a,0xfa,0x49,0x92,0x4b,0x00,0x4b,0x06,0x4a,0xfa,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x12,0x4a,0xa6,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x47,0x22,0x4b,0x2a,0x4a,0xbe, -0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x4e,0x4b,0x4e,0x4b,0x0c,0x4b,0x0c,0x46,0x02,0x46,0x02,0x4b,0x54,0x4b,0x5a,0x4a,0xe8,0x44,0xdc,0x4a,0xf4,0x4b,0x60,0x46,0x02,0x4b,0x12,0x4b,0x3c,0x4b,0x48,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x66, -0x4b,0x6c,0x4b,0x06,0x4b,0x66,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x47,0x22,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4a,0xfa,0x4a,0xee,0x46,0x14,0x4b,0x2a,0x4b,0x5a,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x48,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43, -0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x43,0x74,0x00,0x00,0x43,0x74,0x00,0x50,0x4a,0x8a,0x4a,0x90,0x4a,0x96, -0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xa2,0x4a,0xa8,0x4a,0xae,0x4a,0xb4,0x4a,0xa2,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x46,0x16,0x4a,0xc6,0x43,0x82,0x4a,0xcc,0x4a,0xd2,0x45,0xb6,0x4a,0xd8,0x4a,0xde,0x45,0xfe,0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4a,0xfc,0x4a,0xfc,0x4a,0xba,0x4a,0xba,0x46,0x04,0x46,0x04, -0x4b,0x02,0x4b,0x08,0x4a,0x90,0x4a,0x9c,0x46,0x1c,0x4b,0x0e,0x46,0x04,0x46,0x16,0x4a,0xea,0x4a,0xf6,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0x90,0x4a,0x96,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4b,0x14,0x4a,0x72,0x4a,0xb4,0x4b,0x14,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x43,0x82,0x4a,0xcc,0x45,0xb6,0x4a,0xd8,0x45,0xfe, -0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xa2,0x4a,0x96,0x4a,0xc0,0x4a,0xd8,0x4b,0x08,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xf6,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d, -0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xe0,0x01,0x0e,0x00,0x01,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c, -0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x50,0x48,0x90,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x1c,0x43,0x80,0x4a,0x34,0x47,0x64,0x48,0xf0,0x48,0xf0,0x4a,0x3a,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76, -0x4a,0x7c,0x4a,0x82,0x4a,0x82,0x4a,0x82,0x43,0x80,0x43,0x80,0x47,0x64,0x47,0x64,0x4a,0x88,0x4a,0x8e,0x43,0xe6,0x4a,0x10,0x4a,0x16,0x4a,0x94,0x47,0x64,0x48,0xf0,0x4a,0x70,0x4a,0x7c,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x47,0x82,0x4a,0x9a,0x4a,0x2e,0x47,0x82,0x43,0x80, -0x4a,0x34,0x47,0x64,0x48,0xf0,0x4a,0x40,0x4a,0x46,0x4a,0x52,0x4a,0x58,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76,0x4a,0x7c,0x4a,0x1c,0x4a,0x0a,0x4a,0x34,0x4a,0x58,0x4a,0x8e,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x7c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, -0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c, -0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x41,0x56,0x00,0x00,0x41,0x56,0x00,0x0c,0x49,0x92,0x49,0x98,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, -0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0xf0,0x00,0x00,0x40,0xf0,0x00,0x0c,0x46,0x2c, -0x46,0x2c,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x46,0xf2,0x49,0x3e,0x49,0x3e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04, -0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0x8a,0x00,0x00,0x40,0x8a,0x00,0x0c,0x46,0x8c,0x46,0x8c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x48,0xde,0x47,0x1c,0x47,0x1c,0x00,0x01,0x00,0x02, -0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0xf8,0x01,0x32,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12, -0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24, -0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x50,0x48,0x3e,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x40,0x88,0x48,0x56,0x48,0x5c,0x48,0x62,0x40,0x88,0x45,0x08,0x41,0x2a,0x42,0x32,0x48,0x68,0x48,0x6e,0x40,0x88,0x42,0x38,0x48,0x74,0x48,0x7a,0x48,0x80,0x46,0x28,0x40,0x76,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00, -0x48,0x92,0x48,0x98,0x48,0x98,0x48,0x98,0x45,0x08,0x45,0x08,0x42,0x32,0x42,0x32,0x47,0xd8,0x48,0x7a,0x48,0x44,0x40,0x28,0x48,0x50,0x41,0x2a,0x42,0x32,0x48,0x68,0x45,0x08,0x48,0x92,0x42,0x56,0x46,0xc4,0x42,0x56,0x46,0xc4,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x48,0x9e,0x48,0xa4,0x48,0x62,0x48,0x9e,0x45,0x08, -0x41,0x2a,0x42,0x32,0x48,0x6e,0x42,0x38,0x48,0x74,0x48,0x80,0x46,0x28,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00,0x48,0x92,0x48,0xaa,0x48,0xb0,0x48,0xb6,0x48,0xbc,0x46,0x52,0x48,0xc2,0x48,0xc8,0x48,0xce,0x48,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, -0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, -0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x3e,0xca,0x00,0x50,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, -0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, -0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, -0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x12,0xf4,0x13,0x46,0x00,0x03,0x00,0x0c,0x01,0xbe,0x00,0x6c,0x00,0x00,0x46,0xe8, -0x00,0x02,0x46,0xee,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x00,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x06,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x12, -0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x18,0x00,0x00,0x47,0x1e,0x00,0x00,0x47,0x24,0x00,0x01,0x47,0x2a,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x30,0x00,0x02,0x47,0x36,0x00,0x00,0x47,0x3c,0x00,0x02,0x47,0x42,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x4e, -0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x5a,0x00,0x02,0x47,0x60,0x00,0x02,0x47,0x66,0x00,0x02,0x47,0x6c,0x00,0x02,0x3d,0xe8, -0x00,0x02,0x47,0x72,0x00,0x02,0x3d,0xe8,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x78,0x00,0x00,0x47,0x00,0x00,0x00,0x47,0x7e,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x3c,0x00,0x02,0x43,0xb2,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0x84,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x8a,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x90, -0x00,0x02,0x47,0x96,0x00,0x02,0x47,0x9c,0x00,0x00,0x47,0xa2,0x00,0x00,0x47,0xa8,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c, -0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xc0,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0xc6,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x00,0x47,0xd2,0x00,0x02,0x47,0xd8,0x00,0x02,0x47,0x5a,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba, -0x00,0x02,0x47,0xde,0x00,0x00,0x47,0xe4,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf6,0x00,0x00,0x47,0xf6,0x00,0x02,0x47,0xfc,0x00,0x00,0x48,0x02,0x00,0x02,0x48,0x08,0x02,0xde,0x46,0x5c,0x46,0x62,0x46,0x68,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x80,0x46,0x86,0x46,0x8c, -0x46,0x92,0x46,0x98,0x46,0x9e,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x46,0xc8,0x46,0xce,0x46,0xd4,0x46,0xda,0x46,0xe0,0x46,0xe6,0x46,0xec,0x46,0xf2,0x46,0xf8,0x46,0xfe,0x47,0x04,0x47,0x0a,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x22,0x47,0x28,0x47,0x2e,0x46,0xb6,0x47,0x34, -0x47,0x3a,0x47,0x40,0x47,0x46,0x47,0x4c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x40,0x47,0x46,0x47,0x5e,0x47,0x52,0x47,0x64,0x46,0x68,0x47,0x6a,0x46,0xaa,0x47,0x70,0x47,0x76,0x47,0x7c,0x47,0x82,0x46,0x92,0x47,0x46,0x47,0x88,0x47,0x8e,0x47,0x46,0x47,0x94,0x47,0x9a,0x47,0xa0,0x47,0xa6,0x47,0xac,0x46,0x98,0x47,0xb2,0x47,0xb8, -0x47,0x04,0x47,0xbe,0x46,0xfe,0x47,0x04,0x47,0xbe,0x47,0xc4,0x47,0xca,0x47,0xd0,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xe8,0x47,0xee,0x47,0xf4,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x47,0xdc,0x47,0x1c,0x48,0x2a,0x48,0x30,0x48,0x36, -0x48,0x3c,0x48,0x30,0x48,0x42,0x47,0xd6,0x48,0x48,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x48,0x54,0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x72,0x48,0x6c,0x48,0x78,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x66,0x48,0x8a,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4, -0x48,0xba,0x47,0xe8,0x48,0xc0,0x47,0x70,0x48,0xc6,0x48,0xcc,0x48,0xd2,0x48,0xd8,0x48,0xde,0x48,0xe4,0x48,0xea,0x48,0xf0,0x48,0xf6,0x48,0xfc,0x48,0x7e,0x49,0x02,0x49,0x08,0x47,0xee,0x49,0x0e,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x14,0x49,0x1a,0x46,0x68,0x46,0x80,0x46,0x86,0x49,0x20,0x49,0x26,0x49,0x2c,0x46,0xb0,0x49,0x32, -0x49,0x38,0x47,0x3a,0x49,0x3e,0x49,0x44,0x47,0x4c,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x62,0x49,0x5c,0x49,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x74,0x47,0xd0,0x47,0xe8,0x47,0xee,0x49,0x7a,0x49,0x80,0x49,0x5c,0x47,0xf4, -0x49,0x80,0x49,0x5c,0x47,0xf4,0x49,0x86,0x49,0x5c,0x49,0x8c,0x49,0x92,0x49,0x5c,0x47,0x70,0x48,0x2a,0x49,0x98,0x48,0x36,0x48,0x2a,0x49,0x9e,0x48,0x36,0x49,0xa4,0x49,0xaa,0x48,0x36,0x49,0xb0,0x49,0xaa,0x48,0x36,0x49,0xb6,0x49,0xbc,0x47,0x1c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc8,0x49,0xbc, -0x49,0xce,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0x80,0x49,0xe0,0x47,0xf4,0x49,0xe6,0x49,0xe0,0x47,0xf4,0x49,0xec,0x49,0xf2,0x49,0xf8,0x49,0xfe,0x4a,0x04,0x4a,0x0a,0x47,0x40,0x49,0x44,0x47,0x4c,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x48,0x72, -0x49,0xbc,0x48,0x78,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x34,0x49,0x1a,0x46,0x68,0x49,0x14,0x4a,0x3a,0x46,0x68,0x49,0x3e,0x49,0x44,0x47,0x4c,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x34,0x49,0x1a,0x46,0x68,0x4a,0x7c,0x4a,0x82,0x4a,0x88, -0x4a,0x34,0x4a,0x8e,0x46,0x68,0x4a,0x94,0x4a,0x9a,0x4a,0x88,0x49,0x26,0x4a,0x82,0x46,0xb0,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x4a,0xac,0x4a,0xa6,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x46,0xe6,0x4a,0xa0,0x4a,0xc4,0x46,0xe6,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xd0,0x49,0x50, -0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd6,0x4a,0xdc,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x47,0x70,0x4b,0x00,0x4b,0x06,0x48,0xa8,0x4b,0x0c,0x4b,0x12,0x47,0xbe,0x4b,0x18,0x4b,0x1e,0x49,0x0e,0x46,0x92,0x46,0x98,0x46,0x9e,0x4b,0x24, -0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x4b,0x78,0x4b,0x7e,0x4a,0xb2,0x47,0x6a,0x46,0xaa,0x4b,0x84,0x48,0x9c,0x48,0xa2,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x46,0x8c, -0x49,0xda,0x4b,0x1e,0x47,0xf4,0x4b,0x9c,0x4b,0x96,0x4b,0xa2,0x4b,0xa8,0x4b,0x1e,0x4b,0xae,0x47,0xfa,0x48,0x00,0x48,0x06,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4b,0xb4,0x46,0x62,0x4b,0xba,0x47,0xc4,0x47,0xca,0x4b,0xc0,0x4b,0xc6,0x4b,0xcc,0x4b,0xd2,0x47,0xfa,0x48,0x00,0x48,0x06,0x46,0x92,0x46,0x98, -0x46,0x9e,0x46,0xa4,0x46,0xaa,0x4b,0xd8,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4a,0x7c,0x4a,0xfa,0x46,0xb0,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4b,0xe4,0x4b,0xea,0x47,0x1c,0x4b,0xf0,0x4b,0xf6,0x48,0x36,0x47,0x10,0x4b,0xfc,0x47,0x1c,0x48,0x2a,0x4c,0x02,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x4b,0x66, -0x4c,0x08,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0xca,0x4c,0x08,0x4c,0x14,0x49,0xc2,0x49,0xbc,0x46,0xb0,0x4a,0xca,0x4c,0x1a,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x2c,0x4c,0x32,0x48,0x36,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x38,0x4c,0x32,0x48,0x36,0x4c,0x3e,0x4a,0xfa,0x47,0x70, -0x4c,0x38,0x4b,0x06,0x48,0xa8,0x47,0x76,0x47,0x7c,0x4b,0x84,0x48,0xae,0x48,0xb4,0x4c,0x44,0x4a,0xf4,0x4c,0x4a,0x47,0x82,0x4c,0x50,0x4c,0x56,0x48,0xba,0x4b,0xc6,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4c,0x62,0x4c,0x68,0x47,0xbe,0x4c,0x6e,0x4b,0x1e, -0x49,0x0e,0x4c,0x74,0x4c,0x7a,0x47,0x1c,0x4c,0x80,0x4b,0x1e,0x49,0x0e,0x4c,0x86,0x4c,0x8c,0x4c,0x92,0x4c,0x98,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4a,0x3a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x4c,0xc2,0x4b,0x96,0x4c,0xc8,0x49,0xda,0x4b,0x1e,0x47,0xf4,0x49,0x3e,0x4c,0xce,0x47,0x4c,0x49,0xd4, -0x4b,0x1e,0x48,0x78,0x4c,0xd4,0x4a,0x9a,0x47,0xbe,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4c,0xe0,0x4a,0x9a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0x70,0x4c,0xe6,0x4c,0xec,0x47,0x82,0x49,0xe6,0x49,0x5c,0x47,0xf4,0x4b,0x9c,0x4c,0xf2,0x4b,0xa2,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x32,0x4b,0x6c,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24, -0x46,0xb6,0x46,0xbc,0x4c,0xfe,0x4d,0x04,0x4d,0x0a,0x48,0x24,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x4d,0x16,0x4d,0x1c,0x47,0xb2,0x4d,0x22,0x4d,0x28,0x4d,0x2e,0x4d,0x34,0x4d,0x3a,0x4d,0x40,0x4d,0x46,0x4a,0xbe,0x4a,0xee,0x4d,0x4c,0x49,0xaa,0x48,0x36,0x4d,0x52,0x4a,0xbe,0x46,0xe6,0x4d,0x58,0x49,0xaa,0x48,0x36,0x4d,0x5e,0x4a,0xc4, -0x4a,0xee,0x4d,0x64,0x49,0x9e,0x48,0x36,0x4d,0x6a,0x46,0xe0,0x4d,0x70,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4d,0x7c,0x4d,0x82,0x46,0xf8,0x48,0x3c,0x4d,0x88,0x48,0x42,0x46,0xfe,0x47,0x04,0x4d,0x8e,0x47,0xd6,0x48,0x48,0x4d,0x94,0x4d,0x9a,0x4d,0xa0,0x4d,0xa6,0x47,0x10,0x47,0x16,0x4d,0xac,0x48,0x2a,0x48,0x4e,0x4d,0xb2,0x46,0xb6, -0x47,0x34,0x4c,0xfe,0x48,0x66,0x48,0x6c,0x4d,0x94,0x46,0xb6,0x47,0x34,0x4d,0xb8,0x48,0x66,0x48,0x6c,0x48,0x84,0x4d,0xbe,0x49,0x44,0x47,0x4c,0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x47,0x52,0x47,0x64,0x4d,0xc4,0x48,0x90,0x48,0x96,0x4d,0xca,0x4a,0xf4,0x4a,0xfa,0x47,0x70, -0x4c,0x38,0x4b,0x06,0x48,0xa8,0x4d,0xd0,0x4d,0xd6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x48,0xba,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4d,0xee,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x46,0x92,0x47,0x46,0x4d,0xf4,0x47,0xe8,0x48,0xc0, -0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x47,0xa6,0x4e,0x0c,0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x49,0x56,0x4a,0x6a,0x4e,0x18,0x4e,0x1e,0x4e,0x24,0x48,0x36,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x36,0x4e,0x06,0x47,0xa6,0x4e,0x3c, -0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4e,0x42,0x49,0x02,0x47,0x40,0x4e,0x48,0x47,0x4c,0x48,0x72,0x4e,0x4e,0x48,0x78,0x4e,0x54,0x4e,0x5a,0x47,0x88,0x4e,0x60,0x4e,0x66,0x47,0x70,0x4b,0xb4,0x46,0x62,0x4e,0x6c,0x4e,0x72,0x47,0xca,0x4e,0x78,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, -0x47,0xb8,0x46,0xaa,0x4e,0x7e,0x48,0x66,0x47,0xca,0x4e,0x84,0x4a,0xf4,0x4a,0xfa,0x47,0x82,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4a,0xa0,0x4e,0x8a,0x46,0xe6,0x48,0x2a,0x4e,0x90,0x48,0x36,0x46,0xda,0x46,0xe0,0x4e,0x96,0x48,0x2a,0x48,0x30,0x4e,0x9c,0x47,0x40,0x47,0x46, -0x4e,0xa2,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x4a,0xca,0x4c,0x5c,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x47,0xb8,0x47,0x04,0x4e,0x7e,0x48,0xfc,0x48,0x7e,0x49,0x02,0x4b,0x36,0x4b,0x12,0x47,0xbe,0x4b,0x3c, -0x4e,0x42,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x47,0x76,0x47,0x7c,0x4e,0xba,0x48,0xae,0x48,0xb4,0x4e,0xc0,0x4e,0xc6,0x4e,0xcc,0x4e,0xd2,0x4e,0xd8,0x4e,0xde,0x4e,0xe4,0x46,0xa4,0x46,0xaa,0x4e,0xea,0x48,0x0c,0x47,0xca,0x49,0x7a,0x4b,0xb4,0x46,0x62,0x4e,0xf0,0x47,0xc4,0x47,0xca,0x4e,0xf6, -0x4e,0xfc,0x4f,0x02,0x46,0x7a,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x4f,0x08,0x46,0x74,0x4f,0x0e,0x47,0xd6,0x47,0xdc,0x4f,0x14,0x47,0xb8,0x46,0x74,0x4f,0x1a,0x47,0xd6,0x47,0xdc,0x4f,0x20,0x49,0x14,0x4f,0x26,0x46,0x68,0x47,0xfa,0x48,0x00,0x48,0x06,0x4f,0x2c,0x46,0x98,0x4f,0x32,0x4f,0x38,0x48,0x00,0x4e,0xa8,0x46,0xfe,0x46,0x98, -0x4f,0x3e,0x47,0xd6,0x48,0x00,0x4f,0x44,0x46,0x92,0x46,0x98,0x4f,0x4a,0x47,0xfa,0x48,0x00,0x4f,0x50,0x4f,0x56,0x46,0x98,0x4f,0x5c,0x47,0xd6,0x48,0x00,0x48,0x84,0x47,0x10,0x46,0xaa,0x48,0x84,0x4f,0x62,0x47,0xca,0x4c,0xf8,0x4f,0x08,0x46,0xaa,0x4f,0x68,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4f,0x6e,0x4a,0x82,0x4f,0x74,0x4f,0x7a, -0x4f,0x80,0x48,0x18,0x4f,0x86,0x49,0x38,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24,0x4f,0x8c,0x4f,0x92,0x46,0xd4,0x4f,0x98,0x4f,0x9e,0x47,0x1c,0x46,0xc8,0x46,0xce,0x4f,0xa4,0x4f,0xaa,0x47,0xdc,0x4f,0xb0,0x4f,0x8c,0x49,0x38,0x46,0xd4,0x4f,0xb6,0x4f,0xbc,0x47,0x94,0x46,0xc8,0x46,0xce,0x4f,0xc2,0x47,0xd6,0x47,0xdc,0x48,0x84, -0x46,0xc8,0x46,0xce,0x4f,0xc8,0x47,0xd6,0x47,0xdc,0x4f,0xce,0x46,0xda,0x46,0xe0,0x4f,0xd4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4f,0xda,0x4c,0x68,0x47,0x0a,0x4f,0xe0,0x49,0x2c,0x47,0x1c,0x47,0x8e,0x47,0x04,0x4f,0xe6,0x4f,0xec,0x48,0x48,0x4e,0xb4,0x46,0xfe,0x47,0x04,0x4f,0x3e,0x4f,0xf2,0x48,0x48,0x4f,0xf8,0x47,0x76,0x47,0x16, -0x4e,0xb4,0x48,0x2a,0x48,0x4e,0x4e,0x9c,0x4f,0xfe,0x50,0x04,0x4e,0xb4,0x50,0x0a,0x4b,0xf6,0x4e,0x9c,0x4f,0x08,0x47,0x16,0x4f,0xf8,0x48,0x2a,0x48,0x4e,0x50,0x10,0x50,0x16,0x47,0x16,0x50,0x1c,0x48,0x2a,0x48,0x4e,0x50,0x22,0x50,0x28,0x50,0x2e,0x47,0x2e,0x50,0x34,0x50,0x3a,0x48,0x60,0x50,0x40,0x50,0x46,0x47,0x2e,0x50,0x34, -0x50,0x3a,0x48,0x60,0x47,0x22,0x47,0x28,0x50,0x4c,0x48,0x54,0x48,0x5a,0x50,0x52,0x50,0x58,0x49,0x38,0x50,0x5e,0x49,0xd4,0x49,0xbc,0x46,0xb0,0x50,0x64,0x47,0x34,0x50,0x6a,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x50,0x64,0x47,0x34,0x50,0x70,0x48,0x72,0x48,0x6c,0x50,0x76,0x47,0x40,0x47,0x34,0x50,0x7c,0x48,0x66,0x48,0x6c,0x48,0x84, -0x4c,0x20,0x50,0x82,0x47,0x58,0x4c,0x0e,0x4a,0x6a,0x48,0x84,0x4a,0x94,0x50,0x88,0x4a,0x88,0x50,0x8e,0x4a,0x6a,0x50,0x94,0x50,0x9a,0x50,0xa0,0x46,0xb0,0x50,0xa6,0x4c,0x32,0x48,0x36,0x47,0x52,0x47,0x64,0x50,0xac,0x48,0x90,0x48,0x96,0x4e,0x9c,0x47,0x52,0x47,0x64,0x50,0xb2,0x48,0x90,0x48,0x96,0x50,0x10,0x4c,0x74,0x4a,0x82, -0x50,0xb8,0x4c,0x2c,0x4b,0x06,0x50,0xbe,0x47,0x6a,0x46,0xaa,0x4e,0xb4,0x50,0xc4,0x48,0xa2,0x50,0xca,0x4c,0x3e,0x50,0xd0,0x47,0x70,0x4c,0x38,0x50,0xd6,0x48,0xa8,0x50,0xdc,0x50,0xd0,0x4b,0xae,0x50,0xe2,0x50,0xd6,0x48,0xa8,0x50,0xe8,0x4a,0x82,0x50,0xee,0x4c,0x2c,0x4b,0x06,0x50,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x50,0xfa, -0x4c,0x56,0x48,0xba,0x47,0x76,0x47,0x7c,0x4e,0xb4,0x48,0xae,0x48,0xb4,0x51,0x00,0x47,0x76,0x47,0x7c,0x51,0x06,0x48,0xae,0x48,0xb4,0x51,0x0c,0x47,0x76,0x47,0x7c,0x51,0x12,0x48,0xae,0x48,0xb4,0x51,0x18,0x46,0x92,0x47,0x46,0x4e,0xae,0x51,0x1e,0x48,0xc0,0x51,0x24,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4, -0x4f,0x56,0x47,0x46,0x4f,0x5c,0x51,0x2a,0x48,0xc0,0x50,0x1c,0x51,0x30,0x51,0x36,0x47,0x94,0x49,0x62,0x51,0x3c,0x48,0xd2,0x47,0x8e,0x47,0x46,0x4f,0xe6,0x48,0xc6,0x48,0xcc,0x51,0x42,0x51,0x48,0x51,0x4e,0x47,0xa6,0x51,0x54,0x4e,0x12,0x48,0xe4,0x47,0x9a,0x47,0xa0,0x51,0x5a,0x48,0xd8,0x48,0xde,0x51,0x60,0x51,0x66,0x51,0x6c, -0x47,0xb2,0x51,0x72,0x51,0x78,0x48,0xf6,0x51,0x66,0x4f,0x26,0x47,0xb2,0x51,0x72,0x4e,0x42,0x48,0xf6,0x4a,0x70,0x4c,0x7a,0x47,0xbe,0x4a,0x64,0x4e,0x42,0x49,0x02,0x49,0x26,0x4b,0x12,0x46,0xb0,0x4c,0x6e,0x4b,0x1e,0x51,0x7e,0x46,0xfe,0x47,0x04,0x4e,0xa8,0x49,0x08,0x47,0xee,0x51,0x84,0x46,0xfe,0x47,0x04,0x4f,0x1a,0x48,0x90, -0x47,0xee,0x51,0x8a,0x47,0xd6,0x47,0xdc,0x4f,0x44,0x51,0x90,0x51,0x96,0x48,0xba,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x49,0x56,0x51,0x9c,0x47,0xd0,0x51,0xa2,0x51,0xa8,0x51,0xae,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xc0,0x51,0xc6,0x51,0xcc,0x51,0xd2,0x51,0xd8,0x51,0xde,0x4b,0x54,0x51,0xe4,0x51,0xba, -0x51,0xea,0x51,0xf0,0x51,0xf6,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xfc,0x52,0x02,0x52,0x08,0x52,0x0e,0x52,0x14,0x52,0x1a,0x52,0x20,0x52,0x26,0x4b,0x30,0x52,0x2c,0x52,0x32,0x46,0x9e,0x52,0x38,0x52,0x3e,0x52,0x44,0x52,0x4a,0x52,0x50,0x52,0x56,0x4b,0x54,0x52,0x5c,0x51,0xba,0x52,0x62,0x52,0x68,0x52,0x6e,0x52,0x74,0x52,0x7a, -0x51,0x7e,0x52,0x80,0x52,0x86,0x48,0x78,0x52,0x8c,0x52,0x92,0x52,0x98,0x52,0x9e,0x52,0xa4,0x46,0xc2,0x52,0xaa,0x52,0xb0,0x52,0xb6,0x52,0xbc,0x52,0xc2,0x52,0xc8,0x52,0xce,0x52,0xd4,0x48,0x18,0x52,0xda,0x52,0xe0,0x4a,0xb2,0x52,0xe6,0x52,0xec,0x52,0xf2,0x52,0xf8,0x52,0xfe,0x53,0x04,0x53,0x0a,0x53,0x10,0x53,0x16,0x53,0x1c, -0x53,0x22,0x53,0x04,0x53,0x28,0x53,0x2e,0x53,0x34,0x53,0x3a,0x53,0x40,0x53,0x46,0x53,0x4c,0x53,0x52,0x53,0x58,0x53,0x5e,0x53,0x64,0x53,0x6a,0x53,0x70,0x53,0x76,0x53,0x7c,0x53,0x82,0x53,0x88,0x53,0x8e,0x53,0x94,0x53,0x9a,0x53,0xa0,0x53,0xa6,0x53,0xac,0x4b,0x60,0x53,0xb2,0x53,0xb8,0x53,0xbe,0x47,0x6a,0x46,0xaa,0x47,0x70, -0x48,0x9c,0x48,0xa2,0x48,0xa8,0x53,0xc4,0x53,0xca,0x53,0xd0,0x53,0xd6,0x53,0xdc,0x53,0xe2,0x53,0xe8,0x53,0xee,0x53,0xf4,0x53,0xfa,0x54,0x00,0x54,0x06,0x54,0x0c,0x54,0x12,0x54,0x18,0x53,0xfa,0x54,0x00,0x54,0x1e,0x54,0x24,0x54,0x2a,0x54,0x30,0x54,0x36,0x54,0x3c,0x54,0x42,0x54,0x48,0x54,0x4e,0x54,0x54,0x54,0x5a,0x54,0x60, -0x54,0x66,0x46,0xfe,0x47,0x04,0x47,0xbe,0x49,0x08,0x47,0xee,0x49,0x0e,0x47,0x76,0x47,0x04,0x51,0x12,0x46,0x80,0x46,0xce,0x54,0x6c,0x54,0x72,0x54,0x78,0x54,0x7e,0x54,0x84,0x54,0x8a,0x54,0x90,0x54,0x96,0x54,0x9c,0x54,0xa2,0x54,0xa8,0x54,0xae,0x54,0xb4,0x54,0xba,0x54,0xc0,0x54,0xc6,0x54,0xcc,0x54,0xd2,0x54,0xd8,0x54,0xde, -0x54,0xe4,0x54,0xea,0x54,0xf0,0x54,0xf6,0x54,0xfc,0x55,0x02,0x55,0x08,0x55,0x0e,0x55,0x14,0x55,0x1a,0x55,0x20,0x55,0x26,0x55,0x2c,0x55,0x32,0x55,0x38,0x55,0x3e,0x55,0x44,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x55,0x4a,0x49,0x5c,0x55,0x50,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x48,0x2a,0x55,0x56,0x48,0x36,0x4a,0xca,0x4c,0x5c,0x47,0x4c, -0x49,0xc2,0x49,0xbc,0x48,0x78,0x55,0x5c,0x4c,0x5c,0x55,0x62,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x4e,0x72,0x47,0xca,0x52,0x08,0x55,0x68,0x55,0x6e,0x55,0x74,0x55,0x7a,0x55,0x80,0x55,0x86,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x48,0x0c,0x48,0x1e,0x48,0x24,0x55,0x8c,0x4c,0xf2,0x55,0x92,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x26,0x4c,0x68, -0x46,0xb0,0x55,0x98,0x49,0x2c,0x53,0x04,0x47,0x40,0x47,0x46,0x55,0x9e,0x48,0x72,0x48,0x6c,0x55,0xa4,0x4d,0xbe,0x49,0x44,0x55,0x9e,0x49,0xd4,0x49,0xbc,0x55,0xa4,0x55,0xaa,0x4c,0x68,0x4e,0x18,0x55,0xb0,0x4b,0x1e,0x55,0xb6,0x48,0x3c,0x55,0xbc,0x48,0x42,0x55,0xc2,0x55,0xc8,0x55,0xce,0x55,0xd4,0x55,0xda,0x54,0xc6,0x55,0xe0, -0x55,0xe6,0x54,0xd8,0x4b,0x66,0x4c,0xf2,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x46,0x92,0x55,0xec,0x46,0x9e,0x55,0xf2,0x55,0xf8,0x55,0xfe,0x4b,0x66,0x49,0x38,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0x34,0x56,0x04,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, -0x4c,0xe0,0x56,0x0a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0xf4,0x4a,0x7c,0x4a,0x9a,0x4a,0x88,0x49,0xda,0x49,0x5c,0x47,0x70,0x4a,0xa0,0x56,0x10,0x46,0xe6,0x48,0x2a,0x56,0x16,0x48,0x36,0x4a,0xa0,0x4a,0xbe,0x46,0xe6,0x48,0x2a,0x49,0xaa,0x48,0x36,0x4b,0x90,0x49,0x44,0x47,0x4c,0x49,0x80,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44, -0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4a,0xf4,0x4c,0x26,0x46,0xb0,0x4b,0x00,0x4c,0x32,0x48,0x36,0x4c,0x20,0x50,0xa0,0x46,0x68,0x56,0x1c,0x4c,0x32,0x48,0x36,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x56,0x22,0x56,0x28,0x56,0x2e,0x56,0x34, -0x56,0x3a,0x56,0x40,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x55,0x98,0x56,0x46,0x47,0x1c,0x56,0x4c,0x56,0x52,0x56,0x58,0x56,0x5e,0x56,0x64,0x56,0x6a,0x56,0x70,0x56,0x76,0x4b,0xae,0x46,0xfe,0x47,0x04,0x56,0x7c,0x49,0x08,0x47,0xee,0x56,0x82,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x3e,0x49,0x50,0x47,0x4c, -0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0x70,0x4f,0x92,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x56,0x88,0x56,0x8e,0x56,0x94,0x56,0x9a,0x56,0xa0,0x56,0xa6,0x56,0x9a,0x56,0xac,0x56,0xa6,0x56,0xb2,0x56,0xb8,0x56,0xbe,0x56,0xc4,0x56,0xca,0x56,0xd0,0x56,0xd6,0x56,0xca,0x56,0xdc,0x56,0xe2,0x56,0xe8,0x56,0xee,0x56,0xe2,0x56,0xf4, -0x56,0xbe,0x56,0xfa,0x4e,0xde,0x57,0x00,0x57,0x06,0x57,0x0c,0x57,0x12,0x57,0x18,0x57,0x1e,0x57,0x24,0x57,0x2a,0x57,0x1e,0x57,0x30,0x57,0x2a,0x57,0x36,0x57,0x30,0x57,0x3c,0x57,0x42,0x57,0x48,0x57,0x4e,0x57,0x54,0x57,0x5a,0x57,0x60,0x56,0xf4,0x48,0x24,0x48,0x0c,0x48,0x1e,0x48,0x24,0x57,0x66,0x57,0x6c,0x57,0x72,0x57,0x78, -0x57,0x7e,0x57,0x84,0x57,0x8a,0x57,0x90,0x57,0x96,0x57,0x9c,0x57,0xa2,0x57,0xa8,0x57,0xae,0x57,0xb4,0x47,0x1c,0x57,0xae,0x57,0xb4,0x57,0xa8,0x57,0xba,0x57,0xc0,0x57,0xc6,0x57,0xcc,0x57,0xd2,0x48,0x18,0x57,0xd8,0x57,0xde,0x57,0xe4,0x57,0xea,0x57,0xf0,0x57,0xf6,0x57,0xfc,0x58,0x02,0x58,0x08,0x58,0x0e,0x58,0x14,0x58,0x1a, -0x58,0x20,0x58,0x26,0x58,0x2c,0x58,0x32,0x58,0x38,0x4c,0x92,0x58,0x32,0x58,0x38,0x58,0x3e,0x48,0x54,0x48,0x5a,0x58,0x44,0x48,0x66,0x48,0x6c,0x48,0x84,0x48,0x66,0x48,0x6c,0x48,0x84,0x58,0x4a,0x58,0x50,0x46,0xb0,0x58,0x56,0x58,0x5c,0x48,0x78,0x58,0x62,0x58,0x68,0x58,0x6e,0x58,0x74,0x58,0x7a,0x58,0x80,0x58,0x86,0x58,0x8c, -0x58,0x92,0x58,0x98,0x58,0x9e,0x58,0xa4,0x58,0xaa,0x58,0xb0,0x58,0xa4,0x58,0x98,0x58,0x9e,0x58,0xb6,0x58,0xbc,0x48,0x96,0x50,0x22,0x58,0xbc,0x48,0x96,0x57,0x5a,0x58,0xc2,0x58,0xc8,0x58,0xce,0x58,0xd4,0x58,0xda,0x58,0xe0,0x58,0xe6,0x58,0xec,0x58,0xf2,0x58,0xe6,0x58,0xf8,0x58,0xf2,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04, -0x59,0x0a,0x59,0x10,0x59,0x16,0x59,0x1c,0x59,0x22,0x59,0x28,0x59,0x2e,0x59,0x34,0x59,0x3a,0x59,0x40,0x59,0x46,0x59,0x4c,0x59,0x52,0x59,0x58,0x48,0xae,0x48,0xb4,0x59,0x5e,0x59,0x64,0x59,0x6a,0x59,0x70,0x59,0x76,0x59,0x7c,0x59,0x82,0x59,0x88,0x59,0x8e,0x59,0x94,0x59,0x9a,0x59,0xa0,0x48,0xd2,0x59,0xa6,0x59,0xac,0x59,0xb2, -0x59,0xb8,0x59,0xbe,0x58,0xf2,0x59,0xc4,0x59,0xca,0x59,0xd0,0x49,0x08,0x47,0xee,0x59,0xd6,0x49,0x08,0x47,0xee,0x59,0xdc,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x57,0xea,0x5a,0x06,0x5a,0x0c,0x5a,0x12,0x5a,0x18,0x48,0x24,0x5a,0x1e,0x5a,0x24, -0x5a,0x2a,0x58,0xe6,0x5a,0x30,0x58,0xf2,0x5a,0x36,0x5a,0x3c,0x5a,0x42,0x5a,0x48,0x5a,0x4e,0x5a,0x54,0x5a,0x5a,0x57,0xa2,0x4d,0x40,0x5a,0x60,0x5a,0x66,0x5a,0x6c,0x5a,0x72,0x5a,0x78,0x5a,0x7e,0x5a,0x84,0x5a,0x8a,0x51,0x7e,0x47,0xd6,0x5a,0x90,0x48,0x84,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x5a,0x96, -0x5a,0x9c,0x5a,0xa2,0x5a,0x96,0x5a,0xa8,0x5a,0xae,0x5a,0x96,0x5a,0xb4,0x5a,0xba,0x5a,0xc0,0x5a,0xc6,0x5a,0xcc,0x5a,0xd2,0x5a,0xd8,0x5a,0xde,0x5a,0xe4,0x5a,0xea,0x5a,0xf0,0x5a,0xf6,0x53,0x64,0x5a,0xfc,0x5b,0x02,0x5b,0x08,0x5b,0x0e,0x5b,0x14,0x5b,0x1a,0x5b,0x20,0x5b,0x26,0x5b,0x2c,0x5b,0x32,0x5b,0x38,0x5b,0x2c,0x5b,0x32, -0x5b,0x3e,0x5b,0x44,0x48,0x42,0x5b,0x4a,0x5b,0x44,0x46,0xe6,0x5b,0x50,0x5b,0x56,0x5b,0x5c,0x5b,0x62,0x5b,0x68,0x50,0x22,0x5b,0x6e,0x5b,0x74,0x48,0x84,0x5b,0x7a,0x5b,0x80,0x5b,0x86,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x5b,0x92,0x5b,0x98,0x5b,0x9e,0x5b,0xa4,0x5b,0xaa,0x5b,0xb0,0x5b,0xb6,0x5b,0xbc, -0x5b,0xc2,0x5b,0xc8,0x5b,0xce,0x5b,0xd4,0x5b,0xda,0x5b,0xe0,0x5b,0xe6,0x47,0x10,0x47,0x16,0x47,0x1c,0x5b,0xec,0x5b,0xf2,0x5b,0xf8,0x48,0x9c,0x48,0xa2,0x5b,0xfe,0x49,0x08,0x47,0xee,0x5c,0x04,0x5c,0x0a,0x5c,0x10,0x48,0xd2,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x54, -0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x5c,0x16,0x5c,0x1c,0x5c,0x22,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4,0x48,0xba,0x49,0x08,0x47,0xee,0x49,0x0e,0x5c,0x28,0x5c,0x2e,0x56,0xee,0x5c,0x34,0x5c,0x3a,0x5c,0x40,0x5c,0x46,0x5c,0x4c,0x5c,0x52, -0x5c,0x58,0x5c,0x5e,0x5c,0x64,0x5c,0x6a,0x57,0xde,0x5c,0x70,0x4a,0xd6,0x5c,0x76,0x48,0x36,0x48,0x66,0x48,0x7e,0x48,0x84,0x5c,0x7c,0x5c,0x82,0x5c,0x88,0x59,0x76,0x59,0x7c,0x59,0x82,0x47,0xd6,0x47,0xdc,0x5c,0x8e,0x47,0xfa,0x48,0x00,0x5c,0x94,0x48,0x12,0x46,0x80,0x5c,0x9a,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x48,0x48, -0x5c,0xa0,0x48,0x2a,0x48,0x4e,0x4d,0x76,0x48,0x54,0x48,0x5a,0x5c,0xa6,0x48,0x66,0x48,0x6c,0x5c,0xa0,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x4d,0x76,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04,0x59,0x0a,0x59,0x10,0x48,0xc6,0x48,0xcc,0x5c,0xac,0x48,0xea,0x48,0xf0,0x5c,0xb2,0x49,0x08,0x47,0xee,0x5c,0xb8,0x47,0xc4, -0x47,0xca,0x4b,0xc0,0x48,0x66,0x48,0x8a,0x5c,0xa0,0x47,0xd6,0x5a,0x90,0x5c,0xa0,0x48,0x0c,0x47,0xca,0x4b,0xde,0x57,0x18,0x57,0x1e,0x5c,0xbe,0x57,0x2a,0x57,0x1e,0x5c,0xc4,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x5c,0xca,0x47,0xee,0x5c,0xd0,0x59,0x04,0x59,0x0a,0x59,0x10,0x47,0xe8,0x48,0xc0,0x4d,0xfa, -0x5c,0xd6,0x5c,0xdc,0x5c,0xe2,0x5c,0xe8,0x5c,0xee,0x5c,0xf4,0x5c,0xfa,0x5d,0x00,0x57,0xe4,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x92,0x47,0x46,0x47,0x88,0x46,0xfe,0x46,0x62,0x47,0x0a,0x46,0xa4,0x46,0xaa,0x5d,0x06,0x5d,0x0c,0x5d,0x12,0x4b,0xde,0x46,0xec,0x46,0xf2,0x46,0xf8,0x48,0x3c,0x48,0x30,0x48,0x42,0x5d,0x18,0x5d,0x1e, -0x5d,0x24,0x5d,0x2a,0x5d,0x30,0x5d,0x36,0x47,0x52,0x47,0x64,0x46,0x68,0x48,0x90,0x48,0x96,0x48,0x36,0x47,0xb8,0x47,0x04,0x47,0xbe,0x48,0xfc,0x48,0x7e,0x49,0x02,0x5d,0x3c,0x5d,0x42,0x5d,0x48,0x47,0x10,0x47,0x16,0x47,0x1c,0x5d,0x4e,0x48,0x4e,0x5d,0x54,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x52, -0x47,0x64,0x5d,0x5a,0x5d,0x60,0x5d,0x66,0x4b,0xc0,0x5d,0x6c,0x5d,0x72,0x5d,0x78,0x48,0x66,0x5d,0x7e,0x47,0x1c,0x5d,0x84,0x5d,0x8a,0x5d,0x90,0x4a,0xd6,0x4a,0xdc,0x4d,0x76,0x00,0x02,0x00,0x0d,0x02,0x44,0x02,0x47,0x00,0x00,0x04,0x62,0x04,0x79,0x00,0x04,0x04,0x7b,0x04,0x7f,0x00,0x1c,0x04,0x82,0x04,0x84,0x00,0x21,0x04,0x87, -0x04,0x91,0x00,0x24,0x04,0x97,0x04,0x9d,0x00,0x2f,0x04,0xa0,0x04,0xac,0x00,0x36,0x05,0xfd,0x06,0x00,0x00,0x43,0x06,0x66,0x06,0x72,0x00,0x47,0x07,0x55,0x07,0x5c,0x00,0x54,0x07,0xed,0x07,0xef,0x00,0x5c,0x08,0x4c,0x08,0x4f,0x00,0x5f,0x0a,0xdb,0x0a,0xe3,0x00,0x63,0x00,0x02,0x00,0x36,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44, -0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77, -0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0x5a,0x00,0xff,0x02,0x6f,0x02,0x74,0x01,0x03,0x02,0x7f,0x02,0x86,0x01,0x09,0x02,0x9b,0x02,0x9e,0x01,0x11,0x02,0xa9,0x02,0xb0, -0x01,0x15,0x02,0xcd,0x02,0xce,0x01,0x1d,0x02,0xe1,0x02,0xea,0x01,0x1f,0x02,0xed,0x02,0xf6,0x01,0x29,0x02,0xfb,0x02,0xfe,0x01,0x33,0x03,0x01,0x03,0x10,0x01,0x37,0x03,0x13,0x03,0x2e,0x01,0x47,0x03,0x37,0x03,0x3e,0x01,0x63,0x03,0x41,0x03,0x5a,0x01,0x6b,0x03,0x5f,0x03,0x78,0x01,0x85,0x04,0xb0,0x04,0xe2,0x01,0x9f,0x04,0xe6, -0x04,0xe7,0x01,0xd2,0x04,0xe9,0x04,0xe9,0x01,0xd4,0x04,0xee,0x04,0xfe,0x01,0xd5,0x05,0x07,0x05,0x07,0x01,0xe6,0x05,0x0c,0x05,0x46,0x01,0xe7,0x05,0x4b,0x05,0x4c,0x02,0x22,0x05,0x4f,0x05,0x50,0x02,0x24,0x05,0x56,0x05,0xb2,0x02,0x26,0x06,0xac,0x06,0xad,0x02,0x83,0x07,0x3e,0x07,0x43,0x02,0x85,0x07,0xe1,0x07,0xe2,0x02,0x8b, -0x07,0xe4,0x07,0xeb,0x02,0x8d,0x07,0xf7,0x08,0x05,0x02,0x95,0x08,0x07,0x08,0x26,0x02,0xa4,0x0a,0x43,0x0a,0x43,0x02,0xc4,0x0a,0xbf,0x0a,0xcc,0x02,0xc5,0x0a,0xe5,0x0a,0xe5,0x02,0xd3,0x0a,0xe7,0x0a,0xed,0x02,0xd4,0x0a,0xf4,0x0a,0xf4,0x02,0xdb,0x0a,0xf7,0x0a,0xf7,0x02,0xdc,0x11,0x8c,0x11,0x8c,0x02,0xdd,0x00,0x01,0x00,0x98, -0x00,0xc0,0x00,0x02,0x00,0x0c,0x00,0x2e,0x00,0x08,0x00,0x00,0x4a,0xba,0x00,0x00,0x4a,0xc0,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xcc,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x1a,0x4a,0xb0,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc2,0x4a,0xc8,0x4a,0xc8,0x4a,0xce,0x4a,0xce, -0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x40,0xb4,0x40,0xb4,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40,0x4b,0x40,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x5e,0x4b,0x64,0x4b,0x6a, -0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0x22,0x4b,0x22,0x00,0x02,0x00,0x06,0x02,0x46,0x02,0x47,0x00,0x00,0x04,0x63,0x04,0x64,0x00,0x02,0x04,0x66,0x04,0x66,0x00,0x04,0x04,0x6b,0x04,0x6b,0x00,0x05,0x04,0x6e,0x04,0x6e,0x00,0x06,0x04,0x70,0x04,0x70,0x00,0x07,0x00,0x02,0x00,0x12, -0x01,0xdb,0x01,0xdb,0x00,0x00,0x01,0xe5,0x01,0xe5,0x00,0x01,0x01,0xe7,0x01,0xe7,0x00,0x02,0x01,0xec,0x01,0xec,0x00,0x03,0x01,0xef,0x01,0xf0,0x00,0x04,0x01,0xf5,0x01,0xf5,0x00,0x06,0x01,0xfa,0x01,0xfa,0x00,0x07,0x02,0x02,0x02,0x02,0x00,0x08,0x02,0x04,0x02,0x07,0x00,0x09,0x02,0x0c,0x02,0x0c,0x00,0x0d,0x02,0x0f,0x02,0x10, -0x00,0x0e,0x02,0x15,0x02,0x15,0x00,0x10,0x02,0x1a,0x02,0x1a,0x00,0x11,0x02,0x22,0x02,0x22,0x00,0x12,0x02,0x24,0x02,0x27,0x00,0x13,0x02,0x31,0x02,0x31,0x00,0x17,0x02,0xcd,0x02,0xcd,0x00,0x18,0x05,0x07,0x05,0x07,0x00,0x19,0x00,0x01,0x00,0xd8,0x00,0xde,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x92,0x00,0x62, -0x4a,0x92,0x4a,0x98,0x4a,0x9e,0x4a,0xa4,0x4a,0xaa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc8,0x4a,0xce,0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xe6,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x42,0x52,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40, -0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x52,0x4b,0x52, -0x4b,0x52,0x4b,0x52,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xb2,0x4b,0xd0,0x4b,0xb2,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4b,0x76,0x4c,0x1e,0x4c,0x24, -0x4c,0x2a,0x4c,0x30,0x00,0x01,0x00,0x01,0x06,0x9b,0x00,0x02,0x00,0x16,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x69,0x00,0x6e,0x00,0x34,0x00,0x70,0x00,0x77,0x00,0x3a,0x00,0x79,0x00,0x81,0x00,0x42,0x00,0xa0,0x00,0xa1,0x00,0x4b,0x00,0xb1,0x00,0xb1,0x00,0x4d,0x00,0xba,0x00,0xba,0x00,0x4e,0x00,0xd6, -0x00,0xd6,0x00,0x4f,0x00,0xeb,0x00,0xeb,0x00,0x50,0x05,0x07,0x05,0x07,0x00,0x51,0x05,0x56,0x05,0x58,0x00,0x52,0x05,0x5a,0x05,0x5a,0x00,0x55,0x05,0x5e,0x05,0x5e,0x00,0x56,0x05,0x60,0x05,0x61,0x00,0x57,0x05,0x63,0x05,0x63,0x00,0x59,0x05,0x69,0x05,0x69,0x00,0x5a,0x05,0x6d,0x05,0x6d,0x00,0x5b,0x05,0x6f,0x05,0x6f,0x00,0x5c, -0x05,0x7a,0x05,0x7b,0x00,0x5d,0x05,0x8e,0x05,0x8f,0x00,0x5f,0x05,0x91,0x05,0x91,0x00,0x61,0x00,0x01,0x00,0x9c,0x00,0xa6,0x00,0x01,0x00,0x0c,0x00,0x22,0x00,0x05,0x00,0x00,0x4a,0xd6,0x00,0x00,0x4a,0xd6,0x00,0x00,0x26,0xc4,0x00,0x00,0x4a,0xdc,0x00,0x00,0x4a,0xe2,0x00,0x3c,0x4a,0xd2,0x4a,0xd8,0x4a,0xde,0x4a,0xe4,0x4a,0xea, -0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4b,0x02,0x4b,0x08,0x4b,0x0e,0x4b,0x14,0x4b,0x1a,0x4b,0x20,0x4b,0x26,0x4b,0x2c,0x4b,0x32,0x4b,0x2c,0x4b,0x38,0x4b,0x3e,0x4b,0x44,0x4b,0x4a,0x4b,0x50,0x4b,0x56,0x4b,0x5c,0x4b,0x62,0x4b,0x68,0x4b,0x6e,0x4b,0x74,0x4b,0x7a,0x4b,0x80,0x4b,0x86,0x4b,0x8c,0x4b,0x92,0x4b,0x98,0x4b,0x9e,0x4b,0xa4, -0x4b,0xaa,0x4b,0xb0,0x4b,0xb6,0x4b,0xbc,0x4b,0xc2,0x4b,0xc8,0x4b,0xce,0x4b,0xd4,0x4b,0xda,0x4b,0xe0,0x4b,0xe6,0x4b,0xec,0x4b,0xf2,0x4b,0xf8,0x4b,0xfe,0x4c,0x04,0x4c,0x0a,0x4c,0x10,0x4c,0x16,0x4c,0x1c,0x4c,0x22,0x4c,0x28,0x4c,0x2e,0x00,0x02,0x00,0x01,0x04,0x92,0x04,0x96,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x24,0x00,0x3d, -0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x79,0x00,0x79,0x00,0x34,0x00,0xd0,0x00,0xd0,0x00,0x35,0x00,0xe4,0x00,0xe4,0x00,0x36,0x00,0xe6,0x00,0xe6,0x00,0x37,0x00,0xe9,0x00,0xe9,0x00,0x38,0x05,0x83,0x05,0x83,0x00,0x39,0x05,0x88,0x05,0x88,0x00,0x3a,0x05,0x97,0x05,0x97,0x00,0x3b,0x00,0x01,0x0c,0xf8,0x0d,0x0e,0x00,0x02, -0x00,0x0c,0x00,0x2a,0x00,0x07,0x00,0x00,0x4b,0x64,0x00,0x00,0x4b,0x6a,0x00,0x01,0x2f,0x68,0x00,0x00,0x4b,0x6a,0x00,0x00,0x4b,0x6a,0x00,0x01,0x4b,0x70,0x00,0x01,0x2f,0x8c,0x03,0x33,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6, -0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a,0x4c,0x30,0x4c,0x36,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4c,0x4e,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66, -0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4c,0x96,0x4c,0x9c,0x4c,0xa2,0x4c,0xa8,0x4c,0xae,0x4c,0xb4,0x4c,0xba,0x4c,0xc0,0x4c,0xc6,0x4c,0xcc,0x4c,0xd2,0x4c,0xb4,0x4c,0xba,0x4c,0xd8,0x4c,0xde,0x4c,0xe4,0x4c,0xea,0x4c,0xe4,0x4c,0xea,0x4c,0xd8,0x4c,0xde,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02, -0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4c,0x9c,0x4c,0xa2,0x4c,0xb4,0x4c,0xba,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4d,0x2c,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x4d,0x50,0x4d,0x56,0x4d,0x5c,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4b,0x70,0x4b,0x76, -0x4b,0x88,0x4b,0x8e,0x4d,0x86,0x4b,0xfa,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0xa8,0x4c,0xae,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4d,0x98,0x4d,0x9e, -0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x4d,0xb6,0x4d,0xbc,0x4d,0xc2,0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x4d,0xda,0x4c,0x00,0x4c,0x06, -0x4d,0xe0,0x4d,0xe6,0x4d,0xec,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4d,0x8c,0x4c,0x06,0x4e,0x04,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4d,0x68,0x4d,0x6e,0x4c,0x78,0x4c,0x7e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4e,0x1c,0x4b,0x8e,0x4e,0x22,0x4e,0x28, -0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4b,0xbe,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4c,0xf0,0x4c,0xf6,0x4b,0xdc,0x4b,0xe2,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a, -0x4b,0x7c,0x4b,0x82,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4c,0x0c,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xb8,0x4b,0xbe,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4b,0x70,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x82,0x4e,0x88, -0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x8e,0x4b,0x82,0x4e,0x94,0x4e,0x9a,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0xa0,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x4b,0xdc,0x4b,0xe2,0x4e,0xb2,0x4e,0xb8,0x4b,0xdc,0x4b,0xe2, -0x4e,0xbe,0x4e,0xc4,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4e,0xd0,0x4e,0xd6,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4c,0x42, -0x4e,0xee,0x4e,0xf4,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0xfa,0x4f,0x00,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, -0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xa0,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde, -0x4f,0x2a,0x4f,0x30,0x4c,0xd8,0x4c,0xde,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4f,0x66,0x4f,0x6c,0x4f,0x72,0x4f,0x78,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4f,0x7e,0x4f,0x84,0x4f,0x4e,0x4f,0x54,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2, -0x4d,0x98,0x4d,0x9e,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4d,0x92,0x4c,0x4e, -0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x8a,0x4f,0x90,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56, -0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0xb4,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xcc,0x4f,0xd2,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, -0x4d,0x80,0x4b,0x5e,0x4f,0xd8,0x4f,0xde,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, -0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4e,0x1c,0x4b,0x8e,0x50,0x1a,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, -0x4e,0x46,0x4b,0xbe,0x50,0x20,0x50,0x26,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4e,0x82,0x4e,0x88,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e, -0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, -0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4c,0x78,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, -0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x50,0x56,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, -0x4e,0x8e,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, -0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x5c,0x4b,0x9a,0x50,0x62,0x4c,0xd2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde, -0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2,0x50,0x9e,0x50,0xa4,0x4e,0xa0,0x4b,0xe2,0x50,0xaa,0x50,0xb0, -0x4b,0xdc,0x4b,0xe2,0x50,0xb6,0x50,0xbc,0x4b,0xdc,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4b,0xe8,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde, -0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a, -0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4c,0x24,0x4c,0x2a,0x50,0xce,0x50,0xd4,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26, -0x4e,0xe8,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x50,0xe0,0x50,0xe6,0x4c,0x3c,0x4c,0x42,0x50,0xec,0x50,0xf2,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, -0x4d,0x92,0x4c,0x4e,0x50,0xf8,0x4d,0x3e,0x50,0xfe,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4c,0x54,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, -0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0xd8,0x4c,0xde,0x4d,0x2c,0x4d,0x32,0x4d,0x50,0x4d,0x56,0x4d,0x68,0x4d,0x6e,0x4c,0x90,0x4c,0x96,0x51,0x0a,0x4f,0x90,0x4c,0x9c,0x4c,0xa2,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2, -0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2,0x4e,0x82,0x4e,0x88,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x4b,0x7c,0x4b,0x82,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x34,0x51,0x3a,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x4b,0x94,0x4b,0x9a,0x51,0x7c,0x51,0x82,0x4c,0x54,0x4c,0x5a,0x51,0x88,0x51,0x8e, -0x51,0x94,0x51,0x9a,0x4d,0xbc,0x4d,0xc2,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x51,0xa0,0x51,0xa6,0x51,0xac,0x51,0xb2,0x51,0xb8,0x51,0xbe,0x51,0x28,0x51,0x2e,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x51,0xe2,0x4c,0x9c,0x4c,0xa2,0x51,0xe8,0x51,0xee,0x51,0xf4,0x51,0xfa, -0x52,0x00,0x52,0x06,0x52,0x0c,0x52,0x12,0x4e,0xbe,0x4e,0xc4,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x52,0x18,0x52,0x1e,0x52,0x24,0x52,0x2a,0x52,0x30,0x52,0x36,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x52,0x3c,0x52,0x42,0x52,0x48,0x52,0x4e,0x52,0x54,0x52,0x5a, -0x52,0x60,0x52,0x66,0x52,0x6c,0x52,0x72,0x52,0x78,0x52,0x7e,0x52,0x84,0x52,0x8a,0x52,0x90,0x52,0x96,0x52,0x9c,0x52,0xa2,0x52,0xa8,0x52,0xae,0x52,0xb4,0x52,0xba,0x52,0xc0,0x52,0xc6,0x52,0xcc,0x52,0xd2,0x52,0xd8,0x52,0xde,0x52,0xe4,0x52,0xea,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x52,0xfc,0x53,0x02,0x53,0x08,0x53,0x0e, -0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x50,0x4a,0x50,0x50,0x53,0x14,0x4d,0xda,0x53,0x1a,0x53,0x20,0x53,0x26,0x53,0x2c,0x53,0x32,0x53,0x38,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06, -0x4d,0x08,0x4d,0x0e,0x53,0x3e,0x52,0x42,0x53,0x44,0x53,0x4a,0x4d,0xbc,0x4d,0xc2,0x53,0x50,0x52,0x8a,0x53,0x56,0x53,0x5c,0x53,0x62,0x53,0x68,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x53,0x6e,0x53,0x74,0x53,0x7a,0x53,0x80,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x4d,0x80,0x4b,0x5e, -0x52,0xf0,0x52,0xf6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x46,0x4b,0xbe,0x53,0x86,0x53,0x8c,0x53,0x92,0x53,0x98,0x53,0x9e,0x53,0xa4,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a, -0x53,0xaa,0x53,0xb0,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x53,0xb6,0x53,0xbc,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x53,0x7a,0x53,0x80,0x51,0x10,0x51,0x16,0x53,0xc2,0x53,0xc8,0x51,0xdc,0x51,0xe2,0x53,0xce,0x53,0xd4,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6, -0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4d,0xf8,0x4d,0xfe,0x4c,0xb4,0x4c,0xba,0x4c,0x9c,0x4c,0xa2,0x53,0xda,0x53,0xe0,0x53,0xe6,0x53,0xec,0x53,0xf2,0x53,0xf8,0x53,0xfe,0x54,0x04,0x53,0xfe,0x54,0x04,0x50,0x4a,0x50,0x50,0x54,0x0a,0x54,0x10,0x54,0x16,0x54,0x1c,0x54,0x22,0x54,0x28, -0x54,0x2e,0x54,0x34,0x4c,0x3c,0x4c,0x42,0x54,0x3a,0x54,0x40,0x53,0xfe,0x54,0x04,0x4c,0xb4,0x4c,0xba,0x54,0x46,0x54,0x4c,0x54,0x52,0x54,0x58,0x53,0xce,0x53,0xd4,0x4d,0x38,0x4d,0x3e,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x54,0x5e,0x54,0x64,0x54,0x6a,0x54,0x70,0x54,0x76,0x54,0x7c,0x54,0x82,0x54,0x88,0x54,0x22,0x54,0x28, -0x54,0x8e,0x54,0x94,0x54,0x9a,0x54,0xa0,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xd8,0x4c,0xde,0x54,0xa6,0x54,0xac,0x54,0xb2,0x54,0xb8,0x4d,0x08,0x4d,0x0e,0x54,0xbe,0x54,0xc4,0x54,0xca,0x54,0xd0,0x54,0xd6,0x54,0xdc,0x54,0xe2,0x4f,0x6c,0x54,0xe2,0x4f,0x6c,0x54,0xe8,0x54,0xee,0x4d,0x14,0x4d,0x1a, -0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x55,0x00,0x55,0x06,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x55,0x0c,0x55,0x12,0x55,0x18,0x55,0x1e,0x55,0x24,0x55,0x2a,0x55,0x30,0x55,0x36,0x55,0x3c,0x55,0x42,0x55,0x3c,0x55,0x42,0x4d,0x2c,0x4d,0x32,0x55,0x48,0x55,0x4e,0x51,0xe8,0x51,0xee,0x52,0x78,0x52,0x7e,0x52,0x54,0x52,0x5a, -0x4d,0x50,0x4d,0x56,0x55,0x54,0x55,0x5a,0x55,0x60,0x55,0x66,0x55,0x6c,0x55,0x72,0x55,0x78,0x55,0x7e,0x53,0x44,0x53,0x4a,0x55,0x84,0x55,0x8a,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x55,0xa8,0x55,0xae,0x55,0xb4,0x55,0xba,0x55,0xc0,0x55,0xc6,0x55,0xcc,0x55,0xd2,0x55,0xd8,0x55,0xde,0x4c,0x9c,0x4c,0xa2,0x4d,0x38,0x4d,0x3e, -0x55,0xe4,0x4e,0x40,0x55,0xea,0x55,0xf0,0x55,0xf6,0x55,0xfc,0x53,0xfe,0x54,0x04,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x56,0x02,0x56,0x08,0x56,0x0e,0x56,0x14,0x56,0x1a,0x56,0x20,0x56,0x26,0x56,0x2c,0x56,0x32,0x56,0x38,0x4c,0x00,0x4c,0x06,0x56,0x3e,0x56,0x44,0x4d,0x08,0x4d,0x0e,0x4c,0x78,0x4c,0x7e,0x56,0x4a,0x56,0x50, -0x55,0xcc,0x55,0xd2,0x4c,0xf0,0x4c,0xf6,0x54,0x5e,0x54,0x64,0x56,0x56,0x56,0x5c,0x55,0xea,0x55,0xf0,0x56,0x62,0x56,0x68,0x55,0x84,0x55,0x8a,0x52,0x78,0x52,0x7e,0x53,0x7a,0x53,0x80,0x56,0x6e,0x56,0x74,0x56,0x6e,0x56,0x74,0x4b,0x58,0x4b,0x5e,0x56,0x7a,0x56,0x80,0x56,0x86,0x56,0x8c,0x4b,0xdc,0x4b,0xe2,0x56,0x92,0x56,0x98, -0x4d,0x20,0x4d,0x26,0x4d,0x74,0x4d,0x7a,0x56,0x9e,0x56,0xa4,0x4c,0x9c,0x4c,0xa2,0x56,0xaa,0x56,0xb0,0x4c,0xcc,0x4c,0xd2,0x52,0xd8,0x52,0xde,0x56,0xb6,0x56,0xbc,0x4c,0x9c,0x4c,0xa2,0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x56,0xc2,0x56,0xc8,0x4d,0x2c,0x4d,0x32,0x4d,0x74,0x4d,0x7a,0x53,0xda,0x53,0xe0,0x56,0xce,0x56,0xd4, -0x56,0xda,0x56,0xe0,0x56,0xe6,0x56,0xec,0x56,0xf2,0x56,0xf8,0x56,0xfe,0x57,0x04,0x4c,0x48,0x4c,0x4e,0x57,0x0a,0x57,0x10,0x57,0x16,0x57,0x1c,0x4c,0x9c,0x4c,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0xcc,0x4c,0xd2,0x57,0x22,0x57,0x28,0x57,0x2e,0x57,0x34,0x57,0x3a,0x57,0x40,0x57,0x46,0x57,0x4c,0x57,0x52,0x57,0x58,0x4c,0x9c,0x4c,0xa2, -0x4d,0x14,0x4d,0x1a,0x57,0x5e,0x57,0x64,0x57,0x6a,0x57,0x70,0x57,0x76,0x57,0x7c,0x4d,0x5c,0x4d,0x62,0x4d,0x74,0x4d,0x7a,0x57,0x82,0x57,0x88,0x57,0x8e,0x57,0x94,0x53,0xfe,0x54,0x04,0x57,0x9a,0x57,0xa0,0x4c,0x0c,0x4c,0x12,0x57,0xa6,0x57,0xac,0x57,0xb2,0x57,0xb8,0x57,0xbe,0x57,0xc4,0x53,0xe6,0x53,0xec,0x55,0x18,0x55,0x1e, -0x57,0xca,0x57,0xd0,0x53,0x44,0x53,0x4a,0x57,0xd6,0x57,0xdc,0x54,0x16,0x54,0x1c,0x4d,0xec,0x4d,0xf2,0x57,0xe2,0x57,0xe8,0x57,0xee,0x57,0xf4,0x4c,0x3c,0x4c,0x42,0x4b,0x64,0x4b,0x6a,0x55,0x0c,0x55,0x12,0x4b,0xb8,0x4b,0xbe,0x57,0xfa,0x58,0x00,0x53,0x32,0x53,0x38,0x56,0x92,0x56,0x98,0x58,0x06,0x58,0x0c,0x58,0x12,0x58,0x18, -0x51,0xac,0x51,0xb2,0x58,0x1e,0x58,0x24,0x58,0x2a,0x58,0x30,0x58,0x36,0x58,0x3c,0x58,0x42,0x58,0x48,0x51,0xdc,0x51,0xe2,0x56,0x92,0x56,0x98,0x58,0x4e,0x58,0x54,0x58,0x5a,0x58,0x60,0x58,0x66,0x58,0x6c,0x58,0x72,0x58,0x78,0x4c,0xf0,0x4c,0xea,0x00,0x02,0x00,0x03,0x04,0xad,0x04,0xaf,0x00,0x00,0x07,0x5d,0x07,0x5f,0x00,0x03, -0x07,0xf0,0x07,0xf0,0x00,0x06,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f, -0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce, -0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e, -0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31, -0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0xa4,0x00,0xaa,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x8e,0x00,0x48,0x4a,0x8e,0x4a,0x94,0x4a,0x9a,0x4a,0xa0,0x4a,0xa6,0x4a,0xa6,0x4a,0xac,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x4a,0xc4,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x4a,0xe2,0x4a,0xdc,0x4a,0xe8,0x4a,0xee, -0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x3a,0xbc,0x3a,0xbc,0x3a,0xbc,0x4b,0x0c,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x4b,0x72,0x4b,0x78,0x4b,0x7e,0x4b,0x84,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x4b,0x9c, -0x4b,0xa2,0x4b,0x60,0x4b,0x60,0x4b,0x60,0x4b,0x84,0x4b,0x84,0x4a,0xdc,0x4a,0xdc,0x4a,0xdc,0x4a,0xfa,0x4a,0xfa,0x4a,0xfa,0x4b,0x84,0x4a,0xdc,0x4b,0x60,0x4a,0xdc,0x4b,0x60,0x4a,0xfa,0x4b,0x84,0x4a,0xfa,0x4b,0x84,0x00,0x01,0x00,0x01,0x04,0x7a,0x00,0x02,0x00,0x0b,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a, -0x00,0x79,0x00,0x7a,0x00,0x34,0x00,0x7d,0x00,0x7f,0x00,0x36,0x00,0xaf,0x00,0xaf,0x00,0x39,0x00,0xd0,0x00,0xd0,0x00,0x3a,0x00,0xd2,0x00,0xd3,0x00,0x3b,0x00,0xd5,0x00,0xd5,0x00,0x3d,0x01,0x78,0x01,0x79,0x00,0x3e,0x02,0x83,0x02,0x86,0x00,0x40,0x02,0x9b,0x02,0x9e,0x00,0x44,0x00,0x01,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x0c, -0x00,0x12,0x00,0x01,0x00,0x00,0x1e,0xc0,0x00,0x22,0x4a,0xb8,0x4a,0xbe,0x17,0x16,0x2b,0x02,0x19,0xec,0x4a,0xc4,0x18,0x30,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x17,0x70,0x4a,0xe2,0x23,0xb2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x4b,0x0c,0x21,0x54,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x32,0xe8,0x4b,0x06, -0x4b,0x06,0x32,0xe8,0x32,0xe8,0x19,0xec,0x4a,0xe2,0x4a,0xe2,0x4b,0x06,0x00,0x01,0x00,0x01,0x04,0x85,0x00,0x02,0x00,0x17,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x26,0x00,0x26,0x00,0x01,0x00,0x28,0x00,0x28,0x00,0x02,0x00,0x2a,0x00,0x2a,0x00,0x03,0x00,0x2c,0x00,0x2c,0x00,0x04,0x00,0x2e,0x00,0x2f,0x00,0x05,0x00,0x31,0x00,0x32, -0x00,0x07,0x00,0x35,0x00,0x38,0x00,0x09,0x00,0x44,0x00,0x44,0x00,0x0d,0x00,0x46,0x00,0x46,0x00,0x0e,0x00,0x48,0x00,0x48,0x00,0x0f,0x00,0x4a,0x00,0x4a,0x00,0x10,0x00,0x4c,0x00,0x4c,0x00,0x11,0x00,0x4e,0x00,0x4f,0x00,0x12,0x00,0x51,0x00,0x52,0x00,0x14,0x00,0x55,0x00,0x58,0x00,0x16,0x00,0x74,0x00,0x74,0x00,0x1a,0x00,0x76, -0x00,0x76,0x00,0x1b,0x00,0x7e,0x00,0x7e,0x00,0x1c,0x00,0x80,0x00,0x80,0x00,0x1d,0x00,0xcd,0x00,0xcd,0x00,0x1e,0x00,0xd3,0x00,0xd4,0x00,0x1f,0x01,0x0f,0x01,0x0f,0x00,0x21,0x00,0x01,0x06,0x78,0x06,0x7e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x3e,0x03,0x32,0x4a,0x3e,0x4a,0x44,0x4a,0x4a,0x4a,0x44,0x1d,0x98, -0x4a,0x50,0x4a,0x56,0x4a,0x5c,0x4a,0x50,0x4a,0x62,0x4a,0x68,0x4a,0x6e,0x4a,0x74,0x4a,0x7a,0x4a,0x80,0x4a,0x50,0x4a,0x86,0x4a,0x8c,0x4a,0x92,0x4a,0x98,0x1d,0x98,0x16,0x2a,0x4a,0x9e,0x4a,0x68,0x4a,0xa4,0x4a,0xaa,0x1b,0xfa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x16,0x7e,0x19,0x24,0x4a,0xc2,0x4a,0xc8,0x4a,0x50,0x4a,0xce,0x4a,0xd4, -0x19,0x12,0x4a,0xda,0x4a,0xc8,0x16,0x7e,0x4a,0xe0,0x4a,0xe6,0x19,0x12,0x4a,0x98,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x16,0x7e,0x4a,0x3e,0x4a,0x3e,0x4b,0x10,0x1d,0x98,0x4b,0x16,0x4a,0x80,0x1d,0x98,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x4b,0x1c,0x16,0x7e,0x16,0x7e,0x16,0x7e, -0x16,0x7e,0x19,0x12,0x19,0x12,0x19,0x12,0x19,0x12,0x4a,0xc8,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x17,0xe0,0x4a,0xda,0x4a,0x80,0x4b,0x22,0x16,0x7e,0x4b,0x28,0x4a,0x3e,0x4a,0x3e,0x4a,0x80,0x4b,0x2e,0x4b,0x34,0x4b,0x0a,0x4a,0xa4,0x4a,0x3e,0x1d,0x98,0x4a,0x3e,0x1d,0x98, -0x1d,0x98,0x4a,0x50,0x19,0x24,0x4a,0x50,0x4b,0x3a,0x4a,0x80,0x4a,0x80,0x4a,0x80,0x1d,0x98,0x1d,0x98,0x1d,0x98,0x19,0x12,0x4a,0x6e,0x4a,0x62,0x4a,0x92,0x4a,0x98,0x4a,0xaa,0x16,0x7e,0x4b,0x40,0x4b,0x46,0x4a,0xa4,0x4b,0x0a,0x19,0x36,0x4b,0x4c,0x4a,0x56,0x4a,0xc2,0x4a,0x50,0x4b,0x52,0x4b,0x58,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a, -0x4a,0xb6,0x4a,0xbc,0x4a,0x3e,0x1b,0xfa,0x4b,0x5e,0x29,0x80,0x4a,0x44,0x4a,0xbc,0x4a,0x44,0x4b,0x64,0x4b,0x6a,0x1d,0x98,0x16,0x7e,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xc8,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x19,0x12,0x4a,0x92,0x4a,0x98,0x47,0x32, -0x4b,0x70,0x4a,0x98,0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4a,0xaa,0x16,0x7e,0x4a,0xaa,0x16,0x7e,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4a,0x3e,0x1b,0xfa,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a,0x4a,0xb6,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4b,0x88,0x4a,0xc2, -0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x4a,0xc8,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x50,0x4b,0x8e,0x2c,0x50,0x4b,0x94,0x4a,0x62,0x4a,0xce,0x4a,0x68,0x1d,0xda,0x16,0x4e,0x4b,0x1c,0x4b,0x9a,0x4a,0x7a,0x4a,0xaa,0x4b,0xa0,0x4b,0xa6,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x4b,0x8e,0x4a,0x92,0x4a,0x98,0x4a,0x98, -0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0x64,0x4b,0xac,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x19,0x12,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa, -0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x1c,0x8a,0x4b,0xb8,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e, -0x1c,0x8a,0x4b,0xb8,0x19,0x36,0x19,0x12,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xd6,0x4b,0xdc,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4a,0xbc, -0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0xf4,0x4a,0xbc,0x4b,0xfa,0x4c,0x00,0x4a,0xa4,0x4b,0x0a,0x4a,0xa4,0x4b,0x0a,0x4c,0x06,0x4c,0x0c,0x4a,0xf2,0x16,0x2a,0x3e,0x62,0x4c,0x12,0x4a,0x3e,0x4a,0xd4,0x4a,0x44,0x4a,0xb0,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a, -0x42,0xa0,0x4c,0x30,0x4a,0x44,0x4a,0xbc,0x4c,0x36,0x4a,0xaa,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4a,0xaa,0x4c,0x4e,0x23,0x32,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4c,0x54,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66,0x4c,0x12,0x19,0x36,0x19,0x24,0x4a,0x56,0x4a,0xc2,0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x1e,0x4c,0x4a,0x5c,0x4a,0xc8, -0x4a,0x5c,0x4a,0xc8,0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x68,0x4a,0xd4,0x4a,0x68,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4a,0xf2,0x4c,0x96,0x4a,0xf2,0x4c,0x9c,0x4c,0xa2,0x29,0xc8,0x4c,0xa8,0x4c,0xae,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4c,0xb4,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xaa, -0x4c,0xba,0x28,0xfc,0x22,0xd8,0x4c,0xc0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x19,0x36,0x4c,0xc6,0x19,0x36,0x4c,0xc6,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x4b,0x8e,0x4a,0x8c,0x4b,0x8e,0x4c,0xcc,0x4c,0xd2,0x4a,0x92,0x4a,0x98,0x4c,0xd8,0x4c,0xde,0x4a,0x92,0x4a,0x98,0x4a,0x92,0x4a,0x98, -0x4c,0xe4,0x4c,0xea,0x4a,0x98,0x4a,0xec,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02,0x4d,0x08,0x4d,0x0e,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4c,0x4e,0x4c,0xa8,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x16,0x2a,0x4a,0xf8,0x4c,0x60,0x33,0x8e,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4d,0x2c,0x4a,0x68,0x4b,0x04,0x4a,0x68,0x4b,0x04, -0x4a,0xa4,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x28,0xfc,0x4a,0xec,0x4a,0xfe,0x4b,0x0a,0x1b,0xfa,0x19,0x12,0x4a,0xb0,0x4d,0x4a,0x4d,0x50,0x4a,0xb0,0x1b,0xdc,0x4a,0xb0,0x4d,0x56,0x4a,0x4a,0x4d,0x5c,0x4a,0x44,0x1c,0x4e,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4a,0x56, -0x29,0x02,0x4d,0x86,0x4d,0x8c,0x19,0x36,0x4a,0x68,0x4a,0xd4,0x19,0x12,0x4a,0xf2,0x4a,0x74,0x4a,0x7a,0x4d,0x92,0x4a,0x80,0x4d,0x98,0x4d,0x9e,0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x1d,0x26,0x4d,0xb6,0x4b,0xb2,0x4d,0xbc,0x4d,0xc2,0x4a,0x98,0x4a,0xec,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x17,0xc2,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0xda, -0x4d,0xe0,0x17,0xe6,0x4d,0xe6,0x4d,0xec,0x4b,0x4c,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4e,0x04,0x47,0xaa,0x4b,0x7c,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4a,0x3e,0x1b,0xfa,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x1c,0x0c,0x4e,0x1c,0x4e,0x22,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4a,0x68,0x4a,0xd4,0x4e,0x28, -0x4e,0x2e,0x4e,0x28,0x4e,0x2e,0x4d,0x6e,0x4e,0x34,0x4a,0xce,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4a,0x56,0x4a,0xc2,0x4e,0x3a,0x4e,0x40,0x4b,0x16,0x4a,0xc8,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c, -0x19,0x12,0x4a,0x8c,0x19,0x12,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x29,0x20,0x36,0x4c,0x4a,0x5c,0x4a,0xc8,0x4e,0x46,0x4a,0xb0,0x16,0x7e,0x1a,0xe6,0x4a,0xa4,0x4a,0x3e,0x1b,0xfa,0x4a,0x80,0x16,0x7e,0x4a,0xa4,0x4b,0x0a,0x4e,0x4c,0x4e,0x52,0x1e,0x46,0x4b,0x04,0x4e,0x58,0x1b,0x82,0x4e,0x5e,0x4a,0xbc,0x16,0x2a,0x4e,0x64, -0x15,0xfa,0x4d,0xec,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4a,0xc2,0x4a,0xc2,0x1b,0x22,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4a,0xc8,0x44,0x56,0x18,0xe2,0x4d,0x8c,0x4e,0x8e,0x4b,0x3a,0x4e,0x94,0x2f,0xf8,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4a,0xc8,0x4e,0xb2,0x1e,0x9a,0x16,0x7e,0x4e,0xb8,0x4d,0x2c,0x26,0xb0,0x4e,0xbe,0x4e,0xc4, -0x2a,0x4c,0x32,0xc8,0x2f,0xf8,0x19,0x9c,0x4e,0xca,0x4e,0xd0,0x1b,0xee,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x20,0xb0,0x4e,0xe8,0x4e,0xee,0x2f,0xe6,0x4d,0x68,0x1e,0x46,0x4e,0xf4,0x4b,0xb2,0x4e,0x22,0x4b,0xb2,0x4e,0xfa,0x4f,0x00,0x4b,0x04,0x4f,0x06,0x4f,0x0c,0x18,0xd6,0x4f,0x12,0x4f,0x18,0x4f,0x1e,0x4f,0x24,0x17,0xc2,0x1b,0x9a, -0x1a,0xe6,0x1c,0x18,0x4f,0x2a,0x4f,0x30,0x1c,0x0c,0x4f,0x36,0x18,0xd6,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4d,0x98,0x4a,0xf2,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4a,0xaa,0x1d,0xe6,0x4f,0x60,0x4a,0xce,0x19,0x12,0x4e,0x16,0x4f,0x66,0x4f,0x6c,0x44,0x6e,0x4f,0x72,0x4e,0x5e,0x4f,0x78,0x4f,0x7e,0x4a,0x3e,0x4a,0x4a,0x4a,0xb6, -0x4a,0x6e,0x4a,0x98,0x4c,0xde,0x4f,0x84,0x4d,0xec,0x4a,0xb0,0x4a,0xbc,0x19,0x24,0x4a,0xda,0x4a,0xc8,0x4a,0xe0,0x19,0x12,0x4b,0x8e,0x4a,0xa4,0x4a,0xec,0x16,0x7e,0x4f,0x8a,0x4f,0x90,0x2f,0x56,0x4f,0x96,0x4f,0x9c,0x1e,0x34,0x4a,0xe0,0x4f,0xa2,0x1e,0x46,0x4f,0xa8,0x4f,0xae,0x27,0x28,0x4a,0xc2,0x4f,0xb4,0x4f,0xba,0x4f,0xc0, -0x4f,0xc6,0x4a,0xe0,0x4f,0xba,0x25,0x72,0x4e,0xdc,0x4f,0xb4,0x4f,0xcc,0x25,0x90,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x1c,0x0c,0x25,0x78,0x27,0x28,0x21,0xfa,0x4f,0xf6,0x1a,0xe6,0x4f,0xfc,0x50,0x02,0x4a,0x44,0x1d,0x98,0x50,0x08,0x1d,0x98,0x16,0x7e,0x4a,0x62,0x4a,0xce,0x50,0x0e,0x50,0x14,0x4a,0x8c, -0x19,0x12,0x4a,0xa4,0x50,0x1a,0x4a,0xb6,0x4a,0x6e,0x4b,0x3a,0x4a,0x6e,0x4a,0x62,0x4a,0x8c,0x1b,0xfa,0x4a,0xec,0x4d,0xb6,0x50,0x20,0x00,0x01,0x00,0x01,0x04,0x86,0x00,0x02,0x00,0x29,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92, -0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45, -0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c, -0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc, -0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x00,0x01,0x00,0x68,0x00,0x70,0x00,0x02,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xb4,0x00,0x01,0x48,0xba,0x00,0x14,0x48,0xb6,0x48,0xb6,0x48,0xbc,0x48,0xbc,0x48,0xc2,0x48,0xc8,0x48,0xce, -0x48,0xce,0x48,0xd4,0x48,0xda,0x48,0xe0,0x48,0xe0,0x48,0xe6,0x48,0xe6,0x48,0xec,0x48,0xec,0x42,0x9e,0x42,0x9e,0x48,0xf2,0x48,0xf2,0x48,0xf8,0x48,0xe0,0x48,0xfe,0x48,0xfe,0x49,0x04,0x49,0x04,0x49,0x0a,0x49,0x0a,0x49,0x10,0x49,0x10,0x0f,0x62,0x0f,0x62,0x14,0xf0,0x14,0xf0,0x49,0x16,0x49,0x16,0x49,0x1c,0x49,0x22,0x49,0x28, -0x49,0x2e,0x00,0x01,0x00,0x02,0x04,0x80,0x04,0x81,0x00,0x02,0x00,0x05,0x00,0x45,0x00,0x47,0x00,0x00,0x00,0x49,0x00,0x4b,0x00,0x03,0x00,0x4d,0x00,0x51,0x00,0x06,0x00,0x53,0x00,0x5a,0x00,0x0b,0x00,0x5d,0x00,0x5d,0x00,0x13,0x00,0x01,0x0c,0xec,0x0c,0xf6,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x48,0xac,0x00,0x01, -0x48,0xb2,0x00,0x00,0x48,0xb8,0x00,0x01,0x48,0xbe,0x03,0x33,0x48,0xb2,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x48,0xee,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x48,0xfa,0x48,0xb8, -0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x54,0x48,0xb8, -0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8, -0x49,0x8a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x37,0x00,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8, -0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x54,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8, -0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0xae,0x48,0xb8,0x49,0xb4,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0xba,0x48,0xb8,0x49,0x78,0x48,0xb8,0x38,0x44,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x06,0x48,0xb8, -0x49,0xc0,0x48,0xb8,0x49,0xc6,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8, -0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xcc,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8, -0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd8,0x48,0xb8, -0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xde,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xe4,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, -0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0xea,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x42,0x48,0xb8, -0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0xf0,0x48,0xb8,0x49,0xf6,0x48,0xb8,0x49,0xfc,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, -0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, -0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, -0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8, -0x49,0x66,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, -0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8, -0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, -0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, -0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, -0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8, -0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, -0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8, -0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x49,0x60,0x48,0xb8, -0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, -0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8, -0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, -0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8, -0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8, -0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8, -0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8, -0x49,0x66,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4a,0x26,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x2c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x48,0xca,0x48,0xb8, -0x4a,0x3e,0x48,0xb8,0x4a,0x44,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4a,0x56,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x4a,0x5c,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x4a,0x62,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x74,0x48,0xb8, -0x4a,0x7a,0x48,0xb8,0x49,0x00,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x4a,0x80,0x48,0xb8,0x4a,0x86,0x48,0xb8,0x4a,0x8c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x92,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4a,0x98,0x48,0xb8,0x4a,0x9e,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xaa,0x48,0xb8,0x4a,0xa4,0x48,0xb8, -0x4a,0xaa,0x48,0xb8,0x4a,0xb0,0x48,0xb8,0x4a,0xb6,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4a,0xc2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x38,0x44,0x48,0xb8,0x4a,0xce,0x48,0xb8,0x4a,0xd4,0x48,0xb8,0x4a,0xda,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8,0x4a,0xec,0x48,0xb8, -0x4a,0xf2,0x48,0xb8,0x4a,0xf8,0x48,0xb8,0x4a,0xfe,0x48,0xb8,0x4b,0x04,0x48,0xb8,0x4b,0x0a,0x48,0xb8,0x4b,0x10,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0xb4,0x48,0xb8, -0x4b,0x1c,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8, -0x4a,0xec,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x28,0x48,0xb8,0x4b,0x2e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8, -0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x34,0x48,0xb8, -0x4b,0x3a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x40,0x48,0xb8,0x49,0x36,0x48,0xb8,0x4b,0x46,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x36,0x48,0xb8, -0x37,0x36,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x39,0x16,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4b,0x52,0x48,0xb8,0x36,0x52,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x58,0x48,0xb8, -0x49,0x90,0x48,0xb8,0x4b,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4b,0x70,0x48,0xb8,0x4b,0x76,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4b,0x7c,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4b,0x82,0x48,0xb8, -0x4b,0x82,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4b,0x88,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x4b,0x8e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0xa0,0x48,0xb8, -0x4b,0xa6,0x48,0xb8,0x4b,0xac,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4b,0xb2,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4b,0xb8,0x48,0xb8,0x4b,0xbe,0x48,0xb8,0x4b,0xc4,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xca,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4b,0xd0,0x48,0xb8,0x4b,0x22,0x48,0xb8, -0x4b,0x22,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x37,0x36,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xdc,0x48,0xb8,0x4b,0x58,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x4b,0xe2,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8, -0x4b,0xe8,0x48,0xb8,0x4b,0xee,0x48,0xb8,0x4b,0xf4,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4b,0xfa,0x48,0xb8,0x4c,0x00,0x48,0xb8,0x4c,0x06,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4c,0x12,0x48,0xb8,0x4c,0x18,0x48,0xb8,0x4c,0x1e,0x48,0xb8, -0x49,0x8a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4c,0x2a,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8, -0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4c,0x30,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4c,0x36,0x48,0xb8,0x4c,0x3c,0x48,0xb8,0x4c,0x42,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4c,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4c,0x4e,0x48,0xb8, -0x4b,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4c,0x54,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa8,0x48,0xb8, -0x49,0x48,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x4c,0x5a,0x48,0xb8,0x4c,0x60,0x48,0xb8,0x4c,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4b,0xa6,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x4c,0x6c,0x48,0xb8,0x4c,0x72,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x24,0x48,0xb8, -0x4c,0x78,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4c,0x7e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4c,0x84,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x4c,0x8a,0x48,0xb8,0x4c,0x90,0x48,0xb8,0x49,0x0c,0x48,0xb8, -0x49,0x12,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4c,0x96,0x48,0xb8,0x4c,0x9c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x00,0x02,0x00,0x01,0x07,0x3a,0x07,0x3d,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91, -0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0, -0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46, -0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf, -0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x02,0x47,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x03,0x0a,0x00,0x00, -0x00,0x01,0x02,0x6d,0x00,0x00,0x00,0x01,0x01,0xe7,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x01,0x0d,0x00,0x00,0x00,0x01,0x02,0xf2,0x00,0x00,0x00,0x01,0x02,0x23,0x00,0x00,0x00,0x01,0x01,0x61, -0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x02,0xa0,0x00,0x00,0x00,0x01,0x02,0x1a,0x00,0x00,0x00,0x01,0x00,0xf9,0x00,0x00,0x00,0x01,0x00,0x73,0x00,0x00,0x00,0x01,0x01,0x4b,0x00,0x00,0x00,0x01,0x00,0xcf,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x18,0x00,0x00,0x00,0x01, -0x03,0x3a,0x00,0x00,0x00,0x01,0x02,0x9d,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0x02,0x48,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x02,0x4d,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00, -0x00,0x01,0x01,0x2a,0x00,0x00,0x00,0x01,0x03,0x42,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x1f,0x00,0x00,0x00,0x01,0xff,0xb5,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0x01,0xee,0x00,0x00,0x00,0x01,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0xcb,0x00,0x00,0x00,0x01,0x03,0x37, -0x00,0x00,0x00,0x01,0x02,0x9a,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x02,0xe8,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x02,0x85,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0x02,0xcf,0x00,0x00,0x00,0x01,0x02,0x32,0x00,0x00,0x00,0x01, -0x01,0xac,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0x02,0x8e,0x00,0x00,0x00,0x01,0x01,0xf1,0x00,0x00,0x00,0x01,0x01,0x6b,0x00,0x00,0x00,0x01,0x03,0x89,0x00,0x00,0x00,0x01,0x03,0x6b,0x00,0x00,0x00,0x01,0x03,0x61,0x00,0x00,0x00,0x01,0x03,0xe7,0x00,0x00, -0x00,0x01,0x03,0x18,0x00,0x00,0x00,0x01,0x02,0x06,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0x7e,0x00,0x00,0x00,0x01,0x02,0xe1,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x02,0x9b,0x00,0x00,0x00,0x01,0x01,0xfe,0x00,0x00,0x00,0x01,0x01,0x78, -0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x00,0x00,0x01,0x02,0x10,0x00,0x00,0x00,0x01,0x01,0x8a,0x00,0x00,0x00,0x01,0x02,0xc5,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x02,0x34,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01, -0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0xb9,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x00,0x00,0x01,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x00,0x01,0x03,0xbf,0x00,0x00,0x00,0x01,0x03,0xe5,0x00,0x00,0x00,0x01,0x03,0x9a,0x00,0x00,0x00,0x01,0x03,0x0b,0x00,0x00,0x00,0x01,0x03,0x5b,0x00,0x00,0x00,0x01,0x04,0x18,0x00,0x00, -0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x16,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x41,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x00,0x00,0x01,0x04,0x1d,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x04,0x12,0x00,0x00,0x00,0x01,0x03,0xa1,0x00,0x00,0x00,0x01,0x03,0xaa,0x00,0x00,0x00,0x01,0x03,0x69, -0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x00,0x00,0x01,0x03,0xab,0x00,0x00,0x00,0x01,0x04,0x5e,0x00,0x00,0x00,0x01,0x04,0x59,0x00,0x00,0x00,0x01,0x03,0x76,0x00,0x00,0x00,0x01,0x03,0x88,0x00,0x00,0x00,0x01,0x03,0xa0,0x00,0x00,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xf7,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01, -0xfe,0xfd,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0xb8,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00, -0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0xc0, -0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01,0x01,0x18,0x00,0x00,0x00,0x01, -0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0xf0,0x00,0x01,0x01,0xa6,0x00,0xf0,0x00,0x01,0x00,0xe4,0x00,0xf0,0x00,0x01,0x01,0x9d,0x00,0xf0,0x00,0x01,0x00,0x8e,0x00,0xf0, -0x00,0x01,0x01,0x47,0x00,0xf0,0x00,0x01,0x00,0x3c,0x00,0xf0,0x00,0x01,0x00,0xf5,0x00,0xf0,0x00,0x01,0x00,0x60,0x00,0xf0,0x00,0x01,0x01,0x19,0x00,0xf0,0x00,0x01,0x01,0x11,0x00,0xf0,0x00,0x01,0x01,0x97,0x00,0xf0,0x00,0x01,0x00,0x84,0x00,0xf0,0x00,0x01,0x01,0x3d,0x00,0xf0,0x00,0x01,0x00,0x6c,0x00,0xf0,0x00,0x01,0x01,0x25, -0x00,0xf0,0x00,0x01,0x01,0x0e,0x00,0xf0,0x00,0x01,0x01,0x90,0x00,0xf0,0x00,0x01,0x00,0xf0,0x00,0xf0,0x00,0x01,0x01,0x72,0x00,0xf0,0x00,0x01,0x00,0x6d,0x00,0xf0,0x00,0x01,0x01,0x26,0x00,0xf0,0x00,0x01,0x00,0x8a,0x00,0xf0,0x00,0x01,0x01,0x43,0x00,0xf0,0x00,0x01,0xff,0x1e,0x00,0xf0,0x00,0x01,0xff,0xd7,0x00,0xf0,0x00,0x01, -0x01,0x04,0x00,0xf0,0x00,0x01,0x00,0x62,0x00,0xf0,0x00,0x01,0x01,0x1b,0x00,0xf0,0x00,0x01,0x00,0xdc,0x00,0xf0,0x00,0x01,0x01,0x68,0x00,0xf0,0x00,0x01,0x00,0xb3,0x00,0xf0,0x00,0x01,0x01,0x6c,0x00,0xf0,0x00,0x01,0x00,0xb2,0x00,0xf0,0x00,0x01,0x01,0x3e,0x00,0xf0,0x00,0x01,0x00,0x64,0x00,0xf0,0x00,0x01,0x01,0x1d,0x00,0xf0, -0x00,0x01,0x00,0xaa,0x00,0xf0,0x00,0x01,0x01,0x63,0x00,0xf0,0x00,0x01,0x01,0x0b,0x00,0xf0,0x00,0x01,0x00,0xbe,0x00,0xf0,0x00,0x01,0x01,0x77,0x00,0xf0,0x00,0x01,0x00,0xf2,0x00,0xf0,0x00,0x01,0x01,0xab,0x00,0xf0,0x00,0x01,0x00,0xe3,0x00,0xf0,0x00,0x01,0x01,0x9c,0x00,0xf0,0x00,0x01,0x01,0x01,0x00,0xf0,0x00,0x01,0x00,0xca, -0x00,0xf0,0x00,0x01,0x01,0x83,0x00,0xf0,0x00,0x01,0x00,0x94,0x00,0xf0,0x00,0x01,0x01,0x4d,0x00,0xf0,0x00,0x01,0xff,0x5e,0x00,0xf0,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01, -0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x02,0x3d,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00, -0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x01,0xa0, -0x00,0xdc,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0x01,0xcf,0x00,0x00,0x00,0x01,0x02,0x38,0x00,0x00,0x00,0x01,0x02,0x15,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x02,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01, -0x02,0x0e,0x00,0x00,0x00,0x01,0x02,0x36,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x00,0x00,0x01,0x02,0x13,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x01,0xe1,0x00,0x00,0x00,0x01,0x02,0xee,0x00,0x00,0x00,0x01,0x03,0x14,0x00,0x00,0x00,0x01,0x02,0xc3,0x00,0x00, -0x00,0x01,0x02,0x3a,0x00,0x00,0x00,0x01,0x03,0x10,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x44,0x00,0x00,0x00,0x01,0x02,0x52,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x03,0x4c,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0x01,0xf8, -0x00,0x00,0x00,0x01,0x02,0xbb,0x00,0x00,0x00,0x01,0x02,0xd9,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x02,0x98,0x00,0x00,0x00,0x01,0x04,0x05,0x00,0x00,0x00,0x01,0x03,0x8d,0x00,0x00,0x00,0x01,0x02,0x3e,0x00,0x00,0x00,0x01,0x01,0xe6,0x00,0x00,0x00,0x01,0x03,0x7d,0x00,0x00,0x00,0x01,0x03,0xa3,0x00,0x00,0x00,0x01, -0x03,0x52,0x00,0x00,0x00,0x01,0x03,0xd6,0x00,0x00,0x00,0x01,0x02,0x2f,0x00,0x00,0x00,0x01,0x03,0xd4,0x00,0x00,0x00,0x01,0x03,0xd3,0x00,0x00,0x00,0x01,0x02,0x8b,0x00,0x00,0x00,0x01,0x03,0xdb,0x00,0x00,0x00,0x01,0x02,0x87,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x03,0x81,0x00,0x00,0x00,0x01,0x03,0x68,0x00,0x00, -0x00,0x01,0x03,0x27,0x00,0x00,0x00,0x01,0x04,0x2b,0x00,0x00,0x00,0x01,0x04,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x17,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x5e,0x00,0x00,0x00,0x01,0x02,0xcd,0x00,0x00,0x00,0x01,0x02,0x75,0x00,0x00,0x00,0x01,0x02,0xdb, -0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x8c,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x04,0x57,0x00,0x00,0x00,0x01,0x04,0x56,0x00,0x00,0x00,0x01,0x02,0x9f,0x00,0x00,0x00,0x01,0x03,0x64,0x00,0x00,0x00,0x01, -0x00,0x3b,0x00,0x00,0x00,0x01,0x04,0x53,0x00,0x00,0x00,0x01,0x04,0x04,0x00,0x00,0x00,0x01,0x03,0xeb,0x00,0x00,0x00,0x01,0x01,0x59,0x00,0x00,0x00,0x01,0x05,0x1e,0x00,0x00,0x00,0x01,0x04,0x4f,0x00,0x00,0x00,0x01,0x04,0x9f,0x00,0x00,0x00,0x01,0x04,0x9a,0x00,0x00,0x00,0x01,0x03,0xb7,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00, -0x00,0x01,0x03,0xe1,0x00,0x00,0x00,0x01,0x03,0x50,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x03,0x1a,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x00,0x01,0x03,0x9e,0x00,0x00,0x00,0x01,0x01,0xf7,0x00,0x00,0x00,0x01,0x02,0x7b,0x00,0x00,0x00,0x01,0x03,0x9c,0x00,0x00,0x00,0x01,0x03,0x9b,0x00,0x00,0x00,0x01,0x02,0xa9, -0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x02,0x4f,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x03,0x49,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0xef,0x00,0x00,0x00,0x01,0x04,0x46,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01, -0x03,0xe4,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x03,0x0e,0x00,0x00,0x00,0x01,0x03,0x26,0x00,0x00,0x00,0x01,0x02,0x95,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00, -0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x03,0x67,0x00,0x00,0x00,0x01,0x03,0xaf,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x03,0xb5,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x03,0xbe,0x00,0x00,0x00,0x01,0x03,0xc8,0x00,0x00,0x00,0x01,0x03,0xc6,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xba, -0x00,0x00,0x00,0x01,0x03,0x78,0x00,0x00,0x00,0x01,0x03,0x2d,0x00,0x00,0x00,0x01,0x03,0x65,0x00,0x00,0x00,0x01,0x03,0xb6,0x00,0x00,0x00,0x01,0x03,0xfb,0x00,0x00,0x00,0x01,0x03,0x1e,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0xf0,0x00,0x01,0x02,0xf2,0x00,0xd0,0x00,0x01, -0x02,0xcf,0x00,0xd0,0x00,0x01,0x03,0x4c,0x00,0xd0,0x00,0x01,0x02,0xa7,0x00,0xd0,0x00,0x01,0x02,0xf2,0x00,0xdc,0x00,0x01,0x03,0xb5,0x00,0xd0,0x00,0x01,0x03,0xfb,0x00,0xd0,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64, -0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00,0x03,0xe8,0x00,0x01,0xff,0xc4,0x03,0xe8,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x0f, -0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01, -0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xb2,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e, -0x00,0x01,0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x01,0x53, -0x04,0x06,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x02,0x8c,0x06,0x40,0x00,0x01,0x03,0x93,0x05,0xdc,0x00,0x01,0x02,0x9e,0xff,0xf1,0x00,0x01,0x02,0x1c,0x06,0x40,0x00,0x01,0x03,0xe8,0x05,0xdc,0x00,0x01,0x02,0x1c,0xff,0xf1,0x00,0x01,0x02,0xee,0x06,0x40,0x00,0x01,0x04,0xc4,0x05,0xdc,0x00,0x01,0x02,0xee,0xff,0xe7,0x00,0x01, -0x02,0xbc,0x06,0x40,0x00,0x01,0x04,0xce,0x05,0xdc,0x00,0x01,0x02,0xbc,0xff,0xf1,0x00,0x01,0x02,0x58,0x06,0x40,0x00,0x01,0x03,0xd4,0x05,0xdc,0x00,0x01,0x02,0x58,0xff,0xf1,0x00,0x01,0x03,0x20,0x06,0x40,0x00,0x01,0x05,0x00,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xe7,0x00,0x01,0x02,0xd0,0x06,0x40,0x00,0x01,0x05,0x28,0x05,0xdc, -0x00,0x01,0x02,0xd0,0xff,0xf1,0x00,0x01,0x01,0x09,0x06,0x40,0x00,0x01,0x02,0x08,0x05,0xdc,0x00,0x01,0x01,0x09,0xff,0xf1,0x00,0x01,0x01,0xd6,0x06,0x40,0x00,0x01,0x02,0x58,0x05,0xdc,0x00,0x01,0x01,0x7c,0xff,0xf1,0x00,0x01,0x02,0x8a,0x06,0x40,0x00,0x01,0x04,0xb0,0x05,0xdc,0x00,0x01,0x02,0x8a,0xff,0xf1,0x00,0x01,0x02,0x4e, -0x06,0x40,0x00,0x01,0x03,0x84,0x05,0xdc,0x00,0x01,0x02,0x4e,0xff,0xf1,0x00,0x01,0x03,0x93,0x06,0x40,0x00,0x01,0x06,0xa4,0x05,0xdc,0x00,0x01,0x03,0x93,0xff,0xf1,0x00,0x01,0x05,0x78,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xf1,0x00,0x01,0x03,0x02,0x06,0x40,0x00,0x01,0x05,0x14,0x05,0xdc,0x00,0x01,0x03,0x02,0xff,0xe7,0x00,0x01, -0x02,0x62,0x06,0x40,0x00,0x01,0x02,0x62,0xff,0xf1,0x00,0x01,0x03,0x02,0xfe,0xf2,0x00,0x01,0x04,0x10,0x05,0xdc,0x00,0x01,0x02,0x3a,0x06,0x40,0x00,0x01,0x02,0x26,0xff,0xe7,0x00,0x01,0x02,0x26,0x06,0x40,0x00,0x01,0x04,0x4c,0x05,0xdc,0x00,0x01,0x02,0x26,0xff,0xf1,0x00,0x01,0x02,0xbc,0xff,0xe7,0x00,0x01,0x02,0x80,0x06,0x40, -0x00,0x01,0x02,0x80,0xff,0xf1,0x00,0x01,0x03,0xca,0x06,0x40,0x00,0x01,0x07,0x9e,0x05,0xdc,0x00,0x01,0x03,0xca,0xff,0xf1,0x00,0x01,0x02,0x6c,0x06,0x40,0x00,0x01,0x02,0x6c,0xff,0xf1,0x00,0x01,0x02,0x44,0x06,0x40,0x00,0x01,0x02,0x44,0xff,0xf1,0x00,0x01,0x02,0x08,0x05,0x14,0x00,0x01,0x03,0x84,0x04,0xb0,0x00,0x01,0x02,0x08, -0xff,0xe7,0x00,0x01,0x02,0x4e,0x06,0x72,0x00,0x01,0x03,0xca,0x05,0x78,0x00,0x01,0x02,0x6c,0xff,0xe7,0x00,0x01,0x02,0x26,0x05,0x14,0x00,0x01,0x03,0x98,0x04,0xb0,0x00,0x01,0x02,0x3a,0xff,0xe7,0x00,0x01,0x02,0x1c,0x06,0x72,0x00,0x01,0x04,0x4c,0x06,0x40,0x00,0x01,0x02,0x1c,0xff,0xe7,0x00,0x01,0x02,0x3a,0x05,0x14,0x00,0x01, -0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x36,0xff,0xf1,0x00,0x01,0x04,0x38,0x04,0xb0,0x00,0x01,0x02,0x3a,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x0e,0x00,0x01,0x00,0xfa,0xff,0xf1,0x00,0x01,0x00,0xf0,0x06,0x72,0x00,0x01,0x00,0x50,0xfe,0x2a,0x00,0x01,0x03,0x84,0x05,0x78,0x00,0x01,0x01,0x7c,0x06,0x40, -0x00,0x01,0x03,0x7a,0x05,0x14,0x00,0x01,0x06,0x40,0x04,0xb0,0x00,0x01,0x03,0x7a,0xff,0xf1,0x00,0x01,0x02,0x4e,0x05,0x14,0x00,0x01,0x03,0xe8,0x04,0xb0,0x00,0x01,0x02,0x58,0x05,0x14,0x00,0x01,0x02,0x58,0xff,0xe7,0x00,0x01,0x04,0x1a,0x04,0xb0,0x00,0x01,0x02,0x4e,0xfe,0x2a,0x00,0x01,0x04,0x42,0x04,0xb0,0x00,0x01,0x01,0xcc, -0x05,0x14,0x00,0x01,0x02,0xe4,0x04,0xb0,0x00,0x01,0x01,0xae,0x05,0x14,0x00,0x01,0x03,0x02,0x04,0xb0,0x00,0x01,0x01,0xae,0xff,0xe7,0x00,0x01,0x01,0x2c,0x05,0xdc,0x00,0x01,0x01,0xe0,0x05,0x78,0x00,0x01,0x01,0x80,0xff,0xe7,0x00,0x01,0x04,0x06,0x04,0xb0,0x00,0x01,0x01,0xf4,0x05,0x14,0x00,0x01,0x04,0x10,0x04,0xb0,0x00,0x01, -0x01,0xf4,0xff,0xf1,0x00,0x01,0x02,0xf3,0x05,0x14,0x00,0x01,0x05,0xf0,0x04,0xb0,0x00,0x01,0x02,0xf3,0xff,0xf1,0x00,0x01,0x01,0xd6,0x05,0x14,0x00,0x01,0x03,0xca,0x04,0xb0,0x00,0x01,0x01,0xd6,0xff,0xf1,0x00,0x01,0x01,0xf9,0x05,0x14,0x00,0x01,0x01,0xf9,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x05,0x14,0x00,0x01,0x01,0xc2,0xff,0xf1, -0x00,0x01,0x02,0x9e,0x07,0x80,0x00,0x01,0x04,0x33,0x06,0x7c,0x00,0x01,0x02,0xee,0xfe,0x48,0x00,0x01,0x02,0x58,0x07,0xb0,0x00,0x01,0x03,0xd4,0x06,0xa4,0x00,0x01,0x03,0x20,0x07,0x80,0x00,0x01,0x05,0x78,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0x80,0x00,0x01,0x05,0x8c,0x06,0x7c,0x00,0x01,0x02,0xbc,0x07,0x80,0x00,0x01,0x05,0x64, -0x06,0x7c,0x00,0x01,0x02,0x08,0x06,0x54,0x00,0x01,0x03,0xd4,0x05,0x50,0x00,0x01,0x01,0xf4,0x06,0x04,0x00,0x01,0x01,0xf4,0xff,0xe7,0x00,0x01,0x02,0x08,0x06,0x04,0x00,0x01,0x03,0x84,0x05,0x50,0x00,0x01,0x02,0x3a,0xfe,0x48,0x00,0x01,0x02,0x3a,0x06,0x54,0x00,0x01,0x02,0x2b,0x06,0x54,0x00,0x01,0x02,0x2b,0xff,0xe7,0x00,0x01, -0x02,0x26,0x06,0x04,0x00,0x01,0x02,0x44,0x05,0x46,0x00,0x01,0x01,0xf4,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x72,0x00,0x01,0x02,0x44,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x0e,0x00,0x01,0x02,0x4e,0x06,0x04,0x00,0x01,0x04,0x38,0x05,0x50,0x00,0x01,0x02,0x58,0x06,0x54,0x00,0x01,0x02,0x53,0x06,0x54,0x00,0x01,0x02,0x53,0xff,0xe7, -0x00,0x01,0x02,0x58,0x06,0x04,0x00,0x01,0x02,0x26,0x06,0x54,0x00,0x01,0x04,0x56,0x05,0x50,0x00,0x01,0x02,0x3a,0x06,0x04,0x00,0x01,0x02,0x2d,0x06,0xa2,0x00,0x01,0x04,0x5a,0x06,0x02,0x00,0x01,0x02,0x2d,0xff,0xe7,0x00,0x01,0x03,0xe8,0x06,0x40,0x00,0x01,0x06,0xe2,0x05,0xdc,0x00,0x01,0x03,0xe8,0xff,0xf1,0x00,0x01,0x03,0x48, -0x05,0x14,0x00,0x01,0x06,0xa8,0x04,0xb0,0x00,0x01,0x03,0x48,0xff,0xe7,0x00,0x01,0x03,0x02,0x06,0x72,0x00,0x01,0x04,0x00,0x05,0x9a,0x00,0x01,0x01,0x4b,0xfe,0xd4,0x00,0x01,0x02,0x9e,0x07,0xb0,0x00,0x01,0x04,0x83,0x06,0x7c,0x00,0x01,0x04,0x74,0x06,0x40,0x00,0x01,0x07,0x72,0x05,0xdc,0x00,0x01,0x04,0x74,0xff,0xe7,0x00,0x01, -0x03,0xfc,0x05,0x14,0x00,0x01,0x07,0x6c,0x04,0xb0,0x00,0x01,0x03,0xfc,0xff,0xe7,0x00,0x01,0x01,0xf9,0x06,0x04,0x00,0x01,0x04,0x6a,0x05,0x50,0x00,0x01,0x02,0x44,0x07,0x80,0x00,0x01,0x05,0x00,0x06,0x7c,0x00,0x01,0x02,0x30,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0x7c,0x00,0x01,0x02,0x30,0xff,0xf1,0x00,0x01,0x04,0x33,0x06,0xa4, -0x00,0x01,0x02,0x30,0x07,0x80,0x00,0x01,0x04,0x4c,0x06,0x7c,0x00,0x01,0x01,0x09,0x07,0xb0,0x00,0x01,0x02,0x80,0x06,0xa4,0x00,0x01,0x01,0x1d,0x07,0xb0,0x00,0x01,0x01,0x1d,0xff,0xf1,0x00,0x01,0x01,0x09,0x07,0x80,0x00,0x01,0x02,0x80,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0xb0,0x00,0x01,0x02,0xbc, -0x07,0xb0,0x00,0x01,0x00,0xfa,0x04,0xa0,0x00,0x01,0x01,0x7c,0x04,0x50,0x00,0x01,0x01,0x0e,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x40,0x00,0x01,0x01,0x0e,0xff,0xf1,0x00,0x01,0x02,0x26,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0xa4,0x00,0x01,0x01,0x90,0x06,0x54,0x00,0x01,0x03,0x52,0x05,0x50,0x00,0x01,0x02,0x6c,0x07,0xb0,0x00,0x01, -0x05,0x00,0x06,0xa4,0x00,0x01,0x01,0xf4,0x06,0x54,0x00,0x01,0x03,0xe8,0x05,0x50,0x00,0x01,0x02,0x3c,0x06,0x94,0x00,0x01,0x04,0x79,0x05,0xf4,0x00,0x01,0x02,0x3c,0xff,0xe7,0x00,0x01,0x02,0x44,0x07,0xb0,0x00,0x01,0x01,0xf9,0x06,0x54,0x00,0x01,0x02,0x3d,0x06,0x3a,0x00,0x01,0x04,0x7b,0x04,0xfa,0x00,0x01,0x02,0x3d,0xff,0xf1, -0x00,0x01,0x02,0x5a,0x06,0x8c,0x00,0x01,0x04,0xb4,0x05,0x4c,0x00,0x01,0x02,0x5a,0xfe,0x2a,0x00,0x01,0x03,0x20,0x07,0xb0,0x00,0x01,0x05,0x50,0x06,0x7c,0x00,0x01,0x04,0x88,0x05,0x50,0x00,0x01,0x01,0x1d,0x07,0x08,0x00,0x01,0x02,0x21,0x06,0x42,0x00,0x01,0x02,0x26,0xfe,0x48,0x00,0x01,0x01,0xae,0xfe,0x48,0x00,0x01,0x02,0xee, -0x07,0xb0,0x00,0x01,0x05,0x14,0x06,0xa4,0x00,0x01,0x03,0x0c,0x07,0xb0,0x00,0x01,0x03,0x0c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x54,0x00,0x01,0x02,0x44,0xff,0xe7,0x00,0x01,0x02,0x9e,0x06,0x40,0x00,0x01,0x02,0x9e,0xfe,0xa2,0x00,0x01,0x02,0x08,0xfe,0xa2,0x00,0x01,0x02,0xa8,0x07,0xb0,0x00,0x01,0x05,0x1e,0x06,0xa4,0x00,0x01, -0x02,0xa8,0xff,0xf1,0x00,0x01,0x02,0x58,0xfe,0xa2,0x00,0x01,0x02,0x3a,0xfe,0xa2,0x00,0x01,0x02,0x4e,0x07,0xb0,0x00,0x01,0x03,0x84,0x06,0xa4,0x00,0x01,0x00,0xfa,0x08,0x02,0x00,0x01,0x01,0xf4,0x06,0xe0,0x00,0x01,0x03,0xc4,0x05,0xdc,0x00,0x01,0x02,0x75,0x06,0x40,0x00,0x01,0x05,0x78,0x06,0xa4,0x00,0x01,0x02,0x4e,0x06,0x54, -0x00,0x01,0x03,0x02,0xff,0xf1,0x00,0x01,0x05,0x8c,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0xb0,0x00,0x01,0x04,0x60,0x06,0xa4,0x00,0x01,0x01,0xcc,0x06,0x54,0x00,0x01,0x03,0x34,0x05,0x50,0x00,0x01,0x01,0xae,0x06,0x54,0x00,0x01,0x02,0x3a,0x07,0xb0,0x00,0x01,0x01,0x80,0xfe,0x48,0x00,0x01,0x04,0x9c,0x06,0xa4,0x00,0x01,0x01,0x2c, -0x06,0x0e,0x00,0x01,0x02,0x30,0x06,0x18,0x00,0x01,0x05,0x64,0x06,0xa4,0x00,0x01,0x02,0x8a,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0xa4,0x00,0x01,0x01,0xe0,0x06,0x54,0x00,0x01,0x02,0x4e,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0x7c,0x00,0x01,0x01,0xe0,0x06,0x04,0x00,0x01,0x03,0xf8,0x06,0x3a,0x00,0x01,0x04,0xac,0x06,0x3a,0x00,0x01, -0x03,0x7a,0xff,0xe7,0x00,0x01,0x03,0x0c,0x06,0x79,0x00,0x01,0x03,0xf6,0x06,0x29,0x00,0x01,0x02,0x8a,0xfe,0x2a,0x00,0x01,0x02,0xe8,0x05,0xb2,0x00,0x01,0x04,0x39,0x04,0xb0,0x00,0x01,0x02,0xe8,0xff,0xf1,0x00,0x01,0x02,0x9e,0x07,0x30,0x00,0x01,0x02,0xf8,0x07,0xb0,0x00,0x01,0x02,0xf8,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x7c, -0x00,0x01,0x02,0x44,0x07,0x30,0x00,0x01,0x03,0xfc,0x05,0x50,0x00,0x01,0x02,0x1c,0x07,0xb0,0x00,0x01,0x02,0x26,0x07,0x80,0x00,0x01,0x03,0xd4,0x06,0x40,0x00,0x01,0x05,0x50,0x06,0xa4,0x00,0x01,0x02,0x44,0xfe,0x2a,0x00,0x01,0x03,0x20,0xfe,0x70,0x00,0x01,0x02,0x3a,0x06,0x16,0x00,0x01,0x04,0x66,0x05,0xa0,0x00,0x01,0x02,0xd0, -0x07,0xb0,0x00,0x01,0x02,0x6c,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x18,0x00,0x01,0x02,0xd7,0x06,0x3a,0x00,0x01,0x05,0x5e,0x05,0xea,0x00,0x01,0x02,0xd7,0xff,0xf1,0x00,0x01,0x02,0x43,0x06,0x3c,0x00,0x01,0x04,0x37,0x05,0x4c,0x00,0x01,0x02,0x43,0xff,0xf1,0x00,0x01,0x01,0x0e,0x07,0x80,0x00,0x01,0x00,0xfa,0x06,0x0e,0x00,0x01, -0x01,0x09,0x07,0x30,0x00,0x01,0x00,0xfa,0x05,0xd2,0x00,0x01,0x01,0x0e,0x07,0xb0,0x00,0x01,0x00,0xe1,0x06,0x72,0x00,0x01,0x01,0x0e,0x06,0x40,0x00,0x01,0x01,0x0e,0xfe,0xa2,0x00,0x01,0x00,0xfa,0xfe,0xa2,0x00,0x01,0x01,0xd6,0x07,0xb0,0x00,0x01,0x02,0xd0,0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x6e,0x00,0x01,0x02,0x8a,0xfe,0x70, -0x00,0x01,0x02,0x4e,0xfe,0x70,0x00,0x01,0x01,0xfd,0x04,0xa0,0x00,0x01,0x03,0xfa,0x04,0xa0,0x00,0x01,0x01,0xfd,0xff,0xf1,0x00,0x01,0x02,0x4e,0xfe,0x48,0x00,0x01,0x00,0xfa,0xfe,0x48,0x00,0x01,0x03,0x20,0xfe,0x2a,0x00,0x01,0x03,0x02,0x07,0x30,0x00,0x01,0x02,0x9e,0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x70,0x00,0x01,0x02,0x18, -0x05,0xea,0x00,0x01,0x04,0x81,0x05,0xea,0x00,0x01,0x02,0x18,0xff,0xf1,0x00,0x01,0x01,0x2c,0x05,0x7f,0x00,0x01,0x02,0xb6,0x05,0x2f,0x00,0x01,0x02,0xbc,0x07,0x30,0x00,0x01,0x02,0xbc,0xfe,0xa2,0x00,0x01,0x02,0x26,0xfe,0xa2,0x00,0x01,0x03,0xd4,0x07,0xb0,0x00,0x01,0x07,0x9e,0x06,0x7c,0x00,0x01,0x02,0xf8,0x06,0x54,0x00,0x01, -0x05,0xf0,0x05,0x50,0x00,0x01,0x02,0x08,0xfe,0x2a,0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x02,0x8e,0x06,0x52,0x00,0x01,0x03,0xca,0x07,0xb0,0x00,0x01,0x02,0xf3,0x06,0x54,0x00,0x01,0x03,0xca,0x07,0x80,0x00,0x01,0x02,0xf3,0x06,0x04,0x00,0x01,0x04,0x1a,0x05,0x50,0x00,0x01,0x06,0x1a,0x06,0x7c,0x00,0x01,0x04,0xc7,0x04,0xb0, -0x00,0x01,0x02,0xbc,0x06,0xd6,0x00,0x01,0x05,0xfa,0x06,0x7c,0x00,0x01,0x02,0x26,0x05,0x46,0x00,0x01,0x05,0x04,0x05,0x00,0x00,0x01,0x02,0xb2,0xfe,0xc0,0x00,0x01,0x02,0x12,0x05,0x14,0x00,0x01,0x02,0x12,0xfe,0xc0,0x00,0x01,0x02,0x44,0xfe,0xc0,0x00,0x01,0x02,0x4e,0xfe,0xc0,0x00,0x01,0x02,0x30,0x06,0xc2,0x00,0x01,0x01,0xf4, -0x05,0x82,0x00,0x01,0x01,0x09,0xfe,0xc0,0x00,0x01,0x00,0xfa,0xfe,0xc0,0x00,0x01,0x03,0x02,0xfe,0xc0,0x00,0x01,0x02,0x58,0xfe,0xc0,0x00,0x01,0x02,0xbc,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0x84,0x00,0x01,0x01,0x80,0xfe,0x84,0x00,0x01,0x02,0xe2,0x06,0x52,0x00,0x01,0x05,0x74,0x05,0x62,0x00,0x01, -0x02,0xe2,0xff,0xe7,0x00,0x01,0x02,0x03,0x04,0xb8,0x00,0x01,0x03,0xdf,0x03,0xc8,0x00,0x01,0x02,0x03,0xff,0xe7,0x00,0x01,0x02,0x58,0xfe,0x48,0x00,0x01,0x02,0x9e,0xfe,0x02,0x00,0x01,0x02,0x08,0xfe,0x02,0x00,0x01,0x02,0x1c,0x07,0x80,0x00,0x01,0x03,0xe8,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x40,0x00,0x01,0x02,0x30,0xfe,0xc0, -0x00,0x01,0x02,0x6c,0xfe,0xc0,0x00,0x01,0x02,0x44,0xff,0x24,0x00,0x01,0x02,0x6c,0xff,0x24,0x00,0x01,0x05,0x1e,0x06,0x7c,0x00,0x01,0x02,0xa8,0x06,0x40,0x00,0x01,0x02,0xa8,0xfe,0xc0,0x00,0x01,0x02,0x58,0x06,0x72,0x00,0x01,0x02,0x8a,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0x24,0x00,0x01,0x02,0xbc,0xfe,0x70,0x00,0x01,0x02,0x1c, -0xfe,0x70,0x00,0x01,0x02,0xb2,0x06,0x40,0x00,0x01,0x02,0xb2,0xfe,0x2a,0x00,0x01,0x02,0x44,0x05,0x14,0x00,0x01,0x02,0x30,0xfe,0xa2,0x00,0x01,0x02,0x12,0x07,0x80,0x00,0x01,0x02,0x12,0xff,0xf1,0x00,0x01,0x01,0xe0,0x07,0x62,0x00,0x01,0x02,0xee,0x06,0xe0,0x00,0x01,0x03,0x20,0x07,0x30,0x00,0x01,0x02,0xd0,0x07,0x80,0x00,0x01, -0x05,0x28,0x06,0x7c,0x00,0x01,0x02,0x4e,0x06,0xd6,0x00,0x01,0x03,0xca,0x06,0x18,0x00,0x01,0x02,0xee,0xfe,0xc0,0x00,0x01,0x02,0x3a,0x06,0x72,0x00,0x01,0x02,0x3a,0xfe,0xc0,0x00,0x01,0x02,0x80,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x54,0x00,0x01,0x02,0xd0,0xfe,0x2a,0x00,0x01,0x02,0xd0,0xfe,0x84,0x00,0x01,0x02,0x4e,0xfe,0x84, -0x00,0x01,0x01,0x09,0xfe,0xa2,0x00,0x01,0x02,0x8a,0x07,0xb0,0x00,0x01,0x02,0x4e,0x07,0xb2,0x00,0x01,0x02,0x80,0xfe,0xc0,0x00,0x01,0x02,0x26,0x06,0x72,0x00,0x01,0x02,0x30,0x06,0x72,0x00,0x01,0x02,0x30,0xff,0x24,0x00,0x01,0x02,0x26,0x07,0x30,0x00,0x01,0x03,0xd4,0x06,0x7c,0x00,0x01,0x00,0xfa,0x07,0x12,0x00,0x01,0x00,0xfa, -0xff,0x24,0x00,0x01,0x02,0x2b,0x06,0x40,0x00,0x01,0x02,0x2b,0xfe,0x2a,0x00,0x01,0x00,0xfa,0xfe,0x2a,0x00,0x01,0x03,0x93,0x07,0xb0,0x00,0x01,0x06,0xa4,0x06,0xa4,0x00,0x01,0x03,0x7a,0x06,0x54,0x00,0x01,0x06,0x40,0x05,0x50,0x00,0x01,0x03,0x5c,0x07,0x80,0x00,0x01,0x06,0xa4,0x06,0x7c,0x00,0x01,0x03,0x5c,0xfe,0xc0,0x00,0x01, -0x03,0x7a,0xfe,0xc0,0x00,0x01,0x02,0xf8,0x07,0x80,0x00,0x01,0x02,0xf8,0xff,0xf1,0x00,0x01,0x02,0xf8,0x06,0x40,0x00,0x01,0x02,0xf8,0xfe,0xc0,0x00,0x01,0x02,0xf8,0xff,0x24,0x00,0x01,0x02,0x58,0xff,0x24,0x00,0x01,0x03,0x02,0xfe,0x2a,0x00,0x01,0x04,0x38,0x06,0xa4,0x00,0x01,0x04,0x38,0x06,0x7c,0x00,0x01,0x02,0x6c,0x06,0x04, -0x00,0x01,0x02,0x6c,0xfe,0x2a,0x00,0x01,0x02,0x58,0x07,0x80,0x00,0x01,0x04,0x60,0x06,0x7c,0x00,0x01,0x01,0x90,0x06,0x04,0x00,0x01,0x02,0x8a,0xfe,0xc0,0x00,0x01,0x02,0x9e,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0xe7,0x00,0x01,0x01,0xcc,0xff,0xe7,0x00,0x01,0x01,0xc2,0x05,0x14,0x00,0x01,0x01,0xc2,0xfe,0xc0,0x00,0x01,0x04,0x24, -0x07,0x1c,0x00,0x01,0x03,0x52,0x05,0xf0,0x00,0x01,0x02,0x44,0x07,0xd0,0x00,0x01,0x01,0xae,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0x80,0x00,0x01,0x02,0x62,0xfe,0xc0,0x00,0x01,0x01,0xd6,0xfe,0xc0,0x00,0x01,0x01,0x2c,0x07,0x1c,0x00,0x01,0x01,0x68,0xfe,0xc0,0x00,0x01,0x02,0x26,0xff,0x24,0x00,0x01,0x01,0x80,0xff,0x24,0x00,0x01, -0x02,0x26,0xfe,0x2a,0x00,0x01,0x01,0x68,0xfe,0x2a,0x00,0x01,0x02,0x1c,0x05,0x14,0x00,0x01,0x02,0x1c,0xfe,0xc0,0x00,0x01,0x02,0x2b,0x05,0x14,0x00,0x01,0x02,0x80,0x07,0x80,0x00,0x01,0x05,0x14,0x06,0x7c,0x00,0x01,0x04,0x60,0x05,0x50,0x00,0x01,0x01,0xf4,0xfe,0xc0,0x00,0x01,0x03,0xde,0x07,0x80,0x00,0x01,0x07,0xee,0x06,0x7c, -0x00,0x01,0x02,0xf8,0x06,0x04,0x00,0x01,0x03,0xca,0xfe,0xc0,0x00,0x01,0x02,0xf3,0xfe,0xc0,0x00,0x01,0x02,0x6c,0x07,0x80,0x00,0x01,0x04,0xce,0x06,0x7c,0x00,0x01,0x01,0xd6,0x06,0x24,0x00,0x01,0x03,0xca,0x05,0x50,0x00,0x01,0x01,0xe0,0xff,0xf1,0x00,0x01,0x01,0xe0,0xfe,0xc0,0x00,0x01,0x01,0xcc,0xff,0x24,0x00,0x01,0x01,0x54, -0x07,0x1c,0x00,0x01,0x02,0xd0,0x06,0x18,0x00,0x01,0x03,0xd4,0x05,0x82,0x00,0x01,0x01,0x8b,0x07,0xb2,0x00,0x01,0x02,0x8e,0x06,0x92,0x00,0x01,0x00,0xf7,0xff,0xf1,0x00,0x01,0x04,0x64,0x05,0x4c,0x00,0x01,0x02,0x5a,0xff,0xe7,0x00,0x01,0x02,0x74,0x06,0x3a,0x00,0x01,0x04,0x98,0x05,0x4a,0x00,0x01,0x02,0x74,0xff,0xf1,0x00,0x01, -0x02,0x49,0x06,0x3a,0x00,0x01,0x04,0x93,0x05,0x9a,0x00,0x01,0x02,0x49,0xff,0xe7,0x00,0x01,0x04,0xb4,0x05,0xec,0x00,0x01,0x02,0x4f,0x06,0x52,0x00,0x01,0x04,0x4e,0x05,0x12,0x00,0x01,0x02,0x4f,0xff,0xe7,0x00,0x01,0x02,0x12,0x06,0x52,0x00,0x01,0x04,0xa6,0x05,0x62,0x00,0x01,0x02,0x12,0xff,0xe7,0x00,0x01,0x02,0xfa,0x06,0xd6, -0x00,0x01,0x05,0x96,0x06,0x83,0x00,0x01,0x02,0xfa,0xff,0xe7,0x00,0x01,0x02,0x3c,0x05,0x46,0x00,0x01,0x04,0x5a,0x05,0x25,0x00,0x01,0x02,0xce,0x06,0x3a,0x00,0x01,0x05,0x4c,0x05,0x4a,0x00,0x01,0x03,0x2a,0x06,0x3a,0x00,0x01,0x05,0x9e,0x05,0x4a,0x00,0x01,0x03,0x2a,0xff,0xf1,0x00,0x01,0x02,0x4a,0x06,0x3a,0x00,0x01,0x04,0x44, -0x05,0xea,0x00,0x01,0x02,0x4a,0xff,0xe7,0x00,0x01,0x04,0xb4,0x06,0x3c,0x00,0x01,0x02,0x5e,0x04,0xb8,0x00,0x01,0x04,0x6c,0x03,0xc8,0x00,0x01,0x02,0x5e,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x06,0x3a,0x00,0x01,0x03,0xbe,0x05,0xea,0x00,0x01,0x02,0x58,0x06,0x52,0x00,0x01,0x04,0x04,0x05,0xb2,0x00,0x01,0x02,0x44,0x06,0x3a,0x00,0x01, -0x03,0xe8,0x05,0xea,0x00,0x01,0x01,0x2c,0xfe,0x84,0x00,0x01,0x03,0x20,0x06,0xd6,0x00,0x01,0x05,0xd9,0x06,0x83,0x00,0x01,0x02,0x7c,0x06,0x3a,0x00,0x01,0x05,0x48,0x05,0xea,0x00,0x01,0x02,0x7c,0xfe,0x2a,0x00,0x01,0x03,0x7f,0x06,0x8c,0x00,0x01,0x06,0xae,0x05,0x4c,0x00,0x01,0x03,0x7f,0xff,0xe7,0x00,0x01,0x01,0x36,0x06,0x72, -0x00,0x01,0x01,0xfe,0x05,0xea,0x00,0x01,0x01,0x1d,0x06,0x3a,0x00,0x01,0x02,0x3a,0x05,0xea,0x00,0x01,0x02,0x52,0x06,0x52,0x00,0x01,0x04,0xf4,0x06,0x02,0x00,0x01,0x02,0x52,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0xa2,0x00,0x01,0x03,0xfc,0x06,0xa2,0x00,0x01,0x01,0xfe,0xff,0xf1,0x00,0x01,0x00,0xf8,0x06,0x8c,0x00,0x01,0x01,0xa0, -0x06,0x3c,0x00,0x01,0x00,0xf8,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0x8e,0x00,0x01,0x03,0xac,0x05,0x4e,0x00,0x01,0x03,0x91,0x06,0x3a,0x00,0x01,0x06,0xd3,0x05,0xea,0x00,0x01,0x03,0x91,0xff,0xe7,0x00,0x01,0x02,0xfe,0x06,0x3a,0x00,0x01,0x05,0xac,0x05,0xea,0x00,0x01,0x03,0x97,0xff,0xf1,0x00,0x01,0x02,0x4d,0x04,0xb8,0x00,0x01, -0x04,0x4a,0x04,0x18,0x00,0x01,0x02,0x4d,0xfe,0x70,0x00,0x01,0x03,0x04,0x06,0x52,0x00,0x01,0x05,0xb8,0x05,0x62,0x00,0x01,0x03,0x04,0xff,0xe7,0x00,0x01,0x03,0xe0,0x06,0x52,0x00,0x01,0x07,0x48,0x06,0x02,0x00,0x01,0x03,0xe0,0xff,0xe7,0x00,0x01,0x03,0x29,0x04,0xb8,0x00,0x01,0x06,0x02,0x04,0x68,0x00,0x01,0x03,0x29,0xff,0xe7, -0x00,0x01,0x02,0x67,0x06,0x3a,0x00,0x01,0x04,0x7f,0x05,0x9a,0x00,0x01,0x02,0x67,0xff,0xf1,0x00,0x01,0x02,0x5a,0x06,0xa2,0x00,0x01,0x04,0x64,0x05,0x62,0x00,0x01,0x02,0x4e,0x06,0x3a,0x00,0x01,0x04,0x4c,0x04,0xfa,0x00,0x01,0x02,0x4e,0xff,0x51,0x00,0x01,0x02,0x10,0x06,0x3a,0x00,0x01,0x03,0xd1,0x05,0xea,0x00,0x01,0x02,0x10, -0xff,0xf1,0x00,0x01,0x00,0xaa,0x06,0xa2,0x00,0x01,0x02,0x0e,0x05,0xb2,0x00,0x01,0x01,0x6b,0xfe,0x2a,0x00,0x01,0x01,0x5c,0x05,0xcf,0x00,0x01,0x02,0xb8,0x05,0x2f,0x00,0x01,0x01,0x5c,0xfe,0x84,0x00,0x01,0x02,0x19,0x06,0x3a,0x00,0x01,0x04,0x33,0x05,0xea,0x00,0x01,0x02,0x19,0xff,0xf1,0x00,0x01,0x01,0x5c,0x06,0xa2,0x00,0x01, -0x03,0x08,0x06,0x52,0x00,0x01,0x01,0x5c,0xff,0xe7,0x00,0x01,0x02,0x19,0xfe,0x84,0x00,0x01,0x03,0x05,0x06,0x3a,0x00,0x01,0x06,0x0a,0x05,0xea,0x00,0x01,0x03,0x05,0xff,0xe7,0x00,0x01,0x02,0xd9,0x06,0x52,0x00,0x01,0x05,0x12,0x06,0x02,0x00,0x01,0x02,0xd9,0xff,0xe7,0x00,0x01,0x02,0x81,0x06,0x52,0x00,0x01,0x04,0xde,0x06,0x02, -0x00,0x01,0x02,0x81,0xff,0xf1,0x00,0x01,0x02,0x7b,0x05,0x14,0x00,0x01,0x04,0xc3,0x04,0x18,0x00,0x01,0x02,0x7b,0xfe,0x2a,0x00,0x01,0x02,0xee,0xfe,0x2a,0x00,0x01,0x02,0x28,0x06,0x3a,0x00,0x01,0x03,0xb0,0x06,0x3a,0x00,0x01,0x02,0x28,0xff,0xe7,0x00,0x01,0x01,0x85,0x04,0xa0,0x00,0x01,0x02,0xba,0x04,0xa0,0x00,0x01,0x01,0x85, -0xff,0xe7,0x00,0x01,0x02,0x2f,0x04,0xb8,0x00,0x01,0x04,0x5e,0x04,0x18,0x00,0x01,0x01,0x4b,0xfe,0x2a,0x00,0x01,0x07,0xbc,0x07,0xb0,0x00,0x01,0x09,0xe8,0x06,0xa4,0x00,0x01,0x07,0xbc,0xff,0xf1,0x00,0x01,0x07,0x6c,0x06,0x54,0x00,0x01,0x09,0x1c,0x05,0x50,0x00,0x01,0x07,0x6c,0xff,0xf1,0x00,0x01,0x06,0x86,0x06,0x54,0x00,0x01, -0x08,0x33,0x05,0x50,0x00,0x01,0x06,0x86,0xff,0xf1,0x00,0x01,0x05,0xd2,0x06,0x3a,0x00,0x01,0x06,0x89,0x05,0xdc,0x00,0x01,0x05,0x7b,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x79,0x00,0x01,0x05,0x72,0x06,0x0e,0x00,0x01,0x04,0x6e,0xfe,0x2a,0x00,0x01,0x03,0x0c,0x06,0x8c,0x00,0x01,0x03,0xb1,0x06,0x0e,0x00,0x01,0x02,0xa8,0xfe,0x2a, -0x00,0x01,0x07,0x8f,0x06,0x3a,0x00,0x01,0x08,0x44,0x05,0xdc,0x00,0x01,0x07,0x40,0xff,0xe7,0x00,0x01,0x06,0xc2,0x06,0x79,0x00,0x01,0x07,0x6e,0x06,0x0e,0x00,0x01,0x06,0x72,0xfe,0x2a,0x00,0x01,0x05,0x78,0x06,0x79,0x00,0x01,0x06,0x27,0x06,0x0e,0x00,0x01,0x05,0x23,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x06,0x54,0x00,0x01,0x01,0xfe, -0xff,0xe7,0x00,0x01,0x02,0x44,0x05,0x82,0x00,0x01,0x02,0xc6,0x07,0xb0,0x00,0x01,0x02,0xc6,0xff,0xe7,0x00,0x01,0x04,0x92,0x07,0x30,0x00,0x01,0x06,0x92,0x06,0x7c,0x00,0x01,0x04,0x92,0xff,0xf1,0x00,0x01,0x03,0x50,0x06,0x04,0x00,0x01,0x06,0x50,0x05,0x50,0x00,0x01,0x03,0x50,0xff,0xe7,0x00,0x01,0x02,0xda,0x07,0xb0,0x00,0x01, -0x02,0xda,0xff,0xe7,0x00,0x01,0x01,0xfe,0x07,0xb2,0x00,0x01,0x03,0x02,0xfe,0x70,0x00,0x01,0x02,0x58,0xfe,0x70,0x00,0x01,0x02,0x08,0x07,0xb0,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x01,0x7c,0xfe,0x2a,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x07,0xda,0x06,0xe0,0x00,0x01,0x09,0xe8,0x05,0xdc,0x00,0x01,0x07,0xda,0xff,0xf1, -0x00,0x01,0x07,0x6c,0x05,0xb4,0x00,0x01,0x09,0x1c,0x04,0xb0,0x00,0x01,0x06,0x86,0x05,0xb4,0x00,0x01,0x08,0x33,0x04,0xb0,0x00,0x01,0x07,0xae,0x05,0xdc,0x00,0x01,0x02,0xc1,0x06,0x52,0x00,0x01,0x05,0x83,0x05,0xb2,0x00,0x01,0x01,0x62,0xfe,0x2a,0x00,0x01,0x04,0x83,0x06,0xa4,0x00,0x01,0x04,0x4c,0x06,0xa4,0x00,0x01,0x02,0x30, -0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x50,0x00,0x01,0x01,0xb8,0x06,0x54,0x00,0x01,0x01,0xb8,0x06,0x52,0x00,0x01,0x03,0xb8,0x05,0x62,0x00,0x01,0x01,0xb8,0xfe,0x2a,0x00,0x01,0x01,0x90,0x04,0xb8,0x00,0x01,0x03,0x20,0x03,0xc8,0x00,0x01,0x01,0x90,0xfe,0x2a,0x00,0x01,0x04,0x1a,0x06,0xa4,0x00,0x01,0x02,0xef,0x06,0x52,0x00,0x01, -0x05,0x3f,0x05,0xb2,0x00,0x01,0x02,0xef,0xfe,0x2a,0x00,0x01,0x02,0x5c,0x06,0x3a,0x00,0x01,0x04,0x68,0x05,0x9a,0x00,0x01,0x02,0x5c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x8c,0x00,0x01,0x04,0x39,0x05,0xec,0x00,0x01,0x02,0x48,0xff,0x24,0x00,0x01,0x01,0xcf,0xff,0x24,0x00,0x01,0x02,0x05,0x04,0xb8,0x00,0x01,0x03,0xba,0x03,0xc8, -0x00,0x01,0x02,0x05,0xff,0xe7,0x00,0x01,0x02,0x79,0x04,0xb8,0x00,0x01,0x04,0xa2,0x04,0x68,0x00,0x01,0x02,0x79,0xff,0xe7,0x00,0x01,0x04,0xa2,0x04,0x18,0x00,0x01,0x02,0x5b,0x06,0xa2,0x00,0x01,0x04,0x66,0x05,0xaa,0x00,0x01,0x02,0x5b,0xff,0xe7,0x00,0x01,0x01,0xab,0x04,0xb8,0x00,0x01,0x03,0x6a,0x03,0xc8,0x00,0x01,0x01,0xab, -0xff,0xe7,0x00,0x01,0x02,0x08,0x04,0xb8,0x00,0x01,0x02,0x08,0xff,0x51,0x00,0x01,0x02,0x5b,0x06,0x8c,0x00,0x01,0x04,0x66,0x05,0xec,0x00,0x01,0x02,0x5b,0xfe,0x2a,0x00,0x01,0x05,0x56,0x06,0x52,0x00,0x01,0x02,0x17,0x04,0xb8,0x00,0x01,0x02,0x17,0xff,0xe7,0x00,0x01,0x01,0xf5,0x04,0xb8,0x00,0x01,0x04,0x96,0x03,0xc8,0x00,0x01, -0x01,0xf5,0xff,0xe7,0x00,0x01,0x01,0xbb,0x04,0xb8,0x00,0x01,0x02,0xfe,0x03,0xc8,0x00,0x01,0x01,0xbb,0xff,0xe7,0x00,0x01,0x01,0x93,0x04,0xb8,0x00,0x01,0x01,0x93,0xff,0xe7,0x00,0x01,0x03,0xa0,0x03,0xc8,0x00,0x01,0x02,0x34,0x04,0xb8,0x00,0x01,0x04,0x18,0x03,0xc8,0x00,0x01,0x02,0x34,0xff,0xe7,0x00,0x01,0x01,0x1c,0x04,0xa0, -0x00,0x01,0x02,0x38,0x04,0x50,0x00,0x01,0x01,0x1c,0xfe,0x2a,0x00,0x01,0x02,0x5b,0x06,0x72,0x00,0x01,0x02,0x1e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0x18,0x00,0x01,0x02,0x1e,0xff,0xe7,0x00,0x01,0x01,0xea,0x04,0xa0,0x00,0x01,0x03,0xd5,0x04,0x50,0x00,0x01,0x01,0xea,0xfe,0x2a,0x00,0x01,0x01,0xd4,0x04,0xb8,0x00,0x01,0x03,0xa8, -0x04,0x68,0x00,0x01,0x01,0xd4,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xe2,0x00,0x01,0x04,0x37,0x04,0x50,0x00,0x01,0x02,0x43,0xfe,0x2a,0x00,0x01,0x02,0x43,0x06,0xa2,0x00,0x01,0x04,0x1a,0x05,0x78,0x00,0x01,0x01,0x0c,0x06,0x29,0x00,0x01,0x01,0xc8,0x05,0x89,0x00,0x01,0x01,0x0c,0xff,0xf1,0x00,0x01,0x00,0xe1,0x04,0xa0,0x00,0x01, -0x01,0xea,0x04,0x50,0x00,0x01,0x01,0x40,0x04,0xa0,0x00,0x01,0x02,0x90,0x04,0x50,0x00,0x01,0x01,0x40,0xff,0xf1,0x00,0x01,0x01,0x18,0x06,0x8c,0x00,0x01,0x02,0x3e,0x05,0x9c,0x00,0x01,0x01,0x18,0xff,0xf1,0x00,0x01,0x01,0x9a,0x06,0x8c,0x00,0x01,0x03,0x02,0x05,0x9c,0x00,0x01,0x01,0x9a,0xff,0xf1,0x00,0x01,0x00,0xf7,0x06,0x8c, -0x00,0x01,0x01,0xee,0x05,0x9c,0x00,0x01,0x01,0x3f,0xfe,0x2a,0x00,0x01,0x02,0xf8,0x06,0x72,0x00,0x01,0x04,0xd3,0x04,0xb0,0x00,0x01,0x02,0xf8,0xfe,0x2a,0x00,0x01,0x03,0x7a,0x04,0xa0,0x00,0x01,0x06,0x94,0x04,0x50,0x00,0x01,0x03,0x7a,0xfe,0x2a,0x00,0x01,0x02,0x11,0xff,0xf1,0x00,0x01,0x02,0x58,0x04,0xa0,0x00,0x01,0x04,0x60, -0x04,0x50,0x00,0x01,0x02,0x58,0x04,0xb8,0x00,0x01,0x04,0x60,0x03,0xc8,0x00,0x01,0x03,0x6b,0x04,0xb6,0x00,0x01,0x05,0x96,0x04,0x66,0x00,0x01,0x03,0x6b,0xff,0xe7,0x00,0x01,0x02,0xdf,0x04,0xb8,0x00,0x01,0x05,0x74,0x03,0xc8,0x00,0x01,0x02,0xdf,0xff,0xe7,0x00,0x01,0x02,0x8d,0x06,0x8c,0x00,0x01,0x04,0xca,0x05,0x4c,0x00,0x01, -0x02,0x8d,0xfe,0x2a,0x00,0x01,0x01,0xd1,0x04,0xa0,0x00,0x01,0x02,0x78,0x04,0x50,0x00,0x01,0x01,0x64,0xff,0xe7,0x00,0x01,0x01,0xd1,0x06,0x8c,0x00,0x01,0x02,0x78,0x06,0x3c,0x00,0x01,0x01,0x64,0xfe,0x2a,0x00,0x01,0x01,0xcc,0x04,0xb2,0x00,0x01,0x01,0x86,0x04,0xb8,0x00,0x01,0x02,0xfe,0x04,0x68,0x00,0x01,0x00,0xe1,0xff,0xf1, -0x00,0x01,0x01,0x18,0x04,0xb8,0x00,0x01,0x02,0x5e,0x04,0x18,0x00,0x01,0x01,0xcc,0xff,0xf1,0x00,0x01,0x01,0xef,0x04,0xa0,0x00,0x01,0x03,0xa2,0x04,0x00,0x00,0x01,0x01,0xef,0xff,0xf1,0x00,0x01,0x03,0xa2,0x04,0x50,0x00,0x01,0x01,0xae,0xfe,0xa2,0x00,0x01,0x01,0x4a,0x06,0xa2,0x00,0x01,0x02,0x9a,0x06,0x52,0x00,0x01,0x00,0xb4, -0xfe,0x2a,0x00,0x01,0x01,0x5e,0x06,0xa2,0x00,0x01,0x02,0xb0,0x06,0x52,0x00,0x01,0x00,0xc8,0xfe,0x2a,0x00,0x01,0x00,0xb4,0x06,0xa2,0x00,0x01,0x01,0xfe,0x05,0xb2,0x00,0x01,0x01,0x4a,0xff,0xe7,0x00,0x01,0x01,0x68,0x06,0xa2,0x00,0x01,0x02,0xe4,0x06,0x52,0x00,0x01,0x00,0xdc,0xfe,0x2a,0x00,0x01,0x01,0x2c,0x04,0xb6,0x00,0x01, -0x02,0x68,0x03,0xc6,0x00,0x01,0x01,0x90,0xfe,0xd4,0x00,0x01,0x01,0x80,0xfe,0x2a,0x00,0x01,0x02,0x65,0x04,0xa0,0x00,0x01,0x04,0x7b,0x04,0x50,0x00,0x01,0x02,0x65,0xff,0xe7,0x00,0x01,0x02,0x61,0x04,0xa0,0x00,0x01,0x04,0xc2,0x04,0x50,0x00,0x01,0x02,0x61,0xff,0xe7,0x00,0x01,0x02,0x3b,0x04,0xb8,0x00,0x01,0x04,0x27,0x04,0x68, -0x00,0x01,0x02,0x3b,0xff,0xe7,0x00,0x01,0x01,0xf4,0x04,0xa0,0x00,0x01,0x03,0x35,0x04,0x50,0x00,0x01,0x02,0xe4,0x04,0xa0,0x00,0x01,0x05,0x28,0x04,0x50,0x00,0x01,0x02,0xe4,0xff,0xf1,0x00,0x01,0x01,0xef,0x06,0x8c,0x00,0x01,0x03,0xdf,0x05,0x9c,0x00,0x01,0x01,0xab,0x04,0xa0,0x00,0x01,0x03,0x56,0x04,0x50,0x00,0x01,0x01,0xab, -0xff,0xf1,0x00,0x01,0x01,0xc2,0xfe,0xd4,0x00,0x01,0x02,0x0c,0xff,0x51,0x00,0x01,0x01,0x90,0x05,0x14,0x00,0x01,0x01,0x76,0x06,0xa2,0x00,0x01,0x03,0x3c,0x05,0xb2,0x00,0x01,0x01,0x2c,0xff,0xf1,0x00,0x01,0x02,0xec,0x05,0xb2,0x00,0x01,0x01,0xa4,0xff,0xf1,0x00,0x01,0x02,0x9c,0x05,0x4c,0x00,0x01,0x01,0x58,0xff,0xe7,0x00,0x01, -0x02,0x3a,0x04,0xb8,0x00,0x01,0x03,0xba,0x04,0x68,0x00,0x01,0x02,0x71,0x06,0xa4,0x00,0x01,0x04,0x74,0x05,0xdc,0x00,0x01,0x02,0x71,0xff,0xe7,0x00,0x01,0x03,0x8f,0x04,0x00,0x00,0x01,0x02,0x31,0x04,0xb8,0x00,0x01,0x04,0x12,0x03,0xc8,0x00,0x01,0x02,0x31,0xff,0xe7,0x00,0x01,0x02,0x8a,0x05,0x46,0x00,0x01,0x04,0xdc,0x04,0xe2, -0x00,0x01,0x02,0x8a,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xa0,0x00,0x01,0x01,0x04,0x06,0x79,0x00,0x01,0x01,0x9e,0x05,0x89,0x00,0x01,0x00,0x62,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x04,0xa0,0x00,0x01,0x03,0xac,0x04,0x50,0x00,0x01,0x01,0xfe,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x04,0xa0,0x00,0x01,0x03,0x14,0x03,0xb0,0x00,0x01,0x05,0x56, -0x06,0x02,0x00,0x01,0x05,0xaa,0x06,0x72,0x00,0x01,0x07,0x54,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0xf1,0x00,0x01,0x07,0x98,0x04,0xb0,0x00,0x01,0x05,0xaa,0xfe,0x2a,0x00,0x01,0x07,0x7f,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0x51,0x00,0x01,0x03,0x6f,0x05,0x78,0x00,0x01,0x04,0x98,0x04,0xb0,0x00,0x01,0x03,0x6f,0xff,0xf1,0x00,0x01, -0x02,0xaa,0x06,0x52,0x00,0x01,0x04,0x6f,0x06,0x52,0x00,0x01,0x02,0xaa,0xfe,0x2a,0x00,0x01,0x04,0x05,0x05,0x78,0x00,0x01,0x05,0x6e,0x04,0x8f,0x00,0x01,0x04,0x05,0xff,0xe7,0x00,0x01,0x04,0x70,0x06,0x72,0x00,0x01,0x04,0x70,0xfe,0x2a,0x00,0x01,0x03,0x3f,0x06,0x72,0x00,0x01,0x04,0x54,0x04,0xb0,0x00,0x01,0x03,0x3f,0xff,0xe7, -0x00,0x01,0x02,0xee,0x06,0x72,0x00,0x01,0x04,0x8e,0x04,0xb0,0x00,0x01,0x02,0xee,0xff,0xf1,0x00,0x01,0x02,0x08,0x06,0x3a,0x00,0x01,0x04,0x44,0x05,0x9a,0x00,0x01,0x01,0xfa,0xff,0xf1,0x00,0x01,0x01,0xfa,0x06,0x3a,0x00,0x01,0x00,0xf0,0x05,0x14,0x00,0x01,0x01,0xa4,0x04,0xb0,0x00,0x01,0x01,0x09,0x05,0x14,0x00,0x01,0x02,0x1c, -0x06,0x8c,0x00,0x01,0x04,0x87,0x06,0x8c,0x00,0x01,0x02,0x1c,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x8c,0x00,0x01,0x01,0x96,0x06,0x8c,0x00,0x01,0x02,0x4e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0xb8,0x00,0x01,0x01,0x2c,0x05,0xcf,0x00,0x01,0x01,0xe5,0x05,0x7f,0x00,0x01,0x01,0x2c,0xfe,0x2a,0x00,0x01,0x04,0x6c,0x04,0x68,0x00,0x01, -0x03,0xbd,0x06,0x72,0x00,0x01,0x06,0xba,0x05,0x78,0x00,0x01,0x03,0xbd,0xff,0xe7,0x00,0x01,0x03,0xbd,0x05,0x14,0x00,0x01,0x06,0xba,0x04,0xb0,0x00,0x01,0x03,0xbd,0xfe,0x2a,0x00,0x01,0x02,0x8c,0x06,0x90,0x00,0x01,0x03,0x93,0x06,0x7c,0x00,0x01,0x02,0x9e,0xff,0xa1,0x00,0x01,0x02,0xee,0x06,0x90,0x00,0x01,0x04,0x7c,0x06,0x2c, -0x00,0x01,0x02,0xee,0xff,0x97,0x00,0x01,0x02,0x26,0x05,0xb4,0x00,0x01,0x04,0x52,0x04,0xd1,0x00,0x01,0x02,0x3a,0xff,0x97,0x00,0x01,0x02,0x26,0x06,0x90,0x00,0x01,0x04,0x9c,0x06,0x2c,0x00,0x01,0x02,0x26,0xff,0xa1,0x00,0x01,0x01,0xae,0xfe,0x8e,0x00,0x01,0x01,0xc2,0xfe,0x8e,0x00,0x01,0x02,0x0b,0x06,0x7a,0x00,0x01,0x03,0xc6, -0x06,0x02,0x00,0x01,0x01,0x9b,0x05,0x14,0x00,0x01,0x02,0xd6,0x04,0xb0,0x00,0x01,0x00,0xe6,0xff,0xf1,0x00,0x01,0x02,0x5b,0x04,0xb8,0x00,0x01,0x04,0xb6,0x04,0x18,0x00,0x01,0x01,0xd8,0x06,0x3a,0x00,0x01,0x03,0xb1,0x05,0x9a,0x00,0x01,0x01,0xd8,0xff,0xf1,0x00,0x01,0x02,0x4f,0x04,0xa0,0x00,0x01,0x04,0x9f,0x04,0x50,0x00,0x01, -0x02,0x4f,0xfe,0x2a,0x00,0x01,0x05,0x11,0x06,0xc2,0x00,0x01,0x06,0x83,0x05,0x78,0x00,0x01,0x05,0x11,0xff,0xf1,0x00,0x01,0x01,0x48,0x04,0xa0,0x00,0x01,0x01,0x48,0xff,0xf1,0x00,0x01,0x01,0xa4,0x04,0xa0,0x00,0x01,0x02,0x23,0x04,0xa0,0x00,0x01,0x03,0xf6,0x04,0x50,0x00,0x01,0x02,0x23,0xff,0xe7,0x00,0x01,0x02,0x6c,0xfe,0xa2, -0x00,0x01,0x02,0x1c,0xfe,0xa2,0x00,0x01,0x01,0x36,0xfe,0xa2,0x00,0x01,0x02,0x4e,0xfe,0xa2,0x00,0x01,0x03,0x7a,0xfe,0xa2,0x00,0x01,0x01,0xf4,0xfe,0xa2,0x00,0x01,0x01,0xd6,0xfe,0xa2,0x00,0x01,0x01,0xc2,0xfe,0xa2,0x00,0x01,0x01,0xbb,0xfe,0xa2,0x00,0x01,0x01,0x93,0xfe,0xa2,0x00,0x01,0x01,0xdd,0x05,0x14,0x00,0x01,0x01,0xdd, -0xfe,0xa2,0x00,0x01,0x01,0xc4,0x04,0xa0,0x00,0x01,0x03,0x89,0x04,0x50,0x00,0x01,0x01,0xc4,0xfe,0x2a,0x00,0x01,0x02,0x60,0x04,0xee,0x00,0x01,0x04,0x71,0x04,0x4e,0x00,0x01,0x02,0x60,0xff,0xe7,0x00,0x01,0x01,0x7a,0x05,0xd0,0x00,0x01,0x02,0xa4,0x05,0x30,0x00,0x01,0x02,0x58,0xff,0x6a,0x00,0x01,0x02,0x3a,0x05,0x8d,0x00,0x01, -0x04,0x2f,0x05,0x00,0x00,0x01,0x03,0x00,0x06,0x52,0x00,0x01,0x05,0x4d,0x06,0x02,0x00,0x01,0x03,0x00,0xff,0x06,0x00,0x01,0x02,0x5b,0x05,0x14,0x00,0x01,0x04,0x34,0x04,0x68,0x00,0x01,0x02,0x5b,0xff,0x06,0x00,0x01,0x01,0xce,0x04,0xa1,0x00,0x01,0x03,0x20,0x04,0xa1,0x00,0x01,0x01,0xce,0xff,0xf1,0x00,0x01,0x01,0x22,0x06,0x72, -0x00,0x01,0x01,0x22,0xff,0xf1,0x00,0x01,0x02,0x9e,0xfe,0x8e,0x00,0x01,0x02,0x08,0x05,0x8d,0x00,0x01,0x03,0x9a,0x05,0x00,0x00,0x01,0x01,0x2c,0x05,0xea,0x00,0x01,0x02,0x66,0x05,0xc8,0x00,0x01,0x01,0x80,0xff,0x06,0x00,0x01,0x04,0x4c,0x04,0xb0,0x00,0x01,0x02,0xcc,0x04,0xb8,0x00,0x01,0x04,0xb0,0x04,0xb0,0x00,0x01,0x02,0xcc, -0xff,0xe7,0x00,0x01,0x01,0x18,0x04,0xba,0x00,0x01,0x01,0x04,0x04,0xba,0x00,0x01,0x00,0x00,0x04,0xba,0x00,0x01,0xff,0xf6,0x04,0xb0,0x00,0x01,0x02,0x26,0x07,0x33,0x00,0x01,0x02,0x58,0x07,0x62,0x00,0x01,0x02,0x76,0x07,0xa8,0x00,0x01,0x02,0x94,0x06,0x3a,0x00,0x01,0x02,0x06,0x06,0x3a,0x00,0x01,0x02,0xff,0x06,0x3a,0x00,0x01, -0x02,0xee,0x07,0x4a,0x00,0x01,0x03,0x0c,0x07,0xa8,0x00,0x01,0x03,0x04,0x06,0x6a,0x00,0x01,0x03,0x04,0x06,0x3a,0x00,0x01,0x02,0x40,0x06,0x52,0x00,0x01,0x02,0x40,0x06,0x3a,0x00,0x01,0x03,0x22,0x06,0x3a,0x00,0x01,0x02,0x77,0x06,0x6a,0x00,0x01,0x02,0x58,0x06,0x3a,0x00,0x01,0x04,0x13,0x06,0x6a,0x00,0x01,0x03,0xd4,0x06,0x3a, -0x00,0x01,0x02,0x09,0x04,0xd0,0x00,0x01,0x02,0x08,0x04,0xd0,0x00,0x01,0x02,0x17,0x04,0xd0,0x00,0x01,0x02,0x53,0x04,0xa0,0x00,0x01,0x02,0x53,0x04,0xd0,0x00,0x01,0x02,0x3f,0x05,0xee,0x00,0x01,0x02,0x58,0x06,0x5e,0x00,0x01,0x02,0x58,0x04,0xd0,0x00,0x01,0x01,0xef,0x05,0x4a,0x00,0x01,0x01,0xef,0x04,0xd0,0x00,0x01,0x02,0xd6, -0x04,0xa0,0x00,0x01,0x02,0xd0,0x04,0xd0,0x00,0x01,0x01,0xd9,0x04,0xd0,0x00,0x01,0x03,0x40,0x04,0xd0,0x00,0x01,0x03,0x20,0x04,0xd0,0x00,0x01,0x02,0x03,0x04,0xa0,0x00,0x01,0x02,0x03,0x04,0xd0,0x00,0x01,0x02,0x17,0x05,0x9f,0x00,0x01,0x02,0x17,0x06,0x2c,0x00,0x01,0x01,0xdc,0x06,0x19,0x00,0x01,0x01,0xf4,0x06,0x5e,0x00,0x01, -0x02,0xe2,0x06,0x6a,0x00,0x01,0x02,0xe2,0x06,0x3a,0x00,0x01,0x00,0xc8,0x02,0xf8,0x00,0x01,0x03,0x0c,0x05,0x9a,0x00,0x01,0x03,0xc0,0x05,0x22,0x00,0x01,0x04,0x8e,0x05,0x82,0x00,0x01,0x04,0xaf,0x05,0x07,0x00,0x01,0x03,0x94,0x05,0x9a,0x00,0x01,0x03,0x9d,0x05,0x9a,0x00,0x01,0x04,0xcf,0x05,0x40,0x00,0x01,0x04,0xf7,0x05,0x9a, -0x00,0x01,0x01,0xe0,0x05,0x9a,0x00,0x01,0x02,0x2d,0x05,0xa0,0x00,0x01,0x04,0x2c,0x05,0x9a,0x00,0x01,0x01,0x6a,0x05,0x9a,0x00,0x01,0x06,0x6d,0x05,0x9a,0x00,0x01,0x05,0x45,0x05,0x9a,0x00,0x01,0x05,0x51,0x04,0x94,0x00,0x01,0x04,0x03,0x05,0x22,0x00,0x01,0x03,0xf7,0x05,0x22,0x00,0x01,0x03,0xad,0x05,0x82,0x00,0x01,0x04,0x01, -0x05,0x9a,0x00,0x01,0x04,0xd1,0x05,0xa0,0x00,0x01,0x04,0xd1,0x05,0x9a,0x00,0x01,0x07,0x47,0x05,0x9a,0x00,0x01,0x04,0x38,0x05,0x9a,0x00,0x01,0x04,0x4c,0x05,0x9a,0x00,0x01,0x03,0x70,0x03,0x8e,0x00,0x01,0x04,0x0f,0x03,0x92,0x00,0x01,0x03,0x5d,0x03,0xdf,0x00,0x01,0x04,0x08,0x05,0xe9,0x00,0x01,0x03,0x98,0x03,0x8e,0x00,0x01, -0x02,0xa2,0x05,0xf0,0x00,0x01,0x04,0x08,0x03,0xff,0x00,0x01,0x03,0xe2,0x03,0x35,0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4b,0x03,0xf8,0x00,0x01,0x03,0x82,0x04,0x02,0x00,0x01,0x01,0x40,0x05,0xe9,0x00,0x01,0x06,0x40,0x03,0xa0,0x00,0x01,0x03,0xd4,0x03,0xa0,0x00,0x01,0x03,0xfc,0x03,0x8e,0x00,0x01,0x03,0xfc,0x03,0xaf, -0x00,0x01,0x04,0x08,0x04,0x03,0x00,0x01,0x02,0xb3,0x04,0x06,0x00,0x01,0x02,0xe4,0x03,0xfc,0x00,0x01,0x02,0x74,0x03,0xfe,0x00,0x01,0x03,0xde,0x03,0xfc,0x00,0x01,0x03,0xc1,0x04,0x00,0x00,0x01,0x05,0xa0,0x04,0x00,0x00,0x01,0x03,0x66,0x04,0x00,0x00,0x01,0x03,0xc0,0x03,0xfc,0x00,0x01,0x03,0x52,0x04,0x00,0x00,0x01,0x06,0x30, -0x03,0x8e,0x00,0x01,0x04,0x3e,0x03,0x07,0x00,0x01,0x06,0xf4,0x03,0x8e,0x00,0x01,0x01,0x40,0x04,0x06,0x00,0x01,0x03,0x84,0x03,0xb8,0x00,0x01,0x03,0x6e,0x04,0x0c,0x00,0x01,0x04,0x9e,0x04,0x0c,0x00,0x01,0x03,0xd8,0x03,0xf1,0x00,0x01,0x02,0xf1,0x03,0xb8,0x00,0x01,0x03,0x42,0x03,0xe8,0x00,0x01,0x02,0xd6,0x03,0xfc,0x00,0x01, -0x02,0x80,0x03,0xfc,0x00,0x01,0x03,0xde,0x03,0xb8,0x00,0x01,0x03,0x9c,0x04,0x1a,0x00,0x01,0x01,0x61,0x03,0xfc,0x00,0x01,0x02,0x33,0x04,0x00,0x00,0x01,0x05,0x39,0x04,0x08,0x00,0x01,0x04,0x02,0x03,0xfc,0x00,0x01,0x04,0x5c,0x04,0x0f,0x00,0x01,0x02,0x56,0x03,0xfd,0x00,0x01,0x00,0x00,0x02,0x21,0x00,0x01,0x00,0x00,0x02,0x12, -0x00,0x01,0x00,0x00,0x02,0x58,0x00,0x01,0x02,0x94,0x02,0xcd,0x00,0x01,0x02,0x4b,0x02,0xcd,0x00,0x01,0x02,0xde,0x02,0xe5,0x00,0x01,0x02,0xee,0x02,0xcd,0x00,0x01,0x02,0x06,0x02,0xcd,0x00,0x01,0x01,0xf4,0x02,0xcd,0x00,0x01,0x02,0xbe,0x02,0xe5,0x00,0x01,0x02,0xd7,0x02,0xcd,0x00,0x01,0x01,0x10,0x02,0xcd,0x00,0x01,0x01,0xd1, -0x02,0xd9,0x00,0x01,0x00,0xed,0x03,0xeb,0x00,0x01,0x01,0x0e,0x02,0xcd,0x00,0x01,0x03,0xa2,0x03,0x42,0x00,0x01,0x02,0xfe,0x02,0xcd,0x00,0x01,0x03,0x04,0x02,0xe5,0x00,0x01,0x02,0x64,0x03,0xeb,0x00,0x01,0x03,0x04,0x02,0xe2,0x00,0x01,0x02,0x20,0x02,0xe5,0x00,0x01,0x02,0x18,0x02,0xcd,0x00,0x01,0x02,0xbf,0x02,0xd9,0x00,0x01, -0x02,0x7c,0x02,0xcd,0x00,0x01,0x03,0xbc,0x02,0xcd,0x00,0x01,0x02,0x5c,0x02,0xcd,0x00,0x01,0x02,0x36,0x01,0xae,0x00,0x01,0x02,0x48,0x02,0xcd,0x00,0x01,0x02,0x09,0x01,0x41,0x00,0x01,0x02,0x80,0x01,0xce,0x00,0x01,0x02,0x3d,0x02,0x18,0x00,0x01,0x02,0x44,0x02,0x1b,0x00,0x01,0x02,0x35,0x02,0x58,0x00,0x01,0x01,0x40,0x02,0x67, -0x00,0x01,0x02,0x37,0x01,0xfc,0x00,0x01,0x01,0x01,0x04,0x71,0x00,0x01,0x01,0x03,0x02,0x26,0x00,0x01,0x00,0xf8,0x01,0xef,0x00,0x01,0x00,0xfa,0x04,0x25,0x00,0x01,0x00,0xfa,0x02,0xf9,0x00,0x01,0x03,0x72,0x02,0x0c,0x00,0x01,0x02,0x4c,0x02,0x0c,0x00,0x01,0x02,0x53,0x02,0x18,0x00,0x01,0x02,0x7c,0x01,0xef,0x00,0x01,0x02,0x3d, -0x02,0x13,0x00,0x01,0x01,0x01,0x01,0xe5,0x00,0x01,0x01,0xb2,0x02,0x18,0x00,0x01,0x01,0x2c,0x02,0x1b,0x00,0x01,0x02,0x39,0x02,0x0c,0x00,0x01,0x02,0x17,0x02,0x6c,0x00,0x01,0x02,0xe4,0x02,0x00,0x00,0x01,0x01,0xd6,0x02,0x00,0x00,0x01,0x01,0xef,0x02,0x5a,0x00,0x01,0x01,0xcf,0x02,0x00,0x00,0x01,0x02,0x58,0x01,0xd7,0x00,0x01, -0x03,0x04,0x02,0xff,0x00,0x01,0x01,0xb2,0x01,0xd7,0x00,0x01,0x01,0x9d,0x01,0xd0,0x00,0x01,0x02,0x3c,0x01,0xcf,0x00,0x01,0x00,0xe5,0x02,0x0c,0x00,0x01,0x00,0xfd,0x03,0x28,0x00,0x01,0x02,0xf6,0x00,0x6f,0x00,0x01,0x00,0x00,0x05,0xc8,0x00,0x01,0x00,0x00,0x05,0xbe,0x00,0x01,0x00,0x00,0xff,0x6a,0x00,0x01,0x05,0x12,0x07,0x6c, -0x00,0x01,0x05,0x12,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x07,0x6c,0x00,0x01,0x04,0x2f,0xfe,0x5c,0x00,0x01,0x04,0x8c,0x07,0x6c,0x00,0x01,0x04,0x8c,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x07,0x6c,0x00,0x01,0x05,0x3e,0xfe,0x5c,0x00,0x01,0x03,0xb4,0x07,0x6c,0x00,0x01,0x03,0xb4,0xfe,0x5c,0x00,0x01,0x03,0x94,0x07,0x6c,0x00,0x01,0x03,0x94, -0xfe,0x5c,0x00,0x01,0x04,0xec,0x07,0x6c,0x00,0x01,0x04,0xec,0xfe,0x5c,0x00,0x01,0x04,0xf2,0x07,0x6c,0x00,0x01,0x04,0xf2,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x07,0x6c,0x00,0x01,0x01,0xf0,0xfe,0x5c,0x00,0x01,0x02,0x2b,0x07,0x6c,0x00,0x01,0x02,0x2b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x07,0x6c,0x00,0x01,0x04,0xa2,0xfe,0x5c,0x00,0x01, -0x03,0xa4,0x07,0x6c,0x00,0x01,0x03,0xa4,0xfe,0x5c,0x00,0x01,0x06,0x72,0x07,0x6c,0x00,0x01,0x06,0x72,0xfe,0x5c,0x00,0x01,0x05,0x40,0x07,0x6c,0x00,0x01,0x05,0x40,0xfe,0x5c,0x00,0x01,0x05,0xaa,0x07,0x6c,0x00,0x01,0x05,0xaa,0xfe,0x5c,0x00,0x01,0x04,0x29,0x07,0x6c,0x00,0x01,0x04,0x29,0xfe,0x5c,0x00,0x01,0x05,0xcc,0x07,0x6c, -0x00,0x01,0x05,0xcc,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x07,0x6c,0x00,0x01,0x04,0xc0,0xfe,0x5c,0x00,0x01,0x03,0xde,0x07,0x6c,0x00,0x01,0x03,0xde,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x07,0x6c,0x00,0x01,0x04,0x0c,0xfe,0x5c,0x00,0x01,0x04,0xd5,0x07,0x6c,0x00,0x01,0x04,0xd5,0xfe,0x5c,0x00,0x01,0x04,0xe6,0x07,0x6c,0x00,0x01,0x04,0xe6, -0xfe,0x5c,0x00,0x01,0x07,0x60,0x07,0x6c,0x00,0x01,0x07,0x60,0xfe,0x5c,0x00,0x01,0x04,0x9a,0x07,0x6c,0x00,0x01,0x04,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x60,0x07,0x6c,0x00,0x01,0x04,0x60,0xfe,0x5c,0x00,0x01,0x04,0x64,0x07,0x6c,0x00,0x01,0x04,0x64,0xfe,0x5c,0x00,0x01,0x03,0x83,0x07,0x6c,0x00,0x01,0x03,0x83,0xfe,0x5c,0x00,0x01, -0x04,0x54,0x07,0x6c,0x00,0x01,0x04,0x54,0xfe,0x5c,0x00,0x01,0x03,0x62,0x07,0x6c,0x00,0x01,0x03,0x62,0xfe,0x5c,0x00,0x01,0x04,0x10,0x07,0x6c,0x00,0x01,0x04,0x10,0xfe,0x5c,0x00,0x01,0x03,0xdd,0x07,0x6c,0x00,0x01,0x03,0xdd,0xfe,0x5c,0x00,0x01,0x02,0xa0,0x07,0x6c,0x00,0x01,0x02,0xa0,0xfe,0x5c,0x00,0x01,0x03,0xf8,0x07,0x6c, -0x00,0x01,0x03,0xf8,0xfe,0x5c,0x00,0x01,0x01,0x66,0x07,0x6c,0x00,0x01,0x01,0x66,0xfe,0x5c,0x00,0x01,0x01,0x4a,0x07,0x6c,0x00,0x01,0x01,0x4a,0xfe,0x5c,0x00,0x01,0x06,0x54,0x07,0x6c,0x00,0x01,0x06,0x54,0xfe,0x5c,0x00,0x01,0x04,0x50,0x07,0x6c,0x00,0x01,0x04,0x50,0xfe,0x5c,0x00,0x01,0x02,0xbc,0x07,0x6c,0x00,0x01,0x02,0xbc, -0xfe,0x5c,0x00,0x01,0x03,0x0f,0x07,0x6c,0x00,0x01,0x03,0x0f,0xfe,0x5c,0x00,0x01,0x02,0x81,0x07,0x6c,0x00,0x01,0x02,0x81,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x07,0x6c,0x00,0x01,0x03,0xe2,0xfe,0x5c,0x00,0x01,0x03,0xcb,0x07,0x6c,0x00,0x01,0x03,0xcb,0xfe,0x5c,0x00,0x01,0x05,0xb0,0x07,0x6c,0x00,0x01,0x05,0xb0,0xfe,0x5c,0x00,0x01, -0x03,0x92,0x07,0x6c,0x00,0x01,0x03,0x92,0xfe,0x5c,0x00,0x01,0x03,0xd5,0x07,0x6c,0x00,0x01,0x03,0xd5,0xfe,0x5c,0x00,0x01,0x03,0x70,0x07,0x6c,0x00,0x01,0x03,0x70,0xfe,0x5c,0x00,0x01,0x05,0x12,0x08,0x34,0x00,0x01,0x05,0x40,0x08,0x34,0x00,0x01,0x05,0xaa,0x08,0x34,0x00,0x01,0x04,0xd5,0x08,0x34,0x00,0x01,0x01,0xdd,0x07,0x6c, -0x00,0x01,0x01,0xdd,0xfe,0x5c,0x00,0x01,0x01,0x71,0x07,0x6c,0x00,0x01,0x01,0x71,0xfe,0x5c,0x00,0x01,0x02,0x07,0x07,0x6c,0x00,0x01,0x02,0x07,0xfe,0x5c,0x00,0x01,0x02,0x10,0x07,0x6c,0x00,0x01,0x02,0x10,0xfe,0x5c,0x00,0x01,0x04,0x14,0x07,0x6c,0x00,0x01,0x04,0x14,0xfe,0x5c,0x00,0x01,0x06,0x83,0x07,0x6c,0x00,0x01,0x06,0x83, -0xfe,0x5c,0x00,0x01,0x06,0x56,0x07,0x6c,0x00,0x01,0x06,0x56,0xfe,0x5c,0x00,0x01,0x04,0x96,0x07,0x6c,0x00,0x01,0x04,0x96,0xfe,0x5c,0x00,0x01,0x03,0xb8,0x07,0x6c,0x00,0x01,0x03,0xb8,0xfe,0x5c,0x00,0x01,0x07,0x12,0x07,0x6c,0x00,0x01,0x07,0x12,0xfe,0x5c,0x00,0x01,0x07,0x21,0x07,0x6c,0x00,0x01,0x07,0x21,0xfe,0x5c,0x00,0x01, -0x03,0xb4,0x08,0x34,0x00,0x01,0x01,0xfd,0x08,0x34,0x00,0x01,0x01,0xfd,0xfe,0x5c,0x00,0x01,0x02,0x30,0x08,0x34,0x00,0x01,0x02,0x30,0xfe,0x5c,0x00,0x01,0x02,0x38,0x08,0x34,0x00,0x01,0x02,0x38,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x08,0x34,0x00,0x01,0x02,0x12,0x07,0x6c,0x00,0x01,0x02,0x12,0xfe,0x5c,0x00,0x01,0x03,0xde,0x08,0x34, -0x00,0x01,0x04,0x64,0x08,0x34,0x00,0x01,0x04,0x18,0x07,0x6c,0x00,0x01,0x04,0x18,0xfe,0x5c,0x00,0x01,0x04,0x60,0x08,0x34,0x00,0x01,0x04,0xec,0x08,0x34,0x00,0x01,0x04,0x8c,0x08,0x34,0x00,0x01,0x04,0x98,0x07,0x6c,0x00,0x01,0x04,0x98,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x08,0x34,0x00,0x01,0x05,0xb3,0x07,0x6c,0x00,0x01,0x05,0xb3, -0xfe,0x5c,0x00,0x01,0x03,0xa4,0x08,0x34,0x00,0x01,0x02,0x13,0x07,0x6c,0x00,0x01,0x02,0x13,0xfe,0x5c,0x00,0x01,0x02,0xc3,0x07,0x6c,0x00,0x01,0x02,0xc3,0xfe,0x5c,0x00,0x01,0x02,0x87,0x07,0x6c,0x00,0x01,0x02,0x87,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x08,0x34,0x00,0x01,0x02,0xc9,0x07,0x6c,0x00,0x01,0x02,0xc9,0xfe,0x5c,0x00,0x01, -0x02,0x9a,0x07,0x6c,0x00,0x01,0x02,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x08,0x34,0x00,0x01,0x03,0xd3,0x07,0x6c,0x00,0x01,0x03,0xd3,0xfe,0x5c,0x00,0x01,0x04,0x4e,0x07,0x6c,0x00,0x01,0x04,0x4e,0xfe,0x5c,0x00,0x01,0x03,0x6c,0x07,0x6c,0x00,0x01,0x03,0x6c,0xfe,0x5c,0x00,0x01,0x04,0x4a,0x07,0x6c,0x00,0x01,0x04,0x4a,0xfe,0x5c, -0x00,0x01,0x04,0xf2,0x08,0x34,0x00,0x01,0x03,0xf8,0x08,0x34,0x00,0x01,0x05,0x92,0x07,0x6c,0x00,0x01,0x05,0x92,0xfe,0x5c,0x00,0x01,0x02,0x51,0x07,0x6c,0x00,0x01,0x02,0x51,0xfe,0x5c,0x00,0x01,0x02,0x2e,0x07,0x6c,0x00,0x01,0x02,0x2e,0xfe,0x5c,0x00,0x01,0x02,0x0f,0x07,0x6c,0x00,0x01,0x02,0x0f,0xfe,0x5c,0x00,0x01,0x01,0xeb, -0x07,0x6c,0x00,0x01,0x01,0xeb,0xfe,0x5c,0x00,0x01,0x02,0x23,0x08,0x34,0x00,0x01,0x02,0x23,0xfe,0x5c,0x00,0x01,0x02,0x00,0x07,0x6c,0x00,0x01,0x02,0x00,0xfe,0x5c,0x00,0x01,0x02,0xf2,0x07,0x6c,0x00,0x01,0x02,0xf2,0xfe,0x5c,0x00,0x01,0x02,0x62,0x07,0x6c,0x00,0x01,0x02,0x62,0xfe,0x5c,0x00,0x01,0x07,0x60,0x08,0x34,0x00,0x01, -0x06,0x3a,0x07,0x6c,0x00,0x01,0x06,0x3a,0xfe,0x5c,0x00,0x01,0x04,0xa9,0x07,0x6c,0x00,0x01,0x04,0xa9,0xfe,0x5c,0x00,0x01,0x05,0xd0,0x07,0x6c,0x00,0x01,0x05,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc7,0x07,0x6c,0x00,0x01,0x04,0xc7,0xfe,0x5c,0x00,0x01,0x04,0x52,0x07,0x6c,0x00,0x01,0x04,0x52,0xfe,0x5c,0x00,0x01,0x03,0xe9,0x07,0x6c, -0x00,0x01,0x03,0xe9,0xfe,0x5c,0x00,0x01,0x03,0x83,0x08,0x34,0x00,0x01,0x04,0x6f,0x08,0x34,0x00,0x01,0x04,0x6f,0xfe,0x5c,0x00,0x01,0x04,0x5a,0x07,0x6c,0x00,0x01,0x04,0x5a,0xfe,0x5c,0x00,0x01,0x04,0x20,0x08,0x34,0x00,0x01,0x04,0x20,0xfe,0x5c,0x00,0x01,0x04,0x32,0x07,0x6c,0x00,0x01,0x04,0x32,0xfe,0x5c,0x00,0x01,0x03,0xdd, -0x08,0x34,0x00,0x01,0x01,0xa1,0x07,0x6c,0x00,0x01,0x01,0xa1,0xfe,0x5c,0x00,0x01,0x04,0x50,0x08,0x34,0x00,0x01,0x06,0x3a,0x08,0x34,0x00,0x01,0x05,0xd0,0x08,0x34,0x00,0x01,0x05,0x66,0x07,0x6c,0x00,0x01,0x05,0x66,0xfe,0x5c,0x00,0x01,0x03,0xcf,0x07,0x6c,0x00,0x01,0x03,0xcf,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x08,0x34,0x00,0x01, -0x03,0x94,0x08,0x34,0x00,0x01,0x02,0xa0,0x08,0x34,0x00,0x01,0x02,0x50,0x07,0x6c,0x00,0x01,0x02,0x50,0xfe,0x5c,0x00,0x01,0x02,0x3a,0x07,0x6c,0x00,0x01,0x02,0x3a,0xfe,0x5c,0x00,0x01,0x02,0x39,0x08,0x34,0x00,0x01,0x02,0x39,0xfe,0x5c,0x00,0x01,0x02,0x1b,0x08,0x34,0x00,0x01,0x02,0x1b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x08,0x34, -0x00,0x01,0x01,0x5b,0x07,0x6c,0x00,0x01,0x01,0x5b,0xfe,0x5c,0x00,0x01,0x01,0xf6,0x08,0x34,0x00,0x01,0x01,0xf6,0xfe,0x5c,0x00,0x01,0x01,0xf8,0x07,0x6c,0x00,0x01,0x01,0xf8,0xfe,0x5c,0x00,0x01,0x06,0x72,0x08,0x34,0x00,0x01,0x04,0x29,0x08,0x34,0x00,0x01,0x02,0xc7,0x07,0x6c,0x00,0x01,0x02,0xc7,0xfe,0x5c,0x00,0x01,0x03,0x0f, -0x08,0x34,0x00,0x01,0x02,0x95,0x07,0x6c,0x00,0x01,0x02,0x95,0xfe,0x5c,0x00,0x01,0x02,0x86,0x07,0x6c,0x00,0x01,0x02,0x86,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x08,0x34,0x00,0x01,0x04,0xe6,0x08,0x34,0x00,0x01,0x04,0x9a,0x08,0x34,0x00,0x01,0x02,0x62,0x08,0x34,0x00,0x01,0x04,0x81,0x07,0x6c,0x00,0x01,0x04,0x81,0xfe,0x5c,0x00,0x01, -0x04,0x38,0x07,0x6c,0x00,0x01,0x04,0x38,0xfe,0x5c,0x00,0x01,0x05,0x42,0x07,0x6c,0x00,0x01,0x05,0x42,0xfe,0x5c,0x00,0x01,0x04,0x0e,0x07,0x6c,0x00,0x01,0x04,0x0e,0xfe,0x5c,0x00,0x01,0x05,0x90,0x07,0x6c,0x00,0x01,0x05,0x90,0xfe,0x5c,0x00,0x01,0x03,0xd7,0x07,0x6c,0x00,0x01,0x03,0xd7,0xfe,0x5c,0x00,0x01,0x04,0x5c,0x07,0x6c, -0x00,0x01,0x04,0x5c,0xfe,0x5c,0x00,0x01,0x03,0x52,0x07,0x6c,0x00,0x01,0x03,0x52,0xfe,0x5c,0x00,0x01,0x03,0xf4,0x07,0x6c,0x00,0x01,0x03,0xf4,0xfe,0x5c,0x00,0x01,0x05,0x85,0x07,0x6c,0x00,0x01,0x05,0x85,0xfe,0x5c,0x00,0x01,0x06,0x87,0x07,0x6c,0x00,0x01,0x06,0x87,0xfe,0x5c,0x00,0x01,0x02,0x25,0x07,0x6c,0x00,0x01,0x02,0x25, -0xfe,0x5c,0x00,0x01,0x01,0xdb,0x07,0x6c,0x00,0x01,0x01,0xdb,0xfe,0x5c,0x00,0x01,0x03,0xdf,0x07,0x6c,0x00,0x01,0x03,0xdf,0xfe,0x5c,0x00,0x01,0x06,0x66,0x07,0x6c,0x00,0x01,0x06,0x66,0xfe,0x5c,0x00,0x01,0x07,0x04,0x07,0x6c,0x00,0x01,0x07,0x04,0xfe,0x5c,0x00,0x01,0x05,0xac,0x07,0x6c,0x00,0x01,0x05,0xac,0xfe,0x5c,0x00,0x01, -0x04,0x7b,0x07,0x6c,0x00,0x01,0x04,0x7b,0xfe,0x5c,0x00,0x01,0x04,0x62,0x07,0x6c,0x00,0x01,0x04,0x62,0xfe,0x5c,0x00,0x01,0x03,0xc7,0x07,0x6c,0x00,0x01,0x03,0xc7,0xfe,0x5c,0x00,0x01,0x02,0xfd,0x07,0x6c,0x00,0x01,0x02,0xfd,0xfe,0x5c,0x00,0x01,0x03,0xf0,0x07,0x6c,0x00,0x01,0x03,0xf0,0xfe,0x5c,0x00,0x01,0x05,0xa8,0x07,0x6c, -0x00,0x01,0x05,0xa8,0xfe,0x5c,0x00,0x01,0x05,0x54,0x07,0x6c,0x00,0x01,0x05,0x54,0xfe,0x5c,0x00,0x01,0x04,0x7f,0x07,0x6c,0x00,0x01,0x04,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x83,0x07,0x6c,0x00,0x01,0x04,0x83,0xfe,0x5c,0x00,0x01,0x04,0xd7,0x07,0x6c,0x00,0x01,0x04,0xd7,0xfe,0x5c,0x00,0x01,0x03,0xc8,0x07,0x6c,0x00,0x01,0x03,0xc8, -0xfe,0x5c,0x00,0x01,0x02,0xcd,0x07,0x6c,0x00,0x01,0x02,0xcd,0xfe,0x5c,0x00,0x01,0x02,0xe4,0x07,0x6c,0x00,0x01,0x02,0xe4,0xfe,0x5c,0x00,0x01,0x04,0x16,0x07,0x6c,0x00,0x01,0x04,0x16,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x08,0x34,0x00,0x01,0x09,0xbc,0xfe,0x5c,0x00,0x01,0x08,0xef,0x07,0x6c,0x00,0x01,0x08,0xef,0xfe,0x5c,0x00,0x01, -0x08,0x05,0x07,0x6c,0x00,0x01,0x08,0x05,0xfe,0x5c,0x00,0x01,0x06,0x29,0x07,0x6c,0x00,0x01,0x06,0x29,0xfe,0x5c,0x00,0x01,0x05,0x39,0x07,0x6c,0x00,0x01,0x05,0x39,0xfe,0x5c,0x00,0x01,0x03,0x77,0x07,0x6c,0x00,0x01,0x03,0x77,0xfe,0x5c,0x00,0x01,0x07,0xe4,0x07,0x6c,0x00,0x01,0x07,0xe4,0xfe,0x5c,0x00,0x01,0x07,0x34,0x07,0x6c, -0x00,0x01,0x07,0x34,0xfe,0x5c,0x00,0x01,0x05,0xed,0x07,0x6c,0x00,0x01,0x05,0xed,0xfe,0x5c,0x00,0x01,0x03,0x7b,0x07,0x6c,0x00,0x01,0x03,0x7b,0xfe,0x5c,0x00,0x01,0x02,0x29,0x08,0x34,0x00,0x01,0x02,0x29,0xfe,0x5c,0x00,0x01,0x02,0x11,0x07,0x6c,0x00,0x01,0x02,0x11,0xfe,0x5c,0x00,0x01,0x06,0x83,0x08,0x34,0x00,0x01,0x06,0x4e, -0x07,0x6c,0x00,0x01,0x06,0x4e,0xfe,0x5c,0x00,0x01,0x05,0x7d,0x07,0x6c,0x00,0x01,0x05,0x7d,0xfe,0x5c,0x00,0x01,0x04,0xb6,0x07,0x6c,0x00,0x01,0x04,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x83,0x08,0x34,0x00,0x01,0x03,0x68,0x07,0x6c,0x00,0x01,0x03,0x68,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x07,0x6c,0x00,0x01,0x08,0xf0,0x07,0x6c,0x00,0x01, -0x08,0xf0,0xfe,0x5c,0x00,0x01,0x08,0x06,0x07,0x6c,0x00,0x01,0x08,0x06,0xfe,0x5c,0x00,0x01,0x07,0x79,0x07,0x6c,0x00,0x01,0x07,0x79,0xfe,0x5c,0x00,0x01,0x05,0x27,0x07,0x6c,0x00,0x01,0x05,0x27,0xfe,0x5c,0x00,0x01,0x01,0xb6,0x07,0x6c,0x00,0x01,0x01,0xb6,0xfe,0x5c,0x00,0x01,0x02,0x28,0x08,0x34,0x00,0x01,0x02,0x28,0xfe,0x5c, -0x00,0x01,0x02,0x0a,0x07,0x6c,0x00,0x01,0x02,0x0a,0xfe,0x5c,0x00,0x01,0x02,0xca,0x07,0x6c,0x00,0x01,0x02,0xca,0xfe,0x5c,0x00,0x01,0x03,0x3e,0x07,0x6c,0x00,0x01,0x03,0x3e,0xfe,0x5c,0x00,0x01,0x04,0x42,0x07,0x6c,0x00,0x01,0x04,0x42,0xfe,0x5c,0x00,0x01,0x03,0x9e,0x07,0x6c,0x00,0x01,0x03,0x9e,0xfe,0x5c,0x00,0x01,0x04,0x56, -0x07,0x6c,0x00,0x01,0x04,0x56,0xfe,0x5c,0x00,0x01,0x03,0x5a,0x07,0x6c,0x00,0x01,0x03,0x5a,0xfe,0x5c,0x00,0x01,0x03,0xa0,0x07,0x6c,0x00,0x01,0x03,0xa0,0xfe,0x5c,0x00,0x01,0x05,0x21,0x07,0x6c,0x00,0x01,0x05,0x21,0xfe,0x5c,0x00,0x01,0x05,0x16,0x07,0x6c,0x00,0x01,0x05,0x16,0xfe,0x5c,0x00,0x01,0x02,0xf4,0x07,0x6c,0x00,0x01, -0x02,0xf4,0xfe,0x5c,0x00,0x01,0x02,0xee,0x07,0x6c,0x00,0x01,0x02,0xee,0xfe,0x5c,0x00,0x01,0x04,0x35,0x07,0x6c,0x00,0x01,0x04,0x35,0xfe,0x5c,0x00,0x01,0x02,0x1c,0x07,0x6c,0x00,0x01,0x02,0x1c,0xfe,0x5c,0x00,0x01,0x03,0xcd,0x07,0x6c,0x00,0x01,0x03,0xcd,0xfe,0x5c,0x00,0x01,0x03,0xc6,0x07,0x6c,0x00,0x01,0x03,0xc6,0xfe,0x5c, -0x00,0x01,0x02,0x0e,0x07,0x6c,0x00,0x01,0x02,0x0e,0xfe,0x5c,0x00,0x01,0x02,0x2f,0x07,0x6c,0x00,0x01,0x02,0x2f,0xfe,0x5c,0x00,0x01,0x02,0x44,0x07,0x6c,0x00,0x01,0x02,0x44,0xfe,0x5c,0x00,0x01,0x02,0x52,0x07,0x6c,0x00,0x01,0x02,0x52,0xfe,0x5c,0x00,0x01,0x02,0x5a,0x07,0x6c,0x00,0x01,0x02,0x5a,0xfe,0x5c,0x00,0x01,0x04,0xb2, -0x07,0x6c,0x00,0x01,0x04,0xb2,0xfe,0x5c,0x00,0x01,0x05,0x08,0x07,0x6c,0x00,0x01,0x05,0x08,0xfe,0x5c,0x00,0x01,0x04,0x0a,0x07,0x6c,0x00,0x01,0x04,0x0a,0xfe,0x5c,0x00,0x01,0x05,0x60,0x07,0x6c,0x00,0x01,0x05,0x60,0xfe,0x5c,0x00,0x01,0x05,0x64,0x07,0x6c,0x00,0x01,0x05,0x64,0xfe,0x5c,0x00,0x01,0x04,0xba,0x07,0x6c,0x00,0x01, -0x04,0xba,0xfe,0x5c,0x00,0x01,0x02,0x23,0x07,0x6c,0x00,0x01,0x03,0x33,0x07,0x6c,0x00,0x01,0x03,0x33,0xfe,0x5c,0x00,0x01,0x02,0xa2,0x07,0x6c,0x00,0x01,0x02,0xa2,0xfe,0x5c,0x00,0x01,0x02,0x1e,0x07,0x6c,0x00,0x01,0x02,0x1e,0xfe,0x5c,0x00,0x01,0x02,0xdb,0x07,0x6c,0x00,0x01,0x02,0xdb,0xfe,0x5c,0x00,0x01,0x02,0x68,0x07,0x6c, -0x00,0x01,0x02,0x68,0xfe,0x5c,0x00,0x01,0x02,0x72,0x07,0x6c,0x00,0x01,0x02,0x72,0xfe,0x5c,0x00,0x01,0x02,0x48,0x07,0x6c,0x00,0x01,0x02,0x48,0xfe,0x5c,0x00,0x01,0x02,0x8e,0x07,0x6c,0x00,0x01,0x02,0x8e,0xfe,0x5c,0x00,0x01,0x04,0xa4,0x07,0x6c,0x00,0x01,0x04,0xa4,0xfe,0x5c,0x00,0x01,0x03,0xd1,0x07,0x6c,0x00,0x01,0x03,0xd1, -0xfe,0x5c,0x00,0x01,0x03,0x4c,0x07,0x6c,0x00,0x01,0x03,0x4c,0xfe,0x5c,0x00,0x01,0x03,0xfe,0x07,0x6c,0x00,0x01,0x03,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x25,0x07,0x6c,0x00,0x01,0x04,0x25,0xfe,0x5c,0x00,0x01,0x03,0x8c,0x07,0x6c,0x00,0x01,0x03,0x8c,0xfe,0x5c,0x00,0x01,0x02,0xe8,0x07,0x6c,0x00,0x01,0x02,0xe8,0xfe,0x5c,0x00,0x01, -0x02,0xcf,0x07,0x6c,0x00,0x01,0x02,0xcf,0xfe,0x5c,0x00,0x01,0x02,0xcb,0x07,0x6c,0x00,0x01,0x02,0xcb,0xfe,0x5c,0x00,0x01,0x03,0x60,0x07,0x6c,0x00,0x01,0x03,0x60,0xfe,0x5c,0x00,0x01,0x04,0x92,0x07,0x6c,0x00,0x01,0x04,0x92,0xfe,0x5c,0x00,0x01,0x03,0x7f,0x07,0x6c,0x00,0x01,0x03,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x02,0x07,0x6c, -0x00,0x01,0x04,0x02,0xfe,0x5c,0x00,0x01,0x02,0x38,0x07,0x6c,0x00,0x01,0x03,0x56,0x07,0x6c,0x00,0x01,0x03,0x56,0xfe,0x5c,0x00,0x01,0x02,0xf8,0x07,0x6c,0x00,0x01,0x02,0xf8,0xfe,0x5c,0x00,0x01,0x07,0x27,0x07,0x6c,0x00,0x01,0x07,0x27,0xfe,0x5c,0x00,0x01,0x07,0x77,0x07,0x6c,0x00,0x01,0x07,0x77,0xfe,0x5c,0x00,0x01,0x07,0xdb, -0x07,0x6c,0x00,0x01,0x07,0xdb,0xfe,0x5c,0x00,0x01,0x04,0x94,0x07,0x6c,0x00,0x01,0x04,0x94,0xfe,0x5c,0x00,0x01,0x04,0x3e,0x07,0x6c,0x00,0x01,0x04,0x3e,0xfe,0x5c,0x00,0x01,0x05,0xc8,0x07,0x6c,0x00,0x01,0x05,0xc8,0xfe,0x5c,0x00,0x01,0x03,0xc2,0x07,0x6c,0x00,0x01,0x03,0xc2,0xfe,0x5c,0x00,0x01,0x06,0x1c,0x07,0x6c,0x00,0x01, -0x06,0x1c,0xfe,0x5c,0x00,0x01,0x06,0x04,0x07,0x6c,0x00,0x01,0x06,0x04,0xfe,0x5c,0x00,0x01,0x07,0x1a,0x07,0x6c,0x00,0x01,0x07,0x1a,0xfe,0x5c,0x00,0x01,0x04,0xf0,0x07,0x6c,0x00,0x01,0x04,0xf0,0xfe,0x5c,0x00,0x01,0x04,0x0b,0x07,0x6c,0x00,0x01,0x04,0x0b,0xfe,0x5c,0x00,0x01,0x04,0xc9,0x07,0x6c,0x00,0x01,0x04,0xc9,0xfe,0x5c, -0x00,0x01,0x03,0xf6,0x07,0x6c,0x00,0x01,0x03,0xf6,0xfe,0x5c,0x00,0x01,0x04,0xff,0x07,0x6c,0x00,0x01,0x04,0xff,0xfe,0x5c,0x00,0x01,0x04,0xdc,0x07,0x6c,0x00,0x01,0x04,0xdc,0xfe,0x5c,0x00,0x01,0x03,0xac,0x07,0x6c,0x00,0x01,0x03,0xac,0xfe,0x5c,0x00,0x01,0x03,0x37,0x07,0x6c,0x00,0x01,0x03,0x37,0xfe,0x5c,0x00,0x01,0x04,0x3f, -0x07,0x6c,0x00,0x01,0x04,0x3f,0xfe,0x5c,0x00,0x01,0x06,0xae,0x07,0x6c,0x00,0x01,0x06,0xae,0xfe,0x5c,0x00,0x01,0x02,0x46,0x07,0x6c,0x00,0x01,0x02,0x46,0xfe,0x5c,0x00,0x01,0x02,0x08,0x07,0x6c,0x00,0x01,0x02,0x08,0xfe,0x5c,0x00,0x01,0x04,0x24,0x07,0x6c,0x00,0x01,0x04,0x24,0xfe,0x5c,0x00,0x01,0x04,0xae,0x07,0x6c,0x00,0x01, -0x04,0xae,0xfe,0x5c,0x00,0x01,0x05,0xfc,0x07,0x6c,0x00,0x01,0x05,0xfc,0xfe,0x5c,0x00,0x01,0x03,0xf9,0x07,0x6c,0x00,0x01,0x03,0xf9,0xfe,0x5c,0x00,0x01,0x01,0xe3,0x07,0x6c,0x00,0x01,0x01,0xe3,0xfe,0x5c,0x00,0x01,0x06,0xed,0x07,0x6c,0x00,0x01,0x06,0xed,0xfe,0x5c,0x00,0x01,0x04,0x91,0x07,0x6c,0x00,0x01,0x04,0x91,0xfe,0x5c, -0x00,0x01,0x03,0xad,0x07,0x6c,0x00,0x01,0x03,0xad,0xfe,0x5c,0x00,0x01,0x03,0x4b,0x07,0x6c,0x00,0x01,0x03,0x4b,0xfe,0x5c,0x00,0x01,0x04,0x06,0x07,0x6c,0x00,0x01,0x04,0x06,0xfe,0x5c,0x00,0x01,0x04,0x71,0x07,0x6c,0x00,0x01,0x04,0x71,0xfe,0x5c,0x00,0x01,0x04,0xfe,0x07,0x6c,0x00,0x01,0x04,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x84, -0x07,0x6c,0x00,0x01,0x04,0x84,0xfe,0x5c,0x00,0x01,0x03,0x3b,0x07,0x6c,0x00,0x01,0x03,0x3b,0xfe,0x5c,0x00,0x01,0x05,0xe0,0x07,0x6c,0x00,0x01,0x05,0xe0,0xfe,0x5c,0x00,0x01,0x02,0xd1,0x07,0x6c,0x00,0x01,0x02,0xd1,0xfe,0x5c,0x00,0x01,0x04,0xd0,0x07,0x6c,0x00,0x01,0x04,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc1,0x07,0x6c,0x00,0x01, -0x04,0xc1,0xfe,0x5c,0x00,0x01,0x05,0x7f,0x07,0x6c,0x00,0x01,0x05,0x7f,0xfe,0x5c,0x00,0x01,0x05,0x07,0x07,0x6c,0x00,0x01,0x05,0x07,0xfe,0x5c,0x00,0x01,0x06,0x01,0x07,0x6c,0x00,0x01,0x06,0x01,0xfe,0x5c,0x00,0x01,0x02,0xc8,0x07,0x6c,0x00,0x01,0x02,0xc8,0xfe,0x5c,0x00,0x01,0x04,0x6c,0x07,0x6c,0x00,0x01,0x04,0x6c,0xfe,0x5c, -0x00,0x01,0x03,0x9c,0x07,0x6c,0x00,0x01,0x03,0x9c,0xfe,0x5c,0x00,0x01,0x03,0xc4,0x07,0x6c,0x00,0x01,0x03,0xc4,0xfe,0x5c,0x00,0x01,0x02,0x4a,0x07,0x6c,0x00,0x01,0x02,0x4a,0xfe,0x5c,0x00,0x01,0x04,0x19,0x07,0x6c,0x00,0x01,0x04,0x19,0xfe,0x5c,0x00,0x01,0x04,0x12,0x07,0x6c,0x00,0x01,0x04,0x12,0xfe,0x5c,0x00,0x01,0x02,0xb6, -0x07,0x6c,0x00,0x01,0x02,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x8d,0x07,0x6c,0x00,0x01,0x04,0x8d,0xfe,0x5c,0x00,0x01,0x05,0x98,0x07,0x6c,0x00,0x01,0x05,0x98,0xfe,0x5c,0x00,0x01,0xff,0x9c,0x05,0x14,0x00,0x01,0x03,0x34,0x05,0x9a,0x00,0x01,0x03,0xf6,0x04,0xfa,0x00,0x01,0x04,0x81,0x05,0x79,0x00,0x01,0x04,0xb0,0x04,0xfa,0x00,0x01, -0x03,0x70,0x05,0x9a,0x00,0x01,0x04,0xd4,0x05,0x69,0x00,0x01,0x05,0x0e,0x05,0x9a,0x00,0x01,0x01,0xfe,0x05,0x9a,0x00,0x01,0x02,0x3b,0x05,0x9a,0x00,0x01,0x04,0x04,0x05,0x9a,0x00,0x01,0x01,0x42,0x05,0x9a,0x00,0x01,0x06,0xae,0x05,0x9a,0x00,0x01,0x05,0x5c,0x05,0x9a,0x00,0x01,0x04,0xd8,0x05,0x28,0x00,0x01,0x03,0xdb,0x04,0xfa, -0x00,0x01,0x04,0x29,0x04,0xfa,0x00,0x01,0x03,0xa0,0x05,0x94,0x00,0x01,0x04,0x06,0x05,0xa3,0x00,0x01,0x04,0xda,0x05,0x9f,0x00,0x01,0x04,0xa9,0x05,0x9a,0x00,0x01,0x07,0x58,0x05,0x9a,0x00,0x01,0x03,0x20,0x03,0xf1,0x00,0x01,0x04,0x14,0x03,0xb6,0x00,0x01,0x03,0x59,0x03,0xf1,0x00,0x01,0x04,0x04,0x05,0xf2,0x00,0x01,0x03,0x71, -0x03,0xcd,0x00,0x01,0x02,0x9e,0x06,0x02,0x00,0x01,0x04,0x0d,0x04,0x04,0x00,0x01,0x03,0xd5,0x03,0xaa,0x00,0x01,0x01,0x59,0x04,0x01,0x00,0x01,0x01,0x50,0x04,0x01,0x00,0x01,0x03,0xb4,0x04,0x0b,0x00,0x01,0x01,0x67,0x05,0xf2,0x00,0x01,0x06,0x44,0x03,0x78,0x00,0x01,0x03,0xe7,0x03,0x78,0x00,0x01,0x03,0xde,0x03,0x84,0x00,0x01, -0x04,0x14,0x03,0x87,0x00,0x01,0x04,0x04,0x04,0x03,0x00,0x01,0x02,0xc1,0x04,0x02,0x00,0x01,0x02,0xe0,0x03,0xf3,0x00,0x01,0x02,0x70,0x04,0x03,0x00,0x01,0x03,0xd4,0x03,0xfc,0x00,0x01,0x03,0xb3,0x04,0x00,0x00,0x01,0x05,0xa6,0x04,0x00,0x00,0x01,0x03,0x6f,0x04,0x00,0x00,0x01,0x03,0xb4,0x04,0x0c,0x00,0x01,0x03,0x34,0x04,0x00, -0x00,0x01,0x02,0x94,0xff,0xce,0x00,0x01,0x02,0xde,0xff,0xf1,0x00,0x01,0x02,0x52,0xff,0xce,0x00,0x01,0x02,0xfe,0xff,0xce,0x00,0x01,0x03,0x04,0xff,0xf1,0x00,0x01,0x02,0x64,0xff,0xce,0x00,0x01,0x02,0x20,0xff,0xf1,0x00,0x01,0x02,0xbf,0xff,0xf1,0x00,0x01,0x02,0x3a,0xff,0xf1,0x00,0x01,0x02,0x2b,0xff,0xf1,0x00,0x01,0x02,0x44, -0xfe,0x3e,0x00,0x01,0x00,0xfa,0x00,0x14,0x00,0x01,0x01,0xfd,0xff,0xce,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x02,0x43,0xff,0xce,0x00,0x01,0x00,0xf6,0x00,0x00,0x00,0x01,0x01,0xa8,0xff,0xf1,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x00,0x01,0x04,0x65,0x00,0x00,0x00,0x01,0x02,0x58,0x00,0x00,0x00,0x01, -0x03,0x5c,0xff,0xf1,0x00,0x01,0x00,0xe6,0x00,0x00,0x00,0x01,0x03,0xa7,0x00,0x00,0x00,0x01,0x04,0x4c,0x00,0x00,0x00,0x01,0x00,0xc8,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01,0x02,0xda,0x00,0x00,0x00,0x01,0x05,0xd2,0x00,0x00,0x00,0x01,0x04,0x88,0x00,0x00,0x00,0x01,0x03,0x3e,0xff,0xf1,0x00,0x01,0x03,0x70,0xff,0x4c, -0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x05,0x19,0x00,0x00,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x03,0x8e,0x00,0x00,0x00,0x01,0x02,0xc6,0x00,0x00,0x00,0x01,0x02,0x94,0x00,0x00,0x00,0x01,0x03,0x66,0x00,0x00,0x00,0x01,0x02,0xd2,0xfe,0x70,0x00,0x01,0x03,0x5c, -0x00,0x00,0x00,0x01,0x00,0x32,0xfe,0x5c,0x00,0x01,0x03,0x16,0x00,0x00,0x00,0x01,0x05,0xaa,0x00,0x00,0x00,0x01,0x00,0xaa,0xfe,0x20,0x00,0x01,0x03,0x70,0xfe,0x20,0x00,0x01,0x01,0xb8,0xff,0xf1,0x00,0x01,0x03,0x3e,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x02,0xd0,0x00,0x00,0x00,0x01, -0x00,0xdc,0xfe,0x48,0x00,0x01,0x02,0xf8,0xfe,0x70,0x00,0x01,0x04,0x6a,0x00,0x00,0x00,0x01,0x02,0x44,0xfe,0x70,0x00,0x01,0x05,0x80,0x00,0x27,0x00,0x01,0x00,0xf1,0xff,0x0e,0x00,0x01,0x06,0x4a,0x00,0x00,0x00,0x01,0x05,0xf0,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xf0,0x00,0x1b,0x00,0x01,0x02,0x9a,0x00,0x09, -0x00,0x01,0x00,0xaa,0xfe,0x2a,0x00,0x01,0x02,0x3a,0xfe,0x70,0x00,0x01,0x01,0xcc,0xfe,0x70,0x00,0x01,0x04,0x4c,0xfe,0x84,0x00,0x01,0x02,0xe4,0xfe,0x84,0x00,0x01,0x02,0x76,0xfe,0x84,0x00,0x01,0x01,0xb8,0xfe,0x5c,0x00,0x01,0x02,0xeb,0x00,0x03,0x00,0x01,0x02,0x4e,0xfe,0x5c,0x00,0x01,0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x76, -0xfe,0x99,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x84,0x00,0x01,0x01,0x18,0xfe,0x70,0x00,0x01,0x03,0xd6,0xfe,0x5c,0x00,0x01,0x02,0xa3,0xfe,0x5c,0x00,0x01,0x03,0x66,0xfe,0x84,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x3f,0x00,0x01,0x00,0xfd,0xfe,0xee,0x00,0x01,0x00,0xdc,0xfe,0xdc,0x00,0x01, -0x02,0xed,0xfe,0xec,0x00,0x01,0x02,0x4d,0xfe,0xfb,0x00,0x01,0x02,0xdb,0xfe,0xec,0x00,0x01,0x02,0x44,0xfe,0xf2,0x00,0x01,0x02,0xf6,0xfe,0xf5,0x00,0x01,0x02,0x3b,0xfe,0xf2,0x00,0x01,0x02,0xab,0xfe,0xfb,0x00,0x01,0x02,0x99,0xfe,0xf2,0x00,0x01,0x02,0x0f,0xfe,0xe5,0x00,0x01,0x01,0x00,0xfe,0x67,0x00,0x01,0x01,0x86,0xfe,0x98, -0x00,0x01,0x01,0x18,0xfe,0x98,0x00,0x01,0x02,0x17,0xfe,0x5c,0x00,0x01,0x02,0x08,0xfe,0xd4,0x00,0x01,0x02,0x48,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xff,0x24,0x00,0x01,0x02,0x63,0xff,0x24,0x00,0x01,0x02,0x26,0xfe,0x5c,0x00,0x01,0x02,0x72,0xfe,0xd4,0x00,0x01,0x02,0x60,0xff,0x24,0x00,0x01,0x02,0x3d,0xff,0x24,0x00,0x01,0x02,0x3e, -0xfe,0x92,0x00,0x01,0x02,0x9e,0xfe,0x48,0x00,0x01,0x02,0x35,0xfe,0x48,0x00,0x01,0x02,0x2a,0xfe,0xd4,0x00,0x01,0x02,0x4e,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xfe,0x5c,0x00,0x01,0x02,0xe4,0xfe,0xa2,0x00,0x01,0x02,0x76,0xfe,0xa2,0x00,0x01,0x01,0x22,0xfe,0xd4,0x00,0x01,0x00,0xf0,0xfe,0xd4,0x00,0x01,0x03,0x7a,0x00,0x00,0x00,0x01, -0x04,0x3f,0x00,0x00,0x00,0x01,0x02,0x23,0xff,0x24,0x00,0x01,0x00,0xd2,0xfe,0xd4,0x00,0x01,0x00,0xc8,0xfe,0xd4,0x00,0x01,0x02,0x1c,0xff,0x24,0x00,0x01,0x02,0x17,0xfe,0x48,0x00,0x01,0x00,0xe6,0xfe,0x48,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x02,0xf3,0xff,0x24,0x00,0x01,0x02,0x44,0xfe,0x48,0x00,0x01,0x00,0xb4,0xfe,0x20, -0x00,0x01,0x02,0x84,0xff,0x24,0x00,0x01,0x01,0x9e,0xff,0x24,0x00,0x01,0x01,0xf9,0xfe,0xd4,0x00,0x01,0x01,0x9a,0xfe,0xd4,0x00,0x01,0x02,0x2b,0xfe,0xd4,0x00,0x01,0x01,0xa9,0xfe,0xd4,0x00,0x01,0x01,0xf4,0xfe,0xd4,0x00,0x01,0x01,0x3b,0xfe,0xd4,0x00,0x01,0x01,0xf0,0xff,0x24,0x00,0x01,0x01,0x82,0xff,0x24,0x00,0x01,0x02,0x12, -0xfe,0x48,0x00,0x01,0x01,0x54,0xfe,0x48,0x00,0x01,0x02,0xb2,0xfe,0xac,0x00,0x01,0x02,0x1c,0xfe,0xac,0x00,0x01,0x02,0xb4,0xfe,0xd4,0x00,0x01,0x02,0x4b,0xfe,0xd4,0x00,0x01,0x04,0x1a,0x00,0x00,0x00,0x01,0x02,0x26,0xfe,0xd4,0x00,0x01,0x01,0xae,0xfe,0xd4,0x00,0x01,0x02,0x3a,0xff,0x24,0x00,0x01,0x01,0xc2,0xff,0x24,0x00,0x01, -0x02,0x9c,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x01,0xd7,0xff,0xf1,0x00,0x01,0x02,0x7d,0xff,0xf1,0x00,0x01,0x03,0x54,0x00,0x00,0x00,0x01,0x03,0x74,0x00,0x00,0x00,0x01,0x02,0xe4,0xfe,0x70,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x02,0xca,0x00,0x00,0x00,0x01,0x00,0x5c,0xfe,0xb6,0x00,0x01,0x05,0x00,0x00,0x00, -0x00,0x01,0x01,0x54,0xff,0xf1,0x00,0x01,0x03,0x52,0xfe,0x70,0x00,0x01,0x06,0x72,0x00,0x00,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0xb9,0xfe,0x2a,0x00,0x01,0x03,0x98,0xff,0x74,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0xe4,0xfe,0x2a,0x00,0x01,0x01,0x78,0xfe,0xab,0x00,0x01,0x02,0xe8, -0xfe,0x9b,0x00,0x01,0x03,0x39,0xff,0xf1,0x00,0x01,0x02,0xe9,0xff,0xfa,0x00,0x01,0x02,0x58,0xfe,0x3a,0x00,0x01,0x03,0x66,0xfe,0x2f,0x00,0x01,0x01,0x90,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x08,0xde,0x00,0x00,0x00,0x01,0x08,0x20,0x00,0x00,0x00,0x01,0x07,0x30,0x00,0x00,0x00,0x01,0x04,0xce,0x00,0x00,0x00,0x01, -0x06,0x86,0x00,0x00,0x00,0x01,0x05,0xfa,0xfe,0x5c,0x00,0x01,0x04,0xb0,0xfe,0x5c,0x00,0x01,0x05,0xa2,0x00,0x00,0x00,0x01,0x05,0x14,0x00,0x00,0x00,0x01,0x02,0xda,0xfe,0x84,0x00,0x01,0x02,0x3a,0xfe,0x84,0x00,0x01,0x01,0xcc,0xfe,0x48,0x00,0x01,0x06,0x18,0x00,0x00,0x00,0x01,0x00,0xbe,0xfe,0x2a,0x00,0x01,0x04,0x88,0xfe,0x2a, -0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x03,0x70,0x00,0x00,0x00,0x01,0x01,0xa5,0xff,0xf7,0x00,0x01,0x04,0x4c,0xfe,0x2a,0x00,0x01,0x02,0x22,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x00,0x00,0x01,0x02,0xc2,0x00,0x00,0x00,0x01,0x00,0x8c,0xfe,0x75,0x00,0x01,0x01,0xd8,0xfe,0x5c,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x03,0x47, -0xfe,0x2a,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x03,0x0c,0xfe,0x48,0x00,0x01,0x05,0xa4,0x00,0x00,0x00,0x01,0x05,0xa4,0xfe,0x2a,0x00,0x01,0x04,0xff,0xfe,0x35,0x00,0x01,0x04,0x3d,0xfe,0x2a,0x00,0x01,0x04,0x9c,0x00,0x00,0x00,0x01,0x01,0x91,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x00,0x00,0x01, -0x01,0x84,0x00,0x09,0x00,0x01,0x02,0xde,0x00,0x09,0x00,0x01,0x01,0x8d,0xfe,0xe0,0x00,0x01,0x00,0x91,0xfe,0x7e,0x00,0x01,0x00,0x8a,0xfe,0x63,0x00,0x01,0x00,0xa4,0xfe,0x5c,0x00,0x01,0x01,0x5c,0xfe,0xfb,0x00,0x01,0x02,0x76,0x00,0x00,0x00,0x01,0x01,0x6c,0x00,0x09,0x00,0x01,0x03,0x52,0xff,0x06,0x00,0x01,0x01,0xc2,0xfe,0x41, -0x00,0x01,0x01,0xc2,0xfe,0x4a,0x00,0x01,0x01,0x5b,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x02,0x7d,0xfe,0x48,0x00,0x01,0x02,0xa5,0xff,0xfa,0x00,0x01,0x00,0x43,0xfe,0x41,0x00,0x01,0x02,0xbc,0xfe,0x16,0x00,0x01,0x03,0x76,0xfe,0x2a,0x00,0x01,0x01,0x64,0x00,0x00,0x00,0x01,0x06,0x5e,0x00,0x00,0x00,0x01,0x05,0xb4, -0xfe,0x36,0x00,0x01,0x02,0x14,0xfe,0x4a,0x00,0x01,0x04,0xb0,0x00,0x00,0x00,0x01,0x04,0xb0,0xfe,0x48,0x00,0x01,0x03,0x02,0x00,0x00,0x00,0x01,0x01,0xf4,0xfe,0x5c,0x00,0x01,0x04,0x9c,0xfe,0x5c,0x00,0x01,0x03,0x84,0xfe,0x2a,0x00,0x01,0x05,0x82,0x00,0x00,0x00,0x01,0x03,0x7a,0xfe,0x20,0x00,0x01,0x02,0x1f,0xfe,0xd4,0x00,0x01, -0x02,0x9e,0xfe,0x2a,0x00,0x01,0x02,0xd0,0x01,0xf6,0x00,0x01,0x06,0x1a,0x00,0x00,0x00,0x01,0x01,0x22,0x00,0x00,0x00,0x01,0x02,0x6c,0x00,0x00,0x00,0x01,0x02,0xd0,0xfe,0xa2,0x00,0x01,0x03,0x98,0xfe,0xa2,0x00,0x01,0x02,0xee,0xfe,0xa2,0x00,0x01,0x00,0xd2,0xfe,0xa2,0x00,0x01,0x05,0xdc,0xfe,0xa2,0x00,0x01,0x03,0x84,0xfe,0xa2, -0x00,0x01,0x02,0x80,0xfe,0xa2,0x00,0x01,0x03,0xa2,0xfe,0xa2,0x00,0x01,0x04,0x2e,0xfe,0xa2,0x00,0x01,0x04,0x38,0xfe,0xa2,0x00,0x01,0x03,0xb6,0xfe,0xc0,0x00,0x01,0x03,0x52,0xfe,0xa2,0x00,0x01,0x02,0x7f,0x00,0x46,0x00,0x01,0x03,0xfc,0xfe,0xa2,0x00,0x01,0x04,0x21,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x8c,0x00,0x01,0x04,0x42, -0x00,0x00,0x00,0x01,0x05,0xbe,0xfe,0xa2,0x00,0x01,0x04,0xba,0xfe,0xa2,0x00,0x01,0x00,0xc8,0xfe,0x48,0x00,0x01,0x03,0xa2,0x00,0x0f,0x00,0x01,0x00,0x8c,0x00,0x1e,0x00,0x01,0xff,0x6a,0x00,0x1e,0x00,0x01,0x03,0x4a,0x00,0x50,0x00,0x01,0x02,0xd5,0x00,0x1a,0x00,0x01,0x03,0xbc,0x00,0x09,0x00,0x01,0x03,0xbc,0x00,0x00,0x00,0x01, -0x01,0x40,0x00,0x00,0x00,0x01,0x03,0x3a,0xfe,0x93,0x00,0x01,0x03,0x48,0xfe,0xc0,0x00,0x01,0x03,0xa8,0x00,0x00,0x00,0x01,0x00,0x83,0xfe,0x89,0x00,0x01,0x03,0x5a,0x00,0x00,0x00,0x01,0x05,0xfc,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x09,0x00,0x01,0x03,0x5c,0x00,0x3f,0x00,0x01,0x03,0xb3,0xfe,0x42,0x00,0x01,0x00,0xf8,0x00,0x00, -0x00,0x01,0x02,0x60,0x00,0x50,0x00,0x01,0x01,0xea,0x00,0x00,0x00,0x01,0x04,0x27,0x00,0x09,0x00,0x01,0x04,0x27,0x00,0x00,0x00,0x01,0x03,0x07,0xff,0xf7,0x00,0x01,0x03,0x07,0x00,0x00,0x00,0x01,0x02,0x58,0x06,0xea,0x00,0x01,0xff,0x6f,0x06,0xea,0x00,0x01,0x00,0xaa,0x06,0x40,0x00,0x01,0xff,0x7e,0x06,0x40,0x00,0x01,0x05,0x29, -0x08,0x34,0x00,0x01,0x00,0x00,0x08,0x34,0x00,0x01,0x04,0x96,0x08,0x34,0x00,0x01,0x04,0xf4,0x08,0x34,0x00,0x01,0x05,0x9c,0x08,0x34,0x00,0x01,0x03,0xe8,0x08,0x34,0x00,0x01,0x05,0x7d,0x08,0x34,0x00,0x01,0x05,0xae,0x08,0x34,0x00,0x01,0x02,0x21,0x08,0x34,0x00,0x01,0x02,0xdb,0x08,0x34,0x00,0x01,0x04,0xa4,0x08,0x34,0x00,0x01, -0x03,0xc4,0x08,0x34,0x00,0x01,0x07,0x2f,0x08,0x34,0x00,0x01,0x05,0xfc,0x08,0x34,0x00,0x01,0x06,0x08,0x08,0x34,0x00,0x01,0x04,0x7b,0x08,0x34,0x00,0x01,0x04,0xc9,0x08,0x34,0x00,0x01,0x04,0x40,0x08,0x34,0x00,0x01,0x04,0x31,0x08,0x34,0x00,0x01,0x05,0x7f,0x08,0x34,0x00,0x01,0x04,0xf8,0x08,0x34,0x00,0x01,0x07,0x79,0x08,0x34, -0x00,0x01,0x04,0xb8,0x08,0x34,0x00,0x01,0x04,0x6c,0x08,0x34,0x00,0x01,0x04,0x90,0x08,0x34,0x00,0x01,0x04,0x12,0x08,0x34,0x00,0x01,0x04,0xb4,0x08,0x34,0x00,0x01,0x03,0xb2,0x08,0x34,0x00,0x01,0x04,0xb6,0x08,0x34,0x00,0x01,0x02,0x81,0x08,0x34,0x00,0x01,0x04,0x87,0x08,0x34,0x00,0x01,0x03,0xfa,0x08,0x34,0x00,0x01,0x06,0xe4, -0x08,0x34,0x00,0x01,0x04,0xb0,0x08,0x34,0x00,0x01,0x02,0xc8,0x08,0x34,0x00,0x01,0x03,0x65,0x08,0x34,0x00,0x01,0x02,0xb6,0x08,0x34,0x00,0x01,0x03,0xd5,0x08,0x34,0x00,0x01,0x05,0xc8,0x08,0x34,0x00,0x01,0x03,0xac,0x08,0x34,0x00,0x01,0x03,0xdf,0x08,0x34,0x00,0x01,0x03,0x9e,0x08,0x34,0x00,0x01,0x04,0x5a,0x08,0x34,0x00,0x01, -0x06,0xe2,0x08,0x34,0x00,0x01,0x06,0xa8,0x08,0x34,0x00,0x01,0x07,0x72,0x08,0x34,0x00,0x01,0x07,0x6c,0x08,0x34,0x00,0x01,0x02,0x31,0x08,0x34,0x00,0x01,0x04,0x79,0x08,0x34,0x00,0x01,0x05,0x65,0x08,0x34,0x00,0x01,0x02,0x75,0x08,0x34,0x00,0x01,0x02,0x85,0x08,0x34,0x00,0x01,0x03,0x85,0x08,0x34,0x00,0x01,0x04,0xfc,0x08,0x34, -0x00,0x01,0x03,0xf6,0x08,0x34,0x00,0x01,0x04,0xd9,0x08,0x34,0x00,0x01,0x01,0xee,0x08,0x34,0x00,0x01,0x06,0x1a,0x08,0x34,0x00,0x01,0x04,0xc7,0x08,0x34,0x00,0x01,0x05,0xc4,0x08,0x34,0x00,0x01,0x06,0x8e,0x08,0x34,0x00,0x01,0x04,0xe8,0x08,0x34,0x00,0x01,0x04,0x93,0x08,0x34,0x00,0x01,0x04,0x9e,0x08,0x34,0x00,0x01,0x04,0xf6, -0x08,0x34,0x00,0x01,0x03,0xba,0x08,0x34,0x00,0x01,0x05,0xee,0x08,0x34,0x00,0x01,0x04,0x94,0x08,0x34,0x00,0x01,0x04,0xbc,0x08,0x34,0x00,0x01,0x04,0x0e,0x08,0x34,0x00,0x01,0x04,0x54,0x08,0x34,0x00,0x01,0x05,0x89,0x08,0x34,0x00,0x01,0x06,0xfe,0x08,0x34,0x00,0x01,0x02,0x4e,0x08,0x34,0x00,0x01,0x02,0x3a,0x08,0x34,0x00,0x01, -0x03,0xfc,0x08,0x34,0x00,0x01,0x07,0x23,0x08,0x34,0x00,0x01,0x07,0xc0,0x08,0x34,0x00,0x01,0x06,0x52,0x08,0x34,0x00,0x01,0x04,0xcf,0x08,0x34,0x00,0x01,0x04,0x9c,0x08,0x34,0x00,0x01,0x04,0x21,0x08,0x34,0x00,0x01,0x02,0x5e,0x08,0x34,0x00,0x01,0x02,0xb8,0x08,0x34,0x00,0x01,0x04,0x33,0x08,0x34,0x00,0x01,0x06,0x0a,0x08,0x34, -0x00,0x01,0x05,0xb2,0x08,0x34,0x00,0x01,0x04,0x8e,0x08,0x34,0x00,0x01,0x04,0x23,0x08,0x34,0x00,0x01,0x04,0xe2,0x08,0x34,0x00,0x01,0x03,0x0a,0x08,0x34,0x00,0x01,0x03,0x27,0x08,0x34,0x00,0x01,0x04,0x5e,0x08,0x34,0x00,0x01,0x09,0xe8,0x08,0x34,0x00,0x01,0x09,0x1c,0x08,0x34,0x00,0x01,0x08,0x33,0x08,0x34,0x00,0x01,0x06,0xd9, -0x08,0x34,0x00,0x01,0x05,0xc2,0x08,0x34,0x00,0x01,0x04,0x01,0x08,0x34,0x00,0x01,0x08,0x94,0x08,0x34,0x00,0x01,0x07,0xbe,0x08,0x34,0x00,0x01,0x06,0x77,0x08,0x34,0x00,0x01,0x04,0x0a,0x08,0x34,0x00,0x01,0x06,0xa0,0x08,0x34,0x00,0x01,0x03,0x89,0x08,0x34,0x00,0x01,0x07,0xfe,0x08,0x34,0x00,0x01,0x05,0x83,0x08,0x34,0x00,0x01, -0x04,0x08,0x08,0x34,0x00,0x01,0x03,0x70,0x08,0x34,0x00,0x01,0x05,0xdf,0x08,0x34,0x00,0x01,0x04,0x89,0x08,0x34,0x00,0x01,0x03,0x4e,0x08,0x34,0x00,0x01,0x04,0x68,0x08,0x34,0x00,0x01,0x04,0x3c,0x08,0x34,0x00,0x01,0x03,0xa8,0x08,0x34,0x00,0x01,0x02,0x18,0x08,0x34,0x00,0x01,0x02,0x90,0x08,0x34,0x00,0x01,0x02,0x3e,0x08,0x34, -0x00,0x01,0x03,0x02,0x08,0x34,0x00,0x01,0x04,0xd3,0x08,0x34,0x00,0x01,0x04,0x72,0x08,0x34,0x00,0x01,0x05,0x96,0x08,0x34,0x00,0x01,0x05,0x1a,0x08,0x34,0x00,0x01,0x02,0xae,0x08,0x34,0x00,0x01,0x03,0xa2,0x08,0x34,0x00,0x01,0x03,0x2f,0x08,0x34,0x00,0x01,0x01,0xfa,0x08,0x34,0x00,0x01,0x02,0x10,0x08,0x34,0x00,0x01,0x02,0x44, -0x08,0x34,0x00,0x01,0x04,0xcb,0x08,0x34,0x00,0x01,0x04,0xc2,0x08,0x34,0x00,0x01,0x04,0x77,0x08,0x34,0x00,0x01,0x03,0x56,0x08,0x34,0x00,0x01,0x04,0x18,0x08,0x34,0x00,0x01,0x02,0xec,0x08,0x34,0x00,0x01,0x04,0x62,0x08,0x34,0x00,0x01,0x03,0x14,0x08,0x34,0x00,0x01,0x07,0x54,0x08,0x34,0x00,0x01,0x07,0x98,0x08,0x34,0x00,0x01, -0x07,0xcf,0x08,0x34,0x00,0x01,0x03,0xcf,0x08,0x34,0x00,0x01,0x05,0xbe,0x08,0x34,0x00,0x01,0x06,0x58,0x08,0x34,0x00,0x01,0x03,0xf4,0x08,0x34,0x00,0x01,0x05,0x27,0x08,0x34,0x00,0x01,0x02,0x60,0x08,0x34,0x00,0x01,0x05,0x0e,0x08,0x34,0x00,0x01,0x07,0x7a,0x08,0x34,0x00,0x01,0x04,0x16,0x08,0x34,0x00,0x01,0x03,0xb5,0x08,0x34, -0x00,0x01,0x03,0xb1,0x08,0x34,0x00,0x01,0x04,0x9f,0x08,0x34,0x00,0x01,0x07,0x3d,0x08,0x34,0x00,0x01,0x02,0x22,0x08,0x34,0x00,0x01,0x04,0x46,0x08,0x34,0x00,0x01,0x03,0x76,0x08,0x34,0x00,0x01,0x03,0x81,0x08,0x34,0x00,0x01,0x03,0x91,0x08,0x34,0x00,0x01,0x05,0xe0,0x08,0x34,0x00,0x01,0x04,0xc1,0x08,0x34,0x00,0x01,0x02,0xf4, -0x08,0x34,0x00,0x01,0x05,0x07,0x08,0x34,0x00,0x01,0x06,0x01,0x08,0x34,0x00,0x01,0x03,0x9c,0x08,0x34,0x00,0x01,0x02,0x4a,0x08,0x34,0x00,0x01,0x04,0x19,0x08,0x34,0x00,0x01,0x04,0x8d,0x08,0x34,0x00,0x01,0x05,0x98,0x08,0x34,0x00,0x01,0x01,0x90,0x01,0xfa,0x00,0x01,0x00,0x0c,0x01,0x0e,0x00,0x40,0x00,0x00,0x2b,0xce,0x00,0x00, -0x2b,0xd4,0x00,0x00,0x2b,0xd4,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe6,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xf2,0x00,0x00,0x2b,0xda,0x00,0x00, -0x2b,0xda,0x00,0x00,0x2b,0xf8,0x00,0x00,0x2b,0xfe,0x00,0x00,0x2c,0x04,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x10,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2c,0x16,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x1c,0x00,0x00,0x2c,0x22,0x00,0x00, -0x2c,0x28,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00, -0x2c,0x3a,0x00,0x00,0x2c,0x40,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x46,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x4c,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x64,0x00,0x40,0x2b,0x68,0x2b,0x6e, -0x2b,0x74,0x2b,0x7a,0x2b,0x80,0x2b,0x86,0x2b,0x8c,0x2b,0x92,0x2b,0x98,0x2b,0x9e,0x2b,0xa4,0x2b,0xaa,0x2b,0xb0,0x2b,0xaa,0x2b,0xaa,0x2b,0xaa,0x2b,0xb6,0x2b,0x92,0x2b,0xbc,0x2b,0xc2,0x2b,0xc2,0x2b,0xb6,0x2b,0xc8,0x2b,0xce,0x2b,0xd4,0x2b,0xda,0x2b,0xe0,0x2b,0xaa,0x2b,0xe6,0x2b,0xec,0x2b,0xf2,0x2b,0xf8,0x2b,0xfe,0x2c,0x04, -0x2c,0x0a,0x2c,0x0a,0x2c,0x10,0x2c,0x10,0x2c,0x16,0x2c,0x10,0x2c,0x10,0x2c,0x10,0x2c,0x1c,0x2c,0x1c,0x2c,0x10,0x2c,0x10,0x2c,0x22,0x2c,0x10,0x2c,0x10,0x2c,0x28,0x2c,0x2e,0x2b,0xb6,0x2c,0x2e,0x2c,0x34,0x2c,0x3a,0x2c,0x3a,0x2b,0x92,0x2c,0x40,0x2c,0x40,0x2c,0x46,0x2c,0x46,0x2c,0x4c,0x2c,0x4c,0x2c,0x52,0x00,0x02,0x00,0x11, -0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79,0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57, -0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f,0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, -0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, -0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x01,0x12,0x01,0x6a,0x00,0x01,0x00,0x0c,0x00,0xba,0x00,0x2b,0x00,0x00,0x2a,0xf6,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x02,0x00,0x00,0x2b,0x08,0x00,0x00,0x2b,0x0e,0x00,0x00,0x2b,0x14,0x00,0x00,0x2b,0x14,0x00,0x00, -0x2b,0x14,0x00,0x00,0x2b,0x1a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x26,0x00,0x00,0x2b,0x2c,0x00,0x00,0x2b,0x32,0x00,0x00, -0x2b,0x38,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x3e,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x44,0x00,0x00,0x2b,0x4a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x50,0x00,0x00,0x2b,0x56,0x00,0x00,0x2b,0x5c,0x00,0x00,0x2b,0x62,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x6e,0x00,0x00,0x2b,0x26,0x00,0x00, -0x2b,0x74,0x00,0x00,0x2b,0x7a,0x00,0x00,0x2b,0x80,0x00,0x2b,0x2a,0xd8,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xea,0x2a,0xf0,0x2a,0xf6,0x2a,0xe4,0x2a,0xfc,0x2a,0xe4,0x2b,0x02,0x2a,0xde,0x2a,0xde,0x2b,0x08,0x2b,0x0e,0x2b,0x14,0x2b,0x1a,0x2b,0x20,0x2b,0x26,0x2a,0xe4,0x2a,0xe4, -0x2b,0x2c,0x2b,0x14,0x2b,0x32,0x2b,0x38,0x2a,0xfc,0x2a,0xde,0x2a,0xe4,0x2a,0xe4,0x2b,0x3e,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xde,0x2b,0x44,0x2b,0x4a,0x00,0x02,0x00,0x0e,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87, -0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26,0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x02,0x00,0x0e,0x02,0x45, -0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87,0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26, -0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x01,0x00,0x18,0x00,0x1e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x27,0xb4,0x00,0x02,0x2a,0x36,0x2a,0x3c,0x00,0x01,0x00,0x01,0x04,0x64,0x00,0x01,0x00,0x02,0x02,0xcf,0x02,0xd0,0x00,0x01,0x0e,0xec,0x0f,0x62,0x00,0x02, -0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x28,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x34,0x00,0x00,0x2a,0x3a,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x46,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x01,0x2a,0x58,0x00,0x00,0x2a,0x5e,0x00,0x01, -0x2a,0x64,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x00,0x2a,0x6a,0x00,0x00,0x2a,0x70,0x00,0x00,0x2a,0x76,0x00,0x00,0x2a,0x7c,0x00,0x00,0x2a,0x82,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x8e,0x00,0x01,0x2a,0x94,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x9a,0x00,0x00,0x2a,0x88,0x00,0x01,0x2a,0xa0,0x00,0x00,0x2a,0xa6,0x00,0x01, -0x2a,0xac,0x00,0x00,0x2a,0xb2,0x00,0x00,0x2a,0xb8,0x00,0x00,0x2a,0xbe,0x00,0x00,0x2a,0xc4,0x00,0x00,0x2a,0xca,0x00,0x01,0x2a,0xd0,0x00,0x00,0x2a,0x3a,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0xd6,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe2,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0x22,0x00,0x00, -0x2a,0x22,0x00,0x00,0x2a,0x22,0x00,0x01,0x2a,0xee,0x00,0x00,0x2a,0xf4,0x00,0x00,0x2a,0xfa,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x06,0x00,0x00,0x2a,0x22,0x00,0x00,0x2b,0x0c,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x12,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00, -0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00,0x2b,0x1e,0x00,0x01,0x2b,0x24,0x00,0x01,0x2b,0x24,0x00,0x00,0x2b,0x2a,0x00,0x00,0x2b,0x2a,0x00,0x01,0x2b,0x30,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x3c,0x00,0x01,0x2b,0x42,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x4e,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x5a,0x00,0x01,0x2b,0x60,0x00,0x01, -0x2b,0x66,0x00,0x00,0x2b,0x6c,0x00,0x00,0x2b,0x72,0x00,0x01,0x2b,0x78,0x00,0x00,0x2b,0x7e,0x00,0x00,0x2b,0x54,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x84,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x8a,0x00,0x01,0x2b,0x90,0x00,0x01,0x2b,0x90,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x96,0x00,0x00,0x2b,0x9c,0x00,0x00,0x2b,0x6c,0x00,0x00, -0x2b,0xa2,0x00,0x00,0x2b,0xa8,0x00,0x00,0x2b,0xae,0x00,0x00,0x2b,0xb4,0x00,0x00,0x2b,0xba,0x00,0x00,0x2b,0xc0,0x00,0x00,0x2b,0xc6,0x00,0x01,0x2b,0xcc,0x00,0x00,0x2b,0xd2,0x00,0x00,0x2b,0xd8,0x00,0x00,0x2b,0xde,0x00,0x00,0x2b,0xe4,0x00,0x00,0x2b,0xea,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2b,0xf6,0x00,0x00,0x2b,0xfc,0x00,0x01, -0x2c,0x02,0x03,0x48,0x2a,0x4a,0x2a,0x50,0x2a,0x56,0x2a,0x50,0x2a,0x5c,0x2a,0x50,0x2a,0x4a,0x2a,0x62,0x2a,0x68,0x2a,0x6e,0x2a,0x74,0x2a,0x7a,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0xaa,0x2a,0x98,0x2a,0xb0,0x2a,0xb6,0x2a,0xbc,0x2a,0xb6, -0x2a,0xc2,0x2a,0xc8,0x2a,0xc2,0x2a,0xc8,0x2a,0xce,0x2a,0xd4,0x2a,0xda,0x2a,0xd4,0x2a,0xe0,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x2a,0xf8,0x2a,0xe6,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x10,0x2b,0x16,0x2b,0x1c,0x2b,0x22,0x2b,0x28,0x2b,0x2e,0x2b,0x34,0x2a,0x7a, -0x2b,0x3a,0x2b,0x40,0x2b,0x46,0x2b,0x4c,0x2b,0x52,0x2b,0x58,0x2a,0x68,0x2b,0x5e,0x2b,0x64,0x2b,0x6a,0x2b,0x70,0x2b,0x58,0x2b,0x64,0x2b,0x76,0x2b,0x7c,0x2a,0x7a,0x2b,0x82,0x2b,0x88,0x2b,0x8e,0x2b,0x94,0x2a,0x5c,0x2b,0x9a,0x2a,0x56,0x2b,0x9a,0x2b,0xa0,0x2b,0xa6,0x2a,0x4a,0x2a,0x62,0x2b,0xac,0x2b,0xb2,0x2a,0x4a,0x2b,0x9a, -0x2b,0xb8,0x2b,0xbe,0x2b,0xc4,0x2b,0xca,0x2b,0xd0,0x2b,0xd6,0x2b,0xdc,0x2b,0xd6,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2b,0xe2,0x2b,0xe8,0x2b,0xee,0x2b,0xe8,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x2c,0x12,0x2c,0x18,0x2c,0x12,0x2c,0x18,0x2c,0x1e,0x2c,0x24, -0x2c,0x1e,0x2c,0x24,0x2c,0x2a,0x2a,0xe6,0x2c,0x30,0x2a,0xe6,0x2c,0x36,0x2c,0x3c,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2c,0x66,0x2c,0x6c,0x2c,0x72,0x2c,0x78,0x2c,0x7e,0x2c,0x84,0x2c,0x8a,0x2b,0xca,0x2c,0x90,0x2b,0xa6,0x2c,0x96,0x2c,0x9c,0x2c,0x96,0x2c,0xa2,0x2a,0x68,0x2a,0x7a,0x2c,0xa8,0x2b,0x04, -0x2c,0xa8,0x2b,0x04,0x2b,0xb8,0x2b,0xd6,0x2b,0x1c,0x2b,0x16,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2c,0xc0,0x2b,0xfa,0x2c,0xc6,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2c,0x96,0x2c,0x9c,0x2b,0x64,0x2b,0x76,0x2a,0x68,0x2b,0x5e, -0x2c,0xde,0x2b,0x58,0x2c,0xe4,0x2b,0xca,0x2c,0x66,0x2c,0x6c,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a,0x2c,0xf6,0x2b,0xe8,0x2c,0xfc,0x2b,0xfa,0x2d,0x02,0x2c,0x84,0x2d,0x08,0x2b,0xca,0x2a,0x68,0x2d,0x0e,0x2d,0x14,0x2d,0x1a,0x2c,0xe4,0x2b,0xca,0x2b,0xc4,0x2b,0xca,0x2d,0x20,0x2d,0x26,0x2d,0x2c,0x2d,0x32,0x2d,0x38,0x2d,0x26, -0x2d,0x3e,0x2d,0x32,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2d,0x50,0x2d,0x56,0x2d,0x5c,0x2c,0x54,0x2d,0x62,0x2b,0x9a,0x2d,0x62,0x2a,0x50,0x2a,0x56,0x2b,0x9a,0x2a,0x56,0x2a,0x50,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2b,0x9a,0x2a,0x4a,0x2a,0x50,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a, -0x2d,0x80,0x2c,0x9c,0x2d,0x86,0x2b,0x76,0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb0,0x2a,0x98,0x2d,0xb0,0x2a,0x98, -0x2d,0xb6,0x2a,0x9e,0x2d,0xbc,0x2a,0x98,0x2d,0xbc,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2d,0xc8,0x2a,0x98,0x2d,0xc8,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, -0x2b,0xe2,0x2d,0xce,0x2b,0xe2,0x2d,0xd4,0x2b,0xee,0x2d,0xd4,0x2b,0xee,0x2b,0xe8,0x2b,0xe2,0x2d,0xd4,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0x06,0x2d,0xf2, -0x2d,0xf8,0x2d,0xfe,0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x2e,0x2a,0xe6,0x2e,0x34,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48, -0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2a,0xfe,0x2e,0x46,0x2a,0xfe,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x2e,0x4c,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2e,0x52,0x2c,0x54,0x2e,0x58,0x2c,0x54,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x2c,0xc6,0x2c,0xcc, -0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60,0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2e,0x8e,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x2c,0xd2,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x2c,0xd2,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x2e,0xac,0x2c,0xcc, -0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c,0x2e,0xb8,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xbe,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xc4,0x2b,0x22,0x2c,0x66,0x2e,0xca,0x2b,0x1c,0x2e,0xd0,0x2e,0xd6,0x2e,0xdc,0x2b,0x34,0x2a,0x6e,0x2e,0xe2,0x2c,0x84,0x2e,0xd6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x2a,0xaa,0x2a,0x98, -0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2c,0xba,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2f,0x1e,0x2f,0x24,0x2f,0x2a,0x2b,0x88,0x2f,0x30,0x2c,0x9c,0x2f,0x36,0x2b,0x76,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6, -0x2f,0x42,0x2f,0x48,0x2f,0x4e,0x2f,0x54,0x2f,0x42,0x2f,0x5a,0x2f,0x4e,0x2f,0x60,0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2c,0x30,0x2a,0xe6,0x2f,0x6c,0x2a,0xe6,0x2a,0xec,0x2f,0x72,0x2a,0xf2,0x2f,0x72,0x2c,0x72,0x2f,0x78,0x2f,0x7e,0x2c,0xcc,0x2f,0x7e,0x2c,0xcc,0x2f,0x84,0x2f,0x8a, -0x2f,0x90,0x2b,0xe8,0x2f,0x96,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2f,0x9c,0x2b,0x40,0x2f,0xa2,0x2b,0x4c,0x2f,0xa8,0x2f,0xae,0x2f,0xb4,0x2f,0xba,0x2e,0xb8,0x2b,0x16,0x2e,0xbe,0x2b,0x16,0x2e,0xc4,0x2b,0x16,0x2b,0x1c,0x2e,0xd0,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2f,0xc6,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e, -0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8,0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xaa,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, -0x2b,0xe2,0x2f,0xe4,0x2b,0xe2,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2f,0xf6,0x2a,0xe6,0x2f,0xfc,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4, -0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x30,0x0e,0x2c,0xa8,0x30,0x0e,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x30,0x14,0x30,0x1a,0x2c,0xcc,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x30,0x20,0x2c,0xcc,0x2e,0x88,0x2b,0x16,0x2e,0x88,0x2b,0x16,0x2c,0xc6,0x2c,0xae,0x2b,0x10,0x30,0x26,0x2b,0x10,0x30,0x26, -0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e,0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x2e,0xd6,0x30,0x44,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2b,0x1c,0x2b,0x22,0x2b,0x1c,0x2b,0x16,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa, -0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xfc,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa,0x30,0x68,0x30,0x6e, -0x2b,0x64,0x30,0x74,0x2a,0x68,0x2d,0xa4,0x2a,0x68,0x2d,0xa4,0x2b,0xa0,0x2b,0xa6,0x2b,0x7c,0x2a,0x7a,0x2b,0xb8,0x2b,0xbe,0x2a,0x68,0x2a,0x6e,0x2b,0xd0,0x2b,0xd6,0x2a,0x74,0x2a,0x7a,0x2b,0xdc,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2a,0x9e,0x2a,0xa4,0x2a,0x9e,0x30,0x7a,0x2b,0xe8,0x30,0x80,0x2b,0xe8, -0x2c,0x06,0x2c,0x0c,0x2a,0xb0,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x30,0x8c,0x2c,0x9c,0x30,0x92,0x2b,0x76, -0x2a,0x74,0x2b,0x5e,0x2a,0x74,0x2b,0x5e,0x30,0x98,0x2c,0x9c,0x30,0x9e,0x2b,0x76,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2b,0x10,0x2b,0x16,0x2c,0x72,0x2c,0x78,0x2b,0x28,0x2b,0x2e,0x2c,0x7e,0x2c,0x84,0x2b,0x34,0x2a,0x7a,0x30,0xa4,0x2a,0x9e,0x30,0xaa,0x2b,0x40, -0x30,0xb0,0x30,0xb6,0x2c,0x90,0x2b,0xa6,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2b,0x5e,0x2b,0xb8,0x2b,0xd6,0x2a,0x68,0x2a,0x7a,0x2d,0x5c,0x2c,0x54,0x2c,0xa8,0x2b,0x04,0x2c,0xa8,0x2b,0x04,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a,0x30,0xbc,0x2a,0x7a,0x30,0xbc,0x2a,0x7a,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a, -0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb6,0x2a,0x9e,0x2d,0xc2,0x2a,0x9e, -0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2c,0xba,0x2d,0xc2,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x2a,0x86,0x2c,0xba,0x30,0xc2,0x2b,0xe8,0x30,0x7a,0x2d,0xce,0x30,0x7a,0x2d,0xd4,0x30,0x80,0x2d,0xd4,0x30,0x80,0x2b,0xe8,0x30,0x7a,0x2d,0xd4,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x2c,0x06,0x2d,0xf2,0x2d,0xf8,0x2d,0xfe, -0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x28,0x30,0x86,0x2e,0x28,0x30,0x86,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2d,0x44,0x2c,0x48,0x2c,0x42,0x2c,0x48, -0x2d,0x44,0x2c,0x48,0x2e,0x52,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2e,0x58,0x2c,0x54,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60, -0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xd4,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xda,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x30,0xd4,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x30,0xd4,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x30,0xe0,0x2c,0xcc,0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c, -0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2e,0xca,0x30,0xe6,0x30,0xec,0x2b,0x34,0x2a,0x6e,0x2d,0x02,0x2c,0x84,0x2e,0xe2,0x2c,0x84,0x2c,0xf0,0x2a,0x7a,0x2c,0xf0,0x2a,0x7a,0x30,0xe6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x30,0xa4,0x2a,0x9e,0x30,0xb0,0x30,0xb6,0x2a,0xa4,0x2c,0xba,0x30,0xf2,0x2d,0x56, -0x30,0xf8,0x2d,0x56,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2a,0x68,0x2b,0x5e,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2c,0xb4,0x2a,0x68,0x2c,0xb4, -0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2a,0x6e,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8, -0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xa4,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x30,0xfe,0x2f,0xe4,0x30,0x7a,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x31,0x04,0x2c,0xcc,0x31,0x0a,0x2c,0xcc,0x30,0xce,0x2c,0xae,0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e, -0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x30,0xe6,0x31,0x10,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0x1c,0x2a,0x86,0x31,0x1c,0x2a,0x92,0x31,0x22,0x2a,0x92,0x31,0x22, -0x31,0x28,0x31,0x2e,0x31,0x28,0x31,0x2e,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0x34,0x2a,0xb6,0x31,0x34,0x2a,0xb6,0x31,0x3a,0x2b,0xfa,0x31,0x3a,0x2b,0xfa,0x31,0x40,0x2a,0x98,0x31,0x40,0x2a,0x98,0x31,0x46,0x2a,0x9e,0x31,0x46,0x2a,0x9e,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58, -0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x2f,0x42,0x31,0x70,0x31,0x76,0x31,0x70,0x2a,0x68,0x31,0x7c,0x2a,0x68,0x31,0x7c,0x31,0x82,0x31,0x88,0x31,0x82,0x31,0x88,0x31,0x8e,0x31,0x94,0x31,0x8e,0x31,0x94, -0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0xa6,0x2a,0x86,0x31,0xa6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xac,0x2a,0xb6,0x31,0xac,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xb2,0x2a,0xb6,0x31,0xb2,0x2a,0xb6, -0x2e,0x76,0x2c,0x60,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x31,0xb8,0x31,0xbe,0x31,0xc4,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xca,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xdc,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe8,0x2a,0xd4,0x31,0xe8,0x2a,0xd4, -0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xf4,0x31,0xfa,0x31,0xf4,0x31,0xfa,0x31,0xe8,0x32,0x00,0x31,0xe8,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x31,0xfa,0x31,0xee,0x31,0xfa,0x32,0x06,0x2a,0xd4,0x32,0x06,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x32,0x0c,0x2a,0xd4,0x32,0x0c,0x2a,0xd4, -0x32,0x12,0x2a,0xd4,0x32,0x12,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x32,0x24,0x32,0x1e,0x32,0x24,0x32,0x2a,0x2a,0xc8,0x32,0x2a,0x2a,0xc8,0x32,0x1e,0x2e,0x16,0x32,0x1e,0x2e,0x16,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c, -0x32,0x42,0x32,0x36,0x32,0x42,0x32,0x3c,0x32,0x48,0x32,0x36,0x32,0x48,0x32,0x3c,0x32,0x4e,0x32,0x36,0x32,0x4e,0x32,0x3c,0x32,0x30,0x32,0x54,0x32,0x30,0x32,0x5a,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c,0x32,0x60,0x32,0x66,0x32,0x6c,0x32,0x66,0x32,0x72,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x60,0x32,0x7e, -0x32,0x60,0x32,0x84,0x32,0x6c,0x32,0x7e,0x32,0x6c,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x90,0x32,0x66,0x32,0x96,0x32,0x66,0x2b,0x82,0x2b,0x88,0x32,0x9c,0x2b,0x76,0x32,0xa2,0x2b,0x76,0x32,0xa8,0x2b,0x76,0x32,0xae,0x2b,0x76,0x32,0xae,0x32,0xb4,0x2d,0x86,0x2b,0x76, -0x32,0xba,0x2b,0x88,0x2f,0x36,0x2b,0x76,0x31,0x76,0x32,0xc0,0x31,0x64,0x2b,0x76,0x31,0x64,0x2b,0x76,0x31,0x76,0x32,0xc6,0x31,0x76,0x32,0xcc,0x32,0xd2,0x2d,0x32,0x32,0xd2,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x32,0xae,0x2b,0x76, -0x31,0x76,0x32,0xd8,0x32,0xae,0x32,0xde,0x32,0xe4,0x32,0xea,0x32,0xf0,0x32,0xf6,0x2b,0x52,0x2b,0x58,0x32,0x8a,0x32,0x66,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x33,0x0e,0x33,0x14,0x33,0x0e,0x33,0x14,0x33,0x1a,0x2a,0x8c,0x33,0x1a,0x2a,0x8c,0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24, -0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24,0x2c,0x42,0x33,0x26,0x33,0x2c,0x33,0x32,0x33,0x2c,0x33,0x32,0x33,0x38,0x33,0x26,0x33,0x3e,0x33,0x44,0x33,0x4a,0x33,0x32,0x33,0x4a,0x33,0x32,0x33,0x3e,0x33,0x44,0x33,0x50,0x33,0x56,0x33,0x5c,0x32,0xea,0x33,0x5c,0x2b,0x16,0x33,0x50,0x33,0x56,0x33,0x62,0x33,0x68,0x33,0x6e,0x2b,0x2e, -0x33,0x6e,0x2b,0x2e,0x33,0x62,0x33,0x68,0x33,0x74,0x33,0x7a,0x33,0x80,0x33,0x86,0x33,0x80,0x33,0x8c,0x33,0x92,0x33,0x98,0x33,0x9e,0x33,0x7a,0x33,0xa4,0x33,0x8c,0x33,0xa4,0x33,0x8c,0x33,0xaa,0x33,0x98,0x33,0xb0,0x33,0xb6,0x33,0xb0,0x33,0xb6,0x2c,0x90,0x33,0xbc,0x2c,0x90,0x33,0xbc,0x33,0xc2,0x33,0xc8,0x33,0xc2,0x33,0xc8, -0x2b,0xd0,0x33,0x02,0x33,0x80,0x33,0x8c,0x33,0x80,0x33,0x8c,0x2b,0xd0,0x33,0x02,0x30,0x7a,0x33,0xce,0x30,0x7a,0x33,0xce,0x2c,0x12,0x33,0xd4,0x2a,0xc2,0x33,0xda,0x2a,0xc2,0x33,0xda,0x2c,0x12,0x33,0xd4,0x2c,0xd2,0x2c,0xcc,0x33,0xe0,0x2b,0x16,0x33,0xe0,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0x90,0x33,0xe6,0x2c,0x90,0x33,0xe6, -0x33,0xec,0x2b,0xfa,0x33,0xec,0x2b,0xfa,0x2c,0x2a,0x2a,0xe6,0x2c,0x5a,0x2c,0xae,0x33,0xf2,0x2b,0xbe,0x33,0xf2,0x2c,0xae,0x33,0xf2,0x2b,0xd6,0x33,0xf8,0x2b,0xfa,0x33,0xfe,0x2c,0xa2,0x2c,0x42,0x2c,0x48,0x2d,0x5c,0x2c,0x54,0x2d,0x02,0x2c,0x84,0x34,0x04,0x27,0x56,0x2a,0xe0,0x2a,0xe6,0x2a,0xda,0x34,0x0a,0x2a,0xce,0x34,0x10, -0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2e,0xa0,0x2b,0x10,0x2e,0xa0,0x33,0xf2,0x2b,0xbe,0x34,0x16,0x2a,0x6e,0x34,0x16,0x2a,0x6e,0x33,0xf2,0x2c,0xae,0x34,0x16,0x2c,0xb4,0x34,0x16,0x2c,0xb4,0x33,0xf2,0x2b,0xd6,0x34,0x1c,0x2b,0x16,0x34,0x1c,0x2b,0x16,0x33,0xf8,0x2b,0xfa,0x34,0x22,0x2b,0x6a,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e, -0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2d,0x5c,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2d,0x02,0x2c,0x84,0x27,0x56,0x27,0x56,0x27,0x56,0x27,0x56,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c, -0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44, -0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x25,0x08,0xc7,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe9,0x00,0x10,0x08,0xeb,0x08,0xf7,0x00,0x19,0x08,0xf9,0x08,0xf9,0x00,0x26,0x09,0x02,0x09,0x02,0x00,0x27,0x09,0x07,0x09,0x2b, -0x00,0x28,0x09,0x3b,0x09,0x4e,0x00,0x4d,0x09,0x59,0x09,0x59,0x00,0x61,0x09,0x5b,0x09,0x68,0x00,0x62,0x09,0x6c,0x09,0x6e,0x00,0x70,0x09,0x72,0x09,0x72,0x00,0x73,0x09,0x7c,0x09,0x7c,0x00,0x74,0x09,0x80,0x09,0xf8,0x00,0x75,0x09,0xfa,0x0a,0x0e,0x00,0xee,0x0a,0x24,0x0a,0x2b,0x01,0x03,0x0a,0x2d,0x0a,0x2d,0x01,0x0b,0x0a,0x3e, -0x0a,0x3f,0x01,0x0c,0x0a,0x43,0x0a,0x43,0x01,0x0e,0x0a,0x54,0x0a,0x5b,0x01,0x0f,0x0a,0x5f,0x0a,0x62,0x01,0x17,0x0a,0x72,0x0a,0xb7,0x01,0x1b,0x0b,0x0c,0x0b,0x18,0x01,0x61,0x0e,0x20,0x0e,0x3e,0x01,0x6e,0x0e,0x4b,0x0e,0x61,0x01,0x8d,0x0e,0x6e,0x0e,0x72,0x01,0xa4,0x0e,0x74,0x0e,0xd5,0x01,0xa9,0x0e,0xd7,0x0e,0xea,0x02,0x0b, -0x0e,0xec,0x0f,0x4f,0x02,0x1f,0x0f,0x62,0x0f,0xc3,0x02,0x83,0x13,0x00,0x13,0x29,0x02,0xe5,0x14,0x04,0x14,0x07,0x03,0x0f,0x14,0x09,0x14,0x16,0x03,0x13,0x14,0x53,0x14,0x5c,0x03,0x21,0x14,0x6b,0x14,0x6b,0x03,0x2b,0x14,0x6d,0x14,0x7b,0x03,0x2c,0x14,0x7d,0x14,0x87,0x03,0x3b,0x14,0xad,0x14,0xae,0x03,0x46,0x00,0x01,0x02,0x2c, -0x02,0xa2,0x00,0x02,0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xe4,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xf0,0x00,0x00,0x19,0xf6,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xfc,0x00,0x00,0x19,0xfc,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x01,0x1a,0x14,0x00,0x00, -0x1a,0x1a,0x00,0x01,0x1a,0x20,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x00,0x1a,0x26,0x00,0x00,0x1a,0x2c,0x00,0x00,0x1a,0x32,0x00,0x00,0x1a,0x38,0x00,0x00,0x1a,0x3e,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x4a,0x00,0x01,0x1a,0x50,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x56,0x00,0x00,0x1a,0x44,0x00,0x01,0x1a,0x5c,0x00,0x00, -0x1a,0x62,0x00,0x01,0x1a,0x68,0x00,0x00,0x1a,0x6e,0x00,0x00,0x1a,0x74,0x00,0x00,0x1a,0x7a,0x00,0x00,0x1a,0x80,0x00,0x00,0x1a,0x86,0x00,0x01,0x1a,0x8c,0x00,0x00,0x19,0xf6,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x92,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x9e,0x00,0x00,0x1a,0xa4,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xa4,0x00,0x00, -0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x01,0x1a,0xaa,0x00,0x00,0x1a,0xb0,0x00,0x00,0x1a,0xb6,0x00,0x00,0x1a,0xbc,0x00,0x00,0x1a,0xc2,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0xc8,0x00,0x01,0x19,0xea,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xce,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xd4,0x00,0x00, -0x1a,0xda,0x00,0x00,0x1a,0xd4,0x00,0x00,0x1a,0xda,0x00,0x00,0x1a,0xda,0x00,0x01,0x1a,0xe0,0x00,0x01,0x1a,0xe0,0x00,0x00,0x1a,0xe6,0x00,0x00,0x1a,0xe6,0x00,0x01,0x1a,0xec,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1a,0xf8,0x00,0x01,0x1a,0xfe,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x0a,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x16,0x00,0x01, -0x1b,0x1c,0x00,0x01,0x1b,0x22,0x00,0x00,0x1b,0x28,0x00,0x00,0x1b,0x2e,0x00,0x01,0x1b,0x34,0x00,0x00,0x1b,0x3a,0x00,0x00,0x1b,0x10,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x40,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x46,0x00,0x01,0x1b,0x4c,0x00,0x01,0x1b,0x4c,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1b,0x52,0x00,0x00,0x1b,0x58,0x00,0x00, -0x1b,0x28,0x00,0x00,0x1b,0x5e,0x00,0x00,0x1b,0x64,0x00,0x00,0x1b,0x6a,0x00,0x00,0x1b,0x70,0x00,0x00,0x1b,0x76,0x00,0x00,0x1b,0x7c,0x00,0x00,0x1b,0x82,0x00,0x01,0x1b,0x88,0x00,0x00,0x1b,0x8e,0x00,0x00,0x1b,0x94,0x00,0x00,0x1b,0x9a,0x00,0x00,0x1b,0xa0,0x00,0x00,0x1b,0xa6,0x00,0x00,0x1b,0xac,0x00,0x00,0x1b,0xb2,0x00,0x00, -0x1b,0xb8,0x00,0x01,0x1b,0xbe,0x00,0x05,0x00,0x0c,0x00,0x1a,0x00,0x2c,0x00,0x3e,0x00,0x50,0x00,0x03,0x23,0xd8,0x23,0xde,0x23,0xe4,0x23,0xea,0x1b,0x02,0x1b,0x08,0x00,0x04,0x23,0xe2,0x23,0xe8,0x23,0xca,0x23,0xd0,0x23,0xd6,0x23,0xdc,0x1a,0xf4,0x1a,0xfa,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0xee,0x23,0xf4,0x23,0xfa, -0x1b,0xf6,0x1b,0xfc,0x00,0x04,0x23,0xee,0x23,0xf4,0x23,0xa6,0x23,0xac,0x23,0xb2,0x23,0xb8,0x1a,0xd0,0x1a,0xd6,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0x9a,0x23,0xee,0x23,0xa6,0x1a,0xbe,0x1a,0xc4,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77, -0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38, -0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x03,0x09,0x71,0x09,0x71,0x00,0x00,0x0a,0x63,0x0a,0x64,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x03,0x00,0x01,0x02,0x20,0x02,0xd2,0x00,0x01,0x00,0x0c,0x01,0x6e, -0x00,0x58,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x2c,0x00,0x00,0x17,0x38,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x4a,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x62,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x6e,0x00,0x00,0x17,0x74,0x00,0x00, -0x17,0x7a,0x00,0x00,0x17,0x80,0x00,0x00,0x17,0x86,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x92,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x9e,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0xaa,0x00,0x00,0x17,0xb6,0x00,0x00,0x17,0xbc,0x00,0x00,0x17,0xc2,0x00,0x00,0x17,0xc8,0x00,0x00,0x17,0xce,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x8c,0x00,0x00, -0x17,0xda,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe6,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0xf8,0x00,0x00,0x17,0xfe,0x00,0x00,0x18,0x04,0x00,0x00,0x18,0x0a,0x00,0x00,0x17,0x26,0x00,0x00,0x18,0x10,0x00,0x00,0x17,0xe0,0x00,0x00, -0x18,0x16,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe0,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x40,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x52,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x70,0x00,0x00, -0x18,0x76,0x00,0x00,0x18,0x82,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x8e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x9a,0x00,0x00,0x18,0xa0,0x00,0x00,0x18,0x70,0x00,0x00,0x18,0xa6,0x00,0x00,0x18,0xac,0x00,0x00,0x18,0xb2,0x00,0x00,0x18,0xb8,0x00,0x00,0x18,0xbe,0x00,0x00,0x18,0xc4,0x00,0x00, -0x18,0xca,0x00,0x00,0x18,0xd6,0x00,0x00,0x18,0xdc,0x00,0x00,0x18,0xe2,0x00,0x00,0x18,0xe8,0x00,0x00,0x18,0xee,0x00,0x00,0x18,0xf4,0x00,0x00,0x18,0xfa,0x00,0x00,0x19,0x00,0x00,0x58,0x21,0xe8,0x21,0xee,0x21,0xf4,0x21,0xfa,0x21,0xe8,0x22,0x00,0x22,0x06,0x22,0x0c,0x22,0x12,0x22,0x18,0x22,0x1e,0x22,0x24,0x22,0x2a,0x22,0x30, -0x22,0x36,0x22,0x3c,0x22,0x42,0x22,0x36,0x22,0x48,0x22,0x4e,0x22,0x06,0x22,0x54,0x22,0x5a,0x22,0x0c,0x22,0x60,0x22,0x66,0x22,0x6c,0x22,0x72,0x22,0x78,0x22,0x7e,0x22,0x84,0x22,0x8a,0x22,0x90,0x22,0x96,0x22,0x90,0x22,0x84,0x22,0x9c,0x22,0xa2,0x22,0x42,0x22,0x42,0x22,0xa8,0x22,0xae,0x22,0xb4,0x22,0xba,0x22,0xc0,0x22,0xc6, -0x22,0x9c,0x22,0xcc,0x22,0xcc,0x22,0x84,0x22,0xd2,0x22,0xd8,0x22,0xde,0x22,0xe4,0x22,0xea,0x22,0xf0,0x22,0xf6,0x22,0xfc,0x23,0x02,0x23,0x08,0x23,0x0e,0x23,0x14,0x23,0x1a,0x23,0x20,0x23,0x26,0x23,0x2c,0x23,0x32,0x23,0x38,0x23,0x3e,0x23,0x44,0x23,0x4a,0x23,0x50,0x23,0x56,0x23,0x5c,0x22,0xe4,0x23,0x62,0x23,0x68,0x23,0x6e, -0x23,0x74,0x23,0x7a,0x23,0x80,0x23,0x86,0x23,0x8c,0x23,0x92,0x23,0x98,0x23,0x9e,0x23,0xa4,0x23,0xaa,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13, -0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62, -0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e,0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b, -0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13,0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14, -0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62,0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e, -0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b,0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x01,0x00,0x9a,0x01,0x10,0x00,0x01, -0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xd8,0x00,0x00,0x13,0xe4,0x00,0x00,0x14,0x14,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0x2c,0x00,0x00,0x14,0x50,0x00,0x00,0x14,0x6e,0x00,0x00,0x13,0xae,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xb0,0x00,0x00,0x14,0xc2,0x00,0x00, -0x14,0xda,0x00,0x00,0x14,0xe0,0x00,0x00,0x14,0xe6,0x00,0x00,0x14,0xf8,0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x4c,0x00,0x00,0x15,0x82,0x00,0x17,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x42,0x21,0x4e,0x21,0x42,0x21,0x54,0x21,0x36,0x21,0x42,0x21,0x5a,0x21,0x60,0x21,0x66, -0x21,0x6c,0x21,0x72,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x8a,0x21,0x90,0x21,0x96,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06, -0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f,0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62, -0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, -0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x01, -0x00,0x32,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x11,0x0e,0x00,0x0f,0x20,0x6e,0x20,0x74,0x20,0x7a,0x20,0x80,0x20,0x86,0x20,0x8c,0x20,0x92,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0xb0,0x20,0x7a,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00, -0x0b,0x6f,0x0b,0x6f,0x00,0x01,0x0b,0x75,0x0b,0x75,0x00,0x02,0x0b,0x77,0x0b,0x77,0x00,0x03,0x0b,0x7a,0x0b,0x7a,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x8d,0x0b,0x95,0x00,0x06,0x00,0x01,0x02,0xc8,0x02,0xe4,0x00,0x04,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02, -0x10,0xa8,0x00,0x00,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x50,0x20,0x28,0x20,0x2e,0x20,0x34,0x20,0x3a,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, -0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0xd0,0x20,0xd6,0x20,0xdc,0x20,0xe2,0x20,0xe8,0x20,0xee,0x20,0xf4,0x20,0xfa,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x20,0xb8,0x20,0xbe, -0x20,0xc4,0x20,0xca,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x20,0xc4,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2, -0x21,0xa8,0x21,0xae,0x21,0xb4,0x21,0xba,0x21,0x72,0x21,0xc0,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x21,0xf0,0x21,0xf6,0x21,0xfc,0x22,0x02,0x22,0x08,0x22,0x0e,0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a, -0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x48,0x21,0x4e, -0x21,0x54,0x21,0x5a,0x22,0x86,0x22,0x8c,0x22,0x92,0x22,0x98,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x10,0x68,0x22,0xb6,0x20,0x9a,0x22,0xbc,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66, -0x21,0x6c,0x21,0x72,0x22,0x2c,0x22,0x32,0x22,0xc2,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, -0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x22,0xe0,0x22,0xe6,0x22,0xec,0x20,0xdc,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x21,0x18,0x21,0x1e, -0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2,0x21,0xa8,0x21,0xae,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x22,0x08,0x22,0x0e, -0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0x58,0x20,0x5e,0x20,0x64,0x20,0x6a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0xd8,0x21,0xde, -0x21,0xe4,0x21,0xea,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x00,0x02,0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, -0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00, -0x0d,0x9c,0x00,0x50,0x20,0x1a,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x32,0x20,0x38,0x20,0x3e,0x20,0x44,0x20,0x32,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x5c,0x20,0x32,0x20,0x62,0x1e,0xd6,0x20,0x68,0x20,0x6e,0x1e,0xd6,0x20,0x74,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x32,0x20,0x32, -0x20,0x32,0x20,0x4a,0x20,0x4a,0x20,0x56,0x20,0x56,0x20,0x32,0x20,0x68,0x1d,0x5c,0x20,0x26,0x20,0x2c,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x4a,0x20,0x86,0x20,0x80,0x20,0x8c,0x20,0x80,0x20,0x8c,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x92,0x20,0x6e,0x20,0x44,0x20,0x92,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x5c, -0x20,0x62,0x1e,0xd6,0x20,0x6e,0x1e,0xd6,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0x56,0x20,0xb0,0x20,0x9e,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f, -0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x04,0xda,0x05,0x14,0x00,0x07,0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x06,0x0c,0xba, -0x00,0x01,0x0c,0xba,0x00,0x04,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x03,0x0c,0xba,0x00,0x02,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x05,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x51,0x1f,0x88, -0x1f,0x8e,0x1f,0x94,0x1f,0x8e,0x1f,0x9a,0x1f,0xa0,0x1f,0xa6,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x1f,0xca,0x1f,0xd0,0x1f,0xd6,0x1f,0xd0,0x1f,0xdc,0x1f,0xe2,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18, -0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x20,0x42,0x1e,0xf8,0x20,0x48,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x20,0x5a,0x1e,0x92,0x20,0x60,0x1e,0x92,0x20,0x66,0x20,0x6c,0x20,0x24,0x1d,0x78,0x1b,0xc8,0x20,0x72,0x1b,0xc8,0x20,0x78,0x20,0x7e,0x1d,0xf6,0x1f,0x28,0x20,0x84, -0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea, -0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56, -0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a,0x21,0x80,0x21,0x86,0x21,0x8c,0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xb6,0x21,0xbc,0x21,0xc2,0x21,0xbc,0x21,0xc8,0x1e,0xf2,0x20,0x06, -0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22, -0x22,0x2e,0x21,0x20,0x1c,0x7c,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xbc, -0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x20,0x42,0x22,0x58,0x22,0x5e,0x22,0x58,0x22,0x64,0x20,0x7e,0x1d,0xf6,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a, -0x21,0x80,0x21,0x86,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2, -0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c, -0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c,0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x22,0x94,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x22,0x9a,0x22,0x9a,0x1f,0xca,0x1f,0xd0,0x1f,0xd6, -0x1f,0xd0,0x1f,0xdc,0x22,0xa0,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8, -0x22,0xbe,0x22,0xc4,0x21,0x32,0x22,0xc4,0x1c,0x16,0x1d,0x5a,0x21,0x44,0x1f,0x28,0x20,0x84,0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90, -0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56,0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x8c, -0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae, -0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x22,0xca,0x20,0xea,0x22,0xd0,0x22,0xd6,0x22,0xdc,0x22,0xe2,0x22,0xe8,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x0c,0x23,0x12, -0x23,0x18,0x23,0x12,0x23,0x1e,0x23,0x24,0x23,0x2a,0x23,0x30,0x23,0x36,0x23,0x3c,0x23,0x36,0x21,0xb0,0x22,0xbe,0x23,0x42,0x20,0xcc,0x23,0x48,0x23,0x4e,0x23,0x54,0x23,0x5a,0x20,0xea,0x20,0xf0,0x23,0x60,0x23,0x66,0x1b,0xc8,0x23,0x66,0x23,0x6c,0x23,0x72,0x1c,0x34,0x23,0x78,0x23,0x7e,0x23,0x84,0x23,0x7e,0x23,0x8a,0x23,0x90, -0x23,0x96,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x9c,0x23,0xa2,0x23,0xa8,0x23,0xa2,0x20,0x36,0x23,0xae,0x23,0xb4,0x1e,0xec,0x23,0xba,0x23,0xc0,0x23,0xba,0x22,0x2e,0x20,0xc6,0x1c,0x7c,0x00,0x02,0x00,0x09,0x0b,0x61,0x0b,0x61,0x00,0x00,0x0b,0xc0,0x0b,0xc3,0x00,0x01,0x0b,0xc5,0x0b,0xc7, -0x00,0x05,0x0b,0xca,0x0b,0xcf,0x00,0x08,0x0b,0xd6,0x0b,0xd7,0x00,0x0e,0x0b,0xd9,0x0b,0xda,0x00,0x10,0x0b,0xdc,0x0b,0xdd,0x00,0x12,0x0b,0xe1,0x0b,0xe1,0x00,0x14,0x12,0x5c,0x12,0x5d,0x00,0x15,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a, -0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x0b,0xdf,0x0b,0xdf,0x00,0x4c,0x12,0x5f,0x12,0x62,0x00,0x4d,0x00,0x01,0x01,0x88,0x01,0xbc,0x00,0x02,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00, -0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x50,0x1a,0x70,0x1a,0x7c,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x19,0xda,0x1b,0x30,0x1c,0x1a,0x1e,0xd8,0x16,0xaa,0x1e,0xde, -0x1e,0xe4,0x1e,0xea,0x19,0xda,0x1b,0x30,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x08,0x1b,0xf0,0x1f,0x0e,0x1f,0x14,0x1f,0x1a,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x26,0x1f,0x2c,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x4a,0x1c,0x50,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c, -0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1e,0xf0,0x1e,0xf6,0x1e,0xf0,0x1e,0xf6,0x1e,0xfc,0x1f,0x02,0x1e,0xfc,0x1f,0x02,0x1d,0x3a,0x1f,0x86,0x1f,0x8c,0x1f,0x2c,0x1e,0xa8,0x1e,0xae,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1f,0x92,0x1f,0x98,0x1c,0xaa, -0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x9e,0x1f,0x62,0x1f,0x02,0x1f,0x74,0x1f,0x7a,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1a,0x3a,0x1d,0x8e,0x18,0xf0,0x17,0x5e,0x1e,0xe4,0x1e,0xea, -0x1a,0x3a,0x1d,0x8e,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x0e,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c,0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x19,0xda,0x1b,0x30,0x1e,0xb4,0x1e,0xba, -0x18,0xea,0x1c,0xaa,0x1f,0x3e,0x1f,0x44,0x1f,0x8c,0x1f,0xa4,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1f,0x74,0x1f,0x7a,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd0, -0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0c,0x0b,0xdb,0x0b,0xdb,0x00,0x0d,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x40,0x00,0x56,0x00,0x01, -0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x05,0x94,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x05,0x94,0x00,0x00,0x18,0x2a,0x00,0x00,0x18,0x2a,0x00,0x00,0x1e,0x06,0x00,0x00,0x1e,0x06,0x00,0x00,0x17,0x46,0x00,0x00,0x1e,0x06,0x00,0x02,0x1d,0xde,0x16,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b, -0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0xb4,0x00,0xe8,0x00,0x04,0x00,0x0c,0x00,0x42,0x00,0x0d,0x00,0x00,0x05,0x36,0x00,0x00,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x03,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36, -0x00,0x01,0x1d,0xb4,0x00,0x01,0x05,0x36,0x00,0x02,0x05,0x36,0x00,0x01,0x1d,0xba,0x00,0x01,0x05,0x36,0x00,0x03,0x1d,0xc0,0x00,0x0e,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x17,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x15,0xf2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa8,0x1d,0x90,0x1d,0x96,0x1d,0x9c, -0x17,0xa2,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xba,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0xc0,0x1d,0xae,0x1d,0xc6,0x1d,0x06,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6, -0x1a,0x84,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6,0x1a,0x84,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd1,0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x0b,0xdb,0x0b,0xdb,0x00,0x0c,0x00,0x02, -0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x01,0x00,0x78,0x00,0x8e,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x04,0x32,0x00,0x00,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x16,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2, -0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0x98,0x1c,0xfe,0x1c,0xf2,0x1c,0xf8,0x1d,0x04,0x1d,0x0a,0x1d,0x04,0x1d,0x10,0x1d,0x16,0x1d,0x10,0x1d,0x1c,0x1d,0x22,0x1d,0x28,0x1d,0x2e,0x1d,0x28, -0x1d,0x34,0x1d,0x3a,0x1c,0xfe,0x1d,0x40,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x04,0x1d,0x22,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x57,0x0b,0x58,0x00,0x01,0x0b,0x5a,0x0b,0x5a,0x00,0x03,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x67,0x0b,0x67,0x00,0x0a,0x0b,0xb9, -0x0b,0xb9,0x00,0x0b,0x0b,0xbf,0x0b,0xbf,0x00,0x0c,0x0b,0xc4,0x0b,0xc4,0x00,0x0d,0x0b,0xc9,0x0b,0xc9,0x00,0x0e,0x0b,0xd0,0x0b,0xd5,0x00,0x0f,0x0b,0xd8,0x0b,0xd8,0x00,0x15,0x00,0x01,0x00,0x70,0x00,0x9e,0x00,0x02,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x1b,0xe8,0x00,0x00,0x03,0x6a,0x00,0x00,0x16,0xf6,0x00,0x00,0x1c,0xa2, -0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa2,0x00,0x01,0x03,0x6a,0x00,0x00,0x1c,0xae,0x00,0x00,0x1c,0xa2,0x00,0x0c,0x1c,0x82,0x1c,0x52,0x1c,0x88,0x1c,0x2e,0x1c,0x8e,0x1c,0x94,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x9a,0x14,0x42,0x1c,0xa0,0x1c,0xa6, -0x1c,0xac,0x1c,0x8e,0x1c,0xa0,0x1c,0xb2,0x1c,0xb8,0x14,0x42,0x1c,0xbe,0x1c,0x8e,0x1c,0x9a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b, -0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x7c,0x00,0xb6,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12,0x00,0x00,0x1b,0x1c, -0x00,0x00,0x1a,0x74,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x17,0xf8,0x00,0x00,0x1c,0x2a,0x00,0x00,0x16,0x2a,0x00,0x00,0x1c,0x30,0x00,0x00,0x1b,0xe2,0x00,0x00,0x15,0xac,0x00,0x00,0x02,0x9e,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x02,0x9e,0x00,0x00,0x1b,0xe2,0x00,0x00,0x1c,0x36,0x00,0x00,0x1b,0x1c, -0x00,0x00,0x1c,0x36,0x00,0x12,0x1b,0x6e,0x1b,0x80,0x1b,0xf2,0x1b,0x38,0x1b,0xf8,0x1b,0xc8,0x1b,0xfe,0x1c,0x04,0x1c,0x0a,0x1c,0x0a,0x1c,0x0a,0x1c,0x10,0x1b,0x6e,0x1b,0x4a,0x1b,0xc8,0x1b,0xfe,0x1b,0x80,0x1b,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, -0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06, -0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x01,0x00,0x1a,0x00,0x22,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x01,0xae,0x00,0x00,0x01,0xae,0x00,0x01,0x1b,0x66,0x00,0x01,0x00,0x02,0x0b,0x63,0x0b,0x64, -0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64,0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00, -0x03,0xe8,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xa8,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e,0x00,0x01, -0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x01,0x53,0x04,0x06,0x00,0x01,0x01,0x18,0x06,0x77,0x00,0x01,0x00,0xe1,0x06,0x08,0x00,0x01,0x01,0x0e,0x06,0x08,0x00,0x01,0x00,0x00,0x06,0x5e,0x00,0x01,0x00,0x00,0x05,0xdc, -0x00,0x01,0x00,0x00,0x05,0x7f,0x00,0x01,0x00,0x00,0x06,0x3c,0x00,0x01,0x00,0x00,0x06,0x0e,0x00,0x01,0x00,0x00,0x05,0xd5,0x00,0x01,0x00,0x00,0x05,0xd7,0x00,0x01,0x00,0x00,0x06,0x6c,0x00,0x01,0x00,0x00,0x06,0x50,0x00,0x01,0x00,0x00,0x06,0x5c,0x00,0x01,0x00,0x00,0x06,0xb8,0x00,0x01,0x00,0x00,0x06,0x73,0x00,0x01,0x00,0x00, -0x05,0xf0,0x00,0x01,0x00,0x00,0x06,0xb5,0x00,0x01,0x00,0x00,0x07,0x6c,0x00,0x01,0x00,0x00,0x07,0x54,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x01,0x00,0x00,0x06,0x3a,0x00,0x01,0x00,0x00,0x06,0x40,0x00,0x01,0x00,0x00,0x06,0xc4,0x00,0x01,0x00,0x00,0x07,0xb2,0x00,0x01,0x00,0x00,0x06,0xf0,0x00,0x01,0x01,0x93,0x06,0x22,0x00,0x01, -0x01,0xa6,0x06,0x18,0x00,0x01,0x01,0xa8,0x06,0x4a,0x00,0x01,0x00,0x00,0x06,0xfe,0x00,0x01,0x00,0x00,0x07,0xda,0x00,0x01,0x00,0x00,0x07,0xe4,0x00,0x01,0x00,0x00,0x07,0x80,0x00,0x01,0x00,0x00,0x06,0xa8,0x00,0x01,0x00,0x00,0x06,0x54,0x00,0x01,0x00,0x00,0x06,0xc2,0x00,0x01,0x00,0x00,0x06,0x27,0x00,0x01,0x01,0xd9,0x06,0x5a, -0x00,0x01,0x01,0xd9,0x05,0x80,0x00,0x01,0x02,0x07,0x06,0x22,0x00,0x01,0x01,0x53,0x06,0xc9,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x0f,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00, -0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01, -0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x01,0x54,0xfe,0xc0,0x00,0x01,0x00,0x00,0xfe,0x48,0x00,0x01,0x00,0x00,0xfe,0x5c,0x00,0x01,0xff,0xfb,0xff,0x4c,0x00,0x01,0x00,0x00,0xfe,0xc0, -0x00,0x01,0x00,0x00,0xfe,0x7a,0x00,0x01,0x00,0x00,0xfe,0x20,0x00,0x01,0x00,0x00,0xfe,0xb6,0x00,0x01,0x00,0x00,0xfe,0x84,0x00,0x01,0x00,0x00,0xff,0x10,0x00,0x01,0x00,0x00,0xfe,0xa2,0x00,0x01,0x00,0x00,0xff,0x56,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x01,0x00,0x00,0xfd,0xf8,0x00,0x01,0x00,0x00,0xfe,0x16,0x00,0x01,0x00,0x00, -0xfe,0x3e,0x00,0x01,0x01,0xa9,0xfe,0xa2,0x00,0x01,0x00,0x00,0xfe,0x0c,0x00,0x01,0x00,0xd9,0xfe,0x02,0x00,0x01,0x02,0x80,0xfe,0x02,0x00,0x01,0x03,0x16,0x06,0x0e,0x00,0x01,0x02,0x67,0x04,0xb0,0x00,0x01,0x01,0x03,0x06,0x7c,0x00,0x01,0x00,0x7e,0x06,0x73,0x00,0x01,0x01,0x03,0xff,0x71,0x00,0x01,0x01,0x03,0x06,0x5e,0x00,0x01, -0x00,0xc4,0x06,0x73,0x00,0x01,0x01,0x03,0x06,0x76,0x00,0x01,0x01,0x03,0x06,0x62,0x00,0x01,0x01,0x03,0x06,0x1d,0x00,0x01,0x00,0xef,0x06,0x71,0x00,0x01,0x00,0xb2,0xff,0x6b,0x00,0x01,0x00,0xf5,0x06,0x7c,0x00,0x01,0x01,0x03,0xff,0x6b,0x00,0x01,0x00,0xe9,0x06,0x1e,0x00,0x01,0x01,0x03,0x06,0x70,0x00,0x01,0x00,0xec,0x06,0x1f, -0x00,0x01,0x01,0x03,0x06,0x8f,0x00,0x01,0x01,0x03,0x06,0x7b,0x00,0x01,0x01,0x03,0x06,0x71,0x00,0x01,0x01,0x1f,0x06,0x65,0x00,0x01,0x00,0xec,0x00,0x05,0x00,0x01,0x01,0x0c,0x06,0x70,0x00,0x01,0x01,0x03,0xff,0xc1,0x00,0x01,0x01,0x03,0x06,0x35,0x00,0x01,0x01,0x1f,0x00,0x34,0x00,0x01,0x00,0xf9,0x06,0x55,0x00,0x01,0x00,0xeb, -0x06,0x55,0x00,0x01,0x01,0x11,0x06,0x1f,0x00,0x01,0x01,0x1c,0x06,0x1f,0x00,0x01,0x00,0xf3,0x06,0x71,0x00,0x01,0x01,0x03,0xff,0x7e,0x00,0x01,0x00,0xf9,0x06,0x7c,0x00,0x01,0x01,0x03,0x05,0x16,0x00,0x01,0x01,0x03,0x05,0x20,0x00,0x01,0x01,0x03,0x05,0x28,0x00,0x01,0x01,0x03,0xff,0x69,0x00,0x01,0x01,0x42,0x06,0x73,0x00,0x01, -0x01,0x03,0x06,0x67,0x00,0x01,0x00,0xf8,0x06,0x1d,0x00,0x01,0x00,0xd7,0x06,0x1f,0x00,0x01,0x00,0xe1,0x06,0x7a,0x00,0x01,0x01,0x03,0x06,0x60,0x00,0x01,0x01,0x03,0x05,0x26,0x00,0x01,0x00,0xfa,0x05,0x26,0x00,0x01,0x01,0x03,0x00,0xc1,0x00,0x01,0x01,0x18,0x06,0x72,0x00,0x01,0x00,0xfa,0xff,0xce,0x00,0x01,0x01,0x40,0x06,0x72, -0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0xc8,0x06,0x72,0x00,0x01,0x01,0x68,0x06,0x72,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x00,0xbe,0xff,0x74,0x00,0x01,0x01,0x5e,0xff,0x74,0x00,0x01,0x00,0xc8,0xff,0x74,0x00,0x01,0x01,0x2c,0x06,0x72,0x00,0x01,0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x7c, -0xff,0x74,0x00,0x01,0x00,0xdc,0x06,0x72,0x00,0x01,0x01,0x04,0xff,0x74,0x00,0x01,0x00,0xa0,0x06,0x72,0x00,0x01,0x00,0x8c,0xff,0x4c,0x00,0x01,0x02,0x80,0x06,0x72,0x00,0x01,0x01,0x4a,0x06,0x72,0x00,0x01,0x01,0x03,0x03,0xb8,0x00,0x01,0x00,0xfa,0x06,0x5e,0x00,0x01,0x02,0x5a,0x06,0x71,0x00,0x01,0x01,0x05,0x06,0x1f,0x00,0x01, -0x00,0xdd,0x06,0x1e,0x00,0x01,0x00,0xfa,0x06,0x71,0x00,0x01,0x01,0x03,0x05,0xd1,0x00,0x01,0x01,0x03,0xff,0x90,0x00,0x01,0x00,0x1d,0x07,0x1d,0x00,0x01,0xff,0x8e,0x07,0x1d,0x00,0x01,0xff,0x97,0x07,0x1d,0x00,0x01,0xff,0x47,0x07,0x1d,0x00,0x01,0xff,0x79,0x07,0x1d,0x00,0x01,0xff,0xcd,0x07,0x1d,0x00,0x01,0x01,0x7a,0x06,0x71, -0x00,0x01,0x01,0x93,0x06,0x71,0x00,0x01,0xff,0xda,0x00,0x0c,0x00,0x01,0x00,0xfa,0x06,0x1e,0x00,0x01,0x00,0xfa,0xff,0x5c,0x00,0x01,0x00,0xfa,0x08,0x1b,0x00,0x01,0x00,0xfa,0x07,0x62,0x00,0x01,0x00,0xfa,0xfd,0xcc,0x00,0x01,0x00,0xfa,0x04,0x09,0x00,0x01,0x01,0x2c,0xfe,0x42,0x00,0x01,0x01,0x90,0x05,0x48,0x00,0x01,0x00,0xfa, -0xff,0x2a,0x00,0x01,0x01,0x90,0x06,0x2e,0x00,0x01,0x01,0xf4,0x04,0x09,0x00,0x01,0x02,0x26,0xfe,0x42,0x00,0x01,0x02,0x0e,0x04,0x4e,0x00,0x01,0x02,0xa4,0xfd,0xcd,0x00,0x01,0x02,0x26,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0xf7,0x00,0x01,0x02,0x0e,0x05,0x3e,0x00,0x01,0x01,0xc2,0x04,0x3b,0x00,0x01,0x02,0x58,0xff,0x2a,0x00,0x01, -0x01,0x5e,0x04,0x89,0x00,0x01,0x01,0x2c,0x03,0xd2,0x00,0x01,0x02,0xbc,0xff,0x22,0x00,0x01,0x01,0xc2,0x04,0xb6,0x00,0x01,0x01,0xf4,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0x8a,0x00,0x01,0x01,0xf5,0x04,0x5d,0x00,0x01,0x02,0x8b,0xfd,0xcd,0x00,0x01,0x01,0xc2,0x05,0x48,0x00,0x01,0x01,0xf4,0x05,0x16,0x00,0x01,0x01,0xf5,0x05,0x65, -0x00,0x01,0x01,0x90,0x05,0x88,0x00,0x01,0x01,0x90,0xff,0x2a,0x00,0x01,0x01,0xc2,0x05,0x88,0x00,0x01,0x00,0xfa,0x05,0x9e,0x00,0x01,0x01,0x5e,0xff,0x2a,0x00,0x01,0x01,0x5e,0x06,0x1e,0x00,0x01,0x01,0x2c,0xff,0x2a,0x00,0x01,0x01,0x4a,0x03,0xdb,0x00,0x01,0x02,0x44,0xfe,0xf8,0x00,0x01,0x01,0x5e,0x05,0x48,0x00,0x01,0x01,0x7f, -0x04,0xe9,0x00,0x01,0x02,0x79,0xff,0x2a,0x00,0x01,0x01,0xc5,0x04,0x50,0x00,0x01,0x03,0x55,0xfd,0xcd,0x00,0x01,0x01,0xff,0x04,0x9f,0x00,0x01,0x02,0x31,0xff,0x2a,0x00,0x01,0x01,0x40,0xfe,0x42,0x00,0x01,0x01,0xc6,0x03,0x3f,0x00,0x01,0x00,0x64,0xfe,0xff,0x00,0x01,0x01,0xff,0x05,0xc8,0x00,0x01,0x01,0xf8,0xfe,0x9e,0x00,0x01, -0x01,0x5e,0x05,0xd4,0x00,0x01,0x01,0xae,0x04,0xb7,0x00,0x01,0x01,0xe0,0xfe,0x9e,0x00,0x01,0x01,0x22,0x03,0x7c,0x00,0x01,0x01,0x81,0xff,0x38,0x00,0x01,0x00,0xfa,0xff,0x9c,0x00,0x01,0x01,0x90,0x05,0xa2,0x00,0x01,0x01,0x90,0xfd,0xcd,0x00,0x01,0x01,0xae,0x05,0x62,0x00,0x01,0x01,0xe0,0xfe,0xf1,0x00,0x01,0x02,0x3b,0x03,0xd7, -0x00,0x01,0x01,0x73,0xff,0x0a,0x00,0x01,0x01,0xa5,0x05,0xc1,0x00,0x01,0x02,0x09,0xff,0x22,0x00,0x01,0x02,0x3b,0x05,0x48,0x00,0x01,0x01,0xd7,0xff,0x22,0x00,0x01,0x01,0x73,0x05,0x02,0x00,0x01,0x01,0x1a,0x04,0x82,0x00,0x01,0x01,0xb0,0xff,0x22,0x00,0x01,0x01,0x1a,0x05,0xc1,0x00,0x01,0x01,0x90,0x03,0x26,0x00,0x01,0x01,0x2c, -0xfd,0xcd,0x00,0x01,0x01,0x90,0x04,0x6b,0x00,0x01,0x02,0x8f,0x03,0xd7,0x00,0x01,0x06,0x13,0xff,0x2b,0x00,0x01,0x02,0x8f,0x03,0xd2,0x00,0x01,0x06,0xdb,0xff,0x2b,0x00,0x01,0x03,0xe8,0x05,0x24,0x00,0x01,0x02,0xee,0xff,0x22,0x00,0x01,0x01,0x91,0x04,0xf2,0x00,0x01,0x01,0x91,0x05,0xf3,0x00,0x01,0x00,0x96,0x02,0x29,0x00,0x01, -0x00,0x96,0xfe,0x62,0x00,0x01,0x02,0x9f,0x04,0x2a,0x00,0x01,0x02,0x3b,0xff,0x22,0x00,0x01,0x01,0x31,0x04,0x79,0x00,0x01,0x02,0xc1,0xfd,0xcd,0x00,0x01,0x02,0x3b,0x05,0x24,0x00,0x01,0x03,0x03,0xff,0x22,0x00,0x01,0x01,0xc7,0x05,0x24,0x00,0x01,0x02,0x8f,0xfe,0x48,0x00,0x01,0x01,0x33,0x03,0x81,0x00,0x01,0x02,0x5f,0xff,0x2b, -0x00,0x01,0x02,0x5d,0x04,0x24,0x00,0x01,0x02,0x8f,0xfd,0xcd,0x00,0x01,0x01,0xa5,0x04,0x96,0x00,0x01,0x01,0xc2,0x03,0xe3,0x00,0x01,0x01,0xc6,0x04,0x15,0x00,0x01,0x01,0xf8,0xfe,0xf1,0x00,0x01,0x00,0x64,0xff,0x27,0x00,0x01,0x01,0x90,0x04,0x5c,0x00,0x01,0x01,0x41,0xff,0x27,0x00,0x01,0x01,0x72,0xfd,0x97,0x00,0x01,0x02,0x26, -0xfd,0x97,0x00,0x01,0x01,0x90,0x05,0x83,0x00,0x01,0x01,0xd7,0x04,0xa4,0x00,0x01,0x03,0x67,0xff,0x22,0x00,0x01,0x01,0xd7,0x05,0x76,0x00,0x01,0x00,0xfa,0x06,0xa2,0x00,0x01,0x01,0xff,0x06,0x7d,0x00,0x01,0x01,0xa5,0x06,0x76,0x00,0x01,0x01,0x73,0x04,0x8d,0x00,0x01,0x01,0x5e,0x06,0x96,0x00,0x01,0x00,0xe8,0x07,0x41,0x00,0x01, -0x01,0x5e,0x06,0x1d,0x00,0x01,0x02,0x5d,0x02,0xed,0x00,0x01,0x01,0xa5,0x04,0xc8,0x00,0x01,0x00,0xfa,0xfd,0xd8,0x00,0x01,0x01,0x5e,0x03,0x2d,0x00,0x01,0x01,0x90,0xfd,0xc8,0x00,0x01,0x01,0x6c,0x03,0xf1,0x00,0x01,0x02,0x66,0xff,0x22,0x00,0x01,0x01,0x6c,0x01,0x2f,0x00,0x01,0x02,0x66,0xfd,0xf6,0x00,0x01,0x01,0x6c,0x05,0xa2, -0x00,0x01,0x01,0x6c,0x03,0xa1,0x00,0x01,0x02,0x9f,0x04,0xf2,0x00,0x01,0x01,0xc2,0x06,0xa0,0x00,0x01,0x01,0x83,0x02,0xe7,0x00,0x01,0x02,0x19,0xff,0x19,0x00,0x01,0x01,0xf9,0x03,0x7f,0x00,0x01,0x00,0xfa,0x08,0x1a,0x00,0x01,0x00,0x96,0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0xa2,0x00,0x01,0x01,0xa9,0x05,0xc7,0x00,0x01,0x01,0x77, -0xfd,0xcd,0x00,0x01,0x01,0xc6,0x04,0x8b,0x00,0x01,0x01,0xc6,0x03,0x4a,0x00,0x01,0x01,0x73,0x04,0x9e,0x00,0x01,0x01,0x73,0xff,0x27,0x00,0x01,0x01,0x5e,0xfd,0x97,0x00,0x01,0x01,0xd7,0xff,0x20,0x00,0x01,0x00,0xfa,0xfe,0xa1,0x00,0x01,0x01,0x41,0x04,0x9e,0x00,0x01,0x02,0x0e,0x05,0xf3,0x00,0x01,0x01,0xf4,0x05,0x7a,0x00,0x01, -0x02,0x0e,0x06,0x56,0x00,0x01,0x01,0xf4,0x05,0xdd,0x00,0x01,0x01,0xdc,0x06,0x56,0x00,0x01,0x01,0xb0,0xfe,0x90,0x00,0x01,0x01,0xb0,0xfe,0x42,0x00,0x01,0x01,0x1a,0x06,0xd9,0x00,0x01,0x01,0x90,0x05,0x13,0x00,0x01,0x01,0x2c,0xfd,0xc9,0x00,0x01,0x01,0x2c,0xfd,0xaf,0x00,0x01,0x06,0x13,0xfe,0x63,0x00,0x01,0x01,0xc2,0x04,0x39, -0x00,0x01,0x01,0xc2,0xff,0x3c,0x00,0x01,0x06,0x13,0xfd,0x97,0x00,0x01,0x01,0x5e,0xff,0x27,0x00,0x01,0x07,0x3f,0xfe,0x63,0x00,0x01,0x02,0x26,0xff,0x0a,0x00,0x01,0x02,0x8f,0x04,0x68,0x00,0x01,0x01,0x2c,0x04,0x68,0x00,0x01,0x03,0xe8,0x06,0x1e,0x00,0x01,0x01,0x91,0x06,0xd9,0x00,0x01,0x01,0xf5,0x06,0x74,0x00,0x01,0x01,0xc2, -0x06,0x60,0x00,0x01,0x01,0xf4,0x06,0x2e,0x00,0x01,0x01,0x90,0xfe,0x42,0x00,0x01,0x01,0xc2,0xfd,0x97,0x00,0x01,0x01,0x95,0x04,0x47,0x00,0x01,0x01,0x63,0x04,0xc9,0x00,0x01,0x01,0xdb,0x04,0x4b,0x00,0x01,0x03,0x6b,0xfe,0xf0,0x00,0x01,0x01,0x5e,0x04,0x7d,0x00,0x01,0x02,0x8a,0xfe,0xf0,0x00,0x01,0x02,0x3b,0x06,0xe5,0x00,0x01, -0x01,0x2c,0x06,0xe5,0x00,0x01,0x01,0xa5,0x07,0x35,0x00,0x01,0x01,0x2c,0x07,0xfd,0x00,0x01,0x01,0xd7,0x05,0x9d,0x00,0x01,0x01,0x2c,0x07,0xf5,0x00,0x01,0x01,0x41,0xff,0x0a,0x00,0x01,0x01,0x5e,0xfe,0x42,0x00,0x01,0x01,0xa5,0xff,0x27,0x00,0x01,0x01,0xd7,0x05,0x6b,0x00,0x01,0x00,0xfa,0x08,0xef,0x00,0x01,0x01,0x90,0x08,0x40, -0x00,0x01,0x01,0x5e,0x07,0x99,0x00,0x01,0x01,0x90,0x08,0xb1,0x00,0x01,0x02,0x8f,0xfd,0x92,0x00,0x01,0x01,0x2c,0xfd,0x97,0x00,0x01,0x02,0x5d,0x05,0x7a,0x00,0x01,0x00,0xcd,0xfe,0xf5,0x00,0x01,0x02,0x5d,0x05,0x72,0x00,0x01,0x00,0xcd,0xfe,0xb9,0x00,0x01,0x02,0x5d,0x05,0x0a,0x00,0x01,0x01,0xc2,0x04,0x48,0x00,0x01,0x01,0x90, -0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0x95,0x00,0x01,0x01,0xc2,0x05,0xc7,0x00,0x01,0x01,0xc2,0x05,0xbd,0x00,0x01,0x01,0xc2,0x04,0xdd,0x00,0x01,0x01,0x90,0x05,0xf5,0x00,0x01,0x01,0xc2,0x04,0x15,0x00,0x01,0x01,0xf4,0xfe,0xf1,0x00,0x01,0x01,0xae,0x03,0x3f,0x00,0x01,0x01,0xc6,0x06,0x40,0x00,0x01,0x01,0xc6,0x04,0x90,0x00,0x01, -0x01,0x90,0x05,0xbe,0x00,0x01,0x01,0xc6,0x04,0xdc,0x00,0x01,0x01,0x2c,0xff,0x27,0x00,0x01,0x01,0xc6,0x03,0xe9,0x00,0x01,0x00,0xfa,0xff,0x22,0x00,0x01,0x00,0xc8,0xff,0x27,0x00,0x01,0x00,0xc8,0xff,0x22,0x00,0x01,0x02,0x8a,0xff,0x0a,0x00,0x01,0x01,0xf5,0x05,0x8e,0x00,0x01,0x01,0xf4,0xfe,0x42,0x00,0x01,0x02,0x5f,0xfd,0xcd, -0x00,0x01,0x01,0xd7,0x05,0x41,0x00,0x01,0x02,0x62,0x05,0x16,0x00,0x01,0x02,0x62,0xff,0x92,0x00,0x01,0x01,0x1a,0x06,0x69,0x00,0x01,0x01,0x7e,0x06,0x69,0x00,0x01,0x01,0x7f,0x06,0x40,0x00,0x01,0x01,0xc5,0x05,0xaa,0x00,0x01,0x00,0xe6,0x06,0x40,0x00,0x01,0x01,0xe0,0xff,0x2a,0x00,0x01,0x01,0x18,0x06,0x0e,0x00,0x01,0x02,0x12, -0xfd,0xcd,0x00,0x01,0x01,0x0f,0xff,0x3c,0x00,0x01,0x00,0xfa,0xfe,0x42,0x00,0x01,0x01,0x72,0xfe,0x42,0x00,0x01,0x01,0x41,0xff,0x0d,0x00,0x01,0x01,0x5e,0xfd,0xe1,0x00,0x01,0x02,0x3b,0x05,0xbe,0x00,0x01,0x01,0xb0,0xfd,0x97,0x00,0x01,0x01,0xb0,0xfd,0xe1,0x00,0x01,0x01,0x2c,0x04,0x89,0x00,0x01,0x01,0x91,0x06,0x07,0x00,0x01, -0x01,0xf5,0x05,0x84,0x00,0x01,0x01,0x91,0x06,0xed,0x00,0x01,0x01,0xf5,0x06,0x6a,0x00,0x01,0x01,0xc2,0xfe,0x42,0x00,0x01,0x01,0xf4,0xfd,0x83,0x00,0x01,0x01,0xd7,0x05,0x55,0x00,0x01,0x01,0xd7,0x04,0xdd,0x00,0x01,0x01,0x90,0xfd,0x97,0x00,0x01,0x01,0x01,0x04,0xdd,0x00,0x01,0x01,0x4a,0x04,0xdd,0x00,0x01,0x02,0x5f,0xfe,0x63, -0x00,0x01,0x02,0x44,0xfe,0x42,0x00,0x01,0x00,0x9b,0xfe,0x91,0x00,0x01,0x02,0x5d,0x06,0xc8,0x00,0x01,0x01,0x5e,0x08,0x1e,0x00,0x01,0x02,0x5d,0x05,0xc7,0x00,0x01,0x01,0x90,0x07,0x1d,0x00,0x01,0x01,0x90,0x05,0x20,0x00,0x01,0x01,0xc6,0x04,0x47,0x00,0x01,0x00,0xfa,0xff,0x2b,0x00,0x01,0x00,0xfa,0xfe,0xd6,0x00,0x01,0x01,0x7e, -0x04,0x82,0x00,0x01,0x01,0x7e,0x05,0xc1,0x00,0x01,0x02,0xee,0xff,0x25,0x00,0x01,0x02,0x2a,0x05,0x78,0x00,0x01,0x02,0x2a,0x04,0x2c,0x00,0x01,0x02,0x2a,0x06,0x84,0x00,0x01,0x02,0x2a,0x05,0x58,0x00,0x01,0x01,0x5e,0x04,0xe9,0x00,0x01,0x01,0x7f,0x05,0x1b,0x00,0x01,0x01,0x5e,0x04,0x50,0x00,0x01,0x02,0x26,0xfd,0xcd,0x00,0x01, -0x00,0xfa,0x05,0x70,0x00,0x01,0x01,0x7e,0x07,0x41,0x00,0x01,0x01,0x7e,0x06,0xd9,0x00,0x01,0x02,0x09,0x04,0xa4,0x00,0x01,0x02,0x09,0x05,0x76,0x00,0x01,0x02,0x09,0x05,0x9d,0x00,0x01,0x02,0x09,0x05,0x6b,0x00,0x01,0x02,0x5d,0x05,0x7e,0x00,0x01,0x00,0xcd,0xfe,0xf0,0x00,0x01,0x01,0x83,0x04,0x75,0x00,0x01,0x01,0x83,0x03,0xc0, -0x00,0x01,0x01,0x7e,0x06,0x40,0x00,0x01,0x02,0x09,0x05,0x55,0x00,0x01,0x02,0x09,0x04,0xdd,0x00,0x01,0x00,0x9b,0xfe,0x8c,0x00,0x01,0x02,0xa4,0xfd,0xcc,0x00,0x01,0x02,0x26,0xfd,0xd1,0x00,0x01,0x02,0xa4,0xfd,0xc8,0x00,0x01,0x01,0xf4,0x03,0xd5,0x00,0x01,0x02,0x26,0xfd,0xc8,0x00,0x01,0x01,0x2c,0x05,0xaf,0x00,0x01,0x01,0x90, -0x07,0x3f,0x00,0x01,0x01,0xaa,0x06,0xbe,0x00,0x01,0x01,0xf4,0x06,0x77,0x00,0x01,0x00,0xfa,0x07,0xa0,0x00,0x01,0x01,0x90,0xff,0x9c,0x00,0x01,0x01,0x90,0xff,0x5c,0x00,0x01,0x01,0xc6,0x05,0xee,0x00,0x01,0x01,0xc6,0x05,0x43,0x00,0x01,0x01,0x90,0x06,0x5a,0x00,0x01,0x00,0xc8,0xff,0x08,0x00,0x01,0x01,0xc6,0x03,0xb7,0x00,0x01, -0x00,0xfa,0xfd,0x46,0x00,0x01,0x01,0xd9,0x05,0x27,0x00,0x01,0x02,0x3d,0xfd,0xcd,0x00,0x01,0x01,0xd8,0x05,0x27,0x00,0x01,0x02,0x3c,0xfd,0xcd,0x00,0x01,0x01,0x6c,0x05,0xd2,0x00,0x01,0x01,0x6c,0x03,0xd1,0x00,0x01,0x02,0x26,0xfd,0x46,0x00,0x01,0x01,0x2c,0x04,0xba,0x00,0x01,0x01,0x5e,0x04,0x54,0x00,0x01,0x00,0xc8,0x06,0xf1, -0x00,0x01,0x01,0x2c,0xff,0x2c,0x00,0x01,0x00,0xc8,0x07,0xaa,0x00,0x01,0x00,0xc8,0x05,0x8a,0x00,0x01,0x01,0x2c,0xfd,0xcc,0x00,0x01,0x00,0xc8,0x07,0xa9,0x00,0x01,0x00,0xc8,0x06,0x1b,0x00,0x01,0x00,0xc8,0x07,0x28,0x00,0x01,0x01,0x5e,0x04,0x3b,0x00,0x01,0x00,0xfa,0x04,0x89,0x00,0x01,0x01,0x5e,0x04,0x39,0x00,0x01,0x01,0x5e, -0xff,0x0a,0x00,0x01,0x00,0xfa,0xff,0x27,0x00,0x01,0x01,0x5e,0x05,0x83,0x00,0x01,0x00,0xfa,0x05,0xaf,0x00,0x01,0x00,0xfa,0x04,0xec,0x00,0x01,0x00,0xfa,0x04,0x54,0x00,0x01,0x01,0x2c,0x04,0x36,0x00,0x01,0x01,0x90,0xff,0x0a,0x00,0x01,0x01,0x2c,0x04,0xfe,0x00,0x01,0x00,0xf8,0x06,0x1e,0x00,0x01,0x00,0x94,0xff,0x86,0x00,0x01, -0x00,0xc6,0xff,0x86,0x00,0x01,0x00,0xf8,0x08,0x40,0x00,0x01,0x00,0xf8,0x07,0x99,0x00,0x01,0x00,0xf8,0x08,0xb1,0x00,0x01,0x00,0x94,0xfd,0x97,0x00,0x01,0x00,0xc6,0xfd,0x97,0x00,0x01,0x01,0xc9,0x02,0xd2,0x00,0x01,0x01,0x65,0xfd,0xcd,0x00,0x01,0x01,0xc9,0x04,0x6b,0x00,0x01,0x01,0x97,0x06,0x1d,0x00,0x01,0x01,0xc9,0x05,0x13, -0x00,0x01,0x01,0x65,0xfd,0xc9,0x00,0x01,0x01,0x65,0xfd,0xaf,0x00,0x01,0x01,0xc9,0x05,0x83,0x00,0x01,0x01,0xc9,0x05,0x20,0x00,0x01,0x01,0xc9,0x07,0x3f,0x00,0x01,0x01,0xc6,0x04,0xc2,0x00,0x01,0x01,0xc6,0x04,0x4f,0x00,0x01,0x01,0xc6,0x05,0x67,0x00,0x01,0x01,0xc6,0x03,0x04,0x00,0x01,0x00,0xcc,0xfe,0xcd,0x00,0x01,0x01,0xae, -0x03,0x04,0x00,0x01,0x00,0x9a,0xfe,0xf0,0x00,0x01,0x00,0x9a,0xff,0x08,0x00,0x01,0x01,0xf8,0xff,0x6e,0x00,0x01,0x01,0x6c,0x01,0xc5,0x00,0x01,0x00,0xcc,0xff,0x22,0x00,0x01,0x01,0x30,0xfe,0xa4,0x00,0x01,0x00,0xc8,0x05,0xe2,0x00,0x01,0x00,0xc8,0xff,0x2a,0x00,0x01,0x00,0x64,0x05,0x4c,0x00,0x01,0x00,0xb4,0xff,0x2a,0x00,0x01, -0x02,0x3a,0x03,0xd7,0x00,0x01,0x01,0x40,0xff,0x24,0x00,0x01,0x01,0x86,0xfd,0x8a,0x00,0x01,0x02,0x58,0x05,0x32,0x00,0x01,0x02,0xbc,0xfd,0xcd,0x00,0x01,0x02,0x26,0x05,0x32,0x00,0x01,0x03,0xde,0x05,0x50,0x00,0x01,0x02,0x3a,0xff,0x22,0x00,0x01,0x01,0xe0,0x06,0xc2,0x00,0x01,0x01,0xe0,0xfe,0x52,0x00,0x01,0x02,0x9e,0x04,0x2a, -0x00,0x01,0x01,0x68,0x04,0x47,0x00,0x01,0x02,0xe4,0xfc,0x7c,0x00,0x01,0x01,0xd6,0x05,0xaa,0x00,0x01,0x01,0x68,0x05,0x24,0x00,0x01,0x02,0x8a,0xfe,0x48,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x02,0x9e,0x05,0xfa,0x00,0x01,0x02,0x6c,0xff,0x2b,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x01,0x36,0x05,0x1e,0x00,0x01,0x00,0x6e, -0xff,0x10,0x00,0x01,0x01,0x72,0x05,0x96,0x00,0x01,0x01,0x40,0xfe,0x52,0x00,0x01,0x01,0x4a,0xfe,0x52,0x00,0x01,0x01,0x40,0x04,0xf6,0x00,0x01,0x00,0x64,0xfe,0xd4,0x00,0x01,0x02,0x08,0x05,0x0a,0x00,0x01,0x01,0x72,0x05,0x64,0x00,0x01,0x01,0xf4,0x04,0x38,0x00,0x01,0x01,0x90,0x03,0x20,0x00,0x01,0x00,0xdc,0xfd,0xcd,0x00,0x01, -0x01,0x72,0xfd,0xcd,0x00,0x01,0x01,0xea,0x04,0x10,0x00,0x01,0x02,0x58,0xfe,0x52,0x00,0x01,0x01,0xce,0xfd,0x94,0x00,0x01,0x07,0x43,0xfd,0x6c,0x00,0x01,0x04,0xa4,0xfd,0x6c,0x00,0x01,0x01,0x6b,0x05,0xd8,0x00,0x01,0x01,0xc3,0xfe,0xe2,0x00,0x01,0x01,0x90,0x06,0x40,0x00,0x01,0x02,0x3b,0x04,0xb0,0x00,0x01,0x01,0x90,0x05,0xc3, -0x00,0x01,0x02,0x2a,0x06,0x40,0x00,0x01,0x02,0x32,0x05,0x46,0x00,0x01,0x02,0x8a,0xfd,0x7a,0x00,0x01,0x02,0x26,0xfd,0x7a,0x00,0x01,0x01,0x90,0x05,0xaa,0x00,0x01,0x01,0x5e,0x05,0x91,0x00,0x01,0x02,0x2a,0x04,0x90,0x00,0x01,0x06,0xf4,0x06,0xc2,0x00,0x01,0x06,0xf4,0xff,0x2a,0x00,0x01,0x05,0x0a,0x08,0x7a,0x00,0x01,0x04,0xb0, -0xff,0x2a,0x00,0x01,0x08,0xfc,0x06,0x32,0x00,0x01,0x08,0xfc,0xff,0x9c,0x00,0x01,0x0a,0x0a,0x03,0x26,0x00,0x01,0x09,0xa6,0xfd,0xcd,0x00,0x01,0x07,0xd0,0x03,0xe8,0x00,0x01,0x07,0x62,0xfe,0x3e,0x00,0x01,0x06,0x5e,0x06,0x54,0x00,0x01,0x05,0x46,0xfe,0x70,0x00,0x01,0x09,0x92,0x05,0x88,0x00,0x01,0x09,0x92,0xff,0x2a,0x00,0x01, -0x07,0x08,0x06,0x5e,0x00,0x01,0x04,0xe2,0x05,0xbe,0x00,0x01,0x01,0x03,0x07,0xda,0x00,0x01,0x00,0x7e,0x08,0x52,0x00,0x01,0x01,0x03,0x07,0x26,0x00,0x01,0x00,0xc4,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x2a,0x00,0x01,0x01,0x03,0x07,0x6c,0x00,0x01,0x01,0x03,0x08,0x3e,0x00,0x01,0x01,0x03,0x08,0x98,0x00,0x01,0x00,0xef,0x09,0x24, -0x00,0x01,0x00,0xf5,0x08,0x3e,0x00,0x01,0x01,0x03,0x09,0x38,0x00,0x01,0x00,0xef,0x08,0x5c,0x00,0x01,0x00,0xe9,0x08,0x98,0x00,0x01,0x01,0x03,0x08,0x66,0x00,0x01,0x00,0xec,0x08,0x2a,0x00,0x01,0x01,0x03,0x08,0x16,0x00,0x01,0x01,0x03,0x07,0xf8,0x00,0x01,0x01,0x1f,0x08,0x8e,0x00,0x01,0x01,0x0c,0x08,0x66,0x00,0x01,0x01,0x03, -0x08,0xde,0x00,0x01,0x00,0xf9,0x08,0x34,0x00,0x01,0x00,0xeb,0x08,0x34,0x00,0x01,0x01,0x11,0x08,0x3e,0x00,0x01,0x01,0x1c,0x08,0xd4,0x00,0x01,0x00,0xf3,0x07,0xf8,0x00,0x01,0x00,0xc4,0x08,0x70,0x00,0x01,0x01,0x03,0x08,0x34,0x00,0x01,0x00,0xf9,0x09,0x1a,0x00,0x01,0x01,0x03,0x07,0x30,0x00,0x01,0x01,0x03,0x08,0x48,0x00,0x01, -0x01,0x03,0x07,0xe4,0x00,0x01,0x01,0x03,0x07,0x3a,0x00,0x01,0x01,0x42,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x7a,0x00,0x01,0x00,0xf8,0x09,0x1a,0x00,0x01,0x00,0xd7,0x08,0xfc,0x00,0x01,0x01,0x03,0x07,0x12,0x00,0x01,0x00,0xe1,0x08,0x34,0x00,0x01,0x01,0x03,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0xb6,0x00,0x01,0x00,0xfa,0x07,0x9e, -0x00,0x01,0x01,0x03,0x08,0xca,0x00,0x01,0x00,0xfa,0x08,0x52,0x00,0x01,0x00,0xfa,0x08,0x98,0x00,0x01,0x01,0x18,0x07,0xd0,0x00,0x01,0x01,0x18,0x08,0x61,0x00,0x01,0x01,0x40,0x08,0x98,0x00,0x01,0x01,0x7c,0x09,0x47,0x00,0x01,0x00,0xc8,0x07,0x78,0x00,0x01,0x01,0x68,0x07,0x78,0x00,0x01,0x00,0xfa,0x08,0x27,0x00,0x01,0x01,0x2c, -0x08,0x98,0x00,0x01,0x01,0xe0,0x08,0x5b,0x00,0x01,0x00,0xdc,0x09,0x2a,0x00,0x01,0x00,0xfa,0x08,0x69,0x00,0x01,0x00,0xfa,0x08,0x2c,0x00,0x01,0x00,0xc8,0x08,0x95,0x00,0x01,0x00,0xa0,0x08,0x95,0x00,0x01,0x01,0x40,0x08,0x95,0x00,0x01,0x02,0x80,0x08,0x95,0x00,0x01,0x01,0x4a,0x08,0x95,0x00,0x01,0x01,0x2c,0x08,0x5b,0x00,0x01, -0x01,0x03,0x06,0xf4,0x00,0x01,0x02,0x5a,0x09,0xc4,0x00,0x01,0x01,0x05,0x08,0x65,0x00,0x01,0x00,0xc9,0x09,0x2a,0x00,0x01,0x00,0xfa,0x09,0x8b,0x00,0x01,0x01,0x03,0x08,0xd9,0x00,0x01,0x00,0x1d,0x0a,0x5b,0x00,0x01,0xff,0x8e,0x09,0xe7,0x00,0x01,0xff,0x97,0x09,0xe7,0x00,0x01,0xff,0x47,0x09,0xff,0x00,0x01,0xff,0x79,0x09,0xa9, -0x00,0x01,0xff,0xcd,0x09,0xa9,0x00,0x01,0x01,0x7a,0x08,0x53,0x00,0x01,0x01,0x93,0x08,0x38,0x00,0x01,0x01,0x03,0xfe,0x0c,0x00,0x01,0x01,0x03,0xfe,0xd4,0x00,0x01,0x00,0xb2,0xfd,0xbc,0x00,0x01,0x01,0x03,0xfd,0xbc,0x00,0x01,0x00,0xec,0xfd,0xc6,0x00,0x01,0x01,0x1f,0xfd,0xc6,0x00,0x01,0x01,0x03,0xfe,0x48,0x00,0x01,0x01,0x03, -0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x53,0x00,0x01,0x01,0x2c,0xfd,0x8b,0x00,0x01,0x00,0xbe,0xfe,0x5c,0x00,0x01,0x01,0x5e,0xfe,0x5c,0x00,0x01,0x00,0xc8,0xfd,0xa5,0x00,0x01,0x01,0x7c,0xfd,0x5e,0x00,0x01,0x01,0x04,0xfd,0xbd,0x00,0x01,0x00,0x8c,0xfd,0x3a,0x00,0x01,0x01,0x03,0xfc,0x8b,0x00,0x01,0x00,0x00,0xfe,0x09,0x00,0x01, -0x02,0x62,0xff,0xe2,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x50,0x00,0x01,0x00,0xdf,0xff,0x44,0x00,0x01,0x02,0xb2,0x00,0x50,0x00,0x01,0x02,0x3a,0xfe,0x42,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x02,0xb8,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00, -0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0x95,0x00,0x00,0x00,0x01,0x02,0x2a,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0x15,0x00,0x00,0x00,0x01,0x00,0xbb, -0x00,0x00,0x00,0x01,0x01,0xd9,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x01,0x50,0x00,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x01,0xff,0xe1,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01, -0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x01,0xce,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0xff,0xa1,0x00,0x00,0x00,0x01,0xff,0x47,0x00,0x00,0x00,0x01,0x01,0x3a,0x00,0x00, -0x00,0x01,0x00,0xab,0x00,0x00,0x00,0x01,0xff,0xf3,0x00,0x00,0x00,0x01,0xff,0xcb,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x01,0x46,0x00,0x00,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x00,0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x00,0xeb, -0x00,0x00,0x00,0x01,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0xba,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0xff,0x3b,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x53,0x00,0x00,0x00,0x01,0xff,0xf9,0x00,0x00,0x00,0x01,0x01,0x6d,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x00,0x00,0x01, -0x00,0x58,0x00,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xd3,0x00,0x00,0x00,0x01,0x01,0x4d,0x00,0x00,0x00,0x01,0x00,0xf3,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0xfc,0xd7,0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x7f,0x00,0x00, -0x00,0x01,0xff,0x9f,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0x42,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0xff,0xa7, -0x00,0x00,0x00,0x01,0x01,0xef,0x00,0x00,0x00,0x01,0x01,0x60,0x00,0x00,0x00,0x01,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x00,0x00,0x01,0x00,0xbf,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0xfd,0xf5,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x00,0x01, -0x02,0x53,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x00,0x00,0x01,0x03,0x1b,0x00,0x00,0x00,0x01,0x02,0x8c,0x00,0x00,0x00,0x01,0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x01,0x8e,0x00,0x00, -0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x0f,0x00,0x00,0x00,0x01,0x01,0x89,0x00,0x00,0x00,0x01,0x01,0x2f,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x3e,0x00,0x00,0x00,0x01,0x00,0xb8, -0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x01,0xe5,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x76,0x00,0x00,0x00,0x01,0x00,0xc5,0x00,0x00,0x00,0x01,0xff,0xe5,0x00,0x00,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x00,0x01, -0xff,0xe7,0x00,0x00,0x00,0x01,0xff,0x8d,0x00,0x00,0x00,0x01,0x01,0x62,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00, -0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00,0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98, -0x00,0x00,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01, -0x01,0x18,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x01,0xa6,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x00,0x00,0x01,0x00,0xe4,0x00,0x00,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x04,0x6c,0x00,0x00,0x00,0x01,0x03,0x7a,0x00,0x00, -0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x03,0xee,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x00,0xf5, -0x00,0x00,0x00,0x01,0x01,0x13,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x00,0x00,0x01,0x02,0xba,0x00,0x00,0x00,0x01,0x01,0x19,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x04,0xc1,0x00,0x00,0x00,0x01,0x03,0xcf,0x00,0x00,0x00,0x01,0x01,0xb5,0x00,0x00,0x00,0x01, -0x00,0x84,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0x01,0x0c,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x6c,0x00,0x00,0x00,0x01,0x02,0xc4,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x04,0xbb,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00,0x00,0x01,0x01,0x90,0x00,0x00, -0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01,0x05,0x02,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x01,0x72,0x00,0x00,0x00,0x01,0x02,0x3c,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x03,0xce,0x00,0x00,0x00,0x01,0x02,0xdc,0x00,0x00,0x00,0x01,0x01,0x26,0x00,0x00,0x00,0x01,0x03,0xc4,0x00,0x00,0x00,0x01,0x02,0xd2, -0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x00,0x00,0x01,0xff,0x1e,0x00,0x00,0x00,0x01,0x02,0x2b,0x00,0x00,0x00,0x01,0x03,0xec,0x00,0x00,0x00,0x01,0x03,0x38,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0xff,0xd7,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01, -0x04,0xe3,0x00,0x00,0x00,0x01,0x03,0xf1,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x04,0xe9,0x00,0x00,0x00,0x01,0x03,0xf7,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xec,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x01,0x1b,0x00,0x00, -0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x04,0xd0,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x01,0x86,0x00,0x00,0x00,0x01,0x00,0xb3,0x00,0x00,0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x2c,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x01,0x6c, -0x00,0x00,0x00,0x01,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0xb2,0x00,0x00,0x00,0x01,0x04,0x3a,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x01,0x5c,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x04,0x75,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01, -0x04,0x04,0x00,0x00,0x00,0x01,0x02,0xd3,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x01,0x63,0x00,0x00,0x00,0x01,0x01,0x4f,0x00,0x00,0x00,0x01,0x01,0x0b,0x00,0x00,0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x04,0xd3,0x00,0x00, -0x00,0x01,0x03,0xcd,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x05,0xd9,0x00,0x00,0x00,0x01,0x04,0xe5,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x05,0x24,0x00,0x00,0x00,0x01,0x04,0x32,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x03,0x71,0x00,0x00,0x00,0x01,0x02,0x7f, -0x00,0x00,0x00,0x01,0xff,0x1e,0x01,0x04,0x00,0x01,0xff,0xd7,0x00,0xdc,0x00,0x01,0x00,0x59,0x00,0xf0,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x03,0x96,0x00,0x00,0x00,0x01,0x02,0xa4,0x00,0x00,0x00,0x01,0x07,0x17,0x00,0x00,0x00,0x01,0x02,0xf1,0x00,0x00,0x00,0x01,0x05,0xca,0x00,0x00,0x00,0x01,0xff,0x26,0x00,0x00,0x00,0x01, -0x03,0x4e,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0xdc,0x00,0x01,0x00,0x75,0x00,0x00,0x00,0x01,0x00,0xe3,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x02,0x82,0x00,0x00,0x00,0x01,0x01,0x52,0x00,0x00,0x00,0x01,0x01,0x83,0x00,0x00,0x00,0x01,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x94,0x00,0x00, -0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0xff,0x7a,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0x5a,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0xdc,0x00,0x01,0x00,0xc9,0x00,0x00,0x00,0x01,0xff,0x81,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x04,0x54,0x00,0x00,0x00,0x01,0x03,0x07, -0x00,0x00,0x00,0x01,0x00,0x3a,0x00,0x00,0x00,0x01,0xff,0x5e,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x04,0x31,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0xad,0x00,0x00,0x00,0x01,0xff,0xdb,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x04,0xae,0x00,0x00,0x00,0x01, -0x01,0x2a,0x00,0x00,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x04,0x8a,0x00,0x00,0x00,0x01,0x03,0x39,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x02,0x0b,0x00,0x00,0x00,0x01,0x01,0x7d,0x00,0x00,0x00,0x01,0xff,0x36,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0xdc, -0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x00,0x01,0x00,0x85,0x00,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x05,0x17,0x00,0x00,0x00,0x01,0x00,0xfd,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x05,0x5d, -0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x99,0x00,0x00,0x00,0x01,0x02,0x35,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x01,0xac,0x00,0x00,0x00,0x01,0x02,0x2c,0x00,0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x01,0x6f,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01, -0x02,0xb6,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01,0x01,0xa5,0x00,0x00,0x00,0x01,0x03,0xb9,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x02,0xdd,0x00,0x00,0x00,0x01,0x03,0xf0,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x01,0x53,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00, -0x00,0x01,0x02,0x64,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x2d,0x00,0x00,0x00,0x01,0x04,0x25,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0x0a,0x00,0x00,0x00,0x01,0x02,0xed,0x00,0x00,0x00,0x01,0x03,0xba,0x00,0x00,0x00,0x01,0x03,0x77, -0x00,0x00,0x00,0x01,0x02,0xff,0x00,0x00,0x00,0x01,0x04,0x51,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x00,0x00,0x01,0x04,0x33,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x41,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00,0x00,0x01,0x03,0xf2,0x00,0x00,0x00,0x01, -0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0xac,0x00,0x00,0x00,0x01,0xff,0xce,0x00,0x00,0x00,0x01,0xff,0xd8,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x00,0x00,0x01,0xff,0x74,0x00,0x00,0x00,0x01,0xfe,0xf2,0x00,0x00,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0x02,0x3a,0x00,0x00, -0x00,0x01,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x06,0x00,0x00,0x00,0x01,0x01,0x9a,0x00,0x00,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0xff,0x6a,0x00,0x00,0x00,0x01,0xfe,0xa2,0x00,0x00,0x00,0x01,0xff,0x1a,0x00,0x00,0x00,0x01,0xfe,0xe8,0x00,0x00,0x00,0x01,0xfd,0xd0,0x00,0x00,0x00,0x01,0xfd,0x76,0x00,0x00,0x00,0x01,0xfe,0x34, -0x00,0x00,0x00,0x01,0xfd,0x44,0x00,0x00,0x00,0x01,0xfd,0x1c,0x00,0x00,0x00,0x01,0xfe,0x2a,0x00,0x00,0x00,0x01,0xfe,0x52,0x00,0x00,0x00,0x01,0xfd,0x12,0x00,0x00,0x00,0x01,0xfe,0x66,0x00,0x00,0x00,0x01,0xfd,0x80,0x00,0x00,0x00,0x01,0xfd,0x62,0x00,0x00,0x00,0x01,0xfe,0x3e,0x00,0x00,0x00,0x01,0xfd,0xe4,0x00,0x00,0x00,0x01, -0xfd,0x3a,0x00,0x00,0x00,0x01,0xfe,0x5c,0x00,0x00,0x00,0x01,0xfd,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xc0,0x00,0x00,0x00,0x01,0xfe,0x70,0x00,0x00,0x00,0x01,0xfd,0xda,0x00,0x00,0x00,0x01,0xfd,0xc6,0x00,0x00, -0x00,0x01,0xfe,0x20,0x00,0x00,0x00,0x01,0xfe,0x8e,0x00,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x00,0x01,0xfe,0x16,0x00,0x00,0x00,0x01,0xfd,0xbc,0x00,0x00,0x00,0x01,0xfe,0x02,0x00,0x00,0x00,0x01,0xff,0xe2,0x00,0x00,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0xfd,0xf1,0x00,0x00,0x00,0x01,0xfd,0x8a, -0x00,0x00,0x00,0x01,0xfd,0xa8,0x00,0x00,0x00,0x01,0xfc,0xe0,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x00,0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x02,0xbc,0x0a,0x6a,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x01,0x3c,0x63,0x79,0x72,0x6c,0x01,0x48,0x64,0x65, -0x76,0x32,0x01,0x70,0x67,0x6a,0x72,0x32,0x01,0xa4,0x67,0x72,0x65,0x6b,0x01,0x7c,0x67,0x75,0x72,0x32,0x01,0xb0,0x68,0x65,0x62,0x72,0x01,0xbc,0x6b,0x68,0x6d,0x72,0x01,0xd8,0x6b,0x6e,0x64,0x32,0x01,0xcc,0x6c,0x61,0x6f,0x20,0x01,0xe4,0x6c,0x61,0x74,0x6e,0x01,0xf0,0x6d,0x6c,0x6d,0x32,0x02,0x46,0x6d,0x6f,0x6e,0x67,0x02,0x52, -0x6d,0x79,0x6d,0x72,0x02,0x5e,0x6f,0x72,0x79,0x32,0x02,0x76,0x74,0x61,0x6c,0x75,0x02,0x6a,0x74,0x65,0x6c,0x32,0x02,0x8e,0x74,0x68,0x61,0x69,0x02,0x9a,0x74,0x69,0x62,0x74,0x02,0xa6,0x74,0x6d,0x6c,0x32,0x02,0x82,0x00,0x3c,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x54,0x4d,0x4f,0x52,0x20,0x00,0x6e, -0x53,0x4e,0x44,0x20,0x00,0x88,0x55,0x52,0x44,0x20,0x00,0xa2,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x04,0x00,0x13,0x00,0x0a,0x00,0x28,0x00,0x2e,0x00,0x3d,0x00,0x4b,0x00,0x51,0x00,0x2f,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x05,0x00,0x14,0x00,0x0b,0x00,0x29,0x00,0x3e,0x00,0x4c,0x00,0x52,0x00,0x30,0x00,0x1f,0x00,0x00, -0xff,0xff,0x00,0x0a,0x00,0x06,0x00,0x15,0x00,0x0c,0x00,0x2a,0x00,0x39,0x00,0x3f,0x00,0x4d,0x00,0x53,0x00,0x31,0x00,0x20,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x07,0x00,0x16,0x00,0x0d,0x00,0x2b,0x00,0x3a,0x00,0x40,0x00,0x4e,0x00,0x54,0x00,0x32,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x08,0x00,0x17,0x00,0x0e,0x00,0x2c, -0x00,0x3b,0x00,0x41,0x00,0x4f,0x00,0x55,0x00,0x33,0x00,0x22,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x09,0x00,0x18,0x00,0x0f,0x00,0x2d,0x00,0x3c,0x00,0x42,0x00,0x50,0x00,0x56,0x00,0x34,0x00,0x23,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x78,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x19,0x00,0x24, -0x00,0x35,0x00,0x43,0x00,0x47,0x00,0x5c,0x00,0x00,0x00,0x58,0x00,0x60,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x79,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x36,0x00,0x44,0x00,0x48,0x00,0x5d,0x00,0x01,0x00,0x59, -0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x7b,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7c,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7d,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x1b,0x00,0x10,0x00,0x57,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01, -0x00,0x7e,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x80,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1c,0x00,0x26,0x00,0x11,0x00,0x37,0x00,0x45,0x00,0x49,0x00,0x5e,0x00,0x02,0x00,0x5a,0x00,0x62,0x00,0x66, -0x00,0x6a,0x00,0x6e,0x00,0x72,0x00,0x76,0x00,0x81,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1d,0x00,0x27,0x00,0x12,0x00,0x38,0x00,0x46,0x00,0x4a,0x00,0x5f,0x00,0x03,0x00,0x5b,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x82,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x83,0x00,0x04,0x00,0x00, -0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x84,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x85,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x86,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x87,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x88,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff, -0x00,0x01,0x00,0x89,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8b,0x00,0x8c,0x63,0x32,0x73,0x63,0x03,0x4a,0x63,0x32,0x73,0x63,0x03,0x50,0x63,0x32,0x73,0x63,0x03,0x56,0x63,0x32,0x73,0x63,0x03,0x60,0x63,0x61,0x6c,0x74,0x03,0x6a,0x63,0x61,0x6c,0x74, -0x03,0x70,0x63,0x61,0x6c,0x74,0x03,0x76,0x63,0x61,0x6c,0x74,0x03,0x7c,0x63,0x61,0x6c,0x74,0x03,0x82,0x63,0x61,0x6c,0x74,0x03,0x88,0x63,0x63,0x6d,0x70,0x03,0x8e,0x63,0x63,0x6d,0x70,0x03,0x98,0x63,0x63,0x6d,0x70,0x03,0xaa,0x63,0x63,0x6d,0x70,0x03,0xb4,0x63,0x63,0x6d,0x70,0x03,0xbe,0x63,0x63,0x6d,0x70,0x03,0xc8,0x63,0x63, -0x6d,0x70,0x03,0xda,0x63,0x63,0x6d,0x70,0x04,0x0c,0x63,0x63,0x6d,0x70,0x04,0x1a,0x64,0x6c,0x69,0x67,0x04,0x24,0x64,0x6c,0x69,0x67,0x04,0x2a,0x64,0x6c,0x69,0x67,0x04,0x30,0x64,0x6c,0x69,0x67,0x04,0x36,0x64,0x6c,0x69,0x67,0x04,0x3c,0x64,0x6c,0x69,0x67,0x04,0x42,0x64,0x6c,0x69,0x67,0x04,0x48,0x64,0x6c,0x69,0x67,0x04,0x4e, -0x64,0x6c,0x69,0x67,0x04,0x54,0x64,0x6c,0x69,0x67,0x04,0x5a,0x64,0x6c,0x69,0x67,0x04,0x62,0x66,0x69,0x6e,0x61,0x04,0x68,0x66,0x69,0x6e,0x61,0x04,0x6e,0x66,0x69,0x6e,0x61,0x04,0x74,0x66,0x69,0x6e,0x61,0x04,0x7a,0x66,0x69,0x6e,0x61,0x04,0x80,0x66,0x69,0x6e,0x61,0x04,0x86,0x66,0x72,0x61,0x63,0x04,0x8c,0x66,0x72,0x61,0x63, -0x04,0x96,0x66,0x72,0x61,0x63,0x04,0xa0,0x66,0x72,0x61,0x63,0x04,0xaa,0x69,0x6e,0x69,0x74,0x04,0xb4,0x69,0x6e,0x69,0x74,0x04,0xba,0x69,0x6e,0x69,0x74,0x04,0xc0,0x69,0x6e,0x69,0x74,0x04,0xc6,0x69,0x6e,0x69,0x74,0x04,0xcc,0x69,0x6e,0x69,0x74,0x04,0xd2,0x69,0x73,0x6f,0x6c,0x04,0xd8,0x6c,0x69,0x67,0x61,0x04,0xde,0x6c,0x69, -0x67,0x61,0x04,0xe8,0x6c,0x69,0x67,0x61,0x04,0xf2,0x6c,0x69,0x67,0x61,0x04,0xfa,0x6c,0x69,0x67,0x61,0x05,0x04,0x6c,0x69,0x67,0x61,0x05,0x0c,0x6c,0x6e,0x75,0x6d,0x05,0x16,0x6c,0x6e,0x75,0x6d,0x05,0x1e,0x6c,0x6e,0x75,0x6d,0x05,0x26,0x6c,0x6e,0x75,0x6d,0x05,0x2e,0x6c,0x6f,0x63,0x6c,0x05,0x36,0x6c,0x6f,0x63,0x6c,0x05,0x3c, -0x6c,0x6f,0x63,0x6c,0x05,0x42,0x6c,0x6f,0x63,0x6c,0x05,0x48,0x6d,0x65,0x64,0x69,0x05,0x4e,0x6d,0x65,0x64,0x69,0x05,0x54,0x6d,0x65,0x64,0x69,0x05,0x5a,0x6d,0x65,0x64,0x69,0x05,0x60,0x6d,0x65,0x64,0x69,0x05,0x66,0x6d,0x65,0x64,0x69,0x05,0x6c,0x6f,0x6e,0x75,0x6d,0x05,0x72,0x6f,0x6e,0x75,0x6d,0x05,0x7a,0x6f,0x6e,0x75,0x6d, -0x05,0x82,0x6f,0x6e,0x75,0x6d,0x05,0x8a,0x70,0x6e,0x75,0x6d,0x05,0x92,0x70,0x6e,0x75,0x6d,0x05,0x9a,0x70,0x6e,0x75,0x6d,0x05,0xa2,0x70,0x6e,0x75,0x6d,0x05,0xaa,0x72,0x63,0x6c,0x74,0x05,0xb2,0x72,0x63,0x6c,0x74,0x05,0xb8,0x72,0x63,0x6c,0x74,0x05,0xbe,0x72,0x63,0x6c,0x74,0x05,0xc4,0x72,0x63,0x6c,0x74,0x05,0xca,0x72,0x63, -0x6c,0x74,0x05,0xd0,0x72,0x6c,0x69,0x67,0x05,0xd6,0x72,0x6c,0x69,0x67,0x05,0xde,0x72,0x6c,0x69,0x67,0x05,0xe6,0x72,0x6c,0x69,0x67,0x05,0xee,0x72,0x6c,0x69,0x67,0x05,0xf6,0x72,0x6c,0x69,0x67,0x05,0xfe,0x72,0x6c,0x69,0x67,0x06,0x06,0x73,0x61,0x6c,0x74,0x06,0x0c,0x73,0x61,0x6c,0x74,0x06,0x18,0x73,0x61,0x6c,0x74,0x06,0x24, -0x73,0x61,0x6c,0x74,0x06,0x30,0x73,0x6d,0x63,0x70,0x06,0x3c,0x73,0x6d,0x63,0x70,0x06,0x42,0x73,0x6d,0x63,0x70,0x06,0x48,0x73,0x6d,0x63,0x70,0x06,0x54,0x73,0x73,0x30,0x31,0x06,0x60,0x73,0x73,0x30,0x31,0x06,0x66,0x73,0x73,0x30,0x31,0x06,0x6c,0x73,0x73,0x30,0x31,0x06,0x72,0x73,0x73,0x31,0x38,0x06,0x78,0x73,0x73,0x31,0x38, -0x06,0x80,0x73,0x73,0x31,0x38,0x06,0x88,0x73,0x73,0x31,0x38,0x06,0x90,0x73,0x73,0x31,0x39,0x06,0x98,0x73,0x73,0x31,0x39,0x06,0x9e,0x73,0x73,0x31,0x39,0x06,0xa4,0x73,0x73,0x31,0x39,0x06,0xaa,0x73,0x73,0x32,0x30,0x06,0xb0,0x73,0x73,0x32,0x30,0x06,0xba,0x73,0x73,0x32,0x30,0x06,0xc4,0x73,0x73,0x32,0x30,0x06,0xce,0x73,0x75, -0x62,0x73,0x06,0xd8,0x73,0x75,0x62,0x73,0x06,0xde,0x73,0x75,0x62,0x73,0x06,0xe4,0x73,0x75,0x62,0x73,0x06,0xea,0x73,0x75,0x70,0x73,0x06,0xf0,0x73,0x75,0x70,0x73,0x06,0xf6,0x73,0x75,0x70,0x73,0x06,0xfc,0x73,0x75,0x70,0x73,0x07,0x02,0x74,0x6e,0x75,0x6d,0x07,0x08,0x74,0x6e,0x75,0x6d,0x07,0x0e,0x74,0x6e,0x75,0x6d,0x07,0x16, -0x74,0x6e,0x75,0x6d,0x07,0x1c,0x74,0x6e,0x75,0x6d,0x07,0x24,0x74,0x6e,0x75,0x6d,0x07,0x2a,0x74,0x6e,0x75,0x6d,0x07,0x30,0x74,0x6e,0x75,0x6d,0x07,0x36,0x74,0x6e,0x75,0x6d,0x07,0x3c,0x74,0x6e,0x75,0x6d,0x07,0x42,0x74,0x6e,0x75,0x6d,0x07,0x6e,0x74,0x6e,0x75,0x6d,0x07,0x76,0x74,0x6e,0x75,0x6d,0x07,0x7c,0x74,0x6e,0x75,0x6d, -0x07,0x82,0x74,0x6e,0x75,0x6d,0x07,0x8a,0x74,0x6e,0x75,0x6d,0x07,0x90,0x74,0x6e,0x75,0x6d,0x07,0x96,0x74,0x6e,0x75,0x6d,0x07,0x9c,0x74,0x6e,0x75,0x6d,0x07,0xa2,0x74,0x6e,0x75,0x6d,0x07,0xa8,0x00,0x00,0x00,0x01,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x1f,0x00,0x00,0x00,0x03,0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x03, -0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a, -0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x17,0x00,0x4e,0x00,0x4f,0x00,0x50, -0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x64,0x00,0x00,0x00,0x05,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x39,0x00,0x3a,0x00,0x00,0x00,0x03,0x00,0x18,0x00,0x19,0x00,0x1a, -0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x4d,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x26,0x00,0x00, -0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03, -0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x13, -0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f, -0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01, -0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00, -0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11, -0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37, -0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x24,0x00,0x00,0x00,0x01, -0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36, -0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b, -0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x3d,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30, -0x00,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x45,0x00,0x00,0x00,0x14,0x00,0x2d,0x00,0x30,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47, -0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x02,0x00,0x47,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00, -0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x46,0x00,0x84,0x01,0x0a,0x01,0x1a,0x01,0x2a,0x01,0x3a,0x01,0x4a,0x01,0x64,0x01,0x74,0x01,0x84,0x01,0x94,0x01,0xb8,0x01,0xe6,0x02,0x00,0x02,0x1a,0x02,0x2a,0x02,0x44,0x02,0x54,0x02,0x64,0x02,0x74,0x02,0x84,0x02,0x94,0x02,0xa4,0x02,0xb4,0x02,0xc4,0x02,0xd4,0x02,0xf8,0x03,0x08, -0x03,0x18,0x03,0x28,0x03,0x38,0x03,0x48,0x03,0x58,0x03,0x68,0x03,0x78,0x03,0x88,0x03,0x98,0x03,0xa8,0x03,0xb8,0x03,0xc8,0x03,0xd8,0x03,0xe8,0x03,0xf8,0x04,0x08,0x04,0x18,0x04,0x28,0x04,0x38,0x04,0x48,0x04,0x58,0x04,0x68,0x04,0x78,0x04,0x88,0x04,0x98,0x04,0xa8,0x04,0xb8,0x04,0xc8,0x04,0xd8,0x04,0xe8,0x04,0xf8,0x05,0x08, -0x05,0x18,0x05,0x28,0x05,0x38,0x05,0x48,0x05,0x58,0x05,0x68,0x05,0x78,0x05,0x88,0x05,0x98,0x05,0xa8,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x05,0xe8,0x05,0xf8,0x06,0x08,0x06,0x18,0x06,0x28,0x06,0x38,0x06,0x48,0x06,0x58,0x06,0x68,0x06,0x96,0x07,0xbe,0x07,0xce,0x07,0xde,0x07,0xee,0x07,0xfe,0x08,0x0e,0x08,0x1e,0x08,0x2e,0x08,0x3e, -0x08,0x4e,0x08,0x5e,0x08,0x6e,0x08,0x7e,0x08,0x8e,0x09,0x84,0x09,0x94,0x09,0xa4,0x0a,0x72,0x0a,0x82,0x0a,0x92,0x0b,0x06,0x0b,0x98,0x0b,0xa8,0x0b,0xb8,0x0b,0xc8,0x0b,0xd8,0x0b,0xe8,0x0b,0xf8,0x0c,0x08,0x0c,0x18,0x0c,0x28,0x0c,0x38,0x0c,0x48,0x0c,0x58,0x0c,0x68,0x0c,0x78,0x0c,0x88,0x0c,0x98,0x0c,0xa8,0x0c,0xb8,0x0c,0xc8, -0x0c,0xd8,0x0c,0xe8,0x0c,0xf8,0x0d,0x08,0x0d,0x18,0x0d,0x28,0x0d,0x38,0x0d,0x48,0x0d,0x58,0x0d,0x68,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x66,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, -0x00,0x00,0x0c,0x7e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x92,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x98,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x11,0x58,0x00,0x07, -0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x72,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x82,0x00,0x07,0x00,0x09,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xd0,0x00,0x01,0x00,0x06,0x00,0x00, -0x12,0xdc,0x00,0x07,0x00,0x09,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x2e,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00, -0x13,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x74,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xa2,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xac,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xde,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, -0x00,0x06,0x00,0x00,0x14,0x0e,0x00,0x01,0x00,0x06,0x00,0x00,0x14,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x44,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x19,0x4e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x1d,0x54,0x00,0x07, -0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0x62,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x00,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x68,0x00,0x07, -0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x22,0xa2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x23,0xcc,0x00,0x07,0x01,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x24,0x5c,0x00,0x01,0x00,0x06,0x00,0x00,0x27,0x74,0x00,0x01,0x00,0x06,0x00,0x00, -0x27,0x80,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x2f,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x2f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x35,0x5a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x36,0xf2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x06,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x2a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x94,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x37,0xfe,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0x52,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0xa8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3b,0x78,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x3e,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x4a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x3e,0x82,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x3e,0x80,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xb0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x3e,0xc4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xd8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xec,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x3f,0x14,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x28,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x3c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3f,0x50,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x3f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x0c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x42,0x9a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x43,0x42,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x40,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0xd2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x44,0x5c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x70,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x84,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x98,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x44,0xac,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xc0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xd4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xe8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x44,0xfc,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x10,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x24,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x38,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x45,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x60,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x88,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x45,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0xb0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xc4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xcc,0x00,0x07,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26, -0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xd0,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xda,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xe6,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xf2,0x00,0x07,0x00,0x01,0x00,0x1d,0x00,0x40,0x00,0x48,0x00,0x50,0x00,0x58,0x00,0x60,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0, -0x00,0xa8,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0xc8,0x00,0xd0,0x00,0xd8,0x00,0xe0,0x00,0xe8,0x00,0xf0,0x00,0xf8,0x01,0x00,0x01,0x08,0x01,0x10,0x01,0x18,0x01,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x62,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x72, -0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x84,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x90,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x9e,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xbc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xee, -0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x2a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x48,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x58,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x6a, -0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x7c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x9a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xaa,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xf2, -0x00,0x01,0x00,0x06,0x00,0x00,0x48,0x04,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x48,0xde,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xdc,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xe8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x36,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x4a,0xd6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x59,0xc8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5a,0x70,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5b,0xe2,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, -0x00,0x01,0x00,0x04,0x00,0x00,0x5c,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x5c,0x10,0x00,0x07,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6, -0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xec,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xfa,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x2a,0x00,0x01, -0x00,0x06,0x00,0x00,0x5c,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x4c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x7a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xaa,0x00,0x01, -0x00,0x06,0x00,0x00,0x5c,0xb8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xc8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x10,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x30,0x00,0x01, -0x00,0x06,0x00,0x00,0x5d,0x3e,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x4a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5e,0x3a,0x00,0x07,0x00,0x01,0x00,0x14,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56, -0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x34,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x06, -0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x70,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x7e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x8e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xca,0x00,0x01,0x00,0x06, -0x00,0x00,0x5e,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xe8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xf6,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x32,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x42,0x00,0x07,0x00,0x01, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0x46,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x60,0xc4,0x00,0x07,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xec, -0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x28,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x60, -0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x6e,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x7c,0x00,0x07,0x00,0x01,0x00,0x0e,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x62,0x5e,0x00,0x01,0x00,0x06,0x00,0x00, -0x62,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x2e,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x22,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0xee,0x00,0x01,0x00,0x06,0x00,0x00, -0x66,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xb0,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x67,0xd6,0x00,0x01,0x00,0x06,0x00,0x00,0x68,0x00,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x68,0xe2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x68,0xe0,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x69,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x69,0x50,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6a,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, -0x6a,0xc8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6b,0x84,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xa8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xea,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x6c,0x22,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6c,0xfe,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xc0,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xda,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x6d,0xf4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, -0x6e,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x16,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x2c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6e,0x34,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, -0x6e,0xb8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6f,0x58,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xb4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xc0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, -0x74,0x38,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0x9e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xea,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, -0x75,0x1a,0x00,0x02,0x00,0x0e,0x00,0x04,0x0e,0x19,0x0e,0x1f,0x0e,0x63,0x0e,0x64,0x00,0x02,0x00,0x04,0x08,0xf8,0x08,0xf8,0x00,0x00,0x09,0x05,0x09,0x05,0x00,0x01,0x09,0x2d,0x09,0x2d,0x00,0x02,0x0a,0x68,0x0a,0x68,0x00,0x03,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x3e,0x00,0x01,0x00,0x01,0x09,0xdd,0x00,0x02,0x00,0x0a,0x00,0x02, -0x0e,0x19,0x0e,0x1f,0x00,0x01,0x00,0x02,0x08,0xf8,0x09,0x05,0x00,0x02,0x00,0x0e,0x00,0x04,0x0a,0x3c,0x08,0xdd,0x0a,0x3d,0x0e,0x15,0x00,0x02,0x00,0x03,0x09,0x53,0x09,0x53,0x00,0x00,0x09,0x55,0x09,0x56,0x00,0x01,0x0e,0x14,0x0e,0x14,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x01,0x04,0xd8,0x00,0x00,0x00,0x00,0x00,0x03, -0x00,0x00,0x00,0x01,0x04,0xca,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0xc9,0x08,0xc7,0x08,0xca,0x00,0x00,0x08,0xcf,0x08,0xcf,0x00,0x04,0x08,0xd1,0x08,0xd1,0x00,0x05,0x08,0xd3,0x08,0xd3,0x00,0x06,0x08,0xe4,0x08,0xe4,0x00,0x07,0x08,0xe7,0x08,0xe7,0x00,0x08,0x08,0xf1,0x08,0xf3,0x00,0x09,0x08,0xf5,0x08,0xf7, -0x00,0x0c,0x08,0xfa,0x08,0xfb,0x00,0x0f,0x08,0xff,0x09,0x00,0x00,0x11,0x09,0x02,0x09,0x02,0x00,0x13,0x09,0x08,0x09,0x20,0x00,0x14,0x09,0x22,0x09,0x2b,0x00,0x2d,0x09,0x34,0x09,0x35,0x00,0x37,0x09,0x3e,0x09,0x3e,0x00,0x39,0x09,0x40,0x09,0x40,0x00,0x3a,0x09,0x42,0x09,0x43,0x00,0x3b,0x09,0x45,0x09,0x46,0x00,0x3d,0x09,0x48, -0x09,0x48,0x00,0x3f,0x09,0x4a,0x09,0x4b,0x00,0x40,0x09,0x4d,0x09,0x4e,0x00,0x42,0x09,0x59,0x09,0x59,0x00,0x44,0x09,0x5b,0x09,0x5b,0x00,0x45,0x09,0x5d,0x09,0x60,0x00,0x46,0x09,0x63,0x09,0x68,0x00,0x4a,0x09,0x6c,0x09,0x6c,0x00,0x50,0x09,0x72,0x09,0x72,0x00,0x51,0x09,0x7c,0x09,0x7c,0x00,0x52,0x09,0x80,0x09,0x8c,0x00,0x53, -0x09,0x8e,0x09,0x8e,0x00,0x60,0x09,0x90,0x09,0x90,0x00,0x61,0x09,0x92,0x09,0x92,0x00,0x62,0x09,0x94,0x09,0x94,0x00,0x63,0x09,0x96,0x09,0x96,0x00,0x64,0x09,0x98,0x09,0x99,0x00,0x65,0x09,0x9b,0x09,0x9c,0x00,0x67,0x09,0x9e,0x09,0x9f,0x00,0x69,0x09,0xa1,0x09,0xa2,0x00,0x6b,0x09,0xa4,0x09,0xa5,0x00,0x6d,0x09,0xa7,0x09,0xa8, -0x00,0x6f,0x09,0xaa,0x09,0xb9,0x00,0x71,0x09,0xbb,0x09,0xbb,0x00,0x81,0x09,0xbd,0x09,0xbd,0x00,0x82,0x09,0xbf,0x09,0xbf,0x00,0x83,0x09,0xc1,0x09,0xc1,0x00,0x84,0x09,0xc3,0x09,0xc5,0x00,0x85,0x09,0xc8,0x09,0xc9,0x00,0x88,0x09,0xcc,0x09,0xcc,0x00,0x8a,0x09,0xcf,0x09,0xcf,0x00,0x8b,0x09,0xd2,0x09,0xd2,0x00,0x8c,0x09,0xd5, -0x09,0xd7,0x00,0x8d,0x09,0xd9,0x09,0xd9,0x00,0x90,0x09,0xdb,0x09,0xdb,0x00,0x91,0x09,0xdd,0x09,0xdd,0x00,0x92,0x09,0xdf,0x09,0xdf,0x00,0x93,0x09,0xe1,0x09,0xe1,0x00,0x94,0x09,0xe3,0x09,0xe3,0x00,0x95,0x09,0xe5,0x09,0xe5,0x00,0x96,0x09,0xe7,0x09,0xe7,0x00,0x97,0x09,0xe9,0x09,0xe9,0x00,0x98,0x09,0xeb,0x09,0xeb,0x00,0x99, -0x09,0xed,0x09,0xed,0x00,0x9a,0x09,0xef,0x09,0xef,0x00,0x9b,0x09,0xf1,0x09,0xf1,0x00,0x9c,0x09,0xf3,0x09,0xf3,0x00,0x9d,0x09,0xf5,0x09,0xf6,0x00,0x9e,0x09,0xf8,0x09,0xf8,0x00,0xa0,0x09,0xfa,0x09,0xfb,0x00,0xa1,0x09,0xfd,0x0a,0x08,0x00,0xa3,0x0a,0x0a,0x0a,0x0e,0x00,0xaf,0x0a,0x24,0x0a,0x24,0x00,0xb4,0x0a,0x26,0x0a,0x26, -0x00,0xb5,0x0a,0x28,0x0a,0x29,0x00,0xb6,0x0a,0x32,0x0a,0x3b,0x00,0xb8,0x0a,0x3e,0x0a,0x3f,0x00,0xc2,0x0a,0x41,0x0a,0x42,0x00,0xc4,0x0a,0x54,0x0a,0x59,0x00,0xc6,0x0a,0x72,0x0a,0x72,0x00,0xcc,0x0a,0x74,0x0a,0x74,0x00,0xcd,0x0a,0x76,0x0a,0x76,0x00,0xce,0x0a,0x78,0x0a,0x78,0x00,0xcf,0x0a,0x7a,0x0a,0x7a,0x00,0xd0,0x0a,0x7c, -0x0a,0x7c,0x00,0xd1,0x0a,0x7e,0x0a,0x7e,0x00,0xd2,0x0a,0x80,0x0a,0x81,0x00,0xd3,0x0a,0x83,0x0a,0x84,0x00,0xd5,0x0a,0x86,0x0a,0x89,0x00,0xd7,0x0a,0x8b,0x0a,0x8c,0x00,0xdb,0x0a,0x8f,0x0a,0x90,0x00,0xdd,0x0a,0x93,0x0a,0x94,0x00,0xdf,0x0a,0x97,0x0a,0x97,0x00,0xe1,0x0a,0x9a,0x0a,0x9a,0x00,0xe2,0x0a,0x9d,0x0a,0x9d,0x00,0xe3, -0x0a,0xa0,0x0a,0xa0,0x00,0xe4,0x0a,0xa3,0x0a,0xa3,0x00,0xe5,0x0a,0xa6,0x0a,0xa6,0x00,0xe6,0x0a,0xa8,0x0a,0xa8,0x00,0xe7,0x0a,0xaa,0x0a,0xaa,0x00,0xe8,0x0a,0xac,0x0a,0xac,0x00,0xe9,0x0a,0xae,0x0a,0xae,0x00,0xea,0x0a,0xb0,0x0a,0xb1,0x00,0xeb,0x0a,0xb4,0x0a,0xb6,0x00,0xed,0x0a,0xb9,0x0a,0xba,0x00,0xf0,0x0b,0x0c,0x0b,0x1a, -0x00,0xf2,0x0e,0x20,0x0e,0x21,0x01,0x01,0x0e,0x24,0x0e,0x24,0x01,0x03,0x0e,0x26,0x0e,0x26,0x01,0x04,0x0e,0x28,0x0e,0x28,0x01,0x05,0x0e,0x2a,0x0e,0x2a,0x01,0x06,0x0e,0x2f,0x0e,0x31,0x01,0x07,0x0e,0x33,0x0e,0x33,0x01,0x0a,0x0e,0x35,0x0e,0x35,0x01,0x0b,0x0e,0x37,0x0e,0x37,0x01,0x0c,0x0e,0x39,0x0e,0x39,0x01,0x0d,0x0e,0x3c, -0x0e,0x3c,0x01,0x0e,0x0e,0x3f,0x0e,0x40,0x01,0x0f,0x0e,0x43,0x0e,0x44,0x01,0x11,0x0e,0x47,0x0e,0x48,0x01,0x13,0x0e,0x4b,0x0e,0x4c,0x01,0x15,0x0e,0x4f,0x0e,0x50,0x01,0x17,0x0e,0x53,0x0e,0x55,0x01,0x19,0x0e,0x57,0x0e,0x57,0x01,0x1c,0x0e,0x59,0x0e,0x59,0x01,0x1d,0x0e,0x5e,0x0e,0x5e,0x01,0x1e,0x0e,0x6e,0x0e,0x6e,0x01,0x1f, -0x0e,0x70,0x0e,0x70,0x01,0x20,0x0e,0x74,0x0e,0x75,0x01,0x21,0x0e,0x78,0x0e,0x78,0x01,0x23,0x0e,0x7a,0x0e,0x7a,0x01,0x24,0x0e,0x7c,0x0e,0x7c,0x01,0x25,0x0e,0x7e,0x0e,0x7e,0x01,0x26,0x0e,0x80,0x0e,0x80,0x01,0x27,0x0e,0x82,0x0e,0x82,0x01,0x28,0x0e,0x84,0x0e,0x84,0x01,0x29,0x0e,0x86,0x0e,0x86,0x01,0x2a,0x0e,0x8f,0x0e,0x98, -0x01,0x2b,0x0e,0x9a,0x0e,0x9a,0x01,0x35,0x0e,0x9c,0x0e,0x9c,0x01,0x36,0x0e,0x9e,0x0e,0x9e,0x01,0x37,0x0e,0xa0,0x0e,0xa0,0x01,0x38,0x0e,0xa2,0x0e,0xa2,0x01,0x39,0x0e,0xa5,0x0e,0xab,0x01,0x3a,0x0e,0xae,0x0e,0xae,0x01,0x41,0x0e,0xb1,0x0e,0xb1,0x01,0x42,0x0e,0xb3,0x0e,0xb3,0x01,0x43,0x0e,0xb5,0x0e,0xb5,0x01,0x44,0x0e,0xb7, -0x0e,0xb7,0x01,0x45,0x0e,0xb9,0x0e,0xb9,0x01,0x46,0x0e,0xbb,0x0e,0xbb,0x01,0x47,0x0e,0xbd,0x0e,0xbd,0x01,0x48,0x0e,0xbf,0x0e,0xbf,0x01,0x49,0x0e,0xc1,0x0e,0xc1,0x01,0x4a,0x0e,0xc3,0x0e,0xc3,0x01,0x4b,0x0e,0xc5,0x0e,0xc5,0x01,0x4c,0x0e,0xc7,0x0e,0xc7,0x01,0x4d,0x0e,0xc9,0x0e,0xcd,0x01,0x4e,0x0e,0xcf,0x0e,0xd0,0x01,0x53, -0x0e,0xd3,0x0e,0xd3,0x01,0x55,0x0e,0xd5,0x0e,0xd5,0x01,0x56,0x0e,0xda,0x0e,0xe3,0x01,0x57,0x0e,0xe6,0x0e,0xe6,0x01,0x61,0x0e,0xec,0x0e,0xec,0x01,0x62,0x0e,0xee,0x0e,0xee,0x01,0x63,0x0e,0xf0,0x0e,0xf0,0x01,0x64,0x0e,0xf2,0x0e,0xf2,0x01,0x65,0x0e,0xf4,0x0e,0xf4,0x01,0x66,0x0e,0xf6,0x0e,0xf6,0x01,0x67,0x0e,0xf8,0x0e,0xf8, -0x01,0x68,0x0e,0xfa,0x0e,0xfa,0x01,0x69,0x0e,0xfc,0x0e,0xfc,0x01,0x6a,0x0f,0x00,0x0f,0x03,0x01,0x6b,0x0f,0x05,0x0f,0x0a,0x01,0x6f,0x0f,0x0c,0x0f,0x0c,0x01,0x75,0x0f,0x0e,0x0f,0x0e,0x01,0x76,0x0f,0x10,0x0f,0x10,0x01,0x77,0x0f,0x12,0x0f,0x12,0x01,0x78,0x0f,0x14,0x0f,0x14,0x01,0x79,0x0f,0x16,0x0f,0x17,0x01,0x7a,0x0f,0x1a, -0x0f,0x1b,0x01,0x7c,0x0f,0x1e,0x0f,0x1f,0x01,0x7e,0x0f,0x22,0x0f,0x25,0x01,0x80,0x0f,0x28,0x0f,0x2d,0x01,0x84,0x0f,0x30,0x0f,0x31,0x01,0x8a,0x0f,0x34,0x0f,0x35,0x01,0x8c,0x0f,0x38,0x0f,0x41,0x01,0x8e,0x0f,0x44,0x0f,0x45,0x01,0x98,0x0f,0x48,0x0f,0x49,0x01,0x9a,0x0f,0x4c,0x0f,0x4d,0x01,0x9c,0x0f,0x62,0x0f,0x6b,0x01,0x9e, -0x0f,0x98,0x0f,0xa4,0x01,0xa8,0x0f,0xa6,0x0f,0xb3,0x01,0xb5,0x0f,0xb5,0x0f,0xbc,0x01,0xc3,0x14,0x55,0x14,0x5c,0x01,0xcb,0x14,0x73,0x14,0x73,0x01,0xd3,0x14,0x76,0x14,0x76,0x01,0xd4,0x14,0x79,0x14,0x79,0x01,0xd5,0x14,0x7d,0x14,0x7e,0x01,0xd6,0x14,0x81,0x14,0x81,0x01,0xd8,0x14,0x84,0x14,0x84,0x01,0xd9,0x14,0x87,0x14,0x87, -0x01,0xda,0x14,0xad,0x14,0xae,0x01,0xdb,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x01,0x01,0x0e,0x00,0x0c,0x00,0x1e,0x00,0x30,0x00,0x42,0x00,0x4c,0x00,0x5e,0x00,0x70,0x00,0x7a,0x00,0xb4,0x00,0xbe,0x00,0xd0,0x00,0xf2,0x01,0x04,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x62,0x00,0x02,0x09,0x32,0x0e,0x69,0x00,0x02,0x09,0x7e,0x00,0x02, -0x00,0x06,0x00,0x0c,0x0a,0x68,0x00,0x02,0x09,0x32,0x0e,0x66,0x00,0x02,0x09,0x7e,0x00,0x01,0x00,0x04,0x0e,0x6b,0x00,0x02,0x09,0x7f,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x65,0x00,0x02,0x09,0x32,0x0e,0x67,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x66,0x00,0x02,0x09,0x32,0x0e,0x68,0x00,0x02,0x09,0x7e,0x00,0x01, -0x00,0x04,0x0e,0x6c,0x00,0x02,0x09,0x7f,0x00,0x07,0x00,0x10,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34,0x0a,0x65,0x00,0x02,0x09,0x2f,0x0a,0x66,0x00,0x02,0x09,0x30,0x0a,0x68,0x00,0x02,0x09,0x2d,0x0e,0x62,0x00,0x02,0x09,0x2c,0x0e,0x64,0x00,0x02,0x0e,0x63,0x0e,0x65,0x00,0x02,0x09,0x73,0x13,0xe9,0x00,0x02, -0x09,0x73,0x00,0x01,0x00,0x04,0x0e,0x6a,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x65,0x00,0x02,0x09,0x32,0x13,0xe9,0x00,0x02,0x09,0x32,0x00,0x04,0x00,0x0a,0x00,0x10,0x00,0x16,0x00,0x1c,0x0e,0x66,0x00,0x02,0x09,0x2d,0x0e,0x67,0x00,0x02,0x09,0x2f,0x0e,0x68,0x00,0x02,0x09,0x30,0x0e,0x6a,0x00,0x02,0x09,0x33, -0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x6b,0x00,0x02,0x09,0x2e,0x0e,0x6c,0x00,0x02,0x09,0x31,0x00,0x01,0x00,0x04,0x0e,0x64,0x00,0x02,0x09,0x32,0x00,0x02,0x00,0x04,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x73,0x09,0x73,0x00,0x08,0x09,0x7e,0x09,0x7f,0x00,0x09,0x0e,0x63,0x0e,0x63,0x00,0x0b,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08, -0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x67,0x00,0x02,0x09,0x31,0x0a,0x69,0x00,0x02,0x09,0x2e,0x00,0x01,0x00,0x01,0x09,0x32,0x00,0x01,0x00,0x52,0x00,0x01,0x00,0x08,0x00,0x09,0x00,0x14,0x00,0x1a,0x00,0x20,0x00,0x26,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x11,0x9a,0x00,0x02,0x08,0xd8,0x11,0x9b,0x00,0x02,0x08,0xd9, -0x11,0x9c,0x00,0x02,0x08,0xda,0x11,0x9d,0x00,0x02,0x08,0xdb,0x11,0x9e,0x00,0x02,0x08,0xdc,0x11,0x9f,0x00,0x02,0x08,0xdd,0x11,0xa0,0x00,0x02,0x08,0xde,0x11,0xa1,0x00,0x02,0x08,0xdf,0x11,0xa2,0x00,0x02,0x08,0xe0,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0x67,0x00,0x03,0x00,0x02,0x00,0x48,0x00,0x52,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x03,0x00,0x03,0x00,0x34,0x00,0x34,0x00,0x3e,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x02,0x0a,0x14,0x14,0x6b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f, -0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x02,0x00,0x6e,0x00,0x42,0x00,0x01,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68, -0x00,0x03,0x00,0x03,0x00,0x5a,0x00,0x5a,0x00,0x2e,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x04,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x18,0x00,0x01,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45, -0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x00,0x02,0x00,0x30,0x00,0x3a,0x00,0x01, -0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x45,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2e, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x03,0x00,0x02,0x00,0x32,0x00,0x3c,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x02,0x0a,0x45,0x0a,0x46,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e, -0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x24,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x02,0x00,0x02,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x53,0x09,0x55,0x00,0x0a,0x00,0x01,0x00,0x02,0x14,0x03,0x14,0x2b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00, -0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x00,0x03,0x0a,0x44, -0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x02,0x01,0xc8,0x00,0xe1,0x08,0xf2,0x08,0xc9,0x08,0xc8,0x0e,0x24,0x08,0xca,0x09,0x02,0x08,0xc7,0x0e,0x26,0x08,0xf6,0x0e,0x28,0x0e,0x2a,0x08,0xcf,0x08,0xd1,0x08,0xd3,0x0e,0x2f,0x0e,0x30, -0x0b,0x0c,0x0b,0x0d,0x0e,0x31,0x0e,0x33,0x0e,0x35,0x0e,0x37,0x0e,0x39,0x0e,0x3c,0x08,0xe4,0x08,0xe7,0x0e,0x53,0x0e,0x54,0x0e,0x55,0x09,0x59,0x0e,0x57,0x0e,0x59,0x08,0xf3,0x0e,0x5e,0x08,0xf7,0x08,0xf5,0x0e,0x6e,0x0e,0x82,0x09,0x43,0x0b,0x0e,0x0e,0xb1,0x0e,0xbd,0x09,0x4b,0x09,0x4d,0x0e,0x78,0x0e,0x8f,0x0b,0x0f,0x0e,0xcf, -0x09,0x72,0x0e,0xda,0x0e,0xdb,0x09,0x66,0x09,0x68,0x0e,0xa8,0x0e,0x70,0x09,0x81,0x09,0x83,0x09,0x85,0x09,0x87,0x0e,0x74,0x0e,0x75,0x09,0x8b,0x0e,0x7a,0x0e,0x7c,0x0e,0x7e,0x0e,0x80,0x0e,0x84,0x0e,0x86,0x09,0x99,0x09,0x9c,0x09,0x9f,0x09,0xa2,0x09,0xa5,0x09,0xa8,0x0e,0x90,0x0e,0x91,0x0e,0x92,0x0e,0x93,0x0e,0x94,0x0e,0x95, -0x0e,0x96,0x0e,0x97,0x0b,0x10,0x0b,0x11,0x0b,0x12,0x0b,0x13,0x0b,0x14,0x0b,0x15,0x0b,0x16,0x0e,0x98,0x0e,0x9a,0x0e,0x9c,0x0e,0x9e,0x0e,0xa0,0x0e,0xa2,0x09,0xc5,0x0e,0xa5,0x0e,0xa6,0x0e,0xa7,0x0e,0xa9,0x0e,0xaa,0x0e,0xab,0x0e,0xae,0x0e,0xb3,0x0e,0xb5,0x0e,0xb7,0x0e,0xb9,0x0e,0xbb,0x0e,0xbf,0x0e,0xc1,0x0e,0xc3,0x0e,0xc5, -0x0e,0xc7,0x0e,0xc9,0x0e,0xca,0x0e,0xcb,0x0e,0xcc,0x0e,0xcd,0x0e,0xd0,0x0e,0xd3,0x0e,0xd5,0x09,0xfb,0x0e,0xdc,0x0e,0xdd,0x0e,0xde,0x0e,0xdf,0x0e,0xe0,0x0e,0xe1,0x0e,0xe2,0x0e,0xe3,0x0a,0x06,0x0a,0x08,0x0e,0xe6,0x0a,0x0c,0x0a,0x0e,0x0e,0xec,0x0e,0xee,0x0a,0x29,0x0a,0x3f,0x0a,0x55,0x0a,0x57,0x0a,0x59,0x0e,0xf0,0x0e,0xf2, -0x0e,0xf4,0x0e,0xf6,0x0e,0xf8,0x0e,0xfa,0x0e,0xfc,0x0a,0x81,0x0a,0x84,0x0f,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x03,0x0a,0x8c,0x0a,0x90,0x0a,0x94,0x0f,0x05,0x0f,0x06,0x0f,0x07,0x0f,0x08,0x0f,0x09,0x0f,0x0a,0x0f,0x0c,0x0f,0x0e,0x0f,0x10,0x0f,0x12,0x0a,0xb1,0x0b,0x17,0x0b,0x18,0x0f,0x14,0x0b,0x1a,0x0e,0x21,0x0e,0x40,0x0e,0x44, -0x0e,0x48,0x0e,0x4c,0x0e,0x50,0x0f,0x17,0x0f,0x1b,0x0f,0x1f,0x0f,0x23,0x0f,0x25,0x0f,0x29,0x0f,0x2b,0x0f,0x2d,0x0f,0x31,0x0f,0x35,0x0f,0x39,0x0f,0x3b,0x0f,0x3d,0x0f,0x3f,0x0f,0x41,0x0f,0x45,0x0f,0x49,0x0f,0x4d,0x13,0x00,0x13,0x05,0x13,0x0b,0x13,0x0f,0x13,0x13,0x13,0x17,0x13,0x1b,0x13,0x1f,0x13,0x23,0x13,0x25,0x13,0x27, -0x13,0x29,0x14,0x07,0x14,0x0a,0x14,0x0e,0x14,0x12,0x14,0x14,0x14,0x16,0x14,0x6d,0x14,0x70,0x14,0x73,0x14,0x76,0x14,0x79,0x14,0x7d,0x14,0x7e,0x14,0x81,0x14,0x84,0x14,0x87,0x00,0x02,0x00,0x8d,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x08,0x09,0x20,0x00,0x01,0x09,0x22,0x09,0x2b,0x00,0x1a,0x09,0x3e,0x09,0x3e,0x00,0x24,0x09,0x40, -0x09,0x40,0x00,0x25,0x09,0x42,0x09,0x42,0x00,0x26,0x09,0x45,0x09,0x46,0x00,0x27,0x09,0x48,0x09,0x48,0x00,0x29,0x09,0x4a,0x09,0x4a,0x00,0x2a,0x09,0x4e,0x09,0x4e,0x00,0x2b,0x09,0x5b,0x09,0x5b,0x00,0x2c,0x09,0x5d,0x09,0x60,0x00,0x2d,0x09,0x63,0x09,0x65,0x00,0x31,0x09,0x67,0x09,0x67,0x00,0x34,0x09,0x6c,0x09,0x6c,0x00,0x35, -0x09,0x7c,0x09,0x7c,0x00,0x36,0x09,0x80,0x09,0x80,0x00,0x37,0x09,0x82,0x09,0x82,0x00,0x38,0x09,0x84,0x09,0x84,0x00,0x39,0x09,0x86,0x09,0x86,0x00,0x3a,0x09,0x88,0x09,0x8a,0x00,0x3b,0x09,0x8c,0x09,0x8c,0x00,0x3e,0x09,0x8e,0x09,0x8e,0x00,0x3f,0x09,0x90,0x09,0x90,0x00,0x40,0x09,0x92,0x09,0x92,0x00,0x41,0x09,0x94,0x09,0x94, -0x00,0x42,0x09,0x96,0x09,0x96,0x00,0x43,0x09,0x98,0x09,0x98,0x00,0x44,0x09,0x9b,0x09,0x9b,0x00,0x45,0x09,0x9e,0x09,0x9e,0x00,0x46,0x09,0xa1,0x09,0xa1,0x00,0x47,0x09,0xa4,0x09,0xa4,0x00,0x48,0x09,0xa7,0x09,0xa7,0x00,0x49,0x09,0xaa,0x09,0xb9,0x00,0x4a,0x09,0xbb,0x09,0xbb,0x00,0x5a,0x09,0xbd,0x09,0xbd,0x00,0x5b,0x09,0xbf, -0x09,0xbf,0x00,0x5c,0x09,0xc1,0x09,0xc1,0x00,0x5d,0x09,0xc3,0x09,0xc4,0x00,0x5e,0x09,0xc8,0x09,0xc9,0x00,0x60,0x09,0xcc,0x09,0xcc,0x00,0x62,0x09,0xcf,0x09,0xcf,0x00,0x63,0x09,0xd2,0x09,0xd2,0x00,0x64,0x09,0xd5,0x09,0xd7,0x00,0x65,0x09,0xd9,0x09,0xd9,0x00,0x68,0x09,0xdb,0x09,0xdb,0x00,0x69,0x09,0xdd,0x09,0xdd,0x00,0x6a, -0x09,0xdf,0x09,0xdf,0x00,0x6b,0x09,0xe1,0x09,0xe1,0x00,0x6c,0x09,0xe3,0x09,0xe3,0x00,0x6d,0x09,0xe5,0x09,0xe5,0x00,0x6e,0x09,0xe7,0x09,0xe7,0x00,0x6f,0x09,0xe9,0x09,0xe9,0x00,0x70,0x09,0xeb,0x09,0xeb,0x00,0x71,0x09,0xed,0x09,0xed,0x00,0x72,0x09,0xef,0x09,0xef,0x00,0x73,0x09,0xf1,0x09,0xf1,0x00,0x74,0x09,0xf3,0x09,0xf3, -0x00,0x75,0x09,0xf5,0x09,0xf6,0x00,0x76,0x09,0xf8,0x09,0xf8,0x00,0x78,0x09,0xfa,0x09,0xfa,0x00,0x79,0x09,0xfd,0x0a,0x05,0x00,0x7a,0x0a,0x07,0x0a,0x07,0x00,0x83,0x0a,0x0a,0x0a,0x0b,0x00,0x84,0x0a,0x0d,0x0a,0x0d,0x00,0x86,0x0a,0x24,0x0a,0x24,0x00,0x87,0x0a,0x26,0x0a,0x26,0x00,0x88,0x0a,0x28,0x0a,0x28,0x00,0x89,0x0a,0x3e, -0x0a,0x3e,0x00,0x8a,0x0a,0x54,0x0a,0x54,0x00,0x8b,0x0a,0x56,0x0a,0x56,0x00,0x8c,0x0a,0x58,0x0a,0x58,0x00,0x8d,0x0a,0x72,0x0a,0x72,0x00,0x8e,0x0a,0x74,0x0a,0x74,0x00,0x8f,0x0a,0x76,0x0a,0x76,0x00,0x90,0x0a,0x78,0x0a,0x78,0x00,0x91,0x0a,0x7a,0x0a,0x7a,0x00,0x92,0x0a,0x7c,0x0a,0x7c,0x00,0x93,0x0a,0x7e,0x0a,0x7e,0x00,0x94, -0x0a,0x80,0x0a,0x80,0x00,0x95,0x0a,0x83,0x0a,0x83,0x00,0x96,0x0a,0x86,0x0a,0x89,0x00,0x97,0x0a,0x8b,0x0a,0x8b,0x00,0x9b,0x0a,0x8f,0x0a,0x8f,0x00,0x9c,0x0a,0x93,0x0a,0x93,0x00,0x9d,0x0a,0x97,0x0a,0x97,0x00,0x9e,0x0a,0x9a,0x0a,0x9a,0x00,0x9f,0x0a,0x9d,0x0a,0x9d,0x00,0xa0,0x0a,0xa0,0x0a,0xa0,0x00,0xa1,0x0a,0xa3,0x0a,0xa3, -0x00,0xa2,0x0a,0xa6,0x0a,0xa6,0x00,0xa3,0x0a,0xa8,0x0a,0xa8,0x00,0xa4,0x0a,0xaa,0x0a,0xaa,0x00,0xa5,0x0a,0xac,0x0a,0xac,0x00,0xa6,0x0a,0xae,0x0a,0xae,0x00,0xa7,0x0a,0xb0,0x0a,0xb0,0x00,0xa8,0x0a,0xb4,0x0a,0xb6,0x00,0xa9,0x0b,0x19,0x0b,0x19,0x00,0xac,0x0e,0x20,0x0e,0x20,0x00,0xad,0x0e,0x3f,0x0e,0x3f,0x00,0xae,0x0e,0x43, -0x0e,0x43,0x00,0xaf,0x0e,0x47,0x0e,0x47,0x00,0xb0,0x0e,0x4b,0x0e,0x4b,0x00,0xb1,0x0e,0x4f,0x0e,0x4f,0x00,0xb2,0x0f,0x16,0x0f,0x16,0x00,0xb3,0x0f,0x1a,0x0f,0x1a,0x00,0xb4,0x0f,0x1e,0x0f,0x1e,0x00,0xb5,0x0f,0x22,0x0f,0x22,0x00,0xb6,0x0f,0x24,0x0f,0x24,0x00,0xb7,0x0f,0x28,0x0f,0x28,0x00,0xb8,0x0f,0x2a,0x0f,0x2a,0x00,0xb9, -0x0f,0x2c,0x0f,0x2c,0x00,0xba,0x0f,0x30,0x0f,0x30,0x00,0xbb,0x0f,0x34,0x0f,0x34,0x00,0xbc,0x0f,0x38,0x0f,0x38,0x00,0xbd,0x0f,0x3a,0x0f,0x3a,0x00,0xbe,0x0f,0x3c,0x0f,0x3c,0x00,0xbf,0x0f,0x3e,0x0f,0x3e,0x00,0xc0,0x0f,0x40,0x0f,0x40,0x00,0xc1,0x0f,0x44,0x0f,0x44,0x00,0xc2,0x0f,0x48,0x0f,0x48,0x00,0xc3,0x0f,0x4c,0x0f,0x4c, -0x00,0xc4,0x13,0x02,0x13,0x02,0x00,0xc5,0x13,0x04,0x13,0x04,0x00,0xc6,0x13,0x08,0x13,0x08,0x00,0xc7,0x13,0x0c,0x13,0x0c,0x00,0xc8,0x13,0x10,0x13,0x10,0x00,0xc9,0x13,0x14,0x13,0x14,0x00,0xca,0x13,0x18,0x13,0x18,0x00,0xcb,0x13,0x1c,0x13,0x1c,0x00,0xcc,0x13,0x20,0x13,0x20,0x00,0xcd,0x13,0x24,0x13,0x24,0x00,0xce,0x13,0x26, -0x13,0x26,0x00,0xcf,0x13,0x28,0x13,0x28,0x00,0xd0,0x14,0x04,0x14,0x04,0x00,0xd1,0x14,0x09,0x14,0x09,0x00,0xd2,0x14,0x0b,0x14,0x0b,0x00,0xd3,0x14,0x0f,0x14,0x0f,0x00,0xd4,0x14,0x13,0x14,0x13,0x00,0xd5,0x14,0x15,0x14,0x15,0x00,0xd6,0x14,0x53,0x14,0x5c,0x00,0xd7,0x00,0x02,0x01,0x36,0x00,0x98,0x0e,0xd8,0x0e,0x25,0x0e,0x27, -0x0e,0x29,0x0e,0x2b,0x0e,0x2c,0x0e,0x2d,0x0e,0x2e,0x0e,0x32,0x0e,0x34,0x0e,0x36,0x0e,0x38,0x0e,0x3b,0x0e,0x3e,0x08,0xe3,0x08,0xe6,0x08,0xe9,0x08,0xec,0x0e,0x56,0x09,0x3f,0x0e,0x58,0x0e,0x5a,0x0e,0x5d,0x0e,0x60,0x0e,0x61,0x09,0x3b,0x0e,0x83,0x0e,0x8d,0x0e,0xb2,0x0e,0xbe,0x0e,0xe4,0x0e,0x79,0x09,0x62,0x09,0x6e,0x0e,0x72, -0x0e,0x77,0x0e,0x7b,0x0e,0x7d,0x0e,0x7f,0x0e,0x81,0x0e,0x85,0x0e,0x87,0x0e,0x88,0x0e,0x89,0x0e,0x8a,0x0e,0x8b,0x0e,0x8c,0x0e,0x8e,0x0e,0x99,0x0e,0x9b,0x0e,0x9d,0x0e,0x9f,0x0e,0xa1,0x0e,0xa4,0x09,0xc7,0x09,0x3d,0x09,0xcb,0x09,0xce,0x09,0xd1,0x09,0xd4,0x0e,0xad,0x0e,0xb0,0x0e,0xb4,0x0e,0xb6,0x0e,0xb8,0x0e,0xba,0x0e,0xbc, -0x0e,0xc0,0x0e,0xc2,0x0e,0xc4,0x0e,0xc6,0x0e,0xc8,0x0a,0x5f,0x0a,0x60,0x0a,0x61,0x0a,0x62,0x0e,0xce,0x0e,0xd2,0x0e,0xd4,0x0e,0xd6,0x0e,0xd9,0x0e,0xe5,0x0e,0xe8,0x0e,0xea,0x0e,0xed,0x0e,0xef,0x0a,0x2b,0x0e,0xba,0x0a,0x5b,0x0e,0xf1,0x0e,0xf3,0x0e,0xf5,0x0e,0xf7,0x0e,0xf9,0x0e,0xfb,0x0e,0xfd,0x0e,0xfe,0x0e,0xff,0x0f,0x04, -0x0a,0x8e,0x0a,0x92,0x0a,0x96,0x0a,0x99,0x0a,0x9c,0x0a,0x9f,0x0a,0xa2,0x0a,0xa5,0x0f,0x0b,0x0f,0x0d,0x0f,0x0f,0x0f,0x11,0x0f,0x13,0x0a,0xb3,0x0f,0x15,0x0e,0x23,0x0e,0x42,0x0e,0x46,0x0e,0x4a,0x0e,0x4e,0x0e,0x52,0x0f,0x19,0x0f,0x1d,0x0f,0x21,0x0f,0x27,0x0f,0x2f,0x0f,0x33,0x0f,0x37,0x0f,0x43,0x0f,0x47,0x0f,0x4b,0x0f,0x4f, -0x13,0x01,0x13,0x07,0x13,0x0a,0x13,0x0e,0x13,0x12,0x13,0x16,0x13,0x1a,0x13,0x1e,0x13,0x22,0x14,0x06,0x14,0x0d,0x14,0x11,0x14,0x6e,0x14,0x71,0x14,0x74,0x14,0x77,0x14,0x7a,0x14,0x7f,0x14,0x82,0x14,0x85,0x0e,0x5a,0x00,0x02,0x00,0x7a,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02, -0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42,0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b, -0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90,0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98, -0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30,0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34, -0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9,0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1, -0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef,0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8, -0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x24,0x0a,0x24,0x00,0x54,0x0a,0x26,0x0a,0x26,0x00,0x55,0x0a,0x28,0x0a,0x28,0x00,0x56,0x0a,0x3e,0x0a,0x3e,0x00,0x57,0x0a,0x58,0x0a,0x58,0x00,0x58,0x0a,0x72,0x0a,0x72,0x00,0x59, -0x0a,0x74,0x0a,0x74,0x00,0x5a,0x0a,0x76,0x0a,0x76,0x00,0x5b,0x0a,0x78,0x0a,0x78,0x00,0x5c,0x0a,0x7a,0x0a,0x7a,0x00,0x5d,0x0a,0x7c,0x0a,0x7c,0x00,0x5e,0x0a,0x7e,0x0a,0x7e,0x00,0x5f,0x0a,0x80,0x0a,0x80,0x00,0x60,0x0a,0x83,0x0a,0x83,0x00,0x61,0x0a,0x89,0x0a,0x89,0x00,0x62,0x0a,0x8b,0x0a,0x8b,0x00,0x63,0x0a,0x8f,0x0a,0x8f, -0x00,0x64,0x0a,0x93,0x0a,0x93,0x00,0x65,0x0a,0x97,0x0a,0x97,0x00,0x66,0x0a,0x9a,0x0a,0x9a,0x00,0x67,0x0a,0x9d,0x0a,0x9d,0x00,0x68,0x0a,0xa0,0x0a,0xa0,0x00,0x69,0x0a,0xa3,0x0a,0xa3,0x00,0x6a,0x0a,0xa6,0x0a,0xa6,0x00,0x6b,0x0a,0xa8,0x0a,0xa8,0x00,0x6c,0x0a,0xaa,0x0a,0xaa,0x00,0x6d,0x0a,0xac,0x0a,0xac,0x00,0x6e,0x0a,0xae, -0x0a,0xae,0x00,0x6f,0x0a,0xb0,0x0a,0xb0,0x00,0x70,0x0a,0xb6,0x0a,0xb6,0x00,0x71,0x0e,0x20,0x0e,0x20,0x00,0x72,0x0e,0x3f,0x0e,0x3f,0x00,0x73,0x0e,0x43,0x0e,0x43,0x00,0x74,0x0e,0x47,0x0e,0x47,0x00,0x75,0x0e,0x4b,0x0e,0x4b,0x00,0x76,0x0e,0x4f,0x0e,0x4f,0x00,0x77,0x0f,0x16,0x0f,0x16,0x00,0x78,0x0f,0x1a,0x0f,0x1a,0x00,0x79, -0x0f,0x1e,0x0f,0x1e,0x00,0x7a,0x0f,0x24,0x0f,0x24,0x00,0x7b,0x0f,0x2c,0x0f,0x2c,0x00,0x7c,0x0f,0x30,0x0f,0x30,0x00,0x7d,0x0f,0x34,0x0f,0x34,0x00,0x7e,0x0f,0x40,0x0f,0x40,0x00,0x7f,0x0f,0x44,0x0f,0x44,0x00,0x80,0x0f,0x48,0x0f,0x48,0x00,0x81,0x0f,0x4c,0x0f,0x4c,0x00,0x82,0x13,0x02,0x13,0x02,0x00,0x83,0x13,0x04,0x13,0x04, -0x00,0x84,0x13,0x08,0x13,0x08,0x00,0x85,0x13,0x0c,0x13,0x0c,0x00,0x86,0x13,0x10,0x13,0x10,0x00,0x87,0x13,0x14,0x13,0x14,0x00,0x88,0x13,0x18,0x13,0x18,0x00,0x89,0x13,0x1c,0x13,0x1c,0x00,0x8a,0x13,0x20,0x13,0x20,0x00,0x8b,0x14,0x04,0x14,0x04,0x00,0x8c,0x14,0x0b,0x14,0x0b,0x00,0x8d,0x14,0x0f,0x14,0x0f,0x00,0x8e,0x14,0x53, -0x14,0x57,0x00,0x8f,0x14,0x59,0x14,0x5c,0x00,0x94,0x00,0x02,0x01,0x38,0x00,0x99,0x0e,0xd7,0x08,0xf9,0x08,0xcb,0x08,0xcc,0x08,0xcd,0x08,0xce,0x08,0xd0,0x08,0xd2,0x08,0xd4,0x08,0xd5,0x08,0xd6,0x08,0xe1,0x0e,0x3a,0x0e,0x3d,0x08,0xe2,0x08,0xe5,0x08,0xe8,0x08,0xeb,0x08,0xed,0x08,0xee,0x08,0xef,0x08,0xf0,0x0e,0x5b,0x0e,0x5f, -0x08,0xf4,0x0e,0x6f,0x09,0x41,0x09,0x44,0x09,0x47,0x09,0x49,0x09,0x4c,0x09,0x5c,0x09,0x61,0x09,0x6d,0x0e,0x71,0x0e,0x76,0x09,0x8d,0x09,0x8f,0x09,0x91,0x09,0x93,0x09,0x95,0x09,0x97,0x09,0x9a,0x09,0x9d,0x09,0xa0,0x09,0xa3,0x09,0xa6,0x09,0xa9,0x09,0xba,0x09,0xbc,0x09,0xbe,0x09,0xc0,0x09,0xc2,0x0e,0xa3,0x09,0xc6,0x09,0x3c, -0x09,0xca,0x09,0xcd,0x09,0xd0,0x09,0xd3,0x0e,0xac,0x0e,0xaf,0x09,0xd8,0x09,0xda,0x09,0xdc,0x09,0xde,0x09,0xe0,0x09,0xe2,0x09,0xe4,0x09,0xe6,0x09,0xe8,0x09,0xea,0x09,0xec,0x09,0xee,0x09,0xf0,0x09,0xf2,0x09,0xf4,0x0e,0xd1,0x09,0xf7,0x09,0xf9,0x09,0xfc,0x0a,0x09,0x0e,0xe7,0x0e,0xe9,0x0a,0x10,0x0a,0x25,0x0a,0x27,0x0a,0x2a, -0x09,0xde,0x0a,0x5a,0x0a,0x73,0x0a,0x75,0x0a,0x77,0x0a,0x79,0x0a,0x7b,0x0a,0x7d,0x0a,0x7f,0x0a,0x82,0x0a,0x85,0x0a,0x8a,0x0a,0x8d,0x0a,0x91,0x0a,0x95,0x0a,0x98,0x0a,0x9b,0x0a,0x9e,0x0a,0xa1,0x0a,0xa4,0x0a,0xa7,0x0a,0xa9,0x0a,0xab,0x0a,0xad,0x0a,0xaf,0x0a,0xb2,0x0a,0xb7,0x0e,0x22,0x0e,0x41,0x0e,0x45,0x0e,0x49,0x0e,0x4d, -0x0e,0x51,0x0f,0x18,0x0f,0x1c,0x0f,0x20,0x0f,0x26,0x0f,0x2e,0x0f,0x32,0x0f,0x36,0x0f,0x42,0x0f,0x46,0x0f,0x4a,0x0f,0x4e,0x13,0x03,0x13,0x06,0x13,0x09,0x13,0x0d,0x13,0x11,0x13,0x15,0x13,0x19,0x13,0x1d,0x13,0x21,0x14,0x05,0x14,0x0c,0x14,0x10,0x14,0x6f,0x14,0x72,0x14,0x75,0x14,0x78,0x14,0x7b,0x14,0x80,0x14,0x83,0x14,0x86, -0x08,0xf0,0x00,0x02,0x00,0x7b,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02,0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42, -0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b,0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90, -0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98,0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30, -0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34,0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9, -0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1,0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef, -0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8,0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x10,0x0a,0x10,0x00,0x54,0x0a,0x24,0x0a,0x24,0x00,0x55, -0x0a,0x26,0x0a,0x26,0x00,0x56,0x0a,0x28,0x0a,0x28,0x00,0x57,0x0a,0x3e,0x0a,0x3e,0x00,0x58,0x0a,0x58,0x0a,0x58,0x00,0x59,0x0a,0x72,0x0a,0x72,0x00,0x5a,0x0a,0x74,0x0a,0x74,0x00,0x5b,0x0a,0x76,0x0a,0x76,0x00,0x5c,0x0a,0x78,0x0a,0x78,0x00,0x5d,0x0a,0x7a,0x0a,0x7a,0x00,0x5e,0x0a,0x7c,0x0a,0x7c,0x00,0x5f,0x0a,0x7e,0x0a,0x7e, -0x00,0x60,0x0a,0x80,0x0a,0x80,0x00,0x61,0x0a,0x83,0x0a,0x83,0x00,0x62,0x0a,0x89,0x0a,0x89,0x00,0x63,0x0a,0x8b,0x0a,0x8b,0x00,0x64,0x0a,0x8f,0x0a,0x8f,0x00,0x65,0x0a,0x93,0x0a,0x93,0x00,0x66,0x0a,0x97,0x0a,0x97,0x00,0x67,0x0a,0x9a,0x0a,0x9a,0x00,0x68,0x0a,0x9d,0x0a,0x9d,0x00,0x69,0x0a,0xa0,0x0a,0xa0,0x00,0x6a,0x0a,0xa3, -0x0a,0xa3,0x00,0x6b,0x0a,0xa6,0x0a,0xa6,0x00,0x6c,0x0a,0xa8,0x0a,0xa8,0x00,0x6d,0x0a,0xaa,0x0a,0xaa,0x00,0x6e,0x0a,0xac,0x0a,0xac,0x00,0x6f,0x0a,0xae,0x0a,0xae,0x00,0x70,0x0a,0xb0,0x0a,0xb0,0x00,0x71,0x0a,0xb6,0x0a,0xb6,0x00,0x72,0x0e,0x20,0x0e,0x20,0x00,0x73,0x0e,0x3f,0x0e,0x3f,0x00,0x74,0x0e,0x43,0x0e,0x43,0x00,0x75, -0x0e,0x47,0x0e,0x47,0x00,0x76,0x0e,0x4b,0x0e,0x4b,0x00,0x77,0x0e,0x4f,0x0e,0x4f,0x00,0x78,0x0f,0x16,0x0f,0x16,0x00,0x79,0x0f,0x1a,0x0f,0x1a,0x00,0x7a,0x0f,0x1e,0x0f,0x1e,0x00,0x7b,0x0f,0x24,0x0f,0x24,0x00,0x7c,0x0f,0x2c,0x0f,0x2c,0x00,0x7d,0x0f,0x30,0x0f,0x30,0x00,0x7e,0x0f,0x34,0x0f,0x34,0x00,0x7f,0x0f,0x40,0x0f,0x40, -0x00,0x80,0x0f,0x44,0x0f,0x44,0x00,0x81,0x0f,0x48,0x0f,0x48,0x00,0x82,0x0f,0x4c,0x0f,0x4c,0x00,0x83,0x13,0x02,0x13,0x02,0x00,0x84,0x13,0x04,0x13,0x04,0x00,0x85,0x13,0x08,0x13,0x08,0x00,0x86,0x13,0x0c,0x13,0x0c,0x00,0x87,0x13,0x10,0x13,0x10,0x00,0x88,0x13,0x14,0x13,0x14,0x00,0x89,0x13,0x18,0x13,0x18,0x00,0x8a,0x13,0x1c, -0x13,0x1c,0x00,0x8b,0x13,0x20,0x13,0x20,0x00,0x8c,0x14,0x04,0x14,0x04,0x00,0x8d,0x14,0x0b,0x14,0x0b,0x00,0x8e,0x14,0x0f,0x14,0x0f,0x00,0x8f,0x14,0x53,0x14,0x57,0x00,0x90,0x14,0x59,0x14,0x5c,0x00,0x95,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x02,0x00,0x08,0x08,0xee, -0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0,0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, -0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01,0x0f,0x8c,0x0f,0x97,0x00,0x00,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca, -0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83,0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x01,0x00,0x62,0x00,0x03,0x00,0x0c,0x00,0x2a,0x00,0x44,0x00,0x02,0x00,0x06,0x00,0x14,0x14,0x97,0x00,0x06,0x09,0x3f,0x09,0x3f, -0x09,0x32,0x09,0x73,0x08,0xf3,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x12,0x09,0x71,0x00,0x05,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x09,0x71,0x00,0x03,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x14,0x0a,0x63,0x00,0x06,0x08,0xee,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x0a,0x63, -0x00,0x04,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x01,0x00,0x34,0x00,0x03,0x00,0x0c,0x00,0x1a,0x00,0x26,0x00,0x01,0x00,0x04,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x09,0x71,0x00,0x03, -0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x0a,0x63,0x00,0x04,0x08,0xee,0x09,0x3f,0x09,0x72,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x1b,0x08,0xd4, -0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe,0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c, -0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10,0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef, -0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47,0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x15,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b, -0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0e,0x0a,0x0e,0x00,0x07,0x0a,0x57,0x0a,0x57,0x00,0x08,0x0a,0xb5,0x0a,0xb5,0x00,0x09,0x0b,0x0c,0x0b,0x0d,0x00,0x0a,0x0b,0x0f,0x0b,0x17,0x00,0x0c,0x0e,0x48,0x0e,0x48,0x00,0x15,0x0e,0x4c,0x0e,0x4c,0x00,0x16,0x0e,0x50,0x0e,0x50,0x00,0x17,0x0f,0x02, -0x0f,0x02,0x00,0x18,0x0f,0x23,0x0f,0x23,0x00,0x19,0x0f,0x2d,0x0f,0x2d,0x00,0x1a,0x0f,0x31,0x0f,0x31,0x00,0x1b,0x0f,0x35,0x0f,0x35,0x00,0x1c,0x14,0x7d,0x14,0x7e,0x00,0x1d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x0f,0x6c,0x0f,0x8b,0x00,0x00,0x00,0x02, -0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5, -0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23,0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f, -0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x03,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x02,0x00,0x7d,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18,0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08, -0x09,0x2e,0x09,0x2e,0x00,0x09,0x09,0x31,0x09,0x31,0x00,0x0a,0x09,0x41,0x09,0x41,0x00,0x0b,0x09,0x44,0x09,0x45,0x00,0x0c,0x09,0x4c,0x09,0x4c,0x00,0x0e,0x09,0x5e,0x09,0x5e,0x00,0x0f,0x09,0x61,0x09,0x62,0x00,0x10,0x09,0x77,0x09,0x77,0x00,0x12,0x09,0x7f,0x09,0x7f,0x00,0x13,0x09,0x84,0x09,0x85,0x00,0x14,0x09,0x88,0x09,0x89, -0x00,0x16,0x09,0x8f,0x09,0x8f,0x00,0x18,0x09,0x91,0x09,0x91,0x00,0x19,0x09,0x97,0x09,0x97,0x00,0x1a,0x09,0xa0,0x09,0xa0,0x00,0x1b,0x09,0xa3,0x09,0xa3,0x00,0x1c,0x09,0xa9,0x09,0xac,0x00,0x1d,0x09,0xae,0x09,0xae,0x00,0x21,0x09,0xb2,0x09,0xb8,0x00,0x22,0x09,0xba,0x09,0xba,0x00,0x29,0x09,0xbc,0x09,0xbc,0x00,0x2a,0x09,0xbe, -0x09,0xbe,0x00,0x2b,0x09,0xc0,0x09,0xc0,0x00,0x2c,0x09,0xca,0x09,0xcb,0x00,0x2d,0x09,0xcd,0x09,0xce,0x00,0x2f,0x09,0xd0,0x09,0xd1,0x00,0x31,0x09,0xe0,0x09,0xe0,0x00,0x33,0x09,0xe6,0x09,0xe6,0x00,0x34,0x09,0xe8,0x09,0xe8,0x00,0x35,0x09,0xf2,0x09,0xf2,0x00,0x36,0x09,0xf4,0x09,0xf4,0x00,0x37,0x09,0xf7,0x09,0xf7,0x00,0x38, -0x09,0xfc,0x0a,0x04,0x00,0x39,0x0a,0x0a,0x0a,0x0a,0x00,0x42,0x0a,0x1a,0x0a,0x1a,0x00,0x43,0x0a,0x21,0x0a,0x21,0x00,0x44,0x0a,0x23,0x0a,0x23,0x00,0x45,0x0a,0x25,0x0a,0x25,0x00,0x46,0x0a,0x27,0x0a,0x27,0x00,0x47,0x0a,0x2a,0x0a,0x2b,0x00,0x48,0x0a,0x50,0x0a,0x50,0x00,0x4a,0x0a,0x56,0x0a,0x57,0x00,0x4b,0x0a,0x5b,0x0a,0x5b, -0x00,0x4d,0x0a,0x62,0x0a,0x62,0x00,0x4e,0x0a,0x6f,0x0a,0x6f,0x00,0x4f,0x0a,0x73,0x0a,0x73,0x00,0x50,0x0a,0x75,0x0a,0x75,0x00,0x51,0x0a,0x77,0x0a,0x77,0x00,0x52,0x0a,0x79,0x0a,0x79,0x00,0x53,0x0a,0x7b,0x0a,0x7b,0x00,0x54,0x0a,0x7d,0x0a,0x7d,0x00,0x55,0x0a,0x85,0x0a,0x88,0x00,0x56,0x0a,0x98,0x0a,0x99,0x00,0x5a,0x0a,0x9b, -0x0a,0x9c,0x00,0x5c,0x0a,0xa4,0x0a,0xa5,0x00,0x5e,0x0a,0xa9,0x0a,0xa9,0x00,0x60,0x0a,0xab,0x0a,0xab,0x00,0x61,0x0a,0xb4,0x0a,0xb5,0x00,0x62,0x0b,0x0c,0x0b,0x18,0x00,0x64,0x0e,0x1e,0x0e,0x1e,0x00,0x71,0x0e,0x22,0x0e,0x23,0x00,0x72,0x0e,0x27,0x0e,0x27,0x00,0x74,0x0e,0x2c,0x0e,0x2c,0x00,0x75,0x0e,0x45,0x0e,0x46,0x00,0x76, -0x0e,0x49,0x0e,0x4a,0x00,0x78,0x0e,0x4d,0x0e,0x4e,0x00,0x7a,0x0e,0x51,0x0e,0x52,0x00,0x7c,0x0e,0x61,0x0e,0x61,0x00,0x7e,0x0e,0x6b,0x0e,0x6c,0x00,0x7f,0x0e,0x74,0x0e,0x75,0x00,0x81,0x0e,0x7d,0x0e,0x7d,0x00,0x83,0x0e,0x7f,0x0e,0x7f,0x00,0x84,0x0e,0x83,0x0e,0x83,0x00,0x85,0x0e,0x87,0x0e,0x87,0x00,0x86,0x0e,0x8a,0x0e,0x8b, -0x00,0x87,0x0e,0x8d,0x0e,0x8e,0x00,0x89,0x0e,0x90,0x0e,0x92,0x00,0x8b,0x0e,0x94,0x0e,0x94,0x00,0x8e,0x0e,0x99,0x0e,0x99,0x00,0x8f,0x0e,0x9b,0x0e,0x9b,0x00,0x90,0x0e,0x9d,0x0e,0x9d,0x00,0x91,0x0e,0x9f,0x0e,0x9f,0x00,0x92,0x0e,0xbc,0x0e,0xbc,0x00,0x93,0x0e,0xc4,0x0e,0xc4,0x00,0x94,0x0e,0xc6,0x0e,0xc6,0x00,0x95,0x0e,0xce, -0x0e,0xce,0x00,0x96,0x0e,0xd4,0x0e,0xd4,0x00,0x97,0x0e,0xd8,0x0e,0xd9,0x00,0x98,0x0e,0xdc,0x0e,0xe4,0x00,0x9a,0x0e,0xe6,0x0e,0xea,0x00,0xa3,0x0e,0xed,0x0e,0xed,0x00,0xa8,0x0e,0xef,0x0e,0xef,0x00,0xa9,0x0e,0xf1,0x0e,0xf1,0x00,0xaa,0x0e,0xf3,0x0e,0xf3,0x00,0xab,0x0e,0xf5,0x0e,0xf5,0x00,0xac,0x0e,0xf7,0x0e,0xf7,0x00,0xad, -0x0e,0xf9,0x0e,0xf9,0x00,0xae,0x0e,0xfb,0x0e,0xfb,0x00,0xaf,0x0e,0xff,0x0f,0x02,0x00,0xb0,0x0f,0x0d,0x0f,0x0d,0x00,0xb4,0x0f,0x0f,0x0f,0x0f,0x00,0xb5,0x0f,0x18,0x0f,0x19,0x00,0xb6,0x0f,0x1c,0x0f,0x1d,0x00,0xb8,0x0f,0x22,0x0f,0x23,0x00,0xba,0x0f,0x2e,0x0f,0x2f,0x00,0xbc,0x0f,0x32,0x0f,0x33,0x00,0xbe,0x0f,0x36,0x0f,0x3b, -0x00,0xc0,0x0f,0x42,0x0f,0x43,0x00,0xc6,0x0f,0x64,0x0f,0x64,0x00,0xc8,0x0f,0x68,0x0f,0x68,0x00,0xc9,0x0f,0x98,0x0f,0xa6,0x00,0xca,0x13,0x2c,0x13,0x2c,0x00,0xd9,0x13,0x2f,0x13,0x2f,0x00,0xda,0x13,0x33,0x13,0x35,0x00,0xdb,0x13,0x38,0x13,0x38,0x00,0xde,0x13,0x3c,0x13,0x3c,0x00,0xdf,0x13,0x3f,0x13,0x40,0x00,0xe0,0x14,0x62, -0x14,0x62,0x00,0xe2,0x14,0x6c,0x14,0x6c,0x00,0xe3,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x03,0x00,0x02,0x00,0x28,0x04,0xfa,0x00,0x01,0x07,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x03,0x00,0x02,0x00,0x14, -0x07,0x8e,0x00,0x01,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x02,0x00,0xcd,0x08,0xcb,0x08,0xce,0x00,0x00,0x08,0xd0,0x08,0xd0,0x00,0x04,0x08,0xd2,0x08,0xd2,0x00,0x05,0x08,0xd4,0x08,0xd6,0x00,0x06,0x08,0xe1,0x08,0xe3,0x00,0x09,0x08,0xe5,0x08,0xe6,0x00,0x0c,0x08,0xe8,0x08,0xe9,0x00,0x0e,0x08,0xeb,0x08,0xf0, -0x00,0x10,0x08,0xf4,0x08,0xf4,0x00,0x16,0x08,0xf9,0x08,0xfb,0x00,0x17,0x08,0xff,0x09,0x00,0x00,0x1a,0x09,0x21,0x09,0x21,0x00,0x1c,0x09,0x34,0x09,0x35,0x00,0x1d,0x09,0x3b,0x09,0x3d,0x00,0x1f,0x09,0x3f,0x09,0x3f,0x00,0x22,0x09,0x41,0x09,0x41,0x00,0x23,0x09,0x44,0x09,0x44,0x00,0x24,0x09,0x47,0x09,0x47,0x00,0x25,0x09,0x49, -0x09,0x49,0x00,0x26,0x09,0x4c,0x09,0x4c,0x00,0x27,0x09,0x5c,0x09,0x5c,0x00,0x28,0x09,0x61,0x09,0x62,0x00,0x29,0x09,0x6d,0x09,0x6e,0x00,0x2b,0x09,0x8d,0x09,0x8d,0x00,0x2d,0x09,0x8f,0x09,0x8f,0x00,0x2e,0x09,0x91,0x09,0x91,0x00,0x2f,0x09,0x93,0x09,0x93,0x00,0x30,0x09,0x95,0x09,0x95,0x00,0x31,0x09,0x97,0x09,0x97,0x00,0x32, -0x09,0x9a,0x09,0x9a,0x00,0x33,0x09,0x9d,0x09,0x9d,0x00,0x34,0x09,0xa0,0x09,0xa0,0x00,0x35,0x09,0xa3,0x09,0xa3,0x00,0x36,0x09,0xa6,0x09,0xa6,0x00,0x37,0x09,0xa9,0x09,0xa9,0x00,0x38,0x09,0xba,0x09,0xba,0x00,0x39,0x09,0xbc,0x09,0xbc,0x00,0x3a,0x09,0xbe,0x09,0xbe,0x00,0x3b,0x09,0xc0,0x09,0xc0,0x00,0x3c,0x09,0xc2,0x09,0xc2, -0x00,0x3d,0x09,0xc6,0x09,0xc7,0x00,0x3e,0x09,0xca,0x09,0xcb,0x00,0x40,0x09,0xcd,0x09,0xce,0x00,0x42,0x09,0xd0,0x09,0xd1,0x00,0x44,0x09,0xd3,0x09,0xd4,0x00,0x46,0x09,0xd8,0x09,0xd8,0x00,0x48,0x09,0xda,0x09,0xda,0x00,0x49,0x09,0xdc,0x09,0xdc,0x00,0x4a,0x09,0xde,0x09,0xde,0x00,0x4b,0x09,0xe0,0x09,0xe0,0x00,0x4c,0x09,0xe2, -0x09,0xe2,0x00,0x4d,0x09,0xe4,0x09,0xe4,0x00,0x4e,0x09,0xe6,0x09,0xe6,0x00,0x4f,0x09,0xe8,0x09,0xe8,0x00,0x50,0x09,0xea,0x09,0xea,0x00,0x51,0x09,0xec,0x09,0xec,0x00,0x52,0x09,0xee,0x09,0xee,0x00,0x53,0x09,0xf0,0x09,0xf0,0x00,0x54,0x09,0xf2,0x09,0xf2,0x00,0x55,0x09,0xf4,0x09,0xf4,0x00,0x56,0x09,0xf7,0x09,0xf7,0x00,0x57, -0x09,0xf9,0x09,0xf9,0x00,0x58,0x09,0xfc,0x09,0xfc,0x00,0x59,0x0a,0x09,0x0a,0x09,0x00,0x5a,0x0a,0x10,0x0a,0x10,0x00,0x5b,0x0a,0x25,0x0a,0x25,0x00,0x5c,0x0a,0x27,0x0a,0x27,0x00,0x5d,0x0a,0x2a,0x0a,0x2b,0x00,0x5e,0x0a,0x32,0x0a,0x3b,0x00,0x60,0x0a,0x41,0x0a,0x42,0x00,0x6a,0x0a,0x5a,0x0a,0x5b,0x00,0x6c,0x0a,0x5f,0x0a,0x62, -0x00,0x6e,0x0a,0x73,0x0a,0x73,0x00,0x72,0x0a,0x75,0x0a,0x75,0x00,0x73,0x0a,0x77,0x0a,0x77,0x00,0x74,0x0a,0x79,0x0a,0x79,0x00,0x75,0x0a,0x7b,0x0a,0x7b,0x00,0x76,0x0a,0x7d,0x0a,0x7d,0x00,0x77,0x0a,0x7f,0x0a,0x7f,0x00,0x78,0x0a,0x82,0x0a,0x82,0x00,0x79,0x0a,0x85,0x0a,0x85,0x00,0x7a,0x0a,0x8a,0x0a,0x8a,0x00,0x7b,0x0a,0x8d, -0x0a,0x8e,0x00,0x7c,0x0a,0x91,0x0a,0x92,0x00,0x7e,0x0a,0x95,0x0a,0x96,0x00,0x80,0x0a,0x98,0x0a,0x99,0x00,0x82,0x0a,0x9b,0x0a,0x9c,0x00,0x84,0x0a,0x9e,0x0a,0x9f,0x00,0x86,0x0a,0xa1,0x0a,0xa2,0x00,0x88,0x0a,0xa4,0x0a,0xa5,0x00,0x8a,0x0a,0xa7,0x0a,0xa7,0x00,0x8c,0x0a,0xa9,0x0a,0xa9,0x00,0x8d,0x0a,0xab,0x0a,0xab,0x00,0x8e, -0x0a,0xad,0x0a,0xad,0x00,0x8f,0x0a,0xaf,0x0a,0xaf,0x00,0x90,0x0a,0xb2,0x0a,0xb3,0x00,0x91,0x0a,0xb7,0x0a,0xb7,0x00,0x93,0x0a,0xb9,0x0a,0xba,0x00,0x94,0x0e,0x22,0x0e,0x23,0x00,0x96,0x0e,0x25,0x0e,0x25,0x00,0x98,0x0e,0x27,0x0e,0x27,0x00,0x99,0x0e,0x29,0x0e,0x29,0x00,0x9a,0x0e,0x2b,0x0e,0x2e,0x00,0x9b,0x0e,0x32,0x0e,0x32, -0x00,0x9f,0x0e,0x34,0x0e,0x34,0x00,0xa0,0x0e,0x36,0x0e,0x36,0x00,0xa1,0x0e,0x38,0x0e,0x38,0x00,0xa2,0x0e,0x3a,0x0e,0x3b,0x00,0xa3,0x0e,0x3d,0x0e,0x3e,0x00,0xa5,0x0e,0x41,0x0e,0x42,0x00,0xa7,0x0e,0x45,0x0e,0x46,0x00,0xa9,0x0e,0x49,0x0e,0x4a,0x00,0xab,0x0e,0x4d,0x0e,0x4e,0x00,0xad,0x0e,0x51,0x0e,0x52,0x00,0xaf,0x0e,0x56, -0x0e,0x56,0x00,0xb1,0x0e,0x58,0x0e,0x58,0x00,0xb2,0x0e,0x5a,0x0e,0x5b,0x00,0xb3,0x0e,0x5d,0x0e,0x5d,0x00,0xb5,0x0e,0x5f,0x0e,0x61,0x00,0xb6,0x0e,0x6f,0x0e,0x6f,0x00,0xb9,0x0e,0x71,0x0e,0x72,0x00,0xba,0x0e,0x76,0x0e,0x77,0x00,0xbc,0x0e,0x79,0x0e,0x79,0x00,0xbe,0x0e,0x7b,0x0e,0x7b,0x00,0xbf,0x0e,0x7d,0x0e,0x7d,0x00,0xc0, -0x0e,0x7f,0x0e,0x7f,0x00,0xc1,0x0e,0x81,0x0e,0x81,0x00,0xc2,0x0e,0x83,0x0e,0x83,0x00,0xc3,0x0e,0x85,0x0e,0x85,0x00,0xc4,0x0e,0x87,0x0e,0x8e,0x00,0xc5,0x0e,0x99,0x0e,0x99,0x00,0xcd,0x0e,0x9b,0x0e,0x9b,0x00,0xce,0x0e,0x9d,0x0e,0x9d,0x00,0xcf,0x0e,0x9f,0x0e,0x9f,0x00,0xd0,0x0e,0xa1,0x0e,0xa1,0x00,0xd1,0x0e,0xa3,0x0e,0xa4, -0x00,0xd2,0x0e,0xac,0x0e,0xad,0x00,0xd4,0x0e,0xaf,0x0e,0xb0,0x00,0xd6,0x0e,0xb2,0x0e,0xb2,0x00,0xd8,0x0e,0xb4,0x0e,0xb4,0x00,0xd9,0x0e,0xb6,0x0e,0xb6,0x00,0xda,0x0e,0xb8,0x0e,0xb8,0x00,0xdb,0x0e,0xba,0x0e,0xba,0x00,0xdc,0x0e,0xbc,0x0e,0xbc,0x00,0xdd,0x0e,0xbe,0x0e,0xbe,0x00,0xde,0x0e,0xc0,0x0e,0xc0,0x00,0xdf,0x0e,0xc2, -0x0e,0xc2,0x00,0xe0,0x0e,0xc4,0x0e,0xc4,0x00,0xe1,0x0e,0xc6,0x0e,0xc6,0x00,0xe2,0x0e,0xc8,0x0e,0xc8,0x00,0xe3,0x0e,0xce,0x0e,0xce,0x00,0xe4,0x0e,0xd1,0x0e,0xd2,0x00,0xe5,0x0e,0xd4,0x0e,0xd4,0x00,0xe7,0x0e,0xd6,0x0e,0xd9,0x00,0xe8,0x0e,0xe4,0x0e,0xe5,0x00,0xec,0x0e,0xe7,0x0e,0xea,0x00,0xee,0x0e,0xed,0x0e,0xed,0x00,0xf2, -0x0e,0xef,0x0e,0xef,0x00,0xf3,0x0e,0xf1,0x0e,0xf1,0x00,0xf4,0x0e,0xf3,0x0e,0xf3,0x00,0xf5,0x0e,0xf5,0x0e,0xf5,0x00,0xf6,0x0e,0xf7,0x0e,0xf7,0x00,0xf7,0x0e,0xf9,0x0e,0xf9,0x00,0xf8,0x0e,0xfb,0x0e,0xfb,0x00,0xf9,0x0e,0xfd,0x0e,0xff,0x00,0xfa,0x0f,0x04,0x0f,0x04,0x00,0xfd,0x0f,0x0b,0x0f,0x0b,0x00,0xfe,0x0f,0x0d,0x0f,0x0d, -0x00,0xff,0x0f,0x0f,0x0f,0x0f,0x01,0x00,0x0f,0x11,0x0f,0x11,0x01,0x01,0x0f,0x13,0x0f,0x13,0x01,0x02,0x0f,0x15,0x0f,0x15,0x01,0x03,0x0f,0x18,0x0f,0x19,0x01,0x04,0x0f,0x1c,0x0f,0x1d,0x01,0x06,0x0f,0x20,0x0f,0x21,0x01,0x08,0x0f,0x26,0x0f,0x27,0x01,0x0a,0x0f,0x2e,0x0f,0x2f,0x01,0x0c,0x0f,0x32,0x0f,0x33,0x01,0x0e,0x0f,0x36, -0x0f,0x37,0x01,0x10,0x0f,0x42,0x0f,0x43,0x01,0x12,0x0f,0x46,0x0f,0x47,0x01,0x14,0x0f,0x4a,0x0f,0x4b,0x01,0x16,0x0f,0x4e,0x0f,0x4f,0x01,0x18,0x0f,0x6c,0x0f,0x6c,0x01,0x1a,0x0f,0x6e,0x0f,0x6e,0x01,0x1b,0x0f,0x70,0x0f,0x70,0x01,0x1c,0x0f,0x72,0x0f,0x72,0x01,0x1d,0x0f,0x74,0x0f,0x74,0x01,0x1e,0x0f,0x76,0x0f,0x76,0x01,0x1f, -0x0f,0x78,0x0f,0x78,0x01,0x20,0x0f,0x7a,0x0f,0x7a,0x01,0x21,0x0f,0x7c,0x0f,0x7c,0x01,0x22,0x0f,0x7e,0x0f,0x7e,0x01,0x23,0x0f,0x80,0x0f,0x80,0x01,0x24,0x0f,0x82,0x0f,0x82,0x01,0x25,0x0f,0x84,0x0f,0x84,0x01,0x26,0x0f,0x86,0x0f,0x86,0x01,0x27,0x0f,0x88,0x0f,0x88,0x01,0x28,0x0f,0x8a,0x0f,0x8a,0x01,0x29,0x0f,0x8c,0x0f,0x8c, -0x01,0x2a,0x0f,0x8e,0x0f,0x8e,0x01,0x2b,0x0f,0x90,0x0f,0x90,0x01,0x2c,0x0f,0x92,0x0f,0x92,0x01,0x2d,0x0f,0x94,0x0f,0x94,0x01,0x2e,0x0f,0x96,0x0f,0x96,0x01,0x2f,0x00,0x02,0x00,0x6c,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18, -0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08,0x09,0x41,0x09,0x41,0x00,0x09,0x09,0x44,0x09,0x45,0x00,0x0a,0x09,0x4c,0x09,0x4c,0x00,0x0c,0x09,0x5e,0x09,0x5e,0x00,0x0d,0x09,0x61,0x09,0x62,0x00,0x0e,0x09,0x77,0x09,0x77,0x00,0x10,0x09,0x7f,0x09,0x7f,0x00,0x11,0x09,0x84,0x09,0x85,0x00,0x12,0x09,0x88,0x09,0x89,0x00,0x14,0x09,0x8f, -0x09,0x8f,0x00,0x16,0x09,0x91,0x09,0x91,0x00,0x17,0x09,0x97,0x09,0x97,0x00,0x18,0x09,0xa0,0x09,0xa0,0x00,0x19,0x09,0xa3,0x09,0xa3,0x00,0x1a,0x09,0xa9,0x09,0xac,0x00,0x1b,0x09,0xae,0x09,0xae,0x00,0x1f,0x09,0xb2,0x09,0xb8,0x00,0x20,0x09,0xba,0x09,0xba,0x00,0x27,0x09,0xbc,0x09,0xbc,0x00,0x28,0x09,0xbe,0x09,0xbe,0x00,0x29, -0x09,0xc0,0x09,0xc0,0x00,0x2a,0x09,0xca,0x09,0xcb,0x00,0x2b,0x09,0xcd,0x09,0xce,0x00,0x2d,0x09,0xd0,0x09,0xd1,0x00,0x2f,0x09,0xe0,0x09,0xe0,0x00,0x31,0x09,0xe6,0x09,0xe6,0x00,0x32,0x09,0xe8,0x09,0xe8,0x00,0x33,0x09,0xf2,0x09,0xf2,0x00,0x34,0x09,0xf4,0x09,0xf4,0x00,0x35,0x09,0xf7,0x09,0xf7,0x00,0x36,0x09,0xfc,0x0a,0x04, -0x00,0x37,0x0a,0x0a,0x0a,0x0a,0x00,0x40,0x0a,0x25,0x0a,0x25,0x00,0x41,0x0a,0x27,0x0a,0x27,0x00,0x42,0x0a,0x2a,0x0a,0x2b,0x00,0x43,0x0a,0x56,0x0a,0x57,0x00,0x45,0x0a,0x5b,0x0a,0x5b,0x00,0x47,0x0a,0x62,0x0a,0x62,0x00,0x48,0x0a,0x73,0x0a,0x73,0x00,0x49,0x0a,0x75,0x0a,0x75,0x00,0x4a,0x0a,0x77,0x0a,0x77,0x00,0x4b,0x0a,0x79, -0x0a,0x79,0x00,0x4c,0x0a,0x7b,0x0a,0x7b,0x00,0x4d,0x0a,0x7d,0x0a,0x7d,0x00,0x4e,0x0a,0x85,0x0a,0x88,0x00,0x4f,0x0a,0x98,0x0a,0x99,0x00,0x53,0x0a,0x9b,0x0a,0x9c,0x00,0x55,0x0a,0xa4,0x0a,0xa5,0x00,0x57,0x0a,0xa9,0x0a,0xa9,0x00,0x59,0x0a,0xab,0x0a,0xab,0x00,0x5a,0x0a,0xb4,0x0a,0xb5,0x00,0x5b,0x0b,0x0c,0x0b,0x18,0x00,0x5d, -0x0e,0x22,0x0e,0x23,0x00,0x6a,0x0e,0x27,0x0e,0x27,0x00,0x6c,0x0e,0x2c,0x0e,0x2c,0x00,0x6d,0x0e,0x45,0x0e,0x46,0x00,0x6e,0x0e,0x49,0x0e,0x4a,0x00,0x70,0x0e,0x4d,0x0e,0x4e,0x00,0x72,0x0e,0x51,0x0e,0x52,0x00,0x74,0x0e,0x61,0x0e,0x61,0x00,0x76,0x0e,0x74,0x0e,0x75,0x00,0x77,0x0e,0x7d,0x0e,0x7d,0x00,0x79,0x0e,0x7f,0x0e,0x7f, -0x00,0x7a,0x0e,0x83,0x0e,0x83,0x00,0x7b,0x0e,0x87,0x0e,0x87,0x00,0x7c,0x0e,0x8a,0x0e,0x8b,0x00,0x7d,0x0e,0x8d,0x0e,0x8e,0x00,0x7f,0x0e,0x90,0x0e,0x92,0x00,0x81,0x0e,0x94,0x0e,0x94,0x00,0x84,0x0e,0x99,0x0e,0x99,0x00,0x85,0x0e,0x9b,0x0e,0x9b,0x00,0x86,0x0e,0x9d,0x0e,0x9d,0x00,0x87,0x0e,0x9f,0x0e,0x9f,0x00,0x88,0x0e,0xbc, -0x0e,0xbc,0x00,0x89,0x0e,0xc4,0x0e,0xc4,0x00,0x8a,0x0e,0xc6,0x0e,0xc6,0x00,0x8b,0x0e,0xce,0x0e,0xce,0x00,0x8c,0x0e,0xd4,0x0e,0xd4,0x00,0x8d,0x0e,0xd8,0x0e,0xd9,0x00,0x8e,0x0e,0xdc,0x0e,0xe4,0x00,0x90,0x0e,0xe6,0x0e,0xea,0x00,0x99,0x0e,0xed,0x0e,0xed,0x00,0x9e,0x0e,0xef,0x0e,0xef,0x00,0x9f,0x0e,0xf1,0x0e,0xf1,0x00,0xa0, -0x0e,0xf3,0x0e,0xf3,0x00,0xa1,0x0e,0xf5,0x0e,0xf5,0x00,0xa2,0x0e,0xf7,0x0e,0xf7,0x00,0xa3,0x0e,0xf9,0x0e,0xf9,0x00,0xa4,0x0e,0xfb,0x0e,0xfb,0x00,0xa5,0x0e,0xff,0x0f,0x02,0x00,0xa6,0x0f,0x0d,0x0f,0x0d,0x00,0xaa,0x0f,0x0f,0x0f,0x0f,0x00,0xab,0x0f,0x18,0x0f,0x19,0x00,0xac,0x0f,0x1c,0x0f,0x1d,0x00,0xae,0x0f,0x22,0x0f,0x23, -0x00,0xb0,0x0f,0x2e,0x0f,0x2f,0x00,0xb2,0x0f,0x32,0x0f,0x33,0x00,0xb4,0x0f,0x36,0x0f,0x3b,0x00,0xb6,0x0f,0x42,0x0f,0x43,0x00,0xbc,0x0f,0x64,0x0f,0x64,0x00,0xbe,0x0f,0x68,0x0f,0x68,0x00,0xbf,0x0f,0x98,0x0f,0xa6,0x00,0xc0,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d, -0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, -0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x03, -0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x02,0x00,0x03,0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, -0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, -0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x05,0x6a,0x00,0x05,0x00,0x10,0x01,0x22,0x02,0x34,0x03,0x46,0x04,0x58,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8, -0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xae,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xaf,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xb0,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xb1,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xb2,0x00,0x03,0x06,0xa3, -0x06,0xa2,0x06,0xb3,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xb4,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xb5,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xb6,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xb7,0x00,0x02,0x06,0xa3,0x06,0xb8,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xb9,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xba,0x00,0x03,0x06,0xa4,0x06,0xa4, -0x06,0xbb,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xbc,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xbd,0x00,0x02,0x06,0xa4,0x06,0xbe,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xbf,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xc0,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xc1,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xc2,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xc3, -0x00,0x02,0x06,0xa5,0x06,0xc4,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xc5,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xc6,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xc7,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xc8,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xc9,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62, -0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8,0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xca,0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xcb,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xcc,0x00,0x03, -0x06,0xa2,0x06,0xa4,0x06,0xcd,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xce,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xcf,0x00,0x02,0x06,0xa2,0x06,0xd0,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xd1,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xd2,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xd3,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xd4,0x00,0x03,0x06,0xa4, -0x06,0xa2,0x06,0xd5,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xd6,0x00,0x03,0x06,0xa4,0x06,0xa4,0x06,0xd7,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xd8,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xd9,0x00,0x02,0x06,0xa4,0x06,0xda,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xdb,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xdc,0x00,0x03,0x06,0xa5,0x06,0xa4, -0x06,0xdd,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xde,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xdf,0x00,0x02,0x06,0xa5,0x06,0xe0,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xe1,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xe2,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xe3,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xe4,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xe5, -0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xe6, -0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xe7,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xe8,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xe9,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xea,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xeb,0x00,0x02,0x06,0xa2,0x06,0xeb,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xec,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xed,0x00,0x03, -0x06,0xa3,0x06,0xa4,0x06,0xee,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xef,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xf0,0x00,0x02,0x06,0xa3,0x06,0xf1,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xf2,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xf3,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xf4,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xf5,0x00,0x03,0x06,0xa5, -0x06,0xa2,0x06,0xf6,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xf7,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xf8,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xf9,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xfa,0x00,0x02,0x06,0xa5,0x06,0xfb,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xfc,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xfd,0x00,0x03,0x06,0xa6,0x06,0xa4, -0x06,0xfe,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xff,0x00,0x03,0x06,0xa6,0x06,0xa6,0x07,0x00,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc, -0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x01,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x02,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x03,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x04,0x00,0x03,0x06,0xa2,0x06,0xa5,0x07,0x05,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x06,0x00,0x02,0x06,0xa2,0x07,0x07, -0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x08,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x09,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x0a,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x0b,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x0c,0x00,0x02,0x06,0xa3,0x07,0x0d,0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x0e,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x0f,0x00,0x03, -0x06,0xa4,0x06,0xa4,0x07,0x10,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x11,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x12,0x00,0x02,0x06,0xa4,0x07,0x13,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x14,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x15,0x00,0x03,0x06,0xa5,0x06,0xa4,0x07,0x16,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x1c,0x00,0x02,0x06,0xa6, -0x07,0x17,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x18,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x19,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x1a,0x00,0x03,0x06,0xa6,0x06,0xa5,0x07,0x1b,0x00,0x03,0x06,0xa6,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88, -0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x1d,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x1e,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x1f,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x20,0x00,0x03,0x06,0xa2, -0x06,0xa5,0x07,0x21,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x22,0x00,0x02,0x06,0xa2,0x07,0x23,0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x24,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x25,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x26,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x27,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x28,0x00,0x02,0x06,0xa3,0x07,0x29, -0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x2a,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x2b,0x00,0x03,0x06,0xa4,0x06,0xa4,0x07,0x2c,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x2d,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x2e,0x00,0x02,0x06,0xa4,0x07,0x2f,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x30,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x31,0x00,0x03, -0x06,0xa5,0x06,0xa4,0x07,0x32,0x00,0x03,0x06,0xa5,0x06,0xa5,0x07,0x33,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x34,0x00,0x02,0x06,0xa5,0x07,0x35,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x36,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x37,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x38,0x00,0x03,0x06,0xa6,0x06,0xa5,0x00,0x02,0x00,0x01,0x06,0xa2, -0x06,0xa6,0x00,0x00,0x00,0x01,0x01,0x92,0x00,0x03,0x00,0x0c,0x00,0x6e,0x01,0x00,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x08,0x62,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x63,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x64,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46, -0x08,0x65,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x66,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x67,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x68,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x69,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c, -0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x6a,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x6b,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x6c,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x6d,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x6e,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x6f, -0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x70,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x71,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7a,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7b,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x47,0x08,0x7c,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x7d,0x00,0x04,0x04,0x68, -0x04,0x66,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c,0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x72,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x73,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x74,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x75,0x00,0x04, -0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x76,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x77,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x78,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x79,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7e,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7f,0x00,0x04,0x04,0x68,0x04,0x64, -0x02,0x47,0x08,0x80,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x81,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x47,0x00,0x02,0x00,0x03,0x01,0x2f,0x01,0x2f,0x00,0x00,0x01,0xc9,0x01,0xc9,0x00,0x01,0x01,0xd2,0x01,0xd2,0x00,0x02,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab, -0x08,0xac,0x08,0xad,0x08,0xae,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x0c,0x08,0x99,0x08,0x98,0x08,0x96,0x08,0x97,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0x95,0x01,0x37,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x4c,0x00,0x4c,0x00,0x0a,0x00,0x51, -0x00,0x51,0x00,0x0b,0x00,0x02,0x00,0x64,0x00,0x2f,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6, -0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5,0x0d,0xb6,0x0d,0xb7,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x02,0xb5,0x02,0xb6,0x00,0x2d,0x00,0x02, -0x00,0x64,0x00,0x2f,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6,0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5, -0x0d,0xb6,0x0d,0xb7,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x02,0x07,0x02,0x32,0x00,0x00,0x02,0x34,0x02,0x34,0x00,0x2c,0x02,0xb7,0x02,0xb8,0x00,0x2d,0x00,0x02,0x00,0x48,0x00,0x21,0x0d,0x6c, -0x0d,0x6b,0x0d,0x70,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x69,0x0d,0x6a,0x0d,0x6d,0x0d,0x6e,0x0d,0x6f,0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x78,0x0d,0x79,0x0d,0x7a,0x0d,0x7b,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89, -0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x4a,0x00,0x22,0x0d,0x69,0x0d,0x6c,0x0d,0x6d,0x0d,0x7a,0x0d,0x7b,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x6a,0x0d,0x6b,0x0d,0x6e,0x0d,0x6f,0x0d,0x70, -0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x79,0x0d,0x7a,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x78,0x00,0x02,0x00,0x04,0x01,0x2f,0x01,0x34,0x00,0x00,0x01,0xbf,0x01,0xc2,0x00,0x06,0x01,0xc4,0x01,0xda,0x00,0x0a,0x02,0x37,0x02,0x37, -0x00,0x21,0x00,0x02,0x01,0x08,0x00,0x81,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf3,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6,0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x10, -0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x1b,0x0d,0x20,0x0d,0x24,0x0d,0x05,0x0d,0x08,0x0d,0x0c,0x0d,0x0f,0x0d,0x1f,0x0d,0x06,0x0d,0x61,0x0d,0x0e,0x0d,0x15,0x0d,0x0d,0x0d,0x16,0x0d,0x13,0x0d,0x18,0x0d,0x19,0x0d,0x1a,0x0d,0x17,0x0d,0x1d,0x0d,0x1e,0x0d,0x1c,0x0d,0x22,0x0d,0x23,0x0d,0x21,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a, -0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x3c,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x2d,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43,0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35, -0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45,0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d, -0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x0d,0x0b,0x00,0x02,0x00,0x4e,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x24,0x00,0x3d,0x00,0x01,0x00,0x62,0x00,0x68,0x00,0x1b,0x00,0x91,0x00,0x92,0x00,0x22,0x00,0xad,0x00,0xb0,0x00,0x24,0x00,0xbb,0x00,0xbb,0x00,0x28,0x00,0xc7,0x00,0xd5,0x00,0x29,0x00,0xe1,0x00,0xe1,0x00,0x38,0x00,0xe3, -0x00,0xe3,0x00,0x39,0x00,0xe5,0x00,0xe5,0x00,0x3a,0x00,0xe8,0x00,0xe8,0x00,0x3b,0x00,0xea,0x00,0xea,0x00,0x3c,0x00,0xec,0x00,0xec,0x00,0x3d,0x00,0xf7,0x00,0xf7,0x00,0x3e,0x00,0xf9,0x00,0xfa,0x00,0x3f,0x00,0xfc,0x00,0xfc,0x00,0x41,0x00,0xfe,0x00,0xfe,0x00,0x42,0x01,0x03,0x01,0x03,0x00,0x43,0x01,0x05,0x01,0x05,0x00,0x44, -0x01,0x07,0x01,0x07,0x00,0x45,0x01,0x09,0x01,0x0a,0x00,0x46,0x01,0x0c,0x01,0x0c,0x00,0x48,0x01,0x0e,0x01,0x0e,0x00,0x49,0x01,0x10,0x01,0x10,0x00,0x4a,0x01,0x12,0x01,0x12,0x00,0x4b,0x01,0x14,0x01,0x14,0x00,0x4c,0x01,0x16,0x01,0x16,0x00,0x4d,0x01,0x18,0x01,0x18,0x00,0x4e,0x01,0x1a,0x01,0x1a,0x00,0x4f,0x01,0x1c,0x01,0x1c, -0x00,0x50,0x01,0x1e,0x01,0x1e,0x00,0x51,0x01,0x20,0x01,0x20,0x00,0x52,0x01,0x22,0x01,0x22,0x00,0x53,0x01,0x24,0x01,0x24,0x00,0x54,0x01,0x26,0x01,0x26,0x00,0x55,0x01,0x28,0x01,0x28,0x00,0x56,0x01,0x2a,0x01,0x2a,0x00,0x57,0x01,0x39,0x01,0x39,0x00,0x58,0x01,0x45,0x01,0x45,0x00,0x59,0x01,0x47,0x01,0x47,0x00,0x5a,0x01,0x49, -0x01,0x49,0x00,0x5b,0x01,0x4b,0x01,0x4b,0x00,0x5c,0x01,0x4d,0x01,0x4d,0x00,0x5d,0x01,0x4f,0x01,0x4f,0x00,0x5e,0x01,0x51,0x01,0x51,0x00,0x5f,0x01,0x53,0x01,0x53,0x00,0x60,0x01,0x55,0x01,0x55,0x00,0x61,0x01,0x57,0x01,0x57,0x00,0x62,0x01,0x59,0x01,0x59,0x00,0x63,0x01,0x5b,0x01,0x5b,0x00,0x64,0x01,0x5d,0x01,0x5d,0x00,0x65, -0x01,0x5f,0x01,0x5f,0x00,0x66,0x01,0x61,0x01,0x61,0x00,0x67,0x01,0x63,0x01,0x63,0x00,0x68,0x01,0x65,0x01,0x65,0x00,0x69,0x01,0x68,0x01,0x68,0x00,0x6a,0x01,0x6a,0x01,0x6a,0x00,0x6b,0x01,0x6c,0x01,0x6c,0x00,0x6c,0x01,0x6e,0x01,0x6e,0x00,0x6d,0x01,0x70,0x01,0x70,0x00,0x6e,0x01,0x72,0x01,0x72,0x00,0x6f,0x01,0x74,0x01,0x74, -0x00,0x70,0x01,0x76,0x01,0x76,0x00,0x71,0x01,0x78,0x01,0x78,0x00,0x72,0x01,0x7a,0x01,0x7a,0x00,0x73,0x01,0x7c,0x01,0x7c,0x00,0x74,0x01,0x7e,0x01,0x7e,0x00,0x75,0x01,0x80,0x01,0x80,0x00,0x76,0x01,0x82,0x01,0x82,0x00,0x77,0x01,0x85,0x01,0x85,0x00,0x78,0x01,0x87,0x01,0x87,0x00,0x79,0x01,0x89,0x01,0x89,0x00,0x7a,0x01,0x8c, -0x01,0x8c,0x00,0x7b,0x01,0x8e,0x01,0x8e,0x00,0x7c,0x01,0x90,0x01,0x90,0x00,0x7d,0x01,0x92,0x01,0x92,0x00,0x7e,0x02,0x3d,0x02,0x3d,0x00,0x7f,0x0b,0x21,0x0b,0x21,0x00,0x80,0x00,0x02,0x01,0x06,0x00,0x80,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6, -0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x0d,0x0d,0x0c,0x0d,0x0e,0x0d,0x10,0x0d,0x0f,0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x13,0x0d,0x15,0x0d,0x16,0x0d,0x18,0x0d,0x17,0x0d,0x19,0x0d,0x1a,0x0d,0x1b,0x0d,0x1d,0x0d,0x1c, -0x0d,0x1e,0x0d,0x20,0x0d,0x1f,0x0d,0x22,0x0d,0x21,0x0d,0x23,0x0d,0x24,0x0d,0x0b,0x0d,0x05,0x0d,0x08,0x0d,0x06,0x0d,0x61,0x0c,0xf3,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a,0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x2d,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43, -0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35,0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45, -0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d,0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x00,0x02,0x00,0x4f,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x44,0x00,0x4b,0x00,0x01,0x00,0x4d,0x00,0x5d,0x00,0x09,0x00,0x69, -0x00,0x81,0x00,0x1a,0x00,0x89,0x00,0x89,0x00,0x33,0x00,0xa0,0x00,0xa1,0x00,0x34,0x00,0xb1,0x00,0xb1,0x00,0x36,0x00,0xba,0x00,0xba,0x00,0x37,0x00,0xd6,0x00,0xd6,0x00,0x38,0x00,0xe2,0x00,0xe2,0x00,0x39,0x00,0xe4,0x00,0xe4,0x00,0x3a,0x00,0xe6,0x00,0xe6,0x00,0x3b,0x00,0xe9,0x00,0xe9,0x00,0x3c,0x00,0xeb,0x00,0xeb,0x00,0x3d, -0x00,0xed,0x00,0xed,0x00,0x3e,0x00,0xf8,0x00,0xf8,0x00,0x3f,0x00,0xfb,0x00,0xfb,0x00,0x40,0x00,0xfd,0x00,0xfd,0x00,0x41,0x00,0xff,0x01,0x00,0x00,0x42,0x01,0x04,0x01,0x04,0x00,0x44,0x01,0x06,0x01,0x06,0x00,0x45,0x01,0x08,0x01,0x08,0x00,0x46,0x01,0x0b,0x01,0x0b,0x00,0x47,0x01,0x0d,0x01,0x0d,0x00,0x48,0x01,0x0f,0x01,0x0f, -0x00,0x49,0x01,0x11,0x01,0x11,0x00,0x4a,0x01,0x13,0x01,0x13,0x00,0x4b,0x01,0x15,0x01,0x15,0x00,0x4c,0x01,0x17,0x01,0x17,0x00,0x4d,0x01,0x19,0x01,0x19,0x00,0x4e,0x01,0x1b,0x01,0x1b,0x00,0x4f,0x01,0x1d,0x01,0x1d,0x00,0x50,0x01,0x1f,0x01,0x1f,0x00,0x51,0x01,0x21,0x01,0x21,0x00,0x52,0x01,0x23,0x01,0x23,0x00,0x53,0x01,0x25, -0x01,0x25,0x00,0x54,0x01,0x27,0x01,0x27,0x00,0x55,0x01,0x29,0x01,0x29,0x00,0x56,0x01,0x2b,0x01,0x2b,0x00,0x57,0x01,0x3a,0x01,0x3a,0x00,0x58,0x01,0x46,0x01,0x46,0x00,0x59,0x01,0x48,0x01,0x48,0x00,0x5a,0x01,0x4a,0x01,0x4a,0x00,0x5b,0x01,0x4c,0x01,0x4c,0x00,0x5c,0x01,0x4e,0x01,0x4e,0x00,0x5d,0x01,0x50,0x01,0x50,0x00,0x5e, -0x01,0x52,0x01,0x52,0x00,0x5f,0x01,0x54,0x01,0x54,0x00,0x60,0x01,0x56,0x01,0x56,0x00,0x61,0x01,0x58,0x01,0x58,0x00,0x62,0x01,0x5a,0x01,0x5a,0x00,0x63,0x01,0x5c,0x01,0x5c,0x00,0x64,0x01,0x5e,0x01,0x5e,0x00,0x65,0x01,0x60,0x01,0x60,0x00,0x66,0x01,0x62,0x01,0x62,0x00,0x67,0x01,0x64,0x01,0x64,0x00,0x68,0x01,0x66,0x01,0x66, -0x00,0x69,0x01,0x69,0x01,0x69,0x00,0x6a,0x01,0x6b,0x01,0x6b,0x00,0x6b,0x01,0x6d,0x01,0x6d,0x00,0x6c,0x01,0x6f,0x01,0x6f,0x00,0x6d,0x01,0x71,0x01,0x71,0x00,0x6e,0x01,0x73,0x01,0x73,0x00,0x6f,0x01,0x75,0x01,0x75,0x00,0x70,0x01,0x77,0x01,0x77,0x00,0x71,0x01,0x79,0x01,0x79,0x00,0x72,0x01,0x7b,0x01,0x7b,0x00,0x73,0x01,0x7d, -0x01,0x7d,0x00,0x74,0x01,0x7f,0x01,0x7f,0x00,0x75,0x01,0x81,0x01,0x81,0x00,0x76,0x01,0x83,0x01,0x83,0x00,0x77,0x01,0x86,0x01,0x86,0x00,0x78,0x01,0x88,0x01,0x88,0x00,0x79,0x01,0x8a,0x01,0x8a,0x00,0x7a,0x01,0x8d,0x01,0x8d,0x00,0x7b,0x01,0x8f,0x01,0x8f,0x00,0x7c,0x01,0x91,0x01,0x91,0x00,0x7d,0x01,0x93,0x01,0x93,0x00,0x7e, -0x02,0x3e,0x02,0x3e,0x00,0x7f,0x00,0x02,0x00,0x08,0x00,0x01,0x0c,0xf3,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0x08,0x00,0x01,0x0d,0x3c,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x24,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x10,0x00,0x16,0x0d,0xbd,0x00,0x03,0x00,0x49,0x00,0x4f,0x0d,0xbb,0x00,0x02,0x00,0x49, -0x0d,0xba,0x00,0x02,0x00,0x4f,0x00,0x01,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x0a,0x00,0x1e,0x00,0x02,0x00,0x06,0x00,0x0e,0x0d,0xbc,0x00,0x03,0x00,0x49,0x00,0x4c,0x0d,0xb9,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x04,0x0d,0xbc,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x02,0x00,0x49,0x0d,0xbb,0x00,0x02,0x00,0x08, -0x00,0x01,0x00,0xbc,0x00,0x01,0x00,0x01,0x00,0x12,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x02,0x00,0xbc,0x00,0xbc,0x00,0x00,0x0c,0xe1,0x0c,0xea,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0x8d,0x00,0xf0, -0x00,0xf1,0x00,0xf2,0x02,0x38,0x02,0x39,0x08,0x8e,0x02,0x3a,0x02,0x3b,0x08,0x8f,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6,0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02, -0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0,0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01, -0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0, -0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6, -0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x06, -0x00,0x12,0x00,0x38,0x00,0x44,0x00,0x50,0x00,0x6a,0x00,0x76,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x10,0xb9,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x14,0x10,0xba,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x15,0x10,0xbb,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x16,0x00,0x01,0x00,0x04,0x08,0xc5,0x00,0x03,0x00,0x35,0x00,0x30,0x00,0x01, -0x00,0x04,0x10,0xbc,0x00,0x03,0x00,0x39,0x00,0x36,0x00,0x02,0x00,0x06,0x00,0x10,0x10,0xfb,0x00,0x04,0x00,0x25,0x00,0x36,0x00,0x33,0x10,0xfd,0x00,0x04,0x00,0x31,0x00,0x25,0x00,0x36,0x00,0x01,0x00,0x04,0x08,0xc6,0x00,0x03,0x00,0x2f,0x00,0x30,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1a,0x10,0xfc,0x00,0x04,0x00,0x3a,0x00,0x36, -0x00,0x33,0x08,0xc4,0x00,0x03,0x00,0x3a,0x00,0x2d,0x08,0xc3,0x00,0x04,0x00,0x3a,0x00,0x31,0x00,0x2d,0x00,0x02,0x00,0x04,0x00,0x29,0x00,0x29,0x00,0x00,0x00,0x2f,0x00,0x31,0x00,0x01,0x00,0x35,0x00,0x35,0x00,0x04,0x00,0x3d,0x00,0x3d,0x00,0x05,0x00,0x02,0x00,0x80,0x00,0x3d,0x10,0xe5,0x10,0xbd,0x10,0xbe,0x10,0xbf,0x10,0xe6, -0x10,0xe7,0x10,0xe8,0x10,0xe9,0x10,0xea,0x10,0xeb,0x10,0xec,0x10,0xed,0x10,0xc0,0x10,0xc1,0x10,0xf9,0x10,0xc2,0x10,0xc3,0x10,0xc4,0x10,0xee,0x10,0xef,0x10,0xf0,0x10,0xf1,0x10,0xf2,0x10,0xf3,0x10,0xf4,0x10,0xc5,0x10,0xf5,0x10,0xf6,0x10,0xc6,0x10,0xc7,0x10,0xc8,0x10,0xc9,0x10,0xca,0x10,0xf7,0x10,0xcb,0x10,0xcc,0x10,0xcd, -0x10,0xce,0x10,0xcf,0x10,0xd0,0x10,0xd1,0x10,0xd2,0x10,0xd3,0x10,0xd4,0x10,0xd5,0x10,0xd6,0x10,0xd7,0x10,0xd8,0x10,0xd9,0x10,0xda,0x10,0xdb,0x10,0xdc,0x10,0xdd,0x10,0xde,0x10,0xdf,0x10,0xe0,0x10,0xe1,0x10,0xf8,0x10,0xe2,0x10,0xe3,0x10,0xe4,0x00,0x02,0x00,0x1b,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x07,0x00,0x0a,0x00,0x01, -0x00,0x0d,0x00,0x0d,0x00,0x05,0x00,0x0f,0x00,0x11,0x00,0x06,0x00,0x1d,0x00,0x1e,0x00,0x09,0x00,0x42,0x00,0x42,0x00,0x0b,0x00,0x85,0x00,0x86,0x00,0x0c,0x00,0x8c,0x00,0x8c,0x00,0x0e,0x00,0x97,0x00,0x98,0x00,0x0f,0x00,0x9a,0x00,0x9a,0x00,0x11,0x00,0xaa,0x00,0xab,0x00,0x12,0x00,0xb2,0x00,0xb2,0x00,0x14,0x00,0xb4,0x00,0xb7, -0x00,0x15,0x00,0xbd,0x00,0xbd,0x00,0x19,0x00,0xc4,0x00,0xc5,0x00,0x1a,0x00,0xf3,0x00,0xf6,0x00,0x1c,0x01,0x38,0x01,0x38,0x00,0x20,0x01,0x94,0x01,0x94,0x00,0x21,0x01,0x96,0x01,0x96,0x00,0x22,0x01,0x98,0x01,0x9b,0x00,0x23,0x07,0xd2,0x07,0xd8,0x00,0x27,0x07,0xda,0x07,0xdf,0x00,0x2e,0x08,0x56,0x08,0x59,0x00,0x34,0x08,0x8c, -0x08,0x8c,0x00,0x38,0x08,0xbd,0x08,0xbd,0x00,0x39,0x0a,0x64,0x0a,0x64,0x00,0x3a,0x0b,0x2a,0x0b,0x2b,0x00,0x3b,0x00,0x02,0x00,0x56,0x00,0x28,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4, -0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x02,0x00,0x13,0x00,0x1c,0x00,0x00,0x0c,0xb9,0x0c,0xd6,0x00,0x0a,0x00,0x02,0x00,0xa2, -0x00,0x4e,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0d,0xf2,0x0d,0xf3,0x10,0x9a,0x10,0x9b,0x10,0xa5,0x10,0xaf,0x10,0xb6,0x10,0xac,0x10,0xad,0x10,0xb7,0x10,0xb8,0x10,0xa9,0x10,0xb1,0x10,0x99,0x10,0xa6,0x10,0xa7,0x10,0xab,0x10,0xae,0x10,0xa8,0x10,0x96,0x10,0xb2, -0x10,0xa3,0x10,0xa2,0x10,0x9c,0x10,0x9e,0x10,0x9d,0x10,0xa0,0x10,0x9f,0x10,0xa1,0x10,0xa4,0x10,0xb4,0x10,0xb5,0x10,0xb0,0x10,0xb3,0x10,0x98,0x10,0x97,0x10,0xaa,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc, -0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x10,0x95,0x00,0x02,0x00,0x1b,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x2c,0x00,0x2c,0x00,0x0a,0x00,0x34,0x00,0x34,0x00,0x0b,0x00,0xcc,0x00,0xcf,0x00,0x0c,0x00,0xf9,0x00,0xf9,0x00,0x10, -0x01,0x39,0x01,0x39,0x00,0x11,0x01,0x5b,0x01,0x5b,0x00,0x12,0x01,0x5d,0x01,0x5d,0x00,0x13,0x01,0x5f,0x01,0x5f,0x00,0x14,0x01,0x61,0x01,0x61,0x00,0x15,0x01,0xa4,0x01,0xa4,0x00,0x16,0x01,0xae,0x01,0xae,0x00,0x17,0x01,0xbd,0x01,0xbd,0x00,0x18,0x01,0xe0,0x01,0xe0,0x00,0x19,0x02,0x7f,0x02,0x7f,0x00,0x1a,0x02,0x81,0x02,0x81, -0x00,0x1b,0x02,0xb5,0x02,0xb5,0x00,0x1c,0x03,0x0f,0x03,0x0f,0x00,0x1d,0x03,0x11,0x03,0x11,0x00,0x1e,0x03,0xad,0x03,0xb4,0x00,0x1f,0x04,0x3f,0x04,0x42,0x00,0x27,0x04,0xf9,0x04,0xf9,0x00,0x2b,0x05,0x2c,0x05,0x2c,0x00,0x2c,0x05,0x2e,0x05,0x2e,0x00,0x2d,0x06,0x21,0x06,0x21,0x00,0x2e,0x0c,0xb9,0x0c,0xd6,0x00,0x2f,0x0d,0xe4, -0x0d,0xe4,0x00,0x4d,0x00,0x02,0x00,0x42,0x00,0x1e,0x0d,0xf5,0x0d,0xf6,0x0d,0xf7,0x0d,0xf8,0x0d,0xf9,0x0d,0xfa,0x0d,0xfb,0x0d,0xfc,0x0d,0xfd,0x0d,0xfe,0x0d,0xff,0x0e,0x00,0x0e,0x01,0x0e,0x0b,0x0e,0x02,0x0e,0x03,0x0e,0x04,0x0e,0x05,0x0e,0x06,0x0e,0x07,0x0e,0x08,0x0e,0x09,0x0e,0x0a,0x0e,0x0f,0x0e,0x10,0x0e,0x0e,0x0e,0x0c, -0x0e,0x0d,0x0e,0x11,0x0e,0x12,0x00,0x02,0x00,0x13,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x01,0x00,0x1e,0x00,0x1e,0x00,0x02,0x00,0x22,0x00,0x22,0x00,0x03,0x00,0xb4,0x00,0xb7,0x00,0x04,0x00,0xc4,0x00,0xc5,0x00,0x08,0x01,0x08,0x01,0x08,0x00,0x0a,0x01,0x10,0x01,0x11,0x00,0x0b,0x01,0x23,0x01,0x23,0x00,0x0d, -0x01,0x3b,0x01,0x3b,0x00,0x0e,0x01,0x55,0x01,0x56,0x00,0x0f,0x01,0x65,0x01,0x66,0x00,0x11,0x01,0x6a,0x01,0x6b,0x00,0x13,0x01,0x72,0x01,0x73,0x00,0x15,0x01,0x94,0x01,0x94,0x00,0x17,0x01,0x9c,0x01,0x9c,0x00,0x18,0x01,0x9e,0x01,0x9e,0x00,0x19,0x02,0x3d,0x02,0x3e,0x00,0x1a,0x02,0xaf,0x02,0xb0,0x00,0x1c,0x00,0x02,0x00,0x08, -0x00,0x01,0x0d,0xf4,0x00,0x01,0x00,0x01,0x00,0x09,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x11,0x84,0x00,0x02,0x11,0x83,0x00,0x01,0x00,0x01,0x11,0x82,0x00,0x01,0x00,0x8a,0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01, -0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93, -0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x0c,0xcd,0x0c,0xd6,0x00,0x01,0x00,0x01,0x00,0x8a, -0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01,0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d, -0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04, -0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x13,0x00,0x1c,0x00,0x01,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xa4,0x11,0xa5,0x11,0xa6,0x11,0xa7,0x11,0xa8,0x11,0xa9,0x11,0xaa,0x11,0xab,0x11,0xac,0x11,0xad,0x00,0x02,0x00,0x01,0x0f,0xd6,0x0f,0xdf,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, -0x11,0xb8,0x11,0xb9,0x11,0xba,0x11,0xbb,0x11,0xbc,0x11,0xbd,0x11,0xbe,0x11,0xbf,0x11,0xc0,0x11,0xc1,0x00,0x02,0x00,0x01,0x0f,0xea,0x0f,0xf3,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xae,0x11,0xaf,0x11,0xb0,0x11,0xb1,0x11,0xb2,0x11,0xb3,0x11,0xb4,0x11,0xb5,0x11,0xb6,0x11,0xb7,0x00,0x02,0x00,0x01,0x0f,0xe0,0x0f,0xe9, -0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xc2,0x11,0xc3,0x11,0xc4,0x11,0xc5,0x11,0xc6,0x11,0xc7,0x11,0xc8,0x11,0xc9,0x11,0xca,0x11,0xcb,0x00,0x02,0x00,0x01,0x0f,0xf4,0x0f,0xfd,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xcc,0x11,0xcd,0x11,0xce,0x11,0xcf,0x11,0xd0,0x11,0xd1,0x11,0xd2,0x11,0xd3,0x11,0xd4,0x11,0xd5, -0x00,0x02,0x00,0x01,0x0f,0xfe,0x10,0x07,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xd6,0x11,0xd7,0x11,0xd8,0x11,0xd9,0x11,0xda,0x11,0xdb,0x11,0xdc,0x11,0xdd,0x11,0xde,0x11,0xdf,0x00,0x02,0x00,0x01,0x10,0x08,0x10,0x11,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xe0,0x11,0xe1,0x11,0xe2,0x11,0xe3,0x11,0xe4,0x11,0xe5, -0x11,0xe6,0x11,0xe7,0x11,0xe8,0x11,0xe9,0x00,0x02,0x00,0x01,0x10,0x12,0x10,0x1b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xea,0x11,0xeb,0x11,0xec,0x11,0xed,0x11,0xee,0x11,0xef,0x11,0xf0,0x11,0xf1,0x11,0xf2,0x11,0xf3,0x00,0x02,0x00,0x01,0x10,0x1c,0x10,0x25,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xf4,0x11,0xf5, -0x11,0xf6,0x11,0xf7,0x11,0xf8,0x11,0xf9,0x11,0xfa,0x11,0xfb,0x11,0xfc,0x11,0xfd,0x00,0x02,0x00,0x01,0x10,0x26,0x10,0x2f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xfe,0x11,0xff,0x12,0x00,0x12,0x01,0x12,0x02,0x12,0x03,0x12,0x04,0x12,0x05,0x12,0x06,0x12,0x07,0x00,0x02,0x00,0x01,0x10,0x30,0x10,0x39,0x00,0x00,0x00,0x02, -0x00,0x1a,0x00,0x0a,0x12,0x08,0x12,0x09,0x12,0x0a,0x12,0x0b,0x12,0x0c,0x12,0x0d,0x12,0x0e,0x12,0x0f,0x12,0x10,0x12,0x11,0x00,0x02,0x00,0x01,0x10,0x3a,0x10,0x43,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x12,0x12,0x13,0x12,0x14,0x12,0x15,0x12,0x16,0x12,0x17,0x12,0x18,0x12,0x19,0x12,0x1a,0x12,0x1b,0x00,0x02,0x00,0x01, -0x10,0x44,0x10,0x4d,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x1c,0x12,0x1d,0x12,0x1e,0x12,0x1f,0x12,0x20,0x12,0x21,0x12,0x22,0x12,0x23,0x12,0x24,0x12,0x25,0x00,0x02,0x00,0x01,0x10,0x4e,0x10,0x57,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x26,0x12,0x27,0x12,0x28,0x12,0x29,0x12,0x2a,0x12,0x2b,0x12,0x2c,0x12,0x2d, -0x12,0x2e,0x12,0x2f,0x00,0x02,0x00,0x01,0x10,0x58,0x10,0x61,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x30,0x12,0x31,0x12,0x32,0x12,0x33,0x12,0x34,0x12,0x35,0x12,0x36,0x12,0x37,0x12,0x38,0x12,0x39,0x00,0x02,0x00,0x01,0x10,0x62,0x10,0x6b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x3a,0x12,0x3b,0x12,0x3c,0x12,0x3d, -0x12,0x3e,0x12,0x3f,0x12,0x40,0x12,0x41,0x12,0x42,0x12,0x43,0x00,0x02,0x00,0x01,0x10,0x6c,0x10,0x75,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x44,0x12,0x45,0x12,0x46,0x12,0x47,0x12,0x48,0x12,0x49,0x12,0x4a,0x12,0x4b,0x12,0x4c,0x12,0x4d,0x00,0x02,0x00,0x01,0x10,0x76,0x10,0x7f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, -0x12,0x4f,0x12,0x50,0x12,0x51,0x12,0x52,0x12,0x53,0x12,0x54,0x12,0x55,0x12,0x56,0x12,0x57,0x12,0x58,0x00,0x02,0x00,0x01,0x10,0x81,0x10,0x8a,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb7,0x00,0x02,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x08,0x00,0x01, -0x00,0x04,0x0b,0xb7,0x00,0x03,0x08,0xc4,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x82,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02, -0x00,0x6e,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x5a,0x00,0x94,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b, -0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, -0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x03,0x00,0x02,0x02,0xbc,0x02,0xea,0x00,0x01,0x02,0xf0,0x00,0x01,0x02,0xf6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0xa6, -0x02,0xa6,0x02,0xd4,0x00,0x01,0x02,0xda,0x00,0x01,0x02,0xe0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0x8e,0x02,0xf0,0x02,0xbc,0x00,0x01,0x02,0xc2,0x00,0x01,0x02,0xc8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x02,0x76,0x02,0x76,0x02,0xd8,0x02,0xa4,0x00,0x01,0x02,0xaa,0x00,0x01,0x02,0xb0,0x00,0x01, -0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0xc6,0x00,0x01,0x02,0x90,0x00,0x01,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x48,0x02,0xb2,0x00,0x01,0x02,0x7c,0x00,0x01,0x02,0xb8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x9c,0x00,0x01,0x02,0x66,0x00,0x02,0x02,0xdc,0x02,0x32,0x00,0x01, -0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x1c,0x02,0x86,0x00,0x01,0x02,0x50,0x00,0x02,0x02,0xc6,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x6e,0x00,0x01,0x02,0x38,0x00,0x03,0x02,0xae,0x02,0xb4,0x02,0xba,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xec,0x02,0x56,0x00,0x01,0x02,0x20, -0x00,0x03,0x02,0x96,0x02,0x9c,0x02,0xa2,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x3c,0x00,0x01,0x02,0x06,0x00,0x03,0x02,0x7c,0x02,0x82,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xba,0x02,0x24,0x00,0x01,0x01,0xee,0x00,0x03,0x02,0x64,0x02,0x6a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x76, -0x00,0x03,0x00,0x01,0x02,0x5c,0x00,0x01,0x01,0xd4,0x00,0x01,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x48,0x00,0x01,0x01,0xc0,0x00,0x02,0x02,0x36,0x01,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x32,0x00,0x01,0x01,0xaa,0x00,0x03,0x02,0x20,0x02,0x26,0x01,0xe0,0x00,0x01,0x00,0x00, -0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x1a,0x00,0x01,0x01,0x92,0x00,0x03,0x02,0x08,0x02,0x0e,0x02,0x14,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x46,0x02,0x02,0x00,0x01,0x01,0x7a,0x00,0x01,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x30,0x01,0xec,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0xda, -0x01,0x30,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x18,0x01,0xd4,0x00,0x01,0x01,0x4c,0x00,0x03,0x01,0xc2,0x01,0xc8,0x01,0x82,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x00,0xfe,0x01,0xba,0x00,0x01,0x01,0x32,0x00,0x03,0x01,0xa8,0x01,0xae,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02, -0x01,0xa6,0x01,0xac,0x00,0x01,0x01,0x18,0x00,0x01,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x90,0x01,0x84,0x01,0x96,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x08,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x6c,0x01,0x78,0x01,0x7e,0x00,0x01,0x00,0xea,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00, -0x00,0x76,0x00,0x03,0x00,0x03,0x00,0x9e,0x01,0x60,0x01,0x66,0x00,0x01,0x00,0xd2,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x86,0x00,0x86,0x01,0x48,0x01,0x4e,0x00,0x01,0x00,0xba,0x00,0x01,0x00,0xc0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x6c,0x01,0x2e,0x01,0x22,0x01,0x34, -0x00,0x01,0x00,0xa0,0x00,0x01,0x00,0xa6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x52,0x00,0x52,0x01,0x14,0x01,0x08,0x01,0x1a,0x00,0x01,0x00,0x86,0x00,0x01,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x36,0x00,0xec,0x00,0xf8,0x00,0xfe,0x00,0x01,0x00,0x6a,0x00,0x01,0x00,0x70,0x00,0x01, -0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x1c,0x00,0x1c,0x00,0xd2,0x00,0xde,0x00,0xe4,0x00,0x01,0x00,0x50,0x00,0x01,0x00,0x56,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd, -0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, -0x00,0x4c,0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0, -0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x01,0x00,0x01,0x0b,0x64,0x00,0x01,0x00,0x01,0x0b,0x81,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd8,0x00,0x01,0x00,0x01,0x0b,0xd0,0x00,0x01,0x00,0x16, -0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x8c,0x00,0x04,0x08,0xc4,0x0b,0x71,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x2a,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x02, -0x0b,0x5f,0x00,0x02,0x00,0x01,0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x03,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x00,0x01, -0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x01,0x00,0x08,0x00,0x34,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x88,0x00,0x8e,0x00,0x94,0x00,0x9a,0x00,0xa0,0x00,0xa6,0x00,0xac,0x00,0xb2,0x00,0xb8,0x00,0xbe,0x00,0xc4,0x00,0xca,0x00,0xd0,0x00,0xd6,0x00,0xdc,0x00,0xe2,0x00,0xe8,0x00,0xee,0x00,0xf4, -0x00,0xfa,0x01,0x00,0x01,0x06,0x01,0x0c,0x01,0x12,0x01,0x18,0x01,0x1e,0x01,0x24,0x01,0x2a,0x01,0x30,0x01,0x36,0x01,0x3c,0x01,0x42,0x01,0x48,0x01,0x4e,0x01,0x54,0x01,0x5a,0x01,0x60,0x01,0x66,0x01,0x6c,0x01,0x72,0x01,0x78,0x01,0x7e,0x01,0x84,0x01,0x8a,0x01,0x90,0x01,0x96,0x01,0x9c,0x0b,0x53,0x00,0x02,0x0b,0x53,0x0b,0x54, -0x00,0x02,0x0b,0x54,0x0b,0x55,0x00,0x02,0x0b,0x55,0x0b,0x56,0x00,0x02,0x0b,0x56,0x0b,0x57,0x00,0x02,0x0b,0x57,0x0b,0x58,0x00,0x02,0x0b,0x58,0x0b,0x59,0x00,0x02,0x0b,0x59,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x0b,0x5e,0x00,0x02,0x0b,0x5e, -0x0b,0x5f,0x00,0x02,0x0b,0x5f,0x0b,0x61,0x00,0x02,0x0b,0x61,0x0b,0x66,0x00,0x02,0x0b,0x66,0x0b,0x67,0x00,0x02,0x0b,0x67,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x0b,0xbf,0x00,0x02,0x0b,0xbf,0x0b,0xc0,0x00,0x02,0x0b,0xc0,0x0b,0xc1,0x00,0x02,0x0b,0xc1,0x0b,0xc2,0x00,0x02,0x0b,0xc2,0x0b,0xc3,0x00,0x02,0x0b,0xc3,0x0b,0xc4,0x00,0x02, -0x0b,0xc4,0x0b,0xc5,0x00,0x02,0x0b,0xc5,0x0b,0xc6,0x00,0x02,0x0b,0xc6,0x0b,0xc7,0x00,0x02,0x0b,0xc7,0x0b,0xc8,0x00,0x02,0x0b,0xc8,0x0b,0xc9,0x00,0x02,0x0b,0xc9,0x0b,0xca,0x00,0x02,0x0b,0xca,0x0b,0xcb,0x00,0x02,0x0b,0xcb,0x0b,0xcc,0x00,0x02,0x0b,0xcc,0x0b,0xcd,0x00,0x02,0x0b,0xcd,0x0b,0xce,0x00,0x02,0x0b,0xce,0x0b,0xcf, -0x00,0x02,0x0b,0xcf,0x0b,0xd0,0x00,0x02,0x0b,0xd0,0x0b,0xd1,0x00,0x02,0x0b,0xd1,0x0b,0xd2,0x00,0x02,0x0b,0xd2,0x0b,0xd3,0x00,0x02,0x0b,0xd3,0x0b,0xd4,0x00,0x02,0x0b,0xd4,0x0b,0xd5,0x00,0x02,0x0b,0xd5,0x0b,0xd6,0x00,0x02,0x0b,0xd6,0x0b,0xd7,0x00,0x02,0x0b,0xd7,0x0b,0xd8,0x00,0x02,0x0b,0xd8,0x0b,0xd9,0x00,0x02,0x0b,0xd9, -0x0b,0xda,0x00,0x02,0x0b,0xda,0x0b,0xdb,0x00,0x02,0x0b,0xdb,0x0b,0xdc,0x00,0x02,0x0b,0xdc,0x0b,0xdd,0x00,0x02,0x0b,0xdd,0x0b,0xe1,0x00,0x02,0x0b,0xe1,0x12,0x5c,0x00,0x02,0x12,0x5c,0x12,0x5d,0x00,0x02,0x12,0x5d,0x12,0x5e,0x00,0x02,0x12,0x5e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01, -0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x1a, -0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xdf,0x00,0x02,0x07,0x39,0x0b,0xdf,0x00,0x02,0x08,0xc4,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x0e,0x76,0x00,0x84,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x5c,0x01,0x76,0x01,0x90,0x01,0xaa,0x01,0xc4,0x01,0xde,0x01,0xf8,0x02,0x12,0x02,0x2c,0x02,0x46,0x02,0x60,0x02,0x7a, -0x02,0x94,0x02,0xae,0x02,0xc8,0x02,0xe2,0x02,0xfc,0x03,0x16,0x03,0x30,0x03,0x4a,0x03,0x64,0x03,0x7e,0x03,0x98,0x03,0xb2,0x03,0xcc,0x03,0xe6,0x04,0x00,0x04,0x1a,0x04,0x34,0x04,0x4e,0x04,0x68,0x04,0x82,0x04,0x9c,0x04,0xb6,0x04,0xd0,0x04,0xea,0x05,0x04,0x05,0x1e,0x05,0x38,0x05,0x52,0x05,0x6c,0x05,0x86,0x05,0xa0,0x05,0xba, -0x05,0xd4,0x05,0xee,0x06,0x08,0x06,0x22,0x06,0x3c,0x06,0x56,0x06,0x70,0x06,0x8a,0x06,0xa4,0x06,0xbe,0x06,0xd8,0x06,0xf2,0x07,0x0c,0x07,0x26,0x07,0x40,0x07,0x5a,0x07,0x74,0x07,0x8e,0x07,0xa8,0x07,0xc2,0x07,0xdc,0x07,0xf6,0x08,0x10,0x08,0x2a,0x08,0x44,0x08,0x5e,0x08,0x78,0x08,0x92,0x08,0xac,0x08,0xc6,0x08,0xe0,0x08,0xfa, -0x09,0x14,0x09,0x2e,0x09,0x48,0x09,0x62,0x09,0x7c,0x09,0x96,0x09,0xb0,0x09,0xca,0x09,0xe4,0x09,0xfe,0x0a,0x18,0x0a,0x32,0x0a,0x4c,0x0a,0x66,0x0a,0x80,0x0a,0x9a,0x0a,0xb4,0x0a,0xce,0x0a,0xe8,0x0b,0x02,0x0b,0x1c,0x0b,0x36,0x0b,0x50,0x0b,0x6a,0x0b,0x84,0x0b,0x9e,0x0b,0xb8,0x0b,0xd2,0x0b,0xec,0x0c,0x06,0x0c,0x20,0x0c,0x3a, -0x0c,0x54,0x0c,0x6e,0x0c,0x88,0x0c,0xa2,0x0c,0xbc,0x0c,0xd6,0x0c,0xf0,0x0d,0x0a,0x0d,0x24,0x0d,0x3e,0x0d,0x58,0x0d,0x72,0x0d,0x8c,0x0d,0xa6,0x0d,0xc0,0x0d,0xda,0x0d,0xf4,0x0e,0x0e,0x0e,0x28,0x0e,0x42,0x0e,0x5c,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0a,0x43,0x00,0x02,0x07,0x39,0x0a,0x43,0x00,0x02,0x08,0xc4,0x0a,0x43, -0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x53,0x00,0x02,0x07,0x39,0x0b,0x53,0x00,0x02,0x08,0xc4,0x0b,0x53,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x54,0x00,0x02,0x07,0x39,0x0b,0x54,0x00,0x02,0x08,0xc4,0x0b,0x54,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, -0x0b,0x55,0x00,0x02,0x07,0x39,0x0b,0x55,0x00,0x02,0x08,0xc4,0x0b,0x55,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x56,0x00,0x02,0x07,0x39,0x0b,0x56,0x00,0x02,0x08,0xc4,0x0b,0x56,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x57,0x00,0x02,0x07,0x39,0x0b,0x57,0x00,0x02,0x08,0xc4, -0x0b,0x57,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x58,0x00,0x02,0x07,0x39,0x0b,0x58,0x00,0x02,0x08,0xc4,0x0b,0x58,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x59,0x00,0x02,0x07,0x39,0x0b,0x59,0x00,0x02,0x08,0xc4,0x0b,0x59,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, -0x00,0x14,0x0b,0x5a,0x00,0x02,0x07,0x39,0x0b,0x5a,0x00,0x02,0x08,0xc4,0x0b,0x5a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5b,0x00,0x02,0x07,0x39,0x0b,0x5b,0x00,0x02,0x08,0xc4,0x0b,0x5b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5c,0x00,0x02,0x07,0x39,0x0b,0x5c,0x00,0x02, -0x08,0xc4,0x0b,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5d,0x00,0x02,0x07,0x39,0x0b,0x5d,0x00,0x02,0x08,0xc4,0x0b,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5e,0x00,0x02,0x07,0x39,0x0b,0x5e,0x00,0x02,0x08,0xc4,0x0b,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, -0x00,0x0e,0x00,0x14,0x0b,0x5f,0x00,0x02,0x07,0x39,0x0b,0x5f,0x00,0x02,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x61,0x00,0x02,0x07,0x39,0x0b,0x61,0x00,0x02,0x08,0xc4,0x0b,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x66,0x00,0x02,0x07,0x39,0x0b,0x66, -0x00,0x02,0x08,0xc4,0x0b,0x66,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x67,0x00,0x02,0x07,0x39,0x0b,0x67,0x00,0x02,0x08,0xc4,0x0b,0x67,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x68,0x00,0x02,0x07,0x39,0x0b,0x68,0x00,0x02,0x08,0xc4,0x0b,0x68,0x00,0x02,0x08,0xc3,0x00,0x03, -0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x69,0x00,0x02,0x07,0x39,0x0b,0x69,0x00,0x02,0x08,0xc4,0x0b,0x69,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6a,0x00,0x02,0x07,0x39,0x0b,0x6a,0x00,0x02,0x08,0xc4,0x0b,0x6a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6b,0x00,0x02,0x07,0x39, -0x0b,0x6b,0x00,0x02,0x08,0xc4,0x0b,0x6b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6c,0x00,0x02,0x07,0x39,0x0b,0x6c,0x00,0x02,0x08,0xc4,0x0b,0x6c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6d,0x00,0x02,0x07,0x39,0x0b,0x6d,0x00,0x02,0x08,0xc4,0x0b,0x6d,0x00,0x02,0x08,0xc3, -0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6e,0x00,0x02,0x07,0x39,0x0b,0x6e,0x00,0x02,0x08,0xc4,0x0b,0x6e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6f,0x00,0x02,0x07,0x39,0x0b,0x6f,0x00,0x02,0x08,0xc4,0x0b,0x6f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x70,0x00,0x02, -0x07,0x39,0x0b,0x70,0x00,0x02,0x08,0xc4,0x0b,0x70,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x71,0x00,0x02,0x07,0x39,0x0b,0x71,0x00,0x02,0x08,0xc4,0x0b,0x71,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x72,0x00,0x02,0x07,0x39,0x0b,0x72,0x00,0x02,0x08,0xc4,0x0b,0x72,0x00,0x02, -0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x73,0x00,0x02,0x07,0x39,0x0b,0x73,0x00,0x02,0x08,0xc4,0x0b,0x73,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x74,0x00,0x02,0x07,0x39,0x0b,0x74,0x00,0x02,0x08,0xc4,0x0b,0x74,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x75, -0x00,0x02,0x07,0x39,0x0b,0x75,0x00,0x02,0x08,0xc4,0x0b,0x75,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x76,0x00,0x02,0x07,0x39,0x0b,0x76,0x00,0x02,0x08,0xc4,0x0b,0x76,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x77,0x00,0x02,0x07,0x39,0x0b,0x77,0x00,0x02,0x08,0xc4,0x0b,0x77, -0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x78,0x00,0x02,0x07,0x39,0x0b,0x78,0x00,0x02,0x08,0xc4,0x0b,0x78,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x79,0x00,0x02,0x07,0x39,0x0b,0x79,0x00,0x02,0x08,0xc4,0x0b,0x79,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, -0x0b,0x7a,0x00,0x02,0x07,0x39,0x0b,0x7a,0x00,0x02,0x08,0xc4,0x0b,0x7a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7b,0x00,0x02,0x07,0x39,0x0b,0x7b,0x00,0x02,0x08,0xc4,0x0b,0x7b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7c,0x00,0x02,0x07,0x39,0x0b,0x7c,0x00,0x02,0x08,0xc4, -0x0b,0x7c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7d,0x00,0x02,0x07,0x39,0x0b,0x7d,0x00,0x02,0x08,0xc4,0x0b,0x7d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7e,0x00,0x02,0x07,0x39,0x0b,0x7e,0x00,0x02,0x08,0xc4,0x0b,0x7e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, -0x00,0x14,0x0b,0x7f,0x00,0x02,0x07,0x39,0x0b,0x7f,0x00,0x02,0x08,0xc4,0x0b,0x7f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x80,0x00,0x02,0x07,0x39,0x0b,0x80,0x00,0x02,0x08,0xc4,0x0b,0x80,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x81,0x00,0x02,0x07,0x39,0x0b,0x81,0x00,0x02, -0x08,0xc4,0x0b,0x81,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x82,0x00,0x02,0x07,0x39,0x0b,0x82,0x00,0x02,0x08,0xc4,0x0b,0x82,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x83,0x00,0x02,0x07,0x39,0x0b,0x83,0x00,0x02,0x08,0xc4,0x0b,0x83,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, -0x00,0x0e,0x00,0x14,0x0b,0x84,0x00,0x02,0x07,0x39,0x0b,0x84,0x00,0x02,0x08,0xc4,0x0b,0x84,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x85,0x00,0x02,0x07,0x39,0x0b,0x85,0x00,0x02,0x08,0xc4,0x0b,0x85,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x88,0x00,0x02,0x07,0x39,0x0b,0x88, -0x00,0x02,0x08,0xc4,0x0b,0x88,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x89,0x00,0x02,0x07,0x39,0x0b,0x89,0x00,0x02,0x08,0xc4,0x0b,0x89,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8a,0x00,0x02,0x07,0x39,0x0b,0x8a,0x00,0x02,0x08,0xc4,0x0b,0x8a,0x00,0x02,0x08,0xc3,0x00,0x03, -0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8b,0x00,0x02,0x07,0x39,0x0b,0x8b,0x00,0x02,0x08,0xc4,0x0b,0x8b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8c,0x00,0x02,0x07,0x39,0x0b,0x8c,0x00,0x02,0x08,0xc4,0x0b,0x8c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8d,0x00,0x02,0x07,0x39, -0x0b,0x8d,0x00,0x02,0x08,0xc4,0x0b,0x8d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8e,0x00,0x02,0x07,0x39,0x0b,0x8e,0x00,0x02,0x08,0xc4,0x0b,0x8e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8f,0x00,0x02,0x07,0x39,0x0b,0x8f,0x00,0x02,0x08,0xc4,0x0b,0x8f,0x00,0x02,0x08,0xc3, -0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x90,0x00,0x02,0x07,0x39,0x0b,0x90,0x00,0x02,0x08,0xc4,0x0b,0x90,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x91,0x00,0x02,0x07,0x39,0x0b,0x91,0x00,0x02,0x08,0xc4,0x0b,0x91,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x92,0x00,0x02, -0x07,0x39,0x0b,0x92,0x00,0x02,0x08,0xc4,0x0b,0x92,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x93,0x00,0x02,0x07,0x39,0x0b,0x93,0x00,0x02,0x08,0xc4,0x0b,0x93,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x94,0x00,0x02,0x07,0x39,0x0b,0x94,0x00,0x02,0x08,0xc4,0x0b,0x94,0x00,0x02, -0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x95,0x00,0x02,0x07,0x39,0x0b,0x95,0x00,0x02,0x08,0xc4,0x0b,0x95,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x97,0x00,0x02,0x07,0x39,0x0b,0x97,0x00,0x02,0x08,0xc4,0x0b,0x97,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x98, -0x00,0x02,0x07,0x39,0x0b,0x98,0x00,0x02,0x08,0xc4,0x0b,0x98,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x99,0x00,0x02,0x07,0x39,0x0b,0x99,0x00,0x02,0x08,0xc4,0x0b,0x99,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9a,0x00,0x02,0x07,0x39,0x0b,0x9a,0x00,0x02,0x08,0xc4,0x0b,0x9a, -0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9d,0x00,0x02,0x07,0x39,0x0b,0x9d,0x00,0x02,0x08,0xc4,0x0b,0x9d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9e,0x00,0x02,0x07,0x39,0x0b,0x9e,0x00,0x02,0x08,0xc4,0x0b,0x9e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, -0x0b,0x9f,0x00,0x02,0x07,0x39,0x0b,0x9f,0x00,0x02,0x08,0xc4,0x0b,0x9f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa0,0x00,0x02,0x07,0x39,0x0b,0xa0,0x00,0x02,0x08,0xc4,0x0b,0xa0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa1,0x00,0x02,0x07,0x39,0x0b,0xa1,0x00,0x02,0x08,0xc4, -0x0b,0xa1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa2,0x00,0x02,0x07,0x39,0x0b,0xa2,0x00,0x02,0x08,0xc4,0x0b,0xa2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa3,0x00,0x02,0x07,0x39,0x0b,0xa3,0x00,0x02,0x08,0xc4,0x0b,0xa3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, -0x00,0x14,0x0b,0xa4,0x00,0x02,0x07,0x39,0x0b,0xa4,0x00,0x02,0x08,0xc4,0x0b,0xa4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa5,0x00,0x02,0x07,0x39,0x0b,0xa5,0x00,0x02,0x08,0xc4,0x0b,0xa5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa6,0x00,0x02,0x07,0x39,0x0b,0xa6,0x00,0x02, -0x08,0xc4,0x0b,0xa6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa7,0x00,0x02,0x07,0x39,0x0b,0xa7,0x00,0x02,0x08,0xc4,0x0b,0xa7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa8,0x00,0x02,0x07,0x39,0x0b,0xa8,0x00,0x02,0x08,0xc4,0x0b,0xa8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, -0x00,0x0e,0x00,0x14,0x0b,0xa9,0x00,0x02,0x07,0x39,0x0b,0xa9,0x00,0x02,0x08,0xc4,0x0b,0xa9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaa,0x00,0x02,0x07,0x39,0x0b,0xaa,0x00,0x02,0x08,0xc4,0x0b,0xaa,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xab,0x00,0x02,0x07,0x39,0x0b,0xab, -0x00,0x02,0x08,0xc4,0x0b,0xab,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xac,0x00,0x02,0x07,0x39,0x0b,0xac,0x00,0x02,0x08,0xc4,0x0b,0xac,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xad,0x00,0x02,0x07,0x39,0x0b,0xad,0x00,0x02,0x08,0xc4,0x0b,0xad,0x00,0x02,0x08,0xc3,0x00,0x03, -0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xae,0x00,0x02,0x07,0x39,0x0b,0xae,0x00,0x02,0x08,0xc4,0x0b,0xae,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaf,0x00,0x02,0x07,0x39,0x0b,0xaf,0x00,0x02,0x08,0xc4,0x0b,0xaf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb0,0x00,0x02,0x07,0x39, -0x0b,0xb0,0x00,0x02,0x08,0xc4,0x0b,0xb0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb1,0x00,0x02,0x07,0x39,0x0b,0xb1,0x00,0x02,0x08,0xc4,0x0b,0xb1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb2,0x00,0x02,0x07,0x39,0x0b,0xb2,0x00,0x02,0x08,0xc4,0x0b,0xb2,0x00,0x02,0x08,0xc3, -0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb3,0x00,0x02,0x07,0x39,0x0b,0xb3,0x00,0x02,0x08,0xc4,0x0b,0xb3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb4,0x00,0x02,0x07,0x39,0x0b,0xb4,0x00,0x02,0x08,0xc4,0x0b,0xb4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb5,0x00,0x02, -0x07,0x39,0x0b,0xb5,0x00,0x02,0x08,0xc4,0x0b,0xb5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb6,0x00,0x02,0x07,0x39,0x0b,0xb6,0x00,0x02,0x08,0xc4,0x0b,0xb6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb7,0x00,0x02,0x07,0x39,0x0b,0xb7,0x00,0x02,0x08,0xc4,0x0b,0xb7,0x00,0x02, -0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb9,0x00,0x02,0x07,0x39,0x0b,0xb9,0x00,0x02,0x08,0xc4,0x0b,0xb9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xbf,0x00,0x02,0x07,0x39,0x0b,0xbf,0x00,0x02,0x08,0xc4,0x0b,0xbf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc0, -0x00,0x02,0x07,0x39,0x0b,0xc0,0x00,0x02,0x08,0xc4,0x0b,0xc0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc1,0x00,0x02,0x07,0x39,0x0b,0xc1,0x00,0x02,0x08,0xc4,0x0b,0xc1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc2,0x00,0x02,0x07,0x39,0x0b,0xc2,0x00,0x02,0x08,0xc4,0x0b,0xc2, -0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc3,0x00,0x02,0x07,0x39,0x0b,0xc3,0x00,0x02,0x08,0xc4,0x0b,0xc3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc4,0x00,0x02,0x07,0x39,0x0b,0xc4,0x00,0x02,0x08,0xc4,0x0b,0xc4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, -0x0b,0xc5,0x00,0x02,0x07,0x39,0x0b,0xc5,0x00,0x02,0x08,0xc4,0x0b,0xc5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc6,0x00,0x02,0x07,0x39,0x0b,0xc6,0x00,0x02,0x08,0xc4,0x0b,0xc6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc7,0x00,0x02,0x07,0x39,0x0b,0xc7,0x00,0x02,0x08,0xc4, -0x0b,0xc7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc8,0x00,0x02,0x07,0x39,0x0b,0xc8,0x00,0x02,0x08,0xc4,0x0b,0xc8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc9,0x00,0x02,0x07,0x39,0x0b,0xc9,0x00,0x02,0x08,0xc4,0x0b,0xc9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, -0x00,0x14,0x0b,0xca,0x00,0x02,0x07,0x39,0x0b,0xca,0x00,0x02,0x08,0xc4,0x0b,0xca,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcb,0x00,0x02,0x07,0x39,0x0b,0xcb,0x00,0x02,0x08,0xc4,0x0b,0xcb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcc,0x00,0x02,0x07,0x39,0x0b,0xcc,0x00,0x02, -0x08,0xc4,0x0b,0xcc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcd,0x00,0x02,0x07,0x39,0x0b,0xcd,0x00,0x02,0x08,0xc4,0x0b,0xcd,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xce,0x00,0x02,0x07,0x39,0x0b,0xce,0x00,0x02,0x08,0xc4,0x0b,0xce,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, -0x00,0x0e,0x00,0x14,0x0b,0xcf,0x00,0x02,0x07,0x39,0x0b,0xcf,0x00,0x02,0x08,0xc4,0x0b,0xcf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd0,0x00,0x02,0x07,0x39,0x0b,0xd0,0x00,0x02,0x08,0xc4,0x0b,0xd0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd1,0x00,0x02,0x07,0x39,0x0b,0xd1, -0x00,0x02,0x08,0xc4,0x0b,0xd1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd2,0x00,0x02,0x07,0x39,0x0b,0xd2,0x00,0x02,0x08,0xc4,0x0b,0xd2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd3,0x00,0x02,0x07,0x39,0x0b,0xd3,0x00,0x02,0x08,0xc4,0x0b,0xd3,0x00,0x02,0x08,0xc3,0x00,0x03, -0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd4,0x00,0x02,0x07,0x39,0x0b,0xd4,0x00,0x02,0x08,0xc4,0x0b,0xd4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd5,0x00,0x02,0x07,0x39,0x0b,0xd5,0x00,0x02,0x08,0xc4,0x0b,0xd5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd6,0x00,0x02,0x07,0x39, -0x0b,0xd6,0x00,0x02,0x08,0xc4,0x0b,0xd6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd7,0x00,0x02,0x07,0x39,0x0b,0xd7,0x00,0x02,0x08,0xc4,0x0b,0xd7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd8,0x00,0x02,0x07,0x39,0x0b,0xd8,0x00,0x02,0x08,0xc4,0x0b,0xd8,0x00,0x02,0x08,0xc3, -0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd9,0x00,0x02,0x07,0x39,0x0b,0xd9,0x00,0x02,0x08,0xc4,0x0b,0xd9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xda,0x00,0x02,0x07,0x39,0x0b,0xda,0x00,0x02,0x08,0xc4,0x0b,0xda,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdb,0x00,0x02, -0x07,0x39,0x0b,0xdb,0x00,0x02,0x08,0xc4,0x0b,0xdb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdc,0x00,0x02,0x07,0x39,0x0b,0xdc,0x00,0x02,0x08,0xc4,0x0b,0xdc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdd,0x00,0x02,0x07,0x39,0x0b,0xdd,0x00,0x02,0x08,0xc4,0x0b,0xdd,0x00,0x02, -0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xe1,0x00,0x02,0x07,0x39,0x0b,0xe1,0x00,0x02,0x08,0xc4,0x0b,0xe1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5c,0x00,0x02,0x07,0x39,0x12,0x5c,0x00,0x02,0x08,0xc4,0x12,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5d, -0x00,0x02,0x07,0x39,0x12,0x5d,0x00,0x02,0x08,0xc4,0x12,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5e,0x00,0x02,0x07,0x39,0x12,0x5e,0x00,0x02,0x08,0xc4,0x12,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5f,0x00,0x02,0x07,0x39,0x12,0x5f,0x00,0x02,0x08,0xc4,0x12,0x5f, -0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x60,0x00,0x02,0x07,0x39,0x12,0x60,0x00,0x02,0x08,0xc4,0x12,0x60,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x61,0x00,0x02,0x07,0x39,0x12,0x61,0x00,0x02,0x08,0xc4,0x12,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, -0x12,0x62,0x00,0x02,0x07,0x39,0x12,0x62,0x00,0x02,0x08,0xc4,0x12,0x62,0x00,0x02,0x08,0xc3,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41, -0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0xa2,0x00,0x0d,0x00,0x20,0x00,0x2a,0x00,0x34,0x00,0x3e,0x00,0x48,0x00,0x52,0x00,0x5c,0x00,0x66,0x00,0x70,0x00,0x7a,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0x01,0x00,0x04,0x0b,0x53,0x00,0x02, -0x0b,0x53,0x00,0x01,0x00,0x04,0x0b,0x54,0x00,0x02,0x0b,0x54,0x00,0x01,0x00,0x04,0x0b,0x55,0x00,0x02,0x0b,0x55,0x00,0x01,0x00,0x04,0x0b,0x56,0x00,0x02,0x0b,0x56,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x04,0x0b,0x58,0x00,0x02,0x0b,0x58,0x00,0x01,0x00,0x04,0x0b,0x59,0x00,0x02,0x0b,0x59,0x00,0x01, -0x00,0x04,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x00,0x01,0x00,0x04,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x04,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x00,0x01,0x00,0x04,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x00,0x01,0x00,0x04,0x0b,0xde,0x00,0x02,0x0b,0xde,0x00,0x02,0x00,0x03,0x0b,0x53, -0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x0b,0xde,0x0b,0xde,0x00,0x0c,0x00,0x01,0x01,0x5a,0x00,0x16,0x00,0x32,0x00,0x3c,0x00,0x4e,0x00,0x60,0x00,0x72,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0xa2,0x00,0xac,0x00,0xb6,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x01,0x0c,0x01,0x16,0x01,0x20,0x01,0x2a, -0x01,0x48,0x00,0x01,0x00,0x04,0x0b,0x9d,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9e,0x00,0x02,0x0b,0x5e,0x0b,0xb4,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9f,0x00,0x02,0x0b,0x5e,0x12,0x5f,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa0,0x00,0x02,0x0b,0x5e,0x12,0x60,0x00,0x02, -0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa1,0x00,0x02,0x0b,0x5e,0x12,0x61,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa2,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa3,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa4,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa5,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04, -0x0b,0xa6,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa7,0x00,0x02,0x0b,0x5e,0x0b,0xb5,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa8,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa9,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaa,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xab,0x00,0x02,0x0b,0x5e, -0x00,0x01,0x00,0x04,0x0b,0xac,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xad,0x00,0x02,0x0b,0x5e,0x0b,0xb6,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xae,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaf,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xb0,0x00,0x02,0x0b,0x5e,0x00,0x03,0x00,0x08,0x00,0x0e, -0x00,0x16,0x0b,0xb1,0x00,0x02,0x0b,0x5e,0x0b,0x99,0x00,0x03,0x0b,0x63,0x0b,0x5e,0x0b,0x9a,0x00,0x03,0x0b,0x64,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xb2,0x00,0x02,0x0b,0x5e,0x12,0x62,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x0b,0x68,0x0b,0x6e,0x00,0x00,0x0b,0x70,0x0b,0x74,0x00,0x07,0x0b,0x76,0x0b,0x76,0x00,0x0c, -0x0b,0x78,0x0b,0x79,0x00,0x0d,0x0b,0x7b,0x0b,0x7c,0x00,0x0f,0x0b,0x7e,0x0b,0x82,0x00,0x11,0x00,0x01,0x00,0x2e,0x00,0x02,0x00,0x0a,0x00,0x1c,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x97,0x00,0x02,0x0b,0x63,0x0b,0x98,0x00,0x02,0x0b,0x64,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x99,0x00,0x02,0x0b,0x63,0x0b,0x9a,0x00,0x02,0x0b,0x64, -0x00,0x01,0x00,0x02,0x0b,0x81,0x0b,0xb1,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb3,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x38,0x02,0x40,0x00,0x01,0x02,0x46,0x00,0x01,0x00,0x00, -0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x24,0x02,0x2c,0x00,0x02,0x02,0x6c,0x02,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x0e,0x02,0x16,0x00,0x03,0x02,0x56,0x02,0x56,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xf6,0x01,0xfe,0x00,0x04,0x02,0x3e,0x02,0x3e, -0x02,0x3e,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xdc,0x01,0xe4,0x00,0x02,0x02,0x46,0x02,0x4c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xc6,0x01,0xce,0x00,0x03,0x02,0x0e,0x02,0x30,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xae, -0x01,0xb6,0x00,0x04,0x01,0xf6,0x01,0xf6,0x02,0x18,0x02,0x1e,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x94,0x01,0x9c,0x00,0x05,0x01,0xdc,0x01,0xdc,0x01,0xdc,0x01,0xfe,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x78,0x01,0x80,0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00, -0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x64,0x01,0x6c,0x00,0x02,0x01,0xac,0x01,0xe4,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x4e,0x01,0x56,0x00,0x03,0x01,0x96,0x01,0x96,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x36,0x01,0x3e,0x00,0x04,0x01,0x7e,0x01,0x7e, -0x01,0x7e,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x1c,0x01,0x24,0x00,0x02,0x01,0x86,0x01,0xa2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x06,0x01,0x0e,0x00,0x02,0x01,0x70,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xf0,0x00,0xf8, -0x00,0x03,0x01,0x38,0x01,0x5a,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xd8,0x00,0xe0,0x00,0x03,0x01,0x20,0x01,0x42,0x01,0x64,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xc0,0x00,0xc8,0x00,0x04,0x01,0x08,0x01,0x08,0x01,0x2a,0x01,0x46,0x00,0x01,0x00,0x00,0x00,0x78, -0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0xae,0x00,0x04,0x00,0xee,0x00,0xee,0x01,0x10,0x01,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x94,0x00,0x05,0x00,0xd4,0x00,0xd4,0x00,0xd4,0x00,0xf6,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x70,0x00,0x78, -0x00,0x05,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xda,0x00,0xfc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x54,0x00,0x5c,0x00,0x01,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x48,0x00,0x02,0x00,0xd8,0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00, -0x00,0x02,0x00,0x2a,0x00,0x32,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x16,0x00,0x1e,0x00,0x02,0x00,0xae,0x00,0xdc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69, -0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, -0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02, -0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0xdc,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x1c,0x00,0x02,0x00,0x22,0x00,0x28, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x01,0x0b,0x7e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x88,0x00,0x02,0x0b,0x53,0x0b,0x89,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x01,0x0b,0x72, -0x00,0x03,0x00,0x02,0x01,0xcc,0x01,0xe8,0x00,0x01,0x01,0xee,0x00,0x02,0x02,0x1c,0x02,0x56,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0xb4,0x01,0xd0,0x00,0x01,0x01,0xd6,0x00,0x01,0x02,0x54,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x9e,0x02,0x66,0x00,0x01,0x01,0xc0,0x00,0x02,0x01,0xee,0x02,0x28, -0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x86,0x02,0x4e,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x70,0x02,0x3e,0x00,0x01,0x01,0x92,0x00,0x02,0x01,0xc0,0x01,0xfa,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x58,0x02,0x26,0x00,0x01,0x01,0x7a, -0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x42,0x02,0x16,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0x92,0x01,0xcc,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x2a,0x01,0xfe,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0xca,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x14,0x01,0xee, -0x00,0x01,0x01,0x36,0x00,0x02,0x01,0x64,0x01,0x9e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xfc,0x01,0xd6,0x00,0x01,0x01,0x1e,0x00,0x01,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xe6,0x01,0xc6,0x00,0x01,0x01,0x08,0x00,0x02,0x01,0x36,0x01,0x70,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03, -0x00,0x02,0x00,0xce,0x01,0xae,0x00,0x01,0x00,0xf0,0x00,0x01,0x01,0x6e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xb8,0x01,0x9e,0x00,0x01,0x00,0xda,0x00,0x02,0x01,0x08,0x01,0x42,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xa0,0x01,0x86,0x00,0x01,0x00,0xc2,0x00,0x01,0x01,0x40,0x00,0x01,0x00,0x00, -0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x8a,0x01,0x76,0x00,0x01,0x00,0xac,0x00,0x02,0x00,0xda,0x01,0x14,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x72,0x01,0x5e,0x00,0x01,0x00,0x94,0x00,0x01,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x5c,0x01,0x4e,0x00,0x01,0x00,0x7e,0x00,0x02,0x00,0xac, -0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x44,0x01,0x36,0x00,0x01,0x00,0x66,0x00,0x01,0x00,0xe4,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x2e,0x01,0x26,0x00,0x01,0x00,0x50,0x00,0x02,0x00,0x7e,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x16,0x01,0x0e,0x00,0x01, -0x00,0x38,0x00,0x01,0x00,0xb6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x02,0x00,0x04,0x0b,0x54,0x0b,0x56,0x00,0x00,0x0b,0x58,0x0b,0x5b,0x00,0x03,0x0b,0x5d,0x0b,0x5d,0x00,0x07,0x0b,0xb9,0x0b,0xb9,0x00,0x08,0x00,0x01,0x00,0x01,0x0b,0x6a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, -0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6b,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x02,0x0b,0x71,0x0b,0x71,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x7f,0x0b,0x80,0x00,0x06,0x0b,0x9f, -0x0b,0xa0,0x00,0x08,0x0b,0xa2,0x0b,0xa3,0x00,0x0a,0x0b,0xa5,0x0b,0xa5,0x00,0x0c,0x0b,0xaf,0x0b,0xb0,0x00,0x0d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0b,0x72,0x0b,0x72,0x00,0x00,0x0b,0x77,0x0b,0x77,0x00,0x01,0x0b,0x7b,0x0b,0x7b, -0x00,0x02,0x0b,0x88,0x0b,0x89,0x00,0x03,0x0b,0xa6,0x0b,0xa6,0x00,0x05,0x0b,0xac,0x0b,0xac,0x00,0x06,0x00,0x01,0x00,0x01,0x0b,0x9f,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x01,0x0b,0xa5,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x00,0x01,0x0b,0xaa,0x00,0x01, -0x00,0x01,0x0b,0x6e,0x00,0x01,0x00,0x01,0x0b,0xa3,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x14,0x00,0x01,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c, -0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67,0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04, -0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x00,0x36,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x26,0x00,0x2e,0x00,0x01,0x00,0x04,0x0b,0x67,0x00,0x01,0x00,0x02,0x00,0x06,0x00,0x0c,0x12,0x5d,0x00,0x02,0x04,0x67,0x12,0x5c,0x00,0x01,0x00,0x01, -0x00,0x04,0x12,0x5d,0x00,0x01,0x00,0x01,0x00,0x04,0x12,0x5c,0x00,0x01,0x00,0x02,0x00,0x03,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x67,0x04,0x68,0x00,0x01,0x0b,0x66,0x0b,0x66,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf6,0x00,0x04,0x01,0x3c,0x01,0x76,0x01,0x76,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00, -0x00,0x01,0x00,0xde,0x00,0x04,0x01,0x24,0x01,0x5e,0x01,0x5e,0x01,0xa4,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc6,0x00,0x03,0x01,0x0c,0x01,0x92,0x01,0x86,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x03,0x00,0xf6,0x01,0x7c,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x7c, -0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x03,0x00,0xe0,0x01,0x6c,0x01,0x5a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x84,0x00,0x03,0x00,0xca,0x01,0x56,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x03,0x00,0xb4,0x01,0x46,0x01,0x2e,0x00,0x01,0x00,0x00, -0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x58,0x00,0x03,0x00,0x9e,0x01,0x30,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x03,0x00,0x88,0x01,0x20,0x01,0x26,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2c,0x00,0x03,0x00,0x72,0x01,0x0a,0x01,0x16,0x00,0x01, -0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x5c,0x00,0xf4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a, -0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f, -0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf, -0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x01,0x00,0x01,0x12,0x5b,0x00,0x01,0x00,0x01,0x12,0x59,0x00,0x01,0x00,0x01,0x12,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x01, -0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x00,0x01,0x08,0xef, -0x00,0x01,0x00,0x01,0x0e,0x2d,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x2f,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14, -0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a, -0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x68,0x00,0x88,0x00,0x76,0x00,0x90,0x00,0x68,0x00,0x96,0x00,0x9c,0x00,0x76,0x00,0xa2,0x00,0xa8,0x00,0x68,0x00,0xae,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x32, -0x00,0x38,0x00,0x3e,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x38,0x00,0x58,0x00,0x46,0x00,0x60,0x00,0x38,0x00,0x66,0x00,0x6c,0x00,0x46,0x00,0x72,0x00,0x78,0x00,0x38,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01, -0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13, -0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, -0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x6a, -0x00,0x70,0x00,0x6a,0x00,0x76,0x00,0x5c,0x00,0x7c,0x00,0x82,0x00,0x6a,0x00,0x8a,0x00,0x90,0x00,0x5c,0x00,0x96,0x00,0x01,0x00,0x9c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x40,0x00,0x46,0x00,0x40,0x00,0x4c,0x00,0x32,0x00,0x52,0x00,0x58,0x00,0x40,0x00,0x60,0x00,0x66,0x00,0x32,0x00,0x6c, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01, -0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f, -0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c, -0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x3a,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x1e,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x01, -0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xc7,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09, -0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c, -0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x36,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07, -0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x1c,0x00,0x2e,0x00,0x34,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x08,0xfb,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13, -0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, -0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x84, -0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0x9c,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xae,0x00,0xb4,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xba,0x00,0x7e,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64, -0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x82,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01, -0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01,0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37, -0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a, -0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x66,0x00,0x6c,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90, -0x00,0x96,0x00,0x9c,0x00,0xa2,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0xa8,0x00,0x72,0x00,0x01,0x00,0xae,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x34,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e, -0x00,0x64,0x00,0x76,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01, -0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16, -0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f, -0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x08,0x00,0x01,0x0e,0x5c,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x8c,0x14,0x8d,0x14,0x8e,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x92,0x14,0x93, -0x14,0x94,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x95,0x14,0x96,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x9e,0x14,0x9f,0x14,0xa0,0x14,0xa1,0x14,0xa2,0x14,0xa3,0x14,0xa4,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0x9e,0x14,0x9f, -0x14,0xa0,0x14,0xa1,0x14,0xa8,0x14,0xa9,0x14,0xaa,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0xab,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c, -0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3, -0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a, -0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38, -0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1, -0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3,0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a, -0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a,0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d, -0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8, -0x00,0x02,0x14,0x2b,0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x08,0xdb,0x00,0x02,0x14,0x2b,0x08,0xdc,0x00,0x02,0x14,0x2b,0x08,0xdd,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8,0x00,0x02,0x14,0x2b, -0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x09,0x53,0x00,0x02,0x14,0x2b,0x09,0x54,0x00,0x02,0x14,0x2b,0x09,0x55,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x0a,0x3c,0x00,0x02,0x14,0x2b,0x0a,0x3d,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0, -0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x0c,0x00,0x12,0x00,0x18,0x00,0x02,0x14,0x99,0x0a,0x44,0x00,0x02,0x14,0x9c,0x0a,0x47,0x00,0x02,0x14,0x9d,0x13,0x45,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45, -0x00,0x02,0x00,0x02,0x00,0x1e,0x00,0x0c,0x0f,0x8c,0x0f,0x8d,0x0f,0x8e,0x0f,0x90,0x0f,0x92,0x0f,0x94,0x0f,0x8f,0x0f,0x91,0x0f,0x93,0x0f,0x95,0x0f,0x96,0x0f,0x97,0x00,0x02,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0, -0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0f,0x65,0x0f,0x63,0x0f,0x62,0x0f,0x64,0x0f,0x66,0x0f,0x67,0x0f,0x68,0x0f,0x69,0x0f,0x6a,0x0f,0x6b,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, -0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x02,0x00,0x46,0x00,0x20,0x0f,0x6c,0x0f,0x6e,0x0f,0x82,0x0f,0x84,0x0f,0x70,0x0f,0x72,0x0f,0x74,0x0f,0x86,0x0f,0x88,0x0f,0x76,0x0f,0x8a,0x0f,0x78,0x0f,0x7a,0x0f,0x6d,0x0f,0x6f, -0x0f,0x83,0x0f,0x85,0x0f,0x71,0x0f,0x73,0x0f,0x75,0x0f,0x87,0x0f,0x89,0x0f,0x77,0x0f,0x8b,0x0f,0x79,0x0f,0x7b,0x0f,0x7c,0x0f,0x7d,0x0f,0x7e,0x0f,0x7f,0x0f,0x80,0x0f,0x81,0x00,0x02,0x00,0x1b,0x08,0xd4,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe, -0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c,0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10, -0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef,0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47, -0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x4a,0x00,0x22,0x0f,0xac,0x0f,0xab,0x0f,0xa7,0x0f,0xbd,0x0f,0xad,0x0f,0xae,0x0f,0xaf,0x0f,0xbe,0x0f,0xb0,0x0f,0xa2,0x0f,0xa5,0x0f,0x98,0x0f,0x99,0x0f,0xc3,0x0f,0x9a,0x0f,0x9b,0x0f,0x9c,0x0f,0x9d,0x0f,0x9e,0x0f,0x9f,0x0f,0xa0,0x0f,0xa1,0x0f,0xa4,0x0f,0xbf,0x0f,0xa8, -0x0f,0xa9,0x0f,0xaa,0x0f,0xa3,0x0f,0xa6,0x0f,0xb1,0x0f,0xb2,0x0f,0xb3,0x14,0xad,0x14,0xae,0x00,0x02,0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06, -0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5,0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23, -0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f,0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb6,0x0f,0xb8,0x0f,0xba,0x0f,0xbc,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f, -0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb5,0x0f,0xb7,0x0f,0xb9,0x0f,0xbb,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x00,0xd6,0x06,0xac,0x11,0x8c,0x06,0xad,0x00,0x02,0x00,0x03, -0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xe1,0x0c,0xe2,0x0c,0xe3,0x0c,0xe4,0x0c,0xe5,0x0c,0xe6,0x0c,0xe7,0x0c,0xe8,0x0c,0xe9,0x0c,0xea,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x8d,0x00,0x01, -0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd6,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x02,0x00,0x0a,0x00,0x14,0x00,0x01,0x00,0x04,0x0b,0x8a,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x8b,0x00,0x02,0x0b,0x5c,0x00,0x01, -0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x66,0x00,0x0c,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x5a,0x00,0x60,0x00,0x02,0x0b,0x5f, -0x0b,0x07,0x00,0x02,0x0b,0x67,0x0b,0x07,0x00,0x02,0x0b,0xbf,0x0b,0x07,0x00,0x02,0x0b,0xc4,0x0b,0x07,0x00,0x02,0x0b,0xc9,0x0b,0x07,0x00,0x02,0x0b,0xd0,0x0b,0x07,0x00,0x02,0x0b,0xd1,0x0b,0x07,0x00,0x02,0x0b,0xd2,0x0b,0x07,0x00,0x02,0x0b,0xd3,0x0b,0x07,0x00,0x02,0x0b,0xd4,0x0b,0x07,0x00,0x02,0x0b,0xd5,0x0b,0x07,0x00,0x02, -0x0b,0xd8,0x0b,0x07,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x76,0x00,0x0e,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34, -0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc4,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02, -0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67, -0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04,0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x04,0x26,0x00,0x84,0x01,0x0e,0x01,0x14,0x01,0x1a,0x01,0x20,0x01,0x26,0x01,0x2c,0x01,0x32,0x01,0x38,0x01,0x3e,0x01,0x44,0x01,0x4a,0x01,0x50, -0x01,0x56,0x01,0x5c,0x01,0x62,0x01,0x68,0x01,0x6e,0x01,0x74,0x01,0x7a,0x01,0x80,0x01,0x86,0x01,0x8c,0x01,0x92,0x01,0x98,0x01,0x9e,0x01,0xa4,0x01,0xaa,0x01,0xb0,0x01,0xb6,0x01,0xbc,0x01,0xc2,0x01,0xc8,0x01,0xce,0x01,0xd4,0x01,0xda,0x01,0xe0,0x01,0xe6,0x01,0xec,0x01,0xf2,0x01,0xf8,0x01,0xfe,0x02,0x04,0x02,0x0a,0x02,0x10, -0x02,0x16,0x02,0x1c,0x02,0x22,0x02,0x28,0x02,0x2e,0x02,0x34,0x02,0x3a,0x02,0x40,0x02,0x46,0x02,0x4c,0x02,0x52,0x02,0x58,0x02,0x5e,0x02,0x64,0x02,0x6a,0x02,0x70,0x02,0x76,0x02,0x7c,0x02,0x82,0x02,0x88,0x02,0x8e,0x02,0x94,0x02,0x9a,0x02,0xa0,0x02,0xa6,0x02,0xac,0x02,0xb2,0x02,0xb8,0x02,0xbe,0x02,0xc4,0x02,0xca,0x02,0xd0, -0x02,0xd6,0x02,0xdc,0x02,0xe2,0x02,0xe8,0x02,0xee,0x02,0xf4,0x02,0xfa,0x03,0x00,0x03,0x06,0x03,0x0c,0x03,0x12,0x03,0x18,0x03,0x1e,0x03,0x24,0x03,0x2a,0x03,0x30,0x03,0x36,0x03,0x3c,0x03,0x42,0x03,0x48,0x03,0x4e,0x03,0x54,0x03,0x5a,0x03,0x60,0x03,0x66,0x03,0x6c,0x03,0x72,0x03,0x78,0x03,0x7e,0x03,0x84,0x03,0x8a,0x03,0x90, -0x03,0x96,0x03,0x9c,0x03,0xa2,0x03,0xa8,0x03,0xae,0x03,0xb4,0x03,0xba,0x03,0xc0,0x03,0xc6,0x03,0xcc,0x03,0xd2,0x03,0xd8,0x03,0xde,0x03,0xe4,0x03,0xea,0x03,0xf0,0x03,0xf6,0x03,0xfc,0x04,0x02,0x04,0x08,0x04,0x0e,0x04,0x14,0x04,0x1a,0x04,0x20,0x00,0x02,0x0a,0x43,0x11,0x86,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x54, -0x11,0x86,0x00,0x02,0x0b,0x55,0x11,0x86,0x00,0x02,0x0b,0x56,0x11,0x86,0x00,0x02,0x0b,0x57,0x11,0x86,0x00,0x02,0x0b,0x58,0x11,0x86,0x00,0x02,0x0b,0x59,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5b,0x11,0x86,0x00,0x02,0x0b,0x5c,0x11,0x86,0x00,0x02,0x0b,0x5d,0x11,0x86,0x00,0x02,0x0b,0x5e,0x11,0x86,0x00,0x02, -0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x61,0x11,0x86,0x00,0x02,0x0b,0x66,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0x68,0x11,0x86,0x00,0x02,0x0b,0x69,0x11,0x86,0x00,0x02,0x0b,0x6a,0x11,0x86,0x00,0x02,0x0b,0x6b,0x11,0x86,0x00,0x02,0x0b,0x6c,0x11,0x86,0x00,0x02,0x0b,0x6d,0x11,0x86,0x00,0x02,0x0b,0x6e,0x11,0x86, -0x00,0x02,0x0b,0x6f,0x11,0x86,0x00,0x02,0x0b,0x70,0x11,0x86,0x00,0x02,0x0b,0x71,0x11,0x86,0x00,0x02,0x0b,0x72,0x11,0x86,0x00,0x02,0x0b,0x73,0x11,0x86,0x00,0x02,0x0b,0x74,0x11,0x86,0x00,0x02,0x0b,0x75,0x11,0x86,0x00,0x02,0x0b,0x76,0x11,0x86,0x00,0x02,0x0b,0x77,0x11,0x86,0x00,0x02,0x0b,0x78,0x11,0x86,0x00,0x02,0x0b,0x79, -0x11,0x86,0x00,0x02,0x0b,0x7a,0x11,0x86,0x00,0x02,0x0b,0x7b,0x11,0x86,0x00,0x02,0x0b,0x7c,0x11,0x86,0x00,0x02,0x0b,0x7d,0x11,0x86,0x00,0x02,0x0b,0x7e,0x11,0x86,0x00,0x02,0x0b,0x7f,0x11,0x86,0x00,0x02,0x0b,0x80,0x11,0x86,0x00,0x02,0x0b,0x81,0x11,0x86,0x00,0x02,0x0b,0x82,0x11,0x86,0x00,0x02,0x0b,0x83,0x11,0x86,0x00,0x02, -0x0b,0x84,0x11,0x86,0x00,0x02,0x0b,0x85,0x11,0x86,0x00,0x02,0x0b,0x88,0x11,0x86,0x00,0x02,0x0b,0x89,0x11,0x86,0x00,0x02,0x0b,0x8a,0x11,0x86,0x00,0x02,0x0b,0x8b,0x11,0x86,0x00,0x02,0x0b,0x8c,0x11,0x86,0x00,0x02,0x0b,0x8d,0x11,0x86,0x00,0x02,0x0b,0x8e,0x11,0x86,0x00,0x02,0x0b,0x8f,0x11,0x86,0x00,0x02,0x0b,0x90,0x11,0x86, -0x00,0x02,0x0b,0x91,0x11,0x86,0x00,0x02,0x0b,0x92,0x11,0x86,0x00,0x02,0x0b,0x93,0x11,0x86,0x00,0x02,0x0b,0x94,0x11,0x86,0x00,0x02,0x0b,0x95,0x11,0x86,0x00,0x02,0x0b,0x97,0x11,0x86,0x00,0x02,0x0b,0x98,0x11,0x86,0x00,0x02,0x0b,0x99,0x11,0x86,0x00,0x02,0x0b,0x9a,0x11,0x86,0x00,0x02,0x0b,0x9d,0x11,0x86,0x00,0x02,0x0b,0x9e, -0x11,0x86,0x00,0x02,0x0b,0x9f,0x11,0x86,0x00,0x02,0x0b,0xa0,0x11,0x86,0x00,0x02,0x0b,0xa1,0x11,0x86,0x00,0x02,0x0b,0xa2,0x11,0x86,0x00,0x02,0x0b,0xa3,0x11,0x86,0x00,0x02,0x0b,0xa4,0x11,0x86,0x00,0x02,0x0b,0xa5,0x11,0x86,0x00,0x02,0x0b,0xa6,0x11,0x86,0x00,0x02,0x0b,0xa7,0x11,0x86,0x00,0x02,0x0b,0xa8,0x11,0x86,0x00,0x02, -0x0b,0xa9,0x11,0x86,0x00,0x02,0x0b,0xaa,0x11,0x86,0x00,0x02,0x0b,0xab,0x11,0x86,0x00,0x02,0x0b,0xac,0x11,0x86,0x00,0x02,0x0b,0xad,0x11,0x86,0x00,0x02,0x0b,0xae,0x11,0x86,0x00,0x02,0x0b,0xaf,0x11,0x86,0x00,0x02,0x0b,0xb0,0x11,0x86,0x00,0x02,0x0b,0xb1,0x11,0x86,0x00,0x02,0x0b,0xb2,0x11,0x86,0x00,0x02,0x0b,0xb3,0x11,0x86, -0x00,0x02,0x0b,0xb4,0x11,0x86,0x00,0x02,0x0b,0xb5,0x11,0x86,0x00,0x02,0x0b,0xb6,0x11,0x86,0x00,0x02,0x0b,0xb7,0x11,0x86,0x00,0x02,0x0b,0xb9,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc0,0x11,0x86,0x00,0x02,0x0b,0xc1,0x11,0x86,0x00,0x02,0x0b,0xc2,0x11,0x86,0x00,0x02,0x0b,0xc3,0x11,0x86,0x00,0x02,0x0b,0xc4, -0x11,0x86,0x00,0x02,0x0b,0xc5,0x11,0x86,0x00,0x02,0x0b,0xc6,0x11,0x86,0x00,0x02,0x0b,0xc7,0x11,0x86,0x00,0x02,0x0b,0xc8,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02,0x0b,0xca,0x11,0x86,0x00,0x02,0x0b,0xcb,0x11,0x86,0x00,0x02,0x0b,0xcc,0x11,0x86,0x00,0x02,0x0b,0xcd,0x11,0x86,0x00,0x02,0x0b,0xce,0x11,0x86,0x00,0x02, -0x0b,0xcf,0x11,0x86,0x00,0x02,0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd6,0x11,0x86,0x00,0x02,0x0b,0xd7,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x0b,0xd9,0x11,0x86, -0x00,0x02,0x0b,0xda,0x11,0x86,0x00,0x02,0x0b,0xdb,0x11,0x86,0x00,0x02,0x0b,0xdc,0x11,0x86,0x00,0x02,0x0b,0xdd,0x11,0x86,0x00,0x02,0x0b,0xe1,0x11,0x86,0x00,0x02,0x12,0x5c,0x11,0x86,0x00,0x02,0x12,0x5d,0x11,0x86,0x00,0x02,0x12,0x5e,0x11,0x86,0x00,0x02,0x12,0x5f,0x11,0x86,0x00,0x02,0x12,0x60,0x11,0x86,0x00,0x02,0x12,0x61, -0x11,0x86,0x00,0x02,0x12,0x62,0x11,0x86,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd, -0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xef,0x00,0x04,0x0e,0x2d,0x0e,0x58,0x0e,0x2f,0x00,0x01,0x00,0x01,0x08,0xef,0x00,0x01,0x00,0x82,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x2e,0x00,0x54,0x13,0xf0,0x00,0x12,0x09,0x3f, -0x08,0xf7,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29, -0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x09,0x60,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x28, -0x00,0x48,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x08,0xf7,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f, -0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x09,0x60,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x18,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce, -0x09,0x3f,0x08,0xc7,0x08,0xee,0x08,0xf3,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce,0x09,0x3f,0x08,0xc7,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x16,0x13,0xf1,0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x08,0xf3,0x13,0xf1, -0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x16,0x0e,0x32,0x0e,0x57,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59, -0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x34,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x13,0x0e,0x32,0x0e,0x57,0x00,0x03,0x0a,0x63,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59,0x00,0x03,0x09,0x0d,0x08,0xee, -0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x02,0x64,0x6c,0x6e,0x67,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x2c,0x73,0x6c,0x6e,0x67,0x00,0x00,0x00,0x54, -0x00,0x00,0x00,0x2c,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41,0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41, -0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75, -}; - -read_only global String8 rd_default_main_font_bytes = {rd_default_main_font_bytes__data, sizeof(rd_default_main_font_bytes__data)}; -read_only global U8 rd_default_code_font_bytes__data[] = -{ -0x00,0x01,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x04,0x00,0x10,0x47,0x44,0x45,0x46,0x14,0xdc,0x05,0x92,0x00,0x03,0xa6,0x14,0x00,0x00,0x02,0x2a,0x47,0x50,0x4f,0x53,0x68,0xe9,0x9a,0x47,0x00,0x03,0xa8,0x40,0x00,0x00,0x23,0x96,0x47,0x53,0x55,0x42,0x28,0xdb,0xc9,0x88,0x00,0x03,0xcb,0xd8,0x00,0x00,0x62,0x14,0x4f,0x53,0x2f,0x32, -0x12,0x35,0x0b,0x84,0x00,0x00,0x01,0x98,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x5a,0x24,0x58,0xda,0x00,0x00,0x1d,0x34,0x00,0x00,0x42,0x6a,0x63,0x76,0x74,0x20,0x27,0x58,0x0f,0x1a,0x00,0x00,0x6e,0x84,0x00,0x00,0x00,0xa8,0x66,0x70,0x67,0x6d,0x62,0x2f,0x03,0x7f,0x00,0x00,0x5f,0xa0,0x00,0x00,0x0e,0x0c,0x67,0x61,0x73,0x70, -0x00,0x00,0x00,0x10,0x00,0x03,0xa6,0x0c,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0x6c,0x17,0x21,0x7d,0x00,0x00,0x8a,0x6c,0x00,0x02,0xc9,0x3c,0x68,0x65,0x61,0x64,0x1b,0x2b,0x60,0x84,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x00,0x35,0x07,0x57,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78, -0x54,0xf6,0x4a,0x0f,0x00,0x00,0x01,0xf8,0x00,0x00,0x1b,0x3c,0x6c,0x6f,0x63,0x61,0x08,0x34,0x21,0x64,0x00,0x00,0x6f,0x2c,0x00,0x00,0x1b,0x40,0x6d,0x61,0x78,0x70,0x0f,0xc8,0x14,0x44,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0x94,0x4b,0x4e,0x5d,0x00,0x03,0x53,0xa8,0x00,0x00,0x06,0x2f,0x70,0x6f,0x73,0x74, -0x5d,0x5a,0x9a,0x04,0x00,0x03,0x59,0xd8,0x00,0x00,0x4c,0x33,0x70,0x72,0x65,0x70,0x8a,0xcd,0x9c,0x1e,0x00,0x00,0x6d,0xac,0x00,0x00,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x02,0x4d,0xd3,0x13,0x13,0x3d,0xf7,0x5f,0x0f,0x3c,0xf5,0x00,0x0f,0x03,0xe8,0x00,0x00,0x00,0x00,0xdf,0xe8,0x66,0x79,0x00,0x00,0x00,0x00,0xdf,0xe8,0x68,0x84, -0xf9,0x39,0xfe,0x70,0x02,0xfd,0x04,0x60,0x00,0x00,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x02,0x58,0xf9,0x39,0xff,0x5b,0x02,0xfd,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x01,0x00,0x00,0x06,0xcf,0x01,0xb8, -0x00,0x6e,0x00,0x87,0x00,0x06,0x00,0x02,0x02,0x94,0x03,0xf6,0x00,0x8d,0x00,0x00,0x05,0x60,0x0e,0x0c,0x00,0x03,0x00,0x01,0x00,0x04,0x02,0x58,0x01,0x90,0x00,0x05,0x00,0x00,0x02,0x8a,0x02,0x58,0x00,0x00,0x00,0x4b,0x02,0x8a,0x02,0x58,0x00,0x00,0x01,0x5e,0x00,0x32,0x01,0x40,0x00,0x00,0x02,0x00,0x00,0x09,0x00,0x00,0x00,0x00, -0x00,0x00,0xa0,0x04,0x02,0xff,0x12,0x00,0xf9,0xfb,0x02,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x4a,0x42,0x00,0x00,0x00,0xc0,0x00,0x0d,0xff,0xff,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x03,0xfc,0x01,0x2c,0x20,0x00,0x01,0x9f,0xdf,0xd7,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x00,0x00,0x20,0x00,0x06,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, -0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, -0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c, -0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, -0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x0a, -0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x5c, -0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x75,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, -0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, -0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x48, -0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, -0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55, -0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, -0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, -0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54, -0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58, -0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xd4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, -0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x61,0x02,0x58,0x00,0x61, -0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, -0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54, -0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x70, -0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36, -0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41, -0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, -0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xaf,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x06, -0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2e, -0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69, -0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x38,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x51,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x56,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x82, -0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58, -0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x55, -0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5b,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x64, -0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32, -0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, -0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0xb0,0x02,0x58,0xff,0x83,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x23, -0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x36, -0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a, -0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x1a,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x4b, -0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b, -0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b, -0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e, -0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x49, -0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b, -0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b, -0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84, -0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05, -0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x91,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x73, -0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x24,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xda,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xd9,0x00,0x00,0xff,0x1a, -0x00,0x00,0xff,0x79,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x87, -0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xd2, -0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0xf9,0x02,0x58,0xfe,0x34,0x02,0x58,0xfb,0xdc,0x02,0x58,0xf9,0x4d,0x02,0x58,0xfb,0xa6,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfd,0xfd, -0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfe,0x0c,0x02,0x58,0xf9,0x7f,0x02,0x58,0xf9,0x7f,0x02,0x58,0xfc,0x09,0x02,0x58,0xfe,0x43,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x8e,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfe,0xd4,0x02,0x58,0xfc,0x90,0x02,0x58,0xfc,0x71, -0x02,0x58,0xfe,0x82,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfe,0xd1,0x02,0x58,0xfc,0xc9,0x02,0x58,0xfc,0x44,0x02,0x58,0xfe,0xb3,0x02,0x58,0xfc,0x2c,0x02,0x58,0xfe,0x52,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0xbd,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0x68,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5, -0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfe,0x52,0x02,0x58,0xfb,0x9c,0x02,0x58,0xfd,0xe5,0x02,0x58,0xfd,0xcc,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xe9,0x02,0x58,0xfb,0x91, -0x02,0x58,0xf9,0x39,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x11,0x02,0x58,0xfb,0xa0,0x02,0x58,0xfe,0x16,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfc,0x13,0x02,0x58,0xfe,0x66,0x02,0x58,0xfe,0x66,0x02,0x58,0xfc,0x22,0x02,0x58,0xfd,0xe4, -0x02,0x58,0xfe,0x5c,0x02,0x58,0xfc,0x0e,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x00, -0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x13,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x1d, -0x02,0x58,0x00,0x9e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x9b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x9f,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6, -0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xe6,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0x97,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d, -0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x41,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2d, -0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, -0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x64, -0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x9b, -0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0x23, -0x02,0x58,0x00,0x1e,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00, -0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, -0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1d,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x28, -0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e, -0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a, -0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, -0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x02,0x0d,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, -0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6, -0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0xb4,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6, -0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x96, -0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, -0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, -0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec, -0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, -0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19, -0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, -0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, -0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, -0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, -0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x1e, -0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, -0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xaa,0x02,0x58,0x00,0x7d, -0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x58,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x27, -0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x46, -0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d, -0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x51, -0x02,0x58,0x00,0x14,0x02,0x58,0xff,0x5b,0x02,0x58,0xff,0xc9,0x02,0x58,0xff,0xa9,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, -0x02,0x58,0x00,0xf5,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f, -0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xc8,0x02,0x58,0xfd,0xda,0x02,0x58,0xfb,0x82,0x02,0x58,0xfd,0xdf,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfd,0xc6,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb, -0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0xe3,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xc7,0x02,0x58,0xfa,0xc9,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xd6,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x20,0x02,0x58,0xfb,0xff,0x02,0x58,0xfd,0xda,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xa0, -0x02,0x58,0xfb,0xa0,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa1,0x02,0x58,0xfe,0x0c,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x61,0x02,0x58,0xfe,0x89,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xb3, -0x02,0x58,0xfb,0xb3,0x02,0x58,0xfc,0x6d,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x89,0x02,0x58,0xfb,0xcd,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0x98,0x02,0x58,0xfc,0x77,0x02,0x58,0xfa,0x7e,0x02,0x58,0xfb,0xe6, -0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xbe,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xf9,0x43,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0x47,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0xf5, -0x02,0x58,0xfb,0x9b,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xf5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfd,0xee,0x02,0x58,0xfd,0xee,0x02,0x58,0xfe,0x57,0x02,0x58,0xfb,0x96,0x02,0x58,0xfe,0x39,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa0,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x41, -0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xa5,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90,0x00,0x00,0xfe,0x3b,0x00,0x00,0xff,0x60,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c, -0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75,0x00,0x00,0xfe,0x61,0x00,0x00,0xfd,0x8a,0x00,0x00,0xfd,0xcb,0x00,0x00,0xfe,0x16,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5, -0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xb9,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90, -0x00,0x00,0xfe,0x3b,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x1b,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75, -0x00,0x00,0xfe,0x61,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5,0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xe1, -0x02,0x58,0x00,0x7d,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20, -0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xd8,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x00,0x00,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x24, -0x00,0x00,0x00,0x04,0x00,0x00,0x0f,0x12,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x03,0x00,0x0a,0x00,0x00,0x0f,0x12,0x00,0x04,0x0e,0xee,0x00,0x00,0x01,0xa8,0x01,0x00,0x00,0x07,0x00,0xa8,0x00,0x0d,0x00,0x2f,0x00,0x39,0x00,0x7e,0x01,0x31,0x01,0x7f,0x01,0x90,0x01,0x92,0x01,0x9b,0x01,0xa1,0x01,0xb0,0x01,0xce,0x01,0xd0, -0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe7,0x01,0xeb,0x01,0xf5,0x01,0xff,0x02,0x1b,0x02,0x33,0x02,0x37,0x02,0x59,0x02,0xba,0x02,0xbc,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x02,0xf3,0x02,0xf7,0x03,0x04,0x03,0x0c,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x28,0x03,0x38,0x03,0x75,0x03,0x7e,0x03,0x8a, -0x03,0x8c,0x03,0x90,0x03,0xa1,0x03,0xa9,0x03,0xb0,0x03,0xc9,0x03,0xcf,0x03,0xd7,0x04,0x0c,0x04,0x1a,0x04,0x23,0x04,0x3a,0x04,0x43,0x04,0x4f,0x04,0x5c,0x04,0x5f,0x04,0x93,0x04,0x9b,0x04,0xa3,0x04,0xb1,0x04,0xb7,0x04,0xbb,0x04,0xd9,0x04,0xdf,0x04,0xe9,0x04,0xf5,0x0a,0xea,0x1e,0x85,0x1e,0x9e,0x1e,0xf9,0x20,0x01,0x20,0x0b, -0x20,0x10,0x20,0x14,0x20,0x16,0x20,0x22,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3f,0x20,0x46,0x20,0x70,0x20,0x79,0x20,0x7a,0x20,0x7c,0x20,0x89,0x20,0xac,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x16,0x21,0x1a,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8b, -0x21,0x99,0x21,0x9e,0x21,0xa0,0x21,0xa3,0x21,0xa7,0x21,0xaa,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd4,0x21,0xdb,0x21,0xdf,0x21,0xe5,0x21,0xe8,0x21,0xea,0x22,0x0c,0x22,0x13,0x22,0x15,0x22,0x1a,0x22,0x1e,0x22,0x25,0x22,0x2b,0x22,0x39,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x49,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57, -0x22,0x65,0x22,0x73,0x22,0x7c,0x22,0x89,0x22,0x99,0x22,0xa5,0x22,0xb4,0x22,0xb8,0x22,0xbd,0x22,0xc4,0x22,0xc6,0x22,0xca,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xf1,0x23,0x05,0x23,0x0b,0x23,0x18,0x23,0x1f,0x23,0x26,0x23,0x28,0x23,0x2b,0x23,0x7a,0x23,0x8b,0x23,0x95,0x23,0xad,0x23,0xce,0x23,0xfe,0x24,0x21,0x24,0x24,0x25,0x94, -0x25,0x9f,0x25,0xa1,0x25,0xab,0x25,0xcc,0x25,0xcf,0x25,0xd5,0x25,0xe6,0x25,0xeb,0x25,0xef,0x25,0xf6,0x26,0x6d,0x26,0x6f,0x26,0x87,0x26,0xa1,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x71,0x27,0x94,0x27,0x9e,0x27,0xc6,0x27,0xdc,0x27,0xeb,0x27,0xf7,0x29,0x16,0x29,0x4a,0x29,0x88,0x2a,0x00,0x2a,0x06,0x2b,0x58,0xe0,0xa2, -0xe0,0xb3,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d,0x00,0x20,0x00,0x30,0x00,0x3a,0x00,0xa0,0x01,0x34,0x01,0x8f,0x01,0x92,0x01,0x9b,0x01,0xa0,0x01,0xaf,0x01,0xcd,0x01,0xd0,0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe6,0x01,0xea,0x01,0xf4,0x01,0xfc,0x02,0x18, -0x02,0x32,0x02,0x37,0x02,0x59,0x02,0xb9,0x02,0xbc,0x02,0xc6,0x02,0xc9,0x02,0xd8,0x02,0xf3,0x02,0xf7,0x03,0x00,0x03,0x06,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x25,0x03,0x36,0x03,0x74,0x03,0x7e,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0x91,0x03,0xa3,0x03,0xaa,0x03,0xb1,0x03,0xca,0x03,0xd5,0x04,0x01,0x04,0x0e,0x04,0x1b, -0x04,0x24,0x04,0x3b,0x04,0x44,0x04,0x51,0x04,0x5e,0x04,0x90,0x04,0x9a,0x04,0xa2,0x04,0xae,0x04,0xb6,0x04,0xba,0x04,0xd8,0x04,0xdc,0x04,0xe4,0x04,0xf4,0x0a,0xea,0x1e,0x80,0x1e,0x9e,0x1e,0xa0,0x20,0x01,0x20,0x0b,0x20,0x10,0x20,0x13,0x20,0x16,0x20,0x18,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44, -0x20,0x70,0x20,0x74,0x20,0x7a,0x20,0x7c,0x20,0x80,0x20,0xab,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x15,0x21,0x19,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8a,0x21,0x90,0x21,0x9d,0x21,0xa0,0x21,0xa2,0x21,0xa5,0x21,0xa9,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd0,0x21,0xdb, -0x21,0xde,0x21,0xe5,0x21,0xe7,0x21,0xea,0x22,0x00,0x22,0x0e,0x22,0x15,0x22,0x18,0x22,0x1e,0x22,0x23,0x22,0x27,0x22,0x34,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x47,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57,0x22,0x5f,0x22,0x6a,0x22,0x7a,0x22,0x82,0x22,0x8e,0x22,0x9b,0x22,0xb4,0x22,0xb8,0x22,0xbb,0x22,0xc2,0x22,0xc6, -0x22,0xc8,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xee,0x23,0x02,0x23,0x08,0x23,0x18,0x23,0x1c,0x23,0x24,0x23,0x28,0x23,0x2b,0x23,0x36,0x23,0x89,0x23,0x95,0x23,0x9b,0x23,0xce,0x23,0xfb,0x24,0x00,0x24,0x23,0x25,0x00,0x25,0x95,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xce,0x25,0xd4,0x25,0xe6,0x25,0xe7,0x25,0xef,0x25,0xf6,0x26,0x6d, -0x26,0x6f,0x26,0x87,0x26,0xa0,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x6e,0x27,0x94,0x27,0x9c,0x27,0xc5,0x27,0xdc,0x27,0xe6,0x27,0xf5,0x29,0x16,0x29,0x4a,0x29,0x87,0x2a,0x00,0x2a,0x05,0x2b,0x58,0xe0,0xa0,0xe0,0xb0,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x03,0xb3,0x00,0x00,0x02,0xa4,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x36,0xff,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x33,0xff,0x53,0xff,0x80,0xff,0x84,0xff,0x7f,0xff,0x7e,0xff,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xd7,0xfe,0x9a,0x00,0x00,0x03,0xa8,0x03,0xbf,0x03,0x9d,0x00,0x00,0x03,0x10,0x03,0x0d,0x00,0x00,0x00,0x00, -0x03,0x66,0x03,0x64,0x03,0x5c,0x03,0x55,0x03,0x54,0x03,0x47,0x02,0xee,0x00,0x3d,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0xc0,0xfe,0xbf,0x00,0x00,0xfe,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfd,0xbc,0x00,0x00,0xfd,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x3e,0x00,0x00,0xe1,0xe9,0x00,0x00,0xe3,0xbb,0xe3,0xb2,0xe3,0x4b,0xe3,0x46,0xe3,0x21,0x00,0x00,0xe3,0x17,0xe3,0x07,0xe4,0x09,0x00,0x00,0xe3,0x2e,0x00,0x00,0x00,0x00,0xe2,0x92,0xe2,0x92,0xe3,0xc1,0xe3,0x6a,0xe2,0x64,0xe3,0x1b,0xe3,0x1e,0xe3,0x15,0xe3,0x0d,0xe3,0x03,0xe1,0xa0,0xe1,0x9a, -0xe4,0xae,0x00,0x00,0xe1,0x96,0xe1,0x94,0xe4,0x98,0xe1,0x95,0xe4,0x96,0xe3,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xde,0xe2,0xdd,0xe2,0xdc,0xe2,0xdc,0xe2,0xcf,0xe2,0xc9,0xe2,0xbf,0x00,0x00,0xe2,0xb3,0x00,0x00,0xe2,0x9f,0xe2,0xa8,0xe3,0xf8,0x00,0x00,0x00,0x00,0xe1,0xc8,0x00,0x00,0xe2,0x06,0x00,0x00,0xe1,0xff,0x00,0x00, -0xe2,0x12,0xe1,0xaf,0xe1,0x8d,0xe1,0x92,0x00,0x00,0xe2,0x19,0xe1,0x9b,0xe1,0x81,0xe1,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe1,0x54,0xe1,0x44,0x00,0x00,0x00,0x00,0xe1,0x93,0x00,0x00,0xe1,0x0c,0xe1,0x10,0xe1,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xd1,0x00,0x00,0x00,0x00,0xe2,0xbd,0xe2,0xb8, -0x00,0x00,0x00,0x00,0xe1,0xf0,0x00,0x00,0xe2,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0x17,0xdf,0x28,0xdf,0x20,0x00,0x00,0x00,0x00,0xde,0xe9,0xde,0xdd,0xde,0xe5,0xde,0xcd,0xde,0xc9,0xdf,0xf3,0xdf,0xf2,0xdf,0x24,0xdf,0x0c,0xde,0x9b,0xde,0x9a,0xde,0x99,0xde,0x7b,0x00,0x00,0xdc,0xff,0xdc,0xf8,0x00,0x00,0xdc,0x13, -0x00,0x00,0xdc,0xa2,0xdb,0x2d,0xda,0xa4,0xd9,0xce,0xd9,0xfe,0xd9,0xfa,0xda,0x99,0x26,0x24,0x26,0x17,0x05,0xd8,0x04,0xc2,0x03,0xee,0x03,0xed,0x05,0xf9,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x00,0x01,0xc2,0x02,0x4a,0x03,0x6c,0x04,0x02,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xf8,0x03,0xfa,0x03,0xfc,0x03,0xfe,0x04,0x04,0x04,0x0a,0x00,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x04,0x0a,0x04,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x00,0x00,0x04,0x18,0x00,0x00, -0x00,0x00,0x04,0x18,0x00,0x00,0x04,0x22,0x04,0x2c,0x04,0x30,0x04,0x46,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x86,0x04,0x9c,0x04,0xb2,0x04,0xb4,0x04,0xba,0x04,0xbc,0x04,0xbe,0x04,0xc4,0x04,0xc6,0x04,0xc8,0x04,0xca,0x04,0xd0,0x04,0xda,0x00,0x00,0x04,0xda,0x00,0x00,0x04,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x05,0x9a,0x05,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x80,0x05,0x82,0x05,0x94,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x05,0xa2,0x00,0x00,0x05,0xaa,0x00,0x00,0x05,0xac,0x00,0x00,0x05,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xac,0x05,0xb8,0x05,0xca, -0x05,0xce,0x05,0xdc,0x05,0xf2,0x00,0x00,0x00,0x00,0x06,0x02,0x06,0x06,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x0c,0x06,0x12,0x00,0x00,0x06,0x16,0x06,0x1c,0x00,0x00,0x00,0x00,0x06,0x1c,0x06,0xa4,0x00,0x00,0x06,0xa6,0x00,0x00,0x06,0xc8,0x06,0xce,0x07,0x10,0x07,0x12,0x00,0x00,0x00,0x00,0x00,0x00, -0x08,0x34,0x08,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x50,0x00,0x00,0x00,0x00,0x08,0x52,0x00,0x00,0x08,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xbe,0x03,0x2e,0x03,0x6a,0x03,0x3a,0x03,0xc5,0x04,0x38,0x05,0xb5,0x03,0x6b,0x03,0x43,0x03,0x44,0x03,0x34,0x04,0x15,0x03,0x2a,0x03,0x57,0x03,0x29,0x03,0x3d,0x03,0x2b,0x03,0x2c,0x04,0x1c,0x04,0x19,0x04,0x1b,0x03,0x30,0x05,0xb4,0x00,0x01,0x00,0x1a,0x00,0x1b,0x00,0x21,0x00,0x25, -0x00,0x38,0x00,0x39,0x00,0x40,0x00,0x43,0x00,0x4f,0x00,0x51,0x00,0x53,0x00,0x59,0x00,0x5a,0x00,0x60,0x00,0x7a,0x00,0x7c,0x00,0x7d,0x00,0x81,0x00,0x89,0x00,0x8e,0x00,0xa1,0x00,0xa2,0x00,0xa7,0x00,0xa8,0x00,0xb1,0x03,0x47,0x03,0x3e,0x03,0x48,0x04,0x23,0x03,0x5c,0x06,0x82,0x00,0xbd,0x00,0xd6,0x00,0xd7,0x00,0xdd,0x00,0xe1, -0x00,0xf4,0x00,0xf5,0x00,0xfc,0x00,0xff,0x01,0x0d,0x01,0x10,0x01,0x13,0x01,0x1a,0x01,0x1b,0x01,0x22,0x01,0x3d,0x01,0x3f,0x01,0x40,0x01,0x44,0x01,0x4c,0x01,0x51,0x01,0x69,0x01,0x6a,0x01,0x6f,0x01,0x70,0x01,0x79,0x03,0x45,0x05,0xbe,0x03,0x46,0x04,0x22,0x03,0xbf,0x03,0x2f,0x03,0xc3,0x03,0xcb,0x03,0xc4,0x03,0xcd,0x05,0xbf, -0x05,0xb7,0x06,0x80,0x05,0xb8,0x01,0xc6,0x03,0x65,0x04,0x21,0x03,0x58,0x05,0xb9,0x06,0x8a,0x05,0xbb,0x04,0x1f,0x03,0x04,0x03,0x05,0x06,0x83,0x04,0x30,0x05,0xb6,0x03,0x32,0x06,0x8b,0x03,0x03,0x01,0xc7,0x03,0x66,0x03,0x22,0x03,0x21,0x03,0x23,0x03,0x31,0x00,0x12,0x00,0x02,0x00,0x0a,0x00,0x17,0x00,0x10,0x00,0x16,0x00,0x18, -0x00,0x1e,0x00,0x32,0x00,0x26,0x00,0x29,0x00,0x2f,0x00,0x4a,0x00,0x44,0x00,0x46,0x00,0x47,0x00,0x22,0x00,0x5f,0x00,0x6b,0x00,0x61,0x00,0x63,0x00,0x78,0x00,0x69,0x04,0x17,0x00,0x76,0x00,0x94,0x00,0x8f,0x00,0x91,0x00,0x92,0x00,0xa9,0x00,0x7b,0x01,0x4a,0x00,0xce,0x00,0xbe,0x00,0xc6,0x00,0xd3,0x00,0xcc,0x00,0xd2,0x00,0xd4, -0x00,0xda,0x00,0xee,0x00,0xe2,0x00,0xe5,0x00,0xeb,0x01,0x08,0x01,0x01,0x01,0x04,0x01,0x05,0x00,0xde,0x01,0x21,0x01,0x2e,0x01,0x23,0x01,0x26,0x01,0x3b,0x01,0x2c,0x04,0x18,0x01,0x39,0x01,0x5c,0x01,0x52,0x01,0x55,0x01,0x56,0x01,0x71,0x01,0x3e,0x01,0x73,0x00,0x14,0x00,0xd0,0x00,0x03,0x00,0xbf,0x00,0x15,0x00,0xd1,0x00,0x1c, -0x00,0xd8,0x00,0x1f,0x00,0xdb,0x00,0x20,0x00,0xdc,0x00,0x1d,0x00,0xd9,0x00,0x23,0x00,0xdf,0x00,0x24,0x00,0xe0,0x00,0x34,0x00,0xf0,0x00,0x27,0x00,0xe3,0x00,0x30,0x00,0xec,0x00,0x35,0x00,0xf1,0x00,0x28,0x00,0xe4,0x00,0x3d,0x00,0xf9,0x00,0x3b,0x00,0xf7,0x00,0x3f,0x00,0xfb,0x00,0x3e,0x00,0xfa,0x00,0x42,0x00,0xfe,0x00,0x41, -0x00,0xfd,0x00,0x4e,0x01,0x0c,0x00,0x4c,0x01,0x0a,0x00,0x45,0x01,0x02,0x00,0x4d,0x01,0x0b,0x00,0x48,0x01,0x00,0x00,0x50,0x01,0x0f,0x00,0x52,0x01,0x11,0x01,0x12,0x00,0x54,0x01,0x14,0x00,0x56,0x01,0x17,0x00,0x55,0x01,0x16,0x00,0x57,0x01,0x18,0x00,0x58,0x01,0x19,0x00,0x5b,0x01,0x1c,0x00,0x5d,0x01,0x1f,0x00,0x5c,0x01,0x1e, -0x01,0x1d,0x00,0x5e,0x01,0x20,0x00,0x74,0x01,0x37,0x00,0x62,0x01,0x24,0x00,0x73,0x01,0x36,0x00,0x79,0x01,0x3c,0x00,0x7e,0x01,0x41,0x00,0x80,0x01,0x43,0x00,0x7f,0x01,0x42,0x00,0x82,0x01,0x45,0x00,0x85,0x01,0x48,0x00,0x84,0x01,0x47,0x00,0x83,0x01,0x46,0x00,0x8c,0x01,0x4f,0x00,0x8b,0x01,0x4e,0x00,0x8a,0x01,0x4d,0x00,0xa0, -0x01,0x68,0x00,0x9d,0x01,0x65,0x00,0x90,0x01,0x53,0x00,0x9f,0x01,0x67,0x00,0x9c,0x01,0x64,0x00,0x9e,0x01,0x66,0x00,0xa4,0x01,0x6c,0x00,0xaa,0x01,0x72,0x00,0xab,0x00,0xb2,0x01,0x7a,0x00,0xb4,0x01,0x7c,0x00,0xb3,0x01,0x7b,0x01,0x4b,0x00,0x88,0x00,0x36,0x00,0x6d,0x01,0x30,0x00,0x96,0x01,0x5e,0x00,0x09,0x00,0xc5,0x00,0x3c, -0x00,0xf8,0x00,0x75,0x01,0x38,0x00,0x3a,0x00,0xf6,0x00,0x19,0x00,0xd5,0x00,0x77,0x01,0x3a,0x00,0x86,0x01,0x49,0x00,0x8d,0x01,0x50,0x00,0xaf,0x01,0x77,0x06,0x67,0x06,0x65,0x06,0x87,0x06,0x81,0x06,0x88,0x06,0x8c,0x06,0x89,0x06,0x84,0x06,0x6a,0x06,0x6b,0x06,0x6e,0x06,0x72,0x06,0x73,0x06,0x70,0x06,0x69,0x06,0x68,0x06,0x74, -0x06,0x71,0x06,0x6c,0x06,0x6f,0x06,0xb0,0x06,0xb2,0x02,0x69,0x03,0xba,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6e,0x02,0x6f,0x02,0x90,0x02,0x70,0x02,0x71,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x8e,0x02,0x93,0x02,0x8f,0x02,0x92,0x02,0x94,0x02,0x91,0x02,0x95,0x02,0x72,0x02,0x9a,0x02,0x9b,0x02,0x99,0x01,0xd0,0x01,0xf6,0x01,0xcc, -0x01,0xee,0x01,0xed,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xeb,0x01,0xec,0x01,0xf3,0x01,0xd6,0x01,0xe0,0x01,0xe7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xce,0x01,0xcf,0x01,0xd1,0x01,0xd2,0x01,0xd3,0x01,0xd4,0x01,0xd5,0x01,0xe1,0x01,0xe2,0x01,0xe4,0x01,0xe3,0x01,0xe5,0x01,0xe6,0x01,0xe9,0x01,0xea,0x01,0xe8,0x01,0xef, -0x01,0xf4,0x01,0xf5,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x12,0x02,0x13,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x25,0x02,0x26,0x02,0x28,0x02,0x27,0x02,0x29,0x02,0x2a,0x02,0x2d,0x02,0x2e,0x02,0x2c,0x02,0x33,0x02,0x38,0x02,0x39,0x02,0x14,0x02,0x3a,0x02,0x10,0x02,0x32,0x02,0x31,0x02,0x34,0x02,0x35, -0x02,0x36,0x02,0x2f,0x02,0x30,0x02,0x37,0x02,0x1a,0x02,0x24,0x02,0x2b,0x01,0xcd,0x02,0x11,0x01,0xf7,0x02,0x3b,0x01,0xf8,0x02,0x3c,0x01,0xf9,0x02,0x3d,0x01,0xfa,0x02,0x3e,0x01,0xfb,0x02,0x3f,0x01,0xfc,0x02,0x40,0x01,0xfd,0x02,0x41,0x01,0xfe,0x02,0x42,0x01,0xff,0x02,0x43,0x02,0x00,0x02,0x44,0x02,0x01,0x02,0x45,0x02,0x02, -0x02,0x46,0x02,0x03,0x02,0x47,0x02,0x04,0x02,0x48,0x00,0xa6,0x01,0x6e,0x00,0xa3,0x01,0x6b,0x00,0xa5,0x01,0x6d,0x00,0x11,0x00,0xcd,0x00,0x13,0x00,0xcf,0x00,0x0b,0x00,0xc7,0x00,0x0d,0x00,0xc9,0x00,0x0e,0x00,0xca,0x00,0x0f,0x00,0xcb,0x00,0x0c,0x00,0xc8,0x00,0x04,0x00,0xc0,0x00,0x06,0x00,0xc2,0x00,0x07,0x00,0xc3,0x00,0x08, -0x00,0xc4,0x00,0x05,0x00,0xc1,0x00,0x31,0x00,0xed,0x00,0x33,0x00,0xef,0x00,0x37,0x00,0xf2,0x00,0x2a,0x00,0xe6,0x00,0x2c,0x00,0xe8,0x00,0x2d,0x00,0xe9,0x00,0x2e,0x00,0xea,0x00,0x2b,0x00,0xe7,0x00,0x4b,0x01,0x09,0x00,0x49,0x01,0x07,0x00,0x6a,0x01,0x2d,0x00,0x6c,0x01,0x2f,0x00,0x64,0x01,0x27,0x00,0x66,0x01,0x29,0x00,0x67, -0x01,0x2a,0x00,0x68,0x01,0x2b,0x00,0x65,0x01,0x28,0x00,0x6e,0x01,0x31,0x00,0x70,0x01,0x33,0x00,0x71,0x01,0x34,0x00,0x72,0x01,0x35,0x00,0x6f,0x01,0x32,0x00,0x93,0x01,0x5b,0x00,0x95,0x01,0x5d,0x00,0x97,0x01,0x5f,0x00,0x99,0x01,0x61,0x00,0x9a,0x01,0x62,0x00,0x9b,0x01,0x63,0x00,0x98,0x01,0x60,0x00,0xad,0x01,0x75,0x00,0xac, -0x01,0x74,0x00,0xae,0x01,0x76,0x00,0xb0,0x01,0x78,0x03,0x61,0x03,0x62,0x03,0x5d,0x03,0x63,0x03,0x5f,0x03,0x60,0x03,0x5e,0x03,0x64,0x05,0xc0,0x05,0xc2,0x03,0x33,0x05,0xbc,0x05,0xbd,0x03,0x69,0x03,0x38,0x03,0x39,0x03,0x3c,0x03,0x3f,0x03,0x20,0x03,0x35,0x03,0x36,0x02,0xad,0x05,0xc3,0x05,0xff,0x05,0xfe,0x04,0x77,0x04,0x71, -0x04,0x73,0x04,0x75,0x04,0x79,0x04,0x7a,0x04,0x78,0x04,0x72,0x04,0x74,0x04,0x76,0x04,0x7b,0x04,0x7d,0x04,0x8c,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8d,0x05,0xe8,0x05,0xe7,0x04,0x65,0x03,0xd6,0x04,0x2f,0x03,0xea,0x04,0x62,0x04,0x25,0x04,0x2b,0x03,0xeb,0x03,0xe2,0x04,0x0b,0x03,0xe3,0x04,0x5d,0x04,0x0a,0x03,0xe5,0x04,0x2c, -0x03,0xd8,0x04,0x2d,0x04,0x16,0x03,0xf9,0x04,0x4d,0x03,0xd4,0x04,0x2e,0x03,0xdc,0x03,0xde,0x04,0x31,0x04,0x63,0x03,0xd1,0x04,0x40,0x04,0x3e,0x03,0xdf,0x03,0xe9,0x04,0x04,0x04,0x20,0x04,0x09,0x04,0x3f,0x04,0x1a,0x03,0xe7,0x04,0x0f,0x04,0x5a,0x04,0x1e,0x04,0x1d,0x03,0xfb,0x03,0xfa,0x03,0xd2,0x04,0x0c,0x04,0x10,0x04,0x0d, -0x04,0x11,0x04,0x0e,0x03,0xf7,0x03,0xec,0x04,0x3c,0x04,0x5c,0x04,0x3d,0x04,0x5b,0x04,0x5f,0x04,0x13,0x04,0x14,0x04,0x41,0x04,0x42,0x04,0x05,0x04,0x06,0x03,0xfd,0x04,0x55,0x04,0x57,0x04,0x56,0x04,0x58,0x04,0x4f,0x04,0x50,0x04,0x70,0x04,0x6d,0x04,0x6e,0x04,0x6c,0x04,0x6f,0x04,0x69,0x04,0x6b,0x04,0x6a,0x04,0x53,0x04,0x52, -0x04,0x54,0x04,0x51,0x04,0x4b,0x04,0x61,0x04,0x60,0x04,0x67,0x04,0x68,0x04,0x01,0x04,0x07,0x04,0x02,0x04,0x03,0x03,0xdb,0x03,0xd3,0x03,0xf3,0x04,0x47,0x03,0xe4,0x03,0xf8,0x04,0x66,0x03,0xe1,0x05,0xe1,0x05,0xca,0x04,0x91,0x05,0xf4,0x03,0x4f,0x03,0x52,0x03,0x50,0x03,0x53,0x05,0xce,0x05,0xcd,0x05,0xcb,0x05,0xcc,0x04,0x92, -0x05,0xe6,0x05,0xe4,0x05,0x65,0x05,0xa0,0x05,0x8f,0x05,0x8c,0x05,0x8b,0x05,0x91,0x05,0x87,0x05,0x6d,0x05,0x6b,0x05,0x9f,0x05,0x68,0x05,0x97,0x05,0x86,0x05,0x93,0x05,0x90,0x05,0x82,0x05,0x9d,0x05,0x92,0x05,0x96,0x05,0x69,0x05,0x79,0x05,0x72,0x05,0x8e,0x05,0x8a,0x05,0x78,0x05,0xa9,0x05,0x98,0x05,0xa8,0x05,0x71,0x05,0x99, -0x05,0x89,0x05,0xa7,0x05,0x7a,0x05,0x8d,0x05,0x9b,0x05,0x73,0x05,0x75,0x05,0x80,0x05,0x6e,0x05,0xa5,0x05,0x9a,0x05,0x6c,0x05,0x88,0x05,0xa6,0x05,0x70,0x05,0xa1,0x05,0x7f,0x05,0x6a,0x05,0x77,0x05,0x81,0x05,0xa3,0x05,0x7c,0x05,0x6f,0x05,0x74,0x05,0xaa,0x05,0xa2,0x05,0x9e,0x05,0x94,0x05,0x95,0x05,0x76,0x05,0xa4,0x05,0x7d, -0x05,0x9c,0x05,0x83,0x05,0x67,0x05,0x7b,0x05,0x7e,0x05,0x84,0x05,0x66,0x05,0xe0,0x05,0xd5,0x05,0xc7,0x04,0x34,0x04,0x32,0x04,0x33,0x04,0x37,0x04,0x35,0x04,0x36,0x03,0xf6,0x03,0xf4,0x03,0xf5,0x04,0x4a,0x04,0x48,0x04,0x49,0x03,0xf2,0x03,0xf1,0x03,0xf0,0x03,0xd9,0x04,0x46,0x04,0x45,0x04,0x44,0x05,0xef,0x05,0xf0,0x05,0xf2, -0x05,0xf3,0x05,0xee,0x05,0xfa,0x05,0xfb,0x05,0xd7,0x05,0xd8,0x05,0xda,0x05,0xb2,0x05,0xc5,0x05,0xb3,0x05,0xdf,0x05,0xeb,0x06,0x01,0x05,0xdd,0x05,0xc9,0x05,0xf8,0x05,0xf7,0x05,0xcf,0x05,0xd2,0x05,0xd4,0x05,0xd3,0x05,0xd1,0x05,0xec,0x05,0xfd,0x05,0xd9,0x05,0xc8,0x05,0xd6,0x05,0xfc,0x05,0xdb,0x05,0xdc,0x05,0xde,0x05,0xf5, -0x06,0x00,0x05,0xf9,0x05,0xd0,0x05,0xc6,0x05,0xed,0x05,0x2e,0x05,0x08,0x05,0x3b,0x05,0x15,0x05,0x34,0x05,0x0e,0x05,0x35,0x05,0x0f,0x05,0x31,0x05,0x0b,0x05,0x32,0x05,0x0c,0x05,0x2d,0x04,0xfc,0x04,0xf6,0x05,0x07,0x05,0x2c,0x04,0xfa,0x04,0xf4,0x05,0x06,0x05,0x3a,0x05,0x55,0x05,0x4f,0x05,0x14,0x05,0x39,0x05,0x53,0x05,0x4d, -0x05,0x12,0x05,0x3e,0x05,0x61,0x05,0x4e,0x04,0xf7,0x05,0x5e,0x04,0xfd,0x05,0x54,0x05,0x18,0x05,0x3d,0x05,0x60,0x05,0x4c,0x04,0xf5,0x05,0x5d,0x04,0xfb,0x05,0x52,0x05,0x17,0x05,0x2b,0x05,0x1a,0x05,0x40,0x04,0xf9,0x04,0xf3,0x05,0x43,0x05,0x1d,0x05,0x05,0x05,0x38,0x05,0x1b,0x05,0x41,0x05,0x51,0x05,0x4b,0x05,0x44,0x05,0x1e, -0x05,0x11,0x05,0x3c,0x05,0x1c,0x05,0x42,0x05,0x5f,0x05,0x4a,0x04,0xf8,0x05,0x5c,0x05,0x20,0x05,0x46,0x05,0x19,0x05,0x3f,0x04,0xfe,0x05,0x50,0x05,0x45,0x05,0x1f,0x05,0x16,0x05,0x28,0x05,0x02,0x05,0x29,0x05,0x03,0x04,0xe8,0x04,0xec,0x05,0x01,0x04,0xf2,0x04,0xe7,0x05,0x00,0x04,0xf1,0x04,0xe6,0x05,0x58,0x05,0x49,0x04,0xeb, -0x05,0x57,0x05,0x48,0x04,0xea,0x05,0x64,0x05,0x5b,0x04,0xef,0x05,0x63,0x05,0x5a,0x04,0xee,0x04,0xff,0x04,0xf0,0x04,0xe5,0x05,0x56,0x05,0x47,0x04,0xe9,0x05,0x62,0x05,0x59,0x04,0xed,0x05,0x22,0x05,0x21,0x05,0x23,0x05,0x24,0x05,0x27,0x05,0x26,0x05,0x25,0x05,0x2f,0x05,0x36,0x05,0x33,0x05,0x2a,0x05,0x09,0x05,0x10,0x05,0x0d, -0x05,0x04,0x05,0x30,0x05,0x37,0x05,0x0a,0x05,0x13,0x04,0xa2,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xaa,0x04,0xa9,0x04,0xa8,0x04,0xa7,0x04,0xa6,0x04,0xa5,0x04,0xa4,0x04,0xab,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xa3,0x04,0xd1,0x04,0xd5,0x04,0xdd,0x04,0xe1,0x04,0xd2,0x04,0xd6, -0x04,0xde,0x04,0xe2,0x04,0xd9,0x04,0xdb,0x04,0xd3,0x04,0xd7,0x04,0xdf,0x04,0xe3,0x04,0xd4,0x04,0xd8,0x04,0xe0,0x04,0xe4,0x04,0xda,0x04,0xdc,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc1,0x04,0xc7,0x04,0xbb,0x04,0xc0,0x04,0xc2,0x04,0xba,0x03,0x4c,0x03,0x4e,0x03,0x4b,0x03,0x4d,0x03,0x51,0x03,0x54,0x03,0xb6,0x03,0xb9,0x03,0xb4, -0x03,0xb7,0x03,0xb5,0x03,0xb8,0x00,0x0c,0x00,0x00,0x00,0x00,0x33,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x46,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x03,0xc0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x03,0xbe,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x03,0x2e,0x00,0x00,0x00,0x22,0x00,0x00, -0x00,0x22,0x00,0x00,0x03,0x6a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x03,0x3a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x03,0xc5,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x04,0x38,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x05,0xb5,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x00, -0x03,0x6b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x29,0x00,0x00,0x03,0x43,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x03,0x34,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x00,0x00,0x04,0x15,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2c,0x00,0x00,0x03,0x2a,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x00,0x00,0x03,0x57,0x00,0x00, -0x00,0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x03,0x29,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x2f,0x00,0x00,0x03,0x3d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x39,0x00,0x00,0x02,0xd4,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x03,0x2b,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x04,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00, -0x00,0x3d,0x00,0x00,0x04,0x19,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x04,0x1b,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x03,0x30,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x05,0xb4,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x43,0x00,0x00, -0x00,0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x43,0x00,0x00, -0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x50,0x00,0x00, -0x00,0x50,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x57,0x00,0x00, -0x00,0xa1,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5b,0x00,0x00,0x03,0x47,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x03,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5d,0x00,0x00,0x03,0x48,0x00,0x00, -0x00,0x5e,0x00,0x00,0x00,0x5e,0x00,0x00,0x04,0x23,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x03,0x5c,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x06,0x82,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x64,0x00,0x00, -0x00,0x64,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6a,0x00,0x00, -0x01,0x0d,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6c,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x01,0x3d,0x00,0x00, -0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x74,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x78,0x00,0x00, -0x00,0x79,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x7a,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x03,0x45,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x7c,0x00,0x00,0x05,0xbe,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7d,0x00,0x00,0x03,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7e,0x00,0x00, -0x04,0x22,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa0,0x00,0x00,0x03,0xbf,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xa1,0x00,0x00,0x03,0x2f,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa2,0x00,0x00,0x03,0xc3,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa3,0x00,0x00,0x03,0xcb,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa4,0x00,0x00,0x03,0xc4,0x00,0x00, -0x00,0xa5,0x00,0x00,0x00,0xa5,0x00,0x00,0x03,0xcd,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x05,0xbf,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa7,0x00,0x00,0x05,0xb7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa8,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa9,0x00,0x00,0x05,0xb8,0x00,0x00,0x00,0xaa,0x00,0x00, -0x00,0xaa,0x00,0x00,0x01,0xc6,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xab,0x00,0x00,0x03,0x65,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xac,0x00,0x00,0x04,0x21,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xad,0x00,0x00,0x03,0x58,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x00,0x00,0x05,0xb9,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00, -0x06,0x8a,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xb0,0x00,0x00,0x05,0xbb,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb1,0x00,0x00,0x04,0x1f,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x03,0x04,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb4,0x00,0x00,0x06,0x83,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb5,0x00,0x00,0x04,0x30,0x00,0x00, -0x00,0xb6,0x00,0x00,0x00,0xb6,0x00,0x00,0x05,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb7,0x00,0x00,0x03,0x32,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb8,0x00,0x00,0x06,0x8b,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb9,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xba,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0xbb,0x00,0x00, -0x00,0xbb,0x00,0x00,0x03,0x66,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbc,0x00,0x00,0x03,0x22,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbd,0x00,0x00,0x03,0x21,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x03,0x23,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbf,0x00,0x00,0x03,0x31,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0x00, -0x00,0x12,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x16,0x00,0x00, -0x00,0xc6,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0xcb,0x00,0x00, -0x00,0xcb,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xd1,0x00,0x00, -0x00,0x5f,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x69,0x00,0x00, -0x00,0xd7,0x00,0x00,0x00,0xd7,0x00,0x00,0x04,0x17,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xdd,0x00,0x00, -0x00,0xdd,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe2,0x00,0x00, -0x00,0xc6,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xda,0x00,0x00, -0x00,0xe8,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0xed,0x00,0x00, -0x00,0xed,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xef,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf1,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf2,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf3,0x00,0x00, -0x01,0x23,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf4,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf5,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf7,0x00,0x00,0x04,0x18,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0x39,0x00,0x00, -0x00,0xf9,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x52,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x3e,0x00,0x00,0x00,0xff,0x00,0x00, -0x00,0xff,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xd0,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0xbf,0x00,0x00,0x01,0x04,0x00,0x00,0x01,0x04,0x00,0x00, -0x00,0x15,0x00,0x00,0x01,0x05,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x01,0x06,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x00,0x00,0x00,0xd8,0x00,0x00,0x01,0x08,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x1f,0x00,0x00,0x01,0x09,0x00,0x00,0x01,0x09,0x00,0x00,0x00,0xdb,0x00,0x00, -0x01,0x0a,0x00,0x00,0x01,0x0a,0x00,0x00,0x00,0x20,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0xdc,0x00,0x00,0x01,0x0c,0x00,0x00,0x01,0x0c,0x00,0x00,0x00,0x1d,0x00,0x00,0x01,0x0d,0x00,0x00,0x01,0x0d,0x00,0x00,0x00,0xd9,0x00,0x00,0x01,0x0e,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x23,0x00,0x00,0x01,0x0f,0x00,0x00, -0x01,0x0f,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x24,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x00,0xe0,0x00,0x00,0x01,0x12,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x34,0x00,0x00,0x01,0x13,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0xf0,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x14,0x00,0x00, -0x00,0x27,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0x15,0x00,0x00,0x00,0xe3,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x16,0x00,0x00,0x00,0x30,0x00,0x00,0x01,0x17,0x00,0x00,0x01,0x17,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x18,0x00,0x00,0x00,0x35,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x19,0x00,0x00,0x00,0xf1,0x00,0x00, -0x01,0x1a,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x01,0x1b,0x00,0x00,0x01,0x1b,0x00,0x00,0x00,0xe4,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x1d,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x1e,0x00,0x00,0x00,0x3b,0x00,0x00,0x01,0x1f,0x00,0x00, -0x01,0x1f,0x00,0x00,0x00,0xf7,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x3f,0x00,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xfb,0x00,0x00,0x01,0x22,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x3e,0x00,0x00,0x01,0x23,0x00,0x00,0x01,0x23,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x24,0x00,0x00, -0x00,0x42,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0x41,0x00,0x00,0x01,0x27,0x00,0x00,0x01,0x27,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x28,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x4e,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x0c,0x00,0x00, -0x01,0x2a,0x00,0x00,0x01,0x2a,0x00,0x00,0x00,0x4c,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x0a,0x00,0x00,0x01,0x2c,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0x45,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x2e,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x4d,0x00,0x00,0x01,0x2f,0x00,0x00, -0x01,0x2f,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x50,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x0f,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x36,0x00,0x00, -0x00,0x52,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x39,0x00,0x00,0x01,0x39,0x00,0x00,0x00,0x54,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x3b,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0x56,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x17,0x00,0x00, -0x01,0x3d,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x55,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x57,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x41,0x00,0x00,0x00,0x58,0x00,0x00,0x01,0x42,0x00,0x00, -0x01,0x42,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x43,0x00,0x00,0x01,0x43,0x00,0x00,0x00,0x5b,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x45,0x00,0x00,0x00,0x5d,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x1f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x47,0x00,0x00, -0x00,0x5c,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0x5e,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x4c,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x74,0x00,0x00, -0x01,0x4d,0x00,0x00,0x01,0x4d,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x62,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x50,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x52,0x00,0x00, -0x01,0x52,0x00,0x00,0x00,0x79,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x7e,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x56,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0x57,0x00,0x00, -0x01,0x43,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0x58,0x00,0x00,0x00,0x7f,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x42,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0x5a,0x00,0x00,0x00,0x82,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x5c,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0x85,0x00,0x00, -0x01,0x5d,0x00,0x00,0x01,0x5d,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x5e,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x84,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x60,0x00,0x00,0x01,0x60,0x00,0x00,0x00,0x83,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x62,0x00,0x00, -0x01,0x62,0x00,0x00,0x00,0x8c,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x64,0x00,0x00,0x00,0x8b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x66,0x00,0x00,0x00,0x8a,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x67,0x00,0x00, -0x01,0x4d,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0xa0,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x6a,0x00,0x00,0x01,0x6a,0x00,0x00,0x00,0x9d,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x00,0x00,0x00,0x90,0x00,0x00, -0x01,0x6d,0x00,0x00,0x01,0x6d,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x6e,0x00,0x00,0x01,0x6e,0x00,0x00,0x00,0x9f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x70,0x00,0x00,0x01,0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x72,0x00,0x00, -0x01,0x72,0x00,0x00,0x00,0x9e,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x74,0x00,0x00,0x01,0x74,0x00,0x00,0x00,0xa4,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x76,0x00,0x00,0x01,0x76,0x00,0x00,0x00,0xaa,0x00,0x00,0x01,0x77,0x00,0x00,0x01,0x77,0x00,0x00, -0x01,0x72,0x00,0x00,0x01,0x78,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0xab,0x00,0x00,0x01,0x79,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0xb2,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0xb4,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00, -0x01,0x7d,0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0xb3,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x8f,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x88,0x00,0x00,0x01,0x90,0x00,0x00,0x01,0x90,0x00,0x00,0x00,0x36,0x00,0x00,0x01,0x92,0x00,0x00, -0x01,0x92,0x00,0x00,0x03,0xc8,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0xa0,0x00,0x00,0x01,0xa0,0x00,0x00,0x00,0x6d,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0xaf,0x00,0x00,0x01,0xaf,0x00,0x00,0x00,0x96,0x00,0x00,0x01,0xb0,0x00,0x00,0x01,0xb0,0x00,0x00, -0x01,0x5e,0x00,0x00,0x01,0xcd,0x00,0x00,0x01,0xcd,0x00,0x00,0x00,0x09,0x00,0x00,0x01,0xce,0x00,0x00,0x01,0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0x54,0x00,0x00, -0x01,0xd6,0x00,0x00,0x01,0xd6,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0xe6,0x00,0x00,0x01,0xe6,0x00,0x00,0x00,0x3c,0x00,0x00,0x01,0xe7,0x00,0x00, -0x01,0xe7,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0xea,0x00,0x00,0x01,0xea,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0xf4,0x00,0x00,0x01,0xf4,0x00,0x00,0x00,0x3a,0x00,0x00,0x01,0xf5,0x00,0x00,0x01,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0xfc,0x00,0x00,0x01,0xfc,0x00,0x00, -0x00,0x19,0x00,0x00,0x01,0xfd,0x00,0x00,0x01,0xfd,0x00,0x00,0x00,0xd5,0x00,0x00,0x01,0xfe,0x00,0x00,0x01,0xfe,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0x3a,0x00,0x00,0x02,0x18,0x00,0x00,0x02,0x18,0x00,0x00,0x00,0x86,0x00,0x00,0x02,0x19,0x00,0x00,0x02,0x19,0x00,0x00,0x01,0x49,0x00,0x00, -0x02,0x1a,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,0x8d,0x00,0x00,0x02,0x1b,0x00,0x00,0x02,0x1b,0x00,0x00,0x01,0x50,0x00,0x00,0x02,0x32,0x00,0x00,0x02,0x32,0x00,0x00,0x00,0xaf,0x00,0x00,0x02,0x33,0x00,0x00,0x02,0x33,0x00,0x00,0x01,0x77,0x00,0x00,0x02,0x37,0x00,0x00,0x02,0x37,0x00,0x00,0x01,0x0e,0x00,0x00,0x02,0x59,0x00,0x00, -0x02,0x59,0x00,0x00,0x00,0xf3,0x00,0x00,0x02,0xb9,0x00,0x00,0x02,0xb9,0x00,0x00,0x06,0x67,0x00,0x00,0x02,0xba,0x00,0x00,0x02,0xba,0x00,0x00,0x06,0x65,0x00,0x00,0x02,0xbc,0x00,0x00,0x02,0xbc,0x00,0x00,0x06,0x64,0x00,0x00,0x02,0xc6,0x00,0x00,0x02,0xc7,0x00,0x00,0x06,0x85,0x00,0x00,0x02,0xc9,0x00,0x00,0x02,0xc9,0x00,0x00, -0x06,0x66,0x00,0x00,0x02,0xd8,0x00,0x00,0x02,0xd8,0x00,0x00,0x06,0x87,0x00,0x00,0x02,0xd9,0x00,0x00,0x02,0xd9,0x00,0x00,0x06,0x81,0x00,0x00,0x02,0xda,0x00,0x00,0x02,0xda,0x00,0x00,0x06,0x88,0x00,0x00,0x02,0xdb,0x00,0x00,0x02,0xdb,0x00,0x00,0x06,0x8c,0x00,0x00,0x02,0xdc,0x00,0x00,0x02,0xdc,0x00,0x00,0x06,0x89,0x00,0x00, -0x02,0xdd,0x00,0x00,0x02,0xdd,0x00,0x00,0x06,0x84,0x00,0x00,0x02,0xf3,0x00,0x00,0x02,0xf3,0x00,0x00,0x06,0x03,0x00,0x00,0x02,0xf7,0x00,0x00,0x02,0xf7,0x00,0x00,0x06,0x04,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x06,0x6a,0x00,0x00,0x03,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x06,0x6e,0x00,0x00,0x03,0x03,0x00,0x00, -0x03,0x04,0x00,0x00,0x06,0x72,0x00,0x00,0x03,0x06,0x00,0x00,0x03,0x06,0x00,0x00,0x06,0x70,0x00,0x00,0x03,0x07,0x00,0x00,0x03,0x07,0x00,0x00,0x06,0x69,0x00,0x00,0x03,0x08,0x00,0x00,0x03,0x08,0x00,0x00,0x06,0x68,0x00,0x00,0x03,0x09,0x00,0x00,0x03,0x09,0x00,0x00,0x06,0x74,0x00,0x00,0x03,0x0a,0x00,0x00,0x03,0x0a,0x00,0x00, -0x06,0x71,0x00,0x00,0x03,0x0b,0x00,0x00,0x03,0x0b,0x00,0x00,0x06,0x6c,0x00,0x00,0x03,0x0c,0x00,0x00,0x03,0x0c,0x00,0x00,0x06,0x6f,0x00,0x00,0x03,0x0f,0x00,0x00,0x03,0x0f,0x00,0x00,0x06,0x75,0x00,0x00,0x03,0x12,0x00,0x00,0x03,0x12,0x00,0x00,0x06,0x76,0x00,0x00,0x03,0x1b,0x00,0x00,0x03,0x1b,0x00,0x00,0x06,0x77,0x00,0x00, -0x03,0x23,0x00,0x00,0x03,0x23,0x00,0x00,0x06,0x78,0x00,0x00,0x03,0x25,0x00,0x00,0x03,0x28,0x00,0x00,0x06,0x79,0x00,0x00,0x03,0x36,0x00,0x00,0x03,0x38,0x00,0x00,0x06,0x7d,0x00,0x00,0x03,0x74,0x00,0x00,0x03,0x75,0x00,0x00,0x06,0x62,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0xbb,0x00,0x00,0x03,0x84,0x00,0x00, -0x03,0x84,0x00,0x00,0x06,0xb0,0x00,0x00,0x03,0x85,0x00,0x00,0x03,0x85,0x00,0x00,0x06,0xb2,0x00,0x00,0x03,0x86,0x00,0x00,0x03,0x86,0x00,0x00,0x02,0x69,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0xba,0x00,0x00,0x03,0x88,0x00,0x00,0x03,0x8a,0x00,0x00,0x02,0x6a,0x00,0x00,0x03,0x8c,0x00,0x00,0x03,0x8c,0x00,0x00, -0x02,0x6d,0x00,0x00,0x03,0x8e,0x00,0x00,0x03,0x8f,0x00,0x00,0x02,0x6e,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0x90,0x00,0x00,0x02,0x90,0x00,0x00,0x03,0x91,0x00,0x00,0x03,0xa1,0x00,0x00,0x02,0x51,0x00,0x00,0x03,0xa3,0x00,0x00,0x03,0xa9,0x00,0x00,0x02,0x62,0x00,0x00,0x03,0xaa,0x00,0x00,0x03,0xab,0x00,0x00,0x02,0x70,0x00,0x00, -0x03,0xac,0x00,0x00,0x03,0xae,0x00,0x00,0x02,0x96,0x00,0x00,0x03,0xaf,0x00,0x00,0x03,0xaf,0x00,0x00,0x02,0x8e,0x00,0x00,0x03,0xb0,0x00,0x00,0x03,0xb0,0x00,0x00,0x02,0x93,0x00,0x00,0x03,0xb1,0x00,0x00,0x03,0xc9,0x00,0x00,0x02,0x75,0x00,0x00,0x03,0xca,0x00,0x00,0x03,0xca,0x00,0x00,0x02,0x8f,0x00,0x00,0x03,0xcb,0x00,0x00, -0x03,0xcb,0x00,0x00,0x02,0x92,0x00,0x00,0x03,0xcc,0x00,0x00,0x03,0xcc,0x00,0x00,0x02,0x94,0x00,0x00,0x03,0xcd,0x00,0x00,0x03,0xcd,0x00,0x00,0x02,0x91,0x00,0x00,0x03,0xce,0x00,0x00,0x03,0xce,0x00,0x00,0x02,0x95,0x00,0x00,0x03,0xcf,0x00,0x00,0x03,0xcf,0x00,0x00,0x02,0x72,0x00,0x00,0x03,0xd5,0x00,0x00,0x03,0xd6,0x00,0x00, -0x02,0x9a,0x00,0x00,0x03,0xd7,0x00,0x00,0x03,0xd7,0x00,0x00,0x02,0x99,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x01,0xd0,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x01,0xf6,0x00,0x00,0x04,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x01,0xcc,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x01,0xee,0x00,0x00, -0x04,0x05,0x00,0x00,0x04,0x05,0x00,0x00,0x01,0xed,0x00,0x00,0x04,0x06,0x00,0x00,0x04,0x08,0x00,0x00,0x01,0xf0,0x00,0x00,0x04,0x09,0x00,0x00,0x04,0x0a,0x00,0x00,0x01,0xeb,0x00,0x00,0x04,0x0b,0x00,0x00,0x04,0x0b,0x00,0x00,0x01,0xf3,0x00,0x00,0x04,0x0c,0x00,0x00,0x04,0x0c,0x00,0x00,0x01,0xd6,0x00,0x00,0x04,0x0e,0x00,0x00, -0x04,0x0e,0x00,0x00,0x01,0xe0,0x00,0x00,0x04,0x0f,0x00,0x00,0x04,0x0f,0x00,0x00,0x01,0xe7,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x13,0x00,0x00,0x01,0xc8,0x00,0x00,0x04,0x14,0x00,0x00,0x04,0x15,0x00,0x00,0x01,0xce,0x00,0x00,0x04,0x16,0x00,0x00,0x04,0x1a,0x00,0x00,0x01,0xd1,0x00,0x00,0x04,0x1b,0x00,0x00,0x04,0x23,0x00,0x00, -0x01,0xd7,0x00,0x00,0x04,0x24,0x00,0x00,0x04,0x25,0x00,0x00,0x01,0xe1,0x00,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x00,0x00,0x01,0xe4,0x00,0x00,0x04,0x27,0x00,0x00,0x04,0x27,0x00,0x00,0x01,0xe3,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x29,0x00,0x00,0x01,0xe5,0x00,0x00,0x04,0x2a,0x00,0x00,0x04,0x2b,0x00,0x00,0x01,0xe9,0x00,0x00, -0x04,0x2c,0x00,0x00,0x04,0x2c,0x00,0x00,0x01,0xe8,0x00,0x00,0x04,0x2d,0x00,0x00,0x04,0x2d,0x00,0x00,0x01,0xef,0x00,0x00,0x04,0x2e,0x00,0x00,0x04,0x2f,0x00,0x00,0x01,0xf4,0x00,0x00,0x04,0x30,0x00,0x00,0x04,0x33,0x00,0x00,0x02,0x0c,0x00,0x00,0x04,0x34,0x00,0x00,0x04,0x35,0x00,0x00,0x02,0x12,0x00,0x00,0x04,0x36,0x00,0x00, -0x04,0x3a,0x00,0x00,0x02,0x15,0x00,0x00,0x04,0x3b,0x00,0x00,0x04,0x43,0x00,0x00,0x02,0x1b,0x00,0x00,0x04,0x44,0x00,0x00,0x04,0x45,0x00,0x00,0x02,0x25,0x00,0x00,0x04,0x46,0x00,0x00,0x04,0x46,0x00,0x00,0x02,0x28,0x00,0x00,0x04,0x47,0x00,0x00,0x04,0x47,0x00,0x00,0x02,0x27,0x00,0x00,0x04,0x48,0x00,0x00,0x04,0x49,0x00,0x00, -0x02,0x29,0x00,0x00,0x04,0x4a,0x00,0x00,0x04,0x4b,0x00,0x00,0x02,0x2d,0x00,0x00,0x04,0x4c,0x00,0x00,0x04,0x4c,0x00,0x00,0x02,0x2c,0x00,0x00,0x04,0x4d,0x00,0x00,0x04,0x4d,0x00,0x00,0x02,0x33,0x00,0x00,0x04,0x4e,0x00,0x00,0x04,0x4f,0x00,0x00,0x02,0x38,0x00,0x00,0x04,0x51,0x00,0x00,0x04,0x51,0x00,0x00,0x02,0x14,0x00,0x00, -0x04,0x52,0x00,0x00,0x04,0x52,0x00,0x00,0x02,0x3a,0x00,0x00,0x04,0x53,0x00,0x00,0x04,0x53,0x00,0x00,0x02,0x10,0x00,0x00,0x04,0x54,0x00,0x00,0x04,0x54,0x00,0x00,0x02,0x32,0x00,0x00,0x04,0x55,0x00,0x00,0x04,0x55,0x00,0x00,0x02,0x31,0x00,0x00,0x04,0x56,0x00,0x00,0x04,0x58,0x00,0x00,0x02,0x34,0x00,0x00,0x04,0x59,0x00,0x00, -0x04,0x5a,0x00,0x00,0x02,0x2f,0x00,0x00,0x04,0x5b,0x00,0x00,0x04,0x5b,0x00,0x00,0x02,0x37,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x5c,0x00,0x00,0x02,0x1a,0x00,0x00,0x04,0x5e,0x00,0x00,0x04,0x5e,0x00,0x00,0x02,0x24,0x00,0x00,0x04,0x5f,0x00,0x00,0x04,0x5f,0x00,0x00,0x02,0x2b,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0x90,0x00,0x00, -0x01,0xcd,0x00,0x00,0x04,0x91,0x00,0x00,0x04,0x91,0x00,0x00,0x02,0x11,0x00,0x00,0x04,0x92,0x00,0x00,0x04,0x92,0x00,0x00,0x01,0xf7,0x00,0x00,0x04,0x93,0x00,0x00,0x04,0x93,0x00,0x00,0x02,0x3b,0x00,0x00,0x04,0x9a,0x00,0x00,0x04,0x9a,0x00,0x00,0x01,0xf8,0x00,0x00,0x04,0x9b,0x00,0x00,0x04,0x9b,0x00,0x00,0x02,0x3c,0x00,0x00, -0x04,0xa2,0x00,0x00,0x04,0xa2,0x00,0x00,0x01,0xf9,0x00,0x00,0x04,0xa3,0x00,0x00,0x04,0xa3,0x00,0x00,0x02,0x3d,0x00,0x00,0x04,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x01,0xfa,0x00,0x00,0x04,0xaf,0x00,0x00,0x04,0xaf,0x00,0x00,0x02,0x3e,0x00,0x00,0x04,0xb0,0x00,0x00,0x04,0xb0,0x00,0x00,0x01,0xfb,0x00,0x00,0x04,0xb1,0x00,0x00, -0x04,0xb1,0x00,0x00,0x02,0x3f,0x00,0x00,0x04,0xb6,0x00,0x00,0x04,0xb6,0x00,0x00,0x01,0xfc,0x00,0x00,0x04,0xb7,0x00,0x00,0x04,0xb7,0x00,0x00,0x02,0x40,0x00,0x00,0x04,0xba,0x00,0x00,0x04,0xba,0x00,0x00,0x01,0xfd,0x00,0x00,0x04,0xbb,0x00,0x00,0x04,0xbb,0x00,0x00,0x02,0x41,0x00,0x00,0x04,0xd8,0x00,0x00,0x04,0xd8,0x00,0x00, -0x01,0xfe,0x00,0x00,0x04,0xd9,0x00,0x00,0x04,0xd9,0x00,0x00,0x02,0x42,0x00,0x00,0x04,0xdc,0x00,0x00,0x04,0xdc,0x00,0x00,0x01,0xff,0x00,0x00,0x04,0xdd,0x00,0x00,0x04,0xdd,0x00,0x00,0x02,0x43,0x00,0x00,0x04,0xde,0x00,0x00,0x04,0xde,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0xdf,0x00,0x00,0x04,0xdf,0x00,0x00,0x02,0x44,0x00,0x00, -0x04,0xe4,0x00,0x00,0x04,0xe4,0x00,0x00,0x02,0x01,0x00,0x00,0x04,0xe5,0x00,0x00,0x04,0xe5,0x00,0x00,0x02,0x45,0x00,0x00,0x04,0xe6,0x00,0x00,0x04,0xe6,0x00,0x00,0x02,0x02,0x00,0x00,0x04,0xe7,0x00,0x00,0x04,0xe7,0x00,0x00,0x02,0x46,0x00,0x00,0x04,0xe8,0x00,0x00,0x04,0xe8,0x00,0x00,0x02,0x03,0x00,0x00,0x04,0xe9,0x00,0x00, -0x04,0xe9,0x00,0x00,0x02,0x47,0x00,0x00,0x04,0xf4,0x00,0x00,0x04,0xf4,0x00,0x00,0x02,0x04,0x00,0x00,0x04,0xf5,0x00,0x00,0x04,0xf5,0x00,0x00,0x02,0x48,0x00,0x00,0x0a,0xea,0x00,0x00,0x0a,0xea,0x00,0x00,0x03,0x28,0x00,0x00,0x1e,0x80,0x00,0x00,0x1e,0x80,0x00,0x00,0x00,0xa6,0x00,0x00,0x1e,0x81,0x00,0x00,0x1e,0x81,0x00,0x00, -0x01,0x6e,0x00,0x00,0x1e,0x82,0x00,0x00,0x1e,0x82,0x00,0x00,0x00,0xa3,0x00,0x00,0x1e,0x83,0x00,0x00,0x1e,0x83,0x00,0x00,0x01,0x6b,0x00,0x00,0x1e,0x84,0x00,0x00,0x1e,0x84,0x00,0x00,0x00,0xa5,0x00,0x00,0x1e,0x85,0x00,0x00,0x1e,0x85,0x00,0x00,0x01,0x6d,0x00,0x00,0x1e,0x9e,0x00,0x00,0x1e,0x9e,0x00,0x00,0x00,0x87,0x00,0x00, -0x1e,0xa0,0x00,0x00,0x1e,0xa0,0x00,0x00,0x00,0x11,0x00,0x00,0x1e,0xa1,0x00,0x00,0x1e,0xa1,0x00,0x00,0x00,0xcd,0x00,0x00,0x1e,0xa2,0x00,0x00,0x1e,0xa2,0x00,0x00,0x00,0x13,0x00,0x00,0x1e,0xa3,0x00,0x00,0x1e,0xa3,0x00,0x00,0x00,0xcf,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1e,0xa4,0x00,0x00,0x00,0x0b,0x00,0x00,0x1e,0xa5,0x00,0x00, -0x1e,0xa5,0x00,0x00,0x00,0xc7,0x00,0x00,0x1e,0xa6,0x00,0x00,0x1e,0xa6,0x00,0x00,0x00,0x0d,0x00,0x00,0x1e,0xa7,0x00,0x00,0x1e,0xa7,0x00,0x00,0x00,0xc9,0x00,0x00,0x1e,0xa8,0x00,0x00,0x1e,0xa8,0x00,0x00,0x00,0x0e,0x00,0x00,0x1e,0xa9,0x00,0x00,0x1e,0xa9,0x00,0x00,0x00,0xca,0x00,0x00,0x1e,0xaa,0x00,0x00,0x1e,0xaa,0x00,0x00, -0x00,0x0f,0x00,0x00,0x1e,0xab,0x00,0x00,0x1e,0xab,0x00,0x00,0x00,0xcb,0x00,0x00,0x1e,0xac,0x00,0x00,0x1e,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x1e,0xad,0x00,0x00,0x1e,0xad,0x00,0x00,0x00,0xc8,0x00,0x00,0x1e,0xae,0x00,0x00,0x1e,0xae,0x00,0x00,0x00,0x04,0x00,0x00,0x1e,0xaf,0x00,0x00,0x1e,0xaf,0x00,0x00,0x00,0xc0,0x00,0x00, -0x1e,0xb0,0x00,0x00,0x1e,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x1e,0xb1,0x00,0x00,0x1e,0xb1,0x00,0x00,0x00,0xc2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x00,0x07,0x00,0x00,0x1e,0xb3,0x00,0x00,0x1e,0xb3,0x00,0x00,0x00,0xc3,0x00,0x00,0x1e,0xb4,0x00,0x00,0x1e,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x1e,0xb5,0x00,0x00, -0x1e,0xb5,0x00,0x00,0x00,0xc4,0x00,0x00,0x1e,0xb6,0x00,0x00,0x1e,0xb6,0x00,0x00,0x00,0x05,0x00,0x00,0x1e,0xb7,0x00,0x00,0x1e,0xb7,0x00,0x00,0x00,0xc1,0x00,0x00,0x1e,0xb8,0x00,0x00,0x1e,0xb8,0x00,0x00,0x00,0x31,0x00,0x00,0x1e,0xb9,0x00,0x00,0x1e,0xb9,0x00,0x00,0x00,0xed,0x00,0x00,0x1e,0xba,0x00,0x00,0x1e,0xba,0x00,0x00, -0x00,0x33,0x00,0x00,0x1e,0xbb,0x00,0x00,0x1e,0xbb,0x00,0x00,0x00,0xef,0x00,0x00,0x1e,0xbc,0x00,0x00,0x1e,0xbc,0x00,0x00,0x00,0x37,0x00,0x00,0x1e,0xbd,0x00,0x00,0x1e,0xbd,0x00,0x00,0x00,0xf2,0x00,0x00,0x1e,0xbe,0x00,0x00,0x1e,0xbe,0x00,0x00,0x00,0x2a,0x00,0x00,0x1e,0xbf,0x00,0x00,0x1e,0xbf,0x00,0x00,0x00,0xe6,0x00,0x00, -0x1e,0xc0,0x00,0x00,0x1e,0xc0,0x00,0x00,0x00,0x2c,0x00,0x00,0x1e,0xc1,0x00,0x00,0x1e,0xc1,0x00,0x00,0x00,0xe8,0x00,0x00,0x1e,0xc2,0x00,0x00,0x1e,0xc2,0x00,0x00,0x00,0x2d,0x00,0x00,0x1e,0xc3,0x00,0x00,0x1e,0xc3,0x00,0x00,0x00,0xe9,0x00,0x00,0x1e,0xc4,0x00,0x00,0x1e,0xc4,0x00,0x00,0x00,0x2e,0x00,0x00,0x1e,0xc5,0x00,0x00, -0x1e,0xc5,0x00,0x00,0x00,0xea,0x00,0x00,0x1e,0xc6,0x00,0x00,0x1e,0xc6,0x00,0x00,0x00,0x2b,0x00,0x00,0x1e,0xc7,0x00,0x00,0x1e,0xc7,0x00,0x00,0x00,0xe7,0x00,0x00,0x1e,0xc8,0x00,0x00,0x1e,0xc8,0x00,0x00,0x00,0x4b,0x00,0x00,0x1e,0xc9,0x00,0x00,0x1e,0xc9,0x00,0x00,0x01,0x09,0x00,0x00,0x1e,0xca,0x00,0x00,0x1e,0xca,0x00,0x00, -0x00,0x49,0x00,0x00,0x1e,0xcb,0x00,0x00,0x1e,0xcb,0x00,0x00,0x01,0x07,0x00,0x00,0x1e,0xcc,0x00,0x00,0x1e,0xcc,0x00,0x00,0x00,0x6a,0x00,0x00,0x1e,0xcd,0x00,0x00,0x1e,0xcd,0x00,0x00,0x01,0x2d,0x00,0x00,0x1e,0xce,0x00,0x00,0x1e,0xce,0x00,0x00,0x00,0x6c,0x00,0x00,0x1e,0xcf,0x00,0x00,0x1e,0xcf,0x00,0x00,0x01,0x2f,0x00,0x00, -0x1e,0xd0,0x00,0x00,0x1e,0xd0,0x00,0x00,0x00,0x64,0x00,0x00,0x1e,0xd1,0x00,0x00,0x1e,0xd1,0x00,0x00,0x01,0x27,0x00,0x00,0x1e,0xd2,0x00,0x00,0x1e,0xd2,0x00,0x00,0x00,0x66,0x00,0x00,0x1e,0xd3,0x00,0x00,0x1e,0xd3,0x00,0x00,0x01,0x29,0x00,0x00,0x1e,0xd4,0x00,0x00,0x1e,0xd4,0x00,0x00,0x00,0x67,0x00,0x00,0x1e,0xd5,0x00,0x00, -0x1e,0xd5,0x00,0x00,0x01,0x2a,0x00,0x00,0x1e,0xd6,0x00,0x00,0x1e,0xd6,0x00,0x00,0x00,0x68,0x00,0x00,0x1e,0xd7,0x00,0x00,0x1e,0xd7,0x00,0x00,0x01,0x2b,0x00,0x00,0x1e,0xd8,0x00,0x00,0x1e,0xd8,0x00,0x00,0x00,0x65,0x00,0x00,0x1e,0xd9,0x00,0x00,0x1e,0xd9,0x00,0x00,0x01,0x28,0x00,0x00,0x1e,0xda,0x00,0x00,0x1e,0xda,0x00,0x00, -0x00,0x6e,0x00,0x00,0x1e,0xdb,0x00,0x00,0x1e,0xdb,0x00,0x00,0x01,0x31,0x00,0x00,0x1e,0xdc,0x00,0x00,0x1e,0xdc,0x00,0x00,0x00,0x70,0x00,0x00,0x1e,0xdd,0x00,0x00,0x1e,0xdd,0x00,0x00,0x01,0x33,0x00,0x00,0x1e,0xde,0x00,0x00,0x1e,0xde,0x00,0x00,0x00,0x71,0x00,0x00,0x1e,0xdf,0x00,0x00,0x1e,0xdf,0x00,0x00,0x01,0x34,0x00,0x00, -0x1e,0xe0,0x00,0x00,0x1e,0xe0,0x00,0x00,0x00,0x72,0x00,0x00,0x1e,0xe1,0x00,0x00,0x1e,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x1e,0xe2,0x00,0x00,0x1e,0xe2,0x00,0x00,0x00,0x6f,0x00,0x00,0x1e,0xe3,0x00,0x00,0x1e,0xe3,0x00,0x00,0x01,0x32,0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xe4,0x00,0x00,0x00,0x93,0x00,0x00,0x1e,0xe5,0x00,0x00, -0x1e,0xe5,0x00,0x00,0x01,0x5b,0x00,0x00,0x1e,0xe6,0x00,0x00,0x1e,0xe6,0x00,0x00,0x00,0x95,0x00,0x00,0x1e,0xe7,0x00,0x00,0x1e,0xe7,0x00,0x00,0x01,0x5d,0x00,0x00,0x1e,0xe8,0x00,0x00,0x1e,0xe8,0x00,0x00,0x00,0x97,0x00,0x00,0x1e,0xe9,0x00,0x00,0x1e,0xe9,0x00,0x00,0x01,0x5f,0x00,0x00,0x1e,0xea,0x00,0x00,0x1e,0xea,0x00,0x00, -0x00,0x99,0x00,0x00,0x1e,0xeb,0x00,0x00,0x1e,0xeb,0x00,0x00,0x01,0x61,0x00,0x00,0x1e,0xec,0x00,0x00,0x1e,0xec,0x00,0x00,0x00,0x9a,0x00,0x00,0x1e,0xed,0x00,0x00,0x1e,0xed,0x00,0x00,0x01,0x62,0x00,0x00,0x1e,0xee,0x00,0x00,0x1e,0xee,0x00,0x00,0x00,0x9b,0x00,0x00,0x1e,0xef,0x00,0x00,0x1e,0xef,0x00,0x00,0x01,0x63,0x00,0x00, -0x1e,0xf0,0x00,0x00,0x1e,0xf0,0x00,0x00,0x00,0x98,0x00,0x00,0x1e,0xf1,0x00,0x00,0x1e,0xf1,0x00,0x00,0x01,0x60,0x00,0x00,0x1e,0xf2,0x00,0x00,0x1e,0xf2,0x00,0x00,0x00,0xad,0x00,0x00,0x1e,0xf3,0x00,0x00,0x1e,0xf3,0x00,0x00,0x01,0x75,0x00,0x00,0x1e,0xf4,0x00,0x00,0x1e,0xf4,0x00,0x00,0x00,0xac,0x00,0x00,0x1e,0xf5,0x00,0x00, -0x1e,0xf5,0x00,0x00,0x01,0x74,0x00,0x00,0x1e,0xf6,0x00,0x00,0x1e,0xf6,0x00,0x00,0x00,0xae,0x00,0x00,0x1e,0xf7,0x00,0x00,0x1e,0xf7,0x00,0x00,0x01,0x76,0x00,0x00,0x1e,0xf8,0x00,0x00,0x1e,0xf8,0x00,0x00,0x00,0xb0,0x00,0x00,0x1e,0xf9,0x00,0x00,0x1e,0xf9,0x00,0x00,0x01,0x78,0x00,0x00,0x20,0x01,0x00,0x00,0x20,0x01,0x00,0x00, -0x03,0xbc,0x00,0x00,0x20,0x0b,0x00,0x00,0x20,0x0b,0x00,0x00,0x03,0xbd,0x00,0x00,0x20,0x10,0x00,0x00,0x20,0x10,0x00,0x00,0x03,0x5b,0x00,0x00,0x20,0x13,0x00,0x00,0x20,0x14,0x00,0x00,0x03,0x59,0x00,0x00,0x20,0x16,0x00,0x00,0x20,0x16,0x00,0x00,0x03,0x37,0x00,0x00,0x20,0x18,0x00,0x00,0x20,0x19,0x00,0x00,0x03,0x61,0x00,0x00, -0x20,0x1a,0x00,0x00,0x20,0x1a,0x00,0x00,0x03,0x5d,0x00,0x00,0x20,0x1b,0x00,0x00,0x20,0x1b,0x00,0x00,0x03,0x63,0x00,0x00,0x20,0x1c,0x00,0x00,0x20,0x1d,0x00,0x00,0x03,0x5f,0x00,0x00,0x20,0x1e,0x00,0x00,0x20,0x1e,0x00,0x00,0x03,0x5e,0x00,0x00,0x20,0x1f,0x00,0x00,0x20,0x1f,0x00,0x00,0x03,0x64,0x00,0x00,0x20,0x20,0x00,0x00, -0x20,0x20,0x00,0x00,0x05,0xc0,0x00,0x00,0x20,0x21,0x00,0x00,0x20,0x21,0x00,0x00,0x05,0xc2,0x00,0x00,0x20,0x22,0x00,0x00,0x20,0x22,0x00,0x00,0x03,0x33,0x00,0x00,0x20,0x24,0x00,0x00,0x20,0x24,0x00,0x00,0x03,0x3b,0x00,0x00,0x20,0x26,0x00,0x00,0x20,0x26,0x00,0x00,0x03,0x2d,0x00,0x00,0x20,0x30,0x00,0x00,0x20,0x30,0x00,0x00, -0x04,0x39,0x00,0x00,0x20,0x32,0x00,0x00,0x20,0x33,0x00,0x00,0x05,0xbc,0x00,0x00,0x20,0x34,0x00,0x00,0x20,0x34,0x00,0x00,0x03,0x69,0x00,0x00,0x20,0x39,0x00,0x00,0x20,0x3a,0x00,0x00,0x03,0x67,0x00,0x00,0x20,0x3c,0x00,0x00,0x20,0x3d,0x00,0x00,0x03,0x38,0x00,0x00,0x20,0x3e,0x00,0x00,0x20,0x3e,0x00,0x00,0x03,0x3c,0x00,0x00, -0x20,0x3f,0x00,0x00,0x20,0x3f,0x00,0x00,0x03,0x3f,0x00,0x00,0x20,0x44,0x00,0x00,0x20,0x44,0x00,0x00,0x03,0x20,0x00,0x00,0x20,0x45,0x00,0x00,0x20,0x46,0x00,0x00,0x03,0x35,0x00,0x00,0x20,0x70,0x00,0x00,0x20,0x70,0x00,0x00,0x03,0x02,0x00,0x00,0x20,0x74,0x00,0x00,0x20,0x79,0x00,0x00,0x03,0x06,0x00,0x00,0x20,0x7a,0x00,0x00, -0x20,0x7a,0x00,0x00,0x04,0x3b,0x00,0x00,0x20,0x7c,0x00,0x00,0x20,0x7c,0x00,0x00,0x03,0xe6,0x00,0x00,0x20,0x80,0x00,0x00,0x20,0x89,0x00,0x00,0x02,0xe4,0x00,0x00,0x20,0xab,0x00,0x00,0x20,0xac,0x00,0x00,0x03,0xc6,0x00,0x00,0x20,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x03,0xcc,0x00,0x00,0x20,0xb4,0x00,0x00,0x20,0xb4,0x00,0x00, -0x03,0xc9,0x00,0x00,0x20,0xbd,0x00,0x00,0x20,0xbd,0x00,0x00,0x03,0xca,0x00,0x00,0x20,0xbf,0x00,0x00,0x20,0xbf,0x00,0x00,0x03,0xc2,0x00,0x00,0x21,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x02,0xa2,0x00,0x00,0x21,0x0d,0x00,0x00,0x21,0x0d,0x00,0x00,0x02,0xa7,0x00,0x00,0x21,0x13,0x00,0x00,0x21,0x13,0x00,0x00,0x05,0xc1,0x00,0x00, -0x21,0x15,0x00,0x00,0x21,0x15,0x00,0x00,0x02,0xad,0x00,0x00,0x21,0x16,0x00,0x00,0x21,0x16,0x00,0x00,0x05,0xc3,0x00,0x00,0x21,0x19,0x00,0x00,0x21,0x1a,0x00,0x00,0x02,0xaf,0x00,0x00,0x21,0x1d,0x00,0x00,0x21,0x1d,0x00,0x00,0x02,0xb1,0x00,0x00,0x21,0x22,0x00,0x00,0x21,0x22,0x00,0x00,0x05,0xba,0x00,0x00,0x21,0x24,0x00,0x00, -0x21,0x24,0x00,0x00,0x02,0xb9,0x00,0x00,0x21,0x2e,0x00,0x00,0x21,0x2e,0x00,0x00,0x05,0xc4,0x00,0x00,0x21,0x40,0x00,0x00,0x21,0x40,0x00,0x00,0x04,0x5e,0x00,0x00,0x21,0x8a,0x00,0x00,0x21,0x8a,0x00,0x00,0x05,0xff,0x00,0x00,0x21,0x8b,0x00,0x00,0x21,0x8b,0x00,0x00,0x05,0xfe,0x00,0x00,0x21,0x90,0x00,0x00,0x21,0x90,0x00,0x00, -0x04,0x77,0x00,0x00,0x21,0x91,0x00,0x00,0x21,0x91,0x00,0x00,0x04,0x71,0x00,0x00,0x21,0x92,0x00,0x00,0x21,0x92,0x00,0x00,0x04,0x73,0x00,0x00,0x21,0x93,0x00,0x00,0x21,0x93,0x00,0x00,0x04,0x75,0x00,0x00,0x21,0x94,0x00,0x00,0x21,0x95,0x00,0x00,0x04,0x79,0x00,0x00,0x21,0x96,0x00,0x00,0x21,0x96,0x00,0x00,0x04,0x78,0x00,0x00, -0x21,0x97,0x00,0x00,0x21,0x97,0x00,0x00,0x04,0x72,0x00,0x00,0x21,0x98,0x00,0x00,0x21,0x98,0x00,0x00,0x04,0x74,0x00,0x00,0x21,0x99,0x00,0x00,0x21,0x99,0x00,0x00,0x04,0x76,0x00,0x00,0x21,0x9d,0x00,0x00,0x21,0x9d,0x00,0x00,0x04,0x7b,0x00,0x00,0x21,0x9e,0x00,0x00,0x21,0x9e,0x00,0x00,0x04,0x7d,0x00,0x00,0x21,0xa0,0x00,0x00, -0x21,0xa0,0x00,0x00,0x04,0x7e,0x00,0x00,0x21,0xa2,0x00,0x00,0x21,0xa3,0x00,0x00,0x04,0x7f,0x00,0x00,0x21,0xa5,0x00,0x00,0x21,0xa7,0x00,0x00,0x04,0x81,0x00,0x00,0x21,0xa9,0x00,0x00,0x21,0xaa,0x00,0x00,0x04,0x85,0x00,0x00,0x21,0xad,0x00,0x00,0x21,0xad,0x00,0x00,0x04,0x7c,0x00,0x00,0x21,0xbe,0x00,0x00,0x21,0xbe,0x00,0x00, -0x04,0x87,0x00,0x00,0x21,0xc9,0x00,0x00,0x21,0xc9,0x00,0x00,0x04,0x88,0x00,0x00,0x21,0xd0,0x00,0x00,0x21,0xd0,0x00,0x00,0x04,0x8c,0x00,0x00,0x21,0xd1,0x00,0x00,0x21,0xd3,0x00,0x00,0x04,0x89,0x00,0x00,0x21,0xd4,0x00,0x00,0x21,0xd4,0x00,0x00,0x04,0x8d,0x00,0x00,0x21,0xdb,0x00,0x00,0x21,0xdb,0x00,0x00,0x04,0x8e,0x00,0x00, -0x21,0xde,0x00,0x00,0x21,0xde,0x00,0x00,0x05,0xe8,0x00,0x00,0x21,0xdf,0x00,0x00,0x21,0xdf,0x00,0x00,0x05,0xe7,0x00,0x00,0x21,0xe5,0x00,0x00,0x21,0xe5,0x00,0x00,0x04,0x84,0x00,0x00,0x21,0xe7,0x00,0x00,0x21,0xe8,0x00,0x00,0x04,0x8f,0x00,0x00,0x21,0xea,0x00,0x00,0x21,0xea,0x00,0x00,0x05,0xe2,0x00,0x00,0x22,0x00,0x00,0x00, -0x22,0x00,0x00,0x00,0x04,0x65,0x00,0x00,0x22,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x03,0xd6,0x00,0x00,0x22,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x04,0x2f,0x00,0x00,0x22,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x03,0xea,0x00,0x00,0x22,0x04,0x00,0x00,0x22,0x04,0x00,0x00,0x04,0x62,0x00,0x00,0x22,0x05,0x00,0x00,0x22,0x05,0x00,0x00, -0x04,0x25,0x00,0x00,0x22,0x06,0x00,0x00,0x22,0x06,0x00,0x00,0x04,0x2b,0x00,0x00,0x22,0x07,0x00,0x00,0x22,0x07,0x00,0x00,0x03,0xeb,0x00,0x00,0x22,0x08,0x00,0x00,0x22,0x08,0x00,0x00,0x03,0xe2,0x00,0x00,0x22,0x09,0x00,0x00,0x22,0x09,0x00,0x00,0x04,0x0b,0x00,0x00,0x22,0x0a,0x00,0x00,0x22,0x0a,0x00,0x00,0x03,0xe3,0x00,0x00, -0x22,0x0b,0x00,0x00,0x22,0x0b,0x00,0x00,0x04,0x5d,0x00,0x00,0x22,0x0c,0x00,0x00,0x22,0x0c,0x00,0x00,0x04,0x0a,0x00,0x00,0x22,0x0e,0x00,0x00,0x22,0x0e,0x00,0x00,0x03,0xe5,0x00,0x00,0x22,0x0f,0x00,0x00,0x22,0x0f,0x00,0x00,0x04,0x2c,0x00,0x00,0x22,0x10,0x00,0x00,0x22,0x10,0x00,0x00,0x03,0xd8,0x00,0x00,0x22,0x11,0x00,0x00, -0x22,0x11,0x00,0x00,0x04,0x2d,0x00,0x00,0x22,0x12,0x00,0x00,0x22,0x12,0x00,0x00,0x04,0x16,0x00,0x00,0x22,0x13,0x00,0x00,0x22,0x13,0x00,0x00,0x03,0xf9,0x00,0x00,0x22,0x15,0x00,0x00,0x22,0x15,0x00,0x00,0x03,0xdd,0x00,0x00,0x22,0x18,0x00,0x00,0x22,0x18,0x00,0x00,0x04,0x4d,0x00,0x00,0x22,0x19,0x00,0x00,0x22,0x19,0x00,0x00, -0x03,0xd4,0x00,0x00,0x22,0x1a,0x00,0x00,0x22,0x1a,0x00,0x00,0x04,0x2e,0x00,0x00,0x22,0x1e,0x00,0x00,0x22,0x1e,0x00,0x00,0x04,0x24,0x00,0x00,0x22,0x23,0x00,0x00,0x22,0x23,0x00,0x00,0x03,0xdc,0x00,0x00,0x22,0x24,0x00,0x00,0x22,0x24,0x00,0x00,0x03,0xde,0x00,0x00,0x22,0x25,0x00,0x00,0x22,0x25,0x00,0x00,0x04,0x31,0x00,0x00, -0x22,0x27,0x00,0x00,0x22,0x2b,0x00,0x00,0x04,0x26,0x00,0x00,0x22,0x34,0x00,0x00,0x22,0x34,0x00,0x00,0x04,0x63,0x00,0x00,0x22,0x35,0x00,0x00,0x22,0x35,0x00,0x00,0x03,0xd1,0x00,0x00,0x22,0x36,0x00,0x00,0x22,0x36,0x00,0x00,0x04,0x40,0x00,0x00,0x22,0x37,0x00,0x00,0x22,0x37,0x00,0x00,0x04,0x3e,0x00,0x00,0x22,0x38,0x00,0x00, -0x22,0x38,0x00,0x00,0x03,0xdf,0x00,0x00,0x22,0x39,0x00,0x00,0x22,0x39,0x00,0x00,0x03,0xe9,0x00,0x00,0x22,0x3c,0x00,0x00,0x22,0x3c,0x00,0x00,0x04,0x4e,0x00,0x00,0x22,0x3e,0x00,0x00,0x22,0x3e,0x00,0x00,0x03,0xed,0x00,0x00,0x22,0x43,0x00,0x00,0x22,0x43,0x00,0x00,0x03,0xd0,0x00,0x00,0x22,0x45,0x00,0x00,0x22,0x45,0x00,0x00, -0x03,0xd7,0x00,0x00,0x22,0x47,0x00,0x00,0x22,0x47,0x00,0x00,0x04,0x04,0x00,0x00,0x22,0x48,0x00,0x00,0x22,0x48,0x00,0x00,0x04,0x20,0x00,0x00,0x22,0x49,0x00,0x00,0x22,0x49,0x00,0x00,0x04,0x09,0x00,0x00,0x22,0x4b,0x00,0x00,0x22,0x4b,0x00,0x00,0x04,0x64,0x00,0x00,0x22,0x4d,0x00,0x00,0x22,0x4d,0x00,0x00,0x03,0xe8,0x00,0x00, -0x22,0x54,0x00,0x00,0x22,0x54,0x00,0x00,0x03,0xd5,0x00,0x00,0x22,0x57,0x00,0x00,0x22,0x57,0x00,0x00,0x04,0x4c,0x00,0x00,0x22,0x5f,0x00,0x00,0x22,0x5f,0x00,0x00,0x04,0x3f,0x00,0x00,0x22,0x60,0x00,0x00,0x22,0x60,0x00,0x00,0x04,0x1a,0x00,0x00,0x22,0x61,0x00,0x00,0x22,0x61,0x00,0x00,0x03,0xe7,0x00,0x00,0x22,0x62,0x00,0x00, -0x22,0x62,0x00,0x00,0x04,0x0f,0x00,0x00,0x22,0x63,0x00,0x00,0x22,0x63,0x00,0x00,0x04,0x5a,0x00,0x00,0x22,0x64,0x00,0x00,0x22,0x64,0x00,0x00,0x04,0x1e,0x00,0x00,0x22,0x65,0x00,0x00,0x22,0x65,0x00,0x00,0x04,0x1d,0x00,0x00,0x22,0x6a,0x00,0x00,0x22,0x6a,0x00,0x00,0x03,0xfb,0x00,0x00,0x22,0x6b,0x00,0x00,0x22,0x6b,0x00,0x00, -0x03,0xfa,0x00,0x00,0x22,0x6c,0x00,0x00,0x22,0x6c,0x00,0x00,0x03,0xd2,0x00,0x00,0x22,0x6d,0x00,0x00,0x22,0x6d,0x00,0x00,0x04,0x0c,0x00,0x00,0x22,0x6e,0x00,0x00,0x22,0x6e,0x00,0x00,0x04,0x10,0x00,0x00,0x22,0x6f,0x00,0x00,0x22,0x6f,0x00,0x00,0x04,0x0d,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x70,0x00,0x00,0x04,0x11,0x00,0x00, -0x22,0x71,0x00,0x00,0x22,0x71,0x00,0x00,0x04,0x0e,0x00,0x00,0x22,0x72,0x00,0x00,0x22,0x72,0x00,0x00,0x03,0xf7,0x00,0x00,0x22,0x73,0x00,0x00,0x22,0x73,0x00,0x00,0x03,0xec,0x00,0x00,0x22,0x7a,0x00,0x00,0x22,0x7a,0x00,0x00,0x04,0x3c,0x00,0x00,0x22,0x7b,0x00,0x00,0x22,0x7b,0x00,0x00,0x04,0x5c,0x00,0x00,0x22,0x7c,0x00,0x00, -0x22,0x7c,0x00,0x00,0x04,0x3d,0x00,0x00,0x22,0x82,0x00,0x00,0x22,0x82,0x00,0x00,0x04,0x5b,0x00,0x00,0x22,0x83,0x00,0x00,0x22,0x83,0x00,0x00,0x04,0x5f,0x00,0x00,0x22,0x84,0x00,0x00,0x22,0x85,0x00,0x00,0x04,0x13,0x00,0x00,0x22,0x86,0x00,0x00,0x22,0x87,0x00,0x00,0x04,0x41,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0x89,0x00,0x00, -0x04,0x05,0x00,0x00,0x22,0x8e,0x00,0x00,0x22,0x8e,0x00,0x00,0x03,0xfd,0x00,0x00,0x22,0x8f,0x00,0x00,0x22,0x8f,0x00,0x00,0x04,0x55,0x00,0x00,0x22,0x90,0x00,0x00,0x22,0x90,0x00,0x00,0x04,0x57,0x00,0x00,0x22,0x91,0x00,0x00,0x22,0x91,0x00,0x00,0x04,0x56,0x00,0x00,0x22,0x92,0x00,0x00,0x22,0x92,0x00,0x00,0x04,0x58,0x00,0x00, -0x22,0x93,0x00,0x00,0x22,0x94,0x00,0x00,0x04,0x4f,0x00,0x00,0x22,0x95,0x00,0x00,0x22,0x95,0x00,0x00,0x04,0x70,0x00,0x00,0x22,0x96,0x00,0x00,0x22,0x97,0x00,0x00,0x04,0x6d,0x00,0x00,0x22,0x98,0x00,0x00,0x22,0x98,0x00,0x00,0x04,0x6c,0x00,0x00,0x22,0x99,0x00,0x00,0x22,0x99,0x00,0x00,0x04,0x6f,0x00,0x00,0x22,0x9b,0x00,0x00, -0x22,0x9b,0x00,0x00,0x04,0x69,0x00,0x00,0x22,0x9c,0x00,0x00,0x22,0x9c,0x00,0x00,0x04,0x6b,0x00,0x00,0x22,0x9d,0x00,0x00,0x22,0x9d,0x00,0x00,0x04,0x6a,0x00,0x00,0x22,0x9e,0x00,0x00,0x22,0x9e,0x00,0x00,0x04,0x53,0x00,0x00,0x22,0x9f,0x00,0x00,0x22,0x9f,0x00,0x00,0x04,0x52,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xa0,0x00,0x00, -0x04,0x54,0x00,0x00,0x22,0xa1,0x00,0x00,0x22,0xa1,0x00,0x00,0x04,0x51,0x00,0x00,0x22,0xa2,0x00,0x00,0x22,0xa2,0x00,0x00,0x04,0x4b,0x00,0x00,0x22,0xa3,0x00,0x00,0x22,0xa3,0x00,0x00,0x04,0x61,0x00,0x00,0x22,0xa4,0x00,0x00,0x22,0xa4,0x00,0x00,0x04,0x60,0x00,0x00,0x22,0xa5,0x00,0x00,0x22,0xa5,0x00,0x00,0x04,0x67,0x00,0x00, -0x22,0xb4,0x00,0x00,0x22,0xb4,0x00,0x00,0x04,0x08,0x00,0x00,0x22,0xb8,0x00,0x00,0x22,0xb8,0x00,0x00,0x03,0xfc,0x00,0x00,0x22,0xbb,0x00,0x00,0x22,0xbb,0x00,0x00,0x04,0x68,0x00,0x00,0x22,0xbc,0x00,0x00,0x22,0xbc,0x00,0x00,0x04,0x01,0x00,0x00,0x22,0xbd,0x00,0x00,0x22,0xbd,0x00,0x00,0x04,0x07,0x00,0x00,0x22,0xc2,0x00,0x00, -0x22,0xc3,0x00,0x00,0x04,0x02,0x00,0x00,0x22,0xc4,0x00,0x00,0x22,0xc4,0x00,0x00,0x03,0xdb,0x00,0x00,0x22,0xc6,0x00,0x00,0x22,0xc6,0x00,0x00,0x04,0x59,0x00,0x00,0x22,0xc8,0x00,0x00,0x22,0xc8,0x00,0x00,0x03,0xd3,0x00,0x00,0x22,0xc9,0x00,0x00,0x22,0xc9,0x00,0x00,0x03,0xf3,0x00,0x00,0x22,0xca,0x00,0x00,0x22,0xca,0x00,0x00, -0x04,0x47,0x00,0x00,0x22,0xce,0x00,0x00,0x22,0xce,0x00,0x00,0x03,0xda,0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xd0,0x00,0x00,0x03,0xe0,0x00,0x00,0x22,0xe2,0x00,0x00,0x22,0xe2,0x00,0x00,0x04,0x12,0x00,0x00,0x22,0xee,0x00,0x00,0x22,0xee,0x00,0x00,0x03,0xe4,0x00,0x00,0x22,0xef,0x00,0x00,0x22,0xef,0x00,0x00,0x03,0xf8,0x00,0x00, -0x22,0xf0,0x00,0x00,0x22,0xf0,0x00,0x00,0x04,0x66,0x00,0x00,0x22,0xf1,0x00,0x00,0x22,0xf1,0x00,0x00,0x03,0xe1,0x00,0x00,0x23,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x05,0xe1,0x00,0x00,0x23,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x05,0xca,0x00,0x00,0x23,0x04,0x00,0x00,0x23,0x04,0x00,0x00,0x04,0x91,0x00,0x00,0x23,0x05,0x00,0x00, -0x23,0x05,0x00,0x00,0x05,0xf4,0x00,0x00,0x23,0x08,0x00,0x00,0x23,0x08,0x00,0x00,0x03,0x4f,0x00,0x00,0x23,0x09,0x00,0x00,0x23,0x09,0x00,0x00,0x03,0x52,0x00,0x00,0x23,0x0a,0x00,0x00,0x23,0x0a,0x00,0x00,0x03,0x50,0x00,0x00,0x23,0x0b,0x00,0x00,0x23,0x0b,0x00,0x00,0x03,0x53,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0x18,0x00,0x00, -0x05,0xe9,0x00,0x00,0x23,0x1c,0x00,0x00,0x23,0x1c,0x00,0x00,0x05,0xce,0x00,0x00,0x23,0x1d,0x00,0x00,0x23,0x1d,0x00,0x00,0x05,0xcd,0x00,0x00,0x23,0x1e,0x00,0x00,0x23,0x1f,0x00,0x00,0x05,0xcb,0x00,0x00,0x23,0x24,0x00,0x00,0x23,0x24,0x00,0x00,0x04,0x92,0x00,0x00,0x23,0x25,0x00,0x00,0x23,0x25,0x00,0x00,0x05,0xe6,0x00,0x00, -0x23,0x26,0x00,0x00,0x23,0x26,0x00,0x00,0x05,0xe4,0x00,0x00,0x23,0x28,0x00,0x00,0x23,0x28,0x00,0x00,0x05,0xe5,0x00,0x00,0x23,0x2b,0x00,0x00,0x23,0x2b,0x00,0x00,0x05,0xe3,0x00,0x00,0x23,0x36,0x00,0x00,0x23,0x36,0x00,0x00,0x05,0x65,0x00,0x00,0x23,0x37,0x00,0x00,0x23,0x37,0x00,0x00,0x05,0xa0,0x00,0x00,0x23,0x38,0x00,0x00, -0x23,0x38,0x00,0x00,0x05,0x8f,0x00,0x00,0x23,0x39,0x00,0x00,0x23,0x39,0x00,0x00,0x05,0x8c,0x00,0x00,0x23,0x3a,0x00,0x00,0x23,0x3a,0x00,0x00,0x05,0x8b,0x00,0x00,0x23,0x3b,0x00,0x00,0x23,0x3b,0x00,0x00,0x05,0x91,0x00,0x00,0x23,0x3c,0x00,0x00,0x23,0x3c,0x00,0x00,0x05,0x87,0x00,0x00,0x23,0x3d,0x00,0x00,0x23,0x3d,0x00,0x00, -0x05,0x6d,0x00,0x00,0x23,0x3e,0x00,0x00,0x23,0x3e,0x00,0x00,0x05,0x6b,0x00,0x00,0x23,0x3f,0x00,0x00,0x23,0x3f,0x00,0x00,0x05,0x9f,0x00,0x00,0x23,0x40,0x00,0x00,0x23,0x40,0x00,0x00,0x05,0x68,0x00,0x00,0x23,0x41,0x00,0x00,0x23,0x41,0x00,0x00,0x05,0x97,0x00,0x00,0x23,0x42,0x00,0x00,0x23,0x42,0x00,0x00,0x05,0x86,0x00,0x00, -0x23,0x43,0x00,0x00,0x23,0x43,0x00,0x00,0x05,0x93,0x00,0x00,0x23,0x44,0x00,0x00,0x23,0x44,0x00,0x00,0x05,0x90,0x00,0x00,0x23,0x45,0x00,0x00,0x23,0x45,0x00,0x00,0x05,0x82,0x00,0x00,0x23,0x46,0x00,0x00,0x23,0x46,0x00,0x00,0x05,0x9d,0x00,0x00,0x23,0x47,0x00,0x00,0x23,0x47,0x00,0x00,0x05,0x92,0x00,0x00,0x23,0x48,0x00,0x00, -0x23,0x48,0x00,0x00,0x05,0x96,0x00,0x00,0x23,0x49,0x00,0x00,0x23,0x49,0x00,0x00,0x05,0x69,0x00,0x00,0x23,0x4a,0x00,0x00,0x23,0x4a,0x00,0x00,0x05,0x79,0x00,0x00,0x23,0x4b,0x00,0x00,0x23,0x4b,0x00,0x00,0x05,0x72,0x00,0x00,0x23,0x4c,0x00,0x00,0x23,0x4c,0x00,0x00,0x05,0x8e,0x00,0x00,0x23,0x4d,0x00,0x00,0x23,0x4d,0x00,0x00, -0x05,0x8a,0x00,0x00,0x23,0x4e,0x00,0x00,0x23,0x4e,0x00,0x00,0x05,0x78,0x00,0x00,0x23,0x4f,0x00,0x00,0x23,0x4f,0x00,0x00,0x05,0xa9,0x00,0x00,0x23,0x50,0x00,0x00,0x23,0x50,0x00,0x00,0x05,0x98,0x00,0x00,0x23,0x51,0x00,0x00,0x23,0x51,0x00,0x00,0x05,0xa8,0x00,0x00,0x23,0x52,0x00,0x00,0x23,0x52,0x00,0x00,0x05,0x71,0x00,0x00, -0x23,0x53,0x00,0x00,0x23,0x53,0x00,0x00,0x05,0x99,0x00,0x00,0x23,0x54,0x00,0x00,0x23,0x54,0x00,0x00,0x05,0x89,0x00,0x00,0x23,0x55,0x00,0x00,0x23,0x55,0x00,0x00,0x05,0xa7,0x00,0x00,0x23,0x56,0x00,0x00,0x23,0x56,0x00,0x00,0x05,0x7a,0x00,0x00,0x23,0x57,0x00,0x00,0x23,0x57,0x00,0x00,0x05,0x8d,0x00,0x00,0x23,0x58,0x00,0x00, -0x23,0x58,0x00,0x00,0x05,0x9b,0x00,0x00,0x23,0x59,0x00,0x00,0x23,0x59,0x00,0x00,0x05,0x73,0x00,0x00,0x23,0x5a,0x00,0x00,0x23,0x5a,0x00,0x00,0x05,0x75,0x00,0x00,0x23,0x5b,0x00,0x00,0x23,0x5b,0x00,0x00,0x05,0x80,0x00,0x00,0x23,0x5c,0x00,0x00,0x23,0x5c,0x00,0x00,0x05,0x6e,0x00,0x00,0x23,0x5d,0x00,0x00,0x23,0x5d,0x00,0x00, -0x05,0xa5,0x00,0x00,0x23,0x5e,0x00,0x00,0x23,0x5e,0x00,0x00,0x05,0x9a,0x00,0x00,0x23,0x5f,0x00,0x00,0x23,0x5f,0x00,0x00,0x05,0x6c,0x00,0x00,0x23,0x60,0x00,0x00,0x23,0x60,0x00,0x00,0x05,0x88,0x00,0x00,0x23,0x61,0x00,0x00,0x23,0x61,0x00,0x00,0x05,0xa6,0x00,0x00,0x23,0x62,0x00,0x00,0x23,0x62,0x00,0x00,0x05,0x70,0x00,0x00, -0x23,0x63,0x00,0x00,0x23,0x63,0x00,0x00,0x05,0xa1,0x00,0x00,0x23,0x64,0x00,0x00,0x23,0x64,0x00,0x00,0x05,0x7f,0x00,0x00,0x23,0x65,0x00,0x00,0x23,0x65,0x00,0x00,0x05,0x6a,0x00,0x00,0x23,0x66,0x00,0x00,0x23,0x66,0x00,0x00,0x05,0x77,0x00,0x00,0x23,0x67,0x00,0x00,0x23,0x67,0x00,0x00,0x05,0x81,0x00,0x00,0x23,0x68,0x00,0x00, -0x23,0x68,0x00,0x00,0x05,0xa3,0x00,0x00,0x23,0x69,0x00,0x00,0x23,0x69,0x00,0x00,0x05,0x7c,0x00,0x00,0x23,0x6a,0x00,0x00,0x23,0x6a,0x00,0x00,0x05,0x6f,0x00,0x00,0x23,0x6b,0x00,0x00,0x23,0x6b,0x00,0x00,0x05,0x74,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x6c,0x00,0x00,0x05,0xaa,0x00,0x00,0x23,0x6d,0x00,0x00,0x23,0x6d,0x00,0x00, -0x05,0xa2,0x00,0x00,0x23,0x6e,0x00,0x00,0x23,0x6e,0x00,0x00,0x05,0x9e,0x00,0x00,0x23,0x6f,0x00,0x00,0x23,0x70,0x00,0x00,0x05,0x94,0x00,0x00,0x23,0x71,0x00,0x00,0x23,0x71,0x00,0x00,0x05,0x76,0x00,0x00,0x23,0x72,0x00,0x00,0x23,0x72,0x00,0x00,0x05,0xa4,0x00,0x00,0x23,0x73,0x00,0x00,0x23,0x73,0x00,0x00,0x05,0x7d,0x00,0x00, -0x23,0x74,0x00,0x00,0x23,0x74,0x00,0x00,0x05,0x9c,0x00,0x00,0x23,0x75,0x00,0x00,0x23,0x75,0x00,0x00,0x05,0x83,0x00,0x00,0x23,0x76,0x00,0x00,0x23,0x76,0x00,0x00,0x05,0x67,0x00,0x00,0x23,0x77,0x00,0x00,0x23,0x77,0x00,0x00,0x05,0x7b,0x00,0x00,0x23,0x78,0x00,0x00,0x23,0x78,0x00,0x00,0x05,0x7e,0x00,0x00,0x23,0x79,0x00,0x00, -0x23,0x79,0x00,0x00,0x05,0x84,0x00,0x00,0x23,0x7a,0x00,0x00,0x23,0x7a,0x00,0x00,0x05,0x66,0x00,0x00,0x23,0x89,0x00,0x00,0x23,0x89,0x00,0x00,0x05,0xe0,0x00,0x00,0x23,0x8a,0x00,0x00,0x23,0x8a,0x00,0x00,0x05,0xd5,0x00,0x00,0x23,0x8b,0x00,0x00,0x23,0x8b,0x00,0x00,0x05,0xc7,0x00,0x00,0x23,0x95,0x00,0x00,0x23,0x95,0x00,0x00, -0x05,0x85,0x00,0x00,0x23,0x9b,0x00,0x00,0x23,0x9b,0x00,0x00,0x04,0x34,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0x9d,0x00,0x00,0x04,0x32,0x00,0x00,0x23,0x9e,0x00,0x00,0x23,0x9e,0x00,0x00,0x04,0x37,0x00,0x00,0x23,0x9f,0x00,0x00,0x23,0xa0,0x00,0x00,0x04,0x35,0x00,0x00,0x23,0xa1,0x00,0x00,0x23,0xa1,0x00,0x00,0x03,0xf6,0x00,0x00, -0x23,0xa2,0x00,0x00,0x23,0xa3,0x00,0x00,0x03,0xf4,0x00,0x00,0x23,0xa4,0x00,0x00,0x23,0xa4,0x00,0x00,0x04,0x4a,0x00,0x00,0x23,0xa5,0x00,0x00,0x23,0xa6,0x00,0x00,0x04,0x48,0x00,0x00,0x23,0xa7,0x00,0x00,0x23,0xa7,0x00,0x00,0x03,0xf2,0x00,0x00,0x23,0xa8,0x00,0x00,0x23,0xa8,0x00,0x00,0x03,0xf1,0x00,0x00,0x23,0xa9,0x00,0x00, -0x23,0xa9,0x00,0x00,0x03,0xf0,0x00,0x00,0x23,0xaa,0x00,0x00,0x23,0xaa,0x00,0x00,0x03,0xd9,0x00,0x00,0x23,0xab,0x00,0x00,0x23,0xab,0x00,0x00,0x04,0x46,0x00,0x00,0x23,0xac,0x00,0x00,0x23,0xac,0x00,0x00,0x04,0x45,0x00,0x00,0x23,0xad,0x00,0x00,0x23,0xad,0x00,0x00,0x04,0x44,0x00,0x00,0x23,0xce,0x00,0x00,0x23,0xce,0x00,0x00, -0x05,0xea,0x00,0x00,0x23,0xfb,0x00,0x00,0x23,0xfc,0x00,0x00,0x05,0xef,0x00,0x00,0x23,0xfd,0x00,0x00,0x23,0xfe,0x00,0x00,0x05,0xf2,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x05,0xee,0x00,0x00,0x24,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x05,0xfa,0x00,0x00,0x24,0x03,0x00,0x00,0x24,0x04,0x00,0x00,0x05,0xd7,0x00,0x00, -0x24,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x05,0xda,0x00,0x00,0x24,0x06,0x00,0x00,0x24,0x06,0x00,0x00,0x05,0xb2,0x00,0x00,0x24,0x07,0x00,0x00,0x24,0x07,0x00,0x00,0x05,0xc5,0x00,0x00,0x24,0x08,0x00,0x00,0x24,0x08,0x00,0x00,0x05,0xb3,0x00,0x00,0x24,0x09,0x00,0x00,0x24,0x09,0x00,0x00,0x05,0xdf,0x00,0x00,0x24,0x0a,0x00,0x00, -0x24,0x0a,0x00,0x00,0x05,0xeb,0x00,0x00,0x24,0x0b,0x00,0x00,0x24,0x0b,0x00,0x00,0x06,0x01,0x00,0x00,0x24,0x0c,0x00,0x00,0x24,0x0c,0x00,0x00,0x05,0xdd,0x00,0x00,0x24,0x0d,0x00,0x00,0x24,0x0d,0x00,0x00,0x05,0xc9,0x00,0x00,0x24,0x0e,0x00,0x00,0x24,0x0e,0x00,0x00,0x05,0xf8,0x00,0x00,0x24,0x0f,0x00,0x00,0x24,0x0f,0x00,0x00, -0x05,0xf7,0x00,0x00,0x24,0x10,0x00,0x00,0x24,0x10,0x00,0x00,0x05,0xcf,0x00,0x00,0x24,0x11,0x00,0x00,0x24,0x11,0x00,0x00,0x05,0xd2,0x00,0x00,0x24,0x12,0x00,0x00,0x24,0x12,0x00,0x00,0x05,0xd4,0x00,0x00,0x24,0x13,0x00,0x00,0x24,0x13,0x00,0x00,0x05,0xd3,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0x14,0x00,0x00,0x05,0xd1,0x00,0x00, -0x24,0x15,0x00,0x00,0x24,0x15,0x00,0x00,0x05,0xec,0x00,0x00,0x24,0x16,0x00,0x00,0x24,0x16,0x00,0x00,0x05,0xfd,0x00,0x00,0x24,0x17,0x00,0x00,0x24,0x17,0x00,0x00,0x05,0xd9,0x00,0x00,0x24,0x18,0x00,0x00,0x24,0x18,0x00,0x00,0x05,0xc8,0x00,0x00,0x24,0x19,0x00,0x00,0x24,0x19,0x00,0x00,0x05,0xd6,0x00,0x00,0x24,0x1a,0x00,0x00, -0x24,0x1a,0x00,0x00,0x05,0xfc,0x00,0x00,0x24,0x1b,0x00,0x00,0x24,0x1c,0x00,0x00,0x05,0xdb,0x00,0x00,0x24,0x1d,0x00,0x00,0x24,0x1d,0x00,0x00,0x05,0xde,0x00,0x00,0x24,0x1e,0x00,0x00,0x24,0x1e,0x00,0x00,0x05,0xf5,0x00,0x00,0x24,0x1f,0x00,0x00,0x24,0x1f,0x00,0x00,0x06,0x00,0x00,0x00,0x24,0x20,0x00,0x00,0x24,0x20,0x00,0x00, -0x05,0xf9,0x00,0x00,0x24,0x21,0x00,0x00,0x24,0x21,0x00,0x00,0x05,0xd0,0x00,0x00,0x24,0x23,0x00,0x00,0x24,0x23,0x00,0x00,0x05,0xc6,0x00,0x00,0x24,0x24,0x00,0x00,0x24,0x24,0x00,0x00,0x05,0xed,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x05,0x2e,0x00,0x00,0x25,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x05,0x08,0x00,0x00, -0x25,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x05,0x3b,0x00,0x00,0x25,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x05,0x15,0x00,0x00,0x25,0x04,0x00,0x00,0x25,0x04,0x00,0x00,0x05,0x34,0x00,0x00,0x25,0x05,0x00,0x00,0x25,0x05,0x00,0x00,0x05,0x0e,0x00,0x00,0x25,0x06,0x00,0x00,0x25,0x06,0x00,0x00,0x05,0x35,0x00,0x00,0x25,0x07,0x00,0x00, -0x25,0x07,0x00,0x00,0x05,0x0f,0x00,0x00,0x25,0x08,0x00,0x00,0x25,0x08,0x00,0x00,0x05,0x31,0x00,0x00,0x25,0x09,0x00,0x00,0x25,0x09,0x00,0x00,0x05,0x0b,0x00,0x00,0x25,0x0a,0x00,0x00,0x25,0x0a,0x00,0x00,0x05,0x32,0x00,0x00,0x25,0x0b,0x00,0x00,0x25,0x0b,0x00,0x00,0x05,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00, -0x05,0x2d,0x00,0x00,0x25,0x0d,0x00,0x00,0x25,0x0d,0x00,0x00,0x04,0xfc,0x00,0x00,0x25,0x0e,0x00,0x00,0x25,0x0e,0x00,0x00,0x04,0xf6,0x00,0x00,0x25,0x0f,0x00,0x00,0x25,0x0f,0x00,0x00,0x05,0x07,0x00,0x00,0x25,0x10,0x00,0x00,0x25,0x10,0x00,0x00,0x05,0x2c,0x00,0x00,0x25,0x11,0x00,0x00,0x25,0x11,0x00,0x00,0x04,0xfa,0x00,0x00, -0x25,0x12,0x00,0x00,0x25,0x12,0x00,0x00,0x04,0xf4,0x00,0x00,0x25,0x13,0x00,0x00,0x25,0x13,0x00,0x00,0x05,0x06,0x00,0x00,0x25,0x14,0x00,0x00,0x25,0x14,0x00,0x00,0x05,0x3a,0x00,0x00,0x25,0x15,0x00,0x00,0x25,0x15,0x00,0x00,0x05,0x55,0x00,0x00,0x25,0x16,0x00,0x00,0x25,0x16,0x00,0x00,0x05,0x4f,0x00,0x00,0x25,0x17,0x00,0x00, -0x25,0x17,0x00,0x00,0x05,0x14,0x00,0x00,0x25,0x18,0x00,0x00,0x25,0x18,0x00,0x00,0x05,0x39,0x00,0x00,0x25,0x19,0x00,0x00,0x25,0x19,0x00,0x00,0x05,0x53,0x00,0x00,0x25,0x1a,0x00,0x00,0x25,0x1a,0x00,0x00,0x05,0x4d,0x00,0x00,0x25,0x1b,0x00,0x00,0x25,0x1b,0x00,0x00,0x05,0x12,0x00,0x00,0x25,0x1c,0x00,0x00,0x25,0x1c,0x00,0x00, -0x05,0x3e,0x00,0x00,0x25,0x1d,0x00,0x00,0x25,0x1d,0x00,0x00,0x05,0x61,0x00,0x00,0x25,0x1e,0x00,0x00,0x25,0x1e,0x00,0x00,0x05,0x4e,0x00,0x00,0x25,0x1f,0x00,0x00,0x25,0x1f,0x00,0x00,0x04,0xf7,0x00,0x00,0x25,0x20,0x00,0x00,0x25,0x20,0x00,0x00,0x05,0x5e,0x00,0x00,0x25,0x21,0x00,0x00,0x25,0x21,0x00,0x00,0x04,0xfd,0x00,0x00, -0x25,0x22,0x00,0x00,0x25,0x22,0x00,0x00,0x05,0x54,0x00,0x00,0x25,0x23,0x00,0x00,0x25,0x23,0x00,0x00,0x05,0x18,0x00,0x00,0x25,0x24,0x00,0x00,0x25,0x24,0x00,0x00,0x05,0x3d,0x00,0x00,0x25,0x25,0x00,0x00,0x25,0x25,0x00,0x00,0x05,0x60,0x00,0x00,0x25,0x26,0x00,0x00,0x25,0x26,0x00,0x00,0x05,0x4c,0x00,0x00,0x25,0x27,0x00,0x00, -0x25,0x27,0x00,0x00,0x04,0xf5,0x00,0x00,0x25,0x28,0x00,0x00,0x25,0x28,0x00,0x00,0x05,0x5d,0x00,0x00,0x25,0x29,0x00,0x00,0x25,0x29,0x00,0x00,0x04,0xfb,0x00,0x00,0x25,0x2a,0x00,0x00,0x25,0x2a,0x00,0x00,0x05,0x52,0x00,0x00,0x25,0x2b,0x00,0x00,0x25,0x2b,0x00,0x00,0x05,0x17,0x00,0x00,0x25,0x2c,0x00,0x00,0x25,0x2c,0x00,0x00, -0x05,0x2b,0x00,0x00,0x25,0x2d,0x00,0x00,0x25,0x2d,0x00,0x00,0x05,0x1a,0x00,0x00,0x25,0x2e,0x00,0x00,0x25,0x2e,0x00,0x00,0x05,0x40,0x00,0x00,0x25,0x2f,0x00,0x00,0x25,0x2f,0x00,0x00,0x04,0xf9,0x00,0x00,0x25,0x30,0x00,0x00,0x25,0x30,0x00,0x00,0x04,0xf3,0x00,0x00,0x25,0x31,0x00,0x00,0x25,0x31,0x00,0x00,0x05,0x43,0x00,0x00, -0x25,0x32,0x00,0x00,0x25,0x32,0x00,0x00,0x05,0x1d,0x00,0x00,0x25,0x33,0x00,0x00,0x25,0x33,0x00,0x00,0x05,0x05,0x00,0x00,0x25,0x34,0x00,0x00,0x25,0x34,0x00,0x00,0x05,0x38,0x00,0x00,0x25,0x35,0x00,0x00,0x25,0x35,0x00,0x00,0x05,0x1b,0x00,0x00,0x25,0x36,0x00,0x00,0x25,0x36,0x00,0x00,0x05,0x41,0x00,0x00,0x25,0x37,0x00,0x00, -0x25,0x37,0x00,0x00,0x05,0x51,0x00,0x00,0x25,0x38,0x00,0x00,0x25,0x38,0x00,0x00,0x05,0x4b,0x00,0x00,0x25,0x39,0x00,0x00,0x25,0x39,0x00,0x00,0x05,0x44,0x00,0x00,0x25,0x3a,0x00,0x00,0x25,0x3a,0x00,0x00,0x05,0x1e,0x00,0x00,0x25,0x3b,0x00,0x00,0x25,0x3b,0x00,0x00,0x05,0x11,0x00,0x00,0x25,0x3c,0x00,0x00,0x25,0x3c,0x00,0x00, -0x05,0x3c,0x00,0x00,0x25,0x3d,0x00,0x00,0x25,0x3d,0x00,0x00,0x05,0x1c,0x00,0x00,0x25,0x3e,0x00,0x00,0x25,0x3e,0x00,0x00,0x05,0x42,0x00,0x00,0x25,0x3f,0x00,0x00,0x25,0x3f,0x00,0x00,0x05,0x5f,0x00,0x00,0x25,0x40,0x00,0x00,0x25,0x40,0x00,0x00,0x05,0x4a,0x00,0x00,0x25,0x41,0x00,0x00,0x25,0x41,0x00,0x00,0x04,0xf8,0x00,0x00, -0x25,0x42,0x00,0x00,0x25,0x42,0x00,0x00,0x05,0x5c,0x00,0x00,0x25,0x43,0x00,0x00,0x25,0x43,0x00,0x00,0x05,0x20,0x00,0x00,0x25,0x44,0x00,0x00,0x25,0x44,0x00,0x00,0x05,0x46,0x00,0x00,0x25,0x45,0x00,0x00,0x25,0x45,0x00,0x00,0x05,0x19,0x00,0x00,0x25,0x46,0x00,0x00,0x25,0x46,0x00,0x00,0x05,0x3f,0x00,0x00,0x25,0x47,0x00,0x00, -0x25,0x47,0x00,0x00,0x04,0xfe,0x00,0x00,0x25,0x48,0x00,0x00,0x25,0x48,0x00,0x00,0x05,0x50,0x00,0x00,0x25,0x49,0x00,0x00,0x25,0x49,0x00,0x00,0x05,0x45,0x00,0x00,0x25,0x4a,0x00,0x00,0x25,0x4a,0x00,0x00,0x05,0x1f,0x00,0x00,0x25,0x4b,0x00,0x00,0x25,0x4b,0x00,0x00,0x05,0x16,0x00,0x00,0x25,0x4c,0x00,0x00,0x25,0x4c,0x00,0x00, -0x05,0x28,0x00,0x00,0x25,0x4d,0x00,0x00,0x25,0x4d,0x00,0x00,0x05,0x02,0x00,0x00,0x25,0x4e,0x00,0x00,0x25,0x4e,0x00,0x00,0x05,0x29,0x00,0x00,0x25,0x4f,0x00,0x00,0x25,0x4f,0x00,0x00,0x05,0x03,0x00,0x00,0x25,0x50,0x00,0x00,0x25,0x50,0x00,0x00,0x04,0xe8,0x00,0x00,0x25,0x51,0x00,0x00,0x25,0x51,0x00,0x00,0x04,0xec,0x00,0x00, -0x25,0x52,0x00,0x00,0x25,0x52,0x00,0x00,0x05,0x01,0x00,0x00,0x25,0x53,0x00,0x00,0x25,0x53,0x00,0x00,0x04,0xf2,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0x54,0x00,0x00,0x04,0xe7,0x00,0x00,0x25,0x55,0x00,0x00,0x25,0x55,0x00,0x00,0x05,0x00,0x00,0x00,0x25,0x56,0x00,0x00,0x25,0x56,0x00,0x00,0x04,0xf1,0x00,0x00,0x25,0x57,0x00,0x00, -0x25,0x57,0x00,0x00,0x04,0xe6,0x00,0x00,0x25,0x58,0x00,0x00,0x25,0x58,0x00,0x00,0x05,0x58,0x00,0x00,0x25,0x59,0x00,0x00,0x25,0x59,0x00,0x00,0x05,0x49,0x00,0x00,0x25,0x5a,0x00,0x00,0x25,0x5a,0x00,0x00,0x04,0xeb,0x00,0x00,0x25,0x5b,0x00,0x00,0x25,0x5b,0x00,0x00,0x05,0x57,0x00,0x00,0x25,0x5c,0x00,0x00,0x25,0x5c,0x00,0x00, -0x05,0x48,0x00,0x00,0x25,0x5d,0x00,0x00,0x25,0x5d,0x00,0x00,0x04,0xea,0x00,0x00,0x25,0x5e,0x00,0x00,0x25,0x5e,0x00,0x00,0x05,0x64,0x00,0x00,0x25,0x5f,0x00,0x00,0x25,0x5f,0x00,0x00,0x05,0x5b,0x00,0x00,0x25,0x60,0x00,0x00,0x25,0x60,0x00,0x00,0x04,0xef,0x00,0x00,0x25,0x61,0x00,0x00,0x25,0x61,0x00,0x00,0x05,0x63,0x00,0x00, -0x25,0x62,0x00,0x00,0x25,0x62,0x00,0x00,0x05,0x5a,0x00,0x00,0x25,0x63,0x00,0x00,0x25,0x63,0x00,0x00,0x04,0xee,0x00,0x00,0x25,0x64,0x00,0x00,0x25,0x64,0x00,0x00,0x04,0xff,0x00,0x00,0x25,0x65,0x00,0x00,0x25,0x65,0x00,0x00,0x04,0xf0,0x00,0x00,0x25,0x66,0x00,0x00,0x25,0x66,0x00,0x00,0x04,0xe5,0x00,0x00,0x25,0x67,0x00,0x00, -0x25,0x67,0x00,0x00,0x05,0x56,0x00,0x00,0x25,0x68,0x00,0x00,0x25,0x68,0x00,0x00,0x05,0x47,0x00,0x00,0x25,0x69,0x00,0x00,0x25,0x69,0x00,0x00,0x04,0xe9,0x00,0x00,0x25,0x6a,0x00,0x00,0x25,0x6a,0x00,0x00,0x05,0x62,0x00,0x00,0x25,0x6b,0x00,0x00,0x25,0x6b,0x00,0x00,0x05,0x59,0x00,0x00,0x25,0x6c,0x00,0x00,0x25,0x6c,0x00,0x00, -0x04,0xed,0x00,0x00,0x25,0x6d,0x00,0x00,0x25,0x6d,0x00,0x00,0x05,0x22,0x00,0x00,0x25,0x6e,0x00,0x00,0x25,0x6e,0x00,0x00,0x05,0x21,0x00,0x00,0x25,0x6f,0x00,0x00,0x25,0x70,0x00,0x00,0x05,0x23,0x00,0x00,0x25,0x71,0x00,0x00,0x25,0x71,0x00,0x00,0x05,0x27,0x00,0x00,0x25,0x72,0x00,0x00,0x25,0x72,0x00,0x00,0x05,0x26,0x00,0x00, -0x25,0x73,0x00,0x00,0x25,0x73,0x00,0x00,0x05,0x25,0x00,0x00,0x25,0x74,0x00,0x00,0x25,0x74,0x00,0x00,0x05,0x2f,0x00,0x00,0x25,0x75,0x00,0x00,0x25,0x75,0x00,0x00,0x05,0x36,0x00,0x00,0x25,0x76,0x00,0x00,0x25,0x76,0x00,0x00,0x05,0x33,0x00,0x00,0x25,0x77,0x00,0x00,0x25,0x77,0x00,0x00,0x05,0x2a,0x00,0x00,0x25,0x78,0x00,0x00, -0x25,0x78,0x00,0x00,0x05,0x09,0x00,0x00,0x25,0x79,0x00,0x00,0x25,0x79,0x00,0x00,0x05,0x10,0x00,0x00,0x25,0x7a,0x00,0x00,0x25,0x7a,0x00,0x00,0x05,0x0d,0x00,0x00,0x25,0x7b,0x00,0x00,0x25,0x7b,0x00,0x00,0x05,0x04,0x00,0x00,0x25,0x7c,0x00,0x00,0x25,0x7c,0x00,0x00,0x05,0x30,0x00,0x00,0x25,0x7d,0x00,0x00,0x25,0x7d,0x00,0x00, -0x05,0x37,0x00,0x00,0x25,0x7e,0x00,0x00,0x25,0x7e,0x00,0x00,0x05,0x0a,0x00,0x00,0x25,0x7f,0x00,0x00,0x25,0x7f,0x00,0x00,0x05,0x13,0x00,0x00,0x25,0x80,0x00,0x00,0x25,0x80,0x00,0x00,0x04,0xa2,0x00,0x00,0x25,0x81,0x00,0x00,0x25,0x88,0x00,0x00,0x04,0x9a,0x00,0x00,0x25,0x89,0x00,0x00,0x25,0x89,0x00,0x00,0x04,0xaa,0x00,0x00, -0x25,0x8a,0x00,0x00,0x25,0x8a,0x00,0x00,0x04,0xa9,0x00,0x00,0x25,0x8b,0x00,0x00,0x25,0x8b,0x00,0x00,0x04,0xa8,0x00,0x00,0x25,0x8c,0x00,0x00,0x25,0x8c,0x00,0x00,0x04,0xa7,0x00,0x00,0x25,0x8d,0x00,0x00,0x25,0x8d,0x00,0x00,0x04,0xa6,0x00,0x00,0x25,0x8e,0x00,0x00,0x25,0x8e,0x00,0x00,0x04,0xa5,0x00,0x00,0x25,0x8f,0x00,0x00, -0x25,0x8f,0x00,0x00,0x04,0xa4,0x00,0x00,0x25,0x90,0x00,0x00,0x25,0x90,0x00,0x00,0x04,0xab,0x00,0x00,0x25,0x91,0x00,0x00,0x25,0x93,0x00,0x00,0x04,0xb7,0x00,0x00,0x25,0x94,0x00,0x00,0x25,0x94,0x00,0x00,0x04,0xa3,0x00,0x00,0x25,0x95,0x00,0x00,0x25,0x9f,0x00,0x00,0x04,0xac,0x00,0x00,0x25,0xa0,0x00,0x00,0x25,0xa1,0x00,0x00, -0x04,0xc8,0x00,0x00,0x25,0xaa,0x00,0x00,0x25,0xab,0x00,0x00,0x04,0xca,0x00,0x00,0x25,0xb2,0x00,0x00,0x25,0xb2,0x00,0x00,0x04,0xd1,0x00,0x00,0x25,0xb3,0x00,0x00,0x25,0xb3,0x00,0x00,0x04,0xd5,0x00,0x00,0x25,0xb4,0x00,0x00,0x25,0xb4,0x00,0x00,0x04,0xdd,0x00,0x00,0x25,0xb5,0x00,0x00,0x25,0xb5,0x00,0x00,0x04,0xe1,0x00,0x00, -0x25,0xb6,0x00,0x00,0x25,0xb6,0x00,0x00,0x04,0xd2,0x00,0x00,0x25,0xb7,0x00,0x00,0x25,0xb7,0x00,0x00,0x04,0xd6,0x00,0x00,0x25,0xb8,0x00,0x00,0x25,0xb8,0x00,0x00,0x04,0xde,0x00,0x00,0x25,0xb9,0x00,0x00,0x25,0xb9,0x00,0x00,0x04,0xe2,0x00,0x00,0x25,0xba,0x00,0x00,0x25,0xba,0x00,0x00,0x04,0xd9,0x00,0x00,0x25,0xbb,0x00,0x00, -0x25,0xbb,0x00,0x00,0x04,0xdb,0x00,0x00,0x25,0xbc,0x00,0x00,0x25,0xbc,0x00,0x00,0x04,0xd3,0x00,0x00,0x25,0xbd,0x00,0x00,0x25,0xbd,0x00,0x00,0x04,0xd7,0x00,0x00,0x25,0xbe,0x00,0x00,0x25,0xbe,0x00,0x00,0x04,0xdf,0x00,0x00,0x25,0xbf,0x00,0x00,0x25,0xbf,0x00,0x00,0x04,0xe3,0x00,0x00,0x25,0xc0,0x00,0x00,0x25,0xc0,0x00,0x00, -0x04,0xd4,0x00,0x00,0x25,0xc1,0x00,0x00,0x25,0xc1,0x00,0x00,0x04,0xd8,0x00,0x00,0x25,0xc2,0x00,0x00,0x25,0xc2,0x00,0x00,0x04,0xe0,0x00,0x00,0x25,0xc3,0x00,0x00,0x25,0xc3,0x00,0x00,0x04,0xe4,0x00,0x00,0x25,0xc4,0x00,0x00,0x25,0xc4,0x00,0x00,0x04,0xda,0x00,0x00,0x25,0xc5,0x00,0x00,0x25,0xc5,0x00,0x00,0x04,0xdc,0x00,0x00, -0x25,0xc6,0x00,0x00,0x25,0xc8,0x00,0x00,0x04,0xc4,0x00,0x00,0x25,0xc9,0x00,0x00,0x25,0xc9,0x00,0x00,0x04,0xc1,0x00,0x00,0x25,0xca,0x00,0x00,0x25,0xca,0x00,0x00,0x04,0xc7,0x00,0x00,0x25,0xcb,0x00,0x00,0x25,0xcb,0x00,0x00,0x04,0xbb,0x00,0x00,0x25,0xcc,0x00,0x00,0x25,0xcc,0x00,0x00,0x04,0xc0,0x00,0x00,0x25,0xce,0x00,0x00, -0x25,0xce,0x00,0x00,0x04,0xc2,0x00,0x00,0x25,0xcf,0x00,0x00,0x25,0xcf,0x00,0x00,0x04,0xba,0x00,0x00,0x25,0xd4,0x00,0x00,0x25,0xd5,0x00,0x00,0x04,0xbd,0x00,0x00,0x25,0xe6,0x00,0x00,0x25,0xe6,0x00,0x00,0x04,0xc3,0x00,0x00,0x25,0xe7,0x00,0x00,0x25,0xeb,0x00,0x00,0x04,0xcc,0x00,0x00,0x25,0xef,0x00,0x00,0x25,0xef,0x00,0x00, -0x04,0xbc,0x00,0x00,0x25,0xf6,0x00,0x00,0x25,0xf6,0x00,0x00,0x04,0xbf,0x00,0x00,0x26,0x6d,0x00,0x00,0x26,0x6d,0x00,0x00,0x06,0x60,0x00,0x00,0x26,0x6f,0x00,0x00,0x26,0x6f,0x00,0x00,0x06,0x61,0x00,0x00,0x26,0x87,0x00,0x00,0x26,0x87,0x00,0x00,0x05,0xab,0x00,0x00,0x26,0xa0,0x00,0x00,0x26,0xa1,0x00,0x00,0x05,0xac,0x00,0x00, -0x27,0x13,0x00,0x00,0x27,0x13,0x00,0x00,0x05,0xae,0x00,0x00,0x27,0x15,0x00,0x00,0x27,0x15,0x00,0x00,0x05,0xaf,0x00,0x00,0x27,0x17,0x00,0x00,0x27,0x17,0x00,0x00,0x05,0xb0,0x00,0x00,0x27,0x36,0x00,0x00,0x27,0x36,0x00,0x00,0x05,0xb1,0x00,0x00,0x27,0x6e,0x00,0x00,0x27,0x6e,0x00,0x00,0x03,0x4c,0x00,0x00,0x27,0x6f,0x00,0x00, -0x27,0x6f,0x00,0x00,0x03,0x4e,0x00,0x00,0x27,0x70,0x00,0x00,0x27,0x70,0x00,0x00,0x03,0x4b,0x00,0x00,0x27,0x71,0x00,0x00,0x27,0x71,0x00,0x00,0x03,0x4d,0x00,0x00,0x27,0x94,0x00,0x00,0x27,0x94,0x00,0x00,0x04,0x93,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0x9e,0x00,0x00,0x04,0x94,0x00,0x00,0x27,0xc5,0x00,0x00,0x27,0xc5,0x00,0x00, -0x03,0x51,0x00,0x00,0x27,0xc6,0x00,0x00,0x27,0xc6,0x00,0x00,0x03,0x54,0x00,0x00,0x27,0xdc,0x00,0x00,0x27,0xdc,0x00,0x00,0x03,0xef,0x00,0x00,0x27,0xe6,0x00,0x00,0x27,0xe6,0x00,0x00,0x03,0xb6,0x00,0x00,0x27,0xe7,0x00,0x00,0x27,0xe7,0x00,0x00,0x03,0xb9,0x00,0x00,0x27,0xe8,0x00,0x00,0x27,0xe8,0x00,0x00,0x03,0xb4,0x00,0x00, -0x27,0xe9,0x00,0x00,0x27,0xe9,0x00,0x00,0x03,0xb7,0x00,0x00,0x27,0xea,0x00,0x00,0x27,0xea,0x00,0x00,0x03,0xb5,0x00,0x00,0x27,0xeb,0x00,0x00,0x27,0xeb,0x00,0x00,0x03,0xb8,0x00,0x00,0x27,0xf5,0x00,0x00,0x27,0xf7,0x00,0x00,0x04,0x97,0x00,0x00,0x29,0x16,0x00,0x00,0x29,0x16,0x00,0x00,0x04,0x43,0x00,0x00,0x29,0x4a,0x00,0x00, -0x29,0x4a,0x00,0x00,0x03,0xee,0x00,0x00,0x29,0x87,0x00,0x00,0x29,0x88,0x00,0x00,0x03,0x55,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x03,0xfe,0x00,0x00,0x2a,0x05,0x00,0x00,0x2a,0x06,0x00,0x00,0x03,0xff,0x00,0x00,0x2b,0x58,0x00,0x00,0x2b,0x58,0x00,0x00,0x05,0xf1,0x00,0x00,0xe0,0xa0,0x00,0x00,0xe0,0xa2,0x00,0x00, -0x06,0xc4,0x00,0x00,0xe0,0xb0,0x00,0x00,0xe0,0xb3,0x00,0x00,0x06,0xc7,0x00,0x00,0xfe,0x62,0x00,0x00,0xfe,0x62,0x00,0x00,0x04,0x3a,0x00,0x00,0xfe,0xff,0x00,0x00,0xfe,0xff,0x00,0x00,0x03,0xc1,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x5b,0x00,0x00,0x03,0x49,0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0x5d,0x00,0x00,0x03,0x4a,0x00,0x00, -0xff,0xfd,0x00,0x00,0xff,0xfd,0x00,0x00,0x05,0xf6,0x00,0x01,0x69,0x10,0x00,0x01,0x69,0x10,0x00,0x00,0x02,0x9f,0x00,0x01,0xd5,0x38,0x00,0x01,0xd5,0x39,0x00,0x00,0x02,0xa0,0x00,0x01,0xd5,0x3b,0x00,0x01,0xd5,0x3e,0x00,0x00,0x02,0xa3,0x00,0x01,0xd5,0x40,0x00,0x01,0xd5,0x44,0x00,0x00,0x02,0xa8,0x00,0x01,0xd5,0x46,0x00,0x01, -0xd5,0x46,0x00,0x00,0x02,0xae,0x00,0x01,0xd5,0x4a,0x00,0x01,0xd5,0x50,0x00,0x00,0x02,0xb2,0x00,0x01,0xd5,0x52,0x00,0x01,0xd5,0x6b,0x00,0x00,0x02,0xba,0x00,0x00,0xb0,0x00,0x2c,0x20,0xb0,0x00,0x55,0x58,0x45,0x59,0x20,0x20,0x4b,0xb8,0x00,0x0e,0x51,0x4b,0xb0,0x06,0x53,0x5a,0x58,0xb0,0x34,0x1b,0xb0,0x28,0x59,0x60,0x66,0x20, -0x8a,0x55,0x58,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x62,0x1b,0x21,0x21,0xb0,0x00,0x59,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x01,0x2c,0xb0,0x20,0x60,0x66,0x2d,0xb0,0x02,0x2c,0x23,0x21,0x23,0x21,0x2d,0xb0,0x03,0x2c,0x20,0x64,0xb3,0x03,0x14,0x15,0x00,0x42,0x43,0xb0, -0x13,0x43,0x20,0x60,0x60,0x42,0xb1,0x02,0x14,0x43,0x42,0xb1,0x25,0x03,0x43,0xb0,0x02,0x43,0x54,0x78,0x20,0xb0,0x0c,0x23,0xb0,0x02,0x43,0x43,0x61,0x64,0xb0,0x04,0x50,0x78,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb0,0x21,0x65,0x1c,0x21,0xb0,0x02,0x43,0x43,0xb2,0x0e,0x15,0x01,0x42,0x1c,0x20,0xb0,0x02,0x43,0x23,0x42,0xb2,0x13, -0x01,0x13,0x43,0x60,0x42,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb2,0x16,0x01,0x02,0x43,0x60,0x42,0x2d,0xb0,0x04,0x2c,0xb0,0x03,0x2b,0xb0,0x15,0x43,0x58,0x23,0x21,0x23,0x21,0xb0,0x16,0x43,0x43,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x1b,0x20,0x64,0x20,0xb0,0xc0,0x50,0xb0,0x04,0x26,0x5a,0xb2,0x28,0x01,0x0d,0x43,0x45,0x63,0x45, -0xb0,0x06,0x45,0x58,0x21,0xb0,0x03,0x25,0x59,0x52,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20,0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x61,0x64,0xb0,0x28,0x50,0x58,0x21,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x20,0xb0,0x30,0x50, -0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36,0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x02,0x25,0xb0,0x0c,0x43,0x63,0xb0,0x00,0x52,0x58,0xb0,0x00,0x4b,0xb0, -0x0a,0x50,0x58,0x21,0xb0,0x0c,0x43,0x1b,0x4b,0xb0,0x1e,0x50,0x58,0x21,0xb0,0x1e,0x4b,0x61,0xb8,0x10,0x00,0x63,0xb0,0x0c,0x43,0x63,0xb8,0x05,0x00,0x62,0x59,0x59,0x64,0x61,0x59,0xb0,0x01,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x20,0x64,0xb0,0x16,0x43,0x23,0x42,0x59,0x2d,0xb0,0x05,0x2c,0x20,0x45,0x20,0xb0, -0x04,0x25,0x61,0x64,0x20,0xb0,0x07,0x43,0x50,0x58,0xb0,0x07,0x23,0x42,0xb0,0x08,0x23,0x42,0x1b,0x21,0x21,0x59,0xb0,0x01,0x60,0x2d,0xb0,0x06,0x2c,0x23,0x21,0x23,0x21,0xb0,0x03,0x2b,0x20,0x64,0xb1,0x07,0x62,0x42,0x20,0xb0,0x08,0x23,0x42,0xb0,0x06,0x45,0x58,0x1b,0xb1,0x01,0x0d,0x43,0x45,0x63,0xb1,0x01,0x0d,0x43,0xb0,0x05, -0x60,0x45,0x63,0xb0,0x05,0x2a,0x21,0x20,0xb0,0x08,0x43,0x20,0x8a,0x20,0x8a,0xb0,0x01,0x2b,0xb1,0x30,0x05,0x25,0xb0,0x04,0x26,0x51,0x58,0x60,0x50,0x1b,0x61,0x52,0x59,0x58,0x23,0x59,0x21,0x59,0x20,0xb0,0x40,0x53,0x58,0xb0,0x01,0x2b,0x1b,0x21,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x07,0x2c,0xb0,0x09, -0x43,0x2b,0xb2,0x00,0x02,0x00,0x43,0x60,0x42,0x2d,0xb0,0x08,0x2c,0xb0,0x09,0x23,0x42,0x23,0x20,0xb0,0x00,0x23,0x42,0x61,0xb0,0x02,0x62,0x66,0xb0,0x01,0x63,0xb0,0x01,0x60,0xb0,0x07,0x2a,0x2d,0xb0,0x09,0x2c,0x20,0x20,0x45,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0, -0x01,0x63,0x60,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0a,0x2c,0xb2,0x09,0x0e,0x00,0x43,0x45,0x42,0x2a,0x21,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0b,0x2c,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0c,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45, -0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a, -0x23,0x61,0x20,0x64,0xb0,0x24,0x50,0x58,0xb0,0x00,0x1b,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0e,0x2c,0x20,0xb0,0x00,0x23,0x42,0xb3,0x0d,0x0c,0x00,0x03,0x45,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x2a,0x21,0x2d,0xb0,0x0f,0x2c,0xb1,0x02,0x02,0x45,0xb0, -0x64,0x61,0x44,0x2d,0xb0,0x10,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0f,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0f,0x23,0x42,0x59,0xb0,0x10,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x10,0x23,0x42,0x59,0x2d,0xb0,0x11,0x2c,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0x20,0xb8,0x04,0x00,0x63,0x8a,0x23,0x61,0xb0,0x11,0x43,0x60, -0x20,0x8a,0x60,0x20,0xb0,0x11,0x23,0x42,0x23,0x2d,0xb0,0x12,0x2c,0x4b,0x54,0x58,0xb1,0x04,0x64,0x44,0x59,0x24,0xb0,0x0d,0x65,0x23,0x78,0x2d,0xb0,0x13,0x2c,0x4b,0x51,0x58,0x4b,0x53,0x58,0xb1,0x04,0x64,0x44,0x59,0x1b,0x21,0x59,0x24,0xb0,0x13,0x65,0x23,0x78,0x2d,0xb0,0x14,0x2c,0xb1,0x00,0x12,0x43,0x55,0x58,0xb1,0x12,0x12, -0x43,0xb0,0x01,0x61,0x42,0xb0,0x11,0x2b,0x59,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb1,0x0f,0x02,0x25,0x42,0xb1,0x10,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb1,0x01,0x00,0x43,0x60,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0,0x10,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0, -0x10,0x2a,0x21,0x1b,0xb1,0x01,0x00,0x43,0x60,0xb0,0x02,0x25,0x42,0xb0,0x02,0x25,0x61,0xb0,0x10,0x2a,0x21,0x59,0xb0,0x0f,0x43,0x47,0xb0,0x10,0x43,0x47,0x60,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60, -0x59,0x66,0xb0,0x01,0x63,0x60,0xb1,0x00,0x00,0x13,0x23,0x44,0xb0,0x01,0x43,0xb0,0x00,0x3e,0xb2,0x01,0x01,0x01,0x43,0x60,0x42,0x2d,0xb0,0x15,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb7,0x18,0x18,0x01,0x00,0x11,0x00,0x13,0x00, -0x42,0x42,0x42,0x8a,0x60,0x20,0xb0,0x14,0x23,0x42,0xb0,0x01,0x61,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x16,0x2c,0xb1,0x00,0x15,0x2b,0x2d,0xb0,0x17,0x2c,0xb1,0x01,0x15,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x02,0x15,0x2b,0x2d,0xb0,0x19,0x2c,0xb1,0x03,0x15,0x2b,0x2d,0xb0,0x1a,0x2c,0xb1,0x04,0x15,0x2b,0x2d, -0xb0,0x1b,0x2c,0xb1,0x05,0x15,0x2b,0x2d,0xb0,0x1c,0x2c,0xb1,0x06,0x15,0x2b,0x2d,0xb0,0x1d,0x2c,0xb1,0x07,0x15,0x2b,0x2d,0xb0,0x1e,0x2c,0xb1,0x08,0x15,0x2b,0x2d,0xb0,0x1f,0x2c,0xb1,0x09,0x15,0x2b,0x2d,0xb0,0x2b,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x06,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x5d, -0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2c,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x16,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x71,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2d,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x26,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x72,0x1b,0x21,0x21,0x59,0x2d,0xb0, -0x20,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb0,0x01,0x61,0xb5,0x18,0x18,0x01,0x00,0x11,0x00,0x42,0x42,0x8a,0x60,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x21,0x2c,0xb1,0x00,0x20,0x2b,0x2d, -0xb0,0x22,0x2c,0xb1,0x01,0x20,0x2b,0x2d,0xb0,0x23,0x2c,0xb1,0x02,0x20,0x2b,0x2d,0xb0,0x24,0x2c,0xb1,0x03,0x20,0x2b,0x2d,0xb0,0x25,0x2c,0xb1,0x04,0x20,0x2b,0x2d,0xb0,0x26,0x2c,0xb1,0x05,0x20,0x2b,0x2d,0xb0,0x27,0x2c,0xb1,0x06,0x20,0x2b,0x2d,0xb0,0x28,0x2c,0xb1,0x07,0x20,0x2b,0x2d,0xb0,0x29,0x2c,0xb1,0x08,0x20,0x2b,0x2d, -0xb0,0x2a,0x2c,0xb1,0x09,0x20,0x2b,0x2d,0xb0,0x2e,0x2c,0x20,0x3c,0xb0,0x01,0x60,0x2d,0xb0,0x2f,0x2c,0x20,0x60,0xb0,0x18,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0x61,0xb0,0x01,0x60,0xb0,0x2e,0x2a,0x21,0x2d,0xb0,0x30,0x2c,0xb0,0x2f,0x2b,0xb0,0x2f,0x2a,0x2d,0xb0,0x31,0x2c,0x20,0x20,0x47,0x20,0x20,0xb0,0x0e, -0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x32,0x2c, -0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x33,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22, -0x59,0x2d,0xb0,0x34,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x35,0x2c,0x00,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x45,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, -0x63,0xb0,0x01,0x2b,0xb0,0x00,0x16,0xb4,0x00,0x00,0x00,0x00,0x00,0x44,0x3e,0x23,0x38,0xb1,0x34,0x01,0x15,0x2a,0x21,0x2d,0xb0,0x36,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x37,0x2c,0x2e, -0x17,0x3c,0x2d,0xb0,0x38,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x39,0x2c,0xb1,0x02,0x00,0x16,0x25,0x20,0x2e,0x20,0x47,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0x49,0x8a, -0x8a,0x47,0x23,0x47,0x23,0x61,0x20,0x58,0x62,0x1b,0x21,0x59,0xb0,0x01,0x23,0x42,0xb2,0x38,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x3a,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0, -0x3b,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x0a,0x43, -0x20,0x8a,0x23,0x47,0x23,0x47,0x23,0x61,0x23,0x46,0x60,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0, -0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0a,0x43,0x46,0xb0,0x02,0x25,0xb0,0x0a,0x43,0x47,0x23,0x47,0x23,0x61,0x60,0x20,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66, -0xb0,0x01,0x63,0x60,0x23,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x06,0x43,0x60,0xb0,0x01,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0,0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23, -0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x59,0x2d,0xb0,0x3c,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0x20,0x20,0xb0,0x05,0x26,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x23,0x3c,0x38,0x2d,0xb0,0x3d,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x23,0x42,0x20,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61, -0x38,0x2d,0xb0,0x3e,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x03,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x05,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x06,0x25,0xb0,0x05,0x25,0x49,0xb0, -0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x20,0x58,0x62,0x1b,0x21,0x59,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2d,0xb0,0x3f,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x43,0x20,0x2e, -0x47,0x23,0x47,0x23,0x61,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x40,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d, -0xb0,0x41,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x42,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43, -0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x43,0x2c,0xb0,0x3a,0x2b,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x44,0x2c,0xb0,0x3b,0x2b,0x8a,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x8a, -0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x45,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x26,0x20,0x20,0x20,0x46,0x23,0x47,0x61,0xb0,0x0c,0x23,0x42,0x2e,0x47,0x23,0x47,0x23,0x61, -0xb0,0x0b,0x43,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x46,0x2c,0xb1,0x0a,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58, -0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0x47,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b, -0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x21,0x59,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x47,0x2c,0xb1,0x00,0x3a,0x2b, -0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x48,0x2c,0xb1,0x00,0x3b,0x2b,0x21,0x23,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x49,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4a, -0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4b,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x37,0x2a,0x2d,0xb0,0x4c,0x2c,0xb0,0x39,0x2a,0x2d,0xb0,0x4d,0x2c,0xb0,0x00,0x16,0x45,0x23,0x20,0x2e,0x20,0x46,0x8a,0x23,0x61,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0, -0x4e,0x2c,0xb0,0x0a,0x23,0x42,0xb0,0x4d,0x2b,0x2d,0xb0,0x4f,0x2c,0xb2,0x00,0x00,0x46,0x2b,0x2d,0xb0,0x50,0x2c,0xb2,0x00,0x01,0x46,0x2b,0x2d,0xb0,0x51,0x2c,0xb2,0x01,0x00,0x46,0x2b,0x2d,0xb0,0x52,0x2c,0xb2,0x01,0x01,0x46,0x2b,0x2d,0xb0,0x53,0x2c,0xb2,0x00,0x00,0x47,0x2b,0x2d,0xb0,0x54,0x2c,0xb2,0x00,0x01,0x47,0x2b,0x2d, -0xb0,0x55,0x2c,0xb2,0x01,0x00,0x47,0x2b,0x2d,0xb0,0x56,0x2c,0xb2,0x01,0x01,0x47,0x2b,0x2d,0xb0,0x57,0x2c,0xb3,0x00,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x58,0x2c,0xb3,0x00,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x59,0x2c,0xb3,0x01,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x5a,0x2c,0xb3,0x01,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x5b,0x2c,0xb3,0x00,0x00, -0x01,0x43,0x2b,0x2d,0xb0,0x5c,0x2c,0xb3,0x00,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5d,0x2c,0xb3,0x01,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5e,0x2c,0xb3,0x01,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5f,0x2c,0xb2,0x00,0x00,0x45,0x2b,0x2d,0xb0,0x60,0x2c,0xb2,0x00,0x01,0x45,0x2b,0x2d,0xb0,0x61,0x2c,0xb2,0x01,0x00,0x45,0x2b,0x2d,0xb0,0x62,0x2c, -0xb2,0x01,0x01,0x45,0x2b,0x2d,0xb0,0x63,0x2c,0xb2,0x00,0x00,0x48,0x2b,0x2d,0xb0,0x64,0x2c,0xb2,0x00,0x01,0x48,0x2b,0x2d,0xb0,0x65,0x2c,0xb2,0x01,0x00,0x48,0x2b,0x2d,0xb0,0x66,0x2c,0xb2,0x01,0x01,0x48,0x2b,0x2d,0xb0,0x67,0x2c,0xb3,0x00,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x68,0x2c,0xb3,0x00,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x69, -0x2c,0xb3,0x01,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x6a,0x2c,0xb3,0x01,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x6b,0x2c,0xb3,0x00,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6c,0x2c,0xb3,0x00,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6d,0x2c,0xb3,0x01,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6e,0x2c,0xb3,0x01,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6f,0x2c,0xb1,0x00,0x3c, -0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x70,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x71,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x72,0x2c,0xb0,0x00,0x16,0xb1,0x00,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x73,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x74,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x41, -0x2b,0x2d,0xb0,0x75,0x2c,0xb0,0x00,0x16,0xb1,0x01,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x76,0x2c,0xb1,0x00,0x3d,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x77,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x78,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x79,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0, -0x7a,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7b,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x7c,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7d,0x2c,0xb1,0x00,0x3e,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x7e,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7f,0x2c,0xb1,0x00,0x3e,0x2b, -0xb0,0x41,0x2b,0x2d,0xb0,0x80,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x81,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x82,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x83,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x84,0x2c,0xb1,0x00,0x3f,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x85, -0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x86,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x87,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x88,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x89,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x8a,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x42,0x2b,0x2d, -0xb0,0x8b,0x2c,0xb2,0x0b,0x00,0x03,0x45,0x50,0x58,0xb0,0x06,0x1b,0xb2,0x04,0x02,0x03,0x45,0x58,0x23,0x21,0x1b,0x21,0x59,0x59,0x42,0x2b,0xb0,0x08,0x65,0xb0,0x03,0x24,0x50,0x78,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x2d,0x00,0x4b,0xb8,0x00,0xc8,0x52,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x01,0xb9,0x08,0x00,0x08,0x00,0x63, -0x70,0xb1,0x00,0x07,0x42,0xb6,0x00,0x00,0x41,0x31,0x21,0x05,0x00,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x4e,0x04,0x46,0x04,0x36,0x08,0x26,0x08,0x18,0x07,0x05,0x0a,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x52,0x02,0x4a,0x02,0x3e,0x06,0x2e,0x06,0x1f,0x05,0x05,0x0a,0x2a,0xb1,0x00,0x0c,0x42,0xbe,0x13,0xc0,0x11,0xc0,0x0d,0xc0,0x09, -0xc0,0x06,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb1,0x00,0x11,0x42,0xbe,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb9,0x00,0x03,0x00,0x00,0x44,0xb1,0x24,0x01,0x88,0x51,0x58,0xb0,0x40,0x88,0x58,0xb9,0x00,0x03,0x00,0x64,0x44,0xb1,0x28,0x01,0x88,0x51,0x58,0xb8,0x08,0x00,0x88,0x58,0xb9,0x00,0x03, -0x00,0x00,0x44,0x59,0x1b,0xb1,0x27,0x01,0x88,0x51,0x58,0xba,0x08,0x80,0x00,0x01,0x04,0x40,0x88,0x63,0x54,0x58,0xb9,0x00,0x03,0x00,0x00,0x44,0x59,0x59,0x59,0x59,0x59,0x40,0x0c,0x50,0x02,0x48,0x02,0x38,0x06,0x28,0x06,0x1a,0x05,0x05,0x0e,0x2a,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0xb1,0x02,0x00,0x44,0xb3,0x05,0x64,0x06,0x00, -0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0x26,0x00,0x00, -0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0xe4,0x02,0x2e,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c, -0x02,0xe4,0xff,0xf6,0x03,0x09,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x01,0x3b,0xff,0x7b,0x01,0x40,0xff,0x76,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x03,0x3e,0x01,0x7e,0x03,0x43,0x01,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x04, -0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x84,0x00,0x00,0x01,0x9c,0x00,0x00,0x01,0xb4,0x00,0x00,0x01,0xcc,0x00,0x00,0x01,0xec,0x00,0x00,0x02,0x04,0x00,0x00,0x02,0x1c,0x00,0x00,0x02,0x34,0x00,0x00,0x02,0x4c,0x00,0x00,0x02,0x64,0x00,0x00,0x02,0x7c,0x00,0x00,0x02,0x94, -0x00,0x00,0x02,0xac,0x00,0x00,0x03,0x78,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0xa8,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x40,0x00,0x00,0x04,0xe0,0x00,0x00,0x05,0x70,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0xa0,0x00,0x00,0x06,0xb8,0x00,0x00,0x06,0xd0,0x00,0x00,0x06,0xe8,0x00,0x00,0x07,0x58,0x00,0x00,0x07,0xe8,0x00,0x00,0x08,0x00, -0x00,0x00,0x08,0x90,0x00,0x00,0x08,0xec,0x00,0x00,0x09,0x04,0x00,0x00,0x09,0x1c,0x00,0x00,0x09,0x34,0x00,0x00,0x09,0x4c,0x00,0x00,0x09,0x64,0x00,0x00,0x09,0x84,0x00,0x00,0x09,0x9c,0x00,0x00,0x09,0xb4,0x00,0x00,0x09,0xcc,0x00,0x00,0x09,0xe4,0x00,0x00,0x09,0xfc,0x00,0x00,0x0a,0x14,0x00,0x00,0x0a,0x2c,0x00,0x00,0x0a,0x44, -0x00,0x00,0x0a,0x5c,0x00,0x00,0x0b,0x20,0x00,0x00,0x0b,0xf0,0x00,0x00,0x0c,0x08,0x00,0x00,0x0c,0x5c,0x00,0x00,0x0c,0xf4,0x00,0x00,0x0d,0x0c,0x00,0x00,0x0d,0x24,0x00,0x00,0x0d,0x3c,0x00,0x00,0x0d,0x54,0x00,0x00,0x0d,0x6c,0x00,0x00,0x0d,0x84,0x00,0x00,0x0d,0xd8,0x00,0x00,0x0e,0x58,0x00,0x00,0x0e,0x70,0x00,0x00,0x0e,0xc4, -0x00,0x00,0x0e,0xdc,0x00,0x00,0x0e,0xf4,0x00,0x00,0x0f,0x0c,0x00,0x00,0x0f,0x24,0x00,0x00,0x0f,0x3c,0x00,0x00,0x0f,0x54,0x00,0x00,0x0f,0x6c,0x00,0x00,0x0f,0x84,0x00,0x00,0x0f,0x9c,0x00,0x00,0x10,0x50,0x00,0x00,0x10,0x68,0x00,0x00,0x10,0xcc,0x00,0x00,0x10,0xe4,0x00,0x00,0x11,0x44,0x00,0x00,0x11,0x5c,0x00,0x00,0x11,0x98, -0x00,0x00,0x11,0xb0,0x00,0x00,0x11,0xc8,0x00,0x00,0x11,0xe0,0x00,0x00,0x12,0x04,0x00,0x00,0x12,0x64,0x00,0x00,0x12,0xdc,0x00,0x00,0x13,0x40,0x00,0x00,0x13,0x58,0x00,0x00,0x13,0x70,0x00,0x00,0x13,0x88,0x00,0x00,0x14,0x08,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xbc,0x00,0x00,0x14,0xd4,0x00,0x00,0x14,0xec, -0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x24,0x00,0x00,0x15,0x3c,0x00,0x00,0x15,0x54,0x00,0x00,0x15,0x6c,0x00,0x00,0x15,0x84,0x00,0x00,0x15,0x9c,0x00,0x00,0x15,0xb4,0x00,0x00,0x15,0xcc,0x00,0x00,0x16,0x74,0x00,0x00,0x16,0x8c,0x00,0x00,0x16,0xa4,0x00,0x00,0x16,0xbc,0x00,0x00,0x16,0xd4,0x00,0x00,0x16,0xec,0x00,0x00,0x17,0x04, -0x00,0x00,0x17,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0xec,0x00,0x00,0x19,0x04,0x00,0x00,0x19,0x1c,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xe8,0x00,0x00,0x1b,0x5c,0x00,0x00,0x1b,0xfc,0x00,0x00,0x1c,0x7c,0x00,0x00,0x1c,0x94,0x00,0x00,0x1c,0xac,0x00,0x00,0x1c,0xc4,0x00,0x00,0x1d,0x78,0x00,0x00,0x1d,0x90,0x00,0x00,0x1d,0xa8, -0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xfc,0x00,0x00,0x1f,0x14,0x00,0x00,0x1f,0xac,0x00,0x00,0x20,0x4c,0x00,0x00,0x20,0x90,0x00,0x00,0x20,0xf4,0x00,0x00,0x21,0x0c,0x00,0x00,0x21,0xc8,0x00,0x00,0x21,0xe0,0x00,0x00,0x22,0x40,0x00,0x00,0x22,0x58,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xb8, -0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xe8,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x84,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0xb4,0x00,0x00,0x23,0xcc,0x00,0x00,0x23,0xe4,0x00,0x00,0x23,0xfc,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0xcc,0x00,0x00,0x24,0xe4,0x00,0x00,0x24,0xfc,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0xe8,0x00,0x00,0x26,0x00, -0x00,0x00,0x26,0x18,0x00,0x00,0x26,0x30,0x00,0x00,0x26,0x48,0x00,0x00,0x26,0xc4,0x00,0x00,0x27,0x24,0x00,0x00,0x27,0x3c,0x00,0x00,0x27,0x54,0x00,0x00,0x27,0x6c,0x00,0x00,0x27,0x84,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0xb4,0x00,0x00,0x27,0xcc,0x00,0x00,0x27,0xe4,0x00,0x00,0x28,0x3c,0x00,0x00,0x28,0x54,0x00,0x00,0x28,0x6c, -0x00,0x00,0x28,0x84,0x00,0x00,0x29,0x10,0x00,0x00,0x29,0x28,0x00,0x00,0x29,0x40,0x00,0x00,0x29,0x58,0x00,0x00,0x29,0x70,0x00,0x00,0x29,0xcc,0x00,0x00,0x29,0xe4,0x00,0x00,0x2a,0x94,0x00,0x00,0x2b,0x88,0x00,0x00,0x2b,0xa0,0x00,0x00,0x2b,0xb8,0x00,0x00,0x2b,0xd0,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2c,0x08,0x00,0x00,0x2c,0x20, -0x00,0x00,0x2c,0x38,0x00,0x00,0x2c,0x50,0x00,0x00,0x2c,0x68,0x00,0x00,0x2c,0x80,0x00,0x00,0x2c,0xa0,0x00,0x00,0x2c,0xb8,0x00,0x00,0x2c,0xd0,0x00,0x00,0x2c,0xe8,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x18,0x00,0x00,0x2d,0x30,0x00,0x00,0x2d,0x48,0x00,0x00,0x2d,0x60,0x00,0x00,0x2e,0xe0,0x00,0x00,0x2e,0xf8,0x00,0x00,0x2f,0x10, -0x00,0x00,0x30,0x6c,0x00,0x00,0x30,0x84,0x00,0x00,0x31,0x54,0x00,0x00,0x31,0xe4,0x00,0x00,0x31,0xfc,0x00,0x00,0x32,0x14,0x00,0x00,0x33,0x2c,0x00,0x00,0x33,0x44,0x00,0x00,0x33,0x5c,0x00,0x00,0x34,0x2c,0x00,0x00,0x35,0x00,0x00,0x00,0x35,0xf8,0x00,0x00,0x36,0xf0,0x00,0x00,0x37,0x94,0x00,0x00,0x37,0xac,0x00,0x00,0x37,0xc4, -0x00,0x00,0x37,0xdc,0x00,0x00,0x37,0xf4,0x00,0x00,0x38,0x0c,0x00,0x00,0x38,0x2c,0x00,0x00,0x38,0x44,0x00,0x00,0x38,0x5c,0x00,0x00,0x38,0x74,0x00,0x00,0x38,0x8c,0x00,0x00,0x38,0xa4,0x00,0x00,0x38,0xbc,0x00,0x00,0x38,0xd4,0x00,0x00,0x38,0xec,0x00,0x00,0x39,0x04,0x00,0x00,0x3a,0x0c,0x00,0x00,0x3a,0x24,0x00,0x00,0x3a,0xc4, -0x00,0x00,0x3b,0x28,0x00,0x00,0x3c,0x10,0x00,0x00,0x3c,0x28,0x00,0x00,0x3c,0x40,0x00,0x00,0x3c,0x58,0x00,0x00,0x3c,0x70,0x00,0x00,0x3c,0x88,0x00,0x00,0x3c,0xa0,0x00,0x00,0x3d,0x10,0x00,0x00,0x3d,0x20,0x00,0x00,0x3d,0x44,0x00,0x00,0x3d,0x5c,0x00,0x00,0x3d,0xa8,0x00,0x00,0x3d,0xc0,0x00,0x00,0x3d,0xd8,0x00,0x00,0x3d,0xf0, -0x00,0x00,0x3e,0x08,0x00,0x00,0x3e,0x20,0x00,0x00,0x3e,0x38,0x00,0x00,0x3e,0x58,0x00,0x00,0x3e,0x70,0x00,0x00,0x3e,0x88,0x00,0x00,0x3e,0xa0,0x00,0x00,0x3f,0xc8,0x00,0x00,0x3f,0xe0,0x00,0x00,0x3f,0xf8,0x00,0x00,0x40,0x50,0x00,0x00,0x40,0x68,0x00,0x00,0x40,0xcc,0x00,0x00,0x40,0xe4,0x00,0x00,0x40,0xf4,0x00,0x00,0x41,0x4c, -0x00,0x00,0x41,0x64,0x00,0x00,0x41,0xe0,0x00,0x00,0x41,0xf8,0x00,0x00,0x42,0x10,0x00,0x00,0x42,0x34,0x00,0x00,0x42,0xa4,0x00,0x00,0x43,0x64,0x00,0x00,0x43,0xf4,0x00,0x00,0x44,0x0c,0x00,0x00,0x44,0x30,0x00,0x00,0x44,0x48,0x00,0x00,0x44,0x60,0x00,0x00,0x45,0x14,0x00,0x00,0x45,0x2c,0x00,0x00,0x45,0xac,0x00,0x00,0x45,0xc4, -0x00,0x00,0x45,0xdc,0x00,0x00,0x45,0xf4,0x00,0x00,0x46,0x0c,0x00,0x00,0x46,0x24,0x00,0x00,0x46,0x44,0x00,0x00,0x46,0x5c,0x00,0x00,0x46,0x74,0x00,0x00,0x46,0x8c,0x00,0x00,0x46,0xa4,0x00,0x00,0x46,0xbc,0x00,0x00,0x46,0xd4,0x00,0x00,0x46,0xec,0x00,0x00,0x47,0xc8,0x00,0x00,0x47,0xe0,0x00,0x00,0x47,0xf8,0x00,0x00,0x48,0x10, -0x00,0x00,0x48,0x28,0x00,0x00,0x48,0x40,0x00,0x00,0x48,0x58,0x00,0x00,0x48,0x70,0x00,0x00,0x49,0x54,0x00,0x00,0x4a,0x18,0x00,0x00,0x4a,0x30,0x00,0x00,0x4a,0x48,0x00,0x00,0x4b,0x50,0x00,0x00,0x4c,0x1c,0x00,0x00,0x4c,0xf0,0x00,0x00,0x4d,0xc0,0x00,0x00,0x4e,0x58,0x00,0x00,0x4e,0x70,0x00,0x00,0x4e,0x88,0x00,0x00,0x4e,0xa0, -0x00,0x00,0x4f,0x50,0x00,0x00,0x4f,0x68,0x00,0x00,0x4f,0x80,0x00,0x00,0x50,0xb4,0x00,0x00,0x50,0xcc,0x00,0x00,0x50,0xe4,0x00,0x00,0x51,0x90,0x00,0x00,0x51,0xdc,0x00,0x00,0x52,0x4c,0x00,0x00,0x52,0xd4,0x00,0x00,0x52,0xf8,0x00,0x00,0x53,0xe8,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x60,0x00,0x00,0x54,0x78,0x00,0x00,0x54,0x90, -0x00,0x00,0x54,0xa8,0x00,0x00,0x54,0xc0,0x00,0x00,0x54,0xd8,0x00,0x00,0x55,0x04,0x00,0x00,0x55,0x30,0x00,0x00,0x55,0x5c,0x00,0x00,0x55,0x88,0x00,0x00,0x55,0xa0,0x00,0x00,0x55,0xb8,0x00,0x00,0x55,0xd0,0x00,0x00,0x56,0x6c,0x00,0x00,0x56,0x84,0x00,0x00,0x56,0x9c,0x00,0x00,0x56,0xb4,0x00,0x00,0x56,0xcc,0x00,0x00,0x56,0xe4, -0x00,0x00,0x56,0xfc,0x00,0x00,0x57,0x14,0x00,0x00,0x57,0xc8,0x00,0x00,0x57,0xe0,0x00,0x00,0x57,0xf8,0x00,0x00,0x58,0x50,0x00,0x00,0x58,0xe8,0x00,0x00,0x59,0x00,0x00,0x00,0x59,0x18,0x00,0x00,0x59,0x30,0x00,0x00,0x59,0x48,0x00,0x00,0x59,0xc4,0x00,0x00,0x5a,0x24,0x00,0x00,0x5a,0x3c,0x00,0x00,0x5a,0x54,0x00,0x00,0x5a,0x6c, -0x00,0x00,0x5a,0x84,0x00,0x00,0x5a,0x9c,0x00,0x00,0x5a,0xb4,0x00,0x00,0x5a,0xcc,0x00,0x00,0x5a,0xe4,0x00,0x00,0x5b,0x3c,0x00,0x00,0x5b,0x54,0x00,0x00,0x5b,0x6c,0x00,0x00,0x5b,0x84,0x00,0x00,0x5b,0x94,0x00,0x00,0x5b,0xe0,0x00,0x00,0x5b,0xf8,0x00,0x00,0x5c,0x10,0x00,0x00,0x5c,0x28,0x00,0x00,0x5c,0x4c,0x00,0x00,0x5c,0xbc, -0x00,0x00,0x5d,0x48,0x00,0x00,0x5d,0xe8,0x00,0x00,0x5e,0x0c,0x00,0x00,0x5f,0x20,0x00,0x00,0x5f,0x38,0x00,0x00,0x60,0xbc,0x00,0x00,0x60,0xd4,0x00,0x00,0x60,0xec,0x00,0x00,0x61,0x04,0x00,0x00,0x61,0x1c,0x00,0x00,0x61,0x34,0x00,0x00,0x61,0x4c,0x00,0x00,0x61,0x64,0x00,0x00,0x62,0x04,0x00,0x00,0x62,0x1c,0x00,0x00,0x62,0x90, -0x00,0x00,0x62,0xa8,0x00,0x00,0x62,0xc0,0x00,0x00,0x62,0xd8,0x00,0x00,0x63,0x7c,0x00,0x00,0x64,0x04,0x00,0x00,0x64,0xd0,0x00,0x00,0x65,0x5c,0x00,0x00,0x65,0x74,0x00,0x00,0x65,0x8c,0x00,0x00,0x65,0xa4,0x00,0x00,0x65,0xbc,0x00,0x00,0x66,0x1c,0x00,0x00,0x66,0x34,0x00,0x00,0x66,0x44,0x00,0x00,0x66,0xb8,0x00,0x00,0x67,0x64, -0x00,0x00,0x67,0x7c,0x00,0x00,0x67,0x94,0x00,0x00,0x67,0xac,0x00,0x00,0x68,0x1c,0x00,0x00,0x68,0x34,0x00,0x00,0x68,0x4c,0x00,0x00,0x68,0x64,0x00,0x00,0x68,0x7c,0x00,0x00,0x68,0x94,0x00,0x00,0x68,0xac,0x00,0x00,0x68,0xc4,0x00,0x00,0x68,0xdc,0x00,0x00,0x69,0x6c,0x00,0x00,0x6a,0x28,0x00,0x00,0x6b,0x0c,0x00,0x00,0x6b,0xdc, -0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0xcc,0x00,0x00,0x6e,0x8c,0x00,0x00,0x6f,0x9c,0x00,0x00,0x70,0x80,0x00,0x00,0x70,0x98,0x00,0x00,0x70,0xb0,0x00,0x00,0x70,0xc8,0x00,0x00,0x70,0xe0,0x00,0x00,0x70,0xf8,0x00,0x00,0x71,0xd0,0x00,0x00,0x72,0xb8,0x00,0x00,0x73,0xc0,0x00,0x00,0x74,0xc8,0x00,0x00,0x76,0x48,0x00,0x00,0x76,0xcc, -0x00,0x00,0x77,0x44,0x00,0x00,0x77,0xac,0x00,0x00,0x78,0xa8,0x00,0x00,0x79,0x30,0x00,0x00,0x79,0x40,0x00,0x00,0x79,0xb8,0x00,0x00,0x79,0xc8,0x00,0x00,0x7a,0x08,0x00,0x00,0x7a,0x20,0x00,0x00,0x7a,0x8c,0x00,0x00,0x7b,0x0c,0x00,0x00,0x7b,0x1c,0x00,0x00,0x7b,0x34,0x00,0x00,0x7b,0xb8,0x00,0x00,0x7c,0x88,0x00,0x00,0x7c,0xec, -0x00,0x00,0x7d,0x04,0x00,0x00,0x7d,0x14,0x00,0x00,0x7d,0x2c,0x00,0x00,0x7d,0xb4,0x00,0x00,0x7d,0xc4,0x00,0x00,0x7d,0xd4,0x00,0x00,0x7d,0xe4,0x00,0x00,0x7e,0x28,0x00,0x00,0x7e,0x38,0x00,0x00,0x7e,0x48,0x00,0x00,0x7e,0x58,0x00,0x00,0x7e,0xb4,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7f,0xf0,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x5c, -0x00,0x00,0x80,0xb4,0x00,0x00,0x81,0x08,0x00,0x00,0x81,0x6c,0x00,0x00,0x81,0xe4,0x00,0x00,0x82,0x54,0x00,0x00,0x82,0xd0,0x00,0x00,0x83,0x58,0x00,0x00,0x84,0x28,0x00,0x00,0x84,0xb4,0x00,0x00,0x84,0xc4,0x00,0x00,0x85,0x68,0x00,0x00,0x85,0xfc,0x00,0x00,0x86,0x0c,0x00,0x00,0x86,0x24,0x00,0x00,0x86,0x34,0x00,0x00,0x86,0xb0, -0x00,0x00,0x87,0x8c,0x00,0x00,0x88,0x14,0x00,0x00,0x88,0xac,0x00,0x00,0x89,0x08,0x00,0x00,0x89,0x7c,0x00,0x00,0x89,0xe0,0x00,0x00,0x89,0xf0,0x00,0x00,0x8a,0x68,0x00,0x00,0x8a,0xd4,0x00,0x00,0x8b,0x30,0x00,0x00,0x8b,0xd0,0x00,0x00,0x8b,0xe8,0x00,0x00,0x8c,0x00,0x00,0x00,0x8c,0x18,0x00,0x00,0x8c,0x30,0x00,0x00,0x8c,0xcc, -0x00,0x00,0x8c,0xe4,0x00,0x00,0x8d,0x64,0x00,0x00,0x8d,0x74,0x00,0x00,0x8d,0x8c,0x00,0x00,0x8d,0xfc,0x00,0x00,0x8e,0x70,0x00,0x00,0x8e,0x88,0x00,0x00,0x8f,0x60,0x00,0x00,0x8f,0x70,0x00,0x00,0x90,0x14,0x00,0x00,0x90,0xb4,0x00,0x00,0x90,0xf4,0x00,0x00,0x91,0x0c,0x00,0x00,0x91,0x78,0x00,0x00,0x91,0xf8,0x00,0x00,0x92,0x08, -0x00,0x00,0x92,0x20,0x00,0x00,0x92,0x9c,0x00,0x00,0x93,0x68,0x00,0x00,0x93,0xc8,0x00,0x00,0x93,0xe0,0x00,0x00,0x94,0x3c,0x00,0x00,0x94,0x54,0x00,0x00,0x94,0xdc,0x00,0x00,0x95,0x4c,0x00,0x00,0x95,0x9c,0x00,0x00,0x95,0xac,0x00,0x00,0x95,0xf0,0x00,0x00,0x96,0x00,0x00,0x00,0x96,0x10,0x00,0x00,0x96,0x54,0x00,0x00,0x96,0x64, -0x00,0x00,0x96,0x7c,0x00,0x00,0x97,0x34,0x00,0x00,0x97,0x44,0x00,0x00,0x97,0x9c,0x00,0x00,0x97,0xf4,0x00,0x00,0x98,0x48,0x00,0x00,0x98,0xac,0x00,0x00,0x99,0x24,0x00,0x00,0x99,0x90,0x00,0x00,0x9a,0x04,0x00,0x00,0x9a,0x88,0x00,0x00,0x9b,0x8c,0x00,0x00,0x9c,0x14,0x00,0x00,0x9c,0x24,0x00,0x00,0x9c,0xc8,0x00,0x00,0x9d,0x6c, -0x00,0x00,0x9d,0x84,0x00,0x00,0x9d,0x9c,0x00,0x00,0x9d,0xb4,0x00,0x00,0x9e,0x40,0x00,0x00,0x9f,0x18,0x00,0x00,0x9f,0x98,0x00,0x00,0xa0,0x40,0x00,0x00,0xa0,0x9c,0x00,0x00,0xa1,0x08,0x00,0x00,0xa1,0x68,0x00,0x00,0xa1,0x78,0x00,0x00,0xa1,0xf0,0x00,0x00,0xa2,0x5c,0x00,0x00,0xa2,0xb8,0x00,0x00,0xa3,0x5c,0x00,0x00,0xa3,0x74, -0x00,0x00,0xa3,0x8c,0x00,0x00,0xa3,0xa4,0x00,0x00,0xa3,0xbc,0x00,0x00,0xa4,0x58,0x00,0x00,0xa4,0x70,0x00,0x00,0xa4,0x88,0x00,0x00,0xa5,0x08,0x00,0x00,0xa5,0x64,0x00,0x00,0xa5,0x7c,0x00,0x00,0xa5,0xe8,0x00,0x00,0xa5,0xf8,0x00,0x00,0xa6,0x10,0x00,0x00,0xa6,0xbc,0x00,0x00,0xa6,0xcc,0x00,0x00,0xa6,0xdc,0x00,0x00,0xa6,0xec, -0x00,0x00,0xa7,0x50,0x00,0x00,0xa7,0x60,0x00,0x00,0xa7,0x70,0x00,0x00,0xa7,0x80,0x00,0x00,0xa8,0x20,0x00,0x00,0xa8,0x30,0x00,0x00,0xa8,0x40,0x00,0x00,0xa8,0x90,0x00,0x00,0xa8,0xa0,0x00,0x00,0xa8,0xb0,0x00,0x00,0xa9,0x24,0x00,0x00,0xa9,0x34,0x00,0x00,0xa9,0x44,0x00,0x00,0xa9,0x54,0x00,0x00,0xa9,0xbc,0x00,0x00,0xa9,0xcc, -0x00,0x00,0xa9,0xdc,0x00,0x00,0xa9,0xec,0x00,0x00,0xa9,0xfc,0x00,0x00,0xaa,0x78,0x00,0x00,0xab,0x44,0x00,0x00,0xab,0x5c,0x00,0x00,0xab,0x74,0x00,0x00,0xab,0x8c,0x00,0x00,0xab,0xa4,0x00,0x00,0xab,0xbc,0x00,0x00,0xab,0xd4,0x00,0x00,0xab,0xec,0x00,0x00,0xac,0x04,0x00,0x00,0xac,0x1c,0x00,0x00,0xac,0xac,0x00,0x00,0xac,0xbc, -0x00,0x00,0xad,0x48,0x00,0x00,0xae,0x14,0x00,0x00,0xae,0xe8,0x00,0x00,0xaf,0x48,0x00,0x00,0xaf,0xf4,0x00,0x00,0xb0,0xc4,0x00,0x00,0xb1,0x40,0x00,0x00,0xb1,0x50,0x00,0x00,0xb1,0xec,0x00,0x00,0xb2,0x44,0x00,0x00,0xb2,0x54,0x00,0x00,0xb2,0xb0,0x00,0x00,0xb3,0x54,0x00,0x00,0xb3,0x64,0x00,0x00,0xb4,0x2c,0x00,0x00,0xb4,0x3c, -0x00,0x00,0xb4,0xd4,0x00,0x00,0xb5,0x6c,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x88,0x00,0x00,0xb6,0xe8,0x00,0x00,0xb6,0xf8,0x00,0x00,0xb7,0xa8,0x00,0x00,0xb7,0xb8,0x00,0x00,0xb8,0x30,0x00,0x00,0xb8,0xe4,0x00,0x00,0xb8,0xfc,0x00,0x00,0xb9,0x14,0x00,0x00,0xb9,0x2c,0x00,0x00,0xb9,0x44,0x00,0x00,0xb9,0x5c,0x00,0x00,0xb9,0x74, -0x00,0x00,0xb9,0x8c,0x00,0x00,0xb9,0xa4,0x00,0x00,0xba,0x9c,0x00,0x00,0xbc,0x6c,0x00,0x00,0xbc,0x84,0x00,0x00,0xbd,0x10,0x00,0x00,0xbd,0x20,0x00,0x00,0xbd,0xe4,0x00,0x00,0xbd,0xf4,0x00,0x00,0xbe,0x6c,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0xac,0x00,0x00,0xc0,0x98,0x00,0x00,0xc1,0x48,0x00,0x00,0xc1,0xe8, -0x00,0x00,0xc2,0x58,0x00,0x00,0xc2,0xc0,0x00,0x00,0xc3,0x90,0x00,0x00,0xc4,0x18,0x00,0x00,0xc4,0x7c,0x00,0x00,0xc5,0x0c,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc5,0xf4,0x00,0x00,0xc6,0x9c,0x00,0x00,0xc7,0x1c,0x00,0x00,0xc7,0xd8,0x00,0x00,0xc8,0x78,0x00,0x00,0xc9,0x50,0x00,0x00,0xca,0x20,0x00,0x00,0xcb,0x18,0x00,0x00,0xcb,0x70, -0x00,0x00,0xcb,0xf0,0x00,0x00,0xcc,0x64,0x00,0x00,0xcd,0x3c,0x00,0x00,0xcd,0xb8,0x00,0x00,0xce,0x3c,0x00,0x00,0xce,0xb8,0x00,0x00,0xd0,0x00,0x00,0x00,0xd1,0x24,0x00,0x00,0xd1,0xd0,0x00,0x00,0xd2,0xf0,0x00,0x00,0xd3,0xc4,0x00,0x00,0xd4,0x54,0x00,0x00,0xd5,0x88,0x00,0x00,0xd6,0x24,0x00,0x00,0xd7,0x24,0x00,0x00,0xd8,0x30, -0x00,0x00,0xd8,0xc4,0x00,0x00,0xd9,0x30,0x00,0x00,0xda,0x80,0x00,0x00,0xdb,0x54,0x00,0x00,0xdc,0x0c,0x00,0x00,0xdd,0x28,0x00,0x00,0xde,0x48,0x00,0x00,0xdf,0x14,0x00,0x00,0xe0,0x10,0x00,0x00,0xe0,0xac,0x00,0x00,0xe1,0x2c,0x00,0x00,0xe1,0xa0,0x00,0x00,0xe2,0x80,0x00,0x00,0xe2,0xf4,0x00,0x00,0xe3,0x84,0x00,0x00,0xe3,0xf0, -0x00,0x00,0xe4,0xa8,0x00,0x00,0xe4,0xfc,0x00,0x00,0xe5,0x80,0x00,0x00,0xe6,0x18,0x00,0x00,0xe6,0x78,0x00,0x00,0xe7,0x08,0x00,0x00,0xe7,0xac,0x00,0x00,0xe8,0x28,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0xac,0x00,0x00,0xea,0x50,0x00,0x00,0xea,0xe4,0x00,0x00,0xeb,0xa4,0x00,0x00,0xec,0x68,0x00,0x00,0xed,0x48,0x00,0x00,0xed,0xf8, -0x00,0x00,0xee,0x18,0x00,0x00,0xee,0x38,0x00,0x00,0xee,0x58,0x00,0x00,0xee,0x78,0x00,0x00,0xee,0x98,0x00,0x00,0xee,0xb8,0x00,0x00,0xee,0xd8,0x00,0x00,0xee,0xf8,0x00,0x00,0xef,0x18,0x00,0x00,0xef,0x38,0x00,0x00,0xef,0x58,0x00,0x00,0xef,0x78,0x00,0x00,0xef,0x98,0x00,0x00,0xef,0xb8,0x00,0x00,0xef,0xd8,0x00,0x00,0xef,0xf8, -0x00,0x00,0xf0,0x18,0x00,0x00,0xf0,0x38,0x00,0x00,0xf0,0x58,0x00,0x00,0xf0,0x78,0x00,0x00,0xf0,0x94,0x00,0x00,0xf0,0xb0,0x00,0x00,0xf0,0xcc,0x00,0x00,0xf0,0xe8,0x00,0x00,0xf1,0x04,0x00,0x00,0xf1,0x20,0x00,0x00,0xf1,0x3c,0x00,0x00,0xf1,0x58,0x00,0x00,0xf1,0x74,0x00,0x00,0xf1,0x90,0x00,0x00,0xf2,0x14,0x00,0x00,0xf2,0x68, -0x00,0x00,0xf2,0xf0,0x00,0x00,0xf3,0x84,0x00,0x00,0xf3,0xe4,0x00,0x00,0xf4,0x70,0x00,0x00,0xf5,0x04,0x00,0x00,0xf5,0x80,0x00,0x00,0xf6,0x58,0x00,0x00,0xf6,0xec,0x00,0x00,0xf7,0x0c,0x00,0x00,0xf7,0x2c,0x00,0x00,0xf7,0x4c,0x00,0x00,0xf7,0x6c,0x00,0x00,0xf7,0x8c,0x00,0x00,0xf7,0xac,0x00,0x00,0xf7,0xc8,0x00,0x00,0xf7,0xe4, -0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x88,0x00,0x00,0xf9,0x48,0x00,0x00,0xfa,0x04,0x00,0x00,0xfa,0x24,0x00,0x00,0xfa,0x44,0x00,0x00,0xfa,0x60,0x00,0x00,0xfb,0x44,0x00,0x00,0xfb,0x64,0x00,0x00,0xfb,0x80,0x00,0x00,0xfb,0x9c,0x00,0x00,0xfc,0x4c,0x00,0x00,0xfc,0x84,0x00,0x00,0xfd,0x78,0x00,0x00,0xfe,0x44,0x00,0x00,0xff,0x98, -0x00,0x00,0xff,0xb8,0x00,0x00,0xff,0xc8,0x00,0x00,0xff,0xe8,0x00,0x01,0x00,0x70,0x00,0x01,0x01,0x10,0x00,0x01,0x01,0x58,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x24,0x00,0x01,0x02,0xb4,0x00,0x01,0x03,0x5c,0x00,0x01,0x03,0xc8,0x00,0x01,0x04,0x38,0x00,0x01,0x05,0x0c,0x00,0x01,0x05,0xe8,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x54, -0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x5c,0x00,0x01,0x07,0xb4,0x00,0x01,0x07,0xfc,0x00,0x01,0x08,0x14,0x00,0x01,0x08,0xbc,0x00,0x01,0x09,0x60,0x00,0x01,0x09,0x70,0x00,0x01,0x09,0xb0,0x00,0x01,0x09,0xe4,0x00,0x01,0x0a,0x1c,0x00,0x01,0x0a,0x74,0x00,0x01,0x0a,0xf4,0x00,0x01,0x0b,0x14,0x00,0x01,0x0b,0x34,0x00,0x01,0x0b,0x78, -0x00,0x01,0x0b,0xbc,0x00,0x01,0x0c,0x6c,0x00,0x01,0x0d,0x1c,0x00,0x01,0x0d,0x68,0x00,0x01,0x0d,0xb4,0x00,0x01,0x0d,0xc4,0x00,0x01,0x0d,0xd4,0x00,0x01,0x0e,0x14,0x00,0x01,0x0e,0x58,0x00,0x01,0x0e,0x94,0x00,0x01,0x0e,0xd0,0x00,0x01,0x0f,0x14,0x00,0x01,0x0f,0x58,0x00,0x01,0x10,0x24,0x00,0x01,0x10,0x68,0x00,0x01,0x10,0xac, -0x00,0x01,0x11,0x70,0x00,0x01,0x11,0xbc,0x00,0x01,0x12,0x04,0x00,0x01,0x12,0x3c,0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x84,0x00,0x01,0x12,0xbc,0x00,0x01,0x12,0xcc,0x00,0x01,0x13,0x0c,0x00,0x01,0x13,0x7c,0x00,0x01,0x13,0x94,0x00,0x01,0x14,0x20,0x00,0x01,0x14,0x50,0x00,0x01,0x14,0xa4,0x00,0x01,0x14,0xc4,0x00,0x01,0x15,0x14, -0x00,0x01,0x15,0x94,0x00,0x01,0x15,0xfc,0x00,0x01,0x16,0x64,0x00,0x01,0x16,0xac,0x00,0x01,0x16,0xf0,0x00,0x01,0x17,0x30,0x00,0x01,0x17,0x48,0x00,0x01,0x17,0x80,0x00,0x01,0x17,0xd0,0x00,0x01,0x18,0x38,0x00,0x01,0x19,0xa4,0x00,0x01,0x1a,0x04,0x00,0x01,0x1a,0x70,0x00,0x01,0x1a,0xd8,0x00,0x01,0x1b,0x78,0x00,0x01,0x1b,0xd4, -0x00,0x01,0x1c,0x58,0x00,0x01,0x1d,0x1c,0x00,0x01,0x1d,0x34,0x00,0x01,0x1e,0xa8,0x00,0x01,0x20,0x1c,0x00,0x01,0x20,0x3c,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x18,0x00,0x01,0x21,0x7c,0x00,0x01,0x21,0xa0,0x00,0x01,0x22,0x74,0x00,0x01,0x22,0x8c,0x00,0x01,0x22,0xac,0x00,0x01,0x22,0xd0,0x00,0x01,0x22,0xe8,0x00,0x01,0x23,0x0c, -0x00,0x01,0x23,0x24,0x00,0x01,0x23,0x48,0x00,0x01,0x23,0x7c,0x00,0x01,0x23,0x94,0x00,0x01,0x25,0xa8,0x00,0x01,0x26,0x8c,0x00,0x01,0x26,0xb0,0x00,0x01,0x26,0xd4,0x00,0x01,0x26,0xec,0x00,0x01,0x27,0x10,0x00,0x01,0x27,0x28,0x00,0x01,0x27,0x48,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x70,0x00,0x01,0x28,0x88,0x00,0x01,0x28,0xa0, -0x00,0x01,0x28,0xb8,0x00,0x01,0x28,0xd8,0x00,0x01,0x2a,0x04,0x00,0x01,0x2a,0x30,0x00,0x01,0x2a,0x48,0x00,0x01,0x2a,0x6c,0x00,0x01,0x2b,0x50,0x00,0x01,0x2c,0xe8,0x00,0x01,0x2d,0xc0,0x00,0x01,0x2f,0x0c,0x00,0x01,0x30,0x54,0x00,0x01,0x32,0x24,0x00,0x01,0x33,0x30,0x00,0x01,0x34,0xa8,0x00,0x01,0x36,0x88,0x00,0x01,0x37,0xe0, -0x00,0x01,0x38,0x98,0x00,0x01,0x39,0x88,0x00,0x01,0x39,0xac,0x00,0x01,0x39,0xe0,0x00,0x01,0x3a,0x48,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x1c,0x00,0x01,0x3b,0x34,0x00,0x01,0x3b,0xb8,0x00,0x01,0x3b,0xd8,0x00,0x01,0x3c,0x28,0x00,0x01,0x3c,0x78,0x00,0x01,0x3c,0xe0,0x00,0x01,0x3d,0x18,0x00,0x01,0x3d,0xc0,0x00,0x01,0x3e,0x94, -0x00,0x01,0x3e,0xdc,0x00,0x01,0x3f,0x50,0x00,0x01,0x3f,0xb0,0x00,0x01,0x3f,0xf8,0x00,0x01,0x40,0x5c,0x00,0x01,0x40,0xbc,0x00,0x01,0x40,0xdc,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x41,0xc4,0x00,0x01,0x42,0x78, -0x00,0x01,0x43,0x68,0x00,0x01,0x44,0x40,0x00,0x01,0x45,0x5c,0x00,0x01,0x46,0x2c,0x00,0x01,0x46,0xa8,0x00,0x01,0x47,0x94,0x00,0x01,0x48,0x30,0x00,0x01,0x48,0xe8,0x00,0x01,0x49,0x68,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0xa8,0x00,0x01,0x4b,0x68,0x00,0x01,0x4c,0x48,0x00,0x01,0x4c,0xf0,0x00,0x01,0x4d,0x8c,0x00,0x01,0x4d,0xd4, -0x00,0x01,0x4d,0xf0,0x00,0x01,0x4e,0xa8,0x00,0x01,0x4f,0x74,0x00,0x01,0x50,0x7c,0x00,0x01,0x50,0xd4,0x00,0x01,0x51,0x08,0x00,0x01,0x51,0x64,0x00,0x01,0x51,0x98,0x00,0x01,0x51,0xc8,0x00,0x01,0x51,0xd8,0x00,0x01,0x52,0x34,0x00,0x01,0x52,0xa0,0x00,0x01,0x53,0x5c,0x00,0x01,0x54,0x08,0x00,0x01,0x54,0x94,0x00,0x01,0x55,0x10, -0x00,0x01,0x55,0xbc,0x00,0x01,0x55,0xec,0x00,0x01,0x56,0x44,0x00,0x01,0x56,0xb8,0x00,0x01,0x57,0x5c,0x00,0x01,0x57,0xf8,0x00,0x01,0x58,0x58,0x00,0x01,0x58,0xc0,0x00,0x01,0x59,0xb8,0x00,0x01,0x5a,0x50,0x00,0x01,0x5a,0xa0,0x00,0x01,0x5b,0x2c,0x00,0x01,0x5b,0x7c,0x00,0x01,0x5b,0xf8,0x00,0x01,0x5c,0x48,0x00,0x01,0x5c,0x90, -0x00,0x01,0x5c,0xc4,0x00,0x01,0x5d,0x08,0x00,0x01,0x5d,0x4c,0x00,0x01,0x5e,0x04,0x00,0x01,0x5e,0xa4,0x00,0x01,0x5f,0x04,0x00,0x01,0x5f,0x68,0x00,0x01,0x5f,0xd0,0x00,0x01,0x60,0x60,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0xc4,0x00,0x01,0x62,0x0c,0x00,0x01,0x62,0x58,0x00,0x01,0x62,0xdc,0x00,0x01,0x63,0x40,0x00,0x01,0x63,0xa0, -0x00,0x01,0x64,0xe8,0x00,0x01,0x66,0x2c,0x00,0x01,0x67,0x3c,0x00,0x01,0x67,0xc0,0x00,0x01,0x68,0x30,0x00,0x01,0x69,0xc0,0x00,0x01,0x6a,0xd4,0x00,0x01,0x6b,0xe4,0x00,0x01,0x6c,0xb0,0x00,0x01,0x6d,0x2c,0x00,0x01,0x6e,0x08,0x00,0x01,0x6f,0x24,0x00,0x01,0x6f,0xa8,0x00,0x01,0x70,0x84,0x00,0x01,0x71,0xa8,0x00,0x01,0x72,0x50, -0x00,0x01,0x72,0xfc,0x00,0x01,0x73,0x74,0x00,0x01,0x73,0x84,0x00,0x01,0x73,0xbc,0x00,0x01,0x74,0x58,0x00,0x01,0x74,0xb0,0x00,0x01,0x75,0x2c,0x00,0x01,0x75,0x68,0x00,0x01,0x75,0xa8,0x00,0x01,0x76,0x14,0x00,0x01,0x76,0x84,0x00,0x01,0x77,0x08,0x00,0x01,0x77,0x34,0x00,0x01,0x77,0x98,0x00,0x01,0x78,0x50,0x00,0x01,0x78,0xb0, -0x00,0x01,0x79,0x9c,0x00,0x01,0x7a,0x78,0x00,0x01,0x7a,0xd0,0x00,0x01,0x7b,0x28,0x00,0x01,0x7b,0x8c,0x00,0x01,0x7b,0xec,0x00,0x01,0x7c,0x50,0x00,0x01,0x7c,0x60,0x00,0x01,0x7c,0xb8,0x00,0x01,0x7d,0x28,0x00,0x01,0x7d,0x94,0x00,0x01,0x7e,0x48,0x00,0x01,0x7e,0x58,0x00,0x01,0x7e,0xa0,0x00,0x01,0x7e,0xd4,0x00,0x01,0x7f,0x10, -0x00,0x01,0x7f,0x54,0x00,0x01,0x7f,0x64,0x00,0x01,0x7f,0xa0,0x00,0x01,0x7f,0xdc,0x00,0x01,0x81,0x28,0x00,0x01,0x82,0xd8,0x00,0x01,0x83,0x30,0x00,0x01,0x83,0x88,0x00,0x01,0x83,0xfc,0x00,0x01,0x84,0x94,0x00,0x01,0x85,0x68,0x00,0x01,0x86,0x88,0x00,0x01,0x86,0x98,0x00,0x01,0x87,0x28,0x00,0x01,0x87,0xb4,0x00,0x01,0x88,0x94, -0x00,0x01,0x88,0xe4,0x00,0x01,0x89,0x58,0x00,0x01,0x89,0xa0,0x00,0x01,0x89,0xe4,0x00,0x01,0x89,0xf4,0x00,0x01,0x8a,0x30,0x00,0x01,0x8a,0x6c,0x00,0x01,0x8a,0xb8,0x00,0x01,0x8b,0x70,0x00,0x01,0x8b,0xec,0x00,0x01,0x8b,0xfc,0x00,0x01,0x8c,0x48,0x00,0x01,0x8c,0x90,0x00,0x01,0x8d,0x14,0x00,0x01,0x8d,0x84,0x00,0x01,0x8e,0x00, -0x00,0x01,0x8e,0x98,0x00,0x01,0x8e,0xe4,0x00,0x01,0x8f,0x50,0x00,0x01,0x8f,0x98,0x00,0x01,0x90,0x04,0x00,0x01,0x90,0x48,0x00,0x01,0x90,0xdc,0x00,0x01,0x91,0x4c,0x00,0x01,0x91,0xc0,0x00,0x01,0x92,0x48,0x00,0x01,0x92,0xcc,0x00,0x01,0x93,0x38,0x00,0x01,0x93,0x80,0x00,0x01,0x93,0xc8,0x00,0x01,0x94,0xb8,0x00,0x01,0x95,0x60, -0x00,0x01,0x97,0x44,0x00,0x01,0x97,0xb8,0x00,0x01,0x98,0x68,0x00,0x01,0x98,0xac,0x00,0x01,0x99,0x2c,0x00,0x01,0x9a,0x64,0x00,0x01,0x9b,0x18,0x00,0x01,0x9b,0xec,0x00,0x01,0x9c,0xa0,0x00,0x01,0x9d,0x54,0x00,0x01,0x9e,0x3c,0x00,0x01,0x9f,0x00,0x00,0x01,0x9f,0xd0,0x00,0x01,0xa0,0x24,0x00,0x01,0xa0,0x88,0x00,0x01,0xa0,0xf4, -0x00,0x01,0xa1,0x54,0x00,0x01,0xa1,0xa8,0x00,0x01,0xa2,0x10,0x00,0x01,0xa2,0x74,0x00,0x01,0xa2,0xd4,0x00,0x01,0xa3,0x60,0x00,0x01,0xa3,0xc4,0x00,0x01,0xa4,0xa0,0x00,0x01,0xa5,0x8c,0x00,0x01,0xa6,0x34,0x00,0x01,0xa6,0xd4,0x00,0x01,0xa7,0x6c,0x00,0x01,0xa8,0x00,0x00,0x01,0xa8,0x64,0x00,0x01,0xa8,0xf8,0x00,0x01,0xa9,0x58, -0x00,0x01,0xa9,0xd0,0x00,0x01,0xaa,0x6c,0x00,0x01,0xab,0x00,0x00,0x01,0xab,0x38,0x00,0x01,0xab,0xf0,0x00,0x01,0xac,0x48,0x00,0x01,0xac,0xec,0x00,0x01,0xad,0x38,0x00,0x01,0xad,0xd4,0x00,0x01,0xae,0x98,0x00,0x01,0xaf,0x54,0x00,0x01,0xaf,0xd0,0x00,0x01,0xb0,0x48,0x00,0x01,0xb0,0x70,0x00,0x01,0xb0,0xe8,0x00,0x01,0xb1,0x64, -0x00,0x01,0xb2,0x18,0x00,0x01,0xb2,0x60,0x00,0x01,0xb2,0xa8,0x00,0x01,0xb3,0x30,0x00,0x01,0xb3,0xb8,0x00,0x01,0xb4,0x7c,0x00,0x01,0xb4,0xb4,0x00,0x01,0xb4,0xe8,0x00,0x01,0xb5,0x1c,0x00,0x01,0xb5,0x50,0x00,0x01,0xb5,0x84,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb5,0xec,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x54,0x00,0x01,0xb6,0x8c, -0x00,0x01,0xb6,0xbc,0x00,0x01,0xb6,0xec,0x00,0x01,0xb7,0x1c,0x00,0x01,0xb7,0x50,0x00,0x01,0xb7,0x84,0x00,0x01,0xb7,0xb8,0x00,0x01,0xb7,0xec,0x00,0x01,0xb8,0x20,0x00,0x01,0xb8,0x54,0x00,0x01,0xb8,0x88,0x00,0x01,0xb8,0xbc,0x00,0x01,0xb8,0xf0,0x00,0x01,0xb9,0x30,0x00,0x01,0xb9,0x84,0x00,0x01,0xb9,0xc4,0x00,0x01,0xba,0x04, -0x00,0x01,0xba,0x38,0x00,0x01,0xba,0x90,0x00,0x01,0xba,0xd0,0x00,0x01,0xbd,0x1c,0x00,0x01,0xc1,0xbc,0x00,0x01,0xc4,0x08,0x00,0x01,0xc4,0x58,0x00,0x01,0xc4,0xec,0x00,0x01,0xc5,0x80,0x00,0x01,0xc6,0x1c,0x00,0x01,0xc6,0x98,0x00,0x01,0xc7,0x4c,0x00,0x01,0xc8,0x80,0x00,0x01,0xc9,0x58,0x00,0x01,0xca,0x64,0x00,0x01,0xca,0xe0, -0x00,0x01,0xcb,0x08,0x00,0x01,0xcb,0x40,0x00,0x01,0xcb,0x88,0x00,0x01,0xcc,0x10,0x00,0x01,0xcc,0x40,0x00,0x01,0xcc,0x94,0x00,0x01,0xcc,0xc8,0x00,0x01,0xcd,0x18,0x00,0x01,0xcd,0x6c,0x00,0x01,0xcd,0xc0,0x00,0x01,0xce,0x10,0x00,0x01,0xce,0x64,0x00,0x01,0xce,0xc8,0x00,0x01,0xce,0xf8,0x00,0x01,0xcf,0x18,0x00,0x01,0xcf,0x3c, -0x00,0x01,0xcf,0x60,0x00,0x01,0xcf,0xac,0x00,0x01,0xcf,0xdc,0x00,0x01,0xd0,0x1c,0x00,0x01,0xd0,0x50,0x00,0x01,0xd0,0x70,0x00,0x01,0xd0,0x90,0x00,0x01,0xd0,0xc0,0x00,0x01,0xd0,0xec,0x00,0x01,0xd1,0x1c,0x00,0x01,0xd1,0x3c,0x00,0x01,0xd1,0x64,0x00,0x01,0xd1,0x84,0x00,0x01,0xd1,0xcc,0x00,0x01,0xd1,0xf8,0x00,0x01,0xd2,0x34, -0x00,0x01,0xd2,0x60,0x00,0x01,0xd2,0xe4,0x00,0x01,0xd3,0x50,0x00,0x01,0xd3,0xbc,0x00,0x01,0xd4,0x14,0x00,0x01,0xd4,0x94,0x00,0x01,0xd4,0xfc,0x00,0x01,0xd5,0x64,0x00,0x01,0xd5,0xb0,0x00,0x01,0xd6,0x60,0x00,0x01,0xd6,0xec,0x00,0x01,0xd7,0x74,0x00,0x01,0xd7,0xcc,0x00,0x01,0xd8,0x20,0x00,0x01,0xd8,0x74,0x00,0x01,0xd8,0xc0, -0x00,0x01,0xd9,0x04,0x00,0x01,0xd9,0x5c,0x00,0x01,0xd9,0xa0,0x00,0x01,0xd9,0xf8,0x00,0x01,0xda,0x58,0x00,0x01,0xda,0xa4,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x40,0x00,0x01,0xdb,0x84,0x00,0x01,0xdb,0xdc,0x00,0x01,0xdc,0x3c,0x00,0x01,0xdc,0xa8,0x00,0x01,0xdd,0x00,0x00,0x01,0xdd,0x58,0x00,0x01,0xdd,0xa8,0x00,0x01,0xdd,0xfc, -0x00,0x01,0xde,0x30,0x00,0x01,0xde,0x7c,0x00,0x01,0xde,0xc0,0x00,0x01,0xdf,0x04,0x00,0x01,0xdf,0x3c,0x00,0x01,0xdf,0x74,0x00,0x01,0xdf,0xc0,0x00,0x01,0xe0,0x3c,0x00,0x01,0xe0,0xcc,0x00,0x01,0xe1,0x04,0x00,0x01,0xe1,0x68,0x00,0x01,0xe1,0xdc,0x00,0x01,0xe2,0x10,0x00,0x01,0xe2,0x5c,0x00,0x01,0xe2,0xa0,0x00,0x01,0xe2,0xe4, -0x00,0x01,0xe3,0x28,0x00,0x01,0xe3,0x5c,0x00,0x01,0xe3,0xb8,0x00,0x01,0xe4,0x08,0x00,0x01,0xe4,0x58,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe5,0x18,0x00,0x01,0xe5,0x70,0x00,0x01,0xe5,0xd4,0x00,0x01,0xe6,0x2c,0x00,0x01,0xe6,0x80,0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x48,0x00,0x01,0xe7,0xa0,0x00,0x01,0xe7,0xf8,0x00,0x01,0xe8,0x50, -0x00,0x01,0xe8,0xac,0x00,0x01,0xe9,0x18,0x00,0x01,0xe9,0x58,0x00,0x01,0xe9,0x98,0x00,0x01,0xe9,0xe8,0x00,0x01,0xea,0x3c,0x00,0x01,0xea,0x70,0x00,0x01,0xea,0xbc,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x44,0x00,0x01,0xeb,0x7c,0x00,0x01,0xeb,0xb4,0x00,0x01,0xec,0x00,0x00,0x01,0xec,0x7c,0x00,0x01,0xed,0x0c,0x00,0x01,0xed,0x44, -0x00,0x01,0xed,0xa8,0x00,0x01,0xee,0x1c,0x00,0x01,0xee,0x50,0x00,0x01,0xee,0x94,0x00,0x01,0xee,0xe0,0x00,0x01,0xef,0x24,0x00,0x01,0xef,0x68,0x00,0x01,0xef,0x9c,0x00,0x01,0xef,0xfc,0x00,0x01,0xf0,0x4c,0x00,0x01,0xf0,0x9c,0x00,0x01,0xf1,0x04,0x00,0x01,0xf1,0x5c,0x00,0x01,0xf1,0xb4,0x00,0x01,0xf2,0x18,0x00,0x01,0xf2,0x70, -0x00,0x01,0xf2,0xc4,0x00,0x01,0xf3,0x24,0x00,0x01,0xf3,0x8c,0x00,0x01,0xf3,0xe4,0x00,0x01,0xf4,0x38,0x00,0x01,0xf4,0x8c,0x00,0x01,0xf4,0xec,0x00,0x01,0xf5,0x38,0x00,0x01,0xf5,0x90,0x00,0x01,0xf5,0xd4,0x00,0x01,0xf6,0x2c,0x00,0x01,0xf6,0x70,0x00,0x01,0xf6,0xd0,0x00,0x01,0xf7,0x1c,0x00,0x01,0xf7,0x74,0x00,0x01,0xf7,0xb8, -0x00,0x01,0xf8,0x10,0x00,0x01,0xf8,0x54,0x00,0x01,0xf8,0xbc,0x00,0x01,0xf9,0x14,0x00,0x01,0xf9,0x6c,0x00,0x01,0xf9,0xe4,0x00,0x01,0xfa,0x48,0x00,0x01,0xfa,0xb0,0x00,0x01,0xfb,0x0c,0x00,0x01,0xfb,0x5c,0x00,0x01,0xfb,0xac,0x00,0x01,0xfc,0x0c,0x00,0x01,0xfc,0x5c,0x00,0x01,0xfc,0xac,0x00,0x01,0xfd,0x30,0x00,0x01,0xfd,0x94, -0x00,0x01,0xfd,0xf8,0x00,0x01,0xfe,0x54,0x00,0x01,0xff,0x0c,0x00,0x01,0xff,0xe0,0x00,0x02,0x00,0x40,0x00,0x02,0x00,0x58,0x00,0x02,0x01,0x48,0x00,0x02,0x02,0x3c,0x00,0x02,0x03,0x08,0x00,0x02,0x03,0xac,0x00,0x02,0x04,0x60,0x00,0x02,0x04,0xc0,0x00,0x02,0x05,0x7c,0x00,0x02,0x06,0x04,0x00,0x02,0x06,0x88,0x00,0x02,0x07,0x0c, -0x00,0x02,0x08,0x20,0x00,0x02,0x08,0x84,0x00,0x02,0x08,0x9c,0x00,0x02,0x09,0x14,0x00,0x02,0x09,0xd8,0x00,0x02,0x0a,0x3c,0x00,0x02,0x0a,0x98,0x00,0x02,0x0b,0x84,0x00,0x02,0x0b,0x9c,0x00,0x02,0x0b,0xac,0x00,0x02,0x0c,0x28,0x00,0x02,0x0d,0x00,0x00,0x02,0x0d,0x9c,0x00,0x02,0x0e,0x3c,0x00,0x02,0x0e,0xa8,0x00,0x02,0x0f,0x58, -0x00,0x02,0x10,0x24,0x00,0x02,0x10,0x78,0x00,0x02,0x10,0xe0,0x00,0x02,0x11,0xb0,0x00,0x02,0x12,0x64,0x00,0x02,0x13,0x10,0x00,0x02,0x13,0xc0,0x00,0x02,0x14,0x44,0x00,0x02,0x15,0x1c,0x00,0x02,0x15,0xc8,0x00,0x02,0x16,0x58,0x00,0x02,0x16,0xe8,0x00,0x02,0x17,0x80,0x00,0x02,0x17,0xa0,0x00,0x02,0x18,0x60,0x00,0x02,0x18,0xf4, -0x00,0x02,0x19,0xc4,0x00,0x02,0x1a,0xec,0x00,0x02,0x1b,0xac,0x00,0x02,0x1c,0x20,0x00,0x02,0x1c,0xd0,0x00,0x02,0x1d,0x6c,0x00,0x02,0x1d,0xf0,0x00,0x02,0x1e,0x54,0x00,0x02,0x1e,0xf0,0x00,0x02,0x1f,0x60,0x00,0x02,0x1f,0xf8,0x00,0x02,0x20,0x58,0x00,0x02,0x20,0xa8,0x00,0x02,0x21,0x54,0x00,0x02,0x22,0x4c,0x00,0x02,0x22,0x70, -0x00,0x02,0x22,0x88,0x00,0x02,0x23,0x4c,0x00,0x02,0x23,0xf4,0x00,0x02,0x24,0xbc,0x00,0x02,0x25,0x14,0x00,0x02,0x25,0x74,0x00,0x02,0x26,0x54,0x00,0x02,0x27,0x44,0x00,0x02,0x27,0xdc,0x00,0x02,0x28,0x20,0x00,0x02,0x28,0x4c,0x00,0x02,0x28,0x84,0x00,0x02,0x28,0xbc,0x00,0x02,0x28,0xf4,0x00,0x02,0x29,0xbc,0x00,0x02,0x2a,0xfc, -0x00,0x02,0x2b,0xdc,0x00,0x02,0x2d,0x04,0x00,0x02,0x2d,0x64,0x00,0x02,0x2e,0x78,0x00,0x02,0x2f,0x90,0x00,0x02,0x30,0x98,0x00,0x02,0x31,0x60,0x00,0x02,0x31,0xe8,0x00,0x02,0x32,0x08,0x00,0x02,0x32,0x38,0x00,0x02,0x32,0x68,0x00,0x02,0x32,0xc0,0x00,0x02,0x33,0x18,0x00,0x02,0x33,0xc8,0x00,0x02,0x34,0x40,0x00,0x02,0x35,0x5c, -0x00,0x02,0x36,0x18,0x00,0x02,0x36,0xe0,0x00,0x02,0x37,0x4c,0x00,0x02,0x37,0xfc,0x00,0x02,0x38,0xe4,0x00,0x02,0x39,0xe4,0x00,0x02,0x3a,0x20,0x00,0x02,0x3a,0x5c,0x00,0x02,0x3a,0xa0,0x00,0x02,0x3a,0xdc,0x00,0x02,0x3b,0x20,0x00,0x02,0x3b,0xd8,0x00,0x02,0x3c,0x74,0x00,0x02,0x3d,0x30,0x00,0x02,0x3d,0xe0,0x00,0x02,0x3f,0x0c, -0x00,0x02,0x3f,0xe8,0x00,0x02,0x40,0xc4,0x00,0x02,0x41,0x98,0x00,0x02,0x42,0x64,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd4,0x00,0x02,0x45,0x18,0x00,0x02,0x45,0xf4,0x00,0x02,0x46,0xf0,0x00,0x02,0x47,0x88,0x00,0x02,0x48,0xc0,0x00,0x02,0x49,0x50,0x00,0x02,0x4a,0x34,0x00,0x02,0x4a,0x8c,0x00,0x02,0x4b,0x3c,0x00,0x02,0x4b,0xbc, -0x00,0x02,0x4c,0x3c,0x00,0x02,0x4d,0x3c,0x00,0x02,0x4d,0xa0,0x00,0x02,0x4e,0x20,0x00,0x02,0x4e,0xa4,0x00,0x02,0x50,0x10,0x00,0x02,0x50,0xa8,0x00,0x02,0x51,0x28,0x00,0x02,0x51,0xe0,0x00,0x02,0x52,0x74,0x00,0x02,0x53,0x28,0x00,0x02,0x54,0x00,0x00,0x02,0x54,0xd8,0x00,0x02,0x55,0x74,0x00,0x02,0x55,0xc0,0x00,0x02,0x56,0x28, -0x00,0x02,0x56,0x90,0x00,0x02,0x57,0xb8,0x00,0x02,0x58,0xa8,0x00,0x02,0x59,0xa8,0x00,0x02,0x5a,0xd4,0x00,0x02,0x5b,0xe8,0x00,0x02,0x5c,0xec,0x00,0x02,0x5e,0x14,0x00,0x02,0x5f,0x54,0x00,0x02,0x60,0x64,0x00,0x02,0x61,0x00,0x00,0x02,0x61,0x84,0x00,0x02,0x62,0x88,0x00,0x02,0x63,0x10,0x00,0x02,0x63,0xbc,0x00,0x02,0x63,0xd0, -0x00,0x02,0x64,0x88,0x00,0x02,0x65,0x70,0x00,0x02,0x66,0x5c,0x00,0x02,0x67,0x68,0x00,0x02,0x68,0x80,0x00,0x02,0x6a,0x00,0x00,0x02,0x6a,0xc8,0x00,0x02,0x6b,0xcc,0x00,0x02,0x6d,0x9c,0x00,0x02,0x70,0x14,0x00,0x02,0x71,0x70,0x00,0x02,0x71,0xdc,0x00,0x02,0x72,0x54,0x00,0x02,0x73,0x14,0x00,0x02,0x73,0x78,0x00,0x02,0x73,0x90, -0x00,0x02,0x74,0x18,0x00,0x02,0x74,0x78,0x00,0x02,0x75,0x34,0x00,0x02,0x75,0xd8,0x00,0x02,0x76,0x78,0x00,0x02,0x77,0x00,0x00,0x02,0x77,0x98,0x00,0x02,0x78,0x1c,0x00,0x02,0x79,0x14,0x00,0x02,0x79,0xa8,0x00,0x02,0x7a,0x60,0x00,0x02,0x7a,0xf0,0x00,0x02,0x7b,0xcc,0x00,0x02,0x7c,0xe4,0x00,0x02,0x7d,0xbc,0x00,0x02,0x7e,0x14, -0x00,0x02,0x7e,0x88,0x00,0x02,0x7f,0x40,0x00,0x02,0x7f,0xf8,0x00,0x02,0x80,0xb0,0x00,0x02,0x81,0x4c,0x00,0x02,0x81,0xc8,0x00,0x02,0x82,0x30,0x00,0x02,0x82,0xc0,0x00,0x02,0x82,0xe4,0x00,0x02,0x83,0x08,0x00,0x02,0x83,0x58,0x00,0x02,0x83,0xfc,0x00,0x02,0x84,0x20,0x00,0x02,0x84,0xa0,0x00,0x02,0x85,0x38,0x00,0x02,0x85,0x58, -0x00,0x02,0x85,0xc4,0x00,0x02,0x86,0x30,0x00,0x02,0x86,0x98,0x00,0x02,0x87,0x08,0x00,0x02,0x87,0x78,0x00,0x02,0x87,0x9c,0x00,0x02,0x87,0xc8,0x00,0x02,0x88,0xa4,0x00,0x02,0x88,0xbc,0x00,0x02,0x88,0xdc,0x00,0x02,0x89,0x60,0x00,0x02,0x8a,0x00,0x00,0x02,0x8a,0xbc,0x00,0x02,0x8b,0x60,0x00,0x02,0x8c,0x68,0x00,0x02,0x8d,0x94, -0x00,0x02,0x8e,0x9c,0x00,0x02,0x8f,0x30,0x00,0x02,0x8f,0xf4,0x00,0x02,0x90,0x44,0x00,0x02,0x90,0xc8,0x00,0x02,0x91,0x6c,0x00,0x02,0x92,0x34,0x00,0x02,0x92,0xfc,0x00,0x02,0x93,0x8c,0x00,0x02,0x93,0xe4,0x00,0x02,0x93,0xfc,0x00,0x02,0x94,0x7c,0x00,0x02,0x95,0x14,0x00,0x02,0x95,0x34,0x00,0x02,0x96,0xb8,0x00,0x02,0x98,0x00, -0x00,0x02,0x99,0x80,0x00,0x02,0x9b,0x3c,0x00,0x02,0x9b,0xa8,0x00,0x02,0x9c,0x44,0x00,0x02,0x9d,0x0c,0x00,0x02,0x9e,0xb0,0x00,0x02,0x9f,0xf4,0x00,0x02,0xa0,0xfc,0x00,0x02,0xa2,0xec,0x00,0x02,0xa3,0x74,0x00,0x02,0xa3,0xf8,0x00,0x02,0xa4,0xa8,0x00,0x02,0xa5,0x20,0x00,0x02,0xa5,0xc0,0x00,0x02,0xa5,0xf8,0x00,0x02,0xa6,0x08, -0x00,0x02,0xa6,0x44,0x00,0x02,0xa6,0x9c,0x00,0x02,0xa6,0xb0,0x00,0x02,0xa6,0xec,0x00,0x02,0xa7,0x6c,0x00,0x02,0xa7,0xc0,0x00,0x02,0xa7,0xfc,0x00,0x02,0xa8,0x38,0x00,0x02,0xa8,0x94,0x00,0x02,0xa8,0xc8,0x00,0x02,0xa9,0x14,0x00,0x02,0xa9,0x60,0x00,0x02,0xa9,0xc4,0x00,0x02,0xaa,0x4c,0x00,0x02,0xab,0x04,0x00,0x02,0xab,0x44, -0x00,0x02,0xab,0xc8,0x00,0x02,0xac,0x14,0x00,0x02,0xac,0x50,0x00,0x02,0xac,0xc8,0x00,0x02,0xad,0x1c,0x00,0x02,0xad,0xa0,0x00,0x02,0xad,0xdc,0x00,0x02,0xae,0x50,0x00,0x02,0xae,0xb8,0x00,0x02,0xae,0xf8,0x00,0x02,0xaf,0x38,0x00,0x02,0xaf,0x78,0x00,0x02,0xaf,0x8c,0x00,0x02,0xaf,0xa0,0x00,0x02,0xaf,0xb4,0x00,0x02,0xaf,0xc8, -0x00,0x02,0xaf,0xdc,0x00,0x02,0xaf,0xf0,0x00,0x02,0xb0,0x04,0x00,0x02,0xb0,0x18,0x00,0x02,0xb0,0x2c,0x00,0x02,0xb0,0x40,0x00,0x02,0xb0,0x54,0x00,0x02,0xb0,0x68,0x00,0x02,0xb0,0x7c,0x00,0x02,0xb0,0x8c,0x00,0x02,0xb1,0x04,0x00,0x02,0xb1,0x50,0x00,0x02,0xb1,0x84,0x00,0x02,0xb1,0xb8,0x00,0x02,0xb2,0x0c,0x00,0x02,0xb2,0x50, -0x00,0x02,0xb2,0x94,0x00,0x02,0xb2,0xf0,0x00,0x02,0xb3,0x70,0x00,0x02,0xb4,0x20,0x00,0x02,0xb4,0x58,0x00,0x02,0xb4,0xd4,0x00,0x02,0xb5,0x18,0x00,0x02,0xb5,0x70,0x00,0x02,0xb5,0xac,0x00,0x02,0xb6,0x14,0x00,0x02,0xb6,0x60,0x00,0x02,0xb6,0xd4,0x00,0x02,0xb7,0x08,0x00,0x02,0xb7,0x94,0x00,0x02,0xb8,0x10,0x00,0x02,0xb8,0x6c, -0x00,0x02,0xb8,0xa4,0x00,0x02,0xb8,0xb8,0x00,0x02,0xb8,0xcc,0x00,0x02,0xb8,0xe0,0x00,0x02,0xb8,0xf4,0x00,0x02,0xb9,0x08,0x00,0x02,0xb9,0x1c,0x00,0x02,0xb9,0x30,0x00,0x02,0xb9,0x44,0x00,0x02,0xb9,0x58,0x00,0x02,0xb9,0x6c,0x00,0x02,0xb9,0x80,0x00,0x02,0xb9,0xbc,0x00,0x02,0xb9,0xf0,0x00,0x02,0xba,0xc0,0x00,0x02,0xbb,0x1c, -0x00,0x02,0xbb,0x98,0x00,0x02,0xbc,0x14,0x00,0x02,0xbc,0xe8,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x50,0x00,0x02,0xbe,0xc0,0x00,0x02,0xbf,0x80,0x00,0x02,0xc0,0x74,0x00,0x02,0xc0,0xf4,0x00,0x02,0xc1,0x74,0x00,0x02,0xc2,0x4c,0x00,0x02,0xc3,0x18,0x00,0x02,0xc3,0x7c,0x00,0x02,0xc3,0xec,0x00,0x02,0xc4,0xac,0x00,0x02,0xc5,0x68, -0x00,0x02,0xc5,0xec,0x00,0x02,0xc6,0x9c,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xa8,0x00,0x02,0xc7,0xf0,0x00,0x02,0xc8,0x30,0x00,0x02,0xc8,0x78,0x00,0x02,0xc9,0x24,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x03,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e, -0x09,0x04,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x25,0x01,0x21,0x13,0x21,0x11,0x5a,0x01,0xa4,0xfe,0x8e,0x01,0x2c, -0xfe,0xd4,0x14,0x01,0x2c,0x02,0xda,0xfd,0x26,0x6d,0x02,0x3b,0xfd,0x8a,0x02,0x3b,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x2c,0x40,0x29,0x0d,0x01,0x04,0x00,0x01,0x4c,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x68,0x00,0x00,0x00,0x38,0x4d,0x05,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x09, -0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x5b,0x30,0xdd,0x30,0x42,0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0xc2,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0x00, -0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x00,0x27,0x06,0xbc,0x02,0x58, -0x00,0x00,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26,0x03,0xb6,0x00,0x27,0x06,0x95,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbd,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbe,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbf,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00, -0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, -0x03,0xb6,0x00,0x27,0x06,0x93,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00, -0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, -0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xd4,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0x93,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x32,0xff,0x35,0x02,0x49,0x02,0xda,0x00,0x16,0x00,0x1f,0x00,0x65,0x40,0x0a,0x1c,0x01,0x06,0x00,0x13,0x01,0x01,0x04,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1f,0x00,0x06,0x00,0x04,0x01, -0x06,0x04,0x68,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x1c,0x00,0x06,0x00,0x04,0x01,0x06,0x04,0x68,0x00,0x02,0x00,0x03,0x02,0x03,0x63,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x01,0x4e,0x59,0x40,0x10,0x00,0x00,0x18,0x17, -0x00,0x16,0x00,0x16,0x16,0x21,0x25,0x11,0x11,0x08,0x09,0x1b,0x2b,0x33,0x13,0x33,0x13,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x11,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x21,0x29,0x30,0xdd,0x30,0x42, -0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1b,0x36,0x1f,0xc0,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xe2,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32, -0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x00,0x02,0x00,0x03,0x08,0x02,0x03,0x67,0x00,0x08,0x00,0x06,0x04,0x08,0x06,0x67,0x09,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38, -0x4d,0x00,0x04,0x04,0x05,0x5f,0x0a,0x07,0x02,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x23,0x07,0x13,0x33,0x11,0x23,0x1e,0x91,0x01,0x8b,0xb6,0x9d,0x9d,0xb6,0xfe, -0xf4,0x8d,0x28,0x36,0x7f,0x38,0x02,0xda,0x52,0xe4,0x52,0xff,0x00,0x52,0xcb,0xcb,0x01,0x16,0x01,0x72,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x3a,0x03,0xb6,0x02,0x26,0x00,0x18,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x03,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x10,0x00,0x19,0x00,0x22,0x00,0x39,0x40,0x36, -0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x22,0x20,0x1c,0x1a,0x19,0x17,0x13,0x11,0x00,0x10,0x00,0x0f,0x21,0x07,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07, -0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5d,0xcf,0x64,0x71,0x47,0x39,0x2b,0x41,0x25,0x73,0x64,0x86,0x76,0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x02,0xda,0x64,0x59,0x38,0x5a,0x0b,0x03,0x05,0x32,0x4d,0x2e,0x5e,0x6d,0x01, -0xa3,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00, -0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b, -0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26, -0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x5d,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x35,0x02,0x0a,0x02,0xe4,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00, -0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09, -0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x34,0x36,0x33, -0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd2,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x53,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x03,0x01,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb, -0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a,0x52,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c, -0xff,0xf6,0x02,0x0a,0x03,0xb0,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0b,0x00,0x15,0x00,0x27,0x40,0x24,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x15,0x13, -0x0e,0x0c,0x00,0x0b,0x00,0x0a,0x21,0x05,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x5c,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x02,0xda,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41, -0x4a,0x00,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01,0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10, -0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01, -0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x21,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01, -0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14, -0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01,0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0x00,0x01,0x00,0x64, -0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21, -0x15,0x21,0x11,0x21,0x15,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00, -0x00,0x07,0x06,0x95,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x71, -0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x27,0x06,0x9e,0x02,0x62,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00, -0x00,0x07,0x06,0xc1,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x30,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, -0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb0,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x62,0x00,0x00, -0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xd4,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0x93,0x02,0x26,0x00,0x25,0x00,0x00, -0x00,0x07,0x06,0x98,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x02,0x0d,0x02,0xda,0x00,0x1b,0x00,0x6e,0x4b,0xb0,0x15,0x50,0x58,0x40,0x29,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f, -0x00,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11, -0x0a,0x09,0x1e,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x2f,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0x1b,0x2d, -0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0xff,0xf6,0x02,0x24,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00, -0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x16,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23, -0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x01,0x35,0x48,0x6d,0x3e,0x4e,0x3e,0x34,0x41,0x37,0x61,0x40,0x42,0x65,0x38,0x5a,0x4a,0x3b,0x38,0x46,0x47,0x39,0x57,0x56,0x43,0x53,0x53,0x43,0x41,0x54,0x01,0x5a,0x01,0x3d,0x6b,0x0a,0x35,0x5e,0x3e,0x47,0x67,0x0b,0x03, -0x0d,0x5b,0x3c,0x38,0x55,0x30,0x35,0x5e,0x3f,0x3a,0x48,0x41,0x35,0x36,0x44,0x50,0x4b,0x3c,0x3c,0x4b,0x48,0x3a,0x3e,0x5f,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x09, -0x00,0x29,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x5f,0x01,0xae,0xfe,0xaa,0x01,0x3c,0xfe,0xc6,0x02,0xda, -0x52,0xf2,0x52,0xfe,0xbc,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x06,0x02,0xe4,0x00,0x1f,0x00,0x3e,0x40,0x3b,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00, -0x1c,0x1b,0x1a,0x19,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x15,0x14,0x06,0x01,0x30,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b, -0x43,0x43,0x3b,0x3b,0x41,0x94,0xee,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x42,0x3e,0xfe,0xb5,0x3e,0x44,0x44,0x3e,0x64,0x52,0xb6,0x61,0x71,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06, -0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0x10,0x02,0x06,0x02,0xe4,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x5c,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb0,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x0b,0x00,0x27,0x40,0x24, -0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x5d,0x5a,0xea,0x5a,0x5a,0xea,0x02,0xda,0xfe,0xc8,0x01,0x38,0xfd,0x26,0x01, -0x50,0xfe,0xb0,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x13,0x00,0x17,0x00,0x3b,0x40,0x38,0x05,0x03,0x02,0x01,0x0b,0x06,0x02,0x00,0x0a,0x01,0x00,0x67,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x67,0x04,0x01,0x02,0x02,0x38,0x4d,0x0c,0x09,0x02,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x17,0x16,0x15,0x14,0x00,0x13, -0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x11,0x33,0x35,0x23,0x5d,0x53,0x53,0x5a,0xea,0x5a,0x53,0x53,0x5a,0xea,0xea,0xea,0x02,0x0d,0x4b,0x82,0x82,0x82,0x82,0x4b,0xfd,0xf3,0x01,0x50,0xfe, -0xb0,0x01,0xa2,0x6b,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x03,0xb6,0x02,0x26,0x00,0x40,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05, -0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00, -0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, -0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb0,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x2b,0x01,0xef,0x02,0xda,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xd4,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0x93,0x02,0x26,0x00,0x43,0x00,0x00, -0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x35,0x01,0xef,0x02,0xda,0x00,0x1b,0x00,0x62,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x3d,0x07,0x4e, -0x1b,0x40,0x20,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15, -0x23,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0xa2,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x69, -0x00,0x00,0x01,0xef,0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x2b,0x40,0x28,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0c, -0x0b,0x08,0x06,0x04,0x03,0x00,0x0f,0x01,0x0f,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x0e,0x69,0x78,0x5a,0x47,0x40,0x40,0x47,0x5a,0x79,0x0a,0x76,0x66,0x43,0x49,0x49,0x43,0x02,0x08,0xfd,0xf8,0x66,0x76,0x00,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x02,0x77, -0x03,0xb6,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0xee,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c, -0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0xbf,0x67,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0x86,0x01,0x51,0xfe,0xaf,0xff,0xff,0x00,0x5c,0xff,0x10,0x02,0x30,0x02,0xda,0x02,0x26,0x00,0x51,0x00,0x00, -0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x82,0x5a,0x01,0x4a,0x02, -0xda,0xfd,0x78,0x52,0xff,0xff,0x00,0x75,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x91,0x01,0xe5,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x6d,0x01,0xf9,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26, -0x00,0x53,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x80,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x03,0x29,0x00,0xa5,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x2c,0x40,0x29, -0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x15,0x15,0x04,0x09,0x18,0x2b,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x15,0x82,0x6e,0x6e,0x5a,0xaa,0xaa,0x01,0x4a, -0x01,0x30,0x4a,0x50,0x4a,0x01,0x5a,0xfe,0xe3,0x73,0x50,0x73,0xfe,0xe5,0x52,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x0f,0x0c,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00, -0x00,0x13,0x00,0x13,0x16,0x11,0x12,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x11,0x48,0x85,0x5d,0x61,0x85,0x57,0x03,0x06,0x04,0x76,0x4e,0x71,0x08,0x06,0x02,0xda,0xfe,0xc4,0x01,0x3c,0xfd,0x26,0x01,0x59,0x31,0x7f,0x82,0x34,0xfe,0x87,0x01,0x70, -0x4a,0xb0,0x63,0xfe,0xa7,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x33,0x13,0x2e,0x02, -0x35,0x11,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x11,0x5a,0x78,0xdf,0x02,0x05,0x03,0x57,0x78,0xde,0x02,0x04,0x03,0x02,0xda,0xfd,0x8f,0x19,0x49,0x51,0x24,0x01,0x9a,0xfd,0x26,0x02,0x71,0x18,0x49,0x51,0x25,0xfe,0x66,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x91, -0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x10,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x4c,0x01,0xfe,0x02,0xda,0x00,0x19, -0x00,0x2f,0x40,0x2c,0x0f,0x06,0x05,0x03,0x01,0x02,0x01,0x4c,0x03,0x01,0x02,0x02,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x19,0x00,0x18,0x16,0x11,0x18,0x21,0x06,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x03,0x1e,0x02,0x15,0x11,0x23,0x11,0x33,0x13, -0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0xf0,0x41,0x35,0x3e,0xfc,0x02,0x04,0x03,0x57,0x78,0xdf,0x02,0x05,0x03,0x57,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x62,0x18,0x49,0x51,0x25,0xfe,0x66,0x02,0xda,0xfd,0xdb,0x19,0x49,0x52,0x24,0x01,0x4d,0xfd,0x35,0x58,0x6b,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26, -0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08, -0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe, -0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00, -0x00,0x27,0x06,0x9e,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x1c,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x02,0xe4,0x02,0x26,0x00,0x60,0x00,0x00, -0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xd4,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x12, -0x03,0x2a,0x00,0x15,0x00,0x23,0x00,0x3e,0x40,0x3b,0x09,0x01,0x04,0x01,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x0d,0x0c,0x08,0x06,0x00,0x15, -0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x35,0x33,0x15,0x14,0x07,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x50,0x35,0x16,0x4b,0x30,0x1e,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a, -0x72,0x6a,0x01,0x36,0x6a,0x72,0x26,0x07,0x1a,0x4b,0x50,0x3a,0x19,0x33,0x4b,0xfe,0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x12, -0x03,0x2a,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xd4,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x4e,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb1,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0x93,0x02,0x26,0x00,0x60,0x00,0x00, -0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e, -0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x1c,0x1a,0x0e,0x0c,0x07,0x05,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35, -0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x72,0x72,0x62,0x62,0x72,0x2b,0x27,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0x9d,0x3b,0x3f,0x3f, -0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x3b,0x5a,0x1a,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x12,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00,0x00,0x03,0x00,0x23,0xff,0xd8,0x02,0x35,0x02,0xee,0x00,0x15,0x00,0x1c,0x00,0x23,0x00,0x75,0x40,0x13, -0x09,0x01,0x04,0x00,0x22,0x21,0x18,0x17,0x0c,0x01,0x06,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x01,0x01,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x1b,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x06, -0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x1e,0x1d,0x00,0x00,0x1d,0x23,0x1e,0x23,0x1b,0x19,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07, -0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x07,0x13,0x11,0x13,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x03,0x16,0x23,0x4c,0x17,0x72,0x62,0x5c,0x38,0x21,0x54,0x46,0x11,0x72,0x62,0x55,0x37,0x29,0x3b,0xe0,0x1f,0x47,0x3a,0x40,0x7a,0x3b,0x3f,0xda,0x20,0x28,0x86,0x2d,0x3d,0x01,0x4a,0x62,0x70,0x31,0x3b,0x7d,0x29,0x35,0xfe, -0xb5,0x62,0x70,0x2b,0x49,0x02,0x3a,0xfe,0xc3,0x01,0x8d,0x31,0x43,0xfd,0xf7,0x43,0x3e,0x01,0x29,0xfe,0x7e,0x28,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0xd8,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0x76,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00, -0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x28,0xff,0xf6,0x02,0x3f,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0xe3,0x4b,0xb0,0x15,0x50,0x58,0x40,0x0a,0x0b,0x01,0x03,0x01,0x19,0x01,0x00,0x06,0x02,0x4c,0x1b,0x40,0x0a,0x0b,0x01,0x03,0x09,0x19,0x01,0x08,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x00,0x04, -0x00,0x05,0x06,0x04,0x05,0x67,0x09,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x0b,0x08,0x02,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x38,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x01, -0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d, -0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1d,0x01,0x1d,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x11, -0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x21,0x35,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0xc3,0x48,0x53,0x53,0x48,0x23,0x2e,0x1a,0x03,0x05,0x01,0x09,0xb1,0x98,0x98,0xb1,0xfe,0xf7,0x05,0x03,0x1a,0x2e,0x0a,0x2a,0x30,0x30, -0x2a,0x2a,0x30,0x30,0x0a,0x66,0x58,0x01,0x72,0x58,0x66,0x1d,0x29,0x14,0x50,0x52,0xe6,0x52,0xfe,0x52,0x50,0x13,0x2a,0x1d,0x50,0x3b,0x33,0x01,0x72,0x33,0x3b,0x3b,0x33,0xfe,0x8e,0x33,0x3b,0x00,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x03,0x00,0x01,0x02,0x03, -0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xeb,0x66,0x79,0x79,0x66,0x91,0x91,0x3b, -0x47,0x47,0x3b,0x91,0x02,0xda,0x75,0x62,0x62,0x75,0xfe,0xd4,0x01,0x7d,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x67,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x67,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x03,0x03,0x39, -0x03,0x4e,0x00,0x00,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x25,0x21,0x11,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5a,0x5a,0x99,0x42,0x61,0x36,0x76,0x63,0x99,0x99,0x3a,0x42,0x43,0x39,0x99,0x02,0xda,0x96,0x32,0x5a,0x3c,0x5b, -0x6d,0xb4,0x01,0x04,0x41,0x37,0x38,0x40,0x00,0x02,0x00,0x50,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x13,0x00,0x21,0x00,0x38,0x40,0x35,0x12,0x01,0x00,0x03,0x01,0x4c,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x05,0x01,0x02,0x02,0x3d,0x02,0x4e,0x15,0x14,0x00,0x00, -0x1c,0x1a,0x14,0x21,0x15,0x21,0x00,0x13,0x00,0x13,0x25,0x23,0x07,0x09,0x18,0x2b,0x05,0x27,0x22,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0xa6,0x67,0x04,0x0a,0x05,0x65,0x77,0x77,0x65,0x65,0x77,0x3a,0x35, -0x75,0xe2,0x3b,0x47,0x47,0x3b,0x3b,0x47,0x47,0xb4,0xab,0x01,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x43,0x64,0x19,0xc1,0xfa,0x4a,0x3d,0x01,0x40,0x3e,0x49,0x49,0x3e,0xfe,0xc0,0x3d,0x4a,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x04,0x01,0x4c, -0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x17,0x21,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x23,0x5d,0xe1,0x41,0x62,0x36,0x4c,0x3f,0x95,0x63,0x8f,0x79,0x88,0x38,0x44,0x44,0x38,0x88,0x02,0xda,0x35,0x5e,0x3f,0x4a,0x6a,0x15,0xfe,0xc1,0x01,0x36,0xfe,0xca,0x01,0x87,0x47,0x3a,0x3b,0x46,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, -0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x00,0x29,0x00,0x3b,0x40,0x38, -0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x1a,0x19,0x16,0x14,0x08,0x06,0x04,0x03,0x00,0x29,0x01,0x29,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16, -0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x01,0x30,0x6a,0x7e,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49, -0x51,0x7a,0x0a,0x70,0x62,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x48, -0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x35,0x02,0x10,0x02,0xe4,0x00,0x3d,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03,0x36,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03, -0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07, -0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x3d,0x00,0x3c,0x1b,0x22,0x13,0x2c,0x22,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23, -0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xcd,0x46,0x16,0x1b,0x37,0x32,0x18,0x4f,0x5c,0x5a,0x4e,0x40, -0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x7a,0x66,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x40,0x0f,0x6b,0x53,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32, -0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0x10,0x02,0x10,0x02,0xe4,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00, -0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x20,0x00,0x38,0x40,0x35,0x1a,0x07,0x02,0x01,0x05,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x07,0x06,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x20,0x00,0x20,0x22,0x24,0x21,0x25, -0x12,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x22,0x06,0x15,0x11,0x5c,0x34,0x5f,0x3f,0xe3,0xa2,0x4e,0x5f,0x36,0x60,0x41,0x43,0x39,0x3c,0x46,0x46,0x3c,0x2d,0xa4,0x84,0x37,0x41,0x02,0x0c,0x3e, -0x5d,0x33,0x58,0xdb,0x05,0x70,0x5b,0x40,0x61,0x36,0x52,0x48,0x3d,0x3c,0x46,0x4e,0xe1,0x42,0x3a,0xfd,0xf4,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00, -0x04,0x04,0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11, -0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4a,0x3d,0x3b,0x3a,0x3e,0x5a,0x70,0x62,0x64,0x6e,0x70,0x62,0x3e,0x3a,0xf0,0x3b,0x0a,0x73,0x5f,0xc8,0x83,0x3e,0x43,0x44,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x5f,0x73,0x4b,0x46,0x41,0x82,0x82,0x41,0x46,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x21, -0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x02,0x88,0x52,0x52,0xfd,0x78,0x00,0x00,0x00,0x01,0x00,0x37, -0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x05,0x01,0x01,0x06,0x01,0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x23, -0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0xff,0x91,0x91,0xc8,0x01,0xea,0xc8,0x91,0x91,0x01,0x27,0x4b,0x01,0x16,0x52,0x52,0xfe,0xea,0x4b,0xfe,0xd9,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x35,0x02,0x21, -0x02,0xda,0x00,0x19,0x00,0x6f,0x40,0x0b,0x08,0x01,0x05,0x06,0x01,0x4c,0x07,0x01,0x06,0x01,0x4b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x24,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, -0x21,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x04,0x00,0x03,0x04,0x03,0x63,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x21,0x28,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x07,0x1e,0x02, -0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0xff,0xc8,0x01,0xea,0xc8,0x0c,0x1a,0x38,0x26,0x42,0x36,0x55,0x46,0x16,0x1b,0x37,0x32,0x19,0x02,0x88,0x52,0x52,0xfd,0x78,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x37,0x17,0x0d,0x11,0x1a,0x45,0x00,0xff,0xff,0x00,0x37,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26, -0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22, -0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x5a,0x6b,0x0a,0x71,0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0xfd,0xee,0x62,0x70,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x91, -0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26, -0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a, -0xff,0xf6,0x01,0xfe,0x03,0xd4,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0x48,0x00,0x1a,0x00,0x31,0x40,0x2e,0x17,0x01,0x02,0x01,0x01,0x4c,0x00,0x04,0x01,0x04,0x85,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00, -0x4e,0x01,0x00,0x13,0x12,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x41,0x10,0x13,0x4b,0x2e,0x27,0x6b,0x0a,0x71, -0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0x13,0x10,0x4b,0x50,0x27,0x31,0x06,0xfe,0x2e,0x62,0x70,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x53,0x03,0x48,0x02,0x26,0x00,0x96,0x00,0x00, -0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xd4,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53, -0x03,0xb1,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x93,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00, -0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0xda,0x00,0x20,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x63,0x04,0x01,0x02,0x02, -0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1f,0x1d,0x14,0x13,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x20,0x01,0x20,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15, -0x14,0x16,0x33,0x33,0x15,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x70,0x5a,0x3e,0x3a,0x3b,0x3d,0x5a,0x50,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x02,0x12,0xfd,0xee,0x3e,0x43,0x43,0x3e,0x02,0x12,0xfd,0xee,0x79,0x36,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe, -0x03,0xe2,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01, -0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xee,0xbc,0x5c,0x7d,0x0d,0x11,0x04,0x04,0x13,0x0d,0x78,0x5d,0xbd,0x02,0xda,0xfe,0x0f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xf0,0xfd,0x26,0x00, -0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x1e,0x00,0x26,0x40,0x23,0x1a,0x06,0x02,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, -0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x6b,0x57,0x53,0x39,0x04,0x04,0x01,0x02,0x07,0x04,0x48,0x61,0x42,0x04,0x08,0x02,0x02,0x05,0x04,0x3b,0x4f,0x59,0x71,0x42,0x04,0x04,0x02,0x02,0x04,0x05,0x47,0x02,0xda,0xfd,0xe4,0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0xe4, -0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0x26,0x02,0x26,0x22,0x41,0x12,0x12,0x41,0x22,0xfd,0xda,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x93, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb1,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x17, -0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, -0x28,0xd2,0xc7,0x68,0x71,0x09,0x13,0x06,0x05,0x13,0x09,0x73,0x63,0xc7,0xd2,0x67,0x7d,0x09,0x13,0x05,0x05,0x13,0x09,0x7e,0x01,0x72,0x01,0x68,0xd8,0x11,0x27,0x0b,0x0b,0x27,0x11,0xd8,0xfe,0x9e,0xfe,0x88,0xe8,0x11,0x27,0x0c,0x0c,0x26,0x11,0xe9,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x0e,0x00,0x23,0x40,0x20, -0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18,0x12,0x04,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0xff,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x01,0x11,0x01, -0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0xfe,0xef,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x2b,0x02,0x35,0x02,0xda,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00, -0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xd4,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0x93,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, -0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, -0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x55,0x01,0x49,0xfe,0xbc,0x01,0x9f,0xfe,0xb7,0x01,0x53,0x5a,0x02,0x2e,0x52,0x5a,0xfd,0xd2,0x52,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, -0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb0,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x02,0x3f,0x02,0xda,0x00,0x18,0x00,0x2d,0x40,0x2a, -0x17,0x06,0x02,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, -0x03,0x23,0x03,0x03,0x62,0x49,0x53,0x30,0x03,0x03,0x01,0x02,0x04,0x07,0x4c,0x66,0x45,0x06,0x07,0x01,0x01,0x05,0x03,0x32,0x4f,0x4b,0x73,0x53,0x59,0x02,0xda,0xfd,0xe4,0x21,0x3d,0x15,0x15,0x3c,0x22,0x01,0x90,0xfe,0x70,0x22,0x3c,0x15,0x15,0x3d,0x21,0x02,0x1c,0xfd,0x26,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x00,0xff,0xff,0x00,0x19, -0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb1,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x8e, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x03,0x04,0x03,0x01, -0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xbf,0xf9,0xf9,0x67,0xf0,0xfa,0xfe,0x2d,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x30, -0x02,0xda,0x02,0x26,0x00,0xba,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x4c,0x02,0x00,0x02,0xe4,0x00,0x18,0x00,0x26,0x00,0x3e,0x40,0x3b,0x12,0x04,0x02,0x02,0x03,0x01,0x4c,0x06,0x01,0x03,0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x02,0x02,0x00, -0x60,0x05,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1a,0x19,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x17,0x15,0x0c,0x0a,0x00,0x18,0x01,0x18,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22, -0x06,0x15,0x11,0x14,0x16,0x01,0x8b,0x44,0x52,0x4a,0x53,0x72,0x62,0x62,0x72,0x5e,0x53,0x21,0x1b,0x6e,0xcd,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xb4,0x4f,0x42,0x1e,0x0f,0x6e,0x5a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x60,0x70,0x0a,0x1b,0x1c,0x23,0x52,0xfb,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00, -0x00,0x02,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x1b,0x00,0x26,0x00,0x84,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x28,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08, -0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x05,0x05,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x26, -0x1d,0x26,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64,0x2e,0x52, -0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x59,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x64,0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26, -0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb4,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, -0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb5,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa2,0x02,0x26, -0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb6,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb7,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, -0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x76,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78, -0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x26,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x2b,0x03,0xa2,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, -0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x09,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x02,0x30,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x78, -0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x39,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0xe9,0x02,0x26, -0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x43,0xff,0x35,0x02,0x31,0x02,0x30,0x00,0x2b,0x00,0x36,0x00,0xea,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x28,0x01,0x08,0x09,0x16,0x01,0x00,0x08,0x02,0x4c,0x1b,0x40,0x0b,0x28,0x01,0x08,0x09,0x01,0x4c,0x16,0x01,0x07,0x01,0x4b,0x59,0x4b,0xb0,0x15,0x50, -0x58,0x40,0x32,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2f,0x00,0x03,0x02, -0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00, -0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x2d,0x2c,0x01,0x00,0x32,0x30,0x2c,0x36,0x2d,0x36,0x27,0x26,0x21,0x1f,0x1e,0x1c,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x2b, -0x01,0x2b,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64, -0x2e,0x52,0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x02,0x22,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x0d,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x1c,0x2c,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x64, -0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x44,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x03,0x00,0x1f, -0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0xa9,0x40,0x0a,0x15,0x01,0x03,0x02,0x2b,0x01,0x07,0x08,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x72,0x00,0x08,0x06,0x07,0x07,0x08,0x72,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05, -0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02,0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x35,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05,0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02, -0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x38,0x37,0x01,0x00,0x3d,0x3b,0x37,0x41,0x38,0x41,0x34,0x32,0x2f,0x2e,0x29,0x27,0x25,0x24,0x22,0x20,0x1d,0x1c,0x19,0x17,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x2d,0x01,0x2d,0x10,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, -0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xb2,0x41,0x52,0x54,0x43,0x51,0x24, -0x20,0x1f,0x26,0x4f,0x4b,0x3c,0x31,0x44,0x05,0x05,0x41,0x2e,0x41,0x50,0xde,0x25,0x20,0x20,0x25,0x54,0x50,0x41,0x2b,0x41,0x08,0x08,0x46,0x75,0x8a,0x25,0x20,0x1f,0x26,0x98,0x21,0x27,0x4f,0x1f,0x26,0x29,0x0a,0x5e,0x4b,0x4a,0x5b,0x4b,0x29,0x2d,0x27,0x20,0x41,0x51,0x31,0x28,0x28,0x31,0x59,0x47,0x90,0x6a,0x28,0x2d,0x28,0x20, -0x41,0x52,0x32,0x28,0x28,0x32,0x01,0x4e,0x4c,0x27,0x2e,0x2e,0x27,0xfe,0xb1,0x2e,0x27,0x6a,0x34,0x2c,0x2b,0x34,0x00,0x00,0xff,0xff,0x00,0x1f,0xff,0xf6,0x02,0x35,0x03,0x11,0x02,0x26,0x00,0xd4,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xf6,0x02,0x01,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b, -0xb6,0x0a,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x01,0x06,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x01, -0x01,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0f,0x0d,0x08,0x07,0x06,0x05,0x00,0x14,0x01,0x14,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06, -0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x4c,0x3e,0x50,0x07,0x01,0x5a,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x71,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0x0a,0x3d,0x36,0x69,0x02,0xda,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x4e,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46, -0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08, -0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x34,0x64,0x78,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x0a,0x70,0x62,0x96, -0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x6a,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x60,0x00,0x00, -0x00,0x01,0x00,0x58,0xff,0x35,0x02,0x0b,0x02,0x30,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41, -0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02, -0x02,0x41,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14, -0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd1,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x56,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a, -0x52,0x96,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x60,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x09,0x02,0x26,0x00,0xd7,0x00,0x00, -0x00,0x07,0x06,0x69,0x02,0x60,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0xf6,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b,0xb6,0x11,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00, -0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x08, -0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x63,0x62,0x53,0x3e,0x51,0x08,0x01,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0x0a,0x6e, -0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x3b,0x44,0xa0,0x43,0x3c,0x00,0x02,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0xdf,0x00,0x20,0x00,0x2c,0x00,0x4c,0x40,0x49,0x19,0x18,0x16,0x13,0x12,0x11,0x10,0x07,0x01,0x03,0x01,0x4c,0x17,0x01,0x03,0x4a,0x00,0x02,0x01,0x05,0x01,0x02, -0x05,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x6a,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x22,0x21,0x01,0x00,0x28,0x26,0x21,0x2c,0x22,0x2c,0x15,0x14,0x0c,0x0b,0x09,0x07,0x00,0x20,0x01,0x20,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17, -0x33,0x26,0x26,0x27,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2b,0x44,0x68,0x39,0x35,0x5f,0x3f,0x2c,0x3b,0x0b,0x0e,0x04,0x20,0x1c,0x41,0xa3,0x78,0x48,0x68,0x2c,0x94,0x6a,0x4e,0x2c,0x35,0x3a,0x67,0x46,0x40,0x4d, -0x4d,0x40,0x3e,0x4d,0x4d,0x0a,0x38,0x66,0x43,0x43,0x63,0x37,0x26,0x12,0x0a,0x35,0x25,0x5b,0x4c,0x50,0x38,0x63,0x40,0x45,0x50,0x31,0x71,0x40,0x8e,0x40,0x46,0x69,0x3a,0x50,0x50,0x41,0x41,0x50,0x50,0x41,0x41,0x50,0x00,0x00,0x00,0x03,0x00,0x3f,0xff,0xf6,0x02,0x5c,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x26,0x00,0x81,0xb6,0x11, -0x0a,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x28,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d, -0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1a,0x19,0x15,0x15,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x15,0x18,0x15,0x18,0x17,0x16,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x09,0x16,0x2b,0x17, -0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x13,0x37,0x33,0x07,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xe4,0x4c,0x59,0x59,0x4c,0x39,0x47,0x06,0x03,0x02,0x5a,0x5a,0x01,0x06,0x47,0xdc,0x0f,0x54,0x18,0xfe,0xbe,0x32,0x37,0x37,0x32,0x31, -0x38,0x38,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x35,0x3e,0x02,0x30,0xb4,0xb4,0xfe,0x1e,0x43,0x3c,0xa0,0x3c,0x43,0x43,0x3c,0xa0,0x3c,0x43,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x83,0xb6,0x19,0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50, -0x58,0x40,0x25,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x29,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04, -0x38,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1e,0x1d,0x01,0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0c,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, -0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0xa6,0xa6,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x0a,0x6e, -0x5e,0x65,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfd,0xc6,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x5a,0x3e,0x46,0x44,0x40,0x5a,0x40,0x44,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06, -0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33, -0x06,0x06,0x03,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x2c,0x61,0x77,0x77,0x61,0x41,0x61,0x36,0xfe,0xa8,0x46,0x3a,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0x01,0x00,0x43,0x3d,0x3d,0x43,0x0a,0x75,0x67,0x82,0x67,0x75,0x34,0x5e,0x40,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0x01,0x4c,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0x00, -0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00, -0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x71,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04, -0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x21,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x26,0x03,0xa2,0x02,0x26,0x00,0xe1,0x00,0x00, -0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0xa0,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, -0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x30,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, -0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x39,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xe9,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x25,0x00,0x2e,0x00,0x84, -0x4b,0xb0,0x15,0x50,0x58,0x40,0x30,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x60,0x09,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2d,0x00,0x05,0x03,0x04,0x03,0x05, -0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x06,0x09,0x01,0x00,0x06,0x00,0x64,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x19,0x01,0x00,0x2c,0x2a,0x27,0x26,0x24,0x22,0x19,0x18,0x17,0x15,0x12,0x11,0x0e,0x0c,0x07,0x05,0x00,0x25,0x01,0x25, -0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x75,0x37,0x43,0x3b,0x0a,0x61,0x73,0x73,0x61,0x62,0x72,0xfe, -0xb0,0x3f,0x3d,0x69,0x0f,0x5a,0x05,0x32,0x27,0x10,0x22,0x1e,0x1e,0x19,0x3c,0xfe,0xed,0xf8,0x3e,0x3e,0x3d,0x3f,0xcb,0x35,0x28,0x2f,0x35,0x73,0x5f,0x96,0x5f,0x73,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x2b,0x40,0x13,0x0d,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x02,0x0c,0x1d,0x41,0x46,0x46,0x41,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, -0x03,0x0c,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x15,0x00,0x1e,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x08,0x01,0x05,0x05, -0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1b,0x1a,0x16,0x1e,0x17,0x1e,0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x05,0x04,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15, -0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4c,0x3c,0x3e,0x67,0x0f,0x5a,0x09,0x70,0x57,0x62,0x70,0x70,0x62,0x3e,0x3c,0xf4,0x3d,0x0a,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x45,0x51,0x73,0x5f,0x96,0x5f,0x73,0x4b,0x46,0x41,0x1d,0x1d,0x41,0x46,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2d,0x40,0x2a, -0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0xd7,0xa0, -0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0x89,0x52,0x73,0x41,0x4b,0x52,0x3a,0x73,0x52,0xfe,0x77,0x00,0x02,0x00,0x58,0xff,0x4c,0x01,0xfb,0x02,0x30,0x00,0x1c,0x00,0x2a,0x00,0x6f,0xb6,0x15,0x07,0x02,0x05,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x20,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x06,0x06,0x02, -0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x24,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x03,0x03,0x3b,0x4d,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x15,0x1e,0x1d,0x00, -0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x00,0x1c,0x00,0x1b,0x14,0x25,0x27,0x21,0x09,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x14,0x06,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xa1,0x9b, -0x2f,0x36,0x02,0x03,0x08,0x4e,0x3b,0x55,0x62,0x62,0x55,0x3b,0x4e,0x08,0x02,0x59,0x67,0x59,0x11,0x38,0x40,0x40,0x38,0x39,0x3f,0x3f,0xb4,0x52,0x35,0x2d,0x32,0x5a,0x31,0x35,0x6c,0x5e,0x74,0x5e,0x6e,0x38,0x31,0x5f,0xfd,0xda,0x53,0x61,0x01,0x25,0x46,0x3e,0x69,0x3e,0x46,0x42,0x38,0x7d,0x38,0x42,0x00,0x00,0xff,0xff,0x00,0x58, -0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x5f,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6f, -0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x70,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x09,0x02,0x26, -0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x55,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x14,0x00,0x2d,0x40,0x2a,0x03,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x23, -0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c,0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0xda,0xfe,0xe3,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x63,0x3e,0x43,0x46,0x40,0xfe,0xa2,0x00,0xff,0xff,0x00,0x00, -0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x02,0x37,0x00,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x01,0xfe,0x03,0xc5,0x02,0x26,0x00,0xfc,0x00,0x00,0x01,0x07,0x06,0x6e,0x01,0xb5,0x00,0xb4,0x00,0x08,0xb1,0x01,0x01,0xb0,0xb4,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, -0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33, -0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x55,0xc3,0xaf,0x01,0x09,0xb9,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x71,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x70, -0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26, -0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x27,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x07,0x06,0x78, -0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x39,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0xe9,0x02,0x26, -0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x67,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x35,0x02,0x2b,0x03,0x09,0x00,0x0b,0x00,0x25,0x00,0xb6,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0a,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09, -0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x2b,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08, -0x3d,0x08,0x4e,0x1b,0x40,0x28,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x07,0x00,0x08,0x07,0x08,0x63,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x06,0x4e,0x59,0x59,0x40,0x1f,0x0c,0x0c,0x01,0x00,0x0c,0x25,0x0c,0x25,0x20,0x1e,0x1d,0x1b,0x16,0x15, -0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x01,0x3b,0x21,0x26,0x26,0x21,0x21,0x26, -0x26,0xfe,0xf9,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x0c,0x02,0x26, -0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x4c,0x01,0xb3,0x02,0x26,0x00,0x0d,0x00,0x25,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x00,0x00, -0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0c,0x11,0x13,0x21,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x23,0x5a,0x7c,0x3e,0x45,0xfe,0xfc,0x01,0x5e,0x78,0x65,0xb4,0x52,0x44,0x3d,0x01,0xb5,0x52,0xfd,0xf9,0x61,0x72,0x00,0x00,0xff,0xff,0x00,0x55, -0xff,0x4c,0x02,0x31,0x03,0x11,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x02,0x2f,0x02,0xda,0x00,0x0c,0x00,0x31,0x40,0x2e,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x06,0x05,0x02,0x03, -0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x61,0x5a,0x69,0x9a,0x67,0xb1,0xbb,0x69,0xa0,0x6b,0x02,0xda,0xfe,0x69,0xe3,0xfe,0xfa,0xfe,0xe0,0xf5,0xf5,0x00,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0x10,0x02,0x2f, -0x02,0xda,0x02,0x26,0x01,0x10,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04, -0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x7c,0x49,0x57,0xbe,0x01,0x18,0x26,0x20,0xaa,0x55,0x46,0x01,0xed,0x52,0xfd,0xc1,0x22,0x27,0x52,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26, -0x03,0xb6,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xe4,0x00,0x15,0x00,0x2c,0x40,0x29,0x11,0x0b,0x0a,0x08,0x05,0x04,0x03,0x02,0x08,0x01,0x00,0x01,0x4c,0x09,0x01,0x00,0x4a,0x00,0x00,0x00,0x38,0x4d,0x03,0x02,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00, -0x00,0x15,0x00,0x15,0x15,0x16,0x04,0x09,0x18,0x2b,0x33,0x13,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x13,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc,0x04,0xa0,0x86,0x2c,0x60,0x1b,0xa7,0x8d,0xdd,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0x09,0x50,0x50,0x43,0x71,0x49,0x53,0x50,0x47,0xfd,0xb3, -0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x3a,0x00,0x00,0xff,0xff,0x00,0x1e,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x0a, -0x00,0x00,0x02,0x75,0x02,0xda,0x00,0x26,0x01,0x13,0xec,0x00,0x01,0x07,0x03,0x29,0x00,0xf7,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x15,0x00,0x2c,0x40,0x29,0x15,0x0a,0x09,0x08,0x07,0x02,0x01,0x00,0x08,0x02,0x00,0x01,0x4c,0x00,0x00,0x00, -0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x39,0x03,0x4e,0x21,0x27,0x11,0x13,0x04,0x09,0x1a,0x2b,0x37,0x35,0x37,0x11,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x64,0x78,0xbe,0x01,0x18,0xa0,0xa0,0x26,0x20,0xaa,0xaa,0x49,0x57,0xe6,0x50,0x51, -0x01,0x01,0x52,0xfe,0xea,0x6c,0x50,0x6c,0xd9,0x22,0x27,0x52,0x55,0x46,0x9c,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x24,0x00,0x56,0xb6,0x0a,0x03,0x02,0x03,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x16,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x05,0x03,0x03,0x03, -0x39,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x05,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x24,0x00,0x24,0x23,0x13,0x23,0x13,0x25,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33, -0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x4e,0x02,0x05,0x31,0x26,0x24,0x32,0x0b,0x01,0x07,0x31,0x26,0x35,0x3f,0x54,0x20,0x1c,0x1b,0x20,0x4a,0x20,0x1b,0x1c,0x20,0x02,0x26,0x49,0x25,0x2e,0x2a,0x24,0x24,0x2a,0x4f,0x3f,0xfe,0x5e,0x01, -0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x01,0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b, -0x40,0x17,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c, -0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x62,0x3f,0x43,0x46,0x40,0xfe,0xa2,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0xff,0xf6,0x00,0x00,0x01,0xfe, -0x03,0x16,0x02,0x26,0x01,0x1b,0x00,0x00,0x01,0x07,0x06,0x7a,0x01,0x90,0x03,0x75,0x00,0x09,0xb1,0x01,0x01,0xb8,0x03,0x75,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0x10,0x01,0xfe,0x02,0x30,0x02,0x26, -0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5e,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x1c,0x00,0x5f,0xb5,0x11,0x01,0x02,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05, -0x05,0x3d,0x05,0x4e,0x1b,0x40,0x20,0x00,0x03,0x03,0x3b,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x1c,0x00,0x1b,0x24,0x11,0x13,0x25,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xf0,0x3f,0x35,0x3e,0x3d,0x36,0x38,0x3f,0x5a,0x5a,0x01,0x06,0x4b,0x3f,0x53,0x60,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x59,0x3b,0x41,0x46,0x40,0xfe,0xa2,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x9d,0x58,0x6b,0x00, -0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x42,0x00, -0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x75,0x74,0x64,0x64,0x74,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a, -0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x73,0x69,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00, -0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x71, -0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x21,0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00, -0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x26,0x03,0xa2,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0xa0,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04, -0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x2e,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, -0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x39,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x1c,0x02,0x80,0x00,0x17,0x00,0x25,0x00,0x71,0xb5,0x12,0x01,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x02,0x3b,0x4d, -0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x24,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40, -0x17,0x19,0x18,0x01,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, -0x2c,0x63,0x75,0x74,0x64,0x45,0x32,0x0b,0x23,0x4b,0x20,0x1c,0x24,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a,0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x1c,0x23,0x4b,0x50,0x1f,0x2e,0x0a,0x36,0x51,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26, -0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x1c,0x02,0x80,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x54, -0xff,0xf8,0x02,0x1c,0x03,0x39,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x0c,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6c, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0xe9,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x1e,0x00,0x2c,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04, -0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x20,0x1f,0x01,0x00,0x27,0x25,0x1f,0x2c, -0x20,0x2c,0x1d,0x1b,0x0f,0x0d,0x08,0x06,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x74,0x37, -0x43,0x19,0x22,0x09,0x62,0x72,0x72,0x62,0x62,0x72,0x2e,0x2b,0x18,0x22,0x1e,0x1e,0x19,0x3c,0x96,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x96,0x62,0x70,0x6f,0x62,0x97,0x3e,0x5b,0x1a,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x11,0x42,0x40,0x96,0x40,0x42,0x42,0x40,0x96,0x40,0x42,0x00,0x00, -0x00,0x03,0x00,0x23,0xff,0xe2,0x02,0x35,0x02,0x4e,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x4a,0x40,0x47,0x09,0x01,0x04,0x00,0x26,0x25,0x19,0x0c,0x01,0x05,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x41,0x4d,0x07,0x01,0x05,0x05,0x02, -0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x20,0x1f,0x00,0x00,0x1f,0x27,0x20,0x27,0x1c,0x1a,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x37,0x14,0x17,0x13,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35, -0x34,0x27,0x03,0x16,0x23,0x51,0x1c,0x72,0x62,0x4c,0x34,0x2e,0x5b,0x54,0x1f,0x72,0x62,0x50,0x36,0x29,0x30,0x03,0xcc,0x20,0x30,0x3c,0x43,0x7f,0x3c,0x43,0x04,0xd0,0x20,0x1e,0x72,0x31,0x43,0x96,0x62,0x70,0x22,0x40,0x76,0x32,0x47,0x97,0x62,0x70,0x26,0x3a,0xe6,0x11,0x0e,0x01,0x20,0x17,0x44,0x3e,0xfe,0xe8,0x45,0x3d,0x96,0x15, -0x13,0xfe,0xdb,0x1b,0xff,0xff,0x00,0x23,0xff,0xe2,0x02,0x35,0x03,0x11,0x02,0x26,0x01,0x39,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x0c,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x23,0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x28, -0x00,0x36,0x00,0x3f,0x00,0x59,0x40,0x56,0x0b,0x01,0x09,0x08,0x24,0x01,0x04,0x05,0x02,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x09,0x00,0x03,0x05,0x09,0x03,0x67,0x0a,0x01,0x08,0x08,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x07,0x02,0x04,0x04,0x00,0x61,0x06,0x0b,0x02,0x00,0x00,0x3f,0x00,0x4e,0x2a,0x29,0x01, -0x00,0x3d,0x3b,0x38,0x37,0x31,0x2f,0x29,0x36,0x2a,0x36,0x21,0x1f,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x11,0x0f,0x08,0x06,0x00,0x28,0x01,0x28,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22, -0x26,0x26,0x27,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xb4,0x43,0x4e,0x4e,0x43,0x28,0x33,0x1a,0x01,0x04,0x02,0x19,0x33,0x28,0x43,0x4e,0xde,0x24,0x1f,0x1a,0x25,0x04,0x55,0x0a,0x4c,0x38,0x28,0x33,0x19,0x02,0x04,0x01,0x1a,0x33,0x1e, -0x1f,0x24,0x24,0x1f,0x20,0x26,0x26,0xb9,0x89,0x26,0x20,0x1f,0x24,0x0a,0x57,0x49,0xfa,0x4a,0x56,0x1a,0x25,0x11,0x11,0x25,0x1a,0x56,0x4a,0x96,0x64,0x26,0x2d,0x20,0x1a,0x3e,0x49,0x1a,0x25,0x11,0x11,0x25,0x1a,0x4d,0x2d,0x26,0xfa,0x26,0x2d,0x2d,0x26,0xfa,0x26,0x2d,0x01,0x00,0x4d,0x26,0x2d,0x2d,0x26,0x00,0x00,0x02,0x00,0x5c, -0xff,0x4c,0x02,0x01,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x11,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x00,0x00,0x3b,0x4d, -0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x24,0x11,0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15, -0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5c,0x5a,0x01,0x07,0x50,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x03,0x02,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xb4,0x02,0xda,0x69,0x36,0x3d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x3c,0x43, -0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x02,0x00,0x57,0xff,0x56,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6c,0xb6,0x12,0x04,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x31,0x50,0x58,0x40,0x21,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f, -0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x25,0x11, -0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x11,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x57,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x01,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xaa,0x03, -0x84,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x3d,0x36,0xfe,0xed,0xee,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x10,0x02,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x01,0x61, -0x02,0x01,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16, -0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x14,0x25,0x25,0x08,0x09,0x19,0x2b,0x05,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xa2,0x02,0x03,0x07,0x50,0x3e,0x53,0x62, -0x63,0x52,0x3e,0x50,0x07,0x01,0x5a,0xd2,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0xb4,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5f,0x6d,0x3d,0x36,0x69,0xfd,0x26,0xf8,0x46,0x3e,0x96,0x3e,0x46,0x3a,0x40,0xaa,0x40,0x3a,0x00,0x00,0x00,0x00,0x01,0x00,0x70,0x00,0x00,0x02,0x12,0x02,0x30,0x00,0x13,0x00,0x5a,0xb5,0x03,0x01,0x02,0x03,0x01, -0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x1e,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x04,0x04, -0x39,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x13,0x00,0x13,0x22,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x70,0x5a,0x02,0x07,0x4c,0x40,0x56,0x5d,0x5a,0x75,0x3b,0x3e,0x02,0x26,0x69,0x35,0x3e,0x67,0x5f,0x2f,0x2f,0x78,0x44,0x40, -0xfe,0xa2,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x76,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x12,0x02,0x30,0x02,0x26, -0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x7a,0x01,0xbd,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x00,0x28,0x00,0x3b,0x40,0x38,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00, -0x4e,0x01,0x00,0x1e,0x1b,0x19,0x18,0x16,0x13,0x09,0x06,0x04,0x03,0x00,0x28,0x01,0x27,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06,0x23,0x01,0x16, -0x5c,0x65,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x08,0x53,0x4c,0x26,0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x00,0x00,0xff,0xff,0x00,0x55, -0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x03,0x02,0x2e,0x00,0x3a,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03, -0x33,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08, -0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00, -0x3a,0x00,0x39,0x29,0x32,0x12,0x3a,0x32,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06, -0x23,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd7,0x46,0x16,0x1b,0x37,0x32,0x17,0x50,0x57,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x0d,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x3e,0x06,0x51,0x47,0x26, -0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x1b,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x10,0x02,0x03, -0x02,0x2e,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x18,0x02,0xe4,0x00,0x2a,0x00,0x37,0x40,0x34,0x0c,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x69,0x00,0x05,0x05,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x00,0x02,0x02,0x01,0x61,0x07,0x06,0x02, -0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x24,0x21,0x24,0x21,0x2d,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11, -0x5c,0x35,0x5f,0x3f,0x3f,0x5e,0x35,0x41,0x34,0x3e,0x4e,0x38,0x63,0x42,0x3a,0x30,0x3e,0x4d,0x48,0x3a,0x39,0x2e,0x35,0x43,0x43,0x35,0x36,0x43,0x02,0x16,0x3d,0x5d,0x34,0x2f,0x52,0x37,0x3b,0x5a,0x0d,0x03,0x0b,0x68,0x48,0x3c,0x5c,0x34,0x52,0x48,0x3a,0x3a,0x48,0x50,0x42,0x35,0x35,0x42,0x46,0x38,0xfd,0xea,0x00,0x01,0x00,0xa5, -0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x21,0x23,0x04,0x09,0x18,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x11,0xa5,0x5d,0x4c,0xb0,0xb0,0x23,0x2c,0x02,0x3b,0x47,0x58, -0x50,0x2c,0x24,0xfd,0xc6,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0xc1,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x60,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07, -0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x63,0x44,0x52,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x4f,0x42,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08, -0x02,0xc1,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00,0x0b,0x0a,0x02,0x07,0x08,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x09,0x60,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x18,0x16,0x23,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x55,0x78,0x9e,0x9e,0x5a,0xe1,0xe1,0xb4,0xb4,0x21,0x1b,0xa0,0xa0,0x44,0x52,0xef,0x4b,0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x5e,0x1c,0x23,0x52,0x4f,0x42,0x5e,0x00, -0xff,0xff,0x00,0x2f,0x00,0x00,0x02,0x08,0x03,0x21,0x02,0x26,0x01,0x4c,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0x35,0x02,0x08,0x02,0xc1,0x00,0x25,0x00,0x87,0x40,0x0a,0x09,0x01,0x08,0x07,0x1e,0x01,0x01,0x08,0x02,0x4c,0x4b,0xb0, -0x15,0x50,0x58,0x40,0x2f,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00,0x08,0x01,0x00,0x80,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x4d,0x00,0x00,0x00,0x09,0x5f,0x0a,0x01,0x09,0x09,0x3d,0x09,0x4e,0x1b,0x40,0x2c,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00, -0x08,0x01,0x00,0x80,0x00,0x00,0x0a,0x01,0x09,0x00,0x09,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x24,0x11,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0b,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x1c,0x30,0x36,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x99,0x0c,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x4b,0x0d,0x49, -0x35,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x2f,0xff,0x10,0x02,0x08,0x02,0xc1,0x02,0x26,0x01,0x4c,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01, -0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2b,0x5f,0x72,0x5a,0x40,0x37,0x38,0x41,0x5a,0x74,0x0a,0x71,0x61,0x01,0x5e, -0xfe,0xa2,0x3c,0x47,0x47,0x3c,0x01,0x5e,0xfe,0xa2,0x61,0x71,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a, -0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x68, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6b,0x02,0x62,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00, -0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6f,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6a,0x02,0x4e,0x00,0xe3,0x00,0x08,0xb1,0x03, -0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xcc,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x73,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0x26,0x02,0x26, -0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x39,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a, -0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x19,0x00,0x4e,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1c,0x00,0x03,0x00,0x00,0x03,0x70,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x00,0x03,0x85,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d, -0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x09,0x23,0x13,0x12,0x23,0x23,0x11,0x06,0x09,0x1c,0x2b,0x37,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x14,0x06,0x23,0x22,0x26,0x5a,0x5a,0x40,0x37,0x38,0x41,0x46,0x23,0x4b,0x2b,0x2f,0x74,0x5f,0x5f, -0x72,0xc8,0x01,0x5e,0xfe,0xa2,0x3e,0x45,0x45,0x3e,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0xe3,0x61,0x71,0x71,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0x5e,0x00,0x00, -0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58, -0x03,0x0c,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6c,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe9,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00, -0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0x26,0x00,0x1f,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x60,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x64,0x04,0x01,0x02,0x02, -0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1e,0x1c,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15,0x14, -0x16,0x33,0x33,0x15,0x01,0x74,0x37,0x43,0x19,0x22,0x09,0x62,0x70,0x5a,0x78,0x78,0x5a,0x57,0x18,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x01,0x5e,0xfe,0xa2,0x82,0x82,0x01,0x5e,0xfe,0xa2,0x7f,0x34,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x44,0x02,0x26, -0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d, -0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xf1,0xbb,0x61,0x78,0x0b,0x10,0x04,0x05,0x0e,0x0a,0x78,0x5f,0xbb,0x02,0x26,0xfe,0x8e,0x21,0x3d,0x11,0x11,0x3d,0x21,0x01,0x72,0xfd,0xda,0x00,0x00,0x01,0x00,0x1f, -0x00,0x00,0x02,0x39,0x02,0x26,0x00,0x1e,0x00,0x27,0x40,0x24,0x1a,0x0f,0x06,0x03,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16, -0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x79,0x5a,0x4e,0x38,0x03,0x06,0x01,0x02,0x05,0x04,0x45,0x5a,0x45,0x04,0x07,0x01,0x02,0x06,0x03,0x3a,0x4a,0x5e,0x63,0x3f,0x04,0x07,0x02,0x01,0x08,0x05,0x42,0x02,0x26,0xfe,0x7c,0x16,0x35,0x11,0x11,0x35,0x16,0x01,0x84,0xfe,0x7c,0x16,0x35,0x11, -0x11,0x35,0x16,0x01,0x84,0xfd,0xda,0x01,0x7c,0x1c,0x3f,0x11,0x11,0x3f,0x1c,0xfe,0x84,0x00,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6e, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x09,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x17, -0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, -0x32,0xc3,0xb7,0x6a,0x6d,0x07,0x0d,0x04,0x03,0x0d,0x07,0x6d,0x6a,0xb7,0xc2,0x6a,0x76,0x07,0x0d,0x05,0x04,0x0f,0x08,0x76,0x01,0x1b,0x01,0x0b,0xaa,0x0b,0x1a,0x08,0x08,0x1a,0x0b,0xaa,0xfe,0xf4,0xfe,0xe6,0xb4,0x0b,0x1d,0x09,0x09,0x1d,0x0b,0xb4,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x0d,0x00,0x22,0x40,0x1f, -0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x03,0x01,0x02,0x02,0x3d,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x09,0x18,0x2b,0x17,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x01,0xb2,0x51,0xcd,0x61,0x82,0x08,0x0e,0x03,0x03,0x0e,0x07,0x79,0x5f,0xfe,0xee,0xb4,0xd6,0x02, -0x04,0xfe,0xac,0x14,0x2c,0x10,0x10,0x2c,0x14,0x01,0x54,0xfd,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00, -0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x09,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00, -0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, -0x03,0x0c,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0x26,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, -0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x5a,0x01,0x34,0xfe,0xd4,0x01,0x91,0xfe,0xc6,0x01,0x45,0x5a,0x01,0x7a,0x52,0x5a,0xfe,0x86,0x52,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, -0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x02,0x06,0x00,0x87,0x00,0x00, -0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x41, -0xc8,0xb4,0x01,0x0e,0xc8,0x52,0x02,0x36,0x52,0xfd,0x78,0x52,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x41, -0xff,0x10,0x02,0x2b,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06,0x01,0x7e,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0xa7,0x02,0xda,0x00,0x27,0x03,0x29,0x01,0x29,0x01,0x13,0x03,0x06,0x01,0x7e,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b, -0x02,0xda,0x00,0x11,0x00,0x34,0x40,0x31,0x0e,0x0d,0x0c,0x0b,0x06,0x05,0x04,0x03,0x08,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x15,0x11,0x15,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x35,0x07,0x35, -0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x11,0x33,0x15,0x41,0xc8,0x8c,0x8c,0xb4,0x01,0x0e,0x8c,0x8c,0xc8,0x52,0xf3,0x5f,0x50,0x5f,0xf3,0x52,0xfe,0xf7,0x5f,0x50,0x5f,0xfe,0xd1,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x19,0x00,0x3f,0x40,0x3c,0x00,0x03,0x02,0x03,0x85,0x00,0x07,0x01, -0x06,0x01,0x07,0x06,0x80,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x19,0x01,0x19,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15, -0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x70,0x54,0x63,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x0a,0x62,0x54,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x21, -0x00,0x48,0x40,0x45,0x00,0x03,0x02,0x03,0x85,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x06,0x01,0x00,0x0c,0x0b,0x02,0x07,0x09,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x1e,0x1c,0x19,0x17,0x23,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x55,0x64,0x96,0x96,0x5a,0xe1,0xe1,0xc8,0xc8,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x54,0x63,0xef,0x4b, -0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x43,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x62,0x54,0x43,0x00,0xff,0xff,0x00,0x23,0xff,0xf6,0x02,0x24,0x03,0x21,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0x35,0x02,0x24, -0x02,0xc1,0x00,0x2d,0x00,0x98,0x40,0x0a,0x09,0x01,0x09,0x07,0x26,0x01,0x01,0x09,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x72,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61,0x00,0x09, -0x09,0x3f,0x4d,0x00,0x00,0x00,0x0a,0x5f,0x0b,0x01,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x34,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x00,0x80,0x00,0x00,0x0b,0x01,0x0a,0x00,0x0a,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61, -0x00,0x09,0x09,0x3f,0x09,0x4e,0x59,0x40,0x14,0x00,0x00,0x00,0x2d,0x00,0x2c,0x25,0x22,0x22,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0c,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14, -0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x19,0x38,0x3f,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x05,0x04,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x44,0x10,0x5a,0x43,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03, -0x03,0x54,0x62,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x24,0x02,0xc1,0x02,0x26,0x01,0x84,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x42,0x02,0x46,0x02,0x30,0x00,0x26,0x00,0x32,0x00,0x40,0x00,0xd1,0x40,0x0a,0x08,0x01,0x04,0x06,0x07,0x01,0x09,0x05, -0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x07,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x31,0x50,0x58,0x40,0x32,0x0b,0x01,0x06,0x00,0x04, -0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2f,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09, -0x67,0x0c,0x01,0x08,0x0a,0x01,0x00,0x08,0x00,0x63,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x03,0x4e,0x59,0x59,0x40,0x23,0x35,0x33,0x28,0x27,0x01,0x00,0x3c,0x39,0x33,0x40,0x35,0x40,0x2e,0x2c,0x27,0x32,0x28,0x32,0x1f,0x1d,0x1b,0x19,0x13,0x12,0x11,0x10,0x0f,0x0d,0x00, -0x26,0x01,0x25,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x15,0x23,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0xe2,0x33,0x50,0x2d,0x51,0x40,0x34,0x3a,0x6e,0x5e,0x2e,0x19,0xde,0xb9,0x29,0x33,0x6c,0x5c,0x09,0x08,0x77,0x34,0x4f,0x2e,0x2e,0x4f,0x34,0x66,0x38,0x40,0x40,0x38,0x38,0x42,0x42,0x07,0xa6,0x26,0x31,0x31,0x26,0xa6,0x25,0x32,0x32,0xbe,0x29,0x49,0x30,0x42,0x57,0x0a,0x5f,0x13,0x50,0x39, -0x50,0x5e,0x0a,0x4a,0x01,0x05,0x2d,0x30,0x4b,0x57,0x4e,0x2a,0x4a,0x31,0x30,0x49,0x29,0x01,0xdc,0x36,0x2e,0x2e,0x36,0x36,0x2e,0x2e,0x36,0xfe,0x72,0x30,0x27,0x27,0x30,0x30,0x27,0x27,0x30,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, -0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00, -0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x70,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x09,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe, -0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x42,0x01,0xee,0x02,0x26,0x00,0x15,0x00,0x58,0x4b,0xb0,0x31,0x50,0x58,0x40,0x1e,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00, -0x3d,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x02,0x05,0x01,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x03,0x4e,0x59,0x40,0x11,0x01,0x00,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x06,0x05,0x00,0x15,0x01,0x15,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x16, -0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x06,0x01,0x24,0x3c,0x5b,0x33,0x5a,0x3f,0x31,0x32,0x3e,0xfe,0xf3,0x01,0x67,0x33,0x5b,0xbe,0x32,0x58,0x3a,0x4a,0x4a,0x34,0x40,0x40,0x34,0x01,0xce,0x52,0xfd,0xe0,0x3a,0x58,0x32,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x02,0x6c,0x03,0x11,0x02,0x26,0x01,0x91,0x00,0x00, -0x00,0x07,0x06,0x6e,0x02,0xe3,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x13,0x00,0x32,0x40,0x2f,0x00,0x04,0x01,0x03,0x01,0x04,0x03,0x80,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04, -0x00,0x13,0x01,0x13,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x60,0x58,0x67,0xa6,0x01,0x00,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x00,0x00,0x00,0xff,0xff,0xff,0xfb, -0xff,0xf6,0x02,0x1f,0x03,0xb6,0x02,0x26,0x01,0x93,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x30,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x6d,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x93,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0x10,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06, -0x01,0x93,0x00,0x00,0x00,0x02,0xff,0xfb,0xff,0xf6,0x02,0x4d,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x04,0x05,0x03,0x05,0x04,0x03,0x80,0x00,0x06,0x08,0x01,0x05,0x04,0x06,0x05,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x15,0x14,0x01, -0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x61,0x58,0x68,0xa6,0x01,0x00,0x37,0x2f, -0x2f,0x37,0x5a,0x67,0x41,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3a,0x3a,0x31,0x29,0x29,0x57,0x66,0x01,0x23,0x2c,0x23,0x25,0x2e,0x2e,0x25,0x23,0x2c,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x1b,0x00,0x38,0x40,0x35,0x1b,0x0a,0x09,0x08,0x07,0x02,0x01,0x07, -0x03,0x00,0x00,0x01,0x02,0x03,0x02,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x23,0x13,0x27,0x11,0x13,0x05,0x09,0x1b,0x2b,0x37,0x35,0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35, -0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x7e,0xa6,0x01,0x00,0x9a,0x9a,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x59,0x58,0x67,0xe6,0x50,0x55,0xfd,0x52,0xfe,0xee,0x68,0x50,0x68,0xc5,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x66,0x57,0x88,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x23,0x00,0x64,0xb6,0x0a, -0x03,0x02,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x21,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61, -0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x24,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34, -0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x51,0x02,0x01,0x05,0x2e,0x25,0x24,0x32,0x0b,0x07,0x31,0x26,0x35,0x40,0x56,0x1d,0x1a,0x1b,0x20,0x50,0x1f,0x1a,0x1a,0x1f,0x02,0x26,0x49,0x26,0x2d,0x29,0x23,0x23,0x29,0x4f,0x3f,0xfe,0x5e,0x01,0xa3,0x21,0x27,0x26,0x21,0xcd,0xcc,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x00,0x01,0x00,0x22, -0x00,0x00,0x02,0x36,0x02,0x26,0x00,0x18,0x00,0x2e,0x40,0x2b,0x17,0x0f,0x06,0x03,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36, -0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x03,0x6c,0x4a,0x52,0x2f,0x03,0x06,0x01,0x02,0x08,0x06,0x45,0x58,0x43,0x05,0x0c,0x01,0x02,0x06,0x03,0x2e,0x4e,0x4b,0x67,0x57,0x5a,0x02,0x26,0xfe,0x84,0x16,0x39,0x0b,0x0b,0x39,0x16,0x01,0x0f,0xfe,0xf1,0x16,0x37,0x0c,0x0c,0x37,0x16,0x01,0x7c, -0xfd,0xda,0x01,0x5f,0xfe,0xa1,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36, -0x03,0x09,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x2f,0x40,0x2c,0x08,0x05,0x02,0x01,0x02,0x01, -0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x33,0x11,0x33,0x11,0x21,0x03,0x13,0x33,0x03,0x13,0x64,0x5a,0x01,0x04,0xf6,0xe6,0x71,0xe5,0xf9,0x02,0xda,0xfd,0x26,0x01,0x22, -0x01,0x04,0xfe,0xfd,0xfe,0xdd,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x10,0x02,0x37,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09,0x02,0xda,0x00,0x16,0x00,0x35,0x40,0x32, -0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15, -0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x39,0x50,0x75,0x41,0x49,0x50,0x3a,0x75,0x50,0xfe,0xc7,0x52,0x00,0x01,0x00,0x46,0x00,0x00,0x02,0x23,0x02,0x27,0x00,0x14,0x00,0x6e,0x4b,0xb0,0x1e,0x50,0x58,0xb5,0x07,0x01,0x00,0x01,0x01,0x4c,0x1b,0xb5, -0x07,0x01,0x00,0x04,0x01,0x4c,0x59,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x19,0x04,0x01,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x40,0x23,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x00,0x04,0x04,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d, -0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x14,0x00,0x14,0x13,0x21,0x24,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x15,0x33,0x36,0x36,0x37,0x37,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x46,0x91,0x87,0xda,0x01,0x0d,0x4e,0x39,0x64,0x63,0x42, -0x4d,0xd3,0x52,0x01,0x82,0x52,0x88,0x3e,0x49,0x01,0x01,0x5b,0x43,0x3a,0xfd,0x52,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6b,0x02,0x76,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6f,0x02,0x6c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00, -0xff,0xff,0x00,0x46,0xff,0x10,0x02,0x23,0x02,0x27,0x00,0x27,0x06,0x7a,0x02,0x1c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x15,0x00,0x22,0x40,0x1f,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x60,0x00,0x03,0x03,0x3d,0x03,0x4e, -0x23,0x18,0x14,0x20,0x04,0x09,0x1a,0x2b,0x17,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x23,0x42,0x66,0x19,0x25,0x0b,0x12,0xcd,0x61,0x82,0x07,0x0f,0x03,0x03,0x0e,0x07,0x79,0x5f,0xdb,0x13,0x4c,0x31,0x75,0x61,0x1e,0x19,0x2a,0x02,0x26,0xfe,0x8a,0x14,0x2c,0x10,0x10, -0x2c,0x14,0x01,0x76,0xfd,0x9a,0x37,0x3d,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, -0x03,0x09,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, -0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x0c,0x02,0x26,0x01,0xa7,0x00,0x00, -0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x02,0x26,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x05,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x17,0x05,0x04,0x02,0x02,0x02,0x3b, -0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63, -0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x14,0x00,0x18,0x00,0x6a,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06, -0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x22,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06,0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x15,0x15,0x15,0x00,0x00, -0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x09,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x27,0x37,0x33,0x07,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xb0,0x6a,0x61,0x6f,0x02,0x26,0xfd, -0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x5f,0x8c,0x8c,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x0d,0x00,0x22,0x00,0x7a,0xb5,0x11,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00, -0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x62,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x62,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x1d, -0x0e,0x0e,0x01,0x00,0x0e,0x22,0x0e,0x22,0x1f,0x1d,0x1a,0x19,0x16,0x14,0x10,0x0f,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35, -0x11,0x01,0x2c,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x88,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x5a,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, -0x03,0x11,0x00,0x06,0x00,0x1b,0x00,0x75,0x40,0x0a,0x05,0x01,0x01,0x00,0x0a,0x01,0x06,0x05,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x62,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x23,0x00,0x00,0x01, -0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x62,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x40,0x19,0x07,0x07,0x00,0x00,0x07,0x1b,0x07,0x1b,0x18,0x16,0x13,0x12,0x0f,0x0d,0x09,0x08,0x00,0x06,0x00,0x06,0x11,0x11,0x0a,0x09,0x18,0x2b,0x13,0x37,0x33, -0x17,0x23,0x27,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x77,0x8b,0x53,0x8c,0x63,0x52,0x50,0x01,0x20,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e, -0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0xa2,0xb5,0x1b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x21,0x0a,0x02,0x09,0x03,0x00,0x00,0x01,0x61,0x03,0x01,0x01,0x01,0x40,0x4d,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07, -0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b, -0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, -0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x01,0x22,0x5a,0x01,0x07,0x4c, -0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x63,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0x2b,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x20,0x00,0x68,0xb5,0x0f,0x01,0x05, -0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1b,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x1f,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03, -0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x19,0x0c,0x0c,0x01,0x00,0x0c,0x20,0x0c,0x20,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16, -0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xaf,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x02,0xfb,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, -0x03,0x11,0x00,0x03,0x00,0x18,0x00,0x6d,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04,0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x62,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04, -0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x62,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x17,0x11,0x23,0x35,0x23,0x06,0x06, -0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x0b,0x73,0x64,0x6e,0x92,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, -0x03,0x39,0x00,0x0e,0x00,0x23,0x00,0xa6,0xb5,0x12,0x01,0x06,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x23,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x72,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40, -0x24,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x28,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d, -0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x59,0x40,0x19,0x0f,0x0f,0x00,0x00,0x0f,0x23,0x0f,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x0a,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x17,0x11,0x23, -0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x02,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0xa5,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72, -0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x1c,0x00,0x8f,0xb5,0x19,0x01,0x02,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1e,0x00,0x04,0x01,0x01,0x04,0x70,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f, -0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00, -0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x18,0x17,0x16,0x15,0x12,0x11,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1c,0x01,0x1c,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x23,0x35,0x23, -0x06,0x06,0x01,0x0f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x48,0x23,0x4b,0x2d,0x2f,0x5a,0x01,0x07,0x4c,0x0a,0x66,0x58,0x01,0x72,0xfe,0x98,0x3a,0x40,0x44,0x40,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0x1b,0x69,0x37,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6b, -0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26, -0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x0c,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x1c,0x00,0x77,0xb5,0x0b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18, -0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07, -0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x20,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x1c,0x08,0x1c,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35, -0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x46,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x01,0x12,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a, -0xff,0xf6,0x01,0xfc,0x02,0xe9,0x00,0x03,0x00,0x18,0x00,0x96,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x22, -0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x1b,0x40,0x20,0x00,0x00,0x07,0x01,0x01,0x04,0x00,0x01,0x67,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00, -0x03,0x03,0x3f,0x03,0x4e,0x59,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x8c,0x01,0x40,0x30,0x5a, -0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x9e,0x4b,0x4b,0x78,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x35,0x02,0x20,0x02,0x26,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x01, -0x03,0x02,0x4c,0x1b,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x05,0x03,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1d,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x5f,0x07,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x06,0x07, -0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x01,0x4e,0x1b,0x40,0x1e,0x00,0x06,0x07,0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x22,0x20, -0x1b,0x1a,0x19,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x00,0x23,0x01,0x23,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0xd2,0x37,0x43,0x21,0x29,0x01,0x07,0x4c,0x3f, -0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x10,0x21,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1b,0x37,0x1e,0x67,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0xfd,0xda,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0x84,0xb5,0x1b, -0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x25,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09, -0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09, -0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21, -0xeb,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x6f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x00,0x19, -0x00,0x2e,0x00,0xfc,0xb5,0x1d,0x01,0x09,0x08,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2a,0x00,0x01,0x01,0x03,0x61,0x05,0x01,0x03,0x03,0x40,0x4d,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x18, -0x50,0x58,0x40,0x28,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2a,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, -0x0b,0x02,0x00,0x08,0x04,0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x38,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0b,0x01,0x00,0x08,0x04, -0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x59,0x40,0x21,0x1a,0x1a,0x01,0x00,0x1a,0x2e,0x1a,0x2e,0x2b,0x29,0x26,0x25,0x22,0x20,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0d,0x09,0x16,0x2b, -0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31, -0x61,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x64,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x2e,0x02,0xe4,0x00,0x17, -0x00,0x3d,0x40,0x3a,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x07,0x01,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3e,0x4d,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x04,0x03,0x00,0x17,0x01,0x17,0x09,0x09,0x16,0x2b,0x01, -0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x01,0x75,0x53,0x66,0x58,0x36,0x2b,0x2b,0x37,0xe1,0xe1,0x5a,0x96,0x96,0x68,0x02,0xe4,0x62,0x54,0x2f,0x37,0x37,0x2f,0x8f,0x52,0xfe,0xb3,0x01,0x4d,0x52,0x8f,0x54,0x62,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09, -0x02,0xda,0x00,0x16,0x00,0x37,0x40,0x34,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33, -0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x84,0x50,0x2a,0x41,0x49,0x50,0x3a,0x2a,0x50,0xfe,0x7c,0x52,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2f,0x40,0x2c, -0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x05,0x01,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x01,0x3b,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11, -0xd7,0xa0,0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0xd4,0x52,0x28,0x41,0x4b,0x52,0x3a,0x28,0x52,0xfe,0x2c,0x00,0x00,0x00,0x02,0x00,0xaf,0x01,0xc2,0x01,0xa4,0x02,0xe4,0x00,0x1b,0x00,0x25,0x00,0x8f,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x04, -0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x00,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08,0x02,0x00,0x06,0x00,0x51,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x05,0x06,0x00,0x06,0x05,0x00,0x80,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00, -0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x05,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x06,0x00,0x51,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x25,0x1d,0x25,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1b,0x01,0x1b,0x0a,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, -0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x15,0x14,0x16,0x01,0x12,0x2d,0x36,0x38,0x31,0x5a,0x23,0x1e,0x1a,0x24,0x03,0x32,0x05,0x3d,0x31,0x35,0x3e,0x2f,0x03,0x0a,0x33,0x16,0x27,0x2c,0x5a,0x37,0x22,0x01,0xc2,0x2f,0x27,0x27,0x2e,0x1d, -0x17,0x1b,0x16,0x12,0x26,0x2a,0x30,0x2a,0xc3,0x37,0x1c,0x20,0x26,0x24,0x1f,0x1a,0x2d,0x16,0x1a,0x00,0x00,0x02,0x00,0xb9,0x01,0xbd,0x01,0x9f,0x02,0xdf,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, -0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x34,0x3f,0x3f,0x34,0x34,0x3f,0x3f,0x34,0x1d,0x24,0x24,0x1d,0x1d, -0x24,0x24,0x01,0xbd,0x3a,0x2f,0x50,0x2f,0x3a,0x3a,0x2f,0x50,0x2f,0x3a,0x28,0x24,0x1d,0x50,0x1d,0x24,0x24,0x1d,0x50,0x1d,0x24,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02, -0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34, -0x26,0x23,0x23,0x5e,0x01,0x96,0xfe,0xc4,0x79,0x68,0x79,0x79,0x68,0x79,0x79,0x3e,0x46,0x46,0x3e,0x79,0x02,0xda,0x52,0xd8,0x76,0x62,0x61,0x77,0x52,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x05, -0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x82,0x01,0xa9,0xfe,0xb1,0x02,0xda,0x52,0xfd,0x78,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26, -0x01,0xcb,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x76,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0x39,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85, -0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x54,0x55,0xfe,0xb1,0x02,0xda,0x5f,0xb1,0xfd,0x78,0x00,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0x74,0x02,0x3f, -0x02,0xda,0x00,0x0e,0x00,0x15,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x14,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x36,0x36, -0x37,0x13,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x03,0x06,0x06,0x19,0x2d,0x11,0x24,0x01,0x07,0x01,0x76,0x46,0x50,0xfe,0x7a,0x3b,0xfb,0xc6,0x05,0x01,0x20,0x8c,0xd9,0x1e,0x79,0x46,0x01,0xb0,0xfd,0x73,0xd9,0x8c,0x8c,0xd9,0x02,0x3d,0xfe,0xa0,0x4d,0x76,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, -0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x02,0x52,0x02,0xda,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06, -0x67,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x13,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x23,0x11,0x23,0x03,0x06,0x86,0x7c,0x5e,0x6a,0x2e, -0x4c,0x30,0x68,0x5e,0x7d,0x87,0x5d,0x75,0x2e,0x4c,0x30,0x74,0x01,0x7b,0x01,0x5f,0xfe,0xc1,0x01,0x3f,0xfe,0xc1,0x01,0x3f,0xfe,0xa0,0xfe,0x86,0x01,0x57,0xfe,0xa9,0x01,0x57,0xfe,0xa9,0x00,0x01,0x00,0x34,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06, -0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x1f,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x20,0x1e,0x1b,0x1a,0x18,0x16,0x12,0x10,0x0f,0x0d,0x09,0x07,0x05,0x04,0x00,0x2d,0x01,0x2d,0x09,0x07,0x16,0x2b, -0x05,0x22,0x26,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x23,0x46,0x6b,0x3d,0x01,0x5a,0x02,0x53,0x41,0x43,0x53,0x53,0x43,0x56,0x57,0x39,0x47, -0x46,0x38,0x3b,0x4a,0x5a,0x39,0x64,0x42,0x40,0x61,0x37,0x41,0x34,0x3e,0x4e,0x3d,0x6e,0x0a,0x35,0x5f,0x3e,0x3a,0x48,0x4b,0x3c,0x3c,0x4b,0x50,0x44,0x36,0x35,0x41,0x48,0x3a,0x3f,0x5e,0x35,0x30,0x55,0x38,0x3c,0x5b,0x0d,0x03,0x0b,0x67,0x47,0x3e,0x5e,0x35,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11, -0x00,0x24,0x40,0x21,0x10,0x07,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x5a,0x57,0x03,0x04,0x02,0xde,0x78,0x57, -0x03,0x05,0x02,0xdf,0x02,0xda,0xfe,0x66,0x24,0x51,0x49,0x19,0x02,0x71,0xfd,0x26,0x01,0x9a,0x25,0x51,0x49,0x18,0xfd,0x8f,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00, -0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x03,0xb6,0x02,0x26,0x00,0x51,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x14,0xff,0xfb,0x01,0xfa,0x02,0xda,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02, -0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x03, -0x06,0x06,0x23,0x14,0x12,0x2c,0x27,0x01,0x08,0x01,0x78,0x5a,0xc5,0x07,0x02,0x51,0x56,0x05,0x54,0x4f,0x60,0x01,0xdc,0xfd,0x26,0x02,0x88,0xfe,0x76,0x86,0x7d,0x00,0xff,0xff,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00, -0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33, -0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5e,0x01,0x9c,0x5a,0xe8,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x02,0x06,0x00,0x1b,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06, -0x00,0x89,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x07,0x18,0x2b,0x33,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13, -0x33,0x01,0xbf,0x4a,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e,0x0b,0x73,0x62,0xfe,0xf9,0xbd,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x26,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x01,0xdf,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x2e,0xff,0xe7,0x02,0x2a, -0x03,0x02,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0xb2,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2c,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x4b,0xb0, -0x11,0x50,0x58,0x40,0x2b,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01, -0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x59,0x59,0x40,0x1a,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x22,0x26, -0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x35,0x33,0x15,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3c,0x5e,0x37,0x36,0x5f,0x3c,0x5a,0x3d,0x5e,0x36,0x37,0x5e,0x3c,0x56,0x38,0x49,0x49,0x8a,0x38,0x49,0x49,0x38,0x19,0x50,0x34,0x5d,0x3f, -0xdb,0x41,0x5f,0x35,0x4b,0x4b,0x35,0x5f,0x41,0xdb,0x3f,0x5d,0x34,0x50,0x9c,0x01,0xe8,0x49,0x40,0xdb,0x3d,0x47,0x47,0x3d,0xdb,0x40,0x49,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x02,0x00,0x00, -0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1a,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9f,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe, -0xe9,0x30,0x34,0x01,0x7b,0xfd,0x26,0x00,0x00,0x01,0x00,0x5e,0xff,0x74,0x02,0x35,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1a,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, -0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xe5,0xfe,0x79,0x5a,0xd8,0x5a,0x4b,0x8c,0x8c,0x02,0xda,0xfd,0x76,0x02,0x8a,0xfd,0x76,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, -0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0xda,0x00,0x0f, -0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1a,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, -0x03,0xfe,0x39,0x51,0x78,0x46,0x78,0x51,0x3f,0x8c,0x8c,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x74,0xda,0x00,0x01,0x00,0x5e,0xff,0x83,0x01,0xfa,0x02,0xda,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, -0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, -0xa1,0x5a,0xe8,0x5a,0xa1,0x7d,0x7d,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd,0x26,0x7d,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1a,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x15,0x13,0x0f, -0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5e,0x5a,0x92,0x42,0x63,0x37,0x37,0x63,0x42,0x92,0x8d,0x3b,0x49,0x49,0x3b,0x8d,0x02,0xda,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49, -0x00,0x02,0xff,0xfb,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x11,0x11,0x07,0x07,0x19, -0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x87,0x8c,0xe6,0x69,0x42,0x63,0x37,0x37,0x63,0x42,0x69,0x64,0x3b,0x49,0x49,0x3b,0x64,0x02,0x88,0x52,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49,0x00,0x00,0x00,0x03,0x00,0x3c, -0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x19,0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1a,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0c,0x0c,0x00,0x00,0x19,0x17,0x12,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0a,0x21,0x11, -0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x2e,0x5a,0x6a,0x6a,0x5a,0x01,0x0a,0x54,0xfe,0x74,0x2e,0x33,0x3d,0x3d,0x33,0x2e,0x02,0xda,0xfe,0xd4,0x66,0x58,0x33,0x57,0x66,0x02,0xda,0xfd,0x26,0x4f,0x3c,0x33, -0x32,0x33,0x3c,0x00,0x00,0x02,0xff,0xfb,0xff,0xfb,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x21,0x00,0x6a,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x2a,0x00,0x02, -0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x06,0x01,0x00,0x00,0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x07,0x35, -0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x05,0x12,0x1d,0x1a,0x01,0x05,0x01,0x1e,0x3c,0x48,0x58,0x58,0x48,0x8c,0x7b,0x04,0x01,0x46,0x48,0x01,0x5e,0x3c,0x24,0x28,0x28,0x24,0x3c,0x05,0x50,0x39,0x3e,0x02, -0x18,0xfe,0xd4,0x55,0x46,0x78,0x46,0x55,0x02,0x8f,0xfe,0x33,0x68,0x5f,0x50,0x2c,0x24,0x78,0x24,0x2c,0x00,0x02,0x00,0x35,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1a,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04, -0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x50,0x93,0x50,0x3c,0x4a,0x56,0x56,0x4a,0x8c,0x93, -0xe3,0x3c,0x26,0x2a,0x2a,0x26,0x3c,0x02,0xda,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0x54,0x47,0x78,0x47,0x54,0x01,0x63,0xfe,0x9d,0x4b,0x2b,0x25,0x78,0x26,0x2a,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x02,0x06,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1f,0x00,0x48,0x40,0x45, -0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x1f,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f, -0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a, -0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x6f,0x52,0x89,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x4e,0xff,0xf6,0x01,0xfc,0x02,0xe4,0x00,0x1f,0x00,0x3b,0x40,0x38,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x04,0x04,0x06, -0x61,0x00,0x06,0x06,0x1f,0x4d,0x00,0x01,0x01,0x07,0x61,0x00,0x07,0x07,0x20,0x07,0x4e,0x25,0x22,0x12,0x23,0x11,0x13,0x22,0x10,0x08,0x07,0x1e,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x4e,0x5a,0x42, -0x3a,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3a,0x42,0x5a,0x74,0x62,0x64,0x74,0x74,0x64,0x62,0x74,0xc8,0x3e,0x43,0x43,0x3e,0x89,0x52,0x6f,0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0x71,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, -0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x16,0x00,0x34,0x40,0x31,0x15,0x07,0x02,0x04,0x05,0x01,0x4c,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x02, -0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x07,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x22,0x13,0x23,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x6e,0x6e,0x01,0x40,0x78,0x10,0x4c, -0x57,0x47,0x55,0x5a,0x57,0x31,0x3a,0x33,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xbf,0x01,0x2d,0x77,0x3d,0x36,0xfe,0xcf,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x3a,0x02,0xe4,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61, -0x05,0x01,0x03,0x03,0x1a,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1a,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x1f,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e, -0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15, -0x11,0x14,0x16,0x01,0x90,0x4b,0x58,0x5e,0x53,0x53,0x5e,0x58,0x4b,0x4e,0x5c,0x5c,0x4e,0x29,0x2e,0x2e,0x29,0x29,0x2e,0x2e,0x0a,0x64,0x55,0xa2,0xfe,0xaf,0x02,0xda,0xfe,0xc7,0x8a,0x56,0x63,0x63,0x56,0xfe,0x84,0x55,0x64,0x4a,0x3a,0x35,0x01,0x7c,0x35,0x3a,0x3a,0x35,0xfe,0x84,0x35,0x3a,0x00,0x02,0x00,0x38,0x00,0x00,0x01,0xf9, -0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x10,0x0f,0x00,0x00,0x13,0x11,0x0f,0x17,0x10,0x17,0x00,0x0e,0x00,0x0e,0x11,0x11,0x27,0x08,0x07,0x19,0x2b, -0x33,0x13,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x11,0x23,0x11,0x23,0x03,0x13,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x38,0x96,0x42,0x4c,0x36,0x62,0x41,0xe0,0x5a,0x74,0x8b,0x79,0x86,0x86,0x37,0x45,0x44,0x01,0x40,0x14,0x6a,0x4a,0x3f,0x5e,0x35,0xfd,0x26,0x01,0x36,0xfe,0xca,0x01,0x86,0x01,0x04,0x47,0x3b,0x3a,0x48,0x00, -0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1e,0x00,0x3e,0x40,0x3b,0x14,0x0b,0x02,0x02,0x01,0x01,0x4c,0x00,0x06,0x00,0x01,0x02,0x06,0x01,0x69,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x07,0x61,0x08,0x01,0x07,0x07,0x1e,0x07,0x4e,0x00,0x00,0x00,0x1e,0x00, -0x1d,0x23,0x11,0x11,0x11,0x13,0x24,0x21,0x09,0x07,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x04,0x46,0x35,0x3e,0x57,0x31,0x3a,0x33,0x5a,0x6e,0x01,0x40,0x78,0x10,0x4c,0x57,0x47,0x55,0x70,0x5d, -0xb4,0x52,0x3d,0x34,0x01,0x1e,0x77,0x3d,0x36,0xfe,0xcf,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xce,0x58,0x6b,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1a,0x4d,0x07,0x01,0x06,0x06, -0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x11,0x82,0x64,0x64,0x01,0xa9,0xfe,0xb1,0xa0,0xa0,0x01,0x46,0x50,0x01,0x44,0x52,0xf2,0x50,0xfe,0xba,0x00,0x01,0x00,0x51,0xff,0x74,0x02,0x49,0x02,0xda,0x00,0x10, -0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03, -0x13,0x33,0x15,0x23,0x35,0x23,0x03,0x23,0x11,0x51,0x5a,0x6c,0xa2,0x62,0xb5,0x97,0x4c,0x50,0x3b,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xd6,0xdc,0x8c,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0x00,0x01,0x00,0x59,0xff,0x74,0x02,0x26,0x02,0xda,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67, -0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x11,0x23,0x11,0x59,0x5a,0xea,0x5a,0x2f,0x50,0x39,0xea,0x02,0xda, -0xfe,0xc8,0x01,0x38,0xfd,0x76,0xdc,0x8c,0x01,0x50,0xfe,0xb0,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02,0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01, -0x01,0x1a,0x4d,0x00,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x37,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x82,0x82,0x5a,0xc6, -0x4b,0x01,0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0x4b,0xc6,0xc6,0x00,0x00,0x00,0x01,0x00,0x41,0xff,0x74,0x02,0x1e,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1a,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e, -0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x2f,0x50,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe,0xe9,0x30,0x34,0x01,0x7b,0xfd,0x76,0xdc,0x8c, -0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1a,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23, -0x11,0x23,0x11,0xb9,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x02,0xda,0xfe,0xf1,0x60,0x54,0xfe,0xe9,0x01,0x17,0x30,0x34,0xfe,0x85,0x02,0xda,0x00,0x02,0x00,0x54,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02, -0x02,0x04,0x61,0x00,0x04,0x04,0x1f,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, -0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x29,0x62,0x73,0x01,0x50,0x42,0x39,0x39,0x42,0x5a,0x73,0x62,0x62,0x73,0x73,0x62,0x39,0x42,0xf6,0x42,0x0a,0x71,0x61,0xd1,0x7a,0x3b,0x46,0x46,0x3c,0x61,0x71,0x71,0x61,0xfe,0xb6,0x61,0x71,0x50,0x46,0x3c,0x7f,0x7f,0x3c,0x46,0xff,0xff,0x00,0x06, -0x00,0x00,0x02,0x52,0x03,0xb1,0x02,0x26,0x01,0xd1,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xf6,0x02,0x16,0x03,0xb1,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x8e, -0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, -0x1f,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32, -0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x70,0x62,0x62,0x70,0x70,0xdb,0xf2,0x3e,0x3b,0x3b,0x3e,0x79,0x3b,0x3e,0xf2,0x3f,0x0a,0x71,0x62,0x01,0x49,0x62,0x70,0x70,0x62,0xfe,0xb7,0x61,0x72,0x01,0xa8,0x74,0x40,0x43,0x43,0x40,0xfe,0x33,0x44,0x40,0x85,0x85,0x40,0x44,0x00,0xff,0xff,0x00,0x4b,0x00,0x00,0x01,0xf9, -0x03,0xb1,0x02,0x26,0x01,0xe3,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x38,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c, -0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf1,0x8b,0x8b,0x53,0x88,0x92,0xfd,0xbc,0x92,0x88,0x54,0x8a,0x8b,0x9f,0x4c,0x01,0x7c,0x01,0x5e,0xfe,0xa2, -0xfe,0x84,0x01,0x7e,0x01,0x5c,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x03,0xb6,0x00,0x27,0x06,0x91,0x02,0x62,0x00,0x00,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x47, -0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x38,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x11,0x22,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33, -0x03,0x13,0x35,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xba,0xf9,0xf9,0x67,0xf0,0xc6,0x50,0x50,0xfe,0x61,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xd3,0x01,0xdc,0x8c,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x28,0x40,0x25,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02, -0x01,0x01,0x01,0x38,0x4d,0x00,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x14,0x00,0x13,0x18,0x13,0x21,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x42,0x6a,0x33,0x16,0x14,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e, -0x0b,0x73,0x62,0xda,0x13,0x4d,0x31,0x53,0x37,0x33,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x9a,0x37,0x3d,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x02,0x09,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03, -0x00,0x1f,0x00,0x77,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x08,0x01,0x01,0x02,0x01,0x63,0x00,0x03,0x03,0x06,0x5f,0x00,0x06,0x06,0x3b,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06, -0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x59,0x40,0x1a,0x05,0x04,0x00,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01, -0x32,0x36,0x35,0x23,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x33,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x02,0x58,0xfe,0xdc,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x64,0x74,0x74,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x71,0x61,0x3e,0x43,0x43,0x3e,0x01,0x4a, -0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x02,0x06,0x00,0xbd,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xf6,0x02,0x02,0x02,0xe4,0x00,0x16,0x00,0x24,0x00,0x36,0x40,0x33,0x0d,0x01,0x02,0x03,0x01,0x4c,0x09,0x08,0x02,0x01,0x4a,0x00,0x01,0x00,0x03,0x02,0x01,0x03, -0x69,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x11,0x0f,0x00,0x16,0x01,0x16,0x06,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x37,0x15,0x07,0x06,0x15,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26, -0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x73,0x6d,0x6a,0xb6,0xa8,0x9a,0x0c,0x51,0x3e,0x5f,0x67,0x73,0x63,0x3a,0x42,0x42,0x3a,0x3a,0x42,0x42,0x0a,0x74,0x63,0xfd,0x79,0x86,0x0a,0x11,0x59,0x0f,0x0e,0xa4,0x2d,0x30,0x37,0x74,0x61,0x62,0x63,0x74,0x50,0x49,0x3e,0x62,0x3e,0x49,0x49,0x3e,0x62,0x3e,0x49,0x00,0x00,0x00, -0x00,0x03,0x00,0x5c,0x00,0x00,0x02,0x0d,0x02,0x26,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x39,0x40,0x36,0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x18,0x16, -0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x07,0x07,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xf1,0x53,0x60,0x3f,0x32,0x3c,0x42,0x66,0x57,0x9c,0x99,0x2a,0x30,0x30,0x2a,0x99,0x9c,0x2f, -0x35,0x35,0x2f,0x9c,0x02,0x26,0x4a,0x40,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x47,0x54,0x01,0x40,0x28,0x24,0x23,0x28,0xfe,0x78,0x2c,0x28,0x27,0x2c,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02, -0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x87,0x01,0x8b,0xfe,0xcf,0x02,0x26,0x52,0xfe,0x2c,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x02,0x0f,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x80,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x0d, -0x02,0x8f,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c, -0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x36,0x55,0xfe,0xcf,0x02,0x26,0x69,0xbb,0xfe,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x1b,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0f,0x00,0x17,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07, -0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x15,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x3e,0x02,0x37,0x37,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x07,0x0e,0x02,0x1b,0x2a,0x0d, -0x19,0x12,0x01,0x04,0x01,0x6d,0x4b,0x50,0xfe,0x81,0x34,0xf6,0xbe,0x02,0x01,0x10,0x17,0x8c,0xdc,0x0c,0x31,0x58,0x48,0xf9,0xfe,0x2a,0xdc,0x8c,0x8c,0xdc,0x01,0x88,0xad,0x47,0x58,0x31,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x02,0x06,0x00,0xe1,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26, -0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x26,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06,0x67,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00, -0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x0f,0x7b,0x73,0x56,0x65,0x35,0x4a,0x33,0x68,0x55,0x73,0x7b,0x59,0x69,0x36,0x4a,0x36,0x6a,0x01,0x1c,0x01,0x0a,0xed,0xed,0xed,0xed, -0xfe,0xf9,0xfe,0xe1,0xfb,0xfb,0xfb,0xfb,0x00,0x01,0x00,0x46,0xff,0xf9,0x02,0x0d,0x02,0x2d,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d, -0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x22,0x00,0x4e,0x01,0x00,0x21,0x1e,0x1c,0x1b,0x19,0x16,0x12,0x10,0x0f,0x0d,0x09,0x06,0x04,0x03,0x00,0x2d,0x01,0x2c,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x07, -0x23,0x36,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x5a,0x6a,0x5a,0x39,0x31,0x35,0x34,0x3c,0x3c,0x34,0x78,0x75,0x2f,0x37,0x36,0x2f,0x2f,0x2c,0x35,0x02,0x5a,0x02,0x66,0x55,0x2f,0x5a,0x69,0x3f,0x32,0x3c,0x42,0x6f,0x5f,0x07,0x55,0x49,0x23,0x2a,0x2d,0x27,0x29,0x2f,0x4e,0x2a, -0x24,0x23,0x29,0x22,0x1d,0x41,0x4d,0x4a,0x45,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x4b,0x59,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x24,0x40,0x21,0x0e,0x06,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11, -0x15,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x56,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfd,0xda,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc,0x03,0x11,0x02,0x26, -0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12, -0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x67,0x5a,0x6b,0x98,0x67,0xb2,0xbc,0x69,0x9f,0x6c,0x02,0x26,0xe3,0xe3,0xfe,0xf8,0xfe,0xe2,0xf1,0xf1,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x03,0x11,0x02,0x26,0x02,0x19,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x65,0x00,0x00, -0x00,0x01,0x00,0x19,0xff,0xf9,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00, -0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x07,0x06,0x06,0x23,0x19,0x0f,0x2e,0x25,0x01,0x06,0x01,0x7a,0x5a,0xc7,0x05,0x03,0x4e,0x58,0x07,0x54,0x48,0x5d,0x01,0x34,0xfd, -0xda,0x01,0xd4,0xe6,0x83,0x72,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0x26,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0e,0x0b,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x1c,0x4d,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x15,0x11,0x12,0x11, -0x06,0x07,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x15,0x48,0x76,0x6c,0x6d,0x79,0x56,0x03,0x0a,0x75,0x52,0x6e,0x09,0x03,0x02,0x26,0xfe,0xf3,0x01,0x0d,0xfd,0xda,0x55,0x8f,0xd0,0x46,0xfe,0xdd,0x01,0x13,0x3e,0xc0,0x97,0x55,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc, -0x02,0x26,0x00,0x0b,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x5c,0x5a,0xec,0x5a,0x5a,0xec,0x02, -0x26,0xe3,0xe3,0xfd,0xda,0xf1,0xf1,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07, -0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5c,0x01,0xa0,0x5a,0xec,0x02,0x26,0xfd,0xda,0x01,0xd4,0xfe,0x2c,0xff,0xff,0x00,0x5c,0xff,0x4c,0x02,0x01,0x02,0x30,0x02,0x06,0x01,0x3d,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x02,0x06,0x00,0xd7,0x00,0x00,0x00,0x01,0x00,0x37, -0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x01,0xd4,0x52,0x52,0xfe,0x2c,0x00,0x00, -0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x70,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x30,0xff,0x4c,0x02,0x28,0x02,0xda,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x42,0x40,0x3f,0x00,0x02,0x02,0x1a, -0x4d,0x09,0x01,0x06,0x06,0x01,0x61,0x03,0x01,0x01,0x01,0x1c,0x4d,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x00,0x1b,0x4d,0x0a,0x01,0x05,0x05,0x1e,0x05,0x4e,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x2e,0x02, -0x35,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x07,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3d,0x5e,0x34,0x34,0x5e,0x3d,0x5a,0x3e,0x5d,0x34,0x34,0x5d,0x3e,0x53,0x3c,0x45,0x45,0x88,0x3c,0x45,0x45,0x3c,0xb4,0xb4,0x02,0x36,0x5f,0x3d,0x80, -0x3d,0x5e,0x36,0x01,0xb4,0xb4,0x01,0x36,0x5e,0x3d,0x80,0x3d,0x5f,0x36,0x02,0xb4,0xfb,0x01,0x98,0x46,0x3b,0x94,0x3c,0x47,0x47,0x3c,0x94,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x01,0xf4,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22, -0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1c,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9a,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0xbf,0x5a,0x4c, -0xc1,0xc1,0x27,0x2e,0x01,0x16,0xfd,0xda,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1c,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, -0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xea,0xfe,0x72,0x5a,0xdf,0x5a,0x4b,0x8c,0x8c,0x02,0x26,0xfe,0x2a,0x01,0xd6,0xfe,0x2a,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, -0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfd,0xda,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0x26,0x00,0x0f, -0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1c,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, -0x03,0xfe,0x39,0x51,0x76,0x46,0x76,0x51,0x43,0x8c,0x8c,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfe,0x26,0xd8,0x00,0x01,0x00,0x5c,0xff,0x83,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, -0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, -0xa3,0x5a,0xec,0x5a,0xa3,0x7d,0x7d,0x02,0x26,0xfe,0x2c,0x01,0xd4,0xfd,0xda,0x7d,0x00,0x02,0x00,0x69,0x00,0x00,0x02,0x28,0x02,0x26,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1c,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d, -0x0b,0x00,0x0a,0x00,0x09,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x69,0x5a,0x9d,0x5d,0x6b,0x6c,0x5c,0x9d,0x9d,0x34,0x37,0x37,0x34,0x9d,0x02,0x26,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x19, -0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x23, -0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xa5,0x8c,0xe6,0x73,0x5d,0x6b,0x6c,0x5c,0x73,0x73,0x34,0x37,0x37,0x34,0x73,0x01,0xd6,0x50,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x03,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0a,0x00,0x0e,0x00,0x17, -0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1c,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x17,0x15,0x11,0x0f,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x09,0x21,0x11,0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15, -0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x37,0x59,0x67,0x67,0x59,0x01,0x01,0x54,0xfe,0x74,0x37,0x34,0x3c,0x3c,0x34,0x37,0x02,0x26,0xca,0x5e,0x50,0x50,0x5e,0x02,0x26,0xfd,0xda,0x48,0x37,0x2f,0x2f,0x37,0x00,0x00,0x00,0x02,0x00,0x05,0xff,0xfb,0x02,0x42,0x02,0x26,0x00,0x17, -0x00,0x21,0x00,0x9c,0x4b,0xb0,0x27,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2b,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f, -0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x4d,0x00,0x06,0x06,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x28,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x06,0x06,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x00,0x00,0x00, -0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26, -0x23,0x23,0x05,0x12,0x19,0x1e,0x01,0x04,0x01,0x11,0x3e,0x48,0x58,0x58,0x48,0x8b,0x71,0x03,0x01,0x4d,0x41,0x01,0x50,0x3e,0x24,0x27,0x27,0x24,0x3e,0x05,0x55,0x3e,0x34,0x01,0x64,0xc8,0x55,0x45,0x2a,0x45,0x55,0x01,0xd9,0xfe,0xe9,0x5b,0x6c,0x4f,0x2c,0x24,0x2a,0x24,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x42, -0x02,0x26,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1c,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x15,0x33, -0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3e,0x53,0x8b,0x49,0x3d,0x48,0x58,0x58,0x48,0x86,0x8b,0xd4,0x3d,0x24,0x29,0x29,0x24,0x3d,0x02,0x26,0xc8,0xc8,0xc8,0x55,0x46,0x28,0x46,0x55,0x01,0x13,0xfe,0xed,0x4b,0x2c,0x24,0x28,0x24,0x2c,0x00, -0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x02,0x06,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x57,0xff,0xf6,0x02,0x08,0x02,0x30,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, -0x21,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33, -0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x32,0x64,0x77,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x38,0x41,0x03,0x5a,0x03,0x74,0x0a,0x70,0x62,0x96,0x62,0x70,0x65,0x54,0x31,0x38,0x44,0x3e,0x1e,0x50,0x29,0x3d,0x44,0x39,0x31,0x55,0x65,0x00,0x01,0x00,0x50,0xff,0xf6,0x02,0x01,0x02,0x30,0x00,0x1f, -0x00,0x48,0x40,0x45,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0e,0x0d,0x0c,0x0b,0x08,0x06, -0x04,0x03,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x5f,0x74,0x03,0x5a,0x03,0x42,0x37,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x37,0x42,0x03,0x5a,0x03,0x74,0x5f, -0x64,0x77,0x77,0x0a,0x65,0x55,0x31,0x39,0x44,0x3d,0x29,0x50,0x1e,0x3e,0x44,0x38,0x31,0x54,0x65,0x70,0x62,0x96,0x62,0x70,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, -0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x39,0x40,0x36,0x09,0x01,0x05,0x06,0x01,0x4c,0x02,0x01,0x00,0x09,0x08,0x02,0x03,0x04,0x00,0x03, -0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x01,0x01,0x1a,0x4d,0x07,0x01,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x13,0x23,0x13,0x24,0x11,0x11,0x11,0x11,0x0a,0x07,0x1e,0x2b,0x11,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06, -0x15,0x11,0x23,0x11,0x5c,0x5a,0xa8,0xa8,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xca,0x01,0x2c,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x30,0x02,0x30,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50, -0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61,0x05,0x01,0x03,0x03,0x1c,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1c,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x21,0x4d,0x00,0x02, -0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x8b,0x47,0x53,0x62,0x53,0x53,0x62,0x53,0x47,0x4c,0x59,0x59,0x4b,0x26,0x2b,0x2b,0x26,0x25,0x2a,0x2a,0x0a,0x5c,0x4e,0x53,0xf3,0x02,0x26,0xeb,0x4b,0x4e,0x5c,0x5c,0x4e,0xe6,0x4e,0x5c,0x46,0x36,0x2e,0xe6,0x2e,0x36,0x36,0x2e, -0xe6,0x2e,0x36,0x00,0x00,0x02,0x00,0x3f,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0d,0x00,0x16,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x0f,0x0e,0x00,0x00,0x12,0x10,0x0e,0x16,0x0f, -0x16,0x00,0x0d,0x00,0x0d,0x11,0x11,0x26,0x08,0x07,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x23,0x35,0x23,0x07,0x13,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x3f,0x8d,0x3a,0x46,0x6c,0x5c,0xe8,0x5a,0x74,0x82,0x68,0x8e,0x8e,0x31,0x3b,0x3b,0xd6,0x0e,0x59,0x3d,0x50,0x5c,0xfd,0xda,0xd0,0xd0,0x01,0x1e,0xb9, -0x31,0x2c,0x2b,0x31,0x00,0x01,0x00,0x00,0xff,0x4c,0x01,0xfc,0x02,0xda,0x00,0x24,0x00,0x43,0x40,0x40,0x19,0x01,0x02,0x01,0x01,0x4c,0x06,0x01,0x04,0x07,0x01,0x03,0x08,0x04,0x03,0x67,0x00,0x08,0x00,0x01,0x02,0x08,0x01,0x69,0x00,0x05,0x05,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x09,0x61,0x0a,0x01,0x09,0x09,0x1e, -0x09,0x4e,0x00,0x00,0x00,0x24,0x00,0x23,0x24,0x11,0x11,0x11,0x11,0x11,0x13,0x25,0x21,0x0b,0x07,0x1f,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xfa,0x25,0x3e,0x45,0x3d,0x36, -0x38,0x3f,0x5a,0x5e,0x5e,0x5a,0xa6,0xa6,0x01,0x06,0x4b,0x3f,0x53,0x60,0x78,0x65,0xb4,0x53,0x43,0x3d,0x01,0x0d,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xe9,0x61,0x72,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05, -0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1c,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x15,0x96,0x64,0x64,0x01,0x8b,0xfe,0xcf,0xaf,0xaf,0xeb,0x52, -0xe9,0x52,0x97,0x52,0xeb,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x10,0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00, -0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x23,0x27,0x23,0x15,0x5c,0x5a,0x62,0xa0,0x67,0xb9,0x88,0x4c,0x50,0x31,0xa0,0x63,0x02,0x26,0xe3,0xe3,0xfe,0xfa,0xd0,0xdc,0x8c,0xf5,0xf5,0x00,0x01,0x00,0x5b,0xff,0x74,0x02,0x26,0x02,0x26,0x00,0x0f, -0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x35, -0x23,0x15,0x5b,0x5a,0xe8,0x5a,0x2f,0x50,0x39,0xe8,0x02,0x26,0xe5,0xe5,0xfe,0x2a,0xdc,0x8c,0xef,0xef,0xff,0xff,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x02,0x06,0x02,0x77,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02, -0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01,0x01,0x1c,0x4d,0x00,0x05,0x05,0x1e,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x17,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09, -0x0b,0x79,0x5c,0xc3,0x82,0x82,0x5a,0x4b,0x4b,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0x4b,0x69,0x69,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0x74,0x02,0x1c,0x02,0x26,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1c, -0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0x2d,0x50,0xbf,0x5a,0x4c,0xc1,0xc1,0x27,0x2e,0x01, -0x16,0xfe,0x2a,0xdc,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x02,0x0a,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1c,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x15,0x33,0x32,0x16, -0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0xbe,0x93,0x56,0x63,0x5a,0x35,0x2d,0x90,0x5a,0x02,0x26,0xbf,0x59,0x4d,0xc1,0xc1,0x27,0x2e,0xfe,0xea,0x02,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x02, -0x00,0x05,0x06,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x21,0x4d,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x20,0x01,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x07,0x16,0x2b,0x01,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x35,0x21, -0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x13,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x01,0x2c,0x62,0x76,0x76,0x62,0x41,0x61,0x36,0x01,0x58,0x45,0x3b,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0xff,0x00,0x43,0x3d,0x3d,0x43,0x02,0x30,0x75,0x67,0x82,0x67,0x75,0x34,0x5f,0x3f,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0xfe, -0xb4,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x00,0x02,0x49,0x03,0x09,0x02,0x26,0x02,0x15,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x46,0xff,0xf9,0x02,0x0d,0x03,0x09,0x02,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc, -0x03,0x09,0x02,0x26,0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05, -0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x21,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14, -0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x71,0x61,0x60,0x72,0x72,0xda,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x72,0x61,0x95,0x62,0x70,0x72,0x5f,0x96,0x61,0x72,0x01,0x45,0x23,0x3f,0x44,0x44,0x3f,0xfe,0xe7,0x44,0x40,0x27,0x27,0x40, -0x44,0x00,0x00,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x01,0xf4,0x03,0x09,0x02,0x26,0x02,0x27,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0x26,0x00,0x05, -0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x3b,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03, -0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf7,0x97,0x87,0x53,0x86,0x9a,0xfd,0xbc,0x9a,0x86,0x53,0x87,0x97,0xa5,0x4c,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x01,0x1b,0x01,0x0b,0xfe,0xf4,0xfe,0xe6,0x02,0x26,0xfd,0xda,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x00,0x05, -0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5,0xf9, -0xfe,0x2d,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x03,0x11,0x02,0x26,0x02,0x4b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x64,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01, -0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x3b,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x12,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5, -0xb3,0x49,0x50,0xfe,0x7a,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xcb,0xdc,0x8c,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0xa7,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00, -0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x05,0x04,0x00,0x00,0x1a,0x18,0x16, -0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x32,0x36,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x02,0x58,0xfe,0xdc,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b, -0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x64,0x78,0x78,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x66,0x58,0x34,0x3a,0x44,0x3e,0x97,0x3e,0x43,0x39,0x35,0x58,0x66,0x70,0x62,0x96,0x62,0x70,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12, -0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x06,0x01,0xcb,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x26,0x40,0x23,0x0a,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x01,0x60,0x03,0x01,0x01,0x01,0x29,0x01, -0x4e,0x00,0x00,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x04,0x08,0x17,0x2b,0x33,0x13,0x33,0x13,0x01,0x03,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x32,0xbe,0x79,0xbd,0xfe,0xe2,0x66,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x02,0xda,0xfd,0x26,0x01,0xf0,0xfe,0x60,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x00,0x00,0x00,0xff,0xff,0x00,0x64, -0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x02,0x06,0x00,0xb1,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x1f,0x00,0x3e,0x40,0x3b, -0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x1c,0x1c,0x0f,0x0e,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x08,0x16,0x2b,0x05,0x22,0x26,0x35, -0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x27,0x35,0x33,0x15,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x20,0xb4,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x62,0x70,0x51,0x43,0x3e,0x01, -0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xfe,0x52,0x52,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x1b,0x40,0x18,0x00,0x00,0x00,0x28, -0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x08,0x18,0x2b,0x33,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x31,0x30,0x06,0x07,0x03,0x32,0xbe,0x79,0xbd,0x5b,0x7b,0x11,0x13,0x13,0x11,0x7a,0x02,0xda,0xfd,0x26,0x01,0xef,0x47,0x5e,0x5d,0x47,0xfe,0x10,0x00,0x00,0x00,0xff,0xff,0x00,0x48, -0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00, -0x00,0x00,0x28,0x4d,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x05,0x29,0x05,0x4e,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x50,0x01,0xb8,0xfe,0x66,0x01,0x7c,0xfe,0x66, -0x01,0xb8,0x02,0x88,0x52,0x52,0xfe,0xc1,0x52,0x52,0xfe,0xb7,0x52,0x52,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x02,0x06,0x01,0xdb,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00, -0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0b,0x00,0x34,0x40,0x31,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01,0x02,0x02,0x4b,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x29,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x08, -0x19,0x2b,0x33,0x35,0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x4b,0xe8,0xe8,0x01,0xdb,0xfe,0x8f,0xeb,0xec,0x01,0x72,0x50,0x01,0x23,0x01,0x17,0x50,0x50,0xfe,0xed,0xfe,0xd9,0x50,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06,0x00,0x89,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, -0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0x2e,0xff,0xe7,0x02,0x2a,0x03,0x02,0x02,0x06,0x01,0xe1,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x19,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x06,0x01,0x00,0x07,0x02, -0x00,0x6a,0x05,0x03,0x02,0x01,0x01,0x28,0x4d,0x08,0x01,0x07,0x07,0x29,0x07,0x4e,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x13,0x11,0x11,0x13,0x14,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x15,0xff,0x3c,0x5a,0x33,0x54, -0x43,0x38,0x4e,0x38,0x43,0x54,0x32,0x5b,0x3c,0xaa,0x34,0x5d,0x3f,0x01,0x60,0xfe,0xa0,0x3d,0x45,0x01,0xe2,0xfe,0x1e,0x45,0x3d,0x01,0x60,0xfe,0xa0,0x3f,0x5d,0x34,0xaa,0x00,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x27,0x02,0xe4,0x00,0x27,0x00,0x5f,0x4b,0xb0,0x2a,0x50,0x58,0x40,0x20,0x06,0x01,0x04,0x05,0x00,0x00,0x04, -0x72,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x04,0x05,0x00,0x05,0x04,0x00,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x59,0x40,0x10, -0x00,0x00,0x00,0x27,0x00,0x27,0x15,0x25,0x11,0x11,0x27,0x28,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x33,0x35,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x07,0x15,0x33,0x15,0x23,0x35,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x15,0x32,0x91,0x18,0x36,0x25,0x77,0x65,0x65, -0x77,0x25,0x35,0x19,0x92,0xd3,0x28,0x32,0x47,0x3b,0x3b,0x47,0x32,0x28,0x50,0x05,0x03,0x23,0x45,0x35,0x01,0x18,0x62,0x75,0x75,0x62,0xfe,0xe8,0x35,0x44,0x23,0x03,0x06,0x50,0x6e,0x49,0x39,0x01,0x1d,0x3e,0x49,0x49,0x3e,0xfe,0xe3,0x39,0x49,0x6e,0xff,0xff,0x00,0x0a,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00, -0x00,0x07,0x06,0xb1,0xff,0x29,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x40,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xef, -0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0xff,0xb0,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x27,0x06,0xb1,0xfe,0xcf,0x00,0x00,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0xff,0x83,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xa2,0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00, -0xff,0xff,0xff,0xb0,0x00,0x00,0x02,0x27,0x02,0xe4,0x02,0x26,0x02,0x68,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xcf,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58, -0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x42,0x40,0x3f,0x07,0x01,0x07,0x01,0x01,0x4c,0x00,0x03,0x07,0x06,0x07,0x03,0x06,0x80,0x00,0x01,0x00,0x07,0x03,0x01,0x07,0x67,0x02,0x01,0x00,0x00,0x28,0x4d,0x09,0x08,0x02,0x06,0x06,0x29,0x4d,0x00,0x05,0x05,0x04,0x61, -0x00,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x12,0x21,0x23,0x12,0x11,0x11,0x11,0x0a,0x08,0x1e,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0x9b,0x38,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x25,0xaa, -0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xcd,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x5d,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x10,0x00,0x14,0x00,0x40,0x40,0x3d,0x0a,0x07,0x02,0x03,0x02,0x01, -0x4c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x05,0x01,0x02,0x02,0x38,0x4d,0x08,0x06,0x02,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x11,0x11,0x00,0x00,0x11,0x14,0x11,0x14,0x13,0x12,0x00,0x10,0x00,0x0f,0x12,0x12,0x12,0x21,0x09,0x09,0x1a,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x23,0x03, -0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x25,0x11,0x33,0x11,0x01,0x6c,0x1d,0x2d,0x38,0x2f,0xf9,0xf9,0x67,0xf0,0xcb,0x43,0x5f,0x5c,0xfe,0xd4,0x5a,0xb4,0x4f,0x37,0x2e,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xcb,0x47,0x58,0x5c,0xb4,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x13, -0x00,0x21,0x00,0x67,0xb6,0x10,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x19,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x31,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x2b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x31,0x4d,0x00,0x03, -0x03,0x29,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x59,0x40,0x17,0x15,0x14,0x01,0x00,0x1c,0x1a,0x14,0x21,0x15,0x21,0x0f,0x0e,0x0d,0x0c,0x08,0x06,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27, -0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x0a,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x44,0x40,0x96,0x40,0x44,0x00,0x00, -0x00,0x02,0x00,0x5c,0xff,0x4c,0x02,0x1a,0x02,0xe4,0x00,0x1b,0x00,0x31,0x00,0x48,0x40,0x45,0x0c,0x01,0x04,0x05,0x18,0x01,0x03,0x04,0x02,0x4c,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x69,0x00,0x06,0x06,0x00,0x61,0x00,0x00,0x00,0x2e,0x4d,0x08,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x07,0x01,0x02,0x02,0x2d,0x02,0x4e, -0x1d,0x1c,0x00,0x00,0x2c,0x2a,0x26,0x24,0x23,0x21,0x1c,0x31,0x1d,0x31,0x00,0x1b,0x00,0x1b,0x2e,0x24,0x09,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x5c,0x34,0x5e,0x3d,0x3d,0x5b,0x34,0x40,0x33,0x2d,0x43,0x26,0x35,0x60,0x3f,0x3c,0x4d,0x07,0x03,0x03,0x86,0x3a,0x48,0x48,0x3b,0x37,0x27,0x34,0x40,0x40,0x34,0x34,0x41,0x4b,0xb4,0x02,0xc5,0x3f,0x5f,0x35,0x2d,0x51,0x35,0x38,0x56,0x0d,0x03,0x06,0x36,0x53,0x33,0x41,0x63,0x37,0x3c, -0x34,0x7a,0xa0,0xfc,0x4f,0x3f,0x3f,0x4f,0x4c,0x3f,0x33,0x33,0x3f,0x48,0x3b,0xfe,0xc5,0x3f,0x4f,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x0e,0x00,0x23,0x40,0x20,0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x2b,0x4d,0x03,0x01,0x02,0x02,0x2d,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18, -0x12,0x04,0x08,0x18,0x2b,0x17,0x35,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0xff,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09,0x0b,0x79,0x5c,0xc3,0xb4,0xb4,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xda,0x00,0x16, -0x00,0x24,0x00,0x3f,0x40,0x3c,0x0c,0x01,0x01,0x03,0x01,0x4c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x10,0x0f,0x0e,0x0d,0x08,0x07,0x00,0x16,0x01,0x16,0x08, -0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x26,0x26,0x27,0x35,0x21,0x15,0x21,0x1e,0x02,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x61,0x77,0x31,0x58,0x3a,0x06,0x22,0x57,0x38,0x01,0x89,0xfe,0xdc,0x61,0x89,0x49,0x76,0x62,0x39,0x43,0x1b,0x23,0x3f, -0x37,0x46,0x45,0x0a,0x73,0x64,0x61,0x3f,0x5e,0x35,0x1c,0x42,0x2a,0x52,0x4b,0x43,0x78,0x86,0x59,0x82,0x7d,0x50,0x51,0x5e,0x3f,0x58,0x29,0x4b,0x3c,0x61,0x40,0x47,0x00,0x01,0x00,0x4b,0xff,0xf9,0x02,0x12,0x02,0x2d,0x00,0x2d,0x00,0x52,0x40,0x4f,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80, -0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x09,0x01,0x00,0x00,0x32,0x00,0x4e,0x02,0x00,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0a,0x08,0x16,0x2b, -0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36, -0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a,0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x47,0x02,0x30,0x02,0xda,0x00,0x1e,0x00,0x18,0x40,0x15, -0x12,0x01,0x02,0x00,0x49,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x28,0x00,0x4e,0x11,0x1e,0x02,0x08,0x18,0x2b,0x05,0x27,0x37,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x21,0x15,0x07,0x06,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x15,0x14,0x07,0x01,0xe4,0x46,0x2e,0x0a,0x22,0x84,0x65,0x62,0x62,0x6d, -0x86,0xfe,0xba,0x01,0xb3,0xba,0x5a,0x52,0x89,0x81,0x2f,0x32,0x1b,0xb9,0x2a,0x49,0x10,0x0e,0x1a,0x0b,0x26,0x1d,0x62,0x49,0x43,0x8d,0x5c,0x71,0x52,0x5a,0xa6,0x50,0x6f,0x2f,0x4d,0x28,0x25,0x0d,0x3c,0x26,0x27,0x29,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x02,0x06,0x01,0x1b,0x00,0x00,0x00,0x03,0x00,0x58, -0xff,0xf6,0x02,0x00,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00, -0x0d,0x01,0x0d,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0xdc,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x70,0x62,0x01,0x40, -0x62,0x70,0x6f,0x62,0xfe,0xbf,0x62,0x70,0x01,0x9d,0x75,0x40,0x42,0x42,0x40,0xfe,0x3e,0x42,0x40,0x7d,0x7d,0x40,0x42,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00, -0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x9a,0x49,0x57,0xc3,0x01,0x1d,0x26,0x20,0x8c,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00, -0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x09,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x04,0x08,0x18,0x2b,0x33,0x13,0x27,0x33,0x01,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc, -0x4a,0x60,0x01,0x12,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0xbd,0xfd,0x26,0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0x01,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x00,0x18,0x00,0x57,0xb5,0x0e,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x01, -0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x29,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x1b,0x40,0x1c,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x03,0x03,0x29,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x2f,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x18,0x00,0x18,0x24,0x11,0x13,0x23,0x11,0x07,0x08,0x1b, -0x2b,0x17,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x5d,0x5a,0x3c,0x37,0x38,0x3f,0x5a,0x58,0x03,0x03,0x36,0x3e,0x3e,0x30,0x03,0x03,0x02,0xb4,0x02,0xda,0xfe,0xa2,0x3e,0x46,0x46,0x3e,0x01,0x5e,0xfd,0xda,0x69,0x35,0x3e,0x3e,0x35,0x7d,0xa0,0x00, -0xff,0xff,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x47,0x02,0x1f,0x02,0xe4,0x00,0x2e,0x00,0x3a,0x40,0x37,0x1f,0x01,0x02,0x01,0x01,0x4c,0x14,0x13,0x02,0x02,0x49,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x80,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x05,0x01,0x00,0x00,0x03,0x61, -0x00,0x03,0x03,0x2e,0x00,0x4e,0x01,0x00,0x2c,0x2b,0x28,0x26,0x0a,0x08,0x07,0x05,0x00,0x2e,0x01,0x2e,0x06,0x08,0x16,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x07,0x07,0x27,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33, -0x32,0x16,0x16,0x17,0x23,0x26,0x26,0x01,0x45,0x37,0x44,0x44,0x37,0x92,0x8e,0x42,0x53,0x74,0x8f,0x4a,0x1e,0x2a,0x29,0x46,0x2b,0x0e,0x0a,0x1c,0x8b,0x5e,0x5b,0x4e,0x3e,0x34,0x41,0x37,0x62,0x40,0x40,0x5e,0x36,0x02,0x5a,0x04,0x40,0x02,0x92,0x42,0x32,0x31,0x39,0x50,0x46,0x38,0x4e,0x23,0x2c,0x17,0x65,0x44,0x42,0x27,0x46,0x18, -0x24,0x09,0x2c,0x1e,0x5e,0x45,0x42,0x60,0x0b,0x03,0x0d,0x51,0x39,0x35,0x53,0x2f,0x2d,0x4e,0x33,0x29,0x33,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xfb,0x02,0x2b,0x02,0x26,0x00,0x13,0x00,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x19,0x05,0x03,0x02, -0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x06,0x06,0x00,0x61,0x02,0x07,0x02,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x1d,0x05,0x03,0x02,0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x02,0x02,0x29,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x40,0x15,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b, -0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x02,0x18,0x4c,0x5b,0xad,0x57,0x54,0x02,0x11,0x63,0x29,0x23,0x18,0x05,0x60,0x4f,0x01,0x2c,0xfe,0x2a,0x01,0xd6,0x50,0x50,0xfe,0xce,0x29,0x2c,0x54, -0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x38,0x40,0x35,0x0e,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x31,0x4d,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x05,0x01,0x02,0x02,0x2d,0x02,0x4e,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11, -0x00,0x11,0x25,0x23,0x07,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f,0xb4,0x02,0x18,0x5f, -0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x47,0x02,0x0b,0x02,0x30,0x00,0x1f,0x00,0x1d,0x40,0x1a,0x1f,0x01,0x01,0x49,0x00,0x01,0x02,0x01,0x86,0x00,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x31,0x02,0x4e,0x22,0x12,0x2b,0x03, -0x08,0x19,0x2b,0x05,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x07,0x07,0x01,0x59,0x2b,0x0e,0x0a,0x1c,0x76,0x4a,0x52,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0x31,0x2b,0x7a,0x4a,0x1e,0x2a,0x29,0x92,0x46, -0x18,0x24,0x09,0x25,0x17,0x63,0x44,0x82,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x83,0x25,0x3a,0x0e,0x26,0x17,0x65,0x44,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x3a,0x02,0x26,0x00,0x14,0x00,0x22,0x00,0x30,0x40,0x2d,0x04,0x01,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x2b,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05, -0x01,0x00,0x00,0x2f,0x00,0x4e,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0c,0x0b,0x0a,0x08,0x00,0x14,0x01,0x14,0x07,0x08,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x23,0x15,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, -0x29,0x40,0x5f,0x35,0x35,0x5f,0x40,0x01,0x11,0xa9,0x32,0x3a,0x35,0x5f,0x40,0x39,0x41,0x41,0x39,0x39,0x41,0x41,0x0a,0x35,0x5e,0x3f,0x8c,0x3f,0x5f,0x34,0x52,0x03,0x04,0x43,0x36,0x8c,0x3f,0x5e,0x35,0x50,0x46,0x3c,0x8c,0x3c,0x46,0x46,0x3c,0x8c,0x3c,0x46,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0x26,0x00,0x0f, -0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x04,0x04,0x00,0x5f,0x05,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00,0x0e,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0f,0x01,0x0f,0x06,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x6d,0x44, -0x52,0xa8,0x01,0xd9,0xd7,0x21,0x1b,0x96,0x4f,0x42,0x01,0x43,0x52,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x02,0x06,0x01,0x51,0x00,0x00,0x00,0x02,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x2b,0x00,0x1e,0x00,0x27,0x00,0x3b,0x40,0x38,0x0b,0x01,0x01,0x06,0x01,0x4c,0x0a,0x01,0x02,0x4a, -0x00,0x06,0x06,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x05,0x01,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x00,0x29,0x4d,0x07,0x01,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x26,0x25,0x20,0x1f,0x00,0x1e,0x00,0x1e,0x17,0x21,0x1f,0x11,0x08,0x08,0x1a,0x2b,0x17,0x35,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x07,0x06, -0x16,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0xff,0x3b,0x5b,0x33,0x22,0x3e,0x28,0x16,0x1d,0x01,0x01,0x46,0x38,0x50,0x3c,0x5b,0x34,0x33,0x5a,0x3c,0x08,0x38,0x45,0x42,0x35,0x06,0xb4,0xb4,0x34,0x5e,0x3d,0x92,0x34,0x56,0x39,0x07,0x5f,0x05,0x3b,0x26,0x9c, -0x3a,0x49,0x01,0xdf,0x32,0x58,0x3b,0x92,0x3d,0x5e,0x34,0xb4,0xfb,0x49,0x3a,0x9c,0x36,0x44,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x17,0x00,0x2d,0x40,0x2a,0x05,0x03,0x02,0x01,0x01,0x2b,0x4d,0x04,0x01,0x02,0x02,0x00, -0x62,0x06,0x01,0x00,0x00,0x29,0x4d,0x08,0x01,0x07,0x07,0x2d,0x07,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x13,0x13,0x11,0x11,0x13,0x13,0x11,0x09,0x08,0x1d,0x2b,0x17,0x35,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x15,0xff,0x5c,0x6d,0x54,0x3e,0x3d,0x4e,0x3d,0x3e, -0x54,0x6d,0x5c,0xb4,0xb4,0x6c,0x5e,0x01,0x5c,0xfe,0xa4,0x3d,0x44,0x01,0xdd,0xfe,0x23,0x44,0x3d,0x01,0x5c,0xfe,0xa4,0x5e,0x6c,0xb4,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xf6,0x02,0x22,0x02,0x30,0x00,0x2d,0x00,0x34,0x40,0x31,0x2a,0x01,0x01,0x02,0x01,0x4c,0x20,0x1f,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01, -0x01,0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x00,0x2f,0x00,0x4e,0x01,0x00,0x28,0x26,0x19,0x17,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x06,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x27,0x35,0x16, -0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0xb5,0x3a,0x45,0x4c,0x41,0x19,0x1f,0x22,0x1c,0x1c,0x20,0x4e,0x20,0x1c,0x1d,0x21,0x21,0x1c,0x44,0x4e,0x44,0x3b,0x31,0x41,0x05,0x02,0x04,0x40,0x0a,0x5c,0x4f,0xbb,0x57,0x73,0x0a,0x5f,0x05,0x3c,0x2e,0xc7,0x29,0x30,0x30,0x29,0xbe,0xbe,0x29,0x30,0x30,0x29,0xc7,0x2b, -0x39,0x06,0x5f,0x0a,0x70,0x55,0xbb,0x4f,0x5c,0x3f,0x35,0x35,0x3f,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x11,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb0,0x19,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x09,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x53,0x00,0x00, -0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x84,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00, -0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x84,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0xf6,0x02,0x22, -0x03,0x11,0x02,0x26,0x02,0x8d,0x00,0x00,0x00,0x06,0x06,0xb0,0x14,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x03,0x00,0x17,0x00,0x25,0x00,0x84,0xb6,0x14,0x0e,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x07,0x07,0x03, -0x61,0x04,0x01,0x03,0x03,0x31,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x05,0x09,0x02,0x02,0x02,0x2f,0x02,0x4e,0x1b,0x40,0x2c,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x04,0x2b,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x31,0x4d,0x00,0x05,0x05,0x29,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x09,0x01,0x02, -0x02,0x2f,0x02,0x4e,0x59,0x40,0x1e,0x19,0x18,0x05,0x04,0x00,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x13,0x12,0x11,0x10,0x0c,0x0a,0x04,0x17,0x05,0x17,0x00,0x03,0x00,0x03,0x11,0x0b,0x08,0x17,0x2b,0x13,0x37,0x33,0x07,0x03,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32, -0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xea,0x6a,0x64,0x6f,0x3d,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x02,0x85,0x8c,0x8c,0xfd,0x71,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46, -0x44,0x40,0x96,0x40,0x44,0x00,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf9,0x02,0x12,0x03,0x11,0x00,0x2d,0x00,0x31,0x01,0x43,0x4b,0xb0,0x13,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07, -0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x14,0x50,0x58,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01, -0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04, -0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03, -0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x59,0x59,0x40,0x21,0x2e,0x2e,0x02,0x00,0x2e,0x31,0x2e, -0x31,0x30,0x2f,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0d,0x08,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14, -0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x03,0x37,0x33,0x07,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36,0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0xb8,0x6a,0x64,0x6f,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a, -0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x02,0x8c,0x8c,0x8c,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x06,0x06,0xb0,0x23,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x26,0x02,0x26,0x00,0x1a,0x00,0x39,0x40,0x36, -0x19,0x06,0x02,0x02,0x00,0x01,0x4c,0x00,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x01,0x01,0x00,0x00,0x2b,0x4d,0x07,0x06,0x02,0x05,0x05,0x29,0x4d,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x2d,0x03,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x12,0x21,0x23,0x11,0x15,0x11,0x08,0x08,0x1c,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33, -0x11,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x2a,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x2a,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfe,0x21,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0xff,0xff,0x00,0x30, -0xff,0x4c,0x02,0x28,0x02,0xda,0x02,0x06,0x02,0x25,0x00,0x00,0x00,0x02,0x00,0x0f,0xff,0xf6,0x02,0x49,0x02,0x26,0x00,0x18,0x00,0x2c,0x00,0x49,0x40,0x46,0x16,0x01,0x05,0x06,0x01,0x4c,0x00,0x06,0x01,0x05,0x01,0x06,0x05,0x80,0x08,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x07,0x0a,0x02,0x05,0x05,0x00,0x61,0x04, -0x09,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1a,0x19,0x01,0x00,0x29,0x26,0x23,0x21,0x1e,0x1d,0x19,0x2c,0x1a,0x2c,0x14,0x12,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x18,0x01,0x18,0x0b,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x23,0x35,0x21,0x15,0x23,0x16,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32, -0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x23,0x23,0x22,0x15,0x15,0x14,0xb5,0x3a,0x44,0x27,0x24,0x73,0x02,0x3a,0x73,0x24,0x27,0x43,0x3b,0x31,0x3e,0x08,0x07,0x3e,0x1e,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x3d,0xc6,0x3d,0x0a,0x56,0x4b,0xbc,0x2e,0x42,0x11,0x52,0x52,0x11,0x42,0x2e,0xbc,0x4b,0x56,0x39,0x32,0x32, -0x39,0x4c,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xea,0x54,0x54,0xea,0x54,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x1a,0xff,0x4c,0x02,0x21,0x02,0x2a,0x00,0x15,0x00,0x29,0x40,0x26,0x14,0x0e,0x01,0x03,0x03,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x61,0x02,0x01,0x01, -0x01,0x3b,0x4d,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x21,0x23,0x05,0x09,0x19,0x2b,0x05,0x35,0x03,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0x01,0x09,0x8b,0x11,0x35,0x1e,0x1e,0x3a,0x51,0x10,0x4e,0x0b,0x09,0x03,0x03,0x0b,0x0b,0x74,0x5c, -0xbe,0xb4,0xb4,0x01,0xa7,0x31,0x52,0x36,0x35,0xfe,0xfa,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0xfb,0x02,0x44,0x02,0xdf,0x00,0x1a,0x00,0x59,0xb6,0x0d,0x07,0x02,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00, -0x04,0x04,0x00,0x61,0x01,0x05,0x02,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x04,0x04,0x00,0x61,0x05,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40,0x11,0x01,0x00,0x19,0x17,0x14,0x12,0x11,0x0f,0x0c,0x0b,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05, -0x22,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x23,0x13,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x17,0x13,0x16,0x33,0x33,0x15,0x02,0x1c,0x3a,0x50,0x11,0x48,0x07,0x0b,0x03,0x03,0x0c,0x08,0x7d,0x61,0xca,0x23,0x12,0x30,0x3c,0x4b,0x66,0x24,0xa9,0x11,0x35,0x28,0x05,0x37,0x34,0xea,0x19,0x2b,0x10,0x10,0x2c,0x14,0xfe,0xac, -0x02,0x04,0x5b,0x2d,0x53,0x6a,0xfe,0x09,0x31,0x52,0x00,0x00,0x00,0x03,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x14,0x00,0x3a,0x40,0x37,0x11,0x01,0x06,0x05,0x01,0x4c,0x00,0x06,0x00,0x02,0x04,0x06,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x07,0x03,0x02, -0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x25,0x33,0x03,0x23,0x03,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x2e,0xaa,0xa8,0xaa,0x98,0x32,0xd4,0x32,0x01,0x5c,0x3e,0x98,0x3d,0x8a,0xc1,0x43,0x0c,0x0e,0x02, -0x02,0x10,0x0c,0x02,0xda,0xfd,0x26,0xd5,0xd5,0x28,0x02,0x8a,0xfe,0x4b,0x01,0x29,0x37,0x46,0x0d,0x0b,0x49,0x36,0x00,0x00,0x00,0x06,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x0e,0x00,0x12,0x00,0x1c,0x00,0x23,0x00,0x2b,0x00,0x32,0x00,0x4d,0x40,0x4a,0x23,0x1d,0x18,0x17,0x04,0x04,0x03,0x08,0x01,0x07,0x04,0x32,0x2c,0x28, -0x27,0x04,0x02,0x07,0x03,0x4c,0x00,0x04,0x00,0x07,0x02,0x04,0x07,0x67,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x2b,0x29,0x26,0x24,0x1c,0x1a,0x15,0x13,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x09,0x09,0x17,0x2b,0x33,0x11,0x33, -0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x4b,0xf2,0x5c,0x6c,0x3c,0x35,0x3e,0x45,0x74,0x63,0xcb,0x3c,0x3c,0x66,0x67,0x0d, -0x18,0x0a,0x0a,0x18,0x0d,0x67,0xbf,0x1f,0x22,0x22,0x1f,0xbf,0x6a,0x19,0x13,0x13,0x19,0x6a,0xbf,0x27,0x2c,0x2c,0x27,0x02,0xda,0x64,0x56,0x43,0x58,0x0e,0x0d,0x5c,0x47,0x5b,0x6c,0x28,0x02,0x8a,0xfe,0xd9,0x03,0x02,0x01,0x1d,0x02,0x03,0xfe,0xef,0x12,0x41,0x2b,0x2b,0x40,0x12,0xfd,0x8c,0x04,0x01,0x33,0x04,0xfe,0xd6,0x13,0x48, -0x32,0x32,0x47,0x13,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x19,0x00,0x21,0x00,0x4a,0x40,0x47,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00, -0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16, -0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79,0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x56,0x62,0x2a,0x79,0xe5,0x1c,0x20,0x20,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x61,0x53,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x09, -0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x36,0x40,0x33,0x1f,0x18,0x13,0x12,0x04,0x02,0x03,0x01,0x4c,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x04,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x10,0x0e,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x08,0x21,0x07,0x09,0x17,0x2b,0x33,0x11, -0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x4b,0xdb,0x6b,0x7d,0x7d,0x6b,0xb1,0x3c,0x3c,0x66,0x4b,0x19,0x2c,0x13,0x13,0x2c,0x19,0x4b,0xcd,0x1d,0x1f,0x1f,0x1d,0x02,0xda,0x77,0x65,0xfe,0xde,0x65,0x77,0x28,0x02,0x8a, -0xfd,0x76,0x09,0x07,0x02,0x6a,0x08,0x08,0xfd,0x9f,0x17,0x47,0x2d,0x01,0x22,0x2d,0x47,0x17,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x35,0x40,0x32,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x04,0x04,0x05,0x5f,0x08, -0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x55,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x01,0x2b,0xfe,0x6e,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0xbf, -0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x33,0x40,0x30,0x00,0x02,0x00,0x03,0x05,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x04,0x5f,0x07,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x11, -0x11,0x11,0x11,0x08,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x5a,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x67,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0x97,0x28,0x02,0x8a,0x00,0x03,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x1c,0x00,0x24,0x00,0x2a,0x00,0x4f,0x40,0x4c, -0x1e,0x10,0x02,0x02,0x03,0x25,0x1d,0x15,0x11,0x04,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x07,0x01,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x19,0x18,0x17,0x16,0x14,0x12,0x0f, -0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1c,0x01,0x1c,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x33,0x15,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x23,0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79, -0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x50,0xe0,0x7a,0xe4,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x0f,0x01,0x1d,0x28,0xa0,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x18,0x18,0x47,0x2e,0x78,0x00,0x00,0x00,0x03,0x00,0x4b, -0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x02,0x01,0x00,0x09,0x01,0x07,0x01,0x00,0x07,0x67,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x08,0x01,0x06,0x03,0x03,0x06,0x57,0x08,0x01,0x06,0x06,0x03,0x5f,0x0a,0x05,0x02,0x03,0x06,0x03,0x4f,0x00,0x00,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c, -0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x23,0x4b,0x90,0xa2,0x90,0x90,0xa2,0x66,0x3c,0x3c,0x01,0x32,0x3c,0x3c,0x02,0xda,0xfe,0xb5,0x01,0x4b,0xfd,0x26,0x01,0x67,0xfe,0x99,0x28,0x02,0x8a,0xfd,0x76,0x02, -0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x07,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x04,0x02,0x00,0x00,0x05,0x5f,0x08,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09, -0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x50,0x95,0x95,0x01,0xb8,0x93,0x93,0xf9,0x3c,0x3c,0x28,0x02,0x8a,0x28,0x28,0xfd,0x76,0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x1b,0xff,0xf6,0x02,0x49,0x02,0xda,0x00,0x12,0x00,0x18,0x00,0x3f,0x40,0x3c,0x13,0x09,0x02,0x02,0x01,0x01, -0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x06,0x05,0x02,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x18,0x17,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x12,0x01,0x12,0x08,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, -0x37,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x06,0x37,0x36,0x36,0x35,0x11,0x23,0xff,0x69,0x7b,0x2a,0x65,0x55,0x30,0x24,0xa1,0x01,0x97,0x66,0x7b,0x15,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x53,0x61,0x0f,0x02,0x85,0x28,0x28,0xfe,0x20,0x65,0x77,0x50,0x17,0x47,0x2e,0x01,0xe0,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x45, -0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x43,0x40,0x40,0x13,0x07,0x02,0x01,0x07,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d, -0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x3a,0xe3,0x33,0xa1,0xbb,0xa0,0x7e,0x4c,0x66,0x3c,0x3c,0x01,0x50,0x42,0x99,0x29,0x02,0xda,0xfe,0xad,0x01,0x53,0xf0,0xfe,0x16,0x01,0x5f,0xfe, -0xa1,0x28,0x02,0x8a,0xfd,0x76,0x01,0x98,0x3d,0x00,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x29,0x40,0x26,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x09,0x08,0x07,0x06,0x00,0x05,0x00,0x05,0x11, -0x11,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x64,0x90,0x01,0x32,0xfe,0x68,0x3c,0x3c,0x02,0xda,0xfd,0x4e,0x28,0x28,0x02,0x8a,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1c,0x00,0x43,0x40,0x40,0x0f,0x0c,0x02,0x05,0x00,0x16,0x03,0x02,0x03,0x05,0x02,0x4c, -0x00,0x03,0x05,0x06,0x05,0x03,0x06,0x80,0x07,0x01,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x00,0x14,0x00,0x14,0x16,0x11,0x12,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x17,0x37,0x33,0x11,0x23,0x11,0x34,0x36, -0x36,0x37,0x03,0x23,0x03,0x1e,0x02,0x15,0x11,0x13,0x37,0x27,0x23,0x01,0x33,0x11,0x23,0x32,0xad,0x50,0x4f,0xa8,0x90,0x02,0x02,0x01,0x88,0x32,0x8b,0x02,0x02,0x02,0x9f,0x20,0x57,0x40,0x01,0x3c,0x3c,0x3c,0x02,0xda,0xdf,0xdf,0xfd,0x26,0x01,0xb8,0x33,0x65,0x56,0x1b,0xfe,0x84,0x01,0x7c,0x1b,0x56,0x65,0x33,0xfe,0x48,0x01,0x68, -0x59,0xf1,0xfd,0x76,0x02,0x8a,0x00,0x00,0x00,0x02,0x00,0x5f,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x35,0x40,0x32,0x0b,0x03,0x02,0x04,0x05,0x01,0x4c,0x01,0x01,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x02,0x02,0x04,0x57,0x00,0x04,0x04,0x02,0x5f,0x06,0x03,0x02,0x02,0x04,0x02,0x4f,0x00,0x00,0x13,0x12, -0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x15,0x11,0x07,0x06,0x19,0x2b,0x33,0x11,0x33,0x13,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x03,0x16,0x16,0x15,0x11,0x25,0x33,0x01,0x23,0x5f,0x7c,0xf9,0x03,0x02,0x2a,0x7e,0xf7,0x02,0x02,0x01,0x10,0x43,0xfe,0xe4,0x42,0x02,0xda,0xfd,0xc7,0x20,0x50,0x1b,0x01,0xae,0xfd,0x26,0x02,0x3a,0x21,0x4f, -0x1c,0xfe,0x52,0x27,0x02,0x8c,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f, -0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12,0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x2c, -0x68,0x7a,0x7a,0x68,0x68,0x7a,0x7a,0x68,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x65,0x77,0x28,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x27,0x02,0x50,0x17,0x48,0x2e,0xfe,0xca,0x2e,0x48,0x17,0x17,0x48,0x2e,0x01,0x36,0x2e, -0x48,0x17,0x00,0x00,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x16,0x00,0x1b,0x00,0x41,0x40,0x3e,0x1b,0x17,0x13,0x12,0x04,0x05,0x04,0x01,0x4c,0x00,0x00,0x06,0x01,0x04,0x05,0x00,0x04,0x67,0x00,0x05,0x00,0x01,0x03,0x05,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x07, -0x01,0x02,0x03,0x02,0x4f,0x00,0x00,0x16,0x14,0x11,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x08,0x06,0x18,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x35,0x34,0x27,0x4b,0x01,0x09,0x60,0x72,0x73,0x5f,0x79,0x66,0x3c,0x3c, -0x66,0x79,0x1e,0x16,0x16,0x1e,0x79,0xd7,0x42,0x42,0x02,0xda,0x6e,0x5c,0x5c,0x6e,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x07,0x01,0x36,0x07,0xfe,0xd6,0x2c,0x5c,0x5e,0x2a,0x00,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x12,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x47,0x40,0x44,0x2c,0x25,0x1e,0x1d,0x1b,0x1a, -0x16,0x15,0x08,0x03,0x04,0x11,0x01,0x00,0x03,0x02,0x4c,0x05,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x03,0x00,0x51,0x14,0x13,0x00,0x00,0x19,0x17,0x13,0x1c,0x14,0x1c,0x00,0x12,0x00,0x12,0x25,0x22,0x07,0x06,0x18,0x2b,0x05, -0x27,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0xc1,0x6a,0x13,0x18,0x67,0x7b,0x7b,0x67,0x67,0x7b,0x43,0x3e,0x71,0xd2,0x2e,0x24,0x24,0x2e,0x2e, -0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0xb4,0xad,0x03,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x4b,0x6a,0x17,0xba,0xd2,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x28,0x02,0x4e,0x17,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x17,0x17,0x47,0x2e,0x01,0x36,0x2e,0x47,0x17,0x00,0x00,0x00,0x00,0x05,0x00,0x4b, -0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x11,0x00,0x19,0x00,0x20,0x00,0x26,0x00,0x4e,0x40,0x4b,0x1e,0x1d,0x16,0x15,0x04,0x06,0x05,0x08,0x01,0x02,0x06,0x02,0x4c,0x00,0x00,0x07,0x01,0x05,0x06,0x00,0x05,0x67,0x00,0x06,0x09,0x01,0x02,0x04,0x06,0x02,0x69,0x08,0x01,0x04,0x01,0x01,0x04,0x57,0x08,0x01,0x04,0x04,0x01,0x5f, -0x0a,0x03,0x02,0x01,0x04,0x01,0x4f,0x00,0x00,0x26,0x24,0x22,0x21,0x19,0x17,0x14,0x12,0x11,0x10,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0b,0x06,0x19,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x05,0x34,0x26,0x27,0x11,0x36, -0x36,0x03,0x33,0x03,0x06,0x23,0x23,0x4b,0x01,0x04,0x60,0x72,0x4e,0x44,0xab,0xa7,0x9e,0x1a,0x66,0x3c,0x3c,0x66,0x74,0x1e,0x1a,0x1a,0x1e,0x74,0x01,0x1c,0x25,0x21,0x20,0x26,0x46,0x43,0x8f,0x0b,0x0b,0x2d,0x02,0xda,0x6e,0x5c,0x4c,0x66,0x11,0xfe,0xb3,0x01,0x46,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x08,0x01,0x34,0x08,0xa2,0x2d, -0x45,0x15,0xfe,0xf2,0x15,0x46,0xfe,0x44,0x01,0x1f,0x01,0x00,0x00,0x02,0x00,0x41,0xff,0xf6,0x02,0x17,0x02,0xe4,0x00,0x27,0x00,0x41,0x00,0x3a,0x40,0x37,0x3f,0x01,0x03,0x04,0x32,0x01,0x01,0x00,0x02,0x4c,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e, -0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14, -0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x41,0x2a,0x61,0x52,0x3a,0x44,0x31,0x2b,0x6d,0x3e,0x49,0x81,0x6d,0x5c,0x6b,0x2a,0x57,0x4a,0x37,0x40,0x32,0x2b,0x6e,0x41,0x4c,0x86,0x73,0x66,0x77,0x35,0x3b,0x33,0x6d,0x36,0x3f,0x23,0x1f,0x31,0x39,0x3f, -0x35,0x6c,0x38,0x41,0x27,0x20,0x2f,0x37,0xc0,0x4a,0x57,0x4c,0x40,0x24,0x40,0x13,0x31,0x1c,0x67,0x3d,0x60,0x71,0x65,0x56,0x44,0x4f,0x3f,0x36,0x1f,0x39,0x13,0x31,0x1d,0x72,0x46,0x67,0x79,0x6d,0x01,0xb5,0x31,0x55,0x17,0x32,0x19,0x53,0x2f,0x2b,0x4a,0x14,0x12,0x5e,0x3e,0x3a,0x5f,0x17,0x30,0x19,0x4e,0x2a,0x29,0x3d,0x0b,0x0b, -0x54,0x00,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x2b,0x40,0x28,0x05,0x02,0x02,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x07,0x09,0x19,0x2b,0x33, -0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0xe5,0xb3,0x01,0xf4,0xb1,0x66,0x3c,0x3c,0x02,0xb2,0x28,0x28,0xfd,0x4e,0x28,0x02,0x8a,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xda,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d, -0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2c,0x67,0x7b,0x90,0x24,0x2e,0x56,0x62,0x2a,0x7a, -0xe4,0x3c,0x20,0x0a,0x77,0x65,0x02,0x08,0xfd,0x53,0x0f,0x61,0x53,0x02,0x08,0xfd,0xf8,0x65,0x77,0x4f,0x02,0x6d,0xfe,0x20,0x2e,0x47,0x00,0x00,0x00,0x02,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00, -0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdd,0xaf,0x98,0x7f,0x0d,0x0e,0x01,0x02,0x0f,0x0d,0x7f,0x2c,0xaf,0x7b,0x3d,0x9a,0x3e,0x02,0xda,0xfd, -0xe4,0x37,0x42,0x11,0x11,0x43,0x36,0x02,0x1c,0xfd,0x26,0x28,0x02,0x8a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x1f,0x00,0x23,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x29,0x1a,0x0f,0x06,0x05,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x07,0x01,0x05,0x05,0x03,0x60, -0x08,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x11,0x18,0x18,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x35,0x23,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23, -0x01,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x59,0x59,0x92,0x45,0x04,0x01,0x03,0x05,0x04,0x04,0x56,0x38,0x5f,0x05,0x04,0x03,0x04,0x02,0x03,0x40,0x2a,0x5d,0x8e,0x28,0x08,0x0d,0x02,0x02,0x0b,0x08,0x30,0x69,0x3c,0x51,0x3c,0x01,0x5f,0x3e,0x59,0x07,0x09,0x04,0x04,0x0b,0x05,0x08,0x02,0xda,0xfd,0xe4,0x1b,0x25,0x22,0x22, -0x25,0x1b,0x02,0x1c,0xfd,0xe4,0x1b,0x25,0x22,0x22,0x25,0x1b,0x02,0x1c,0xfd,0x26,0xd5,0x2e,0x65,0x21,0x28,0x66,0x26,0xd5,0x27,0x02,0x8c,0xfd,0x74,0x01,0xeb,0x27,0x46,0x1e,0x1c,0x48,0x27,0x3b,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07,0x04,0x01,0x04,0x04, -0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x13,0x13,0x33,0x03,0x13,0x23,0x03,0x03,0x25,0x33,0x01,0x23,0x22,0xcb,0xcf,0xa9, -0x85,0xa2,0x31,0xbd,0xd8,0xa9,0x8e,0xb1,0x01,0x5c,0x46,0xfe,0xb6,0x45,0x01,0x43,0x01,0x97,0xfe,0xfb,0x01,0x05,0xfe,0xcf,0xfe,0x57,0x01,0x17,0xfe,0xe9,0x28,0x02,0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x0e,0x00,0x14,0x00,0x33,0x40,0x30,0x14,0x11,0x0d,0x07,0x01,0x05,0x03,0x04,0x01,0x4c, -0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x12,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x18,0x12,0x06,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0x27,0x33,0x35,0x03,0x23,0x13,0xe6,0xd2,0xa2,0x92, -0x0a,0x0f,0x03,0x03,0x12,0x0a,0x92,0x2f,0xce,0x66,0x3c,0xb4,0x42,0xba,0x01,0x04,0x01,0xd6,0xfe,0xba,0x16,0x2a,0x0a,0x0b,0x2c,0x16,0x01,0x43,0xfe,0x45,0xfe,0xe1,0x28,0xf7,0x01,0x93,0xfe,0x60,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x3c,0x40,0x39,0x06,0x01,0x02,0x02,0x00,0x01, -0x4c,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x67,0x07,0x05,0x02,0x02,0x03,0x03,0x02,0x57,0x07,0x05,0x02,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x08,0x06,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x01, -0x23,0x01,0x46,0x01,0x2e,0xfe,0xdc,0x01,0xbd,0xfe,0xd2,0x01,0x33,0xfe,0xa0,0x01,0x30,0x41,0xfe,0xd0,0x2c,0x02,0x86,0x28,0x2c,0xfd,0x7a,0x28,0x28,0x02,0x8a,0xfd,0x76,0x00,0x00,0x00,0x00,0x04,0x00,0x36,0xff,0xf6,0x02,0x10,0x02,0x30,0x00,0x1a,0x00,0x23,0x00,0x2d,0x00,0x32,0x00,0xb2,0x4b,0xb0,0x18,0x50,0x58,0x40,0x11,0x20, -0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x00,0x06,0x03,0x4c,0x1b,0x40,0x11,0x20,0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x07,0x06,0x03,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x29,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04, -0x61,0x00,0x04,0x04,0x41,0x4d,0x0a,0x07,0x02,0x06,0x06,0x00,0x61,0x05,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x39,0x4d,0x0a,0x01,0x07,0x07, -0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x25,0x24,0x01,0x00,0x2a,0x28,0x24,0x2d,0x25,0x2d,0x1c,0x1b,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1a,0x01,0x1a,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15, -0x11,0x23,0x35,0x06,0x06,0x37,0x33,0x11,0x34,0x26,0x27,0x16,0x16,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x07,0x15,0x16,0x27,0x35,0x06,0x15,0x14,0xe7,0x52,0x5f,0x5e,0x52,0x9a,0x44,0x3b,0x39,0x49,0x03,0x2a,0x03,0x68,0x67,0x73,0x79,0x90,0x10,0x50,0x8a,0x3c,0x4a,0x44,0x26,0x2c,0xc0,0x45,0x51,0x9a,0x11,0x0f,0x11,0x3b,0x3c, -0x0a,0x5a,0x4d,0x4b,0x57,0x38,0x44,0x4a,0x45,0x3a,0x4a,0x60,0x5f,0x5a,0xfe,0x89,0x53,0x2b,0x32,0x32,0x01,0x4f,0x3e,0x4e,0x0a,0x10,0x51,0x35,0xfe,0xa7,0x4a,0x3f,0x70,0x03,0xf3,0x03,0x11,0xd8,0x20,0x4a,0x4e,0x00,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0xf6,0x02,0x17,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e, -0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03, -0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x01,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59, -0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x25,0x33,0x11,0x23,0x13,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06,0x15,0x15, -0x14,0x16,0x37,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x6e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0xfe,0xb9,0x3c,0x3c,0xef,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0x8c,0x3c,0x1f,0x1d,0x0a,0x30,0x2a,0x50,0x02,0xda,0xfe,0xfc,0x2a,0x30,0x6c,0x5c,0xab,0x5b,0x6c,0x32,0x02,0x8a,0xfd,0x6c,0x02,0x02,0x01,0xe2, -0x02,0x02,0x56,0x4a,0xab,0x49,0x56,0x16,0x29,0x60,0xab,0x2f,0x47,0x14,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x21,0x00,0x47,0x40,0x44,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03, -0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14, -0x06,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2f,0x69,0x7b,0x7b,0x69,0x66,0x78,0x2a,0x61,0x53,0x2f,0x25,0x25,0x2f,0x53,0x61,0x2a,0x78,0xe4,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x4e,0x5c,0x0e,0xfe,0x32,0x0e,0x5b,0x4e,0x60,0x71,0x4d,0x01,0x9f,0x16,0x43,0x2b,0x97,0x2b,0x42,0x00,0x00,0x04,0x00,0x41, -0xff,0xf6,0x02,0x0d,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05, -0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03, -0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x23,0x35,0x06,0x06, -0x37,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0xea,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x86,0x3c,0x3c,0xb3,0x3f,0x4a,0x4a,0x3f,0x09,0x12,0x08,0x08,0x12,0x44,0x1c,0x20,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x30,0x2a,0x01,0x04,0xfd, -0x26,0x50,0x2a,0x30,0x32,0x02,0x8a,0xfd,0x6c,0x56,0x49,0xab,0x4a,0x56,0x02,0x02,0xfe,0x1e,0x02,0x02,0x16,0x01,0xbe,0x14,0x47,0x2f,0xab,0x60,0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x15,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x4f,0x40,0x4c,0x24,0x22,0x1c,0x18,0x04,0x05,0x06,0x23,0x0d,0x02,0x03,0x04,0x02,0x4c, -0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x07,0x01,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1d,0x1b,0x19,0x17,0x16,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05, -0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x33,0x35,0x26,0x23,0x22,0x07,0x17,0x33,0x35,0x34,0x26,0x27,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2e,0x6b,0x7d,0x7d,0x6b,0x69,0x7b,0xfe,0xc4,0x26,0x32,0x53,0x64,0x03,0x2a,0x03,0x7b,0xbe,0xac,0x25,0x2f, -0x32,0x26,0xd6,0x3c,0x1f,0x1d,0xff,0x00,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x5a,0xd7,0x0f,0x56,0x49,0x5b,0x6c,0x01,0x36,0xce,0x0e,0x0f,0xcd,0x32,0x2b,0x43,0x16,0xfe,0x62,0x01,0x9d,0x16,0x42,0x2b,0x97,0x2b,0x42,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x14,0x00,0x1a,0x00,0x40, -0x40,0x3d,0x17,0x01,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x09,0x07,0x02,0x00,0x00,0x08,0x5f,0x0a,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x16,0x15,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x23,0x11,0x11,0x11,0x0b,0x09,0x1e,0x2b, -0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x25,0x33,0x11,0x06,0x06,0x15,0x41,0x8d,0x8d,0x8d,0x3d,0x3d,0xca,0xb4,0xb4,0xb4,0xb4,0xfe,0xe6,0x3c,0x1d,0x1f,0x28,0x01,0xd6,0x28,0x37,0x3b,0x42,0x28,0x8c,0x28,0xfe,0x2a,0x28,0x28,0x02,0x89,0x04,0x2f,0x21,0x00,0x00, -0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x25,0x00,0x2a,0x00,0x32,0x00,0x9f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x2c,0x2b,0x24,0x23,0x13,0x06,0x06,0x05,0x06,0x26,0x01,0x00,0x01,0x02,0x4c,0x1b,0x40,0x12,0x23,0x01,0x07,0x06,0x2c,0x2b,0x24,0x13,0x06,0x05,0x05,0x07,0x26,0x01,0x00,0x01,0x03,0x4c,0x59, -0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x06,0x06,0x02,0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x2b,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x07,0x07,0x03,0x5f,0x00,0x03,0x03,0x3b, -0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x17,0x1b,0x1a,0x00,0x00,0x2a,0x29,0x22,0x20,0x1a,0x25,0x1b,0x25,0x00,0x19,0x00,0x18,0x13,0x25,0x24,0x31,0x0a,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x32,0x37,0x35,0x06,0x06,0x23,0x22,0x26,0x35, -0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x14,0x06,0x23,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x17,0x36,0x35,0x11,0x23,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x6d,0xfd,0x05,0x0a,0x04,0x10,0x4a,0x37,0x4f,0x5c,0x5c,0x4f,0x37,0x4a,0x10,0x90,0x58,0x4b,0x74,0x40,0x47,0x47,0x40,0x15,0x10,0x10, -0xc6,0x3c,0x3c,0xff,0x00,0x1c,0x20,0x20,0xb4,0x28,0x01,0xd8,0x29,0x2e,0x6c,0x5b,0xab,0x5c,0x6c,0x2e,0x29,0x4d,0xfd,0xcb,0x4c,0x59,0xd2,0x56,0x49,0xab,0x4a,0x56,0x04,0xfe,0x1e,0x04,0x9c,0x1e,0x51,0x02,0x0d,0xfe,0x37,0x01,0xbc,0x14,0x46,0x2f,0xab,0x2f,0x45,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x12, -0x00,0x16,0x00,0x1b,0x00,0x40,0x40,0x3d,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13, -0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0xda,0xfe,0xfe,0x2a,0x2e,0x6c,0x5c,0xfe,0x98,0x02, -0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x02,0x8a,0xfd,0x76,0x01,0x40,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0x00,0x00,0x02,0x26,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x25,0x00,0x8b,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x0a, -0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d,0x01,0x08,0x08,0x39,0x08,0x4e,0x1b,0x40,0x2b,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d, -0x01,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x25,0x18,0x18,0x0d,0x0c,0x01,0x00,0x25,0x24,0x23,0x22,0x18,0x21,0x18,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0e,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, -0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x25,0x33,0x11,0x23,0x01,0x3b,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xe3,0xb3,0x9a,0x01,0x2a,0xa2,0xfe,0xf8,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24,0x2a,0x23,0x18,0x13,0x14,0x17,0x17, -0x14,0x13,0x18,0xfd,0x60,0x28,0x01,0xd6,0x28,0xfe,0x02,0x28,0x28,0x01,0xd6,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x01,0xbd,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x24,0x00,0x29,0x00,0x8b,0xb6,0x25,0x1c,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2b,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03, -0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04, -0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x29,0x28,0x18,0x24,0x18,0x23,0x20,0x1f,0x1e,0x1d,0x1b,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, -0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x35,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x14,0x06,0x23,0x37,0x36,0x35,0x11,0x23,0x01,0x63,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xfe,0xff,0x9f,0x1c,0x16,0xbd,0x01,0x4d,0x66,0x5c,0x5c,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24, -0x2a,0x23,0x18,0x13,0x14,0x17,0x17,0x14,0x13,0x18,0xfc,0xac,0x28,0x06,0x02,0x84,0x28,0xfd,0xe4,0x59,0x65,0x40,0x26,0x58,0x01,0xf4,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x32,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x47,0x40,0x44,0x13,0x07,0x02,0x01,0x02,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06, -0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x13,0x23,0x03, -0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x37,0xd6,0x3e,0x99,0xa5,0xa8,0x67,0x48,0x66,0x3c,0x3c,0x01,0x36,0x44,0x82,0x2a,0x02,0xda,0xfe,0x51,0xfb,0xaf,0xfe,0x89,0x01,0x03,0xfe,0xfd,0x28,0x02,0x8a,0xfd,0x76,0x01,0x2a,0x2f,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0f,0x00,0x31, -0x40,0x2e,0x0b,0x01,0x03,0x01,0x01,0x4c,0x04,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x05,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0d,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0a,0x01,0x0a,0x06,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x27,0x11,0x23,0x11, -0x14,0x01,0x6a,0x43,0x49,0xac,0x01,0x3d,0xb7,0xe1,0x3c,0x47,0x40,0x02,0x26,0x2d,0xfd,0x53,0x2d,0x30,0x02,0x7d,0xfd,0xda,0x48,0x00,0x00,0x00,0x00,0x04,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x30,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2c,0x00,0xc1,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x0e,0x28,0x22,0x09,0x03,0x04,0x07,0x05,0x01,0x4c, -0x12,0x01,0x05,0x01,0x4b,0x1b,0x40,0x11,0x28,0x22,0x02,0x0a,0x05,0x09,0x03,0x02,0x07,0x0a,0x02,0x4c,0x12,0x01,0x05,0x01,0x4b,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x0a,0x01,0x05,0x05,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b, -0xb0,0x1a,0x50,0x58,0x40,0x27,0x0a,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x25,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x00,0x0a,0x0a,0x00,0x5f, -0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x59,0x40,0x17,0x00,0x00,0x2c,0x2b,0x2a,0x29,0x24,0x23,0x1e,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x15,0x13,0x24,0x23,0x11,0x0c,0x09,0x1c,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16, -0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x25,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x23,0x0f,0x8c,0x07,0x34,0x29,0x26,0x38,0x0a,0x06,0x39,0x2d,0x36,0x40,0x8e,0x24,0x2a,0x82,0x24,0x2a,0x01,0x46,0x3c,0x20,0x1c,0xd0,0x32,0x1b,0x17,0xda,0x3c,0x3c,0x02,0x26,0x42, -0x23,0x29,0x2a,0x24,0x24,0x2a,0x46,0x3b,0xfe,0x51,0x02,0x07,0x04,0x32,0x28,0xfe,0x57,0x02,0x08,0x02,0x34,0x29,0xfe,0x57,0x28,0x01,0x81,0x23,0x31,0x07,0xfe,0x24,0x01,0x81,0x21,0x2e,0x0a,0xfe,0x26,0x01,0xd6,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0x30,0x00,0x12,0x00,0x16,0x00,0x1b,0x00,0x7a,0x4b,0xb0, -0x18,0x50,0x58,0xb7,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x1b,0x40,0x0b,0x0c,0x01,0x06,0x03,0x1b,0x03,0x02,0x05,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x06,0x01,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00, -0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x13,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13,0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32, -0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0x26,0x4b,0x29,0x2c,0x6c,0x5c,0xfe,0x98,0x02,0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x40,0x60,0x29, -0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12, -0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x2c,0x6a,0x7c,0x7c,0x6a,0x6a,0x7c,0x7c,0x6a, -0x31,0x25,0x25,0x31,0x30,0x26,0x26,0x50,0x1c,0x20,0x20,0x01,0x1c,0x1d,0x1f,0x1f,0x1d,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x97,0x60,0x71,0x28,0x0f,0x01,0xcc,0x0f,0x0f,0xfe,0x34,0x0f,0x26,0x01,0x9e,0x16,0x43,0x2b,0x97,0x2b,0x42,0x16,0x16,0x42,0x2b,0x97,0x2b,0x43,0x16,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x02,0x17, -0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x2a,0x24,0x16,0x15,0x10,0x03,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x16,0x01,0x07,0x05,0x2a,0x24,0x15,0x10,0x03,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x00,0x61,0x01,0x01,0x00, -0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03, -0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x11,0x0a,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x37,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06, -0x15,0x15,0x14,0x16,0x07,0x33,0x11,0x23,0x01,0x36,0x36,0x35,0x35,0x34,0x27,0x4b,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x89,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0xb0,0x3c,0x3c,0x01,0x3c,0x1d,0x1f,0x3c,0xb4,0x02,0xda,0x50,0x2a,0x30,0x6b,0x5c,0xab,0x5c,0x6c,0x30,0x2a,0xfe,0xfc,0xd2,0x02,0x02,0x01, -0xe2,0x02,0x02,0x55,0x4a,0xab,0x49,0x57,0xaa,0x02,0x8a,0xfe,0x36,0x14,0x47,0x2f,0xab,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x25,0x24,0x1d,0x1c,0x0e,0x01,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x1c,0x01,0x07, -0x05,0x25,0x24,0x1d,0x0e,0x01,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01, -0x01,0x41,0x4d,0x00,0x07,0x07,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x13,0x25,0x23,0x0a,0x09,0x19,0x2b, -0x05,0x11,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x25,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x17,0x33,0x11,0x23,0x01,0x11,0x06,0x15,0x15,0x14,0x16,0x01,0x7d,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0xfe,0xe7,0x3f,0x4a,0x4a,0x3f,0x09,0x12, -0x08,0x08,0x12,0xbc,0x3c,0x3c,0xff,0x00,0x3c,0x20,0xb4,0x01,0x04,0x2a,0x30,0x6c,0x5c,0xab,0x5c,0x6b,0x30,0x2a,0x50,0xfd,0x26,0xd2,0x57,0x49,0xab,0x4a,0x55,0x02,0x02,0xfe,0x1e,0x02,0x02,0xaa,0x02,0x8a,0xfe,0x36,0x01,0xbe,0x29,0x60,0xab,0x2f,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0x30,0x00,0x19, -0x00,0x1d,0x00,0x77,0xb5,0x07,0x01,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80,0x09,0x05,0x02,0x01,0x01,0x02,0x61,0x03,0x01,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x2b,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80, -0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x09,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x59,0x40,0x14,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x00,0x19,0x00,0x19,0x13,0x23,0x13,0x23,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23, -0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x2d,0x5f,0x5f,0xef,0x0f,0x40,0x2f,0x4e,0x48,0x2a,0x35,0x3f,0x3b,0x3b,0x78,0xde,0x3c,0x3c,0x28,0x01,0xd6,0x28,0x48,0x27,0x2b,0x6c,0x5c,0x23,0x23,0x4a,0x56,0x56,0x4a,0xfe,0xc0,0x28,0x28,0x01,0xd6, -0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x27,0x00,0x41,0x00,0x3b,0x40,0x38,0x3f,0x01,0x04,0x02,0x01,0x4c,0x32,0x01,0x01,0x01,0x4b,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05, -0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36, -0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x4b,0x2a,0x05,0x5b,0x48,0x34,0x3c,0x22,0x1d,0x8f,0x33,0x3b,0x77,0x65,0x56,0x6f,0x0a,0x2a,0x09,0x4f,0x39,0x34,0x3c,0x1e,0x19,0x86,0x3b,0x44,0x7c,0x6b,0x60,0x76,0x2b,0x2b,0x25,0x90,0x2b,0x31,0x1d,0x17,0x2c,0x34,0x35,0x2d,0x85,0x27,0x2e,0x21,0x1a,0x2e,0x39, -0x8f,0x34,0x3c,0x2d,0x26,0x1c,0x2a,0x09,0x2b,0x0f,0x52,0x37,0x50,0x5c,0x4b,0x41,0x2f,0x35,0x2d,0x26,0x18,0x25,0x08,0x27,0x11,0x5c,0x3d,0x4e,0x5b,0x53,0x01,0x42,0x2b,0x3f,0x0b,0x2b,0x0d,0x3c,0x26,0x1f,0x32,0x0c,0x09,0x42,0x2f,0x30,0x49,0x0d,0x27,0x0b,0x37,0x24,0x1d,0x34,0x0d,0x0a,0x44,0x00,0x00,0x00,0x00,0x03,0x00,0x37, -0x00,0x00,0x02,0x12,0x02,0xc1,0x00,0x10,0x00,0x14,0x00,0x1a,0x00,0x46,0x40,0x43,0x15,0x01,0x06,0x01,0x01,0x4c,0x00,0x03,0x00,0x08,0x02,0x03,0x08,0x67,0x09,0x05,0x02,0x01,0x01,0x02,0x5f,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x5f,0x0a,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x13,0x12,0x11, -0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x10,0x01,0x10,0x0b,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x33,0x35,0x23,0x13,0x11,0x23,0x11,0x14,0x16,0x01,0x3b,0x3f,0x3b,0x8a,0x8a,0x90,0xc1,0xc1,0xbc,0xfe,0xde,0x3c,0x3c,0x3c,0x3c,0x1f, -0x40,0x3d,0x01,0x81,0x28,0x9b,0x9b,0x28,0xfe,0x2a,0x28,0x02,0x26,0x73,0xfd,0x91,0x01,0xd4,0xfe,0x7f,0x22,0x2c,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0x26,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00, -0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2d,0x66,0x77,0x90,0x24,0x29,0x52,0x5f,0x2a,0x76,0xdc,0x3c,0x20,0x0a, -0x77,0x65,0x01,0x54,0xfe,0x06,0x0e,0x61,0x53,0x01,0x54,0xfe,0xac,0x65,0x77,0x4e,0x01,0xba,0xfe,0xd4,0x2e,0x49,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x02,0x5f, -0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdc,0xaf,0x99,0x76,0x11,0x14,0x02,0x02,0x15,0x10,0x75,0x2c,0xae,0x81,0x3e,0x94,0x3f,0x02,0x26,0xfe,0x8e,0x35,0x48,0x0b, -0x0b,0x49,0x34,0x01,0x72,0xfd,0xda,0x28,0x01,0xd6,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x26,0x00,0x21,0x00,0x25,0x00,0x30,0x00,0x39,0x40,0x36,0x30,0x2b,0x10,0x06,0x04,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x03,0x60,0x08,0x04,0x02,0x03,0x03, -0x39,0x03,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x00,0x21,0x00,0x21,0x11,0x1a,0x19,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x3e,0x02,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x26,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23,0x01,0x33,0x03,0x26, -0x26,0x27,0x23,0x06,0x06,0x07,0x07,0x62,0x62,0x92,0x49,0x04,0x05,0x02,0x01,0x03,0x06,0x04,0x4c,0x34,0x5f,0x05,0x06,0x02,0x03,0x01,0x02,0x01,0x03,0x44,0x2e,0x61,0x98,0x24,0x04,0x0b,0x02,0x01,0x09,0x05,0x20,0x75,0x3d,0x55,0x3d,0x01,0x50,0x3d,0x50,0x06,0x0b,0x02,0x02,0x02,0x0c,0x05,0x0b,0x02,0x26,0xfe,0x71,0x16,0x21,0x15, -0x0e,0x10,0x17,0x16,0x01,0x90,0xfe,0x70,0x16,0x20,0x15,0x14,0x10,0x09,0x0e,0x11,0x01,0x8f,0xfd,0xda,0xa2,0x12,0x41,0x1e,0x16,0x43,0x18,0xa2,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x5f,0x1b,0x43,0x16,0x16,0x43,0x1b,0x3a,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07, -0x04,0x01,0x04,0x04,0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x37,0x03,0x33,0x17,0x37,0x33,0x07,0x13,0x23,0x27,0x07,0x25,0x33,0x01,0x23, -0x3a,0xb2,0xce,0xb2,0x7e,0x8b,0x35,0xa9,0xd5,0xb2,0x84,0x94,0x01,0x30,0x4a,0xfe,0xcc,0x48,0xed,0x01,0x39,0xbf,0xbf,0xe3,0xfe,0xbd,0xc8,0xc8,0x28,0x01,0xd6,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x2b,0x02,0x26,0x00,0x0f,0x00,0x19,0x00,0x31,0x40,0x2e,0x13,0x10,0x09,0x06,0x04,0x00,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f, -0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x61,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x15,0x14,0x00,0x0f,0x00,0x0e,0x12,0x14,0x21,0x06,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x13,0x33,0x01,0x06,0x06,0x23,0x37,0x36,0x36,0x37,0x03,0x23,0x13,0x1e,0x02,0x4f,0x2b,0x2f,0x3d,0x13,0x1e, -0xea,0x9f,0x99,0x98,0x2e,0xfe,0xf1,0x18,0x54,0x36,0xb4,0x05,0x10,0x0a,0x9e,0x42,0x8e,0x08,0x14,0x13,0xb4,0x28,0x31,0x2b,0x44,0x02,0x12,0xfe,0xa5,0x01,0x5b,0xfd,0x9b,0x36,0x3f,0xf9,0x0c,0x2c,0x18,0x01,0x69,0xfe,0xb7,0x12,0x2c,0x27,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x32, -0x40,0x2f,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x05,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x07,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x33,0x01,0x23, -0x46,0x01,0x1e,0xfe,0xeb,0x01,0xb6,0xfe,0xe4,0x01,0x29,0xfe,0x62,0x47,0x01,0x1d,0x46,0x29,0x01,0xd5,0x28,0x2a,0xfe,0x2c,0x28,0x28,0x01,0xd6,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x1c,0x00,0x28,0x00,0x3e,0x40,0x3b,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01, -0x01,0x3e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1e,0x1d,0x10,0x0f,0x01,0x00,0x24,0x22,0x1d,0x28,0x1e,0x28,0x17,0x15,0x0f,0x1c,0x10,0x1c,0x08,0x06,0x00,0x0e,0x01,0x0e,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x11, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0x43,0x3c,0x49,0x49,0x3c,0x3c,0x49,0x49,0x3c,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x4d,0x4d,0x3d, -0x01,0x40,0x3d,0x4d,0x4d,0x3d,0xfe,0xc0,0x3d,0x4d,0xf3,0x1e,0x1c,0x1b,0x1d,0x1d,0x1b,0x1c,0x1e,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x38,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00, -0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x5a,0xc6,0xc6,0xa5,0x7b,0xa2,0x52,0x02,0x3a,0x94,0x67,0x7b,0xfd,0x78,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x0f,0x02,0xe4,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01, -0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x33,0x35,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, -0x07,0x21,0x15,0x56,0xf3,0x35,0x2c,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0x01,0x4c,0x53,0x01,0x04,0x38,0x58,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x72,0x62,0x34,0x74,0x48,0xce,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x46,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03, -0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04,0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x05,0x22,0x26, -0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x21,0x35,0x21,0x15,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x01,0x21,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0xfe,0xd4,0x01,0x92,0xb0,0x5a,0x68,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f, -0x5b,0x32,0x61,0x71,0x00,0x01,0x00,0x46,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x0b,0x00,0x30,0x40,0x2d,0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x38,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x09, -0x1a,0x2b,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x15,0x33,0x35,0x33,0x11,0x01,0x90,0xfe,0xb6,0x01,0x0a,0x66,0xfe,0xea,0xf0,0x5a,0xa0,0x8d,0x01,0xad,0xfe,0x3f,0x27,0xb2,0xfe,0x5c,0x00,0x00,0x01,0x00,0x4b,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03, -0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23, -0x11,0x21,0x15,0x21,0x17,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x44,0x3a,0xc7,0x01,0x85,0xfe,0xcf,0x02,0x76,0x65,0x6e,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x2d,0x3c,0x46,0x01,0x63,0x52,0xbf,0x6f,0x65,0x2d,0x61,0x71,0x00,0x02,0x00,0x40,0xff,0xf6,0x02,0x18,0x02,0xda,0x00,0x15, -0x00,0x21,0x00,0x38,0x40,0x35,0x0a,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x0f,0x0d,0x09,0x08,0x00,0x15,0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x26, -0x35,0x34,0x36,0x37,0x13,0x33,0x03,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2d,0x46,0x6b,0x3c,0x24,0x1f,0xa9,0x64,0xb4,0x03,0x0d,0x34,0x1f,0x41,0x61,0x37,0x3c,0x69,0x47,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x0a,0x3b,0x69,0x45,0x30,0x65,0x37, -0x01,0x2f,0xfe,0xc7,0x02,0x11,0x12,0x39,0x64,0x42,0x46,0x6b,0x3c,0x50,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x08,0x00,0x52,0xb5,0x07,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f, -0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x01,0x21,0x15,0x23,0x35,0x21,0x15, -0x01,0xbe,0x01,0x04,0xfe,0xea,0x5a,0x01,0xd0,0xfe,0xfe,0x02,0x88,0x76,0xc8,0x54,0xfd,0x7a,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x1d,0x00,0x29,0x00,0x35,0x00,0x45,0x40,0x42,0x16,0x07,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, -0x3e,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x1f,0x1e,0x01,0x00,0x31,0x2f,0x2a,0x35,0x2b,0x35,0x25,0x23,0x1e,0x29,0x1f,0x29,0x10,0x0e,0x00,0x1d,0x01,0x1d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14, -0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x45,0x6a,0x3b,0x4f,0x42,0x39,0x44,0x36,0x61,0x3f,0x40,0x60,0x36,0x44,0x39,0x42,0x4f,0x3b,0x69,0x46,0x38,0x44,0x44,0x38,0x37,0x45,0x45,0x37,0x40, -0x50,0x50,0x40,0x40,0x50,0x50,0x0a,0x36,0x61,0x3f,0x45,0x64,0x0b,0x03,0x0d,0x59,0x3a,0x39,0x57,0x31,0x31,0x57,0x39,0x3a,0x59,0x0d,0x03,0x0b,0x64,0x45,0x3f,0x61,0x36,0x01,0xb0,0x42,0x35,0x35,0x42,0x42,0x35,0x35,0x42,0xfe,0xa1,0x4b,0x3c,0x3d,0x4b,0x4b,0x3d,0x3c,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x02,0x18, -0x02,0xe4,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x17,0x16,0x00,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x00,0x15,0x00,0x15,0x26,0x24,0x07,0x09,0x18,0x2b,0x33,0x13, -0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x03,0x11,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xc3,0xb4,0x03,0x0a,0x36,0x20,0x3f,0x5f,0x36,0x3c,0x6a,0x45,0x47,0x6a,0x3c,0x24,0x1f,0xa9,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x01,0x39,0x02,0x10,0x13,0x39,0x64, -0x42,0x47,0x6a,0x3c,0x3b,0x69,0x45,0x30,0x65,0x37,0xfe,0xd1,0x01,0x5e,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x36,0x40,0x33,0x1c,0x1b,0x11,0x10,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05, -0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x17,0x1e,0x18,0x1e,0x15,0x13,0x08,0x06,0x00,0x0e,0x01,0x0e,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x03,0x11,0x01,0x26,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x01,0x16,0x16,0x01, -0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0xc8,0x01,0x05,0x0b,0x44,0x31,0x3c,0x49,0x85,0x3c,0x49,0xfe,0xfb,0x0b,0x44,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x02,0x17,0xfe,0xec,0x01,0x3c,0x2d,0x35,0x4d,0xfd,0xf9,0x4d,0x3d,0x01,0x14,0xfe,0xc4,0x2d,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x58, -0x00,0x00,0x02,0x13,0x02,0xe4,0x00,0x22,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x22,0x00,0x22,0x1b,0x23,0x12,0x2b,0x06,0x09,0x1a,0x2b,0x33,0x35,0x34,0x36,0x36,0x37,0x37,0x36, -0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x15,0x21,0x15,0x59,0x2b,0x4a,0x2d,0x64,0x28,0x2f,0x48,0x3a,0x3a,0x48,0x5a,0x02,0x39,0x62,0x3f,0x42,0x64,0x38,0x4a,0x40,0x66,0x2b,0x44,0x01,0x60,0x80,0x34,0x57,0x42,0x13,0x2b,0x11,0x48,0x29,0x3c,0x4b,0x4b, -0x3c,0x40,0x60,0x37,0x37,0x60,0x40,0x44,0x72,0x1c,0x2c,0x13,0x4c,0x35,0x29,0x52,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x11,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, -0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x36,0x33,0x32, -0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x34,0x67,0x78,0x76,0x65,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0b,0x4f,0x3d,0x5e,0x6d,0x77,0x67,0x3d,0x47,0x47,0x3d,0x3d,0x47,0x47,0x0a,0x74,0x63,0x01,0x40,0x63,0x74,0x59,0x47,0x22,0x2e,0x49,0x3e,0xa5,0x30,0x37, -0x74,0x63,0x2b,0x63,0x74,0x50,0x49,0x3e,0x2b,0x3e,0x49,0x49,0x3e,0x2b,0x3e,0x49,0x00,0x02,0x00,0x49,0xff,0xf6,0x02,0x03,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x06,0x06,0x04,0x61,0x00,0x04, -0x04,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x28,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0a,0x4e,0x3e,0x5e,0x6c,0x76,0x66,0x67,0x77,0x76,0x67,0x3d,0x46,0x46,0x3d,0x3d,0x46,0x46,0x0a,0x5b,0x4a,0x25,0x30,0x49,0x3e,0xb8,0x32,0x39,0x74,0x63,0x1c,0x63,0x74,0x74, -0x63,0xfe,0xc0,0x63,0x74,0x01,0x74,0x49,0x3e,0x1c,0x3e,0x49,0x49,0x3e,0x1c,0x3e,0x49,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe5,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x36,0x40,0x33,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x03,0x03,0x00, -0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26, -0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x46,0x6a,0x3a,0x4f,0x42,0x41,0x40,0x39,0x62,0x3f,0x3f,0x63,0x38,0x40,0x41,0x42,0x4f,0x3a,0x69,0x64,0x1d,0x19,0x2f,0x3a,0x48,0x3a,0x3a,0x48,0x38,0x4a,0x42,0x50,0x36,0x31,0x2b,0x2e,0x30,0x34,0x50,0x0a,0x31,0x57, -0x39,0x3e,0x6b,0x1e,0x20,0x59,0x33,0x37,0x54,0x30,0x30,0x54,0x37,0x32,0x59,0x21,0x1e,0x6b,0x3e,0x39,0x57,0x31,0x01,0xb5,0x0b,0x0a,0x12,0x43,0x28,0x31,0x3d,0x3e,0x30,0x29,0x42,0xfe,0x8a,0x45,0x38,0x2c,0x47,0x13,0x11,0x12,0x13,0x47,0x2b,0x38,0x45,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x20, -0x00,0x4d,0x40,0x4a,0x17,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1b,0x19,0x16,0x15,0x14,0x13,0x12, -0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x20,0x01,0x20,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x21,0x17,0x36,0x36,0x33,0x36,0x16,0x15,0x15,0x14,0x06,0x01,0x2a,0x5b,0x73,0x07,0x5a,0x05,0x43,0x34,0x3a,0x44,0x44,0x3a,0x27,0x39,0x0d, -0x5a,0x01,0x85,0xfe,0xcf,0x02,0x0d,0x48,0x35,0x5b,0x64,0x75,0x0a,0x5c,0x4e,0x29,0x31,0x46,0x3c,0x47,0x3c,0x46,0x28,0x1e,0x01,0x8f,0x52,0xf5,0x24,0x29,0x01,0x6f,0x63,0x47,0x61,0x71,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0x7b,0x01,0xe0,0x01,0x3b,0x03,0x07,0x03,0x03,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0x7b,0x01,0xc9,0x01,0x40,0x03,0x07,0x03,0x04,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x76,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x05,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0xff,0x7b,0x01,0xbd,0x01,0x3b,0x03,0x07,0x03,0x06,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0x76,0x01,0xcf,0x01,0x3b,0x03,0x07,0x03,0x07,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0x76,0x01,0xd2,0x01,0x3b,0x03,0x07,0x03,0x08,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0xff,0x7b,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x09,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x0a,0x00,0x00,0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x7b,0x01,0xcd,0x01,0x40,0x03,0x07,0x03,0x0b,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xfb,0x01,0xcf,0x01,0xc5,0x03,0x07,0x03,0x02,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0x00,0x00,0x01,0xe0,0x01,0xc0,0x03,0x07,0x03,0x03,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x01,0xc9,0x01,0xc5,0x03,0x07,0x03,0x04,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0xfb,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x05,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x01,0xbd,0x01,0xc0,0x03,0x07,0x03,0x06,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xfb,0x01,0xcf,0x01,0xc0,0x03,0x07,0x03,0x07,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0xfb,0x01,0xd2,0x01,0xc0,0x03,0x07,0x03,0x08,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0x00,0x00,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x09,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x0a,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35, -0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0x00,0x00,0x01,0xcd,0x01,0xc5,0x03,0x07,0x03,0x0b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x15,0x01,0xcf,0x02,0xdf,0x03,0x06,0x03,0x02,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00, -0xff,0xff,0x00,0x96,0x01,0x1a,0x01,0xe0,0x02,0xda,0x03,0x06,0x03,0x03,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x93,0x01,0x1a,0x01,0xc9,0x02,0xdf,0x03,0x06,0x03,0x04,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x15,0x01,0xce, -0x02,0xda,0x03,0x06,0x03,0x05,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0x1a,0x01,0xbd,0x02,0xda,0x03,0x06,0x03,0x06,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8d,0x01,0x15,0x01,0xcf,0x02,0xda,0x03,0x06,0x03,0x07,0x00,0x9c, -0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x86,0x01,0x15,0x01,0xd2,0x02,0xda,0x03,0x06,0x03,0x08,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x94,0x01,0x1a,0x01,0xce,0x02,0xda,0x03,0x06,0x03,0x09,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c, -0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x87,0x01,0x15,0x01,0xd1,0x02,0xdf,0x03,0x06,0x03,0x0a,0x00,0x9c,0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x1a,0x01,0xcd,0x02,0xdf,0x03,0x06,0x03,0x0b,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x02,0x00,0x89, -0x01,0x79,0x01,0xcf,0x03,0x43,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x53,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36, -0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x49,0x5a,0x5a,0x49,0x49,0x5a,0x5a,0x49,0x29,0x33,0x33,0x29,0x29,0x33,0x33,0x01,0x79,0x5c,0x49,0x81,0x49,0x5b,0x5b,0x49,0x81,0x49,0x5c,0x40,0x38,0x2d,0x81,0x2c,0x38,0x38,0x2c,0x81,0x2d,0x38,0x00,0x00,0x00, -0x00,0x01,0x00,0x96,0x01,0x7e,0x01,0xe0,0x03,0x3e,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x50,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x0b,0x19,0x2b,0x13,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11, -0x33,0x15,0x96,0x90,0x8d,0x74,0x60,0x73,0x01,0x7e,0x41,0x01,0x44,0x55,0x49,0x47,0xfe,0x81,0x41,0x00,0x00,0x01,0x00,0x93,0x01,0x7e,0x01,0xc9,0x03,0x43,0x00,0x1a,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x52,0x4d,0x00,0x03,0x03,0x04, -0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x17,0x23,0x12,0x27,0x06,0x0b,0x1a,0x2b,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x9c,0xb7,0x14,0x18,0x2f,0x23,0x22,0x31,0x47,0x02,0x2a,0x45,0x29,0x2c,0x45,0x29, -0x2a,0x24,0x8c,0xdc,0x01,0x7e,0x4d,0x9e,0x11,0x25,0x16,0x23,0x2b,0x2c,0x24,0x2b,0x40,0x25,0x23,0x3f,0x2a,0x24,0x3e,0x1f,0x77,0x41,0x00,0x00,0x00,0x01,0x00,0x8b,0x01,0x79,0x01,0xce,0x03,0x3e,0x00,0x1a,0x00,0x43,0x40,0x40,0x15,0x14,0x0f,0x03,0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04, -0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35, -0x21,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x01,0x2c,0x47,0x5a,0x47,0x32,0x28,0x28,0x32,0x32,0x28,0x29,0x73,0xd5,0x01,0x1d,0x75,0x3c,0x49,0x5a,0x01,0x79,0x52,0x42,0x25,0x2f,0x2f,0x25,0x25,0x2e,0x45,0x58,0x41,0x48,0x5c,0x07,0x4c,0x3a,0x42,0x52,0x00,0x01,0x00,0x8f,0x01,0x7e,0x01,0xbd,0x03,0x3e,0x00,0x0b,0x00,0x30,0x40,0x2d, -0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x50,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x0b,0x1a,0x2b,0x01,0x35,0x23,0x35,0x37,0x33,0x03,0x15,0x33,0x35,0x33,0x11,0x01,0x76,0xe7,0xae,0x50,0xb8, -0xa1,0x47,0x01,0x7e,0x69,0x5d,0xfa,0xfe,0xf6,0x0d,0x72,0xfe,0xe5,0x00,0x00,0x00,0x00,0x01,0x00,0x8d,0x01,0x79,0x01,0xcf,0x03,0x3e,0x00,0x19,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03,0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x07, -0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x15,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x19,0x01,0x19,0x08,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2f,0x49,0x59,0x46,0x32,0x2a,0x28,0x30,0x30, -0x28,0x8b,0x01,0x1a,0xd7,0x48,0x4a,0x56,0x58,0x01,0x79,0x50,0x44,0x28,0x2c,0x2f,0x25,0x26,0x2e,0xdd,0x3f,0x62,0x4e,0x42,0x42,0x52,0x00,0x00,0x00,0x02,0x00,0x86,0x01,0x79,0x01,0xd2,0x03,0x3e,0x00,0x10,0x00,0x1c,0x00,0x38,0x40,0x35,0x08,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x50, -0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x53,0x00,0x4e,0x12,0x11,0x01,0x00,0x18,0x16,0x11,0x1c,0x12,0x1c,0x0c,0x0a,0x07,0x06,0x00,0x10,0x01,0x10,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x37,0x37,0x33,0x07,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14, -0x16,0x01,0x2d,0x4b,0x5c,0x24,0x7e,0x4d,0x81,0x04,0x1b,0x31,0x40,0x4e,0x5b,0x4b,0x2a,0x34,0x34,0x2a,0x29,0x35,0x34,0x01,0x79,0x55,0x43,0x32,0x39,0xc2,0xc5,0x25,0x4e,0x3f,0x43,0x55,0x40,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x01,0x00,0x94,0x01,0x7e,0x01,0xce,0x03,0x3e,0x00,0x08,0x00,0x52,0xb5,0x07, -0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e, -0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x0b,0x19,0x2b,0x13,0x13,0x23,0x15,0x23,0x35,0x21,0x15,0x03,0xd8,0xb1,0xaf,0x46,0x01,0x3a,0xa8,0x01,0x7e,0x01,0x80,0x4e,0x8e,0x4c,0xfe,0x8c,0x00,0x00,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0x45,0x40,0x42, -0x13,0x06,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x27,0x26,0x1b,0x1a,0x01,0x00,0x2d,0x2b,0x26,0x31,0x27,0x31,0x21,0x1f,0x1a,0x25,0x1b,0x25,0x0e,0x0c,0x00,0x19,0x01,0x19,0x09, -0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x3a,0x2e,0x2a,0x33,0x55,0x45,0x46, -0x56,0x34,0x2c,0x2f,0x3a,0x5b,0x4a,0x27,0x30,0x30,0x27,0x26,0x2f,0x2f,0x26,0x2a,0x36,0x36,0x2a,0x2a,0x36,0x36,0x01,0x79,0x49,0x3a,0x2e,0x3d,0x04,0x04,0x08,0x34,0x22,0x35,0x41,0x41,0x35,0x22,0x34,0x08,0x04,0x04,0x3d,0x2e,0x3a,0x49,0x01,0x0b,0x24,0x1d,0x1d,0x25,0x25,0x1d,0x1d,0x24,0xce,0x29,0x21,0x21,0x29,0x29,0x21,0x21, -0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x8b,0x01,0x7e,0x01,0xcd,0x03,0x43,0x00,0x12,0x00,0x1e,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x51,0x02,0x4e,0x14,0x13,0x00,0x00,0x1a,0x18,0x13,0x1e,0x14,0x1e, -0x00,0x12,0x00,0x12,0x24,0x24,0x07,0x0b,0x18,0x2b,0x13,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe7,0x7e,0x04,0x0a,0x26,0x1d,0x3f,0x4a,0x57,0x49,0x4a,0x58,0x16,0x16,0x6d,0x08,0x26,0x33,0x30,0x29,0x29,0x30,0x30, -0x01,0x7e,0xc5,0x10,0x15,0x4f,0x3e,0x44,0x54,0x54,0x44,0x21,0x3c,0x23,0xad,0xd5,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0xff,0xff,0x00,0x9a,0xff,0x7b,0x01,0xce,0x01,0x40,0x03,0x07,0x03,0x15,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0x76,0x01,0xd4, -0x01,0x40,0x03,0x07,0x03,0x16,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0x76,0x01,0xc8,0x01,0x40,0x03,0x07,0x03,0x17,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x00,0x00,0x01,0xce, -0x01,0xc5,0x03,0x07,0x03,0x15,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xfb,0x01,0xd4,0x01,0xc5,0x03,0x07,0x03,0x16,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0xfb,0x01,0xc8, -0x01,0xc5,0x03,0x07,0x03,0x17,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x01,0x1a,0x01,0xce,0x02,0xdf,0x03,0x06,0x03,0x15,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x90,0x01,0x15,0x01,0xd4,0x02,0xdf,0x03,0x06, -0x03,0x16,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x84,0x01,0x15,0x01,0xc8,0x02,0xdf,0x03,0x06,0x03,0x17,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x9a,0x01,0x7e,0x01,0xce,0x03,0x43,0x00,0x1e,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03, -0x00,0x01,0x03,0x80,0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x1e,0x00,0x1e,0x19,0x22,0x12,0x2a,0x06,0x09,0x1a,0x2b,0x13,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e, -0x04,0x15,0x33,0x15,0xa0,0x21,0x35,0x3a,0x35,0x21,0x2d,0x23,0x26,0x2e,0x48,0x56,0x46,0x43,0x55,0x22,0x34,0x3c,0x34,0x22,0xe7,0x01,0x7e,0x39,0x2f,0x3b,0x26,0x1b,0x1a,0x24,0x1c,0x20,0x27,0x2d,0x23,0x40,0x50,0x4a,0x3d,0x29,0x34,0x22,0x1a,0x1c,0x28,0x20,0x41,0x00,0x00,0x02,0x00,0x90,0x01,0x79,0x01,0xd4,0x03,0x43,0x00,0x1a, -0x00,0x26,0x00,0x4d,0x40,0x4a,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x00,0x05,0x59,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x05,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c, -0x26,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x32,0x49,0x59,0x56,0x4c,0x44,0x56, -0x04,0x45,0x04,0x31,0x24,0x2b,0x32,0x01,0x16,0x54,0x41,0x53,0x59,0x49,0x29,0x32,0x32,0x2a,0x2a,0x32,0x33,0x01,0x79,0x54,0x43,0x94,0x4a,0x55,0x45,0x37,0x1b,0x23,0x34,0x2d,0x50,0x4c,0x4f,0x41,0x43,0x54,0x3f,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x02,0x00,0x84,0x01,0x79,0x01,0xc8,0x03,0x43,0x00,0x1a, -0x00,0x26,0x00,0x4c,0x40,0x49,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x02,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c,0x26, -0x15,0x13,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x31,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x26,0x43,0x57,0x04,0x45,0x05,0x30,0x24, -0x2c,0x31,0x16,0x55,0x41,0x53,0x59,0x49,0x49,0x59,0x56,0x4b,0x2a,0x32,0x33,0x2a,0x29,0x32,0x32,0x01,0x79,0x44,0x34,0x18,0x21,0x34,0x2c,0x55,0x4c,0x4e,0x40,0x42,0x52,0x52,0x42,0x97,0x49,0x56,0xe0,0x2f,0x27,0x26,0x30,0x30,0x26,0x26,0x30,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x1b,0x00,0x00, -0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x1b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x01,0x10,0x01,0xd1,0x02,0xda,0x03,0x06,0x03,0x1b,0x00,0x97, -0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x3a,0x40,0x37,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03,0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01, -0x00,0x03,0x00,0x51,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15, -0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x28,0x20,0x26,0x1a,0x1f,0x2a,0x56,0x44,0x44,0x56,0x25,0x1d,0x1c,0x20,0x22,0x27,0x5b,0x72,0x2a,0x2b,0x11,0x17,0x2f,0x26,0x25,0x30,0x1a,0x3b,0x2b,0x35,0x19,0x14,0x31,0x35,0x14,0x19,0x35,0x01,0x79,0x49,0x3a,0x1f,0x2d,0x0e, -0x10,0x0c,0x0e,0x2f,0x1b,0x36,0x43,0x43,0x36,0x1e,0x2e,0x0d,0x0c,0x0f,0x0f,0x2d,0x1e,0x3a,0x49,0x01,0x19,0x13,0x12,0x08,0x1c,0x13,0x1c,0x23,0x23,0x1c,0x12,0x1b,0xe4,0x25,0x1e,0x14,0x1e,0x09,0x17,0x17,0x08,0x1e,0x14,0x1e,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0xff,0x76,0x01,0xcc,0x01,0x3b,0x03,0x07,0x03,0x1f,0x00,0x00, -0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0x01,0x15,0x01,0xcc,0x02,0xda,0x03,0x06,0x03,0x1f,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8a,0x01,0x10,0x01,0xcc,0x02,0xd5,0x03,0x06,0x03,0x1f,0x00,0x97,0x00,0x09,0xb1,0x00, -0x01,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x8a,0x01,0x79,0x01,0xcc,0x03,0x3e,0x00,0x1e,0x00,0x50,0x40,0x4d,0x16,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x02,0x00, -0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x1a,0x18,0x15,0x14,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1e,0x01,0x1e,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x23,0x15,0x36,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x01,0x2a,0x40,0x59,0x07,0x48,0x05,0x31,0x22,0x28,0x32,0x32,0x28,0x1b,0x29,0x0b,0x41,0x01,0x1c,0xd9,0x0d,0x34,0x22,0x3e,0x4e,0x5a,0x01,0x79,0x43,0x35,0x19,0x1f,0x33,0x25,0x26,0x32,0x1a,0x12,0x01,0x01,0x40,0x88,0x14,0x1a,0x53,0x40,0x42,0x56,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x02,0x53, -0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x38,0x4d,0x02,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x33,0x01,0x33,0x01,0x05,0x01,0xf9,0x55,0xfe,0x07,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x2e,0x00,0x6a, -0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02,0x28,0x14,0x02,0x09,0x07,0x29,0x01,0x05,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x06,0x09,0x06,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x08,0x01,0x00,0x68,0x00,0x08,0x00,0x06,0x07,0x08,0x06,0x69,0x00,0x09,0x05,0x05,0x09,0x57,0x00,0x09,0x09,0x05, -0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00,0x00,0x13,0x2e,0x13,0x2e,0x2d,0x2b,0x22,0x20,0x1e,0x1d,0x1b,0x19,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x33,0x35,0x37, -0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x15,0x36,0x36,0x33,0x33,0x15,0x05,0x01,0x18,0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x6b,0xc3,0x55,0xfe,0x07,0xe1,0x78,0x46,0x24,0x1d,0x1d,0x24,0x3c,0x02,0x45,0x36,0x38,0x45,0x2d,0x29,0x5d,0x0b,0x2a,0x16,0x6d,0x01,0x95,0x32, -0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x07,0x01,0x1a,0xfd,0x26,0x40,0x45,0x28,0x2b,0x1d,0x23,0x23,0x1d,0x34,0x3e,0x3e,0x32,0x1f,0x3c,0x17,0x34,0x0a,0x02,0x06,0x32,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x1e,0x00,0x6a,0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02, -0x0f,0x01,0x00,0x01,0x19,0x16,0x02,0x08,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x00,0x09,0x00,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x07,0x01,0x00,0x68,0x00,0x09,0x08,0x05,0x09,0x57,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x68,0x00,0x09,0x09,0x05,0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00, -0x00,0x13,0x1e,0x13,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x15,0x14,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x05,0x01,0x18, -0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x61,0xcd,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x95,0x32,0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x15,0x01,0x28,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59,0xd1,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x1e,0x00,0x2a, -0x00,0xd3,0xb1,0x06,0x64,0x44,0x40,0x0d,0x15,0x14,0x0f,0x03,0x03,0x04,0x25,0x22,0x02,0x0a,0x0b,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x42,0x00,0x03,0x04,0x01,0x04,0x03,0x72,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57,0x00,0x02,0x0d,0x01,0x00,0x09, -0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x1b,0x40,0x43,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57, -0x00,0x02,0x0d,0x01,0x00,0x09,0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x59,0x40,0x29,0x1f,0x1f,0x1b,0x1b,0x01,0x00,0x1f,0x2a,0x1f,0x2a,0x29,0x28,0x27,0x26,0x24,0x23,0x21,0x20,0x1b,0x1e,0x1b,0x1e,0x1d,0x1c,0x13, -0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x10,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15, -0x9a,0x3a,0x46,0x3c,0x25,0x1f,0x1e,0x25,0x25,0x1d,0x1e,0x51,0x9c,0xd7,0x55,0x2d,0x38,0x46,0xce,0x01,0xf9,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x90,0x3a,0x2f,0x19,0x1e,0x1e,0x19,0x19,0x1e,0x39,0x3f,0x32,0x37,0x42,0x06,0x38,0x2a,0x2f,0x3a,0xfe,0x70,0x02,0xda,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59, -0xd1,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x79,0x01,0xcf,0x03,0x43,0x02,0x06,0x03,0x02,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xe4,0x01,0xcf,0x01,0xae,0x03,0x07, -0x03,0x02,0x00,0x00,0xfe,0x6b,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x6b,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x91,0x01,0x8b,0x01,0xc7,0x03,0x48,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, -0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x48,0x53,0x53,0x48,0x48,0x53,0x53,0x48,0x28,0x2d,0x2d,0x28,0x28, -0x2d,0x2d,0x01,0x8b,0x4f,0x46,0x94,0x45,0x4f,0x4f,0x45,0x94,0x46,0x4f,0x3f,0x2e,0x28,0x94,0x28,0x2d,0x2d,0x28,0x94,0x28,0x2e,0x00,0x00,0x00,0x00,0x02,0x00,0x4c,0xff,0xf6,0x02,0x0c,0x02,0x8a,0x00,0x15,0x00,0x22,0x00,0x32,0x40,0x2f,0x1f,0x0e,0x0b,0x08,0x04,0x03,0x01,0x01,0x4c,0x02,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x00, -0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x1a,0x18,0x0d,0x0c,0x0a,0x09,0x00,0x15,0x01,0x15,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x33,0x17,0x37,0x33,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x07,0x06, -0x06,0x01,0x2c,0x43,0x63,0x36,0x2b,0x22,0x5b,0xac,0x68,0x79,0x79,0x66,0xac,0x5d,0x23,0x28,0x36,0x62,0xc6,0x46,0x3c,0x3c,0x46,0x30,0x52,0x53,0x16,0x19,0x0a,0x32,0x56,0x34,0x2e,0x51,0x28,0x69,0xc8,0x8b,0x8b,0xc7,0x6b,0x29,0x51,0x2c,0x34,0x56,0x32,0xc4,0x30,0x44,0x44,0x30,0x37,0x36,0x60,0x60,0x19,0x37,0x00,0x01,0x00,0xda, -0xff,0xf6,0x01,0x7e,0x00,0x98,0x00,0x0b,0x00,0x1a,0x40,0x17,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x2c,0x23,0x25,0x2e,0x2e,0x25, -0x23,0x2c,0x00,0x00,0x00,0x01,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x00,0x03,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x03, -0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x13,0x33,0x03,0xd2,0x37,0x6c,0x46,0xa0,0x01,0x32,0xfe,0xce,0x00,0x02,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x3f,0x02,0x4e,0x0d,0x0c,0x01, -0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x01,0x9c,0x28,0x22,0x22,0x28, -0x28,0x22,0x22,0x28,0xfe,0x5a,0x28,0x22,0x22,0x28,0x28,0x22,0x22,0x28,0x00,0x00,0x00,0x02,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x00,0x0d,0x00,0x11,0x00,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, -0x14,0x00,0x02,0x05,0x01,0x03,0x02,0x03,0x63,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x13,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x01,0x22, -0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x69,0x37,0x6c,0x46,0x01,0x9a,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x32,0xfe,0xce,0x00,0x00,0x00,0x00,0x03,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x00,0xaa,0x00,0x0d,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x2d,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06, -0x05,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x0f,0x0e,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x33,0x22, -0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0xea,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xfe,0x6d,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xa7,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0x0a,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e, -0x1e,0x19,0x46,0x19,0x1e,0x00,0x00,0x00,0x00,0x02,0x00,0xe1,0xff,0xfb,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x11,0x00,0x2c,0x40,0x29,0x04,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x42,0x02,0x4e,0x05,0x04,0x00,0x00,0x0c,0x09,0x04,0x11,0x05,0x10,0x00,0x03,0x00,0x03,0x11, -0x06,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x03,0x0c,0x6a,0x0c,0x38,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0xe1,0xff,0x4c,0x01,0x77,0x02,0x2b,0x00,0x0d, -0x00,0x11,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03, -0x13,0x33,0x13,0x01,0x1d,0x1a,0x22,0x22,0x1a,0x1e,0x1a,0x22,0x1f,0x1d,0x44,0x0c,0x52,0x0c,0x01,0xb3,0x22,0x1a,0x1a,0x22,0x23,0x1a,0x19,0x22,0xfd,0x99,0x02,0x03,0xfd,0xfd,0x00,0x00,0x00,0x02,0x00,0x82,0xff,0xfb,0x01,0xe5,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x70,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x07,0x01,0x04,0x03,0x06, -0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x1b,0x40,0x27,0x07,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00, -0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x59,0x40,0x15,0x16,0x15,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x09,0x09,0x1a,0x2b,0x37,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33, -0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xce,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x73,0xff,0x4c,0x01,0xd6, -0x02,0x2b,0x00,0x0d,0x00,0x22,0x00,0x74,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x00,0x04,0x00,0x03,0x03,0x04,0x72,0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x1b,0x40,0x27,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x80, -0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x59,0x40,0x19,0x0f,0x0e,0x01,0x00,0x21,0x1f,0x1b,0x19,0x18,0x17,0x16,0x15,0x0e,0x22,0x0f,0x22,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, -0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x4f,0x1c,0x20,0x22,0x1a,0x1e,0x1a,0x22,0x22,0x1a,0x14,0x46,0x67,0x39,0x30,0x55,0x38,0x5a,0x32,0x40,0x4b,0x4c,0x40,0x7d,0x01,0xb3,0x22,0x19,0x1a,0x23,0x22,0x1a, -0x1a,0x22,0xfd,0x99,0x35,0x61,0x41,0x3a,0x5a,0x36,0x03,0x5f,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x04,0x01,0x7e,0x01,0xa6,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x0e,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x0e,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b, -0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0xf5,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x00, -0x00,0x01,0x00,0x24,0x00,0x67,0x02,0x34,0x02,0x6c,0x00,0x2c,0x00,0x1b,0x40,0x18,0x29,0x25,0x24,0x20,0x1c,0x1b,0x17,0x0e,0x0a,0x09,0x05,0x01,0x0c,0x00,0x49,0x00,0x00,0x00,0x76,0x13,0x12,0x01,0x09,0x16,0x2b,0x37,0x27,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x37,0x17,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x06, -0x07,0x36,0x36,0x37,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x07,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0xb1,0x45,0x41,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x6b,0x1c,0x6c,0x11,0x38,0x17,0x05,0x05,0x54,0x06,0x05,0x18,0x37,0x12,0x6c,0x1c,0x6b,0x12,0x3e,0x1c,0x14,0x2e,0x0c,0x41,0x45,0x41,0x0c,0x22,0x0c,0x0c,0x22,0x0c,0x67, -0x31,0x5d,0x12,0x34,0x14,0x04,0x10,0x07,0x28,0x4f,0x28,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x7d,0x7d,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x28,0x4f,0x28,0x07,0x10,0x04,0x14,0x35,0x11,0x5d,0x31,0x5e,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x00,0x00,0x01, -0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x04,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x9b,0x96,0x6e,0x03, -0xac,0x50,0xfe,0xb1,0x50,0xfe,0x93,0x50,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x09, -0x1c,0x2b,0x05,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x8b,0xf0,0x96,0x9b,0x9b,0x9b,0xf5,0x6e,0x50,0x01,0x6d,0x50,0x01,0x4f,0x50,0x00,0x00,0x00,0x02,0x00,0x7d,0xff,0x92,0x01,0xdb,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04, -0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x7d,0x5a,0xaa,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0x00,0x69,0xff,0xfb,0x01,0xef,0x02,0xda,0x00,0x26,0x03,0x2e,0x88,0x00,0x00,0x06,0x03,0x2e,0x78,0x00,0x00,0x00, -0x00,0x02,0x00,0x87,0xff,0xfb,0x01,0xea,0x02,0xda,0x00,0x16,0x00,0x24,0x00,0x3f,0x40,0x3c,0x15,0x05,0x02,0x03,0x00,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x00,0x05,0x05,0x04,0x61,0x07,0x01,0x04,0x04,0x42,0x04,0x4e,0x18,0x17,0x00,0x00,0x1f,0x1c, -0x17,0x24,0x18,0x23,0x00,0x16,0x00,0x16,0x21,0x27,0x12,0x08,0x09,0x19,0x2b,0x37,0x27,0x35,0x33,0x15,0x07,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xdf,0x0d,0x5a,0x03,0x30,0x37,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39, -0x6a,0x5b,0x06,0x2f,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xcd,0xf5,0x64,0x64,0x3e,0x0a,0x43,0x32,0x3b,0x47,0x55,0x35,0x60,0x42,0x57,0x6e,0x07,0x6a,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x47,0x40,0x44,0x07,0x05,0x02,0x03,0x0f,0x08, -0x02,0x02,0x01,0x03,0x02,0x68,0x0e,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x10,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x00,0x00,0x1f,0x1e,0x1d,0x1c,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x1f,0x2b,0x33, -0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x53,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2, -0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xff,0xff,0x00,0xda,0xff,0xf6,0x01,0x7e,0x00,0x98,0x02,0x06,0x03,0x29,0x00,0x00,0x00,0x01,0xff,0xf6,0x02,0xee,0x02,0x62,0x03,0x3e,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, -0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x21,0x15,0x0a,0x02,0x6c,0x02,0xee,0x50,0x50,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17, -0x2b,0x17,0x01,0x33,0x01,0x4b,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0x54,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x01,0x01,0xae,0xfe,0x9d,0x5f,0x01,0x63, -0x6e,0x03,0xac,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0xff,0x4c,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x04,0x01,0x00,0x00,0x3d,0x00,0x4e,0x01,0x00,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x05,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14, -0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xb4,0x4e,0x5c,0x5a,0x31,0x29,0xdc,0x29,0x31,0x5a,0x5c,0x4e,0xb4,0x61,0x53,0x2e,0x36,0x36,0x2e,0x53,0x61,0x00,0x00,0x02,0x00,0xd9,0x00,0x46,0x01,0x7f,0x02,0x80,0x00,0x0b,0x00,0x17,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x02,0x02,0x03, -0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03,0x02,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d, -0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xea,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0xff,0xff,0xff,0x1a,0x01,0x09,0xff,0xbe,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x40,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00, -0xff,0xff,0xff,0x79,0x01,0x09,0x00,0x1d,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x9f,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb9,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x07,0x00,0x01,0x32,0x2b,0x05,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x0e,0x02,0x15, -0x15,0x14,0x16,0x16,0x17,0x01,0xe5,0x8f,0x9d,0x9d,0x8f,0x40,0x5f,0x33,0x33,0x5f,0x40,0x78,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x20,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x00,0x00,0x01,0x00,0x73,0xff,0x88,0x01,0x9f,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x0b,0x00,0x01,0x32,0x2b,0x17,0x35,0x3e,0x02,0x35,0x35,0x34,0x26, -0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14,0x06,0x73,0x41,0x5e,0x33,0x33,0x5e,0x41,0x8f,0x9d,0x9d,0x78,0x57,0x0f,0x54,0x7e,0x4e,0xb4,0x4f,0x7d,0x54,0x0f,0x57,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x00,0x24,0x00,0x3d,0x40,0x3a,0x1b,0x01,0x01,0x02,0x01,0x4c,0x00,0x03, -0x00,0x04,0x02,0x03,0x04,0x69,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x59,0x00,0x05,0x05,0x00,0x61,0x06,0x01,0x00,0x05,0x00,0x51,0x01,0x00,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36, -0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0xcc,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x6e,0x57,0x4f,0xa4,0x35, -0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x26,0x00,0x38,0x40,0x35,0x09,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x69,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00, -0x05,0x05,0x00,0x59,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x00,0x05,0x51,0x00,0x00,0x00,0x26,0x00,0x25,0x21,0x26,0x21,0x2c,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17, -0x17,0x16,0x06,0x06,0x23,0x5f,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f, -0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x11, -0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00, -0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x96,0x9b,0x9b,0xf5,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x00,0x00,0x00,0xff,0xff,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x02,0x06,0x03,0x45,0x00,0x00,0xff,0xff,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x02,0x06,0x03,0x46,0x00,0x00, -0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x33,0x03,0x13,0x33,0x03,0x13,0xf3,0x85,0x85,0xfc,0x85,0x85,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe,0x93, -0x00,0x01,0x00,0x96,0x00,0x00,0x01,0xc5,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x01,0x1d,0x87,0x87,0xa8,0x87,0x87,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe, -0x93,0x00,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x65,0xfc,0x85,0x85,0xfc,0x85,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00, -0x00,0x01,0x00,0x93,0x00,0x00,0x01,0xc2,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x3b,0xa8,0x87,0x87,0xa8,0x87,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0xcd, -0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0xcd,0xf5,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xa4,0x00,0x00,0x00, -0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xcd,0x5a,0x9b,0x6e,0x03,0xac,0xfc,0xa4, -0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x92,0x01,0xea,0x03,0x48,0x00,0x26,0x00,0x5c,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x20,0x05,0x01,0x04,0x03,0x01,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x1b,0x40,0x21,0x05,0x01,0x04,0x03, -0x01,0x03,0x04,0x01,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x59,0x40,0x0d,0x00,0x00,0x00,0x26,0x00,0x26,0x2c,0x21,0x2b,0x23,0x06,0x06,0x1a,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33, -0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xb9,0x54,0x46,0x45,0x52,0x22,0x14,0x79,0x36,0x24,0x41,0x37,0x87,0x87,0x5f,0x73,0x09,0x21,0x25,0x85,0x21,0x14,0x1e,0x1f,0x1c,0x24,0x02,0x9c,0x1b,0x42,0x4f,0x4e,0x41,0x2b,0x53,0x21,0xca,0x5a,0x6e,0x25,0x3c,0x45,0x50, -0x70,0x5f,0x10,0x43,0x61,0x3b,0xd6,0x35,0x49,0x13,0x1a,0x27,0x24,0x1d,0x1b,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, -0x18,0x2b,0x05,0x11,0x23,0x35,0x33,0x11,0x01,0x31,0x9b,0xf5,0x6e,0x03,0x5c,0x50,0xfc,0x54,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05, -0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x96,0x9b,0x5a,0x6e,0x50,0x03,0x5c,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x78,0xff,0x92,0x01,0xdb,0x03,0x48,0x00,0x26,0x00,0x54,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x03,0x01,0x00,0x72,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02, -0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x1b,0x40,0x20,0x00,0x00,0x01,0x03,0x01,0x00,0x03,0x80,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x59,0xb7,0x2b,0x21,0x2c,0x23,0x10,0x05,0x06,0x1b,0x2b,0x01,0x23,0x35,0x34,0x26,0x23, -0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0xa9,0x5a,0x23,0x1d,0x1f,0x1e,0x14,0x21,0x85,0x25,0x21,0x09,0x73,0x5f,0x87,0x87,0x37,0x41,0x24,0x36,0x79,0x14,0x22,0x52,0x45,0x46,0x54,0x02,0x9c,0x1b,0x1d, -0x24,0x27,0x1a,0x13,0x49,0x35,0xd6,0x3b,0x61,0x43,0x10,0x5f,0x70,0x50,0x45,0x3c,0x25,0x6e,0x5a,0xca,0x21,0x53,0x2b,0x41,0x4e,0x4f,0x42,0x00,0x00,0x02,0x00,0xa0,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x0b,0x0a,0x09,0x00,0x02,0x32,0x2b,0x05,0x2e,0x02,0x35,0x35,0x34,0x36,0x36,0x37,0x03,0x11,0x06, -0x06,0x15,0x15,0x14,0x16,0x01,0xe5,0x62,0x93,0x50,0x50,0x93,0x62,0x55,0x46,0x50,0x50,0x78,0x10,0x6b,0xa5,0x66,0xb4,0x67,0xa4,0x6b,0x10,0xfc,0xb3,0x02,0xde,0x24,0x92,0x61,0xb4,0x5f,0x91,0x00,0x00,0x00,0x00,0x02,0x00,0x73,0xff,0x88,0x01,0xb8,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x11,0x0a,0x01,0x00,0x02,0x32,0x2b, -0x17,0x11,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x27,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x73,0x63,0x92,0x50,0x50,0x92,0x0e,0x46,0x50,0x50,0x46,0x78,0x03,0xc0,0x10,0x6b,0xa4,0x67,0xb4,0x66,0xa5,0x6b,0x63,0x23,0x91,0x5f,0xb4,0x61,0x92,0x24,0x00,0x00,0x01,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, -0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x8c,0x01,0x40,0x01,0x22,0x50,0x50,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x50,0x01,0x22,0x02,0x08, -0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x50,0x01,0xb8,0x01,0x22,0x50,0x50,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x02,0x58,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, -0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x01,0x22,0x50,0x50,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x9c,0x02,0x1c, -0xff,0xe7,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x17,0x35,0x21,0x15,0x3c,0x01,0xe0,0x64,0x4b,0x4b,0x00,0x00,0x00,0x01,0x00,0xdc,0xff,0x60,0x01,0x86, -0x00,0x91,0x00,0x0f,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x17,0x37,0x36,0x36,0x35, -0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0xdc,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0xa0,0x7b,0x14,0x2a,0x0f,0x1d,0x39,0x13,0x14,0x38,0x1d,0x14,0x38,0x19,0x63,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x60,0x02,0x05,0x00,0x91,0x00,0x26,0x03,0x5d,0x8d,0x00,0x00,0x06,0x03,0x5d,0x7f,0x00,0x00,0x00, -0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xed,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x24,0x40,0x21,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x01,0x38,0x00,0x4e,0x10,0x10,0x00,0x00,0x10,0x1f,0x10,0x1f,0x18,0x17,0x00,0x0f,0x00,0x0f,0x17,0x06,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35, -0x34,0x36,0x37,0x37,0x23,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0xed,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x76,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x7b,0x13,0x2b, -0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x00,0xff,0xff,0x00,0x69,0x01,0xaf,0x01,0xef,0x02,0xe0,0x00,0x27,0x03,0x5d,0xff,0x8d,0x02,0x4f,0x01,0x07,0x03,0x5d,0x00,0x69,0x02,0x4f,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xd2, -0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x38,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x7c,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d, -0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0xff,0xff,0x00,0xdc,0x01,0xa9,0x01,0x86,0x02,0xda,0x03,0x07,0x03,0x5d,0x00,0x00,0x02,0x49,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x49,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x13,0x40,0x10, -0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x00,0x4e,0x17,0x10,0x02,0x09,0x18,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x7c,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, -0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x17,0x40,0x14,0x02,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x00,0x4e,0x17,0x17,0x17,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37, -0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0xef,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0xa4,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x7b,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, -0x00,0x02,0x00,0x1e,0x00,0x28,0x02,0x33,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06, -0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x21,0x27,0x37,0x33,0x07,0x17,0x01,0xcc,0xc0,0xbf,0x68,0xc4,0xc4,0xfe,0xab,0xc0,0xbf,0x6a,0xc4,0xc4,0x28,0xf0,0xf0,0xee,0xf2,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x28,0x02,0x3a,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01, -0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x25,0x37,0x27,0x33,0x17,0x07,0x21,0x37,0x27,0x33,0x17,0x07,0x01,0x12,0xc0,0xc1,0x69,0xc0,0xbf,0xfe,0xab, -0xc0,0xc1,0x67,0xc0,0xbf,0x28,0xf1,0xef,0xf0,0xf0,0xf1,0xef,0xf0,0xf0,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03, -0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x01,0x5d,0xca,0xca,0x66,0xcc,0xcf,0x28,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f, -0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x09,0x17,0x2b,0x37,0x37,0x27,0x33,0x17,0x07,0x96,0xcc,0xcf,0x69,0xca,0xca,0x28,0xee,0xf2,0xf0,0xf0,0xff,0xff,0x00,0x14,0x01,0xa3,0x02,0x44,0x02,0xd5,0x00,0x27,0x03,0x2a,0xff,0x42,0x02,0x43,0x00,0x27,0x03,0x2a,0x00,0x09,0x02,0x43,0x01,0x07,0x03,0x2a,0x00,0xcf,0x02,0x43,0x00,0x1b, -0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0xae,0x01,0xc9,0x02,0xda,0x00,0x26,0x03,0x6b,0x96,0x00,0x00,0x06,0x03,0x6b,0x6a,0x00,0x00,0x00,0x00,0x01,0x00,0xf9,0x01,0xae,0x01,0x5f,0x02,0xda,0x00,0x03, -0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x03,0x33,0x03,0x01,0x01,0x08,0x66,0x07,0x01,0xae,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x02,0xfe,0x34,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01, -0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x2d,0x01,0x9f,0xfc,0x68,0x01,0x9f,0x01,0x22,0x50,0x50,0x50,0x50,0x00,0x00,0x03,0xfb,0xdc, -0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11, -0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x0f,0x01,0xbd,0xfa,0x10,0x01,0xbd,0x5f,0x01,0xb8,0x01,0x22,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x02,0xf9,0x4d,0xff,0x74,0x01,0xf4,0x03,0x20,0x00,0x29,0x00,0x50,0x00,0x84,0xb5,0x33,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, -0x40,0x24,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08,0x01,0x00,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x65,0x09,0x01,0x03,0x03,0x04,0x61,0x0a,0x01,0x04,0x04,0x40,0x03,0x4e,0x1b,0x40,0x2b,0x0a,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x69,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08, -0x01,0x00,0x07,0x07,0x00,0x59,0x08,0x01,0x00,0x00,0x07,0x61,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x51,0x59,0x40,0x20,0x2a,0x2a,0x00,0x00,0x2a,0x50,0x2a,0x4f,0x49,0x47,0x46,0x44,0x3e,0x3c,0x3b,0x39,0x2d,0x2b,0x00,0x29,0x00,0x28,0x21,0x26,0x21,0x26,0x11,0x16,0x21,0x10,0x09,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x27,0x27,0x26, -0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0x21,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15, -0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0xfe,0x34,0x2d,0x2f,0x37,0x07,0x19,0x04,0x0c,0x0f,0xfa,0x8f,0x05,0x75,0x11,0x0f,0x05,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x01,0xe5,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19, -0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x8c,0x50,0x2b,0x2b,0xa4,0x1e,0x33,0x13,0x50,0x11,0x33,0x20,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b, -0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x01,0xfb,0xa6,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50, -0x11,0x13,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x08,0x08,0xfa,0x1c,0x05,0xe4,0x0a,0x0a,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x0a,0x06,0x50,0x08,0x0c,0x00,0x00,0x01,0xfe,0x5c,0xff,0xab,0x01,0x59,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0, -0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11, -0x11,0x05,0x09,0x19,0x2b,0x17,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xff,0xfd,0x5d,0x02,0xa3,0x5a,0x55,0x01,0x77,0x50,0x01,0x7c,0xfc,0xbd,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02, -0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50,0x11,0x23,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfc,0x76,0x03,0x8a,0x04,0x08,0x05,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0x50,0x05,0x0a, -0x05,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x39,0x19,0x13,0x0d,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x68,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0f,0x0f,0x00,0x00,0x0f, -0x1a,0x0f,0x1a,0x18,0x17,0x00,0x0e,0x00,0x0e,0x14,0x11,0x23,0x08,0x09,0x19,0x2b,0x27,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0xbe,0x03,0x07,0x03,0xfb,0x4a,0x04,0xb6,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05, -0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0xef,0x04,0x08,0x04,0x50,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x2e,0x40,0x2b,0x08,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x03,0x02,0x57, -0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x25,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x01,0x8a,0xc8,0xfd,0x3b,0x02,0xc5,0xc9,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb, -0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x12,0x00,0x3c,0x40,0x39,0x10,0x0c,0x08,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0b,0x0b,0x00,0x00,0x0b,0x12,0x0b,0x12,0x0e, -0x0d,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x37,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x5e,0xc8,0xfc,0x0f,0x03,0xf1,0xc9,0x69,0xbe,0x2e,0x32,0xba,0xc2,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef, -0x37,0x3d,0xeb,0x00,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xef,0x01,0xb8,0x00,0x1d,0x00,0x6e,0x4b,0xb0,0x11,0x50,0x58,0x40,0x22,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x05,0x07,0x02,0x00,0x03,0x00,0x51,0x1b,0x40,0x29,0x00,0x05, -0x01,0x00,0x01,0x05,0x00,0x80,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x08,0x05,0x04,0x03,0x02,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b, -0x37,0x22,0x27,0x21,0x35,0x21,0x15,0x14,0x16,0x33,0x32,0x3e,0x03,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x03,0x64,0x62,0x27,0xfe,0x36,0x02,0x0d,0x27,0x1f,0x1a,0x27,0x23,0x29,0x39,0x2a,0x46,0x55,0x55,0x26,0x20,0x1b,0x27,0x24,0x29,0x38,0xdc,0x46,0x50,0x05,0x22,0x24,0x1d,0x2b,0x2c,0x1d,0x50,0x41,0x3c, -0x3c,0x20,0x26,0x1d,0x2b,0x2c,0x1d,0x00,0xff,0xff,0xfe,0x0c,0xff,0x92,0x01,0xcc,0x03,0x3e,0x00,0x27,0x03,0x45,0xfd,0xc1,0x00,0x00,0x00,0x06,0x03,0x45,0xd3,0x00,0x00,0x03,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x24,0x00,0x4a,0x00,0x4f,0x00,0x8d,0xb7,0x4e,0x4d,0x1b,0x03,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, -0x40,0x24,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d,0x01,0x05,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x65,0x0a,0x01,0x04,0x04,0x03,0x61,0x09,0x01,0x03,0x03,0x40,0x04,0x4e,0x1b,0x40,0x2b,0x09,0x01,0x03,0x0a,0x01,0x04,0x02,0x03,0x04,0x69,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d, -0x01,0x05,0x00,0x00,0x05,0x59,0x0d,0x01,0x05,0x05,0x00,0x61,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x51,0x59,0x40,0x27,0x26,0x25,0x01,0x00,0x49,0x47,0x42,0x41,0x40,0x3f,0x3a,0x38,0x37,0x35,0x30,0x2e,0x2d,0x2b,0x25,0x4a,0x26,0x4a,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x10,0x09,0x16,0x2b,0x05, -0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x21,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21, -0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x16,0x17,0x35,0x06,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x01,0xe8,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05, -0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x05,0x5f,0xfa,0xa3,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0xfe,0xfb,0x17,0x14,0x14,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f, -0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0xd9,0x02,0x06,0x0f,0x05,0x00,0x05,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x25,0x00,0x29,0x00,0x2d,0x00,0x32,0x00,0x40,0x00,0xaf,0xb6,0x30,0x2e,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x36,0x0a,0x05,0x02,0x02,0x10,0x0b,0x06, -0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x40,0x4d,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x1b,0x40,0x34,0x00,0x03,0x00,0x04,0x02,0x03,0x04,0x69,0x0a,0x05,0x02,0x02,0x10,0x0b, -0x06,0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x59,0x40,0x2f,0x34,0x33,0x2a,0x2a,0x26,0x26,0x01,0x00,0x3b,0x38,0x33,0x40,0x34,0x3f,0x2a,0x2d,0x2a,0x2d,0x2c,0x2b,0x26,0x29,0x26, -0x29,0x28,0x27,0x24,0x22,0x1d,0x1c,0x1b,0x1a,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x25,0x01,0x25,0x12,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21,0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01, -0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x25,0x16,0x17,0x35,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x01,0x25,0xfe,0xdd,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0x01, -0x28,0x0c,0x6a,0x0c,0x9d,0x04,0xbf,0xf8,0x25,0x0e,0x0c,0x0c,0x02,0x39,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0x63,0x02,0x03,0xfd,0xfd,0x4b,0x50,0x50,0x2b,0x01,0x03,0x08,0x02,0xfe,0xac, -0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0xff,0xff,0xfc,0x09,0xff,0x92,0x01,0x40,0x03,0x3e,0x00,0x27,0x03,0x45,0xfb,0xbe,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0xf3,0x00,0x00,0x00,0x06,0x03,0x2e,0xc9,0x00,0x00,0x02,0xfe,0x43,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x48,0x40,0x45,0x1b,0x01,0x01,0x02,0x01,0x4c, -0x06,0x01,0x03,0x00,0x04,0x02,0x03,0x04,0x67,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x09,0x07,0x08,0x03,0x00,0x05,0x00,0x4f,0x25,0x25,0x01,0x00,0x25,0x28,0x25,0x28,0x27,0x26,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x0a,0x09,0x16,0x2b, -0x07,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x33,0x11,0x33,0x11,0x3c,0x58,0x65,0x04,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x41,0x26,0x03,0x0a,0x04,0x65,0x58,0x73,0x73,0x2f,0x32,0x02,0x0a, -0x03,0x35,0x32,0x31,0x36,0x03,0x0a,0x02,0x32,0x2f,0x73,0xb4,0x5a,0x6e,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0xfe,0x34,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x27,0x03,0x46,0xfd,0xd5,0x00,0x00,0x00,0x06, -0x03,0x46,0xe7,0x00,0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, -0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x33,0x11,0x33,0x11,0xfe,0xbb,0x01,0x81,0xfe,0xd9,0x01,0x27,0xaf,0x5a,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0x8e,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x47,0xfd,0xc1,0x00,0x00,0x01,0x06,0x04,0x1c,0x9c,0x0f, -0x00,0x08,0xb1,0x01,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x03,0xfe,0x3e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x04,0x00,0x03,0x06,0x04,0x03,0x67,0x09,0x07,0x02,0x05,0x13,0x10,0x02,0x0a,0x0b,0x05,0x0a,0x68,0x12,0x11,0x02,0x0b,0x0e,0x0c,0x02,0x00,0x0d,0x0b,0x00,0x67, -0x00,0x02,0x00,0x01,0x02,0x01,0x63,0x08,0x01,0x06,0x06,0x38,0x4d,0x14,0x0f,0x02,0x0d,0x0d,0x39,0x0d,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x09,0x1f,0x2b,0x33,0x37,0x21,0x11, -0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x21,0x15,0x21,0x33,0x33,0x37,0x23,0x53,0x27,0xfe,0xb9,0xf5,0x9b,0x9b,0xf5,0x01,0x7f,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x0e, -0xfe,0x8c,0x01,0x52,0x46,0xa0,0x22,0xa0,0xd2,0xfe,0xc0,0x50,0x03,0x0c,0x50,0xfe,0xca,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xc7,0xb4,0xb4,0x00,0xff,0xff,0xfe,0xd4,0xff,0xf6,0x01,0x2e,0x00,0x98,0x00,0x27,0x03,0x29,0xfd,0xfa,0x00,0x00,0x00,0x06,0x03,0x29,0xb0,0x00,0xff,0xff,0xfc,0x90,0xff,0xf6,0x01,0x1a, -0x00,0x98,0x00,0x27,0x03,0x29,0xfb,0xb6,0x00,0x00,0x00,0x27,0x03,0x29,0xfd,0xa9,0x00,0x00,0x00,0x06,0x03,0x29,0x9c,0x00,0xff,0xff,0xfc,0x71,0xff,0xf6,0x01,0x45,0x02,0x53,0x00,0x27,0x04,0x1c,0xff,0x42,0x00,0x00,0x00,0x27,0x03,0x29,0xfb,0x97,0x00,0x00,0x00,0x07,0x03,0x29,0xfd,0x4d,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x82, -0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x27,0x03,0x29,0xfd,0xa8,0x00,0x00,0x00,0x06,0x03,0x30,0x9c,0x00,0xff,0xff,0xfe,0x5c,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x27,0x03,0x33,0xfd,0xa8,0xff,0xdd,0x03,0x06,0x04,0x19,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xdd,0xb0,0x35,0x2b,0x00,0xff,0xff,0xfe,0xd1,0xff,0xf6,0x01,0x2f, -0x02,0x30,0x00,0x27,0x03,0x2b,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2b,0xb0,0x00,0xff,0xff,0xfc,0xc9,0xff,0xf6,0x00,0xdf,0x02,0x30,0x00,0x27,0x03,0x2b,0xfb,0xf0,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x00,0x00,0x07,0x03,0x2b,0xff,0x60,0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0x44,0x00,0x2d,0x01,0x81,0x02,0x67,0x00,0x27, -0x03,0x2b,0xfb,0x6b,0x00,0x37,0x00,0x27,0x03,0x2b,0xfd,0x2f,0x00,0x37,0x01,0x07,0x04,0x19,0xff,0x7e,0x00,0x00,0x00,0x10,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xb1,0x02,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xff,0xff,0xfe,0xb3,0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x26,0x03,0x30,0x9c,0x00,0x00,0x07,0x03,0x2b,0xfd,0xda,0x00,0x00, -0x00,0x05,0xfc,0x2c,0xff,0xf6,0x01,0xae,0x02,0xda,0x00,0x14,0x00,0x21,0x00,0x2f,0x00,0x3d,0x00,0x4b,0x01,0x3b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e,0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x07,0x0a,0x06,0x4c,0x1b,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e, -0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x09,0x0a,0x06,0x4c,0x59,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x40,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06, -0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x41,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38, -0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x3d,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f, -0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x4d,0x00,0x08,0x08,0x07,0x61,0x0d,0x01,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x40,0x25,0x3f,0x3e,0x31,0x30,0x23,0x22,0x00,0x00,0x46,0x43,0x3e,0x4b,0x3f,0x4a,0x38,0x35,0x30,0x3d,0x31,0x3c,0x2a, -0x27,0x22,0x2f,0x23,0x2e,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06, -0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x09,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x9d,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfa,0xc9,0x21,0x2a,0x2b,0x20, -0x14,0x20,0x2b,0x2a,0x21,0x14,0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x01,0x9b,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0x96,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0xd7,0x64,0x82,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfe, -0x5c,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0x05,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x04,0xfe,0x52,0x00,0x64,0x01,0xd6,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x7b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x02,0x00,0x00,0x02,0x57,0x0b,0x01,0x07,0x04,0x05,0x07,0x57,0x06,0x01,0x05,0x0a, -0x01,0x04,0x05,0x04,0x65,0x09,0x03,0x08,0x03,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x26,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x0a,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x23,0x1c, -0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37, -0x35,0x21,0x15,0xfe,0xa2,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0xfc,0xcc,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x50,0x00,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x9f, -0x02,0x67,0x00,0x26,0x04,0x1b,0x9c,0x00,0x01,0x07,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x77,0x02,0x67,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x07,0x04,0x1c,0xff,0x74,0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b, -0xff,0xff,0xfe,0xc5,0xff,0x60,0x01,0x31,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2c,0xb0,0x00,0xff,0xff,0xfc,0xbd,0xff,0x60,0x00,0xe1,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xa8,0x00,0x00,0x00,0x27,0x03,0x2c,0xff,0x60,0x00,0x00,0x00,0x07,0x03,0x2c,0xfb,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xc5, -0xff,0xfb,0x01,0x3b,0x02,0xda,0x00,0x27,0x03,0x2e,0xfd,0xe4,0x00,0x00,0x00,0x06,0x03,0x2e,0xc4,0x00,0xff,0xff,0xfc,0x68,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x2e,0xfb,0x87,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0x5d,0x00,0x00,0x00,0x06,0x03,0x46,0x92,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x02,0x08,0x02,0x99,0x00,0x13, -0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x23,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21, -0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x98,0x3e,0xfe,0x52,0x01,0xcc,0x3a,0xfd,0xfa,0x02,0x24,0x40,0x46,0x40,0x01,0xa6,0xfe,0x3c,0x3a,0x01,0xfe,0xfd,0xe4,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x00,0x01,0xfb,0xa5,0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x1b,0x00,0x4f,0x40,0x4c, -0x00,0x06,0x05,0x06,0x85,0x0e,0x01,0x0d,0x00,0x0d,0x86,0x07,0x01,0x05,0x08,0x01,0x04,0x03,0x05,0x04,0x68,0x09,0x01,0x03,0x0a,0x01,0x02,0x01,0x03,0x02,0x67,0x0b,0x01,0x01,0x00,0x00,0x01,0x57,0x0b,0x01,0x01,0x01,0x00,0x5f,0x0c,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x05,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x1f,0x44,0xfd,0x42,0x02,0xda,0x34,0xfc,0xf2,0x03,0x29,0x34,0xfc,0xa3,0x03,0x79,0x5a,0x46,0x5a,0x02,0x9f,0xfd, -0x45,0x34,0x02,0xef,0xfc,0xf6,0x34,0x03,0x3e,0xfc,0xa6,0x44,0x6e,0xba,0x4c,0x8c,0x4c,0x8c,0x4c,0xf6,0xf6,0x4c,0x8c,0x4c,0x8c,0x4c,0xba,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x2d,0x02,0xda,0x00,0x27,0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x29,0xaf,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x4d,0x02,0xda,0x00,0x27, -0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x2b,0xce,0x00,0xff,0xff,0xfe,0x5c,0xff,0xfb,0x01,0xb8,0x02,0xda,0x00,0x27,0x03,0x30,0xfd,0xda,0x00,0x00,0x00,0x06,0x03,0x30,0xd3,0x00,0xff,0xff,0xfb,0xfa,0xff,0xfb,0x01,0xbd,0x02,0xda,0x00,0x27,0x03,0x30,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x30,0xfd,0xa8,0x00,0x00,0x00,0x06, -0x03,0x30,0xd8,0x00,0x00,0x04,0xfe,0x52,0xff,0xfb,0x01,0xcc,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1e,0x00,0x2c,0x00,0xa5,0xb5,0x1a,0x01,0x04,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x32,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x08,0x0b,0x03,0x04,0x0a,0x07, -0x04,0x67,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x1b,0x40,0x39,0x0b,0x01,0x04,0x07,0x08,0x07,0x04,0x08,0x80,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x01,0x08,0x0a,0x07,0x08,0x67,0x00,0x01, -0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x59,0x40,0x25,0x20,0x1f,0x19,0x19,0x15,0x15,0x00,0x00,0x27,0x24,0x1f,0x2c,0x20,0x2b,0x19,0x1e,0x19,0x1e,0x1d,0x1c,0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33, -0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x25,0x35,0x21,0x15,0x05,0x35,0x36,0x37,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x9e,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x1c,0x01,0xb8,0xfd,0xa8,0x27, -0x09,0x02,0x28,0xfc,0xef,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xe6,0x50,0x50,0xf0,0x24,0x13,0x19,0x50,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfb,0x9c,0x00,0x67,0x02,0x0c,0x03,0x0c,0x00,0x27,0x03,0x34,0xfb,0x78, -0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0xa0,0x01,0x06,0x03,0x34,0xd8,0x00,0x00,0x08,0xb1,0x01,0x01,0xb0,0xa0,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfd,0xe5,0x00,0x41,0x02,0x12,0x02,0x6c,0x00,0x26,0x04,0x1b,0x0f,0x00,0x00,0x07,0x03,0x34,0xfd,0xc1,0x00,0x00,0xff,0xff,0xfd,0xcc,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x27, -0x03,0x34,0xfd,0xa8,0xff,0xb0,0x03,0x06,0x03,0x3d,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xb0,0xb0,0x35,0x2b,0x00,0x00,0x03,0xfd,0xcb,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x27,0x00,0x2d,0x00,0x31,0x00,0x4c,0x40,0x49,0x1e,0x1d,0x02,0x08,0x4a,0x27,0x00,0x02,0x01,0x49,0x0b,0x09,0x02,0x07,0x0f,0x0d,0x02,0x06,0x05,0x07, -0x06,0x68,0x0e,0x0c,0x02,0x05,0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x31,0x30,0x2f,0x2e,0x2d,0x2a,0x29,0x28,0x1a,0x19,0x18,0x17,0x16,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x10,0x09,0x1f,0x2b,0x05,0x26,0x26,0x27,0x21,0x07,0x23,0x37,0x23,0x07, -0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x01,0x21,0x35,0x34,0x35,0x21,0x05,0x33,0x37,0x23,0x01,0xe5,0x81,0x99,0x0f,0xfe,0x92,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, -0x27,0x01,0x38,0x10,0x99,0x7e,0x40,0x5f,0x33,0x33,0x5f,0x40,0xfd,0x74,0x01,0x60,0xfe,0xc2,0xfe,0xf8,0xa0,0x22,0xa0,0x78,0x1d,0xac,0x81,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x7d,0xa7,0x1c,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x01,0x34,0xaf,0x03,0x02,0xb4,0xb4,0x00,0x00,0x00,0x03,0xfd,0xcb, -0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x33,0x00,0x3f,0x00,0x43,0x00,0xd3,0xb5,0x26,0x01,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x44,0x00,0x0f,0x13,0x12,0x07,0x0f,0x72,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00,0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15, -0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x45,0x00,0x0f,0x13,0x12,0x13,0x0f,0x12,0x80,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00, -0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15,0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x35,0x01,0x00,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3c,0x3a,0x39,0x37,0x35,0x34,0x32,0x30,0x29,0x28,0x23,0x21,0x20, -0x1e,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x33,0x01,0x33,0x18,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x27,0x26,0x36, -0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x15,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x21,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x37,0x21,0x05,0x33,0x37,0x23,0x01,0xd6,0x58,0x65,0x04,0x09,0xfe,0x28,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, -0x01,0xa0,0x09,0x05,0x66,0x58,0x2d,0x2d,0x2f,0x33,0x03,0x0a,0x04,0x3c,0x3b,0x3c,0x3a,0x03,0x0a,0x02,0x32,0x2f,0x2d,0xfd,0x56,0x01,0xcb,0x06,0x2c,0x2f,0x4b,0x4b,0x2e,0x2d,0x06,0xfe,0x57,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x57,0x4f,0x9a,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x90,0x4f,0x57,0x50,0x2b,0x2b,0x9f, -0x37,0x4f,0x02,0x05,0x02,0x52,0x37,0xa9,0x2b,0x2b,0x50,0x01,0x81,0x1a,0x18,0x50,0x18,0x1a,0xb4,0xb4,0x00,0x03,0xfd,0xcb,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x0c,0x00,0x0d,0x08,0x0c,0x0d,0x67,0x0b,0x09,0x02,0x07,0x13,0x11,0x02,0x06,0x05,0x07,0x06,0x68,0x12,0x10,0x02,0x05, -0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x00,0x0e,0x14,0x01,0x0f,0x0e,0x0f,0x63,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x15,0x09,0x1f,0x2b,0x17,0x11,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x21,0x35,0x21,0x05,0x33,0x37,0x23,0xcd,0xfe,0x81,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27, -0x46,0x27,0x01,0x47,0xf5,0x9b,0x9b,0xfd,0x97,0x01,0x74,0xfe,0xae,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x01,0x40,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x36,0x50,0xfc,0xf4,0x50,0x01,0x81,0xb4,0xb4,0xb4,0x00,0x00,0x04,0xfd,0xcb,0x00,0x00,0x01,0x7c,0x02,0xda,0x00,0x1b,0x00,0x27,0x00,0x2b,0x00,0x37,0x00,0xab, -0x4b,0xb0,0x11,0x50,0x58,0x40,0x37,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x01,0x0f,0x0e,0x69,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x57,0x13,0x10,0x09,0x03,0x01,0x16,0x01,0x12,0x0b,0x01,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40, -0x38,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x13,0x0f,0x0e,0x69,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x67,0x00,0x13,0x16,0x01,0x12,0x0b,0x13,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x40,0x2e,0x2d,0x2c,0x1d,0x1c, -0x00,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x2b,0x2a,0x29,0x28,0x23,0x21,0x1c,0x27,0x1d,0x27,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33, -0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0xeb,0x24,0x2c, -0x2c,0x24,0x24,0x2c,0x2c,0xfd,0x23,0xa0,0x22,0xa0,0x02,0x97,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xae,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x9b,0xb4,0xfe,0xbb,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x00,0x00,0x04,0xfd,0xcb,0xff,0xfb,0x01,0x8b, -0x02,0xda,0x00,0x03,0x00,0x1f,0x00,0x23,0x00,0x31,0x00,0xaf,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x30,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x14,0x04,0x01,0x13,0x03,0x01,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x00,0x13,0x13,0x0d,0x5f,0x16,0x12,0x15,0x0f,0x04,0x0d,0x0d, -0x39,0x0d,0x4e,0x1b,0x40,0x3b,0x14,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x02,0x13,0x03,0x02,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x15,0x0f,0x02,0x0d,0x0d,0x39,0x4d,0x00,0x13,0x13,0x12,0x61,0x16,0x01,0x12,0x12,0x42,0x12, -0x4e,0x59,0x40,0x36,0x25,0x24,0x04,0x04,0x00,0x00,0x2c,0x29,0x24,0x31,0x25,0x30,0x23,0x22,0x21,0x20,0x04,0x1f,0x04,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x17,0x09,0x17,0x2b,0x37,0x13,0x33,0x03,0x05, -0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x37,0x36,0x36,0x33,0x33,0x32,0x16,0x07,0x06,0x06,0x23,0xc9,0x58,0x6a,0x70,0xfc,0xe0,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, -0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x23,0x1a,0x1b,0x05,0x05,0x28,0x1a,0x1e,0x1d,0x19,0x05,0x05,0x29,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xd7,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xfe,0x34,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00, -0x00,0x03,0xfd,0xcb,0xff,0xfb,0x02,0x08,0x02,0xe4,0x00,0x34,0x00,0x38,0x00,0x46,0x01,0x0e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x3c,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x00,0x0c,0x0c,0x04,0x5f,0x08, -0x06,0x02,0x04,0x04,0x38,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x40,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x06,0x01, -0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x40,0x4b,0x00,0x0a,0x00,0x16,0x00,0x0a,0x16,0x80,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01, -0x11,0x0f,0x02,0x00,0x0a,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x17,0x12,0x02,0x10,0x10,0x39,0x4d,0x00,0x16,0x16,0x15,0x61,0x18,0x01,0x15,0x15,0x42,0x15,0x4e,0x59,0x59,0x40,0x30,0x3a,0x39,0x00,0x00,0x41,0x3e,0x39,0x46,0x3a,0x45,0x38,0x37,0x36,0x35,0x00,0x34,0x00, -0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x27,0x25,0x21,0x1f,0x1e,0x1d,0x1c,0x1b,0x24,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xa2,0x3d,0x6c,0x47,0x49,0x6c,0x3b,0x67,0x56,0x5a, -0x32,0x41,0x48,0x50,0x44,0x45,0x51,0xfe,0xf9,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x7e,0x1d,0x24,0x24,0x1d,0x14,0x1d,0x24,0x24,0x1d,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x41,0x63,0x37,0x36,0x63,0x43,0x5b,0x76,0x06,0x64,0xaf,0x4a,0x42,0x41,0x4b,0x4b,0x41,0x41,0xb4,0x41,0xd2,0xd2,0xd2, -0x01,0x13,0xb4,0xfe,0x34,0x1f,0x1c,0x1b,0x22,0x22,0x1b,0x1b,0x20,0x00,0x00,0x00,0x00,0x04,0xfd,0xe9,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b,0x40,0x68,0x0b,0x09,0x07,0x05,0x04,0x03,0x1b,0x19,0x17,0x0c,0x04,0x02,0x01,0x03,0x02,0x68,0x1a,0x18,0x16,0x0d,0x04,0x01,0x14,0x12,0x10,0x0e, -0x04,0x00,0x0f,0x01,0x00,0x67,0x0a,0x08,0x06,0x03,0x04,0x04,0x38,0x4d,0x1c,0x15,0x13,0x11,0x04,0x0f,0x0f,0x39,0x0f,0x4e,0x00,0x00,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x00,0x2b,0x00,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15, -0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1d,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17, -0x33,0x37,0x23,0x05,0x33,0x37,0x23,0xfe,0x19,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0xf0,0x22,0xf0,0x01,0x14,0xa0,0x22,0xa0,0xd2,0x41,0xb4, -0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x00,0x06,0xfb,0x91,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x8f,0x40,0x8c,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x06,0x03,0x27,0x25, -0x23,0x21,0x1f,0x10,0x06,0x02,0x01,0x03,0x02,0x68,0x26,0x24,0x22,0x20,0x1e,0x11,0x06,0x01,0x1c,0x1a,0x18,0x16,0x14,0x12,0x06,0x00,0x13,0x01,0x00,0x67,0x0e,0x0c,0x0a,0x08,0x06,0x05,0x04,0x04,0x38,0x4d,0x28,0x1d,0x1b,0x19,0x17,0x15,0x06,0x13,0x13,0x39,0x13,0x4e,0x00,0x00,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46, -0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x00,0x3b,0x00,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x29, -0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13, -0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xfb,0xc1,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, -0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2, -0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x08,0xf9,0x39,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0xb3,0x40,0xb0,0x13,0x11,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x08,0x03,0x33,0x31,0x2f,0x2d, -0x2b,0x29,0x27,0x14,0x08,0x02,0x01,0x03,0x02,0x68,0x32,0x30,0x2e,0x2c,0x2a,0x28,0x26,0x15,0x08,0x01,0x24,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x08,0x00,0x17,0x01,0x00,0x67,0x12,0x10,0x0e,0x0c,0x0a,0x08,0x06,0x07,0x04,0x04,0x38,0x4d,0x34,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x08,0x17,0x17,0x39,0x17,0x4e,0x00,0x00,0x67,0x66, -0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x00,0x4b,0x00,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29, -0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x35,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33, -0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05, -0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xf9,0x69,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, -0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xd2, -0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x04,0xfd,0xcb,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1b, -0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xdf,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2c,0x0e,0x07,0x05,0x03,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x12,0x10,0x09,0x03,0x01,0x16,0x13,0x0c,0x0a,0x04,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x4b,0xb0,0x2e,0x50, -0x58,0x40,0x36,0x00,0x0e,0x03,0x02,0x0e,0x57,0x07,0x05,0x02,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x57,0x12,0x10,0x09,0x03,0x01,0x16,0x01,0x13,0x0b,0x01,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40,0x38,0x07,0x05,0x02,0x03, -0x11,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x00,0x0e,0x15,0x01,0x0f,0x12,0x0e,0x0f,0x67,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x67,0x00,0x12,0x16,0x01,0x13,0x0b,0x12,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x59,0x40,0x2e,0x24,0x24,0x1c,0x1c,0x00,0x00,0x24,0x27, -0x24,0x27,0x26,0x25,0x23,0x22,0x21,0x20,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23, -0x37,0x23,0x07,0x01,0x35,0x21,0x15,0x05,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0x0f,0x01,0xb8,0xfc,0x6b,0xa0,0x22,0xa0,0x01,0xbb,0x01,0xb8,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41, -0xd2,0xd2,0xd2,0x01,0xc2,0x50,0x50,0xaf,0xb4,0xff,0x50,0x50,0x00,0x02,0xfd,0xcb,0xff,0x9c,0x02,0x1c,0x02,0xda,0x00,0x1d,0x00,0x21,0x00,0x4f,0x40,0x4c,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63,0x08,0x01, -0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x21,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33, -0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x01,0x33,0x37,0x23,0xfe,0xce,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x02,0xfa,0xfc,0x57,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x4b,0x01,0x77, -0xb4,0x00,0x00,0x00,0x00,0x02,0xfb,0x73,0xff,0x9c,0x01,0xdb,0x03,0x43,0x00,0x2f,0x00,0x33,0x00,0x59,0x40,0x56,0x2e,0x01,0x0d,0x01,0x4b,0x25,0x24,0x02,0x06,0x4a,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63, -0x08,0x01,0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x33,0x32,0x31,0x30,0x00,0x2f,0x00,0x2f,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33, -0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x15,0x01,0x33,0x37,0x23,0xfc,0x76,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x04,0x73,0x42,0x4c,0x49,0x87,0x5c, -0x40,0x5e,0x34,0x32,0x5d,0x3f,0xfa,0x44,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x2a,0x9f,0x63,0xaa,0x62,0x9f,0x6e,0x17,0x55,0x0f,0x55,0x7e,0x4f,0xaa,0x4c,0x7c,0x54,0x10,0x4b,0x01,0x77,0xb4,0x00,0x00,0x00,0xff,0xff,0xfd,0xf3,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27, -0x03,0x3d,0xfd,0xa8,0x00,0x00,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x08,0xb1,0x01,0x01,0xb0,0x82,0xb0,0x35,0x2b,0xff,0xff,0xfb,0x9b,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0x50,0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0x82,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x10,0xb1,0x01,0x01,0xb0, -0x82,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb0,0x82,0xb0,0x35,0x2b,0x00,0x01,0xfe,0x11,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00, -0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0xfe,0x11,0x01,0x63,0x5f,0x80,0x02,0x97,0xfd,0x4a,0x3c,0x02,0xf2,0xfc,0xf0,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfb,0xa0,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b, -0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15, -0x21,0x03,0xfb,0xa0,0x01,0x63,0x5f,0x80,0x05,0x08,0xfa,0xd9,0x3c,0x05,0x63,0xfa,0x7f,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfe,0x16,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0f,0x0b,0x07,0x06,0x05,0x04,0x03,0x07,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfe,0x16,0x01,0x63,0x5f,0x41,0x02,0x3f,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x21,0x12,0xfe,0x1d,0xfe,0xfa,0x6e,0x03,0xac,0xad,0xfe,0xeb,0x64,0xd7,0x5a,0x97,0x09,0x0b, -0x02,0x02,0x0b,0x09,0xe9,0xfd,0x4b,0x00,0xff,0xff,0xfe,0x3e,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x26,0x03,0x3d,0xb5,0x00,0x00,0x07,0x03,0x3d,0xfd,0xf3,0x00,0x00,0x00,0x02,0xfb,0xfa,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x0b,0x00,0x0f,0x00,0x3f,0x40,0x3c,0x06,0x01,0x00,0x01,0x00,0x85,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x86, -0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0x21,0x01,0x33,0x01,0xfd, -0xbd,0x01,0x63,0x5f,0x80,0x02,0xd7,0xfd,0x0a,0x3c,0x03,0x32,0xfc,0xb0,0x6a,0xfd,0xde,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x03,0xac,0xfc,0x54,0xff,0xff,0xfc,0x13,0xff,0x92,0x01,0x95,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0xc8,0x00,0x00,0x00,0x27,0x03,0x3d,0xfd,0xa8,0x00,0x00,0x00,0x06, -0x03,0x3d,0x88,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x06,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x04,0x09,0x18,0x2b,0x05,0x01,0x33,0x01,0x23,0x01,0x27,0x07,0x01,0xfe,0x66,0x01,0x63,0x6e,0x01, -0x63,0x5f,0xfe,0xdc,0x17,0x16,0xfe,0xdc,0x6e,0x03,0xac,0xfc,0x54,0x03,0x0a,0x44,0x44,0xfc,0xf6,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x04,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x14,0x11,0x04,0x09,0x18, -0x2b,0x07,0x01,0x33,0x01,0x17,0x37,0x01,0x33,0x01,0x37,0xfe,0x9d,0x5f,0x01,0x24,0x17,0x16,0x01,0x24,0x60,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0xf6,0x44,0x44,0x03,0x0a,0xfc,0x54,0x00,0x00,0x00,0x01,0xfc,0x22,0xff,0x9c,0x01,0x86,0x02,0xee,0x00,0x07,0x00,0x41,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x02,0x01,0x00,0x04,0x01,0x03,0x00, -0x03,0x63,0x00,0x01,0x01,0x38,0x01,0x4e,0x1b,0x40,0x18,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfc,0x22,0x02,0x85,0x5a, -0x02,0x85,0x64,0x4b,0x03,0x07,0xfc,0xf9,0x4b,0x00,0x00,0x00,0x00,0x01,0xfd,0xe4,0xff,0x9c,0x02,0x1c,0xff,0xe7,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x35,0x21,0x15,0xfd,0xe4,0x04,0x38, -0x64,0x4b,0x4b,0x00,0x00,0x04,0xfe,0x5c,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x19,0x00,0x4e,0x40,0x4b,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x07,0x04,0x05,0x67,0x08,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x07,0x07,0x06,0x61,0x0b,0x01,0x06,0x06, -0x42,0x06,0x4e,0x0d,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x11,0x0c,0x19,0x0d,0x18,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23, -0xfe,0x7e,0x0c,0x6a,0x0c,0xcc,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfd,0x08,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0xf0,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x06,0xfc,0x0e,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, -0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06,0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00, -0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x22,0x26,0x35, -0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x30,0x0c,0x6a,0x0c,0xcc,0x01,0xe5,0x78,0x01,0xe5,0xfb,0xbe,0x01,0xe5,0x78,0x01,0xe5,0xfa,0xba,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00, -0x00,0x01,0x00,0x7d,0xff,0x8d,0x01,0xe5,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x02,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x13,0x03,0x06,0x17,0x2b,0x05,0x03,0x35,0x13,0x33,0x01,0x01,0x01,0x79,0xfc,0xfc,0x66,0xfe,0xe8,0x01,0x1e,0x73,0x01,0x95, -0x7a,0x01,0x93,0xfe,0x2d,0xfe,0x31,0x00,0x00,0x02,0x00,0x64,0xff,0x92,0x02,0x2a,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x0c,0x09,0x08,0x05,0x02,0x01,0x06,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x07,0x07,0x00,0x00,0x07,0x0d,0x07,0x0d,0x0b,0x0a,0x00,0x06,0x00,0x06, -0x13,0x06,0x06,0x17,0x2b,0x05,0x01,0x35,0x01,0x33,0x01,0x01,0x33,0x01,0x35,0x01,0x33,0x01,0x01,0x01,0x75,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x47,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x6e,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x00,0x00,0x02,0x00,0xa0, -0xff,0x92,0x01,0xef,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x01,0x06,0x05,0x02,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b,0x12,0x11,0x11,0x11,0x10,0x07,0x06,0x1b,0x2b,0x05,0x21,0x11,0x21,0x15,0x23,0x11, -0x33,0x01,0x11,0x33,0x11,0x01,0xef,0xfe,0xb1,0x01,0x4f,0xaf,0xaf,0xfe,0xe3,0x3c,0x6e,0x03,0xac,0x2d,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x00,0x01,0x00,0x73,0xff,0x8d,0x01,0xdb,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x04,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, -0x00,0x06,0x00,0x06,0x12,0x03,0x06,0x17,0x2b,0x17,0x01,0x01,0x33,0x13,0x15,0x03,0x73,0x01,0x1e,0xfe,0xe8,0x66,0xfc,0xfc,0x73,0x01,0xcf,0x01,0xd3,0xfe,0x6d,0x7a,0xfe,0x6b,0x00,0x00,0x00,0x02,0x00,0x2e,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x20,0x40,0x1d,0x0d,0x0c,0x09,0x06,0x05,0x02,0x06,0x00,0x01,0x01, -0x4c,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x12,0x13,0x12,0x10,0x04,0x06,0x1a,0x2b,0x17,0x23,0x01,0x01,0x33,0x01,0x15,0x01,0x23,0x01,0x01,0x33,0x01,0x15,0xe3,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0xfe,0x71,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0x6e,0x01,0xd6,0x01,0xd6,0xfe,0x43,0x33,0xfe,0x44,0x01, -0xd6,0x01,0xd6,0xfe,0x43,0x33,0x00,0x00,0x00,0x02,0x00,0x69,0xff,0x92,0x01,0xb8,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x04,0x01,0x01,0x00,0x02,0x01,0x67,0x05,0x01,0x00,0x03,0x03,0x00,0x57,0x05,0x01,0x00,0x00,0x03,0x5f,0x06,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07, -0x11,0x11,0x11,0x07,0x06,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x03,0x23,0x11,0x33,0x69,0xaf,0xaf,0x01,0x4f,0x32,0x3c,0x3c,0x6e,0x2d,0x03,0x52,0x2d,0xfc,0x54,0x03,0x7f,0xfc,0xae,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x09,0x01,0x7e,0x01,0xab,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8, -0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x02,0x06,0x03,0x2c,0x00,0x00,0x00,0x03,0x00,0x5d,0xff,0x74,0x02,0x12,0x03,0x67,0x00,0x1c,0x00,0x25,0x00,0x2e,0x00,0x55,0x40,0x52,0x0b,0x01,0x09,0x01,0x11,0x01,0x0b,0x08,0x17,0x01,0x00,0x0a,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85, -0x0c,0x07,0x02,0x05,0x00,0x05,0x86,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x09,0x09,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x0a,0x0a,0x00,0x5f,0x06,0x01,0x00,0x00,0x39,0x00,0x4e,0x00,0x00,0x2e,0x2c,0x28,0x26,0x25,0x23,0x1f,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1d,0x2b,0x17, -0x35,0x23,0x11,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x23,0x15,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xb3,0x56,0x56,0x3c,0x46,0x3c,0x44,0x4c,0x3a,0x34,0x3b,0x44,0x55,0x4c,0x3c,0x46,0x3a,0x76, -0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x8c,0x8c,0x02,0xda,0x8d,0x8d,0x8d,0x94,0x10,0x5e,0x48,0x3b,0x52,0x0e,0x10,0x60,0x47,0x50,0x68,0x0e,0x91,0x8c,0x8c,0x02,0x2f,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x0b,0x02,0xb2,0x00,0x1b,0x00,0x23,0x00,0x3f, -0x40,0x3c,0x20,0x12,0x0b,0x08,0x04,0x01,0x00,0x1f,0x1a,0x13,0x01,0x04,0x03,0x02,0x02,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x80,0x00,0x02,0x03,0x00,0x02,0x03,0x7e,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x17,0x14,0x19,0x05,0x09,0x19,0x2b,0x05, -0x35,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x11,0x06,0x06,0x15,0x01,0x11,0x55,0x64,0x64,0x55,0x3c,0x55,0x66,0x03,0x5a,0x03,0x34,0x2d,0x2d,0x34,0x03,0x5a,0x03,0x66,0x55,0x9b,0x33,0x2c,0x2c,0x33,0x8c,0x84,0x0a, -0x6d,0x59,0x96,0x59,0x6d,0x0a,0x84,0x83,0x07,0x64,0x52,0x2e,0x38,0x06,0xfe,0x6a,0x06,0x38,0x2e,0x52,0x64,0x07,0x83,0x01,0x54,0x34,0x41,0x0a,0x01,0x94,0x0a,0x40,0x34,0x00,0x00,0x00,0x00,0x02,0x00,0x2b,0x00,0x71,0x02,0x2e,0x02,0x7b,0x00,0x1c,0x00,0x2a,0x00,0x6a,0x40,0x20,0x15,0x13,0x0f,0x0d,0x04,0x03,0x01,0x1b,0x16,0x0c, -0x08,0x04,0x02,0x03,0x1c,0x07,0x05,0x01,0x04,0x00,0x02,0x03,0x4c,0x14,0x0e,0x02,0x01,0x4a,0x06,0x01,0x00,0x49,0x4b,0xb0,0x21,0x50,0x58,0x40,0x13,0x04,0x01,0x02,0x00,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x04,0x01,0x02,0x00,0x00, -0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x02,0x00,0x51,0x59,0x40,0x0d,0x1e,0x1d,0x24,0x22,0x1d,0x2a,0x1e,0x2a,0x2c,0x22,0x05,0x09,0x18,0x2b,0x25,0x27,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x06,0x07,0x17,0x25,0x32,0x36,0x35,0x34, -0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0xef,0x57,0x2e,0x3d,0x3e,0x2f,0x55,0x3e,0x53,0x21,0x22,0x56,0x3f,0x58,0x30,0x3b,0x3f,0x30,0x54,0x3d,0x53,0x1f,0x11,0x0f,0x55,0xfe,0xff,0x38,0x4a,0x4a,0x38,0x25,0x3c,0x23,0x23,0x3c,0x71,0x57,0x1d,0x1d,0x55,0x3e,0x54,0x31,0x3f,0x40,0x31,0x56,0x3f,0x58,0x1c,0x1f,0x54,0x3d, -0x53,0x32,0x3d,0x1f,0x39,0x18,0x55,0x40,0x4c,0x39,0x39,0x4c,0x23,0x3c,0x26,0x26,0x3c,0x23,0x00,0x00,0x00,0x03,0x00,0x48,0xff,0x74,0x02,0x10,0x03,0x66,0x00,0x23,0x00,0x2a,0x00,0x32,0x00,0x3a,0x40,0x37,0x28,0x1a,0x13,0x10,0x04,0x02,0x01,0x32,0x27,0x1b,0x09,0x04,0x00,0x02,0x2b,0x22,0x08,0x01,0x04,0x03,0x00,0x03,0x4c,0x00, -0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x02,0x85,0x00,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x23,0x00,0x23,0x14,0x1c,0x14,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15, -0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x13,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x53,0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83,0x08,0x69,0x56,0x31,0x3e,0x07,0x01, -0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xb0,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x2e,0x00,0x9a,0xb6,0x19, -0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2e,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x00,0x00,0x08,0x59,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x07,0x0c,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x38,0x04,0x4e,0x1b,0x40,0x2f,0x05,0x01, -0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x0c,0x01,0x00,0x0a,0x08,0x00,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x00,0x07,0x07,0x04,0x5f,0x00,0x04,0x04,0x38,0x07,0x4e,0x59,0x40,0x27,0x2b,0x2b,0x1e,0x1d,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x25,0x23,0x1d,0x2a, -0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0f,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15, -0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x74,0x74,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x97,0x01,0xa4,0x32,0x6e,0x5e,0x29,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfe,0x02,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x1e,0x3e,0x46,0x44, -0x40,0x1e,0x40,0x44,0xd0,0x50,0x50,0x00,0x00,0x01,0x00,0x13,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x2b,0x00,0x60,0x40,0x5d,0x00,0x06,0x07,0x04,0x07,0x06,0x04,0x80,0x00,0x0d,0x01,0x0c,0x01,0x0d,0x0c,0x80,0x08,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x67,0x0a,0x01,0x02,0x0b,0x01,0x01,0x0d,0x02,0x01,0x67,0x00,0x07,0x07,0x05, -0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x0c,0x0c,0x00,0x61,0x0e,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x29,0x28,0x26,0x24,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x17,0x15,0x13,0x12,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x2b,0x01,0x2b,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x23, -0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x49,0x49,0x49,0x49,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xad,0xad,0xad,0xad,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62, -0x2d,0x41,0x64,0x41,0x37,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x37,0x41,0x64,0x41,0x2d,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1a,0x00,0x33,0x40,0x30,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x00,0x00,0x07, -0x5f,0x08,0x01,0x07,0x07,0x3d,0x07,0x4e,0x00,0x00,0x00,0x1a,0x00,0x19,0x11,0x12,0x21,0x23,0x11,0x13,0x21,0x09,0x09,0x1d,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0xa0,0xa0,0x51,0x49,0xa1,0xa1,0x40,0xe1,0xe1, -0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x2a,0x52,0xc4,0x42,0x49,0x50,0x3c,0xc3,0x52,0xfe,0xd6,0x58,0x6b,0x00,0x02,0x00,0x32,0xff,0xf6,0x02,0x26,0x02,0xe4,0x00,0x19,0x00,0x31,0x00,0x5a,0x40,0x57,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x80,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x04,0x01,0x00,0x0c,0x01,0x05,0x06,0x00,0x05,0x67, -0x00,0x06,0x0d,0x0b,0x02,0x07,0x09,0x06,0x07,0x67,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x1a,0x1a,0x00,0x00,0x1a,0x31,0x1a,0x31,0x2d,0x2b,0x29,0x28,0x26,0x24,0x1e,0x1d,0x1c,0x1b,0x00,0x19,0x00,0x19,0x16,0x22,0x12,0x26,0x11,0x0e,0x09,0x1b,0x2b,0x13,0x35, -0x21,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x05,0x35,0x21,0x15,0x21,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x32,0x01,0x17,0x25,0x15,0x1c,0x38,0x31,0x38,0x41,0x59,0x02,0x6e,0x61,0x59,0x69, -0x25,0x1e,0x09,0x7b,0xfe,0x0c,0x01,0xf4,0xfe,0xd2,0x10,0x16,0x1b,0x3b,0x31,0x38,0x44,0x59,0x01,0x72,0x61,0x59,0x6c,0x33,0x01,0x8e,0x46,0x20,0x12,0x2b,0x18,0x26,0x27,0x35,0x31,0x55,0x5f,0x4e,0x48,0x22,0x35,0x1b,0x08,0x46,0x92,0x46,0x46,0x0c,0x10,0x2d,0x18,0x25,0x32,0x3f,0x31,0x55,0x69,0x58,0x48,0x3b,0x2b,0x00,0x00,0x00, -0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x18,0x00,0x21,0x00,0x3d,0x40,0x3a,0x09,0x01,0x03,0x05,0x01,0x02,0x01,0x03,0x02,0x67,0x06,0x01,0x01,0x07,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x0a,0x0a,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x00,0x18,0x00, -0x18,0x11,0x11,0x26,0x21,0x11,0x11,0x11,0x11,0x0c,0x09,0x1e,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x15,0x33,0x15,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x50,0x50,0x50,0x50,0xdf,0x42,0x61,0x36,0x36,0x61,0x42,0x85,0xe6,0xe6,0x85,0x39, -0x43,0x43,0x39,0x85,0x9b,0x50,0x55,0x50,0x01,0x4a,0x33,0x5c,0x3e,0x3d,0x5d,0x33,0x55,0x50,0x9b,0x01,0x90,0x44,0x39,0x39,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xe4,0x00,0x2a,0x00,0x42,0x40,0x3f,0x01,0x01,0x07,0x00,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x05,0x01,0x01,0x06,0x01,0x00, -0x07,0x01,0x00,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x16,0x11,0x16,0x22,0x12,0x26,0x11,0x17,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x3e,0x02,0x35,0x34,0x27,0x23,0x35,0x33,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23, -0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x15,0x4b,0x18,0x32,0x23,0x05,0x68,0x4b,0x0e,0x1e,0x14,0x74,0x62,0x63,0x73,0x01,0x5f,0x42,0x37,0x3a,0x40,0x18,0x22,0x0f,0xb9,0xa3,0x03,0x23,0x33,0x18,0x01,0x72,0x64,0x13,0x35,0x39,0x19,0x1b,0x18,0x50,0x1a,0x31,0x39,0x26, -0x55,0x64,0x65,0x59,0x32,0x3c,0x39,0x35,0x23,0x33,0x30,0x1f,0x50,0x14,0x16,0x2b,0x49,0x35,0x0e,0x50,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x17,0x00,0x36,0x40,0x33,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x10,0x03,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x01,0x5f,0x00, -0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x05,0x09,0x19,0x2b,0x21,0x35,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x01,0x00,0xb0,0xb0,0xb0,0xb0,0xd3,0x01,0xfe,0xd3,0xb0,0xb0,0xb0,0xb0,0xb7,0x30, -0x4b,0x30,0x64,0x30,0x4b,0x30,0xda,0x4f,0x4f,0xc2,0x30,0x4b,0x30,0x64,0x30,0x4b,0x30,0xcf,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1c,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x02,0x03,0x01,0x4c,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x68,0x07,0x01,0x00,0x0b,0x0a,0x02,0x08,0x09,0x00,0x08,0x67,0x04, -0x01,0x03,0x03,0x38,0x4d,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x1b,0x1a,0x11,0x11,0x11,0x11,0x18,0x11,0x11,0x11,0x11,0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x3c,0xc3,0xc3, -0xa0,0xb9,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xb9,0xa0,0xc3,0xc3,0xc3,0x5a,0x78,0x4b,0x4b,0x4b,0x01,0x81,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x7f,0x4b,0x4b,0x4b,0x78,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0x4c,0x02,0x0b,0x02,0xda,0x00,0x21,0x00,0x42,0x40,0x3f,0x0b,0x08,0x02,0x02, -0x00,0x20,0x01,0x02,0x05,0x03,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x03,0x02,0x04,0x03,0x7e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x05,0x5f,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x12,0x25,0x22,0x14,0x19,0x07,0x09,0x1b,0x2b,0x05,0x35,0x26,0x26, -0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x01,0x02,0x4e,0x5c,0x5c,0x4e,0x5a,0x4e,0x5e,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x5e,0x4e,0xb4,0xae,0x0d,0x6c,0x55,0x96,0x55,0x6c,0x0d, -0xae,0xad,0x0a,0x63,0x4e,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x4e,0x63,0x0a,0xad,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x4c,0x02,0x10,0x03,0x84,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x02,0x02,0x02,0x00,0x19,0x16,0x02,0x03,0x05,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x05,0x02,0x04,0x05,0x7e,0x00, -0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x05,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x22,0x14,0x1d,0x22,0x14,0x10,0x06,0x09,0x1c,0x2b,0x01,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35, -0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x05,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x54,0x6e,0x0c,0xae,0xad, -0x0b,0x6c,0x58,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0xaa,0x02,0x12,0x02,0x39,0x00,0x1b,0x00,0x1f,0x00,0x86,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x08,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00, -0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x1b,0x40,0x32,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x08,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00, -0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x59,0x40,0x16,0x1c,0x1c,0x00,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0a,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22, -0x15,0x15,0x07,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0x01,0x71,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xc7,0x50,0x50,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b, -0x00,0x17,0x00,0x23,0x00,0x3b,0x40,0x38,0x03,0x01,0x01,0x07,0x02,0x06,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16, -0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x64,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0, -0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0x46,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x02,0x00,0x9e,0xff,0xc9,0x01,0xc6,0x02,0x5d,0x00,0x21,0x00,0x2f,0x00,0x08,0xb5,0x2c,0x25,0x0d,0x00,0x02,0x32,0x2b,0x17,0x35,0x36,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x26, -0x27,0x35,0x16,0x17,0x36,0x37,0x15,0x06,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x07,0x16,0x17,0x15,0x26,0x27,0x06,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0xa8,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x50,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x28,0x2b,0x37,0x37, -0x2b,0x2b,0x37,0x37,0x2b,0x37,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x0e,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x01,0x32,0x43,0x71,0x28,0x28,0x71,0x43,0x14,0x43,0x71,0x28,0x28,0x71,0x43,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x02,0x58, -0x02,0x9b,0x00,0x05,0x00,0x08,0x00,0x0b,0x00,0x0a,0xb7,0x0b,0x09,0x07,0x06,0x01,0x00,0x03,0x32,0x2b,0x35,0x11,0x01,0x01,0x11,0x01,0x17,0x11,0x07,0x05,0x37,0x27,0x01,0x2c,0x01,0x2c,0xfe,0xd3,0xfb,0xd6,0xfe,0xe2,0xd5,0xd5,0x32,0x02,0x69,0xfe,0xef,0x01,0x11,0xfd,0x97,0x01,0x13,0xa0,0x01,0x86,0xc3,0xc5,0xc4,0xc2,0x00,0x00, -0xff,0xff,0x00,0xda,0x00,0xf0,0x01,0x7e,0x01,0x92,0x03,0x07,0x03,0x29,0x00,0x00,0x00,0xfa,0x00,0x08,0xb1,0x00,0x01,0xb0,0xfa,0xb0,0x35,0x2b,0x00,0x04,0x00,0x00,0x00,0x64,0x02,0x58,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x08,0x01,0x00, -0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x04,0x05,0x59,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x05,0x04,0x61,0x0a,0x01,0x04,0x05,0x04,0x51,0x1c,0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06, -0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x50,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0xfd,0xf8,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c, -0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x00,0x00,0x01,0x00,0x9b,0xff,0xf6,0x01,0xc7,0x02,0x30,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x26,0x00,0x02,0x03,0x05,0x03,0x02,0x72,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04, -0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x1b,0x40,0x28,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x1c, -0x1b,0x18,0x16,0x11,0x0f,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x31,0x44,0x52,0x52,0x44,0x44,0x52,0x5a,0x21,0x1b,0x1b,0x21,0x21,0x1b, -0x1b,0x21,0x5a,0x52,0x0a,0x52,0x44,0x01,0x0e,0x44,0x52,0x52,0x44,0x28,0x32,0x1b,0x21,0x21,0x1b,0xfe,0xde,0x1b,0x21,0x21,0x1b,0x32,0x28,0x44,0x52,0x00,0x00,0x00,0x00,0x03,0x00,0x46,0x00,0x4c,0x02,0x12,0x02,0x9e,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x39,0x00,0x02,0x00,0x04,0x01,0x02,0x72, -0x0a,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x1b,0x40,0x3b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x0a,0x01,0x05, -0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x59,0x40,0x1e,0x20,0x20,0x1c,0x1c,0x00,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x1c, -0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0d,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25, -0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0xfe,0x34,0x01,0xcc,0x01,0xd6,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xb2,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02, -0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x28,0x41,0x5a,0xd2,0x5a,0x41,0xb4,0x52,0x03,0x3c,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x52,0x00, -0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x02,0x3c,0x02,0x2a,0x00,0x14, -0x00,0x13,0x40,0x10,0x14,0x10,0x0c,0x0b,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x26,0x27,0x35,0x1e,0x02,0x17,0x3e,0x02,0x37,0x02,0x3c,0x44,0x66,0x37,0x64,0x36,0x63,0x43,0x4d,0x76,0x45,0x06,0x07,0x47,0x78,0x4d,0x01,0xd0,0x08,0x63,0xa2,0x69,0x5a,0x5a, -0x69,0xa2,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x00,0x00,0x00,0x00,0x02,0x00,0x9f,0x00,0xbe,0x01,0xb9,0x01,0xd8,0x00,0x03,0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x27,0x37,0x17,0x07,0x37,0x27,0x07,0x01,0x2c,0x8d,0x8d,0x8d,0x8d,0x54,0x54,0x54,0xbe,0x8d,0x8d,0x8d,0x54,0x54,0x54, -0x54,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0x00,0x00,0x01,0x59,0x02,0xda,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x33,0x11,0xff,0x5a,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x02,0x06, -0x03,0x20,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x01,0xdb,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x0a,0x07,0x04,0x01,0x04,0x03,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x02,0x03,0x85,0x00,0x02,0x02,0x76,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x05,0x06,0x19,0x2b,0x37,0x37, -0x11,0x33,0x15,0x37,0x33,0x07,0x11,0x23,0x35,0x07,0x7d,0x82,0x5a,0x3c,0x46,0x82,0x5a,0x3c,0x8c,0xd1,0x01,0x7d,0xec,0x60,0xd1,0xfe,0x83,0xec,0x60,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0xaa,0x01,0xcc,0x01,0xea,0x00,0x0b,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x03,0x03,0x02, -0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x0c,0x0c,0x01,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xc6,0x01,0x40,0x01,0x54,0x29,0x22, -0x22,0x29,0x29,0x22,0x22,0x29,0xaa,0x50,0x50,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x46,0x02,0x35,0x02,0x8a,0x00,0x15,0x00,0x29,0x00,0x48,0x40,0x45,0x00,0x01,0x00,0x02,0x05,0x01,0x02,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x09,0x01,0x04,0x03,0x07,0x04,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03, -0x00,0x5f,0x08,0x01,0x00,0x03,0x00,0x4f,0x17,0x16,0x01,0x00,0x28,0x26,0x21,0x1f,0x1e,0x1c,0x16,0x29,0x17,0x29,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x0a,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x27,0x22,0x26,0x35,0x35,0x34, -0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x18,0x4a,0x6f,0x3c,0x3c,0x6f,0x4a,0x01,0x1d,0xfe,0xe3,0x4b,0x5a,0x5a,0x4b,0x01,0x1d,0xf4,0x38,0x40,0x40,0x38,0xf4,0xea,0x17,0x1b,0x1b,0x17,0xea,0x46,0x3c,0x6c,0x48,0x64,0x49,0x6b,0x3c,0x46,0x5d,0x4d,0x64,0x4d,0x5d,0x46,0x9b,0x3d,0x36,0x28,0x36, -0x3d,0x46,0x1b,0x17,0x1e,0x17,0x1b,0x46,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19, -0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d, -0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b, -0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x1a,0x18,0x14,0x13,0x12,0x11,0x0d,0x0b,0x0a,0x08,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34, -0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x06,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x01,0x09,0x3e,0x69,0x3f,0x3f,0x69,0x3e,0x01,0x31,0xfe,0xcf,0x27,0x40,0x25,0x01,0xbd,0xfe,0x43,0x25,0x40,0x27,0x01,0x31,0x46,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50, -0x00,0x01,0x00,0xa5,0x00,0xb6,0x01,0xbd,0x01,0xe2,0x00,0x17,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x16,0x14,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x08,0x06,0x00,0x17,0x01, -0x17,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x1a,0x36,0x3f,0x3f,0x36,0xa3,0xa3,0x1f,0x24,0xe6,0xe6,0x24,0x1f,0xa3,0xb6,0x3f,0x36,0x42,0x36,0x3f,0x2d,0x24,0x1f,0x11,0x2a,0x11,0x1f,0x24,0x2d,0x00,0x00,0x03,0x00,0xe6, -0x00,0x19,0x01,0x73,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13, -0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27, -0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x78,0x01,0x68,0x01,0xfe,0xfe,0x02,0x00,0x02,0x00,0x97,0x01,0xd2,0x01,0xc4,0x02,0xb2,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01, -0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x0b,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x97,0x01,0x2d,0xfe,0xd3,0x01,0x2d,0x02,0x7a,0x38,0x38,0xa8,0x38,0x38,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b, -0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06, -0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0x2d,0x00,0x73,0x02,0x2b,0x02,0x21,0x00,0x0f,0x00,0x1f,0x00,0x44,0x40,0x41,0x03,0x01,0x01,0x02,0x01,0x85,0x09,0x07,0x02,0x05, -0x06,0x05,0x86,0x00,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x10,0x10,0x01,0x00,0x10,0x1f,0x10,0x1f,0x1d,0x1a,0x18,0x17,0x15,0x12,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x0a,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33, -0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x01,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0xf5,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x5a,0x6c,0x5c,0xfe,0xca,0x6c,0x5c,0x6e,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x01,0x77,0x5c,0x4e,0x29,0x31,0x31,0x29,0x4e,0x5c,0xfe,0xfc,0x4e,0x5c,0x5c, -0x4e,0x29,0x31,0x31,0x29,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x02,0x58,0x02,0x2b,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11, -0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x21,0x15,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x08,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c, -0xfd,0xd4,0x01,0x5e,0xaa,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x01,0x95,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x73,0x50,0x50,0xb9,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x01,0xf4,0x02,0xda,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01, -0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x21,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x50,0x01,0x4a,0xfe,0xd9,0x01,0x27,0xfe,0xb6,0x01,0xa4,0x52,0x01,0x02,0x52,0xe2, -0x52,0xfd,0x26,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x2a,0x40,0x27,0x08,0x01,0x01,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x04,0x04,0x04,0x0c,0x04,0x0c,0x11,0x10,0x04,0x06,0x18,0x2b,0x13,0x21, -0x03,0x23,0x03,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x32,0x01,0xf4,0xbd,0x7b,0x4c,0x69,0x0d,0x11,0x04,0x04,0x13,0x0d,0x65,0x02,0xda,0xfd,0x26,0x02,0x8a,0xfe,0x5f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xa0,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xfb,0x02,0x08,0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x7d,0x40,0x0a,0x0c,0x0b, -0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x4b,0xb0,0x11,0x50,0x58,0x40,0x27,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x06,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00,0x02,0x04, -0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x13,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07,0x06,0x16,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26, -0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x4d,0x47,0x3b,0x23,0x30,0x26,0x23,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x31,0x25,0x24,0x15, -0x16,0x19,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x00,0x00,0x01,0x00,0x23,0x00,0xb5,0x02,0x34,0x01,0xdf,0x00,0x25,0x00,0x2b,0x40,0x28,0x04,0x01,0x01,0x06,0x01,0x03,0x02,0x01,0x03,0x69,0x07,0x01, -0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x14,0x24,0x24,0x11,0x14,0x24,0x24,0x10,0x08,0x06,0x1e,0x2b,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x23,0x22,0x06,0x15, -0x14,0x16,0x33,0xb1,0x43,0x4b,0x4a,0x43,0x35,0x4d,0x13,0x16,0x16,0x36,0x20,0x22,0x23,0x20,0x44,0x4a,0x49,0x44,0x37,0x50,0x12,0x17,0x14,0x33,0x1f,0x23,0x23,0x20,0xb5,0x4e,0x46,0x47,0x4f,0x39,0x34,0x3d,0x3d,0x2b,0x28,0x26,0x2a,0x44,0x4d,0x47,0x47,0x4f,0x3a,0x34,0x42,0x38,0x2c,0x28,0x26,0x2a,0x00,0x00,0x00,0x01,0xff,0xb0, -0x00,0x71,0x02,0xa8,0x02,0x24,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x60,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x25,0x37,0x21,0x37,0x33,0x07,0x21,0x07,0x01,0x7f,0xbd,0xfd, -0x74,0xe9,0x40,0xbd,0x02,0x8c,0xe9,0x71,0xc3,0xf0,0xc3,0xf0,0x00,0x02,0x00,0x0a,0x00,0xeb,0x02,0x44,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x34,0x40,0x31,0x00,0x02,0x00,0x05,0x03,0x02,0x05,0x69,0x00,0x03,0x00,0x00,0x04,0x03,0x00,0x67,0x06,0x01,0x04,0x01,0x01,0x04,0x59,0x06,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x04,0x01,0x51, -0x10,0x0f,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x12,0x24,0x22,0x10,0x07,0x06,0x1a,0x2b,0x01,0x21,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x21,0x05,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x44,0xfe,0x82,0x07,0x33,0x23,0x28,0x37,0x37,0x28,0x23,0x33,0x07,0x01,0x7e,0xfe,0x25,0x18,0x1f,0x1f, -0x18,0x18,0x1f,0x1f,0x01,0x35,0x21,0x29,0x37,0x28,0x29,0x36,0x29,0x21,0x4c,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xe5,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00, -0x09,0x07,0x05,0x04,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x33,0x15,0x01,0xb8,0x58,0x61,0x5a,0x5f,0x2d,0x6e,0x57,0x4f,0x03,0xc4,0xfc,0x3c,0x56,0x50,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x16,0x00,0x30,0x40,0x2d,0x12,0x01,0x00,0x01,0x01,0x4c,0x00,0x02, -0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x14,0x21,0x24,0x05,0x06,0x19,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x16,0x16,0x15,0x11,0xff,0x0e,0x2b, -0x2b,0x6e,0x6e,0x2c,0x2a,0x0e,0x5a,0x33,0x32,0x31,0x34,0xfe,0xd4,0x02,0x08,0x24,0x2c,0x14,0x50,0x14,0x2d,0x23,0x02,0x08,0xfd,0xf8,0x39,0x4a,0x09,0x09,0x4a,0x39,0xfd,0xf8,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xe5,0x03,0x3e,0x00,0x0a,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59, -0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0a,0x00,0x0a,0x21,0x23,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0xff,0x61,0x58,0x2d,0x2d,0x5f,0xfe,0xd4,0x03,0xc4,0x4f,0x57,0x50,0x56,0xfc,0x3c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08, -0x00,0x0b,0x00,0x08,0xb5,0x0b,0x09,0x04,0x03,0x02,0x32,0x2b,0x25,0x07,0x25,0x01,0x11,0x01,0x25,0x17,0x05,0x05,0x37,0x27,0x02,0x58,0x22,0xfe,0xf5,0xfe,0xd5,0x01,0x2c,0x01,0x0b,0x21,0xfe,0xf8,0xfe,0xe2,0xd5,0xd5,0x75,0x26,0xf6,0xfe,0xed,0x02,0x69,0xfe,0xef,0xf2,0x24,0xf0,0xc5,0xc4,0xc2,0x00,0x00,0x00,0x00,0x01,0x00,0xff, -0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xf4,0x03,0xfc,0x00,0x05,0x00,0x24,0x40,0x21, -0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xff,0x5a,0x9b,0x6e,0x04,0x6a,0xfb,0xe6,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xf4,0x03,0x3e,0x00,0x05, -0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x15,0x23,0x11,0xff,0xf5,0x9b,0xfe,0xd4,0x04,0x6a,0x50,0xfb,0xe6,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17, -0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x3b,0x40,0x38,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x01,0x04,0x03,0x01,0x59,0x02,0x01,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07, -0x06,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x3e,0x47,0x3b,0x23,0x39, -0x32,0x2c,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x3a,0x31,0x2d,0x15,0x16,0x19,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x00,0x03,0xff,0xf6,0x01,0x08,0x02,0x62,0x01,0x94,0x00,0x0b,0x00,0x17,0x00,0x23, -0x00,0x37,0x40,0x34,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x59,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06,0x05,0x00,0x01,0x00,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0x08,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27, -0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x41,0xff,0xec,0x02,0x17,0x02,0x26,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x00,0x04,0x03,0x04,0x86,0x00,0x00,0x07,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03, -0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x23,0x46,0x01,0xcc,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x02,0x26,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08, -0xb5,0x17,0x0d,0x0a,0x00,0x02,0x32,0x2b,0x25,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x05,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x01,0x0e,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0xfd,0xa8,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0x41,0x53,0x96,0x0c,0x11,0x04, -0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0xe4,0x53,0x96,0x0c,0x11,0x04,0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08,0xb5,0x10,0x0d,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x05,0x25,0x35,0x25,0x15,0x07,0x06, -0x06,0x07,0x16,0x16,0x17,0x17,0x02,0x58,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0xfe,0xf2,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0x41,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x53,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x00,0x02,0x00,0x14, -0x00,0xeb,0x02,0x4e,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x37,0x00,0x01,0x00,0x05,0x00,0x01,0x05,0x69,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x07,0x01,0x04,0x02,0x02,0x04,0x59,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x04,0x02,0x51,0x10,0x0f,0x00,0x00,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x00,0x0e,0x00,0x0e,0x24, -0x22,0x11,0x08,0x06,0x19,0x2b,0x13,0x35,0x21,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x14,0x01,0x7e,0x07,0x33,0x23,0x29,0x36,0x36,0x29,0x23,0x33,0x07,0x5d,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x1f,0x01,0x35,0x2a,0x21,0x29,0x36,0x29,0x28,0x37,0x29, -0x21,0x22,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x02,0x01,0x00,0x06,0x00,0x85,0x00,0x06,0x05,0x06,0x85,0x0a,0x01,0x09,0x04,0x01,0x04,0x09,0x01,0x80,0x07,0x01,0x05,0x08,0x01,0x04,0x09,0x05,0x04,0x67,0x00,0x01,0x03,0x03, -0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x14,0x14,0x14,0x1f,0x14,0x1f,0x11,0x11,0x11,0x11,0x14,0x33,0x13,0x33,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x17,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x46, -0x32,0x51,0x4a,0x32,0x4a,0x51,0x32,0x68,0x63,0x36,0x63,0x68,0xd2,0x78,0x78,0x28,0x78,0x78,0x02,0xda,0xfd,0xee,0x4a,0x51,0x51,0x4a,0x02,0x12,0xfd,0xee,0x61,0x67,0x67,0x61,0x73,0x79,0x26,0x79,0x79,0x26,0x79,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f, -0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b, -0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a, -0x4a,0x76,0x44,0x44,0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x07,0x00,0x20,0x40,0x1d, -0x03,0x01,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x2b,0x02,0x02,0x5a,0xfe,0xb2,0x5a,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, -0x02,0xda,0x00,0x07,0x00,0x26,0x40,0x23,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x04,0x01,0x03,0x01,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x2b,0x5a,0x01,0x4e,0x5a,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd, -0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0c,0x01,0x03,0x02,0x01,0x4c,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x06,0x04,0x02,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04, -0x10,0x04,0x10,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x2d,0x01,0xfe,0xfe,0x11,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f, -0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00,0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36, -0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01, -0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44,0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44, -0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x46,0xff,0x9c,0x02,0x12,0x03,0x0c,0x00,0x2f,0x00,0xc6,0x40,0x0a,0x17,0x01,0x07,0x03,0x07,0x01,0x04,0x07,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x46,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x07,0x08,0x72,0x00,0x04,0x07,0x09,0x03,0x04,0x72, -0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x1b,0x40,0x48,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x05, -0x08,0x03,0x80,0x00,0x04,0x07,0x09,0x07,0x04,0x09,0x80,0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x59,0x40, -0x1e,0x00,0x00,0x00,0x2f,0x00,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x23,0x21,0x12,0x11,0x14,0x23,0x12,0x24,0x11,0x11,0x11,0x11,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x37,0x33,0x07,0x36,0x35,0x35,0x33,0x15,0x14, -0x06,0x23,0x22,0x27,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x46,0x87,0x2f,0xb6,0xd0,0x29,0x1a,0x22,0x21,0x18,0x2f,0x55,0x47,0x3b,0x2b,0x35,0x23,0x0f,0x47,0x3f,0x51,0x2e,0x55,0x47,0x3b,0x0e,0x0c,0x21,0xbd,0xd7,0x2f,0x01,0x06,0xfe,0xe0,0x3b,0x3f,0x3b,0x4c,0x4c,0x8c,0x4c,0x7a,0x13,0x31,0x25,0x37,0x46,0x46, -0x3b,0x47,0x21,0x2f,0x13,0xd1,0xf0,0x01,0x36,0x46,0x46,0x3a,0x48,0x02,0x63,0x4c,0x8c,0x4c,0xb0,0xb0,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x1d,0x00,0x26,0x00,0xcc,0x40,0x0a,0x21,0x01,0x06,0x05,0x05,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x32,0x00,0x03,0x02,0x02,0x03,0x70,0x0c,0x01,0x0a, -0x00,0x00,0x0a,0x71,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x00,0x0a,0x71,0x04,0x01,0x02, -0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x40,0x30,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x0a,0x86,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06, -0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x59,0x59,0x40,0x16,0x00,0x00,0x24,0x22,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x11,0x11,0x11,0x11,0x11,0x11,0x28,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37, -0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x03,0x14,0x16,0x17,0x13,0x23,0x22,0x06,0x15,0x66,0x28,0x5c,0x7a,0x2d,0x53,0x63,0x3a,0x67,0x45,0x7f,0x37,0x46,0x37,0x6c,0x8a,0x74,0xfe,0xfe,0xe4,0x2c,0x01,0x48,0xfe,0x9a,0x28,0x2f,0x3f,0x3a,0x74,0x61,0x43,0x49,0x6e,0x6e,0x52,0x7a,0x0d,0x73,0x56,0x2c, -0x42,0x62,0x36,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x02,0x12,0x3d,0x47,0x05,0x01,0x3b,0x48,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x21,0x00,0x29,0x00,0x91,0x40,0x0a,0x11,0x01,0x03,0x04,0x24,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85, -0x00,0x09,0x08,0x08,0x09,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x09,0x08,0x09,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03, -0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x59,0x40,0x16,0x00,0x00,0x27,0x25,0x00,0x21,0x00,0x21,0x20,0x1f,0x11,0x11,0x28,0x12,0x21,0x22,0x11,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x35,0x33, -0x13,0x26,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0x8e,0x2c,0xba,0xd8,0x73,0x0c,0x0e,0xfe,0xcf,0x01,0x31,0x1d,0x1a,0x39,0x46,0x40,0x34,0x3c,0x3a,0x67,0x45,0x31,0x2c,0x01,0x34,0xfe,0xae,0x28, -0x46,0x28,0x01,0x4d,0x34,0x6b,0x13,0x43,0x49,0x52,0x76,0x52,0x01,0x3a,0x02,0x52,0x05,0x9b,0xb0,0x1a,0x63,0x43,0x2c,0x41,0x63,0x36,0x76,0x52,0x6e,0x6e,0x01,0xcc,0x4f,0x23,0xfe,0xdc,0x48,0x42,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0a,0x01,0x04,0x02,0x01,0x4c, -0x03,0x01,0x02,0x01,0x04,0x01,0x02,0x04,0x80,0x06,0x01,0x04,0x04,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x10,0x04,0x10,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x03,0x33,0x13,0x16,0x16,0x17,0x36, -0x36,0x37,0x13,0x33,0x03,0x2d,0x01,0xfe,0xfe,0xc4,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x03,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25, -0x09,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x03,0x11,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x03,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0x4c,0xea,0x13, -0x21,0x08,0x09,0x22,0x11,0x78,0x01,0xae,0xbe,0xd7,0x64,0xd7,0xfe,0x6f,0x01,0x13,0x72,0x09,0x0c,0x02,0x02,0x0e,0x08,0xfe,0x4f,0x50,0x50,0x00,0x00,0x01,0x00,0x46,0xff,0xc4,0x02,0x12,0x03,0x0c,0x00,0x3f,0x00,0xe4,0x40,0x18,0x15,0x01,0x01,0x06,0x18,0x01,0x05,0x01,0x26,0x07,0x02,0x02,0x05,0x27,0x06,0x02,0x0c,0x09,0x37,0x01, -0x08,0x0c,0x05,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x4f,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x05,0x06,0x72,0x00,0x02,0x05,0x07,0x01,0x02,0x72,0x00,0x09,0x00,0x0c,0x08,0x09,0x72,0x0e,0x01,0x0d,0x08,0x0a,0x0c,0x0d,0x72,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05, -0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x1b,0x40,0x53,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x03,0x06,0x01,0x80,0x00,0x02,0x05,0x07,0x05,0x02,0x07,0x80,0x00,0x09,0x00,0x0c,0x00,0x09,0x0c,0x80,0x0e,0x01,0x0d,0x08,0x0a,0x08, -0x0d,0x0a,0x80,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05,0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x59,0x40,0x1a,0x00,0x00,0x00,0x3f,0x00,0x3f,0x3d,0x3b,0x39,0x38,0x34,0x32,0x2f, -0x2e,0x26,0x23,0x12,0x23,0x13,0x23,0x12,0x24,0x23,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x26,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x07,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06, -0x23,0x22,0x26,0x26,0x27,0x07,0x23,0x13,0x26,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x1a,0x16,0x25,0x15,0x23,0x1b,0x2f,0x55,0x48,0x3a,0x2c,0x36,0x12,0x65,0x3f,0x78,0x08,0x13,0x0b,0x2f,0x55,0x47,0x3b,0x14,0x21,0x0d,0x23,0x13,0x1d,0x1e,0x15,0x2f,0x55,0x47,0x3b,0x24,0x30,0x21,0x0e,0x56,0x3f,0x67,0x0a,0x0b,0x2f,0x6e,0x46,0x3b, -0x47,0x08,0x6a,0x1a,0x2e,0x37,0x46,0x46,0x3b,0x47,0x25,0x17,0x01,0x1d,0xfe,0xad,0x07,0x09,0x37,0x46,0x46,0x3a,0x48,0x09,0x07,0x61,0x13,0x29,0x1d,0x37,0x46,0x46,0x3a,0x48,0x18,0x25,0x12,0xf4,0x01,0x22,0x05,0x37,0x46,0x00,0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x92,0x40,0x0a, -0x10,0x01,0x03,0x04,0x20,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x06,0x07,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00, -0x06,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x07,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00,0x06,0x4f,0x59,0x40,0x17,0x00,0x00,0x27,0x25,0x24,0x23,0x22,0x21, -0x00,0x1c,0x00,0x1c,0x11,0x28,0x12,0x21,0x21,0x11,0x11,0x11,0x0d,0x06,0x1e,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x26,0x27,0x07,0x33,0x15,0x23,0x07,0x33,0x32,0x36,0x36,0x35,0x23,0x9f,0x3c,0xdb,0xf8, -0x3c,0x03,0xfe,0xcf,0x01,0x31,0x0f,0x0f,0x2f,0x3f,0x34,0x3e,0x50,0x3f,0x68,0x3f,0x6f,0x2e,0x3f,0x2e,0x01,0x3a,0x2c,0x23,0x37,0x86,0xa3,0x3c,0x53,0x28,0x3f,0x25,0x46,0x50,0xaa,0x50,0xaa,0x50,0x02,0x84,0x92,0x19,0x6b,0x46,0x90,0x3e,0x63,0x39,0x82,0x82,0x01,0x68,0x28,0x45,0x11,0x9c,0x50,0xaa,0x27,0x40,0x25,0x00,0x00,0x00, -0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1d,0x00,0x25,0x00,0x2b,0x00,0x90,0x40,0x0a,0x29,0x01,0x06,0x05,0x01,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x01,0x00,0x00,0x01,0x70,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01, -0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x1b,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06, -0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x59,0x40,0x17,0x00,0x00,0x2b,0x2a,0x22,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x21,0x31,0x11,0x11,0x11,0x11,0x11,0x28,0x0d,0x06,0x1e,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x32,0x33,0x21,0x15,0x21,0x22,0x27,0x07, -0x03,0x33,0x37,0x23,0x22,0x06,0x06,0x15,0x15,0x14,0x16,0x17,0x37,0x23,0x78,0x34,0x3c,0x4d,0x3f,0x69,0x3e,0x6a,0x2e,0x3f,0x2e,0x88,0xa4,0x3c,0xe0,0xfd,0x3c,0x04,0x04,0x01,0x31,0xfe,0xcf,0x12,0x11,0x2f,0x3a,0x9e,0x3c,0x4e,0x27,0x40,0x25,0x29,0x22,0x36,0x81,0x3c,0x94,0x19,0x6a,0x45,0x90,0x3e,0x63,0x39,0x82,0x82,0x50,0xaa, -0x50,0xaa,0x50,0x03,0x85,0x01,0xcc,0xaa,0x27,0x40,0x25,0x8c,0x27,0x43,0x12,0x9a,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x99,0x00,0x29,0x00,0x57,0x40,0x54,0x11,0x01,0x03,0x02,0x26,0x01,0x08,0x09,0x02,0x4c,0x00,0x04,0x02,0x04,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x0c,0x0b,0x02,0x08,0x09,0x0a,0x09,0x08,0x0a,0x80,0x00, -0x0a,0x0a,0x84,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x01,0x69,0x07,0x01,0x00,0x09,0x09,0x00,0x59,0x07,0x01,0x00,0x00,0x09,0x61,0x00,0x09,0x00,0x09,0x51,0x00,0x00,0x00,0x29,0x00,0x29,0x25,0x24,0x23,0x21,0x12,0x22,0x12,0x14,0x11,0x22,0x12,0x22,0x12,0x0d,0x06,0x1f,0x2b,0x37,0x34,0x36,0x33,0x33,0x37,0x23,0x22,0x26,0x35,0x33, -0x14,0x16,0x33,0x33,0x37,0x33,0x07,0x36,0x36,0x35,0x33,0x14,0x06,0x23,0x23,0x07,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x07,0x23,0x37,0x06,0x06,0x15,0x2d,0x6c,0x5c,0x04,0x21,0x25,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4d,0x46,0x4c,0x27,0x2c,0x5a,0x6c,0x5c,0x03,0x21,0x24,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4b,0x46,0x4b,0x28, -0x2c,0x73,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xd2,0xd0,0x06,0x2e,0x24,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xcd,0xcb,0x06,0x2e,0x24,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x23,0x40,0x20,0x16,0x12,0x11,0x0f,0x0b,0x0a,0x09,0x06,0x05,0x04,0x03,0x01,0x00,0x0d,0x01,0x00,0x01,0x4c, -0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x17,0x02,0x06,0x18,0x2b,0x37,0x35,0x37,0x37,0x27,0x35,0x17,0x37,0x33,0x03,0x17,0x15,0x07,0x07,0x23,0x37,0x37,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x87,0x41,0xc8,0xe2,0x56,0x3f,0x5f,0x96,0xff,0x4d,0x3f,0x40,0xd3,0x38,0x2b,0x63,0x13,0x21,0x08,0x09,0x22,0x41,0x57, -0x42,0xbc,0x63,0x5a,0x71,0xf8,0xfe,0xed,0x4b,0x64,0x7f,0xdf,0xb8,0xee,0x1c,0x7d,0x31,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x0f,0x0e,0x0d,0x0a,0x09,0x08,0x07,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50, -0x58,0x40,0x1f,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03, -0x00,0x03,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x15,0x19,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x07,0x35,0x37,0x37,0x27,0x35,0x05,0x37,0x33,0x07,0x17,0x15,0x07,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x63,0x40,0xa3,0xc5,0x2d,0xf2,0x01,0x0c,0x40, -0x3f,0x49,0x6c,0xc0,0x4c,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0xee,0x0e,0x18,0x26,0x13,0x21,0x08,0x09,0x22,0x52,0xbe,0x51,0x57,0x60,0x89,0x78,0x5a,0x86,0xc1,0xdc,0x36,0x64,0x60,0xe4,0x52,0x6e,0x6e,0x01,0xde,0x07,0x4a,0x13,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x02,0xd9,0x00,0x1b, -0x00,0xca,0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x4b,0xb0, -0x0a,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85, -0x00,0x0c,0x0b,0x0c,0x86,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x21,0x07,0x23,0x37,0x55,0x7c,0x2e,0xaa,0xc2,0x2e,0xf0,0x01,0x09,0x2f,0x3f,0x2f,0x66,0x7f,0x2e,0xad,0xc5,0x2e,0xf3,0xfe,0xf4,0x2c,0x3f,0x2c, -0x4c,0x4c,0x8c,0x4c,0x8c,0x4c,0x91,0x91,0x4c,0x8c,0x4c,0x8c,0x4c,0x88,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x29,0x40,0x26,0x16,0x12,0x11,0x0e,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x03,0x02,0x01,0x0d,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, -0x00,0x0f,0x00,0x0f,0x15,0x03,0x06,0x17,0x2b,0x17,0x13,0x27,0x35,0x37,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x03,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x78,0x62,0x85,0xe7,0x51,0x3f,0x44,0x7b,0x9f,0x3a,0xd9,0xf3,0x59,0x16,0x27,0x24,0x4b,0x13,0x21,0x08,0x09,0x22,0x46,0x01,0x1b,0x43,0x64,0x73,0xeb,0xc5, -0x3e,0x57,0x4e,0xa8,0x6b,0x5a,0x7a,0xfe,0xff,0x01,0x7a,0x13,0x68,0x25,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x10,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1f,0x00, -0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x59, -0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x15,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x27,0x35,0x25,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x55,0x63,0x4e,0xb1,0x01,0x20,0x2c,0x3f,0x1f,0x42,0x64,0x49,0xad,0xc7, -0x45,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0x30,0x53,0x33,0x86,0x13,0x21,0x08,0x09,0x22,0x52,0xea,0x59,0x64,0x90,0x83,0x5d,0x21,0x57,0x31,0xda,0x56,0x5a,0x63,0xcf,0x52,0x6e,0x6e,0x01,0xb1,0x29,0x9b,0x42,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x17,0x00,0x1b,0x00,0xca, -0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x03,0x02,0x02,0x03,0x70,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x4b,0xb0,0x0c,0x50, -0x58,0x40,0x33,0x00,0x03,0x02,0x03,0x85,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x00,0x0a, -0x09,0x0a,0x86,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x1b,0x1a,0x19,0x18,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x11,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x03,0x33,0x13,0x23,0x23,0x88,0x2c,0xb4,0x01,0x64,0x37,0x46,0x37,0x6d,0x8b,0x74,0xff,0xfe,0xe3,0x2c,0x01,0x49,0xfe,0x99,0x28,0x46,0x28,0x10,0x78,0x74, -0xec,0x52,0x76,0x01,0xe0,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x6e,0x01,0x1a,0x01,0x3c,0x00,0x00,0x02,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x43,0x40,0x40,0x1a,0x01,0x04,0x03,0x01,0x01,0x05,0x04,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x08,0x01,0x06,0x05,0x06,0x86,0x02,0x01,0x00,0x07,0x01, -0x03,0x04,0x00,0x03,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x00,0x00,0x1d,0x1b,0x00,0x17,0x00,0x17,0x21,0x11,0x11,0x11,0x11,0x28,0x09,0x06,0x1c,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x21,0x15,0x21,0x22,0x27,0x07,0x03, -0x14,0x17,0x13,0x23,0x22,0x06,0x15,0x78,0x43,0x46,0x52,0x3a,0x67,0x45,0x58,0x40,0x3f,0x40,0x9a,0xb7,0x6f,0x01,0x26,0xfe,0xcf,0x09,0x09,0x40,0x3a,0x5a,0x6d,0x3b,0x43,0x49,0x3c,0xbe,0x14,0x6e,0x4e,0x2c,0x42,0x62,0x36,0xb4,0xb4,0x52,0xfe,0xc4,0x52,0x01,0xb5,0x01,0x90,0x6b,0x19,0x01,0x36,0x48,0x42,0x00,0x00,0x02,0x00,0x1e, -0xff,0xc4,0x02,0x35,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x44,0x40,0x41,0x0b,0x01,0x01,0x02,0x1a,0x01,0x00,0x01,0x02,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x05,0x04,0x05,0x86,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x07,0x01,0x00,0x04,0x04,0x00,0x59,0x07,0x01,0x00,0x00,0x04,0x5f,0x08,0x06,0x02,0x04,0x00,0x04,0x4f,0x00,0x00, -0x1d,0x1b,0x00,0x17,0x00,0x17,0x11,0x28,0x12,0x21,0x11,0x11,0x09,0x06,0x1c,0x2b,0x37,0x35,0x33,0x13,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0xb7,0x6f,0xfe,0xda,0x01,0x31,0x09,0x09,0x40,0x3f,0x43,0x46,0x52,0x3a,0x67, -0x45,0x58,0x40,0x3f,0x40,0x01,0x23,0x5a,0x6d,0x3b,0x43,0x49,0x78,0x52,0x01,0x3c,0x52,0x01,0xb5,0xbe,0x14,0x6e,0x4e,0x2c,0x41,0x63,0x36,0xb4,0xb4,0x01,0x04,0x6b,0x19,0xfe,0xca,0x48,0x42,0x00,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x5f,0x02,0x17,0x02,0x35,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x16,0x03,0x01,0x01, -0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x3b,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07, -0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x00,0xbf,0xbf,0x58,0xbf,0xbf,0x5f,0xc3,0x50,0xc3,0xc3,0x50,0xc3,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x88,0x01,0xee,0x02,0x0e,0x00,0x0b,0x00,0x06,0xb3,0x06, -0x00,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x9c,0x33,0x8d,0x8d,0x33,0x8e,0x91,0x33,0x91,0x8e,0x34,0x8d,0x88,0x34,0x8d,0x8e,0x33,0x8d,0x91,0x34,0x91,0x8d,0x34,0x8e,0x00,0x03,0x00,0x64,0x00,0x37,0x01,0xf4,0x02,0x62,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01, -0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11,0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34, -0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xee,0x01,0x90,0xc8,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xcc,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xa5,0x4b,0x4b,0xf0,0x29,0x22,0x22,0x29,0x29,0x22,0x22, -0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06, -0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x03,0x0c,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02, -0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x78,0x51,0x74,0x91,0x38, -0xc9,0xe5,0x67,0x3f,0x67,0x8a,0xa6,0x38,0xde,0xfb,0x51,0x3c,0xe6,0x50,0xa0,0x50,0x01,0x22,0xfe,0xde,0x50,0xa0,0x50,0xe6,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x0a,0x00,0x01,0x32,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09, -0x22,0x11,0xfe,0xca,0x01,0xae,0x41,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x03,0x00,0x01,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, -0x09,0x22,0x11,0x01,0x36,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x0b,0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, -0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x21,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x52,0x01,0xae,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x50,0x50,0x00, -0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, -0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x52,0x01,0xae,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0x3a,0x00,0x0f,0x00,0x56,0x4b,0xb0, -0x18,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x3b,0x4d,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x1c,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e, -0x59,0x40,0x10,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x46,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x46,0xff,0xff,0x00,0x46,0x00,0x69,0x02,0x12,0x02,0x2b,0x02,0x26, -0x04,0x22,0x00,0x64,0x01,0x07,0x04,0x22,0x00,0x00,0xff,0x6f,0x00,0x11,0xb1,0x00,0x01,0xb0,0x64,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0xff,0x6f,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x64,0x00,0xb9,0x01,0xf4,0x01,0x8b,0x00,0x05,0x00,0x46,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00, -0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x15,0x01,0x9f,0xfe,0xc5,0x01,0x90, -0xb9,0x82,0x50,0xd2,0x00,0x01,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x00,0x1b,0x00,0x68,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x02,0x01,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00, -0x02,0x04,0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x0e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x07,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x37,0x35,0x34,0x36,0x33,0x32, -0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0xff,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x50, -0x01,0x54,0x02,0x08,0x02,0xda,0x00,0x0c,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x50,0xb3, -0x54,0xb1,0x51,0x70,0x08,0x0d,0x03,0x04,0x0e,0x09,0x73,0x01,0x54,0x01,0x86,0xfe,0x7a,0x01,0x02,0x14,0x25,0x0a,0x0a,0x25,0x14,0xfe,0xfe,0x00,0x00,0x03,0x00,0x23,0x00,0xa0,0x02,0x35,0x01,0xf9,0x00,0x1b,0x00,0x2a,0x00,0x39,0x00,0x4b,0x40,0x48,0x17,0x09,0x02,0x04,0x05,0x01,0x4c,0x02,0x01,0x01,0x07,0x01,0x05,0x04,0x01,0x05, -0x69,0x0a,0x06,0x09,0x03,0x04,0x00,0x00,0x04,0x59,0x0a,0x06,0x09,0x03,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x04,0x00,0x51,0x2c,0x2b,0x1d,0x1c,0x01,0x00,0x33,0x31,0x2b,0x39,0x2c,0x39,0x25,0x23,0x1c,0x2a,0x1d,0x2a,0x16,0x14,0x0f,0x0d,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0b,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x35,0x34,0x36, -0x33,0x32,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x0e,0x02,0x27,0x32,0x3e,0x02,0x37,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x17,0x16,0xa6,0x3b,0x48,0x4c,0x3d,0x66,0x24,0x03,0x05,0x1d,0x33,0x24,0x3b,0x48,0x4b,0x3e,0x66, -0x24,0x03,0x04,0x1e,0x32,0x1c,0x1d,0x24,0x15,0x0a,0x01,0x1f,0x16,0x2c,0x1f,0x27,0x27,0x01,0x19,0x20,0x26,0x26,0x20,0x1c,0x25,0x15,0x0a,0x01,0x1f,0x16,0xa0,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x16,0x2d,0x20,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x15,0x2e,0x20,0x3c,0x17,0x20,0x1c,0x06,0x54,0x34,0x29,0x22,0x4b,0x22,0x29,0x29,0x22,0x4b, -0x22,0x29,0x17,0x20,0x1c,0x06,0x54,0x34,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x18,0x00,0x22,0x00,0x2c,0x00,0x4f,0x40,0x4c,0x0d,0x0a,0x02,0x04,0x00,0x2b,0x2a,0x1d,0x1c,0x04,0x05,0x04,0x17,0x01,0x02,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x04,0x05,0x00, -0x04,0x69,0x07,0x01,0x05,0x02,0x02,0x05,0x59,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x05,0x02,0x51,0x24,0x23,0x00,0x00,0x23,0x2c,0x24,0x2c,0x20,0x1e,0x00,0x18,0x00,0x18,0x27,0x12,0x27,0x08,0x06,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26, -0x27,0x07,0x03,0x14,0x16,0x17,0x13,0x26,0x23,0x22,0x06,0x06,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x16,0x14,0x50,0x33,0x3b,0x51,0x8d,0x58,0x4f,0x43,0x3f,0x47,0x54,0x35,0x3d,0x51,0x8c,0x59,0x2a,0x4c,0x21,0x3a,0x0b,0x24,0x20,0xfc,0x2e,0x36,0x3f,0x63,0x3a,0xdc,0x3f,0x63,0x3a,0x27,0x21,0xfd,0x30,0x77,0x2a,0x7d,0x4a, -0x59,0x8c,0x51,0x22,0x5e,0x7e,0x2a,0x7e,0x4c,0x58,0x8d,0x51,0x13,0x12,0x57,0x01,0x68,0x33,0x57,0x1f,0x01,0x78,0x17,0x3c,0x68,0xfe,0xd8,0x3c,0x69,0x41,0x35,0x59,0x1f,0xfe,0x87,0x1a,0x00,0x01,0x00,0x3c,0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03, -0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x06,0x18,0x2b,0x37,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x3c,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x32,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f,0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x3c, -0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b, -0x72,0x5b,0xb3,0x32,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00, -0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, -0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44, -0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44,0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x12,0x00,0x28,0x40,0x25,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03, -0x4f,0x00,0x00,0x00,0x12,0x00,0x11,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0x51,0x49,0xa1,0xa1,0x40,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x40,0x42,0x49,0x50,0x3c,0xfd,0xc1,0x58,0x6b,0x00,0x00,0x00,0xff,0xff,0x00,0x32, -0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x02,0x54,0x00,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11, -0x07,0x06,0x1b,0x2b,0x17,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x6e,0x46,0x02,0x08,0x46,0x5a,0xc8,0xb4,0x03,0x3c,0x52,0x52,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x37,0x40,0x34,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01, -0x02,0x02,0x4b,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x06,0x19,0x2b,0x17,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x15,0x37,0x01,0x13,0xfe,0xed,0x01,0xe5,0xfe,0x89,0x01,0x12, -0xfe,0xec,0x01,0x79,0xb4,0x52,0x01,0x75,0x01,0x75,0x52,0x52,0xfe,0x8b,0xfe,0x8b,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0f,0x00,0x2e,0x40,0x2b,0x00,0x03,0x01,0x03,0x85,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x05,0x01,0x04,0x02, -0x04,0x4f,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x14,0x11,0x11,0x06,0x06,0x1a,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x16,0x16,0x07,0x33,0x26,0x36,0x37,0x13,0x33,0x03,0x01,0x0c,0x7f,0x6f,0xaf,0x63,0x08,0x06,0x01,0x09,0x01,0x07,0x09,0xa0,0x54,0xd4,0x01,0xd6,0x50,0xfe,0x7b,0x22,0x33,0x0b,0x0b,0x34,0x21,0x02,0x39,0xfd,0x26,0x00, -0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1b,0x00,0x29,0x00,0x3f,0x40,0x3c,0x0c,0x0a,0x02,0x03,0x04,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x03,0x00,0x51,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c, -0x29,0x1d,0x29,0x12,0x11,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x2e,0x02,0x27,0x33,0x30,0x1e,0x03,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x61,0x57,0x3e,0x4b,0x07,0x02, -0x31,0x4e,0x5a,0x2a,0x87,0x2b,0x40,0x40,0x2b,0x70,0x62,0x3a,0x3e,0x3d,0x3b,0x3a,0x3e,0x3e,0x0a,0x73,0x64,0x50,0x62,0x70,0x37,0x32,0x19,0x36,0x62,0x52,0x3e,0x13,0x1b,0x36,0x4e,0x67,0x3f,0xc8,0x64,0x73,0x50,0x46,0x41,0x50,0x42,0x45,0x46,0x41,0x50,0x41,0x46,0x00,0xff,0xff,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x02,0x06, -0x02,0x80,0x00,0x00,0x00,0x02,0x00,0x9b,0x00,0x00,0x01,0xbd,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x63, -0x5a,0xfe,0xde,0x5a,0x02,0xda,0xfd,0x26,0x02,0xda,0xfd,0x26,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00, -0x00,0x01,0x00,0xff,0xff,0x88,0x02,0x2b,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x0a,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x05,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x02,0x2b,0x5d,0x86,0x49,0x5a,0x71,0x61,0x78,0x17,0x6e,0xa0,0x61,0x02,0xee,0xfd,0x12,0x75,0xa2,0x17,0x00,0x01,0x00,0xff, -0xfe,0xd4,0x02,0x2b,0x03,0x48,0x00,0x0a,0x00,0x16,0x40,0x13,0x06,0x05,0x02,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x0a,0x00,0x0a,0x02,0x06,0x16,0x2b,0x13,0x11,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x11,0xff,0x49,0x86,0x5d,0x61,0x71,0xfe,0xd4,0x02,0xee,0x62,0x9f,0x6e,0x17,0x58,0x17,0xa2,0x75,0xfd,0x12,0x00, -0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x04,0x32,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0x88,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x01,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x17,0x35,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x2d,0x62,0x70,0x5a,0x48,0x87,0x78, -0x58,0x17,0xa2,0x75,0x02,0xee,0xfd,0x12,0x61,0xa0,0x6e,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0x48,0x00,0x0a,0x00,0x10,0x40,0x0d,0x06,0x05,0x02,0x00,0x4a,0x00,0x00,0x00,0x76,0x10,0x01,0x06,0x17,0x2b,0x01,0x23,0x11,0x34,0x26,0x27,0x35,0x1e,0x02,0x15,0x01,0x59,0x5a,0x70,0x62,0x5d,0x87,0x48,0xfe,0xd4,0x02,0xee, -0x75,0xa2,0x17,0x58,0x17,0x6e,0x9f,0x62,0x00,0x05,0x00,0x0e,0xff,0xfb,0x02,0x4a,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x2d,0x00,0x3b,0x00,0x99,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01, -0x38,0x4d,0x0e,0x01,0x08,0x08,0x03,0x61,0x0d,0x06,0x0b,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x34,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0b,0x01,0x03,0x03,0x39,0x4d,0x0e,0x01,0x08,0x08,0x06, -0x61,0x0d,0x01,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x2b,0x2f,0x2e,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x36,0x34,0x2e,0x3b,0x2f,0x3b,0x28,0x26,0x20,0x2d,0x21,0x2d,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0f,0x09,0x16,0x2b,0x13,0x22,0x26,0x37,0x35,0x26,0x36,0x33,0x32, -0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x22,0x26,0x35,0x35,0x26,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x99,0x40,0x4b,0x01,0x01,0x4b,0x40,0x40,0x4b,0x01,0x4b,0xcc,0x01, -0xf2,0x4a,0xfe,0x0e,0x42,0x1e,0x23,0x23,0x1e,0x1e,0x23,0x23,0x01,0x42,0x40,0x4b,0x01,0x4c,0x40,0x40,0x4b,0x4b,0x40,0x1e,0x23,0x23,0x1f,0x1d,0x23,0x01,0x23,0x01,0x90,0x49,0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0xfe,0x70,0x02,0xda,0xfd,0x26,0x01,0xd4,0x24,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x24,0xfe,0x27,0x49, -0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0x45,0x23,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x23,0x00,0x06,0xff,0xfb,0xff,0xfb,0x02,0x72,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x39,0x00,0x47,0x00,0x55,0x00,0xb7,0xb6,0x37,0x2a,0x02,0x0a,0x0b,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x31,0x10,0x01,0x04,0x0e,0x01, -0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a,0x07,0x0b,0x6a,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x38,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x03,0x61,0x09,0x11,0x06,0x0f,0x04,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x39,0x10,0x01,0x04,0x0e,0x01,0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a, -0x07,0x0b,0x6a,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0f,0x01,0x03,0x03,0x39,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x06,0x61,0x09,0x11,0x02,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x37,0x49,0x48,0x3b,0x3a,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x50,0x4e,0x48,0x55,0x49,0x55,0x42,0x40,0x3a, -0x47,0x3b,0x47,0x35,0x33,0x2e,0x2c,0x28,0x26,0x20,0x39,0x21,0x39,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x14,0x09,0x16,0x2b,0x13,0x22,0x26,0x27,0x35,0x26,0x36,0x33,0x32,0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x26,0x26,0x23,0x22,0x06,0x15, -0x15,0x14,0x16,0x13,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x33,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x7d,0x37,0x40,0x01,0x01,0x41,0x37, -0x37,0x41,0x01,0x40,0xba,0x01,0xb6,0x43,0xfe,0x4a,0x3f,0x1a,0x1f,0x01,0x1e,0x1a,0x1a,0x1f,0x1f,0xf6,0x32,0x3b,0x01,0x3b,0x31,0x26,0x2e,0x02,0x03,0x2f,0x25,0x32,0x3a,0x3a,0x32,0x26,0x2e,0x02,0x04,0x2f,0x1f,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0xbb,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0x01,0xb8,0x3e,0x35, -0x41,0x35,0x3e,0x3e,0x35,0x41,0x35,0x3e,0xfe,0x48,0x02,0xda,0xfd,0x26,0x01,0xf3,0x1f,0x19,0x41,0x1a,0x1e,0x1e,0x1a,0x41,0x19,0x1f,0xfe,0x08,0x40,0x37,0x38,0x38,0x40,0x26,0x20,0x20,0x26,0x40,0x38,0x38,0x37,0x40,0x26,0x20,0x20,0x26,0x35,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f,0x38,0x1f,0x23,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f, -0x38,0x1f,0x23,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0x65,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b, -0x2b,0x21,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x07,0x8f,0x8f,0x4a,0x8f,0x8f,0x93,0x40,0x92,0x92,0x40,0x93,0x00,0x00,0x00,0x01,0x00,0xa0,0x01,0x31,0x01,0xb8,0x02,0x49,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, -0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x0b,0x1b,0x2b,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x04,0x64,0x64,0x50,0x64,0x64,0x01,0x31,0x69,0x46,0x69,0x69,0x46,0x69,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x37,0x02,0x08,0x02,0x58,0x00,0x12, -0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x02,0x85,0x00,0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x03,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x06,0x06,0x1a,0x2b,0x25,0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e, -0x02,0x07,0x1e,0x02,0x17,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x37,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0x00,0x02,0x00,0x37,0x00,0x00,0x02,0x08,0x02,0xd5,0x00,0x12,0x00,0x16,0x00,0x47,0x40,0x44,0x00,0x02,0x01,0x02,0x85,0x00, -0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x07,0x01,0x04,0x00,0x05,0x00,0x04,0x05,0x80,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x13,0x13,0x00,0x00,0x13,0x16,0x13,0x16,0x15,0x14,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x09,0x06,0x1a,0x2b,0x25, -0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e,0x02,0x07,0x1e,0x02,0x17,0x05,0x35,0x21,0x15,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0xfe,0x2f,0x01,0xcc,0xb4,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0xb4,0x50,0x50,0x00,0x00,0x00, -0x00,0x04,0x00,0x37,0xff,0xf6,0x02,0x20,0x01,0xfe,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x47,0x40,0x44,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x07,0x01,0x05,0x04,0x04,0x05,0x59,0x07,0x01,0x05,0x05,0x04,0x61,0x0b,0x06,0x0a,0x03,0x04,0x05,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b, -0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xce,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0xfe,0x97,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x21,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x5c,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d, -0xfe,0x9a,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x03,0x17,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xaa,0x4b,0xb0,0x24,0x50,0x58,0x40,0x3b,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x72,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00, -0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x1b,0x40,0x3c,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00, -0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x59,0x40,0x25,0x24,0x24,0x20,0x20,0x15,0x14,0x00,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21, -0x1b,0x19,0x14,0x1f,0x15,0x1f,0x00,0x13,0x00,0x13,0x24,0x21,0x24,0x21,0x0f,0x06,0x1a,0x2b,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xff,0x49,0x18,0x1d,0x1d,0x18, -0x86,0x87,0x33,0x3d,0x3d,0x33,0x13,0x1c,0x12,0x15,0x15,0x12,0x12,0x15,0x15,0xd7,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x21,0x55,0x1d,0x18,0x18,0x1d,0x37,0x3a,0x32,0x2f,0x38,0x23,0x73,0x14,0x10,0x11,0x13,0x13,0x11,0x10,0x14,0x8a,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0xff,0xff,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x02,0x06, -0x03,0x2b,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x3c,0x40,0x39,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x01,0x00,0x16,0x19,0x16,0x19, -0x18,0x17,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0xfd,0xf8,0x02,0x08, -0xc8,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04, -0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x00,0x00,0x16,0x19,0x16,0x19,0x18,0x17,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x05,0x35,0x21,0x15,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf, -0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0xfe,0xcf,0x02,0x08,0xc8,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x01,0xdb,0x00,0x31,0x00,0x4c,0x40,0x49,0x14,0x09,0x02,0x01,0x00,0x2c,0x21,0x1a,0x13,0x08,0x01,0x06,0x06,0x01,0x2b,0x20, -0x02,0x05,0x06,0x03,0x4c,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x0a,0x09,0x07,0x03,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x00,0x00,0x00,0x31,0x00,0x31,0x27,0x11,0x27,0x12,0x17,0x21,0x17,0x21,0x12,0x0b,0x06,0x1f,0x2b,0x27,0x37,0x27,0x33,0x17,0x33, -0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x50,0x9f,0x9f,0x6a,0x7d,0x88,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x7d,0x18,0x11,0x28,0x0d,0x07, -0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x18,0x7d,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x88,0x7d,0x4b,0xc8,0xc8,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x00, -0x00,0x01,0x00,0x73,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x06,0x04,0x02,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x17,0x23,0x35,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x06,0xa0, -0x2d,0x2d,0x5f,0x5a,0x60,0x6e,0x50,0x56,0x03,0xc4,0xfc,0x3c,0x4f,0x57,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x02,0x2b,0x03,0xfc,0x00,0x16,0x00,0x2a,0x40,0x27,0x05,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f, -0x21,0x24,0x18,0x10,0x04,0x06,0x1a,0x2b,0x01,0x23,0x11,0x34,0x36,0x37,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x01,0x59,0x5a,0x34,0x31,0x32,0x33,0x5a,0x0e,0x2b,0x2b,0x6e,0x6e,0x2b,0x2b,0x0e,0xfe,0xd4,0x02,0x08,0x39,0x4a,0x09,0x09,0x4a,0x39,0x02,0x08,0xfd,0xf8,0x23,0x2d,0x14, -0x50,0x14,0x2c,0x24,0x00,0x01,0x00,0x73,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x0a,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x59,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x02,0x01,0x51,0x21,0x22,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x01,0x59,0x5a,0x5f,0x2d, -0x2d,0x59,0x60,0xfe,0xd4,0x03,0xc4,0x56,0x50,0x57,0x4f,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08,0x00,0x0b,0x00,0x08,0xb5,0x0a,0x09,0x04,0x03,0x02,0x32,0x2b,0x11,0x37,0x05,0x01,0x11,0x01,0x05,0x27,0x25,0x05,0x11,0x07,0x23,0x01,0x09,0x01,0x2c,0xfe,0xd3,0xfe,0xf7,0x22,0x01,0x07,0x01,0x1f,0xd6,0x02, -0x58,0x25,0xf3,0x01,0x11,0xfd,0x97,0x01,0x13,0xf1,0x23,0xf0,0xc2,0x01,0x86,0xc3,0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x03,0xf4,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f, -0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x05,0x23,0x35,0x33,0x11,0x33,0x01,0x59,0xf5,0x9b,0x5a,0x6e,0x50,0x04,0x1a,0x00,0x00,0x01,0x00,0x64,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01, -0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x23,0x35,0x33,0x01,0x59,0x5a,0x9b,0xf5,0xfe,0xd4,0x04,0x1a,0x50,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, -0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x31,0x11,0x33,0x15,0x21,0x15,0x21,0x11,0x5a,0x01,0xfe,0xfe,0x02,0x02,0x58,0xff,0x50,0xfe,0xf7,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0xd1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x01,0x00,0x03,0x02,0x01, -0x03,0x69,0x09,0x01,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x1c,0x1c,0x18,0x18,0x0d,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17, -0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0xbc,0x01,0xae,0xfe,0x52, -0x01,0xae,0x01,0xed,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0xfe,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0xb4,0x00,0xd2,0x01,0xa4,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, -0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, -0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x02,0x06,0x04,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00, -0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x3c,0x01,0xe0,0x5a,0xfe,0xd4,0x02,0x17,0xfd,0xe9,0x01,0xc5,0xfe,0x3b,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07, -0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x00,0x03,0x01,0x03,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x3c,0x5a,0x01,0x2c,0x5a,0xfe,0x20,0x02,0x17,0xfe,0x3b,0x01,0xc5,0xfd,0xe9,0x00,0x00,0x00,0x00,0x03,0x00,0x00, -0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x07,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x09,0x08,0x00,0x00,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04, -0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xce,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00, -0x00,0x03,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x07,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, -0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x21,0x15,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x5a,0x01,0x40,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xde,0x50,0x50,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x06,0x00,0x09, -0x00,0x0c,0x00,0x0f,0x00,0x33,0x40,0x30,0x0c,0x0b,0x09,0x08,0x04,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x37,0x21, -0x17,0x17,0x11,0x05,0x27,0x11,0x37,0x07,0x21,0x02,0x58,0xfe,0xd2,0xc2,0xfe,0x7a,0xf7,0xc9,0xfe,0xd0,0xc4,0xf8,0xcb,0x01,0x94,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x64,0xc2,0xf6,0xc7,0x01,0x90,0xc9,0xc6,0xfe,0x76,0x91,0xcb,0x00,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, -0x00,0x4e,0x40,0x4b,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x04,0x0b,0x02,0x03,0x09,0x01,0x06,0x07,0x03,0x06,0x67,0x08,0x0c,0x02,0x07,0x01,0x01,0x07,0x57,0x08,0x0c,0x02,0x07,0x07,0x01,0x5f,0x0a,0x01,0x01,0x07,0x01,0x4f,0x0c,0x0c,0x04,0x04,0x00,0x00,0x13,0x12,0x11,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x0b,0x0a,0x09, -0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0d,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x02,0x58,0xfe,0xa8,0xce,0x01,0x26,0xce,0xce,0xce,0xce,0xfe,0xda,0xce,0xce,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x54,0xd2,0xd2,0xd2,0xfe,0x0c,0xd2, -0xd2,0xd2,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x5a,0x02,0x3a,0x02,0x3a,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11, -0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0x5a,0x01,0xe0,0x52,0xfe,0xc4,0x52,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x06,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01, -0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0xfd,0xe9,0x02,0x17,0xc8,0x01,0xe0,0x52,0xfe,0xc4,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0x1e, -0x00,0x5a,0x02,0x35,0x02,0x3a,0x00,0x07,0x00,0x22,0x40,0x1f,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x25,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x02,0x35,0xfd,0xe9,0x01,0xbd,0xfe,0x43,0x02,0x17,0x5a,0x52, -0x01,0x3c,0x52,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b, -0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x05,0x35,0x21,0x15,0x1e,0x01,0xbd,0xfe,0x43,0x02,0x17,0xfd,0xe9,0x02,0x17,0xc8,0x52,0x01,0x3c,0x52,0xfe,0x20,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xda,0x01,0xa4,0x01,0xd0,0x00,0x09,0x00,0x18,0x40,0x15, -0x04,0x01,0x00,0x4a,0x09,0x08,0x07,0x01,0x04,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x12,0x12,0x02,0x06,0x18,0x2b,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0xe3,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0xda,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x54,0x02,0x03,0x02,0x40,0x00,0x03, -0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f, -0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x04,0x3c,0x3c,0x90,0x3c,0x3c,0x90, -0x3c,0x3c,0x90,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x78,0x02,0x3a,0x02,0x58,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x03,0x00,0x4f,0x01,0x00,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x05,0x06,0x16, -0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0x78,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x00,0x01,0x00,0x50,0x00,0x37,0x02,0x21, -0x02,0x58,0x00,0x12,0x00,0x33,0x40,0x30,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x02,0x03,0x02,0x00,0x03,0x80,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x00,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x13,0x13,0x14,0x06,0x06,0x1a,0x2b,0x37,0x3e,0x02,0x37,0x2e,0x02,0x27, -0x33,0x1e,0x02,0x33,0x15,0x22,0x06,0x06,0x07,0x50,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x5a,0x09,0x62,0xa3,0x69,0x69,0xa3,0x62,0x09,0x37,0x4f,0x7a,0x48,0x07,0x05,0x45,0x73,0x4c,0x43,0x63,0x36,0x64,0x37,0x65,0x45,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03, -0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1a,0x21,0x24,0x11,0x14,0x21,0x07,0x06,0x1b,0x2b,0x37,0x35,0x21,0x32,0x36,0x36,0x35,0x35,0x21,0x35,0x21,0x35,0x34,0x26,0x26,0x23,0x21,0x35,0x21,0x32, -0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x01,0x31,0x28,0x3f,0x25,0xfe,0x43,0x01,0xbd,0x25,0x3f,0x28,0xfe,0xcf,0x01,0x31,0x3f,0x68,0x3f,0x3f,0x68,0x3f,0x46,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b, -0x00,0x11,0x00,0x3a,0x40,0x37,0x11,0x0e,0x08,0x03,0x02,0x01,0x06,0x02,0x01,0x01,0x4c,0x00,0x00,0x05,0x01,0x01,0x02,0x00,0x01,0x67,0x04,0x01,0x02,0x03,0x03,0x02,0x57,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x07,0x06,0x19,0x2b,0x17,0x35, -0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x25,0x33,0x13,0x03,0x23,0x13,0x37,0xfa,0xfa,0x01,0xe5,0xfe,0xb4,0xfa,0xfa,0x01,0x4c,0xfe,0x46,0x41,0xfd,0xfd,0x41,0xfc,0xb4,0x32,0x01,0x94,0x01,0x96,0x32,0x2e,0xfe,0x62,0xfe,0x6c,0x2e,0x2e,0x01,0x98,0x01,0x9a,0xfe,0x66,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x78,0x02,0x35, -0x02,0x58,0x00,0x15,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15, -0x14,0x06,0x06,0x23,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf,0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0x78,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57, -0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xff,0x02,0x58,0xff,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x24,0x40,0x21,0x00,0x03,0x02,0x03, -0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x21,0x23,0x11,0x21,0x35,0x21,0x35,0x33,0x02,0x58,0x5a,0xfe,0x02,0x01,0xfe,0x5a,0x01,0x09,0x50,0xff,0x00,0x00,0x00,0x03,0x00,0x43,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x13, -0x00,0x16,0x00,0x1a,0x00,0x96,0xb5,0x15,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x07,0x08,0x71,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f, -0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x08,0x86,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f,0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x59,0x40,0x1c,0x14, -0x14,0x00,0x00,0x1a,0x19,0x18,0x17,0x14,0x16,0x14,0x16,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x13,0x23,0x35,0x33,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x33,0x11,0x21,0x07,0x23,0x37,0x01,0x35,0x07,0x17,0x23,0x03,0x33,0x50,0x39,0x5f,0x75,0x93,0x53,0xfe,0xf7,0x01, -0x27,0x25,0x46,0x25,0x37,0xfe,0xbd,0x28,0x46,0x28,0x01,0x2f,0x4e,0x4e,0x6c,0x5f,0xcb,0x52,0x01,0x02,0x52,0xe2,0x52,0x64,0x64,0xfd,0x26,0x6e,0x6e,0x01,0xa6,0xd4,0xd4,0x52,0xfe,0xfe,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3c,0x40,0x39,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, -0x69,0x05,0x01,0x03,0x02,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x61,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22, -0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0xfe,0x46,0x23,0x1e,0x1d,0x22, -0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x00,0x03,0x00,0x41,0x00,0x26,0x02,0x17,0x02,0x6f,0x00,0x1b,0x00,0x37,0x00,0x53,0x01,0x0c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x65,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x12,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x08,0x06,0x0a,0x07,0x08,0x72,0x13,0x01,0x0b,0x07,0x09, -0x0a,0x0b,0x72,0x00,0x0e,0x0c,0x10,0x0d,0x0e,0x72,0x14,0x01,0x11,0x0d,0x0f,0x10,0x11,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59, -0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x1b,0x40,0x6b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x12,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x08,0x06,0x0a,0x06,0x08,0x0a,0x80,0x13,0x01,0x0b,0x07,0x09,0x07,0x0b,0x09,0x80,0x00,0x0e,0x0c,0x10,0x0c,0x0e,0x10,0x80,0x14,0x01,0x11,0x0d,0x0f,0x0d,0x11,0x0f,0x80, -0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59,0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x59,0x40,0x2e,0x38,0x38,0x1c,0x1c,0x00, -0x00,0x38,0x53,0x38,0x53,0x50,0x4e,0x4b,0x49,0x46,0x45,0x42,0x40,0x3d,0x3b,0x1c,0x37,0x1c,0x37,0x34,0x32,0x2f,0x2d,0x2a,0x29,0x26,0x24,0x21,0x1f,0x00,0x1b,0x00,0x1b,0x23,0x23,0x13,0x23,0x23,0x15,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23, -0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x41,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18, -0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x01,0xd9,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f, -0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x33, -0x40,0x30,0x0b,0x01,0x03,0x04,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x01,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x06,0x19,0x2b,0x33,0x03,0x33,0x17,0x33,0x37,0x33,0x03,0x27,0x16,0x16,0x17,0x36, -0x36,0x37,0x37,0x23,0xef,0xbd,0x5b,0x32,0xd9,0x32,0x5c,0xbe,0x60,0x0d,0x13,0x04,0x05,0x12,0x0d,0x36,0xb4,0x02,0xda,0xca,0xca,0xfd,0x26,0xeb,0x34,0x5a,0x17,0x17,0x59,0x34,0xda,0x00,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, -0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, -0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x1c,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf1,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27, -0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x10,0x04, -0x06,0x1a,0x2b,0x13,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0xff,0x5a,0xff,0xfd,0xa8,0xff,0x02,0x58,0xfd,0xf8,0x50,0x50,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xbc,0x00,0x0c,0x00,0x10,0x00,0x39,0x40,0x36,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x00,0x03,0x04,0x04, -0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x00,0x0c,0x00,0x0c,0x18,0x11,0x07,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x05,0x35,0x21,0x15,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0xfe, -0xec,0x01,0xae,0xc8,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0xc8,0x50,0x50,0x00,0x00,0x00,0x00,0x06,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x32,0x00,0x3f,0x00,0x4b,0x00,0x40,0x40,0x3d,0x4a,0x46,0x42,0x3e,0x3a,0x36,0x30,0x2c,0x27,0x25,0x22,0x1e,0x1a,0x17, -0x13,0x0f,0x02,0x01,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x02,0x00,0x00,0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x41,0x40,0x01,0x00,0x40,0x4b,0x41,0x4b,0x09,0x07,0x00,0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, -0x03,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x06,0x06,0x07,0x25,0x14,0x06,0x07,0x36,0x36,0x37,0x37,0x26,0x26,0x27,0x13,0x17,0x36,0x36,0x35,0x34,0x27,0x07,0x06,0x06,0x07,0x16,0x16,0x25,0x14,0x16,0x17,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x06,0x01,0x32,0x37,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x16,0x01,0x2c,0x58,0x8d, -0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xd9,0x11,0x38,0x17,0x05,0x05,0x3c,0x60,0x1c,0x01,0x0c,0x06,0x05,0x18,0x37,0x12,0x62,0x1c,0x60,0x3c,0x55,0x3b,0x23,0x27,0x05,0x62,0x12,0x3e,0x1c,0x14,0x2e,0xfe,0x89,0x27,0x23,0x3b,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x62,0x05,0x01,0x04,0x3f,0x36,0x3b,0x0c,0x22,0x0c,0x0c,0x22,0x0c, -0x3b,0x36,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x96,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x6b,0x09,0x42,0x32,0x12,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x24,0x32,0x42,0x09,0xfe,0x9b,0x55,0x23,0x5f,0x37,0x1b,0x1b,0x25,0x07,0x10,0x04,0x14,0x35,0x53,0x37,0x5f,0x23,0x55,0x12,0x34,0x14,0x04,0x10,0x07,0x25, -0x1b,0xfe,0xe1,0x1a,0x56,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x56,0x1a,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x42,0x40,0x3f,0x00,0x01,0x07,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x08,0x01,0x04,0x00,0x00,0x04,0x59,0x08,0x01,0x04,0x04, -0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x1a,0x19,0x11,0x10,0x01,0x00,0x1e,0x1d,0x19,0x21,0x1a,0x21,0x15,0x14,0x10,0x18,0x11,0x18,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x21,0x2e,0x02,0x03,0x32,0x36,0x36, -0x37,0x21,0x1e,0x02,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x43,0x6e,0x47,0x09,0x02,0x02,0x09,0x47,0x6e,0x43,0x43,0x6e,0x47,0x09,0xfd,0xfe,0x09,0x47,0x6e,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x39,0x63,0x40,0x40,0x63,0x39,0xfd,0xf8,0x39,0x63,0x40,0x40, -0x63,0x39,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x16,0x00,0x20,0x00,0x27,0x00,0x4e,0x40,0x4b,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x0a,0x01,0x06,0x00,0x00,0x06,0x59,0x0a,0x01,0x06,0x06,0x00,0x61, -0x08,0x01,0x00,0x06,0x00,0x51,0x22,0x21,0x11,0x10,0x01,0x00,0x25,0x24,0x21,0x27,0x22,0x27,0x1f,0x1e,0x1a,0x19,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26,0x26,0x01,0x14,0x17, -0x21,0x36,0x35,0x34,0x27,0x21,0x06,0x01,0x32,0x36,0x37,0x21,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4b,0x78,0x20,0x01,0xc6,0x20,0x78,0xfe,0xb1,0x04,0x02,0x00,0x04,0x04,0xfe,0x00,0x04,0x01,0x04,0x4b,0x78,0x20,0xfe,0x3a,0x20,0x78,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59, -0x58,0x8d,0x51,0x02,0x3a,0x47,0x3b,0x3b,0x47,0xfe,0xfc,0x1a,0x18,0x18,0x1a,0x1a,0x18,0x18,0xfe,0xe2,0x47,0x3b,0x3b,0x47,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x3a,0x40,0x37,0x22,0x21,0x14,0x13,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03, -0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x1b,0x1a,0x01,0x00,0x1a,0x23,0x1b,0x23,0x17,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x06,0x01,0x32, -0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x2f,0x28,0x01,0x21,0x36,0x3e,0x4a,0x76,0x44,0x01,0x04,0x4a,0x76,0x44,0x33,0x2b,0xfe,0xde,0x39,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x3c,0x66,0x23,0x01,0xaf,0x1a,0x44, -0x76,0xfe,0xb2,0x44,0x76,0x4a,0x3f,0x69,0x23,0xfe,0x4f,0x1e,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01, -0x00,0x02,0x00,0x51,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16, -0x27,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x56,0x01,0x40,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xdc,0x50,0x50,0x00,0x00,0x00, -0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f,0x00,0x46,0x40,0x43,0x2d,0x2c,0x2b,0x25,0x24,0x23,0x1f,0x19,0x15,0x14,0x13,0x0b,0x03,0x02,0x01,0x4c,0x00,0x01,0x05,0x01,0x02,0x03,0x01,0x02,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x04,0x01, -0x00,0x03,0x00,0x51,0x29,0x28,0x11,0x10,0x01,0x00,0x28,0x2f,0x29,0x2f,0x10,0x17,0x11,0x17,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x17,0x37,0x26,0x26,0x13,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x05,0x14,0x16,0x17, -0x37,0x27,0x06,0x06,0x01,0x32,0x36,0x37,0x27,0x07,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x2e,0x51,0x21,0x9e,0x9f,0x20,0x50,0x04,0x9f,0x19,0x1b,0x1b,0x18,0xfe,0x2b,0x1a,0x18,0x9c,0x9c,0x18,0x1a,0x01,0x04,0x2d,0x4f,0x20,0x9e,0x9d,0x21,0x50,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51, -0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x1b,0x19,0x9d,0x9f,0x18,0x1a,0xfe,0xfb,0x9e,0x20,0x51,0x2e,0x2e,0x50,0x21,0x9f,0x2d,0x50,0x20,0x9c,0x9d,0x20,0x4f,0xfe,0xcf,0x1a,0x17,0x9f,0x9d,0x18,0x1b,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0x6c,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03, -0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x21,0x22,0x26,0x26, -0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, -0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x15,0x00,0x1b,0x00,0x21,0x00,0x27, -0x00,0x4b,0x40,0x48,0x17,0x15,0x02,0x02,0x01,0x27,0x1d,0x02,0x00,0x04,0x02,0x4c,0x00,0x01,0x02,0x01,0x85,0x06,0x01,0x00,0x04,0x00,0x86,0x07,0x03,0x02,0x02,0x04,0x04,0x02,0x57,0x07,0x03,0x02,0x02,0x02,0x04,0x5f,0x05,0x08,0x02,0x04,0x02,0x04,0x4f,0x1c,0x1c,0x16,0x16,0x01,0x00,0x23,0x22,0x1c,0x21,0x1c,0x21,0x16,0x1b,0x16, -0x1b,0x11,0x10,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x33,0x2e,0x02,0x27,0x07,0x35,0x0e,0x02,0x07,0x05,0x15,0x3e,0x02,0x37,0x21,0x23,0x1e,0x02,0x17,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x2d,0xd5, -0x08,0x3a,0x5b,0x38,0x58,0x38,0x5b,0x3a,0x08,0x01,0x2d,0x38,0x5b,0x3a,0x08,0xfe,0xd3,0xd5,0x08,0x3a,0x5b,0x38,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x5e,0x39,0x5b,0x3c,0x09,0xd9,0xd9,0x09,0x3c,0x5b,0x39,0x50,0xd9,0x09,0x3c,0x5b,0x39,0x39,0x5b,0x3c,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x28, -0x00,0x00,0x02,0x30,0x02,0xe4,0x00,0x0e,0x00,0x15,0x40,0x12,0x0e,0x0d,0x0c,0x0b,0x07,0x04,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x27,0x26,0x26,0x27,0x11,0x23,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x02,0x30,0xb4,0x10,0x16,0x02,0x50,0x04,0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0x01,0x99,0xa0, -0x0e,0x1c,0x07,0xfd,0x96,0x02,0x6a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0xed,0x02,0x1c,0x02,0xda,0x00,0x0e,0x00,0x26,0x40,0x23,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0c,0x11, -0x03,0x06,0x17,0x2b,0x13,0x37,0x21,0x11,0x07,0x11,0x34,0x36,0x37,0x01,0x27,0x01,0x06,0x06,0x23,0x4c,0x4f,0x01,0x81,0x53,0x05,0x05,0xfe,0x95,0x39,0x01,0x6e,0x0a,0x24,0x14,0x02,0x8b,0x4f,0xfe,0x7b,0x53,0x01,0x1a,0x10,0x22,0x0b,0xfe,0x94,0x39,0x01,0x6e,0x07,0x02,0x00,0x01,0x00,0x14,0x00,0x32,0x02,0x4e,0x02,0x62,0x00,0x0d, -0x00,0x30,0x40,0x2d,0x0c,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x11,0x13,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03, -0x01,0x0a,0x9e,0x1a,0x1a,0xfe,0x38,0x01,0xc3,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x32,0xc9,0x22,0x05,0x50,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x1c,0x01,0xed,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, -0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x37,0x21,0x32,0x16,0x17,0x01,0x37,0x01,0x26,0x26,0x35,0x11,0x17,0x11,0x21,0x4c,0x01,0x0f,0x14,0x24,0x0a,0xfe,0x92,0x39,0x01,0x6b,0x05,0x05,0x53,0xfe,0x7f,0x4f,0x02,0x07,0x01,0x6e,0x39,0xfe,0x94,0x0b,0x22,0x10,0x01,0x1a,0x53,0xfe,0x7b,0x00,0x00,0x00, -0x00,0x01,0x00,0x28,0xff,0xf6,0x02,0x30,0x02,0xda,0x00,0x0e,0x00,0x15,0x40,0x12,0x0b,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x49,0x00,0x00,0x00,0x76,0x19,0x01,0x06,0x17,0x2b,0x01,0x15,0x05,0x25,0x35,0x17,0x16,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x02,0x30,0xfe,0xfb,0xfe,0xfd,0xb6,0x0e,0x14,0x04,0x50,0x02,0x16,0x10, -0x01,0x41,0x6a,0xe1,0xe2,0x6b,0xa2,0x0c,0x1c,0x09,0x02,0x6a,0xfd,0x96,0x08,0x1b,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x29,0x01,0xed,0x00,0x0e,0x00,0x27,0x40,0x24,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x4a,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, -0x00,0x0e,0x00,0x0c,0x11,0x03,0x06,0x17,0x2b,0x25,0x07,0x21,0x11,0x37,0x11,0x14,0x06,0x07,0x01,0x17,0x01,0x36,0x36,0x33,0x02,0x0c,0x4f,0xfe,0x7f,0x53,0x05,0x05,0x01,0x6b,0x39,0xfe,0x92,0x0b,0x23,0x14,0x4f,0x4f,0x01,0x85,0x53,0xfe,0xe6,0x10,0x22,0x0b,0x01,0x6c,0x39,0xfe,0x92,0x07,0x02,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, -0x00,0x32,0x02,0x44,0x02,0x62,0x00,0x0d,0x00,0x2a,0x40,0x27,0x02,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x11,0x14,0x12,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21, -0x16,0x17,0x01,0x4e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x01,0xc3,0xfe,0x38,0x1a,0x1a,0x32,0x01,0x19,0x01,0x17,0xca,0x0d,0x14,0x05,0x50,0x05,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0xed,0x02,0x29,0x02,0xda,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01, -0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x01,0x21,0x22,0x26,0x27,0x01,0x07,0x01,0x16,0x16,0x15,0x11,0x27,0x11,0x21,0x02,0x0c,0xfe,0xf1,0x14,0x23,0x0b,0x01,0x6e,0x39,0xfe,0x95,0x05,0x05,0x53,0x01,0x81,0x02,0x8b,0x02,0x07,0xfe,0x92,0x39,0x01,0x6c,0x0b,0x22,0x10,0xfe,0xe6,0x53,0x01,0x85,0x00, -0x00,0x01,0xff,0xb0,0x00,0x32,0x02,0xa8,0x02,0x62,0x00,0x17,0x00,0x35,0x40,0x32,0x12,0x05,0x02,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x14,0x14,0x12,0x13,0x07, -0x06,0x1b,0x2b,0x13,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x22,0x1a,0x1a,0x9e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x02,0x0a,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x68,0x9e,0x1a,0x1a,0x01,0x22,0x05,0x22,0xc9,0x01,0x19,0x01,0x17,0xca,0x0d,0x14, -0x05,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0xc9,0x22,0x05,0x00,0x01,0x00,0x28,0xff,0x56,0x02,0x30,0x03,0x84,0x00,0x19,0x00,0x06,0xb3,0x19,0x0c,0x01,0x32,0x2b,0x37,0x35,0x17,0x16,0x16,0x17,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x15,0x27,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x37,0x15,0x05,0x28,0xb6,0x0e,0x14,0x04,0x04, -0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0xb4,0x10,0x16,0x02,0x02,0x16,0x10,0xb4,0xfe,0xfb,0x38,0x6b,0xa2,0x0c,0x1c,0x09,0x03,0x3a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x6a,0xa0,0x0e,0x1c,0x07,0xfc,0xc6,0x08,0x1b,0x0e,0xa0,0x6a,0xe1,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0xa0,0x02,0x4e,0x01,0xbd,0x00,0x21,0x00,0x7d,0x40,0x0a, -0x11,0x01,0x02,0x03,0x14,0x01,0x06,0x00,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x08,0x01,0x07,0x01,0x04,0x06,0x07,0x72,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x1b,0x40,0x2a,0x08,0x01,0x07, -0x01,0x04,0x01,0x07,0x04,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x59,0x40,0x10,0x00,0x00,0x00,0x21,0x00,0x21,0x24,0x23,0x12,0x11,0x12,0x24,0x23,0x09,0x06,0x1d,0x2b,0x37,0x35,0x34,0x36,0x33, -0x32,0x1e,0x03,0x33,0x32,0x37,0x37,0x23,0x35,0x33,0x17,0x15,0x23,0x35,0x07,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x0a,0x4c,0x3a,0x23,0x2c,0x1d,0x15,0x17,0x11,0x1d,0x1c,0x55,0x8c,0xcd,0x46,0x50,0x4d,0x33,0x47,0x22,0x2c,0x1c,0x16,0x18,0x12,0x14,0x1f,0xa5,0x31,0x3d,0x4b,0x17,0x21,0x21,0x17,0x21,0x60,0x4e,0x46, -0xd7,0xa1,0x60,0x41,0x17,0x21,0x21,0x17,0x20,0x1a,0x31,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x25,0x00,0x7f,0x40,0x0c,0x14,0x02,0x02,0x01,0x07,0x15,0x01,0x02,0x06,0x01,0x02,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x29,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x06,0x05,0x71,0x00,0x02,0x00, -0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x1b,0x40,0x28,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x05,0x86,0x00,0x02,0x00,0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06, -0x01,0x06,0x52,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x25,0x23,0x23,0x21,0x13,0x11,0x23,0x23,0x21,0x13,0x0b,0x06,0x1f,0x2b,0x37,0x27,0x35,0x37,0x33,0x07,0x33,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x17,0x8d,0x83,0x83,0x5e,0x98, -0x34,0x11,0x1e,0x22,0x2b,0x1f,0x1f,0x2b,0x22,0x1e,0x11,0x47,0x98,0x69,0x79,0x79,0x68,0x6e,0x1e,0x24,0x2b,0x1c,0x1b,0x15,0x15,0x1b,0x1b,0x29,0x23,0x0d,0x6e,0x5f,0x91,0x46,0x91,0xa5,0x20,0x2b,0x20,0x20,0x2b,0x20,0xa5,0x91,0x46,0x91,0x74,0x20,0x29,0x20,0x20,0x29,0x20,0x74,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e, -0x01,0xc7,0x00,0x11,0x00,0x68,0xb6,0x04,0x03,0x02,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x06,0x01,0x00,0x05,0x05,0x00,0x71,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x1b,0x40,0x20,0x03,0x01,0x01,0x02,0x01,0x85, -0x06,0x01,0x00,0x05,0x00,0x86,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x59,0x40,0x10,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x09,0x06,0x1d,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x15,0x21,0x17,0x23,0x27, -0x69,0x82,0x5e,0x83,0x83,0x5f,0x83,0x81,0x81,0x61,0x88,0x01,0x0a,0xfe,0xf5,0x88,0x60,0x81,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x8c,0x50,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x11,0x00,0x61,0xb6,0x0f,0x0e,0x02,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x21,0x06,0x01,0x04, -0x03,0x03,0x04,0x70,0x07,0x01,0x01,0x00,0x00,0x01,0x71,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50,0x1b,0x40,0x1f,0x06,0x01,0x04,0x03,0x04,0x85,0x07,0x01,0x01,0x00,0x01,0x86,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50, -0x59,0x40,0x0b,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x25,0x23,0x07,0x23,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0x81,0x81,0x60,0x88,0xfe,0xf5,0x01,0x0a,0x88,0x61,0x81,0x81,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0x8c,0x50,0x8c,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00, -0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x61,0xb7,0x0b,0x04,0x03,0x03,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x04,0x01,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x1b,0x40,0x1d, -0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x12,0x11,0x11,0x13,0x11,0x07,0x06,0x1b,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x17,0x23,0x27,0x69,0x82, -0x5e,0x83,0x83,0x5f,0x83,0x01,0x00,0x7d,0x68,0x9c,0x9c,0x67,0x7d,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0xb3,0xb5,0x8c,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x5a,0xb7,0x0c,0x0b,0x04,0x03,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1e,0x04,0x01,0x02,0x03,0x03,0x02,0x70,0x05,0x01,0x01, -0x00,0x00,0x01,0x71,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x1b,0x40,0x1c,0x04,0x01,0x02,0x03,0x02,0x85,0x05,0x01,0x01,0x00,0x01,0x86,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x59,0x40,0x09,0x13,0x11,0x11,0x12,0x11,0x10,0x06,0x06,0x1c,0x2b, -0x25,0x21,0x07,0x23,0x37,0x27,0x33,0x17,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0xfe,0xff,0x7d,0x67,0x9c,0x9c,0x68,0x7d,0x01,0x00,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0xb5,0xb3,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x32,0x40,0x2f,0x0a,0x09,0x08,0x05, -0x04,0x03,0x06,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x14,0x11,0x05,0x06,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x17,0x15,0x27,0x11,0x33,0x15,0x6e,0x92,0x92,0x9c,0x46,0x9a, -0x92,0x92,0x50,0x01,0x6a,0x84,0x65,0x8b,0x8a,0x66,0x83,0xfe,0x97,0x50,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0d,0x00,0x60,0xb6,0x08,0x07,0x02,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x06,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x04,0x04, -0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x1b,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x13,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x37,0x11, -0x33,0x15,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x21,0x15,0x0a,0x52,0x01,0x93,0x83,0x5f,0x83,0x83,0x5e,0x82,0xfe,0x6d,0x5f,0x01,0x68,0x8c,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x2b,0x40,0x28,0x0b,0x0a,0x09,0x06,0x05,0x04,0x06,0x02,0x01,0x01,0x4c,0x00, -0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x14,0x14,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x15,0x23,0x11,0x37,0x15,0x07,0x23,0x27,0x35,0x17,0x11,0x23,0x6e,0x01,0x7c,0x92,0x92,0x9a,0x46,0x9c,0x92,0x92,0x02,0x26,0x50,0xfe,0x97,0x83,0x66,0x8a,0x8b,0x65,0x84, -0x01,0x6a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x82,0x02,0x44,0x02,0x12,0x00,0x03,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0b,0x01,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x00,0x05,0x02,0x05,0x50,0x14,0x12,0x14,0x11,0x11,0x10,0x06,0x06, -0x1c,0x2b,0x25,0x23,0x11,0x33,0x05,0x21,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x21,0x02,0x44,0x55,0x55,0xfd,0xbc,0x01,0x57,0x05,0x15,0x0b,0x65,0x61,0xa0,0xa0,0x61,0x66,0x08,0x14,0x08,0xfe,0xa9,0x82,0x01,0x90,0xa0,0x02,0x14,0x0d,0x7d,0xc8,0xc8,0x80,0x0a,0x12,0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, -0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x3d,0x40,0x3a,0x01,0x01,0x04,0x01,0x01,0x4c,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x69,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x1e,0x00,0x1e,0x26,0x21, -0x24,0x33,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x16,0x16,0x17,0x17,0xaa,0xa0,0xa0,0x61,0x65,0x0a,0x16,0x05,0xcb,0x4b,0x5d,0x5d,0x4b,0x1e,0x1e,0x4d,0x74,0x41,0x41,0x74,0x4d,0xcb,0x08,0x14,0x08,0x66, -0x6e,0xc8,0xc8,0x7d,0x0d,0x14,0x02,0x50,0x46,0x45,0x51,0x50,0x3f,0x69,0x3e,0x46,0x68,0x38,0x04,0x12,0x0a,0x80,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x37,0x40,0x34,0x1e,0x01,0x01,0x04,0x01,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x00,0x03,0x05, -0x02,0x03,0x69,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x60,0x00,0x01,0x04,0x01,0x50,0x14,0x24,0x21,0x26,0x24,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0xae,0x61,0x66, -0x08,0x14,0x08,0xcb,0x4c,0x75,0x41,0x41,0x75,0x4c,0x1e,0x1e,0x4b,0x5d,0x5d,0x4b,0xcb,0x05,0x15,0x0b,0x65,0x61,0xa0,0x6e,0x80,0x0a,0x12,0x04,0x38,0x68,0x46,0x3e,0x69,0x3f,0x50,0x51,0x45,0x46,0x50,0x02,0x14,0x0d,0x7d,0xc8,0x00,0x01,0x00,0xff,0xff,0x4c,0x01,0xf4,0x03,0x47,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x03,0x02,0x01, -0x04,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x02,0x06,0x16,0x2b,0x17,0x11,0x17,0x15,0x27,0x11,0xff,0xf5,0xc3,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x00,0x00,0x01,0x00,0x0a,0xff,0xd9,0x02,0x4e,0x02,0x52,0x00,0x11,0x00,0x77,0x40,0x11,0x0d,0x0c,0x02,0x02,0x03,0x0e,0x05,0x02,0x01,0x02,0x10,0x0f, -0x02,0x00,0x01,0x03,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00, -0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x05,0x37,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x15,0x07,0x17,0x15,0x07,0x01,0x8b,0x62,0xfe,0x1d, -0x01,0xe3,0x62,0x62,0xfe,0x1d,0x01,0xe3,0x62,0x62,0x61,0x61,0x61,0x61,0x27,0x77,0x50,0x77,0x74,0x50,0x77,0x7d,0x44,0x7a,0x7d,0x44,0x7d,0x00,0x00,0x02,0xff,0xf6,0xff,0x4c,0x02,0x62,0x03,0x47,0x00,0x05,0x00,0x0b,0x00,0x24,0x40,0x21,0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x00,0x4a,0x03,0x01,0x02,0x03,0x00,0x00,0x76, -0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x00,0x05,0x00,0x05,0x04,0x06,0x16,0x2b,0x05,0x11,0x17,0x15,0x27,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x01,0x6d,0xf5,0xc3,0xe6,0xc3,0xf5,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x03,0x89,0xbd,0x41,0xee,0xfc,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d, -0x00,0x6c,0xb6,0x0c,0x05,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, -0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x25,0x37,0x21,0x35,0x21,0x37,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x01,0x07,0x6a,0xfe, -0x8f,0x01,0xb0,0x3f,0x3f,0xfe,0x50,0x01,0x71,0x6a,0x69,0xe8,0xe7,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xff,0xf6,0xff,0x42,0x02,0x62,0x03,0x3d,0x00,0x05,0x00,0x0b,0x00,0x18,0x40,0x15,0x0b,0x0a,0x09,0x08,0x05,0x04,0x03,0x02,0x08,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x15,0x10,0x02,0x06,0x18,0x2b, -0x01,0x33,0x11,0x37,0x15,0x07,0x03,0x33,0x11,0x27,0x35,0x17,0x01,0x6d,0x32,0xc3,0xf5,0xb4,0x32,0xf5,0xc3,0x03,0x3d,0xfc,0x77,0xbd,0x41,0xee,0x03,0xfb,0xfc,0x05,0xee,0x41,0xbd,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d,0x00,0x65,0xb6,0x09,0x02,0x02,0x04,0x03,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40, -0x24,0x00,0x01,0x02,0x02,0x01,0x70,0x00,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x1b,0x40,0x22,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x05,0x00,0x86,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57, -0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x59,0x40,0x09,0x11,0x12,0x11,0x11,0x12,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x01,0x51,0x6a,0xe7,0xe8,0x69,0x6a,0x01,0x71,0xfe,0x50,0x3f,0x3f,0x01,0xb0,0xfe,0x8f,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x50,0x50,0x50, -0x00,0x02,0xff,0xb0,0x00,0x23,0x02,0xa8,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, -0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12, -0x11,0x11,0x12,0x09,0x06,0x1b,0x2b,0x37,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0x97,0xe7,0xe8,0x69,0x6a,0x01,0x2a,0x6a,0x69,0xe8,0xe7,0x6a,0x6a,0xfe,0xd6,0x6a,0xa9,0x01,0xa8,0x3f,0x3f,0xfe,0x58,0x3f,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87, -0xd7,0x50,0x50,0x50,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x10,0x00,0x7d,0xb5,0x0d,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2d,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x06,0x07,0x07,0x06,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07, -0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x1b,0x40,0x2b,0x00,0x05,0x04,0x05,0x85,0x00,0x06,0x07,0x06,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07,0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x59,0x40,0x10,0x00,0x00, -0x00,0x10,0x00,0x10,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1d,0x2b,0x35,0x35,0x21,0x37,0x21,0x35,0x21,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x01,0x87,0x49,0xfe,0x30,0x01,0xd0,0x49,0xfe,0x79,0x01,0x4a,0x43,0x69,0xe8,0xe7,0x6a,0x43,0x78,0x4e,0x5d,0x4e,0x5d,0x4e,0x55,0xfe,0xd9,0xfe,0xd9,0x55,0x00,0x00, -0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0x16,0x00,0x0c,0x00,0x13,0x00,0x31,0x40,0x2e,0x0e,0x0c,0x02,0x03,0x4a,0x06,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x04,0x01,0x4f,0x0d,0x0d,0x0d,0x13,0x0d,0x13,0x11,0x14,0x13,0x33,0x10,0x07,0x06,0x1b, -0x2b,0x01,0x23,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x23,0x01,0x13,0x27,0x07,0x33,0x11,0x33,0x11,0x02,0x44,0x9b,0x21,0x1b,0x82,0x1b,0x21,0x9b,0x01,0x18,0xc0,0xbf,0xbf,0x70,0x9c,0x01,0xe5,0xfe,0x57,0x1b,0x21,0x21,0x1b,0x01,0xa9,0x01,0x31,0xfe,0xf4,0xcf,0xcf,0xfe,0x21,0x01,0xdf,0x00,0x00,0x00,0x00,0x02,0x00,0x00, -0x00,0x32,0x02,0x58,0x02,0x6c,0x00,0x0c,0x00,0x13,0x00,0x33,0x40,0x30,0x0e,0x0c,0x02,0x03,0x02,0x01,0x4c,0x0f,0x0b,0x02,0x01,0x4a,0x0d,0x00,0x02,0x00,0x49,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x11,0x16,0x25,0x21,0x04,0x06,0x1a,0x2b,0x25, -0x35,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x35,0x01,0x05,0x37,0x27,0x15,0x21,0x15,0x21,0x01,0x27,0xeb,0x1b,0x21,0x21,0x1b,0xeb,0x01,0x31,0xfe,0xfb,0xc7,0xc7,0xfe,0xdc,0x01,0x24,0x32,0xa4,0x21,0x1b,0x7a,0x1b,0x21,0xa4,0xfe,0xe3,0xbb,0xbb,0xba,0x6c,0x9c,0x00,0x01,0x00,0x0a,0xff,0xf6,0x02,0x4e,0x01,0x56,0x00,0x05, -0x00,0x06,0xb3,0x04,0x00,0x01,0x32,0x2b,0x05,0x25,0x35,0x05,0x25,0x15,0x01,0x2b,0xfe,0xdf,0x01,0x27,0x01,0x1d,0x0a,0xf6,0x69,0xf9,0xfa,0x69,0x00,0x03,0xff,0xf6,0x01,0xae,0x02,0x62,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x04,0x01,0x01,0x4c,0x09,0x01,0x00,0x4a,0x07,0x05,0x02,0x04,0x01,0x04, -0x86,0x03,0x01,0x00,0x01,0x01,0x00,0x57,0x03,0x01,0x00,0x00,0x01,0x5f,0x02,0x06,0x02,0x01,0x00,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x33,0x15,0x21,0x23,0x35,0x33,0x01,0x13,0x13,0x23,0x27,0x07,0x0a,0xb4,0x01,0xb8,0xb4,0xb4, -0xfd,0xd5,0xf5,0xf5,0x5f,0x96,0x96,0x02,0x8a,0x50,0x50,0x50,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0xb9,0xb9,0x00,0x01,0x00,0x0a,0x00,0x78,0x02,0x4e,0x02,0x1c,0x00,0x16,0x00,0x2f,0x40,0x2c,0x16,0x01,0x01,0x02,0x01,0x4c,0x05,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00, -0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x16,0x31,0x27,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0x9e,0x95,0x56,0x0c,0x1c,0x0c,0x13,0x26,0x0b,0xfe,0xbb,0x01,0x41,0x1a,0x26,0x06,0x05,0x18,0x10,0x57,0x91,0xb0,0x78, -0x68,0x0f,0x1c,0x08,0x04,0x01,0x03,0x6e,0x01,0x02,0x04,0x05,0x19,0x13,0x69,0xd2,0x00,0x01,0x00,0x05,0x00,0x64,0x02,0x4e,0x02,0x30,0x00,0x27,0x00,0x39,0x40,0x36,0x25,0x18,0x02,0x01,0x02,0x01,0x4c,0x09,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02, -0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x01,0x00,0x23,0x21,0x17,0x13,0x0f,0x0c,0x00,0x27,0x01,0x27,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x07,0x06,0x01, -0x75,0x17,0x22,0x0e,0x08,0x1a,0x26,0x06,0x13,0x28,0x11,0xfe,0xf5,0x19,0x23,0x23,0x19,0x01,0x07,0x1a,0x2a,0x0c,0x0a,0x23,0x14,0x11,0x0d,0x22,0x17,0x1d,0x11,0xae,0xad,0x10,0x64,0x22,0x17,0x14,0x10,0x09,0x1e,0x27,0x04,0x04,0x01,0x03,0x20,0x17,0x17,0x20,0x02,0x02,0x04,0x09,0x23,0x15,0x13,0x10,0x14,0x17,0x20,0x19,0xcd,0xcf, -0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01, -0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xbe,0x46,0xbe,0xe1,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b, -0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01,0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xaa,0x6e,0xaa,0xe1,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x07,0x01,0x01,0x00,0x11,0x08,0x01,0x03,0x02,0x01,0x12,0x01,0x03,0x02,0x03,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00, -0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x21,0x36,0x12,0x05,0x06,0x19,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0xa7,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0xe0, -0xfe,0x20,0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x50,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x0f,0x01,0x01,0x02,0x15,0x0e,0x05,0x03,0x00,0x01,0x04,0x01,0x03,0x00,0x03,0x4c,0x00,0x02,0x01,0x02, -0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x17,0x21,0x27,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x01,0x4b,0x86,0x0a,0x1a, -0x09,0x0d,0x28,0x11,0xfe,0x20,0x01,0xe0,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x4b,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x50,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x02,0x49,0x00,0x29,0x00,0x43,0x40,0x40,0x10,0x07,0x02,0x01,0x00,0x24,0x1d,0x16,0x0f,0x08,0x01,0x06, -0x04,0x01,0x25,0x1c,0x02,0x03,0x04,0x03,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x29,0x00,0x29,0x37,0x12,0x17,0x46,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36, -0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0x7f,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0x68,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xfe,0x98, -0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0xff,0x79,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, -0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0xfe,0xd4,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0x1e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, -0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x01,0x4a,0xfe,0xb6,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0xc3,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe, -0xd4,0x01,0xef,0xfe,0x11,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xfe,0xd4,0x02,0x58,0x02,0x0d,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0x39,0xfc,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x02,0xb2,0x00,0x03,0x00,0x17,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0xde,0xfc,0x22,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0x57,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, -0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x04,0x83,0xfb,0x7d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21, -0x11,0x02,0x58,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00, -0x00,0x01,0x00,0x00,0x03,0x57,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x03,0x57,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x4b, -0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x96,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x96,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0xc8,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33, -0x11,0xc8,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0xfe,0xd4,0x01,0x77,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x77,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0xc2,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0xc2,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x0d,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, -0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x0d,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21, -0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x01,0x02,0x0d,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x02,0x0d,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00, -0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03, -0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00, -0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01, -0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x11,0x11,0x21,0x19,0x02,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, -0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, -0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x01,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0xfe,0xca,0x02,0x62,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x01,0x01,0x2c,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01, -0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfd,0xa8,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x01,0x00,0x00, -0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x00,0x37,0x00,0x3c, -0xff,0x10,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73, -0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb,0x00,0x00,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35, -0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, -0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, -0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35, -0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x02,0x1c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x6e,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b, -0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb, -0x00,0xdf,0x00,0xe3,0x00,0xe7,0x00,0xeb,0x00,0xef,0x00,0xf3,0x00,0xf7,0x00,0xfb,0x00,0xff,0x01,0x03,0x01,0x07,0x01,0x0b,0x01,0x0f,0x01,0x13,0x01,0x17,0x01,0x1b,0x01,0x1f,0x01,0x23,0x01,0x27,0x01,0x2b,0x01,0x2f,0x01,0x33,0x01,0x37,0x01,0x3b,0x01,0x3f,0x01,0x43,0x01,0x47,0x01,0x4b,0x01,0x4f,0x01,0x53,0x01,0x57,0x01,0x5b, -0x01,0x5f,0x01,0x63,0x01,0x67,0x01,0x6b,0x01,0x6f,0x01,0x73,0x01,0x77,0x01,0x7b,0x01,0x7f,0x01,0x83,0x01,0x87,0x01,0x8b,0x01,0x8f,0x01,0x93,0x01,0x97,0x01,0x9b,0x01,0x9f,0x01,0xa3,0x01,0xa7,0x01,0xab,0x01,0xaf,0x01,0xb3,0x01,0xb7,0x00,0x00,0x01,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, -0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15, -0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15, -0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15, -0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15, -0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, -0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15, -0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x02,0x1c,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0xe0, -0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xf0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c, -0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0xf0,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xfe,0x20,0x3c,0x01,0xa4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0x3c,0x3c,0xfe,0x5c,0x3c,0x3c,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0x01,0x2c, -0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0x01,0x2c,0x3c,0xfe,0xd4,0x3c,0xfe,0xd4,0x3c,0x01,0x68,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0x01,0x68,0x3c,0xfd,0xe4,0x3c,0xb4,0x3c,0x3c,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c, -0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x01,0xe0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x29,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x51,0x00,0x55, -0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0xad,0x00,0xb1,0x00,0xb5,0x00,0xb9,0x00,0xbd,0x00,0xc1,0x00,0xc5,0x00,0xc9,0x00,0xcd,0x00,0xd1,0x00,0xd5, -0x00,0xd9,0x00,0xdd,0x00,0x00,0x11,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15, -0x33,0x35,0x33,0x11,0x03,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23, -0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23, -0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0xf0,0x3c,0x3c,0x78, -0x3c,0x3c,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0xfe,0xd4, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfa,0xd8,0x04,0x74,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, -0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x09,0x07,0x00,0x0f,0x01,0x0f,0x03,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, -0x59,0x58,0x8d,0x51,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, -0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51, -0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04, -0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d, -0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x3b,0x40,0x38,0x00,0x03, -0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x02,0x00,0x00,0x02,0x59,0x06,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x17,0x16,0x15,0x14,0x10,0x1d,0x11,0x1d,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33, -0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x21,0x11,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0xfe,0xfc,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x01,0x04, -0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x15,0x00,0x2f,0x40,0x2c,0x00,0x02,0x03,0x00,0x03,0x02,0x00,0x80,0x04,0x01,0x00,0x00,0x84,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x01,0x00,0x13,0x12,0x11,0x10,0x09,0x07,0x00, -0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x21,0x11,0x22,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x01,0x04,0x4a,0x76,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36, -0x01,0x04,0x44,0x76,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x23,0x00,0x3e,0x40,0x3b,0x1f,0x14,0x02,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x06,0x01,0x04,0x02,0x04,0x4f,0x1e,0x1e, -0x01,0x00,0x1e,0x23,0x1e,0x23,0x1b,0x19,0x16,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x16,0x17,0x11,0x21,0x2e,0x02,0x23,0x22,0x06,0x06,0x05,0x15,0x3e,0x02,0x37,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c, -0x51,0x51,0x8c,0xfe,0xa3,0x3d,0x6a,0x44,0x01,0x1c,0x06,0x46,0x71,0x46,0x4a,0x76,0x44,0x01,0x1d,0x40,0x65,0x3f,0x06,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x46,0x71,0x46,0x06,0x01,0x1c,0x44,0x6a,0x3d,0x44,0x76,0x63,0xea,0x06,0x3f,0x65,0x40,0x00,0x00,0x08,0xff,0xf6,0x00,0x32,0x02,0x62, -0x02,0x9e,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x35,0x00,0x3b,0x00,0x47,0x00,0x48,0x40,0x45,0x13,0x0e,0x04,0x03,0x01,0x00,0x43,0x3d,0x39,0x38,0x33,0x31,0x2f,0x2b,0x2a,0x22,0x21,0x1b,0x1a,0x16,0x15,0x11,0x0f,0x0b,0x05,0x13,0x02,0x01,0x44,0x3b,0x34,0x03,0x03,0x02,0x03,0x4c,0x00,0x00,0x00,0x01,0x02,0x00, -0x01,0x69,0x00,0x02,0x03,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x47,0x45,0x41,0x3f,0x24,0x21,0x04,0x06,0x18,0x2b,0x13,0x36,0x33,0x32,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x07,0x36,0x37,0x17,0x06,0x07,0x25,0x37,0x16,0x17,0x07,0x26,0x05,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26, -0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x15,0x14,0x07,0x05,0x37,0x16,0x17,0x07,0x26,0x25,0x36,0x37,0x17,0x06,0x07,0x07,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0xdb,0x25,0x2c,0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0xcb,0x29,0x4a,0x19,0x3d,0x23,0x01,0x66,0x19,0x4a,0x29,0x2c,0x23,0xfe,0x0a,0x0a, -0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x02,0x32,0x04,0x04,0x04,0x04,0x30,0x0a,0x0a,0xfd,0xc5,0x2c,0x23,0x3d,0x19,0x4a,0x01,0x69,0x3d,0x23,0x2c,0x29,0x4a,0xed,0x0d,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x02,0x94,0x0a,0x0a,0x30,0x04,0x04,0x04,0x04,0x60,0x4a,0x29,0x2c,0x23,0x3d,0x60,0x2c,0x29,0x4a,0x19,0x3d,0xc0, -0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0x0d,0x25,0x18,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x25,0x4b,0x19,0x3d,0x23,0x2c,0x29,0x03,0x23,0x3d,0x19,0x4a,0x29,0x1d,0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x49,0x40,0x46, -0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00, -0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59, -0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, -0x37,0x59,0x35,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00, -0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x31,0x30,0x21,0x20,0x11,0x10,0x01,0x00,0x39,0x37,0x30,0x3f,0x31,0x3f,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, -0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a, -0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x37,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, -0x37,0x59,0x35,0x2f,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x00,0x02,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, -0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xf5,0x44,0x34,0x35,0x43,0x43, -0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x09,0x02,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03, -0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0a,0xb7,0x0a, -0x08,0x06,0x04,0x02,0x00,0x03,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x17,0x27,0x37,0x17,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0xe8,0x8d,0x8d,0x8d,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x8d,0x8d,0x8d,0x8d,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xd0,0x00,0x07, -0x00,0x1b,0x00,0x25,0x40,0x22,0x18,0x17,0x12,0x0e,0x0d,0x06,0x05,0x02,0x01,0x09,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x13,0x03,0x06,0x17,0x2b,0x33,0x03,0x35,0x13,0x33,0x13,0x15,0x03,0x27,0x33,0x36,0x36,0x37,0x37,0x35,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07, -0x07,0x15,0x17,0x16,0x16,0xf0,0xb4,0xb4,0x7e,0xae,0xae,0x43,0x04,0x07,0x1b,0x0f,0x62,0x62,0x0f,0x1b,0x07,0x04,0x07,0x1c,0x0f,0x63,0x63,0x10,0x1b,0x01,0x44,0x47,0x01,0x45,0xfe,0xbb,0x47,0xfe,0xbc,0x3c,0x0e,0x36,0x1d,0xbb,0x1f,0xbc,0x1d,0x36,0x0e,0x0e,0x36,0x1d,0xbc,0x1f,0xbb,0x1e,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x02,0x58,0x3c,0x02,0x58,0xfd,0xa8,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00, -0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00, -0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x96,0x01,0x2c,0xd2,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03, -0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x27,0x33,0x35,0x23,0x96,0x01,0x2c,0xfa,0xc8,0xc8,0xd2,0x01,0x2c,0xfe, -0xd4,0x32,0xc8,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x29,0x40,0x26,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x04,0x04,0x04,0x07,0x04,0x07,0x12,0x11,0x10,0x05,0x06,0x19,0x2b,0x25,0x21,0x11, -0x21,0x03,0x11,0x21,0x11,0x02,0x58,0xfd,0xa8,0x02,0x58,0x32,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01, -0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0x04,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2b,0x40,0x28,0x06,0x01, -0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x03,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x02,0x58,0xfd,0xda,0x01,0xf4,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x02,0x00,0x00, -0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2c,0x40,0x29,0x06,0x01,0x00,0x02,0x01,0x4c,0x00,0x00,0x02,0x00,0x86,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x05,0x21,0x11,0x02, -0x58,0xfd,0xa8,0x02,0x26,0xfe,0x0c,0x02,0x94,0xfd,0xa8,0x02,0x58,0x32,0xfe,0x0c,0x00,0x03,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x31,0x40,0x2e,0x00,0x00,0x04,0x01,0x03,0x02,0x00,0x03,0x67,0x05,0x01,0x02,0x01,0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f, -0x00,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x33,0x11,0x23,0x21,0x23,0x11,0x33,0x02,0x58,0xfd,0xda,0xe1,0xe1,0x01,0xf4,0xe1,0xe1,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x01,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02, -0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x27,0x01,0x01,0x0a,0x01,0x36,0x01,0x36,0x3c,0x02,0x62,0xfd,0x9e,0x00,0x01,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x01,0x02,0x62,0x32,0x02,0x6c, -0xfe,0xca,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x0a,0xb7,0x00,0x00,0x00,0x76,0x11,0x01,0x06,0x17,0x2b,0x25,0x01,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0x32,0x02,0x62,0x00,0x01,0xff,0xf6,0x00,0x31,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x01,0x01,0x02, -0x58,0xfd,0x9e,0x02,0x62,0x31,0x01,0x37,0x01,0x36,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x24,0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b, -0x27,0x01,0x01,0x25,0x21,0x03,0x0a,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x3c,0x02,0x62,0xfd,0x9e,0x32,0x01,0xbf,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x01,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0xc0,0xfe,0x40,0x32,0x02, -0x6c,0xfe,0xca,0xe3,0xe3,0xe3,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x01,0x21,0x01,0x13,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0xfe,0xca,0xe3,0xfe, -0x3a,0x32,0x02,0x62,0xfe,0x0f,0x01,0xbf,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x25,0x01,0x01,0x03,0x11,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x40,0x32,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x00,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x05,0x02,0x62,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x2d,0x02,0x02,0x58,0xfd,0x9e,0x02,0x62,0xd2,0x96,0x96,0x00,0x00,0x02,0x00,0x00, -0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x05,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0x8e,0xfe,0x72,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02, -0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x72,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x37,0x13,0x13,0x96,0x96, -0x96,0xd2,0x01,0x36,0xfe,0xca,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xcc,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x37,0x11,0x05,0x96,0x01,0x36,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x0f,0x40,0x0c,0x02,0x01,0x00,0x49,0x00,0x00,0x00,0x76, -0x10,0x01,0x06,0x17,0x2b,0x13,0x21,0x03,0x96,0x01,0x2c,0x96,0x01,0xfe,0xfe,0xca,0x00,0x01,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x01,0x11,0x25,0x01,0xc2,0xfe,0xca,0x01,0xfe,0xfe,0xd4,0x96,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x05,0x00,0x24, -0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b,0x37,0x13,0x13,0x27,0x33,0x27,0x96,0x96,0x96,0xec,0xac,0x56,0xd2,0x01,0x36,0xfe,0xca,0x28,0xb2,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xcc, -0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x37,0x11,0x05,0x05,0x37,0x27,0x96,0x01,0x36,0xfe,0xf2,0xb2,0xb2,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x02,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, -0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x03,0x21,0x07,0x37,0x23,0x01,0x2c,0x96,0x01,0x2c,0x96,0x56,0xac,0xc8,0x01,0x36,0xda,0xb2,0x00,0x00,0x02,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x07,0x01,0xc2,0xfe, -0xca,0x01,0x36,0x28,0xb2,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x45,0x40,0x42,0x0a,0x07,0x09,0x03,0x04,0x03,0x04,0x86,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01, -0x03,0x02,0x03,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0x02,0x80,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e, -0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x03,0x02,0x86,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x04, -0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x01,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0xfe,0x8e,0x01,0xd6,0xfe,0xd4,0xaa,0x01,0x0e,0xfe,0x70,0x03,0x34,0x64,0xfc,0x68,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x02,0x00,0x96, -0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x04,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11, -0x08,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0x96,0x01,0xd6,0xfe,0x8e,0x64,0x01,0x0e,0xaa,0xfe,0x70,0x03,0x98,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, -0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x02,0x80,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x64,0xc8,0x64,0x64,0x00,0x00,0x00, -0x00,0x03,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x43,0x40,0x40,0x04,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x09,0x05,0x08,0x03,0x02,0x06,0x01,0x02,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c, -0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x33,0x11,0x05,0x35,0x21,0x15,0x01,0x5e,0x64,0xaa,0xfd,0x80,0xaa,0x64,0xfe,0xf2,0x02,0x80,0x01,0xa4,0x02,0xbc,0xfd,0xa8,0x64,0x64,0x02,0x58,0xfd,0x44,0xc8,0x64,0x64, -0x00,0x02,0xff,0xec,0x00,0xdc,0x01,0xc2,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x04,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x07,0x01,0x05,0x00,0x03,0x05,0x67,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x06,0x01,0x02,0x00,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05, -0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x27,0x35,0x21,0x11,0x33,0x11,0x25,0x35,0x33,0x11,0x33,0x11,0x14,0x01,0x72,0x64,0xfe,0x2a,0xaa,0x64,0xdc,0x64,0x03,0x20,0xfc,0x7c,0xc8,0x64,0x02,0x58,0xfd,0x44,0x00,0x02,0x00,0x96,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x03,0x01,0x00,0x04,0x00,0x85, -0x00,0x04,0x07,0x01,0x05,0x01,0x04,0x05,0x67,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x06,0x01,0x02,0x01,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x37,0x11,0x33,0x11,0x21,0x15,0x25,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x01,0x72, -0xfe,0xf2,0x64,0xaa,0xdc,0x03,0x84,0xfc,0xe0,0x64,0xc8,0x02,0xbc,0xfd,0xa8,0x64,0x00,0x02,0x00,0x96,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06, -0x17,0x2b,0x01,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x04,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x59,0x40,0x56,0x03,0x01,0x01,0x00,0x01,0x85,0x0f,0x0b,0x0e,0x03,0x08,0x07,0x08,0x86, -0x04,0x01,0x00,0x0d,0x05,0x0c,0x03,0x02,0x06,0x00,0x02,0x67,0x0a,0x01,0x06,0x07,0x07,0x06,0x57,0x0a,0x01,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x12,0x12,0x0c,0x0c,0x06,0x06,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x0c,0x11,0x0c,0x11,0x10,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00, -0x05,0x00,0x05,0x11,0x11,0x10,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0xaa,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e,0x01,0xa4,0x64,0x02,0x58,0xfd,0x44,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02, -0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x03,0x01,0x00,0x02,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x05,0x01,0x86,0x00,0x02,0x09,0x01,0x04,0x06,0x02,0x04,0x67,0x00,0x06,0x05,0x05,0x06,0x57,0x00,0x06,0x06, -0x05,0x5f,0x00,0x05,0x06,0x05,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x01,0x35,0x33,0x11,0x33,0x11,0x03,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0x64,0xfe,0x2a,0xaa,0x64,0x64,0xaa,0x01, -0x0e,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x64,0x02,0x58,0xfd,0x44,0xfc,0xcc,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x02,0x01,0x00,0x03,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x06,0x01,0x86,0x00,0x03,0x09,0x01,0x04,0x05, -0x03,0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x13,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15, -0x23,0x11,0x96,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01, -0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x02,0x80,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0xc2, -0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x01,0xd6,0x64,0x64,0xfe,0x70, -0x02,0xd0,0x64,0xfc,0xcc,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06, -0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0x01,0xd6,0xaa,0x64,0x64,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00, -0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00, -0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x03,0xfc,0x00,0x09,0x00,0x2d,0x40,0x2a, -0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0xd0,0x64, -0x02,0x58,0xfd,0xa8,0xfc,0xcc,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11, -0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, -0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, -0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd, -0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11, -0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, -0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f, -0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfc,0xae,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, -0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29, -0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x03,0x52, -0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, -0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x0b,0x00,0x39,0x40,0x36,0x07,0x01,0x05,0x02,0x05,0x86, -0x00,0x00,0x06,0x01,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x04,0x01,0x02,0x03,0x02,0x4f,0x04,0x04,0x00,0x00,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x02,0x80, -0xfe,0x8e,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0x6c,0x64,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01, -0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0xfc,0x68,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03, -0x04,0x86,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x03,0x98,0x64, -0x64,0x64,0xfd,0x94,0x00,0x02,0x00,0x4b,0x01,0x0e,0x02,0x0d,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, -0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x77,0x96,0xfe,0x3e,0x96,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x02,0x00,0xc8,0xff,0x6f,0x01,0x90,0x03,0x69,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, -0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0x01,0xcc,0x01,0x9d,0xfe,0x63,0xfd,0xa3,0x01,0x9f,0xfe,0x61,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, -0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, -0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, -0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b, -0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, -0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00, -0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x32,0x64,0x32,0x00,0x00,0x04,0x00,0x19,0x01,0x0e,0x02,0x3f,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, -0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, -0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x04,0x00,0xc8,0xff,0x3d,0x01,0x90,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, -0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, -0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x0e,0x02,0x6c, -0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x03,0x00,0x25,0x01,0x0e,0x02,0x33,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b, -0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, -0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x03,0x00,0xc8,0xff,0x25,0x01,0x90,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, -0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0x64,0x01,0x46,0xfe,0xba,0xfe,0x52,0x01,0x65,0xfe, -0x9b,0xfe,0x6f,0x01,0x46,0xfe,0xba,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0xff,0xec, -0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x0e,0xc8, -0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11, -0x14,0xdc,0xc8,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x23, -0x11,0xfa,0x32,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, -0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe, -0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, -0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00, -0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, -0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd, -0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x03,0x01,0x01,0x04,0x00,0x01,0x57,0x00,0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11, -0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00, -0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8, -0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, -0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00, -0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30, -0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35, -0x33,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x01,0xa4,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f, -0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xc8,0xdc,0xdc,0xc8,0xdc,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02, -0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc, -0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x05,0x01,0x00,0x01,0x00,0x4f, -0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xdc,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x0d, -0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x11,0xfa,0x3a,0x69,0x48,0x23,0x23,0x66,0x96,0x53,0xfe,0x70,0x01, -0xe0,0x49,0x6c,0x3b,0x64,0x54,0x99,0x67,0xfe,0x20,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0d,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11, -0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x11,0xfa,0x53,0x97,0x65,0x23,0x23,0x47,0x6a,0x3a,0xfe,0x70,0x01,0xe0,0x67,0x99,0x54,0x64,0x3b,0x6c,0x49,0xfe,0x20,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x0d,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00, -0x00,0x00,0x02,0x61,0x03,0x01,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0c,0x14,0x21,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x14,0x23,0x48,0x69,0x3a,0x64,0x53,0x96,0x66,0x01,0x40,0x64,0x3b,0x6c,0x49,0x01,0xcc,0xfe,0x34,0x67,0x99,0x54,0x00,0x00,0x00,0x01,0x00,0xfa, -0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0c,0x0a,0x06,0x05,0x00,0x0d,0x01,0x0d,0x04,0x06,0x16,0x2b,0x01,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x02,0x49, -0x65,0x97,0x53,0x64,0x3a,0x6a,0x47,0x23,0x01,0x40,0x54,0x99,0x67,0x01,0xcc,0xfe,0x34,0x49,0x6c,0x3b,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x0f,0x00,0x28,0x40,0x25,0x0e,0x0b,0x0a,0x09,0x06,0x03,0x02,0x01,0x08,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x04,0x03,0x02,0x02,0x02, -0x76,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x12,0x14,0x05,0x06,0x19,0x2b,0x07,0x35,0x01,0x01,0x35,0x33,0x13,0x13,0x33,0x15,0x01,0x01,0x15,0x23,0x03,0x03,0x14,0x01,0x0d,0xfe,0xf3,0x50,0xf0,0xf0,0x50,0xfe,0xf3,0x01,0x0d,0x50,0xf0,0xf0,0xa0,0x28,0x01,0xe0,0x01,0xe0,0x28,0xfe,0x57,0x01,0xa9,0x28,0xfe,0x20,0xfe,0x20,0x28,0x01, -0xa9,0xfe,0x57,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x05,0x01,0x35,0x33,0x01,0x15,0x02,0x1c,0xfd,0xd0,0x50,0x02,0x30,0xa0,0x03,0xe8, -0x28,0xfc,0x18,0x28,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x07,0x35,0x01,0x33,0x15,0x01,0x14,0x02,0x30,0x50,0xfd,0xd0,0xa0,0x28,0x03,0xe8, -0x28,0xfc,0x18,0x00,0x00,0x02,0x00,0x46,0x01,0x40,0x02,0x12,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, -0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x72,0xa0,0xfe,0x34,0xa0,0x01,0x40,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x02,0x00,0xfa,0xff,0x5b,0x01,0x5e,0x03,0x7d,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, -0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x01,0xb8,0x01,0xc5,0xfe,0x3b,0xfd,0xa3,0x01,0xc7,0xfe,0x39,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, -0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, -0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, -0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b, -0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, -0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02, -0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x35,0x21,0x35,0x21,0x35,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0x01,0x0e,0x32,0x64,0x32,0xc8,0x00,0x00,0x04,0x00,0x19,0x01,0x40,0x02,0x3f,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, -0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, -0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x04,0x00,0xfa,0xff,0x3d,0x01,0x5e,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, -0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, -0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xfa,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c, -0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x03,0x00,0x25,0x01,0x40,0x02,0x33,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b, -0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, -0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x03,0x00,0xfa,0xff,0x25,0x01,0x5e,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, -0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x64,0x64,0x02,0x58,0x01,0x52,0xfe,0xae,0xfe,0x69,0x01,0x4e,0xfe, -0xb2,0xfe,0x64,0x01,0x51,0xfe,0xaf,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0xc8, -0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xc8,0x32,0x64,0x32,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0xfc,0xcc,0x00, -0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e, -0x64,0x01,0x0e,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35, -0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, -0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe, -0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, -0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03, -0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c, -0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70, -0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x03,0x02,0x03,0x85,0x07,0x01,0x06,0x05,0x06,0x86,0x04,0x01,0x02,0x01,0x05,0x02,0x57,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x05,0x5f,0x00,0x05,0x02,0x05,0x4f,0x00,0x00,0x00, -0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x33,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b, -0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0xfe,0xf2,0xfe, -0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11, -0x06,0x06,0x1a,0x2b,0x13,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03, -0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd, -0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, -0x13,0x11,0x23,0x35,0x21,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0xa4,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x32,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00, -0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0xdc,0xc8,0xdc,0xdc,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31, -0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc, -0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x03,0x04,0x03,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x04,0x02,0x00,0x04,0x57,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x05,0x01, -0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xdc,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c, -0x04,0x60,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02,0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xaa, -0x64,0x64,0x64,0xaa,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0xc2,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x04,0x04,0x00,0x57,0x02,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, -0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x14,0xaa,0x64,0x64,0x64,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x02,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x04,0x04,0x01, -0x57,0x03,0x01,0x01,0x01,0x04,0x5f,0x05,0x01,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x64,0x64,0xaa,0x01,0x40,0x03,0x20,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c, -0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21, -0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, -0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00, -0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec, -0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x14,0xdc,0xc8,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00, -0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11, -0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00, -0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, -0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec, -0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0x01, -0x0e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06, -0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xfc,0x9a,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f, -0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02, -0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x66,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x01,0x00,0xfa, -0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00, -0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, -0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x02,0x58,0xfd,0xa8,0x64,0xc8,0x64,0x64,0x00,0x01,0xff,0xec,0x00,0xdc,0x01,0x5e,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x03,0x02,0x03,0x85,0x00,0x02,0x00, -0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x04,0x04,0x00,0x57,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x27,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xdc,0x64,0x64,0x64,0x02,0x58,0xfc,0x7c,0x00,0x00, -0x00,0x01,0x00,0xfa,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x37,0x11,0x33,0x11, -0x21,0x15,0x21,0x15,0x21,0x15,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xdc,0x03,0x84,0xfd,0xa8,0x64,0x64,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x02,0x85,0x0a,0x09,0x02,0x07,0x00,0x07,0x86,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x03,0x02, -0x01,0x01,0x00,0x5f,0x08,0x06,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xaa,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0, -0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x02,0x01,0x02,0x85,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f, -0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x02,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, -0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x00,0x01,0x00,0x85,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x23, -0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xaa,0xaa,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, -0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90, -0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0xd0, -0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, -0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f, -0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e, -0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70, -0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, -0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01, -0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e, -0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00, -0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfa,0x10,0x00, -0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06, -0x1b,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x02,0x03,0x01,0x01,0x00,0x02,0x01,0x67,0x04,0x01,0x00, -0x05,0x05,0x00,0x57,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x31,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x01,0x13,0xfe,0xed,0x02,0x58,0xfe,0xed,0x01,0x13,0x2d,0x02,0x80,0x2d,0x2d,0xfd,0x80,0x2d,0x00,0x00,0x00, -0x00,0x02,0x00,0x44,0xff,0xf5,0x02,0x2e,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x4d,0x40,0x4a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x07,0x01,0x04,0x03,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x61,0x06, -0x01,0x00,0x04,0x00,0x51,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x08,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16, -0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34,0x3c,0x3c,0x34,0xbf,0x34,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x44,0xff,0x5b,0x02,0x2e, -0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x26,0x00,0x5d,0x40,0x5a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x09,0x01,0x04,0x08,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07, -0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x23,0x23,0x16,0x15,0x01,0x00,0x23,0x26,0x23,0x26,0x25,0x24,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35, -0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x87,0x01,0xe0,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34, -0x3c,0x3c,0x34,0xbf,0x34,0x3c,0xe8,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b, -0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x35,0x33,0x03,0x33,0x13,0x33,0x15,0x23,0x13,0x23,0x03,0x3c,0xbd,0xae,0x5f,0xae,0xc4,0xa6,0x97,0x5f,0x97,0x01,0x22,0x50,0x01,0xcc,0xfe,0x34,0x50,0xfe,0x70,0x01,0x90,0x00,0xff,0xff,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x02,0x26,0x03,0x3e,0x00,0x00,0x00,0x06,0x04,0xbb, -0x00,0x00,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0x00,0x37,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04, -0x51,0x29,0x28,0x19,0x18,0x0d,0x0c,0x01,0x00,0x31,0x2f,0x28,0x37,0x29,0x37,0x21,0x1f,0x18,0x27,0x19,0x27,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26, -0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76, -0x4a,0x4a,0x76,0x44,0x44,0x76,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x01,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, -0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21,0x20,0x11,0x10,0x01,0x00,0x33, -0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34, -0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x36,0x49,0x49,0x36,0x36,0x49,0x49,0x36,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x2f,0x32,0x51,0x8d,0x58, -0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x85,0x49,0x36,0x36,0x49,0x49,0x36,0x36,0x49,0x2e,0x2f,0x22,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x29,0x00,0x4b,0x40,0x48,0x24,0x01,0x04,0x03, -0x29,0x28,0x27,0x21,0x04,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x26,0x25,0x23,0x22,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, -0x0f,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44, -0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x01,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x95,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x03,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x00,0x15, -0x00,0x1e,0x00,0x27,0x00,0x24,0x40,0x21,0x24,0x23,0x1b,0x1a,0x14,0x0c,0x09,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x03,0x06,0x17,0x2b,0x05,0x35,0x2e,0x02,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x07,0x15,0x01,0x14, -0x16,0x16,0x17,0x11,0x0e,0x02,0x05,0x34,0x26,0x26,0x27,0x11,0x3e,0x02,0x01,0x13,0x52,0x81,0x4a,0x4a,0x81,0x52,0x32,0x52,0x81,0x4a,0x4a,0x81,0x52,0xfe,0xe3,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x02,0x08,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x6e,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53,0x06,0xa1,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53, -0x06,0xa1,0x01,0xd6,0x46,0x71,0x46,0x06,0x02,0x06,0x06,0x46,0x71,0x46,0x46,0x71,0x46,0x06,0xfd,0xfa,0x06,0x46,0x71,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04, -0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, -0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xce,0x02,0x30,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, -0x76,0x4a,0x4a,0x76,0x44,0xfe,0xf7,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x68,0x01,0xcc,0x02,0x26,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x05,0x01,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00, -0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x03,0x8c,0x01,0x40,0xfe,0xd9,0x50,0x82,0x82,0x01,0xdb,0x4b,0x4b,0xfe,0x8d,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x00,0x04,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x24,0x00,0x42, -0x40,0x3f,0x09,0x01,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x08,0x02,0x07,0x03,0x00,0x04,0x01,0x00,0x69,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x21,0x20,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x06, -0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36,0x37,0x13,0x21,0x13,0x16,0x16,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xc1,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xca,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d, -0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfc,0xcf,0x02,0xda,0xfd,0x26,0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11,0x00,0x42,0x40,0x3f,0x0f,0x0c,0x02,0x00, -0x06,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x00,0x06,0x05,0x06,0x00,0x05,0x80,0x08,0x01,0x05,0x05,0x84,0x03,0x01,0x01,0x06,0x06,0x01,0x57,0x03,0x01,0x01,0x01,0x06,0x5f,0x07,0x01,0x06,0x01,0x06,0x4f,0x00,0x00,0x11,0x10,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1b,0x2b,0x05,0x35,0x23,0x03, -0x33,0x35,0x33,0x15,0x33,0x03,0x23,0x15,0x03,0x03,0x23,0x13,0x13,0x23,0x01,0x13,0x25,0xbc,0xe1,0x32,0xe1,0xbd,0x24,0x2d,0x04,0x72,0xa2,0x72,0x72,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0x01,0x21,0x01,0xd7,0xfe,0x29,0x01,0xd7,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11, -0x00,0x40,0x40,0x3d,0x11,0x0e,0x02,0x06,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x06,0x01,0x85,0x08,0x01,0x05,0x00,0x05,0x86,0x07,0x01,0x06,0x00,0x00,0x06,0x57,0x07,0x01,0x06,0x06,0x00,0x5f,0x04,0x01,0x00,0x06,0x00,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06, -0x1b,0x2b,0x05,0x35,0x23,0x13,0x33,0x35,0x33,0x15,0x33,0x13,0x23,0x15,0x27,0x33,0x11,0x13,0x33,0x03,0x01,0x13,0xe1,0xbe,0x23,0x32,0x24,0xbd,0xe1,0xa3,0x72,0x30,0x73,0x73,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0xbe,0x01,0xd3,0xfe,0x2d,0x01,0xd2,0x00,0x00,0x00,0x03,0x00,0x2d,0xff,0x5b,0x02,0x2b,0x02,0xda,0x00,0x03, -0x00,0x0c,0x00,0x10,0x00,0x3c,0x40,0x39,0x09,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x05,0x01,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06, -0x17,0x2b,0x33,0x13,0x33,0x13,0x25,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x35,0x21,0x15,0x32,0xbe,0x79,0xbd,0xfe,0x7c,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x0d,0xdb,0x01,0xfe,0x02,0xda,0xfd,0x26,0x50,0x01,0x9f,0x34,0x5a,0x17,0x16,0x5a,0x34,0xfd,0x6b,0x4b,0x4b,0x00,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26, -0x03,0xb1,0x00,0x19,0x00,0x1d,0x00,0x26,0x00,0x97,0x4b,0xb0,0x14,0x50,0x58,0x40,0x35,0x00,0x05,0x03,0x01,0x04,0x05,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08, -0x5f,0x00,0x08,0x06,0x08,0x4f,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08,0x5f,0x00,0x08,0x06,0x08,0x4f, -0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x23,0x22,0x1a,0x1d,0x1a,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x06,0x16,0x2b,0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36, -0x37,0x13,0x21,0x13,0x16,0x16,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xad,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d,0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0xfc,0xd1,0x02,0xda,0xfd,0x26, -0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x27,0x40,0x24,0x07,0x06,0x05,0x03,0x02,0x01,0x06,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b, -0x19,0x03,0x06,0x17,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x03,0x35,0x21,0x15,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x30,0x02,0x30,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0xfd,0xf3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58, -0x00,0x00,0x02,0x06,0x04,0x27,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x17,0x00,0x28,0x40,0x25,0x16,0x0d,0x0a,0x01,0x04,0x03,0x00,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x17,0x00,0x17,0x15,0x15,0x15,0x05,0x06,0x19,0x2b,0x05,0x35, -0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x15,0x01,0x13,0x5a,0x69,0x32,0x4e,0x43,0x32,0x43,0x4e,0x32,0x69,0x5a,0x6e,0xc9,0x08,0x75,0x5e,0x01,0x40,0xfe,0xbb,0x47,0x5a,0x08,0x02,0xb6,0xfd,0x4a,0x08,0x5a,0x47,0x01,0x45,0xfe,0xc0,0x5e,0x75,0x08,0xc9,0x00,0x00, -0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x4b,0x40,0x48,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x0b,0x0c,0x02,0x08,0x09,0x01,0x08,0x69,0x0d,0x0a,0x02,0x09,0x06,0x01,0x02,0x03,0x09,0x02,0x69,0x05,0x01,0x03,0x04,0x04,0x03,0x57,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04, -0x4f,0x24,0x23,0x1b,0x1a,0x29,0x28,0x23,0x2b,0x24,0x2b,0x20,0x1f,0x1a,0x22,0x1b,0x22,0x14,0x21,0x11,0x11,0x12,0x14,0x21,0x10,0x0e,0x06,0x1e,0x2b,0x13,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x35, -0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0xff,0x5a,0x05,0x35,0x43,0x43,0x35,0x05,0xff,0xfd,0xa8,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0x05,0x23,0x2d,0x2d,0x23,0x05,0x5f,0x23,0x2d,0x2d,0x23,0x05,0x02,0x58,0x91,0x43,0x35,0x34,0x44,0x87,0x50,0x50,0x87,0x44,0x34,0x35,0x43,0x28,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23, -0x2d,0xa0,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x5b,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, -0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x31,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x05,0x35,0x21,0x15,0xff,0x5a,0xff,0xfd,0xa8,0x02,0x58,0x50,0x02,0x08,0xfd,0xf8,0x50,0xa5,0x4b,0x4b,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x2b,0x40,0x28,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00, -0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x05,0x27,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x01,0x2d,0xc9,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x0a,0xa9,0xa6,0x50,0x01,0x45, -0xfe,0xbb,0x50,0xa6,0x00,0x02,0x00,0x50,0xff,0x5b,0x02,0x17,0x02,0x2d,0x00,0x2c,0x00,0x30,0x00,0x62,0x40,0x5f,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x06,0x0a,0x01, -0x00,0x08,0x06,0x00,0x69,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0b,0x01,0x09,0x08,0x09,0x4f,0x2d,0x2d,0x02,0x00,0x2d,0x30,0x2d,0x30,0x2f,0x2e,0x2a,0x29,0x27,0x24,0x20,0x1e,0x1d,0x1b,0x18,0x15,0x13,0x12,0x10,0x0d,0x00,0x2c,0x02,0x2c,0x0c,0x06,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26, -0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x05,0x35,0x21,0x15,0x01,0x4b,0x34,0x5b,0x6c,0x41,0x46,0x3a,0x3b,0x64,0x58,0x2e,0x53,0x6b,0x09,0x5f,0x05,0x38,0x2b,0x2e,0x5d,0x30,0x2e,0x7b,0x83, -0x33,0x35,0x37,0x31,0x34,0x2e,0x3b,0x04,0x5f,0x0a,0x6d,0xfe,0xc2,0x01,0x9e,0x07,0x58,0x49,0x3e,0x47,0x05,0x04,0x04,0x3a,0x31,0x47,0x4f,0x4c,0x42,0x1d,0x21,0x4b,0x24,0x2a,0x4e,0x30,0x28,0x25,0x30,0x1f,0x1a,0x40,0x49,0x9e,0x4b,0x4b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x41,0x02,0x03,0x03,0x09,0x02,0x26,0x04,0x1b,0x00,0x00, -0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x02,0x7d,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x11,0x00,0x3c,0x40,0x39,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04, -0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x08,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x05,0x35,0x21,0x15,0x01,0x9f,0x49,0x57,0xc8,0x01,0x22,0x26,0x20,0x87, -0xfe,0x16,0x01,0xea,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xa5,0x4b,0x4b,0x00,0x00,0x00,0x00,0x04,0x00,0x7d,0x00,0xd2,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01, -0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b,0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, -0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, -0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xa3,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x41,0x40,0x3e, -0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x25, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x7d,0x01,0x40,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23, -0x2d,0xfe,0x61,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x14,0x00,0x1d,0x00,0x45,0x40,0x42,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x07,0x00,0x07,0x86,0x03,0x01,0x01,0x09,0x01,0x04,0x05,0x01,0x04,0x69,0x0b,0x08,0x02,0x05,0x00,0x00,0x05,0x59,0x0b,0x08,0x02,0x05,0x05,0x00,0x61,0x06,0x01, -0x00,0x05,0x00,0x51,0x16,0x15,0x00,0x00,0x19,0x17,0x15,0x1d,0x16,0x1d,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x11,0x24,0x21,0x0c,0x06,0x1d,0x2b,0x05,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x03,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2a,0x30,0x65,0x77, -0x77,0x65,0x30,0x32,0xde,0xde,0xde,0xde,0x67,0x35,0x35,0x4c,0x59,0x59,0x6e,0x01,0x04,0x75,0x62,0x62,0x75,0xfa,0xfa,0x2d,0xfe,0xac,0x2d,0xfe,0xfc,0x01,0x31,0x01,0x54,0x5c,0x4e,0x4e,0x5c,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x37,0x40,0x34,0x06,0x01,0x02,0x03,0x05,0x01,0x01,0x02, -0x04,0x01,0x00,0x01,0x03,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x14,0x11,0x10,0x06,0x06,0x1c,0x2b,0x21,0x23,0x11,0x23,0x15,0x27,0x37,0x15,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x59,0x5a,0x77, -0x9c,0x9c,0x77,0x5a,0xff,0xff,0x01,0x45,0xa0,0xc8,0xc8,0xa0,0x01,0x45,0xfe,0xbb,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0xf6,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x3a,0x40,0x37,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01, -0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x01,0x00,0x51,0x01,0x00,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x06,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14, -0x06,0x23,0x22,0x26,0x27,0x06,0x06,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37,0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39, -0x32,0x32,0x39,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x2e,0x00,0x4a,0x40,0x47,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x04,0x07,0x02,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01, -0x06,0x05,0x06,0x4f,0x2b,0x2b,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15, -0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x07,0x35,0x21,0x15,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0xaf,0x01,0xea,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37, -0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39,0x32,0x32,0x39,0x9b,0x4b,0x4b,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05, -0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e,0x09,0x06,0x02,0x03,0x02,0x01,0x4c,0x00, -0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x21,0x01,0x05,0x21,0x01,0x02,0x58,0x32,0xfe,0x2a,0x01,0xd6,0xfe,0x0c,0x01,0xd8,0xfe,0x28,0x6f,0x03, -0xad,0xfc,0x53,0x03,0x80,0xfc,0xda,0x2d,0x03,0x29,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0c,0x00,0x1c,0x00,0x25,0x00,0x55,0x40,0x52,0x25,0x1f,0x0a,0x07,0x04,0x04,0x05,0x01,0x4c,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x09,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x0a,0x01,0x04,0x00, -0x07,0x06,0x04,0x07,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01,0x01,0x06,0x01,0x4f,0x0e,0x0d,0x05,0x04,0x00,0x00,0x23,0x21,0x1e,0x1d,0x16,0x14,0x0d,0x1c,0x0e,0x1c,0x09,0x08,0x04,0x0c,0x05,0x0c,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x32,0x16,0x17,0x35,0x21,0x15, -0x36,0x36,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x07,0x21,0x35,0x06,0x06,0x23,0x22,0x26,0x27,0x02,0x58,0xfe,0xd4,0x50,0x83,0x27,0xfe,0x0c,0x28,0x82,0x50,0x48,0x71,0x41,0x41,0x71,0x48,0x47,0x71,0x42,0x42,0x71,0xb3,0x01,0xf4,0x27,0x83,0x50,0x50,0x82,0x28,0x6f,0x03,0xad,0xfc,0x53, -0x03,0x04,0x46,0x3b,0xfd,0xfd,0x3c,0x45,0xfd,0xd9,0x42,0x71,0x47,0x47,0x71,0x42,0x42,0x71,0x47,0x47,0x71,0x42,0xb0,0xfe,0x3b,0x46,0x45,0x3c,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x1f,0x00,0x4c,0x40,0x49,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x09,0x01,0x04,0x07, -0x05,0x04,0x69,0x00,0x07,0x0a,0x01,0x06,0x02,0x07,0x06,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x15,0x14,0x09,0x08,0x00,0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11, -0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0xde,0x29,0x22, -0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x4c,0x40,0x49,0x0d,0x0a,0x02,0x06,0x02,0x01,0x4c,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02, -0x00,0x06,0x05,0x02,0x06,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x07,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00,0x13,0x12,0x0c,0x0b,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x21,0x35,0x01,0x21,0x11,0x03,0x23,0x03,0x13,0x36, -0x36,0x37,0x13,0x21,0x13,0x16,0x16,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xbd,0x79,0xbe,0xfe,0x05,0x0f,0x0e,0x70,0xfe,0xd9,0x6f,0x0e,0x14,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x37,0x37,0xfc,0xad,0x02,0xf7,0xfd,0x4b,0x02,0xb6,0xfd,0x90,0x17,0x5a,0x34,0x01,0x9f,0xfe,0x60,0x34,0x59,0x00,0x00,0x00,0x04,0x00,0x00, -0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x16,0x00,0x50,0x40,0x4d,0x0f,0x01,0x04,0x02,0x08,0x05,0x02,0x06,0x04,0x02,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x67,0x00,0x05,0x01,0x01,0x05,0x57,0x00,0x05,0x05,0x01, -0x5f,0x07,0x01,0x01,0x05,0x01,0x4f,0x04,0x04,0x00,0x00,0x16,0x15,0x14,0x13,0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x13,0x33,0x13,0x11,0x01,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x21,0x35,0x21,0x02,0x58,0xfd,0xda,0xbe,0x79,0xbd,0xfe,0x73, -0x01,0x27,0x70,0x0d,0x12,0x05,0x04,0x12,0x0e,0xd6,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfd,0x14,0x02,0xb5,0xfd,0x4b,0x02,0xec,0xfd,0x3f,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x34,0xfd,0xce,0x42,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x08,0x00,0x0c,0x00,0x11,0x00,0x37, -0x40,0x34,0x11,0x10,0x0f,0x0c,0x0b,0x0a,0x08,0x05,0x08,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0e,0x0d,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x17,0x11,0x21,0x11, -0x13,0x37,0x27,0x07,0x03,0x21,0x11,0x07,0x27,0x02,0x58,0xfe,0xd4,0xfa,0xfe,0x0c,0xfa,0xe8,0xe8,0xe8,0x12,0x01,0xf4,0xfa,0xfa,0x6f,0x03,0xad,0xfc,0x53,0x03,0x0e,0xfb,0x01,0x6d,0xfe,0x93,0xfe,0xdc,0xe8,0xe9,0xe9,0xfe,0x56,0x01,0x6e,0xfa,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13, -0x00,0x17,0x00,0x23,0x00,0x5d,0x40,0x5a,0x00,0x00,0x0b,0x01,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x0c,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x00,0x07,0x09,0x02,0x07,0x67,0x00,0x09,0x0d,0x01,0x08,0x06,0x09,0x08,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x0a,0x01,0x01,0x06,0x01,0x4f,0x19,0x18,0x09,0x08, -0x04,0x04,0x00,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x17,0x16,0x15,0x14,0x0f,0x0d,0x08,0x13,0x09,0x13,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x21,0x11,0x21,0x17,0x22,0x26,0x35,0x34, -0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xfe,0xe0,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x7c,0x01,0x84,0xfe,0xd4,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfd,0xd9,0x01,0x84,0xf2,0x29,0x22,0x22, -0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x47,0x40,0x44,0x14,0x13,0x11,0x10,0x04,0x04,0x03,0x12,0x01,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00, -0x02,0x02,0x01,0x60,0x07,0x01,0x01,0x02,0x01,0x50,0x00,0x00,0x1e,0x1d,0x19,0x18,0x0c,0x0b,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x11,0x14,0x06,0x07,0x33,0x36,0x36,0x37,0x37,0x15,0x07,0x27,0x35,0x17,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x23,0x02,0x58, -0xfd,0xda,0x01,0xf4,0xcd,0x03,0x02,0x0a,0x05,0x1b,0x16,0x60,0xc7,0xc9,0x5f,0x16,0x1d,0x04,0x0a,0x01,0x04,0xcd,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xc1,0x16,0x2d,0x0d,0x06,0x1d,0x12,0x51,0x69,0xa9,0xa9,0x69,0x50,0x12,0x1d,0x07,0x0d,0x2d,0x16,0x02,0x3f,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03, -0x00,0x0e,0x00,0x14,0x00,0x3e,0x40,0x3b,0x14,0x11,0x0e,0x0b,0x07,0x05,0x04,0x02,0x01,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x00,0x00,0x02,0x04,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x05,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x00,0x03,0x00,0x03,0x11, -0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x35,0x21,0x15,0x11,0x21,0x11,0x03,0x23,0x03,0x02,0x58,0xfe,0xb4,0x0b,0x12,0x04,0x05,0x13,0x0a,0xd7,0xfe,0x0c,0x01,0xf4,0xdb,0x3e,0xdb,0x6f,0x03,0xad,0xfc,0x53,0xf0,0x1c,0x3a,0x11,0x11,0x3b,0x1b,0x02,0x49,0x47,0x3c,0xfc,0xe9,0x02,0x8f,0xfd, -0xa8,0x02,0x58,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x47,0x40,0x44,0x00,0x00,0x09,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01, -0x01,0x06,0x01,0x4f,0x04,0x04,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0a,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x6f, -0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0xf7,0x01,0x09,0xfe,0x07,0xa0,0xfe,0x06,0x01,0x0a,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00, -0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x05,0x11,0x03,0x25,0x11,0x25,0x36,0x36,0x37,0x26,0x26,0x01,0x21,0x11,0x05,0x02,0x58,0xfd,0xda,0x01,0xf4,0x78,0xfe, -0x84,0x01,0x7c,0x13,0x21,0x08,0x09,0x22,0xfe,0x73,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x7c,0xfa,0x01,0x76,0xfe,0x6e,0xbc,0xfe,0x59,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x47,0x01,0x79,0xfa,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x02,0x26,0x04,0x4d,0x00,0x28,0x01,0x06,0x05,0x85, -0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x28,0xb0,0x35,0x2b,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x17,0x01,0x06,0x05,0x18,0x11,0x0a,0x03,0x03,0x06,0x0b,0x01,0x04,0x03,0x03,0x4c,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x80,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00, -0x00,0x07,0x05,0x00,0x07,0x67,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1a,0x13,0x12,0x10,0x0f,0x08,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x22,0x26, -0x27,0x15,0x16,0x16,0x17,0x17,0x23,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xf4,0x10,0x29,0x0d,0x09,0x1a,0x0a,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0d,0x19,0x07,0x0d,0x29,0x10,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x01,0x82,0x03,0x01,0x09,0x07,0x19,0x0d,0x6e, -0xc8,0xc8,0x6d,0x10,0x19,0x06,0x09,0x02,0x03,0x01,0x81,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03, -0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x25,0x35,0x01,0x05,0x11,0x05,0x06,0x06,0x07,0x16,0x16,0x03,0x21,0x35,0x25,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x84,0x01,0x7c,0xfe,0x84,0x13,0x21,0x08,0x09, -0x22,0x67,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x89,0xfa,0x7d,0xfe,0x41,0xbc,0x01,0xa7,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x64,0x7e,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1b,0x00,0x67,0x40,0x64,0x0f,0x01,0x05,0x03,0x02,0x03,0x05,0x02, -0x80,0x00,0x0c,0x0b,0x0a,0x0b,0x0c,0x0a,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x04,0x01,0x02,0x09,0x01,0x07,0x06,0x02,0x07,0x67,0x08,0x01,0x06,0x0d,0x01,0x0b,0x0c,0x06,0x0b,0x67,0x00,0x0a,0x01,0x01,0x0a,0x57,0x00,0x0a,0x0a,0x01,0x5f,0x0e,0x01,0x01,0x0a,0x01,0x4f,0x04,0x04,0x00,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16, -0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x10,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x07,0x33,0x11,0x21,0x11,0x21,0x37,0x01,0x33,0x37,0x23,0x05,0x33,0x35,0x23,0x01,0x21,0x11,0x21,0x07,0x23,0x37,0x23,0x02,0x58,0x8e,0x40,0x9c,0xfe,0x0c, -0x01,0x12,0x40,0xfe,0xae,0xba,0x3a,0xf4,0x01,0x00,0xf4,0xba,0xfe,0xc6,0x01,0xf4,0xfe,0xee,0x3e,0x46,0x3e,0x9c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x26,0xaf,0x01,0x09,0xfe,0xf7,0xaf,0xfe,0x61,0xa0,0xa0,0xa0,0xfe,0x06,0x01,0x0a,0xaa,0xaa,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x1c, -0x00,0x2a,0x00,0xa7,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x3a,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x72,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b, -0x01,0x01,0x02,0x01,0x4f,0x1b,0x40,0x3b,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x0a,0x80,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b,0x01,0x01, -0x02,0x01,0x4f,0x59,0x40,0x24,0x1e,0x1d,0x08,0x08,0x00,0x00,0x25,0x22,0x1d,0x2a,0x1e,0x29,0x08,0x1c,0x08,0x1c,0x1b,0x1a,0x14,0x12,0x11,0x0f,0x0b,0x09,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32, -0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x95,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xbc, -0xb4,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x69,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x0d,0x01,0x04,0x05,0x1a,0x13,0x0c,0x03,0x07,0x04,0x19,0x01,0x06,0x07,0x03,0x4c,0x00,0x05,0x03,0x04,0x03,0x05, -0x04,0x80,0x00,0x06,0x07,0x02,0x07,0x06,0x02,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1c,0x15,0x14,0x12,0x11,0x0a,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06, -0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x11,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xf4,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xf4,0x6f,0x03,0xad, -0xfc,0x53,0x2d,0x03,0x53,0xfe,0x7f,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x3c,0x40,0x39,0x08,0x05,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x06,0x01,0x03,0x01, -0x01,0x03,0x57,0x06,0x01,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x07,0x07,0x04,0x04,0x00,0x00,0x07,0x09,0x07,0x09,0x04,0x06,0x04,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x01,0x13,0x11,0x01,0x02,0x58,0xfd,0xda,0x01,0xd8,0x1c,0xfe,0x28,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80, -0xfc,0xd6,0x03,0x2a,0xfc,0xad,0x03,0x29,0xfc,0xd7,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x48,0x40,0x45,0x10,0x01,0x03,0x06,0x12,0x11,0x0f,0x0e,0x04,0x02,0x03,0x02,0x4c,0x04,0x01,0x03,0x06,0x02,0x06,0x03,0x02,0x80,0x00,0x00,0x00,0x06,0x03,0x00,0x06,0x67,0x05,0x01,0x02,0x01, -0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x07,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1b,0x17,0x16,0x0a,0x09,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x33,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x35,0x37,0x17,0x15,0x27,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11, -0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0xcd,0x04,0x01,0x0a,0x04,0x1d,0x16,0x5f,0xc9,0xc7,0x60,0x16,0x1b,0x05,0x0a,0x02,0x03,0xcd,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x02,0x40,0x16,0x2d,0x0d,0x07,0x1d,0x12,0x50,0x69,0xa9,0xa9,0x69,0x51,0x12,0x1d,0x06,0x0d,0x2d,0x16,0xfd,0xc0,0x03,0x53,0x00,0x00,0x00,0x00,0x03,0x00,0x00, -0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x14,0x00,0x43,0x40,0x40,0x14,0x10,0x0c,0x08,0x05,0x05,0x04,0x03,0x01,0x4c,0x06,0x01,0x03,0x02,0x04,0x02,0x03,0x04,0x80,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x05,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00, -0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x13,0x11,0x21,0x11,0x13,0x03,0x21,0x35,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x02,0x58,0xfe,0xf3,0xdb,0xfe,0x0c,0xdb,0xdb,0x01,0xf4,0xd9,0x0a,0x13,0x05,0x04,0x12,0x0b,0xd8,0x6f,0x03,0xad,0xfc,0x53,0x03,0x49, -0xfd,0xa8,0x02,0x8f,0xfd,0x71,0x02,0x58,0xfc,0xe4,0x42,0x02,0x4e,0x1b,0x3b,0x11,0x11,0x3a,0x1c,0xfd,0xb2,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x49,0x40,0x46,0x0c,0x09,0x02,0x05,0x04,0x01,0x4c,0x00,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x07,0x01,0x05,0x02,0x03, -0x05,0x02,0x7e,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x27,0x35,0x33,0x15, -0x07,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xd6,0x0c,0x60,0x0b,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0x9d,0x96,0x96,0x96,0x96,0x00,0x00,0x02,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85, -0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x06,0x17,0x2b,0x01,0x27,0x35,0x33,0x15,0x07,0x03,0x35,0x21,0x15,0x01,0x08,0x0c,0x60,0x0b,0xc5,0x01,0x40,0x01,0xae,0x96,0x96,0x96,0x96,0xfd,0xad,0x4b,0x4b, -0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x3c,0x40,0x39,0x0e,0x01,0x03,0x04,0x01,0x4c,0x05,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x06,0x01,0x03,0x01,0x01,0x03,0x59,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x03,0x01,0x51,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f, -0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x07,0x06,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f, -0xb4,0x02,0x18,0x5f,0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x6c,0x02,0xda,0x00,0x0e,0x00,0x3d,0x40,0x3a,0x09,0x01,0x01,0x02,0x0a,0x01,0x00,0x01,0x0b,0x01,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x02,0x85,0x06, -0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x14,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x35,0x17,0x07,0x35,0x23,0x11,0xff,0xff,0xff,0x5a,0x77,0x9c,0x9c,0x77,0x01,0x45, -0x50,0x01,0x45,0xfe,0xbb,0xa0,0xc8,0xc8,0xa0,0xfe,0xbb,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xe4,0x00,0x0d,0x00,0x11,0x00,0x15,0x00,0x48,0x40,0x45,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x07,0x01,0x03,0x04,0x00,0x03,0x04,0x7e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00, -0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x12,0x12,0x0e,0x0e,0x01,0x00,0x12,0x15,0x12,0x15,0x14,0x13,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x07,0x35,0x21,0x15,0x01,0x22,0x21,0x2a, -0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x8c,0x50,0x82,0x82,0x6e,0x01,0x40,0x02,0x4e,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x37,0xfe,0xc9,0xb9,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, -0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x13,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x4b,0x97,0xa6,0xc4,0xae,0x5f,0xae,0xbd,0xdb,0x97,0x6e,0x01,0x90,0x50,0x01,0xcc,0xfe,0x34,0x50, -0xfe,0x70,0x00,0x00,0x00,0x02,0x00,0xaa,0xff,0x91,0x01,0xae,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x17,0x11, -0x21,0x11,0x27,0x33,0x11,0x23,0xaa,0x01,0x04,0xd2,0xa0,0xa0,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x03,0x00,0x7d,0x00,0xda,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x42,0x40,0x3f,0x1c,0x01,0x04,0x00,0x01,0x4c,0x21,0x20,0x1f,0x19,0x04,0x04,0x49,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00, -0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x07,0x02,0x06,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x1e,0x1d,0x1b,0x1a,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x08,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, -0x13,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x09,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xab,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43, -0x00,0x01,0x00,0x41,0xff,0x92,0x02,0x17,0x03,0x3e,0x00,0x23,0x00,0x90,0x40,0x0c,0x0a,0x07,0x02,0x06,0x03,0x1c,0x19,0x02,0x07,0x02,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x31,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x02,0x03,0x72,0x08,0x01,0x07,0x02,0x04,0x06,0x07,0x72,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06, -0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59,0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x1b,0x40,0x33,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x00,0x03,0x06,0x80,0x08,0x01,0x07,0x02,0x04,0x02,0x07,0x04,0x80,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06,0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59, -0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x23,0x13,0x23,0x09,0x06,0x1d,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06, -0x15,0x15,0x41,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x25,0x15,0x16,0x19,0x55,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x26,0x14,0x16,0x19,0x01,0x02,0x0f,0x3e,0x49,0x0b,0x08,0x01,0xb9,0xfe,0x2a,0x0d,0x13,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x0a,0x08,0xfe,0x83,0x01,0x9a,0x0d,0x14,0x18,0x15,0x1e,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12, -0x02,0xaf,0x02,0x26,0x04,0x22,0x00,0x00,0x01,0x07,0x06,0x68,0x02,0x58,0xff,0xa6,0x00,0x09,0xb1,0x01,0x02,0xb8,0xff,0xa6,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58,0x00,0x00,0x02,0x06,0x04,0x26,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0x30,0x00,0x11, -0x00,0x1d,0x00,0x29,0x00,0x49,0x40,0x46,0x08,0x03,0x02,0x01,0x04,0x01,0x86,0x00,0x00,0x00,0x02,0x05,0x00,0x02,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0a,0x01,0x06,0x04,0x04,0x06,0x59,0x0a,0x01,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x1f,0x1e,0x13,0x12,0x00,0x00,0x25,0x23,0x1e,0x29,0x1f,0x29,0x19,0x17, -0x12,0x1d,0x13,0x1d,0x00,0x11,0x00,0x11,0x23,0x13,0x23,0x0b,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x50,0x77,0x65,0x65,0x77,0x32,0x5c, -0x4e,0x4e,0x5c,0xaa,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x01,0x54,0x65,0x77,0x77,0x65,0xfe,0xac,0x01,0x59,0x4e,0x5c,0x5c,0x4e,0xfe,0xa7,0xe6,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58, -0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x45,0x40,0x42,0x0a,0x01,0x07,0x04,0x07,0x86,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x57,0x00,0x05,0x05,0x04,0x5f,0x06,0x01,0x04,0x05,0x04,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1f,0x18,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13, -0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0b,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23, -0x25,0xff,0x02,0x58,0xff,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x52,0x40,0x4f,0x0c,0x01,0x07,0x00,0x07,0x86,0x00,0x03,0x04,0x01,0x02,0x01, -0x03,0x02,0x67,0x05,0x01,0x01,0x0e,0x0b,0x02,0x08,0x09,0x01,0x08,0x69,0x0a,0x0d,0x02,0x09,0x00,0x00,0x09,0x59,0x0a,0x0d,0x02,0x09,0x09,0x00,0x61,0x06,0x01,0x00,0x09,0x00,0x51,0x23,0x23,0x1a,0x1a,0x00,0x00,0x23,0x2b,0x23,0x2b,0x27,0x25,0x1a,0x22,0x1a,0x22,0x1e,0x1c,0x00,0x19,0x00,0x19,0x14,0x21,0x11,0x11,0x12,0x14,0x21, -0x0f,0x06,0x1d,0x2b,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x27,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x37,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0xff,0x02,0x58,0xff,0x05,0x35,0x43,0x43,0x35, -0x05,0x5f,0x05,0x05,0x23,0x2d,0x2d,0x87,0x05,0x05,0x23,0x2d,0x2d,0x91,0x44,0x34,0x35,0x43,0x87,0x50,0x50,0x87,0x43,0x35,0x34,0x44,0x91,0xb9,0xa0,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23,0x2d,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xfd,0x00,0x07,0x00,0x0b,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x86,0x00, -0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x06,0x1c,0x2b,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x21,0x02,0x58,0xff,0x5a,0xff,0x02,0x58,0xfd,0xa8,0x02,0x58,0x50,0xfd,0xf8,0x02,0x08,0xf5,0x4b, -0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0e,0x00,0x2b,0x40,0x28,0x06,0x01,0x00,0x01,0x00,0x85,0x00,0x03,0x02,0x03,0x86,0x05,0x01,0x01,0x02,0x02,0x01,0x57,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x01,0x17,0x23,0x15,0x33,0x15,0x23, -0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x01,0x2d,0xc7,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x02,0xe4,0xa9,0xa6,0x50,0xfe,0xbb,0x01,0x45,0x50,0xa6,0x00,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1e,0x00,0x2f,0x00,0x58,0x40,0x55,0x1d,0x01,0x07,0x02,0x23,0x01,0x06,0x03,0x02,0x4c,0x00,0x01, -0x00,0x04,0x02,0x01,0x04,0x69,0x09,0x01,0x02,0x00,0x07,0x03,0x02,0x07,0x69,0x00,0x03,0x00,0x06,0x05,0x03,0x06,0x69,0x0a,0x01,0x05,0x00,0x00,0x05,0x59,0x0a,0x01,0x05,0x05,0x00,0x61,0x08,0x01,0x00,0x05,0x00,0x51,0x20,0x1f,0x0f,0x0e,0x01,0x00,0x2b,0x29,0x26,0x24,0x1f,0x2f,0x20,0x2f,0x1a,0x18,0x14,0x12,0x0e,0x1e,0x0f,0x1e, -0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x13,0x32,0x36,0x35,0x35,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72, -0x72,0x9a,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x3f,0x3b,0x3a,0x40,0x0e,0x6c,0x3b,0x3f,0x0e,0x34,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x6a,0x72,0x01,0xd3,0x1d,0x25,0x1d,0x2d,0x7b,0x3e,0x43,0x43,0x3e,0x8c,0x43,0xfe,0x7e,0x43,0x3e,0x9a,0x43,0x1d,0x25,0x1d,0x2d,0x89,0x3e,0x43, -0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x4d,0x40,0x4a,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x05,0x0b,0x06,0x0a,0x03,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21, -0x20,0x11,0x10,0x01,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16, -0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xda,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0xfe,0xc8,0x18,0x20,0x20,0x18, -0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xd1,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xe4,0x00,0x0e,0x00,0x14,0x00,0x1c, -0x00,0x3d,0x40,0x3a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x07,0x01,0x04,0x00,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x5f,0x06,0x01,0x00,0x04,0x00,0x4f,0x16,0x15,0x01,0x00,0x1a,0x18,0x15,0x1c,0x16,0x1c,0x13,0x12,0x10,0x0f,0x08,0x06,0x00,0x0e,0x01,0x0d,0x08,0x06,0x16,0x2b,0x33, -0x22,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x23,0x25,0x33,0x13,0x35,0x23,0x15,0x13,0x32,0x35,0x34,0x23,0x22,0x15,0x14,0x3b,0x45,0x13,0xf2,0x10,0x21,0x21,0x10,0xf1,0x14,0x45,0xfe,0xf6,0x31,0x0a,0x44,0x21,0x2c,0x2c,0x2c,0x38,0x1a,0x2e,0x02,0x3e,0x26,0x26,0xfd,0xc2,0x2e,0x1a,0x38,0xc8,0x01,0x17,0x47, -0x47,0xfe,0x5e,0x2a,0x2a,0x2a,0x2a,0x00,0x00,0x01,0x00,0x14,0xff,0x92,0x02,0x44,0x03,0x48,0x00,0x05,0x00,0x1c,0x40,0x19,0x03,0x01,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x01,0x03,0x21,0x01,0x13,0x21,0x01,0xd6,0xb4,0x01,0x22,0xfd,0xee,0xf5, -0xfe,0xed,0x03,0x48,0xfe,0x70,0xfd,0xda,0x01,0xa4,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x73,0x02,0x34,0x02,0x6e,0x00,0x05,0x00,0x06,0xb3,0x05,0x03,0x01,0x32,0x2b,0x13,0x37,0x17,0x13,0x17,0x01,0x25,0x3f,0x90,0xfb,0x45,0xfe,0xc9,0x01,0x48,0x42,0x8e,0x01,0x72,0x30,0xfe,0x35,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x64,0x02,0x16, -0x02,0x38,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x7b,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x65,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x00,0x01,0x00,0x1f,0x00,0x5b,0x02,0x39,0x02,0x75,0x00,0x0b,0x00,0x06,0xb3,0x0a, -0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x59,0x39,0xd3,0xd4,0x3a,0xd4,0xd2,0x39,0xd3,0xd4,0x3a,0xd4,0x5c,0x39,0xd2,0xd4,0x3a,0xd4,0xd3,0x39,0xd2,0xd4,0x3a,0xd4,0x00,0x01,0x00,0x27,0x00,0x3c,0x02,0x30,0x02,0x94,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x37,0x27,0x17, -0x37,0x17,0x37,0x07,0x17,0x27,0x07,0x27,0x27,0xab,0xaa,0xd7,0x2d,0x2c,0xd7,0xaa,0xab,0xd7,0x2d,0x2d,0xd2,0x96,0x96,0x49,0xdf,0xde,0x48,0x96,0x96,0x49,0xdf,0xdf,0x00,0x03,0x00,0x0f,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x1d,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x02,0x18,0x01,0x09,0x06,0x02,0x4c,0x00,0x02, -0x04,0x02,0x85,0x0b,0x03,0x02,0x01,0x00,0x05,0x00,0x01,0x05,0x80,0x07,0x01,0x05,0x06,0x00,0x05,0x06,0x7e,0x0c,0x0a,0x02,0x08,0x09,0x08,0x86,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x67,0x00,0x06,0x09,0x09,0x06,0x57,0x00,0x06,0x06,0x09,0x5f,0x00,0x09,0x06,0x09,0x4f,0x11,0x11,0x00,0x00,0x11,0x1d,0x11,0x1d,0x1c,0x1b,0x1a,0x19, -0x17,0x16,0x15,0x14,0x13,0x12,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0d,0x06,0x19,0x2b,0x01,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x33,0x03,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x01,0x3c,0x1c,0xb0,0x1b,0x46,0x94,0x4a,0x94,0x9e,0x08,0x12,0x02,0x02,0x12, -0x08,0x22,0x7d,0x11,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x41,0x41,0x01,0x4f,0xfe,0xb1,0xce,0x13,0x2a,0x0d,0x0d,0x2a,0x13,0x52,0xfd,0xf9,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x04,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x4b,0x00,0x6c,0x40,0x69,0x07,0x01, -0x05,0x02,0x01,0x4c,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x0c,0x01,0x01,0x09,0x04,0x01,0x67,0x00,0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d, -0x01,0x06,0x08,0x06,0x51,0x21,0x20,0x00,0x00,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0e,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15, -0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14, -0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13, -0x19,0xdb,0x19,0x13,0x13,0x17,0xfd,0xe1,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x30,0x02,0xe4,0x00,0x27,0x00,0x35,0x00,0x4b,0x40,0x48,0x19,0x01,0x07,0x03,0x01,0x4c, -0x00,0x03,0x00,0x07,0x06,0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x05,0x05,0x00,0x5f,0x08,0x01,0x00,0x00,0x3d,0x00,0x4e,0x29,0x28,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a, -0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x45,0x55,0x7e,0x45,0x90,0x7e, -0x72,0x83,0x56,0x4a,0x49,0x57,0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x23,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xb4,0x47,0x83,0x58,0x01,0x54,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55,0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x01,0x2e,0x31,0x2b,0x75,0x2c, -0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0xf7,0x02,0x67,0x02,0xe4,0x00,0x24,0x00,0x30,0x00,0x9b,0x40,0x09,0x28,0x21,0x1e,0x1b,0x04,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x34,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00, -0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f, -0x00,0x06,0x06,0x39,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x26,0x25,0x01,0x00,0x2b,0x29,0x25,0x30,0x26,0x30,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36, -0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd7,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53, -0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x00,0x02,0x00,0x41,0xff,0x4c,0x01,0xf9,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x2a, -0x40,0x27,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x06,0x04,0x05,0x03,0x02,0x02,0x3d,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x25,0x11,0x07,0x09,0x18,0x2b,0x17,0x11,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0xff,0x55,0x69,0x69,0x55,0x50,0x5a, -0x50,0xb4,0x01,0xea,0x5e,0x4c,0x50,0x4d,0x5d,0xfc,0x72,0x03,0x8e,0xfc,0x72,0x00,0x00,0x02,0x00,0x4d,0xff,0x66,0x02,0x0b,0x02,0xe4,0x00,0x3b,0x00,0x49,0x00,0x47,0x40,0x44,0x16,0x01,0x06,0x04,0x01,0x4c,0x00,0x04,0x05,0x06,0x05,0x04,0x06,0x80,0x00,0x06,0x01,0x05,0x06,0x01,0x7e,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x02, -0x07,0x01,0x00,0x02,0x00,0x65,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x05,0x4e,0x01,0x00,0x33,0x32,0x27,0x24,0x22,0x21,0x1f,0x1c,0x09,0x06,0x04,0x03,0x00,0x3b,0x01,0x3a,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x37,0x35,0x26,0x26, -0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x13,0x16,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x06,0x15,0x14,0x16,0x17,0x01,0x13,0x5b,0x6b,0x5f,0x38,0x2f,0x32,0x32,0x39,0x33,0x32,0x5c,0x2e,0x44,0x26,0x3b, -0x34,0x34,0x38,0x66,0x57,0x32,0x4f,0x66,0x07,0x5f,0x04,0x32,0x27,0x32,0x2e,0x35,0x24,0x20,0x78,0x47,0x51,0x44,0x2f,0x15,0x37,0x2a,0x6a,0x5c,0x05,0x2c,0x38,0x2c,0x23,0x4a,0x2c,0x38,0x2b,0x22,0x9a,0x53,0x47,0x22,0x28,0x2e,0x28,0x24,0x33,0x08,0x0f,0x08,0x34,0x4a,0x28,0x3a,0x48,0x07,0x02,0x0c,0x4c,0x38,0x4a,0x57,0x4e,0x43, -0x1e,0x23,0x2c,0x26,0x21,0x2e,0x06,0x17,0x0d,0x62,0x3d,0x3a,0x45,0x03,0x02,0x02,0x21,0x41,0x33,0x4e,0x5b,0x01,0x55,0x07,0x42,0x35,0x23,0x36,0x06,0x0d,0x08,0x40,0x33,0x26,0x38,0x06,0x00,0x03,0x00,0x2d,0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x3f,0x00,0x69,0xb1,0x06,0x64,0x44,0x40,0x5e,0x00,0x06,0x07,0x09, -0x07,0x06,0x09,0x80,0x00,0x09,0x08,0x07,0x09,0x08,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x00,0x08,0x0c,0x01,0x04,0x02,0x08,0x04,0x69,0x0b,0x01,0x02,0x00,0x00,0x02,0x59,0x0b,0x01,0x02,0x02,0x00,0x62,0x0a,0x01,0x00,0x02,0x00,0x52,0x25,0x24,0x13,0x12,0x01,0x00,0x3d,0x3c,0x3a, -0x38,0x33,0x31,0x2f,0x2e,0x2c,0x2a,0x24,0x3f,0x25,0x3f,0x1c,0x1a,0x12,0x23,0x13,0x23,0x0a,0x08,0x00,0x11,0x01,0x11,0x0d,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x15, -0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0x4d,0x3c,0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x32,0x5a,0x41,0x38,0x45,0x45,0x38,0x38,0x44,0x41, -0x21,0x1a,0x1b,0x21,0x21,0x1b,0x1a,0x21,0x41,0x44,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x32,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0x96,0x39,0x56,0x2f,0x55,0x3f,0x34,0x82,0x34,0x3f,0x3f,0x34,0x1b,0x21,0x21,0x1b,0x82,0x1b,0x21,0x21,0x1b,0x34,0x3f,0x00,0x00,0x04,0x00,0x2d, -0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x30,0x00,0x39,0x00,0x63,0xb1,0x06,0x64,0x44,0x40,0x58,0x2b,0x01,0x06,0x08,0x01,0x4c,0x0b,0x07,0x02,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x00,0x09,0x08,0x04,0x09,0x69,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x67,0x00,0x02, -0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x24,0x24,0x01,0x00,0x39,0x37,0x33,0x31,0x24,0x30,0x24,0x30,0x2f,0x2e,0x2d,0x2c,0x27,0x25,0x20,0x1e,0x17,0x15,0x0a,0x08,0x00,0x11,0x01,0x11,0x0c,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16, -0x15,0x15,0x14,0x06,0x06,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x17,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0xfe,0xeb,0x32,0x5a,0x3c,0x3c, -0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x5a,0x72,0x36,0x3f,0x3c,0x42,0x40,0x3b,0x36,0x36,0x1a,0x1e,0x1e,0x1a,0x36,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0xf0,0x39,0x56,0x2f,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0xfa,0x01,0x5e,0x39,0x30,0x45,0x1a,0x96,0x8c,0x8c,0xbe,0x1d, -0x1a,0x1a,0x1d,0x00,0x00,0x02,0x00,0x0f,0x01,0x72,0x02,0x35,0x02,0xda,0x00,0x07,0x00,0x26,0x00,0x4d,0x40,0x4a,0x22,0x19,0x02,0x00,0x01,0x0e,0x01,0x07,0x00,0x02,0x4c,0x00,0x07,0x00,0x03,0x00,0x07,0x03,0x80,0x0a,0x08,0x06,0x09,0x04,0x03,0x03,0x84,0x05,0x04,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x04,0x02,0x01,0x01,0x00,0x5f, -0x02,0x01,0x00,0x01,0x00,0x4f,0x08,0x08,0x00,0x00,0x08,0x26,0x08,0x26,0x1e,0x1d,0x15,0x14,0x13,0x12,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0b,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x06,0x06,0x07,0x07,0x23, -0x27,0x26,0x26,0x27,0x16,0x16,0x15,0x15,0x73,0x64,0x01,0x04,0x64,0x87,0x50,0x22,0x05,0x09,0x02,0x02,0x07,0x05,0x21,0x4e,0x37,0x05,0x02,0x06,0x0e,0x03,0x1e,0x33,0x21,0x03,0x0e,0x06,0x02,0x06,0x01,0x72,0x01,0x36,0x32,0x32,0xfe,0xca,0x01,0x68,0x66,0x0e,0x2b,0x0e,0x0e,0x2b,0x0e,0x66,0xfe,0x98,0xdd,0x1c,0x3e,0x13,0x14,0x33, -0x09,0x67,0x68,0x09,0x32,0x14,0x13,0x3e,0x1c,0xdd,0x00,0x00,0x00,0x02,0x00,0x96,0x01,0xc2,0x01,0xc2,0x02,0xe4,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, -0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x43,0x53,0x53,0x43,0x43,0x53,0x53,0x43,0x26,0x2f,0x2f,0x26,0x25,0x30,0x30,0x01,0xc2, -0x51,0x40,0x41,0x50,0x50,0x41,0x40,0x51,0x38,0x31,0x28,0x28,0x32,0x32,0x28,0x28,0x31,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0x01,0xa3,0x01,0x75,0x02,0xd5,0x03,0x07,0x03,0x2a,0x00,0x00,0x02,0x43,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x69,0x01,0xa4,0x01,0xef,0x02,0xd6,0x00,0x27, -0x03,0x2a,0xff,0x97,0x02,0x44,0x01,0x07,0x03,0x2a,0x00,0x7a,0x02,0x44,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, -0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0xff,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x00,0x02,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f, -0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xff,0x5a,0x5a,0x5a,0x01,0xc2,0x01,0x7c,0xfe,0x84,0xfd,0xd0,0x01,0x7c,0xfe,0x84,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02, -0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xff,0xaf,0xaf,0x5a,0xaf,0xaf,0x6e,0x02,0x76,0x50,0xe6, -0xe6,0x50,0xfd,0x8a,0x00,0x02,0x00,0x46,0x00,0x00,0x01,0xf4,0x02,0xe4,0x00,0x1e,0x00,0x28,0x00,0x38,0x40,0x35,0x20,0x1b,0x1a,0x13,0x07,0x06,0x05,0x04,0x08,0x02,0x03,0x01,0x4c,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x27,0x25, -0x18,0x16,0x0c,0x0a,0x00,0x1e,0x01,0x1e,0x05,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x35,0x07,0x27,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x02,0x03,0x15,0x37,0x36,0x35,0x35,0x34,0x23,0x22,0x06,0x01,0x51,0x4d,0x5a,0x46,0x1e,0x64,0x58,0x48,0x49,0x57,0x4f, -0x46,0x51,0x29,0x24,0x22,0x32,0x0b,0x44,0x09,0x2d,0x42,0x78,0x35,0x57,0x46,0x21,0x25,0x57,0x49,0x4a,0x1b,0x51,0x25,0x01,0x04,0x46,0x55,0x54,0x47,0x55,0x43,0x6c,0x1a,0x1f,0x6c,0x25,0x29,0x2a,0x13,0x2a,0x15,0x2f,0x21,0x02,0x49,0xe3,0x13,0x21,0x5a,0x55,0x49,0x26,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x13, -0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x17, -0x35,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x15,0xff,0xaf,0xaf,0xaf,0xaf,0x5a,0xaf,0xaf,0xaf,0xaf,0x6e,0xfa,0x50,0x01,0x22,0x50,0xf0,0xf0,0x50,0xfe,0xde,0x50,0xfa,0x00,0x00,0x00,0x03,0x00,0x1e,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0d,0x00,0x27,0x00,0x35,0x00,0x79,0x40,0x0a, -0x22,0x01,0x06,0x07,0x15,0x01,0x04,0x00,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x00,0x07,0x07,0x01,0x5f,0x03,0x02,0x02,0x01,0x01,0x38,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x22,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x03,0x01,0x02,0x02, -0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x1f,0x29,0x28,0x0e,0x0e,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x0e,0x27,0x0e,0x27,0x1d,0x1c,0x1b,0x1a,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, -0x16,0x15,0x15,0x14,0x06,0x01,0x11,0x33,0x13,0x1e,0x02,0x17,0x2e,0x02,0x35,0x11,0x33,0x11,0x23,0x03,0x2e,0x02,0x27,0x1e,0x02,0x15,0x11,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xf9,0x28,0x37,0x37,0x28,0x29,0x36,0x36,0xfd,0xfc,0x5f,0x75,0x06,0x10,0x11,0x06,0x02,0x06,0x04,0x46,0x5f,0x72, -0x05,0x11,0x11,0x07,0x02,0x05,0x03,0x01,0x95,0x0e,0x15,0x15,0x0e,0x0d,0x16,0x16,0x01,0x2c,0x3a,0x2f,0xe6,0x2f,0x3a,0x3a,0x2f,0xe6,0x2f,0x3a,0xfe,0xd4,0x02,0xda,0xfe,0x3b,0x15,0x44,0x4a,0x1d,0x1d,0x4c,0x4b,0x19,0x01,0xb8,0xfd,0x26,0x01,0xc6,0x17,0x44,0x49,0x1c,0x1c,0x4b,0x4b,0x1c,0xfe,0x48,0x01,0x63,0x12,0x16,0xfa,0x12, -0x16,0x16,0x12,0xfa,0x16,0x12,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x02,0xe4,0x00,0x1a,0x00,0x23,0x00,0x4c,0x40,0x49,0x1e,0x1b,0x02,0x05,0x06,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x03,0x00, -0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x22,0x20,0x1d,0x1c,0x17,0x16,0x14,0x12,0x0f,0x0e,0x0a,0x08,0x00,0x1a,0x01,0x1a,0x08,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x11,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x03,0x15, -0x21,0x35,0x26,0x26,0x23,0x22,0x06,0x01,0x2c,0x47,0x6d,0x3c,0x3c,0x6d,0x47,0x49,0x6b,0x3c,0xfe,0x84,0x0c,0x49,0x37,0x3b,0x62,0x14,0x32,0x10,0x44,0x5b,0xc0,0x01,0x18,0x0c,0x48,0x38,0x37,0x49,0x0a,0x41,0x76,0x4d,0xe6,0x4e,0x75,0x41,0x41,0x74,0x4f,0x79,0xfe,0xfd,0x15,0x2c,0x3d,0x31,0x2e,0x46,0x27,0x02,0x80,0xdd,0xdd,0x15, -0x2c,0x2c,0x00,0x00,0x00,0x04,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x25,0x00,0x57,0x40,0x54,0x07,0x01,0x05,0x02,0x01,0x4c,0x00,0x06,0x01,0x07,0x01,0x06,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x09,0x01,0x01,0x06,0x04,0x01, -0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x20,0x20,0x00,0x00,0x20,0x25,0x20,0x25,0x24,0x23,0x22,0x21,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32, -0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19, -0xdb,0x19,0x13,0x13,0x17,0xfd,0xe5,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x00,0x00,0x00,0x07,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x1b,0x40,0x17,0x02,0x01,0x00,0x01, -0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x28,0x5a,0x01,0x54,0x5a,0xb4,0xb4,0x64,0x64,0xb4,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x56,0x02,0x4e, -0x02,0x89,0x00,0x06,0x00,0x20,0x00,0x47,0x40,0x44,0x05,0x02,0x01,0x03,0x02,0x04,0x06,0x01,0x03,0x02,0x02,0x4c,0x00,0x00,0x05,0x00,0x85,0x00,0x02,0x04,0x03,0x04,0x02,0x03,0x80,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x01,0x01,0x03,0x59,0x00,0x03,0x03,0x01,0x61,0x06,0x01,0x01,0x03,0x01,0x51,0x08,0x07,0x1a,0x19, -0x18,0x17,0x11,0x0f,0x0c,0x0b,0x07,0x20,0x08,0x20,0x13,0x07,0x06,0x17,0x2b,0x01,0x27,0x07,0x35,0x33,0x07,0x17,0x07,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x55,0xe1,0x60,0xf9,0x65,0xe2,0x4f,0x4e,0x7d,0x48,0x4e,0x33,0x5a,0x38,0x39, -0x59,0x33,0x33,0x59,0x39,0x4f,0x7c,0x48,0x48,0x7c,0x01,0x18,0xd8,0x60,0xf9,0x65,0xd8,0xf6,0x47,0x7c,0x4d,0x39,0x5a,0x35,0x35,0x5a,0x39,0x39,0x5b,0x34,0x47,0x47,0x7a,0x4e,0x4d,0x7c,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x00,0x00,0x02,0x2b,0x02,0xdf,0x00,0x1b,0x00,0x2d,0x00,0x60,0x40,0x5d,0x28,0x1f,0x02,0x08,0x06,0x01, -0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x61,0x0a,0x01,0x00,0x04,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x2d,0x1c,0x2d, -0x27,0x26,0x25,0x24,0x1e,0x1d,0x19,0x18,0x16,0x14,0x10,0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03, -0x1e,0x02,0x15,0x15,0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, -0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x03,0x00,0x20,0x00,0x00,0x02,0x3f,0x02,0xdf,0x00,0x1b,0x00,0x29,0x00,0x32,0x00,0x6b,0x40,0x68,0x24,0x01,0x08,0x0a,0x01,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x0d,0x09,0x02,0x07,0x08,0x07,0x86, -0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x0c,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x00,0x0b,0x0a,0x06,0x0b,0x68,0x00,0x0a,0x08,0x08,0x0a,0x57,0x00,0x0a,0x0a,0x08,0x5f,0x00,0x08,0x0a,0x08,0x4f,0x1c,0x1c,0x01,0x00,0x32,0x30,0x2c,0x2a,0x1c,0x29,0x1c,0x29,0x28,0x27,0x26,0x25,0x1f,0x1d,0x19,0x18,0x16,0x14,0x10, -0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, -0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0xc6,0x38,0x44,0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, -0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15,0x16,0x1c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x01,0xd6,0x02,0x35,0x02,0xe4,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x01,0x02,0x00,0x4a,0x02,0x01,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x13,0x01,0x01,0x23,0x27,0x07,0x23,0x01,0x09,0x01, -0x09,0x6e,0x9a,0x9e,0x01,0xd6,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x01,0x00,0xc3,0xff,0x92,0x01,0xef,0x00,0xbe,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x37,0x33,0x15,0x33,0x15,0x21,0xc3,0x5a, -0xd2,0xfe,0xd4,0xbe,0xdc,0x50,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x92,0x01,0x95,0x00,0xbe,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x25,0x11,0x21,0x35,0x33,0x35, -0x01,0x95,0xfe,0xd4,0xd2,0xbe,0xfe,0xd4,0x50,0xdc,0x00,0x00,0x00,0x01,0x00,0x69,0x02,0x12,0x01,0x95,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x35,0x23,0x35,0x21,0x01,0x95, -0x5a,0xd2,0x01,0x2c,0x02,0x12,0xdc,0x50,0x00,0x01,0x00,0xc3,0x02,0x12,0x01,0xef,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x15, -0xc3,0x01,0x2c,0xd2,0x02,0x12,0x01,0x2c,0x50,0xdc,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x54,0x40,0x51,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x08,0x09,0x07,0x08, -0x67,0x0b,0x01,0x09,0x04,0x04,0x09,0x57,0x0b,0x01,0x09,0x09,0x04,0x5f,0x00,0x04,0x09,0x04,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32, -0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0xb7,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x9a,0x3a,0x01,0x4f,0x3a,0x56, -0x2f,0x56,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x19,0x00,0x45,0x40,0x42,0x00,0x04,0x01,0x05,0x01,0x04,0x05,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x07,0x01,0x01,0x04,0x02,0x01,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05, -0x06,0x4f,0x14,0x14,0x00,0x00,0x14,0x19,0x14,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d, -0x3e,0x3e,0x2d,0x54,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x58,0x40,0x55,0x1a,0x17,0x02,0x06,0x07,0x01,0x4c,0x00,0x05,0x01,0x07,0x01, -0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x07,0x06,0x08,0x07,0x57,0x00,0x06,0x00,0x04,0x08,0x06,0x04,0x67,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x19,0x18,0x16,0x15,0x13,0x11,0x0d, -0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0x5f,0xcd,0xa3,0x4e,0xb2,0x8e, -0x40,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x42,0x59,0xb4,0xc7,0x0a,0x63,0xe1,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1e,0x00,0x51,0x40,0x4e,0x19,0x18,0x17,0x03,0x04,0x05,0x01,0x4c,0x00,0x05,0x01,0x04,0x01,0x05,0x04,0x80, -0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x08,0x01,0x01,0x05,0x02,0x01,0x67,0x06,0x01,0x04,0x07,0x07,0x04,0x57,0x06,0x01,0x04,0x04,0x07,0x5f,0x09,0x01,0x07,0x04,0x07,0x4f,0x14,0x14,0x00,0x00,0x14,0x1e,0x14,0x1e,0x1d,0x1c,0x1b,0x1a,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0a,0x06,0x17,0x2b,0x13, -0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x33,0x35,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x94,0x83,0x7a,0x61,0x5b,0x68,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31, -0x31,0x3d,0xfd,0x60,0x3c,0xd8,0x57,0x4b,0x47,0xfe,0xed,0x3c,0x00,0x03,0x00,0x2d,0xff,0xfb,0x02,0x15,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2e,0x00,0xa6,0xb7,0x29,0x28,0x23,0x03,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x38,0x00,0x07,0x08,0x05,0x08,0x07,0x72,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03, -0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x1b,0x40,0x39,0x00,0x07,0x08,0x05,0x08,0x07,0x05,0x80,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67, -0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x59,0x40,0x1e,0x15,0x14,0x00,0x00,0x27,0x26,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x14,0x2e,0x15,0x2e,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21, -0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e, -0x2d,0x54,0x01,0x11,0x42,0x52,0x42,0x2d,0x25,0x25,0x2e,0x2d,0x25,0x1e,0x56,0xba,0xfa,0x4c,0x2f,0x39,0x53,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x5b,0x4a,0x3a,0x21,0x29,0x20,0x19,0x19,0x1e,0x35,0x39,0x3c,0x46,0x34,0x08,0x37,0x28,0x32,0x41,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x22, -0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2c,0x00,0x57,0x40,0x54,0x15,0x01,0x07,0x05,0x01,0x4c,0x00,0x05,0x04,0x07,0x04,0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x06,0x02,0x01,0x67,0x00,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01, -0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x2c,0x14,0x2c,0x2b,0x2a,0x24,0x22,0x20,0x1f,0x1d,0x1b,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06, -0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x9b,0x9a,0x17,0x1c,0x26,0x23,0x25,0x2c,0x42,0x03,0x50,0x40,0x41,0x4a,0x2c,0x24,0x54,0xad,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60, -0x3e,0x5b,0x0e,0x20,0x11,0x1e,0x23,0x2a,0x24,0x3f,0x4a,0x42,0x38,0x23,0x3a,0x14,0x2d,0x3c,0x00,0x00,0x00,0x05,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x16,0x00,0x1f,0x00,0x26,0x00,0x2d,0x00,0x40,0x40,0x3d,0x2c,0x2b,0x23,0x22,0x04,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x06,0x01,0x02, -0x03,0x01,0x02,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x11,0x10,0x01,0x00,0x1c,0x1b,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26, -0x26,0x03,0x36,0x36,0x37,0x37,0x21,0x17,0x16,0x16,0x25,0x34,0x27,0x03,0x3e,0x02,0x25,0x14,0x16,0x16,0x17,0x03,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x45,0x70,0x23,0x01,0xb0,0x23,0x70,0x45,0x0c,0x1b,0x0d,0x88,0xfe,0x89,0x88,0x0d,0x1a,0x01,0x10,0x14,0xd6,0x43,0x6a,0x3d,0xfd,0xf8,0x3c, -0x68,0x42,0xd3,0x13,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x3c,0x33,0x33,0x3c,0xfe,0x20,0x17,0x2f,0x16,0xe8,0xe8,0x16,0x2f,0xc5,0x37,0x30,0xfe,0x96,0x06,0x47,0x70,0x46,0x45,0x70,0x46,0x07,0x01,0x67,0x2f,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x25,0x00,0x5f, -0x40,0x5c,0x20,0x1d,0x12,0x03,0x09,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x09,0x00,0x06,0x09,0x80,0x00,0x09,0x08,0x00,0x09,0x08,0x7e,0x0c,0x0a,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0b,0x01,0x05,0x00,0x00,0x05,0x57,0x0b,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05, -0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x25,0x0c,0x25,0x1f,0x1e,0x19,0x18,0x17,0x16,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0d,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x07,0x23,0x27, -0x1e,0x02,0x15,0x15,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x5b,0x37,0x0a,0x0b,0x04,0x04,0x0c,0x0a,0x35,0x5a,0x40,0x04,0x0a,0x56,0x43,0x58,0x05,0x07,0x04,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x7b,0x16,0x1b,0x11,0x11,0x1a,0x18,0x7a,0xfe,0xb1,0x5f,0x44,0x61,0x26,0xca,0xc7,0x19,0x35, -0x46,0x34,0x5f,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x23,0x00,0x57,0x40,0x54,0x1f,0x19,0x13,0x0d,0x04,0x08,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01, -0x05,0x00,0x00,0x05,0x57,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05,0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x23,0x0c,0x23,0x1b,0x1a,0x18,0x17,0x0f,0x0e,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36, -0x36,0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d,0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0xa9,0xa6,0x56,0x10,0x18, -0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4d,0x40,0x4a,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01,0x05,0x00,0x00,0x07,0x05,0x00, -0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x23,0x35,0x21,0x15,0x23, -0x11,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0xf9,0x98,0x01,0x72,0x98,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x04,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x61,0x40,0x5e,0x13,0x01,0x0b,0x08,0x01,0x4c,0x00,0x01,0x00,0x02, -0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x06,0x05,0x00,0x67,0x00,0x06,0x00,0x09,0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x0c,0x0c,0x00,0x00,0x2b,0x29,0x25,0x23,0x22,0x20, -0x1c,0x1a,0x0c,0x19,0x0c,0x18,0x0f,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, -0x23,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x7f,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17, -0x00,0x02,0x00,0x34,0xff,0xc6,0x02,0x46,0x02,0xda,0x00,0x0b,0x00,0x2f,0x00,0xb7,0x40,0x0c,0x29,0x1b,0x1a,0x03,0x09,0x0a,0x2e,0x01,0x06,0x09,0x02,0x4c,0x4b,0xb0,0x12,0x50,0x58,0x40,0x3e,0x00,0x0a,0x08,0x09,0x09,0x0a,0x72,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04, -0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x1b,0x40,0x3f,0x00,0x0a,0x08,0x09,0x08,0x0a,0x09,0x80,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05, -0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x59,0x40,0x1e,0x0d,0x0c,0x00,0x00,0x2d,0x2c,0x2b,0x2a,0x28,0x26,0x22,0x20,0x15,0x13,0x0c,0x2f,0x0d,0x2f,0x00,0x0b,0x00,0x0b,0x11,0x11, -0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x27,0x33,0x17,0x23,0x27,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca, -0x01,0x1a,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x21,0x2d,0x05,0x05,0x3e,0x2d,0x2d,0x3e,0x3e,0x2d,0x0a,0x09,0x36,0x4b,0x8e,0x4b,0x30,0x1c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x3a,0x2e,0x36,0x0b,0x1a,0x0d,0x31,0x41,0x41,0x31,0x31,0x41,0x02,0x46,0xb7, -0x3e,0x09,0x00,0x00,0x00,0x02,0x00,0x34,0xff,0xfb,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x27,0x00,0x62,0x40,0x5f,0x00,0x08,0x09,0x0b,0x09,0x08,0x0b,0x80,0x00,0x0b,0x0a,0x09,0x0b,0x0a,0x7e,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07, -0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x0a,0x06,0x06,0x0a,0x59,0x00,0x0a,0x0a,0x06,0x61,0x0d,0x01,0x06,0x0a,0x06,0x51,0x0d,0x0c,0x00,0x00,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x15,0x13,0x0c,0x27,0x0d,0x27,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15, -0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x21,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a, -0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x09,0x00,0x35,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x09,0x0a,0x06,0x0a, -0x09,0x06,0x80,0x00,0x06,0x07,0x0a,0x06,0x07,0x7e,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x08,0x00,0x0a,0x09,0x08,0x0a,0x69,0x00,0x07,0x05,0x05,0x07,0x59,0x00,0x07,0x07,0x05,0x61,0x0c,0x01,0x05,0x07,0x05,0x51,0x0b,0x0a,0x00,0x00,0x29,0x26,0x24,0x23,0x21,0x1e,0x13,0x10,0x0e, -0x0d,0x0a,0x35,0x0b,0x34,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0d,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17, -0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x01,0x04,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x71,0x3a,0x31,0x16,0x1b, -0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x09,0x00,0x13,0x00,0x55,0x40,0x52,0x0a,0x01,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x0b,0x01,0x09,0x08,0x09,0x86,0x00,0x00,0x00, -0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x07,0x08,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x13,0x0a,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0c,0x06,0x1a, -0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x86,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0xff,0xfc,0x02,0x2f,0x02,0xdf,0x00,0x1f, -0x00,0x4b,0x00,0x65,0x40,0x62,0x00,0x01,0x02,0x05,0x02,0x01,0x05,0x80,0x00,0x0b,0x0c,0x08,0x0c,0x0b,0x08,0x80,0x00,0x08,0x09,0x0c,0x08,0x09,0x7e,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x06,0x0a,0x03,0x06,0x69,0x00,0x0a,0x00,0x0c,0x0b,0x0a,0x0c,0x69,0x00,0x09,0x07, -0x07,0x09,0x59,0x00,0x09,0x09,0x07,0x61,0x0d,0x01,0x07,0x09,0x07,0x51,0x21,0x20,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x24,0x11,0x12,0x24,0x22,0x12,0x23,0x0e,0x06,0x1d,0x2b,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x23,0x35, -0x33,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x2e,0x4f,0x32,0x39,0x59,0x10,0x44,0x0b,0x34,0x1f, -0x2e,0x3d,0x3d,0x2e,0x20,0x36,0x0d,0x63,0xa7,0x2c,0x4b,0x30,0x32,0x4f,0x2e,0x01,0x64,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x02,0x32,0x32,0x4e,0x2d,0x3d,0x2d,0x14,0x1c,0x41,0x32,0x31, -0x41,0x20,0x27,0x39,0x0e,0x33,0x4d,0x2c,0x2d,0x4e,0xfd,0xfb,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4c,0x40,0x49,0x02,0x01, -0x00,0x01,0x00,0x85,0x0a,0x05,0x02,0x03,0x04,0x07,0x04,0x03,0x07,0x80,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11, -0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x2d,0x42,0xb2,0x42,0x42,0xb2,0x01,0x00,0x98,0x01,0x72,0x98,0x01,0x8b,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0xfe,0x75,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x00,0x04,0xff,0xf6, -0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x21,0x00,0x27,0x00,0x2d,0x00,0x50,0x40,0x4d,0x2c,0x23,0x19,0x03,0x00,0x05,0x01,0x4c,0x07,0x01,0x00,0x05,0x00,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x69,0x04,0x01,0x03,0x05,0x05,0x03,0x57,0x04,0x01,0x03,0x03,0x05,0x5f,0x0a,0x06,0x09,0x03,0x05,0x03,0x05,0x4f,0x28,0x28, -0x22,0x22,0x11,0x10,0x01,0x00,0x28,0x2d,0x28,0x2d,0x22,0x27,0x22,0x27,0x1e,0x1d,0x15,0x14,0x10,0x21,0x11,0x21,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x2e, -0x02,0x13,0x07,0x3e,0x02,0x37,0x21,0x1e,0x02,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x46,0x71,0x47,0x05,0x77,0x59,0x0e,0x19,0x0c,0x0c,0x1b,0x0d,0x59,0x76,0x05,0x47,0x71,0x60,0x8c,0x40,0x66,0x3e,0x05,0xfd,0xfa,0x05,0x3d,0x64,0x3f,0x8b,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, -0x59,0x58,0x8d,0x51,0x02,0x3a,0x3e,0x6b,0x44,0x97,0x16,0x2f,0x17,0x17,0x2f,0x16,0x97,0x44,0x6b,0x3e,0xfe,0xe6,0xed,0x06,0x40,0x67,0x40,0x40,0x66,0x40,0x06,0xec,0x00,0x02,0x00,0x51,0x00,0x00,0x02,0x07,0x02,0x30,0x00,0x04,0x00,0x09,0x00,0x28,0x40,0x25,0x09,0x08,0x07,0x03,0x02,0x01,0x06,0x01,0x4a,0x00,0x01,0x00,0x00,0x01, -0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x06,0x05,0x00,0x04,0x00,0x04,0x03,0x06,0x16,0x2b,0x33,0x11,0x37,0x17,0x11,0x25,0x21,0x11,0x27,0x07,0x51,0xdb,0xdb,0xfe,0x7c,0x01,0x52,0xa9,0xa9,0x01,0x5b,0xd5,0xd5,0xfe,0xa5,0x32,0x01,0x11,0xa5,0xa5,0x00,0x00,0x00,0x04,0x00,0x14,0x00,0x00,0x02,0x44, -0x03,0x16,0x00,0x06,0x00,0x0d,0x00,0x17,0x00,0x1b,0x00,0x53,0x40,0x50,0x08,0x06,0x02,0x03,0x4a,0x0a,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x67,0x0b,0x01,0x07,0x0c,0x01,0x09,0x08,0x07,0x09,0x67,0x00,0x08,0x06,0x06,0x08,0x57,0x00,0x08,0x08,0x06,0x5f,0x00,0x06,0x08,0x06,0x4f, -0x18,0x18,0x0e,0x0e,0x07,0x07,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x0e,0x17,0x0e,0x17,0x14,0x11,0x07,0x0d,0x07,0x0d,0x11,0x14,0x11,0x11,0x10,0x0d,0x06,0x1b,0x2b,0x01,0x23,0x15,0x23,0x35,0x23,0x01,0x13,0x27,0x07,0x33,0x15,0x33,0x35,0x13,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x35,0x17,0x15,0x33,0x35,0x02,0x44,0x9b,0xfa,0x9b, -0x01,0x18,0xba,0xba,0xba,0x6c,0x9c,0x2f,0x21,0x1b,0x82,0x1b,0x21,0x2f,0x9c,0x01,0xe5,0xd6,0xd6,0x01,0x31,0xfe,0xf5,0xcd,0xcd,0xd6,0xd6,0xfe,0xb4,0x83,0x1b,0x21,0x21,0x1b,0x83,0x26,0x71,0x71,0x00,0x00,0x00,0x02,0xff,0x5b,0x00,0x41,0x02,0x8f,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, -0x10,0x0f,0x0e,0x0d,0x0c,0x02,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x05,0x03,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x25,0x21,0x01,0x01,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x07,0x17,0x37,0x17,0x02,0x2e,0xfe,0x5c,0xfe,0xd1,0x01,0x33, -0x01,0xa0,0x2c,0x35,0x35,0x17,0x9e,0x9b,0x43,0x9b,0x9a,0x48,0x9c,0x99,0x45,0x98,0x9b,0x41,0x01,0x2c,0x01,0x36,0x36,0x2c,0xfe,0x62,0x2b,0x37,0x96,0x9c,0x9c,0x43,0x9b,0x9b,0x47,0x9c,0x99,0x44,0x99,0x9b,0x00,0x02,0xff,0xc9,0x00,0x41,0x02,0xfd,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, -0x10,0x0f,0x0e,0x0d,0x0c,0x09,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x01,0x01,0x25,0x17,0x37,0x17,0x37,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x2a,0x2b,0x36,0x36,0x2b,0x01,0xa0,0x01, -0x33,0xfe,0xd1,0xfe,0x47,0x48,0x9b,0x98,0x45,0x99,0x9c,0x48,0x9a,0x9b,0x43,0x9b,0x41,0x37,0x2b,0x01,0x9e,0x2c,0x36,0xfe,0xca,0xfe,0xd4,0x96,0x47,0x9b,0x99,0x44,0x99,0x9c,0x47,0x9b,0x9b,0x43,0x9c,0x00,0x00,0x09,0xff,0xa9,0x00,0x41,0x02,0xaf,0x02,0xa3,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29, -0x00,0x2d,0x00,0x31,0x00,0x64,0x40,0x61,0x00,0x01,0x0a,0x07,0x05,0x03,0x03,0x02,0x01,0x03,0x67,0x09,0x08,0x04,0x03,0x02,0x10,0x0e,0x02,0x0c,0x06,0x02,0x0c,0x67,0x0f,0x0d,0x0b,0x03,0x06,0x00,0x12,0x11,0x06,0x12,0x67,0x00,0x11,0x00,0x00,0x11,0x57,0x00,0x11,0x11,0x00,0x60,0x13,0x01,0x00,0x11,0x00,0x50,0x01,0x00,0x31,0x30, -0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x09,0x06,0x00,0x0f,0x01,0x0e,0x14,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x23,0x17,0x33, -0x35,0x23,0x01,0x33,0x11,0x23,0x15,0x33,0x23,0x33,0x35,0x23,0x03,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x01,0x21,0x35,0x21,0x14,0x2f,0x3c,0x36,0x2b,0x02,0x44,0x2c,0x35,0x35,0x2c,0xfd,0x9f,0x6c,0x6c,0x98,0x6c,0x6c,0x01,0x7a,0x6c,0xb6,0x4a,0xe2,0x6c,0x6c,0xe6,0x6c,0x6c,0x98,0x6c,0x6c,0x98,0x6c,0x6c,0xfe, -0x86,0x01,0xe6,0xfe,0x1a,0x41,0x3c,0x2f,0x01,0x95,0x2c,0x36,0x36,0x2c,0xfe,0x61,0x2b,0x36,0x01,0x9e,0x80,0x80,0x80,0xfe,0xd4,0x01,0x2c,0x80,0x80,0xfe,0xd4,0x80,0x80,0x80,0x80,0x80,0xfe,0xd4,0x80,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x01,0x07,0x05,0x02, -0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x69,0xbc,0xa3,0xe5,0xbd,0xa2,0xcc,0xcc, -0x02,0x8a,0x50,0xfd,0x76,0x50,0x02,0x8a,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0xe2,0x01,0xf4,0x02,0xdb,0x00,0x16,0x00,0x3f,0x40,0x3c,0x12,0x01,0x08,0x49,0x00,0x03,0x02,0x03,0x85,0x09,0x01,0x08,0x07,0x08,0x86,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x07,0x07,0x00,0x57,0x06,0x01,0x00,0x00, -0x07,0x5f,0x0a,0x01,0x07,0x00,0x07,0x4f,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x07,0x27,0x33,0x35,0x23,0x6e,0x93,0x93,0x93,0x56,0x93,0x93,0x93,0x93,0x9d,0xc2,0xce,0x9d,0x93,0x01,0x94, -0x59,0x50,0x9e,0x9e,0x50,0x59,0x50,0x7e,0xe4,0xe4,0x7e,0x00,0x00,0x01,0x00,0x64,0xff,0xff,0x01,0xf4,0x02,0xf8,0x00,0x16,0x00,0x44,0x40,0x41,0x05,0x01,0x01,0x4a,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x07,0x06,0x07,0x86,0x03,0x01,0x00,0x0b,0x0a,0x02,0x04,0x05,0x00,0x04,0x67,0x09,0x01,0x05,0x06,0x06,0x05,0x57,0x09,0x01,0x05, -0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x15,0x14,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x11,0x0c,0x06,0x1f,0x2b,0x13,0x35,0x33,0x35,0x23,0x37,0x17,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x6e,0x93,0x9d,0xce,0xc2,0x9d,0x93,0x93,0x93,0x93,0x56, -0x93,0x93,0x01,0x46,0x50,0x7e,0xe4,0xe4,0x7e,0x50,0x59,0x50,0x9e,0x9e,0x50,0x59,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x58,0x02,0x9c,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x24,0x00,0x2f,0x00,0x5f,0x00,0x6e,0x40,0x6b,0x0f,0x01,0x0d,0x05,0x01,0x01,0x00,0x0d,0x01,0x69,0x0e,0x14,0x04,0x03,0x00,0x10,0x0c,0x02,0x03,0x02,0x00,0x03, -0x69,0x11,0x0b,0x02,0x02,0x13,0x08,0x15,0x03,0x06,0x07,0x02,0x06,0x69,0x09,0x01,0x07,0x0a,0x0a,0x07,0x59,0x09,0x01,0x07,0x07,0x0a,0x61,0x12,0x16,0x02,0x0a,0x07,0x0a,0x51,0x31,0x30,0x1b,0x1a,0x10,0x0f,0x5c,0x5b,0x58,0x56,0x52,0x50,0x4f,0x4d,0x49,0x47,0x44,0x43,0x40,0x3e,0x3a,0x38,0x37,0x35,0x30,0x5f,0x31,0x5f,0x2e,0x2c, -0x28,0x26,0x20,0x1e,0x1a,0x24,0x1b,0x24,0x15,0x13,0x0f,0x19,0x10,0x19,0x11,0x12,0x24,0x21,0x17,0x06,0x1a,0x2b,0x01,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x33,0x35,0x23,0x27,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x35,0x23,0x22,0x06, -0x15,0x14,0x16,0x33,0x32,0x36,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x15,0x14,0x06,0x01,0x9c,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xa6, -0x6c,0x6c,0x7b,0x41,0x25,0x1c,0x1c,0x25,0x25,0x01,0x7e,0x41,0x25,0x1c,0x1c,0x25,0x25,0xfe,0xc3,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x34,0x47,0x47,0x34,0x41,0x41,0x34,0x47,0x47,0x34,0x35,0x46,0x6c,0x47,0x34,0x35,0x46,0x46,0x35,0x41,0x41,0x35,0x46,0x46,0x35,0x34,0x47,0x6c,0x46,0x02,0x24,0x41,0x25,0x1c,0x1c,0x25,0x25, -0xfe,0xf8,0x74,0x37,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xe2,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x41,0x25,0x1c,0x1c,0x25,0x25,0x5c,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x00,0x00,0x00,0x00,0x02,0xff,0xec, -0x00,0x32,0x02,0x67,0x02,0xda,0x00,0x11,0x00,0x1a,0x00,0x3d,0x40,0x3a,0x19,0x02,0x02,0x00,0x04,0x1a,0x01,0x02,0x03,0x05,0x02,0x4c,0x12,0x00,0x02,0x02,0x49,0x00,0x01,0x00,0x04,0x00,0x01,0x04,0x67,0x00,0x00,0x00,0x05,0x03,0x00,0x05,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x11, -0x11,0x12,0x25,0x33,0x13,0x06,0x06,0x1c,0x2b,0x25,0x01,0x01,0x15,0x33,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x07,0x35,0x21,0x11,0x23,0x11,0x23,0x35,0x07,0x01,0x1d,0xfe,0xcf,0x01,0x31,0x4c,0x21,0x1b,0x86,0x1b,0x21,0x21,0x1b,0xfe,0xf2,0x2c,0x01,0x47,0xa0,0xa7,0xc5,0x32,0x01,0x1d,0x01,0x1d,0xa5, -0xd7,0x1b,0x21,0x21,0x1b,0xfe,0x76,0x1b,0x21,0x40,0x6b,0x01,0xaa,0xfe,0xee,0x6c,0xb8,0x00,0x00,0x00,0x00,0x02,0x00,0x52,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x0f,0x00,0x48,0x40,0x45,0x00,0x00,0x01,0x00,0x85,0x09,0x01,0x07,0x06,0x07,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03, -0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x0f,0x06,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0a,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x52,0x42,0xde,0x6c, -0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0xfe,0xed,0x3c,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x1e,0x00,0x54,0x40,0x51,0x0c,0x03,0x02,0x02,0x00,0x19,0x01,0x08,0x05,0x02,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x0a,0x03,0x02,0x02,0x04,0x02,0x85,0x06,0x01, -0x04,0x05,0x04,0x85,0x0b,0x09,0x02,0x07,0x08,0x07,0x86,0x00,0x05,0x08,0x08,0x05,0x57,0x00,0x05,0x05,0x08,0x5f,0x00,0x08,0x05,0x08,0x4f,0x12,0x12,0x00,0x00,0x12,0x1e,0x12,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0c,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35, -0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x87,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe, -0x75,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x17,0x00,0x43,0x40,0x40,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x07,0x03,0x02,0x02,0x04,0x02,0x85,0x00,0x04,0x05,0x04,0x85,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05, -0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x12,0x12,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x09,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05, -0x02,0xac,0x42,0xde,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe,0x75,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x02,0x00,0x2d,0xff,0xf6,0x02,0x2b,0x02,0xda,0x00,0x11,0x00,0x23,0x00,0x46,0x40,0x43,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x08, -0x03,0x02,0x02,0x05,0x02,0x85,0x07,0x01,0x05,0x06,0x05,0x85,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x00,0x00,0x20,0x1f,0x1c,0x1a,0x17,0x16,0x12,0x23,0x13,0x23,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0a,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11, -0x23,0x03,0x1e,0x02,0x15,0x15,0x01,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x22,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26, -0x31,0x2d,0x69,0xfe,0x6b,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0xd5,0x00,0x0d,0x00,0x37,0x00,0x32,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x04,0x01,0x00,0x03,0x00,0x85,0x00,0x03,0x02,0x02,0x03,0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03, -0x02,0x51,0x0f,0x0e,0x01,0x00,0x24,0x22,0x0e,0x37,0x0f,0x37,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x17,0x16,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27, -0x26,0x26,0x37,0x36,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x17,0x43,0x74,0x58,0x31,0x32,0x2a,0x15,0x33,0x10,0x10,0x07,0x14,0x19,0x1d,0x34,0x5d,0x3c,0x3c,0x5d,0x34,0x1c,0x1a,0x14,0x07,0x10,0x11,0x32,0x15,0x2b,0x31,0x31,0x58,0x74,0xe1,0x23,0x19,0x01,0x7c,0x19,0x23,0x23,0x19, -0xfe,0x84,0x19,0x23,0xeb,0x30,0x57,0x72,0x42,0x41,0x72,0x2b,0x16,0x07,0x11,0x10,0x30,0x17,0x1c,0x4b,0x2c,0x3d,0x5f,0x36,0x36,0x5f,0x3d,0x2c,0x4b,0x1c,0x17,0x30,0x10,0x11,0x07,0x16,0x2a,0x73,0x41,0x42,0x72,0x57,0x30,0x00,0x00,0x03,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x00,0x49,0x40,0x46, -0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x25,0x24,0x15,0x14,0x01,0x00,0x2c,0x2a,0x24,0x31,0x25,0x31,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00, -0x13,0x01,0x13,0x09,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43, -0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a,0x3a,0x61,0x3c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x46,0x23,0x19,0xb4,0x19,0x23,0x23,0x19, -0xb4,0x19,0x23,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x15,0x14,0x01,0x00,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00,0x13,0x01, -0x13,0x06,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a, -0x3a,0x61,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x00,0x01,0x00,0xf5,0xff,0xfb,0x01,0x63,0x02,0x67,0x00,0x0d,0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0d, -0x01,0x0d,0x03,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x05,0x23,0x19,0x01,0xf4,0x19,0x23,0x23,0x19,0xfe,0x0c,0x19,0x23,0x00,0x00,0x00,0x01,0x00,0x06,0xff,0xf7,0x02,0x66,0x02,0x57,0x00,0x15,0x00,0x16,0x40,0x13,0x0f,0x07,0x02,0x00, -0x4a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x1d,0x02,0x06,0x18,0x2b,0x37,0x26,0x26,0x36,0x36,0x37,0x36,0x37,0x06,0x06,0x16,0x17,0x16,0x16,0x36,0x37,0x06,0x07,0x0e,0x02,0x26,0x64,0x2f,0x2f,0x01,0x30,0x30,0x27,0x2b,0x1e,0x05,0x2e,0x2e,0x2f,0x82,0x89,0x3a,0x16,0x27,0x30,0x75,0x7c,0x75,0x55,0x2f,0x75,0x7c,0x75, -0x30,0x27,0x16,0x39,0x8a,0x82,0x2e,0x2f,0x2e,0x05,0x1e,0x2b,0x27,0x30,0x30,0x01,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x01,0x4a,0x02,0x35,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x34,0x40,0x31,0x08,0x05,0x02,0x02,0x01,0x01,0x4c,0x05,0x03,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04, -0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x09,0x02,0x23,0x27,0x07,0x37,0x01,0xea,0xfe,0x02,0x01,0x09,0x01,0x09,0x6e,0x9a,0x9e,0x02,0x8a,0x50,0x50,0xfe,0xc0,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x00,0x00,0x00,0x03,0x00,0x2d, -0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x42,0x00,0x6b,0x40,0x68,0x08,0x01,0x02,0x04,0x01,0x4c,0x0c,0x03,0x02,0x01,0x02,0x09,0x02,0x01,0x09,0x80,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00, -0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d,0x01,0x06,0x08,0x06,0x51,0x18,0x17,0x00,0x00,0x36,0x33,0x31,0x30,0x2e,0x2b,0x20,0x1d,0x1b,0x1a,0x17,0x42,0x18,0x41,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0e,0x06,0x19,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14, -0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc6,0x38,0x44, -0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15, -0x16,0x1c,0xfd,0x5c,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0xf5,0x02,0x62,0x02,0xe4,0x00,0x14,0x00,0x27,0x00,0x35,0x00,0x53,0x40,0x50,0x00,0x03,0x06,0x02,0x06,0x03,0x02,0x80, -0x00,0x01,0x00,0x04,0x05,0x01,0x04,0x69,0x00,0x05,0x00,0x06,0x03,0x05,0x06,0x69,0x00,0x02,0x00,0x08,0x07,0x02,0x08,0x69,0x0a,0x01,0x07,0x00,0x00,0x07,0x59,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x07,0x00,0x51,0x2a,0x28,0x01,0x00,0x31,0x2e,0x28,0x35,0x2a,0x35,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x17,0x16,0x15,0x0b, -0x09,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x05,0x22,0x27,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x16,0x15,0x14,0x07,0x03,0x06,0x03,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x01, -0x2c,0x23,0x23,0xd4,0x1c,0x1b,0xd5,0x23,0x23,0x23,0x23,0xd5,0x0e,0x0d,0x1c,0xd4,0x22,0x48,0x35,0x2c,0x33,0x3e,0x35,0x3f,0x3f,0x1c,0x21,0x21,0x1c,0x21,0x13,0x12,0x0e,0x11,0x11,0x0e,0x12,0x0d,0x11,0x11,0x0b,0x2a,0x01,0x03,0x23,0x23,0x24,0x22,0x01,0x0b,0x2b,0x2b,0xfe,0xf5,0x11,0x24,0x11,0x23,0x23,0xfe,0xfd,0x2a,0x01,0x20, -0x35,0x02,0x38,0x2d,0x32,0x3a,0x32,0x20,0x1d,0x1c,0x23,0xc5,0x13,0x0d,0x0e,0x12,0x12,0x0e,0x0d,0x13,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2e,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c, -0x01,0x00,0x08,0x02,0x00,0x69,0x00,0x08,0x09,0x01,0x07,0x06,0x08,0x07,0x67,0x0a,0x01,0x06,0x0b,0x0b,0x06,0x57,0x0a,0x01,0x06,0x06,0x0b,0x5f,0x0d,0x01,0x0b,0x06,0x0b,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b, -0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0xbc,0x40, -0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x1d,0x7d,0x7d,0x01,0x3c,0x7d,0x7d,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11, -0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x3c,0xd7,0x3c,0x3c,0xd7,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x25,0xff,0xfb,0x02,0x3f,0x02,0xde,0x00,0x2b,0x00,0x3b,0x00,0x47,0x00,0x61,0x40,0x5e,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, -0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x0c,0x01,0x08,0x06,0x06,0x08,0x59,0x0c,0x01,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x3d,0x3c,0x2d,0x2c,0x01,0x00,0x43,0x41,0x3c,0x47,0x3d,0x47,0x35,0x33,0x2c,0x3b,0x2d,0x3b,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00, -0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, -0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0xbb,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x2e,0x4f,0x32, -0x2d,0x3e,0x3e,0x2d,0x2d,0x3e,0x3e,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x74,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x31,0x4e,0x2d,0x3a,0x41,0x31,0x31,0x42,0x42,0x31,0x31,0x41,0x00,0x00, -0x00,0x03,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x36,0x00,0x3f,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x0c,0x01,0x08,0x07,0x08,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x0a,0x09,0x06, -0x0a,0x67,0x00,0x09,0x07,0x07,0x09,0x57,0x00,0x09,0x09,0x07,0x5f,0x00,0x07,0x09,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x3f,0x3d,0x39,0x37,0x2c,0x36,0x2c,0x36,0x35,0x33,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35, -0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c, -0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x2a,0xbf,0x38,0x44,0x44,0x38,0x7d,0x7e,0x19,0x1f,0x1e,0x19,0x7f,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a, -0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x3f,0x2f,0x2e,0x3e,0x75,0xaf,0x1d,0x15,0x16,0x1e,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x66,0x40,0x63,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x08,0x01,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0d,0x0b, -0x02,0x09,0x0a,0x09,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x07,0x0a,0x0a,0x07,0x57,0x00,0x07,0x07,0x0a,0x5f,0x00,0x0a,0x07,0x0a,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, -0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35, -0x23,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x42,0xb2,0x42,0x42,0xb2,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11, -0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x43,0x00,0x62,0x40,0x5f,0x3f,0x39,0x33,0x2d,0x04,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01, -0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x43,0x2c,0x43,0x3b,0x3a,0x38,0x37,0x2f,0x2e,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, -0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36,0x36, -0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x11,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d, -0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0xa9,0xa6,0x56,0x10,0x18,0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56, -0x00,0x04,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x39,0x00,0x42,0x00,0x4b,0x00,0x6d,0x40,0x6a,0x33,0x01,0x0b,0x08,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x09, -0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x4b,0x49,0x45,0x43,0x42,0x40,0x3c,0x3a,0x2c,0x39,0x2c,0x38,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16, -0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35, -0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14, -0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17,0x00,0x00, -0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x3d,0x00,0x60,0x40,0x5d,0x38,0x2f,0x02,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, -0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x3d,0x2c,0x3d,0x37,0x36,0x35,0x34,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27, -0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d, -0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f, -0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x12,0x02,0xe4,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03,0x04,0x03,0x01,0x4c,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x00,0x03,0x04,0x02,0x03,0x04,0x7e,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00, -0x3e,0x4d,0x00,0x04,0x04,0x05,0x60,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x01,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x07,0x21,0x15,0x21,0x35,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x01,0x37, -0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0x01,0x2c,0xfe,0x6e,0xb0,0x5a,0x68,0x77,0x02,0xe4,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f,0x5b,0x32,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0xf6,0x02,0x0c,0x02,0xda,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x01,0x03, -0x01,0x4c,0x00,0x01,0x03,0x00,0x03,0x01,0x00,0x80,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x38,0x4d,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x01,0x15,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26, -0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x02,0x02,0xf3,0x34,0x2d,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0xfe,0xb4,0x02,0xda,0x53,0xfe,0xfc,0x37,0x59,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x73,0x61,0x35,0x73,0x48,0xce,0x52,0x00,0x02,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x11,0x00,0x3d,0x00,0x59, -0x40,0x56,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x08,0x09,0x05,0x09,0x08,0x05,0x80,0x00,0x05,0x06,0x09,0x05,0x06,0x7e,0x00,0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x01,0x00,0x31,0x2e,0x2c, -0x2b,0x29,0x26,0x1b,0x18,0x16,0x15,0x12,0x3d,0x13,0x3c,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36, -0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0xc8,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x77,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16, -0x58,0x33,0x3b,0x4e,0x44,0x01,0x81,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0xfe,0x7b,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0c, -0x00,0x14,0x00,0x3a,0x40,0x37,0x03,0x01,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x04,0x01,0x85,0x07,0x01,0x06,0x03,0x06,0x86,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x05,0x01,0x03,0x04,0x03,0x4f,0x0d,0x0d,0x0d,0x14,0x0d,0x14,0x11,0x11,0x12,0x11,0x11,0x17,0x08,0x06,0x1c,0x2b,0x13,0x16, -0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x23,0x03,0x33,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xad,0x08,0x12,0x02,0x02,0x10,0x07,0x57,0x48,0x94,0x4a,0x94,0x45,0x01,0x1b,0x98,0x01,0x72,0x98,0x02,0x0c,0x13,0x29,0x0e,0x0e,0x29,0x13,0xce,0xfe,0xb1,0x01,0x4f,0xfd,0x26,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x02,0x00,0x37, -0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x42,0x40,0x3f,0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x08,0x01,0x05,0x05,0x00,0x5f,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x1c,0x1b,0x01,0x00,0x1f,0x1d,0x1b,0x23,0x1c,0x23,0x19,0x18, -0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x17,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e, -0x3f,0x36,0x01,0x3c,0x73,0xca,0x70,0x70,0x3c,0x47,0x47,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0xff,0x06,0x01,0xa4,0xff,0xce,0x00,0x07,0x06,0x79,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x8c, -0xff,0x2e,0x01,0xcc,0xff,0xb0,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04, -0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23, -0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xd2,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x13,0xff,0x4c,0x01,0xf9,0x03,0x84,0x00,0x36, -0x00,0x41,0x40,0x3e,0x36,0x02,0x02,0x01,0x00,0x0c,0x06,0x05,0x03,0x03,0x01,0x08,0x01,0x04,0x03,0x22,0x1f,0x07,0x03,0x02,0x04,0x04,0x4c,0x00,0x03,0x01,0x04,0x01,0x03,0x04,0x80,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x69,0x00,0x04,0x04,0x02,0x5f,0x00,0x02,0x02,0x3d,0x02,0x4e,0x2a,0x28,0x26,0x25,0x21,0x20,0x13,0x11,0x10,0x05, -0x09,0x17,0x2b,0x01,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0xfe,0xd0,0x5a,0x40,0x41,0x02, -0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x4c,0x49,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa4,0x0b,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x0a,0x2a,0x3f,0x32,0x28,0x39,0x0b, -0x20,0x14,0x71,0x4d,0x52,0x6d,0x0c,0xae,0xad,0x0b,0x6c,0x58,0x3d,0x45,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x01,0xfe,0x07,0xff,0x4c,0x02,0x01,0x03,0x84,0x00,0x36,0x00,0x48,0x40,0x45,0x21,0x1e,0x02,0x04,0x02,0x06,0x01,0x03,0x04,0x0b,0x07,0x05,0x04,0x04,0x01,0x03,0x35,0x01,0x00,0x01, -0x04,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x4d,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x36,0x00,0x36,0x22,0x14,0x1d,0x2e,0x11,0x07,0x09,0x1b,0x2b,0x17,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16, -0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xf6,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x48,0x54,0x31,0x2a, -0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5e,0x53,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x45,0x3a,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71, -0x4d,0x50,0x6a,0x0f,0xb0,0x00,0x00,0x00,0x00,0x01,0xfb,0xc8,0xff,0x4c,0x01,0xe0,0x03,0x84,0x00,0x40,0x00,0x42,0x40,0x3f,0x21,0x1e,0x02,0x03,0x02,0x2b,0x27,0x25,0x24,0x0b,0x07,0x06,0x05,0x04,0x09,0x01,0x03,0x3f,0x26,0x02,0x00,0x01,0x03,0x4c,0x00,0x02,0x00,0x03,0x01,0x02,0x03,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00, -0x42,0x4d,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x40,0x00,0x40,0x33,0x31,0x1d,0x2e,0x11,0x06,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35, -0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xfe,0xb7,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x4d,0x4f,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x3f,0x42,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13, -0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x26,0x4c,0x23,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5c,0x55,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0a,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09, -0x01,0x0a,0x14,0x16,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71,0x4d,0x4f,0x6b,0x0f,0xb0,0x00,0x00,0x00,0x00,0x03,0xfd,0xda,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x32,0x00,0x3b,0x00,0x44,0x00,0x5c,0x40,0x59,0x0e,0x01,0x01,0x05,0x01,0x4c,0x08,0x01,0x05,0x0d,0x0b,0x09,0x03,0x01,0x0a,0x05,0x01,0x67,0x07,0x01,0x04,0x04,0x03,0x5f, -0x06,0x01,0x03,0x03,0x38,0x4d,0x10,0x0c,0x0f,0x03,0x0a,0x0a,0x00,0x5f,0x02,0x0e,0x02,0x00,0x00,0x39,0x00,0x4e,0x3d,0x3c,0x34,0x33,0x01,0x00,0x40,0x3e,0x3c,0x44,0x3d,0x44,0x37,0x35,0x33,0x3b,0x34,0x3b,0x31,0x30,0x2f,0x2d,0x29,0x27,0x26,0x24,0x1f,0x1d,0x19,0x17,0x16,0x14,0x09,0x07,0x06,0x05,0x00,0x32,0x01,0x32,0x11,0x09, -0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33, -0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfc,0xcb,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e, -0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x00,0x00,0x00,0x04,0xfb,0x82,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x4a,0x00,0x53,0x00,0x5c,0x00,0x65,0x00,0x76, -0x40,0x73,0x16,0x01,0x01,0x07,0x01,0x4c,0x0d,0x0a,0x02,0x07,0x14,0x12,0x10,0x0e,0x03,0x05,0x01,0x0f,0x07,0x01,0x67,0x0c,0x09,0x02,0x06,0x06,0x05,0x5f,0x0b,0x08,0x02,0x05,0x05,0x38,0x4d,0x18,0x13,0x17,0x11,0x16,0x05,0x0f,0x0f,0x00,0x5f,0x04,0x02,0x15,0x03,0x00,0x00,0x39,0x00,0x4e,0x5e,0x5d,0x55,0x54,0x4c,0x4b,0x01,0x00, -0x61,0x5f,0x5d,0x65,0x5e,0x65,0x58,0x56,0x54,0x5c,0x55,0x5c,0x4f,0x4d,0x4b,0x53,0x4c,0x53,0x49,0x48,0x47,0x45,0x41,0x3f,0x3e,0x3c,0x37,0x35,0x31,0x2f,0x2e,0x2c,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x11,0x0f,0x0e,0x0d,0x09,0x07,0x06,0x05,0x00,0x4a,0x01,0x4a,0x19,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22, -0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23, -0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e, -0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfa,0x73,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38, -0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x03,0xfd,0xdf,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x27,0x00,0x53,0x40,0x50, -0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x07,0x03,0x04,0x67,0x00,0x07,0x0b,0x01,0x08,0x05,0x07,0x08,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x09,0x01,0x00,0x00,0x39,0x00,0x4e,0x24,0x24,0x1c,0x1b,0x01,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x1f,0x1d,0x1b,0x23,0x1c, -0x23,0x19,0x18,0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x0c,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x25,0x35,0x21,0x15,0xfe,0xbf,0x67,0x79,0x51,0x40,0x39, -0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e,0x3f,0x36,0x03,0x49,0xfd,0x80,0xca,0x70,0x70,0x3c,0x47,0x47,0x01,0xab,0x01,0xdb,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x12,0x50,0x50,0x00,0x02,0xfd,0xd5,0xff,0x9c,0x02,0x1c,0x02,0xe4,0x00,0x27, -0x00,0x31,0x00,0x7a,0xb5,0x19,0x01,0x07,0x03,0x01,0x4c,0x4b,0xb0,0x21,0x50,0x58,0x40,0x26,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x3b,0x07,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x07,0x06, -0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x04,0x4e,0x59,0x40,0x1b,0x29,0x28,0x01,0x00,0x2e,0x2c,0x28,0x31,0x29,0x31,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a,0x09,0x16,0x2b,0x05,0x22, -0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x35,0x35,0x34,0x23,0x22,0x15,0x15,0x14,0xfe,0xed,0x55,0x7e,0x45,0x90,0x7e,0x75,0x80,0x56,0x4a,0x49,0x57,0x46,0x40,0x29, -0x36,0x09,0x02,0x56,0x4f,0x5a,0x64,0x6b,0x5d,0x03,0x2f,0xfd,0x1c,0x50,0x50,0x50,0x64,0x47,0x83,0x58,0x01,0x04,0x87,0x9b,0x7d,0x73,0xe2,0x4e,0x5b,0x56,0x49,0x74,0x4a,0x51,0x20,0x1c,0x23,0x4d,0x53,0x74,0x68,0xfe,0xfc,0x64,0x73,0x4b,0x01,0x10,0x5c,0x75,0x5b,0x5c,0x74,0x5c,0x00,0x00,0x00,0x04,0xfd,0xc6,0xff,0xf7,0x02,0x62, -0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x51,0x00,0x5d,0x00,0xcc,0x40,0x0b,0x55,0x49,0x42,0x21,0x1e,0x1b,0x06,0x0d,0x0e,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x41,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02,0x02,0x3e,0x4d,0x00, -0x05,0x05,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3b,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02, -0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x0c,0x01,0x06,0x06,0x39,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x12,0x07,0x11,0x03,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x35,0x53,0x52,0x47,0x46,0x26,0x25,0x01,0x00,0x58,0x56,0x52,0x5d,0x53,0x5d,0x4c,0x4a,0x46,0x51,0x47,0x51,0x41,0x40,0x3b,0x39,0x37,0x36,0x33,0x31,0x2c,0x2b, -0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x15,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26, -0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd2,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37, -0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53,0xfd,0x86,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x28,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0xfd,0xe3,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b, -0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, -0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x06,0xfb,0x73,0xff,0xf7,0x02,0x5d,0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0xfd,0x40,0x0d,0x82,0x76,0x6a,0x63,0x42,0x21,0x1e,0x1b,0x08,0x13,0x14,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x4e,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80, -0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00,0x00,0x3f,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00, -0x00,0x3f,0x00,0x4e,0x1b,0x40,0x45,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x12,0x0c,0x02,0x06,0x06,0x39,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00, -0x61,0x1b,0x0d,0x1a,0x07,0x19,0x05,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x4d,0x80,0x7f,0x74,0x73,0x68,0x67,0x47,0x46,0x26,0x25,0x01,0x00,0x85,0x83,0x7f,0x8a,0x80,0x8a,0x79,0x77,0x73,0x7e,0x74,0x7e,0x6d,0x6b,0x67,0x72,0x68,0x72,0x62,0x61,0x5c,0x5a,0x58,0x57,0x54,0x52,0x4d,0x4c,0x46,0x66,0x47,0x66,0x41,0x40,0x3b,0x39,0x37, -0x36,0x33,0x31,0x2c,0x2b,0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x1f,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07, -0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23, -0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xcd,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63, -0x61,0x2b,0x22,0x53,0xfb,0x38,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x22,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0xfd,0x8c,0x39,0x28,0x34,0x7d,0x1e,0x2f, -0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, -0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, -0x00,0x03,0xfd,0xd5,0xff,0xf7,0x02,0x1c,0x02,0xe4,0x00,0x26,0x00,0x32,0x00,0x36,0x00,0xbc,0x40,0x0f,0x1b,0x01,0x0a,0x09,0x2a,0x20,0x02,0x0b,0x0a,0x23,0x01,0x08,0x0b,0x03,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x39,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01, -0x09,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x07,0x0c,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3d,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01,0x09,0x69,0x00,0x0a, -0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x0c,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x33,0x33,0x28,0x27,0x01,0x00,0x33,0x36,0x33,0x36,0x35,0x34,0x2d,0x2b,0x27,0x32,0x28,0x32,0x22,0x21,0x1f,0x1e,0x1d,0x1c,0x16,0x14, -0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x26,0x01,0x26,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x21,0x15,0x21,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14, -0x16,0x25,0x35,0x21,0x15,0xfe,0x93,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0xbf,0x01,0xfb,0xfe,0x2a,0xb4,0x91,0x63,0x61,0x2b,0x22,0x53,0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x01,0xd9,0x01,0xdb,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, -0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0xef,0x50,0xdd,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x62,0x50,0x50,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0,0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x03,0x00,0x5f,0x00, -0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d, -0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89,0x00,0x01,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x12,0x00,0x33,0x40,0x30,0x0a,0x01,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00,0x12, -0x23,0x12,0x14,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x15,0xfb,0xd2,0x5a,0x05,0x5b,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfa,0xa5,0x23,0x02,0x4e,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff, -0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0xbd,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x43,0x40,0x40,0x09,0x01,0x04,0x03,0x01,0x4c,0x06,0x01,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x25,0x25,0x00,0x00, -0x25,0x28,0x25,0x28,0x27,0x26,0x00,0x24,0x00,0x23,0x21,0x25,0x21,0x2c,0x21,0x0a,0x09,0x1b,0x2b,0x07,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x23,0x21,0x11,0x33,0x11,0x37,0x73,0x2f,0x32, -0x02,0x0a,0x03,0x36,0x31,0x32,0x35,0x03,0x0a,0x02,0x32,0x2f,0x73,0x73,0x59,0x65,0x05,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x40,0x27,0x03,0x0a,0x05,0x65,0x59,0xfe,0x7f,0x5a,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x03,0xac,0xfc,0x54,0x00, -0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08, -0x09,0x19,0x2b,0x07,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x33,0x11,0x3c,0x01,0x27,0xfe,0xd9,0x01,0x81,0xfd,0x76,0x5a,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0xe3,0xff,0x92,0x01,0x1d,0x03,0x3e,0x00,0x26,0x05,0xbe,0xc4,0x00,0x00,0x07,0x05,0xbe,0xfd,0xe4,0x00,0x00,0x00,0x02,0xfc,0xa4, -0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x07,0x00,0x0b,0x00,0x56,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x07,0x05,0x06,0x03,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x1d,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00, -0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x59,0x40,0x14,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89, -0x03,0x43,0xfc,0xbd,0x00,0x03,0xfc,0xc7,0xff,0x92,0x00,0xe1,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09, -0x06,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x87,0x5a,0xfb,0xe6,0x5a,0x01,0x86,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0x04,0xfa,0xc9,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f,0x40,0x0a,0x16,0x12,0x0e,0x0c,0x0b,0x05, -0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04, -0x00,0x00,0x08,0x0d,0x08,0x0d,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0x77,0x5a,0xfd,0xf8,0x5a,0x03,0x02,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a, -0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x02,0xfc,0xa4,0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x0b,0x00,0x0f,0x00,0x68,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00, -0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x09,0x07,0x08,0x03,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x25,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x59,0x40, -0x16,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x03, -0x43,0xfc,0xbd,0x00,0x00,0x03,0xfc,0xd6,0xff,0xab,0x01,0x31,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x12,0x0e,0x0a,0x08,0x07,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01, -0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0xd6,0x5a,0x01,0x54,0x5a,0x02, -0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x0b,0x00,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x00,0x02,0x03,0x01,0x02, -0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x21,0x00,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b, -0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d,0x02,0xa3,0xfd,0x5d,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x00,0x00,0x02,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x17,0x00,0x40,0x40,0x3d,0x12,0x07, -0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x17,0x16,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15, -0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x15,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0xfb,0xd2,0x5a,0x04,0xfb,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x05,0x05,0x3b,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0xc6,0x23,0x02,0x4e,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19, -0x14,0x00,0x00,0x00,0x00,0x02,0xfe,0xbb,0xff,0xab,0x01,0x68,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0e,0x0a,0x06,0x04,0x03,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, -0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfe,0xbb,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e, -0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x03,0xfe,0x13,0xff,0x74,0x01,0xf9,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x36,0x40,0x33,0x3c,0x32,0x31,0x25,0x24,0x1d,0x17,0x16,0x13,0x10,0x09,0x0b,0x00,0x01,0x35,0x2c,0x19,0x18,0x08,0x01,0x06,0x02,0x00,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03, -0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x2d,0x00,0x2d,0x1c,0x14,0x04,0x09,0x18,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14, -0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xde,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x44,0x4d,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x0d,0x26,0x35,0x19,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83, -0x08,0x69,0x56,0x31,0x3e,0x07,0x01,0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x84,0x08,0x28,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x08,0x14,0x14,0x02,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00, -0x00,0x01,0xfe,0x20,0x00,0x5f,0x01,0xe0,0x02,0x35,0x00,0x13,0x00,0x5a,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1a,0x05,0x03,0x02,0x01,0x08,0x06,0x02,0x00,0x07,0x01,0x00,0x67,0x0a,0x09,0x02,0x07,0x07,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x07,0x4e,0x1b,0x40,0x20,0x04,0x01,0x02,0x01,0x07,0x02,0x57,0x05,0x03,0x02,0x01,0x08,0x06,0x02, -0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x07,0x5f,0x0a,0x09,0x02,0x07,0x02,0x07,0x4f,0x59,0x40,0x12,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0xfe,0xdf,0xbf,0xbf, -0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0x00,0x01,0xfb,0xff,0x00,0x5f,0x01,0xa9,0x02,0x35,0x00,0x1b,0x00,0x6b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1e,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x0e,0x0d,0x0b,0x03,0x09,0x09,0x02,0x5f,0x06, -0x04,0x02,0x02,0x02,0x3b,0x09,0x4e,0x1b,0x40,0x25,0x06,0x04,0x02,0x02,0x01,0x09,0x02,0x57,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x06,0x04,0x02,0x02,0x02,0x09,0x5f,0x0e,0x0d,0x0b,0x03,0x09,0x02,0x09,0x4f,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0x23,0x35,0x21,0x15,0xfc,0xbe,0xbf,0xbf,0x58,0x01,0x92,0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3, -0xc3,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0xc3,0x00,0x00,0x02,0xfd,0xda,0x00,0x2d,0x02,0x12,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x17,0x16,0x15,0x03,0x01,0x02,0x11,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67, -0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xcb,0xf1,0xf1,0x58,0xf1,0xf1,0x01,0x41,0x01,0x36,0x13,0x21, -0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x04,0xfe,0x2a,0x00,0x64,0x01,0xae,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x06,0x04, -0x05,0x06,0x57,0x07,0x01,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x02,0x08,0x02,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x07,0x00,0x06,0x04,0x07,0x06,0x67,0x00,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e, -0x59,0x40,0x1b,0x11,0x10,0x01,0x00,0x1f,0x1e,0x1d,0x1c,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0f,0x0e,0x0d,0x0c,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01, -0x5e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x0e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0xfe,0x7a,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x00,0x00,0x00,0x00,0x06,0xfb,0xa0,0x00,0x64,0x02,0x08, -0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x97,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x04,0x01,0x02,0x00,0x00,0x02,0x57,0x11,0x0b,0x10,0x03,0x09,0x06,0x07,0x09,0x57,0x0a,0x08,0x02,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01, -0x4e,0x1b,0x40,0x2c,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x00,0x02,0x03,0x67,0x0a,0x01,0x08,0x11,0x0b,0x10,0x03,0x09,0x06,0x08,0x09,0x67,0x00,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0c,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x33,0x24,0x24,0x20,0x20,0x15,0x14,0x10,0x10,0x0c,0x0c,0x01,0x00,0x24, -0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x12,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34, -0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0xfe,0xd4,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xef,0x02,0x21,0xf9,0x98,0x02,0x21,0x01,0x13,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfc,0xa8,0x02,0x21,0x02,0x26,0x02,0x21,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0x50,0x50,0xfe, -0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x06,0xfb,0xa0,0xff,0xfb,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06, -0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04, -0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0xab,0x0c,0x6a,0x0c,0xea,0x02,0x21,0xf9,0x98,0x02,0x21,0xfd,0xdf,0x02,0x21,0x02,0x26, -0x02,0x21,0xfc,0xbd,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x00,0x02,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, -0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfd,0xf8,0x04,0x10,0xfb,0xf0,0x04,0x10,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00, -0x00,0x03,0xfb,0xa5,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08, -0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfb,0xa5,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x01,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13, -0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, -0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33, -0x13,0x03,0xbc,0x6b,0xfa,0x7e,0x05,0xc2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0x3f,0x05,0x82,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02, -0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02, -0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0xbc,0x6b,0xfc,0xd6,0x03,0x6a, -0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfc,0x97,0x03,0x2a,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x1f,0x00,0x47,0x40,0x44,0x1e,0x18,0x12,0x08,0x04,0x01,0x02,0x01,0x4c,0x06, -0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1d,0x1c,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x27,0x37,0x21,0x35,0x21, -0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0x6b,0xfb,0xaa,0x04,0x96,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x6b,0x04,0x56,0x6b,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0x87,0x50, -0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0f,0x00,0x17,0x00,0x47,0x40,0x44,0x15,0x11,0x0d,0x05,0x04,0x01,0x02,0x01,0x4c,0x06,0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03, -0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x10,0x10,0x00,0x00,0x10,0x17,0x10,0x17,0x13,0x12,0x00,0x0f,0x00,0x0f,0x11,0x11,0x12,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x37,0x27,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x37,0x33,0x07, -0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x72,0x6a,0xfb,0x9d,0x04,0x25,0x3f,0x3f,0xfb,0xdb,0x04,0x64,0x6a,0x69,0xbe,0x2e,0x32,0xba,0xae,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef,0x37,0x3d,0xeb,0x00,0x01,0xfb,0xa1,0x00,0x00,0x02,0x09, -0x02,0x99,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x21,0x37,0x21,0x35,0x21, -0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x53,0x3e,0xfd,0x10,0x03,0x0e,0x3a,0xfc,0xb8,0x03,0x66,0x40,0x48,0x40,0x02,0xba,0xfd,0x28,0x3a,0x03,0x12,0xfc,0xd0,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e, -0x00,0x2e,0x40,0x2b,0x04,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x11,0x18,0x05,0x09,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x15,0x21,0x07,0xfe, -0x0c,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xc8,0x02,0xc5,0xfd,0x3b,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xff,0x50,0xff,0x00,0x01,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x19,0x00,0x34,0x40,0x31,0x11,0x04,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01, -0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x19,0x00,0x19,0x23,0x12,0x14,0x11,0x18,0x07,0x09,0x1b,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x07,0xfb,0xb3,0xbe,0x13,0x1a,0x05,0x05,0x1d, -0x14,0xba,0x6a,0xc8,0x04,0xa1,0x04,0x07,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfb,0x5e,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1e,0x1a,0xeb,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff,0xff,0xff,0xfe,0x61,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x0f,0x01,0x06, -0x03,0x48,0xce,0x00,0x00,0x08,0xb1,0x00,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1b,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d, -0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x0b,0x00,0x02,0x32,0x2b,0x25,0x35,0x25,0x36,0x36,0x37,0x35,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x25,0x15,0xfe,0xcf,0x01,0xea,0x11,0x1f,0x07,0x07,0x1f,0x11,0xfe,0x16,0x02,0x62,0xfd,0x9e,0x02,0x62,0x96,0x5a,0xa8,0x06,0x06,0x01,0x07,0x01,0x06,0x06,0xab,0x58,0xe1,0x64,0xfe,0x3f, -0x5a,0xe1,0x5a,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x19,0x00,0x42,0x40,0x3f,0x19,0x13,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03, -0x00,0x03,0x4f,0x00,0x00,0x18,0x17,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x07,0x37,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x17,0xfb,0xb3,0xeb,0xeb,0x6a,0x6a,0x04,0xa0,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5f, -0x6a,0xa9,0x04,0xa2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x5f,0x3f,0x23,0x01,0x26,0x01,0x28,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x00,0x00,0xff,0xff,0xfe,0x2a,0x00,0x40,0x01,0xd7,0x02,0x53,0x00,0x26,0x04,0x1b,0xd4,0x00,0x01,0x07,0x04,0x1b,0xfd,0xd5,0xff,0xff, -0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xff,0xb0,0x35,0x2b,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01,0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03, -0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0xc8,0x03,0xf2,0xfc,0x0e,0xc9,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0xff,0x50, -0xff,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03,0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01, -0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x17,0x07,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0x6a,0x04,0x50,0xfb, -0xee,0x3f,0x3f,0x04,0x12,0xfb,0xaf,0x6a,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0x87,0x50,0x50,0x50,0x50,0x87,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0xff,0xff,0xfc,0x6d,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x27,0x04,0x1b,0xfc,0x18,0x00,0x00,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x00,0x02,0x06, -0x04,0x1b,0x00,0x00,0x00,0x01,0xfd,0xf3,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d,0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09, -0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfe,0xda,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0x03,0x7b,0xfc,0x86,0x04,0x08,0x04,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x50,0x04,0x0b,0x05,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d, -0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfc,0x82,0xe7, -0xe8,0x69,0xbe,0x03,0x07,0x03,0x05,0xe2,0xfa,0x1a,0x05,0x0a,0x06,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x4b,0x05,0x0d,0x07,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x05,0x01,0x4c,0x04,0x01,0x00,0x05,0x01,0x00,0x57,0x06,0x01,0x05,0x00,0x02,0x01,0x05, -0x02,0x68,0x04,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0c,0x00,0x0c,0x12,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x23,0x03,0x13,0x33,0x07,0x01,0x7c,0x5a,0x5a,0xfa,0xa6,0xca,0x6a,0xe7,0xe8,0x69,0xcb,0x01,0x72,0xff,0xfd,0xb2,0xff,0xff,0x01,0x27,0x01, -0x27,0xff,0x00,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x35,0x40,0x32,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12, -0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x05,0x66,0xcb,0x6a,0xe7,0xe8,0x69,0xcb,0xfa,0x9b,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xd9,0xfe,0xd9,0xff,0xff,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d, -0x00,0x34,0x40,0x31,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x37,0x33,0x03,0x13, -0x23,0x27,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x04,0xa1,0xc9,0x69,0xe7,0xe7,0x6a,0xc8,0xfb,0x60,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xda,0xfe,0xd8,0xff,0xff,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1c,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01, -0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfb,0xcd,0x00,0x2d,0x01,0xa9,0x02,0x67,0x00,0x27,0x04,0x1c,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x06,0x04,0x1c,0xa6,0x00,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x04,0xf9,0x43,0xff,0xfb,0x02,0x03,0x02,0xda,0x00,0x03, -0x00,0x10,0x00,0x14,0x00,0x22,0x00,0x62,0x40,0x5f,0x05,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x0b,0x01,0x05,0x09,0x08,0x09,0x05,0x08,0x80,0x06,0x01,0x03,0x0c,0x07,0x02,0x04,0x01,0x03,0x04,0x68,0x0a,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x09,0x09,0x08,0x61,0x0d,0x01,0x08,0x08, -0x42,0x08,0x4e,0x16,0x15,0x11,0x11,0x04,0x04,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x11,0x14,0x11,0x14,0x13,0x12,0x04,0x10,0x04,0x10,0x0d,0x0c,0x0b,0x0a,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x0e,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x05,0x03,0x13,0x33,0x07,0x06,0x07,0x21,0x15,0x21,0x16,0x17,0x17,0x25,0x35,0x21,0x15,0x01, -0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x53,0x0c,0x6a,0x0c,0xfd,0x85,0xe7,0xe8,0x69,0xbe,0x07,0x06,0x01,0xeb,0xfe,0x16,0x08,0x08,0xba,0x02,0xb0,0x04,0xbf,0xfa,0x6a,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xb4,0x01,0x27,0x01,0x27,0xef,0x08,0x08,0x50,0x0a,0x0a, -0xeb,0xff,0x50,0x50,0xfe,0xd9,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfd,0xee,0x00,0x41,0x02,0x20,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfd,0x99,0x00,0x00,0x00,0x06,0x03,0x34,0xec,0x00,0xff,0xff,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfb,0x5f,0x00,0x00,0x00,0x26,0x04,0x1b,0xf1,0x00, -0x00,0x07,0x03,0x34,0xfd,0xa8,0x00,0x00,0x00,0x02,0xfe,0x98,0xff,0xab,0x01,0x45,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0b,0x07,0x06,0x02,0x01,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57, -0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x13,0x03,0x09,0x17,0x2b,0x17,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0xeb,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68, -0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfc,0x77,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x0f,0x0b,0x0a,0x06,0x05,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e, -0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x08,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16, -0x17,0x78,0x5a,0xfd,0xf8,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x04,0xfa,0x7e,0xff,0xab,0x00,0x87,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f, -0x40,0x0a,0x13,0x0f,0x0e,0x0a,0x09,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01, -0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0c,0x0b,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0x2d,0x5a,0xfd,0xf8,0x5a,0xfd,0xf8,0xfd,0xad,0x02, -0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfb,0xe6,0xff,0x92,0x01,0xc2,0x03,0x0c,0x00,0x03,0x00,0x10,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1d,0x19,0x15,0x14, -0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x09,0x05,0x04,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x37,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x35,0x01,0x15,0x01,0x01,0x35,0x01,0x15,0x01,0x06,0x06,0x07,0x16,0x16, -0x17,0x01,0xfe,0xa7,0x5a,0x6e,0x01,0xbd,0x14,0x27,0x0a,0x0a,0x27,0x14,0xfe,0x43,0x02,0x53,0xfc,0x77,0xfd,0xad,0x02,0x53,0xfe,0x43,0x13,0x26,0x0b,0x0b,0x26,0x13,0x01,0xbd,0x6e,0x03,0x7a,0xfc,0x86,0x18,0x6b,0x01,0x10,0x0c,0x15,0x04,0x05,0x16,0x0c,0x01,0x16,0x67,0xfe,0x8e,0x64,0xfe,0x91,0x01,0x6f,0x64,0x01,0x72,0x6b,0xfe, -0xeb,0x0c,0x16,0x05,0x05,0x15,0x0b,0xfe,0xee,0x00,0x00,0x00,0x00,0x03,0xfe,0x07,0xff,0x74,0x02,0x01,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x49,0x40,0x46,0x32,0x24,0x1d,0x1a,0x06,0x05,0x03,0x02,0x3c,0x31,0x25,0x13,0x0b,0x07,0x05,0x04,0x08,0x01,0x03,0x2c,0x01,0x04,0x00,0x03,0x4c,0x35,0x01,0x01,0x01,0x4b,0x00,0x02, -0x03,0x02,0x85,0x00,0x03,0x01,0x03,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x2d,0x00,0x2d,0x14,0x19,0x1f,0x11,0x06,0x09,0x1a,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34, -0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x04,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x53, -0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x17,0x6b,0x4a,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c, -0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00,0x03,0xfb,0xbe,0xff,0x74,0x01,0xea,0x03,0x66,0x00,0x37,0x00,0x3e,0x00,0x46,0x00,0x48,0x40,0x45,0x46,0x3c,0x3b,0x2f,0x2e,0x28,0x24,0x22,0x21,0x1d,0x1a,0x13,0x0b,0x07,0x06,0x05,0x04,0x11,0x01,0x02,0x23,0x01,0x00,0x01, -0x36,0x01,0x03,0x00,0x03,0x4c,0x3f,0x01,0x01,0x01,0x4b,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x37,0x00,0x37,0x19,0x1f,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16, -0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xbb,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13, -0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x23,0x50,0x25,0x02,0x5b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfd,0xf8,0x3f,0x34,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03, -0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x16,0x6c,0x4a,0x50,0x67,0x08,0x85,0x85,0x04,0x19,0x13,0xfe,0xcb,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x01,0x0a,0x20,0x08,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00, -0x00,0x04,0xf9,0x43,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x24,0x00,0x28,0x00,0x2c,0x00,0x7d,0x40,0x7a,0x1d,0x01,0x10,0x0f,0x01,0x4c,0x00,0x0e,0x04,0x03,0x04,0x0e,0x03,0x80,0x17,0x01,0x11,0x00,0x0b,0x00,0x11,0x0b,0x80,0x07,0x05,0x02,0x03,0x13,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x14,0x01,0x0f,0x18,0x15,0x02,0x10, -0x01,0x0f,0x10,0x68,0x12,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x11,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x16,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x29,0x29,0x1c,0x1c,0x00,0x00,0x29,0x2c,0x29,0x2c,0x2b,0x2a,0x28,0x27,0x26,0x25,0x1c,0x24,0x1c,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17, -0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x17,0x25,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfb,0xa3, -0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0xfe,0x41,0xe7,0xe8,0x69,0xcb,0x01,0x69,0xfe,0x98,0xca,0x01,0x87,0xa0,0x22,0xa0,0x01,0x93,0x04,0x33,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x23,0x01,0x27,0x01,0x27,0xff,0x50, -0xff,0xf0,0xb4,0xa5,0x50,0x50,0x00,0x00,0x00,0x02,0xfd,0xee,0x00,0x2d,0x02,0x26,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x10,0x0f,0x0e,0x03,0x01,0x02,0x14,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, -0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0xdd,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x67,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, -0x09,0x22,0x11,0x01,0x36,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x2d,0x01,0xf4,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x45,0x40,0x42,0x24,0x23,0x22,0x10,0x0f,0x0e,0x06,0x01,0x02,0x1e,0x14,0x02,0x00,0x01,0x25,0x1a, -0x19,0x18,0x0d,0x0c,0x06,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25, -0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xa8,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5, -0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d,0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, -0x07,0x15,0x32,0x16,0x17,0x05,0x11,0x25,0x35,0x05,0x01,0x31,0xfd,0x9e,0x02,0x62,0xfe,0x16,0x11,0x1e,0x08,0x08,0x1e,0x11,0x01,0xea,0xfd,0x9e,0x02,0x62,0x96,0xe1,0x64,0xe1,0x5a,0xa8,0x06,0x06,0x01,0x07,0x06,0x06,0xab,0xfe,0xc7,0xe2,0x58,0xe2,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x11,0x00,0x40, -0x40,0x3d,0x11,0x01,0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x11,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b, -0x25,0x03,0x13,0x33,0x07,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x27,0x21,0x35,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xfb,0x5a,0x5a,0xfb,0x05,0x6b,0xaa,0x05,0x3a,0xfa,0xc5,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfd,0xb2,0x87,0x87,0xd7,0xa0,0x4f,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d, -0x00,0x6c,0xb6,0x08,0x01,0x02,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x00,0x01,0x01,0x00,0x70,0x06,0x01,0x05,0x04,0x04,0x05,0x71,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x1b,0x40,0x23,0x00,0x00,0x01,0x00,0x85,0x06,0x01, -0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0xfc,0x82,0xe7,0xe8, -0x69,0x6b,0x05,0x82,0xfa,0x3e,0x3d,0x3e,0x05,0xc1,0xfa,0x7e,0x6b,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x00,0x02,0xf9,0x43,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, -0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, -0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfa,0x2a,0xe7,0xe8,0x69,0x6b,0x06,0xfe,0x6b,0x6a,0xe7,0xe8,0x69, -0x6b,0xf9,0x02,0x6b,0xaa,0x07,0x7d,0x41,0x42,0xf8,0x83,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58, -0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07, -0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69, -0x6b,0x04,0xa6,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5a,0x6b,0xaa,0x05,0x25,0x41,0x42,0xfa,0xdb,0x3e,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x42,0x40,0x3f,0x13,0x10,0x08,0x01,0x04,0x06, -0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21, -0x37,0x33,0x03,0x13,0x23,0x27,0x21,0x17,0x27,0x21,0x27,0x37,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xa0,0x6a,0x69,0xe8,0xe8,0x6a,0x6a,0xfb,0x61,0x6b,0xaa,0x04,0xa0,0x3f,0x3f,0xfb,0x5f,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xda,0xfe,0xd8,0x87,0x87,0xd7,0x50,0x50,0x4f,0x00,0x02,0xfe,0x34,0x00,0x28,0x01,0xcc, -0x02,0x6c,0x00,0x05,0x00,0x13,0x00,0x08,0xb5,0x0e,0x06,0x03,0x00,0x02,0x32,0x2b,0x35,0x25,0x35,0x25,0x05,0x15,0x05,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x05,0x06,0x07,0x16,0x17,0xfe,0x34,0x01,0xcc,0x01,0xcc,0xfe,0x38,0x01,0x4e,0x14,0x17,0x04,0x04,0x18,0x11,0xfe,0xab,0xfe,0xb7,0x25,0x0c,0x0c,0x25,0x28,0xf0,0x64,0xf0, -0xf0,0x64,0x91,0xaa,0x0a,0x0c,0x02,0x02,0x0a,0x09,0xb0,0xac,0x13,0x03,0x03,0x13,0xff,0xff,0xfe,0x47,0x00,0x41,0x01,0xd6,0x02,0x53,0x00,0x27,0x04,0x1c,0xfd,0xf2,0x00,0x00,0x00,0x06,0x04,0x1c,0xd3,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01, -0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x13,0x21,0x03,0x13, -0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0xcb,0x04,0xb6,0xfb,0x46,0xcf,0xfe,0x6a,0xe7,0xe8,0x69,0xea,0xea,0x23,0x01,0x27,0x01,0x27,0xff,0x4b,0xfe,0xfc,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xdb,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03, -0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25, -0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x6b,0x04,0x2e,0xfb,0x92,0x3f,0x40,0x04,0x6d,0xfb,0xd2,0x6b,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00, -0xff,0xff,0xfb,0xf5,0x00,0x41,0x01,0xbd,0x02,0x53,0x00,0x27,0x04,0x1c,0xfb,0xa0,0x00,0x00,0x00,0x27,0x04,0x1c,0xfd,0xad,0x00,0x00,0x00,0x06,0x04,0x1c,0xba,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x4c,0x00,0x52,0x00,0xa6,0x40,0x09,0x51,0x4e,0x4b,0x01,0x04,0x02,0x09,0x01,0x4c,0x4b,0xb0,0x0d,0x50,0x58, -0x40,0x34,0x00,0x07,0x01,0x09,0x02,0x07,0x72,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x1b,0x40,0x35,0x00,0x07,0x01,0x09,0x01,0x07,0x09, -0x80,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x59,0x40,0x24,0x4d,0x4d,0x00,0x00,0x4d,0x52,0x4d,0x52,0x50,0x4f,0x00,0x4c,0x00,0x4c,0x4a, -0x48,0x44,0x42,0x3e,0x3c,0x38,0x36,0x32,0x30,0x23,0x12,0x24,0x24,0x24,0x24,0x24,0x21,0x12,0x13,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x07,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23, -0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x23,0x07,0x13,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x98,0x1e,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32, -0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x5a,0x16,0xea,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0xbf,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, -0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1c,0xfe,0xd8,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x01,0xfd,0xf3,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x3c,0x01,0x07,0x03,0x01,0x4c,0x01,0x01,0x01,0x01,0x4b,0x4b, -0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x03,0x06,0x72,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x1b,0x40,0x38, -0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x02,0x06,0x08,0x80,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00, -0x3d,0x38,0x36,0x32,0x30,0x24,0x23,0x12,0x24,0x24,0x24,0x24,0x21,0x12,0x0d,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x02,0x07, -0x17,0xfe,0xda,0xe7,0xe8,0x69,0xeb,0x0d,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x17,0x22,0x20,0x29,0x1e,0xb6,0x23,0x01,0x27,0x01, -0x27,0xfe,0xd9,0x15,0x1f,0x1f,0x15,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x38,0x28,0x28,0x3a,0x49,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x17,0x21,0x1f,0x07,0xe6,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x4d,0x00,0xa4,0x40,0x1f, -0x18,0x02,0x02,0x01,0x07,0x12,0x08,0x02,0x04,0x01,0x19,0x01,0x02,0x02,0x04,0x03,0x4c,0x17,0x16,0x04,0x03,0x04,0x03,0x4a,0x0e,0x0d,0x0c,0x00,0x04,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, -0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00, -0x04,0x00,0x52,0x59,0x40,0x1b,0x1b,0x1a,0x49,0x47,0x43,0x41,0x3e,0x3d,0x3b,0x39,0x35,0x33,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1a,0x4d,0x1b,0x4d,0x0b,0x09,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x05,0x22,0x2e,0x03, -0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfd,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca, -0x01,0xae,0xfc,0x81,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x31,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09, -0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x33,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x66,0x00,0xb3,0x40,0x0b,0x12,0x01,0x0a,0x04, -0x0f,0x06,0x02,0x03,0x0c,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x03,0x0a,0x72,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11, -0x04,0x00,0x03,0x00,0x52,0x1b,0x40,0x38,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x04,0x0a,0x0c,0x80,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11,0x04,0x00,0x03,0x00,0x52, -0x59,0x40,0x29,0x01,0x00,0x62,0x60,0x5c,0x5a,0x56,0x54,0x50,0x4e,0x4a,0x48,0x44,0x42,0x3f,0x3e,0x3c,0x3a,0x36,0x34,0x30,0x2e,0x2a,0x28,0x24,0x22,0x1e,0x1c,0x18,0x16,0x11,0x10,0x0e,0x0d,0x00,0x66,0x01,0x66,0x12,0x09,0x16,0x2b,0x25,0x22,0x2e,0x03,0x27,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x1e,0x03, -0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfc,0xd6,0x24,0x30,0x22,0x1b,0x1b,0x13, -0x09,0x0c,0x02,0x04,0x19,0x15,0xba,0x6a,0xe7,0xe8,0x69,0xa2,0x1a,0x23,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15, -0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0xe5,0x18,0x24,0x26,0x1c,0x03,0x0b,0x0d,0x03,0x04,0x1f,0x1a,0xeb,0x01,0x27,0x01,0x27,0xcc,0x0c,0x27,0x27,0x1b,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27, -0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x00,0x01,0xfe,0x2a,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x07, -0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x1e,0x03,0x09,0x17,0x2b,0x17,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x01,0x28,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0xfe,0x9d,0x6e, -0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xfc,0x54,0x00,0x00,0x00,0x01,0xfb,0xf5,0xff,0x92,0x01,0xb3,0x03,0x3e,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1c,0x18,0x14,0x13,0x12,0x11,0x10,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01, -0x76,0x00,0x00,0x00,0x1d,0x00,0x1d,0x1e,0x03,0x09,0x17,0x2b,0x05,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfd,0xf3,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0x3d,0x02, -0x3b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0x20,0xfe,0xf7,0x6e,0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xa3,0xfe,0xe1,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0xf0,0xfd,0x42,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xf4,0x01,0xb8,0x00,0x1e,0x00,0x6e,0x4b,0xb0, -0x11,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59,0x00,0x05,0x00,0x06,0x00,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x02,0x07,0x02,0x00,0x04,0x00,0x51,0x1b,0x40,0x29,0x00,0x02,0x06,0x00,0x06,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59, -0x00,0x05,0x00,0x06,0x02,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x04,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x1c,0x1b,0x1a,0x18,0x16,0x14,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36, -0x35,0x35,0x21,0x15,0x21,0x06,0x06,0x64,0x29,0x38,0x29,0x24,0x27,0x1b,0x1f,0x27,0x55,0x55,0x46,0x2a,0x39,0x29,0x23,0x27,0x1a,0x20,0x26,0x02,0x12,0xfe,0x2f,0x13,0x46,0xdc,0x1d,0x2b,0x2c,0x1d,0x26,0x20,0x3c,0x3c,0x41,0x50,0x1d,0x2b,0x2c,0x1d,0x28,0x1e,0x05,0x50,0x21,0x25,0x00,0x00,0x00,0x02,0xfd,0xee,0xff,0x4c,0x02,0x30, -0x02,0xe4,0x00,0x44,0x00,0x52,0x00,0xcb,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x02,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x38,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69, -0x00,0x04,0x02,0x0d,0x02,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x3f,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04, -0x03,0x01,0x69,0x00,0x04,0x0d,0x01,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x59,0x40,0x25,0x46,0x45,0x01,0x00,0x4d,0x4b,0x45,0x52,0x46,0x52,0x3e,0x3c,0x3b,0x39,0x34,0x32,0x2c,0x2a,0x25, -0x23,0x1e,0x1c,0x17,0x15,0x11,0x0f,0x0b,0x0a,0x07,0x05,0x00,0x44,0x01,0x44,0x0f,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35, -0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x35,0x06,0x06,0x05,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x62,0x31,0x45,0x32,0x29,0x2a,0x1a,0x1e,0x28,0x55,0x28,0x46,0x2b,0x2c,0x3c,0x2e,0x2a,0x33,0x24,0x39,0x4c,0x0a,0x90,0x7e,0x72,0x83,0x56,0x4a,0x49,0x57, -0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x6e,0x55,0x7e,0x45,0x19,0x49,0x01,0xc5,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xfa,0x1a,0x27,0x27,0x1a,0x25,0x1c,0x3c,0x3c,0x28,0x3f,0x25,0x1a,0x27,0x27,0x1a,0x3e,0x33,0x0c,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55, -0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x47,0x83,0x58,0xcf,0x20,0x23,0x80,0x31,0x2b,0x75,0x2c,0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x01,0x01,0x01,0x05,0x01,0x4c,0x3c,0x01,0x09,0x01,0x4b,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x0a, -0x06,0x0a,0x85,0x00,0x04,0x06,0x00,0x05,0x04,0x72,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x1b,0x40,0x38,0x00,0x0a,0x06,0x0a,0x85,0x00,0x04,0x06, -0x00,0x06,0x04,0x00,0x80,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00,0x3d,0x3b,0x3a,0x39,0x37,0x24,0x24,0x24, -0x22,0x13,0x24,0x24,0x24,0x25,0x0d,0x09,0x1f,0x2b,0x37,0x37,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x33,0x03,0x33,0x13,0x03,0xbc,0xb6,0x1e,0x29,0x20,0x22,0x17,0x15, -0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x33,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x10,0xee,0x6a,0xe7,0xe8,0x23,0xe5,0x08,0x1e,0x22,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, -0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x15,0x1f,0x1f,0x15,0x01,0x27,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x01,0xfe,0x57,0x00,0xe6,0x01,0xae,0x01,0xb3,0x00,0x33,0x00,0x83,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00, -0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, -0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x59,0x40,0x1b,0x01,0x00,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1b,0x19,0x15,0x13,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x33,0x01,0x33,0x0b,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e, -0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x5f,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15, -0x15,0x1d,0x1b,0x21,0x31,0xe6,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x96,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x61,0x00,0xf7,0x40,0x0b,0x5d,0x01,0x08,0x0a,0x60,0x01,0x02,0x09, -0x00,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x38,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x09,0x08,0x72,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01,0x09, -0x01,0x52,0x1b,0x4b,0xb0,0x17,0x50,0x58,0x40,0x39,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x0a,0x08,0x00,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01, -0x09,0x01,0x52,0x1b,0x40,0x40,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x02,0x0a,0x08,0x02,0x80,0x00,0x00,0x02,0x09,0x02,0x00,0x09,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x02,0x00,0x0a,0x02,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05, -0x03,0x03,0x01,0x09,0x01,0x52,0x59,0x59,0x40,0x22,0x00,0x00,0x00,0x61,0x00,0x61,0x5f,0x5e,0x59,0x57,0x53,0x51,0x4d,0x4b,0x47,0x45,0x41,0x3f,0x3b,0x39,0x35,0x33,0x13,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x12,0x13,0x09,0x1f,0x2b,0x37,0x13,0x27,0x0e,0x04,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22, -0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x27,0x33,0x13,0x03,0xbc,0xee,0x12,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x32,0x22,0x1c, -0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x25,0x32,0x22,0x1c,0x1e,0x15,0x15,0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x26,0x32,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22, -0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x16,0x1e,0x1d,0x24,0x1c,0xa7,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x14,0x01,0x18,0x24,0x23,0x18,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a, -0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x25,0x25,0x0a,0xd3,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xfe,0x39,0x00,0xaa,0x01,0x9f,0x02,0xf8,0x00,0x0e,0x00,0x12,0x00,0x3d,0x40,0x3a,0x0a,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x06,0x03,0x02,0x02,0x04,0x01,0x02,0x67,0x00, -0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0f,0x0f,0x00,0x00,0x0f,0x12,0x0f,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x01,0x13,0x33,0x13,0x21,0x15,0x21,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x05,0x35,0x21,0x15,0xfe,0x39,0xc8,0x54,0x9b,0x01,0xaf,0xfe, -0x1b,0x77,0x0a,0x0b,0x02,0x02,0x0d,0x0b,0x7c,0x01,0x24,0x01,0xe5,0x01,0x9a,0x01,0x5e,0xfe,0xf2,0x50,0xe1,0x14,0x1e,0x07,0x07,0x1e,0x14,0xe1,0xf0,0x50,0x50,0x00,0x00,0x04,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x46,0x40,0x43,0x02,0x01,0x00,0x09,0x03,0x08,0x03,0x01,0x04,0x00, -0x01,0x67,0x06,0x01,0x04,0x05,0x05,0x04,0x57,0x06,0x01,0x04,0x04,0x05,0x5f,0x0b,0x07,0x0a,0x03,0x05,0x04,0x05,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x33,0x35, -0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0xfd,0xf8,0x01,0xcc,0x78,0x01,0xcc,0xfb,0xf0,0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x00,0x00,0x06,0xfb,0xa0,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x5d,0x40,0x5a,0x04,0x02, -0x02,0x00,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x01,0x06,0x00,0x01,0x67,0x0a,0x08,0x02,0x06,0x07,0x07,0x06,0x57,0x0a,0x08,0x02,0x06,0x06,0x07,0x5f,0x11,0x0b,0x10,0x09,0x0f,0x05,0x07,0x06,0x07,0x4f,0x14,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x17,0x14,0x17,0x16,0x15,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f, -0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x3c,0x01,0xcc,0xf9,0x98,0x01,0xcc,0x8c,0x01,0xcc,0xfb,0xdc,0x01,0xcc,0x8c, -0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x02,0x00,0x8c,0xff,0xf6,0x01,0xcc,0x02,0xda,0x00,0x0e,0x00,0x1a,0x00,0x24,0x40,0x21,0x0f,0x03,0x00,0x03,0x02,0x49,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x59,0x00,0x01,0x01,0x02,0x61,0x00,0x02,0x01,0x02, -0x51,0x2e,0x24,0x11,0x03,0x06,0x19,0x2b,0x17,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x8c,0x5a,0x01,0x06,0x36,0x29,0x3a,0x46,0x4f,0x46,0x51,0x35,0x29,0x2e,0x25,0x21,0x21,0x25,0x0a,0x02,0xe4,0xfe,0xc0,0x27,0x2f,0x54,0x47,0x55,0x43, -0x6c,0x1a,0x3a,0x14,0x10,0x40,0x2b,0x55,0x23,0x26,0x26,0x23,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x40,0x40,0x3d,0x0e,0x01,0x00,0x01,0x1f,0x1e,0x1d,0x1c,0x1b,0x18,0x17,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x0a,0x09,0x06,0x05,0x04,0x03,0x02,0x01,0x16,0x02,0x00,0x00,0x01,0x03,0x02,0x03, -0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x03,0x76,0x13,0x19,0x13,0x17,0x04,0x06,0x1a,0x2b,0x37,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x33,0x15,0x37,0x35,0x33,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x23,0x35,0x07,0x15,0x23,0x35,0x13,0x15,0x37,0x35,0x41,0x69,0x69,0x69, -0x3c,0x8c,0x3c,0x69,0x69,0x69,0x69,0x3c,0x8c,0x3c,0x3c,0x8c,0x50,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x37,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x01,0x22,0xc1,0x49,0xc1,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x00, -0x01,0x86,0x00,0x00,0x00,0x28,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x02,0x06,0x03,0x2a,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0xd1,0x01,0x77,0x03,0x08,0x00,0x03, -0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0xd1,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0x00,0x37,0x01,0x99,0x02,0x1c,0x02,0xd0,0x00,0x03,0x00,0x07,0x00,0x2a, -0xb1,0x06,0x64,0x44,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x13,0x33,0x03,0x21,0x13,0x33,0x03,0x01,0x4a,0x50,0x82,0x82,0xfe,0x9d,0x50,0x82,0x82,0x01,0x99,0x01,0x37, -0xfe,0xc9,0x01,0x37,0xfe,0xc9,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, -0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0xfe,0x25,0x02,0x89,0xff,0x83,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x33,0xb1,0x06,0x64,0x44,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00, -0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d, -0x1d,0x23,0x23,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x02,0x89,0xff,0x1b,0x03,0x09,0x00,0x0b,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07, -0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x01,0xfe,0x4a,0x02,0x85,0xff,0x1c,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x02,0x85,0xff,0x5b,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00, -0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x02,0x85,0xff,0xb8,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x32,0xb1,0x06,0x64,0x44,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, -0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x00,0x00, -0x00,0x01,0xff,0x60,0x02,0x26,0xff,0xc3,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0xa0,0x0f,0x54,0x18,0x02,0x26,0xb4,0xb4,0x00,0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06, -0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x00,0x00, -0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63, -0x52,0x50,0x65,0x8b,0x02,0x85,0x8c,0x4e,0x4e,0x8c,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x31,0xb1,0x06,0x64,0x44,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00, -0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0x60,0xff,0x4c,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x39, -0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33, -0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x8a,0xff,0x74, -0x03,0x0c,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00, -0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33, -0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x02,0x9e,0xff,0x74,0x02,0xe9,0x00,0x03,0x00,0x26,0xb1,0x06, -0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0x02,0x9e,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x38,0x03,0x39,0x00,0x0e,0x00,0x4e,0xb1,0x06, -0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e, -0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x00,0x00,0x00,0x02,0xfd,0xf0,0x02,0x85,0xff,0x6d,0x03,0x11,0x00,0x03, -0x00,0x07,0x00,0x25,0xb1,0x06,0x64,0x44,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0xb1,0x06,0x00,0x44,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x02,0x85,0x8c,0x8c,0x8c, -0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x47,0x03,0x70,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x07,0x23,0x37,0xb9,0x50,0x7d,0x82,0x03,0x70,0xeb,0xeb,0x00,0x00,0x00,0x00,0x01,0xff,0x18, -0x01,0xe5,0xff,0xa0,0x02,0x94,0x00,0x0a,0x00,0x4e,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03,0x01,0x02,0x00,0x02,0x52,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03, -0x01,0x02,0x00,0x02,0x52,0x59,0x40,0x0b,0x00,0x00,0x00,0x0a,0x00,0x09,0x12,0x21,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe8,0x1a,0x23,0x4b,0x3a,0x2f,0x01,0xe5,0x41,0x23,0x4b,0x50,0x2b,0x34,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b, -0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xd5,0x22, -0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x5c,0xff,0x06,0xff,0x4c,0xff,0xce,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c, -0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x37,0x1c,0x21,0x20,0x1d,0x1a,0x21,0x21,0xfa,0x37,0x2d,0x2d,0x37,0x37, -0x2d,0x2d,0x37,0x33,0x1b,0x16,0x1a,0x18,0x1b,0x17,0x16,0x1b,0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f, -0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12,0x00,0x36,0xb1,0x06,0x64,0x44,0x40,0x2b,0x0b,0x01,0x01,0x02,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00, -0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0xb1,0x06,0x00,0x44,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0x01,0xfe,0x61, -0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x2e,0xb1,0x06,0x64,0x44,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33, -0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfd,0x8a,0x01,0x22,0x00,0x1e,0x01,0x68,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, -0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfd,0x8a,0x02,0x94,0x01,0x22,0x46,0x46,0x00,0x01,0xfd,0xcb,0xff,0xe2,0xff,0xdd,0x02,0x4e,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfd,0xcb,0x01,0xb7,0x5b,0xfe,0x48,0x1e,0x02,0x6c,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xfe,0x16,0xff,0x92,0xff,0x92,0x02,0x94,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, -0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfe,0x16,0x01,0x3d,0x3f,0xfe,0xc3,0x6e,0x03,0x02,0xfc,0xfe,0x00,0x00,0x00,0xff,0xff,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x09,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x02,0x89,0x01,0x73, -0x03,0x09,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x02,0x85,0x01,0x74,0x03,0x11,0x00,0x07,0x06,0x6a,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x02,0x85,0x01,0xb3,0x03,0x11,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x02,0x85,0x02,0x10,0x03,0x11,0x00,0x07, -0x06,0x6c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x80,0x01,0xcc,0x03,0x11,0x00,0x07,0x06,0x70,0x02,0x58, -0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0x60,0x01,0xa4,0x03,0x44,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x8a,0x01,0xcc,0x03,0x0c,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00, -0xff,0xff,0x00,0xcd,0xff,0x35,0x01,0x9a,0x00,0x1a,0x00,0x07,0x06,0x7b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0x35,0x01,0x81,0x00,0x0a,0x00,0x07,0x06,0x7c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x02,0x06,0x06,0x7a,0x00,0x00,0x00,0x02,0xfe,0x25,0x03,0x31,0xff,0x83, -0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, -0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x03,0x30,0xff,0x1b,0x03,0xb0,0x00,0x0b,0x00,0x1f,0x40,0x1c, -0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x03,0x30,0x23,0x1d,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x00,0x01,0xfe,0x4a, -0x03,0x2a,0xff,0x1c,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x03,0x2a,0xff,0x5b,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x03,0x2a,0xff,0xb8,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00, -0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x03,0x2a,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x1f,0x03,0x2a,0xff,0x89, -0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x03,0x2a,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x01,0xfe,0x1f, -0x03,0x2a,0xff,0x89,0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63,0x52,0x50,0x65,0x8b,0x03,0x2a,0x8c,0x4e,0x4e,0x8c,0x00,0x00, -0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, -0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x03,0x25,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0xfe,0xff,0x4c,0x03,0xe2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, -0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b, -0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0xfe,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x03,0x2f,0xff,0x74,0x03,0xb1,0x00,0x19,0x00,0x65,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59, -0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13, -0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e, -0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x03,0x48,0xff,0x74,0x03,0x93,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40, -0x03,0x48,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x03,0x20,0xff,0x33,0x03,0xd4,0x00,0x0e,0x00,0x46,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00, -0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x2d,0x0e,0x20,0x4b,0x50,0x2f,0x3a,0x11,0x23,0x03,0x20,0x3f,0x14,0x0c,0x14,0x41,0x29,0x22,0x1c,0x19,0x34,0x00,0x00, -0x00,0x02,0xfd,0xf0,0x03,0x2a,0xff,0x6d,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x1d,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x03, -0x2a,0x8c,0x8c,0x8c,0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x22,0x12,0x22,0x05,0x06,0x19,0x2b,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x23, -0x34,0x26,0x23,0x22,0x06,0x15,0xfe,0x34,0x58,0x48,0x48,0x58,0x47,0x31,0x29,0x28,0x30,0x03,0x25,0x41,0x50,0x50,0x41,0x27,0x30,0x30,0x27,0x00,0x00,0x01,0xfe,0x7a,0x03,0x2a,0xff,0x38,0x03,0xfc,0x00,0x03,0x00,0x1f,0x40,0x1c,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, -0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x07,0x23,0x37,0xc8,0x41,0x7d,0x73,0x03,0xfc,0xd2,0xd2,0x00,0x00,0x00,0x00,0x01,0xff,0x1b,0x02,0x99,0xff,0xa6,0x03,0x48,0x00,0x0b,0x00,0x3c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x12,0x00,0x01,0x00,0x00,0x01,0x70,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x1b, -0x40,0x11,0x00,0x01,0x00,0x01,0x85,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x59,0x40,0x0b,0x00,0x00,0x00,0x0b,0x00,0x0a,0x13,0x21,0x04,0x09,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe5,0x1d,0x10,0x13,0x4b,0x39,0x30,0x02,0x99,0x41,0x13,0x10,0x4b,0x50,0x2b,0x34,0x00,0x00, -0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21, -0x26,0x26,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x25,0xff,0x2b,0xff,0x83,0xff,0xab,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00, -0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22, -0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f,0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12, -0x00,0x4e,0xb5,0x0b,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x14,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, -0x59,0x40,0x0c,0x00,0x00,0x00,0x12,0x00,0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00, -0x00,0x01,0xfe,0x61,0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x42,0x4b,0xb0,0x15,0x50,0x58,0x40,0x11,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x16,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x59, -0x40,0x0d,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfe,0x34, -0xff,0x10,0xff,0x74,0xff,0xa1,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14, -0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0xf0,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0xff,0x3d,0xff,0x74,0xff,0x88,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11, -0x03,0x06,0x17,0x2b,0x05,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0xc3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x7d,0x03,0x31,0x01,0xdb,0x03,0xb1,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x03,0x30,0x01,0x73,0x03,0xb0,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x03,0x2a,0x01,0x74, -0x03,0xb6,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x03,0x2a,0x01,0xb3,0x03,0xb6,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x03,0x2a,0x02,0x10,0x03,0xb6,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07, -0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x25,0x01,0xcc,0x03,0xb6,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0xfe,0x01,0xa4,0x03,0xe2,0x00,0x07,0x06,0x96,0x02,0x58, -0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x2f,0x01,0xcc,0x03,0xb1,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x48,0x01,0xcc,0x03,0x93,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x02,0x85,0x01,0xa0,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, -0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x37,0x33,0x07,0xd2,0x6a,0x64,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0xe1,0x02,0x3a,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00, -0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x37,0x33,0x07,0xe1,0x38,0x5e,0x40,0x02,0x3a,0xa0,0xa0,0x00,0x00,0x03,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x84,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x77,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x24,0x00,0x00,0x03,0x03,0x00,0x70,0x06, -0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x52,0x1b,0x40,0x23,0x00,0x00,0x03,0x00,0x85,0x06,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02, -0x03,0x02,0x52,0x59,0x40,0x1a,0x11,0x10,0x05,0x04,0x00,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0b,0x09,0x04,0x0f,0x05,0x0f,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, -0x06,0x01,0x03,0x4e,0x50,0x58,0x52,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x01,0x83,0x83,0x78,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02, -0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41, -0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00, -0x0f,0x0e,0x0c,0x0a,0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0x95,0x73,0x60,0x78,0x1c,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a, -0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x0f,0x0e,0x0c,0x0a, -0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xb8,0x78,0x60,0x73,0x3f,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00, -0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0xa2,0x00,0x0f,0x00,0x1d,0x00,0x78,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51, -0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1b,0x1a,0x18,0x16,0x14,0x13,0x10,0x1d,0x11,0x1d,0x00,0x0f, -0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xa5,0x2d,0x09,0x1b,0x37,0x41,0x2b,0x33,0x09,0x08,0x23,0x20,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x3d,0x0c,0x0d, -0x18,0x3c,0x27,0x20,0x0d,0x19,0x0b,0x32,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x34,0x02,0x85,0xff,0x74,0x03,0xa0,0x00,0x19,0x00,0x27,0x00,0x95,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x2d,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, -0x0a,0x02,0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x1b,0x40,0x3b,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0a,0x01, -0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x59,0x40,0x1f,0x1b,0x1a,0x01,0x00,0x25,0x24,0x22,0x20,0x1e,0x1d,0x1a,0x27,0x1b,0x27,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0c,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15, -0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0x6c,0x48,0x58,0x41,0x34,0x2a,0x2b,0x35,0x41,0x58,0x03,0x2c,0x13,0x19,0x13, -0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x48,0x3a,0x1f,0x28,0x28,0x1f,0x3a,0x48,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0x00,0x19,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85, -0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xbe,0x73,0x64,0x78,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20, -0x02,0x85,0xff,0xc9,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07, -0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0x96,0x82,0x64,0x7d,0xfe,0x57,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0xce,0x03,0xa2,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04, -0x02,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02, -0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07, -0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb1,0x2d,0x09,0x20,0x32,0x37,0x2e,0x36,0x11,0x23,0xfe,0x86,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x3d,0x0e,0x0a,0x19,0x3c,0x28,0x23,0x15,0x18,0x32,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0x89,0x03,0xa0,0x00,0x19,0x00,0x20,0x00,0x92,0xb5,0x1f,0x01,0x07, -0x06,0x01,0x4c,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x29,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x09,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02, -0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x09,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x1a,0x20,0x1a,0x20,0x1e,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11, -0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0xfe, -0xe0,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x2c,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, -0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, -0x95,0x69,0x60,0x6e,0x35,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, -0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, -0xb8,0x64,0x60,0x5f,0x58,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x0f,0x00,0x1f,0x00,0x78,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80, -0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03, -0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1c,0x1b,0x19,0x16,0x14,0x13,0x10,0x1f,0x11,0x1e,0x00,0x0f,0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, -0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe,0xa6,0x2f,0x07,0x0a,0x49,0x61,0x1a,0x1d,0x08,0x08,0x20,0x36,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x70,0x38,0x08,0x08,0x08,0x3c,0x19,0x17,0x0d,0x1c,0x0b,0x28,0x64,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79, -0x03,0xfc,0x00,0x1b,0x00,0x2b,0x00,0x55,0x40,0x52,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x02,0x4c,0x07,0x01,0x05,0x00,0x06,0x00,0x05,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x08,0x01,0x00,0x05,0x03,0x00,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04, -0x51,0x1d,0x1c,0x01,0x00,0x28,0x27,0x25,0x22,0x20,0x1f,0x1c,0x2b,0x1d,0x2a,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, -0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0x8f,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07,0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x3c,0x3c,0x20,0x1c, -0x1c,0x20,0x3c,0x3c,0x00,0x02,0xfe,0x20,0x03,0x0c,0x00,0x0f,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85,0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03, -0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xc0,0x69,0x66,0x6e,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xc4,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c, -0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23, -0x27,0x07,0x9b,0x78,0x64,0x73,0xfe,0x5c,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xce,0x03,0xfc,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01, -0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00, -0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb4,0x30,0x08,0x0f,0x42,0x55,0x20,0x26,0x10,0x24,0xfe,0x86,0x8a, -0x54,0x8b,0x65,0x50,0x51,0x03,0x70,0x2f,0x08,0x0b,0x10,0x3a,0x22,0x1c,0x1c,0x10,0x22,0x64,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0x88,0x03,0xfc,0x00,0x1b,0x00,0x22,0x00,0x53,0x40,0x50,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x21,0x01,0x05,0x04,0x03,0x4c,0x00,0x04,0x00,0x05,0x00,0x04, -0x05,0x80,0x08,0x06,0x02,0x05,0x05,0x84,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x22,0x1c,0x22,0x20,0x1f,0x1e,0x1d,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23, -0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0xfe,0xd6,0x74,0x80,0x74,0x65,0x4f,0x51,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07, -0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x6e,0x6e,0x49,0x49,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xfe,0xf2,0x02,0x58,0x03,0xca,0x00,0x03,0x00,0x1a,0x00,0x2a,0x40,0x27,0x0f,0x01,0x01,0x00,0x03,0x00,0x02,0x03,0x01,0x02,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x03, -0x76,0x04,0x04,0x04,0x1a,0x04,0x1a,0x12,0x1b,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x34,0x36,0x37,0x37,0x36,0x36,0x35,0x35,0x23,0x37,0x17,0x23,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x11,0x5a,0x78,0x78,0x2c,0x25,0x91,0x19,0x1d,0x6e,0xaa,0xaa,0x6e,0x28,0x20,0x9b,0x19,0x1c,0x01,0x6c,0x02,0x5e,0xfd,0xfb, -0xfd,0x2d,0x01,0x7d,0x2c,0x59,0x1b,0x6c,0x12,0x2d,0x13,0xaa,0xaa,0xaa,0xb4,0x25,0x4b,0x18,0x73,0x13,0x34,0x1d,0xfe,0x8e,0x00,0x02,0x00,0x69,0xff,0x42,0x01,0xef,0x03,0x7a,0x00,0x05,0x00,0x1e,0x00,0x47,0x40,0x44,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x67,0x05,0x01,0x03,0x00,0x07,0x04,0x03,0x07, -0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x0a,0x08,0x02,0x06,0x04,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x1e,0x06,0x1e,0x1a,0x19,0x15,0x14,0x13,0x12,0x0d,0x0c,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x33,0x13,0x16,0x16,0x17,0x33,0x32,0x26,0x26, -0x35,0x11,0x33,0x11,0x23,0x03,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x69,0x50,0xdd,0xf1,0x5d,0x81,0x0c,0x15,0x05,0x0a,0x01,0x08,0x08,0x4b,0x5c,0x80,0x0c,0x17,0x06,0x0a,0x05,0x0b,0x01,0x90,0x01,0xea,0xfe,0x61,0x4b,0xfd,0xb2,0x01,0xea,0xfe,0xdb,0x1c,0x47,0x17,0x30,0x41,0x1b,0x01,0x13,0xfe,0x16,0x01,0x25,0x1c,0x47,0x17, -0x1b,0x51,0x20,0xfe,0xed,0x00,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0xb0,0x02,0x26,0x03,0x6b,0x00,0x1a,0x00,0x23,0x00,0x32,0x00,0x44,0x40,0x41,0x32,0x26,0x02,0x06,0x07,0x01,0x4c,0x00,0x02,0x00,0x05,0x01,0x02,0x05,0x69,0x04,0x03,0x02,0x01,0x00,0x07,0x06,0x01,0x07,0x69,0x00,0x06,0x00,0x00,0x06,0x57,0x00,0x06,0x06,0x00,0x5f, -0x08,0x01,0x00,0x06,0x00,0x4f,0x01,0x00,0x2d,0x2b,0x25,0x24,0x21,0x1f,0x1c,0x1b,0x14,0x12,0x0e,0x0c,0x08,0x06,0x00,0x1a,0x01,0x19,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x34,0x26,0x23,0x22, -0x06,0x15,0x13,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x6e,0x19,0x23,0x23,0x19,0x0a,0x30,0x51,0x33,0x35,0x51,0x2e,0x0a,0x19,0x23,0x23,0x19,0xfe,0xde,0xc8,0x37,0x2d,0x2d,0x37,0x37,0x59,0x12,0x26,0x37,0x2d,0x2d,0x37,0x25,0x12,0x50,0x23,0x19,0x01,0xb2,0x19,0x23,0xe7,0x33,0x4d,0x2a,0x2c,0x4c, -0x32,0xe7,0x23,0x19,0xfe,0x4e,0x19,0x23,0x02,0x2b,0xe6,0x2d,0x37,0x37,0x2d,0xfd,0x71,0xa0,0x07,0x28,0x22,0x28,0x31,0x31,0x28,0x22,0x28,0x07,0x00,0x01,0xff,0xd8,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x04,0x00,0x17,0x40,0x14,0x04,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x11,0x10,0x02,0x06,0x18, -0x2b,0x13,0x23,0x11,0x33,0x01,0x0a,0x32,0x32,0x02,0x4e,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b, -0x11,0x01,0x01,0x33,0x01,0x01,0x01,0xe2,0xfe,0x24,0x70,0x01,0xe2,0xfe,0x1e,0xfe,0xd4,0x02,0x92,0x02,0x96,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x80,0x03,0xfc,0x00,0x04,0x00,0x1d,0x40,0x1a,0x01,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x04, -0x00,0x04,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x11,0x02,0x4e,0xfd,0xb2,0x02,0x4e,0x32,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00, -0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x01,0x01,0x01,0xe2,0xfe,0x1e,0x01,0xe2,0x70,0xfe,0x24,0x01,0xe2,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfd,0x6a,0xfd,0x6e,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x2b,0x02,0x26,0x00,0x19,0x00,0x5f,0x4b,0xb0,0x15,0x50,0x58,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, -0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x40,0x1f,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x10, -0x00,0x00,0x00,0x19,0x00,0x19,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x55,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x01,0x82,0x52, -0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x02,0x26,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x67,0x00,0x00,0x00,0x00,0x00,0x16,0x01,0x0e,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, -0x01,0x01,0x00,0x13,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x17,0x00,0x27,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x0b,0x00,0x3e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0xbc,0x00,0x49,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x1c,0x01,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e, -0x01,0x21,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x3c,0x01,0x2f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x2c,0x01,0x6b,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x54,0x01,0x97,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x2a,0x01,0xeb,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x62,0x02,0x15,0x00,0x03, -0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x12,0x02,0x77,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x09,0x00,0x4a,0x02,0x89,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x32,0x02,0xd3,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x32,0x03,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x01,0x22,0x03,0x37,0x00,0x03,0x00,0x01,0x04,0x09, -0x00,0x0e,0x00,0x36,0x04,0x59,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x00,0x00,0x28,0x04,0x8f,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x01,0x00,0x26,0x04,0xb7,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x02,0x00,0x2e,0x04,0xdd,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x03,0x00,0x16,0x05,0x0b,0x43,0x6c,0x61,0x73,0x73,0x69,0x63,0x20,0x63,0x6f, -0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x6b,0x65,0x6e,0x20,0x65,0x71,0x75,0x61,0x6c,0x73,0x20,0x6c,0x69,0x67,0x61,0x74,0x75,0x72,0x65,0x73,0x52,0x61,0x73,0x65,0x64,0x20,0x62,0x61,0x72,0x20,0x66,0x00, -0x43,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x32,0x00,0x30,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00, -0x6f,0x00,0x20,0x00,0x50,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x41,0x00,0x75,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x72,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x67,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x75,0x00, -0x62,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x29,0x00,0x4a,0x00,0x65,0x00, -0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x4a,0x00,0x42,0x00,0x3b,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00, -0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00, -0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x20,0x00,0x74,0x00,0x74,0x00,0x66,0x00,0x61,0x00,0x75,0x00,0x74,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x6e,0x00, -0x74,0x00,0x20,0x00,0x28,0x00,0x76,0x00,0x31,0x00,0x2e,0x00,0x38,0x00,0x2e,0x00,0x34,0x00,0x2e,0x00,0x37,0x00,0x2d,0x00,0x35,0x00,0x64,0x00,0x35,0x00,0x62,0x00,0x29,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00, -0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00, -0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x73,0x00,0x2e,0x00,0x72,0x00,0x2e,0x00,0x6f,0x00,0x2e,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00, -0x50,0x00,0x68,0x00,0x69,0x00,0x6c,0x00,0x69,0x00,0x70,0x00,0x70,0x00,0x20,0x00,0x4e,0x00,0x75,0x00,0x72,0x00,0x75,0x00,0x6c,0x00,0x6c,0x00,0x69,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x4b,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x42,0x00,0x75,0x00,0x6c,0x00, -0x65,0x00,0x6e,0x00,0x6b,0x00,0x6f,0x00,0x76,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x68,0x00,0x74,0x00, -0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00, -0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00, -0x53,0x00,0x49,0x00,0x4c,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00, -0x2e,0x00,0x31,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00, -0x74,0x00,0x68,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x46,0x00,0x41,0x00,0x51,0x00,0x20,0x00,0x61,0x00,0x74,0x00,0x3a,0x00,0x20,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00, -0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x4f,0x00,0x46,0x00,0x4c,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00, -0x4f,0x00,0x46,0x00,0x4c,0x00,0x43,0x00,0x6c,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x43,0x00,0x6c,0x00,0x6f,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x63,0x00,0x6f,0x00, -0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x42,0x00,0x72,0x00,0x6f,0x00,0x6b,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x65,0x00,0x71,0x00,0x75,0x00,0x61,0x00,0x6c,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x67,0x00,0x61,0x00,0x74,0x00,0x75,0x00,0x72,0x00,0x65,0x00, -0x73,0x00,0x52,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x72,0x00,0x20,0x00,0x66,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x65,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x00,0x00,0x24,0x00,0xc9, -0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x00,0xc7,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x00,0x62,0x01,0x0e,0x00,0xad,0x01,0x0f,0x01,0x10,0x01,0x11,0x00,0x63,0x00,0xae,0x00,0x90,0x01,0x12,0x00,0x25,0x00,0x26,0x00,0xfd,0x00,0xff,0x00,0x64,0x01,0x13,0x01,0x14,0x00,0x27,0x00,0xe9, -0x01,0x15,0x01,0x16,0x00,0x28,0x00,0x65,0x01,0x17,0x01,0x18,0x00,0xc8,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x00,0xca,0x01,0x1e,0x01,0x1f,0x00,0xcb,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x00,0x29,0x00,0x2a,0x01,0x25,0x00,0xf8,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x00,0x2b,0x01,0x2a,0x01,0x2b, -0x00,0x2c,0x00,0xcc,0x01,0x2c,0x00,0xcd,0x00,0xce,0x00,0xfa,0x01,0x2d,0x00,0xcf,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x00,0x2d,0x01,0x32,0x00,0x2e,0x01,0x33,0x00,0x2f,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x00,0xe2,0x00,0x30,0x00,0x31,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x00,0x66,0x00,0x32,0x00,0xd0,0x01,0x3c, -0x00,0xd1,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41,0x00,0x67,0x01,0x42,0x00,0xd3,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c,0x00,0x91,0x01,0x4d,0x00,0xaf,0x00,0xb0,0x00,0x33,0x00,0xed,0x00,0x34,0x00,0x35,0x01,0x4e,0x01,0x4f,0x01,0x50,0x00,0x36,0x01,0x51, -0x00,0xe4,0x00,0xfb,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55,0x00,0x37,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x00,0x38,0x00,0xd4,0x01,0x5a,0x00,0xd5,0x00,0x68,0x01,0x5b,0x00,0xd6,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x00,0x39,0x00,0x3a, -0x01,0x68,0x01,0x69,0x01,0x6a,0x01,0x6b,0x00,0x3b,0x00,0x3c,0x00,0xeb,0x01,0x6c,0x00,0xbb,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x00,0x3d,0x01,0x72,0x00,0xe6,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x00,0x44,0x00,0x69,0x01,0x7c,0x01,0x7d,0x01,0x7e,0x01,0x7f, -0x01,0x80,0x01,0x81,0x01,0x82,0x00,0x6b,0x01,0x83,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x00,0x6c,0x01,0x88,0x00,0x6a,0x01,0x89,0x01,0x8a,0x01,0x8b,0x00,0x6e,0x00,0x6d,0x00,0xa0,0x01,0x8c,0x00,0x45,0x00,0x46,0x00,0xfe,0x01,0x00,0x00,0x6f,0x01,0x8d,0x01,0x8e,0x00,0x47,0x00,0xea,0x01,0x8f,0x01,0x01,0x00,0x48,0x00,0x70, -0x01,0x90,0x01,0x91,0x00,0x72,0x01,0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x00,0x73,0x01,0x97,0x01,0x98,0x00,0x71,0x01,0x99,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x00,0x49,0x00,0x4a,0x01,0x9e,0x00,0xf9,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0xa2,0x00,0x4b,0x01,0xa3,0x01,0xa4,0x00,0x4c,0x00,0xd7,0x00,0x74,0x01,0xa5, -0x01,0xa6,0x00,0x76,0x00,0x77,0x01,0xa7,0x01,0xa8,0x00,0x75,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x4d,0x01,0xad,0x01,0xae,0x00,0x4e,0x01,0xaf,0x01,0xb0,0x00,0x4f,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x00,0xe3,0x00,0x50,0x00,0x51,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x00,0x78,0x00,0x52, -0x00,0x79,0x01,0xbb,0x01,0xbc,0x00,0x7b,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x00,0x7c,0x01,0xc2,0x00,0x7a,0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x00,0xa1,0x01,0xcd,0x00,0x7d,0x00,0xb1,0x00,0x53,0x00,0xee,0x00,0x54,0x00,0x55,0x01,0xce,0x01,0xcf, -0x01,0xd0,0x00,0x56,0x01,0xd1,0x00,0xe5,0x00,0xfc,0x01,0xd2,0x01,0xd3,0x00,0x89,0x01,0xd4,0x00,0x57,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x00,0x58,0x00,0x7e,0x01,0xd9,0x01,0xda,0x00,0x80,0x00,0x81,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x00,0x7f,0x01,0xe0,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x01,0xe5, -0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x00,0x59,0x00,0x5a,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x00,0x5b,0x00,0x5c,0x00,0xec,0x01,0xf0,0x00,0xba,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x00,0x5d,0x01,0xf6,0x00,0xe7,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd, -0x01,0xfe,0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d, -0x02,0x1e,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0x2c,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0x31,0x02,0x32,0x02,0x33,0x02,0x34,0x02,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02,0x39,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d, -0x02,0x3e,0x02,0x3f,0x02,0x40,0x00,0x9d,0x00,0x9e,0x02,0x41,0x02,0x42,0x02,0x43,0x02,0x44,0x02,0x45,0x02,0x46,0x02,0x47,0x02,0x48,0x02,0x49,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x4e,0x02,0x4f,0x02,0x50,0x02,0x51,0x02,0x52,0x02,0x53,0x02,0x54,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b, -0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61,0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b, -0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81,0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b, -0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1,0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x02,0xaf,0x02,0xb0,0x02,0xb1,0x02,0xb2,0x02,0xb3,0x02,0xb4,0x02,0xb5,0x02,0xb6,0x02,0xb7,0x02,0xb8,0x02,0xb9,0x02,0xba,0x02,0xbb, -0x02,0xbc,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x02,0xc1,0x02,0xc2,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2,0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb, -0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb, -0x02,0xfc,0x00,0x9b,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a, -0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d,0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a, -0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x03,0x4c,0x03,0x4d,0x03,0x4e,0x03,0x4f,0x03,0x50, -0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67,0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70, -0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83,0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x00,0xbc,0x00,0xf4,0x00,0xf5, -0x00,0xf6,0x03,0x8e,0x03,0x8f,0x03,0x90,0x03,0x91,0x03,0x92,0x00,0x11,0x00,0x0f,0x00,0x1d,0x00,0x1e,0x00,0xab,0x00,0x04,0x00,0xa3,0x00,0x22,0x00,0xa2,0x00,0xc3,0x00,0x87,0x00,0x0d,0x03,0x93,0x03,0x94,0x03,0x95,0x03,0x96,0x03,0x97,0x00,0x06,0x03,0x98,0x03,0x99,0x00,0x12,0x00,0x3f,0x03,0x9a,0x03,0x9b,0x03,0x9c,0x03,0x9d, -0x00,0x0b,0x00,0x0c,0x00,0x5e,0x00,0x60,0x00,0x3e,0x00,0x40,0x03,0x9e,0x03,0x9f,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x03,0xa3,0x03,0xa4,0x03,0xa5,0x03,0xa6,0x03,0xa7,0x03,0xa8,0x03,0xa9,0x03,0xaa,0x03,0xab,0x00,0x10,0x03,0xac,0x00,0xb2,0x00,0xb3,0x03,0xad,0x00,0x42,0x00,0xc4,0x00,0xc5,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7, -0x03,0xae,0x03,0xaf,0x00,0xa9,0x00,0xaa,0x00,0xbe,0x00,0xbf,0x03,0xb0,0x00,0x05,0x00,0x0a,0x03,0xb1,0x03,0xb2,0x03,0xb3,0x03,0xb4,0x03,0xb5,0x03,0xb6,0x03,0xb7,0x03,0xb8,0x03,0xb9,0x03,0xba,0x03,0xbb,0x03,0xbc,0x03,0xbd,0x03,0xbe,0x03,0xbf,0x03,0xc0,0x03,0xc1,0x03,0xc2,0x03,0xc3,0x03,0xc4,0x03,0xc5,0x03,0xc6,0x03,0xc7, -0x03,0xc8,0x03,0xc9,0x03,0xca,0x03,0xcb,0x03,0xcc,0x03,0xcd,0x03,0xce,0x03,0xcf,0x03,0xd0,0x03,0xd1,0x03,0xd2,0x03,0xd3,0x03,0xd4,0x03,0xd5,0x03,0xd6,0x03,0xd7,0x03,0xd8,0x03,0xd9,0x03,0xda,0x03,0xdb,0x03,0xdc,0x03,0xdd,0x03,0xde,0x03,0xdf,0x03,0xe0,0x03,0xe1,0x03,0xe2,0x03,0xe3,0x03,0xe4,0x03,0xe5,0x03,0xe6,0x03,0xe7, -0x03,0xe8,0x03,0xe9,0x03,0xea,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0xf3,0x03,0xf4,0x03,0xf5,0x03,0xf6,0x03,0xf7,0x03,0xf8,0x03,0xf9,0x03,0xfa,0x03,0xfb,0x03,0xfc,0x03,0xfd,0x03,0xfe,0x03,0xff,0x04,0x00,0x04,0x01,0x04,0x02,0x00,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x06, -0x00,0x84,0x00,0xbd,0x00,0x07,0x04,0x07,0x04,0x08,0x00,0xa6,0x04,0x09,0x04,0x0a,0x00,0x85,0x04,0x0b,0x00,0x96,0x04,0x0c,0x04,0x0d,0x04,0x0e,0x04,0x0f,0x04,0x10,0x04,0x11,0x04,0x12,0x04,0x13,0x04,0x14,0x04,0x15,0x04,0x16,0x04,0x17,0x04,0x18,0x04,0x19,0x04,0x1a,0x04,0x1b,0x04,0x1c,0x04,0x1d,0x04,0x1e,0x04,0x1f,0x04,0x20, -0x04,0x21,0x04,0x22,0x04,0x23,0x04,0x24,0x04,0x25,0x04,0x26,0x04,0x27,0x04,0x28,0x04,0x29,0x04,0x2a,0x04,0x2b,0x04,0x2c,0x04,0x2d,0x04,0x2e,0x04,0x2f,0x04,0x30,0x04,0x31,0x04,0x32,0x04,0x33,0x04,0x34,0x04,0x35,0x04,0x36,0x04,0x37,0x04,0x38,0x04,0x39,0x04,0x3a,0x04,0x3b,0x04,0x3c,0x04,0x3d,0x04,0x3e,0x04,0x3f,0x04,0x40, -0x04,0x41,0x04,0x42,0x04,0x43,0x04,0x44,0x04,0x45,0x04,0x46,0x04,0x47,0x04,0x48,0x04,0x49,0x04,0x4a,0x04,0x4b,0x04,0x4c,0x04,0x4d,0x04,0x4e,0x04,0x4f,0x04,0x50,0x04,0x51,0x04,0x52,0x00,0x0e,0x00,0xef,0x00,0xf0,0x00,0xb8,0x00,0x20,0x00,0x8f,0x00,0x21,0x00,0x1f,0x00,0x95,0x00,0x94,0x00,0x93,0x00,0xa7,0x00,0xa4,0x00,0x61, -0x00,0x41,0x00,0x92,0x04,0x53,0x04,0x54,0x04,0x55,0x04,0x56,0x04,0x57,0x00,0x9c,0x04,0x58,0x00,0x9a,0x00,0x99,0x00,0xa5,0x00,0x98,0x04,0x59,0x04,0x5a,0x04,0x5b,0x04,0x5c,0x04,0x5d,0x04,0x5e,0x04,0x5f,0x04,0x60,0x00,0x08,0x00,0xc6,0x04,0x61,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x04,0x69, -0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c,0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89, -0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9, -0x04,0xaa,0x04,0xab,0x04,0xac,0x04,0xad,0x04,0xae,0x04,0xaf,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x04,0xbf,0x04,0xc0,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9, -0x04,0xca,0x04,0xcb,0x04,0xcc,0x04,0xcd,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7,0x04,0xe8,0x04,0xe9, -0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x00,0xb9,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07,0x05,0x08, -0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28, -0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x05,0x3c,0x05,0x3d,0x05,0x3e,0x05,0x3f,0x05,0x40,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x05,0x47,0x05,0x48, -0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x05,0x51,0x05,0x52,0x05,0x53,0x05,0x54,0x05,0x55,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62,0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68, -0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82,0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88, -0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2,0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8, -0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8, -0x05,0xc9,0x05,0xca,0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x00,0x23,0x00,0x09,0x00,0x88,0x00,0x86,0x00,0x8b,0x00,0x8a,0x00,0x8c,0x00,0x83,0x05,0xda,0x05,0xdb,0x00,0x5f,0x00,0xe8,0x00,0x82,0x05,0xdc,0x00,0xc2, -0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1,0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc, -0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x06,0x01,0x06,0x02,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x06,0x07,0x06,0x08,0x06,0x09,0x06,0x0a,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12,0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c, -0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x28,0x06,0x29,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c, -0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x06,0x4e,0x06,0x4f,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57,0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c, -0x06,0x5d,0x06,0x5e,0x06,0x5f,0x06,0x60,0x06,0x61,0x06,0x62,0x06,0x63,0x06,0x64,0x06,0x65,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x06,0x73,0x06,0x74,0x06,0x75,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c, -0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83,0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x06,0x8c,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x00,0x8e,0x00,0xdc,0x00,0x43, -0x00,0x8d,0x00,0xdf,0x00,0xd8,0x00,0xe1,0x00,0xdb,0x00,0xdd,0x00,0xd9,0x00,0xda,0x00,0xde,0x00,0xe0,0x06,0x9a,0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf, -0x06,0xb0,0x06,0xb1,0x06,0xb2,0x06,0xb3,0x06,0xb4,0x06,0xb5,0x06,0xb6,0x06,0xb7,0x06,0xb8,0x06,0xb9,0x06,0xba,0x06,0xbb,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x06,0xc4,0x06,0xc5,0x06,0xc6,0x06,0xc7,0x06,0xc8,0x06,0xc9,0x06,0xca,0x06,0xcb,0x06,0xcc,0x06,0xcd,0x06,0xce,0x06,0xcf, -0x06,0xd0,0x06,0xd1,0x06,0xd2,0x06,0xd3,0x06,0xd4,0x06,0xd5,0x06,0xd6,0x06,0xd7,0x06,0xd8,0x06,0xd9,0x06,0xda,0x06,0xdb,0x06,0x41,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x32,0x07, -0x75,0x6e,0x69,0x31,0x45,0x42,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x30,0x07, -0x75,0x6e,0x69,0x31,0x45,0x41,0x32,0x07,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x41,0x45,0x61,0x63,0x75,0x74,0x65,0x0b,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x43,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x44,0x63,0x61,0x72,0x6f,0x6e,0x06,0x44,0x63, -0x72,0x6f,0x61,0x74,0x06,0x45,0x62,0x72,0x65,0x76,0x65,0x06,0x45,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x34,0x0a,0x45,0x64,0x6f,0x74,0x61, -0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x41,0x07,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x34,0x06,0x47,0x63, -0x61,0x72,0x6f,0x6e,0x0b,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x32,0x0a,0x47,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x48,0x62,0x61,0x72,0x0b,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x49,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31, -0x45,0x43,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x38,0x07,0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x49,0x74,0x69,0x6c,0x64,0x65,0x0b,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x36,0x06,0x4c,0x61,0x63,0x75,0x74,0x65,0x06,0x4c,0x63, -0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x42,0x04,0x4c,0x64,0x6f,0x74,0x06,0x4e,0x61,0x63,0x75,0x74,0x65,0x06,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x35,0x03,0x45,0x6e,0x67,0x06,0x4f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x30,0x07,0x75,0x6e,0x69,0x31,0x45, -0x44,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x45,0x05,0x4f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x32, -0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x30,0x0d,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x4f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x41,0x0b,0x4f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75, -0x74,0x65,0x06,0x52,0x61,0x63,0x75,0x74,0x65,0x06,0x52,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x36,0x06,0x53,0x61,0x63,0x75,0x74,0x65,0x0b,0x53,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x39,0x45,0x07,0x75,0x6e,0x69,0x30, -0x31,0x38,0x46,0x04,0x54,0x62,0x61,0x72,0x06,0x54,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x36,0x32,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x41,0x06,0x55,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x36,0x05,0x55,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69, -0x31,0x45,0x45,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x45,0x0d,0x55,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x55,0x6f,0x67,0x6f,0x6e, -0x65,0x6b,0x05,0x55,0x72,0x69,0x6e,0x67,0x06,0x55,0x74,0x69,0x6c,0x64,0x65,0x06,0x57,0x61,0x63,0x75,0x74,0x65,0x0b,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x06,0x57,0x67,0x72,0x61,0x76,0x65,0x0b,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07, -0x75,0x6e,0x69,0x31,0x45,0x46,0x34,0x06,0x59,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x36,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x38,0x06,0x5a,0x61,0x63,0x75,0x74,0x65,0x0a,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x57,0x2e,0x63,0x76,0x30,0x37,0x0b, -0x57,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x37,0x0e,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x57,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x4b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75, -0x6e,0x69,0x30,0x31,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x06,0x51,0x2e,0x63,0x76,0x31,0x36,0x06,0x61,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x42, -0x35,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x41, -0x33,0x07,0x61,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x61,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x61,0x65,0x61,0x63,0x75,0x74,0x65,0x0b,0x63,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x63,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x64,0x63,0x61,0x72,0x6f,0x6e,0x06,0x65,0x62,0x72,0x65,0x76,0x65,0x06,0x65, -0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x35,0x0a,0x65,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x39, -0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x42,0x07,0x65,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x65,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x44,0x07,0x75,0x6e,0x69,0x30,0x32,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x06,0x67,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66, -0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x0a,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x68,0x62,0x61,0x72,0x0b,0x68,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x69,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x30,0x09,0x69,0x2e,0x6c,0x6f,0x63,0x6c,0x54,0x52,0x4b, -0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x39,0x07,0x69,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x69,0x74,0x69,0x6c,0x64,0x65,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x0b,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30, -0x31,0x33,0x37,0x0c,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x06,0x6c,0x61,0x63,0x75,0x74,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x42,0x06,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x04,0x6c,0x64,0x6f,0x74,0x06,0x6e,0x61,0x63,0x75,0x74,0x65,0x0b,0x6e,0x61,0x70,0x6f,0x73, -0x74,0x72,0x6f,0x70,0x68,0x65,0x06,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x36,0x03,0x65,0x6e,0x67,0x06,0x6f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x33, -0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x46,0x05,0x6f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x44,0x07,0x75, -0x6e,0x69,0x31,0x45,0x44,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x31,0x0d,0x6f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x6f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x42,0x0b,0x6f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65,0x06,0x72,0x61,0x63,0x75,0x74,0x65,0x06, -0x72,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x06,0x73,0x61,0x63,0x75,0x74,0x65,0x0b,0x73,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x39,0x05,0x6c,0x6f,0x6e,0x67,0x73,0x04,0x74,0x62,0x61,0x72,0x06,0x74,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30, -0x31,0x36,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x06,0x75,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x41,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45, -0x45,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x05,0x75,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x0d,0x75,0x68,0x75,0x6e,0x67,0x61,0x72, -0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x05,0x75,0x72,0x69,0x6e,0x67,0x06,0x75,0x74,0x69,0x6c,0x64,0x65,0x06,0x77,0x61,0x63,0x75,0x74,0x65,0x0b,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73, -0x06,0x77,0x67,0x72,0x61,0x76,0x65,0x0b,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x06,0x79,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x06,0x7a,0x61,0x63,0x75,0x74, -0x65,0x0a,0x7a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0f,0x67,0x65,0x72,0x6d,0x61,0x6e,0x64,0x62,0x6c,0x73,0x2e,0x63,0x61,0x6c,0x74,0x06,0x6c,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x31,0x0c,0x75,0x6e,0x69,0x30, -0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x31,0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x31,0x06,0x74,0x2e,0x63,0x76,0x30,0x32,0x09,0x74,0x62,0x61,0x72,0x2e,0x63,0x76,0x30,0x32,0x0b,0x74,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30, -0x31,0x36,0x33,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x2e,0x63,0x76,0x30,0x32,0x06,0x67,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30, -0x33,0x10,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x2e,0x63,0x76,0x30,0x33,0x0f,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x30,0x33,0x06,0x6a,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x2e,0x63, -0x76,0x30,0x34,0x10,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x34,0x06,0x6c,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x35,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x35, -0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x35,0x06,0x6d,0x2e,0x63,0x76,0x30,0x36,0x06,0x77,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30, -0x37,0x0e,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x6b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x37,0x2e,0x63,0x76,0x30,0x38,0x11,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x2e,0x63,0x76, -0x30,0x38,0x06,0x66,0x2e,0x63,0x76,0x30,0x39,0x06,0x72,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x30,0x0c,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x2e,0x63,0x76,0x31,0x30,0x06,0x79,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x61,0x63, -0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x31,0x10,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x31,0x0e,0x79,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31, -0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x62,0x72,0x65, -0x76,0x65,0x2e,0x63,0x76,0x31,0x32,0x10,0x75,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x32,0x0e,0x75,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x35,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31,0x32, -0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x68,0x6f,0x72,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x2e,0x63,0x76,0x31,0x32,0x0c, -0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x2e,0x63,0x76,0x31,0x32,0x12,0x75,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6f,0x67,0x6f,0x6e,0x65, -0x6b,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x72,0x69,0x6e,0x67,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x76,0x31,0x32,0x06,0x66,0x2e,0x63,0x76,0x31,0x37,0x0b,0x66,0x2e,0x63,0x76,0x30,0x39,0x2e,0x73,0x73,0x32,0x30,0x06,0x66,0x2e,0x73,0x73,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x30,0x07, -0x75,0x6e,0x69,0x30,0x34,0x31,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x31,0x07, -0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x43,0x07, -0x75,0x6e,0x69,0x30,0x34,0x31,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x07, -0x75,0x6e,0x69,0x30,0x34,0x32,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x43,0x07, -0x75,0x6e,0x69,0x30,0x34,0x32,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x36,0x07, -0x75,0x6e,0x69,0x30,0x34,0x30,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x07, -0x75,0x6e,0x69,0x30,0x34,0x41,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x45,0x07, -0x75,0x6e,0x69,0x30,0x34,0x45,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30, -0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x2e,0x63,0x76,0x39,0x39,0x07,0x75,0x6e,0x69,0x30,0x34, -0x33,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x35,0x07,0x75,0x6e,0x69,0x30,0x34, -0x35,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x42,0x07,0x75,0x6e,0x69,0x30,0x34, -0x33,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, -0x35,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x46,0x07,0x75,0x6e,0x69,0x30,0x34, -0x34,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, -0x35,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, -0x39,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, -0x44,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x35,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69, -0x30,0x34,0x33,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x42,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e, -0x69,0x30,0x34,0x34,0x31,0x2e,0x63,0x76,0x39,0x39,0x05,0x41,0x6c,0x70,0x68,0x61,0x04,0x42,0x65,0x74,0x61,0x05,0x47,0x61,0x6d,0x6d,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x39,0x34,0x07,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x5a,0x65,0x74,0x61,0x03,0x45,0x74,0x61,0x05,0x54,0x68,0x65,0x74,0x61,0x04,0x49,0x6f,0x74,0x61,0x05, -0x4b,0x61,0x70,0x70,0x61,0x06,0x4c,0x61,0x6d,0x62,0x64,0x61,0x02,0x4d,0x75,0x02,0x4e,0x75,0x02,0x58,0x69,0x07,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x02,0x50,0x69,0x03,0x52,0x68,0x6f,0x05,0x53,0x69,0x67,0x6d,0x61,0x03,0x54,0x61,0x75,0x07,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x50,0x68,0x69,0x03,0x43,0x68,0x69,0x03,0x50, -0x73,0x69,0x07,0x75,0x6e,0x69,0x30,0x33,0x41,0x39,0x0a,0x41,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x45,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x49,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e, -0x6f,0x73,0x0c,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x4f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x49,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x0a, -0x4b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x2e,0x63,0x76,0x30,0x38,0x05,0x61,0x6c,0x70,0x68,0x61,0x04,0x62,0x65,0x74,0x61,0x05,0x67,0x61,0x6d,0x6d,0x61,0x05,0x64,0x65,0x6c,0x74,0x61,0x07,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x7a,0x65,0x74,0x61,0x03,0x65,0x74,0x61,0x05, -0x74,0x68,0x65,0x74,0x61,0x04,0x69,0x6f,0x74,0x61,0x05,0x6b,0x61,0x70,0x70,0x61,0x06,0x6c,0x61,0x6d,0x62,0x64,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x42,0x43,0x02,0x6e,0x75,0x02,0x78,0x69,0x07,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x03,0x72,0x68,0x6f,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x32,0x05,0x73,0x69,0x67,0x6d,0x61,0x03, -0x74,0x61,0x75,0x07,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x70,0x68,0x69,0x03,0x63,0x68,0x69,0x03,0x70,0x73,0x69,0x05,0x6f,0x6d,0x65,0x67,0x61,0x09,0x69,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x11,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69, -0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0f,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x14,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e, -0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x6f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x61,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x65,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x44, -0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x36,0x0a,0x6b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0a,0x67,0x61,0x6d,0x6d,0x61,0x2e,0x63,0x76,0x31,0x31,0x0b,0x6c,0x61,0x6d,0x62,0x64,0x61,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x31,0x36,0x39,0x31,0x30,0x06,0x75,0x31,0x44,0x35,0x33,0x38,0x06,0x75,0x31,0x44,0x35,0x33,0x39, -0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x32,0x06,0x75,0x31,0x44,0x35,0x33,0x42,0x06,0x75,0x31,0x44,0x35,0x33,0x43,0x06,0x75,0x31,0x44,0x35,0x33,0x44,0x06,0x75,0x31,0x44,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x30,0x06,0x75,0x31,0x44,0x35,0x34,0x31,0x06,0x75,0x31,0x44,0x35,0x34, -0x32,0x06,0x75,0x31,0x44,0x35,0x34,0x33,0x06,0x75,0x31,0x44,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x35,0x06,0x75,0x31,0x44,0x35,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x41,0x06,0x75,0x31, -0x44,0x35,0x34,0x42,0x06,0x75,0x31,0x44,0x35,0x34,0x43,0x06,0x75,0x31,0x44,0x35,0x34,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x45,0x06,0x75,0x31,0x44,0x35,0x34,0x46,0x06,0x75,0x31,0x44,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x32,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x32,0x06,0x75,0x31,0x44,0x35,0x35,0x33,0x06,0x75,0x31, -0x44,0x35,0x35,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x35,0x06,0x75,0x31,0x44,0x35,0x35,0x36,0x06,0x75,0x31,0x44,0x35,0x35,0x37,0x06,0x75,0x31,0x44,0x35,0x35,0x38,0x06,0x75,0x31,0x44,0x35,0x35,0x39,0x06,0x75,0x31,0x44,0x35,0x35,0x41,0x06,0x75,0x31,0x44,0x35,0x35,0x42,0x06,0x75,0x31,0x44,0x35,0x35,0x43,0x06,0x75,0x31,0x44, -0x35,0x35,0x44,0x06,0x75,0x31,0x44,0x35,0x35,0x45,0x06,0x75,0x31,0x44,0x35,0x35,0x46,0x06,0x75,0x31,0x44,0x35,0x36,0x30,0x06,0x75,0x31,0x44,0x35,0x36,0x31,0x06,0x75,0x31,0x44,0x35,0x36,0x32,0x06,0x75,0x31,0x44,0x35,0x36,0x33,0x06,0x75,0x31,0x44,0x35,0x36,0x34,0x06,0x75,0x31,0x44,0x35,0x36,0x35,0x06,0x75,0x31,0x44,0x35, -0x36,0x36,0x06,0x75,0x31,0x44,0x35,0x36,0x37,0x06,0x75,0x31,0x44,0x35,0x36,0x38,0x06,0x75,0x31,0x44,0x35,0x36,0x39,0x06,0x75,0x31,0x44,0x35,0x36,0x41,0x06,0x75,0x31,0x44,0x35,0x36,0x42,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x7a,0x65,0x72,0x6f,0x08,0x74,0x77,0x6f,0x2e,0x63,0x76,0x31,0x38,0x08,0x73,0x69,0x78,0x2e,0x63,0x76,0x31, -0x38,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x63,0x76,0x31,0x38,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x63,0x76,0x31,0x39,0x09,0x66,0x69,0x76,0x65,0x2e,0x63,0x76,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x33, -0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x6f,0x6e,0x65,0x2e,0x64, -0x6e,0x6f,0x6d,0x08,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x6f,0x75,0x72,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x73,0x69,0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x64,0x6e,0x6f,0x6d,0x0a, -0x65,0x69,0x67,0x68,0x74,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x6f,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x6f,0x75,0x72, -0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x30, -0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x38, -0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69, -0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72, -0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e, -0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x38,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x2e,0x63,0x76,0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76, -0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e, -0x6e,0x75,0x6d,0x72,0x2e,0x7a,0x65,0x72,0x6f,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x07,0x75,0x6e,0x69,0x30,0x41,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x36,0x09,0x65,0x78,0x63,0x6c,0x61,0x6d,0x64,0x62,0x6c, -0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x44,0x0e,0x6f,0x6e,0x65,0x64,0x6f,0x74,0x65,0x6e,0x6c,0x65,0x61,0x64,0x65,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x46,0x0a,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x1b,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65, -0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x2e,0x63,0x61,0x73,0x65,0x16,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65,0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x42,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x30,0x07,0x75,0x6e, -0x69,0x32,0x37,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x42,0x07,0x75,0x6e, -0x69,0x32,0x37,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x38,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x30,0x0d,0x71,0x75,0x6f,0x74,0x65,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x46,0x07,0x75,0x6e,0x69,0x32, -0x30,0x33,0x34,0x12,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x19,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62, -0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e, -0x6c,0x69,0x67,0x61,0x13,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73, -0x2e,0x6c,0x69,0x67,0x61,0x15,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61, -0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x26,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x23,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63, -0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61, -0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65, -0x66,0x74,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x19,0x70,0x65,0x72, -0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x17,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x14,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c, -0x69,0x67,0x61,0x11,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f, -0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, -0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x12,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x18,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c, -0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x22,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c, -0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x11,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65, -0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x71,0x75,0x65,0x73,0x74,0x69,0x6f, -0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c, -0x69,0x67,0x61,0x1f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x15,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x61,0x73,0x74,0x65,0x72,0x69, -0x73,0x6b,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67, -0x61,0x1b,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65, -0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x25,0x6e, -0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x30,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65, -0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72, -0x65,0x2e,0x6c,0x69,0x67,0x61,0x24,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x13,0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1c, -0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e, -0x6c,0x69,0x67,0x61,0x12,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16, -0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x73,0x6c,0x61,0x73,0x68,0x5f,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61, -0x1e,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x62,0x61,0x72,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x78,0x63,0x6c,0x61, -0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1c,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x41,0x07,0x75, -0x6e,0x69,0x32,0x37,0x45,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x42,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x37,0x09,0x61,0x6e,0x6f,0x74,0x65,0x6c,0x65,0x69,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x45,0x06,0x45,0x4d,0x71,0x75,0x61,0x64,0x0e,0x5a,0x45,0x52,0x4f,0x57,0x49,0x44,0x54, -0x48,0x53,0x50,0x41,0x43,0x45,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x30,0x02,0x43,0x52,0x07,0x75,0x6e,0x69,0x46,0x45,0x46,0x46,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x46,0x04,0x64,0x6f,0x6e,0x67,0x04,0x45,0x75,0x72,0x6f,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x44,0x07,0x75,0x6e,0x69,0x32, -0x30,0x41,0x45,0x09,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x31,0x34,0x0b,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x63,0x76,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x31, -0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x31,0x09,0x63,0x6f,0x6e,0x67,0x72,0x75,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x34,0x07,0x75,0x6e,0x69,0x32, -0x32,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x44,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x31,0x07,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x41,0x07,0x75,0x6e,0x69,0x32, -0x32,0x45,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x43,0x0b,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x63,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x39,0x0b,0x65,0x78,0x69,0x73,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x08,0x67,0x72,0x61,0x64, -0x69,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x39,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x44,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x37,0x07,0x75,0x6e,0x69, -0x32,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x42,0x07,0x75,0x6e,0x69, -0x32,0x32,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x32,0x07,0x75,0x6e,0x69, -0x32,0x32,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x43,0x0a,0x6e,0x6f,0x74, -0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x32,0x09, -0x6e,0x6f,0x74,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x35,0x08,0x65,0x6d,0x70,0x74,0x79,0x73,0x65,0x74,0x0a,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x61,0x6e,0x64,0x09,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x6f,0x72,0x0c,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x05,0x75,0x6e,0x69, -0x6f,0x6e,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x36,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x33, -0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x45,0x07,0x75,0x6e,0x69,0x46,0x45,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x32, -0x33,0x36,0x0c,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x62,0x73,0x65,0x74,0x0e,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x39,0x31,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x42,0x07,0x75, -0x6e,0x69,0x32,0x32,0x43,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x38,0x07,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x07,0x75, -0x6e,0x69,0x32,0x32,0x39,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x31,0x07,0x75, -0x6e,0x69,0x32,0x32,0x39,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x33,0x0c,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x42,0x08,0x73,0x75,0x63,0x68,0x74,0x68,0x61,0x74,0x07,0x75,0x6e,0x69, -0x32,0x31,0x34,0x30,0x0e,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x34,0x09,0x74,0x68,0x65,0x72,0x65,0x66,0x6f,0x72,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x42,0x09,0x75,0x6e, -0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x38,0x07, -0x75,0x6e,0x69,0x32,0x32,0x39,0x36,0x0e,0x63,0x69,0x72,0x63,0x6c,0x65,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x39,0x0a,0x63,0x69,0x72,0x63,0x6c,0x65,0x70,0x6c,0x75,0x73,0x07,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x37,0x0a,0x61,0x72,0x72,0x6f,0x77,0x72, -0x69,0x67,0x68,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x38,0x09,0x61,0x72,0x72,0x6f,0x77,0x64,0x6f,0x77,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x39,0x09,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x36,0x09,0x61,0x72,0x72,0x6f,0x77,0x62,0x6f,0x74,0x68,0x09,0x61,0x72,0x72,0x6f,0x77, -0x75,0x70,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x35,0x07,0x75,0x6e,0x69, -0x32,0x31,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x42,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x43,0x39,0x0a,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x75,0x70,0x0d, -0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x72,0x69,0x67,0x68,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x64,0x6f,0x77,0x6e,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x6c,0x65,0x66,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x62,0x6f,0x74,0x68,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x42,0x07,0x75,0x6e,0x69, -0x32,0x31,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x45,0x07,0x75,0x6e,0x69, -0x32,0x37,0x46,0x35,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x33,0x07,0x64,0x6e,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x35,0x07,0x75,0x6e,0x69, -0x32,0x35,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x37,0x05,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x70,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x44,0x07,0x6c,0x66,0x62,0x6c,0x6f, -0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x39,0x07,0x72,0x74,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x37,0x07,0x75,0x6e,0x69,0x32,0x35, -0x39,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x46,0x07,0x6c,0x74,0x73,0x68,0x61, -0x64,0x65,0x05,0x73,0x68,0x61,0x64,0x65,0x07,0x64,0x6b,0x73,0x68,0x61,0x64,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x46,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x46,0x36,0x07, -0x75,0x6e,0x69,0x32,0x35,0x43,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x45,0x0a,0x6f,0x70,0x65,0x6e,0x62,0x75,0x6c,0x6c,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x38,0x09,0x66,0x69,0x6c,0x6c,0x65, -0x64,0x62,0x6f,0x78,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x41,0x07,0x75,0x6e,0x69, -0x32,0x35,0x45,0x42,0x07,0x74,0x72,0x69,0x61,0x67,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x36,0x07,0x74,0x72,0x69,0x61,0x67,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x44,0x07,0x75,0x6e,0x69, -0x32,0x35,0x43,0x31,0x07,0x74,0x72,0x69,0x61,0x67,0x72,0x74,0x07,0x74,0x72,0x69,0x61,0x67,0x6c,0x66,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x45,0x07,0x75,0x6e,0x69, -0x32,0x35,0x43,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x34,0x07,0x75,0x6e,0x69, -0x32,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x30,0x07,0x75,0x6e,0x69, -0x32,0x35,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x46,0x07,0x75,0x6e,0x69, -0x32,0x35,0x34,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x34,0x07,0x75,0x6e,0x69, -0x32,0x35,0x35,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x46,0x07,0x75,0x6e,0x69, -0x32,0x35,0x30,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x37,0x07,0x75,0x6e,0x69, -0x32,0x35,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x42,0x07,0x75,0x6e,0x69, -0x32,0x35,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x41,0x07,0x75,0x6e,0x69, -0x32,0x35,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x31,0x07,0x75,0x6e,0x69, -0x32,0x35,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x34,0x07,0x75,0x6e,0x69, -0x32,0x35,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x44,0x07,0x75,0x6e,0x69, -0x32,0x35,0x33,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x36,0x07,0x75,0x6e,0x69, -0x32,0x35,0x32,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x38,0x07,0x75,0x6e,0x69, -0x32,0x35,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x36,0x07,0x75,0x6e,0x69, -0x32,0x35,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x42,0x07,0x75,0x6e,0x69, -0x32,0x35,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x46,0x07,0x75,0x6e,0x69, -0x32,0x35,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x36,0x07,0x75,0x6e,0x69, -0x32,0x33,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x41,0x07,0x75,0x6e,0x69, -0x32,0x33,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x36,0x07,0x75,0x6e,0x69, -0x32,0x33,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x34,0x07,0x75,0x6e,0x69, -0x32,0x33,0x35,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x43,0x07,0x75,0x6e,0x69, -0x32,0x33,0x36,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x38,0x07,0x75,0x6e,0x69, -0x32,0x33,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x31,0x07,0x75,0x6e,0x69, -0x32,0x33,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x46,0x07,0x75,0x6e,0x69, -0x32,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x35,0x07,0x75,0x6e,0x69, -0x32,0x33,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x36,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x35,0x07,0x75,0x6e,0x69, -0x32,0x37,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x37,0x33,0x36,0x12,0x61,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x62,0x61,0x63,0x6b,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x06,0x6d,0x69,0x6e,0x75,0x74,0x65,0x06,0x73,0x65,0x63,0x6f,0x6e,0x64,0x07,0x75, -0x6e,0x69,0x32,0x31,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x36,0x09,0x65,0x73,0x74,0x69,0x6d,0x61,0x74,0x65,0x64,0x0b,0x62,0x65,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x42,0x0d,0x63,0x61,0x6e,0x63,0x65,0x6c,0x63,0x6f,0x6e,0x74,0x72, -0x6f,0x6c,0x15,0x63,0x61,0x72,0x72,0x69,0x61,0x67,0x65,0x52,0x65,0x74,0x75,0x72,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x43, -0x15,0x64,0x61,0x74,0x61,0x4c,0x69,0x6e,0x6b,0x45,0x73,0x63,0x61,0x70,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x64,0x65,0x6c,0x65,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x46,0x6f,0x75,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65, -0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x4f,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x68,0x72,0x65,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x77,0x6f, -0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x41,0x12,0x65,0x6e,0x64,0x4f,0x66,0x4d,0x65,0x64,0x69,0x75,0x6d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69, -0x73,0x73,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x1d,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x6f,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x65,0x6e,0x71,0x75,0x69,0x72,0x79,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x65,0x73,0x63,0x61,0x70,0x65, -0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x14,0x66,0x69,0x6c,0x65,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x66,0x6f,0x72,0x6d,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x67,0x72,0x6f,0x75,0x70,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72, -0x6f,0x6c,0x1b,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x39,0x05,0x68,0x6f,0x75,0x73,0x65,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x42,0x07,0x75,0x6e,0x69, -0x32,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x46,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x43,0x45,0x0f,0x6c,0x69,0x6e,0x65,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e, -0x74,0x72,0x6f,0x6c,0x1a,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x41,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0b,0x6e,0x75,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33, -0x46,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x43,0x07,0x75,0x6e,0x69,0x32,0x42,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x35,0x16,0x72,0x65,0x63,0x6f,0x72,0x64,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f, -0x6c,0x0b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x0e,0x73,0x68,0x69,0x66,0x74,0x49,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x73,0x68,0x69,0x66,0x74,0x4f,0x75,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0c,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x73,0x74,0x61,0x72,0x74,0x4f, -0x66,0x48,0x65,0x61,0x64,0x69,0x6e,0x67,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x12,0x73,0x74,0x61,0x72,0x74,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x11,0x73,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x16,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73, -0x49,0x64,0x6c,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x41,0x14,0x75,0x6e,0x69,0x74,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74, -0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x63,0x76,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x37,0x18,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76, -0x31,0x34,0x15,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64, -0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x27,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x19,0x61,0x6d,0x70, -0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x12,0x61,0x74,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69, -0x67,0x61,0x22,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x14,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x62,0x61,0x72,0x5f,0x68, -0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b, -0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x0c,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62, -0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e, -0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72, -0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x13,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10, -0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10, -0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x18,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61, -0x12,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c, -0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72, -0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x19,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f, -0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74, -0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65, -0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70, -0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73, -0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1e,0x6c,0x65,0x73,0x73,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12, -0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0d,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73, -0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x64, -0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x22,0x6c,0x65,0x73,0x73,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65, -0x6e,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65,0x73, -0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, -0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c, -0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65, -0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61, -0x1c,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65, -0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x61,0x73,0x63, -0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x74,0x2e,0x6c,0x69,0x67,0x61,0x17,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69, -0x67,0x61,0x22,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x63,0x69,0x72,0x63,0x75,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x15,0x65,0x71,0x75, -0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1b,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x46,0x07,0x75, -0x6e,0x69,0x30,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x09,0x67, -0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x09,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x61,0x6c,0x74,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x07,0x75, -0x6e,0x69,0x30,0x33,0x30,0x41,0x09,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x0d,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x0c,0x64, -0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x30, -0x33,0x33,0x38,0x0b,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x61,0x6c,0x74,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x2e,0x63,0x61,0x73,0x65,0x0e,0x67,0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0e,0x61,0x63,0x75,0x74,0x65,0x63,0x6f, -0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30, -0x33,0x30,0x41,0x2e,0x63,0x61,0x73,0x65,0x0e,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x2e,0x63,0x61,0x73,0x65,0x12,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x2e, -0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x31,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x2e,0x63,0x61,0x73,0x65,0x11,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e, -0x69,0x30,0x33,0x32,0x34,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x45,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75, -0x6e,0x69,0x30,0x33,0x33,0x31,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x61,0x73,0x65,0x0e,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x61,0x73,0x65,0x0a,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x0a,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x61,0x73,0x65,0x11,0x68, -0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x61,0x73,0x65,0x0f,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x61,0x73,0x65,0x0a,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x0a,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x09,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x73,0x65, -0x0a,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x61,0x73,0x65,0x0b,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x05,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x74,0x6f,0x6e,0x6f,0x73,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0b,0x62,0x72,0x65,0x76,0x65,0x63,0x6f,0x6d,0x62, -0x63,0x79,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x0b,0x75, -0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x2e, -0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30, -0x33,0x30,0x30,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x31,0x07,0x75,0x6e,0x69,0x45,0x30, -0x41,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x31,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x33,0x0e,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x64,0x6f,0x74,0x6c,0x65,0x73,0x73,0x10,0x69,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x64,0x6f,0x74,0x6c,0x65, -0x73,0x73,0x04,0x4e,0x55,0x4c,0x4c,0x03,0x53,0x50,0x43,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x01,0x00,0x02,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x02,0x00,0x4d,0x00,0x01,0x00,0x5d,0x00,0x01,0x00,0x5f,0x00,0x78,0x00,0x01,0x00,0x7a,0x00,0x7a,0x00,0x01,0x00,0x7c,0x00,0x86,0x00,0x01,0x00,0x89, -0x00,0xdd,0x00,0x01,0x00,0xe1,0x00,0xf2,0x00,0x01,0x00,0xf4,0x00,0xfc,0x00,0x01,0x00,0xfe,0x01,0x14,0x00,0x01,0x01,0x16,0x01,0x1f,0x00,0x01,0x01,0x21,0x01,0x3b,0x00,0x01,0x01,0x3d,0x01,0x49,0x00,0x01,0x01,0x4c,0x01,0x7c,0x00,0x01,0x01,0x7e,0x01,0xc2,0x00,0x01,0x01,0xc4,0x01,0xc5,0x00,0x01,0x01,0xc8,0x01,0xc8,0x00,0x01, -0x01,0xca,0x01,0xcc,0x00,0x01,0x01,0xcf,0x01,0xd6,0x00,0x01,0x01,0xd8,0x01,0xda,0x00,0x01,0x01,0xdc,0x01,0xe0,0x00,0x01,0x01,0xe2,0x01,0xe3,0x00,0x01,0x01,0xe9,0x01,0xea,0x00,0x01,0x01,0xed,0x01,0xf2,0x00,0x01,0x01,0xf4,0x01,0xf5,0x00,0x01,0x01,0xf7,0x01,0xfd,0x00,0x01,0x01,0xff,0x02,0x02,0x00,0x01,0x02,0x04,0x02,0x04, -0x00,0x01,0x02,0x06,0x02,0x0a,0x00,0x01,0x02,0x0c,0x02,0x0c,0x00,0x01,0x02,0x0f,0x02,0x10,0x00,0x01,0x02,0x13,0x02,0x1a,0x00,0x01,0x02,0x1e,0x02,0x1e,0x00,0x01,0x02,0x20,0x02,0x24,0x00,0x01,0x02,0x26,0x02,0x27,0x00,0x01,0x02,0x2e,0x02,0x2e,0x00,0x01,0x02,0x31,0x02,0x36,0x00,0x01,0x02,0x38,0x02,0x39,0x00,0x01,0x02,0x3b, -0x02,0x3b,0x00,0x01,0x02,0x3d,0x02,0x3d,0x00,0x01,0x02,0x40,0x02,0x46,0x00,0x01,0x02,0x48,0x02,0x49,0x00,0x01,0x02,0x4b,0x02,0x4f,0x00,0x01,0x02,0x51,0x02,0x53,0x00,0x01,0x02,0x55,0x02,0x57,0x00,0x01,0x02,0x59,0x02,0x5a,0x00,0x01,0x02,0x5c,0x02,0x5d,0x00,0x01,0x02,0x5f,0x02,0x5f,0x00,0x01,0x02,0x61,0x02,0x61,0x00,0x01, -0x02,0x63,0x02,0x64,0x00,0x01,0x02,0x66,0x02,0x66,0x00,0x01,0x02,0x69,0x02,0x6e,0x00,0x01,0x02,0x70,0x02,0x75,0x00,0x01,0x02,0x79,0x02,0x79,0x00,0x01,0x02,0x7b,0x02,0x7b,0x00,0x01,0x02,0x7d,0x02,0x7e,0x00,0x01,0x02,0x81,0x02,0x81,0x00,0x01,0x02,0x83,0x02,0x83,0x00,0x01,0x02,0x89,0x02,0x89,0x00,0x01,0x02,0x8b,0x02,0x8b, -0x00,0x01,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0x96,0x02,0x99,0x00,0x01,0x02,0x9c,0x02,0x9c,0x00,0x01,0x02,0xb0,0x02,0xb0,0x00,0x01,0x02,0xcc,0x02,0xcc,0x00,0x01,0x03,0xc3,0x03,0xc3,0x00,0x01,0x03,0xc7,0x03,0xc7,0x00,0x01,0x03,0xcd,0x03,0xcf,0x00,0x01,0x05,0x7d,0x05,0x7e,0x00,0x01,0x05,0xaa,0x05,0xaa,0x00,0x01,0x05,0xc5, -0x05,0xc5,0x00,0x01,0x05,0xd0,0x05,0xd0,0x00,0x01,0x05,0xeb,0x05,0xeb,0x00,0x01,0x05,0xed,0x05,0xed,0x00,0x01,0x06,0x05,0x06,0x06,0x00,0x02,0x06,0x68,0x06,0x7f,0x00,0x03,0x06,0x8d,0x06,0xa4,0x00,0x03,0x06,0xb3,0x06,0xc3,0x00,0x03,0x06,0xcb,0x06,0xcc,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2a, -0x00,0x00,0x00,0x40,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3,0x00,0x1e,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x24,0x00,0x0a,0x00,0x05,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,0x02,0x44,0x46,0x4c,0x54,0x00,0x1c,0x6c,0x61,0x74,0x6e,0x00,0x60,0x00,0x02,0x6d,0x61,0x72,0x6b,0x00,0x40,0x6d,0x6b,0x6d,0x6b,0x00,0x48,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x7e,0x00,0x04, -0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x86,0x00,0x00,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x88,0x00,0x01,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x8a,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x34,0x00,0x08,0x41,0x5a,0x45,0x20,0x00,0x34, -0x43,0x41,0x54,0x20,0x00,0x34,0x43,0x52,0x54,0x20,0x00,0x34,0x4b,0x41,0x5a,0x20,0x00,0x34,0x4d,0x4f,0x4c,0x20,0x00,0x34,0x52,0x4f,0x4d,0x20,0x00,0x34,0x54,0x41,0x54,0x20,0x00,0x34,0x54,0x52,0x4b,0x20,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x42,0x01,0x66,0x00,0x01,0x00,0x54,0x02,0xca, -0x00,0x01,0x00,0x56,0x04,0xc6,0x00,0x05,0x03,0xc0,0x06,0x68,0x00,0x01,0x00,0x8e,0x00,0x8e,0x00,0x01,0x00,0xc4,0x00,0x76,0x00,0x01,0x00,0x54,0x00,0x9c,0x00,0x01,0x01,0xe8,0x00,0xe6,0x00,0x01,0x00,0x12,0x00,0x1c,0x00,0x01,0x00,0x24,0x00,0x0c,0x00,0x02,0x1d,0x1e,0x1d,0x24,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d, -0x00,0x01,0x00,0x02,0x06,0x77,0x06,0x9d,0x00,0x03,0x00,0x00,0x1d,0x12,0x00,0x00,0x1d,0x18,0x00,0x00,0x1d,0x1e,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x7f,0x00,0x00,0x06,0x8d,0x06,0xa4,0x00,0x18,0x06,0xb3,0x06,0xc3,0x00,0x30,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3, -0x00,0x1e,0x00,0x0b,0x1c,0xf0,0x1c,0xea,0x1c,0xf6,0x1c,0xfc,0x1c,0xf6,0x1c,0xf0,0x1c,0xf0,0x1c,0xf6,0x1c,0xfc,0x1d,0x02,0x1d,0x08,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x04,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e, -0x06,0x76,0x00,0x05,0x06,0x8e,0x06,0x9c,0x00,0x0e,0x06,0xb4,0x06,0xc3,0x00,0x1d,0x00,0x0b,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc0,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x2d, -0x1c,0x9e,0x1c,0x9e,0x1c,0xa4,0x1c,0xaa,0x1c,0xb0,0x1c,0xb6,0x1c,0xb6,0x1c,0xb6,0x1c,0xbc,0x1c,0xc2,0x1c,0xc8,0x1c,0xce,0x1c,0xd4,0x1c,0xda,0x1c,0xfe,0x1c,0xe0,0x1c,0xe6,0x1c,0xec,0x1c,0xf2,0x1d,0x16,0x1d,0x16,0x1d,0x16,0x1c,0xf8,0x1c,0xfe,0x1d,0x04,0x1d,0x0a,0x1d,0x10,0x1d,0x16,0x1d,0x1c,0x1d,0x22,0x1d,0x22,0x1d,0x28, -0x1d,0x40,0x1d,0x2e,0x1d,0x34,0x1d,0x3a,0x1d,0x40,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x58,0x00,0x02,0x00,0x1b,0x00,0x60,0x00,0x74,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x15,0x00,0x8e,0x00,0x9d,0x00,0x16,0x00,0x9f,0x00,0xa0,0x00,0x26,0x00,0xbc,0x00,0xbc,0x00,0x28,0x00,0xdd,0x00,0xdd, -0x00,0x29,0x01,0x22,0x01,0x37,0x00,0x2a,0x01,0x3b,0x01,0x3b,0x00,0x40,0x01,0x4c,0x01,0x5d,0x00,0x41,0x01,0x64,0x01,0x65,0x00,0x53,0x01,0x67,0x01,0x68,0x00,0x55,0x01,0x84,0x01,0x88,0x00,0x57,0x01,0xb0,0x01,0xc2,0x00,0x5c,0x01,0xda,0x01,0xda,0x00,0x6f,0x02,0x02,0x02,0x02,0x00,0x70,0x02,0x1e,0x02,0x1e,0x00,0x71,0x02,0x46, -0x02,0x46,0x00,0x72,0x02,0x5f,0x02,0x5f,0x00,0x73,0x02,0x6d,0x02,0x6d,0x00,0x74,0x02,0x83,0x02,0x83,0x00,0x75,0x02,0x89,0x02,0x89,0x00,0x76,0x02,0x91,0x02,0x94,0x00,0x77,0x05,0xaa,0x05,0xaa,0x00,0x7b,0x05,0xc5,0x05,0xc5,0x00,0x7c,0x05,0xd0,0x05,0xd0,0x00,0x7d,0x05,0xeb,0x05,0xeb,0x00,0x7e,0x05,0xed,0x05,0xed,0x00,0x7f, -0x00,0x2f,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x68,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00, -0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x6e,0x00,0x00,0x1c,0x74,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x7a,0x00,0x00, -0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x80, -0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4, -0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, -0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, -0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xe0,0x1b,0xe0,0x1b,0xda,0x1b,0xe0, -0x00,0x41,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0x9c,0x00,0x00,0x1a,0xa2,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xa8,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x01, -0x1a,0xe4,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x04,0x1a,0xea,0x00,0x04,0x1a,0xf0,0x00,0x04,0x1a,0xf6,0x00,0x02,0x19,0xd0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xae,0x00,0x00,0x1a,0xb4,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, -0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x01,0x1a,0xc0,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02, -0x19,0xd6,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, -0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x02,0x00,0x45,0x00,0x01,0x00,0x5d,0x00,0x00,0x00,0x5f,0x00,0x78,0x00,0x5d,0x00,0x7a,0x00,0x7a,0x00,0x77,0x00,0x7c,0x00,0x86,0x00,0x78,0x00,0x89,0x00,0xdd,0x00,0x83,0x00,0xe1,0x00,0xf2,0x00,0xd8,0x00,0xf4,0x00,0xfc,0x00,0xea,0x00,0xfe,0x01,0x14,0x00,0xf3,0x01,0x16,0x01,0x1f,0x01,0x0a, -0x01,0x21,0x01,0x3b,0x01,0x14,0x01,0x3d,0x01,0x49,0x01,0x2f,0x01,0x4c,0x01,0x7c,0x01,0x3c,0x01,0x7e,0x01,0xc2,0x01,0x6d,0x01,0xc4,0x01,0xc5,0x01,0xb2,0x01,0xc8,0x01,0xc8,0x01,0xb4,0x01,0xca,0x01,0xcc,0x01,0xb5,0x01,0xcf,0x01,0xd6,0x01,0xb8,0x01,0xd8,0x01,0xda,0x01,0xc0,0x01,0xdc,0x01,0xe0,0x01,0xc3,0x01,0xe2,0x01,0xe3, -0x01,0xc8,0x01,0xe9,0x01,0xea,0x01,0xca,0x01,0xed,0x01,0xf2,0x01,0xcc,0x01,0xf4,0x01,0xf5,0x01,0xd2,0x01,0xf7,0x01,0xfd,0x01,0xd4,0x01,0xff,0x02,0x02,0x01,0xdb,0x02,0x04,0x02,0x04,0x01,0xdf,0x02,0x06,0x02,0x0a,0x01,0xe0,0x02,0x0c,0x02,0x0c,0x01,0xe5,0x02,0x0f,0x02,0x10,0x01,0xe6,0x02,0x13,0x02,0x1a,0x01,0xe8,0x02,0x1e, -0x02,0x1e,0x01,0xf0,0x02,0x20,0x02,0x21,0x01,0xf1,0x02,0x23,0x02,0x24,0x01,0xf3,0x02,0x26,0x02,0x27,0x01,0xf5,0x02,0x2e,0x02,0x2e,0x01,0xf7,0x02,0x31,0x02,0x36,0x01,0xf8,0x02,0x38,0x02,0x39,0x01,0xfe,0x02,0x3b,0x02,0x3b,0x02,0x00,0x02,0x40,0x02,0x46,0x02,0x01,0x02,0x48,0x02,0x49,0x02,0x08,0x02,0x4b,0x02,0x4f,0x02,0x0a, -0x02,0x51,0x02,0x53,0x02,0x0f,0x02,0x55,0x02,0x57,0x02,0x12,0x02,0x59,0x02,0x5a,0x02,0x15,0x02,0x5c,0x02,0x5d,0x02,0x17,0x02,0x5f,0x02,0x5f,0x02,0x19,0x02,0x61,0x02,0x61,0x02,0x1a,0x02,0x63,0x02,0x64,0x02,0x1b,0x02,0x66,0x02,0x66,0x02,0x1d,0x02,0x69,0x02,0x6e,0x02,0x1e,0x02,0x70,0x02,0x75,0x02,0x24,0x02,0x79,0x02,0x79, -0x02,0x2a,0x02,0x7b,0x02,0x7b,0x02,0x2b,0x02,0x7d,0x02,0x7e,0x02,0x2c,0x02,0x81,0x02,0x81,0x02,0x2e,0x02,0x83,0x02,0x83,0x02,0x2f,0x02,0x89,0x02,0x89,0x02,0x30,0x02,0x8b,0x02,0x8b,0x02,0x31,0x02,0x8e,0x02,0x94,0x02,0x32,0x02,0x96,0x02,0x99,0x02,0x39,0x02,0x9c,0x02,0x9c,0x02,0x3d,0x02,0xb0,0x02,0xb0,0x02,0x3e,0x02,0xcc, -0x02,0xcc,0x02,0x3f,0x03,0xc3,0x03,0xc3,0x02,0x40,0x03,0xc7,0x03,0xc7,0x02,0x41,0x03,0xcd,0x03,0xcf,0x02,0x42,0x05,0x7d,0x05,0x7e,0x02,0x45,0x05,0xaa,0x05,0xaa,0x02,0x47,0x06,0xcb,0x06,0xcc,0x02,0x48,0x02,0x4a,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66, -0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44, -0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xd2,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xde,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00, -0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x08,0x00,0x00, -0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x54,0x00,0x00,0x1c,0x1a,0x00,0x00, -0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66, -0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x66,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6, -0x1b,0xcc,0x00,0x00,0x18,0x6c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x78,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x7e,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x84,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00, -0x18,0x8a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x96,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x9c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0xa2,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00, -0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00, -0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xa8,0x00,0x00,0x00,0x00,0x19,0x20,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, -0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x20,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8, -0x1b,0xd2,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, -0x18,0xb4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xba,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00, -0x18,0xc0,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x54,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xd2, -0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xde,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xe4,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x1a,0xe8, -0x1c,0x4a,0x1c,0x50,0x19,0x26,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x14,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xea,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xf0,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50, -0x18,0xf6,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xfc,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x02,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x1a,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1b,0xb4,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x1b,0xb4, -0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, -0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x1c,0x50,0x1c,0x38,0x19,0x0e,0x1c,0x44, -0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00, -0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e, -0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x02,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x1a,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, -0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0x20,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50, -0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00, -0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x19,0x56,0x1b,0x6c, -0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x32,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x38,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a, -0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x3e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x44,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x50,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x5c,0x00,0x00,0x1c,0x1a, -0x1b,0x6c,0x00,0x00,0x19,0x62,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x68,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x6e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x74,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00, -0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x80,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a, -0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x16,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0x1c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x22,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x28,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea, -0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x86,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x8c,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00, -0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x98,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x9e,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0xa4,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0xaa,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x84,0x00,0x00,0x1c,0x44,0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00, -0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb0,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, -0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x19,0xbc,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc2,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc8,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xce,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a, -0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xd4,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xda,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xf8,0x00,0x00,0x1b,0xd2, -0x00,0x00,0x1c,0x50,0x19,0xe0,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x19,0xe6,0x00,0x00,0x1c,0x50,0x19,0xec,0x00,0x00,0x1c,0x44,0x00,0x00,0x19,0xf2,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, -0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0x04,0x00,0x00,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6, -0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x16,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a, -0x1b,0xfc,0x1a,0x1c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x22,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x28,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0xf4,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0xfa, -0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x2e,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0x3a,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x40,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x46,0x1b,0xf6,0x1c,0x44, -0x1c,0x4a,0x1b,0xfc,0x1b,0x06,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0x0c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc, -0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, -0x1a,0x52,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xbe,0x00,0x00, -0x00,0x00,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x88,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8, -0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x5e,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x64,0x1b,0xf0,0x1c,0x44, -0x1c,0x4a,0x00,0x00,0x1a,0x6a,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x70,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00, -0x1b,0xa8,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xee,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x1b,0xf0, -0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae, -0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x76,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00, -0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00, -0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x88,0x00,0x00,0x1a,0x8e,0x1c,0x32,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00, -0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1a,0x94,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa0,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa6,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xb8, -0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xac,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, -0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, -0x1a,0xdc,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae, -0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1b,0x1e,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1b,0x00, -0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xee,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x0c,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00, -0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00, -0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, -0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00, -0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x36,0x00,0x00, -0x1b,0x3c,0x00,0x00,0x00,0x00,0x1b,0x42,0x00,0x00,0x1c,0x0e,0x00,0x00,0x1b,0x48,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a, -0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1b,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, -0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x1b,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00, -0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, -0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x32,0x1b,0x96,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, -0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00, -0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, -0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38, -0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, -0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, -0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0, -0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00, -0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x08,0x00,0x00,0x1c,0x0e,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38, -0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x5c,0x00,0x00,0x1c,0x56, -0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x00,0x01,0xff,0xb4,0x02,0x94,0x00,0x01,0xff,0xba,0x03,0x48,0x00,0x01,0xff,0x51,0x02,0x26,0x00,0x01,0xff,0x04,0x02,0x26,0x00,0x01,0xff,0x07,0x02,0xda,0x00,0x01,0xfe,0xd4,0xff,0x06,0x00,0x01,0xfe,0xd4,0xff,0x2b,0x00,0x01,0xfe,0xca,0xff,0x10,0x00,0x01, -0xfe,0xdb,0xff,0x35,0x00,0x01,0xfe,0xd4,0xff,0x10,0x00,0x01,0xfe,0xd4,0xff,0x3d,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xd4,0x03,0x09,0x00,0x01,0xfe,0xb3,0x03,0x11,0x00,0x01,0xfe,0xf5,0x03,0x11,0x00,0x01,0xfe,0xf9,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x44, -0x00,0x01,0xfe,0xd4,0x03,0x0c,0x00,0x01,0xfe,0xd4,0x02,0xe9,0x00,0x01,0xfe,0xd9,0x03,0x39,0x00,0x01,0xfe,0xae,0x03,0x11,0x00,0x01,0xfe,0xe0,0x03,0x70,0x00,0x01,0xfe,0xd4,0x03,0xb0,0x00,0x01,0xfe,0xb3,0x03,0xb6,0x00,0x01,0xfe,0xf5,0x03,0xb6,0x00,0x01,0xfe,0xf9,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xe2,0x00,0x01,0xfe,0xd4, -0x03,0xb1,0x00,0x01,0xfe,0xd4,0x03,0x93,0x00,0x01,0xfe,0xd6,0x03,0xd4,0x00,0x01,0xfe,0xae,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xb6,0x00,0x01,0xfe,0xd9,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0x7a,0x00,0x01,0xfe,0xd4,0x03,0xa2,0x00,0x01,0xff,0x1c,0x03,0x84,0x00,0x01,0xfe,0xf4,0x03,0x84,0x00,0x01,0xfe,0xf7,0x03,0xa2,0x00,0x01, -0xfe,0xd4,0x03,0xa0,0x00,0x01,0xff,0x17,0x03,0xfc,0x00,0x01,0xfe,0xf2,0x03,0xfc,0x00,0x01,0xfe,0xf7,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0xfc,0x00,0x01,0xfe,0xde,0x02,0x26,0x00,0x01,0xfe,0xca,0x02,0x26,0x00,0x01,0xfe,0xb6,0x02,0xda,0x00,0x01,0xfe,0xde,0x02,0xda,0x00,0x01,0xfe,0xca,0x02,0xda,0x00,0x01,0xfe,0xd4,0x02,0x26, -0x00,0x01,0xfe,0xd4,0x02,0xda,0x00,0x01,0x01,0x63,0x02,0x6d,0x00,0x01,0x02,0x44,0x02,0x26,0x00,0x01,0x02,0x44,0x02,0xda,0x00,0x01,0x02,0x44,0x04,0x65,0x00,0x01,0x03,0x0c,0x02,0xda,0x00,0x01,0xfe,0xec,0x02,0x26,0x00,0x01,0xfe,0xd4,0x01,0x45,0x00,0x01,0xfe,0xd4,0x01,0x18,0x00,0x01,0xfe,0xd4,0x01,0x13,0x00,0x01,0x01,0x5c, -0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb0,0x00,0x01,0x01,0x61,0x03,0xb6,0x00,0x01,0x01,0x79,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb6,0x00,0x01,0x01,0x54,0x03,0xfc,0x00,0x01,0x01,0x59,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb0,0x00,0x01,0x01,0x36,0xff,0x2b,0x00,0x01, -0x01,0x0b,0x03,0xb6,0x00,0x01,0x01,0x38,0x03,0xd4,0x00,0x01,0x01,0x36,0x03,0x93,0x00,0x01,0x01,0x26,0xff,0x10,0x00,0x01,0x01,0x30,0x00,0x00,0x00,0x01,0x01,0xc2,0x03,0xb6,0x00,0x01,0x00,0xda,0x03,0xb6,0x00,0x01,0x01,0x4a,0xff,0x10,0x00,0x01,0x00,0xaf,0x02,0xda,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x6f,0x03,0xfc, -0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4f,0x03,0xfc,0x00,0x01,0x01,0x2c,0x03,0xfc,0x00,0x01,0x01,0x4d,0x03,0xb6,0x00,0x01,0x00,0xf7,0x03,0xb6,0x00,0x01,0x01,0x24,0x03,0xd4,0x00,0x01,0x01,0x22,0x03,0xb1,0x00,0x01,0x01,0x51,0x03,0xb6,0x00,0x01,0x01,0x2c,0x03,0xe2,0x00,0x01,0x01,0x81,0x02,0xda,0x00,0x01,0x01,0x2e, -0x03,0xd4,0x00,0x01,0x01,0x2c,0x03,0x93,0x00,0x01,0x01,0x2c,0x03,0xb0,0x00,0x01,0x01,0x01,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0x7a,0x00,0x01,0x01,0x31,0x03,0xa2,0x00,0x01,0x01,0x79,0x03,0x84,0x00,0x01,0x01,0x51,0x03,0x84,0x00,0x01,0x01,0x54,0x03,0xa2,0x00,0x01,0x01,0x31,0x03,0xa0,0x00,0x01,0x01,0x31,0x03,0x09,0x00,0x01, -0x01,0x31,0xff,0x2b,0x00,0x01,0x01,0x06,0x03,0x11,0x00,0x01,0x01,0x36,0x03,0x39,0x00,0x01,0x01,0x31,0x02,0xe9,0x00,0x01,0x01,0x31,0x03,0x44,0x00,0x01,0x01,0x5f,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x09,0x00,0x01,0x01,0x29,0x02,0x26,0x00,0x01,0x01,0x54,0x03,0x11,0x00,0x01,0x01,0x29,0x03,0x11, -0x00,0x01,0x01,0x35,0x03,0x70,0x00,0x01,0x01,0x29,0x03,0x09,0x00,0x01,0x00,0x89,0x02,0xda,0x00,0x01,0x00,0x89,0x03,0xc5,0x00,0x01,0x01,0x66,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x11,0x00,0x01,0x01,0x10,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x39,0x00,0x01,0x01,0x3b,0x02,0xe9,0x00,0x01,0x01,0x3b,0x03,0x0c,0x00,0x01,0x01,0x7c, -0x02,0x26,0x00,0x01,0x01,0x7c,0x03,0x11,0x00,0x01,0x01,0x1b,0x03,0xb6,0x00,0x01,0x01,0x36,0xff,0x10,0x00,0x01,0x00,0xdc,0x02,0xda,0x00,0x01,0x01,0x18,0x01,0x6d,0x00,0x01,0x00,0xf0,0x02,0xda,0x00,0x01,0x01,0x5c,0x03,0x11,0x00,0x01,0x00,0x5a,0x02,0x85,0x00,0x01,0x01,0x31,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x0c,0x00,0x01, -0x01,0x74,0x03,0x84,0x00,0x01,0x01,0x4c,0x03,0x84,0x00,0x01,0x01,0x4f,0x03,0xa2,0x00,0x01,0x01,0x2c,0x03,0xa0,0x00,0x01,0x01,0x4d,0x03,0x11,0x00,0x01,0x01,0x22,0x02,0x26,0x00,0x01,0x00,0xf7,0x03,0x11,0x00,0x01,0x01,0x27,0x03,0x39,0x00,0x01,0x01,0x22,0x03,0x0c,0x00,0x01,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x10, -0x00,0x01,0x00,0xfa,0x02,0xc1,0x00,0x01,0x01,0x57,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xf4,0x00,0x01,0x01,0x01,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xcc,0x00,0x01,0x01,0x48,0x03,0xb6,0x00,0x01,0x01,0x1d,0x02,0xda,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x01,0x5e,0xff,0x10,0x00,0x01,0x01,0x13,0x01,0x13,0x00,0x01,0x01,0x38, -0x03,0x70,0x00,0x01,0x01,0x2c,0xfe,0xf2,0x00,0x01,0x01,0xb7,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x11,0x00,0x01,0x01,0x25,0x03,0xb6,0x00,0x01,0x01,0x27,0xff,0x10,0x00,0x01,0x00,0xfa,0x02,0xda,0x00,0x01,0x01,0x22,0xff,0x10,0x00,0x01,0x01,0x6b,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x11,0x00,0x01,0x00,0xf5,0x00,0x00,0x00,0x01, -0x01,0x40,0x02,0x26,0x00,0x01,0x00,0xe6,0xff,0x10,0x00,0x01,0x01,0xcc,0xff,0x2b,0x00,0x01,0x01,0x2c,0xff,0x2b,0x00,0x01,0x01,0x2b,0xff,0x2b,0x00,0x01,0x01,0x01,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x39,0x00,0x01,0x01,0x2b,0x00,0x00,0x00,0x01,0x01,0x51,0x03,0x11,0x00,0x01,0x01,0x2c,0x02,0xe9,0x00,0x01,0x01,0x2c,0x03,0x44, -0x00,0x01,0x01,0x2c,0x03,0x0c,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x6b,0x03,0xb6,0x00,0x01,0x01,0x36,0x03,0xb1,0x00,0x01,0x01,0xc2,0x02,0xda,0x00,0x01,0x01,0x21,0x02,0xda,0x00,0x01,0x01,0x21,0x00,0x00,0x00,0x01,0x01,0x28,0x02,0xda,0x00,0x01,0x01,0x28,0x01,0x6d,0x00,0x01,0x01,0x22,0x02,0xda,0x00,0x01,0x01,0x57, -0x03,0xb6,0x00,0x01,0x01,0x27,0x02,0xda,0x00,0x01,0x01,0x27,0x00,0x00,0x00,0x01,0x01,0x2c,0x03,0xb6,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x01,0x4a,0x02,0x26,0x00,0x01,0x01,0x75,0x03,0x11,0x00,0x01,0x01,0x5a,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x09,0x00,0x01,0x01,0x7c,0x03,0x09,0x00,0x01,0x01,0x4f,0x02,0x26,0x00,0x01, -0x00,0xfa,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x09,0x00,0x01,0x01,0x27,0xfe,0xf2,0x00,0x01,0x01,0x57,0x03,0x11,0x00,0x01,0x01,0x2c,0x03,0x11,0x00,0x01,0x01,0x40,0x02,0xda,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x01,0x36,0x02,0xda,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x00, -0x00,0x01,0x01,0x2c,0x03,0xb1,0x00,0x01,0x01,0x2f,0x02,0x26,0x00,0x01,0x01,0x27,0x03,0x09,0x00,0x01,0x01,0x2c,0x03,0x09,0x00,0x01,0x01,0xa4,0x02,0x26,0x00,0x01,0x01,0x4c,0x02,0x26,0x00,0x01,0x01,0x2c,0x01,0x13,0x00,0x01,0x01,0x31,0x02,0x26,0x00,0x01,0x01,0x28,0x02,0x26,0x00,0x01,0x01,0x28,0x00,0x00,0x00,0x01,0x01,0x31, -0x02,0xda,0x00,0x01,0x01,0x31,0x00,0x00,0x00,0x01,0x01,0x34,0x02,0x26,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x01,0x27,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0xda,0x00,0x01,0x01,0x40,0x02,0xbc,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0x2c,0x01,0x6d,0x00,0x01, -0x01,0x3b,0x00,0x00,0x00,0x01,0x01,0x3b,0x02,0x26,0x00,0x01,0x01,0x3b,0xff,0x2b,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x18,0x01,0x1c,0x00,0x02,0x44,0x46,0x4c,0x54,0x04,0xac,0x6c,0x61,0x74,0x6e,0x04,0xb0,0x00,0x2b,0x61,0x61,0x6c,0x74,0x05,0xb4,0x63,0x61,0x6c,0x74,0x05,0xe4,0x63,0x61, -0x73,0x65,0x04,0xd6,0x63,0x63,0x6d,0x70,0x05,0xc4,0x63,0x63,0x6d,0x70,0x05,0xd8,0x63,0x76,0x30,0x31,0x04,0xdc,0x63,0x76,0x30,0x32,0x04,0xe2,0x63,0x76,0x30,0x33,0x04,0xe8,0x63,0x76,0x30,0x34,0x04,0xee,0x63,0x76,0x30,0x35,0x04,0xf4,0x63,0x76,0x30,0x36,0x04,0xfa,0x63,0x76,0x30,0x37,0x05,0x00,0x63,0x76,0x30,0x38,0x05,0x06, -0x63,0x76,0x30,0x39,0x05,0x0c,0x63,0x76,0x31,0x30,0x05,0x12,0x63,0x76,0x31,0x31,0x05,0x18,0x63,0x76,0x31,0x32,0x05,0x1e,0x63,0x76,0x31,0x34,0x05,0x24,0x63,0x76,0x31,0x35,0x05,0x2a,0x63,0x76,0x31,0x36,0x05,0x30,0x63,0x76,0x31,0x37,0x05,0x36,0x63,0x76,0x31,0x38,0x05,0x3c,0x63,0x76,0x31,0x39,0x05,0x42,0x63,0x76,0x32,0x30, -0x05,0x48,0x63,0x76,0x39,0x39,0x05,0x4e,0x66,0x72,0x61,0x63,0x05,0xce,0x6c,0x6f,0x63,0x6c,0x05,0x54,0x6c,0x6f,0x63,0x6c,0x05,0x5a,0x6c,0x6f,0x63,0x6c,0x05,0x60,0x6c,0x6f,0x63,0x6c,0x05,0x66,0x6c,0x6f,0x63,0x6c,0x05,0x6c,0x6c,0x6f,0x63,0x6c,0x05,0x72,0x6c,0x6f,0x63,0x6c,0x05,0x78,0x6c,0x6f,0x63,0x6c,0x05,0x7e,0x6f,0x72, -0x64,0x6e,0x05,0xbc,0x73,0x69,0x6e,0x66,0x05,0x84,0x73,0x73,0x30,0x31,0x05,0x8a,0x73,0x73,0x30,0x32,0x05,0x90,0x73,0x73,0x31,0x39,0x05,0x96,0x73,0x73,0x32,0x30,0x05,0x9c,0x73,0x75,0x62,0x73,0x05,0xa2,0x73,0x75,0x70,0x73,0x05,0xa8,0x7a,0x65,0x72,0x6f,0x05,0xae,0x01,0xcc,0x06,0x18,0x06,0x20,0x06,0x28,0x06,0x30,0x06,0x38, -0x06,0x40,0x06,0x40,0x06,0x48,0x06,0x50,0x06,0x58,0x06,0x60,0x06,0x68,0x06,0x70,0x06,0x78,0x06,0x80,0x06,0x88,0x06,0x90,0x06,0x98,0x06,0xa0,0x06,0xa8,0x06,0xb0,0x0a,0x90,0x06,0xb8,0x06,0xc0,0x0a,0x90,0x06,0xc8,0x06,0xd0,0x0c,0x60,0x06,0xd8,0x06,0xe0,0x06,0xe8,0x06,0xf0,0x06,0xf8,0x07,0x00,0x07,0x28,0x07,0x08,0x07,0x10, -0x07,0x28,0x07,0x28,0x07,0x18,0x07,0x20,0x07,0x28,0x07,0x28,0x07,0x28,0x07,0x30,0x07,0x38,0x07,0x40,0x07,0x48,0x07,0x50,0x07,0x58,0x07,0x60,0x07,0x68,0x07,0x70,0x07,0x78,0x11,0xb0,0x07,0x80,0x11,0xba,0x07,0x88,0x07,0x90,0x07,0x98,0x07,0xd0,0x07,0xa0,0x07,0xa8,0x07,0xd0,0x07,0xd0,0x07,0xb0,0x07,0xb8,0x07,0xc0,0x07,0xc8, -0x07,0xd0,0x07,0xd8,0x07,0xe0,0x0d,0x70,0x07,0xe8,0x07,0xf0,0x07,0xf8,0x08,0x00,0x08,0x28,0x08,0x08,0x08,0x10,0x08,0x18,0x08,0x20,0x08,0x28,0x08,0x28,0x08,0x30,0x08,0x38,0x08,0x50,0x08,0x40,0x08,0x48,0x08,0x50,0x08,0x50,0x08,0x58,0x08,0x60,0x08,0x68,0x08,0x70,0x08,0x98,0x08,0x78,0x08,0x80,0x08,0x98,0x08,0x98,0x08,0x88, -0x08,0x90,0x08,0x98,0x08,0xa0,0x08,0xa8,0x0c,0x60,0x08,0xb0,0x08,0xb8,0x0e,0x40,0x08,0xc0,0x08,0xc8,0x08,0xd0,0x08,0xd8,0x0c,0x60,0x08,0xe0,0x08,0xe8,0x08,0xf0,0x08,0xf8,0x09,0x00,0x09,0x08,0x0e,0x40,0x09,0x10,0x09,0x18,0x0e,0x40,0x09,0x20,0x09,0x28,0x0e,0x40,0x0e,0x40,0x09,0x30,0x09,0x38,0x0e,0x40,0x09,0x40,0x09,0x48, -0x09,0x50,0x09,0x58,0x09,0x60,0x09,0x68,0x0c,0x28,0x0c,0x28,0x09,0x70,0x09,0x78,0x0c,0x28,0x09,0x80,0x09,0x88,0x09,0x90,0x09,0x98,0x09,0xa0,0x09,0xa8,0x0d,0xd8,0x09,0xb0,0x09,0xb8,0x0c,0x60,0x09,0xc0,0x09,0xc8,0x09,0xd0,0x09,0xd8,0x0d,0xd8,0x09,0xe0,0x09,0xe8,0x0d,0xd8,0x0d,0xd8,0x09,0xf0,0x09,0xf8,0x0a,0x00,0x0a,0x08, -0x0a,0x10,0x0a,0x18,0x0a,0x20,0x0a,0x28,0x0a,0x30,0x0a,0x38,0x0e,0x40,0x0a,0x40,0x0a,0x48,0x0d,0x70,0x0a,0x50,0x0a,0x58,0x0a,0x60,0x0a,0x68,0x0d,0x18,0x0a,0x70,0x0a,0x78,0x0a,0x80,0x0a,0x88,0x0a,0x90,0x0a,0x98,0x0a,0xa0,0x0d,0x70,0x0a,0xa8,0x0a,0xb0,0x0d,0x70,0x0a,0xb8,0x0a,0xc0,0x0a,0xc8,0x0a,0xd0,0x0d,0x70,0x0a,0xd8, -0x0a,0xe0,0x0d,0x70,0x0d,0x70,0x0a,0xe8,0x0a,0xf0,0x0d,0x70,0x0a,0xf8,0x0b,0x00,0x0b,0x08,0x0b,0x10,0x0b,0x18,0x0b,0x20,0x0b,0x28,0x0b,0x30,0x0b,0xa0,0x0b,0x38,0x0b,0x40,0x0b,0x58,0x0b,0x48,0x0b,0x50,0x0b,0x58,0x0b,0x58,0x0b,0x60,0x0b,0x68,0x0b,0xa0,0x0b,0xa0,0x0b,0x70,0x0b,0x78,0x0b,0x80,0x0b,0x88,0x0b,0x90,0x0b,0x98, -0x0b,0xa0,0x0b,0xa8,0x0b,0xb0,0x0c,0x28,0x0c,0x28,0x0b,0xb8,0x0b,0xc0,0x0c,0x28,0x0b,0xc8,0x0b,0xd0,0x0b,0xd8,0x0b,0xe0,0x0c,0x28,0x0b,0xe8,0x0b,0xf0,0x0c,0x28,0x0b,0xf8,0x0c,0x00,0x0c,0x08,0x0c,0x10,0x0c,0x18,0x0c,0x20,0x0c,0x28,0x0c,0x30,0x0c,0x38,0x0c,0x60,0x0c,0x40,0x0c,0x48,0x0c,0x60,0x0c,0x50,0x0c,0x58,0x0c,0x60, -0x0c,0x60,0x0c,0x68,0x0c,0x70,0x0c,0x88,0x0c,0x78,0x0c,0x80,0x0c,0x88,0x0c,0x88,0x0c,0x90,0x0c,0x98,0x0c,0xa0,0x0c,0xa8,0x0c,0xb0,0x0c,0xb8,0x0c,0xc0,0x0c,0xc8,0x0c,0xf0,0x0c,0xd0,0x0c,0xd8,0x0c,0xe0,0x0c,0xe8,0x0c,0xf0,0x0c,0xf0,0x0c,0xf8,0x0d,0x00,0x0d,0x08,0x0d,0x10,0x0d,0x18,0x0d,0x20,0x0d,0x28,0x0d,0x70,0x0d,0x30, -0x0d,0x38,0x0e,0x40,0x0d,0x40,0x0d,0x48,0x0e,0x40,0x0d,0x50,0x0d,0x58,0x0d,0x70,0x0d,0x60,0x0d,0x68,0x0d,0x70,0x0d,0x78,0x0d,0x80,0x0d,0xd8,0x0d,0x88,0x0d,0x90,0x0d,0xd8,0x0d,0x98,0x0d,0xa0,0x0d,0xd8,0x0d,0xa8,0x0d,0xb0,0x0d,0xd8,0x0d,0xb8,0x0d,0xc0,0x0d,0xc8,0x0d,0xd0,0x0d,0xd8,0x0d,0xe0,0x0d,0xe8,0x0d,0xf0,0x0d,0xf8, -0x0e,0xb8,0x0e,0x00,0x0e,0x08,0x0e,0x10,0x0e,0x18,0x0e,0x20,0x0e,0x28,0x0e,0x40,0x0e,0x30,0x0e,0x38,0x0e,0x40,0x0e,0x48,0x0e,0x50,0x0e,0x58,0x0e,0x60,0x0e,0x68,0x0e,0x70,0x0e,0x78,0x0e,0x80,0x0e,0x88,0x0e,0x90,0x0e,0xb8,0x0e,0x98,0x0e,0xa0,0x0e,0xa8,0x0e,0xb0,0x0e,0xb8,0x0e,0xc0,0x0e,0xc8,0x0e,0xd0,0x0e,0xd8,0x0e,0xe0, -0x0e,0xe8,0x0e,0xf0,0x0e,0xf8,0x0f,0x00,0x0f,0x08,0x0f,0x10,0x0f,0x18,0x0f,0x20,0x0f,0x28,0x0f,0x30,0x0f,0x38,0x0f,0x40,0x0f,0x48,0x0f,0x50,0x0f,0x58,0x0f,0x60,0x0f,0x68,0x0f,0x70,0x0f,0x78,0x0f,0x80,0x0f,0x88,0x0f,0x90,0x0f,0x98,0x0f,0xa0,0x0f,0xa8,0x0f,0xb0,0x0f,0xb8,0x0f,0xc0,0x0f,0xc8,0x0f,0xd0,0x0f,0xd8,0x0f,0xe0, -0x0f,0xe8,0x0f,0xf0,0x0f,0xf8,0x10,0x00,0x10,0x08,0x10,0x10,0x10,0x18,0x10,0x20,0x10,0x28,0x10,0x30,0x10,0x38,0x10,0x40,0x10,0x48,0x10,0x50,0x10,0x58,0x11,0xd8,0x10,0x60,0x10,0x60,0x10,0x68,0x10,0x70,0x10,0x70,0x10,0x78,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x10,0x88,0x10,0x90,0x10,0xa0,0x10,0x98, -0x10,0xa0,0x10,0xa0,0x10,0xa8,0x10,0xa8,0x10,0xb0,0x10,0xb8,0x10,0xc0,0x11,0xc4,0x10,0xc8,0x10,0xc8,0x11,0xce,0x10,0xd0,0x10,0xd8,0x10,0xe0,0x10,0xe8,0x10,0xf0,0x10,0xf8,0x11,0x00,0x11,0x08,0x11,0x10,0x11,0x18,0x11,0x20,0x11,0x28,0x11,0x30,0x11,0x38,0x11,0x40,0x11,0x48,0x11,0x50,0x11,0x58,0x11,0x60,0x11,0x68,0x11,0x70, -0x11,0x78,0x11,0x80,0x11,0x88,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x0e,0x4c,0x00,0x00,0x0e,0x92,0x00,0x08,0x41,0x5a,0x45,0x20,0x0e,0xdc,0x43,0x41,0x54,0x20,0x0f,0x28,0x43,0x52,0x54,0x20,0x0f,0x74,0x4b,0x41,0x5a,0x20,0x0f,0xc0,0x4d,0x4f,0x4c,0x20,0x10,0x0c,0x52,0x4f,0x4d,0x20,0x10,0x58,0x54,0x41,0x54,0x20,0x10,0xa4, -0x54,0x52,0x4b,0x20,0x10,0xf0,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xb9,0x00,0x00,0x00,0x01,0x01,0xba,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0xbc,0x00,0x00,0x00,0x01,0x01,0xbd,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01, -0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x01,0xc3,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xc7,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x00, -0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x01,0xa1,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x01,0x9e,0x00,0x00,0x00,0x01,0x01,0x9f,0x00,0x00,0x00,0x01,0x01,0xa8,0x10,0x54,0x00,0x01,0x01,0xb4, -0x10,0x52,0x00,0x01,0x01,0xb5,0x10,0x50,0x00,0x01,0x01,0xb6,0x10,0x4e,0x00,0x01,0x01,0xb7,0x00,0x00,0x00,0x01,0x01,0xa7,0x00,0x00,0x00,0x01,0x01,0xa9,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x01,0xaf,0x01,0xb1,0x00,0x00,0x00,0x03,0x01,0x94,0x01,0x97,0x01,0x9a,0x00,0x00, -0x00,0x03,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x00,0x00,0x04,0x01,0x94,0x01,0x97,0x01,0x9a,0x01,0x9a,0x00,0x00,0x00,0x9a,0x00,0x02,0x00,0x04,0x00,0x07,0x00,0x0a,0x00,0x0d,0x00,0x10,0x00,0x13,0x00,0x16,0x00,0x19,0x00,0x1c,0x00,0x1e,0x00,0x20,0x00,0x23,0x00,0x27,0x00,0x2c,0x00,0x2e,0x00,0x30,0x00,0x32,0x00,0x34,0x00,0x36, -0x00,0x38,0x00,0x3a,0x00,0x3d,0x00,0x41,0x00,0x43,0x00,0x46,0x00,0x49,0x00,0x4b,0x00,0x4e,0x00,0x50,0x00,0x54,0x00,0x57,0x00,0x5b,0x00,0x5d,0x00,0x60,0x00,0x64,0x00,0x67,0x00,0x6a,0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x76,0x00,0x79,0x00,0x7c,0x00,0x80,0x00,0x83,0x00,0x85,0x00,0x87,0x00,0x8b,0x00,0x8e,0x00,0x90, -0x00,0x92,0x00,0x95,0x00,0x98,0x00,0x9a,0x00,0x9d,0x00,0xa1,0x00,0xa3,0x00,0xa5,0x00,0xa7,0x00,0xa9,0x00,0xac,0x00,0xaf,0x00,0xb1,0x00,0xb4,0x00,0xb6,0x00,0xb9,0x00,0xbc,0x00,0xbf,0x00,0xc1,0x00,0xc4,0x00,0xc8,0x00,0xcb,0x00,0xcd,0x00,0xcf,0x00,0xd1,0x00,0xd4,0x00,0xd7,0x00,0xdb,0x00,0xdf,0x00,0xe1,0x00,0xe3,0x00,0xe6, -0x00,0xea,0x00,0xed,0x00,0xef,0x00,0xf2,0x00,0xf5,0x00,0xf7,0x00,0xf9,0x00,0xfc,0x00,0xff,0x01,0x02,0x01,0x06,0x01,0x09,0x01,0x0d,0x01,0x0f,0x01,0x11,0x01,0x13,0x01,0x16,0x01,0x18,0x01,0x1c,0x01,0x1e,0x01,0x21,0x01,0x24,0x01,0x27,0x01,0x2a,0x01,0x2d,0x01,0x30,0x01,0x33,0x01,0x36,0x01,0x39,0x01,0x3c,0x01,0x3e,0x01,0x41, -0x01,0x43,0x01,0x46,0x01,0x48,0x01,0x4a,0x01,0x4d,0x01,0x50,0x01,0x52,0x01,0x54,0x01,0x56,0x01,0x58,0x01,0x5b,0x01,0x5d,0x01,0x60,0x01,0x62,0x01,0x64,0x01,0x66,0x01,0x68,0x01,0x6a,0x01,0x6c,0x01,0x6e,0x01,0x70,0x01,0x72,0x01,0x74,0x01,0x76,0x01,0x78,0x01,0x7a,0x01,0x7c,0x01,0x7e,0x01,0x80,0x01,0x82,0x01,0x84,0x01,0x86, -0x01,0x88,0x01,0x8a,0x01,0x8c,0x01,0x8e,0x01,0x90,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x1d,0xcc,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xba,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xb0,0x00,0x06,0x00,0x00, -0x00,0x01,0x10,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x98,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x1c,0x00,0x01,0x00,0x00, -0x00,0x01,0x11,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x26,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x2c,0x00,0x06,0x00,0x00, -0x00,0x01,0x18,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x18,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x0e,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xfc,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfe,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x02,0x00,0x01,0x00,0x00, -0x00,0x01,0x11,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x8e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x84,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00, -0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0xa2,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x0c,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x8a,0x00,0x01,0x00,0x00, -0x00,0x01,0x0d,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xb6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x62,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xdc,0x00,0x06,0x00,0x00, -0x00,0x01,0x10,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x17,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x17,0x10,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x19,0x28,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x82,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x76,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x7a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x7e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x50,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xca,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0x9c,0x00,0x01,0x00,0x00, -0x00,0x01,0x16,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xa4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x5c,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x9c,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x15,0xbc,0x00,0x01,0x00,0x00,0x00,0x01,0x15,0xc0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x82,0x00,0x01,0x00,0x00, -0x00,0x01,0x0a,0xf8,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00, -0x00,0x01,0x0c,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xbc,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xb2,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x06,0x00,0x00, -0x00,0x01,0x10,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x32,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x68,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x5e,0x00,0x06,0x00,0x00, -0x00,0x01,0x0b,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x48,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x14,0xa4,0x00,0x01,0x00,0x00, -0x00,0x01,0x14,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xde,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0xe4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe8,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xea,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xf0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf2,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x90,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xd0,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0xd2,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x74,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x60,0x00,0x01,0x00,0x00, -0x00,0x01,0x09,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x96,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x98,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9e,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xa2,0x00,0x01,0x00,0x00, -0x00,0x01,0x09,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x90,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x0a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x08,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x7c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x7e,0x00,0x06,0x00,0x00, -0x00,0x01,0x0a,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x62,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x09,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x54,0x00,0x01,0x00,0x00, -0x00,0x01,0x12,0x58,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x5c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5e,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0xdc,0x00,0x06,0x00,0x00, -0x00,0x01,0x12,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x30,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x34,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x40,0x00,0x06,0x00,0x00, -0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xcc,0x00,0x01,0x00,0x00, -0x00,0x01,0x11,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xb4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x08,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, -0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xd8,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x1c,0x00,0x04,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0xa8,0x00,0x01,0x00,0x00, -0x00,0x01,0x10,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x06,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x96,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x88,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x86,0x00,0x01,0x00,0x00, -0x00,0x01,0x05,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x90,0x00,0x04,0x00,0x00,0x00,0x01,0x06,0xb2,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xac,0x00,0x01,0x00,0x00,0x00,0x01,0x13,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x6e,0x00,0x01,0x00,0x00, -0x00,0x01,0x0e,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x3e,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xc8,0x00,0x01,0x00,0x00, -0x00,0x01,0x12,0x52,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x04,0xf6,0x00,0x01,0x00,0x00, -0x00,0x01,0x04,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xe2,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xca,0x10,0xe0,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xec,0x11,0x02,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x6e, -0x10,0x80,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x88,0x10,0x9a,0x00,0x06,0x00,0x00,0x00,0x04,0x10,0xfa,0x11,0x4a,0x11,0x0c,0x11,0x1e,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10, -0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b, -0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06, -0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23, -0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1b,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27, -0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1c, -0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14, -0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1d,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e, -0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1e,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08, -0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1f,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01, -0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29, -0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x21,0x00,0x22,0x00,0x23, -0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x03,0x00,0x01,0x12,0x42,0x00,0x15,0x00,0x01,0x12,0x36,0x00,0x33,0x00,0x01,0x11,0xc0,0x00,0x31,0x00,0x01,0x11,0xba,0x03,0x89,0x00,0x01,0x11,0xba,0x00,0x35,0x00,0x01,0x11,0xb4, -0x03,0x88,0x00,0x01,0x11,0xb4,0x00,0x66,0x00,0x01,0x11,0xae,0x00,0x67,0x00,0x01,0x11,0xa8,0x00,0x68,0x00,0x01,0x11,0xa2,0x03,0x94,0x00,0x01,0x12,0x0c,0x00,0x6e,0x00,0x01,0x12,0x06,0x00,0x70,0x00,0x01,0x12,0x00,0x03,0x91,0x00,0x01,0x11,0x90,0x00,0x63,0x00,0x01,0x11,0x8a,0x03,0x9a,0x00,0x01,0x11,0x8a,0x02,0x08,0x00,0x01, -0x11,0x84,0x02,0x09,0x00,0x01,0x11,0x7e,0x02,0xb9,0x00,0x01,0x11,0x7e,0x00,0x56,0x00,0x01,0x11,0x78,0x00,0x57,0x00,0x01,0x11,0x72,0x03,0xa5,0x00,0x01,0x11,0x72,0x02,0x32,0x00,0x01,0x11,0x6c,0x02,0x35,0x00,0x01,0x11,0x6c,0x02,0x15,0x00,0x01,0x11,0x66,0x02,0x18,0x00,0x01,0x11,0x66,0x00,0x60,0x00,0x01,0x11,0x60,0x03,0xa0, -0x00,0x01,0x11,0x60,0x02,0x0a,0x00,0x01,0x11,0x5a,0x02,0x0b,0x00,0x01,0x11,0x94,0x00,0x59,0x00,0x01,0x11,0x54,0x00,0x60,0x00,0x01,0x11,0x4e,0x00,0x61,0x00,0x01,0x11,0x48,0x03,0xa2,0x00,0x01,0x11,0x7c,0x00,0x5a,0x00,0x01,0x11,0x76,0x03,0xa3,0x00,0x01,0x11,0x3c,0x00,0x55,0x00,0x01,0x11,0x36,0x01,0x10,0x00,0x01,0x11,0x36, -0x00,0x15,0x00,0x01,0x11,0x30,0x00,0x16,0x00,0x01,0x11,0x2a,0x03,0x77,0x00,0x01,0x11,0x2a,0x00,0x64,0x00,0x01,0x11,0x24,0x00,0x65,0x00,0x01,0x11,0x1e,0x03,0x9e,0x00,0x01,0x11,0x1e,0x00,0x57,0x00,0x01,0x11,0x18,0x00,0x58,0x00,0x01,0x11,0x12,0x01,0x19,0x00,0x01,0x11,0x12,0x00,0x55,0x00,0x01,0x11,0x0c,0x03,0x72,0x00,0x01, -0x10,0xe2,0x02,0xb5,0x00,0x01,0x10,0xd0,0x02,0xb3,0x00,0x01,0x11,0x00,0x02,0x39,0x00,0x01,0x10,0xbe,0x02,0xb2,0x00,0x01,0x10,0xf4,0x02,0xac,0x00,0x01,0x10,0x70,0x00,0x07,0x00,0x01,0x10,0xee,0x00,0x0f,0x00,0x01,0x10,0xe8,0x00,0x10,0x00,0x01,0x13,0x50,0x00,0x10,0x00,0x01,0x10,0xf2,0xff,0xe3,0x00,0x01,0x13,0x44,0x00,0x24, -0x00,0x01,0x13,0x34,0xff,0xf6,0x00,0x01,0x10,0x4c,0x00,0x0a,0x00,0x01,0x12,0x30,0x00,0x38,0x00,0x01,0x12,0x34,0x00,0x94,0x00,0x01,0x10,0x40,0x00,0x7f,0x00,0x01,0x10,0x46,0x00,0xae,0x00,0x01,0x12,0x2c,0x00,0x63,0x00,0x01,0x10,0x34,0x00,0x40,0x00,0x01,0x10,0x34,0x00,0xcf,0x00,0x01,0x10,0x34,0x00,0x01,0x13,0x12,0x00,0x01, -0x10,0x32,0x00,0x01,0x13,0x14,0x00,0x01,0x10,0x30,0x00,0x01,0x13,0x16,0x00,0x01,0x10,0x28,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x20,0x00,0x01,0x18,0xee,0x00,0x01,0x10,0x88,0x00,0x01,0x16,0x72,0x00,0x01,0x10,0x80,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x0e,0x00,0x01,0x16,0x7a,0x00,0x01,0x10,0x0c,0x00,0x01,0x12,0xf0,0x00,0x01, -0x10,0x04,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x02,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x7e,0x00,0x01,0x0f,0xf8,0x00,0x01,0x1b,0x08,0x00,0x01,0x0f,0xf0,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xee,0x00,0x01,0x1b,0x0a,0x00,0x01,0x0f,0xe6,0x00,0x01,0x16,0x76,0x00,0x01,0x0f,0xe4,0x00,0x01,0x18,0x9c,0x00,0x01, -0x0f,0xe2,0x00,0x01,0x1a,0x4a,0x00,0x01,0x0f,0xda,0x00,0x01,0x1a,0xfc,0x00,0x01,0x10,0x12,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xd0,0x00,0x01,0x12,0x9a,0x00,0x01,0x0f,0xc8,0x00,0x01,0x16,0x5e,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xbe,0x00,0x01,0x18,0x72,0x00,0x01,0x0f,0xbc,0x00,0x01,0x1a,0x22,0x00,0x01, -0x0f,0xb4,0x00,0x01,0x18,0x70,0x00,0x01,0x0f,0xb2,0x00,0x01,0x12,0x74,0x00,0x01,0x0f,0xaa,0x00,0x01,0x16,0x46,0x00,0x01,0x0f,0xa8,0x00,0x01,0x12,0x6e,0x00,0x01,0x0f,0xa0,0x00,0x01,0x16,0x42,0x00,0x01,0x0f,0x9e,0x00,0x01,0x12,0x68,0x00,0x01,0x0f,0x9c,0x00,0x01,0x18,0x4e,0x00,0x01,0x0f,0x9a,0x00,0x01,0x12,0x62,0x00,0x01, -0x21,0xd0,0x00,0x01,0x0f,0x98,0x00,0x01,0x12,0x6c,0x00,0x02,0x12,0x5c,0x12,0x64,0x00,0x02,0x12,0x62,0x00,0x02,0x06,0xce,0x03,0x77,0x00,0x02,0x12,0x58,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x12,0x56,0x00,0x02,0x10,0xf6,0x16,0x08,0x00,0x02,0x12,0x4c,0x00,0x02,0x03,0x6e,0x06,0xce,0x00,0x02,0x12,0x42,0x00,0x02,0x06,0xce, -0x06,0xce,0x00,0x01,0x12,0x48,0x00,0x02,0x10,0xde,0x12,0x40,0x00,0x02,0x12,0x3e,0x00,0x02,0x03,0x79,0x06,0xce,0x00,0x01,0x12,0x3c,0x00,0x02,0x15,0xe0,0x0f,0x56,0x00,0x02,0x12,0x32,0x00,0x02,0x06,0xce,0x03,0x8f,0x00,0x01,0x13,0x08,0x00,0x02,0x0f,0x46,0x15,0xd6,0x00,0x02,0x12,0xfe,0x00,0x02,0x06,0x20,0x06,0xce,0x00,0x01, -0x12,0x24,0x00,0x02,0x0f,0x36,0x12,0x1c,0x00,0x02,0x12,0x1a,0x00,0x02,0x06,0x0b,0x06,0xce,0x00,0x01,0x12,0x20,0x00,0x02,0x0f,0x26,0x12,0x18,0x00,0x02,0x12,0x16,0x00,0x02,0x06,0x11,0x06,0xce,0x00,0x01,0x12,0x14,0x00,0x02,0x10,0x80,0x0f,0x16,0x00,0x02,0x12,0x0a,0x00,0x02,0x06,0xce,0x03,0x7c,0x00,0x01,0x12,0x08,0x00,0x02, -0x0f,0x06,0x10,0x72,0x00,0x02,0x11,0xfe,0x00,0x02,0x06,0x12,0x06,0xce,0x00,0x01,0x11,0xfc,0x00,0x02,0x1a,0x28,0x0e,0xf6,0x00,0x02,0x11,0xf2,0x00,0x02,0x06,0xce,0x03,0x7d,0x00,0x01,0x11,0xf8,0x00,0x02,0x11,0xf0,0x0e,0xe6,0x00,0x02,0x11,0xee,0x00,0x02,0x06,0xce,0x03,0x7a,0x00,0x02,0x11,0xec,0x00,0x02,0x03,0xaf,0x06,0xce, -0x00,0x02,0x11,0xe2,0x00,0x02,0x06,0xce,0x03,0xae,0x00,0x01,0x12,0xd0,0x00,0x02,0x15,0x40,0x0e,0xc2,0x00,0x02,0x12,0xc6,0x00,0x02,0x06,0xce,0x03,0xa8,0x00,0x01,0x12,0xbc,0x00,0x02,0x17,0x2c,0x0e,0xb2,0x00,0x02,0x12,0xb2,0x00,0x02,0x06,0xce,0x03,0xac,0x00,0x01,0x12,0xa8,0x00,0x02,0x11,0xb8,0x10,0x00,0x00,0x02,0x12,0x9e, -0x00,0x02,0x06,0xce,0x03,0xa9,0x00,0x01,0x11,0xac,0x00,0x02,0x0e,0x8e,0x18,0xa2,0x00,0x02,0x11,0xa2,0x00,0x02,0x03,0xa6,0x06,0xce,0x00,0x01,0x11,0x98,0x00,0x02,0x0f,0xde,0x18,0x9c,0x00,0x02,0x11,0x8e,0x00,0x02,0x03,0xa7,0x06,0xce,0x00,0x01,0x11,0x84,0x00,0x02,0x18,0x96,0x0e,0x6a,0x00,0x02,0x11,0x7a,0x00,0x02,0x06,0xce, -0x03,0x99,0x00,0x01,0x12,0x38,0x00,0x02,0x11,0x78,0x0e,0x5a,0x00,0x02,0x12,0x2e,0x00,0x02,0x06,0xce,0x03,0x82,0x00,0x01,0x11,0x6c,0x00,0x02,0x14,0xbe,0x0e,0x4a,0x00,0x02,0x11,0x62,0x00,0x02,0x06,0xce,0x03,0x81,0x00,0x01,0x13,0xd0,0x00,0x02,0x0e,0x3a,0x14,0xb4,0x00,0x02,0x13,0xc6,0x00,0x02,0x06,0x4f,0x06,0xce,0x00,0x02, -0x13,0xbc,0x00,0x02,0x06,0x34,0x06,0xce,0x00,0x01,0x11,0x4a,0x00,0x02,0x0e,0x20,0x11,0x42,0x00,0x02,0x11,0x40,0x00,0x02,0x06,0x4d,0x06,0xce,0x00,0x01,0x11,0x8e,0x00,0x02,0x0e,0x10,0x14,0x8c,0x00,0x02,0x11,0x84,0x00,0x02,0x06,0x39,0x06,0xce,0x00,0x01,0x11,0x7a,0x00,0x02,0x0e,0x00,0x14,0x82,0x00,0x02,0x11,0x70,0x00,0x02, -0x06,0xce,0x06,0x3a,0x00,0x01,0x11,0xfe,0x00,0x02,0x14,0x78,0x0d,0xf0,0x00,0x02,0x11,0xf4,0x00,0x02,0x06,0xce,0x06,0x52,0x00,0x01,0x11,0x12,0x00,0x02,0x11,0x02,0x11,0x0a,0x00,0x02,0x11,0x08,0x00,0x02,0x06,0xce,0x06,0x40,0x00,0x01,0x10,0xfe,0x00,0x02,0x14,0x5a,0x0f,0x12,0x00,0x02,0x10,0xf4,0x00,0x02,0x06,0xce,0x06,0x3f, -0x00,0x01,0x10,0xea,0x00,0x02,0x14,0x50,0x0d,0xb8,0x00,0x02,0x10,0xe0,0x00,0x02,0x06,0xce,0x06,0x3e,0x00,0x01,0x11,0x36,0x00,0x02,0x14,0x46,0x0d,0xa8,0x00,0x02,0x11,0x2c,0x00,0x02,0x06,0xce,0x03,0x70,0x00,0x01,0x11,0x82,0x00,0x02,0x10,0xca,0x0e,0xdc,0x00,0x02,0x11,0x78,0x00,0x02,0x06,0xce,0x03,0x72,0x00,0x01,0x11,0x6e, -0x00,0x02,0x15,0xda,0x0d,0x84,0x00,0x02,0x11,0x64,0x00,0x02,0x06,0xce,0x03,0x6f,0x00,0x01,0x11,0x5a,0x00,0x02,0x18,0x04,0x0d,0x74,0x00,0x02,0x11,0x50,0x00,0x02,0x06,0xce,0x03,0x71,0x00,0x01,0x11,0x3e,0x00,0x02,0x0d,0x64,0x15,0xbe,0x00,0x02,0x11,0x34,0x00,0x02,0x06,0x2e,0x06,0xce,0x00,0x01,0x10,0xaa,0x00,0x02,0x0d,0x54, -0x10,0x82,0x00,0x02,0x10,0xa0,0x00,0x02,0x06,0x2d,0x06,0xce,0x00,0x01,0x10,0x76,0x00,0x02,0x0d,0x44,0x18,0x3c,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0x2c,0x06,0xce,0x00,0x01,0x11,0x1a,0x00,0x02,0x0d,0x34,0x17,0x32,0x00,0x02,0x11,0x10,0x00,0x02,0x06,0x47,0x06,0xce,0x00,0x01,0x11,0x06,0x00,0x02,0x0d,0x24,0x13,0xb0,0x00,0x02, -0x10,0xfc,0x00,0x02,0x06,0x50,0x06,0xce,0x00,0x01,0x10,0xf2,0x00,0x02,0x0e,0x42,0x15,0x66,0x00,0x02,0x10,0xe8,0x00,0x02,0x06,0x49,0x06,0xce,0x00,0x01,0x10,0x2e,0x00,0x02,0x13,0x92,0x0d,0x00,0x00,0x02,0x10,0x24,0x00,0x02,0x03,0xb0,0x06,0xce,0x00,0x01,0x10,0x22,0x00,0x02,0x16,0xf0,0x0c,0xf0,0x00,0x02,0x10,0x18,0x00,0x02, -0x06,0xce,0x03,0x90,0x00,0x01,0x10,0x0e,0x00,0x02,0x15,0x36,0x0e,0x0c,0x00,0x02,0x10,0x04,0x00,0x02,0x06,0xce,0x03,0x91,0x00,0x01,0x0f,0xfa,0x00,0x02,0x0c,0xcc,0x15,0x2e,0x00,0x02,0x0f,0xf0,0x00,0x02,0x06,0xce,0x06,0x22,0x00,0x01,0x10,0x76,0x00,0x02,0x17,0xd0,0x0c,0xbc,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0xce,0x06,0x26, -0x00,0x01,0x0f,0xf2,0x00,0x02,0x0c,0xac,0x15,0x12,0x00,0x02,0x0f,0xe8,0x00,0x02,0x06,0xce,0x06,0x21,0x00,0x01,0x0f,0xde,0x00,0x02,0x13,0x24,0x0c,0x9c,0x00,0x02,0x0f,0xd4,0x00,0x02,0x06,0xce,0x03,0x89,0x00,0x01,0x0f,0xba,0x00,0x02,0x0f,0xb2,0x0c,0x8c,0x00,0x02,0x0f,0xb0,0x00,0x02,0x06,0xce,0x03,0x8a,0x00,0x01,0x0f,0xae, -0x00,0x02,0x13,0x06,0x0c,0x7c,0x00,0x02,0x0f,0xa4,0x00,0x02,0x06,0xce,0x03,0x8b,0x00,0x01,0x0f,0xd2,0x00,0x02,0x12,0xfc,0x0c,0x6c,0x00,0x02,0x0f,0xc8,0x00,0x02,0x06,0xce,0x03,0x87,0x00,0x01,0x0f,0x8e,0x00,0x02,0x12,0xf2,0x0c,0x5c,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x86,0x00,0x01,0x0f,0x8a,0x00,0x02,0x0c,0x4c, -0x14,0xa6,0x00,0x02,0x0f,0x80,0x00,0x02,0x06,0x16,0x06,0xce,0x00,0x01,0x0f,0x76,0x00,0x02,0x0c,0x3c,0x14,0x9e,0x00,0x02,0x0f,0x6c,0x00,0x02,0x06,0x18,0x06,0xce,0x00,0x01,0x0f,0x62,0x00,0x02,0x0c,0x2c,0x0f,0x5a,0x00,0x02,0x0f,0x58,0x00,0x02,0x06,0x1b,0x06,0xce,0x00,0x01,0x0f,0x56,0x00,0x02,0x0c,0x1c,0x12,0xac,0x00,0x02, -0x0f,0x4c,0x00,0x02,0x06,0x14,0x06,0xce,0x00,0x01,0x0f,0x4a,0x00,0x02,0x0c,0x0c,0x12,0xa2,0x00,0x02,0x0f,0x40,0x00,0x02,0x06,0x17,0x06,0xce,0x00,0x01,0x0f,0x2e,0x00,0x02,0x0b,0xfc,0x12,0x98,0x00,0x02,0x0f,0x24,0x00,0x02,0x06,0x0f,0x06,0xce,0x00,0x01,0x0f,0x22,0x00,0x02,0x0b,0xec,0x12,0x8e,0x00,0x02,0x0f,0x18,0x00,0x02, -0x06,0x19,0x06,0xce,0x00,0x01,0x10,0xf6,0x00,0x02,0x0c,0xd2,0x0f,0x16,0x00,0x02,0x10,0xec,0x00,0x02,0x06,0x35,0x06,0xce,0x00,0x01,0x0f,0x0a,0x00,0x02,0x0b,0xc8,0x12,0x70,0x00,0x02,0x0f,0x00,0x00,0x02,0x03,0x93,0x06,0xce,0x00,0x01,0x0e,0xfe,0x00,0x02,0x16,0x6e,0x0b,0xb8,0x00,0x02,0x0e,0xf4,0x00,0x02,0x06,0xce,0x03,0x96, -0x00,0x01,0x0e,0xfa,0x00,0x02,0x0b,0xa8,0x0e,0xf2,0x00,0x02,0x0e,0xf0,0x00,0x02,0x03,0x92,0x06,0xce,0x00,0x01,0x0e,0xee,0x00,0x02,0x0b,0x98,0x12,0x3e,0x00,0x02,0x0e,0xe4,0x00,0x02,0x06,0x0e,0x06,0xce,0x00,0x01,0x0e,0xea,0x00,0x02,0x0e,0xe2,0x0b,0x88,0x00,0x02,0x0e,0xe0,0x00,0x02,0x06,0xce,0x03,0x83,0x00,0x01,0x0e,0xde, -0x00,0x02,0x0b,0x78,0x13,0xba,0x00,0x02,0x0e,0xd4,0x00,0x02,0x06,0xce,0x06,0x29,0x00,0x01,0x10,0x6a,0x00,0x02,0x0b,0x68,0x12,0x0c,0x00,0x02,0x10,0x60,0x00,0x02,0x06,0xce,0x06,0x38,0x00,0x01,0x0e,0xd6,0x00,0x02,0x0b,0x58,0x13,0x9e,0x00,0x02,0x0e,0xcc,0x00,0x02,0x06,0xce,0x06,0x4c,0x00,0x01,0x0e,0xaa,0x00,0x02,0x15,0x6c, -0x0b,0x48,0x00,0x02,0x0e,0xa0,0x00,0x02,0x06,0xce,0x06,0x25,0x00,0x01,0x0e,0x96,0x00,0x02,0x11,0xda,0x0c,0x10,0x00,0x02,0x0e,0x8c,0x00,0x02,0x06,0xce,0x06,0x27,0x00,0x01,0x0e,0x82,0x00,0x02,0x0b,0x24,0x11,0xd0,0x00,0x02,0x0e,0x78,0x00,0x02,0x06,0xce,0x06,0x2f,0x00,0x01,0x0e,0x6e,0x00,0x02,0x0b,0x14,0x11,0xc6,0x00,0x02, -0x0e,0x64,0x00,0x02,0x06,0x32,0x06,0xce,0x00,0x01,0x0e,0x62,0x00,0x02,0x0b,0x04,0x11,0xbc,0x00,0x02,0x0e,0x58,0x00,0x02,0x06,0x31,0x06,0xce,0x00,0x01,0x0e,0x4e,0x00,0x02,0x0a,0xf4,0x13,0x32,0x00,0x02,0x0e,0x44,0x00,0x02,0x06,0x2a,0x06,0xce,0x00,0x01,0x0e,0x3a,0x00,0x02,0x0a,0xe4,0x11,0x9e,0x00,0x02,0x0e,0x30,0x00,0x02, -0x06,0xce,0x06,0x2b,0x00,0x01,0x0e,0x3e,0x00,0x02,0x11,0x94,0x0a,0xd4,0x00,0x02,0x0e,0x34,0x00,0x02,0x06,0xce,0x06,0x53,0x00,0x01,0x0f,0xa2,0x00,0x02,0x13,0x02,0x0a,0xc4,0x00,0x02,0x0f,0x98,0x00,0x02,0x06,0xce,0x03,0x73,0x00,0x01,0x0f,0x8e,0x00,0x02,0x0e,0x06,0x0b,0x76,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x74, -0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x62,0x0b,0x68,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x06,0x28,0x00,0x01,0x0d,0xee,0x00,0x02,0x11,0x58,0x0b,0x5a,0x00,0x02,0x0d,0xe4,0x00,0x02,0x06,0xce,0x06,0x55,0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x4e,0x0a,0x78,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x03,0x75,0x00,0x01,0x0d,0xd6, -0x00,0x02,0x0a,0x68,0x11,0x44,0x00,0x02,0x0d,0xcc,0x00,0x02,0x06,0x5c,0x06,0xce,0x00,0x01,0x0d,0xc2,0x00,0x02,0x0a,0x58,0x0d,0xba,0x00,0x02,0x0d,0xb8,0x00,0x02,0x06,0x5a,0x06,0xce,0x00,0x01,0x0d,0xbe,0x00,0x02,0x0a,0x48,0x0d,0xb6,0x00,0x02,0x0d,0xb4,0x00,0x02,0x06,0x58,0x06,0xce,0x00,0x01,0x0d,0xba,0x00,0x02,0x0d,0xb2, -0x0a,0x38,0x00,0x02,0x0d,0xb0,0x00,0x02,0x06,0xce,0x06,0x59,0x00,0x01,0x0d,0xb6,0x00,0x02,0x0a,0x28,0x0d,0xae,0x00,0x02,0x0d,0xac,0x00,0x02,0x06,0x5d,0x06,0xce,0x00,0x01,0x0d,0xb2,0x00,0x02,0x0a,0x18,0x0d,0xaa,0x00,0x02,0x0d,0xa8,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x01,0x0d,0xae,0x00,0x02,0x0d,0xa6,0x0a,0x08,0x00,0x02, -0x0d,0xa4,0x00,0x02,0x06,0xce,0x06,0x1c,0x00,0x01,0x0d,0xaa,0x00,0x02,0x09,0xf8,0x0d,0xa2,0x00,0x02,0x0d,0xa0,0x00,0x02,0x06,0x45,0x06,0xce,0x00,0x01,0x0d,0xa6,0x00,0x02,0x0d,0x9e,0x09,0xe8,0x00,0x02,0x0d,0x9c,0x00,0x02,0x06,0xce,0x06,0x1f,0x00,0x01,0x0d,0xa2,0x00,0x02,0x09,0xd8,0x0d,0x9a,0x00,0x02,0x0d,0x98,0x00,0x02, -0x06,0x3c,0x06,0xce,0x00,0x01,0x0d,0x9e,0x00,0x02,0x0d,0x96,0x09,0xc8,0x00,0x02,0x0d,0x94,0x00,0x02,0x06,0xce,0x03,0x98,0x00,0x01,0x0d,0x9a,0x00,0x02,0x09,0xb8,0x0d,0x92,0x00,0x02,0x0d,0x90,0x00,0x02,0x06,0x56,0x06,0xce,0x00,0x01,0x0d,0x96,0x00,0x02,0x0d,0x8e,0x09,0xa8,0x00,0x02,0x0d,0x8c,0x00,0x02,0x06,0xce,0x03,0xaa, -0x00,0x01,0x0d,0x92,0x00,0x02,0x0d,0x8a,0x09,0x98,0x00,0x02,0x0d,0x88,0x00,0x02,0x06,0xce,0x03,0x9b,0x00,0x01,0x0d,0x8e,0x00,0x02,0x0d,0x86,0x09,0x88,0x00,0x02,0x0d,0x84,0x00,0x02,0x06,0xce,0x03,0x9c,0x00,0x01,0x0d,0x8a,0x00,0x02,0x0d,0x82,0x09,0x78,0x00,0x02,0x0d,0x80,0x00,0x02,0x06,0xce,0x03,0x9a,0x00,0x01,0x0d,0x86, -0x00,0x02,0x09,0x68,0x0d,0x7e,0x00,0x02,0x0d,0x7c,0x00,0x02,0x03,0x9f,0x06,0xce,0x00,0x01,0x0d,0x7a,0x00,0x02,0x0f,0xfa,0x09,0x58,0x00,0x02,0x0d,0x70,0x00,0x02,0x06,0xce,0x03,0xa4,0x00,0x01,0x0d,0x76,0x00,0x02,0x09,0x48,0x0d,0x6e,0x00,0x02,0x0d,0x6c,0x00,0x02,0x03,0x9e,0x06,0xce,0x00,0x01,0x0d,0x72,0x00,0x02,0x09,0x38, -0x0d,0x6a,0x00,0x02,0x0d,0x68,0x00,0x02,0x03,0x9d,0x06,0xce,0x00,0x01,0x0d,0x6e,0x00,0x02,0x0d,0x66,0x09,0x28,0x00,0x02,0x0d,0x64,0x00,0x02,0x06,0xce,0x03,0xa3,0x00,0x01,0x0d,0x6a,0x00,0x02,0x09,0x18,0x0d,0x62,0x00,0x02,0x0d,0x60,0x00,0x02,0x03,0x7e,0x06,0xce,0x00,0x02,0x0d,0x5e,0x00,0x02,0x01,0xc5,0x01,0xc4,0x00,0x02, -0x0d,0x5c,0x00,0x02,0x02,0x0b,0x02,0x50,0x00,0x01,0x10,0xde,0x00,0x03,0x09,0x6c,0x0f,0x8c,0x0d,0x5a,0x00,0x02,0x10,0xd2,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x78,0x00,0x01,0x10,0xda,0x00,0x03,0x09,0x58,0x0d,0x48,0x10,0xd0,0x00,0x02,0x10,0xce,0x00,0x03,0x06,0xce,0x06,0x3b,0x06,0xce,0x00,0x01,0x10,0xcc,0x00,0x03,0x09,0x44, -0x0d,0x36,0x0f,0x64,0x00,0x02,0x10,0xc0,0x00,0x03,0x06,0xce,0x06,0x44,0x06,0xce,0x00,0x01,0x10,0xf0,0x00,0x03,0x09,0x30,0x09,0x34,0x10,0xbe,0x00,0x02,0x10,0xe4,0x00,0x03,0x06,0xce,0x06,0x4b,0x06,0xce,0x00,0x01,0x10,0xb0,0x00,0x03,0x09,0x20,0x09,0x24,0x0f,0x3c,0x00,0x02,0x10,0xa4,0x00,0x03,0x06,0xce,0x06,0x37,0x06,0xce, -0x00,0x01,0x10,0xa2,0x00,0x03,0x09,0x10,0x0f,0x2c,0x09,0x14,0x00,0x02,0x10,0x96,0x00,0x03,0x06,0x41,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x94,0x00,0x03,0x0f,0x1c,0x09,0x00,0x09,0x04,0x00,0x02,0x10,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x88,0x00,0x01,0x10,0x90,0x00,0x03,0x0c,0xc4,0x08,0xf0,0x10,0x86,0x00,0x02,0x10,0x84, -0x00,0x03,0x06,0xce,0x06,0x4a,0x06,0xce,0x00,0x01,0x10,0x82,0x00,0x03,0x08,0xdc,0x0e,0xf4,0x08,0xe0,0x00,0x02,0x10,0x76,0x00,0x03,0x06,0x54,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x74,0x00,0x03,0x08,0xcc,0x0e,0xe4,0x08,0xd0,0x00,0x02,0x10,0x68,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x36,0x00,0x01,0x10,0x70,0x00,0x03,0x08,0xbc, -0x10,0x66,0x08,0xc0,0x00,0x02,0x10,0x64,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x48,0x00,0x01,0x10,0x62,0x00,0x03,0x08,0xac,0x08,0xb0,0x0e,0xbc,0x00,0x02,0x10,0x56,0x00,0x03,0x06,0xce,0x06,0x1a,0x06,0xce,0x00,0x01,0x10,0x54,0x00,0x03,0x08,0x9c,0x08,0xa0,0x0e,0xac,0x00,0x02,0x10,0x48,0x00,0x03,0x06,0xce,0x06,0x10,0x06,0xce, -0x00,0x01,0x10,0x46,0x00,0x03,0x08,0x8c,0x08,0x90,0x0e,0x9c,0x00,0x02,0x10,0x3a,0x00,0x03,0x06,0xce,0x06,0x43,0x06,0xce,0x00,0x01,0x10,0x38,0x00,0x03,0x08,0x7c,0x08,0x80,0x0e,0x8c,0x00,0x02,0x10,0x2c,0x00,0x03,0x06,0xce,0x06,0x46,0x06,0xce,0x00,0x01,0x10,0x2a,0x00,0x03,0x08,0x6c,0x08,0x70,0x0e,0x7c,0x00,0x02,0x10,0x1e, -0x00,0x03,0x06,0xce,0x06,0x3d,0x06,0xce,0x00,0x01,0x10,0x1c,0x00,0x03,0x08,0x5c,0x08,0x60,0x0e,0x6c,0x00,0x02,0x10,0x10,0x00,0x03,0x06,0xce,0x06,0x57,0x06,0xce,0x00,0x01,0x10,0x0e,0x00,0x03,0x0e,0x5c,0x08,0x4c,0x08,0x50,0x00,0x02,0x10,0x02,0x00,0x03,0x06,0xce,0x03,0xa5,0x06,0xce,0x00,0x01,0x20,0x08,0x00,0x04,0x10,0x76, -0x10,0x80,0x10,0x8a,0x10,0x94,0x00,0x02,0x10,0xee,0x00,0x04,0x00,0x86,0x00,0x8d,0x01,0x49,0x01,0x50,0x00,0x02,0x10,0xec,0x00,0x04,0x01,0xc6,0x01,0xc7,0x01,0xc6,0x01,0xc7,0x00,0x02,0x10,0xea,0x00,0x04,0x03,0xb2,0x03,0xb3,0x06,0x5e,0x06,0x5f,0x00,0x02,0x10,0xe8,0x00,0x04,0x01,0x90,0x01,0x91,0x01,0x92,0x02,0x49,0x00,0x02, -0x10,0xe6,0x00,0x04,0x06,0x02,0x06,0x08,0x06,0x09,0x06,0x0a,0x00,0x02,0x05,0x8e,0x12,0x4c,0x10,0x4a,0x12,0x4c,0x00,0x02,0x0b,0x76,0x0f,0xac,0x00,0x02,0x12,0xb4,0x12,0x8c,0x12,0x64,0x12,0x8c,0x00,0x02,0x0b,0x66,0x0f,0xa2,0x00,0x02,0x11,0x24,0x00,0x05,0x03,0xce,0x03,0xcf,0x06,0x05,0x06,0x06,0x06,0x07,0x00,0x02,0x11,0x22, -0x00,0x05,0x02,0xe2,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x00,0x02,0x11,0x20,0x00,0x05,0x02,0xe3,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x00,0x02,0x0b,0x1e,0x11,0x34,0x11,0x44,0x11,0xda,0x00,0x03,0x0b,0x26,0x11,0x64,0x0f,0x68,0x00,0x02,0x11,0x42,0x00,0x06,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83, -0x00,0x02,0x11,0x30,0x00,0x06,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x00,0x03,0x00,0x01,0x12,0x8e,0x00,0x01,0x05,0x0e,0x00,0x01,0x12,0x8e,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x01,0x10,0x4a,0x00,0x01,0x07,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xad,0x00,0x03,0x00,0x01,0x10,0xc2,0x00,0x01, -0x07,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xae,0x00,0x03,0x00,0x01,0x07,0x34,0x00,0x01,0x10,0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x01,0x07,0x22,0x00,0x01,0x10,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x02,0x10,0x96,0x10,0xe6,0x00,0x01,0x04,0xb8,0x00,0x01,0x10,0xe6,0x00,0x01, -0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x01,0x10,0xd0,0x00,0x01,0x10,0x86,0x00,0x02,0x04,0xa2,0x10,0xd0,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x02,0x10,0x6a,0x10,0xba,0x00,0x01,0x10,0x70,0x00,0x01,0x10,0xba,0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x01,0x10,0xa4,0x00,0x01,0x04,0x76,0x00,0x02,0x10,0x5a,0x10,0xa4, -0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x78,0x00,0x01,0x11,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x8e,0x00,0x01,0x11,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x76, -0x00,0x0a,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x02,0x10,0x6c,0x10,0x4c,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x7c,0x00,0x0b,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09, -0x03,0x0a,0x03,0x0b,0x04,0x3b,0x00,0x02,0x11,0x9e,0x00,0x0f,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e,0x00,0x02,0x11,0x9c,0x00,0x0f,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10, -0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x00,0x02,0x11,0x9a,0x00,0x10,0x00,0xba,0x00,0xbb,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x73,0x02,0x74,0x02,0x9c,0x00,0x02,0x11,0x1a,0x00,0x13,0x01,0xb0,0x01,0xb1,0x01,0xb2, -0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x00,0x01,0x13,0xd6,0x00,0x24,0x11,0xf8,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x11,0xb0,0x11,0xb8,0x11,0xc0,0x11,0xc8,0x11,0xd0,0x12,0x02,0x12,0x7e,0x11,0xd8, -0x12,0x0c,0x12,0x52,0x11,0x6c,0x12,0x16,0x12,0x22,0x12,0x6e,0x11,0x72,0x11,0x78,0x11,0xe0,0x12,0x2e,0x11,0x7e,0x11,0xe8,0x12,0xc2,0x12,0x3a,0x11,0x84,0x12,0x46,0x12,0xe2,0x13,0x4a,0x12,0xa8,0x12,0x60,0x11,0x8a,0x11,0xf0,0x12,0x92,0x00,0x02,0x13,0x42,0x00,0x26,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0xc3, -0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e, -0x00,0x02,0x0f,0xd0,0x00,0x27,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae, -0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0x22,0x00,0x29,0x03,0x40,0x03,0x41,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0, -0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xd6,0x00,0x2f,0x01,0x00,0x06,0xcc,0x06,0xcb,0x01,0x0e,0x01,0x91,0x01,0x00,0x01,0x0e, -0x01,0x91,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1, -0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xca,0x00,0x3b,0x00,0xba,0x00,0xbb,0x01,0xa2,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x01,0xa3,0x01,0xa4,0x01,0xa5,0x01,0xa6,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4, -0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x09,0x02,0x0a,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c, -0x02,0x4e,0x02,0x4f,0x02,0x4d,0x02,0x9d,0x02,0x9c,0x02,0x9e,0x00,0x02,0x12,0xc4,0x00,0x3d,0x01,0xc6,0x01,0xc7,0x00,0x86,0x00,0x8d,0x01,0xc6,0x01,0x06,0x01,0xc7,0x01,0x49,0x01,0x7d,0x01,0x50,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x03,0x41,0x06,0xce,0x06,0x8e, -0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd, -0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x01,0x00,0x01,0x00,0xff,0x00,0x01,0x00,0x01,0x02,0xd4,0x00,0x01,0x00,0x01,0x01,0x1a,0x00,0x01,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x01,0x00,0xf4,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, -0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01, -0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x32,0x00,0x01,0x12,0x30,0x00,0x01,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0x24,0x00,0x01,0x12,0x2e,0x00,0x01,0x12,0x38,0x00,0x01,0x12,0x42, -0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x56,0x00,0x01,0x12,0x60,0x00,0x01,0x12,0x6a,0x00,0x01,0x15,0x74,0x00,0x01,0x12,0x70,0x00,0x01,0x12,0x7a,0x00,0x01,0x12,0x84,0x00,0x01,0x15,0x74,0x00,0x01,0x15,0x80,0x00,0x01,0x12,0x86,0x00,0x01,0x12,0x90,0x00,0x01,0x15,0x84,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0x92,0x00,0x01,0x12,0x9c, -0x00,0x01,0x15,0x94,0x00,0x01,0x12,0xa2,0x00,0x01,0x12,0xac,0x00,0x01,0x12,0xb6,0x00,0x01,0x12,0xc0,0x00,0x01,0x12,0xca,0x00,0x01,0x12,0xd4,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0xda,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0xe0,0x00,0x01,0x15,0x98,0x00,0x01,0x12,0xe6,0x00,0x01,0x12,0xf0,0x00,0x01,0x12,0xfa,0x00,0x01,0x13,0x04, -0x00,0x01,0x15,0x94,0x00,0x01,0x19,0xc4,0x00,0x01,0x15,0x9c,0x00,0x01,0x13,0x02,0x00,0x01,0x15,0xa4,0x00,0x01,0x15,0xb0,0x00,0x01,0x13,0x04,0x00,0x01,0x13,0x0e,0x00,0x01,0x13,0x18,0x00,0x01,0x13,0x22,0x00,0x01,0x13,0x2c,0x00,0x01,0x13,0x36,0x00,0x01,0x13,0x40,0x00,0x01,0x15,0xa0,0x00,0x01,0x15,0xac,0x00,0x01,0x15,0xb8, -0x00,0x01,0x15,0xc4,0x00,0x01,0x15,0xd0,0x00,0x01,0x15,0xdc,0x00,0x01,0x15,0xe8,0x00,0x01,0x13,0x2e,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x34,0x00,0x01,0x13,0x3e,0x00,0x01,0x13,0x48,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x4e,0x00,0x01,0x13,0x58,0x00,0x01,0x13,0x62,0x00,0x01,0x13,0x6c,0x00,0x01,0x13,0x76,0x00,0x01,0x13,0x80, -0x00,0x01,0x13,0x8a,0x00,0x01,0x13,0x94,0x00,0x01,0x13,0x9e,0x00,0x01,0x13,0xa8,0x00,0x01,0x13,0xb2,0x00,0x01,0x13,0xbc,0x00,0x01,0x13,0xc6,0x00,0x01,0x13,0xd0,0x00,0x01,0x13,0xda,0x00,0x01,0x13,0xe4,0x00,0x01,0x13,0xee,0x00,0x01,0x13,0xf8,0x00,0x01,0x14,0x02,0x00,0x01,0x14,0x0c,0x00,0x01,0x14,0x16,0x00,0x02,0x00,0x01, -0x01,0x4c,0x01,0x50,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0xf5,0x00,0xfb,0x00,0x00,0x00,0x02,0x00,0x01,0x01,0x40,0x01,0x43,0x00,0x00,0x00,0x02,0x20,0xe0,0x20,0xf2,0x00,0x02,0x18,0xfa,0x19,0x0a,0x00,0x02,0x13,0xf6,0x15,0x7e,0x00,0x02,0x13,0xfc,0x15,0x86,0x00,0x02,0x19,0x08,0x19,0x18,0x00,0x02,0x19,0x22,0x19,0x32,0x00,0x02, -0x19,0x3c,0x19,0x4c,0x00,0x02,0x19,0x56,0x19,0x66,0x00,0x02,0x19,0x70,0x19,0x80,0x00,0x02,0x19,0x8a,0x19,0x9a,0x00,0x02,0x19,0xa4,0x19,0xb4,0x00,0x02,0x19,0xbe,0x19,0xce,0x00,0x02,0x19,0xd8,0x19,0xe8,0x00,0x02,0x19,0xf2,0x1a,0x02,0x00,0x02,0x1a,0x0c,0x1a,0x1c,0x00,0x01,0x20,0xaa,0x00,0x01,0x20,0xb8,0x00,0x01,0x20,0xc6, -0x00,0x01,0x1a,0x1a,0x00,0x01,0x1a,0x26,0x00,0x01,0x1a,0x32,0x00,0x01,0x1a,0x3e,0x00,0x01,0x1a,0x4a,0x00,0x01,0x1a,0x56,0x00,0x01,0x1a,0x62,0x00,0x01,0x1a,0x6e,0x00,0x01,0x1a,0x7a,0x00,0x01,0x1a,0x86,0x00,0x01,0x1a,0x92,0x00,0x01,0x1a,0x9e,0x00,0x01,0x1a,0xaa,0x00,0x01,0x1a,0xb6,0x00,0x01,0x1a,0xc2,0x00,0x01,0x1a,0xce, -0x00,0x01,0x1a,0xda,0x00,0x01,0x1a,0xe6,0x00,0x01,0x1a,0xf2,0x00,0x01,0x1a,0xfe,0x00,0x01,0x1b,0x0a,0x00,0x01,0x1b,0x16,0x00,0x01,0x1b,0x22,0x00,0x01,0x1b,0x2e,0x00,0x01,0x1b,0x3a,0x00,0x01,0x1b,0x46,0x00,0x01,0x1b,0x52,0x00,0x01,0x1b,0x5e,0x00,0x01,0x1b,0x6a,0x00,0x02,0x00,0x01,0x02,0xf8,0x03,0x01,0x00,0x00,0x00,0x02, -0x00,0x01,0x02,0xd4,0x02,0xdd,0x00,0x00,0x00,0x04,0x14,0xb8,0x14,0xc4,0x1b,0x62,0x1b,0x70,0x00,0x04,0x14,0xc6,0x14,0xd2,0x1b,0x74,0x1b,0x82,0x00,0x04,0x14,0xd4,0x16,0xcc,0x1b,0x86,0x1b,0x94,0x00,0x04,0x14,0xd6,0x16,0x0e,0x1b,0x98,0x1b,0xa6,0x00,0x04,0x14,0xd8,0x14,0xe4,0x1b,0xaa,0x1b,0xb8,0x00,0x04,0x14,0xe6,0x16,0xc6, -0x1b,0xbc,0x1b,0xca,0x00,0x04,0x14,0xe8,0x14,0xf4,0x1b,0xce,0x1b,0xdc,0x00,0x04,0x14,0xf6,0x16,0xca,0x1b,0xe0,0x1b,0xee,0x00,0x04,0x1f,0xfc,0x20,0x0c,0x20,0x1c,0x20,0x2c,0x00,0x03,0x20,0x32,0x26,0xa4,0x26,0xb6,0x00,0x03,0x20,0x3a,0x26,0xc0,0x26,0xd2,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x46, -0x03,0x57,0x00,0x03,0x1b,0xc8,0x1b,0xd6,0x20,0x32,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x03,0x14,0xb6,0x16,0x7e,0x1b,0xcc,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xb4,0x00,0x03,0x14,0xb2,0x14,0xbe,0x1b,0xca,0x00,0x01,0x00,0x02,0x03,0x46,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47, -0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x48,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47,0x04,0x1c,0x00,0x03,0x14,0xa2,0x16,0x5e,0x1b,0xb0,0x00,0x01,0x00,0x02,0x03,0x45,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3e,0x00,0x03,0x1b,0xa6,0x1e,0xf6,0x1f,0xda,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x03,0x14,0x86,0x16,0x06, -0x1b,0xa4,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x03,0x14,0x82,0x16,0xf2,0x1b,0xa2,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1c,0x00,0x03,0x1f,0xba,0x1f,0xca,0x26,0x34,0x00,0x03,0x26,0x3e,0x26,0x50,0x26,0x62,0x00,0x01,0x00,0x02,0x04,0x1c,0x05,0xbe,0x00,0x03,0x1b,0x88,0x1e,0x00,0x1f,0xc2,0x00,0x03,0x14,0x5e,0x15,0xd2, -0x1b,0x8e,0x00,0x01,0x00,0x02,0x03,0x48,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x03,0x14,0x4a,0x16,0xa2,0x1b,0x7c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x03,0x16,0x76,0x16,0x82, -0x1b,0x6a,0x00,0x01,0x00,0x02,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x03,0x1b,0x58,0x1d,0xd8,0x1f,0x6a,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x30,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x19,0x00,0x03,0x13,0xfe,0x15,0x42,0x1b,0x4e,0x00,0x01,0x00,0x02,0x03,0x29, -0x03,0x30,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xb5,0x00,0x03,0x13,0xf2,0x16,0x1a,0x1b,0x44,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x03,0x1b,0x2a,0x1d,0x4e,0x1f,0x22,0x00,0x01,0x00,0x02,0x04,0x19, -0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x03,0x13,0xbe,0x15,0xf2,0x1b,0x20,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x22,0x00,0x03,0x13,0xba,0x15,0x22,0x1b,0x1e,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x22,0x00,0x03,0x13,0xb6,0x13,0xc2,0x1b,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x05,0xb4,0x00,0x03,0x13,0xbe,0x15,0xaa, -0x1b,0x1a,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x23,0x00,0x03,0x13,0xba,0x13,0xc6,0x1b,0x18,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1c,0x00,0x03,0x13,0xc2,0x15,0xa2,0x1b,0x16,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x03,0x13,0xbe,0x13,0xca,0x1b,0x14,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1c,0x00,0x03,0x15,0x5e,0x15,0x82, -0x1b,0x12,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x03,0x13,0xb6,0x14,0xbe,0x1b,0x10,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1c,0x00,0x03,0x13,0xb2,0x15,0x62,0x1b,0x0e,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x03,0x13,0xae,0x14,0xaa,0x1b,0x0c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1c,0x00,0x03,0x15,0x12,0x15,0x42, -0x1b,0x0a,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1b,0x08,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x45,0x00,0x03,0x13,0xa2,0x13,0xae,0x1b,0x06,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x47,0x00,0x03,0x13,0xaa,0x13,0xb6,0x1b,0x04,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x43,0x00,0x03,0x13,0xb2,0x14,0x06, -0x1b,0x02,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x5c,0x00,0x03,0x13,0xa6,0x14,0x12,0x1a,0xf8,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x3a,0x00,0x03,0x13,0xa2,0x13,0xea,0x1a,0xf6,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x3a,0x00,0x03,0x13,0x9e,0x14,0xb2,0x1a,0xf4,0x00,0x01,0x00,0x02,0x03,0x3a, -0x04,0x19,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1a,0xf2,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x48,0x00,0x01,0x00,0x02,0x00,0xf4,0x01,0xa2,0x00,0x01,0x00,0x02,0x01,0xdd,0x02,0x21,0x00,0x02,0x24,0x34,0x24,0x46,0x00,0x02,0x24,0x52,0x24,0x64,0x00,0x02,0x24,0x70,0x24,0x82,0x00,0x02,0x24,0x8e,0x24,0xa0,0x00,0x01,0x00,0x02,0x03,0x57, -0x04,0x1c,0x00,0x00,0x00,0x05,0x1d,0xa0,0x1d,0xae,0x24,0xa2,0x24,0xb2,0x24,0xc2,0x00,0x05,0x1c,0x2c,0x13,0xc4,0x1a,0xb2,0x1d,0xb0,0x1d,0xbe,0x00,0x05,0x1d,0xc0,0x1d,0xce,0x24,0xba,0x24,0xca,0x24,0xda,0x00,0x05,0x23,0x1c,0x23,0x2a,0x24,0xde,0x24,0xee,0x24,0xfe,0x00,0x05,0x1d,0xc4,0x1d,0xd2,0x25,0x02,0x25,0x12,0x25,0x22, -0x00,0x05,0x1a,0x8e,0x13,0x34,0x1a,0x9a,0x1d,0xd4,0x1d,0xe2,0x00,0x05,0x1d,0xe4,0x1d,0xf2,0x25,0x1a,0x25,0x2a,0x25,0x3a,0x00,0x05,0x1d,0xf4,0x1b,0x68,0x25,0x3e,0x25,0x4e,0x25,0x5e,0x00,0x05,0x1d,0xf6,0x1b,0x4e,0x25,0x62,0x25,0x72,0x25,0x82,0x00,0x05,0x1a,0x76,0x13,0x1c,0x1b,0x2a,0x1d,0xf8,0x1e,0x06,0x00,0x05,0x1e,0x08, -0x1e,0x16,0x25,0x7a,0x25,0x8a,0x25,0x9a,0x00,0x05,0x1e,0x18,0x1e,0x26,0x25,0x9e,0x25,0xae,0x25,0xbe,0x00,0x05,0x1e,0x28,0x1e,0x36,0x25,0xc2,0x25,0xd2,0x25,0xe2,0x00,0x05,0x1e,0x38,0x1e,0x46,0x25,0xe6,0x25,0xf6,0x26,0x06,0x00,0x04,0x26,0x0a,0x26,0x1a,0x2b,0xfa,0x2c,0x0c,0x00,0x04,0x1e,0x3e,0x1e,0x4c,0x26,0x20,0x26,0x30, -0x00,0x04,0x1a,0x32,0x12,0xcc,0x1a,0xda,0x1e,0x50,0x00,0x04,0x1a,0x34,0x1b,0x7e,0x13,0x9a,0x1e,0x54,0x00,0x04,0x1e,0x58,0x1e,0x66,0x26,0x22,0x26,0x32,0x00,0x04,0x1e,0x6a,0x1e,0x78,0x26,0x38,0x26,0x48,0x00,0x04,0x1a,0x22,0x1a,0x2e,0x12,0xa4,0x1e,0x7c,0x00,0x04,0x1e,0x80,0x1e,0x8e,0x26,0x44,0x26,0x54,0x00,0x04,0x1e,0x92, -0x1e,0xa0,0x26,0x5a,0x26,0x6a,0x00,0x04,0x1e,0xa4,0x1e,0xc0,0x1e,0xb2,0x26,0x70,0x00,0x04,0x1a,0x2a,0x1e,0xb6,0x1a,0x12,0x1e,0xc4,0x00,0x04,0x1a,0x14,0x1a,0x20,0x12,0x96,0x1e,0xc8,0x00,0x04,0x1e,0xcc,0x1e,0xda,0x26,0x62,0x26,0x72,0x00,0x04,0x1e,0xde,0x1e,0xec,0x26,0x78,0x26,0x88,0x00,0x04,0x1b,0x10,0x1a,0x0e,0x13,0x2c, -0x1e,0xf0,0x00,0x04,0x1a,0x10,0x1b,0x12,0x1b,0x2c,0x1e,0xf4,0x00,0x04,0x1a,0x12,0x12,0x34,0x1a,0x1e,0x1e,0xf8,0x00,0x04,0x1e,0xfc,0x21,0xa0,0x26,0x70,0x26,0x80,0x00,0x04,0x26,0x86,0x1f,0x00,0x26,0x96,0x26,0xa6,0x00,0x04,0x26,0xac,0x1f,0x04,0x26,0xbc,0x26,0xcc,0x00,0x04,0x1a,0x02,0x12,0x48,0x1a,0xb0,0x1f,0x08,0x00,0x04, -0x1a,0x04,0x1a,0xb2,0x12,0xe6,0x1f,0x0c,0x00,0x04,0x1a,0x06,0x12,0x04,0x1a,0x12,0x1f,0x10,0x00,0x04,0x1a,0x14,0x12,0xd2,0x1a,0x9e,0x1f,0x14,0x00,0x04,0x1f,0x18,0x1f,0x26,0x26,0xaa,0x26,0xba,0x00,0x04,0x1f,0x2a,0x26,0xc0,0x1a,0x0c,0x26,0xd0,0x00,0x04,0x1f,0x2e,0x21,0xc8,0x26,0xd6,0x26,0xe6,0x00,0x04,0x1f,0x32,0x1f,0x40, -0x26,0xec,0x26,0xfc,0x00,0x04,0x1f,0x44,0x1f,0x52,0x27,0x02,0x27,0x12,0x00,0x04,0x1f,0x56,0x21,0x0e,0x27,0x18,0x27,0x28,0x00,0x04,0x1a,0x28,0x1a,0x34,0x1a,0x40,0x1f,0x5a,0x00,0x04,0x1f,0x5e,0x27,0x24,0x19,0xde,0x27,0x34,0x00,0x04,0x1f,0x62,0x1f,0x70,0x1f,0x7e,0x27,0x3a,0x00,0x04,0x19,0xd8,0x1a,0x16,0x1a,0x22,0x1f,0x82, -0x00,0x04,0x1f,0x86,0x1f,0xda,0x27,0x36,0x27,0x46,0x00,0x04,0x19,0xd0,0x11,0x8e,0x19,0xdc,0x1f,0x8a,0x00,0x03,0x27,0x42,0x29,0x66,0x2a,0xb6,0x00,0x03,0x27,0x4a,0x27,0x5a,0x2a,0xc0,0x00,0x03,0x1f,0x7e,0x20,0xb8,0x27,0x62,0x00,0x03,0x20,0xd8,0x20,0xe6,0x27,0x6a,0x00,0x03,0x1f,0x7c,0x1f,0x8a,0x27,0x72,0x00,0x03,0x1f,0x90, -0x1f,0x9e,0x27,0x7a,0x00,0x03,0x1f,0xa4,0x1f,0xb2,0x27,0x82,0x00,0x03,0x1f,0xb8,0x21,0x2c,0x27,0x8a,0x00,0x03,0x1f,0xbe,0x20,0x88,0x27,0x92,0x00,0x03,0x1f,0xc4,0x1f,0xd2,0x27,0x9a,0x00,0x03,0x1f,0xd8,0x1f,0xe6,0x27,0xa2,0x00,0x03,0x1f,0xec,0x1f,0xfa,0x27,0xaa,0x00,0x03,0x20,0x00,0x20,0x0e,0x27,0xb2,0x00,0x03,0x20,0x14, -0x20,0x22,0x27,0xba,0x00,0x06,0x2a,0x6a,0x2a,0x7a,0x2d,0xde,0x2d,0xf0,0x2e,0x02,0x2e,0x14,0x00,0x06,0x20,0x1a,0x27,0xb4,0x2a,0x7c,0x11,0x12,0x27,0xc2,0x27,0xd0,0x00,0x06,0x20,0x18,0x11,0x10,0x0c,0xfc,0x20,0x24,0x27,0xd0,0x27,0xde,0x00,0x06,0x2a,0x70,0x27,0xde,0x19,0x44,0x2a,0x80,0x2a,0x90,0x2a,0xa0,0x00,0x06,0x20,0x14, -0x19,0x44,0x19,0x50,0x19,0x5c,0x27,0xde,0x27,0xec,0x00,0x05,0x27,0xec,0x28,0x5c,0x28,0x6a,0x2a,0x94,0x2a,0xa4,0x00,0x05,0x29,0x16,0x27,0xee,0x20,0x06,0x2a,0xa8,0x2a,0xb8,0x00,0x05,0x20,0x08,0x11,0x82,0x19,0x4e,0x20,0x7e,0x27,0xf0,0x00,0x05,0x29,0x9c,0x2d,0x0c,0x19,0x72,0x29,0xaa,0x2a,0xb0,0x00,0x05,0x27,0xe6,0x2d,0x00, -0x2d,0xb0,0x19,0x66,0x2a,0xb4,0x00,0x05,0x27,0xe8,0x2a,0xb8,0x27,0xf6,0x2a,0xc8,0x2a,0xd8,0x00,0x05,0x27,0xf8,0x2a,0xdc,0x1f,0xe4,0x2a,0xec,0x2a,0xfc,0x00,0x05,0x2b,0x00,0x2b,0x10,0x2d,0x9e,0x2d,0xb0,0x2d,0xc2,0x00,0x05,0x27,0xee,0x1f,0xda,0x1f,0xe8,0x2b,0x14,0x2b,0x24,0x00,0x05,0x27,0xf0,0x2b,0x28,0x27,0xfe,0x2b,0x38, -0x2b,0x48,0x00,0x05,0x28,0x00,0x2b,0x4c,0x28,0x0e,0x2b,0x5c,0x2b,0x6c,0x00,0x05,0x1f,0xd2,0x10,0x6e,0x18,0xd6,0x1f,0xde,0x28,0x10,0x00,0x05,0x20,0x12,0x18,0xfa,0x1f,0xde,0x19,0x14,0x28,0x12,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x45,0x03,0x57,0x00,0x04,0x2b,0x4e,0x2d,0x82,0x28,0x0a,0x2d,0x94,0x00,0x01,0x00,0x03,0x03,0x2e, -0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x04,0x1c,0x00,0x04,0x27,0xfc,0x2c,0x88,0x1f,0xea,0x2b,0x40,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x30,0x04,0x1b,0x00,0x04,0x2b,0x28,0x2d,0x60,0x2b,0x38,0x2d,0x72, -0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x05,0xbe,0x00,0x04,0x27,0xba,0x2b,0x20,0x27,0xc8,0x2b,0x30,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03, -0x03,0x57,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x43,0x03,0x5c,0x00,0x02,0x2a,0xe6,0x27,0x7c,0x00,0x02, -0x27,0x84,0x27,0x92,0x00,0x01,0x27,0x9a,0x00,0x07,0x18,0x00,0x2d,0x02,0x2b,0x72,0x10,0x1c,0x17,0xe8,0x2a,0xe6,0x2a,0xf4,0x00,0x07,0x27,0x94,0x2e,0x02,0x27,0xa2,0x27,0xae,0x0f,0x64,0x2a,0xf2,0x2b,0x00,0x00,0x06,0x27,0xaa,0x27,0xb6,0x0f,0x60,0x27,0xc2,0x27,0xce,0x2a,0xfe,0x00,0x06,0x2a,0xfe,0x1e,0xce,0x1e,0xdc,0x2b,0x0c, -0x2b,0x1a,0x2c,0xc4,0x00,0x06,0x27,0xbe,0x17,0xb8,0x27,0xca,0x0f,0x50,0x27,0xd6,0x2b,0x1a,0x00,0x06,0x1e,0xce,0x27,0xd4,0x27,0xe0,0x2b,0x28,0x0f,0xd2,0x2b,0x1a,0x00,0x06,0x27,0xde,0x2b,0x1a,0x2c,0xaa,0x17,0xa8,0x0f,0xc4,0x2b,0x28,0x00,0x04,0x0f,0x32,0x0f,0x38,0x0f,0x3e,0x0f,0x44,0x00,0x04,0x0f,0x40,0x0f,0x46,0x0f,0x4c, -0x0f,0x52,0x00,0x04,0x0f,0x4e,0x0f,0x54,0x0f,0x5a,0x0f,0x60,0x00,0x04,0x0f,0x5c,0x0f,0x62,0x0f,0x68,0x0f,0x6e,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x00,0x08,0x17,0x76,0x1e,0x8e,0x2a,0xf8,0x17,0x90,0x2b,0x48,0x2b,0x04,0x2c,0x7c,0x2c,0x8a,0x00,0x08,0x2b,0x5a,0x0f,0x8c,0x2b,0x66,0x2a,0xfe,0x2b,0x4e,0x0f,0x5c,0x2c,0x86, -0x2c,0x94,0x00,0x08,0x2c,0x90,0x2a,0xf8,0x27,0x88,0x17,0x5e,0x27,0x96,0x2d,0x6a,0x2d,0x7a,0x2d,0x8a,0x00,0x07,0x2b,0x1e,0x2a,0xf6,0x2b,0x36,0x0f,0x5c,0x0f,0x68,0x0f,0x44,0x2c,0x8c,0x00,0x07,0x2c,0x8a,0x2c,0x98,0x2d,0xd0,0x2a,0xf2,0x1e,0x54,0x2d,0x78,0x2d,0x88,0x00,0x01,0x00,0x04,0x00,0x84,0x00,0x8c,0x01,0x47,0x01,0x4f, -0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x60,0x00,0xbd,0x01,0x22,0x00,0x01,0x00,0x04,0x03,0x90,0x03,0x91,0x06,0x23,0x06,0x24,0x00,0x01,0x00,0x04,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x02,0x36,0x00,0x01,0x00,0x04,0x05,0xb5,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x00,0x01,0x00,0x01,0x03,0x20,0x00,0x08,0x2c,0x54,0x16,0xf8,0x2c,0x60,0x2c,0x6c, -0x2c,0x78,0x2c,0x84,0x2a,0xb0,0x2d,0x46,0x00,0x08,0x2c,0x7e,0x2c,0x8a,0x2c,0x96,0x2c,0xa2,0x2c,0xae,0x2c,0xba,0x0a,0x20,0x2d,0x42,0x00,0x08,0x2c,0xb4,0x0e,0xca,0x2d,0x6c,0x2d,0x7c,0x2d,0x8c,0x2d,0x9c,0x2d,0x3e,0x2d,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0xbd,0x00,0x01,0x00,0x02,0x00,0x60,0x01,0x22,0x00,0x09,0x2a,0x76, -0x2a,0x82,0x2a,0x8e,0x0e,0xb4,0x2d,0xa6,0x2d,0x8a,0x2a,0x9a,0x0e,0xc0,0x2d,0x98,0x00,0x01,0x00,0x05,0x03,0xc3,0x03,0xc5,0x06,0x1c,0x06,0x42,0x06,0x43,0x00,0x01,0x00,0x05,0x02,0xdc,0x02,0xec,0x02,0xf6,0x03,0x00,0x03,0x0a,0x00,0x01,0x00,0x05,0x02,0xd9,0x02,0xe9,0x02,0xf3,0x02,0xfd,0x03,0x07,0x00,0x02,0x00,0x01,0x02,0xee, -0x02,0xf7,0x00,0x00,0x00,0x01,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3e,0x00,0x02,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x06,0xce,0x06,0xce,0x00,0x02,0x00,0x02,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x01,0x00,0x06,0x01,0x13,0x01,0x14,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19, -0x00,0x09,0x2d,0x32,0x2d,0x3e,0x2d,0x6e,0x2d,0x8a,0x2d,0x9a,0x2d,0x4a,0x2d,0x56,0x2d,0x62,0x2d,0x7c,0x00,0x01,0x00,0x05,0x03,0x29,0x03,0x32,0x03,0x33,0x03,0xbe,0x05,0xc6,0x00,0x02,0x00,0x02,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x76,0x00,0x05,0x00,0x02,0x00,0x02,0x00,0xa2,0x00,0xa6,0x00,0x00,0x01,0x6a,0x01,0x6e, -0x00,0x05,0x00,0x02,0x00,0x02,0x06,0x77,0x06,0x79,0x00,0x00,0x06,0x7b,0x06,0x7f,0x00,0x03,0x00,0x01,0x00,0x08,0x00,0xff,0x01,0x07,0x01,0x0b,0x01,0x0d,0x01,0x90,0x02,0x34,0x02,0x36,0x02,0x49,0x00,0x02,0x00,0x02,0x02,0xd4,0x02,0xdd,0x00,0x00,0x04,0x15,0x04,0x15,0x00,0x0a,0x00,0x02,0x00,0x05,0x02,0xd4,0x02,0xde,0x00,0x01, -0x03,0x57,0x03,0x57,0x00,0x03,0x04,0x1b,0x04,0x1b,0x00,0x04,0x04,0x1c,0x04,0x1c,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x05,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc,0x00,0x01,0x01,0xc8,0x01,0xfe,0x00,0x01,0x02,0x03,0x02,0x03,0x00,0x01,0x02,0x05,0x02,0x0a,0x00,0x01,0x02,0x51,0x02,0x74,0x00,0x01,0x02,0xa0,0x02,0xb9,0x00,0x01, -0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x01,0x06,0x6e,0x06,0x78,0x00,0x01,0x06,0x7a,0x06,0x7c,0x00,0x01,0x06,0x80,0x06,0x8a,0x00,0x01,0x06,0xb0,0x06,0xb0,0x00,0x01,0x06,0xb4,0x06,0xbb,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x8e,0x06,0x9a,0x00,0x01,0x06,0x9c,0x06,0x9e,0x00,0x01,0x06,0xa0,0x06,0xa2,0x00,0x01,0x06,0xa5, -0x06,0xaf,0x00,0x01,0x06,0xb1,0x06,0xb1,0x00,0x01,0x06,0xbc,0x06,0xc3,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x78,0x00,0x05,0x06,0x7a,0x06,0x7c,0x00,0x10,0x06,0x80,0x06,0x8a,0x00,0x13,0x06,0xb0,0x06,0xb0,0x00,0x1e,0x06,0xb4,0x06,0xbb,0x00,0x1f,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc, -0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74,0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x00,0x02,0x00,0x07,0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74, -0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x02,0xd4,0x02,0xde,0x01,0x38,0x00,0x02,0x00,0x03,0x01,0x51,0x01,0x53,0x00,0x00,0x01,0x55,0x01,0x56,0x00,0x03,0x01,0x5b,0x01,0x68,0x00,0x05,0x00,0x01,0x00,0x0f,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0xdf,0x01,0xe0,0x02,0x23, -0x02,0x24,0x02,0x77,0x02,0x7f,0x00,0x01,0x00,0x0f,0x02,0xd6,0x02,0xda,0x02,0xdd,0x02,0xe6,0x02,0xea,0x02,0xed,0x02,0xf0,0x02,0xf4,0x02,0xf7,0x02,0xfa,0x02,0xfe,0x03,0x01,0x03,0x04,0x03,0x08,0x03,0x0b,0x00,0x01,0x00,0x10,0x00,0x51,0x00,0x52,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0xd1,0x01,0xd5,0x01,0xd6,0x01,0xf8,0x02,0x15, -0x02,0x19,0x02,0x1a,0x02,0x3c,0x02,0x5a,0x02,0x72,0x02,0x7e,0x00,0x02,0x03,0x41,0x03,0x42,0x00,0x02,0x03,0xae,0x06,0xce,0x00,0x02,0x03,0x9a,0x03,0xa5,0x00,0x02,0x03,0x9c,0x06,0xce,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x02,0x06,0x59,0x06,0xce,0x00,0x03,0x02,0xe5,0x02,0xf9,0x03,0x03,0x00,0x03,0x02,0xe6,0x02,0xfa,0x03,0x04, -0x00,0x03,0x02,0xe7,0x02,0xfb,0x03,0x05,0x00,0x03,0x02,0xe8,0x02,0xfc,0x03,0x06,0x00,0x03,0x02,0xe9,0x02,0xfd,0x03,0x07,0x00,0x03,0x02,0xea,0x02,0xfe,0x03,0x08,0x00,0x03,0x02,0xeb,0x02,0xff,0x03,0x09,0x00,0x03,0x02,0xec,0x03,0x00,0x03,0x0a,0x00,0x03,0x02,0xed,0x03,0x01,0x03,0x0b,0x00,0x03,0x03,0x8c,0x03,0x8d,0x06,0xce, -0x00,0x03,0x03,0x76,0x03,0x9b,0x06,0xce,0x00,0x03,0x06,0x12,0x06,0x2c,0x06,0xce,0x00,0x03,0x06,0x0c,0x06,0x0d,0x06,0xce,0x00,0x04,0x02,0xde,0x02,0xe4,0x02,0xf8,0x03,0x02,0x00,0x04,0x03,0x7f,0x03,0x80,0x03,0x92,0x06,0xce,0x00,0x04,0x03,0x79,0x03,0x8e,0x03,0x9e,0x06,0xce,0x00,0x05,0x03,0x97,0x03,0xa6,0x03,0xa7,0x06,0x3c, -0x06,0xce,0x00,0x05,0x03,0x7e,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x06,0xce,0x00,0x05,0x03,0x6e,0x03,0x7b,0x03,0x8f,0x06,0x11,0x06,0xce,0x00,0x05,0x03,0xa4,0x03,0xb0,0x03,0xb1,0x06,0x0b,0x06,0xce,0x00,0x05,0x04,0x3b,0x06,0x1d,0x06,0x1e,0x06,0x45,0x06,0xce,0x00,0x06,0x03,0x82,0x03,0x87,0x03,0x94,0x03,0x95,0x03,0x9f,0x06,0xce, -0x00,0x06,0x03,0x75,0x06,0x52,0x06,0x53,0x06,0x55,0x06,0x5b,0x06,0xce,0x00,0x07,0x03,0x20,0x03,0x99,0x03,0xab,0x03,0xad,0x03,0xaf,0x06,0x56,0x06,0xce,0x00,0x09,0x03,0x40,0x03,0x84,0x03,0x85,0x03,0x93,0x03,0x9d,0x06,0x20,0x06,0x2d,0x06,0x39,0x06,0xce,0x00,0x0a,0x03,0x70,0x03,0x7a,0x03,0x7c,0x06,0x13,0x06,0x36,0x06,0x3e, -0x06,0x3f,0x06,0x40,0x06,0x48,0x06,0xce,0x00,0x0c,0x03,0x73,0x03,0x74,0x03,0x7d,0x03,0x81,0x03,0x8b,0x06,0x28,0x06,0x38,0x06,0x3a,0x06,0x4c,0x06,0x4e,0x06,0x51,0x06,0xce,0x00,0x0f,0x03,0x6c,0x03,0x6d,0x03,0x77,0x03,0x78,0x06,0x0f,0x06,0x14,0x06,0x2a,0x06,0x31,0x06,0x34,0x06,0x35,0x06,0x3b,0x06,0x44,0x06,0x4f,0x06,0x58, -0x06,0xce,0x00,0x19,0x03,0x83,0x03,0x86,0x03,0x89,0x03,0x90,0x03,0x91,0x03,0x96,0x03,0xa3,0x03,0xa8,0x03,0xa9,0x03,0xac,0x06,0x0e,0x06,0x17,0x06,0x19,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x29,0x06,0x2e,0x06,0x32,0x06,0x47,0x06,0x49,0x06,0x50,0x06,0x5d,0x06,0xce,0x00,0x02,0x00,0x08,0x03,0x2b,0x03,0x2b,0x00,0x00, -0x03,0x42,0x03,0x42,0x00,0x01,0x06,0x68,0x06,0x6c,0x00,0x02,0x06,0x6e,0x06,0x78,0x00,0x07,0x06,0x7a,0x06,0x7c,0x00,0x12,0x06,0x80,0x06,0x8a,0x00,0x15,0x06,0xb0,0x06,0xb0,0x00,0x20,0x06,0xb4,0x06,0xbb,0x00,0x21,0x00,0x22,0x03,0x6f,0x03,0x71,0x03,0x72,0x03,0x88,0x03,0x8a,0x03,0x98,0x03,0xaa,0x06,0x10,0x06,0x16,0x06,0x18, -0x06,0x1a,0x06,0x1b,0x06,0x1c,0x06,0x1f,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x2b,0x06,0x2f,0x06,0x30,0x06,0x33,0x06,0x37,0x06,0x3d,0x06,0x41,0x06,0x43,0x06,0x46,0x06,0x4a,0x06,0x4b,0x06,0x4d,0x06,0x54,0x06,0x57,0x06,0x5a,0x06,0x5c,0x06,0xce,0x00,0x02,0x00,0x0b,0x00,0xa2,0x00,0xa6,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x05, -0x01,0x13,0x01,0x14,0x00,0x06,0x01,0x16,0x01,0x1a,0x00,0x08,0x01,0x4c,0x01,0x50,0x00,0x0d,0x01,0x6a,0x01,0x6e,0x00,0x12,0x01,0x70,0x01,0x78,0x00,0x17,0x01,0xdf,0x01,0xe0,0x00,0x20,0x02,0x23,0x02,0x24,0x00,0x22,0x02,0x77,0x02,0x77,0x00,0x24,0x02,0x7f,0x02,0x7f,0x00,0x25,0x00,0x01,0x00,0x24,0x02,0xd4,0x02,0xd5,0x02,0xd6, -0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x03,0x29,0x03,0x2b,0x03,0x2c,0x03,0x2e,0x03,0x30,0x03,0x32,0x03,0x34,0x03,0x3a,0x03,0x3d,0x03,0x3e,0x03,0x43,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x57,0x03,0x5c,0x03,0xc5,0x04,0x15,0x04,0x19,0x04,0x1b,0x04,0x1c,0x04,0x22,0x05,0xb4,0x05,0xb5, -0x05,0xbe,0x00,0x02,0x00,0x0e,0x00,0xff,0x00,0xff,0x00,0x00,0x01,0x07,0x01,0x07,0x00,0x01,0x01,0x0b,0x01,0x0b,0x00,0x02,0x01,0x0d,0x01,0x0d,0x00,0x03,0x01,0x90,0x01,0x90,0x00,0x04,0x02,0x34,0x02,0x34,0x00,0x05,0x02,0x36,0x02,0x36,0x00,0x06,0x02,0x49,0x02,0x49,0x00,0x07,0x06,0x68,0x06,0x6c,0x00,0x08,0x06,0x6e,0x06,0x78, -0x00,0x0d,0x06,0x7a,0x06,0x7c,0x00,0x18,0x06,0x80,0x06,0x8a,0x00,0x1b,0x06,0xb0,0x06,0xb0,0x00,0x26,0x06,0xb4,0x06,0xbb,0x00,0x27,0x00,0x02,0x00,0x13,0x00,0x51,0x00,0x52,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x02,0x01,0x10,0x01,0x14,0x00,0x03,0x01,0x16,0x01,0x19,0x00,0x08,0x01,0x40,0x01,0x43,0x00,0x0c,0x01,0x51,0x01,0x53, -0x00,0x10,0x01,0x55,0x01,0x56,0x00,0x13,0x01,0x5b,0x01,0x68,0x00,0x15,0x01,0x70,0x01,0x78,0x00,0x23,0x01,0xd1,0x01,0xd1,0x00,0x2c,0x01,0xd5,0x01,0xd6,0x00,0x2d,0x01,0xdf,0x01,0xe0,0x00,0x2f,0x01,0xf8,0x01,0xf8,0x00,0x31,0x02,0x15,0x02,0x15,0x00,0x32,0x02,0x19,0x02,0x1a,0x00,0x33,0x02,0x23,0x02,0x24,0x00,0x35,0x02,0x3c, -0x02,0x3c,0x00,0x37,0x02,0x77,0x02,0x77,0x00,0x38,0x02,0x7e,0x02,0x7f,0x00,0x39,0x00,0x02,0x00,0x13,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x01,0x00,0x84,0x00,0x84,0x00,0x02,0x00,0x8c,0x00,0x8c,0x00,0x03,0x00,0xbd,0x00,0xbd,0x00,0x04,0x00,0xff,0x00,0xff,0x00,0x05,0x01,0x22,0x01,0x22,0x00,0x06,0x01,0x47, -0x01,0x47,0x00,0x07,0x01,0x4a,0x01,0x4a,0x00,0x08,0x01,0x4f,0x01,0x4f,0x00,0x09,0x02,0xf8,0x03,0x01,0x00,0x0a,0x03,0x42,0x03,0x42,0x00,0x14,0x04,0x23,0x04,0x23,0x00,0x15,0x06,0x68,0x06,0x6c,0x00,0x16,0x06,0x6e,0x06,0x78,0x00,0x1b,0x06,0x7a,0x06,0x7c,0x00,0x26,0x06,0x80,0x06,0x8a,0x00,0x29,0x06,0xb0,0x06,0xb0,0x00,0x34, -0x06,0xb4,0x06,0xbb,0x00,0x35,0x05,0xc3,0x00,0x03,0x01,0x22,0x03,0x29,0x00,0x01,0x00,0x01,0x00,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2d,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x00,0xa2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x01,0x06,0xce,0x00,0x01, -0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd0, -0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00, -0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x01,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x01,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, -0x01,0x79,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x01,0x06,0xce,0x00,0x01, -0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8d, -0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x93,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x48,0x03,0x48,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x17,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, -0x00,0x00,0x00,0x77,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01, -0x00,0x00,0x00,0xbd,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0xf0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, -0x00,0x00,0x01,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x01,0x3a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0x31, -0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x04,0x15, -0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5, -0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00, -0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x03,0x29, -0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb4,0x05,0xb4,0x00,0x00,0x00,0x01,0x04,0x23,0x00,0x01,0x00,0x01, -0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x00, -0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x3a, -0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x47,0x03,0x47,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, -0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x06,0xb8,0x00,0x02,0x06,0x6b,0x06,0xb9,0x00,0x02,0x06,0x6a,0x06,0xba,0x00,0x02,0x06,0x74,0x06,0xbb,0x00,0x02,0x06,0x72,0x06,0xb4,0x00,0x02,0x06,0x6b,0x06,0xb5, -0x00,0x02,0x06,0x6a,0x06,0xb6,0x00,0x02,0x06,0x74,0x06,0xb7,0x00,0x02,0x06,0x72,0x06,0xc0,0x00,0x02,0x06,0x91,0x06,0xc1,0x00,0x02,0x06,0x90,0x06,0xc2,0x00,0x02,0x06,0x99,0x06,0xc3,0x00,0x02,0x06,0x97,0x06,0xbc,0x00,0x02,0x06,0x91,0x06,0xbd,0x00,0x02,0x06,0x90,0x06,0xbe,0x00,0x02,0x06,0x99,0x06,0xbf,0x00,0x02,0x06,0x97, -0x00,0x01,0x00,0x04,0x06,0x6e,0x06,0x70,0x06,0x93,0x06,0x95,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8d,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x93,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x94,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xae,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbb,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x32,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x06,0xce,0x00,0x01, -0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01, -0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01, -0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce, -0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45, -0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x01,0x07,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x08,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x14,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x15,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1f,0x00,0x00,0x00,0x01, -0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x20,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00, -0x00,0x2d,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x03,0x57,0x00,0x01, -0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x61,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57, -0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x00, -0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01, -0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x00,0x00,0x01, -0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00, -0x01,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01, -0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01, -0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57, -0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1b,0x04,0x1b,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00, -0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3d, -0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce, -0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00, -0x00,0x68,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x00,0x01,0xa3,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x00,0x01,0xa4,0x00,0x01,0x01,0x7e,0x00,0x01,0x00,0x01,0x01,0x7e,0x00,0x01, -0x00,0x00,0x01,0xa5,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x03,0x03,0x57,0x03,0x45,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x01, -0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01, -0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00, -0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x02, -0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x00, -0x00,0x01,0x00,0x03,0x03,0x29,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01, -0x00,0x00,0x00,0xd3,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2c,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x30, -0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x30,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xb5,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46, -0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, -0x03,0x29,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00, -0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe, -0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01, -0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, -0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, -0x04,0x1b,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x42, -0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22, -0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x00, -0x00,0x01,0x00,0x03,0x03,0x30,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x05,0xbe, -0x05,0xbe,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c, -0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x5c,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01, -0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x19, -0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01, -0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19, -0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x02,0x06,0xce, -0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01, -0x00,0x00,0x00,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8a,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1b,0x00,0x03,0x06,0xce,0x06,0xce, -0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00, -0x00,0x71,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, -0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d, -0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x29, -0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c, -0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x9e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xa0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0xd8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xda,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xdc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2b, -0x00,0x01,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xde,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x0a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30, -0x00,0x01,0x00,0x00,0x01,0x0c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x19,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1b,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x03,0x03,0x57, -0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x57,0x03,0x46,0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x18,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c, -0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, -0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe, -0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xab,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c, -0x00,0x01,0x00,0x00,0x00,0xb3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe5,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57, -0x00,0x01,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf1,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x19, -0x00,0x01,0x00,0x00,0x00,0xf4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x26,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b, -0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19, -0x00,0x01,0x00,0x00,0x01,0x38,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3a,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b, -0x00,0x01,0x00,0x00,0x01,0x40,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b, -0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x57, -0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b, -0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b, -0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43, -0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0xb8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x00, -0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0xfb,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x45,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d, -0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa2,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x03,0x03,0x2e,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x19,0x04,0x19, -0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0x04, -0x03,0x2e,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00, -0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x98,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x99,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01, -0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x29, -0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01, -0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57, -0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00, -0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x03,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x02, -0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbe,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x02, -0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xca,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01, -0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xec,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x00, -0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x23,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x29,0x00,0x01, -0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x04,0x19,0x04,0x19,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x02, -0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x01, -0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34, -0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x02,0x03,0x30,0x03,0x43, -0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43, -0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01, -0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, -0x00,0x01,0x00,0x00,0x00,0x29,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce, -0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe9,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57, -0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x00,0x00,0x01,0x00,0x02, -0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, -0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9c,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19, -0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02, -0x04,0x1c,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x48, -0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x04,0x03,0x2e,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc5,0x00,0x01,0x06,0xce, -0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2f,0x00,0x00,0x00,0x01, -0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02, -0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19, -0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00, -0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01, -0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00, -}; - -read_only global String8 rd_default_code_font_bytes = {rd_default_code_font_bytes__data, sizeof(rd_default_code_font_bytes__data)}; -read_only global U8 rd_icon_file_bytes__data[] = -{ -0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x02,0x1e,0x00,0x00,0x16,0x00,0x00,0x00,0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c,0x72,0xa8,0x66,0x00,0x00,0x1d,0xc9,0x49,0x44,0x41,0x54,0x78, -0x9c,0xed,0xdd,0x7b,0x7c,0x14,0xe5,0xbd,0xc7,0xf1,0xcf,0x6e,0xb2,0x9b,0x04,0x12,0x20,0x10,0xae,0xe2,0x25,0x52,0x06,0x05,0xe5,0x12,0x14,0x6f,0xc7,0x56,0x99,0x5a,0xd4,0xaa,0xd5,0xda,0x8b,0xb7,0xa2,0x55,0x4f,0x6d,0x6b,0xab,0xb5,0xf6,0x72,0x7a,0xb1,0xb5,0x1e,0x41,0xce,0xd1,0xb6,0x5a,0x4f,0xeb,0xa9,0x56,0x8b,0x37,0xb4,0x5a, -0xfb,0xaa,0x56,0x5a,0xa4,0x1d,0xb5,0x20,0x2d,0x95,0x8a,0x8a,0xf5,0xa0,0x83,0x8a,0x37,0x10,0x08,0x90,0x70,0x0b,0xe4,0xb6,0x7b,0xfe,0x98,0x8d,0x44,0x48,0x42,0x36,0xf3,0xcc,0xfc,0x66,0x77,0x7e,0xef,0xd7,0x8b,0x57,0xbc,0x24,0xcf,0xf3,0xcb,0x32,0xcf,0x77,0x9f,0x99,0x9d,0x79,0x1e,0x50,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5, -0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x54,0xe1,0x4a,0x48,0x17,0xa0,0x82,0xe5,0x58,0x54,0x01,0xd5,0xc0,0xa0,0x4e,0x5f,0x3b,0xff,0x33,0x40,0x23,0xd0,0x90,0xfb,0xda,0xf9,0x9f,0x1b,0x6c,0x97,0x6d,0x61,0xd7,0xac,0xc2,0xa3,0x01,0x50,0xa0,0x1c,0x8b,0xa1,0xc0,0x54,0x60,0x0a,0x70,0x30,0x7b, -0x0f,0xec,0x6a,0x60,0x20,0x50,0xe2,0xb3,0xab,0x76,0x60,0x0b,0x9d,0x42,0x81,0xdd,0x41,0xf1,0x06,0xf0,0x3c,0xf0,0x9c,0xed,0x52,0xef,0xb3,0x1f,0x25,0x40,0x03,0xa0,0x00,0x38,0x16,0xfb,0x03,0x75,0x78,0x83,0xbd,0x2e,0xf7,0x67,0x3f,0xd1,0xa2,0xf6,0xb6,0x06,0x58,0xde,0xf9,0x8f,0xed,0xf2,0xae,0x6c,0x49,0x6a,0x5f,0x34,0x00,0x22, -0xc4,0xb1,0x48,0xe0,0xbd,0x9b,0xd7,0x75,0xfa,0x33,0x05,0x18,0x2a,0x59,0x97,0x0f,0xf5,0x78,0x33,0x84,0xce,0xa1,0xf0,0xba,0x6c,0x49,0xaa,0x33,0x0d,0x80,0x88,0x70,0x2c,0x7e,0x0f,0x9c,0x80,0x37,0x6d,0x2f,0x66,0x5b,0x80,0xa7,0x6d,0x97,0x33,0xa5,0x0b,0x51,0x1a,0x00,0x91,0xe0,0x58,0xd4,0xe2,0x9d,0x4f,0xc7,0x49,0xad,0xed,0xf2, -0xa6,0x74,0x11,0x71,0x97,0x94,0x2e,0x40,0x01,0x30,0x5d,0xba,0x00,0x01,0x71,0xfc,0x9d,0x23,0x47,0x03,0x20,0x1a,0xe2,0x38,0x18,0xe2,0xf8,0x3b,0x47,0x8e,0x06,0x40,0x34,0x9c,0x28,0x5d,0x80,0x80,0x38,0xfe,0xce,0x91,0xa3,0x01,0x20,0xcc,0xb1,0x38,0x04,0x18,0x29,0x5d,0x87,0x80,0x51,0x8e,0xc5,0x38,0xe9,0x22,0xe2,0x4e,0x03,0x40, -0x5e,0x9c,0xa7,0xc2,0x71,0xfe,0xdd,0x23,0x41,0x03,0x40,0x5e,0x9c,0x07,0x41,0x9c,0x7f,0xf7,0x48,0xd0,0x8f,0x01,0x05,0xe5,0x6e,0xfc,0xa9,0x07,0x86,0x48,0xd7,0x22,0x64,0x23,0x30,0xcc,0x76,0xc9,0x4a,0x17,0x12,0x57,0x3a,0x03,0x90,0x35,0x91,0xf8,0x0e,0x7e,0x80,0x1a,0xe0,0x70,0xe9,0x22,0xe2,0x4c,0x03,0x40,0x96,0x4e,0x81,0xf5, -0x35,0x10,0xa5,0x01,0x20,0x4b,0x0f,0x7e,0x7d,0x0d,0x44,0xe9,0x35,0x00,0x21,0x8e,0x45,0x09,0xb0,0x19,0x18,0x20,0x5d,0x8b,0xb0,0x2d,0xc0,0x10,0xdb,0xa5,0x5d,0xba,0x90,0x38,0xd2,0x19,0x80,0x9c,0xa9,0xe8,0xe0,0x07,0xef,0xe1,0xa7,0x3a,0xe9,0x22,0xe2,0x4a,0x03,0x40,0x8e,0x4e,0x7d,0x77,0xd3,0xd7,0x42,0x88,0x06,0x80,0x1c,0x3d, -0xe8,0x77,0xd3,0xd7,0x42,0x88,0x5e,0x03,0x10,0xe0,0x58,0xa4,0xf1,0x96,0xd6,0xea,0x27,0x5d,0x4b,0x44,0x34,0x01,0x83,0x6c,0x97,0x56,0xe9,0x42,0xe2,0x46,0x67,0x00,0x32,0x8e,0x42,0x07,0x7f,0x67,0xfd,0xf0,0x5e,0x13,0x15,0x32,0x0d,0x00,0x19,0x3a,0xe5,0xdd,0x9b,0xbe,0x26,0x02,0x34,0x00,0x64,0xe8,0xc1,0xbe,0x37,0x7d,0x4d,0x04, -0xe8,0x35,0x80,0x90,0x39,0x16,0x15,0x78,0x4b,0x6a,0xa7,0xa5,0x6b,0x89,0x98,0x66,0xa0,0xda,0x76,0xd9,0x29,0x5d,0x48,0x9c,0xe8,0x0c,0x20,0x7c,0xc7,0xa1,0x83,0xbf,0x2b,0x65,0xc0,0xb1,0xd2,0x45,0xc4,0x8d,0x06,0x40,0xf8,0x74,0xaa,0xdb,0x3d,0x7d,0x6d,0x42,0xa6,0x01,0x10,0x3e,0x3d,0xc8,0xbb,0xa7,0xaf,0x4d,0xc8,0xf4,0x1a,0x40, -0x88,0x1c,0x8b,0x01,0x78,0xf7,0xff,0xfb,0xdd,0xae,0xab,0x58,0xb5,0x01,0x83,0x75,0x3f,0xc2,0xf0,0xe8,0x0c,0x20,0x5c,0xc7,0xa3,0x83,0xbf,0x27,0xa5,0x78,0xaf,0x91,0x0a,0x89,0xce,0x00,0x42,0xe0,0x58,0x94,0x03,0x5f,0x00,0xbe,0x0d,0x8c,0x12,0x2e,0x27,0xea,0xd6,0x02,0x73,0x80,0x3b,0x6c,0x97,0x5d,0xd2,0xc5,0x14,0x3b,0x0d,0x80, -0x00,0xe5,0x3e,0xf2,0xfb,0x22,0xf0,0x2d,0x60,0x84,0x70,0x39,0x85,0xe6,0x3d,0xe0,0x46,0xe0,0x7f,0xf5,0xa3,0xc1,0xe0,0x68,0x00,0x04,0xc0,0xb1,0xe8,0x0f,0x7c,0x19,0xb8,0x1a,0x18,0x2e,0x5c,0x4e,0xa1,0x5b,0x0f,0xdc,0x04,0xdc,0x66,0xbb,0xec,0x90,0x2e,0xa6,0xd8,0x68,0x00,0x18,0xe4,0x58,0x54,0x02,0x5f,0x01,0xbe,0x4e,0xe1,0xee, -0xe8,0x1b,0x55,0xf5,0xc0,0x4f,0x80,0xff,0xb1,0x5d,0xb6,0x4b,0x17,0x53,0x2c,0x34,0x00,0x0c,0xc8,0x5d,0xdd,0xbf,0x02,0xf8,0x1a,0xf1,0x5e,0xe4,0x33,0x0c,0x9b,0x80,0x9b,0x81,0x9f,0xd9,0x2e,0x5b,0xa5,0x8b,0x29,0x74,0x05,0x15,0x00,0x8e,0x45,0x12,0xf8,0x11,0xb0,0x1a,0x58,0x60,0xbb,0xac,0x15,0xae,0x27,0x0d,0x7c,0x13,0xf8,0x06, -0x30,0x48,0xb2,0x96,0x18,0x6a,0x00,0x7e,0x0c,0xdc,0x68,0xbb,0xb4,0x48,0x16,0xe2,0x58,0x8c,0x02,0x4e,0x06,0x0e,0x02,0xae,0xb5,0x5d,0x32,0x92,0xf5,0xe4,0xa3,0xd0,0x02,0xe0,0x66,0xe0,0xca,0x4e,0xff,0xe9,0x5f,0xc0,0x02,0xe0,0x09,0x60,0xb1,0xed,0xd2,0x1c,0x62,0x2d,0x75,0xc0,0x5c,0x74,0x59,0x6b,0x69,0x2f,0x01,0x17,0xda,0x2e, -0xcf,0x87,0xd5,0xa1,0x63,0x51,0x86,0xf7,0x71,0xe5,0x0c,0xbc,0x81,0x7f,0x58,0xa7,0xff,0x7d,0xb3,0xed,0x72,0x55,0x58,0xb5,0xf8,0x55,0x30,0x01,0xe0,0x58,0x5c,0x89,0x37,0xf5,0xeb,0x4e,0x13,0xf0,0x34,0xb9,0x40,0xb0,0x5d,0xdc,0x80,0xea,0x48,0x01,0xd7,0x00,0xdf,0xc1,0xfb,0xdc,0x5a,0xc9,0x6b,0x03,0x6e,0x00,0xfe,0x33,0xa8,0x45, -0x45,0x1c,0x0b,0x8b,0xdd,0x03,0xfe,0x04,0x7a,0x5e,0xcf,0xe1,0x4a,0xdb,0xe5,0x67,0x41,0xd4,0x61,0x5a,0x41,0x04,0x80,0x63,0x71,0x26,0xf0,0x08,0xf9,0xdd,0xb8,0xb4,0x1a,0x6f,0x66,0xb0,0x00,0x78,0xd2,0xc4,0xdd,0x65,0x8e,0xc5,0x14,0xbc,0x77,0xfd,0x89,0x7e,0xdb,0x52,0x81,0x58,0x01,0x5c,0x64,0x62,0x36,0xe0,0x58,0x54,0x01,0x36, -0xde,0xa0,0x9f,0x01,0xd4,0xe6,0xf1,0xe3,0x19,0xe0,0x93,0xb6,0xcb,0xa3,0x7e,0xeb,0x08,0x5a,0xe4,0x03,0xc0,0xb1,0x98,0x86,0xf7,0xce,0x5e,0xe1,0xa3,0x99,0x56,0xe0,0x6f,0xec,0x0e,0x84,0x17,0xf2,0xd9,0x8e,0x2a,0xf7,0xae,0xff,0x7d,0xe0,0xbb,0xe8,0xbb,0x7e,0xd4,0xb5,0x02,0xb3,0x81,0x59,0xf9,0xcc,0x06,0x72,0xdb,0xb4,0x4d,0x61, -0xf7,0xbb,0xfc,0x31,0x40,0xca,0x47,0x1d,0x4d,0xc0,0x09,0xb6,0xcb,0x32,0x1f,0x6d,0x04,0x2e,0xd2,0x01,0xe0,0x58,0xd4,0x02,0x4b,0x81,0x61,0x86,0x9b,0x5e,0x0f,0x2c,0xc4,0x0b,0x84,0x85,0xb6,0x4b,0x7d,0x0f,0x35,0x4c,0xc6,0x7b,0xd7,0x9f,0x64,0xb8,0x06,0x15,0xac,0x17,0xf1,0xae,0x0d,0xbc,0xd8,0xdd,0x37,0x38,0x16,0x43,0x81,0x8f, -0xe1,0x0d,0xf8,0x93,0x30,0x7f,0xcf,0xc6,0x06,0xe0,0x68,0xdb,0x65,0xb5,0xe1,0x76,0x8d,0x89,0x6c,0x00,0x38,0x16,0xd5,0x78,0xef,0xda,0x87,0x04,0xdc,0x55,0x16,0x58,0xce,0xee,0xd9,0xc1,0xdf,0x6d,0x97,0xb6,0xdc,0xbb,0xfe,0xf7,0xf0,0xde,0xf5,0xfd,0xbc,0x13,0x28,0x39,0xad,0xc0,0x2c,0x60,0xb6,0xed,0xd2,0xea,0x58,0x94,0xe2,0xbd, -0xb3,0x9f,0x8c,0xf7,0x4e,0x5f,0x47,0xf0,0x63,0xe0,0x15,0xe0,0x58,0xdb,0xa5,0x21,0xe0,0x7e,0xfa,0x24,0x92,0x01,0x90,0xbb,0xca,0xba,0x10,0xf8,0xb0,0x40,0xf7,0x5b,0x01,0x07,0xef,0x9c,0x6f,0xb2,0x40,0xff,0xca,0xbc,0x17,0xf0,0xae,0x09,0xd9,0xc8,0x6c,0xc6,0xb2,0x08,0x38,0x49,0xfa,0xe3,0xca,0xae,0x44,0x2e,0x00,0x72,0xe7,0x62, -0xf7,0x03,0xe7,0x4a,0xd7,0xa2,0x94,0x41,0xf3,0x80,0x0b,0xa2,0xb6,0x15,0x7a,0x14,0x1f,0x07,0xbe,0x1e,0x1d,0xfc,0xaa,0xf8,0x9c,0x07,0xfc,0xa7,0x74,0x11,0x7b,0x8a,0xd4,0x0c,0xc0,0xb1,0xb8,0x14,0xb8,0x43,0xba,0x0e,0xa5,0x02,0x74,0xa9,0xed,0x72,0xa7,0x74,0x11,0x1d,0x22,0x13,0x00,0x8e,0xc5,0x47,0x81,0x3f,0xa1,0x1f,0xb3,0xa9, -0xe2,0xd6,0x06,0x9c,0x62,0xbb,0xfc,0x45,0xba,0x10,0x88,0x48,0x00,0xe4,0xae,0xf8,0xbf,0x0c,0x8c,0x94,0xae,0x45,0xa9,0x10,0xbc,0x07,0x4c,0x88,0xc2,0x27,0x03,0x51,0xb9,0x06,0xf0,0x33,0x74,0xf0,0xab,0xf8,0x18,0x09,0xdc,0x22,0x5d,0x04,0x44,0x60,0x06,0xe0,0x58,0x9c,0x0e,0x3c,0x26,0x5d,0x87,0x52,0x02,0x4e,0xb7,0x5d,0x1e,0x97, -0x2c,0x40,0x34,0x00,0x74,0xea,0xaf,0x62,0x4e,0xfc,0x54,0x40,0xfa,0x14,0xe0,0x16,0x74,0xf0,0xab,0xf8,0x1a,0x49,0xcf,0x4f,0xb8,0x06,0x4e,0x6c,0x06,0xa0,0x53,0x7f,0xa5,0xde,0x27,0x76,0x2a,0x20,0x12,0x00,0x3a,0xf5,0x57,0xea,0x03,0xd6,0xe2,0x9d,0x0a,0x34,0x86,0xdd,0xb1,0xd4,0x29,0x80,0x4e,0xfd,0x95,0xda,0x6d,0x14,0x42,0x9f, -0x0a,0x84,0x3e,0x03,0xd0,0xa9,0xbf,0x52,0xdd,0x0a,0xfd,0x54,0x20,0xd4,0x00,0xd0,0xa9,0xbf,0x52,0x3d,0x0a,0xfd,0x54,0x20,0xec,0x53,0x00,0x9d,0xfa,0x2b,0xd5,0xbd,0xd0,0x4f,0x05,0x42,0x9b,0x01,0x38,0x16,0xa7,0x01,0x7f,0x08,0xab,0x3f,0xa5,0x0a,0x58,0x68,0xa7,0x02,0xa1,0x04,0x40,0x6e,0x81,0x8f,0x55,0xc0,0xfe,0x61,0xf4,0xa7, -0x54,0x81,0x7b,0x07,0xf8,0x50,0x18,0x0b,0x88,0x84,0x75,0x0a,0x70,0x09,0x3a,0xf8,0x95,0xea,0xad,0xfd,0xf1,0xc6,0x4c,0xe0,0x02,0x9f,0x01,0xe4,0x76,0xcf,0x79,0x0d,0x0d,0x00,0xa5,0xf2,0xf1,0x36,0x30,0x36,0xe8,0x59,0x40,0x18,0x33,0x80,0xcf,0xa3,0x83,0x5f,0xa9,0x7c,0x1d,0x00,0x5c,0x14,0x74,0x27,0x81,0xce,0x00,0x72,0x2b,0xeb, -0xae,0x02,0x0e,0x0c,0xb2,0x1f,0xa5,0x8a,0xd4,0x5b,0x78,0xb3,0x80,0x40,0x76,0x3b,0x82,0xe0,0x67,0x00,0x17,0xa2,0x83,0x5f,0xa9,0xbe,0x3a,0x10,0x98,0x19,0x64,0x07,0x81,0xcd,0x00,0x72,0x6b,0xb0,0xbb,0xe4,0xb7,0xa5,0x92,0x52,0xea,0x83,0x56,0x03,0x96,0xed,0xd2,0x16,0x44,0xe3,0x41,0xce,0x00,0x66,0xa2,0x83,0x5f,0x29,0xbf,0x6a, -0x81,0xcf,0x05,0xd5,0x78,0x20,0x33,0x80,0xdc,0xbb,0xff,0xab,0xc0,0xc1,0x41,0xb4,0xaf,0x54,0xcc,0xbc,0x0e,0x8c,0xb3,0x5d,0xda,0x4d,0x37,0x1c,0xd4,0x0c,0xe0,0x7c,0x74,0xf0,0x2b,0x65,0xca,0x18,0xbc,0x31,0x65,0x9c,0xf1,0x19,0x80,0x63,0x51,0x82,0xb7,0x1f,0xda,0x87,0x4c,0xb7,0xad,0x54,0x8c,0xad,0x02,0x0e,0x35,0x3d,0x0b,0x08, -0x62,0x0d,0xfe,0xf3,0xd0,0xc1,0xdf,0xa3,0x64,0x2a,0xcd,0x90,0xe9,0xa7,0x33,0xea,0xd3,0x97,0x52,0x7d,0xe4,0x47,0x00,0xc8,0x66,0xb3,0x40,0x16,0x32,0x19,0xef,0x9f,0x73,0x7f,0xb2,0xd9,0xcc,0xfb,0xff,0x4c,0x36,0x4b,0x36,0x93,0xf1,0xbe,0x2f,0x9b,0xf5,0xbe,0xaf,0xf3,0xf7,0x93,0xfb,0xff,0xdd,0xfc,0x7c,0xc7,0xf7,0x43,0x76,0xf7, -0xcf,0x7c,0xa0,0xbf,0x3d,0xfa,0xee,0xa2,0x2f,0xb2,0x59,0xb2,0x74,0xf5,0xb3,0xbd,0xab,0xb5,0xf3,0xcf,0xaf,0x7b,0xf4,0x3e,0x36,0x3e,0xa9,0x4f,0x86,0xf7,0xd2,0x58,0xbc,0x1d,0xb3,0xee,0x33,0xd9,0xa8,0xd1,0x19,0x80,0x63,0x91,0x04,0x56,0x02,0x96,0xc9,0x76,0x8b,0x59,0xbf,0x03,0xc7,0x32,0xf2,0x33,0x97,0x32,0xf2,0xac,0x8b,0x48, -0x0f,0x31,0xbd,0x0b,0x7a,0xb4,0x65,0xdb,0x5a,0x59,0xf1,0xc5,0x33,0xd8,0xb4,0x78,0x81,0x74,0x29,0x85,0xe2,0x55,0x60,0xbc,0xed,0x92,0x31,0xd5,0xa0,0xe9,0x00,0x38,0x07,0x78,0xc0,0x64,0x9b,0x71,0x91,0x4c,0xa5,0x19,0x72,0xe2,0x69,0x1c,0x70,0xf1,0x37,0x18,0x38,0xe5,0x18,0xe9,0x72,0x42,0x93,0x69,0xde,0xc5,0x8b,0x97,0x9e,0x42, -0xc3,0xb3,0x4f,0x4b,0x97,0x52,0x28,0xce,0xb5,0x5d,0x1e,0x34,0xd5,0x98,0xe9,0x8b,0x80,0xa1,0x3c,0xc0,0x50,0x8c,0x32,0xad,0x2d,0xd4,0x2f,0xfc,0x1d,0xcb,0xcf,0x3f,0x9e,0x55,0x37,0x7c,0x9d,0x4c,0xf3,0x2e,0xe9,0x92,0x42,0x91,0x2c,0x2b,0x67,0xe2,0xed,0x8f,0x33,0x60,0xf2,0xd1,0xd2,0xa5,0x14,0x8a,0x8b,0x4d,0x36,0x66,0x6c,0x06, -0xe0,0x58,0x0c,0xc3,0x5b,0xd1,0xa4,0xc4,0x54,0x9b,0x71,0xd6,0xef,0xe0,0x43,0x18,0x3f,0x67,0x2e,0x03,0x26,0x1d,0x25,0x5d,0x4a,0x28,0xda,0xb6,0x36,0xb2,0x7c,0xe6,0x89,0x6c,0x5f,0xf9,0x82,0x74,0x29,0x51,0xd7,0x0e,0x8c,0xb4,0x5d,0xea,0x4d,0x34,0x66,0x72,0x06,0xf0,0x69,0x74,0xf0,0x1b,0xd3,0xf4,0xc6,0x2b,0x3c,0x77,0xee,0xbf, -0xf1,0xfa,0x8f,0xbf,0x43,0xa6,0x35,0xf0,0xc7,0xc2,0xc5,0x95,0x0e,0x18,0xc4,0x94,0x5f,0xff,0x99,0xfe,0x1f,0x1a,0x2f,0x5d,0x4a,0xd4,0x95,0xe0,0x8d,0x35,0x23,0x4c,0x06,0xc0,0x39,0x06,0xdb,0x52,0x40,0xb6,0xbd,0x8d,0xb7,0x6e,0x9f,0xc3,0xb2,0xb3,0xa6,0xd2,0xb4,0xfa,0x55,0xe9,0x72,0x02,0x97,0xaa,0xae,0x61,0xca,0xdc,0xbf,0x50, -0x71,0xc0,0x18,0xe9,0x52,0xa2,0xce,0xd8,0x58,0x33,0x72,0x0a,0xe0,0x58,0x8c,0xc6,0x7b,0x7e,0x59,0x7c,0xaf,0xc1,0x62,0x55,0x36,0x7c,0x3f,0xea,0xe6,0x2d,0xa6,0x62,0x74,0xf1,0xdf,0x5d,0xbd,0x6b,0xed,0x5b,0x2c,0x3f,0xff,0xc3,0xec,0x5a,0xfb,0xb6,0x74,0x29,0x51,0x95,0x05,0xf6,0xb7,0x5d,0xd6,0xf8,0x6d,0xc8,0x54,0x00,0x5c,0x0d, -0xdc,0x64,0xa2,0xad,0x42,0x52,0x5a,0x99,0xa0,0xfa,0xb0,0x34,0xe5,0x43,0x4b,0x28,0xab,0x4e,0x92,0xae,0x4e,0x52,0x36,0x38,0x49,0x32,0x95,0xa0,0x79,0x73,0x86,0x96,0xcd,0x19,0x9a,0x1b,0xda,0x69,0xde,0x94,0xa1,0x71,0x65,0x2b,0xbb,0xea,0xfd,0xdd,0xc3,0x51,0x31,0xba,0x96,0xba,0x79,0x8b,0x29,0x1b,0xbe,0x9f,0xa1,0xdf,0x20,0xba, -0x9a,0xde,0x5a,0xc5,0xf2,0xf3,0x3e,0x4c,0xcb,0xc6,0x75,0xd2,0xa5,0x44,0xd5,0xd5,0xb6,0xcb,0x4f,0xfc,0x36,0x62,0x2a,0x00,0x96,0x01,0x47,0x98,0x68,0x2b,0xea,0xca,0x6b,0x4a,0xa8,0x99,0x96,0x66,0xe8,0xb4,0x32,0x06,0x8d,0x4f,0x93,0xc8,0xe3,0xaa,0xc7,0xf6,0xd5,0x6d,0xd4,0x3f,0xdb,0x4c,0xfd,0xb2,0x66,0xb6,0xbf,0xd9,0xe6,0xe5, -0x78,0x9e,0xfa,0xd5,0x8e,0xa3,0xee,0xfe,0x45,0xb1,0xb8,0x67,0x60,0xc7,0xaa,0x97,0x59,0xfe,0xb9,0x13,0x68,0x6d,0xd8,0x28,0x5d,0x4a,0x14,0x2d,0xb3,0x5d,0xa6,0xf9,0x6d,0xc4,0x77,0x00,0x38,0x16,0x63,0xf0,0x96,0xfc,0x2a,0x6a,0xfd,0x46,0x95,0x30,0xe6,0x82,0x4a,0x86,0x1e,0x55,0x66,0xa4,0xbd,0x6d,0xaf,0xb7,0xf1,0xda,0xbd,0xdb, -0x69,0x78,0x29,0xff,0x0b,0x7c,0x95,0xe3,0x26,0x52,0x77,0xdf,0xd3,0x94,0x0e,0xa8,0x36,0x52,0x4b,0x94,0x6d,0x7b,0x79,0x39,0xcf,0x5f,0x38,0x9d,0xb6,0x6d,0x5b,0xa4,0x4b,0x89,0xa2,0x31,0xb6,0xcb,0x1b,0x7e,0x1a,0x30,0x71,0x11,0xb0,0xa8,0x2f,0xfe,0xa5,0xab,0x93,0x8c,0xbb,0xac,0x8a,0xa3,0x6e,0x19,0x62,0x6c,0xf0,0x03,0x54,0x8d, -0x29,0x65,0xca,0xb5,0x83,0x98,0x7c,0xcd,0x20,0x2a,0x0f,0xca,0xef,0x8e,0xec,0xed,0xaf,0xae,0xe0,0x85,0x4b,0x4e,0x8e,0xc5,0xbd,0x02,0x55,0x13,0xea,0x98,0x74,0xc7,0x1f,0x29,0xe9,0x57,0x29,0x5d,0x4a,0x14,0xf9,0x1e,0x7b,0xbe,0x3f,0xb6,0xbb,0x70,0x08,0xbf,0x00,0x8a,0x72,0x3e,0x3a,0xfc,0xdf,0xca,0x99,0x72,0xed,0x20,0x06,0x8e, -0x4b,0x91,0x08,0xe8,0xf2,0x66,0xc5,0x88,0x12,0xf6,0xfb,0x58,0x05,0xc9,0x74,0x82,0xc6,0x7f,0xb5,0xf4,0xfa,0xb4,0xa0,0x79,0xfd,0x1a,0x48,0x24,0xa8,0x3e,0x7a,0x7a,0x30,0x85,0x45,0x48,0xf9,0xc8,0xfd,0x19,0x38,0xf9,0x68,0x36,0x2c,0x78,0x98,0x6c,0x5b,0x20,0xeb,0x62,0x14,0xaa,0x61,0xf7,0x6c,0xe2,0x36,0x3f,0x0d,0xf8,0x3a,0xac, -0x1d,0x8b,0x09,0xc0,0xbf,0xfc,0xb4,0x11,0x45,0x89,0x04,0xd4,0x9e,0xdb,0x9f,0x83,0xce,0xee,0x1f,0x6a,0xbf,0x9b,0x9e,0x6b,0xe1,0xe5,0x9f,0x6e,0xa1,0x6d,0x67,0xef,0x52,0x20,0x99,0x2e,0x63,0xda,0xe3,0x2f,0xd1,0xef,0xc0,0xb1,0x01,0x57,0x16,0x0d,0x9b,0xfe,0xfa,0x47,0x5e,0xba,0xfc,0xac,0x58,0xdc,0x17,0x91,0x87,0x09,0xb6,0xcb, -0xff,0xf5,0xf5,0x87,0xfd,0x9e,0x02,0x14,0xdd,0xf4,0xbf,0xa4,0x3c,0xc1,0x61,0xdf,0x1a,0x18,0xfa,0xe0,0x07,0x18,0x32,0x35,0xcd,0xd4,0x39,0xd5,0x54,0x0c,0xef,0xdd,0xc4,0x2c,0xd3,0xd2,0x8c,0x7b,0xdd,0x57,0x02,0xae,0x2a,0x3a,0x86,0x7c,0xe4,0x54,0xc6,0xff,0xf8,0x7e,0x12,0x25,0x41,0x3c,0xc4,0x5a,0xb0,0x7c,0x8d,0x41,0xbf,0x01, -0xf0,0x59,0x9f,0x3f,0x1f,0x29,0x89,0x12,0x98,0xf8,0x9d,0x81,0x0c,0x9d,0x66,0xee,0x5c,0x3f,0x5f,0xfd,0x47,0x97,0x52,0x77,0x7d,0x35,0x65,0x83,0x7b,0xf7,0x57,0xb3,0xf9,0x99,0x85,0x6c,0x58,0xf0,0x70,0xc0,0x55,0x45,0xc7,0xb0,0x19,0x9f,0xe2,0xd0,0x1b,0xee,0x22,0x91,0x94,0xda,0xd9,0x3e,0x72,0x7c,0x8d,0xc1,0x3e,0xbf,0x8a,0x8e, -0x45,0x1d,0xde,0x33,0xca,0x45,0xc3,0xba,0xa4,0x8a,0xea,0xc3,0xd2,0xd2,0x65,0x50,0x36,0x38,0xc9,0xe1,0xdf,0x1e,0x48,0x32,0xdd,0xbb,0x33,0xb4,0x55,0xb3,0xaf,0xa2,0xbd,0x69,0x7b,0xc0,0x55,0x45,0xc7,0x88,0x4f,0x7c,0x0e,0xeb,0x07,0x3f,0x27,0xb0,0x0b,0x33,0x85,0xc5,0xca,0x8d,0xc5,0x3e,0xe9,0xf3,0x45,0xc0,0x0b,0x87,0xd0,0x04, -0x9c,0x08,0x8c,0xee,0x6b,0x1b,0x51,0xb2,0xdf,0xc9,0x15,0xd4,0x7e,0x26,0xfc,0x69,0x7f,0x77,0xca,0x06,0x97,0x50,0x31,0xbc,0x84,0xfa,0x7f,0x34,0xef,0xf3,0x7b,0xdb,0x77,0x6c,0xa3,0x75,0xd3,0x06,0x4a,0xaa,0x06,0xd0,0xb2,0x61,0x2d,0xad,0x9b,0xd6,0xd3,0xda,0xb0,0x91,0xb6,0xad,0x0d,0xb4,0x6d,0xdf,0x4a,0x66,0xe7,0x0e,0x32,0xcd, -0xbb,0xc8,0xb6,0xb5,0x92,0xcd,0x64,0x48,0x24,0x13,0x05,0xff,0x0e,0x3a,0xe0,0xf0,0x23,0x28,0xe9,0x5f,0xc5,0xe6,0x25,0x7f,0x96,0x2e,0x45,0xda,0x52,0xe0,0xd6,0x7b,0x36,0xb1,0xef,0x03,0xa5,0x0b,0x7e,0x2f,0x02,0x0e,0x00,0xfe,0x04,0x1c,0xeb,0xa7,0x1d,0x69,0x03,0xac,0x14,0x53,0x67,0x55,0x93,0x88,0xe0,0x98,0x58,0x75,0xd7,0x76, -0xde,0x99,0xdf,0x64,0xbc,0xdd,0x44,0x32,0x49,0xa2,0x34,0x45,0x22,0x95,0x26,0x99,0x4a,0xbf,0xff,0x35,0x99,0x4a,0x93,0x48,0x7f,0xf0,0xbf,0x75,0xf7,0x3d,0x89,0xd2,0xd4,0xee,0x7f,0xcf,0x7d,0x4d,0x0d,0x1a,0xc2,0x7e,0xe7,0x5f,0x4e,0xa2,0x24,0x9c,0xe7,0xc2,0x56,0x7c,0xf1,0x74,0x36,0x3e,0x15,0xca,0x46,0xba,0x51,0xb4,0x04,0x38, -0xc5,0x76,0xd9,0xd6,0xd7,0x06,0x7c,0x5d,0x4d,0xb1,0x5d,0xb6,0x3a,0x16,0x33,0x80,0xf9,0xc0,0x87,0xfd,0xb4,0x25,0x26,0x01,0x63,0x2f,0xaa,0x8c,0xe4,0xe0,0x07,0xa8,0x3d,0xa7,0x3f,0xeb,0x16,0xed,0xa2,0x75,0x9b,0xb1,0x45,0x60,0x00,0xc8,0x66,0x32,0x64,0x5b,0x9a,0xa1,0xa5,0xd9,0xd8,0x22,0x73,0x65,0xc3,0x46,0x31,0xe9,0xf6,0xf9, -0xa1,0x0d,0xfe,0x77,0xef,0xbd,0x95,0x8d,0x4f,0xcf,0x0f,0xa5,0xaf,0x08,0xfa,0x2b,0x70,0x9a,0xed,0xe2,0xeb,0xdc,0xcf,0xf7,0x61,0x9f,0x2b,0xe0,0x14,0xe0,0x49,0xbf,0x6d,0x49,0x18,0x3a,0xad,0x8c,0x81,0xe3,0x52,0xd2,0x65,0x74,0xab,0xb4,0x5f,0x82,0x03,0xcf,0xee,0x27,0x5d,0xc6,0x3e,0xf5,0x1f,0x7b,0x18,0x53,0x1f,0x5a,0x4a,0xe5, -0xa1,0x93,0x43,0xe9,0xef,0xdd,0x7b,0x6f,0xc5,0x9d,0x75,0x65,0x6e,0x2d,0xc4,0xd8,0x71,0x80,0x53,0xfd,0x0e,0x7e,0x30,0xf4,0x38,0xb0,0xed,0xd2,0x04,0x9c,0x06,0x2c,0x34,0xd1,0x5e,0x58,0x12,0x25,0x30,0xe6,0x82,0xe8,0xdf,0x61,0x36,0xfa,0x94,0x0a,0xca,0x87,0x45,0x77,0xa9,0x85,0xea,0x63,0x6c,0xa6,0x3e,0xb8,0x84,0xf2,0x91,0xe1, -0xec,0x01,0x1b,0xf3,0xc1,0xff,0x04,0x70,0x7a,0x6e,0xcc,0xf9,0x66,0x6c,0xe2,0x6b,0xbb,0xec,0x04,0xce,0x00,0xfe,0x68,0xaa,0xcd,0xa0,0x0d,0x3f,0xbe,0x9c,0x7e,0xa3,0xa2,0x3b,0xb0,0x3a,0x24,0x4b,0x13,0x1c,0xf4,0xc9,0x68,0xce,0x02,0x46,0x9c,0x39,0x93,0xc9,0x77,0x2e,0xa0,0xb4,0x72,0x40,0x28,0xfd,0xc5,0x7c,0xf0,0xcf,0x07,0x3e, -0x91,0x1b,0x6b,0x46,0x18,0x3d,0xf3,0xb5,0x5d,0x9a,0x81,0xb3,0x80,0x82,0x58,0xeb,0x79,0xd8,0x31,0x72,0x9f,0xf7,0xe7,0x6b,0xe8,0xd1,0x65,0x79,0x3d,0x79,0x18,0xb8,0x44,0x82,0xda,0xcb,0x7f,0xc0,0xf8,0xff,0xba,0x3b,0xb4,0x1b,0x73,0x62,0x3e,0xf8,0x1f,0x05,0x3e,0x99,0x1b,0x63,0xc6,0x18,0xbf,0xf4,0x65,0xbb,0xb4,0x00,0x9f,0x02, -0x1e,0x31,0xdd,0xb6,0x49,0x25,0xe5,0x09,0x06,0x4f,0x92,0xff,0xcc,0xbf,0xb7,0x52,0x55,0xc9,0xc8,0x5c,0xab,0x48,0x94,0xa6,0x38,0x74,0xd6,0x9d,0xd4,0x5e,0xf1,0xa3,0xd0,0xfa,0x8c,0xf9,0xe0,0x7f,0x04,0xf8,0x74,0x6e,0x6c,0x19,0x15,0xc8,0xb5,0xef,0xdc,0x7e,0xe6,0xe7,0x00,0x0f,0x05,0xd1,0xbe,0x09,0x83,0x27,0xa7,0x49,0xa6,0x0a, -0xeb,0x46,0x12,0xc9,0x3b,0x14,0x3b,0x94,0x56,0x0e,0x60,0xd2,0xed,0xf3,0x19,0x79,0xf6,0xe7,0x43,0xeb,0x33,0xe6,0x83,0xff,0x37,0xc0,0x39,0xb9,0x31,0x65,0x5c,0x60,0x1f,0x7e,0xe5,0xb6,0x33,0x3e,0x0f,0xb8,0x3f,0xa8,0x3e,0xfc,0xa8,0x39,0x52,0x7e,0x30,0xe5,0xab,0x46,0x38,0x00,0xca,0x46,0x8c,0xa6,0x6e,0xde,0x62,0x06,0x1f,0x77, -0x52,0x68,0x7d,0xc6,0x7c,0xf0,0xdf,0x07,0x9c,0x1f,0xd4,0xd6,0xe0,0x10,0xec,0xf6,0xe0,0xe4,0xf6,0x31,0x9b,0x09,0xcc,0x0d,0xb2,0x9f,0xbe,0xa8,0xdc,0xbf,0xf0,0x1e,0x28,0xa9,0x18,0x5e,0xd2,0xeb,0xdb,0x83,0x4d,0xab,0x1c,0x37,0x91,0x23,0x1e,0x5a,0x4a,0xe5,0xb8,0x89,0xa1,0xf5,0x19,0xf3,0xc1,0xff,0x6b,0xe0,0xc2,0x20,0x76,0x04, -0xee,0x2c,0xf0,0xdb,0x5f,0x72,0xdb,0x18,0x5d,0x0c,0xdc,0x11,0x74,0x5f,0xf9,0xe8,0xed,0xc3,0x36,0x51,0x53,0x56,0x1d,0x7e,0xdd,0x83,0x8f,0x3b,0x89,0xa9,0x0f,0x3c,0x13,0xea,0x5a,0x84,0x31,0x1f,0xfc,0x77,0x00,0x97,0x98,0xdc,0x02,0xac,0x3b,0xa1,0x1c,0x4d,0xb6,0x4b,0x16,0xb8,0x0c,0xf8,0x45,0x18,0xfd,0xed,0x4b,0xa2,0x04,0x52, -0x83,0x0a,0x34,0x00,0x42,0x0e,0xae,0x91,0x67,0x7f,0xde,0x5b,0x91,0xa7,0x7f,0x55,0x68,0x7d,0xc6,0x7c,0xf0,0xff,0x02,0xb8,0x2c,0x37,0x66,0x02,0x17,0xda,0x3c,0x38,0xf7,0x0b,0x5d,0xee,0x58,0xb4,0x02,0x57,0x86,0xd5,0x6f,0x57,0xd2,0x03,0x93,0x05,0xfb,0x20,0x59,0x3a,0xac,0x19,0x40,0x22,0x41,0xed,0x57,0xaf,0xa5,0xf6,0xf2,0x1f, -0x84,0xd3,0x5f,0x4e,0xcc,0x07,0xff,0xcd,0xb6,0xcb,0x55,0x61,0x76,0x18,0xfa,0xdb,0xa0,0xed,0xf2,0x35,0x84,0x97,0x10,0x4f,0x55,0x15,0xe6,0xbb,0x3f,0x40,0x6a,0x40,0xf0,0xb5,0x27,0x53,0x69,0xc6,0xcf,0x99,0xab,0x83,0x3f,0x5c,0x37,0x86,0x3d,0xf8,0x41,0x20,0x00,0x00,0x6c,0x97,0x6f,0x02,0x37,0x48,0xf4,0x0d,0x18,0x7f,0xb0,0x26, -0x4c,0xad,0x5b,0x83,0xad,0xbd,0xb4,0x6a,0x20,0x93,0x7e,0xf5,0x27,0x46,0x9c,0x39,0x33,0xd0,0x7e,0xf6,0x14,0xf3,0xc1,0x3f,0xdb,0x76,0xf9,0x96,0x44,0xc7,0x62,0x6f,0x85,0xb6,0xcb,0x77,0x81,0xeb,0x24,0xfa,0x6e,0xd9,0x92,0xe9,0xd3,0x9a,0xfc,0x51,0xd0,0xd2,0x10,0x5c,0x00,0x94,0x8f,0xdc,0x9f,0xa9,0x0f,0x3c,0x13,0xfa,0x42,0xa3, -0x31,0x1f,0xfc,0x3f,0xb2,0x5d,0xbe,0x27,0xd5,0xb9,0xe8,0x5c,0xd8,0x76,0xf9,0x21,0x70,0x4d,0xd8,0xfd,0x66,0xdb,0x73,0x21,0x50,0x80,0x9a,0x03,0x0a,0x80,0xca,0x43,0x27,0x33,0xf5,0xa1,0xa5,0xf4,0x1f,0x7b,0x58,0x20,0xed,0x77,0x27,0xe6,0x83,0xff,0xfb,0xb6,0xcb,0xb5,0x92,0x05,0x88,0x9f,0x0c,0xdb,0x2e,0xd7,0x03,0xb7,0x84,0xdd, -0x6f,0xf3,0xe6,0xc2,0x0c,0x80,0x20,0x66,0x00,0x43,0x8e,0x3f,0x99,0xa9,0xf3,0x16,0x53,0x36,0x6c,0x94,0xf1,0xb6,0x7b,0x12,0xf3,0xc1,0x7f,0xb3,0xed,0x32,0x4b,0xba,0x08,0xf1,0x00,0xc8,0x79,0x27,0xec,0x0e,0x77,0xbc,0x5b,0x78,0xeb,0xcb,0xef,0xda,0xd0,0x4e,0x7b,0xb3,0xd9,0xc1,0x32,0xea,0xd3,0x97,0x32,0xf1,0x97,0x8f,0x87,0xbe, -0xf1,0x46,0xcc,0x07,0x3f,0x08,0x1c,0xf3,0x5d,0x89,0x4a,0x00,0x0c,0x0a,0xbb,0xc3,0x8d,0xcb,0x8c,0x3e,0x54,0x15,0x8a,0x8d,0xcb,0x0c,0x3e,0x0b,0x92,0x48,0x70,0xf0,0xd7,0xae,0xe7,0x90,0xeb,0xef,0x08,0x6d,0x05,0x9f,0x0e,0x3a,0xf8,0x01,0x81,0x63,0xbe,0x2b,0x51,0xb9,0x1f,0x36,0xf4,0x4d,0xee,0x36,0x3d,0xdf,0x42,0xa6,0x2d,0x4b, -0xb2,0xb4,0x70,0x6e,0x08,0xa8,0x7f,0xd6,0x4c,0x68,0x25,0x53,0x69,0x0e,0x99,0x7d,0x27,0x23,0xce,0xb8,0xc0,0x48,0x7b,0xf9,0xd0,0xc1,0xff,0xbe,0x48,0x6c,0xec,0x18,0x95,0x19,0x40,0xe8,0x2f,0x46,0xfb,0xce,0x2c,0x0d,0x2b,0x02,0x79,0xc0,0x2a,0x10,0x6d,0xdb,0xb3,0x34,0xae,0xf4,0x3f,0x03,0x28,0x1d,0x30,0x88,0x49,0x77,0x2e,0xd0, -0xc1,0x2f,0x4f,0x03,0xa0,0x13,0x91,0x17,0x63,0xc3,0xdf,0x0b,0x67,0x73,0xcd,0xfa,0x67,0x9b,0xc9,0xfa,0x7c,0x2c,0xa4,0x7c,0xd4,0x81,0x4c,0x7d,0x60,0x09,0xd5,0x47,0x9d,0x68,0xa6,0xa8,0x3c,0xe8,0xe0,0xdf,0x8b,0x06,0x40,0x27,0x22,0xe7,0x43,0xeb,0x17,0x35,0xb3,0x73,0x5d,0xa0,0x0f,0x5b,0x19,0x91,0x6d,0x87,0x37,0x7f,0xbb,0xc3, -0x57,0x1b,0x55,0x13,0xea,0x38,0xe2,0xe1,0xa5,0xf4,0xff,0xd0,0x78,0x43,0x55,0xf5,0x9e,0x0e,0xfe,0x2e,0x45,0xe2,0x1a,0x40,0x54,0x02,0x40,0x24,0x0d,0x33,0x6d,0x59,0x5e,0xbf,0x3f,0xfa,0x3b,0xea,0xac,0x59,0xb0,0x93,0x9d,0xeb,0xfb,0x1e,0x54,0x43,0x3e,0x72,0x2a,0x75,0xf7,0x2f,0x22,0x5d,0x33,0xc2,0x60,0x55,0xbd,0xa3,0x83,0xbf, -0x5b,0x3a,0x03,0xe8,0x44,0xec,0xc5,0xd8,0xf0,0xf7,0x66,0xb6,0xbe,0x16,0xdd,0x6b,0x01,0xed,0x3b,0xb3,0xac,0xf6,0xf1,0xee,0x3f,0xea,0xb3,0x5f,0x60,0xe2,0x6d,0x8f,0x51,0x52,0x11,0xfe,0xae,0x47,0x3a,0xf8,0x7b,0xa4,0x01,0xd0,0x89,0xdc,0x74,0x28,0x0b,0xaf,0xcd,0xdd,0x1e,0xd9,0x63,0x74,0xf5,0xc3,0x3b,0xfa,0x74,0xff,0x7f,0x22, -0x99,0x64,0xcc,0xd7,0x67,0x73,0xc8,0x75,0xbf,0x0c,0xfd,0x63,0x3e,0xd0,0xc1,0xdf,0x0b,0x1a,0x00,0x00,0x8e,0x45,0x05,0x20,0xba,0xd6,0x55,0xe3,0xca,0x56,0x5e,0x9b,0x1b,0xbd,0x53,0x81,0x0d,0x7f,0x6f,0xe6,0x9d,0xc7,0xf2,0x5f,0xfe,0x3d,0x99,0x2e,0x63,0xfc,0x8d,0xf7,0x71,0xe0,0x65,0xdf,0x09,0xa0,0xaa,0x7d,0xd3,0xc1,0xdf,0x2b, -0x65,0x8e,0x45,0xb9,0x74,0x11,0xe2,0x01,0x40,0x44,0x92,0xf0,0x9d,0xf9,0x4d,0xbc,0xf7,0x64,0x74,0x3e,0x15,0xd8,0xb6,0xba,0x8d,0x95,0xb7,0x6e,0xcd,0x7b,0x0c,0xa5,0x06,0x0e,0x66,0xf2,0x5d,0x0b,0x19,0x7e,0xda,0xb9,0xc1,0x14,0xb6,0x0f,0x3a,0xf8,0xf3,0x22,0x7e,0xec,0x6b,0x00,0x74,0xc8,0xc2,0xab,0xb7,0x6f,0xa3,0x71,0xa5,0xfc, -0xf5,0x80,0x96,0xc6,0x0c,0x2f,0xcd,0xd9,0x92,0xf7,0x6d,0xbf,0x15,0xa3,0x6b,0x99,0xfa,0xe0,0x12,0x06,0x1d,0x29,0xb3,0x4d,0xa3,0x0e,0xfe,0xbc,0x89,0x1f,0xfb,0x51,0x08,0x80,0xc8,0xc8,0xb4,0x66,0x59,0x31,0xbb,0x91,0x4d,0xcb,0x8d,0x2f,0xbf,0xde,0x6b,0x4d,0xef,0xb5,0xb3,0xfc,0x07,0x0d,0xec,0xda,0x98,0xdf,0x55,0xff,0xaa,0xc3, -0x8e,0x60,0xea,0x43,0x4b,0xe9,0x77,0xf0,0x21,0x01,0x55,0xd6,0x33,0x1d,0xfc,0x85,0x29,0x0a,0x01,0xd0,0x20,0x5d,0x40,0x67,0x6d,0x4d,0x59,0x56,0xdc,0xd0,0xc8,0xdb,0x7d,0x38,0xf7,0xf6,0x6b,0xf3,0x8b,0x2d,0xfc,0xf3,0x3f,0x36,0xd3,0xb4,0x26,0xbf,0xc1,0x5f,0x33,0xfd,0x74,0xea,0xee,0xfb,0x2b,0xe9,0x21,0xc3,0x02,0xaa,0xac,0x67, -0x3a,0xf8,0xfb,0x4c,0xfc,0xd8,0xd7,0x00,0xe8,0x42,0x36,0x03,0xaf,0xdd,0xbd,0x9d,0x95,0xff,0xb3,0x95,0x4c,0x6b,0x38,0x07,0xf5,0x3b,0xf3,0x9b,0x78,0x71,0x56,0x23,0x6d,0xdb,0xf3,0xeb,0x6f,0xbf,0xf3,0xbe,0xcc,0xe1,0x3f,0xff,0x3d,0x25,0x15,0x32,0x7b,0x07,0xae,0xfb,0xfd,0x3d,0x3a,0xf8,0xfb,0x4e,0xfc,0xd8,0x8f,0xc4,0x93,0x30, -0x8e,0xc5,0x2e,0x84,0x3f,0x09,0xe8,0x4e,0x79,0x4d,0x09,0xb5,0xe7,0xf4,0x67,0xe4,0x09,0xe5,0x81,0xbc,0x5a,0x8d,0x2f,0xb7,0xf2,0xda,0xbd,0xdb,0xd9,0xba,0x2a,0xbf,0x6b,0x0f,0x89,0x64,0x92,0x31,0x57,0xcf,0xe1,0x80,0x4b,0xbf,0x69,0xbe,0xa8,0x3c,0xb4,0x6c,0x5c,0xc7,0xf2,0xcf,0x9d,0x48,0xd3,0x1b,0xaf,0x88,0xd6,0x51,0x80,0x9a, -0x6d,0x57,0xfe,0x53,0x80,0xa8,0x04,0xc0,0x3a,0x60,0xb8,0x74,0x1d,0x3d,0xa9,0x3c,0xb0,0x94,0x31,0x17,0x54,0x32,0xa4,0xce,0xcc,0x7e,0x82,0x3b,0xde,0x6e,0xe3,0xb5,0x7b,0xb7,0xb3,0xe9,0xf9,0x96,0xbc,0x97,0x27,0x4b,0x96,0x95,0x33,0xfe,0xbf,0xee,0x66,0xd8,0x29,0x9f,0x31,0x52,0x8b,0x5f,0x1a,0x02,0x7d,0xb2,0xce,0x76,0x19,0x29, -0x5d,0x44,0x54,0x02,0x60,0x25,0x20,0x73,0xf5,0x2a,0x4f,0xfd,0x46,0x95,0x50,0x73,0x64,0x19,0x43,0xa7,0x95,0x79,0x9b,0x75,0xe6,0xf1,0x0a,0x36,0xad,0x69,0xa7,0xfe,0xd9,0x66,0xea,0x9f,0x6d,0x66,0xdb,0xaa,0xd6,0x3e,0xcd,0x9a,0x4b,0xab,0x06,0x32,0xf1,0xb6,0xc7,0xc4,0xae,0xf4,0x77,0x47,0x43,0x20,0x6f,0x2b,0x6d,0x97,0xf0,0x1f, -0xcc,0xd8,0x43,0x54,0x02,0xe0,0x6f,0xc0,0x31,0xd2,0x75,0xe4,0x2b,0x3d,0x28,0xc9,0xe0,0x89,0x69,0xca,0x6a,0x92,0x94,0x0d,0x2e,0xa1,0xac,0x3a,0x49,0xba,0x3a,0x49,0x32,0x95,0xa0,0x79,0x73,0x3b,0x2d,0x0d,0x19,0x9a,0x37,0x67,0x68,0x6e,0xc8,0xd0,0xf8,0x72,0x0b,0x4d,0x6b,0xfd,0x3d,0x78,0x94,0xaa,0xae,0x61,0xf2,0x9d,0x4f,0x50, -0x35,0xa1,0xce,0xd0,0x6f,0x60,0x96,0x86,0x40,0x5e,0xfe,0x66,0xbb,0x1c,0x27,0x5d,0x44,0x54,0x16,0x04,0x69,0x94,0x2e,0xa0,0x2f,0x5a,0x1a,0x33,0xac,0x5b,0x14,0xce,0xcd,0x43,0x65,0xc3,0x46,0x31,0xf9,0xd7,0x7f,0x16,0x79,0x9a,0xaf,0xb7,0xd2,0x35,0x23,0xa8,0xbb,0xf7,0x29,0x0d,0x81,0xde,0x89,0xc4,0x31,0x1f,0x85,0x4f,0x01,0x20, -0x02,0x57,0x43,0xa3,0xac,0x62,0x74,0x2d,0x75,0xf3,0x16,0x47,0x7a,0xf0,0x77,0xe8,0x08,0x01,0xa9,0xfb,0x11,0x0a,0x48,0x24,0x8e,0x79,0x0d,0x80,0x28,0x4b,0x24,0x18,0x7e,0xea,0x67,0x39,0xe2,0x91,0x65,0x54,0xec,0x7f,0xb0,0x74,0x35,0xbd,0xa6,0x21,0xd0,0x2b,0x91,0x38,0xe6,0x35,0x00,0x22,0x2a,0x35,0x78,0x28,0x87,0xdd,0xf2,0x10, -0x13,0x7e,0xfa,0x20,0xa9,0x41,0x43,0xa4,0xcb,0xc9,0x9b,0x86,0xc0,0x3e,0x45,0xe2,0x98,0x8f,0x4a,0x00,0x44,0xe2,0x7c,0x28,0x2a,0x86,0xce,0x38,0x9b,0xa3,0xe7,0xbf,0xcc,0xb0,0x19,0x9f,0x92,0x2e,0xc5,0x17,0x0d,0x81,0x1e,0x45,0xe2,0x98,0x8f,0x4a,0x00,0xec,0x2f,0x5d,0x80,0xb4,0x44,0x32,0x49,0xcd,0xf4,0x33,0xa8,0x9b,0xb7,0x98, -0xc3,0x7f,0xf6,0x5b,0x52,0x83,0x87,0x4a,0x97,0x64,0x84,0x86,0x40,0xb7,0x22,0x71,0xcc,0x8b,0x7f,0x0c,0xe8,0x58,0x5c,0x83,0xd0,0x1e,0x81,0x51,0x90,0x2c,0x2b,0x67,0xc4,0x99,0x33,0x39,0xe0,0xe2,0xab,0xe9,0x77,0x90,0x25,0x5d,0x4e,0x60,0xf4,0x23,0xc2,0x2e,0x5d,0x93,0xdb,0x19,0x4b,0x8c,0x68,0x00,0x38,0x16,0xd7,0x21,0xb0,0x37, -0xa0,0xb4,0x54,0x75,0x0d,0xd5,0x47,0x9d,0xc8,0xe0,0x63,0x3f,0x4a,0xcd,0x47,0xcf,0x14,0x7b,0x88,0x27,0x6c,0x1a,0x02,0x5d,0xba,0x2e,0xb7,0x47,0xa6,0x08,0xb1,0x00,0x70,0x2c,0x66,0x03,0x32,0x4b,0xd6,0x98,0x92,0x48,0xf4,0xfa,0x21,0x98,0x44,0x49,0x09,0x55,0xe3,0xeb,0xa8,0x3e,0xf6,0xa3,0x54,0x1d,0x3a,0xd9,0xfb,0xd9,0x8e,0x36, -0xf6,0xfc,0xde,0xae,0xfe,0x5a,0xba,0xf8,0x3e,0x12,0x09,0x12,0x25,0x25,0x24,0x52,0x69,0x92,0xa5,0x29,0xef,0x6b,0x2a,0x9d,0xfb,0xba,0xc7,0xbf,0xef,0xf1,0xff,0x25,0x96,0x09,0x03,0x0d,0x81,0x6e,0xcc,0x96,0xda,0x21,0x58,0x24,0x00,0x1c,0x8b,0x9b,0x80,0xab,0x25,0xfa,0x56,0x9e,0x44,0x32,0x49,0xa2,0x53,0x28,0x54,0x1f,0x3d,0x9d, -0x09,0x3f,0x99,0x47,0xa2,0x24,0xf8,0x7b,0xc3,0x34,0x04,0xba,0x74,0x93,0xed,0x12,0xfa,0x93,0x5d,0xa1,0x07,0x80,0x63,0x71,0x0b,0x70,0x45,0xd8,0xfd,0xaa,0x7d,0xab,0xb1,0x3f,0xc1,0xe1,0xb7,0xfe,0x56,0x43,0x40,0xce,0x2d,0xb6,0xcb,0xd7,0xc2,0xec,0x30,0xb4,0x00,0x70,0x2c,0x12,0xc0,0xcf,0x81,0x2f,0x85,0xd5,0xa7,0xca,0x9f,0x86, -0x80,0xb8,0x5f,0x00,0x5f,0xb1,0xdd,0x7c,0x9f,0x11,0xed,0x9b,0x50,0x02,0xc0,0xb1,0x48,0x02,0xbf,0x04,0x2e,0x0d,0xa3,0x3f,0xe5,0x8f,0x86,0x80,0xb8,0x3b,0x80,0xcb,0xc2,0x08,0x81,0xc0,0x03,0x20,0x37,0xf8,0xef,0x02,0x2e,0x0c,0xba,0x2f,0x65,0x8e,0x86,0x80,0xb8,0xb9,0xc0,0x25,0xb6,0x4b,0xfe,0x9b,0x42,0xe4,0x21,0xd0,0x00,0x70, -0x2c,0x4a,0x80,0xbb,0x81,0xf3,0x83,0xec,0x47,0x05,0x43,0x43,0x40,0xdc,0xfd,0xc0,0x85,0xb6,0x4b,0x60,0x1b,0x58,0x06,0x16,0x00,0x8e,0x45,0x29,0xde,0x2f,0x10,0x8d,0x65,0x6b,0x54,0x9f,0x68,0x08,0x88,0xfb,0x0d,0x70,0x81,0xed,0xd2,0x16,0x44,0xe3,0x81,0x04,0x80,0x63,0x91,0x02,0x1e,0x04,0x3e,0x19,0x44,0xfb,0x2a,0x5c,0x1a,0x02, -0xe2,0x1e,0x01,0xce,0xb5,0x5d,0x8c,0x6f,0x5a,0x61,0x3c,0x00,0x1c,0x8b,0x34,0xf0,0x30,0x70,0x86,0xe9,0xb6,0x95,0x1c,0x0d,0x01,0x71,0x8f,0x02,0x9f,0xb1,0x5d,0x8c,0x6e,0x5a,0x61,0x34,0x00,0x1c,0x8b,0x32,0xe0,0x77,0xc0,0xa9,0x26,0xdb,0x55,0xd1,0xa0,0x21,0x20,0x6e,0x3e,0x70,0xb6,0xed,0xd2,0x6c,0xaa,0x41,0x63,0x01,0x90,0xdb, -0xe4,0xf3,0xf7,0xc0,0xc7,0x4c,0xb5,0xa9,0xa2,0x47,0x43,0x40,0xdc,0x42,0xe0,0x4c,0xdb,0x65,0xa7,0x89,0xc6,0x8c,0x04,0x80,0x63,0xd1,0x0f,0xf8,0x03,0x30,0xdd,0x44,0x7b,0x2a,0xda,0x34,0x04,0xc4,0x3d,0x09,0x9c,0x6e,0xbb,0xf8,0xde,0xbe,0xca,0x77,0x00,0x38,0x16,0x95,0x78,0x53,0x93,0x68,0xad,0x53,0xad,0x02,0xa5,0x21,0x20,0x6e, -0x11,0xf0,0x71,0xdb,0xc5,0xd7,0xbe,0xf6,0xbe,0x02,0xc0,0xb1,0x18,0x00,0xfc,0x09,0x38,0xd6,0x4f,0x3b,0xaa,0x30,0x69,0x08,0x88,0x5b,0x02,0x9c,0x62,0xbb,0x6c,0xeb,0x6b,0x03,0x7d,0x0e,0x00,0xc7,0x62,0x20,0xf0,0x04,0x70,0x54,0x5f,0xdb,0x50,0x85,0x4f,0x43,0x40,0xdc,0x3f,0x80,0x19,0xb6,0xcb,0x96,0xbe,0xfc,0xb0,0x9f,0x25,0xc1, -0xc6,0xa0,0x83,0x3f,0xf6,0x36,0x3a,0x8f,0xf2,0xd2,0x57,0x3f,0x45,0xb6,0x3d,0x90,0xfb,0x54,0x3e,0x40,0x97,0x17,0xeb,0xd2,0x51,0x78,0x63,0xb1,0x4f,0xfc,0x9e,0x02,0xb8,0xc0,0x58,0x3f,0x6d,0xa8,0xe2,0xa0,0x33,0x01,0x31,0xae,0xed,0x32,0xae,0xaf,0x3f,0xec,0x77,0x51,0xd0,0xdf,0xf8,0xfc,0x79,0x55,0x24,0x74,0x26,0x20,0xc6,0xd7, -0x18,0xf4,0x1b,0x00,0x0f,0xf8,0xfc,0x79,0x55,0x44,0x34,0x04,0x44,0xf8,0x1a,0x83,0xbe,0x02,0xc0,0x76,0xf9,0x3f,0xe0,0x5f,0x7e,0xda,0x50,0xc5,0x25,0xec,0x10,0x18,0x79,0x56,0xac,0x9f,0x32,0x7f,0xc9,0x76,0x59,0xe9,0xa7,0x01,0x13,0xfb,0x02,0x3c,0x68,0xa0,0x0d,0x55,0x44,0xc2,0x0c,0x81,0x4c,0xab,0xd1,0x5b,0xe3,0x0b,0x8d,0xef, -0xb1,0xa7,0x01,0xa0,0x02,0x11,0x56,0x08,0x64,0x35,0x00,0x7c,0xf1,0x1d,0x00,0xb6,0xcb,0xeb,0xc0,0x3f,0xfd,0xb6,0xa3,0x8a,0x4f,0x18,0x21,0x10,0xe3,0x19,0xc0,0x32,0xdb,0xe5,0x0d,0xbf,0x8d,0x98,0xda,0x1a,0x4c,0x67,0x01,0xaa,0x4b,0x41,0x87,0x40,0xb6,0xd5,0xf8,0x23,0xf2,0x85,0xc2,0xc8,0x98,0x33,0x15,0x00,0xbf,0x81,0x70,0x56, -0x31,0x55,0x85,0x27,0xc8,0x10,0x88,0xe9,0x0c,0x20,0x8b,0xa1,0x8f,0xe0,0x8d,0x04,0x80,0xed,0xf2,0x2e,0xde,0x7d,0xc9,0x4a,0x75,0x29,0xa8,0x10,0x88,0xe9,0x35,0x80,0x67,0x6c,0x97,0x35,0x26,0x1a,0x32,0xb9,0x3b,0xb0,0x9e,0x06,0xa8,0x1e,0x05,0x11,0x02,0x31,0x9d,0x01,0x18,0x1b,0x6b,0x26,0x03,0xe0,0x61,0x08,0x6e,0xf5,0x52,0x55, -0x1c,0x4c,0x87,0x40,0xb6,0x2d,0x76,0xd7,0x00,0xda,0xf1,0xc6,0x9a,0x11,0xc6,0x02,0xc0,0x76,0xd9,0x00,0x3c,0x65,0xaa,0x3d,0x55,0xbc,0x4c,0x86,0x40,0x0c,0x67,0x00,0x4f,0xda,0x2e,0xf5,0xa6,0x1a,0x33,0x39,0x03,0x00,0xb8,0xd3,0x70,0x7b,0xaa,0x48,0x99,0x0a,0x81,0x18,0x5e,0x03,0xb8,0xcb,0x64,0x63,0xa6,0x03,0xe0,0x21,0xe0,0x55, -0xc3,0x6d,0xaa,0x22,0x65,0x22,0x04,0x32,0x2d,0xb1,0x0a,0x80,0x57,0xf1,0xc6,0x98,0x31,0x46,0x03,0x20,0xb7,0x8d,0xd1,0x2c,0x93,0x6d,0xaa,0xe2,0xe6,0x37,0x04,0x62,0x76,0x0d,0xe0,0x7a,0xd3,0x5b,0x85,0x99,0x9e,0x01,0x00,0xcc,0x03,0x56,0x05,0xd0,0xae,0x2a,0x52,0x7e,0x42,0x20,0x46,0xa7,0x00,0xab,0x08,0xe0,0xe9,0x5b,0xe3,0x01, -0x90,0xdb,0xc7,0x4c,0x67,0x01,0x2a,0x2f,0x7d,0x0d,0x81,0x18,0x5d,0x04,0xbc,0x3e,0x88,0x3d,0x02,0x83,0x98,0x01,0x80,0xb7,0x27,0xe0,0xeb,0x01,0xb5,0xad,0x8a,0x54,0x5f,0x42,0x20,0x26,0x01,0xf0,0x3a,0xde,0x98,0x32,0x2e,0x90,0x00,0xc8,0x6d,0x64,0x38,0x3b,0x88,0xb6,0x55,0x71,0xcb,0x37,0x04,0x62,0x72,0x0a,0x30,0x2b,0xa8,0x1d, -0x82,0x83,0x9a,0x01,0x00,0xdc,0x03,0xac,0x0e,0xb0,0x7d,0x55,0xa4,0xf2,0x09,0x81,0x18,0x3c,0x0c,0xf4,0x06,0x70,0x6f,0x50,0x8d,0x07,0x16,0x00,0x3a,0x0b,0x50,0x7e,0xf4,0x36,0x04,0x62,0x70,0x0a,0x30,0x3b,0xa8,0xad,0xc1,0x21,0xd8,0x19,0x00,0xc0,0xdd,0xc0,0x5b,0x01,0xf7,0xa1,0x8a,0x54,0x6f,0x42,0xa0,0xc8,0x03,0xe0,0x4d,0xbc, -0x99,0x74,0x60,0x02,0x0d,0x80,0xdc,0x7e,0xe6,0x37,0x04,0xd9,0x87,0x2a,0x6e,0xfb,0x0a,0x81,0x22,0xbf,0x06,0x70,0x43,0x6e,0x0c,0x05,0x26,0xe8,0x19,0x00,0xc0,0xaf,0x81,0x77,0x42,0xe8,0x47,0x15,0xa9,0x9e,0x42,0xa0,0x88,0x6f,0x04,0x7a,0x1b,0x6f,0xec,0x04,0x2a,0xf0,0x00,0xb0,0x5d,0x5a,0x80,0x39,0x41,0xf7,0xa3,0x8a,0x5b,0x77, -0x21,0x50,0xc4,0xa7,0x00,0x73,0x82,0x7e,0xf7,0x87,0x70,0x66,0x00,0xe0,0x3d,0x24,0xa4,0xb3,0x00,0xe5,0x4b,0x57,0x21,0x50,0xa4,0x33,0x80,0x77,0x08,0xe9,0xc1,0xba,0x50,0x02,0xc0,0x76,0x69,0x06,0xbe,0x1c,0x46,0x5f,0xaa,0xb8,0x75,0x0e,0x81,0x6c,0x7b,0x3b,0xd9,0xf6,0xa2,0x5c,0x82,0xe2,0x4b,0xb9,0x99,0x73,0xe0,0xc2,0x9a,0x01, -0x60,0xbb,0x3c,0x4e,0x80,0x9f,0x67,0xaa,0xf8,0xe8,0x08,0x81,0xf6,0x9d,0x3b,0xa4,0x4b,0x09,0xc2,0x3d,0xb6,0xcb,0xfc,0xb0,0x3a,0xf3,0xb5,0x39,0x68,0xbe,0x1c,0x8b,0x6a,0xe0,0x65,0x60,0x64,0x98,0xfd,0xaa,0xe2,0x34,0xf8,0xb8,0x93,0xd8,0xbc,0xe4,0xcf,0xd2,0x65,0x98,0xb4,0x16,0x98,0x60,0xbb,0x34,0x86,0xd5,0x61,0xa8,0x01,0x00, -0xe0,0x58,0x9c,0x06,0xfc,0x21,0xec,0x7e,0x95,0x2a,0x00,0xa7,0xe7,0x66,0xca,0xa1,0x09,0xed,0x14,0xa0,0x83,0x9e,0x0a,0x28,0xd5,0xa5,0x7b,0xc2,0x1e,0xfc,0x20,0x10,0x00,0x39,0x57,0x02,0xef,0x09,0xf5,0xad,0x54,0xd4,0xac,0xc5,0x1b,0x13,0xa1,0x13,0x09,0x00,0xdb,0xa5,0x01,0xf8,0x82,0x44,0xdf,0x4a,0x45,0xd0,0x65,0x61,0x9e,0xf7, -0x77,0x26,0x35,0x03,0xd0,0x53,0x01,0xa5,0x3c,0x22,0x53,0xff,0x0e,0x62,0x01,0x90,0xa3,0xa7,0x02,0x2a,0xce,0xc4,0xa6,0xfe,0x1d,0x44,0x03,0x20,0x77,0x2a,0x70,0x99,0x64,0x0d,0x4a,0x09,0x12,0x9b,0xfa,0x77,0x90,0x9e,0x01,0x60,0xbb,0xfc,0x01,0xb8,0x4f,0xba,0x0e,0xa5,0x42,0x76,0xaf,0xe4,0xd4,0xbf,0x83,0x78,0x00,0xe4,0x5c,0x81, -0x9e,0x0a,0xa8,0xf8,0x78,0x0f,0xe1,0xa9,0x7f,0x87,0x48,0x04,0x40,0xee,0x54,0x60,0x26,0x04,0xb7,0xf2,0x89,0x52,0x11,0xd1,0x06,0xcc,0xcc,0x1d,0xf3,0xe2,0x22,0x11,0x00,0x00,0xb6,0xcb,0x5f,0x80,0x2f,0x49,0xd7,0xa1,0x54,0xc0,0xbe,0x98,0x3b,0xd6,0x23,0x21,0x32,0x01,0x00,0x60,0xbb,0xfc,0x0a,0x5d,0x47,0x50,0x15,0xaf,0x59,0xb6, -0x1b,0xad,0xfd,0x33,0x23,0x15,0x00,0x39,0xdf,0xc7,0xdb,0x5d,0x48,0xa9,0x62,0x72,0xbf,0xed,0xf2,0x7d,0xe9,0x22,0xf6,0x14,0xb9,0x00,0xb0,0x5d,0xb2,0xc0,0xc5,0xc0,0x22,0xa1,0x12,0xb6,0x00,0xbf,0x03,0x5e,0x10,0xea,0x5f,0x99,0xf7,0x02,0xde,0xdf,0xe9,0x16,0xa1,0xfe,0xff,0x8a,0x77,0x4c,0x47,0x4e,0xe4,0x02,0x00,0xde,0x5f,0x40, -0xe4,0x4c,0xe0,0x95,0x10,0xba,0xcb,0x02,0xff,0xc4,0xdb,0xce,0xec,0x78,0xa0,0xc6,0x76,0x39,0x1b,0x98,0x06,0x5c,0x0b,0xc1,0x2f,0xcb,0xa4,0x02,0xd3,0x0a,0xfc,0x10,0x38,0x32,0xf7,0x77,0x5a,0x83,0xf7,0x77,0x3c,0x0b,0xef,0xef,0x3c,0x1b,0x42,0x0d,0xaf,0x00,0x67,0x85,0xb5,0xc0,0x47,0xbe,0x42,0x7f,0x1c,0x38,0x1f,0x8e,0x45,0x2d, -0xb0,0x14,0x18,0x66,0xb8,0xe9,0xf5,0xc0,0x13,0xb9,0x3f,0x0b,0x6d,0x97,0x8d,0x3d,0xd4,0x30,0x19,0x98,0x0b,0x4c,0x32,0x5c,0x83,0x0a,0xd6,0x0b,0xc0,0x45,0xb6,0xcb,0x8b,0xdd,0x7d,0x83,0x63,0x31,0x14,0x38,0x09,0x38,0x19,0xf8,0x18,0x30,0xdc,0x70,0x0d,0xeb,0x81,0xa3,0x6d,0x97,0x37,0x0d,0xb7,0x6b,0x4c,0xa4,0x03,0x00,0xc0,0xb1, -0x98,0x06,0x3c,0x05,0xf4,0xf3,0xd1,0x4c,0x2b,0xb0,0x04,0x6f,0xc0,0x2f,0x00,0x5e,0xcc,0x9d,0x6a,0xf4,0xb6,0x86,0x14,0xf0,0x3d,0xe0,0xbb,0x40,0xca,0x47,0x1d,0x2a,0x78,0xad,0x78,0xef,0xf0,0xb3,0xf3,0x59,0x54,0xd3,0xb1,0x48,0x00,0x93,0x81,0x19,0x78,0x81,0x70,0x2c,0xfe,0xfe,0xae,0x9b,0x80,0x13,0x6c,0x97,0x65,0x3e,0xda,0x08, -0x5c,0xe4,0x03,0x00,0xc0,0xb1,0xf8,0x04,0xde,0x39,0x5c,0x3e,0xa7,0x2c,0x6f,0xb0,0x7b,0xc0,0x3f,0x65,0xbb,0x6c,0x33,0x50,0xc7,0x64,0xbc,0xcd,0x4e,0x26,0xfa,0x6d,0x4b,0x05,0xe2,0x45,0xbc,0x77,0x7d,0xdf,0xd7,0x6f,0x1c,0x8b,0x2a,0x60,0x3a,0x5e,0x20,0xcc,0x00,0x0e,0xce,0xe3,0xc7,0x33,0x78,0xd3,0xfe,0xc7,0xfc,0xd6,0x11,0xb4, -0x82,0x08,0x00,0x00,0xc7,0xe2,0x4a,0xe0,0xe6,0x1e,0xbe,0x65,0x07,0xf0,0x34,0xde,0x80,0x7f,0xc2,0x76,0x59,0x15,0x50,0x1d,0x29,0xbc,0x4f,0x2a,0xbe,0x0b,0x94,0x06,0xd1,0x87,0xca,0x5b,0xc7,0x36,0x74,0xd7,0x07,0xb5,0x94,0xb6,0x63,0x31,0x96,0xdd,0xb3,0x83,0x13,0x80,0xfe,0x3d,0x7c,0xfb,0x15,0xb6,0xcb,0xad,0x41,0xd4,0x61,0x5a, -0xc1,0x04,0x00,0x80,0x63,0x71,0x33,0x1f,0xbc,0x85,0xf2,0x25,0x72,0x03,0x1e,0x58,0x1c,0xe6,0x85,0x16,0xc7,0xa2,0x0e,0xef,0xda,0xc0,0xe1,0x61,0xf5,0xa9,0xba,0xb4,0x02,0xef,0x5d,0xff,0xf9,0xb0,0x3a,0x74,0x2c,0xd2,0x78,0x17,0x13,0x3b,0x02,0xa1,0xf3,0x31,0x70,0xb3,0xed,0x72,0x55,0x58,0xb5,0xf8,0x55,0x68,0x01,0x90,0xc4,0xbb, -0x32,0xbf,0x1a,0xef,0x5d,0x7e,0xad,0x70,0x3d,0x69,0xe0,0x9b,0xc0,0xd5,0x40,0xb5,0x64,0x2d,0x31,0xd4,0x00,0xdc,0x04,0xdc,0x18,0xc6,0x06,0x1a,0x3d,0x71,0x2c,0x46,0xe1,0x85,0x41,0x2d,0x70,0xad,0xed,0x92,0x91,0xac,0x27,0x1f,0x05,0x15,0x00,0x51,0xe5,0x58,0x0c,0x00,0xbe,0x0a,0x5c,0x05,0x0c,0x11,0x2e,0xa7,0xd8,0x6d,0x02,0x7e, -0x0a,0xdc,0x6a,0xbb,0x6c,0x95,0x2e,0xa6,0xd0,0x69,0x00,0x18,0xe4,0x58,0x54,0x02,0x97,0xe3,0xcd,0x08,0x86,0x0a,0x97,0x53,0x6c,0xea,0x81,0x1f,0x03,0x3f,0xb7,0x5d,0xb6,0x4b,0x17,0x53,0x2c,0x34,0x00,0x02,0xe0,0x58,0xf4,0xc7,0x7b,0xb0,0xe9,0x1b,0x98,0xff,0x6c,0x39,0x6e,0xd6,0x03,0x37,0x02,0xb7,0xd9,0x2e,0x4d,0xd2,0xc5,0x14, -0x1b,0x0d,0x80,0x00,0x39,0x16,0x15,0x78,0x2b,0x1e,0x7d,0x0b,0xdd,0x0c,0x25,0x5f,0xef,0x01,0xff,0x0d,0xfc,0xd2,0x76,0xd9,0x29,0x5d,0x4c,0xb1,0xd2,0x00,0x08,0x81,0x63,0x51,0x0e,0xfc,0x3b,0xf0,0x6d,0x60,0x3f,0xe1,0x72,0xa2,0x6e,0x0d,0xde,0x6e,0xd2,0xbf,0xb2,0x5d,0x76,0x49,0x17,0x53,0xec,0x34,0x00,0x42,0xe4,0x58,0x7c,0x1c, -0xe4,0x97,0x81,0x8a,0xb8,0x8f,0xdb,0x2e,0x7f,0x94,0x2e,0x22,0x2e,0x22,0xf9,0x30,0x50,0x11,0x5b,0x84,0xae,0x7a,0xd4,0x93,0x36,0x60,0xb1,0x74,0x11,0x71,0xa2,0x01,0x10,0xa2,0xdc,0xed,0xc8,0xcf,0x49,0xd7,0x11,0x61,0xff,0x34,0x71,0xcb,0xb6,0xea,0x3d,0x0d,0x80,0xf0,0x3d,0x29,0x5d,0x40,0x84,0xe9,0x6b,0x13,0x32,0x0d,0x80,0xf0, -0xe9,0x41,0xde,0x3d,0x7d,0x6d,0x42,0xa6,0x01,0x10,0xbe,0x25,0x10,0xcd,0xc5,0x21,0x84,0x35,0x03,0x7f,0x93,0x2e,0x22,0x6e,0x34,0x00,0x42,0x96,0xfb,0x4c,0x7b,0xa9,0x74,0x1d,0x11,0xb4,0x54,0x3f,0xef,0x0f,0x9f,0x06,0x80,0x0c,0x9d,0xea,0xee,0x4d,0x5f,0x13,0x01,0x1a,0x00,0x32,0xf4,0x60,0xdf,0x9b,0xbe,0x26,0x02,0x34,0x00,0x64, -0xfc,0x03,0xf4,0xbe,0xf6,0x4e,0x9a,0xf0,0x5e,0x13,0x15,0x32,0x0d,0x00,0x01,0xb9,0x85,0x4b,0x96,0x48,0xd7,0x11,0x21,0xcf,0x48,0x3f,0xd3,0x1f,0x57,0x1a,0x00,0x72,0x74,0xca,0xbb,0x9b,0xbe,0x16,0x42,0x34,0x00,0xe4,0xe8,0x41,0xbf,0x9b,0xbe,0x16,0x42,0x34,0x00,0xe4,0x3c,0x07,0xba,0xa2,0x0d,0xde,0x6e,0x3d,0xcb,0xa5,0x8b,0x88, -0x2b,0x0d,0x00,0x21,0xb6,0x4b,0x3b,0x72,0xdb,0x9f,0x45,0xc9,0xa2,0xdc,0x6b,0xa1,0x04,0x68,0x00,0xc8,0xd2,0xa9,0xaf,0xbe,0x06,0xa2,0x34,0x00,0x64,0xe9,0xc1,0xaf,0xaf,0x81,0x28,0x0d,0x00,0x59,0x2b,0xf0,0x56,0xb9,0x8d,0xab,0x8d,0x78,0x7b,0x3b,0x28,0x21,0x1a,0x00,0x82,0x72,0xfb,0x13,0x3e,0x2d,0x5d,0x87,0xa0,0xa7,0xf3,0xd9, -0xa3,0x51,0x99,0xa7,0x01,0x20,0x2f,0xce,0x53,0xe0,0x38,0xff,0xee,0x91,0xa0,0x01,0x20,0x2f,0xce,0x83,0x20,0xce,0xbf,0x7b,0x24,0xe8,0xa2,0xa0,0x11,0xe0,0x58,0xac,0x25,0x7e,0xcb,0x86,0xaf,0xb5,0x5d,0x5d,0x21,0x59,0x9a,0xce,0x00,0xa2,0xe1,0x29,0xe9,0x02,0x04,0xc4,0xf1,0x77,0x8e,0x1c,0x0d,0x80,0x68,0x88,0xe3,0x54,0x38,0x8e, -0xbf,0x73,0xe4,0x68,0x00,0x44,0x43,0x1c,0x07,0x83,0x23,0x5d,0x80,0xd2,0x00,0x88,0x04,0xdb,0x65,0x35,0xf0,0x28,0xde,0x7d,0xf1,0xc5,0xae,0x11,0x78,0xd4,0x76,0x79,0x4b,0xba,0x10,0xa5,0x17,0x01,0x23,0xc5,0xb1,0x48,0xe0,0xed,0x31,0x5f,0xb7,0xc7,0x9f,0x42,0xdd,0x69,0x78,0x03,0xf0,0x3c,0xde,0xc3,0x3e,0xcb,0x81,0xe5,0xb6,0xcb, -0x1b,0xb2,0x25,0xa9,0xce,0x34,0x00,0x0a,0x80,0x63,0x31,0x1a,0x2f,0x08,0xa6,0xb0,0x3b,0x14,0x46,0x8b,0x16,0xb5,0xb7,0x77,0xe9,0x34,0xd0,0xf1,0x06,0xfb,0x1a,0xd9,0x92,0xd4,0xbe,0x68,0x00,0x14,0x28,0xc7,0x62,0x28,0xbb,0xc3,0xa0,0x16,0x18,0x94,0xfb,0x53,0xdd,0xe9,0xeb,0x40,0xa0,0xd4,0x67,0x57,0x6d,0x78,0xa7,0x26,0x0d,0x78, -0xd3,0xf7,0x8e,0xaf,0x8d,0xc0,0x6a,0x76,0x0f,0xf6,0x7a,0x9f,0xfd,0x28,0x01,0x1a,0x00,0x45,0xce,0xb1,0xa8,0xe4,0x83,0xa1,0xb0,0x67,0x50,0xc0,0xde,0x03,0xfb,0xfd,0xc1,0x6e,0xbb,0x6c,0x0f,0xbb,0x66,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29, -0xd5,0x1b,0xff,0x0f,0x5c,0x56,0xd9,0x0b,0x64,0x90,0x3b,0x82,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, -}; - -read_only global String8 rd_icon_file_bytes = {rd_icon_file_bytes__data, sizeof(rd_icon_file_bytes__data)}; - -C_LINKAGE_END - -#endif // RADDBG_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RADDBG_META_H +#define RADDBG_META_H + +typedef enum RD_RegSlot +{ +RD_RegSlot_Null, +RD_RegSlot_Machine, +RD_RegSlot_Module, +RD_RegSlot_Process, +RD_RegSlot_Thread, +RD_RegSlot_CtrlEntity, +RD_RegSlot_Window, +RD_RegSlot_Panel, +RD_RegSlot_Tab, +RD_RegSlot_View, +RD_RegSlot_PrevTab, +RD_RegSlot_DstPanel, +RD_RegSlot_Cfg, +RD_RegSlot_CfgList, +RD_RegSlot_EvalSpace, +RD_RegSlot_UnwindCount, +RD_RegSlot_InlineDepth, +RD_RegSlot_FilePath, +RD_RegSlot_Cursor, +RD_RegSlot_Mark, +RD_RegSlot_TextKey, +RD_RegSlot_LangKind, +RD_RegSlot_Lines, +RD_RegSlot_DbgiKey, +RD_RegSlot_Vaddr, +RD_RegSlot_Voff, +RD_RegSlot_VaddrRange, +RD_RegSlot_VoffRange, +RD_RegSlot_Expr, +RD_RegSlot_UIKey, +RD_RegSlot_SrcUIKey, +RD_RegSlot_OffPx, +RD_RegSlot_RegSlot, +RD_RegSlot_CtxExpr, +RD_RegSlot_PID, +RD_RegSlot_ForceConfirm, +RD_RegSlot_ForceFocus, +RD_RegSlot_PreferDisasm, +RD_RegSlot_NoRichTooltip, +RD_RegSlot_DoImplicitRoot, +RD_RegSlot_DoLister, +RD_RegSlot_DoBigRows, +RD_RegSlot_AllWindows, +RD_RegSlot_NonGraphical, +RD_RegSlot_PreferNewTab, +RD_RegSlot_ActivateWithSingleClick, +RD_RegSlot_DisableAddresses, +RD_RegSlot_SmallSize, +RD_RegSlot_Dir2, +RD_RegSlot_String, +RD_RegSlot_CmdName, +RD_RegSlot_WMEvent, +RD_RegSlot_COUNT, +} RD_RegSlot; + +typedef enum RD_CmdKind +{ +RD_CmdKind_Null, +RD_CmdKind_LaunchAndRun, +RD_CmdKind_LaunchAndStepInto, +RD_CmdKind_Kill, +RD_CmdKind_KillAll, +RD_CmdKind_Detach, +RD_CmdKind_Continue, +RD_CmdKind_StepIntoInst, +RD_CmdKind_StepOverInst, +RD_CmdKind_StepIntoLine, +RD_CmdKind_StepOverLine, +RD_CmdKind_StepOut, +RD_CmdKind_StepToExit, +RD_CmdKind_Halt, +RD_CmdKind_SoftHaltRefresh, +RD_CmdKind_SetThreadIP, +RD_CmdKind_RunToLine, +RD_CmdKind_RunToName, +RD_CmdKind_Run, +RD_CmdKind_Restart, +RD_CmdKind_StepInto, +RD_CmdKind_StepOver, +RD_CmdKind_FreezeThread, +RD_CmdKind_ThawThread, +RD_CmdKind_FreezeProcess, +RD_CmdKind_ThawProcess, +RD_CmdKind_FreezeMachine, +RD_CmdKind_ThawMachine, +RD_CmdKind_FreezeLocalMachine, +RD_CmdKind_ThawLocalMachine, +RD_CmdKind_FreezeEntity, +RD_CmdKind_ThawEntity, +RD_CmdKind_SetEntityColor, +RD_CmdKind_SetEntityName, +RD_CmdKind_DownloadModuleDebugInfo, +RD_CmdKind_Attach, +RD_CmdKind_OpenCrashDump, +RD_CmdKind_Exit, +RD_CmdKind_OpenPalette, +RD_CmdKind_RunCommand, +RD_CmdKind_RunExternalDriverTextCommand, +RD_CmdKind_State, +RD_CmdKind_Eval, +RD_CmdKind_LineFromVAddr, +RD_CmdKind_WMEvent, +RD_CmdKind_SelectThread, +RD_CmdKind_SelectUnwind, +RD_CmdKind_UpOneFrame, +RD_CmdKind_DownOneFrame, +RD_CmdKind_SelectEntity, +RD_CmdKind_DeselectEntity, +RD_CmdKind_IncWindowFontSize, +RD_CmdKind_DecWindowFontSize, +RD_CmdKind_IncViewFontSize, +RD_CmdKind_DecViewFontSize, +RD_CmdKind_OpenWindow, +RD_CmdKind_WindowSettings, +RD_CmdKind_CloseWindow, +RD_CmdKind_ToggleFullscreen, +RD_CmdKind_BringToFront, +RD_CmdKind_PopupAccept, +RD_CmdKind_PopupCancel, +RD_CmdKind_ResetToDefaultBindings, +RD_CmdKind_ResetToDefaultPanels, +RD_CmdKind_ResetToCompactPanels, +RD_CmdKind_ResetToSimplePanels, +RD_CmdKind_NewPanelLeft, +RD_CmdKind_NewPanelUp, +RD_CmdKind_NewPanelRight, +RD_CmdKind_NewPanelDown, +RD_CmdKind_SplitPanel, +RD_CmdKind_RotatePanelColumns, +RD_CmdKind_NextPanel, +RD_CmdKind_PrevPanel, +RD_CmdKind_FocusPanel, +RD_CmdKind_FocusPanelRight, +RD_CmdKind_FocusPanelLeft, +RD_CmdKind_FocusPanelUp, +RD_CmdKind_FocusPanelDown, +RD_CmdKind_Undo, +RD_CmdKind_Redo, +RD_CmdKind_GoBack, +RD_CmdKind_GoForward, +RD_CmdKind_ClosePanel, +RD_CmdKind_FocusTab, +RD_CmdKind_NextTab, +RD_CmdKind_PrevTab, +RD_CmdKind_MoveTabRight, +RD_CmdKind_MoveTabLeft, +RD_CmdKind_OpenTab, +RD_CmdKind_BuildTab, +RD_CmdKind_DuplicateTab, +RD_CmdKind_CopyTabFullPath, +RD_CmdKind_CloseTab, +RD_CmdKind_MoveView, +RD_CmdKind_TabBarTop, +RD_CmdKind_TabBarBottom, +RD_CmdKind_TabSettings, +RD_CmdKind_SetCurrentPath, +RD_CmdKind_Open, +RD_CmdKind_OpenSourceFileFromDebugInfo, +RD_CmdKind_SwitchToPartnerFile, +RD_CmdKind_ShowFileInExplorer, +RD_CmdKind_GoToDisassembly, +RD_CmdKind_GoToSource, +RD_CmdKind_SetFileReplacementPath, +RD_CmdKind_NewUser, +RD_CmdKind_NewProject, +RD_CmdKind_OpenUser, +RD_CmdKind_OpenProject, +RD_CmdKind_OpenRecentProject, +RD_CmdKind_SaveUser, +RD_CmdKind_SaveProject, +RD_CmdKind_RecordUserAsLastOpened, +RD_CmdKind_RecordProjectInUser, +RD_CmdKind_WriteUserData, +RD_CmdKind_WriteProjectData, +RD_CmdKind_UserSettings, +RD_CmdKind_ProjectSettings, +RD_CmdKind_Edit, +RD_CmdKind_Accept, +RD_CmdKind_Cancel, +RD_CmdKind_FocusMenu, +RD_CmdKind_MoveLeft, +RD_CmdKind_MoveRight, +RD_CmdKind_MoveUp, +RD_CmdKind_MoveDown, +RD_CmdKind_MoveLeftSelect, +RD_CmdKind_MoveRightSelect, +RD_CmdKind_MoveUpSelect, +RD_CmdKind_MoveDownSelect, +RD_CmdKind_MoveLeftChunk, +RD_CmdKind_MoveRightChunk, +RD_CmdKind_MoveUpChunk, +RD_CmdKind_MoveDownChunk, +RD_CmdKind_MoveUpPage, +RD_CmdKind_MoveDownPage, +RD_CmdKind_MoveUpWhole, +RD_CmdKind_MoveDownWhole, +RD_CmdKind_MoveLeftChunkSelect, +RD_CmdKind_MoveRightChunkSelect, +RD_CmdKind_MoveUpChunkSelect, +RD_CmdKind_MoveDownChunkSelect, +RD_CmdKind_MoveUpPageSelect, +RD_CmdKind_MoveDownPageSelect, +RD_CmdKind_MoveUpWholeSelect, +RD_CmdKind_MoveDownWholeSelect, +RD_CmdKind_MoveUpReorder, +RD_CmdKind_MoveDownReorder, +RD_CmdKind_MoveHome, +RD_CmdKind_MoveEnd, +RD_CmdKind_MoveHomeSelect, +RD_CmdKind_MoveEndSelect, +RD_CmdKind_SelectAll, +RD_CmdKind_DeleteSingle, +RD_CmdKind_DeleteChunk, +RD_CmdKind_BackspaceSingle, +RD_CmdKind_BackspaceChunk, +RD_CmdKind_Copy, +RD_CmdKind_Cut, +RD_CmdKind_Paste, +RD_CmdKind_InsertText, +RD_CmdKind_MoveNext, +RD_CmdKind_MovePrev, +RD_CmdKind_GoToLine, +RD_CmdKind_GoToAddress, +RD_CmdKind_CenterCursor, +RD_CmdKind_ContainCursor, +RD_CmdKind_FindNext, +RD_CmdKind_FindPrev, +RD_CmdKind_FindThread, +RD_CmdKind_FindSelectedThread, +RD_CmdKind_GoToName, +RD_CmdKind_GoToNameAtCursor, +RD_CmdKind_ToggleWatchExpression, +RD_CmdKind_ToggleWatchExpressionAtCursor, +RD_CmdKind_ToggleWatchExpressionAtMouse, +RD_CmdKind_EnableCfg, +RD_CmdKind_DisableCfg, +RD_CmdKind_SelectCfg, +RD_CmdKind_DeselectCfg, +RD_CmdKind_RemoveCfg, +RD_CmdKind_NameCfg, +RD_CmdKind_ConditionCfg, +RD_CmdKind_DuplicateCfg, +RD_CmdKind_RelocateCfg, +RD_CmdKind_SaveToProject, +RD_CmdKind_AddBreakpoint, +RD_CmdKind_AddAddressBreakpoint, +RD_CmdKind_AddFunctionBreakpoint, +RD_CmdKind_ToggleBreakpoint, +RD_CmdKind_RemoveBreakpoint, +RD_CmdKind_EnableBreakpoint, +RD_CmdKind_DisableBreakpoint, +RD_CmdKind_ClearBreakpoints, +RD_CmdKind_ClearOutput, +RD_CmdKind_AddWatchPin, +RD_CmdKind_ToggleWatchPin, +RD_CmdKind_LoadDebugInfo, +RD_CmdKind_UnloadDebugInfo, +RD_CmdKind_AddTypeView, +RD_CmdKind_AddFilePathMap, +RD_CmdKind_EditUserTheme, +RD_CmdKind_EditProjectTheme, +RD_CmdKind_AddThemeColor, +RD_CmdKind_ForkTheme, +RD_CmdKind_SaveTheme, +RD_CmdKind_SaveAndSetTheme, +RD_CmdKind_SetNextStatement, +RD_CmdKind_AddTarget, +RD_CmdKind_SelectTarget, +RD_CmdKind_EnableTarget, +RD_CmdKind_DisableTarget, +RD_CmdKind_RemoveTarget, +RD_CmdKind_RegisterAsJITDebugger, +RD_CmdKind_FindCodeLocation, +RD_CmdKind_GoToMemory, +RD_CmdKind_BreakWhenValueChanges, +RD_CmdKind_Search, +RD_CmdKind_SearchBackwards, +RD_CmdKind_PickFile, +RD_CmdKind_PickFolder, +RD_CmdKind_PickFileOrFolder, +RD_CmdKind_PushQuery, +RD_CmdKind_CompleteQuery, +RD_CmdKind_CancelQuery, +RD_CmdKind_UpdateQuery, +RD_CmdKind_OpenEventBuffer, +RD_CmdKind_CloseEventBuffer, +RD_CmdKind_ToggleDevMenu, +RD_CmdKind_LogMarker, +RD_CmdKind_OpenWatch, +RD_CmdKind_OpenLocals, +RD_CmdKind_OpenRegisters, +RD_CmdKind_OpenGlobals, +RD_CmdKind_OpenThreadLocals, +RD_CmdKind_OpenTypes, +RD_CmdKind_OpenProcedures, +RD_CmdKind_OpenCallStack, +RD_CmdKind_OpenTargets, +RD_CmdKind_OpenBreakpoints, +RD_CmdKind_OpenWatchPins, +RD_CmdKind_OpenDebugInfos, +RD_CmdKind_OpenThreads, +RD_CmdKind_OpenProcesses, +RD_CmdKind_OpenMachines, +RD_CmdKind_OpenModules, +RD_CmdKind_OpenFilePathMaps, +RD_CmdKind_OpenTypeViews, +RD_CmdKind_OpenOutput, +RD_CmdKind_OpenText, +RD_CmdKind_OpenDisasm, +RD_CmdKind_OpenMemory, +RD_CmdKind_OpenBitmap, +RD_CmdKind_OpenColor, +RD_CmdKind_OpenGeo3D, +RD_CmdKind_COUNT, +RD_CmdKind_FirstTabFastPathCmd = RD_CmdKind_OpenWatch, +} RD_CmdKind; + +typedef enum RD_IconKind +{ +RD_IconKind_Null, +RD_IconKind_FolderOpenOutline, +RD_IconKind_FolderClosedOutline, +RD_IconKind_FolderOpenFilled, +RD_IconKind_FolderClosedFilled, +RD_IconKind_FileOutline, +RD_IconKind_FileFilled, +RD_IconKind_Play, +RD_IconKind_PlayStepForward, +RD_IconKind_Pause, +RD_IconKind_Stop, +RD_IconKind_Info, +RD_IconKind_WarningSmall, +RD_IconKind_WarningBig, +RD_IconKind_Unlocked, +RD_IconKind_Locked, +RD_IconKind_LeftArrow, +RD_IconKind_RightArrow, +RD_IconKind_UpArrow, +RD_IconKind_DownArrow, +RD_IconKind_Gear, +RD_IconKind_Pencil, +RD_IconKind_Trash, +RD_IconKind_Pin, +RD_IconKind_RadioHollow, +RD_IconKind_RadioFilled, +RD_IconKind_CheckHollow, +RD_IconKind_CheckFilled, +RD_IconKind_Check, +RD_IconKind_LeftCaret, +RD_IconKind_RightCaret, +RD_IconKind_UpCaret, +RD_IconKind_DownCaret, +RD_IconKind_UpScroll, +RD_IconKind_DownScroll, +RD_IconKind_LeftScroll, +RD_IconKind_RightScroll, +RD_IconKind_Add, +RD_IconKind_Minus, +RD_IconKind_Thread, +RD_IconKind_Threads, +RD_IconKind_Machine, +RD_IconKind_CircleFilled, +RD_IconKind_X, +RD_IconKind_Refresh, +RD_IconKind_Undo, +RD_IconKind_Redo, +RD_IconKind_Save, +RD_IconKind_Window, +RD_IconKind_Target, +RD_IconKind_Clipboard, +RD_IconKind_Scheduler, +RD_IconKind_Module, +RD_IconKind_XSplit, +RD_IconKind_YSplit, +RD_IconKind_ClosePanel, +RD_IconKind_StepInto, +RD_IconKind_StepOver, +RD_IconKind_StepOut, +RD_IconKind_Find, +RD_IconKind_Palette, +RD_IconKind_Thumbnails, +RD_IconKind_Glasses, +RD_IconKind_Binoculars, +RD_IconKind_List, +RD_IconKind_Grid, +RD_IconKind_QuestionMark, +RD_IconKind_Person, +RD_IconKind_Briefcase, +RD_IconKind_Dot, +RD_IconKind_Bitmap, +RD_IconKind_Cube, +RD_IconKind_WindowRestore, +RD_IconKind_WindowMinimize, +RD_IconKind_Duplicate, +RD_IconKind_COUNT, +} RD_IconKind; + +typedef enum RD_CodeColorSlot +{ +RD_CodeColorSlot_CodeDefault, +RD_CodeColorSlot_CodeSymbol, +RD_CodeColorSlot_CodeType, +RD_CodeColorSlot_CodeLocal, +RD_CodeColorSlot_CodeRegister, +RD_CodeColorSlot_CodeKeyword, +RD_CodeColorSlot_CodeDelimiterOperator, +RD_CodeColorSlot_CodeNumeric, +RD_CodeColorSlot_CodeNumericAltDigitGroup, +RD_CodeColorSlot_CodeString, +RD_CodeColorSlot_CodeMeta, +RD_CodeColorSlot_CodeComment, +RD_CodeColorSlot_CodeLineNumbers, +RD_CodeColorSlot_CodeLineNumbersSelected, +RD_CodeColorSlot_COUNT, +} RD_CodeColorSlot; + +typedef enum RD_ThemePreset +{ +RD_ThemePreset_DefaultDark, +RD_ThemePreset_DefaultLight, +RD_ThemePreset_VSDark, +RD_ThemePreset_VSLight, +RD_ThemePreset_SolarizedDark, +RD_ThemePreset_SolarizedLight, +RD_ThemePreset_HandmadeHero, +RD_ThemePreset_Naysayer, +RD_ThemePreset_FourCoder, +RD_ThemePreset_Grove, +RD_ThemePreset_FarManager, +RD_ThemePreset_COUNT, +} RD_ThemePreset; + +typedef struct RD_VocabInfo RD_VocabInfo; +struct RD_VocabInfo +{ +String8 code_name; +String8 code_name_plural; +String8 display_name; +String8 display_name_plural; +RD_IconKind icon_kind; +}; + +typedef struct RD_NameSchemaInfo RD_NameSchemaInfo; +struct RD_NameSchemaInfo +{ +String8 name; +B32 is_view; +String8 schema; +}; + +typedef struct RD_Regs RD_Regs; +struct RD_Regs +{ +D_Handle machine; +D_Handle module; +D_Handle process; +D_Handle thread; +D_Handle ctrl_entity; +CFG_ID window; +CFG_ID panel; +CFG_ID tab; +CFG_ID view; +CFG_ID prev_tab; +CFG_ID dst_panel; +CFG_ID cfg; +CFG_IDList cfg_list; +E_Space eval_space; +U64 unwind_count; +U64 inline_depth; +String8 file_path; +TxtPt cursor; +TxtPt mark; +C_Key text_key; +TXT_LangKind lang_kind; +D_LineList lines; +DI_Key dbgi_key; +U64 vaddr; +U64 voff; +Rng1U64 vaddr_range; +Rng1U64 voff_range; +String8 expr; +UI_Key ui_key; +UI_Key src_ui_key; +Vec2F32 off_px; +RD_RegSlot reg_slot; +String8 ctx_expr; +U32 pid; +B32 force_confirm; +B32 force_focus; +B32 prefer_disasm; +B32 no_rich_tooltip; +B32 do_implicit_root; +B32 do_lister; +B32 do_big_rows; +B32 all_windows; +B32 non_graphical; +B32 prefer_new_tab; +B32 activate_with_single_click; +B32 disable_addresses; +B32 small_size; +Dir2 dir2; +String8 string; +String8 cmd_name; +WM_Event * wm_event; +}; + +typedef struct RD_Query RD_Query; +struct RD_Query +{ +RD_QueryFlags flags; +RD_RegSlot slot; +String8 expr; +}; + +typedef struct RD_CmdKindInfo RD_CmdKindInfo; +struct RD_CmdKindInfo +{ +String8 string; +String8 description; +String8 search_tags; +String8 filter_tags; +RD_CmdKindFlags flags; +RD_Query query; +}; + +#define RD_FixedTabXList \ +Y(watches, watch, "")\ +X(locals) \ +X(registers) \ +X(globals) \ +X(thread_locals) \ +X(types) \ +X(procedures) \ +X(call_stack) \ +X(targets) \ +X(breakpoints) \ +X(watch_pins) \ +X(debug_infos) \ +X(threads) \ +X(processes) \ +X(machines) \ +X(modules) \ +X(file_path_maps) \ +X(type_views) \ +Y(output, text, "query:output")\ +Y(text, text, "")\ +Y(disasm, disasm, "")\ +Y(memory, memory, "")\ +Y(bitmap, bitmap, "")\ +Y(color, color, "")\ +Y(geo3d, geo3d, "")\ +Z(getting_started)\ + +#define rd_regs_lit_init_top \ +.machine = rd_regs()->machine,\ +.module = rd_regs()->module,\ +.process = rd_regs()->process,\ +.thread = rd_regs()->thread,\ +.ctrl_entity = rd_regs()->ctrl_entity,\ +.window = rd_regs()->window,\ +.panel = rd_regs()->panel,\ +.tab = rd_regs()->tab,\ +.view = rd_regs()->view,\ +.prev_tab = rd_regs()->prev_tab,\ +.dst_panel = rd_regs()->dst_panel,\ +.cfg = rd_regs()->cfg,\ +.cfg_list = rd_regs()->cfg_list,\ +.eval_space = rd_regs()->eval_space,\ +.unwind_count = rd_regs()->unwind_count,\ +.inline_depth = rd_regs()->inline_depth,\ +.file_path = rd_regs()->file_path,\ +.cursor = rd_regs()->cursor,\ +.mark = rd_regs()->mark,\ +.text_key = rd_regs()->text_key,\ +.lang_kind = rd_regs()->lang_kind,\ +.lines = rd_regs()->lines,\ +.dbgi_key = rd_regs()->dbgi_key,\ +.vaddr = rd_regs()->vaddr,\ +.voff = rd_regs()->voff,\ +.vaddr_range = rd_regs()->vaddr_range,\ +.voff_range = rd_regs()->voff_range,\ +.expr = rd_regs()->expr,\ +.ui_key = rd_regs()->ui_key,\ +.src_ui_key = rd_regs()->src_ui_key,\ +.off_px = rd_regs()->off_px,\ +.reg_slot = rd_regs()->reg_slot,\ +.ctx_expr = rd_regs()->ctx_expr,\ +.pid = rd_regs()->pid,\ +.force_confirm = rd_regs()->force_confirm,\ +.force_focus = rd_regs()->force_focus,\ +.prefer_disasm = rd_regs()->prefer_disasm,\ +.no_rich_tooltip = rd_regs()->no_rich_tooltip,\ +.do_implicit_root = rd_regs()->do_implicit_root,\ +.do_lister = rd_regs()->do_lister,\ +.do_big_rows = rd_regs()->do_big_rows,\ +.all_windows = rd_regs()->all_windows,\ +.non_graphical = rd_regs()->non_graphical,\ +.prefer_new_tab = rd_regs()->prefer_new_tab,\ +.activate_with_single_click = rd_regs()->activate_with_single_click,\ +.disable_addresses = rd_regs()->disable_addresses,\ +.small_size = rd_regs()->small_size,\ +.dir2 = rd_regs()->dir2,\ +.string = rd_regs()->string,\ +.cmd_name = rd_regs()->cmd_name,\ +.wm_event = rd_regs()->wm_event,\ + +C_LINKAGE_BEGIN +extern String8 rd_tab_fast_path_view_name_table[25]; +extern String8 rd_tab_fast_path_query_name_table[25]; +extern RD_VocabInfo rd_vocab_info_table[368]; +extern RD_NameSchemaInfo rd_name_schema_info_table[39]; +extern String8 rd_reg_slot_code_name_table[52]; +extern Rng1U64 rd_reg_slot_range_table[52]; +extern String8 rd_binding_version_remap_old_name_table[9]; +extern String8 rd_binding_version_remap_new_name_table[9]; +extern String8 rd_icon_kind_text_table[75]; +extern String8 rd_code_color_slot_name_table[14]; +extern String8 rd_theme_preset_display_string_table[11]; +extern String8 rd_theme_preset_code_string_table[11]; +extern String8 rd_theme_preset_cfg_string_table[11]; +read_only global U8 rd_icon_font_bytes__data[] = +{ +0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x80,0x00,0x03,0x00,0x70,0x47,0x53,0x55,0x42,0x20,0x8b,0x25,0x7a,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x54,0x4f,0x53,0x2f,0x32,0x56,0x43,0x62,0x25,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0xa3,0x60,0xa4,0x23,0x00,0x00,0x01,0xb0,0x00,0x00,0x06,0x12,0x63,0x76,0x74,0x20, +0x0e,0x1f,0x06,0xf3,0x00,0x00,0x51,0x34,0x00,0x00,0x00,0x38,0x66,0x70,0x67,0x6d,0x62,0x31,0xfb,0x7b,0x00,0x00,0x51,0x6c,0x00,0x00,0x0e,0x0c,0x67,0x61,0x73,0x70,0x00,0x00,0x00,0x10,0x00,0x00,0x51,0x2c,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0x71,0xda,0x4c,0xc8,0x00,0x00,0x07,0xc4,0x00,0x00,0x40,0x90,0x68,0x65,0x61,0x64, +0x2b,0xeb,0xd3,0xaf,0x00,0x00,0x48,0x54,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x07,0xc2,0x04,0x27,0x00,0x00,0x48,0x8c,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x06,0x4b,0xff,0xca,0x00,0x00,0x48,0xb0,0x00,0x00,0x01,0x44,0x6c,0x6f,0x63,0x61,0x71,0xa6,0x82,0xac,0x00,0x00,0x49,0xf4,0x00,0x00,0x00,0xa4,0x6d,0x61,0x78,0x70, +0x01,0xe8,0x0f,0x19,0x00,0x00,0x4a,0x98,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0xcd,0x9d,0x1c,0x1d,0x00,0x00,0x4a,0xb8,0x00,0x00,0x02,0xcd,0x70,0x6f,0x73,0x74,0x77,0x9e,0x36,0x3b,0x00,0x00,0x4d,0x88,0x00,0x00,0x03,0xa2,0x70,0x72,0x65,0x70,0xeb,0x48,0xca,0x9d,0x00,0x00,0x5f,0x78,0x00,0x00,0x00,0xa7,0x00,0x01,0x00,0x00, +0x00,0x0a,0x00,0x30,0x00,0x3e,0x00,0x02,0x44,0x46,0x4c,0x54,0x00,0x0e,0x6c,0x61,0x74,0x6e,0x00,0x1a,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x6c,0x69,0x67,0x61,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x04, +0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x03,0x3d,0x01,0x90,0x00,0x05,0x00,0x00,0x02,0x7a,0x02,0xbc,0x00,0x00,0x00,0x8c,0x02,0x7a,0x02,0xbc,0x00,0x00,0x01,0xe0,0x00,0x31,0x01,0x02,0x00,0x00,0x02,0x00,0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x66,0x45,0x64,0x00,0xc0,0x00,0x21,0x00,0x7d,0x03,0x52,0xff,0x6a,0x00,0x5a,0x03,0xac,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x04, +0x00,0x00,0x02,0x42,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x3c,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x2c,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x42,0x00,0x04,0x01,0x10,0x00,0x00,0x00,0x18,0x00,0x10,0x00,0x03,0x00,0x08,0x00,0x23,0x00,0x2b,0x00,0x2e,0x00,0x31,0x00,0x39,0x00,0x3c,0x00,0x5b,0x00,0x5e,0x00,0x73,0x00,0x7b,0x00,0x7d, +0xff,0xff,0x00,0x00,0x00,0x21,0x00,0x26,0x00,0x2d,0x00,0x30,0x00,0x33,0x00,0x3c,0x00,0x3e,0x00,0x5d,0x00,0x61,0x00,0x75,0x00,0x7d,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x1c,0x00,0x26,0x00,0x28,0x00,0x2a,0x00,0x36, +0x00,0x36,0x00,0x70,0x00,0x72,0x00,0x96,0x00,0xa2,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a, +0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20,0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x39,0x00,0x3a, +0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x4d,0x00,0x4e,0x00,0x4f,0x00,0x50,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x0a,0x0b,0x00,0x0c,0x0d,0x00,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x00,0x00,0x15,0x00,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25, +0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x00,0x34,0x35,0x00,0x00,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x00,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0xd0,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x50,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x05,0x00,0x00, +0x00,0x28,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x2e,0x00,0x00, +0x00,0x2e,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x35,0x00,0x00, +0x00,0x10,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x15,0x00,0x00, +0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x43,0x00,0x00, +0x00,0x43,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00, +0x00,0x20,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x25,0x00,0x00, +0x00,0x4e,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x53,0x00,0x00, +0x00,0x53,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x2e,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x57,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x58,0x00,0x00, +0x00,0x30,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x31,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x35,0x00,0x00, +0x00,0x61,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x39,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x66,0x00,0x00, +0x00,0x66,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00, +0x00,0x40,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x45,0x00,0x00, +0x00,0x71,0x00,0x00,0x00,0x71,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x72,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x77,0x00,0x00, +0x00,0x77,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x79,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7d,0x00,0x00, +0x00,0x50,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x25,0x40,0x22,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x13,0x00,0x4e,0x02,0x00,0x1e,0x1b,0x16,0x13,0x0a,0x07,0x00,0x0f,0x02,0x0f,0x05,0x07,0x16,0x2b,0x01,0x21,0x22,0x06,0x07,0x11,0x14, +0x16,0x17,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x17,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x71,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x34,0x7c,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x02,0xc3,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01, +0xd0,0x25,0x34,0x59,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x5e,0x01,0x60,0x00,0x06,0x00,0x00,0xff,0xba,0x02,0x80,0x03,0x02,0x00,0x13,0x00,0x1c,0x00,0x25,0x00,0x39,0x00,0x42,0x00,0x4b,0x00,0x54,0x40,0x51,0x39,0x30,0x2f,0x26,0x0d,0x0c,0x03,0x02,0x08,0x02,0x04,0x01,0x4c,0x08,0x0c,0x02,0x04,0x0b,0x01,0x02,0x03,0x04, +0x02,0x69,0x09,0x01,0x05,0x05,0x01,0x61,0x07,0x01,0x01,0x01,0x13,0x4d,0x0d,0x0a,0x02,0x03,0x03,0x00,0x61,0x06,0x01,0x00,0x00,0x11,0x00,0x4e,0x44,0x43,0x1e,0x1d,0x48,0x47,0x43,0x4b,0x44,0x4b,0x41,0x40,0x3d,0x3c,0x35,0x34,0x2b,0x2a,0x22,0x21,0x1d,0x25,0x1e,0x25,0x13,0x14,0x19,0x17,0x0e,0x07,0x1a,0x2b,0x13,0x14,0x07,0x11, +0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16,0x03,0x34,0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x03,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x01,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16,0x15,0x14,0x07,0x27,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13, +0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0xf0,0x48,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x32,0x2a,0x38,0x28,0x28,0x38,0x2a,0x46,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x01,0xdc,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x48,0x74,0x28,0x38,0x2a,0x2a,0x38,0x28,0x44,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x02,0x8a,0x4c,0x22,0xfe, +0x86,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0xfd,0x76,0x1e,0x28,0x28,0x3a,0x28,0x28,0x02,0x30,0x28,0x3a,0x28,0x28,0x3a,0x28,0xfe,0x5c,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c,0x22,0x6e,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x46,0x28,0x3a,0x28, +0x28,0x3a,0x28,0x00,0x00,0x05,0x00,0x00,0xff,0x6a,0x03,0xe8,0x03,0x52,0x00,0x1f,0x00,0x22,0x00,0x25,0x00,0x33,0x00,0x3c,0x00,0x70,0x40,0x6d,0x23,0x01,0x00,0x06,0x1d,0x01,0x09,0x00,0x27,0x20,0x02,0x07,0x05,0x03,0x4c,0x00,0x03,0x00,0x06,0x00,0x03,0x06,0x67,0x0c,0x01,0x00,0x00,0x09,0x05,0x00,0x09,0x67,0x00,0x05,0x00,0x07, +0x04,0x05,0x07,0x67,0x00,0x04,0x00,0x0a,0x08,0x04,0x0a,0x67,0x00,0x08,0x00,0x02,0x0b,0x08,0x02,0x67,0x0d,0x01,0x0b,0x01,0x01,0x0b,0x57,0x0d,0x01,0x0b,0x0b,0x01,0x5f,0x00,0x01,0x0b,0x01,0x4f,0x34,0x34,0x01,0x00,0x34,0x3c,0x34,0x3c,0x3b,0x39,0x36,0x35,0x30,0x2f,0x2e,0x2c,0x29,0x28,0x25,0x24,0x22,0x21,0x1a,0x17,0x0e,0x0c, +0x09,0x06,0x00,0x1f,0x01,0x1e,0x0e,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x35,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x3f,0x01,0x3e,0x01,0x3b,0x01,0x32,0x16,0x17,0x15,0x36,0x33,0x0f,0x01,0x33,0x01,0x07,0x33,0x17,0x37,0x35,0x23,0x15,0x14,0x06,0x07,0x23,0x11,0x21,0x35,0x34,0x36,0x01,0x11, +0x23,0x15,0x14,0x06,0x27,0x23,0x11,0x03,0xb2,0x17,0x1e,0x01,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0xfe,0xd1,0x17,0x1e,0x01,0x16,0x10,0xe4,0x0f,0x36,0x16,0xe8,0x17,0x1e,0x01,0x26,0x21,0x47,0xa7,0xa7,0xfe,0x9b,0xa7,0xa7,0x6d,0xb0,0xd6,0x1e,0x17,0xe9,0x01,0x1e,0x16,0x02,0x26,0xd7,0x1e,0x17,0xe8,0x02,0x7c,0x20,0x16,0xfd,0x5a, +0x17,0x1e,0x01,0x20,0x16,0xa0,0x20,0x16,0x01,0x77,0x16,0x36,0x0f,0xe4,0x10,0x16,0x20,0x16,0xb7,0x17,0x77,0xa7,0x01,0x7d,0xa7,0xc2,0xb0,0xe9,0xe9,0x16,0x1e,0x01,0xfe,0x9b,0x8f,0x16,0x36,0xfe,0x4e,0x02,0x83,0xe8,0x16,0x20,0x01,0xfe,0x9a,0x00,0x00,0x04,0xff,0xff,0xff,0xb1,0x04,0x2f,0x03,0x0b,0x00,0x08,0x00,0x0f,0x00,0x1f, +0x00,0x2f,0x00,0x52,0x40,0x4f,0x1d,0x14,0x02,0x01,0x03,0x0f,0x01,0x00,0x01,0x0e,0x0d,0x0c,0x09,0x04,0x02,0x00,0x1c,0x15,0x02,0x04,0x02,0x04,0x4c,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x69,0x07,0x01,0x03,0x03,0x06,0x5f,0x00,0x06,0x06,0x13,0x4d,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05, +0x11,0x05,0x4e,0x11,0x10,0x2e,0x2b,0x26,0x23,0x19,0x17,0x10,0x1f,0x11,0x1f,0x13,0x13,0x12,0x08,0x07,0x19,0x2b,0x01,0x14,0x0e,0x01,0x26,0x34,0x36,0x1e,0x01,0x01,0x15,0x21,0x35,0x37,0x17,0x01,0x25,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x37,0x21,0x32,0x36,0x27,0x11,0x34,0x26,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x11, +0x34,0x36,0x37,0x21,0x32,0x16,0x01,0x65,0x3e,0x5a,0x3e,0x3e,0x5a,0x3e,0x02,0x3c,0xfc,0xee,0xb2,0x5a,0x01,0x1d,0x01,0x1e,0xfc,0x83,0x07,0x0a,0x01,0x0c,0x06,0x03,0x7d,0x07,0x0c,0x01,0x0a,0x51,0x34,0x25,0xfc,0x83,0x24,0x36,0x01,0x34,0x25,0x03,0x7d,0x25,0x34,0x02,0x11,0x2d,0x3e,0x02,0x42,0x56,0x42,0x04,0x3a,0xfe,0xfa,0xfa, +0x6b,0xb3,0x59,0x01,0x1d,0xa1,0x0a,0x08,0xfd,0x5a,0x07,0x0c,0x01,0x0a,0x08,0x02,0xa6,0x08,0x0a,0x12,0xfd,0x5a,0x25,0x34,0x01,0x36,0x24,0x02,0xa6,0x25,0x34,0x01,0x36,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xba,0x00,0xf0,0x03,0x02,0x00,0x13,0x00,0x1c,0x00,0x25,0x00,0x39,0x40,0x36,0x13,0x0a,0x09,0x00,0x04,0x05,0x02,0x01, +0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x13,0x4d,0x06,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x11,0x00,0x4e,0x1e,0x1d,0x22,0x21,0x1d,0x25,0x1e,0x25,0x13,0x17,0x19,0x14,0x07,0x07,0x1a,0x2b,0x37,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x11,0x26,0x35,0x34,0x36,0x32,0x16, +0x15,0x14,0x07,0x27,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0xa8,0x48,0x46,0x64,0x46,0x48,0x48,0x46,0x64,0x46,0x48,0x74,0x28,0x38,0x2a,0x2a,0x38,0x28,0x44,0x1c,0x2a,0x2a,0x38,0x28,0x28,0xa2,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x01,0x7a,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c, +0x22,0x6e,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x46,0x28,0x3a,0x28,0x28,0x3a,0x28,0x00,0x03,0xff,0xff,0xff,0x6a,0x04,0x78,0x03,0x52,0x00,0x03,0x00,0x0c,0x00,0x26,0x00,0x38,0x40,0x35,0x00,0x08,0x00,0x03,0x04,0x08,0x03,0x67,0x07,0x01,0x04,0x00,0x01,0x02,0x04,0x01,0x67,0x00,0x02,0x00,0x05,0x00,0x02,0x05,0x67,0x00,0x00,0x06, +0x06,0x00,0x57,0x00,0x00,0x00,0x06,0x60,0x00,0x06,0x00,0x06,0x50,0x33,0x25,0x33,0x26,0x21,0x11,0x11,0x11,0x10,0x09,0x07,0x1f,0x2b,0x17,0x21,0x11,0x29,0x02,0x11,0x21,0x15,0x33,0x32,0x16,0x15,0x01,0x11,0x14,0x06,0x23,0x21,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x33,0x21,0x35,0x34,0x36,0x33,0x21,0x32,0x16, +0x8f,0x01,0xac,0xfe,0x54,0x02,0x3b,0x01,0x1e,0xfe,0x53,0x36,0x25,0x34,0x01,0xad,0x34,0x25,0xfe,0xac,0x34,0x25,0xfd,0xe8,0x24,0x36,0x01,0x34,0x25,0x01,0x54,0x34,0x25,0x02,0x18,0x24,0x36,0x07,0x01,0x1e,0x01,0xac,0x8f,0x34,0x25,0x01,0x1e,0xfd,0xe8,0x25,0x34,0xc5,0x25,0x34,0x34,0x25,0x02,0x18,0x25,0x34,0xc5,0x25,0x34,0x34, +0x00,0x01,0xff,0xff,0xff,0xb1,0x03,0xe8,0x00,0xcf,0x00,0x0f,0x00,0x13,0x40,0x10,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x11,0x00,0x4e,0x35,0x33,0x02,0x07,0x18,0x2b,0x25,0x15,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0xe8,0x34,0x25,0xfc,0xca,0x24,0x36,0x01,0x34,0x25,0x03,0x36,0x25,0x34, +0x76,0x6b,0x25,0x34,0x01,0x36,0x24,0x6b,0x25,0x34,0x34,0x00,0x00,0x03,0x00,0x00,0xff,0x6a,0x03,0xa1,0x03,0x0b,0x00,0x03,0x00,0x07,0x00,0x1f,0x00,0x1f,0x40,0x1c,0x07,0x06,0x05,0x03,0x02,0x01,0x00,0x07,0x00,0x01,0x01,0x4c,0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x13,0x00,0x4e,0x1b,0x1e,0x02,0x07,0x18,0x2b,0x05,0x25,0x11, +0x05,0x27,0x2d,0x01,0x0d,0x01,0x11,0x14,0x06,0x07,0x05,0x06,0x22,0x27,0x25,0x2e,0x01,0x35,0x11,0x34,0x36,0x37,0x25,0x36,0x32,0x17,0x05,0x1e,0x01,0x01,0xf4,0x01,0x65,0xfe,0x9b,0x24,0x01,0x86,0xfe,0x7a,0xfe,0x7b,0x03,0x56,0x14,0x12,0xfe,0x77,0x0f,0x26,0x0f,0xfe,0x77,0x11,0x14,0x1a,0x15,0x01,0x89,0x0c,0x18,0x0d,0x01,0x89, +0x15,0x1a,0x3b,0xc3,0x01,0x63,0x82,0x3f,0x8d,0x8e,0x8e,0x01,0xfe,0x54,0x14,0x22,0x09,0xd6,0x09,0x09,0xd6,0x0a,0x20,0x15,0x01,0xac,0x17,0x24,0x08,0x8f,0x05,0x05,0x8f,0x08,0x24,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x44,0x02,0x80,0x00,0x13,0x00,0x31,0x40,0x2e,0x00,0x05,0x00,0x02,0x05,0x59,0x04,0x06,0x02,0x00,0x03,0x01, +0x01,0x02,0x00,0x01,0x67,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x05,0x02,0x51,0x01,0x00,0x11,0x10,0x0e,0x0c,0x0b,0x09,0x07,0x06,0x04,0x02,0x00,0x13,0x01,0x13,0x07,0x07,0x16,0x2b,0x01,0x32,0x14,0x2b,0x01,0x15,0x14,0x22,0x3d,0x01,0x23,0x22,0x34,0x3b,0x01,0x35,0x34,0x32,0x1d,0x01,0x02,0x26,0x1e,0x1e,0xd2,0x64,0xd2,0x1e,0x1e, +0xd2,0x64,0x01,0x90,0x64,0xd2,0x1e,0x1e,0xd2,0x64,0xd2,0x1e,0x1e,0xd2,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x44,0x01,0x90,0x00,0x07,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x01,0x00,0x05,0x02,0x00,0x07,0x01,0x06,0x03,0x07,0x16,0x2b,0x01,0x32, +0x14,0x23,0x21,0x22,0x34,0x33,0x02,0x26,0x1e,0x1e,0xfd,0xf8,0x1e,0x1e,0x01,0x90,0x64,0x64,0x00,0x00,0x00,0x01,0xff,0xfd,0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x0c,0x00,0x13,0x40,0x10,0x00,0x01,0x01,0x13,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x15,0x13,0x02,0x07,0x18,0x2b,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e, +0x01,0x03,0x59,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xf4,0xba,0x7e,0x01,0x5e,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x3c,0x01,0xed,0x00,0x0e,0x00,0x1e,0x40,0x1b,0x00,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01, +0x00,0x51,0x35,0x14,0x02,0x07,0x18,0x2b,0x01,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x26,0x34,0x36,0x33,0x21,0x32,0x16,0x02,0x3b,0x0a,0xfa,0x0b,0x1c,0x0b,0xfa,0x0b,0x16,0x0e,0x01,0xf4,0x0e,0x16,0x01,0xc9,0x0e,0x0b,0xfa,0x0b,0x0b,0xfa,0x0b,0x1c,0x16,0x16,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0xa0,0x03,0x0b,0x00,0x2d, +0x00,0x42,0x00,0x48,0x40,0x45,0x3b,0x01,0x04,0x06,0x25,0x01,0x05,0x04,0x02,0x4c,0x00,0x07,0x01,0x02,0x01,0x07,0x02,0x80,0x00,0x06,0x02,0x04,0x02,0x06,0x04,0x80,0x00,0x04,0x05,0x02,0x04,0x05,0x7e,0x00,0x05,0x03,0x02,0x05,0x03,0x7e,0x00,0x03,0x00,0x00,0x03,0x00,0x64,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x13,0x02,0x4e, +0x14,0x17,0x15,0x27,0x35,0x39,0x35,0x33,0x08,0x07,0x1e,0x2b,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x17,0x1e,0x01,0x0f,0x01,0x06,0x23,0x27,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x3d,0x01,0x34,0x3f,0x01,0x36,0x33,0x32,0x17,0x16,0x13,0x01,0x06,0x22,0x2f,0x01, +0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x01,0x36,0x32,0x1f,0x01,0x16,0x14,0x03,0x12,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x23,0x1e,0x09,0x03,0x07,0x1b,0x06,0x07,0x05,0x0d,0x0c,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x05,0x24,0x06,0x07,0x03,0x04,0x0b,0x81,0xfe,0x39,0x0d,0x24,0x0e,0xf0,0x0e, +0x0e,0x3d,0x0e,0x24,0x0e,0x93,0x01,0x69,0x0d,0x24,0x0e,0x3e,0x0d,0x01,0x4b,0xb1,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x5e,0x01,0x0e,0x04,0x13,0x06,0x1c,0x05,0x01,0x03,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x8d,0x08,0x05,0x23,0x06,0x02,0x04,0x01,0x05,0xfe,0x3a,0x0e,0x0e,0xf0,0x0d,0x24,0x0e,0x3e,0x0d,0x0d,0x93,0x01, +0x69,0x0d,0x0d,0x3d,0x0e,0x24,0x00,0x00,0x00,0x06,0x00,0x00,0xff,0xb1,0x03,0x12,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3b,0x00,0x43,0x00,0x67,0x00,0x5d,0x40,0x5a,0x57,0x45,0x02,0x06,0x08,0x29,0x21,0x19,0x11,0x09,0x01,0x06,0x00,0x01,0x02,0x4c,0x00,0x09,0x0e,0x08,0x0e,0x09,0x08,0x80,0x0f,0x0d,0x02,0x08,0x0c,0x0a, +0x02,0x06,0x01,0x08,0x06,0x68,0x05,0x03,0x02,0x01,0x04,0x02,0x02,0x00,0x07,0x01,0x00,0x69,0x00,0x0e,0x0e,0x13,0x4d,0x00,0x07,0x07,0x0b,0x5f,0x00,0x0b,0x0b,0x11,0x0b,0x4e,0x65,0x64,0x61,0x5e,0x5b,0x59,0x53,0x52,0x4f,0x4c,0x49,0x47,0x41,0x3f,0x14,0x24,0x14,0x26,0x26,0x26,0x26,0x26,0x23,0x10,0x07,0x1f,0x2b,0x01,0x11,0x14, +0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x13,0x11,0x21,0x11,0x14,0x1e,0x01,0x33,0x21,0x32,0x3e,0x01,0x01,0x33,0x27,0x26,0x27,0x23,0x06, +0x07,0x05,0x15,0x14,0x06,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x37,0x3e,0x01,0x37,0x33,0x32,0x16,0x1f,0x01,0x33,0x32,0x16,0x01,0x1e,0x0a,0x08,0x24,0x08,0x0a,0x0a,0x08,0x24,0x08,0x0a,0x8f,0x0a,0x08,0x24,0x08,0x0a,0x0a,0x08,0x24,0x08,0x0a,0x8e,0x0a,0x07,0x24, +0x08,0x0a,0x0a,0x08,0x24,0x07,0x0a,0x48,0xfe,0x0c,0x08,0x08,0x02,0x01,0xd0,0x02,0x08,0x08,0xfe,0x89,0xfa,0x1b,0x04,0x05,0xb1,0x06,0x04,0x01,0xeb,0x0a,0x08,0x36,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x35,0x08,0x0a,0x0a,0x08,0xac,0x27,0x09,0x2c,0x16,0xb2,0x17,0x2a,0x09,0x27,0xad,0x08,0x0a,0x01,0xb7,0xfe,0xbf,0x08,0x0a,0x0a, +0x08,0x01,0x41,0x08,0x0a,0x0a,0x08,0xfe,0xbf,0x08,0x0a,0x0a,0x08,0x01,0x41,0x08,0x0a,0x0a,0x08,0xfe,0xbf,0x08,0x0a,0x0a,0x08,0x01,0x41,0x08,0x0a,0x0a,0xfe,0x64,0x02,0x11,0xfd,0xef,0x0c,0x14,0x0a,0x0a,0x14,0x02,0x65,0x41,0x05,0x01,0x01,0x05,0x53,0x24,0x08,0x0a,0xfd,0xef,0x2e,0x44,0x42,0x2e,0x02,0x13,0x0a,0x08,0x24,0x08, +0x0a,0x5d,0x15,0x1c,0x01,0x1e,0x14,0x5d,0x0a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0x9c,0x03,0xac,0x03,0x20,0x00,0x2a,0x00,0x34,0x40,0x09,0x20,0x1e,0x16,0x12,0x04,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x00,0x01,0x01,0x10,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x1b,0x40,0x0b,0x00,0x00,0x00,0x01,0x61,0x00, +0x01,0x01,0x10,0x00,0x4e,0x59,0xb5,0x1b,0x1a,0x13,0x02,0x07,0x17,0x2b,0x25,0x16,0x1d,0x01,0x21,0x35,0x34,0x37,0x3e,0x01,0x35,0x34,0x26,0x27,0x2e,0x03,0x27,0x34,0x36,0x3f,0x01,0x26,0x27,0x26,0x36,0x32,0x16,0x0f,0x01,0x16,0x15,0x0e,0x03,0x07,0x0e,0x01,0x15,0x14,0x16,0x02,0xe0,0xcc,0xfc,0x54,0xcc,0x5e,0x44,0x2c,0x0a,0x02, +0x0e,0x0e,0x0e,0x02,0x0a,0x04,0x04,0x08,0x04,0x04,0x5a,0xe0,0x5c,0x06,0x0c,0x12,0x02,0x0e,0x0e,0x0e,0x02,0x08,0x2e,0x46,0x80,0x48,0x32,0x6a,0x6a,0x32,0x48,0x22,0x46,0x3c,0x16,0x36,0x2e,0x0c,0x0c,0x04,0x1e,0x1c,0x10,0x14,0x02,0x04,0x32,0x26,0x36,0x74,0x74,0x36,0x58,0x08,0x22,0x1c,0x1e,0x04,0x0c,0x0c,0x30,0x34,0x16,0x3c, +0x46,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xb6,0x03,0xe8,0x03,0x08,0x00,0x18,0x00,0x20,0x00,0x2d,0x00,0x94,0xb5,0x25,0x01,0x09,0x0b,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x30,0x0d,0x01,0x0b,0x08,0x09,0x08,0x0b,0x72,0x0c,0x01,0x05,0x00,0x01,0x05,0x57,0x06,0x03,0x02,0x01,0x04,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x07, +0x07,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x0a,0x01,0x08,0x08,0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x1b,0x40,0x31,0x0d,0x01,0x0b,0x08,0x09,0x08,0x0b,0x09,0x80,0x0c,0x01,0x05,0x00,0x01,0x05,0x57,0x06,0x03,0x02,0x01,0x04,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x07,0x07,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x0a,0x01,0x08,0x08, +0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x59,0x40,0x1e,0x21,0x21,0x00,0x00,0x21,0x2d,0x21,0x2d,0x2c,0x2b,0x29,0x26,0x23,0x22,0x20,0x1d,0x1b,0x1a,0x00,0x18,0x00,0x18,0x12,0x24,0x35,0x22,0x11,0x0e,0x07,0x1b,0x2b,0x01,0x15,0x21,0x13,0x36,0x3b,0x01,0x36,0x3f,0x01,0x3e,0x01,0x3b,0x01,0x32,0x16,0x17,0x16,0x17,0x33,0x32,0x17, +0x13,0x21,0x35,0x03,0x07,0x21,0x27,0x26,0x2b,0x01,0x22,0x13,0x35,0x21,0x06,0x07,0x06,0x23,0x21,0x22,0x35,0x27,0x21,0x15,0x01,0xc8,0xfe,0x38,0x0a,0x04,0x60,0xa0,0x10,0x15,0x17,0x0e,0x12,0x1c,0xde,0x1a,0x14,0x0c,0x12,0x2a,0xa0,0x60,0x04,0x0a,0xfe,0x3a,0xa4,0x1c,0x01,0x24,0x1c,0x0e,0x1c,0x98,0x1c,0x96,0x01,0xae,0x06,0x04, +0x06,0x54,0xfd,0x12,0x5a,0x0a,0x01,0xae,0x01,0x46,0x64,0x01,0x24,0x6c,0x1a,0x29,0x2d,0x1a,0x0c,0x0e,0x18,0x20,0x50,0x6c,0xfe,0xdc,0x64,0x01,0x62,0x36,0x36,0x1a,0xfd,0x8a,0x64,0x58,0x4e,0x54,0x54,0xa6,0x64,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0xdc,0x01,0xcc,0x00,0x08,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01, +0x01,0x00,0x59,0x02,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x01,0x00,0x05,0x04,0x00,0x08,0x01,0x08,0x03,0x07,0x16,0x2b,0x13,0x32,0x16,0x14,0x06,0x22,0x26,0x34,0x36,0x6e,0x2e,0x40,0x40,0x5c,0x40,0x40,0x01,0xcc,0x40,0x5a,0x42,0x42,0x5a,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x67,0x02,0x7c,0x00,0x0d, +0x00,0x1e,0x40,0x1b,0x00,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x17,0x13,0x02,0x07,0x18,0x2b,0x01,0x11,0x14,0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x16,0x01,0x65,0x14,0x20,0x09,0xfa,0x0a,0x0a,0xfa,0x0b,0x1c,0x18,0x02,0x58,0xfe,0x0c,0x0e,0x16, +0x0b,0xfa,0x0b,0x1c,0x0b,0xfa,0x0b,0x16,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x41,0x02,0x7d,0x00,0x0e,0x00,0x0a,0xb7,0x00,0x00,0x00,0x76,0x14,0x01,0x07,0x17,0x2b,0x01,0x14,0x0f,0x01,0x06,0x22,0x26,0x35,0x11,0x34,0x3e,0x01,0x1f,0x01,0x16,0x01,0x41,0x0a,0xfa,0x0b,0x1c,0x16,0x16,0x1c,0x0b,0xfa,0x0a,0x01,0x5e,0x0e,0x0b,0xfa, +0x0b,0x16,0x0e,0x01,0xf4,0x0f,0x14,0x02,0x0c,0xfa,0x0a,0x00,0x00,0x01,0xff,0xff,0x00,0x00,0x02,0x3b,0x01,0xc9,0x00,0x0e,0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x15,0x32,0x02,0x07,0x18,0x2b,0x25,0x14,0x06,0x27,0x21,0x22,0x2e,0x01,0x3f,0x01,0x36,0x32,0x1f,0x01, +0x16,0x02,0x3b,0x14,0x0f,0xfe,0x0c,0x0f,0x14,0x02,0x0c,0xfa,0x0a,0x1e,0x0a,0xfa,0x0a,0xab,0x0e,0x16,0x01,0x14,0x1e,0x0b,0xfa,0x0a,0x0a,0xfa,0x0b,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x5e,0x02,0x51,0x00,0x15,0x00,0x1e,0x40,0x1b,0x03,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00, +0x61,0x00,0x00,0x01,0x00,0x51,0x17,0x19,0x02,0x07,0x18,0x2b,0x01,0x14,0x0f,0x01,0x17,0x16,0x14,0x0f,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x37,0x01,0x36,0x32,0x1f,0x01,0x16,0x01,0x5e,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x0e,0x06,0xfe,0xfc,0x06,0x06,0x01,0x04,0x05,0x10,0x04,0x1c,0x06,0x02,0x22,0x07,0x05,0xdc,0xdb,0x06,0x0e, +0x06,0x1c,0x05,0x05,0x01,0x05,0x05,0x0e,0x06,0x01,0x04,0x06,0x06,0x1c,0x05,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x4c,0x02,0x51,0x00,0x15,0x00,0x1e,0x40,0x1b,0x0b,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1c,0x14,0x02,0x07,0x18,0x2b,0x01,0x14,0x07,0x01, +0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x27,0x26,0x34,0x3f,0x01,0x36,0x32,0x17,0x01,0x16,0x01,0x4c,0x05,0xfe,0xfb,0x05,0x0e,0x06,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x10,0x04,0x01,0x05,0x05,0x01,0x3a,0x07,0x05,0xfe,0xfb,0x05,0x05,0x1c,0x06,0x0e,0x06,0xdb,0xdc,0x05,0x0e,0x06,0x1c,0x06,0x06,0xfe,0xfc,0x05,0x00, +0x00,0x03,0xff,0xfc,0xff,0x90,0x03,0x9a,0x03,0x2c,0x00,0x08,0x00,0x16,0x00,0x3f,0x00,0x83,0x40,0x0b,0x38,0x36,0x02,0x03,0x05,0x13,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x24,0x50,0x58,0x40,0x24,0x00,0x05,0x06,0x03,0x06,0x05,0x03,0x80,0x00,0x06,0x00,0x03,0x02,0x06,0x03,0x69,0x08,0x01,0x02,0x00,0x01,0x02,0x01,0x66,0x00,0x04, +0x04,0x00,0x61,0x07,0x01,0x00,0x00,0x12,0x04,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x06,0x03,0x06,0x05,0x03,0x80,0x07,0x01,0x00,0x00,0x04,0x06,0x00,0x04,0x69,0x00,0x06,0x00,0x03,0x02,0x06,0x03,0x69,0x08,0x01,0x02,0x01,0x01,0x02,0x59,0x08,0x01,0x02,0x02,0x01,0x62,0x00,0x01,0x02,0x01,0x52,0x59,0x40,0x19,0x0a,0x09,0x01,0x00,0x27, +0x26,0x22,0x20,0x1d,0x1b,0x11,0x0e,0x09,0x16,0x0a,0x16,0x05,0x04,0x00,0x08,0x01,0x08,0x09,0x07,0x16,0x2b,0x01,0x36,0x00,0x12,0x00,0x04,0x00,0x02,0x00,0x13,0x32,0x36,0x35,0x36,0x26,0x2b,0x01,0x22,0x06,0x07,0x14,0x16,0x17,0x13,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x07,0x15,0x33,0x35,0x34,0x37,0x36,0x32,0x17,0x16,0x15, +0x14,0x07,0x06,0x0f,0x01,0x06,0x0f,0x01,0x06,0x07,0x06,0x07,0x15,0x33,0x35,0x34,0x37,0x36,0x3f,0x01,0x36,0x01,0xc6,0xbe,0x01,0x10,0x06,0xfe,0xf6,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0c,0xbc,0x1e,0x26,0x02,0x26,0x1e,0x02,0x1c,0x26,0x02,0x26,0x1c,0xa8,0x1a,0x6a,0x52,0x40,0x28,0x44,0x04,0x6e,0x10,0x10,0x4e,0x0c,0x10,0x10,0x08, +0x0c,0x16,0x0a,0x0a,0x15,0x0b,0x06,0x0e,0x04,0x6c,0x04,0x06,0x16,0x1c,0x2e,0x03,0x2a,0x02,0xfe,0xf8,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0a,0x01,0x7c,0x01,0x12,0xfd,0x1e,0x26,0x1c,0x1e,0x26,0x24,0x1c,0x1e,0x26,0x02,0x01,0x48,0x22,0x2c,0x4e,0x4c,0x1a,0x2a,0x68,0x04,0x04,0x1a,0x1c,0x18,0x14,0x14,0x18,0x12,0x16,0x0c,0x08,0x0f, +0x07,0x08,0x11,0x09,0x08,0x14,0x3a,0x08,0x04,0x0c,0x10,0x14,0x10,0x12,0x22,0x00,0x00,0x02,0x00,0x00,0xff,0xbd,0x03,0x4d,0x03,0x0b,0x00,0x08,0x00,0x1d,0x00,0x3a,0xb5,0x00,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x29,0x50,0x58,0x40,0x10,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x13,0x4d,0x00,0x01,0x01,0x11,0x01,0x4e,0x1b,0x40, +0x10,0x00,0x01,0x00,0x01,0x86,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x13,0x00,0x4e,0x59,0xb5,0x38,0x1a,0x12,0x03,0x07,0x19,0x2b,0x13,0x34,0x26,0x0e,0x01,0x1e,0x02,0x36,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x2e,0x01,0x3d,0x01,0x34,0x36,0x37,0x33,0x32,0x16,0x17,0x01,0x16,0xfa,0x2a,0x3a,0x2c,0x02,0x28,0x3e,0x26,0x02, +0x55,0x14,0xfe,0xee,0x16,0x3b,0x14,0xfe,0x71,0x15,0x1e,0x2a,0x1d,0xe9,0x1d,0x48,0x15,0x01,0x8f,0x14,0x02,0x58,0x1e,0x2a,0x02,0x26,0x40,0x24,0x06,0x30,0xfe,0xd9,0x1e,0x15,0xfe,0xee,0x15,0x15,0x01,0x8f,0x15,0x48,0x1d,0xe8,0x1d,0x2a,0x01,0x1e,0x15,0xfe,0x71,0x15,0x00,0x0d,0x00,0x00,0xff,0xea,0x03,0xca,0x02,0xd2,0x00,0x03, +0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0xa9,0x40,0xa6,0x18,0x12,0x0c,0x03,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x20,0x19,0x13,0x1d,0x0d,0x05,0x07,0x03,0x00,0x07,0x03,0x7e,0x17,0x11,0x0b,0x03,0x05,0x02,0x04,0x02,0x05,0x04,0x80,0x16,0x10, +0x0a,0x03,0x04,0x01,0x02,0x04,0x01,0x7e,0x00,0x00,0x14,0x1e,0x0f,0x08,0x1b,0x05,0x03,0x02,0x00,0x03,0x67,0x1f,0x15,0x0e,0x1c,0x09,0x05,0x02,0x05,0x01,0x02,0x58,0x1f,0x15,0x0e,0x1c,0x09,0x05,0x02,0x02,0x01,0x5f,0x1a,0x01,0x01,0x02,0x01,0x4f,0x30,0x30,0x28,0x28,0x1c,0x1c,0x18,0x18,0x10,0x10,0x04,0x04,0x00,0x00,0x30,0x33, +0x30,0x33,0x32,0x31,0x2f,0x2e,0x2d,0x2c,0x28,0x2b,0x28,0x2b,0x2a,0x29,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x17,0x16,0x15,0x14,0x10,0x13,0x10,0x13,0x12,0x11,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x21, +0x07,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x33,0x35,0x03,0x33,0x35,0x23,0x13,0x23,0x15,0x33,0x17,0x35,0x23,0x1d,0x01,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x05,0x15,0x33,0x35,0x03,0x33,0x35,0x23,0x13,0x23,0x15,0x33,0x17,0x35,0x23,0x1d,0x01,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x03,0xca,0xfe,0x3d,0x9f,0x9f,0x9f,0x9f,0x9f, +0x9f,0x9f,0xe1,0x9e,0x9e,0x9e,0x9e,0x9e,0xfd,0x5b,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0xe1,0x9d,0x9d,0x9d,0x9d,0x9d,0x16,0x02,0xe8,0xfd,0x18,0x01,0xc4,0x9f,0x9f,0xfe,0x80,0x9d,0x01,0xc4,0x9e,0xe2,0x9f,0x9f,0xe1,0x9d,0x01,0x26,0x9e,0x9e,0x43,0x9f,0x9f,0xfe,0x80,0x9d,0x01,0xc4,0x9e,0xe2,0x9f,0x9f,0xe1,0x9d,0x01,0x26,0x9e, +0x9e,0x00,0x00,0x00,0x00,0x02,0xff,0xff,0xff,0xf9,0x04,0x19,0x03,0x0b,0x00,0x12,0x00,0x29,0x00,0x20,0x40,0x1d,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x00,0x63,0x00,0x03,0x03,0x13,0x03,0x4e,0x23,0x3a,0x23,0x36,0x35,0x05,0x07,0x1b,0x2b,0x01,0x14,0x0f,0x01,0x0e,0x01,0x23,0x21,0x22,0x2e,0x01,0x3f, +0x01,0x3e,0x01,0x33,0x21,0x32,0x16,0x27,0x15,0x21,0x22,0x06,0x0f,0x02,0x27,0x26,0x37,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x04,0x19,0x12,0xbb,0x18,0x56,0x26,0xfd,0xa1,0x13,0x1c,0x01,0x11,0xbc,0x18,0x56,0x25,0x02,0x5f,0x13,0x1e,0xc0,0xfe,0x30,0x35,0x72,0x23,0xbc,0x02,0x01,0x01,0x01,0x4a,0x33,0xb3, +0x33,0x4a,0x01,0x2f,0x34,0x48,0x01,0x3f,0x11,0x14,0xdd,0x1c,0x28,0x0e,0x22,0x14,0xdd,0x1c,0x28,0x0e,0xaf,0x5a,0x34,0x29,0xdd,0x03,0x07,0x05,0x02,0x02,0x18,0x33,0x4a,0x4a,0x33,0x12,0x4a,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf9,0x03,0xa1,0x03,0x0b,0x00,0x14,0x00,0x16,0x40,0x13,0x00,0x02,0x00,0x00,0x02,0x00,0x64,0x00, +0x01,0x01,0x13,0x01,0x4e,0x23,0x35,0x33,0x03,0x07,0x19,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x03,0xa1,0x4a,0x33,0xfd,0x59,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x77,0x33,0x4a,0x01,0xff,0xfe,0x77,0x33,0x4a,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33, +0x12,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf2,0x02,0xf8,0x02,0xcc,0x00,0x06,0x00,0x1d,0x40,0x1a,0x01,0x01,0x00,0x49,0x00,0x01,0x00,0x01,0x85,0x03,0x02,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x12,0x04,0x07,0x18,0x2b,0x09,0x02,0x33,0x11,0x21,0x11,0x02,0xf8,0xfe,0x84,0xfe,0x84,0xc0,0x01,0x78,0x01,0x6e, +0xfe,0x84,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0x00,0x02,0xff,0xf7,0xff,0xe2,0x03,0xdb,0x03,0x12,0x00,0x17,0x00,0x20,0x00,0x26,0x40,0x23,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x19,0x18,0x1d,0x1c,0x18,0x20,0x19,0x20,0x2f,0x04,0x07,0x17,0x2b,0x01,0x1e, +0x01,0x06,0x07,0x06,0x26,0x06,0x07,0x06,0x1e,0x01,0x07,0x0e,0x02,0x23,0x22,0x26,0x37,0x3e,0x01,0x37,0x24,0x03,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x03,0x59,0x48,0x3a,0x12,0x1a,0x10,0x4c,0x54,0x26,0x1e,0x12,0x32,0x02,0x02,0x44,0xb8,0x7c,0xba,0xd2,0x0a,0x08,0xc0,0x78,0x01,0x22,0x48,0x1e,0x2c,0x2c,0x3e,0x2c,0x2c,0x02, +0x6e,0x30,0x7c,0x54,0x06,0x04,0x1c,0x08,0x2a,0x2e,0x3a,0x48,0x0e,0x1a,0x4a,0x4a,0xca,0x90,0x76,0xea,0x22,0x54,0xfd,0x8a,0x2c,0x40,0x2a,0x2a,0x40,0x2c,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x6a,0x03,0x59,0x03,0x52,0x00,0x06,0x00,0x18,0x00,0x33,0x40,0x30,0x01,0x01,0x00,0x03,0x01,0x4c,0x00,0x03,0x00,0x03,0x85,0x04,0x01,0x00, +0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x18,0x16,0x11,0x0e,0x0b,0x09,0x00,0x06,0x00,0x06,0x05,0x07,0x16,0x2b,0x01,0x11,0x16,0x1f,0x01,0x16,0x17,0x05,0x14,0x16,0x17,0x21,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x21,0x02,0x3b,0x0d,0x08, +0xe3,0x08,0x08,0xfe,0xb1,0x20,0x16,0x01,0x2f,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x01,0xbe,0x02,0x34,0x01,0x08,0x08,0x08,0xe4,0x07,0x0d,0x12,0x16,0x1e,0x01,0xfd,0xb3,0x17,0x1e,0x01,0x20,0x16,0x03,0x7c,0x17,0x1e,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x08,0x00,0x6a,0x00,0x45, +0x40,0x42,0x65,0x59,0x4c,0x41,0x04,0x00,0x04,0x3b,0x0a,0x02,0x01,0x00,0x34,0x28,0x1b,0x10,0x04,0x03,0x01,0x03,0x4c,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x69,0x00,0x00,0x00,0x05,0x5f,0x00,0x05,0x05,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x5c,0x5b,0x53,0x51,0x49,0x48,0x2b,0x2a,0x22,0x20,0x13, +0x12,0x07,0x07,0x18,0x2b,0x01,0x34,0x26,0x22,0x0e,0x01,0x16,0x32,0x36,0x25,0x15,0x14,0x06,0x0f,0x01,0x06,0x07,0x16,0x17,0x16,0x14,0x07,0x0e,0x01,0x27,0x22,0x2f,0x01,0x06,0x07,0x06,0x07,0x06,0x2b,0x01,0x22,0x26,0x35,0x27,0x26,0x27,0x07,0x06,0x22,0x27,0x26,0x27,0x26,0x34,0x37,0x3e,0x01,0x37,0x26,0x2f,0x01,0x2e,0x01,0x27, +0x35,0x34,0x36,0x3f,0x01,0x36,0x37,0x26,0x27,0x26,0x34,0x37,0x3e,0x01,0x33,0x32,0x1f,0x01,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x32,0x16,0x1f,0x01,0x16,0x17,0x37,0x36,0x32,0x17,0x16,0x17,0x16,0x14,0x07,0x0e,0x01,0x07,0x16,0x1f,0x01,0x1e,0x01,0x02,0x3b,0x52,0x78,0x52,0x02,0x56,0x74,0x56,0x01,0x1c,0x08,0x07,0x68,0x0a,0x0b, +0x13,0x28,0x06,0x05,0x0f,0x50,0x0d,0x07,0x07,0x4d,0x19,0x1a,0x09,0x07,0x04,0x10,0x7c,0x08,0x0c,0x10,0x1b,0x17,0x4f,0x06,0x10,0x06,0x46,0x16,0x04,0x05,0x08,0x28,0x0a,0x0f,0x08,0x66,0x07,0x08,0x01,0x0a,0x05,0x68,0x08,0x0e,0x17,0x25,0x06,0x05,0x0f,0x50,0x0d,0x07,0x08,0x4d,0x18,0x1a,0x09,0x08,0x03,0x11,0x7c,0x07,0x0c,0x01, +0x0f,0x1c,0x17,0x4f,0x05,0x0f,0x07,0x48,0x14,0x04,0x04,0x09,0x28,0x0a,0x0f,0x08,0x66,0x07,0x0a,0x01,0x5e,0x3b,0x54,0x54,0x76,0x54,0x54,0x78,0x7c,0x07,0x0c,0x01,0x10,0x1e,0x15,0x1b,0x32,0x06,0x0e,0x06,0x15,0x50,0x01,0x05,0x3c,0x0d,0x08,0x4c,0x1c,0x10,0x0a,0x07,0x67,0x09,0x0c,0x3c,0x05,0x06,0x40,0x1e,0x05,0x0e,0x06,0x0c, +0x32,0x0f,0x1c,0x1b,0x0f,0x01,0x0c,0x07,0x7c,0x07,0x0c,0x01,0x10,0x19,0x1a,0x20,0x2d,0x07,0x0c,0x07,0x14,0x50,0x05,0x3c,0x0d,0x08,0x4c,0x1c,0x10,0x0a,0x07,0x67,0x09,0x0b,0x3b,0x05,0x05,0x43,0x1c,0x05,0x0e,0x06,0x0c,0x32,0x0f,0x1c,0x1a,0x10,0x01,0x0c,0x00,0x00,0x00,0x09,0x00,0x00,0xff,0xf9,0x03,0xe8,0x03,0x0b,0x00,0x0f, +0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x5f,0x00,0x6f,0x00,0x7f,0x00,0x8f,0x00,0x47,0x40,0x44,0x0f,0x09,0x02,0x03,0x0e,0x08,0x02,0x02,0x01,0x03,0x02,0x67,0x0b,0x05,0x02,0x01,0x0a,0x04,0x02,0x00,0x01,0x00,0x63,0x10,0x0c,0x02,0x06,0x06,0x07,0x5f,0x11,0x0d,0x02,0x07,0x07,0x13,0x06,0x4e,0x8e,0x8b,0x86,0x83,0x7e,0x7b, +0x76,0x73,0x6e,0x6b,0x66,0x63,0x5e,0x5b,0x56,0x53,0x4e,0x4b,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x33,0x12,0x07,0x1f,0x2b,0x25,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x13,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x07,0x23,0x22, +0x26,0x27,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x27,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x17,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22, +0x26,0x27,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x37,0x33,0x32,0x16,0x13,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x1e,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2, +0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0xfe,0x9c,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0xfe,0x9c,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2, +0x17,0x1e,0x01,0x66,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0x01,0x20,0x16,0xb2,0x16,0x20,0x20,0x16,0xb2,0x17,0x1e,0x9a,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x01,0x06,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0xfe,0xcd,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x02, +0x24,0x6b,0x16,0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0xfe,0xcc,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0xfe,0xcd,0x6c,0x16,0x1e,0x01,0x20,0x15,0x6c,0x16,0x20,0x01,0x1e,0x02,0x24,0x6b,0x16,0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0xfe,0xcc,0x6b,0x16,0x20,0x01,0x1e,0x17,0x6b,0x17,0x1e,0x01,0x20,0x01,0x08,0x6b,0x16, +0x20,0x20,0x16,0x6b,0x16,0x20,0x20,0x00,0x00,0x05,0x00,0x00,0xff,0x6a,0x03,0xe8,0x03,0x52,0x00,0x10,0x00,0x14,0x00,0x25,0x00,0x2f,0x00,0x39,0x00,0x65,0x40,0x62,0x33,0x29,0x02,0x07,0x08,0x21,0x01,0x05,0x02,0x1d,0x15,0x0d,0x0c,0x04,0x00,0x05,0x03,0x4c,0x04,0x01,0x05,0x01,0x4b,0x0a,0x01,0x08,0x09,0x01,0x07,0x01,0x08,0x07, +0x67,0x00,0x02,0x05,0x01,0x02,0x57,0x06,0x0c,0x03,0x0b,0x04,0x01,0x00,0x05,0x00,0x01,0x05,0x69,0x06,0x0c,0x03,0x0b,0x04,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x00,0x00,0x37,0x35,0x32,0x31,0x2d,0x2b,0x28,0x27,0x24,0x22,0x1f,0x1e,0x1b,0x19,0x11,0x14,0x11,0x14,0x13,0x12,0x00,0x10,0x00,0x0f,0x37,0x0d, +0x07,0x17,0x2b,0x01,0x11,0x14,0x06,0x07,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x13,0x36,0x33,0x21,0x11,0x23,0x11,0x01,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x22,0x26,0x27,0x11,0x33,0x32,0x17,0x25,0x15,0x23,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x05,0x15,0x23,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x89,0x16, +0x0e,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x8b,0x04,0x0d,0x01,0x9f,0x8e,0x02,0x3b,0x16,0x0e,0xfe,0xe3,0x0f,0x14,0x01,0x0f,0x14,0x01,0xed,0x0d,0x04,0xfe,0x3e,0xc5,0x0a,0x08,0xa1,0x08,0x0a,0x01,0x77,0xc5,0x0a,0x08,0xa1,0x08,0x0a,0x02,0x9f,0xfe,0x54,0x0f,0x14,0x01,0xfe,0xbf,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x01,0xe8,0x0c, +0xfe,0x78,0x01,0x88,0xfe,0x0c,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x41,0x16,0x0e,0x01,0xac,0x0c,0xad,0x7d,0x7d,0x08,0x0a,0x0a,0x08,0x7d,0x7d,0x08,0x0a,0x0a,0x00,0x08,0xff,0xff,0xff,0xf8,0x03,0xe9,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x5f,0x00,0x6f,0x00,0x7f,0x00,0x6f,0x40,0x6c,0x79,0x78, +0x71,0x49,0x48,0x41,0x06,0x08,0x09,0x69,0x61,0x60,0x29,0x21,0x20,0x06,0x04,0x05,0x59,0x58,0x51,0x50,0x19,0x18,0x11,0x10,0x08,0x02,0x03,0x39,0x38,0x31,0x09,0x08,0x01,0x06,0x00,0x01,0x04,0x4c,0x0d,0x01,0x05,0x0c,0x01,0x04,0x03,0x05,0x04,0x67,0x0b,0x01,0x03,0x0a,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01,0x06,0x01,0x00, +0x01,0x00,0x63,0x0e,0x01,0x08,0x08,0x09,0x5f,0x0f,0x01,0x09,0x09,0x13,0x08,0x4e,0x7d,0x7b,0x75,0x73,0x6d,0x6b,0x65,0x64,0x5d,0x5b,0x55,0x54,0x4d,0x4c,0x26,0x26,0x17,0x26,0x17,0x17,0x17,0x17,0x14,0x10,0x07,0x1f,0x2b,0x37,0x15,0x14,0x06,0x27,0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x27,0x15,0x14,0x06,0x27, +0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x17,0x33,0x32,0x16,0x27,0x15,0x14,0x06,0x07,0x23,0x22,0x26,0x37,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x01,0x15,0x14,0x06,0x27,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x37,0x35,0x34,0x36,0x37,0x33,0x32,0x16,0x01,0x15,0x14,0x06,0x27, +0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x17,0x21,0x32,0x16,0x27,0x15,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x27,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x8f,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08, +0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x03,0x58,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0xfc,0xa6,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x03,0x58,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x01,0x0a,0x08,0xfd,0x12,0x07, +0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x01,0x0a,0x08,0xfd,0x12,0x07,0x0a,0x01,0x0c,0x06,0x02,0xee,0x07,0x0c,0x76,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0xd0,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0xce,0x6b,0x07,0x0a,0x01,0x0c,0x06,0x6b,0x08,0x0a,0x0a,0xfe,0x4c,0x6b,0x07,0x0c,0x01,0x0a, +0x08,0x6b,0x07,0x0a,0x01,0x0c,0x02,0x7d,0x6b,0x08,0x0a,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0xfe,0x4d,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0xce,0x6b,0x07,0x0a,0x01,0x0c,0x06,0x6b,0x08,0x0a,0x0a,0xcf,0x6b,0x08,0x0a,0x0a,0x08,0x6b,0x07,0x0a,0x01,0x0c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x02,0x83, +0x03,0x0b,0x00,0x07,0x00,0x1f,0x00,0x20,0x40,0x1d,0x05,0x03,0x02,0x00,0x00,0x02,0x00,0x02,0x63,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x13,0x01,0x4e,0x23,0x13,0x25,0x36,0x13,0x10,0x06,0x07,0x1c,0x2b,0x13,0x21,0x35,0x34,0x26,0x0e,0x01,0x17,0x05,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x17,0x33,0x35,0x34, +0x36,0x32,0x16,0x07,0x15,0x33,0x32,0x16,0xb3,0x01,0x1d,0x54,0x76,0x54,0x01,0x01,0xd0,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0x20,0x16,0x11,0x94,0xcc,0x96,0x02,0x12,0x17,0x1e,0x01,0xa5,0x6c,0x3b,0x54,0x02,0x50,0x3d,0xa1,0xfe,0xbe,0x16,0x1e,0x01,0x20,0x15,0x01,0x42,0x16,0x20,0x01,0x6c,0x66,0x94,0x94,0x66,0x6c,0x1e,0x00,0x00, +0x00,0x01,0x00,0x00,0xff,0xe2,0x02,0xda,0x02,0xda,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x01,0x00,0x01,0x4c,0x00,0x01,0x00,0x4a,0x05,0x01,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x11,0x11,0x02,0x07,0x18,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x01,0x01,0x7a,0x01,0x60,0xfe, +0xa0,0xfe,0x86,0x02,0xda,0xbe,0xfe,0x86,0xc0,0x01,0x7c,0x00,0x00,0x02,0xff,0xff,0xff,0xb1,0x04,0x2f,0x03,0x52,0x00,0x0f,0x00,0x2f,0x00,0x2e,0x40,0x2b,0x09,0x01,0x02,0x01,0x00,0x20,0x01,0x03,0x02,0x02,0x4c,0x00,0x05,0x00,0x00,0x01,0x05,0x00,0x67,0x00,0x01,0x04,0x01,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x03,0x11,0x03,0x4e, +0x35,0x26,0x36,0x26,0x26,0x14,0x06,0x07,0x1c,0x2b,0x01,0x11,0x34,0x26,0x27,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x14,0x1e,0x01,0x17,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x34,0x3e,0x01,0x35,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0xe8,0x0a,0x08,0xfc,0x83, +0x07,0x0a,0x01,0x0c,0x06,0x03,0x7d,0x07,0x0c,0x46,0x34,0x25,0xfe,0xd1,0x12,0x10,0x01,0x14,0x0f,0xfe,0xe2,0x0f,0x14,0x01,0x12,0x12,0xfe,0xd0,0x24,0x36,0x01,0x34,0x25,0x03,0x7d,0x25,0x34,0x01,0x28,0x01,0xd1,0x07,0x0a,0x01,0x0c,0x06,0xfe,0x2f,0x07,0x0a,0x0a,0x01,0xd8,0xfd,0xa1,0x25,0x34,0x01,0x14,0x2e,0x22,0x07,0x0e,0x16, +0x16,0x0e,0x08,0x22,0x2c,0x15,0x36,0x24,0x02,0x5f,0x25,0x34,0x34,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xe1,0x02,0xf8,0x02,0xdb,0x00,0x21,0x00,0x31,0x00,0x2f,0x40,0x2c,0x11,0x06,0x02,0x00,0x03,0x01,0x4c,0x00,0x01,0x00,0x01,0x86,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x69,0x00,0x03,0x00,0x00,0x03,0x59,0x00,0x03,0x03,0x00, +0x61,0x00,0x00,0x03,0x00,0x51,0x15,0x2b,0x1d,0x25,0x22,0x05,0x07,0x1b,0x2b,0x01,0x0e,0x01,0x23,0x22,0x26,0x27,0x0f,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x3f,0x02,0x2e,0x01,0x35,0x34,0x37,0x3e,0x01,0x32,0x17,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x25,0x1e,0x01,0x33,0x32,0x3e,0x01,0x34,0x2e,0x01,0x22,0x0e,0x01,0x15,0x14,0x16, +0x02,0xa8,0x29,0x66,0x36,0x31,0x5d,0x28,0x33,0x82,0x15,0x18,0x1e,0x2d,0x0f,0x81,0x7e,0x20,0x22,0x27,0x25,0x80,0x95,0x40,0x3f,0x26,0x26,0x14,0x14,0xfe,0x99,0x19,0x40,0x21,0x2d,0x4f,0x2e,0x2f,0x4e,0x5b,0x4f,0x2f,0x1a,0x01,0x00,0x29,0x2a,0x22,0x20,0x7d,0x82,0x0f,0x2f,0x1e,0x1a,0x13,0x82,0x33,0x26,0x5e,0x32,0x4b,0x40,0x3f, +0x4b,0x27,0x25,0x3f,0x41,0x4a,0x38,0x32,0x34,0x24,0x18,0x1a,0x2e,0x4f,0x5d,0x4e,0x2e,0x2f,0x4e,0x2d,0x22,0x40,0x00,0x00,0x00,0x02,0xff,0xfd,0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x0c,0x00,0x19,0x00,0x28,0x40,0x25,0x04,0x01,0x00,0x00,0x03,0x61,0x00,0x03,0x03,0x13,0x4d,0x00,0x01,0x01,0x02,0x61,0x00,0x02,0x02,0x11,0x02,0x4e, +0x01,0x00,0x17,0x16,0x11,0x10,0x07,0x06,0x00,0x0c,0x01,0x0c,0x05,0x07,0x16,0x2b,0x01,0x22,0x0e,0x02,0x1e,0x01,0x32,0x3e,0x01,0x2e,0x02,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e,0x01,0x01,0xad,0x53,0x8c,0x50,0x02,0x54,0x88,0xaa,0x86,0x56,0x04,0x4e,0x8e,0x01,0x5b,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xf4, +0xba,0x7e,0x02,0x8e,0x52,0x8c,0xa4,0x8c,0x52,0x52,0x8c,0xa4,0x8c,0x52,0xfe,0xd0,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0xb1,0x03,0x4d,0x02,0xff,0x00,0x06,0x00,0x14,0x00,0x19,0x00,0x24,0x00,0xe3,0x40,0x17,0x1e,0x01,0x02,0x05,0x1d,0x16,0x0e,0x07,0x04,0x03,0x02,0x19,0x03,0x02, +0x03,0x00,0x03,0x01,0x01,0x01,0x00,0x04,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x26,0x00,0x02,0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x00,0x03,0x70,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x72,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x4b,0xb0,0x12,0x50,0x58,0x40,0x27,0x00,0x02, +0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x05,0x03,0x00,0x7e,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x72,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x4b,0xb0,0x29,0x50,0x58,0x40,0x28,0x00,0x02,0x05,0x03,0x05,0x02,0x03,0x80,0x00,0x03,0x00,0x05,0x03,0x00,0x7e,0x06,0x01,0x01,0x00, +0x04,0x00,0x01,0x04,0x80,0x00,0x05,0x05,0x13,0x4d,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x1b,0x40,0x23,0x00,0x05,0x02,0x05,0x85,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x00,0x03,0x85,0x06,0x01,0x01,0x00,0x04,0x00,0x01,0x04,0x80,0x00,0x00,0x00,0x04,0x60,0x00,0x04,0x04,0x11,0x04,0x4e,0x59,0x59,0x59,0x40,0x12, +0x00,0x00,0x21,0x20,0x18,0x17,0x10,0x0f,0x09,0x08,0x00,0x06,0x00,0x06,0x14,0x07,0x07,0x17,0x2b,0x17,0x37,0x27,0x07,0x15,0x33,0x15,0x01,0x34,0x23,0x22,0x07,0x01,0x06,0x15,0x14,0x33,0x32,0x37,0x01,0x36,0x27,0x17,0x01,0x23,0x35,0x01,0x14,0x0f,0x01,0x27,0x37,0x36,0x32,0x1f,0x01,0x16,0xcb,0x32,0x83,0x33,0x48,0x01,0x5f,0x0c, +0x05,0x04,0xfe,0xd1,0x04,0x0d,0x05,0x04,0x01,0x2f,0x03,0x1e,0xe8,0xfe,0x30,0xe8,0x03,0x4d,0x14,0x5d,0xe8,0x5d,0x14,0x3b,0x16,0x83,0x14,0x07,0x33,0x83,0x33,0x3c,0x47,0x02,0x06,0x0c,0x04,0xfe,0xd2,0x04,0x06,0x0c,0x04,0x01,0x2e,0x04,0x71,0xe8,0xfe,0x2f,0xe9,0x01,0x9a,0x1d,0x15,0x5d,0xe9,0x5c,0x15,0x15,0x83,0x16,0x00,0x00, +0x00,0x05,0xff,0xff,0xff,0xf9,0x03,0x59,0x02,0xc4,0x00,0x08,0x00,0x11,0x00,0x21,0x00,0x2b,0x00,0x41,0x00,0x8e,0x40,0x0f,0x13,0x01,0x01,0x04,0x09,0x00,0x02,0x00,0x01,0x1b,0x01,0x05,0x00,0x03,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x03,0x01,0x01,0x04,0x00,0x04,0x01,0x00,0x80,0x02,0x01,0x00,0x05,0x08,0x00,0x70,0x00,0x09, +0x00,0x07,0x06,0x09,0x07,0x67,0x00,0x06,0x00,0x04,0x01,0x06,0x04,0x67,0x00,0x05,0x08,0x08,0x05,0x58,0x00,0x05,0x05,0x08,0x60,0x00,0x08,0x05,0x08,0x50,0x1b,0x40,0x31,0x03,0x01,0x01,0x04,0x00,0x04,0x01,0x00,0x80,0x02,0x01,0x00,0x05,0x04,0x00,0x05,0x7e,0x00,0x09,0x00,0x07,0x06,0x09,0x07,0x67,0x00,0x06,0x00,0x04,0x01,0x06, +0x04,0x67,0x00,0x05,0x08,0x08,0x05,0x58,0x00,0x05,0x05,0x08,0x60,0x00,0x08,0x05,0x08,0x50,0x59,0x40,0x0e,0x3d,0x3a,0x37,0x23,0x13,0x26,0x25,0x13,0x14,0x13,0x12,0x0a,0x07,0x1f,0x2b,0x25,0x14,0x06,0x22,0x26,0x3e,0x01,0x1e,0x01,0x17,0x14,0x06,0x22,0x26,0x3e,0x01,0x1e,0x01,0x17,0x35,0x34,0x26,0x27,0x21,0x22,0x06,0x07,0x15, +0x14,0x16,0x17,0x21,0x32,0x36,0x01,0x21,0x03,0x2e,0x01,0x23,0x21,0x22,0x06,0x07,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x35,0x34,0x37,0x13,0x3e,0x01,0x17,0x21,0x32,0x16,0x17,0x13,0x16,0x02,0x44,0x1a,0x24,0x1c,0x02,0x18,0x28,0x16,0x91,0x1a,0x24,0x1c,0x02,0x18,0x28,0x16,0x41,0x0c,0x06,0xfd,0x59,0x07,0x0a,0x01,0x0c, +0x06,0x02,0xa7,0x07,0x0a,0xfd,0x52,0x02,0x93,0x58,0x02,0x0e,0x07,0xfe,0x4b,0x07,0x0e,0x02,0x02,0x9e,0x34,0x25,0xfd,0x59,0x24,0x36,0x01,0x09,0x6e,0x09,0x34,0x1e,0x01,0xb5,0x1f,0x32,0x0a,0x6e,0x09,0xab,0x12,0x1a,0x1a,0x24,0x1c,0x02,0x18,0x14,0x12,0x1a,0x1a,0x24,0x1c,0x02,0x18,0x6d,0xb3,0x07,0x0a,0x01,0x0c,0x06,0xb3,0x07, +0x0a,0x01,0x0c,0x01,0x12,0x01,0x0d,0x07,0x0a,0x0a,0x07,0xfe,0x9a,0xb3,0x25,0x34,0x34,0x25,0xb3,0x0e,0x1c,0x01,0x52,0x1d,0x26,0x01,0x24,0x1e,0xfe,0xae,0x1c,0x00,0x00,0x01,0x00,0x00,0xff,0xe2,0x02,0xda,0x02,0xda,0x00,0x06,0x00,0x26,0x40,0x23,0x01,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x4a,0x02,0x01,0x00,0x49,0x00,0x01, +0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x13,0x02,0x07,0x18,0x2b,0x09,0x02,0x35,0x21,0x11,0x21,0x01,0x5e,0x01,0x7c,0xfe,0x84,0xfe,0xa2,0x01,0x5e,0x02,0xda,0xfe,0x84,0xfe,0x84,0xc0,0x01,0x7a,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xab,0x03,0x6b,0x03,0x20,0x00,0x0f,0x00,0x13,0x00,0x1f, +0x00,0x38,0x40,0x35,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x0b,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x00,0x5f,0x04,0x01,0x00,0x00,0x10,0x4d,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x11,0x01,0x4e,0x01,0x00,0x13,0x12,0x11,0x10,0x09,0x06,0x00,0x0f,0x01,0x0e,0x05,0x07,0x16,0x2b,0x13,0x22,0x06,0x15,0x11,0x14, +0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x05,0x21,0x11,0x21,0x01,0x07,0x17,0x07,0x17,0x37,0x17,0x37,0x27,0x37,0x27,0x07,0x87,0x0c,0x11,0x11,0x0c,0x02,0xc6,0x0c,0x11,0x11,0x0c,0xfd,0x58,0x02,0x8b,0xfd,0x75,0x01,0x87,0x2d,0x52,0x52,0x2d,0x53,0x52,0x2e,0x53,0x53,0x2e,0x52,0x03,0x1f,0x12,0x0c,0xfc,0xc8,0x0c,0x11, +0x11,0x0c,0x03,0x38,0x0c,0x12,0x3b,0xfd,0x02,0x02,0xcb,0x2e,0x52,0x53,0x2d,0x52,0x52,0x2d,0x53,0x52,0x2e,0x52,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x84,0x03,0x8f,0x03,0x33,0x00,0x02,0x00,0x10,0x00,0x3c,0x00,0x68,0x01,0x4d,0x40,0x0b,0x01,0x01,0x0a,0x02,0x62,0x36,0x02,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x36, +0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x72,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b,0x4b,0xb0,0x13,0x50,0x58,0x40,0x3c,0x12,0x01, +0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x70,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b,0x4b,0xb0,0x16,0x50,0x58, +0x40,0x3d,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x0e,0x05,0x02,0x02,0x0a,0x0a,0x02,0x59,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x03,0x4e,0x1b, +0x40,0x44,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x00,0x03,0x04,0x0a,0x03,0x57,0x0e,0x05,0x02,0x02,0x0f,0x01,0x0a,0x06,0x02,0x0a,0x69,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x69,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61, +0x0b,0x01,0x08,0x09,0x08,0x51,0x59,0x59,0x59,0x40,0x2d,0x04,0x03,0x00,0x00,0x68,0x66,0x5e,0x5c,0x5b,0x59,0x4d,0x4b,0x4a,0x48,0x3f,0x3d,0x3c,0x3a,0x32,0x30,0x2f,0x2d,0x21,0x1f,0x1e,0x1c,0x13,0x11,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x03,0x10,0x04,0x0f,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x01,0x07,0x27,0x25,0x22,0x06,0x1d, +0x01,0x33,0x35,0x21,0x15,0x33,0x35,0x34,0x26,0x23,0x13,0x33,0x32,0x16,0x1d,0x01,0x14,0x16,0x17,0x16,0x17,0x16,0x3b,0x01,0x15,0x23,0x22,0x07,0x06,0x07,0x06,0x07,0x06,0x1d,0x01,0x14,0x0e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e, +0x01,0x2b,0x01,0x35,0x33,0x32,0x36,0x37,0x36,0x37,0x36,0x3d,0x01,0x34,0x37,0x3e,0x02,0x3b,0x01,0x15,0x23,0x22,0x1d,0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x02,0x90,0x63,0x64,0xfe,0xcd,0x0d,0x13,0x3f,0x01,0x58,0x3f,0x12,0x0d,0x55,0x1b,0x47,0x45,0x07,0x0b,0x09,0x12,0x0e,0x1c,0x0f,0x0f,0x1a,0x12,0x0f,0x0c,0x08,0x05, +0x03,0x0f,0x22,0x34,0x27,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa8,0x1b,0x47,0x44,0x04,0x04,0x0b,0x09,0x23,0x18,0x10,0x10,0x1c,0x20,0x0a,0x08,0x05,0x04,0x07,0x07,0x23,0x33,0x27,0x1b,0x15,0x55,0x4e,0x4e,0x55,0x15,0x02,0xb1,0xac,0xac,0x82,0x12,0x0d,0xe7,0xc7,0x2e,0x4e,0x0d,0x12,0xfe,0xfa,0x42,0x44,0x54,0x14,0x1b,0x09,0x0a, +0x05,0x05,0x33,0x05,0x03,0x0a,0x08,0x0f,0x0d,0x14,0x80,0x1d,0x33,0x23,0x13,0x34,0x52,0x7f,0x5a,0x0a,0x09,0x5c,0x54,0x54,0xfd,0x8a,0x43,0x43,0x7e,0x0e,0x12,0x0e,0x0a,0x09,0x0b,0x33,0x08,0x09,0x08,0x0f,0x14,0x0d,0x57,0x21,0x16,0x19,0x24,0x12,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xff,0xf2,0x02,0xf8,0x02,0xcc,0x00,0x06,0x00,0x17,0x40,0x14,0x06,0x01,0x00,0x4a,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x11,0x11,0x10,0x03,0x07,0x19,0x2b,0x01,0x23,0x11,0x21,0x11,0x23,0x01,0x02,0xf8,0xc0,0xfe,0x88,0xc0,0x01,0x7c,0x01,0x50,0xfe,0xa2,0x01,0x5e,0x01,0x7c,0x00,0x01,0x00,0x00,0x00,0x00,0x03,0xa5, +0x02,0x98,0x00,0x15,0x00,0x1d,0x40,0x1a,0x0f,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x14,0x17,0x14,0x03,0x07,0x19,0x2b,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x01,0x36,0x32,0x1f,0x01,0x16,0x03,0xa5,0x10,0xfe,0x20,0x10,0x2c, +0x10,0xfe,0xea,0x0f,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0x01,0x6e,0x10,0x2c,0x10,0x4c,0x10,0x02,0x16,0x16,0x10,0xfe,0x20,0x0f,0x0f,0x01,0x16,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa5,0x01,0x6f,0x10,0x10,0x4c,0x0f,0x00,0x03,0xff,0xf5,0xff,0xb1,0x03,0xf3,0x03,0x52,0x00,0x0f,0x00,0x21,0x00,0x33,0x00,0x33,0x40,0x30,0x1b,0x11,0x02,0x03, +0x02,0x09,0x01,0x02,0x01,0x00,0x02,0x4c,0x00,0x05,0x00,0x02,0x03,0x05,0x02,0x67,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x67,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x11,0x04,0x4e,0x17,0x38,0x27,0x27,0x26,0x23,0x06,0x07,0x1c,0x2b,0x25,0x35,0x34,0x26,0x2b,0x01,0x22,0x06,0x1d,0x01,0x14,0x16,0x17,0x33,0x32,0x36,0x27,0x13,0x34, +0x27,0x26,0x2b,0x01,0x22,0x07,0x06,0x15,0x17,0x14,0x16,0x37,0x33,0x32,0x36,0x03,0x01,0x16,0x07,0x0e,0x01,0x07,0x21,0x22,0x26,0x27,0x26,0x37,0x01,0x3e,0x01,0x32,0x16,0x02,0x3b,0x0a,0x07,0x6c,0x07,0x0a,0x0a,0x07,0x6c,0x07,0x0a,0x01,0x0a,0x05,0x07,0x07,0x7a,0x06,0x08,0x05,0x09,0x0c,0x07,0x67,0x08,0x0c,0x08,0x01,0xac,0x14, +0x15,0x09,0x22,0x12,0xfc,0xa6,0x12,0x22,0x09,0x15,0x14,0x01,0xad,0x09,0x22,0x26,0x22,0x53,0x6a,0x08,0x0a,0x0a,0x08,0x6a,0x08,0x0a,0x01,0x0c,0xd7,0x01,0x01,0x06,0x04,0x06,0x06,0x04,0x08,0xff,0x05,0x08,0x01,0x06,0x02,0x10,0xfc,0xee,0x23,0x23,0x11,0x12,0x01,0x14,0x10,0x23,0x23,0x03,0x12,0x11,0x14,0x14,0x00,0x04,0x00,0x00, +0xff,0x79,0x03,0xd1,0x03,0x3c,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x36,0x40,0x33,0x07,0x01,0x05,0x03,0x01,0x01,0x05,0x01,0x63,0x06,0x01,0x04,0x04,0x00,0x5f,0x09,0x02,0x08,0x03,0x00,0x00,0x12,0x04,0x4e,0x11,0x10,0x01,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x19,0x16,0x10,0x1f,0x11,0x1e,0x09,0x06,0x00,0x0f, +0x01,0x0e,0x0a,0x07,0x16,0x2b,0x13,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x33,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x05,0x21,0x11,0x21,0x01,0x21,0x11,0x21,0x38,0x0d,0x13,0x13,0x0d,0x01,0x7c,0x0d,0x12,0x12,0x0d,0x80,0x0d,0x12,0x12,0x0d,0x01,0x7d, +0x0d,0x12,0x12,0x0d,0xfc,0xa6,0x01,0x3e,0xfe,0xc2,0x01,0xfc,0x01,0x3e,0xfe,0xc2,0x03,0x3b,0x12,0x0d,0xfc,0x7d,0x0d,0x12,0x12,0x0d,0x03,0x83,0x0d,0x12,0x12,0x0d,0xfc,0x7d,0x0d,0x12,0x12,0x0d,0x03,0x83,0x0d,0x12,0x3e,0xfc,0xbb,0x03,0x45,0xfc,0xbb,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x7e,0x03,0xd6,0x03,0x37,0x00,0x0f, +0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x3d,0x40,0x3a,0x00,0x04,0x00,0x01,0x02,0x04,0x01,0x67,0x00,0x02,0x09,0x01,0x07,0x06,0x02,0x07,0x67,0x00,0x06,0x00,0x03,0x06,0x03,0x63,0x08,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x12,0x05,0x4e,0x24,0x24,0x20,0x20,0x24,0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x14,0x35,0x35,0x35, +0x32,0x0a,0x07,0x1b,0x2b,0x01,0x34,0x26,0x23,0x21,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x15,0x34,0x26,0x23,0x21,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x03,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x03,0xd5,0x12,0x0d,0xfc,0x7d,0x0d,0x13,0x13,0x0d,0x03,0x83,0x0d,0x12,0x12,0x0d,0xfc,0x7d,0x0d, +0x13,0x13,0x0d,0x03,0x83,0x0d,0x12,0x3f,0xfc,0xbc,0x03,0x44,0xfc,0xbc,0x03,0x17,0x0d,0x12,0x12,0x0d,0xfe,0x84,0x0d,0x12,0x12,0x0d,0x80,0x0d,0x12,0x12,0x0d,0xfe,0x83,0x0d,0x12,0x12,0x0d,0x03,0x5a,0xfe,0xc2,0x01,0x3e,0xfe,0x04,0xfe,0xc1,0x01,0x3f,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x89,0x03,0xdc,0x03,0x38,0x00,0x02, +0x00,0x10,0x00,0x39,0x00,0x62,0x01,0x0d,0x40,0x0b,0x01,0x01,0x06,0x0a,0x5c,0x33,0x02,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x1c,0x50,0x58,0x40,0x38,0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x02,0x80,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10, +0x01,0x09,0x0b,0x01,0x08,0x09,0x08,0x65,0x0f,0x01,0x0a,0x0a,0x03,0x5f,0x00,0x03,0x03,0x13,0x0a,0x4e,0x1b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x3f,0x12,0x01,0x01,0x03,0x01,0x85,0x04,0x11,0x02,0x00,0x03,0x02,0x03,0x00,0x02,0x80,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x00,0x03,0x0f,0x01,0x0a,0x06,0x03,0x0a,0x69,0x0d,0x01, +0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61,0x0b,0x01,0x08,0x09,0x08,0x51,0x1b,0x40,0x45,0x12,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x03,0x00,0x03,0x04,0x00,0x80,0x11,0x01,0x00,0x02,0x03,0x00,0x02,0x7e,0x0e,0x05,0x02,0x02,0x0a,0x03,0x02,0x0a,0x7e,0x00,0x03,0x0f, +0x01,0x0a,0x06,0x03,0x0a,0x69,0x0d,0x01,0x06,0x0c,0x01,0x07,0x09,0x06,0x07,0x6a,0x10,0x01,0x09,0x08,0x08,0x09,0x59,0x10,0x01,0x09,0x09,0x08,0x61,0x0b,0x01,0x08,0x09,0x08,0x51,0x59,0x59,0x40,0x2d,0x04,0x03,0x00,0x00,0x62,0x60,0x58,0x56,0x55,0x53,0x4a,0x48,0x47,0x45,0x3c,0x3a,0x39,0x37,0x2f,0x2d,0x2c,0x2a,0x1f,0x1d,0x1c, +0x1a,0x13,0x11,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x03,0x10,0x04,0x0f,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x01,0x07,0x27,0x25,0x22,0x06,0x1d,0x01,0x33,0x35,0x21,0x15,0x33,0x35,0x34,0x26,0x23,0x01,0x33,0x32,0x16,0x1d,0x01,0x14,0x1e,0x02,0x3b,0x01,0x15,0x23,0x22,0x07,0x0e,0x02,0x1d,0x01,0x14,0x07,0x0e,0x02,0x2b,0x01,0x35, +0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e,0x01,0x2b,0x01,0x35,0x33,0x32,0x3e,0x02,0x3d,0x01,0x34,0x3e,0x02,0x3b,0x01,0x15,0x23,0x22,0x1d,0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x03,0xdc,0x63,0x64,0xfd,0x31,0x0d,0x13,0x3f,0x02,0xf4,0x3f,0x12, +0x0d,0xfe,0xb9,0x1b,0x47,0x45,0x07,0x16,0x22,0x18,0x10,0x10,0x16,0x16,0x10,0x14,0x07,0x08,0x06,0x21,0x38,0x25,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa8,0x1b,0x47,0x44,0x04,0x04,0x0b,0x09,0x23,0x18,0x10,0x10,0x1c,0x1f,0x15,0x07,0x0f,0x21,0x34,0x27,0x1b,0x15,0x55,0x4d,0x4e,0x54,0x15,0x02,0x85,0xad,0xad,0xb3,0x12,0x0d,0xe7, +0xc7,0x6d,0x8d,0x0d,0x12,0xfe,0xfa,0x42,0x44,0x54,0x14,0x1b,0x13,0x0a,0x33,0x04,0x04,0x12,0x1c,0x14,0x80,0x1d,0x1a,0x19,0x23,0x13,0x34,0x52,0x7f,0x5a,0x0a,0x09,0x5c,0x54,0x54,0xfd,0x8a,0x43,0x43,0x7e,0x0e,0x12,0x0e,0x0a,0x09,0x0b,0x33,0x08,0x13,0x1a,0x14,0x57,0x20,0x30,0x23,0x13,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d, +0x54,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x23,0x00,0x33,0x00,0x43,0x00,0x44,0x40,0x41,0x18,0x01,0x03,0x04,0x13,0x01,0x02,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x4c,0x05,0x01,0x03,0x02,0x01,0x00,0x01,0x03,0x00,0x67,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x69,0x00,0x07,0x00,0x08,0x07,0x08,0x63, +0x00,0x06,0x06,0x09,0x5f,0x00,0x09,0x09,0x13,0x06,0x4e,0x42,0x3f,0x35,0x35,0x36,0x14,0x23,0x26,0x14,0x23,0x23,0x0a,0x07,0x1f,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3d,0x01,0x23,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x35,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x33,0x32,0x16,0x13,0x11, +0x34,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x83,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x47,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24, +0x01,0xd0,0x25,0x34,0x48,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x01,0x94,0x24,0x08,0x0a,0xc4,0x08,0x0a,0x0a,0x08,0xc4,0x0a,0x08,0x24,0x07,0x0a,0xc5,0x08,0x0a,0x0a,0x08,0xc5,0x0a,0xfe,0xff,0x01,0xd0,0x25,0x34,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x01,0xf4,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0, +0x42,0x5e,0x01,0x60,0x00,0x03,0x00,0x00,0xff,0xf9,0x03,0x13,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x2d,0x40,0x2a,0x09,0x01,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x00,0x02,0x02,0x05,0x5f,0x00,0x05,0x05,0x13,0x02,0x4e,0x35,0x35,0x35,0x36,0x26,0x23,0x06, +0x07,0x1c,0x2b,0x01,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x3d,0x01,0x34,0x36,0x33,0x21,0x32,0x16,0x13,0x11,0x34,0x26,0x23,0x21,0x22,0x06,0x07,0x11,0x14,0x16,0x17,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0x83,0x0a,0x08,0xfe,0x30,0x08,0x0a,0x0a,0x08,0x01,0xd0,0x08, +0x0a,0x47,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x24,0x01,0xd0,0x25,0x34,0x48,0x5e,0x43,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42,0x60,0x01,0x94,0x24,0x08,0x0a,0x0a,0x08,0x24,0x07,0x0a,0x0a,0xfe,0xff,0x01,0xd0,0x25,0x34,0x34,0x25,0xfe,0x30,0x25,0x34,0x01,0x36,0x01,0xf4,0xfe,0x30,0x43,0x5e,0x5e,0x43,0x01,0xd0,0x42, +0x5e,0x01,0x60,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x01,0xd4,0x00,0x15,0x00,0x21,0xb1,0x06,0x64,0x44,0x40,0x16,0x07,0x01,0x00,0x02,0x01,0x4c,0x00,0x02,0x00,0x02,0x85,0x01,0x01,0x00,0x00,0x76,0x17,0x14,0x14,0x03,0x07,0x19,0x2b,0xb1,0x06,0x00,0x44,0x25,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x07,0x06,0x22,0x2f,0x01, +0x26,0x34,0x37,0x01,0x36,0x32,0x17,0x01,0x16,0x02,0x58,0x06,0x1c,0x05,0x0e,0x06,0xdc,0xdb,0x05,0x10,0x04,0x1c,0x06,0x06,0x01,0x04,0x05,0x0e,0x06,0x01,0x04,0x06,0xbd,0x07,0x05,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x0e,0x06,0x01,0x04,0x06,0x06,0xfe,0xfc,0x05,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0xff,0x89,0x03,0x42, +0x03,0x33,0x00,0x0f,0x00,0x19,0x00,0x33,0x00,0x3f,0x00,0x4b,0x00,0x57,0x00,0x8c,0x40,0x89,0x56,0x01,0x0c,0x0d,0x44,0x01,0x0a,0x0b,0x3e,0x01,0x08,0x09,0x03,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x0d,0x03,0x05,0x0d,0x7e,0x00,0x0b,0x0c,0x0a,0x0c,0x0b,0x0a,0x80,0x00,0x0a,0x09,0x0c,0x0a,0x09,0x7e,0x00,0x09, +0x08,0x0c,0x09,0x08,0x7e,0x10,0x01,0x08,0x07,0x0c,0x08,0x07,0x7e,0x00,0x0d,0x11,0x01,0x0c,0x0b,0x0d,0x0c,0x67,0x00,0x07,0x00,0x01,0x07,0x01,0x64,0x06,0x04,0x0f,0x03,0x03,0x03,0x00,0x5f,0x0e,0x01,0x00,0x00,0x12,0x03,0x4e,0x4e,0x4c,0x36,0x34,0x10,0x10,0x01,0x00,0x54,0x52,0x4c,0x57,0x4e,0x57,0x48,0x45,0x42,0x40,0x3c,0x3a, +0x34,0x3f,0x36,0x3f,0x32,0x2f,0x2a,0x28,0x25,0x22,0x1f,0x1d,0x10,0x19,0x10,0x19,0x16,0x13,0x09,0x06,0x00,0x0f,0x01,0x0e,0x12,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x17,0x15,0x14,0x16,0x3b,0x01,0x32,0x36,0x3d,0x01,0x13,0x11,0x34,0x26,0x07,0x23,0x15,0x14,0x06,0x07, +0x23,0x22,0x26,0x37,0x35,0x23,0x22,0x06,0x17,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x27,0x21,0x22,0x35,0x34,0x36,0x37,0x21,0x32,0x16,0x07,0x14,0x27,0x21,0x22,0x26,0x37,0x34,0x33,0x21,0x32,0x15,0x14,0x06,0x27,0x21,0x22,0x35,0x34,0x36,0x17,0x21,0x32,0x16,0x07,0x14,0x02,0xa6,0x41,0x5a,0x01,0x5c,0x40,0xfd,0xf6,0x41,0x5a,0x01, +0x5c,0x40,0x68,0x20,0x15,0xd0,0x16,0x1e,0x9c,0x1e,0x15,0x35,0x3c,0x2c,0xd0,0x2b,0x3e,0x01,0x35,0x15,0x20,0x01,0x1e,0x16,0x02,0x0a,0x15,0x1e,0x68,0xfe,0x60,0x1a,0x0e,0x0c,0x01,0xa0,0x0b,0x10,0x01,0x1a,0xfe,0x60,0x0b,0x10,0x01,0x1a,0x01,0xa0,0x1a,0x0e,0x0c,0xfe,0x60,0x1a,0x0e,0x0c,0x01,0xa0,0x0b,0x10,0x01,0x03,0x33,0x5c, +0x40,0xfd,0x8f,0x41,0x5c,0x5c,0x41,0x02,0x71,0x41,0x5a,0x01,0x68,0x34,0x15,0x20,0x20,0x15,0x34,0xfd,0x5b,0x02,0x71,0x15,0x20,0x01,0x34,0x2b,0x3c,0x01,0x3e,0x2a,0x34,0x1e,0x16,0xfd,0x8f,0x15,0x20,0x20,0x49,0x19,0x0c,0x0e,0x01,0x10,0x0b,0x19,0x9d,0x0e,0x0c,0x19,0x19,0x0b,0x10,0x9d,0x19,0x0b,0x10,0x01,0x0e,0x0c,0x19,0x00, +0x00,0x03,0x00,0x00,0xff,0xf9,0x04,0x29,0x03,0x0b,0x00,0x11,0x00,0x27,0x00,0x45,0x00,0x4b,0x40,0x48,0x24,0x01,0x01,0x00,0x01,0x4c,0x00,0x07,0x04,0x03,0x04,0x07,0x03,0x80,0x00,0x03,0x02,0x04,0x03,0x02,0x7e,0x08,0x09,0x02,0x02,0x00,0x00,0x01,0x02,0x00,0x68,0x00,0x01,0x00,0x05,0x01,0x05,0x63,0x00,0x04,0x04,0x06,0x5f,0x00, +0x06,0x06,0x13,0x04,0x4e,0x13,0x12,0x42,0x40,0x3d,0x3b,0x38,0x35,0x30,0x2d,0x21,0x1e,0x19,0x16,0x12,0x27,0x13,0x27,0x36,0x31,0x0a,0x07,0x18,0x2b,0x01,0x34,0x23,0x21,0x22,0x06,0x0f,0x01,0x06,0x15,0x14,0x33,0x21,0x32,0x36,0x3f,0x01,0x36,0x25,0x21,0x35,0x34,0x26,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x26,0x07,0x23,0x22,0x06, +0x15,0x11,0x37,0x3e,0x01,0x05,0x14,0x0f,0x01,0x0e,0x01,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x17,0x15,0x33,0x32,0x16,0x17,0x16,0x03,0xe2,0x1e,0xfd,0xa1,0x16,0x34,0x0d,0xa4,0x0b,0x1e,0x02,0x5f,0x17,0x32,0x0f,0xa4,0x0a,0xfd,0x83,0x01,0xad,0x20,0x16,0xfe,0xbf,0x17,0x1e,0x01, +0x1e,0x17,0xb3,0x16,0x20,0x8f,0x19,0x50,0x02,0xea,0x19,0xa5,0x18,0x52,0x25,0xfd,0xa1,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x2f,0x34,0x48,0x01,0x6b,0x1e,0x34,0x0b,0x08,0x01,0x4b,0x13,0x18,0x11,0xcb,0x0d,0x09,0x14,0x1a,0x10,0xcb,0x0c,0x64,0x5a,0x16,0x20,0x01,0x20,0x16,0x24,0x16,0x20,0x01,0x1e,0x17,0xfe,0x24,0xaf,0x1e, +0x26,0x5a,0x23,0x20,0xcb,0x1e,0x26,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33,0x12,0x4a,0x33,0x5a,0x1a,0x1b,0x11,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xf9,0x03,0xa1,0x03,0x0b,0x00,0x17,0x00,0x2c,0x00,0x26,0x40,0x23,0x00,0x05,0x00,0x00,0x02,0x05,0x00,0x67,0x00,0x02,0x00,0x03,0x02,0x03,0x63,0x00,0x01,0x01,0x04,0x5f,0x00,0x04, +0x04,0x13,0x01,0x4e,0x23,0x35,0x35,0x35,0x35,0x33,0x06,0x07,0x1c,0x2b,0x25,0x11,0x34,0x26,0x07,0x21,0x22,0x26,0x27,0x35,0x34,0x26,0x07,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x1d,0x01,0x21,0x32,0x16,0x03,0x59,0x1e,0x17,0xfe, +0x77,0x17,0x1e,0x01,0x1e,0x17,0xb3,0x16,0x20,0x20,0x16,0x02,0xa7,0x16,0x20,0x47,0x4a,0x33,0xfd,0x59,0x33,0x4a,0x4a,0x33,0xb3,0x33,0x4a,0x01,0x77,0x33,0x4a,0x76,0x01,0x89,0x16,0x20,0x01,0x20,0x16,0x24,0x16,0x20,0x01,0x1e,0x17,0xfd,0xe8,0x16,0x20,0x20,0x01,0x9f,0xfe,0x77,0x33,0x4a,0x4a,0x33,0x02,0x18,0x33,0x4a,0x4a,0x33, +0x12,0x4a,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0xb8,0x03,0x94,0x03,0x1f,0x00,0x02,0x00,0x10,0x00,0x39,0x00,0x66,0x01,0x0d,0x40,0x0b,0x60,0x33,0x02,0x07,0x06,0x01,0x01,0x02,0x07,0x02,0x4c,0x4b,0xb0,0x13,0x50,0x58,0x40,0x38,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x00,0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02, +0x06,0x07,0x69,0x0b,0x08,0x12,0x04,0x11,0x05,0x00,0x01,0x09,0x00,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x1b,0x4b,0xb0,0x1b,0x50,0x58,0x40,0x3f,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x12,0x04,0x11,0x03,0x00,0x08,0x01,0x08,0x00,0x01,0x80,0x00, +0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02,0x06,0x07,0x69,0x0b,0x01,0x08,0x00,0x09,0x08,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x1b,0x40,0x45,0x00,0x02,0x07,0x09,0x07,0x02,0x09,0x80,0x11,0x01,0x00,0x08,0x04,0x08,0x00,0x04,0x80,0x12, +0x01,0x04,0x01,0x08,0x04,0x01,0x7e,0x00,0x03,0x01,0x03,0x86,0x0d,0x01,0x06,0x0c,0x01,0x07,0x02,0x06,0x07,0x69,0x0b,0x01,0x08,0x00,0x09,0x08,0x59,0x10,0x01,0x09,0x00,0x01,0x03,0x09,0x01,0x67,0x0f,0x01,0x0a,0x0a,0x05,0x61,0x0e,0x01,0x05,0x05,0x10,0x0a,0x4e,0x59,0x59,0x40,0x2d,0x03,0x03,0x00,0x00,0x66,0x64,0x5c,0x5a,0x59, +0x57,0x4a,0x48,0x47,0x45,0x3c,0x3a,0x39,0x37,0x2f,0x2d,0x2c,0x2a,0x20,0x1e,0x1d,0x1b,0x13,0x11,0x03,0x10,0x03,0x10,0x0d,0x0a,0x07,0x06,0x05,0x04,0x00,0x02,0x00,0x02,0x13,0x07,0x16,0x2b,0x25,0x37,0x17,0x07,0x15,0x21,0x35,0x23,0x15,0x14,0x16,0x33,0x21,0x32,0x36,0x3d,0x01,0x01,0x33,0x32,0x16,0x1d,0x01,0x14,0x17,0x1e,0x02, +0x3b,0x01,0x15,0x23,0x22,0x0e,0x02,0x1d,0x01,0x14,0x07,0x0e,0x02,0x2b,0x01,0x35,0x33,0x32,0x3d,0x01,0x34,0x37,0x26,0x3d,0x01,0x34,0x2b,0x01,0x03,0x23,0x22,0x26,0x3d,0x01,0x34,0x27,0x26,0x27,0x2e,0x01,0x2b,0x01,0x35,0x33,0x32,0x3e,0x01,0x37,0x36,0x3d,0x01,0x34,0x37,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x15,0x23,0x22,0x1d, +0x01,0x14,0x07,0x16,0x1d,0x01,0x14,0x3b,0x01,0x02,0xcd,0x64,0x63,0x82,0xfe,0xa7,0x3e,0x12,0x0d,0x01,0x97,0x0d,0x13,0xfe,0xa0,0x1c,0x47,0x44,0x04,0x05,0x11,0x25,0x18,0x10,0x10,0x1c,0x20,0x14,0x07,0x07,0x07,0x22,0x35,0x26,0x1c,0x16,0x55,0x4d,0x4e,0x54,0x16,0xa7,0x1b,0x48,0x44,0x04,0x05,0x09,0x0a,0x23,0x18,0x0f,0x0f,0x1d, +0x20,0x13,0x03,0x04,0x07,0x08,0x10,0x10,0x1b,0x1b,0x27,0x1b,0x16,0x55,0x4d,0x4e,0x54,0x16,0x6a,0xac,0xac,0x09,0x6a,0xb3,0xd3,0x0d,0x12,0x12,0x0d,0x8a,0x02,0xbe,0x42,0x44,0x54,0x14,0x0c,0x10,0x10,0x0c,0x33,0x08,0x14,0x19,0x15,0x80,0x21,0x16,0x19,0x23,0x12,0x33,0x52,0x7f,0x59,0x0b,0x09,0x5c,0x54,0x54,0xfd,0x8b,0x42,0x43, +0x7e,0x14,0x0c,0x10,0x08,0x0b,0x09,0x33,0x09,0x12,0x0e,0x0c,0x15,0x56,0x1a,0x1e,0x18,0x12,0x10,0x0b,0x09,0x33,0x53,0x55,0x59,0x0c,0x07,0x5d,0x7d,0x54,0x00,0x00,0x00,0x03,0xff,0xfe,0x00,0x00,0x03,0xe8,0x02,0x60,0x00,0x20,0x00,0x24,0x00,0x28,0x00,0x36,0x40,0x33,0x00,0x00,0x08,0x06,0x07,0x03,0x04,0x03,0x00,0x04,0x67,0x05, +0x01,0x03,0x01,0x01,0x03,0x57,0x05,0x01,0x03,0x03,0x01,0x5f,0x02,0x01,0x01,0x03,0x01,0x4f,0x25,0x25,0x21,0x21,0x25,0x28,0x25,0x28,0x27,0x26,0x21,0x24,0x21,0x24,0x14,0x27,0x2a,0x18,0x09,0x07,0x1a,0x2b,0x11,0x26,0x37,0x25,0x36,0x17,0x16,0x0f,0x01,0x21,0x27,0x26,0x37,0x36,0x17,0x05,0x16,0x07,0x03,0x06,0x23,0x21,0x26,0x2f, +0x01,0x26,0x0f,0x01,0x06,0x23,0x21,0x26,0x27,0x37,0x17,0x21,0x37,0x33,0x17,0x21,0x37,0x02,0x0a,0x01,0x68,0x1d,0x0c,0x0b,0x19,0xe3,0x02,0x92,0xe4,0x19,0x0b,0x0e,0x1d,0x01,0x6a,0x0b,0x02,0x1b,0x08,0x19,0xfe,0xc7,0x19,0x06,0x31,0x27,0x35,0x32,0x06,0x1a,0xfe,0xc8,0x1b,0x04,0x27,0x13,0x01,0x04,0x2b,0xdd,0x29,0x01,0x03,0x14, +0x01,0x82,0x0d,0x0c,0xba,0x0b,0x1b,0x21,0x0c,0x68,0x68,0x10,0x1d,0x1b,0x0b,0xba,0x0c,0x0d,0xff,0x00,0x1e,0x02,0x18,0xdf,0x19,0x18,0xe0,0x1a,0x02,0x1c,0xe2,0xbd,0xbd,0xbd,0xbd,0x00,0x00,0x03,0x00,0x00,0xff,0x6a,0x03,0x59,0x03,0x52,0x00,0x13,0x00,0x1a,0x00,0x23,0x00,0x39,0x40,0x36,0x14,0x01,0x02,0x04,0x01,0x4c,0x00,0x01, +0x00,0x04,0x02,0x01,0x04,0x67,0x00,0x02,0x00,0x03,0x05,0x02,0x03,0x67,0x06,0x01,0x05,0x00,0x00,0x05,0x57,0x06,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05,0x00,0x4f,0x1b,0x1b,0x1b,0x23,0x1b,0x23,0x13,0x26,0x14,0x35,0x36,0x07,0x07,0x1b,0x2b,0x01,0x1e,0x01,0x15,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x37,0x21, +0x32,0x16,0x17,0x07,0x15,0x33,0x26,0x2f,0x01,0x26,0x13,0x11,0x23,0x22,0x26,0x27,0x35,0x21,0x11,0x03,0x33,0x10,0x16,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x01,0xf4,0x16,0x36,0x0f,0x4a,0xd2,0x05,0x07,0xaf,0x06,0xc6,0xe8,0x17,0x1e,0x01,0xfe,0x53,0x02,0x7e,0x10,0x34,0x18,0xfd,0x7e,0x17,0x1e,0x01,0x20,0x16,0x03,0x7c, +0x17,0x1e,0x01,0x16,0x10,0x26,0xd2,0x11,0x06,0xaf,0x07,0xfc,0xb0,0x02,0x3c,0x20,0x15,0xe9,0xfc,0xa6,0x00,0x01,0x00,0x00,0xff,0xaa,0x03,0x11,0x03,0x13,0x00,0x0b,0x00,0x06,0xb3,0x07,0x02,0x01,0x32,0x2b,0x09,0x01,0x06,0x26,0x35,0x11,0x34,0x36,0x17,0x01,0x16,0x14,0x03,0x04,0xfd,0x1b,0x0d,0x12,0x12,0x0d,0x02,0xe5,0x0d,0x01, +0x4d,0xfe,0x64,0x07,0x0a,0x0f,0x03,0x36,0x0e,0x0c,0x08,0xfe,0x64,0x07,0x14,0x00,0x00,0x01,0xff,0xff,0xff,0xae,0x02,0x3c,0x03,0x0f,0x00,0x1d,0x00,0x1b,0x40,0x18,0x1b,0x1a,0x12,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x13,0x4d,0x00,0x01,0x01,0x11,0x01,0x4e,0x35,0x3d,0x02,0x07,0x18,0x2b,0x17,0x06,0x26,0x37,0x11,0x34,0x36, +0x17,0x01,0x16,0x17,0x11,0x34,0x36,0x3b,0x01,0x32,0x16,0x07,0x11,0x14,0x06,0x2b,0x01,0x22,0x26,0x37,0x11,0x06,0x07,0x19,0x0a,0x10,0x01,0x0e,0x0b,0x01,0x8c,0x05,0x03,0x14,0x0f,0x48,0x0e,0x16,0x01,0x14,0x0f,0x48,0x0e,0x16,0x01,0x03,0x05,0x47,0x0b,0x06,0x0f,0x03,0x36,0x0e,0x08,0x0c,0xfe,0x74,0x05,0x05,0x01,0x7a,0x0e,0x16, +0x16,0x0e,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x01,0x7b,0x06,0x05,0x00,0x03,0xff,0xfc,0xff,0x90,0x03,0x9a,0x03,0x2c,0x00,0x08,0x00,0x13,0x00,0x29,0x00,0xa7,0x40,0x0d,0x0c,0x01,0x03,0x02,0x23,0x22,0x18,0x17,0x04,0x05,0x07,0x02,0x4c,0x4b,0xb0,0x24,0x50,0x58,0x40,0x32,0x00,0x03,0x02,0x06,0x02,0x03,0x06,0x80,0x00,0x06,0x07,0x02, +0x06,0x07,0x7e,0x00,0x07,0x05,0x02,0x07,0x05,0x7e,0x00,0x05,0x04,0x02,0x05,0x04,0x7e,0x0a,0x01,0x04,0x00,0x01,0x04,0x01,0x66,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x12,0x02,0x4e,0x1b,0x40,0x39,0x00,0x03,0x02,0x06,0x02,0x03,0x06,0x80,0x00,0x06,0x07,0x02,0x06,0x07,0x7e,0x00,0x07,0x05,0x02,0x07,0x05,0x7e,0x00, +0x05,0x04,0x02,0x05,0x04,0x7e,0x08,0x01,0x00,0x09,0x01,0x02,0x03,0x00,0x02,0x69,0x0a,0x01,0x04,0x01,0x01,0x04,0x59,0x0a,0x01,0x04,0x04,0x01,0x62,0x00,0x01,0x04,0x01,0x52,0x59,0x40,0x1f,0x15,0x14,0x0a,0x09,0x01,0x00,0x26,0x24,0x20,0x1e,0x1b,0x19,0x14,0x29,0x15,0x29,0x10,0x0e,0x09,0x13,0x0a,0x13,0x05,0x04,0x00,0x08,0x01, +0x08,0x0b,0x07,0x16,0x2b,0x01,0x36,0x00,0x12,0x00,0x04,0x00,0x02,0x00,0x17,0x22,0x06,0x15,0x06,0x16,0x33,0x32,0x36,0x35,0x34,0x03,0x32,0x36,0x37,0x27,0x06,0x23,0x22,0x3f,0x01,0x36,0x23,0x22,0x06,0x07,0x17,0x36,0x33,0x32,0x0f,0x01,0x06,0x01,0xc6,0xbe,0x01,0x10,0x06,0xfe,0xf6,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0c,0xf2,0x2a, +0x2e,0x02,0x22,0x20,0x26,0x2e,0xb4,0x1e,0x6c,0x34,0x12,0x30,0x18,0x0e,0x0a,0x2a,0x1a,0x30,0x1e,0x76,0x38,0x10,0x34,0x16,0x0c,0x0c,0x24,0x1a,0x03,0x2a,0x02,0xfe,0xf8,0xfe,0x84,0xfe,0xee,0x06,0x01,0x0a,0x01,0x7c,0x01,0x12,0x96,0x30,0x1a,0x1c,0x20,0x2c,0x20,0x3a,0xfd,0xae,0x34,0x34,0x18,0x24,0x26,0xa0,0x60,0x3a,0x2e,0x1a, +0x22,0x22,0x98,0x68,0x00,0x01,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x31,0x00,0x3b,0x40,0x38,0x2a,0x01,0x03,0x05,0x25,0x1d,0x02,0x04,0x03,0x02,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x03,0x03,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x02,0x02,0x00,0x61,0x00,0x00,0x00, +0x11,0x00,0x4e,0x29,0x35,0x17,0x23,0x17,0x24,0x06,0x07,0x1c,0x2b,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x34,0x3f,0x01,0x36,0x16,0x17,0x1e,0x01,0x33,0x32,0x3e,0x03,0x2e,0x02,0x22,0x06,0x07,0x17,0x16,0x06,0x2b,0x01,0x22,0x26,0x27,0x35,0x34,0x36,0x1f,0x01,0x3e,0x01,0x33,0x32,0x1e,0x02,0x03,0x59,0x44,0x72,0xa0,0x56, +0x60,0xae,0x3c,0x04,0x05,0x4c,0x06,0x11,0x04,0x29,0x76,0x43,0x3a,0x68,0x50,0x2a,0x02,0x2e,0x4c,0x6c,0x6f,0x64,0x28,0x4d,0x11,0x13,0x17,0xfa,0x0f,0x14,0x01,0x2c,0x11,0x48,0x3c,0x9a,0x52,0x57,0x9e,0x74,0x42,0x01,0x5e,0x57,0x9e,0x74,0x44,0x52,0x49,0x06,0x0e,0x04,0x4d,0x05,0x01,0x06,0x35,0x3a,0x2e,0x4c,0x6a,0x74,0x6a,0x4c, +0x2e,0x28,0x25,0x4d,0x10,0x2d,0x16,0x0e,0xfa,0x18,0x13,0x12,0x48,0x39,0x3e,0x44,0x74,0x9e,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf9,0x02,0x83,0x03,0x53,0x00,0x23,0x00,0x3a,0x40,0x37,0x00,0x04,0x05,0x00,0x05,0x04,0x00,0x80,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x02,0x06,0x02,0x00,0x01,0x01,0x00,0x59,0x02,0x06,0x02,0x00, +0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x01,0x00,0x20,0x1f,0x1b,0x18,0x14,0x13,0x10,0x0e,0x09,0x06,0x00,0x23,0x01,0x23,0x07,0x07,0x16,0x2b,0x01,0x32,0x16,0x17,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x17,0x33,0x35,0x34,0x36,0x1e,0x01,0x07,0x14,0x06,0x2b,0x01,0x22,0x26,0x35,0x34,0x26,0x22,0x06,0x17,0x15, +0x02,0x4d,0x17,0x1e,0x01,0x20,0x16,0xfd,0xe9,0x17,0x1e,0x01,0x20,0x16,0x11,0x94,0xcc,0x96,0x02,0x14,0x0f,0x24,0x0e,0x16,0x54,0x76,0x54,0x01,0x01,0xa5,0x1e,0x17,0xfe,0xbe,0x16,0x1e,0x01,0x20,0x15,0x01,0x42,0x16,0x20,0x01,0xb3,0x67,0x94,0x02,0x90,0x69,0x0e,0x16,0x16,0x0e,0x3b,0x54,0x54,0x3b,0xb3,0x00,0x00,0x08,0x00,0x00, +0xff,0x9f,0x03,0x8f,0x03,0x1d,0x00,0x04,0x00,0x09,0x00,0x0e,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x2b,0x00,0x33,0x00,0x41,0x40,0x3e,0x21,0x20,0x15,0x14,0x0e,0x01,0x06,0x00,0x4a,0x31,0x30,0x25,0x24,0x10,0x09,0x06,0x01,0x49,0x05,0x04,0x02,0x08,0x04,0x00,0x01,0x00,0x85,0x07,0x06,0x09,0x03,0x04,0x01,0x01,0x76,0x0f,0x0f,0x00, +0x00,0x2d,0x2c,0x29,0x28,0x1d,0x1c,0x19,0x18,0x0f,0x13,0x0f,0x13,0x0b,0x0a,0x06,0x05,0x00,0x04,0x00,0x04,0x0a,0x07,0x16,0x2b,0x01,0x35,0x1e,0x01,0x17,0x07,0x33,0x0e,0x01,0x07,0x03,0x23,0x3e,0x01,0x37,0x11,0x15,0x2e,0x01,0x27,0x01,0x35,0x1e,0x01,0x17,0x23,0x2e,0x01,0x01,0x23,0x3e,0x01,0x37,0x15,0x0e,0x01,0x01,0x15,0x2e, +0x01,0x27,0x33,0x1e,0x01,0x01,0x33,0x0e,0x01,0x07,0x35,0x3e,0x01,0x02,0x09,0x3c,0x56,0x10,0xa2,0xa2,0x10,0x56,0x3c,0x71,0xa2,0x10,0x56,0x3c,0x3c,0x56,0x10,0x01,0x13,0x98,0xda,0x14,0x71,0x12,0x9a,0xfe,0x11,0x71,0x13,0xda,0x99,0x6a,0x98,0x01,0x02,0x9a,0xd8,0x14,0x71,0x12,0x9a,0x01,0xef,0x71,0x15,0xd8,0x99,0x69,0x9a,0x01, +0x97,0xa2,0x10,0x58,0x3a,0x71,0x3b,0x58,0x0f,0x01,0x13,0x3b,0x56,0x11,0xfe,0xed,0xa2,0x10,0x56,0x3c,0x01,0x86,0x71,0x13,0xda,0x99,0x6b,0x98,0xfe,0xfd,0x98,0xda,0x14,0x71,0x12,0x98,0xfe,0x0f,0x72,0x13,0xdc,0x98,0x6b,0x98,0x01,0x03,0x99,0xda,0x14,0x72,0x12,0x98,0x00,0x04,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x03, +0x00,0x21,0x00,0x31,0x00,0x45,0x00,0x53,0x40,0x50,0x2b,0x2a,0x23,0x22,0x04,0x08,0x04,0x01,0x4c,0x0d,0x01,0x04,0x06,0x01,0x08,0x02,0x4b,0x00,0x08,0x04,0x03,0x04,0x08,0x03,0x80,0x00,0x03,0x06,0x04,0x03,0x06,0x7e,0x00,0x06,0x00,0x01,0x00,0x06,0x01,0x68,0x07,0x01,0x04,0x04,0x0a,0x5f,0x00,0x0a,0x0a,0x13,0x4d,0x05,0x02,0x02, +0x00,0x00,0x09,0x5f,0x00,0x09,0x09,0x11,0x09,0x4e,0x40,0x3d,0x38,0x35,0x17,0x26,0x33,0x11,0x13,0x3b,0x11,0x11,0x10,0x0b,0x07,0x1f,0x2b,0x17,0x21,0x35,0x21,0x05,0x33,0x11,0x34,0x26,0x2f,0x01,0x2e,0x01,0x07,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x35,0x23,0x11,0x33,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x07,0x03,0x35,0x34, +0x26,0x2b,0x01,0x22,0x06,0x17,0x15,0x14,0x16,0x37,0x33,0x32,0x36,0x05,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x1f,0x01,0x1e,0x01,0xd6,0x01,0xad,0xfe,0x53,0x01,0xf4,0x48,0x0c,0x05,0x9d,0x05,0x1c,0x08,0x1e,0x17,0xfe,0xbe,0x16,0x1e,0x01,0x48,0x48,0x20,0x15,0x01,0xd1,0x16,0x20,0x01,0xd6, +0x0a,0x08,0x6b,0x07,0x0c,0x01,0x0a,0x08,0x6b,0x07,0x0c,0x01,0x64,0x1e,0x17,0xfd,0x12,0x17,0x1e,0x01,0x20,0x16,0x02,0x05,0x17,0x36,0x0f,0x9c,0x10,0x16,0x07,0xd6,0xd6,0x01,0xf4,0x08,0x1a,0x07,0x9c,0x06,0x0c,0x01,0xe8,0x16,0x20,0x20,0x16,0xe8,0xfd,0x36,0xe8,0x16,0x20,0x20,0x16,0x01,0x1e,0xb2,0x08,0x0a,0x0a,0x08,0xb2,0x07, +0x0c,0x01,0x0a,0x0a,0xfd,0xfa,0x16,0x20,0x20,0x16,0x02,0xee,0x16,0x20,0x18,0x0e,0x9d,0x0f,0x36,0x00,0x00,0x02,0xff,0xff,0xff,0xb1,0x03,0xe8,0x03,0x0b,0x00,0x03,0x00,0x13,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x03,0x5f,0x00,0x03,0x03,0x13,0x4d,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x35,0x34,0x11,0x10,0x04, +0x07,0x1a,0x2b,0x37,0x21,0x11,0x21,0x25,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x37,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x8f,0x02,0xca,0xfd,0x36,0x03,0x59,0x34,0x25,0xfc,0xca,0x24,0x36,0x01,0x34,0x25,0x03,0x36,0x25,0x34,0x40,0x01,0xad,0xc4,0xfd,0x5a,0x25,0x34,0x01,0x36,0x24,0x02,0xa6,0x25,0x34,0x01,0x36,0x00,0x03,0xff,0xfd, +0xff,0xb1,0x03,0x5f,0x03,0x0b,0x00,0x08,0x00,0x15,0x00,0x22,0x00,0x32,0x40,0x2f,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x69,0x06,0x01,0x02,0x02,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x03,0x03,0x04,0x61,0x00,0x04,0x04,0x11,0x04,0x4e,0x0a,0x09,0x20,0x1f,0x1a,0x19,0x10,0x0f,0x09,0x15,0x0a,0x15,0x13,0x12,0x07,0x07,0x18,0x2b, +0x01,0x14,0x06,0x22,0x2e,0x01,0x36,0x32,0x16,0x27,0x22,0x0e,0x02,0x1e,0x01,0x32,0x3e,0x01,0x2e,0x02,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x32,0x1e,0x01,0x02,0x3b,0x52,0x78,0x52,0x02,0x56,0x74,0x56,0x90,0x53,0x8c,0x50,0x02,0x54,0x88,0xaa,0x86,0x56,0x04,0x4e,0x8e,0x01,0x5b,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc, +0xf4,0xba,0x7e,0x01,0x5e,0x3b,0x54,0x54,0x76,0x54,0x54,0xf5,0x52,0x8c,0xa4,0x8c,0x52,0x52,0x8c,0xa4,0x8c,0x52,0xfe,0xd0,0x75,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x6a,0x02,0x83,0x03,0x0b,0x00,0x0b,0x00,0x2e,0x00,0x35,0x40,0x32,0x07,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x03,0x02, +0x03,0x86,0x09,0x05,0x02,0x01,0x04,0x01,0x02,0x03,0x01,0x02,0x67,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x00,0x07,0x07,0x13,0x00,0x4e,0x2d,0x2c,0x13,0x33,0x11,0x14,0x22,0x33,0x15,0x15,0x13,0x0a,0x07,0x1f,0x2b,0x01,0x35,0x34,0x26,0x22,0x06,0x1d,0x01,0x14,0x16,0x32,0x36,0x05,0x14,0x06,0x27,0x23,0x03,0x0e,0x01,0x07,0x23,0x22, +0x27,0x03,0x23,0x22,0x26,0x27,0x34,0x36,0x33,0x11,0x22,0x2e,0x01,0x36,0x37,0x21,0x32,0x16,0x14,0x06,0x27,0x11,0x32,0x16,0x01,0x0c,0x0a,0x10,0x0a,0x0a,0x10,0x0a,0x01,0x77,0x16,0x0e,0xef,0x1d,0x01,0x0a,0x06,0x01,0x0f,0x02,0x2b,0xe1,0x0f,0x14,0x01,0x58,0x37,0x1d,0x2a,0x02,0x2e,0x1b,0x01,0x65,0x1d,0x2a,0x2a,0x1d,0x37,0x58, +0x01,0x70,0xfa,0x08,0x0a,0x0a,0x08,0xfa,0x08,0x0a,0x0a,0xbd,0x0e,0x16,0x01,0xfe,0xf2,0x07,0x08,0x01,0x0f,0x01,0x0f,0x14,0x0f,0x45,0x6e,0x01,0x1e,0x2a,0x3a,0x2a,0x01,0x2c,0x38,0x2c,0x01,0xfe,0xe2,0x6e,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5b,0x03,0x0b,0x00,0x24,0x00,0x47,0x00,0x4b,0x40,0x48,0x43,0x25,0x02,0x06,0x09,0x2f, +0x01,0x05,0x06,0x17,0x01,0x03,0x02,0x08,0x01,0x01,0x03,0x04,0x4c,0x00,0x09,0x07,0x01,0x05,0x02,0x09,0x05,0x67,0x04,0x01,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x06,0x06,0x08,0x61,0x00,0x08,0x08,0x13,0x4d,0x00,0x03,0x03,0x00,0x61,0x00,0x00,0x00,0x11,0x00,0x4e,0x46,0x45,0x26,0x25,0x25,0x36,0x25,0x26,0x35,0x14,0x24,0x0a, +0x07,0x1f,0x2b,0x01,0x14,0x15,0x0e,0x01,0x23,0x22,0x26,0x27,0x07,0x06,0x22,0x26,0x3d,0x01,0x34,0x36,0x3b,0x01,0x32,0x16,0x06,0x0f,0x01,0x1e,0x01,0x37,0x32,0x36,0x37,0x36,0x37,0x36,0x3b,0x01,0x32,0x16,0x13,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x36,0x3f,0x01,0x26,0x23,0x22,0x06,0x07,0x06,0x07,0x06,0x2b,0x01,0x22,0x26,0x37, +0x35,0x3e,0x01,0x33,0x32,0x16,0x17,0x37,0x36,0x32,0x16,0x03,0x4b,0x24,0xe4,0x99,0x51,0x98,0x3c,0x48,0x0b,0x1c,0x16,0x16,0x0e,0xfa,0x0e,0x16,0x02,0x09,0x4d,0x28,0x64,0x37,0x4a,0x82,0x27,0x06,0x18,0x04,0x0c,0x6b,0x08,0x0a,0x0e,0x14,0x10,0xfa,0x0e,0x16,0x02,0x09,0x4d,0x52,0x70,0x4b,0x82,0x27,0x06,0x17,0x05,0x0c,0x6f,0x07, +0x0c,0x01,0x24,0xe6,0x99,0x51,0x9a,0x3c,0x48,0x0b,0x1c,0x18,0x01,0x05,0x03,0x01,0x96,0xba,0x3e,0x39,0x48,0x0b,0x16,0x0e,0xfa,0x0e,0x16,0x16,0x1c,0x0b,0x4d,0x24,0x2a,0x01,0x4a,0x3e,0x0a,0x38,0x0d,0x0c,0x01,0xb8,0xfa,0x0e,0x16,0x16,0x1c,0x0b,0x4d,0x4d,0x4a,0x3e,0x0a,0x38,0x0d,0x0c,0x06,0x04,0x96,0xba,0x3e,0x39,0x48,0x0b, +0x16,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x20,0x40,0x1d,0x18,0x10,0x08,0x00,0x04,0x00,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x13,0x4d,0x02,0x01,0x00,0x00,0x11,0x00,0x4e,0x35,0x35,0x35,0x33,0x04,0x07,0x1a,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36, +0x33,0x21,0x32,0x16,0x05,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x03,0x59,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x0f,0x16,0xfe,0x0b,0x14,0x10,0xfe,0xe3,0x0f,0x14,0x01,0x16,0x0e,0x01,0x1d,0x0f,0x16,0x02,0xe7,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x0e, +0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x00,0x00,0x01,0x00,0x00,0xff,0xb1,0x03,0x5a,0x03,0x0b,0x00,0x0f,0x00,0x1a,0x40,0x17,0x08,0x00,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x13,0x4d,0x00,0x00,0x00,0x11,0x00,0x4e,0x35,0x33,0x02,0x07,0x18,0x2b,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x27,0x11,0x34,0x36, +0x33,0x21,0x32,0x16,0x03,0x59,0x14,0x10,0xfc,0xef,0x0f,0x14,0x01,0x16,0x0e,0x03,0x11,0x0f,0x16,0x02,0xe7,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x16,0x00,0x01,0xff,0xfe,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x30,0x00,0x3a,0x40,0x37,0x2d,0x01,0x01,0x05,0x09,0x01,0x00,0x01,0x02,0x4c,0x00,0x00,0x01,0x03,0x01,0x00, +0x03,0x80,0x00,0x03,0x02,0x01,0x03,0x02,0x7e,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x13,0x4d,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x11,0x04,0x4e,0x27,0x27,0x13,0x27,0x24,0x33,0x06,0x07,0x1c,0x2b,0x01,0x15,0x14,0x06,0x2b,0x01,0x22,0x26,0x3f,0x01,0x26,0x23,0x22,0x0e,0x02,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x3e,0x01, +0x1f,0x01,0x1e,0x01,0x07,0x0e,0x01,0x07,0x22,0x2e,0x02,0x3e,0x03,0x33,0x32,0x16,0x17,0x37,0x36,0x16,0x03,0x59,0x14,0x10,0xfa,0x17,0x13,0x11,0x4d,0x52,0x70,0x3a,0x6a,0x4c,0x2e,0x2e,0x4c,0x6a,0x3a,0x42,0x76,0x29,0x04,0x11,0x06,0x4c,0x05,0x02,0x06,0x3c,0xae,0x5f,0x57,0xa0,0x70,0x48,0x04,0x40,0x78,0x98,0x5b,0x52,0x98,0x3d, +0x48,0x11,0x2c,0x02,0xc3,0xfa,0x0e,0x16,0x2d,0x10,0x4d,0x4d,0x2e,0x4c,0x6a,0x74,0x6a,0x4c,0x2e,0x3a,0x35,0x06,0x01,0x05,0x4d,0x04,0x0e,0x06,0x4a,0x50,0x01,0x44,0x74,0x9e,0xae,0x9e,0x74,0x44,0x3e,0x39,0x48,0x12,0x13,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x01,0xe6,0x00,0x15,0x00,0x19,0x40,0x16,0x0f,0x01,0x00,0x01, +0x01,0x4c,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x14,0x17,0x14,0x03,0x07,0x19,0x2b,0x01,0x14,0x07,0x01,0x06,0x22,0x27,0x01,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x37,0x36,0x32,0x1f,0x01,0x16,0x02,0x58,0x06,0xfe,0xfc,0x05,0x10,0x04,0xfe,0xfc,0x06,0x06,0x1c,0x05,0x0e,0x06,0xdb,0xdc,0x05,0x10,0x04,0x1c,0x06, +0x01,0xb7,0x07,0x05,0xfe,0xfb,0x05,0x05,0x01,0x05,0x05,0x0e,0x06,0x1c,0x06,0x06,0xdb,0xdb,0x06,0x06,0x1c,0x05,0x00,0x00,0x00,0x03,0xff,0xfd,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x0c,0x00,0x1c,0x00,0x2e,0x00,0x41,0x40,0x3e,0x28,0x1e,0x02,0x05,0x04,0x16,0x15,0x0e,0x03,0x03,0x02,0x02,0x4c,0x00,0x05,0x00,0x02,0x03,0x05,0x02, +0x67,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x13,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x11,0x01,0x4e,0x01,0x00,0x2c,0x2a,0x23,0x21,0x1a,0x18,0x12,0x10,0x07,0x06,0x00,0x0c,0x01,0x0c,0x07,0x07,0x16,0x2b,0x01,0x32,0x1e,0x01,0x14,0x0e,0x01,0x22,0x2e,0x02,0x3e,0x01,0x13,0x35,0x34,0x26,0x2b,0x01,0x22,0x06,0x07, +0x15,0x14,0x16,0x17,0x33,0x32,0x36,0x27,0x13,0x34,0x27,0x26,0x2b,0x01,0x22,0x07,0x06,0x15,0x13,0x14,0x16,0x3b,0x01,0x32,0x36,0x01,0xad,0x74,0xc6,0x72,0x72,0xc6,0xe8,0xc8,0x6e,0x06,0x7a,0xbc,0xc1,0x0a,0x07,0x6b,0x08,0x0a,0x01,0x0c,0x07,0x6b,0x07,0x0a,0x01,0x0a,0x06,0x05,0x08,0x7b,0x08,0x05,0x06,0x0a,0x0a,0x09,0x67,0x08, +0x0a,0x03,0x0b,0x74,0xc4,0xea,0xc4,0x74,0x74,0xc4,0xea,0xc4,0x74,0xfd,0x48,0x6a,0x08,0x0a,0x0a,0x08,0x6a,0x08,0x0a,0x01,0x0c,0xc7,0x01,0x5a,0x07,0x03,0x05,0x05,0x03,0x07,0xfe,0xa6,0x06,0x08,0x08,0x00,0x00,0x01,0x00,0x00,0xff,0xef,0x02,0xd4,0x02,0x86,0x00,0x24,0x00,0x26,0x40,0x23,0x22,0x19,0x10,0x07,0x04,0x00,0x02,0x01, +0x4c,0x03,0x01,0x02,0x00,0x00,0x02,0x59,0x03,0x01,0x02,0x02,0x00,0x61,0x01,0x01,0x00,0x02,0x00,0x51,0x14,0x1c,0x14,0x14,0x04,0x07,0x1a,0x2b,0x25,0x14,0x0f,0x01,0x06,0x22,0x2f,0x01,0x07,0x06,0x22,0x2f,0x01,0x26,0x34,0x3f,0x01,0x27,0x26,0x34,0x3f,0x01,0x36,0x32,0x1f,0x01,0x37,0x36,0x32,0x1f,0x01,0x16,0x14,0x0f,0x01,0x17, +0x16,0x02,0xd4,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa4,0xa4,0x10,0x10,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x0f,0x0f,0xa4,0xa4,0x0f,0x70,0x16,0x10,0x4c,0x0f,0x0f,0xa5,0xa5,0x0f,0x0f,0x4c,0x10,0x2c,0x10,0xa4,0xa4,0x10,0x2c,0x10,0x4c,0x10,0x10,0xa4,0xa4,0x10,0x10,0x4c,0x0f,0x2e, +0x0f,0xa4,0xa4,0x0f,0x00,0x03,0x00,0x00,0xff,0xb1,0x03,0xc5,0x03,0x0b,0x00,0x0c,0x00,0x1c,0x00,0x2c,0x00,0x34,0x40,0x31,0x25,0x1d,0x02,0x04,0x05,0x00,0x01,0x01,0x00,0x02,0x4c,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x67,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e, +0x35,0x35,0x35,0x35,0x24,0x32,0x06,0x07,0x1c,0x2b,0x01,0x34,0x26,0x07,0x23,0x22,0x0e,0x01,0x16,0x17,0x33,0x32,0x36,0x25,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x37,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x02,0x5f,0x14,0x10,0x8e,0x0f,0x14,0x02,0x18, +0x0d,0x8e,0x0f,0x16,0x01,0x41,0x16,0x0e,0xfc,0xee,0x0e,0x16,0x16,0x0e,0x03,0x12,0x0e,0x16,0x23,0x14,0x0f,0xfc,0xa6,0x0e,0x16,0x01,0x14,0x0f,0x03,0x5a,0x0e,0x16,0x01,0x82,0x0e,0x16,0x01,0x14,0x1e,0x14,0x01,0x16,0x79,0xfd,0xe8,0x0e,0x16,0x16,0x0e,0x02,0x18,0x0e,0x16,0x16,0xec,0x8f,0x0e,0x16,0x16,0x0e,0x8f,0x0e,0x16,0x16, +0x00,0x05,0x00,0x00,0xff,0x88,0x03,0xac,0x03,0x34,0x00,0x43,0x00,0x4c,0x00,0x55,0x00,0x5e,0x00,0x67,0x00,0x61,0x40,0x5e,0x3c,0x33,0x02,0x05,0x0a,0x1a,0x0f,0x02,0x01,0x05,0x2b,0x22,0x19,0x10,0x09,0x00,0x06,0x08,0x01,0x03,0x4c,0x07,0x01,0x05,0x03,0x01,0x01,0x08,0x05,0x01,0x67,0x00,0x0a,0x0f,0x0c,0x02,0x08,0x09,0x0a,0x08, +0x69,0x10,0x0e,0x0d,0x03,0x09,0x04,0x02,0x02,0x00,0x09,0x00,0x65,0x00,0x0b,0x0b,0x06,0x61,0x00,0x06,0x06,0x12,0x0b,0x4e,0x60,0x5f,0x64,0x63,0x5f,0x67,0x60,0x67,0x5d,0x5c,0x59,0x58,0x54,0x53,0x50,0x4f,0x4b,0x4a,0x15,0x36,0x16,0x37,0x18,0x36,0x16,0x36,0x14,0x11,0x07,0x1f,0x2b,0x25,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34, +0x37,0x35,0x34,0x2b,0x01,0x22,0x27,0x15,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x35,0x06,0x2b,0x01,0x22,0x0e,0x01,0x1d,0x01,0x16,0x15,0x14,0x06,0x22,0x26,0x35,0x34,0x37,0x35,0x34,0x36,0x3b,0x01,0x32,0x3d,0x01,0x26,0x35,0x34,0x36,0x32,0x16,0x15,0x14,0x07,0x15,0x14,0x3b,0x01,0x32,0x16,0x15,0x05,0x34,0x26,0x22,0x06, +0x14,0x16,0x32,0x36,0x13,0x14,0x16,0x32,0x36,0x34,0x26,0x22,0x06,0x13,0x34,0x26,0x22,0x06,0x14,0x16,0x32,0x36,0x05,0x32,0x36,0x34,0x26,0x22,0x06,0x14,0x16,0x03,0x64,0x48,0x46,0x64,0x46,0x48,0x4c,0x64,0x2c,0x22,0x48,0x46,0x64,0x46,0x48,0x1e,0x2e,0x64,0x22,0x26,0x06,0x48,0x46,0x64,0x46,0x48,0x56,0x58,0x64,0x4c,0x48,0x46, +0x64,0x46,0x48,0x4e,0x64,0x56,0x56,0xfd,0x5a,0x2a,0x38,0x28,0x28,0x38,0x2a,0xd4,0x28,0x38,0x2a,0x2a,0x38,0x28,0x8a,0x2a,0x38,0x28,0x28,0x38,0x2a,0x01,0x18,0x1c,0x2a,0x2a,0x38,0x28,0x28,0x70,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x72,0x4e,0x0c,0xcc,0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0xcc,0x0c,0x26,0x1c,0x0c,0x72, +0x22,0x4e,0x32,0x46,0x46,0x32,0x4e,0x22,0x72,0x40,0x6c,0x34,0x8c,0x22,0x4c,0x32,0x46,0x46,0x32,0x4c,0x22,0x8c,0x34,0x6c,0x40,0xe2,0x1e,0x28,0x28,0x3a,0x28,0x28,0x02,0xd8,0x1c,0x28,0x28,0x3a,0x28,0x28,0xfd,0x26,0x1e,0x28,0x28,0x3a,0x28,0x28,0x28,0x28,0x3a,0x28,0x28,0x3a,0x28,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x59, +0x03,0x0b,0x00,0x23,0x00,0x33,0x00,0x3e,0x40,0x3b,0x0d,0x01,0x00,0x01,0x1f,0x01,0x04,0x03,0x02,0x4c,0x02,0x01,0x00,0x01,0x03,0x01,0x00,0x03,0x80,0x05,0x01,0x03,0x04,0x01,0x03,0x04,0x7e,0x00,0x01,0x01,0x07,0x5f,0x00,0x07,0x07,0x13,0x4d,0x00,0x04,0x04,0x06,0x60,0x00,0x06,0x06,0x11,0x06,0x4e,0x35,0x35,0x23,0x33,0x16,0x23, +0x24,0x23,0x08,0x07,0x1e,0x2b,0x01,0x35,0x34,0x26,0x07,0x23,0x35,0x34,0x26,0x27,0x23,0x22,0x06,0x07,0x15,0x23,0x22,0x06,0x07,0x15,0x14,0x16,0x37,0x33,0x15,0x14,0x16,0x3b,0x01,0x32,0x36,0x37,0x35,0x33,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0xca,0x14,0x0f,0xb3,0x16, +0x0e,0x47,0x0f,0x14,0x01,0xb2,0x0f,0x14,0x01,0x16,0x0e,0xb2,0x16,0x0e,0x47,0x0f,0x14,0x01,0xb3,0x0e,0x16,0x8e,0x5e,0x43,0xfd,0xe9,0x43,0x5e,0x5e,0x43,0x02,0x17,0x43,0x5e,0x01,0x3a,0x48,0x0e,0x16,0x01,0xb3,0x0f,0x14,0x01,0x16,0x0e,0xb3,0x14,0x0f,0x48,0x0e,0x16,0x01,0xb3,0x0e,0x16,0x16,0x0e,0xb3,0x14,0x01,0x3f,0xfd,0xe8, +0x42,0x5e,0x01,0x60,0x41,0x02,0x18,0x42,0x5e,0x01,0x60,0x00,0x00,0x02,0x00,0x00,0xff,0xb1,0x03,0x59,0x03,0x0b,0x00,0x0f,0x00,0x1f,0x00,0x1f,0x40,0x1c,0x00,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x13,0x4d,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x11,0x02,0x4e,0x35,0x35,0x26,0x33,0x04,0x07,0x1a,0x2b,0x01,0x35,0x34,0x26,0x07, +0x21,0x22,0x06,0x07,0x15,0x14,0x16,0x37,0x21,0x32,0x36,0x13,0x11,0x14,0x06,0x07,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x37,0x21,0x32,0x16,0x02,0xca,0x14,0x0f,0xfe,0x0c,0x0f,0x14,0x01,0x16,0x0e,0x01,0xf4,0x0e,0x16,0x8e,0x5e,0x43,0xfd,0xe9,0x43,0x5e,0x5e,0x43,0x02,0x17,0x43,0x5e,0x01,0x3a,0x48,0x0e,0x16,0x01,0x14,0x0f,0x48, +0x0e,0x16,0x01,0x14,0x01,0x3f,0xfd,0xe8,0x42,0x5e,0x01,0x60,0x41,0x02,0x18,0x42,0x5e,0x01,0x60,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x07,0xb3,0xdb,0xee,0x5f,0x0f,0x3c,0xf5,0x00,0x0f,0x03,0xe8,0x00,0x00,0x00,0x00,0xe4,0x2d,0xc8,0x06,0x00,0x00,0x00,0x00,0xe4,0x2d,0xc8,0x07,0xff,0xf5,0xff,0x6a,0x04,0x78,0x03,0x53, +0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x52,0xff,0x6a,0x00,0x00,0x04,0x76,0xff,0xf5,0xff,0xf5,0x04,0x78,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x03,0xe8,0x00,0x00,0x03,0x11,0x00,0x00,0x02,0x80,0x00,0x00,0x03,0xe8,0x00,0x00, +0x04,0x2f,0xff,0xff,0x00,0xf0,0x00,0x00,0x04,0x76,0xff,0xff,0x03,0xe8,0xff,0xff,0x03,0xe8,0x00,0x00,0x02,0x44,0x00,0x00,0x02,0x44,0x00,0x00,0x03,0x59,0xff,0xfd,0x02,0x3b,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0x11,0x00,0x00,0x03,0xac,0x00,0x00,0x03,0xe8,0x00,0x00,0x00,0xdc,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00, +0x02,0x3b,0xff,0xff,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00,0x03,0x98,0xff,0xfc,0x03,0x59,0x00,0x00,0x03,0xca,0x00,0x00,0x04,0x2f,0xff,0xff,0x03,0xa0,0x00,0x00,0x02,0xf8,0x00,0x00,0x03,0xd4,0xff,0xf7,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0xff,0xff,0x02,0x82,0x00,0x00, +0x02,0xda,0x00,0x00,0x04,0x2f,0xff,0xff,0x02,0xf8,0x00,0x00,0x03,0x59,0xff,0xfd,0x03,0x59,0x00,0x00,0x03,0x59,0xff,0xff,0x02,0xda,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x02,0xf8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0xff,0xf5,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0x11,0x00,0x00, +0x03,0x11,0x00,0x00,0x02,0x82,0x00,0x00,0x03,0x42,0x00,0x00,0x04,0x2f,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xe7,0xff,0xfe,0x03,0x59,0x00,0x00,0x03,0x11,0x00,0x00,0x02,0x3b,0xff,0xff,0x03,0x98,0xff,0xfc,0x03,0x59,0x00,0x00,0x02,0x82,0x00,0x00,0x03,0xa0,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0xe8,0xff,0xff, +0x03,0x59,0xff,0xfd,0x02,0x82,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0xff,0xfe,0x02,0x82,0x00,0x00,0x03,0x59,0xff,0xfd,0x03,0x11,0x00,0x00,0x03,0xe8,0x00,0x00,0x03,0xac,0x00,0x00,0x03,0x59,0x00,0x00,0x03,0x59,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x46,0x00,0xe0,0x01,0x76,0x01,0xf0, +0x02,0x46,0x02,0x9e,0x02,0xc4,0x03,0x10,0x03,0x46,0x03,0x68,0x03,0x8c,0x03,0xb8,0x04,0x42,0x05,0x04,0x05,0x60,0x05,0xf4,0x06,0x18,0x06,0x42,0x06,0x64,0x06,0x8e,0x06,0xc6,0x06,0xfe,0x07,0xa6,0x07,0xf8,0x08,0xa0,0x08,0xf2,0x09,0x20,0x09,0x42,0x09,0x8e,0x09,0xd6,0x0a,0x98,0x0b,0x82,0x0c,0x0e,0x0c,0xfa,0x0d,0x3e,0x0d,0x64, +0x0d,0xc6,0x0e,0x2a,0x0e,0x6c,0x0f,0x1e,0x0f,0xce,0x0f,0xf6,0x10,0x4a,0x11,0x7c,0x11,0x9a,0x11,0xd2,0x12,0x3c,0x12,0x98,0x12,0xf8,0x14,0x00,0x14,0x80,0x14,0xe0,0x15,0x1a,0x15,0xde,0x16,0x6a,0x16,0xc0,0x17,0xce,0x18,0x30,0x18,0x88,0x18,0xa6,0x18,0xe4,0x19,0x80,0x19,0xe8,0x1a,0x3c,0x1a,0xb8,0x1b,0x48,0x1b,0x7c,0x1b,0xd0, +0x1c,0x32,0x1c,0xc0,0x1d,0x04,0x1d,0x2e,0x1d,0x94,0x1d,0xca,0x1e,0x32,0x1e,0x80,0x1e,0xde,0x1f,0x9a,0x20,0x04,0x20,0x48,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x90,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x00,0x7b,0x00,0x8d,0x00,0x00,0x00,0xba,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0xde,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x35,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x07,0x00,0x3d,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x08,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x00, +0x00,0x05,0x00,0x0b,0x00,0x54,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x08,0x00,0x5f,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x2b,0x00,0x67,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x13,0x00,0x92,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x6a,0x00,0xa5,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x10, +0x01,0x0f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x01,0x1f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x10,0x01,0x2d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x10,0x01,0x3d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x16,0x01,0x4d,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x10,0x01,0x63,0x00,0x03, +0x00,0x01,0x04,0x09,0x00,0x0a,0x00,0x56,0x01,0x73,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x26,0x01,0xc9,0x43,0x6f,0x70,0x79,0x72,0x69,0x67,0x68,0x74,0x20,0x28,0x43,0x29,0x20,0x32,0x30,0x32,0x35,0x20,0x62,0x79,0x20,0x6f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x20,0x61,0x75,0x74,0x68,0x6f,0x72,0x73,0x20,0x40,0x20,0x66, +0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x2e,0x63,0x6f,0x6d,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x52,0x65,0x67,0x75,0x6c,0x61,0x72,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x56,0x65,0x72,0x73,0x69,0x6f,0x6e,0x20,0x31,0x2e,0x30,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x47,0x65,0x6e, +0x65,0x72,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x73,0x76,0x67,0x32,0x74,0x74,0x66,0x20,0x66,0x72,0x6f,0x6d,0x20,0x46,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x20,0x70,0x72,0x6f,0x6a,0x65,0x63,0x74,0x2e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x66,0x6f,0x6e,0x74,0x65,0x6c,0x6c,0x6f,0x2e,0x63,0x6f,0x6d,0x00,0x43,0x00,0x6f,0x00, +0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x28,0x00,0x43,0x00,0x29,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x32,0x00,0x35,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x69,0x00,0x6e,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x61,0x00,0x75,0x00,0x74,0x00, +0x68,0x00,0x6f,0x00,0x72,0x00,0x73,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00, +0x61,0x00,0x72,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00,0x2e,0x00,0x30,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00, +0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x47,0x00,0x65,0x00,0x6e,0x00,0x65,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x73,0x00,0x76,0x00,0x67,0x00,0x32,0x00,0x74,0x00,0x74,0x00,0x66,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x46,0x00, +0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x2e,0x00, +0x63,0x00,0x6f,0x00,0x6d,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c, +0x01,0x0d,0x01,0x0e,0x01,0x0f,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0x13,0x01,0x14,0x01,0x15,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x01,0x2c, +0x01,0x2d,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x01,0x32,0x01,0x33,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x01,0x3c,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41,0x01,0x42,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c, +0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50,0x01,0x51,0x01,0x52,0x00,0x0b,0x63,0x68,0x65,0x63,0x6b,0x2d,0x65,0x6d,0x70,0x74,0x79,0x0d,0x66,0x6c,0x6f,0x77,0x2d,0x70,0x61,0x72,0x61,0x6c,0x6c,0x65,0x6c,0x04,0x64,0x6f,0x63,0x73,0x07,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x09,0x66,0x6c,0x6f,0x77,0x2d,0x6c,0x69,0x6e,0x65,0x0e,0x77, +0x69,0x6e,0x64,0x6f,0x77,0x2d,0x72,0x65,0x73,0x74,0x6f,0x72,0x65,0x0f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2d,0x6d,0x69,0x6e,0x69,0x6d,0x69,0x7a,0x65,0x04,0x63,0x75,0x62,0x65,0x04,0x70,0x6c,0x75,0x73,0x05,0x6d,0x69,0x6e,0x75,0x73,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x08,0x64,0x6f,0x77,0x6e,0x2d,0x64,0x69,0x72,0x05,0x63,0x68, +0x65,0x63,0x6b,0x0b,0x74,0x72,0x61,0x73,0x68,0x2d,0x65,0x6d,0x70,0x74,0x79,0x04,0x75,0x73,0x65,0x72,0x09,0x62,0x72,0x69,0x65,0x66,0x63,0x61,0x73,0x65,0x03,0x64,0x6f,0x74,0x08,0x6c,0x65,0x66,0x74,0x2d,0x64,0x69,0x72,0x09,0x72,0x69,0x67,0x68,0x74,0x2d,0x64,0x69,0x72,0x06,0x75,0x70,0x2d,0x64,0x69,0x72,0x0a,0x61,0x6e,0x67, +0x6c,0x65,0x2d,0x6c,0x65,0x66,0x74,0x0b,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x72,0x69,0x67,0x68,0x74,0x0c,0x68,0x65,0x6c,0x70,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x03,0x74,0x61,0x67,0x04,0x67,0x72,0x69,0x64,0x0b,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f,0x70,0x65,0x6e,0x06,0x66,0x6f,0x6c,0x64,0x65,0x72,0x09,0x64,0x6f,0x77, +0x6e,0x2d,0x62,0x6f,0x6c,0x64,0x07,0x70,0x61,0x6c,0x65,0x74,0x74,0x65,0x07,0x64,0x6f,0x63,0x2d,0x69,0x6e,0x76,0x03,0x63,0x6f,0x67,0x02,0x74,0x68,0x0a,0x62,0x69,0x6e,0x6f,0x63,0x75,0x6c,0x61,0x72,0x73,0x04,0x6c,0x69,0x73,0x74,0x04,0x6c,0x6f,0x63,0x6b,0x09,0x6c,0x65,0x66,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x07,0x64,0x65,0x73, +0x6b,0x74,0x6f,0x70,0x06,0x73,0x65,0x61,0x72,0x63,0x68,0x0c,0x63,0x69,0x72,0x63,0x6c,0x65,0x2d,0x65,0x6d,0x70,0x74,0x79,0x06,0x70,0x65,0x6e,0x63,0x69,0x6c,0x03,0x68,0x64,0x64,0x0a,0x72,0x69,0x67,0x68,0x74,0x2d,0x62,0x6f,0x6c,0x64,0x0b,0x63,0x6c,0x6f,0x73,0x65,0x5f,0x70,0x61,0x6e,0x65,0x6c,0x08,0x73,0x74,0x65,0x70,0x69, +0x6e,0x74,0x6f,0x07,0x75,0x70,0x2d,0x62,0x6f,0x6c,0x64,0x02,0x6f,0x6b,0x09,0x61,0x74,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x10,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x5f,0x73,0x70,0x6c,0x69,0x74,0x0e,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x5f,0x73,0x70,0x6c,0x69,0x74,0x08,0x73,0x74,0x65,0x70,0x6f,0x76,0x65, +0x72,0x10,0x70,0x6c,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x2d,0x61,0x6c,0x74,0x11,0x6d,0x69,0x6e,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x2d,0x61,0x6c,0x74,0x08,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x75,0x70,0x09,0x63,0x6c,0x69,0x70,0x62,0x6f,0x61,0x72,0x64,0x11,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x6f, +0x70,0x65,0x6e,0x2d,0x65,0x6d,0x70,0x74,0x79,0x0c,0x66,0x6f,0x6c,0x64,0x65,0x72,0x2d,0x65,0x6d,0x70,0x74,0x79,0x07,0x73,0x74,0x65,0x70,0x6f,0x75,0x74,0x07,0x67,0x6c,0x61,0x73,0x73,0x65,0x73,0x03,0x64,0x6f,0x63,0x04,0x70,0x6c,0x61,0x79,0x06,0x74,0x6f,0x2d,0x65,0x6e,0x64,0x0c,0x69,0x6e,0x66,0x6f,0x2d,0x63,0x69,0x72,0x63, +0x6c,0x65,0x64,0x03,0x63,0x63,0x77,0x0d,0x6c,0x6f,0x63,0x6b,0x2d,0x6f,0x70,0x65,0x6e,0x2d,0x61,0x6c,0x74,0x06,0x74,0x61,0x72,0x67,0x65,0x74,0x06,0x66,0x6c,0x6f,0x70,0x70,0x79,0x0f,0x77,0x69,0x6e,0x64,0x6f,0x77,0x2d,0x6d,0x61,0x78,0x69,0x6d,0x69,0x7a,0x65,0x0b,0x64,0x6f,0x74,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x03, +0x70,0x69,0x6e,0x09,0x61,0x72,0x72,0x6f,0x77,0x73,0x2d,0x63,0x77,0x05,0x70,0x61,0x75,0x73,0x65,0x04,0x73,0x74,0x6f,0x70,0x02,0x63,0x77,0x0a,0x61,0x6e,0x67,0x6c,0x65,0x2d,0x64,0x6f,0x77,0x6e,0x11,0x61,0x74,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x2d,0x63,0x69,0x72,0x63,0x6c,0x65,0x64,0x06,0x63,0x61,0x6e,0x63,0x65,0x6c,0x03, +0x62,0x6f,0x78,0x09,0x66,0x6c,0x6f,0x77,0x2d,0x74,0x72,0x65,0x65,0x0c,0x70,0x6c,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x0d,0x6d,0x69,0x6e,0x75,0x73,0x2d,0x73,0x71,0x75,0x61,0x72,0x65,0x64,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7e,0x00,0x7e,0x01,0x1e,0x00,0x7d,0x00,0x7d,0x01,0x1e,0x03,0x18,0xff,0xb1,0x03,0x38,0x03,0x0b,0xff,0xb1,0xff,0xb1,0x03,0x18,0xff,0xb1,0x03,0x38,0x03,0x0b,0xff,0xb1,0xff,0xb1,0xb0,0x00,0x2c,0x20,0xb0,0x00,0x55,0x58,0x45,0x59,0x20,0x20,0x4b,0xb8,0x00,0x0e,0x51,0x4b,0xb0,0x06, +0x53,0x5a,0x58,0xb0,0x34,0x1b,0xb0,0x28,0x59,0x60,0x66,0x20,0x8a,0x55,0x58,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x62,0x1b,0x21,0x21,0xb0,0x00,0x59,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x01,0x2c,0xb0,0x20,0x60,0x66,0x2d,0xb0,0x02,0x2c,0x23,0x21,0x23,0x21,0x2d,0xb0, +0x03,0x2c,0x20,0x64,0xb3,0x03,0x14,0x15,0x00,0x42,0x43,0xb0,0x13,0x43,0x20,0x60,0x60,0x42,0xb1,0x02,0x14,0x43,0x42,0xb1,0x25,0x03,0x43,0xb0,0x02,0x43,0x54,0x78,0x20,0xb0,0x0c,0x23,0xb0,0x02,0x43,0x43,0x61,0x64,0xb0,0x04,0x50,0x78,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb0,0x21,0x65,0x1c,0x21,0xb0,0x02,0x43,0x43,0xb2,0x0e, +0x15,0x01,0x42,0x1c,0x20,0xb0,0x02,0x43,0x23,0x42,0xb2,0x13,0x01,0x13,0x43,0x60,0x42,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb2,0x16,0x01,0x02,0x43,0x60,0x42,0x2d,0xb0,0x04,0x2c,0xb0,0x03,0x2b,0xb0,0x15,0x43,0x58,0x23,0x21,0x23,0x21,0xb0,0x16,0x43,0x43,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x1b,0x20,0x64,0x20,0xb0,0xc0,0x50, +0xb0,0x04,0x26,0x5a,0xb2,0x28,0x01,0x0d,0x43,0x45,0x63,0x45,0xb0,0x06,0x45,0x58,0x21,0xb0,0x03,0x25,0x59,0x52,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20,0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x61,0x64,0xb0,0x28,0x50,0x58, +0x21,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x20,0xb0,0x30,0x50,0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36,0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x02,0x25, +0xb0,0x0c,0x43,0x63,0xb0,0x00,0x52,0x58,0xb0,0x00,0x4b,0xb0,0x0a,0x50,0x58,0x21,0xb0,0x0c,0x43,0x1b,0x4b,0xb0,0x1e,0x50,0x58,0x21,0xb0,0x1e,0x4b,0x61,0xb8,0x10,0x00,0x63,0xb0,0x0c,0x43,0x63,0xb8,0x05,0x00,0x62,0x59,0x59,0x64,0x61,0x59,0xb0,0x01,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x20,0x64,0xb0,0x16, +0x43,0x23,0x42,0x59,0x2d,0xb0,0x05,0x2c,0x20,0x45,0x20,0xb0,0x04,0x25,0x61,0x64,0x20,0xb0,0x07,0x43,0x50,0x58,0xb0,0x07,0x23,0x42,0xb0,0x08,0x23,0x42,0x1b,0x21,0x21,0x59,0xb0,0x01,0x60,0x2d,0xb0,0x06,0x2c,0x23,0x21,0x23,0x21,0xb0,0x03,0x2b,0x20,0x64,0xb1,0x07,0x62,0x42,0x20,0xb0,0x08,0x23,0x42,0xb0,0x06,0x45,0x58,0x1b, +0xb1,0x01,0x0d,0x43,0x45,0x63,0xb1,0x01,0x0d,0x43,0xb0,0x01,0x60,0x45,0x63,0xb0,0x05,0x2a,0x21,0x20,0xb0,0x08,0x43,0x20,0x8a,0x20,0x8a,0xb0,0x01,0x2b,0xb1,0x30,0x05,0x25,0xb0,0x04,0x26,0x51,0x58,0x60,0x50,0x1b,0x61,0x52,0x59,0x58,0x23,0x59,0x21,0x59,0x20,0xb0,0x40,0x53,0x58,0xb0,0x01,0x2b,0x1b,0x21,0xb0,0x40,0x59,0x23, +0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x07,0x2c,0xb0,0x09,0x43,0x2b,0xb2,0x00,0x02,0x00,0x43,0x60,0x42,0x2d,0xb0,0x08,0x2c,0xb0,0x09,0x23,0x42,0x23,0x20,0xb0,0x00,0x23,0x42,0x61,0xb0,0x02,0x62,0x66,0xb0,0x01,0x63,0xb0,0x01,0x60,0xb0,0x07,0x2a,0x2d,0xb0,0x09,0x2c,0x20,0x20,0x45,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00, +0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0a,0x2c,0xb2,0x09,0x0e,0x00,0x43,0x45,0x42,0x2a,0x21,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0b,0x2c,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0c,0x2c,0x20,0x20,0x45,0x20,0xb0, +0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01, +0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a,0x23,0x61,0x20,0x64,0xb0,0x24,0x50,0x58,0xb0,0x00,0x1b,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0e,0x2c,0x20,0xb0,0x00,0x23,0x42,0xb3,0x0d,0x0c,0x00,0x03,0x45,0x50,0x58,0x21,0x1b,0x23,0x21, +0x59,0x2a,0x21,0x2d,0xb0,0x0f,0x2c,0xb1,0x02,0x02,0x45,0xb0,0x64,0x61,0x44,0x2d,0xb0,0x10,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0f,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0f,0x23,0x42,0x59,0xb0,0x10,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x10,0x23,0x42,0x59,0x2d,0xb0,0x11,0x2c,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63, +0x20,0xb8,0x04,0x00,0x63,0x8a,0x23,0x61,0xb0,0x11,0x43,0x60,0x20,0x8a,0x60,0x20,0xb0,0x11,0x23,0x42,0x23,0x2d,0xb0,0x12,0x2c,0x4b,0x54,0x58,0xb1,0x04,0x64,0x44,0x59,0x24,0xb0,0x0d,0x65,0x23,0x78,0x2d,0xb0,0x13,0x2c,0x4b,0x51,0x58,0x4b,0x53,0x58,0xb1,0x04,0x64,0x44,0x59,0x1b,0x21,0x59,0x24,0xb0,0x13,0x65,0x23,0x78,0x2d, +0xb0,0x14,0x2c,0xb1,0x00,0x12,0x43,0x55,0x58,0xb1,0x12,0x12,0x43,0xb0,0x01,0x61,0x42,0xb0,0x11,0x2b,0x59,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb1,0x0f,0x02,0x25,0x42,0xb1,0x10,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb1,0x01,0x00,0x43,0x60,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0, +0x10,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0,0x10,0x2a,0x21,0x1b,0xb1,0x01,0x00,0x43,0x60,0xb0,0x02,0x25,0x42,0xb0,0x02,0x25,0x61,0xb0,0x10,0x2a,0x21,0x59,0xb0,0x0f,0x43,0x47,0xb0,0x10,0x43,0x47,0x60,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x20,0xb0,0x0e,0x43,0x63, +0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb1,0x00,0x00,0x13,0x23,0x44,0xb0,0x01,0x43,0xb0,0x00,0x3e,0xb2,0x01,0x01,0x01,0x43,0x60,0x42,0x2d,0xb0,0x15,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x01,0x60, +0x42,0x20,0x60,0xb7,0x18,0x18,0x01,0x00,0x11,0x00,0x13,0x00,0x42,0x42,0x42,0x8a,0x60,0x20,0xb0,0x14,0x23,0x42,0xb0,0x01,0x61,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x16,0x2c,0xb1,0x00,0x15,0x2b,0x2d,0xb0,0x17,0x2c,0xb1,0x01,0x15,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x02,0x15,0x2b,0x2d,0xb0,0x19,0x2c,0xb1, +0x03,0x15,0x2b,0x2d,0xb0,0x1a,0x2c,0xb1,0x04,0x15,0x2b,0x2d,0xb0,0x1b,0x2c,0xb1,0x05,0x15,0x2b,0x2d,0xb0,0x1c,0x2c,0xb1,0x06,0x15,0x2b,0x2d,0xb0,0x1d,0x2c,0xb1,0x07,0x15,0x2b,0x2d,0xb0,0x1e,0x2c,0xb1,0x08,0x15,0x2b,0x2d,0xb0,0x1f,0x2c,0xb1,0x09,0x15,0x2b,0x2d,0xb0,0x2b,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63, +0xb0,0x06,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x5d,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2c,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x16,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x71,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2d,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x26,0x60,0x4b,0x54,0x58, +0x23,0x20,0x2e,0xb0,0x01,0x72,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x20,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x01,0x60,0x42,0x20,0x60,0xb0,0x01,0x61,0xb5,0x18,0x18,0x01,0x00,0x11,0x00,0x42,0x42,0x8a,0x60,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b, +0x1b,0x22,0x59,0x2d,0xb0,0x21,0x2c,0xb1,0x00,0x20,0x2b,0x2d,0xb0,0x22,0x2c,0xb1,0x01,0x20,0x2b,0x2d,0xb0,0x23,0x2c,0xb1,0x02,0x20,0x2b,0x2d,0xb0,0x24,0x2c,0xb1,0x03,0x20,0x2b,0x2d,0xb0,0x25,0x2c,0xb1,0x04,0x20,0x2b,0x2d,0xb0,0x26,0x2c,0xb1,0x05,0x20,0x2b,0x2d,0xb0,0x27,0x2c,0xb1,0x06,0x20,0x2b,0x2d,0xb0,0x28,0x2c,0xb1, +0x07,0x20,0x2b,0x2d,0xb0,0x29,0x2c,0xb1,0x08,0x20,0x2b,0x2d,0xb0,0x2a,0x2c,0xb1,0x09,0x20,0x2b,0x2d,0xb0,0x2e,0x2c,0x20,0x3c,0xb0,0x01,0x60,0x2d,0xb0,0x2f,0x2c,0x20,0x60,0xb0,0x18,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0x61,0xb0,0x01,0x60,0xb0,0x2e,0x2a,0x21,0x2d,0xb0,0x30,0x2c,0xb0,0x2f,0x2b,0xb0,0x2f, +0x2a,0x2d,0xb0,0x31,0x2c,0x20,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, +0x63,0x60,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x32,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x33,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x16,0xb0, +0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x34,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x35,0x2c,0x00,0xb1,0x0e,0x07,0x45,0x42,0xb0,0x01,0x45,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62, +0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x00,0x16,0xb4,0x00,0x00,0x00,0x00,0x00,0x44,0x3e,0x23,0x38,0xb1,0x34,0x01,0x15,0x2a,0x21,0x2d,0xb0,0x36,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, +0x63,0x60,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x37,0x2c,0x2e,0x17,0x3c,0x2d,0xb0,0x38,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x39,0x2c,0xb1,0x02,0x00,0x16,0x25,0x20, +0x2e,0x20,0x47,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0x49,0x8a,0x8a,0x47,0x23,0x47,0x23,0x61,0x20,0x58,0x62,0x1b,0x21,0x59,0xb0,0x01,0x23,0x42,0xb2,0x38,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x3a,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43, +0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x3b,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3, +0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x0a,0x43,0x20,0x8a,0x23,0x47,0x23,0x47,0x23,0x61,0x23,0x46,0x60,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50, +0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0a,0x43,0x46,0xb0,0x02,0x25,0xb0,0x0a,0x43,0x47,0x23,0x47,0x23,0x61,0x60,0x20,0xb0,0x06,0x43,0xb0, +0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x06,0x43,0x60,0xb0,0x01,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0, +0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x59,0x2d,0xb0,0x3c,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0x20,0x20,0xb0,0x05,0x26,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x23,0x3c,0x38,0x2d,0xb0,0x3d,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x23, +0x42,0x20,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x2d,0xb0,0x3e,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x03,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x05,0x25,0xb0,0x04,0x25,0x47, +0x23,0x47,0x23,0x61,0xb0,0x06,0x25,0xb0,0x05,0x25,0x49,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x20,0x58,0x62,0x1b,0x21,0x59,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2d,0xb0,0x3f,0x2c,0xb0, +0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x43,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x40,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52, +0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x41,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x42,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c, +0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x43,0x2c,0xb0,0x3a,0x2b,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x44,0x2c, +0xb0,0x3b,0x2b,0x8a,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x8a,0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x45,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x26,0x20,0x20,0x20,0x46,0x23, +0x47,0x61,0xb0,0x0c,0x23,0x42,0x2e,0x47,0x23,0x47,0x23,0x61,0xb0,0x0b,0x43,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x46,0x2c,0xb1,0x0a,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b, +0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0x47,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23, +0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x21,0x59,0xb1, +0x30,0x01,0x14,0x2b,0x2d,0xb0,0x47,0x2c,0xb1,0x00,0x3a,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x48,0x2c,0xb1,0x00,0x3b,0x2b,0x21,0x23,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x49,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00, +0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4a,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4b,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x37,0x2a,0x2d,0xb0,0x4c,0x2c,0xb0,0x39,0x2a,0x2d,0xb0,0x4d,0x2c,0xb0,0x00,0x16,0x45,0x23,0x20,0x2e,0x20, +0x46,0x8a,0x23,0x61,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x4e,0x2c,0xb0,0x0a,0x23,0x42,0xb0,0x4d,0x2b,0x2d,0xb0,0x4f,0x2c,0xb2,0x00,0x00,0x46,0x2b,0x2d,0xb0,0x50,0x2c,0xb2,0x00,0x01,0x46,0x2b,0x2d,0xb0,0x51,0x2c,0xb2,0x01,0x00,0x46,0x2b,0x2d,0xb0,0x52,0x2c,0xb2,0x01,0x01,0x46,0x2b,0x2d,0xb0,0x53,0x2c,0xb2,0x00,0x00, +0x47,0x2b,0x2d,0xb0,0x54,0x2c,0xb2,0x00,0x01,0x47,0x2b,0x2d,0xb0,0x55,0x2c,0xb2,0x01,0x00,0x47,0x2b,0x2d,0xb0,0x56,0x2c,0xb2,0x01,0x01,0x47,0x2b,0x2d,0xb0,0x57,0x2c,0xb3,0x00,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x58,0x2c,0xb3,0x00,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x59,0x2c,0xb3,0x01,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x5a,0x2c,0xb3, +0x01,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x5b,0x2c,0xb3,0x00,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5c,0x2c,0xb3,0x00,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5d,0x2c,0xb3,0x01,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5e,0x2c,0xb3,0x01,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5f,0x2c,0xb2,0x00,0x00,0x45,0x2b,0x2d,0xb0,0x60,0x2c,0xb2,0x00,0x01,0x45,0x2b,0x2d, +0xb0,0x61,0x2c,0xb2,0x01,0x00,0x45,0x2b,0x2d,0xb0,0x62,0x2c,0xb2,0x01,0x01,0x45,0x2b,0x2d,0xb0,0x63,0x2c,0xb2,0x00,0x00,0x48,0x2b,0x2d,0xb0,0x64,0x2c,0xb2,0x00,0x01,0x48,0x2b,0x2d,0xb0,0x65,0x2c,0xb2,0x01,0x00,0x48,0x2b,0x2d,0xb0,0x66,0x2c,0xb2,0x01,0x01,0x48,0x2b,0x2d,0xb0,0x67,0x2c,0xb3,0x00,0x00,0x00,0x44,0x2b,0x2d, +0xb0,0x68,0x2c,0xb3,0x00,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x69,0x2c,0xb3,0x01,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x6a,0x2c,0xb3,0x01,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x6b,0x2c,0xb3,0x00,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6c,0x2c,0xb3,0x00,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6d,0x2c,0xb3,0x01,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6e,0x2c,0xb3, +0x01,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6f,0x2c,0xb1,0x00,0x3c,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x70,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x71,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x72,0x2c,0xb0,0x00,0x16,0xb1,0x00,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x73,0x2c,0xb1,0x01,0x3c,0x2b,0xb0, +0x40,0x2b,0x2d,0xb0,0x74,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x75,0x2c,0xb0,0x00,0x16,0xb1,0x01,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x76,0x2c,0xb1,0x00,0x3d,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x77,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x78,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x41,0x2b,0x2d, +0xb0,0x79,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7a,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7b,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x7c,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7d,0x2c,0xb1,0x00,0x3e,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x7e,0x2c,0xb1,0x00,0x3e, +0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7f,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x80,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x81,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x82,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x83,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x84,0x2c,0xb1, +0x00,0x3f,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x85,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x86,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x87,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x88,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x89,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x41,0x2b, +0x2d,0xb0,0x8a,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x8b,0x2c,0xb2,0x0b,0x00,0x03,0x45,0x50,0x58,0xb0,0x06,0x1b,0xb2,0x04,0x02,0x03,0x45,0x58,0x23,0x21,0x1b,0x21,0x59,0x59,0x42,0x2b,0xb0,0x08,0x65,0xb0,0x03,0x24,0x50,0x78,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x2d,0x00,0x4b,0xb8,0x00,0xc8,0x52,0x58,0xb1, +0x01,0x01,0x8e,0x59,0xb0,0x01,0xb9,0x08,0x00,0x08,0x00,0x63,0x70,0xb1,0x00,0x07,0x42,0xb2,0x19,0x01,0x00,0x2a,0xb1,0x00,0x07,0x42,0xb3,0x0d,0x09,0x01,0x0a,0x2a,0xb1,0x00,0x07,0x42,0xb3,0x16,0x06,0x01,0x0a,0x2a,0xb1,0x00,0x08,0x42,0xba,0x03,0x80,0x00,0x01,0x00,0x0b,0x2a,0xb1,0x00,0x09,0x42,0xba,0x00,0x80,0x00,0x01,0x00, +0x0b,0x2a,0xb9,0x00,0x03,0x00,0x00,0x44,0xb1,0x24,0x01,0x88,0x51,0x58,0xb0,0x40,0x88,0x58,0xb9,0x00,0x03,0x00,0x64,0x44,0xb1,0x28,0x01,0x88,0x51,0x58,0xb8,0x08,0x00,0x88,0x58,0xb9,0x00,0x03,0x00,0x00,0x44,0x59,0x1b,0xb1,0x27,0x01,0x88,0x51,0x58,0xba,0x08,0x80,0x00,0x01,0x04,0x40,0x88,0x63,0x54,0x58,0xb9,0x00,0x03,0x00, +0x00,0x44,0x59,0x59,0x59,0x59,0x59,0xb3,0x10,0x06,0x01,0x0e,0x2a,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0xb1,0x02,0x00,0x44,0xb3,0x05,0x64,0x06,0x00,0x44,0x44,0x00, +}; + +read_only global String8 rd_icon_font_bytes = {rd_icon_font_bytes__data, sizeof(rd_icon_font_bytes__data)}; +read_only global U8 rd_default_main_font_bytes__data[] = +{ +0x00,0x01,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x04,0x00,0x80,0x44,0x53,0x49,0x47,0x63,0xbc,0x04,0x48,0x00,0x0c,0x94,0x20,0x00,0x00,0x23,0xa0,0x47,0x44,0x45,0x46,0xb9,0xab,0xc5,0xc1,0x00,0x0c,0xb7,0xc0,0x00,0x00,0x03,0x58,0x47,0x50,0x4f,0x53,0x5b,0xad,0x7e,0xc2,0x00,0x0c,0xbb,0x18,0x00,0x01,0x4c,0xc8,0x47,0x53,0x55,0x42, +0x62,0x6c,0x1b,0xf3,0x00,0x0e,0x07,0xe0,0x00,0x00,0x8d,0x2e,0x4c,0x54,0x53,0x48,0x69,0x2b,0xe4,0xa7,0x00,0x00,0x55,0xe8,0x00,0x00,0x14,0xe4,0x4d,0x45,0x52,0x47,0x00,0x16,0x00,0x01,0x00,0x0e,0x95,0x10,0x00,0x00,0x00,0x0c,0x4f,0x53,0x2f,0x32,0x5f,0x62,0x3d,0x91,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x60,0x56,0x44,0x4d,0x58, +0x76,0x58,0x7d,0xd3,0x00,0x00,0x6a,0xcc,0x00,0x00,0x05,0xe0,0x63,0x6d,0x61,0x70,0x33,0x66,0x8a,0xbf,0x00,0x01,0xd3,0xd8,0x00,0x00,0x1c,0xe4,0x63,0x76,0x74,0x20,0x82,0x03,0x5d,0xdb,0x00,0x02,0x03,0x58,0x00,0x00,0x0a,0x22,0x66,0x70,0x67,0x6d,0x49,0x44,0xd8,0x67,0x00,0x01,0xf0,0xbc,0x00,0x00,0x0a,0x5c,0x67,0x61,0x73,0x70, +0x00,0x1b,0x00,0x23,0x00,0x0c,0x94,0x10,0x00,0x00,0x00,0x10,0x67,0x6c,0x79,0x66,0x2b,0xa3,0xa5,0xc9,0x00,0x02,0x61,0x00,0x00,0x09,0x4b,0xfc,0x68,0x64,0x6d,0x78,0xf0,0x92,0x4d,0xb8,0x00,0x00,0x70,0xac,0x00,0x01,0x63,0x2c,0x68,0x65,0x61,0x64,0xf3,0x00,0x6d,0x9b,0x00,0x00,0x01,0x8c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61, +0x14,0x0e,0x1d,0xa4,0x00,0x00,0x01,0xc4,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78,0x5e,0x06,0x4f,0x2c,0x00,0x00,0x02,0x68,0x00,0x00,0x53,0x80,0x6b,0x65,0x72,0x6e,0xcc,0xce,0xe6,0xda,0x00,0x0b,0xac,0xfc,0x00,0x00,0xc2,0x6a,0x6c,0x6f,0x63,0x61,0x5a,0x85,0x46,0xd0,0x00,0x02,0x0d,0x7c,0x00,0x00,0x53,0x84,0x6d,0x61,0x78,0x70, +0x1a,0xb0,0x0d,0xea,0x00,0x00,0x01,0xe8,0x00,0x00,0x00,0x20,0x6d,0x65,0x74,0x61,0x4d,0x44,0xb7,0xb7,0x00,0x0e,0x95,0x1c,0x00,0x00,0x00,0x80,0x6e,0x61,0x6d,0x65,0x4e,0xc3,0x16,0xb3,0x00,0x0c,0x6f,0x68,0x00,0x00,0x24,0x88,0x70,0x6f,0x73,0x74,0xff,0x51,0x00,0x77,0x00,0x0c,0x93,0xf0,0x00,0x00,0x00,0x20,0x70,0x72,0x65,0x70, +0x93,0xee,0x1e,0xb9,0x00,0x01,0xfb,0x18,0x00,0x00,0x08,0x40,0x00,0x01,0x00,0x00,0x00,0x05,0x9e,0xb8,0xa0,0x2c,0x85,0x86,0x5f,0x0f,0x3c,0xf5,0x00,0x1b,0x08,0x00,0x00,0x00,0x00,0x00,0xaf,0xf5,0x3c,0xaf,0x00,0x00,0x00,0x00,0xd8,0x6f,0x46,0x1c,0xfb,0x6b,0xfc,0xb6,0x0f,0xfe,0x0a,0x63,0x00,0x00,0x00,0x09,0x00,0x01,0x00,0x01, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x08,0xa2,0xfd,0xfe,0x00,0x00,0x0f,0xf4,0xfb,0x6b,0xfa,0xd1,0x0f,0xfe,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0xe0,0x00,0x01,0x00,0x00,0x14,0xe0,0x02,0xb9,0x00,0x20,0x00,0xa3,0x00,0x07,0x00,0x02,0x00,0x10,0x00,0x2f,0x00,0x86,0x00,0x00, +0x05,0x0e,0x0a,0x5c,0x00,0x04,0x00,0x01,0x00,0x03,0x04,0x4f,0x01,0x90,0x00,0x05,0x00,0x08,0x05,0x9a,0x05,0x33,0x00,0x00,0x01,0x1b,0x05,0x9a,0x05,0x33,0x00,0x00,0x03,0xd1,0x00,0x66,0x02,0x12,0x08,0x05,0x02,0x0b,0x05,0x02,0x04,0x02,0x04,0x02,0x02,0x03,0xe4,0x00,0x2e,0xff,0xc0,0x00,0xe4,0x7f,0x00,0x00,0x00,0x09,0x00,0x00, +0x00,0x00,0x4d,0x53,0x20,0x20,0x00,0x40,0x00,0x0d,0xff,0xfd,0x05,0xd3,0xfe,0x51,0x01,0x0d,0x08,0xa2,0x02,0x02,0x20,0x00,0x01,0xff,0x00,0x00,0x00,0x00,0x04,0x00,0x05,0x9a,0x00,0x00,0x00,0x20,0x00,0x17,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x00,0x00,0xc7,0x00,0x00,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x03,0x23,0x00,0xa3, +0x04,0xba,0x00,0x21,0x04,0x50,0x00,0xa2,0x06,0x8c,0x00,0x50,0x06,0x67,0x00,0x77,0x01,0xd7,0x00,0xa3,0x02,0x6a,0x00,0x8c,0x02,0x6a,0x00,0x16,0x03,0x56,0x00,0x4c,0x05,0x79,0x00,0xe8,0x01,0xbc,0x00,0x27,0x03,0x33,0x00,0x90,0x01,0xbc,0x00,0x70,0x03,0x1e,0xff,0xe4,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xe4,0x04,0x50,0x00,0x6d, +0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x62,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x05,0x79,0x01,0x10,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x10,0x03,0x96,0x00,0x83,0x07,0xa4,0x00,0xac,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc, +0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x03,0xe8,0x00,0xbc,0x05,0x7d,0x00,0x5e,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x02,0xdb,0x00,0x14,0x04,0xa4,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e,0x04,0xc9,0x00,0xbc, +0x04,0x40,0x00,0x79,0x04,0x31,0x00,0x29,0x05,0x7f,0x00,0xaa,0x04,0xf8,0x00,0x12,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x90,0x00,0x21,0x02,0x6a,0x00,0xc8,0x03,0x08,0xff,0xe6,0x02,0x6a,0x00,0x35,0x05,0x79,0x00,0xe6,0x03,0x52,0x00,0x00,0x02,0x25,0x00,0x52,0x04,0x12,0x00,0x5a,0x04,0xb4,0x00,0xa6, +0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0xc8,0x00,0xa6, +0x03,0x65,0x00,0x68,0x02,0xb6,0x00,0x2b,0x04,0x87,0x00,0x90,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0xac,0x00,0x1a,0x03,0xdf,0x00,0x0e,0x03,0x9e,0x00,0x21,0x02,0x6a,0x00,0x5c,0x01,0xea,0x00,0xac,0x02,0x6a,0x00,0x42,0x05,0x79,0x00,0xd1,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x5e,0x04,0x0c,0x00,0xbc, +0x05,0xfc,0x00,0xbc,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x04,0x12,0x00,0x5a,0x03,0xb2,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x04,0x2f,0x00,0x60,0x01,0xf0,0x00,0x58,0x01,0xf0,0xff,0xec, +0x01,0xf0,0xff,0xd3,0x01,0xf0,0xff,0xc9,0x04,0x87,0x00,0xa6,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0x90,0x03,0x00,0x00,0x30,0x03,0x04,0x00,0x6c,0x04,0x50,0x00,0xb8,0x04,0x50,0x00,0x6a, +0x03,0x96,0x00,0x83,0x03,0x40,0x00,0xa4,0x03,0xaa,0x00,0x54,0x04,0x5a,0x00,0xa6,0x03,0x33,0x00,0x90,0x07,0x1f,0x01,0x38,0x07,0x1f,0x00,0xa2,0x06,0x2f,0x00,0x4c,0x02,0x42,0x00,0x87,0x03,0x50,0x00,0x7d,0x05,0x7b,0x00,0xe8,0x06,0xe2,0x00,0x0a,0x06,0x08,0x00,0x5e,0x06,0x89,0x00,0x52,0x05,0x79,0x00,0xe8,0x05,0x7b,0x00,0xe8, +0x05,0x7b,0x00,0xe8,0x04,0x50,0x00,0x44,0x04,0x9e,0x00,0xa6,0x04,0x48,0x00,0x4e,0x04,0xef,0x00,0x33,0x06,0x08,0x00,0xbc,0x04,0x51,0x00,0xbe,0x03,0x23,0x00,0x52,0x03,0x72,0x00,0x4e,0x06,0x0a,0x00,0x64,0x06,0xa8,0x00,0x5a,0x04,0xb0,0x00,0x31,0x03,0x96,0x00,0x8f,0x02,0x31,0x00,0x00,0x02,0x46,0x00,0xb4,0x05,0x79,0x00,0xe8, +0x05,0x33,0x00,0x7b,0x04,0x50,0x00,0x5e,0x05,0x7b,0x00,0xd1,0x05,0x28,0x00,0x33,0x04,0x0c,0x00,0x5c,0x04,0x0c,0x00,0x5a,0x05,0xdd,0x00,0x8c,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x06,0x08,0x00,0x5e,0x07,0x72,0x00,0x5e,0x07,0x6c,0x00,0x60,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x03,0x04,0x00,0x6a,0x03,0x04,0x00,0x6e, +0x01,0xd5,0x00,0x6a,0x01,0xd5,0x00,0x6e,0x05,0x79,0x00,0xe8,0x04,0xab,0x00,0x6c,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x01,0x62,0xfe,0xc8,0x04,0x50,0x00,0x66,0x02,0x87,0x00,0x5c,0x02,0x87,0x00,0x5c,0x04,0x70,0x00,0x35,0x04,0x70,0x00,0x35,0x03,0x00,0x00,0x30,0x01,0xbc,0x00,0x70,0x01,0xd5,0x00,0x58,0x03,0x04,0x00,0x58, +0x09,0xae,0x00,0x50,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x02,0x21,0x00,0x78,0x02,0x21,0xff,0xfc,0x02,0x21,0xff,0xf1,0x02,0x21,0x00,0x1b,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa, +0x01,0xf0,0x00,0xa6,0x02,0xf8,0x00,0x5c,0x02,0xb2,0x00,0x23,0x02,0x7b,0x00,0x3e,0x02,0x6e,0x00,0x25,0x01,0x9c,0x00,0x6c,0x02,0x3e,0x00,0x52,0x01,0xa4,0x00,0x33,0x02,0x98,0x00,0x40,0x01,0x7b,0x00,0x3e,0x02,0xf8,0x00,0x66,0x03,0xc4,0x00,0x21,0x02,0x31,0x00,0x16,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x90,0x00,0x21, +0x03,0x9e,0x00,0x21,0x01,0xea,0x00,0xac,0x05,0x9c,0x00,0x1c,0x04,0x79,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x05,0x79,0x00,0xe8,0x05,0x79,0x01,0x0c,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x07,0x72,0x00,0x50,0x07,0x40,0x00,0x50,0x07,0x9e,0x00,0x81, +0x03,0xe8,0x00,0x1c,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x02,0x21,0x00,0xad,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x03,0x52,0x00,0x00,0x01,0xbc,0x00,0x70,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x05,0x9c,0x00,0xbc,0x05,0x65,0x00,0x60,0x05,0x9c,0x00,0x1c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x8e,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x02,0x85,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6, +0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x97,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x03,0x85,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90, +0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x03,0xc6,0x00,0xbc,0x06,0x08,0x00,0x5e,0x06,0x08,0x00,0x60,0x04,0xea,0x00,0x5a,0x04,0xac,0x00,0x5c,0x03,0x81,0x00,0x52,0x04,0x99,0x00,0x61,0x03,0xe6,0x00,0x22,0x05,0x98,0x00,0x60,0x03,0x52,0x00,0x00, +0x03,0xd7,0x00,0xb4,0x03,0x23,0x00,0x6e,0x08,0xe2,0x00,0xbc,0x04,0xfc,0x00,0xbc,0x03,0xf6,0x00,0x90,0x04,0xd9,0xff,0xd7,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x06,0x6e,0x00,0x96,0x02,0x96,0x00,0x0e,0x04,0xd5,0x00,0x92,0x02,0xd5,0x00,0x83,0x02,0xd5,0x00,0x83,0x04,0xd5,0x00,0xb2,0x02,0xd5,0x00,0x70,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e, +0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0x1c,0x04,0x87,0x00,0x1e,0x02,0x21,0xff,0xd0,0x01,0xf0,0xff,0xad,0x02,0x21,0x00,0x13,0x01,0xf0,0xff,0xef,0x02,0x21,0xff,0xfe,0x01,0xf0,0xff,0xdb,0x02,0x21,0x00,0x50,0x01,0xf0,0x00,0x37,0x02,0xdb,0x00,0x14,0x01,0xf0,0xff,0x3a,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x27,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68, +0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xee,0x00,0xa6,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x31,0x01,0xbc,0x00,0x70,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x01,0xd5,0x00,0x6e,0x03,0x52,0x00,0x00, +0x04,0x50,0x00,0x6a,0x04,0xcd,0x00,0x55,0x07,0x60,0x00,0x50,0x07,0x60,0x00,0x81,0x07,0x6e,0x00,0x8c,0x07,0x23,0x00,0xa2,0x03,0x1e,0x00,0xdb,0x03,0x1e,0x00,0xdb,0x01,0xbc,0x00,0x27,0x02,0x2e,0x00,0xce,0x02,0x2e,0xff,0xda,0x05,0x29,0x00,0x16,0x04,0x90,0xff,0xc5,0x06,0x31,0xff,0xc5,0x03,0x07,0xff,0xc6,0x06,0x68,0xff,0xd1, +0x05,0x56,0xff,0xb3,0x06,0x9c,0xff,0xd1,0x02,0x22,0xff,0xb2,0x05,0x29,0x00,0x16,0x04,0x96,0x00,0xbc,0x04,0x0c,0x00,0xbc,0x04,0x90,0x00,0x21,0x05,0xae,0x00,0xbc,0x02,0x21,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x08,0x00,0x18,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x14,0x00,0x3a,0x06,0x08,0x00,0x5e,0x05,0xb4,0x00,0xbc, +0x04,0x7b,0x00,0xbc,0x04,0x21,0x00,0x2e,0x04,0x31,0x00,0x29,0x04,0x6c,0x00,0x12,0x04,0xb8,0x00,0x1a,0x06,0x35,0x00,0x88,0x06,0x0a,0x00,0x64,0x02,0x21,0xff,0xf1,0x04,0x6c,0x00,0x12,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0xa6,0x04,0x6c,0x00,0x14,0x04,0x62,0x00,0xa7,0x04,0x27,0x00,0x05, +0x03,0x89,0x00,0x4c,0x04,0x9a,0x00,0x82,0x04,0xb1,0x00,0x61,0x02,0x22,0x00,0xa6,0x04,0x31,0x00,0xa6,0x03,0xfc,0xff,0xfe,0x04,0x9e,0x00,0xa7,0x04,0x35,0x00,0x0c,0x03,0x8f,0x00,0x4d,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0xa1,0x03,0xaf,0x00,0x57,0x04,0x6c,0x00,0x14,0x04,0x4e,0x00,0x0c,0x06,0x00,0x00,0x98,0x06,0x77,0x00,0x77, +0x02,0x22,0xff,0xed,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x04,0x0c,0x00,0xbc,0x05,0x9a,0x00,0x29,0x03,0xc6,0x00,0xbc,0x04,0xf0,0x00,0x5e,0x04,0x40,0x00,0x79,0x02,0x21,0xff,0xf1,0x07,0xd9,0x00,0x10,0x07,0xde,0x00,0xbc,0x05,0xc8,0x00,0x29,0x04,0xa4,0x00,0xbc,0x04,0x8a,0x00,0x3c, +0x05,0xab,0x00,0xbc,0x05,0x29,0x00,0x16,0x04,0x93,0x00,0xbc,0x04,0x96,0x00,0xbc,0x03,0xc6,0x00,0xbc,0x05,0x8c,0x00,0x0f,0x04,0x0c,0x00,0xbc,0x06,0xef,0xff,0xea,0x04,0x52,0x00,0x60,0x05,0xfe,0x00,0xbc,0x05,0xfe,0x00,0xbc,0x04,0xa4,0x00,0xbc,0x05,0x62,0x00,0x10,0x07,0x2f,0x00,0xbc,0x05,0xae,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0xb4,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x04,0x31,0x00,0x29,0x04,0x8a,0x00,0x3c,0x05,0xd0,0x00,0x5e,0x04,0xb8,0x00,0x1a,0x05,0xf0,0x00,0xbc,0x05,0x4a,0x00,0xa6,0x07,0x98,0x00,0xbc,0x07,0xd7,0x00,0xbc,0x05,0xa5,0x00,0x29,0x06,0x44,0x00,0xbc,0x04,0x9c,0x00,0xbc,0x04,0xee,0x00,0x68,0x08,0x26,0x00,0xbc, +0x04,0xba,0x00,0x3d,0x04,0x12,0x00,0x5a,0x04,0xa2,0x00,0x77,0x04,0x3d,0x00,0xa6,0x03,0x10,0x00,0xa6,0x04,0x60,0x00,0x12,0x04,0x2f,0x00,0x60,0x05,0xf8,0x00,0x04,0x03,0x91,0x00,0x50,0x04,0xa6,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x03,0xfa,0x00,0xa6,0x04,0x37,0x00,0x10,0x05,0x9e,0x00,0xa6,0x04,0x9e,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0x9e,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x48,0x00,0x1e,0x03,0xdf,0x00,0x0e,0x05,0x7d,0x00,0x60,0x03,0xac,0x00,0x1a,0x04,0xcd,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x66,0x00,0xa6,0x06,0x98,0x00,0xa6,0x04,0xba,0x00,0x1e,0x05,0xad,0x00,0xa6,0x04,0x08,0x00,0xa6,0x03,0xb2,0x00,0x5a,0x06,0x81,0x00,0xa6, +0x04,0x06,0x00,0x3e,0x04,0x2f,0x00,0x60,0x04,0x9e,0x00,0x27,0x03,0x10,0x00,0xa6,0x03,0xb2,0x00,0x60,0x03,0x65,0x00,0x68,0x01,0xf0,0xff,0xd3,0x06,0x52,0x00,0x10,0x06,0x74,0x00,0xa6,0x04,0x8a,0x00,0x27,0x03,0xfa,0x00,0xa6,0x03,0xdf,0x00,0x0e,0x04,0x9e,0x00,0xa6,0x03,0xc0,0x00,0xbc,0x03,0x20,0x00,0xa6,0x08,0x00,0x00,0x00, +0x08,0xfa,0x00,0xbc,0x05,0x04,0x00,0x11,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x01,0xf0,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x72,0x00,0x64,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x02,0x6e,0x00,0xab,0x02,0xaa,0x00,0xf2, +0x02,0x25,0x00,0x66,0x02,0x25,0x00,0x64,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x42,0x03,0xd3,0x00,0x6c,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0xab,0x03,0xd3,0x00,0xa9,0x02,0x6e,0x00,0x25,0x02,0x6e,0x00,0x38,0x02,0x6e,0x00,0x25,0x03,0xd3,0x00,0xa9, +0x03,0xd3,0x00,0x6c,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0xff,0xe8,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16, +0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc, +0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0x0e,0x04,0x2f,0x00,0x0c,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0x00,0x9a,0x01,0xf0,0x00,0x88,0x02,0x21,0x00,0xb2,0x01,0xf0,0x00,0x90,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, +0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x30,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e, +0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x06,0x1a,0x00,0x5e,0x04,0xc7,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa, +0x04,0xb4,0x00,0x90,0x05,0xaa,0x00,0xaa,0x04,0xb4,0x00,0x90,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x02,0x21,0x00,0xbc, +0x02,0xdb,0x00,0x14,0x01,0xf0,0x00,0x90,0x01,0xf0,0xff,0x3a,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x07,0x48,0xff,0xea,0x06,0x3e,0x00,0x04,0x04,0xe6,0x00,0xbc,0x04,0x3e,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xf6,0x00,0xa6,0x05,0xf0,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x6c,0x00,0x12, +0x03,0xdf,0x00,0x0e,0x05,0x04,0x00,0x1a,0x03,0xf2,0x00,0x1a,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x02,0x6e,0x00,0x3e,0x03,0x50,0x00,0x7d, +0x03,0x50,0x00,0x7d,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x03,0xd3,0x00,0xa9,0x02,0x25,0x00,0x14,0x02,0x25,0x00,0x14,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x1e,0x02,0x6e,0x00,0x14,0x02,0x6e,0x00,0x14,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x04,0x96,0x00,0xbc, +0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x96,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xf4,0x00,0x5e,0x03,0xb2,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc,0x04,0xb6,0x00,0x60,0x05,0x9c,0x00,0xbc, +0x04,0xb6,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x03,0xe8,0x00,0xbc,0x02,0x81,0x00,0x35,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0xae,0x00,0xbc, +0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xae,0x00,0xa0,0x04,0x87,0x00,0x8c,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x02,0x21,0xff,0xcf,0x01,0xf0,0xff,0xb9,0x02,0x21,0xff,0xf2,0x01,0xf0,0xff,0xd4,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x03,0xc4,0x00,0xbc,0x01,0xf0,0x00,0x95,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfa,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xfc,0x03,0xc4,0x00,0xbc,0x01,0xf0,0xff,0xdf,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc,0x06,0xe4,0x00,0xa6,0x07,0x2f,0x00,0xbc, +0x06,0xe4,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e, +0x04,0xb0,0x00,0x60,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79, +0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x7f,0x00,0xaa, +0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x04,0xf8,0x00,0x12,0x03,0xd5,0x00,0x0e,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x07,0x79,0x00,0x1a, +0x05,0xc8,0x00,0x18,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x03,0xac,0x00,0x1a,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0x87,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x05,0xc8,0x00,0x18, +0x03,0xdf,0x00,0x0e,0x04,0x12,0x00,0x5a,0x01,0xee,0x00,0x4e,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc, +0x05,0xee,0xff,0xbe,0x05,0xee,0xff,0xbc,0x05,0xee,0xff,0xbc,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x90,0xff,0xbd,0x04,0x90,0xff,0xbe,0x05,0xb2,0xff,0xbc,0x05,0xb2,0xff,0xc0,0x05,0xb2,0xff,0xbd,0x05,0xb2,0xff,0xbf,0x04,0x9a,0x00,0x82, +0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x30,0xff,0xbd,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xc0,0x07,0x56,0xff,0xbd,0x07,0x56,0xff,0xbf,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x02,0x22,0x00,0x94, +0x02,0x22,0x00,0x6e,0x02,0x22,0xff,0xdd,0x02,0x22,0xff,0xb3,0x02,0x22,0x00,0x1b,0x02,0x22,0xff,0xea,0x02,0x22,0xff,0xc0,0x02,0x22,0xff,0xc0,0x03,0x06,0xff,0xbd,0x03,0x06,0xff,0xbe,0x03,0xf8,0xff,0xbd,0x03,0xf8,0xff,0xc0,0x04,0x2a,0xff,0xbc,0x04,0x34,0xff,0xbf,0x04,0x2a,0xff,0xbd,0x04,0x2a,0xff,0xbd,0x04,0xb0,0x00,0x60, +0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x06,0x6e,0xff,0xbd,0x06,0x6e,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x07,0xa0,0xff,0xbc,0x07,0xa0,0xff,0xbe,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x05,0x56,0xff,0xbe,0x06,0x8c,0xff,0xc0,0x06,0x8c,0xff,0xbf,0x06,0x8c,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbd, +0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xc0,0x07,0xa6,0xff,0xbd,0x07,0xa6,0xff,0xbf,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x03,0x81,0x00,0x52,0x03,0x81,0x00,0x52,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x02,0x22,0x00,0x34,0x02,0x22,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0xee,0xff,0xbd, +0x05,0xee,0xff,0xc1,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbf,0x05,0xee,0xff,0xbd,0x05,0xee,0xff,0xbc,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x04,0x9a,0x00,0x82,0x06,0x31,0xff,0xbc,0x06,0x30,0xff,0xbe,0x07,0x56,0xff,0xbc, +0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbe,0x07,0x56,0xff,0xbc,0x07,0x56,0xff,0xbc,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xbc,0x06,0x9c,0xff,0xbe,0x07,0xa6,0xff,0xbc, +0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbe,0x07,0xa6,0xff,0xbc,0x07,0xa6,0xff,0xbc,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x16,0x05,0x29,0xff,0xfb,0x05,0x29,0x00,0x16, +0x05,0x29,0x00,0x16,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0xba,0x04,0xb0,0x01,0xe4,0x04,0xb0,0x01,0x40,0x04,0xb0,0x01,0x33,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x9a,0x00,0x83,0x04,0x90,0xff,0xac,0x04,0x90,0xff,0xc4,0x06,0x31,0xff,0xac,0x06,0x31,0xff,0xc4,0x05,0xae,0x00,0xbc, +0x04,0xb0,0x01,0x4a,0x04,0xb0,0x01,0x42,0x04,0xb0,0x01,0x33,0x02,0x22,0xff,0xec,0x02,0x22,0xff,0xfa,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xb2,0x02,0x22,0xff,0xdf,0x02,0x22,0xff,0xd5,0x02,0x21,0xff,0xfe,0x02,0x21,0x00,0x12,0x02,0xe8,0xff,0xae,0x03,0x07,0xff,0xc6,0x04,0xb0,0x01,0x44,0x04,0xb0,0x01,0x38,0x04,0xb0,0x01,0x33, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0xb0,0x00,0xa1,0x04,0xb0,0x00,0xa1,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x12,0x04,0x6c,0x00,0x12,0x05,0x56,0xff,0x96,0x05,0x56,0xff,0xb2,0x05,0x04,0xff,0xbe,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0x02,0x04,0xb0,0x01,0xd1, +0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x77,0x00,0x77,0x06,0x9c,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0xb3,0xff,0xac,0x06,0x9c,0xff,0xd1,0x06,0x0a,0x00,0x64,0x04,0xb0,0x01,0xd1,0x04,0xb0,0x01,0xe2,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58, +0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x33,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xe8,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x58,0x00,0x00,0xfe,0xdd,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0xff,0x8c,0x00,0x00,0x00,0x2f,0x00,0x00,0xff,0x3e, +0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x48,0x00,0x00,0xff,0x16,0x00,0x00,0xff,0x52,0x00,0x00,0xff,0xa6,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x4c,0x00,0x00,0xff,0x03,0x00,0x00,0xff,0x1a,0x00,0x00,0xff,0x1a,0x00,0x00,0xfe,0xdd,0x00,0x00,0xff,0x35,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x56, +0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0xcb,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0xb1,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xe9,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x05,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x02,0x00,0x00,0xfe,0x58,0x00,0x00,0xfe,0x66, +0x00,0x00,0xfe,0x70,0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x44,0x00,0x00,0xfe,0xa5,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x9e,0x00,0x00,0xfe,0x57,0x00,0x00,0xfe,0x70,0x00,0x00,0x00,0x0a,0x00,0x00,0xfe,0xc0,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xaa,0x00,0x00,0xff,0x64,0x00,0x00,0xfe,0x9c,0x00,0x00,0xfe,0x2a, +0x00,0x00,0xff,0x58,0x00,0x00,0xff,0x4c,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xc0,0x00,0x00,0xfe,0xa8,0x00,0x00,0xff,0x5c,0x00,0x00,0xfd,0x0e,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfd,0xaf,0x04,0xb4,0x00,0x21,0x04,0xe8,0xff,0xac,0x04,0x93,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x04,0x9e,0x00,0x33,0x04,0xb4,0x00,0x21, +0x04,0xf6,0x00,0x6a,0x04,0xf6,0x00,0x5e,0x03,0xba,0x00,0x60,0x05,0x9c,0x00,0x1c,0x05,0xee,0xff,0xac,0x04,0x94,0x00,0x5c,0x04,0xb4,0x00,0x60,0x04,0xbc,0x00,0x60,0x04,0x0e,0x00,0x5a,0x04,0x54,0x00,0x70,0x03,0xe8,0xff,0x9a,0x05,0x89,0x00,0x5e,0x04,0xf8,0x00,0x12,0x06,0xfe,0x00,0xa6,0x02,0x4e,0x00,0xb8,0x02,0x3a,0x00,0x29, +0x04,0xa4,0x00,0xbc,0x03,0xfc,0x00,0xa6,0x01,0xf0,0x00,0x14,0x03,0xfc,0xff,0xfe,0x07,0x23,0x00,0xb8,0x05,0xfc,0xff,0x9a,0x04,0x9a,0x00,0x83,0x06,0x08,0x00,0x5e,0x07,0xc0,0x00,0x5e,0x06,0x52,0x00,0x60,0x04,0xcf,0xff,0xac,0x04,0xb4,0x00,0xa6,0x04,0x9c,0x00,0xbc,0x04,0x40,0x00,0x62,0x03,0x65,0x00,0x56,0x04,0x21,0x00,0x2d, +0x02,0x5e,0xff,0x83,0x02,0xb8,0x00,0x2b,0x04,0x33,0xff,0xcd,0x02,0xb8,0x00,0x2b,0x04,0x33,0x00,0x27,0x06,0x0a,0x00,0x62,0x05,0xb2,0x00,0xb8,0x04,0x8e,0x00,0x0f,0x04,0x23,0x00,0x0e,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x04,0xe2,0x00,0x0a,0x04,0xe2,0x00,0x5e,0x03,0x89,0x00,0x1e,0x03,0x46,0x00,0x0a,0x04,0x50,0x00,0x60, +0x04,0x50,0x00,0x74,0x03,0x0a,0x00,0x48,0x03,0x27,0x00,0x1e,0x04,0x5e,0x00,0xa6,0x01,0xea,0x00,0xac,0x03,0x10,0x00,0xac,0x03,0xa6,0x00,0x33,0x02,0x46,0x00,0xb4,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x06,0xd9,0x00,0xbc,0x05,0xc2,0x00,0xbc,0x04,0x01,0x00,0xa6,0x08,0x94,0x00,0xbc,0x07,0xbe,0x00,0xbc, +0x06,0x77,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x02,0x21,0xff,0xf7,0x01,0xf0,0xff,0xdf,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa, +0x04,0x87,0x00,0x90,0x04,0x2f,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x06,0xe2,0x00,0x0a,0x06,0xa0,0x00,0x52,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60, +0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xe2,0x00,0x0a,0x03,0x89,0xff,0xdd,0x01,0xf0,0xff,0x3a,0x09,0xe8,0x00,0xbc,0x09,0x1c,0x00,0xbc,0x08,0x33,0x00,0x60,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xfe,0x00,0xbc,0x05,0x83,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52, +0x05,0x29,0x00,0x16,0x04,0x0a,0x00,0x52,0x04,0x0c,0x00,0x9e,0x04,0x2f,0x00,0x60,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x02,0x21,0xff,0x86,0x01,0xf0,0xff,0x6e,0x02,0x21,0xff,0xf8,0x01,0xf0,0xff,0xe6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x9a,0x00,0xa0,0x02,0xc8,0x00,0x04, +0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0x9a,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x05,0x7f,0x00,0xaa,0x04,0x87,0x00,0x90,0x04,0x08,0x00,0x10,0x03,0x70,0x00,0x1e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xdf,0x00,0xbc,0x04,0xb8,0x00,0x3e,0x04,0x89,0x00,0x48,0x04,0x90,0x00,0x21,0x03,0x9e,0x00,0x21,0x05,0x29,0x00,0x16, +0x04,0x0a,0x00,0x52,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x04,0xb0,0x01,0x33,0x04,0x0a,0x01,0x08,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0xb0,0x01,0x23, +0x04,0x0a,0x00,0x90,0x04,0xb6,0x00,0x60,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0xa6,0x03,0xba,0x00,0x5a,0x03,0xba,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x52,0x04,0xe6,0x00,0x50,0x03,0x4e,0x00,0x60,0x03,0x4e,0x00,0x5a,0x04,0x0e,0x00,0x5a,0x04,0x68,0x00,0x60,0x02,0x38,0xff,0x81,0x04,0xb6,0x00,0x60, +0x04,0xb6,0x00,0x60,0x04,0x3c,0x00,0x60,0x03,0xd5,0x00,0x0e,0x03,0xa8,0x00,0x0a,0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x02,0x18,0x00,0x0a,0x02,0x3a,0x00,0x94,0x02,0x90,0x00,0x4c,0x02,0x3e,0xff,0xec,0x03,0x02,0xff,0xec,0x01,0xee,0x00,0xa6,0x04,0xd3,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6, +0x06,0xe4,0x00,0xa6,0x04,0x72,0xff,0x96,0x04,0x72,0x00,0xa6,0x04,0xb0,0x00,0xa6,0x04,0xb0,0x00,0x60,0x05,0x96,0x00,0x60,0x05,0xc4,0x00,0x60,0x05,0x1a,0x00,0x60,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0x0c,0x02,0xc8,0x00,0xa6,0x02,0xc8,0x00,0xa6,0x02,0xae,0x00,0x90,0x02,0xae,0x00,0x0c,0x03,0xa2,0x00,0xa6, +0x03,0xa2,0x00,0xa6,0x03,0x2f,0x00,0x68,0x01,0xfa,0xff,0x92,0x02,0x10,0xff,0x9e,0x02,0x4e,0xff,0xa6,0x02,0x44,0xff,0x44,0x02,0xb8,0x00,0x38,0x02,0xb8,0x00,0x2b,0x04,0xcb,0x00,0x21,0x04,0xc2,0x00,0x60,0x04,0x77,0x00,0x90,0x03,0xd5,0x00,0x0c,0x05,0xc8,0x00,0x18,0x03,0xdf,0x00,0x0c,0x03,0x56,0x00,0x0a,0x03,0x9e,0x00,0x21, +0x04,0x18,0x00,0x21,0x03,0x89,0xff,0xdd,0x03,0x89,0xff,0xea,0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x02,0xec,0x00,0x00,0x03,0xba,0x00,0x60,0x04,0xf2,0x00,0x60,0x03,0xdf,0x00,0xa6,0x04,0x62,0x00,0x5c,0x04,0x3c,0x00,0x60,0x04,0x87,0x00,0xa6,0x01,0xee,0xff,0x18,0x03,0xfc,0x00,0x04,0x03,0x14,0x00,0xa6,0x04,0xb6,0x00,0x60, +0x02,0xec,0x00,0x1c,0x02,0xec,0x00,0x04,0x07,0x54,0x00,0x60,0x07,0x98,0x00,0x60,0x07,0xcf,0x00,0x60,0x04,0xe8,0x00,0x2b,0x03,0xcf,0x00,0x2b,0x05,0xbe,0x00,0x2b,0x06,0x58,0x00,0x35,0x04,0xa4,0x00,0x98,0x04,0x8e,0x00,0xa6,0x03,0xf4,0x00,0x31,0x03,0xf4,0x00,0x74,0x04,0x62,0x00,0xa6,0x04,0xba,0x00,0x14,0x04,0x85,0x00,0x12, +0x05,0x6c,0xff,0xb1,0x04,0x85,0x00,0x12,0x05,0x1a,0x00,0x60,0x06,0x6a,0x00,0x00,0x04,0x90,0x00,0x00,0x05,0x9e,0x00,0x56,0x04,0xb0,0x00,0x60,0x04,0xa8,0x00,0x5e,0x03,0xa4,0x00,0x60,0x03,0xfc,0x00,0xbc,0x03,0x9c,0x00,0x90,0x04,0xc4,0x00,0x48,0x04,0x04,0x00,0x33,0x04,0xe4,0x00,0x00,0x03,0xf2,0xff,0x7b,0x07,0x23,0x00,0xb8, +0x06,0xe4,0x00,0xa6,0x04,0xd5,0x00,0x33,0x04,0x14,0x00,0x33,0x05,0x16,0x00,0x00,0x04,0x44,0xff,0xec,0x04,0xe2,0x00,0x48,0x03,0xae,0x00,0x3e,0x04,0xc4,0x00,0x14,0x03,0xe2,0x00,0x14,0x05,0x4c,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0x85,0x00,0x0a,0x03,0x44,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0xa8,0x00,0xa2,0x03,0xb2,0x00,0x60, +0x01,0xf0,0xff,0x3a,0x06,0x08,0x00,0x5e,0x03,0xbc,0x00,0x60,0x03,0xbc,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x05,0x2b,0x00,0x29,0x04,0xa4,0x00,0x29,0x07,0x44,0x00,0xbc,0x05,0xb8,0x00,0xa6,0x05,0x52,0x00,0x16,0x03,0xfe,0x00,0x0c,0x06,0xfc,0x00,0xbc,0x05,0x87,0x00,0xa6,0x05,0xd3,0x00,0x29,0x04,0x85,0x00,0x1e, +0x07,0x70,0x00,0xbc,0x05,0xfe,0x00,0xa6,0x04,0x52,0x00,0x31,0x03,0x99,0x00,0x21,0x06,0x44,0x00,0x66,0x06,0x14,0x00,0x66,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x05,0xc2,0x00,0x12,0x04,0xa0,0x00,0x0e,0x0a,0x7f,0x00,0x5e,0x08,0xf2,0x00,0x58,0x06,0x9c,0x00,0x5e,0x05,0x33,0x00,0x60, +0x09,0x08,0x00,0x5e,0x07,0x27,0x00,0x60,0x06,0xe8,0x00,0x1e,0x05,0x6c,0x00,0x1e,0x04,0xb4,0x00,0x5e,0x03,0x81,0x00,0x60,0x04,0x00,0x00,0x2d,0x03,0x27,0x00,0x52,0x03,0x4c,0x00,0x5e,0x00,0x00,0xff,0x90,0x00,0x00,0xff,0x86,0x07,0xe2,0x00,0x21,0x07,0x98,0x00,0x35,0x04,0x9c,0x00,0x29,0x04,0x0c,0x00,0x2d,0x04,0x7c,0x00,0xbc, +0x04,0xb5,0x00,0xa6,0x04,0x8c,0x00,0xbc,0x04,0x04,0x00,0xa6,0x04,0x52,0x00,0x60,0x03,0xa2,0x00,0x58,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x05,0xae,0x00,0x29,0x04,0xa6,0x00,0x1e,0x06,0xb8,0x00,0xbc,0x05,0x4e,0x00,0xa6,0x08,0x16,0x00,0xbc,0x06,0xb0,0x00,0xa6,0x05,0xc6,0x00,0x5e,0x04,0x74,0x00,0x60,0x04,0xf4,0x00,0x5e, +0x03,0xb2,0x00,0x60,0x04,0x35,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0xfa,0x00,0x29,0x05,0x79,0x00,0x1e,0x05,0x7f,0x00,0xa6,0x04,0xb4,0x00,0x98,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x06,0xae,0x00,0x29,0x05,0x10,0x00,0x29,0x02,0x21,0x00,0xbc,0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0xa4,0x00,0xbe,0x04,0x0c,0x00,0xa6, +0x05,0xae,0x00,0xbc,0x04,0x9e,0x00,0xa6,0x05,0x3e,0x00,0xa6,0x04,0x85,0x00,0x98,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x05,0x29,0x00,0x16,0x04,0x12,0x00,0x5a,0x06,0xe2,0x00,0x0a,0x06,0xa8,0x00,0x5a,0x04,0x0c,0x00,0xbc,0x04,0x2f,0x00,0x60,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52,0x05,0xc4,0x00,0x56,0x04,0x2f,0x00,0x52, +0x06,0xef,0xff,0xea,0x05,0xf8,0x00,0x04,0x04,0x52,0x00,0x60,0x03,0x91,0x00,0x50,0x04,0x2f,0x00,0x52,0x03,0x89,0xff,0xdd,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x04,0xee,0x00,0x68,0x03,0xb2,0x00,0x5a, +0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x04,0x8a,0x00,0x3c,0x03,0xdf,0x00,0x0e,0x05,0x4a,0x00,0xa6,0x04,0x85,0x00,0x98,0x06,0x44,0x00,0xbc,0x05,0xad,0x00,0xa6,0x04,0x8e,0x00,0x56,0x04,0xb6,0x00,0x60,0x06,0xd3,0x00,0x64,0x06,0xe2,0x00,0x60,0x06,0x70,0x00,0x29,0x05,0xc6,0x00,0x1e, +0x04,0x77,0x00,0x29,0x03,0xcb,0x00,0x1e,0x07,0x3e,0x00,0x18,0x06,0x5e,0x00,0x14,0x07,0xea,0x00,0xbc,0x06,0xcb,0x00,0xa6,0x05,0xb8,0x00,0x5e,0x04,0x3e,0x00,0x60,0x05,0x66,0x00,0x29,0x04,0xc8,0x00,0x1e,0x04,0xb0,0x01,0x33,0x04,0x87,0x01,0x1c,0x04,0x87,0x01,0x1c,0x04,0x0a,0x01,0x08,0x04,0xb0,0x01,0x23,0x02,0xaa,0xff,0x8c, +0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0xcb,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0x14,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0x96,0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x10,0x00,0x00,0xff,0x23,0x01,0xd5,0x00,0x72,0x01,0xd5,0x00,0x72,0x04,0xb0,0x01,0xba, +0x02,0xb0,0x00,0x66,0x02,0xb0,0x00,0x66,0x01,0x4e,0xff,0xbe,0x01,0xb2,0x00,0x66,0x01,0xb2,0x00,0x0a,0x01,0xb2,0x00,0x0a,0x02,0x3e,0x00,0x66,0x03,0x2d,0x00,0x14,0x02,0x3a,0x00,0x0a,0x01,0xd5,0x00,0x82,0x03,0x04,0x00,0x8d,0x01,0xc7,0x00,0x6a,0x01,0xc7,0x00,0x6e,0x01,0xc7,0x00,0x6e,0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xfb, +0x01,0xba,0x00,0x14,0x01,0xba,0x00,0x0a,0x04,0xac,0x00,0x72,0x04,0xac,0x00,0x70,0x04,0xac,0x00,0x66,0x04,0xac,0x00,0x66,0x02,0xaa,0x01,0x20,0x02,0x42,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0xaa,0x01,0x20,0x02,0x7b,0x00,0x3e,0x02,0x25,0x00,0x52,0x02,0x42,0x00,0x87,0x02,0x39,0x00,0xb6,0x02,0x39,0x00,0xb6,0x02,0xaa,0x00,0xfb, +0x02,0xaa,0x00,0xfb,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0xaa,0x00,0xa0,0x02,0x7b,0x00,0x3e,0x02,0xaa,0x00,0x79,0x02,0xb0,0x00,0x48,0x02,0x56,0x00,0x0a,0x01,0x4c,0x00,0x66,0x01,0xf0,0x00,0x3e,0x02,0x42,0x00,0x14,0x01,0xba,0x00,0x0a,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96,0x03,0x10,0x00,0x96, +0x03,0x10,0x00,0x96,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x62,0x02,0xaa,0x00,0x3c,0x03,0x52,0x00,0x00,0x02,0xaa,0x00,0x6e,0x01,0xf0,0xff,0x3a,0x02,0x18,0x00,0x0a,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43,0x04,0x57,0x00,0x43, +0x04,0x57,0x00,0x43,0x03,0x10,0x00,0x43,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x04,0x57,0x00,0x25,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a, +0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42, +0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f, +0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42, +0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x04,0x57,0x00,0x26,0x03,0x10,0x00,0x26,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23,0x04,0x57,0x00,0x23, +0x03,0x10,0x00,0x23,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x04,0x57,0x00,0x4b,0x03,0x10,0x00,0x4b,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96, +0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x04,0x57,0x00,0x42,0x03,0x10,0x00,0x42,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x04,0x57,0x00,0x1a,0x03,0x10,0x00,0x1a,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24, +0x04,0x57,0x00,0x24,0x04,0x57,0x00,0x24,0x03,0x10,0x00,0x24,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x04,0x57,0x00,0x2f,0x03,0x10,0x00,0x2f,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x04,0x57,0x00,0x4e,0x03,0x10,0x00,0x4e,0x04,0x57,0x00,0x96, +0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x04,0x57,0x00,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x54,0x00,0x00,0xff,0x54,0x00,0x00,0xfd,0xa7,0x00,0x00,0xff,0x68,0x05,0x27,0x00,0x60,0x02,0x60,0x00,0xa6,0x05,0x0e,0x00,0xa6,0x02,0xb6,0x00,0x2b,0x04,0xbc,0xff,0xdb,0x04,0xbc,0xff,0xdb,0x02,0xaa,0x00,0x85,0x02,0xaa,0x00,0x85, +0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0xc8,0x02,0xaa,0x00,0x87,0x02,0x25,0x00,0x52,0x02,0x98,0x00,0x28,0x02,0x98,0x00,0x28,0x02,0xb2,0x00,0x23,0x02,0x39,0x00,0xad,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0x00,0x98,0x02,0xaa,0xff,0xf0,0x02,0xaa,0xff,0xf2,0x02,0xaa,0x00,0x3a,0x00,0x00,0xff,0x74, +0x00,0x00,0xff,0xa6,0x00,0x00,0xfe,0xee,0x00,0x00,0xff,0x30,0x00,0x00,0xff,0x74,0x00,0x00,0xff,0x74,0x00,0x00,0xfe,0xa1,0x00,0x00,0xff,0xa6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfc,0xe6,0x04,0x7b,0x00,0xbc,0x04,0xb4,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x05,0x4a,0x00,0x00,0x06,0xa2,0x00,0x52,0x03,0xdf,0x00,0x3e, +0x03,0xb2,0x00,0x60,0x04,0x66,0x00,0xa6,0x04,0x70,0x00,0x3c,0x03,0x56,0x00,0xa6,0x03,0x4c,0x00,0x5a,0x01,0xee,0x00,0x8e,0x02,0x62,0x00,0x14,0x03,0xfa,0x00,0xa6,0x03,0x23,0x00,0x42,0x05,0x9e,0x00,0xa6,0x04,0xa6,0x00,0xa6,0x04,0xb0,0x00,0x60,0x03,0xcd,0x00,0x5a,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x60,0x04,0xf2,0x00,0x4c, +0x07,0x70,0x00,0x52,0x04,0x4a,0x00,0x60,0x04,0xc2,0x00,0x60,0x04,0xc2,0x00,0x60,0x03,0xb2,0x00,0xa6,0x03,0xa2,0x00,0x1e,0x03,0xa2,0x00,0x1e,0x03,0x48,0x00,0x1e,0x04,0x46,0x00,0x90,0x04,0x89,0x00,0x66,0x05,0xbe,0x00,0x3e,0x04,0x89,0x00,0x66,0x03,0xd5,0x00,0x0e,0x05,0xc8,0x00,0x18,0x03,0x9e,0x00,0x21,0x03,0x58,0x00,0x50, +0x03,0x4a,0x00,0x50,0x04,0x3a,0x00,0x14,0x03,0x10,0x00,0xa6,0x03,0xc0,0x00,0x0a,0x04,0x9e,0x00,0xa6,0x03,0xb2,0x00,0xa6,0x04,0xba,0x00,0x60,0x04,0x7d,0x00,0x0a,0x02,0xe2,0x00,0x0a,0x03,0xe6,0xff,0xf6,0x02,0xc6,0x00,0x7b,0x02,0xdb,0x00,0x23,0x03,0x46,0x00,0x7b,0x02,0x72,0x00,0x7b,0x02,0x72,0x00,0x48,0x03,0x46,0x00,0x3e, +0x03,0x64,0x00,0x7b,0x01,0x79,0x00,0x7b,0x01,0xd3,0x00,0x0a,0x02,0xd5,0x00,0x7b,0x02,0x44,0x00,0x7b,0x04,0x31,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x81,0x00,0x7b,0x03,0x68,0x00,0x3e,0x03,0x0c,0x00,0x3e,0x02,0xb6,0x00,0x7b,0x02,0xc2,0x00,0x7b,0x02,0x52,0x00,0x0a,0x03,0x50,0x00,0x74,0x04,0x35,0x00,0x10,0x02,0x85,0x00,0x3e, +0x02,0x85,0x00,0x66,0x02,0xc6,0x00,0x3e,0x03,0xdf,0x00,0x48,0x02,0xc6,0x00,0x66,0x02,0xc6,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0x7d,0x00,0x48,0x02,0x1c,0x00,0x3e,0x02,0x1c,0x00,0x42,0x02,0xc6,0x00,0x3e,0x01,0x4e,0x00,0x58,0x02,0x6a,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbc,0x00,0x3e,0x02,0x29,0x00,0x3e, +0x02,0xbc,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0xbe,0x00,0x66,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x5c,0x02,0x9c,0x00,0x3e,0x03,0xfa,0x00,0x60,0x02,0x40,0x00,0x0a,0x02,0x8e,0x00,0x14,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xbc,0x00,0x3e,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x01,0x4e,0x00,0x58,0x01,0xb2,0x00,0x66, +0x02,0xa6,0x00,0x5c,0x02,0x40,0x00,0x0a,0x02,0xac,0x00,0x60,0x02,0x56,0xff,0xec,0x02,0xc6,0x00,0x66,0x03,0x44,0x00,0x3e,0x02,0x62,0xff,0xf6,0x04,0xa6,0x00,0xfc,0x01,0x4e,0x00,0x58,0x02,0xc6,0x00,0x66,0x04,0x57,0x00,0x42,0x07,0x04,0x00,0x8f,0x04,0xfe,0x00,0x74,0x04,0x50,0x00,0x76,0x04,0x50,0x00,0x76,0x06,0xe4,0x00,0xa6, +0x05,0x2a,0x00,0x23,0x06,0xda,0x00,0xbc,0x05,0xf4,0x00,0x14,0x04,0x37,0x00,0x64,0x04,0xb6,0x00,0x60,0x04,0x00,0x00,0x2a,0x03,0x96,0x00,0x29,0x09,0x00,0x00,0x2c,0x03,0xa4,0x00,0x30,0x04,0xb5,0x00,0x26,0x07,0x1f,0x00,0xa2,0x07,0x7a,0x00,0x60,0x07,0x7a,0x00,0x60,0x05,0x06,0x00,0x16,0x05,0x29,0x00,0x16,0x04,0xf4,0x00,0x16, +0x03,0xb2,0x00,0x21,0x03,0xc4,0x00,0x12,0x04,0x31,0xff,0xef,0x03,0x65,0x00,0x68,0x03,0x9e,0x00,0x21,0x04,0x16,0x00,0x30,0x01,0x9c,0x00,0x6c,0x00,0x00,0xff,0x2b,0x00,0x00,0xfe,0xbd,0x00,0x00,0xff,0x60,0x00,0x00,0xfc,0xe6,0x04,0xb0,0x00,0x21,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x03,0xc6,0x00,0xbc, +0x03,0x10,0x00,0xa6,0x04,0xb4,0xff,0xbb,0x04,0xb6,0x00,0x60,0x02,0x81,0xff,0xf8,0x06,0xe4,0xff,0xc0,0x04,0x87,0xff,0xc0,0x04,0xb4,0xff,0xbb,0x02,0xc8,0xff,0xbb,0x02,0xae,0xff,0xa5,0x03,0xb5,0x00,0x27,0x02,0xb6,0xff,0xef,0x03,0x9e,0x00,0x21,0x04,0xb6,0x00,0xa6,0x03,0xb1,0x00,0x7a,0x04,0x9f,0x00,0x60,0x07,0x3d,0x00,0x16, +0x05,0x2e,0x00,0x16,0x02,0x90,0x00,0x4a,0x02,0x22,0xff,0xfb,0x04,0xb4,0x00,0x22,0x04,0x46,0x00,0x22,0x04,0xc2,0x00,0x14,0x04,0xb4,0x00,0xa6,0x04,0xb6,0x00,0x60,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x03,0xfa,0x00,0xa6,0x01,0xf0,0x00,0x5c,0x06,0xe4,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xb4,0x00,0xa6,0x02,0xc8,0x00,0x5c, +0x03,0x65,0x00,0x68,0x03,0x76,0xff,0x92,0x03,0xd5,0x00,0x0e,0x03,0xac,0x00,0x1a,0x03,0x9e,0x00,0x21,0x04,0x12,0x00,0x5a,0x04,0xb6,0x00,0x60,0x04,0xb6,0x00,0x60,0x04,0x2f,0x00,0x60,0x03,0x81,0x00,0x52,0x03,0x91,0x00,0x50,0x05,0xe0,0x00,0x52,0x01,0xf0,0x00,0x90,0x03,0xba,0x00,0x5a,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, +0x03,0x89,0xff,0xdd,0x02,0xc6,0x00,0x66,0x02,0x22,0x00,0x3e,0x02,0x26,0x00,0x3d,0x02,0xbd,0x00,0x3e,0x02,0x1c,0x00,0x42,0x01,0x77,0x00,0x0a,0x01,0x4e,0xff,0xdd,0x02,0xc6,0x00,0x3e,0x02,0xa6,0x00,0x5c,0x01,0x4e,0x00,0x0f,0x01,0x74,0x00,0x66,0x01,0x62,0x00,0x11,0x01,0x62,0x00,0x11,0x01,0x4e,0xff,0x87,0x01,0x74,0x00,0x66, +0x01,0x4c,0x00,0x31,0x01,0xcb,0x00,0x66,0x03,0xfa,0x00,0x66,0x03,0xfa,0x00,0x60,0x02,0xb0,0xff,0xbc,0x02,0xb0,0x00,0x66,0x02,0xd0,0x00,0x66,0x02,0xb0,0x00,0x3e,0x02,0xef,0x00,0x3e,0x01,0xd8,0x00,0x42,0x01,0x4e,0xff,0xc9,0x01,0x9c,0x00,0x0a,0x02,0xa6,0x00,0x05,0x02,0xbd,0x00,0x3e,0x02,0xa2,0x00,0x5c,0x02,0x93,0x00,0x5c, +0x02,0x40,0x00,0x0b,0x02,0x17,0x00,0x1a,0x02,0x17,0x00,0x1a,0x02,0x5b,0x00,0x1a,0x02,0x12,0xff,0xfb,0x02,0xbd,0x00,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xdd,0x01,0xbc,0x00,0x70,0x02,0x85,0x00,0x3e,0x02,0x7d,0x00,0x3e,0x02,0xbc,0x00,0x3e,0x02,0x23,0x00,0x12,0x02,0x7d,0x00,0x48, +0x04,0x51,0x00,0x54,0x04,0x51,0x00,0x0c,0x04,0x51,0x00,0x69,0x04,0x51,0x00,0x56,0x02,0xaa,0x00,0x42,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x50,0x00,0x00,0xff,0x29,0x03,0xb5,0x00,0x27,0x02,0x7b,0x00,0x3e,0x02,0x23,0x00,0x12,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a, +0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x04,0xea,0x00,0x5a,0x02,0x22,0xff,0xf9,0x02,0x22,0x00,0x02,0x02,0x22,0xff,0xfc,0x02,0x22,0xff,0xe5,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x02,0x22,0xff,0xee,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14, +0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x02,0x22,0xff,0xd3,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x04,0x6c,0x00,0x14,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4, +0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x0a,0xa0,0x00,0xb4,0x04,0x51,0x00,0xbc,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x01,0x60,0x00,0x5b, +0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x48,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x02,0xee,0x00,0x48, +0x02,0xcf,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xcf,0x00,0x2f,0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0xee,0x00,0x5d,0x02,0x6a,0x00,0xcc,0x02,0x6a,0x00,0x64,0x06,0x46,0x00,0xbc,0x05,0x0d,0x00,0xa6, +0x05,0xaa,0x00,0x10,0x04,0x9f,0x00,0x10,0x05,0xf8,0x00,0xbc,0x05,0x06,0x00,0xa6,0x07,0x78,0x00,0xbc,0x06,0x06,0x00,0xa6,0x04,0x50,0x00,0x5a,0x03,0x04,0x00,0x6e,0x04,0x1d,0x00,0x8d,0x05,0x79,0x00,0xe8,0x04,0x47,0x00,0x5e,0x06,0x8e,0x00,0xbc,0x05,0x9e,0x00,0xa6,0x00,0x00,0xff,0xdc,0x00,0x00,0xff,0x25,0x00,0x00,0xff,0xdc, +0x00,0x00,0xfe,0x51,0x02,0x01,0x00,0xab,0x02,0x01,0x00,0x49,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba, +0x08,0x04,0xff,0xba,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x03,0x57,0x00,0x62,0x04,0x02,0x00,0x4f,0x04,0x02,0xff,0xef,0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x08,0x04,0xff,0xba,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, +0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x65,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xae,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x04,0x02,0x00,0xa1,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a, +0x04,0x02,0x00,0xa1,0x06,0xae,0x00,0x9a,0x02,0x01,0x00,0x6f,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x49,0x04,0xad,0x00,0x49,0x04,0xad,0xff,0xa2,0x06,0xae,0x00,0x82,0x02,0x01,0x00,0x00,0x04,0xad,0xff,0xa2,0x02,0x01,0x00,0x6f, +0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x5a,0x02,0x01,0xff,0xa2,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x02,0x01,0x00,0x49,0x06,0x03,0x00,0x82,0x02,0x01,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0x02,0x00,0x52, +0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x0a,0xb1,0x00,0x9b,0x06,0xae,0x00,0x19,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0x02,0x00,0x65,0x01,0x56,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab,0x05,0x58,0x00,0x9b, +0x04,0xad,0x00,0x39,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0x03,0x00,0x9a,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0x33,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xd4,0x00,0x00,0x00,0x45,0x04,0xad,0x00,0x52,0x02,0x01,0x00,0x52, +0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xa2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x00, +0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0xa1,0x04,0x02,0x00,0xab,0x03,0x56,0x00,0xb9,0x02,0x01,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xad,0x00,0x2b,0x04,0x02,0x00,0x2b,0x04,0xae,0x00,0x72,0x04,0x02,0x00,0x2f, +0x04,0xad,0xff,0xf4,0x04,0xad,0x00,0x49,0x04,0x02,0x00,0x22,0x05,0x58,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x05,0x58,0x00,0x9b,0x04,0x02,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x07,0x59,0x00,0x72, +0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x02,0x01,0x00,0x2d,0x04,0xae,0x00,0x7c,0x03,0x1d,0x00,0x42,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x08,0x04,0x00,0xa1,0x04,0x02,0x00,0x57,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0x17,0x00,0x00,0x00,0x10, +0x05,0x2a,0x00,0xa6,0x00,0x00,0xff,0xc2,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x05,0x2a,0x00,0xa6,0x06,0x03,0x00,0x9b,0x05,0x2a,0x00,0xa6,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0x97,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2,0x02,0x01,0xff,0xc2, +0x03,0x57,0x00,0xab,0x03,0x57,0x00,0xab,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0x00, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65, +0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b, +0x06,0x03,0x00,0x9b,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, +0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x04,0x58,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x06,0xae,0x00,0x32, +0x07,0x58,0x00,0x1e,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x00,0x00,0xff,0xa8,0x00,0x00,0xff,0xb7,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x1d,0x00,0x00,0xff,0x2b,0x08,0xfc,0x00,0x2d,0x08,0xad,0x01,0x46, +0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x16,0x00,0x00,0xff,0x2b,0x00,0x00,0xff,0xc9,0x02,0x01,0x00,0x4d,0x03,0x57,0x00,0x21,0x00,0x00,0xff,0x82,0x00,0x00,0x00,0x32,0x04,0xcd,0x00,0x64,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x16,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, +0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x03,0x57,0x00,0x5a,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xc2,0x04,0xad,0xff,0xc2,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x34,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x3a,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52, +0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x65,0x04,0x02,0x00,0x52,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x02,0xfe,0x00,0x00,0x04,0xad,0xff,0x97,0x04,0xad,0xff,0x97,0x04,0xc1,0x00,0x66,0x09,0xd0,0x00,0x73,0x06,0xa8,0x00,0x73, +0x04,0x40,0x00,0x49,0x0c,0x2d,0x00,0x73,0x08,0xaf,0x00,0x49,0x02,0xac,0x00,0x46,0x04,0xad,0x00,0x32,0x00,0x00,0xff,0xc9,0x00,0x00,0xff,0xe9,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x88,0x00,0x00,0xff,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x32,0x00,0x00,0xff,0xc6,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x53,0x05,0x58,0x00,0x67,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xfe,0xa9,0x00,0x00,0xfe,0x91,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x0a,0x05,0x00,0xa1,0x0c,0x06,0x00,0x9b,0x00,0x00,0xff,0xd4, +0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0x6c,0x00,0x00,0xff,0xd4,0x04,0xad,0x00,0x35,0x04,0x02,0x00,0x65,0x00,0x00,0xff,0xe7,0x00,0x00,0xff,0xdf,0x00,0x00,0xff,0xdf,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x3d,0x00,0x00,0x00,0x05,0x07,0x59,0x00,0xab,0x03,0x56,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba, +0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x65,0x04,0xad,0x00,0x65,0x04,0xae,0xff,0xba, +0x04,0xad,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba, +0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, +0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x05,0x2a,0x00,0xa6,0x04,0xad,0x00,0x52,0x04,0xad,0x00,0x52,0x00,0x00,0xff,0x1a,0x04,0x00,0xff,0x1a,0x04,0x00,0x01,0x9f,0x04,0x00,0x01,0xb3,0x02,0xf4,0x00,0x14,0x04,0x96,0x00,0x1c,0x05,0x7f,0x00,0x1e,0x05,0x07,0x00,0x18,0x04,0x0c,0x00,0x8b,0x04,0x2f,0x00,0x60,0x02,0xdb,0x00,0x14, +0x01,0xf0,0xff,0x3a,0x06,0x01,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xc9,0x00,0x1c,0x02,0xc8,0x00,0x1c,0x04,0x6c,0x00,0x12,0x03,0xdf,0x00,0x0e,0x03,0xcd,0x00,0x5a,0x03,0xb2,0x00,0x60,0x03,0xcd,0x00,0x5a,0x01,0xf0,0x00,0xa6,0x04,0x1e,0x00,0x29,0x03,0x48,0x00,0x1e,0x04,0xf4,0x00,0x1a,0x03,0xe0,0x00,0x1a,0x04,0xb8,0x00,0x1a, +0x03,0xac,0x00,0x1a,0x04,0x54,0x00,0x70,0x03,0x81,0x00,0x52,0x05,0x62,0x00,0x10,0x04,0x37,0x00,0x10,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0xdb,0x05,0xed,0x00,0x35,0x03,0x9c,0x00,0x48, +0x03,0xcd,0x00,0x5a,0x03,0xc4,0x00,0x1c,0x02,0x4a,0x00,0x14,0x04,0x19,0x00,0x27,0x04,0x7b,0x00,0x1c,0x04,0xc9,0x00,0xbc,0x04,0x12,0x00,0x5a,0x02,0xb6,0xff,0xb5,0x05,0xf0,0x00,0xbc,0x04,0xb3,0x00,0xa6,0x05,0x1c,0x00,0xbc,0x04,0x4a,0x00,0xa6,0x04,0xf5,0x00,0x21,0x03,0xfb,0x00,0x21,0x04,0x8d,0x00,0x4b,0x04,0x1f,0x00,0xbc, +0x03,0x2b,0x00,0xa6,0x05,0x98,0x00,0x60,0x02,0xf7,0x00,0xaf,0x03,0x4f,0x00,0xaf,0x03,0x5a,0x00,0xaf,0x03,0xde,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0xc9,0x00,0x75,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x02,0xaa,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x55,0x00,0x00,0x04,0x50,0x00,0x00, +0x01,0xbc,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00, +0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xa1,0x07,0x6c,0x00,0x79,0x03,0x64,0x00,0x3f,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xf5,0x00,0xb0,0x00,0x00,0xfc,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x00,0x4a,0x07,0x60,0x00,0x8d,0x06,0xe7,0x00,0x96,0x03,0xc7,0x00,0x96,0x06,0xe7,0x00,0xe7,0x03,0xc7,0x00,0x96,0x06,0xe5,0x00,0x96,0x05,0x28,0x00,0x33,0x05,0x78,0x00,0xe6,0x05,0x9d,0x00,0xe6,0x05,0x92,0x00,0xe6,0x06,0x1e,0x00,0xe6, +0x06,0xe4,0x00,0xa5,0x08,0x00,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x50,0x06,0xe4,0x00,0xa5,0x06,0xe4,0x00,0x8c,0x06,0xe4,0x02,0x0d,0x06,0xe4,0x00,0xa5,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0x5e,0x05,0x7a,0x00,0xcd,0x05,0xe8,0x00,0x5e,0x04,0xa0,0x00,0x0e,0x08,0x7e,0x00,0x1a, +0x06,0x9d,0x00,0x18,0x03,0xc7,0x00,0x96,0x03,0xc7,0x00,0x96,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0x46,0x00,0xb4,0x02,0xf8,0x00,0x63,0x01,0xbc,0x00,0x70,0x04,0x82,0x00,0xe8,0x01,0xd7,0x00,0x94,0x01,0xd7,0x00,0xa3,0x06,0xae,0x03,0x9b,0x05,0x10,0x02,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xa5,0x00,0x00,0xff,0xcd,0x03,0x33,0x00,0x4b,0x00,0x00,0xfe,0xd2,0x01,0x9d,0x00,0x94,0x00,0x00,0x02,0x00,0x00,0x00,0xfd,0x3c,0x01,0xbc,0x00,0x70, +0x00,0x00,0xff,0x9c,0x00,0x00,0xff,0x9c,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x25,0x00,0xbe,0x02,0xb2,0x00,0x31,0x05,0x65,0x00,0xbe,0x05,0x72,0x00,0xa0,0x02,0x25,0x00,0xbe,0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe, +0x05,0x65,0x00,0xa4,0x02,0x25,0x00,0xbe,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xd6,0x00,0x59,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0x85,0x00,0x1e,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe,0x04,0x2e,0x00,0xbe, +0x01,0xd5,0x00,0x6e,0x03,0x04,0x00,0x6e,0x04,0x78,0x00,0x2f,0x04,0x78,0x00,0x2f,0x04,0x68,0xff,0x51,0x04,0x68,0xff,0x51,0x04,0x53,0x00,0xbe,0x04,0xd6,0x00,0x59,0x05,0x18,0x00,0xa5,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x8d,0x00,0xbe,0x04,0x79,0x00,0x2f,0x05,0xcf,0x00,0x34, +0x04,0x6a,0x00,0x5f,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x06,0x47,0x00,0x6e,0x06,0x47,0x00,0x61,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x05,0x18,0x00,0xa5,0x04,0x90,0x00,0x50,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x02,0x6b,0xff,0xfb,0x02,0xda,0xff,0xfa,0x05,0x72,0x00,0xa0,0x02,0x6b,0xff,0xfb, +0x04,0x78,0x00,0x2f,0x04,0x5c,0x00,0x4e,0x04,0x68,0x00,0x59,0x05,0x65,0x00,0xa4,0x03,0x32,0x00,0x67,0x05,0x68,0x00,0x96,0x04,0xe4,0x00,0x6c,0x05,0x0c,0x00,0x96,0x04,0xaf,0x00,0x4b,0x05,0x4f,0x00,0x42,0x04,0x79,0x00,0x2f,0x06,0x47,0x00,0x6e,0x05,0xcf,0x00,0x34,0x02,0x25,0x00,0xb5,0x04,0x90,0x00,0x50,0x04,0x5c,0x00,0x4e, +0x05,0x0c,0x00,0x96,0x05,0x38,0x00,0x59,0x09,0x9a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x18,0x00,0xa5,0x04,0x68,0x00,0x59,0x05,0x38,0x00,0x59,0x05,0x52,0x00,0x59,0x05,0x38,0x00,0x59,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x73,0x00,0x00,0xff,0xa1,0x00,0x00,0xff,0x49,0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x61, +0x00,0x00,0xfe,0xab,0x00,0x00,0xfe,0x26,0x00,0x00,0x00,0x64,0x00,0x00,0xff,0x42,0x00,0x00,0xff,0x45,0x00,0x00,0x00,0x64,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0x06,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x6a,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x45,0x00,0x00,0xfe,0xe1,0x00,0x00,0xff,0x68, +0x00,0x00,0xff,0x45,0x00,0x00,0xff,0x17,0x00,0x00,0xff,0x43,0x00,0x00,0xff,0x4b,0x00,0x00,0xff,0x6a,0x00,0x00,0x00,0x64,0x00,0x00,0xfd,0x87,0x00,0x00,0xff,0x29,0x00,0x00,0xff,0xa4,0x03,0x32,0x00,0xab,0x02,0x25,0x00,0xb6,0x00,0x00,0xfe,0xb2,0x06,0x08,0x00,0x5e,0x05,0x22,0x00,0x33,0x05,0x55,0x00,0x64,0x05,0xa6,0x00,0x5a, +0x04,0x68,0x00,0x64,0x05,0x55,0x00,0x64,0x05,0xf6,0x00,0x32,0x06,0x19,0x00,0x5e,0x03,0xc4,0x00,0x20,0x05,0x08,0x00,0x8c,0x05,0xf6,0x00,0x32,0x05,0xe2,0x00,0x5c,0x05,0x4a,0x00,0xc9,0x06,0x08,0x00,0x5e,0x06,0x7f,0x00,0x32,0x06,0x36,0x00,0x32,0x05,0x55,0x00,0x64,0x04,0x68,0x00,0xb0,0x04,0x7b,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0xa6,0x00,0x5a,0x04,0x94,0x00,0x32,0x05,0x7f,0x00,0xaa,0x05,0x6b,0x00,0xa6,0x05,0x4a,0x00,0xa6,0x05,0x6b,0x00,0xc9,0x05,0x7d,0x00,0x5e,0x05,0xe2,0x00,0x5c,0x04,0x9c,0x00,0xbc,0x05,0x19,0x00,0x64,0x05,0x6b,0x00,0xc9,0x05,0x3b,0x00,0x32,0x06,0x31,0x00,0x32,0x05,0x0e,0x00,0xc9,0x04,0xf4,0x00,0x5e,0x05,0x22,0x00,0x33, +0x05,0x5a,0x00,0x96,0x06,0x8c,0x00,0x52,0x03,0xf8,0x00,0x60,0x04,0xb0,0x00,0x60,0x04,0xb0,0x00,0x60,0x07,0x00,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x60,0x06,0x2c,0x00,0x3c,0x07,0x21,0x00,0x60,0x04,0xe1,0x00,0x60,0x04,0x51,0x00,0x60,0x08,0x66,0x00,0x60,0x04,0x88,0x00,0x60,0x04,0x88,0x00,0x60,0x06,0x0e,0x00,0x60, +0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x3f,0x06,0x0e,0x00,0x60,0x04,0x7d,0x00,0x9a,0x06,0x08,0x00,0x5e,0x06,0x82,0x00,0x60,0x06,0xff,0x00,0x40,0x04,0x51,0x00,0x60,0x06,0x2e,0x00,0x60,0x04,0x51,0x00,0x60,0x05,0x3b,0x00,0x32,0x04,0x58,0x00,0xa6,0x04,0xeb,0x00,0x60,0x04,0x88,0x00,0x60,0x05,0x0d,0x00,0x32,0x04,0x50,0x00,0x50, +0x04,0xd6,0x00,0xae,0x06,0x27,0x00,0x21,0x04,0x53,0x00,0x60,0x04,0xf5,0x00,0x60,0x05,0x4f,0x00,0x32,0x04,0x51,0x00,0x5e,0x04,0x51,0x00,0x60,0x04,0xc4,0x00,0x52,0x07,0xa8,0x00,0x60,0x04,0x51,0x00,0x60,0x04,0x51,0x00,0x5f,0x04,0xb0,0x00,0x60,0x04,0xb1,0x00,0x40,0x03,0x64,0x00,0x70,0x02,0xa8,0x00,0x32,0x04,0x75,0x00,0x28, +0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x48,0x00,0x30,0x04,0x75,0x00,0x28,0x07,0x10,0x00,0x28,0x04,0x75,0xff,0x3f,0x07,0x13,0x00,0x5b,0x03,0xf4,0x00,0x28,0x04,0x75,0x00,0x59,0x07,0x17,0x00,0x31,0x05,0x51,0x00,0x30,0x04,0x75,0x00,0x31,0x07,0x13,0x00,0x5b,0x05,0xf2,0x00,0x28,0x05,0xf2,0x00,0x28,0x07,0x0c,0x00,0x59, +0x04,0x9c,0x00,0x59,0x04,0x75,0x00,0x42,0x07,0x13,0x00,0x5b,0x07,0x13,0x00,0x5b,0x04,0x72,0x00,0x71,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x28,0x04,0x75,0x00,0x5b,0x04,0x75,0x00,0x2f,0x04,0x75,0x00,0x42,0x07,0x0c,0x00,0x59,0x07,0x10,0x00,0x3f,0x04,0xb0,0x00,0x21,0x04,0x75,0x00,0x42,0x04,0x89,0xff,0x8a,0x07,0x17,0x00,0x31, +0x04,0xc5,0x00,0x2f,0x04,0x56,0x00,0x35,0x04,0x75,0x00,0x46,0x04,0x75,0x00,0x28,0x07,0x0c,0x00,0x59,0x06,0x3a,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0x7f,0x00,0xaa,0x05,0xa8,0x00,0x64,0x04,0xff,0x00,0xbc,0x05,0x7f,0x00,0xaa,0x06,0x3f,0x00,0xaa,0x05,0x86,0x00,0x5e,0x05,0x33,0x00,0xaa, +0x04,0x58,0x00,0xbc,0x06,0x53,0x00,0xbc,0x05,0x62,0x00,0x5e,0x05,0x7f,0x00,0xaa,0x04,0x90,0x00,0x21,0x05,0x54,0x00,0x5e,0x05,0x94,0x00,0x78,0x05,0xf6,0x00,0x62,0x05,0xc6,0x00,0xaa,0x04,0xab,0x00,0x5e,0x05,0x94,0xff,0xf6,0x05,0x54,0x00,0x5e,0x05,0xcf,0x00,0xaa,0x05,0x54,0x00,0x5e,0x06,0x33,0x00,0x82,0x05,0x9a,0x00,0x64, +0x05,0xc6,0x00,0xaa,0x05,0xcf,0x00,0xaa,0x05,0x7a,0x00,0x5e,0x05,0x19,0x00,0x64,0x05,0x9d,0x00,0xaa,0x05,0x6f,0x00,0x90,0x05,0xc6,0x00,0xaa,0x06,0x56,0x00,0x5e,0x05,0x3f,0x00,0x14,0x06,0x08,0x00,0x5e,0x05,0xcb,0x00,0x86,0x00,0xca,0x00,0x00,0x00,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x92,0x00,0x00,0x01,0x35,0x00,0x00, +0x02,0x29,0x00,0x00,0x02,0xce,0x00,0x00,0x06,0xe4,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0xf2,0x00,0x60,0x04,0xc3,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0xec,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0xa6,0x05,0x2b,0x00,0xa6,0x04,0xca,0x00,0x5e,0x04,0x87,0x00,0xa6,0x02,0x76,0x00,0xa6,0x06,0xb1,0x00,0xa6,0x04,0xb0,0x00,0x60, +0x04,0x87,0x00,0x90,0x04,0x87,0x00,0xa6,0x04,0x57,0x00,0x60,0x04,0xd4,0x00,0xa6,0x04,0x18,0x00,0x60,0x04,0xa5,0x00,0x90,0x02,0x26,0xff,0x70,0x04,0xb0,0xff,0xf6,0x04,0x26,0x00,0x60,0x04,0x87,0x00,0xa6,0x03,0x4c,0x00,0x60,0x06,0xe4,0x00,0x90,0x04,0x64,0x00,0x60,0x04,0x87,0x00,0xa6,0x04,0x87,0x00,0x90,0x04,0xbe,0x00,0x90, +0x06,0xa6,0x00,0x8f,0x04,0x87,0x00,0xa6,0x04,0xb6,0x00,0x60,0x03,0x26,0x00,0xa6,0x06,0xa6,0x00,0x8f,0x04,0xb4,0x00,0x00,0x04,0xb0,0x00,0x60,0x05,0x7f,0x00,0x60,0x05,0x72,0x00,0x90,0x01,0xbc,0x00,0x70,0x02,0x42,0x00,0x2a,0x09,0x0e,0x00,0x90,0x08,0xf8,0x00,0x90,0x08,0xf8,0x00,0x90,0x09,0x0e,0x00,0x90,0x0b,0x67,0x00,0x90, +0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x37,0x01,0xf0,0x00,0x90,0x04,0x50,0x00,0x5c,0x03,0x1e,0x00,0x79,0x04,0x50,0x00,0x99,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x5c,0x04,0x50,0x00,0xe8,0x04,0x50,0x00,0x99, +0x04,0x50,0x00,0x7b,0x04,0x50,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x5a,0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x03,0x1e,0x00,0x53,0x04,0x50,0x00,0x6d,0x04,0x50,0x00,0x7b,0x04,0x7d,0x00,0x32,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6f,0x04,0x1e,0x00,0x45,0x04,0x50,0x00,0x5a, +0x04,0x50,0x00,0x5e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0xa8,0x04,0x50,0x00,0x60,0x04,0x50,0x00,0x83,0x04,0x50,0x00,0x0e,0x04,0x50,0x00,0xa4,0x04,0x50,0x00,0x6e,0x04,0x50,0x00,0x56,0x04,0x50,0x00,0x64,0x04,0x50,0x00,0x5e,0x02,0xee,0x00,0x48,0x02,0xee,0x00,0x50,0x02,0xee,0x00,0x68,0x02,0xee,0x00,0x81,0x02,0xee,0x00,0x2f, +0x02,0xee,0x00,0x7b,0x02,0xee,0x00,0x49,0x02,0xee,0x00,0x4d,0x02,0xee,0x00,0x41,0x02,0xee,0x00,0x49,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x04,0x0f,0x00,0x58,0x04,0xac,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x5b,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0, +0x03,0x4c,0x00,0xb0,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xe0,0x00,0xb0,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x04,0xc2,0x00,0x9c,0x04,0x15,0x00,0x00,0x06,0x69,0x00,0x05,0x04,0x02,0x00,0x1e,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x05,0x9f,0xff,0xf8, +0x06,0x31,0x00,0x58,0x03,0x4c,0x00,0x38,0x05,0x01,0x00,0x41,0x03,0xe0,0x00,0xb0,0x04,0xac,0x00,0x2d,0x04,0x33,0x00,0xa6,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0, +0x03,0x70,0x00,0xb0,0x02,0x04,0xff,0xfc,0x02,0x04,0x00,0x87,0x02,0x04,0xff,0xe9,0x02,0x04,0xff,0xe0,0x05,0x2a,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x03,0xbb,0x00,0x14, +0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x0f,0x00,0x58,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0xac,0x00,0xb0,0x04,0xac,0x00,0x2d,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x03,0x70,0x00,0xb0,0x04,0x94,0x00,0x58,0x04,0x94,0x00,0x58,0x04,0x0f,0x00,0x58, +0x04,0xe9,0x00,0xb0,0x04,0xe9,0x00,0x2d,0x02,0x04,0xff,0xc3,0x02,0x04,0x00,0x04,0x02,0x04,0xff,0xf1,0x02,0x04,0x00,0x3f,0x02,0x04,0x00,0xa0,0x04,0x85,0x00,0xb0,0x02,0x81,0x00,0x11,0x03,0xec,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x03,0x4c,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0, +0x05,0x2a,0x00,0xb0,0x05,0x38,0x00,0xb0,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x04,0xed,0x00,0x58,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0xf8,0x00,0xb0,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x5d,0x00,0x68,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19,0x03,0x85,0x00,0x19, +0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x04,0xc2,0x00,0x9c,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x06,0x69,0x00,0x05,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xbb,0x00,0x14,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29,0x03,0xdb,0x00,0x29, +0x04,0x04,0x00,0x00,0x05,0x9f,0xff,0xf8,0x05,0x01,0x00,0x41,0x04,0x04,0x00,0x00,0x03,0xec,0x00,0xb0,0x03,0x22,0x00,0x9c,0x04,0x4a,0x00,0x2a,0x03,0x70,0x00,0xb0,0x03,0xdb,0x00,0x29,0x04,0xe9,0x00,0xb0,0x04,0xed,0x00,0x58,0x02,0x04,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x15,0x00,0x00,0x06,0x12,0x00,0xb0,0x05,0x2a,0x00,0xb0, +0x03,0x95,0x00,0x49,0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x03,0xac,0x00,0x30,0x03,0x85,0x00,0x19,0x03,0xbb,0x00,0x14,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x40,0x00,0x7d,0x05,0x10,0x00,0x58,0x04,0x04,0x00,0x00,0x03,0x70,0x00,0xb0,0x04,0xe9,0x00,0xb0,0x02,0x04,0x00,0x87,0x04,0xed,0x00,0x58, +0x03,0xbb,0x00,0x14,0x05,0x10,0x00,0x58,0x02,0x04,0xff,0xe0,0x03,0xbb,0x00,0x14,0x03,0x70,0x00,0xb0,0x04,0x8d,0x00,0x22,0x03,0x36,0x00,0xb0,0x04,0x19,0x00,0x58,0x03,0x5d,0x00,0x68,0x02,0x04,0x00,0xb0,0x02,0x04,0xff,0xe0,0x02,0x81,0x00,0x11,0x06,0x80,0x00,0x0d,0x06,0x94,0x00,0xb0,0x04,0xe1,0x00,0x22,0x03,0xec,0x00,0xb0, +0x03,0xf4,0x00,0x36,0x04,0xdf,0x00,0xb0,0x04,0x04,0x00,0x00,0x03,0xe7,0x00,0xb0,0x03,0xec,0x00,0xb0,0x03,0x36,0x00,0xb0,0x04,0xaf,0x00,0x12,0x03,0x70,0x00,0xb0,0x05,0xe7,0x00,0x00,0x03,0x88,0x00,0x50,0x05,0x2a,0x00,0xb0,0x05,0x2a,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x8a,0x00,0x0d,0x06,0x12,0x00,0xb0,0x04,0xe9,0x00,0xb0, +0x04,0xed,0x00,0x58,0x04,0xe7,0x00,0xb0,0x03,0xe0,0x00,0xb0,0x04,0x0f,0x00,0x58,0x03,0x85,0x00,0x19,0x03,0xf4,0x00,0x36,0x05,0x02,0x00,0x50,0x04,0x02,0x00,0x1e,0x05,0x11,0x00,0xb0,0x04,0x60,0x00,0x7d,0x06,0x73,0x00,0xb0,0x06,0xa4,0x00,0xb0,0x04,0x89,0x00,0x22,0x05,0xa1,0x00,0xb0,0x03,0xec,0x00,0xb0,0x04,0x1e,0x00,0x54, +0x06,0xe0,0x00,0xb0,0x03,0xe9,0x00,0x12,0x03,0x31,0x00,0xb0,0x04,0xa5,0x00,0x35,0x04,0xa7,0x00,0x35,0x04,0xfa,0x00,0x35,0x07,0x1e,0x00,0x35,0x07,0x1e,0x00,0x35,0x05,0x45,0x00,0x57,0x04,0x0f,0x00,0x58,0x04,0x94,0x00,0x58,0x03,0x5d,0x00,0x68,0x04,0x96,0x00,0xbc,0x04,0x7b,0x00,0xbc,0x04,0x7b,0x00,0x52,0x05,0x9c,0x00,0xbc, +0x04,0x31,0x00,0x29,0x04,0x31,0x00,0x27,0x05,0x7d,0x00,0x5e,0x04,0xa4,0x00,0xbc,0x04,0xa4,0x00,0x02,0x02,0xdb,0x00,0x14,0x04,0xf4,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0x90,0x00,0x21,0x03,0xe8,0x00,0xbc,0x03,0xe8,0x00,0x54,0x07,0x2f,0x00,0xbc,0x05,0xfc,0x00,0xbc,0x03,0xc4,0x00,0xbc,0x04,0x40,0x00,0x79,0x04,0xc9,0x00,0xbc, +0x04,0xc9,0x00,0x09,0x04,0xf8,0x00,0x12,0x04,0xf8,0x00,0x12,0x05,0xae,0x00,0xbc,0x05,0x7d,0x00,0x91,0x02,0xdb,0x00,0xb0,0x07,0x79,0x00,0x1a,0x04,0xb8,0x00,0x1a,0x04,0x6c,0x00,0x12,0x04,0x96,0x00,0x67,0x05,0x29,0x00,0x16,0x05,0x29,0x00,0x17,0x04,0x0c,0x00,0xbc,0x04,0x0c,0x00,0x58,0x02,0x21,0x00,0xbc,0x06,0x08,0x00,0x5e, +0x05,0x7f,0x00,0xaa,0x05,0x7f,0x00,0xaa,0x03,0xc4,0x00,0x20,0x05,0x9c,0x00,0x5e,0x01,0xbc,0x00,0x70,0x01,0xbc,0x00,0x27,0x03,0x78,0x00,0x70,0x03,0x78,0x00,0x70,0x01,0xbc,0x00,0x27,0x01,0xbc,0x00,0x70,0x04,0xef,0x00,0x90,0x03,0x33,0x00,0x90,0x02,0x21,0x00,0x30,0x06,0x08,0x00,0x5e,0x05,0xa6,0x00,0x77,0x02,0x46,0x00,0xb4, +0x01,0xbc,0x00,0x5c,0x01,0xbc,0x00,0x5e,0x03,0x96,0x00,0x83,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62,0x03,0x04,0x00,0x68,0x05,0x65,0x00,0x60,0x03,0xc4,0x00,0xbc,0x02,0x75,0x00,0xa6,0x04,0xd9,0xff,0xe4,0x05,0x7d,0x00,0x5e,0x04,0xb6,0x00,0x60,0x04,0xa4,0x00,0xbc, +0x03,0xfa,0x00,0xa6,0x05,0xfc,0x00,0xbc,0x04,0x87,0x00,0xa6,0x04,0xc9,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x03,0x85,0x00,0x2b,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x68,0x01,0xbc,0x00,0x5e,0x01,0xd5,0x00,0x74,0x03,0x1f,0x01,0x3d,0x04,0x31,0x00,0x29,0x02,0xb6,0x00,0x2b,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba,0x05,0x58,0xff,0xba, +0x07,0x59,0x00,0x1e,0x06,0x03,0x00,0x7c,0x07,0x59,0x00,0x7c,0x02,0x01,0x00,0x76,0x00,0x00,0xff,0xc8,0x00,0x00,0x00,0x43,0x00,0x00,0x00,0x37,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x37,0x02,0x01,0x00,0x70,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b, +0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba, +0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x06,0xae,0x00,0xab, +0x04,0x02,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x06,0x03,0x00,0x53,0x04,0x02,0xff,0xba,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd8,0x00,0x00,0xff,0xd4,0x00,0x00,0xff,0xd4, +0x00,0x00,0xff,0x6c,0x00,0x00,0x00,0x05,0x00,0x00,0xff,0xf8,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x02,0x01,0x00,0x4f,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0x49,0x04,0x02,0x00,0x00,0x04,0x02,0xff,0xe7, +0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52, +0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x08,0x04,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, +0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x08,0xaf,0x00,0x19,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab, +0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b, +0x02,0xac,0xff,0xba,0x05,0x58,0xff,0xba,0x04,0x02,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x57,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, +0x04,0x02,0x00,0x00,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x00,0x00,0x00,0x81,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x03,0x57,0x00,0x00,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x08,0x04,0x00,0xab, +0x08,0x04,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x04,0xad,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba, +0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x03,0x57,0x00,0x00,0x03,0x57,0x00,0x00,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x17,0x02,0xac,0x00,0x16,0x02,0xac,0x00,0x16,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0x03,0x00,0x9a,0x06,0xae,0x00,0x9a, +0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x17,0x04,0xad,0x00,0x16,0x04,0xad,0x00,0x16,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x07,0x59,0x00,0x72,0x02,0xac,0x00,0x72,0x04,0xae,0x00,0x7e,0x05,0x58,0x00,0x7e,0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b, +0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x09,0x5a,0x00,0x9b,0x09,0x5a,0x00,0x9b,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0xa4,0x02,0x01,0x00,0x03,0x02,0x01,0x00,0x03,0x02,0x01,0xff,0x62, +0x02,0x01,0x00,0x03,0x02,0x01,0xff,0xc6,0x00,0x00,0xff,0x97,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x89,0x02,0x01,0x00,0x60,0x02,0xac,0x00,0x1e,0x02,0x01,0x00,0x3c,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x16,0x00,0x00,0x00,0x30,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xa2,0x02,0xac,0x00,0x49,0x02,0xac,0x00,0x72,0x02,0xac,0x00,0x72, +0x02,0xac,0xff,0x97,0x02,0xac,0xff,0xc2,0x02,0xac,0x00,0x34,0x02,0xac,0x00,0x3a,0x03,0x57,0x00,0x17,0x03,0x57,0x00,0x16,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8, +0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x06,0x03,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8, +0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x07,0x59,0xff,0xc8,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6, +0x02,0x01,0xfd,0xa6,0x02,0x01,0xfd,0xa6,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39,0x03,0x57,0x00,0x39, +0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x82,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x06,0x03,0x00,0x1e,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x04,0xad,0x00,0x72, +0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x04,0xad,0x00,0x72,0x06,0xae,0x00,0x72,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x05,0x58,0x00,0x9a,0x02,0x01,0xff,0xf1,0x02,0x01,0xff,0xea,0x04,0x02,0x00,0xa1,0x03,0x57,0x00,0x39,0x04,0xa9,0x00,0x64,0x05,0x19,0x00,0x65, +0x04,0x90,0x00,0x21,0x04,0x51,0x00,0x5f,0x04,0x70,0x00,0x0a,0x04,0xb0,0x00,0x60,0x04,0x51,0xff,0xe6,0x04,0x55,0x00,0x2d,0x04,0x50,0x00,0x72,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xc2,0x04,0x50,0x01,0x1f,0x04,0x50,0x00,0xf7,0x04,0x50,0x01,0x08,0x04,0x50,0x00,0xe1,0x04,0x50,0x00,0xa1,0x04,0x50,0x00,0xa9,0x04,0x50,0x00,0xbc, +0x04,0x26,0x00,0x76,0x03,0xb0,0x00,0x8a,0x04,0x61,0x00,0x6d,0x04,0x32,0x00,0x76,0x04,0xb4,0x00,0x6c,0x04,0xe2,0x00,0x97,0x04,0xe7,0x00,0x90,0x05,0x40,0x00,0x76,0x04,0xa3,0x00,0x80,0x04,0x87,0x00,0x76,0x05,0x35,0x00,0x96,0x04,0x1e,0x00,0x64,0x05,0x59,0x00,0x78,0x06,0x0d,0x00,0x82,0x05,0x1d,0x00,0x8c,0x05,0xfa,0x00,0x96, +0x06,0xa1,0x00,0x64,0x05,0x18,0x00,0x87,0x06,0x1c,0x00,0x78,0x05,0x81,0x00,0x96,0x04,0x84,0x00,0x98,0x04,0x84,0x01,0x00,0x04,0x84,0x00,0x5d,0x04,0x84,0x00,0x6b,0x04,0x84,0x00,0x94,0x04,0x84,0x00,0x59,0x04,0x84,0x00,0x7d,0x04,0x84,0x00,0xbf,0x04,0x84,0x00,0x2b,0x04,0x84,0x00,0x2b,0x04,0x3e,0x00,0x76,0x03,0xb2,0x00,0x2d, +0x04,0x52,0x00,0x7c,0x04,0xd7,0x00,0x0f,0x04,0xce,0x00,0x0a,0x05,0x44,0x00,0x16,0x04,0x94,0x00,0x41,0x05,0x2c,0x00,0x36,0x04,0x99,0x00,0x80,0x04,0xc2,0x00,0x7d,0x04,0xd1,0x00,0x82,0x04,0x15,0x00,0x82,0x04,0x15,0x00,0x96,0x06,0x00,0x00,0x82,0x05,0x6f,0x00,0x64,0x05,0x87,0x00,0x64,0x05,0x64,0x00,0x64,0x05,0x6f,0x00,0x64, +0x04,0xbe,0x00,0xb4,0x04,0xa6,0x00,0x82,0x04,0xa5,0x00,0x77,0x05,0xe4,0x00,0x50,0x06,0x2c,0x00,0x50,0x06,0x03,0x00,0x8c,0x06,0x1b,0x00,0x50,0x07,0x62,0x00,0x8c,0x07,0x62,0x00,0x50,0x05,0x9b,0x00,0x50,0x07,0x62,0x00,0x32,0x07,0x62,0x00,0x50,0x05,0xde,0x00,0x72,0x06,0xfc,0x00,0x74,0x06,0xc4,0x00,0x60,0x04,0x74,0x00,0x58, +0x06,0x24,0x00,0x73,0x06,0xcc,0x00,0x5d,0x06,0x1a,0x00,0x73,0x04,0xc0,0x00,0x70,0x06,0xce,0x00,0x74,0x05,0xe8,0x00,0x73,0x05,0x87,0x00,0x82,0x05,0x9d,0x00,0x82,0x04,0xd6,0x00,0x64,0x05,0x25,0x00,0x82,0x05,0xf8,0x00,0x6e,0x06,0x5a,0x00,0x82,0x05,0x93,0x00,0x64,0x04,0xee,0x00,0x6e,0x05,0xa7,0x00,0x82,0x04,0xa8,0x00,0x82, +0x04,0x46,0x00,0x5d,0x07,0x60,0x00,0x00,0x07,0x58,0x00,0x64,0x07,0x5d,0x00,0x64,0x06,0x96,0x00,0x61,0x07,0x62,0x00,0x61,0x07,0x62,0x00,0x64,0x05,0x78,0x00,0x46,0x07,0x62,0x00,0x64,0x07,0x62,0x00,0x61,0x05,0xad,0x00,0x82,0x06,0x25,0x00,0x82,0x06,0x44,0x00,0xb4,0x05,0xf5,0x00,0x82,0x05,0xcd,0x00,0x82,0x05,0xcd,0x00,0x82, +0x05,0x29,0x00,0x50,0x07,0x0c,0x00,0x82,0x06,0x1e,0x00,0x82,0x06,0x9d,0x00,0x82,0x05,0xb7,0x00,0x78,0x05,0xb3,0x00,0x78,0x04,0xa2,0x00,0x78,0x05,0xe9,0x00,0x50,0x05,0x89,0x00,0x78,0x05,0x89,0x00,0x78,0x06,0xd0,0x00,0x78,0x06,0x10,0x00,0x64,0x05,0xcb,0x00,0x70,0x07,0x2d,0x00,0x78,0x04,0x56,0x00,0x78,0x04,0x10,0x00,0x64, +0x04,0x78,0x00,0x78,0x04,0x4b,0x00,0x78,0x04,0xe5,0x00,0x78,0x04,0xff,0x00,0x78,0x05,0x94,0x00,0x78,0x05,0xde,0x00,0x64,0x04,0xa0,0x00,0x78,0x04,0x8e,0x00,0x78,0x04,0x84,0x00,0x80,0x04,0x5d,0x00,0x7f,0x04,0x8b,0x00,0x3a,0x04,0x5d,0x00,0x7f,0x04,0x5d,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x9f,0x00,0x80, +0x04,0x84,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x8b,0x00,0x80,0x04,0x11,0x00,0x66,0x04,0x3c,0x00,0x80,0x04,0xb8,0x00,0x66,0x04,0xf5,0x00,0x66,0x04,0xd3,0x00,0x80,0x04,0xd3,0x00,0x80,0x03,0xaa,0x00,0x67,0x04,0x84,0x00,0x80,0x04,0x84,0x00,0x80,0x04,0xb4,0x00,0xa0,0x04,0xd9,0x00,0x8c,0x06,0x1f,0x00,0x64,0x06,0xbe,0x00,0xa0, +0x05,0x3c,0x00,0xa0,0x05,0x3c,0x00,0xa0,0x05,0x01,0x00,0x7b,0x06,0x25,0x00,0xa0,0x05,0x1a,0x00,0xa0,0x05,0x78,0x00,0xe9,0x04,0x1a,0x00,0x84,0x03,0xcc,0x00,0x69,0x04,0xb5,0x00,0x84,0x04,0x80,0x00,0x84,0x03,0xc9,0x00,0x84,0x03,0xf3,0x00,0x84,0x04,0x61,0x00,0x84,0x04,0x6c,0x00,0x84,0x03,0xdb,0x00,0x70,0x03,0xb7,0x00,0x84, +0x05,0x02,0x00,0x60,0x03,0xa4,0x00,0x50,0x04,0x5c,0x00,0x2d,0x03,0xf6,0x00,0x50,0x04,0x62,0x00,0x60,0x06,0x3f,0x00,0x60,0x04,0x81,0x00,0x77,0x06,0x9e,0x00,0x60,0x04,0x4a,0x00,0x0a,0x04,0x85,0x00,0x60,0x04,0x8f,0x00,0x60,0x05,0xf2,0x00,0x82,0x02,0x81,0x00,0xf0,0x06,0x51,0x00,0x64,0x05,0x7c,0x00,0x64,0x05,0xbe,0x00,0xb4, +0x05,0x48,0x00,0xb4,0x04,0x7c,0x00,0x64,0x06,0x01,0x00,0x00,0x04,0xd0,0x00,0x82,0x06,0x41,0x00,0x64,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x84,0x04,0xd5,0x00,0x67,0x04,0xd5,0x00,0x3f,0x04,0xd5,0x00,0x6b,0x04,0xd5,0x00,0x5c,0x04,0x9f,0x00,0xd6,0x04,0xd5,0x00,0x59,0x04,0xd5,0x00,0x7b,0x04,0xd5,0x00,0x8b,0x02,0x21,0x00,0x30, +0x02,0x21,0xff,0xd0,0x02,0x21,0xff,0xf9,0x02,0x21,0xff,0x86,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0xff,0xfd,0x03,0x89,0xff,0xbe,0x03,0x9f,0xff,0xbd,0x03,0x98,0xff,0xc1,0x03,0x9f,0xff,0xbe,0x03,0xb9,0xff,0xc0,0x03,0x9f,0xff,0xbe,0x02,0x79,0xff,0xbf,0x02,0x7b,0xff,0xbe,0x02,0x21,0xff,0xfe,0x02,0x21,0xff,0xf2, +0x02,0x21,0xff,0xf2,0x02,0x21,0xff,0xf2,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x30,0x04,0xfc,0x00,0x30,0x02,0x21,0xff,0xd1,0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x1c,0x02,0x7b,0xff,0xc7,0x02,0x7b,0xff,0xc7,0x02,0x21,0xff,0xf3,0x02,0x21,0xff,0xf8,0x02,0x21,0x00,0x12,0x02,0x5d,0xff,0xaf, +0x02,0x21,0x00,0x30,0x02,0x21,0x00,0x14,0x02,0x21,0xff,0xff,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x03,0xe8,0x00,0x93,0x05,0xee,0x00,0x48,0x05,0xcd,0x00,0x6c,0x03,0xe8,0x00,0x60,0x03,0x40,0x00,0x77,0x03,0xe8,0x00,0x3e,0x04,0x2f,0x00,0x96,0x04,0x78,0x00,0x2e,0x03,0xe8,0x00,0x5c, +0x06,0xbf,0x00,0x73,0x06,0x92,0x00,0x73,0x06,0xe7,0x00,0x75,0x03,0x8a,0x00,0x19,0x08,0x0c,0x00,0xaa,0x03,0xe8,0x00,0x60,0x06,0xaf,0x00,0x73,0x06,0xaf,0x00,0x75,0x06,0xbb,0x00,0x82,0x06,0x77,0x00,0x93,0x04,0x86,0x00,0x69,0x03,0xe8,0x00,0x6b,0x03,0xe8,0x00,0x6b,0x06,0x3e,0x00,0x96,0x04,0xae,0x00,0x20,0x06,0x35,0x00,0xaa, +0x05,0x65,0x00,0x12,0x04,0x45,0x00,0x57,0x03,0xa0,0x00,0x26,0x03,0x40,0x00,0x25,0x08,0x27,0x00,0x28,0x03,0x4c,0x00,0x2b,0x04,0x44,0x00,0x22,0x03,0xe9,0x00,0x4c,0x03,0xe9,0x00,0x0b,0x03,0xe9,0x00,0x5f,0x03,0xe9,0x00,0x4e,0x03,0xe9,0x00,0xaa,0x0a,0xe5,0x00,0x8c,0x06,0xaf,0x00,0x6e,0x06,0xaf,0x00,0x80,0x03,0x6e,0x00,0xb2, +0x02,0x03,0x00,0xb2,0x03,0xa5,0x00,0x53,0x01,0xe5,0x00,0x2b,0x03,0xb3,0x00,0xa6,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x7a,0x01,0xe5,0x00,0x2b,0x03,0xd7,0x00,0x00,0x04,0xae,0x00,0x6a,0x04,0xae,0x00,0x68,0x04,0x5f,0x00,0x00,0x03,0x04,0x00,0x6f,0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x6f,0x01,0xd5,0x00,0x74,0x01,0xd5,0x00,0x62, +0x03,0x04,0x00,0x68,0x01,0xd5,0x00,0x74,0x03,0x4c,0x00,0x90,0x06,0xe4,0x00,0x8d,0x01,0xbc,0x00,0x70,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x07,0x38,0x00,0xbc,0x04,0xad,0x00,0xab,0x04,0xad,0x00,0xab,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0xa1,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00, +0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x06,0xae,0x00,0x00,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x09,0x5a,0x00,0x9a,0x09,0x5a,0x00,0x9a,0x05,0x58,0xff,0xba,0x00,0x00,0xff,0x0e,0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x72,0x00,0x00,0xfe,0xfc,0x00,0x00,0xfe,0x84,0x00,0x00,0xff,0x46, +0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x20,0x00,0x00,0xfe,0xec,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x04,0x00,0x00,0xff,0x2c,0x00,0x00,0xff,0x15,0x00,0x00,0xff,0x40,0x00,0x00,0xff,0x3e,0x00,0x00,0xff,0x23,0x00,0x00,0xff,0x06,0x00,0x00,0xff,0x2f,0x00,0x00,0xfe,0xba,0x00,0x00,0xfe,0x93,0x00,0x00,0xff,0x04,0x00,0x00,0xfe,0x94, +0x00,0x00,0xff,0x36,0x00,0x00,0xff,0x21,0x00,0x00,0xff,0x27,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0xf7,0x00,0x00,0xfe,0xa2,0x00,0x00,0xfe,0xc2,0x00,0x00,0xff,0x07,0x00,0x00,0xfe,0xee,0x00,0x00,0xfe,0xb2,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0xa9,0x00,0x21,0x03,0xc1,0x00,0x21,0x04,0x40,0x00,0x77,0x03,0x65,0x00,0x70, +0x02,0xd9,0x00,0xbc,0x02,0xc9,0x00,0xa6,0x05,0x7f,0x00,0xaa,0x04,0x61,0x00,0x7d,0x05,0xbb,0x00,0x48,0x03,0x72,0x00,0x19,0x09,0x08,0x00,0x5e,0x07,0x26,0x00,0x60,0x04,0xbe,0xff,0xf3,0x04,0x6d,0x00,0x32,0x07,0x5f,0x00,0x33,0x06,0x55,0x00,0x1c,0x06,0xc1,0x00,0xbb,0x05,0xfe,0x00,0xa6,0x08,0x26,0x00,0x60,0x06,0x81,0x00,0x63, +0x07,0x67,0x00,0xbc,0x06,0x30,0x00,0xa6,0x05,0x29,0x00,0x16,0x03,0xd1,0x00,0x0a,0x05,0xd3,0x00,0x29,0x04,0xb1,0x00,0x1e,0x07,0x67,0x00,0xbc,0x05,0xda,0x00,0xa6,0x06,0x03,0x00,0x1e,0x04,0xdf,0x00,0x05,0x05,0xf0,0x00,0x3e,0x04,0xcd,0x00,0x3e,0x06,0xe8,0x00,0x0f,0x05,0x51,0x00,0x12,0x07,0x05,0x00,0x10,0x05,0x57,0x00,0x10, +0x08,0xd3,0x00,0xbc,0x06,0xbe,0x00,0xa6,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x09,0xb6,0x00,0x5e,0x07,0x1e,0x00,0x60,0x06,0x55,0x00,0x7e,0x00,0x00,0xfe,0xc2,0x07,0xe2,0x00,0x6f,0x07,0xe2,0x01,0x13,0x07,0xe2,0x00,0x26,0x03,0xd1,0x00,0x7d,0x00,0x00,0xfe,0x9c,0x00,0x00,0xff,0x33, +0x04,0xa6,0x00,0xfc,0x04,0x01,0x01,0x33,0x05,0x98,0x00,0x0f,0x04,0x76,0x00,0x12,0x04,0x40,0x00,0x79,0x03,0x65,0x00,0x67,0x08,0x9c,0x00,0x60,0x07,0x3b,0x00,0x50,0x07,0x8f,0x00,0xa6,0x06,0xe1,0x00,0x98,0x05,0xbe,0x00,0x0f,0x04,0xa4,0x00,0x12,0x05,0x96,0x00,0x29,0x04,0xb0,0x00,0x1e,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e, +0x05,0xeb,0x00,0xae,0x04,0xc7,0x00,0x8f,0x04,0x31,0x00,0x29,0x03,0x48,0x00,0x1e,0x06,0x8e,0x00,0x29,0x05,0x54,0x00,0x1e,0x05,0x4a,0x00,0xa6,0x04,0x87,0x00,0xa6,0x07,0xd1,0x00,0xbc,0x06,0x8f,0x00,0xa6,0x04,0x50,0x00,0x2b,0x04,0x99,0x00,0x32,0x05,0xdc,0x00,0xe7,0x05,0xdc,0x00,0xe7,0x06,0x78,0x00,0x00,0x03,0x96,0x00,0x83, +0x01,0x9a,0x00,0x00,0x03,0xac,0x00,0xac,0x05,0x7a,0x00,0x5e,0x03,0x73,0x00,0x30,0x08,0x00,0x00,0xe6,0x08,0x00,0x00,0xe6,0x01,0xf0,0x00,0x37,0x00,0x00,0xfd,0x33,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00, +0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x07,0xd1,0x00,0x00,0x03,0x33,0x00,0x90,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x08,0xfc,0x00,0x32,0x04,0x50,0x00,0x53,0x04,0xb0,0x00,0xbb,0x04,0xb0,0x01,0x01, +0x04,0xb0,0x00,0xaf,0x04,0xb0,0x00,0xc2,0x04,0xb0,0x00,0x6a,0x04,0xb0,0x00,0x64,0x04,0xb0,0x00,0x39,0x04,0xb0,0x00,0x2e,0x04,0xb0,0x00,0x79,0x04,0xb0,0x00,0x81,0x06,0x04,0x00,0xfd,0x06,0x04,0x01,0x70,0x06,0x04,0x00,0xb9,0x06,0x04,0x00,0x7d,0x06,0x04,0x00,0xff,0x06,0x04,0x00,0x8c,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xf5, +0x06,0x04,0x00,0x3a,0x06,0x04,0x00,0xaf,0x04,0xc4,0x00,0xb7,0x04,0xc4,0x01,0x2a,0x04,0xc4,0x00,0x7d,0x04,0xc4,0x00,0x8b,0x04,0xc4,0x00,0xb4,0x04,0xc4,0x00,0x79,0x04,0xc4,0x00,0x9d,0x04,0xc4,0x00,0xdf,0x04,0xc4,0x00,0x4b,0x04,0xc4,0x00,0x4b,0x05,0x14,0x00,0xe1,0x05,0x14,0x00,0xdc,0x05,0x14,0x00,0xa6,0x05,0x14,0x00,0x68, +0x05,0x14,0x00,0x2d,0x05,0x14,0x00,0x0c,0x05,0x14,0x00,0x68,0x05,0x14,0x00,0x4d,0x05,0x14,0x00,0xab,0x05,0x14,0x00,0x7d,0x05,0x28,0x00,0xad,0x05,0x28,0x01,0x15,0x05,0x28,0x01,0x15,0x05,0x28,0x00,0x2f,0x05,0x28,0x00,0x40,0x05,0x28,0x00,0x34,0x05,0x28,0x00,0x55,0x05,0x28,0x00,0x4f,0x05,0x28,0x00,0xc1,0x05,0x28,0x00,0xdc, +0x07,0x44,0x01,0xbd,0x07,0x44,0x01,0x00,0x07,0x44,0x00,0xd2,0x07,0x44,0x00,0xff,0x07,0x44,0x00,0xf8,0x07,0x44,0x00,0x5c,0x07,0x44,0x00,0x27,0x07,0x44,0x01,0x1a,0x07,0x44,0x00,0x48,0x07,0x44,0x00,0x23,0x06,0x68,0x00,0xbf,0x06,0x68,0x00,0x34,0x06,0x68,0x00,0x45,0x06,0x68,0x01,0x78,0x06,0x68,0x00,0x9e,0x06,0x68,0x00,0x36, +0x06,0x68,0x00,0x99,0x06,0x68,0x01,0x4a,0x06,0x68,0x00,0x28,0x06,0x68,0x00,0x99,0x05,0xdc,0x00,0xac,0x05,0xdc,0x00,0xa1,0x05,0xdc,0x00,0xf6,0x05,0xdc,0x00,0xdd,0x05,0xdc,0x00,0x60,0x05,0xdc,0x00,0x43,0x05,0xdc,0x00,0x7e,0x05,0xdc,0x00,0xd6,0x05,0xdc,0x00,0x8d,0x05,0xdc,0x01,0x0d,0x07,0x1c,0x01,0xc8,0x07,0x1c,0x00,0x24, +0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x32,0x07,0x1c,0x00,0x7e,0x07,0x1c,0x00,0x37,0x07,0x1c,0x00,0x46,0x07,0x1c,0x01,0x25,0x07,0x1c,0x00,0x4b,0x07,0x1c,0x00,0x3d,0x06,0x68,0x00,0xdf,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xc6,0x06,0x68,0x00,0xbb,0x06,0x68,0x00,0xcf,0x06,0x68,0x00,0xcf,0x06,0x68,0x01,0x08,0x06,0x68,0x00,0x35, +0x06,0x68,0x00,0xa7,0x06,0x68,0x00,0x67,0x06,0x68,0x00,0xd0,0x06,0x68,0x00,0xd2,0x06,0x68,0x01,0x47,0x06,0x68,0x00,0xa3,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0xdd,0x06,0x68,0x00,0x44,0x06,0x68,0x00,0x9a,0x06,0x68,0x00,0xb9,0x06,0x68,0x00,0x15,0x05,0x78,0x01,0x09,0x05,0x78,0x01,0x22,0x05,0x78,0x00,0xf8,0x05,0x78,0x01,0x0e, +0x05,0x78,0x00,0xb7,0x05,0x78,0x00,0x78,0x05,0x78,0x00,0x6c,0x05,0x78,0x00,0x3b,0x05,0x78,0x00,0xcb,0x05,0x78,0x00,0xe3,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x5a,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x44,0x04,0x10,0x00,0x30,0x04,0x10,0x00,0x47,0x04,0x10,0x00,0x44, +0x04,0x88,0x00,0x80,0x04,0x88,0x00,0xa3,0x04,0x88,0x00,0x9b,0x04,0x88,0x00,0x5d,0x04,0x88,0x00,0x31,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0x57,0x04,0x88,0x00,0xd7,0x04,0x88,0x00,0x83,0x04,0x88,0x00,0x83,0x06,0x04,0x01,0x48,0x06,0x04,0x01,0x21,0x06,0x04,0x00,0x74,0x06,0x04,0x00,0x43,0x06,0x04,0x00,0xf0,0x06,0x04,0x00,0xd6, +0x06,0x04,0x01,0x0f,0x06,0x04,0x00,0x8f,0x06,0x04,0x01,0x0b,0x06,0x04,0x01,0x20,0x04,0x4c,0x00,0x9d,0x04,0x4c,0x00,0xb6,0x04,0x4c,0x00,0x36,0x04,0x4c,0x00,0x5a,0x04,0x4c,0x00,0xc5,0x04,0x4c,0x00,0xab,0x04,0x4c,0x00,0x79,0x04,0x4c,0x00,0x74,0x04,0x4c,0x00,0xa8,0x04,0x4c,0x00,0xce,0x05,0xc8,0x00,0xc3,0x05,0xc8,0x01,0x6a, +0x05,0xc8,0x01,0x08,0x05,0xc8,0x01,0x20,0x05,0xc8,0x01,0x21,0x05,0xc8,0x00,0x3c,0x05,0xc8,0x01,0x05,0x05,0xc8,0x00,0x50,0x05,0xc8,0x00,0xc9,0x05,0xc8,0x01,0x01,0x05,0xc8,0x00,0xd6,0x06,0x04,0x00,0x8b,0x06,0x04,0x02,0xb1,0x06,0x04,0x00,0x1f,0x06,0x04,0x00,0xb7,0x06,0x04,0x00,0xd7,0x06,0x04,0x00,0xf9,0x06,0x04,0x01,0x37, +0x06,0x04,0x00,0x33,0x06,0x04,0x01,0x1c,0x06,0x04,0x00,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x9c,0x00,0x00,0xfe,0xe6,0x00,0x00,0xff,0x9c,0x03,0x82,0x00,0x31,0x03,0xd9,0x00,0x20,0x05,0x6c,0x00,0xb8,0x05,0xcf,0x00,0x34,0x02,0x39,0x00,0x6d,0x01,0xac,0x00,0x5a,0x02,0x39,0x00,0x5b, +0x01,0xac,0x00,0x4e,0x05,0xae,0x00,0xbc,0x04,0x87,0x00,0xa6,0x05,0xf1,0x00,0x29,0x05,0x05,0x00,0x2b,0x04,0x6b,0x00,0x66,0x03,0xc5,0x00,0x26,0x04,0x45,0x00,0x51,0x03,0xda,0x00,0x21,0x04,0xba,0x00,0x51,0x04,0x90,0x00,0x21,0x03,0x5b,0x00,0xb0,0x03,0x5d,0x00,0x68,0x09,0x08,0x00,0x16,0x06,0x8b,0x00,0x5a,0x09,0x39,0x00,0x16, +0x07,0x16,0x00,0x5a,0x07,0xe4,0x00,0x16,0x06,0xc3,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x07,0x36,0x00,0x16,0x05,0x44,0x00,0x5a,0x04,0xf4,0x00,0x68,0x03,0xb2,0x00,0x50,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x27,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x04,0xa4,0x00,0x12, +0x03,0xfa,0x00,0x27,0x04,0x5b,0x00,0xbc,0x02,0x82,0x00,0xa6,0x03,0xc4,0x00,0x12,0x01,0xf0,0x00,0x1e,0x06,0x08,0x00,0x00,0x04,0xb0,0x00,0x00,0x06,0xdf,0x00,0x5e,0x05,0x64,0x00,0x60,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60,0x04,0x7b,0x00,0x19,0x04,0xb4,0x00,0x1e,0x05,0x83,0x00,0x1e,0x05,0xa6,0x00,0x05,0x06,0x79,0x00,0x0a, +0x06,0xe5,0x00,0x05,0x06,0x08,0x00,0x5e,0x04,0xb6,0x00,0x60,0x07,0xd4,0x00,0x5e,0x06,0x42,0x00,0x60,0x04,0x5c,0x00,0x1e,0x03,0x2e,0x00,0x0f,0x04,0x79,0x00,0x3d,0x03,0xee,0x00,0x0f,0x04,0xf8,0x00,0x12,0x03,0xd5,0xff,0xe8,0x07,0x79,0x00,0x1a,0x05,0xc8,0x00,0x18,0x04,0xea,0x00,0x55,0x04,0x2d,0x00,0x3e,0x04,0x7b,0x00,0x12, +0x04,0xb4,0x00,0x27,0x04,0x7b,0x00,0x12,0x04,0xb4,0x00,0x27,0x03,0xd9,0x00,0xbc,0x03,0x32,0x00,0xa6,0x03,0xcd,0x00,0x60,0x03,0x19,0x00,0x1e,0x03,0xc8,0x00,0x14,0x02,0xf2,0xff,0x76,0x04,0x24,0x00,0x38,0x04,0x2a,0x00,0x43,0x02,0x69,0x00,0x28,0x05,0x65,0x00,0x60,0x02,0x9f,0x00,0xa6,0x07,0xa9,0x00,0xa6,0x05,0x4d,0x00,0xa6, +0x02,0xc8,0x00,0xa6,0x04,0xa7,0x00,0xa6,0x04,0xea,0x00,0x2b,0x03,0xb0,0xff,0xec,0x06,0x08,0x00,0x0f,0x04,0x79,0x00,0x60,0x03,0x08,0x00,0xbc,0x02,0xc8,0x00,0xa6,0x04,0xa4,0x00,0x5a,0x04,0xa4,0x00,0x59,0x04,0x9f,0x00,0x60,0x03,0xc4,0x00,0x20,0x01,0xf0,0x00,0xa6,0x06,0x15,0x00,0xbc,0x04,0xc9,0x00,0xa6,0x02,0xf4,0x00,0xbc, +0x02,0xc8,0x00,0xa6,0x04,0xfa,0x00,0x5e,0x03,0xac,0x00,0x60,0x05,0xae,0x00,0xbc,0x03,0x17,0xff,0xe5,0x06,0x3d,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x04,0xf4,0x00,0x00,0x03,0xb2,0x00,0x00,0x05,0x7d,0x00,0x01,0x04,0xb6,0x00,0x00,0x04,0xa4,0x00,0x12,0x03,0xfa,0x00,0x26,0x05,0xfc,0x00,0x12,0x04,0x87,0x00,0x19,0x04,0xc9,0x00,0x12, +0x02,0xc8,0x00,0x23,0x04,0x40,0x00,0x45,0x03,0x65,0x00,0x60,0x06,0x00,0xff,0xac,0x03,0x64,0x00,0x19,0x04,0x3e,0x00,0x3e,0x06,0xe4,0x00,0x90,0x03,0xe8,0x00,0x54,0x04,0x7b,0x00,0x52,0x07,0x2f,0x00,0xbd,0x02,0x21,0x00,0xbc,0x09,0x2b,0x00,0x1a,0x07,0x25,0x00,0x50,0x07,0x31,0x00,0x50,0x09,0x76,0x00,0x4a,0x07,0x11,0x00,0x50, +0x07,0x53,0x00,0x8d,0x07,0x53,0x00,0x81,0x07,0x07,0x00,0x2f,0x07,0x17,0x00,0x50,0x07,0x60,0x00,0x7b,0x04,0x21,0x00,0x50,0x03,0xc4,0x00,0xbc,0x04,0xf4,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x07,0x2f,0x00,0xbc,0x05,0x9c,0x00,0x1a,0x07,0x8c,0x00,0x1a,0x01,0xf0,0x00,0xa6,0x03,0xb2,0x00,0x60,0x04,0xb6,0x00,0x60,0x06,0xe4,0x00,0xa6, +0x08,0x3c,0x00,0x5e,0x05,0x9c,0x00,0xbc,0x08,0x3c,0x00,0x5e,0x04,0xf4,0x00,0x68,0x04,0xf4,0x00,0x5e,0x06,0x5c,0x01,0x05,0x05,0x9c,0x00,0xbc,0x09,0x18,0x00,0x5e,0x07,0x60,0x00,0x48,0x04,0x27,0x00,0x00,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x04,0xad,0x00,0x7e,0x04,0xad,0x00,0x7e, +0x04,0xad,0xff,0xba,0x04,0xad,0xff,0xba,0x06,0xae,0x00,0x19,0x06,0xae,0xff,0xba,0x06,0xae,0xff,0xba,0x06,0xae,0x00,0x19,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x02,0xac,0xff,0xba, +0x02,0xac,0xff,0xba,0x05,0x58,0x00,0x9b,0x04,0xad,0x00,0x39,0x04,0xae,0xff,0xba,0x04,0xad,0xff,0xba,0x04,0xad,0x00,0x39,0x06,0x03,0x00,0x82,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x82,0x06,0x03,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x06,0xae,0x00,0x9a,0x03,0x57,0xff,0xa6,0x03,0x57,0xff,0xa6, +0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x1c,0x00,0x02,0x04,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xbf,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x00,0x0c,0x66,0x00,0x73, +0x04,0x1f,0x00,0xbc,0x03,0x2b,0x00,0xa6,0x04,0x83,0x00,0x50,0x04,0x38,0x00,0x50,0x05,0xfe,0x00,0xbc,0x04,0xa6,0x00,0xa6,0x04,0xa4,0x00,0xbc,0x07,0x02,0x00,0x10,0x05,0x5a,0x00,0x10,0x05,0xfe,0x00,0xbc,0x06,0x04,0x00,0xa6,0x06,0xa5,0x00,0x3d,0x06,0x8a,0x00,0x3e,0x04,0xa4,0x00,0xbc,0x03,0xfa,0x00,0xa6,0x08,0x09,0x00,0x10, +0x06,0x73,0x00,0x10,0x08,0x57,0x00,0xbc,0x06,0xda,0x00,0xa6,0x05,0x7d,0x00,0xa6,0x04,0xb4,0x00,0x98,0x02,0x81,0x00,0x35,0x02,0x81,0x00,0x35,0x04,0xac,0x00,0x5c,0x05,0x2c,0x00,0xbc,0x03,0x44,0x00,0x1e,0x04,0xcc,0x00,0x81,0x04,0x21,0x00,0x77,0x04,0xa2,0x00,0x06,0x03,0xdf,0xff,0xbd,0x05,0xea,0x00,0xbc,0x06,0x68,0x00,0x60, +0x03,0x34,0x00,0x78,0x04,0xb0,0x00,0x60,0x03,0x70,0x00,0x49,0x01,0xae,0x00,0x06,0x02,0xf7,0x00,0x1c,0x04,0x40,0x00,0x79,0x04,0x68,0x00,0x21,0x01,0xbb,0x00,0x70,0x01,0xbc,0x00,0x70,0x01,0x78,0x00,0x27,0x01,0xbc,0x00,0x6f,0x03,0x00,0x00,0x30,0x03,0x00,0x01,0x2e,0x03,0x00,0x00,0x30,0x03,0x96,0x00,0x83,0x0b,0xe8,0x00,0x00, +0x0f,0xf4,0x00,0x00,0x02,0xb7,0x00,0x25,0x03,0x4c,0x00,0x5b,0x01,0x11,0xff,0xda,0x02,0x21,0xff,0xf7,0x03,0x1b,0x00,0x0c,0x03,0x72,0x00,0x5b,0x02,0x89,0x00,0x5a,0x03,0xf3,0x00,0x1e,0x04,0x38,0x00,0x5c,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x64,0x03,0x0f,0x00,0x96, +0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0x0f,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x03,0xc3,0x00,0x96,0x0a,0xa0,0x00,0xb4,0x04,0x50,0x00,0x40,0x06,0x18,0x00,0x32,0x07,0x57,0x00,0x26,0x07,0x2f,0x00,0xbc,0x05,0x29,0x00,0x16,0x03,0xb2,0x00,0x60, +0x04,0x87,0x00,0xa6,0x05,0xc2,0x00,0x6e,0x05,0xe0,0x00,0x75,0x03,0xe8,0xff,0x9a,0x02,0x81,0x00,0x35,0x05,0x4a,0x00,0x5e,0x04,0x26,0x00,0x60,0x05,0x72,0x00,0x5e,0x04,0x70,0x00,0x60,0x05,0x4a,0x00,0x5e,0x04,0x43,0x00,0x60,0x04,0x52,0x00,0x60,0x05,0xf3,0x00,0x5e,0x04,0xbd,0x00,0x28,0x04,0xa4,0x00,0x02,0x04,0x31,0x00,0x29, +0x05,0xfe,0x00,0x32,0x04,0xea,0xff,0xf9,0x06,0xa8,0x00,0x5a,0x03,0xa4,0x00,0x64,0x04,0x2f,0x00,0x13,0x05,0x10,0x00,0x29,0x02,0x81,0x00,0x35,0x04,0xb6,0x00,0x60,0x02,0xb7,0x00,0x00,0x02,0xc7,0x00,0x23,0x01,0xf0,0xff,0xf6,0x07,0x04,0x00,0xa6,0x04,0xa8,0x00,0xa6,0x04,0x87,0x00,0xa6,0x04,0x2d,0x00,0x64,0x04,0x2d,0x00,0x54, +0x04,0xb0,0x00,0x80,0x07,0x6c,0x00,0x60,0x07,0x6c,0x00,0x60,0x07,0x8d,0x00,0x60,0x07,0xf8,0x00,0x60,0x07,0xf8,0x00,0x60,0x04,0x61,0x00,0x7d,0x03,0xff,0x00,0xb0,0x02,0x42,0x00,0xa6,0x04,0x01,0x00,0xa6,0x03,0xaa,0x00,0x1c,0x04,0xde,0x00,0x1c,0x03,0xa3,0x00,0x3c,0x05,0x57,0x00,0x3c,0x01,0xfa,0xff,0x92,0x04,0x87,0x00,0x90, +0x04,0xcb,0x00,0x21,0x06,0xe4,0x00,0xa6,0x06,0xe4,0x00,0xa6,0x04,0xeb,0x00,0x0e,0x04,0x4e,0x00,0x0c,0x04,0x9c,0x00,0x0c,0x04,0x4e,0x00,0x0c,0x04,0x2c,0x00,0x1a,0x03,0xac,0xff,0x1f,0x04,0x2c,0xff,0x1f,0x03,0xac,0xfe,0xc8,0x03,0xdf,0x00,0x0e,0x02,0x6e,0x00,0x25,0x02,0xb2,0x00,0x64,0x01,0xf4,0x00,0x00,0x01,0xbf,0x00,0x00, +0x02,0xe4,0x00,0x00,0x04,0xa0,0x00,0x60,0x05,0x10,0x00,0x58,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0xcf,0x02,0x58,0x00,0xcf, +0x02,0x58,0x00,0x8b,0x02,0x8a,0x00,0x0c,0x02,0x8a,0x00,0x0c,0x00,0x00,0xff,0xd4,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x02,0x01,0x00,0x05,0x02,0x01,0x00,0x05,0x0d,0x74,0x00,0x52,0x07,0xf5,0x00,0x32,0x06,0xf9,0x00,0x32,0x08,0x63,0x00,0x32,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x9e,0x00,0x05, +0x03,0x2a,0x00,0x9a,0x02,0x0c,0x00,0x05,0x02,0x26,0x00,0x15,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x21,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x29,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xf8,0x02,0x4e,0xff,0xba,0x02,0x4e,0x00,0x69,0x02,0x4e,0xff,0xba,0x02,0x4e,0xff,0xba,0x00,0x00,0xff,0xe7,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba, +0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0x12,0x00,0xc4,0x04,0x02,0x00,0x52,0x04,0x02,0x00,0x52,0x0a,0xb1,0x00,0x9b,0x08,0x04,0xff,0xba,0x08,0x04,0xff,0xba,0x0a,0xb0,0x00,0x9b,0x07,0x59,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x04,0x02,0x00,0xab,0x04,0x02,0x00,0xab,0x03,0x57,0x00,0x00, +0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x8c,0x00,0x00,0xfe,0x45,0x02,0xdb,0x00,0x14,0x05,0xfa,0x00,0xbc,0x04,0xcd,0x00,0xa6,0x05,0xae,0xff,0x98,0x04,0x9e,0xff,0x5c,0x0a,0x08,0x00,0x0f,0x08,0x46,0x00,0x12,0x05,0x8c,0x00,0x0f,0x04,0x60,0x00,0x12,0x05,0x9e,0x00,0x10,0x04,0x65,0x00,0x10,0x0a,0xa5,0x00,0x5e,0x07,0xf8,0x00,0x60, +0x06,0x08,0x00,0x5e,0x04,0xb0,0x00,0x60,0x03,0x1b,0x00,0x0c,0x02,0x89,0x00,0x5a,0x04,0xf2,0x00,0x28,0x00,0x00,0xff,0x38,0x05,0x76,0x00,0x50,0x04,0x50,0x00,0xbc,0x02,0xb0,0x00,0x66,0x02,0x6a,0x00,0x66,0x01,0x4c,0x00,0x66,0x03,0xfa,0x00,0x66,0x02,0xb0,0x00,0x66,0x02,0xbe,0x00,0x66,0x02,0x09,0x00,0x3c,0x01,0x9c,0x00,0x0a, +0x03,0xb1,0x00,0x1e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x02,0xed,0x00,0x6e,0x01,0xbc,0x00,0x70,0x04,0x31,0x00,0x29,0x03,0x68,0x00,0x20,0x04,0xb8,0x00,0x1a,0x04,0x96,0x00,0xbc,0x04,0x62,0x00,0xa7,0x07,0xb2,0x00,0x5a, +0x06,0x77,0x00,0x77,0x06,0x74,0x00,0xa6,0x06,0x50,0x00,0xa6,0x06,0x89,0x00,0x60,0x07,0x8a,0x00,0x90,0x05,0x03,0x00,0x35,0x05,0x7c,0x00,0x68,0x04,0xcf,0x00,0x50,0x03,0x25,0x00,0x50,0x07,0x6e,0x00,0x3c,0x09,0x01,0x00,0x54,0x03,0x85,0x00,0x74,0x09,0x3d,0xff,0xf8,0x04,0x02,0x00,0x65,0x06,0xae,0x00,0xab,0x07,0x59,0x00,0xab, +0x07,0x59,0x00,0xab,0x07,0x59,0x00,0xab,0x03,0x57,0x00,0x00,0x06,0x03,0x00,0x9a,0x08,0x04,0x00,0xab,0x06,0x03,0x00,0x9b,0x05,0x58,0x00,0x9b,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x2b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x32,0x00,0x00,0xfc,0xe6,0x00,0x00,0xfb,0x6b,0x00,0x00,0xfb,0x9b, +0x00,0x00,0xfc,0x00,0x00,0x00,0xfd,0x71,0x00,0x00,0xfd,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xfe,0x04,0x64,0x00,0xdc,0x00,0x00,0xfe,0xd4,0x04,0xad,0x00,0x65,0x04,0xad,0xff,0xba,0x04,0xae,0xff,0xba,0x06,0xae,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba, +0x07,0x59,0x00,0xab,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x07,0x59,0x00,0xab,0x03,0xf1,0xff,0xba,0x03,0xf1,0xff,0xba,0x00,0x00,0xfe,0x84,0x03,0x57,0x00,0x00,0x06,0xae,0x00,0x9a,0x02,0xac,0xff,0xba,0x02,0xac,0xff,0xba,0x08,0x04,0x00,0xab,0x04,0x02,0xff,0xba,0x04,0x02,0xff,0xba,0x06,0x03,0x00,0x9b,0x04,0x02,0xff,0xba, +0x04,0x02,0xff,0xba,0x05,0x58,0x00,0x9b,0x02,0x58,0x00,0xab,0x02,0x58,0x00,0xd4,0x02,0x58,0x00,0x66,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x7f,0x02,0x58,0x00,0x4f,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x53,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x2b, +0x02,0x58,0x00,0x4d,0x0c,0x05,0x00,0xa1,0x0c,0x05,0x00,0xa1,0x07,0x0a,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0a,0x00,0x73,0x07,0x0a,0x00,0x73,0x03,0x4d,0x00,0xf2,0x03,0x4d,0x01,0x2f,0x03,0x4d,0x00,0x76,0x03,0x4d,0x00,0x25,0x03,0x4d,0x00,0xab,0x03,0x4d,0x00,0x62,0x03,0x4d,0x00,0x42,0x03,0x4d,0x00,0x1c, +0x03,0x4d,0x00,0x1d,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x69,0x03,0x4d,0x00,0x3c,0x03,0x4d,0x00,0x6f,0x03,0x4d,0x00,0x41,0x03,0x4d,0x00,0x6b,0x03,0x57,0x00,0x39,0x05,0x58,0x00,0x9a,0x04,0xf1,0x00,0x55,0x05,0x26,0x00,0x78,0x05,0x30,0x00,0x78,0x07,0x1a,0x00,0x82,0x05,0x27,0x00,0x64,0x05,0x0b,0x00,0x6e,0x06,0x62,0x00,0x28, +0x07,0xce,0x00,0x82,0x05,0x34,0x00,0x82,0x05,0x0b,0x00,0x6e,0x08,0x8a,0x00,0x82,0x05,0x14,0x00,0x82,0x05,0x14,0x00,0xa0,0x07,0x7a,0x00,0x82,0x05,0x0b,0x00,0x6e,0x05,0x63,0x00,0x64,0x06,0x52,0x00,0x82,0x05,0x1a,0x00,0xa0,0x06,0x28,0x00,0x6e,0x06,0xc3,0x00,0x0a,0x07,0x4d,0x00,0x55,0x05,0x1d,0x00,0x5a,0x06,0x24,0x00,0x82, +0x05,0x31,0x00,0x6e,0x05,0x93,0x00,0x32,0x04,0xf8,0x00,0xa0,0x05,0x95,0x00,0x82,0x05,0x00,0x00,0x6e,0x05,0x45,0x00,0x50,0x05,0x7b,0x00,0x32,0x05,0x00,0x00,0xa0,0x06,0x3a,0x00,0x50,0x04,0xc8,0x00,0x50,0x05,0x4e,0x00,0x82,0x06,0x48,0x00,0x64,0x04,0xf2,0x00,0x64,0x05,0x01,0x00,0x64,0x04,0x8d,0x00,0x6e,0x06,0x47,0x00,0x6e, +0x05,0x23,0x00,0x76,0x05,0x31,0x00,0xa0,0x05,0x30,0x00,0x78,0x05,0x96,0x00,0x82,0x03,0x93,0x00,0x00,0x04,0x39,0x00,0x00,0x05,0x23,0x00,0x62,0x06,0x48,0x00,0x64,0x06,0x36,0x00,0x78,0x04,0x56,0x00,0xbe,0x00,0x00,0x14,0xe0,0x19,0x01,0x25,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x0c,0x2c,0x01,0x01,0x24,0x01,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x09,0x22,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x2e,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x0d,0x0c,0x0c,0x0c, +0x2e,0x01,0x01,0x01,0x0c,0x19,0x0c,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x0c,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x23,0x01,0x2a,0x2a,0x01,0x01,0x24,0x1c,0x01,0x0c,0x2a, +0x01,0x1c,0x1c,0x01,0x0c,0x0f,0x01,0x01,0x01,0x01,0x01,0x0c,0x04,0x0c,0x01,0x01,0x01,0x01,0x1f,0x01,0x1c,0x27,0x01,0x01,0x0e,0x01,0x01,0x0c,0x01,0x08,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x0c,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x09, +0x09,0x09,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x2e,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x16,0x01,0x16,0x01,0x01,0x0e,0x24,0x0c,0x01,0x15,0x29,0x0d,0x01,0x01,0x01,0x01,0x05,0x0c,0x01,0x19,0x01,0x01,0x12,0x19,0x19,0x19,0x19,0x19,0x01,0x01,0x0d,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c, +0x2e,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x27,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x04,0x0c,0x0c,0x0c,0x27,0x0c,0x27,0x0c,0x27,0x0c,0x0c,0x01, +0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x03,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x0e,0x0c,0x01,0x0c,0x24,0x01,0x0c,0x01,0x0c,0x01,0x1b,0x01,0x0c,0x0c,0x01,0x01,0x04,0x0e,0x01,0x01,0x0c,0x0c,0x27,0x0c,0x01, +0x0e,0x0d,0x01,0x0c,0x0c,0x0c,0x0d,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x0d,0x0d,0x07,0x07,0x01,0x1b,0x01,0x01,0x0c,0x01,0x01,0x0d,0x01,0x01,0x0c,0x01,0x22,0x20,0x0e,0x1a,0x01,0x1f,0x01,0x2c,0x01,0x22,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x0e,0x26,0x26,0x26,0x0c,0x26,0x0d, +0x0e,0x0c,0x0e,0x0c,0x01,0x01,0x01,0x2c,0x01,0x0e,0x0c,0x0e,0x26,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x0e,0x0c,0x01,0x01,0x01,0x0e,0x2d,0x0c,0x0c,0x01,0x0e,0x01,0x01,0x01,0x2e,0x01,0x01,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0c,0x25,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x25,0x0c, +0x25,0x0c,0x25,0x0c,0x25,0x0c,0x25,0x09,0x0c,0x09,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x07,0x26,0x01,0x24,0x01,0x01,0x23,0x01,0x28,0x01,0x29,0x22,0x01,0x02,0x22,0x0e,0x0c,0x0e,0x0c,0x0e,0x01,0x02,0x01,0x0c,0x20,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01, +0x01,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x0d,0x01,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x2c,0x2e,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01, +0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0d,0x01,0x0d,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x03,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x0c,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x22,0x19,0x22,0x19,0x27,0x0c,0x27,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x16,0x01,0x16,0x01,0x16,0x0c,0x01,0x0c,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x22,0x22, +0x22,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x2a,0x02,0x02,0x19,0x01,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, +0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, +0x01,0x01,0x0d,0x0d,0x0d,0x0d,0x0d,0x01,0x01,0x29,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x1e,0x01,0x01,0x01,0x01,0x0d,0x01,0x01,0x22,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x32,0x1a,0x15,0x1a,0x15,0x01,0x22,0x25,0x01,0x01,0x16,0x0a,0x0a,0x01,0x01,0x01,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x2c,0x2e,0x01,0x0c, +0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x13,0x15,0x2c,0x2e,0x01,0x01,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x09,0x0c,0x09,0x0c,0x01,0x01,0x01,0x0c,0x30,0x01,0x01,0x01,0x16,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x2e,0x01,0x2e,0x2d,0x2d,0x2e,0x2e,0x01,0x29,0x01,0x01,0x01,0x01,0x0a,0x2e,0x2e,0x01,0x19,0x01,0x01,0x01,0x01,0x16,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x03,0x01,0x01,0x1f,0x1a,0x1a,0x01,0x01,0x01,0x19,0x01,0x01, +0x01,0x16,0x2b,0x01,0x01,0x1b,0x1b,0x1b,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x2e,0x1b,0x1b,0x07,0x0b,0x16,0x17,0x01,0x01,0x01,0x01,0x25,0x02,0x02,0x01,0x22,0x01,0x2e,0x01,0x1e,0x01,0x01,0x01,0x01,0x07,0x01,0x04,0x2a,0x01,0x01,0x01,0x02,0x01,0x01,0x19,0x01,0x01,0x01,0x0a,0x1a,0x01,0x01,0x26,0x01,0x01,0x01,0x01, +0x07,0x01,0x01,0x01,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x08,0x05,0x01,0x01,0x01,0x01,0x07,0x01,0x0b,0x1f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x1f,0x01,0x01,0x0c,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x01,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x26,0x01,0x01,0x2f,0x01,0x0a, +0x2d,0x01,0x01,0x01,0x01,0x2c,0x01,0x09,0x01,0x01,0x10,0x01,0x10,0x01,0x0d,0x0e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x0e,0x0d,0x26,0x01,0x01,0x07,0x26,0x07,0x26,0x0c,0x0c,0x01,0x0c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x0c,0x1f,0x01,0x25,0x2e,0x01,0x01, +0x01,0x0a,0x01,0x01,0x26,0x01,0x30,0x01,0x01,0x22,0x15,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30, +0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30, +0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x30,0x01,0x30,0x30,0x30,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x26,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x0c,0x16,0x01,0x01,0x01,0x0c,0x01,0x0e,0x01,0x22,0x01,0x2c,0x29,0x01,0x24,0x01,0x01, +0x01,0x01,0x2f,0x14,0x01,0x19,0x1f,0x01,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x02,0x01,0x14,0x01,0x14,0x14,0x01,0x01,0x01,0x01,0x02,0x01,0x25,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x30,0x01,0x05,0x01, +0x01,0x01,0x19,0x01,0x01,0x26,0x2e,0x01,0x01,0x01,0x01,0x01,0x2a,0x18,0x18,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x16,0x2f,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x0d,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x16,0x2e,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x0c,0x2e,0x0c,0x2e,0x0c,0x01,0x0d,0x0c, +0x0c,0x01,0x01,0x01,0x19,0x01,0x16,0x01,0x2e,0x2e,0x01,0x01,0x26,0x01,0x01,0x2d,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x25,0x1f,0x01,0x01,0x01,0x01,0x01,0x1b,0x1b,0x01,0x01,0x01,0x1e,0x02,0x02,0x01,0x01,0x1c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x2d,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x14, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x0c,0x0c,0x0c,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x01, +0x01,0x01,0x10,0x10,0x01,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x0d,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x2c,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x30,0x01,0x01,0x01,0x01,0x01,0x19,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x19,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01, +0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x05,0x01,0x01,0x01,0x0c,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01, +0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x30,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x01,0x01,0x24,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01, +0x01,0x01,0x01,0x0d,0x01,0x1b,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x29,0x13,0x01,0x01,0x04,0x1e,0x01,0x01,0x06,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x08,0x2f,0x01,0x2e,0x27,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x13,0x01,0x13,0x01,0x27,0x32,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x1b,0x13,0x13,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x10,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x2f,0x01,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x08,0x2b,0x17,0x17,0x17,0x19,0x01,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01, +0x01,0x2b,0x01,0x08,0x08,0x08,0x08,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x01,0x08,0x01,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x08,0x2b,0x01,0x01,0x01,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0xfd,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x20,0x01,0x09,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x09,0x01,0x20,0x01,0x2c,0x01,0x01,0x01,0x01,0x28,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x18,0x01,0x01,0x1f,0x10, +0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x01,0x0c,0x01,0x28,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x2f,0x01,0x24,0x24,0x24,0x0f,0x24,0x30,0x24,0x0e,0x02,0x24,0x17,0x01,0x24,0x0e,0x26,0x26,0x16,0x01,0x24,0x0e,0x0e,0x01,0x24,0x24,0x24,0x24,0x24,0x16,0x30,0x01,0x24, +0x01,0x17,0x01,0x01,0x24,0x24,0x16,0x01,0x09,0x16,0x27,0x09,0x01,0x0d,0x09,0x11,0x16,0x1f,0x01,0x01,0x1b,0x09,0x01,0x01,0x27,0x01,0x0a,0x01,0x27,0x01,0x2b,0x01,0x15,0x01,0x0a,0x2b,0x01,0x01,0x01,0x01,0x0a,0x01,0x11,0x01,0x01,0x06,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x0c,0x30,0x01,0x2b,0x01,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x0c,0x01,0x04,0x01,0x2e,0x30,0x04,0x01,0x0c,0x09,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x02,0x2d,0x01,0x01,0x31,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x2d,0x2d,0x2d,0x2d,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x1d,0x1d,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x01,0x01,0x01,0x01,0x31,0x01,0x19,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x1e,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x16,0x01,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x24,0x0d,0x01,0x01,0x0c,0x01,0x01,0x03,0x01, +0x01,0x01,0x01,0x22,0x22,0x01,0x2c,0x24,0x27,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x09,0x09,0x01,0x01,0x0c,0x0c,0x01,0x01,0x0c,0x0c,0x01,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x19,0x19,0x01,0x01,0x01,0x01,0x01,0x2c,0x2e,0x01,0x0c,0x03,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01, +0x01,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x01,0x01,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x30,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x2c,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x0c,0x01,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x16,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x23,0x01,0x28,0x01,0x03,0x01,0x01,0x25,0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x01,0x01,0x14,0x01,0x01,0x01,0x01,0x15,0x01,0x01,0x31,0x31,0x01,0x01,0x01,0x18,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05, +0x01,0x2d,0x1d,0x0b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x12,0x01,0x2c,0x01,0x07,0x01,0x01,0x01,0x2d,0x01,0x01,0x01,0x32,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x01,0x16,0x01,0x1b,0x01,0x29,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x23,0x01,0x01,0x12,0x01,0x01,0x0d,0x27,0x01,0x01,0x25,0x20,0x01,0x17,0x01,0x01,0x17, +0x17,0x01,0x20,0x17,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x0d,0x20,0x20,0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x1e,0x32,0x01,0x15,0x01,0x01,0x01,0x02,0x16,0x01,0x1d,0x01,0x01,0x01,0x01,0x02,0x01,0x11,0x01,0x01,0x01,0x01,0x01,0x26,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x01,0x19,0x19,0x19,0x19,0x19,0x19,0x01,0x19,0x19, +0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0b,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x12,0x01,0x11,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x2a,0x01,0x01,0x01,0x01,0x01, +0x30,0x01,0x01,0x01,0x01,0x01,0x1b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x01,0x01,0x01,0x01,0x01,0x14,0x29,0x14,0x14,0x14,0x01,0x30,0x30,0x2c,0x01,0x01,0x19,0x19,0x19,0x01,0x19,0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x07,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x09,0x16,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x0c,0x01, +0x01,0x01,0x01,0x24,0x01,0x01,0x01,0x01,0x08,0x01,0x25,0x01,0x01,0x01,0x01,0x17,0x01,0x01,0x26,0x01,0x06,0x1b,0x01,0x01,0x01,0x1b,0x01,0x1a,0x01,0x01,0x01,0x01,0x01,0x01,0x1a,0x25,0x01,0x01,0x25,0x01,0x20,0x01,0x17,0x1a,0x01,0x15,0x2c,0x2c,0x23,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27, +0x27,0x27,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x32, +0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x14,0x01,0x01,0x01,0x22,0x01,0x01,0x2d,0x01,0x01,0x01,0x01,0x26,0x2b,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x2e,0x01,0x01,0x01,0x01,0x01,0x28,0x18,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x2e,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x19,0x27,0x01,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1d,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x24,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x31,0x01,0x01,0x01,0x01,0x01,0x01,0x17,0x1a,0x01,0x01,0x01,0x2c,0x2e,0x01,0x02,0x03, +0x01,0x01,0x01,0x01,0x01,0x01,0x2f,0x22,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x06,0x01,0x1f,0x07,0x07,0x01,0x17,0x01,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x01,0x2e,0x0d,0x12,0x01,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x1b,0x2c,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x25,0x25,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1f,0x01,0x01,0x01,0x13,0x07,0x26,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01, +0x02,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x02,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x01,0x0c,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x01,0x20,0x01,0x0d,0x01,0x01,0x01,0x01,0x07,0x24,0x04,0x01,0x01,0x10,0x0c,0x2e,0x01,0x25,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x08,0x08,0x0a,0x01,0x01,0x16,0x10,0x01,0x01,0x0d,0x01,0x01,0x01,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2f, +0x2c,0x11,0x01,0x01,0x10,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x22,0x01,0x01,0x20,0x01,0x01,0x01,0x19,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01, +0x01,0x01,0x01,0x01,0x01,0x24,0x03,0x01,0x01,0x01,0x01,0x01,0x20,0x01,0x01,0x0b,0x01,0x01,0x01,0x01,0x0a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x0c,0x01,0x1c,0x01,0x01,0x01,0x01,0x0d,0x2d,0x01,0x2a,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, +0x01,0x2c,0x2c,0x2c,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x30,0x01,0x01,0x01,0x2c,0x01,0x01,0x2c,0x01,0x01,0x2c,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x32,0x01,0x18,0x30,0x01,0x01,0x18,0x26,0x01,0x01,0x18,0x18,0x01,0x01,0x1e,0x01,0x2b,0x01,0x01,0x1d,0x30,0x01,0x22,0x31,0x01,0x01,0x1c,0x01,0x01,0x2f,0x01,0x08,0x01,0x01, +0x1e,0x08,0x08,0x30,0x01,0x01,0x01,0x01,0x08,0x08,0x01,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x0c,0x00,0xf8,0x08,0xff,0x00,0x08,0x00,0x09,0xff,0xfe,0x00,0x09,0x00,0x0a,0xff,0xfe,0x00,0x0a,0x00,0x0a,0xff,0xfe,0x00,0x0b,0x00,0x0b,0xff,0xfe,0x00,0x0c,0x00,0x0c,0xff,0xfd,0x00,0x0d,0x00,0x0e,0xff,0xfd, +0x00,0x0e,0x00,0x0f,0xff,0xfc,0x00,0x0f,0x00,0x10,0xff,0xfc,0x00,0x10,0x00,0x11,0xff,0xfc,0x00,0x11,0x00,0x12,0xff,0xfb,0x00,0x12,0x00,0x14,0xff,0xfb,0x00,0x13,0x00,0x14,0xff,0xfb,0x00,0x14,0x00,0x17,0xff,0xfb,0x00,0x15,0x00,0x18,0xff,0xfa,0x00,0x16,0x00,0x18,0xff,0xfa,0x00,0x17,0x00,0x19,0xff,0xfa,0x00,0x18,0x00,0x1a, +0xff,0xfa,0x00,0x19,0x00,0x1c,0xff,0xf9,0x00,0x1a,0x00,0x1d,0xff,0xf9,0x00,0x1b,0x00,0x1e,0xff,0xf9,0x00,0x1c,0x00,0x1f,0xff,0xf9,0x00,0x1d,0x00,0x20,0xff,0xf8,0x00,0x1e,0x00,0x21,0xff,0xf8,0x00,0x1f,0x00,0x22,0xff,0xf8,0x00,0x20,0x00,0x24,0xff,0xf7,0x00,0x21,0x00,0x24,0xff,0xf7,0x00,0x22,0x00,0x25,0xff,0xf7,0x00,0x23, +0x00,0x26,0xff,0xf7,0x00,0x24,0x00,0x27,0xff,0xf7,0x00,0x25,0x00,0x28,0xff,0xf6,0x00,0x26,0x00,0x29,0xff,0xf6,0x00,0x27,0x00,0x2a,0xff,0xf6,0x00,0x28,0x00,0x2b,0xff,0xf5,0x00,0x29,0x00,0x2c,0xff,0xf5,0x00,0x2a,0x00,0x2e,0xff,0xf5,0x00,0x2b,0x00,0x2f,0xff,0xf4,0x00,0x2c,0x00,0x30,0xff,0xf4,0x00,0x2d,0x00,0x31,0xff,0xf4, +0x00,0x2e,0x00,0x32,0xff,0xf4,0x00,0x2f,0x00,0x32,0xff,0xf4,0x00,0x30,0x00,0x34,0xff,0xf3,0x00,0x31,0x00,0x35,0xff,0xf3,0x00,0x32,0x00,0x36,0xff,0xf3,0x00,0x33,0x00,0x37,0xff,0xf3,0x00,0x34,0x00,0x38,0xff,0xf2,0x00,0x35,0x00,0x39,0xff,0xf2,0x00,0x36,0x00,0x3a,0xff,0xf2,0x00,0x37,0x00,0x3c,0xff,0xf2,0x00,0x38,0x00,0x3c, +0xff,0xf2,0x00,0x39,0x00,0x3d,0xff,0xf1,0x00,0x3a,0x00,0x3e,0xff,0xf1,0x00,0x3b,0x00,0x3f,0xff,0xf1,0x00,0x3c,0x00,0x41,0xff,0xf0,0x00,0x3d,0x00,0x42,0xff,0xf0,0x00,0x3e,0x00,0x44,0xff,0xf0,0x00,0x3f,0x00,0x45,0xff,0xf0,0x00,0x40,0x00,0x45,0xff,0xef,0x00,0x41,0x00,0x46,0xff,0xef,0x00,0x42,0x00,0x47,0xff,0xef,0x00,0x43, +0x00,0x48,0xff,0xef,0x00,0x44,0x00,0x49,0xff,0xee,0x00,0x45,0x00,0x4a,0xff,0xee,0x00,0x46,0x00,0x4b,0xff,0xee,0x00,0x47,0x00,0x4c,0xff,0xee,0x00,0x48,0x00,0x4d,0xff,0xed,0x00,0x49,0x00,0x4f,0xff,0xed,0x00,0x4a,0x00,0x50,0xff,0xed,0x00,0x4b,0x00,0x51,0xff,0xed,0x00,0x4c,0x00,0x51,0xff,0xec,0x00,0x4d,0x00,0x52,0xff,0xec, +0x00,0x4e,0x00,0x54,0xff,0xec,0x00,0x4f,0x00,0x55,0xff,0xec,0x00,0x50,0x00,0x56,0xff,0xec,0x00,0x51,0x00,0x57,0xff,0xeb,0x00,0x52,0x00,0x58,0xff,0xeb,0x00,0x53,0x00,0x59,0xff,0xeb,0x00,0x54,0x00,0x5a,0xff,0xea,0x00,0x55,0x00,0x5b,0xff,0xea,0x00,0x56,0x00,0x5c,0xff,0xea,0x00,0x57,0x00,0x5e,0xff,0xea,0x00,0x58,0x00,0x5e, +0xff,0xea,0x00,0x59,0x00,0x5f,0xff,0xe9,0x00,0x5a,0x00,0x61,0xff,0xe9,0x00,0x5b,0x00,0x61,0xff,0xe9,0x00,0x5c,0x00,0x63,0xff,0xe8,0x00,0x5d,0x00,0x64,0xff,0xe8,0x00,0x5e,0x00,0x65,0xff,0xe8,0x00,0x5f,0x00,0x66,0xff,0xe7,0x00,0x60,0x00,0x67,0xff,0xe7,0x00,0x61,0x00,0x69,0xff,0xe7,0x00,0x62,0x00,0x69,0xff,0xe7,0x00,0x63, +0x00,0x6a,0xff,0xe7,0x00,0x64,0x00,0x6b,0xff,0xe6,0x00,0x65,0x00,0x6d,0xff,0xe6,0x00,0x66,0x00,0x6e,0xff,0xe6,0x00,0x67,0x00,0x6f,0xff,0xe6,0x00,0x68,0x00,0x70,0xff,0xe5,0x00,0x69,0x00,0x71,0xff,0xe5,0x00,0x6a,0x00,0x72,0xff,0xe5,0x00,0x6b,0x00,0x73,0xff,0xe5,0x00,0x6c,0x00,0x75,0xff,0xe4,0x00,0x6d,0x00,0x76,0xff,0xe4, +0x00,0x6e,0x00,0x76,0xff,0xe4,0x00,0x6f,0x00,0x77,0xff,0xe4,0x00,0x70,0x00,0x79,0xff,0xe4,0x00,0x71,0x00,0x79,0xff,0xe3,0x00,0x72,0x00,0x7b,0xff,0xe3,0x00,0x73,0x00,0x7b,0xff,0xe3,0x00,0x74,0x00,0x7c,0xff,0xe3,0x00,0x75,0x00,0x7d,0xff,0xe2,0x00,0x76,0x00,0x7e,0xff,0xe2,0x00,0x77,0x00,0x80,0xff,0xe2,0x00,0x78,0x00,0x80, +0xff,0xe1,0x00,0x79,0x00,0x82,0xff,0xe1,0x00,0x7a,0x00,0x82,0xff,0xe1,0x00,0x7b,0x00,0x84,0xff,0xe1,0x00,0x7c,0x00,0x85,0xff,0xe1,0x00,0x7d,0x00,0x86,0xff,0xe0,0x00,0x7e,0x00,0x87,0xff,0xe0,0x00,0x7f,0x00,0x88,0xff,0xe0,0x00,0x80,0x00,0x89,0xff,0xdf,0x00,0x81,0x00,0x8a,0xff,0xdf,0x00,0x82,0x00,0x8c,0xff,0xdf,0x00,0x83, +0x00,0x8d,0xff,0xdf,0x00,0x84,0x00,0x8e,0xff,0xde,0x00,0x85,0x00,0x8e,0xff,0xdf,0x00,0x86,0x00,0x8f,0xff,0xde,0x00,0x87,0x00,0x90,0xff,0xde,0x00,0x88,0x00,0x92,0xff,0xde,0x00,0x89,0x00,0x93,0xff,0xdd,0x00,0x8a,0x00,0x94,0xff,0xdd,0x00,0x8b,0x00,0x95,0xff,0xdd,0x00,0x8c,0x00,0x96,0xff,0xdc,0x00,0x8d,0x00,0x97,0xff,0xdc, +0x00,0x8e,0x00,0x99,0xff,0xdc,0x00,0x8f,0x00,0x9a,0xff,0xdc,0x00,0x90,0x00,0x9a,0xff,0xdb,0x00,0x91,0x00,0x9b,0xff,0xdb,0x00,0x92,0x00,0x9c,0xff,0xdb,0x00,0x93,0x00,0x9e,0xff,0xdb,0x00,0x94,0x00,0x9f,0xff,0xda,0x00,0x95,0x00,0xa0,0xff,0xda,0x00,0x96,0x00,0xa1,0xff,0xda,0x00,0x97,0x00,0xa2,0xff,0xda,0x00,0x98,0x00,0xa3, +0xff,0xd9,0x00,0x99,0x00,0xa4,0xff,0xd9,0x00,0x9a,0x00,0xa5,0xff,0xd9,0x00,0x9b,0x00,0xa6,0xff,0xd9,0x00,0x9c,0x00,0xa7,0xff,0xd8,0x00,0x9d,0x00,0xa8,0xff,0xd8,0x00,0x9e,0x00,0xa9,0xff,0xd8,0x00,0x9f,0x00,0xab,0xff,0xd8,0x00,0xa0,0x00,0xab,0xff,0xd7,0x00,0xa1,0x00,0xad,0xff,0xd7,0x00,0xa2,0x00,0xae,0xff,0xd7,0x00,0xa3, +0x00,0xaf,0xff,0xd7,0x00,0xa4,0x00,0xb1,0xff,0xd6,0x00,0xa5,0x00,0xb1,0xff,0xd6,0x00,0xa6,0x00,0xb2,0xff,0xd6,0x00,0xa7,0x00,0xb3,0xff,0xd6,0x00,0xa8,0x00,0xb3,0xff,0xd5,0x00,0xa9,0x00,0xb6,0xff,0xd5,0x00,0xaa,0x00,0xb7,0xff,0xd5,0x00,0xab,0x00,0xb8,0xff,0xd5,0x00,0xac,0x00,0xb8,0xff,0xd4,0x00,0xad,0x00,0xb9,0xff,0xd4, +0x00,0xae,0x00,0xba,0xff,0xd4,0x00,0xaf,0x00,0xbb,0xff,0xd3,0x00,0xb0,0x00,0xbe,0xff,0xd3,0x00,0xb1,0x00,0xbe,0xff,0xd3,0x00,0xb2,0x00,0xbf,0xff,0xd3,0x00,0xb3,0x00,0xc0,0xff,0xd3,0x00,0xb4,0x00,0xc1,0xff,0xd2,0x00,0xb5,0x00,0xc2,0xff,0xd2,0x00,0xb6,0x00,0xc3,0xff,0xd2,0x00,0xb7,0x00,0xc5,0xff,0xd2,0x00,0xb8,0x00,0xc5, +0xff,0xd1,0x00,0xb9,0x00,0xc6,0xff,0xd1,0x00,0xba,0x00,0xc8,0xff,0xd1,0x00,0xbb,0x00,0xc9,0xff,0xd1,0x00,0xbc,0x00,0xca,0xff,0xd0,0x00,0xbd,0x00,0xcb,0xff,0xd0,0x00,0xbe,0x00,0xcb,0xff,0xd0,0x00,0xbf,0x00,0xcd,0xff,0xd0,0x00,0xc0,0x00,0xcd,0xff,0xcf,0x00,0xc1,0x00,0xcf,0xff,0xcf,0x00,0xc2,0x00,0xd0,0xff,0xcf,0x00,0xc3, +0x00,0xd0,0xff,0xcf,0x00,0xc4,0x00,0xd1,0xff,0xce,0x00,0xc5,0x00,0xd3,0xff,0xce,0x00,0xc6,0x00,0xd4,0xff,0xce,0x00,0xc7,0x00,0xd5,0xff,0xce,0x00,0xc8,0x00,0xd6,0xff,0xcd,0x00,0xc9,0x00,0xd7,0xff,0xcd,0x00,0xca,0x00,0xd8,0xff,0xcd,0x00,0xcb,0x00,0xd9,0xff,0xcd,0x00,0xcc,0x00,0xda,0xff,0xcc,0x00,0xcd,0x00,0xdc,0xff,0xcc, +0x00,0xce,0x00,0xdc,0xff,0xcc,0x00,0xcf,0x00,0xdd,0xff,0xcc,0x00,0xd0,0x00,0xde,0xff,0xcb,0x00,0xd1,0x00,0xe0,0xff,0xcb,0x00,0xd2,0x00,0xe1,0xff,0xcb,0x00,0xd3,0x00,0xe2,0xff,0xcb,0x00,0xd4,0x00,0xe3,0xff,0xca,0x00,0xd5,0x00,0xe4,0xff,0xca,0x00,0xd6,0x00,0xe5,0xff,0xca,0x00,0xd7,0x00,0xe6,0xff,0xca,0x00,0xd8,0x00,0xe7, +0xff,0xc9,0x00,0xd9,0x00,0xe8,0xff,0xc9,0x00,0xda,0x00,0xea,0xff,0xc9,0x00,0xdb,0x00,0xeb,0xff,0xc9,0x00,0xdc,0x00,0xeb,0xff,0xc8,0x00,0xdd,0x00,0xed,0xff,0xc8,0x00,0xde,0x00,0xee,0xff,0xc8,0x00,0xdf,0x00,0xee,0xff,0xc8,0x00,0xe0,0x00,0xf0,0xff,0xc7,0x00,0xe1,0x00,0xf1,0xff,0xc7,0x00,0xe2,0x00,0xf3,0xff,0xc6,0x00,0xe3, +0x00,0xf3,0xff,0xc6,0x00,0xe4,0x00,0xf4,0xff,0xc6,0x00,0xe5,0x00,0xf5,0xff,0xc6,0x00,0xe6,0x00,0xf6,0xff,0xc6,0x00,0xe7,0x00,0xf8,0xff,0xc6,0x00,0xe8,0x00,0xf8,0xff,0xc5,0x00,0xe9,0x00,0xfa,0xff,0xc5,0x00,0xea,0x00,0xfb,0xff,0xc5,0x00,0xeb,0x00,0xfb,0xff,0xc5,0x00,0xec,0x00,0xfd,0xff,0xc4,0x00,0xed,0x00,0xfd,0xff,0xc4, +0x00,0xee,0x00,0xff,0xff,0xc4,0x00,0xef,0x01,0x01,0xff,0xc4,0x00,0xf0,0x01,0x01,0xff,0xc3,0x00,0xf1,0x01,0x03,0xff,0xc3,0x00,0xf2,0x01,0x03,0xff,0xc3,0x00,0xf3,0x01,0x04,0xff,0xc3,0x00,0xf4,0x01,0x05,0xff,0xc2,0x00,0xf5,0x01,0x07,0xff,0xc2,0x00,0xf6,0x01,0x08,0xff,0xc2,0x00,0xf7,0x01,0x09,0xff,0xc2,0x00,0xf8,0x01,0x0a, +0xff,0xc1,0x00,0xf9,0x01,0x0b,0xff,0xc1,0x00,0xfa,0x01,0x0c,0xff,0xc1,0x00,0xfb,0x01,0x0d,0xff,0xc1,0x00,0xfc,0x01,0x0f,0xff,0xc0,0x00,0xfd,0x01,0x10,0xff,0xc0,0x00,0xfe,0x01,0x10,0xff,0xc0,0x00,0xff,0x01,0x11,0xff,0xc0,0x00,0x00,0x00,0x11,0x00,0x00,0x14,0xe4,0x0b,0x16,0x07,0x00,0x01,0x03,0x03,0x04,0x07,0x06,0x09,0x09, +0x03,0x03,0x03,0x05,0x08,0x03,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x07,0x06,0x07,0x08,0x06,0x06,0x08,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x09,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x0b,0x06,0x05,0x06,0x03,0x04,0x03,0x08,0x05,0x03,0x06,0x07,0x05,0x07,0x06,0x04, +0x07,0x07,0x03,0x03,0x06,0x03,0x09,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x05,0x09,0x05,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x06,0x08,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x06,0x06,0x05,0x04,0x05,0x06, +0x04,0x0a,0x0a,0x09,0x03,0x05,0x08,0x09,0x09,0x09,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x08,0x06,0x04,0x05,0x09,0x09,0x07,0x05,0x03,0x03,0x08,0x07,0x06,0x08,0x07,0x06,0x06,0x09,0x07,0x07,0x09,0x0a,0x0a,0x06,0x0b,0x04,0x04,0x03,0x03,0x08,0x06,0x05,0x05,0x02,0x06,0x03,0x03,0x06,0x06,0x04,0x03,0x03,0x04,0x0d,0x07,0x06,0x07, +0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x03,0x03,0x02,0x03,0x02,0x04,0x02,0x04,0x05,0x03,0x06,0x05,0x06,0x05,0x03,0x08,0x07,0x05,0x05,0x06,0x07,0x08,0x08,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x05,0x08,0x07,0x03,0x06,0x05,0x07,0x05,0x07,0x05,0x07,0x05,0x03,0x07,0x06,0x07,0x06,0x08,0x07,0x08, +0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07,0x08,0x07,0x06,0x05,0x06,0x05,0x05,0x08,0x07,0x07,0x07,0x05,0x07,0x05,0x09,0x05,0x05,0x04,0x0c,0x07,0x06,0x07,0x03,0x04,0x09,0x04,0x07,0x04,0x04,0x07,0x04,0x07,0x06,0x07,0x05,0x07, +0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x05,0x05,0x03,0x07,0x06,0x09,0x09,0x09, +0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x05,0x05,0x03,0x05,0x06,0x07,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x03,0x03,0x03,0x07,0x06,0x09,0x04,0x09,0x07,0x09,0x03,0x07,0x06,0x06,0x06,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x09,0x08,0x06,0x06,0x06,0x05,0x06,0x09,0x09,0x03,0x05,0x07,0x05,0x07,0x03,0x07,0x06,0x06,0x05,0x07,0x07,0x03, +0x06,0x05,0x07,0x06,0x05,0x07,0x07,0x05,0x07,0x06,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x06,0x08,0x05,0x07,0x06,0x03,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0b,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x09,0x08,0x06,0x07,0x06,0x06,0x07,0x06,0x08,0x07,0x0b,0x0b,0x08,0x09,0x06,0x07,0x0b,0x07,0x06,0x07,0x06, +0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x06,0x08,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x09,0x05,0x07,0x07,0x09,0x09,0x07,0x08,0x06,0x05,0x09,0x06,0x06,0x07,0x05,0x05,0x05,0x03,0x09,0x09,0x07,0x06,0x05,0x07,0x05,0x04,0x0b,0x0c,0x07,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x09,0x07,0x08,0x07,0x03,0x04,0x03,0x03,0x05,0x05, +0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x04,0x06,0x06,0x08,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0b,0x09,0x07,0x06,0x06,0x05,0x08,0x07,0x05,0x05,0x05,0x05,0x07,0x05,0x07, +0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x07,0x06,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x08,0x07,0x08,0x07,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x03,0x05,0x03,0x05,0x03,0x05,0x03,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x06,0x07,0x06,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06, +0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x05,0x07,0x05,0x0b,0x09,0x0b,0x09,0x06,0x05,0x06,0x05,0x05,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x04,0x09,0x05,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x05, +0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07,0x07,0x07,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x06,0x06,0x06,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x05,0x05,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x05,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x05,0x08,0x07,0x0a,0x03,0x03,0x06,0x05,0x03,0x05, +0x0a,0x08,0x06,0x08,0x0b,0x09,0x07,0x06,0x06,0x06,0x05,0x06,0x03,0x04,0x06,0x04,0x06,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x05,0x05,0x06,0x06,0x04,0x04,0x06,0x03,0x04,0x05,0x03,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x0c,0x0b,0x09,0x07,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x07,0x06, +0x07,0x06,0x09,0x09,0x08,0x06,0x08,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x0e,0x0d,0x0b,0x08,0x07,0x0b,0x08,0x08,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x06,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x08,0x07,0x08,0x06,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x07,0x05,0x05,0x06,0x06,0x03,0x06,0x07,0x06,0x05,0x05,0x06,0x06,0x06,0x03,0x03,0x04,0x03,0x04,0x03,0x07,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x03,0x03, +0x03,0x03,0x04,0x04,0x07,0x07,0x06,0x05,0x08,0x05,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x05,0x07,0x05,0x06,0x06,0x06,0x03,0x05,0x04,0x06,0x04,0x04,0x0a,0x0a,0x0b,0x07,0x05,0x08,0x09,0x06,0x06,0x05,0x05,0x06,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x08,0x06,0x06,0x05,0x05,0x05,0x07,0x06,0x07,0x05,0x0a,0x09,0x07,0x06,0x07, +0x06,0x07,0x05,0x07,0x05,0x07,0x06,0x06,0x04,0x06,0x06,0x05,0x03,0x08,0x05,0x05,0x0a,0x07,0x07,0x06,0x0a,0x08,0x07,0x05,0x0a,0x08,0x08,0x06,0x0a,0x08,0x06,0x05,0x09,0x08,0x08,0x06,0x08,0x06,0x08,0x06,0x0e,0x0c,0x09,0x07,0x0c,0x0a,0x0a,0x07,0x06,0x05,0x06,0x04,0x05,0x00,0x00,0x0b,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x05,0x06,0x05,0x08,0x06,0x09,0x07,0x0b,0x09,0x08,0x06,0x07,0x05,0x06,0x05,0x0a,0x08,0x08,0x06,0x09,0x07,0x09,0x07,0x03,0x0b,0x09,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x06,0x08,0x06,0x08,0x06,0x0b,0x09,0x06,0x05,0x06,0x05,0x08,0x07,0x08,0x07,0x09,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x06,0x05, +0x06,0x05,0x07,0x07,0x09,0x08,0x06,0x07,0x09,0x09,0x09,0x08,0x06,0x05,0x0a,0x09,0x0b,0x09,0x08,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x06,0x04,0x04,0x02,0x02,0x02,0x02,0x03,0x04,0x03,0x03,0x04,0x02,0x02,0x02,0x04,0x04,0x02,0x02,0x06,0x06, +0x06,0x06,0x04,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04, +0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06, +0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x07,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03, +0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x06,0x05,0x05,0x03,0x03,0x06,0x04,0x08,0x07,0x07,0x05,0x07,0x07,0x07,0x0a,0x06,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x06,0x05,0x09,0x05,0x05,0x05,0x06,0x05,0x05, +0x07,0x05,0x07,0x06,0x04,0x05,0x04,0x04,0x05,0x03,0x03,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x04,0x04,0x04,0x03,0x05,0x06,0x03,0x03,0x04,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x02,0x03,0x05,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x05,0x03,0x04,0x04,0x03,0x04,0x04,0x03,0x02,0x02,0x04,0x03,0x04,0x03, +0x04,0x04,0x03,0x06,0x02,0x04,0x06,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x06,0x06,0x05,0x0c,0x05,0x06,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x05,0x04,0x07,0x07,0x04,0x09,0x06,0x07,0x04,0x04,0x05,0x04,0x05,0x06,0x05,0x06,0x0a,0x07,0x04,0x03,0x06, +0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x09,0x07,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x05,0x05,0x08,0x03,0x05,0x03,0x07,0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03, +0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x05,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x09,0x07,0x08,0x06,0x08,0x07,0x0a,0x08,0x06,0x04,0x06,0x08,0x06,0x09,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03, +0x03,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0b,0x05,0x03,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x04,0x06,0x04,0x08,0x07,0x06,0x04,0x09,0x06,0x09,0x03,0x04,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x06,0x09,0x03,0x06,0x03,0x06,0x05,0x03,0x03, +0x06,0x03,0x08,0x03,0x0a,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0d,0x0f,0x0f,0x09,0x09,0x06,0x06,0x02,0x0b,0x08,0x09,0x07,0x06,0x07,0x06,0x06,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03,0x07,0x00,0x07,0x07,0x07,0x04,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x05,0x0a,0x06,0x0a,0x06, +0x08,0x09,0x04,0x06,0x06,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0a,0x04,0x06,0x05,0x07,0x06,0x04,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x03,0x06,0x04,0x0b,0x06,0x06,0x07,0x07,0x0b,0x06,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x07,0x08,0x07,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06, +0x08,0x09,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x06,0x06,0x06,0x06,0x0b,0x0b, +0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x08,0x08,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x07,0x04,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x08,0x09,0x04, +0x06,0x08,0x09,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0d,0x09,0x0f,0x0b,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x04,0x06,0x06,0x07,0x0e,0x09,0x06,0x11,0x0c,0x04, +0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x08,0x07,0x07,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0e,0x11,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x0d, +0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x07,0x04,0x04,0x05,0x05,0x0d,0x09,0x07,0x06,0x06,0x00,0x06,0x06,0x06,0x04,0x06,0x08,0x07,0x06,0x06,0x04,0x03,0x08,0x06,0x07, +0x04,0x06,0x05,0x05,0x05,0x05,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x06,0x05,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x05,0x03,0x06,0x06,0x07,0x06,0x04,0x08,0x06,0x07,0x06,0x07,0x05,0x06,0x06,0x04,0x08,0x04,0x05,0x05,0x05,0x07,0x07,0x06,0x0b,0x06,0x0b,0x04,0x03,0x02,0x06,0x02,0x01,0x00,0x02, +0x02,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x05,0x08,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,0x09,0x05,0x09,0x07,0x08,0x08,0x08,0x08,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x06,0x0c,0x09,0x05,0x05,0x03, +0x03,0x03,0x04,0x03,0x06,0x03,0x03,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x07,0x03,0x06,0x06,0x06,0x08,0x07,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x09,0x08,0x06,0x06,0x06,0x03,0x04,0x06,0x06, +0x06,0x06,0x06,0x07,0x07,0x05,0x07,0x06,0x06,0x08,0x06,0x08,0x06,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x05,0x05,0x07,0x03,0x04,0x07,0x03,0x06,0x06,0x06,0x07,0x04,0x07,0x07,0x07,0x06,0x07,0x06,0x09,0x08,0x03,0x06,0x06,0x07,0x07,0x0d,0x00,0x07,0x06,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x03,0x00,0x08,0x07,0x07,0x08,0x06,0x07,0x08,0x08,0x05,0x07,0x08,0x08,0x07,0x08,0x09,0x09,0x07,0x06,0x06,0x08,0x08,0x06,0x08,0x07,0x07,0x07,0x08,0x08,0x06,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x07,0x09,0x05,0x06, +0x06,0x0a,0x06,0x06,0x08,0x0a,0x07,0x06,0x0c,0x06,0x06,0x08,0x06,0x06,0x08,0x06,0x08,0x09,0x0a,0x06,0x09,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x08,0x06,0x07,0x07,0x06,0x06,0x07,0x0b,0x06,0x06,0x06,0x06,0x05,0x04,0x06,0x06,0x06,0x06,0x06,0x0a,0x06,0x0a,0x05,0x06,0x0a,0x07,0x06,0x0a,0x08,0x08,0x0a,0x06,0x06,0x0a,0x0a, +0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x07,0x06,0x06,0x06,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x08,0x07,0x06,0x09,0x07,0x08,0x06,0x07,0x08,0x08,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x09,0x06, +0x07,0x07,0x06,0x07,0x06,0x06,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x06,0x07,0x05,0x09,0x06,0x06,0x07,0x07,0x09,0x06,0x06,0x04,0x09,0x06,0x07,0x08,0x07,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x10,0x06,0x06,0x03,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x04,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x03,0x03,0x05,0x05,0x08,0x07,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x06,0x09,0x06,0x05,0x05,0x08,0x09,0x05,0x07,0x05, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x06,0x03,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x08,0x07,0x06,0x05,0x04,0x06,0x05,0x05,0x07,0x07,0x03,0x05,0x06,0x08,0x07,0x05,0x07,0x07,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x07,0x06,0x05,0x07,0x03,0x07,0x05,0x07,0x03,0x05, +0x05,0x06,0x04,0x06,0x05,0x03,0x03,0x03,0x09,0x09,0x07,0x05,0x05,0x07,0x06,0x05,0x05,0x04,0x06,0x05,0x08,0x05,0x07,0x07,0x05,0x06,0x08,0x07,0x07,0x07,0x05,0x06,0x05,0x05,0x07,0x06,0x07,0x06,0x09,0x09,0x06,0x08,0x05,0x06,0x09,0x05,0x04,0x06,0x06,0x07,0x0a,0x0a,0x07,0x06,0x06,0x05,0x06,0x06,0x06,0x08,0x06,0x06,0x08,0x06, +0x06,0x04,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x05,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x04,0x0b,0x06,0x05,0x06,0x07,0x07,0x06,0x06,0x03,0x09,0x08,0x08,0x05,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x04,0x03,0x09,0x08,0x03,0x02,0x02,0x05,0x04,0x04,0x03,0x03,0x03,0x04,0x07,0x05,0x03,0x07,0x08,0x07,0x06,0x06,0x08,0x07,0x07, +0x04,0x05,0x06,0x05,0x02,0x03,0x04,0x06,0x04,0x07,0x07,0x07,0x0a,0x08,0x0a,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x08,0x09,0x04,0x04,0x06,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x06,0x06,0x0a,0x0a,0x06,0x06,0x08,0x09,0x04, +0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x0b,0x08,0x09,0x06,0x06,0x06,0x07,0x04,0x07,0x08,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x04,0x08,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0f,0x0b,0x0f,0x0b,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x06,0x06,0x08,0x06,0x06,0x0a,0x06,0x0c,0x0b,0x0a,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x07, +0x07,0x07,0x07,0x07,0x04,0x07,0x07,0x04,0x04,0x07,0x04,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x00,0x0d,0x09,0x0f,0x0b,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x05,0x0d,0x09,0x0b,0x0b,0x0a,0x0a,0x0a, +0x06,0x06,0x06,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x0d,0x09,0x06,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x08,0x09,0x04,0x04,0x06,0x06,0x06,0x06,0x0a,0x04,0x0a,0x04,0x06,0x07,0x06,0x06,0x0d,0x0d,0x09,0x09,0x0d,0x0d, +0x09,0x09,0x09,0x09,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x07,0x07,0x07,0x03,0x03,0x06,0x05,0x06,0x07,0x06,0x06,0x06,0x07, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x06,0x07,0x08,0x07,0x08,0x09,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x07,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x08, +0x08,0x08,0x08,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x0a,0x09,0x06,0x08,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x07,0x07,0x08,0x09,0x08,0x07,0x08,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x09,0x08,0x08,0x08,0x07,0x0a,0x08,0x09,0x08,0x08,0x06,0x08,0x08,0x08,0x09,0x08,0x08,0x0a,0x06,0x06,0x06,0x06,0x07,0x07, +0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x06,0x06,0x06,0x07,0x08,0x09,0x07,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x07,0x05,0x06,0x05,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x08,0x03,0x09,0x08,0x08,0x07,0x06,0x08,0x07, +0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x05,0x04,0x05,0x06,0x06,0x05,0x09,0x09,0x09,0x05, +0x0b,0x05,0x09,0x09,0x09,0x09,0x06,0x05,0x05,0x09,0x06,0x09,0x07,0x06,0x05,0x04,0x0b,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x0f,0x09,0x09,0x05,0x03,0x05,0x03,0x05,0x03,0x03,0x03,0x05,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x05,0x09,0x03,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x0d,0x0d,0x07,0x0d,0x0d,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x05,0x06,0x05,0x06,0x05,0x04,0x04,0x08,0x06,0x08,0x05,0x0c,0x0a,0x07,0x06,0x0a,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x07,0x05, +0x08,0x06,0x0a,0x08,0x08,0x07,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0c,0x09,0x08,0x06,0x08,0x06,0x0d,0x0a,0x09,0x00,0x0b,0x0b,0x0b,0x05,0x00,0x00,0x06,0x06,0x08,0x06,0x06,0x05,0x0c,0x0a,0x0a,0x09,0x08,0x06,0x08,0x06,0x06,0x05,0x08,0x07,0x06,0x05,0x09,0x07,0x07,0x06,0x0b,0x09,0x06,0x06,0x08,0x08,0x09,0x05,0x02,0x05,0x08,0x05, +0x0b,0x0b,0x03,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x04,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x07,0x08,0x03,0x02,0x03,0x02,0x08,0x06,0x08,0x07,0x06,0x05,0x06,0x05,0x07,0x06,0x05,0x05,0x0c,0x09,0x0d,0x0a,0x0b,0x09,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x07,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x03,0x05, +0x03,0x08,0x06,0x09,0x07,0x0f,0x0b,0x06,0x06,0x08,0x08,0x09,0x09,0x08,0x06,0x0b,0x09,0x06,0x04,0x06,0x05,0x07,0x05,0x0a,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x06,0x03,0x07,0x04,0x0b,0x07,0x04,0x06,0x07,0x05,0x08,0x06,0x04,0x04,0x06,0x06,0x06,0x05,0x03,0x08,0x07,0x04,0x04,0x07,0x05,0x08, +0x04,0x09,0x07,0x07,0x05,0x08,0x06,0x06,0x05,0x08,0x06,0x07,0x04,0x06,0x05,0x08,0x05,0x06,0x09,0x05,0x06,0x0a,0x03,0x0d,0x0a,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x07,0x08,0x0a,0x08,0x0a,0x03,0x05,0x07,0x09,0x0b,0x08,0x0b,0x07,0x07,0x09,0x08,0x0d,0x0a,0x06,0x0a,0x04,0x0a,0x04,0x06,0x06,0x06,0x06,0x09,0x09, +0x09,0x09,0x0b,0x06,0x06,0x0b,0x08,0x06,0x06,0x08,0x07,0x04,0x04,0x07,0x06,0x06,0x06,0x06,0x08,0x04,0x04,0x09,0x08,0x04,0x04,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x06,0x04,0x06,0x06, +0x08,0x07,0x06,0x0a,0x07,0x08,0x08,0x09,0x09,0x06,0x05,0x0b,0x09,0x0b,0x09,0x08,0x06,0x03,0x03,0x06,0x07,0x04,0x07,0x06,0x06,0x05,0x08,0x09,0x04,0x06,0x05,0x02,0x04,0x06,0x06,0x02,0x02,0x02,0x02,0x04,0x04,0x04,0x05,0x10,0x16,0x04,0x05,0x01,0x03,0x04,0x05,0x03,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x05,0x05,0x05,0x05,0x05,0x0f,0x06,0x08,0x0a,0x0a,0x07,0x05,0x07,0x08,0x08,0x05,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x08,0x07,0x06,0x06,0x08,0x07,0x09,0x05,0x06,0x07,0x04,0x06,0x04,0x04,0x03,0x0a,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x03,0x06,0x05,0x07,0x05,0x07,0x03,0x06,0x07,0x09,0x09,0x07, +0x06,0x06,0x06,0x06,0x05,0x06,0x05,0x05,0x03,0x04,0x03,0x02,0x04,0x06,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x13,0x0b,0x0a,0x0c,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0a,0x04,0x04,0x0a,0x03,0x06, +0x06,0x0f,0x0b,0x0b,0x0f,0x0a,0x06,0x06,0x0a,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x08,0x07,0x08,0x06,0x0e,0x0b,0x08,0x06,0x08,0x06,0x0f,0x0b,0x08,0x06,0x04,0x03,0x07,0x00,0x08,0x06,0x04,0x03,0x02,0x05,0x04,0x04,0x03,0x02,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x06,0x06,0x06,0x0b,0x09,0x09,0x09,0x09, +0x0a,0x07,0x08,0x07,0x04,0x0a,0x0c,0x05,0x0d,0x06,0x09,0x0a,0x0a,0x0a,0x05,0x08,0x0b,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x06,0x06,0x09,0x06,0x06,0x0a,0x04,0x04,0x0a,0x04,0x04,0x0a,0x05,0x05,0x00,0x05,0x09,0x04,0x04,0x0b,0x06,0x06,0x08,0x06,0x06,0x07,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x11,0x11,0x0a,0x00,0x00,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x0a,0x07,0x07,0x09,0x0b,0x07,0x07,0x0c,0x07,0x07,0x0a,0x07,0x07,0x09,0x07,0x08,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x07,0x08,0x07,0x09,0x07,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x07,0x07,0x08,0x05,0x06,0x07,0x09,0x09,0x06,0x00,0x00,0x0c,0x18,0x08,0x00,0x01,0x03,0x03,0x05,0x07,0x06,0x0a,0x0a,0x03,0x04,0x04,0x05,0x08,0x03,0x05,0x03,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x08,0x08,0x08,0x05,0x0b,0x08,0x07, +0x08,0x08,0x06,0x06,0x08,0x09,0x03,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x07,0x06,0x06,0x08,0x07,0x0b,0x07,0x07,0x07,0x04,0x05,0x04,0x08,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x04,0x07,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x07,0x07,0x07,0x04,0x05,0x04,0x07,0x06,0x09,0x06,0x06,0x05,0x04,0x03,0x04,0x08,0x08,0x08,0x08,0x06, +0x09,0x09,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x06,0x06,0x05,0x05,0x06,0x07,0x05,0x0b,0x0b,0x09,0x03,0x05,0x08,0x0a,0x09,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x07,0x09,0x06,0x05,0x05,0x09,0x0a,0x07,0x05,0x03,0x03,0x08, +0x08,0x06,0x08,0x08,0x06,0x06,0x09,0x08,0x08,0x09,0x0b,0x0b,0x06,0x0c,0x05,0x05,0x03,0x03,0x08,0x07,0x06,0x07,0x02,0x06,0x04,0x04,0x07,0x07,0x05,0x03,0x03,0x05,0x0f,0x08,0x06,0x08,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x09,0x09,0x08,0x08,0x08,0x03,0x04,0x04,0x04,0x04,0x02,0x03,0x02,0x04,0x02,0x04,0x06,0x03,0x06,0x05,0x07, +0x05,0x03,0x08,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x06,0x08,0x07,0x03,0x06,0x05,0x08,0x06,0x08,0x06,0x07,0x05,0x03,0x08,0x06,0x08,0x06,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x06,0x04,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x04,0x06,0x05,0x08,0x07, +0x08,0x07,0x07,0x05,0x07,0x05,0x06,0x09,0x09,0x07,0x07,0x05,0x07,0x06,0x09,0x05,0x06,0x05,0x0d,0x07,0x06,0x07,0x03,0x05,0x0a,0x04,0x07,0x04,0x04,0x07,0x04,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x07, +0x06,0x06,0x06,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x06,0x05,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x0b,0x09,0x07,0x06,0x03,0x08,0x06,0x0a,0x0a,0x09,0x07,0x03,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x07,0x06,0x03,0x05,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x03,0x03,0x03,0x08,0x07,0x09,0x05,0x0a, +0x08,0x0a,0x03,0x08,0x07,0x06,0x07,0x09,0x03,0x07,0x08,0x0b,0x09,0x06,0x09,0x09,0x07,0x06,0x06,0x07,0x07,0x09,0x09,0x03,0x07,0x07,0x05,0x07,0x03,0x07,0x07,0x06,0x05,0x07,0x07,0x03,0x06,0x06,0x07,0x06,0x05,0x07,0x07,0x06,0x07,0x06,0x09,0x0b,0x03,0x07,0x07,0x07,0x0b,0x06,0x08,0x06,0x07,0x06,0x03,0x0c,0x0c,0x09,0x07,0x07, +0x09,0x08,0x07,0x07,0x06,0x08,0x06,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x07,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x0b,0x0c,0x08,0x09,0x07,0x07,0x0c,0x07,0x06,0x07,0x06,0x05,0x06,0x06,0x09,0x05,0x07,0x07,0x06,0x07,0x09,0x07,0x07,0x07,0x07,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x07,0x09,0x06,0x06,0x0a, +0x06,0x06,0x07,0x05,0x06,0x05,0x03,0x09,0x0a,0x07,0x06,0x06,0x07,0x06,0x05,0x0c,0x0d,0x08,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x09,0x07,0x08,0x07,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08, +0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x04,0x06,0x06,0x09,0x07,0x03,0x04,0x03,0x03,0x06,0x05,0x0c,0x09,0x07,0x06,0x07,0x06,0x09,0x07,0x07,0x06,0x07,0x06,0x08,0x06,0x08,0x07,0x08,0x07,0x09,0x06,0x09,0x07,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x06,0x07, +0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x07,0x06,0x07,0x06,0x07,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x04,0x06,0x04,0x06,0x04,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x06,0x07,0x06,0x0b,0x09,0x0b, +0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x05,0x07,0x05,0x07,0x05,0x07,0x04,0x09,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x05,0x05,0x07,0x07,0x03,0x03,0x07, +0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08, +0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x07,0x07,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x08,0x09,0x07,0x07,0x07,0x06,0x07,0x06,0x08,0x07,0x0a,0x03,0x03,0x07,0x06,0x03,0x06,0x0b,0x09,0x07,0x09,0x0c,0x09,0x07,0x07,0x07,0x06,0x05,0x06,0x04,0x04,0x06,0x04,0x06,0x09,0x09,0x07,0x06,0x07,0x05,0x07,0x07,0x05,0x05,0x06, +0x06,0x05,0x05,0x07,0x03,0x05,0x05,0x03,0x0f,0x0e,0x0c,0x0a,0x09,0x06,0x0d,0x0c,0x0a,0x08,0x06,0x03,0x03,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x06,0x08,0x06,0x08,0x06,0x0a,0x0a,0x08,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x05,0x03,0x0f,0x0e,0x0c,0x08,0x07,0x0c,0x08,0x09,0x07,0x08,0x06, +0x08,0x06,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x08,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x09,0x07,0x07,0x07,0x05,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x07,0x05,0x05,0x06,0x07,0x03,0x07, +0x07,0x06,0x06,0x05,0x07,0x07,0x07,0x03,0x03,0x04,0x03,0x05,0x03,0x07,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x09,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x04,0x04,0x07,0x07,0x07,0x06,0x09,0x06,0x05,0x05,0x06,0x05,0x05,0x04,0x04,0x04,0x06,0x07,0x06,0x07,0x06,0x07,0x03,0x06,0x05,0x07, +0x04,0x04,0x0b,0x0b,0x0c,0x07,0x06,0x09,0x0a,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x07,0x07,0x05,0x06,0x05,0x07,0x06,0x07,0x06,0x0b,0x0a,0x07,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x07,0x05,0x07,0x07,0x06,0x03,0x09,0x06,0x06,0x0a,0x08,0x08,0x07,0x0b,0x09,0x08,0x06,0x0a,0x08,0x09,0x07, +0x0b,0x09,0x06,0x05,0x09,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x10,0x0d,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x07,0x05,0x06,0x05,0x05,0x00,0x00,0x0c,0x0b,0x07,0x06,0x07,0x07,0x07,0x06,0x06,0x05,0x07,0x06,0x09,0x07,0x0a,0x08,0x0c,0x0a,0x09,0x07,0x07,0x06,0x06,0x05,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0a,0x08,0x03,0x0b,0x09,0x07,0x06, +0x09,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x0a,0x0a,0x06,0x06,0x09,0x06,0x09,0x06,0x0b,0x09,0x07,0x05,0x06,0x05,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x07,0x09,0x09,0x07,0x07,0x0a,0x0a,0x0a,0x09,0x07,0x06,0x0b,0x0a,0x0c,0x0a,0x09,0x06,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x04, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x07,0x04,0x04,0x02,0x03,0x03,0x03,0x03,0x05,0x03,0x03,0x05,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x04,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x03,0x03,0x05,0x05,0x05,0x05, +0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05, +0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07, +0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04,0x07,0x07,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x06,0x08,0x0a,0x06, +0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x06,0x07,0x07,0x07,0x0b,0x06,0x07,0x07,0x06,0x05,0x05,0x05,0x06,0x07,0x09,0x07,0x06,0x09,0x05,0x05,0x05,0x06,0x05,0x06,0x07,0x06,0x07,0x07,0x04,0x06,0x04,0x04,0x05,0x04,0x04,0x05,0x05,0x02,0x03,0x04,0x03,0x06,0x05,0x05,0x05,0x05,0x04,0x04,0x03,0x05,0x06,0x04, +0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x02,0x04,0x06,0x04,0x04,0x03,0x04,0x04,0x04,0x02,0x04,0x04,0x06,0x03,0x04,0x04,0x04,0x04,0x05,0x04,0x02,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x07,0x02,0x04,0x07,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x06,0x07,0x06,0x05,0x0e,0x05,0x07,0x0b,0x0b,0x0b,0x08,0x08,0x08, +0x06,0x06,0x06,0x05,0x05,0x06,0x02,0x00,0x00,0x00,0x00,0x07,0x07,0x08,0x07,0x06,0x05,0x07,0x07,0x04,0x0a,0x07,0x07,0x04,0x04,0x06,0x04,0x05,0x07,0x06,0x07,0x0b,0x08,0x04,0x03,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x06,0x03,0x0b,0x07,0x07,0x04,0x05,0x05,0x06,0x06,0x05,0x06,0x07,0x07,0x06,0x05,0x05,0x09,0x03,0x06,0x03,0x07, +0x05,0x04,0x03,0x03,0x04,0x03,0x02,0x02,0x04,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x04,0x04,0x04,0x03,0x02,0x02,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x06,0x05,0x06,0x08,0x06,0x0a,0x08,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x05,0x03,0x06,0x07,0x05,0x06,0x06,0x07,0x07,0x06,0x0c,0x07,0x07,0x07,0x07, +0x07,0x07,0x06,0x06,0x08,0x06,0x06,0x06,0x04,0x07,0x04,0x09,0x08,0x06,0x04,0x0a,0x06,0x0a,0x03,0x04,0x07,0x07,0x08,0x08,0x08,0x07,0x07,0x07,0x0a,0x03,0x07,0x03,0x06,0x05,0x03,0x03,0x06,0x03,0x09,0x03,0x0b,0x06,0x0b,0x0b,0x07,0x07,0x07,0x06,0x06,0x05,0x05,0x0e,0x0e,0x10,0x10,0x0a,0x0a,0x06,0x06,0x02,0x0c,0x09,0x0a,0x08, +0x07,0x08,0x06,0x06,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x06,0x06,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x05,0x0b,0x06,0x0b,0x06,0x09,0x0a,0x04,0x06,0x06,0x05,0x03,0x06,0x07,0x06,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x0b,0x04,0x06,0x05,0x08,0x06,0x04,0x06,0x06,0x06,0x0b, +0x04,0x0b,0x04,0x03,0x07,0x05,0x0c,0x06,0x06,0x08,0x08,0x0c,0x06,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x09,0x08,0x00,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x09,0x0a,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x06,0x07,0x07,0x07,0x0c,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0c,0x06,0x06,0x09,0x09,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b, +0x06,0x0b,0x06,0x0b,0x06,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x08,0x04,0x07,0x08,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0b,0x09,0x0a,0x04,0x06,0x09,0x0a,0x09,0x0a,0x00,0x00,0x00,0x00,0x00,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x07,0x00,0x00,0x00,0x0e,0x0a, +0x10,0x0c,0x06,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x0b,0x0b,0x04,0x07,0x07,0x07,0x0f,0x0a,0x06,0x12,0x0d,0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x05,0x05,0x09,0x08,0x08,0x06,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x0f,0x12,0x00, +0x00,0x00,0x00,0x00,0x07,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x08,0x07,0x06,0x06,0x05,0x0e,0x0a,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x0c,0x06,0x06,0x0c,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06,0x0b,0x06,0x06, +0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x08,0x04,0x04,0x05,0x05,0x0e,0x0a,0x08,0x07,0x07,0x00,0x06,0x06,0x06,0x04,0x07,0x08,0x08,0x06,0x06,0x04,0x03,0x09,0x07,0x07,0x04,0x07,0x06,0x06,0x06,0x06,0x03,0x06,0x05,0x07,0x06,0x07,0x06,0x07,0x05,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x05, +0x06,0x06,0x03,0x06,0x07,0x07,0x06,0x04,0x09,0x07,0x08,0x06,0x07,0x06,0x07,0x06,0x05,0x08,0x04,0x05,0x05,0x06,0x07,0x07,0x06,0x0c,0x06,0x0c,0x04,0x03,0x02,0x06,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x05,0x09,0x07,0x0b,0x09,0x07,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,0x0a,0x06,0x0a,0x08,0x08,0x08,0x08,0x09,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x09,0x07,0x0d,0x0a,0x06,0x06,0x03,0x03,0x03,0x04,0x03,0x07,0x03,0x03,0x0a,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x02,0x00,0x00,0x03, +0x00,0x00,0x08,0x07,0x05,0x06,0x08,0x03,0x04,0x08,0x08,0x03,0x07,0x07,0x07,0x08,0x08,0x03,0x05,0x08,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x06,0x03,0x05,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x06,0x08,0x07,0x07,0x08,0x07,0x09,0x07,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x07,0x05,0x06,0x08,0x04,0x04,0x08,0x04, +0x07,0x07,0x07,0x08,0x05,0x08,0x07,0x08,0x07,0x08,0x07,0x09,0x09,0x03,0x07,0x07,0x08,0x08,0x0e,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x09,0x08,0x08,0x08, +0x07,0x08,0x09,0x09,0x06,0x08,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x08,0x0a,0x06,0x07,0x07,0x0b,0x06,0x06,0x09,0x0b,0x07,0x06,0x0d,0x07,0x07,0x09,0x06,0x06,0x09,0x07,0x09,0x0a,0x0b,0x06,0x09,0x06,0x08,0x07,0x07,0x07,0x08,0x06, +0x07,0x09,0x06,0x07,0x08,0x06,0x06,0x07,0x0b,0x06,0x06,0x07,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x07,0x0b,0x07,0x0b,0x06,0x07,0x0b,0x08,0x07,0x0b,0x09,0x09,0x0b,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08, +0x07,0x09,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x07,0x08,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x0a,0x08,0x09,0x09,0x01,0x01,0x02,0x02,0x02,0x03,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x04,0x0a,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x03,0x07,0x06,0x07,0x05,0x0a,0x07,0x07,0x07,0x07, +0x0a,0x07,0x07,0x05,0x0a,0x07,0x07,0x08,0x08,0x03,0x03,0x0e,0x0d,0x0d,0x0e,0x11,0x06,0x06,0x03,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x09,0x08,0x07,0x06,0x07,0x06,0x05,0x05,0x07,0x06,0x0a,0x06,0x06,0x06,0x08,0x09,0x05,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x03,0x03,0x03,0x03,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, +0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x08,0x08,0x06,0x06,0x05,0x06,0x05,0x06,0x07,0x07,0x03,0x06,0x06,0x09,0x08,0x05,0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x08,0x06,0x05,0x07,0x03,0x07,0x06,0x08,0x03,0x06,0x05,0x07,0x05,0x06,0x05,0x03,0x03,0x04,0x0a,0x0a,0x07,0x06,0x06,0x07,0x06,0x06,0x06,0x05,0x07,0x05,0x09,0x05,0x08,0x08,0x06,0x07,0x09,0x07, +0x07,0x07,0x06,0x06,0x05,0x06,0x08,0x06,0x08,0x07,0x0a,0x0a,0x07,0x08,0x06,0x06,0x0a,0x06,0x05,0x07,0x07,0x07,0x0b,0x0b,0x08,0x06,0x07,0x05,0x07,0x07,0x07,0x08,0x06,0x06,0x08,0x07,0x07,0x04,0x08,0x07,0x07,0x06,0x06,0x0b,0x09,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x08,0x04,0x0b,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x03,0x09, +0x08,0x08,0x06,0x08,0x03,0x03,0x05,0x05,0x03,0x03,0x07,0x05,0x03,0x09,0x08,0x03,0x03,0x03,0x05,0x05,0x05,0x03,0x03,0x03,0x05,0x08,0x06,0x04,0x07,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x05,0x06,0x05,0x03,0x03,0x05,0x06,0x04,0x08,0x08,0x08,0x0b,0x09,0x0b,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x09,0x0a,0x04,0x04,0x06,0x04, +0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x06,0x0b,0x0b,0x06,0x06,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x0c,0x09,0x0a,0x06,0x07,0x07,0x08,0x04,0x08,0x09,0x06,0x06,0x04,0x04,0x04,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0b,0x04,0x09,0x06,0x06,0x03,0x06,0x06,0x06,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x10,0x0c,0x10,0x0c,0x0a,0x0a,0x0a,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x06,0x06,0x09,0x06,0x06,0x0b,0x06,0x0d,0x0c,0x0b,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x08,0x04,0x04,0x08,0x04,0x08,0x04,0x08,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04, +0x06,0x04,0x04,0x04,0x04,0x00,0x0e,0x0a,0x10,0x0c,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x0b,0x04,0x07,0x07,0x06,0x06,0x05,0x0e,0x0a,0x0c,0x0c,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0a,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x05,0x05,0x07,0x07, +0x07,0x07,0x04,0x04,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x09,0x0a,0x04,0x04,0x07,0x07,0x07,0x07,0x0b,0x04,0x0b,0x04,0x07,0x08,0x07,0x07,0x0e,0x0e,0x0a,0x0a,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0a,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x08,0x03,0x03,0x06,0x05,0x07,0x08,0x07,0x06,0x07,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x06,0x07,0x07,0x07,0x08,0x07,0x07,0x08,0x06,0x08,0x09,0x08,0x09, +0x0a,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x06,0x06,0x09,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x07,0x09,0x0a,0x09,0x07,0x0a,0x09,0x08,0x08,0x07,0x08,0x09,0x0a,0x08,0x07,0x08,0x07, +0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x09,0x0a,0x09,0x09,0x07,0x09,0x08,0x08,0x0a,0x09,0x09,0x0b,0x07,0x06,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x09,0x0a, +0x08,0x08,0x08,0x09,0x08,0x08,0x06,0x06,0x07,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x05,0x07,0x06,0x07,0x09,0x07,0x0a,0x06,0x07,0x07,0x09,0x04,0x09,0x08,0x09,0x08,0x07,0x09,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0b,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x06,0x05,0x06,0x06,0x07,0x06,0x0a,0x0a,0x0a,0x05,0x0c,0x06,0x0a,0x0a,0x0a,0x0a,0x07,0x06,0x06,0x09,0x07,0x09,0x08,0x06,0x05,0x05,0x0c,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x10,0x0a,0x0a,0x05, +0x03,0x05,0x03,0x06,0x03,0x03,0x03,0x06,0x07,0x07,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0a,0x03,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x08,0x0e,0x0e,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x06,0x07,0x06,0x06,0x05,0x04,0x04,0x08,0x07,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0b,0x0a,0x0a,0x09,0x0c,0x0a,0x0b,0x09,0x08,0x06,0x09,0x07,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x08,0x0b,0x08,0x0d,0x0a,0x09,0x07,0x09,0x07,0x0f,0x0b,0x0a,0x00,0x0c,0x0c,0x0c,0x06,0x00,0x00, +0x07,0x06,0x08,0x07,0x06,0x05,0x0d,0x0b,0x0b,0x0a,0x09,0x07,0x08,0x07,0x06,0x05,0x09,0x07,0x06,0x05,0x0a,0x08,0x08,0x07,0x0c,0x0a,0x06,0x07,0x09,0x09,0x0a,0x05,0x02,0x06,0x08,0x05,0x0c,0x0c,0x03,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x06,0x08,0x09,0x03,0x03,0x03, +0x03,0x09,0x07,0x09,0x08,0x07,0x06,0x06,0x06,0x07,0x07,0x05,0x05,0x0e,0x0a,0x0e,0x0b,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x06,0x03,0x09,0x07,0x0a,0x08,0x10,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x09,0x07,0x0c,0x09,0x07,0x05,0x07,0x06,0x07,0x06,0x0b,0x09,0x07,0x06,0x07, +0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x06,0x04,0x06,0x06,0x04,0x08,0x04,0x0b,0x08,0x04,0x07,0x07,0x06,0x09,0x07,0x05,0x04,0x07,0x07,0x07,0x06,0x03,0x09,0x07,0x04,0x04,0x07,0x06,0x09,0x05,0x09,0x07,0x07,0x06,0x08,0x07,0x07,0x06,0x09,0x07,0x07,0x04,0x06,0x05,0x09,0x05,0x06,0x0a,0x06,0x07,0x0b,0x03,0x0e,0x0b,0x0b,0x0e,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x08,0x08,0x0b,0x08,0x0b,0x03,0x06,0x07,0x0b,0x0c,0x08,0x0c,0x07,0x07,0x0a,0x08,0x0e,0x0b,0x06,0x0b,0x04,0x0b,0x04,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0c,0x06,0x06,0x0c,0x09,0x06,0x06,0x09,0x08,0x04,0x04,0x08,0x07,0x07,0x07,0x07,0x09,0x04,0x04,0x0a,0x09,0x04,0x04,0x0a,0x05,0x05, +0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x06,0x05,0x07,0x06,0x09,0x07,0x07,0x0b,0x08,0x09,0x09,0x0a,0x0a,0x07,0x06,0x0c,0x0a,0x0d,0x0a,0x08,0x07,0x04,0x04,0x07,0x08,0x05,0x07,0x06,0x07,0x06,0x09,0x0a, +0x05,0x07,0x05,0x03,0x04,0x06,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x12,0x18,0x04,0x05,0x02,0x03,0x05,0x05,0x04,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x10,0x06,0x09,0x0b,0x0b,0x08,0x06,0x07,0x09,0x09,0x06,0x04,0x08,0x06,0x08,0x07,0x08,0x06,0x07,0x09,0x07,0x07,0x06, +0x09,0x07,0x0a,0x05,0x06,0x08,0x04,0x07,0x04,0x04,0x03,0x0b,0x07,0x07,0x06,0x06,0x07,0x0b,0x0b,0x0b,0x0c,0x0c,0x07,0x06,0x03,0x06,0x06,0x07,0x05,0x08,0x03,0x07,0x07,0x0a,0x0a,0x07,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x04,0x07,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x00,0x03,0x03,0x03,0x03,0x03,0x14,0x0c,0x0a,0x0d,0x03,0x03,0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x0b,0x04,0x04,0x0b,0x03,0x06,0x06,0x10,0x0c,0x0c,0x10,0x0b,0x06,0x06,0x0b,0x06,0x06,0x05,0x05,0x00,0x00,0x04,0x09,0x07,0x09,0x07,0x0f,0x0c,0x08,0x07,0x08,0x07,0x10,0x0c, +0x09,0x07,0x05,0x04,0x07,0x00,0x08,0x06,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x02,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x06,0x05,0x07,0x07,0x07,0x0c,0x0b,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x07,0x05,0x0b,0x0e,0x05,0x0e,0x06,0x0a,0x0b,0x0b,0x0b,0x05,0x09,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x07,0x07,0x07,0x0a,0x06,0x06,0x0b,0x04,0x04,0x0b,0x04,0x04,0x0b,0x06,0x06,0x00,0x05,0x0a,0x04,0x04,0x0c,0x06,0x06,0x09,0x06,0x06,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x12,0x12,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x07,0x08,0x08,0x0b,0x08,0x08,0x0a,0x0c,0x08,0x08,0x0d,0x08,0x08,0x0b,0x08,0x08,0x09,0x08,0x09,0x0a,0x0b,0x08,0x09,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x07,0x08,0x09,0x07,0x08,0x07,0x09,0x08,0x08,0x08,0x08,0x05,0x06,0x08,0x09,0x09,0x07,0x00,0x00,0x0d,0x1a,0x08,0x00, +0x01,0x04,0x04,0x05,0x08,0x07,0x0b,0x0a,0x03,0x04,0x04,0x05,0x09,0x03,0x05,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x09,0x09,0x09,0x06,0x0c,0x08,0x07,0x08,0x09,0x07,0x06,0x09,0x09,0x03,0x05,0x08,0x06,0x0c,0x0a,0x0a,0x07,0x0a,0x08,0x07,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x04,0x05,0x04,0x09, +0x05,0x03,0x07,0x08,0x06,0x08,0x07,0x04,0x08,0x07,0x03,0x03,0x06,0x03,0x0b,0x07,0x08,0x08,0x08,0x05,0x06,0x04,0x07,0x06,0x09,0x06,0x06,0x06,0x04,0x03,0x04,0x09,0x08,0x08,0x08,0x07,0x0a,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07, +0x05,0x05,0x07,0x07,0x06,0x05,0x06,0x07,0x05,0x0c,0x0c,0x0a,0x04,0x05,0x09,0x0b,0x0a,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x08,0x0a,0x07,0x05,0x06,0x0a,0x0b,0x08,0x06,0x04,0x04,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x09,0x08,0x08,0x0a,0x0c,0x0c,0x07,0x0d,0x05,0x05,0x03,0x03,0x09,0x08,0x06,0x07,0x02,0x07,0x04,0x04,0x07,0x07, +0x05,0x03,0x03,0x05,0x10,0x08,0x07,0x08,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x03,0x05,0x04,0x04,0x04,0x03,0x04,0x03,0x04,0x02,0x05,0x06,0x03,0x07,0x06,0x07,0x06,0x03,0x09,0x07,0x07,0x06,0x07,0x08,0x09,0x09,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x06,0x09,0x08,0x03,0x07,0x06,0x08,0x06,0x08,0x06,0x08,0x05, +0x03,0x08,0x07,0x08,0x07,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x06,0x03,0x06,0x04,0x06,0x04,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x08,0x05,0x08,0x05,0x07,0x06,0x07,0x04,0x07,0x06,0x09,0x07,0x09,0x07,0x07,0x06,0x07,0x06,0x06,0x0a,0x09,0x08,0x08,0x06,0x07,0x06,0x09,0x05,0x06,0x05,0x0e,0x08,0x06,0x08,0x03,0x05,0x0a,0x04,0x08,0x05, +0x05,0x08,0x05,0x08,0x07,0x08,0x06,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x03,0x08,0x06,0x06,0x06,0x03,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x08,0x05,0x07,0x06,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0c,0x09, +0x07,0x06,0x03,0x08,0x07,0x0b,0x0b,0x0a,0x08,0x03,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x07,0x06,0x03,0x05,0x07,0x08,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x03,0x04,0x04,0x08,0x07,0x0a,0x05,0x0a,0x09,0x0b,0x03,0x08,0x07,0x07,0x07,0x09,0x03,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x09,0x07,0x07,0x07,0x07,0x08,0x0b,0x0a,0x03,0x07,0x08,0x06,0x07, +0x03,0x07,0x07,0x07,0x06,0x07,0x08,0x03,0x07,0x06,0x07,0x07,0x06,0x08,0x08,0x06,0x07,0x07,0x09,0x0b,0x03,0x07,0x08,0x07,0x0b,0x07,0x09,0x06,0x08,0x07,0x03,0x0d,0x0d,0x09,0x08,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x07,0x0b,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x09,0x0a,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x09,0x0d,0x0e,0x09, +0x0a,0x07,0x08,0x0d,0x08,0x07,0x08,0x07,0x05,0x07,0x07,0x09,0x06,0x07,0x07,0x06,0x07,0x09,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x09,0x06,0x07,0x07,0x0b,0x0b,0x08,0x09,0x07,0x06,0x0b,0x07,0x07,0x07,0x05,0x06,0x06,0x03,0x0b,0x0b,0x07,0x06,0x06,0x07,0x06,0x05,0x0d,0x0f,0x08,0x05,0x05,0x05,0x05,0x03,0x07,0x06,0x07,0x0a,0x08, +0x09,0x08,0x04,0x04,0x03,0x03,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03, +0x03,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x07,0x0a,0x07,0x03,0x05,0x03,0x03,0x07,0x05,0x0c,0x0a,0x08,0x07,0x08,0x06,0x0a, +0x07,0x07,0x07,0x07,0x07,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x04,0x04,0x04,0x04,0x05,0x05,0x06,0x06,0x06,0x06,0x03,0x03,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x07,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x06,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06, +0x04,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x03,0x03,0x03,0x03,0x08,0x06,0x08,0x06,0x08,0x06,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x08,0x07,0x08,0x08,0x05,0x08,0x05,0x08,0x05,0x08, +0x05,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x07,0x04,0x07,0x04,0x07,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x06,0x08,0x06,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x07,0x04,0x09,0x06,0x07,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x06,0x06,0x07,0x07,0x03,0x03,0x08,0x08,0x07,0x07,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05, +0x05,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x06,0x09,0x0a,0x07,0x08,0x08,0x07,0x07,0x06,0x09, +0x08,0x0b,0x04,0x04,0x08,0x06,0x03,0x06,0x0c,0x0a,0x07,0x0a,0x0d,0x0a,0x08,0x08,0x07,0x07,0x06,0x07,0x04,0x04,0x07,0x04,0x07,0x0a,0x09,0x07,0x07,0x07,0x06,0x08,0x08,0x06,0x05,0x07,0x07,0x05,0x05,0x07,0x03,0x05,0x06,0x04,0x10,0x0f,0x0d,0x0b,0x09,0x07,0x0e,0x0d,0x0b,0x08,0x07,0x03,0x03,0x0a,0x08,0x09,0x07,0x09,0x07,0x09, +0x07,0x09,0x07,0x09,0x07,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x09,0x08,0x09,0x08,0x08,0x06,0x0a,0x08,0x0a,0x08,0x08,0x06,0x03,0x10,0x0f,0x0d,0x09,0x08,0x0d,0x09,0x0a,0x07,0x08,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x0a,0x08,0x0a,0x08,0x07,0x05,0x08,0x05,0x09,0x07,0x09,0x07,0x07,0x06,0x09,0x07,0x0a,0x08, +0x07,0x07,0x06,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x07,0x06,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x08,0x05,0x05,0x07,0x07,0x04,0x08,0x08,0x07,0x06,0x06,0x07,0x07,0x07,0x03,0x04,0x04,0x04,0x05,0x03,0x08,0x0b,0x0b,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x08,0x05,0x05,0x05,0x05, +0x05,0x04,0x04,0x06,0x06,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x08,0x08,0x07,0x06,0x09,0x06,0x05,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x08,0x06,0x07,0x07,0x07,0x03,0x06,0x05,0x08,0x05,0x05,0x0c,0x0c,0x0d,0x08,0x06,0x09,0x0a,0x08,0x07,0x06,0x06,0x07,0x08,0x07,0x09,0x07,0x08,0x0a,0x07,0x09,0x08,0x08,0x06,0x06,0x06,0x08, +0x07,0x08,0x06,0x0c,0x0b,0x08,0x07,0x08,0x07,0x08,0x06,0x08,0x06,0x09,0x08,0x07,0x05,0x07,0x08,0x06,0x03,0x0a,0x06,0x06,0x0b,0x09,0x08,0x08,0x0c,0x09,0x09,0x06,0x0b,0x09,0x09,0x07,0x0c,0x0a,0x07,0x06,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x08,0x11,0x0f,0x0b,0x08,0x0f,0x0c,0x0b,0x09,0x08,0x06,0x07,0x05,0x05,0x00,0x00,0x0d, +0x0c,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x06,0x08,0x06,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x07,0x08,0x06,0x07,0x05,0x0b,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x03,0x0b,0x09,0x08,0x07,0x09,0x08,0x09,0x07,0x08,0x07,0x08,0x07,0x0b,0x0b,0x07,0x07,0x09,0x07,0x09,0x07,0x0b,0x09,0x07,0x06,0x07,0x06,0x0a,0x07,0x0a,0x07,0x0a,0x08, +0x0a,0x08,0x08,0x06,0x07,0x06,0x07,0x06,0x07,0x06,0x09,0x07,0x0a,0x09,0x07,0x08,0x0b,0x0b,0x0a,0x09,0x07,0x06,0x0c,0x0a,0x0d,0x0b,0x09,0x07,0x09,0x08,0x08,0x07,0x07,0x07,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x08,0x04,0x04,0x02,0x03,0x03,0x03,0x04,0x05,0x04,0x03,0x05,0x03, +0x03,0x03,0x04,0x04,0x03,0x03,0x08,0x08,0x08,0x08,0x04,0x04,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x02,0x03,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07, +0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07, +0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x08,0x04, +0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x06,0x09,0x0b,0x06,0x06,0x07,0x07,0x05,0x05,0x03,0x04,0x06,0x05,0x09,0x07,0x08,0x06,0x08,0x08,0x08,0x0c,0x07,0x08,0x08,0x06,0x06,0x06,0x05,0x07,0x07,0x09,0x07, +0x06,0x09,0x06,0x05,0x05,0x07,0x05,0x06,0x07,0x06,0x08,0x07,0x05,0x06,0x05,0x05,0x05,0x04,0x04,0x05,0x06,0x02,0x03,0x05,0x04,0x07,0x06,0x06,0x06,0x05,0x04,0x04,0x04,0x05,0x07,0x04,0x04,0x05,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x05,0x02,0x04,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x06,0x04,0x04,0x04,0x04,0x04, +0x05,0x04,0x02,0x03,0x04,0x04,0x04,0x04,0x05,0x05,0x04,0x08,0x02,0x05,0x07,0x0b,0x08,0x07,0x07,0x0b,0x08,0x0b,0x0a,0x07,0x08,0x07,0x06,0x0f,0x06,0x08,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x06,0x06,0x07,0x06,0x06,0x07,0x03,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x06,0x05,0x08,0x08,0x04,0x0b,0x07,0x08,0x05,0x04,0x06,0x04,0x06, +0x08,0x06,0x08,0x0c,0x08,0x04,0x03,0x08,0x07,0x08,0x08,0x08,0x04,0x08,0x06,0x03,0x0b,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x07,0x08,0x08,0x07,0x06,0x06,0x0a,0x03,0x06,0x03,0x07,0x06,0x05,0x03,0x03,0x04,0x03,0x02,0x02,0x05,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x06,0x06,0x04,0x04,0x05,0x04,0x05,0x03,0x02,0x03, +0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x00,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x04,0x07,0x07,0x07,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x04,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0x03,0x03,0x07,0x07,0x07,0x07, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x02,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x07,0x05,0x07,0x09,0x07,0x0b, +0x09,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x05,0x03,0x07,0x08,0x05,0x07,0x07,0x08,0x08,0x07,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x08,0x07,0x07,0x07,0x04,0x08,0x04,0x0a,0x09,0x07,0x04,0x0b,0x07,0x0b,0x03,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x0b,0x03,0x08,0x03,0x07,0x05,0x03,0x03,0x07,0x03,0x0a,0x03,0x0c,0x07,0x0c,0x0c,0x08,0x08,0x08,0x07,0x07,0x05,0x05,0x0f,0x0f,0x11,0x11,0x0b,0x0b,0x07,0x07,0x02,0x0d,0x0a,0x0b,0x09,0x08,0x09,0x07,0x07,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x03,0x08,0x00,0x08,0x08,0x08,0x04,0x07,0x07,0x0c,0x04,0x0c,0x04, +0x08,0x09,0x08,0x05,0x0c,0x07,0x0c,0x07,0x0a,0x0b,0x04,0x07,0x07,0x05,0x03,0x07,0x08,0x07,0x08,0x07,0x08,0x08,0x07,0x09,0x08,0x0c,0x04,0x07,0x05,0x09,0x07,0x04,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x03,0x08,0x05,0x0d,0x07,0x07,0x08,0x08,0x0d,0x07,0x00,0x00,0x00,0x08,0x00,0x08,0x08,0x08,0x08,0x0a,0x08,0x00,0x00,0x03,0x03, +0x03,0x03,0x03,0x03,0x05,0x05,0x07,0x07,0x0a,0x0b,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11, +0x0d,0x0b,0x07,0x08,0x08,0x08,0x0d,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0a,0x0a,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x09,0x04,0x07,0x09,0x08,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x0b,0x0c,0x0a,0x0b,0x04,0x07,0x0a,0x0b,0x0a,0x0b,0x00,0x00,0x00,0x00,0x00,0x0f,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x00,0x00,0x08,0x00,0x00,0x00,0x0f,0x0b,0x11,0x0d,0x07,0x08,0x08,0x08,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0c,0x0c,0x05,0x08, +0x08,0x08,0x10,0x0b,0x07,0x14,0x0e,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x05,0x05,0x0a,0x09,0x09,0x07,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x10,0x14,0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08, +0x08,0x08,0x09,0x08,0x07,0x07,0x05,0x0f,0x0b,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x0d,0x07,0x07,0x0d,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x0c,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x09,0x09,0x04,0x04,0x05,0x05,0x0f,0x0b,0x08,0x08,0x08,0x00,0x07,0x07,0x07,0x05,0x07,0x09, +0x08,0x07,0x07,0x05,0x03,0x0a,0x08,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x03,0x07,0x05,0x08,0x06,0x08,0x06,0x07,0x06,0x09,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x06,0x06,0x04,0x07,0x07,0x08,0x07,0x04,0x0a,0x08,0x08,0x07,0x08,0x06,0x07,0x07,0x05,0x09,0x05,0x05,0x05,0x06,0x08,0x08,0x07,0x0d,0x07,0x0d, +0x04,0x03,0x02,0x07,0x03,0x02,0x00,0x02,0x03,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x06,0x0a,0x08,0x0c,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09, +0x09,0x0a,0x08,0x0e,0x0b,0x06,0x06,0x04,0x04,0x04,0x05,0x03,0x07,0x03,0x03,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x08,0x07,0x06,0x06,0x09,0x03,0x04,0x09,0x09,0x03,0x07,0x07,0x07,0x09,0x09,0x03,0x05,0x09,0x08,0x08,0x08,0x07,0x08,0x09,0x07,0x0a, +0x09,0x07,0x07,0x07,0x03,0x05,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x09,0x07,0x07,0x09,0x07,0x09,0x07,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x06,0x06,0x09,0x04,0x05,0x09,0x04,0x07,0x07,0x07,0x09,0x05,0x09,0x08,0x08,0x08,0x09,0x07,0x0a,0x09,0x03,0x07,0x07,0x08,0x08,0x10,0x00,0x08,0x07,0x08,0x08,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x03,0x00,0x0a,0x08,0x09,0x09,0x07,0x09,0x0a,0x0a,0x06,0x08,0x0a,0x0a,0x09,0x0a,0x0b,0x0a,0x09,0x07,0x07,0x0a,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x08,0x09,0x09, +0x0a,0x08,0x08,0x08,0x09,0x0b,0x06,0x08,0x08,0x0b,0x07,0x07,0x0a,0x0c,0x08,0x07,0x0e,0x07,0x07,0x0a,0x07,0x07,0x0a,0x07,0x0a,0x0b,0x0b,0x07,0x0a,0x07,0x09,0x07,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x08,0x09,0x07,0x07,0x08,0x0c,0x07,0x07,0x08,0x08,0x06,0x04,0x07,0x07,0x07,0x07,0x07,0x0b,0x07,0x0c,0x06,0x07,0x0c,0x09,0x07, +0x0c,0x0a,0x0a,0x0b,0x07,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x08,0x07,0x07,0x0c,0x08,0x07,0x07,0x07,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x0a,0x09,0x08,0x07,0x0a,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x08,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0a,0x09,0x01, +0x01,0x02,0x03,0x02,0x04,0x05,0x0b,0x07,0x08,0x08,0x07,0x08,0x07,0x07,0x08,0x08,0x07,0x04,0x0b,0x08,0x07,0x07,0x07,0x08,0x07,0x08,0x03,0x08,0x07,0x07,0x05,0x0b,0x07,0x07,0x07,0x08,0x0b,0x07,0x08,0x05,0x0b,0x08,0x08,0x09,0x09,0x03,0x04,0x0f,0x0f,0x0f,0x0f,0x13,0x07,0x07,0x03,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x06,0x07,0x08,0x06,0x05,0x07,0x08,0x03,0x04,0x06,0x05,0x0a,0x08,0x08,0x06,0x08,0x06,0x05,0x06,0x08,0x07,0x0a, +0x07,0x06,0x06,0x09,0x0a,0x05,0x08,0x06,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x03,0x03,0x03,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x07,0x04,0x06,0x05,0x05, +0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x09,0x08,0x07,0x06,0x05,0x07,0x06,0x06,0x08,0x08,0x03,0x06,0x07,0x0a,0x08,0x06,0x08,0x08,0x06,0x06,0x06,0x06,0x08,0x07,0x09,0x08,0x07, +0x06,0x08,0x03,0x08,0x06,0x08,0x03,0x06,0x06,0x07,0x05,0x07,0x05,0x03,0x03,0x04,0x0b,0x0b,0x08,0x06,0x06,0x08,0x07,0x06,0x06,0x05,0x08,0x06,0x0a,0x06,0x08,0x08,0x06,0x07,0x0a,0x08,0x08,0x08,0x06,0x07,0x06,0x06,0x08,0x07,0x08,0x07,0x0a,0x0b,0x07,0x09,0x06,0x07,0x0b,0x06,0x05,0x08,0x08,0x08,0x0c,0x0c,0x09,0x07,0x07,0x05, +0x07,0x07,0x07,0x09,0x07,0x07,0x09,0x08,0x08,0x05,0x08,0x08,0x07,0x06,0x06,0x0c,0x0a,0x06,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x05,0x0c,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x03,0x0a,0x09,0x09,0x06,0x09,0x03,0x03,0x06,0x06,0x03,0x03,0x08,0x05,0x03,0x0a,0x09,0x04,0x03,0x03,0x06,0x05,0x05,0x03,0x03,0x03,0x05,0x09,0x06,0x04, +0x08,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x06,0x07,0x06,0x03,0x03,0x05,0x07,0x04,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x0a,0x0b,0x04,0x04,0x07,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x07, +0x07,0x0c,0x0c,0x07,0x07,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0d,0x0a,0x0b,0x07,0x08,0x08,0x09,0x04,0x09,0x0a,0x07,0x07,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0c,0x04,0x0a,0x07,0x07,0x03,0x07,0x07,0x07,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04, +0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x11,0x0d,0x11,0x0d,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x07,0x07,0x0a,0x07,0x07,0x0c,0x07,0x0e,0x0d,0x0c,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0c,0x07,0x0c,0x07,0x0c, +0x07,0x0c,0x07,0x0c,0x07,0x0c,0x07,0x09,0x09,0x09,0x09,0x09,0x04,0x09,0x09,0x04,0x04,0x09,0x04,0x09,0x04,0x09,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x00,0x0f,0x0b,0x11,0x0d,0x0c,0x07,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x0c,0x04,0x08,0x08,0x07,0x07, +0x05,0x0f,0x0b,0x0d,0x0d,0x0c,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x04,0x09,0x04,0x09,0x04,0x0f,0x0b,0x08,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x05,0x05,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x0a,0x0b,0x04,0x04,0x08,0x08,0x08,0x08,0x0c,0x04,0x0c,0x04,0x08,0x09, +0x08,0x08,0x0f,0x0f,0x0b,0x0b,0x0f,0x0f,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x03,0x03,0x04,0x03,0x00,0x00,0x00,0x0b,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x09,0x03,0x03, +0x07,0x05,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x08,0x08,0x08,0x09,0x08,0x07,0x08,0x07,0x09,0x0a,0x08,0x0a,0x0b,0x08,0x0a,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x08,0x08,0x09,0x07,0x08,0x07,0x08,0x08,0x07,0x07,0x0a, +0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x0b,0x0b,0x07,0x0a,0x0b,0x0a,0x08,0x0b,0x0a,0x09,0x09,0x08,0x08,0x0a,0x0a,0x09,0x08,0x09,0x08,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x09,0x0c,0x0c,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0b,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x09,0x09,0x0b,0x0a, +0x09,0x0c,0x07,0x07,0x07,0x07,0x08,0x08,0x09,0x0a,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x06,0x07,0x07,0x08,0x08,0x0a,0x0b,0x09,0x09,0x08,0x0a,0x08,0x09,0x07,0x06,0x08,0x07,0x06,0x06,0x07,0x07,0x06,0x06,0x08,0x06,0x07,0x06,0x07,0x0a,0x07,0x0b,0x07,0x07,0x07,0x0a, +0x04,0x0a,0x09,0x09,0x09,0x07,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x08,0x03,0x03,0x03,0x04,0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x0c,0x0c,0x0c,0x0c,0x06,0x0a,0x09,0x06,0x05, +0x06,0x07,0x07,0x06,0x0b,0x0b,0x0b,0x06,0x0d,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x06,0x06,0x0a,0x08,0x0a,0x09,0x07,0x06,0x05,0x0d,0x05,0x07,0x06,0x06,0x06,0x06,0x06,0x12,0x0b,0x0b,0x06,0x03,0x06,0x03,0x06,0x03,0x03,0x03,0x06,0x08,0x08,0x07,0x05,0x05,0x03,0x03,0x03,0x05,0x03,0x05,0x0b,0x03,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x09,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x08,0x06,0x07,0x06,0x05,0x05,0x09,0x07,0x09,0x06,0x0f,0x0c,0x08,0x07,0x0c,0x0a, +0x0b,0x0a,0x0d,0x0b,0x0c,0x0a,0x08,0x06,0x09,0x08,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x0a,0x08,0x0a,0x08,0x10,0x0c,0x0a,0x00,0x0d,0x0d,0x0d,0x06,0x00,0x00,0x08,0x07,0x09,0x07,0x07,0x06,0x0e,0x0c,0x0c,0x0b,0x09,0x08,0x09,0x08,0x07,0x05,0x0a,0x08,0x07,0x05,0x0b,0x09,0x09,0x07,0x0d,0x0b,0x07,0x07, +0x0a,0x0a,0x0b,0x06,0x03,0x06,0x09,0x06,0x0d,0x0d,0x03,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x09,0x09,0x04,0x03,0x04,0x03,0x09,0x07,0x0a,0x08,0x07,0x06,0x07,0x06,0x08,0x07,0x05,0x05,0x0f,0x0b,0x0f,0x0c,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x08,0x06,0x08, +0x06,0x08,0x06,0x08,0x06,0x07,0x04,0x06,0x03,0x0a,0x08,0x0b,0x09,0x11,0x0d,0x07,0x08,0x09,0x09,0x0b,0x0b,0x0a,0x08,0x0d,0x0a,0x07,0x05,0x07,0x06,0x08,0x06,0x0c,0x09,0x08,0x07,0x07,0x08,0x07,0x08,0x06,0x05,0x06,0x05,0x06,0x05,0x07,0x07,0x04,0x09,0x04,0x0c,0x09,0x05,0x08,0x08,0x06,0x0a,0x07,0x05,0x05,0x08,0x08,0x08,0x06, +0x03,0x0a,0x08,0x05,0x05,0x08,0x06,0x09,0x05,0x0a,0x08,0x08,0x06,0x09,0x08,0x08,0x06,0x0a,0x07,0x08,0x05,0x07,0x06,0x0a,0x06,0x07,0x0b,0x06,0x07,0x0c,0x03,0x0f,0x0c,0x0c,0x0f,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x07,0x06,0x08,0x09,0x0c,0x09,0x0c,0x03,0x06,0x08,0x0b,0x0d,0x09,0x0d,0x08,0x08,0x0a,0x09,0x0f,0x0c,0x07,0x0c,0x04, +0x0c,0x04,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0d,0x07,0x07,0x0d,0x0a,0x07,0x07,0x0a,0x09,0x04,0x04,0x09,0x08,0x08,0x08,0x08,0x0a,0x04,0x04,0x0b,0x0a,0x04,0x04,0x0b,0x05,0x05,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x14,0x07,0x05,0x07,0x07,0x0a,0x07,0x08,0x0b,0x09,0x0a,0x0a,0x0b,0x0b,0x08,0x06,0x0d,0x0a,0x0e,0x0b,0x09,0x08,0x04,0x04,0x08,0x08,0x05,0x08,0x07,0x08,0x06,0x0a,0x0a,0x05,0x08,0x06,0x03,0x05,0x07,0x07,0x03,0x03,0x02,0x03,0x05,0x05,0x05,0x06,0x13,0x1a,0x04,0x05,0x02,0x03,0x05,0x06,0x04,0x06,0x07,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x11,0x07,0x0a,0x0c,0x0c,0x08,0x06,0x07,0x09,0x0a,0x06,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x0a,0x08,0x08,0x07,0x0a,0x08,0x0b,0x06,0x07,0x08,0x04,0x08,0x04,0x05,0x03,0x0b,0x08,0x07,0x07,0x07,0x08,0x0c,0x0c,0x0c,0x0d,0x0d,0x07,0x07,0x04,0x07,0x06,0x08, +0x06,0x09,0x03,0x07,0x08,0x0b,0x0b,0x08,0x07,0x07,0x07,0x07,0x06,0x07,0x06,0x06,0x04,0x04,0x03,0x03,0x05,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x04,0x04,0x04,0x03,0x03,0x16,0x0d,0x0b,0x0e,0x04,0x04,0x04,0x05,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x00,0x0c,0x04,0x04,0x0c,0x03,0x07,0x07,0x11,0x0d,0x0d,0x11,0x0c,0x07,0x07,0x0c,0x07,0x07,0x05,0x05,0x00,0x00,0x05,0x0a,0x08,0x09,0x08,0x10,0x0d,0x09,0x07,0x09,0x07,0x11,0x0d,0x0a,0x08,0x05,0x04,0x08,0x00,0x09,0x07,0x04,0x04,0x02,0x06,0x04,0x04,0x03,0x03,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x07,0x06, +0x08,0x07,0x07,0x0d,0x0b,0x0a,0x0a,0x0b,0x0c,0x08,0x09,0x08,0x05,0x0c,0x0f,0x06,0x0f,0x07,0x0b,0x0c,0x0c,0x0c,0x05,0x0a,0x0d,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x08,0x08,0x0b,0x07,0x07,0x0c,0x04,0x04,0x0c,0x04,0x04,0x0c,0x06,0x06,0x00,0x05,0x0b,0x04,0x04,0x0d, +0x07,0x07,0x0a,0x07,0x07,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x14,0x14,0x0b,0x00,0x00,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x08,0x08,0x08,0x0c,0x08,0x08,0x0a,0x0d,0x08,0x08,0x0e,0x08,0x08,0x0c,0x08,0x09,0x0a,0x08,0x0a, +0x0b,0x0c,0x08,0x0a,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x08,0x09,0x0a,0x08,0x08,0x07,0x0a,0x08,0x08,0x08,0x09,0x06,0x07,0x08,0x0a,0x0a,0x07,0x00,0x00,0x0f,0x1e,0x0a,0x00,0x01,0x04,0x04,0x06,0x09,0x08,0x0c,0x0c,0x03,0x05,0x05,0x06,0x0a,0x03,0x06,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x03, +0x03,0x0a,0x0a,0x0a,0x07,0x0e,0x0a,0x09,0x09,0x0b,0x08,0x07,0x0a,0x0b,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x08,0x0b,0x09,0x08,0x08,0x0a,0x09,0x0e,0x09,0x08,0x09,0x05,0x06,0x05,0x0a,0x06,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x08,0x04,0x04,0x07,0x04,0x0d,0x08,0x09,0x09,0x09,0x05,0x06,0x05,0x08,0x07,0x0b,0x07,0x07,0x07, +0x05,0x04,0x05,0x0a,0x0a,0x0a,0x09,0x08,0x0b,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x08,0x07,0x06,0x07,0x08,0x06,0x0d,0x0d,0x0c,0x04,0x06,0x0a,0x0d,0x0b,0x0c,0x0a,0x0a,0x0a,0x08,0x09,0x08,0x09,0x0b,0x08,0x06, +0x06,0x0b,0x0c,0x09,0x07,0x04,0x04,0x0a,0x0a,0x08,0x0a,0x0a,0x08,0x08,0x0b,0x0a,0x0a,0x0b,0x0e,0x0e,0x08,0x0f,0x06,0x06,0x03,0x03,0x0a,0x09,0x07,0x08,0x03,0x08,0x05,0x05,0x08,0x08,0x06,0x03,0x03,0x06,0x12,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03, +0x05,0x03,0x06,0x07,0x04,0x08,0x06,0x09,0x07,0x04,0x0b,0x08,0x08,0x07,0x08,0x09,0x0a,0x0a,0x05,0x06,0x06,0x0e,0x0e,0x0e,0x07,0x0a,0x09,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x09,0x06,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0b,0x08,0x08,0x08,0x08,0x07,0x04,0x07,0x05,0x07,0x05,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x09,0x05,0x09,0x05, +0x08,0x06,0x08,0x05,0x08,0x07,0x0a,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x07,0x0b,0x0b,0x09,0x09,0x07,0x09,0x07,0x0a,0x06,0x07,0x06,0x11,0x09,0x07,0x09,0x03,0x06,0x0c,0x05,0x09,0x05,0x05,0x09,0x05,0x0a,0x08,0x09,0x07,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x05,0x04,0x09,0x07,0x07,0x07,0x04,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x05,0x08,0x06,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x08,0x07,0x04,0x0a,0x08,0x0d,0x0c,0x0b,0x09,0x03,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x08,0x07,0x03,0x06,0x08,0x09,0x0e,0x0e,0x0e,0x0d,0x06,0x06, +0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0c,0x0a,0x0c,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x09,0x0d,0x0b,0x08,0x0b,0x0b,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x04,0x08,0x09,0x07,0x09,0x04,0x08,0x08,0x08,0x07,0x09,0x09,0x04,0x08,0x07,0x09,0x08,0x07,0x09,0x09,0x07,0x08,0x08,0x0b,0x0c,0x04,0x08,0x09,0x08,0x0c,0x08,0x0b,0x07, +0x09,0x08,0x04,0x0f,0x0f,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x07,0x0a,0x08,0x0d,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x08,0x09,0x08,0x09,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x0b,0x0c,0x09,0x09,0x0f,0x09,0x08,0x09,0x08,0x06,0x08,0x08,0x0b,0x07,0x09,0x09,0x07,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x06,0x07,0x0a,0x07,0x09, +0x08,0x0c,0x0c,0x09,0x0b,0x08,0x07,0x0c,0x08,0x08,0x09,0x06,0x07,0x06,0x04,0x0c,0x0c,0x09,0x07,0x07,0x09,0x07,0x06,0x0f,0x11,0x09,0x05,0x06,0x06,0x06,0x04,0x08,0x06,0x08,0x0b,0x09,0x0b,0x09,0x05,0x05,0x04,0x04,0x07,0x07,0x07,0x07,0x05,0x05,0x05,0x07,0x05,0x07,0x05,0x05,0x05,0x07,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a, +0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x08,0x07,0x08,0x07,0x08,0x05,0x08,0x08,0x0b,0x09,0x04,0x05,0x04,0x04,0x08,0x06,0x0e,0x0c,0x09,0x08,0x09,0x07,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x07,0x0a,0x08,0x0a,0x08,0x0b,0x08,0x0b,0x09,0x05,0x05,0x05,0x05,0x06,0x06,0x07,0x07,0x07,0x07,0x04,0x04,0x05, +0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x05,0x0a,0x09,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x04,0x04,0x04,0x04,0x09,0x07,0x09,0x07,0x09,0x07,0x07,0x04,0x07,0x04,0x07, +0x04,0x07,0x04,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x09,0x08,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a, +0x08,0x09,0x07,0x09,0x07,0x0e,0x0b,0x0e,0x0b,0x09,0x07,0x09,0x07,0x08,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x0b,0x07,0x08,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, +0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x07,0x07,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09, +0x09,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x08,0x08,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x06,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d, +0x0c,0x0b,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x0b,0x0b,0x09,0x09,0x09,0x08,0x08,0x07,0x0a,0x09,0x0d,0x04,0x04,0x09,0x07,0x04,0x07,0x0d,0x0b,0x09,0x0b,0x0f,0x0c,0x09,0x09,0x09,0x08,0x06,0x08,0x04,0x05,0x08,0x05,0x08,0x0b,0x0b,0x09, +0x08,0x09,0x07,0x09,0x09,0x07,0x06,0x08,0x08,0x06,0x06,0x08,0x04,0x06,0x07,0x04,0x13,0x11,0x0f,0x0d,0x0b,0x08,0x10,0x0f,0x0c,0x0a,0x08,0x04,0x04,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x0a,0x09,0x0a,0x09,0x09,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x04,0x13,0x11,0x0f, +0x0a,0x09,0x0f,0x0a,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x0a,0x08,0x0a,0x08,0x08,0x06,0x0b,0x08,0x0b,0x09,0x09,0x09,0x07,0x0a,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x07,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09, +0x08,0x09,0x06,0x06,0x08,0x08,0x04,0x09,0x09,0x08,0x07,0x07,0x08,0x08,0x08,0x04,0x04,0x05,0x04,0x06,0x04,0x09,0x0d,0x0d,0x0d,0x08,0x08,0x09,0x09,0x0a,0x0b,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x04,0x04,0x05,0x05,0x09,0x09,0x08,0x07,0x0b,0x07,0x06,0x07,0x08,0x07,0x07,0x05,0x05,0x05,0x07,0x09, +0x07,0x08,0x08,0x08,0x04,0x07,0x06,0x09,0x05,0x05,0x0e,0x0e,0x0f,0x09,0x07,0x0b,0x0c,0x09,0x09,0x07,0x07,0x08,0x09,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x0b,0x09,0x09,0x07,0x07,0x07,0x09,0x08,0x09,0x07,0x0d,0x0d,0x09,0x08,0x0a,0x08,0x09,0x07,0x09,0x07,0x0a,0x09,0x08,0x06,0x09,0x09,0x07,0x04,0x0b,0x07,0x07,0x0d,0x0a,0x0a,0x09, +0x0e,0x0b,0x0a,0x07,0x0d,0x0a,0x0b,0x08,0x0e,0x0b,0x08,0x07,0x0c,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x14,0x11,0x0c,0x0a,0x11,0x0d,0x0d,0x0a,0x09,0x07,0x08,0x06,0x06,0x00,0x00,0x0f,0x0e,0x09,0x08,0x08,0x09,0x09,0x08,0x08,0x07,0x09,0x07,0x0b,0x09,0x0d,0x0a,0x0f,0x0d,0x0b,0x08,0x09,0x07,0x08,0x06,0x0d,0x0a,0x0a,0x09,0x0d, +0x0a,0x0d,0x0a,0x04,0x0d,0x0b,0x09,0x08,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0d,0x0c,0x08,0x08,0x0b,0x08,0x0b,0x08,0x0d,0x0b,0x08,0x07,0x08,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x0a,0x08,0x0c,0x0b,0x09,0x09,0x0d,0x0d,0x0c,0x0b,0x08,0x07,0x0e,0x0c,0x0f,0x0d,0x0b,0x08, +0x0a,0x09,0x09,0x08,0x08,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x09,0x05,0x05,0x02,0x03,0x03,0x03,0x04,0x06,0x04,0x03,0x06,0x03,0x03,0x03,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04, +0x02,0x04,0x04,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08, +0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08, +0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x09,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x08,0x09,0x07,0x0a,0x0c,0x07,0x07,0x08,0x08,0x06,0x06,0x04,0x04,0x07,0x06,0x0b,0x09,0x09,0x07,0x09,0x09,0x09,0x0e,0x08,0x09,0x09,0x07,0x07,0x07,0x06,0x08,0x09,0x0b,0x09,0x07,0x0b,0x07,0x06,0x06,0x08,0x06,0x07,0x09,0x07,0x09,0x08,0x05,0x07,0x05,0x05,0x06,0x05,0x05,0x06,0x06,0x03,0x03,0x05,0x04,0x08,0x07,0x07, +0x06,0x06,0x05,0x05,0x04,0x06,0x08,0x05,0x05,0x05,0x07,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x02,0x05,0x07,0x05,0x05,0x04,0x05,0x05,0x05,0x03,0x05,0x05,0x07,0x04,0x05,0x05,0x04,0x05,0x06,0x04,0x02,0x03,0x05,0x04,0x05,0x04,0x05,0x06,0x04,0x09,0x02,0x05,0x08,0x0d,0x09,0x08,0x08,0x0d,0x0a,0x0d,0x0b,0x08,0x09,0x08,0x07,0x11, +0x07,0x09,0x0d,0x0e,0x0e,0x09,0x0a,0x09,0x07,0x07,0x08,0x06,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x07,0x06,0x09,0x09,0x05,0x0d,0x08,0x09,0x05,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x08,0x09,0x09,0x09,0x05,0x09,0x07,0x04,0x0d,0x08,0x09,0x05,0x06,0x06,0x07,0x07,0x07,0x08,0x09,0x09, +0x08,0x07,0x07,0x0b,0x04,0x07,0x04,0x08,0x07,0x05,0x04,0x04,0x05,0x04,0x03,0x02,0x05,0x05,0x02,0x03,0x03,0x03,0x02,0x03,0x02,0x03,0x07,0x07,0x05,0x05,0x05,0x05,0x06,0x03,0x02,0x03,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x08,0x05,0x00,0x00,0x00, +0x00,0x07,0x05,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x08,0x08,0x08,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x05,0x06,0x05,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x05,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0e,0x0b,0x08,0x06,0x08,0x0a,0x08,0x0c,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0f,0x06,0x04,0x08,0x09,0x06,0x08,0x08, +0x09,0x09,0x08,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0b,0x0a,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05,0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x06,0x04,0x04,0x08,0x04,0x0b,0x04,0x0e,0x08,0x0e,0x0e,0x09,0x09,0x09,0x08,0x08,0x06,0x06,0x12,0x12,0x14,0x14,0x0d, +0x0d,0x08,0x08,0x03,0x0f,0x0b,0x0d,0x0a,0x09,0x0a,0x08,0x08,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a,0x0a,0x05,0x08,0x08,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x06,0x0e,0x08,0x0e,0x08,0x0b,0x0d,0x05,0x08,0x08,0x06,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0a,0x0a,0x0e,0x05,0x08, +0x06,0x0a,0x08,0x05,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x04,0x09,0x06,0x0f,0x08,0x08,0x0a,0x0a,0x0f,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x0b,0x0d,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x08,0x06,0x06,0x06,0x12,0x0d,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x08,0x09,0x09,0x09,0x0f,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0b,0x0b,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d, +0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x0a,0x05,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0e,0x0b,0x0d,0x05,0x08,0x0b,0x0d,0x0b,0x0d,0x00,0x00,0x00,0x00,0x00,0x11,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06, +0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x0d,0x14,0x0f,0x08,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x0e,0x0e,0x06,0x09,0x09,0x09,0x12,0x0c,0x08,0x17,0x10,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x06,0x06,0x0b,0x0a,0x0a,0x08,0x00,0x00, +0x00,0x05,0x05,0x05,0x05,0x13,0x17,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0a,0x09,0x08,0x08,0x06,0x12,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0e, +0x08,0x08,0x0e,0x08,0x08,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x06,0x06,0x12,0x0d,0x0a,0x09,0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x05,0x04,0x0b,0x09,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x04,0x08,0x06,0x09,0x07,0x09,0x07,0x08,0x07,0x0a,0x08,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x07,0x07,0x04,0x08,0x08,0x09,0x08,0x05,0x0b,0x09,0x0a,0x08,0x09,0x07,0x09,0x08,0x06,0x0a,0x06,0x06,0x06,0x07,0x09,0x09,0x08,0x0f,0x08,0x0f,0x05,0x04,0x03,0x08,0x03,0x02,0x00,0x02,0x03,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x06,0x0b, +0x09,0x0e,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0d,0x07,0x0d,0x07,0x0d,0x0a,0x0a,0x0b,0x0a,0x0b,0x0d,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x10,0x0c,0x07,0x07,0x04,0x04,0x04,0x06,0x03,0x08,0x03,0x03,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x07,0x0a,0x04,0x05,0x0a,0x0a,0x04,0x08,0x08,0x08,0x0a,0x0a,0x04,0x06,0x0a,0x09,0x09,0x09,0x08,0x09,0x0a,0x08,0x0c,0x0b,0x08,0x08,0x08,0x03,0x06,0x08,0x08,0x08,0x08,0x08,0x09,0x0a,0x07,0x0a,0x08,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a, +0x09,0x07,0x07,0x0a,0x05,0x05,0x0a,0x05,0x08,0x08,0x08,0x0a,0x06,0x0a,0x09,0x09,0x09,0x0a,0x08,0x0c,0x0b,0x04,0x09,0x08,0x09,0x0a,0x12,0x00,0x0a,0x08,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x06,0x04,0x00,0x0b,0x0a,0x0a,0x0b,0x08,0x0a,0x0b,0x0b,0x07,0x09,0x0b,0x0b,0x0a,0x0b,0x0c,0x0c,0x0a,0x08,0x08,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x09,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0a,0x0a,0x0c,0x07,0x09,0x09,0x0d,0x08,0x08,0x0c,0x0d,0x09,0x08,0x10,0x09,0x09,0x0b,0x08,0x08,0x0b,0x08,0x0b,0x0c,0x0d,0x08, +0x0c,0x08,0x0a,0x08,0x09,0x09,0x09,0x08,0x09,0x0c,0x08,0x09,0x0a,0x08,0x08,0x09,0x0e,0x08,0x08,0x09,0x09,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x0d,0x08,0x0d,0x07,0x08,0x0d,0x0a,0x08,0x0d,0x0b,0x0b,0x0d,0x09,0x08,0x0d,0x0d,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x09,0x08,0x09,0x0d,0x09,0x08,0x08,0x08,0x0d,0x0c,0x0a,0x0a, +0x0a,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0a,0x08,0x0c,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x0a,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0b,0x01,0x02,0x02,0x03,0x02,0x04,0x05,0x0d,0x08,0x09,0x09,0x08,0x09,0x08,0x08,0x0a,0x09,0x08,0x05,0x0d,0x09,0x08,0x08,0x08,0x09,0x08,0x09,0x04,0x09, +0x08,0x08,0x06,0x0d,0x08,0x08,0x08,0x09,0x0c,0x08,0x09,0x06,0x0c,0x09,0x09,0x0a,0x0a,0x03,0x04,0x11,0x11,0x11,0x11,0x15,0x08,0x08,0x04,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x0a,0x09,0x07,0x09,0x07,0x06,0x07,0x09,0x08,0x0c,0x08,0x07,0x07,0x0b,0x0c,0x06,0x09,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x06,0x06,0x04,0x04,0x04,0x04,0x0a,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x08,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x08,0x05,0x07,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c, +0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x0b,0x09,0x08,0x07,0x06,0x08,0x06,0x07,0x09,0x09,0x04,0x07,0x08,0x0b,0x0a,0x07,0x09,0x09,0x07,0x07,0x07,0x07,0x09,0x08,0x0a,0x0a,0x08,0x06,0x09,0x04,0x09,0x07,0x0a,0x04,0x07,0x06,0x09,0x06,0x08,0x06,0x04,0x04,0x05,0x0c,0x0c,0x09,0x07,0x07,0x09,0x08,0x07,0x07,0x06,0x09,0x06, +0x0b,0x07,0x0a,0x0a,0x07,0x09,0x0b,0x09,0x09,0x09,0x07,0x08,0x07,0x07,0x09,0x08,0x0a,0x08,0x0c,0x0c,0x09,0x0b,0x07,0x08,0x0d,0x07,0x06,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x08,0x09,0x06,0x09,0x08,0x08,0x0b,0x08,0x08,0x0a,0x09,0x09,0x05,0x09,0x09,0x09,0x07,0x07,0x0d,0x0b,0x07,0x08,0x09,0x09,0x09,0x09,0x0b,0x0a,0x05,0x0e,0x09, +0x08,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0b,0x0a,0x0a,0x07,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x09,0x06,0x04,0x0b,0x0b,0x04,0x03,0x03,0x07,0x06,0x06,0x03,0x03,0x03,0x06,0x0a,0x07,0x05,0x09,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x07,0x08,0x06,0x03,0x03,0x06,0x08,0x05,0x0a,0x0a,0x0a,0x0e,0x0b,0x0e,0x04,0x00,0x00,0x00,0x00, +0x00,0x04,0x0b,0x0d,0x05,0x05,0x08,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x08,0x08,0x12,0x0d,0x12,0x0d,0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x08,0x08,0x0e,0x0e,0x08,0x08,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0f,0x0b,0x0d,0x08,0x09,0x09,0x0a,0x05,0x0a,0x0b,0x08, +0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x05,0x0b,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x0d,0x12,0x0d,0x12,0x0d, +0x14,0x0f,0x14,0x0f,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x08,0x08,0x0b,0x08,0x08,0x0e,0x08,0x10,0x0f,0x0e,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x0a,0x0a,0x05,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x08,0x09,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x12,0x0d,0x14,0x0f,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x0e,0x05,0x09,0x09,0x08,0x08,0x06,0x12,0x0d,0x0f,0x0f,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x09,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x12,0x0d,0x09,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09, +0x12,0x12,0x0d,0x0d,0x06,0x06,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x0b,0x0d,0x05,0x05,0x09,0x09,0x09,0x09,0x0e,0x05,0x0e,0x05,0x09,0x0a,0x09,0x09,0x12,0x12,0x0d,0x0d,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04, +0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x09,0x0d,0x0a,0x0a,0x0a,0x04,0x04,0x08,0x06,0x09,0x0a,0x09,0x08,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x09,0x09,0x09,0x0a, +0x09,0x08,0x0a,0x08,0x0a,0x0b,0x0a,0x0b,0x0c,0x0a,0x0b,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x09,0x09,0x0a,0x09,0x0a,0x09,0x09,0x09,0x08,0x08,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x0c,0x0b,0x0b,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x08,0x0c,0x0d,0x0b,0x09,0x0d,0x0b,0x0a,0x0b, +0x09,0x0a,0x0b,0x0c,0x0a,0x09,0x0b,0x09,0x08,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0a,0x0a,0x0d,0x0b,0x0b,0x0d,0x08,0x08,0x08,0x08,0x09,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x09,0x08,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x09, +0x09,0x07,0x08,0x08,0x09,0x09,0x0b,0x0d,0x0a,0x0a,0x09,0x0c,0x0a,0x0a,0x08,0x07,0x09,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x09,0x07,0x08,0x07,0x08,0x0c,0x08,0x0c,0x08,0x08,0x09,0x0b,0x05,0x0c,0x0a,0x0b,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07, +0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0e,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x07,0x06,0x07,0x08,0x08,0x07,0x0d,0x0c,0x0d,0x07,0x0f,0x07,0x0d,0x0d,0x0d,0x0c,0x08,0x07,0x07,0x0c,0x09,0x0c,0x0a,0x08,0x07,0x06,0x0f,0x06,0x08,0x07, +0x07,0x07,0x07,0x07,0x14,0x0d,0x0d,0x06,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x07,0x09,0x09,0x08,0x06,0x06,0x03,0x03,0x03,0x06,0x03,0x06,0x0d,0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x12,0x0a,0x12,0x12,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x09,0x07,0x08,0x06,0x05,0x05,0x0a,0x08,0x0b,0x06,0x11,0x0d,0x09,0x08,0x0e,0x0c,0x0d,0x0b,0x0f,0x0c,0x0e,0x0c,0x0a,0x07,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x11,0x0d,0x0b,0x09,0x0b,0x09,0x12,0x0d, +0x0c,0x00,0x0f,0x0f,0x0f,0x07,0x00,0x00,0x09,0x08,0x0a,0x08,0x08,0x06,0x10,0x0e,0x0e,0x0d,0x0b,0x09,0x0a,0x09,0x08,0x06,0x0b,0x09,0x08,0x06,0x0c,0x0a,0x0a,0x08,0x0f,0x0c,0x08,0x09,0x0b,0x0b,0x0c,0x07,0x03,0x07,0x0a,0x06,0x0f,0x0f,0x04,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, +0x00,0x07,0x07,0x0a,0x0b,0x04,0x03,0x04,0x03,0x0b,0x08,0x0b,0x09,0x08,0x07,0x08,0x07,0x09,0x09,0x06,0x06,0x11,0x0c,0x11,0x0d,0x0f,0x0d,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x07,0x04,0x0b,0x09,0x0d,0x0a,0x14,0x0f,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0b,0x09,0x0f,0x0c,0x08,0x06,0x08, +0x07,0x09,0x07,0x0e,0x0b,0x09,0x08,0x08,0x09,0x08,0x09,0x07,0x06,0x07,0x06,0x07,0x06,0x08,0x08,0x05,0x0a,0x05,0x0e,0x0a,0x05,0x09,0x09,0x07,0x0b,0x08,0x06,0x05,0x09,0x09,0x09,0x07,0x04,0x0b,0x09,0x06,0x05,0x09,0x07,0x0b,0x06,0x0c,0x09,0x09,0x07,0x0a,0x09,0x09,0x07,0x0b,0x08,0x09,0x05,0x08,0x06,0x0b,0x06,0x08,0x0d,0x07, +0x08,0x0d,0x04,0x11,0x0d,0x0d,0x12,0x0d,0x0e,0x0e,0x0d,0x0d,0x0e,0x08,0x07,0x09,0x0b,0x0d,0x0b,0x0e,0x04,0x07,0x09,0x0d,0x0f,0x0b,0x0f,0x09,0x09,0x0c,0x0b,0x11,0x0e,0x08,0x0e,0x05,0x0e,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0f,0x08,0x08,0x0f,0x0b,0x08,0x08,0x0b,0x0a,0x05,0x05,0x0a,0x09,0x09,0x09,0x09,0x0b,0x05, +0x05,0x0d,0x0b,0x05,0x05,0x0d,0x06,0x06,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x06,0x08,0x08,0x0b,0x09,0x09,0x0d,0x0a,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0f,0x0c,0x10,0x0d,0x0a,0x09,0x05,0x05,0x09, +0x0a,0x06,0x09,0x08,0x09,0x07,0x0b,0x0c,0x06,0x09,0x06,0x03,0x06,0x08,0x08,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x16,0x1e,0x05,0x06,0x02,0x04,0x06,0x06,0x05,0x07,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x14,0x08,0x0b,0x0e,0x0d,0x0a,0x07,0x08,0x0b,0x0b,0x07,0x05,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x08,0x0b,0x09,0x09,0x08,0x0b,0x09,0x0c,0x07,0x08,0x0a,0x05,0x09,0x05,0x05,0x04,0x0d,0x09,0x08,0x08,0x08,0x09,0x0e,0x0e,0x0e,0x0f,0x0f,0x08,0x08,0x04,0x08,0x07,0x09,0x07,0x0a,0x04,0x08,0x09,0x0d,0x0d,0x09,0x08,0x09,0x08,0x08,0x07,0x08,0x07,0x07,0x05,0x05,0x04,0x03,0x05,0x09,0x0a,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x05,0x00,0x04,0x04,0x04,0x04,0x04,0x19,0x0f,0x0d,0x10,0x04,0x04,0x05,0x06,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x0e,0x05,0x05,0x0e,0x04,0x08,0x08,0x14,0x0f,0x0f,0x14,0x0e,0x08,0x08,0x0e,0x08,0x08,0x06,0x06,0x00,0x00,0x05,0x0b,0x09,0x0b,0x09, +0x13,0x10,0x0a,0x08,0x0b,0x08,0x14,0x0f,0x0b,0x09,0x06,0x05,0x09,0x00,0x0a,0x08,0x05,0x05,0x02,0x07,0x05,0x05,0x04,0x03,0x07,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x08,0x06,0x09,0x09,0x08,0x0e,0x0c,0x0c,0x0c,0x0c,0x0e,0x09,0x0a,0x09,0x06,0x0e,0x11,0x07,0x11,0x08,0x0d,0x0e,0x0e,0x0e,0x06,0x0b,0x0f,0x0b,0x0a,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0e,0x05,0x05,0x0e,0x05,0x05,0x0e,0x07,0x07,0x00,0x06,0x0d,0x05,0x05,0x0f,0x08,0x08,0x0b,0x08,0x08,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x17,0x17,0x0d,0x00,0x00,0x0d,0x0d, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x09,0x0a,0x0a,0x0d,0x0a,0x09,0x0c,0x0f,0x0a,0x09,0x10,0x0a,0x0a,0x0e,0x09,0x0a,0x0c,0x0a,0x0c,0x0d,0x0e,0x0a,0x0c,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x09,0x0c,0x09,0x0a,0x0c,0x09,0x09,0x09,0x0c,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x0a,0x0c, +0x0c,0x08,0x00,0x00,0x10,0x20,0x0a,0x00,0x02,0x04,0x05,0x06,0x09,0x09,0x0d,0x0d,0x04,0x05,0x05,0x07,0x0b,0x03,0x06,0x03,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x03,0x03,0x0b,0x0b,0x0b,0x07,0x0f,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x04,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x0a,0x09,0x08,0x0b,0x0a, +0x0f,0x09,0x09,0x09,0x05,0x06,0x05,0x0b,0x07,0x04,0x08,0x09,0x07,0x09,0x08,0x05,0x09,0x09,0x04,0x04,0x08,0x04,0x0e,0x09,0x09,0x09,0x09,0x06,0x07,0x05,0x09,0x08,0x0c,0x07,0x08,0x07,0x05,0x04,0x05,0x0b,0x0a,0x0a,0x0a,0x08,0x0c,0x0c,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x09,0x07,0x07,0x07,0x09,0x06,0x0e,0x0e,0x0c,0x05,0x07,0x0b,0x0e,0x0c,0x0d,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x0c,0x09,0x06,0x07,0x0c,0x0d,0x09,0x07,0x04,0x05,0x0b,0x0a,0x09,0x0b,0x0a,0x08,0x08,0x0c,0x0a,0x0a,0x0c,0x0f,0x0f,0x08,0x10,0x06,0x06,0x04,0x04,0x0b,0x09, +0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x03,0x04,0x06,0x13,0x0a,0x08,0x0a,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x04,0x06,0x05,0x05,0x05,0x03,0x04,0x03,0x05,0x03,0x06,0x08,0x04,0x09,0x07,0x09,0x07,0x04,0x0b,0x09,0x09,0x08,0x09,0x09,0x0b,0x0b,0x06,0x06,0x06,0x0f,0x0f,0x0f,0x08,0x0b,0x09,0x04, +0x09,0x07,0x0a,0x07,0x0a,0x07,0x09,0x07,0x03,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x04,0x08,0x05,0x08,0x05,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x0a,0x06,0x09,0x07,0x08,0x05,0x08,0x07,0x0b,0x09,0x0b,0x09,0x09,0x07,0x09,0x07,0x08,0x0c,0x0c,0x0a,0x09,0x07,0x09,0x08,0x0b,0x07,0x08,0x06,0x12,0x0a, +0x08,0x0a,0x04,0x06,0x0d,0x05,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x08,0x0a,0x07,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x09,0x08,0x08,0x08,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x06,0x09,0x07,0x08,0x05,0x0b,0x09, +0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0c,0x09,0x08,0x04,0x0a,0x08,0x0e,0x0d,0x0c,0x09,0x03,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x09,0x08,0x04,0x07,0x09,0x0a,0x0f,0x0f,0x0f,0x0e,0x06,0x06,0x03,0x04,0x04,0x0a,0x09,0x0c,0x06,0x0d,0x0b,0x0d,0x04,0x0a,0x09,0x08,0x09,0x0b,0x04,0x09,0x0a,0x0e,0x0c,0x08,0x0c,0x0b,0x09,0x08,0x08,0x09, +0x09,0x0c,0x0c,0x04,0x09,0x0a,0x07,0x09,0x04,0x09,0x09,0x08,0x07,0x09,0x09,0x04,0x08,0x08,0x09,0x08,0x07,0x09,0x09,0x07,0x09,0x09,0x0c,0x0d,0x04,0x09,0x09,0x09,0x0d,0x08,0x0b,0x08,0x0a,0x09,0x04,0x10,0x10,0x0c,0x09,0x09,0x0b,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x09,0x0c,0x0c,0x09,0x0b,0x0e,0x0b,0x0c,0x0b,0x09,0x0a,0x08, +0x09,0x0c,0x09,0x0c,0x0b,0x0f,0x10,0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x09,0x08,0x06,0x09,0x08,0x0c,0x07,0x09,0x09,0x08,0x08,0x0b,0x09,0x09,0x09,0x09,0x07,0x07,0x08,0x0b,0x07,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x07,0x0d,0x08,0x08,0x09,0x06,0x07,0x07,0x04,0x0d,0x0d,0x09,0x08,0x08,0x09,0x08,0x06,0x10,0x12,0x0a,0x06,0x06, +0x06,0x06,0x04,0x09,0x07,0x09,0x0c,0x0a,0x0b,0x09,0x05,0x05,0x04,0x04,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x05,0x08,0x08,0x0c,0x09,0x04,0x06,0x04,0x04,0x08, +0x07,0x0f,0x0c,0x0a,0x08,0x09,0x08,0x0c,0x0a,0x09,0x08,0x09,0x08,0x0a,0x08,0x0a,0x09,0x0b,0x09,0x0c,0x08,0x0c,0x09,0x05,0x05,0x05,0x05,0x07,0x07,0x08,0x08,0x08,0x08,0x04,0x04,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x08,0x08, +0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x04,0x04,0x04,0x04,0x09,0x08,0x09,0x08,0x09,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x09,0x09, +0x09,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x08,0x05,0x08,0x05,0x08,0x05,0x08,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0f,0x0c,0x0f,0x0c,0x09,0x07,0x09,0x07,0x09,0x08,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x05,0x0c,0x08,0x08,0x04,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09, +0x09,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x07,0x07,0x09,0x09,0x04,0x04,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x09,0x09,0x09,0x04, +0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0a,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x07,0x0b, +0x0c,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x0a,0x0e,0x05,0x04,0x09,0x08,0x04,0x08,0x0e,0x0c,0x09,0x0c,0x10,0x0d,0x0a,0x09,0x09,0x09,0x07,0x08,0x05,0x05,0x08,0x05,0x08,0x0c,0x0b,0x09,0x08,0x09,0x07,0x0a,0x0a,0x07,0x07,0x09,0x09,0x06,0x06,0x09,0x04,0x06,0x07,0x05,0x14,0x12,0x10,0x0e,0x0c,0x08,0x11,0x0f,0x0d,0x0a,0x08,0x04, +0x04,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x0b,0x09,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x04,0x14,0x12,0x10,0x0b,0x09,0x10,0x0b,0x0c,0x09,0x0a,0x08,0x0a,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x04,0x04,0x0c,0x09,0x0c,0x09,0x09,0x06,0x0a,0x06,0x0b,0x09, +0x0b,0x09,0x08,0x07,0x0b,0x09,0x0c,0x09,0x09,0x09,0x07,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x07,0x07,0x09,0x09,0x08,0x0a,0x07,0x07,0x08,0x09,0x04,0x09,0x09,0x08,0x08,0x07,0x09,0x09,0x09,0x04,0x04,0x05,0x04,0x06,0x04,0x0a,0x0e,0x0e,0x0e,0x09,0x09,0x09, +0x09,0x0b,0x0c,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x07,0x07,0x06,0x04,0x04,0x05,0x05,0x05,0x05,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x07,0x08,0x07,0x07,0x06,0x06,0x06,0x07,0x0a,0x08,0x09,0x08,0x09,0x04,0x08,0x06,0x09,0x06,0x06,0x0f,0x0f,0x10,0x0a,0x08,0x0b,0x0d,0x09,0x09,0x08,0x08,0x09,0x09,0x09,0x0b,0x09,0x0a,0x0d, +0x09,0x0b,0x09,0x09,0x07,0x08,0x07,0x0a,0x08,0x0a,0x08,0x0e,0x0e,0x0a,0x08,0x0a,0x09,0x0a,0x07,0x0a,0x08,0x0b,0x09,0x09,0x07,0x09,0x09,0x07,0x04,0x0c,0x07,0x07,0x0e,0x0b,0x0a,0x09,0x0f,0x0b,0x0b,0x08,0x0e,0x0b,0x0c,0x09,0x0f,0x0c,0x09,0x07,0x0d,0x0c,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x15,0x12,0x0d,0x0a,0x12,0x0e,0x0e,0x0b, +0x09,0x07,0x08,0x06,0x07,0x00,0x00,0x10,0x0f,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x07,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x0c,0x09,0x0a,0x07,0x08,0x07,0x0e,0x0b,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x04,0x0e,0x0c,0x09,0x08,0x0b,0x09,0x0a,0x09,0x0a,0x08,0x0a,0x08,0x0e,0x0d,0x08,0x08,0x0c,0x08,0x0c,0x08,0x0e,0x0c,0x09,0x07, +0x08,0x07,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0c,0x09,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x09,0x0d,0x0b,0x09,0x09,0x0e,0x0e,0x0d,0x0c,0x09,0x08,0x0e,0x0d,0x10,0x0e,0x0b,0x08,0x0b,0x0a,0x09,0x09,0x09,0x08,0x09,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x09,0x05,0x05,0x03,0x03, +0x03,0x03,0x04,0x06,0x04,0x04,0x06,0x04,0x04,0x04,0x05,0x05,0x03,0x03,0x09,0x09,0x09,0x09,0x05,0x05,0x04,0x05,0x05,0x04,0x05,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x05,0x07,0x05,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09, +0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x00, +0x00,0x00,0x00,0x00,0x0a,0x05,0x0a,0x05,0x09,0x09,0x05,0x05,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x0b,0x0d,0x08,0x07,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x06,0x0b,0x09,0x09,0x08,0x0a,0x0a,0x0a,0x0f,0x09,0x0a,0x0a, +0x07,0x07,0x07,0x07,0x09,0x09,0x0b,0x09,0x08,0x0c,0x07,0x07,0x07,0x08,0x06,0x08,0x09,0x07,0x09,0x09,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07,0x07,0x03,0x04,0x06,0x05,0x08,0x07,0x07,0x07,0x06,0x05,0x06,0x05,0x07,0x08,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x05,0x05,0x04,0x05,0x05,0x05,0x03, +0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x03,0x03,0x05,0x05,0x05,0x05,0x06,0x07,0x05,0x09,0x03,0x06,0x09,0x0e,0x0a,0x09,0x09,0x0e,0x0a,0x0e,0x0c,0x08,0x09,0x08,0x07,0x12,0x07,0x09,0x0e,0x0f,0x0f,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x07,0x07,0x08,0x03,0x00,0x00,0x00,0x00,0x09,0x0a,0x0a,0x0a,0x08,0x06,0x09,0x09,0x05, +0x0e,0x09,0x09,0x06,0x05,0x07,0x05,0x07,0x09,0x07,0x09,0x0e,0x0a,0x05,0x04,0x09,0x09,0x0a,0x09,0x09,0x05,0x09,0x08,0x04,0x0e,0x09,0x09,0x06,0x07,0x07,0x08,0x07,0x07,0x08,0x09,0x09,0x08,0x07,0x07,0x0c,0x04,0x07,0x04,0x09,0x07,0x06,0x04,0x04,0x05,0x04,0x03,0x03,0x06,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08, +0x05,0x05,0x06,0x05,0x06,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x05,0x04,0x05,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x09,0x05,0x00,0x00,0x00,0x00,0x07,0x05,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x04,0x04,0x04,0x04,0x09,0x09,0x09,0x09,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0a,0x0b,0x09,0x0c,0x0a, +0x0f,0x0c,0x09,0x06,0x08,0x0b,0x09,0x0d,0x0b,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x10,0x07,0x04,0x08,0x09,0x07,0x08,0x08,0x09,0x09,0x08,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x0a,0x08,0x08,0x08,0x05,0x09,0x05,0x0c,0x0b,0x08,0x05,0x0d,0x08,0x0d,0x04,0x05, +0x09,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0d,0x04,0x09,0x04,0x08,0x07,0x04,0x04,0x08,0x04,0x0c,0x04,0x0f,0x08,0x0f,0x0f,0x09,0x09,0x09,0x08,0x08,0x07,0x07,0x13,0x13,0x15,0x15,0x0d,0x0d,0x08,0x08,0x03,0x10,0x0c,0x0d,0x0b,0x09,0x0b,0x08,0x08,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x04,0x0a,0x00,0x0a,0x0a, +0x0a,0x05,0x08,0x08,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x07,0x0f,0x08,0x0f,0x08,0x0c,0x0d,0x05,0x08,0x08,0x07,0x04,0x08,0x09,0x08,0x09,0x08,0x09,0x09,0x08,0x0b,0x0a,0x0f,0x05,0x08,0x07,0x0b,0x08,0x05,0x08,0x08,0x08,0x0f,0x05,0x0f,0x05,0x04,0x09,0x06,0x10,0x08,0x08,0x0a,0x0a,0x10,0x08,0x00,0x00,0x00,0x0a,0x00,0x0a,0x0a, +0x0a,0x0a,0x0c,0x0a,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x08,0x08,0x0c,0x0d,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x13, +0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x08,0x09,0x09,0x09,0x10,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x10,0x08,0x08,0x0c,0x0c,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x0b,0x05, +0x09,0x0b,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0f,0x0c,0x0d,0x05,0x08,0x0c,0x0d,0x0c,0x0d,0x00,0x00,0x00,0x00,0x00,0x12,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x13,0x0d,0x15,0x10,0x08,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x08,0x0f,0x0f,0x06,0x09,0x09,0x0a,0x14,0x0d,0x09,0x18,0x11,0x05,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x07,0x07,0x0c,0x0b,0x0b,0x08,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x14,0x18,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x05,0x0f,0x05,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0b,0x09,0x08,0x08,0x07,0x13,0x0d,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x10,0x08,0x08,0x10,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x0f,0x08,0x08,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x07,0x07,0x13,0x0d,0x0a,0x09, +0x09,0x00,0x08,0x08,0x08,0x06,0x09,0x0b,0x0a,0x08,0x08,0x06,0x04,0x0c,0x09,0x0a,0x06,0x09,0x08,0x08,0x07,0x08,0x04,0x08,0x07,0x0a,0x08,0x09,0x07,0x09,0x07,0x0b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x07,0x08,0x08,0x05,0x08,0x09,0x0a,0x08,0x05,0x0c,0x09,0x0a,0x09,0x0a,0x08,0x09,0x08,0x06,0x0b,0x06,0x07, +0x07,0x08,0x0a,0x0a,0x08,0x10,0x08,0x10,0x05,0x04,0x03,0x09,0x03,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x0f,0x07,0x0c,0x09,0x0f,0x0c,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0e,0x08,0x0e,0x08,0x0e,0x0a,0x0b,0x0b,0x0b,0x0c,0x0e,0x10,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x11,0x0d,0x08,0x08,0x05,0x05,0x05,0x06,0x03,0x09,0x04,0x04,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0a,0x09,0x07,0x08,0x0b,0x04,0x05,0x0b,0x0b,0x04,0x09,0x09,0x09,0x0b,0x0b,0x04,0x06,0x0b, +0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x0d,0x0c,0x08,0x08,0x08,0x04,0x06,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x08,0x0b,0x09,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x08,0x0b,0x05,0x06,0x0b,0x05,0x09,0x09,0x09,0x0b,0x06,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0c,0x04,0x09,0x09,0x0a,0x0a,0x13,0x00, +0x0a,0x09,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x04,0x00,0x0c,0x0a,0x0b,0x0b,0x09,0x0b,0x0c,0x0c,0x08,0x0a,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x09,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0c,0x09,0x0a,0x0b,0x0a,0x0c,0x0a,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x09,0x0e,0x09,0x09,0x0c,0x0e,0x0a,0x09,0x11,0x09,0x09,0x0c,0x09,0x09,0x0c,0x09,0x0c,0x0d,0x0e,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x0c,0x09,0x0a,0x0b,0x09,0x09,0x0a,0x0f,0x09,0x09,0x09,0x09,0x07,0x05,0x09,0x09,0x09,0x09,0x09, +0x0e,0x09,0x0e,0x08,0x09,0x0e,0x0b,0x09,0x0e,0x0c,0x0c,0x0e,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x0a,0x09,0x09,0x09,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0d,0x0b,0x0a,0x09,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0c,0x0c,0x09,0x0b,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0a, +0x0b,0x0b,0x0c,0x0d,0x0b,0x0c,0x0c,0x02,0x02,0x02,0x03,0x02,0x04,0x06,0x0e,0x09,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x09,0x05,0x0d,0x09,0x09,0x09,0x09,0x0a,0x08,0x09,0x04,0x09,0x08,0x09,0x07,0x0e,0x09,0x09,0x09,0x09,0x0d,0x09,0x09,0x06,0x0d,0x09,0x09,0x0b,0x0b,0x03,0x05,0x12,0x12,0x12,0x12,0x17,0x09,0x09,0x04,0x09, +0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x09,0x07,0x07,0x09,0x0a,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a, +0x08,0x0a,0x08,0x07,0x07,0x0a,0x08,0x0d,0x08,0x07,0x08,0x0b,0x0c,0x07,0x0a,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x08,0x0a,0x0a,0x04,0x04, +0x04,0x04,0x04,0x09,0x05,0x08,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x0b,0x0a,0x08,0x08,0x06,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x08,0x0c,0x0a,0x07,0x0a,0x0a,0x08, +0x07,0x07,0x07,0x0a,0x08,0x0b,0x0a,0x08,0x07,0x0a,0x04,0x0a,0x07,0x0a,0x04,0x07,0x07,0x09,0x06,0x08,0x07,0x04,0x04,0x05,0x0d,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x08,0x08,0x06,0x09,0x07,0x0c,0x07,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0a,0x08,0x0a,0x09,0x0d,0x0d,0x09,0x0b,0x08,0x08,0x0e,0x08,0x06,0x09, +0x09,0x0a,0x0e,0x0e,0x0b,0x08,0x09,0x07,0x09,0x09,0x09,0x0b,0x08,0x08,0x0b,0x09,0x09,0x06,0x0a,0x0a,0x09,0x08,0x08,0x0e,0x0c,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x06,0x0f,0x09,0x09,0x09,0x0a,0x0a,0x08,0x08,0x04,0x0c,0x0b,0x0b,0x08,0x0b,0x03,0x03,0x07,0x07,0x03,0x03,0x0a,0x06,0x04,0x0c,0x0b,0x05,0x03,0x03,0x07,0x06, +0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x07,0x09,0x07,0x03,0x04,0x06,0x08,0x05,0x0b,0x0b,0x0b,0x0f,0x0c,0x0f,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0c,0x0d,0x05,0x05,0x08,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x08,0x08,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d, +0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x08,0x08,0x0f,0x0f,0x08,0x08,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x10,0x0c,0x0d,0x08,0x09,0x09,0x0b,0x05,0x0b,0x0c,0x08,0x08,0x05,0x05,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0f,0x05,0x0c,0x08,0x08,0x04,0x08,0x08,0x08,0x08,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x15,0x10,0x15,0x10,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x08,0x08,0x0c,0x08,0x08,0x0f,0x08,0x11,0x10,0x0f,0x08,0x0d,0x08,0x0d, +0x08,0x0d,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x0b,0x0b,0x05,0x05,0x0b,0x05,0x0b,0x05,0x0b,0x08,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x08,0x05,0x05,0x05,0x05,0x00,0x13,0x0d,0x15,0x10,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x0f,0x05,0x0f,0x05, +0x0f,0x05,0x0f,0x05,0x09,0x09,0x08,0x08,0x07,0x13,0x0d,0x10,0x10,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x0b,0x05,0x0b,0x05,0x0b,0x05,0x13,0x0d,0x09,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x07,0x07,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x0c,0x0d,0x05,0x05,0x09,0x09, +0x09,0x09,0x0f,0x05,0x0f,0x05,0x09,0x0b,0x09,0x09,0x13,0x13,0x0d,0x0d,0x13,0x13,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x04,0x05,0x04,0x00,0x00,0x00,0x0d,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0d,0x09,0x0d,0x09, +0x0d,0x09,0x0d,0x0b,0x0b,0x0b,0x04,0x04,0x08,0x07,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x09,0x09,0x0a,0x08,0x0b,0x0c,0x0a,0x0c,0x0d,0x0a,0x0c,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x07,0x09,0x0a,0x0a,0x0b, +0x09,0x0a,0x09,0x0a,0x0a,0x08,0x08,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0b,0x0f,0x0f,0x0c,0x0e,0x0e,0x09,0x0c,0x0e,0x0c,0x0a,0x0e,0x0c,0x0b,0x0b,0x0a,0x0a,0x0c,0x0d,0x0b,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0b,0x0f,0x0f,0x0b,0x0c,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0c,0x0d, +0x0b,0x0b,0x09,0x0c,0x0b,0x0b,0x0e,0x0c,0x0c,0x0e,0x09,0x08,0x09,0x09,0x0a,0x0a,0x0b,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x09,0x0a,0x0a,0x0a,0x07,0x09,0x09,0x09,0x0a,0x0c,0x0d,0x0a,0x0a,0x0a,0x0c,0x0a,0x0b,0x08,0x08,0x09,0x09,0x08,0x08,0x09,0x09,0x08,0x07,0x0a,0x07,0x09,0x08, +0x09,0x0d,0x09,0x0d,0x09,0x09,0x09,0x0c,0x05,0x0d,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x05,0x05,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0a,0x04,0x04,0x04,0x05,0x05,0x04,0x04,0x04,0x05,0x04,0x04,0x04,0x0e, +0x0e,0x0e,0x0e,0x08,0x0c,0x0c,0x08,0x07,0x08,0x08,0x09,0x08,0x0e,0x0d,0x0e,0x07,0x10,0x08,0x0d,0x0d,0x0d,0x0d,0x09,0x08,0x08,0x0c,0x09,0x0c,0x0b,0x09,0x07,0x07,0x10,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x16,0x0d,0x0d,0x07,0x04,0x07,0x04,0x07,0x04,0x04,0x04,0x08,0x09,0x09,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0e, +0x03,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x0b,0x13,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x08,0x09,0x08,0x09,0x07,0x06,0x06,0x0b,0x09, +0x0b,0x07,0x12,0x0e,0x09,0x09,0x0f,0x0d,0x0e,0x0c,0x10,0x0d,0x0f,0x0c,0x0a,0x08,0x0c,0x09,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x12,0x0d,0x0c,0x09,0x0c,0x09,0x13,0x0e,0x0d,0x00,0x10,0x10,0x10,0x08,0x00,0x00,0x09,0x08,0x0b,0x09,0x09,0x07,0x11,0x0e,0x0f,0x0e,0x0b,0x09,0x0b,0x09,0x08,0x07,0x0c,0x0a,0x08,0x07, +0x0d,0x0b,0x0b,0x09,0x10,0x0d,0x09,0x09,0x0c,0x0c,0x0d,0x07,0x03,0x07,0x0b,0x07,0x10,0x10,0x04,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0b,0x0c,0x04,0x03,0x04,0x03,0x0b,0x09,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x09,0x07,0x07,0x12,0x0d,0x12,0x0e,0x10,0x0e,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0a,0x07,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x05,0x08,0x04,0x0c,0x09,0x0e,0x0b,0x15,0x10,0x09,0x09,0x0b,0x0b,0x0d,0x0e,0x0c,0x09,0x10,0x0d,0x09,0x06,0x09,0x08,0x0a,0x08,0x0f,0x0c,0x0a,0x08,0x09,0x09,0x09,0x09,0x08,0x06,0x08,0x06,0x08,0x06,0x08,0x08,0x05,0x0b,0x05,0x0f,0x0b,0x06,0x09,0x0a,0x07, +0x0c,0x09,0x06,0x06,0x09,0x09,0x09,0x08,0x04,0x0c,0x0a,0x06,0x06,0x0a,0x07,0x0b,0x06,0x0c,0x0a,0x0a,0x07,0x0b,0x09,0x09,0x08,0x0c,0x09,0x0a,0x06,0x09,0x07,0x0c,0x07,0x08,0x0e,0x08,0x09,0x0e,0x04,0x12,0x0e,0x0e,0x13,0x0e,0x0f,0x0f,0x0e,0x0e,0x0f,0x08,0x08,0x0a,0x0b,0x0e,0x0b,0x0f,0x04,0x07,0x09,0x0e,0x10,0x0b,0x10,0x0a, +0x0a,0x0d,0x0b,0x12,0x0f,0x08,0x0f,0x05,0x0f,0x05,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x10,0x08,0x08,0x10,0x0c,0x08,0x08,0x0c,0x0b,0x05,0x05,0x0b,0x09,0x09,0x09,0x09,0x0c,0x05,0x05,0x0d,0x0c,0x05,0x05,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x06,0x09,0x08,0x0c,0x09,0x09,0x0e,0x0b,0x0c,0x0c,0x0d,0x0d,0x09,0x08,0x10,0x0d,0x11,0x0e,0x0b,0x09,0x05,0x05,0x09,0x0a,0x07,0x0a,0x08,0x09,0x08,0x0c,0x0d,0x06,0x09,0x07,0x03,0x06,0x09,0x09,0x03,0x03,0x03,0x03,0x06,0x06,0x06,0x07,0x18,0x20,0x05,0x07,0x02, +0x04,0x06,0x07,0x05,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x08,0x08,0x15,0x09,0x0c,0x0f,0x0e,0x0a,0x07,0x09,0x0c,0x0c,0x08,0x05,0x0b,0x08,0x0b,0x09,0x0b,0x09,0x09,0x0c,0x09,0x09,0x08,0x0c,0x0a,0x0d,0x07,0x08,0x0a,0x05,0x09,0x05,0x06,0x04,0x0e,0x09,0x09,0x08,0x08,0x09,0x0f,0x0f,0x0f, +0x10,0x10,0x09,0x08,0x05,0x08,0x07,0x0a,0x07,0x0b,0x04,0x09,0x0a,0x0e,0x0e,0x0a,0x09,0x09,0x09,0x08,0x07,0x08,0x07,0x08,0x05,0x05,0x04,0x04,0x06,0x09,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1b,0x10,0x0e,0x11,0x05,0x05,0x05,0x06,0x04,0x04,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x0f,0x05,0x05,0x0f,0x04,0x08,0x08,0x15,0x10,0x10,0x15,0x0f,0x08,0x08,0x0f,0x08,0x08,0x07,0x07,0x00,0x00,0x06,0x0c,0x0a,0x0b,0x09,0x14,0x11,0x0b,0x09,0x0b,0x09,0x15,0x10,0x0c,0x09,0x06,0x05,0x0a,0x00,0x0b,0x09,0x05,0x05,0x03,0x08,0x05,0x05,0x04,0x03,0x07,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x03,0x08,0x07,0x09,0x09,0x09,0x0f,0x0d,0x0d,0x0d,0x0d,0x0f,0x0a,0x0b,0x0a,0x06,0x0f,0x12,0x07,0x12,0x08,0x0d,0x0f,0x0f,0x0f,0x07,0x0c,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x09,0x09,0x0d,0x08,0x08,0x0f,0x05,0x05,0x0f,0x05,0x05,0x0f, +0x08,0x08,0x00,0x07,0x0d,0x05,0x05,0x10,0x08,0x08,0x0c,0x08,0x08,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x18,0x18,0x0e,0x00,0x00,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x10,0x0a,0x0a,0x11, +0x0a,0x0a,0x0f,0x0a,0x0b,0x0d,0x0a,0x0c,0x0e,0x0f,0x0a,0x0c,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0c,0x0a,0x0b,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0a,0x0a,0x0b,0x07,0x08,0x0a,0x0d,0x0c,0x09,0x00,0x00,0x11,0x22,0x0b,0x00,0x02,0x05,0x05,0x07,0x0a,0x09,0x0e,0x0e,0x04,0x05,0x05,0x07,0x0c,0x04,0x07,0x04,0x07,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x04,0x04,0x0c,0x0c,0x0c,0x08,0x10,0x0b,0x0a,0x0b,0x0c,0x09,0x08,0x0c,0x0c,0x05,0x06,0x0a,0x08,0x0f,0x0d,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x10,0x0a,0x09,0x0a,0x05,0x06,0x05,0x0c,0x07,0x05,0x09,0x0a,0x08,0x0a,0x09,0x05,0x0a,0x0a,0x04,0x04,0x08,0x04,0x0f,0x0a,0x0a,0x0a,0x0a,0x06, +0x07,0x06,0x0a,0x08,0x0c,0x08,0x08,0x08,0x05,0x04,0x05,0x0c,0x0b,0x0b,0x0b,0x09,0x0d,0x0d,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x04,0x04,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x09,0x09,0x08,0x07,0x08,0x09,0x07,0x0f,0x0f,0x0d,0x05,0x07,0x0c,0x0f,0x0d,0x0e,0x0c,0x0c, +0x0c,0x09,0x0a,0x09,0x0a,0x0d,0x09,0x07,0x07,0x0d,0x0e,0x0a,0x08,0x05,0x05,0x0c,0x0b,0x09,0x0c,0x0b,0x09,0x09,0x0c,0x0b,0x0b,0x0d,0x10,0x10,0x09,0x11,0x06,0x06,0x04,0x04,0x0c,0x0a,0x08,0x09,0x03,0x09,0x05,0x05,0x09,0x09,0x06,0x04,0x04,0x06,0x15,0x0b,0x09,0x0b,0x09,0x09,0x05,0x05,0x05,0x05,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c, +0x04,0x06,0x06,0x05,0x05,0x03,0x05,0x03,0x06,0x03,0x06,0x08,0x05,0x09,0x07,0x0a,0x08,0x04,0x0c,0x0a,0x09,0x08,0x0a,0x0a,0x0c,0x0c,0x06,0x06,0x06,0x10,0x0f,0x10,0x08,0x0c,0x0a,0x05,0x09,0x07,0x0b,0x08,0x0b,0x08,0x0a,0x07,0x04,0x0b,0x09,0x0b,0x09,0x0c,0x0b,0x0c,0x09,0x09,0x09,0x09,0x08,0x04,0x08,0x05,0x08,0x05,0x0d,0x0a, +0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x06,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0a,0x08,0x08,0x0d,0x0d,0x0a,0x0a,0x07,0x0a,0x08,0x0c,0x07,0x08,0x07,0x13,0x0b,0x08,0x0a,0x04,0x06,0x0e,0x06,0x0a,0x06,0x06,0x0a,0x06,0x0b,0x09,0x0b,0x08,0x0b,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c, +0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x05,0x04,0x05,0x04,0x06,0x04,0x0a,0x08,0x08,0x08,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x09,0x07,0x09,0x06,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x0c,0x09,0x08,0x04,0x0b,0x09,0x0f,0x0e,0x0d,0x0a,0x04,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x09,0x08,0x04,0x07, +0x09,0x0a,0x10,0x10,0x10,0x0f,0x07,0x07,0x04,0x05,0x05,0x0b,0x0a,0x0d,0x06,0x0e,0x0b,0x0e,0x05,0x0b,0x0a,0x09,0x0a,0x0c,0x05,0x0a,0x0b,0x0f,0x0d,0x09,0x0d,0x0c,0x0a,0x09,0x09,0x09,0x0a,0x0d,0x0d,0x05,0x09,0x0a,0x07,0x0a,0x05,0x09,0x09,0x09,0x08,0x0a,0x0a,0x05,0x09,0x08,0x0a,0x09,0x08,0x0a,0x0a,0x08,0x09,0x09,0x0d,0x0e, +0x05,0x09,0x0a,0x09,0x0e,0x09,0x0c,0x08,0x0b,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x0f,0x09,0x0d,0x0d,0x0a,0x0b,0x0f,0x0c,0x0d,0x0c,0x0a,0x0b,0x09,0x0a,0x0c,0x0a,0x0d,0x0b,0x10,0x11,0x0c,0x0d,0x0a,0x0a,0x11,0x0a,0x09,0x0a,0x09,0x07,0x09,0x09,0x0d,0x08,0x0a,0x0a,0x08,0x09,0x0c,0x0a,0x0a, +0x0a,0x0a,0x08,0x07,0x08,0x0c,0x08,0x0a,0x0a,0x0e,0x0e,0x0a,0x0c,0x09,0x08,0x0e,0x09,0x09,0x0a,0x07,0x08,0x07,0x04,0x0d,0x0e,0x0a,0x08,0x08,0x0a,0x08,0x07,0x11,0x13,0x0b,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x09,0x0d,0x0a,0x0c,0x0a,0x05,0x06,0x05,0x05,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x08,0x05,0x05,0x05,0x08, +0x08,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d, +0x0a,0x0d,0x0a,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x06,0x09,0x09,0x0d,0x0a,0x05,0x06,0x04,0x04,0x09,0x07,0x0f,0x0d,0x0a,0x09,0x0a,0x08,0x0d,0x0a,0x09,0x08,0x09,0x08,0x0b,0x08,0x0b,0x0a,0x0b,0x0a,0x0c,0x09,0x0d,0x0a,0x05,0x05,0x05,0x05,0x07, +0x07,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x08,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x08,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x05,0x04,0x05,0x04,0x0a,0x08,0x0a, +0x08,0x0a,0x08,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x07,0x09,0x06,0x09,0x06,0x09,0x06,0x09,0x06,0x0c, +0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x08,0x0b,0x08,0x10,0x0c,0x10,0x0c,0x0a,0x08,0x0a,0x08,0x09,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0c,0x08,0x09,0x04,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x07,0x07,0x0a,0x0a,0x05,0x05,0x0a,0x0a,0x09,0x09,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10, +0x10,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x08,0x0c,0x0d,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0c,0x0b,0x0f,0x05,0x05,0x0a,0x08,0x04,0x08,0x0f,0x0d,0x0a,0x0d,0x10,0x0d,0x0a,0x0a,0x0a,0x09,0x07,0x09, +0x05,0x06,0x09,0x06,0x09,0x0d,0x0c,0x0a,0x09,0x0a,0x08,0x0a,0x0a,0x08,0x07,0x09,0x09,0x06,0x07,0x09,0x04,0x07,0x08,0x05,0x15,0x13,0x11,0x0f,0x0c,0x09,0x12,0x10,0x0e,0x0b,0x09,0x05,0x04,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x09,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x0c,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a, +0x0d,0x0a,0x0a,0x08,0x04,0x15,0x13,0x11,0x0c,0x0a,0x11,0x0c,0x0d,0x0a,0x0b,0x09,0x0b,0x09,0x09,0x09,0x09,0x09,0x05,0x04,0x05,0x04,0x0d,0x0a,0x0d,0x0a,0x0a,0x06,0x0a,0x06,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x08,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x09,0x08,0x0a,0x09,0x0a,0x0a,0x0a, +0x09,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x0a,0x09,0x0a,0x07,0x07,0x09,0x09,0x05,0x0a,0x0a,0x09,0x08,0x08,0x0a,0x0a,0x0a,0x04,0x05,0x05,0x05,0x06,0x04,0x0a,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0c,0x0c,0x0b,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x07,0x04,0x04,0x05,0x05,0x06,0x06,0x0a,0x0a,0x09,0x08,0x0c,0x08,0x07,0x08, +0x09,0x08,0x08,0x06,0x06,0x06,0x08,0x0b,0x08,0x09,0x09,0x0a,0x04,0x08,0x07,0x0a,0x06,0x06,0x10,0x10,0x11,0x0a,0x08,0x0c,0x0d,0x0a,0x0a,0x08,0x08,0x09,0x0a,0x0a,0x0c,0x0a,0x0b,0x0e,0x0a,0x0c,0x0a,0x0a,0x08,0x08,0x08,0x0a,0x09,0x0a,0x08,0x0f,0x0f,0x0a,0x09,0x0b,0x09,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0a,0x07,0x0a,0x0a,0x08, +0x04,0x0d,0x08,0x08,0x0f,0x0c,0x0b,0x0a,0x0f,0x0c,0x0b,0x08,0x0f,0x0c,0x0c,0x0a,0x10,0x0d,0x09,0x08,0x0d,0x0d,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x16,0x13,0x0e,0x0b,0x13,0x0f,0x0f,0x0c,0x0a,0x07,0x09,0x07,0x07,0x00,0x00,0x11,0x10,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x08,0x0a,0x08,0x0c,0x0a,0x0e,0x0b,0x11,0x0e,0x0c,0x09,0x0b, +0x08,0x09,0x07,0x0f,0x0c,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x05,0x0f,0x0d,0x0a,0x09,0x0c,0x0a,0x0b,0x0a,0x0b,0x09,0x0b,0x09,0x0f,0x0e,0x09,0x09,0x0c,0x09,0x0c,0x09,0x0f,0x0d,0x09,0x08,0x09,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0a,0x0d,0x0c,0x0a,0x0a,0x0f,0x0f,0x0e,0x0c, +0x09,0x08,0x0f,0x0e,0x11,0x0e,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x0a,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x07,0x05,0x04,0x06,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0a,0x0a,0x0a,0x0a,0x06,0x05,0x05,0x06,0x05,0x05,0x05,0x05,0x05,0x06, +0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x05,0x03,0x04,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x04,0x04,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x0b,0x05,0x0b,0x06,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x0b,0x0e,0x08,0x08,0x09,0x09,0x07,0x07,0x04,0x05,0x08,0x07,0x0c,0x0a,0x0a,0x08,0x0b,0x0b,0x0b,0x10,0x09,0x0a,0x0a,0x08,0x08,0x08,0x07,0x09,0x0a,0x0c,0x0a,0x08,0x0c,0x08,0x07,0x07,0x09,0x07,0x08,0x0a,0x08,0x0a,0x0a,0x06,0x08,0x06,0x06,0x07,0x05,0x05,0x07, +0x07,0x03,0x04,0x06,0x05,0x09,0x07,0x07,0x07,0x06,0x06,0x06,0x05,0x07,0x09,0x05,0x05,0x06,0x08,0x06,0x06,0x05,0x05,0x04,0x04,0x06,0x03,0x05,0x08,0x06,0x06,0x05,0x06,0x06,0x06,0x03,0x06,0x06,0x08,0x05,0x05,0x06,0x05,0x06,0x07,0x05,0x03,0x04,0x06,0x05,0x06,0x05,0x06,0x07,0x05,0x0a,0x03,0x06,0x09,0x0f,0x0b,0x09,0x09,0x0f, +0x0b,0x0f,0x0d,0x09,0x0a,0x09,0x08,0x13,0x08,0x0a,0x0f,0x10,0x10,0x0b,0x0b,0x0b,0x08,0x08,0x09,0x07,0x08,0x09,0x03,0x00,0x00,0x00,0x00,0x0a,0x0b,0x0b,0x0b,0x08,0x07,0x0a,0x0a,0x05,0x0f,0x0a,0x0a,0x06,0x06,0x08,0x06,0x08,0x0a,0x08,0x0a,0x0f,0x0b,0x05,0x05,0x0a,0x09,0x0a,0x0a,0x0a,0x05,0x0a,0x08,0x04,0x0f,0x0a,0x0a,0x06, +0x07,0x07,0x08,0x08,0x08,0x09,0x0a,0x0a,0x09,0x07,0x08,0x0c,0x04,0x08,0x04,0x0a,0x08,0x06,0x05,0x05,0x06,0x04,0x03,0x03,0x06,0x06,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x08,0x08,0x06,0x06,0x06,0x06,0x06,0x04,0x03,0x03,0x06,0x06,0x06,0x05,0x05,0x04,0x04,0x05,0x04,0x06,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x06,0x05,0x05, +0x09,0x09,0x09,0x09,0x06,0x00,0x00,0x00,0x00,0x08,0x05,0x05,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x03, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x05,0x05,0x0d,0x0b,0x0c,0x0a,0x0d,0x0b,0x10,0x0d,0x09,0x06,0x09,0x0c,0x09,0x0e,0x0c,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e, +0x11,0x07,0x04,0x09,0x0a,0x07,0x09,0x09,0x0a,0x0a,0x09,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x0b,0x09,0x09,0x09,0x06,0x0a,0x06,0x0d,0x0b,0x09,0x06,0x0e,0x09,0x0e,0x04,0x06,0x0a,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0e,0x04,0x0a,0x04,0x09,0x07,0x04,0x04,0x09,0x04,0x0d,0x04,0x10,0x09,0x10,0x10,0x0a,0x0a,0x0a,0x09, +0x09,0x07,0x07,0x14,0x14,0x17,0x17,0x0e,0x0e,0x09,0x09,0x03,0x11,0x0d,0x0e,0x0b,0x0a,0x0b,0x09,0x09,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x04,0x0b,0x00,0x0b,0x0b,0x0b,0x06,0x09,0x09,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x07,0x10,0x09,0x10,0x09,0x0d,0x0e,0x06,0x09,0x09,0x07,0x04,0x09,0x0a,0x09,0x0a,0x09, +0x0a,0x0a,0x09,0x0b,0x0b,0x10,0x06,0x09,0x07,0x0b,0x09,0x06,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x04,0x0a,0x07,0x11,0x09,0x09,0x0b,0x0b,0x11,0x09,0x00,0x00,0x00,0x0b,0x00,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x07,0x07,0x09,0x09,0x0d,0x0e,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06, +0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x07,0x07,0x07,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x09,0x0a,0x0a,0x0a,0x11,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x11,0x09,0x09,0x0d, +0x0d,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x0b,0x06,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x10,0x0d,0x0e,0x06,0x09,0x0d,0x0e,0x0d,0x0e,0x00,0x00,0x00,0x00,0x00,0x13,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x00,0x0a,0x00,0x00,0x00,0x14,0x0e,0x17,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x10,0x10,0x06,0x0a,0x0a,0x0a,0x15,0x0e,0x09,0x1a,0x12,0x06,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x09, +0x07,0x07,0x0d,0x0b,0x0b,0x09,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x15,0x1a,0x00,0x00,0x00,0x00,0x00,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x09,0x09,0x07,0x14,0x0e,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, +0x0a,0x11,0x09,0x09,0x11,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x07,0x07,0x14,0x0e,0x0b,0x0a,0x0a,0x00,0x09,0x09,0x09,0x06,0x0a,0x0c,0x0b,0x09,0x09,0x06,0x04,0x0d,0x0a,0x0a,0x06,0x09,0x08,0x08,0x08,0x08,0x04,0x09,0x07,0x0b,0x08,0x0a, +0x08,0x09,0x07,0x0b,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x08,0x08,0x08,0x05,0x09,0x0a,0x0a,0x09,0x06,0x0d,0x0a,0x0b,0x09,0x0b,0x08,0x0a,0x09,0x07,0x0c,0x06,0x07,0x07,0x08,0x0a,0x0a,0x09,0x11,0x09,0x11,0x06,0x04,0x03,0x09,0x04,0x02,0x00,0x02,0x04,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x07,0x07,0x07,0x09,0x09,0x10,0x07,0x0d,0x0a,0x10,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x0b,0x0c,0x0c,0x0c,0x0d,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x12,0x0e,0x08,0x08,0x05,0x05,0x05,0x06,0x04,0x0a,0x04,0x04,0x0e,0x0b,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0b,0x0c,0x05,0x0a,0x09,0x09,0x0c,0x0b,0x05,0x07,0x0b,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x0a,0x0d,0x0c,0x09,0x09,0x09,0x04,0x06,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x0b,0x08,0x0c,0x09,0x09,0x0c,0x0a,0x0c, +0x09,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0a,0x07,0x08,0x0c,0x05,0x06,0x0c,0x05,0x0a,0x09,0x09,0x0b,0x07,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0d,0x0c,0x05,0x0a,0x09,0x0b,0x0b,0x14,0x00,0x0b,0x09,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x05,0x00,0x0d,0x0b,0x0b,0x0c,0x09,0x0b,0x0d,0x0d,0x08,0x0b,0x0d,0x0d,0x0b,0x0d,0x0e,0x0d,0x0b,0x09,0x0a,0x0d,0x0c,0x0a,0x0c,0x0c,0x0b,0x0c,0x0c,0x0d,0x0a,0x0b,0x0c,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x08,0x0a,0x0a,0x0f,0x09,0x09,0x0d,0x0f,0x0a,0x09,0x12,0x0a,0x0a,0x0d, +0x09,0x09,0x0d,0x0a,0x0d,0x0e,0x0f,0x09,0x0d,0x09,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0a,0x0d,0x09,0x0b,0x0b,0x09,0x09,0x0a,0x10,0x09,0x09,0x0a,0x0a,0x07,0x06,0x09,0x09,0x09,0x09,0x09,0x0f,0x09,0x0f,0x08,0x09,0x0f,0x0b,0x09,0x0f,0x0d,0x0d,0x0f,0x0a,0x09,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0a,0x09,0x0a,0x0f, +0x0a,0x09,0x09,0x09,0x0f,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0d,0x0c,0x0b,0x09,0x0d,0x0b,0x0c,0x0a,0x0b,0x0c,0x0d,0x0c,0x0a,0x0c,0x0b,0x0c,0x0b,0x0d,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0b,0x0d,0x0c,0x02,0x02,0x03,0x03,0x03,0x05,0x06,0x0f,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x05,0x0e,0x0a, +0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x05,0x0a,0x09,0x0a,0x07,0x0f,0x09,0x0a,0x0a,0x0a,0x0e,0x0a,0x0a,0x07,0x0e,0x0a,0x0a,0x0c,0x0c,0x04,0x05,0x13,0x13,0x13,0x13,0x18,0x09,0x09,0x04,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0a,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x08,0x07,0x0d,0x0b,0x0a,0x08,0x0a,0x08,0x07,0x07,0x0a,0x09,0x0e,0x09,0x08,0x08,0x0c,0x0d,0x07,0x0b,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07, +0x07,0x04,0x04,0x04,0x04,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x09,0x0a,0x0a,0x04,0x04,0x04,0x04,0x04,0x0a,0x05,0x08,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x0c,0x0b,0x09,0x08,0x07,0x09,0x07,0x08,0x0a,0x0a,0x04,0x08,0x09,0x0d,0x0b,0x08,0x0a,0x0a,0x08,0x08,0x07,0x08,0x0b,0x09,0x0b,0x0b,0x09,0x07,0x0a,0x04,0x0a,0x08,0x0b,0x04,0x08,0x07,0x0a,0x07,0x09,0x07,0x04,0x04,0x05,0x0e,0x0e,0x0a,0x08, +0x08,0x0a,0x09,0x08,0x08,0x07,0x0a,0x07,0x0d,0x08,0x0b,0x0b,0x08,0x0a,0x0d,0x0a,0x0a,0x0a,0x08,0x09,0x07,0x08,0x0b,0x09,0x0b,0x09,0x0e,0x0e,0x0a,0x0c,0x08,0x09,0x0f,0x08,0x07,0x0a,0x0a,0x0b,0x0f,0x0f,0x0b,0x09,0x0a,0x07,0x0a,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0a,0x0a,0x06,0x0b,0x0b,0x0a,0x08,0x08,0x0f,0x0d,0x08,0x09,0x0a, +0x0a,0x0b,0x0b,0x0c,0x0c,0x06,0x10,0x0a,0x09,0x0a,0x0b,0x0b,0x09,0x09,0x05,0x0d,0x0c,0x0c,0x08,0x0c,0x04,0x04,0x07,0x07,0x04,0x04,0x0a,0x07,0x05,0x0d,0x0c,0x05,0x04,0x04,0x08,0x06,0x06,0x04,0x04,0x04,0x06,0x0b,0x08,0x05,0x0a,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a,0x06,0x07,0x09,0x07,0x04,0x04,0x07,0x09,0x06,0x0b,0x0b,0x0b, +0x10,0x0d,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x0d,0x0e,0x06,0x06,0x09,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x09,0x09,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x09,0x09,0x10,0x10,0x09,0x09,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x11,0x0d,0x0e, +0x09,0x0a,0x0a,0x0b,0x06,0x0b,0x0d,0x09,0x09,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x06,0x0d,0x09,0x09,0x04,0x09,0x09,0x09,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x17,0x11,0x17,0x11,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x09,0x0d,0x09,0x09,0x10,0x09,0x12,0x11,0x10,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0b,0x0b,0x06,0x06,0x0b,0x06,0x0b, +0x06,0x0b,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x09,0x06,0x06,0x06,0x06,0x00,0x14,0x0e,0x17,0x11,0x10,0x09,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0x0a,0x0a,0x09,0x09,0x07,0x14,0x0e,0x11,0x11,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x0a,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x14,0x0e, +0x0a,0x0b,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x07,0x07,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0d,0x0e,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x10,0x06,0x10,0x06,0x0a,0x0b,0x0a,0x0a,0x14,0x14,0x0e,0x0e,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x00,0x00,0x04,0x04,0x06,0x04,0x00,0x00,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, +0x04,0x04,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0a,0x0e,0x0b,0x0b,0x0b,0x04,0x04,0x09,0x07,0x0a,0x0b,0x0a,0x09,0x09,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x08,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0a,0x0a,0x0b,0x09,0x0b,0x0d,0x0b,0x0d,0x0e,0x0b,0x0d,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x0a,0x0b,0x0a,0x0b,0x0a,0x0a,0x0a,0x09,0x09,0x0d,0x0c,0x0c,0x0b,0x0c,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0f,0x0e,0x09, +0x0d,0x0e,0x0d,0x0a,0x0e,0x0d,0x0c,0x0c,0x0a,0x0b,0x0d,0x0e,0x0c,0x0a,0x0c,0x0a,0x09,0x10,0x10,0x10,0x0e,0x10,0x10,0x0c,0x10,0x10,0x0c,0x0d,0x0d,0x0d,0x0c,0x0c,0x0b,0x0f,0x0d,0x0e,0x0c,0x0c,0x0a,0x0d,0x0c,0x0c,0x0e,0x0d,0x0c,0x0f,0x09,0x09,0x0a,0x09,0x0a,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x09,0x09,0x0a,0x0b,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x0b,0x0b,0x0b,0x0d,0x0b,0x0c,0x09,0x08,0x0a,0x0a,0x08,0x08,0x09,0x09,0x08,0x08,0x0b,0x08,0x09,0x08,0x09,0x0d,0x0a,0x0e,0x09,0x0a,0x0a,0x0d,0x05,0x0d,0x0c,0x0c,0x0b,0x0a,0x0d,0x0a,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0f,0x0f,0x0f,0x0f,0x08,0x0d,0x0c,0x08,0x07,0x08,0x09,0x0a,0x08,0x0e,0x0e,0x0f,0x08,0x11,0x08,0x0e,0x0e,0x0e,0x0e,0x0a,0x08,0x08,0x0d,0x0a,0x0d, +0x0b,0x09,0x08,0x07,0x11,0x07,0x09,0x08,0x08,0x08,0x08,0x08,0x17,0x0e,0x0e,0x07,0x04,0x08,0x04,0x08,0x04,0x04,0x04,0x08,0x0a,0x0a,0x09,0x06,0x06,0x04,0x04,0x04,0x06,0x04,0x07,0x0f,0x04,0x0f,0x0f,0x0f,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x0b,0x14,0x14,0x0b,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x08,0x0a,0x08,0x09,0x07,0x06,0x06,0x0c,0x09,0x0c,0x07,0x13,0x0f,0x0a,0x09,0x10,0x0d,0x0e,0x0d,0x11,0x0e,0x10,0x0d,0x0b,0x08,0x0c,0x0a,0x10,0x0c,0x0d,0x0a,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b, +0x13,0x0e,0x0d,0x0a,0x0d,0x0a,0x15,0x0f,0x0d,0x00,0x11,0x11,0x11,0x08,0x00,0x00,0x0a,0x09,0x0c,0x09,0x09,0x07,0x12,0x0f,0x10,0x0f,0x0c,0x0a,0x0c,0x0a,0x09,0x07,0x0d,0x0a,0x09,0x07,0x0e,0x0b,0x0b,0x0a,0x11,0x0e,0x09,0x0a,0x0c,0x0c,0x0e,0x08,0x03,0x08,0x0c,0x07,0x11,0x11,0x04,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x07,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x0c,0x0c,0x05,0x04,0x05,0x04,0x0c,0x0a,0x0d,0x0b,0x09,0x08,0x09,0x08,0x0a,0x0a,0x07,0x07,0x13,0x0e,0x14,0x0f,0x11,0x0e,0x0f,0x0b,0x0f,0x0b,0x0f,0x0b,0x0b,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x09,0x05,0x08,0x04,0x0d,0x0a,0x0f,0x0b,0x17,0x11,0x0a,0x0a,0x0c,0x0c,0x0e, +0x0f,0x0d,0x0a,0x11,0x0d,0x09,0x07,0x0a,0x08,0x0b,0x08,0x10,0x0c,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x08,0x07,0x08,0x07,0x08,0x06,0x09,0x09,0x05,0x0b,0x06,0x10,0x0b,0x06,0x0a,0x0a,0x08,0x0d,0x0a,0x06,0x06,0x0a,0x0a,0x0a,0x08,0x04,0x0d,0x0a,0x06,0x06,0x0b,0x08,0x0c,0x07,0x0d,0x0a,0x0b,0x08,0x0c,0x0a,0x0a,0x08,0x0d,0x0a,0x0a, +0x06,0x09,0x07,0x0d,0x07,0x09,0x0f,0x08,0x0a,0x0f,0x05,0x13,0x0f,0x0f,0x14,0x0f,0x10,0x10,0x0f,0x0f,0x10,0x09,0x08,0x0b,0x0c,0x0f,0x0c,0x10,0x04,0x08,0x0a,0x0f,0x12,0x0c,0x12,0x0b,0x0b,0x0e,0x0c,0x13,0x10,0x09,0x10,0x06,0x10,0x06,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x11,0x09,0x09,0x11,0x0d,0x09,0x09,0x0d,0x0b,0x06, +0x06,0x0b,0x0a,0x0a,0x0a,0x0a,0x0d,0x06,0x06,0x0e,0x0d,0x06,0x06,0x0e,0x07,0x07,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x09,0x07,0x0a,0x09,0x0d,0x0a,0x0a,0x0f,0x0b,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x11, +0x0e,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0a,0x0b,0x07,0x0a,0x09,0x0a,0x08,0x0d,0x0e,0x07,0x0a,0x07,0x04,0x06,0x09,0x09,0x04,0x04,0x03,0x04,0x06,0x06,0x06,0x08,0x19,0x22,0x06,0x07,0x02,0x05,0x07,0x07,0x05,0x08,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x17,0x09,0x0d,0x10,0x0f,0x0b,0x08, +0x0a,0x0c,0x0c,0x08,0x05,0x0b,0x09,0x0c,0x09,0x0b,0x09,0x09,0x0d,0x0a,0x0a,0x09,0x0d,0x0a,0x0e,0x08,0x09,0x0b,0x05,0x0a,0x06,0x06,0x04,0x0f,0x0a,0x0a,0x09,0x09,0x0a,0x10,0x10,0x10,0x11,0x11,0x09,0x08,0x05,0x09,0x08,0x0a,0x08,0x0b,0x04,0x0a,0x0a,0x0f,0x0f,0x0a,0x09,0x0a,0x09,0x09,0x08,0x09,0x08,0x08,0x05,0x06,0x04,0x04, +0x06,0x0a,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x05,0x05,0x05,0x04,0x04,0x1d,0x11,0x0f,0x12,0x05,0x05,0x06,0x07,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x10,0x06,0x06,0x10,0x04,0x09,0x09,0x17,0x11,0x11,0x17,0x10,0x09,0x09,0x10,0x09,0x09,0x07, +0x07,0x00,0x00,0x06,0x0d,0x0a,0x0c,0x0a,0x15,0x12,0x0c,0x09,0x0c,0x09,0x17,0x11,0x0d,0x0a,0x07,0x05,0x0b,0x00,0x0c,0x09,0x06,0x05,0x03,0x08,0x06,0x06,0x04,0x03,0x08,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x09,0x07,0x0a,0x0a,0x09,0x10,0x0e,0x0e,0x0d,0x0e,0x10,0x0b,0x0c,0x0a,0x07,0x10,0x13,0x07,0x14,0x09,0x0e,0x10, +0x10,0x10,0x07,0x0d,0x11,0x0d,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x0a,0x0a,0x0a,0x0e,0x09,0x09,0x10,0x06,0x06,0x10,0x06,0x06,0x10,0x08,0x08,0x00,0x07,0x0e,0x06,0x06,0x11,0x09,0x09,0x0d,0x09,0x09,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x05,0x1a,0x1a,0x0f,0x00,0x00,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0f,0x0b,0x0b,0x0e,0x11,0x0b,0x0b,0x12,0x0b,0x0b,0x10,0x0b,0x0b,0x0d,0x0b,0x0d,0x0e,0x10,0x0b,0x0d,0x0b,0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0d,0x0a,0x0b,0x0d,0x0b,0x0b,0x0a,0x0d, +0x0b,0x0b,0x0b,0x0c,0x08,0x09,0x0b,0x0d,0x0d,0x09,0x00,0x00,0x13,0x26,0x0c,0x00,0x02,0x05,0x05,0x07,0x0b,0x0a,0x10,0x0f,0x04,0x06,0x06,0x08,0x0d,0x04,0x08,0x04,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x04,0x04,0x0d,0x0d,0x0d,0x09,0x12,0x0c,0x0b,0x0c,0x0d,0x0a,0x09,0x0d,0x0d,0x05,0x07,0x0b,0x09,0x11,0x0e, +0x0e,0x0b,0x0e,0x0b,0x0a,0x0a,0x0d,0x0c,0x12,0x0b,0x0b,0x0b,0x06,0x07,0x06,0x0d,0x08,0x05,0x0a,0x0b,0x09,0x0b,0x0a,0x06,0x0b,0x0b,0x05,0x05,0x09,0x05,0x10,0x0b,0x0b,0x0b,0x0b,0x07,0x08,0x06,0x0b,0x09,0x0e,0x09,0x09,0x09,0x06,0x05,0x06,0x0d,0x0c,0x0c,0x0c,0x0a,0x0e,0x0e,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a, +0x0a,0x0a,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0a,0x0a,0x09,0x08,0x09,0x0a,0x08,0x11,0x11,0x0f,0x05,0x08,0x0d,0x10,0x0e,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x0a,0x0c,0x0e,0x0a,0x07,0x08,0x0e,0x10,0x0b,0x09,0x05,0x05,0x0d,0x0c,0x0a,0x0d,0x0c,0x0a,0x0a,0x0e,0x0c,0x0c,0x0e,0x12,0x12, +0x0a,0x13,0x07,0x07,0x04,0x04,0x0d,0x0b,0x09,0x0b,0x03,0x0a,0x06,0x06,0x0b,0x0b,0x07,0x04,0x04,0x07,0x17,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x05,0x07,0x06,0x06,0x06,0x04,0x05,0x04,0x06,0x04,0x07,0x09,0x05,0x0a,0x08,0x0b,0x09,0x05,0x0d,0x0b,0x0b,0x09,0x0b,0x0b,0x0d,0x0d,0x07,0x07, +0x07,0x12,0x11,0x12,0x09,0x0d,0x0b,0x05,0x0a,0x08,0x0c,0x09,0x0c,0x09,0x0b,0x08,0x04,0x0c,0x0a,0x0c,0x0a,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x09,0x05,0x09,0x06,0x09,0x06,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0a,0x08,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x09,0x0e,0x0e,0x0c,0x0b,0x08, +0x0b,0x09,0x0d,0x08,0x09,0x07,0x15,0x0c,0x09,0x0c,0x04,0x07,0x0f,0x06,0x0b,0x07,0x07,0x0b,0x07,0x0c,0x0a,0x0c,0x09,0x0c,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x05,0x0b,0x09,0x09,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, +0x0b,0x07,0x0a,0x08,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x0b,0x09,0x05,0x0c,0x0a,0x10,0x10,0x0e,0x0b,0x04,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x04,0x08,0x0a,0x0b,0x12,0x12,0x12,0x11,0x07,0x07,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x07,0x0f,0x0d,0x10,0x05,0x0c,0x0b,0x0a,0x0b,0x0d,0x05,0x0b,0x0c,0x11, +0x0e,0x0a,0x0e,0x0e,0x0b,0x0a,0x0a,0x0b,0x0b,0x0f,0x0e,0x05,0x0b,0x0c,0x08,0x0b,0x05,0x0b,0x0a,0x0a,0x08,0x0b,0x0b,0x05,0x0a,0x09,0x0b,0x0a,0x08,0x0b,0x0b,0x09,0x0b,0x0a,0x0e,0x0f,0x05,0x0b,0x0b,0x0b,0x0f,0x0a,0x0d,0x09,0x0c,0x0a,0x05,0x13,0x13,0x0e,0x0b,0x0b,0x0d,0x0c,0x0b,0x0b,0x09,0x0d,0x0a,0x10,0x0a,0x0e,0x0e,0x0b, +0x0d,0x11,0x0d,0x0e,0x0e,0x0b,0x0c,0x0a,0x0b,0x0e,0x0b,0x0e,0x0d,0x12,0x13,0x0d,0x0f,0x0b,0x0c,0x13,0x0b,0x0a,0x0b,0x0a,0x07,0x0a,0x0a,0x0e,0x08,0x0b,0x0b,0x09,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x0d,0x09,0x0b,0x0b,0x0f,0x10,0x0b,0x0d,0x0a,0x09,0x0f,0x0a,0x0a,0x0b,0x07,0x09,0x08,0x05,0x0f,0x0f,0x0b,0x09,0x09, +0x0b,0x09,0x07,0x13,0x15,0x0c,0x07,0x07,0x07,0x07,0x05,0x0a,0x08,0x0b,0x0e,0x0b,0x0d,0x0b,0x06,0x06,0x05,0x05,0x09,0x09,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x09,0x06,0x06,0x06,0x09,0x09,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x0a, +0x0a,0x0e,0x0b,0x05,0x07,0x05,0x05,0x0a,0x08,0x11,0x0f,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x0b,0x09,0x0b,0x09,0x0c,0x09,0x0c,0x0b,0x0d,0x0b,0x0e,0x0a,0x0e,0x0b,0x06,0x06,0x06,0x06,0x08,0x08,0x09,0x09,0x09,0x09,0x05,0x05,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x09,0x0d,0x0b,0x0d,0x0b,0x0d, +0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x05,0x05,0x05,0x05,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x09,0x05,0x09,0x05,0x09,0x05,0x09,0x05,0x11,0x10,0x11,0x10,0x11,0x10,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0a,0x06,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0c,0x09,0x0c,0x09,0x12,0x0e,0x12,0x0e,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, +0x09,0x0b,0x06,0x0e,0x09,0x0a,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x09,0x09,0x0a, +0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0f,0x0f,0x0d,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x0c,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x0e,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c, +0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x09,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0d,0x0c,0x11,0x05,0x05,0x0b,0x09,0x05,0x09,0x11,0x0e,0x0b,0x0e,0x12,0x0f,0x0b,0x0b,0x0b,0x0a,0x08,0x0a,0x06,0x06,0x0a,0x06,0x0a,0x0e,0x0e,0x0b,0x0a,0x0b,0x09,0x0c,0x0c,0x08,0x08,0x0a,0x0a,0x07,0x07,0x0a,0x05,0x07,0x09,0x05,0x18,0x16,0x13,0x10, +0x0e,0x0a,0x14,0x12,0x0f,0x0c,0x0a,0x05,0x05,0x0e,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0d,0x0b,0x0a,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0d,0x0b,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0e,0x0b,0x0c,0x08,0x05,0x18,0x16,0x13,0x0d,0x0b,0x13,0x0d,0x0e,0x0b,0x0c,0x0a,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x05,0x05,0x05,0x05,0x0e,0x0b, +0x0e,0x0b,0x0b,0x07,0x0b,0x07,0x0d,0x0b,0x0d,0x0b,0x0a,0x08,0x0d,0x0b,0x0e,0x0b,0x0b,0x0b,0x09,0x0c,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x09,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x09,0x09,0x0b,0x0b,0x0a,0x0c,0x08,0x08,0x0a,0x0a,0x05,0x0b,0x0b,0x0a,0x09,0x09,0x0b,0x0b,0x0b,0x05,0x05,0x06,0x05,0x07, +0x05,0x0b,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0d,0x0e,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x09,0x09,0x08,0x05,0x05,0x05,0x05,0x06,0x06,0x0b,0x0b,0x0b,0x09,0x0e,0x09,0x08,0x09,0x0a,0x08,0x08,0x07,0x07,0x07,0x09,0x0c,0x09,0x0a,0x0a,0x0b,0x05,0x09,0x07,0x0b,0x07,0x07,0x11,0x12,0x13,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x09, +0x09,0x0a,0x0b,0x0b,0x0d,0x0b,0x0c,0x0f,0x0b,0x0d,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0a,0x0c,0x09,0x11,0x10,0x0b,0x0a,0x0c,0x0a,0x0c,0x09,0x0b,0x09,0x0d,0x0b,0x0b,0x08,0x0b,0x0b,0x09,0x05,0x0e,0x09,0x09,0x10,0x0d,0x0c,0x0b,0x11,0x0e,0x0d,0x09,0x11,0x0d,0x0e,0x0b,0x12,0x0e,0x0a,0x09,0x0f,0x0e,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b, +0x19,0x15,0x10,0x0c,0x15,0x11,0x10,0x0d,0x0b,0x08,0x0a,0x07,0x08,0x00,0x00,0x13,0x12,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0a,0x09,0x0b,0x09,0x0d,0x0b,0x10,0x0d,0x13,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x08,0x11,0x0d,0x0d,0x0b,0x10,0x0c,0x10,0x0c,0x05,0x10,0x0e,0x0b,0x0a,0x0d,0x0b,0x0c,0x0b,0x0c,0x0a,0x0c,0x0a,0x10,0x10,0x0a,0x0a, +0x0e,0x0a,0x0e,0x0a,0x10,0x0e,0x0a,0x08,0x0a,0x08,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0d,0x0b,0x0f,0x0d,0x0b,0x0b,0x10,0x10,0x0f,0x0e,0x0b,0x09,0x11,0x0f,0x13,0x10,0x0e,0x0a,0x0d,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x04,0x04,0x0b,0x06,0x06,0x03,0x04,0x04,0x04,0x05,0x08,0x05,0x04,0x07,0x04,0x04,0x04,0x06,0x06,0x04,0x04,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x05,0x06,0x06,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0x05,0x05,0x04,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x06,0x08,0x06,0x05,0x05,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x07,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0a, +0x0a,0x0a,0x07,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x0c,0x06,0x0c,0x06,0x0b,0x0b,0x06,0x06,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x0d,0x10,0x09,0x09,0x0a,0x0b,0x08,0x08,0x05,0x06,0x09,0x07,0x0d,0x0b,0x0b, +0x09,0x0c,0x0c,0x0c,0x12,0x0a,0x0b,0x0b,0x09,0x09,0x09,0x08,0x0a,0x0b,0x0e,0x0b,0x09,0x0e,0x09,0x08,0x08,0x0a,0x07,0x09,0x0b,0x09,0x0b,0x0b,0x07,0x09,0x07,0x07,0x08,0x06,0x06,0x08,0x08,0x04,0x04,0x07,0x05,0x0a,0x08,0x08,0x08,0x07,0x06,0x07,0x06,0x08,0x0a,0x06,0x06,0x07,0x09,0x07,0x07,0x06,0x06,0x05,0x05,0x07,0x03,0x06, +0x09,0x06,0x07,0x05,0x07,0x07,0x07,0x04,0x06,0x06,0x09,0x05,0x06,0x06,0x06,0x07,0x08,0x06,0x03,0x04,0x06,0x05,0x06,0x06,0x07,0x08,0x06,0x0b,0x03,0x07,0x0a,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0a,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x11,0x12,0x12,0x0c,0x0c,0x0c,0x09,0x09,0x0a,0x08,0x09,0x0a,0x04,0x00,0x00,0x00,0x00,0x0b, +0x0c,0x0c,0x0c,0x09,0x07,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x07,0x06,0x09,0x06,0x09,0x0b,0x09,0x0b,0x11,0x0c,0x06,0x05,0x0b,0x0a,0x0b,0x0b,0x0b,0x06,0x0b,0x09,0x05,0x10,0x0b,0x0b,0x07,0x08,0x08,0x09,0x09,0x09,0x0a,0x0b,0x0b,0x0a,0x08,0x08,0x0e,0x05,0x09,0x05,0x0b,0x08,0x07,0x05,0x05,0x07,0x05,0x03,0x03,0x07,0x06,0x03,0x03, +0x03,0x03,0x03,0x03,0x03,0x04,0x09,0x09,0x06,0x06,0x07,0x06,0x07,0x04,0x03,0x04,0x06,0x07,0x06,0x06,0x05,0x05,0x05,0x06,0x05,0x07,0x00,0x00,0x00,0x00,0x04,0x06,0x06,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x00,0x00,0x00,0x00,0x09,0x06,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0b,0x0b,0x0b,0x0b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, +0x06,0x06,0x0f,0x0c,0x0d,0x0b,0x0e,0x0c,0x12,0x0e,0x0a,0x07,0x0a,0x0d,0x0a,0x10,0x0d,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x13,0x08,0x05,0x0a,0x0b,0x08,0x0a,0x0a,0x0b,0x0b,0x0a,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x06,0x0b,0x06,0x0e, +0x0d,0x0a,0x06,0x10,0x0a,0x10,0x05,0x06,0x0b,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x10,0x05,0x0b,0x05,0x0a,0x08,0x05,0x05,0x0a,0x05,0x0e,0x05,0x11,0x0a,0x11,0x11,0x0b,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x16,0x16,0x19,0x19,0x10,0x10,0x0a,0x0a,0x03,0x13,0x0e,0x10,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x0b,0x05,0x0c,0x00,0x0c,0x0c,0x0c,0x06,0x0a,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x08,0x11,0x0a,0x11,0x0a,0x0e,0x10,0x06,0x0a,0x0a,0x08,0x05,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0d,0x0c,0x11,0x06,0x0a,0x08,0x0d,0x0a,0x06,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x05,0x0b,0x07,0x13,0x0a,0x0a,0x0c,0x0c,0x13, +0x0a,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x0a,0x0a,0x0e,0x10,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x08,0x08,0x08,0x0a,0x08,0x08,0x08,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x0a,0x0b,0x0b,0x0b,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x0e,0x0e,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d, +0x06,0x0d,0x06,0x0d,0x0d,0x06,0x0d,0x06,0x0a,0x0d,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x0e,0x10,0x06,0x0a,0x0e,0x10,0x0e,0x10,0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x08,0x00,0x00,0x0b,0x00,0x00,0x00,0x16,0x10,0x19,0x13,0x0a,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x11,0x11,0x07,0x0b,0x0b,0x0b,0x17,0x10,0x0a,0x1d,0x15,0x06,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x08,0x08,0x0e,0x0d,0x0d,0x0a,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x18,0x1d,0x00,0x00,0x00,0x00,0x00,0x0b,0x0a,0x00,0x00,0x00,0x00,0x00,0x00, +0x11,0x08,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0d,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x13,0x0a,0x0a,0x13,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0d, +0x06,0x06,0x08,0x08,0x16,0x10,0x0c,0x0b,0x0b,0x00,0x0a,0x0a,0x0a,0x07,0x0b,0x0d,0x0c,0x0a,0x0a,0x07,0x05,0x0e,0x0b,0x0b,0x07,0x0b,0x09,0x09,0x09,0x09,0x05,0x0a,0x08,0x0c,0x09,0x0b,0x09,0x0a,0x08,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x09,0x09,0x09,0x05,0x0a,0x0b,0x0b,0x0a,0x06,0x0e,0x0b,0x0c,0x0a, +0x0c,0x09,0x0b,0x0a,0x08,0x0d,0x07,0x08,0x08,0x09,0x0b,0x0b,0x0a,0x13,0x0a,0x13,0x06,0x05,0x03,0x0a,0x04,0x02,0x00,0x03,0x04,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x12,0x08,0x0e,0x0b,0x12,0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x12,0x10,0x09,0x10,0x09,0x10,0x0c, +0x0d,0x0d,0x0d,0x0f,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x14,0x10,0x09,0x09,0x05,0x05,0x05,0x07,0x04,0x0b,0x04,0x04,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0c,0x0b,0x08,0x09,0x0d,0x05,0x06,0x0d,0x0d,0x05, +0x0b,0x0a,0x0a,0x0d,0x0d,0x05,0x08,0x0d,0x0b,0x0c,0x0c,0x0b,0x0b,0x0d,0x0b,0x0f,0x0e,0x0a,0x0a,0x0a,0x04,0x07,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b,0x0c,0x09,0x0d,0x0a,0x0a,0x0d,0x0b,0x0e,0x0a,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0b,0x08,0x09,0x0d,0x06,0x07,0x0d,0x06,0x0b,0x0a,0x0a,0x0d,0x08,0x0d,0x0c,0x0c,0x0b,0x0d,0x0b,0x0f, +0x0e,0x05,0x0b,0x0a,0x0c,0x0c,0x17,0x00,0x0c,0x0a,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x00,0x0e,0x0c,0x0d,0x0d,0x0a,0x0d,0x0e,0x0e,0x09,0x0c,0x0e,0x0e,0x0d,0x0e,0x0f,0x0f, +0x0d,0x0a,0x0b,0x0e,0x0d,0x0b,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0b,0x0c,0x0d,0x0c,0x0f,0x0c,0x0c,0x0c,0x0d,0x10,0x09,0x0b,0x0b,0x11,0x0a,0x0a,0x0f,0x11,0x0c,0x0a,0x14,0x0b,0x0b,0x0e,0x0a,0x0a,0x0e,0x0b,0x0e,0x0f,0x11,0x0a,0x0f,0x0a,0x0c,0x0a,0x0c,0x0b,0x0c,0x0a,0x0b,0x0f,0x0a,0x0c,0x0d,0x0a,0x0a,0x0b,0x12,0x0a,0x0a,0x0b, +0x0b,0x08,0x06,0x0b,0x0b,0x0b,0x0a,0x0b,0x11,0x0b,0x11,0x09,0x0b,0x11,0x0d,0x0b,0x11,0x0e,0x0e,0x11,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x0a,0x0b,0x0b,0x11,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0f,0x0d,0x0c,0x0a,0x0f,0x0d,0x0d,0x0b,0x0d,0x0d,0x0e,0x0e,0x0b,0x0d,0x0d, +0x0e,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d,0x0c,0x0d,0x0d,0x0e,0x0f,0x0c,0x0e,0x0e,0x02,0x02,0x03,0x04,0x03,0x05,0x07,0x10,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x0c,0x0b,0x0b,0x06,0x10,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x05,0x0b,0x0a,0x0b,0x08,0x10,0x0a,0x0b,0x0b,0x0b,0x10,0x0b,0x0b,0x07,0x10,0x0b,0x0b,0x0d,0x0d,0x04,0x05,0x16, +0x15,0x15,0x16,0x1b,0x0a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x0a,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x09,0x0a,0x0b,0x08,0x08,0x0b, +0x0c,0x05,0x06,0x09,0x08,0x0e,0x0c,0x0c,0x09,0x0c,0x09,0x08,0x08,0x0b,0x0a,0x0f,0x0a,0x09,0x09,0x0d,0x0f,0x08,0x0c,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x08,0x08,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08, +0x08,0x0b,0x0b,0x0a,0x0c,0x0c,0x05,0x05,0x05,0x05,0x05,0x0b,0x06,0x09,0x08,0x08,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0d,0x0c,0x0a,0x09,0x07,0x0a,0x08,0x09,0x0c,0x0c,0x05, +0x09,0x0a,0x0e,0x0c,0x09,0x0c,0x0c,0x09,0x09,0x08,0x09,0x0c,0x0a,0x0c,0x0c,0x0a,0x08,0x0c,0x05,0x0c,0x09,0x0c,0x05,0x09,0x08,0x0b,0x08,0x0a,0x08,0x05,0x05,0x06,0x0f,0x10,0x0c,0x09,0x09,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x08,0x0e,0x08,0x0c,0x0c,0x09,0x0b,0x0e,0x0c,0x0c,0x0c,0x09,0x0a,0x08,0x09,0x0c,0x0a,0x0c,0x0a,0x0f,0x10, +0x0b,0x0d,0x09,0x0a,0x10,0x09,0x08,0x0b,0x0b,0x0c,0x11,0x11,0x0d,0x0a,0x0b,0x08,0x0b,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0b,0x0b,0x07,0x0c,0x0c,0x0b,0x09,0x09,0x11,0x0e,0x09,0x0a,0x0b,0x0b,0x0c,0x0c,0x0d,0x0d,0x07,0x12,0x0b,0x0b,0x0b,0x0c,0x0c,0x0a,0x0a,0x05,0x0e,0x0d,0x0d,0x09,0x0d,0x04,0x04,0x08,0x08,0x04,0x04,0x0c,0x08, +0x05,0x0e,0x0d,0x05,0x04,0x04,0x09,0x07,0x07,0x04,0x04,0x04,0x07,0x0d,0x09,0x06,0x0c,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x08,0x0a,0x08,0x04,0x04,0x07,0x0a,0x06,0x0d,0x0d,0x0d,0x11,0x0e,0x11,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x0e,0x10,0x06,0x06,0x0a,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0a,0x0a,0x16, +0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x0a,0x0a,0x11,0x11,0x0a,0x0a,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10,0x06,0x06,0x13,0x0e,0x10,0x0a,0x0b,0x0b,0x0d,0x06,0x0d,0x0e,0x0a,0x0a,0x06,0x06,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x11,0x06,0x0e,0x0a, +0x0a,0x05,0x0a,0x0a,0x0a,0x0a,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x16,0x10,0x16,0x10,0x16,0x10,0x19,0x13,0x19,0x13,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x0e,0x0a,0x0a,0x0e,0x0a,0x0a,0x11, +0x0a,0x15,0x13,0x11,0x0a,0x10,0x0a,0x10,0x0a,0x10,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x0d,0x0d,0x06,0x06,0x0d,0x06,0x0d,0x06,0x0d,0x0a,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x0a,0x06,0x06,0x06,0x06,0x00,0x16,0x10,0x19,0x13,0x11,0x0a, +0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0a,0x0a,0x08,0x16,0x10,0x13,0x13,0x11,0x11,0x11,0x0b,0x0b,0x0b,0x0b,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x16,0x10,0x0b,0x0d,0x0b,0x0b,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x08,0x08,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x06,0x06,0x0e,0x10,0x06,0x06,0x0e,0x10, +0x06,0x06,0x0e,0x10,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x11,0x06,0x11,0x06,0x0b,0x0d,0x0b,0x0b,0x16,0x16,0x10,0x10,0x16,0x16,0x10,0x10,0x10,0x10,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x06,0x05,0x00,0x00,0x00,0x10,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0b,0x10,0x0d,0x0d,0x0d,0x05,0x05,0x0a,0x08,0x0b,0x0c,0x0b,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0a,0x0d,0x0e,0x0c,0x0e,0x10,0x0c,0x0f,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0a,0x09,0x0a,0x0c,0x0b,0x0d,0x0b,0x0c,0x0b,0x0b,0x0b,0x0a,0x0a,0x0e,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x12,0x12,0x0d,0x12,0x12,0x0e,0x11,0x10,0x0b,0x0f,0x10,0x0e,0x0b,0x10,0x0e,0x0d,0x0d,0x0b,0x0c,0x0e,0x0f,0x0d,0x0c,0x0d,0x0b,0x0a,0x12,0x11,0x11,0x10,0x12,0x12,0x0d,0x12,0x12,0x0d,0x0f, +0x0f,0x0e,0x0e,0x0e,0x0c,0x11,0x0f,0x10,0x0e,0x0e,0x0b,0x0e,0x0d,0x0d,0x10,0x0e,0x0e,0x11,0x0a,0x0a,0x0b,0x0a,0x0c,0x0c,0x0d,0x0e,0x0b,0x0b,0x0b,0x0a,0x0b,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0c,0x0f,0x10,0x0c,0x0c,0x0c,0x0f,0x0c,0x0d,0x0a,0x09,0x0b,0x0b,0x09,0x09, +0x0a,0x0b,0x09,0x09,0x0c,0x09,0x0a,0x09,0x0a,0x0f,0x0b,0x10,0x0a,0x0b,0x0b,0x0e,0x06,0x0f,0x0d,0x0e,0x0d,0x0b,0x0e,0x0b,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x08,0x09,0x09,0x09,0x09,0x09,0x06,0x06,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x0c,0x05,0x05,0x05,0x06,0x06, +0x05,0x05,0x05,0x06,0x05,0x05,0x05,0x11,0x11,0x11,0x11,0x09,0x0e,0x0e,0x09,0x08,0x09,0x0a,0x0b,0x09,0x10,0x10,0x10,0x08,0x13,0x09,0x10,0x10,0x10,0x0f,0x0b,0x09,0x09,0x0f,0x0b,0x0f,0x0d,0x0a,0x09,0x08,0x13,0x08,0x0a,0x09,0x09,0x09,0x09,0x09,0x1a,0x10,0x10,0x08,0x05,0x09,0x05,0x09,0x05,0x05,0x05,0x09,0x0b,0x0b,0x0a,0x07, +0x07,0x04,0x04,0x04,0x07,0x04,0x08,0x10,0x04,0x11,0x11,0x11,0x0b,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x0d,0x16,0x16,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x09, +0x0b,0x09,0x0a,0x08,0x07,0x07,0x0d,0x0a,0x0e,0x08,0x15,0x11,0x0b,0x0b,0x12,0x0f,0x10,0x0e,0x13,0x0f,0x12,0x0f,0x0c,0x09,0x0e,0x0b,0x12,0x0e,0x0e,0x0c,0x0e,0x0b,0x10,0x0d,0x11,0x0d,0x15,0x10,0x0e,0x0b,0x0e,0x0b,0x17,0x11,0x0f,0x00,0x13,0x13,0x13,0x09,0x00,0x00,0x0b,0x0a,0x0d,0x0b,0x0a,0x08,0x14,0x11,0x12,0x10,0x0e,0x0b, +0x0d,0x0b,0x0a,0x08,0x0e,0x0b,0x0a,0x08,0x10,0x0d,0x0d,0x0b,0x13,0x10,0x0a,0x0b,0x0e,0x0e,0x0f,0x09,0x04,0x09,0x0d,0x08,0x13,0x13,0x05,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x08,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09,0x0d,0x0e,0x05,0x04,0x05,0x04,0x0d,0x0b,0x0e,0x0c,0x0b,0x09,0x0a,0x09,0x0b,0x0b,0x08, +0x08,0x15,0x10,0x16,0x11,0x13,0x10,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x0c,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0a,0x06,0x09,0x05,0x0e,0x0b,0x10,0x0d,0x19,0x13,0x0b,0x0b,0x0d,0x0d,0x0f,0x10,0x0e,0x0b,0x13,0x0f,0x0a,0x08,0x0b,0x09,0x0c,0x09,0x12,0x0e,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x09,0x08,0x09,0x07,0x09,0x07,0x0a,0x0a,0x06, +0x0d,0x06,0x12,0x0d,0x07,0x0b,0x0c,0x09,0x0e,0x0b,0x07,0x07,0x0b,0x0b,0x0b,0x09,0x05,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x0d,0x07,0x0f,0x0b,0x0c,0x09,0x0d,0x0b,0x0b,0x09,0x0e,0x0b,0x0b,0x07,0x0a,0x08,0x0e,0x08,0x0a,0x10,0x09,0x0b,0x11,0x05,0x16,0x11,0x11,0x16,0x11,0x11,0x11,0x11,0x11,0x12,0x0a,0x09,0x0c,0x0d,0x11,0x0d,0x12, +0x05,0x09,0x0b,0x10,0x14,0x0d,0x14,0x0c,0x0c,0x0f,0x0d,0x16,0x12,0x0a,0x11,0x06,0x11,0x06,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x10,0x10,0x13,0x0a,0x0a,0x13,0x0e,0x0a,0x0a,0x0e,0x0d,0x06,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0e,0x06,0x06,0x10,0x0e,0x06,0x06,0x10,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0a,0x08,0x0b,0x0a,0x0e,0x0b,0x0b,0x11,0x0d,0x0e,0x0e,0x10,0x10,0x0b,0x09,0x13,0x0f,0x14,0x10,0x0d,0x0b,0x06,0x06,0x0b,0x0c,0x08,0x0b,0x0a,0x0b,0x09,0x0e,0x0f,0x08,0x0b,0x08,0x04,0x07,0x0a,0x0a,0x04,0x04,0x03,0x04,0x07, +0x07,0x07,0x09,0x1c,0x26,0x06,0x08,0x03,0x05,0x07,0x08,0x06,0x09,0x0a,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x19,0x0a,0x0e,0x11,0x11,0x0c,0x09,0x0b,0x0e,0x0e,0x09,0x06,0x0d,0x0a,0x0d,0x0b,0x0d,0x0a,0x0a,0x0e,0x0b,0x0b,0x0a,0x0e,0x0c,0x10,0x09,0x0a,0x0c,0x06,0x0b,0x06,0x07,0x05,0x11, +0x0b,0x0b,0x0a,0x0a,0x0b,0x12,0x12,0x12,0x13,0x13,0x0a,0x09,0x05,0x0a,0x09,0x0c,0x09,0x0d,0x05,0x0b,0x0b,0x10,0x10,0x0c,0x0a,0x0b,0x0a,0x0a,0x09,0x0a,0x09,0x09,0x06,0x06,0x05,0x04,0x07,0x0b,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x05,0x05,0x05,0x05,0x05,0x20,0x13,0x11, +0x14,0x05,0x05,0x06,0x08,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x11,0x06,0x06,0x11,0x05,0x0a,0x0a,0x19,0x13,0x13,0x19,0x11,0x0a,0x0a,0x11,0x0a,0x0a,0x08,0x08,0x00,0x00,0x07,0x0e,0x0b,0x0d,0x0b,0x18,0x14,0x0d,0x0a,0x0d,0x0a,0x19,0x13,0x0e,0x0b,0x07,0x06,0x0c,0x00,0x0d,0x0a,0x06,0x06,0x03,0x09, +0x06,0x07,0x05,0x04,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x04,0x0a,0x08,0x0b,0x0b,0x0a,0x12,0x0f,0x0f,0x0f,0x10,0x12,0x0c,0x0d,0x0b,0x07,0x12,0x15,0x08,0x16,0x0a,0x10,0x11,0x11,0x11,0x08,0x0e,0x13,0x0e,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x0b,0x0b,0x0b,0x10,0x0a, +0x0a,0x11,0x06,0x06,0x11,0x06,0x06,0x11,0x09,0x09,0x00,0x08,0x10,0x06,0x06,0x13,0x0a,0x0a,0x0e,0x0a,0x0a,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x1d,0x1d,0x11,0x00,0x00,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0c,0x0c,0x0c, +0x11,0x0c,0x0c,0x0f,0x13,0x0c,0x0c,0x14,0x0c,0x0c,0x12,0x0c,0x0d,0x0f,0x0c,0x0f,0x10,0x11,0x0c,0x0f,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0d,0x0c,0x0f,0x0b,0x0d,0x0f,0x0c,0x0c,0x0b,0x0f,0x0c,0x0c,0x0c,0x0d,0x08,0x0a,0x0c,0x0f,0x0f,0x0a,0x00,0x00,0x15,0x2a,0x0e,0x00,0x02,0x06,0x06,0x08,0x0c,0x0b,0x11,0x11,0x05,0x06,0x06,0x09, +0x0e,0x05,0x08,0x05,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x0e,0x0e,0x0e,0x09,0x14,0x0e,0x0c,0x0d,0x0f,0x0b,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x13,0x10,0x10,0x0c,0x10,0x0d,0x0b,0x0b,0x0e,0x0d,0x14,0x0c,0x0c,0x0c,0x06,0x08,0x06,0x0e,0x09,0x06,0x0b,0x0c,0x0a,0x0c,0x0b,0x07,0x0c,0x0c,0x05,0x05, +0x0a,0x05,0x12,0x0c,0x0c,0x0c,0x0c,0x07,0x09,0x07,0x0c,0x0a,0x0f,0x0a,0x0a,0x0a,0x06,0x05,0x06,0x0e,0x0e,0x0e,0x0d,0x0b,0x10,0x10,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x05,0x05,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0b,0x0b,0x09,0x09,0x0a,0x0b,0x08,0x13,0x13,0x10, +0x06,0x09,0x0e,0x12,0x10,0x11,0x0e,0x0e,0x0e,0x0b,0x0c,0x0b,0x0d,0x10,0x0b,0x08,0x09,0x10,0x11,0x0c,0x09,0x06,0x06,0x0e,0x0e,0x0b,0x0e,0x0e,0x0b,0x0b,0x0f,0x0e,0x0e,0x10,0x14,0x13,0x0b,0x15,0x08,0x08,0x05,0x05,0x0e,0x0c,0x0a,0x0c,0x04,0x0b,0x07,0x07,0x0c,0x0c,0x08,0x05,0x05,0x08,0x19,0x0e,0x0b,0x0e,0x0b,0x0b,0x06,0x06, +0x06,0x06,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x05,0x08,0x07,0x07,0x06,0x04,0x06,0x04,0x07,0x04,0x08,0x0a,0x06,0x0b,0x09,0x0c,0x0a,0x05,0x0f,0x0c,0x0c,0x0a,0x0c,0x0c,0x0e,0x0e,0x07,0x08,0x08,0x14,0x13,0x14,0x0a,0x0e,0x0c,0x06,0x0b,0x09,0x0d,0x0a,0x0d,0x0a,0x0c,0x09,0x05,0x0e,0x0b,0x0e,0x0b,0x0f,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b, +0x0a,0x05,0x0a,0x06,0x0a,0x07,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0b,0x09,0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x0c,0x0a,0x0a,0x10,0x10,0x0d,0x0c,0x09,0x0c,0x0a,0x0f,0x09,0x0a,0x08,0x17,0x0d,0x0a,0x0d,0x05,0x08,0x11,0x07,0x0d,0x07,0x07,0x0d,0x07,0x0e,0x0b,0x0d,0x0a,0x0d,0x0a,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x06,0x05,0x06,0x05,0x06,0x05,0x06,0x05,0x08,0x05,0x0c,0x0a,0x0a,0x0a,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x14,0x0f,0x0c,0x0a,0x05,0x0e,0x0b,0x12,0x11,0x10,0x0c,0x05,0x14,0x0f, +0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x05,0x09,0x0b,0x0d,0x13,0x13,0x14,0x13,0x08,0x08,0x05,0x06,0x06,0x0e,0x0c,0x10,0x08,0x11,0x0e,0x11,0x06,0x0e,0x0c,0x0b,0x0c,0x0f,0x06,0x0c,0x0d,0x13,0x10,0x0b,0x10,0x0f,0x0c,0x0b,0x0b,0x0c,0x0c,0x10,0x10,0x06,0x0c,0x0d,0x09,0x0c,0x06,0x0c,0x0c,0x0b,0x09,0x0c,0x0c,0x06,0x0b,0x0a,0x0c,0x0b, +0x09,0x0c,0x0c,0x0a,0x0c,0x0b,0x10,0x11,0x06,0x0c,0x0c,0x0c,0x11,0x0b,0x0f,0x0a,0x0d,0x0b,0x06,0x15,0x15,0x0f,0x0c,0x0c,0x0f,0x0e,0x0c,0x0c,0x0a,0x0f,0x0b,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x13,0x0f,0x10,0x0f,0x0c,0x0d,0x0b,0x0c,0x0f,0x0c,0x10,0x0e,0x14,0x15,0x0f,0x10,0x0c,0x0d,0x15,0x0c,0x0b,0x0c,0x0b,0x08,0x0b,0x0b,0x10, +0x09,0x0c,0x0c,0x0a,0x0b,0x0f,0x0c,0x0c,0x0c,0x0c,0x0a,0x09,0x0a,0x0e,0x0a,0x0d,0x0c,0x11,0x11,0x0c,0x0f,0x0b,0x0a,0x11,0x0b,0x0b,0x0c,0x08,0x0a,0x09,0x05,0x11,0x11,0x0c,0x0a,0x0a,0x0c,0x0a,0x08,0x15,0x18,0x0d,0x07,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x10,0x0d,0x0f,0x0c,0x06,0x07,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x06,0x06, +0x06,0x0a,0x06,0x0a,0x06,0x06,0x06,0x0a,0x0a,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, +0x0c,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0e,0x0c,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0b,0x0b,0x10,0x0c,0x06,0x08,0x05,0x05,0x0b,0x09,0x13,0x10,0x0d,0x0b,0x0c,0x0a,0x10,0x0d,0x0c,0x0a,0x0c,0x0a,0x0d,0x0a,0x0e,0x0c,0x0e,0x0c,0x0f, +0x0b,0x10,0x0c,0x06,0x06,0x06,0x06,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x07,0x0e,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, +0x0c,0x06,0x05,0x06,0x05,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x0a,0x05,0x13,0x12,0x13,0x12,0x13,0x12,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b,0x09,0x0b, +0x07,0x0b,0x07,0x0b,0x07,0x0b,0x07,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x0a,0x0d,0x0a,0x14,0x0f,0x14,0x0f,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x07,0x0f,0x0a,0x0b,0x05,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x09, +0x09,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x09,0x09,0x0c,0x0c,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x0f,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x08,0x08,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0e,0x0e,0x0d,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x10,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0a,0x0f,0x10,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0f,0x0d,0x12,0x06,0x06,0x0c,0x0a,0x05,0x0a,0x13,0x10,0x0c,0x10, +0x14,0x11,0x0d,0x0c,0x0c,0x0b,0x09,0x0b,0x06,0x07,0x0b,0x07,0x0b,0x10,0x0f,0x0c,0x0b,0x0c,0x0a,0x0d,0x0d,0x09,0x09,0x0b,0x0b,0x08,0x08,0x0b,0x05,0x08,0x0a,0x06,0x1a,0x18,0x16,0x12,0x0f,0x0b,0x17,0x14,0x11,0x0e,0x0b,0x06,0x05,0x10,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x0e,0x0b,0x0e,0x0b,0x12,0x11, +0x0e,0x0c,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x10,0x0c,0x0d,0x09,0x05,0x1a,0x18,0x16,0x0e,0x0c,0x15,0x0e,0x10,0x0c,0x0e,0x0b,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x05,0x06,0x05,0x10,0x0c,0x10,0x0c,0x0c,0x07,0x0d,0x07,0x0e,0x0c,0x0e,0x0c,0x0b,0x09,0x0f,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0b,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10, +0x0c,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0b,0x0d,0x09,0x09,0x0b,0x0c,0x06,0x0c,0x0c,0x0b,0x0a,0x0a,0x0c,0x0c,0x0c,0x06,0x06,0x07,0x06,0x08,0x05,0x0d,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0d,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x08,0x05,0x05,0x06,0x06,0x07,0x07, +0x0d,0x0c,0x0c,0x0a,0x0f,0x0a,0x09,0x0a,0x0b,0x09,0x09,0x08,0x08,0x08,0x0a,0x0d,0x0a,0x0c,0x0b,0x0c,0x05,0x0a,0x08,0x0c,0x08,0x08,0x13,0x14,0x15,0x0d,0x0a,0x0f,0x11,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0e,0x0c,0x0d,0x11,0x0c,0x0f,0x0c,0x0c,0x0a,0x0a,0x09,0x0d,0x0b,0x0d,0x0a,0x13,0x12,0x0d,0x0b,0x0d,0x0b,0x0d,0x0a,0x0d, +0x0a,0x0e,0x0c,0x0c,0x09,0x0c,0x0c,0x0a,0x05,0x10,0x0a,0x0a,0x12,0x0e,0x0e,0x0c,0x13,0x0f,0x0e,0x0a,0x12,0x0f,0x0f,0x0c,0x14,0x10,0x0b,0x09,0x10,0x10,0x10,0x0c,0x0f,0x0c,0x0f,0x0c,0x1c,0x17,0x11,0x0e,0x18,0x13,0x12,0x0e,0x0c,0x09,0x0b,0x08,0x09,0x00,0x00,0x15,0x14,0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0b,0x0a,0x0c,0x0a,0x0f, +0x0c,0x12,0x0e,0x15,0x12,0x0f,0x0c,0x0d,0x0a,0x0b,0x09,0x12,0x0e,0x0e,0x0c,0x12,0x0d,0x12,0x0d,0x06,0x12,0x10,0x0c,0x0b,0x0f,0x0c,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x12,0x11,0x0b,0x0b,0x0f,0x0b,0x0f,0x0b,0x12,0x10,0x0b,0x09,0x0b,0x09,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x10,0x0c,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0e,0x0c, +0x10,0x0f,0x0c,0x0c,0x12,0x12,0x11,0x0f,0x0c,0x0a,0x13,0x11,0x15,0x12,0x0f,0x0b,0x0e,0x0d,0x0c,0x0c,0x0c,0x0b,0x0c,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x05,0x0c,0x07,0x07,0x03,0x04,0x04,0x04,0x06,0x08,0x06,0x05,0x08,0x05,0x05,0x05,0x07,0x07,0x05,0x05,0x0c,0x0c,0x0c,0x0c,0x07,0x06, +0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x06,0x03,0x05,0x06,0x05,0x08,0x08,0x08,0x08,0x08,0x07,0x07,0x07,0x09,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b, +0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b, +0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x0d,0x07,0x0c,0x0c,0x07,0x07,0x07,0x07,0x07,0x06,0x07,0x07,0x07,0x06, +0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0e,0x11,0x0a,0x0a,0x0c,0x0c,0x09,0x09,0x05,0x06,0x0a,0x08,0x0f,0x0c,0x0c,0x0a,0x0d,0x0d,0x0d,0x14,0x0b,0x0c,0x0c,0x0a,0x0a,0x0a,0x09,0x0b,0x0c,0x0f,0x0c,0x0a,0x0f,0x0a,0x09,0x09,0x0b,0x08,0x0a,0x0c,0x0a,0x0c,0x0c, +0x08,0x0a,0x07,0x08,0x09,0x06,0x06,0x09,0x09,0x04,0x05,0x07,0x06,0x0b,0x09,0x09,0x09,0x08,0x07,0x07,0x06,0x09,0x0b,0x07,0x07,0x07,0x0a,0x07,0x07,0x07,0x07,0x06,0x06,0x07,0x03,0x06,0x0a,0x07,0x07,0x06,0x07,0x07,0x07,0x04,0x07,0x07,0x0a,0x06,0x07,0x07,0x06,0x07,0x09,0x06,0x03,0x04,0x07,0x06,0x07,0x06,0x07,0x09,0x06,0x0c, +0x03,0x07,0x0b,0x12,0x0d,0x0b,0x0b,0x12,0x0e,0x12,0x10,0x0b,0x0c,0x0b,0x09,0x18,0x0a,0x0c,0x13,0x14,0x14,0x0d,0x0e,0x0d,0x0a,0x0a,0x0b,0x09,0x0a,0x0b,0x04,0x00,0x00,0x00,0x00,0x0c,0x0d,0x0d,0x0d,0x0a,0x08,0x0c,0x0c,0x07,0x12,0x0c,0x0c,0x07,0x07,0x0a,0x07,0x0a,0x0c,0x0a,0x0c,0x13,0x0e,0x07,0x06,0x0c,0x0b,0x0c,0x0c,0x0c, +0x07,0x0c,0x0a,0x05,0x12,0x0c,0x0c,0x07,0x09,0x09,0x0a,0x0a,0x0a,0x0b,0x0c,0x0c,0x0b,0x09,0x09,0x0f,0x05,0x0a,0x05,0x0c,0x09,0x07,0x06,0x06,0x07,0x06,0x04,0x03,0x07,0x07,0x03,0x04,0x04,0x04,0x03,0x04,0x03,0x05,0x0a,0x0a,0x07,0x07,0x07,0x07,0x08,0x05,0x03,0x04,0x07,0x07,0x07,0x07,0x06,0x05,0x05,0x06,0x05,0x07,0x00,0x00, +0x00,0x00,0x05,0x07,0x07,0x07,0x06,0x07,0x0b,0x0b,0x0b,0x0b,0x07,0x00,0x00,0x00,0x00,0x0a,0x07,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x06,0x06,0x06,0x06,0x0c,0x0c,0x0c,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0b,0x08, +0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x04,0x08,0x08,0x07,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x08,0x07,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x06,0x10,0x0d,0x0f,0x0c,0x10,0x0d,0x14,0x10,0x0b,0x08,0x0b,0x0e,0x0b,0x11,0x0f,0x00,0x00,0x00,0x00,0x05,0x05,0x05,0x05,0x07,0x07,0x07, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x15,0x09,0x05,0x0b,0x0c,0x09,0x0b,0x0b,0x0c,0x0c,0x0b,0x15,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x07,0x0c,0x07,0x10,0x0e,0x0b,0x07,0x12,0x0b,0x12,0x05,0x07,0x0c,0x0c,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x12,0x05,0x0c,0x05,0x0b,0x09,0x05,0x05,0x0b,0x05,0x10,0x05, +0x13,0x0b,0x13,0x13,0x0c,0x0c,0x0c,0x0b,0x0b,0x09,0x09,0x19,0x19,0x1c,0x1c,0x12,0x12,0x0b,0x0b,0x04,0x15,0x10,0x12,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x05,0x0e,0x00,0x0e,0x0e,0x0e,0x07,0x0b,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x09,0x13,0x0b,0x13,0x0b,0x10,0x12,0x07,0x0b, +0x0b,0x09,0x05,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0b,0x0e,0x0e,0x13,0x07,0x0b,0x09,0x0e,0x0b,0x07,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x05,0x0c,0x08,0x15,0x0b,0x0b,0x0e,0x0e,0x15,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x00,0x00,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x0b,0x0b,0x10,0x12,0x13,0x07, +0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x09,0x09,0x09,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x0b,0x0c,0x0c,0x0c,0x15,0x15,0x0b,0x0b,0x15,0x0b, +0x0b,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x10,0x10,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x0e,0x07,0x0b,0x0e,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x13,0x10,0x12,0x07,0x0b,0x10,0x12,0x10, +0x12,0x00,0x00,0x00,0x00,0x00,0x18,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x09,0x00,0x00,0x0d,0x00,0x00,0x00,0x19,0x12,0x1c,0x15,0x0b,0x0c,0x0c,0x0c,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x13,0x13,0x08,0x0c,0x0c,0x0c,0x1a,0x11,0x0b,0x20,0x17,0x07,0x0c,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x09,0x09,0x10,0x0e,0x0e,0x0b,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x1a,0x20,0x00,0x00,0x00,0x00,0x00,0x0c,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0e,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x0b,0x0c,0x0c, +0x0c,0x0b,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x15,0x0b,0x0b,0x15,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0e,0x07,0x07,0x09,0x09,0x19,0x12,0x0e,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x08,0x0c,0x0e,0x0d,0x0b,0x0b,0x08,0x05,0x10,0x0c,0x0d,0x07,0x0c,0x0a,0x0a, +0x0a,0x0a,0x05,0x0b,0x09,0x0d,0x0a,0x0c,0x0a,0x0b,0x09,0x0e,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x09,0x0a,0x0a,0x06,0x0b,0x0c,0x0d,0x0b,0x07,0x10,0x0c,0x0d,0x0b,0x0d,0x0a,0x0c,0x0b,0x08,0x0f,0x08,0x09,0x09,0x0a,0x0d,0x0d,0x0b,0x15,0x0b,0x15,0x07,0x05,0x04,0x0b,0x05,0x03,0x00,0x03,0x05,0x00,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x13,0x09,0x10,0x0c,0x14,0x0f,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x12,0x0a,0x12,0x0a,0x12,0x0e,0x0e,0x0f,0x0f,0x10,0x12,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x10,0x0c,0x16,0x11,0x0a,0x0a,0x06,0x06,0x06,0x08,0x05, +0x0c,0x05,0x05,0x12,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x00,0x00,0x05,0x00,0x00,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x0e,0x06,0x0c,0x0b,0x0c,0x0f,0x0e,0x06,0x08,0x0e,0x0d,0x0d,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x0f,0x0b,0x0b,0x0b,0x05,0x08,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d, +0x0d,0x0a,0x0e,0x0b,0x0c,0x0f,0x0c,0x0f,0x0c,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0c,0x09,0x0a,0x0e,0x06,0x07,0x0e,0x06,0x0c,0x0b,0x0c,0x0e,0x08,0x0e,0x0d,0x0d,0x0c,0x0e,0x0c,0x10,0x0f,0x06,0x0c,0x0b,0x0d,0x0e,0x19,0x00,0x0d,0x0c,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x06,0x00,0x10,0x0d,0x0e,0x0f,0x0c,0x0e,0x10,0x10,0x0a,0x0d,0x10,0x0f,0x0e,0x10,0x11,0x10,0x0e,0x0c,0x0c,0x10,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0c,0x0d,0x0e,0x0e,0x10,0x0d,0x0d,0x0d,0x0e,0x11,0x0a,0x0c,0x0c,0x12,0x0b,0x0b, +0x10,0x13,0x0d,0x0b,0x16,0x0c,0x0c,0x10,0x0b,0x0b,0x10,0x0c,0x10,0x11,0x12,0x0b,0x10,0x0b,0x0e,0x0b,0x0d,0x0c,0x0d,0x0b,0x0d,0x10,0x0b,0x0d,0x0e,0x0b,0x0b,0x0d,0x14,0x0b,0x0b,0x0c,0x0c,0x09,0x07,0x0c,0x0c,0x0c,0x0b,0x0c,0x13,0x0c,0x13,0x0a,0x0c,0x13,0x0e,0x0c,0x13,0x10,0x10,0x13,0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x13,0x13,0x0c,0x0c,0x0c,0x13,0x0d,0x0b,0x0c,0x0c,0x13,0x10,0x0e,0x0f,0x0f,0x0e,0x0f,0x0d,0x0e,0x10,0x0f,0x0e,0x0b,0x11,0x0e,0x0e,0x0c,0x0e,0x0f,0x10,0x0f,0x0c,0x0f,0x0e,0x0f,0x0e,0x10,0x0f,0x0f,0x0f,0x0e,0x0d,0x0f,0x0e,0x0f,0x11,0x0e,0x10,0x0f,0x02,0x02,0x03,0x04,0x03,0x06,0x07,0x12,0x0c,0x0d,0x0d,0x0c,0x0d, +0x0c,0x0c,0x0e,0x0d,0x0c,0x06,0x12,0x0c,0x0c,0x0c,0x0b,0x0d,0x0b,0x0c,0x06,0x0c,0x0b,0x0c,0x09,0x12,0x0c,0x0c,0x0c,0x0c,0x11,0x0c,0x0c,0x08,0x11,0x0c,0x0c,0x0e,0x0e,0x05,0x06,0x18,0x18,0x18,0x18,0x1e,0x0b,0x0b,0x05,0x0b,0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x08,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0a,0x0b,0x0c,0x09,0x09,0x0c,0x0d,0x05,0x07,0x0a,0x09,0x10,0x0e,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x0c,0x0b,0x11,0x0b,0x0a,0x0a,0x0f,0x10,0x09,0x0d,0x0a,0x0c,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x09,0x05,0x05,0x05,0x05,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x0c,0x0c,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0b,0x0d,0x0d,0x05,0x05,0x05,0x05,0x05,0x0c,0x07,0x0a,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0a,0x0a,0x0a, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0b,0x0f,0x0d,0x0b,0x0a,0x08,0x0b,0x09,0x0a,0x0d,0x0d,0x05,0x0a,0x0b,0x10,0x0e,0x09,0x0d,0x0d,0x0a,0x0a,0x09,0x0a,0x0d,0x0b,0x0e,0x0d,0x0b,0x09,0x0d,0x05,0x0d,0x0a,0x0d,0x05,0x0a,0x09,0x0c,0x08,0x0b, +0x09,0x05,0x05,0x07,0x11,0x11,0x0d,0x0a,0x0a,0x0d,0x0b,0x0a,0x0a,0x08,0x0c,0x09,0x10,0x09,0x0e,0x0e,0x0a,0x0c,0x10,0x0d,0x0d,0x0d,0x0a,0x0b,0x09,0x0a,0x0d,0x0b,0x0d,0x0b,0x11,0x11,0x0c,0x0f,0x0a,0x0b,0x12,0x0a,0x08,0x0c,0x0c,0x0d,0x13,0x13,0x0e,0x0b,0x0c,0x09,0x0c,0x0c,0x0c,0x0f,0x0b,0x0b,0x0e,0x0c,0x0c,0x08,0x0d,0x0d, +0x0c,0x0a,0x0a,0x13,0x10,0x0a,0x0b,0x0d,0x0d,0x0d,0x0d,0x0f,0x0e,0x08,0x14,0x0c,0x0c,0x0c,0x0e,0x0e,0x0b,0x0b,0x06,0x10,0x0e,0x0e,0x0a,0x0f,0x05,0x05,0x09,0x09,0x05,0x05,0x0d,0x08,0x06,0x10,0x0f,0x06,0x05,0x05,0x09,0x08,0x08,0x05,0x05,0x05,0x08,0x0e,0x0a,0x06,0x0d,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x09,0x0b,0x09, +0x05,0x05,0x08,0x0b,0x07,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x05,0x00,0x00,0x00,0x00,0x00,0x05,0x10,0x12,0x07,0x07,0x0b,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0b,0x0b,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x0b,0x0b,0x13,0x13,0x0b,0x0b,0x10,0x12,0x07,0x07,0x10,0x12,0x07, +0x07,0x10,0x12,0x07,0x07,0x15,0x10,0x12,0x0b,0x0c,0x0c,0x0e,0x07,0x0e,0x10,0x0b,0x0b,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x13,0x07,0x10,0x0b,0x0b,0x05,0x0b,0x0b,0x0b,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x19,0x12,0x19,0x12,0x19,0x12,0x1c,0x15,0x1c,0x15,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x13,0x0b,0x17,0x15,0x13,0x0b,0x12,0x0b,0x12,0x0b,0x12,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x13,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e, +0x07,0x0e,0x0e,0x07,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x0b,0x0c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x0b,0x07,0x07,0x07,0x07,0x00,0x19,0x12,0x1c,0x15,0x13,0x0b,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0b,0x0b,0x09,0x19,0x12,0x15,0x15,0x13,0x13,0x13,0x0c,0x0c,0x0c,0x0c, +0x0e,0x07,0x0e,0x07,0x0e,0x07,0x19,0x12,0x0c,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x09,0x09,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x10,0x12,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x13,0x07,0x13,0x07,0x0c,0x0e,0x0c,0x0c,0x19,0x19,0x12,0x12,0x19,0x19,0x12,0x12,0x12,0x12, +0x0b,0x0b,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x00,0x00,0x05,0x05,0x07,0x05,0x00,0x00,0x00,0x12,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x05,0x05, +0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0c,0x12,0x0e,0x0e,0x0e,0x05,0x05,0x0b,0x09,0x0c,0x0d,0x0c,0x0b,0x0c,0x0c,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0c,0x0b,0x0c,0x0d,0x0d,0x0e,0x0c,0x0c,0x0e,0x0b,0x0e,0x10,0x0d,0x10,0x11,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0a,0x0b,0x0d,0x0d,0x0e,0x0c,0x0e,0x0c,0x0c,0x0d,0x0b,0x0b,0x10,0x0e,0x0f,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x10,0x10,0x10,0x13, +0x13,0x0f,0x13,0x13,0x0f,0x12,0x12,0x0c,0x10,0x12,0x10,0x0c,0x12,0x10,0x0f,0x0f,0x0d,0x0e,0x10,0x11,0x0f,0x0d,0x0f,0x0c,0x0b,0x13,0x13,0x13,0x11,0x13,0x13,0x0e,0x13,0x13,0x0f,0x10,0x10,0x10,0x0f,0x0f,0x0e,0x13,0x10,0x11,0x0f,0x0f,0x0c,0x10,0x0f,0x0f,0x12,0x10,0x0f,0x13,0x0b,0x0b,0x0c,0x0b,0x0d,0x0d,0x0f,0x0f,0x0c,0x0c, +0x0c,0x0b,0x0c,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0c,0x0d,0x0d,0x0d,0x0a,0x0c,0x0c,0x0c,0x0d,0x10,0x12,0x0e,0x0e,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0a,0x0a,0x0d,0x0a,0x0b,0x0a,0x0c,0x10,0x0c,0x11,0x0b,0x0c,0x0c,0x10,0x07,0x11,0x0e,0x0f,0x0e,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x0d, +0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x06,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x13,0x13,0x0a,0x10,0x0f,0x0a,0x09,0x0a,0x0b,0x0c,0x0a,0x12,0x11,0x12,0x09,0x15,0x0a,0x12,0x12, +0x12,0x11,0x0c,0x0a,0x0a,0x10,0x0c,0x10,0x0e,0x0b,0x0a,0x09,0x15,0x09,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x1d,0x12,0x12,0x09,0x05,0x0a,0x05,0x0a,0x05,0x05,0x05,0x0a,0x0c,0x0c,0x0b,0x08,0x08,0x05,0x05,0x05,0x08,0x05,0x09,0x12,0x05,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x0e,0x19, +0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0a,0x0c,0x0a,0x0b,0x09,0x07,0x07,0x0e,0x0c,0x0f,0x09,0x18,0x13,0x0c,0x0c,0x13,0x11,0x12,0x10,0x15,0x11,0x13,0x10,0x0e,0x0a,0x0f,0x0c,0x13,0x0f, +0x10,0x0d,0x10,0x0d,0x12,0x0e,0x12,0x0e,0x17,0x12,0x10,0x0c,0x10,0x0c,0x19,0x13,0x11,0x00,0x15,0x15,0x15,0x0a,0x00,0x00,0x0c,0x0b,0x0f,0x0c,0x0b,0x09,0x17,0x13,0x14,0x12,0x0f,0x0c,0x0f,0x0c,0x0b,0x09,0x10,0x0d,0x0b,0x09,0x11,0x0e,0x0e,0x0c,0x15,0x11,0x0b,0x0c,0x0f,0x0f,0x11,0x09,0x04,0x0a,0x0e,0x09,0x15,0x15,0x05,0x00, +0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x08,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x0e,0x0f,0x06,0x04,0x06,0x04,0x0f,0x0c,0x10,0x0d,0x0c,0x0a,0x0b,0x0a,0x0c,0x0c,0x09,0x09,0x18,0x11,0x18,0x13,0x15,0x12,0x13,0x0e,0x13,0x0e,0x13,0x0e,0x0d,0x0a,0x0c,0x0a,0x0c,0x0a,0x0c,0x0a,0x0b,0x07,0x0a,0x05,0x10,0x0c,0x12, +0x0e,0x1c,0x15,0x0c,0x0c,0x0e,0x0f,0x11,0x12,0x10,0x0c,0x15,0x10,0x0b,0x08,0x0c,0x0a,0x0d,0x0a,0x14,0x0f,0x0d,0x0b,0x0c,0x0c,0x0c,0x0c,0x0a,0x08,0x0a,0x08,0x0a,0x08,0x0b,0x0b,0x06,0x0e,0x07,0x14,0x0e,0x07,0x0c,0x0d,0x0a,0x10,0x0c,0x08,0x07,0x0c,0x0c,0x0c,0x0a,0x05,0x10,0x0d,0x08,0x07,0x0d,0x0a,0x0f,0x08,0x10,0x0d,0x0d, +0x0a,0x0e,0x0c,0x0c,0x0a,0x10,0x0c,0x0d,0x07,0x0b,0x09,0x10,0x09,0x0b,0x12,0x0a,0x0c,0x13,0x06,0x18,0x13,0x13,0x19,0x13,0x13,0x13,0x12,0x13,0x13,0x0b,0x0a,0x0d,0x0f,0x13,0x0f,0x14,0x05,0x0a,0x0c,0x12,0x16,0x0f,0x16,0x0d,0x0d,0x11,0x0f,0x18,0x13,0x0b,0x13,0x07,0x13,0x07,0x0c,0x0c,0x0c,0x0c,0x12,0x12,0x12,0x12,0x15,0x0b, +0x0b,0x15,0x10,0x0b,0x0b,0x10,0x0e,0x07,0x07,0x0e,0x0c,0x0c,0x0c,0x0c,0x10,0x07,0x07,0x12,0x10,0x07,0x07,0x12,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x0b,0x08,0x0c,0x0b,0x10,0x0c,0x0c,0x12, +0x0e,0x10,0x10,0x11,0x11,0x0c,0x0a,0x15,0x11,0x16,0x12,0x0e,0x0c,0x07,0x07,0x0c,0x0e,0x09,0x0d,0x0b,0x0c,0x0a,0x10,0x11,0x08,0x0c,0x09,0x04,0x08,0x0b,0x0c,0x05,0x05,0x04,0x05,0x08,0x08,0x08,0x09,0x1f,0x2a,0x07,0x09,0x03,0x06,0x08,0x09,0x07,0x0a,0x0b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a, +0x0a,0x1c,0x0b,0x10,0x13,0x13,0x0e,0x0a,0x0c,0x0f,0x0f,0x0a,0x07,0x0e,0x0b,0x0e,0x0c,0x0e,0x0b,0x0b,0x10,0x0c,0x0c,0x0b,0x10,0x0d,0x11,0x0a,0x0b,0x0d,0x07,0x0c,0x07,0x07,0x05,0x12,0x0c,0x0c,0x0b,0x0b,0x0c,0x13,0x13,0x14,0x15,0x15,0x0c,0x0a,0x06,0x0b,0x0a,0x0d,0x0a,0x0e,0x05,0x0c,0x0d,0x12,0x12,0x0d,0x0b,0x0c,0x0b,0x0b, +0x0a,0x0b,0x0a,0x0a,0x06,0x07,0x05,0x05,0x08,0x0c,0x0d,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x07,0x00,0x06,0x06,0x06,0x05,0x05,0x23,0x15,0x12,0x16,0x06,0x06,0x07,0x08,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x13,0x07,0x07,0x13,0x05,0x0b,0x0b,0x1c,0x15,0x15, +0x1c,0x13,0x0b,0x0b,0x13,0x0b,0x0b,0x09,0x09,0x00,0x00,0x08,0x10,0x0d,0x0f,0x0c,0x1a,0x16,0x0f,0x0b,0x0f,0x0c,0x1c,0x15,0x10,0x0c,0x08,0x07,0x0d,0x00,0x0e,0x0b,0x07,0x06,0x03,0x0a,0x07,0x07,0x05,0x04,0x0a,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x05,0x0b,0x09,0x0c,0x0c,0x0c,0x14,0x11,0x11,0x11,0x11,0x14,0x0d,0x0e,0x0d, +0x08,0x14,0x18,0x09,0x18,0x0b,0x12,0x13,0x13,0x13,0x09,0x10,0x15,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00,0x0c,0x0c,0x0c,0x12,0x0b,0x0b,0x13,0x07,0x07,0x13,0x07,0x07,0x13,0x0a,0x0a,0x00,0x09,0x12,0x07,0x07,0x15,0x0b,0x0b,0x10,0x0b,0x0b,0x0e,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x20,0x20,0x12,0x00,0x00,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0d,0x0e,0x0e,0x13,0x0e,0x0d,0x11,0x14,0x0e,0x0d,0x16,0x0d,0x0d,0x14,0x0d,0x0e,0x11,0x0d,0x10,0x12,0x13,0x0d,0x10,0x0e,0x0f,0x0d,0x0f,0x0d,0x0e,0x0e,0x0d, +0x10,0x0d,0x0e,0x10,0x0d,0x0d,0x0c,0x10,0x0d,0x0e,0x0e,0x0f,0x09,0x0b,0x0d,0x10,0x10,0x0b,0x00,0x00,0x18,0x30,0x10,0x00,0x02,0x07,0x07,0x09,0x0e,0x0d,0x14,0x13,0x06,0x07,0x07,0x0a,0x10,0x05,0x0a,0x05,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x05,0x05,0x10,0x10,0x10,0x0b,0x17,0x0f,0x0e,0x0f,0x11,0x0c,0x0c, +0x10,0x11,0x06,0x09,0x0e,0x0b,0x16,0x12,0x12,0x0d,0x12,0x0e,0x0d,0x0d,0x10,0x0f,0x16,0x0e,0x0d,0x0e,0x07,0x09,0x07,0x10,0x0a,0x06,0x0c,0x0e,0x0b,0x0e,0x0d,0x08,0x0e,0x0e,0x06,0x06,0x0c,0x06,0x15,0x0e,0x0e,0x0e,0x0e,0x08,0x0a,0x08,0x0e,0x0c,0x11,0x0b,0x0c,0x0b,0x07,0x06,0x07,0x10,0x0f,0x0f,0x0f,0x0c,0x12,0x12,0x10,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0d,0x0d,0x0b,0x0a,0x0b,0x0d,0x0a,0x15,0x15,0x13,0x07,0x0a,0x10,0x15,0x12,0x14,0x10,0x10,0x10,0x0d,0x0e,0x0d,0x0f,0x12,0x0d,0x09,0x0a,0x12,0x14,0x0e,0x0b,0x07,0x07,0x10,0x10,0x0d,0x10,0x0f, +0x0c,0x0c,0x12,0x0f,0x0f,0x12,0x16,0x16,0x0c,0x18,0x09,0x09,0x06,0x06,0x10,0x0e,0x0c,0x0d,0x04,0x0d,0x08,0x08,0x0d,0x0d,0x09,0x05,0x06,0x09,0x1d,0x0f,0x0c,0x0f,0x0c,0x0c,0x06,0x06,0x06,0x06,0x12,0x12,0x12,0x10,0x10,0x10,0x06,0x09,0x08,0x07,0x07,0x05,0x07,0x05,0x08,0x04,0x09,0x0b,0x07,0x0d,0x0a,0x0e,0x0b,0x06,0x11,0x0d, +0x0d,0x0c,0x0d,0x0e,0x10,0x10,0x08,0x09,0x09,0x16,0x16,0x17,0x0c,0x10,0x0e,0x06,0x0d,0x0a,0x0f,0x0b,0x0f,0x0b,0x0e,0x0a,0x05,0x0f,0x0c,0x0f,0x0c,0x11,0x10,0x11,0x0c,0x0d,0x0c,0x0d,0x0b,0x06,0x0b,0x07,0x0b,0x08,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x0d,0x0b,0x10,0x0e,0x10,0x0e,0x0e,0x0b, +0x0e,0x0b,0x0b,0x12,0x12,0x0f,0x0e,0x0b,0x0e,0x0c,0x11,0x0a,0x0c,0x09,0x1b,0x0f,0x0c,0x0f,0x06,0x09,0x13,0x08,0x0f,0x09,0x09,0x0f,0x09,0x0f,0x0c,0x0f,0x0b,0x0f,0x0b,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x06,0x0e,0x0c,0x0c,0x0b,0x06, +0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x16,0x11,0x0d,0x0c,0x06,0x0f,0x0c,0x15,0x14,0x12,0x0e,0x05,0x16,0x11,0x16,0x11,0x16,0x11,0x0d,0x0c,0x06,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x15,0x09,0x09,0x05,0x07,0x07,0x0f,0x0e,0x13,0x09,0x13,0x10,0x14,0x06,0x0f, +0x0e,0x0c,0x0e,0x11,0x06,0x0e,0x0f,0x16,0x12,0x0c,0x12,0x11,0x0d,0x0c,0x0d,0x0d,0x0e,0x13,0x12,0x06,0x0d,0x0f,0x0b,0x0e,0x06,0x0d,0x0d,0x0c,0x0b,0x0e,0x0e,0x06,0x0d,0x0c,0x0e,0x0d,0x0b,0x0e,0x0e,0x0b,0x0d,0x0d,0x12,0x13,0x06,0x0d,0x0e,0x0d,0x13,0x0c,0x11,0x0b,0x0f,0x0d,0x06,0x18,0x18,0x11,0x0e,0x0e,0x11,0x0f,0x0e,0x0e, +0x0b,0x11,0x0c,0x15,0x0d,0x12,0x12,0x0e,0x10,0x16,0x11,0x12,0x11,0x0d,0x0f,0x0d,0x0e,0x11,0x0e,0x12,0x10,0x17,0x18,0x11,0x13,0x0e,0x0f,0x18,0x0e,0x0c,0x0e,0x0d,0x09,0x0d,0x0d,0x12,0x0b,0x0e,0x0e,0x0c,0x0d,0x11,0x0e,0x0e,0x0e,0x0e,0x0b,0x0a,0x0c,0x10,0x0b,0x0e,0x0e,0x13,0x14,0x0e,0x11,0x0c,0x0b,0x14,0x0c,0x0d,0x0e,0x09, +0x0b,0x0a,0x06,0x13,0x13,0x0e,0x0c,0x0c,0x0e,0x0b,0x09,0x18,0x1b,0x0f,0x08,0x09,0x09,0x09,0x06,0x0d,0x0a,0x0d,0x12,0x0e,0x11,0x0e,0x07,0x08,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0b,0x07,0x07,0x07,0x0b,0x0b,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f, +0x0c,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0d, +0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x08,0x0c,0x0d,0x12,0x0e,0x06,0x09,0x06,0x06,0x0c,0x0a,0x16,0x13,0x0f,0x0d,0x0e,0x0c,0x12,0x0e,0x0d,0x0c,0x0d,0x0c,0x0f,0x0c,0x10,0x0e,0x10,0x0e,0x11,0x0d,0x12,0x0e,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x06,0x06,0x07,0x07,0x07,0x07,0x0c,0x0d,0x0f,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0f,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x08,0x10,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x06,0x06,0x06,0x06,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x0b,0x06,0x16,0x15,0x16,0x15,0x16,0x15,0x12,0x0e,0x12, +0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0e,0x08,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x0d,0x08,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0c,0x0f,0x0c,0x16,0x11,0x16,0x11,0x0e,0x0b,0x0e, +0x0b,0x0d,0x0c,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x08,0x11,0x0c,0x0c,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x06,0x09,0x09,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x17,0x17,0x17,0x17,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0b,0x0b,0x0e,0x0e,0x06,0x06,0x0e,0x0e,0x0d,0x0d,0x13, +0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x0e,0x0e,0x0e,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x09,0x09,0x0e,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x0f,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x12,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0b,0x11,0x12,0x0e,0x0e,0x0e,0x0c,0x0d,0x0c,0x11,0x0f,0x15,0x07,0x07,0x0e,0x0c,0x06,0x0c,0x15,0x12,0x0e,0x12,0x17,0x13,0x0e,0x0e,0x0e,0x0d,0x0a,0x0c,0x07,0x08,0x0d,0x08,0x0d,0x12,0x11,0x0e,0x0c,0x0e,0x0b,0x0f,0x0f,0x0b,0x0a,0x0d,0x0d,0x09,0x09,0x0d, +0x06,0x09,0x0b,0x07,0x1e,0x1b,0x19,0x15,0x11,0x0c,0x1a,0x17,0x13,0x0f,0x0c,0x06,0x06,0x12,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0d,0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x10,0x0e,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x06,0x1e,0x1b,0x19,0x10,0x0e,0x18,0x11,0x12,0x0e,0x0f,0x0c,0x0f,0x0c,0x0c,0x0d, +0x0c,0x0d,0x06,0x06,0x06,0x06,0x12,0x0e,0x12,0x0e,0x0e,0x08,0x0e,0x08,0x10,0x0e,0x10,0x0e,0x0c,0x0a,0x11,0x0e,0x12,0x0e,0x0e,0x0e,0x0b,0x0f,0x0c,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0d,0x0c,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0e,0x0d,0x0f,0x0a,0x0a,0x0c,0x0d,0x07,0x0e,0x0e,0x0d,0x0c,0x0b, +0x0e,0x0e,0x0e,0x06,0x07,0x08,0x07,0x09,0x06,0x0e,0x15,0x15,0x15,0x0d,0x0d,0x0e,0x0e,0x11,0x11,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x07,0x08,0x08,0x0e,0x0e,0x0d,0x0c,0x11,0x0c,0x0a,0x0b,0x0c,0x0b,0x0b,0x09,0x09,0x09,0x0b,0x0f,0x0c,0x0d,0x0d,0x0e,0x06,0x0c,0x09,0x0e,0x09,0x09,0x16,0x17, +0x17,0x0f,0x0b,0x11,0x13,0x0e,0x0e,0x0c,0x0c,0x0d,0x0e,0x0e,0x10,0x0e,0x0f,0x13,0x0e,0x11,0x0e,0x0e,0x0b,0x0c,0x0b,0x0e,0x0c,0x0f,0x0c,0x15,0x15,0x0f,0x0c,0x0f,0x0d,0x0f,0x0b,0x0e,0x0c,0x10,0x0e,0x0e,0x0a,0x0e,0x0e,0x0b,0x06,0x12,0x0b,0x0b,0x15,0x10,0x10,0x0e,0x16,0x11,0x10,0x0c,0x15,0x11,0x11,0x0e,0x16,0x12,0x0d,0x0b, +0x13,0x12,0x12,0x0e,0x11,0x0e,0x11,0x0e,0x1f,0x1b,0x14,0x10,0x1b,0x15,0x15,0x10,0x0e,0x0b,0x0c,0x09,0x0a,0x00,0x00,0x18,0x17,0x0e,0x0c,0x0d,0x0e,0x0e,0x0c,0x0d,0x0b,0x0e,0x0c,0x11,0x0e,0x14,0x10,0x18,0x14,0x11,0x0d,0x0f,0x0b,0x0d,0x0a,0x15,0x10,0x10,0x0e,0x14,0x0f,0x14,0x0f,0x06,0x15,0x12,0x0e,0x0c,0x11,0x0e,0x10,0x0e, +0x0f,0x0c,0x0f,0x0c,0x15,0x14,0x0c,0x0d,0x11,0x0d,0x11,0x0d,0x15,0x12,0x0d,0x0b,0x0d,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x10,0x0e,0x13,0x11,0x0e,0x0e,0x14,0x15,0x13,0x11,0x0d,0x0b,0x16,0x13,0x18,0x14,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x08,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x0e,0x08,0x08,0x04,0x05,0x05,0x05,0x07,0x0a,0x07,0x06,0x09,0x05,0x05,0x05,0x08,0x08,0x05,0x05,0x0e,0x0e,0x0e,0x0e,0x08,0x07,0x06,0x08,0x07,0x06,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x07,0x08,0x08,0x07,0x04,0x06,0x07,0x05,0x09,0x09,0x09,0x09,0x09,0x08,0x08,0x08, +0x0a,0x08,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d, +0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d, +0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x0f,0x07,0x0f,0x08,0x0e,0x0e,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x0b,0x10,0x14,0x0c,0x0b,0x0d,0x0d,0x0a, +0x0a,0x06,0x07,0x0c,0x09,0x11,0x0e,0x0e,0x0b,0x0f,0x0f,0x0f,0x16,0x0d,0x0e,0x0e,0x0b,0x0b,0x0b,0x0a,0x0d,0x0e,0x11,0x0e,0x0c,0x11,0x0b,0x0a,0x0a,0x0d,0x09,0x0b,0x0e,0x0b,0x0e,0x0d,0x09,0x0c,0x08,0x09,0x0a,0x07,0x07,0x0a,0x0a,0x04,0x05,0x09,0x07,0x0d,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x07,0x0a,0x0d,0x08,0x08,0x08,0x0c,0x08, +0x08,0x07,0x07,0x06,0x06,0x08,0x04,0x07,0x0c,0x08,0x08,0x06,0x08,0x08,0x08,0x05,0x08,0x08,0x0c,0x07,0x08,0x08,0x07,0x08,0x0a,0x07,0x04,0x05,0x08,0x07,0x08,0x07,0x08,0x0a,0x07,0x0e,0x04,0x08,0x0d,0x15,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0d,0x0e,0x0c,0x0b,0x1b,0x0b,0x0e,0x15,0x16,0x16,0x0f,0x0f,0x0f,0x0b,0x0b,0x0d,0x0a, +0x0b,0x0c,0x05,0x00,0x00,0x00,0x00,0x0e,0x0f,0x0f,0x0f,0x0b,0x09,0x0e,0x0e,0x08,0x15,0x0e,0x0e,0x08,0x08,0x0b,0x08,0x0b,0x0e,0x0b,0x0e,0x16,0x10,0x08,0x06,0x0e,0x0d,0x0e,0x0e,0x0e,0x08,0x0e,0x0c,0x06,0x15,0x0e,0x0e,0x08,0x0a,0x0a,0x0c,0x0b,0x0b,0x0c,0x0e,0x0e,0x0d,0x0b,0x0b,0x12,0x06,0x0b,0x06,0x0e,0x0b,0x08,0x06,0x06, +0x08,0x06,0x04,0x04,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x05,0x0c,0x0c,0x08,0x08,0x08,0x08,0x09,0x06,0x04,0x05,0x08,0x08,0x08,0x08,0x07,0x06,0x06,0x07,0x06,0x08,0x00,0x00,0x00,0x00,0x05,0x08,0x07,0x08,0x06,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x00,0x00,0x00,0x00,0x0b,0x07,0x06,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x06,0x06,0x06,0x06,0x0d,0x0d,0x0d,0x0d,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x04,0x09,0x09,0x08,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x09,0x08,0x09,0x09,0x08, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x13,0x0f,0x11,0x0e,0x12,0x0f,0x16,0x12,0x0d,0x09,0x0c,0x10,0x0d,0x14,0x11,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x06,0x08,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x18,0x0a,0x06,0x0c,0x0e,0x0a,0x0c,0x0c,0x0e,0x0e,0x0c,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c, +0x10,0x0c,0x0c,0x0c,0x08,0x0e,0x08,0x12,0x10,0x0c,0x08,0x14,0x0c,0x14,0x06,0x08,0x0e,0x0e,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x14,0x06,0x0e,0x06,0x0c,0x0a,0x06,0x06,0x0c,0x06,0x12,0x06,0x16,0x0c,0x16,0x16,0x0e,0x0e,0x0e,0x0c,0x0c,0x0a,0x0a,0x1c,0x1c,0x20,0x20,0x14,0x14,0x0c,0x0c,0x04,0x18,0x12,0x14,0x10,0x0e,0x10,0x0c,0x0c, +0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x06,0x10,0x00,0x10,0x10,0x10,0x08,0x0c,0x0c,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0a,0x16,0x0c,0x16,0x0c,0x12,0x14,0x08,0x0c,0x0c,0x0a,0x06,0x0c,0x0e,0x0c,0x0e,0x0c,0x0e,0x0e,0x0c,0x10,0x10,0x16,0x08,0x0c,0x0a,0x10,0x0c,0x08,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x06, +0x0e,0x09,0x18,0x0c,0x0c,0x10,0x10,0x18,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x12,0x10,0x00,0x00,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0c,0x0c,0x12,0x14,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x10,0x0e, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0c,0x0a,0x0a,0x0a,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x0c,0x0e,0x0e,0x0e,0x18,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x12,0x12,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16, +0x0c,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x10,0x08,0x0d,0x10,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x16,0x12,0x14,0x08,0x0c,0x12,0x14,0x12,0x14,0x00,0x00,0x00,0x00,0x00,0x1b,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0a,0x00,0x00,0x0e,0x00,0x00,0x00,0x1c,0x14,0x20,0x18,0x0c,0x0e, +0x0e,0x0e,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x16,0x16,0x09,0x0e,0x0e,0x0e,0x1d,0x14,0x0d,0x25,0x1a,0x08,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x0a,0x12,0x10,0x10,0x0c,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x1e,0x24,0x00,0x00,0x00,0x00,0x00, +0x0e,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x0a,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x10,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x18,0x0c,0x0c,0x18,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, +0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x08,0x08,0x0a,0x0a,0x1c,0x14,0x10,0x0e,0x0e,0x00,0x0c,0x0c,0x0c,0x09,0x0e,0x10,0x0f,0x0c,0x0d,0x09,0x06,0x12,0x0e,0x0e,0x08,0x0d,0x0c,0x0b,0x0b,0x0b,0x06,0x0c,0x0a,0x0f,0x0c,0x0e,0x0b,0x0d,0x0b,0x10,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0b,0x0b,0x0b,0x07,0x0c, +0x0d,0x0e,0x0c,0x08,0x12,0x0e,0x0f,0x0d,0x0f,0x0c,0x0e,0x0c,0x0a,0x11,0x09,0x0a,0x0a,0x0c,0x0e,0x0e,0x0c,0x18,0x0c,0x18,0x08,0x06,0x04,0x0d,0x05,0x03,0x00,0x03,0x05,0x00,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x0a,0x12,0x0e,0x16,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x16,0x16,0x15,0x0b,0x15,0x0b,0x15,0x0f,0x10,0x11,0x11,0x12,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x10,0x10,0x10,0x10,0x12,0x0e,0x19,0x14,0x0b,0x0b,0x07,0x07,0x07,0x09,0x05,0x0e,0x06,0x06,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x05,0x00,0x00,0x05,0x00,0x00,0x0f,0x0e, +0x0b,0x0c,0x10,0x06,0x08,0x10,0x10,0x06,0x0d,0x0d,0x0d,0x11,0x10,0x06,0x0a,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x0d,0x13,0x11,0x0d,0x0d,0x0d,0x06,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x0c,0x10,0x0d,0x0d,0x11,0x0d,0x11,0x0d,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x0e,0x0b,0x0c,0x10,0x07,0x09,0x10,0x07,0x0d,0x0d,0x0d,0x10, +0x0a,0x10,0x0f,0x0f,0x0e,0x10,0x0d,0x13,0x11,0x06,0x0e,0x0d,0x0f,0x10,0x1d,0x00,0x0f,0x0d,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x06,0x00,0x12,0x0f,0x10,0x11,0x0d,0x10,0x12,0x12, +0x0b,0x0f,0x12,0x12,0x10,0x12,0x13,0x13,0x10,0x0d,0x0d,0x12,0x11,0x0e,0x10,0x10,0x10,0x10,0x10,0x12,0x0e,0x0f,0x10,0x10,0x13,0x0f,0x0f,0x0f,0x10,0x14,0x0c,0x0e,0x0e,0x15,0x0d,0x0d,0x13,0x15,0x0f,0x0d,0x19,0x0e,0x0e,0x12,0x0d,0x0d,0x12,0x0d,0x12,0x14,0x15,0x0d,0x13,0x0d,0x10,0x0d,0x0f,0x0e,0x0f,0x0d,0x0f,0x12,0x0d,0x0f, +0x10,0x0d,0x0d,0x0e,0x17,0x0d,0x0d,0x0e,0x0e,0x0a,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x0d,0x15,0x0c,0x0d,0x15,0x10,0x0d,0x15,0x12,0x12,0x15,0x0e,0x0d,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x0e,0x0d,0x0e,0x15,0x0e,0x0d,0x0d,0x0d,0x15,0x13,0x10,0x11,0x11,0x10,0x11,0x0f,0x10,0x13,0x11,0x10,0x0d,0x13,0x10,0x10, +0x0e,0x10,0x11,0x12,0x11,0x0e,0x11,0x10,0x11,0x10,0x13,0x11,0x11,0x11,0x10,0x0f,0x11,0x10,0x11,0x13,0x10,0x12,0x11,0x02,0x03,0x04,0x05,0x04,0x06,0x08,0x15,0x0e,0x0f,0x0e,0x0e,0x0f,0x0e,0x0e,0x10,0x0e,0x0e,0x07,0x14,0x0e,0x0e,0x0e,0x0d,0x0e,0x0c,0x0e,0x06,0x0e,0x0c,0x0e,0x0a,0x15,0x0d,0x0e,0x0e,0x0e,0x14,0x0e,0x0e,0x09, +0x14,0x0e,0x0e,0x10,0x10,0x05,0x07,0x1b,0x1b,0x1b,0x1b,0x22,0x0d,0x0d,0x06,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x0c,0x0c,0x0c,0x0e,0x0a,0x0a,0x0e,0x0f,0x06,0x08,0x0c,0x0a,0x12,0x10,0x0f,0x0c,0x0f,0x0c,0x0a,0x0b,0x0e,0x0c,0x13,0x0c,0x0b,0x0c,0x11,0x13,0x0a,0x0f,0x0c,0x0e,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x06,0x06,0x06,0x06,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x0e,0x0e,0x0b,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0e,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x0c,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x0e,0x08,0x0c,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0a,0x0a,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x11,0x0f,0x0c, +0x0c,0x09,0x0d,0x0a,0x0c,0x0f,0x0f,0x06,0x0c,0x0c,0x12,0x10,0x0b,0x0f,0x0f,0x0c,0x0b,0x0b,0x0b,0x0f,0x0c,0x10,0x0f,0x0c,0x0a,0x0f,0x06,0x0f,0x0b,0x0f,0x06,0x0b,0x0a,0x0e,0x0a,0x0c,0x0a,0x06,0x06,0x08,0x14,0x14,0x0f,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x0a,0x0e,0x0a,0x12,0x0b,0x10,0x10,0x0c,0x0e,0x12,0x0f,0x0f,0x0f,0x0c,0x0c, +0x0b,0x0c,0x0f,0x0c,0x0f,0x0d,0x13,0x14,0x0e,0x11,0x0c,0x0c,0x15,0x0c,0x0a,0x0e,0x0e,0x0f,0x15,0x15,0x10,0x0c,0x0e,0x0a,0x0e,0x0d,0x0d,0x11,0x0d,0x0d,0x10,0x0e,0x0e,0x09,0x0f,0x0f,0x0e,0x0c,0x0c,0x16,0x12,0x0b,0x0d,0x0e,0x0e,0x0f,0x0f,0x11,0x10,0x09,0x16,0x0e,0x0d,0x0e,0x0f,0x0f,0x0c,0x0c,0x06,0x12,0x10,0x10,0x0b,0x11, +0x05,0x05,0x0a,0x0a,0x05,0x05,0x0f,0x0a,0x06,0x12,0x11,0x07,0x05,0x05,0x0b,0x09,0x09,0x06,0x06,0x06,0x09,0x10,0x0b,0x07,0x0f,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0b,0x0d,0x0a,0x05,0x06,0x09,0x0d,0x08,0x10,0x10,0x10,0x16,0x12,0x16,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x12,0x14,0x08,0x08,0x0c,0x08,0x16,0x08,0x16,0x08, +0x16,0x08,0x0e,0x0e,0x0e,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x14,0x14,0x14,0x16,0x16,0x0c,0x0c,0x16,0x16,0x0c,0x0c,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x18,0x12,0x14,0x0c,0x0e,0x0e,0x10,0x08,0x10,0x12,0x0c,0x0c,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x06,0x16,0x08,0x12,0x0c,0x0c,0x06,0x0c,0x0c,0x0c,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1c,0x14,0x1c,0x14,0x1c,0x14,0x20,0x18,0x20,0x18,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18, +0x18,0x12,0x0c,0x0c,0x12,0x0c,0x0c,0x16,0x0c,0x1a,0x18,0x16,0x0c,0x14,0x0c,0x14,0x0c,0x14,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x16,0x0c,0x10,0x10,0x10,0x10,0x10,0x08,0x10,0x10,0x08,0x08,0x10,0x08,0x10,0x08,0x10,0x0c,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x08,0x08,0x0c,0x08,0x08,0x08, +0x08,0x00,0x1c,0x14,0x20,0x18,0x16,0x0c,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0c,0x0c,0x0a,0x1c,0x14,0x18,0x18,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x0e,0x10,0x08,0x10,0x08,0x10,0x08,0x1c,0x14,0x0e,0x10,0x0e,0x0e,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x08,0x08, +0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x12,0x14,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x16,0x08,0x16,0x08,0x0e,0x10,0x0e,0x0e,0x1c,0x1c,0x14,0x14,0x1c,0x1c,0x14,0x14,0x14,0x14,0x0c,0x0c,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x00,0x00,0x06,0x06,0x08,0x06,0x00,0x00,0x00,0x14,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, +0x0a,0x0a,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x0e,0x14,0x10,0x10,0x10,0x06,0x06,0x0c,0x0a,0x0e,0x0f,0x0e,0x0d,0x0d,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0b,0x0d,0x0d,0x0e,0x0f,0x0f,0x10,0x0e,0x0e,0x10,0x0c,0x10,0x12,0x0f,0x12,0x14,0x0f,0x12,0x11, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0b,0x0d,0x0f,0x0e,0x10,0x0e,0x10,0x0e,0x0e,0x0e,0x0c,0x0c,0x12,0x10,0x11,0x10,0x10,0x0e,0x0e,0x0e,0x12,0x13,0x12,0x12,0x16,0x16,0x11,0x16,0x16,0x12,0x15,0x14,0x0d,0x12,0x14,0x12,0x0e,0x14,0x12,0x11,0x11,0x0f,0x0f,0x12,0x13,0x11,0x0f,0x11,0x0e,0x0d,0x16,0x16,0x16, +0x14,0x16,0x16,0x10,0x16,0x16,0x11,0x12,0x13,0x12,0x11,0x11,0x0f,0x15,0x12,0x14,0x11,0x11,0x0e,0x12,0x11,0x11,0x14,0x12,0x11,0x16,0x0d,0x0c,0x0d,0x0d,0x0f,0x0f,0x11,0x12,0x0e,0x0e,0x0e,0x0d,0x0e,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0d,0x0e,0x0f,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0f,0x12,0x14,0x10,0x10,0x0f,0x12, +0x0f,0x10,0x0c,0x0b,0x0e,0x0e,0x0b,0x0c,0x0d,0x0d,0x0c,0x0b,0x0f,0x0b,0x0d,0x0c,0x0d,0x13,0x0e,0x14,0x0d,0x0e,0x0e,0x12,0x08,0x13,0x10,0x11,0x10,0x0d,0x12,0x0e,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x06, +0x06,0x06,0x0f,0x06,0x06,0x06,0x07,0x07,0x06,0x06,0x06,0x07,0x06,0x06,0x06,0x16,0x16,0x16,0x16,0x0c,0x12,0x11,0x0c,0x0a,0x0c,0x0d,0x0d,0x0c,0x14,0x14,0x15,0x0b,0x18,0x0c,0x14,0x14,0x14,0x13,0x0e,0x0c,0x0c,0x13,0x0e,0x13,0x10,0x0d,0x0b,0x0a,0x18,0x0a,0x0d,0x0c,0x0c,0x0c,0x0c,0x0c,0x21,0x14,0x14,0x0a,0x06,0x0b,0x06,0x0b, +0x06,0x06,0x06,0x0c,0x0e,0x0e,0x0d,0x09,0x09,0x06,0x06,0x06,0x09,0x06,0x0a,0x15,0x05,0x16,0x16,0x16,0x0e,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1c,0x1c,0x10,0x1c,0x1c,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0b,0x0e,0x0b,0x0d,0x0a,0x09,0x08,0x10,0x0d,0x11,0x0a,0x1b,0x15,0x0e,0x0d,0x16,0x13,0x14,0x12,0x18,0x14,0x16,0x13,0x0f,0x0b,0x11,0x0e,0x16,0x12,0x12,0x0f,0x12,0x0e,0x15,0x10,0x15,0x10,0x1a,0x14,0x12,0x0e,0x12,0x0e,0x1d,0x15,0x13,0x00,0x18,0x18,0x18,0x0b,0x00,0x00,0x0e,0x0c,0x11,0x0d, +0x0d,0x0a,0x1a,0x16,0x17,0x15,0x11,0x0e,0x11,0x0e,0x0d,0x0a,0x12,0x0e,0x0d,0x0a,0x14,0x10,0x10,0x0e,0x17,0x14,0x0d,0x0e,0x12,0x12,0x13,0x0b,0x05,0x0b,0x10,0x0a,0x18,0x18,0x06,0x00,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0c,0x10,0x11,0x07,0x05,0x07,0x05,0x11,0x0e,0x12, +0x0f,0x0d,0x0b,0x0d,0x0c,0x0e,0x0e,0x0a,0x0a,0x1b,0x14,0x1c,0x15,0x18,0x14,0x16,0x10,0x16,0x10,0x16,0x10,0x0f,0x0b,0x0e,0x0c,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x0b,0x06,0x12,0x0e,0x15,0x10,0x20,0x18,0x0d,0x0e,0x11,0x11,0x13,0x15,0x12,0x0e,0x17,0x13,0x0d,0x0a,0x0d,0x0c,0x0f,0x0c,0x16,0x11,0x0f,0x0d,0x0d,0x0e,0x0d,0x0e,0x0c, +0x0a,0x0b,0x09,0x0b,0x09,0x0c,0x0d,0x07,0x10,0x08,0x17,0x10,0x08,0x0e,0x0f,0x0b,0x12,0x0d,0x09,0x08,0x0e,0x0e,0x0e,0x0b,0x06,0x12,0x0e,0x09,0x08,0x0f,0x0b,0x11,0x09,0x13,0x0e,0x0f,0x0b,0x10,0x0e,0x0e,0x0c,0x12,0x0e,0x0e,0x08,0x0d,0x0a,0x12,0x0a,0x0d,0x15,0x0c,0x0d,0x16,0x06,0x1c,0x15,0x16,0x1c,0x15,0x16,0x16,0x15,0x15, +0x16,0x0c,0x0b,0x0f,0x11,0x16,0x11,0x17,0x06,0x0b,0x0e,0x15,0x19,0x11,0x19,0x0f,0x0f,0x13,0x11,0x1b,0x16,0x0c,0x16,0x08,0x16,0x08,0x0e,0x0e,0x0e,0x0e,0x14,0x14,0x14,0x14,0x18,0x0c,0x0c,0x18,0x12,0x0c,0x0c,0x12,0x10,0x08,0x08,0x10,0x0e,0x0e,0x0e,0x0e,0x12,0x08,0x08,0x14,0x12,0x08,0x08,0x14,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x0c,0x0a,0x0e,0x0d,0x12,0x0e,0x0e,0x15,0x10,0x12,0x12,0x14,0x14,0x0e,0x0c,0x18,0x13,0x19,0x15,0x10,0x0e,0x08,0x08,0x0e,0x10,0x0a,0x0e,0x0c,0x0e,0x0c,0x12,0x13,0x0a,0x0e,0x0a,0x05, +0x09,0x0d,0x0d,0x05,0x05,0x04,0x05,0x09,0x09,0x09,0x0b,0x24,0x30,0x08,0x0a,0x03,0x06,0x09,0x0a,0x08,0x0c,0x0d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x20,0x0d,0x12,0x16,0x16,0x0f,0x0b,0x0e,0x11,0x12,0x0c,0x08,0x10,0x0c,0x10,0x0d,0x10,0x0d,0x0d,0x12,0x0e,0x0e,0x0d,0x12,0x0f,0x14,0x0b, +0x0d,0x0f,0x08,0x0e,0x08,0x08,0x06,0x15,0x0e,0x0e,0x0d,0x0d,0x0e,0x16,0x16,0x17,0x18,0x18,0x0d,0x0c,0x07,0x0c,0x0b,0x0f,0x0b,0x10,0x06,0x0e,0x0e,0x15,0x15,0x0f,0x0d,0x0e,0x0d,0x0d,0x0b,0x0d,0x0b,0x0c,0x07,0x08,0x06,0x05,0x09,0x0e,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,0x08,0x00, +0x07,0x07,0x07,0x06,0x06,0x28,0x18,0x15,0x19,0x07,0x07,0x08,0x0a,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x16,0x08,0x08,0x16,0x06,0x0c,0x0c,0x20,0x18,0x18,0x20,0x16,0x0c,0x0c,0x16,0x0c,0x0c,0x0a,0x0a,0x00,0x00,0x09,0x12,0x0e,0x11,0x0e,0x1e,0x19,0x11,0x0d,0x11,0x0d,0x20,0x18,0x12,0x0e,0x09,0x08, +0x0f,0x00,0x10,0x0d,0x08,0x07,0x04,0x0c,0x08,0x08,0x06,0x05,0x0b,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x05,0x0d,0x0a,0x0e,0x0e,0x0d,0x17,0x13,0x13,0x13,0x14,0x17,0x0f,0x10,0x0e,0x09,0x16,0x1b,0x0b,0x1c,0x0c,0x14,0x16,0x16,0x16,0x0a,0x12,0x18,0x12,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x0d,0x00,0x0e,0x0e,0x0e,0x14,0x0c,0x0c,0x16,0x08,0x08,0x16,0x08,0x08,0x16,0x0c,0x0c,0x00,0x0a,0x14,0x08,0x08,0x18,0x0c,0x0c,0x12,0x0c,0x0c,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x24,0x24,0x15,0x00,0x00,0x15,0x15,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x10,0x0f,0x0f,0x10,0x15,0x0f,0x0f,0x13,0x17,0x10,0x0f,0x1a,0x0f,0x0f,0x16,0x0f,0x10,0x13,0x0f,0x12,0x14,0x16,0x0f,0x12,0x10,0x11,0x0f,0x11,0x0f,0x10,0x10,0x0f,0x13,0x0e,0x10,0x13,0x0f,0x0f,0x0e,0x13,0x0f,0x10,0x10,0x11,0x0b,0x0d,0x0f,0x13,0x13,0x0d,0x00,0x00,0x1b,0x36,0x11,0x00,0x03,0x07,0x08,0x0b, +0x10,0x0f,0x16,0x16,0x06,0x08,0x08,0x0b,0x12,0x06,0x0b,0x06,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x06,0x06,0x12,0x12,0x12,0x0c,0x1a,0x11,0x0f,0x11,0x13,0x0e,0x0d,0x13,0x13,0x07,0x0a,0x10,0x0d,0x18,0x14,0x14,0x0f,0x14,0x10,0x0e,0x0e,0x13,0x11,0x19,0x10,0x0f,0x0f,0x08,0x0a,0x08,0x12,0x0b,0x07,0x0e,0x10, +0x0c,0x10,0x0e,0x08,0x10,0x0f,0x07,0x07,0x0d,0x07,0x17,0x0f,0x10,0x10,0x10,0x09,0x0b,0x09,0x0f,0x0d,0x14,0x0c,0x0d,0x0c,0x08,0x06,0x08,0x12,0x11,0x11,0x11,0x0e,0x14,0x14,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x0f,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0f,0x0f, +0x0c,0x0b,0x0c,0x0f,0x0b,0x18,0x18,0x15,0x08,0x0b,0x13,0x17,0x14,0x16,0x12,0x13,0x13,0x0f,0x10,0x0e,0x11,0x14,0x0f,0x0b,0x0c,0x14,0x16,0x10,0x0c,0x07,0x08,0x12,0x12,0x0f,0x13,0x11,0x0e,0x0e,0x14,0x11,0x11,0x14,0x19,0x19,0x0e,0x1b,0x0a,0x0a,0x06,0x06,0x12,0x10,0x0d,0x0f,0x05,0x0f,0x09,0x09,0x0f,0x0f,0x0a,0x06,0x06,0x0a, +0x21,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x13,0x13,0x13,0x07,0x0a,0x09,0x08,0x08,0x05,0x08,0x06,0x09,0x05,0x0a,0x0d,0x07,0x0e,0x0b,0x0f,0x0c,0x06,0x13,0x0f,0x0f,0x0d,0x0f,0x10,0x12,0x12,0x09,0x0a,0x0a,0x19,0x18,0x1a,0x0d,0x13,0x10,0x07,0x0e,0x0b,0x11,0x0c,0x11,0x0c,0x10,0x0b,0x06,0x11,0x0e,0x11, +0x0e,0x13,0x12,0x13,0x0e,0x0e,0x0e,0x0e,0x0d,0x07,0x0d,0x08,0x0d,0x09,0x14,0x0f,0x14,0x0f,0x14,0x10,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x0e,0x0c,0x13,0x0f,0x13,0x0f,0x0f,0x0c,0x0f,0x0c,0x0d,0x14,0x14,0x11,0x10,0x0c,0x10,0x0d,0x13,0x0b,0x0d,0x0b,0x1e,0x11,0x0d,0x10,0x06,0x0a,0x16,0x09,0x10,0x0a,0x0a,0x10,0x0a,0x11, +0x0e,0x11,0x0c,0x11,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x07,0x10,0x0d,0x0d,0x0d,0x07,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x10,0x09,0x0e,0x0b,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x14,0x0f,0x0d,0x07,0x11, +0x0e,0x17,0x16,0x14,0x10,0x06,0x19,0x14,0x19,0x14,0x19,0x14,0x0f,0x0d,0x06,0x0b,0x0f,0x10,0x19,0x19,0x19,0x18,0x0b,0x0b,0x06,0x07,0x07,0x11,0x0f,0x15,0x0a,0x16,0x12,0x16,0x07,0x11,0x0f,0x0e,0x0f,0x13,0x07,0x10,0x11,0x18,0x14,0x0e,0x14,0x13,0x0f,0x0e,0x0e,0x0f,0x10,0x15,0x14,0x07,0x0f,0x11,0x0c,0x10,0x07,0x0f,0x0f,0x0e, +0x0c,0x10,0x10,0x07,0x0e,0x0d,0x10,0x0e,0x0c,0x10,0x10,0x0c,0x0f,0x0f,0x14,0x16,0x07,0x0f,0x10,0x0f,0x16,0x0e,0x13,0x0d,0x11,0x0e,0x07,0x1a,0x1b,0x14,0x10,0x0f,0x13,0x11,0x0f,0x0f,0x0d,0x13,0x0e,0x17,0x0f,0x14,0x14,0x10,0x12,0x18,0x13,0x14,0x13,0x0f,0x11,0x0e,0x0f,0x14,0x10,0x14,0x12,0x1a,0x1a,0x13,0x15,0x10,0x11,0x1c, +0x10,0x0e,0x10,0x0e,0x0a,0x0f,0x0e,0x14,0x0c,0x10,0x10,0x0d,0x0e,0x13,0x10,0x10,0x10,0x10,0x0c,0x0b,0x0d,0x13,0x0c,0x10,0x0f,0x16,0x16,0x10,0x13,0x0e,0x0c,0x16,0x0e,0x0e,0x10,0x0a,0x0c,0x0b,0x07,0x15,0x16,0x0f,0x0d,0x0d,0x10,0x0d,0x0b,0x1b,0x1e,0x11,0x09,0x0a,0x0a,0x0a,0x07,0x0e,0x0b,0x0f,0x15,0x10,0x13,0x10,0x08,0x09, +0x07,0x07,0x0d,0x0d,0x0d,0x0d,0x08,0x08,0x08,0x0d,0x08,0x0d,0x08,0x08,0x08,0x0d,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14, +0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x13,0x0f,0x13,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0e,0x0e,0x14,0x10,0x07,0x0a,0x07,0x07,0x0e,0x0b,0x19,0x15,0x11,0x0e,0x10,0x0d,0x14,0x10,0x0f,0x0d,0x0f, +0x0d,0x11,0x0d,0x12,0x0f,0x12,0x0f,0x13,0x0e,0x14,0x10,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x07,0x07,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0f,0x10,0x11,0x0c,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x13,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x08,0x13,0x10,0x13, +0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x07,0x07,0x07,0x07,0x10,0x0d,0x10,0x0d,0x10,0x0d,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x0d,0x07,0x18,0x17,0x18,0x17,0x18,0x17,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x0f,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x10,0x0f,0x10,0x10,0x09,0x10,0x09,0x10,0x09,0x10,0x09,0x0e,0x0b,0x0e, +0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x0b,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x0e,0x09,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x11,0x0d,0x11,0x0d,0x19,0x14,0x19,0x14,0x10,0x0c,0x10,0x0c,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x09,0x14,0x0d,0x0e,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14, +0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x12,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x0c,0x0c,0x10,0x10,0x07,0x07,0x10,0x10,0x0f,0x0f,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x19, +0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x13,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0a,0x0a,0x10,0x10,0x10, +0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x0f,0x0f,0x0f,0x0f,0x12,0x12,0x11,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x16,0x14,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11,0x0f,0x10,0x10,0x10,0x11,0x11,0x0d,0x13,0x14,0x0f,0x10,0x10,0x0e,0x0f,0x0d,0x13,0x11,0x18,0x08,0x08, +0x10,0x0d,0x07,0x0d,0x18,0x14,0x10,0x14,0x1a,0x15,0x10,0x10,0x10,0x0e,0x0b,0x0e,0x08,0x09,0x0e,0x09,0x0e,0x14,0x13,0x0f,0x0e,0x0f,0x0c,0x10,0x10,0x0c,0x0b,0x0f,0x0f,0x0a,0x0b,0x0f,0x06,0x0a,0x0c,0x08,0x21,0x1f,0x1c,0x17,0x13,0x0e,0x1d,0x1a,0x16,0x11,0x0e,0x07,0x07,0x14,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, +0x0f,0x0e,0x11,0x0e,0x11,0x0e,0x17,0x16,0x13,0x10,0x13,0x10,0x10,0x0d,0x14,0x10,0x14,0x10,0x10,0x0c,0x07,0x21,0x1f,0x1c,0x13,0x10,0x1b,0x13,0x14,0x0f,0x11,0x0e,0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x07,0x07,0x07,0x07,0x14,0x10,0x14,0x10,0x10,0x09,0x10,0x09,0x13,0x0f,0x13,0x0f,0x0e,0x0c,0x13,0x0f,0x14,0x10,0x0f,0x0f,0x0c,0x11, +0x0e,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x0d,0x10,0x0e,0x0f,0x0f,0x10,0x0e,0x10,0x10,0x10,0x0d,0x0d,0x10,0x10,0x0e,0x11,0x0b,0x0b,0x0e,0x0f,0x07,0x10,0x10,0x0e,0x0d,0x0c,0x0f,0x0f,0x0f,0x07,0x08,0x09,0x08,0x0a,0x07,0x10,0x17,0x17,0x17,0x0f,0x0f,0x10,0x10,0x13,0x13,0x11,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c, +0x0c,0x0b,0x07,0x07,0x08,0x08,0x09,0x09,0x10,0x10,0x0f,0x0d,0x14,0x0d,0x0b,0x0c,0x0e,0x0c,0x0c,0x0a,0x0a,0x0a,0x0d,0x11,0x0d,0x0f,0x0e,0x0f,0x07,0x0d,0x0a,0x10,0x0a,0x0a,0x19,0x1a,0x1a,0x11,0x0d,0x13,0x15,0x10,0x0f,0x0d,0x0d,0x0f,0x10,0x0f,0x12,0x0f,0x11,0x16,0x0f,0x13,0x10,0x10,0x0c,0x0d,0x0c,0x10,0x0e,0x11,0x0d,0x18, +0x17,0x10,0x0e,0x11,0x0e,0x10,0x0c,0x10,0x0d,0x12,0x10,0x0f,0x0b,0x0f,0x10,0x0c,0x07,0x14,0x0d,0x0d,0x17,0x12,0x11,0x10,0x19,0x13,0x12,0x0d,0x18,0x13,0x14,0x0f,0x19,0x14,0x0f,0x0c,0x15,0x15,0x14,0x10,0x13,0x10,0x13,0x10,0x23,0x1e,0x16,0x12,0x1e,0x18,0x17,0x12,0x10,0x0c,0x0e,0x0b,0x0b,0x00,0x00,0x1b,0x1a,0x10,0x0e,0x0f, +0x10,0x0f,0x0e,0x0f,0x0c,0x10,0x0d,0x13,0x10,0x17,0x12,0x1b,0x17,0x13,0x0f,0x11,0x0c,0x0e,0x0b,0x18,0x12,0x13,0x10,0x17,0x11,0x17,0x11,0x07,0x17,0x14,0x10,0x0e,0x13,0x10,0x12,0x0f,0x11,0x0e,0x11,0x0e,0x17,0x16,0x0e,0x0e,0x13,0x0e,0x13,0x0e,0x17,0x14,0x0f,0x0c,0x0e,0x0c,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x11,0x0c, +0x0f,0x0d,0x0f,0x0d,0x0f,0x0d,0x12,0x0f,0x15,0x13,0x0f,0x10,0x17,0x17,0x16,0x13,0x0f,0x0d,0x18,0x15,0x1b,0x17,0x13,0x0e,0x12,0x10,0x10,0x0f,0x0f,0x0e,0x10,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x10,0x09,0x09,0x04,0x06,0x06,0x06,0x08,0x0b,0x08,0x06,0x0a,0x06,0x06,0x06,0x09,0x09, +0x06,0x06,0x10,0x10,0x10,0x10,0x09,0x08,0x07,0x09,0x08,0x07,0x08,0x08,0x08,0x09,0x09,0x09,0x09,0x09,0x08,0x09,0x09,0x08,0x04,0x07,0x08,0x06,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x09,0x0b,0x09,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x11,0x08,0x11,0x09,0x10,0x10,0x09,0x09, +0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x08,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x10,0x0d,0x12,0x16,0x0d,0x0c,0x0f,0x0f,0x0b,0x0b,0x07,0x08,0x0d,0x0b,0x13,0x10,0x10,0x0d,0x11,0x11,0x11,0x19,0x0e,0x10,0x10,0x0c,0x0c,0x0c,0x0b,0x0e,0x0f,0x13,0x0f,0x0d,0x14,0x0c,0x0b, +0x0b,0x0e,0x0a,0x0d,0x10,0x0c,0x10,0x0f,0x0a,0x0d,0x09,0x0a,0x0b,0x08,0x08,0x0b,0x0b,0x05,0x06,0x0a,0x08,0x0e,0x0c,0x0c,0x0c,0x0a,0x09,0x09,0x08,0x0b,0x0e,0x09,0x09,0x09,0x0d,0x09,0x09,0x08,0x08,0x07,0x07,0x09,0x04,0x08,0x0d,0x09,0x09,0x07,0x09,0x09,0x09,0x05,0x09,0x09,0x0d,0x08,0x09,0x09,0x08,0x09,0x0b,0x08,0x04,0x06, +0x09,0x08,0x09,0x08,0x09,0x0b,0x08,0x10,0x04,0x09,0x0f,0x18,0x11,0x0f,0x0f,0x17,0x11,0x17,0x14,0x0e,0x10,0x0e,0x0c,0x1e,0x0c,0x10,0x18,0x19,0x19,0x11,0x11,0x11,0x0c,0x0d,0x0e,0x0b,0x0c,0x0e,0x05,0x00,0x00,0x00,0x00,0x10,0x11,0x11,0x11,0x0d,0x0a,0x10,0x10,0x08,0x17,0x0f,0x10,0x09,0x09,0x0d,0x09,0x0c,0x10,0x0c,0x10,0x18, +0x11,0x09,0x07,0x10,0x0e,0x10,0x10,0x10,0x08,0x10,0x0d,0x07,0x17,0x0f,0x10,0x09,0x0b,0x0c,0x0d,0x0c,0x0c,0x0e,0x10,0x10,0x0e,0x0c,0x0c,0x14,0x07,0x0d,0x07,0x0f,0x0c,0x09,0x07,0x07,0x09,0x07,0x05,0x04,0x09,0x09,0x04,0x05,0x05,0x05,0x04,0x05,0x04,0x06,0x0d,0x0d,0x09,0x09,0x0a,0x09,0x0a,0x06,0x04,0x05,0x09,0x09,0x09,0x09, +0x08,0x07,0x07,0x08,0x07,0x09,0x00,0x00,0x00,0x00,0x06,0x09,0x08,0x09,0x07,0x08,0x0f,0x0f,0x0f,0x0f,0x09,0x00,0x00,0x00,0x00,0x0d,0x08,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x0f,0x0f,0x0f,0x0f,0x24,0x24,0x24,0x24, +0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x05,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x0a,0x09,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x08,0x15,0x11,0x13,0x10,0x14,0x11,0x19,0x14,0x0f,0x0a,0x0e,0x12,0x0e,0x16,0x13,0x00,0x00,0x00, +0x00,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x17,0x17,0x1b,0x0b,0x07,0x0e,0x10,0x0b,0x0e,0x0e,0x10,0x10,0x0e,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x09,0x10,0x09,0x14,0x12,0x0e,0x09,0x17,0x0e,0x17,0x07,0x09,0x10,0x10,0x11,0x11,0x11,0x10,0x10,0x10,0x17,0x07,0x10,0x07, +0x0e,0x0b,0x07,0x07,0x0e,0x07,0x14,0x07,0x19,0x0e,0x19,0x19,0x10,0x10,0x10,0x0e,0x0e,0x0b,0x0b,0x20,0x20,0x24,0x24,0x17,0x17,0x0e,0x0e,0x05,0x1b,0x14,0x17,0x12,0x10,0x12,0x0e,0x0e,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x07,0x11,0x00,0x11,0x11,0x11,0x09,0x0e,0x0e,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x0b, +0x19,0x0e,0x19,0x0e,0x14,0x17,0x09,0x0e,0x0e,0x0b,0x07,0x0e,0x10,0x0e,0x10,0x0e,0x10,0x10,0x0e,0x12,0x11,0x19,0x09,0x0e,0x0b,0x12,0x0e,0x09,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x07,0x10,0x0b,0x1b,0x0e,0x0e,0x11,0x11,0x1b,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x14,0x11,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07, +0x0b,0x0b,0x0e,0x0e,0x14,0x17,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0b,0x0e,0x0b,0x0b,0x0b,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x0e,0x10, +0x10,0x10,0x1b,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x14,0x14,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x12,0x09,0x0f,0x12,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x17, +0x19,0x14,0x17,0x09,0x0e,0x14,0x17,0x14,0x17,0x00,0x00,0x00,0x00,0x00,0x1e,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0b,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x17,0x24,0x1b,0x0e,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x19,0x19,0x0a,0x10,0x10,0x10,0x21,0x16, +0x0e,0x29,0x1d,0x09,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0b,0x0b,0x14,0x12,0x12,0x0e,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x22,0x29,0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x10,0x12,0x10, +0x0e,0x0e,0x0b,0x20,0x17,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x0e,0x10,0x10,0x10,0x1b,0x0e,0x0e,0x1b,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x12,0x12,0x09,0x09,0x0b,0x0b,0x20,0x17,0x11,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0a,0x0f,0x13,0x11,0x0e,0x0e,0x0a, +0x07,0x14,0x10,0x10,0x09,0x0f,0x0d,0x0d,0x0c,0x0d,0x07,0x0e,0x0b,0x11,0x0d,0x10,0x0c,0x0f,0x0c,0x12,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0c,0x0d,0x0d,0x08,0x0e,0x0f,0x10,0x0e,0x09,0x14,0x10,0x11,0x0e,0x11,0x0d,0x0f,0x0e,0x0b,0x13,0x0a,0x0b,0x0b,0x0d,0x10,0x10,0x0e,0x1b,0x0e,0x1b,0x09,0x07,0x05,0x0f, +0x06,0x03,0x00,0x04,0x06,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x0b,0x14,0x10,0x19,0x14,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x17,0x0d,0x17,0x0d,0x17,0x11,0x12,0x13,0x13,0x15,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x14,0x10,0x1d, +0x16,0x0d,0x0d,0x08,0x08,0x08,0x0a,0x06,0x0f,0x06,0x06,0x17,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x05,0x00,0x00,0x06,0x00,0x00,0x11,0x0f,0x0c,0x0d,0x12,0x07,0x09,0x12,0x12,0x07,0x0f,0x0f,0x0f,0x13,0x12,0x07,0x0b,0x12,0x10,0x11,0x11,0x0f,0x10,0x12,0x0f,0x15,0x14,0x0e,0x0e,0x0e, +0x06,0x0a,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x11,0x0d,0x12,0x0f,0x0f,0x13,0x0f,0x14,0x0f,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x0f,0x0c,0x0d,0x12,0x08,0x0a,0x12,0x08,0x0f,0x0f,0x0f,0x12,0x0b,0x12,0x11,0x11,0x10,0x12,0x0f,0x15,0x14,0x07,0x0f,0x0f,0x11,0x12,0x20,0x00,0x11,0x0f,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x07,0x00,0x14,0x11,0x12,0x13,0x0f,0x12,0x14,0x15,0x0d,0x11,0x14,0x14,0x12,0x14,0x16,0x15,0x12,0x0f,0x0f,0x14,0x13,0x0f,0x13,0x12,0x12,0x12,0x13,0x14,0x10,0x11,0x12,0x12,0x15,0x11,0x11,0x11, +0x12,0x16,0x0d,0x10,0x10,0x18,0x0f,0x0f,0x15,0x18,0x10,0x0f,0x1c,0x0f,0x0f,0x14,0x0f,0x0f,0x14,0x0f,0x14,0x16,0x18,0x0f,0x15,0x0f,0x12,0x0f,0x11,0x0f,0x11,0x0f,0x10,0x15,0x0f,0x11,0x12,0x0f,0x0f,0x10,0x1a,0x0f,0x0f,0x10,0x10,0x0b,0x09,0x0f,0x0f,0x0f,0x0e,0x0f,0x18,0x0f,0x18,0x0d,0x0f,0x18,0x12,0x0f,0x18,0x14,0x14,0x18, +0x10,0x0f,0x18,0x18,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x10,0x0f,0x0f,0x18,0x10,0x0f,0x0f,0x0f,0x18,0x15,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x15,0x13,0x12,0x0f,0x15,0x12,0x13,0x0f,0x12,0x13,0x14,0x13,0x10,0x13,0x12,0x14,0x12,0x15,0x13,0x13,0x14,0x12,0x11,0x13,0x12,0x13,0x15,0x12,0x14,0x14,0x03,0x03,0x04,0x05,0x04, +0x07,0x09,0x17,0x0f,0x11,0x10,0x0f,0x11,0x0f,0x0f,0x11,0x10,0x0f,0x08,0x17,0x10,0x0f,0x0f,0x0f,0x10,0x0e,0x10,0x07,0x10,0x0e,0x0f,0x0b,0x17,0x0f,0x0f,0x0f,0x10,0x16,0x0f,0x10,0x0b,0x16,0x10,0x10,0x13,0x12,0x06,0x08,0x1f,0x1e,0x1e,0x1f,0x26,0x0f,0x0f,0x07,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0d,0x0e,0x10,0x0c,0x0b,0x0f,0x11,0x07,0x08,0x0d,0x0b,0x14,0x11,0x11,0x0d,0x11,0x0d,0x0b,0x0c,0x10,0x0e,0x16,0x0e,0x0d,0x0d,0x13, +0x15,0x0b,0x11,0x0d,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x10,0x10,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0e,0x11,0x11,0x07,0x07,0x07,0x07,0x07,0x0f,0x08,0x0d,0x0b,0x0b,0x0b,0x0b,0x11,0x11, +0x11,0x12,0x11,0x11,0x11,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0e,0x13,0x11,0x0e,0x0d,0x0b,0x0e,0x0c,0x0d,0x11,0x11,0x07,0x0d,0x0e,0x14,0x11,0x0c,0x11,0x11,0x0d,0x0c,0x0c,0x0d,0x11,0x0e,0x12,0x11,0x0e,0x0c,0x11,0x07,0x11, +0x0d,0x11,0x07,0x0d,0x0c,0x0f,0x0b,0x0e,0x0b,0x07,0x07,0x08,0x16,0x16,0x10,0x0d,0x0d,0x10,0x0e,0x0d,0x0d,0x0b,0x10,0x0c,0x14,0x0c,0x11,0x11,0x0d,0x0f,0x14,0x11,0x11,0x11,0x0d,0x0e,0x0c,0x0d,0x11,0x0e,0x11,0x0f,0x16,0x16,0x0f,0x13,0x0d,0x0e,0x17,0x0d,0x0b,0x10,0x10,0x11,0x18,0x18,0x12,0x0e,0x0f,0x0b,0x0f,0x0f,0x0f,0x13, +0x0e,0x0e,0x13,0x10,0x10,0x0a,0x11,0x11,0x0f,0x0d,0x0d,0x18,0x14,0x0d,0x0e,0x10,0x10,0x11,0x11,0x13,0x13,0x0a,0x19,0x10,0x0f,0x0f,0x11,0x11,0x0e,0x0e,0x07,0x14,0x13,0x13,0x0d,0x13,0x06,0x06,0x0c,0x0c,0x06,0x06,0x11,0x0b,0x07,0x14,0x13,0x08,0x06,0x06,0x0c,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x12,0x0d,0x08,0x10,0x13,0x10,0x10, +0x0d,0x14,0x0f,0x10,0x09,0x0c,0x0e,0x0b,0x06,0x06,0x0b,0x0e,0x09,0x12,0x12,0x12,0x19,0x14,0x19,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x14,0x17,0x09,0x09,0x0e,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x10,0x0e,0x0e,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x19,0x19,0x0e,0x0e,0x19,0x19,0x0e, +0x0e,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x1b,0x14,0x17,0x0e,0x10,0x10,0x12,0x09,0x12,0x14,0x0e,0x0e,0x09,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x19,0x09,0x14,0x0e,0x0e,0x07,0x0e,0x0e,0x0e,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09, +0x19,0x09,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x20,0x17,0x20,0x17,0x20,0x17,0x24,0x1b,0x24,0x1b,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x0e,0x0e,0x14,0x0e,0x0e,0x19,0x0e,0x1d,0x1b,0x19,0x0e,0x17,0x0e,0x17,0x0e,0x17,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19,0x0e,0x19, +0x0e,0x19,0x0e,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x09,0x12,0x09,0x12,0x09,0x12,0x0e,0x10,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x0e,0x09,0x09,0x09,0x09,0x00,0x20,0x17,0x24,0x1b,0x19,0x0e,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x19,0x09,0x10,0x10,0x0e,0x0e,0x0b,0x20,0x17,0x1b, +0x1b,0x19,0x19,0x19,0x10,0x10,0x10,0x10,0x12,0x09,0x12,0x09,0x12,0x09,0x20,0x17,0x10,0x12,0x10,0x10,0x10,0x12,0x10,0x10,0x20,0x20,0x17,0x17,0x0b,0x0b,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x14,0x17,0x09,0x09,0x10,0x10,0x10,0x10,0x19,0x09,0x19,0x09,0x10,0x12,0x10,0x10,0x20,0x20, +0x17,0x17,0x20,0x20,0x17,0x17,0x17,0x17,0x0e,0x0e,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x09,0x07,0x00,0x00,0x00,0x17,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0b,0x0b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x19,0x19,0x19, +0x19,0x19,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x14,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x17,0x10,0x17,0x10,0x17,0x10,0x17,0x12,0x12,0x12,0x07,0x07,0x0e,0x0b,0x10,0x11, +0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x0e,0x10,0x10,0x11,0x12,0x10,0x0f,0x12,0x0e,0x12,0x14,0x11,0x14,0x16,0x11,0x15,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0c,0x0f,0x10,0x10,0x12,0x0f,0x11,0x10,0x10,0x10,0x0e,0x0e,0x14,0x12,0x13,0x12,0x12, +0x10,0x10,0x10,0x14,0x15,0x14,0x15,0x19,0x19,0x13,0x19,0x19,0x14,0x18,0x17,0x0f,0x15,0x17,0x15,0x10,0x17,0x14,0x13,0x13,0x10,0x11,0x14,0x15,0x13,0x11,0x13,0x10,0x0e,0x19,0x19,0x19,0x16,0x19,0x19,0x12,0x19,0x19,0x13,0x15,0x15,0x14,0x14,0x14,0x11,0x18,0x15,0x16,0x13,0x13,0x10,0x14,0x13,0x13,0x17,0x14,0x14,0x18,0x0f,0x0e, +0x0f,0x0e,0x11,0x11,0x13,0x14,0x10,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x0f,0x0f,0x0f,0x0e,0x0e,0x10,0x11,0x10,0x10,0x0c,0x0f,0x0f,0x10,0x10,0x15,0x17,0x12,0x12,0x11,0x15,0x11,0x12,0x0e,0x0d,0x10,0x0f,0x0d,0x0d,0x0f,0x0f,0x0d,0x0d,0x11,0x0c,0x0f,0x0d,0x0f,0x15,0x0f,0x16,0x0e,0x0f,0x0f,0x14,0x08,0x15,0x13,0x13, +0x12,0x0f,0x14,0x10,0x15,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0d,0x0c,0x08,0x08,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x11,0x07,0x07,0x07,0x08,0x08,0x07,0x07,0x07,0x08,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x0d,0x14,0x14,0x0d,0x0b,0x0d,0x0e,0x0f,0x0d, +0x17,0x16,0x17,0x0c,0x1b,0x0d,0x17,0x17,0x17,0x16,0x0f,0x0d,0x0d,0x15,0x10,0x15,0x12,0x0e,0x0c,0x0b,0x1c,0x0b,0x0e,0x0d,0x0d,0x0d,0x0d,0x0d,0x25,0x17,0x17,0x0c,0x07,0x0c,0x06,0x0c,0x06,0x06,0x06,0x0d,0x10,0x10,0x0f,0x0a,0x0a,0x06,0x06,0x06,0x0a,0x06,0x0b,0x17,0x06,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x20,0x20,0x12,0x20,0x20,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0d,0x10,0x0d,0x0e,0x0b,0x0a,0x09,0x13,0x0f,0x13,0x0c,0x1e,0x18,0x10,0x0f,0x19,0x15,0x17,0x14,0x1c,0x16, +0x19,0x15,0x11,0x0d,0x14,0x10,0x19,0x14,0x14,0x10,0x14,0x10,0x17,0x12,0x18,0x12,0x1e,0x17,0x14,0x10,0x14,0x10,0x21,0x18,0x15,0x00,0x1b,0x1b,0x1b,0x0d,0x00,0x00,0x10,0x0e,0x13,0x0f,0x0e,0x0b,0x1d,0x18,0x1a,0x17,0x13,0x10,0x13,0x10,0x0e,0x0b,0x14,0x10,0x0e,0x0b,0x16,0x12,0x12,0x0f,0x1a,0x16,0x0f,0x10,0x14,0x14,0x16,0x0c, +0x05,0x0c,0x12,0x0c,0x1b,0x1b,0x07,0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x14, +0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x0d,0x12,0x14,0x08,0x06,0x08,0x06,0x13,0x0f,0x14,0x11,0x0f,0x0d,0x0e,0x0d,0x10,0x0f,0x0b,0x0b,0x1e,0x16,0x1f,0x18,0x1b,0x17,0x18,0x12,0x18,0x12,0x18,0x12,0x11,0x0c,0x10,0x0d,0x10,0x0d,0x10, +0x0d,0x0f,0x08,0x0d,0x07,0x14,0x10,0x17,0x12,0x24,0x1b,0x0f,0x10,0x13,0x13,0x16,0x17,0x14,0x10,0x1a,0x15,0x0f,0x0b,0x0f,0x0d,0x11,0x0d,0x19,0x14,0x11,0x0e,0x0f,0x10,0x0f,0x10,0x0d,0x0b,0x0d,0x0a,0x0d,0x0a,0x0e,0x0e,0x08,0x12,0x09,0x1a,0x12,0x09,0x10,0x11,0x0c,0x14,0x0f,0x0a,0x09,0x10,0x10,0x10,0x0d,0x07,0x15,0x10,0x0a, +0x09,0x11,0x0c,0x13,0x0a,0x15,0x10,0x11,0x0c,0x13,0x10,0x10,0x0d,0x14,0x0f,0x10,0x09,0x0e,0x0b,0x14,0x0b,0x0e,0x17,0x0d,0x0f,0x18,0x07,0x1f,0x18,0x18,0x20,0x18,0x19,0x19,0x18,0x18,0x19,0x0e,0x0d,0x11,0x13,0x18,0x13,0x19,0x07,0x0c,0x10,0x17,0x1c,0x13,0x1c,0x11,0x11,0x15,0x13,0x1f,0x19,0x0e,0x19,0x09,0x19,0x09,0x10,0x10, +0x10,0x10,0x17,0x17,0x17,0x17,0x1b,0x0e,0x0e,0x1b,0x14,0x0e,0x0e,0x14,0x12,0x09,0x09,0x12,0x10,0x10,0x10,0x10,0x14,0x09,0x09,0x17,0x14,0x09,0x09,0x17,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a, +0x0e,0x0b,0x0f,0x0e,0x14,0x10,0x10,0x18,0x12,0x14,0x14,0x16,0x16,0x10,0x0d,0x1b,0x16,0x1c,0x17,0x13,0x10,0x08,0x08,0x10,0x11,0x0b,0x10,0x0e,0x10,0x0d,0x14,0x16,0x0b,0x10,0x0c,0x06,0x0a,0x0e,0x0f,0x06,0x06,0x05,0x06,0x0a,0x0a,0x0a,0x0c,0x28,0x36,0x09,0x0b,0x04,0x07,0x0a,0x0c,0x09,0x0d,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0d,0x0d,0x0d,0x24,0x0f,0x15,0x19,0x18,0x11,0x0c,0x0f,0x13,0x14,0x0d,0x08,0x12,0x0e,0x12,0x0f,0x12,0x0e,0x0f,0x14,0x10,0x10,0x0e,0x14,0x11,0x16,0x0c,0x0e,0x11,0x08,0x10,0x09,0x09,0x07,0x18,0x10,0x0f,0x0e,0x0e,0x10,0x19,0x19,0x19,0x1b,0x1b,0x0f,0x0d,0x08,0x0e,0x0c,0x10,0x0c,0x12,0x07,0x0f, +0x10,0x17,0x17,0x11,0x0f,0x10,0x0f,0x0e,0x0c,0x0e,0x0c,0x0d,0x08,0x09,0x07,0x06,0x0a,0x10,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x2d,0x1b,0x18,0x1c,0x08,0x08,0x09,0x0b,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x19,0x09, +0x09,0x19,0x07,0x0e,0x0e,0x24,0x1b,0x1b,0x24,0x19,0x0e,0x0e,0x19,0x0e,0x0e,0x0b,0x0b,0x00,0x00,0x0a,0x14,0x10,0x13,0x10,0x22,0x1c,0x13,0x0f,0x13,0x0f,0x24,0x1b,0x14,0x10,0x0a,0x09,0x11,0x00,0x12,0x0f,0x09,0x08,0x04,0x0d,0x09,0x09,0x07,0x05,0x0c,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x06,0x0e,0x0c,0x10,0x0f,0x0f,0x1a, +0x16,0x16,0x15,0x16,0x19,0x11,0x13,0x10,0x0b,0x19,0x1e,0x0c,0x1f,0x0e,0x17,0x19,0x19,0x19,0x0b,0x14,0x1b,0x14,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x10,0x10,0x10,0x17,0x0e,0x0e,0x19,0x09,0x09,0x19,0x09,0x09,0x19,0x0d,0x0d,0x00,0x0b,0x17,0x09,0x09,0x1b,0x0e,0x0e,0x14,0x0e, +0x0e,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x29,0x29,0x18,0x00,0x00,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x11,0x11,0x12,0x18,0x11,0x11,0x16,0x1a,0x12,0x11,0x1d,0x11,0x11,0x19,0x11,0x12,0x15,0x11,0x15,0x17,0x19,0x11,0x15, +0x12,0x13,0x11,0x13,0x11,0x12,0x13,0x11,0x15,0x10,0x12,0x15,0x11,0x11,0x0f,0x15,0x11,0x12,0x12,0x13,0x0c,0x0e,0x11,0x15,0x15,0x0f,0x00,0x00,0x1d,0x3a,0x13,0x00,0x03,0x08,0x08,0x0b,0x11,0x10,0x18,0x17,0x07,0x09,0x09,0x0c,0x14,0x06,0x0c,0x06,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x06,0x06,0x14,0x14,0x14, +0x0d,0x1c,0x13,0x11,0x12,0x14,0x0f,0x0e,0x14,0x15,0x08,0x0a,0x11,0x0e,0x1a,0x16,0x16,0x10,0x16,0x11,0x0f,0x0f,0x14,0x12,0x1b,0x11,0x10,0x11,0x09,0x0b,0x09,0x14,0x0c,0x08,0x0f,0x11,0x0d,0x11,0x0f,0x09,0x11,0x10,0x07,0x07,0x0e,0x07,0x19,0x10,0x11,0x11,0x11,0x0a,0x0c,0x0a,0x10,0x0e,0x15,0x0d,0x0e,0x0d,0x09,0x07,0x09,0x14, +0x13,0x13,0x12,0x0f,0x16,0x16,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0f,0x0f,0x0f,0x0f,0x07,0x07,0x07,0x07,0x10,0x11,0x11,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x10,0x0d,0x0c,0x0d,0x10,0x0c,0x1a,0x1a,0x16,0x08,0x0c,0x14,0x19,0x16,0x18,0x14,0x14,0x14,0x10,0x11,0x10,0x12,0x16,0x10,0x0b,0x0c,0x16,0x18,0x11, +0x0d,0x08,0x08,0x14,0x13,0x10,0x14,0x13,0x0f,0x0f,0x15,0x13,0x13,0x16,0x1b,0x1b,0x0f,0x1d,0x0b,0x0b,0x07,0x07,0x14,0x11,0x0e,0x10,0x05,0x10,0x09,0x09,0x10,0x10,0x0b,0x06,0x07,0x0b,0x23,0x13,0x0f,0x13,0x0f,0x0f,0x08,0x08,0x08,0x08,0x16,0x16,0x16,0x14,0x14,0x14,0x07,0x0b,0x0a,0x09,0x09,0x06,0x08,0x06,0x09,0x05,0x0b,0x0e, +0x08,0x0f,0x0c,0x11,0x0d,0x07,0x14,0x10,0x10,0x0e,0x10,0x11,0x14,0x14,0x0a,0x0b,0x0b,0x1b,0x1a,0x1c,0x0e,0x14,0x11,0x08,0x0f,0x0c,0x12,0x0d,0x12,0x0d,0x11,0x0c,0x06,0x13,0x0f,0x13,0x0f,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0e,0x07,0x0e,0x09,0x0e,0x09,0x16,0x10,0x16,0x10,0x16,0x11,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0a, +0x0f,0x0d,0x14,0x10,0x14,0x10,0x11,0x0d,0x11,0x0d,0x0e,0x16,0x16,0x12,0x11,0x0d,0x11,0x0e,0x14,0x0c,0x0e,0x0b,0x20,0x12,0x0e,0x12,0x07,0x0b,0x17,0x09,0x12,0x0a,0x0a,0x12,0x0a,0x13,0x0f,0x12,0x0d,0x12,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x14,0x11,0x14,0x11,0x14,0x11,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x08,0x07,0x08, +0x07,0x0a,0x07,0x11,0x0e,0x0e,0x0e,0x07,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x11,0x0a,0x0f,0x0c,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x1b,0x15,0x10,0x0e,0x07,0x13,0x0f,0x19,0x18,0x16,0x11,0x06,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x10,0x0e,0x07,0x0c,0x10,0x11,0x1b,0x1b,0x1b,0x1a,0x0b,0x0b,0x06,0x08,0x08,0x13, +0x11,0x16,0x0b,0x17,0x13,0x18,0x08,0x13,0x11,0x0f,0x11,0x15,0x08,0x11,0x12,0x1a,0x16,0x0f,0x16,0x15,0x10,0x0f,0x0f,0x10,0x11,0x17,0x16,0x08,0x10,0x12,0x0d,0x11,0x08,0x10,0x10,0x0f,0x0d,0x11,0x11,0x08,0x0f,0x0e,0x11,0x0f,0x0d,0x11,0x11,0x0d,0x10,0x10,0x16,0x17,0x08,0x10,0x11,0x10,0x17,0x0f,0x14,0x0e,0x12,0x0f,0x08,0x1c, +0x1d,0x15,0x11,0x10,0x15,0x13,0x11,0x11,0x0e,0x14,0x0f,0x19,0x10,0x16,0x16,0x11,0x14,0x1a,0x15,0x16,0x15,0x10,0x12,0x0f,0x10,0x15,0x11,0x16,0x13,0x1c,0x1c,0x14,0x17,0x11,0x12,0x1e,0x11,0x0f,0x11,0x0f,0x0b,0x10,0x0f,0x16,0x0d,0x11,0x11,0x0e,0x0f,0x14,0x11,0x11,0x11,0x11,0x0d,0x0c,0x0e,0x14,0x0d,0x11,0x10,0x17,0x18,0x11, +0x15,0x0f,0x0d,0x18,0x0f,0x0f,0x11,0x0b,0x0d,0x0c,0x07,0x17,0x17,0x10,0x0e,0x0e,0x11,0x0e,0x0b,0x1d,0x21,0x12,0x0a,0x0b,0x0b,0x0b,0x07,0x0f,0x0c,0x10,0x16,0x11,0x15,0x11,0x09,0x0a,0x08,0x08,0x0e,0x0e,0x0e,0x0e,0x09,0x09,0x09,0x0e,0x09,0x0e,0x09,0x09,0x09,0x0e,0x0e,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13, +0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x14,0x10,0x14,0x10,0x15,0x11,0x15, +0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x0f,0x0a,0x0f,0x0f,0x16,0x11,0x08,0x0a,0x07,0x07,0x0f,0x0c,0x1a,0x17,0x12,0x0f,0x11,0x0e,0x16,0x11,0x10,0x0e,0x10,0x0e,0x12,0x0e,0x13,0x10,0x13,0x10,0x15,0x0f,0x16,0x11,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x09,0x09,0x09,0x09,0x0f, +0x0f,0x13,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x0d,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x14,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x09,0x14,0x11,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x08,0x07,0x08,0x07,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x0e,0x07,0x1a, +0x19,0x1a,0x19,0x1a,0x19,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x10,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x11,0x10,0x11,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x11,0x0a,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0c,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x0f,0x0a,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x12,0x0e,0x12, +0x0e,0x1b,0x15,0x1b,0x15,0x11,0x0d,0x11,0x0d,0x10,0x0e,0x11,0x0d,0x11,0x0d,0x11,0x0d,0x10,0x0a,0x15,0x0e,0x0f,0x07,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x15,0x15,0x15,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x13,0x18,0x18,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x0d,0x0d,0x11, +0x11,0x08,0x08,0x11,0x11,0x10,0x10,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x15,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0b,0x0b,0x11,0x11,0x11,0x10,0x10,0x10,0x10,0x11,0x11,0x10,0x10,0x10,0x10,0x13,0x13,0x12,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x16,0x11,0x11, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x12,0x0e,0x14,0x16,0x11,0x11,0x11,0x0f,0x10,0x0e,0x14,0x12,0x19,0x08,0x08,0x11,0x0e,0x07,0x0e,0x1a,0x16,0x11,0x16,0x1c,0x17,0x11,0x11,0x11,0x0f,0x0c,0x0f,0x09,0x0a,0x0f,0x0a,0x0f,0x16,0x15,0x11,0x0f,0x11,0x0d,0x12, +0x12,0x0d,0x0c,0x10,0x10,0x0b,0x0b,0x10,0x07,0x0b,0x0d,0x08,0x24,0x21,0x1e,0x19,0x15,0x0f,0x1f,0x1c,0x17,0x13,0x0f,0x08,0x07,0x16,0x11,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x0f,0x13,0x0f,0x13,0x0f,0x19,0x18,0x14,0x11,0x14,0x11,0x11,0x0e,0x16,0x11,0x16,0x11,0x12,0x0d,0x07,0x24,0x21,0x1e,0x14,0x11,0x1d,0x14, +0x16,0x10,0x13,0x0f,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x08,0x07,0x08,0x07,0x16,0x11,0x16,0x11,0x11,0x0a,0x11,0x0a,0x14,0x10,0x14,0x10,0x0f,0x0c,0x15,0x10,0x15,0x11,0x10,0x11,0x0d,0x13,0x0f,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x10,0x0e,0x11,0x0f,0x10,0x10,0x11,0x0f,0x11,0x11,0x11,0x0e,0x0e,0x11,0x11,0x0f,0x12,0x0c,0x0c, +0x0f,0x10,0x08,0x11,0x11,0x0f,0x0e,0x0d,0x10,0x10,0x10,0x08,0x08,0x09,0x08,0x0b,0x07,0x11,0x19,0x19,0x19,0x10,0x10,0x11,0x11,0x14,0x15,0x13,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0c,0x07,0x07,0x08,0x08,0x0a,0x0a,0x11,0x11,0x10,0x0e,0x15,0x0e,0x0c,0x0d,0x0f,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x12,0x0e,0x10,0x0f,0x10, +0x07,0x0e,0x0b,0x11,0x0b,0x0b,0x1b,0x1c,0x1c,0x12,0x0e,0x15,0x17,0x11,0x11,0x0e,0x0e,0x10,0x11,0x10,0x14,0x10,0x13,0x17,0x11,0x14,0x11,0x11,0x0d,0x0e,0x0d,0x11,0x0f,0x12,0x0e,0x1a,0x19,0x12,0x0f,0x12,0x0f,0x12,0x0d,0x11,0x0e,0x13,0x11,0x10,0x0c,0x11,0x11,0x0d,0x07,0x16,0x0e,0x0e,0x19,0x14,0x13,0x11,0x1a,0x15,0x13,0x0e, +0x19,0x14,0x15,0x10,0x1b,0x16,0x10,0x0d,0x17,0x16,0x16,0x11,0x15,0x11,0x15,0x11,0x26,0x20,0x18,0x13,0x21,0x1a,0x19,0x14,0x11,0x0d,0x0f,0x0b,0x0c,0x00,0x00,0x1d,0x1c,0x11,0x0f,0x10,0x11,0x10,0x0f,0x10,0x0d,0x11,0x0e,0x15,0x11,0x18,0x13,0x1d,0x18,0x15,0x10,0x12,0x0d,0x0f,0x0c,0x19,0x14,0x14,0x11,0x18,0x12,0x18,0x12,0x08, +0x19,0x16,0x11,0x0f,0x15,0x11,0x13,0x10,0x13,0x0f,0x13,0x0f,0x19,0x18,0x0f,0x0f,0x15,0x0f,0x15,0x0f,0x19,0x16,0x10,0x0d,0x0f,0x0d,0x16,0x11,0x16,0x11,0x16,0x11,0x16,0x11,0x12,0x0d,0x10,0x0e,0x10,0x0e,0x10,0x0e,0x13,0x10,0x17,0x15,0x11,0x11,0x19,0x19,0x17,0x15,0x10,0x0e,0x1a,0x17,0x1d,0x19,0x15,0x0f,0x14,0x11,0x11,0x10, +0x10,0x0f,0x11,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x11,0x0a,0x0a,0x05,0x06,0x06,0x06,0x08,0x0c,0x08,0x07,0x0b,0x06,0x06,0x06,0x0a,0x0a,0x06,0x06,0x11,0x11,0x11,0x11,0x0a,0x08,0x08,0x0a,0x09,0x08,0x08,0x08,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0a,0x0a,0x08,0x05,0x07,0x08,0x06, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0a,0x0a,0x0c,0x0a,0x07,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10, +0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10, +0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x13,0x09,0x12,0x0a,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x0a,0x08,0x09,0x09,0x0a,0x08,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x11, +0x0e,0x13,0x18,0x0e,0x0d,0x10,0x10,0x0c,0x0c,0x07,0x09,0x0e,0x0b,0x14,0x11,0x11,0x0e,0x12,0x12,0x12,0x1b,0x10,0x11,0x11,0x0d,0x0d,0x0d,0x0c,0x0f,0x10,0x15,0x10,0x0e,0x15,0x0d,0x0c,0x0c,0x0f,0x0b,0x0e,0x11,0x0d,0x11,0x10,0x0a,0x0e,0x0a,0x0a,0x0c,0x09,0x09,0x0c,0x0c,0x05,0x07,0x0a,0x08,0x0f,0x0d,0x0d,0x0c,0x0b,0x0a,0x0a, +0x08,0x0c,0x0f,0x09,0x09,0x0a,0x0e,0x0a,0x0a,0x09,0x09,0x08,0x08,0x0a,0x05,0x09,0x0e,0x0a,0x0a,0x08,0x0a,0x0a,0x0a,0x06,0x0a,0x09,0x0e,0x08,0x09,0x0a,0x08,0x0a,0x0c,0x09,0x05,0x06,0x0a,0x08,0x0a,0x08,0x0a,0x0c,0x09,0x11,0x05,0x0a,0x10,0x19,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x0f,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x1a,0x1b, +0x1b,0x12,0x13,0x12,0x0d,0x0e,0x0f,0x0c,0x0d,0x0f,0x06,0x00,0x00,0x00,0x00,0x11,0x12,0x12,0x12,0x0e,0x0b,0x11,0x11,0x09,0x19,0x10,0x11,0x0a,0x0a,0x0d,0x0a,0x0d,0x11,0x0d,0x11,0x1a,0x13,0x09,0x08,0x11,0x0f,0x11,0x11,0x11,0x09,0x11,0x0e,0x07,0x19,0x10,0x11,0x0a,0x0c,0x0d,0x0e,0x0d,0x0d,0x0f,0x11,0x11,0x0f,0x0d,0x0d,0x15, +0x07,0x0e,0x07,0x10,0x0d,0x0a,0x08,0x08,0x0a,0x08,0x05,0x05,0x0a,0x0a,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0b,0x07,0x05,0x06,0x0a,0x0a,0x0a,0x09,0x08,0x08,0x08,0x09,0x08,0x0a,0x00,0x00,0x00,0x00,0x06,0x09,0x09,0x0a,0x08,0x09,0x10,0x10,0x10,0x10,0x0a,0x00,0x00,0x00,0x00,0x0d,0x09,0x08, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x08,0x08,0x10,0x10,0x10,0x10,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x10,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x05,0x0b,0x0b,0x0a,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x09,0x09,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x17,0x12,0x15,0x11,0x16,0x12,0x1b,0x16,0x10,0x0b,0x0f,0x14,0x10,0x18,0x14,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x0a,0x0a,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x18,0x18,0x1d,0x0c,0x07,0x0f,0x11,0x0c,0x0f,0x0f,0x11,0x11,0x0f,0x1d, +0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x13,0x0f,0x0f,0x0f,0x0a,0x11,0x0a,0x16,0x13,0x0f,0x0a,0x18,0x0f,0x18,0x07,0x0a,0x11,0x11,0x13,0x13,0x13,0x11,0x11,0x11,0x18,0x07,0x11,0x07,0x0f,0x0c,0x07,0x07,0x0f,0x07,0x16,0x07,0x1b,0x0f,0x1b,0x1b,0x11,0x11,0x11,0x0f,0x0f,0x0c,0x0c,0x22,0x22,0x27,0x27,0x18,0x18,0x0f,0x0f,0x05, +0x1d,0x16,0x18,0x13,0x11,0x13,0x0f,0x0f,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x07,0x13,0x00,0x13,0x13,0x13,0x0a,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x0c,0x1b,0x0f,0x1b,0x0f,0x16,0x18,0x0a,0x0f,0x0f,0x0c,0x07,0x0f,0x11,0x0f,0x11,0x0f,0x11,0x11,0x0f,0x13,0x13,0x1b,0x0a,0x0f,0x0c,0x13,0x0f,0x0a, +0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x07,0x11,0x0b,0x1d,0x0f,0x0f,0x13,0x13,0x1d,0x0f,0x00,0x00,0x00,0x13,0x00,0x13,0x13,0x13,0x13,0x16,0x13,0x00,0x00,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0f,0x0f,0x16,0x18,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0f,0x0c,0x0c,0x0c,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x0f,0x11,0x11,0x11,0x1d,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x16,0x16,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b, +0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x13,0x0a,0x10,0x13,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x18,0x1b,0x16,0x18,0x0a,0x0f,0x16,0x18,0x16,0x18,0x00,0x00,0x00,0x00,0x00,0x21,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0c,0x00,0x00,0x11,0x00, +0x00,0x00,0x22,0x18,0x27,0x1d,0x0f,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x1b,0x1b,0x0b,0x11,0x11,0x11,0x24,0x18,0x0f,0x2c,0x1f,0x0a,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0c,0x0c,0x16,0x13,0x13,0x0f,0x00,0x00,0x00,0x0a,0x0a,0x0a, +0x0a,0x24,0x2c,0x00,0x00,0x00,0x00,0x00,0x11,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x13,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x1d,0x0f,0x0f,0x1d,0x0f,0x0f,0x1b,0x0f,0x0f,0x1b,0x0f, +0x0f,0x1b,0x0f,0x0f,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x0c,0x0c,0x22,0x18,0x13,0x11,0x11,0x00,0x0f,0x0f,0x0f,0x0b,0x11,0x14,0x12,0x0f,0x0f,0x0a,0x07,0x16,0x11,0x11,0x0a,0x10,0x0e,0x0e,0x0d,0x0e,0x07,0x0f,0x0c,0x12,0x0e,0x11,0x0d,0x10,0x0d,0x14,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x15,0x0d,0x0e,0x0e,0x08,0x0f,0x10,0x11,0x0f,0x0a,0x16,0x11,0x13,0x10,0x12,0x0e,0x11,0x0f,0x0b,0x14,0x0b,0x0c,0x0c,0x0e,0x11,0x11,0x0f,0x1d,0x0f,0x1d,0x0a,0x07,0x05,0x10,0x06,0x04,0x00,0x04,0x06,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1b,0x0c,0x16,0x11,0x1b,0x15,0x12, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x1b,0x19,0x0e,0x19,0x0e,0x19,0x13,0x14,0x14,0x14,0x16,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x15,0x11,0x1f,0x18,0x0e,0x0e,0x08,0x08,0x08,0x0b,0x06,0x10,0x07,0x07,0x18,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x00, +0x06,0x00,0x00,0x06,0x00,0x00,0x12,0x11,0x0d,0x0e,0x14,0x08,0x0a,0x14,0x14,0x08,0x10,0x10,0x10,0x14,0x14,0x08,0x0c,0x14,0x12,0x12,0x12,0x10,0x11,0x13,0x10,0x17,0x15,0x0f,0x0f,0x0f,0x07,0x0b,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x0e,0x14,0x10,0x10,0x14,0x10,0x15,0x10,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x11,0x0d,0x0e,0x14, +0x09,0x0a,0x14,0x09,0x10,0x10,0x10,0x14,0x0c,0x14,0x12,0x12,0x11,0x13,0x10,0x17,0x15,0x08,0x11,0x10,0x12,0x13,0x23,0x00,0x12,0x10,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x08,0x00, +0x16,0x13,0x13,0x14,0x10,0x13,0x16,0x16,0x0e,0x12,0x16,0x15,0x13,0x16,0x18,0x17,0x13,0x10,0x10,0x16,0x14,0x11,0x14,0x14,0x13,0x14,0x14,0x15,0x11,0x12,0x14,0x13,0x16,0x12,0x12,0x13,0x13,0x18,0x0e,0x11,0x11,0x19,0x10,0x10,0x16,0x1a,0x12,0x10,0x1e,0x10,0x10,0x16,0x10,0x10,0x16,0x10,0x16,0x18,0x19,0x10,0x16,0x10,0x13,0x10, +0x12,0x10,0x12,0x10,0x12,0x16,0x10,0x12,0x13,0x10,0x10,0x11,0x1c,0x10,0x10,0x11,0x11,0x0c,0x0a,0x10,0x10,0x10,0x10,0x10,0x1a,0x10,0x1a,0x0e,0x10,0x1a,0x13,0x10,0x1a,0x16,0x16,0x1a,0x11,0x10,0x1a,0x1a,0x10,0x10,0x10,0x10,0x10,0x10,0x1a,0x1a,0x11,0x10,0x10,0x1a,0x11,0x10,0x10,0x10,0x1a,0x17,0x14,0x14,0x14,0x14,0x15,0x12, +0x14,0x17,0x14,0x13,0x10,0x17,0x14,0x14,0x11,0x13,0x14,0x16,0x15,0x11,0x14,0x13,0x15,0x13,0x16,0x14,0x15,0x15,0x14,0x12,0x14,0x14,0x15,0x17,0x13,0x16,0x15,0x03,0x03,0x04,0x06,0x04,0x08,0x0a,0x19,0x10,0x12,0x11,0x10,0x12,0x10,0x10,0x13,0x11,0x10,0x09,0x18,0x11,0x10,0x10,0x10,0x12,0x0f,0x11,0x08,0x11,0x0f,0x10,0x0c,0x19, +0x10,0x10,0x10,0x11,0x18,0x10,0x11,0x0b,0x18,0x11,0x11,0x14,0x14,0x06,0x08,0x21,0x21,0x21,0x21,0x29,0x10,0x10,0x07,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x10,0x10,0x10,0x10,0x10,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0e,0x0f,0x11,0x0c,0x0c,0x11,0x12,0x07,0x09,0x0e,0x0c,0x16,0x13,0x12,0x0e,0x12,0x0e,0x0c,0x0d,0x11,0x0f,0x17,0x0f,0x0e,0x0e,0x14,0x16,0x0c,0x12,0x0e,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0c,0x0c,0x0c,0x07,0x07,0x07,0x07,0x13,0x12,0x12,0x12,0x12,0x12,0x11, +0x11,0x11,0x11,0x0e,0x0f,0x0f,0x0f,0x0f,0x0f,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x0f,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x10,0x09,0x0e,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0f,0x14,0x12,0x0f,0x0e,0x0b,0x10,0x0c,0x0e,0x12,0x12,0x07,0x0e,0x0f,0x16,0x13,0x0d,0x12,0x12,0x0e,0x0d,0x0d,0x0e,0x12,0x0f,0x13,0x12,0x0f,0x0c,0x12,0x07,0x12,0x0e,0x12,0x07,0x0e,0x0c,0x11,0x0c,0x0f,0x0c,0x07,0x07,0x09,0x18,0x18,0x12,0x0e,0x0e,0x12,0x0f,0x0e,0x0e,0x0c,0x11,0x0c,0x15,0x0d,0x13,0x13, +0x0e,0x10,0x16,0x12,0x12,0x12,0x0e,0x0f,0x0d,0x0e,0x12,0x0f,0x12,0x10,0x17,0x18,0x10,0x14,0x0e,0x0f,0x19,0x0e,0x0c,0x11,0x11,0x12,0x1a,0x1a,0x13,0x0f,0x11,0x0c,0x11,0x10,0x10,0x14,0x0f,0x0f,0x14,0x11,0x11,0x0a,0x12,0x12,0x11,0x0e,0x0e,0x1a,0x16,0x0e,0x0f,0x11,0x11,0x12,0x12,0x15,0x14,0x0a,0x1b,0x11,0x10,0x11,0x13,0x13, +0x0f,0x0f,0x08,0x16,0x14,0x14,0x0e,0x14,0x06,0x06,0x0d,0x0d,0x06,0x06,0x12,0x0c,0x08,0x16,0x14,0x08,0x06,0x06,0x0d,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x14,0x0e,0x09,0x12,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0d,0x0f,0x0c,0x06,0x07,0x0b,0x0f,0x0a,0x13,0x13,0x13,0x1b,0x16,0x1b,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x18, +0x0a,0x0a,0x0f,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x0f,0x0f,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x0f,0x0f,0x1b,0x1b,0x0f,0x0f,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x1d,0x16,0x18,0x0f,0x11,0x11,0x13,0x0a,0x13,0x16,0x0f,0x0f,0x0a,0x0a,0x0a, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1b,0x0a,0x16,0x0f,0x0f,0x07,0x0f,0x0f,0x0f,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x22,0x18,0x22,0x18,0x22,0x18,0x27,0x1d,0x27,0x1d, +0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x16,0x0f,0x0f,0x16,0x0f,0x0f,0x1b,0x0f,0x1f,0x1d,0x1b,0x0f,0x18,0x0f,0x18,0x0f,0x18,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x1b,0x0f,0x13,0x13,0x13,0x13,0x13,0x0a,0x13,0x13,0x0a,0x0a,0x13,0x0a,0x13,0x0a,0x13,0x0f,0x11,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0a,0x0a,0x0f,0x0a,0x0a,0x0a,0x0a,0x00,0x22,0x18,0x27,0x1d,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x0f,0x0f,0x0c,0x22,0x18,0x1d,0x1d,0x1b,0x1b,0x1b,0x11,0x11,0x11,0x11,0x13,0x0a,0x13,0x0a,0x13,0x0a,0x22,0x18,0x11,0x13,0x11,0x11,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18, +0x0c,0x0c,0x11,0x11,0x11,0x11,0x0a,0x0a,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x16,0x18,0x0a,0x0a,0x11,0x11,0x11,0x11,0x1b,0x0a,0x1b,0x0a,0x11,0x13,0x11,0x11,0x22,0x22,0x18,0x18,0x22,0x22,0x18,0x18,0x18,0x18,0x0f,0x0f,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x07,0x07,0x0a,0x07,0x00,0x00,0x00,0x18, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x18,0x11,0x18,0x11,0x18,0x11,0x18,0x13,0x13,0x13,0x07,0x07,0x0f,0x0c,0x11,0x12,0x11,0x10,0x10,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x0f,0x11,0x12,0x12,0x13,0x11,0x10,0x13,0x0f, +0x13,0x16,0x13,0x16,0x18,0x12,0x16,0x14,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x0d,0x10,0x12,0x11,0x13,0x11,0x13,0x11,0x11,0x11,0x0f,0x0f,0x16,0x14,0x14,0x14,0x14,0x11,0x11,0x11,0x15,0x16,0x16,0x16,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x19,0x19,0x10,0x16,0x19,0x16,0x11,0x19,0x15,0x14,0x14,0x12,0x13,0x16,0x17, +0x14,0x12,0x14,0x11,0x0f,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x14,0x1b,0x1b,0x15,0x16,0x17,0x16,0x15,0x15,0x13,0x1a,0x16,0x18,0x15,0x15,0x11,0x15,0x14,0x14,0x19,0x16,0x15,0x1a,0x10,0x0f,0x10,0x10,0x12,0x12,0x14,0x15,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x10,0x10,0x10,0x0f,0x0f,0x11,0x12,0x11,0x11,0x0d,0x10,0x10, +0x11,0x12,0x16,0x18,0x13,0x13,0x12,0x16,0x13,0x14,0x0f,0x0e,0x11,0x10,0x0e,0x0e,0x10,0x10,0x0e,0x0d,0x12,0x0d,0x10,0x0e,0x10,0x17,0x10,0x18,0x10,0x10,0x11,0x16,0x09,0x17,0x14,0x15,0x13,0x10,0x16,0x11,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x12,0x12,0x12,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0e,0x0d, +0x09,0x09,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x12,0x08,0x08,0x08,0x09,0x09,0x08,0x08,0x08,0x09,0x08,0x08,0x08,0x1a,0x1a,0x1a,0x1a,0x0e,0x16,0x15,0x0e,0x0c,0x0e,0x0f,0x10,0x0e,0x18,0x18,0x19,0x0d,0x1d,0x0e,0x18,0x18,0x18,0x17,0x10,0x0e,0x0e,0x17,0x11,0x17,0x14,0x0f,0x0d,0x0c,0x1e,0x0c,0x0f,0x0e,0x0e,0x0e,0x0e,0x0e, +0x28,0x18,0x18,0x0c,0x07,0x0d,0x07,0x0d,0x07,0x07,0x07,0x0e,0x11,0x11,0x10,0x0b,0x0b,0x07,0x07,0x07,0x0b,0x07,0x0c,0x19,0x06,0x1a,0x1a,0x1a,0x11,0x11,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x13,0x22,0x22,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0e,0x11,0x0e,0x0f,0x0c,0x0a,0x0a,0x14,0x10,0x15,0x0c,0x21,0x1a,0x11,0x10,0x1b,0x17,0x18,0x16,0x1e,0x18,0x1b,0x16,0x13,0x0e,0x15,0x11,0x1b,0x15,0x16,0x12,0x16,0x11,0x19,0x13,0x19,0x13,0x20,0x18,0x16,0x11,0x16,0x11,0x23,0x1a,0x17,0x00,0x1d,0x1d, +0x1d,0x0e,0x00,0x00,0x11,0x0f,0x14,0x10,0x0f,0x0c,0x1f,0x1a,0x1b,0x19,0x15,0x11,0x14,0x11,0x0f,0x0c,0x15,0x11,0x0f,0x0c,0x18,0x13,0x13,0x10,0x1c,0x18,0x10,0x11,0x15,0x15,0x17,0x0d,0x06,0x0d,0x14,0x0d,0x1d,0x1d,0x07,0x00,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, +0x21,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x0e,0x14, +0x15,0x08,0x06,0x08,0x06,0x15,0x10,0x16,0x12,0x10,0x0e,0x0f,0x0e,0x11,0x11,0x0c,0x0c,0x21,0x18,0x21,0x1a,0x1d,0x19,0x1a,0x13,0x1a,0x13,0x1a,0x13,0x12,0x0d,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x10,0x09,0x0e,0x07,0x16,0x11,0x19,0x14,0x27,0x1d,0x10,0x11,0x14,0x14,0x17,0x19,0x16,0x11,0x1c,0x17,0x10,0x0c,0x10,0x0e,0x12,0x0e,0x1b, +0x15,0x12,0x0f,0x10,0x11,0x10,0x11,0x0e,0x0c,0x0e,0x0b,0x0e,0x0b,0x0f,0x0f,0x09,0x14,0x0a,0x1c,0x13,0x0a,0x11,0x12,0x0d,0x16,0x10,0x0b,0x0a,0x11,0x11,0x11,0x0e,0x07,0x16,0x11,0x0b,0x0a,0x12,0x0d,0x15,0x0b,0x17,0x11,0x12,0x0d,0x14,0x11,0x11,0x0e,0x16,0x10,0x11,0x0a,0x0f,0x0c,0x16,0x0c,0x0f,0x19,0x0e,0x10,0x1a,0x08,0x21, +0x1a,0x1a,0x22,0x1a,0x1b,0x1b,0x19,0x1a,0x1b,0x0f,0x0e,0x12,0x14,0x1a,0x14,0x1b,0x07,0x0d,0x11,0x19,0x1e,0x14,0x1e,0x12,0x12,0x17,0x14,0x21,0x1b,0x0f,0x1b,0x0a,0x1b,0x0a,0x11,0x11,0x11,0x11,0x18,0x18,0x18,0x18,0x1d,0x0f,0x0f,0x1d,0x16,0x0f,0x0f,0x16,0x13,0x0a,0x0a,0x13,0x11,0x11,0x11,0x11,0x16,0x0a,0x0a,0x18,0x16,0x0a, +0x0a,0x18,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x0f,0x0b,0x10,0x0f,0x16,0x11,0x11,0x19,0x13,0x16,0x16,0x18,0x18,0x11,0x0e,0x1d,0x17,0x1e,0x19,0x14,0x11,0x09,0x09,0x11,0x13,0x0c,0x11,0x0f, +0x11,0x0e,0x15,0x17,0x0c,0x11,0x0c,0x06,0x0b,0x0f,0x10,0x06,0x06,0x05,0x06,0x0b,0x0b,0x0b,0x0d,0x2b,0x3a,0x0a,0x0c,0x04,0x08,0x0b,0x0c,0x09,0x0e,0x0f,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x0e,0x0e,0x27,0x10,0x16,0x1b,0x1a,0x13,0x0d,0x10,0x15,0x15,0x0e,0x09,0x13,0x0f,0x14,0x10,0x13,0x0f,0x10, +0x16,0x11,0x11,0x0f,0x16,0x12,0x18,0x0d,0x0f,0x12,0x09,0x11,0x0a,0x0a,0x07,0x19,0x11,0x10,0x0f,0x0f,0x11,0x1b,0x1b,0x1b,0x1d,0x1d,0x10,0x0e,0x08,0x0f,0x0d,0x12,0x0d,0x13,0x07,0x10,0x11,0x19,0x19,0x12,0x10,0x11,0x10,0x0f,0x0d,0x0f,0x0d,0x0e,0x09,0x0a,0x07,0x06,0x0a,0x11,0x12,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x08,0x08,0x08,0x07,0x07,0x31,0x1d,0x19,0x1e,0x08,0x08,0x09,0x0b,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x1b,0x0a,0x0a,0x1b,0x08,0x0f,0x0f,0x27,0x1d,0x1d,0x27,0x1b,0x0f,0x0f,0x1b,0x0f,0x0f,0x0c,0x0c,0x00,0x00,0x0a,0x16,0x11,0x15,0x11,0x24,0x1e,0x14,0x10, +0x14,0x10,0x27,0x1d,0x16,0x11,0x0b,0x09,0x12,0x00,0x14,0x10,0x0a,0x09,0x05,0x0e,0x0a,0x0a,0x07,0x06,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x06,0x0f,0x0c,0x11,0x11,0x10,0x1c,0x17,0x17,0x17,0x18,0x1b,0x12,0x14,0x11,0x0b,0x1b,0x21,0x0d,0x21,0x0f,0x18,0x1b,0x1b,0x1b,0x0c,0x16,0x1d,0x16,0x13,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x11,0x11,0x11,0x18,0x0f,0x0f,0x1b,0x0a,0x0a,0x1b,0x0a,0x0a,0x1b,0x0e,0x0e,0x00,0x0c,0x18,0x0a,0x0a,0x1d,0x0f,0x0f,0x16,0x0f,0x0f,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x2c,0x2c,0x1a,0x00,0x00,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x12,0x13,0x13,0x1a,0x13,0x12,0x17,0x1c,0x13,0x12,0x1f,0x12,0x12,0x1b,0x12,0x14,0x17,0x13,0x16,0x19,0x1a,0x13,0x16,0x13,0x14,0x12,0x14,0x12,0x13,0x14,0x12,0x17,0x11,0x13,0x17,0x12,0x12,0x11,0x17,0x13,0x13,0x13,0x14,0x0d,0x0f,0x13,0x17,0x17,0x10,0x00,0x00, +0x20,0x40,0x15,0x00,0x03,0x09,0x09,0x0d,0x13,0x11,0x1a,0x1a,0x07,0x0a,0x0a,0x0d,0x16,0x07,0x0d,0x07,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x16,0x16,0x16,0x0e,0x1f,0x15,0x12,0x14,0x16,0x10,0x10,0x16,0x17,0x09,0x0b,0x13,0x0f,0x1d,0x18,0x18,0x12,0x18,0x13,0x11,0x11,0x16,0x14,0x1e,0x13,0x12,0x12, +0x0a,0x0c,0x0a,0x16,0x0d,0x09,0x10,0x13,0x0f,0x13,0x11,0x0a,0x13,0x12,0x08,0x08,0x10,0x08,0x1c,0x12,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x12,0x0f,0x17,0x0f,0x0f,0x0e,0x0a,0x08,0x0a,0x16,0x15,0x15,0x14,0x10,0x18,0x18,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x12,0x13,0x13,0x13,0x13,0x13, +0x12,0x12,0x12,0x12,0x0c,0x0c,0x11,0x11,0x0e,0x0d,0x0f,0x11,0x0d,0x1c,0x1c,0x19,0x09,0x0d,0x16,0x1c,0x18,0x1a,0x16,0x16,0x16,0x11,0x12,0x11,0x14,0x18,0x11,0x0d,0x0e,0x18,0x1b,0x13,0x0e,0x09,0x09,0x16,0x15,0x11,0x16,0x15,0x10,0x10,0x17,0x15,0x15,0x18,0x1e,0x1e,0x10,0x20,0x0c,0x0c,0x07,0x07,0x16,0x13,0x0f,0x12,0x06,0x11, +0x0a,0x0a,0x12,0x12,0x0c,0x07,0x07,0x0c,0x27,0x15,0x10,0x15,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x18,0x18,0x16,0x16,0x16,0x08,0x0c,0x0b,0x0a,0x0a,0x06,0x09,0x07,0x0a,0x06,0x0c,0x0f,0x09,0x11,0x0e,0x12,0x0e,0x08,0x16,0x12,0x12,0x0f,0x12,0x13,0x16,0x16,0x0b,0x0c,0x0c,0x1e,0x1d,0x1e,0x10,0x16,0x13,0x09,0x11,0x0e,0x14,0x0f, +0x14,0x0f,0x13,0x0d,0x07,0x15,0x10,0x15,0x10,0x16,0x16,0x16,0x10,0x11,0x10,0x11,0x0f,0x08,0x0f,0x0a,0x0f,0x0a,0x18,0x12,0x18,0x12,0x18,0x13,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x11,0x0e,0x16,0x12,0x16,0x12,0x12,0x0e,0x12,0x0e,0x0f,0x18,0x18,0x14,0x13,0x0e,0x12,0x10,0x16,0x0d,0x0f,0x0d,0x24,0x14,0x10,0x13,0x07,0x0c, +0x1a,0x0a,0x13,0x0b,0x0b,0x13,0x0b,0x15,0x10,0x14,0x0f,0x14,0x0f,0x10,0x11,0x10,0x11,0x10,0x11,0x16,0x13,0x16,0x13,0x16,0x13,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0b,0x08,0x13,0x10,0x10,0x0f,0x08,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x13,0x0b,0x11,0x0e,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12, +0x16,0x12,0x1e,0x17,0x12,0x0f,0x08,0x15,0x10,0x1c,0x1b,0x18,0x13,0x07,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x12,0x0f,0x07,0x0d,0x11,0x13,0x1e,0x1e,0x1e,0x1d,0x0c,0x0c,0x07,0x09,0x09,0x15,0x12,0x19,0x0c,0x1a,0x15,0x1a,0x09,0x15,0x12,0x10,0x12,0x17,0x09,0x13,0x14,0x1d,0x18,0x10,0x18,0x17,0x12,0x11,0x11,0x12,0x13,0x19,0x18,0x09, +0x12,0x14,0x0e,0x12,0x09,0x12,0x12,0x11,0x0e,0x12,0x13,0x09,0x11,0x10,0x12,0x11,0x0e,0x13,0x13,0x0f,0x12,0x11,0x18,0x1a,0x09,0x12,0x13,0x12,0x1a,0x10,0x16,0x0f,0x14,0x11,0x09,0x1f,0x1f,0x17,0x13,0x12,0x17,0x15,0x12,0x12,0x0f,0x16,0x10,0x1c,0x11,0x18,0x18,0x13,0x16,0x1d,0x17,0x18,0x17,0x12,0x14,0x11,0x12,0x17,0x13,0x18, +0x15,0x1e,0x1f,0x17,0x19,0x12,0x14,0x21,0x13,0x10,0x13,0x11,0x0c,0x12,0x11,0x18,0x0e,0x13,0x13,0x10,0x11,0x16,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x16,0x0f,0x13,0x12,0x1a,0x1a,0x13,0x17,0x10,0x0f,0x1a,0x10,0x11,0x12,0x0c,0x0f,0x0e,0x08,0x19,0x1a,0x12,0x10,0x0f,0x12,0x0f,0x0d,0x20,0x24,0x14,0x0b,0x0c,0x0c,0x0c,0x08,0x11, +0x0e,0x12,0x18,0x13,0x17,0x13,0x0a,0x0b,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x0a,0x0f,0x0a,0x0f,0x0a,0x0a,0x0a,0x0f,0x0f,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10, +0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x16,0x12,0x16,0x12,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x11,0x0b,0x10,0x11,0x18,0x13,0x09,0x0b,0x08,0x08,0x10,0x0d,0x1d,0x19,0x14, +0x11,0x13,0x10,0x18,0x13,0x12,0x0f,0x12,0x0f,0x14,0x10,0x15,0x12,0x15,0x12,0x17,0x11,0x18,0x13,0x0a,0x0a,0x0a,0x0a,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x15,0x10,0x12,0x13,0x12,0x13,0x12,0x13,0x14,0x0f,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x16,0x13,0x10,0x11,0x10,0x11,0x10,0x11,0x10, +0x11,0x10,0x11,0x10,0x0a,0x16,0x13,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x17,0x12,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x0f,0x08,0x1d,0x1c,0x1d,0x1c,0x1d,0x1c,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x13,0x12,0x13,0x13,0x0b,0x13, +0x0b,0x13,0x0b,0x13,0x0b,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x14,0x0f,0x14,0x0f,0x1e,0x17,0x1e,0x17,0x13,0x0f,0x13,0x0f,0x12,0x0f,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0b,0x17,0x0f,0x10,0x08,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x17,0x17,0x17,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1f, +0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x0e,0x0e,0x12,0x12,0x09,0x09,0x13,0x13,0x12,0x12,0x1a,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x15,0x15,0x14,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1a,0x18,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x12,0x13,0x12,0x13,0x14,0x14,0x0f,0x16,0x18,0x12,0x13,0x13, +0x10,0x11,0x10,0x16,0x14,0x1c,0x09,0x09,0x13,0x10,0x08,0x10,0x1d,0x18,0x12,0x18,0x1f,0x19,0x13,0x13,0x12,0x11,0x0e,0x11,0x09,0x0b,0x11,0x0b,0x11,0x18,0x17,0x12,0x11,0x12,0x0e,0x14,0x14,0x0e,0x0d,0x11,0x11,0x0c,0x0d,0x11,0x08,0x0c,0x0f,0x09,0x28,0x24,0x21,0x1b,0x17,0x10,0x22,0x1f,0x1a,0x15,0x10,0x09,0x08,0x18,0x13,0x16, +0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x11,0x15,0x10,0x15,0x10,0x1c,0x1b,0x16,0x13,0x16,0x13,0x13,0x10,0x18,0x13,0x18,0x13,0x14,0x0e,0x08,0x28,0x24,0x21,0x16,0x13,0x20,0x16,0x18,0x12,0x15,0x10,0x15,0x10,0x10,0x11,0x10,0x11,0x09,0x08,0x09,0x08,0x18,0x13,0x18,0x13,0x12,0x0b,0x13,0x0b,0x16,0x12,0x16,0x12,0x10,0x0e, +0x17,0x12,0x17,0x13,0x12,0x12,0x0e,0x15,0x10,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x12,0x0f,0x13,0x10,0x12,0x12,0x13,0x10,0x13,0x13,0x13,0x0f,0x0f,0x13,0x13,0x11,0x14,0x0d,0x0d,0x10,0x12,0x09,0x13,0x13,0x11,0x0f,0x0f,0x12,0x12,0x12,0x08,0x09,0x0a,0x09,0x0c,0x08,0x13,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x16,0x17,0x14, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x08,0x09,0x09,0x0b,0x0b,0x13,0x13,0x12,0x0f,0x17,0x0f,0x0d,0x0e,0x10,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x14,0x0f,0x12,0x11,0x12,0x08,0x10,0x0c,0x13,0x0c,0x0c,0x1d,0x1e,0x1f,0x14,0x0f,0x17,0x19,0x13,0x12,0x10,0x10,0x12,0x13,0x12,0x16,0x12,0x14,0x1a,0x12,0x16,0x13,0x13, +0x0f,0x10,0x0e,0x13,0x10,0x14,0x10,0x1d,0x1c,0x13,0x10,0x14,0x11,0x14,0x0f,0x13,0x10,0x15,0x13,0x12,0x0d,0x12,0x13,0x0f,0x08,0x18,0x0f,0x0f,0x1c,0x16,0x15,0x13,0x1d,0x17,0x15,0x10,0x1c,0x16,0x17,0x12,0x1e,0x18,0x11,0x0e,0x19,0x18,0x18,0x13,0x17,0x13,0x17,0x13,0x2a,0x24,0x1a,0x15,0x24,0x1d,0x1c,0x16,0x13,0x0e,0x10,0x0d, +0x0d,0x00,0x00,0x20,0x1e,0x12,0x10,0x12,0x13,0x12,0x10,0x11,0x0f,0x13,0x10,0x17,0x13,0x1b,0x15,0x20,0x1b,0x17,0x12,0x14,0x0f,0x11,0x0d,0x1c,0x16,0x16,0x13,0x1b,0x14,0x1b,0x14,0x09,0x1c,0x18,0x13,0x10,0x17,0x12,0x15,0x12,0x15,0x10,0x15,0x10,0x1c,0x1b,0x10,0x11,0x17,0x11,0x17,0x11,0x1c,0x18,0x11,0x0e,0x11,0x0e,0x18,0x13, +0x18,0x13,0x18,0x13,0x18,0x13,0x14,0x0f,0x12,0x0f,0x12,0x0f,0x12,0x0f,0x15,0x12,0x19,0x17,0x12,0x13,0x1b,0x1c,0x1a,0x17,0x12,0x0f,0x1d,0x19,0x20,0x1b,0x17,0x11,0x16,0x13,0x13,0x12,0x12,0x10,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d, +0x09,0x07,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0a,0x0b,0x0b,0x09,0x05,0x08,0x09,0x07,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0b,0x0b,0x0d,0x0b,0x08,0x08,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c, +0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11, +0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00, +0x15,0x0a,0x14,0x0b,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0a,0x0a,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x15,0x1b,0x0f,0x0f,0x12,0x12,0x0d,0x0d,0x08,0x0a,0x10,0x0d,0x16,0x13,0x13,0x0f,0x14,0x14,0x14,0x1e,0x11,0x13,0x13,0x0f,0x0f,0x0f,0x0d, +0x11,0x12,0x17,0x12,0x0f,0x17,0x0e,0x0d,0x0d,0x11,0x0c,0x0f,0x12,0x0f,0x13,0x12,0x0c,0x10,0x0b,0x0b,0x0d,0x0a,0x0a,0x0d,0x0e,0x06,0x07,0x0b,0x09,0x11,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x09,0x0d,0x11,0x0a,0x0a,0x0b,0x0f,0x0b,0x0b,0x0a,0x0a,0x08,0x08,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x06,0x0b,0x0a,0x10,0x09, +0x0a,0x0b,0x09,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x09,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x11,0x1c,0x14,0x11,0x11,0x1c,0x15,0x1b,0x18,0x11,0x13,0x10,0x0e,0x24,0x0f,0x13,0x1c,0x1e,0x1e,0x14,0x15,0x14,0x0f,0x0f,0x11,0x0e,0x0e,0x10,0x06,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x0f,0x0c,0x13,0x13,0x0a,0x1c,0x12,0x13,0x0b, +0x0b,0x0f,0x0b,0x0e,0x13,0x0f,0x12,0x1d,0x15,0x0a,0x09,0x13,0x11,0x13,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x12,0x13,0x0b,0x0e,0x0e,0x0f,0x0f,0x0e,0x10,0x13,0x13,0x11,0x0e,0x0e,0x18,0x08,0x0f,0x08,0x12,0x0e,0x0b,0x09,0x09,0x0b,0x08,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0b,0x0b, +0x0c,0x07,0x05,0x06,0x0b,0x0b,0x0b,0x0a,0x09,0x08,0x08,0x09,0x08,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x11,0x11,0x11,0x11,0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09, +0x12,0x12,0x12,0x12,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0b,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0b,0x0c,0x0c,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x19,0x14,0x17,0x12,0x18,0x14,0x1e,0x18,0x11,0x0c, +0x10,0x16,0x11,0x1a,0x16,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x20,0x0d,0x08,0x10,0x13,0x0d,0x10,0x10,0x13,0x13,0x10,0x20,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x15,0x10,0x10,0x10,0x0b,0x13,0x0b,0x18,0x15,0x10,0x0b,0x1b,0x10,0x1b,0x08,0x0b,0x13,0x13,0x15,0x15, +0x15,0x13,0x13,0x13,0x1b,0x08,0x13,0x08,0x10,0x0d,0x08,0x08,0x10,0x08,0x18,0x08,0x1d,0x10,0x1d,0x1d,0x13,0x13,0x13,0x10,0x10,0x0d,0x0d,0x25,0x25,0x2b,0x2b,0x1b,0x1b,0x10,0x10,0x05,0x20,0x18,0x1b,0x15,0x13,0x15,0x10,0x10,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x10,0x10, +0x1d,0x0b,0x1d,0x0b,0x13,0x15,0x13,0x0d,0x1d,0x10,0x1d,0x10,0x18,0x1b,0x0b,0x10,0x10,0x0d,0x08,0x10,0x13,0x10,0x13,0x10,0x13,0x13,0x10,0x15,0x15,0x1d,0x0b,0x10,0x0d,0x15,0x10,0x0b,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x08,0x13,0x0c,0x20,0x10,0x10,0x15,0x15,0x20,0x10,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x18,0x15, +0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x10,0x10,0x18,0x1b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x10,0x0d,0x0d,0x0d,0x25,0x1b,0x25,0x1b,0x25, +0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x10,0x13,0x13,0x13,0x20,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x20,0x10,0x10,0x18,0x18,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x15,0x0b,0x11,0x15,0x13,0x10, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1b,0x1d,0x18,0x1b,0x0b,0x10,0x18,0x1b,0x18,0x1b,0x00,0x00,0x00,0x00,0x00,0x24,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0d,0x00,0x00,0x13,0x00,0x00,0x00,0x25,0x1b,0x2b,0x20,0x10,0x13,0x13,0x13,0x0d,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10, +0x1d,0x1d,0x0c,0x13,0x13,0x13,0x27,0x1b,0x11,0x31,0x23,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x0d,0x0d,0x18,0x15,0x15,0x10,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x28,0x30,0x00,0x00,0x00,0x00,0x00,0x13,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x1d,0x0b,0x13,0x13,0x13,0x13,0x15,0x13,0x10,0x10,0x0d,0x25,0x1b,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x10,0x13,0x13,0x13,0x20,0x10,0x10,0x20,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x1d,0x10,0x10,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x0d,0x0d,0x25,0x1b,0x15,0x13,0x13,0x00,0x10,0x10, +0x10,0x0c,0x12,0x16,0x14,0x10,0x11,0x0b,0x08,0x18,0x13,0x13,0x0b,0x12,0x0f,0x0f,0x0f,0x0f,0x08,0x10,0x0d,0x14,0x10,0x13,0x0f,0x11,0x0e,0x16,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0e,0x0f,0x0f,0x09,0x10,0x12,0x13,0x10,0x0b,0x18,0x13,0x14,0x11,0x14,0x10,0x12,0x10,0x0d,0x16,0x0c,0x0d,0x0d,0x0f,0x13,0x13, +0x10,0x20,0x10,0x20,0x0b,0x08,0x05,0x11,0x07,0x04,0x00,0x04,0x07,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x1e,0x0e,0x18,0x13,0x1e,0x17,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x0f,0x1c,0x0f,0x1c,0x15,0x16,0x16,0x16,0x18,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x16,0x16,0x16,0x16,0x18,0x13,0x22,0x1a,0x0f,0x0f,0x09,0x09,0x09,0x0c,0x07,0x12,0x07,0x07,0x1b,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x14,0x12,0x0e,0x0f,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x11,0x12,0x16,0x16,0x09,0x0d,0x16,0x13,0x14,0x14,0x12, +0x13,0x15,0x12,0x19,0x17,0x11,0x11,0x11,0x07,0x0c,0x12,0x12,0x12,0x12,0x11,0x13,0x14,0x0f,0x16,0x11,0x12,0x16,0x12,0x17,0x12,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x12,0x0e,0x0f,0x16,0x0a,0x0b,0x16,0x0a,0x12,0x11,0x12,0x16,0x0d,0x16,0x14,0x14,0x13,0x15,0x12,0x19,0x17,0x09,0x12,0x11,0x14,0x15,0x26,0x00,0x14,0x12,0x15,0x15, +0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x18,0x15,0x15,0x17,0x12,0x15,0x18,0x18,0x0f,0x14,0x18,0x18,0x15,0x18,0x1a,0x19,0x15,0x12,0x12,0x18,0x17,0x12,0x16,0x16,0x15,0x16,0x16,0x18, +0x12,0x14,0x16,0x15,0x19,0x14,0x14,0x15,0x15,0x1a,0x10,0x13,0x13,0x1c,0x11,0x11,0x19,0x1d,0x14,0x11,0x22,0x12,0x12,0x18,0x11,0x11,0x18,0x12,0x18,0x1a,0x1c,0x11,0x19,0x11,0x15,0x11,0x14,0x12,0x14,0x11,0x13,0x19,0x11,0x14,0x15,0x11,0x11,0x13,0x1f,0x11,0x11,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x11,0x12,0x1c,0x12,0x1c,0x10, +0x12,0x1c,0x15,0x12,0x1c,0x18,0x18,0x1c,0x12,0x12,0x1c,0x1c,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x13,0x12,0x12,0x1c,0x13,0x11,0x12,0x12,0x1c,0x19,0x16,0x16,0x16,0x16,0x17,0x14,0x16,0x19,0x16,0x15,0x11,0x19,0x16,0x16,0x12,0x15,0x16,0x18,0x17,0x13,0x16,0x15,0x17,0x15,0x19,0x16,0x17,0x17,0x16,0x14,0x16,0x16,0x17,0x19, +0x15,0x18,0x17,0x03,0x04,0x05,0x06,0x05,0x09,0x0b,0x1c,0x12,0x14,0x13,0x12,0x14,0x12,0x12,0x15,0x13,0x12,0x0a,0x1b,0x13,0x12,0x12,0x11,0x13,0x10,0x13,0x09,0x13,0x11,0x12,0x0d,0x1c,0x12,0x12,0x12,0x13,0x1b,0x12,0x13,0x0d,0x1b,0x13,0x13,0x16,0x16,0x07,0x09,0x24,0x24,0x24,0x24,0x2e,0x11,0x11,0x08,0x11,0x0c,0x11,0x11,0x12, +0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x11,0x11,0x12,0x11,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x10,0x10,0x10,0x13,0x0e,0x0d,0x12,0x14,0x08,0x0a,0x10,0x0d,0x18,0x15,0x14,0x10,0x14,0x10,0x0d, +0x0e,0x13,0x10,0x1a,0x10,0x0f,0x0f,0x16,0x19,0x0d,0x14,0x10,0x13,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08,0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x13,0x13,0x13,0x13,0x0f,0x10,0x10,0x10,0x10,0x10,0x12,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x10,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x12, +0x0a,0x10,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x14,0x14,0x14,0x10,0x10,0x10,0x0d,0x0d,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x16,0x14,0x10,0x10,0x0d,0x11,0x0e,0x0f,0x14,0x14,0x08,0x10,0x10,0x18,0x15,0x0e,0x14,0x14,0x10,0x0f,0x0e,0x0f,0x14, +0x10,0x15,0x14,0x10,0x0e,0x14,0x08,0x14,0x0f,0x14,0x08,0x0f,0x0e,0x12,0x0d,0x10,0x0d,0x08,0x08,0x0a,0x1a,0x1a,0x14,0x10,0x10,0x13,0x10,0x10,0x10,0x0d,0x13,0x0e,0x18,0x0e,0x15,0x15,0x10,0x12,0x18,0x14,0x14,0x14,0x10,0x10,0x0e,0x10,0x14,0x10,0x14,0x12,0x1a,0x1b,0x12,0x17,0x10,0x10,0x1c,0x10,0x0d,0x13,0x13,0x14,0x1c,0x1c, +0x15,0x10,0x12,0x0d,0x12,0x12,0x12,0x16,0x11,0x11,0x16,0x13,0x13,0x0b,0x14,0x14,0x12,0x10,0x10,0x1d,0x18,0x0f,0x11,0x13,0x13,0x14,0x14,0x17,0x16,0x0b,0x1e,0x13,0x12,0x12,0x15,0x15,0x10,0x10,0x09,0x18,0x16,0x16,0x0f,0x16,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x18,0x17,0x09,0x07,0x07,0x0e,0x0c,0x0c,0x07,0x07,0x07, +0x0c,0x16,0x0f,0x0a,0x13,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x0e,0x11,0x0e,0x07,0x07,0x0c,0x11,0x0b,0x15,0x15,0x15,0x1d,0x18,0x1d,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x18,0x1b,0x0b,0x0b,0x10,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x10,0x10,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1d,0x1d,0x10,0x10,0x1d,0x1d,0x10,0x10,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x20,0x18,0x1b,0x10,0x13,0x13,0x15,0x0b,0x15,0x18,0x10,0x10,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1d,0x0b,0x18,0x10,0x10,0x08,0x10,0x10,0x10,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x25,0x1b,0x25,0x1b,0x25,0x1b,0x2b,0x20,0x2b,0x20,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20,0x20,0x18,0x10,0x10,0x18,0x10,0x10,0x1d,0x10,0x23,0x20,0x1d,0x10,0x1b,0x10,0x1b,0x10,0x1b,0x10,0x1d, +0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x1d,0x10,0x15,0x15,0x15,0x15,0x15,0x0b,0x15,0x15,0x0b,0x0b,0x15,0x0b,0x15,0x0b,0x15,0x10,0x13,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x0b,0x0b,0x10,0x0b,0x0b,0x0b,0x0b,0x00,0x25,0x1b,0x2b,0x20,0x1d,0x10,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b,0x1d,0x0b, +0x13,0x13,0x10,0x10,0x0d,0x25,0x1b,0x20,0x20,0x1d,0x1d,0x1d,0x13,0x13,0x13,0x13,0x15,0x0b,0x15,0x0b,0x15,0x0b,0x25,0x1b,0x13,0x15,0x13,0x13,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x0d,0x0d,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x18,0x1b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1d,0x0b, +0x1d,0x0b,0x13,0x15,0x13,0x13,0x25,0x25,0x1b,0x1b,0x25,0x25,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0d,0x0d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x13,0x1b,0x15, +0x15,0x15,0x08,0x08,0x10,0x0d,0x13,0x14,0x12,0x11,0x12,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x12,0x11,0x13,0x14,0x14,0x15,0x13,0x12,0x15,0x10,0x15,0x18,0x14,0x18,0x1b,0x14,0x18,0x16,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x11,0x13,0x13,0x15,0x12,0x15,0x12,0x13, +0x13,0x10,0x10,0x18,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x18,0x19,0x18,0x18,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x1c,0x1b,0x12,0x19,0x1b,0x18,0x13,0x1b,0x18,0x16,0x16,0x13,0x15,0x18,0x19,0x16,0x14,0x17,0x13,0x11,0x1e,0x1d,0x1d,0x1a,0x1e,0x1e,0x16,0x1e,0x1e,0x17,0x19,0x19,0x18,0x17,0x17,0x15,0x1c,0x18,0x1a,0x17,0x17,0x13,0x18, +0x16,0x16,0x1b,0x18,0x17,0x1d,0x11,0x10,0x12,0x11,0x14,0x14,0x16,0x17,0x13,0x12,0x12,0x11,0x12,0x11,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x10,0x11,0x13,0x14,0x13,0x13,0x0f,0x12,0x12,0x13,0x13,0x18,0x1b,0x15,0x15,0x14,0x19,0x14,0x16,0x10,0x0f,0x13,0x12,0x0f,0x10,0x12,0x12,0x0f,0x0f,0x14,0x0f,0x11,0x10,0x12,0x19,0x12,0x1a, +0x11,0x12,0x12,0x18,0x0a,0x19,0x16,0x17,0x15,0x12,0x18,0x13,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x0e,0x0e,0x0f,0x0e,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x14,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x1d,0x1d,0x1d,0x1d,0x10, +0x18,0x17,0x10,0x0d,0x10,0x11,0x12,0x10,0x1b,0x1a,0x1c,0x0e,0x20,0x10,0x1b,0x1b,0x1b,0x1a,0x12,0x10,0x10,0x19,0x13,0x19,0x16,0x11,0x0f,0x0d,0x21,0x0d,0x11,0x10,0x10,0x10,0x10,0x10,0x2c,0x1b,0x1b,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x0f,0x13,0x13,0x11,0x0c,0x0c,0x07,0x07,0x07,0x0c,0x07,0x0d,0x1c,0x07,0x1d,0x1d,0x1d, +0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x15,0x25,0x25,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x11,0x0e,0x0b,0x0b,0x16,0x12,0x17,0x0e,0x24,0x1d, +0x13,0x12,0x1d,0x19,0x1b,0x18,0x21,0x1a,0x1e,0x19,0x15,0x0f,0x17,0x13,0x1e,0x17,0x18,0x13,0x18,0x13,0x1c,0x15,0x1c,0x15,0x23,0x1b,0x18,0x13,0x18,0x13,0x27,0x1c,0x19,0x00,0x20,0x20,0x20,0x0f,0x00,0x00,0x13,0x10,0x16,0x12,0x11,0x0e,0x22,0x1d,0x1e,0x1c,0x17,0x13,0x16,0x13,0x11,0x0d,0x18,0x13,0x11,0x0d,0x1a,0x15,0x15,0x12, +0x1f,0x1a,0x11,0x12,0x17,0x17,0x1a,0x0e,0x06,0x0f,0x16,0x0e,0x20,0x20,0x08,0x00,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x0f,0x16,0x17,0x09,0x07,0x09,0x07,0x17,0x12,0x18,0x14,0x12,0x0f,0x11,0x0f,0x13,0x12,0x0d,0x0d,0x24,0x1a,0x25,0x1c,0x20,0x1b,0x1d,0x15,0x1d,0x15,0x1d, +0x15,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x11,0x0a,0x0f,0x08,0x18,0x13,0x1b,0x16,0x2b,0x20,0x12,0x13,0x16,0x17,0x1a,0x1c,0x18,0x13,0x1f,0x19,0x11,0x0d,0x12,0x10,0x14,0x0f,0x1e,0x17,0x14,0x11,0x12,0x13,0x12,0x13,0x0f,0x0d,0x0f,0x0c,0x0f,0x0c,0x11,0x11,0x0a,0x16,0x0a,0x1f,0x15,0x0b,0x13,0x14,0x0f,0x18,0x12,0x0c,0x0b, +0x13,0x13,0x12,0x0f,0x08,0x18,0x13,0x0c,0x0b,0x14,0x0f,0x17,0x0c,0x19,0x13,0x14,0x0f,0x16,0x13,0x13,0x10,0x18,0x12,0x13,0x0b,0x11,0x0e,0x18,0x0e,0x11,0x1c,0x10,0x12,0x1d,0x09,0x25,0x1d,0x1d,0x26,0x1c,0x1d,0x1d,0x1c,0x1c,0x1e,0x11,0x0f,0x14,0x16,0x1d,0x16,0x1e,0x08,0x0f,0x13,0x1c,0x21,0x16,0x21,0x14,0x14,0x19,0x16,0x24, +0x1e,0x11,0x1d,0x0b,0x1d,0x0b,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x20,0x10,0x10,0x20,0x18,0x10,0x10,0x18,0x15,0x0b,0x0b,0x15,0x13,0x13,0x13,0x13,0x18,0x0b,0x0b,0x1b,0x18,0x0b,0x0b,0x1b,0x0d,0x0d,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x10,0x0d,0x12,0x11,0x18,0x13,0x13,0x1c,0x15,0x18,0x18,0x1b,0x1a,0x13,0x10,0x20,0x1a,0x21,0x1b,0x16,0x13,0x0a,0x0a,0x13,0x15,0x0d,0x13,0x11,0x13,0x0f,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x11,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0e,0x30,0x40,0x0b,0x0d,0x04,0x09,0x0c,0x0e,0x0a, +0x10,0x11,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x0f,0x0f,0x2b,0x11,0x18,0x1d,0x1d,0x15,0x0f,0x12,0x17,0x18,0x10,0x0a,0x15,0x11,0x16,0x12,0x15,0x11,0x11,0x18,0x13,0x13,0x11,0x18,0x14,0x1b,0x0f,0x11,0x14,0x0a,0x13,0x0b,0x0b,0x08,0x1c,0x13,0x12,0x11,0x11,0x13,0x1e,0x1e,0x1e,0x20,0x20,0x12,0x10, +0x09,0x10,0x0f,0x13,0x0f,0x15,0x08,0x12,0x13,0x1c,0x1c,0x14,0x11,0x12,0x11,0x11,0x0f,0x11,0x0f,0x0f,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x00,0x09,0x09,0x09,0x08,0x08,0x36,0x20,0x1c,0x22,0x09,0x09,0x0a,0x0d,0x08,0x09,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x09,0x09,0x09,0x00,0x1d,0x0b,0x0b,0x1d,0x08,0x10,0x10,0x2b,0x20,0x20,0x2b,0x1d,0x10,0x10,0x1d,0x10,0x10,0x0d,0x0d,0x00,0x00,0x0b,0x18,0x13,0x17,0x12,0x28,0x21,0x16,0x12,0x16,0x12,0x2b,0x20,0x18,0x13,0x0c,0x0a,0x14,0x00,0x16,0x11,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x06,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x07,0x11,0x0e,0x13,0x12,0x12,0x1f,0x1a,0x1a,0x19,0x1a,0x1e,0x14,0x16,0x13,0x0d,0x1e,0x24,0x0e,0x25,0x10,0x1b,0x1d,0x1d,0x1d,0x0d,0x18,0x20,0x18,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1b,0x10,0x10,0x1d,0x0b,0x0b,0x1d,0x0b,0x0b,0x1d,0x10,0x10,0x00,0x0d, +0x1b,0x0b,0x0b,0x20,0x10,0x10,0x18,0x10,0x10,0x15,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x30,0x30,0x1c,0x00,0x00,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x14,0x15,0x15,0x1c,0x15,0x14,0x1a,0x1f,0x15,0x14,0x22,0x14,0x14,0x1e,0x14, +0x16,0x19,0x14,0x19,0x1b,0x1d,0x14,0x19,0x15,0x16,0x14,0x16,0x14,0x15,0x16,0x14,0x19,0x13,0x15,0x19,0x14,0x14,0x12,0x19,0x15,0x15,0x15,0x16,0x0e,0x11,0x15,0x19,0x19,0x11,0x00,0x00,0x21,0x42,0x15,0x00,0x03,0x09,0x09,0x0d,0x14,0x12,0x1b,0x1a,0x08,0x0a,0x0a,0x0e,0x17,0x07,0x0d,0x07,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x07,0x07,0x17,0x17,0x17,0x0f,0x20,0x15,0x13,0x14,0x17,0x11,0x10,0x17,0x17,0x09,0x0c,0x13,0x10,0x1e,0x19,0x19,0x12,0x19,0x14,0x12,0x11,0x17,0x15,0x1f,0x13,0x12,0x13,0x0a,0x0d,0x0a,0x17,0x0e,0x09,0x11,0x13,0x0f,0x13,0x11,0x0a,0x13,0x13,0x08,0x08,0x10,0x08,0x1c,0x13,0x13,0x13,0x13,0x0b,0x0e,0x0b,0x13,0x10, +0x18,0x0f,0x10,0x0f,0x0a,0x08,0x0a,0x17,0x15,0x15,0x14,0x11,0x19,0x19,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x11,0x11,0x11,0x11,0x08,0x08,0x08,0x08,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x12,0x12,0x0f,0x0d,0x0f,0x12,0x0d,0x1d,0x1d,0x1a,0x09,0x0e,0x17,0x1c,0x19,0x1b,0x17,0x17,0x17,0x12,0x13,0x12, +0x14,0x19,0x12,0x0d,0x0e,0x19,0x1b,0x13,0x0f,0x09,0x09,0x17,0x15,0x12,0x17,0x15,0x11,0x11,0x18,0x15,0x15,0x19,0x1f,0x1f,0x11,0x21,0x0c,0x0c,0x08,0x08,0x17,0x13,0x10,0x12,0x06,0x12,0x0a,0x0a,0x12,0x12,0x0c,0x07,0x08,0x0c,0x28,0x15,0x11,0x15,0x11,0x11,0x09,0x09,0x09,0x09,0x19,0x19,0x19,0x17,0x17,0x17,0x08,0x0c,0x0b,0x0a, +0x0a,0x07,0x09,0x07,0x0b,0x06,0x0c,0x10,0x09,0x12,0x0e,0x13,0x0f,0x08,0x17,0x12,0x12,0x10,0x12,0x13,0x17,0x17,0x0c,0x0c,0x0c,0x1f,0x1e,0x1f,0x10,0x17,0x13,0x09,0x12,0x0e,0x14,0x0f,0x14,0x0f,0x13,0x0e,0x07,0x15,0x11,0x15,0x11,0x17,0x16,0x17,0x11,0x11,0x11,0x11,0x10,0x08,0x10,0x0a,0x10,0x0a,0x19,0x13,0x19,0x13,0x19,0x13, +0x14,0x0b,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x11,0x0f,0x17,0x13,0x17,0x13,0x13,0x0f,0x13,0x0f,0x10,0x19,0x19,0x14,0x13,0x0e,0x13,0x10,0x17,0x0e,0x10,0x0d,0x25,0x15,0x10,0x14,0x08,0x0c,0x1b,0x0b,0x14,0x0c,0x0c,0x14,0x0c,0x15,0x11,0x14,0x0f,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17, +0x13,0x09,0x08,0x09,0x08,0x09,0x08,0x09,0x08,0x0c,0x08,0x13,0x10,0x10,0x10,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0b,0x12,0x0e,0x11,0x0b,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x1f,0x18,0x12,0x10,0x08,0x15,0x11,0x1c,0x1b,0x19,0x13,0x07,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x12,0x10,0x08,0x0e,0x12,0x14,0x1e,0x1e, +0x1f,0x1d,0x0d,0x0d,0x07,0x09,0x09,0x15,0x13,0x1a,0x0c,0x1a,0x16,0x1b,0x09,0x15,0x13,0x11,0x13,0x17,0x09,0x13,0x15,0x1e,0x19,0x11,0x19,0x18,0x12,0x11,0x11,0x12,0x13,0x1a,0x19,0x09,0x12,0x14,0x0e,0x13,0x09,0x12,0x12,0x11,0x0f,0x13,0x13,0x09,0x11,0x10,0x13,0x11,0x0f,0x13,0x13,0x0f,0x12,0x12,0x19,0x1b,0x09,0x12,0x13,0x12, +0x1b,0x11,0x17,0x10,0x14,0x12,0x09,0x20,0x20,0x18,0x13,0x13,0x17,0x15,0x13,0x13,0x10,0x17,0x11,0x1d,0x12,0x19,0x19,0x13,0x16,0x1e,0x17,0x19,0x18,0x12,0x14,0x11,0x13,0x18,0x13,0x19,0x16,0x1f,0x20,0x17,0x1a,0x13,0x14,0x22,0x14,0x11,0x13,0x11,0x0d,0x12,0x11,0x19,0x0f,0x13,0x13,0x10,0x11,0x17,0x13,0x13,0x13,0x13,0x0f,0x0e, +0x10,0x17,0x0f,0x14,0x13,0x1a,0x1b,0x14,0x17,0x11,0x0f,0x1b,0x11,0x11,0x13,0x0d,0x0f,0x0e,0x08,0x1a,0x1b,0x13,0x10,0x10,0x13,0x0f,0x0d,0x21,0x25,0x15,0x0c,0x0c,0x0c,0x0c,0x08,0x12,0x0e,0x12,0x19,0x14,0x17,0x13,0x0a,0x0b,0x09,0x09,0x10,0x10,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x10,0x0a,0x0a,0x0a,0x10,0x10,0x15,0x11,0x15, +0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x14,0x19,0x14,0x19,0x14,0x19,0x14,0x19, +0x14,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x12,0x10,0x12,0x10,0x12,0x10,0x11,0x0b,0x11,0x11,0x19,0x13,0x09,0x0c,0x08,0x08,0x11,0x0e,0x1e,0x1a,0x14,0x12,0x13,0x10,0x19,0x14,0x12,0x10,0x12,0x10,0x15,0x10,0x16,0x13,0x16,0x13,0x18,0x11,0x19,0x13,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x10,0x10,0x10, +0x10,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x11,0x11,0x15,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x14,0x0f,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0a,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x09,0x08,0x09,0x08,0x13,0x10,0x13,0x10,0x13,0x10,0x10, +0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x1e,0x1c,0x1e,0x1c,0x1e,0x1c,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x13,0x12,0x13,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x14,0x0b,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x12,0x0e,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x11,0x0b,0x17,0x13,0x17,0x13,0x17, +0x13,0x17,0x13,0x17,0x13,0x15,0x10,0x15,0x10,0x1f,0x18,0x1f,0x18,0x13,0x0f,0x13,0x0f,0x12,0x10,0x13,0x0f,0x13,0x0f,0x13,0x0f,0x13,0x0b,0x18,0x10,0x11,0x08,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x10,0x10,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20, +0x20,0x20,0x20,0x14,0x14,0x0e,0x0e,0x13,0x13,0x09,0x09,0x13,0x13,0x12,0x12,0x1b,0x1b,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x20,0x20,0x20,0x20,0x20, +0x20,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1a,0x1a,0x17,0x13,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0c,0x0c,0x13,0x13,0x13,0x12,0x12,0x12,0x12,0x13,0x13,0x12,0x12,0x12,0x12,0x16,0x16,0x15,0x13,0x13,0x13,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1c,0x1b,0x19,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x14,0x13,0x13,0x13,0x13,0x14,0x14,0x0f,0x17,0x18,0x13,0x13,0x14,0x11,0x12,0x10,0x17,0x15,0x1d,0x0a,0x09,0x13,0x10,0x08,0x10,0x1d,0x19,0x13,0x19,0x20,0x1a,0x14,0x13,0x13,0x12,0x0e,0x11,0x0a,0x0b,0x11,0x0b, +0x11,0x19,0x18,0x13,0x11,0x13,0x0f,0x14,0x14,0x0f,0x0e,0x12,0x12,0x0d,0x0d,0x12,0x08,0x0d,0x0f,0x09,0x29,0x26,0x22,0x1c,0x18,0x11,0x23,0x20,0x1b,0x15,0x11,0x09,0x08,0x19,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x17,0x13,0x11,0x15,0x11,0x15,0x11,0x1c,0x1b,0x17,0x13,0x17,0x13,0x13,0x10,0x19,0x13,0x19,0x13,0x14,0x0f, +0x08,0x29,0x26,0x22,0x17,0x13,0x21,0x17,0x19,0x13,0x15,0x11,0x15,0x11,0x11,0x11,0x11,0x11,0x09,0x08,0x09,0x08,0x19,0x13,0x19,0x13,0x13,0x0b,0x14,0x0b,0x17,0x13,0x17,0x13,0x11,0x0e,0x17,0x13,0x18,0x13,0x13,0x13,0x0f,0x15,0x11,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x12,0x10,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13, +0x0f,0x0f,0x13,0x13,0x11,0x14,0x0e,0x0e,0x11,0x12,0x09,0x13,0x13,0x11,0x10,0x0f,0x13,0x13,0x13,0x09,0x09,0x0b,0x09,0x0c,0x08,0x14,0x1c,0x1c,0x1c,0x12,0x12,0x13,0x13,0x17,0x18,0x15,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x0d,0x08,0x09,0x0a,0x09,0x0b,0x0b,0x14,0x14,0x12,0x10,0x18,0x10,0x0e,0x0f,0x11,0x0f,0x0f,0x0c, +0x0c,0x0c,0x0f,0x14,0x10,0x12,0x11,0x13,0x08,0x10,0x0d,0x13,0x0c,0x0c,0x1e,0x1f,0x20,0x14,0x10,0x18,0x1a,0x13,0x13,0x10,0x10,0x12,0x14,0x13,0x16,0x13,0x15,0x1a,0x13,0x17,0x13,0x13,0x0f,0x10,0x0f,0x14,0x11,0x14,0x10,0x1d,0x1c,0x14,0x11,0x15,0x12,0x14,0x0f,0x14,0x10,0x16,0x13,0x13,0x0d,0x13,0x13,0x0f,0x08,0x19,0x0f,0x0f, +0x1c,0x16,0x15,0x13,0x1e,0x18,0x16,0x10,0x1d,0x17,0x18,0x13,0x1f,0x19,0x12,0x0f,0x1a,0x19,0x19,0x13,0x18,0x13,0x18,0x13,0x2b,0x25,0x1b,0x15,0x25,0x1e,0x1c,0x16,0x13,0x0e,0x11,0x0d,0x0e,0x00,0x00,0x21,0x1f,0x13,0x11,0x13,0x13,0x13,0x11,0x12,0x0f,0x13,0x10,0x17,0x13,0x1c,0x16,0x21,0x1c,0x18,0x12,0x14,0x0f,0x11,0x0e,0x1d, +0x17,0x17,0x13,0x1c,0x15,0x1c,0x15,0x09,0x1d,0x19,0x13,0x11,0x17,0x13,0x16,0x13,0x15,0x11,0x15,0x11,0x1c,0x1b,0x11,0x11,0x18,0x11,0x18,0x11,0x1d,0x19,0x12,0x0f,0x11,0x0f,0x19,0x13,0x19,0x13,0x19,0x13,0x19,0x13,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x16,0x13,0x1a,0x17,0x13,0x13,0x1c,0x1c,0x1b,0x18,0x12,0x10,0x1e,0x1a, +0x21,0x1c,0x18,0x12,0x16,0x14,0x13,0x13,0x13,0x11,0x13,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x13,0x0b,0x0b,0x05,0x07,0x07,0x07,0x09,0x0d,0x09,0x08,0x0c,0x07,0x07,0x07,0x0b,0x0b,0x07,0x07,0x13,0x13,0x13,0x13,0x0b,0x09,0x09,0x0b,0x0a,0x09,0x09,0x09,0x09,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0a,0x0b,0x0b,0x0a,0x05,0x08,0x09,0x07,0x0d,0x0d,0x0d,0x0d,0x0d,0x0b,0x0b,0x0b,0x0e,0x0b,0x08,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d, +0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x15,0x0a,0x15,0x0b,0x14,0x14,0x0b,0x0b,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x13,0x0f,0x16,0x1b,0x10,0x0f,0x12,0x12,0x0e,0x0e,0x08,0x0a,0x10,0x0d,0x17,0x13,0x13,0x10,0x14,0x14,0x14,0x1f,0x12,0x14,0x14,0x0f,0x0f,0x0f,0x0e,0x12,0x13,0x18,0x13,0x10,0x18,0x0f,0x0e,0x0e,0x11,0x0d,0x0f,0x13,0x0f,0x14,0x13,0x0c,0x10,0x0b,0x0c,0x0e,0x0a,0x0a,0x0e,0x0e,0x06,0x08,0x0c, +0x09,0x11,0x0e,0x0e,0x0e,0x0d,0x0b,0x0b,0x0a,0x0e,0x11,0x0a,0x0a,0x0b,0x10,0x0b,0x0b,0x0a,0x0a,0x09,0x09,0x0b,0x05,0x0a,0x10,0x0b,0x0b,0x09,0x0b,0x0b,0x0b,0x07,0x0b,0x0b,0x10,0x09,0x0b,0x0b,0x0a,0x0b,0x0d,0x0a,0x05,0x07,0x0b,0x09,0x0b,0x0a,0x0b,0x0d,0x0a,0x13,0x05,0x0b,0x12,0x1d,0x15,0x12,0x12,0x1c,0x15,0x1c,0x19,0x11, +0x13,0x11,0x0f,0x25,0x0f,0x13,0x1d,0x1f,0x1f,0x15,0x15,0x14,0x0f,0x10,0x11,0x0e,0x0f,0x11,0x07,0x00,0x00,0x00,0x00,0x13,0x14,0x14,0x14,0x10,0x0d,0x13,0x13,0x0a,0x1c,0x13,0x13,0x0b,0x0b,0x0f,0x0b,0x0f,0x13,0x0f,0x13,0x1e,0x15,0x0b,0x09,0x13,0x12,0x14,0x13,0x13,0x0a,0x13,0x10,0x08,0x1c,0x13,0x13,0x0b,0x0e,0x0e,0x10,0x0f, +0x0f,0x11,0x13,0x13,0x11,0x0e,0x0f,0x18,0x08,0x0f,0x08,0x13,0x0f,0x0b,0x09,0x09,0x0b,0x09,0x06,0x05,0x0b,0x0b,0x05,0x06,0x06,0x06,0x05,0x06,0x05,0x07,0x10,0x10,0x0b,0x0b,0x0c,0x0b,0x0c,0x08,0x05,0x07,0x0b,0x0b,0x0b,0x0b,0x09,0x09,0x09,0x0a,0x09,0x0b,0x00,0x00,0x00,0x00,0x07,0x0a,0x0a,0x0b,0x09,0x0a,0x12,0x12,0x12,0x12, +0x0b,0x00,0x00,0x00,0x00,0x0f,0x0a,0x09,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x09,0x09,0x09,0x12,0x12,0x12,0x12,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x06,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0a,0x1a,0x15,0x17,0x13,0x19,0x15,0x1f,0x19,0x12,0x0c,0x11,0x17,0x12,0x1b,0x17,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x1c,0x1c,0x21,0x0e,0x08,0x11, +0x13,0x0e,0x11,0x11,0x13,0x13,0x11,0x21,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x15,0x11,0x11,0x11,0x0b,0x13,0x0b,0x19,0x16,0x11,0x0b,0x1c,0x11,0x1c,0x08,0x0b,0x13,0x13,0x15,0x15,0x15,0x13,0x13,0x13,0x1c,0x08,0x13,0x08,0x11,0x0e,0x08,0x08,0x11,0x08,0x19,0x08,0x1e,0x11,0x1e,0x1e,0x13,0x13,0x13,0x11,0x11,0x0e,0x0e,0x27, +0x27,0x2c,0x2c,0x1c,0x1c,0x11,0x11,0x06,0x21,0x19,0x1c,0x16,0x13,0x16,0x11,0x11,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x08,0x15,0x00,0x15,0x15,0x15,0x0b,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x0e,0x1e,0x11,0x1e,0x11,0x19,0x1c,0x0b,0x11,0x11,0x0e,0x08,0x11,0x13,0x11,0x13,0x11,0x13,0x13,0x11,0x16, +0x15,0x1e,0x0b,0x11,0x0e,0x16,0x11,0x0b,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x08,0x13,0x0d,0x21,0x11,0x11,0x15,0x15,0x21,0x11,0x00,0x00,0x00,0x15,0x00,0x15,0x15,0x15,0x15,0x19,0x15,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e,0x11,0x11,0x19,0x1c,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x11,0x0e,0x0e,0x0e,0x27,0x1c,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x11,0x13,0x13,0x13,0x21,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x21,0x11,0x11,0x19,0x19,0x24,0x21,0x1e, +0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x16,0x0b,0x12,0x16,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1c,0x1e,0x19,0x1c,0x0b,0x11,0x19,0x1c,0x19,0x1c,0x00,0x00,0x00,0x00,0x00,0x25,0x24,0x00,0x00,0x00,0x00, +0x00,0x00,0x08,0x0e,0x00,0x00,0x14,0x00,0x00,0x00,0x27,0x1c,0x2c,0x21,0x11,0x13,0x13,0x13,0x0e,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x1e,0x1e,0x0c,0x13,0x13,0x14,0x28,0x1b,0x12,0x32,0x24,0x0b,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x11,0x0e,0x0e,0x19,0x16, +0x16,0x11,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x29,0x32,0x00,0x00,0x00,0x00,0x00,0x13,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x16,0x13,0x11,0x11,0x0e,0x27,0x1c,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x21,0x11,0x11, +0x21,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x1e,0x11,0x11,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x0e,0x0e,0x27,0x1c,0x15,0x13,0x13,0x00,0x11,0x11,0x11,0x0c,0x13,0x17,0x15,0x11,0x11,0x0c,0x08,0x19,0x13,0x14,0x0b,0x12,0x10,0x10,0x0f,0x10,0x08,0x11,0x0e,0x14,0x10,0x13,0x0f,0x12,0x0e,0x16, +0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x0f,0x10,0x10,0x09,0x11,0x12,0x14,0x11,0x0b,0x19,0x13,0x15,0x12,0x14,0x10,0x13,0x11,0x0d,0x17,0x0c,0x0e,0x0e,0x10,0x14,0x14,0x11,0x21,0x11,0x21,0x0b,0x08,0x06,0x12,0x07,0x04,0x00,0x05,0x07,0x00,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11, +0x11,0x1f,0x0e,0x19,0x13,0x1f,0x18,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1e,0x1e,0x1c,0x10,0x1c,0x10,0x1c,0x15,0x17,0x17,0x17,0x19,0x1c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x17,0x18,0x13,0x23,0x1b,0x10,0x10,0x09,0x09,0x09,0x0c,0x07,0x13,0x08,0x08,0x1c,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x07,0x00,0x00,0x15,0x13,0x0e,0x10,0x16,0x09,0x0b,0x16,0x16,0x09,0x12,0x12,0x12,0x17,0x16,0x09,0x0d,0x16,0x14,0x14,0x15,0x13,0x13,0x16,0x12,0x1a,0x18,0x11,0x11,0x11,0x08,0x0c,0x12,0x12,0x12,0x12,0x12,0x14,0x15,0x10,0x16,0x12,0x12,0x17,0x12,0x18,0x12,0x1a,0x1a,0x1a, +0x1a,0x15,0x15,0x15,0x13,0x0e,0x10,0x16,0x0a,0x0c,0x16,0x0a,0x12,0x12,0x12,0x16,0x0d,0x16,0x14,0x15,0x13,0x16,0x12,0x1a,0x18,0x09,0x13,0x12,0x15,0x16,0x28,0x00,0x15,0x12,0x16,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0d,0x09,0x00,0x19,0x15,0x16,0x17,0x12,0x16,0x19,0x19,0x10,0x15,0x19,0x18,0x16,0x19,0x1b,0x1a,0x16,0x12,0x12,0x19,0x17,0x13,0x17,0x16,0x16,0x16,0x17,0x18,0x13,0x15,0x16,0x16,0x1a,0x15,0x14,0x15,0x16,0x1b,0x10,0x13,0x13,0x1d,0x12,0x12,0x19,0x1d,0x14,0x12,0x23,0x13,0x13,0x19,0x12,0x12,0x19,0x13, +0x19,0x1b,0x1d,0x12,0x19,0x12,0x16,0x12,0x14,0x13,0x15,0x12,0x14,0x19,0x12,0x14,0x16,0x12,0x12,0x14,0x20,0x12,0x12,0x13,0x13,0x0e,0x0b,0x12,0x12,0x12,0x12,0x12,0x1d,0x12,0x1d,0x10,0x12,0x1d,0x16,0x12,0x1d,0x19,0x19,0x1d,0x13,0x12,0x1d,0x1d,0x12,0x12,0x12,0x12,0x12,0x12,0x1d,0x1d,0x13,0x12,0x13,0x1d,0x14,0x12,0x12,0x12, +0x1d,0x1a,0x17,0x17,0x17,0x17,0x17,0x15,0x17,0x1a,0x17,0x15,0x12,0x1a,0x16,0x17,0x13,0x16,0x17,0x19,0x18,0x13,0x17,0x16,0x18,0x16,0x1a,0x17,0x18,0x18,0x17,0x15,0x17,0x16,0x18,0x1a,0x16,0x19,0x18,0x03,0x04,0x05,0x06,0x05,0x09,0x0c,0x1c,0x13,0x14,0x14,0x13,0x14,0x13,0x13,0x15,0x14,0x13,0x0a,0x1c,0x13,0x13,0x13,0x12,0x14, +0x11,0x13,0x09,0x13,0x11,0x13,0x0e,0x1c,0x12,0x13,0x13,0x14,0x1b,0x13,0x13,0x0d,0x1b,0x13,0x13,0x17,0x16,0x07,0x09,0x25,0x25,0x25,0x25,0x2f,0x12,0x12,0x08,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0d,0x12,0x12,0x13,0x12,0x12,0x11,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x10,0x11,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0e,0x19,0x15,0x14,0x10,0x14,0x10,0x0e,0x0f,0x14,0x11,0x1a,0x11,0x0f,0x10,0x17,0x1a,0x0e,0x15,0x10,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x0e,0x0e,0x08,0x08,0x08, +0x08,0x15,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0f,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x11,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x13,0x0a,0x10,0x0e,0x0e,0x0e,0x0e,0x15,0x15,0x15,0x16,0x14,0x14,0x14,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x0e,0x0f,0x0f,0x0f,0x0f,0x14,0x14,0x14,0x14, +0x14,0x14,0x1a,0x1a,0x1a,0x1a,0x0f,0x0f,0x0f,0x10,0x10,0x10,0x11,0x17,0x15,0x11,0x10,0x0d,0x12,0x0e,0x10,0x14,0x14,0x08,0x10,0x11,0x19,0x15,0x0f,0x14,0x14,0x10,0x0f,0x0f,0x0f,0x15,0x11,0x16,0x15,0x11,0x0e,0x14,0x08,0x14,0x0f,0x15,0x08,0x0f,0x0e,0x13,0x0d,0x11,0x0e,0x08,0x08,0x0a,0x1b,0x1b,0x14,0x10,0x10,0x14,0x11,0x10, +0x10,0x0d,0x13,0x0e,0x18,0x0f,0x15,0x15,0x10,0x13,0x19,0x14,0x14,0x14,0x10,0x11,0x0f,0x10,0x15,0x11,0x15,0x12,0x1b,0x1b,0x13,0x17,0x10,0x11,0x1c,0x10,0x0d,0x13,0x13,0x15,0x1d,0x1d,0x16,0x11,0x13,0x0e,0x13,0x12,0x12,0x17,0x11,0x11,0x17,0x13,0x13,0x0c,0x14,0x14,0x13,0x10,0x10,0x1e,0x19,0x10,0x12,0x14,0x14,0x15,0x15,0x17, +0x17,0x0c,0x1f,0x13,0x12,0x13,0x15,0x15,0x11,0x11,0x09,0x19,0x17,0x17,0x10,0x17,0x07,0x07,0x0e,0x0e,0x07,0x07,0x14,0x0d,0x09,0x19,0x17,0x09,0x07,0x07,0x0f,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x16,0x10,0x0a,0x14,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x0f,0x12,0x0e,0x07,0x08,0x0d,0x11,0x0b,0x16,0x16,0x16,0x1e,0x19,0x1e,0x08, +0x00,0x00,0x00,0x00,0x00,0x08,0x19,0x1c,0x0b,0x0b,0x11,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x11,0x11,0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x11,0x11,0x1e,0x1e,0x11,0x11,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x21,0x19,0x1c,0x11,0x13,0x13,0x16, +0x0b,0x16,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x1e,0x0b,0x19,0x11,0x11,0x08,0x11,0x11,0x11,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x27,0x1c, +0x27,0x1c,0x27,0x1c,0x2c,0x21,0x2c,0x21,0x1c,0x1c,0x1c,0x21,0x21,0x21,0x21,0x21,0x21,0x19,0x11,0x11,0x19,0x11,0x11,0x1e,0x11,0x24,0x21,0x1e,0x11,0x1c,0x11,0x1c,0x11,0x1c,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x16,0x16,0x16,0x16,0x16,0x0b,0x16,0x16,0x0b,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x11,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x11,0x0b,0x0b,0x0b,0x0b,0x00,0x27,0x1c,0x2c,0x21,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x11,0x11,0x0e,0x27,0x1c,0x21,0x21,0x1e,0x1e,0x1e,0x13,0x13,0x13,0x13,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x27,0x1c,0x13,0x16,0x13,0x13, +0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x0e,0x0e,0x13,0x13,0x13,0x13,0x0b,0x0b,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x19,0x1c,0x0b,0x0b,0x13,0x13,0x13,0x13,0x1e,0x0b,0x1e,0x0b,0x13,0x16,0x13,0x13,0x27,0x27,0x1c,0x1c,0x27,0x27,0x1c,0x1c,0x1c,0x1c,0x11,0x11,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00, +0x08,0x08,0x0b,0x08,0x00,0x00,0x00,0x1c,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0e,0x0e, +0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x13,0x1c,0x16,0x16,0x16,0x08,0x08,0x11,0x0e,0x13,0x15,0x13,0x12,0x12,0x13,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x0f,0x12,0x11, +0x13,0x14,0x14,0x16,0x13,0x13,0x15,0x11,0x16,0x19,0x15,0x19,0x1b,0x15,0x19,0x17,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0f,0x12,0x14,0x14,0x16,0x13,0x15,0x13,0x14,0x14,0x11,0x11,0x19,0x16,0x17,0x16,0x16,0x14,0x13,0x13,0x18,0x19,0x19,0x19,0x1e,0x1e,0x17,0x1e,0x1e,0x18,0x1d,0x1c,0x12,0x19,0x1c,0x19,0x14, +0x1c,0x18,0x17,0x17,0x14,0x15,0x19,0x1a,0x17,0x14,0x17,0x13,0x12,0x1e,0x1e,0x1e,0x1b,0x1e,0x1e,0x17,0x1e,0x1e,0x17,0x19,0x1a,0x19,0x18,0x18,0x15,0x1d,0x19,0x1b,0x18,0x18,0x13,0x18,0x17,0x17,0x1c,0x19,0x18,0x1e,0x12,0x11,0x12,0x12,0x14,0x15,0x17,0x18,0x13,0x13,0x13,0x12,0x13,0x12,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x11, +0x11,0x13,0x14,0x14,0x14,0x0f,0x13,0x13,0x13,0x14,0x19,0x1c,0x16,0x16,0x15,0x19,0x15,0x17,0x11,0x10,0x13,0x13,0x10,0x10,0x12,0x12,0x10,0x0f,0x15,0x0f,0x12,0x10,0x12,0x1a,0x13,0x1b,0x12,0x13,0x13,0x19,0x0a,0x1a,0x17,0x18,0x16,0x13,0x19,0x14,0x1a,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x14,0x14,0x14,0x09,0x09,0x09,0x09,0x09, +0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0a,0x0a,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x15,0x09,0x09,0x09,0x0a,0x0a,0x09,0x09,0x09,0x0a,0x09,0x09,0x09,0x1e,0x1e,0x1e,0x1e,0x10,0x18,0x18,0x10,0x0d,0x10,0x11,0x12,0x10,0x1c,0x1b,0x1c,0x0f,0x21,0x10,0x1c,0x1c,0x1c,0x1b,0x13,0x10,0x10,0x1a,0x13,0x1a,0x16,0x12,0x0f,0x0d, +0x22,0x0e,0x12,0x10,0x10,0x10,0x10,0x10,0x2d,0x1c,0x1c,0x0e,0x08,0x0f,0x08,0x0f,0x08,0x08,0x08,0x10,0x13,0x13,0x12,0x0c,0x0c,0x08,0x08,0x08,0x0c,0x08,0x0e,0x1c,0x07,0x1e,0x1e,0x1e,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x27,0x27,0x16,0x27,0x27,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x0f,0x13,0x0f,0x12,0x0e,0x0c,0x0b,0x17,0x12,0x18,0x0e,0x25,0x1d,0x14,0x12,0x1e,0x1a,0x1c,0x19,0x22,0x1b,0x1f,0x1a,0x15,0x10,0x18,0x13,0x1f,0x18,0x19,0x14,0x19,0x14,0x1c,0x16,0x1d,0x16,0x24,0x1c,0x19,0x13, +0x19,0x13,0x28,0x1d,0x1a,0x00,0x21,0x21,0x21,0x10,0x00,0x00,0x13,0x11,0x17,0x12,0x12,0x0e,0x24,0x1e,0x1f,0x1c,0x18,0x13,0x17,0x13,0x11,0x0e,0x18,0x14,0x11,0x0e,0x1b,0x16,0x16,0x13,0x20,0x1b,0x12,0x13,0x18,0x18,0x1b,0x0f,0x07,0x0f,0x17,0x0e,0x21,0x21,0x08,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x0d, +0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x12,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1e,0x1e,0x1e,0x1e, +0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00, +0x00,0x00,0x00,0x00,0x00,0x0e,0x10,0x16,0x18,0x09,0x07,0x09,0x07,0x17,0x13,0x19,0x15,0x12,0x10,0x12,0x10,0x14,0x13,0x0e,0x0e,0x25,0x1b,0x26,0x1d,0x21,0x1c,0x1e,0x16,0x1e,0x16,0x1e,0x16,0x14,0x0f,0x13,0x10,0x13,0x10,0x13,0x10,0x12,0x0a,0x10,0x08,0x19,0x13,0x1c,0x16,0x2c,0x21,0x12,0x13,0x17,0x17,0x1b,0x1c,0x19,0x13,0x20, +0x1a,0x12,0x0d,0x12,0x10,0x15,0x10,0x1f,0x18,0x14,0x11,0x12,0x13,0x12,0x13,0x10,0x0d,0x10,0x0d,0x10,0x0c,0x11,0x11,0x0a,0x16,0x0b,0x20,0x16,0x0b,0x13,0x14,0x0f,0x19,0x12,0x0d,0x0b,0x13,0x13,0x13,0x10,0x08,0x19,0x14,0x0c,0x0b,0x15,0x0f,0x17,0x0d,0x1a,0x14,0x14,0x0f,0x17,0x13,0x13,0x10,0x19,0x13,0x14,0x0b,0x12,0x0e,0x19, +0x0e,0x12,0x1c,0x10,0x12,0x1e,0x09,0x26,0x1d,0x1e,0x27,0x1d,0x1e,0x1e,0x1d,0x1d,0x1e,0x11,0x10,0x14,0x17,0x1e,0x17,0x1f,0x08,0x0f,0x13,0x1c,0x22,0x17,0x22,0x14,0x14,0x1a,0x17,0x26,0x1e,0x11,0x1e,0x0b,0x1e,0x0b,0x13,0x13,0x13,0x13,0x1c,0x1c,0x1c,0x1c,0x21,0x11,0x11,0x21,0x19,0x11,0x11,0x19,0x16,0x0b,0x0b,0x16,0x13,0x13, +0x13,0x13,0x19,0x0b,0x0b,0x1c,0x19,0x0b,0x0b,0x1c,0x0e,0x0e,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x11,0x0d,0x13,0x11,0x19,0x13,0x13,0x1d,0x16,0x19,0x19,0x1b,0x1b,0x13,0x10,0x21,0x1b,0x22,0x1c,0x17, +0x13,0x0a,0x0a,0x13,0x15,0x0d,0x14,0x11,0x13,0x10,0x18,0x1a,0x0d,0x13,0x0e,0x07,0x0c,0x12,0x12,0x07,0x07,0x06,0x07,0x0c,0x0c,0x0c,0x0f,0x31,0x42,0x0b,0x0e,0x04,0x09,0x0d,0x0e,0x0a,0x10,0x11,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x10,0x10,0x10,0x10,0x10,0x2c,0x12,0x19,0x1e,0x1e,0x15,0x0f,0x13,0x18,0x18,0x10, +0x0a,0x16,0x11,0x16,0x12,0x16,0x12,0x12,0x19,0x14,0x13,0x11,0x19,0x14,0x1b,0x0f,0x11,0x15,0x0a,0x13,0x0b,0x0b,0x08,0x1d,0x13,0x13,0x11,0x11,0x13,0x1f,0x1f,0x1f,0x21,0x21,0x12,0x10,0x09,0x11,0x0f,0x14,0x0f,0x16,0x08,0x13,0x14,0x1c,0x1c,0x14,0x12,0x13,0x12,0x11,0x0f,0x11,0x0f,0x10,0x0a,0x0b,0x08,0x07,0x0c,0x13,0x15,0x0a, +0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x0a,0x0a,0x0a,0x08,0x08,0x38,0x21,0x1d,0x23,0x0a,0x0a,0x0b,0x0d,0x08,0x09,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x00,0x1e,0x0b,0x0b,0x1e,0x09,0x11,0x11,0x2c,0x21,0x21,0x2c,0x1e,0x11,0x11,0x1e,0x11,0x11,0x0e,0x0e,0x00,0x00,0x0c, +0x19,0x14,0x17,0x13,0x29,0x22,0x17,0x12,0x17,0x12,0x2c,0x21,0x19,0x13,0x0d,0x0a,0x14,0x00,0x17,0x12,0x0b,0x0a,0x05,0x10,0x0b,0x0b,0x08,0x07,0x0f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x07,0x11,0x0e,0x13,0x13,0x12,0x20,0x1b,0x1b,0x1a,0x1b,0x1f,0x15,0x17,0x14,0x0d,0x1f,0x25,0x0f,0x26,0x11,0x1c,0x1e,0x1e,0x1e,0x0e,0x19, +0x21,0x19,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x13,0x13,0x13,0x1c,0x11,0x11,0x1e,0x0b,0x0b,0x1e,0x0b,0x0b,0x1e,0x10,0x10,0x00,0x0e,0x1c,0x0b,0x0b,0x21,0x11,0x11,0x19,0x11,0x11,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x32,0x32,0x1d, +0x00,0x00,0x1d,0x1d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x16,0x14,0x15,0x15,0x1d,0x15,0x15,0x1a,0x20,0x15,0x15,0x23,0x15,0x15,0x1f,0x15,0x16,0x1a,0x15,0x19,0x1c,0x1e,0x15,0x19,0x15,0x17,0x15,0x17,0x15,0x16,0x17,0x15,0x1a,0x14,0x16,0x1a,0x14,0x15,0x13,0x1a,0x15,0x15,0x15,0x17, +0x0f,0x11,0x15,0x1a,0x1a,0x12,0x00,0x00,0x25,0x4a,0x18,0x00,0x04,0x0a,0x0b,0x0f,0x16,0x14,0x1e,0x1e,0x09,0x0b,0x0b,0x0f,0x19,0x08,0x0f,0x08,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x08,0x08,0x19,0x19,0x19,0x11,0x23,0x18,0x15,0x17,0x1a,0x13,0x12,0x19,0x1a,0x0a,0x0d,0x15,0x11,0x21,0x1c,0x1c,0x15,0x1c,0x16, +0x14,0x13,0x19,0x17,0x23,0x16,0x14,0x15,0x0b,0x0e,0x0b,0x19,0x0f,0x0a,0x13,0x16,0x11,0x16,0x13,0x0c,0x16,0x15,0x09,0x09,0x12,0x09,0x20,0x15,0x16,0x16,0x16,0x0d,0x10,0x0d,0x15,0x12,0x1b,0x11,0x12,0x11,0x0b,0x09,0x0b,0x19,0x18,0x18,0x17,0x13,0x1c,0x1c,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x11,0x13,0x13,0x13,0x13,0x09,0x09, +0x09,0x09,0x15,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x0e,0x0e,0x14,0x14,0x11,0x0f,0x11,0x14,0x0f,0x21,0x21,0x1d,0x0a,0x0f,0x19,0x20,0x1c,0x1e,0x19,0x19,0x19,0x14,0x15,0x14,0x17,0x1c,0x14,0x0f,0x10,0x1c,0x1f,0x16,0x11,0x0a,0x0b,0x19,0x18,0x14,0x19,0x18,0x13,0x13,0x1b,0x18,0x18,0x1c,0x22,0x22,0x13,0x25,0x0e,0x0e, +0x08,0x08,0x19,0x16,0x12,0x14,0x06,0x14,0x0c,0x0c,0x15,0x15,0x0e,0x08,0x08,0x0e,0x2d,0x18,0x13,0x18,0x13,0x13,0x0a,0x0a,0x0a,0x0a,0x1c,0x1c,0x1c,0x19,0x19,0x19,0x09,0x0e,0x0c,0x0b,0x0b,0x07,0x0a,0x08,0x0c,0x07,0x0e,0x11,0x0a,0x14,0x10,0x15,0x11,0x09,0x1a,0x15,0x14,0x12,0x15,0x16,0x19,0x19,0x0d,0x0e,0x0e,0x22,0x22,0x23, +0x12,0x19,0x16,0x0a,0x14,0x10,0x17,0x11,0x17,0x11,0x16,0x0f,0x08,0x18,0x13,0x18,0x13,0x1a,0x19,0x1a,0x13,0x13,0x13,0x13,0x11,0x09,0x11,0x0b,0x11,0x0c,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x16,0x0d,0x16,0x0d,0x14,0x10,0x13,0x0d,0x13,0x10,0x19,0x15,0x19,0x15,0x15,0x11,0x15,0x11,0x11,0x1c,0x1c,0x17,0x16,0x10,0x15,0x12,0x1a,0x0f, +0x12,0x0f,0x29,0x17,0x12,0x16,0x08,0x0e,0x1e,0x0c,0x16,0x0d,0x0d,0x16,0x0d,0x18,0x13,0x17,0x11,0x17,0x11,0x13,0x13,0x13,0x13,0x13,0x13,0x19,0x16,0x19,0x16,0x19,0x16,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0a,0x09,0x0d,0x09,0x15,0x12,0x12,0x11,0x09,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x16,0x0d,0x14,0x10, +0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x23,0x1b,0x14,0x12,0x09,0x18,0x13,0x20,0x1f,0x1c,0x16,0x08,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x14,0x12,0x08,0x0f,0x14,0x16,0x22,0x22,0x22,0x21,0x0e,0x0e,0x08,0x0a,0x0a,0x18,0x15,0x1d,0x0e,0x1e,0x19,0x1f,0x0a,0x18,0x15,0x13,0x15,0x1a,0x0a,0x15,0x17,0x21,0x1c,0x13,0x1c,0x1a, +0x15,0x13,0x13,0x14,0x16,0x1d,0x1c,0x0a,0x14,0x17,0x10,0x15,0x0a,0x14,0x14,0x13,0x10,0x15,0x16,0x0a,0x13,0x12,0x15,0x13,0x10,0x16,0x16,0x11,0x14,0x14,0x1c,0x1e,0x0a,0x14,0x16,0x14,0x1e,0x13,0x1a,0x11,0x17,0x14,0x0a,0x24,0x24,0x1b,0x15,0x15,0x1a,0x18,0x15,0x15,0x11,0x1a,0x13,0x20,0x14,0x1c,0x1c,0x15,0x19,0x21,0x1a,0x1c, +0x1a,0x15,0x17,0x13,0x15,0x1b,0x16,0x1b,0x18,0x23,0x24,0x1a,0x1d,0x15,0x17,0x26,0x16,0x13,0x15,0x14,0x0e,0x14,0x13,0x1c,0x11,0x16,0x16,0x12,0x14,0x1a,0x15,0x16,0x15,0x16,0x11,0x0f,0x12,0x19,0x11,0x16,0x15,0x1e,0x1f,0x16,0x1a,0x13,0x11,0x1e,0x13,0x13,0x15,0x0e,0x11,0x10,0x09,0x1d,0x1e,0x15,0x12,0x12,0x15,0x11,0x0e,0x25, +0x2a,0x17,0x0d,0x0e,0x0e,0x0e,0x09,0x14,0x10,0x15,0x1c,0x16,0x1a,0x16,0x0b,0x0c,0x0a,0x0a,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x12,0x0b,0x12,0x0b,0x0b,0x0b,0x12,0x12,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x19,0x15,0x19,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x14,0x12,0x14,0x12,0x14,0x12,0x13,0x0d,0x13,0x13,0x1c,0x16,0x0a, +0x0d,0x09,0x09,0x13,0x0f,0x22,0x1d,0x17,0x14,0x15,0x12,0x1b,0x16,0x14,0x12,0x14,0x12,0x17,0x12,0x18,0x15,0x18,0x15,0x1b,0x13,0x1c,0x16,0x0b,0x0b,0x0b,0x0b,0x0f,0x0f,0x12,0x12,0x12,0x12,0x0a,0x0a,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x18,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x17,0x11,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1a, +0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x12,0x0c,0x19,0x16,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x1a,0x15,0x0a,0x09,0x0a,0x09,0x15,0x12,0x15,0x12,0x15,0x12,0x11,0x09,0x11,0x09,0x11,0x09,0x11,0x09,0x21,0x20,0x21,0x20,0x21,0x20,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x15,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c, +0x16,0x15,0x16,0x15,0x16,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x16,0x0d,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x14,0x10,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x13,0x0d,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x17,0x12,0x17,0x12,0x23,0x1b,0x23,0x1b,0x16,0x11,0x16,0x11,0x14,0x12,0x15,0x11,0x15,0x11,0x15,0x11,0x15,0x0d,0x1b, +0x12,0x13,0x09,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x10,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x1a,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0e,0x0e,0x12,0x12,0x13,0x13,0x13,0x13,0x16, +0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x23,0x23,0x23,0x23,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x19,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x10,0x10,0x15,0x15,0x0a,0x0a,0x16,0x16,0x14,0x14,0x1e,0x1e,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x23,0x23,0x23,0x23,0x23,0x23,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x16,0x16,0x16,0x16,0x16,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x1a, +0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0d,0x0e,0x16,0x16,0x16,0x14,0x14,0x14,0x14,0x16,0x16,0x14,0x14,0x14,0x14,0x19,0x19,0x17,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,0x1c,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x17,0x15,0x16,0x15,0x16, +0x17,0x17,0x11,0x1a,0x1b,0x15,0x16,0x16,0x13,0x14,0x12,0x1a,0x17,0x20,0x0b,0x0a,0x15,0x12,0x09,0x12,0x21,0x1c,0x15,0x1c,0x24,0x1d,0x16,0x16,0x15,0x14,0x10,0x13,0x0b,0x0d,0x13,0x0d,0x13,0x1c,0x1a,0x15,0x13,0x15,0x11,0x17,0x17,0x10,0x0f,0x14,0x14,0x0e,0x0f,0x14,0x09,0x0e,0x11,0x0b,0x2e,0x2a,0x26,0x20,0x1b,0x13,0x28,0x24, +0x1e,0x18,0x13,0x0a,0x09,0x1c,0x16,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x19,0x15,0x13,0x18,0x13,0x18,0x13,0x20,0x1f,0x19,0x16,0x19,0x16,0x15,0x12,0x1c,0x16,0x1c,0x16,0x17,0x10,0x09,0x2e,0x2a,0x26,0x19,0x16,0x25,0x19,0x1c,0x15,0x18,0x13,0x18,0x13,0x13,0x13,0x13,0x13,0x0a,0x09,0x0a,0x09,0x1c,0x16,0x1c,0x16,0x15,0x0d, +0x16,0x0d,0x19,0x15,0x19,0x15,0x13,0x10,0x1a,0x15,0x1b,0x16,0x15,0x15,0x11,0x18,0x13,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x14,0x12,0x16,0x13,0x15,0x15,0x16,0x13,0x16,0x16,0x16,0x11,0x11,0x16,0x16,0x13,0x17,0x0f,0x0f,0x13,0x14,0x0a,0x16,0x16,0x14,0x12,0x11,0x15,0x15,0x15,0x0a,0x0a,0x0c,0x0a,0x0e,0x09,0x16,0x20,0x20, +0x20,0x15,0x15,0x16,0x16,0x1a,0x1b,0x18,0x0d,0x0d,0x0d,0x0d,0x0d,0x0c,0x0c,0x11,0x11,0x0f,0x09,0x0a,0x0b,0x0a,0x0d,0x0d,0x16,0x16,0x15,0x12,0x1b,0x12,0x0f,0x11,0x13,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x17,0x12,0x14,0x14,0x15,0x09,0x12,0x0e,0x16,0x0e,0x0e,0x22,0x23,0x24,0x17,0x12,0x1b,0x1d,0x15,0x15,0x12,0x12,0x14,0x16,0x15, +0x19,0x15,0x18,0x1e,0x15,0x1a,0x16,0x16,0x11,0x12,0x11,0x16,0x13,0x17,0x12,0x21,0x20,0x16,0x13,0x18,0x14,0x17,0x11,0x16,0x12,0x19,0x16,0x15,0x0f,0x15,0x16,0x11,0x09,0x1c,0x11,0x11,0x20,0x19,0x18,0x15,0x22,0x1a,0x19,0x12,0x20,0x1a,0x1b,0x15,0x22,0x1c,0x14,0x11,0x1d,0x1c,0x1c,0x16,0x1b,0x15,0x1b,0x15,0x31,0x29,0x1f,0x18, +0x2a,0x21,0x20,0x19,0x16,0x10,0x13,0x0f,0x0f,0x00,0x00,0x24,0x23,0x15,0x13,0x15,0x16,0x15,0x13,0x14,0x11,0x15,0x12,0x1a,0x16,0x1f,0x19,0x25,0x1f,0x1b,0x15,0x17,0x11,0x13,0x0f,0x20,0x19,0x19,0x16,0x1f,0x17,0x1f,0x17,0x0a,0x20,0x1c,0x15,0x13,0x1a,0x15,0x18,0x15,0x18,0x13,0x18,0x13,0x20,0x1f,0x13,0x13,0x1b,0x13,0x1b,0x13, +0x20,0x1c,0x14,0x11,0x13,0x10,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x1c,0x16,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x18,0x15,0x1d,0x1a,0x15,0x16,0x20,0x20,0x1e,0x1b,0x15,0x12,0x22,0x1d,0x25,0x1f,0x1a,0x14,0x19,0x16,0x16,0x15,0x15,0x13,0x16,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x16, +0x0c,0x0c,0x06,0x08,0x08,0x08,0x0a,0x0f,0x0a,0x08,0x0e,0x08,0x08,0x08,0x0c,0x0c,0x08,0x08,0x16,0x16,0x16,0x16,0x0c,0x0a,0x0a,0x0c,0x0b,0x0a,0x0a,0x0a,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0b,0x0c,0x0c,0x0b,0x06,0x09,0x0a,0x08,0x0e,0x0e,0x0e,0x0e,0x0e,0x0c,0x0c,0x0c,0x0f,0x0c,0x09,0x0a,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, +0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x14,0x14,0x14,0x0e,0x14, +0x14,0x14,0x14,0x00,0x00,0x00,0x00,0x00,0x18,0x0b,0x17,0x0d,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x16,0x11,0x18,0x1f,0x12,0x11,0x14,0x15,0x0f,0x0f,0x09,0x0b,0x12,0x0f,0x1a,0x16,0x16,0x12,0x17,0x17,0x17, +0x22,0x14,0x16,0x16,0x11,0x11,0x11,0x0f,0x14,0x15,0x1b,0x15,0x12,0x1b,0x11,0x0f,0x0f,0x14,0x0e,0x11,0x15,0x11,0x16,0x15,0x0d,0x12,0x0d,0x0d,0x0f,0x0b,0x0b,0x0f,0x10,0x07,0x08,0x0d,0x0a,0x13,0x10,0x10,0x10,0x0e,0x0d,0x0d,0x0b,0x0f,0x13,0x0c,0x0c,0x0d,0x12,0x0d,0x0d,0x0c,0x0c,0x0a,0x0a,0x0d,0x06,0x0b,0x12,0x0c,0x0d,0x0a, +0x0d,0x0d,0x0d,0x07,0x0c,0x0c,0x12,0x0a,0x0c,0x0c,0x0b,0x0d,0x0f,0x0b,0x06,0x08,0x0c,0x0a,0x0c,0x0b,0x0d,0x0f,0x0b,0x16,0x06,0x0d,0x14,0x20,0x17,0x14,0x14,0x20,0x18,0x20,0x1c,0x14,0x16,0x13,0x11,0x2a,0x11,0x16,0x21,0x23,0x23,0x17,0x18,0x17,0x11,0x11,0x13,0x10,0x11,0x13,0x07,0x00,0x00,0x00,0x00,0x16,0x17,0x17,0x17,0x11, +0x0e,0x16,0x16,0x0c,0x20,0x15,0x16,0x0d,0x0c,0x11,0x0d,0x11,0x16,0x11,0x15,0x21,0x18,0x0c,0x0a,0x16,0x14,0x16,0x16,0x16,0x0c,0x16,0x12,0x09,0x20,0x15,0x16,0x0d,0x10,0x10,0x12,0x11,0x11,0x13,0x16,0x16,0x13,0x10,0x11,0x1b,0x09,0x11,0x09,0x15,0x10,0x0d,0x0a,0x0a,0x0d,0x0a,0x07,0x06,0x0d,0x0c,0x06,0x07,0x06,0x06,0x06,0x07, +0x06,0x08,0x12,0x12,0x0c,0x0c,0x0d,0x0c,0x0e,0x09,0x06,0x07,0x0c,0x0d,0x0c,0x0c,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x00,0x00,0x00,0x00,0x08,0x0c,0x0c,0x0d,0x0a,0x0c,0x14,0x14,0x14,0x14,0x0c,0x00,0x00,0x00,0x00,0x11,0x0b,0x0a,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14, +0x14,0x14,0x14,0x14,0x0a,0x0a,0x0a,0x0a,0x14,0x14,0x14,0x14,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x06,0x0e,0x0e,0x0d,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x0e,0x0d,0x0e,0x0e,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0b,0x1d,0x17, +0x1a,0x15,0x1c,0x17,0x23,0x1c,0x14,0x0e,0x13,0x19,0x14,0x1e,0x1a,0x00,0x00,0x00,0x00,0x09,0x09,0x09,0x09,0x0c,0x0c,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x1f,0x1f,0x25,0x0f,0x09,0x13,0x16,0x0f,0x13,0x13,0x16,0x16,0x13,0x25,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x18,0x13,0x13,0x13,0x0c,0x16,0x0c,0x1c,0x19,0x13,0x0c,0x1f, +0x13,0x1f,0x09,0x0c,0x16,0x16,0x18,0x18,0x18,0x16,0x16,0x16,0x1f,0x09,0x16,0x09,0x13,0x0f,0x09,0x09,0x13,0x09,0x1c,0x09,0x22,0x13,0x22,0x22,0x16,0x16,0x16,0x13,0x13,0x0f,0x0f,0x2b,0x2b,0x31,0x31,0x1f,0x1f,0x13,0x13,0x06,0x25,0x1c,0x1f,0x19,0x16,0x19,0x13,0x13,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x09, +0x18,0x00,0x18,0x18,0x18,0x0c,0x13,0x13,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x0f,0x22,0x13,0x22,0x13,0x1c,0x1f,0x0c,0x13,0x13,0x0f,0x09,0x13,0x16,0x13,0x16,0x13,0x16,0x16,0x13,0x19,0x18,0x22,0x0c,0x13,0x0f,0x19,0x13,0x0c,0x13,0x13,0x13,0x22,0x0c,0x22,0x0c,0x09,0x16,0x0e,0x25,0x13,0x13,0x18,0x18,0x25,0x13,0x00,0x00,0x00, +0x18,0x00,0x18,0x18,0x18,0x18,0x1c,0x18,0x00,0x00,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x13,0x13,0x1c,0x1f,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0f,0x0f,0x0f,0x13, +0x0f,0x0f,0x0f,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x13,0x16,0x16,0x16,0x25,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x25,0x13,0x13,0x1c,0x1c,0x28,0x25,0x22,0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19, +0x19,0x0c,0x19,0x0c,0x14,0x19,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x22,0x1c,0x1f,0x0c,0x13,0x1c,0x1f,0x1c,0x1f,0x00,0x00,0x00,0x00,0x00,0x2a,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0f,0x00,0x00,0x16,0x00,0x00,0x00,0x2b,0x1f,0x31,0x25,0x13,0x16,0x16,0x16,0x0f,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16, +0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x22,0x22,0x0e,0x16,0x16,0x16,0x2d,0x1f,0x14,0x38,0x28,0x0c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x13,0x0f,0x0f,0x1c,0x19,0x19,0x13,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x2e,0x38,0x00,0x00,0x00,0x00,0x00,0x16,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x0f,0x22,0x0c, +0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x19,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x13,0x16,0x16,0x16,0x25,0x13,0x13,0x25,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x22,0x13,0x13,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x0f,0x0f, +0x2b,0x1f,0x18,0x16,0x16,0x00,0x13,0x13,0x13,0x0e,0x15,0x19,0x17,0x13,0x13,0x0d,0x09,0x1c,0x16,0x16,0x0d,0x14,0x12,0x12,0x11,0x12,0x09,0x13,0x0f,0x17,0x12,0x16,0x11,0x14,0x10,0x19,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x11,0x12,0x11,0x0b,0x13,0x15,0x16,0x13,0x0d,0x1b,0x16,0x18,0x14,0x17,0x12,0x15,0x13, +0x0f,0x1a,0x0e,0x0f,0x10,0x12,0x16,0x16,0x13,0x25,0x13,0x25,0x0c,0x09,0x06,0x14,0x08,0x05,0x00,0x05,0x08,0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x22,0x10,0x1c,0x16,0x23,0x1b,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x22,0x20,0x11,0x20,0x11,0x20,0x18,0x19,0x1a,0x1a,0x1c, +0x20,0x25,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x1b,0x15,0x27,0x1f,0x11,0x11,0x0b,0x0b,0x0b,0x0e,0x08,0x15,0x09,0x09,0x1f,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x07,0x00,0x00,0x08,0x00,0x00,0x18,0x15,0x10,0x12,0x19,0x0a,0x0c,0x19,0x19,0x0a,0x15,0x14,0x14,0x1a, +0x19,0x0a,0x0f,0x19,0x16,0x17,0x17,0x15,0x16,0x19,0x15,0x1d,0x1b,0x13,0x13,0x13,0x08,0x0e,0x15,0x15,0x14,0x14,0x14,0x16,0x18,0x12,0x19,0x14,0x14,0x1a,0x15,0x1b,0x14,0x1d,0x1d,0x1d,0x1d,0x18,0x18,0x18,0x15,0x10,0x12,0x19,0x0b,0x0d,0x19,0x0b,0x15,0x14,0x14,0x19,0x0f,0x19,0x17,0x17,0x16,0x19,0x15,0x1d,0x1b,0x0a,0x15,0x14, +0x17,0x18,0x2c,0x00,0x18,0x14,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x0a,0x00,0x1c,0x18,0x19,0x1a,0x14,0x19,0x1c,0x1c,0x11,0x17,0x1c,0x1b,0x18,0x1c,0x1e,0x1d,0x19,0x14,0x15,0x1c, +0x1a,0x15,0x19,0x19,0x18,0x19,0x19,0x1b,0x15,0x18,0x19,0x18,0x1d,0x17,0x17,0x18,0x19,0x1e,0x12,0x16,0x16,0x20,0x14,0x14,0x1d,0x21,0x17,0x14,0x27,0x15,0x15,0x1c,0x14,0x14,0x1c,0x15,0x1c,0x1e,0x20,0x14,0x1d,0x14,0x18,0x14,0x17,0x15,0x17,0x14,0x16,0x1c,0x14,0x17,0x19,0x14,0x14,0x16,0x23,0x14,0x14,0x16,0x16,0x10,0x0c,0x15, +0x15,0x15,0x14,0x15,0x21,0x15,0x21,0x12,0x15,0x21,0x19,0x15,0x21,0x1c,0x1c,0x21,0x15,0x15,0x21,0x21,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x16,0x15,0x15,0x21,0x16,0x14,0x15,0x15,0x21,0x1d,0x19,0x1a,0x1a,0x19,0x1a,0x17,0x19,0x1d,0x1a,0x18,0x14,0x1d,0x19,0x19,0x15,0x19,0x1a,0x1c,0x1b,0x16,0x1a,0x19,0x1b,0x19,0x1d,0x1a, +0x1b,0x1b,0x19,0x18,0x1a,0x19,0x1b,0x1d,0x18,0x1c,0x1b,0x04,0x04,0x06,0x07,0x06,0x0a,0x0d,0x20,0x15,0x17,0x16,0x15,0x17,0x15,0x15,0x18,0x16,0x15,0x0b,0x1f,0x16,0x15,0x15,0x14,0x16,0x13,0x15,0x0a,0x16,0x13,0x15,0x0f,0x20,0x14,0x15,0x15,0x16,0x1f,0x15,0x16,0x0f,0x1f,0x16,0x16,0x19,0x19,0x08,0x0a,0x2a,0x29,0x29,0x2a,0x35, +0x14,0x14,0x09,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x14,0x14,0x15,0x14,0x14,0x13,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x13,0x12,0x13,0x16,0x10,0x10,0x15,0x17,0x09,0x0c,0x12, +0x0f,0x1c,0x18,0x17,0x12,0x17,0x12,0x10,0x10,0x16,0x13,0x1e,0x13,0x11,0x12,0x1a,0x1d,0x0f,0x17,0x12,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x10,0x10,0x10,0x10,0x09,0x09,0x09,0x09,0x18,0x17,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x16,0x11,0x13,0x13,0x13,0x13,0x13,0x15,0x16,0x16,0x10,0x10,0x10,0x10,0x10,0x15,0x15,0x13, +0x17,0x17,0x09,0x09,0x09,0x09,0x09,0x15,0x0c,0x12,0x0f,0x0f,0x0f,0x0f,0x18,0x18,0x18,0x18,0x17,0x17,0x17,0x12,0x12,0x12,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x16,0x16,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x11,0x11,0x11,0x12,0x12,0x12,0x13,0x1a,0x17,0x13,0x12,0x0e,0x14,0x10,0x12,0x17,0x17,0x09,0x12,0x13,0x1c,0x18, +0x11,0x17,0x17,0x12,0x11,0x10,0x11,0x17,0x13,0x18,0x17,0x13,0x10,0x17,0x09,0x17,0x11,0x17,0x09,0x11,0x10,0x15,0x0f,0x13,0x10,0x09,0x09,0x0c,0x1e,0x1e,0x17,0x12,0x12,0x17,0x13,0x12,0x12,0x0f,0x16,0x10,0x1b,0x10,0x18,0x18,0x12,0x15,0x1c,0x17,0x17,0x17,0x12,0x13,0x10,0x12,0x17,0x13,0x17,0x14,0x1e,0x1f,0x15,0x1a,0x12,0x13, +0x20,0x12,0x0f,0x15,0x16,0x17,0x21,0x21,0x18,0x13,0x15,0x10,0x15,0x15,0x15,0x1a,0x13,0x13,0x19,0x15,0x15,0x0d,0x17,0x17,0x15,0x12,0x12,0x21,0x1c,0x11,0x14,0x16,0x16,0x17,0x17,0x1a,0x19,0x0d,0x23,0x16,0x14,0x15,0x18,0x18,0x13,0x13,0x0a,0x1c,0x19,0x19,0x11,0x1a,0x08,0x08,0x10,0x10,0x08,0x08,0x17,0x0f,0x0a,0x1c,0x1a,0x0b, +0x08,0x08,0x11,0x0e,0x0e,0x08,0x08,0x08,0x0e,0x19,0x11,0x0b,0x16,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x10,0x14,0x10,0x08,0x08,0x0e,0x13,0x0d,0x19,0x19,0x19,0x22,0x1c,0x22,0x09,0x00,0x00,0x00,0x00,0x00,0x09,0x1c,0x1f,0x0c,0x0c,0x13,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x31, +0x25,0x31,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x22,0x22,0x13,0x13,0x22,0x22,0x13,0x13,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x25,0x1c,0x1f,0x13,0x16,0x16,0x19,0x0c,0x19,0x1c,0x13,0x13,0x0c,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x22,0x0c,0x1c,0x13,0x13,0x09,0x13,0x13, +0x13,0x13,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x2b,0x1f,0x2b,0x1f,0x2b,0x1f,0x31,0x25,0x31,0x25,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x1c,0x13,0x13,0x1c,0x13,0x13,0x22,0x13,0x28,0x25,0x22, +0x13,0x1f,0x13,0x1f,0x13,0x1f,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x22,0x13,0x19,0x19,0x19,0x19,0x19,0x0c,0x19,0x19,0x0c,0x0c,0x19,0x0c,0x19,0x0c,0x19,0x13,0x16,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0c,0x0c,0x13,0x0c,0x0c,0x0c,0x0c,0x00,0x2b,0x1f,0x31,0x25,0x22,0x13,0x22,0x0c,0x22,0x0c, +0x22,0x0c,0x22,0x0c,0x22,0x0c,0x22,0x0c,0x16,0x16,0x13,0x13,0x0f,0x2b,0x1f,0x25,0x25,0x22,0x22,0x22,0x16,0x16,0x16,0x16,0x19,0x0c,0x19,0x0c,0x19,0x0c,0x2b,0x1f,0x16,0x19,0x16,0x16,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x0f,0x0f,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f,0x0c,0x0c,0x1c,0x1f, +0x0c,0x0c,0x16,0x16,0x16,0x16,0x22,0x0c,0x22,0x0c,0x16,0x19,0x16,0x16,0x2b,0x2b,0x1f,0x1f,0x2b,0x2b,0x1f,0x1f,0x1f,0x1f,0x13,0x13,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x00,0x00,0x09,0x09,0x0c,0x09,0x00,0x00,0x00,0x1f,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x19,0x19,0x19,0x19,0x19,0x16, +0x1f,0x16,0x1f,0x16,0x1f,0x16,0x1f,0x19,0x19,0x19,0x09,0x09,0x13,0x0f,0x16,0x18,0x15,0x14,0x15,0x16,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x13,0x11,0x14,0x13,0x16,0x17,0x17,0x18,0x15,0x15,0x18,0x13,0x19,0x1c,0x18,0x1c,0x1f,0x18,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x14,0x11, +0x14,0x16,0x16,0x18,0x15,0x18,0x15,0x16,0x16,0x13,0x13,0x1c,0x19,0x1a,0x19,0x19,0x16,0x16,0x15,0x1b,0x1d,0x1c,0x1c,0x22,0x22,0x1a,0x22,0x22,0x1b,0x20,0x1f,0x15,0x1c,0x1f,0x1c,0x16,0x1f,0x1b,0x1a,0x1a,0x16,0x18,0x1c,0x1d,0x1a,0x17,0x1a,0x16,0x14,0x22,0x22,0x22,0x1e,0x22,0x22,0x19,0x22,0x22,0x1a,0x1c,0x1d,0x1c,0x1b,0x1b, +0x18,0x21,0x1c,0x1f,0x1a,0x1a,0x15,0x1b,0x1a,0x1a,0x20,0x1c,0x1b,0x21,0x14,0x13,0x15,0x14,0x17,0x17,0x1a,0x1b,0x15,0x15,0x15,0x14,0x15,0x14,0x14,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x14,0x16,0x17,0x16,0x16,0x11,0x15,0x15,0x16,0x16,0x1c,0x1f,0x18,0x18,0x17,0x1c,0x18,0x19,0x13,0x12,0x16,0x15,0x12,0x12,0x14,0x14,0x12,0x11, +0x17,0x11,0x14,0x12,0x14,0x1d,0x15,0x1f,0x14,0x15,0x15,0x1c,0x0c,0x1d,0x19,0x1b,0x18,0x15,0x1c,0x16,0x1d,0x16,0x16,0x16,0x16,0x16,0x16,0x15,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x10,0x11,0x11,0x11,0x11,0x11,0x0b,0x0b,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x17,0x0a,0x0a,0x0a,0x0b,0x0b,0x0a,0x0a,0x0a,0x0b, +0x0a,0x0a,0x0a,0x21,0x21,0x21,0x21,0x12,0x1b,0x1b,0x12,0x0f,0x12,0x13,0x15,0x12,0x1f,0x1e,0x20,0x10,0x25,0x12,0x1f,0x1f,0x1f,0x1e,0x15,0x12,0x12,0x1d,0x16,0x1d,0x19,0x14,0x11,0x0f,0x26,0x0f,0x14,0x12,0x12,0x12,0x12,0x12,0x32,0x1f,0x1f,0x10,0x09,0x11,0x09,0x11,0x09,0x09,0x09,0x12,0x16,0x16,0x14,0x0e,0x0e,0x08,0x08,0x08, +0x0e,0x08,0x0f,0x20,0x08,0x21,0x21,0x21,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x2b,0x2b,0x19,0x2b,0x2b,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x11,0x16,0x11,0x14,0x10, +0x0d,0x0d,0x19,0x14,0x1b,0x10,0x2a,0x21,0x16,0x14,0x22,0x1d,0x1f,0x1c,0x26,0x1e,0x22,0x1d,0x18,0x12,0x1b,0x16,0x22,0x1b,0x1c,0x17,0x1b,0x16,0x20,0x19,0x20,0x19,0x29,0x1f,0x1c,0x16,0x1c,0x16,0x2d,0x21,0x1d,0x00,0x24,0x24,0x24,0x12,0x00,0x00,0x16,0x13,0x1a,0x15,0x14,0x10,0x28,0x21,0x23,0x20,0x1b,0x15,0x1a,0x16,0x13,0x0f, +0x1b,0x16,0x13,0x0f,0x1e,0x19,0x18,0x15,0x24,0x1e,0x14,0x15,0x1b,0x1b,0x1e,0x11,0x07,0x11,0x19,0x10,0x25,0x25,0x09,0x00,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x0f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x14,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x21,0x21, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x12,0x19,0x1b,0x0a,0x08,0x0a,0x08,0x1a,0x15,0x1b,0x17,0x14,0x11,0x14,0x12,0x16,0x15,0x10,0x10,0x2a,0x1e,0x2b, +0x21,0x25,0x1f,0x21,0x18,0x21,0x18,0x21,0x18,0x17,0x11,0x15,0x12,0x15,0x12,0x15,0x12,0x14,0x0c,0x11,0x09,0x1c,0x16,0x20,0x19,0x31,0x25,0x15,0x16,0x19,0x1a,0x1e,0x20,0x1c,0x16,0x24,0x1d,0x14,0x0f,0x15,0x12,0x17,0x12,0x23,0x1b,0x17,0x13,0x15,0x16,0x15,0x16,0x12,0x0f,0x12,0x0e,0x11,0x0e,0x13,0x13,0x0b,0x19,0x0c,0x23,0x19, +0x0d,0x16,0x17,0x11,0x1c,0x15,0x0e,0x0d,0x15,0x15,0x15,0x11,0x09,0x1c,0x16,0x0e,0x0d,0x17,0x11,0x1a,0x0e,0x1d,0x16,0x17,0x11,0x19,0x16,0x15,0x12,0x1c,0x15,0x16,0x0d,0x14,0x10,0x1c,0x10,0x14,0x20,0x12,0x15,0x21,0x0a,0x2a,0x21,0x21,0x2c,0x21,0x22,0x22,0x21,0x21,0x22,0x13,0x11,0x17,0x1a,0x21,0x1a,0x23,0x09,0x11,0x16,0x20, +0x26,0x1a,0x26,0x17,0x17,0x1d,0x1a,0x2a,0x22,0x13,0x22,0x0c,0x22,0x0c,0x16,0x16,0x16,0x16,0x1f,0x1f,0x1f,0x1f,0x25,0x13,0x13,0x25,0x1c,0x13,0x13,0x1c,0x19,0x0c,0x0c,0x19,0x16,0x16,0x16,0x16,0x1c,0x0c,0x0c,0x1f,0x1c,0x0c,0x0c,0x1f,0x0f,0x0f,0x13,0x13,0x13,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x13,0x0f,0x15,0x14,0x1c,0x16,0x15,0x20,0x19,0x1c,0x1c,0x1f,0x1e,0x15,0x12,0x25,0x1e,0x27,0x20,0x19,0x16,0x0c,0x0c,0x16,0x18,0x0f,0x16,0x13,0x15,0x12,0x1b,0x1e,0x0f,0x16,0x10,0x08,0x0e,0x14,0x14,0x08,0x08,0x07,0x08,0x0e,0x0e,0x0e,0x11,0x37, +0x4a,0x0d,0x0f,0x05,0x0a,0x0e,0x10,0x0c,0x12,0x14,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x31,0x14,0x1c,0x22,0x21,0x18,0x11,0x15,0x1b,0x1b,0x12,0x0c,0x18,0x13,0x19,0x15,0x18,0x14,0x14,0x1c,0x16,0x15,0x13,0x1c,0x17,0x1f,0x11,0x13,0x17,0x0c,0x16,0x0d,0x0d,0x09,0x20,0x16,0x15,0x13,0x13, +0x16,0x22,0x22,0x23,0x25,0x25,0x14,0x12,0x0a,0x13,0x11,0x17,0x11,0x19,0x09,0x15,0x16,0x20,0x20,0x17,0x14,0x15,0x14,0x13,0x11,0x13,0x11,0x12,0x0b,0x0c,0x09,0x08,0x0d,0x15,0x17,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0c,0x0c,0x00,0x0b,0x0b,0x0b,0x09,0x09,0x3e,0x25,0x20,0x27,0x0b,0x0b,0x0c, +0x0f,0x09,0x0a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x22,0x0c,0x0c,0x22,0x0a,0x13,0x13,0x31,0x25,0x25,0x31,0x22,0x13,0x13,0x22,0x13,0x13,0x0f,0x0f,0x00,0x00,0x0d,0x1c,0x16,0x1a,0x15,0x2e,0x26,0x1a,0x14,0x1a,0x14,0x31,0x25,0x1c,0x16,0x0e,0x0c,0x17,0x00,0x19,0x14,0x0c,0x0b,0x06,0x12,0x0c,0x0d,0x09,0x07, +0x11,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x08,0x13,0x10,0x16,0x15,0x14,0x24,0x1e,0x1e,0x1d,0x1e,0x23,0x17,0x19,0x16,0x0f,0x22,0x2a,0x10,0x2b,0x13,0x1f,0x22,0x22,0x22,0x0f,0x1c,0x25,0x1c,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x16,0x16,0x16,0x1f,0x13,0x13,0x22,0x0c,0x0c, +0x22,0x0c,0x0c,0x22,0x12,0x12,0x00,0x0f,0x1f,0x0c,0x0c,0x25,0x13,0x13,0x1c,0x13,0x13,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x38,0x38,0x21,0x00,0x00,0x21,0x21,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x19,0x17,0x18,0x18,0x21,0x18,0x17,0x1e, +0x24,0x18,0x17,0x28,0x17,0x17,0x23,0x17,0x19,0x1d,0x18,0x1c,0x1f,0x22,0x18,0x1c,0x18,0x1a,0x17,0x1a,0x17,0x18,0x19,0x17,0x1d,0x16,0x19,0x1d,0x17,0x17,0x15,0x1d,0x18,0x18,0x18,0x1a,0x11,0x14,0x18,0x1d,0x1d,0x14,0x00,0x00,0x2a,0x54,0x1b,0x00,0x04,0x0c,0x0c,0x10,0x19,0x17,0x22,0x22,0x0a,0x0d,0x0d,0x12,0x1d,0x09,0x11,0x09, +0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x09,0x09,0x1d,0x1d,0x1d,0x13,0x28,0x1b,0x18,0x1a,0x1d,0x15,0x15,0x1d,0x1e,0x0b,0x0f,0x18,0x14,0x26,0x1f,0x20,0x18,0x20,0x19,0x16,0x16,0x1d,0x1a,0x27,0x19,0x17,0x18,0x0d,0x10,0x0d,0x1d,0x11,0x0b,0x15,0x19,0x13,0x19,0x16,0x0d,0x19,0x18,0x0a,0x0a,0x15,0x0a,0x24,0x18, +0x19,0x19,0x19,0x0f,0x12,0x0e,0x18,0x14,0x1e,0x13,0x14,0x13,0x0d,0x0a,0x0d,0x1d,0x1b,0x1b,0x1a,0x15,0x1f,0x20,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x13,0x16,0x16,0x16,0x16,0x0a,0x0a,0x0a,0x0a,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x10,0x10,0x17,0x17,0x13,0x11,0x13,0x17,0x11,0x25,0x25,0x20,0x0c,0x11,0x1d,0x24, +0x20,0x22,0x1d,0x1d,0x1d,0x17,0x18,0x16,0x1a,0x20,0x17,0x10,0x12,0x20,0x23,0x19,0x13,0x0c,0x0c,0x1d,0x1b,0x17,0x1d,0x1b,0x15,0x15,0x1f,0x1b,0x1b,0x20,0x27,0x27,0x15,0x2a,0x10,0x10,0x0a,0x0a,0x1d,0x19,0x14,0x17,0x07,0x17,0x0d,0x0d,0x17,0x17,0x10,0x09,0x0a,0x10,0x33,0x1b,0x15,0x1b,0x15,0x15,0x0b,0x0b,0x0b,0x0b,0x20,0x20, +0x20,0x1d,0x1d,0x1d,0x0a,0x10,0x0e,0x0d,0x0d,0x08,0x0c,0x09,0x0e,0x08,0x10,0x14,0x0c,0x16,0x12,0x18,0x13,0x0a,0x1d,0x17,0x17,0x14,0x18,0x19,0x1d,0x1d,0x0f,0x0f,0x0f,0x27,0x26,0x28,0x15,0x1d,0x19,0x0b,0x16,0x12,0x1a,0x13,0x1a,0x13,0x19,0x11,0x09,0x1b,0x15,0x1b,0x15,0x1d,0x1c,0x1d,0x15,0x16,0x15,0x16,0x14,0x0a,0x14,0x0d, +0x14,0x0d,0x1f,0x18,0x1f,0x18,0x20,0x19,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x0e,0x16,0x12,0x1d,0x18,0x1d,0x18,0x18,0x13,0x18,0x13,0x14,0x20,0x20,0x1a,0x19,0x12,0x18,0x14,0x1d,0x11,0x14,0x10,0x2f,0x1a,0x15,0x19,0x0a,0x10,0x22,0x0e,0x19,0x0f,0x0f,0x19,0x0f,0x1b,0x15,0x1a,0x13,0x1a,0x13,0x15,0x16,0x15,0x16,0x15,0x16,0x1d, +0x19,0x1d,0x19,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0b,0x0a,0x0f,0x0a,0x18,0x15,0x15,0x14,0x0a,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x19,0x0f,0x16,0x12,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x27,0x1e,0x17,0x14,0x0a,0x1b,0x15,0x24,0x23,0x20,0x19,0x09,0x27,0x1e,0x27,0x1e,0x27,0x1e, +0x17,0x14,0x0a,0x11,0x17,0x19,0x27,0x27,0x27,0x25,0x10,0x10,0x09,0x0b,0x0b,0x1b,0x18,0x21,0x10,0x22,0x1c,0x23,0x0b,0x1b,0x18,0x15,0x18,0x1e,0x0b,0x18,0x1a,0x26,0x1f,0x15,0x20,0x1e,0x18,0x16,0x16,0x17,0x19,0x21,0x20,0x0b,0x17,0x1a,0x12,0x18,0x0b,0x17,0x17,0x16,0x13,0x18,0x19,0x0b,0x16,0x15,0x18,0x16,0x13,0x19,0x19,0x13, +0x17,0x17,0x20,0x22,0x0b,0x17,0x19,0x17,0x22,0x15,0x1d,0x14,0x1a,0x16,0x0b,0x29,0x29,0x1e,0x18,0x18,0x1e,0x1b,0x18,0x18,0x14,0x1d,0x15,0x24,0x17,0x1f,0x1f,0x18,0x1c,0x26,0x1e,0x20,0x1e,0x18,0x1a,0x16,0x18,0x1f,0x19,0x1f,0x1c,0x28,0x29,0x1e,0x21,0x18,0x1a,0x2b,0x19,0x15,0x18,0x16,0x10,0x17,0x16,0x1f,0x13,0x18,0x18,0x15, +0x16,0x1d,0x18,0x19,0x18,0x19,0x13,0x11,0x14,0x1d,0x13,0x19,0x18,0x22,0x23,0x19,0x1e,0x15,0x13,0x22,0x15,0x16,0x18,0x10,0x13,0x12,0x0a,0x21,0x22,0x18,0x15,0x14,0x18,0x14,0x10,0x2a,0x2f,0x1a,0x0f,0x0f,0x0f,0x0f,0x0a,0x16,0x12,0x17,0x20,0x19,0x1e,0x19,0x0d,0x0e,0x0b,0x0b,0x14,0x14,0x14,0x14,0x0d,0x0d,0x0d,0x14,0x0d,0x14, +0x0d,0x0d,0x0d,0x14,0x14,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20, +0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x1e,0x19,0x17,0x14,0x17,0x14,0x17,0x14,0x16,0x0e,0x15,0x16,0x1f,0x18,0x0b,0x0f,0x0a,0x0a,0x16,0x11,0x26,0x21,0x1a,0x16,0x18,0x15,0x1f,0x19,0x17,0x14,0x17,0x14,0x1a,0x15,0x1c,0x18,0x1c,0x18,0x1e,0x16,0x20,0x19,0x0d, +0x0d,0x0d,0x0d,0x11,0x11,0x14,0x14,0x14,0x14,0x0b,0x0b,0x0d,0x0d,0x0d,0x0d,0x15,0x16,0x1b,0x15,0x18,0x19,0x18,0x19,0x18,0x19,0x1a,0x13,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x19,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x1e,0x18,0x0b,0x0a,0x0b, +0x0a,0x18,0x15,0x18,0x15,0x18,0x15,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x14,0x0a,0x26,0x24,0x26,0x24,0x26,0x24,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x18,0x19,0x18,0x19,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x19,0x0f,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x12,0x16,0x0e,0x16,0x0e,0x16, +0x0e,0x16,0x0e,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1a,0x14,0x1a,0x14,0x27,0x1e,0x27,0x1e,0x19,0x13,0x19,0x13,0x17,0x14,0x18,0x13,0x18,0x13,0x18,0x13,0x18,0x0e,0x1e,0x14,0x15,0x0a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x12,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x1e, +0x1e,0x1e,0x1e,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x10,0x10,0x15,0x15,0x16,0x16,0x16,0x16,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x22,0x22,0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x12,0x12,0x18,0x18,0x0b,0x0b,0x19,0x19,0x17,0x17,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x22,0x23,0x23,0x28,0x28,0x28,0x28,0x28,0x28,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x19,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x21,0x21,0x1e,0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0f,0x10,0x19,0x19,0x19,0x17,0x17,0x17,0x17,0x19,0x19,0x17,0x17,0x17,0x17,0x1c,0x1c, +0x1a,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x22,0x23,0x23,0x23,0x23,0x20,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1a,0x18,0x19,0x18,0x19,0x1a,0x1a,0x14,0x1d,0x1f,0x18,0x19,0x19,0x15,0x17,0x15,0x1d,0x1a,0x25,0x0c,0x0c,0x18,0x15,0x0a,0x15,0x25,0x1f,0x18,0x20,0x29,0x21,0x19,0x19, +0x18,0x16,0x12,0x16,0x0c,0x0e,0x16,0x0e,0x16,0x20,0x1e,0x18,0x16,0x18,0x13,0x1a,0x1a,0x13,0x11,0x17,0x17,0x10,0x11,0x17,0x0a,0x10,0x13,0x0c,0x34,0x30,0x2b,0x24,0x1e,0x15,0x2d,0x29,0x22,0x1b,0x15,0x0b,0x0a,0x20,0x19,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x1d,0x18,0x16,0x1b,0x15,0x1b,0x15,0x24,0x23,0x1d,0x19,0x1d,0x19, +0x18,0x15,0x20,0x19,0x20,0x19,0x1a,0x13,0x0a,0x34,0x30,0x2b,0x1d,0x19,0x2a,0x1d,0x1f,0x18,0x1b,0x15,0x1b,0x15,0x15,0x16,0x15,0x16,0x0b,0x0a,0x0b,0x0a,0x20,0x19,0x20,0x19,0x18,0x0f,0x19,0x0f,0x1d,0x18,0x1d,0x18,0x15,0x12,0x1e,0x18,0x1f,0x19,0x18,0x18,0x13,0x1b,0x15,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x17,0x14,0x19, +0x15,0x18,0x18,0x19,0x15,0x19,0x19,0x19,0x14,0x14,0x19,0x19,0x16,0x1a,0x11,0x11,0x15,0x17,0x0c,0x19,0x19,0x16,0x14,0x13,0x18,0x18,0x18,0x0b,0x0c,0x0d,0x0c,0x10,0x0a,0x19,0x24,0x24,0x24,0x17,0x17,0x19,0x19,0x1d,0x1e,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0e,0x13,0x13,0x11,0x0a,0x0b,0x0c,0x0c,0x0e,0x0e,0x19,0x19,0x17,0x14, +0x1e,0x14,0x12,0x13,0x16,0x13,0x13,0x0f,0x0f,0x0f,0x14,0x1a,0x14,0x17,0x16,0x18,0x0a,0x15,0x10,0x19,0x0f,0x0f,0x26,0x28,0x29,0x1a,0x14,0x1e,0x21,0x18,0x18,0x15,0x15,0x17,0x19,0x18,0x1c,0x18,0x1b,0x22,0x18,0x1d,0x19,0x18,0x13,0x15,0x13,0x19,0x15,0x1a,0x15,0x25,0x24,0x19,0x15,0x1b,0x16,0x1a,0x13,0x19,0x14,0x1c,0x19,0x18, +0x11,0x18,0x18,0x13,0x0a,0x20,0x14,0x14,0x24,0x1c,0x1b,0x18,0x26,0x1e,0x1c,0x15,0x25,0x1d,0x1f,0x18,0x27,0x1f,0x17,0x13,0x21,0x20,0x20,0x19,0x1e,0x18,0x1e,0x18,0x37,0x2f,0x23,0x1b,0x2f,0x26,0x24,0x1c,0x19,0x12,0x15,0x11,0x11,0x00,0x00,0x29,0x28,0x18,0x15,0x18,0x19,0x18,0x15,0x17,0x13,0x18,0x15,0x1e,0x18,0x23,0x1c,0x2a, +0x23,0x1e,0x17,0x1a,0x13,0x16,0x11,0x25,0x1d,0x1d,0x19,0x23,0x1b,0x23,0x1b,0x0b,0x24,0x1f,0x18,0x15,0x1e,0x18,0x1c,0x18,0x1b,0x15,0x1b,0x15,0x24,0x23,0x15,0x16,0x1e,0x16,0x1e,0x16,0x24,0x1f,0x17,0x13,0x16,0x13,0x1f,0x18,0x1f,0x18,0x20,0x19,0x20,0x19,0x1a,0x13,0x18,0x14,0x18,0x14,0x18,0x14,0x1c,0x18,0x21,0x1e,0x18,0x19, +0x24,0x24,0x22,0x1e,0x17,0x14,0x26,0x21,0x2a,0x24,0x1e,0x16,0x1c,0x19,0x19,0x18,0x18,0x15,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x0a,0x19,0x0e,0x0e,0x07,0x09,0x09,0x09,0x0c,0x11,0x0c,0x0a,0x10,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x19,0x19,0x19,0x19,0x0e,0x0c,0x0b,0x0e,0x0d,0x0b, +0x0c,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x0e,0x0d,0x0e,0x0e,0x0c,0x07,0x0a,0x0c,0x09,0x10,0x10,0x10,0x10,0x10,0x0e,0x0e,0x0e,0x11,0x0e,0x0a,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17, +0x10,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x17,0x17,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1b,0x0e,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x0c,0x0e,0x0e,0x0e,0x0e, +0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x19,0x14,0x1c,0x23,0x14,0x13,0x17,0x17,0x12,0x11,0x0a,0x0d,0x15,0x10,0x1d,0x18,0x19,0x14,0x1a,0x1a,0x1a,0x27,0x17,0x19,0x19,0x13,0x13,0x13,0x11,0x16,0x18,0x1e,0x18,0x14,0x1e,0x13,0x12,0x11,0x16,0x10,0x14,0x18,0x13,0x19,0x18,0x0f,0x14,0x0f,0x0f, +0x11,0x0d,0x0d,0x11,0x12,0x08,0x0a,0x0f,0x0c,0x16,0x12,0x12,0x12,0x10,0x0e,0x0e,0x0c,0x11,0x16,0x0d,0x0d,0x0f,0x14,0x0f,0x0f,0x0d,0x0d,0x0b,0x0b,0x0f,0x07,0x0d,0x15,0x0e,0x0e,0x0b,0x0e,0x0e,0x0e,0x08,0x0e,0x0e,0x15,0x0c,0x0d,0x0e,0x0c,0x0e,0x11,0x0d,0x07,0x09,0x0e,0x0c,0x0e,0x0c,0x0f,0x11,0x0d,0x18,0x07,0x0f,0x17,0x25, +0x1a,0x17,0x17,0x24,0x1b,0x24,0x1f,0x16,0x19,0x15,0x13,0x2f,0x13,0x19,0x25,0x27,0x27,0x1a,0x1b,0x1a,0x13,0x14,0x16,0x12,0x13,0x15,0x08,0x00,0x00,0x00,0x00,0x19,0x1a,0x1a,0x1a,0x14,0x10,0x19,0x19,0x0d,0x24,0x18,0x19,0x0f,0x0e,0x13,0x0e,0x13,0x19,0x13,0x18,0x26,0x1b,0x0d,0x0b,0x19,0x16,0x19,0x19,0x19,0x0d,0x19,0x15,0x0a, +0x24,0x18,0x19,0x0f,0x12,0x12,0x14,0x13,0x13,0x15,0x19,0x19,0x16,0x12,0x13,0x1f,0x0a,0x14,0x0a,0x18,0x13,0x0f,0x0b,0x0b,0x0e,0x0b,0x08,0x07,0x0f,0x0e,0x07,0x08,0x07,0x07,0x07,0x08,0x07,0x09,0x15,0x15,0x0e,0x0e,0x0f,0x0e,0x0f,0x0a,0x07,0x08,0x0e,0x0e,0x0e,0x0e,0x0c,0x0b,0x0b,0x0c,0x0b,0x0e,0x00,0x00,0x00,0x00,0x09,0x0d, +0x0d,0x0e,0x0b,0x0d,0x17,0x17,0x17,0x17,0x0e,0x00,0x00,0x00,0x00,0x13,0x0d,0x0b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0b,0x0b,0x0b,0x0b,0x17,0x17,0x17,0x17,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x17,0x0f,0x0f,0x0f,0x0f,0x0f, +0x0f,0x0d,0x0d,0x07,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0d,0x0d,0x21,0x1b,0x1e,0x18,0x1f,0x1a,0x27,0x20,0x17,0x10,0x16,0x1d,0x16,0x22,0x1d,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0e,0x0e,0x0e,0x19,0x19,0x19,0x19, +0x19,0x19,0x23,0x23,0x2a,0x12,0x0b,0x15,0x19,0x12,0x15,0x15,0x19,0x19,0x15,0x2a,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x1b,0x15,0x15,0x15,0x0e,0x19,0x0e,0x20,0x1c,0x15,0x0e,0x23,0x15,0x23,0x0b,0x0e,0x19,0x19,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x23,0x0b,0x19,0x0b,0x15,0x12,0x0b,0x0b,0x15,0x0b,0x20,0x0b,0x27,0x15,0x27,0x27, +0x19,0x19,0x19,0x15,0x15,0x12,0x12,0x31,0x31,0x38,0x38,0x23,0x23,0x15,0x15,0x07,0x2a,0x20,0x23,0x1c,0x19,0x1c,0x15,0x15,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x0b,0x1b,0x00,0x1b,0x1b,0x1b,0x0e,0x15,0x15,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x12,0x27,0x15,0x27,0x15,0x20,0x23,0x0e,0x15,0x15,0x12,0x0b,0x15, +0x19,0x15,0x19,0x15,0x19,0x19,0x15,0x1c,0x1b,0x27,0x0e,0x15,0x12,0x1c,0x15,0x0e,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x0b,0x19,0x10,0x2a,0x15,0x15,0x1b,0x1b,0x2a,0x15,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1b,0x1b,0x1b,0x20,0x1b,0x00,0x00,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x15,0x15,0x20,0x23,0x27,0x0e,0x27,0x0e,0x27,0x0e, +0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x12,0x12,0x12,0x15,0x12,0x12,0x12,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x15,0x19,0x19,0x19,0x2a,0x2a,0x15,0x15,0x2a,0x15,0x15,0x2a,0x15,0x15, +0x2a,0x15,0x15,0x20,0x20,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x1c,0x0e,0x17,0x1c,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x23,0x27,0x20,0x23,0x0e,0x15,0x20,0x23,0x20,0x23,0x00,0x00,0x00, +0x00,0x00,0x2f,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x12,0x00,0x00,0x19,0x00,0x00,0x00,0x31,0x23,0x38,0x2a,0x15,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x27,0x27,0x10,0x19,0x19,0x19,0x34,0x23,0x16,0x40,0x2e,0x0e,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x15,0x15,0x12,0x12,0x20,0x1c,0x1c,0x15,0x00,0x00,0x00,0x0e,0x0e,0x0e,0x0e,0x35,0x3f,0x00,0x00,0x00,0x00,0x00,0x19,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x12,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x1c,0x19,0x15,0x15,0x12,0x31,0x23,0x15,0x19,0x19,0x19,0x15,0x19,0x19, +0x19,0x15,0x19,0x19,0x19,0x2a,0x15,0x15,0x2a,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x27,0x15,0x15,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x1c,0x0e,0x0e,0x12,0x12,0x31,0x23,0x1b,0x19,0x19,0x00,0x15,0x15,0x15,0x10,0x18,0x1d,0x1a,0x15,0x16,0x0f,0x0a,0x20,0x19,0x19,0x0f,0x17,0x14,0x14,0x13,0x14,0x0a,0x16, +0x11,0x1a,0x14,0x19,0x13,0x17,0x12,0x1c,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x13,0x14,0x14,0x0c,0x16,0x18,0x19,0x15,0x0e,0x1f,0x19,0x1b,0x17,0x1a,0x15,0x18,0x16,0x11,0x1d,0x10,0x11,0x12,0x14,0x19,0x19,0x15,0x2a,0x15,0x2a,0x0e,0x0b,0x07,0x17,0x09,0x05,0x00,0x06,0x09,0x00,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x15,0x15,0x27,0x12,0x20,0x19,0x27,0x1e,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x24,0x14,0x24,0x14,0x24,0x1b,0x1d,0x1d,0x1d,0x20,0x24,0x2a,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1f,0x18,0x2d,0x23,0x14,0x14,0x0c,0x0c,0x0c,0x10,0x09,0x18,0x0a,0x0a,0x23, +0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x08,0x00,0x00,0x09,0x00,0x00,0x1b,0x18,0x12,0x14,0x1c,0x0b,0x0e,0x1c,0x1d,0x0b,0x17,0x17,0x17,0x1d,0x1c,0x0b,0x11,0x1c,0x19,0x1a,0x1b,0x18,0x19,0x1c,0x17,0x21,0x1f,0x16,0x16,0x16,0x0a,0x10,0x17,0x17,0x17,0x17,0x17,0x19,0x1b,0x14,0x1c,0x17, +0x17,0x1d,0x17,0x1f,0x17,0x21,0x21,0x21,0x21,0x1b,0x1b,0x1b,0x18,0x12,0x14,0x1c,0x0d,0x0f,0x1d,0x0d,0x17,0x17,0x17,0x1c,0x11,0x1c,0x1a,0x1b,0x19,0x1c,0x17,0x21,0x1f,0x0b,0x18,0x17,0x1b,0x1b,0x32,0x00,0x1b,0x17,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x0b,0x00,0x20,0x1b,0x1c,0x1e,0x17,0x1c,0x1f,0x20,0x14,0x1a,0x1f,0x1f,0x1c,0x20,0x22,0x21,0x1c,0x17,0x18,0x20,0x1e,0x18,0x1d,0x1c,0x1c,0x1c,0x1d,0x1f,0x18,0x1b,0x1c,0x1b,0x21,0x1b,0x1a,0x1b,0x1c,0x22,0x15,0x19,0x19,0x25,0x17,0x17,0x20,0x25,0x1a,0x17, +0x2c,0x18,0x18,0x20,0x17,0x17,0x20,0x18,0x20,0x22,0x25,0x17,0x20,0x17,0x1b,0x17,0x1a,0x18,0x1b,0x17,0x19,0x20,0x17,0x1a,0x1c,0x17,0x17,0x19,0x28,0x17,0x17,0x19,0x19,0x12,0x0e,0x17,0x17,0x17,0x16,0x17,0x25,0x17,0x25,0x15,0x17,0x25,0x1c,0x17,0x25,0x1f,0x1f,0x25,0x18,0x17,0x25,0x25,0x17,0x17,0x17,0x17,0x17,0x17,0x25,0x25, +0x19,0x17,0x18,0x25,0x19,0x17,0x17,0x17,0x25,0x21,0x1d,0x1d,0x1d,0x1d,0x1e,0x1a,0x1d,0x21,0x1d,0x1b,0x17,0x21,0x1c,0x1d,0x18,0x1c,0x1d,0x1f,0x1e,0x19,0x1d,0x1c,0x1f,0x1c,0x21,0x1d,0x1e,0x1f,0x1d,0x1b,0x1d,0x1d,0x1e,0x21,0x1c,0x20,0x1e,0x04,0x05,0x06,0x08,0x06,0x0b,0x0f,0x24,0x18,0x1a,0x19,0x18,0x1a,0x18,0x18,0x1b,0x19, +0x18,0x0d,0x23,0x19,0x18,0x18,0x17,0x19,0x16,0x18,0x0b,0x19,0x16,0x18,0x11,0x24,0x17,0x18,0x18,0x19,0x23,0x18,0x19,0x11,0x23,0x19,0x19,0x1d,0x1d,0x09,0x0c,0x30,0x2f,0x2f,0x30,0x3c,0x17,0x17,0x0a,0x17,0x10,0x17,0x17,0x18,0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x10,0x17,0x17,0x18, +0x17,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x15,0x19,0x12,0x12,0x18,0x1a,0x0b,0x0d,0x15,0x11,0x20,0x1b,0x1a,0x14,0x1a,0x15,0x12,0x12,0x19,0x15,0x22,0x15,0x14,0x14,0x1e,0x21,0x11,0x1a,0x14,0x19,0x16,0x15,0x15,0x15,0x15,0x15,0x15, +0x15,0x12,0x12,0x12,0x12,0x0b,0x0b,0x0b,0x0b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x19,0x19,0x19,0x19,0x14,0x15,0x15,0x15,0x15,0x15,0x18,0x19,0x19,0x12,0x12,0x12,0x12,0x12,0x18,0x18,0x15,0x1a,0x1a,0x0b,0x0b,0x0b,0x0b,0x0b,0x18,0x0d,0x15,0x11,0x11,0x11,0x11,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x15,0x15,0x15,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x15,0x1e,0x1a,0x15,0x15,0x10,0x17,0x12,0x14,0x1a,0x1a,0x0b,0x15,0x15,0x20,0x1b,0x13,0x1a,0x1a,0x14,0x13,0x12,0x14,0x1a,0x15,0x1c,0x1b,0x15,0x12,0x1a,0x0b,0x1a,0x14,0x1b,0x0b,0x14,0x12,0x18,0x11,0x16,0x12,0x0b,0x0b,0x0d, +0x22,0x23,0x1a,0x15,0x15,0x1a,0x15,0x14,0x15,0x11,0x19,0x12,0x1f,0x13,0x1b,0x1b,0x15,0x18,0x20,0x1a,0x1a,0x1a,0x14,0x15,0x12,0x15,0x1a,0x15,0x1b,0x17,0x22,0x23,0x18,0x1e,0x15,0x16,0x24,0x15,0x11,0x18,0x18,0x1a,0x25,0x25,0x1c,0x15,0x18,0x12,0x18,0x18,0x18,0x1d,0x16,0x16,0x1d,0x18,0x18,0x0f,0x1a,0x1a,0x18,0x15,0x15,0x26, +0x1f,0x14,0x16,0x19,0x19,0x1a,0x1a,0x1e,0x1d,0x0f,0x27,0x19,0x17,0x18,0x1b,0x1b,0x15,0x15,0x0b,0x20,0x1d,0x1d,0x14,0x1d,0x09,0x09,0x12,0x12,0x09,0x09,0x1a,0x11,0x0b,0x20,0x1e,0x0c,0x09,0x09,0x13,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x1c,0x14,0x0d,0x19,0x1d,0x19,0x18,0x15,0x1f,0x18,0x19,0x0f,0x12,0x16,0x12,0x09,0x0a,0x10,0x16, +0x0e,0x1c,0x1c,0x1c,0x27,0x20,0x27,0x0b,0x00,0x00,0x00,0x00,0x00,0x0b,0x20,0x23,0x0e,0x0e,0x15,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x15,0x15,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x23,0x23,0x23,0x27,0x27,0x15,0x15,0x27,0x27,0x15,0x15,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e, +0x0e,0x2a,0x20,0x23,0x15,0x19,0x19,0x1c,0x0e,0x1c,0x20,0x15,0x15,0x0e,0x0e,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x27,0x0e,0x20,0x15,0x15,0x0b,0x15,0x15,0x15,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15, +0x15,0x15,0x15,0x15,0x15,0x15,0x31,0x23,0x31,0x23,0x31,0x23,0x38,0x2a,0x38,0x2a,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x20,0x15,0x15,0x20,0x15,0x15,0x27,0x15,0x2e,0x2a,0x27,0x15,0x23,0x15,0x23,0x15,0x23,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x27,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x0e,0x1c,0x1c,0x0e, +0x0e,0x1c,0x0e,0x1c,0x0e,0x1c,0x15,0x19,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x15,0x0e,0x0e,0x0e,0x0e,0x00,0x31,0x23,0x38,0x2a,0x27,0x15,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x27,0x0e,0x19,0x19,0x15,0x15,0x12,0x31,0x23,0x2a,0x2a,0x27,0x27,0x27,0x19,0x19,0x19,0x19,0x1c,0x0e,0x1c,0x0e, +0x1c,0x0e,0x31,0x23,0x19,0x1c,0x19,0x19,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x12,0x12,0x19,0x19,0x19,0x19,0x0e,0x0e,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x20,0x23,0x0e,0x0e,0x19,0x19,0x19,0x19,0x27,0x0e,0x27,0x0e,0x19,0x1c,0x19,0x19,0x31,0x31,0x23,0x23,0x31,0x31,0x23,0x23,0x23,0x23,0x15,0x15,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x00,0x00,0x0b,0x0b,0x0e,0x0b,0x00,0x00,0x00,0x23,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x12,0x12,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b, +0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x20,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x19,0x23,0x19,0x23,0x19,0x23,0x19,0x23,0x1c,0x1c,0x1c,0x0b,0x0b,0x15,0x12,0x18,0x1b,0x18,0x17,0x17,0x19,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x16,0x13,0x17,0x16,0x19,0x1a,0x1a,0x1c,0x18,0x18,0x1b,0x16,0x1c,0x20,0x1b,0x1f,0x23,0x1b,0x20,0x1d,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x16,0x13,0x17,0x19,0x19,0x1c,0x18,0x1b,0x18,0x19,0x19,0x15,0x15,0x20,0x1d,0x1d,0x1c,0x1d,0x19,0x18,0x18,0x1f,0x20,0x20,0x20,0x27,0x27,0x1d,0x27,0x27, +0x1f,0x25,0x24,0x17,0x20,0x24,0x20,0x19,0x24,0x1f,0x1d,0x1d,0x19,0x1b,0x1f,0x21,0x1d,0x1a,0x1e,0x18,0x16,0x27,0x27,0x27,0x23,0x27,0x27,0x1d,0x27,0x27,0x1e,0x20,0x21,0x1f,0x1e,0x1e,0x1b,0x25,0x20,0x23,0x1e,0x1e,0x18,0x1f,0x1d,0x1d,0x24,0x20,0x1e,0x26,0x17,0x15,0x17,0x17,0x1a,0x1a,0x1d,0x1f,0x18,0x18,0x18,0x17,0x18,0x17, +0x17,0x18,0x18,0x18,0x18,0x18,0x18,0x15,0x16,0x19,0x1a,0x19,0x19,0x13,0x18,0x18,0x19,0x19,0x20,0x23,0x1b,0x1b,0x1a,0x20,0x1b,0x1d,0x16,0x14,0x19,0x18,0x14,0x15,0x17,0x17,0x14,0x14,0x1a,0x13,0x17,0x15,0x17,0x21,0x18,0x23,0x17,0x18,0x18,0x1f,0x0d,0x21,0x1d,0x1e,0x1c,0x18,0x20,0x19,0x21,0x19,0x19,0x19,0x19,0x19,0x19,0x18, +0x19,0x19,0x19,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x13,0x13,0x13,0x13,0x14,0x13,0x0d,0x0d,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x1a,0x0b,0x0b,0x0b,0x0d,0x0d,0x0b,0x0b,0x0b,0x0c,0x0b,0x0b,0x0b,0x26,0x26,0x26,0x26,0x15,0x1f,0x1e,0x15,0x11,0x15,0x16,0x17,0x15,0x23,0x23,0x24,0x13,0x2a,0x15,0x23,0x23,0x23,0x22,0x18,0x15, +0x15,0x21,0x19,0x21,0x1c,0x16,0x13,0x11,0x2b,0x11,0x16,0x15,0x15,0x15,0x15,0x15,0x39,0x23,0x23,0x12,0x0b,0x13,0x0a,0x13,0x0a,0x0a,0x0a,0x14,0x19,0x19,0x17,0x10,0x10,0x0a,0x0a,0x0a,0x10,0x0a,0x11,0x24,0x09,0x26,0x26,0x26,0x19,0x19,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x31,0x31,0x1c,0x31,0x31,0x1c,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x14,0x18,0x14,0x16,0x12,0x0f,0x0f,0x1d,0x17,0x1e,0x12,0x2f,0x26,0x19,0x17,0x27,0x21,0x23,0x1f,0x2b,0x22,0x27,0x20,0x1b,0x14,0x1f,0x19,0x27,0x1f,0x20,0x1a,0x1f,0x19, +0x24,0x1c,0x25,0x1c,0x2e,0x23,0x20,0x19,0x20,0x19,0x33,0x25,0x21,0x00,0x29,0x29,0x29,0x14,0x00,0x00,0x18,0x15,0x1d,0x17,0x16,0x12,0x2d,0x26,0x28,0x24,0x1e,0x18,0x1d,0x19,0x16,0x11,0x1f,0x19,0x16,0x11,0x22,0x1c,0x1c,0x18,0x29,0x22,0x17,0x18,0x1f,0x1f,0x22,0x13,0x08,0x13,0x1d,0x12,0x2a,0x2a,0x0a,0x00,0x29,0x29,0x29,0x29, +0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x11,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x17,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22, +0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x14,0x1c,0x1f,0x0c,0x09,0x0c,0x09,0x1e,0x18,0x1f,0x1a,0x17,0x14,0x16,0x14,0x19,0x18,0x12,0x12,0x2f,0x22,0x30,0x25,0x29,0x24,0x26,0x1c,0x26,0x1c,0x26,0x1c,0x1a,0x13,0x18,0x15,0x18,0x15,0x18,0x15,0x17,0x0d,0x14,0x0a,0x20,0x19,0x24,0x1c,0x38,0x2a,0x18, +0x19,0x1d,0x1e,0x22,0x24,0x20,0x19,0x29,0x21,0x17,0x11,0x17,0x15,0x1a,0x14,0x27,0x1e,0x1a,0x16,0x18,0x19,0x18,0x19,0x14,0x11,0x14,0x10,0x14,0x0f,0x16,0x16,0x0d,0x1c,0x0e,0x28,0x1c,0x0f,0x18,0x1a,0x13,0x20,0x17,0x10,0x0f,0x18,0x18,0x18,0x14,0x0a,0x20,0x19,0x10,0x0f,0x1a,0x13,0x1e,0x10,0x21,0x19,0x1a,0x13,0x1d,0x19,0x18, +0x15,0x1f,0x18,0x19,0x0f,0x16,0x12,0x20,0x12,0x16,0x24,0x15,0x18,0x26,0x0b,0x30,0x26,0x26,0x32,0x25,0x26,0x26,0x25,0x25,0x27,0x16,0x14,0x1a,0x1d,0x26,0x1d,0x28,0x0a,0x13,0x19,0x24,0x2b,0x1d,0x2b,0x1a,0x1a,0x21,0x1d,0x30,0x27,0x16,0x27,0x0e,0x27,0x0e,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x2a,0x15,0x15,0x2a,0x20,0x15, +0x15,0x20,0x1c,0x0e,0x0e,0x1c,0x19,0x19,0x19,0x19,0x20,0x0e,0x0e,0x23,0x20,0x0e,0x0e,0x23,0x12,0x12,0x15,0x15,0x16,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x16,0x11,0x18,0x16,0x1f,0x18,0x18,0x25,0x1c,0x1f,0x20,0x23, +0x22,0x18,0x15,0x2a,0x22,0x2c,0x24,0x1d,0x19,0x0d,0x0d,0x19,0x1b,0x11,0x19,0x16,0x18,0x14,0x1f,0x22,0x11,0x19,0x12,0x09,0x10,0x16,0x17,0x09,0x09,0x08,0x09,0x10,0x10,0x10,0x13,0x3f,0x54,0x0e,0x11,0x06,0x0b,0x10,0x12,0x0d,0x15,0x16,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x38,0x17,0x20, +0x27,0x26,0x1b,0x13,0x18,0x1e,0x1f,0x15,0x0d,0x1c,0x16,0x1d,0x17,0x1c,0x16,0x17,0x1f,0x19,0x18,0x16,0x1f,0x1a,0x23,0x13,0x16,0x1b,0x0d,0x19,0x0e,0x0f,0x0a,0x25,0x18,0x18,0x16,0x16,0x19,0x27,0x27,0x28,0x2a,0x2a,0x17,0x15,0x0c,0x15,0x13,0x1a,0x13,0x1c,0x0a,0x18,0x19,0x24,0x24,0x1a,0x17,0x18,0x17,0x16,0x13,0x16,0x13,0x14, +0x0d,0x0e,0x0a,0x09,0x0f,0x18,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0d,0x0d,0x00,0x0c,0x0c,0x0c,0x0b,0x0b,0x47,0x2a,0x25,0x2c,0x0c,0x0c,0x0e,0x11,0x0b,0x0b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x27,0x0e,0x0e,0x27,0x0b,0x15,0x15,0x38,0x2a,0x2a,0x38,0x27,0x15,0x15, +0x27,0x15,0x15,0x12,0x12,0x00,0x00,0x0f,0x1f,0x19,0x1e,0x18,0x35,0x2b,0x1d,0x17,0x1d,0x17,0x38,0x2a,0x20,0x19,0x10,0x0d,0x1a,0x00,0x1d,0x17,0x0e,0x0d,0x07,0x15,0x0e,0x0e,0x0b,0x08,0x13,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x09,0x16,0x12,0x19,0x18,0x17,0x28,0x22,0x22,0x21,0x22,0x28,0x1a,0x1d,0x19,0x11,0x27,0x2f,0x12, +0x31,0x15,0x23,0x27,0x27,0x27,0x12,0x20,0x2a,0x20,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x19,0x19,0x19,0x23,0x15,0x15,0x27,0x0e,0x0e,0x27,0x0e,0x0e,0x27,0x15,0x15,0x00,0x12,0x23,0x0e,0x0e,0x2a,0x15,0x15,0x20,0x15,0x15,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x3f,0x25,0x00,0x00,0x25,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x1c,0x1a,0x1b,0x1b,0x25,0x1b,0x1a,0x22,0x29,0x1b,0x1a,0x2d,0x1b,0x1b,0x27,0x1a,0x1c,0x21,0x1b,0x20,0x24,0x26,0x1b,0x20,0x1b,0x1d,0x1a,0x1d,0x1a,0x1c,0x1d,0x1a,0x21,0x19,0x1c,0x21, +0x1a,0x1a,0x18,0x21,0x1b,0x1b,0x1b,0x1d,0x13,0x16,0x1b,0x21,0x21,0x17,0x00,0x00,0x2e,0x5c,0x1e,0x00,0x04,0x0d,0x0d,0x12,0x1b,0x19,0x26,0x25,0x0b,0x0e,0x0e,0x13,0x1f,0x0a,0x12,0x0a,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0a,0x0a,0x1f,0x1f,0x1f,0x15,0x2c,0x1e,0x1a,0x1c,0x20,0x17,0x16,0x20,0x21,0x0c,0x10, +0x1b,0x16,0x29,0x22,0x23,0x1a,0x23,0x1c,0x18,0x18,0x20,0x1d,0x2b,0x1b,0x19,0x1a,0x0e,0x11,0x0e,0x1f,0x13,0x0c,0x17,0x1b,0x15,0x1b,0x18,0x0e,0x1b,0x1a,0x0b,0x0b,0x17,0x0b,0x28,0x1a,0x1b,0x1b,0x1b,0x10,0x14,0x10,0x1a,0x16,0x21,0x15,0x16,0x15,0x0e,0x0b,0x0e,0x1f,0x1e,0x1e,0x1c,0x17,0x22,0x23,0x20,0x17,0x17,0x17,0x17,0x17, +0x17,0x15,0x18,0x18,0x18,0x18,0x0b,0x0b,0x0b,0x0b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x11,0x11,0x19,0x19,0x15,0x13,0x15,0x19,0x12,0x29,0x29,0x24,0x0d,0x13,0x20,0x28,0x23,0x26,0x1f,0x20,0x20,0x19,0x1b,0x19,0x1c,0x23,0x19,0x12,0x14,0x23,0x26,0x1b,0x15,0x0d,0x0d,0x1f,0x1e,0x19,0x20,0x1e,0x17,0x17,0x22,0x1e, +0x1e,0x23,0x2b,0x2b,0x17,0x2e,0x11,0x11,0x0b,0x0b,0x1f,0x1b,0x16,0x19,0x08,0x19,0x0f,0x0f,0x1a,0x1a,0x11,0x0a,0x0b,0x11,0x38,0x1e,0x17,0x1e,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x23,0x23,0x23,0x20,0x20,0x20,0x0b,0x11,0x10,0x0e,0x0e,0x09,0x0d,0x09,0x0f,0x09,0x11,0x16,0x0d,0x18,0x14,0x1a,0x15,0x0b,0x20,0x1a,0x19,0x16,0x1a,0x1b, +0x1f,0x1f,0x10,0x11,0x11,0x2b,0x2a,0x2c,0x16,0x20,0x1b,0x0c,0x18,0x14,0x1c,0x15,0x1c,0x15,0x1b,0x13,0x0a,0x1e,0x17,0x1e,0x17,0x20,0x1f,0x20,0x17,0x18,0x17,0x18,0x16,0x0b,0x16,0x0e,0x16,0x0e,0x22,0x1a,0x22,0x1a,0x23,0x1b,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x10,0x18,0x14,0x20,0x1a,0x20,0x1a,0x1a,0x15,0x1a,0x15,0x16,0x23, +0x23,0x1c,0x1b,0x14,0x1a,0x16,0x20,0x13,0x16,0x12,0x33,0x1d,0x17,0x1c,0x0b,0x11,0x25,0x0f,0x1c,0x10,0x10,0x1c,0x10,0x1e,0x17,0x1c,0x15,0x1c,0x15,0x17,0x18,0x17,0x18,0x17,0x18,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x0c,0x0b,0x10,0x0b,0x1b,0x17,0x17,0x16,0x0b,0x22,0x1a,0x22,0x1a, +0x23,0x1b,0x23,0x1b,0x1c,0x10,0x18,0x14,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x2b,0x21,0x19,0x16,0x0b,0x1e,0x17,0x28,0x26,0x23,0x1b,0x0a,0x2b,0x21,0x2b,0x21,0x2b,0x21,0x19,0x16,0x0b,0x13,0x19,0x1c,0x2a,0x2a,0x2b,0x29,0x12,0x12,0x0a,0x0d,0x0d,0x1e,0x1a,0x24,0x11,0x25,0x1f,0x26,0x0c,0x1e,0x1a,0x17,0x1a,0x21, +0x0c,0x1b,0x1d,0x29,0x22,0x17,0x23,0x21,0x1a,0x18,0x18,0x19,0x1b,0x24,0x23,0x0c,0x19,0x1c,0x14,0x1a,0x0c,0x19,0x19,0x18,0x14,0x1a,0x1b,0x0c,0x18,0x17,0x1b,0x18,0x14,0x1b,0x1b,0x15,0x19,0x19,0x23,0x25,0x0c,0x19,0x1b,0x19,0x25,0x17,0x20,0x16,0x1c,0x18,0x0c,0x2d,0x2d,0x21,0x1b,0x1a,0x21,0x1e,0x1a,0x1a,0x16,0x20,0x17,0x28, +0x19,0x22,0x22,0x1b,0x1f,0x29,0x21,0x23,0x21,0x1a,0x1c,0x18,0x1a,0x21,0x1b,0x22,0x1e,0x2c,0x2d,0x20,0x24,0x1b,0x1c,0x2f,0x1b,0x17,0x1b,0x18,0x12,0x19,0x18,0x22,0x15,0x1b,0x1b,0x17,0x18,0x20,0x1b,0x1b,0x1b,0x1b,0x15,0x13,0x16,0x20,0x15,0x1c,0x1a,0x25,0x26,0x1b,0x21,0x17,0x15,0x25,0x17,0x18,0x1b,0x12,0x15,0x14,0x0b,0x24, +0x25,0x1a,0x17,0x16,0x1b,0x16,0x12,0x2e,0x34,0x1d,0x10,0x11,0x11,0x11,0x0b,0x18,0x14,0x1a,0x23,0x1b,0x21,0x1b,0x0e,0x0f,0x0c,0x0c,0x16,0x16,0x16,0x16,0x0e,0x0e,0x0e,0x16,0x0e,0x16,0x0e,0x0e,0x0e,0x16,0x16,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e,0x17,0x1e, +0x17,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x0c,0x0b,0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x21,0x1b,0x19,0x16,0x19,0x16,0x19, +0x16,0x18,0x10,0x17,0x18,0x22,0x1b,0x0c,0x10,0x0b,0x0b,0x18,0x13,0x2a,0x24,0x1c,0x18,0x1b,0x17,0x22,0x1c,0x19,0x16,0x19,0x16,0x1d,0x17,0x1e,0x1a,0x1e,0x1a,0x21,0x18,0x23,0x1b,0x0e,0x0e,0x0e,0x0e,0x13,0x13,0x16,0x16,0x16,0x16,0x0c,0x0c,0x0e,0x0e,0x0e,0x0e,0x17,0x18,0x1e,0x17,0x1a,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x15,0x20, +0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x20,0x1b,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x17,0x18,0x16,0x0e,0x20,0x1b,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x21,0x1a,0x0c,0x0b,0x0c,0x0b,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x16,0x0b,0x29,0x28,0x29,0x28,0x29,0x28,0x22,0x1a,0x22,0x1a,0x22,0x1a,0x22, +0x1a,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x1a,0x1b,0x1a,0x1b,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x1c,0x10,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x14,0x18,0x10,0x18,0x10,0x18,0x10,0x18,0x10,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x1d,0x16,0x1d,0x16,0x2b,0x21,0x2b,0x21,0x1b,0x15,0x1b,0x15,0x19,0x16,0x1a, +0x15,0x1a,0x15,0x1a,0x15,0x1a,0x10,0x21,0x16,0x17,0x0b,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x14,0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x21,0x21,0x21,0x21,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11, +0x11,0x17,0x17,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1f,0x26,0x26,0x26,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x14,0x14,0x1a,0x1a,0x0c,0x0c,0x1b,0x1b,0x19,0x19,0x25,0x25,0x1c,0x1c,0x1c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x22,0x22,0x22,0x22,0x22,0x22,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1e,0x1e,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x24,0x24,0x21,0x1b,0x1b,0x1b,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x11,0x11,0x1b,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1b,0x1b,0x19,0x19,0x19,0x19,0x1f,0x1f,0x1d,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x25,0x26,0x26,0x27,0x26,0x23,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0x1c,0x1a,0x1b,0x1b,0x1b,0x1d,0x1d,0x15,0x20,0x22,0x1a,0x1b,0x1b,0x17,0x19,0x16,0x20,0x1d,0x28,0x0d,0x0d,0x1b,0x17,0x0b,0x17,0x29,0x22,0x1a,0x23,0x2d,0x24,0x1c,0x1b,0x1b,0x18,0x14,0x18,0x0e,0x10,0x18,0x10,0x18,0x23,0x21,0x1a,0x18,0x1a,0x15,0x1c,0x1c,0x14,0x13,0x19,0x19,0x11,0x12,0x19,0x0b,0x12,0x15,0x0d, +0x39,0x34,0x2f,0x27,0x21,0x17,0x31,0x2d,0x25,0x1e,0x17,0x0c,0x0b,0x23,0x1b,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x20,0x1a,0x18,0x1e,0x17,0x1e,0x17,0x28,0x26,0x20,0x1b,0x20,0x1b,0x1b,0x17,0x23,0x1b,0x23,0x1b,0x1c,0x14,0x0b,0x39,0x34,0x2f,0x20,0x1b,0x2e,0x20,0x22,0x1a,0x1e,0x17,0x1e,0x17,0x17,0x18,0x17,0x18,0x0c,0x0b, +0x0c,0x0b,0x23,0x1b,0x23,0x1b,0x1a,0x10,0x1c,0x10,0x20,0x1a,0x20,0x1a,0x17,0x14,0x21,0x1a,0x22,0x1b,0x1a,0x1a,0x15,0x1e,0x17,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x23,0x1b,0x19,0x16,0x1b,0x17,0x1a,0x1a,0x1b,0x17,0x1b,0x1b,0x1b,0x15,0x15,0x1b,0x1b,0x18,0x1c,0x13,0x13,0x17,0x19,0x0d,0x1b,0x1b,0x18,0x16,0x15,0x1a,0x1a,0x1a,0x0c, +0x0d,0x0f,0x0d,0x11,0x0b,0x1c,0x28,0x28,0x28,0x1a,0x1a,0x1b,0x1b,0x20,0x21,0x1d,0x10,0x10,0x10,0x10,0x10,0x0f,0x0f,0x15,0x15,0x12,0x0b,0x0c,0x0d,0x0d,0x10,0x10,0x1c,0x1b,0x1a,0x16,0x21,0x16,0x13,0x15,0x18,0x14,0x14,0x11,0x11,0x11,0x15,0x1c,0x16,0x19,0x18,0x1a,0x0b,0x17,0x12,0x1b,0x11,0x11,0x2a,0x2c,0x2d,0x1c,0x16,0x21, +0x24,0x1b,0x1a,0x17,0x17,0x19,0x1b,0x1a,0x1f,0x1a,0x1d,0x25,0x1a,0x20,0x1b,0x1b,0x15,0x17,0x15,0x1b,0x17,0x1c,0x17,0x29,0x28,0x1c,0x17,0x1d,0x19,0x1c,0x15,0x1b,0x16,0x1e,0x1b,0x1a,0x13,0x1a,0x1b,0x15,0x0b,0x23,0x15,0x15,0x28,0x1f,0x1e,0x1b,0x2a,0x21,0x1f,0x17,0x28,0x20,0x21,0x1a,0x2b,0x22,0x19,0x15,0x24,0x23,0x23,0x1b, +0x21,0x1b,0x21,0x1b,0x3c,0x33,0x26,0x1e,0x34,0x29,0x28,0x1f,0x1b,0x14,0x17,0x12,0x13,0x00,0x00,0x2d,0x2c,0x1b,0x17,0x1a,0x1b,0x1a,0x17,0x19,0x15,0x1b,0x17,0x21,0x1b,0x27,0x1f,0x2f,0x26,0x21,0x1a,0x1c,0x15,0x18,0x13,0x28,0x1f,0x20,0x1b,0x26,0x1d,0x26,0x1d,0x0c,0x28,0x22,0x1b,0x17,0x21,0x1b,0x1e,0x1a,0x1e,0x17,0x1e,0x17, +0x28,0x26,0x17,0x18,0x21,0x18,0x21,0x18,0x28,0x22,0x19,0x15,0x18,0x14,0x22,0x1b,0x22,0x1b,0x23,0x1b,0x23,0x1b,0x1c,0x15,0x1a,0x16,0x1a,0x16,0x1a,0x16,0x1e,0x1a,0x24,0x21,0x1a,0x1b,0x27,0x28,0x25,0x21,0x1a,0x16,0x2a,0x25,0x2e,0x27,0x21,0x18,0x1f,0x1c,0x1b,0x1a,0x1a,0x17,0x1b,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1b,0x0f,0x0f,0x08,0x0a,0x0a,0x0a,0x0d,0x12,0x0d,0x0b,0x11,0x0a,0x0a,0x0a,0x0f,0x0f,0x0a,0x0a,0x1b,0x1b,0x1b,0x1b,0x0f,0x0d,0x0c,0x0f,0x0e,0x0c,0x0d,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0e,0x0f,0x0f,0x0d,0x07,0x0b,0x0d,0x0a,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x0f,0x13,0x0f,0x0b,0x0c, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19, +0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x19, +0x12,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x19,0x19,0x00,0x00,0x00,0x00,0x00,0x1e,0x0e,0x1d,0x10,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x0f,0x0f,0x10,0x0d,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x1b,0x16,0x1e,0x26,0x16,0x15,0x19,0x1a,0x13,0x13,0x0b,0x0e,0x17, +0x12,0x20,0x1b,0x1b,0x16,0x1c,0x1c,0x1c,0x2b,0x19,0x1b,0x1b,0x15,0x15,0x15,0x13,0x19,0x1a,0x21,0x1a,0x16,0x21,0x15,0x13,0x13,0x18,0x12,0x16,0x1b,0x15,0x1b,0x1a,0x11,0x16,0x10,0x10,0x13,0x0e,0x0e,0x13,0x14,0x08,0x0a,0x10,0x0d,0x18,0x14,0x14,0x14,0x12,0x10,0x10,0x0d,0x13,0x18,0x0e,0x0e,0x10,0x16,0x10,0x10,0x0e,0x0e,0x0c, +0x0c,0x10,0x08,0x0e,0x17,0x0f,0x10,0x0c,0x10,0x10,0x10,0x09,0x0f,0x0f,0x17,0x0d,0x0f,0x0f,0x0d,0x10,0x13,0x0e,0x08,0x0a,0x0f,0x0d,0x0f,0x0d,0x10,0x13,0x0e,0x1b,0x08,0x10,0x19,0x28,0x1d,0x19,0x19,0x28,0x1e,0x27,0x22,0x18,0x1b,0x17,0x15,0x34,0x15,0x1b,0x29,0x2b,0x2b,0x1d,0x1e,0x1c,0x15,0x16,0x18,0x14,0x15,0x18,0x09,0x00, +0x00,0x00,0x00,0x1b,0x1c,0x1c,0x1c,0x16,0x12,0x1b,0x1b,0x0e,0x28,0x1a,0x1b,0x10,0x0f,0x15,0x10,0x15,0x1b,0x15,0x1b,0x2a,0x1e,0x0f,0x0c,0x1b,0x19,0x1b,0x1b,0x1b,0x0e,0x1b,0x17,0x0b,0x28,0x1a,0x1b,0x10,0x14,0x14,0x16,0x15,0x15,0x17,0x1b,0x1b,0x18,0x14,0x15,0x22,0x0b,0x15,0x0b,0x1a,0x14,0x10,0x0c,0x0c,0x10,0x0c,0x08,0x08, +0x10,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x0a,0x17,0x17,0x0f,0x0f,0x10,0x0f,0x11,0x0b,0x08,0x09,0x0f,0x10,0x0f,0x0f,0x0d,0x0c,0x0c,0x0e,0x0c,0x10,0x00,0x00,0x00,0x00,0x0a,0x0e,0x0e,0x10,0x0c,0x0e,0x19,0x19,0x19,0x19,0x0f,0x00,0x00,0x00,0x00,0x15,0x0e,0x0c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c, +0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x0c,0x0c,0x0c,0x0c,0x19,0x19,0x19,0x19,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x08,0x11,0x11,0x10,0x11,0x10,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0e,0x0e,0x11,0x10,0x11,0x11,0x10,0x11,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x0e,0x0e,0x24,0x1d,0x21,0x1b,0x22,0x1d,0x2b,0x23,0x19,0x11,0x18,0x1f,0x19,0x26,0x20,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0f,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x2e,0x13,0x0c,0x17,0x1b,0x13,0x17,0x17,0x1b,0x1b,0x17,0x2e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x1e,0x17,0x17,0x17, +0x0f,0x1b,0x0f,0x23,0x1f,0x17,0x0f,0x26,0x17,0x26,0x0c,0x0f,0x1b,0x1b,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x26,0x0c,0x1b,0x0c,0x17,0x13,0x0c,0x0c,0x17,0x0c,0x23,0x0c,0x2a,0x17,0x2a,0x2a,0x1b,0x1b,0x1b,0x17,0x17,0x13,0x13,0x36,0x36,0x3d,0x3d,0x26,0x26,0x17,0x17,0x08,0x2e,0x23,0x26,0x1f,0x1b,0x1f,0x17,0x17,0x23,0x23,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x0c,0x1e,0x00,0x1e,0x1e,0x1e,0x0f,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x13,0x2a,0x17,0x2a,0x17,0x23,0x26,0x0f,0x17,0x17,0x13,0x0c,0x17,0x1b,0x17,0x1b,0x17,0x1b,0x1b,0x17,0x1f,0x1e,0x2a,0x0f,0x17,0x13,0x1f,0x17,0x0f,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x0c,0x1b,0x12,0x2e,0x17, +0x17,0x1e,0x1e,0x2e,0x17,0x00,0x00,0x00,0x1e,0x00,0x1e,0x1e,0x1e,0x1e,0x23,0x1e,0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x17,0x17,0x23,0x26,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x13,0x13,0x13,0x17,0x13,0x13,0x13,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x17,0x1b,0x1b,0x1b,0x2e,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2e,0x17,0x17,0x23,0x23,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x0f,0x1f, +0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x1f,0x0f,0x1f,0x0f,0x19,0x1f,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x26,0x2a,0x23,0x26,0x0f,0x17,0x23,0x26,0x23,0x26,0x00,0x00,0x00,0x00,0x00,0x34,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x13,0x00,0x00,0x1c,0x00,0x00,0x00,0x36,0x26,0x3d,0x2e,0x17,0x1b,0x1b,0x1b,0x13,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x2a,0x2a,0x11,0x1b,0x1b,0x1b,0x38,0x26,0x18,0x46,0x32,0x0f,0x1b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x17,0x13,0x13,0x23,0x1f,0x1f,0x17,0x00,0x00,0x00,0x0f,0x0f,0x0f,0x0f,0x3a,0x45,0x00,0x00,0x00,0x00,0x00,0x1b,0x17,0x00,0x00, +0x00,0x00,0x00,0x00,0x2a,0x13,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1f,0x1b,0x17,0x17,0x13,0x36,0x26,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x17,0x1b,0x1b,0x1b,0x2e,0x17,0x17,0x2e,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x2a,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f, +0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x13,0x13,0x36,0x26,0x1e,0x1b,0x1b,0x00,0x17,0x17,0x17,0x11,0x1a,0x20,0x1d,0x17,0x18,0x10,0x0b,0x23,0x1b,0x1c,0x10,0x19,0x16,0x16,0x15,0x16,0x0b,0x18,0x13,0x1c,0x16,0x1b,0x15,0x19,0x14,0x1f,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x15,0x16,0x16,0x0d,0x18,0x1a,0x1c,0x17,0x10, +0x22,0x1b,0x1d,0x19,0x1d,0x17,0x1a,0x18,0x12,0x20,0x11,0x13,0x13,0x16,0x1c,0x1c,0x17,0x2e,0x17,0x2e,0x0f,0x0c,0x08,0x19,0x0a,0x06,0x00,0x06,0x0a,0x00,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x2b,0x14,0x23,0x1b,0x2b,0x21,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2a,0x2a,0x28,0x16, +0x28,0x16,0x28,0x1e,0x1f,0x20,0x20,0x23,0x28,0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x22,0x1b,0x31,0x26,0x16,0x16,0x0d,0x0d,0x0d,0x11,0x0a,0x1a,0x0b,0x0b,0x26,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x00,0x09,0x00,0x00,0x0a,0x00,0x00,0x1d,0x1a,0x14,0x16,0x1f,0x0c, +0x10,0x1f,0x1f,0x0c,0x1a,0x19,0x19,0x20,0x1f,0x0c,0x12,0x1f,0x1c,0x1c,0x1d,0x1a,0x1b,0x1f,0x1a,0x24,0x21,0x18,0x18,0x18,0x0b,0x11,0x1a,0x1a,0x19,0x19,0x19,0x1c,0x1d,0x16,0x1f,0x19,0x19,0x20,0x1a,0x21,0x19,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1a,0x14,0x16,0x1f,0x0e,0x10,0x1f,0x0e,0x1a,0x19,0x19,0x1f,0x12,0x1f,0x1c,0x1d, +0x1b,0x1f,0x1a,0x24,0x21,0x0c,0x1a,0x19,0x1d,0x1e,0x37,0x00,0x1d,0x19,0x1e,0x1e,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x0c,0x00,0x23,0x1e,0x1f,0x20,0x19,0x1f,0x22,0x23,0x16,0x1d,0x22,0x22, +0x1e,0x23,0x25,0x24,0x1f,0x19,0x1a,0x23,0x20,0x1a,0x20,0x1f,0x1e,0x1f,0x20,0x22,0x1b,0x1d,0x1f,0x1e,0x24,0x1d,0x1c,0x1e,0x1f,0x26,0x17,0x1b,0x1b,0x28,0x19,0x19,0x23,0x29,0x1c,0x19,0x30,0x1a,0x1a,0x23,0x19,0x19,0x23,0x1a,0x23,0x25,0x28,0x19,0x24,0x19,0x1e,0x19,0x1c,0x1a,0x1d,0x19,0x1c,0x23,0x19,0x1d,0x1f,0x19,0x19,0x1b, +0x2c,0x19,0x19,0x1b,0x1b,0x14,0x0f,0x1a,0x1a,0x1a,0x19,0x1a,0x29,0x1a,0x29,0x17,0x1a,0x29,0x1f,0x1a,0x29,0x22,0x22,0x29,0x1b,0x1a,0x29,0x29,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x29,0x29,0x1b,0x1a,0x1a,0x29,0x1b,0x19,0x1a,0x1a,0x29,0x24,0x20,0x20,0x20,0x20,0x21,0x1d,0x20,0x24,0x20,0x1e,0x19,0x24,0x1f,0x20,0x1a,0x1f,0x20,0x22, +0x21,0x1b,0x20,0x1f,0x21,0x1f,0x24,0x20,0x21,0x21,0x1f,0x1d,0x20,0x1f,0x21,0x24,0x1e,0x23,0x21,0x05,0x05,0x07,0x09,0x07,0x0c,0x10,0x28,0x1a,0x1c,0x1b,0x1a,0x1c,0x1a,0x1a,0x1e,0x1c,0x1a,0x0e,0x26,0x1b,0x1a,0x1a,0x19,0x1c,0x18,0x1b,0x0c,0x1b,0x18,0x1a,0x13,0x28,0x19,0x1a,0x1a,0x1b,0x26,0x1a,0x1b,0x12,0x26,0x1b,0x1b,0x20, +0x1f,0x0a,0x0d,0x34,0x34,0x34,0x34,0x42,0x19,0x19,0x0b,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x12,0x19,0x19,0x1a,0x19,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x17, +0x1b,0x14,0x13,0x1a,0x1c,0x0c,0x0e,0x17,0x13,0x23,0x1e,0x1c,0x16,0x1c,0x17,0x13,0x14,0x1b,0x17,0x25,0x17,0x15,0x16,0x20,0x24,0x13,0x1d,0x16,0x1b,0x18,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x14,0x14,0x14,0x0c,0x0c,0x0c,0x0c,0x1e,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b,0x1b,0x1b,0x15,0x17,0x17,0x17,0x17,0x17,0x1a,0x1b,0x1b, +0x14,0x14,0x14,0x14,0x14,0x1a,0x1a,0x17,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1a,0x0e,0x17,0x13,0x13,0x13,0x13,0x1e,0x1e,0x1e,0x1e,0x1c,0x1c,0x1c,0x17,0x17,0x17,0x13,0x13,0x13,0x13,0x14,0x14,0x14,0x14,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x25,0x25,0x25,0x25,0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x20,0x1d,0x17,0x17,0x12,0x19,0x14, +0x16,0x1c,0x1c,0x0c,0x17,0x17,0x23,0x1e,0x15,0x1c,0x1c,0x16,0x15,0x14,0x15,0x1d,0x17,0x1e,0x1d,0x17,0x14,0x1c,0x0c,0x1c,0x15,0x1d,0x0c,0x15,0x14,0x1a,0x12,0x18,0x13,0x0c,0x0c,0x0e,0x25,0x26,0x1c,0x17,0x17,0x1c,0x17,0x16,0x17,0x12,0x1b,0x14,0x22,0x14,0x1e,0x1e,0x17,0x1a,0x23,0x1c,0x1c,0x1c,0x16,0x17,0x14,0x17,0x1d,0x17, +0x1d,0x19,0x25,0x26,0x1a,0x20,0x17,0x18,0x28,0x16,0x12,0x1b,0x1b,0x1d,0x29,0x29,0x1e,0x17,0x1a,0x13,0x1a,0x1a,0x1a,0x20,0x18,0x18,0x20,0x1b,0x1b,0x10,0x1c,0x1c,0x1a,0x16,0x16,0x29,0x22,0x16,0x18,0x1c,0x1c,0x1d,0x1d,0x21,0x20,0x10,0x2b,0x1b,0x19,0x1a,0x1e,0x1e,0x17,0x17,0x0c,0x23,0x20,0x20,0x16,0x20,0x0a,0x0a,0x14,0x14, +0x0a,0x0a,0x1c,0x12,0x0c,0x23,0x20,0x0d,0x0a,0x0a,0x15,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x1f,0x16,0x0e,0x1c,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x14,0x18,0x14,0x0a,0x0b,0x12,0x18,0x10,0x1f,0x1f,0x1f,0x2a,0x23,0x2a,0x0c,0x00,0x00,0x00,0x00,0x00,0x0c,0x23,0x26,0x0f,0x0f,0x17,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b, +0x1b,0x17,0x17,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x26,0x26,0x26,0x2a,0x2a,0x17,0x17,0x2a,0x2a,0x17,0x17,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x2e,0x23,0x26,0x17,0x1b,0x1b,0x1f,0x0f,0x1f,0x23,0x17,0x17,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c, +0x2a,0x0f,0x23,0x17,0x17,0x0c,0x17,0x17,0x17,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x36,0x26,0x36,0x26,0x36,0x26,0x3d,0x2e,0x3d,0x2e,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x23,0x17,0x17, +0x23,0x17,0x17,0x2a,0x17,0x32,0x2e,0x2a,0x17,0x26,0x17,0x26,0x17,0x26,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x2a,0x17,0x1f,0x1f,0x1f,0x1f,0x1f,0x0f,0x1f,0x1f,0x0f,0x0f,0x1f,0x0f,0x1f,0x0f,0x1f,0x17,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0f,0x0f,0x17,0x0f,0x0f,0x0f,0x0f,0x00,0x36,0x26, +0x3d,0x2e,0x2a,0x17,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x17,0x17,0x13,0x36,0x26,0x2e,0x2e,0x2a,0x2a,0x2a,0x1b,0x1b,0x1b,0x1b,0x1f,0x0f,0x1f,0x0f,0x1f,0x0f,0x36,0x26,0x1b,0x1f,0x1b,0x1b,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x13,0x13,0x1b,0x1b,0x1b,0x1b,0x0f,0x0f,0x0f,0x0f,0x23,0x26, +0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x23,0x26,0x0f,0x0f,0x1b,0x1b,0x1b,0x1b,0x2a,0x0f,0x2a,0x0f,0x1b,0x1f,0x1b,0x1b,0x36,0x36,0x26,0x26,0x36,0x36,0x26,0x26,0x26,0x26,0x17,0x17,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x0c,0x0c,0x0f,0x0c,0x00,0x00,0x00,0x26,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x13,0x13,0x23,0x23, +0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f, +0x23,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1b,0x26,0x1f,0x1f,0x1f,0x0c,0x0c,0x17,0x13,0x1b,0x1d,0x1a,0x19,0x1a,0x1b,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x18,0x15,0x19,0x18,0x1b,0x1c,0x1c,0x1e,0x1b,0x1a,0x1e,0x18,0x1f,0x23,0x1d,0x22,0x26,0x1d,0x23,0x20,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x18,0x15,0x19,0x1c,0x1c,0x1e,0x1a,0x1e,0x1a,0x1b,0x1c,0x17,0x17,0x23,0x1f,0x20,0x1f,0x1f,0x1b,0x1b,0x1b,0x22,0x23,0x23,0x23,0x2a,0x2a,0x20,0x2a,0x2a,0x22,0x28,0x27,0x1a,0x23,0x27,0x23,0x1b,0x27,0x22,0x20,0x20,0x1c,0x1e,0x22,0x25,0x20,0x1c,0x21,0x1b,0x19,0x2a,0x2a,0x2a,0x26,0x2a,0x2a,0x1f, +0x2a,0x2a,0x21,0x23,0x24,0x22,0x21,0x21,0x1e,0x29,0x23,0x26,0x21,0x21,0x1b,0x22,0x20,0x20,0x27,0x23,0x21,0x29,0x19,0x17,0x1a,0x19,0x1c,0x1d,0x20,0x22,0x1b,0x1a,0x1a,0x19,0x1a,0x19,0x19,0x1a,0x1a,0x1b,0x1a,0x1a,0x1a,0x17,0x18,0x1b,0x1d,0x1c,0x1c,0x15,0x1a,0x1a,0x1b,0x1c,0x23,0x27,0x1e,0x1e,0x1d,0x23,0x1d,0x1f,0x18,0x16, +0x1b,0x1a,0x16,0x17,0x19,0x19,0x16,0x15,0x1d,0x15,0x19,0x17,0x19,0x24,0x1a,0x26,0x19,0x1a,0x1a,0x22,0x0e,0x24,0x20,0x21,0x1e,0x1a,0x23,0x1c,0x24,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x1c,0x1c,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x14,0x15,0x15,0x15,0x15,0x15,0x0e,0x0e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1d,0x0c, +0x0c,0x0c,0x0e,0x0e,0x0c,0x0c,0x0c,0x0e,0x0c,0x0c,0x0c,0x2a,0x2a,0x2a,0x2a,0x16,0x22,0x21,0x16,0x13,0x16,0x18,0x1a,0x16,0x27,0x26,0x28,0x14,0x2e,0x16,0x26,0x26,0x27,0x25,0x1a,0x16,0x16,0x24,0x1b,0x24,0x1f,0x19,0x15,0x13,0x2f,0x13,0x19,0x16,0x16,0x16,0x16,0x16,0x3f,0x26,0x26,0x14,0x0c,0x15,0x0b,0x15,0x0b,0x0b,0x0b,0x16, +0x1b,0x1b,0x19,0x11,0x11,0x0b,0x0b,0x0b,0x11,0x0b,0x13,0x28,0x0a,0x2a,0x2a,0x2a,0x1b,0x1b,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x36,0x36,0x1f,0x36,0x36,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0x16,0x1b,0x16,0x18,0x14,0x10,0x10,0x20,0x19,0x21,0x14,0x34,0x29,0x1b,0x19,0x2a,0x24,0x27,0x22,0x2f,0x25,0x2b,0x24,0x1e,0x16,0x21,0x1b,0x2b,0x22,0x23,0x1c,0x22,0x1c,0x28,0x1f,0x28,0x1f,0x33,0x27,0x23,0x1b,0x23,0x1b,0x38,0x29,0x24,0x00,0x2d,0x2d,0x2d,0x16,0x00,0x00,0x1b,0x17,0x20,0x1a,0x18,0x14,0x32,0x2a, +0x2b,0x28,0x21,0x1b,0x20,0x1b,0x18,0x13,0x22,0x1b,0x18,0x13,0x26,0x1f,0x1e,0x1a,0x2d,0x26,0x19,0x1a,0x22,0x22,0x25,0x15,0x09,0x15,0x1f,0x14,0x2e,0x2e,0x0b,0x00,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x12,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x22,0x22,0x22,0x22, +0x22,0x22,0x22,0x22,0x22,0x22,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x16,0x1f,0x21,0x0d,0x0a,0x0d,0x0a,0x21,0x1a,0x22,0x1d,0x19,0x16,0x19, +0x16,0x1b,0x1a,0x13,0x13,0x34,0x26,0x35,0x29,0x2d,0x27,0x29,0x1e,0x29,0x1e,0x29,0x1e,0x1c,0x15,0x1b,0x17,0x1b,0x17,0x1b,0x17,0x19,0x0e,0x16,0x0b,0x23,0x1b,0x28,0x1f,0x3d,0x2e,0x1a,0x1b,0x20,0x20,0x25,0x28,0x23,0x1b,0x2d,0x24,0x19,0x12,0x1a,0x17,0x1d,0x16,0x2b,0x21,0x1c,0x18,0x1a,0x1b,0x1a,0x1b,0x16,0x12,0x16,0x12,0x16, +0x11,0x18,0x18,0x0e,0x1f,0x0f,0x2c,0x1e,0x10,0x1b,0x1c,0x15,0x23,0x1a,0x11,0x10,0x1b,0x1b,0x1b,0x16,0x0b,0x23,0x1c,0x11,0x10,0x1d,0x15,0x21,0x12,0x24,0x1c,0x1c,0x15,0x20,0x1b,0x1b,0x17,0x22,0x1a,0x1c,0x10,0x18,0x14,0x23,0x14,0x18,0x28,0x16,0x1a,0x29,0x0c,0x35,0x29,0x29,0x36,0x29,0x2a,0x2a,0x28,0x29,0x2a,0x18,0x16,0x1c, +0x20,0x29,0x20,0x2b,0x0b,0x15,0x1b,0x28,0x2f,0x20,0x2f,0x1c,0x1c,0x25,0x20,0x34,0x2a,0x18,0x2a,0x0f,0x2a,0x0f,0x1b,0x1b,0x1b,0x1b,0x26,0x26,0x26,0x26,0x2e,0x17,0x17,0x2e,0x23,0x17,0x17,0x23,0x1f,0x0f,0x0f,0x1f,0x1b,0x1b,0x1b,0x1b,0x23,0x0f,0x0f,0x26,0x23,0x0f,0x0f,0x26,0x13,0x13,0x17,0x17,0x18,0x18,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x18,0x12,0x1a,0x18,0x22,0x1b,0x1b,0x28,0x1f,0x22,0x23,0x26,0x26,0x1b,0x17,0x2e,0x25,0x30,0x27,0x20,0x1b,0x0e,0x0e,0x1b,0x1e,0x13,0x1c,0x18,0x1b,0x16,0x22,0x25,0x12,0x1b,0x14,0x0a,0x11,0x18,0x19,0x0a, +0x0a,0x08,0x0a,0x11,0x11,0x11,0x15,0x44,0x5c,0x10,0x13,0x06,0x0c,0x12,0x14,0x0f,0x17,0x18,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x16,0x16,0x16,0x16,0x16,0x3d,0x19,0x23,0x2a,0x29,0x1e,0x15,0x1a,0x21,0x22,0x16,0x0e,0x1e,0x18,0x1f,0x1a,0x1e,0x19,0x19,0x22,0x1b,0x1b,0x18,0x22,0x1c,0x26,0x15,0x18,0x1d,0x0e,0x1b, +0x10,0x10,0x0b,0x28,0x1b,0x1a,0x18,0x18,0x1b,0x2b,0x2b,0x2b,0x2e,0x2e,0x19,0x17,0x0d,0x17,0x15,0x1c,0x15,0x1f,0x0b,0x1a,0x1c,0x28,0x28,0x1c,0x19,0x1b,0x19,0x18,0x15,0x18,0x15,0x16,0x0e,0x10,0x0b,0x0a,0x11,0x1b,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0f,0x0f,0x00,0x0d,0x0d,0x0d,0x0c, +0x0c,0x4d,0x2e,0x28,0x30,0x0d,0x0d,0x0f,0x12,0x0c,0x0c,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x2a,0x0f,0x0f,0x2a,0x0c,0x17,0x17,0x3d,0x2e,0x2e,0x3d,0x2a,0x17,0x17,0x2a,0x17,0x17,0x13,0x13,0x00,0x00,0x10,0x22,0x1c,0x21,0x1b,0x3a,0x30,0x20,0x19,0x20,0x19,0x3d,0x2e,0x23,0x1b,0x12,0x0f,0x1c,0x00,0x1f,0x19, +0x0f,0x0e,0x07,0x17,0x0f,0x10,0x0c,0x09,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x18,0x14,0x1b,0x1a,0x19,0x2c,0x25,0x25,0x24,0x26,0x2b,0x1d,0x20,0x1c,0x12,0x2b,0x34,0x14,0x35,0x17,0x26,0x2a,0x2a,0x2a,0x13,0x23,0x2e,0x23,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x1b, +0x1b,0x1b,0x26,0x17,0x17,0x2a,0x0f,0x0f,0x2a,0x0f,0x0f,0x2a,0x17,0x17,0x00,0x13,0x26,0x0f,0x0f,0x2e,0x17,0x17,0x23,0x17,0x17,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x45,0x45,0x28,0x00,0x00,0x28,0x28,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x1f,0x1c,0x1e,0x1e,0x29,0x1e,0x1d,0x25,0x2d,0x1e,0x1d,0x31,0x1d,0x1d,0x2b,0x1d,0x1f,0x24,0x1d,0x23,0x27,0x2a,0x1d,0x23,0x1e,0x20,0x1d,0x20,0x1d,0x1e,0x20,0x1d,0x24,0x1c,0x1f,0x24,0x1c,0x1d,0x1a,0x24,0x1e,0x1e,0x1e,0x20,0x15,0x18,0x1e,0x24,0x24,0x19,0x00,0x00,0x32,0x64,0x20,0x00,0x05,0x0e,0x0e,0x14,0x1e,0x1b,0x29,0x28, +0x0c,0x0f,0x0f,0x15,0x22,0x0b,0x14,0x0b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x0b,0x0b,0x22,0x22,0x22,0x16,0x30,0x20,0x1d,0x1f,0x23,0x19,0x18,0x22,0x24,0x0d,0x12,0x1d,0x18,0x2d,0x25,0x26,0x1c,0x26,0x1e,0x1b,0x1a,0x22,0x1f,0x2f,0x1e,0x1c,0x1d,0x0f,0x13,0x0f,0x22,0x15,0x0d,0x19,0x1d,0x17,0x1d,0x1a,0x10, +0x1d,0x1c,0x0c,0x0c,0x19,0x0c,0x2b,0x1c,0x1d,0x1d,0x1d,0x11,0x15,0x11,0x1c,0x18,0x24,0x17,0x18,0x17,0x0f,0x0c,0x0f,0x22,0x20,0x20,0x1f,0x19,0x25,0x26,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x17,0x1a,0x1a,0x1a,0x1a,0x0c,0x0c,0x0c,0x0c,0x1c,0x1d,0x1d,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x13,0x13,0x1b,0x1b,0x16,0x14,0x17,0x1b, +0x14,0x2d,0x2d,0x27,0x0e,0x15,0x22,0x2b,0x26,0x29,0x22,0x22,0x22,0x1b,0x1d,0x1b,0x1f,0x26,0x1b,0x14,0x16,0x26,0x2a,0x1d,0x16,0x0e,0x0e,0x22,0x21,0x1b,0x22,0x20,0x19,0x19,0x25,0x20,0x20,0x26,0x2f,0x2e,0x19,0x32,0x13,0x13,0x0b,0x0b,0x22,0x1d,0x18,0x1c,0x09,0x1b,0x10,0x10,0x1c,0x1c,0x13,0x0b,0x0b,0x13,0x3d,0x20,0x19,0x20, +0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x26,0x26,0x26,0x22,0x22,0x22,0x0c,0x13,0x11,0x10,0x0f,0x0a,0x0e,0x0a,0x10,0x09,0x13,0x18,0x0e,0x1b,0x15,0x1d,0x17,0x0c,0x23,0x1c,0x1c,0x18,0x1c,0x1d,0x22,0x22,0x12,0x12,0x12,0x2f,0x2d,0x30,0x18,0x22,0x1d,0x0d,0x1b,0x15,0x1f,0x17,0x1f,0x17,0x1d,0x15,0x0b,0x20,0x19,0x20,0x19,0x23,0x22,0x23, +0x19,0x1a,0x19,0x1a,0x18,0x0c,0x18,0x0f,0x18,0x10,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x1a,0x16,0x22,0x1c,0x22,0x1c,0x1d,0x17,0x1d,0x17,0x18,0x26,0x26,0x1f,0x1d,0x16,0x1d,0x18,0x23,0x15,0x18,0x14,0x38,0x1f,0x19,0x1e,0x0b,0x13,0x28,0x10,0x1e,0x12,0x12,0x1e,0x12,0x20,0x19,0x1f,0x17,0x1f, +0x17,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x22,0x1d,0x22,0x1d,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x0d,0x0c,0x12,0x0c,0x1d,0x19,0x19,0x18,0x0c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x1e,0x11,0x1b,0x15,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x2f,0x24,0x1c,0x18,0x0c,0x20,0x19,0x2b,0x2a,0x26, +0x1d,0x0b,0x2f,0x24,0x2f,0x24,0x2f,0x24,0x1c,0x18,0x0b,0x15,0x1b,0x1e,0x2e,0x2e,0x2e,0x2d,0x13,0x13,0x0b,0x0e,0x0e,0x20,0x1d,0x27,0x13,0x28,0x21,0x29,0x0d,0x20,0x1d,0x19,0x1d,0x24,0x0d,0x1d,0x1f,0x2d,0x25,0x19,0x26,0x24,0x1c,0x1a,0x1a,0x1c,0x1e,0x27,0x26,0x0d,0x1c,0x1f,0x16,0x1d,0x0d,0x1c,0x1b,0x1a,0x16,0x1d,0x1d,0x0d, +0x1a,0x19,0x1d,0x1a,0x16,0x1d,0x1d,0x17,0x1c,0x1b,0x26,0x28,0x0d,0x1c,0x1d,0x1c,0x28,0x19,0x23,0x18,0x1f,0x1b,0x0d,0x31,0x31,0x24,0x1d,0x1c,0x23,0x20,0x1d,0x1d,0x18,0x23,0x19,0x2b,0x1b,0x25,0x25,0x1d,0x22,0x2d,0x24,0x26,0x24,0x1c,0x1f,0x1a,0x1c,0x24,0x1e,0x25,0x21,0x2f,0x31,0x23,0x27,0x1d,0x1f,0x33,0x1e,0x19,0x1d,0x1a, +0x13,0x1b,0x1a,0x25,0x16,0x1d,0x1d,0x19,0x1a,0x23,0x1d,0x1d,0x1d,0x1d,0x17,0x15,0x18,0x22,0x17,0x1e,0x1c,0x28,0x29,0x1e,0x23,0x19,0x17,0x29,0x19,0x1a,0x1d,0x13,0x17,0x15,0x0c,0x28,0x28,0x1c,0x19,0x18,0x1d,0x17,0x14,0x32,0x38,0x1f,0x12,0x12,0x12,0x12,0x0c,0x1b,0x15,0x1c,0x26,0x1e,0x23,0x1d,0x0f,0x11,0x0d,0x0d,0x18,0x18, +0x18,0x18,0x0f,0x0f,0x0f,0x18,0x0f,0x18,0x0f,0x0f,0x0f,0x18,0x18,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26, +0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x26,0x1e,0x22,0x1c,0x22,0x1c,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x1c,0x18,0x1c,0x18,0x1c,0x18,0x1a,0x11,0x19,0x1a,0x25,0x1d,0x0d,0x12,0x0c,0x0c,0x1a,0x15,0x2e,0x27,0x1f,0x1b,0x1d,0x19,0x25,0x1e,0x1c,0x18,0x1c,0x18,0x1f,0x19,0x21, +0x1c,0x21,0x1c,0x24,0x1a,0x26,0x1d,0x0f,0x0f,0x0f,0x0f,0x15,0x15,0x18,0x18,0x18,0x18,0x0d,0x0d,0x0f,0x0f,0x0f,0x0f,0x19,0x1a,0x20,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1f,0x17,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x23,0x1d,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x19,0x1a,0x18,0x10,0x22,0x1d,0x24,0x1c,0x24,0x1c,0x24, +0x1c,0x24,0x1c,0x24,0x1c,0x0d,0x0c,0x0d,0x0c,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x18,0x0c,0x2d,0x2b,0x2d,0x2b,0x2d,0x2b,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x25,0x1c,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x1d,0x1c,0x1d,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1e,0x11,0x1b,0x15,0x1b,0x15,0x1b,0x15,0x1b, +0x15,0x1b,0x15,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x1a,0x11,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1f,0x18,0x1f,0x18,0x2f,0x24,0x2f,0x24,0x1e,0x17,0x1e,0x17,0x1c,0x18,0x1d,0x17,0x1d,0x17,0x1d,0x17,0x1c,0x11,0x24,0x18,0x19,0x0c,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x16, +0x16,0x16,0x16,0x16,0x16,0x1d,0x1d,0x24,0x24,0x24,0x24,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x13,0x13,0x19,0x19,0x1a,0x1a,0x1a,0x1a,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x28,0x28,0x30,0x30,0x30,0x30,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x21, +0x29,0x29,0x29,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x16,0x16,0x1d,0x1d,0x0d,0x0d,0x1d,0x1d,0x1c,0x1c,0x28,0x28,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x25,0x25,0x25,0x25,0x25,0x25,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x2e,0x2e,0x2e,0x2e,0x2e, +0x2e,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x30,0x30,0x30,0x30,0x30,0x30,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x20,0x20,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x27,0x27,0x24,0x1d,0x1d,0x1d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x12,0x13,0x1d,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c, +0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,0x21,0x21,0x1f,0x1d,0x1d,0x1d,0x28,0x28,0x28,0x28,0x28,0x29,0x29,0x2a,0x29,0x26,0x1d,0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1d,0x1d,0x1d,0x1d,0x1f,0x1f,0x17,0x23,0x25,0x1d,0x1d,0x1e,0x19,0x1b,0x18,0x23,0x1f,0x2c,0x0e,0x0e,0x1d,0x19,0x0c,0x19, +0x2d,0x25,0x1d,0x26,0x30,0x28,0x1e,0x1d,0x1d,0x1b,0x15,0x1a,0x0f,0x11,0x1a,0x11,0x1a,0x26,0x24,0x1c,0x1a,0x1d,0x17,0x1f,0x1f,0x16,0x14,0x1b,0x1b,0x13,0x14,0x1b,0x0c,0x13,0x17,0x0e,0x3e,0x39,0x33,0x2b,0x24,0x19,0x36,0x30,0x28,0x20,0x19,0x0d,0x0c,0x26,0x1d,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x22,0x1c,0x1a,0x20,0x19, +0x20,0x19,0x2b,0x29,0x22,0x1d,0x22,0x1d,0x1d,0x19,0x26,0x1d,0x26,0x1d,0x1f,0x16,0x0c,0x3e,0x39,0x33,0x22,0x1d,0x32,0x22,0x25,0x1c,0x20,0x19,0x20,0x19,0x19,0x1a,0x19,0x1a,0x0d,0x0c,0x0d,0x0c,0x26,0x1d,0x26,0x1d,0x1d,0x11,0x1e,0x11,0x22,0x1c,0x22,0x1c,0x19,0x15,0x24,0x1c,0x25,0x1e,0x1c,0x1d,0x17,0x20,0x19,0x26,0x1d,0x26, +0x1d,0x26,0x1d,0x26,0x1d,0x1c,0x18,0x1d,0x19,0x1c,0x1c,0x1d,0x19,0x1d,0x1d,0x1d,0x17,0x17,0x1d,0x1d,0x1a,0x1f,0x15,0x15,0x19,0x1c,0x0e,0x1d,0x1d,0x1a,0x18,0x17,0x1c,0x1c,0x1c,0x0d,0x0e,0x10,0x0e,0x13,0x0c,0x1e,0x2b,0x2b,0x2b,0x1c,0x1c,0x1d,0x1d,0x23,0x24,0x20,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x17,0x14,0x0c,0x0d, +0x0e,0x0e,0x11,0x11,0x1e,0x1e,0x1c,0x18,0x24,0x18,0x15,0x17,0x1a,0x16,0x16,0x12,0x12,0x12,0x17,0x1f,0x18,0x1b,0x1a,0x1c,0x0c,0x19,0x13,0x1d,0x12,0x12,0x2e,0x2f,0x31,0x1f,0x18,0x24,0x28,0x1d,0x1c,0x19,0x19,0x1b,0x1e,0x1c,0x22,0x1c,0x20,0x28,0x1d,0x23,0x1d,0x1d,0x17,0x19,0x17,0x1e,0x19,0x1f,0x19,0x2d,0x2b,0x1e,0x19,0x20, +0x1b,0x1f,0x17,0x1e,0x18,0x21,0x1d,0x1c,0x14,0x1d,0x1d,0x17,0x0c,0x26,0x17,0x17,0x2b,0x22,0x20,0x1d,0x2d,0x24,0x21,0x19,0x2c,0x23,0x24,0x1c,0x2e,0x25,0x1b,0x16,0x27,0x26,0x26,0x1d,0x24,0x1d,0x24,0x1d,0x42,0x38,0x29,0x21,0x38,0x2d,0x2b,0x22,0x1d,0x16,0x19,0x14,0x15,0x00,0x00,0x31,0x2f,0x1d,0x19,0x1c,0x1d,0x1c,0x19,0x1b, +0x17,0x1d,0x19,0x24,0x1d,0x2a,0x21,0x33,0x2a,0x24,0x1c,0x1f,0x17,0x1a,0x15,0x2c,0x22,0x22,0x1d,0x2a,0x20,0x2a,0x20,0x0d,0x2b,0x25,0x1d,0x19,0x24,0x1d,0x21,0x1c,0x20,0x19,0x20,0x19,0x2b,0x2a,0x19,0x1a,0x24,0x1a,0x24,0x1a,0x2b,0x25,0x1b,0x16,0x1a,0x16,0x25,0x1d,0x25,0x1d,0x26,0x1d,0x26,0x1d,0x1f,0x17,0x1c,0x18,0x1c,0x18, +0x1c,0x18,0x21,0x1c,0x27,0x23,0x1c,0x1d,0x2b,0x2b,0x28,0x24,0x1c,0x18,0x2d,0x28,0x31,0x2a,0x24,0x1b,0x22,0x1e,0x1d,0x1c,0x1c,0x19,0x1d,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x0b,0x1d,0x11,0x11,0x08,0x0b,0x0b,0x0b,0x0e,0x14,0x0e,0x0b,0x13,0x0b,0x0b,0x0b,0x11,0x11,0x0b,0x0b,0x1d,0x1d, +0x1d,0x1d,0x11,0x0e,0x0d,0x11,0x10,0x0d,0x0e,0x0e,0x0e,0x11,0x11,0x11,0x11,0x11,0x10,0x11,0x11,0x0f,0x08,0x0c,0x0e,0x0b,0x13,0x13,0x13,0x13,0x13,0x11,0x11,0x11,0x15,0x11,0x0c,0x0d,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13, +0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b, +0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1b,0x1b,0x00,0x00,0x00,0x00,0x00,0x20,0x0f,0x20,0x11,0x1e,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d, +0x10,0x10,0x11,0x0e,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1d,0x17,0x21,0x29,0x18,0x17,0x1b,0x1c,0x15,0x15,0x0c,0x0f,0x19,0x14,0x23,0x1d,0x1d,0x18,0x1f,0x1f,0x1f,0x2e,0x1b,0x1e,0x1e,0x17,0x17,0x17,0x15,0x1b,0x1c,0x24,0x1c,0x18,0x24,0x17,0x15,0x15,0x1a,0x13,0x17, +0x1d,0x17,0x1e,0x1c,0x12,0x18,0x11,0x12,0x14,0x0f,0x0f,0x14,0x15,0x09,0x0b,0x12,0x0e,0x1a,0x16,0x16,0x15,0x13,0x11,0x11,0x0f,0x15,0x1a,0x10,0x10,0x11,0x18,0x11,0x11,0x10,0x10,0x0d,0x0d,0x11,0x08,0x0f,0x19,0x11,0x11,0x0e,0x11,0x11,0x11,0x0a,0x11,0x10,0x19,0x0e,0x10,0x11,0x0f,0x11,0x14,0x0f,0x08,0x0b,0x11,0x0e,0x11,0x0f, +0x11,0x14,0x0f,0x1d,0x08,0x11,0x1b,0x2c,0x1f,0x1b,0x1b,0x2b,0x20,0x2b,0x25,0x1a,0x1d,0x19,0x16,0x38,0x17,0x1d,0x2d,0x2f,0x2f,0x1f,0x20,0x1f,0x17,0x18,0x1a,0x15,0x17,0x1a,0x0a,0x00,0x00,0x00,0x00,0x1d,0x1f,0x1f,0x1f,0x18,0x13,0x1d,0x1d,0x10,0x2b,0x1c,0x1d,0x11,0x11,0x17,0x11,0x17,0x1d,0x17,0x1d,0x2d,0x20,0x10,0x0d,0x1d, +0x1b,0x1e,0x1d,0x1d,0x10,0x1d,0x19,0x0c,0x2b,0x1c,0x1d,0x11,0x15,0x16,0x18,0x17,0x17,0x19,0x1d,0x1d,0x1a,0x16,0x16,0x25,0x0c,0x17,0x0c,0x1c,0x16,0x11,0x0d,0x0d,0x11,0x0d,0x09,0x08,0x11,0x11,0x08,0x09,0x09,0x09,0x08,0x09,0x08,0x0b,0x19,0x19,0x11,0x11,0x12,0x11,0x12,0x0c,0x08,0x0a,0x11,0x11,0x10,0x10,0x0e,0x0d,0x0d,0x0f, +0x0d,0x11,0x00,0x00,0x00,0x00,0x0b,0x10,0x10,0x11,0x0d,0x10,0x1b,0x1b,0x1b,0x1b,0x11,0x00,0x00,0x00,0x00,0x17,0x10,0x0d,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x0d,0x0d,0x0d,0x0d,0x1c,0x1c,0x1c,0x1c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42, +0x42,0x42,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0f,0x0f,0x27,0x20,0x23,0x1d,0x25,0x1f,0x2f,0x26,0x1b,0x13,0x1a,0x22,0x1b,0x29,0x23,0x00,0x00,0x00,0x00,0x0d,0x0d,0x0d, +0x0d,0x11,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a,0x32,0x15,0x0d,0x19,0x1d,0x15,0x19,0x19,0x1d,0x1d,0x19,0x32,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x20,0x19,0x19,0x19,0x11,0x1d,0x11,0x26,0x21,0x19,0x11,0x2a,0x19,0x2a,0x0d,0x11,0x1d,0x1d,0x20,0x20,0x20,0x1d,0x1d,0x1d,0x2a,0x0d,0x1d,0x0d,0x19,0x15,0x0d,0x0d, +0x19,0x0d,0x26,0x0d,0x2e,0x19,0x2e,0x2e,0x1d,0x1d,0x1d,0x19,0x19,0x15,0x15,0x3a,0x3a,0x43,0x43,0x2a,0x2a,0x19,0x19,0x08,0x32,0x26,0x2a,0x21,0x1d,0x21,0x19,0x19,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x0d,0x20,0x00,0x20,0x20,0x20,0x11,0x19,0x19,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x15,0x2e,0x19,0x2e,0x19, +0x26,0x2a,0x11,0x19,0x19,0x15,0x0d,0x19,0x1d,0x19,0x1d,0x19,0x1d,0x1d,0x19,0x21,0x20,0x2e,0x11,0x19,0x15,0x21,0x19,0x11,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x0d,0x1d,0x13,0x32,0x19,0x19,0x20,0x20,0x32,0x19,0x00,0x00,0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x26,0x20,0x00,0x00,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x19,0x19, +0x26,0x2a,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x19,0x15,0x15,0x15,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x19,0x1d,0x1d,0x1d,0x32,0x32, +0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x32,0x19,0x19,0x26,0x26,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x21,0x11,0x1b,0x21,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x2a,0x2e,0x26,0x2a,0x11, +0x19,0x26,0x2a,0x26,0x2a,0x00,0x00,0x00,0x00,0x00,0x38,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x15,0x00,0x00,0x1e,0x00,0x00,0x00,0x3a,0x2a,0x43,0x32,0x19,0x1d,0x1d,0x1d,0x15,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x2e,0x2e,0x13,0x1d,0x1d,0x1e,0x3d,0x2a,0x1b,0x4c,0x36,0x11, +0x1d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x19,0x15,0x15,0x26,0x21,0x21,0x19,0x00,0x00,0x00,0x11,0x11,0x11,0x11,0x3f,0x4b,0x00,0x00,0x00,0x00,0x00,0x1d,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x15,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x21,0x1d,0x19,0x19,0x15,0x3a, +0x2a,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x19,0x1d,0x1d,0x1d,0x32,0x19,0x19,0x32,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x2e,0x19,0x19,0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x21,0x21,0x11,0x11,0x15,0x15,0x3a,0x2a,0x20,0x1d,0x1d,0x00,0x19,0x19,0x19,0x12,0x1d,0x22,0x1f,0x19,0x1a,0x12,0x0c,0x26,0x1d,0x1e, +0x11,0x1c,0x18,0x18,0x17,0x18,0x0c,0x1a,0x15,0x1f,0x18,0x1e,0x17,0x1b,0x16,0x22,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x17,0x18,0x18,0x0e,0x1a,0x1c,0x1e,0x19,0x11,0x25,0x1d,0x20,0x1b,0x1f,0x19,0x1c,0x1a,0x14,0x23,0x13,0x15,0x15,0x18,0x1e,0x1e,0x19,0x32,0x19,0x32,0x11,0x0d,0x08,0x1b,0x0b,0x06,0x00,0x07, +0x0b,0x00,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x19,0x19,0x2e,0x15,0x26,0x1d,0x2f,0x24,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2e,0x2e,0x2b,0x18,0x2b,0x18,0x2b,0x20,0x22,0x23,0x23,0x26,0x2b,0x32,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x22,0x22,0x22,0x22,0x25,0x1d,0x35,0x29,0x18,0x18,0x0e, +0x0e,0x0e,0x13,0x0b,0x1c,0x0c,0x0c,0x2a,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x00,0x0a,0x00,0x00,0x0b,0x00,0x00,0x20,0x1d,0x16,0x18,0x22,0x0d,0x11,0x22,0x22,0x0d,0x1c,0x1b,0x1c,0x23,0x22,0x0d,0x14,0x22,0x1e,0x1f,0x20,0x1c,0x1d,0x21,0x1c,0x27,0x24,0x1a,0x1a,0x1a,0x0b,0x13,0x1c,0x1c, +0x1c,0x1c,0x1b,0x1e,0x20,0x18,0x22,0x1b,0x1c,0x23,0x1c,0x24,0x1c,0x27,0x27,0x27,0x27,0x20,0x20,0x20,0x1d,0x16,0x18,0x22,0x0f,0x12,0x22,0x0f,0x1c,0x1b,0x1c,0x22,0x14,0x22,0x1f,0x20,0x1d,0x21,0x1c,0x27,0x24,0x0d,0x1d,0x1b,0x20,0x21,0x3c,0x00,0x20,0x1c,0x21,0x21,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x0d,0x00,0x26,0x20,0x21,0x23,0x1c,0x21,0x25,0x26,0x18,0x1f,0x25,0x25,0x21,0x26,0x29,0x27,0x21,0x1c,0x1c,0x26,0x23,0x1d,0x22,0x22,0x21,0x22,0x22,0x25,0x1d,0x20,0x22,0x21,0x27,0x20,0x1f,0x20,0x21,0x29,0x19,0x1d, +0x1d,0x2c,0x1b,0x1b,0x27,0x2d,0x1f,0x1b,0x34,0x1c,0x1c,0x26,0x1b,0x1b,0x26,0x1c,0x26,0x29,0x2c,0x1b,0x27,0x1b,0x21,0x1b,0x1f,0x1c,0x20,0x1b,0x1e,0x26,0x1b,0x1f,0x21,0x1b,0x1b,0x1e,0x30,0x1b,0x1b,0x1d,0x1d,0x15,0x11,0x1c,0x1c,0x1c,0x1b,0x1c,0x2c,0x1c,0x2c,0x19,0x1c,0x2c,0x21,0x1c,0x2c,0x25,0x25,0x2c,0x1d,0x1c,0x2c,0x2c, +0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x2c,0x2c,0x1d,0x1c,0x1c,0x2c,0x1e,0x1b,0x1c,0x1c,0x2c,0x27,0x22,0x23,0x23,0x22,0x23,0x1f,0x22,0x27,0x23,0x21,0x1b,0x28,0x22,0x22,0x1d,0x21,0x23,0x25,0x24,0x1d,0x23,0x21,0x24,0x21,0x27,0x23,0x24,0x24,0x22,0x20,0x23,0x22,0x24,0x28,0x21,0x26,0x24,0x05,0x06,0x08,0x0a,0x08,0x0e,0x12,0x2b,0x1c, +0x1f,0x1e,0x1c,0x1f,0x1c,0x1c,0x20,0x1e,0x1c,0x0f,0x2a,0x1d,0x1c,0x1c,0x1b,0x1e,0x1a,0x1d,0x0d,0x1d,0x1a,0x1c,0x15,0x2b,0x1b,0x1c,0x1c,0x1e,0x2a,0x1c,0x1d,0x14,0x2a,0x1d,0x1d,0x22,0x22,0x0b,0x0e,0x39,0x38,0x38,0x39,0x47,0x1b,0x1b,0x0c,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x13,0x1b,0x1b,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x19,0x19,0x19,0x1d,0x15,0x15,0x1d,0x1f,0x0d,0x10,0x19,0x15,0x26,0x20,0x1f,0x18,0x1f,0x19,0x15,0x16,0x1e,0x1a,0x28,0x19,0x17,0x18,0x23,0x27,0x15,0x1f,0x18, +0x1d,0x1a,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x0d,0x0d,0x0d,0x0d,0x20,0x1f,0x1f,0x1f,0x1f,0x1f,0x1e,0x1e,0x1e,0x1e,0x17,0x19,0x19,0x19,0x19,0x19,0x1d,0x1d,0x1d,0x15,0x15,0x15,0x15,0x15,0x1d,0x1d,0x19,0x1f,0x1f,0x0d,0x0d,0x0d,0x0d,0x0d,0x1c,0x10,0x19,0x15,0x15,0x15,0x15,0x20,0x20,0x20,0x21,0x1f,0x1f, +0x1f,0x19,0x19,0x19,0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x16,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x28,0x28,0x28,0x28,0x17,0x17,0x17,0x18,0x18,0x18,0x19,0x23,0x1f,0x19,0x19,0x14,0x1b,0x15,0x18,0x1f,0x1f,0x0d,0x19,0x1a,0x26,0x20,0x16,0x1f,0x1f,0x18,0x17,0x16,0x17,0x1f,0x19,0x21,0x20,0x19,0x15,0x1f,0x0d,0x1f,0x17,0x20,0x0d,0x17, +0x15,0x1c,0x14,0x1a,0x15,0x0d,0x0d,0x10,0x29,0x29,0x1f,0x19,0x19,0x1e,0x19,0x18,0x19,0x14,0x1d,0x15,0x25,0x16,0x20,0x20,0x19,0x1c,0x26,0x1f,0x1f,0x1f,0x18,0x19,0x16,0x19,0x1f,0x19,0x20,0x1b,0x28,0x2a,0x1c,0x23,0x19,0x1a,0x2b,0x18,0x14,0x1d,0x1d,0x1f,0x2c,0x2c,0x21,0x19,0x1d,0x15,0x1d,0x1c,0x1c,0x23,0x1a,0x1a,0x22,0x1d, +0x1d,0x12,0x1f,0x1f,0x1d,0x18,0x18,0x2d,0x25,0x18,0x1b,0x1e,0x1e,0x1f,0x1f,0x24,0x22,0x12,0x2f,0x1e,0x1c,0x1d,0x20,0x20,0x19,0x19,0x0d,0x26,0x22,0x22,0x18,0x23,0x0b,0x0b,0x16,0x16,0x0b,0x0b,0x1f,0x14,0x0d,0x26,0x23,0x0e,0x0b,0x0b,0x16,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x22,0x18,0x0f,0x1e,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e, +0x11,0x16,0x1b,0x15,0x0b,0x0b,0x14,0x1a,0x11,0x21,0x21,0x21,0x2e,0x26,0x2e,0x0d,0x00,0x00,0x00,0x00,0x00,0x0d,0x26,0x2a,0x11,0x11,0x19,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2e,0x2e,0x19,0x19,0x2e,0x2e,0x19,0x19,0x26,0x2a,0x11, +0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x32,0x26,0x2a,0x19,0x1d,0x1d,0x21,0x11,0x21,0x26,0x19,0x19,0x11,0x11,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x2e,0x11,0x26,0x19,0x19,0x0d,0x19,0x19,0x19,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d, +0x1d,0x1d,0x1d,0x1d,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x3a,0x2a,0x3a,0x2a,0x3a,0x2a,0x43,0x32,0x43,0x32,0x2a,0x2a,0x2a,0x32,0x32,0x32,0x32,0x32,0x32,0x26,0x19,0x19,0x26,0x19,0x19,0x2e,0x19,0x36,0x32,0x2e,0x19,0x2a,0x19,0x2a,0x19,0x2a,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x2e,0x19,0x21, +0x21,0x21,0x21,0x21,0x11,0x21,0x21,0x11,0x11,0x21,0x11,0x21,0x11,0x21,0x19,0x1d,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x11,0x11,0x19,0x11,0x11,0x11,0x11,0x00,0x3a,0x2a,0x43,0x32,0x2e,0x19,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x19,0x19,0x15,0x3a,0x2a,0x32,0x32,0x2e,0x2e,0x2e, +0x1d,0x1d,0x1d,0x1d,0x21,0x11,0x21,0x11,0x21,0x11,0x3a,0x2a,0x1d,0x21,0x1d,0x1d,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x15,0x15,0x1d,0x1d,0x1d,0x1d,0x11,0x11,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x26,0x2a,0x11,0x11,0x1d,0x1d,0x1d,0x1d,0x2e,0x11,0x2e,0x11,0x1d,0x21,0x1d,0x1d,0x3a,0x3a,0x2a,0x2a,0x3a,0x3a, +0x2a,0x2a,0x2a,0x2a,0x19,0x19,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x0d,0x0d,0x11,0x0d,0x00,0x00,0x00,0x2a,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x15,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0x2e, +0x2e,0x2e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x26,0x21,0x21,0x21,0x21,0x21,0x21,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x1d,0x2a,0x21,0x21,0x21,0x0d,0x0d,0x19,0x15,0x1d,0x20,0x1d,0x1b,0x1c,0x1d, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x17,0x1b,0x1a,0x1d,0x1f,0x1f,0x21,0x1d,0x1c,0x21,0x1a,0x21,0x26,0x20,0x25,0x29,0x20,0x26,0x22,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x17,0x1b,0x1e,0x1e,0x21,0x1d,0x20,0x1d,0x1e,0x1e,0x1a,0x1a,0x26,0x22,0x23,0x22,0x22,0x1e,0x1d,0x1d,0x25, +0x27,0x26,0x26,0x2e,0x2e,0x23,0x2e,0x2e,0x25,0x2c,0x2a,0x1c,0x26,0x2a,0x26,0x1e,0x2b,0x25,0x23,0x23,0x1e,0x20,0x25,0x28,0x23,0x1f,0x23,0x1d,0x1b,0x2e,0x2e,0x2e,0x29,0x2e,0x2e,0x22,0x2e,0x2e,0x23,0x26,0x27,0x25,0x24,0x24,0x20,0x2c,0x26,0x29,0x24,0x24,0x1d,0x25,0x23,0x23,0x2b,0x26,0x24,0x2d,0x1b,0x19,0x1c,0x1b,0x1f,0x1f, +0x23,0x25,0x1d,0x1c,0x1c,0x1b,0x1c,0x1b,0x1b,0x1c,0x1c,0x1d,0x1c,0x1c,0x1c,0x19,0x1a,0x1e,0x1f,0x1e,0x1e,0x17,0x1c,0x1c,0x1d,0x1e,0x26,0x2a,0x21,0x21,0x1f,0x26,0x20,0x22,0x1a,0x18,0x1d,0x1c,0x18,0x19,0x1b,0x1c,0x18,0x17,0x1f,0x17,0x1b,0x19,0x1b,0x27,0x1c,0x29,0x1b,0x1c,0x1c,0x25,0x10,0x27,0x22,0x24,0x21,0x1c,0x26,0x1e, +0x27,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x1e,0x1e,0x1e,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x16,0x17,0x16,0x17,0x17,0x17,0x0f,0x10,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x1f,0x0d,0x0d,0x0d,0x10,0x10,0x0d,0x0d,0x0d,0x0f,0x0d,0x0d,0x0d,0x2d,0x2d,0x2d,0x2d,0x18,0x25,0x24,0x18,0x14,0x18,0x1a,0x1c,0x18,0x2a,0x29,0x2b,0x16, +0x32,0x18,0x2a,0x2a,0x2a,0x28,0x1c,0x18,0x18,0x27,0x1d,0x27,0x22,0x1b,0x17,0x14,0x33,0x15,0x1b,0x18,0x18,0x18,0x18,0x18,0x44,0x2a,0x2a,0x15,0x0d,0x17,0x0c,0x17,0x0c,0x0c,0x0c,0x18,0x1d,0x1d,0x1b,0x13,0x13,0x0b,0x0b,0x0b,0x13,0x0b,0x15,0x2b,0x0b,0x2d,0x2d,0x2d,0x1d,0x1d,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, +0x3a,0x3a,0x21,0x3a,0x3a,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1d,0x17,0x1d,0x17,0x1b,0x15,0x12,0x11,0x22,0x1b,0x24,0x16,0x38,0x2d,0x1e,0x1c,0x2e,0x28,0x2a,0x25,0x33,0x29,0x2e,0x27,0x20,0x18, +0x24,0x1d,0x2e,0x25,0x26,0x1e,0x25,0x1e,0x2b,0x21,0x2c,0x21,0x37,0x2a,0x26,0x1d,0x26,0x1d,0x3d,0x2c,0x28,0x00,0x31,0x31,0x31,0x18,0x00,0x00,0x1d,0x19,0x23,0x1c,0x1b,0x15,0x36,0x2d,0x2f,0x2b,0x24,0x1d,0x23,0x1d,0x1a,0x15,0x25,0x1e,0x1a,0x15,0x29,0x21,0x21,0x1c,0x31,0x29,0x1b,0x1d,0x25,0x25,0x28,0x16,0x0a,0x17,0x22,0x16, +0x32,0x32,0x0c,0x00,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x14,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x1b,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x1d,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, +0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x2c,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28, +0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x24,0x24,0x24,0x24,0x24,0x24, +0x24,0x24,0x24,0x24,0x24,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x18,0x22,0x24,0x0e,0x0a,0x0e,0x0a,0x24,0x1c,0x25,0x1f,0x1c,0x18,0x1b,0x18,0x1e,0x1d,0x15,0x15,0x38,0x29,0x3a,0x2c,0x31,0x2a,0x2d,0x21,0x2d,0x21,0x2d,0x21,0x1f,0x17,0x1d,0x19,0x1d,0x19,0x1d,0x19,0x1b,0x10,0x18, +0x0c,0x26,0x1d,0x2b,0x22,0x43,0x32,0x1c,0x1d,0x22,0x23,0x28,0x2b,0x26,0x1d,0x31,0x27,0x1b,0x14,0x1c,0x19,0x1f,0x18,0x2f,0x24,0x1f,0x1a,0x1c,0x1d,0x1c,0x1d,0x18,0x14,0x18,0x13,0x18,0x12,0x1a,0x1a,0x0f,0x22,0x10,0x30,0x21,0x11,0x1d,0x1f,0x17,0x26,0x1c,0x13,0x11,0x1d,0x1d,0x1d,0x18,0x0c,0x26,0x1e,0x12,0x11,0x1f,0x17,0x24, +0x13,0x27,0x1e,0x1f,0x17,0x22,0x1d,0x1d,0x19,0x25,0x1c,0x1e,0x11,0x1b,0x15,0x26,0x15,0x1b,0x2b,0x18,0x1c,0x2d,0x0d,0x39,0x2d,0x2d,0x3b,0x2c,0x2e,0x2e,0x2c,0x2c,0x2e,0x1a,0x18,0x1f,0x23,0x2d,0x23,0x2f,0x0c,0x17,0x1d,0x2b,0x33,0x23,0x33,0x1f,0x1f,0x28,0x23,0x39,0x2e,0x1a,0x2e,0x11,0x2e,0x11,0x1d,0x1d,0x1d,0x1d,0x2a,0x2a, +0x2a,0x2a,0x32,0x19,0x19,0x32,0x26,0x19,0x19,0x26,0x21,0x11,0x11,0x21,0x1d,0x1d,0x1d,0x1d,0x26,0x11,0x11,0x2a,0x26,0x11,0x11,0x2a,0x15,0x15,0x19,0x19,0x1a,0x1a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4d,0x1a,0x14,0x1c,0x1a, +0x25,0x1d,0x1d,0x2c,0x21,0x25,0x26,0x2a,0x29,0x1d,0x19,0x32,0x28,0x34,0x2b,0x22,0x1d,0x10,0x10,0x1d,0x20,0x14,0x1e,0x1a,0x1d,0x18,0x25,0x28,0x14,0x1d,0x15,0x0b,0x13,0x1b,0x1c,0x0b,0x0b,0x09,0x0b,0x13,0x13,0x13,0x16,0x4a,0x64,0x11,0x15,0x07,0x0d,0x13,0x16,0x10,0x19,0x1a,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13, +0x18,0x18,0x18,0x18,0x18,0x42,0x1b,0x26,0x2e,0x2d,0x20,0x17,0x1c,0x24,0x25,0x18,0x10,0x21,0x1a,0x22,0x1c,0x21,0x1b,0x1b,0x25,0x1e,0x1d,0x1a,0x25,0x1f,0x2a,0x17,0x1a,0x20,0x10,0x1d,0x11,0x11,0x0c,0x2c,0x1d,0x1c,0x1a,0x1a,0x1d,0x2e,0x2e,0x2f,0x32,0x32,0x1b,0x19,0x0e,0x19,0x17,0x1e,0x17,0x21,0x0c,0x1c,0x1e,0x2b,0x2b,0x1f, +0x1b,0x1d,0x1b,0x1a,0x17,0x1a,0x17,0x18,0x0f,0x11,0x0c,0x0b,0x12,0x1d,0x20,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x10,0x10,0x00,0x0e,0x0e,0x0e,0x0d,0x0d,0x54,0x32,0x2c,0x34,0x0e,0x0e,0x10,0x14,0x0d,0x0d,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x0e,0x00,0x2e,0x11,0x11,0x2e,0x0d,0x19, +0x19,0x43,0x32,0x32,0x43,0x2e,0x19,0x19,0x2e,0x19,0x19,0x15,0x15,0x00,0x00,0x12,0x25,0x1e,0x24,0x1d,0x3f,0x34,0x23,0x1b,0x23,0x1b,0x43,0x32,0x26,0x1d,0x13,0x10,0x1f,0x00,0x22,0x1b,0x11,0x0f,0x08,0x19,0x11,0x11,0x0d,0x0a,0x17,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0b,0x1a,0x15,0x1e,0x1d,0x1b,0x30,0x28,0x28,0x27,0x29, +0x2f,0x1f,0x22,0x1e,0x14,0x2e,0x38,0x16,0x3a,0x19,0x2a,0x2e,0x2e,0x2e,0x15,0x26,0x32,0x26,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x1d,0x1d,0x1d,0x2a,0x19,0x19,0x2e,0x11,0x11,0x2e,0x11,0x11,0x2e,0x19,0x19,0x00,0x15,0x2a,0x11,0x11,0x32,0x19,0x19,0x26,0x19,0x19,0x21,0x0f,0x0f, +0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x4b,0x4b,0x2c,0x00,0x00,0x2c,0x2c,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x21,0x1f,0x20,0x20,0x2c,0x20,0x20,0x28,0x31,0x21,0x20,0x35,0x20,0x20,0x2f,0x20,0x22,0x28,0x20,0x26,0x2a,0x2e,0x20,0x26,0x20,0x23,0x1f,0x23, +0x1f,0x21,0x22,0x1f,0x27,0x1e,0x21,0x27,0x1f,0x1f,0x1c,0x27,0x20,0x20,0x20,0x23,0x16,0x1a,0x20,0x27,0x27,0x1b,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x14,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x04,0x1c,0xd0,0x00,0x00,0x01,0x42,0x01,0x00,0x00,0x07,0x00,0x42,0x00,0x0d,0x00,0x7e,0x03,0x77, +0x03,0x7f,0x03,0x8a,0x03,0x8c,0x03,0xa1,0x05,0x2f,0x05,0x56,0x05,0x5f,0x05,0x87,0x05,0x8a,0x05,0x8f,0x05,0xc7,0x05,0xea,0x05,0xf4,0x06,0x1c,0x06,0xff,0x07,0x7f,0x07,0xc9,0x08,0xb4,0x08,0xbd,0x08,0xff,0x09,0x6f,0x09,0xef,0x09,0xf3,0x0a,0x6f,0x0a,0xef,0x0a,0xf1,0x0b,0x6f,0x0b,0xef,0x0b,0xf9,0x0c,0x6f,0x0c,0xef,0x0d,0x6f, +0x0e,0x3f,0x0e,0x59,0x0e,0xd9,0x0f,0x29,0x10,0x49,0x10,0xc5,0x10,0xc7,0x10,0xcd,0x10,0xff,0x17,0xdb,0x17,0xe9,0x18,0x19,0x19,0xda,0x1c,0xbf,0x1d,0xca,0x1f,0x15,0x1f,0x1d,0x1f,0x45,0x1f,0x4d,0x1f,0x57,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x7d,0x1f,0xb4,0x1f,0xc4,0x1f,0xd3,0x1f,0xdb,0x1f,0xef,0x1f,0xf4,0x1f,0xfe,0x20,0x22, +0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3e,0x20,0x44,0x20,0x5f,0x20,0x71,0x20,0x8e,0x20,0x9c,0x20,0xbf,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x17,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4e,0x21,0x5f,0x21,0x6f,0x21,0x89,0x21,0x94,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f,0x22,0x12,0x22,0x15, +0x22,0x1a,0x22,0x1f,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x61,0x22,0x65,0x22,0xf2,0x24,0xff,0x25,0xa1,0x25,0xac,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xcc,0x25,0xcf,0x25,0xd9,0x25,0xe6,0x26,0x61,0x26,0x63,0x26,0x66,0x26,0x6f,0x27,0x7f,0x2c,0x7f,0x2d,0x25,0x2d,0x27,0x2d,0x2d,0x2d,0xff,0x2e,0x17, +0x2e,0x3b,0xa4,0xff,0xa6,0x29,0xa6,0x9f,0xa7,0xae,0xa7,0xb7,0xa7,0xff,0xab,0x65,0xfb,0x06,0xfb,0x17,0xfb,0x36,0xfb,0x3c,0xfb,0x3e,0xfb,0x41,0xfb,0x44,0xfb,0xc1,0xfb,0xff,0xfc,0x63,0xfc,0xf4,0xfd,0x3f,0xfd,0xf2,0xfd,0xf4,0xfd,0xfd,0xfe,0x23,0xfe,0x58,0xfe,0x74,0xfe,0xfc,0xfe,0xff,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d, +0x00,0x20,0x00,0xa0,0x03,0x7a,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0xa3,0x05,0x31,0x05,0x59,0x05,0x61,0x05,0x89,0x05,0x8d,0x05,0x91,0x05,0xd0,0x05,0xef,0x06,0x00,0x06,0x1e,0x07,0x50,0x07,0xc0,0x08,0xa0,0x08,0xb6,0x08,0xd4,0x09,0x66,0x09,0xe6,0x09,0xf2,0x0a,0x66,0x0a,0xe6,0x0a,0xf1,0x0b,0x66,0x0b,0xe6,0x0b,0xf9,0x0c,0x66, +0x0c,0xe6,0x0d,0x66,0x0e,0x3f,0x0e,0x50,0x0e,0xd0,0x0f,0x20,0x10,0x40,0x10,0xa0,0x10,0xc7,0x10,0xcd,0x10,0xd0,0x17,0xdb,0x17,0xe0,0x18,0x10,0x19,0xd0,0x1c,0x90,0x1d,0x00,0x1d,0xfe,0x1f,0x18,0x1f,0x20,0x1f,0x48,0x1f,0x50,0x1f,0x59,0x1f,0x5b,0x1f,0x5d,0x1f,0x5f,0x1f,0x80,0x1f,0xb6,0x1f,0xc6,0x1f,0xd6,0x1f,0xdd,0x1f,0xf2, +0x1f,0xf6,0x20,0x00,0x20,0x26,0x20,0x28,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44,0x20,0x5e,0x20,0x70,0x20,0x74,0x20,0x90,0x20,0xa0,0x20,0xe3,0x20,0xf0,0x21,0x05,0x21,0x13,0x21,0x16,0x21,0x22,0x21,0x26,0x21,0x2e,0x21,0x33,0x21,0x4d,0x21,0x50,0x21,0x6c,0x21,0x7a,0x21,0x90,0x21,0x97,0x21,0x99,0x22,0x02,0x22,0x06,0x22,0x0f, +0x22,0x11,0x22,0x15,0x22,0x19,0x22,0x1e,0x22,0x29,0x22,0x2b,0x22,0x34,0x22,0x36,0x22,0x48,0x22,0x60,0x22,0x64,0x22,0xf2,0x24,0xff,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xba,0x25,0xbc,0x25,0xc4,0x25,0xca,0x25,0xcf,0x25,0xd8,0x25,0xe6,0x26,0x60,0x26,0x63,0x26,0x65,0x26,0x6f,0x27,0x76,0x2c,0x60,0x2d,0x00,0x2d,0x27,0x2d,0x2d, +0x2d,0xe0,0x2e,0x17,0x2e,0x32,0xa4,0xd0,0xa6,0x20,0xa6,0x40,0xa7,0x00,0xa7,0xb0,0xa7,0xf7,0xab,0x30,0xfb,0x00,0xfb,0x13,0xfb,0x1d,0xfb,0x38,0xfb,0x3e,0xfb,0x40,0xfb,0x43,0xfb,0x46,0xfb,0xd3,0xfc,0x5e,0xfc,0xf2,0xfd,0x3c,0xfd,0xf2,0xfd,0xf4,0xfd,0xfa,0xfe,0x20,0xfe,0x58,0xfe,0x70,0xfe,0x76,0xfe,0xff,0xff,0xfc,0xff,0xff, +0xff,0xf5,0xff,0xe3,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0x19,0x00,0x00,0x00,0x00,0x07,0x2a,0x07,0x28,0x07,0x27,0x07,0x26,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x0c,0x00,0x00,0x0b,0x9f,0x00,0x00,0x06,0x70,0x05,0xfa,0x0a,0x5b,0x05,0x84,0x05,0x0e,0x09,0x5e,0x04,0x98,0x04,0x22,0x08,0x57, +0x03,0xac,0x03,0x36,0x02,0xc0,0xfa,0x4d,0x01,0xe0,0x01,0x6a,0x01,0x24,0x00,0x0e,0xfb,0x42,0xfe,0xfe,0xfe,0xf9,0x00,0x00,0xfc,0x76,0xf8,0x82,0xf8,0x5c,0xf6,0xa6,0xf8,0x1f,0x00,0x00,0x00,0x00,0xe4,0x77,0xe4,0x75,0xe4,0x73,0xe4,0x71,0xe4,0x70,0xe4,0x6f,0xe4,0x6e,0xe4,0x6d,0xe4,0x6b,0xe4,0x6a,0xe4,0x69,0xe4,0x67,0xe4,0x66, +0xe4,0x64,0xe4,0x63,0x00,0x00,0xe0,0x86,0x00,0x00,0x00,0x00,0xe0,0x85,0x00,0x00,0xe0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xaa,0xea,0x32,0xe0,0x39,0xe0,0x2c,0x00,0x00,0xdf,0x6b,0xdf,0x79,0xe0,0x69,0xf3,0x1f,0xe9,0x97,0x00,0x00,0xf1,0x80,0x00,0x00,0xe9,0x9c,0xef,0xeb,0xef,0xea,0xde,0x97,0xe9,0x2b, +0xde,0x8c,0x00,0x00,0xde,0xa7,0x00,0x00,0x00,0x00,0xe9,0x0a,0xde,0x71,0xe9,0x00,0xee,0xc4,0xde,0x60,0x00,0x00,0xde,0x31,0xe8,0x43,0xe3,0x83,0x00,0x00,0x00,0x00,0xe5,0x86,0xe5,0x7f,0xe5,0x7e,0xe5,0x77,0x00,0x00,0xdb,0x74,0xe5,0x65,0xdb,0x5e,0x00,0x00,0xe4,0xdd,0xe4,0xdc,0xeb,0x1a,0x00,0x00,0x00,0x00,0xdf,0x35,0xe2,0xa3, +0xe2,0x9e,0xe3,0x30,0xda,0x43,0xe5,0x3b,0x68,0xf2,0x6a,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x9e,0x00,0x00,0x10,0x6c,0x10,0x6b,0x10,0x6a,0x10,0x69,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xf8,0x00,0x00,0x0c,0x71,0x15,0xfb,0x00,0x00,0x09,0x1a,0x14,0xa7,0x15,0x83,0x00,0x00,0x0c,0x0c,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x3e,0x06,0xec,0x06,0xf6,0x00,0x00,0x07,0x00,0x07,0x26,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x36,0x0a,0x3a,0x00,0x00,0x0a,0xa4,0x0a,0xae,0x0a,0xe6,0x0c,0xa8,0x00,0x00,0x0d,0x04,0x00,0x00,0x0d,0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0xac,0x0f,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x50,0x00,0x00,0x11,0x92,0x11,0xa2,0x00,0x00,0x11,0xa4,0x00,0x00,0x11,0xa6,0x11,0xa8,0x11,0xaa,0x11,0xde,0x11,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x24,0x00,0x00,0x12,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x12,0x52,0x00,0x00,0x12,0x52,0x12,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x4c,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x48,0x12,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x40,0x12,0x52,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x80,0x13,0x3e,0x14,0x9a,0x14,0xa8,0x14,0xb8,0x15,0x22,0x00,0x00,0x15,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x56,0x16,0x4c,0x16,0xa4,0x00,0x00,0x16,0xac,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0xae,0x00,0x00, +0x17,0xb8,0x00,0x00,0x00,0xa3,0x00,0xa4,0x00,0x84,0x00,0x85,0x02,0x3f,0x00,0x97,0x00,0xe7,0x00,0x86,0x00,0x8f,0x00,0x8c,0x00,0x9d,0x00,0xaa,0x00,0xa5,0x00,0x8a,0x00,0x8b,0x01,0x01,0x00,0x83,0x00,0x94,0x08,0x96,0x08,0x97,0x00,0x8e,0x00,0x98,0x00,0x88,0x00,0xc3,0x00,0xdd,0x08,0x98,0x00,0x9e,0x00,0xab,0x00,0xf4,0x00,0xf3, +0x00,0xf5,0x00,0xa2,0x00,0xad,0x00,0xc9,0x00,0xc7,0x00,0xae,0x00,0x62,0x00,0x63,0x00,0x91,0x00,0x64,0x00,0xcb,0x00,0x65,0x00,0xc8,0x00,0xca,0x00,0xcf,0x00,0xcc,0x00,0xcd,0x00,0xce,0x00,0xe8,0x00,0x66,0x00,0xd2,0x00,0xd0,0x00,0xd1,0x00,0xaf,0x00,0x67,0x00,0xef,0x00,0x92,0x00,0xd5,0x00,0xd3,0x00,0xd4,0x00,0x68,0x00,0xea, +0x00,0xec,0x00,0x89,0x00,0x6a,0x00,0x69,0x00,0x6b,0x00,0x6d,0x00,0x6c,0x00,0x6e,0x00,0xa0,0x00,0x6f,0x00,0x71,0x00,0x70,0x00,0x72,0x00,0x73,0x00,0x75,0x00,0x74,0x00,0x76,0x00,0x77,0x00,0xe9,0x00,0x78,0x00,0x7a,0x00,0x79,0x00,0x7b,0x00,0x7d,0x00,0x7c,0x00,0xb8,0x00,0xa1,0x00,0x7f,0x00,0x7e,0x00,0x80,0x00,0x81,0x00,0xeb, +0x00,0xed,0x00,0xba,0x01,0x45,0x01,0x46,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x00,0xfc,0x00,0xfd,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x00,0xfe,0x00,0xff,0x01,0x07,0x01,0x08,0x01,0x09,0x01,0x00,0x01,0x4b,0x01,0x4c,0x01,0x4d,0x01,0x4e,0x01,0x4f,0x01,0x50,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x01,0x51,0x01,0x52, +0x00,0xf7,0x00,0xf8,0x01,0x53,0x01,0x54,0x01,0x55,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x5a,0x01,0x5b,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x00,0xf9,0x00,0xd6,0x01,0x39,0x01,0x3a,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x01,0x0e,0x01,0x0f,0x01,0x68,0x01,0x69,0x01,0x10, +0x01,0x11,0x01,0x12,0x01,0x13,0x00,0xe1,0x00,0xe2,0x01,0x14,0x01,0x15,0x01,0x6a,0x01,0x6b,0x01,0x16,0x01,0x17,0x01,0x3b,0x01,0x6c,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x01,0x18,0x01,0x19,0x00,0xb0,0x00,0xb1,0x01,0x1a,0x01,0x1b,0x01,0x72,0x01,0x73,0x01,0x1c,0x01,0x1d,0x01,0x1e,0x01,0x1f,0x01,0x74,0x01,0x75, +0x00,0xfa,0x00,0xfb,0x00,0xe3,0x00,0xe4,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x01,0x7c,0x01,0x7d,0x01,0x24,0x01,0x25,0x01,0x26,0x01,0x27,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x00,0xbb,0x01,0x28,0x01,0x29,0x01,0x2a,0x01,0x2b,0x00,0xe5, +0x00,0xe6,0x01,0x84,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x02,0xcd,0x04,0xbf,0x04,0xc0,0x00,0xa7,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9,0x04,0xca,0x04,0xcb, +0x04,0xcc,0x04,0xcd,0x02,0x40,0x02,0x41,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x02,0x42,0x02,0x43,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7, +0x04,0xe8,0x04,0xe9,0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07, +0x05,0x08,0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88, +0x01,0x89,0x01,0x8a,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28,0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x02,0x3d,0x02,0x3e,0x02,0xaf,0x02,0xb0,0x05,0x3c,0x05,0x3d, +0x05,0x3e,0x05,0x3f,0x05,0x40,0x07,0x3e,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x02,0xe1,0x02,0xe2,0x05,0x47,0x05,0x48,0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x07,0x3f,0x07,0x40,0x07,0x41,0x06,0xac,0x07,0xe1,0x07,0xe2,0x07,0xe4,0x07,0xe5,0x07,0xe6,0x07,0xe7, +0x07,0xe8,0x07,0xe9,0x07,0xea,0x07,0xeb,0x0a,0xbf,0x0a,0xc0,0x0a,0xc1,0x0a,0xc2,0x0a,0xc3,0x0a,0xc4,0x0a,0xc5,0x0a,0xc6,0x0a,0xc7,0x0a,0xc8,0x0a,0xc9,0x0a,0xca,0x0a,0xcb,0x0a,0xcc,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x02,0xce,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62, +0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68,0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82, +0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88,0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2, +0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8,0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x07,0x42,0x07,0x43,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c,0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83, +0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x00,0xd7,0x00,0xe0,0x06,0x8c,0x00,0xd9,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x00,0xda,0x00,0xdb,0x00,0xdc,0x00,0xdf,0x00,0xd8,0x00,0xde, +0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x07,0x44,0x07,0x45,0x07,0x46,0x07,0x47,0x07,0x48,0x07,0x49,0x07,0x4a,0x07,0x4b,0x07,0x4c,0x07,0x4d,0x07,0x4e,0x07,0x4f,0x07,0x50,0x07,0x51,0x07,0x52, +0x07,0x53,0x07,0x54,0x02,0x46,0x02,0x47,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x02,0x44,0x04,0x69,0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c, +0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x02,0x45,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b, +0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9,0x04,0xaa,0x04,0xab,0x04,0xac,0x07,0x39,0x07,0x55,0x07,0x56,0x07,0x57,0x07,0x58,0x07,0x59,0x07,0x5a,0x07,0x5b,0x07,0x5c,0x07,0xec,0x07,0xed,0x07,0xee,0x07,0xef,0x07,0xf0,0x07,0x5d, +0x07,0x5e,0x07,0x5f,0x04,0xad,0x04,0xae,0x04,0xaf,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x13,0x46,0x13,0x47,0x13,0x48,0x13,0x49,0x06,0x73,0x06,0x74,0x13,0x4a,0x13,0x4b,0x06,0x75,0x0a,0xcd,0x0a,0xce,0x0a,0xcf,0x01,0x9e,0x14,0x19, +0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x8b,0x01,0xa2,0x01,0xa3,0x01,0xa4,0x01,0xa6,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0x2c,0x00,0xa9,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0x2d,0x01,0xae,0x01,0xaf,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0x2e,0x01,0xba, +0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xc3,0x01,0x2f,0x01,0xc4,0x01,0xc5,0x01,0x30,0x01,0x31,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x01,0xcd,0x01,0xce,0x01,0xcf,0x02,0x37,0x01,0xd0,0x01,0xd1,0x01,0x32,0x01,0x33,0x01,0xd2,0x01,0x34,0x01,0xd3, +0x01,0xd4,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x01,0xd9,0x01,0xda,0x13,0x4c,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8,0x05,0xc9,0x05,0xca, +0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x07,0x60,0x07,0x61,0x08,0xc0,0x08,0xc1,0x08,0xc2,0x07,0xf1,0x07,0xf2,0x07,0xf3,0x07,0xf4,0x02,0xb1,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x02,0xb5,0x01,0xe0, +0x02,0xb6,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x02,0xb3,0x01,0xe5,0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x01,0xf6,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd,0x01,0xfe, +0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d,0x02,0x1e, +0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0xb2,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0xb7,0x02,0x2c,0x02,0xb8,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0xb4,0x02,0x31,0x02,0x32,0x05,0xda,0x05,0xdb,0x05,0xdc,0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1, +0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc,0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x0b,0x1c, +0x06,0x01,0x06,0x02,0x08,0xb4,0x08,0xb5,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x02,0x33,0x02,0x34,0x02,0xb9,0x02,0xba,0x06,0x07,0x06,0x08,0x02,0xbb,0x02,0xbc,0x06,0x09,0x06,0x0a,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x02,0xc1,0x02,0xc2,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12, +0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x08,0xb6,0x08,0xb7,0x06,0x26, +0x06,0x27,0x08,0xb8,0x08,0xb9,0x06,0x28,0x06,0x29,0x08,0xba,0x08,0xbb,0x0a,0xd0,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c,0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41, +0x02,0xcf,0x02,0xd0,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x07,0xf5,0x07,0xf6,0x06,0x4e,0x06,0x4f,0x0a,0xd1,0x0a,0xd2,0x0a,0xd3,0x0a,0xd4,0x0a,0xd5,0x0a,0xd6,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57, +0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c,0x06,0x5d,0x06,0x5e,0x06,0x5f,0x0a,0xd7,0x0a,0xd8,0x0a,0xd9,0x0a,0xda,0x13,0x4d,0x13,0x4e,0x13,0x4f,0x13,0x50,0x13,0x51,0x13,0x52,0x0b,0x1d,0x0b,0x1e,0x0b,0x1f,0x0b,0x20,0x13,0x53,0x13,0x54,0x13,0x55,0x13,0x56,0x13,0x57,0x13,0x58,0x14,0x1a,0x14,0x1b,0x13,0x59,0x13,0x5a, +0x14,0x1c,0x14,0x1d,0x14,0x1e,0x14,0x1f,0x14,0x20,0x14,0x21,0x14,0x22,0x14,0x23,0x11,0x8a,0x11,0x8b,0x0f,0xc4,0x0b,0xbf,0x0b,0xc0,0x0b,0xc1,0x0b,0xc2,0x0b,0xc3,0x0b,0xc4,0x0b,0xc5,0x0b,0xc6,0x0b,0xc7,0x0b,0xc8,0x0b,0xc9,0x0b,0xca,0x0b,0xcb,0x0b,0xcc,0x0b,0xcd,0x0b,0xce,0x0b,0xcf,0x0b,0xd0,0x0b,0xd1,0x0b,0xd2,0x0b,0xd3, +0x0b,0xd4,0x0b,0xd5,0x0b,0xd6,0x0b,0xd7,0x0b,0xd8,0x0b,0xd9,0x0b,0xda,0x0b,0xdb,0x0b,0xdc,0x0b,0xdd,0x0b,0x53,0x0b,0x54,0x0b,0x55,0x0b,0x56,0x0b,0x57,0x0b,0x58,0x0b,0x59,0x0b,0x5a,0x0b,0x5b,0x0b,0x5c,0x0b,0xde,0x0b,0x5d,0x0b,0x5e,0x0b,0x5f,0x0b,0x60,0x0b,0x61,0x0b,0x62,0x0b,0x63,0x0b,0x64,0x0b,0x65,0x0b,0x66,0x0b,0x67, +0x0b,0xdf,0x0b,0xb9,0x14,0xdf,0x0b,0x83,0x0b,0x84,0x0b,0x85,0x0b,0x86,0x0b,0x87,0x0a,0x44,0x0a,0x45,0x0a,0x46,0x0a,0x47,0x13,0x45,0x14,0x03,0x0e,0x13,0x0e,0x14,0x0e,0x16,0x0e,0x17,0x0e,0x18,0x0a,0x6a,0x08,0xf8,0x0a,0x49,0x0a,0x48,0x0a,0x4a,0x0a,0x4b,0x0a,0x4c,0x0a,0x4d,0x0a,0x4e,0x0a,0x4f,0x0a,0x53,0x0e,0x1a,0x0e,0x1b, +0x0e,0x1c,0x0e,0x1d,0x0e,0x1e,0x09,0x05,0x13,0x92,0x0a,0x6b,0x09,0x06,0x0e,0x20,0x09,0x07,0x09,0x08,0x09,0x09,0x09,0x0a,0x09,0x0b,0x09,0x0c,0x09,0x0d,0x09,0x0e,0x09,0x0f,0x09,0x10,0x09,0x11,0x09,0x12,0x09,0x13,0x09,0x14,0x09,0x15,0x09,0x16,0x09,0x17,0x09,0x18,0x09,0x19,0x09,0x1a,0x09,0x1b,0x09,0x1c,0x09,0x1d,0x09,0x1e, +0x09,0x1f,0x09,0x20,0x0e,0x3f,0x0e,0x43,0x0e,0x47,0x0e,0x4b,0x0e,0x4f,0x09,0x21,0x09,0x22,0x09,0x23,0x09,0x24,0x09,0x25,0x09,0x26,0x09,0x27,0x09,0x28,0x09,0x29,0x09,0x2a,0x09,0x2b,0x09,0x2c,0x09,0x2d,0x09,0x2e,0x09,0x2f,0x09,0x30,0x09,0x31,0x09,0x32,0x09,0x33,0x09,0x37,0x09,0x7e,0x09,0x7f,0x0a,0x50,0x0a,0x51,0x0a,0x52, +0x0a,0x6c,0x0a,0x6d,0x0a,0x6e,0x0a,0x6f,0x0a,0x70,0x0a,0x71,0x09,0x77,0x08,0xd7,0x08,0xd8,0x08,0xd9,0x08,0xda,0x08,0xdb,0x08,0xdc,0x08,0xdd,0x08,0xde,0x08,0xdf,0x08,0xe0,0x09,0x6a,0x09,0x03,0x0e,0x6d,0x09,0x6b,0x09,0x3e,0x09,0x7c,0x09,0x73,0x09,0x80,0x09,0x82,0x09,0x84,0x0e,0x73,0x09,0x86,0x09,0x88,0x09,0x89,0x09,0x8a, +0x09,0x5b,0x09,0x8c,0x09,0x8e,0x09,0x90,0x09,0x92,0x09,0x40,0x09,0x94,0x09,0x96,0x09,0x98,0x09,0x9b,0x09,0x9e,0x09,0xa1,0x09,0xa4,0x09,0x42,0x09,0xa7,0x09,0x5d,0x09,0xaa,0x09,0xab,0x09,0xac,0x09,0xad,0x09,0xae,0x09,0xaf,0x09,0xb0,0x09,0xb1,0x09,0x5e,0x09,0xb2,0x09,0xb3,0x09,0xb4,0x09,0xb5,0x09,0xb6,0x09,0xb7,0x09,0x45, +0x09,0xb8,0x09,0xb9,0x09,0xbb,0x09,0xbd,0x09,0xbf,0x09,0xc1,0x09,0xc3,0x09,0xc4,0x09,0xc8,0x09,0xc9,0x09,0xcc,0x09,0x6c,0x09,0xcf,0x09,0xd2,0x09,0xd5,0x09,0xd6,0x09,0x46,0x09,0xd7,0x09,0xd9,0x09,0xdb,0x09,0xdd,0x09,0xdf,0x09,0x48,0x09,0xe1,0x09,0xe3,0x09,0xe5,0x09,0xe7,0x09,0xe9,0x09,0xeb,0x09,0xed,0x09,0xef,0x09,0xf1, +0x09,0xf3,0x09,0x5f,0x09,0xf5,0x09,0xf6,0x09,0xf8,0x08,0xf1,0x09,0xfa,0x09,0x4e,0x09,0x60,0x09,0x63,0x09,0x64,0x09,0xfd,0x09,0xfe,0x09,0xff,0x0a,0x00,0x0a,0x01,0x0a,0x02,0x0a,0x03,0x0a,0x04,0x09,0x4a,0x0a,0x05,0x0a,0x07,0x0a,0x0a,0x0a,0x0b,0x0a,0x0d,0x09,0x65,0x09,0x67,0x09,0x69,0x0b,0x19,0x09,0x74,0x0a,0x0f,0x0a,0x10, +0x09,0x75,0x0a,0x11,0x0a,0x12,0x0a,0x13,0x0a,0x14,0x0a,0x15,0x0a,0x16,0x0a,0x17,0x0a,0x18,0x0a,0x19,0x0a,0x1a,0x0a,0x1b,0x0a,0x1c,0x0a,0x1d,0x0a,0x1e,0x0a,0x1f,0x0a,0x20,0x0a,0x21,0x0a,0x22,0x0e,0xeb,0x0a,0x23,0x0a,0x54,0x0a,0x56,0x09,0x4f,0x09,0x50,0x09,0x51,0x09,0x52,0x09,0x53,0x09,0x54,0x09,0x55,0x09,0x56,0x09,0x57, +0x09,0x58,0x0a,0x24,0x0a,0x26,0x0a,0x28,0x0a,0x2c,0x0a,0x2d,0x0a,0x58,0x0a,0x72,0x0a,0x74,0x0a,0x76,0x0a,0x78,0x0a,0x7a,0x0a,0x7c,0x0a,0x7e,0x0a,0x80,0x0a,0x83,0x0a,0x86,0x0a,0x87,0x0a,0x88,0x0a,0x89,0x0a,0x8b,0x0a,0x8f,0x0a,0x93,0x0a,0x97,0x0a,0x9a,0x0a,0x9d,0x0a,0xa0,0x0a,0xa3,0x0a,0xa6,0x0a,0xa8,0x0a,0xaa,0x0a,0xac, +0x0a,0xae,0x0a,0xb0,0x0a,0xb4,0x0a,0xb5,0x0a,0xb6,0x0f,0x16,0x0f,0x1a,0x0f,0x1e,0x0f,0x22,0x0f,0x24,0x0f,0x28,0x0f,0x2a,0x0f,0x2c,0x0f,0x30,0x0f,0x34,0x0f,0x38,0x0f,0x3a,0x0f,0x3c,0x0f,0x3e,0x0f,0x40,0x0f,0x44,0x0f,0x48,0x0f,0x4c,0x13,0x02,0x14,0x04,0x13,0x04,0x13,0x08,0x13,0x0c,0x13,0x10,0x13,0x14,0x13,0x18,0x13,0x1c, +0x13,0x20,0x13,0x24,0x13,0x26,0x13,0x28,0x14,0x08,0x14,0x09,0x14,0x0b,0x14,0x0f,0x14,0x13,0x14,0x15,0x14,0x53,0x14,0x54,0x14,0x5d,0x14,0x5e,0x14,0x5f,0x14,0x60,0x14,0x61,0x14,0x62,0x14,0x63,0x14,0x64,0x14,0x65,0x14,0x66,0x14,0x67,0x14,0x68,0x14,0x69,0x14,0x6a,0x14,0x6b,0x14,0x6c,0x13,0x2a,0x13,0x2b,0x13,0x2c,0x13,0x2d, +0x13,0x2e,0x13,0x2f,0x13,0x30,0x13,0x31,0x13,0x32,0x13,0x33,0x13,0x34,0x13,0x35,0x13,0x36,0x13,0x37,0x13,0x38,0x13,0x39,0x13,0x3a,0x13,0x3b,0x13,0x3c,0x13,0x3d,0x13,0x3e,0x13,0x3f,0x13,0x40,0x13,0x41,0x13,0x42,0x13,0x43,0x13,0x44,0x14,0x17,0x0c,0x08,0x0c,0x09,0x0c,0x0a,0x0c,0x0b,0x0c,0x0c,0x0c,0x0d,0x0c,0x0e,0x0c,0x0f, +0x0c,0x10,0x0c,0x11,0x0c,0x12,0x0c,0x13,0x0c,0x14,0x0c,0x15,0x0c,0x16,0x0c,0x17,0x0c,0x18,0x0c,0x19,0x0c,0x1a,0x0c,0x1b,0x0c,0x1c,0x0c,0x1d,0x0c,0x1e,0x0c,0x1f,0x0c,0x20,0x0c,0x21,0x0c,0x22,0x0c,0x23,0x0c,0x24,0x0c,0x25,0x0c,0x26,0x0c,0x27,0x0c,0x28,0x0c,0x29,0x0c,0x2a,0x0c,0x2b,0x0c,0x2c,0x0c,0x2d,0x0c,0x2e,0x0c,0x2f, +0x0c,0x30,0x0c,0x31,0x0c,0x32,0x0c,0x33,0x0c,0x34,0x0f,0xc7,0x0f,0xc8,0x0f,0xc9,0x07,0x62,0x07,0x63,0x07,0x64,0x07,0x65,0x07,0x66,0x07,0x67,0x07,0x68,0x07,0x69,0x07,0x6a,0x07,0x6b,0x07,0x6c,0x07,0x6d,0x07,0x6e,0x07,0x6f,0x07,0x70,0x07,0x71,0x07,0x72,0x07,0x73,0x07,0x74,0x07,0x75,0x07,0x76,0x07,0x77,0x07,0x78,0x07,0x79, +0x07,0x7a,0x07,0x7b,0x07,0x7c,0x07,0x7d,0x07,0x7e,0x07,0x7f,0x07,0x80,0x07,0x81,0x07,0x82,0x07,0x83,0x07,0x84,0x07,0x85,0x07,0x86,0x07,0x87,0x07,0x88,0x07,0x89,0x07,0x8a,0x07,0x8b,0x07,0x8c,0x07,0x8d,0x07,0x8e,0x07,0x8f,0x07,0x90,0x07,0x91,0x07,0x92,0x07,0x93,0x07,0x94,0x07,0x95,0x07,0x96,0x07,0x97,0x07,0x98,0x07,0x99, +0x07,0x9a,0x07,0x9b,0x07,0x9c,0x07,0x9d,0x07,0x9e,0x07,0x9f,0x07,0xa0,0x07,0xa1,0x07,0xa2,0x07,0xa3,0x07,0xa4,0x07,0xa5,0x07,0xa6,0x07,0xa7,0x07,0xa8,0x07,0xa9,0x07,0xaa,0x07,0xab,0x07,0xac,0x07,0xad,0x07,0xae,0x07,0xaf,0x07,0xb0,0x07,0xb1,0x07,0xb2,0x07,0xb3,0x07,0xb4,0x07,0xb5,0x07,0xb6,0x07,0xb7,0x07,0xb8,0x07,0xb9, +0x07,0xba,0x07,0xbb,0x07,0xbc,0x07,0xbd,0x07,0xbe,0x07,0xbf,0x07,0xc0,0x07,0xc1,0x07,0xc2,0x07,0xc3,0x07,0xc4,0x07,0xc5,0x07,0xc6,0x07,0xc7,0x07,0xc8,0x07,0xc9,0x07,0xca,0x07,0xcb,0x07,0xcc,0x07,0xd1,0x07,0xf7,0x07,0xf8,0x07,0xf9,0x07,0xfa,0x07,0xfb,0x07,0xfc,0x07,0xfd,0x07,0xfe,0x07,0xff,0x08,0x00,0x08,0x01,0x08,0x02, +0x08,0x03,0x08,0x04,0x08,0x05,0x08,0x07,0x08,0x08,0x08,0x09,0x08,0x0a,0x08,0x0b,0x08,0x0c,0x08,0x0d,0x08,0x0e,0x08,0x0f,0x08,0x10,0x08,0x11,0x08,0x12,0x08,0x13,0x08,0x14,0x08,0x15,0x08,0x16,0x08,0x17,0x08,0x18,0x08,0x19,0x08,0x1a,0x08,0x1b,0x08,0x1c,0x08,0x1d,0x08,0x1e,0x08,0x1f,0x08,0x20,0x08,0x21,0x08,0x22,0x08,0x23, +0x08,0x24,0x08,0x25,0x08,0x26,0x08,0x27,0x08,0x28,0x08,0x29,0x08,0x2a,0x08,0x2b,0x08,0x2c,0x08,0x2d,0x08,0x2e,0x08,0x2f,0x08,0x30,0x08,0x31,0x08,0x32,0x08,0x33,0x08,0x34,0x08,0x35,0x08,0x36,0x08,0x37,0x08,0x38,0x08,0x39,0x08,0x3a,0x08,0x3b,0x08,0x3c,0x08,0x3d,0x08,0x3e,0x08,0x3f,0x08,0x40,0x08,0x41,0x08,0x42,0x08,0x43, +0x08,0x44,0x08,0x45,0x08,0x46,0x08,0x47,0x08,0x48,0x08,0x49,0x08,0x4a,0x08,0x4b,0x08,0x4c,0x08,0x4d,0x08,0x4e,0x08,0x4f,0x0a,0xdb,0x0a,0xdc,0x0a,0xdd,0x0a,0xde,0x0a,0xdf,0x0a,0xe0,0x0a,0xe1,0x0a,0xe2,0x0a,0xe3,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed, +0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb,0x02,0xfc,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d, +0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d, +0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a,0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x03,0x4c,0x03,0x4d, +0x03,0x4e,0x03,0x4f,0x03,0x50,0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x01,0x8c,0x01,0x8d,0x01,0x8e,0x01,0x8f,0x01,0x90,0x01,0x91,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67, +0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70,0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x13,0x5b,0x13,0x5c,0x0b,0x21,0x13,0x5d,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b,0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61, +0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b,0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81, +0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b,0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1, +0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x01,0x92,0x01,0x93,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x13,0x5e,0x13,0x5f,0x13,0x60,0x13,0x61,0x13,0x62,0x13,0x63,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83, +0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x03,0x8e,0x0a,0xfe,0x0a,0xff,0x0b,0x00,0x0b,0x01,0x0b,0x02,0x0b,0x03,0x0b,0x04,0x0b,0x05,0x0b,0x06,0x11,0x86,0x0b,0x07,0x0b,0x08,0x08,0xc3,0x08,0xc4,0x08,0xc5,0x08,0xc6,0x00,0x10,0x11,0x99,0x08,0xbc,0x00,0xb2,0x00,0xb3, +0x02,0x35,0x11,0x87,0x01,0x35,0x00,0xb6,0x00,0xb7,0x00,0xc4,0x01,0x94,0x00,0xb4,0x00,0xb5,0x00,0xc5,0x08,0xbd,0x00,0x82,0x00,0xc2,0x00,0x87,0x0b,0x23,0x0b,0x24,0x0b,0x25,0x0b,0x26,0x0b,0x27,0x0b,0x28,0x0b,0x29,0x0b,0x09,0x00,0xc6,0x01,0x3c,0x01,0x3d,0x08,0xbe,0x01,0x36,0x11,0x85,0x01,0x95,0x08,0x50,0x0b,0x0a,0x08,0x99, +0x08,0x95,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0xa0,0x08,0xa1,0x08,0xa2,0x08,0xa3,0x08,0xa4,0x01,0x37,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab,0x08,0xac,0x08,0xad,0x08,0xae,0x08,0xaf,0x08,0xb0,0x08,0xb1,0x08,0xb2,0x08,0xb3,0x08,0x51,0x08,0x52,0x08,0x53,0x08,0x54, +0x08,0x55,0x14,0x2e,0x14,0x2f,0x14,0x30,0x14,0x31,0x14,0x32,0x14,0x33,0x14,0x34,0x14,0x35,0x07,0xd2,0x07,0xd3,0x07,0xd4,0x00,0xf6,0x01,0x96,0x07,0xd5,0x07,0xd6,0x01,0x38,0x07,0xd7,0x07,0xd8,0x07,0xd9,0x07,0xda,0x00,0xbd,0x07,0xdb,0x07,0xdc,0x07,0xdd,0x07,0xde,0x07,0xdf,0x08,0x56,0x08,0x57,0x08,0x58,0x08,0x59,0x11,0x80, +0x11,0x81,0x0c,0xb7,0x0c,0xb6,0x11,0xa3,0x14,0x2a,0x13,0x91,0x13,0x90,0x14,0x2c,0x14,0x2d,0x02,0x36,0x07,0xe0,0x12,0xe2,0x12,0xe3,0x12,0xe4,0x0b,0x2a,0x0b,0x2b,0x12,0xe5,0x12,0xe6,0x12,0xe7,0x12,0xe8,0x12,0xe9,0x12,0xea,0x01,0x98,0x01,0x99,0x01,0x9a,0x01,0x9b,0x12,0xeb,0x12,0xf0,0x12,0xf1,0x12,0xf2,0x12,0xf3,0x12,0xf4, +0x12,0xf5,0x12,0xf6,0x12,0xf7,0x12,0xf8,0x12,0xf9,0x0a,0xe6,0x12,0xfa,0x12,0xfb,0x12,0xfc,0x12,0xfd,0x12,0xfe,0x00,0x9a,0x00,0xee,0x01,0x02,0x00,0xa6,0x00,0x93,0x0b,0x32,0x00,0x90,0x08,0xbf,0x0b,0x36,0x01,0x40,0x01,0x41,0x01,0x42,0x0b,0x37,0x00,0xb9,0x0b,0x3c,0x0a,0x43,0x0b,0x3f,0x11,0x88,0x08,0x83,0x08,0x84,0x08,0x85, +0x08,0x86,0x08,0x87,0x08,0x88,0x08,0x89,0x08,0x8a,0x08,0x8b,0x13,0x8f,0x0a,0xe7,0x0a,0xe8,0x0a,0xe9,0x0a,0xea,0x0a,0xeb,0x0a,0xec,0x0a,0xed,0x0a,0xee,0x0a,0xef,0x0a,0xf0,0x0a,0xf1,0x0a,0xf2,0x0a,0xf3,0x0b,0x43,0x13,0x93,0x13,0x94,0x13,0x64,0x0b,0x44,0x0b,0x45,0x0b,0x46,0x0a,0xf4,0x0a,0xf5,0x0a,0xf6,0x0a,0xf7,0x13,0x65, +0x13,0x66,0x13,0x67,0x13,0x68,0x13,0x69,0x13,0x6a,0x13,0x6b,0x13,0x6c,0x11,0x30,0x11,0x31,0x11,0x32,0x11,0x33,0x11,0x34,0x11,0x35,0x11,0x36,0x11,0x37,0x11,0x38,0x11,0x39,0x11,0x3a,0x11,0x3b,0x11,0x3c,0x11,0x3d,0x11,0x3e,0x11,0x3f,0x11,0x40,0x11,0x41,0x11,0x42,0x11,0x43,0x11,0x44,0x11,0x45,0x11,0x46,0x11,0x47,0x11,0x48, +0x11,0x49,0x11,0x4a,0x11,0x4b,0x11,0x4c,0x11,0x4d,0x11,0x4e,0x11,0x4f,0x11,0x50,0x11,0x51,0x11,0x52,0x11,0x53,0x11,0x54,0x11,0x55,0x11,0x56,0x11,0x57,0x11,0x58,0x11,0x59,0x11,0x5a,0x11,0x5b,0x11,0x5c,0x11,0x5d,0x11,0x5e,0x11,0x5f,0x11,0x60,0x11,0x61,0x11,0x62,0x11,0x63,0x13,0x77,0x13,0x78,0x13,0x79,0x13,0x7a,0x13,0x7b, +0x13,0x7c,0x13,0x7d,0x13,0x7e,0x11,0x64,0x11,0x65,0x11,0x66,0x11,0x67,0x11,0x68,0x11,0x69,0x11,0x6a,0x11,0x6b,0x11,0x6c,0x11,0x6d,0x11,0x6e,0x11,0x6f,0x11,0x70,0x11,0x71,0x11,0x72,0x11,0x73,0x11,0x74,0x11,0x75,0x11,0x76,0x11,0x77,0x11,0x78,0x11,0x79,0x11,0x7a,0x11,0x7b,0x11,0x7c,0x11,0x7d,0x11,0x7e,0x11,0x7f,0x14,0x24, +0x14,0x25,0x14,0x26,0x14,0x27,0x14,0x28,0x14,0x29,0x14,0x36,0x13,0x7f,0x14,0x37,0x14,0x38,0x14,0x39,0x14,0x3a,0x14,0x3b,0x14,0x3c,0x14,0x3d,0x14,0x3e,0x13,0x80,0x13,0x81,0x13,0x82,0x13,0x83,0x13,0x84,0x13,0x85,0x13,0x86,0x13,0x87,0x13,0x88,0x13,0x89,0x13,0x8a,0x13,0x8b,0x13,0x8c,0x13,0x8d,0x13,0x8e,0x0a,0xf8,0x0a,0xf9, +0x0a,0xfa,0x0a,0xfb,0x0b,0x47,0x0b,0x48,0x0b,0x49,0x0b,0x4a,0x0b,0x4b,0x0a,0xfc,0x0a,0xfd,0x12,0x63,0x12,0x64,0x12,0x65,0x12,0x66,0x12,0x67,0x12,0x68,0x12,0x69,0x12,0x6a,0x12,0x6b,0x12,0x6c,0x12,0x6d,0x12,0x6e,0x12,0x6f,0x12,0x70,0x12,0x71,0x12,0x72,0x12,0x73,0x12,0x74,0x12,0x75,0x12,0x76,0x12,0x77,0x12,0x78,0x12,0x79, +0x12,0x7a,0x12,0x7b,0x12,0x7c,0x12,0x7d,0x12,0x7e,0x12,0x7f,0x12,0x80,0x12,0x81,0x12,0x82,0x12,0x83,0x12,0x84,0x12,0x85,0x12,0x86,0x12,0x87,0x12,0x88,0x12,0x89,0x12,0x8a,0x12,0x8b,0x12,0x8c,0x12,0x8d,0x12,0x8e,0x12,0x8f,0x12,0x90,0x12,0x91,0x12,0x92,0x12,0x93,0x12,0x94,0x12,0x95,0x12,0x96,0x12,0x97,0x12,0x98,0x12,0x99, +0x12,0x9a,0x12,0x9b,0x12,0x9c,0x12,0x9d,0x12,0x9e,0x12,0x9f,0x12,0xa0,0x12,0xa1,0x12,0xa2,0x12,0xa3,0x12,0xa4,0x12,0xa5,0x12,0xa6,0x12,0xa7,0x12,0xa8,0x12,0xa9,0x12,0xaa,0x12,0xab,0x12,0xac,0x12,0xad,0x12,0xae,0x12,0xaf,0x12,0xb0,0x12,0xb1,0x12,0xb2,0x12,0xb3,0x12,0xb4,0x12,0xb5,0x12,0xb6,0x12,0xb7,0x12,0xb8,0x12,0xb9, +0x12,0xba,0x12,0xbb,0x12,0xbc,0x12,0xbd,0x12,0xbe,0x12,0xbf,0x12,0xc0,0x12,0xc1,0x12,0xc2,0x12,0xc3,0x12,0xc4,0x12,0xc5,0x12,0xc6,0x12,0xc7,0x12,0xc8,0x0b,0x4c,0x0b,0x4d,0x0b,0x4e,0x0b,0x4f,0x0b,0x50,0x12,0xc9,0x12,0xca,0x14,0x3f,0x12,0xcb,0x12,0xcc,0x12,0xcd,0x12,0xce,0x13,0x95,0x13,0x96,0x13,0x97,0x13,0x98,0x13,0x99, +0x13,0x9a,0x13,0x9b,0x13,0x9c,0x13,0x9d,0x13,0x9e,0x13,0x9f,0x13,0xa0,0x12,0xcf,0x12,0xd0,0x12,0xd1,0x12,0xd2,0x12,0xd3,0x12,0xd4,0x12,0xd5,0x12,0xd6,0x12,0xd7,0x12,0xd8,0x12,0xd9,0x13,0xa1,0x13,0xa2,0x13,0xa3,0x14,0x40,0x13,0xa4,0x13,0xa5,0x14,0x41,0x14,0x42,0x14,0x43,0x14,0x44,0x14,0x45,0x14,0x46,0x13,0xa6,0x12,0xda, +0x12,0xdb,0x12,0xdc,0x12,0xdd,0x12,0xde,0x12,0xdf,0x12,0xe0,0x12,0xe1,0x13,0xa7,0x13,0xa8,0x13,0xa9,0x13,0xaa,0x13,0xab,0x13,0xac,0x13,0xad,0x13,0xae,0x13,0xaf,0x13,0xb0,0x13,0xb1,0x13,0xb2,0x13,0xb3,0x13,0xb4,0x13,0xb5,0x13,0xb6,0x13,0xb7,0x13,0xb8,0x13,0xb9,0x13,0xba,0x13,0xbb,0x13,0xbc,0x13,0xbd,0x13,0xbe,0x13,0xbf, +0x13,0xc0,0x13,0xc1,0x13,0xc2,0x13,0xc3,0x13,0xc4,0x13,0xc5,0x13,0xc6,0x13,0xc7,0x13,0xc8,0x13,0xc9,0x13,0xca,0x13,0xcb,0x13,0xcc,0x13,0xcd,0x13,0xce,0x13,0xcf,0x13,0xd0,0x13,0xd1,0x13,0xd2,0x13,0xd3,0x13,0xd4,0x13,0xd5,0x13,0xd6,0x14,0x47,0x14,0x48,0x14,0x49,0x14,0x4a,0x13,0xd7,0x13,0xd8,0x0d,0xbb,0x00,0xc0,0x00,0xc1, +0x0d,0xbc,0x0d,0xbd,0x14,0x4b,0x14,0x4c,0x0b,0xe0,0x0b,0xe1,0x0b,0x8c,0x0b,0x8d,0x0b,0x8e,0x0b,0x8f,0x0b,0x90,0x0b,0x91,0x0b,0x92,0x0b,0x93,0x0b,0x94,0x0b,0x95,0x0b,0x96,0x0b,0x97,0x0b,0x98,0x0b,0x99,0x0b,0x9a,0x0b,0x9b,0x0b,0x9c,0x0b,0x9d,0x0b,0x9e,0x0b,0x9f,0x0b,0xa0,0x0b,0xa1,0x0b,0xa2,0x0b,0xa3,0x0b,0xae,0x0b,0xaf, +0x0b,0xb0,0x0b,0xb1,0x0b,0xb2,0x0b,0xb3,0x0b,0xb4,0x0b,0xb5,0x0b,0xb6,0x0b,0xb7,0x09,0x80,0x09,0x81,0x09,0x8e,0x0e,0x7c,0x09,0x8f,0x0e,0x7d,0x09,0x40,0x0e,0x82,0x09,0x41,0x0e,0x83,0x09,0x96,0x0e,0x86,0x09,0x97,0x0e,0x87,0x09,0x8c,0x0e,0x7a,0x09,0x8d,0x0e,0x7b,0x09,0x94,0x0e,0x84,0x09,0x95,0x0e,0x85,0x09,0x5b,0x0e,0x78, +0x09,0x5c,0x0e,0x79,0x09,0x6c,0x0e,0xa8,0x09,0x6d,0x09,0x6e,0x09,0xd2,0x0e,0xaa,0x09,0xd3,0x09,0xd4,0x09,0xa1,0x09,0xa2,0x09,0xa3,0x0e,0x8b,0x09,0x9e,0x09,0x9f,0x09,0xa0,0x0e,0x8a,0x09,0x42,0x09,0x43,0x09,0x44,0x0e,0x8d,0x09,0xa7,0x09,0xa8,0x09,0xa9,0x0e,0x8e,0x09,0xae,0x0e,0x94,0x09,0xad,0x0e,0x93,0x09,0xaf,0x0e,0x95, +0x09,0x5d,0x0e,0x8f,0x09,0x45,0x0b,0x0e,0x09,0x5e,0x0b,0x0f,0x09,0x46,0x0e,0xb1,0x09,0x47,0x0e,0xb2,0x09,0x48,0x0e,0xbd,0x09,0x49,0x0e,0xbe,0x09,0xe7,0x0e,0xc5,0x09,0xe8,0x0e,0xc6,0x09,0xe3,0x0e,0xc1,0x09,0xe4,0x0e,0xc2,0x09,0x5f,0x0e,0xcf,0x09,0xf5,0x0e,0xd0,0x0e,0xd1,0x0e,0xd2,0x09,0x4e,0x09,0x4d,0x09,0x60,0x09,0x72, +0x09,0x61,0x09,0x62,0x08,0xf1,0x08,0xf2,0x0e,0xd7,0x0e,0xd8,0x09,0x65,0x09,0x66,0x09,0x67,0x09,0x68,0x13,0xd9,0x13,0xda,0x13,0xdb,0x13,0xdc,0x13,0xdd,0x13,0xde,0x13,0xdf,0x13,0xe0,0x13,0xe1,0x13,0xe2,0x13,0xe3,0x13,0xe4,0x13,0xe5,0x13,0xe6,0x13,0xe7,0x13,0xe8,0x09,0xdd,0x0e,0xb9,0x09,0xde,0x0e,0xba,0x0a,0x00,0x0e,0xdf, +0x09,0xff,0x0e,0xde,0x0a,0x01,0x0e,0xe0,0x09,0x89,0x0a,0x04,0x0e,0xe3,0x09,0xfe,0x0e,0xdd,0x0a,0x02,0x0e,0xe1,0x0a,0x0b,0x0a,0x0c,0x0e,0xe7,0x0e,0xe8,0x0e,0x5f,0x0e,0x60,0x10,0xfe,0x10,0xff,0x11,0x00,0x11,0x01,0x11,0x02,0x11,0x03,0x11,0x04,0x11,0x05,0x11,0x06,0x11,0x07,0x11,0x08,0x11,0x09,0x11,0x0a,0x11,0x0b,0x11,0x0c, +0x11,0x0d,0x11,0x0e,0x11,0x0f,0x09,0x4a,0x09,0x4b,0x09,0x4c,0x0e,0xe4,0x0a,0x68,0x0a,0x69,0x0a,0x65,0x0a,0x66,0x0a,0x67,0x13,0xe9,0x13,0xed,0x13,0xee,0x00,0x0b,0x00,0x0c,0x13,0xf0,0x13,0xf1,0x0a,0x64,0x13,0xf2,0x13,0xf8,0x13,0xf9,0x13,0xfa,0x13,0xfb,0x13,0xfc,0x13,0xfd,0x13,0xfe,0x13,0xff,0x14,0x00,0x14,0x01,0x09,0x07, +0x09,0x08,0x08,0xc9,0x09,0x09,0x08,0xc8,0x09,0x0a,0x0e,0x24,0x09,0x0b,0x08,0xca,0x09,0x0c,0x09,0x02,0x08,0xf9,0x0e,0x25,0x09,0x0d,0x08,0xc7,0x09,0x0e,0x0e,0x26,0x08,0xcb,0x0e,0x27,0x09,0x0f,0x08,0xf6,0x09,0x10,0x0e,0x28,0x08,0xcc,0x0e,0x29,0x09,0x11,0x0e,0x2a,0x08,0xcd,0x0e,0x2b,0x09,0x12,0x08,0xcf,0x08,0xce,0x0e,0x2c, +0x09,0x13,0x08,0xd1,0x08,0xd0,0x0e,0x2d,0x09,0x14,0x08,0xd3,0x08,0xd2,0x0e,0x2e,0x09,0x15,0x0e,0x2f,0x09,0x16,0x0e,0x30,0x09,0x17,0x0b,0x0c,0x09,0x18,0x0b,0x0d,0x09,0x19,0x0e,0x31,0x08,0xd4,0x0e,0x32,0x09,0x1a,0x0e,0x33,0x08,0xd5,0x0e,0x34,0x09,0x1b,0x0e,0x35,0x08,0xd6,0x0e,0x36,0x09,0x1c,0x0e,0x37,0x08,0xe1,0x0e,0x38, +0x09,0x1d,0x0e,0x39,0x0e,0x3a,0x0e,0x3b,0x09,0x1e,0x0e,0x3c,0x0e,0x3d,0x0e,0x3e,0x09,0x1f,0x08,0xe4,0x08,0xe2,0x08,0xe3,0x09,0x20,0x08,0xe7,0x08,0xe5,0x08,0xe6,0x09,0x22,0x0e,0x53,0x08,0xe8,0x08,0xe9,0x09,0x23,0x0e,0x54,0x08,0xeb,0x08,0xec,0x09,0x24,0x0e,0x55,0x08,0xed,0x0e,0x56,0x09,0x25,0x09,0x59,0x08,0xee,0x09,0x3f, +0x09,0x26,0x0e,0x57,0x08,0xef,0x0e,0x58,0x09,0x27,0x0e,0x59,0x08,0xf0,0x0e,0x5a,0x09,0x28,0x08,0xf3,0x0e,0x5b,0x0e,0x5d,0x09,0x29,0x0e,0x5e,0x09,0x2a,0x08,0xf7,0x09,0x2b,0x08,0xf5,0x08,0xf4,0x0e,0x61,0x09,0x01,0x09,0x04,0x08,0xff,0x09,0x00,0x09,0x34,0x09,0x35,0x08,0xfa,0x08,0xfb,0x0b,0xb8,0x0b,0x1b,0x40,0x55,0x85,0x64, +0x5b,0x5a,0x59,0x54,0x52,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x6a,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0x4e,0xf0,0x4d,0x2f,0xb0,0x00,0x12,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58, +0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb1,0x00,0x40,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x4e,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x4d,0x1b,0x20,0x45,0xb0,0x04,0x25,0xb0,0x04,0x25,0x23,0x4a,0x61,0x64,0xb0,0x28,0x52,0x58,0x21, +0x23,0x10,0xd6,0x1b,0xb0,0x03,0x25,0x10,0xf2,0x21,0xb0,0x00,0x12,0x59,0x59,0x2d,0x2c,0xb0,0x1a,0x43,0x58,0x21,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0xb0,0x03,0x25,0xb0,0x03,0x25,0x4a,0x61,0x20,0x64,0xb0,0x10,0x50,0x58,0x21,0x21,0x21,0x1b,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0xb0,0x00,0x50,0x58,0xb0,0x00,0x50,0x58, +0xb8,0xff,0xe2,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x1b,0xb0,0x00,0x52,0x58,0xb0,0x1e,0x38,0x21,0x1b,0xb0,0x00,0x38,0x21,0x59,0x59,0x59,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0x4b,0xb0,0x14,0x50,0x58,0xb9,0x00,0x00,0xff,0xc0,0x38,0x59,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33, +0x2f,0x59,0x2d,0x2c,0x4e,0x01,0x8a,0x10,0xb1,0x0c,0x19,0x43,0x44,0xb0,0x00,0x14,0xb1,0x00,0x0c,0xe2,0xb0,0x00,0x15,0xb9,0x00,0x00,0xff,0xf0,0x38,0x00,0xb0,0x00,0x3c,0xb0,0x28,0x2b,0xb0,0x02,0x25,0x10,0xb0,0x00,0x3c,0x2d,0x2c,0x01,0x18,0xb0,0x00,0x2f,0xb0,0x01,0x14,0xf2,0xb0,0x01,0x13,0xb0,0x01,0x15,0x4d,0xb0,0x00,0x12, +0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x2b,0xb0,0x00,0x13,0xb9,0x00,0x00,0xff,0xe0,0x38,0xb0,0x06,0x2b,0x1b,0x21,0x23,0x11,0x20,0x33,0x2f,0x59,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0x45,0x64,0x6a,0x23,0x45,0x64,0x69,0xb0,0x19,0x43,0x64,0x60,0x60,0xb0,0x0c,0x23,0x44,0x23,0x10,0x20,0xb0,0x0c,0xf0,0x2f,0xb0, +0x00,0x12,0x1b,0x21,0x21,0x20,0x8a,0x20,0x8a,0x52,0x58,0x11,0x33,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb1,0x0b,0x0a,0x43,0x23,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb1,0x0a,0x0b,0x43,0x23,0x43,0x0b,0x59,0x2d,0x2c,0x00,0xb0,0x0c,0x23,0x70,0xb1,0x01,0x0c,0x3e,0x01, +0xb0,0x0c,0x23,0x70,0xb1,0x02,0x0c,0x45,0x3a,0xb1,0x02,0x00,0x08,0x0d,0x2d,0x2c,0xb0,0x12,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb0,0x40,0x8b,0x60,0xb0,0x02,0x25,0x23,0x44,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x13,0x2b,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x6a,0xb8,0xff,0xc0,0x8c,0x60,0xb0,0x02,0x25,0x23,0x44, +0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x12,0x2b,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x00,0xb0,0x13,0x2b,0x21,0x21,0x21,0x2d,0x2c,0x01,0x4b,0xb0,0xc8,0x51,0x58,0xb0,0x06,0x43,0xb0,0x07,0x43,0x65,0x0a,0x59,0x2d,0x2c,0x20,0x69,0xb0,0x40,0x61,0xb0,0x00,0x8b,0x20,0xb1,0x2c,0xc0,0x8a,0x8c,0xb8,0x10,0x00,0x62,0x60,0x2b,0x0c,0x64, +0x23,0x64,0x61,0x5c,0x58,0xb0,0x03,0x61,0x59,0x2d,0x2c,0xb1,0x00,0x03,0x25,0x45,0x68,0x54,0xb0,0x1c,0x4b,0x50,0x5a,0x58,0xb0,0x03,0x25,0x45,0xb0,0x03,0x25,0x45,0x60,0x68,0x20,0xb0,0x04,0x25,0x23,0x44,0xb0,0x04,0x25,0x23,0x44,0x1b,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x68,0x60,0xb0,0x03, +0x25,0x23,0x44,0x59,0x2d,0x2c,0xb0,0x03,0x25,0x20,0x45,0x68,0x20,0x8a,0x23,0x44,0xb0,0x03,0x25,0x45,0x64,0x68,0x65,0x60,0xb0,0x04,0x25,0xb0,0x01,0x60,0x23,0x44,0x2d,0x2c,0xb0,0x09,0x43,0x58,0x87,0x21,0xc0,0x1b,0xb0,0x12,0x43,0x58,0x87,0x45,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x03,0x8a,0x45,0x18, +0x69,0x20,0xb0,0x0d,0x23,0x44,0x8a,0x8a,0x87,0x20,0xb0,0xa0,0x51,0x58,0xb0,0x11,0x2b,0xb0,0x0d,0x23,0x44,0xb0,0x0d,0x7a,0xe4,0x1b,0x21,0xb0,0x0d,0x7a,0xe4,0x59,0x59,0x59,0x18,0x2d,0x2c,0x20,0x8a,0x45,0x23,0x45,0x68,0x60,0x44,0x2d,0x2c,0x45,0x6a,0x42,0x2d,0x2c,0x01,0x18,0x2f,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0, +0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x19,0x43,0x60,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x01,0xb0,0x18,0x43,0x58,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45, +0x64,0x60,0x6a,0xb0,0x03,0x25,0x45,0x6a,0x61,0x20,0xb0,0x04,0x25,0x45,0x6a,0x20,0x8a,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x20,0x45,0x6a,0x44,0x20,0x45,0x6a,0x44,0x59,0x2d,0x2c,0x01,0x20,0x45,0xb0,0x00,0x55,0xb0,0x18,0x43,0x5a,0x58,0x45,0x68,0x23,0x45,0x69,0xb0,0x40,0x8b,0x61, +0x20,0xb0,0x80,0x62,0x6a,0x20,0x8a,0x23,0x61,0x20,0xb0,0x03,0x25,0x8b,0x65,0xb0,0x04,0x25,0x23,0x44,0x8c,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x1b,0x21,0x21,0xb0,0x19,0x2b,0x59,0x2d,0x2c,0x01,0x8a,0x8a,0x45,0x64,0x23,0x45,0x64,0x61,0x64,0x42,0x2d,0x2c,0xb0,0x04,0x25,0xb0,0x04,0x25,0xb0,0x19,0x2b,0xb0,0x18,0x43,0x58,0xb0, +0x04,0x25,0xb0,0x04,0x25,0xb0,0x03,0x25,0xb0,0x1b,0x2b,0x01,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0x5a,0x58,0xb0,0x03,0x25,0x20,0x45,0xb0,0x40,0x61,0x44,0x59,0xb0,0x02,0x25,0x43,0xb0,0x00,0x54,0xb0,0x02,0x25,0x43,0xb0,0x40,0x54,0x5a,0x58,0xb0,0x04,0x25,0x20,0x45,0xb0,0x40,0x60,0x44,0x59, +0x59,0x21,0x21,0x21,0x21,0x2d,0x2c,0xb0,0x03,0x25,0x20,0xb0,0x07,0x25,0x87,0x05,0x2e,0x23,0x20,0x8a,0xb0,0x04,0x25,0xb0,0x07,0x25,0xb0,0x14,0x2b,0x10,0x21,0xc4,0x21,0x2d,0x2c,0xc0,0x2d,0x2c,0x4b,0x52,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xed,0x18,0x1b,0xed,0x59,0x2d,0x2c,0x4b,0x50,0x58, +0x45,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x01,0x18,0x4b,0x52,0x58,0x8a,0x2f,0xed,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x45,0x68,0xb0,0x03,0x25,0x60,0x54,0x58,0x21,0x21,0x21,0x1b,0xb0,0x02,0x25,0x45,0x68,0x60,0xb0,0x03,0x25,0x23,0x44,0x21,0x21,0x59, +0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x58,0x3d,0xcd,0x18,0x1b,0xcd,0x59,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a,0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0xba,0x8b,0x1b,0xb0,0x46, +0x8c,0x59,0xb0,0x10,0x60,0x68,0x01,0x3a,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x52,0x4b,0xb0,0x13,0x51,0x5b,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x20,0x45,0xb0,0x03,0x25,0x46,0x50,0x58,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25, +0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x1b,0x21,0x11,0x59,0x2d,0x2c,0x00,0x4b,0xb0,0xc8,0x51,0x58,0x00,0xb0,0x07,0x43,0xb0,0x06,0x43,0x0b,0x59,0x2d,0x2c,0x8a,0x10,0xec,0x2d,0x2c,0xb0,0x0c,0x43,0x58,0x21,0x1b,0x20,0x46,0xb0,0x00,0x52,0x58,0xb8,0xff,0xf0,0x38,0x1b,0xb0,0x10,0x38,0x59,0x59,0x2d,0x2c,0x20,0xb0,0x00,0x55,0x58, +0xb8,0x10,0x00,0x63,0xb0,0x03,0x25,0x45,0x64,0xb0,0x03,0x25,0x45,0x64,0x61,0xb0,0x00,0x53,0x58,0xb0,0x02,0x1b,0xb0,0x40,0x61,0xb0,0x03,0x59,0x25,0x45,0x69,0x53,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0xb0,0x02,0x25,0x45,0xb0,0x02,0x25,0x45,0x61,0x64,0xb0,0x28,0x51,0x58,0x45,0x44,0x1b,0x21,0x21,0x59,0x59,0x2d,0x2c, +0x21,0x21,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x2d,0x2c,0x21,0xb0,0x80,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x20,0x00,0x62,0x1b,0xb2,0x00,0x40,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d,0x2c,0x21,0xb0,0xc0,0x51,0x58,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x15,0x55,0x62,0x1b,0xb2,0x00,0x80,0x2f,0x2b,0x59,0xb0,0x02,0x60,0x2d, +0x2c,0x0c,0x64,0x23,0x64,0x8b,0xb8,0x40,0x00,0x62,0x60,0x23,0x21,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0x23,0x45,0x64,0x69,0xb0,0x40,0x8b,0x61,0x20,0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0x8a,0x10,0xb0,0x0c,0xf6,0x21,0x1b,0x21,0x8a,0x11,0x23, +0x12,0x20,0x39,0x2f,0x59,0x2d,0x2c,0xb0,0x02,0x25,0xb0,0x02,0x25,0x49,0x64,0xb0,0xc0,0x54,0x58,0xb8,0xff,0xf8,0x38,0xb0,0x08,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x03,0x1b,0x02,0x59,0x2d,0x2c,0xb0,0x13,0x43,0x58,0x02,0x1b,0x03,0x59,0x2d,0x2c,0xb0,0x0a,0x2b,0x23,0x10,0x20,0x3c,0xb0,0x17,0x2b,0x2d,0x2c, +0xb0,0x02,0x25,0xb8,0xff,0xf0,0x38,0xb0,0x28,0x2b,0x8a,0x10,0x23,0x20,0xd0,0x23,0xb0,0x10,0x2b,0xb0,0x05,0x43,0x58,0xc0,0x1b,0x3c,0x59,0x20,0x10,0x11,0xb0,0x00,0x12,0x01,0x2d,0x2c,0xb0,0x48,0x2b,0x2d,0x2c,0x01,0xb0,0x02,0x25,0x10,0xd0,0x23,0xc9,0x01,0xb0,0x01,0x13,0xb0,0x00,0x14,0x10,0xb0,0x01,0x3c,0xb0,0x01,0x16,0x2d, +0x2c,0x01,0xb0,0x00,0x13,0xb0,0x01,0xb0,0x03,0x25,0x49,0xb0,0x03,0x17,0x38,0xb0,0x01,0x13,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x18,0x4b,0x53,0x58,0xb0,0x04,0x25,0xb0,0x04,0x25,0x49,0x64,0xb0,0x03,0x25,0xb0,0x03,0x25,0x49,0x64,0x68,0xb0,0x40,0x8b,0x61,0x20, +0xb0,0x80,0x62,0x6a,0xb0,0x02,0x25,0xb0,0x02,0x25,0x61,0x8c,0xb0,0x0c,0x23,0x44,0x21,0xb0,0x04,0x25,0x10,0x23,0xb0,0x0c,0xf6,0x1b,0xb0,0x04,0x25,0xb0,0x04,0x25,0x11,0x12,0x23,0x20,0x39,0x2f,0x59,0xcc,0x21,0x21,0x2d,0x2c,0x01,0x18,0xb0,0x18,0x43,0x58,0xb0,0x05,0x25,0x46,0x23,0x45,0x64,0x61,0x1b,0x21,0xb0,0x04,0x25,0xb0, +0x04,0x25,0x4a,0x59,0xb0,0x0e,0x23,0x44,0x23,0x10,0xb0,0x0e,0xec,0x23,0x10,0xb0,0x0e,0xec,0x2d,0x2c,0xb0,0x1b,0x43,0x58,0x20,0xb0,0x01,0x60,0x45,0xb0,0x00,0x51,0x58,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68,0xb0,0x00,0x55,0x58,0xb0,0x20,0x60,0x44,0x21,0x1b,0x21,0x21,0x21,0x59,0x1b,0x20,0xb0,0x01,0x60,0x20,0x45,0x20,0x68, +0xb0,0x00,0x55,0x58,0xb8,0xff,0xe0,0x60,0x44,0xb0,0x1c,0x4b,0x50,0x58,0x20,0x45,0xb0,0x20,0x60,0x44,0x1b,0x21,0x59,0x1b,0x21,0x21,0x21,0x59,0x59,0x1b,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x25,0x46,0x20,0x68,0x61,0xb0,0x03,0x25,0xb0,0x03,0x25,0x3f,0x23,0x21,0x38,0x2d,0x2c,0x46,0x23,0x46,0x60,0x8a,0x8a,0x46,0x23,0x20,0x46,0x8a, +0x60,0x8a,0x61,0xb8,0xff,0x80,0x62,0x23,0x20,0x10,0x23,0x8a,0xb1,0x0c,0x0c,0x8a,0x70,0x45,0x60,0x20,0xb0,0x00,0x50,0x58,0xb0,0x01,0x61,0xb8,0xff,0x80,0x8b,0x1b,0xb0,0x81,0x8c,0x59,0x68,0x3a,0x2d,0x2c,0xb0,0x40,0x2a,0x21,0x2d,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a, +0x58,0x38,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x49,0xb0,0x0e,0x23,0x44,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21, +0x21,0x59,0x2d,0x2c,0x4b,0x54,0x58,0x20,0x45,0x8a,0x60,0x44,0x1b,0x21,0x21,0x59,0x2d,0x2c,0x4b,0x53,0x23,0x4b,0x51,0x5a,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x00,0x21,0x4b,0x54,0x58,0x38,0x1b,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x46,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43, +0x54,0x58,0xb0,0x47,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x48,0x2b,0x1b,0x21,0x21,0x21,0x21,0x59,0x2d,0x2c,0xb0,0x02,0x43,0x54,0x58,0xb0,0x49,0x2b,0x1b,0x21,0x21,0x21,0x59,0x2d,0x2c,0x00,0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x51,0x58,0xb8,0xff,0xc0,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x00, +0xb0,0x02,0x25,0x20,0x11,0x49,0xb0,0x00,0x53,0x58,0xb0,0x40,0x38,0x1b,0x21,0x59,0x2d,0x2c,0x4b,0x52,0x58,0x7d,0x1b,0x7a,0x59,0x2d,0x2c,0xb1,0x02,0x01,0x42,0xb1,0x23,0x01,0x88,0x51,0xb1,0x40,0x01,0x88,0x53,0x5a,0x58,0xb1,0x02,0x00,0x42,0xb9,0x10,0x00,0x00,0x20,0x88,0x54,0x58,0xb2,0x02,0x01,0x02,0x43,0x60,0x42,0x59,0xb1, +0x24,0x01,0x88,0x51,0x58,0xb9,0x20,0x00,0x00,0x40,0x88,0x54,0x58,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb1,0x24,0x01,0x88,0x54,0x58,0xb2,0x02,0x20,0x02,0x43,0x60,0x42,0x00,0x4b,0x01,0x4b,0x52,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0x1b,0xb9,0x40,0x00,0x00,0x80,0x88,0x54,0x58,0xb2,0x02,0x04,0x02,0x43,0x60,0x42,0x59, +0xb9,0x40,0x00,0x00,0x80,0x63,0xb8,0x01,0x00,0x88,0x54,0x58,0xb2,0x02,0x08,0x02,0x43,0x60,0x42,0x59,0xb9,0x40,0x00,0x01,0x00,0x63,0xb8,0x02,0x00,0x88,0x54,0x58,0xb2,0x02,0x10,0x02,0x43,0x60,0x42,0x59,0xb1,0x26,0x01,0x88,0x51,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x58,0xb2,0x02,0x40,0x02,0x43,0x60, +0x42,0x59,0xb9,0x40,0x00,0x04,0x00,0x63,0xb8,0x08,0x00,0x88,0x54,0x58,0xb2,0x02,0x80,0x02,0x43,0x60,0x42,0x59,0x59,0x59,0x59,0x59,0x59,0xb1,0x00,0x02,0x43,0x54,0x58,0x40,0x0a,0x05,0x40,0x08,0x40,0x09,0x40,0x0c,0x02,0x0d,0x02,0x1b,0xb1,0x01,0x02,0x43,0x54,0x58,0xb2,0x05,0x40,0x08,0xba,0x01,0x00,0x00,0x09,0x01,0x00,0xb3, +0x0c,0x01,0x0d,0x01,0x1b,0xb1,0x80,0x02,0x43,0x52,0x58,0xb2,0x05,0x40,0x08,0xb8,0x01,0x80,0xb1,0x09,0x40,0x1b,0xb2,0x05,0x40,0x08,0xba,0x01,0x80,0x00,0x09,0x01,0x40,0x59,0xb9,0x40,0x00,0x00,0x80,0x88,0x55,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x55,0x5a,0x58,0xb3,0x0c,0x00,0x0d,0x01,0x1b,0xb3,0x0c,0x00,0x0d, +0x01,0x59,0x59,0x59,0x42,0x42,0x42,0x42,0x42,0x2d,0x2c,0xb0,0x80,0xb0,0x02,0x43,0x50,0xb0,0x01,0xb0,0x02,0x43,0x54,0x5b,0xb0,0x10,0x4b,0x51,0x5a,0x58,0x21,0x23,0x10,0xb0,0x20,0x1a,0xc9,0x1b,0x8a,0x10,0xed,0x59,0x2d,0x2c,0xb0,0x59,0x2b,0x2d,0x2c,0x8a,0x10,0xe5,0x2d,0x2c,0x20,0x45,0x69,0x44,0x2d,0x2c,0xb1,0x25,0x01,0x88, +0x50,0x58,0xb9,0x40,0x00,0x02,0x00,0x63,0xb8,0x04,0x00,0x88,0x54,0x5c,0xb0,0x14,0x4b,0x52,0x5b,0x1b,0xb0,0x01,0x59,0x2d,0xb9,0x00,0x20,0x01,0x3e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x3c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x34,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x32,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01, +0x2f,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2e,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x2c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x0c,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x04,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x03,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb8,0x01,0x01,0x40,0xfb,0x09,0x18,0x01,0x4a,0x20,0xff,0x09, +0x18,0x01,0x4a,0x20,0xfe,0x09,0x18,0x01,0x4a,0x20,0xfc,0x09,0x18,0x01,0x4a,0x20,0xf3,0x09,0x18,0x01,0x4a,0x20,0xf1,0x09,0x18,0x01,0x4a,0x20,0xf0,0x09,0x18,0x01,0x4a,0x20,0xef,0x09,0x18,0x01,0x4a,0x20,0xed,0x09,0x18,0x01,0x4a,0x20,0xea,0x09,0x18,0x01,0x4a,0x20,0xdc,0x09,0x18,0x01,0x4a,0x20,0xda,0x09,0x18,0x01,0x4a,0x20, +0xd8,0x09,0x18,0x01,0x4a,0x20,0xd3,0x09,0x18,0x01,0x4a,0x20,0xcd,0x09,0x18,0x01,0x4a,0x20,0xcc,0x09,0x18,0x01,0x4a,0x20,0xca,0x09,0x18,0x01,0x4a,0x20,0xc9,0x09,0x18,0x01,0x4a,0x20,0xc8,0x09,0x18,0x01,0x4a,0x20,0xc6,0x09,0x18,0x01,0x4a,0x20,0xc4,0x09,0x18,0x01,0x4a,0x20,0xc2,0x09,0x18,0x01,0x4a,0x20,0xc0,0x09,0x18,0x01, +0x4a,0x20,0xbd,0x09,0x18,0x01,0x4a,0x20,0xb4,0x09,0x18,0x01,0x4a,0x20,0xb1,0x09,0x18,0x01,0x4a,0x20,0xaf,0x09,0x18,0x01,0x4a,0x20,0x8c,0x09,0x18,0x01,0x4a,0x20,0x8b,0x09,0x18,0x01,0x4a,0x20,0x8a,0x09,0x18,0x01,0x4a,0x20,0x89,0x09,0x18,0x01,0x4a,0x20,0x38,0x09,0x18,0x01,0x4a,0x20,0x37,0x09,0x18,0x01,0x4a,0x20,0x84,0x09, +0x18,0x01,0x4a,0x20,0x83,0x09,0x18,0x01,0x4a,0x20,0x7f,0x09,0x18,0x01,0x4a,0x20,0x7e,0x09,0x18,0x01,0x4a,0x20,0x7d,0x09,0x18,0x01,0x4a,0x20,0x62,0x09,0x18,0x01,0x4a,0x20,0x50,0x09,0x18,0x01,0x4a,0x20,0x48,0x09,0x18,0x01,0x4a,0x20,0x0e,0x09,0x18,0x01,0x4a,0x2f,0xbe,0x04,0xed,0x00,0x01,0x00,0x4f,0x04,0xec,0x00,0x01,0x00, +0x40,0x04,0xeb,0x40,0x61,0x09,0x0d,0x39,0xdf,0xe0,0x16,0x17,0x1c,0xd4,0xd5,0x16,0x17,0x1c,0x7b,0x7c,0x16,0x1b,0x7b,0x7c,0x19,0xd1,0xd2,0x16,0x17,0x1c,0x76,0x77,0x16,0x17,0x1c,0x6d,0x70,0x16,0x17,0x1c,0x6c,0x6f,0x16,0x17,0x1c,0x6b,0x6e,0x16,0x1b,0x6b,0x6e,0x7f,0x72,0x1a,0x74,0x75,0x14,0x15,0x1c,0x67,0x6a,0x14,0x15,0x1c, +0x66,0x69,0x14,0x15,0x1c,0x65,0x68,0x14,0x1b,0x65,0x68,0x85,0x71,0x1a,0x19,0x73,0x16,0x7a,0x43,0x19,0x21,0x79,0x43,0x19,0x21,0x3b,0x39,0x00,0x2b,0x3a,0x39,0x00,0x2b,0x39,0x95,0x48,0x1f,0x2f,0xbc,0x04,0xe6,0x00,0x2f,0x05,0x03,0x00,0x02,0x05,0x03,0xb3,0x13,0xff,0x1f,0xe0,0xbe,0x04,0xf7,0x00,0x01,0x00,0xe0,0x04,0xf7,0x00, +0x01,0x00,0x20,0x04,0xf0,0xb3,0x0d,0x11,0x39,0x40,0xb8,0x04,0xea,0xb2,0x0b,0x14,0x39,0xb9,0xff,0xc0,0x04,0xef,0xb3,0x1b,0x22,0x39,0x3f,0x41,0x0d,0x04,0xf4,0x00,0x01,0x00,0x8f,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xf3,0x00,0x01,0x00,0x30,0x04,0xef,0x00,0x01,0x00,0x40,0x04,0xe8,0xb3,0x0b,0x10,0x39,0x30,0xbd,0x01,0x55,0x00, +0x01,0x00,0x80,0x01,0x55,0x00,0x01,0x01,0x54,0xb3,0x95,0x24,0x1f,0x3f,0xbf,0x01,0x42,0x00,0x01,0x00,0x0f,0x01,0x41,0x00,0xa0,0x01,0x41,0x00,0x02,0xff,0xe0,0xb4,0xf1,0x29,0x2b,0x39,0x40,0xb8,0x01,0x40,0xb3,0x3d,0x43,0x39,0x40,0xb8,0x01,0x40,0xb3,0x24,0x28,0x39,0x40,0xb8,0x01,0x3f,0xb3,0x2c,0x2f,0x39,0x40,0xb8,0x01,0x3f, +0xb3,0x17,0x1c,0x39,0x40,0xb8,0x01,0x3d,0x40,0x16,0x26,0x2b,0x39,0xe6,0xe7,0x03,0x2b,0x40,0xe7,0x2c,0x2e,0x39,0x40,0xe7,0x1b,0x1c,0x39,0x40,0x54,0x1f,0x1f,0x39,0xb8,0xff,0xc0,0x40,0x16,0xcb,0x23,0x23,0x39,0x40,0xd9,0x29,0x2a,0x39,0x53,0x52,0x02,0x2b,0x52,0xe2,0x02,0x2b,0x20,0xb0,0x0b,0x0d,0x39,0xb9,0x01,0x02,0x01,0x01, +0x40,0x1b,0x02,0x2b,0xfd,0xfc,0x0a,0x2b,0xfb,0xaf,0x05,0x2b,0xf2,0xe2,0x02,0x2b,0xc3,0xc5,0x02,0x2b,0x40,0xda,0x17,0x19,0x39,0xdb,0xe2,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xe2,0x30,0x31,0x39,0xb8,0xff,0xc0,0x40,0x11,0xe2,0x1d,0x1e,0x39,0x40,0xd6,0x17,0x17,0x39,0xeb,0xbe,0x02,0x2b,0xbe,0x9a,0x02,0x2b,0xb8,0x01,0x84,0xb2,0x99, +0x0a,0x2b,0xb8,0x01,0x81,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x80,0xb2,0x99,0x0a,0x2b,0xb8,0x01,0x7f,0x40,0x0f,0x99,0x0a,0x2b,0x9b,0x99,0x0a,0x2b,0x99,0x9a,0x02,0x2b,0x9a,0x95,0x05,0x2b,0xb8,0xff,0xe0,0xb7,0xee,0x14,0x16,0x39,0x92,0x91,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0xf4,0x13,0x16,0x39,0xec,0x95,0x04,0x2b,0x91,0x95,0x24, +0x1f,0xb8,0xff,0xe0,0x40,0x0b,0x63,0x18,0x19,0x39,0x66,0x63,0x01,0x96,0x95,0x02,0x2b,0xb8,0xff,0xe0,0x40,0x0c,0x95,0x25,0x28,0x39,0x38,0x37,0x00,0x2b,0x37,0x84,0xff,0x1f,0xb8,0x01,0x01,0xb6,0x7d,0x02,0x2b,0xfc,0xdb,0x0a,0x2b,0xb9,0x01,0x3e,0x01,0x3c,0xb2,0x02,0x2b,0x40,0xb8,0x01,0x3c,0xb2,0x1f,0x24,0x39,0xb8,0x01,0x2f, +0xb2,0x7d,0x03,0x2b,0xb8,0x01,0x2e,0xb3,0x84,0x03,0x2b,0xd0,0xb8,0x01,0x2c,0xb5,0x01,0x40,0xd8,0x17,0x19,0x39,0xb8,0xff,0xc0,0x40,0x09,0xc4,0x22,0x25,0x39,0x40,0xc2,0x17,0x17,0x39,0xb8,0xff,0xc0,0xb3,0xc0,0x1a,0x1b,0x39,0xb8,0xff,0xc0,0xb7,0xc0,0x10,0x12,0x39,0xcd,0xcc,0x03,0x2b,0xb8,0xff,0xc0,0xb7,0xc9,0x23,0x23,0x39, +0xca,0xc8,0x03,0x2b,0xb8,0xff,0xc0,0x40,0x16,0xf0,0x0b,0x0d,0x39,0xea,0x7e,0x02,0x2b,0x30,0x62,0x0c,0x0c,0x06,0x43,0xb1,0xaf,0x02,0x2b,0xaf,0x7e,0x02,0x2b,0xb8,0xff,0xc0,0xb3,0xd3,0x0f,0x12,0x39,0xb8,0xff,0xc0,0xb3,0xbd,0x27,0x28,0x39,0xbc,0x01,0x86,0x00,0x89,0x01,0x00,0x00,0x2b,0x01,0x85,0xb2,0x8a,0x0a,0x2b,0xb8,0xff, +0xc0,0x40,0x1c,0x8c,0x1e,0x1e,0x39,0x89,0x8a,0x04,0x2b,0x8a,0x84,0x0a,0x2b,0x8b,0x84,0x03,0x2b,0x81,0x7f,0x01,0x2b,0x7d,0x7e,0x04,0x2b,0x7e,0x84,0x03,0x2b,0xb8,0xff,0xe0,0x40,0x41,0x62,0x18,0x19,0x39,0x62,0x84,0x01,0x2b,0x88,0x84,0x01,0x2b,0x87,0x84,0x01,0x2b,0x85,0x84,0x01,0x2b,0x83,0x84,0x04,0x2b,0xe9,0x84,0xf9,0x84, +0x02,0x69,0x84,0x01,0x27,0x84,0x01,0x1b,0x37,0x15,0x18,0x36,0x15,0x15,0x35,0x15,0x12,0x34,0x15,0x0f,0x33,0x15,0x0c,0x32,0x15,0x09,0x31,0x15,0x06,0x30,0x15,0x03,0x2f,0x15,0x00,0x2e,0x15,0x41,0x26,0x01,0x4a,0x01,0x4b,0x00,0x15,0x00,0x50,0x01,0x4c,0x00,0x01,0x00,0x70,0x01,0x4a,0x00,0x01,0x01,0x3a,0x01,0x3b,0x00,0x0f,0x01, +0x38,0x01,0x39,0x00,0x0e,0x01,0x36,0x01,0x37,0x00,0x0e,0x00,0x0b,0x01,0x38,0x00,0x3b,0x01,0x38,0x00,0x4b,0x01,0x38,0x00,0xcb,0x01,0x38,0x00,0x04,0x00,0x0b,0x01,0x36,0x00,0x3b,0x01,0x36,0x00,0x5b,0x01,0x36,0x00,0x03,0x00,0x10,0x01,0x3a,0x00,0x01,0x01,0x06,0xb2,0x03,0xff,0x1f,0x41,0x21,0x01,0x0a,0x01,0x0b,0x00,0x0f,0x01, +0x08,0x01,0x09,0x00,0x0e,0x01,0x06,0x01,0x07,0x00,0x0e,0x00,0x6b,0x01,0x08,0x00,0x01,0x00,0x0b,0x01,0x08,0x00,0x3b,0x01,0x08,0x00,0x4b,0x01,0x08,0x00,0xbb,0x01,0x08,0x00,0xeb,0x01,0x08,0x00,0xfb,0x01,0x08,0x00,0x06,0x00,0x0b,0x01,0x0a,0x00,0x5b,0x01,0x0a,0x00,0x8b,0x01,0x0a,0x00,0x03,0x01,0x06,0x40,0x22,0x03,0xff,0x1f, +0x26,0x27,0x0e,0x28,0x27,0x0f,0x35,0x36,0x0e,0x33,0x36,0x0f,0x2a,0x2b,0x0e,0x2c,0x2b,0x0f,0x22,0x23,0x0e,0x24,0x23,0x0f,0x1e,0x1f,0x0e,0x20,0x1f,0x0f,0x00,0xbf,0x01,0x31,0x00,0x10,0x01,0x31,0x00,0x20,0x01,0x31,0x00,0x03,0x00,0x00,0x01,0x30,0x40,0x80,0x01,0x70,0x2a,0xe0,0x2a,0x02,0x00,0x3c,0x01,0x10,0x24,0x40,0x24,0x70, +0x24,0xa0,0x24,0x04,0x0f,0x10,0x11,0x0c,0x09,0x0a,0x0b,0x0c,0x06,0x07,0x08,0x0c,0x03,0x04,0x05,0x0c,0x00,0x01,0x02,0x0c,0x26,0x06,0x1c,0x1f,0x06,0x03,0x18,0x1f,0x0f,0x03,0x3f,0x03,0xdf,0x03,0x03,0x9f,0x00,0xdf,0x00,0x02,0x0f,0x17,0x1f,0x17,0x2f,0x17,0x03,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x1b,0x01,0x1d,0x0d,0x18,0x07, +0x1a,0x0d,0x15,0x10,0x17,0x0d,0x12,0x04,0x14,0x0d,0x2f,0x1b,0x01,0x2c,0x3c,0x2a,0x3c,0x28,0x3c,0x26,0x3c,0x24,0x3c,0x22,0x3c,0x20,0x3c,0x1e,0x3c,0x1b,0x3c,0x18,0x3c,0x15,0x3c,0x12,0x3c,0x0f,0x3c,0x09,0x3c,0x06,0x3c,0x03,0x3c,0x00,0x3c,0x50,0x33,0x54,0x01,0xb0,0x12,0x4b,0x00,0x4b,0x54,0x42,0xb0,0x13,0x01,0x4b,0x00,0x4b, +0x53,0x42,0xb0,0x33,0x2b,0x4b,0xb8,0x03,0x20,0x52,0xb0,0x32,0x2b,0x4b,0xb0,0x09,0x50,0x5b,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x33,0x2b,0xb0,0x02,0x88,0xb8,0x01,0x00,0x54,0xb0,0x04,0x88,0xb8,0x02,0x00,0x54,0xb0,0x12,0x43,0x5a,0x5b,0x58,0xb8,0x01,0x19,0xb1,0x01,0x01,0x8e,0x85,0x1b,0xb9,0x00,0x01,0x01,0x00,0xb0,0x4b,0x60, +0x85,0x8d,0x59,0x2b,0x2b,0x1d,0xb0,0x64,0x4b,0x53,0x58,0xb0,0x80,0x1d,0x59,0xb0,0x32,0x4b,0x53,0x58,0xb0,0x90,0x1d,0x59,0x00,0x4b,0xb0,0x32,0x51,0xb0,0x1b,0x23,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x73,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0xb1,0x28,0x26,0x45,0xb0,0x2a,0x45,0x61,0xb0,0x2c,0x45,0x60,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x74,0xb8,0x01,0x06,0x45,0x69,0xb8,0x01,0x0a,0x45,0x69,0x61,0xb8,0x01,0x0a,0x23,0x44,0xb8,0x01,0x08,0x45,0x69,0xb8,0x01,0x0a,0x45,0x60,0xb8,0x01,0x08,0x23, +0x44,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x73,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x38,0x45,0x69,0x60,0xb8,0x01,0x38,0x23,0x44,0xb8,0x01,0x3a,0x45,0x69,0xb8,0x01,0x36,0x45,0x69,0x60,0xb8,0x01,0x36,0x23,0x44,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x01,0x73,0x74,0x75,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0x2b,0x73,0x74,0x2b,0x73,0x73,0x73,0x73,0x2b,0x2b,0x2b,0x73,0x74,0x2b,0x73,0x2b,0x2b,0x2b,0x2b,0x2b,0xb0,0x18,0xb0,0x3f,0x4b,0x53,0x42,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x73,0x73,0xb1, +0x09,0x32,0x2b,0x4b,0xb0,0x50,0x52,0x42,0x4b,0xb0,0x08,0x52,0x4b,0xb0,0x08,0x50,0x5b,0xb0,0x1a,0x23,0x42,0x4b,0xb0,0xc8,0x52,0x4b,0xb0,0x36,0x50,0x5b,0xb0,0x0c,0x23,0x42,0xb1,0x00,0x02,0x43,0x54,0xb1,0x02,0x02,0x43,0x54,0xb1,0x06,0x02,0x43,0x54,0x5b,0x5b,0x58,0x41,0x15,0x01,0x3e,0x00,0x64,0x01,0x3c,0x00,0x64,0x01,0x34, +0x00,0x64,0x01,0x32,0x00,0x64,0x01,0x2f,0x00,0x64,0x01,0x2e,0x00,0x64,0x01,0x2c,0x00,0x64,0x01,0x0c,0x00,0x64,0x01,0x04,0x00,0x64,0x01,0x03,0x00,0x64,0x01,0x01,0x40,0x4f,0x64,0xff,0x64,0xfe,0x64,0xfc,0x64,0xf3,0x64,0xf1,0x64,0xf0,0x64,0xef,0x64,0xed,0x64,0xea,0x64,0xdc,0x64,0xda,0x64,0xd8,0x64,0xd3,0x64,0xcd,0x64,0xcc, +0x64,0xca,0x64,0xc9,0x64,0xc8,0x64,0xc6,0x64,0xc4,0x64,0xc2,0x64,0xc0,0x64,0xbd,0x64,0xb4,0x64,0xb1,0x64,0xaf,0x64,0x8c,0x64,0x8b,0x64,0x8a,0x64,0x89,0x64,0x84,0x64,0x83,0x64,0x7f,0x64,0x7e,0x64,0x7d,0x64,0x62,0x64,0x50,0x64,0x48,0x64,0x0e,0x64,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x59,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x05,0xec,0x00,0x16,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x05,0x9a,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0xff,0xe8, +0xff,0x89,0x00,0x00,0xff,0xe8,0xff,0x89,0x00,0x00,0xff,0xe8,0xfe,0x4e,0xfe,0x29,0xff,0xf5,0x00,0x00,0x05,0x9a,0x00,0x00,0xfe,0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xcd,0xff,0xed,0x05,0xa1,0x00,0x0d,0x02,0x48,0xff,0xeb,0x03,0x59,0x00,0x0d,0x00,0x00,0xff,0xeb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0xff,0xed,0x04,0x33,0x00,0x12,0x00,0xa4,0x00,0xab,0x00,0x8b,0x00,0x81,0x00,0x77,0xfe,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x71,0x00,0x80, +0x00,0x62,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0xd6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x00,0xa8,0x00,0x91,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x00,0xa4,0x00,0x9b,0x00,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x97,0x00,0x8c,0x00,0x00, +0x00,0x00,0x00,0x8a,0x00,0x83,0x00,0x00,0x00,0x00,0x00,0x94,0x00,0x8a,0x00,0xa4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x00,0xe0,0x00,0xa0,0x00,0xe4,0x01,0xbe, +0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x86,0x00,0x86,0x00,0x00,0x00,0xc5,0x00,0xc3,0x00,0x81,0x00,0x4a,0x00,0x5a,0x00,0x51,0x05,0xdb,0x05,0xdb,0x00,0x86,0x00,0x58,0x00,0x90,0x00,0x58,0x00,0x8a,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xcf, +0x00,0x00,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x78,0x00,0x77,0x00,0x7a,0x00,0x61,0x00,0x7a,0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x81,0x00,0x6b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x6d,0x00,0x00,0x00,0x00,0x00,0x92,0x00,0x81,0x00,0x92,0x00,0x8b,0x00,0xa0,0x00,0x97,0x01,0xd3,0x00,0x4c,0x00,0x74,0x00,0x64, +0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x23,0x00,0xc9,0x00,0x6a,0x00,0x6d,0x00,0x4c,0x00,0x61,0x00,0x69,0x00,0xc8,0x00,0xa2,0x00,0x80,0x00,0x7e,0x00,0x6b,0x05,0x9a,0x00,0x11,0x02,0x24,0x00,0x11,0x03,0x00,0xff,0xef,0x00,0x81,0x00,0x67,0x00,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8f,0x00,0x63,0x00,0x96,0x00,0xc0,0xfe,0xbc,0xfe,0xf2,0x00,0x64,0x00,0x64, +0x00,0x76,0x00,0x7c,0x02,0xf6,0x00,0x0d,0x02,0x00,0x00,0x0d,0x04,0x96,0xff,0xf3,0x00,0x54,0x00,0x46,0x00,0x6a,0x00,0x6b,0x00,0x4c,0x07,0x69,0xfe,0x31,0x00,0xe4,0x00,0xbc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xcd,0x00,0x11,0x06,0xa0,0x00,0x00,0xff,0xed,0xfe,0x00,0x00,0xaa,0x00,0xb6,0x00,0x6c,0x00,0x00, +0x00,0xaa,0x00,0xb8,0x00,0x6c,0x00,0xbb,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0xfe,0x63,0xfd,0x6d, +0xfd,0x76,0xff,0x82,0xff,0x83,0x05,0xe9,0x05,0xe3,0x04,0xbe,0x04,0xec,0x03,0x64,0x04,0x19,0x00,0x6e,0x00,0x7f,0x00,0x8c,0x00,0x9b,0x00,0xa7,0x00,0x6e,0x00,0x7f,0x00,0x91,0x00,0xa0,0x00,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0xbc,0x00,0x94,0x00,0x94,0xff,0x85,0xff,0xae,0x00,0x52,0x00,0x29,0x06,0x14,0x00,0xae,0x00,0x46,0x00,0x46,0xfe,0x58, +0x05,0x60,0x00,0x8f,0x00,0x85,0x00,0x85,0x00,0x5c,0x00,0x54,0x00,0x46,0x00,0xa7,0x00,0x98,0x00,0x58,0x00,0xe1,0x00,0x9e,0x00,0x4b,0x00,0x69,0x00,0xb4,0xff,0xe8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9c,0x00,0x64,0x00,0xe1,0x00,0x5a,0x00,0x4b,0x00,0x00,0x05,0x4e,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0xbe,0x00,0x00,0x01,0x0a,0x00,0x00,0x02,0x3e,0x00,0x00,0x03,0x84,0x00,0x00,0x04,0xd2,0x00,0x00,0x06,0xca,0x00,0x00,0x06,0xf2,0x00,0x00,0x07,0x66,0x00,0x00,0x07,0xe2,0x00,0x00,0x08,0x8e,0x00,0x00,0x09,0x08,0x00,0x00,0x09,0x6a, +0x00,0x00,0x09,0xa2,0x00,0x00,0x09,0xea,0x00,0x00,0x0a,0x22,0x00,0x00,0x0a,0xa6,0x00,0x00,0x0a,0xf8,0x00,0x00,0x0b,0xb0,0x00,0x00,0x0c,0x9c,0x00,0x00,0x0d,0x28,0x00,0x00,0x0d,0xe8,0x00,0x00,0x0e,0xc4,0x00,0x00,0x0f,0x3a,0x00,0x00,0x10,0x66,0x00,0x00,0x11,0x42,0x00,0x00,0x11,0xca,0x00,0x00,0x12,0x6a,0x00,0x00,0x12,0xda, +0x00,0x00,0x13,0x36,0x00,0x00,0x13,0xa6,0x00,0x00,0x14,0x80,0x00,0x00,0x15,0xfc,0x00,0x00,0x17,0x10,0x00,0x00,0x18,0x52,0x00,0x00,0x19,0x3e,0x00,0x00,0x1a,0x18,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0x4c,0x00,0x00,0x1c,0x58,0x00,0x00,0x1d,0x00,0x00,0x00,0x1d,0x28,0x00,0x00,0x1d,0xc6,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1f,0x4a, +0x00,0x00,0x20,0x64,0x00,0x00,0x21,0x58,0x00,0x00,0x22,0x42,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0xd0,0x00,0x00,0x25,0x02,0x00,0x00,0x26,0x66,0x00,0x00,0x27,0x0a,0x00,0x00,0x27,0xbc,0x00,0x00,0x28,0xbe,0x00,0x00,0x2a,0x6c,0x00,0x00,0x2b,0x84,0x00,0x00,0x2c,0x28,0x00,0x00,0x2c,0xfe,0x00,0x00,0x2d,0x5c,0x00,0x00,0x2d,0x90, +0x00,0x00,0x2d,0xea,0x00,0x00,0x2e,0x3a,0x00,0x00,0x2e,0x64,0x00,0x00,0x2e,0x9c,0x00,0x00,0x2f,0xaa,0x00,0x00,0x30,0xa2,0x00,0x00,0x31,0x70,0x00,0x00,0x32,0x66,0x00,0x00,0x33,0x6e,0x00,0x00,0x34,0x38,0x00,0x00,0x35,0x74,0x00,0x00,0x36,0x46,0x00,0x00,0x36,0xce,0x00,0x00,0x37,0x8a,0x00,0x00,0x38,0x5a,0x00,0x00,0x38,0xac, +0x00,0x00,0x39,0xe8,0x00,0x00,0x3a,0xba,0x00,0x00,0x3b,0x98,0x00,0x00,0x3c,0x90,0x00,0x00,0x3d,0x82,0x00,0x00,0x3e,0x16,0x00,0x00,0x3f,0x38,0x00,0x00,0x3f,0xfa,0x00,0x00,0x40,0xd6,0x00,0x00,0x41,0x8a,0x00,0x00,0x42,0xc4,0x00,0x00,0x43,0xf8,0x00,0x00,0x44,0xe4,0x00,0x00,0x45,0xb8,0x00,0x00,0x46,0x6c,0x00,0x00,0x46,0x9a, +0x00,0x00,0x47,0x54,0x00,0x00,0x47,0xde,0x00,0x00,0x48,0x1a,0x00,0x00,0x49,0xee,0x00,0x00,0x4a,0x06,0x00,0x00,0x4a,0x34,0x00,0x00,0x4a,0x62,0x00,0x00,0x4a,0x98,0x00,0x00,0x4a,0xca,0x00,0x00,0x4a,0xf8,0x00,0x00,0x4b,0x26,0x00,0x00,0x4b,0x56,0x00,0x00,0x4b,0x88,0x00,0x00,0x4b,0xb8,0x00,0x00,0x4b,0xec,0x00,0x00,0x4c,0x04, +0x00,0x00,0x4c,0x32,0x00,0x00,0x4c,0x60,0x00,0x00,0x4c,0x90,0x00,0x00,0x4c,0xc2,0x00,0x00,0x4c,0xee,0x00,0x00,0x4d,0x1a,0x00,0x00,0x4d,0x4a,0x00,0x00,0x4d,0x7e,0x00,0x00,0x4d,0xae,0x00,0x00,0x4d,0xde,0x00,0x00,0x4e,0x0c,0x00,0x00,0x4e,0x3a,0x00,0x00,0x4e,0x6c,0x00,0x00,0x4e,0x9a,0x00,0x00,0x4e,0xca,0x00,0x00,0x4e,0xf8, +0x00,0x00,0x4f,0x26,0x00,0x00,0x4f,0x58,0x00,0x00,0x4f,0xc8,0x00,0x00,0x50,0x4e,0x00,0x00,0x51,0x30,0x00,0x00,0x51,0xec,0x00,0x00,0x53,0x48,0x00,0x00,0x53,0x8e,0x00,0x00,0x54,0x42,0x00,0x00,0x55,0x52,0x00,0x00,0x55,0x62,0x00,0x00,0x56,0x80,0x00,0x00,0x57,0xa2,0x00,0x00,0x58,0x6e,0x00,0x00,0x58,0xa0,0x00,0x00,0x59,0x16, +0x00,0x00,0x59,0xec,0x00,0x00,0x5a,0xee,0x00,0x00,0x5c,0x78,0x00,0x00,0x5d,0x82,0x00,0x00,0x5e,0x1e,0x00,0x00,0x5e,0xb4,0x00,0x00,0x5f,0x4c,0x00,0x00,0x60,0x4a,0x00,0x00,0x60,0xf2,0x00,0x00,0x61,0xd2,0x00,0x00,0x62,0x52,0x00,0x00,0x62,0xb4,0x00,0x00,0x63,0x3c,0x00,0x00,0x64,0x0a,0x00,0x00,0x64,0x82,0x00,0x00,0x65,0xb6, +0x00,0x00,0x67,0x24,0x00,0x00,0x68,0x74,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0x4c,0x00,0x00,0x69,0xc4,0x00,0x00,0x6a,0x10,0x00,0x00,0x6a,0x82,0x00,0x00,0x6b,0x68,0x00,0x00,0x6c,0x7e,0x00,0x00,0x6c,0xfc,0x00,0x00,0x6d,0x66,0x00,0x00,0x6d,0xd0,0x00,0x00,0x6e,0x90,0x00,0x00,0x6e,0xbe,0x00,0x00,0x6e,0xee,0x00,0x00,0x6f,0x1c, +0x00,0x00,0x70,0x4e,0x00,0x00,0x71,0xe0,0x00,0x00,0x72,0x0a,0x00,0x00,0x72,0x34,0x00,0x00,0x72,0x82,0x00,0x00,0x72,0xd0,0x00,0x00,0x73,0x06,0x00,0x00,0x73,0x38,0x00,0x00,0x73,0xda,0x00,0x00,0x74,0x3c,0x00,0x00,0x74,0x6c,0x00,0x00,0x74,0xa0,0x00,0x00,0x74,0xce,0x00,0x00,0x76,0x0e,0x00,0x00,0x76,0x50,0x00,0x00,0x76,0x92, +0x00,0x00,0x77,0xae,0x00,0x00,0x78,0xa0,0x00,0x00,0x79,0x54,0x00,0x00,0x79,0x96,0x00,0x00,0x79,0xde,0x00,0x00,0x7a,0x56,0x00,0x00,0x7c,0x38,0x00,0x00,0x7c,0x68,0x00,0x00,0x7c,0x98,0x00,0x00,0x7c,0xc8,0x00,0x00,0x7c,0xfa,0x00,0x00,0x7d,0x2a,0x00,0x00,0x7d,0x58,0x00,0x00,0x7d,0x86,0x00,0x00,0x7d,0xb8,0x00,0x00,0x7d,0xe6, +0x00,0x00,0x7e,0x14,0x00,0x00,0x7e,0x42,0x00,0x00,0x7e,0x70,0x00,0x00,0x7e,0x9e,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7e,0xfc,0x00,0x00,0x7f,0x46,0x00,0x00,0x7f,0x86,0x00,0x00,0x80,0x16,0x00,0x00,0x80,0x42,0x00,0x00,0x80,0xa4,0x00,0x00,0x80,0xe2,0x00,0x00,0x81,0x7c,0x00,0x00,0x82,0x16,0x00,0x00,0x82,0x8e,0x00,0x00,0x82,0xe4, +0x00,0x00,0x83,0x26,0x00,0x00,0x84,0x22,0x00,0x00,0x84,0xb6,0x00,0x00,0x84,0xe4,0x00,0x00,0x85,0x10,0x00,0x00,0x85,0x3e,0x00,0x00,0x85,0x6a,0x00,0x00,0x85,0xb2,0x00,0x00,0x86,0xb4,0x00,0x00,0x88,0x30,0x00,0x00,0x88,0x5e,0x00,0x00,0x88,0x8c,0x00,0x00,0x89,0x50,0x00,0x00,0x8a,0x4a,0x00,0x00,0x8a,0x96,0x00,0x00,0x8a,0xf6, +0x00,0x00,0x8b,0x40,0x00,0x00,0x8b,0xd8,0x00,0x00,0x8c,0x94,0x00,0x00,0x8c,0xbe,0x00,0x00,0x8c,0xea,0x00,0x00,0x8d,0x16,0x00,0x00,0x8d,0xd4,0x00,0x00,0x8e,0x04,0x00,0x00,0x8e,0x32,0x00,0x00,0x8e,0x60,0x00,0x00,0x8e,0x78,0x00,0x00,0x8e,0x90,0x00,0x00,0x8e,0xbe,0x00,0x00,0x8e,0xec,0x00,0x00,0x8f,0x1a,0x00,0x00,0x8f,0x48, +0x00,0x00,0x90,0x80,0x00,0x00,0x90,0xac,0x00,0x00,0x90,0xbc,0x00,0x00,0x90,0xec,0x00,0x00,0x91,0x1c,0x00,0x00,0x91,0x34,0x00,0x00,0x91,0x4c,0x00,0x00,0x91,0x7a,0x00,0x00,0x91,0xa6,0x00,0x00,0x91,0xb6,0x00,0x00,0x91,0xce,0x00,0x00,0x91,0xe6,0x00,0x00,0x92,0x16,0x00,0x00,0x92,0x44,0x00,0x00,0x92,0x72,0x00,0x00,0x92,0xa2, +0x00,0x00,0x92,0xd0,0x00,0x00,0x92,0xfc,0x00,0x00,0x93,0x24,0x00,0x00,0x93,0x4a,0x00,0x00,0x93,0x78,0x00,0x00,0x93,0xa8,0x00,0x00,0x93,0xd8,0x00,0x00,0x94,0x06,0x00,0x00,0x94,0x3a,0x00,0x00,0x94,0x6c,0x00,0x00,0x94,0x8e,0x00,0x00,0x94,0xbc,0x00,0x00,0x94,0xde,0x00,0x00,0x95,0x0a,0x00,0x00,0x95,0x2c,0x00,0x00,0x95,0x4e, +0x00,0x00,0x95,0x74,0x00,0x00,0x95,0x8c,0x00,0x00,0x95,0xba,0x00,0x00,0x96,0x82,0x00,0x00,0x96,0xc0,0x00,0x00,0x96,0xf2,0x00,0x00,0x97,0x52,0x00,0x00,0x97,0x86,0x00,0x00,0x97,0xb6,0x00,0x00,0x97,0xe4,0x00,0x00,0x98,0x14,0x00,0x00,0x98,0x42,0x00,0x00,0x98,0xb0,0x00,0x00,0x99,0xd6,0x00,0x00,0x9b,0x46,0x00,0x00,0x9c,0xc6, +0x00,0x00,0x9e,0x22,0x00,0x00,0x9f,0x28,0x00,0x00,0x9f,0xf6,0x00,0x00,0xa0,0xb2,0x00,0x00,0xa2,0x28,0x00,0x00,0xa2,0x7c,0x00,0x00,0xa2,0x94,0x00,0x00,0xa2,0xfc,0x00,0x00,0xa4,0x9a,0x00,0x00,0xa4,0xc2,0x00,0x00,0xa5,0x12,0x00,0x00,0xa5,0x44,0x00,0x00,0xa5,0x7a,0x00,0x00,0xa5,0xe0,0x00,0x00,0xa6,0xd6,0x00,0x00,0xa7,0x86, +0x00,0x00,0xa7,0xea,0x00,0x00,0xa8,0x2c,0x00,0x00,0xa8,0x98,0x00,0x00,0xa8,0xf2,0x00,0x00,0xa9,0x86,0x00,0x00,0xa9,0xb4,0x00,0x00,0xa9,0xe2,0x00,0x00,0xaa,0x10,0x00,0x00,0xaa,0x40,0x00,0x00,0xaa,0x6e,0x00,0x00,0xaa,0x9c,0x00,0x00,0xaa,0xca,0x00,0x00,0xaa,0xf8,0x00,0x00,0xab,0x26,0x00,0x00,0xab,0x56,0x00,0x00,0xab,0x86, +0x00,0x00,0xab,0xb4,0x00,0x00,0xab,0xe2,0x00,0x00,0xac,0x10,0x00,0x00,0xac,0x3e,0x00,0x00,0xac,0x6c,0x00,0x00,0xac,0x92,0x00,0x00,0xad,0xd0,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x30,0x00,0x00,0xaf,0x18,0x00,0x00,0xb0,0x24,0x00,0x00,0xb0,0x52,0x00,0x00,0xb0,0x80,0x00,0x00,0xb0,0xae,0x00,0x00,0xb0,0xdc,0x00,0x00,0xb1,0x0a, +0x00,0x00,0xb1,0x38,0x00,0x00,0xb1,0x5c,0x00,0x00,0xb1,0x80,0x00,0x00,0xb1,0xae,0x00,0x00,0xb1,0xd0,0x00,0x00,0xb1,0xf6,0x00,0x00,0xb2,0x1c,0x00,0x00,0xb2,0xb8,0x00,0x00,0xb2,0xd0,0x00,0x00,0xb2,0xe8,0x00,0x00,0xb3,0x10,0x00,0x00,0xb3,0x36,0x00,0x00,0xb4,0x4a,0x00,0x00,0xb5,0x38,0x00,0x00,0xb5,0x66,0x00,0x00,0xb5,0x94, +0x00,0x00,0xb5,0xc2,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x08,0x00,0x00,0xb6,0x2c,0x00,0x00,0xb6,0x4e,0x00,0x00,0xb6,0x6e,0x00,0x00,0xb7,0x4a,0x00,0x00,0xb8,0x38,0x00,0x00,0xb8,0x66,0x00,0x00,0xb8,0x94,0x00,0x00,0xb8,0xc2,0x00,0x00,0xb8,0xf2,0x00,0x00,0xb9,0x22,0x00,0x00,0xb9,0x52,0x00,0x00,0xb9,0x6a,0x00,0x00,0xb9,0x82, +0x00,0x00,0xb9,0xb0,0x00,0x00,0xb9,0xe0,0x00,0x00,0xba,0x0e,0x00,0x00,0xba,0x3c,0x00,0x00,0xba,0xa6,0x00,0x00,0xbc,0x2c,0x00,0x00,0xbc,0x82,0x00,0x00,0xbc,0xb0,0x00,0x00,0xbc,0xde,0x00,0x00,0xbd,0x0c,0x00,0x00,0xbd,0x3c,0x00,0x00,0xbd,0x7e,0x00,0x00,0xbd,0xae,0x00,0x00,0xbd,0xde,0x00,0x00,0xbe,0x10,0x00,0x00,0xbe,0x3e, +0x00,0x00,0xbe,0x72,0x00,0x00,0xbe,0xa6,0x00,0x00,0xbe,0xda,0x00,0x00,0xbf,0x0a,0x00,0x00,0xbf,0x42,0x00,0x00,0xbf,0x6e,0x00,0x00,0xc0,0x66,0x00,0x00,0xc1,0x16,0x00,0x00,0xc1,0x44,0x00,0x00,0xc1,0x72,0x00,0x00,0xc1,0xa0,0x00,0x00,0xc1,0xce,0x00,0x00,0xc2,0x02,0x00,0x00,0xc2,0x36,0x00,0x00,0xc2,0x46,0x00,0x00,0xc2,0x72, +0x00,0x00,0xc2,0xf8,0x00,0x00,0xc3,0x24,0x00,0x00,0xc3,0x54,0x00,0x00,0xc3,0x84,0x00,0x00,0xc3,0xa8,0x00,0x00,0xc3,0xd4,0x00,0x00,0xc4,0x04,0x00,0x00,0xc4,0x34,0x00,0x00,0xc4,0x6a,0x00,0x00,0xc4,0x7a,0x00,0x00,0xc4,0x8a,0x00,0x00,0xc4,0x9a,0x00,0x00,0xc4,0xaa,0x00,0x00,0xc4,0xba,0x00,0x00,0xc4,0xca,0x00,0x00,0xc4,0xda, +0x00,0x00,0xc5,0x6e,0x00,0x00,0xc5,0x7e,0x00,0x00,0xc5,0x8e,0x00,0x00,0xc6,0x18,0x00,0x00,0xc6,0x28,0x00,0x00,0xc6,0xbc,0x00,0x00,0xc6,0xcc,0x00,0x00,0xc7,0x62,0x00,0x00,0xc7,0x72,0x00,0x00,0xc7,0x82,0x00,0x00,0xc7,0x92,0x00,0x00,0xc8,0xb4,0x00,0x00,0xc8,0xc4,0x00,0x00,0xc8,0xf6,0x00,0x00,0xc9,0x2a,0x00,0x00,0xc9,0x58, +0x00,0x00,0xc9,0x86,0x00,0x00,0xc9,0xb4,0x00,0x00,0xc9,0xe2,0x00,0x00,0xca,0x1a,0x00,0x00,0xcb,0x52,0x00,0x00,0xcc,0x3e,0x00,0x00,0xcc,0xfc,0x00,0x00,0xcd,0xc0,0x00,0x00,0xce,0xea,0x00,0x00,0xcf,0x60,0x00,0x00,0xd0,0x4a,0x00,0x00,0xd0,0xe6,0x00,0x00,0xd1,0xde,0x00,0x00,0xd2,0x80,0x00,0x00,0xd3,0xbe,0x00,0x00,0xd3,0xce, +0x00,0x00,0xd4,0xac,0x00,0x00,0xd5,0x98,0x00,0x00,0xd6,0x96,0x00,0x00,0xd7,0x8e,0x00,0x00,0xd8,0xd4,0x00,0x00,0xda,0x1e,0x00,0x00,0xda,0x50,0x00,0x00,0xda,0x84,0x00,0x00,0xda,0xb4,0x00,0x00,0xda,0xe2,0x00,0x00,0xdb,0x10,0x00,0x00,0xdb,0x42,0x00,0x00,0xdc,0x4c,0x00,0x00,0xdc,0x7e,0x00,0x00,0xdd,0x70,0x00,0x00,0xdd,0x80, +0x00,0x00,0xdd,0xb2,0x00,0x00,0xde,0xe2,0x00,0x00,0xdf,0xf2,0x00,0x00,0xe0,0xf8,0x00,0x00,0xe1,0x2a,0x00,0x00,0xe1,0x58,0x00,0x00,0xe2,0x3a,0x00,0x00,0xe2,0x4a,0x00,0x00,0xe3,0x32,0x00,0x00,0xe3,0x42,0x00,0x00,0xe3,0x52,0x00,0x00,0xe4,0x70,0x00,0x00,0xe4,0x80,0x00,0x00,0xe5,0x9e,0x00,0x00,0xe6,0xdc,0x00,0x00,0xe7,0xc4, +0x00,0x00,0xe7,0xf2,0x00,0x00,0xe8,0x02,0x00,0x00,0xe8,0xbc,0x00,0x00,0xe8,0xcc,0x00,0x00,0xe8,0xdc,0x00,0x00,0xe8,0xec,0x00,0x00,0xe8,0xfc,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0x1c,0x00,0x00,0xe9,0x2c,0x00,0x00,0xe9,0xd4,0x00,0x00,0xeb,0x50,0x00,0x00,0xeb,0x60,0x00,0x00,0xec,0x44,0x00,0x00,0xed,0x02,0x00,0x00,0xed,0xd8, +0x00,0x00,0xef,0x12,0x00,0x00,0xef,0xf4,0x00,0x00,0xf0,0xf6,0x00,0x00,0xf1,0xc0,0x00,0x00,0xf2,0xd2,0x00,0x00,0xf4,0x1c,0x00,0x00,0xf5,0x22,0x00,0x00,0xf5,0x32,0x00,0x00,0xf6,0x46,0x00,0x00,0xf7,0x42,0x00,0x00,0xf7,0xaa,0x00,0x00,0xf8,0xac,0x00,0x00,0xf8,0xbc,0x00,0x00,0xf9,0xd6,0x00,0x00,0xfa,0xde,0x00,0x00,0xfb,0xa8, +0x00,0x00,0xfb,0xd4,0x00,0x00,0xfb,0xe4,0x00,0x00,0xfc,0xb2,0x00,0x00,0xfd,0xac,0x00,0x00,0xfe,0x44,0x00,0x00,0xfe,0x54,0x00,0x00,0xfe,0xd8,0x00,0x00,0xfe,0xe8,0x00,0x00,0xfe,0xf8,0x00,0x00,0xff,0x66,0x00,0x00,0xff,0x76,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0xe8,0x00,0x01,0x01,0xac,0x00,0x01,0x02,0x4a,0x00,0x01,0x03,0x26, +0x00,0x01,0x04,0x54,0x00,0x01,0x05,0x16,0x00,0x01,0x06,0x12,0x00,0x01,0x06,0xc4,0x00,0x01,0x07,0xae,0x00,0x01,0x08,0xc8,0x00,0x01,0x09,0xc8,0x00,0x01,0x09,0xf8,0x00,0x01,0x0b,0x1c,0x00,0x01,0x0b,0x4a,0x00,0x01,0x0c,0x24,0x00,0x01,0x0c,0x34,0x00,0x01,0x0c,0x66,0x00,0x01,0x0d,0x98,0x00,0x01,0x0e,0xa4,0x00,0x01,0x0f,0xa6, +0x00,0x01,0x0f,0xd4,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x11,0x68,0x00,0x01,0x11,0xf0,0x00,0x01,0x12,0x00,0x00,0x01,0x13,0x64,0x00,0x01,0x14,0x6c,0x00,0x01,0x14,0xf8,0x00,0x01,0x15,0x9a,0x00,0x01,0x15,0xf4,0x00,0x01,0x17,0x08,0x00,0x01,0x17,0x18,0x00,0x01,0x17,0x2e,0x00,0x01,0x17,0x44,0x00,0x01,0x18,0x2a, +0x00,0x01,0x19,0x62,0x00,0x01,0x1a,0x6c,0x00,0x01,0x1b,0x42,0x00,0x01,0x1c,0x28,0x00,0x01,0x1c,0x8c,0x00,0x01,0x1c,0xce,0x00,0x01,0x1c,0xf6,0x00,0x01,0x1d,0x1e,0x00,0x01,0x1d,0x7c,0x00,0x01,0x1d,0xe2,0x00,0x01,0x1e,0x76,0x00,0x01,0x1f,0x08,0x00,0x01,0x1f,0x78,0x00,0x01,0x1f,0xe8,0x00,0x01,0x20,0xa2,0x00,0x01,0x21,0x50, +0x00,0x01,0x21,0xc6,0x00,0x01,0x22,0x68,0x00,0x01,0x22,0xde,0x00,0x01,0x23,0x56,0x00,0x01,0x24,0x1a,0x00,0x01,0x24,0xd4,0x00,0x01,0x25,0x82,0x00,0x01,0x25,0xa8,0x00,0x01,0x25,0xd0,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x2e,0x00,0x01,0x26,0x62,0x00,0x01,0x26,0x94,0x00,0x01,0x26,0xc8,0x00,0x01,0x26,0xf8,0x00,0x01,0x27,0x2c, +0x00,0x01,0x27,0x60,0x00,0x01,0x27,0x94,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x04,0x00,0x01,0x28,0x42,0x00,0x01,0x28,0x76,0x00,0x01,0x28,0xa8,0x00,0x01,0x28,0xdc,0x00,0x01,0x29,0x0e,0x00,0x01,0x29,0x54,0x00,0x01,0x29,0x88,0x00,0x01,0x29,0xba,0x00,0x01,0x29,0xea,0x00,0x01,0x2a,0x28,0x00,0x01,0x2a,0x66,0x00,0x01,0x2a,0x8c, +0x00,0x01,0x2a,0xb2,0x00,0x01,0x2a,0xe0,0x00,0x01,0x2b,0x0e,0x00,0x01,0x2b,0x40,0x00,0x01,0x2b,0x6e,0x00,0x01,0x2b,0xa0,0x00,0x01,0x2b,0xd4,0x00,0x01,0x2c,0x06,0x00,0x01,0x2c,0x36,0x00,0x01,0x2c,0x68,0x00,0x01,0x2c,0x9a,0x00,0x01,0x2c,0xcc,0x00,0x01,0x2c,0xfc,0x00,0x01,0x2d,0x3c,0x00,0x01,0x2d,0x7a,0x00,0x01,0x2d,0xa8, +0x00,0x01,0x2d,0xd4,0x00,0x01,0x2d,0xf8,0x00,0x01,0x2e,0x1e,0x00,0x01,0x2e,0x46,0x00,0x01,0x2e,0x6c,0x00,0x01,0x2e,0x9c,0x00,0x01,0x2e,0xcc,0x00,0x01,0x2e,0xfe,0x00,0x01,0x2f,0x30,0x00,0x01,0x2f,0x62,0x00,0x01,0x2f,0x94,0x00,0x01,0x2f,0xc8,0x00,0x01,0x2f,0xfc,0x00,0x01,0x30,0x2e,0x00,0x01,0x30,0x60,0x00,0x01,0x30,0x9e, +0x00,0x01,0x30,0xde,0x00,0x01,0x31,0x0c,0x00,0x01,0x31,0x3c,0x00,0x01,0x31,0x6a,0x00,0x01,0x31,0x9a,0x00,0x01,0x31,0xc8,0x00,0x01,0x31,0xf8,0x00,0x01,0x32,0x26,0x00,0x01,0x32,0x54,0x00,0x01,0x32,0x7a,0x00,0x01,0x32,0xa0,0x00,0x01,0x32,0xc6,0x00,0x01,0x32,0xee,0x00,0x01,0x33,0x1c,0x00,0x01,0x33,0x4a,0x00,0x01,0x33,0x78, +0x00,0x01,0x33,0xa6,0x00,0x01,0x33,0xd4,0x00,0x01,0x34,0x02,0x00,0x01,0x34,0x32,0x00,0x01,0x34,0x62,0x00,0x01,0x34,0x90,0x00,0x01,0x34,0xbe,0x00,0x01,0x34,0xe4,0x00,0x01,0x35,0x0a,0x00,0x01,0x35,0x30,0x00,0x01,0x35,0x58,0x00,0x01,0x35,0x86,0x00,0x01,0x35,0xb4,0x00,0x01,0x35,0xe2,0x00,0x01,0x36,0x12,0x00,0x01,0x36,0x38, +0x00,0x01,0x36,0x5e,0x00,0x01,0x36,0x8e,0x00,0x01,0x36,0xbe,0x00,0x01,0x36,0xee,0x00,0x01,0x37,0x1e,0x00,0x01,0x37,0x2e,0x00,0x01,0x37,0x3e,0x00,0x01,0x37,0x4e,0x00,0x01,0x37,0x5e,0x00,0x01,0x37,0xee,0x00,0x01,0x38,0x82,0x00,0x01,0x39,0xaa,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x86,0x00,0x01,0x3c,0x44,0x00,0x01,0x3d,0x44, +0x00,0x01,0x3e,0x0e,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0xd6,0x00,0x01,0x3f,0xe6,0x00,0x01,0x40,0x8a,0x00,0x01,0x41,0x58,0x00,0x01,0x42,0x02,0x00,0x01,0x42,0xc8,0x00,0x01,0x43,0x84,0x00,0x01,0x44,0x72,0x00,0x01,0x45,0x4a,0x00,0x01,0x45,0xf6,0x00,0x01,0x46,0x06,0x00,0x01,0x46,0xe0,0x00,0x01,0x47,0x8e,0x00,0x01,0x48,0x60, +0x00,0x01,0x49,0x2a,0x00,0x01,0x49,0x80,0x00,0x01,0x49,0xce,0x00,0x01,0x4a,0x22,0x00,0x01,0x4a,0x6e,0x00,0x01,0x4b,0x0c,0x00,0x01,0x4b,0xa0,0x00,0x01,0x4c,0x3e,0x00,0x01,0x4c,0xc6,0x00,0x01,0x4d,0xa8,0x00,0x01,0x4e,0x62,0x00,0x01,0x4e,0xba,0x00,0x01,0x4f,0x12,0x00,0x01,0x4f,0x88,0x00,0x01,0x4f,0xf4,0x00,0x01,0x50,0x88, +0x00,0x01,0x51,0x12,0x00,0x01,0x51,0x2a,0x00,0x01,0x51,0x42,0x00,0x01,0x51,0x84,0x00,0x01,0x51,0xc6,0x00,0x01,0x51,0xf6,0x00,0x01,0x52,0x24,0x00,0x01,0x52,0x58,0x00,0x01,0x52,0x8c,0x00,0x01,0x52,0xc0,0x00,0x01,0x52,0xf2,0x00,0x01,0x53,0x1c,0x00,0x01,0x53,0x46,0x00,0x01,0x53,0x76,0x00,0x01,0x53,0xa6,0x00,0x01,0x53,0xda, +0x00,0x01,0x54,0x0c,0x00,0x01,0x54,0x40,0x00,0x01,0x54,0x72,0x00,0x01,0x54,0xa2,0x00,0x01,0x54,0xd0,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x2e,0x00,0x01,0x55,0x60,0x00,0x01,0x55,0x92,0x00,0x01,0x55,0xc4,0x00,0x01,0x55,0xf6,0x00,0x01,0x56,0x24,0x00,0x01,0x56,0x52,0x00,0x01,0x56,0x82,0x00,0x01,0x56,0xb0,0x00,0x01,0x56,0xe8, +0x00,0x01,0x57,0x1e,0x00,0x01,0x57,0x4e,0x00,0x01,0x57,0x7c,0x00,0x01,0x57,0xaa,0x00,0x01,0x57,0xd8,0x00,0x01,0x58,0x08,0x00,0x01,0x58,0x36,0x00,0x01,0x58,0x68,0x00,0x01,0x58,0x9c,0x00,0x01,0x58,0xce,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x16,0x00,0x01,0x59,0x2c,0x00,0x01,0x59,0x5a,0x00,0x01,0x59,0x88,0x00,0x01,0x59,0xae, +0x00,0x01,0x59,0xd4,0x00,0x01,0x5a,0x0a,0x00,0x01,0x5a,0x40,0x00,0x01,0x5a,0x70,0x00,0x01,0x5a,0x9e,0x00,0x01,0x5a,0xd2,0x00,0x01,0x5b,0x06,0x00,0x01,0x5b,0x3a,0x00,0x01,0x5b,0x6e,0x00,0x01,0x5b,0xa2,0x00,0x01,0x5b,0xd2,0x00,0x01,0x5c,0x20,0x00,0x01,0x5c,0x6a,0x00,0x01,0x5c,0x9c,0x00,0x01,0x5c,0xce,0x00,0x01,0x5c,0xfc, +0x00,0x01,0x5d,0x2a,0x00,0x01,0x5d,0x42,0x00,0x01,0x5d,0x70,0x00,0x01,0x5d,0x88,0x00,0x01,0x5d,0xb8,0x00,0x01,0x5d,0xd0,0x00,0x01,0x5d,0xf6,0x00,0x01,0x5e,0x26,0x00,0x01,0x5e,0x54,0x00,0x01,0x5e,0x7c,0x00,0x01,0x5e,0xa2,0x00,0x01,0x5e,0xda,0x00,0x01,0x5f,0x10,0x00,0x01,0x5f,0x3e,0x00,0x01,0x5f,0x6c,0x00,0x01,0x5f,0x9e, +0x00,0x01,0x5f,0xce,0x00,0x01,0x60,0x04,0x00,0x01,0x60,0x38,0x00,0x01,0x60,0x6a,0x00,0x01,0x60,0x9c,0x00,0x01,0x60,0xce,0x00,0x01,0x61,0x02,0x00,0x01,0x61,0x32,0x00,0x01,0x61,0x62,0x00,0x01,0x61,0x92,0x00,0x01,0x61,0xc2,0x00,0x01,0x61,0xe4,0x00,0x01,0x62,0x14,0x00,0x01,0x62,0x2c,0x00,0x01,0x62,0x42,0x00,0x01,0x62,0x6c, +0x00,0x01,0x62,0xac,0x00,0x01,0x62,0xd8,0x00,0x01,0x63,0x0e,0x00,0x01,0x63,0x30,0x00,0x01,0x63,0x52,0x00,0x01,0x63,0x6a,0x00,0x01,0x63,0x80,0x00,0x01,0x63,0xa4,0x00,0x01,0x63,0xc8,0x00,0x01,0x63,0xec,0x00,0x01,0x64,0x10,0x00,0x01,0x64,0x3a,0x00,0x01,0x64,0x64,0x00,0x01,0x64,0x92,0x00,0x01,0x64,0xc6,0x00,0x01,0x64,0xec, +0x00,0x01,0x65,0x10,0x00,0x01,0x65,0x46,0x00,0x01,0x65,0x7c,0x00,0x01,0x65,0xaa,0x00,0x01,0x65,0xd8,0x00,0x01,0x66,0x14,0x00,0x01,0x66,0x50,0x00,0x01,0x66,0x80,0x00,0x01,0x66,0xb0,0x00,0x01,0x66,0xe0,0x00,0x01,0x67,0x10,0x00,0x01,0x67,0x42,0x00,0x01,0x67,0x72,0x00,0x01,0x67,0xa8,0x00,0x01,0x67,0xe0,0x00,0x01,0x68,0x0e, +0x00,0x01,0x68,0x3c,0x00,0x01,0x68,0x62,0x00,0x01,0x68,0x8a,0x00,0x01,0x68,0xb8,0x00,0x01,0x68,0xe6,0x00,0x01,0x69,0x0c,0x00,0x01,0x69,0x32,0x00,0x01,0x69,0x60,0x00,0x01,0x69,0x8e,0x00,0x01,0x69,0xc0,0x00,0x01,0x69,0xf0,0x00,0x01,0x6a,0x20,0x00,0x01,0x6a,0x50,0x00,0x01,0x6a,0x7e,0x00,0x01,0x6a,0xaa,0x00,0x01,0x6a,0xd0, +0x00,0x01,0x6a,0xf6,0x00,0x01,0x6b,0x2c,0x00,0x01,0x6b,0x62,0x00,0x01,0x6b,0x98,0x00,0x01,0x6b,0xce,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x34,0x00,0x01,0x6c,0x62,0x00,0x01,0x6c,0x92,0x00,0x01,0x6c,0xbe,0x00,0x01,0x6c,0xec,0x00,0x01,0x6d,0x1e,0x00,0x01,0x6d,0x50,0x00,0x01,0x6d,0x80,0x00,0x01,0x6d,0xb2,0x00,0x01,0x6d,0xe4, +0x00,0x01,0x6e,0x16,0x00,0x01,0x6e,0x46,0x00,0x01,0x6e,0x76,0x00,0x01,0x6e,0xac,0x00,0x01,0x6e,0xe2,0x00,0x01,0x6f,0x18,0x00,0x01,0x6f,0x4e,0x00,0x01,0x6f,0x84,0x00,0x01,0x6f,0xba,0x00,0x01,0x6f,0xe6,0x00,0x01,0x70,0x12,0x00,0x01,0x70,0x42,0x00,0x01,0x70,0x74,0x00,0x01,0x70,0xa4,0x00,0x01,0x70,0xd4,0x00,0x01,0x71,0x06, +0x00,0x01,0x71,0x38,0x00,0x01,0x71,0x6e,0x00,0x01,0x71,0xa4,0x00,0x01,0x71,0xda,0x00,0x01,0x72,0x10,0x00,0x01,0x72,0x3c,0x00,0x01,0x72,0x6a,0x00,0x01,0x72,0x9c,0x00,0x01,0x72,0xce,0x00,0x01,0x72,0xfe,0x00,0x01,0x73,0x2e,0x00,0x01,0x73,0x60,0x00,0x01,0x73,0x92,0x00,0x01,0x73,0xc4,0x00,0x01,0x73,0xf6,0x00,0x01,0x74,0x2c, +0x00,0x01,0x74,0x62,0x00,0x01,0x74,0x98,0x00,0x01,0x74,0xce,0x00,0x01,0x75,0x04,0x00,0x01,0x75,0x3a,0x00,0x01,0x75,0x6a,0x00,0x01,0x75,0x9a,0x00,0x01,0x75,0xce,0x00,0x01,0x76,0x02,0x00,0x01,0x76,0x36,0x00,0x01,0x76,0x6a,0x00,0x01,0x76,0x9e,0x00,0x01,0x76,0xd2,0x00,0x01,0x76,0xf6,0x00,0x01,0x77,0x1a,0x00,0x01,0x77,0x40, +0x00,0x01,0x77,0x66,0x00,0x01,0x77,0x8c,0x00,0x01,0x77,0xb2,0x00,0x01,0x77,0xd8,0x00,0x01,0x77,0xfe,0x00,0x01,0x78,0x2a,0x00,0x01,0x78,0x58,0x00,0x01,0x78,0x8a,0x00,0x01,0x78,0xbc,0x00,0x01,0x78,0xec,0x00,0x01,0x79,0x1e,0x00,0x01,0x79,0x4e,0x00,0x01,0x79,0x7e,0x00,0x01,0x79,0xb4,0x00,0x01,0x79,0xea,0x00,0x01,0x7a,0x20, +0x00,0x01,0x7a,0x54,0x00,0x01,0x7a,0x82,0x00,0x01,0x7a,0xb0,0x00,0x01,0x7a,0xe2,0x00,0x01,0x7b,0x14,0x00,0x01,0x7b,0x46,0x00,0x01,0x7b,0x78,0x00,0x01,0x7b,0xaa,0x00,0x01,0x7b,0xdc,0x00,0x01,0x7c,0x0e,0x00,0x01,0x7c,0x44,0x00,0x01,0x7c,0x7a,0x00,0x01,0x7c,0xb0,0x00,0x01,0x7c,0xde,0x00,0x01,0x7d,0x0e,0x00,0x01,0x7d,0x42, +0x00,0x01,0x7d,0x76,0x00,0x01,0x7d,0xa8,0x00,0x01,0x7d,0xda,0x00,0x01,0x7e,0x0e,0x00,0x01,0x7e,0x42,0x00,0x01,0x7e,0x74,0x00,0x01,0x7e,0xa6,0x00,0x01,0x7e,0xdc,0x00,0x01,0x7f,0x12,0x00,0x01,0x7f,0x48,0x00,0x01,0x7f,0x7c,0x00,0x01,0x7f,0xb0,0x00,0x01,0x7f,0xe4,0x00,0x01,0x80,0x12,0x00,0x01,0x80,0x3e,0x00,0x01,0x80,0x6c, +0x00,0x01,0x80,0x98,0x00,0x01,0x80,0xc6,0x00,0x01,0x80,0xf2,0x00,0x01,0x81,0x22,0x00,0x01,0x81,0x52,0x00,0x01,0x81,0x80,0x00,0x01,0x81,0xac,0x00,0x01,0x81,0xda,0x00,0x01,0x82,0x08,0x00,0x01,0x82,0x38,0x00,0x01,0x82,0x66,0x00,0x01,0x82,0xa0,0x00,0x01,0x82,0xdc,0x00,0x01,0x83,0x1c,0x00,0x01,0x83,0x5c,0x00,0x01,0x83,0x9a, +0x00,0x01,0x83,0xda,0x00,0x01,0x84,0x1a,0x00,0x01,0x84,0x5a,0x00,0x01,0x84,0x9c,0x00,0x01,0x84,0xde,0x00,0x01,0x85,0x26,0x00,0x01,0x85,0x6e,0x00,0x01,0x85,0xb8,0x00,0x01,0x86,0x00,0x00,0x01,0x86,0x48,0x00,0x01,0x86,0x90,0x00,0x01,0x86,0xcc,0x00,0x01,0x87,0x0a,0x00,0x01,0x87,0x4c,0x00,0x01,0x87,0x8e,0x00,0x01,0x87,0xce, +0x00,0x01,0x88,0x0e,0x00,0x01,0x88,0x50,0x00,0x01,0x88,0x92,0x00,0x01,0x88,0xd8,0x00,0x01,0x89,0x1e,0x00,0x01,0x89,0x68,0x00,0x01,0x89,0xb2,0x00,0x01,0x89,0xfc,0x00,0x01,0x8a,0x46,0x00,0x01,0x8a,0x90,0x00,0x01,0x8a,0xda,0x00,0x01,0x8b,0x18,0x00,0x01,0x8b,0x58,0x00,0x01,0x8b,0x9c,0x00,0x01,0x8b,0xe0,0x00,0x01,0x8c,0x22, +0x00,0x01,0x8c,0x64,0x00,0x01,0x8c,0xa8,0x00,0x01,0x8c,0xec,0x00,0x01,0x8d,0x32,0x00,0x01,0x8d,0x78,0x00,0x01,0x8d,0xc2,0x00,0x01,0x8e,0x0c,0x00,0x01,0x8e,0x56,0x00,0x01,0x8e,0x9e,0x00,0x01,0x8e,0xe6,0x00,0x01,0x8f,0x2e,0x00,0x01,0x8f,0x5e,0x00,0x01,0x8f,0x8e,0x00,0x01,0x8f,0xca,0x00,0x01,0x8f,0xee,0x00,0x01,0x90,0x28, +0x00,0x01,0x90,0x56,0x00,0x01,0x90,0x92,0x00,0x01,0x90,0xc0,0x00,0x01,0x90,0xee,0x00,0x01,0x91,0x1e,0x00,0x01,0x91,0x4e,0x00,0x01,0x91,0x74,0x00,0x01,0x91,0xca,0x00,0x01,0x92,0x1c,0x00,0x01,0x92,0x78,0x00,0x01,0x92,0xc2,0x00,0x01,0x93,0x64,0x00,0x01,0x93,0xa4,0x00,0x01,0x93,0xcc,0x00,0x01,0x94,0x0a,0x00,0x01,0x94,0x36, +0x00,0x01,0x94,0x76,0x00,0x01,0x94,0xa8,0x00,0x01,0x94,0xda,0x00,0x01,0x95,0x0c,0x00,0x01,0x95,0x3e,0x00,0x01,0x95,0x64,0x00,0x01,0x95,0xd2,0x00,0x01,0x96,0x4a,0x00,0x01,0x96,0xec,0x00,0x01,0x97,0x1c,0x00,0x01,0x97,0x4c,0x00,0x01,0x97,0x84,0x00,0x01,0x97,0xbc,0x00,0x01,0x97,0xec,0x00,0x01,0x98,0x24,0x00,0x01,0x98,0x52, +0x00,0x01,0x98,0x80,0x00,0x01,0x98,0xb0,0x00,0x01,0x98,0xe0,0x00,0x01,0x99,0x54,0x00,0x01,0x99,0xca,0x00,0x01,0x9a,0x6c,0x00,0x01,0x9a,0x9c,0x00,0x01,0x9a,0xcc,0x00,0x01,0x9b,0x02,0x00,0x01,0x9b,0x38,0x00,0x01,0x9b,0x66,0x00,0x01,0x9b,0x94,0x00,0x01,0x9b,0xc2,0x00,0x01,0x9b,0xf8,0x00,0x01,0x9c,0x26,0x00,0x01,0x9c,0x54, +0x00,0x01,0x9c,0x86,0x00,0x01,0x9c,0xb8,0x00,0x01,0x9c,0xea,0x00,0x01,0x9d,0x70,0x00,0x01,0x9d,0xf8,0x00,0x01,0x9e,0x24,0x00,0x01,0x9e,0x64,0x00,0x01,0x9e,0x8a,0x00,0x01,0x9e,0xc8,0x00,0x01,0x9e,0xf6,0x00,0x01,0x9f,0x34,0x00,0x01,0x9f,0x64,0x00,0x01,0x9f,0x94,0x00,0x01,0x9f,0xc6,0x00,0x01,0x9f,0xf8,0x00,0x01,0xa0,0x1e, +0x00,0x01,0xa0,0x4c,0x00,0x01,0xa0,0xa6,0x00,0x01,0xa0,0xde,0x00,0x01,0xa1,0x3c,0x00,0x01,0xa1,0x64,0x00,0x01,0xa1,0x8c,0x00,0x01,0xa1,0xdc,0x00,0x01,0xa2,0x16,0x00,0x01,0xa2,0x7c,0x00,0x01,0xa2,0xf0,0x00,0x01,0xa3,0x46,0x00,0x01,0xa3,0x7c,0x00,0x01,0xa3,0xa4,0x00,0x01,0xa3,0xe4,0x00,0x01,0xa4,0x3c,0x00,0x01,0xa4,0xb2, +0x00,0x01,0xa4,0xfc,0x00,0x01,0xa5,0x56,0x00,0x01,0xa5,0xb2,0x00,0x01,0xa6,0x0c,0x00,0x01,0xa6,0x68,0x00,0x01,0xa6,0x9a,0x00,0x01,0xa6,0xce,0x00,0x01,0xa7,0x1a,0x00,0x01,0xa7,0x6a,0x00,0x01,0xa7,0x9e,0x00,0x01,0xa7,0xdc,0x00,0x01,0xa8,0x2e,0x00,0x01,0xa8,0x72,0x00,0x01,0xa8,0xb6,0x00,0x01,0xa9,0x16,0x00,0x01,0xa9,0x28, +0x00,0x01,0xa9,0x64,0x00,0x01,0xa9,0xa2,0x00,0x01,0xaa,0x08,0x00,0x01,0xaa,0x1a,0x00,0x01,0xaa,0x82,0x00,0x01,0xaa,0x94,0x00,0x01,0xaa,0xa6,0x00,0x01,0xaa,0xd6,0x00,0x01,0xab,0x1c,0x00,0x01,0xab,0x9e,0x00,0x01,0xab,0xdc,0x00,0x01,0xac,0x1a,0x00,0x01,0xac,0x74,0x00,0x01,0xac,0x86,0x00,0x01,0xac,0xe6,0x00,0x01,0xac,0xf8, +0x00,0x01,0xad,0x20,0x00,0x01,0xad,0x32,0x00,0x01,0xad,0x90,0x00,0x01,0xad,0xb8,0x00,0x01,0xad,0xca,0x00,0x01,0xae,0x14,0x00,0x01,0xae,0x5e,0x00,0x01,0xae,0xb2,0x00,0x01,0xae,0xfa,0x00,0x01,0xaf,0x44,0x00,0x01,0xaf,0xd2,0x00,0x01,0xb0,0x0e,0x00,0x01,0xb0,0x6e,0x00,0x01,0xb0,0xb0,0x00,0x01,0xb0,0xda,0x00,0x01,0xb1,0x06, +0x00,0x01,0xb1,0x18,0x00,0x01,0xb1,0x78,0x00,0x01,0xb2,0x00,0x00,0x01,0xb2,0x50,0x00,0x01,0xb2,0x90,0x00,0x01,0xb2,0xc8,0x00,0x01,0xb3,0x10,0x00,0x01,0xb3,0x40,0x00,0x01,0xb3,0xcc,0x00,0x01,0xb4,0x80,0x00,0x01,0xb5,0x20,0x00,0x01,0xb5,0x80,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x66,0x00,0x01,0xb6,0xaa, +0x00,0x01,0xb7,0x62,0x00,0x01,0xb8,0x2c,0x00,0x01,0xb8,0xa2,0x00,0x01,0xb9,0x3a,0x00,0x01,0xb9,0xb0,0x00,0x01,0xba,0x48,0x00,0x01,0xba,0xba,0x00,0x01,0xbb,0x6e,0x00,0x01,0xbc,0x1e,0x00,0x01,0xbc,0xb8,0x00,0x01,0xbd,0x46,0x00,0x01,0xbd,0xba,0x00,0x01,0xbe,0x50,0x00,0x01,0xbf,0x0c,0x00,0x01,0xbf,0x6e,0x00,0x01,0xc0,0x20, +0x00,0x01,0xc0,0x94,0x00,0x01,0xc1,0x76,0x00,0x01,0xc1,0xfa,0x00,0x01,0xc2,0xa4,0x00,0x01,0xc2,0xec,0x00,0x01,0xc3,0x54,0x00,0x01,0xc3,0xd4,0x00,0x01,0xc4,0x50,0x00,0x01,0xc4,0xb8,0x00,0x01,0xc5,0x8a,0x00,0x01,0xc6,0x2a,0x00,0x01,0xc6,0xb6,0x00,0x01,0xc7,0x30,0x00,0x01,0xc7,0xd8,0x00,0x01,0xc8,0x88,0x00,0x01,0xc9,0x2e, +0x00,0x01,0xc9,0xcc,0x00,0x01,0xca,0x7a,0x00,0x01,0xcb,0x16,0x00,0x01,0xcb,0xe8,0x00,0x01,0xcc,0xae,0x00,0x01,0xcd,0x1e,0x00,0x01,0xcd,0xbc,0x00,0x01,0xce,0x56,0x00,0x01,0xce,0xc0,0x00,0x01,0xcf,0x4a,0x00,0x01,0xcf,0xb8,0x00,0x01,0xd0,0x62,0x00,0x01,0xd0,0xe0,0x00,0x01,0xd1,0x5c,0x00,0x01,0xd1,0xf0,0x00,0x01,0xd2,0x92, +0x00,0x01,0xd3,0x32,0x00,0x01,0xd3,0xd0,0x00,0x01,0xd4,0x6c,0x00,0x01,0xd4,0xfe,0x00,0x01,0xd5,0xc2,0x00,0x01,0xd6,0x8a,0x00,0x01,0xd7,0x26,0x00,0x01,0xd7,0xbc,0x00,0x01,0xd8,0x5c,0x00,0x01,0xd8,0xd6,0x00,0x01,0xd9,0x00,0x00,0x01,0xd9,0x4e,0x00,0x01,0xd9,0xe4,0x00,0x01,0xd9,0xf4,0x00,0x01,0xda,0x2a,0x00,0x01,0xda,0x60, +0x00,0x01,0xda,0x96,0x00,0x01,0xda,0xbe,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x00,0x00,0x01,0xdb,0x28,0x00,0x01,0xdb,0x52,0x00,0x01,0xdb,0x7c,0x00,0x01,0xdb,0xac,0x00,0x01,0xdb,0xd8,0x00,0x01,0xdc,0x06,0x00,0x01,0xdc,0x34,0x00,0x01,0xdc,0x62,0x00,0x01,0xdc,0x90,0x00,0x01,0xdc,0xbe,0x00,0x01,0xdc,0xec,0x00,0x01,0xdd,0x22, +0x00,0x01,0xdd,0x56,0x00,0x01,0xdd,0x8c,0x00,0x01,0xdd,0xc0,0x00,0x01,0xdd,0xfa,0x00,0x01,0xde,0x2e,0x00,0x01,0xde,0x66,0x00,0x01,0xde,0x9a,0x00,0x01,0xdf,0x3a,0x00,0x01,0xdf,0x72,0x00,0x01,0xdf,0xa6,0x00,0x01,0xdf,0xd8,0x00,0x01,0xe0,0x08,0x00,0x01,0xe0,0x38,0x00,0x01,0xe0,0x66,0x00,0x01,0xe1,0x38,0x00,0x01,0xe2,0x3a, +0x00,0x01,0xe2,0x68,0x00,0x01,0xe2,0x96,0x00,0x01,0xe2,0xc6,0x00,0x01,0xe2,0xf6,0x00,0x01,0xe3,0xd0,0x00,0x01,0xe4,0x92,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe4,0xee,0x00,0x01,0xe5,0x1e,0x00,0x01,0xe5,0x4c,0x00,0x01,0xe5,0x7a,0x00,0x01,0xe5,0xa2,0x00,0x01,0xe5,0xca,0x00,0x01,0xe5,0xf2,0x00,0x01,0xe6,0x20,0x00,0x01,0xe6,0x4e, +0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x62,0x00,0x01,0xe7,0x92,0x00,0x01,0xe7,0xc2,0x00,0x01,0xe7,0xf6,0x00,0x01,0xe8,0x2a,0x00,0x01,0xe8,0x58,0x00,0x01,0xe8,0x84,0x00,0x01,0xe8,0xb8,0x00,0x01,0xe8,0xec,0x00,0x01,0xe9,0x1c,0x00,0x01,0xe9,0x4a,0x00,0x01,0xe9,0x7e,0x00,0x01,0xe9,0xb2,0x00,0x01,0xe9,0xe0,0x00,0x01,0xea,0x0e, +0x00,0x01,0xea,0x42,0x00,0x01,0xea,0x76,0x00,0x01,0xea,0xa4,0x00,0x01,0xea,0xd0,0x00,0x01,0xea,0xf4,0x00,0x01,0xeb,0x28,0x00,0x01,0xeb,0x4a,0x00,0x01,0xeb,0x78,0x00,0x01,0xeb,0xac,0x00,0x01,0xeb,0xe0,0x00,0x01,0xec,0x0e,0x00,0x01,0xec,0x3a,0x00,0x01,0xed,0x02,0x00,0x01,0xed,0xc2,0x00,0x01,0xed,0xf0,0x00,0x01,0xee,0x20, +0x00,0x01,0xee,0x90,0x00,0x01,0xef,0x72,0x00,0x01,0xf0,0x48,0x00,0x01,0xf0,0xb8,0x00,0x01,0xf1,0x2c,0x00,0x01,0xf1,0x5a,0x00,0x01,0xf1,0x88,0x00,0x01,0xf1,0xbe,0x00,0x01,0xf1,0xf2,0x00,0x01,0xf2,0x24,0x00,0x01,0xf2,0x54,0x00,0x01,0xf2,0x82,0x00,0x01,0xf2,0xb0,0x00,0x01,0xf2,0xe2,0x00,0x01,0xf3,0x12,0x00,0x01,0xf3,0x40, +0x00,0x01,0xf3,0x6e,0x00,0x01,0xf3,0xfa,0x00,0x01,0xf4,0x5a,0x00,0x01,0xf4,0xf6,0x00,0x01,0xf5,0x88,0x00,0x01,0xf6,0x10,0x00,0x01,0xf6,0xbe,0x00,0x01,0xf7,0x62,0x00,0x01,0xf8,0x06,0x00,0x01,0xf8,0xb4,0x00,0x01,0xf9,0x20,0x00,0x01,0xf9,0xea,0x00,0x01,0xfa,0x98,0x00,0x01,0xfb,0x46,0x00,0x01,0xfb,0xe6,0x00,0x01,0xfc,0xda, +0x00,0x01,0xfd,0x82,0x00,0x01,0xfe,0x2c,0x00,0x01,0xff,0x1e,0x00,0x01,0xff,0xce,0x00,0x02,0x00,0x5c,0x00,0x02,0x01,0x30,0x00,0x02,0x01,0x40,0x00,0x02,0x01,0xd4,0x00,0x02,0x02,0x46,0x00,0x02,0x02,0xdc,0x00,0x02,0x03,0x42,0x00,0x02,0x03,0xca,0x00,0x02,0x04,0x76,0x00,0x02,0x05,0x16,0x00,0x02,0x05,0x5e,0x00,0x02,0x05,0xbc, +0x00,0x02,0x06,0x66,0x00,0x02,0x07,0x04,0x00,0x02,0x07,0x58,0x00,0x02,0x08,0x0e,0x00,0x02,0x08,0xb2,0x00,0x02,0x09,0x5a,0x00,0x02,0x0a,0x22,0x00,0x02,0x0a,0xa8,0x00,0x02,0x0b,0x2c,0x00,0x02,0x0b,0x98,0x00,0x02,0x0c,0x2a,0x00,0x02,0x0c,0xd6,0x00,0x02,0x0d,0x8a,0x00,0x02,0x0e,0x44,0x00,0x02,0x0e,0x98,0x00,0x02,0x0e,0xec, +0x00,0x02,0x0f,0x68,0x00,0x02,0x0f,0xc2,0x00,0x02,0x10,0x3e,0x00,0x02,0x10,0x8a,0x00,0x02,0x10,0xd6,0x00,0x02,0x11,0x66,0x00,0x02,0x12,0x04,0x00,0x02,0x12,0xda,0x00,0x02,0x13,0x4c,0x00,0x02,0x13,0xf6,0x00,0x02,0x14,0x5c,0x00,0x02,0x15,0x32,0x00,0x02,0x15,0xa6,0x00,0x02,0x16,0x1a,0x00,0x02,0x16,0xc4,0x00,0x02,0x17,0x56, +0x00,0x02,0x17,0xce,0x00,0x02,0x18,0x20,0x00,0x02,0x18,0xbe,0x00,0x02,0x19,0x36,0x00,0x02,0x19,0xa4,0x00,0x02,0x1a,0x28,0x00,0x02,0x1b,0x06,0x00,0x02,0x1b,0x9c,0x00,0x02,0x1c,0xbe,0x00,0x02,0x1d,0x38,0x00,0x02,0x1d,0xba,0x00,0x02,0x1e,0x3a,0x00,0x02,0x1e,0xb0,0x00,0x02,0x1f,0x6c,0x00,0x02,0x20,0x02,0x00,0x02,0x20,0xb2, +0x00,0x02,0x21,0x80,0x00,0x02,0x21,0xe4,0x00,0x02,0x22,0xca,0x00,0x02,0x23,0x2e,0x00,0x02,0x23,0x66,0x00,0x02,0x24,0x14,0x00,0x02,0x24,0xc4,0x00,0x02,0x25,0x72,0x00,0x02,0x26,0x3a,0x00,0x02,0x27,0x50,0x00,0x02,0x28,0xca,0x00,0x02,0x29,0xa0,0x00,0x02,0x2a,0x68,0x00,0x02,0x2b,0x74,0x00,0x02,0x2c,0x4c,0x00,0x02,0x2c,0xf4, +0x00,0x02,0x2d,0x56,0x00,0x02,0x2e,0x36,0x00,0x02,0x2e,0xac,0x00,0x02,0x2f,0x56,0x00,0x02,0x30,0x5e,0x00,0x02,0x31,0x02,0x00,0x02,0x31,0x32,0x00,0x02,0x31,0x66,0x00,0x02,0x32,0x1e,0x00,0x02,0x32,0xfe,0x00,0x02,0x34,0x18,0x00,0x02,0x34,0xb6,0x00,0x02,0x35,0x4e,0x00,0x02,0x36,0x10,0x00,0x02,0x36,0xc8,0x00,0x02,0x37,0x3e, +0x00,0x02,0x37,0xa0,0x00,0x02,0x38,0x02,0x00,0x02,0x38,0xd0,0x00,0x02,0x39,0xc4,0x00,0x02,0x3a,0xa8,0x00,0x02,0x3b,0xba,0x00,0x02,0x3c,0xc8,0x00,0x02,0x3d,0x58,0x00,0x02,0x3d,0xea,0x00,0x02,0x3e,0xb2,0x00,0x02,0x40,0x00,0x00,0x02,0x40,0xd4,0x00,0x02,0x41,0xb8,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd0,0x00,0x02,0x44,0xce, +0x00,0x02,0x45,0xd2,0x00,0x02,0x46,0x4c,0x00,0x02,0x46,0xd6,0x00,0x02,0x47,0xba,0x00,0x02,0x48,0x70,0x00,0x02,0x48,0x80,0x00,0x02,0x48,0x90,0x00,0x02,0x48,0xa0,0x00,0x02,0x49,0x1c,0x00,0x02,0x49,0x96,0x00,0x02,0x4a,0x52,0x00,0x02,0x4a,0xf6,0x00,0x02,0x4b,0x92,0x00,0x02,0x4c,0x2c,0x00,0x02,0x4c,0xfa,0x00,0x02,0x4d,0xc8, +0x00,0x02,0x4e,0x80,0x00,0x02,0x4f,0x38,0x00,0x02,0x50,0x42,0x00,0x02,0x51,0x58,0x00,0x02,0x52,0x78,0x00,0x02,0x53,0x64,0x00,0x02,0x54,0x86,0x00,0x02,0x55,0xb0,0x00,0x02,0x56,0xe0,0x00,0x02,0x58,0x0e,0x00,0x02,0x58,0xa4,0x00,0x02,0x59,0x40,0x00,0x02,0x5a,0x18,0x00,0x02,0x5a,0xee,0x00,0x02,0x5b,0x6c,0x00,0x02,0x5b,0xec, +0x00,0x02,0x5c,0x20,0x00,0x02,0x5c,0x54,0x00,0x02,0x5d,0x9c,0x00,0x02,0x5e,0xbc,0x00,0x02,0x5f,0xa4,0x00,0x02,0x60,0x72,0x00,0x02,0x61,0xbc,0x00,0x02,0x62,0xf2,0x00,0x02,0x63,0x14,0x00,0x02,0x63,0x44,0x00,0x02,0x63,0xca,0x00,0x02,0x64,0x42,0x00,0x02,0x65,0x62,0x00,0x02,0x65,0xb6,0x00,0x02,0x66,0x08,0x00,0x02,0x66,0x1a, +0x00,0x02,0x66,0x2c,0x00,0x02,0x68,0x1a,0x00,0x02,0x69,0x42,0x00,0x02,0x69,0xda,0x00,0x02,0x6a,0x6e,0x00,0x02,0x6b,0x40,0x00,0x02,0x6c,0x2e,0x00,0x02,0x6c,0xc4,0x00,0x02,0x6d,0x56,0x00,0x02,0x6e,0x58,0x00,0x02,0x6f,0x4a,0x00,0x02,0x6f,0xee,0x00,0x02,0x70,0x82,0x00,0x02,0x71,0x0c,0x00,0x02,0x71,0x8a,0x00,0x02,0x71,0xfc, +0x00,0x02,0x72,0x6e,0x00,0x02,0x73,0x12,0x00,0x02,0x73,0xb0,0x00,0x02,0x74,0xda,0x00,0x02,0x75,0xf8,0x00,0x02,0x76,0xc0,0x00,0x02,0x77,0x78,0x00,0x02,0x77,0xea,0x00,0x02,0x78,0x5c,0x00,0x02,0x78,0xe8,0x00,0x02,0x79,0x74,0x00,0x02,0x79,0xf6,0x00,0x02,0x7a,0x76,0x00,0x02,0x7b,0x4a,0x00,0x02,0x7c,0x1e,0x00,0x02,0x7c,0x34, +0x00,0x02,0x7c,0x4a,0x00,0x02,0x7c,0x5a,0x00,0x02,0x7c,0x88,0x00,0x02,0x7c,0xb6,0x00,0x02,0x7d,0x56,0x00,0x02,0x7d,0xf2,0x00,0x02,0x7e,0x84,0x00,0x02,0x7f,0x12,0x00,0x02,0x7f,0x8c,0x00,0x02,0x80,0x0a,0x00,0x02,0x80,0x2c,0x00,0x02,0x80,0x4e,0x00,0x02,0x80,0x82,0x00,0x02,0x80,0xb2,0x00,0x02,0x80,0xc2,0x00,0x02,0x80,0xd2, +0x00,0x02,0x81,0x00,0x00,0x02,0x81,0x2e,0x00,0x02,0x81,0xd0,0x00,0x02,0x81,0xe0,0x00,0x02,0x82,0x14,0x00,0x02,0x82,0x44,0x00,0x02,0x82,0x76,0x00,0x02,0x82,0xaa,0x00,0x02,0x82,0xde,0x00,0x02,0x83,0x10,0x00,0x02,0x83,0x9c,0x00,0x02,0x83,0xac,0x00,0x02,0x83,0xda,0x00,0x02,0x84,0x08,0x00,0x02,0x84,0x3a,0x00,0x02,0x84,0x6c, +0x00,0x02,0x84,0x9e,0x00,0x02,0x84,0xd0,0x00,0x02,0x85,0x02,0x00,0x02,0x85,0x34,0x00,0x02,0x85,0x68,0x00,0x02,0x85,0x9a,0x00,0x02,0x85,0xc8,0x00,0x02,0x85,0xf6,0x00,0x02,0x86,0x28,0x00,0x02,0x86,0x58,0x00,0x02,0x86,0x8a,0x00,0x02,0x86,0xbc,0x00,0x02,0x86,0xee,0x00,0x02,0x87,0x22,0x00,0x02,0x87,0x54,0x00,0x02,0x87,0x88, +0x00,0x02,0x87,0xee,0x00,0x02,0x87,0xfe,0x00,0x02,0x88,0xa6,0x00,0x02,0x89,0x5c,0x00,0x02,0x8a,0x18,0x00,0x02,0x8a,0xcc,0x00,0x02,0x8b,0x7a,0x00,0x02,0x8c,0x22,0x00,0x02,0x8c,0xba,0x00,0x02,0x8d,0x5a,0x00,0x02,0x8d,0xea,0x00,0x02,0x8e,0x7c,0x00,0x02,0x8f,0x20,0x00,0x02,0x8f,0xb8,0x00,0x02,0x90,0x38,0x00,0x02,0x90,0xb6, +0x00,0x02,0x91,0x46,0x00,0x02,0x92,0x10,0x00,0x02,0x92,0xb0,0x00,0x02,0x93,0x1e,0x00,0x02,0x93,0xa6,0x00,0x02,0x94,0x08,0x00,0x02,0x94,0xc8,0x00,0x02,0x95,0x7e,0x00,0x02,0x95,0xec,0x00,0x02,0x96,0x5c,0x00,0x02,0x96,0xc6,0x00,0x02,0x97,0x34,0x00,0x02,0x97,0xc8,0x00,0x02,0x98,0x34,0x00,0x02,0x98,0xdc,0x00,0x02,0x99,0x40, +0x00,0x02,0x99,0xb8,0x00,0x02,0x9a,0x48,0x00,0x02,0x9a,0xb0,0x00,0x02,0x9a,0xda,0x00,0x02,0x9b,0x16,0x00,0x02,0x9b,0x66,0x00,0x02,0x9b,0xd8,0x00,0x02,0x9c,0x74,0x00,0x02,0x9c,0xec,0x00,0x02,0x9d,0x4e,0x00,0x02,0x9d,0xb2,0x00,0x02,0x9e,0x36,0x00,0x02,0x9e,0xd0,0x00,0x02,0x9f,0x4c,0x00,0x02,0x9f,0xbe,0x00,0x02,0x9f,0xf4, +0x00,0x02,0xa0,0x48,0x00,0x02,0xa0,0x7c,0x00,0x02,0xa0,0x8c,0x00,0x02,0xa0,0xbe,0x00,0x02,0xa1,0x0a,0x00,0x02,0xa1,0x56,0x00,0x02,0xa1,0xca,0x00,0x02,0xa2,0x40,0x00,0x02,0xa2,0x9e,0x00,0x02,0xa2,0xfc,0x00,0x02,0xa3,0x46,0x00,0x02,0xa3,0x94,0x00,0x02,0xa3,0xc0,0x00,0x02,0xa3,0xd0,0x00,0x02,0xa3,0xe0,0x00,0x02,0xa4,0x10, +0x00,0x02,0xa4,0x3e,0x00,0x02,0xa4,0x50,0x00,0x02,0xa4,0x62,0x00,0x02,0xa4,0xaa,0x00,0x02,0xa4,0xda,0x00,0x02,0xa4,0xec,0x00,0x02,0xa4,0xfe,0x00,0x02,0xa5,0x42,0x00,0x02,0xa5,0x84,0x00,0x02,0xa5,0xd6,0x00,0x02,0xa6,0x02,0x00,0x02,0xa6,0x70,0x00,0x02,0xa6,0xee,0x00,0x02,0xa7,0x96,0x00,0x02,0xa7,0xc6,0x00,0x02,0xa8,0x7a, +0x00,0x02,0xa8,0xdc,0x00,0x02,0xa8,0xec,0x00,0x02,0xa9,0x24,0x00,0x02,0xa9,0x66,0x00,0x02,0xa9,0xa8,0x00,0x02,0xa9,0xea,0x00,0x02,0xaa,0x22,0x00,0x02,0xaa,0x52,0x00,0x02,0xaa,0x92,0x00,0x02,0xaa,0xd2,0x00,0x02,0xab,0x1c,0x00,0x02,0xab,0x7a,0x00,0x02,0xab,0xe4,0x00,0x02,0xac,0x3e,0x00,0x02,0xac,0xb6,0x00,0x02,0xad,0x3c, +0x00,0x02,0xad,0xac,0x00,0x02,0xae,0x0e,0x00,0x02,0xae,0x94,0x00,0x02,0xae,0xf4,0x00,0x02,0xaf,0x5e,0x00,0x02,0xaf,0xd2,0x00,0x02,0xb0,0x42,0x00,0x02,0xb0,0xa0,0x00,0x02,0xb1,0x46,0x00,0x02,0xb1,0xde,0x00,0x02,0xb2,0x4a,0x00,0x02,0xb2,0xd8,0x00,0x02,0xb3,0x32,0x00,0x02,0xb3,0xa0,0x00,0x02,0xb4,0x4a,0x00,0x02,0xb4,0xf0, +0x00,0x02,0xb5,0x86,0x00,0x02,0xb5,0xf6,0x00,0x02,0xb6,0x78,0x00,0x02,0xb6,0xdc,0x00,0x02,0xb7,0x88,0x00,0x02,0xb8,0x46,0x00,0x02,0xb8,0xf2,0x00,0x02,0xb9,0x84,0x00,0x02,0xb9,0xe2,0x00,0x02,0xba,0x4e,0x00,0x02,0xba,0xa4,0x00,0x02,0xbb,0x26,0x00,0x02,0xbb,0xa4,0x00,0x02,0xbc,0x2a,0x00,0x02,0xbc,0xb6,0x00,0x02,0xbd,0x10, +0x00,0x02,0xbd,0x7c,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x5a,0x00,0x02,0xbe,0xca,0x00,0x02,0xbf,0x4e,0x00,0x02,0xbf,0xde,0x00,0x02,0xc0,0x44,0x00,0x02,0xc0,0xbe,0x00,0x02,0xc1,0x3a,0x00,0x02,0xc1,0xb2,0x00,0x02,0xc2,0x58,0x00,0x02,0xc2,0xf0,0x00,0x02,0xc3,0x80,0x00,0x02,0xc3,0xde,0x00,0x02,0xc4,0x7c,0x00,0x02,0xc4,0xf8, +0x00,0x02,0xc5,0x8a,0x00,0x02,0xc6,0x2e,0x00,0x02,0xc6,0xd8,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xcc,0x00,0x02,0xc8,0x20,0x00,0x02,0xc8,0x88,0x00,0x02,0xc9,0x2e,0x00,0x02,0xc9,0xd8,0x00,0x02,0xca,0xa2,0x00,0x02,0xcb,0x48,0x00,0x02,0xcb,0xaa,0x00,0x02,0xcc,0x0a,0x00,0x02,0xcc,0x98,0x00,0x02,0xcd,0x1e,0x00,0x02,0xcd,0xac, +0x00,0x02,0xce,0x0c,0x00,0x02,0xce,0x70,0x00,0x02,0xce,0xda,0x00,0x02,0xcf,0x42,0x00,0x02,0xcf,0xaa,0x00,0x02,0xd0,0x22,0x00,0x02,0xd0,0xaa,0x00,0x02,0xd1,0x3e,0x00,0x02,0xd1,0xaa,0x00,0x02,0xd2,0x12,0x00,0x02,0xd2,0x76,0x00,0x02,0xd3,0x22,0x00,0x02,0xd3,0xe2,0x00,0x02,0xd4,0x90,0x00,0x02,0xd5,0x1e,0x00,0x02,0xd5,0x7c, +0x00,0x02,0xd5,0xe8,0x00,0x02,0xd6,0x58,0x00,0x02,0xd6,0xfc,0x00,0x02,0xd7,0xa2,0x00,0x02,0xd8,0x66,0x00,0x02,0xd9,0x08,0x00,0x02,0xd9,0x6c,0x00,0x02,0xd9,0xfc,0x00,0x02,0xda,0x6e,0x00,0x02,0xdb,0x06,0x00,0x02,0xdb,0x84,0x00,0x02,0xdb,0xfe,0x00,0x02,0xdc,0x6a,0x00,0x02,0xdc,0xf8,0x00,0x02,0xdd,0x54,0x00,0x02,0xdd,0xb2, +0x00,0x02,0xde,0x38,0x00,0x02,0xde,0xb4,0x00,0x02,0xdf,0x1c,0x00,0x02,0xdf,0x80,0x00,0x02,0xdf,0xd4,0x00,0x02,0xe0,0x42,0x00,0x02,0xe0,0xaa,0x00,0x02,0xe1,0x28,0x00,0x02,0xe1,0x9e,0x00,0x02,0xe2,0x18,0x00,0x02,0xe2,0x98,0x00,0x02,0xe2,0xf4,0x00,0x02,0xe3,0x5a,0x00,0x02,0xe3,0xbe,0x00,0x02,0xe4,0x5e,0x00,0x02,0xe5,0x00, +0x00,0x02,0xe5,0xbe,0x00,0x02,0xe6,0x6e,0x00,0x02,0xe6,0xca,0x00,0x02,0xe7,0x42,0x00,0x02,0xe7,0xa0,0x00,0x02,0xe8,0x2a,0x00,0x02,0xe8,0xc2,0x00,0x02,0xe9,0x50,0x00,0x02,0xe9,0xb6,0x00,0x02,0xea,0x14,0x00,0x02,0xea,0xa2,0x00,0x02,0xeb,0x14,0x00,0x02,0xeb,0xae,0x00,0x02,0xec,0x42,0x00,0x02,0xec,0xb2,0x00,0x02,0xed,0x22, +0x00,0x02,0xed,0x9a,0x00,0x02,0xed,0xf8,0x00,0x02,0xee,0x58,0x00,0x02,0xee,0xd2,0x00,0x02,0xef,0x2c,0x00,0x02,0xef,0x8c,0x00,0x02,0xef,0xe6,0x00,0x02,0xf0,0x42,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xaa,0x00,0x02,0xf0,0xfa,0x00,0x02,0xf1,0x4e,0x00,0x02,0xf1,0xa0,0x00,0x02,0xf1,0xf0,0x00,0x02,0xf3,0xf0,0x00,0x02,0xf5,0x5c, +0x00,0x02,0xf7,0x10,0x00,0x02,0xf8,0xba,0x00,0x02,0xf9,0x3e,0x00,0x02,0xf9,0xde,0x00,0x02,0xfa,0x1a,0x00,0x02,0xfa,0x56,0x00,0x02,0xfa,0x8c,0x00,0x02,0xfa,0xc2,0x00,0x02,0xfb,0x3c,0x00,0x02,0xfb,0x4e,0x00,0x02,0xfb,0x60,0x00,0x02,0xfb,0x72,0x00,0x02,0xfb,0x84,0x00,0x02,0xfb,0x96,0x00,0x02,0xfb,0xd2,0x00,0x02,0xfc,0x0a, +0x00,0x02,0xfc,0x44,0x00,0x02,0xfc,0x7c,0x00,0x02,0xfc,0xd2,0x00,0x02,0xfd,0x1a,0x00,0x02,0xfd,0x92,0x00,0x02,0xfd,0xd0,0x00,0x02,0xfe,0x1a,0x00,0x02,0xfe,0x9a,0x00,0x02,0xff,0x72,0x00,0x02,0xff,0x84,0x00,0x02,0xff,0x96,0x00,0x03,0x00,0x08,0x00,0x03,0x00,0x54,0x00,0x03,0x00,0xa8,0x00,0x03,0x00,0xdc,0x00,0x03,0x01,0x10, +0x00,0x03,0x01,0x20,0x00,0x03,0x01,0x30,0x00,0x03,0x01,0xb0,0x00,0x03,0x02,0x5c,0x00,0x03,0x03,0x6e,0x00,0x03,0x04,0x24,0x00,0x03,0x04,0x34,0x00,0x03,0x04,0x90,0x00,0x03,0x05,0x1e,0x00,0x03,0x05,0x80,0x00,0x03,0x06,0x20,0x00,0x03,0x06,0x7c,0x00,0x03,0x06,0xc6,0x00,0x03,0x06,0xd6,0x00,0x03,0x07,0x50,0x00,0x03,0x07,0x60, +0x00,0x03,0x07,0x70,0x00,0x03,0x07,0x80,0x00,0x03,0x07,0xfa,0x00,0x03,0x08,0x6e,0x00,0x03,0x08,0xde,0x00,0x03,0x09,0xd6,0x00,0x03,0x0a,0xc6,0x00,0x03,0x0b,0x84,0x00,0x03,0x0b,0xd6,0x00,0x03,0x0c,0x28,0x00,0x03,0x0c,0x8e,0x00,0x03,0x0d,0x20,0x00,0x03,0x0d,0xac,0x00,0x03,0x0d,0xbc,0x00,0x03,0x0e,0x10,0x00,0x03,0x0e,0x76, +0x00,0x03,0x0f,0x3e,0x00,0x03,0x0f,0xda,0x00,0x03,0x0f,0xea,0x00,0x03,0x0f,0xfa,0x00,0x03,0x10,0x0a,0x00,0x03,0x10,0x94,0x00,0x03,0x11,0x44,0x00,0x03,0x11,0xd4,0x00,0x03,0x11,0xe4,0x00,0x03,0x12,0x30,0x00,0x03,0x12,0x40,0x00,0x03,0x12,0x50,0x00,0x03,0x12,0xe6,0x00,0x03,0x13,0x4e,0x00,0x03,0x13,0xe0,0x00,0x03,0x14,0xa2, +0x00,0x03,0x15,0x4c,0x00,0x03,0x16,0x12,0x00,0x03,0x16,0x7c,0x00,0x03,0x16,0xf0,0x00,0x03,0x17,0x62,0x00,0x03,0x18,0x00,0x00,0x03,0x18,0x7a,0x00,0x03,0x18,0xaa,0x00,0x03,0x18,0xfc,0x00,0x03,0x19,0x5e,0x00,0x03,0x19,0xa2,0x00,0x03,0x1a,0x28,0x00,0x03,0x1a,0x96,0x00,0x03,0x1b,0x04,0x00,0x03,0x1b,0x7e,0x00,0x03,0x1c,0x4c, +0x00,0x03,0x1c,0xbc,0x00,0x03,0x1d,0x50,0x00,0x03,0x1d,0xa2,0x00,0x03,0x1e,0x02,0x00,0x03,0x1e,0x7c,0x00,0x03,0x1f,0x36,0x00,0x03,0x1f,0xf0,0x00,0x03,0x20,0x84,0x00,0x03,0x21,0xb8,0x00,0x03,0x22,0x4c,0x00,0x03,0x22,0xe2,0x00,0x03,0x23,0x7c,0x00,0x03,0x24,0x12,0x00,0x03,0x24,0xc4,0x00,0x03,0x25,0x6e,0x00,0x03,0x26,0x24, +0x00,0x03,0x26,0x74,0x00,0x03,0x26,0xd6,0x00,0x03,0x27,0x86,0x00,0x03,0x28,0x14,0x00,0x03,0x28,0x8e,0x00,0x03,0x29,0x00,0x00,0x03,0x29,0x58,0x00,0x03,0x29,0xb0,0x00,0x03,0x2a,0x42,0x00,0x03,0x2a,0xc4,0x00,0x03,0x2b,0x34,0x00,0x03,0x2b,0x9e,0x00,0x03,0x2c,0x5c,0x00,0x03,0x2c,0xac,0x00,0x03,0x2d,0x4c,0x00,0x03,0x2e,0x1c, +0x00,0x03,0x2e,0x96,0x00,0x03,0x2f,0x46,0x00,0x03,0x30,0x04,0x00,0x03,0x30,0xa0,0x00,0x03,0x30,0xb2,0x00,0x03,0x30,0xc4,0x00,0x03,0x30,0xd6,0x00,0x03,0x30,0xe8,0x00,0x03,0x30,0xfa,0x00,0x03,0x31,0x0c,0x00,0x03,0x31,0x1e,0x00,0x03,0x31,0x30,0x00,0x03,0x31,0x42,0x00,0x03,0x31,0x8a,0x00,0x03,0x31,0xdc,0x00,0x03,0x32,0x5c, +0x00,0x03,0x32,0xb4,0x00,0x03,0x34,0x10,0x00,0x03,0x34,0xde,0x00,0x03,0x36,0x48,0x00,0x03,0x37,0x56,0x00,0x03,0x38,0x70,0x00,0x03,0x39,0xa2,0x00,0x03,0x3b,0x12,0x00,0x03,0x3d,0x2e,0x00,0x03,0x3d,0xe0,0x00,0x03,0x3e,0xd2,0x00,0x03,0x3f,0x6e,0x00,0x03,0x40,0x32,0x00,0x03,0x42,0x44,0x00,0x03,0x43,0x82,0x00,0x03,0x44,0x9e, +0x00,0x03,0x45,0xc8,0x00,0x03,0x46,0xb0,0x00,0x03,0x47,0x98,0x00,0x03,0x47,0xd0,0x00,0x03,0x47,0xe6,0x00,0x03,0x47,0xfc,0x00,0x03,0x48,0x14,0x00,0x03,0x48,0x2c,0x00,0x03,0x48,0x42,0x00,0x03,0x49,0x44,0x00,0x03,0x49,0xbe,0x00,0x03,0x4a,0x3a,0x00,0x03,0x4a,0x4a,0x00,0x03,0x4a,0x90,0x00,0x03,0x4b,0x58,0x00,0x03,0x4b,0x92, +0x00,0x03,0x4b,0xa4,0x00,0x03,0x4b,0xce,0x00,0x03,0x4c,0x4c,0x00,0x03,0x4c,0x7c,0x00,0x03,0x4c,0xac,0x00,0x03,0x4c,0xfe,0x00,0x03,0x4d,0x50,0x00,0x03,0x4d,0x7a,0x00,0x03,0x4d,0xa6,0x00,0x03,0x4d,0xca,0x00,0x03,0x4f,0x2c,0x00,0x03,0x50,0x20,0x00,0x03,0x50,0x4c,0x00,0x03,0x50,0x78,0x00,0x03,0x50,0xa4,0x00,0x03,0x50,0xba, +0x00,0x03,0x50,0xe8,0x00,0x03,0x51,0x16,0x00,0x03,0x51,0xcc,0x00,0x03,0x52,0x38,0x00,0x03,0x53,0x38,0x00,0x03,0x53,0x56,0x00,0x03,0x53,0x7e,0x00,0x03,0x53,0xae,0x00,0x03,0x53,0xde,0x00,0x03,0x54,0xb0,0x00,0x03,0x55,0x42,0x00,0x03,0x56,0x1c,0x00,0x03,0x56,0x34,0x00,0x03,0x56,0x58,0x00,0x03,0x56,0x7c,0x00,0x03,0x56,0xba, +0x00,0x03,0x56,0xde,0x00,0x03,0x57,0x02,0x00,0x03,0x57,0x26,0x00,0x03,0x57,0x4a,0x00,0x03,0x57,0x62,0x00,0x03,0x57,0x86,0x00,0x03,0x57,0xba,0x00,0x03,0x57,0xf8,0x00,0x03,0x58,0x2c,0x00,0x03,0x58,0x50,0x00,0x03,0x58,0x74,0x00,0x03,0x58,0x98,0x00,0x03,0x58,0xbc,0x00,0x03,0x58,0xe0,0x00,0x03,0x59,0x04,0x00,0x03,0x59,0x28, +0x00,0x03,0x59,0x4c,0x00,0x03,0x59,0x80,0x00,0x03,0x59,0xa4,0x00,0x03,0x59,0xc8,0x00,0x03,0x5a,0x4e,0x00,0x03,0x5a,0x72,0x00,0x03,0x5b,0x30,0x00,0x03,0x5b,0xca,0x00,0x03,0x5c,0x42,0x00,0x03,0x5d,0x0e,0x00,0x03,0x5d,0xec,0x00,0x03,0x5e,0x96,0x00,0x03,0x5f,0x0a,0x00,0x03,0x5f,0x92,0x00,0x03,0x5f,0xa2,0x00,0x03,0x60,0x0e, +0x00,0x03,0x60,0x94,0x00,0x03,0x60,0xe0,0x00,0x03,0x61,0x3a,0x00,0x03,0x61,0xba,0x00,0x03,0x62,0x74,0x00,0x03,0x62,0xbc,0x00,0x03,0x63,0x28,0x00,0x03,0x63,0x6a,0x00,0x03,0x64,0x3c,0x00,0x03,0x64,0xea,0x00,0x03,0x65,0x74,0x00,0x03,0x66,0x00,0x00,0x03,0x66,0x6c,0x00,0x03,0x67,0x10,0x00,0x03,0x67,0xe6,0x00,0x03,0x68,0xae, +0x00,0x03,0x69,0x20,0x00,0x03,0x69,0xc6,0x00,0x03,0x6a,0x72,0x00,0x03,0x6b,0x10,0x00,0x03,0x6b,0x6a,0x00,0x03,0x6b,0xe4,0x00,0x03,0x6c,0x30,0x00,0x03,0x6c,0x92,0x00,0x03,0x6d,0x26,0x00,0x03,0x6d,0xda,0x00,0x03,0x6e,0x74,0x00,0x03,0x6f,0x0a,0x00,0x03,0x6f,0x8e,0x00,0x03,0x70,0x12,0x00,0x03,0x70,0xd6,0x00,0x03,0x71,0x3c, +0x00,0x03,0x71,0x66,0x00,0x03,0x71,0x78,0x00,0x03,0x71,0x8a,0x00,0x03,0x71,0x9c,0x00,0x03,0x71,0xae,0x00,0x03,0x71,0xc0,0x00,0x03,0x72,0x78,0x00,0x03,0x73,0x84,0x00,0x03,0x74,0xd6,0x00,0x03,0x75,0x98,0x00,0x03,0x75,0xe6,0x00,0x03,0x76,0x26,0x00,0x03,0x76,0x64,0x00,0x03,0x76,0xa2,0x00,0x03,0x76,0xe0,0x00,0x03,0x77,0x42, +0x00,0x03,0x77,0x6a,0x00,0x03,0x77,0xb6,0x00,0x03,0x77,0xe8,0x00,0x03,0x78,0x1a,0x00,0x03,0x78,0x4c,0x00,0x03,0x78,0x7e,0x00,0x03,0x78,0xbc,0x00,0x03,0x78,0xfa,0x00,0x03,0x79,0x38,0x00,0x03,0x79,0x76,0x00,0x03,0x79,0xa8,0x00,0x03,0x79,0xda,0x00,0x03,0x7a,0x0c,0x00,0x03,0x7a,0x3e,0x00,0x03,0x7a,0x7c,0x00,0x03,0x7a,0xba, +0x00,0x03,0x7a,0xf8,0x00,0x03,0x7b,0x36,0x00,0x03,0x7b,0x68,0x00,0x03,0x7b,0x9a,0x00,0x03,0x7b,0xcc,0x00,0x03,0x7b,0xfe,0x00,0x03,0x7c,0x3c,0x00,0x03,0x7c,0x7a,0x00,0x03,0x7c,0xb8,0x00,0x03,0x7c,0xf6,0x00,0x03,0x7d,0x4a,0x00,0x03,0x7d,0x9e,0x00,0x03,0x7d,0xfc,0x00,0x03,0x7e,0x5a,0x00,0x03,0x7e,0xb0,0x00,0x03,0x7f,0x06, +0x00,0x03,0x7f,0x62,0x00,0x03,0x7f,0xbe,0x00,0x03,0x80,0x70,0x00,0x03,0x81,0x08,0x00,0x03,0x81,0xfa,0x00,0x03,0x83,0x00,0x00,0x03,0x83,0xe8,0x00,0x03,0x84,0xea,0x00,0x03,0x85,0xe4,0x00,0x03,0x86,0x8c,0x00,0x03,0x88,0x02,0x00,0x03,0x88,0xfc,0x00,0x03,0x89,0xec,0x00,0x03,0x8a,0x50,0x00,0x03,0x8b,0x26,0x00,0x03,0x8c,0x02, +0x00,0x03,0x8c,0x46,0x00,0x03,0x8c,0x7c,0x00,0x03,0x8c,0xc4,0x00,0x03,0x8d,0x0a,0x00,0x03,0x8d,0x50,0x00,0x03,0x8d,0xa6,0x00,0x03,0x8d,0xb8,0x00,0x03,0x8d,0xca,0x00,0x03,0x8d,0xdc,0x00,0x03,0x8d,0xee,0x00,0x03,0x8e,0x00,0x00,0x03,0x8e,0x12,0x00,0x03,0x8e,0x24,0x00,0x03,0x8e,0x36,0x00,0x03,0x8e,0x48,0x00,0x03,0x8e,0x5a, +0x00,0x03,0x8e,0x6c,0x00,0x03,0x8e,0x7e,0x00,0x03,0x8e,0x90,0x00,0x03,0x8e,0xa2,0x00,0x03,0x8e,0xb4,0x00,0x03,0x8e,0xd6,0x00,0x03,0x8e,0xf6,0x00,0x03,0x8f,0x16,0x00,0x03,0x8f,0x36,0x00,0x03,0x8f,0x58,0x00,0x03,0x8f,0x78,0x00,0x03,0x8f,0x9a,0x00,0x03,0x8f,0xba,0x00,0x03,0x8f,0xe0,0x00,0x03,0x90,0x02,0x00,0x03,0x90,0x22, +0x00,0x03,0x90,0x42,0x00,0x03,0x90,0x64,0x00,0x03,0x90,0x84,0x00,0x03,0x90,0xa4,0x00,0x03,0x91,0x94,0x00,0x03,0x92,0x46,0x00,0x03,0x92,0xfa,0x00,0x03,0x93,0x74,0x00,0x03,0x93,0xfc,0x00,0x03,0x94,0x82,0x00,0x03,0x95,0x1a,0x00,0x03,0x95,0x9e,0x00,0x03,0x95,0xc8,0x00,0x03,0x96,0x10,0x00,0x03,0x96,0x6a,0x00,0x03,0x96,0xe2, +0x00,0x03,0x97,0x52,0x00,0x03,0x98,0x02,0x00,0x03,0x98,0x82,0x00,0x03,0x98,0xae,0x00,0x03,0x99,0x2e,0x00,0x03,0x99,0x8e,0x00,0x03,0x99,0xf0,0x00,0x03,0x9a,0x40,0x00,0x03,0x9a,0x56,0x00,0x03,0x9a,0x6c,0x00,0x03,0x9a,0x82,0x00,0x03,0x9a,0x9a,0x00,0x03,0x9a,0xb2,0x00,0x03,0x9a,0xca,0x00,0x03,0x9a,0xe2,0x00,0x03,0x9a,0xfa, +0x00,0x03,0x9b,0x98,0x00,0x03,0x9c,0xa6,0x00,0x03,0x9c,0xbe,0x00,0x03,0x9c,0xd6,0x00,0x03,0x9d,0xe8,0x00,0x03,0x9e,0x00,0x00,0x03,0x9f,0x24,0x00,0x03,0x9f,0x78,0x00,0x03,0x9f,0xca,0x00,0x03,0xa0,0x2c,0x00,0x03,0xa1,0x2a,0x00,0x03,0xa1,0xf4,0x00,0x03,0xa2,0x9e,0x00,0x03,0xa3,0x06,0x00,0x03,0xa3,0x68,0x00,0x03,0xa3,0xd6, +0x00,0x03,0xa4,0xa6,0x00,0x03,0xa4,0xbe,0x00,0x03,0xa5,0x74,0x00,0x03,0xa6,0x5e,0x00,0x03,0xa7,0x8e,0x00,0x03,0xa7,0xa6,0x00,0x03,0xa7,0xbe,0x00,0x03,0xa7,0xd6,0x00,0x03,0xa7,0xee,0x00,0x03,0xa8,0x06,0x00,0x03,0xa8,0x16,0x00,0x03,0xa8,0x2e,0x00,0x03,0xa8,0x46,0x00,0x03,0xa8,0xde,0x00,0x03,0xa9,0x44,0x00,0x03,0xaa,0x10, +0x00,0x03,0xaa,0x28,0x00,0x03,0xaa,0x38,0x00,0x03,0xab,0x76,0x00,0x03,0xac,0x34,0x00,0x03,0xac,0x4c,0x00,0x03,0xac,0x64,0x00,0x03,0xac,0x7c,0x00,0x03,0xad,0x7e,0x00,0x03,0xad,0xdc,0x00,0x03,0xae,0x00,0x00,0x03,0xae,0x18,0x00,0x03,0xae,0x30,0x00,0x03,0xae,0x40,0x00,0x03,0xae,0x50,0x00,0x03,0xae,0x60,0x00,0x03,0xae,0x7e, +0x00,0x03,0xae,0x9c,0x00,0x03,0xae,0xc6,0x00,0x03,0xae,0xea,0x00,0x03,0xaf,0x28,0x00,0x03,0xaf,0x52,0x00,0x03,0xaf,0x6a,0x00,0x03,0xb0,0x52,0x00,0x03,0xb0,0xea,0x00,0x03,0xb1,0x00,0x00,0x03,0xb1,0x16,0x00,0x03,0xb1,0x3a,0x00,0x03,0xb1,0x50,0x00,0x03,0xb1,0x68,0x00,0x03,0xb1,0x96,0x00,0x03,0xb1,0xae,0x00,0x03,0xb1,0xc6, +0x00,0x03,0xb1,0xde,0x00,0x03,0xb1,0xf6,0x00,0x03,0xb2,0x0e,0x00,0x03,0xb2,0xdc,0x00,0x03,0xb2,0xf4,0x00,0x03,0xb3,0x6a,0x00,0x03,0xb3,0x82,0x00,0x03,0xb3,0xfa,0x00,0x03,0xb4,0x12,0x00,0x03,0xb5,0x5a,0x00,0x03,0xb5,0x72,0x00,0x03,0xb6,0xb4,0x00,0x03,0xb6,0xcc,0x00,0x03,0xb7,0xa2,0x00,0x03,0xb7,0xba,0x00,0x03,0xb8,0xaa, +0x00,0x03,0xb8,0xc2,0x00,0x03,0xb8,0xfc,0x00,0x03,0xb9,0x14,0x00,0x03,0xb9,0x2c,0x00,0x03,0xba,0x64,0x00,0x03,0xba,0xe4,0x00,0x03,0xbb,0xc6,0x00,0x03,0xbb,0xde,0x00,0x03,0xbc,0x92,0x00,0x03,0xbd,0x74,0x00,0x03,0xbe,0x48,0x00,0x03,0xbe,0x60,0x00,0x03,0xbe,0xa4,0x00,0x03,0xbf,0x76,0x00,0x03,0xbf,0xba,0x00,0x03,0xbf,0xe6, +0x00,0x03,0xc0,0xae,0x00,0x03,0xc0,0xd8,0x00,0x03,0xc1,0xba,0x00,0x03,0xc2,0x42,0x00,0x03,0xc2,0x60,0x00,0x03,0xc2,0x7e,0x00,0x03,0xc2,0x8e,0x00,0x03,0xc3,0x04,0x00,0x03,0xc3,0x14,0x00,0x03,0xc3,0x24,0x00,0x03,0xc3,0x34,0x00,0x03,0xc3,0xb6,0x00,0x03,0xc4,0x84,0x00,0x03,0xc5,0x7c,0x00,0x03,0xc6,0x18,0x00,0x03,0xc6,0x9a, +0x00,0x03,0xc6,0xb2,0x00,0x03,0xc6,0xca,0x00,0x03,0xc7,0xf2,0x00,0x03,0xc9,0x62,0x00,0x03,0xc9,0x7a,0x00,0x03,0xc9,0x92,0x00,0x03,0xca,0x66,0x00,0x03,0xca,0x76,0x00,0x03,0xca,0x8e,0x00,0x03,0xca,0xa4,0x00,0x03,0xca,0xb4,0x00,0x03,0xca,0xc4,0x00,0x03,0xca,0xdc,0x00,0x03,0xca,0xf4,0x00,0x03,0xcb,0x18,0x00,0x03,0xcb,0x28, +0x00,0x03,0xcb,0x38,0x00,0x03,0xcb,0x48,0x00,0x03,0xcb,0x58,0x00,0x03,0xcc,0x3e,0x00,0x03,0xcd,0x2e,0x00,0x03,0xcd,0xea,0x00,0x03,0xcd,0xfa,0x00,0x03,0xce,0x0a,0x00,0x03,0xce,0x1a,0x00,0x03,0xce,0xc6,0x00,0x03,0xce,0xd6,0x00,0x03,0xce,0xee,0x00,0x03,0xcf,0x06,0x00,0x03,0xcf,0x1e,0x00,0x03,0xcf,0x36,0x00,0x03,0xcf,0xcc, +0x00,0x03,0xcf,0xdc,0x00,0x03,0xcf,0xf2,0x00,0x03,0xd0,0xc6,0x00,0x03,0xd0,0xea,0x00,0x03,0xd1,0x02,0x00,0x03,0xd1,0x9e,0x00,0x03,0xd2,0x2a,0x00,0x03,0xd2,0x4e,0x00,0x03,0xd2,0x66,0x00,0x03,0xd2,0x94,0x00,0x03,0xd3,0x00,0x00,0x03,0xd3,0x48,0x00,0x03,0xd3,0x60,0x00,0x03,0xd3,0x78,0x00,0x03,0xd3,0x90,0x00,0x03,0xd3,0xa0, +0x00,0x03,0xd3,0xb0,0x00,0x03,0xd5,0xda,0x00,0x03,0xd6,0x5c,0x00,0x03,0xd6,0x8c,0x00,0x03,0xd8,0x0e,0x00,0x03,0xd8,0x7e,0x00,0x03,0xd8,0x8e,0x00,0x03,0xd9,0x40,0x00,0x03,0xd9,0x50,0x00,0x03,0xd9,0x60,0x00,0x03,0xd9,0x70,0x00,0x03,0xd9,0x80,0x00,0x03,0xda,0x94,0x00,0x03,0xda,0xa4,0x00,0x03,0xdb,0x20,0x00,0x03,0xdb,0xa2, +0x00,0x03,0xdb,0xb8,0x00,0x03,0xdb,0xce,0x00,0x03,0xdb,0xf2,0x00,0x03,0xdc,0x16,0x00,0x03,0xdc,0x2c,0x00,0x03,0xdc,0x42,0x00,0x03,0xdc,0x66,0x00,0x03,0xdc,0x92,0x00,0x03,0xdc,0xaa,0x00,0x03,0xdc,0xca,0x00,0x03,0xdc,0xe2,0x00,0x03,0xdc,0xfa,0x00,0x03,0xdd,0x12,0x00,0x03,0xdd,0x2a,0x00,0x03,0xdd,0x42,0x00,0x03,0xdd,0x5a, +0x00,0x03,0xdd,0x88,0x00,0x03,0xdd,0xb6,0x00,0x03,0xdd,0xce,0x00,0x03,0xdd,0xe6,0x00,0x03,0xdd,0xfe,0x00,0x03,0xde,0x16,0x00,0x03,0xde,0x2e,0x00,0x03,0xde,0x46,0x00,0x03,0xde,0x5e,0x00,0x03,0xde,0x76,0x00,0x03,0xde,0x9a,0x00,0x03,0xde,0xb2,0x00,0x03,0xde,0xca,0x00,0x03,0xde,0xe2,0x00,0x03,0xde,0xfa,0x00,0x03,0xdf,0x12, +0x00,0x03,0xdf,0x2a,0x00,0x03,0xdf,0x50,0x00,0x03,0xdf,0x76,0x00,0x03,0xdf,0x8e,0x00,0x03,0xdf,0xa6,0x00,0x03,0xdf,0xbe,0x00,0x03,0xdf,0xd6,0x00,0x03,0xe1,0x1a,0x00,0x03,0xe2,0x80,0x00,0x03,0xe2,0x98,0x00,0x03,0xe2,0xbe,0x00,0x03,0xe2,0xd6,0x00,0x03,0xe2,0xf6,0x00,0x03,0xe3,0x0e,0x00,0x03,0xe3,0x26,0x00,0x03,0xe3,0x3e, +0x00,0x03,0xe3,0x56,0x00,0x03,0xe3,0x6e,0x00,0x03,0xe3,0x86,0x00,0x03,0xe3,0x9e,0x00,0x03,0xe3,0xb6,0x00,0x03,0xe3,0xda,0x00,0x03,0xe3,0xf8,0x00,0x03,0xe4,0x10,0x00,0x03,0xe4,0x28,0x00,0x03,0xe4,0x48,0x00,0x03,0xe4,0x68,0x00,0x03,0xe4,0x80,0x00,0x03,0xe4,0x98,0x00,0x03,0xe4,0xb8,0x00,0x03,0xe4,0xd8,0x00,0x03,0xe4,0xf0, +0x00,0x03,0xe5,0x08,0x00,0x03,0xe5,0x20,0x00,0x03,0xe5,0x38,0x00,0x03,0xe5,0x50,0x00,0x03,0xe5,0x68,0x00,0x03,0xe5,0x80,0x00,0x03,0xe5,0x98,0x00,0x03,0xe5,0xb0,0x00,0x03,0xe6,0xca,0x00,0x03,0xe6,0xe2,0x00,0x03,0xe6,0xfa,0x00,0x03,0xe7,0x12,0x00,0x03,0xe7,0x32,0x00,0x03,0xe7,0x52,0x00,0x03,0xe7,0x72,0x00,0x03,0xe7,0x8a, +0x00,0x03,0xe7,0xa2,0x00,0x03,0xe7,0xba,0x00,0x03,0xe7,0xd2,0x00,0x03,0xe7,0xea,0x00,0x03,0xe8,0x02,0x00,0x03,0xe8,0x1a,0x00,0x03,0xe8,0x32,0x00,0x03,0xe9,0x24,0x00,0x03,0xea,0x2a,0x00,0x03,0xea,0x42,0x00,0x03,0xea,0x5a,0x00,0x03,0xea,0x72,0x00,0x03,0xea,0x8a,0x00,0x03,0xea,0xa2,0x00,0x03,0xea,0xba,0x00,0x03,0xea,0xd2, +0x00,0x03,0xea,0xea,0x00,0x03,0xeb,0x0a,0x00,0x03,0xeb,0x28,0x00,0x03,0xeb,0x56,0x00,0x03,0xeb,0x82,0x00,0x03,0xeb,0xa2,0x00,0x03,0xeb,0xc0,0x00,0x03,0xeb,0xe0,0x00,0x03,0xeb,0xfe,0x00,0x03,0xec,0x34,0x00,0x03,0xec,0x68,0x00,0x03,0xec,0x80,0x00,0x03,0xec,0x98,0x00,0x03,0xec,0xb0,0x00,0x03,0xec,0xc8,0x00,0x03,0xec,0xf0, +0x00,0x03,0xed,0x18,0x00,0x03,0xed,0xfe,0x00,0x03,0xee,0x16,0x00,0x03,0xee,0x38,0x00,0x03,0xee,0x58,0x00,0x03,0xee,0x70,0x00,0x03,0xee,0x92,0x00,0x03,0xee,0xb2,0x00,0x03,0xee,0xca,0x00,0x03,0xee,0xe2,0x00,0x03,0xee,0xfa,0x00,0x03,0xef,0x12,0x00,0x03,0xef,0x32,0x00,0x03,0xef,0x48,0x00,0x03,0xf0,0x5e,0x00,0x03,0xf0,0x82, +0x00,0x03,0xf0,0xa8,0x00,0x03,0xf0,0xc0,0x00,0x03,0xf0,0xe4,0x00,0x03,0xf0,0xfc,0x00,0x03,0xf1,0x14,0x00,0x03,0xf1,0xe8,0x00,0x03,0xf2,0xfc,0x00,0x03,0xf3,0x14,0x00,0x03,0xf3,0x2c,0x00,0x03,0xf3,0x4c,0x00,0x03,0xf3,0x64,0x00,0x03,0xf3,0x7e,0x00,0x03,0xf3,0xa0,0x00,0x03,0xf3,0xba,0x00,0x03,0xf3,0xd2,0x00,0x03,0xf5,0x4e, +0x00,0x03,0xf6,0x0e,0x00,0x03,0xf6,0xd0,0x00,0x03,0xf7,0x2c,0x00,0x03,0xf8,0x42,0x00,0x03,0xf9,0xc4,0x00,0x03,0xfb,0x5e,0x00,0x03,0xfb,0xd0,0x00,0x03,0xfc,0x46,0x00,0x03,0xfc,0xc8,0x00,0x03,0xfd,0x94,0x00,0x03,0xfe,0xae,0x00,0x03,0xff,0x2c,0x00,0x03,0xff,0xf8,0x00,0x04,0x00,0x0a,0x00,0x04,0x00,0x92,0x00,0x04,0x01,0x2c, +0x00,0x04,0x02,0x62,0x00,0x04,0x02,0xb4,0x00,0x04,0x02,0xfe,0x00,0x04,0x03,0xca,0x00,0x04,0x03,0xea,0x00,0x04,0x04,0x0a,0x00,0x04,0x04,0x2a,0x00,0x04,0x04,0x4a,0x00,0x04,0x04,0x6a,0x00,0x04,0x04,0x8a,0x00,0x04,0x04,0xaa,0x00,0x04,0x04,0xca,0x00,0x04,0x04,0xe2,0x00,0x04,0x04,0xfa,0x00,0x04,0x05,0x26,0x00,0x04,0x05,0x52, +0x00,0x04,0x05,0x70,0x00,0x04,0x05,0x8e,0x00,0x04,0x05,0xae,0x00,0x04,0x05,0xce,0x00,0x04,0x05,0xee,0x00,0x04,0x06,0x0e,0x00,0x04,0x06,0x2e,0x00,0x04,0x06,0x4e,0x00,0x04,0x06,0x7e,0x00,0x04,0x06,0xae,0x00,0x04,0x06,0xce,0x00,0x04,0x06,0xee,0x00,0x04,0x07,0xb0,0x00,0x04,0x08,0x12,0x00,0x04,0x08,0x2a,0x00,0x04,0x08,0x42, +0x00,0x04,0x08,0x6e,0x00,0x04,0x08,0x8c,0x00,0x04,0x08,0xaa,0x00,0x04,0x0b,0x1c,0x00,0x04,0x0b,0x66,0x00,0x04,0x0c,0x5e,0x00,0x04,0x0c,0xf4,0x00,0x04,0x0d,0xd6,0x00,0x04,0x0e,0x96,0x00,0x04,0x0e,0xda,0x00,0x04,0x10,0x3e,0x00,0x04,0x11,0x0a,0x00,0x04,0x11,0xda,0x00,0x04,0x12,0xa4,0x00,0x04,0x13,0xdc,0x00,0x04,0x14,0x86, +0x00,0x04,0x14,0xb6,0x00,0x04,0x15,0x7c,0x00,0x04,0x15,0xfe,0x00,0x04,0x16,0x28,0x00,0x04,0x16,0x4c,0x00,0x04,0x16,0x70,0x00,0x04,0x16,0x88,0x00,0x04,0x16,0xa0,0x00,0x04,0x16,0xb8,0x00,0x04,0x16,0xdc,0x00,0x04,0x17,0x00,0x00,0x04,0x17,0x24,0x00,0x04,0x18,0x08,0x00,0x04,0x18,0xa0,0x00,0x04,0x19,0x52,0x00,0x04,0x19,0x6a, +0x00,0x04,0x19,0x82,0x00,0x04,0x19,0xaa,0x00,0x04,0x19,0xc2,0x00,0x04,0x19,0xda,0x00,0x04,0x1b,0x8a,0x00,0x04,0x1c,0x82,0x00,0x04,0x1e,0x16,0x00,0x04,0x1f,0x10,0x00,0x04,0x20,0xae,0x00,0x04,0x21,0xbc,0x00,0x04,0x22,0xd0,0x00,0x04,0x23,0x76,0x00,0x04,0x23,0xa6,0x00,0x04,0x23,0xe0,0x00,0x04,0x24,0x1a,0x00,0x04,0x24,0x5c, +0x00,0x04,0x25,0x26,0x00,0x04,0x25,0x90,0x00,0x04,0x25,0xa8,0x00,0x04,0x25,0xc0,0x00,0x04,0x25,0xe0,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x18,0x00,0x04,0x26,0x30,0x00,0x04,0x26,0x50,0x00,0x04,0x26,0x70,0x00,0x04,0x26,0x90,0x00,0x04,0x26,0xb0,0x00,0x04,0x26,0xd4,0x00,0x04,0x26,0xf8,0x00,0x04,0x27,0x10,0x00,0x04,0x27,0x28, +0x00,0x04,0x27,0x40,0x00,0x04,0x27,0x58,0x00,0x04,0x27,0x70,0x00,0x04,0x28,0x98,0x00,0x04,0x29,0xfc,0x00,0x04,0x2a,0x14,0x00,0x04,0x2a,0x34,0x00,0x04,0x2a,0x58,0x00,0x04,0x2a,0x70,0x00,0x04,0x2a,0x88,0x00,0x04,0x2a,0xa0,0x00,0x04,0x2a,0xb8,0x00,0x04,0x2a,0xd0,0x00,0x04,0x2a,0xe8,0x00,0x04,0x2b,0x00,0x00,0x04,0x2b,0x18, +0x00,0x04,0x2b,0x30,0x00,0x04,0x2b,0x48,0x00,0x04,0x2b,0x60,0x00,0x04,0x2b,0x78,0x00,0x04,0x2b,0x90,0x00,0x04,0x2b,0xa8,0x00,0x04,0x2b,0xc0,0x00,0x04,0x2b,0xd8,0x00,0x04,0x2b,0xf0,0x00,0x04,0x2c,0x08,0x00,0x04,0x2c,0x20,0x00,0x04,0x2c,0x38,0x00,0x04,0x2c,0x50,0x00,0x04,0x2c,0x68,0x00,0x04,0x2c,0x80,0x00,0x04,0x2c,0x98, +0x00,0x04,0x2c,0xb0,0x00,0x04,0x2c,0xc8,0x00,0x04,0x2c,0xe0,0x00,0x04,0x2c,0xf8,0x00,0x04,0x2d,0x10,0x00,0x04,0x2d,0x28,0x00,0x04,0x2d,0x40,0x00,0x04,0x2d,0x58,0x00,0x04,0x2d,0x70,0x00,0x04,0x2d,0x88,0x00,0x04,0x2d,0xaa,0x00,0x04,0x2d,0xca,0x00,0x04,0x2d,0xea,0x00,0x04,0x2e,0x16,0x00,0x04,0x2e,0x42,0x00,0x04,0x2e,0x78, +0x00,0x04,0x2e,0x90,0x00,0x04,0x2e,0xa8,0x00,0x04,0x2e,0xbe,0x00,0x04,0x2e,0xd4,0x00,0x04,0x2e,0xec,0x00,0x04,0x2f,0x04,0x00,0x04,0x2f,0x1c,0x00,0x04,0x2f,0x34,0x00,0x04,0x2f,0x44,0x00,0x04,0x2f,0x64,0x00,0x04,0x2f,0x84,0x00,0x04,0x2f,0xc0,0x00,0x04,0x2f,0xfc,0x00,0x04,0x30,0x32,0x00,0x04,0x30,0x68,0x00,0x04,0x30,0xf6, +0x00,0x04,0x31,0xf0,0x00,0x04,0x32,0x88,0x00,0x04,0x32,0x98,0x00,0x04,0x32,0xce,0x00,0x04,0x32,0xf2,0x00,0x04,0x33,0xaa,0x00,0x04,0x34,0x86,0x00,0x04,0x35,0x44,0x00,0x04,0x35,0xf8,0x00,0x04,0x37,0x28,0x00,0x04,0x37,0xb4,0x00,0x04,0x38,0x7c,0x00,0x04,0x39,0x56,0x00,0x04,0x39,0x66,0x00,0x04,0x39,0x9c,0x00,0x04,0x39,0xd2, +0x00,0x04,0x39,0xe2,0x00,0x04,0x3a,0x06,0x00,0x04,0x3a,0x2a,0x00,0x04,0x3a,0x42,0x00,0x04,0x3a,0x5a,0x00,0x04,0x3b,0x5e,0x00,0x04,0x3c,0x10,0x00,0x04,0x3c,0x20,0x00,0x04,0x3c,0x30,0x00,0x04,0x3c,0x54,0x00,0x04,0x3c,0x78,0x00,0x04,0x3c,0x90,0x00,0x04,0x3c,0xa8,0x00,0x04,0x3c,0xcc,0x00,0x04,0x3c,0xf2,0x00,0x04,0x3d,0x12, +0x00,0x04,0x3d,0x32,0x00,0x04,0x3d,0x44,0x00,0x04,0x3d,0x78,0x00,0x04,0x3d,0xe2,0x00,0x04,0x3f,0x42,0x00,0x04,0x3f,0x9a,0x00,0x04,0x3f,0xaa,0x00,0x04,0x40,0x76,0x00,0x04,0x41,0x02,0x00,0x04,0x41,0x1a,0x00,0x04,0x41,0xc4,0x00,0x04,0x41,0xe8,0x00,0x04,0x42,0x0c,0x00,0x04,0x42,0x30,0x00,0x04,0x42,0x40,0x00,0x04,0x42,0x64, +0x00,0x04,0x42,0x7c,0x00,0x04,0x42,0x94,0x00,0x04,0x42,0xac,0x00,0x04,0x42,0xc4,0x00,0x04,0x43,0xb4,0x00,0x04,0x43,0xfc,0x00,0x04,0x44,0x44,0x00,0x04,0x44,0xe0,0x00,0x04,0x45,0x3e,0x00,0x04,0x45,0xba,0x00,0x04,0x46,0x1c,0x00,0x04,0x46,0x54,0x00,0x04,0x46,0xa6,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa, +0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x46,0xfa,0x00,0x04,0x47,0x98,0x00,0x04,0x47,0xb0,0x00,0x04,0x47,0xc8,0x00,0x04,0x47,0xe0, +0x00,0x04,0x47,0xf8,0x00,0x04,0x48,0x10,0x00,0x04,0x48,0x28,0x00,0x04,0x48,0x4c,0x00,0x04,0x48,0x6a,0x00,0x04,0x48,0x82,0x00,0x04,0x48,0x9a,0x00,0x04,0x48,0xb2,0x00,0x04,0x48,0xca,0x00,0x04,0x48,0xda,0x00,0x04,0x48,0xea,0x00,0x04,0x49,0xb8,0x00,0x04,0x4a,0x20,0x00,0x04,0x4a,0x30,0x00,0x04,0x4a,0x40,0x00,0x04,0x4a,0x50, +0x00,0x04,0x4a,0x60,0x00,0x04,0x4b,0x4e,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x60,0x00,0x04,0x4b,0x8a,0x00,0x04,0x4b,0xb4,0x00,0x04,0x4b,0xfe,0x00,0x04,0x4c,0x3c,0x00,0x04,0x4c,0x82,0x00,0x04,0x4c,0xc2, +0x00,0x04,0x4d,0x24,0x00,0x04,0x4d,0x34,0x00,0x04,0x4d,0x66,0x00,0x04,0x4d,0xd6,0x00,0x04,0x4e,0xac,0x00,0x04,0x4f,0x30,0x00,0x04,0x4f,0x58,0x00,0x04,0x4f,0x80,0x00,0x04,0x4f,0xa8,0x00,0x04,0x4f,0xd0,0x00,0x04,0x4f,0xf8,0x00,0x04,0x50,0x20,0x00,0x04,0x50,0xc0,0x00,0x04,0x51,0x2a,0x00,0x04,0x51,0xd8,0x00,0x04,0x52,0x74, +0x00,0x04,0x53,0x2a,0x00,0x04,0x53,0x9e,0x00,0x04,0x53,0xcc,0x00,0x04,0x54,0x80,0x00,0x04,0x54,0x90,0x00,0x04,0x55,0x78,0x00,0x04,0x56,0x5c,0x00,0x04,0x56,0x98,0x00,0x04,0x56,0xd4,0x00,0x04,0x57,0x32,0x00,0x04,0x57,0x8e,0x00,0x04,0x57,0xee,0x00,0x04,0x58,0x2a,0x00,0x04,0x58,0x3a,0x00,0x04,0x58,0x7c,0x00,0x04,0x58,0xb6, +0x00,0x04,0x58,0xc6,0x00,0x04,0x58,0xec,0x00,0x04,0x59,0x12,0x00,0x04,0x59,0x8c,0x00,0x04,0x5a,0x38,0x00,0x04,0x5a,0xca,0x00,0x04,0x5b,0x6c,0x00,0x04,0x5b,0xb4,0x00,0x04,0x5c,0x30,0x00,0x04,0x5c,0xe2,0x00,0x04,0x5d,0x0e,0x00,0x04,0x5d,0x4a,0x00,0x04,0x5d,0x8e,0x00,0x04,0x5e,0x34,0x00,0x04,0x5e,0x76,0x00,0x04,0x5e,0xa0, +0x00,0x04,0x5e,0xd0,0x00,0x04,0x5e,0xf8,0x00,0x04,0x5f,0x26,0x00,0x04,0x5f,0x6a,0x00,0x04,0x5f,0xae,0x00,0x04,0x60,0x30,0x00,0x04,0x60,0x74,0x00,0x04,0x60,0xba,0x00,0x04,0x61,0x84,0x00,0x04,0x62,0x2a,0x00,0x04,0x62,0xe0,0x00,0x04,0x63,0x52,0x00,0x04,0x63,0xe4,0x00,0x04,0x64,0x14,0x00,0x04,0x64,0xa4,0x00,0x04,0x65,0x1e, +0x00,0x04,0x65,0xd4,0x00,0x04,0x66,0x02,0x00,0x04,0x66,0x6c,0x00,0x04,0x67,0x16,0x00,0x04,0x67,0xd6,0x00,0x04,0x68,0x5c,0x00,0x04,0x69,0x3c,0x00,0x04,0x69,0x6e,0x00,0x04,0x69,0xf2,0x00,0x04,0x6a,0x9a,0x00,0x04,0x6b,0x26,0x00,0x04,0x6b,0xbc,0x00,0x04,0x6c,0x86,0x00,0x04,0x6d,0x3e,0x00,0x04,0x6d,0xda,0x00,0x04,0x6e,0xaa, +0x00,0x04,0x6f,0x12,0x00,0x04,0x70,0x04,0x00,0x04,0x70,0xce,0x00,0x04,0x70,0xe6,0x00,0x04,0x70,0xfe,0x00,0x04,0x71,0x16,0x00,0x04,0x71,0x44,0x00,0x04,0x71,0x90,0x00,0x04,0x71,0xa8,0x00,0x04,0x71,0xc0,0x00,0x04,0x71,0xd6,0x00,0x04,0x71,0xf4,0x00,0x04,0x72,0x5a,0x00,0x04,0x72,0xe0,0x00,0x04,0x72,0xf0,0x00,0x04,0x73,0x00, +0x00,0x04,0x73,0x10,0x00,0x04,0x73,0x20,0x00,0x04,0x73,0x30,0x00,0x04,0x73,0x40,0x00,0x04,0x73,0x50,0x00,0x04,0x73,0x60,0x00,0x04,0x73,0xa0,0x00,0x04,0x73,0xb8,0x00,0x04,0x73,0xd0,0x00,0x04,0x73,0xf0,0x00,0x04,0x74,0x10,0x00,0x04,0x74,0x28,0x00,0x04,0x74,0x40,0x00,0x04,0x74,0x58,0x00,0x04,0x74,0x70,0x00,0x04,0x74,0x88, +0x00,0x04,0x74,0xa0,0x00,0x04,0x74,0xb8,0x00,0x04,0x74,0xce,0x00,0x04,0x74,0xe4,0x00,0x04,0x74,0xfc,0x00,0x04,0x75,0x14,0x00,0x04,0x75,0x2c,0x00,0x04,0x75,0x44,0x00,0x04,0x75,0x5c,0x00,0x04,0x75,0x74,0x00,0x04,0x75,0x8c,0x00,0x04,0x75,0xa4,0x00,0x04,0x75,0xbc,0x00,0x04,0x75,0xd4,0x00,0x04,0x75,0xec,0x00,0x04,0x76,0x04, +0x00,0x04,0x76,0x1c,0x00,0x04,0x76,0x34,0x00,0x04,0x76,0x4c,0x00,0x04,0x76,0x64,0x00,0x04,0x76,0x7c,0x00,0x04,0x76,0x94,0x00,0x04,0x76,0xac,0x00,0x04,0x77,0x4e,0x00,0x04,0x79,0x8e,0x00,0x04,0x79,0xcc,0x00,0x04,0x79,0xf6,0x00,0x04,0x7a,0x06,0x00,0x04,0x7a,0x1e,0x00,0x04,0x7a,0x36,0x00,0x04,0x7a,0x4e,0x00,0x04,0x7a,0xc2, +0x00,0x04,0x7b,0x6c,0x00,0x04,0x7b,0xc2,0x00,0x04,0x7c,0x38,0x00,0x04,0x7c,0xc4,0x00,0x04,0x7d,0x04,0x00,0x04,0x7d,0x30,0x00,0x04,0x7d,0xea,0x00,0x04,0x7e,0x2a,0x00,0x04,0x7e,0x8a,0x00,0x04,0x7e,0xfc,0x00,0x04,0x7f,0x3c,0x00,0x04,0x7f,0x7c,0x00,0x04,0x7f,0xee,0x00,0x04,0x80,0xd4,0x00,0x04,0x81,0x50,0x00,0x04,0x81,0xb8, +0x00,0x04,0x82,0x30,0x00,0x04,0x82,0x64,0x00,0x04,0x82,0xc4,0x00,0x04,0x83,0x04,0x00,0x04,0x83,0x76,0x00,0x04,0x83,0xcc,0x00,0x04,0x84,0x0c,0x00,0x04,0x84,0x86,0x00,0x04,0x84,0x96,0x00,0x04,0x84,0xe6,0x00,0x04,0x85,0x18,0x00,0x04,0x85,0x58,0x00,0x04,0x86,0x14,0x00,0x04,0x86,0x78,0x00,0x04,0x86,0x88,0x00,0x04,0x87,0x06, +0x00,0x04,0x87,0x1e,0x00,0x04,0x87,0x66,0x00,0x04,0x88,0x4c,0x00,0x04,0x88,0xf0,0x00,0x04,0x89,0x9a,0x00,0x04,0x8a,0x92,0x00,0x04,0x8b,0x26,0x00,0x04,0x8b,0xe8,0x00,0x04,0x8c,0xa6,0x00,0x04,0x8d,0x6a,0x00,0x04,0x8d,0xa2,0x00,0x04,0x8e,0x72,0x00,0x04,0x8f,0x44,0x00,0x04,0x90,0x30,0x00,0x04,0x90,0xbc,0x00,0x04,0x92,0x1a, +0x00,0x04,0x92,0x9e,0x00,0x04,0x93,0x30,0x00,0x04,0x93,0xe4,0x00,0x04,0x94,0x76,0x00,0x04,0x95,0x16,0x00,0x04,0x96,0x70,0x00,0x04,0x97,0x68,0x00,0x04,0x97,0xe8,0x00,0x04,0x98,0x56,0x00,0x04,0x98,0xd0,0x00,0x04,0x99,0x92,0x00,0x04,0x9a,0x12,0x00,0x04,0x9a,0xfa,0x00,0x04,0x9b,0xd6,0x00,0x04,0x9c,0x8a,0x00,0x04,0x9d,0xc4, +0x00,0x04,0x9e,0x52,0x00,0x04,0x9f,0x02,0x00,0x04,0x9f,0x98,0x00,0x04,0xa0,0x2e,0x00,0x04,0xa0,0xe4,0x00,0x04,0xa1,0x66,0x00,0x04,0xa1,0xea,0x00,0x04,0xa2,0xe4,0x00,0x04,0xa3,0xc0,0x00,0x04,0xa4,0xbe,0x00,0x04,0xa6,0x06,0x00,0x04,0xa7,0xe6,0x00,0x04,0xa8,0xd0,0x00,0x04,0xaa,0x1e,0x00,0x04,0xab,0x34,0x00,0x04,0xac,0xb0, +0x00,0x04,0xad,0x90,0x00,0x04,0xae,0x9e,0x00,0x04,0xb1,0x10,0x00,0x04,0xb2,0x16,0x00,0x04,0xb3,0x1a,0x00,0x04,0xb4,0x7e,0x00,0x04,0xb5,0xc2,0x00,0x04,0xb6,0xd6,0x00,0x04,0xb8,0xb0,0x00,0x04,0xb9,0x70,0x00,0x04,0xbb,0x5c,0x00,0x04,0xbd,0x34,0x00,0x04,0xbf,0x22,0x00,0x04,0xc0,0x4c,0x00,0x04,0xc1,0xf0,0x00,0x04,0xc3,0x60, +0x00,0x04,0xc4,0xa0,0x00,0x04,0xc5,0x9a,0x00,0x04,0xc6,0xf4,0x00,0x04,0xc7,0xcc,0x00,0x04,0xc9,0x6e,0x00,0x04,0xcb,0x30,0x00,0x04,0xcc,0x28,0x00,0x04,0xce,0x26,0x00,0x04,0xcf,0x78,0x00,0x04,0xd1,0x0a,0x00,0x04,0xd2,0x8c,0x00,0x04,0xd3,0xa4,0x00,0x04,0xd5,0x42,0x00,0x04,0xd6,0x64,0x00,0x04,0xd7,0xf0,0x00,0x04,0xd9,0x3c, +0x00,0x04,0xda,0x58,0x00,0x04,0xdb,0xb2,0x00,0x04,0xdc,0xda,0x00,0x04,0xdd,0x7c,0x00,0x04,0xde,0x6a,0x00,0x04,0xdf,0x8c,0x00,0x04,0xe0,0xb2,0x00,0x04,0xe2,0x08,0x00,0x04,0xe3,0xbe,0x00,0x04,0xe4,0xbe,0x00,0x04,0xe6,0x0e,0x00,0x04,0xe7,0x6e,0x00,0x04,0xe9,0x48,0x00,0x04,0xe9,0xfc,0x00,0x04,0xeb,0x40,0x00,0x04,0xec,0xe8, +0x00,0x04,0xee,0x6c,0x00,0x04,0xef,0xaa,0x00,0x04,0xf1,0x0c,0x00,0x04,0xf2,0x3a,0x00,0x04,0xf3,0x6a,0x00,0x04,0xf4,0xe6,0x00,0x04,0xf5,0xe2,0x00,0x04,0xf7,0x42,0x00,0x04,0xf8,0xc6,0x00,0x04,0xfa,0xc8,0x00,0x04,0xfc,0x22,0x00,0x04,0xfd,0x16,0x00,0x04,0xfe,0x04,0x00,0x04,0xff,0x1c,0x00,0x05,0x00,0x54,0x00,0x05,0x01,0x9c, +0x00,0x05,0x03,0x02,0x00,0x05,0x04,0x58,0x00,0x05,0x05,0xf8,0x00,0x05,0x07,0x50,0x00,0x05,0x08,0x46,0x00,0x05,0x09,0xaa,0x00,0x05,0x0a,0xb2,0x00,0x05,0x0b,0x62,0x00,0x05,0x0c,0x98,0x00,0x05,0x0d,0x88,0x00,0x05,0x0f,0x2a,0x00,0x05,0x10,0x08,0x00,0x05,0x10,0xc4,0x00,0x05,0x11,0xa0,0x00,0x05,0x12,0x42,0x00,0x05,0x12,0xe8, +0x00,0x05,0x13,0xee,0x00,0x05,0x14,0x5e,0x00,0x05,0x14,0xe0,0x00,0x05,0x16,0x2a,0x00,0x05,0x16,0xfe,0x00,0x05,0x17,0xb0,0x00,0x05,0x18,0x04,0x00,0x05,0x18,0xc0,0x00,0x05,0x1a,0x34,0x00,0x05,0x1a,0xca,0x00,0x05,0x1b,0xa8,0x00,0x05,0x1d,0x26,0x00,0x05,0x1d,0xb8,0x00,0x05,0x1e,0x9a,0x00,0x05,0x1f,0x2e,0x00,0x05,0x20,0x76, +0x00,0x05,0x21,0x06,0x00,0x05,0x22,0x18,0x00,0x05,0x22,0xa6,0x00,0x05,0x23,0xae,0x00,0x05,0x24,0x5e,0x00,0x05,0x25,0xc4,0x00,0x05,0x26,0x6e,0x00,0x05,0x26,0xfe,0x00,0x05,0x27,0x96,0x00,0x05,0x28,0xf2,0x00,0x05,0x29,0x78,0x00,0x05,0x2a,0xd4,0x00,0x05,0x2b,0x7e,0x00,0x05,0x2c,0x88,0x00,0x05,0x2d,0xae,0x00,0x05,0x2e,0x98, +0x00,0x05,0x2f,0xba,0x00,0x05,0x30,0x3a,0x00,0x05,0x30,0x94,0x00,0x05,0x30,0xd4,0x00,0x05,0x31,0x44,0x00,0x05,0x31,0x90,0x00,0x05,0x32,0xae,0x00,0x05,0x32,0xfe,0x00,0x05,0x33,0xee,0x00,0x05,0x34,0x92,0x00,0x05,0x35,0x6a,0x00,0x05,0x36,0x0e,0x00,0x05,0x36,0xb8,0x00,0x05,0x37,0x80,0x00,0x05,0x37,0xd0,0x00,0x05,0x38,0x6e, +0x00,0x05,0x39,0x96,0x00,0x05,0x3a,0x5a,0x00,0x05,0x3a,0xe4,0x00,0x05,0x3b,0x1e,0x00,0x05,0x3b,0xf6,0x00,0x05,0x3d,0x38,0x00,0x05,0x3d,0xae,0x00,0x05,0x3e,0x82,0x00,0x05,0x3f,0xa2,0x00,0x05,0x40,0x3e,0x00,0x05,0x41,0x46,0x00,0x05,0x41,0xc8,0x00,0x05,0x42,0x08,0x00,0x05,0x42,0x88,0x00,0x05,0x43,0x7a,0x00,0x05,0x44,0x4e, +0x00,0x05,0x45,0x3a,0x00,0x05,0x45,0xf6,0x00,0x05,0x47,0x36,0x00,0x05,0x47,0xda,0x00,0x05,0x48,0xba,0x00,0x05,0x49,0x40,0x00,0x05,0x4a,0x02,0x00,0x05,0x4a,0x92,0x00,0x05,0x4b,0xaa,0x00,0x05,0x4b,0xe4,0x00,0x05,0x4c,0xaa,0x00,0x05,0x4d,0x7a,0x00,0x05,0x4e,0x54,0x00,0x05,0x4f,0x90,0x00,0x05,0x50,0x14,0x00,0x05,0x50,0x96, +0x00,0x05,0x50,0xf4,0x00,0x05,0x51,0xd8,0x00,0x05,0x52,0xde,0x00,0x05,0x53,0xca,0x00,0x05,0x54,0xbe,0x00,0x05,0x55,0xda,0x00,0x05,0x56,0xb6,0x00,0x05,0x57,0x24,0x00,0x05,0x57,0x34,0x00,0x05,0x57,0xac,0x00,0x05,0x58,0x04,0x00,0x05,0x58,0xa2,0x00,0x05,0x59,0x60,0x00,0x05,0x59,0xde,0x00,0x05,0x5a,0x80,0x00,0x05,0x5b,0x4c, +0x00,0x05,0x5b,0xb6,0x00,0x05,0x5c,0xce,0x00,0x05,0x5d,0x96,0x00,0x05,0x5d,0xa6,0x00,0x05,0x5d,0xfe,0x00,0x05,0x5e,0x0e,0x00,0x05,0x5e,0x1e,0x00,0x05,0x5e,0x2e,0x00,0x05,0x5e,0x3e,0x00,0x05,0x5e,0x4e,0x00,0x05,0x5e,0x5e,0x00,0x05,0x5e,0x6e,0x00,0x05,0x5e,0x7e,0x00,0x05,0x5e,0xfa,0x00,0x05,0x5f,0x58,0x00,0x05,0x60,0x02, +0x00,0x05,0x60,0xd0,0x00,0x05,0x61,0x4c,0x00,0x05,0x61,0xf6,0x00,0x05,0x62,0xc2,0x00,0x05,0x63,0x2e,0x00,0x05,0x64,0x46,0x00,0x05,0x65,0x10,0x00,0x05,0x65,0xe4,0x00,0x05,0x66,0x8e,0x00,0x05,0x67,0x82,0x00,0x05,0x68,0xcc,0x00,0x05,0x69,0x9e,0x00,0x05,0x6a,0x9e,0x00,0x05,0x6b,0xbc,0x00,0x05,0x6c,0xa0,0x00,0x05,0x6e,0x1c, +0x00,0x05,0x6f,0x50,0x00,0x05,0x6f,0xb4,0x00,0x05,0x6f,0xd0,0x00,0x05,0x6f,0xec,0x00,0x05,0x70,0x08,0x00,0x05,0x70,0x26,0x00,0x05,0x70,0x42,0x00,0x05,0x71,0x0c,0x00,0x05,0x71,0x28,0x00,0x05,0x71,0x48,0x00,0x05,0x72,0x18,0x00,0x05,0x72,0x90,0x00,0x05,0x73,0x46,0x00,0x05,0x73,0xba,0x00,0x05,0x74,0x2a,0x00,0x05,0x74,0x96, +0x00,0x05,0x74,0xec,0x00,0x05,0x75,0x82,0x00,0x05,0x75,0xd8,0x00,0x05,0x76,0x00,0x00,0x05,0x76,0x52,0x00,0x05,0x76,0xcc,0x00,0x05,0x77,0x02,0x00,0x05,0x77,0x94,0x00,0x05,0x78,0x02,0x00,0x05,0x78,0x88,0x00,0x05,0x78,0xfa,0x00,0x05,0x79,0x98,0x00,0x05,0x7a,0x36,0x00,0x05,0x7a,0xf6,0x00,0x05,0x7b,0x3a,0x00,0x05,0x7b,0x9c, +0x00,0x05,0x7b,0xee,0x00,0x05,0x7c,0x80,0x00,0x05,0x7c,0xf0,0x00,0x05,0x7d,0x50,0x00,0x05,0x7d,0xa6,0x00,0x05,0x7e,0x4c,0x00,0x05,0x7f,0x26,0x00,0x05,0x7f,0x92,0x00,0x05,0x80,0x5c,0x00,0x05,0x80,0xda,0x00,0x05,0x81,0x74,0x00,0x05,0x82,0x50,0x00,0x05,0x82,0x74,0x00,0x05,0x82,0x98,0x00,0x05,0x82,0xbc,0x00,0x05,0x82,0xe0, +0x00,0x05,0x83,0x04,0x00,0x05,0x83,0x28,0x00,0x05,0x83,0x40,0x00,0x05,0x83,0x62,0x00,0x05,0x83,0x86,0x00,0x05,0x83,0xa8,0x00,0x05,0x83,0xcc,0x00,0x05,0x83,0xee,0x00,0x05,0x84,0x10,0x00,0x05,0x84,0x32,0x00,0x05,0x84,0x58,0x00,0x05,0x84,0x7c,0x00,0x05,0x84,0xa0,0x00,0x05,0x84,0xc4,0x00,0x05,0x84,0xe8,0x00,0x05,0x85,0x0c, +0x00,0x05,0x85,0x32,0x00,0x05,0x85,0x56,0x00,0x05,0x85,0x7a,0x00,0x05,0x85,0x9e,0x00,0x05,0x85,0xc4,0x00,0x05,0x85,0xe8,0x00,0x05,0x86,0x0c,0x00,0x05,0x86,0x30,0x00,0x05,0x86,0x48,0x00,0x05,0x86,0x6c,0x00,0x05,0x86,0x90,0x00,0x05,0x86,0xb4,0x00,0x05,0x86,0xd8,0x00,0x05,0x86,0xe8,0x00,0x05,0x87,0x0c,0x00,0x05,0x87,0x30, +0x00,0x05,0x87,0x54,0x00,0x05,0x87,0x6c,0x00,0x05,0x87,0x8e,0x00,0x05,0x87,0xb2,0x00,0x05,0x87,0xca,0x00,0x05,0x87,0xee,0x00,0x05,0x88,0x12,0x00,0x05,0x88,0xa4,0x00,0x05,0x88,0xc6,0x00,0x05,0x88,0xe8,0x00,0x05,0x89,0x0a,0x00,0x05,0x89,0x20,0x00,0x05,0x89,0x42,0x00,0x05,0x89,0x5a,0x00,0x05,0x89,0x7c,0x00,0x05,0x89,0x94, +0x00,0x05,0x89,0xb6,0x00,0x05,0x89,0xcc,0x00,0x05,0x89,0xe4,0x00,0x05,0x89,0xfc,0x00,0x05,0x8a,0x20,0x00,0x05,0x8a,0x38,0x00,0x05,0x8a,0x5c,0x00,0x05,0x8b,0x04,0x00,0x05,0x8b,0x28,0x00,0x05,0x8b,0x4c,0x00,0x05,0x8b,0x72,0x00,0x05,0x8b,0x96,0x00,0x05,0x8b,0xae,0x00,0x05,0x8b,0xd2,0x00,0x05,0x8b,0xf6,0x00,0x05,0x8c,0x18, +0x00,0x05,0x8c,0x30,0x00,0x05,0x8c,0x52,0x00,0x05,0x8c,0x6a,0x00,0x05,0x8c,0x80,0x00,0x05,0x8c,0xa2,0x00,0x05,0x8d,0x1c,0x00,0x05,0x8d,0x40,0x00,0x05,0x8d,0x64,0x00,0x05,0x8d,0x88,0x00,0x05,0x8d,0xae,0x00,0x05,0x8d,0xd4,0x00,0x05,0x8d,0xec,0x00,0x05,0x8e,0x10,0x00,0x05,0x8e,0x34,0x00,0x05,0x8e,0x58,0x00,0x05,0x8e,0x7e, +0x00,0x05,0x8e,0xa0,0x00,0x05,0x8e,0xc4,0x00,0x05,0x8e,0xe6,0x00,0x05,0x8f,0x0a,0x00,0x05,0x8f,0x2e,0x00,0x05,0x8f,0x52,0x00,0x05,0x8f,0x9e,0x00,0x05,0x8f,0xc2,0x00,0x05,0x8f,0xe6,0x00,0x05,0x8f,0xf6,0x00,0x05,0x90,0x06,0x00,0x05,0x90,0x40,0x00,0x05,0x90,0xa6,0x00,0x05,0x90,0xb6,0x00,0x05,0x90,0xc6,0x00,0x05,0x90,0xd6, +0x00,0x05,0x91,0x7c,0x00,0x05,0x91,0x8c,0x00,0x05,0x91,0x9c,0x00,0x05,0x91,0xfa,0x00,0x05,0x92,0x0a,0x00,0x05,0x92,0x1a,0x00,0x05,0x92,0x82,0x00,0x05,0x92,0x92,0x00,0x05,0x92,0xd2,0x00,0x05,0x92,0xe2,0x00,0x05,0x93,0x4e,0x00,0x05,0x93,0x5e,0x00,0x05,0x93,0x6e,0x00,0x05,0x94,0x4e,0x00,0x05,0x94,0x5e,0x00,0x05,0x94,0xe8, +0x00,0x05,0x95,0x8e,0x00,0x05,0x95,0xb2,0x00,0x05,0x95,0xd6,0x00,0x05,0x95,0xfa,0x00,0x05,0x96,0x1c,0x00,0x05,0x96,0x40,0x00,0x05,0x96,0x64,0x00,0x05,0x96,0x88,0x00,0x05,0x96,0xae,0x00,0x05,0x96,0xd2,0x00,0x05,0x96,0xf6,0x00,0x05,0x97,0x8c,0x00,0x05,0x97,0xb0,0x00,0x05,0x98,0x36,0x00,0x05,0x98,0x46,0x00,0x05,0x98,0x56, +0x00,0x05,0x98,0x7c,0x00,0x05,0x98,0x8c,0x00,0x05,0x99,0x5c,0x00,0x05,0x9a,0x0a,0x00,0x05,0x9a,0x7e,0x00,0x05,0x9a,0xa2,0x00,0x05,0x9a,0xc6,0x00,0x05,0x9b,0x24,0x00,0x05,0x9b,0x34,0x00,0x05,0x9b,0xba,0x00,0x05,0x9b,0xca,0x00,0x05,0x9b,0xda,0x00,0x05,0x9c,0x78,0x00,0x05,0x9c,0x88,0x00,0x05,0x9d,0x0c,0x00,0x05,0x9d,0xc6, +0x00,0x05,0x9e,0x38,0x00,0x05,0x9e,0x5c,0x00,0x05,0x9e,0x6c,0x00,0x05,0x9e,0xf0,0x00,0x05,0x9f,0x00,0x00,0x05,0x9f,0x10,0x00,0x05,0x9f,0x20,0x00,0x05,0x9f,0x30,0x00,0x05,0x9f,0x40,0x00,0x05,0x9f,0x50,0x00,0x05,0x9f,0x60,0x00,0x05,0x9f,0xdc,0x00,0x05,0x9f,0xec,0x00,0x05,0x9f,0xfc,0x00,0x05,0xa0,0x56,0x00,0x05,0xa0,0xc8, +0x00,0x05,0xa1,0x26,0x00,0x05,0xa1,0x9a,0x00,0x05,0xa2,0x20,0x00,0x05,0xa2,0xae,0x00,0x05,0xa3,0x20,0x00,0x05,0xa3,0xa6,0x00,0x05,0xa4,0x66,0x00,0x05,0xa5,0x1a,0x00,0x05,0xa5,0x5e,0x00,0x05,0xa5,0xee,0x00,0x05,0xa6,0x78,0x00,0x05,0xa7,0x4c,0x00,0x05,0xa8,0x3e,0x00,0x05,0xa9,0x24,0x00,0x05,0xaa,0xb0,0x00,0x05,0xaa,0xd4, +0x00,0x05,0xaa,0xf8,0x00,0x05,0xab,0x0e,0x00,0x05,0xab,0x1e,0x00,0x05,0xab,0x2e,0x00,0x05,0xab,0x4e,0x00,0x05,0xab,0x5e,0x00,0x05,0xab,0x6e,0x00,0x05,0xab,0x8e,0x00,0x05,0xab,0x9e,0x00,0x05,0xab,0xae,0x00,0x05,0xab,0xcc,0x00,0x05,0xab,0xdc,0x00,0x05,0xab,0xec,0x00,0x05,0xac,0x0a,0x00,0x05,0xac,0x1a,0x00,0x05,0xac,0x2a, +0x00,0x05,0xac,0x48,0x00,0x05,0xac,0x58,0x00,0x05,0xac,0x68,0x00,0x05,0xac,0x78,0x00,0x05,0xac,0x88,0x00,0x05,0xac,0x98,0x00,0x05,0xac,0xb8,0x00,0x05,0xac,0xd6,0x00,0x05,0xac,0xe6,0x00,0x05,0xac,0xf6,0x00,0x05,0xad,0x14,0x00,0x05,0xad,0x32,0x00,0x05,0xad,0x42,0x00,0x05,0xad,0x52,0x00,0x05,0xad,0x62,0x00,0x05,0xad,0x84, +0x00,0x05,0xad,0x94,0x00,0x05,0xad,0xb4,0x00,0x05,0xad,0xc4,0x00,0x05,0xad,0xe2,0x00,0x05,0xad,0xf2,0x00,0x05,0xae,0x02,0x00,0x05,0xae,0x12,0x00,0x05,0xae,0x30,0x00,0x05,0xae,0x4e,0x00,0x05,0xae,0x6e,0x00,0x05,0xae,0x7e,0x00,0x05,0xae,0x8e,0x00,0x05,0xae,0xa6,0x00,0x05,0xae,0xbe,0x00,0x05,0xae,0xce,0x00,0x05,0xae,0xde, +0x00,0x05,0xae,0xf6,0x00,0x05,0xaf,0x0e,0x00,0x05,0xaf,0x9c,0x00,0x05,0xb0,0xde,0x00,0x05,0xb2,0x14,0x00,0x05,0xb2,0x84,0x00,0x05,0xb2,0xe0,0x00,0x05,0xb3,0x7c,0x00,0x05,0xb4,0x44,0x00,0x05,0xb4,0xf6,0x00,0x05,0xb5,0xa2,0x00,0x05,0xb6,0x02,0x00,0x05,0xb6,0x5c,0x00,0x05,0xb6,0xbc,0x00,0x05,0xb7,0x64,0x00,0x05,0xb7,0x92, +0x00,0x05,0xb7,0xc2,0x00,0x05,0xb7,0xf0,0x00,0x05,0xb8,0x20,0x00,0x05,0xb8,0x38,0x00,0x05,0xb8,0x6a,0x00,0x05,0xb8,0x82,0x00,0x05,0xb8,0x9a,0x00,0x05,0xb8,0xb2,0x00,0x05,0xb8,0xca,0x00,0x05,0xb8,0xe2,0x00,0x05,0xb8,0xf8,0x00,0x05,0xb9,0x28,0x00,0x05,0xb9,0x3e,0x00,0x05,0xb9,0x54,0x00,0x05,0xb9,0x64,0x00,0x05,0xb9,0xc2, +0x00,0x05,0xba,0x16,0x00,0x05,0xba,0x2c,0x00,0x05,0xba,0x42,0x00,0x05,0xbb,0x5c,0x00,0x05,0xbc,0x64,0x00,0x05,0xbd,0x4c,0x00,0x05,0xbe,0x84,0x00,0x05,0xbf,0x26,0x00,0x05,0xbf,0xe0,0x00,0x05,0xc0,0x0c,0x00,0x05,0xc0,0xc2,0x00,0x05,0xc1,0x3a,0x00,0x05,0xc1,0x60,0x00,0x05,0xc2,0x26,0x00,0x05,0xc2,0x4c,0x00,0x05,0xc2,0x64, +0x00,0x05,0xc2,0x7c,0x00,0x05,0xc2,0x94,0x00,0x05,0xc2,0xac,0x00,0x05,0xc2,0xc4,0x00,0x05,0xc2,0xe8,0x00,0x05,0xc3,0x0c,0x00,0x05,0xc3,0x24,0x00,0x05,0xc3,0x3c,0x00,0x05,0xc3,0x54,0x00,0x05,0xc3,0x6c,0x00,0x05,0xc3,0x84,0x00,0x05,0xc3,0x9c,0x00,0x05,0xc3,0xb4,0x00,0x05,0xc4,0x88,0x00,0x05,0xc4,0xa0,0x00,0x05,0xc5,0x36, +0x00,0x05,0xc5,0x4e,0x00,0x05,0xc6,0xbe,0x00,0x05,0xc7,0xf2,0x00,0x05,0xc8,0x0a,0x00,0x05,0xc8,0x22,0x00,0x05,0xc9,0xa0,0x00,0x05,0xca,0xec,0x00,0x05,0xcb,0x04,0x00,0x05,0xcb,0x1c,0x00,0x05,0xcc,0x1c,0x00,0x05,0xcd,0x00,0x00,0x05,0xce,0x08,0x00,0x05,0xce,0x20,0x00,0x05,0xce,0x38,0x00,0x05,0xce,0x50,0x00,0x05,0xce,0x68, +0x00,0x05,0xce,0x80,0x00,0x05,0xce,0x98,0x00,0x05,0xce,0xb0,0x00,0x05,0xce,0xc8,0x00,0x05,0xce,0xe0,0x00,0x05,0xce,0xf8,0x00,0x05,0xcf,0x10,0x00,0x05,0xcf,0x28,0x00,0x05,0xcf,0x4c,0x00,0x05,0xcf,0x6c,0x00,0x05,0xcf,0x8c,0x00,0x05,0xcf,0xa4,0x00,0x05,0xcf,0xbc,0x00,0x05,0xcf,0xdc,0x00,0x05,0xcf,0xfc,0x00,0x05,0xd0,0x14, +0x00,0x05,0xd0,0x2c,0x00,0x05,0xd0,0x4c,0x00,0x05,0xd0,0x6c,0x00,0x05,0xd0,0x84,0x00,0x05,0xd0,0x9c,0x00,0x05,0xd1,0xe0,0x00,0x05,0xd2,0x8e,0x00,0x05,0xd3,0x98,0x00,0x05,0xd4,0x7c,0x00,0x05,0xd4,0x94,0x00,0x05,0xd4,0xac,0x00,0x05,0xd5,0xf4,0x00,0x05,0xd7,0x38,0x00,0x05,0xd8,0x62,0x00,0x05,0xd9,0x5a,0x00,0x05,0xd9,0x6a, +0x00,0x05,0xd9,0x7a,0x00,0x05,0xd9,0x92,0x00,0x05,0xda,0x94,0x00,0x05,0xdb,0xa4,0x00,0x05,0xdd,0x8c,0x00,0x05,0xde,0x7e,0x00,0x05,0xdf,0xc0,0x00,0x05,0xe0,0x5a,0x00,0x05,0xe1,0x94,0x00,0x05,0xe2,0x3e,0x00,0x05,0xe3,0x32,0x00,0x05,0xe3,0xd8,0x00,0x05,0xe4,0x68,0x00,0x05,0xe4,0x78,0x00,0x05,0xe5,0x3a,0x00,0x05,0xe5,0x9e, +0x00,0x05,0xe6,0xb8,0x00,0x05,0xe6,0xc8,0x00,0x05,0xe6,0xd8,0x00,0x05,0xe6,0xea,0x00,0x05,0xe7,0x0e,0x00,0x05,0xe7,0x3e,0x00,0x05,0xe7,0x62,0x00,0x05,0xe7,0x8e,0x00,0x05,0xe7,0xa6,0x00,0x05,0xe7,0xbe,0x00,0x05,0xe7,0xd6,0x00,0x05,0xe7,0xee,0x00,0x05,0xe8,0x06,0x00,0x05,0xe8,0x1e,0x00,0x05,0xe8,0x3e,0x00,0x05,0xe8,0x5e, +0x00,0x05,0xe8,0x76,0x00,0x05,0xe8,0x8e,0x00,0x05,0xe8,0xa6,0x00,0x05,0xe8,0xbe,0x00,0x05,0xe8,0xd6,0x00,0x05,0xe8,0xee,0x00,0x05,0xe9,0x06,0x00,0x05,0xe9,0x1e,0x00,0x05,0xe9,0x42,0x00,0x05,0xe9,0x5a,0x00,0x05,0xe9,0x72,0x00,0x05,0xe9,0x8a,0x00,0x05,0xe9,0xa2,0x00,0x05,0xe9,0xba,0x00,0x05,0xe9,0xd2,0x00,0x05,0xe9,0xea, +0x00,0x05,0xea,0x02,0x00,0x05,0xea,0x1a,0x00,0x05,0xea,0x3a,0x00,0x05,0xea,0x52,0x00,0x05,0xea,0x6a,0x00,0x05,0xea,0x82,0x00,0x05,0xea,0x9a,0x00,0x05,0xea,0xb2,0x00,0x05,0xea,0xd2,0x00,0x05,0xea,0xf2,0x00,0x05,0xeb,0x0a,0x00,0x05,0xeb,0x22,0x00,0x05,0xeb,0x42,0x00,0x05,0xeb,0x62,0x00,0x05,0xeb,0x7a,0x00,0x05,0xeb,0x92, +0x00,0x05,0xeb,0xaa,0x00,0x05,0xeb,0xc2,0x00,0x05,0xeb,0xda,0x00,0x05,0xeb,0xf2,0x00,0x05,0xec,0x0a,0x00,0x05,0xed,0x52,0x00,0x05,0xed,0x6a,0x00,0x05,0xed,0x8a,0x00,0x05,0xed,0xa2,0x00,0x05,0xed,0xba,0x00,0x05,0xed,0xd2,0x00,0x05,0xed,0xea,0x00,0x05,0xee,0x02,0x00,0x05,0xee,0x1a,0x00,0x05,0xee,0x32,0x00,0x05,0xee,0x4a, +0x00,0x05,0xee,0x62,0x00,0x05,0xef,0x6a,0x00,0x05,0xef,0x7a,0x00,0x05,0xf0,0x94,0x00,0x05,0xf1,0xca,0x00,0x05,0xf1,0xe2,0x00,0x05,0xf1,0xfa,0x00,0x05,0xf2,0x12,0x00,0x05,0xf2,0x2a,0x00,0x05,0xf2,0x42,0x00,0x05,0xf2,0x5a,0x00,0x05,0xf2,0x72,0x00,0x05,0xf2,0x8a,0x00,0x05,0xf2,0xa2,0x00,0x05,0xf2,0xb8,0x00,0x05,0xf2,0xd8, +0x00,0x05,0xf2,0xf6,0x00,0x05,0xf3,0x24,0x00,0x05,0xf3,0x50,0x00,0x05,0xf3,0x70,0x00,0x05,0xf3,0x8e,0x00,0x05,0xf3,0xae,0x00,0x05,0xf3,0xcc,0x00,0x05,0xf4,0x02,0x00,0x05,0xf4,0x36,0x00,0x05,0xf4,0x4e,0x00,0x05,0xf4,0x66,0x00,0x05,0xf4,0x8e,0x00,0x05,0xf5,0x9a,0x00,0x05,0xf6,0xa4,0x00,0x05,0xf6,0xc4,0x00,0x05,0xf7,0x8c, +0x00,0x05,0xf7,0xa4,0x00,0x05,0xf7,0xbc,0x00,0x05,0xf7,0xd4,0x00,0x05,0xf9,0x26,0x00,0x05,0xf9,0x46,0x00,0x05,0xf9,0x5e,0x00,0x05,0xf9,0x76,0x00,0x05,0xf9,0x86,0x00,0x05,0xf9,0x96,0x00,0x05,0xf9,0xb6,0x00,0x05,0xf9,0xce,0x00,0x05,0xf9,0xe6,0x00,0x05,0xf9,0xfc,0x00,0x05,0xfb,0x1e,0x00,0x05,0xfb,0x42,0x00,0x05,0xfb,0x68, +0x00,0x05,0xfb,0x80,0x00,0x05,0xfb,0xa4,0x00,0x05,0xfb,0xbc,0x00,0x05,0xfb,0xd4,0x00,0x05,0xfb,0xec,0x00,0x05,0xfc,0x0c,0x00,0x05,0xfc,0x24,0x00,0x05,0xfc,0x3c,0x00,0x05,0xfc,0x54,0x00,0x05,0xfc,0x6c,0x00,0x05,0xfc,0x84,0x00,0x05,0xfc,0xde,0x00,0x05,0xfc,0xfe,0x00,0x05,0xfd,0x1e,0x00,0x05,0xfd,0x3e,0x00,0x05,0xfd,0x5e, +0x00,0x05,0xfd,0x76,0x00,0x05,0xfd,0x96,0x00,0x05,0xfd,0xb6,0x00,0x05,0xfd,0xd6,0x00,0x05,0xfd,0xee,0x00,0x05,0xfe,0x06,0x00,0x05,0xfe,0x26,0x00,0x05,0xfe,0x46,0x00,0x05,0xfe,0x66,0x00,0x05,0xfe,0x86,0x00,0x05,0xfe,0xaa,0x00,0x05,0xfe,0xce,0x00,0x05,0xfe,0xe6,0x00,0x05,0xfe,0xfe,0x00,0x05,0xff,0x16,0x00,0x05,0xff,0x2e, +0x00,0x05,0xff,0x4e,0x00,0x05,0xff,0x72,0x00,0x05,0xff,0x8a,0x00,0x05,0xff,0xa2,0x00,0x05,0xff,0xba,0x00,0x05,0xff,0xd2,0x00,0x05,0xff,0xea,0x00,0x06,0x00,0x02,0x00,0x06,0x00,0x1a,0x00,0x06,0x00,0x32,0x00,0x06,0x00,0x4a,0x00,0x06,0x00,0x62,0x00,0x06,0x00,0x7a,0x00,0x06,0x00,0x92,0x00,0x06,0x01,0xbe,0x00,0x06,0x01,0xde, +0x00,0x06,0x01,0xfe,0x00,0x06,0x02,0x2a,0x00,0x06,0x02,0x56,0x00,0x06,0x02,0x8c,0x00,0x06,0x02,0xa4,0x00,0x06,0x02,0xbc,0x00,0x06,0x04,0x04,0x00,0x06,0x05,0x88,0x00,0x06,0x05,0xa0,0x00,0x06,0x05,0xb8,0x00,0x06,0x07,0x4a,0x00,0x06,0x09,0x18,0x00,0x06,0x0a,0x9e,0x00,0x06,0x0c,0x5c,0x00,0x06,0x0c,0x8a,0x00,0x06,0x0c,0xb8, +0x00,0x06,0x0c,0xe6,0x00,0x06,0x0d,0x14,0x00,0x06,0x0d,0x42,0x00,0x06,0x0d,0x70,0x00,0x06,0x0d,0x88,0x00,0x06,0x0d,0xa0,0x00,0x06,0x0d,0xb8,0x00,0x06,0x0d,0xd0,0x00,0x06,0x0d,0xe8,0x00,0x06,0x0e,0x00,0x00,0x06,0x0e,0x18,0x00,0x06,0x0e,0x30,0x00,0x06,0x0e,0x54,0x00,0x06,0x0e,0x7c,0x00,0x06,0x0e,0xa8,0x00,0x06,0x0e,0xd4, +0x00,0x06,0x0e,0xf8,0x00,0x06,0x0f,0x20,0x00,0x06,0x0f,0x4c,0x00,0x06,0x0f,0x78,0x00,0x06,0x0f,0x9e,0x00,0x06,0x0f,0xc2,0x00,0x06,0x0f,0xe6,0x00,0x06,0x10,0x0a,0x00,0x06,0x10,0x24,0x00,0x06,0x10,0x3e,0x00,0x06,0x10,0x58,0x00,0x06,0x10,0x72,0x00,0x06,0x10,0x9a,0x00,0x06,0x10,0xbe,0x00,0x06,0x10,0xe6,0x00,0x06,0x11,0x0a, +0x00,0x06,0x12,0x42,0x00,0x06,0x13,0xbc,0x00,0x06,0x13,0xe0,0x00,0x06,0x14,0x04,0x00,0x06,0x14,0x28,0x00,0x06,0x14,0x4c,0x00,0x06,0x14,0x70,0x00,0x06,0x14,0x94,0x00,0x06,0x14,0xac,0x00,0x06,0x14,0xc4,0x00,0x06,0x14,0xdc,0x00,0x06,0x14,0xf4,0x00,0x06,0x15,0x0c,0x00,0x06,0x15,0x24,0x00,0x06,0x15,0x3c,0x00,0x06,0x15,0x54, +0x00,0x06,0x15,0x86,0x00,0x06,0x15,0xd2,0x00,0x06,0x16,0x1a,0x00,0x06,0x16,0x8a,0x00,0x06,0x16,0xf2,0x00,0x06,0x17,0x56,0x00,0x06,0x17,0xd0,0x00,0x06,0x18,0x8c,0x00,0x06,0x19,0x34,0x00,0x06,0x19,0x60,0x00,0x06,0x19,0xd0,0x00,0x06,0x1a,0x48,0x00,0x06,0x1a,0x74,0x00,0x06,0x1a,0xbc,0x00,0x06,0x1b,0x08,0x00,0x06,0x1b,0xde, +0x00,0x06,0x1c,0x78,0x00,0x06,0x1d,0x76,0x00,0x06,0x1d,0x98,0x00,0x06,0x1d,0xae,0x00,0x06,0x1d,0xc4,0x00,0x06,0x1d,0xee,0x00,0x06,0x1e,0x04,0x00,0x06,0x1e,0x28,0x00,0x06,0x1e,0x3e,0x00,0x06,0x1e,0x56,0x00,0x06,0x1e,0x7a,0x00,0x06,0x1e,0x9e,0x00,0x06,0x1f,0x82,0x00,0x06,0x20,0x96,0x00,0x06,0x20,0xae,0x00,0x06,0x20,0xc6, +0x00,0x06,0x20,0xe6,0x00,0x06,0x21,0x06,0x00,0x06,0x21,0x1e,0x00,0x06,0x21,0x36,0x00,0x06,0x21,0x56,0x00,0x06,0x21,0x76,0x00,0x06,0x21,0x96,0x00,0x06,0x21,0xb6,0x00,0x06,0x21,0xce,0x00,0x06,0x21,0xe6,0x00,0x06,0x21,0xfe,0x00,0x06,0x22,0x16,0x00,0x06,0x22,0x44,0x00,0x06,0x22,0x72,0x00,0x06,0x22,0x96,0x00,0x06,0x22,0xba, +0x00,0x06,0x22,0xd2,0x00,0x06,0x22,0xea,0x00,0x06,0x23,0xec,0x00,0x06,0x25,0x12,0x00,0x06,0x25,0x2a,0x00,0x06,0x25,0x42,0x00,0x06,0x25,0x5a,0x00,0x06,0x25,0x72,0x00,0x06,0x25,0x8a,0x00,0x06,0x25,0xa2,0x00,0x06,0x25,0xc2,0x00,0x06,0x25,0xe2,0x00,0x06,0x26,0x42,0x00,0x06,0x26,0xc8,0x00,0x06,0x26,0xde,0x00,0x06,0x26,0xf4, +0x00,0x06,0x27,0x0c,0x00,0x06,0x27,0x24,0x00,0x06,0x27,0x4c,0x00,0x06,0x27,0x74,0x00,0x06,0x27,0x8c,0x00,0x06,0x27,0xa4,0x00,0x06,0x27,0xbc,0x00,0x06,0x27,0xd4,0x00,0x06,0x28,0x68,0x00,0x06,0x28,0x80,0x00,0x06,0x28,0x98,0x00,0x06,0x28,0xb0,0x00,0x06,0x28,0xc8,0x00,0x06,0x28,0xe0,0x00,0x06,0x29,0x04,0x00,0x06,0x29,0x24, +0x00,0x06,0x29,0x3c,0x00,0x06,0x29,0x54,0x00,0x06,0x29,0x6c,0x00,0x06,0x29,0x84,0x00,0x06,0x29,0x9c,0x00,0x06,0x29,0xb4,0x00,0x06,0x29,0xe2,0x00,0x06,0x2a,0x06,0x00,0x06,0x2a,0x2a,0x00,0x06,0x2a,0x42,0x00,0x06,0x2a,0x5a,0x00,0x06,0x2b,0x30,0x00,0x06,0x2b,0x48,0x00,0x06,0x2b,0x60,0x00,0x06,0x2c,0x54,0x00,0x06,0x2c,0x6c, +0x00,0x06,0x2c,0x84,0x00,0x06,0x2c,0xac,0x00,0x06,0x2c,0xd4,0x00,0x06,0x2c,0xf8,0x00,0x06,0x2d,0xc4,0x00,0x06,0x2e,0x52,0x00,0x06,0x2e,0xe0,0x00,0x06,0x2e,0xf8,0x00,0x06,0x2f,0x10,0x00,0x06,0x2f,0x34,0x00,0x06,0x2f,0x58,0x00,0x06,0x2f,0x7c,0x00,0x06,0x2f,0xa0,0x00,0x06,0x2f,0xb0,0x00,0x06,0x2f,0xc8,0x00,0x06,0x2f,0xe0, +0x00,0x06,0x30,0x2c,0x00,0x06,0x30,0xa6,0x00,0x06,0x31,0x7a,0x00,0x06,0x31,0x92,0x00,0x06,0x32,0x5e,0x00,0x06,0x33,0xde,0x00,0x06,0x34,0xa2,0x00,0x06,0x35,0xf2,0x00,0x06,0x37,0x50,0x00,0x06,0x38,0x28,0x00,0x06,0x39,0x6a,0x00,0x06,0x39,0xde,0x00,0x06,0x3a,0x5a,0x00,0x06,0x3a,0xe2,0x00,0x06,0x3b,0x60,0x00,0x06,0x3b,0xd8, +0x00,0x06,0x3c,0x58,0x00,0x06,0x3c,0xc0,0x00,0x06,0x3d,0x30,0x00,0x06,0x3d,0x9e,0x00,0x06,0x3e,0x18,0x00,0x06,0x3e,0xae,0x00,0x06,0x3f,0x26,0x00,0x06,0x3f,0xec,0x00,0x06,0x40,0x96,0x00,0x06,0x41,0x80,0x00,0x06,0x42,0x66,0x00,0x06,0x43,0x28,0x00,0x06,0x44,0x24,0x00,0x06,0x44,0xf2,0x00,0x06,0x45,0x76,0x00,0x06,0x46,0x2e, +0x00,0x06,0x46,0xb2,0x00,0x06,0x47,0x5a,0x00,0x06,0x48,0x2a,0x00,0x06,0x48,0xd6,0x00,0x06,0x49,0xc6,0x00,0x06,0x4a,0xc0,0x00,0x06,0x4b,0xa6,0x00,0x06,0x4c,0x7a,0x00,0x06,0x4d,0xa0,0x00,0x06,0x4e,0xb8,0x00,0x06,0x4f,0x2e,0x00,0x06,0x4f,0xc4,0x00,0x06,0x50,0x7a,0x00,0x06,0x51,0x64,0x00,0x06,0x52,0x40,0x00,0x06,0x52,0xde, +0x00,0x06,0x53,0xc8,0x00,0x06,0x54,0x5a,0x00,0x06,0x54,0xe8,0x00,0x06,0x55,0xa4,0x00,0x06,0x56,0x1e,0x00,0x06,0x56,0xc2,0x00,0x06,0x57,0x8e,0x00,0x06,0x58,0x6a,0x00,0x06,0x59,0x28,0x00,0x06,0x59,0xda,0x00,0x06,0x5a,0xe6,0x00,0x06,0x5b,0xbe,0x00,0x06,0x5c,0x3e,0x00,0x06,0x5c,0xf6,0x00,0x06,0x5d,0x74,0x00,0x06,0x5e,0x1c, +0x00,0x06,0x5e,0xce,0x00,0x06,0x5f,0xb8,0x00,0x06,0x60,0x86,0x00,0x06,0x61,0xae,0x00,0x06,0x62,0x92,0x00,0x06,0x63,0x7e,0x00,0x06,0x63,0xb4,0x00,0x06,0x64,0x46,0x00,0x06,0x64,0xc2,0x00,0x06,0x65,0xa8,0x00,0x06,0x66,0xae,0x00,0x06,0x67,0x64,0x00,0x06,0x68,0x2c,0x00,0x06,0x69,0x40,0x00,0x06,0x6a,0x72,0x00,0x06,0x6b,0x30, +0x00,0x06,0x6c,0x6a,0x00,0x06,0x6d,0xd4,0x00,0x06,0x6e,0x64,0x00,0x06,0x6f,0x08,0x00,0x06,0x6f,0xd2,0x00,0x06,0x70,0x9c,0x00,0x06,0x71,0xa0,0x00,0x06,0x72,0xde,0x00,0x06,0x73,0x72,0x00,0x06,0x74,0x4c,0x00,0x06,0x74,0xfa,0x00,0x06,0x75,0x8e,0x00,0x06,0x76,0x1e,0x00,0x06,0x76,0xbc,0x00,0x06,0x77,0x76,0x00,0x06,0x78,0x9c, +0x00,0x06,0x79,0xc0,0x00,0x06,0x7b,0x2a,0x00,0x06,0x7c,0x0c,0x00,0x06,0x7c,0xc2,0x00,0x06,0x7d,0xb2,0x00,0x06,0x7e,0xb4,0x00,0x06,0x7f,0x2e,0x00,0x06,0x7f,0xd4,0x00,0x06,0x80,0x7c,0x00,0x06,0x81,0x5a,0x00,0x06,0x82,0x82,0x00,0x06,0x83,0xce,0x00,0x06,0x84,0xf2,0x00,0x06,0x85,0xd2,0x00,0x06,0x86,0xc0,0x00,0x06,0x88,0x22, +0x00,0x06,0x88,0x9e,0x00,0x06,0x89,0x9e,0x00,0x06,0x8a,0xdc,0x00,0x06,0x8b,0xf4,0x00,0x06,0x8d,0x42,0x00,0x06,0x8e,0xea,0x00,0x06,0x8f,0xe6,0x00,0x06,0x91,0x2a,0x00,0x06,0x92,0x82,0x00,0x06,0x93,0xc2,0x00,0x06,0x94,0x4c,0x00,0x06,0x95,0x4e,0x00,0x06,0x96,0x3c,0x00,0x06,0x97,0xc8,0x00,0x06,0x99,0x3c,0x00,0x06,0x9b,0x16, +0x00,0x06,0x9c,0xdc,0x00,0x06,0x9e,0x20,0x00,0x06,0xa0,0x10,0x00,0x06,0xa1,0x2e,0x00,0x06,0xa1,0xa8,0x00,0x06,0xa2,0x44,0x00,0x06,0xa2,0xee,0x00,0x06,0xa3,0xe6,0x00,0x06,0xa4,0x90,0x00,0x06,0xa5,0x24,0x00,0x06,0xa5,0xec,0x00,0x06,0xa6,0xb8,0x00,0x06,0xa7,0x38,0x00,0x06,0xa7,0xec,0x00,0x06,0xa8,0x66,0x00,0x06,0xa8,0xf2, +0x00,0x06,0xa9,0x54,0x00,0x06,0xaa,0x04,0x00,0x06,0xaa,0xb0,0x00,0x06,0xab,0xa2,0x00,0x06,0xac,0xba,0x00,0x06,0xad,0x8e,0x00,0x06,0xae,0x4a,0x00,0x06,0xaf,0x66,0x00,0x06,0xaf,0xe4,0x00,0x06,0xb0,0x40,0x00,0x06,0xb0,0xd8,0x00,0x06,0xb1,0x46,0x00,0x06,0xb1,0xac,0x00,0x06,0xb2,0x40,0x00,0x06,0xb2,0xd6,0x00,0x06,0xb3,0x2a, +0x00,0x06,0xb4,0x1e,0x00,0x06,0xb5,0x10,0x00,0x06,0xb5,0x92,0x00,0x06,0xb6,0x6e,0x00,0x06,0xb7,0xdc,0x00,0x06,0xb8,0xc8,0x00,0x06,0xb9,0xe6,0x00,0x06,0xbb,0x7e,0x00,0x06,0xbc,0x9e,0x00,0x06,0xbd,0xca,0x00,0x06,0xbe,0xf6,0x00,0x06,0xc0,0x34,0x00,0x06,0xc0,0xb8,0x00,0x06,0xc1,0x84,0x00,0x06,0xc2,0x8a,0x00,0x06,0xc3,0xbe, +0x00,0x06,0xc4,0x62,0x00,0x06,0xc5,0x48,0x00,0x06,0xc6,0x4a,0x00,0x06,0xc7,0x48,0x00,0x06,0xc8,0x20,0x00,0x06,0xc9,0x02,0x00,0x06,0xc9,0x7c,0x00,0x06,0xc9,0xec,0x00,0x06,0xca,0xb6,0x00,0x06,0xcb,0x68,0x00,0x06,0xcc,0x1e,0x00,0x06,0xcd,0x0a,0x00,0x06,0xcd,0xf0,0x00,0x06,0xce,0xe0,0x00,0x06,0xcf,0x48,0x00,0x06,0xd0,0x06, +0x00,0x06,0xd0,0xbc,0x00,0x06,0xd1,0xc8,0x00,0x06,0xd1,0xf2,0x00,0x06,0xd3,0x3c,0x00,0x06,0xd4,0x46,0x00,0x06,0xd4,0xea,0x00,0x06,0xd5,0x96,0x00,0x06,0xd6,0x70,0x00,0x06,0xd7,0x4a,0x00,0x06,0xd8,0x6a,0x00,0x06,0xd9,0xb0,0x00,0x06,0xda,0x42,0x00,0x06,0xda,0xec,0x00,0x06,0xdb,0xc6,0x00,0x06,0xdc,0xaa,0x00,0x06,0xdd,0x6e, +0x00,0x06,0xde,0x6e,0x00,0x06,0xdf,0x10,0x00,0x06,0xdf,0xa8,0x00,0x06,0xe0,0x40,0x00,0x06,0xe0,0xb6,0x00,0x06,0xe0,0xc6,0x00,0x06,0xe0,0xec,0x00,0x06,0xe1,0x1a,0x00,0x06,0xe1,0x4e,0x00,0x06,0xe1,0x5e,0x00,0x06,0xe1,0x8e,0x00,0x06,0xe1,0xbc,0x00,0x06,0xe1,0xf2,0x00,0x06,0xe2,0x28,0x00,0x06,0xe2,0x5e,0x00,0x06,0xe2,0x94, +0x00,0x06,0xe2,0xca,0x00,0x06,0xe3,0x00,0x00,0x06,0xe3,0x2e,0x00,0x06,0xe3,0x5c,0x00,0x06,0xe3,0x8a,0x00,0x06,0xe3,0xbc,0x00,0x06,0xe3,0xee,0x00,0x06,0xe4,0x20,0x00,0x06,0xe4,0x30,0x00,0x06,0xe4,0x54,0x00,0x06,0xe4,0x64,0x00,0x06,0xe4,0x92,0x00,0x06,0xe4,0xaa,0x00,0x06,0xe4,0xd8,0x00,0x06,0xe4,0xfc,0x00,0x06,0xe5,0x2c, +0x00,0x06,0xe5,0x5a,0x00,0x06,0xe5,0x88,0x00,0x06,0xe5,0xbe,0x00,0x06,0xe5,0xec,0x00,0x06,0xe6,0x1a,0x00,0x06,0xe6,0x48,0x00,0x06,0xe6,0x76,0x00,0x06,0xe6,0xa4,0x00,0x06,0xe6,0xd2,0x00,0x06,0xe8,0x96,0x00,0x06,0xea,0x76,0x00,0x06,0xec,0x72,0x00,0x06,0xee,0x4e,0x00,0x06,0xef,0x2e,0x00,0x06,0xf0,0x3c,0x00,0x06,0xf1,0xda, +0x00,0x06,0xf2,0x78,0x00,0x06,0xf3,0x62,0x00,0x06,0xf4,0x36,0x00,0x06,0xf4,0xaa,0x00,0x06,0xf5,0x16,0x00,0x06,0xf5,0xe0,0x00,0x06,0xf6,0xcc,0x00,0x06,0xf7,0xc0,0x00,0x06,0xf9,0x00,0x00,0x06,0xf9,0x86,0x00,0x06,0xfa,0xe8,0x00,0x06,0xfb,0xce,0x00,0x06,0xfd,0x0c,0x00,0x06,0xfe,0xa2,0x00,0x07,0x00,0x16,0x00,0x07,0x01,0x4c, +0x00,0x07,0x02,0x24,0x00,0x07,0x03,0x26,0x00,0x07,0x04,0x1a,0x00,0x07,0x05,0x08,0x00,0x07,0x06,0x42,0x00,0x07,0x07,0xa8,0x00,0x07,0x08,0xea,0x00,0x07,0x09,0xe4,0x00,0x07,0x0a,0x7e,0x00,0x07,0x0b,0x2c,0x00,0x07,0x0d,0x52,0x00,0x07,0x0e,0x90,0x00,0x07,0x0f,0xa8,0x00,0x07,0x10,0xa4,0x00,0x07,0x11,0x64,0x00,0x07,0x12,0x8a, +0x00,0x07,0x13,0x32,0x00,0x07,0x14,0x3a,0x00,0x07,0x15,0xcc,0x00,0x07,0x16,0xda,0x00,0x07,0x18,0x22,0x00,0x07,0x18,0x6a,0x00,0x07,0x18,0x98,0x00,0x07,0x18,0xee,0x00,0x07,0x19,0x1a,0x00,0x07,0x19,0x44,0x00,0x07,0x19,0x7c,0x00,0x07,0x19,0xde,0x00,0x07,0x1a,0x34,0x00,0x07,0x1a,0x5e,0x00,0x07,0x1a,0xa6,0x00,0x07,0x1a,0xee, +0x00,0x07,0x1b,0x1a,0x00,0x07,0x1b,0xcc,0x00,0x07,0x1c,0x78,0x00,0x07,0x1c,0xd8,0x00,0x07,0x1d,0x32,0x00,0x07,0x1d,0x92,0x00,0x07,0x1e,0x3a,0x00,0x07,0x1e,0x98,0x00,0x07,0x1f,0x42,0x00,0x07,0x20,0x52,0x00,0x07,0x20,0x64,0x00,0x07,0x23,0xe8,0x00,0x07,0x27,0x46,0x00,0x07,0x2a,0xd6,0x00,0x07,0x2b,0x02,0x00,0x07,0x2b,0x2e, +0x00,0x07,0x2b,0x5a,0x00,0x07,0x2b,0x86,0x00,0x07,0x2b,0xb2,0x00,0x07,0x2b,0xde,0x00,0x07,0x2c,0x16,0x00,0x07,0x2c,0x4e,0x00,0x07,0x2c,0x84,0x00,0x07,0x2c,0xba,0x00,0x07,0x2c,0xee,0x00,0x07,0x2d,0x22,0x00,0x07,0x2d,0x56,0x00,0x07,0x2d,0x8a,0x00,0x07,0x2d,0xbe,0x00,0x07,0x2d,0xea,0x00,0x07,0x2e,0x16,0x00,0x07,0x2e,0x42, +0x00,0x07,0x2e,0xe0,0x00,0x07,0x2f,0x62,0x00,0x07,0x2f,0x98,0x00,0x07,0x30,0x0a,0x00,0x07,0x30,0x80,0x00,0x07,0x31,0x16,0x00,0x07,0x31,0x70,0x00,0x07,0x31,0xc4,0x00,0x07,0x32,0x1e,0x00,0x07,0x32,0x72,0x00,0x07,0x32,0xd4,0x00,0x07,0x33,0x16,0x00,0x07,0x33,0x9e,0x00,0x07,0x33,0xfe,0x00,0x07,0x34,0x3e,0x00,0x07,0x34,0x9a, +0x00,0x07,0x34,0xf2,0x00,0x07,0x35,0x4a,0x00,0x07,0x35,0xa2,0x00,0x07,0x36,0x12,0x00,0x07,0x36,0xd0,0x00,0x07,0x37,0x4a,0x00,0x07,0x37,0xe0,0x00,0x07,0x38,0x5a,0x00,0x07,0x38,0xee,0x00,0x07,0x39,0x88,0x00,0x07,0x3a,0x10,0x00,0x07,0x3a,0x9c,0x00,0x07,0x3b,0x6a,0x00,0x07,0x3b,0xfc,0x00,0x07,0x3c,0xa2,0x00,0x07,0x3d,0x6a, +0x00,0x07,0x3e,0x1c,0x00,0x07,0x3e,0xc6,0x00,0x07,0x3f,0xac,0x00,0x07,0x40,0x8c,0x00,0x07,0x41,0x2c,0x00,0x07,0x41,0xbc,0x00,0x07,0x42,0x16,0x00,0x07,0x42,0x72,0x00,0x07,0x43,0x16,0x00,0x07,0x43,0xae,0x00,0x07,0x44,0xac,0x00,0x07,0x45,0x58,0x00,0x07,0x46,0x46,0x00,0x07,0x47,0x0a,0x00,0x07,0x47,0x96,0x00,0x07,0x48,0x1a, +0x00,0x07,0x48,0xb2,0x00,0x07,0x49,0x48,0x00,0x07,0x49,0xf6,0x00,0x07,0x4a,0xa0,0x00,0x07,0x4b,0x50,0x00,0x07,0x4b,0xe8,0x00,0x07,0x4c,0x8e,0x00,0x07,0x4d,0x66,0x00,0x07,0x4d,0xe4,0x00,0x07,0x4e,0x5a,0x00,0x07,0x4f,0x4e,0x00,0x07,0x50,0x40,0x00,0x07,0x50,0xea,0x00,0x07,0x51,0x94,0x00,0x07,0x52,0x22,0x00,0x07,0x52,0xb0, +0x00,0x07,0x53,0x0a,0x00,0x07,0x53,0x64,0x00,0x07,0x53,0xf4,0x00,0x07,0x54,0x80,0x00,0x07,0x54,0xfa,0x00,0x07,0x55,0x60,0x00,0x07,0x56,0x0e,0x00,0x07,0x56,0x9c,0x00,0x07,0x57,0x4e,0x00,0x07,0x57,0xee,0x00,0x07,0x58,0xca,0x00,0x07,0x59,0x94,0x00,0x07,0x5a,0xd0,0x00,0x07,0x5b,0xf8,0x00,0x07,0x5f,0x70,0x00,0x07,0x5f,0xbc, +0x00,0x07,0x61,0x1e,0x00,0x07,0x61,0x9c,0x00,0x07,0x62,0xf2,0x00,0x07,0x63,0xa8,0x00,0x07,0x63,0xee,0x00,0x07,0x64,0x54,0x00,0x07,0x64,0x9a,0x00,0x07,0x65,0x00,0x00,0x07,0x65,0x9a,0x00,0x07,0x66,0x2e,0x00,0x07,0x66,0xbe,0x00,0x07,0x67,0x50,0x00,0x07,0x68,0x5e,0x00,0x07,0x69,0x64,0x00,0x07,0x69,0xfe,0x00,0x07,0x6a,0x9e, +0x00,0x07,0x6b,0x7c,0x00,0x07,0x6c,0x60,0x00,0x07,0x6c,0xfa,0x00,0x07,0x6d,0x90,0x00,0x07,0x6d,0xf0,0x00,0x07,0x6e,0x50,0x00,0x07,0x6f,0x04,0x00,0x07,0x6f,0xb4,0x00,0x07,0x70,0x26,0x00,0x07,0x70,0x94,0x00,0x07,0x71,0x10,0x00,0x07,0x71,0x88,0x00,0x07,0x72,0x04,0x00,0x07,0x72,0x88,0x00,0x07,0x73,0x5a,0x00,0x07,0x74,0x24, +0x00,0x07,0x74,0xc4,0x00,0x07,0x76,0x6c,0x00,0x07,0x76,0xaa,0x00,0x07,0x76,0xec,0x00,0x07,0x77,0x6e,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x3c,0x00,0x07,0x78,0x54,0x00,0x07,0x79,0x28,0x00,0x07,0x79,0xb4,0x00,0x07,0x7b,0x6e,0x00,0x07,0x7d,0x2a,0x00,0x07,0x7d,0x4e,0x00,0x07,0x7d,0x78,0x00,0x07,0x7e,0x02,0x00,0x07,0x7e,0x74, +0x00,0x07,0x7e,0xf6,0x00,0x07,0x7f,0xaa,0x00,0x07,0x80,0x04,0x00,0x07,0x80,0x8e,0x00,0x07,0x81,0x4c,0x00,0x07,0x81,0x92,0x00,0x07,0x82,0x84,0x00,0x07,0x83,0x42,0x00,0x07,0x83,0xba,0x00,0x07,0x83,0xca,0x00,0x07,0x85,0x86,0x00,0x07,0x87,0x42,0x00,0x07,0x89,0x66,0x00,0x07,0x8b,0x76,0x00,0x07,0x8d,0x72,0x00,0x07,0x8f,0x3e, +0x00,0x07,0x91,0x0c,0x00,0x07,0x92,0xda,0x00,0x07,0x94,0xf4,0x00,0x07,0x95,0xc6,0x00,0x07,0x96,0x1e,0x00,0x07,0x96,0x9a,0x00,0x07,0x97,0x08,0x00,0x07,0x97,0x92,0x00,0x07,0x98,0x28,0x00,0x07,0x98,0xa0,0x00,0x07,0x99,0x3a,0x00,0x07,0x99,0xbc,0x00,0x07,0x9a,0x10,0x00,0x07,0x9a,0x86,0x00,0x07,0x9a,0xea,0x00,0x07,0x9b,0x5c, +0x00,0x07,0x9b,0xe8,0x00,0x07,0x9c,0x5c,0x00,0x07,0x9d,0x06,0x00,0x07,0x9d,0xa6,0x00,0x07,0x9e,0x32,0x00,0x07,0x9e,0xc2,0x00,0x07,0x9f,0x78,0x00,0x07,0xa0,0x2a,0x00,0x07,0xa0,0x76,0x00,0x07,0xa0,0xd6,0x00,0x07,0xa1,0x3e,0x00,0x07,0xa1,0xc0,0x00,0x07,0xa2,0x4a,0x00,0x07,0xa2,0xa0,0x00,0x07,0xa3,0x22,0x00,0x07,0xa3,0x74, +0x00,0x07,0xa3,0xc6,0x00,0x07,0xa4,0x38,0x00,0x07,0xa4,0x8c,0x00,0x07,0xa4,0xf4,0x00,0x07,0xa5,0x6a,0x00,0x07,0xa5,0xec,0x00,0x07,0xa6,0x52,0x00,0x07,0xa6,0xba,0x00,0x07,0xa7,0x56,0x00,0x07,0xa7,0xda,0x00,0x07,0xa8,0x28,0x00,0x07,0xa8,0x88,0x00,0x07,0xa8,0xe4,0x00,0x07,0xa9,0x52,0x00,0x07,0xa9,0xc6,0x00,0x07,0xaa,0x58, +0x00,0x07,0xaa,0xd2,0x00,0x07,0xab,0x8a,0x00,0x07,0xac,0x18,0x00,0x07,0xac,0xb4,0x00,0x07,0xac,0xd4,0x00,0x07,0xad,0x2a,0x00,0x07,0xad,0x86,0x00,0x07,0xae,0x14,0x00,0x07,0xae,0xb8,0x00,0x07,0xaf,0x1c,0x00,0x07,0xaf,0x94,0x00,0x07,0xb0,0x46,0x00,0x07,0xb0,0xfe,0x00,0x07,0xb1,0x7a,0x00,0x07,0xb2,0x3c,0x00,0x07,0xb3,0x16, +0x00,0x07,0xb3,0x82,0x00,0x07,0xb3,0xe8,0x00,0x07,0xb4,0x6c,0x00,0x07,0xb4,0xe4,0x00,0x07,0xb5,0x82,0x00,0x07,0xb6,0x42,0x00,0x07,0xb6,0x9e,0x00,0x07,0xb7,0x24,0x00,0x07,0xb7,0x90,0x00,0x07,0xb7,0xec,0x00,0x07,0xb8,0x58,0x00,0x07,0xb8,0xc0,0x00,0x07,0xb9,0x36,0x00,0x07,0xb9,0xe2,0x00,0x07,0xba,0x94,0x00,0x07,0xbb,0x66, +0x00,0x07,0xbb,0xe4,0x00,0x07,0xbc,0x58,0x00,0x07,0xbc,0xf0,0x00,0x07,0xbd,0x82,0x00,0x07,0xbd,0xda,0x00,0x07,0xbe,0x4a,0x00,0x07,0xbe,0xb4,0x00,0x07,0xbf,0x42,0x00,0x07,0xbf,0xfe,0x00,0x07,0xc0,0xda,0x00,0x07,0xc1,0x94,0x00,0x07,0xc2,0x2c,0x00,0x07,0xc2,0xc2,0x00,0x07,0xc3,0xa0,0x00,0x07,0xc3,0xfc,0x00,0x07,0xc4,0x9e, +0x00,0x07,0xc5,0x6c,0x00,0x07,0xc6,0x12,0x00,0x07,0xc6,0xdc,0x00,0x07,0xc7,0xda,0x00,0x07,0xc8,0x72,0x00,0x07,0xc9,0x3c,0x00,0x07,0xca,0x16,0x00,0x07,0xca,0xdc,0x00,0x07,0xcb,0x46,0x00,0x07,0xcb,0xe6,0x00,0x07,0xcc,0x7a,0x00,0x07,0xcd,0x7e,0x00,0x07,0xce,0x68,0x00,0x07,0xcf,0x88,0x00,0x07,0xd0,0xa2,0x00,0x07,0xd1,0x60, +0x00,0x07,0xd2,0xaa,0x00,0x07,0xd3,0x64,0x00,0x07,0xd3,0xc0,0x00,0x07,0xd4,0x26,0x00,0x07,0xd4,0x98,0x00,0x07,0xd5,0x2c,0x00,0x07,0xd5,0xa2,0x00,0x07,0xd5,0xfc,0x00,0x07,0xd6,0x86,0x00,0x07,0xd7,0x0c,0x00,0x07,0xd7,0x5c,0x00,0x07,0xd7,0xd2,0x00,0x07,0xd8,0x2a,0x00,0x07,0xd8,0x82,0x00,0x07,0xd8,0xc0,0x00,0x07,0xd9,0x28, +0x00,0x07,0xd9,0x90,0x00,0x07,0xda,0x26,0x00,0x07,0xda,0xce,0x00,0x07,0xdb,0x60,0x00,0x07,0xdb,0xd4,0x00,0x07,0xdc,0x7e,0x00,0x07,0xdc,0xd8,0x00,0x07,0xdd,0x08,0x00,0x07,0xdd,0x6e,0x00,0x07,0xdd,0xb0,0x00,0x07,0xdd,0xe0,0x00,0x07,0xde,0x3e,0x00,0x07,0xde,0x9e,0x00,0x07,0xde,0xc8,0x00,0x07,0xdf,0x64,0x00,0x07,0xdf,0xfc, +0x00,0x07,0xe0,0x58,0x00,0x07,0xe0,0xde,0x00,0x07,0xe1,0xc6,0x00,0x07,0xe2,0x54,0x00,0x07,0xe3,0x04,0x00,0x07,0xe3,0xfa,0x00,0x07,0xe4,0xa4,0x00,0x07,0xe5,0x5a,0x00,0x07,0xe6,0x1a,0x00,0x07,0xe6,0xd4,0x00,0x07,0xe7,0x38,0x00,0x07,0xe7,0xc6,0x00,0x07,0xe8,0x7e,0x00,0x07,0xe9,0x66,0x00,0x07,0xe9,0xde,0x00,0x07,0xea,0x7a, +0x00,0x07,0xeb,0x32,0x00,0x07,0xeb,0xe6,0x00,0x07,0xec,0x7e,0x00,0x07,0xed,0x20,0x00,0x07,0xed,0x76,0x00,0x07,0xed,0xc0,0x00,0x07,0xee,0x3a,0x00,0x07,0xee,0xac,0x00,0x07,0xef,0x1c,0x00,0x07,0xef,0xae,0x00,0x07,0xf0,0x44,0x00,0x07,0xf0,0xd6,0x00,0x07,0xf1,0x14,0x00,0x07,0xf1,0x86,0x00,0x07,0xf1,0xf0,0x00,0x07,0xf2,0xa0, +0x00,0x07,0xf2,0xb8,0x00,0x07,0xf3,0x82,0x00,0x07,0xf4,0x1e,0x00,0x07,0xf4,0x66,0x00,0x07,0xf4,0xc8,0x00,0x07,0xf5,0x44,0x00,0x07,0xf5,0xc6,0x00,0x07,0xf6,0x78,0x00,0x07,0xf7,0x3c,0x00,0x07,0xf7,0x5c,0x00,0x07,0xf7,0x80,0x00,0x07,0xf7,0xa4,0x00,0x07,0xf7,0xb4,0x00,0x07,0xf7,0xce,0x00,0x07,0xf7,0xde,0x00,0x07,0xf7,0xf6, +0x00,0x07,0xf8,0x0e,0x00,0x07,0xf8,0x26,0x00,0x07,0xf8,0x3e,0x00,0x07,0xf8,0xe2,0x00,0x07,0xf9,0x6e,0x00,0x07,0xf9,0xc0,0x00,0x07,0xfa,0x14,0x00,0x07,0xfa,0x96,0x00,0x07,0xfb,0x18,0x00,0x07,0xfb,0xe0,0x00,0x07,0xfc,0xb4,0x00,0x07,0xfd,0x74,0x00,0x07,0xfe,0x36,0x00,0x07,0xfe,0xd4,0x00,0x07,0xff,0x68,0x00,0x08,0x00,0x3e, +0x00,0x08,0x01,0x08,0x00,0x08,0x01,0x5a,0x00,0x08,0x01,0xf4,0x00,0x08,0x02,0xd2,0x00,0x08,0x03,0xf6,0x00,0x08,0x04,0xd6,0x00,0x08,0x05,0xce,0x00,0x08,0x06,0x6e,0x00,0x08,0x07,0x4e,0x00,0x08,0x07,0xe8,0x00,0x08,0x08,0xaa,0x00,0x08,0x09,0x68,0x00,0x08,0x0a,0x42,0x00,0x08,0x0b,0x0c,0x00,0x08,0x0b,0xf8,0x00,0x08,0x0c,0xa2, +0x00,0x08,0x0d,0x40,0x00,0x08,0x0d,0xda,0x00,0x08,0x0e,0x66,0x00,0x08,0x0f,0x06,0x00,0x08,0x0f,0x92,0x00,0x08,0x10,0x54,0x00,0x08,0x11,0x0c,0x00,0x08,0x11,0x62,0x00,0x08,0x11,0xb4,0x00,0x08,0x12,0x0e,0x00,0x08,0x12,0x62,0x00,0x08,0x13,0x1e,0x00,0x08,0x13,0xc4,0x00,0x08,0x14,0xa6,0x00,0x08,0x15,0x72,0x00,0x08,0x16,0x6a, +0x00,0x08,0x17,0x3c,0x00,0x08,0x17,0xdc,0x00,0x08,0x18,0x98,0x00,0x08,0x19,0x38,0x00,0x08,0x19,0xe8,0x00,0x08,0x1a,0xac,0x00,0x08,0x1b,0x86,0x00,0x08,0x1c,0x62,0x00,0x08,0x1d,0x20,0x00,0x08,0x1e,0x26,0x00,0x08,0x1f,0x12,0x00,0x08,0x1f,0xa2,0x00,0x08,0x20,0x2e,0x00,0x08,0x20,0xda,0x00,0x08,0x21,0x82,0x00,0x08,0x22,0x12, +0x00,0x08,0x22,0xaa,0x00,0x08,0x23,0x94,0x00,0x08,0x24,0x74,0x00,0x08,0x25,0x4c,0x00,0x08,0x26,0x24,0x00,0x08,0x26,0xd4,0x00,0x08,0x27,0x92,0x00,0x08,0x28,0x2e,0x00,0x08,0x28,0xe8,0x00,0x08,0x29,0x40,0x00,0x08,0x29,0x94,0x00,0x08,0x2a,0x4a,0x00,0x08,0x2b,0x04,0x00,0x08,0x2b,0xb2,0x00,0x08,0x2c,0x60,0x00,0x08,0x2d,0x0e, +0x00,0x08,0x2d,0xba,0x00,0x08,0x2e,0x68,0x00,0x08,0x2f,0x2a,0x00,0x08,0x2f,0x8a,0x00,0x08,0x30,0x60,0x00,0x08,0x30,0xfc,0x00,0x08,0x31,0x86,0x00,0x08,0x32,0x52,0x00,0x08,0x33,0x20,0x00,0x08,0x33,0xfa,0x00,0x08,0x34,0x8e,0x00,0x08,0x35,0x2c,0x00,0x08,0x35,0xa0,0x00,0x08,0x36,0x10,0x00,0x08,0x36,0xe6,0x00,0x08,0x37,0xba, +0x00,0x08,0x38,0x80,0x00,0x08,0x38,0xba,0x00,0x08,0x38,0xea,0x00,0x08,0x39,0x7c,0x00,0x08,0x3a,0x06,0x00,0x08,0x3a,0x64,0x00,0x08,0x3a,0xc0,0x00,0x08,0x3b,0x56,0x00,0x08,0x3b,0xd0,0x00,0x08,0x3c,0x20,0x00,0x08,0x3c,0xfa,0x00,0x08,0x3d,0x8c,0x00,0x08,0x3e,0x08,0x00,0x08,0x3e,0xaa,0x00,0x08,0x3f,0x34,0x00,0x08,0x40,0x22, +0x00,0x08,0x41,0x1a,0x00,0x08,0x41,0xe2,0x00,0x08,0x42,0x96,0x00,0x08,0x43,0x7a,0x00,0x08,0x44,0x30,0x00,0x08,0x45,0x20,0x00,0x08,0x45,0xb8,0x00,0x08,0x46,0x96,0x00,0x08,0x47,0x70,0x00,0x08,0x47,0xf4,0x00,0x08,0x48,0x9c,0x00,0x08,0x49,0xa6,0x00,0x08,0x4a,0x40,0x00,0x08,0x4a,0x94,0x00,0x08,0x4b,0x02,0x00,0x08,0x4b,0x9c, +0x00,0x08,0x4b,0xce,0x00,0x08,0x4c,0xa8,0x00,0x08,0x4c,0xd2,0x00,0x08,0x4c,0xfe,0x00,0x08,0x4d,0x36,0x00,0x08,0x4d,0x60,0x00,0x08,0x4d,0x8a,0x00,0x08,0x4d,0xb4,0x00,0x08,0x4d,0xde,0x00,0x08,0x4e,0x0a,0x00,0x08,0x4e,0x36,0x00,0x08,0x4e,0x4e,0x00,0x08,0x4e,0x5e,0x00,0x08,0x4e,0x6e,0x00,0x08,0x4e,0x7e,0x00,0x08,0x4e,0x8e, +0x00,0x08,0x4e,0xa6,0x00,0x08,0x4e,0xc6,0x00,0x08,0x4e,0xd6,0x00,0x08,0x4e,0xe6,0x00,0x08,0x4e,0xf6,0x00,0x08,0x4f,0x06,0x00,0x08,0x4f,0xaa,0x00,0x08,0x50,0x6e,0x00,0x08,0x51,0xc8,0x00,0x08,0x52,0x4e,0x00,0x08,0x52,0xec,0x00,0x08,0x53,0x44,0x00,0x08,0x54,0x5c,0x00,0x08,0x56,0x3a,0x00,0x08,0x56,0x64,0x00,0x08,0x56,0x8e, +0x00,0x08,0x57,0x2e,0x00,0x08,0x57,0xa2,0x00,0x08,0x58,0x2c,0x00,0x08,0x58,0x8a,0x00,0x08,0x59,0x3e,0x00,0x08,0x5a,0x14,0x00,0x08,0x5a,0xaa,0x00,0x08,0x5b,0x62,0x00,0x08,0x5c,0x16,0x00,0x08,0x5c,0xd0,0x00,0x08,0x5d,0xa0,0x00,0x08,0x5e,0x6c,0x00,0x08,0x5f,0x6c,0x00,0x08,0x60,0x3a,0x00,0x08,0x61,0x24,0x00,0x08,0x62,0x40, +0x00,0x08,0x63,0x1e,0x00,0x08,0x63,0xe0,0x00,0x08,0x64,0xc0,0x00,0x08,0x65,0x9c,0x00,0x08,0x66,0x1e,0x00,0x08,0x66,0x8c,0x00,0x08,0x67,0x10,0x00,0x08,0x67,0xac,0x00,0x08,0x68,0x70,0x00,0x08,0x69,0x26,0x00,0x08,0x69,0xfc,0x00,0x08,0x6a,0xd6,0x00,0x08,0x6b,0xc0,0x00,0x08,0x6c,0x5e,0x00,0x08,0x6d,0x12,0x00,0x08,0x6e,0x22, +0x00,0x08,0x6e,0xd8,0x00,0x08,0x6f,0x42,0x00,0x08,0x6f,0xc2,0x00,0x08,0x70,0x9e,0x00,0x08,0x71,0x44,0x00,0x08,0x72,0x00,0x00,0x08,0x72,0xa8,0x00,0x08,0x73,0x58,0x00,0x08,0x74,0x4c,0x00,0x08,0x75,0x34,0x00,0x08,0x75,0x88,0x00,0x08,0x76,0x2c,0x00,0x08,0x76,0x80,0x00,0x08,0x77,0x1a,0x00,0x08,0x78,0x46,0x00,0x08,0x78,0xe0, +0x00,0x08,0x78,0xfa,0x00,0x08,0x79,0x20,0x00,0x08,0x79,0xa8,0x00,0x08,0x79,0xc2,0x00,0x08,0x79,0xe8,0x00,0x08,0x7a,0x70,0x00,0x08,0x7a,0x9e,0x00,0x08,0x7b,0xb2,0x00,0x08,0x7b,0xe0,0x00,0x08,0x7c,0x7a,0x00,0x08,0x7c,0xe2,0x00,0x08,0x7d,0x08,0x00,0x08,0x7d,0x2e,0x00,0x08,0x7d,0x52,0x00,0x08,0x7d,0x78,0x00,0x08,0x7d,0x9c, +0x00,0x08,0x7d,0xc2,0x00,0x08,0x7d,0xfe,0x00,0x08,0x7e,0x46,0x00,0x08,0x7e,0x78,0x00,0x08,0x7f,0x14,0x00,0x08,0x7f,0xfc,0x00,0x08,0x80,0x22,0x00,0x08,0x80,0x48,0x00,0x08,0x80,0x78,0x00,0x08,0x80,0xa6,0x00,0x08,0x80,0xb6,0x00,0x08,0x80,0xc6,0x00,0x08,0x81,0x14,0x00,0x08,0x81,0xa4,0x00,0x08,0x82,0x1e,0x00,0x08,0x82,0x7e, +0x00,0x08,0x83,0x0e,0x00,0x08,0x83,0x9e,0x00,0x08,0x84,0x46,0x00,0x08,0x84,0xa4,0x00,0x08,0x84,0xf2,0x00,0x08,0x85,0x7c,0x00,0x08,0x85,0xfe,0x00,0x08,0x86,0x6c,0x00,0x08,0x86,0xe0,0x00,0x08,0x87,0x28,0x00,0x08,0x87,0x6a,0x00,0x08,0x87,0xbc,0x00,0x08,0x88,0x06,0x00,0x08,0x88,0xa8,0x00,0x08,0x88,0xd4,0x00,0x08,0x89,0x12, +0x00,0x08,0x89,0x84,0x00,0x08,0x89,0xf6,0x00,0x08,0x8a,0x7e,0x00,0x08,0x8b,0x08,0x00,0x08,0x8b,0x90,0x00,0x08,0x8c,0x38,0x00,0x08,0x8c,0xa4,0x00,0x08,0x8d,0x54,0x00,0x08,0x8d,0x84,0x00,0x08,0x8d,0xd4,0x00,0x08,0x8e,0x04,0x00,0x08,0x8e,0xd0,0x00,0x08,0x8f,0x2e,0x00,0x08,0x8f,0x7a,0x00,0x08,0x8f,0xba,0x00,0x08,0x8f,0xd8, +0x00,0x08,0x90,0x28,0x00,0x08,0x90,0x56,0x00,0x08,0x90,0x86,0x00,0x08,0x90,0xc0,0x00,0x08,0x91,0x4a,0x00,0x08,0x91,0x66,0x00,0x08,0x91,0x82,0x00,0x08,0x91,0xe2,0x00,0x08,0x92,0x10,0x00,0x08,0x92,0x66,0x00,0x08,0x92,0xb4,0x00,0x08,0x92,0xfe,0x00,0x08,0x93,0x52,0x00,0x08,0x93,0x98,0x00,0x08,0x94,0x1e,0x00,0x08,0x94,0x94, +0x00,0x08,0x94,0xe0,0x00,0x08,0x95,0x2e,0x00,0x08,0x95,0x7c,0x00,0x08,0x95,0xca,0x00,0x08,0x96,0x18,0x00,0x08,0x96,0x66,0x00,0x08,0x96,0xb4,0x00,0x08,0x97,0x02,0x00,0x08,0x97,0x50,0x00,0x08,0x97,0x9e,0x00,0x08,0x97,0xc0,0x00,0x08,0x97,0xe6,0x00,0x08,0x98,0x0c,0x00,0x08,0x98,0x32,0x00,0x08,0x98,0x52,0x00,0x08,0x99,0x8c, +0x00,0x08,0x9a,0x5c,0x00,0x08,0x9b,0x26,0x00,0x08,0x9c,0xa0,0x00,0x08,0x9d,0x40,0x00,0x08,0x9d,0xa4,0x00,0x08,0x9d,0xbc,0x00,0x08,0x9d,0xd4,0x00,0x08,0x9e,0xa8,0x00,0x08,0x9f,0x86,0x00,0x08,0x9f,0xf0,0x00,0x08,0xa0,0x76,0x00,0x08,0xa1,0x46,0x00,0x08,0xa2,0x16,0x00,0x08,0xa2,0xd6,0x00,0x08,0xa3,0x98,0x00,0x08,0xa4,0x34, +0x00,0x08,0xa4,0xd0,0x00,0x08,0xa4,0xe0,0x00,0x08,0xa5,0xa4,0x00,0x08,0xa6,0x5c,0x00,0x08,0xa6,0xb8,0x00,0x08,0xa6,0xec,0x00,0x08,0xa7,0x0e,0x00,0x08,0xa7,0xec,0x00,0x08,0xa8,0xee,0x00,0x08,0xa9,0x9a,0x00,0x08,0xaa,0x4c,0x00,0x08,0xaa,0xfc,0x00,0x08,0xab,0x0c,0x00,0x08,0xac,0x2e,0x00,0x08,0xac,0xda,0x00,0x08,0xac,0xfa, +0x00,0x08,0xad,0x92,0x00,0x08,0xae,0x8a,0x00,0x08,0xaf,0x44,0x00,0x08,0xb0,0x2e,0x00,0x08,0xb0,0xd0,0x00,0x08,0xb1,0x98,0x00,0x08,0xb2,0x50,0x00,0x08,0xb3,0x2c,0x00,0x08,0xb4,0x50,0x00,0x08,0xb5,0x4c,0x00,0x08,0xb6,0x22,0x00,0x08,0xb7,0x38,0x00,0x08,0xb7,0x90,0x00,0x08,0xb8,0x46,0x00,0x08,0xb8,0x8c,0x00,0x08,0xb9,0x06, +0x00,0x08,0xb9,0xbe,0x00,0x08,0xba,0x9e,0x00,0x08,0xbb,0x02,0x00,0x08,0xbb,0xb0,0x00,0x08,0xbb,0xc0,0x00,0x08,0xbc,0x18,0x00,0x08,0xbc,0xa0,0x00,0x08,0xbd,0x70,0x00,0x08,0xbe,0x40,0x00,0x08,0xbe,0xc0,0x00,0x08,0xbe,0xd0,0x00,0x08,0xbf,0xb4,0x00,0x08,0xc0,0x46,0x00,0x08,0xc1,0x26,0x00,0x08,0xc1,0x9a,0x00,0x08,0xc2,0x7e, +0x00,0x08,0xc3,0x1a,0x00,0x08,0xc3,0x82,0x00,0x08,0xc3,0xfe,0x00,0x08,0xc4,0x74,0x00,0x08,0xc5,0x16,0x00,0x08,0xc5,0xc2,0x00,0x08,0xc6,0x46,0x00,0x08,0xc6,0xd8,0x00,0x08,0xc6,0xe8,0x00,0x08,0xc6,0xfa,0x00,0x08,0xc7,0x0c,0x00,0x08,0xc7,0x1e,0x00,0x08,0xc7,0x30,0x00,0x08,0xc7,0x42,0x00,0x08,0xc7,0x54,0x00,0x08,0xc7,0x66, +0x00,0x08,0xc7,0x78,0x00,0x08,0xc7,0x8a,0x00,0x08,0xc7,0x9c,0x00,0x08,0xc7,0xac,0x00,0x08,0xc7,0xbe,0x00,0x08,0xc7,0xd0,0x00,0x08,0xc7,0xe0,0x00,0x08,0xc7,0xf2,0x00,0x08,0xc8,0x04,0x00,0x08,0xc8,0x16,0x00,0x08,0xc8,0x2e,0x00,0x08,0xc8,0x46,0x00,0x08,0xc8,0x5e,0x00,0x08,0xc8,0x74,0x00,0x08,0xc8,0x8a,0x00,0x08,0xca,0x64, +0x00,0x08,0xd0,0x7e,0x00,0x08,0xd2,0xb4,0x00,0x08,0xd9,0xd8,0x00,0x08,0xd9,0xea,0x00,0x08,0xda,0x02,0x00,0x08,0xda,0x14,0x00,0x08,0xda,0x64,0x00,0x08,0xda,0x74,0x00,0x08,0xda,0x86,0x00,0x08,0xda,0x9e,0x00,0x08,0xda,0xb0,0x00,0x08,0xda,0xc8,0x00,0x08,0xda,0xd8,0x00,0x08,0xda,0xee,0x00,0x08,0xdb,0x00,0x00,0x08,0xdb,0x18, +0x00,0x08,0xdb,0x2a,0x00,0x08,0xdb,0x42,0x00,0x08,0xdb,0x76,0x00,0x08,0xdb,0xe0,0x00,0x08,0xdc,0x00,0x00,0x08,0xdc,0x20,0x00,0x08,0xdc,0x40,0x00,0x08,0xdc,0x60,0x00,0x08,0xdc,0x72,0x00,0x08,0xdc,0x8a,0x00,0x08,0xdc,0xa2,0x00,0x08,0xdc,0xba,0x00,0x08,0xdc,0xd2,0x00,0x08,0xdc,0xea,0x00,0x08,0xdd,0x02,0x00,0x08,0xdd,0x1a, +0x00,0x08,0xdd,0x32,0x00,0x08,0xdd,0x4a,0x00,0x08,0xdd,0x62,0x00,0x08,0xdd,0xf4,0x00,0x08,0xde,0x98,0x00,0x08,0xde,0xb8,0x00,0x08,0xde,0xd8,0x00,0x08,0xdf,0x32,0x00,0x08,0xdf,0x5a,0x00,0x08,0xdf,0x6a,0x00,0x08,0xdf,0x82,0x00,0x08,0xdf,0x9a,0x00,0x08,0xdf,0xfe,0x00,0x08,0xe0,0x68,0x00,0x08,0xe1,0x3a,0x00,0x08,0xe1,0xe8, +0x00,0x08,0xe2,0x86,0x00,0x08,0xe3,0x22,0x00,0x08,0xe3,0x3a,0x00,0x08,0xe3,0x52,0x00,0x08,0xe3,0x62,0x00,0x08,0xe3,0x72,0x00,0x08,0xe4,0x36,0x00,0x08,0xe4,0xe0,0x00,0x08,0xe4,0xf0,0x00,0x08,0xe5,0x00,0x00,0x08,0xe6,0x9c,0x00,0x08,0xe6,0xc6,0x00,0x08,0xe7,0x9c,0x00,0x08,0xe8,0x80,0x00,0x08,0xe8,0xd2,0x00,0x08,0xe8,0xe4, +0x00,0x08,0xe9,0x06,0x00,0x08,0xe9,0x18,0x00,0x08,0xe9,0x6c,0x00,0x08,0xe9,0x7e,0x00,0x08,0xea,0x14,0x00,0x08,0xea,0x26,0x00,0x08,0xea,0xde,0x00,0x08,0xeb,0x30,0x00,0x08,0xeb,0x96,0x00,0x08,0xeb,0xea,0x00,0x08,0xec,0x50,0x00,0x08,0xec,0xa2,0x00,0x08,0xed,0x08,0x00,0x08,0xed,0x5a,0x00,0x08,0xed,0xc0,0x00,0x08,0xed,0xd0, +0x00,0x08,0xee,0x14,0x00,0x08,0xee,0xbe,0x00,0x08,0xee,0xce,0x00,0x08,0xef,0x72,0x00,0x08,0xef,0x82,0x00,0x08,0xf0,0x60,0x00,0x08,0xf0,0x70,0x00,0x08,0xf0,0xe0,0x00,0x08,0xf1,0x84,0x00,0x08,0xf2,0x52,0x00,0x08,0xf3,0x0a,0x00,0x08,0xf3,0xa2,0x00,0x08,0xf4,0x72,0x00,0x08,0xf4,0xb6,0x00,0x08,0xf5,0x92,0x00,0x08,0xf6,0xe4, +0x00,0x08,0xf8,0x9a,0x00,0x08,0xf9,0xc2,0x00,0x08,0xfb,0x6a,0x00,0x08,0xfb,0x82,0x00,0x08,0xfb,0x9a,0x00,0x08,0xfb,0xba,0x00,0x08,0xfb,0xda,0x00,0x08,0xfb,0xf2,0x00,0x08,0xfc,0x0a,0x00,0x08,0xfc,0x2a,0x00,0x08,0xfc,0x3a,0x00,0x08,0xfc,0x4a,0x00,0x08,0xfc,0x5a,0x00,0x08,0xfd,0xb0,0x00,0x08,0xfe,0x98,0x00,0x08,0xff,0x4a, +0x00,0x09,0x00,0x2a,0x00,0x09,0x00,0xb8,0x00,0x09,0x00,0xca,0x00,0x09,0x02,0x4a,0x00,0x09,0x04,0x28,0x00,0x09,0x05,0xf4,0x00,0x09,0x07,0x6a,0x00,0x09,0x08,0x98,0x00,0x09,0x0a,0x78,0x00,0x09,0x0b,0x12,0x00,0x09,0x0b,0xd4,0x00,0x09,0x0c,0x8e,0x00,0x09,0x0c,0xa0,0x00,0x09,0x0c,0xbc,0x00,0x09,0x0c,0xd4,0x00,0x09,0x0c,0xec, +0x00,0x09,0x0d,0x04,0x00,0x09,0x0d,0x1c,0x00,0x09,0x0d,0x34,0x00,0x09,0x0d,0x54,0x00,0x09,0x0d,0x74,0x00,0x09,0x0d,0x94,0x00,0x09,0x0d,0xb4,0x00,0x09,0x0d,0xd4,0x00,0x09,0x0d,0xf4,0x00,0x09,0x0e,0x0c,0x00,0x09,0x0f,0x08,0x00,0x09,0x0f,0xe2,0x00,0x09,0x10,0x80,0x00,0x09,0x10,0x98,0x00,0x09,0x10,0xb8,0x00,0x09,0x10,0xd8, +0x00,0x09,0x10,0xf8,0x00,0x09,0x11,0x08,0x00,0x09,0x11,0x20,0x00,0x09,0x11,0x38,0x00,0x09,0x11,0x48,0x00,0x09,0x11,0x60,0x00,0x09,0x11,0x78,0x00,0x09,0x11,0x88,0x00,0x09,0x11,0xd2,0x00,0x09,0x12,0x0c,0x00,0x09,0x12,0x4e,0x00,0x09,0x13,0x00,0x00,0x09,0x13,0x92,0x00,0x09,0x14,0x14,0x00,0x09,0x14,0x5e,0x00,0x09,0x14,0xb0, +0x00,0x09,0x15,0x02,0x00,0x09,0x15,0x9a,0x00,0x09,0x16,0x2a,0x00,0x09,0x16,0xd4,0x00,0x09,0x17,0x66,0x00,0x09,0x17,0xea,0x00,0x09,0x18,0x2e,0x00,0x09,0x1a,0x76,0x00,0x09,0x1c,0x24,0x00,0x09,0x1c,0x68,0x00,0x09,0x1c,0x98,0x00,0x09,0x1c,0xc8,0x00,0x09,0x1c,0xd8,0x00,0x09,0x1c,0xe8,0x00,0x09,0x1d,0x32,0x00,0x09,0x1d,0x6e, +0x00,0x09,0x1d,0xb2,0x00,0x09,0x1e,0x72,0x00,0x09,0x1f,0x06,0x00,0x09,0x1f,0x86,0x00,0x09,0x1f,0xd4,0x00,0x09,0x20,0x2e,0x00,0x09,0x20,0x8a,0x00,0x09,0x21,0x32,0x00,0x09,0x21,0xd2,0x00,0x09,0x22,0x8a,0x00,0x09,0x23,0x1c,0x00,0x09,0x23,0xa4,0x00,0x09,0x23,0xee,0x00,0x09,0x24,0x06,0x00,0x09,0x24,0x26,0x00,0x09,0x24,0xbe, +0x00,0x09,0x25,0x8e,0x00,0x09,0x26,0x66,0x00,0x09,0x27,0x7e,0x00,0x09,0x28,0x24,0x00,0x09,0x28,0xf6,0x00,0x09,0x29,0xdc,0x00,0x09,0x2a,0xa8,0x00,0x09,0x2b,0x2a,0x00,0x09,0x2b,0xe8,0x00,0x09,0x2d,0x1c,0x00,0x09,0x2d,0xde,0x00,0x09,0x2e,0xbc,0x00,0x09,0x2f,0x8a,0x00,0x09,0x30,0x5a,0x00,0x09,0x31,0x46,0x00,0x09,0x32,0x6a, +0x00,0x09,0x32,0xf4,0x00,0x09,0x34,0x44,0x00,0x09,0x35,0x52,0x00,0x09,0x36,0x94,0x00,0x09,0x37,0x42,0x00,0x09,0x38,0x46,0x00,0x09,0x39,0x0a,0x00,0x09,0x3a,0x26,0x00,0x09,0x3a,0xf8,0x00,0x09,0x3b,0xcc,0x00,0x09,0x3c,0x52,0x00,0x09,0x3d,0x76,0x00,0x09,0x3e,0x9e,0x00,0x09,0x3f,0x20,0x00,0x09,0x40,0x62,0x00,0x09,0x41,0x64, +0x00,0x09,0x42,0x74,0x00,0x09,0x43,0x46,0x00,0x09,0x44,0x02,0x00,0x09,0x44,0xe6,0x00,0x09,0x45,0xdc,0x00,0x09,0x46,0xa4,0x00,0x09,0x47,0x60,0x00,0x09,0x48,0x26,0x00,0x09,0x48,0xfe,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x49,0x8e,0x00,0x09,0x4a,0x4a,0x00,0x09,0x4b,0x1e,0x00,0x09,0x4b,0xac,0x00,0x09,0x4b,0xfc, +0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x07,0x01,0x03,0x04,0x00,0x03,0x05,0x05,0x09,0x04,0x00,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x00,0x2f,0xcd,0x3f,0xcd,0x31,0x30,0x33,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0xa6,0x03,0xde,0xfc,0xb6,0x02,0xb6,0xfd,0x4a,0x05,0x76,0xfa,0x8a,0x94, +0x04,0x4e,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x0f,0x00,0x3f,0x40,0x20,0x03,0x03,0x02,0x0a,0x40,0x04,0x0a,0xb0,0x5b,0x04,0x13,0x01,0x02,0x00,0x7d,0x1f,0x03,0x2f,0x03,0x02,0x03,0x0d,0xaf,0x7f,0x07,0x01,0x10,0x07,0x20,0x07,0x02,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0x2f,0x2b,0x72,0x5d, +0xe1,0xd4,0x72,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x05,0x9a,0xfb,0xfa,0x04,0x06,0xfa,0x54,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02, +0x00,0xa3,0x03,0xdb,0x02,0x80,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x0f,0x04,0x1f,0x04,0x2f,0x04,0xbf,0x04,0xcf,0x04,0x05,0x04,0x04,0x09,0x03,0x06,0x02,0x07,0x03,0x03,0x00,0x3f,0x33,0xcd,0x32,0x01,0x2f,0x12,0x39,0x2f,0x5d,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x34,0x91,0x01,0xdd,0x91,0x05, +0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x21,0x00,0x7b,0x04,0x8e,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0xbf,0x40,0x6b,0x0f,0x17,0x01,0x00,0x06,0x01,0x10,0x06,0x1b,0x02,0x03,0x06,0x07,0x1a,0x07,0x18,0x1c,0x1f,0x09,0x08,0x19,0x08,0x17,0x1d,0x1e,0x0a,0x0b,0x16,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c, +0x09,0x0d,0x10,0x1f,0x04,0x06,0x03,0x06,0x03,0xe2,0x59,0x11,0x14,0x17,0x1d,0x04,0x02,0x1b,0x1b,0x02,0xe2,0x59,0x1b,0x06,0x1b,0x06,0x1a,0x0b,0x00,0x07,0x10,0x07,0x02,0x09,0x07,0x07,0x21,0x16,0x1a,0x03,0x04,0x00,0x00,0x19,0x1a,0x0e,0x07,0x0f,0x08,0x01,0x0c,0x03,0x08,0x08,0x21,0x0c,0x0c,0x16,0x42,0x12,0x0e,0x0e,0x15,0x16, +0x0b,0x60,0x0c,0x70,0x0c,0x02,0x0c,0x2f,0x5d,0x33,0xcd,0x32,0x33,0x2f,0xc6,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0xe1,0x32,0x32,0x2f,0xc6,0x00,0x3f,0xc4,0x12,0x39,0x2f,0x5e,0x5d,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, +0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x07,0x21,0x03,0x21,0x07,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x21,0x37,0x21,0x13,0x21,0x37,0x21,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x03,0x33,0x04,0x8e,0x17,0xfe,0xfb,0x3f,0x01, +0x19,0x1b,0xfe,0xed,0x58,0x7e,0x56,0xfa,0x54,0x7d,0x54,0xfe,0xfa,0x14,0x01,0x09,0x3d,0xfe,0xeb,0x15,0x01,0x15,0x54,0x7e,0x54,0xfc,0x56,0x7b,0x54,0x91,0xfc,0x42,0xfe,0x04,0x08,0x6a,0xfe,0xd4,0x6a,0xfe,0x73,0x01,0x8d,0xfe,0x73,0x01,0x8d,0x6a,0x01,0x2c,0x6a,0x01,0x92,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x6a,0xfe,0xd4,0x00,0x03, +0x00,0xa2,0xff,0x2f,0x03,0xd1,0x06,0x50,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0xc1,0x40,0x1b,0x09,0x26,0x01,0x06,0x1f,0x01,0x0a,0x1d,0x01,0x05,0x15,0x01,0x03,0x00,0x0e,0x01,0x0f,0x05,0x01,0x10,0x05,0x2a,0x20,0x0c,0x00,0x4d,0x25,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xd0,0x40,0x56,0x0c,0x00,0x4d,0x05,0x30,0x0c, +0x00,0x4d,0x1f,0x19,0x09,0x26,0x0a,0x03,0x13,0x16,0x16,0x20,0x18,0x13,0x18,0x9a,0x59,0x10,0x12,0x40,0x13,0x06,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x09,0x03,0x06,0x06,0x27,0x09,0x03,0x09,0x9a,0x59,0x00,0x02,0x03,0x18,0x09,0x10,0x13,0x19,0x1f,0x27,0x06,0x01,0x8c,0x02,0x02,0x1c,0x0d,0x16,0x40,0x0c,0x11,0x00,0x4c,0x16,0x16, +0x1c,0x89,0x7f,0x29,0x01,0x2f,0x29,0x01,0x29,0x05,0x23,0x89,0x20,0x0d,0x01,0x0d,0x2f,0x5d,0xe1,0xc4,0xd4,0x5d,0x5d,0xf1,0xc0,0x2f,0x2b,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x1a,0xcd,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x11,0x12,0x39,0x39,0x12, +0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x35,0x22,0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x68,0x68,0xd5, +0x85,0x3a,0xc9,0x57,0xdc,0x82,0xc6,0x98,0x68,0xc4,0x4b,0x66,0xa9,0xd0,0x99,0xbf,0xfe,0xee,0x54,0x62,0x50,0xce,0xc1,0x08,0xd9,0xd1,0x56,0xae,0x33,0x45,0x02,0x00,0x6a,0xb3,0x7a,0x91,0xd3,0x15,0xb4,0xb0,0x06,0x32,0xaa,0x50,0x06,0xfd,0xf0,0x63,0xb9,0x76,0x8e,0xc1,0x03,0x19,0x01,0xd2,0x11,0x73,0x52,0x56,0x6e,0xfe,0xe4,0xfe, +0x3c,0x2a,0xa6,0x8a,0x00,0x05,0x00,0x50,0xff,0xea,0x06,0x40,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0xaf,0x40,0x32,0x19,0x18,0x03,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x3f,0x18,0x4f,0x18,0x02, +0x1a,0x18,0x1a,0x18,0x25,0x03,0x1f,0xbd,0x2b,0x0c,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf9,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xbd,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x18,0x0c,0x06,0x4d,0x25,0x09,0x0b,0x06,0x4d,0x25,0x25,0x35,0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15, +0x0f,0xbd,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18, +0x10,0xe4,0x2b,0x00,0x18,0x3f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, +0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x57,0xfc,0x68,0x8f,0x03,0x97,0x26,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac,0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50, +0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0x00,0x03,0x00,0x77,0xff,0xe9,0x06,0x3e,0x05,0xb2,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0xd7,0x40,0x1c,0x58,0x4f,0x01,0x5c,0x4c,0x01,0x03,0x59,0x4b,0x01,0x5d,0x4a,0x01,0x50,0x37,0x01,0x52,0x36,0x01,0x5b,0x0d,0x01,0x4a,0x40,0x0b,0x00, +0x4d,0x51,0xb8,0xff,0xe8,0x40,0x0c,0x0b,0x00,0x4d,0x1d,0x4d,0x01,0x02,0x1f,0x01,0x0b,0x04,0x10,0xb8,0xff,0xe0,0x40,0x5c,0x0b,0x00,0x4d,0x05,0x49,0x4e,0x12,0x04,0x0a,0x2f,0x38,0x29,0x24,0x65,0x2f,0x05,0x1c,0x44,0x1c,0x5d,0x96,0x59,0x1c,0x04,0x0a,0x44,0x95,0x59,0x0a,0x13,0x00,0x3d,0xec,0x59,0x00,0x13,0x3a,0x49,0x01,0x38, +0x05,0x33,0x0f,0x29,0x49,0x2c,0x53,0x12,0x4e,0x65,0x24,0x04,0x21,0x17,0x33,0xef,0x2c,0x21,0xef,0x58,0x60,0xef,0x17,0x17,0x58,0x2c,0x03,0x0f,0x70,0x40,0x01,0x40,0x40,0x69,0x53,0x08,0x0d,0x06,0x4d,0x53,0x08,0x0c,0x06,0x4d,0x53,0x08,0x0b,0x06,0x4d,0x53,0x83,0x0f,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39, +0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x2b,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5f,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x27, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x12,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02, +0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0xa5,0x39,0x57,0x4a,0x45,0x26,0x28,0x69,0x80,0x98,0x59,0x6c,0xb4,0x80,0x47,0xae,0x9f,0x1e,0x3c,0x2f,0x1d,0x39,0x64,0x88,0x4f,0x4e,0x81,0x5d,0x34,0x89,0x89,0x45,0x70,0x5f,0x52,0x28,0x51,0x52,0x09,0x08,0x9f,0x08,0x03,0x02,0x26,0x40,0x55,0x2f,0x23, +0x3a,0x3b,0x3f,0x28,0x1e,0x3e,0x21,0x24,0x4f,0xfc,0x93,0x4c,0x80,0x6c,0x58,0x24,0x3d,0x67,0x69,0x77,0x4e,0x3f,0x6a,0x4d,0x2c,0x32,0x57,0x74,0x01,0x3d,0x25,0x39,0x46,0x22,0x62,0x75,0x01,0x19,0x2d,0x3c,0x22,0x7e,0x7c,0x17,0x1f,0x39,0x52,0x34,0x2b,0x50,0x3e,0x25,0x36,0x69,0x9a,0x64,0x99,0xd9,0x45,0x16,0x3b,0x4b,0x5b,0x36, +0x4f,0x7a,0x54,0x2b,0x2b,0x50,0x70,0x45,0x78,0x9f,0x38,0x1b,0x4e,0x60,0x6e,0x3b,0x71,0x01,0x10,0x95,0x26,0x43,0x21,0x21,0x3b,0x29,0x5b,0xb8,0xad,0x9c,0x41,0x30,0x47,0x30,0x17,0x10,0x0c,0x98,0x0e,0x0e,0x8e,0x21,0x37,0x49,0x28,0x5f,0x87,0x62,0x46,0x1e,0x19,0x3d,0x53,0x6e,0x4a,0x44,0x68,0x45,0x23,0x03,0xfd,0x32,0x46,0x2e, +0x15,0x6a,0x5b,0x29,0x48,0x3e,0x30,0x11,0x2c,0x75,0x00,0x01,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a,0x00,0x03,0x00,0x0c,0xb3,0x03,0x02,0x03,0x03,0x00,0x3f,0xcd,0x01,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x34,0x91,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x8c,0xfe,0xba,0x02,0x56,0x05,0x9a,0x00,0x09,0x00,0x41, +0x40,0x2b,0x05,0x10,0x0b,0x01,0x4d,0x01,0x10,0x0b,0x01,0x4d,0x38,0x02,0x01,0x06,0x03,0x00,0x20,0x05,0xea,0x06,0x01,0xea,0x00,0x00,0x0b,0x08,0x08,0x0c,0x06,0x4d,0x08,0x10,0x0b,0x06,0x4d,0x08,0xea,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b, +0x2b,0x01,0x23,0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0x02,0x54,0x92,0xfe,0xca,0x01,0x36,0x94,0xfe,0xc6,0xfe,0xba,0x01,0x62,0x02,0x07,0x02,0x09,0x01,0x6e,0xfe,0x84,0xfe,0x07,0xfe,0x0b,0x00,0x00,0x01,0x00,0x16,0xfe,0xba,0x01,0xe2,0x05,0x9a,0x00,0x09,0x00,0x4a,0xb9,0x00,0x06,0xff,0xf0,0xb3,0x0b,0x01,0x4d,0x00,0xb8,0xff, +0xf0,0x40,0x0b,0x0b,0x01,0x4d,0x37,0x09,0x01,0x06,0x03,0x00,0x20,0x03,0xb8,0xff,0xf0,0xb5,0x0b,0x06,0x4d,0x03,0xea,0x08,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x08,0x08,0x0b,0x01,0x06,0xea,0x05,0x00,0xea,0x01,0x2f,0xe1,0xd6,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x2b,0x2b,0x13,0x23, +0x00,0x11,0x10,0x01,0x33,0x00,0x11,0x10,0xaa,0x92,0x01,0x38,0xfe,0xc6,0x94,0x01,0x38,0xfe,0xba,0x01,0x76,0x01,0xf5,0x01,0xf9,0x01,0x7c,0xfe,0x92,0xfd,0xf7,0xfd,0xf9,0x00,0x00,0x01,0x00,0x4c,0x02,0xd9,0x03,0x0c,0x05,0x9a,0x00,0x0e,0x00,0x67,0x40,0x31,0x03,0x04,0x01,0x10,0x03,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x00,0x04,0x08, +0x09,0x09,0x08,0x53,0x59,0x0f,0x09,0x01,0x10,0x03,0x09,0x0c,0x03,0x02,0x02,0x00,0x0e,0x0c,0x06,0x06,0x0b,0x08,0x0b,0x08,0x42,0x08,0x04,0x0a,0x0d,0x03,0x01,0x0d,0x0c,0x48,0x0b,0xb8,0xff,0xf8,0xb5,0x0d,0x06,0x4d,0x07,0x0a,0x0b,0x2f,0x33,0x33,0x2b,0xed,0x32,0x32,0x17,0x39,0xc4,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xe4, +0x39,0x2f,0x00,0x3f,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x10,0xd4,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x05,0x17,0x07,0x03,0x03,0x27,0x37,0x25,0x37,0x05,0x03,0x33,0x03,0x25,0x03,0x0c,0xfe,0xee,0xbe,0x6e,0x9c,0x9e,0x6e,0xbe,0xfe,0xec,0x2d,0x01,0x06,0x17,0x8a,0x17,0x01,0x07,0x04,0x50,0x38,0xf3,0x4c,0x01, +0x09,0xfe,0xf7,0x4c,0xf3,0x38,0x7d,0x63,0x01,0x30,0xfe,0xd0,0x63,0x00,0x00,0x01,0x00,0xe8,0x00,0x7f,0x04,0x94,0x04,0x2b,0x00,0x0b,0x00,0x49,0x40,0x21,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x01,0x0d,0x03,0x07,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xbd,0x04,0xb8, +0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x94,0xfe,0x6c,0x85,0xfe,0x6d,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0xfe, +0x6d,0x01,0x93,0x86,0x01,0x93,0xfe,0x6d,0x00,0x01,0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x00,0x03,0x00,0x45,0x40,0x1d,0x39,0x03,0x01,0x39,0x00,0x01,0x02,0x40,0x03,0xb2,0x04,0x00,0x20,0x0c,0x06,0x4d,0x00,0x28,0x0b,0x06,0x4d,0x00,0x80,0x02,0x40,0x11,0x19,0x48,0x02,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xea, +0xb6,0x0b,0x06,0x4d,0x02,0x2f,0x05,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x00,0x10,0xf6,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x5d,0x25,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0xe4,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x00,0x03,0x00,0x1c,0x40,0x10,0x02,0x01,0x53,0x59,0x4f,0x02, +0x01,0x02,0x20,0x00,0x01,0x00,0x20,0x01,0x01,0x01,0x2f,0x5d,0x2f,0x5d,0x00,0x2f,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xb2,0xfd,0xde,0x02,0x22,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x00,0x0b,0x00,0x1c,0x40,0x11,0x00,0x06,0xb0,0x5b,0x00,0x13,0x09,0xaf,0x1f,0x03,0x2f,0x03,0x02,0x03, +0x2f,0x0d,0x01,0x5d,0x2f,0x71,0xe1,0x00,0x3f,0x2b,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x16,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x00,0x01,0xff,0xe4,0xff,0x12,0x03,0x2d,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x77,0x01,0x01,0x00,0x10,0x0b, +0x00,0x4d,0x01,0x00,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30,0x01,0x2b,0x5d,0x01,0x01,0x23,0x01,0x03,0x2d,0xfd,0x50,0x99,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x02,0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x29,0x40,0x15,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x40,0x0a,0x0f,0x13,0x9a, +0x59,0x0f,0x07,0x05,0x17,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a, +0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x01,0x00,0xe4,0x00,0x00,0x02,0xd4,0x05,0xba,0x00,0x0e,0x00,0x1d,0x40,0x0d,0x0d,0x07,0x00,0x8a,0x01,0x08,0x07,0x07,0x01,0x0d, +0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x33,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xd4,0xa4,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2, +0x05,0xb2,0x00,0x2a,0x00,0x3c,0x40,0x1e,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x40,0x21,0x00,0x1d,0x0e,0x20,0x1d,0x99,0x59,0x20,0x18,0x0a,0x0a,0x05,0x0e,0x05,0x9a,0x59,0x0e,0x07,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32, +0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51,0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca, +0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66,0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x72,0x40,0x41, +0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x40,0x0f,0x0f,0x2b,0x08,0x19,0x1a,0x01,0x0f,0x1a,0x01,0x0b,0x03,0x1a,0x1a,0x18,0x1d,0x18,0x9a,0x59,0x24,0x12,0x13,0x13,0x12,0x9a,0x59,0x13,0x13,0x0a,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x09,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05, +0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21, +0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e, +0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08,0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x3e,0x40,0x1e,0x03,0x01,0x05,0x8a,0x06,0x40,0x10,0x0e,0x06,0x06,0x0f,0x17,0x08,0x04,0x08,0x0f,0x08,0x9a, +0x59,0x09,0x01,0x11,0x0e,0x0f,0x0f,0x06,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x12,0x39,0x39,0x11,0x33,0x33,0x1a,0x10,0xfd,0x32,0xc6,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x52,0xb8,0xb8, +0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1,0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x52,0x40,0x2c,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89, +0x40,0x0f,0x0f,0x25,0x08,0x1f,0x12,0x9a,0x59,0x1f,0x1f,0x0a,0x18,0x18,0x1b,0x99,0x59,0x18,0x06,0x12,0x08,0x01,0x00,0x08,0x01,0x0b,0x03,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x12,0x39,0x2f,0x1a, +0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97, +0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x12,0x0a,0x00,0x89,0x21,0x21, +0x36,0x2b,0x19,0x89,0x40,0x0a,0x1c,0x26,0x9a,0x59,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x0f,0x14,0x9a,0x59,0x0f,0x07,0x05,0x30,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x11,0x12,0x39,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14, +0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e, +0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37, +0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x12,0x00,0x2d,0xb9,0x00,0x07,0x01,0x86,0x40,0x12,0x40,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x11,0x11,0x10,0x99,0x59,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x2f,0x39,0x1a,0xed,0x31,0x30,0x01, +0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xf2,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x00,0x03,0x00,0x5a,0xff,0xe9, +0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x5b,0x40,0x2f,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x40,0x00,0x15,0x05,0x33,0x3d,0x3d,0x33,0x9a,0x59,0x3d,0x3d,0x29,0x0d,0x1f,0x29,0x99,0x59,0x1f,0x19,0x0d,0x47,0x9a,0x59,0x0d,0x07,0x00,0x3f,0x2b, +0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, +0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c, +0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f, +0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x46,0x40,0x24,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36, +0x2b,0x89,0x40,0x17,0x12,0x30,0x99,0x59,0x0f,0x12,0x12,0x26,0x05,0x1c,0x26,0x9a,0x59,0x1c,0x07,0x08,0x08,0x0a,0x05,0x0a,0x9a,0x59,0x05,0x19,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x39,0x2b,0x01,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06, +0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b, +0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49, +0x63,0x00,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x3c,0x40,0x16,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0c,0x12,0xb0,0x5b,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b, +0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42, +0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x02,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x63,0x40,0x16,0x0f,0x0f,0x01,0x0f,0x0c,0x01,0x0c,0x05,0x06,0x00,0xb0,0x5b,0x06,0x10,0x0e,0x40,0x0f,0xb2,0x10,0x09,0xaf,0x03,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xec,0x40,0x11,0x0b, +0x06,0x4d,0x03,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0x28,0x0b,0x06,0x4d,0x0c,0x80,0x0e,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xea,0xb6,0x0b,0x06,0x4d,0x0e,0x2f,0x11,0x01,0x5d,0x2f,0x2b,0x2b,0x1a,0xcd,0x2b,0x2b,0x2f,0x2b,0x2b,0xe1,0x00,0x10,0xf6,0x1a,0xcd,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x13,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xe2,0x2f,0x41,0x41,0x2f,0x2e,0x42,0x42,0x2c,0xa0,0x75,0x75,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0xac,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c,0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x01,0x01,0x07,0x10,0x0b, +0x00,0x4d,0x02,0x01,0x00,0x00,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x03,0x01,0x03,0x03,0x00,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x01,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x33,0x2f,0x2b,0xc4,0x00,0x2f,0x33,0x2f,0x5d,0x2b,0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15, +0x01,0x15,0x01,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x7f,0x01,0xb0,0x3b,0x01,0xe2,0x96,0xfe,0x9c,0x04,0xfe,0xc6,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e,0x04,0x94,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0f,0x06,0x05,0xbe,0x59,0x06,0x02,0x02,0x01,0xbe,0x59,0x02,0x01,0x00,0x05,0x04,0xb8,0xff,0xe0,0xb4,0x0c, +0x06,0x4d,0x04,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2f,0x2b,0x12,0x39,0x39,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x00,0x01,0x01,0x10,0x00,0x7f,0x04,0x6c,0x04,0x4c, +0x00,0x07,0x00,0x43,0x40,0x0c,0x78,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x01,0x01,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x00,0x4d,0x70,0x06,0x01,0x06,0x06,0x01,0x04,0x00,0xb8,0xff,0xe0,0xb5,0x0c,0x06,0x4d,0x00,0x05,0x02,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xc4,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x2f,0x5d,0x2b, +0x12,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x02,0x2f,0xfe,0x50,0x95,0x01,0x38,0x06,0x01,0x64,0x96,0xfe,0x1e,0x00,0x02,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x23,0x00,0x33,0x00,0x46,0x40,0x26,0x00,0x12,0x01,0x10,0x05,0x11,0x0f,0x14, +0x0f,0x95,0x59,0x14,0x04,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x13,0x20,0xef,0x03,0x30,0xaf,0x7f,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x35,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x26,0x26,0x35, +0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x03,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x01,0x4f,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40,0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x65,0x3a,0x34,0x4f,0x5c, +0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x01,0x8e,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0xfe,0x60,0x20,0x20,0x2e,0x2f,0x1f,0x21,0x21,0x1f,0x2f,0x2e,0x20,0x20,0x00, +0x00,0x02,0x00,0xac,0xff,0x44,0x06,0xfc,0x05,0xae,0x00,0x32,0x00,0x3d,0x00,0xb9,0x40,0x10,0x0a,0x27,0x01,0x0a,0x32,0x01,0x03,0x00,0x1b,0x01,0x0f,0x19,0x01,0x10,0x05,0x1e,0xb8,0xff,0xc0,0x40,0x0f,0x0b,0x0c,0x00,0x4c,0x1c,0x40,0x0b,0x00,0x4d,0x18,0x40,0x0c,0x00,0x4d,0x16,0xb8,0xff,0xc0,0x40,0x4b,0x0c,0x00,0x4d,0x04,0x18, +0x0b,0x00,0x4d,0x0d,0x00,0x03,0x09,0x09,0x33,0x4c,0x59,0x09,0x0f,0x31,0x14,0x03,0x39,0x03,0x39,0x4c,0x59,0x0f,0x03,0x0f,0x03,0x25,0x2b,0x2b,0x1a,0x4c,0x59,0x2b,0x04,0x00,0x22,0x10,0x22,0x02,0x0d,0x03,0x22,0x20,0x25,0x20,0x4c,0x59,0x25,0x00,0x0d,0x0f,0x10,0x12,0x05,0x3c,0x3c,0x2e,0x36,0x48,0x06,0x22,0x06,0x22,0x06,0x28, +0x17,0x48,0x2e,0x1d,0x48,0x28,0x2f,0xe1,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x12,0x39,0x2f,0x17,0x33,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x10,0xc4,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b, +0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x00,0x5d,0x01,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x37,0x33,0x02,0x15,0x14,0x33,0x32,0x36,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x37,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x23,0x22,0x03,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x8c,0x05,0x49,0xd6,0x89,0xa7,0xe7,0xbc,0x48,0x71,0x10,0x04,0x02,0x08,0x7d,0x2f,0x77,0x6c,0x8f,0xfe,0xa4,0xfe,0xcc,0xfe,0xd7,0xfe,0x7c,0x01,0x71,0x01,0x39,0xf7,0xaf,0xad,0xfe,0xfd,0xfe,0x94,0xfe,0x43,0x01,0xd3,0x01,0x6b,0x01,0x54,0x01,0xbe,0xeb,0xa9,0xdb,0xb4,0x7c,0x99,0x67,0x56, +0x7c,0x91,0x01,0xa4,0xee,0xca,0xab,0xe2,0x01,0x2b,0x4a,0x38,0x1c,0x57,0xfd,0xd9,0x0a,0xcf,0xea,0xba,0x01,0x13,0x01,0x5c,0xfe,0x60,0xfe,0xc8,0xfe,0xcd,0xfe,0x87,0x52,0x7c,0x4a,0x01,0xb7,0x01,0x63,0x01,0x6e,0x01,0xe2,0xfe,0x6c,0xfe,0xbb,0xee,0xfe,0xcf,0x03,0x0e,0xec,0xaf,0x76,0x88,0xf7,0xcc,0xd6,0x00,0x00,0x02,0x00,0x16, +0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0xd0,0x40,0x2c,0x07,0x07,0x01,0x08,0x06,0x01,0x09,0x10,0x0c,0x00,0x4d,0x02,0x08,0x09,0x0a,0x0b,0x01,0x0b,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x03,0x04,0x01,0x0c,0x01,0x01,0x10,0x03,0x01,0x10,0x0c,0x00,0x4d,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d, +0x01,0x4c,0x0c,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x0b,0xb8,0xff,0xc0,0x40,0x39,0x0b,0x0d,0x01,0x4c,0x0e,0x0d,0x09,0x0a,0x04,0x05,0x0b,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x40,0x12,0x16,0x48,0x0c,0x06,0x40,0x08,0x0f,0x02,0x03,0x0f,0x03,0x91,0x59,0x0f,0x0f,0x06,0x03,0x01,0x05,0x08,0x0f,0x0c,0x0b,0x03,0x02,0x0e,0x09,0x0d, +0x0a,0x0a,0x05,0x77,0x05,0x01,0x78,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x00,0x2f,0x2f,0x3f,0x39,0x2f,0x2b,0x00,0x10,0x18,0xc4,0x10,0xc4,0x1a,0x10,0xdd,0x2b,0x2b,0xc4,0x12,0x17,0x39,0x31,0x30, +0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x87,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x9f,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01, +0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x8f,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0xdc,0x40,0x0c,0x09,0x0d,0x01,0x06,0x0b,0x01,0x03,0x04,0x01,0x10,0x03,0x04,0xb8,0xff,0xe8,0x40,0x2e,0x0b,0x00,0x4d,0x08,0x18,0x11,0x11,0x18,0x91,0x59,0x11, +0x11,0x19,0x01,0x00,0x19,0x91,0x59,0x00,0x12,0x01,0x10,0x91,0x59,0x01,0x03,0x09,0x19,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x06,0x4d,0x1d,0x1d,0x05,0x06,0x0c, +0x06,0x4d,0x05,0x7d,0x7f,0x15,0x01,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x15,0x21,0x11,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x19,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x00, +0x21,0x40,0x0b,0x00,0x4d,0x2b,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x00,0x5f,0x5e,0x5d,0x5d,0x5d,0x33,0x11, +0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a,0x9e,0xfe,0xed,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x9a,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9, +0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x99,0x40,0x0f,0x45,0x0a,0x01,0x49,0x00,0x01,0x4a,0x03,0x01,0x0f,0x17,0x01,0x0c,0x03,0x09,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x00,0x4d,0x03,0x18,0x0b,0x00,0x4d,0x0a,0x0b, +0x00,0x15,0xb8,0xff,0xc0,0x40,0x43,0x0b,0x00,0x4d,0x15,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x0b,0x30,0x0b,0x0d,0x01,0x4c,0x3f,0x0b,0x01,0x0b,0x0b,0x17,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05, +0x08,0x0c,0x06,0x4d,0x05,0x13,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x33,0x11,0x33,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10, +0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x9f,0xed,0xfe,0xce,0xfe,0x90,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x54,0x01,0x8a,0x01,0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x02, +0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x97,0x40,0x26,0x00,0x03,0x01,0x00,0x03,0x01,0x10,0x05,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x91,0x59,0x01,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x0d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff, +0xf0,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xea,0x40,0x18,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0b, +0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0xd6, +0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x05,0x9a,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x00,0x0b,0x00,0x70,0x40,0x34,0x06,0x09,0x91,0x59,0x06,0x02,0x01,0x06,0x91,0x2b,0x30,0x06,0x0a,0x02,0x01,0x0a,0x91,0x59,0x01,0x12,0x02,0x05,0x91,0x59, +0x02,0x03,0x04,0x08,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f, +0x33,0x33,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xb4,0xfd,0x08,0x02,0xd8,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0x94, +0x05,0x9a,0x00,0x09,0x00,0x67,0x40,0x2c,0x02,0x05,0x91,0x59,0x0f,0x02,0x01,0x0b,0x03,0x02,0x02,0x08,0x07,0x12,0x08,0x01,0x91,0x59,0x08,0x03,0x04,0x04,0x00,0x00,0x0b,0x02,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb3, +0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf6,0xb6,0x0b,0x06,0x4d,0x07,0x2f,0x0b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xa8, +0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0x85,0x05,0x9a,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x00,0x19,0x00,0xae,0x40,0x09,0x00,0x0a,0x01,0x0f,0x04,0x01,0x10,0x05,0x09,0xb8,0xff,0xc0,0x40,0x3b,0x0c,0x00,0x4d,0x18,0x17,0x91,0x59,0x18,0x18,0x08,0x00,0x15,0x13,0x02,0x13,0x91,0x59,0x02,0x13,0x0f,0x0b,0x1f, +0x0b,0x02,0x0a,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x04,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x15,0xb8,0xff,0xee,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xee,0x40,0x22,0x0b,0x06,0x4d,0x15,0x15,0x1b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c, +0x06,0x4d,0x10,0x7d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x12,0x39,0x18,0x2f,0x2b, +0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x04,0xec,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe2,0x62, +0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0x79,0x40,0x48,0x08,0x03,0x91,0x59,0x08,0x06,0x05,0x08,0x91,0x2b,0x30,0x01,0x12,0x05,0x12,0x0a,0x03,0x06,0x03,0x09,0x00,0x06,0x0d,0x06, +0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05, +0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00, +0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x10,0xb6,0x00,0x7e,0x01,0x01,0x12,0x02,0x03,0x00,0x3f,0x3f,0x01,0x2f,0xe1,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0x05,0x9a,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x00,0x0c,0x00,0x6d,0x40,0x17,0x00,0x09,0x01,0x00,0x01,0x01,0x0f,0x09, +0x01,0x10,0x05,0x06,0x06,0x08,0x03,0x08,0x91,0x59,0x03,0x13,0x0b,0x03,0x05,0xb8,0xff,0xf0,0x40,0x1c,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0a, +0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xa8,0x02,0x02,0xff,0xfe,0xe5,0x18, +0xa6,0x27,0x01,0x81,0x03,0x9a,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x10,0x00,0x9c,0x40,0x1c,0x7d,0x0e,0x01,0x29,0x0e,0x39,0x0e,0x02,0x7e,0x01,0x01,0x2a,0x01,0x3a,0x01,0x02,0x10,0x18,0x0c,0x0d,0x01,0x4c,0x10,0x10,0x0b,0x01,0x4d,0x0e,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x18, +0x0b,0x0d,0x01,0x4c,0x0a,0x0e,0x10,0x01,0x05,0x05,0x08,0x07,0x12,0x08,0x03,0x0e,0x0f,0x0f,0x01,0x10,0x70,0x00,0x01,0x00,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x00,0x00,0x12,0x0a,0x05,0x06,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff, +0xf8,0x40,0x09,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x33,0x2f,0x2b,0x5d,0x39,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33, +0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x86,0x40,0x09,0x01,0x04,0x91,0x59,0x01,0x12,0x02,0x03,0x05,0xb8,0xff,0xf0, +0xb3,0x10,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x05,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0a,0x1f,0x48,0x05,0x05,0x07,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c, +0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x09,0x0c,0x06,0x4d,0x01,0x05,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0xa4, +0xfd,0x18,0xa8,0x02,0x40,0x05,0x9a,0xfa,0xfe,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x00,0x1b,0x00,0xba,0x40,0x15,0x7a,0x1a,0x01,0x75,0x13,0x01,0x26,0x13,0x36,0x13,0x02,0x72,0x16,0x01,0x16,0x18,0x0b,0x0d,0x01,0x4c,0x0d,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0x40,0x37,0x0b,0x0d,0x01, +0x4c,0x16,0x1a,0x01,0x05,0x09,0x0d,0x06,0x12,0x11,0x12,0x12,0x03,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x1a,0x08,0x0d,0x06,0x4d,0x1a,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x06,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0xb5,0x0b,0x06,0x4d,0x01,0x1d,0x13,0xb8,0xff, +0xf8,0x40,0x17,0x0d,0x06,0x4d,0x13,0x0d,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x7e,0x11,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x11,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x2b,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0x33,0x2b,0xe9,0x2b,0x2b, +0x2b,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xa7,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde, +0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xad,0x40,0x0d,0x77,0x0c,0x01,0x72,0x0b,0x01,0x78,0x02,0x01,0x7d,0x01,0x01, +0x0b,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x0f,0x08,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xf8,0x40,0x2f,0x0b,0x0d,0x01,0x4c,0x0e,0x12,0x01,0x05,0x04,0x09,0x0a,0x03,0x09,0x01,0x0f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x11,0x01,0x11,0x18,0x0d,0x06,0x4d,0x11,0x11,0x08, +0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x11,0x15,0x0b,0x05,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b, +0x39,0x32,0x12,0x39,0x2b,0x2b,0x2f,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x05,0x40,0xce,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xa8,0xda,0x02,0xce, +0x2d,0x0d,0x04,0x0a,0xa8,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfb,0xf4,0x05,0x9a,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x81,0x40,0x1e,0x00,0x12,0x91,0x59,0x00,0x13,0x06,0x0c,0x91,0x59,0x06,0x04,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d, +0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0x15,0x19,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10, +0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10, +0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01, +0x36,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x90,0x40,0x29,0x46,0x06,0x01,0x02,0x0f,0x01,0x0c,0x04,0x0c,0x00,0x91,0x59,0x0c,0x0c,0x03,0x02,0x12,0x03,0x0b,0x91,0x59,0x03,0x03,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xe8, +0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x10,0x10,0x0b,0x06,0x4d,0x10,0x10,0x14,0x0c,0x01,0x06,0x0d,0x06,0x4d,0x01,0x06,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd, +0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xfd,0xb4,0x9f,0x91,0x01,0x1c,0x00,0x02,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x00,0x14,0x00,0x24,0x00,0x36,0x40,0x1a,0x13,0x10,0x04,0x11,0x0c,0x0c,0x21,0x19,0x04,0x13,0x10,0x00,0x08,0x08,0x15,0x91,0x59,0x08,0x04,0x00,0x1d,0x91, +0x59,0x12,0x00,0x13,0x00,0x3f,0xc6,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x33,0x2f,0x33,0x10,0xc6,0x12,0x39,0x39,0x31,0x30,0x05,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x07,0x01,0x21,0x25,0x06,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11, +0x10,0x27,0x26,0x02,0xfe,0xfe,0xd0,0xb9,0xb7,0xbb,0xbc,0x01,0x41,0x01,0x28,0xb6,0xb6,0xba,0x2c,0x32,0x01,0x93,0xfe,0xcf,0xfe,0xf2,0x6a,0x72,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0xc9,0xc9,0x01,0x42,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0xfe,0xa1,0xcc,0x31,0x23,0xfe,0xdf,0xca,0x21,0x05,0x32,0xa3, +0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1c,0x00,0x27,0x00,0xbb,0x40,0x3a,0x45,0x0f,0x01,0x03,0x40,0x0e,0x01,0x0f,0x02,0x01,0x0c,0x05,0x17,0x1e,0x08,0x08,0x1e,0x91,0x59,0x08,0x08,0x0a,0x1d,0x0b,0x1d,0x91,0x59,0x0b,0x03,0x01, +0x0a,0x17,0x09,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x11,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x26,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x11,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x29,0x1e,0x09,0x06, +0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b, +0x12,0x39,0x00,0x2f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0, +0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c,0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40, +0x73,0x81,0x00,0x01,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x35,0x00,0xd2,0x40,0x15,0x4b,0x35,0x01,0x4a,0x2e,0x01,0x46,0x25,0x01,0x44,0x1a,0x01,0x46,0x15,0x01,0x34,0x18,0x0c,0x00,0x4d,0x2a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x28,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x56,0x0c,0x00,0x4d,0x11, +0x18,0x0c,0x00,0x4d,0x09,0x2c,0x13,0x22,0x04,0x18,0x31,0x1a,0x00,0x01,0x00,0x1b,0x01,0x0c,0x03,0x1b,0x18,0x40,0x18,0x1d,0x91,0x59,0x18,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x31,0x31,0x06,0x91,0x59,0x31,0x13,0x1b,0x1b,0x2c,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x7d,0x13,0x13,0x01, +0x2c,0x08,0x0d,0x06,0x4d,0x2c,0x08,0x0c,0x06,0x4d,0x2c,0x08,0x0b,0x06,0x4d,0x2c,0x7d,0x09,0xb8,0xff,0xf0,0x40,0x0f,0x0b,0x06,0x4d,0x20,0x09,0x01,0x09,0x09,0x37,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18, +0x10,0xc4,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x11,0x33,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x79,0x22,0x5f,0x69,0x6a,0x2d,0x9b,0x99,0x33,0x5a,0x7b,0x47,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd4,0x61,0x7f,0xc7,0x37,0x6e,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d,0x53,0x8d,0xb8,0x66,0x22,0x64,0x68,0x5d,0x3a,0xc6,0x1e,0x30,0x21,0x12,0x73,0x6c, +0x3a,0x56,0x47,0x41,0x24,0x26,0x4e,0x5e,0x77,0x50,0x62,0x91,0x5e,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66,0x7c,0x50,0x6a,0x93,0x5c,0x29,0x0b,0x15,0x1f,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x07,0x00,0x7e,0x40,0x0b,0x03,0x12,0x01,0x05,0x06,0x05,0x91,0x59,0x06,0x03, +0x05,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x28,0x0b,0x06,0x4d,0x00,0x05,0x00,0x0e,0x02,0x03,0x05,0x42,0xcf,0x05,0x01,0x05,0x05,0x08,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0x04,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x03,0x03, +0x09,0x08,0x09,0x40,0x0c,0x00,0x4d,0x09,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xe2,0x18,0x2f,0x2e,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xa8,0xfe, +0x63,0x03,0xe3,0x05,0x02,0xfa,0xfe,0x05,0x02,0x98,0x00,0x01,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x00,0x0d,0x00,0x7a,0x40,0x31,0x02,0x0a,0x12,0x0a,0x02,0x02,0x08,0x12,0x08,0x02,0x0b,0x04,0x02,0x09,0x91,0x59,0x02,0x13,0x0c,0x03,0x05,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00, +0x7e,0x7f,0x0b,0x01,0x0b,0x0c,0x0d,0x06,0x4d,0x0b,0x0b,0xb8,0xff,0xfa,0x40,0x17,0x0c,0x06,0x4d,0x0b,0x0f,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfe,0x40,0x09,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2b,0x2f, +0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x01,0x00,0x12, +0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x0b,0x00,0xc8,0x40,0x0a,0x7b,0x0b,0x01,0x74,0x04,0x01,0x78,0x02,0x01,0x0b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x0b,0xb8,0xff,0xe0,0x40,0x22,0x0b,0x01,0x4d,0x04,0x30,0x0c,0x01,0x4d,0x04,0x20,0x0d,0x01,0x4d,0x04,0x20,0x0b,0x01,0x4d,0x39,0x0b,0x01, +0x36,0x04,0x01,0x74,0x07,0x01,0x07,0x28,0x0b,0x0d,0x01,0x4c,0x07,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x0b,0x07,0x02,0x03,0x03,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x11,0x0b,0x06,0x4d,0x0b,0x28,0x00,0x01,0x00, +0x08,0x0c,0x0d,0x01,0x4c,0x00,0x00,0x0d,0x04,0xb8,0xff,0xf8,0x40,0x0f,0x0d,0x06,0x4d,0x04,0x04,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf8,0xb7,0x0c,0x0d,0x01,0x4c,0x27,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x33,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0x32,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2b, +0x2b,0x2b,0x2b,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0xe6,0xfd,0xed,0xb9,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x08,0x19,0x01,0x95,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x3c,0x45,0x04,0x6f,0x00,0x00,0x01, +0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x00,0x1b,0x01,0x41,0x40,0x20,0x7b,0x1b,0x01,0x79,0x1a,0x01,0x76,0x14,0x01,0x76,0x0d,0x01,0x73,0x0c,0x01,0x75,0x09,0x01,0x7b,0x02,0x01,0x1b,0x20,0x0c,0x00,0x4d,0x1a,0x20,0x0c,0x00,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0d,0xb8,0xff,0xe0,0xb3, +0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xe0,0x40,0x0a,0x0c,0x00,0x4d,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x00,0x4d,0x08,0x10,0x0b,0x00,0x4d,0x02,0x10,0x0b,0x00,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x1b,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1b,0xb8,0xff,0xe0,0xb3, +0x0d,0x01,0x4d,0x1b,0xb8,0xff,0xe8,0x40,0x13,0x0b,0x01,0x4d,0x0c,0x30,0x0c,0x01,0x4d,0x0c,0x20,0x0d,0x01,0x4d,0x0c,0x18,0x0b,0x01,0x4d,0x05,0xb8,0xff,0xc8,0x40,0x22,0x0b,0x0d,0x01,0x4c,0x17,0x38,0x0b,0x0d,0x01,0x4c,0x0f,0x38,0x0b,0x0d,0x01,0x4c,0x17,0x40,0x0b,0x0c,0x00,0x4c,0x0f,0x40,0x0b,0x0c,0x00,0x4c,0x05,0x10,0x0d, +0x06,0x4d,0x17,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x1d,0x0d,0x06,0x4d,0x00,0x01,0x05,0x0f,0x13,0x17,0x06,0x0a,0x0b,0x03,0x0a,0x14,0x13,0x06,0x01,0x02,0x17,0x09,0x0a,0x0f,0x17,0x20,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xe0,0xb3,0x0b,0x00,0x4d,0x17,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x00,0x4d,0x0f,0x20,0x0c, +0x00,0x4d,0x0f,0x06,0x17,0x03,0x0b,0x00,0x00,0x1d,0x0b,0x2f,0x1d,0x01,0x5d,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x07,0x60,0xfe,0x6b,0xc5,0xfe,0xd9,0x13,0x04,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05, +0x05,0x1a,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0x05,0x9a,0xfa,0x66,0x04,0x18,0x43,0x4f,0x4a,0x46,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x35,0x5b,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x15,0x00,0xc0,0x40,0x19,0x7b,0x13,0x01,0x7a, +0x12,0x01,0x75,0x0d,0x01,0x74,0x0c,0x01,0x74,0x08,0x01,0x75,0x07,0x01,0x79,0x02,0x01,0x7b,0x01,0x01,0x13,0xb8,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x13,0x08,0x0c,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0c, +0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0f,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0f,0x18,0x0b,0x0d,0x01,0x4c,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x0f,0xb8,0xff,0xf0,0x40,0x1f,0x0d,0x06,0x4d,0x05,0x10,0x0d,0x06,0x4d,0x01,0x05,0x0f,0x13,0x04,0x09,0x0b,0x03,0x09,0x15,0x0a,0x0b,0x14,0x00, +0x10,0x0b,0x00,0x4d,0x00,0x00,0x17,0x0b,0x09,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x09,0x2f,0x2b,0xc6,0x11,0x33,0x2f,0x2b,0xc6,0x11,0x39,0x39,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23, +0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42,0x26, +0x01,0xf4,0xfd,0x39,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x0d,0x00,0x65,0x40,0x21,0x73,0x06,0x01,0x04,0x09,0x01,0x01,0x05,0x03,0x12,0x0d,0x03,0x05,0x03,0x09,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xfe, +0x40,0x16,0x0b,0x06,0x4d,0x03,0x03,0x05,0x0d,0x7d,0x00,0x00,0x0f,0x06,0x18,0x0b,0x0d,0x01,0x4c,0x06,0x05,0x20,0x0f,0x01,0x5d,0x2f,0x33,0x2b,0x11,0x33,0x2f,0xe9,0x11,0x39,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xcd,0x33,0x31,0x30,0x01,0x5d,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16, +0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a,0x1c,0x01,0x50,0x05,0x9a,0xfc,0x78,0xfd,0xee,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0xa6,0x40,0x0e,0x0c,0x06,0x01,0x04,0x01,0x01,0x10,0x01, +0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x31,0x0b,0x0d,0x01,0x4c,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03,0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x12,0x00,0x08,0x07,0x08,0x07,0x91,0x59,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40, +0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x00,0x01, +0x00,0xc8,0xfe,0xba,0x02,0x38,0x05,0x9a,0x00,0x07,0x00,0x39,0x40,0x11,0x02,0x05,0xd9,0x59,0x02,0x03,0x01,0x06,0xd9,0x59,0x01,0x20,0x04,0x00,0x06,0xea,0x01,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0x40,0x09,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x23,0x11,0x33,0x02,0x38,0xfe,0x90,0x01,0x70,0xde,0xde,0xfe,0xba,0x06,0xe0,0x77,0xfa,0x0e,0x00,0x01,0xff,0xe6,0xff,0x10,0x03,0x1e,0x05,0x9a,0x00,0x03,0x00,0x19,0x40,0x0d,0x78,0x01,0x01,0x00,0x08,0x0b,0x00,0x4d,0x00,0x02,0x03,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x2f,0x31,0x30, +0x01,0x2b,0x5d,0x05,0x23,0x01,0x33,0x03,0x1e,0x97,0xfd,0x5f,0x9b,0xf0,0x06,0x8a,0x00,0x01,0x00,0x35,0xfe,0xba,0x01,0xa4,0x05,0x9a,0x00,0x07,0x00,0x35,0x40,0x1b,0x06,0x05,0xd9,0x59,0x06,0x03,0x01,0x02,0xd9,0x59,0x01,0x20,0x05,0x01,0x00,0xea,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xee,0xb3,0x0b, +0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xdd,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x01,0xa4,0xfe,0x91,0xdd,0xdd,0x01,0x6f,0xfe,0xba,0x77,0x05,0xf2,0x77,0x00,0x00,0x01,0x00,0xe6,0x02,0x70,0x04,0x96,0x05,0xb2,0x00,0x07,0x00,0x26,0x40,0x16,0x79,0x06,0x01,0x79,0x01,0x01, +0x07,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x03,0x07,0x04,0x2f,0x00,0x01,0x00,0x05,0x2f,0x2f,0x5d,0x00,0x3f,0x33,0x2f,0xc4,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x01,0x23,0x01,0x23,0x01,0x23,0x01,0x33,0x04,0x96,0x96,0xfe,0xb4,0x06,0xfe,0xcb,0x93,0x01,0xa6,0x41,0x02,0x70,0x02,0x6b,0xfd,0x95,0x03,0x42,0x00,0x01,0x00,0x00,0xfe,0xd7, +0x03,0x52,0xff,0x4e,0x00,0x03,0x00,0x0f,0xb6,0x01,0x02,0xd9,0x59,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0x00,0x01,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x00,0x03,0x00,0x1c,0xb7,0x77,0x03,0x01,0x03,0x80,0x01,0x00,0x02,0xb8,0xff,0xc0,0xb3,0x0d, +0x10,0x48,0x02,0x2f,0x2b,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x5d,0x01,0x23,0x01,0x33,0x01,0xd7,0x7f,0xfe,0xfa,0xa8,0x04,0xc2,0x01,0x48,0x00,0x02,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x00,0x14,0x00,0x1f,0x00,0xaa,0x40,0x52,0x06,0x10,0x01,0x00,0x09,0x01,0x10,0x04,0x06,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x15,0x96,0x59, +0x0b,0x10,0x0d,0x06,0x4d,0x0b,0x0b,0x1c,0x12,0x01,0x15,0x03,0x1c,0x05,0x1c,0x95,0x59,0x05,0x16,0x0f,0x40,0x09,0x0c,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x95,0x59,0x12,0x10,0x20,0x0f,0x30,0x0f,0x02,0x0f,0x0b,0x1f,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x02,0x0d,0x06,0x4d,0x01, +0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xee,0x40,0x17,0x0b,0x06,0x4d,0x01,0x01,0x21,0x0f,0x19,0x83,0x08,0x0c,0x0c,0x06,0x4d,0x08,0x04,0x0b,0x06,0x4d,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x2b,0x2b,0xe9,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x2f,0x5d,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x31,0x30,0x00,0x2b,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x83,0xa4,0x04,0x6b,0xd0,0x99,0xad,0x01,0x52, +0x01,0x33,0xd3,0xb9,0x95,0x97,0xc5,0x01,0x69,0xa4,0xf7,0x72,0x74,0x6b,0x59,0x7a,0x9f,0xa0,0xb8,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0x94,0x22,0x10,0x51,0x67,0x4b,0x5f,0xab,0x83,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10, +0x06,0x03,0x15,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x07,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x04,0x00,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18, +0x18,0x1f,0x06,0x02,0x12,0x06,0x0d,0x06,0x4d,0x12,0x06,0x0c,0x06,0x4d,0x12,0x06,0x0b,0x06,0x4d,0x12,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, +0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9, +0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x05,0xec,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x85,0x40,0x5b,0x58,0x03,0x01,0x09,0x0f,0x19,0x0f,0x02,0x0b,0x00,0x15,0x01,0x0c,0x03, +0x15,0x15,0x13,0x02,0x13,0x95,0x59,0x02,0x16,0x0b,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x20,0x0c,0x01,0x4d,0x00,0x00,0x0b,0x0c,0x0c,0x06,0x4d,0x0b,0x02,0x0b,0x06,0x4d,0x70,0x0b,0x01,0x0b,0x20,0x0c,0x01,0x4d,0x0b,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x83,0x05,0x14,0x0d, +0x06,0x4d,0x05,0x0c,0x0c,0x06,0x4d,0x05,0x23,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x2f,0x2b,0x5d,0x2b,0x2b,0x33,0x2f,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5e,0x5d,0x01,0x5d,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17, +0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x60,0x76,0xa2,0xdb,0xfe,0xf3,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x2f,0x47,0x01,0x1d,0xe3,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9b, +0x40,0x38,0x0f,0x06,0x01,0x10,0x06,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x02,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x01,0x15,0x0e,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0f,0x00,0x11,0x0d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, +0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe9,0x2b,0x2b,0x2b,0x33,0x33,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1, +0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0xaf,0xb5,0x0f,0x07,0x01,0x10,0x06,0x06,0xb8,0xff,0xc0, +0x40,0x2d,0x0b,0x0e,0x48,0x06,0x06,0x01,0x04,0x19,0x01,0x95,0x59,0x19,0x19,0x04,0x0f,0x09,0x04,0x95,0x59,0x09,0x16,0x0f,0x16,0x95,0x59,0x0f,0x10,0x7f,0x07,0x01,0x07,0x16,0x0c,0x06,0x4d,0x07,0x20,0x0c,0x01,0x4d,0x07,0x07,0x00,0x83,0x13,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x13,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x13, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x13,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x19,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x83,0x0c,0x10,0x0d,0x06,0x4d,0x0c,0x10,0x0c,0x06,0x4d,0x0c,0x1d,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39, +0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x32,0x2f,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x03, +0xdd,0xfd,0x2d,0x04,0xb0,0x9a,0xad,0x91,0x87,0xde,0xd9,0xf8,0x01,0x0f,0xc9,0xc9,0xdc,0xa8,0x01,0x87,0x78,0x74,0xa2,0x13,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x17,0xfd,0xef,0x01,0x2d,0xfe,0xfc,0xe7,0x35,0x8e,0x9e,0xa6,0x86,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x14,0x00,0x8a,0xb9,0x00,0x10,0xff, +0xc0,0x40,0x3a,0x0b,0x00,0x4d,0x0a,0x15,0x00,0x00,0x02,0x08,0x0c,0x05,0x0d,0x0d,0x0c,0x95,0x59,0x0d,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x07,0x07,0x00,0x0c,0x0c,0x06,0x4d,0x2f,0x00,0x01,0x00,0x0c,0x00,0x0c,0x05,0x0e,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8, +0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xe6,0x40,0x0a,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15,0x2f,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x33,0x2f,0x2f,0x5d,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x12,0x39, +0x18,0x2f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10, +0x04,0x18,0x00,0x18,0x00,0x25,0x00,0xca,0x40,0x10,0x0a,0x04,0x01,0x03,0x0f,0x0e,0x01,0x10,0x06,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xc0,0x40,0x3a,0x0b,0x0f,0x48,0x05,0x05,0x07,0x02,0x07,0x95,0x59,0x02,0x1c,0x0a,0x23,0x0d,0x23,0x95,0x59,0x0d,0x16,0x17,0x0f,0x15,0x1d, +0x13,0x1d,0x95,0x59,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0,0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x27,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d, +0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f, +0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xfd,0xe4,0xbe,0x8e,0xad,0x9d, +0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x8e,0xfd,0xcf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11, +0x00,0x96,0x40,0x28,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x01,0x15,0x09,0x15,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40, +0x1e,0x0b,0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05, +0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x00,0x0b,0x00,0x0f,0x00,0x4e,0x40,0x23,0x00,0x06,0x63,0x5b,0x00,0x0e,0x0f,0x0d,0x09,0x62,0x03,0x0d,0x0c,0x03,0x62,0xff,0x30,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x84,0x0d,0xb8,0xff,0xfe,0xb3,0x0c, +0x06,0x4d,0x0d,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0d,0x0d,0x11,0x10,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x3f,0xc6,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x23,0xa4,0xa4,0x05, +0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x00,0x0c,0x00,0x18,0x00,0x6b,0x40,0x34,0x02,0x02,0x01,0x10,0x04,0x0d,0x13,0x63,0x5b,0x0d,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x16,0x62,0x10,0x0a,0x00,0x10,0x62,0xff,0x30,0x06,0x00, +0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x0a,0x0a,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0xc6,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x3f,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x01, +0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x0c,0x00,0x9b,0x40,0x10,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x0c,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x00,0x4d,0x01,0x10,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x22,0x0c,0x00,0x4d, +0x09,0x02,0x0a,0x05,0x01,0x15,0x05,0x15,0x0a,0x0f,0x06,0x00,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x40,0x0b,0x01,0x4d,0x00,0x0c,0xb8,0xff,0xe8,0x40,0x1c,0x0d,0x06,0x4d,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05, +0xb8,0xff,0xff,0xb6,0x0b,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2b,0x2f,0x2b,0x2b,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01, +0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x05,0xec,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x3a,0x40,0x16,0x01,0x15,0x02,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01, +0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18,0x00,0x1f,0x00,0xdd,0xb6,0x49,0x0c,0x01,0x49,0x04, +0x01,0x1e,0xb8,0xff,0xe8,0xb7,0x0b,0x00,0x4d,0x0f,0x21,0x01,0x03,0x1c,0xb8,0xff,0xd0,0x40,0x2c,0x0c,0x00,0x4d,0x02,0x16,0x01,0x0c,0x04,0x05,0x15,0x16,0x1b,0x04,0x0d,0x18,0x0d,0x95,0x59,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x01,0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8, +0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xec,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x84,0x12,0xb8,0xff,0xfa,0x40,0x31,0x0c,0x06,0x4d,0x12,0x0e,0x0b,0x06,0x4d,0x12,0x1b,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06, +0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x84,0x0a,0x0a,0x04,0x0d,0x06,0x4d,0x0a,0x40,0x0d,0x01,0x4d,0x0f,0x0a,0x01,0x0c,0x03,0x20,0x21,0x0a,0x84,0x30,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x39,0x18,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18, +0x2f,0x33,0x33,0x3f,0x3f,0x33,0x2b,0x11,0x00,0x17,0x33,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x2b,0x5d,0x5d,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x06,0x54,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9, +0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x02,0x4c,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x96,0x40,0x28,0x02,0x11,0x01,0x02,0x10,0x01,0x10,0x04, +0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x0f,0x04,0x95,0x59,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06, +0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33, +0x18,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x89,0x40,0x23,0x19,0x40,0x0b,0x02,0x4d,0x00,0x12,0x95,0x59,0x00,0x16,0x06,0x0c,0x95,0x59,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20, +0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f, +0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab, +0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x0f,0x06,0x1b,0x09,0x1b,0x95, +0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06, +0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30, +0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0xfe, +0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x95,0x40,0x35,0x1c,0x18,0x0b,0x0c,0x00,0x4c,0x01,0x1b,0x03,0x1b,0x05,0x1b,0x95,0x59,0x05,0x16,0x0f,0x0f,0x0d,0x15,0x0b,0x15,0x95,0x59,0x0b,0x10,0x0d,0x11,0x0e,0x03, +0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x18,0x06,0x0d,0x06,0x4d,0x18,0x06,0x0c,0x06,0x4d,0x18,0x06,0x0b,0x06,0x4d,0x18,0x83,0x08,0x10,0x0d,0x06,0x4d, +0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x17,0x33,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x2b,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00, +0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfd,0xcd,0x95,0x7e,0xae,0xdb,0xc7,0xb1, +0xc9,0xc5,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x59,0xb9,0x00,0x0c,0xff,0xe8,0x40,0x27,0x0b,0x0c,0x00,0x4c,0x07,0x15,0x08,0x0f,0x00,0x00,0x0a,0x02,0x0e,0x10,0x70,0x00,0x01,0x00,0x00,0x12,0x0a,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff, +0xf3,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x04,0x0c,0x06,0x4d,0x07,0x05,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x5d,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d, +0xa4,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0xf6,0x04,0x00,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x00,0x2e,0x00,0xa1,0x40,0x19,0x07,0x26,0x01,0x03,0x16,0x01,0x03,0x09,0x0c,0x01,0x09,0x09,0x01,0x0f,0x00,0x01,0x10,0x04,0x2b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0xb8, +0xff,0xf0,0x40,0x35,0x0b,0x0c,0x00,0x4c,0x0a,0x38,0x0b,0x0c,0x00,0x4c,0x05,0x28,0x0f,0x1e,0x04,0x14,0x2d,0x17,0x19,0x14,0x19,0x95,0x59,0x14,0x10,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x0b,0x03,0x01,0x03,0x2d,0x03,0x95,0x59,0x2d,0x16,0x17,0x17,0x28,0x1e,0x83,0x0f,0x0f,0x00,0x28,0x83,0x05,0xb8,0xff,0xe0,0x40,0x16,0x0b,0x06, +0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x30,0x00,0x10,0x0d,0x06,0x4d,0x00,0x1c,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d, +0x5d,0x5d,0x5f,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x68,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e, +0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x92,0x50,0x9e,0x25,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x24,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81, +0x05,0x2f,0x00,0x14,0x00,0x7c,0x40,0x3b,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x14,0x14,0x12,0x02,0x12,0x95,0x59,0x02,0x16,0x0a,0x0a,0x07,0x0e,0x06,0x0b,0x07,0x07,0x06,0x95,0x59,0x07,0x0f,0x00,0x00,0x0d,0x40,0x0b,0x00,0x4d,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d, +0x0f,0x84,0x04,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xee,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x2b,0x33,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x11,0x33,0x11,0x33,0x18,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x31, +0x30,0x2b,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x90,0xff,0xe8, +0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa1,0x40,0x36,0x49,0x06,0x01,0x49,0x06,0x01,0x03,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x0f,0x03,0x01,0x0c,0x06,0x01,0x15,0x03,0x0c,0x05,0x0c,0x95,0x59,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f, +0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f,0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66, +0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x00,0x0b,0x00,0x7b,0x40,0x0d,0x79,0x0b,0x01,0x79,0x02,0x01,0x77,0x01,0x01,0x76,0x04,0x01,0x0b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x04,0x20,0x0b,0x0d, +0x01,0x4c,0x02,0xb8,0xff,0xf4,0x40,0x19,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x76,0x07,0x01,0x07,0x30,0x0b,0x0d,0x01,0x4c,0x0b,0x07,0x03,0x02,0x15,0x03,0x0f,0x0b,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x0b,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x04,0x0c,0x0b,0x06,0x4d,0x04,0x03,0xb8,0xff,0xf0,0xb3,0x0c,0x00, +0x4d,0x03,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x5d,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xcb,0xfe,0x68,0xa1,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x0a,0x16,0x01,0x10,0x04,0x00,0xfc,0x00, +0x04,0x00,0xfd,0x18,0x52,0x3d,0x4d,0x3e,0x02,0xec,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0xd2,0x40,0x16,0x78,0x1b,0x01,0x77,0x14,0x01,0x76,0x0c,0x01,0x7b,0x0a,0x01,0x74,0x01,0x01,0x38,0x09,0x01,0x37,0x0c,0x01,0x1b,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x13,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x0a, +0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x02,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x14,0x02,0x0b,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x08,0xb8,0xff,0xc0,0xb3,0x0b,0x00,0x4d,0x14,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x00,0x4d,0x13,0x18,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09, +0x0b,0x00,0x4d,0x09,0x10,0x0b,0x00,0x4d,0x1b,0xb8,0xff,0xe0,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x0c,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xd0,0x40,0x23,0x0b,0x0d,0x01,0x4c,0x17,0x30,0x0b,0x0d,0x01,0x4c,0x0f,0x30,0x0b,0x0d,0x01,0x4c,0x02,0x06,0x0f,0x17,0x13,0x1b,0x00,0x07,0x0a,0x0b,0x0f,0x0a,0x00,0x00,0x1d,0x0b,0x2f,0x1d, +0x01,0x5d,0x2f,0x11,0x33,0x2f,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13, +0x16,0x17,0x33,0x36,0x37,0x13,0x05,0xb0,0xfe,0xcd,0xaa,0xd3,0x0c,0x04,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x0a,0x04,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0a,0x05,0x08,0x02,0x0f,0xd0,0x04,0x00,0xfc,0x00,0x02,0xdd,0x2a,0x35,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x23,0x39,0x2c,0x32,0x03,0x00,0xfc,0xfc,0x25,0x37,0x27, +0x35,0x03,0x04,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0xe0,0x40,0x13,0x7b,0x13,0x01,0x73,0x0e,0x01,0x79,0x0c,0x01,0x74,0x0a,0x01,0x7b,0x03,0x01,0x75,0x01,0x01,0x13,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0c,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0a,0x08,0x0b, +0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x13,0x0c,0x06,0x4d,0x02,0x10,0x0c,0x06,0x4d,0x01,0x10,0x0c,0x06,0x4d,0x00,0x10,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d, +0x13,0xb8,0xff,0xf0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0e,0x10,0x0b,0x0d,0x01,0x4c,0x0a,0x10,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x11,0x18,0x0b,0x01,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x15,0x0b,0x01,0x4d,0x03,0x06,0x11,0x13,0x04,0x0b,0x0d,0x0f,0x0b,0x00,0x02,0x0d,0x0b,0x02,0x02,0x15,0x0b,0x15, +0xb8,0xff,0xc0,0xb2,0x0c,0x00,0x4d,0x2b,0x2f,0x11,0x33,0x2f,0x11,0x33,0x11,0x33,0x00,0x2f,0x3f,0x12,0x17,0x39,0x2b,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x01,0x33, +0x13,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x27,0x29,0x01,0xae,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0xd5, +0x04,0x00,0x00,0x14,0x00,0x9b,0x40,0x0a,0x0d,0x14,0x01,0x00,0x0d,0x01,0x06,0x02,0x01,0x14,0xb8,0xff,0xe0,0x40,0x2c,0x0b,0x0d,0x01,0x4c,0x0d,0x20,0x0b,0x0d,0x01,0x4c,0x02,0x20,0x0b,0x00,0x4d,0x02,0x10,0x01,0x10,0x04,0x00,0x0f,0x0c,0x0f,0x10,0x30,0x0b,0x0d,0x01,0x4c,0x10,0x01,0x0b,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03, +0x1c,0x06,0x0b,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0x06,0x0b,0x03,0x0c,0x14,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x14,0x00,0x10,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x16,0x0d,0x0c,0x0b,0x06,0x4d,0x0d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x00,0x4d,0x0c,0x2f,0x2b,0x33,0x2b,0x11,0x33,0x2f,0x2b,0x32, +0x2b,0x12,0x17,0x39,0x2b,0x2b,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2f,0x33,0x33,0x2b,0x3f,0x3f,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x40,0x2b,0x35,0x2c, +0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x05,0x10,0x06,0x05,0x0f,0x01,0x23,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x03,0x16,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x09,0x00,0xa5,0x40,0x0e,0x0a,0x06,0x01,0x06,0x01,0x01,0x10,0x01,0x18,0x0b,0x0d,0x01, +0x4c,0x06,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x35,0x00,0x45,0x00,0x02,0x03,0x00,0x13,0x00,0x23,0x00,0x03, +0x3a,0x05,0x4a,0x05,0x02,0x0c,0x05,0x1c,0x05,0x2c,0x05,0x03,0x17,0x03,0x05,0x01,0x04,0x04,0x01,0x95,0x59,0x04,0x15,0x00,0x08,0x07,0x08,0x07,0x95,0x59,0x08,0x0f,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11, +0x12,0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0x70,0xfd,0xa2,0x02,0x58,0xfc,0xb7,0x02,0x5e,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x01,0x00,0x5c,0xfe,0xba,0x02,0x2b, +0x05,0x9a,0x00,0x18,0x00,0x5f,0x40,0x2c,0x11,0x05,0x06,0x06,0x05,0x52,0x59,0x06,0x0b,0x00,0x06,0x4c,0x14,0x30,0x0b,0x0c,0x53,0x59,0x0b,0x03,0x00,0x18,0x53,0x59,0x00,0x20,0x12,0x15,0x05,0x0c,0x18,0x18,0x15,0x05,0x0f,0x08,0x15,0xea,0x02,0x18,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xdc,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf7,0xb3, +0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe1,0x39,0x39,0xce,0x10,0xc2,0x2f,0x32,0x11,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x24,0x11,0x11,0x34,0x27,0x35,0x36,0x35,0x11,0x10,0x25,0x15,0x06,0x15,0x11,0x14,0x07,0x15,0x16,0x15,0x11,0x14,0x16,0x17,0x02,0x2b, +0xfe,0xcd,0x9c,0x9c,0x01,0x33,0x9f,0x96,0x96,0x47,0x58,0xfe,0xba,0x04,0x01,0x32,0x01,0x2c,0xca,0x0a,0x74,0x0a,0xce,0x01,0x24,0x01,0x36,0x04,0x80,0x04,0xc2,0xfe,0xdb,0xd2,0x30,0x04,0x2d,0xd3,0xfe,0xdf,0x6f,0x5f,0x02,0x00,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x13,0x40,0x09,0x03,0x00,0x1c,0x00, +0xea,0x90,0x01,0x01,0x01,0x2f,0x5d,0xe1,0x00,0x3f,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00,0x00,0x01,0x00,0x42,0xfe,0xba,0x02,0x10,0x05,0x9a,0x00,0x18,0x00,0x66,0x40,0x26,0x0c,0x00,0x18,0x18,0x00,0x52,0x59,0x18,0x13,0x05,0x18,0x4c,0x14,0x30,0x13,0x12,0x53,0x59,0x13,0x03,0x05,0x06, +0x53,0x59,0x05,0x20,0x0c,0x09,0x00,0x00,0x03,0x12,0x06,0x16,0x0f,0x03,0xea,0x09,0xb8,0xff,0xe0,0x40,0x0f,0x0d,0x06,0x4d,0x50,0x09,0x01,0x3f,0x09,0x01,0x09,0x20,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x5d,0x5d,0x2b,0xe1,0x39,0x39,0xc6,0x32,0x10,0xca,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x06,0x15,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x34,0x37,0x35,0x26,0x35,0x11,0x34,0x27,0x35,0x04,0x11,0x11,0x14,0x17,0x02,0x10,0x9c,0xfe,0xce,0x57,0x49,0x95,0x95,0xa0,0x01,0x32,0x9c,0x01,0xf0,0x0a,0xca,0xfe,0xd4,0xfe,0xce,0x04,0x7e,0x02,0x60, +0x6e,0x01,0x21,0xd3,0x2d,0x04,0x30,0xd2,0x01,0x25,0xc2,0x04,0x80,0x04,0xfe,0xca,0xfe,0xdc,0xce,0x0a,0x00,0x01,0x00,0xd1,0x01,0xb8,0x04,0xaa,0x02,0xee,0x00,0x14,0x00,0x44,0xb9,0x00,0x01,0xff,0xe0,0x40,0x23,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x0d, +0x14,0xbd,0x00,0x09,0xbd,0x0a,0x15,0x16,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e, +0x6d,0x9c,0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x02,0xee,0x94,0xa2,0x6d,0x43,0xb0,0x8f,0xa7,0x58,0x5a,0x62,0x50,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x22,0xb7,0x03,0x70,0x1f,0x01,0x02,0x7f,0x1f, +0x01,0xb8,0xff,0xf3,0x40,0x0a,0x1f,0x19,0x06,0x07,0x3e,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x5d,0x35,0x5d,0x35,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xcd,0x00,0x10,0x00,0x1b,0x00,0x23,0x01,0x5d,0x40,0x18,0x76,0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01, +0x10,0x06,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x06,0xb8,0xff,0xfa,0x40,0x2c,0x0b,0x06,0x4d,0x1d,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1d,0x1c,0x02,0x01,0x20,0x01,0x22,0x23,0x03,0x04,0x20,0x04, +0x73,0x04,0x01,0x7c,0x01,0x01,0x10,0x08,0x0b,0x0c,0x00,0x4c,0x04,0x18,0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0xb4,0x0b,0x0d,0x01,0x4c,0x20,0xb8,0xff,0xc0,0xb4,0x0b,0x0d,0x01,0x4c,0x1f,0xb8,0xff,0xc0,0x40,0x1e,0x0b,0x0d,0x01,0x4c,0x10,0x20,0x0b,0x0d,0x01,0x4c,0x06,0x20,0x0b,0x0d,0x01,0x4c,0x00,0x16,0x01,0x09,0x03,0x1d, +0x1e,0x1f,0x21,0x22,0x05,0x05,0x20,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x20,0x20,0x12,0x16,0x48,0x20,0x00,0x16,0x1c,0x02,0x91,0x59,0x1c,0x1c,0x16,0x00,0x0b,0x11,0xc5,0x59,0x0b,0x10,0x06,0x16,0x03,0x04,0x00,0x12,0x19,0xc4,0x0e,0x40, +0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0x40,0x12,0x0c,0x00,0x4d,0x08,0x08,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x25,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x39,0x2f,0x2b,0xe9, +0xd4,0x2b,0xe9,0x00,0x3f,0xc4,0x3f,0xcd,0x39,0xc4,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x2b,0x2b,0x2b,0x2b,0x11,0x12,0x17,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x0e,0xc0,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0x01,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40, +0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x07, +0x00,0xdd,0x02,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x65,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x17,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x38,0x0e,0x0c,0x02,0x03,0x3e,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x0b,0x02,0x26, +0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb5,0x01,0x59,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x14,0x0b,0x12,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe0,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x66,0x01,0x59,0x00,0x1b,0x40,0x10,0x03,0x70, +0x27,0x01,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x5d,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0xe4,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x1d,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01,0x1a,0x05, +0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x12,0x22,0x20,0x10,0x00,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, +0x06,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x11,0x22,0x20,0x10,0x0b,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x96,0x00,0x00,0x00,0x16, +0xb9,0x00,0x02,0xff,0xec,0x40,0x09,0x24,0x20,0x0f,0x14,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe2,0x40,0x0a,0x2f,0x29,0x0f,0x14,0x25,0x03,0x02,0x2c,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xb2,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xa8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xeb,0x40,0x09,0x2a,0x20,0x0f,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83, +0x06,0x1c,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x29,0x0f,0x14,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xdd, +0x01,0x83,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x27,0x1b,0x1d,0x0c,0x12,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48, +0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xfe,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x09,0x1d,0x1b,0x0c,0x12,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf7,0x40, +0x09,0x1f,0x20,0x16,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x88,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x0c,0x12,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x01,0xdd,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0x8e,0xd1,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xec,0x00,0x00,0x01,0x71,0x06,0x0a,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, +0x00,0x43,0x9a,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x07,0x06,0x0e,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x77,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x08,0x04,0x02,0x03,0x25, +0x01,0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc9,0x00,0x00,0x02,0x10,0x05,0x87,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x4c,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf4,0x40,0x0a,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, +0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xb2,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1d,0x13,0x0a,0x12,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07, +0x00,0x8e,0x01,0x42,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe4,0x40,0x09,0x19,0x19,0x0c,0x06,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x14,0x19,0x19,0x03,0x09, +0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1d,0x1e,0x03,0x09,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xb2,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd8, +0x00,0xff,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x3c,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x14,0x12,0x09,0x11,0x25, +0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xea,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x17,0x14,0x12,0x08,0x10,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2, +0x06,0x0e,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x12,0x08,0x11,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x87,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xa0,0x00,0x00,0x00,0x17, +0x40,0x0d,0x02,0x01,0x07,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x36,0x40,0x1b,0x0b,0x01,0x09,0x06,0x40,0x04,0x00,0x08,0x10,0x08,0x02,0x0a,0x03,0x08,0x00,0x05,0x06,0x05,0x91,0x59,0x0b,0x06,0x06,0x03, +0x08,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x1a,0xce,0xdd,0x32,0xce,0x31,0x30,0x01,0x25,0x03,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x02,0xd8,0xfe,0xfa,0x28,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0x03,0x7d,0x1e,0xfd,0x4a,0x02,0xb6,0x1e, +0x96,0x14,0x01,0x9a,0xfe,0x66,0x14,0x00,0x00,0x02,0x00,0x6c,0x03,0x81,0x02,0x96,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x38,0x40,0x21,0x00,0x12,0xd8,0x59,0x00,0x0e,0x06,0x06,0x0c,0xd8,0x59,0x06,0x04,0x03,0x09,0x42,0x15,0xd8,0x09,0x0f,0xd8,0x03,0x0f,0x09,0x01,0x17,0x03,0x18,0x19,0x03,0x09,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d, +0x10,0xe1,0x10,0xe1,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x81,0x73,0xa2,0xa0,0x73,0x74,0xa3,0xa2,0x73,0x41,0x5c,0x5a,0x41,0x41,0x5e,0x5c,0x03,0x81,0xa3,0x74,0x73,0x9f,0xa0, +0x72,0x74,0xa3,0x01,0xb4,0x5c,0x41,0x43,0x5f,0x60,0x42,0x42,0x5b,0x00,0x00,0x02,0x00,0xb8,0xff,0xcf,0x03,0xb8,0x05,0x85,0x00,0x16,0x00,0x1d,0x00,0x7f,0x40,0x42,0x05,0x10,0x01,0x03,0x0f,0x00,0x01,0x10,0x05,0x16,0x16,0x17,0x14,0x02,0x14,0x9a,0x59,0x05,0x02,0x02,0x11,0x12,0x11,0x02,0x0c,0x03,0x11,0x11,0x18,0x13,0x0e,0x13, +0x99,0x59,0x0b,0x0e,0x02,0x0e,0x02,0x0c,0x04,0x1e,0x0c,0x0b,0x0e,0x14,0x17,0x04,0x02,0xdc,0x70,0x05,0x01,0x02,0x05,0x01,0x05,0x05,0x08,0x11,0x00,0x00,0x1f,0x1b,0x89,0x08,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x08,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x2f,0x10,0xc6,0x11,0x39,0x39, +0x2f,0x2f,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x33,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x02,0x35,0x34,0x12,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x05,0x11,0x06,0x06,0x15,0x14,0x16,0x03,0xb8,0x60,0x7d,0x7d, +0xc1,0xe5,0xe5,0xc1,0x7d,0x7b,0x62,0x65,0x78,0x7a,0x63,0xfe,0xa6,0x77,0x87,0x88,0xd1,0x3b,0x0a,0xbd,0xbf,0x16,0x01,0x16,0xcf,0xdb,0x01,0x27,0x25,0xd5,0xcb,0x02,0x31,0xac,0x47,0x07,0xfc,0xef,0x0c,0x4a,0x4b,0x02,0xf9,0x1f,0xcd,0x96,0x96,0xc6,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x1b,0x00,0x6a,0x40,0x39, +0x02,0x0e,0x01,0x03,0x00,0x12,0x01,0x10,0x05,0x17,0x14,0x05,0x08,0x08,0x05,0x9a,0x59,0x08,0x08,0x1b,0x0f,0x0c,0x40,0x0c,0x11,0x9a,0x59,0x0c,0x04,0x02,0x00,0x1b,0x00,0x1b,0x9a,0x59,0x00,0x12,0x15,0x15,0x18,0x7f,0x0e,0x01,0x0e,0x00,0x1a,0x02,0x06,0x14,0x08,0x18,0x8a,0x20,0x04,0x01,0x04,0x2f,0x5d,0xe1,0x39,0x39,0xc6,0xc6, +0x32,0x2f,0xc4,0x5d,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5f,0x5d,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21, +0x15,0x14,0x07,0x21,0x03,0xee,0xfc,0x7c,0xda,0xc5,0xc5,0xda,0xad,0x75,0x60,0x64,0x6f,0xe5,0x01,0x28,0xfe,0xd8,0xc1,0x02,0xc7,0x87,0x45,0xf4,0xbb,0x8d,0xfe,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0xec,0x8d,0x9c,0xf2,0x61,0x00,0x00,0x02,0x00,0x83,0xff,0xbe,0x03,0x27,0x05,0xd3,0x00,0x26,0x00,0x30,0x00,0xcf,0x40,0x1b,0x24,0x22, +0x01,0x23,0x1b,0x01,0x2c,0x0f,0x01,0x2b,0x07,0x01,0x2c,0x30,0x01,0x25,0x2b,0x01,0x25,0x26,0x01,0x11,0x20,0x0c,0x00,0x4d,0x23,0xb8,0xff,0xe0,0xb3,0x0c,0x00,0x4d,0x17,0xb8,0xff,0xf0,0x40,0x5d,0x0b,0x0c,0x00,0x4c,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x2c,0x00,0x0a,0x27,0x14,0x05,0x19,0x00,0x08,0x01,0x0e,0x03,0x08,0x08,0x0a,0x05, +0x0a,0x9a,0x59,0x05,0x00,0x1c,0x10,0x1c,0x02,0x0f,0x03,0x1c,0x1c,0x1e,0x19,0x1e,0x9a,0x59,0x19,0x2c,0x00,0x02,0x29,0x27,0x14,0x2e,0x16,0x0d,0x7e,0x02,0x1c,0x40,0x0b,0x10,0x01,0x4c,0x02,0x40,0x0c,0x10,0x01,0x4c,0x1c,0x02,0x1c,0x02,0x2e,0x7e,0x25,0x40,0x0b,0x0c,0x01,0x4c,0x25,0x25,0x32,0x12,0x20,0x7e,0x16,0x08,0x16,0x08, +0x29,0x7e,0x12,0x2f,0xe1,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x39,0x39,0x2f,0x2f,0x2b,0x2b,0x10,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x2b,0x2b, +0x2b,0x2b,0x01,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x92,0x5a,0xc8, +0x9b,0x83,0x6c,0x82,0x78,0x54,0x5c,0x47,0x91,0xe9,0x93,0x6a,0xbb,0x99,0x82,0x59,0x65,0x7a,0xa8,0x51,0xa3,0xdf,0xfe,0x67,0x65,0x71,0x8d,0x58,0x69,0x01,0xa0,0x4a,0x70,0x84,0xa4,0x38,0x9e,0x4a,0x4f,0x3c,0x35,0x49,0x4d,0x7a,0xc3,0xa3,0x51,0x53,0x8c,0x7f,0xa4,0x2b,0x9e,0x3e,0x90,0x37,0x5a,0x4e,0x6b,0xba,0xaa,0x01,0x7f,0x33, +0x6c,0x48,0x6d,0x3f,0x44,0x68,0x48,0x65,0x00,0x01,0x00,0xa4,0x01,0x98,0x02,0x9c,0x03,0x90,0x00,0x0b,0x00,0x19,0x40,0x0c,0x00,0x0e,0x40,0x06,0x03,0x09,0x42,0x09,0x20,0x03,0x01,0x03,0x2f,0x5d,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xa2,0x68,0x96,0x96, +0x68,0x68,0x92,0x92,0x01,0x98,0x92,0x68,0x67,0x97,0x96,0x68,0x68,0x92,0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x42,0x05,0x9a,0x00,0x0f,0x00,0x7c,0x40,0x38,0x08,0x08,0x0f,0x02,0x04,0x00,0x0f,0x00,0xe2,0x59,0x0f,0x03,0x06,0x02,0x12,0x00,0x00,0x02,0x10,0x0d,0x06,0x4d,0x02,0x8c,0x03,0x18,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d, +0x03,0x26,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x06,0x10,0x0d,0x06,0x4d,0x06,0x8c,0x08,0x03,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xec,0xb4,0x0b,0x06,0x4d,0x08,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0xdd,0x2b,0x2b,0x2b,0xe1,0x2b, +0xd4,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0xca,0x2f,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x42,0x80,0x6a,0x9e,0x6c,0x6c,0x8e,0x95,0x6b,0x01,0xee,0x05,0x33,0xfa,0xcd,0x05,0x33,0xfa,0xcd,0x03,0x87,0x98,0x73, +0x75,0x93,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x14,0x06,0x02,0x00,0x25,0x00,0xa2,0x40,0x09,0x0f,0x22,0x01,0x00,0x11,0x01,0x10,0x05,0x20,0xb8,0xff,0xe0,0xb4,0x0b,0x0c,0x00,0x4c,0x1a,0xb8,0xff,0xe8,0x40,0x32,0x0b,0x00,0x4d,0x1f,0x09,0x0a,0x0a,0x09,0x96,0x59,0x18,0x24,0x0a,0x95,0x14,0x30,0x18,0x10,0x95,0x59,0x18,0x01,0x01, +0x03,0x24,0x03,0x95,0x59,0x24,0x16,0x14,0x15,0x1f,0x1b,0x09,0x00,0x00,0x13,0x0d,0x83,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x1b,0x06,0x83,0x21,0xb8,0xff,0xe8,0x40,0x16,0x0c,0x06,0x4d,0x21,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x14,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x14,0x06, +0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2f,0x2b,0xe1,0x39,0x2f,0x2b,0xe1,0x11,0x39,0x2f,0xc4,0x11,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x35,0x36,0x36,0x35, +0x34,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x06,0x23,0x22,0x01,0xcd,0x4b,0x5f,0x6d,0x88,0xc8,0xb2,0x76,0x98,0x6e,0x61,0xe7,0xa4,0xdc,0xba,0xa6,0xc6,0x96,0x78,0x01,0x7a,0xde,0xb7,0x65,0x02,0xa0,0x30,0x93,0x7c,0x96,0xbb,0x14,0x82,0x14,0xa6,0x72,0x6c,0x77,0xfe, +0xcb,0xfb,0xbe,0x04,0x5a,0xc0,0xe8,0xbe,0x9c,0x7f,0xca,0x27,0x05,0x4b,0xfe,0xa1,0xb1,0xf0,0xff,0xff,0x00,0x90,0x01,0xfa,0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x04,0x01,0x38,0x00,0xff,0x05,0xe7,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x32,0x00,0x79,0x40,0x40,0x09,0xc6,0x15,0x2a,0x18,0x50,0x19,0x1a, +0x19,0x27,0x24,0x50,0x2f,0x2c,0x1e,0x50,0x1f,0x15,0x19,0x2f,0x1f,0x1f,0x2f,0x19,0x15,0x04,0x34,0x0f,0xc6,0x40,0x03,0x28,0x2c,0x1d,0x2c,0x1d,0x51,0x59,0x2c,0x2c,0x20,0x1f,0x20,0x2b,0x52,0x59,0x20,0x20,0x0c,0x06,0x0c,0xc7,0x59,0x06,0x28,0x19,0x1f,0x1f,0x12,0x00,0x12,0xc7,0x59,0x00,0x00,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f, +0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x1a,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x00,0x15,0x14, +0x00,0x33,0x32,0x00,0x35,0x34,0x00,0x13,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x90,0xf9,0xfe,0xa1,0x01,0x5f,0xf9,0xf8,0x01,0x5f,0xfe,0xa1,0xf7,0xd2,0xfe,0xd7,0x01,0x29,0xd2,0xd1,0x01,0x27,0xfe,0xd9,0x51,0x8a,0x53,0x3f,0x49, +0x34,0x75,0xd7,0x85,0x91,0x66,0x5b,0x3f,0x3f,0xfe,0xcb,0x5e,0x9e,0x55,0x5c,0xff,0x01,0x5e,0xf9,0xf9,0x01,0x5f,0xfe,0xa1,0xf9,0xf9,0xfe,0xa2,0x04,0x51,0xfe,0xd8,0xd2,0xd1,0xfe,0xd8,0x01,0x28,0xd1,0xd2,0x01,0x28,0xfc,0x8f,0xb7,0x8a,0xfe,0xbf,0x02,0xfb,0x70,0x60,0x4e,0x6f,0x13,0x03,0x0e,0x7f,0x01,0xcd,0xf5,0x7b,0x47,0x33, +0x00,0x03,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x7b,0xb9,0x00,0x12,0xff,0xe8,0x40,0x46,0x0c,0x00,0x4d,0x0c,0x18,0x0c,0x00,0x4d,0x22,0x0f,0x2d,0x01,0x0f,0x03,0x2d,0x2d,0x15,0x28,0xca,0x1d,0x1d,0x15,0x0f,0xc9,0x03,0x15,0xc9,0x40,0x09,0xc6,0x03,0x1a,0x2b,0x53,0x59,0x0f,0x1a,0x1f,0x1a, +0x2f,0x1a,0x03,0x0f,0x03,0x1a,0x1a,0x25,0x12,0x20,0x25,0x53,0x59,0x20,0x20,0x0c,0x12,0x06,0x0c,0xcb,0x59,0x00,0x12,0xcb,0x59,0x06,0x00,0xc7,0x59,0x06,0x04,0x00,0x3f,0x2b,0x2b,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x01,0x18,0x2f,0xf0,0x1a,0xe9,0x10,0xe9,0x11,0x39,0x2f, +0xe1,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xc6,0x00,0x2b,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x90,0xfe,0xc9,0xfe, +0x49,0x01,0xb7,0x01,0x37,0x01,0x36,0x01,0xb7,0xfe,0x49,0xfe,0xca,0xfe,0xee,0xfe,0x7c,0x01,0x84,0x01,0x12,0x01,0x12,0x01,0x83,0xfe,0x7d,0x03,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0x21,0x01,0xb7,0x01,0x37,0x01,0x37,0x01,0xb7,0xfe,0x49,0xfe,0xc9,0xfe,0xc9,0xfe,0x49,0x05, +0x84,0xfe,0x7c,0xfe,0xee,0xfe,0xee,0xfe,0x7d,0x01,0x83,0x01,0x12,0x01,0x12,0x01,0x84,0xfb,0xe6,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0x00,0x00,0x02,0x00,0x4c,0x03,0x04,0x05,0x74,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x79,0x40,0x49,0x0f,0x0c,0x01,0x10,0x04,0x0d,0x28,0x0b,0x0c,0x00,0x4c,0x0c, +0x28,0x0b,0x0c,0x00,0x4c,0x02,0x07,0x0c,0x03,0x16,0x01,0x05,0x09,0x03,0x13,0x11,0x15,0x16,0x15,0x54,0x59,0x0e,0x0a,0x16,0x03,0x0e,0x00,0x50,0x50,0x01,0x01,0x0f,0x01,0x01,0x0b,0x01,0x01,0x0b,0x08,0x50,0x0f,0x09,0x01,0x10,0x03,0x09,0x09,0x13,0x10,0x0e,0x12,0x50,0x13,0x13,0x15,0x42,0x15,0x20,0x13,0x01,0x13,0x2f,0x5d,0xc6, +0x2b,0x01,0x10,0xf1,0xe2,0x11,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x32,0x33,0x2f,0x5e,0x5d,0x5d,0xe1,0x33,0x00,0x3f,0x33,0x33,0x2b,0x11,0x00,0x33,0x18,0x2f,0x17,0x33,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x23,0x03,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x13,0x33,0x13,0x33,0x05,0x23,0x11,0x23,0x11, +0x23,0x35,0x21,0x05,0x74,0x6c,0x04,0xdb,0x3b,0xd6,0x04,0x66,0x7f,0xe1,0x04,0xe4,0x7e,0xfc,0xe6,0xd1,0x6f,0xce,0x02,0x0e,0x03,0x04,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x02,0x96,0xfe,0x10,0x01,0xf0,0x62,0xfd,0xcc,0x02,0x34,0x62,0x00,0x01,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x00,0x03,0x00,0x13,0xb7,0x78,0x03,0x01, +0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x13,0x02,0x0c,0xfe,0xfa,0x7f,0xdf,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x02,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x2a,0x40,0x16,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x10,0x15,0x01,0x0f, +0x03,0x01,0x15,0x03,0x15,0x03,0x19,0x18,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x62,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39, +0x29,0x29,0x3c,0x3a,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x01,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x13,0x00,0x89,0x40,0x3b,0x0e,0x11,0x12,0x01,0x02,0x0d,0x02,0x0b,0x08,0x07,0x04,0x03,0x0c,0x03,0x04,0x40,0x12,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x07,0x0b, +0x40,0x11,0x0e,0x08,0x0b,0x0b,0x08,0xbe,0x59,0x0c,0x40,0x0b,0x01,0x02,0x04,0x07,0x08,0x0b,0x0c,0x0e,0x11,0x12,0x0a,0x03,0x0d,0x03,0x0d,0x03,0x10,0x09,0x00,0x05,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x14,0x15,0x05,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x11,0x12,0x39,0x39,0x39, +0x39,0x18,0x2f,0x2f,0x12,0x17,0x39,0x00,0x2f,0x1a,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xdd,0x31,0x30,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x01,0x21,0x03,0x23,0x13,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x13,0x33,0x03,0x21,0x15,0x21,0x03, +0x21,0x04,0x94,0xfd,0xda,0xa3,0x8d,0xa4,0xfa,0x01,0x3f,0x95,0xfe,0x2c,0x02,0x1a,0x9e,0x8d,0x9f,0x01,0x06,0xfe,0xb6,0x98,0x01,0xe2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x84,0x01,0x26,0x84,0x01,0x38,0xfe,0xc8,0x84,0xfe,0xda,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0xb3,0x40,0x0e,0x13,0x03, +0x04,0x12,0x04,0x02,0x12,0x01,0x00,0x04,0x01,0x10,0x04,0x12,0xb8,0xff,0xf0,0x40,0x21,0x0c,0x00,0x4d,0x0c,0x08,0x00,0x00,0x15,0x01,0x12,0x06,0x06,0x05,0x11,0x09,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x01,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06, +0x4d,0x01,0xb8,0xff,0xd6,0x40,0x2b,0x0b,0x06,0x4d,0x01,0x01,0x15,0x04,0x05,0x13,0x03,0x91,0x59,0x13,0x13,0x07,0x00,0x0b,0x0c,0x91,0x59,0x0b,0x07,0x00,0x0b,0x91,0x2b,0x30,0x12,0x08,0x07,0x08,0x91,0x59,0x07,0x03,0x05,0x00,0x00,0x0f,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x10,0x18,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00, +0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x01,0x18,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01, +0x11,0x23,0x01,0x06,0x83,0xfd,0x09,0xfe,0x02,0xc1,0xc3,0x02,0xbc,0x03,0x9c,0xfd,0xd1,0x02,0x07,0xfd,0xf9,0x02,0x50,0xfd,0x09,0x5f,0xfe,0xa6,0x01,0x92,0xfe,0x6e,0x05,0x9a,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x01,0x91,0x02,0xd9,0xfd,0x27,0x00,0x03,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x05,0xd3,0x00,0x13,0x00,0x1b,0x00,0x23,0x01,0x03, +0x40,0x0a,0x57,0x09,0x01,0x57,0x0e,0x01,0x58,0x0d,0x01,0x1d,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0b,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x0a,0xb8,0xff,0xf0,0x40,0x21,0x0b,0x00,0x4d,0x14,0x1d,0x22,0x19,0x01,0x02,0x0b,0x0c,0x02,0x0c,0x02,0x05,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06, +0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x22,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xea,0x40,0x0b,0x0b,0x06,0x4d,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xf8,0x40,0x4b,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x06,0x0d,0x06,0x4d,0x19,0x06,0x0c,0x06,0x4d, +0x19,0x06,0x0b,0x06,0x4d,0x19,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x0c,0x0b,0x08,0x02,0x01,0x12,0x40,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x00,0x03,0x0a,0x0d,0x04,0x12,0x08,0x08,0x16,0x91,0x59,0x08,0x04,0x12,0x1f,0x91,0x59,0x12,0x13,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x17,0x39,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x2b,0x01,0x5d, +0x5d,0x00,0x5d,0x25,0x07,0x27,0x37,0x26,0x11,0x10,0x00,0x21,0x32,0x17,0x37,0x17,0x07,0x16,0x11,0x10,0x00,0x21,0x20,0x01,0x26,0x23,0x22,0x00,0x11,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x00,0x11,0x10,0x01,0x44,0x98,0x4e,0x9e,0x9e,0x01,0x75,0x01,0x43,0xea,0xa8,0x87,0x4e,0x8b,0xb8,0xfe,0x8c,0xfe,0xc8,0xfe,0xf6,0x02,0x4e,0x7e, +0xba,0xe3,0xfe,0xe7,0x62,0x03,0x15,0xfd,0x2b,0x83,0xcb,0xec,0x01,0x10,0x83,0xb6,0x41,0xbf,0xc3,0x01,0x2c,0x01,0x57,0x01,0x9f,0x81,0xa2,0x3f,0xa6,0xc8,0xfe,0xb9,0xfe,0xa1,0xfe,0x68,0x04,0xcc,0x66,0xfe,0xb8,0xfe,0xf9,0xdf,0x96,0x03,0x14,0xfc,0x9e,0x89,0x01,0x35,0x01,0x14,0x01,0x04,0x00,0x03,0x00,0x52,0x00,0xcf,0x06,0x3a, +0x03,0xd9,0x00,0x13,0x00,0x1d,0x00,0x27,0x00,0x8e,0x40,0x15,0x57,0x25,0x01,0x57,0x21,0x01,0x58,0x1b,0x01,0x58,0x17,0x01,0x14,0x00,0x23,0x1e,0x0a,0x05,0x19,0xbd,0x0f,0xb8,0xff,0xe0,0x40,0x0c,0x0c,0x06,0x4d,0x00,0x0f,0x01,0x0f,0x0f,0x29,0x23,0xbd,0x05,0xb8,0xff,0xe0,0x40,0x11,0x0c,0x06,0x4d,0x0f,0x05,0x1f,0x05,0x02,0x0b, +0x03,0x05,0x00,0x40,0x0c,0x00,0x4d,0x0a,0xb8,0xff,0xe0,0x40,0x1a,0x0c,0x00,0x4d,0x1e,0x26,0x14,0x00,0x0c,0x16,0x12,0x02,0x26,0x02,0x26,0xeb,0x59,0x02,0x1c,0x0c,0x20,0x08,0x08,0x20,0xeb,0x59,0x08,0x00,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x39,0x39,0x12,0x39,0x2b,0x2b,0x01,0x18, +0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x13,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x03,0x44,0xa8,0xd6,0xa5,0xcf,0xd8,0x9c,0xec,0x96,0xa4,0xd8,0xa6,0xd0,0xd8,0x9e,0xe2,0x5d,0x83,0xbc,0x6d,0x83,0x88,0x68,0xad,0xfe,0xef,0x84,0xbc,0x6e,0x83,0x87,0x6a,0xb0,0x01,0xe2,0xfe,0xed,0xd5,0xac,0xa2,0xe7,0xfe,0xef,0x01,0x11,0xd5,0xac,0xa1,0xe8,0x01,0x85,0xfe,0xfc,0x91,0x77,0x70,0x94,0xfe,0xfa,0x01,0x06,0x96,0x76, +0x6e,0x92,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xa4,0x00,0x0b,0x00,0x0f,0x00,0x5d,0x40,0x2e,0x03,0x0e,0x04,0x08,0x0e,0x07,0x40,0x0a,0x01,0x04,0x07,0x07,0x04,0xbe,0x59,0x0f,0x07,0x1f,0x07,0xaf,0x07,0x03,0x0d,0x03,0x07,0x0f,0x0c,0x0f,0xbe,0x59,0x0c,0x12,0x0f,0x00,0x0e,0x0a,0x07,0x01,0xbd,0x04,0x04,0x05,0x42,0x0e, +0x05,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0xcd,0x32,0x2b,0x01,0x10,0xf1,0x39,0x39,0xe1,0x32,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x21,0x35,0x21,0x04, +0x94,0xfe,0x6c,0x83,0xfe,0x6b,0x01,0x95,0x83,0x01,0x94,0xfc,0x54,0x03,0xac,0x02,0x8c,0xfe,0x6c,0x01,0x94,0x84,0x01,0x94,0xfe,0x6c,0xfc,0xf0,0x85,0x00,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcb,0x00,0x07,0x00,0x0b,0x00,0x5c,0x40,0x0b,0x08,0x01,0x01,0x07,0x10,0x0b,0x00,0x4d,0x02,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15, +0x0c,0x00,0x4d,0x00,0x03,0x01,0x10,0x03,0x03,0x03,0x00,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x03,0x07,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40,0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xc4,0x32,0x2f,0x2b,0xc4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f, +0x5f,0x5e,0x5d,0x2b,0x39,0x39,0x31,0x30,0x2b,0x5d,0x25,0x01,0x35,0x01,0x15,0x01,0x15,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x03,0x5c,0xfd,0x7e,0x02,0x82,0x28,0xfc,0x54,0x03,0xac,0xfe,0x01,0xb2,0x3a,0x01,0xe1,0x96,0xfe,0x9e,0x04,0xfe,0xc7,0xfe,0x6a,0x85,0x00,0x02,0x00,0xe8,0x00,0x00,0x04,0x94,0x04,0xcd,0x00,0x07, +0x00,0x0b,0x00,0x5c,0x40,0x10,0x08,0x00,0x01,0x02,0x10,0x0b,0x00,0x4d,0x07,0x00,0x00,0x06,0x01,0x10,0x03,0x01,0xb8,0xff,0xc0,0x40,0x10,0x0c,0x00,0x4d,0x06,0x06,0x01,0x0a,0x09,0x0a,0xbe,0x59,0x09,0x12,0x04,0x00,0x08,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x08,0x05,0x01,0x09,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x09,0x40, +0x0c,0x00,0x4d,0x09,0x2f,0x2b,0x2b,0xd4,0xc4,0x2f,0x2b,0xc4,0x32,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x32,0x2f,0x2b,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x2b,0x5d,0x01,0x01,0x35,0x01,0x35,0x01,0x35,0x01,0x13,0x21,0x35,0x21,0x04,0x6c,0xfc,0xa4,0x02,0x84,0xfd,0x7c,0x03,0x5c,0x28,0xfc,0x54,0x03,0xac,0x02,0xb2,0xfe,0x4e,0x98, +0x01,0x35,0x06,0x01,0x65,0x95,0xfe,0x1f,0xfd,0x14,0x85,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x04,0x12,0x05,0x9a,0x00,0x1b,0x00,0x9d,0x40,0x4f,0x0f,0x1b,0x01,0x00,0x14,0x01,0x10,0x05,0x01,0x08,0x0b,0x00,0x4d,0x01,0x04,0x00,0x04,0x12,0x0f,0x13,0x0f,0x04,0x01,0x0f,0x17,0x12,0x12,0x0f,0x9a,0x59,0x08,0x05,0x0b,0x0e,0x0e,0x0b, +0x9a,0x59,0x04,0x01,0x0f,0x12,0x0e,0x12,0x0e,0x09,0x14,0x00,0x03,0x09,0x12,0x03,0x03,0x07,0x0e,0x09,0x0a,0x0c,0x42,0x10,0x0c,0x0c,0x0a,0x13,0x00,0x0e,0x09,0x0a,0x13,0x42,0x13,0x13,0x05,0x0e,0x17,0x03,0x09,0x7e,0x0a,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0xe1,0x17,0x39,0x33,0x2f,0x2b,0x01, +0x10,0xe0,0x11,0x12,0x39,0x18,0x2f,0xc4,0x2b,0x01,0x10,0xf2,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x01,0x2b,0x5f,0x5e,0x5d,0x5d,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21, +0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x04,0x12,0xfe,0x9c,0x01,0x1d,0xfe,0xb2,0x01,0x4e,0xfe,0xb2,0xa4,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x01,0x23,0xfe,0xa0,0xc0,0xfa,0x1c,0x13,0x04,0x0d,0x24,0xfc,0x05,0x9a,0xfd,0x70,0x8b,0xcf,0x8b,0xfe,0xdb,0x01,0x25,0x8b,0xcf,0x8b, +0x02,0x90,0xfd,0xfe,0x3a,0x35,0x2a,0x4b,0x01,0xfc,0x00,0x01,0x00,0xa6,0xfe,0x74,0x04,0x18,0x04,0x00,0x00,0x18,0x00,0x5d,0x40,0x13,0x0f,0x08,0x01,0x10,0x05,0x03,0x14,0x00,0x89,0x01,0x01,0x17,0x8a,0x14,0x10,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xfa,0xb7,0x0b,0x06,0x4d,0x14,0x0e,0x0a,0x8a,0x0b,0xb8,0xff,0xf8,0x40,0x16,0x0d,0x06, +0x4d,0x0b,0x0c,0x16,0x0f,0x0b,0x08,0x04,0x11,0x06,0x11,0x99,0x59,0x06,0x16,0x00,0x15,0x2f,0x1a,0x01,0x5d,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x2f,0x3f,0xc4,0x01,0x2f,0x2b,0xe1,0x32,0x2f,0x2b,0x2b,0xe1,0x39,0x2f,0xe1,0x12,0x39,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11, +0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x04,0x18,0xaa,0x17,0x05,0x54,0xc3,0xa7,0x47,0x04,0xa3,0xa3,0x8a,0x6f,0x79,0x97,0xa6,0x48,0x60,0xbf,0x7b,0xfe,0x10,0x05,0x8c,0xfd,0x8e,0x7f,0x96,0xac,0x91,0x02,0x4a,0xfd,0x09,0xbc,0x00,0x02,0x00,0x4e,0xff,0xe8,0x04,0x04,0x05,0xd1,0x00,0x16,0x00,0x21, +0x00,0x6e,0x40,0x0f,0x06,0x1a,0x01,0x0f,0x02,0x01,0x10,0x04,0x05,0x05,0x12,0x17,0x0b,0x8a,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x01,0x23,0x1c,0x89,0x12,0xb8,0xff,0xe8,0x40,0x20,0x0c,0x06,0x4d,0x12,0x17,0x01,0x19,0x15,0x19,0x9a,0x59,0x15,0x10,0x0f,0x05,0x01,0x0d,0x03,0x05,0x05,0x03,0x08,0x03,0x9a,0x59,0x08, +0x0f,0x1f,0x9a,0x59,0x0f,0x13,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x33,0x01,0x18,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x33,0x12,0x39,0x19,0x2f,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x01,0x33,0x12,0x21,0x22,0x07,0x37,0x36,0x33,0x32,0x12,0x11,0x14,0x02,0x00,0x23, +0x22,0x26,0x35,0x10,0x00,0x33,0x32,0x13,0x26,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x03,0x5e,0x04,0x1a,0xfe,0xdc,0x7b,0x7b,0x27,0x77,0x81,0xc2,0xc1,0x82,0xfe,0xf2,0xb8,0xa6,0xc8,0x01,0x27,0xe3,0xb2,0x48,0x3a,0xac,0xa0,0xd6,0x71,0x61,0x97,0xd8,0x03,0x68,0x01,0xdc,0x50,0x9c,0x41,0xfe,0xf8,0xfe,0xdd,0xdd,0xfe,0x20, +0xfe,0xff,0xd5,0xb5,0x01,0x10,0x01,0x8e,0xfe,0xa4,0xd1,0xfe,0xc6,0xd2,0x7a,0x8d,0x01,0x3f,0x00,0x01,0x00,0x33,0xfe,0x2b,0x04,0xba,0x05,0x9a,0x00,0x0b,0x00,0x46,0x40,0x25,0x03,0x0a,0x01,0x04,0x09,0x01,0x03,0x08,0x01,0x10,0x03,0x06,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x04,0x06,0x07,0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00, +0x0b,0x00,0x0b,0x91,0x59,0x00,0x1b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0xba,0xfb,0x79,0x02,0xa4,0xfd,0x81,0x04,0x3a,0xfc,0xbc,0x02,0x52, +0xfd,0x8f,0x03,0x8b,0xfe,0x2b,0x4e,0x03,0x73,0x03,0x54,0x5a,0x9a,0xfc,0xf0,0xfc,0xd4,0x00,0x00,0x01,0x00,0xbc,0xfe,0x2b,0x05,0x52,0x05,0x9a,0x00,0x07,0x00,0x3b,0x40,0x0d,0x00,0x7e,0x01,0x18,0x0d,0x06,0x4d,0x01,0x01,0x09,0x04,0x7e,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x05, +0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00,0x1b,0x00,0x3f,0xc4,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x05,0x52,0xa8,0xfc,0xba,0xa8,0x04,0x96,0xfe,0x2b,0x06,0xd5,0xf9,0x2b,0x07,0x6f,0x00,0x00,0x01,0x00,0xbe,0xfe,0x1a,0x03,0x94,0x06,0x02,0x00,0x15, +0x00,0x43,0x40,0x0a,0x00,0x0e,0x05,0x8a,0x0f,0x0f,0x0b,0x42,0x0b,0x0f,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe0,0x40,0x13,0x0b,0x06,0x4d,0x0f,0x0f,0x17,0x16,0x13,0x02,0x9a,0x59,0x13,0x01,0x08,0x0d,0x9a,0x59,0x08,0x1c,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x2b,0x2b,0xc6,0x2b,0x01, +0x10,0xf1,0xe2,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x03,0x94,0x30,0x3f,0xaa,0xbb,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xbb,0x8a,0x4c,0x2c,0x05,0x5c,0x1b,0xd9,0xfa,0xd6,0x9e,0xbc,0x13,0x93,0x1a,0xd9,0x05,0x27,0xa0,0xbc,0x12,0x00,0x02,0x00,0x52, +0x02,0xba,0x02,0xb0,0x05,0xb0,0x00,0x15,0x00,0x1f,0x00,0x6e,0x40,0x42,0x00,0x13,0x01,0x0f,0x06,0x01,0x10,0x05,0x0b,0x16,0x54,0x59,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x09,0x03,0x0b,0x0b,0x12,0x1c,0x00,0x24,0x02,0x1c,0x05,0x1c,0x54,0x59,0x05,0x25,0x0f,0x30,0x0d,0x11,0x48,0x0f,0x0f,0x0d,0x12,0x0d,0x52,0x59,0x12,0x04,0x0b, +0x02,0x1f,0xc2,0xc0,0x00,0x01,0xd0,0x00,0x01,0x00,0x21,0x0f,0x0f,0x19,0xc2,0x08,0x2f,0xe1,0x39,0x2f,0x10,0xde,0x5d,0x71,0xe1,0x32,0x32,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x01,0x23,0x35,0x23,0x06,0x23, +0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x07,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0xb0,0x81,0x04,0x4f,0x98,0x6d,0x85,0xf8,0xe5,0x97,0x88,0x76,0x6f,0x9b,0x7e,0x8e,0x81,0xb4,0xa8,0x4d,0x40,0x52,0x7d,0x02,0xcd,0x64,0x77,0x77,0x5d,0xca,0x21,0x1f,0xa8,0x56,0x80,0x46,0x90, +0x82,0x6b,0x19,0x17,0x6f,0x33,0x40,0x7a,0x55,0x00,0x00,0x02,0x00,0x4e,0x02,0xb8,0x03,0x23,0x05,0xae,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x1a,0x00,0x12,0x52,0x59,0x00,0x25,0x06,0x0c,0x52,0x59,0x06,0x04,0x15,0xc8,0x90,0x09,0xb0,0x09,0xc0,0x09,0x03,0x09,0x19,0x0f,0xc8,0x03,0x2f,0xe1,0x10,0xde,0x71,0xe1,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb4,0xa7,0xbf,0xcd,0xa9,0xa3,0xbc,0xc7,0xa0,0x6a,0x7d,0x77,0x6e,0x69,0x7b,0x79,0x02,0xb8,0xc9,0xac,0xb5,0xcc,0xc7,0xab,0xb2,0xd2,0x02,0x88,0x90,0x7f,0x7c,0x8c,0x8f,0x7b, +0x7e,0x8f,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x00,0x1b,0x00,0xc9,0x40,0x0c,0x59,0x19,0x01,0x59,0x11,0x01,0x10,0x10,0x0c,0x00,0x4d,0x1a,0xb8,0xff,0xf0,0x40,0x27,0x0c,0x00,0x4d,0x0c,0x08,0x0c,0x00,0x4d,0x02,0x08,0x0c,0x00,0x4d,0x1a,0x18,0x02,0x10,0x12,0x0c,0x02,0x0c,0x02,0x04,0x0a,0x1b,0x1b,0x18,0x08,0x0d, +0x06,0x4d,0x18,0x08,0x0c,0x06,0x4d,0x18,0x7d,0x04,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xdc,0x40,0x40,0x0b,0x06,0x4d,0x00,0x04,0x10,0x04,0x02,0x0b,0x03,0x04,0x04,0x1d,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x7d,0x0f,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08, +0x0c,0x06,0x4d,0x12,0x12,0x0b,0x06,0x4d,0x12,0x15,0x07,0x99,0x59,0x15,0x04,0x02,0x0c,0x0e,0x10,0x04,0x00,0x1b,0x00,0x1b,0x99,0x59,0x00,0x12,0x2f,0x1d,0x01,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xc4,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b, +0x2b,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x2b,0x2b,0x01,0x2b,0x2b,0x00,0x5d,0x5d,0x21,0x21,0x35,0x24,0x11,0x34,0x00,0x23,0x22,0x00,0x15,0x10,0x01,0x15,0x21,0x35,0x05,0x24,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x05,0x25,0x05,0xa9,0xfd,0xf9,0x01,0x59,0xfe,0xea,0xdb,0xde,0xfe, +0xe6,0x01,0x5a,0xfd,0xf8,0x01,0x5c,0xfe,0xa4,0x01,0x72,0x01,0x2e,0x01,0x35,0x01,0x70,0xfe,0xa5,0x01,0x5b,0x93,0xff,0x01,0x7a,0xf5,0x01,0x1d,0xfe,0xe4,0xf5,0xfe,0x86,0xff,0x00,0x93,0x94,0x01,0xeb,0x01,0x93,0x01,0x39,0x01,0x68,0xfe,0x9b,0xfe,0xc5,0xfe,0x6e,0xed,0x01,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18, +0x00,0x23,0x00,0x2a,0x00,0x35,0x00,0xcd,0x40,0x21,0x56,0x19,0x01,0x51,0x12,0x01,0x59,0x07,0x01,0x58,0x1f,0x01,0x58,0x0a,0x01,0x0f,0x40,0x0b,0x00,0x4d,0x5f,0x07,0x01,0x07,0x07,0x00,0x83,0x24,0x08,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xc0,0x40,0x59,0x0b,0x0c,0x00,0x4c,0x24,0x24,0x37,0x0b,0x14,0x1d,0x2a,0x04,0x01,0x84,0x2b,0x2b, +0x37,0x11,0x00,0x18,0x01,0x18,0x18,0x30,0x83,0x11,0x10,0x0c,0x06,0x4d,0x0f,0x11,0x01,0x0b,0x03,0x11,0x2c,0x14,0x00,0x24,0x24,0x00,0x95,0x59,0x24,0x24,0x04,0x18,0x40,0x09,0x0c,0x48,0x18,0x18,0x16,0x1b,0x16,0x20,0x1e,0x27,0x20,0x27,0x95,0x59,0x20,0x10,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x0b,0x33, +0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x12,0x39,0x39,0x18,0x2f,0x33,0x2f,0x2b,0x11,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0xe1,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x17, +0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x32,0x2f,0x5d,0x30,0x31,0x00,0x2b,0x01,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07, +0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x56,0xfd,0x2b,0x03,0xb0,0x99,0xb1,0x90,0x84,0xe2,0xfe,0xf2,0x71,0x04,0x91,0xf2,0x99,0xaf,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xe8,0x44,0x04,0x74,0xf0,0xca,0xde,0xa8,0x02,0x85,0x77,0x74,0xa6,0x13,0xa4,0xcb,0x8b,0x89,0x6a,0x5a,0x77,0xa4,0x01,0xd7,0xab, +0xba,0x72,0x9a,0x62,0xe5,0xe5,0xa1,0x87,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xc8,0xc8,0xfe,0xfb,0xe8,0x37,0x90,0x9c,0xa4,0x88,0xc8,0x3f,0x0c,0x08,0x52,0x5f,0x49,0x59,0xa9,0x00,0x03,0x00,0x31,0xff,0xae,0x04,0x96,0x04,0x66,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0xd4,0xb6,0x58,0x1c,0x01,0x57,0x1b,0x01,0x1d,0xb8,0xff, +0xf0,0x40,0x2b,0x0b,0x0c,0x00,0x4c,0x1d,0x14,0x22,0x19,0x0b,0x08,0x12,0x01,0x04,0x03,0x0d,0x13,0x00,0x00,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06,0x4d,0x03,0x83,0x00,0x22,0x10,0x22,0x02,0x0b,0x03,0x22,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x22,0xb8,0xff, +0xde,0x40,0x47,0x0b,0x06,0x4d,0x22,0x22,0x25,0x19,0x07,0x0d,0x06,0x4d,0x19,0x0a,0x0c,0x06,0x4d,0x19,0x83,0x09,0x0a,0x0d,0x11,0x0d,0x06,0x4d,0x0d,0x0c,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x14,0x1b,0x1c,0x1d,0x04,0x1f,0x16,0x01,0x08,0x0b,0x12,0x04,0x10,0x0a,0x09,0x06,0x00,0x13,0x10,0x40,0x10,0x16,0x95,0x59,0x10, +0x10,0x06,0x1f,0x95,0x59,0x06,0x16,0x2f,0x25,0x01,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x32,0x10,0xce,0x32,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x01,0x2f,0x2b,0x2b,0x2b,0xce,0x32,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x32,0x11,0x12,0x17,0x39, +0x11,0x12,0x39,0x39,0x31,0x30,0x00,0x2b,0x5d,0x5d,0x01,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x37,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x96,0xa8,0x62,0xfe,0xea,0xe8,0xc0,0x7e,0x91,0x52,0x95,0x66,0x01,0x1c,0xf0,0xb8,0x7c, +0xa2,0xfe,0xf3,0x4f,0x88,0x9f,0xb7,0x32,0x02,0x41,0xfe,0x04,0x57,0x86,0xa3,0xab,0x04,0x18,0xb4,0x8a,0xd0,0xfc,0xfe,0xda,0x66,0xa0,0x4e,0xa4,0x89,0xcb,0x01,0x02,0x01,0x22,0x62,0xb0,0xfe,0xde,0x4a,0xd7,0xbd,0x84,0x5c,0x01,0xcc,0xfd,0xd8,0x4c,0xd0,0xbe,0x86,0x00,0x00,0x02,0x00,0x8f,0xfe,0x52,0x03,0x3d,0x04,0x16,0x00,0x23, +0x00,0x33,0x00,0x45,0x40,0x25,0x0f,0x12,0x01,0x10,0x05,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x00,0x2c,0x24,0x2c,0xb0,0x5b,0x24,0x10,0x20,0xef,0x03,0x30,0xaf,0x70,0x28,0x01,0x28,0x28,0x11,0x19,0x84,0x0a,0x0a,0x34,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0xe1,0xd4,0xe1,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b, +0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x01,0x16,0x16,0x15,0x14,0x0e,0x04,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x27,0x13,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x02,0x71,0x09,0x0e,0x33,0x4c,0x5a,0x4c,0x33,0x25,0x40, +0x54,0x2f,0xa9,0x7c,0x99,0xa4,0x4c,0x86,0x64,0x3b,0x34,0x4f,0x5c,0x4f,0x34,0x16,0x0b,0x47,0x2c,0x22,0x21,0x21,0x21,0x2d,0x2d,0x21,0x21,0x21,0x22,0x02,0x76,0x1a,0x53,0x29,0x40,0x67,0x5a,0x53,0x55,0x5d,0x38,0x30,0x4a,0x32,0x19,0x85,0xb0,0x60,0x28,0x4f,0x76,0x4e,0x4a,0x74,0x61,0x54,0x53,0x5a,0x36,0x2e,0x4b,0x1a,0x01,0xa0, +0x20,0x1f,0x2f,0x2e,0x20,0x21,0x21,0x20,0x2e,0x2f,0x1f,0x20,0x00,0x02,0x00,0xb4,0xfe,0x6a,0x01,0x92,0x04,0x16,0x00,0x0b,0x00,0x0f,0x00,0x3d,0x40,0x12,0x0d,0x0c,0x0e,0x0f,0xff,0x3a,0x0c,0x7d,0x0d,0x0d,0x09,0xaf,0x0f,0x03,0x01,0x10,0x03,0x03,0xb8,0xff,0xe8,0x40,0x0e,0x0d,0x06,0x4d,0x03,0x0e,0x00,0x40,0x06,0x00,0xb0,0x5b, +0x06,0x10,0x0c,0x00,0x2f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xce,0x01,0x2f,0x2b,0x5f,0x5e,0x5d,0xe1,0x39,0x2f,0xe1,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x13,0x33,0x01,0x23,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x2b,0xac,0x13,0x86,0x03,0x3a,0x40,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x40, +0xfb,0x30,0x04,0x06,0x00,0x01,0x00,0xe8,0x00,0xfe,0x04,0x94,0x03,0x31,0x00,0x05,0x00,0x2c,0xb2,0x01,0xbd,0x00,0xb8,0xff,0xc8,0xb4,0x0c,0x06,0x4d,0x00,0x03,0xb8,0xff,0xe0,0x40,0x0b,0x0c,0x06,0x4d,0x03,0x00,0x03,0x04,0x03,0xbe,0x59,0x04,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x01,0x2f,0x2b,0x2f,0x2b,0xe1,0x31,0x30,0x25,0x23, +0x11,0x21,0x35,0x21,0x04,0x94,0x84,0xfc,0xd8,0x03,0xac,0xfe,0x01,0xae,0x85,0x00,0x00,0x01,0x00,0x7b,0x00,0x00,0x04,0x5a,0x05,0xec,0x00,0x08,0x00,0x41,0x40,0x22,0x0a,0x03,0x01,0x0b,0x02,0x01,0x03,0x0f,0x01,0x01,0x10,0x05,0x01,0x02,0x00,0x03,0x03,0x04,0x08,0x00,0x04,0x07,0x01,0x05,0x04,0xd9,0x59,0x05,0x05,0x01,0x00,0x00, +0x01,0x12,0x00,0x3f,0x3f,0x11,0x39,0x2f,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x01,0x01,0x23,0x01,0x23,0x35,0x21,0x01,0x01,0x04,0x5a,0xfe,0x7b,0x71,0xfe,0xc1,0xaa,0x01,0x08,0x01,0x13,0x01,0x4e,0x05,0xec,0xfa,0x14,0x02,0xee,0x78,0xfd,0x6b,0x05, +0x1b,0x00,0x00,0x01,0x00,0x5e,0xfe,0xea,0x03,0xb8,0x05,0x9a,0x00,0x1c,0x00,0x89,0x40,0x12,0x79,0x13,0x01,0x79,0x11,0x01,0x77,0x09,0x01,0x77,0x03,0x01,0x0a,0x30,0x0c,0x00,0x4d,0x04,0xb8,0xff,0xf0,0x40,0x3c,0x0c,0x00,0x4d,0x0f,0x06,0x01,0x09,0x06,0x06,0x04,0x08,0x05,0x04,0x03,0x09,0x13,0x16,0x17,0x09,0x04,0x12,0x00,0x14, +0x20,0x14,0x30,0x14,0x03,0x0a,0x03,0x14,0x14,0x12,0x12,0x0d,0x1c,0x0d,0x08,0x05,0x13,0x16,0x16,0x13,0x95,0x59,0x16,0x16,0x1d,0x1a,0x1a,0x02,0x95,0x59,0x1a,0x03,0x0b,0x10,0x95,0x59,0x0b,0x00,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x01,0x18,0x2f,0x2f,0x12,0x39,0x11,0x33, +0x2f,0x5f,0x5e,0x5d,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x33,0x2f,0x5e,0x5d,0x31,0x30,0x2b,0x00,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x26,0x23,0x22,0x07,0x07,0x33,0x15,0x23,0x03,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x13,0x23,0x35,0x33,0x37,0x36,0x36,0x33,0x32,0x17,0x03,0xb8,0x30,0x3c,0x92,0x18,0x1f,0xa6,0xbb,0x5a, +0x3a,0xfe,0xde,0x1f,0x3b,0x24,0x32,0x96,0x28,0x5b,0x67,0x7c,0x1c,0x11,0xaf,0x86,0x40,0x34,0x04,0xf2,0x1c,0xa0,0xd0,0x8a,0xfd,0x78,0xfe,0x5e,0x10,0x8f,0x15,0x01,0x24,0x02,0x7c,0x8a,0xdb,0x83,0x9e,0x13,0x00,0x02,0x00,0xd1,0x00,0xf0,0x04,0xaa,0x03,0xc0,0x00,0x14,0x00,0x29,0x00,0x97,0xb9,0x00,0x16,0xff,0xe0,0xb3,0x09,0x0c, +0x48,0x01,0xb8,0xff,0xe0,0x40,0x3a,0x09,0x0c,0x48,0x20,0x20,0x09,0x0c,0x48,0x0b,0x20,0x09,0x0c,0x48,0x1e,0x18,0x18,0x26,0xbe,0x59,0x18,0x1c,0x40,0x22,0x1c,0xbe,0x59,0x15,0x00,0x22,0x01,0x0c,0x03,0x22,0x0d,0x09,0x03,0x03,0x11,0xbe,0x59,0x03,0x07,0x40,0x0d,0x07,0xbe,0x59,0x14,0x00,0x0d,0xa0,0x0d,0xb0,0x0d,0x03,0x0c,0x03, +0x0d,0xb8,0xff,0xc0,0x40,0x14,0x0e,0x11,0x48,0x0d,0x29,0x15,0x14,0xbd,0x00,0x1f,0x1e,0x09,0xbd,0x0a,0x2a,0x2b,0x0a,0x00,0xff,0x3a,0x2b,0x01,0x10,0xe1,0x39,0x39,0x10,0xe1,0x39,0x39,0x00,0x18,0x2f,0x2b,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x10,0xd4,0x5f,0x5e,0x5d,0xc4,0x2b,0x00,0x1a, +0x18,0x10,0xcc,0x2b,0x00,0x10,0x18,0xc4,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x01,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x13,0x06,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x04,0xaa,0x07,0x93,0x7e,0x6d,0x9c, +0x61,0x3e,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x87,0x07,0x93,0x7e,0x6d,0x9c,0x5e,0x41,0x8c,0x06,0x87,0x05,0x95,0x7f,0x6a,0x81,0x84,0x41,0x3d,0x4a,0x02,0x03,0xc0,0x92,0xa2,0x6c,0x44,0xb0,0x90,0xa4,0x58,0x5a,0x62,0x50,0xfe,0x65,0x93,0xa2,0x6c,0x42,0xae,0x8f,0xa6,0x58,0x5b,0x64,0x4f,0x00,0x02, +0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x00,0x05,0x00,0x0d,0x00,0x3f,0x40,0x22,0x00,0x0d,0x01,0x00,0x0c,0x01,0x0f,0x07,0x01,0x0f,0x06,0x01,0x10,0x04,0x0d,0x06,0x02,0x05,0x05,0x0f,0x02,0x09,0x03,0x03,0x05,0x02,0x01,0x0d,0x01,0x0d,0x99,0x59,0x01,0x12,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x01,0x2f,0x12, +0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x04,0xf8,0xfb,0x3b,0x02,0x09,0xae,0x02,0x0e,0xd7,0xfe,0x97,0x21,0x05,0x04,0x06,0x22,0xfe,0xa0,0x4c,0x05,0x4e,0xfa,0xb2,0x4c,0x03,0xc8,0x58,0x36,0x30,0x5e,0xfc,0x38,0x00,0x02,0x00,0x5c, +0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x15,0x06,0x0a,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x02,0x08,0x80,0x0a,0x0a,0x06,0xf0,0x0b,0x0f,0x08,0x01,0x08,0x2f,0x5d,0x33,0xf1,0xc0,0x2f,0x1a,0x10,0xdc,0x32,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x39,0x39,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, +0x01,0x33,0x01,0x03,0xb2,0xa8,0xfe,0xd5,0x01,0x2b,0xaa,0xfe,0xcd,0x54,0xa6,0xfe,0xd5,0x01,0x2b,0xa6,0xfe,0xd1,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0xfe,0xb0,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x02,0x00,0x5a,0x00,0xc8,0x03,0xb4,0x03,0x70,0x00,0x05,0x00,0x0b,0x00,0x2b,0x40,0x17,0x07,0x0b,0x02,0x04,0x03,0x00,0xf0,0x04, +0x02,0x80,0x09,0x06,0xf0,0x0a,0x50,0x08,0x70,0x08,0x02,0x2f,0x08,0x01,0x08,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x1a,0xdc,0xc4,0xe1,0x32,0x00,0x2f,0xc4,0x39,0x39,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x03,0xb4,0xfe,0xd3,0xa5,0x01,0x2e,0xfe,0xd2,0xa5,0x58,0xfe,0xd5,0xaa,0x01,0x34,0xfe,0xcc,0xaa, +0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0xfe,0xaa,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x8c,0xff,0xee,0x05,0x52,0x00,0xcd,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x56,0xb2,0x03,0xaf,0x09,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfb,0x40,0x27,0x0b,0x06,0x4d,0x09,0x0e,0x15,0x0f,0x1b,0x42,0x21,0xaf,0x1b,0x1b, +0x24,0x15,0xaf,0x0f,0x0f,0x25,0x24,0x0c,0x12,0x18,0x1e,0x04,0x00,0x06,0x00,0x06,0xb0,0x5b,0x00,0x13,0x40,0x25,0x01,0x2f,0x25,0x01,0x5d,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x31,0x30,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x04,0xe4,0x2e,0x3f,0x3f,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x41,0x41,0x2e,0x2d,0x41,0x41,0xfd,0xdd,0x2e,0x3e,0x3e,0x2e,0x2d,0x41,0x40,0x12,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40, +0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x40,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x1f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x23,0x11,0x10,0x06,0x07,0x3e,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x2d,0x01,0x59,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x1a,0x10,0x06,0x07,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x0a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07, +0x00,0xd8,0x01,0xab,0x01,0x58,0x00,0x13,0x40,0x0b,0x02,0x0a,0x22,0x18,0x03,0x09,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x12,0x05,0xb2,0x00,0x18,0x00,0x23,0x00,0xb7,0x40,0x1d,0x06,0x18,0x0b,0x00,0x4d,0x14,0x11,0x00,0x00,0x25,0x13,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08, +0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x7e,0x19,0xb8,0xff,0xd0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xd8,0x40,0x4f,0x0b,0x06,0x4d,0x00,0x19,0x01,0x0b,0x03,0x19,0x19,0x25,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x08,0x10,0x0d,0x06, +0x4d,0x08,0x10,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x14,0x15,0x91,0x59,0x14,0x10,0x00,0x14,0x91,0x2b,0x30,0x0b,0x1c,0x91,0x59,0x0b,0x04,0x10,0x11,0x91,0x59,0x10,0x03,0x05,0x22,0x91,0x59,0x05,0x13,0x00,0x18,0x91,0x59,0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00, +0x18,0x2f,0x2b,0x01,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0xc4,0x31,0x30,0x2b,0x21,0x21,0x22,0x07,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x23, +0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x12,0xfd,0x30,0x10,0x7a,0x62,0x54,0xfe,0xc8,0xfe,0x94,0x01,0x7b,0x01,0x45,0x5a,0x58,0x70,0x02,0x02,0xb0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xa0,0x6c,0xe5,0xfe,0xe5,0x01,0x17,0xe3,0x74,0x0e,0x0a,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x0a,0x0e,0x98,0xfe,0x23,0x97, +0xfe,0x0a,0x08,0x04,0x5e,0x1c,0xfe,0xb4,0xfe,0xfd,0xfe,0xfe,0xfe,0xb6,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x1c,0x00,0x23,0x00,0x2f,0x00,0xfb,0xb3,0x58,0x07,0x01,0x0b,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x0d,0x0c,0x00,0x4d,0x06,0x40,0x0f,0x12,0x48,0x06,0x06,0x1c,0x83,0x1d,0xb8, +0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x1d,0xb8,0xff,0xd0,0xb3,0x0c,0x01,0x4d,0x1d,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1d,0xb8,0xff,0xee,0x40,0x1b,0x0b,0x06,0x4d,0x1d,0x40,0x0c,0x00,0x4d,0x00,0x1d,0x01,0x0b,0x1d,0x1d,0x31,0x0b,0x17,0x23,0x03,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x2d,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x2d,0xb8, +0xff,0xc0,0x40,0x51,0x0c,0x00,0x4d,0x2d,0x2d,0x31,0x27,0x0a,0x0d,0x06,0x4d,0x27,0x0a,0x0c,0x06,0x4d,0x27,0x0a,0x0b,0x06,0x4d,0x27,0x83,0x11,0x10,0x0d,0x06,0x4d,0x11,0x0d,0x0c,0x06,0x4d,0x11,0x1f,0x0b,0x06,0x4d,0x11,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x0c,0x03,0x06,0x06,0x01,0x04,0x1d,0x00,0x95,0x59,0x1d,0x1d,0x04,0x17, +0x24,0x14,0x20,0x19,0x19,0x20,0x95,0x59,0x19,0x10,0x0b,0x2a,0x0e,0x09,0x04,0x09,0x04,0x95,0x59,0x09,0x16,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x32,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xf1,0xc0,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x00,0x35,0x10,0x00,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x07,0x21,0xfd,0x2b,0x03,0xb1,0x9a,0xaf,0x90,0x88,0xdd,0xfe,0xf2,0x70,0x04,0x83,0xfe,0xe3,0xe5,0xfe,0xf3,0x01,0x1c,0xf0,0x01,0x26,0x6c,0x04,0x77,0x01,0x0a,0xc4,0xda,0xa8,0x02,0x86,0x74,0x78,0xa7,0x10,0xfe,0x10,0x9e,0xb8,0xb8,0x9c,0x9f,0xad,0xad,0x01,0xd7,0xab,0xba, +0x72,0x9a,0x62,0xed,0xed,0x01,0x1e,0xec,0x01,0x02,0x01,0x24,0xeb,0xeb,0xfe,0xf9,0xe2,0x33,0x8e,0x9e,0xab,0x81,0x01,0x2c,0xd9,0xbf,0xb4,0xd0,0xcd,0xbd,0xc2,0xd0,0x00,0x01,0x00,0x00,0x01,0xfa,0x04,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35, +0x21,0x04,0x00,0xfc,0x00,0x04,0x00,0x01,0xfa,0x81,0x00,0x01,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x00,0x03,0x00,0x0f,0xb6,0x02,0x01,0xeb,0x59,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x08,0x00,0xf8,0x00,0x08,0x00,0x01,0xfa,0x81,0x00,0x02,0x00,0x6a,0x03,0xf4,0x02,0x9c,0x05,0xb2,0x00,0x03, +0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x9c,0x6f,0x93,0x8d,0xbb,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42, +0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x13,0x03,0x02,0x06,0xb3,0x40,0x07,0x04,0x00,0xb4,0x02,0x04,0xb4,0x80,0x10,0x06,0x20,0x06,0x02,0x06,0x2f,0x5d,0x1a,0xe9,0xdc,0xe9,0x00,0x3f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c, +0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x18,0x40,0x0c,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0xaf,0x02,0x01,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05, +0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x14,0x40,0x09,0x02,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x02,0x2f,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0x00,0x03,0x00,0xe8,0x00,0x70,0x04,0x94, +0x04,0x3a,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x4b,0x40,0x25,0x15,0x0f,0xd6,0x5b,0x15,0x15,0x0c,0x0d,0x0c,0xbe,0x59,0x0d,0x00,0x42,0x00,0x06,0xd6,0x5b,0x00,0x0f,0x0d,0x01,0x0d,0x03,0x0d,0x0b,0x0e,0x17,0x12,0x0c,0x42,0x0c,0x08,0x03,0x17,0xd3,0x12,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x12,0x2f,0x2b,0xe1,0x39,0x39,0xc6,0x2b, +0x01,0x10,0xe2,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0xc6,0x2b,0x2b,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x01,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x06,0x02,0xc4,0x2c,0x3c,0x3a,0x2e,0x67,0x3d,0x01,0xa6,0xfc,0x54,0x03,0xac,0xfe,0x2c,0x2c, +0x3e,0x3c,0x2e,0x65,0x3a,0x03,0x64,0x3d,0x2c,0x2d,0x40,0x6b,0x2f,0x3c,0xfe,0xae,0x86,0xfd,0xd8,0x3c,0x2b,0x2d,0x42,0x6d,0x2d,0x3c,0x00,0x02,0x00,0x6c,0x00,0x00,0x04,0x40,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x28,0x40,0x11,0x03,0x08,0x06,0x00,0x00,0x01,0x05,0x03,0x01,0x12,0x08,0x06,0x03,0x00,0x00,0x0b,0x03,0x2f,0x12,0x39, +0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x3d,0x2f,0x18,0xc4,0xc4,0x3d,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33,0x09,0x03,0x04,0x40,0xfe,0x3b,0x4c,0xfe,0x3d,0x01,0xc3,0x4c,0x01,0x3f,0xfe,0x9c,0xfe,0x9c,0x01,0x64,0x02,0xcd,0xfd,0x33,0x02,0xcb,0x02,0xcf,0xfd,0x33,0x02,0x3f,0xfd,0xc1,0xfd,0xbf,0xff,0xff,0x00,0x0e, +0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x4f,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f, +0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0xfe,0xc8,0x00,0x00,0x02,0xb2,0x05,0x9a,0x00,0x03,0x00,0x0e,0xb5,0x00,0x03,0x02,0x12,0x00,0x02,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01, +0x02,0xb2,0xfc,0xa6,0x90,0x03,0x5b,0x05,0x9a,0xfa,0x66,0x05,0x9a,0x00,0x00,0x01,0x00,0x66,0xff,0xe8,0x03,0xf6,0x05,0xb2,0x00,0x25,0x00,0xcb,0x40,0x0c,0x02,0x13,0x01,0x0b,0x00,0x01,0x02,0x22,0x01,0x10,0x04,0x0f,0xb8,0xff,0xe8,0x40,0x65,0x0b,0x00,0x4d,0x03,0x10,0x0b,0x0c,0x00,0x4c,0x13,0x14,0x00,0x25,0x21,0x1e,0x04,0x07, +0x07,0x04,0x9a,0x59,0x07,0x0e,0x40,0x1c,0x19,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x0f,0x0e,0x5f,0x0e,0x7f,0x0e,0x8f,0x0e,0x04,0x0b,0x03,0x0e,0x0e,0x11,0x23,0x00,0x14,0x10,0x14,0x02,0x0c,0x04,0x14,0x14,0x16,0x11,0x16,0x9a,0x59,0x11,0x07,0x00,0x25,0x10,0x25,0x02,0x0c,0x04,0x25,0x25,0x23,0x02,0x23,0x9a,0x59,0x02,0x19,0x1f,0x1a, +0x14,0x00,0x00,0x27,0x19,0x1c,0x1e,0x21,0x04,0x1d,0x8a,0x09,0x0c,0x06,0x04,0x07,0x0b,0x0e,0x04,0x09,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x17,0x33,0xde,0xc4,0x10,0xe1,0x17,0x32,0x12,0x39,0x2f,0xd4,0xd6,0xc4,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e, +0x5d,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0x2b,0x11,0x12,0x00,0x39,0x39,0x11,0x33,0x11,0x33,0x30,0x31,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06, +0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x21,0x32,0x37,0x03,0xf6,0x85,0x95,0xfe,0x55,0x52,0x79,0x6c,0x04,0x06,0x6e,0x83,0x33,0x01,0x1b,0xca,0x89,0x6c,0x72,0x8e,0x7d,0xc3,0x27,0x01,0xf1,0xfd,0xf9,0x08,0x07,0x02,0x08,0xfe,0x08,0x48,0x01,0x16,0x83,0x8d,0x32,0x4a,0x01,0xfa,0x8c,0x1f,0x2e,0x30,0x3c,0x8c,0xf0,0x01, +0x0f,0x38,0xa2,0x4e,0xc9,0xaa,0x8c,0x63,0x56,0x8c,0xfe,0x92,0x57,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0e,0x00,0x04,0x00,0x00,0x04,0xf0,0x05,0x20,0x02,0x01,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0x33,0xf1,0xc2,0x2f,0x00,0x2f,0xc6,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x02,0x2d, +0xa6,0xfe,0xd5,0x01,0x2b,0xa8,0xfe,0xcf,0xc8,0x01,0x50,0x01,0x58,0xfe,0xa8,0x00,0x00,0x01,0x00,0x5c,0x00,0xc8,0x02,0x2f,0x03,0x70,0x00,0x05,0x00,0x1c,0x40,0x0f,0x02,0x04,0x03,0x00,0xf0,0x04,0x50,0x02,0x70,0x02,0x02,0x0f,0x02,0x01,0x02,0x2f,0x5d,0x5d,0xc4,0xe1,0x32,0x00,0x2f,0xc6,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x33, +0x02,0x2f,0xfe,0xd3,0xa6,0x01,0x30,0xfe,0xd0,0xa6,0x02,0x1a,0xfe,0xae,0x01,0x52,0x01,0x56,0x00,0x03,0x00,0x35,0x00,0x00,0x03,0xea,0x06,0x02,0x00,0x14,0x00,0x20,0x00,0x24,0x00,0xaf,0xb9,0x00,0x11,0xff,0xe8,0x40,0x3d,0x0b,0x00,0x4d,0x15,0x1b,0x63,0x59,0x15,0x23,0x12,0x02,0x95,0x59,0x12,0x01,0x05,0x08,0x23,0x03,0x0b,0x0e, +0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x09,0x21,0x15,0x1e,0x62,0x18,0x21,0x08,0x0d,0x06,0x4d,0x21,0x08,0x0c,0x06,0x4d,0x21,0x08,0x0b,0x06,0x4d,0x21,0x84,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0xb8,0xff,0xf1,0x40,0x1e,0x0b,0x06,0x4d,0x22,0x22,0x26,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08, +0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x00,0x3f,0xc4, +0x3f,0x2b,0x11,0x12,0x00,0x17,0x39,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x00,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac,0xf0,0xf0,0xa3, +0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0xdd,0x2d,0x3e,0x3e,0x2d,0x2d,0x40,0x40,0x23,0xa4,0xa4,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xec,0x3c,0x2e,0x2d,0x3e,0x3d,0x2e,0x2c,0x3e,0xfa,0xfc,0x04,0x00,0x00,0x00,0x02,0x00,0x35,0x00,0x00,0x03,0xcf,0x06,0x02,0x00,0x14,0x00,0x18,0x00,0xa4,0xb9,0x00, +0x11,0xff,0xe8,0x40,0x37,0x0b,0x00,0x4d,0x08,0x05,0x0b,0x0e,0x0e,0x0b,0x95,0x59,0x0e,0x0f,0x12,0x02,0x95,0x59,0x12,0x01,0x18,0x00,0x09,0x15,0x15,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x70,0x16,0x01,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0xb8,0xff,0xf1,0x40, +0x1e,0x0b,0x06,0x4d,0x16,0x16,0x1a,0x0a,0x06,0x00,0x0c,0x0e,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x0a,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xf4,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39, +0x39,0xc6,0xd4,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x23,0x11,0x33,0x02,0xa0,0x30,0x3d,0xac, +0xf0,0xf0,0xa3,0xaf,0xaf,0xba,0x8b,0x4b,0x2c,0x01,0x2f,0xa2,0xa2,0x05,0x5c,0x1b,0xd9,0x9e,0x8c,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0xbb,0x12,0xfa,0x10,0x05,0xec,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x15,0x00,0x5a,0x40,0x2e,0x15,0x10,0x14,0x13,0x12,0x02,0x0e,0x06,0x0b,0x40,0x09,0x08,0x07,0x03,0x00,0x0d, +0x10,0x0d,0x02,0x0a,0x03,0x0d,0x15,0x06,0x05,0x06,0x91,0x59,0x00,0x05,0x11,0x0a,0x0b,0x0a,0x91,0x59,0x10,0x0b,0x05,0x0b,0x05,0x0b,0x03,0x0d,0x03,0x03,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2b,0x11,0x00,0x33,0x11,0x33,0x2b,0x11,0x00,0x33,0x01,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x33,0x33,0x33,0x1a,0xce,0x32,0xdd, +0x32,0x32,0x32,0x32,0xce,0x32,0x31,0x30,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x37,0x27,0x05,0x35,0x05,0x03,0x33,0x03,0x25,0x15,0x25,0x07,0x17,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x3a,0x3a,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x3a,0x3a,0x01,0x06,0x02,0x07,0x14,0xfe,0xca,0x01, +0x36,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x96,0x14,0x01,0x36,0xfe,0xca,0x14,0x96,0x1e,0xc0,0xc0,0x1e,0x00,0x00,0x01,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0x00,0x01,0x00,0x58,0xff,0x1c,0x01,0x5a,0x00,0xd9,0x00,0x03,0x00,0x2c,0x40,0x1c,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x02,0xb3,0x40,0x03,0x00,0xb4, +0x80,0x02,0x2f,0x1a,0xe9,0x00,0x2f,0x1a,0xed,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x01,0x5a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0x00,0x02,0x00,0x58,0xff,0x1c,0x02,0x89,0x00,0xd9,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x35,0x04,0x10,0x10,0x00,0x4d,0x04,0x10,0x0c,0x00,0x4d,0x07,0x10,0x10,0x00,0x4d,0x07, +0x10,0x0c,0x00,0x4d,0x00,0x10,0x10,0x00,0x4d,0x00,0x10,0x0c,0x00,0x4d,0x03,0x10,0x10,0x00,0x4d,0x03,0x10,0x0c,0x00,0x4d,0x03,0x02,0x06,0xb3,0x40,0x07,0x00,0xb4,0x02,0x04,0xb4,0x80,0x06,0x2f,0x1a,0xe9,0xdc,0xe9,0x00,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x25,0x03,0x23,0x13,0x23, +0x03,0x23,0x13,0x02,0x89,0x8b,0x77,0x6d,0x9a,0x8d,0x75,0x6e,0xd9,0xfe,0x43,0x01,0xbd,0xfe,0x43,0x01,0xbd,0x00,0x00,0x07,0x00,0x50,0xff,0xea,0x09,0x5e,0x05,0xb0,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27,0x00,0x33,0x00,0x3f,0x00,0x4b,0x01,0x01,0x40,0x3c,0x18,0x03,0x1a,0x3a,0x40,0x52,0x59,0x3a,0x0e,0x34,0x34,0x46,0x52,0x59, +0x34,0x1c,0x22,0x28,0x52,0x59,0x22,0x0e,0x1c,0x1c,0x2e,0x52,0x59,0x1c,0x13,0x1b,0x03,0x06,0x00,0x42,0x00,0x12,0x52,0x59,0x00,0x06,0x06,0x0c,0x52,0x59,0x06,0x04,0x1a,0x18,0x1a,0x18,0x3d,0x03,0x37,0xbd,0x43,0x10,0x0d,0x06,0x4d,0x43,0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x43,0x49,0xc8,0x1f,0x3d,0x01,0x3d,0xb8,0xff,0xf4, +0xb3,0x0d,0x06,0x4d,0x3d,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x3d,0xb8,0xff,0xee,0x40,0x0e,0x0b,0x06,0x4d,0x3d,0x3d,0x03,0x1f,0xbd,0x2b,0x10,0x0d,0x06,0x4d,0x2b,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x2b,0x31,0xc2,0x25,0xb8,0xff,0xe0,0x40,0x14,0x0d,0x06,0x4d,0x25,0x1c,0x0c,0x06,0x4d,0x25,0x07,0x0b,0x06,0x4d,0x25,0x25,0x4d, +0x03,0x09,0xbd,0x15,0xb8,0xff,0xec,0x40,0x16,0x0d,0x06,0x4d,0x15,0x0c,0x0b,0x06,0x4d,0x15,0x0f,0xc8,0x03,0x1c,0x0d,0x06,0x4d,0x03,0x1c,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x39,0x2f,0x2b, +0x2b,0x2b,0x5d,0xe1,0xd4,0x2b,0x2b,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x10,0x18,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x18,0x2f,0x3f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x94,0x94, +0xb0,0xba,0x9e,0x99,0xa9,0xbd,0x8b,0x5f,0x6e,0x6c,0x5d,0x5e,0x6a,0x69,0x03,0x59,0xfc,0x66,0x8f,0x03,0x99,0x03,0x42,0x94,0xb0,0xbd,0x9b,0x99,0xa9,0xbc,0x8c,0x60,0x6c,0x6b,0x5d,0x5f,0x6a,0x6a,0xfc,0x79,0x94,0xb0,0xbc,0x9c,0x98,0xaa,0xbd,0x8b,0x60,0x6d,0x6c,0x5d,0x5e,0x6a,0x69,0x02,0xcb,0xc3,0xa3,0xb2,0xcd,0xbe,0xac,0xac, +0xcf,0x02,0x77,0x8d,0x7b,0x79,0x87,0x8c,0x7c,0x79,0x87,0x58,0xfa,0x5c,0x05,0xa4,0xfa,0x50,0xc4,0xa2,0xb1,0xd0,0xbf,0xae,0xab,0xcf,0x02,0x76,0x8d,0x7b,0x78,0x86,0x8d,0x7b,0x79,0x85,0xfd,0x8a,0xc4,0xa2,0xb2,0xcf,0xc0,0xad,0xab,0xcf,0x02,0x76,0x8c,0x7c,0x77,0x87,0x8d,0x7b,0x7a,0x84,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x07,0x69,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x0f,0x01,0x5b,0x00,0x16,0xb9,0x00,0x02,0xff,0xf1,0x40,0x09,0x12,0x12,0x0c,0x0b,0x25,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xab,0x01,0x5d, +0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x0e,0x02,0x03,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x66,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x57,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x11,0x13,0x06,0x07,0x25,0x02,0x12, +0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x03,0xb4,0x07,0x66,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe8,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe9,0x40,0x09,0x0f,0x0d,0x02,0x03,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x78,0x00,0x00,0x01,0xfd,0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf1, +0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x02,0x30,0x07,0x6b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa0,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x06,0x08,0x04,0x02,0x03,0x25,0x01,0x08,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x1b,0x00,0x00,0x01,0xa0, +0x07,0x66,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xc9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x05,0x04,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf8,0x01,0x5c,0x00,0x13, +0x40,0x0b,0x02,0x1e,0x19,0x1b,0x0c,0x06,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x6a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x05,0x1a,0x1a,0x03,0x09,0x25,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x99,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x2c,0x19,0x18,0x03,0x09,0x25,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x65,0x02,0x26,0x00,0x38,0x00,0x00, +0x01,0x07,0x00,0x8e,0x01,0xb4,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x2b,0x0f,0x11,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x6b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x4b,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x10,0x05,0x0d, +0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x66,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x67,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xd1,0x40,0x09,0x11,0x0f,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xa6, +0x00,0x00,0x01,0x4a,0x04,0x00,0x00,0x03,0x00,0x31,0x40,0x16,0x03,0x0f,0x00,0x15,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x01,0x01,0x05,0x04,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x21,0x23,0x11,0x33,0x01, +0x4a,0xa4,0xa4,0x04,0x00,0x00,0x00,0x01,0x00,0x5c,0x04,0xc2,0x02,0x90,0x06,0x0e,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x04,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x04,0x05,0x80,0x03,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x12,0x39,0x2f,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x90,0x7a,0xa4,0xa5,0x71,0xd7,0x85,0x04, +0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x00,0x01,0x00,0x23,0x04,0xb2,0x02,0xa4,0x05,0xb2,0x00,0x13,0x00,0x50,0x40,0x0f,0x0a,0x0c,0x01,0x03,0x00,0x02,0x01,0x10,0x05,0x0c,0x40,0x0c,0x00,0x4d,0x02,0xb8,0xff,0xc0,0x40,0x1b,0x0c,0x00,0x4d,0x13,0xc4,0x00,0x00,0x15,0x09,0xc4,0x40,0x0a,0x13,0x0d,0x0d,0x07,0xda,0x59,0x0d,0x11,0x40,0x03, +0x11,0xda,0x59,0x09,0x03,0x00,0x2f,0xc6,0x2b,0x00,0x1a,0x18,0x10,0xcc,0x2b,0x00,0x18,0x10,0xc6,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a, +0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x00,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x2f,0x00,0x03,0x00,0x11,0xb6,0x00,0x01,0x01,0x02,0xe2,0x59,0x01,0x00,0x2f,0x2b,0x01,0x18,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04, +0xc2,0x6d,0x00,0x01,0x00,0x25,0x04,0xc2,0x02,0x4a,0x05,0xbe,0x00,0x0c,0x00,0x2f,0x40,0x17,0x0c,0xc4,0x0f,0x00,0x01,0x0b,0x03,0x00,0x00,0x0e,0x07,0xc4,0x40,0x06,0x0c,0x06,0x03,0x80,0x03,0x09,0xdb,0x59,0x03,0x00,0x2f,0x2b,0x00,0x1a,0x18,0x10,0xdc,0xc4,0x01,0x2f,0x1a,0xe9,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01, +0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x02,0x4a,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0c,0xa0,0x44,0x61,0x0a,0x05,0xbe,0x71,0x8b,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0x00,0x6c,0x04,0xc2,0x01,0x31,0x05,0x85,0x00,0x0b,0x00,0x12,0xb7,0x09,0xc0,0x03,0x00,0x06,0xc1,0x5b,0x00,0x00,0x2f,0x2b,0x01,0x18, +0x2f,0xe1,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xcf,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x04,0xc2,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x02,0x00,0x52,0x04,0x98,0x01,0xee,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x4f,0x40,0x31,0x04,0x0b,0x01,0x04,0x07,0x01,0x0b,0x05,0x01,0x0b,0x01,0x01, +0x10,0x14,0xc4,0x40,0x00,0x09,0x50,0x09,0xa0,0x09,0xb0,0x09,0x04,0x1c,0x03,0x09,0xc0,0x0f,0xc4,0x40,0x03,0x06,0x0c,0xc5,0x59,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x11,0xc5,0x59,0x00,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xe9,0x1a,0xdc,0x5f,0x5e,0x5d,0x1a,0xe9,0x31,0x30,0x5e,0x5d,0x5d,0x5d, +0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1c,0x57,0x73,0x76,0x5b,0x59,0x72,0x7a,0x58,0x30,0x40,0x70,0x32,0x42,0x42,0x04,0x98,0x69,0x55,0x5a,0x6c,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x01,0x00,0x33, +0xfe,0x50,0x01,0x87,0x00,0x00,0x00,0x12,0x00,0x5d,0x40,0x0c,0x03,0x12,0x01,0x03,0x00,0x01,0x01,0x10,0x05,0x09,0xc2,0x00,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x0f,0x48,0x00,0x10,0x05,0x40,0x0d,0x02,0x07,0xc5,0x59,0x02,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0f,0x48,0x02,0x10,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x09,0x03,0x10,0x0b,0xc3, +0x59,0x10,0x40,0x0a,0x0e,0x48,0x10,0x0e,0x12,0x00,0x3f,0xc5,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x18,0x10,0xc4,0x2b,0x2b,0x01,0x18,0x2f,0x1a,0xce,0xcd,0xd4,0x2b,0xe1,0x30,0x31,0x5f,0x5e,0x5d,0x5f,0x5d,0x01,0x14,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x33,0x15,0x32,0x16,0x01,0x87,0xfe,0xed,0x26,0x1b, +0x2b,0x1b,0x8d,0x81,0x0a,0x1f,0x6c,0x58,0x67,0xff,0x00,0xb0,0x02,0x5a,0x06,0x5a,0x4e,0x04,0xb6,0x68,0x50,0x00,0x00,0x02,0x00,0x40,0x04,0xc2,0x02,0x87,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x4d,0x40,0x30,0x00,0x0e,0x02,0x28,0x0d,0x06,0x4d,0x02,0x18,0x0c,0x06,0x4d,0x02,0x18,0x0b,0x06,0x4d,0x02,0x30,0x0a,0x06,0x4d,0x02,0x30, +0x09,0x06,0x4d,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x70,0x06,0x01,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0x2b,0x2b,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x87,0xf5,0x61,0xd1, +0x72,0xf0,0x60,0xce,0x06,0x00,0xfe,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0x00,0x3e,0xfe,0x70,0x01,0x52,0x00,0x00,0x00,0x0e,0x00,0x24,0x40,0x12,0x0f,0x0b,0x01,0x10,0x04,0x00,0x06,0x06,0x02,0xc2,0x0c,0x09,0x04,0xe2,0x59,0x09,0x0e,0x12,0x00,0x3f,0x2f,0x2b,0x01,0x18,0x2f,0xf1,0xc2,0x2f,0xc6,0x31,0x30,0x5f,0x5e,0x5d, +0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x52,0x96,0x44,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x9d,0x8d,0x52,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x7a,0x80,0x00,0x01,0x00,0x66,0x04,0xc2,0x02,0x98,0x06,0x0c,0x00,0x06,0x00,0x1c,0xb3,0x00,0x00,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x10,0x00,0x4d,0x03,0x03, +0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x2b,0x11,0x39,0x2f,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x02,0x98,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d,0x00,0xc5,0x40,0x16,0x0f,0x0a,0x01,0x00,0x04,0x01,0x10,0x05,0x0b,0x02, +0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x04,0x0a,0x0a,0x0c,0x00,0xb8,0xff,0xf0,0xb3,0x10,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x00,0xb8,0xff,0xc0,0x40, +0x1b,0x0a,0x1f,0x48,0x00,0x00,0x0f,0x03,0x08,0x05,0x0c,0x06,0x0d,0x06,0x4d,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x7e,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf2,0x40,0x19,0x0c,0x06,0x4d,0x01,0x06,0x0b,0x06,0x4d,0x01,0x04,0x03,0x0a,0x09,0x03,0x09,0x03,0x00,0x06,0x03,0x00,0x0d,0x91,0x59, +0x00,0x12,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x31,0x30,0x10,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x21,0x11,0x07,0x35,0x37,0x11, +0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0xa4,0xfd,0x18,0x9b,0x9b,0xa8,0x01,0x48,0xfe,0xb8,0x02,0x40,0x02,0x23,0x61,0x98,0x60,0x02,0xe0,0xfd,0x89,0xcb,0x9a,0xc8,0xfe,0x0c,0x00,0x01,0x00,0x16,0x00,0x00,0x02,0x12,0x05,0xec,0x00,0x0b,0x00,0x62,0x40,0x3c,0x0a,0x07,0x06,0x0b,0x06,0x04,0x01,0x05,0x00,0x00,0x00,0x02,0x05,0x0a, +0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x70,0x03,0x01,0x03,0x08,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x06,0x05,0x00,0x0b,0x0b,0x05,0x02,0x09,0x00,0x02,0x15,0x40,0x0d,0x01,0x5d,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b, +0x2b,0x2b,0x39,0x39,0xc6,0x10,0xc2,0x2f,0x31,0x30,0x87,0x04,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x02,0x12,0xae,0xa4,0xaa,0xaa,0xa4,0xae,0x03,0x2b,0x7b,0xfd,0x50,0x02,0x42,0x77,0x9d,0x77,0x03,0x0d,0xfd,0x62,0x7a,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a, +0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xa2,0x01,0x5e,0x00,0x14,0xb4,0x01,0x38,0x05,0x26,0x01,0xb8,0xff,0xf4,0xb4,0x39,0x36,0x13,0x2c,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0c,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xe0,0x12,0x00,0x00,0x14,0xb4,0x01,0x31,0x11, +0x26,0x01,0xb8,0xff,0xec,0xb4,0x32,0x2f,0x0f,0x16,0x25,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xec,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x05,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0c,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xe0,0x76,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x0f,0x0f,0x08,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x0f,0x01,0x00,0x04,0xca, +0x05,0x00,0x0e,0x40,0x03,0x04,0x07,0x42,0x07,0x04,0x1c,0x00,0x3f,0xcd,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe1,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0x94,0x94,0x02,0xcb,0x03,0x53,0xf8,0x00,0x03,0x54,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17, +0x00,0xaa,0x40,0x38,0x00,0x07,0x01,0x00,0x07,0x01,0x10,0x05,0x10,0x0d,0x01,0x04,0x04,0x01,0x91,0x59,0x04,0x05,0x00,0x04,0x91,0x2b,0x30,0x05,0x0c,0x91,0x59,0x05,0x03,0x00,0x11,0x91,0x59,0x00,0x12,0x0f,0x0f,0x00,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7d,0x15,0xb8,0xff,0xf0,0xb3, +0x0d,0x06,0x4d,0x15,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x15,0xb8,0xff,0xea,0x40,0x1b,0x0b,0x06,0x4d,0x15,0x15,0x19,0x02,0x0d,0x04,0x11,0x06,0x0d,0x06,0x4d,0x11,0x06,0x0c,0x06,0x4d,0x11,0x06,0x0b,0x06,0x4d,0x11,0x7e,0x00,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x39,0x39,0xce,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21,0x15,0x21,0x11,0x33,0x20, +0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x04,0x18,0x05,0xf4,0x00,0x1a, +0x00,0x25,0x00,0xfa,0x40,0x17,0x00,0x0e,0x01,0x10,0x06,0x0b,0x0b,0x0a,0x06,0x06,0x07,0x05,0x0c,0x05,0x0e,0x0e,0x0f,0x03,0x03,0x02,0x04,0x0d,0x06,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0b,0x06,0x4d,0x03,0xb8,0xff,0xc0,0xb3,0x0a,0x06,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x46,0x09,0x06,0x4d,0x05,0x04,0x30, +0x09,0x12,0x48,0x04,0x04,0x19,0x0d,0x0c,0x09,0x00,0x01,0x1b,0x19,0x1b,0x95,0x59,0x19,0x10,0x13,0x21,0x95,0x59,0x13,0x16,0x0e,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0d,0x06,0x4d,0x0d,0x0d,0x10,0x05,0x01,0x24,0x0f,0x08,0x01,0x08,0x08,0x16,0x10,0x04,0x0d,0x06,0x4d,0x10,0x04,0x0c,0x06,0x4d,0x10,0x04,0x0b,0x06,0x4d,0x10,0x83,0x24, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xe3,0x40,0x2a,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1e,0x0a,0x0d,0x06,0x4d,0x1e,0x0a,0x0c,0x06,0x4d,0x1e,0x0a,0x0b,0x06,0x4d,0x1e,0x83,0x16,0x10,0x0d,0x06,0x4d,0x16,0x0c,0x0c,0x06,0x4d,0x16,0x15,0x0b,0x06,0x4d,0x16,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x12,0x39,0xc6,0x11,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc6,0x32,0x12,0x39,0x2f,0x2b,0x33,0x01,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x5f,0x5e,0x5d,0x01,0x37, +0x26,0x27,0x05,0x27,0x25,0x26,0x27,0x33,0x16,0x17,0x25,0x17,0x05,0x00,0x11,0x14,0x00,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x12,0x04,0x5a,0x6c,0xfe,0xd5,0x33,0x01,0x0e,0x76,0x92,0xdd,0x4b,0x61,0x01,0x21,0x37,0xfe,0xf8,0x01,0x47,0xfe,0xfe,0xde,0xde,0xfa,0x01, +0x04,0xdc,0x7b,0x75,0x94,0xaa,0xa6,0x94,0x8b,0xa3,0x03,0xc8,0x03,0xa2,0x68,0x97,0x62,0x83,0x69,0x60,0x34,0x54,0x90,0x5e,0x82,0xfe,0xcd,0xfe,0x2d,0xf0,0xfe,0xcc,0x01,0x18,0xf2,0xf3,0x01,0x2f,0x88,0xd9,0xbb,0xb5,0xd3,0xd8,0xb4,0x01,0x90,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00, +0x01,0x07,0x00,0x8e,0x01,0x33,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x30,0x0f,0x11,0x05,0x00,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xee,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x33,0x16,0x18,0x0c,0x00, +0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x7b,0x40,0x20,0x00,0x08,0x01,0x10,0x06,0x05,0x0d,0x91,0x59,0x00,0x05,0x10,0x05,0x02,0x0c,0x03,0x05,0x0c,0x0e,0x91,0x59,0x0c,0x05,0x0c,0x03,0x02,0x12,0x03,0x03,0x09,0x7d,0x12,0xb8,0xff, +0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x02,0x04,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f, +0x2b,0xe9,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x11,0x23,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xad,0xb8,0xfe,0xb0,0x01,0x3e,0xfe,0xc2, +0x05,0x9a,0xe2,0xdf,0xcd,0xcc,0xfe,0xfe,0x02,0xe3,0xfd,0xb4,0x9c,0x91,0x01,0x1f,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x10,0x00,0x1d,0x00,0x9c,0x40,0x2b,0x00,0x0a,0x01,0x10,0x06,0x03,0x1b,0x01,0x15,0x0f,0x15,0x95,0x59,0x0f,0x16,0x04,0x00,0x06,0x1b,0x09,0x1b,0x95,0x59,0x09,0x10,0x0c,0x06,0x0d,0x06,0x4d, +0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x06,0x0b,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xe3,0x40,0x1a,0x0b,0x06,0x4d,0x18,0x18,0x1f,0x06,0x12,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40, +0x11,0x0d,0x06,0x4d,0x03,0x02,0x0c,0x06,0x4d,0x03,0x01,0x0b,0x06,0x4d,0x03,0x2f,0x1f,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23, +0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x70,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x07,0xc3,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02, +0x49,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x00,0x01,0x00,0xe8,0x02,0x12,0x04,0x94,0x02,0x98,0x00,0x03,0x00,0x30,0x40,0x0b,0x02,0x01,0xbe,0x59,0x0f,0x02,0x01,0x0d,0x03,0x02,0x00,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xe0,0x40,0x09,0x0c,0x06,0x4d,0x04,0x05,0x01,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x2b,0x00, +0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0x02,0x12,0x86,0x00,0x00,0x01,0x01,0x0c,0x00,0xa4,0x04,0x6e,0x04,0x06,0x00,0x0b,0x00,0x1d,0xb6,0x0b,0x4f,0x05,0x01,0x05,0x02,0x08,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x08,0x19,0x2f,0x2b,0x18,0xc4,0x00,0x19,0x2f,0x5d,0x18,0xc4,0x31, +0x30,0x01,0x07,0x01,0x01,0x27,0x01,0x01,0x37,0x01,0x01,0x17,0x01,0x04,0x6e,0x5e,0xfe,0xac,0xfe,0xae,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x02,0x5e,0x01,0x54,0xfe,0xac,0x5e,0x01,0x52,0x01,0x54,0x5e,0xfe,0xac,0x01,0x54,0x5e,0xfe,0xac,0x00,0x00,0x01,0x00,0x50,0x02,0x48,0x01,0xc2,0x05,0xb0, +0x00,0x0c,0x00,0x17,0x40,0x0a,0x0c,0xcc,0x04,0x00,0x0c,0x28,0x05,0x04,0x0b,0x27,0x00,0x3f,0xdd,0xcd,0x3f,0x01,0x2f,0xce,0xed,0x30,0x31,0x01,0x11,0x06,0x06,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x40,0x39,0x78,0x3f,0x26,0x46,0x48,0x4c,0x2c,0x46,0x02,0x48,0x02,0xc2,0x2e,0x47,0x1b,0x87,0x0d,0x22,0x2b,0x35,0x20,0xfc,0x98, +0x00,0x01,0x00,0x68,0x02,0x48,0x02,0x92,0x05,0xae,0x00,0x1f,0x00,0x3c,0x40,0x24,0x1f,0x16,0xcc,0x09,0x09,0x21,0x1d,0xcc,0x0e,0x02,0x0f,0x0e,0x2b,0x1d,0x3b,0x1d,0x4b,0x1d,0x9b,0x1d,0xab,0x1d,0xbb,0x1d,0x06,0x1d,0x09,0x01,0x0c,0xe6,0x11,0x27,0x1f,0xe6,0x01,0x28,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x5d,0xcc,0x32,0x01, +0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x15,0x15,0x21,0x02,0x92,0xfd,0xd6,0x3b,0x59,0x68,0x59,0x3b,0x4b,0x3f,0x77,0x61,0x53,0x98,0x38,0x5e,0x44,0x26,0x39,0x56,0x64,0x56,0x39,0x01,0x93,0x02,0x48,0x52, +0x3d,0x61,0x54,0x4b,0x50,0x5a,0x38,0x3a,0x40,0x66,0x95,0x4c,0x22,0x3f,0x58,0x37,0x4a,0x73,0x5c,0x48,0x3d,0x37,0x1c,0x0b,0x00,0x01,0x00,0x81,0x02,0x33,0x02,0x8e,0x05,0xae,0x00,0x20,0x00,0x61,0x40,0x35,0x00,0x16,0x01,0x10,0x05,0x19,0x09,0x0a,0x0a,0x09,0xe6,0x59,0x0a,0x0a,0x03,0x14,0x0f,0x11,0x1f,0x11,0x02,0x0f,0x03,0x11, +0x0f,0x14,0x0f,0xe6,0x59,0x14,0x27,0x01,0x03,0x1f,0x03,0xe6,0x59,0x1f,0x29,0x19,0x0a,0x0d,0xcd,0x17,0x17,0x1c,0xcc,0x06,0x06,0x22,0x0a,0x11,0x00,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12, +0x00,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x81,0x67,0x72,0x50,0x5c,0xdb,0x54,0x50,0xc5,0x90,0x5e,0x5c,0x57,0x7e,0x71,0x86,0x91,0xb1,0xaa,0x8e,0x89,0x02,0x68,0x8e, +0x4c,0x4b,0x40,0x8d,0x76,0x86,0x77,0x45,0x8b,0x33,0x77,0x60,0x97,0x36,0x04,0x2a,0xa0,0x75,0x94,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd4,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x00,0xf1,0x04,0x42,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff, +0x00,0x50,0x00,0x00,0x06,0xaa,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x00,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x14,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0x00,0x00,0x06,0xeb,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x06, +0x00,0x00,0x01,0x07,0x02,0x38,0x04,0x41,0xfd,0xb8,0x00,0x09,0xb3,0x03,0x02,0x28,0x2c,0x00,0x3f,0x35,0x35,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x80,0x40,0x3e,0x10,0x01,0x04,0x07,0x07,0x04,0x91,0x59,0x07,0x07,0x0c,0x02,0x0c,0x0f,0x91,0x59,0x0c,0x09,0x02,0x0c,0x91,0x2b,0x30,0x09,0x0a,0x91, +0x59,0x09,0x03,0x02,0x12,0x0d,0x0d,0x09,0x09,0x13,0x03,0x00,0x00,0x07,0x0c,0x10,0x03,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x05,0x03,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x03,0x0a,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xce,0xf1, +0x2b,0x2b,0x2b,0x17,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x58,0xf4,0xa8,0xa0,0xa0,0x02,0xd8,0xfd,0xd0, +0x02,0x06,0xfd,0xfa,0xf4,0x01,0x16,0xfe,0xea,0x01,0x16,0x9c,0x03,0xe8,0x98,0xfe,0x10,0x97,0xc9,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x19,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xe2,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0xda,0x40,0x09,0x1d,0x23,0x0d,0x08,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b, +0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xbe,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x17,0x2c,0x26,0x20,0x17,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xad,0x00,0x00,0x01,0x72,0x06,0xe2,0x02,0x26,0x00,0x2c, +0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x41,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x0d,0x02,0x03,0x25,0x01,0x04,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xfe,0x50,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x76,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x0f, +0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x03,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x66,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x3e,0x17,0x19,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x23,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x24,0x17,0x19,0x10,0x0a,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x68,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xe0, +0x01,0x86,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x36,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0c,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1b,0x1b,0x10,0x0b,0x25,0x01,0x18,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x98,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0xcb,0x40,0x55,0x0f,0x06,0x01,0x10,0x05,0x24,0x18,0x0c,0x00,0x4d,0x18,0x15,0x0f,0x12,0x12,0x0f,0x96,0x59,0x0f,0x12,0x1f,0x12,0x2f,0x12,0x03,0x09,0x03,0x12,0x12,0x0b,0x14,0x00,0x0d,0x1d,0x0b,0x1d,0x95,0x59, +0x0b,0x10,0x02,0x23,0x05,0x23,0x95,0x59,0x05,0x16,0x00,0x15,0x10,0x10,0x01,0x08,0x17,0x17,0x0f,0x12,0x15,0x18,0x19,0x05,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x05,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x01, +0x01,0x27,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x08,0x10,0x0d,0x06,0x4d,0x08,0x0e,0x0c,0x06,0x4d,0x08,0x1a,0x0b,0x06,0x4d,0x08,0x2f,0x27,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x17,0x39,0xca,0x2f,0x11,0x12,0x39, +0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x88,0xac,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6, +0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x00,0x01,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x06,0x00,0xc3,0x00,0x00,0xff,0xff,0x00,0x16, +0x00,0x00,0x05,0x12,0x07,0x1b,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x13,0x19,0x06,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, +0x00,0xdb,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x26,0x20,0x10,0x14,0x25,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0xfe,0x70,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x07,0x00,0xdf,0x03,0x79,0x00,0x00,0xff,0xff,0x00,0x5a,0xfe,0x70,0x03,0x83,0x04,0x18,0x02,0x26, +0x00,0x44,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x00,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x07,0x68,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x2a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x04,0x13,0x10,0x01,0x0d,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x05,0xb3,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9c,0x03,0xb7,0x06,0x63,0x00,0x12,0x40,0x0a,0x02,0x21,0x00,0x02,0x82,0x20,0x20,0x10,0x10,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0xe8,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x70,0x03,0xb4,0x05,0x9a, +0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x70,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xa1,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x68,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb1,0x01,0x5c,0x00,0x16, +0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x0c,0x02,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0c,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1c,0x1b,0x16,0x0f,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35, +0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x4c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x11,0x08,0x06,0x03,0x05,0x3e,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x8e,0x00,0x00,0x02,0x13,0x07,0xbb,0x02,0x26,0x00,0x4f, +0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x07,0x01,0xb1,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x06,0x05,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x8d,0x06,0x11,0x00,0x14,0xb3,0x01,0x09,0x03, +0x01,0xb8,0xff,0xe5,0xb4,0x06,0x06,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xc3,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xc7,0x06,0x5d,0x00,0x12,0x40,0x0a,0x01,0x07,0x00,0x01,0x58,0x06,0x06,0x03,0x03,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0xbc, +0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x11,0xfd,0xd8,0x00,0x0e,0xb9,0x00,0x01,0xff,0x9e,0xb4,0x0f,0x0f,0x05,0x05,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x87,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x56,0xfd,0xd8,0x00,0x0b,0xb6,0x01, +0x78,0x07,0x07,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x66,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xe2,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x15,0x17,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8, +0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xec,0x40,0x09,0x14,0x16,0x04,0x0f,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x7e,0x01,0x5c, +0x00,0x16,0xb9,0x00,0x01,0xff,0xe4,0x40,0x09,0x19,0x19,0x0b,0x12,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0c,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xda,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x18,0x0b,0x02,0x25,0x01,0x15,0x11,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0xe1,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x3f,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x1a,0x1a,0x06,0x06,0x25,0x03,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x66,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0x8e, +0x01,0x5f,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x06,0x0a,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xa4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x13,0x12,0x09,0x09,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0xc0,0x07,0x68,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xe3,0x01,0x5c,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x97,0x00,0x00,0x02,0xc9,0x06,0x0c,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x00,0xe0,0x31,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x12,0x08,0x10,0x25,0x01, +0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x65,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x29,0x01,0x5b,0x00,0x08,0xb3,0x01,0x38,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0a,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x00,0x8e, +0x00,0xbe,0x00,0x00,0x00,0x08,0xb3,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x50,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdd,0x01,0x75,0x00,0x00,0x00,0x0b,0xb6,0x01,0x16,0x16,0x0c,0x06,0x4d,0x16,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x50,0x02,0x9a,0x05,0x2f,0x02,0x26, +0x00,0x57,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x13,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x07,0x68,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x9d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x0a,0x09,0x04,0x01,0x3e,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x2b,0xff,0xea, +0x03,0xd3,0x05,0x72,0x00,0x14,0x00,0x18,0x00,0x71,0x40,0x31,0x18,0x80,0x17,0x07,0x14,0x14,0x12,0x95,0x02,0x16,0x0a,0x0a,0x0e,0x0b,0x06,0x95,0x40,0x07,0x0f,0x15,0x80,0x17,0x0c,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x84,0x04,0xb8,0xff,0xe6, +0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf2,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xd6,0x1a,0xcd,0x00,0x3f,0x1a,0xed,0x33,0x32,0x33,0x2f,0x3f,0xed,0x32,0x2f,0x10,0xd4,0x1a,0xcd,0x31,0x30,0x25,0x06,0x23,0x20,0x11, +0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x01,0x03,0x23,0x13,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3e,0x2d,0x01,0x52,0xa6,0x7b,0x75,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x04,0xdc,0xfe,0xfc,0x01, +0x04,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0xa3,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x8e,0x01,0x87,0x00,0x24,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x13,0x11,0x17,0x05,0x0d,0x25,0x02,0x01,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x30,0x0e,0x04,0x0e,0x05,0x26,0x00,0x2b,0x5d,0x35,0x35,0x01,0x2b,0x35,0x35, +0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x1c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x18,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x15,0x1b,0x08,0x11,0x25,0x02,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x5c,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x93,0x01,0x5c,0x00,0x45,0x40,0x12,0x01,0x10,0x0c,0x0d,0x06,0x4d,0x10,0x16,0x0c,0x06,0x4d,0x10,0x12,0x0b,0x06,0x4d,0x02,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf2,0xb3,0x0c,0x06,0x4d,0x10,0xb8,0xff,0xf4,0x40,0x0e,0x0b,0x06,0x4d,0x05,0x10,0x10,0x05,0x0d,0x25,0x02,0x01, +0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x2b,0x2b,0x2b,0x35,0x2b,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x05,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0a,0x14,0x14,0x08,0x11,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b, +0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x67,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfa,0x40,0x09,0x0b,0x0b,0x08,0x09,0x3e,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0a, +0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x0b,0x0b,0x05,0x09,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x06,0xe1,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5c,0x00,0x16,0xb9,0x00, +0x01,0xff,0xed,0x40,0x09,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x05,0x85,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x17,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0d,0x13,0x08,0x09,0x25,0x01,0x0a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x05,0x00,0x4c,0x40,0x20,0x02,0x12,0x05,0x00,0x91,0x59,0x05,0x03,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x06,0x0d,0x06,0x4d,0x02,0x06,0x0c,0x06,0x4d,0x02,0x06,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf2,0x40,0x09,0x0c, +0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x1b, +0x00,0xb0,0x40,0x18,0x1a,0x19,0x91,0x59,0x1a,0x06,0x00,0x1a,0x91,0x2b,0x30,0x06,0x0c,0x91,0x59,0x06,0x04,0x00,0x12,0x91,0x59,0x00,0x13,0x18,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xd0,0xb3,0x0b,0x06,0x4d,0x19,0xb8,0xff,0xe8,0x40,0x1b,0x0b,0x06,0x4d,0x0f,0x15,0x19,0x18,0xff,0x3a,0x09,0x06,0x0d,0x06,0x4d,0x09, +0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x7d,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xee,0xb6,0x0c,0x06,0x4d,0x30,0x15,0x01,0x15,0xb8,0xff,0xe0,0x40,0x27,0x0b,0x06,0x4d,0x15,0x15,0x1d,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x03,0x10,0x0d,0x06,0x4d, +0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22, +0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x13,0x21,0x35,0x21,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x29,0x01,0x6b,0xfe,0x8d,0xfe,0xd2,0xe1,0xfe,0xe7,0x01,0x12,0xdd,0xec,0x01,0x0f,0xfe,0xf9,0x1f,0xfd,0xe7,0x02,0x19,0x18,0x01,0x8f,0x01,0x45,0x01,0x57,0x01,0x9f,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe, +0x68,0x05,0x32,0xfe,0xba,0xfe,0xf8,0xfe,0xf6,0xfe,0xbd,0x01,0x34,0x01,0x16,0x01,0x18,0x01,0x39,0xfd,0x64,0x9c,0x00,0x03,0x00,0x60,0xff,0xf1,0x05,0xa7,0x05,0xa7,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xf6,0x40,0x1a,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x0e,0x00,0x0e,0x00,0x01,0x0d, +0x04,0x01,0x13,0x24,0xb8,0xff,0xe8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7e,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0x40,0x25,0x0c,0x06,0x4d,0x12,0x20, +0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x7e,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe8,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x17,0x1f,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01, +0x7e,0x02,0xb8,0xff,0xfb,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xfd,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x0c,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x40,0x29,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x52,0x9c,0x2b,0xf9,0xfe,0xce,0x01,0x31,0xfc,0x29,0x9c,0x2a,0xfc,0x01,0x2f,0xfe,0xcc,0xf5,0x2c,0x2c,0xb6,0xcf,0xd3,0xb4,0xc6,0x29,0xb3,0xd6,0xcf,0xb8,0xba,0xc9,0xc9,0x01,0x3c,0xfc,0xf6,0x01,0x2a,0x95,0x95,0xfe,0xd5,0xf5,0xfd,0xfe,0xc5,0x03,0xca,0xfc,0xcc,0xdc,0xc4,0xb9,0xdb,0xfc,0xcc, +0x03,0x34,0xda,0xbb,0xc4,0xdb,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x19,0x00,0x26,0x01,0x02,0x40,0x0b,0x0d,0x14,0x01,0x10,0x04,0x25,0x10,0x10,0x00,0x4d,0x15,0xb8,0xff,0xf0,0xb3,0x10,0x00,0x4d,0x14,0xb8,0xff,0xd0,0xb3,0x10,0x00,0x4d,0x0e,0xb8,0xff,0xf0,0x40,0x0e,0x10,0x00,0x4d,0x08,0x10,0x10,0x00,0x4d, +0x03,0x28,0x10,0x00,0x4d,0x25,0xb8,0xff,0xe8,0x40,0x36,0x0b,0x0c,0x00,0x4c,0x1f,0x18,0x0b,0x0c,0x00,0x4c,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x10,0x18,0x0b,0x0c,0x00,0x4c,0x05,0x11,0x14,0x1a,0x04,0x07,0x0d,0x13,0x12,0x0f,0x0d,0x1d,0x95,0x59,0x0d,0x10,0x02,0x17,0xec,0x59,0x02,0x15,0x07,0x23,0xec,0x59,0x07,0x16,0x75,0x11,0x01, +0x1a,0xb8,0xff,0xe8,0xb4,0x09,0x15,0x01,0x4c,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0x40,0x3d,0x0b,0x06,0x4d,0x14,0x11,0x0a,0x1a,0x05,0x00,0x1a,0x11,0x12,0x20,0x14,0x05,0x0a,0x12,0x83,0x13,0x70,0x00,0x01,0x00,0x00,0x28,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06,0x4d,0x20, +0x83,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x10,0x0b,0x06,0x4d,0x2f,0x0a,0x01,0x0a,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xd4,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x11,0x39,0x39,0x2b,0x2b,0x2b,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00, +0x18,0x3f,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x33,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x37,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04, +0xc5,0x35,0x2a,0x9a,0x36,0x04,0x94,0xfe,0xf6,0xba,0xe0,0x01,0x02,0xdc,0x7e,0xc6,0x33,0x04,0x55,0xac,0xc1,0x22,0x4c,0x3c,0x17,0x11,0xfe,0xa4,0x26,0x9c,0x6e,0x8e,0xa9,0x8f,0x79,0x6a,0xad,0x3a,0x05,0x0d,0x01,0x25,0xfe,0xcb,0x01,0x1f,0xdb,0xfa,0x01,0x3c,0x96,0x88,0x01,0x06,0xfe,0x0a,0xdb,0x9d,0x05,0x01,0x71,0xbe,0xca,0xf2, +0xb2,0x9e,0xd6,0xb5,0xb0,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x1c,0x00,0x27,0x00,0xdf,0x40,0x0c,0x0d,0x27,0x01,0x0d,0x1e,0x01,0x02,0x00,0x01,0x10,0x04,0x19,0xb8,0xff,0xc0,0x40,0x0a,0x0b,0x0c,0x00,0x4c,0x17,0x30,0x0b,0x00,0x4d,0x00,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe0,0x40, +0x35,0x0c,0x00,0x4d,0x09,0x1b,0x22,0x1d,0x16,0x10,0x01,0x03,0x1b,0x03,0x95,0x59,0x1b,0x01,0x10,0x22,0x95,0x59,0x10,0x16,0x1d,0x16,0x25,0x18,0x01,0x01,0x0d,0x06,0x83,0x18,0x18,0x13,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x25,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x25,0xb8,0xff, +0xf0,0xb3,0x0c,0x06,0x4d,0x25,0xb8,0xff,0xe0,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x25,0x30,0x25,0x02,0x25,0x25,0x29,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x83,0x13,0x10,0x0d,0x06,0x4d,0x13,0x10,0x0c,0x06,0x4d,0x13,0x10,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x12,0x39,0x39,0x11,0x12,0x39,0x2b,0x31,0x30,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e, +0x02,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x03,0x04,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe7,0xa8,0xac,0x64,0x79,0x68,0x78,0xa2,0xba,0x61,0xfe,0xe6,0xef,0xdb,0xfe,0xed,0xd4,0xcb,0xee,0xd0,0xb6,0xa4,0xbd,0xfe,0x92,0xb5,0x96,0x9d,0xba,0x8f,0x05,0xbe,0xb7,0x65,0x45, +0x3a,0x2f,0x69,0x49,0x63,0x9a,0xbf,0x6f,0xe9,0xfe,0xef,0x01,0x0b,0xd7,0x9b,0x01,0x02,0x58,0x93,0xa3,0x80,0x8a,0xfd,0x75,0x94,0xfe,0xeb,0x9d,0xb9,0xc0,0xa1,0x75,0xbf,0x00,0x00,0x01,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x25,0x00,0x9b,0x40,0x09,0x00,0x11,0x01,0x0f,0x00,0x01,0x10,0x04,0x0d,0xb8,0xff,0xe8,0x40,0x58, +0x0b,0x0c,0x00,0x4c,0x08,0x1e,0x19,0x19,0x1e,0xec,0x59,0x19,0x0f,0x02,0x19,0xec,0x0c,0x30,0x12,0x14,0x0f,0x14,0x95,0x59,0x0f,0x10,0x00,0x25,0x01,0x0e,0x03,0x25,0x23,0x02,0x23,0x95,0x59,0x02,0x16,0x08,0x0c,0x1b,0x12,0x00,0x00,0x27,0x05,0x16,0x83,0x0c,0x20,0x08,0x0d,0x06,0x4d,0x20,0x08,0x0c,0x06,0x4d,0x20,0x08,0x0b,0x06, +0x4d,0x20,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x10,0x0b,0x06,0x4d,0x2f,0x05,0x3f,0x05,0x02,0x05,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0xc4,0x11,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x00,0x18,0x2f,0x2b, +0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x26,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0x3b,0x82,0xc3,0xc3,0xe1,0x8b,0x72,0x56,0x80,0xd5,0xb2,0x8f,0x7f,0x85, +0x93,0xd7,0xa2,0x7d,0x49,0x2d,0x49,0x43,0xfe,0xd0,0x8d,0x80,0xa7,0x8f,0x16,0x2f,0xa5,0x89,0x5d,0x88,0x15,0x04,0x12,0x81,0x53,0x88,0x98,0x2d,0xa5,0x47,0x93,0x4b,0x5c,0x04,0x92,0x04,0xb2,0x4b,0x5b,0x49,0x00,0x02,0x00,0x61,0xff,0xe8,0x04,0x82,0x04,0x00,0x00,0x0c,0x00,0x17,0x00,0x7b,0x40,0x22,0x01,0x0e,0x0b,0x0e,0x96,0x59, +0x0b,0x0f,0x06,0x13,0x95,0x59,0x06,0x16,0x00,0x00,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x83,0x16,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x16,0xb8,0xff,0xf0,0x40,0x2a,0x0b,0x06,0x4d,0x16,0x16,0x19,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83, +0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xca,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x16,0x15,0x14,0x02,0x23,0x22,0x00,0x35,0x10,0x21,0x21, +0x05,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x04,0x82,0xff,0x00,0x8e,0xfc,0xd4,0xdb,0xfe,0xfc,0x02,0x09,0x02,0x18,0xfe,0x6c,0x76,0xfe,0x92,0xa9,0x8d,0x89,0x9f,0x03,0x7c,0xb6,0xdd,0xe3,0xfe,0xe2,0x01,0x1f,0xef,0x02,0x0a,0x84,0xfe,0x73,0xac,0xcf,0xd1,0xaf,0xdc,0x00,0x01,0x00,0x22,0xff,0xf4,0x03,0xc5,0x04,0x00, +0x00,0x13,0x00,0x7a,0x40,0x43,0x53,0x10,0x01,0x00,0x0f,0x01,0x0b,0x03,0x0f,0x0d,0x00,0x13,0x00,0x96,0x59,0x13,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x30,0x00,0x70,0x00,0x02,0x00,0x00,0x15,0x02,0x0f,0x0f,0x0b,0x14,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0b,0x08, +0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x0b,0x0b,0x15,0x14,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x10,0x18,0xd4,0xc6,0x5f,0x5e,0x5d,0x31,0x30,0x5d,0x01,0x21, +0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x23,0x22,0x07,0x35,0x36,0x33,0x21,0x03,0xc5,0xfe,0x79,0x74,0x36,0x36,0x42,0x48,0xf9,0x8d,0x72,0x7a,0x4c,0xa4,0x02,0xb3,0x03,0x7c,0xfd,0x96,0x8e,0x14,0x8e,0x16,0x01,0x20,0x02,0x68,0x58,0x94,0x48,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x38,0x04,0x18,0x00,0x1b,0x00,0x25, +0x00,0xfe,0x40,0x0f,0x06,0x17,0x01,0x09,0x15,0x01,0x09,0x0e,0x01,0x0d,0x0c,0x01,0x10,0x03,0x1f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x15,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x10,0xb8,0xff,0xc0,0x40,0x2a,0x0b,0x0c,0x00,0x4c,0x16,0x23,0x95,0x59,0x16,0x10,0x0d,0x0f,0x13,0x05,0x02,0x1c,0x02,0x1c,0x95,0x59,0x02,0x16, +0x03,0x1c,0x19,0x08,0x0d,0x06,0x4d,0x19,0x08,0x0c,0x06,0x4d,0x19,0x08,0x0b,0x06,0x4d,0x20,0x83,0x19,0xb8,0xff,0xec,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x56,0x0b,0x06,0x4d,0x19,0x0e,0x02,0x05,0x0a,0x42,0x02,0x0d,0x01,0x0d,0x0d,0x05,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c, +0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x0f,0x83,0x50,0x0a,0x60,0x0a,0x02,0x0f,0x0a,0x01,0x0a,0x10,0x0d,0x06,0x4d,0x0a,0x10,0x0c,0x06,0x4d,0x0a,0x18,0x0b,0x06,0x4d,0x0a,0x0a,0x26,0x1c,0x13,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x10,0x0b,0x06,0x4d,0x02,0x84,0x05,0x05,0x27,0x26,0x2f,0x27,0x3f,0x27,0x02,0x5d, +0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x5d,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d, +0x05,0x06,0x27,0x11,0x23,0x11,0x06,0x27,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0x04,0x1e,0x94,0x18,0x04,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98, +0xc2,0x93,0x67,0x82,0x18,0x04,0x04,0xfe,0x36,0x01,0xca,0x04,0x04,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x52,0xff,0x62,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x1a,0x03,0x02,0xd9,0x59,0x0f,0x03, +0x01,0x0c,0x03,0x03,0x07,0x40,0x07,0x06,0xd9,0x59,0x1f,0x07,0x2f,0x07,0x02,0x07,0x07,0x03,0x04,0x00,0x2f,0x32,0x2f,0x33,0x00,0x2f,0x5d,0x2b,0x00,0x1a,0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x31,0x30,0x11,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x03,0x52,0xfc,0xae,0x03,0x52,0xfe,0xeb,0x77,0x77,0xed,0x77,0x77,0xff,0xff,0x00,0xb4, +0xff,0xee,0x03,0x23,0x05,0x9a,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x07,0x00,0x04,0x01,0x91,0x00,0x00,0x00,0x01,0x00,0x6e,0x02,0xcd,0x02,0xc2,0x05,0xb0,0x00,0x12,0x00,0x2b,0x40,0x16,0x00,0x0b,0x24,0x04,0x0f,0x07,0x0f,0x52,0x59,0x07,0x04,0x03,0x03,0x0b,0xc2,0x0c,0x0c,0x14,0x04,0x00,0xc2,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f, +0xe1,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0xc4,0x31,0x30,0x13,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xee,0x80,0x80,0x04,0x43,0x8f,0x78,0x86,0x82,0x97,0x4a,0x71,0x02,0xcd,0x02,0xcf,0x73,0x87,0x94,0x84,0xfe,0x35,0x01,0xc3,0xb0,0x79,0x55,0x00,0x00,0x04,0x00,0xbc, +0xff,0xe8,0x08,0xa0,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0xd6,0x40,0x1e,0x2b,0x41,0x30,0x3b,0x04,0x33,0x44,0x36,0x38,0x33,0x38,0x95,0x59,0x33,0x1c,0x1d,0x40,0x1a,0x17,0x20,0x1d,0x1d,0x20,0x95,0x59,0x1d,0x1d,0x03,0x13,0x27,0xb8,0xff,0xc0,0x40,0x3e,0x0b,0x0e,0x48,0x27,0x29,0x44,0x29,0x95,0x59,0x44,0x16, +0x25,0x23,0x13,0x23,0x95,0x59,0x13,0x16,0x0b,0x00,0x91,0x59,0x0b,0x0b,0x03,0x02,0x03,0x0a,0x91,0x59,0x03,0x03,0x02,0x12,0x36,0x36,0x41,0x83,0x2b,0x2b,0x47,0x27,0x3b,0x83,0x30,0x30,0x47,0x16,0x25,0x1f,0x1f,0x1d,0x1a,0x21,0x84,0x18,0x16,0x16,0x47,0x02,0x0e,0xb8,0xff,0xf8,0x40,0x11,0x0c,0x06,0x4d,0x06,0x7d,0x0e,0x0e,0x47, +0x0b,0x01,0x08,0x0c,0x06,0x4d,0x01,0x7e,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0x2f,0x2b,0xe1,0x2b,0x32,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x39,0x2f,0xce,0xf1,0x39,0x39,0xc2,0x2f,0xc4,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f, +0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x04,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35, +0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x64,0xa8,0x01,0x38,0x01,0xce,0xfe,0xf8,0xeb,0x6b,0x5e,0x01,0x50,0xfe,0xc5,0x04,0x39,0x3a,0x5f,0x83, +0x75,0x9b,0x9b,0xa4,0xed,0xed,0x83,0x3b,0x2f,0x44,0x79,0x89,0xa2,0x40,0xf6,0x6c,0xb8,0x92,0x82,0x4e,0x60,0x72,0x48,0x58,0x6c,0x5e,0x8d,0x4b,0xb0,0x9a,0xa2,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0xfe,0x54,0xd2,0xfe,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0xfb,0x08,0x20,0x8e,0x9e,0x01,0xd0,0x8a,0xfa,0x36,0xfe,0xd0,0x8a,0xfe,0x4d, +0xbf,0x22,0x71,0xb0,0x63,0x72,0x28,0x50,0x5c,0x3e,0x74,0x79,0x91,0x2e,0xa0,0x44,0x3f,0x32,0x39,0x2c,0x27,0x3f,0x70,0x4a,0x7d,0x8f,0xff,0xff,0x00,0xbc,0xff,0xe8,0x04,0x4e,0x05,0x9a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x2d,0x02,0x23,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0x32,0xb4,0x0a,0x10,0x02,0x03,0x25,0x01, +0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x1e,0x03,0x6c,0x05,0xd9,0x00,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x00,0x4d,0x02,0x06,0x00,0x00,0x00,0x36,0xb3,0x03,0x02,0x1a,0x1a,0xb8,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfe,0x40,0x18,0x0c,0x06,0x4d,0x1a,0x0e,0x0b,0x06,0x4d,0x01,0x00,0x0d,0x0d,0x02,0x0c,0x06,0x4d,0x0d,0x02, +0x0b,0x06,0x4d,0x2f,0x2a,0x01,0x5d,0x2b,0x2b,0x11,0x35,0x35,0x2b,0x2b,0x2b,0x11,0x35,0x35,0xff,0xff,0xff,0xd7,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00,0x01,0x07,0x00,0xb7,0xff,0x69,0x00,0x00,0x00,0x17,0xb2,0x00,0x00,0x00,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xef,0xb2,0x0b,0x06,0x4d,0x2b, +0x2b,0x11,0x35,0x00,0x00,0x01,0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x19,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0e,0x12,0x48,0x01,0xb3,0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xed,0x31,0x30,0x01,0x2b,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x02,0x00,0x8d,0x03,0xdb, +0x02,0x84,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x3b,0xb9,0x00,0x01,0xff,0xe8,0xb3,0x0e,0x12,0x48,0x05,0xb8,0xff,0xe8,0x40,0x17,0x0e,0x12,0x48,0x05,0x01,0xb3,0x40,0x04,0x00,0x03,0x00,0x0e,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x00,0x06,0x01,0x06,0x2f,0x5d,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0xe1,0x00,0x3f,0xc4,0x1a,0xfd,0xc4, +0x31,0x30,0x01,0x2b,0x2b,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x04,0x00,0x96,0xff,0xec,0x06,0x0e,0x05,0xae,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x2e,0x00,0x63,0x40,0x35,0x15,0x03,0x09,0x07,0x0c,0x07,0xe6,0x59,0x0c,0x24, +0x00,0x02,0x12,0x02,0xe6,0x59,0x12,0x27,0x17,0x15,0x1f,0x25,0xe7,0x59,0x1f,0x19,0x19,0x2a,0xe7,0x59,0x19,0x2d,0x28,0xcc,0x1c,0x1c,0x15,0x15,0x22,0xcc,0x2d,0x2d,0x30,0x0f,0x17,0x17,0x0f,0x09,0x14,0x14,0x05,0xcc,0x0f,0x2f,0xe1,0x33,0x2f,0xc6,0x11,0x33,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x32,0x2f,0xe1,0x00,0x3f,0x2b, +0x00,0x18,0x10,0xc4,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x30,0x31,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x17,0x25,0x01,0x23,0x01,0x03,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x02,0x03,0x22,0x06,0x15, +0x14,0x33,0x32,0x36,0x35,0x34,0x02,0xf7,0x4f,0x5a,0x76,0x8f,0x9a,0x56,0x76,0x1f,0x66,0x5c,0x80,0x8e,0xe4,0xb8,0x72,0x49,0x02,0xdf,0xfb,0x33,0x93,0x04,0xcc,0xd6,0x8d,0x95,0xe0,0xa9,0x83,0x98,0xdd,0x41,0x6c,0x94,0xa0,0x68,0x8f,0x04,0xf7,0x43,0xc3,0x7f,0xbc,0x4f,0x8d,0x35,0x9f,0x87,0xbf,0x01,0x00,0x32,0x1e,0xfa,0x66,0x05, +0x9a,0xfa,0x52,0xa4,0x84,0xb2,0x01,0x0a,0x9c,0x88,0xb5,0xfe,0xf5,0x02,0x76,0xd2,0x7d,0xb8,0xc6,0x86,0xbb,0x00,0x00,0x02,0x00,0x0e,0xff,0xe8,0x02,0x85,0x05,0xd3,0x00,0x17,0x00,0x20,0x00,0x4b,0x40,0x25,0x18,0x01,0x00,0x16,0x0a,0x05,0x00,0x20,0x17,0x17,0x05,0x13,0x05,0x1d,0xda,0x59,0x05,0x10,0x0e,0x13,0x0e,0xec,0x59,0x13, +0x13,0x10,0x1b,0x48,0x08,0x08,0x22,0x00,0x18,0x01,0x0a,0x83,0x16,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0x19,0xcd,0x12,0x39,0x39,0x11,0x39,0x39,0x31,0x30,0x13,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x01,0x11,0x14,0x16,0x33, +0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x35,0x07,0x13,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x0e,0xb2,0x7b,0x6f,0x64,0x77,0xfe,0xe3,0x1c,0x1e,0x30,0x96,0x70,0x71,0xc7,0x50,0xf8,0x6d,0x25,0x4c,0x1d,0x29,0x01,0xa6,0xec,0x01,0xc6,0xe2,0x99,0x87,0x68,0xc3,0xfe,0x79,0xfe,0x60,0x5a,0x29,0x6b,0xa2,0x58,0xf1,0xe1,0x62,0x02,0x2b, +0xbb,0x71,0x35,0x76,0x3e,0xb6,0x00,0x02,0x00,0x92,0x00,0x00,0x04,0x42,0x03,0xb0,0x00,0x03,0x00,0x07,0x00,0x3a,0x40,0x0d,0x07,0xf1,0x01,0x0e,0x06,0xf1,0x40,0x02,0x12,0x03,0x02,0x42,0x06,0xb8,0xff,0xe0,0x40,0x14,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01, +0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x3f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x11,0x21,0x11,0x92,0x03,0xb0,0xfc,0x50,0x4b,0x03,0x19,0x03,0xb0,0xfc,0x50,0x03,0x64,0xfc,0xe8,0x03,0x18,0x00,0x01,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x25,0x40,0x16,0x02,0x0e,0x40,0x03,0x02,0x01, +0x42,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x04,0x05,0x02,0x01,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x02,0x52,0xfe,0x31,0x03,0x8c,0xfe,0x30,0x01,0xd0,0x00,0x00,0x02,0x00,0x83,0x01,0xbc,0x02,0x52,0x03,0x8c,0x00,0x03,0x00,0x07,0x00,0x41,0x40,0x2a,0x06,0xf1, +0x02,0x0e,0x07,0xf1,0x40,0x01,0x03,0x02,0x42,0x02,0x20,0x0c,0x06,0x4d,0x06,0xf1,0x02,0x05,0x20,0x0c,0x06,0x4d,0x05,0xf1,0x03,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x09,0x03,0x08,0x09,0x03,0x02,0xff,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xfd,0xed,0x31,0x30,0x13,0x21,0x11, +0x21,0x13,0x11,0x21,0x11,0x83,0x01,0xcf,0xfe,0x31,0x4c,0x01,0x37,0x03,0x8c,0xfe,0x30,0x01,0x84,0xfe,0xc8,0x01,0x38,0x00,0x00,0x01,0x00,0xb2,0x00,0x89,0x04,0x23,0x03,0xfa,0x00,0x0b,0x00,0x25,0x40,0x15,0x03,0x0e,0x40,0x09,0x06,0x00,0x42,0x20,0x00,0x01,0x0f,0x06,0x01,0x09,0x03,0x0c,0x0d,0x06,0x00,0xff,0x3a,0x2b,0x01,0x5f, +0x5e,0x5d,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x34,0x24,0x33,0x32,0x00,0x04,0x23,0xfe,0xff,0xb6,0xb8,0xfe,0xfe,0x01,0x06,0xb2,0xb7,0x01,0x02,0x02,0x42,0xb8,0xfe,0xff,0x01,0x01,0xb8,0xb9,0xff,0xfe,0xfc,0x00,0x00,0x02,0x00,0x70,0x01,0xaa,0x02,0x66,0x03,0xa0,0x00,0x0b,0x00,0x17, +0x00,0x46,0x40,0x2d,0x0f,0xf1,0x03,0x0e,0x15,0xf1,0x40,0x09,0x00,0x20,0x0c,0x06,0x4d,0x06,0x00,0x42,0x12,0xf1,0x00,0x0c,0x20,0x0c,0x06,0x4d,0x0c,0xf1,0x06,0x0f,0x06,0x1f,0x06,0x02,0x0b,0x03,0x00,0x40,0x09,0x0c,0x48,0x18,0x19,0x06,0x00,0xff,0x3a,0x2b,0x01,0x2b,0x5f,0x5e,0x5d,0x10,0xe1,0x2b,0x10,0xe1,0x2b,0x01,0x2b,0x00, +0x18,0x2f,0x1a,0xed,0xf4,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x66,0x92,0x69,0x67,0x94,0x92,0x69,0x67,0x94,0xfe,0x56,0x67,0x49,0x4a,0x64,0x66,0x4a,0x48,0x66,0x02,0xa6,0x6a,0x92,0x94,0x68,0x66,0x94,0x94,0x66,0x4a,0x66, +0x66,0x4a,0x49,0x65,0x67,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x8c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x56,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x06,0x07,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x2f,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x22,0x23,0x10,0x14,0x25,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x07,0x6c,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x87,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x30, +0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x06,0x0e,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xb8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x1a,0x16,0x10,0x0a,0x25,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x06,0xe2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x31,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x32,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x05,0x85,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07, +0x00,0xdb,0x01,0x84,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x19,0x1f,0x10,0x0a,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0x8b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x12,0x0d,0x0c,0x02,0x03,0x25,0x01, +0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x2f,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfa,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x16,0x1c,0x1d,0x19,0x13,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4, +0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf3,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x02,0x03,0x3e,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xf5,0x00,0x00,0x00,0x16, +0xb9,0x00,0x02,0x01,0x1f,0x40,0x09,0x1a,0x1a,0x19,0x13,0x3e,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe2,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x57,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x0f,0x15,0x02,0x03,0x3e,0x01,0x0c,0x05,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x85,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x71,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x08,0x1a,0x1a,0x0f,0x0f,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x6c,0x02,0x26, +0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x95,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0x1d,0x1e,0x1a,0x10,0x0a,0x3e,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0e,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd1,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d, +0x2a,0x26,0x20,0x17,0x3e,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x06,0xe2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x4f,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x2f,0x1d,0x23,0x10,0x0a,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x85,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x70,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x26,0x26,0x13,0x13,0x3e,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x85,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x01,0x9c, +0x01,0x79,0x00,0x00,0x00,0x0b,0xb6,0x01,0x3f,0x1c,0x1a,0x05,0x19,0x25,0x01,0x2b,0x35,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0xc6,0x00,0x18,0x00,0x25,0x00,0x29,0x00,0xbc,0xb6,0x24,0x18,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x0c,0x00,0x4c,0x28,0x26,0x26,0x19,0x10,0x28,0x80,0x26,0x13,0x05,0xb8, +0xff,0xc0,0x40,0x31,0x0b,0x0f,0x48,0x05,0x05,0x07,0x95,0x02,0x1c,0x0a,0x23,0x95,0x0d,0x16,0x17,0x0f,0x15,0x1d,0x95,0x13,0x10,0x04,0x15,0x19,0x16,0x03,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x09,0x05,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf0, +0x40,0x2b,0x0b,0x06,0x4d,0x09,0x09,0x2b,0x04,0x20,0x06,0x0d,0x06,0x4d,0x20,0x06,0x0c,0x06,0x4d,0x20,0x06,0x0b,0x06,0x4d,0x20,0x83,0x10,0x10,0x0d,0x06,0x4d,0x10,0x0e,0x0c,0x06,0x4d,0x10,0x1a,0x0b,0x06,0x4d,0x10,0x2f,0x2b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b, +0x2b,0x17,0x33,0x2f,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x2b,0x10,0xde,0x1a,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x00,0x2b,0x2b,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x13,0x33,0x03,0x04,0x10,0xfd,0xe4,0xc1,0x8b,0xae,0x9c,0x01,0x7a,0x04,0x74,0xec,0xbe,0xea,0xfb,0xda,0xd1,0x62,0x04,0xa4,0xa4,0xa4,0x7c,0x9a,0xaa,0xa6,0x87,0x8b,0xac,0xfe,0x6b,0xa6,0x7b,0x75,0x52,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x13,0xe4,0x01,0x05,0x01,0x34,0xa6,0x8e, +0xfd,0xcf,0x97,0x79,0xaf,0xde,0xc6,0xaa,0xce,0xc3,0x03,0x8d,0x01,0x04,0xfe,0xfc,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x5e,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x10,0x0c,0x06,0x0b,0x3e,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0xbb,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x01,0xad,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x17,0x18,0x04,0x0f,0x3e,0x01,0x16,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x92,0x05,0x9a,0x00,0x13,0x00,0x17,0x00,0xa0, +0x40,0x5d,0x06,0x09,0x0d,0x17,0x04,0x13,0x10,0x10,0x13,0x91,0x59,0x10,0x10,0x0f,0x16,0x16,0x02,0x91,0x59,0x16,0x0f,0x00,0x16,0x91,0x2b,0x30,0x0b,0x0f,0x03,0x04,0x00,0x12,0x0d,0x10,0x16,0x03,0x00,0x01,0x12,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x12,0x0d,0x06,0x4d, +0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x19,0x09,0x0c,0x14,0x03,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x07,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b, +0x2b,0x2b,0xca,0x2f,0x11,0x12,0x17,0x39,0x00,0x3f,0xc4,0x3f,0xc4,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x21,0x15,0x21,0x35,0x04,0xf2,0xa8,0xfd,0x1a,0xa8,0xa0,0xa0, +0xa8,0x02,0xe6,0xa8,0xa0,0xa0,0xfc,0x72,0x02,0xe6,0x02,0x8e,0xfd,0x72,0x04,0x04,0x98,0xfe,0xfe,0xfe,0xfe,0x98,0xdf,0xdf,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0xbd,0x40,0x40,0x00,0x19,0x01,0x03,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10,0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03, +0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x10,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d, +0x01,0x01,0x1c,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1c,0x01,0x5d,0x2f,0x2b,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0xc4,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8, +0xa4,0xee,0x78,0xa4,0xa4,0x88,0x88,0xa4,0x01,0x4c,0xfe,0xb4,0x04,0x78,0xd8,0xa8,0xb2,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0xa4,0xc2,0xd6,0xcb,0xff,0xff,0xff,0xd0,0x00,0x00,0x02,0x51,0x07,0x0c,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0x01,0x5a,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xad,0x00,0x00,0x02,0x2e,0x05,0xb2,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xd8,0x8a,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0e,0x04,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x13,0x00,0x00,0x02,0x0f,0x06,0x8b,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd5,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xef,0x00,0x00,0x01,0xeb,0x05,0x2f,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06, +0x00,0xd9,0xb1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x23,0x07,0x1a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xd9,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01, +0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdb,0x00,0x00,0x02,0x00,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xda,0xb6,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf5,0x40,0x09,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x50,0xfe,0x70,0x01,0x64, +0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x04,0x04,0x00,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x66,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00,0x00,0x0b,0xb6,0x02,0x00,0x1e,0x10,0x0e,0x0f,0x25,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0xf2,0x07,0x6a,0x02,0x26,0x00,0x2d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x62,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x13,0x0b,0x0c,0x3e,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x0f,0x06,0x0e,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07, +0x00,0xd7,0xff,0x7f,0x00,0x00,0x00,0x08,0xb3,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xea,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x14,0x11,0x06,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x05,0xec, +0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x10,0x0d,0x04,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0c,0x00,0x66,0x40,0x45,0x7a,0x0c,0x01,0x77,0x0b,0x01,0x79,0x02,0x01,0x7d,0x0a,0x01,0x7e,0x01,0x01,0x36,0x0c,0x01,0x2a,0x01, +0x01,0x36,0x00,0x01,0x05,0x15,0x06,0x0f,0x0a,0x0b,0x0b,0x01,0x70,0x00,0x01,0x00,0x14,0x0b,0x06,0x4d,0x00,0x0c,0x08,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x2f,0x0e,0x01,0x5d,0x2f,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x5d,0x33,0x33,0x2f, +0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x03,0xa4, +0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0x96,0x00,0x00,0xff,0xff,0x00,0x27,0xfe,0x85,0x01,0x4a,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x01,0x9c,0xff,0x4c,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x01,0x9c,0x01,0x6a,0x00,0x00, +0x00,0x0e,0xb9,0x00,0x01,0xff,0xea,0xb4,0x16,0x14,0x08,0x01,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x85,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0xb9,0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x16,0x13,0x08,0x01,0x3e,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x05,0x40,0x05,0x9a, +0x00,0x1b,0x00,0xb8,0xb5,0x02,0x09,0x01,0x10,0x04,0x0c,0xb8,0xff,0xc0,0xb3,0x10,0x00,0x4d,0x0c,0xb8,0xff,0xe8,0x40,0x3d,0x0c,0x00,0x4d,0x02,0x20,0x10,0x00,0x4d,0x17,0x19,0x14,0x19,0x91,0x59,0x14,0x02,0x0c,0x1b,0x10,0x08,0x03,0x1b,0x07,0x12,0x16,0x16,0x12,0x1b,0x1b,0x0c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d, +0x12,0x08,0x0b,0x06,0x4d,0x12,0x7e,0x7f,0x0f,0x01,0x0f,0x18,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x1a,0x0b,0x06,0x4d,0x0f,0x0f,0x1d,0x09,0x03,0x06,0x06,0x0d,0x06,0x4d,0x06,0x06,0x0c,0x06,0x4d,0x06,0x06,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40, +0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0xc4,0x3f,0xc4,0x12,0x39,0x39,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x2b,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x26,0x27,0x23, +0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x01,0x90,0x16,0x18,0x06,0x08,0xa8,0xda,0x02,0xce,0x02,0x38,0x04,0x0a,0xa8,0xfe,0x93,0x4c,0x3d,0x4e,0x3f,0xbd,0x04,0x77,0x20,0x3a,0x35,0x90,0xfb,0xf4,0x05,0x9a,0xfb,0xd6,0x02,0x66,0x48,0x94,0x03,0xb6, +0xfa,0xa6,0xfe,0x1a,0x1f,0xa5,0x2c,0x01,0x0e,0x00,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x04,0x18,0x00,0x19,0x00,0x9c,0x40,0x2b,0x00,0x18,0x01,0x10,0x03,0x05,0x07,0x02,0x07,0x91,0x59,0x02,0x14,0x0c,0x17,0x0c,0x95,0x59,0x17,0x10,0x12,0x0f,0x11,0x15,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b, +0x06,0x4d,0x00,0x84,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x09,0x09,0x1b,0x13,0x10,0x06,0x0d,0x06,0x4d,0x10,0x06,0x0c,0x06,0x4d,0x10,0x06,0x0b,0x06,0x4d,0x10,0x84,0x11,0x02,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x11, +0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x11,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc4,0x00,0x3f,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x5f,0x5e,0x5d,0x25,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10, +0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xfe,0x9a,0x4c,0x3e,0x4e,0x40,0xbe,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x75,0xdb,0x01,0x5a,0x1a,0xfe,0x40,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, +0x06,0x8b,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xce,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x06,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x2f,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13, +0x40,0x0b,0x02,0x0a,0x1a,0x1b,0x03,0x09,0x3e,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x1c,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xd7,0x01,0x5e,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x1b,0x0c,0x0c,0x3e,0x02,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x35,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x21,0x21,0x06,0x06,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00, +0x00,0x07,0x01,0x9c,0x00,0xe4,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x85,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x06,0x01,0x9c,0x19,0x00,0x00,0x0b,0xb6,0x01,0x1f,0x14,0x14,0x06,0x06,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xd7, +0x00,0xb1,0x01,0x5c,0x00,0x08,0xb3,0x01,0x3a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x06,0x00,0xd7,0x37,0x00,0x00,0x08,0xb3,0x01,0x30,0x11,0x26,0x00,0x2b,0x35,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0xa3,0x40,0x1a,0x0b,0x08, +0x05,0x02,0x02,0x05,0x91,0x59,0x02,0x0f,0x06,0x02,0x91,0x2b,0x30,0x0c,0x00,0x0f,0x00,0x91,0x59,0x0f,0x03,0x06,0x12,0x0d,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x2f,0x0b,0x06,0x4d,0x04,0x0e,0x06,0x07,0x09,0x42,0x09,0x07,0x00,0x0e,0x06,0x07,0x0d,0x42,0x2f,0x0d,0x3f,0x0d,0xcf,0x0d,0x03,0x0d,0x0d,0x10, +0x0b,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x7e,0x07,0x04,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x11,0x40,0x0c,0x00,0x4d,0x11,0xb8,0xff,0xc0,0xb2,0x0b,0x00,0x4d,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x5d,0x2b,0x01, +0x10,0xe0,0x18,0x10,0xc6,0x2b,0x01,0x10,0xe2,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xf6,0xf6,0xa8,0xf9,0xf9,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfe,0x1a, +0x9b,0xfd,0x7f,0x02,0x81,0x9b,0x01,0xe6,0x98,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x93,0x40,0x45,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x1d,0x01,0x0d,0x10,0x10,0x0d,0x96,0x59,0x10,0x18,0x14,0x40,0x1c,0x19,0x11,0x14,0x14,0x11,0x95,0x59,0x14,0x0f,0x07,0x05,0x0a,0x05,0x95,0x59,0x0a,0x16,0x07,0x1e, +0x2f,0x1b,0x01,0x1b,0x1b,0x02,0x0e,0x12,0x10,0x14,0x19,0x1d,0x04,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x0c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xee,0xb6,0x0b,0x06,0x4d,0x0c,0x0c,0x20,0x1f,0x11,0x12,0x39,0x2f,0x2b,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0xdc,0xc6,0x10,0xc0,0x2f,0x5d,0xc6,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a,0x18,0x10,0xcd,0xc6,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x01,0x23,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33, +0x35,0x36,0x37,0x37,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x77,0xf8,0x45,0x52,0x3c,0x2f,0x3a,0x5f,0xfe,0xf3,0xa3,0xa3,0xb0,0xb0,0x04,0x4e,0x52,0x01,0x02,0xfe,0xfe,0xf8,0x02,0x23,0xf0,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x01,0x0d,0x85,0xcc,0x8c,0xfa,0x02,0x19,0x1a,0xfe,0xd1,0x8c,0xcc,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, +0x07,0x0e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x5f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x03,0x18,0x0e,0x05,0x0d,0x25,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd6,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x1c,0x12,0x08,0x11,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x06,0x8b,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x81,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x0d,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0x2f,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xf9,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x15,0x08,0x11,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x1a,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x84,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x14,0x0e,0x05,0x0d,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbe,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xfd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xfb,0x40,0x09,0x18,0x12,0x08,0x11,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x70,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x10,0x00,0x00,0xff,0xff,0x00,0x90,0xfe,0x70,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x00,0x07,0x00,0xdf,0x02,0x90, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x6a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xd7,0x02,0x5b,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0e,0x02,0x26,0x00,0x5a,0x00,0x00, +0x01,0x07,0x00,0xd7,0x01,0x80,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfb,0x40,0x09,0x1e,0x1e,0x13,0x14,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x69,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xc5,0x01,0x5b,0x00,0x13,0x40,0x0b,0x01,0x00,0x13,0x14, +0x05,0x00,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0e,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x10,0x1a,0x1b,0x0c,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x02,0x62,0x06,0x02,0x00,0x0c,0x00,0x39,0x40,0x23,0x00,0x02,0x0a,0x02,0x95,0x59,0x0a,0x01,0x05,0x15,0x2f,0x00,0x01,0x00,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x84,0x06,0x06,0x0e,0x0d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0xc4,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10, +0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x62,0x2e,0x3e,0xac,0xa4,0xbd,0x89,0x4a,0x2c,0x05,0x5c,0x1b,0xd9,0xfb,0x62,0x04,0xa6,0xa1,0xbb,0x12,0x00,0x00,0x04,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x52,0x00,0x10,0x00,0x1b,0x00,0x23,0x00,0x27,0x00,0xfe,0x40,0x39,0x78,0x27,0x01,0x76, +0x22,0x01,0x79,0x1d,0x01,0x74,0x0c,0x01,0x7b,0x0a,0x01,0x7b,0x07,0x01,0x77,0x06,0x01,0x02,0x08,0x0c,0x00,0x4d,0x1c,0x02,0x01,0x20,0x01,0x23,0x03,0x04,0x20,0x04,0x73,0x04,0x01,0x7c,0x01,0x01,0x20,0x30,0x0c,0x00,0x4d,0x00,0x16,0x01,0x90,0x27,0x01,0xa0,0x27,0x01,0x27,0xb8,0xff,0xc0,0xb3,0x1d,0x21,0x48,0x27,0xb8,0xff,0xc0, +0x40,0x39,0x16,0x19,0x48,0x27,0xa0,0x26,0xd0,0x26,0xe0,0x26,0x03,0x10,0x26,0x20,0x26,0x30,0x26,0x80,0x26,0x90,0x26,0x05,0x26,0x0b,0x02,0x91,0x1c,0x1c,0x16,0x00,0x11,0xc5,0x0b,0x10,0x06,0x40,0x16,0x03,0x04,0x00,0x12,0x24,0x80,0x26,0x26,0x14,0x19,0xc4,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x14,0xc4,0x08,0xb8,0xff,0xc0,0xb5,0x0c, +0x00,0x4d,0x08,0x08,0x06,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x00,0x4d,0x10,0x08,0x0c,0x00,0x4d,0x1c,0x23,0x06,0x10,0x04,0x05,0x77,0x05,0x01,0x79,0x00,0x01,0x05,0xb8,0xff,0xe8,0x40,0x0c,0x0c,0x00,0x4d,0x00,0x18,0x0c,0x00,0x4d,0x00,0x00,0x29,0x05,0x2f,0x11,0x33,0x2f,0x2b,0x2b,0x5d,0x5d,0x12,0x17,0x39,0x2b,0x2b,0x39,0x2f,0x2b, +0xe9,0xd4,0x2b,0xe9,0x10,0xc0,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0x3f,0x1a,0xcd,0x39,0xd4,0xed,0x11,0x12,0x39,0x2f,0xed,0x10,0xd6,0x5d,0x72,0xcd,0x2b,0x2b,0x71,0x72,0x5d,0x2b,0x31,0x30,0x01,0x5d,0x5d,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x01,0x01,0x23,0x13,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x11,0x65,0x78,0x5c,0x58,0x70,0x60,0x6e,0x32,0x40,0x72,0x30,0x42,0x42,0xc9,0xe1,0x0b,0x0b,0x04,0x0a,0x0d,0xdf,0x02, +0x04,0xfe,0xfa,0x7f,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x62,0x34,0x70,0x59,0x6e,0x6d,0x54,0x70,0x36,0x01,0x15,0x3f,0x30,0x72,0x42,0x30,0x31,0x3e,0xfb,0xae,0x02,0x63,0x1e,0x42,0x3d,0x23,0xfd,0x9d,0x06,0x29,0xfe,0xb8,0x01,0x48,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x66,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xdc, +0x00,0xe9,0xff,0xc2,0x01,0x07,0x00,0x8e,0x01,0x0c,0x01,0x5c,0x00,0x33,0x40,0x25,0x04,0x0f,0x39,0x1f,0x39,0x3f,0x39,0x5f,0x39,0x90,0x39,0x05,0x20,0x39,0x5f,0x39,0x02,0x39,0x26,0x03,0x02,0x20,0x40,0x11,0x15,0x48,0x0f,0x20,0x01,0x10,0x20,0x4f,0x20,0xef,0x20,0x03,0x20,0x00,0x11,0x5d,0x71,0x2b,0x35,0x35,0x10,0xde,0x5d,0x5d, +0x34,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x07,0x66,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0x8e,0x03,0x30,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x17,0x16,0x15,0x11,0x09,0x25,0x02,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x06,0x0a,0x02,0x26,0x00,0xa0,0x00,0x00, +0x01,0x07,0x00,0x8e,0x02,0x55,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x11,0x37,0x37,0x1e,0x1e,0x25,0x03,0x38,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xcd,0x05,0xaa,0x07,0x66,0x02,0x26,0x00,0x92,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xfa,0x01,0x5c,0x00,0x13,0x40,0x0b,0x03,0x20,0x25,0x27,0x16,0x08, +0x25,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x31,0xff,0xae,0x04,0x96,0x06,0x0a,0x02,0x26,0x00,0xa1,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x58,0x00,0x00,0x00,0x16,0xb9,0x00,0x03,0xff,0xf9,0x40,0x09,0x25,0x25,0x16,0x10,0x3e,0x03,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x70, +0x01,0xfe,0x01,0x50,0x02,0xdf,0x00,0x0b,0x00,0x15,0x40,0x0b,0x06,0x00,0xb0,0x5b,0x06,0x09,0xaf,0x03,0x2f,0x0d,0x01,0x5d,0x2f,0xe1,0x00,0x2f,0x2b,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x01,0xfe,0x42,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x42,0x00,0xff,0xff, +0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x43,0x02,0xa0,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07, +0x00,0x43,0x01,0xb5,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x1f,0x1d,0x13,0x14,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x07,0x66,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x96,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x5f,0x1d,0x01,0x00,0x1d, +0x1f,0x13,0x14,0x25,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x0a,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x1d,0x1f,0x13,0x14,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe4,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0x8f,0x02,0x1c,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf1,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x05,0x87,0x02,0x26,0x00,0x5a, +0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x44,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xef,0x40,0x0a,0x31,0x1f,0x13,0x14,0x25,0x02,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x66,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xf6,0x01,0x5c,0x00,0x1a, +0xb3,0x01,0x00,0x11,0x01,0xb8,0xff,0xe6,0x40,0x09,0x11,0x0f,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x5d,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x0a,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x9e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd6,0x40,0x09,0x18,0x16,0x0c,0x00,0x25, +0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x1c,0x40,0x10,0x00,0xb3,0x40,0x03,0x04,0x00,0xb4,0x80,0x10,0x02,0x50,0x02,0x60,0x02,0x03,0x02,0x2f,0x5d,0x1a,0xe9,0x00,0x3f,0x1a,0xed,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01, +0xbe,0x00,0x00,0x01,0x00,0x00,0x05,0x74,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x10,0xb7,0x02,0x01,0xd9,0x59,0x02,0x00,0x03,0x02,0x2f,0x2f,0x00,0x3f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x03,0xee,0x05,0xb2,0x00,0x23,0x00,0x92,0x40,0x57,0x01,0x02, +0x22,0x03,0x0b,0x0e,0x0e,0x0b,0x9a,0x59,0x00,0x0e,0x10,0x0e,0x20,0x0e,0x03,0x09,0x03,0x0e,0x12,0x40,0x21,0x1e,0x0f,0x12,0x12,0x0f,0x9a,0x59,0x0f,0x12,0x1f,0x12,0x02,0x09,0x03,0x12,0x12,0x16,0x06,0x19,0x1b,0x16,0x1b,0x9a,0x59,0x16,0x04,0x06,0x05,0x9a,0x59,0x06,0x12,0x00,0x1f,0x4f,0x18,0x01,0x18,0x06,0x06,0x25,0x0f,0x12, +0x1e,0x21,0x04,0x01,0x08,0x0c,0x06,0x4d,0x01,0x8a,0x04,0x08,0x0b,0x10,0x0c,0x0b,0x10,0x0c,0x06,0x4d,0x0b,0x2f,0x2b,0xdd,0xc4,0x10,0xc6,0x32,0xe1,0x2b,0x17,0x39,0x12,0x39,0x2f,0xd4,0x5d,0xd4,0xc4,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x1a, +0x18,0x10,0xcd,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x17,0x39,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x03,0x10,0xfe,0xd8,0xc1,0x02,0xc7,0xfc,0x7c,0xda,0xc5,0xc5,0xc5,0xc5, +0xda,0xad,0x76,0x5f,0x63,0x70,0xe5,0x01,0x28,0xfe,0xd8,0x01,0x28,0x01,0xe8,0x09,0xf3,0x60,0x8c,0x87,0x47,0xf2,0x28,0x8c,0x88,0x8d,0x7d,0xbc,0xf0,0x29,0x9b,0x39,0xfe,0xcd,0x6b,0x8d,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xdd,0x04,0x78,0x04,0x48,0x00,0x12,0x00,0x19,0x00,0x53,0x40,0x2e,0x00,0x06,0x10,0x06,0x02,0x09,0x03,0x06, +0x06,0x00,0x04,0x13,0x00,0xc3,0x59,0x13,0x13,0x10,0x04,0x10,0x16,0xc3,0x59,0x10,0x0a,0x04,0xc3,0x59,0x0a,0x19,0x07,0x40,0x10,0x1e,0x48,0x07,0x07,0x00,0xaf,0x13,0x13,0x1b,0x19,0x01,0xaf,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12, +0x00,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x01,0x21,0x13,0x16,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x07,0x11,0x26,0x23,0x22,0x07,0x11,0x04,0x78,0xfc,0xc4,0x01,0x78,0xb0,0xff,0x8c,0x48,0x68,0xdb,0x8f,0xee,0xfe,0xdd,0x01,0x29,0xe4,0xd8,0x01,0x30,0xda,0x82,0xad,0xaf,0x76,0x02,0x12, +0xfe,0x8e,0x79,0xf5,0x2a,0x98,0x7d,0x01,0x43,0xf2,0xfe,0x01,0x38,0xfe,0xe4,0xd0,0x01,0x29,0x7b,0x7b,0xfe,0xd7,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xe2,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x35,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x30,0x2d,0x00,0x3f, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x07,0x2a,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x07,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7d,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x44,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x8c,0xff,0xec,0x07,0x2c,0x05,0x9e,0x00,0x26,0x02,0x39, +0x11,0x00,0x00,0x27,0x00,0xbc,0x03,0x09,0x00,0x00,0x01,0x07,0x02,0x3b,0x04,0x7f,0xfd,0xb8,0x00,0x0b,0xb4,0x04,0x03,0x02,0x48,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xa2,0xff,0xec,0x06,0xa5,0x05,0xa4,0x00,0x26,0x02,0x3a,0x55,0x00,0x00,0x27,0x00,0xbc,0x02,0x82,0x00,0x00,0x01,0x07,0x02,0x3b,0x03,0xf8,0xfd,0xb8, +0x00,0x0b,0xb4,0x04,0x03,0x02,0x2e,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01, +0x04,0x00,0x00,0x01,0x00,0xdb,0xfe,0x85,0x01,0xfc,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0xfc,0xa6,0x7b,0x75,0x77,0xfe,0xfc,0x01,0x04,0x00,0xff,0xff,0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16, +0x02,0x06,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0xce,0x04,0x96,0x01,0xdb,0x06,0x01,0x00,0x03,0x00,0x0f,0xb5,0x01,0x00,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0xdb,0xaf,0x5e,0x66,0x06,0x01,0xfe,0x95,0x01,0x6b,0x00,0x03,0xff,0xda,0x04,0xa4,0x02,0x84,0x06,0x0f,0x00,0x03,0x00,0x0f, +0x00,0x1b,0x00,0x2a,0x40,0x14,0x0a,0x04,0x16,0xc1,0x40,0x10,0x03,0x01,0x0d,0xc0,0x07,0x07,0x00,0x13,0xc0,0x19,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x33,0x2f,0xe1,0x11,0x33,0x2f,0xe1,0x00,0x2f,0xcd,0xd4,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xd6,0xaf,0x5d,0x65,0xf2,0x28,0x39,0x39,0x27,0x2a,0x3a,0x3a,0xfd,0xf2,0x28,0x3a,0x3a,0x28,0x29,0x3b,0x3a,0x06,0x0f,0xfe,0x95,0x01,0x6b,0xfe,0xb9,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x5f,0xff,0x99,0x00,0x12,0x40,0x0a,0x02,0x13,0x03,0x02,0x17,0x12,0x12,0x05,0x05,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14, +0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc5,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf7,0xff,0x99,0x00,0x14,0xb3,0x01,0x0f,0x03,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x01,0x2b, +0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf8,0xff,0x99,0x00,0x07,0xb2,0x01,0x07,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99, +0x00,0x12,0x40,0x0a,0x02,0x1b,0x03,0x02,0x1a,0x18,0x18,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb3,0x00,0x00,0x05,0x48,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe5,0xff,0x99,0x00,0x14,0xb3,0x01,0x11,0x03,0x01,0xb8,0xff,0xc6,0xb4,0x0e,0x0e,0x05,0x05,0x3e,0x01,0x2b, +0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3b,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x92,0x00,0x00,0x01,0x07,0x01,0x9f,0xff,0x03,0xff,0x99,0x00,0x14,0xb3,0x01,0x1f,0x03,0x01,0xb8,0xff,0xe8,0xb4,0x1c,0x1c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5c,0x06,0x0f,0x02,0x26, +0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0xa0,0xd8,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0b,0x0e,0x0e,0x05,0x05,0x3e,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x0b,0x00,0x5f,0x40,0x18,0x77,0x09,0x01,0x71,0x08,0x01,0x76,0x07,0x01,0x79,0x02,0x01,0x7e,0x01,0x01,0x78,0x00,0x01,0x0a,0x08,0x0c,0x00, +0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x02,0x10,0x0b,0x0c,0x00,0x4c,0x0b,0xb8,0xff,0xf8,0x40,0x0e,0x0c,0x00,0x4d,0x0b,0x03,0x00,0x12,0x00,0x18,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xe8,0xb7,0x0b,0x0c,0x00,0x4c,0x00,0x00,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x00,0x3f,0x3f,0x31,0x30,0x01,0x2b,0x2b,0x2b, +0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x04,0xef,0xbb,0xfe,0x6c,0x10,0x0c,0x04,0x0a,0x14,0xfe,0x6a,0xb4,0x02,0x0e,0xbe,0x04,0x7e,0x2f,0x47,0x3e,0x39,0xfb,0x83,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff, +0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0x00,0x03,0x00,0x3a,0x00,0x00,0x03,0xdb,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x52,0x40,0x32,0x06,0x05,0x91,0x59,0x06,0x02,0x09,0x06,0x91,0x2b,0x30,0x02,0x01,0xee,0x59,0x02,0x03,0x09,0x0a,0xee,0x59,0x09,0x12,0x0f,0x04,0x5f,0x04,0x02,0x0b,0x03, +0x09,0x08,0x05,0x04,0xff,0x3a,0x30,0x01,0x70,0x01,0x02,0x00,0x01,0x00,0x01,0x0a,0x08,0x08,0x0d,0x09,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x01,0x5f,0x5e,0x5d,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0xc0, +0xfc,0x94,0x03,0x6c,0x8a,0xfd,0xa9,0x02,0x57,0xa5,0xfc,0x5f,0x03,0xa1,0x04,0xfa,0xa0,0xfc,0xee,0x99,0xfc,0xdf,0xa2,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x00,0x07,0x00,0x6f,0x40,0x3c,0x07,0x02,0x91,0x59,0x07,0x03,0x04,0x00, +0x12,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x12,0x0c,0x06,0x4d,0x01,0x01,0x09,0x04,0x06,0x0d,0x06,0x4d,0x04,0x06,0x0c,0x06,0x4d,0x04,0x06,0x0b,0x06,0x4d,0x04,0x7e,0x05,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3, +0x0c,0x06,0x4d,0x05,0xb8,0xff,0xfe,0xb3,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x04,0xfc,0xaa,0xfd,0x13,0xa9,0x04,0x40,0x04,0xfe,0xfb,0x02,0x05,0x9a,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x5e,0x40,0x0c,0x05,0x0a,0x01,0x04,0x08,0x01,0x0c,0x03,0x01,0x10,0x03,0x0a,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x08,0xb8,0xff,0xe8,0x40,0x22,0x0c,0x00,0x4d,0x03,0x18,0x0c,0x00,0x4d,0x04,0x07,0x06, +0x06,0x07,0x91,0x59,0x06,0x03,0x02,0x00,0x0b,0x00,0x0b,0x91,0x59,0x00,0x12,0x07,0x00,0x00,0x0d,0x08,0x04,0x0a,0x02,0x2f,0x33,0xc6,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15, +0x21,0x01,0x01,0x21,0x03,0xf0,0xfc,0x3e,0x01,0xd1,0xfe,0x59,0x03,0x5a,0xfd,0x9b,0x01,0x7b,0xfe,0x5c,0x02,0xcc,0x4e,0x02,0x94,0x02,0x5e,0x5a,0x9b,0xfd,0xe9,0xfd,0xac,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x88,0x00,0x00,0x05,0xae,0x05,0x9a,0x00,0x19,0x00,0xca,0xb9,0x00,0x16,0xff,0xc0,0xb3,0x0c,0x00,0x4d,0x03,0xb8,0xff,0xc0,0x40,0x1a,0x0c,0x00,0x4d,0x18,0x0e,0x0b,0x01,0x0b,0x01,0x91,0x59,0x0b,0x0b,0x0c,0x14,0x00,0x06, +0x03,0x0c,0x12,0x07,0x08,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x04,0x7e,0x07,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xf4,0x40,0x40,0x0b,0x06,0x4d,0x07,0x0e,0x0c,0x0d,0x12,0x42,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d, +0x15,0x7e,0x12,0x0d,0x0c,0x06,0x4d,0x12,0x08,0x0d,0x06,0x4d,0x12,0x0d,0x0b,0x06,0x4d,0x12,0x12,0x1a,0x18,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0d,0xb8,0xff,0xfb,0x40,0x0a,0x0b,0x06,0x4d,0x0d,0x0d,0x1b,0x1a,0x4f,0x1b,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b, +0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x2b,0x01,0x11,0x33,0x20,0x11,0x11,0x33,0x11,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x11,0x33,0x11, +0x10,0x21,0x33,0x11,0x03,0x68,0x39,0x01,0x6a,0xa3,0xfe,0xe2,0xef,0x39,0x9b,0x39,0xf0,0xfe,0xe4,0xa2,0x01,0x6a,0x39,0x05,0x9a,0xfc,0x80,0x01,0x6e,0x02,0x12,0xfd,0xee,0xe3,0xfe,0xe1,0xfe,0x7a,0x01,0x86,0x01,0x1f,0xe3,0x02,0x12,0xfd,0xee,0xfe,0x92,0x03,0x80,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x05,0xa9,0x05,0xb2,0x02,0x06, +0x00,0x9f,0x00,0x00,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2, +0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x95,0x01,0x5b,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfc,0x40,0x0a,0x1d,0x17,0x05,0x00,0x25,0x02,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x01,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x41, +0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0e,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x01,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x01,0x9f,0x00,0xe6,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x77,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x01,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x44,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x4b,0x17,0x15,0x07,0x02,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x01,0x02,0x26, +0x01,0xc9,0x00,0x00,0x01,0x06,0x01,0x9f,0xe1,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe7,0x40,0x09,0x0e,0x0d,0x05,0x06,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0xa0,0x01,0x07,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01, +0xb8,0xff,0xd8,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x02,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x00,0x14,0x00,0x25,0x00,0xc7,0xb5,0x02,0x1c,0x01,0x10,0x04,0x0f,0xb8,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x07,0xb8,0xff,0xe8,0x40,0x3e,0x0b, +0x00,0x4d,0x0d,0x15,0x16,0x16,0x15,0x96,0x59,0x16,0x16,0x06,0x13,0x06,0x1b,0x95,0x59,0x06,0x01,0x00,0x1f,0x21,0x13,0x21,0x95,0x59,0x13,0x16,0x01,0x1c,0x0c,0x15,0x15,0x01,0x09,0x08,0x0c,0x06,0x4d,0x19,0x84,0x09,0x09,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x83,0x24,0xb8,0xff,0xf0, +0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x24,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x24,0x24,0x27,0x1f,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x02,0xb8,0xff,0xfa,0x40,0x09,0x0c,0x06,0x4d,0x02,0x0a,0x0b,0x06,0x4d,0x02,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x11,0x39,0x2f,0x39,0x00,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x01,0x5f,0x5e,0x5d,0x25,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16, +0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x10,0x01,0x49,0xa2,0xdc,0xb9,0xad,0xc7,0x99,0x7a,0xb5,0xc3,0xf2,0xc5,0x98,0x2b,0x7b,0x9f,0xd2,0x74,0x7c,0x8c,0x86,0x81,0x91,0x2e,0xfd,0xf1,0x06,0x3c,0xbf,0xe2,0xb5,0xa0,0x78,0xd1,0x27,0x04,0x1d,0xd7,0xa6,0xc1, +0xf1,0x02,0xfe,0x83,0x11,0xad,0x6d,0xdd,0x9a,0x8c,0xfc,0x80,0x57,0x95,0x86,0x01,0x2f,0x00,0x00,0x01,0x00,0x05,0xfe,0x1f,0x03,0xe6,0x04,0x00,0x00,0x18,0x00,0x95,0xb3,0x7c,0x00,0x01,0x0c,0xb8,0xff,0xc0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x00,0x05,0x0b,0x03,0x03,0x11,0x08,0x0f,0x03,0x1c,0x11,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08, +0x0b,0x06,0x4d,0x14,0x83,0x0f,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xe8,0x40,0x20,0x0b,0x06,0x4d,0x0f,0x0f,0x1a,0x05,0x09,0x08,0x08,0x19,0x0b,0x00,0x03,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x84,0x05,0x18,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c, +0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x05,0x05,0x1a,0x19,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x12,0x39,0x12,0x39,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x3f,0xc4,0x12,0x17,0x39,0x31,0x30,0x2b,0x5d,0x05,0x10,0x07,0x23,0x36,0x11,0x26,0x02,0x27,0x33,0x12, +0x13,0x33,0x36,0x12,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x02,0x06,0x07,0x02,0x37,0x04,0xaf,0x0f,0x28,0xec,0x7a,0xbc,0xf9,0x5e,0x04,0xa6,0x7d,0x0a,0xab,0x06,0x3c,0x7f,0x31,0x45,0xfe,0xc0,0x5c,0xa9,0x01,0x46,0xd7,0x02,0x59,0xc2,0xfe,0x44,0xfe,0x4b,0xf4,0x01,0x57,0xa4,0x3e,0x44,0x35,0x20,0x86,0xfe,0xfe,0xfd,0x47,0x00,0x01, +0x00,0x4c,0xfe,0xcb,0x03,0x7f,0x05,0xec,0x00,0x17,0x00,0x69,0x40,0x41,0x0f,0x10,0x01,0x0f,0x07,0x01,0x10,0x06,0x13,0x06,0x0f,0x0b,0x0e,0x0b,0x96,0x59,0x0e,0x00,0x00,0x0c,0x0c,0x08,0x0b,0x0e,0x0e,0x16,0x01,0x16,0xed,0x03,0x03,0x19,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x83,0x08, +0x18,0x0d,0x06,0x4d,0x08,0x20,0x0c,0x06,0x4d,0x08,0x18,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0xc6,0x10,0xc0,0x2f,0x32,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x01, +0x35,0x21,0x35,0x21,0x15,0x00,0x11,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x39,0xb3,0x62,0x7d,0x8a,0xfe,0x6b,0x02,0x54,0xfe,0x4c,0x02,0x5b,0xfd,0xaf,0x01,0x20,0xd3,0x96,0xfe,0xcb,0x4f,0x4d,0x44,0x3f,0x12,0x32,0x01,0x95,0x01,0xb2,0x01,0xee,0x04,0x85,0x87,0xfd,0xfb,0xfe,0x66,0xfa,0x2f,0x23,0x8b,0x6f,0x64,0x00,0x01,0x00,0x82, +0xfe,0x6c,0x03,0xf8,0x04,0x18,0x00,0x14,0x00,0x7f,0x40,0x2a,0x02,0x13,0x01,0x02,0x13,0x01,0x10,0x04,0x10,0x04,0x12,0x04,0xec,0x59,0x12,0x10,0x0c,0x0f,0x08,0x15,0x00,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x83,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, +0xfa,0x40,0x22,0x0c,0x06,0x4d,0x01,0x01,0x16,0x0c,0x0f,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x09,0x04,0x0d,0x06,0x4d,0x09,0x2f,0x16,0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x3f,0x3f,0x2b,0x11,0x00, +0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa6,0xec,0x7c,0xa1,0xa3,0x24,0xa8,0x1c,0x04,0x6f,0xe5,0x01,0x5a,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x87,0xfd,0xb5,0x02,0xb6,0xea,0x60,0x4a,0x63,0xc5,0xfe,0x5e, +0x00,0x03,0x00,0x61,0xff,0xe8,0x04,0x50,0x05,0xfe,0x00,0x0a,0x00,0x10,0x00,0x17,0x00,0xc7,0x40,0x10,0x09,0x16,0x01,0x06,0x14,0x01,0x03,0x00,0x0e,0x01,0x0f,0x0a,0x01,0x10,0x06,0x09,0xb8,0xff,0xe8,0xb3,0x0c,0x00,0x4d,0x15,0xb8,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x0d,0x18,0x0c,0x00,0x4d,0x0b,0x11,0x96,0x59,0x0b,0x06, +0x00,0x0b,0x96,0x2b,0x30,0x06,0x0d,0x95,0x59,0x06,0x01,0x00,0x15,0x95,0x59,0x00,0x16,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x83,0x0b,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x30,0x0b,0x06,0x4d,0x20,0x11,0x30,0x11, +0x02,0x11,0x11,0x19,0x10,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x00, +0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x2b,0x2b,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x05,0x22,0x00,0x11,0x10,0x00,0x33,0x20,0x11,0x10,0x00,0x13,0x02,0x21,0x22,0x02,0x07,0x05,0x21,0x12,0x12,0x33,0x32,0x12,0x02,0x4e,0xe9,0xfe,0xfc,0x01,0x0f,0xfe,0x01,0xe2,0xfe,0xf3,0x63,0x12,0xfe, +0xc9,0x96,0xb4,0x0a,0x02,0x9e,0xfd,0x61,0x05,0xb2,0x9d,0x99,0xad,0x18,0x01,0x92,0x01,0x6c,0x01,0x7f,0x01,0x99,0xfd,0x01,0xfe,0x86,0xfe,0x63,0x03,0x5c,0x02,0x2e,0xfe,0xd1,0xff,0x84,0xfe,0xe1,0xfe,0xd3,0x01,0x31,0x00,0x01,0x00,0xa6,0xff,0xf4,0x02,0x08,0x04,0x00,0x00,0x0b,0x00,0x49,0x40,0x32,0x03,0x40,0x0b,0x0c,0x00,0x4c, +0x05,0x0f,0x0b,0x09,0x02,0x09,0xec,0x59,0x02,0x0b,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x84,0x04,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x31,0x30, +0x2b,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x08,0x3e,0x3b,0xe9,0xa3,0x65,0x2a,0x30,0x0a,0x16,0x01,0x15,0x02,0xf7,0xfd,0x0e,0x8a,0x12,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x13,0x04,0x0e,0x00,0x14,0x00,0xa1,0x40,0x15,0x09,0x03,0x01,0x0d,0x02,0x01,0x06,0x13,0x01,0x0d,0x01,0x01,0x10,0x04,0x03,0x18, +0x0b,0x0c,0x00,0x4c,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x15,0x0b,0x06,0x4d,0x14,0x02,0x11,0x03,0x03,0x00,0x06,0x0c,0x11,0xec,0x59,0x0c,0x06,0x0f,0x04,0x00,0x15,0x14,0xb8,0xff,0xe0,0x40,0x21,0x0b,0x0c,0x00,0x4c,0x14,0x02,0x02,0x00,0x0e,0x0e,0x70,0x00,0x01,0x00,0x08,0x04,0x08,0x0d,0x06,0x4d, +0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfa,0x40,0x0e,0x0d,0x06,0x4d,0x05,0x06,0x0c,0x06,0x4d,0x05,0x06,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x5d,0x33,0x2f,0x11,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x33,0x3f,0xc4,0x2b,0x11,0x12,0x00,0x39,0x11,0x12,0x39,0x39, +0x31,0x30,0x01,0x2b,0x2b,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x01,0x07,0x11,0x23,0x11,0x33,0x11,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x04,0x13,0xcb,0xfe,0x8e,0x8d,0xa3,0xa3,0x01,0x13,0x75,0x71,0x2e,0x48,0x22,0x1e,0x32,0x42,0x90,0x73,0x01,0xf4,0x98,0xfe,0xa4,0x04,0x00,0xfe, +0x0e,0x01,0x38,0x85,0x43,0x07,0x91,0x08,0x9c,0x7d,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf,0x05,0xee,0x00,0x10,0x00,0x5b,0x40,0x23,0x0b,0x02,0x01,0x07,0x10,0x01,0x08,0x05,0x01,0x06,0x03,0x01,0x03,0x0f,0x01,0x01,0x10,0x06,0x02,0x05,0x05,0x00,0x0d,0x0a,0x08,0x0d,0x08,0xec,0x59,0x0d,0x00,0x03,0x00,0x15,0x10,0xb8,0xff,0xe0, +0x40,0x0e,0x0c,0x00,0x4d,0x0a,0x02,0x05,0x0a,0x10,0x04,0x11,0x00,0x00,0x12,0x04,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5f,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x26,0x23,0x22,0x07,0x35,0x36, +0x33,0x32,0x16,0x17,0x03,0xdf,0xb1,0xfe,0xe9,0xfe,0x9c,0xb5,0x01,0xcf,0x43,0x35,0x67,0x36,0x44,0x40,0x42,0x70,0x8b,0x3e,0x03,0x3b,0xfc,0xc5,0x03,0xf8,0xc5,0x9b,0x13,0x9d,0x0c,0x7f,0xb2,0x00,0x00,0x01,0x00,0xa7,0xfe,0x1f,0x04,0x78,0x04,0x00,0x00,0x1d,0x00,0x9f,0x40,0x6e,0x0f,0x03,0x01,0x10,0x05,0x0e,0x18,0x0b,0x0c,0x00, +0x4c,0x01,0x18,0x0b,0x0c,0x00,0x4c,0x11,0x08,0x0f,0x04,0x00,0x0d,0x02,0x0d,0x95,0x59,0x02,0x16,0x1a,0x15,0x95,0x59,0x1a,0x16,0x07,0x1c,0x17,0x17,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x84,0x00,0x7f,0x10,0x01,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06, +0x4d,0x10,0x10,0x1f,0x07,0x0a,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x04,0x0d,0x06,0x4d,0x07,0x40,0x1f,0x01,0x2f,0x1f,0x01,0x5d,0x5d,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0x33,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x3f, +0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0xc4,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x25,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x03,0x48,0x58,0xc7,0x9b,0x40,0x04,0xa3,0xa3,0x83,0x6c,0x74,0x86,0xa3,0x7a, +0x17,0x11,0x35,0x2a,0x55,0x60,0x16,0xae,0xc6,0x7c,0xfd,0xbb,0x05,0xe1,0xfd,0x90,0x7a,0x9a,0xb0,0x8c,0x02,0x48,0xfd,0x2f,0xa6,0x05,0x89,0x0d,0x58,0x5e,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc6,0x04,0x00,0x00,0x0c,0x00,0x6b,0x40,0x0a,0x74,0x03,0x01,0x79,0x01,0x01,0x76,0x00,0x01,0x03,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x00,0x4d, +0x03,0x09,0x0f,0x04,0x00,0x15,0x08,0x08,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x06,0x83,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x0d,0x0b,0x06,0x4d,0x0b,0x0b,0x0e,0x03,0x08,0x0b,0x06,0x4d,0x03,0x02,0x2f,0x33,0x2b, +0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x31,0x30,0x01,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x33,0x01,0x00,0x11,0x34,0x27,0x33,0x16,0x15,0x10,0x02,0x48,0xa4,0xfe,0x68,0xb5,0x01,0x4f,0x01,0x10,0x22,0xb1,0x17,0x04,0x00,0xfc,0x9c,0x01,0x57,0x01,0x3b,0x7a,0x58,0x46,0x74,0xfe,0x86,0x00, +0x00,0x01,0x00,0x4d,0xfe,0xc4,0x03,0x76,0x05,0xed,0x00,0x2f,0x00,0xb3,0x40,0x28,0x0f,0x08,0x01,0x10,0x05,0x28,0x18,0x0b,0x0c,0x00,0x4c,0x0b,0x18,0x0b,0x0c,0x00,0x4c,0x0c,0x26,0x1f,0x1f,0x26,0x95,0x59,0x1f,0x1f,0x16,0x06,0x18,0x15,0x13,0x16,0x15,0x16,0x15,0x95,0x59,0x16,0x00,0x2b,0xb8,0xff,0xf0,0x40,0x1e,0x0f,0x16,0x48, +0x2b,0x06,0x15,0x00,0x0c,0x23,0x12,0x18,0x15,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x83,0x0f,0x0f,0x09,0x23,0x18,0x18,0x2e,0x01,0x2e,0x84,0x03,0xb8,0xff,0xf8,0x40,0x27,0x0c,0x06,0x4d,0x03,0x03,0x31,0x29,0x08,0x0d,0x06,0x4d,0x29,0x08,0x0c,0x06,0x4d,0x29,0x08,0x0b,0x06,0x4d,0x29,0x83,0x09,0x18,0x0d,0x06,0x4d,0x09,0x20,0x0c,0x06, +0x4d,0x09,0x20,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0xe1,0xc6,0x10,0xc0,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x2b,0xc6,0x12,0x39,0x12,0x39,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x10,0xc4,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e, +0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x04,0x23,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x36,0x33,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x03,0x30,0xb3,0x61,0x5d,0xa2,0xc1,0xd1,0xa3,0x96,0x6b,0x73,0xc0,0xa4,0xfe, +0xc0,0x26,0x02,0x5e,0xc7,0xee,0x58,0x89,0x2d,0x17,0x32,0x31,0x1d,0x30,0x41,0xaa,0xe3,0x01,0x1c,0xc9,0x9b,0xfe,0xc4,0x4e,0x53,0x3b,0x49,0x14,0x19,0xd7,0xad,0x84,0xce,0x37,0x1d,0x83,0x59,0x70,0xb2,0x27,0x07,0x05,0x86,0x89,0x1f,0xa5,0x73,0x47,0x62,0x28,0x03,0x03,0x96,0x03,0xa1,0x87,0xdb,0x2d,0x20,0x8b,0x76,0x69,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x02,0x00,0xa1,0xfe,0x74,0x04,0x50,0x04,0x18,0x00,0x0e,0x00,0x1a,0x00,0x83,0x40,0x27,0x0f,0x06,0x01,0x10,0x06,0x07,0x17,0x95,0x59,0x07,0x10,0x0f,0x00,0x12,0x0d,0x12,0x95,0x59,0x0d,0x16,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a, +0x08,0x0b,0x06,0x4d,0x0a,0x83,0x14,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xe8,0x40,0x19,0x0b,0x06,0x4d,0x14,0x14,0x1c,0x0f,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xfc,0x40,0x0c,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x2f,0x1c,0x01,0x5d,0x2f, +0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x2f,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x25,0x23,0x11,0x23,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0xa3, +0xe6,0xde,0xdf,0x01,0x0c,0xf7,0xdd,0xc1,0x77,0x27,0xa4,0x59,0x01,0x3e,0xb2,0x8c,0x8f,0x95,0x63,0xfe,0x11,0x03,0x9a,0xf7,0x01,0x13,0xfe,0xda,0xe1,0xfe,0xfb,0xfe,0xdc,0x01,0x1b,0x3e,0x51,0x01,0x94,0xaa,0xda,0xc6,0xba,0x00,0x00,0x01,0x00,0x57,0xfe,0xc4,0x03,0x81,0x04,0x19,0x00,0x1c,0x00,0x8f,0x40,0x14,0x0f,0x07,0x01,0x10, +0x04,0x13,0x30,0x0b,0x0c,0x00,0x4c,0x0f,0x11,0x0c,0x11,0x95,0x59,0x0c,0x10,0x18,0xb8,0xff,0xf0,0x40,0x0a,0x10,0x16,0x48,0x18,0x06,0x15,0x00,0x01,0x01,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x37,0x0c,0x06,0x4d,0x03,0xef,0x1b,0x10,0x0d,0x06,0x4d,0x1b,0x10,0x0c,0x06,0x4d,0x1b,0x0e,0x0e,0x1e,0x14, +0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09,0x18,0x0b,0x06,0x4d,0x2f,0x09,0x01,0x09,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xd4,0x2b,0x2b,0xf1,0x2b,0x2b,0xc2,0x2f,0x00,0x2f,0x3f,0x33,0x2b,0x3f,0x2b,0x00,0x18, +0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x15,0x14,0x1e,0x02,0x05,0x16,0x15,0x14,0x03,0x3b,0xb5,0x62,0x7b,0x84,0xc2,0xd0,0x01,0x2f,0xec,0x7f,0x65,0x72,0x81,0x99,0xc9,0x2e,0x58,0x3b,0x01,0x19,0xa6,0xfe,0xc4,0x4c,0x58, +0x46,0x3f,0x11,0x19,0xe6,0xb2,0x01,0x18,0x01,0x52,0x34,0xa7,0x4f,0xfe,0xfa,0xc5,0x47,0x6c,0x45,0x12,0x4b,0x3e,0xb1,0x69,0x00,0x01,0x00,0x14,0xff,0xe6,0x04,0x0e,0x04,0x07,0x00,0x1c,0x00,0xa4,0xb7,0x0a,0x1a,0x01,0x05,0x09,0x01,0x10,0x09,0xb8,0xff,0xe0,0x40,0x2d,0x0b,0x0c,0x00,0x4c,0x13,0x0f,0x0f,0x03,0x01,0x16,0x03,0x03, +0x40,0x24,0x28,0x48,0x03,0x40,0x08,0x0f,0x19,0x0e,0xec,0x59,0x19,0x16,0x13,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x84,0x11,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x11,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x11,0x11,0x1e,0x05,0x0c,0x08,0x0d, +0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x1c,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xfa,0xb6,0x0b,0x06,0x4d,0x1c,0x2f,0x1e,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x1a,0xcd,0x2b,0x5f, +0x5e,0x5d,0x3f,0x31,0x30,0x2b,0x01,0x5e,0x5d,0x5d,0x13,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x03,0x33,0x16,0x11,0x14,0x02,0x23,0x22,0x26,0x35,0xae,0x29,0x38,0x1a,0x1f,0x30,0x2f,0x7c,0x61,0x01,0x0d,0x7f,0x8d,0x93,0xb7,0x81,0xe8,0xc9,0xd0,0xdf,0x02,0xc7,0x5b,0x55,0x07, +0x8a,0x0d,0x94,0xa5,0xfe,0xff,0xfe,0xab,0xb1,0xa1,0x01,0x2b,0x01,0x0b,0xfa,0xfe,0xcb,0xe3,0xfe,0xf8,0xec,0xde,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x1d,0x00,0x8c,0xb9,0x00,0x13,0xff,0xe8,0x40,0x4e,0x0b,0x0c,0x00,0x4c,0x09,0x08,0x10,0x00,0x4d,0x03,0x18,0x0b,0x0c,0x00,0x4c,0x18,0x18,0x19,0x06,0x06,0x05, +0x07,0x17,0x07,0x15,0x15,0x14,0x09,0x09,0x0a,0x08,0x16,0x08,0x0d,0x16,0x01,0x02,0x07,0x01,0x10,0x04,0x0e,0x0c,0x11,0x0c,0xec,0x59,0x11,0x10,0x17,0x0f,0x1d,0x1b,0x02,0x1b,0xec,0x59,0x02,0x1c,0x08,0x1b,0x19,0x05,0x14,0x0a,0x05,0x0a,0x0e,0x16,0x17,0x17,0x00,0x00,0x1f,0x0e,0x07,0x0e,0x08,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f, +0x32,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x2b,0x2b,0x2b,0x01,0x06,0x23,0x22,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x16,0x17,0x13,0x01,0x33,0x01,0x13,0x16,0x33,0x32,0x37,0x04,0x46,0x2b,0x31,0x5a,0x82,0x4b,0x9f,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x30,0x28,0x22,0x49,0x56,0x6b,0x33,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xec,0x44,0x48,0x25,0x29,0xfe,0x2a,0x09,0x86,0xac,0x01,0x6b,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a, +0x0a,0x5c,0x78,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfd,0xf4,0x96,0x10,0x00,0x00,0x01,0x00,0x98,0xfe,0x1e,0x05,0x68,0x05,0x33,0x00,0x1b,0x00,0xec,0xb9,0x00,0x18,0xff,0xc0,0xb4,0x0b,0x0c,0x00,0x4c,0x0f,0xb8,0xff,0xc0,0x40,0x15,0x0b,0x0c,0x00,0x4c,0x0d,0x1b,0x0f,0x14,0x12,0x07,0x04,0x15,0x04,0x15,0xec,0x59,0x04,0x16,0x05,0x1c, +0x1a,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1a,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1a,0x83,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf0,0x40,0x40,0x0b,0x06,0x4d,0x1b,0x0e,0x04,0x07,0x0c,0x42,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08, +0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x0c,0x1c,0x15,0x12,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x18,0x0b,0x06,0x4d,0x04,0xef,0x07,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x07, +0xb8,0xff,0xfc,0x40,0x0d,0x0b,0x06,0x4d,0x07,0x07,0x1d,0x1c,0x40,0x1d,0x01,0x2f,0x1d,0x01,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39, +0x18,0x2f,0x3f,0x33,0x31,0x30,0x2b,0x2b,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x00,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x68,0xfe,0xe3,0xe9,0x18,0x94,0x18,0xeb,0xfe,0xe5,0xa6,0xc8,0x98,0x18,0x94,0x18,0x96,0xca,0xa6,0x02,0x2c,0xfe,0xf4,0xfe,0xc9,0xfe,0x35, +0x01,0xcb,0x01,0x36,0x01,0x0d,0x01,0xd4,0xfe,0x2c,0xc4,0xef,0x04,0xba,0xfb,0x46,0xee,0xc5,0x01,0xd4,0x00,0x01,0x00,0x77,0xff,0xe9,0x06,0x00,0x04,0x00,0x00,0x21,0x00,0xe3,0x40,0x2a,0x0b,0x21,0x01,0x04,0x1f,0x01,0x0b,0x04,0x01,0x04,0x02,0x01,0x0d,0x00,0x01,0x10,0x04,0x12,0x12,0x20,0x09,0x1b,0x0f,0x00,0x0e,0x03,0x20,0x15, +0x20,0x15,0xec,0x59,0x20,0x16,0x0d,0x1a,0x01,0x09,0x03,0x1a,0x1a,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x18,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x18,0x83,0x1d,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1d,0xb8,0xff,0xe8,0x40,0x4f,0x0b,0x06,0x4d,0x1d,0x0e,0x12,0x11,0x06,0x42,0x02,0x09, +0x01,0x09,0x09,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x83,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x18,0x0b,0x06,0x4d,0x06,0x06,0x22,0x00,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x84,0x11,0x06,0x0c,0x06,0x4d,0x11,0x11,0x23, +0x22,0x3f,0x23,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x5d,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc2,0x18,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x33,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30, +0x01,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x13,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x34,0x03,0x33,0x12,0x11,0x14,0x06,0x23,0x22,0x03,0x3d,0x04,0x67,0xca,0xbd,0xd4,0x7e,0xb7,0x8f,0x7a,0x6d,0xe6,0xa4,0xe5,0x6b,0x7b,0x8e,0xb6,0x7f,0xd5,0xbf,0xca,0xa8,0xbf, +0xff,0xe0,0x01,0x02,0x01,0x36,0xfe,0xc1,0xff,0x9f,0xaa,0x01,0x5a,0x01,0x1b,0xfe,0xe5,0xfe,0xa6,0xaa,0x9f,0xff,0x01,0x3f,0xfe,0xc9,0xfe,0xff,0xe1,0xfe,0xff,0xff,0xff,0xed,0xff,0xf4,0x02,0x34,0x05,0x77,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x70,0xff,0xf0,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x1b,0x15,0x05, +0x06,0x3e,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x77,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0xff,0xf0,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd8,0x40,0x0a,0x2c,0x26,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35, +0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x01,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x28,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf6,0x40,0x09,0x19,0x19,0x0c,0x0c,0x3e,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x01,0x02,0x26, +0x01,0xd2,0x00,0x00,0x01,0x07,0x01,0x9f,0x01,0x0f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x05,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x06,0x01,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x01,0x9f,0x02,0x02,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b, +0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x06,0xe3,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x8b,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x21,0x0f,0x02,0x03,0x3e,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0x00,0x01,0x00,0x29,0xff,0xee,0x05,0x1e,0x05,0x9a,0x00,0x1b,0x00,0xb6,0x40,0x2f,0x00,0x16,0x01,0x10,0x05,0x13,0x0a,0x91,0x59,0x13,0x13,0x10,0x0b,0x0d,0x11,0x10,0x11,0x91,0x59,0x10,0x03,0x01,0x03,0x1a,0x03,0x91,0x59,0x1a,0x13,0x0b,0x12,0x00,0x00,0x0b,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x7d, +0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x1d,0x13,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7e,0x0c,0x11,0x11,0x1d,0x0e,0xb8,0xff,0xe8,0x40,0x0a,0x0d,0x06,0x4d,0x0e,0x0c,0x20,0x0d,0x06, +0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0c,0xb8,0xff,0xf0,0xb3,0x0b,0x06,0x4d,0x0c,0x2f,0x2b,0x2b,0x2b,0xc6,0x2b,0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b, +0x31,0x30,0x00,0x5f,0x5e,0x5d,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x15,0x14,0x06,0x23,0x22,0x02,0xfe,0x42,0x5e,0x61,0x73,0xa9,0x98,0xf9,0xa8,0xfe,0x99,0x03,0xe3,0xfe,0x2c,0xfd,0xe2,0x01,0x07,0xc7,0xb5,0x5c,0x06,0x9a,0x21,0x8b,0x77,0x8b,0x9a, +0xfd,0x5a,0x05,0x02,0x98,0x98,0xfe,0x38,0xe6,0xd1,0xc0,0xd5,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x07,0x66,0x02,0x26,0x01,0x2c,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x50,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x15,0x08,0x06,0x01,0x05,0x3e,0x01,0x00,0x08,0x01,0x08,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0x00,0x01, +0x00,0x5e,0xff,0xe8,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x97,0x40,0x5f,0x55,0x0a,0x01,0x59,0x00,0x01,0x5a,0x03,0x01,0x03,0x0f,0x03,0x01,0x0b,0x05,0x10,0x13,0x91,0x59,0x10,0x08,0x02,0x10,0x91,0x2b,0x30,0x00,0x0b,0x01,0x0c,0x03,0x0b,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x04,0x00,0x18,0x01,0x0b,0x03,0x18,0x18,0x16,0x02,0x16, +0x91,0x59,0x02,0x13,0x11,0x11,0x13,0x00,0x0a,0x0a,0x1a,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x7d,0x05,0x10,0x0d,0x06,0x4d,0x05,0x18,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x00,0x3f,0x2b, +0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x01,0x5f,0x5d,0x00,0x5d,0x5d,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x04,0x85,0x9e,0xeb, +0xfe,0xd1,0xfe,0x91,0x01,0x85,0x01,0x35,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x7a,0xfd,0x84,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x8b,0x01,0x3f,0x01,0x5b,0x01,0xa5,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xef,0x60,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00, +0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x38,0x06,0xe3,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x74,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x04,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xe9,0x07,0x77,0x05,0x9a,0x00,0x19,0x00,0x21, +0x00,0xc0,0x40,0x49,0x0d,0x05,0x01,0x00,0x03,0x01,0x0b,0x17,0x01,0x0b,0x16,0x01,0x02,0x0d,0x01,0x10,0x04,0x12,0x14,0x0f,0x14,0x91,0x59,0x0f,0x13,0x00,0x1a,0x91,0x59,0x00,0x00,0x18,0x1b,0x18,0x0a,0x91,0x59,0x18,0x03,0x08,0x1b,0x91,0x59,0x08,0x12,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x18,0x18,0x08,0x11,0x04,0x08,0x0d,0x06,0x4d, +0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7d,0x1f,0xb8,0xff,0xf0,0x40,0x23,0x0d,0x06,0x4d,0x1f,0x10,0x0b,0x06,0x4d,0x1f,0x1f,0x23,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x7e,0x08,0x18,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x0c,0x0c,0x06,0x4d,0x08,0x18,0x0b, +0x06,0x4d,0x08,0x08,0x23,0x11,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00, +0x5d,0x5d,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x11,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x04,0xa4,0x01,0x10,0xd7,0xec,0xf8,0xd9,0xfe,0x56,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0xeb, +0x96,0xa2,0xfe,0xc8,0x03,0x39,0xce,0xbf,0xc4,0xe8,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0xfd,0x08,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x7d,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x2f,0x0d,0x10,0x01,0x00,0x0e,0x01,0x10,0x04,0x13,0x0b,0x01,0x08, +0x08,0x01,0x91,0x59,0x08,0x08,0x14,0x06,0x0a,0x03,0x00,0x14,0x91,0x59,0x03,0x00,0x12,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x18,0xb8,0xff,0xe8,0x40,0x3e,0x0d,0x06,0x4d,0x18,0x10,0x0b,0x06,0x4d,0x18,0x18,0x1c,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14, +0x08,0x0b,0x06,0x4d,0x14,0x7e,0x00,0x20,0x0d,0x06,0x4d,0x00,0x18,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x7e,0x04,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x3f,0xc4,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, +0x36,0x35,0x10,0x21,0x04,0x02,0xfd,0x62,0xa8,0xa8,0x02,0x9e,0xa8,0x01,0x10,0xd5,0xee,0xf9,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x02,0xa0,0xfd,0x60,0x05,0x9a,0xfd,0x9e,0x02,0x62,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0x4a,0x05,0x9a,0x00,0x11,0x00,0xc6, +0x40,0x1c,0x02,0x10,0x01,0x02,0x10,0x01,0x10,0x04,0x0e,0x05,0x91,0x59,0x0e,0x0e,0x00,0x0b,0x08,0x0c,0x0b,0x0c,0x91,0x59,0x0b,0x03,0x06,0x00,0x12,0x0c,0xb8,0xff,0xf9,0xb3,0x0b,0x06,0x4d,0x09,0xb8,0xff,0xf9,0x40,0x15,0x0b,0x06,0x4d,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x32,0x0b,0x06,0x4d,0x00,0x01,0x01,0x09,0x03,0x01,0x01,0x13,0x07,0x0c,0x0e,0x0e,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07,0x09,0x42,0x09,0x09,0x12,0x07,0x12,0x0d,0x06, +0x4d,0x07,0x0d,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x01,0x10,0xf1,0x2b,0x2b,0x2b,0x32,0xe0,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xc4,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x2b,0x31,0x30, +0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x21,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x20,0x11,0x05,0x4a,0xa8,0xfe,0xe3,0xfe,0xe9,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x19,0x01,0xc3,0x01,0x85,0x01,0x27,0xfd,0x54,0x05,0x02,0x98,0x98,0xfe,0x3e,0xfe,0x45,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2, +0x07,0x66,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x8e,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x0f,0x12,0x12,0x09,0x0e,0x25,0x01,0x00,0x13,0x01,0x13,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x4f,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0x16, +0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0d,0x1c,0x16,0x0d,0x00,0x25,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xf2,0x05,0x9a,0x00,0x0b,0x00,0xb2,0xb9,0x00,0x02,0x01,0x30,0x40,0x1b,0x07,0x0b,0x03,0x04,0x00,0x00,0x09,0x91,0x59,0x00,0x12,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c, +0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0xb8,0x01,0x2c,0xb6,0x04,0x04,0x10,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04,0xb8,0x01,0x2c,0x40,0x1e,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x09,0x10,0x0d,0x06,0x4d,0x09,0x10,0x0c,0x06,0x4d,0x09, +0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06,0x4d,0x7f,0x09,0x01,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x3f,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xfe,0x30,0x9a,0xfe,0x34,0xa8,0x02,0xe6,0xa8,0xfe,0x80,0x01,0x80,0x05,0x9a,0xfa,0xfe,0x05,0x02,0x00,0xff,0xff,0x00,0x16,0x00,0x00, +0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x9f,0x40,0x31,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x02,0x02,0x03,0x91,0x59,0x02,0x03,0x00,0x0e,0x91,0x59,0x00,0x12,0x03,0x03,0x0e,0x09,0x08,0x0d,0x06,0x4d, +0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06,0x4d,0x12,0x10,0x0b,0x06,0x4d,0x12,0x12,0x16,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00, +0xb8,0xff,0xf6,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x21,0x15,0x21,0x11,0x21, +0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25, +0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x01,0x2c,0x00,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x0d,0x00,0x13,0x00,0xcf,0xb7,0x0b,0x0f,0x91,0x59,0x0b,0x03,0x04,0x01,0xb8,0x01,0x30,0x40,0x22,0x0e,0x07,0x02,0x0c,0x02,0x0c,0x91,0x59,0x02,0x12,0x75,0x13,0x01,0x10,0x0a,0x0a, +0x0e,0x07,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x18,0x0b,0x06,0x4d,0x0d,0xba,0x01,0x2c,0x00,0x02,0xff,0xee,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe0,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c, +0x7e,0x0e,0xb8,0xff,0xf0,0x40,0x21,0x0d,0x06,0x4d,0x0e,0x18,0x0c,0x06,0x4d,0x0e,0x20,0x0b,0x06,0x4d,0x0e,0x0e,0x15,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0xb2,0x03,0x13,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x07,0x2f, +0x2b,0x2b,0x33,0xd5,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x5d,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x21, +0x11,0x21,0x06,0x02,0x07,0x05,0x48,0x9b,0xfb,0xfd,0x9b,0x6f,0x90,0xc9,0x0d,0x02,0xa3,0xc1,0xfe,0x97,0xfe,0x94,0x10,0xbc,0x73,0xfe,0x7f,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x07,0x02,0xbf,0x01,0x3c,0xfa,0xfe,0x04,0x6a,0xf7,0xfd,0x6a,0xdd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06,0x00,0x28,0x00,0x00, +0x00,0x01,0xff,0xea,0x00,0x00,0x07,0x02,0x05,0x9a,0x00,0x1d,0x00,0xb1,0xb9,0x00,0x1d,0xff,0xf0,0x40,0x72,0x0c,0x06,0x4d,0x0e,0x10,0x0c,0x06,0x4d,0x5c,0x1b,0x01,0x1a,0x1b,0x01,0x53,0x10,0x01,0x15,0x10,0x01,0x53,0x0c,0x01,0x05,0x0c,0x15,0x0c,0x02,0x5c,0x01,0x01,0x03,0x0d,0x01,0x1d,0x01,0x02,0x10,0x1a,0x01,0x10,0x11,0x01, +0x0f,0x0b,0x1f,0x0b,0x02,0x0f,0x02,0x1f,0x02,0x02,0x0b,0x04,0x1b,0x10,0x16,0x03,0x0c,0x01,0x06,0x12,0x1d,0x00,0x06,0x0e,0x0d,0x07,0x1c,0x1c,0x00,0x20,0x0b,0x06,0x4d,0x00,0x0e,0x06,0x07,0x0d,0x42,0x0f,0x0d,0x0d,0x1e,0x16,0x15,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0x07, +0x1f,0x1e,0x2f,0x1f,0x3f,0x1f,0x02,0x5d,0x11,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x11,0x33,0x2f,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x2b,0x21, +0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x07,0x02,0xe1,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x16,0x0f,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a,0xcd,0xfd,0x9b,0x02, +0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x19,0x18,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x23,0x00,0xd7,0x40,0x13,0x09,0x20,0x01,0x06,0x1e,0x01,0x04,0x18,0x01,0x03,0x00,0x14,0x01,0x0f,0x00,0x01,0x10,0x05, +0x14,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x1c,0x09,0x0a,0x0a,0x09,0x92,0x59,0x0a,0x0a,0x03,0x16,0x0f,0x13,0x1f,0x13,0x2f,0x13,0x03,0x09,0x03,0x13,0x11,0x16,0x11,0x92,0x59,0x16,0x04,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x09,0x03,0x01,0x03,0x22,0x03,0x92,0x59,0x22,0x13,0x1b,0x1f,0x09,0x09,0x06, +0x00,0x0e,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x19,0x0b,0x06,0x4d,0x0e,0x7d,0x19,0x19,0x1f,0x08,0x0d,0x06,0x4d,0x1f,0x08,0x0c,0x06,0x4d,0x1f,0x08,0x0b,0x06,0x4d,0x1f,0x7d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0e,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x25,0x13,0x00, +0x3f,0x25,0x01,0x5d,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5f, +0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x60,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xfe,0xe8, +0xf3,0xf3,0x3c,0xb6,0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xc5,0xe9,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x00,0x13,0x00,0xa1,0x40,0x12,0x7a,0x12,0x01,0x79,0x11,0x01,0x75,0x08,0x01,0x75,0x07,0x01,0x12,0x08,0x0b,0x00,0x4d,0x08,0xb8,0xff, +0xf8,0x40,0x2c,0x0b,0x00,0x4d,0x0e,0x04,0x0b,0x13,0x03,0x09,0x00,0x12,0x12,0x04,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1a,0x0b,0x06,0x4d,0x01,0x01,0x15,0x08,0x0e,0x0c,0x08,0x0d,0x06, +0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x09,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x09,0x04,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x39,0x33,0x00,0x3f,0x32,0x3f,0x33, +0x39,0x39,0x31,0x30,0x01,0x2b,0x2b,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36,0x37,0x01,0x33,0x05,0x40,0xa8,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89,0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c, +0x34,0x04,0x65,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x4e,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x07,0xcd,0x00,0xa8,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a,0x1a,0x14,0x0a,0x13,0x25,0x01,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e, +0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x04,0xa4,0x05,0x9a,0x00,0x12,0x00,0x74,0x40,0x43,0x0d,0x10,0x01,0x0b,0x0f,0x01,0x02,0x06,0x01,0x10,0x04,0x07,0x18,0x0b,0x00,0x4d,0x12,0x02,0x91,0x59,0x12,0x03,0x0b,0x0d,0x08,0x0d,0x91,0x59,0x08,0x13,0x00,0x12,0x03,0x11,0x11,0x0b,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, +0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb6,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0b,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f, +0x5e,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x02,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xa8,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xfc,0x05,0x9a,0x02,0x06,0x01,0xb5,0x00,0x00,0xff,0xff,0x00,0xbc, +0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0xe7,0x04,0x96,0x05,0x9a,0x00,0x15,0x00,0x53,0x40,0x2e,0x0a,0x15,0x01,0x05, +0x0e,0x01,0x03,0x03,0x10,0x0c,0x00,0x4d,0x00,0x10,0x01,0x10,0x05,0x10,0x0c,0x04,0x0e,0x00,0x03,0x07,0x09,0x04,0x09,0x91,0x59,0x04,0x13,0x76,0x11,0x01,0x11,0x0c,0x14,0x06,0x14,0x00,0x00,0x16,0x06,0x06,0x0e,0x0d,0x2f,0x33,0x33,0x2f,0x11,0x33,0x2f,0x32,0x11,0x12,0x39,0x39,0x5d,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x33, +0x12,0x39,0x39,0x5f,0x5e,0x5d,0x31,0x30,0x2b,0x01,0x5f,0x5d,0x5d,0x01,0x01,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x96,0xfe,0x45,0x76,0xdc,0x82,0x6b,0x48,0x56,0x50,0x51,0x88,0x4f,0xfe,0x1a,0xbf,0x01,0x58,0x09,0x1c,0x02,0x03,0x26,0x01,0x3f,0x05,0x9a,0xfc, +0x17,0xfe,0xf6,0xc0,0x1f,0xaa,0x33,0x7d,0x9e,0x04,0x02,0xfd,0x02,0x13,0x4a,0x09,0x58,0x02,0xfa,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x05,0x81,0x05,0xc2,0x00,0x15,0x00,0x1e,0x00,0x27,0x01,0x02,0xb9,0x00,0x13,0xff,0xe8,0x40,0x23,0x0c,0x00,0x4d,0x1f,0x03,0x00,0x17,0x00,0x17,0x91,0x59,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x91,0x59, +0x0e,0x00,0x0e,0x00,0x01,0x0d,0x03,0x01,0x12,0x1b,0x18,0x0b,0x0c,0x00,0x4c,0x24,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x1b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x1b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x1b,0x7d,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x2a, +0x0c,0x06,0x4d,0x12,0x20,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x7d,0x07,0x18,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x07,0x07,0x28,0x0b,0x0e,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01, +0x08,0x0c,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x01,0xef,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x0b,0x06,0x4d,0x02,0x02,0x29,0x28,0x20,0x29,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x2b,0x25,0x15,0x23,0x35,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x03,0x11, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x3e,0x9c,0x1b,0xf0,0xfe,0xc7,0x01,0x38,0xf3,0x19,0x9c,0x18,0xf6,0x01,0x35,0xfe,0xc7,0xf0,0x1a,0x1a,0xab,0xce,0xce,0xad,0xb4,0x19,0xaa,0xd1,0xce,0xab,0xbc,0xbc,0xbc,0x01,0x47,0xef,0xe4,0x01,0x38,0xb4,0xb4,0xfe,0xcd,0xe9,0xec,0xfe,0xb6, +0x03,0xc5,0xfc,0xcf,0xe3,0xbd,0xb4,0xdd,0xfc,0xcf,0x03,0x31,0xe0,0xb1,0xbe,0xe2,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x05,0xb2,0x05,0x9a,0x00,0x0b,0x00,0xb4,0xb9,0x00,0x00,0x01,0x30,0x40,0x1c,0x05,0x09,0x03,0x07,0x02,0x0a,0x02,0x0a,0x91,0x59,0x02, +0x12,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xe4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xec,0x40,0x17,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e, +0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe0,0x40,0x1d,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b, +0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xfb,0xa5,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe, +0x05,0x02,0xfa,0xfe,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x85,0x40,0x34,0x0f,0x06,0x01,0x10,0x04,0x0e,0x02,0x0c,0x04,0x0c,0x91,0x59,0x04,0x04,0x00,0x09,0x10,0x03,0x00,0x12,0x02,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x7f,0x0f,0x01,0x0f,0x20,0x0d, +0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x0f,0x0f,0x12,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xa8,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02, +0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0xd9,0x05,0x9a,0x00,0x0b,0x00,0xa7,0x40,0x0e,0x07,0x03,0x0b,0x03,0x05,0x00,0x09,0x00,0x09,0x91,0x59,0x00,0x12,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xf8,0x40,0x22,0x0b,0x06,0x4d,0x09,0x7e,0x00,0x12,0x0d,0x06,0x4d,0x00, +0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x7e,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x28,0x0c,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x05,0x06,0x0d,0x06,0x4d, +0x10,0x05,0x01,0x05,0x05,0x0d,0x0c,0x2f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11, +0x21,0x11,0x33,0x06,0xd9,0xf9,0xe3,0xa8,0x02,0x13,0xa7,0x02,0x13,0xa8,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0x00,0x01,0x00,0xbc,0xfe,0x7f,0x07,0x9a,0x05,0x9a,0x00,0x0f,0x00,0xff,0xb9,0x00,0x01,0x01,0x30,0x40,0x1e,0x09,0x05,0x0d,0x03,0x0b,0x07,0x02,0x0e,0x02,0x0e,0x91,0x59,0x02,0x12,0x0f,0x08,0x0d,0x06,0x4d, +0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xe8,0xb5,0x0b,0x06,0x4d,0x02,0x02,0x0b,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0xb5,0x0b,0x06,0x4d, +0x0b,0x7e,0x0e,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf8,0x40,0x23,0x0c,0x06,0x4d,0x0e,0x06,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x6f,0x03,0x01,0x03,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08, +0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x7e,0x07,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf0,0x40,0x0f,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x4f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b, +0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x07,0x9a,0x9b,0xf9,0xbd,0xa8,0x02,0x13,0xa8,0x02,0x12, +0xa8,0xc1,0xfe,0x7f,0x01,0x81,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0x42,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x98,0x40,0x29,0x0d,0x0a,0x01,0x00,0x08,0x01,0x10,0x04,0x05,0x0d,0x91,0x59,0x05,0x05,0x0e,0x04,0x04,0x01,0x91,0x59,0x04,0x03,0x00,0x0e,0x91,0x59,0x00,0x12, +0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x7d,0x12,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x25,0x0c,0x06,0x4d,0x12,0x12,0x16,0x00,0x02,0x02,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x70,0x00,0x01,0x00,0x10,0x0d,0x06,0x4d,0x00,0xb8, +0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x11,0x21,0x35,0x21,0x11, +0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0xc6,0xfe,0x63,0x02,0x45,0x01,0x11,0xd5,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa3,0xfe,0xc8,0x05,0x00,0x9a,0xfd,0xa0,0xce,0xc0,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x87,0x05,0x9a,0x00,0x03, +0x00,0x0e,0x00,0x16,0x00,0xb0,0x40,0x44,0x0d,0x0c,0x01,0x00,0x0a,0x01,0x10,0x04,0x07,0x0f,0x91,0x59,0x07,0x07,0x10,0x02,0x05,0x03,0x01,0x04,0x04,0x10,0x91,0x59,0x04,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x7f,0x01,0x01,0x01,0x10,0x0d,0x06,0x4d,0x01,0x01,0x18,0x04,0x0b, +0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x7d,0x14,0xb8,0xff,0xe8,0x40,0x1e,0x0d,0x06,0x4d,0x00,0x14,0x10,0x14,0x02,0x14,0x14,0x18,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x7e,0x04,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xfa,0xb3,0x0c,0x06,0x4d,0x04,0xb8, +0xff,0xfd,0xb3,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32, +0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x05,0x87,0xa8,0xa8,0xfb,0x35,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a, +0x00,0x0a,0x00,0x12,0x00,0x87,0x40,0x29,0x0d,0x08,0x01,0x00,0x06,0x01,0x10,0x04,0x03,0x0b,0x91,0x59,0x03,0x03,0x0c,0x01,0x03,0x00,0x0c,0x91,0x59,0x00,0x12,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7d,0x10,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x10,0xb8,0xff,0xf8,0x40,0x1e,0x0c,0x06, +0x4d,0x10,0x18,0x0b,0x06,0x4d,0x10,0x10,0x14,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00, +0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x5f,0x5e,0x5d,0x5d,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0xa8,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0xfd,0xa0,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00, +0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x90,0x05,0xb2,0x00,0x18,0x00,0xb9,0x40,0x14,0x02,0x0f,0x01,0x0d,0x00,0x01,0x02,0x16,0x01,0x02,0x12,0x01,0x10,0x04,0x16,0x10,0x0b,0x00,0x4d,0x0f,0xb8,0xff,0xc0,0x40,0x45,0x0c,0x00,0x4d,0x00,0x40,0x0c,0x00,0x4d,0x08,0x07,0x91,0x59,0x08,0x11,0x17,0x08,0x91,0x2b,0x30,0x00,0x0e,0x01,0x0c, +0x03,0x0e,0x0e,0x0c,0x11,0x0c,0x91,0x59,0x11,0x04,0x00,0x01,0x01,0x0b,0x03,0x01,0x01,0x03,0x17,0x03,0x91,0x59,0x17,0x13,0x07,0x07,0x00,0x09,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x7d,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff, +0xe8,0x40,0x0b,0x0b,0x06,0x4d,0x20,0x06,0x01,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x00,0x18,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x2b,0x01, +0x5f,0x5e,0x5d,0x5d,0x00,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x00,0x37,0x21,0x35,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x68,0x9d,0xe1,0xd6,0x01,0x11,0x10,0xfd,0x85,0x02,0x79,0x1a,0xfe,0xf1,0xd9,0xcb,0xa6,0x9a,0xd7,0x01,0x35,0x01,0x82,0xfe,0x8d,0xfe,0xd1,0xe7,0x3c,0xa3,0x60,0x01, +0x0f,0xf1,0x97,0xf5,0x01,0x0f,0x56,0xb0,0x3e,0xfe,0x61,0xfe,0xa5,0xfe,0xc1,0xfe,0x6f,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x07,0xc6,0x05,0xb2,0x00,0x12,0x00,0x1e,0x00,0xcf,0x40,0x2d,0x0a,0x13,0x91,0x59,0x0a,0x04,0x06,0x01,0x91,0x59,0x06,0x04,0x02,0x06,0x91,0x2b,0x30,0x04,0x03,0x10,0x19,0x91,0x59,0x10,0x13,0x02,0x12,0x0d, +0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x7d,0x1c,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1c,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x1c,0xb8,0xff,0xe7,0x40,0x19,0x0b,0x06,0x4d,0x1c,0x1c,0x20,0x16,0x08,0x0d,0x06,0x4d,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x7d,0x07,0x00,0xb8, +0xff,0xf0,0x40,0x26,0x0d,0x06,0x4d,0x00,0x04,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x20,0x00,0x01,0x00,0x00,0x20,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03, +0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x20,0x00,0x11,0x10, +0x00,0x21,0x20,0x00,0x01,0x22,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x10,0x02,0x02,0xb2,0xfe,0xb2,0xa8,0xa8,0x01,0x54,0x1e,0x01,0x5e,0x01,0x18,0x01,0x21,0x01,0x59,0xfe,0x9e,0xfe,0xcf,0xfe,0xe2,0xfe,0xa5,0x02,0x8c,0xe3,0xfe,0xff,0xf4,0xdd,0xe6,0xfd,0xf3,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x01,0x2c,0x01,0x51,0xfe, +0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x01,0x7c,0x03,0xb6,0xfe,0xc8,0xfe,0xef,0xfe,0xe5,0xfe,0xc9,0x01,0x32,0x01,0x17,0x01,0x20,0x01,0x32,0x00,0x00,0x02,0x00,0x3d,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0xa6,0x40,0x6d,0x04,0x11,0x01,0x0b,0x0f,0x01,0x0d,0x0a,0x01,0x0f,0x09,0x01,0x02,0x07,0x01,0x10,0x04,0x06, +0x18,0x0b,0x00,0x4d,0x0c,0x02,0x15,0x15,0x02,0x91,0x59,0x15,0x15,0x13,0x00,0x13,0x17,0x91,0x59,0x13,0x03,0x07,0x00,0x12,0x07,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x09,0x0c,0x09,0x01,0x08,0x1a,0x08,0x0c,0x06,0x4d,0x1a,0x08,0x0b,0x06,0x4d,0x1a,0x7d,0x10,0x10,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, +0x4d,0x00,0x08,0x0b,0x06,0x4d,0x15,0x00,0x7e,0x7f,0x01,0x01,0x01,0x18,0x0d,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x1f,0x07,0x08,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, +0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0xfd,0xa8,0xd1,0x3c,0x5b,0x34,0xb4,0xc8,0xda,0x15,0x57,0x3a,0x8f,0x9f,0xff, +0xcf,0x01,0xa0,0xa8,0xe9,0x8e,0x9d,0xa0,0x87,0x02,0x62,0x41,0x71,0xfe,0x50,0x01,0xdf,0x2f,0x69,0x16,0x04,0x1f,0xc8,0x8e,0xb7,0xdd,0xfd,0x60,0x02,0x08,0x86,0x7a,0x7a,0x8e,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x04,0x18,0x02,0x06,0x00,0x44,0x00,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x40,0x05,0xf8,0x00,0x19,0x00,0x27, +0x00,0x96,0x40,0x2c,0x1a,0x07,0x26,0x0a,0x26,0x95,0x59,0x0a,0x0a,0x20,0x00,0x00,0x01,0xec,0x59,0x00,0x01,0x10,0x20,0x95,0x59,0x10,0x16,0x00,0x00,0x1b,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x23,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xe8,0x40,0x30,0x0b,0x06,0x4d, +0x20,0x23,0x30,0x23,0x02,0x23,0x23,0x29,0x07,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x83,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x13,0x2f,0x29,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b, +0x2b,0x11,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x01,0x15,0x06,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x11,0x34,0x12,0x36,0x36,0x37,0x36,0x01,0x15,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0xbe,0x29, +0x5b,0xe1,0xb3,0x73,0x10,0x04,0x78,0xde,0xcb,0xf8,0xfe,0xfd,0xdb,0xec,0xff,0x5c,0xa3,0xc7,0xf2,0x60,0xfd,0x92,0x01,0x2e,0x56,0x75,0x4b,0x89,0xa9,0xad,0x93,0xce,0x05,0xf8,0x9a,0x1e,0x0f,0x22,0x3f,0xce,0xc6,0xae,0xfe,0xea,0xe4,0xeb,0xfe,0xe3,0x01,0x4f,0x01,0x37,0xf2,0x01,0x51,0xaa,0x40,0x2b,0x16,0xfc,0xbe,0x8e,0x50,0x9a, +0x76,0x3a,0xcd,0xa0,0xb0,0xcf,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0xd1,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0xa5,0xb9,0x00,0x03,0xff,0xe8,0x40,0x33,0x0b,0x0c,0x00,0x4c,0x07,0x14,0x0e,0x0e,0x14,0x95,0x59,0x0e,0x0e,0x01,0x15,0x01,0x0d,0x95,0x59,0x01,0x0f,0x00,0x15,0x95,0x59,0x00,0x15,0x07,0x15,0x11,0x84,0x05,0x05, +0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x84,0x18,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x18,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x20,0x18,0x30,0x18,0x02,0x18,0x18,0x1c,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x84,0x00,0xb8,0xff,0xfc, +0x40,0x0e,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x33,0x11,0x21, +0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x11,0x21,0x32,0x35,0x34,0x23,0xa6,0x01,0xbe,0x97,0xaf,0xc4,0xeb,0xc1,0x8f,0xfe,0xc9,0xf6,0xc6,0xb2,0xfe,0xf6,0x01,0x1c,0xc7,0xdf,0x04,0x00,0x86,0x74,0xc7,0x2b,0x1e,0xcf,0x7d,0xaa,0x03,0x74,0xfe,0xe0,0x9a,0x86,0xfe,0x54,0xfe,0xc4, +0xa1,0x9b,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x00,0x05,0x00,0x47,0x40,0x20,0x05,0x00,0x95,0x59,0x05,0x0f,0x02,0x15,0x70,0x00,0x01,0x00,0x00,0x07,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xf8,0xb6,0x0b,0x06, +0x4d,0x03,0x2f,0x07,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x5d,0x00,0x3f,0x3f,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b,0xa4,0x02,0x39,0x03,0x74,0xfc,0x8c,0x04,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x0c,0x00,0x11,0x00,0xba,0x40,0x0d,0x00,0x11,0x01,0x10, +0x05,0x0a,0x0e,0x95,0x59,0x0a,0x0f,0x04,0x00,0xb8,0x01,0x31,0x40,0x1c,0x0d,0x07,0x02,0x0b,0x02,0x0b,0x95,0x59,0x02,0x15,0x0f,0x09,0x09,0x0d,0x07,0x0c,0x0c,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0xed,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf8,0x40,0x20,0x0b, +0x06,0x4d,0x02,0x02,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0d,0x12,0x0d,0x06,0x4d,0x0d,0x0d,0x13,0x07,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0b,0x06,0x4d,0x06,0xb8,0x01,0x2c,0x40,0x0d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x03,0x11,0x11,0x07,0x30,0x13, +0x01,0x5d,0x2f,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xf1,0x2b,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0xc4,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11, +0x33,0x21,0x11,0x23,0x02,0x03,0x04,0x23,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x06,0x04,0x02,0x14,0x98,0xfe,0xc4,0xe3,0x1b,0xce,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x7a,0x01,0xfb,0xfc,0x8b,0x02,0xea,0xfe,0x62,0xfe,0xb4,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x04,0x18,0x02,0x06,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x04, +0x00,0x00,0x05,0xf6,0x04,0x00,0x00,0x15,0x00,0xc5,0x40,0x21,0x0a,0x15,0x01,0x07,0x14,0x01,0x07,0x0b,0x01,0x0a,0x0a,0x01,0x09,0x07,0x01,0x09,0x02,0x01,0x0d,0x13,0x01,0x02,0x0c,0x01,0x01,0x08,0x01,0x0e,0x01,0x01,0x10,0x03,0x15,0xb8,0xff,0xf8,0x40,0x0b,0x0b,0x0c,0x00,0x4c,0x0a,0x08,0x0b,0x0c,0x00,0x4c,0x08,0xb8,0xff,0xe8, +0x40,0x45,0x0c,0x00,0x4d,0x01,0x18,0x0c,0x00,0x4d,0x02,0x10,0x0c,0x00,0x4d,0x14,0x0b,0x10,0x0f,0x09,0x00,0x04,0x15,0x15,0x00,0x04,0x0a,0x05,0x09,0x14,0x14,0x00,0x18,0x0b,0x06,0x4d,0x00,0x0e,0x04,0x05,0x09,0x42,0x0b,0x09,0x08,0x0c,0x00,0x4d,0x09,0x09,0x16,0x10,0x0f,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04, +0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0xb8,0xff,0xfc,0x40,0x0a,0x0b,0x06,0x4d,0x05,0x40,0x17,0x01,0x2f,0x17,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xc6,0x2b,0x01,0x10,0xf0,0x2b,0xc2,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x31,0x30,0x2b,0x01,0x2b,0x2b, +0x2b,0x2b,0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x05,0xf6,0xde,0xfe,0x36,0x04,0x9c,0x04,0xfe,0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01, +0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x03,0x3b,0x04,0x19,0x00,0x21,0x00,0xa7,0x40,0x09,0x05,0x12,0x01,0x0c,0x00,0x01,0x10,0x03,0x15,0xb8,0xff,0xe0,0x40,0x3a,0x0b,0x0c,0x00,0x4c,0x19,0x08,0x09,0x09,0x08,0x95,0x59,0x09, +0x09,0x14,0x03,0x11,0x0f,0x14,0x0f,0x95,0x59,0x14,0x10,0x01,0x03,0x20,0x03,0x95,0x59,0x20,0x16,0x19,0x16,0x08,0x08,0x11,0x0c,0x84,0x16,0x16,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x84,0x05,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff, +0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x20,0x05,0x30,0x05,0x02,0x05,0x05,0x23,0x11,0x00,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0xc4,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0xc0,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b, +0x11,0x12,0x00,0x39,0x31,0x30,0x2b,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x86,0xb3,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x01,0x05,0x78,0x68,0x95,0x96,0xaa,0x8e,0x01,0x76, +0x6f,0x64,0x72,0x8a,0xe2,0xc6,0xd3,0x1d,0xa1,0x4b,0xac,0xaa,0x8b,0xa2,0x45,0x52,0x4b,0x99,0x3e,0xfe,0xed,0x59,0x81,0x15,0x05,0x09,0x88,0x68,0x8c,0xa6,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x0d,0x00,0x92,0x40,0x2d,0x7c,0x0c,0x01,0x79,0x0b,0x01,0x73,0x05,0x01,0x76,0x04,0x01,0x46,0x09,0x01,0x4a,0x02,0x01, +0x09,0x02,0x08,0x0d,0x0f,0x05,0x00,0x15,0x0c,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x00,0xef,0x01,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf4,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xfa,0x40,0x29,0x0b,0x06,0x4d,0x01,0x01,0x0f,0x05,0x09,0x08,0x0d,0x06,0x4d,0x09,0x08,0x0c,0x06, +0x4d,0x09,0x10,0x0b,0x06,0x4d,0x09,0xef,0x06,0x05,0x0d,0x06,0x4d,0x06,0x01,0x0b,0x06,0x4d,0x06,0x40,0x0f,0x01,0x2f,0x0f,0x01,0x5d,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x04,0x00,0x94,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0xf2,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x06,0x07,0xcd,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x0d,0x14,0x0e,0x07,0x0d,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x03,0x91,0x04,0x00,0x00,0x0e,0x00,0x96,0x40,0x27,0x00,0x04,0x01,0x10,0x06,0x05,0x20,0x0b,0x0c,0x00,0x4c,0x0e, +0x02,0x95,0x59,0x0e,0x0f,0x09,0x0b,0x06,0x0b,0x95,0x59,0x06,0x00,0x15,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0xed,0x0d,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xf0,0x40,0x22,0x0b,0x06,0x4d,0x0d,0x0d,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d, +0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x08,0x0d,0x06,0x4d,0x01,0x0c,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x01,0x01,0x10,0x08,0x3f,0x10,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b, +0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xa3,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0xad, +0x40,0x0a,0x79,0x12,0x01,0x77,0x0e,0x01,0x75,0x0d,0x01,0x0d,0xb8,0xff,0xf0,0x40,0x0a,0x0b,0x00,0x4d,0x06,0x10,0x0b,0x0c,0x00,0x4c,0x05,0xb8,0xff,0xf0,0x40,0x2f,0x0b,0x0c,0x00,0x4c,0x10,0x40,0x0c,0x00,0x4d,0x02,0x09,0x10,0x03,0x0d,0x13,0x0f,0x0a,0x05,0x00,0x15,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00, +0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x15,0x0d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x12,0x0c,0x06,0x4d,0x0a,0x12,0x0b,0x06,0x4d,0x0a,0xed,0x0b,0xb8,0xff,0xfe,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x0b,0x07,0x0b, +0x06,0x4d,0x0b,0x3f,0x15,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x2b,0x31,0x30,0x01,0x2b,0x2b,0x2b,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01, +0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x6a,0x40,0x22,0x09,0x02,0x95,0x59, +0x09,0x09,0x07,0x0b,0x0f,0x04,0x00,0x15,0x09,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0xb8,0xff,0xfb,0x40,0x24,0x0b,0x06,0x4d,0x01,0x01,0x0d,0x08,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x04,0x0d,0x06,0x4d, +0x05,0x40,0x0d,0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x2b,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x01,0xd1,0xfe,0x2f,0x04,0x00, +0xfe,0x5c,0x01,0xa4,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x07,0x00,0x60,0x40,0x1e,0x07,0x02,0x95,0x59,0x07,0x0f,0x04,0x00,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01, +0x01,0x01,0xb8,0xff,0xfb,0x40,0x23,0x0b,0x06,0x4d,0x01,0x01,0x09,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x05,0x05,0x0d,0x06,0x4d,0x05,0x40,0x09,0x01,0x2f,0x09,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x32,0x3f,0x2b, +0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0xf8,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x03,0x74,0xfc,0x8c,0x04,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x06,0x00,0x53,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29, +0x04,0x00,0x00,0x07,0x00,0x47,0x40,0x2d,0x04,0x00,0x07,0x00,0x95,0x59,0x07,0x0f,0x02,0x15,0x00,0x0e,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0x03,0x05,0x42,0x1f,0x05,0x01,0x05,0x05,0x08,0x03,0x04,0x0d,0x06,0x4d,0x03,0x2f,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x01,0x10,0xf1,0x2b, +0x2b,0x2b,0xe2,0x00,0x18,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0xa4,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x06,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x1e,0x05,0x1c,0x05,0xb2, +0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0xe4,0x40,0x19,0x20,0x0b,0x16,0x0e,0x0e,0x16,0x95,0x59,0x0e,0x10,0x1f,0x03,0x00,0x17,0x00,0x17,0x95,0x59,0x00,0x16,0x0d,0x04,0x01,0x1c,0x24,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x0c,0x00,0x4c,0x1b,0x10,0x0b,0x0c,0x00,0x4c,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c,0x06,0x4d,0x12,0x08,0x0b,0x06, +0x4d,0x1b,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xe8,0x40,0x43,0x0b,0x06,0x4d,0x12,0x0e,0x01,0x02,0x07,0x42,0x24,0x08,0x0d,0x06,0x4d,0x24,0x08,0x0c,0x06,0x4d,0x24,0x08,0x0b,0x06,0x4d,0x24,0x83,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x18,0x0b, +0x06,0x4d,0x07,0x07,0x28,0x0c,0x0d,0x16,0x20,0x04,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xed,0x02,0xb8,0xff,0xfb,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xfd,0x40,0x0c,0x0b,0x06,0x4d,0x2f,0x02,0x01,0x02,0x2f,0x29,0x3f,0x29,0x02,0x5d,0x2f,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x17,0x39, +0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x3f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x00,0x15,0x14, +0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x08,0x94,0x20,0xe0,0xfe,0xec,0x01,0x17,0xe5,0x18,0x94,0x16,0xe7,0x01,0x17,0xfe,0xee,0xdf,0x23,0x16,0x9c,0xba,0xb7,0x9a,0xaf,0x18,0x9a,0xba,0xbb,0x9d,0x18,0xfe,0x36,0x01,0xca,0x01,0x22,0xea,0xf9,0x01,0x2b,0x01,0x9a, +0xfe,0x66,0xfe,0xd7,0xfb,0xea,0xfe,0xde,0x03,0xa6,0xfc,0xe4,0xd3,0xb5,0xbe,0xd6,0xfc,0xe4,0x03,0x1c,0xd7,0xbd,0xb3,0xd5,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x02,0x06,0x00,0x5b,0x00,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x00,0x00,0x0b,0x00,0x93,0xb9,0x00,0x01,0x01,0x31,0x40,0x17,0x05,0x09,0x0f, +0x07,0x02,0x0a,0x02,0x0a,0x95,0x59,0x02,0x15,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x10,0x0b,0x06,0x4d,0x0b,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x38,0x0b,0x06,0x4d,0x02,0x02,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x08, +0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x0d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0x08,0x0d,0x06,0x4d,0x03,0x04,0x0c,0x06,0x4d,0x03,0x40,0x0d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xf1,0x2b,0x2b,0xc1,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x11, +0x12,0x00,0x39,0x18,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x8f,0x8d,0xfc,0xa4,0xa4,0x02,0x0a,0xa4,0x97,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x0f,0x00,0x67,0x40,0x46,0x0d,0x02,0x0b,0x04, +0x0b,0xec,0x59,0x04,0x04,0x00,0x08,0x0f,0x0f,0x00,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x02,0x0f,0x84,0x7f,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x07,0x05,0x0d,0x06,0x4d,0x07,0x05,0x0c,0x06,0x4d,0x07,0x2f, +0x11,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0xe1,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x32,0x12,0x39,0x2f,0x2b,0x11,0x00,0x33,0x33,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xa3,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x01,0x9c,0x62, +0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x05,0xc0,0x04,0x00,0x00,0x0b,0x00,0xad,0x40,0x1f,0x07,0x03,0x0b,0x0f,0x05,0x00,0x09,0x00,0x09,0x95,0x59,0x00,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x09,0x84,0x00,0xb8,0xff,0xf8,0x40,0x1b,0x0b,0x06, +0x4d,0x00,0x0e,0x08,0x01,0x05,0x42,0x04,0x08,0x0d,0x06,0x4d,0x04,0x08,0x0c,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x22,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x01,0x0c,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d, +0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xfc,0x40,0x0c,0x0b,0x06,0x4d,0x05,0x05,0x0d,0x0c,0x3f,0x0d,0x4f,0x0d,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf1,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18, +0x3f,0x33,0x33,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc0,0xfa,0xe6,0xa4,0x01,0x98,0xa3,0x01,0x97,0xa4,0x04,0x00,0xfc,0x8c,0x03,0x74,0xfc,0x8c,0x03,0x74,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x06,0x5a,0x04,0x00,0x00,0x0f,0x00,0xf2,0xb9,0x00,0x01,0x01,0x31,0x40,0x1e,0x09,0x05,0x0d,0x0f,0x0b, +0x07,0x02,0x0e,0x02,0x0e,0x95,0x59,0x02,0x15,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x10,0x0b,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x02,0xb8,0xff,0xf0,0x40,0x1c,0x0b,0x06,0x4d,0x02,0x02,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06, +0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0e,0x07,0x0d,0x06,0x4d,0x0e,0xb8,0xff,0xf9,0x40,0x1b,0x0b,0x06,0x4d,0x0e,0x0e,0x0a,0x07,0x03,0x42,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf8,0x40,0x32,0x0c,0x06,0x4d,0x03,0x08, +0x0b,0x06,0x4d,0x03,0x03,0x10,0x0a,0x08,0x0d,0x06,0x4d,0x0a,0x08,0x0c,0x06,0x4d,0x0a,0x08,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0e,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x07,0x11,0x10,0x3f,0x11,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x2b,0x01,0x10,0xf0,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc1,0x18,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x12,0x00,0x39,0x39,0x18,0x3f,0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0x5a,0x8f,0xfa,0xdb,0xa4,0x01,0x97,0xa4,0x01, +0x98,0xa4,0x99,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x64,0x04,0x00,0x00,0x0c,0x00,0x13,0x00,0x7e,0x40,0x26,0x05,0x0d,0x95,0x59,0x05,0x05,0x04,0x0e,0x04,0x01,0x95,0x59,0x04,0x0f,0x00,0x0e,0x95,0x59,0x00,0x15,0x09,0x08,0x0d,0x06,0x4d,0x09, +0x08,0x0c,0x06,0x4d,0x09,0x08,0x0b,0x06,0x4d,0x09,0x83,0x11,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x11,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x11,0x11,0x15,0x05,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x00,0x02,0x02,0x14,0x00,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x00,0x2f,0x2b, +0x12,0x39,0x2f,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x56,0xfe,0xc8,0x01,0xdc,0x01,0x14,0x9d,0xb9, +0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x03,0x74,0x8c,0xfe,0x77,0xa3,0x94,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0x06,0x04,0x00,0x00,0x03,0x00,0x0e,0x00,0x15,0x00,0xb0,0xb9,0x00,0x09,0xff,0xe8,0x40,0x2f,0x0b,0x00,0x4d,0x07,0x0f,0x95,0x59,0x07,0x07,0x10,0x02,0x05,0x0f,0x01,0x04,0x04,0x10, +0x95,0x59,0x04,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x01,0x01,0x01,0x04,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf4,0x40,0x1c,0x0b,0x06,0x4d,0x01,0x01,0x17,0x04,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08,0x0c,0x06,0x4d,0x0b,0x83,0x10,0x13,0x01,0x13,0x08,0x0d,0x06,0x4d,0x13,0xb8, +0xff,0xf8,0x40,0x19,0x0c,0x06,0x4d,0x13,0x13,0x17,0x07,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0x08,0x0b,0x06,0x4d,0x10,0x84,0x04,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x2f, +0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x21,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x05,0x06,0xa2,0xa2,0xfb,0xa0,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce, +0x04,0x00,0xfc,0x00,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0xb4,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x74,0x40,0x21,0x03,0x0b,0x95,0x59,0x03,0x03,0x0c,0x01,0x0f,0x00,0x0c,0x95,0x59,0x00,0x15,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b, +0x06,0x4d,0x07,0x83,0x0f,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xf0,0x40,0x19,0x0d,0x06,0x4d,0x0f,0x0f,0x13,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x00,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x00,0x02,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b, +0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x12,0x39,0x2f,0x2b,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0xa4,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x77,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe, +0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x18,0x00,0x99,0x40,0x09,0x00,0x16,0x01,0x00,0x12,0x01,0x10,0x05,0x05,0xb8,0xff,0xe8,0xb4,0x0b,0x0c,0x00,0x4c,0x09,0xb8,0xff,0xf0,0x40,0x36,0x0c,0x06,0x4d,0x09,0x06,0x95,0x59,0x09,0x09,0x03,0x11,0x0e,0x0c,0x11,0x0c,0x95,0x59,0x11,0x10,0x00,0x01, +0x01,0x0c,0x03,0x01,0x03,0x17,0x03,0x95,0x59,0x17,0x16,0x07,0x07,0x00,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x83,0x09,0x06,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0x40,0x0d,0x0c,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x1a,0x0e,0x00,0x2f,0xc4,0x12,0x39,0x2f, +0x5d,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x11,0x12,0x39,0x2f,0x2b,0x01,0x2b,0x31,0x30,0x00,0x2b,0x01,0x5f,0x5e,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x11, +0x14,0x00,0x23,0x22,0x5a,0x74,0x96,0x91,0xb3,0x08,0xfe,0x4c,0x01,0xb4,0x0c,0xb2,0x94,0x8f,0x69,0x6a,0x90,0xf4,0x01,0x06,0xfe,0xf3,0xe3,0x9d,0x2d,0x9b,0x56,0xb3,0x99,0x8c,0x98,0xac,0x4e,0xa2,0x36,0xfe,0xe3,0xfe,0xfd,0xf1,0xfe,0xe1,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x12,0x00,0x1a,0x00,0xb7,0x40,0x33, +0x00,0x0b,0x01,0x10,0x06,0x0a,0x13,0x95,0x59,0x0a,0x10,0x10,0x17,0x95,0x59,0x10,0x16,0x06,0x01,0x95,0x59,0x06,0x06,0x03,0x04,0x0f,0x03,0x15,0x07,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x83,0x19,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x19,0xb8,0xff,0xe0,0x40,0x19, +0x0b,0x06,0x4d,0x19,0x19,0x1c,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x83,0x07,0x00,0xb8,0xff,0xe0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1c,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x03, +0x08,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0x00,0x18,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, +0x32,0x12,0x11,0x14,0x00,0x23,0x22,0x02,0x01,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x6c,0xfe,0xde,0xa4,0xa4,0x01,0x24,0x1a,0x01,0x01,0xc9,0xdb,0xf1,0xfe,0xfe,0xe2,0xd5,0xef,0x01,0xce,0xfe,0xce,0x01,0x36,0x01,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0xd2,0xea,0xfe,0xec,0xff,0x00,0xf9,0xfe,0xdd,0x01,0x01,0x02,0xa5, +0xfe,0x70,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0x3e,0x00,0x00,0x03,0x62,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0xae,0x40,0x5a,0x02,0x06,0x01,0x10,0x04,0x0a,0x02,0x12,0x02,0x12,0x95,0x59,0x02,0x02,0x11,0x00,0x11,0x13,0x95,0x59,0x11,0x0f,0x06,0x00,0x15,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x06,0x08,0x0b, +0x06,0x4d,0x05,0x08,0x0a,0x08,0x01,0x07,0x16,0x08,0x0c,0x06,0x4d,0x16,0x08,0x0b,0x06,0x4d,0x16,0x83,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x0d,0x07,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0x0c,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb6, +0x0b,0x06,0x4d,0x01,0x01,0x1a,0x07,0xb8,0xff,0xf0,0xb5,0x0c,0x06,0x4d,0x06,0x07,0x19,0x10,0xce,0x32,0x2b,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x11,0x12,0x39,0x39,0x11,0x33,0x2b,0x2b,0x2b,0x00,0x3f,0x33,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39, +0x31,0x30,0x01,0x5f,0x5e,0x5d,0x21,0x23,0x11,0x23,0x22,0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x33,0x03,0x62,0xa4,0x89,0x63,0x51,0x85,0xbe,0xac,0x3c,0x55,0x78,0x7e,0xc5,0xb2,0x01,0x66,0xa4,0xc2,0xcf,0xc9,0x01,0xa8,0xa0,0xfe,0xf8,0x01,0x3c,0x6e,0x23,0x10,0x90,0x6c, +0x88,0x9f,0xfe,0x31,0x01,0x43,0x9d,0xa6,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0x87,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x00,0x8f,0x7f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x29,0x23,0x0c,0x12,0x3e,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x01,0x00,0x27,0xfe,0x62,0x04,0x14, +0x05,0xec,0x00,0x21,0x00,0xbc,0x40,0x40,0x11,0x0e,0x17,0x14,0x14,0x17,0x96,0x59,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x09,0x03,0x14,0x14,0x13,0x1b,0x18,0x08,0x1b,0x08,0x95,0x59,0x1b,0x0f,0x13,0x00,0x01,0x03,0x20,0x03,0xec,0x59,0x20,0x0c,0x15,0x15,0x15,0x0c,0x00,0x00,0x0d,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, +0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x83,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0x40,0x1d,0x0b,0x06,0x4d,0x06,0x06,0x23,0x11,0x14,0x17,0x03,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x84,0x0f,0x0d,0xb8,0xff,0xfc,0x40,0x0a,0x0b, +0x06,0x4d,0x0d,0x40,0x23,0x01,0x2f,0x23,0x01,0x5d,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x00,0x3f,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39, +0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x21,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x10,0x02,0x23,0x22,0x01,0xd5,0x43,0x3a,0x92,0x8a,0xfe,0xfa,0x76,0xa2,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x69,0xd3,0x01,0x84,0xdb,0xe9,0x3a,0xfe,0x7b, +0x9d,0x24,0x01,0x2b,0x01,0x64,0x01,0xef,0xbb,0x8a,0xfd,0xd3,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8a,0xc2,0xfd,0x87,0xfe,0x5a,0xfe,0x83,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x06,0x0a,0x02,0x26,0x02,0x0a,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0x94,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1b,0x08,0x06,0x04,0x05,0x3e,0x01, +0x08,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x60,0x04,0x18,0x00,0x18,0x00,0x86,0xb9,0x00,0x14,0xff,0xf0,0x40,0x52,0x0b,0x0c,0x00,0x4c,0x03,0x08,0x10,0x00,0x4d,0x11,0x12,0x95,0x59,0x11,0x11,0x16,0x08,0x00,0x0b,0x01,0x0d,0x03,0x0b,0x0d,0x08,0x0d,0x95,0x59,0x08,0x10,0x00,0x18,0x01, +0x0c,0x03,0x18,0x16,0x02,0x16,0x95,0x59,0x02,0x16,0x12,0x12,0x13,0x0b,0x00,0x30,0x00,0x01,0x00,0x1a,0x10,0x10,0x0c,0x06,0x4d,0x10,0x13,0x08,0x0d,0x06,0x4d,0x13,0x83,0x05,0x10,0x0d,0x06,0x4d,0x05,0x10,0x0c,0x06,0x4d,0x05,0x18,0x0b,0x06,0x4d,0x05,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x32,0x2b,0x11,0x33,0x5d,0x2f,0xc4,0x12,0x39, +0x2f,0x00,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x3f,0x2b,0x00,0x18,0x10,0xc6,0x5f,0x5e,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x31,0x30,0x00,0x2b,0x2b,0x25,0x06,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0x60,0x73,0x9f,0xe5,0xfe,0xf7,0x01,0x14, +0xf2,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0x01,0x1b,0xef,0x01,0x02,0x01,0x24,0x32,0xa2,0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x04,0x18,0x02,0x06,0x00,0x56,0x00,0x00,0xff,0xff,0xff,0xd3,0x00,0x00,0x02,0x1a,0x05,0x87,0x02,0x26, +0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x56,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x13,0x0d,0x02,0x03,0x25,0x02,0x01,0x10,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x00,0x02,0x00,0x10,0xff,0xf2,0x05,0xfc,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0xd5,0x40,0x34,0x00,0x03,0x01,0x10,0x06,0x04,0x18,0x0b, +0x0c,0x00,0x4c,0x08,0x0a,0x05,0x0a,0x95,0x59,0x05,0x00,0x0e,0x16,0x95,0x59,0x0e,0x0e,0x0c,0x17,0x0c,0x02,0x95,0x59,0x0c,0x0f,0x00,0x17,0x95,0x59,0x00,0x15,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0xed,0x0c,0xb8,0xff,0xe8,0x40,0x19,0x0d,0x06,0x4d,0x0c,0x0c,0x00,0x07,0x12,0x08,0x0d,0x06,0x4d,0x12,0x08,0x0c, +0x06,0x4d,0x12,0x08,0x0b,0x06,0x4d,0x12,0x83,0x1a,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1a,0xb8,0xff,0xfc,0x40,0x19,0x0c,0x06,0x4d,0x1a,0x1a,0x1e,0x0e,0x17,0x08,0x0d,0x06,0x4d,0x17,0x08,0x0c,0x06,0x4d,0x17,0x08,0x0b,0x06,0x4d,0x17,0x84,0x00,0xb8,0xff,0xfc,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00, +0xb8,0xff,0xf4,0x40,0x0a,0x0b,0x06,0x4d,0x00,0x00,0x1e,0x07,0x4f,0x1e,0x01,0x5d,0x2f,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc4,0x2b, +0x00,0x18,0x10,0xc6,0x31,0x30,0x2b,0x01,0x5f,0x5e,0x5d,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x02,0xee,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x01,0x15,0x9d,0xb9,0xbb,0x8d,0xfe,0xdd,0xf6,0xcd, +0xcf,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x77,0xa4,0x94,0x92,0xad,0x01,0xe9,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0xb7,0x40,0x28,0x08,0x01,0x13,0x0b,0x0b,0x13,0x95,0x59,0x0b,0x0b,0x14,0x06,0x0a,0x0f,0x03,0x00,0x00,0x14,0x95,0x59,0x00,0x15, +0x0f,0x04,0x0d,0x06,0x4d,0x0f,0x04,0x0c,0x06,0x4d,0x0f,0x04,0x0b,0x06,0x4d,0x0f,0x83,0x17,0xb8,0xff,0xf0,0x40,0x1a,0x0d,0x06,0x4d,0x17,0x17,0x1b,0x0b,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0x08,0x0b,0x06,0x4d,0x14,0x84,0x00,0xb8,0xff,0xf9,0x40,0x09,0x0d,0x06,0x4d,0x00,0x14,0x0c,0x06,0x4d,0x00,0xb8, +0xff,0xf0,0x40,0x19,0x0b,0x06,0x4d,0x00,0x00,0x1b,0x07,0x03,0x08,0x0d,0x06,0x4d,0x03,0x08,0x0c,0x06,0x4d,0x03,0x08,0x0b,0x06,0x4d,0x03,0x84,0x04,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x04,0x08,0x0b,0x06,0x4d,0x04,0x4f,0x1b,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b, +0x2b,0x39,0x39,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x06,0xfe,0x44,0xa4,0xa4,0x01, +0xbc,0xa4,0x01,0x14,0xa1,0xb5,0xb8,0x8f,0xfe,0xdd,0xf6,0xcc,0xce,0x01,0xdd,0xfe,0x23,0x04,0x00,0xfe,0x6a,0x01,0x96,0xfe,0x6a,0x9e,0x92,0x93,0xa7,0x01,0xdd,0xfe,0xaf,0xae,0xa3,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xfe,0x05,0xec,0x00,0x19,0x00,0xb4,0x40,0x3f,0x02,0x18,0x01,0x02,0x18,0x01,0x10,0x04,0x0d,0x0a,0x13,0x10, +0x10,0x13,0x96,0x59,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x10,0x0f,0x17,0x15,0x04,0x17,0x04,0x95,0x59,0x17,0x0f,0x0f,0x00,0x08,0x00,0x15,0x12,0x12,0x08,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c, +0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1d,0x0b,0x06,0x4d,0x01,0x01,0x1b,0x0d,0x10,0x13,0x03,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x0b,0x09,0xb8,0xff,0xfc,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x1b,0x01,0x5d,0x2f,0x2b,0xce,0xe1,0x2b,0x2b,0x2b,0x17,0x39,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe1,0x2b,0x2b,0x2b,0x10,0xc0,0x2f,0x00,0x3f,0x33,0x3f,0x3f,0x2b,0x11,0x00,0x33,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x2b,0x11,0x12,0x00,0x39,0x39,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x20,0x11, +0x03,0xfe,0xa4,0xec,0x7b,0xa3,0xa4,0x85,0x85,0xa4,0x01,0x4e,0xfe,0xb2,0x04,0x77,0xd9,0x01,0x5a,0x02,0x33,0x01,0x41,0xba,0x95,0xfd,0xdb,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x8c,0xc2,0xfe,0x5e,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x01,0x67,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1f,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x0e,0x0e,0x07,0x0a,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xf2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x07,0xcd,0xa0,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x00,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x8b,0x03,0xf8,0x04,0x00,0x00,0x0b,0x00,0x9c,0xb3,0x07,0x0b,0x0f,0x02,0xb8,0x01,0x31,0x40,0x18,0x04,0x00,0x00,0x09,0x95,0x59,0x00,0x15,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0xbb,0x01,0x2c,0x00,0x04,0x00,0x04,0xff,0xf8,0xb5,0x0b,0x06,0x4d,0x08,0x09,0x04, +0xb8,0x01,0x2c,0x40,0x17,0xff,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x09,0x01,0x09,0xb8,0xff,0xf8,0x40,0x23,0x0b,0x06,0x4d,0x09,0x09,0x0d,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x84,0x05,0x04,0x0d,0x06,0x4d,0x05,0x40,0x0d, +0x01,0x2f,0x0d,0x01,0x5d,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x00,0x33,0x18,0x3f,0x3f,0x33,0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xf8,0xfe,0x9e,0x8e,0xfe,0x9e,0xa4,0x02,0x0a, +0xa4,0xfe,0x8b,0x01,0x75,0x04,0x00,0xfc,0x8b,0x03,0x75,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa4,0x06,0xa2,0x00,0x07,0x00,0x75,0x40,0x19,0x05,0x00,0x91,0x59,0x06,0x05,0x03,0x02,0x12,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x09,0x70,0x00,0x01,0x00,0x08,0x0d, +0x06,0x4d,0x00,0xb8,0xff,0xfa,0x40,0x18,0x0b,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x7e,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x03,0x04,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33, +0x2f,0x2b,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x03,0xa4,0xfd,0xc0,0xa8,0x02,0x58,0x90,0x05,0x02,0xfa,0xfe,0x05,0x9a,0x01,0x08,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xe6,0x05,0x0e,0x00,0x07,0x00,0x62,0x40,0x19,0x05,0x00,0x95,0x59,0x06,0x05,0x0f,0x02, +0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x10,0x0b,0x06,0x4d,0x05,0xb8,0x01,0x2c,0x40,0x1d,0x70,0x00,0x01,0x00,0x18,0x0d,0x06,0x4d,0x00,0x00,0x09,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x03,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x03,0x12,0x0b,0x06,0x4d, +0x03,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x33,0x2f,0x2b,0x5d,0xe1,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xcd,0x2b,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x02,0xe6,0xfe,0x64,0xa4,0x01,0xb0,0x90,0x03,0x74,0xfc,0x8c,0x04,0x00,0x01,0x0e,0xff,0xff,0x00,0x00,0x01,0xfa,0x08,0x00,0x02,0x7b,0x02,0x06,0x00,0xb3,0x00,0x00, +0x00,0x04,0x00,0xbc,0x00,0x00,0x08,0x9a,0x05,0xae,0x00,0x0b,0x00,0x14,0x00,0x26,0x00,0x2a,0x00,0xd8,0x40,0x52,0x06,0x20,0x01,0x0a,0x16,0x01,0x04,0x0b,0x01,0x03,0x07,0x01,0x03,0x0f,0x05,0x01,0x0f,0x01,0x01,0x10,0x04,0x29,0x28,0x96,0x59,0x29,0x00,0x00,0x11,0x96,0x59,0x00,0x00,0x06,0x06,0x0c,0x96,0x59,0x06,0x04,0x20,0x26, +0x03,0x1d,0x15,0x12,0x2a,0x29,0x2a,0x29,0x03,0x09,0x8b,0x13,0x13,0x2c,0x0f,0x8b,0x03,0x03,0x2c,0x1e,0x16,0x22,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x7e,0x24,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x24,0xb8,0xff,0xf0,0x40,0x1f,0x0c,0x06,0x4d,0x24,0x0a,0x0b,0x06,0x4d,0x24,0x24,0x2c, +0x20,0x1a,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d,0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x7e,0x1e,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xfc,0x40,0x09,0x0c,0x06,0x4d,0x1e,0x04,0x0b,0x06,0x4d,0x1e,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x33, +0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0x33,0x3f,0x33,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x2b,0x00,0x18,0x10,0xc6,0x2b,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x10,0x33,0x32,0x11, +0x10,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x33,0x26,0x35,0x11,0x33,0x01,0x21,0x35,0x21,0x07,0x1c,0xaf,0xc3,0xcb,0xba,0xb0,0xbb,0xcb,0xa8,0x6c,0x79,0xe1,0xdd,0xfd,0x02,0xd1,0xfd,0x5f,0x20,0x0e,0x06,0x08,0xa8,0xdc,0x02,0xc6,0x04,0x08,0xa8,0x03,0x79,0xfd,0x4d,0x02,0xb3,0x02,0x5c,0xde,0xc4,0xd1, +0xdf,0xda,0xc8,0xc6,0xea,0x02,0xcb,0x99,0x8c,0xfe,0xe2,0x01,0x20,0x01,0x23,0xfa,0xd9,0x04,0x70,0x37,0x21,0x2e,0x94,0xfb,0xfa,0x05,0x9a,0xfb,0x43,0x31,0xa0,0x03,0xec,0xfb,0xa4,0x84,0x00,0x01,0x00,0x11,0xff,0xf4,0x04,0xaf,0x04,0x00,0x00,0x1a,0x00,0xb2,0x40,0x36,0x00,0x18,0x01,0x0d,0x0a,0x01,0x10,0x04,0x16,0x00,0x14,0x0d, +0x00,0x1a,0x00,0x95,0x59,0x1a,0x0f,0x06,0x04,0x09,0x04,0xec,0x59,0x09,0x10,0x15,0x00,0x00,0x02,0x06,0x06,0x02,0x08,0x0d,0x06,0x4d,0x02,0x08,0x0c,0x06,0x4d,0x02,0x08,0x0b,0x06,0x4d,0x02,0x84,0x7f,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0x40,0x27,0x0b, +0x06,0x4d,0x0b,0x0b,0x1c,0x13,0x16,0x16,0x1b,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x13,0x17,0x0d,0x06,0x4d,0x13,0x12,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe8,0xb3,0x0b,0x06,0x4d,0x13,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0xc6,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x2b,0x2b, +0x2b,0x5d,0xf1,0x2b,0x2b,0x2b,0xc2,0x2f,0x10,0xc2,0x2f,0x00,0x3f,0xc4,0x2b,0x00,0x18,0x10,0xc6,0x3f,0x2b,0x11,0x00,0x33,0x33,0x18,0x10,0xc4,0x31,0x30,0x01,0x5f,0x5e,0x5d,0x00,0x5d,0x01,0x23,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x21,0x11,0x14,0x07,0x23,0x36,0x35,0x11,0x06,0x07,0x35,0x36,0x33,0x21,0x04, +0xaf,0xde,0x65,0x22,0x36,0x3d,0x3d,0xe8,0xfe,0x7b,0x20,0xa7,0x24,0x7b,0x78,0x4b,0xaa,0x03,0xa9,0x03,0x7b,0xfd,0x95,0x8c,0x13,0x8c,0x17,0x01,0x15,0x02,0x72,0xfd,0x9d,0xc0,0x58,0x57,0xc1,0x02,0x63,0x03,0x56,0x96,0x48,0x00,0x00,0x02,0x00,0x2f,0x02,0x48,0x02,0xaa,0x05,0x9a,0x00,0x0c,0x00,0x11,0x00,0x4a,0x40,0x18,0x0c,0x0b, +0x0b,0x02,0xcc,0x0d,0x06,0x09,0x16,0x09,0x02,0x09,0x03,0x03,0x13,0x11,0x4f,0x06,0x7f,0x06,0x02,0x06,0x04,0x01,0xb8,0x01,0x56,0x40,0x0f,0x0c,0x06,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0d,0x02,0x0e,0x0a,0x27,0x02,0x28,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0x12,0x39,0x2f,0x33,0x5d,0x33, +0xed,0x32,0x11,0x33,0x30,0x31,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x36,0x12,0x37,0x33,0x11,0x33,0x23,0x11,0x06,0x06,0x07,0x02,0xaa,0x6e,0x84,0xfe,0x77,0x69,0xba,0x4e,0x9c,0x6e,0xf2,0x3e,0x80,0x42,0x03,0x14,0xcc,0xcc,0x5c,0x79,0x01,0x13,0x9e,0xfd,0xe7,0x01,0x73,0x71,0xb3,0x4f,0x00,0x00,0x01,0x00,0x7b,0x02,0x33,0x02,0x8a, +0x05,0x9e,0x00,0x24,0x00,0x37,0x40,0x1e,0x04,0x1c,0x14,0x1c,0x02,0x12,0x1e,0xcc,0x08,0x08,0x26,0x14,0xcc,0x01,0x0f,0x0a,0xe6,0x19,0x19,0x10,0x01,0x03,0xe6,0x00,0x23,0x29,0x12,0xe6,0x10,0x27,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x5d,0x13,0x35,0x16, +0x33,0x32,0x3e,0x02,0x35,0x34,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x07,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x7e,0x71,0x57,0x2a,0x45,0x31,0x1a,0xcc,0x14,0x30,0x31,0x31,0x13,0x30,0x01,0xb7,0xfe,0xb5,0x19,0x07,0x15,0x17,0x16,0x06,0x40,0x74,0x56,0x33,0x36,0x5b,0x76,0x3f,0x7d,0x02,0x5e, +0x92,0x46,0x18,0x2a,0x3b,0x23,0x98,0x01,0x03,0x03,0x01,0x01,0xc4,0x7c,0xc8,0x01,0x01,0x01,0x22,0x43,0x65,0x43,0x48,0x6b,0x47,0x23,0x00,0x01,0x00,0x4d,0x02,0x48,0x02,0xa0,0x05,0xa4,0x00,0x0a,0x00,0x2a,0x40,0x15,0x03,0x06,0x0a,0xcc,0x00,0x06,0x00,0x06,0x00,0x0c,0x1f,0x05,0x01,0x05,0x0a,0x28,0x07,0x03,0xe6,0x05,0x27,0x00, +0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x30,0x31,0x13,0x36,0x12,0x37,0x21,0x35,0x21,0x15,0x06,0x02,0x07,0xb3,0x38,0x99,0x70,0xfe,0x59,0x02,0x53,0x79,0xaf,0x33,0x02,0x48,0xc6,0x01,0x75,0xab,0x76,0x35,0xb9,0xfe,0x6e,0xdc,0x00,0x03,0x00,0x41,0x02,0x34,0x02,0xad,0x05,0xae,0x00,0x23, +0x00,0x31,0x00,0x45,0x00,0x53,0x40,0x30,0x15,0x05,0x08,0x3c,0xcc,0x12,0x12,0x1a,0xcc,0x60,0x2a,0x01,0x2a,0x2a,0x47,0x00,0x32,0xcc,0x08,0x08,0x24,0xcc,0x00,0x40,0x0a,0x0f,0x48,0x00,0x15,0x05,0x2f,0xe6,0x0f,0x37,0x1f,0x37,0x02,0x37,0x37,0x0d,0x27,0xe6,0x1f,0x29,0x41,0xe6,0x0d,0x27,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f, +0x5d,0xed,0x39,0x39,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02, +0x23,0x22,0x06,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x41,0x14,0x27,0x39,0x25,0x34,0x3c,0x27,0x47,0x63,0x3c,0x3d,0x63,0x46,0x27,0x3b,0x35,0x23,0x39,0x28,0x15,0x2c,0x51,0x73,0x46,0x46,0x72,0x51,0x2d,0x90,0x58,0x4e,0x4e,0x5c,0x17,0x2c,0x3f,0x28,0x4a,0x5c,0x20,0x14,0x24,0x31,0x1d, +0x1d,0x32,0x25,0x15,0x14,0x25,0x32,0x1e,0x1f,0x32,0x22,0x13,0x03,0x32,0x21,0x41,0x3b,0x32,0x11,0x21,0x5d,0x38,0x31,0x55,0x3d,0x23,0x23,0x3e,0x54,0x31,0x39,0x5d,0x20,0x11,0x33,0x3b,0x41,0x20,0x3b,0x5e,0x42,0x23,0x23,0x42,0x5e,0x47,0x48,0x49,0x4b,0x46,0x20,0x38,0x29,0x17,0x51,0x01,0x3b,0x1a,0x2e,0x22,0x14,0x14,0x22,0x2e, +0x1a,0x1b,0x2c,0x20,0x12,0x13,0x20,0x2d,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x04,0x00,0x02,0x06,0x00,0xd6,0x00,0x00,0xff,0xff,0x00,0x79,0xfe,0x85,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x01,0x9c,0x7b,0x00,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06, +0x01,0x9c,0x09,0x00,0x00,0x02,0x00,0x64,0x01,0x02,0x04,0x0e,0x04,0xaa,0x00,0x1b,0x00,0x27,0x00,0x68,0x40,0x3b,0x02,0x06,0x09,0x0d,0x10,0x14,0x17,0x1b,0x08,0x04,0x12,0x01,0x07,0x04,0x40,0x22,0x04,0xbe,0x59,0x22,0x0e,0x12,0x12,0x1c,0xbe,0x59,0x15,0x0f,0x12,0x16,0x00,0x00,0x19,0x0e,0x08,0x0b,0x40,0x02,0x06,0x09,0x0d,0x10, +0x14,0x17,0x1b,0x08,0x0b,0x19,0xbd,0x25,0x0b,0x25,0x42,0x25,0x25,0x29,0x1f,0xbd,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x11,0x17,0x39,0x1a,0x18,0x10,0xde,0xc4,0x10,0xca,0x2f,0xc4,0x00,0x2f,0xde,0xc4,0x2b,0x00,0x18,0x10,0xe4,0x2b,0x00,0x1a,0x18,0x10,0xde,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x27,0x06, +0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x07,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x0e,0x5c,0x89,0x69,0x86,0x88,0x68,0x8a,0x5c,0x8a,0x4c,0x4c,0x8a,0x5c,0x8a,0x6e,0x82,0x81,0x6c,0x8b,0x5c,0x89,0x4e,0x4e,0xfe,0xb5,0x74, +0x9f,0xa1,0x72,0x71,0xa3,0xa6,0x01,0x62,0x60,0x8a,0x4c,0x4c,0x8a,0x60,0x86,0x71,0x7c,0x81,0x6c,0x88,0x60,0x89,0x4d,0x4d,0x89,0x60,0x88,0x70,0x7d,0x79,0x74,0x02,0x02,0xa2,0x71,0x71,0xa2,0xa2,0x71,0x71,0xa2,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x06,0x3e,0x00,0x19,0x00,0x25,0x00,0xb2,0xb9,0x00,0x0d,0xff,0xf0,0xb3, +0x0b,0x00,0x4d,0x0a,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x00,0x4d,0x06,0xc0,0x02,0xf2,0x0d,0x1a,0x91,0x0f,0x0d,0x12,0x18,0x04,0x20,0x91,0x12,0x13,0x0d,0xb8,0xff,0xe8,0x40,0x1e,0x0c,0x06,0x4d,0x06,0x06,0x04,0xc2,0x09,0x09,0x0d,0x00,0x15,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x23, +0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x23,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x23,0xb8,0xff,0xf4,0x40,0x2a,0x0b,0x06,0x4d,0x23,0x23,0x27,0x1d,0x06,0x0d,0x06,0x4d,0x1d,0x06,0x0c,0x06,0x4d,0x1d,0x06,0x0b,0x06,0x4d,0x1d,0x7d,0x15,0x10,0x0d,0x06,0x4d,0x15,0x10,0x0c,0x06,0x4d,0x15,0x10,0x0b,0x06,0x4d,0x15,0x2f,0x27,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x2b,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x2b,0x2b,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x23,0x16,0x11,0x10,0x00,0x21,0x20, +0x00,0x11,0x10,0x00,0x21,0x32,0x07,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x04,0x8f,0x30,0x20,0xd6,0x15,0x88,0x12,0x8c,0x7a,0x22,0x98,0xfe,0x8c,0xfe,0xc8,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0xd8,0xe4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x05,0x43,0x09,0x82,0x48,0x3a,0x36,0x50,0x6c, +0x86,0xc2,0xfe,0xdb,0xfe,0xa1,0xfe,0x68,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0x98,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xa9,0x04,0xfc,0x00,0x18,0x00,0x24,0x00,0x95,0x40,0x2b,0x00,0x80,0x14,0xf2,0x05,0x19,0x95,0x07,0x05,0x0a,0x10,0x10, +0x1f,0x95,0x0a,0x16,0x00,0x00,0x17,0xc2,0x03,0x03,0x10,0x05,0x0d,0x07,0x06,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x83,0x22,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x22,0xb8,0xff,0xf7,0xb6,0x0c,0x06,0x4d,0x30,0x22,0x01,0x22,0xb8,0xff,0xe4,0x40,0x27,0x0b,0x06,0x4d,0x22,0x22,0x26,0x1c,0x0a,0x0d, +0x06,0x4d,0x1c,0x0a,0x0c,0x06,0x4d,0x1c,0x0a,0x0b,0x06,0x4d,0x1c,0x83,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x0e,0x0c,0x06,0x4d,0x0d,0x19,0x0b,0x06,0x4d,0x0d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39, +0xed,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04,0x10,0x86,0x13,0xdb,0x82,0xfe,0xeb,0xe9,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0x30,0x56,0x3d,0x6d,0x3b, +0x4f,0xfe,0x3a,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x04,0xfc,0x38,0x50,0xc0,0x28,0x8d,0xfb,0xf5,0xfe,0xd9,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0x0e,0x0a,0x47,0x32,0x49,0xfe,0xcc,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x06,0x96,0x00,0x17,0x00,0x86,0x40,0x33,0x25,0x0a,0x35,0x0a, +0x02,0x25,0x08,0x35,0x08,0x02,0x12,0x80,0x17,0xda,0x0c,0x0c,0x05,0x03,0x09,0x91,0x02,0x13,0x12,0x12,0x10,0xc2,0x15,0x15,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x0b,0x18,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xd8,0x40,0x18,0x0c,0x06,0x4d,0x0b,0x0b,0x19,0x07,0x08,0x0d,0x06,0x4d,0x07, +0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x04,0xb8,0xff,0xfc,0x40,0x0c,0x0c,0x06,0x4d,0x04,0x04,0x0b,0x06,0x4d,0x04,0x30,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x10,0xfd,0x1a,0xcc,0x31,0x30,0x5d,0x5d, +0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x93,0x3c,0x4f,0x15,0x88,0x12,0xfb,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x47,0x31,0x4a,0x3a,0x38,0x50, +0xd2,0x1f,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xc7,0x04,0xfc,0x00,0x1b,0x00,0x92,0x40,0x32,0x06,0x40,0x10,0x00,0x4d,0x0d,0x10,0x0b,0x0c,0x00,0x4c,0x17,0x80,0x1b,0xf2,0x10,0x08,0x0f,0x02,0x0c,0x95,0x05,0x16,0x00,0x15,0x16,0x16,0x14,0xc2,0x19,0x19,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d, +0x00,0x84,0x02,0x0f,0xb8,0xff,0xe0,0x40,0x32,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d,0x0f,0x08,0x0b,0x06,0x4d,0x7f,0x0f,0x01,0x0f,0x0f,0x1d,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x09,0x0c,0x06,0x4d,0x07,0x06,0x0b,0x06,0x4d,0x07,0x2f,0x1d,0x01,0x5d,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xd4,0xfd,0x1a,0xcd,0x31,0x30,0x2b,0x2b,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x03,0xe2, +0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x7a,0x3b,0x4f,0x14,0x86,0x13,0xe5,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x47,0x32,0x49,0x3a,0x38,0x50,0xc6,0x24,0x00,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x2b,0x40,0x16,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08, +0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06, +0x23,0x04,0x54,0x47,0x3d,0x54,0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x01,0x00,0xf2,0xfe,0xc6,0x01,0xb8,0xff,0x89,0x00,0x0b,0x00,0x15,0x40,0x09,0x00,0xc1,0x06,0x09,0xc0,0x03,0x03,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x55,0x29,0x3a,0x3c, +0x27,0x29,0x3a,0x3a,0xfe,0xc6,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x01,0x00,0x66,0x04,0xc2,0x01,0xc2,0x05,0xb8,0x00,0x03,0x00,0x0e,0xb4,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0xc2,0x7e,0xde,0xa8,0x04,0xc2,0xf6,0x00,0x01,0x00,0x64,0x04,0xc2,0x01,0xc0,0x05,0xb8, +0x00,0x03,0x00,0x0e,0xb4,0x01,0x03,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x64,0xb4,0xa8,0xdc,0x04,0xc2,0xf6,0xf6,0x00,0x02,0x00,0x42,0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x2e,0xb1,0x01,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0a,0x04,0x02,0x80,0x00, +0x00,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x04,0xc0,0x08,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x07,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x34,0xb4,0xa8,0xdd,0x3d,0x79,0xa4,0xa6,0x71,0xd8,0x84,0x05,0x5a,0xf6,0xf6,0x98,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x42, +0x04,0xc2,0x03,0x90,0x06,0x50,0x00,0x03,0x00,0x0a,0x00,0x36,0xb1,0x03,0x00,0xb8,0xff,0xc0,0x40,0x1b,0x09,0x0c,0x48,0x00,0x00,0x06,0x80,0x07,0x80,0x07,0x90,0x07,0xa0,0x07,0x03,0x07,0xc0,0x04,0x40,0x0f,0x13,0x48,0x04,0x04,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xcc,0x5d,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xcd, +0x31,0x30,0x01,0x23,0x27,0x33,0x13,0x37,0x33,0x17,0x23,0x27,0x07,0x01,0x9e,0x7e,0xde,0xa8,0x73,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0x5a,0xf6,0xfe,0x72,0xfa,0xfa,0x94,0x94,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x45,0x40,0x26,0x0f,0xe2,0x40,0x02,0xc0,0x0b,0x40,0x08,0x09,0x09,0x17,0x16, +0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0xd5,0x1a,0xcd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94,0xfa,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4, +0x00,0x12,0x00,0x19,0x00,0x41,0x40,0x23,0x12,0x07,0xda,0x0c,0x10,0xda,0x40,0x03,0x09,0x40,0x0d,0x10,0x48,0x09,0x19,0x80,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0x1a,0xdd,0xd6,0x2b,0xd6, +0x1a,0xfd,0xdc,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7, +0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x34,0x40,0x19,0x02,0x80,0x00,0x04,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a, +0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c, +0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x36,0x40,0x1a,0x03,0x80,0x01,0x0a,0x04,0x07,0xd9,0x40,0x0d,0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0xc4,0xd4,0x1a,0xcd,0x31,0x30,0x01,0x23, +0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8,0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x5e,0x40,0x37,0x0f,0xe2,0x40,0x00,0x02,0x10, +0x02,0x20,0x02,0x03,0x02,0xc0,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x08,0x09,0x09,0x1b,0x12,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc, +0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd,0xd4,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x5d,0x1a,0xdc,0x5d,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28, +0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x50,0x40,0x2c,0x12,0x07,0xda,0x0c,0x10,0xda,0x03,0x0a,0x40,0x0d,0x11,0x48, +0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd,0xdc,0xed,0xc6, +0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c,0x12,0x06,0xe4,0x65, +0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x01,0x00,0xab,0x04,0xc2,0x01,0xc4,0x06,0x27,0x00,0x11,0x00,0x3d,0xb3,0x0f,0xe2,0x40,0x02,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x02,0xc0,0x0b,0xb8,0xff,0xe8,0x40,0x14,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05, +0x01,0x05,0x80,0x08,0x11,0x0b,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xd5,0x1a,0xcd,0x2b,0x1a,0xdc,0x2b,0x1a,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0xab,0x25,0x2b,0x58,0x71,0x4d,0x39,0x6c,0x70,0x5e,0x11,0x28,0x06,0x23,0x04,0x54,0x47,0x3d,0x54, +0x07,0x32,0x73,0x4c,0x3f,0x08,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x19,0x00,0x50,0xb3,0x00,0x07,0xda,0x0c,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0c,0x48,0x0c,0x10,0xda,0x40,0x03,0x09,0xb8,0xff,0xc0,0x40,0x1a,0x09,0x0c,0x48,0x09,0x19,0x80,0x17,0x13,0x13,0x00,0x17,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f, +0x00,0x01,0x0a,0x00,0x0a,0x00,0x1b,0x1a,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x10,0xc6,0x10,0xc4,0x00,0x2f,0xc4,0x1a,0xdd,0xd6,0x2b,0xd6,0x1a,0xfd,0xdc,0x2b,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x23,0x27,0x07,0x23,0x37,0x33, +0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x3b,0x79,0xa4,0xa6,0x70,0xd7,0x85,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfd,0xde,0x94,0x94,0xfa,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3b,0xb3,0x02,0x00,0x04,0x0a,0xb8,0xff,0xc0, +0x40,0x18,0x09,0x0c,0x48,0x0a,0x0d,0xd9,0x40,0x07,0x02,0x80,0x00,0x00,0x0b,0x0f,0xf3,0x04,0x0b,0xf3,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x11,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x37,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x32,0x37,0xd7,0xb5,0xa7,0xdd,0xf4,0x0a,0x9d,0x70,0x75,0x94,0x05,0x64,0x0b,0xa1,0x9d,0x12,0x05,0xaa,0xf6,0xf6,0x14,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x38,0x04,0xc2,0x02,0x5c,0x06,0xa0,0x00,0x03,0x00,0x0f,0x00,0x3d,0xb3,0x03,0x01,0x0a,0x04,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x04,0x07,0xd9,0x40,0x0d, +0x02,0x80,0x00,0x00,0x05,0x09,0xf3,0x0a,0x05,0xf3,0x04,0x0a,0x04,0x0a,0x04,0x11,0x10,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0xdc,0x2b,0xc4,0xd4,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x07,0x33,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x01,0xaa,0x7f,0xdd,0xa8, +0xbe,0x66,0x10,0x9e,0xa2,0x0a,0x64,0x04,0x96,0x74,0x70,0x9c,0x05,0xaa,0xf6,0xe2,0x86,0x86,0x72,0x8a,0x8c,0x00,0x00,0x02,0x00,0x25,0x04,0xc2,0x02,0x4a,0x07,0x0a,0x00,0x11,0x00,0x1d,0x00,0x68,0x40,0x0d,0x0f,0xe2,0x10,0x02,0x20,0x02,0x30,0x02,0xf0,0x02,0x04,0x02,0x0b,0xb8,0xff,0xd8,0x40,0x0a,0x0d,0x10,0x48,0x0b,0x08,0x09, +0x09,0x1b,0x12,0x18,0xb8,0xff,0xc0,0x40,0x21,0x09,0x0c,0x48,0x18,0x1b,0xd9,0x40,0x15,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x11,0x0b,0x0b,0x18,0x1d,0xf3,0x12,0x19,0xf3,0x18,0x18,0x12,0x1f,0x1e,0x11,0x12,0x39,0x39,0x10,0xe1,0x10,0xe1,0x11,0x39,0x2f,0xc6,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0x1a,0xfd, +0xd4,0x2b,0xc4,0x12,0x39,0x2f,0xd5,0xcd,0x2b,0xd4,0x5d,0xed,0x31,0x30,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0xcd,0x25,0x2a,0x5b,0x6f,0x50,0x36,0x6c,0x70,0x5e,0x11,0x28,0x01,0x7d,0x0a,0x9d,0x70,0x75,0x94,0x05, +0x64,0x0b,0xa1,0x9d,0x12,0x07,0x06,0x04,0x54,0x48,0x3c,0x54,0x07,0x31,0x72,0x4c,0x40,0x08,0xde,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x00,0x02,0x00,0xa9,0x04,0xc2,0x03,0x2a,0x06,0xe4,0x00,0x12,0x00,0x1e,0x00,0x5c,0xb3,0x12,0x07,0xda,0x0c,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0c,0x10,0xda,0x03,0x0a,0xb8,0xff,0xc0,0x40,0x23, +0x09,0x0c,0x48,0x0a,0x1e,0x19,0x1c,0xd9,0x16,0x1e,0xf3,0x13,0x13,0x00,0x12,0x1a,0xf3,0x19,0x19,0x09,0x0a,0x12,0xc4,0x00,0x09,0xc4,0x0f,0x00,0x01,0x0a,0x00,0x0a,0x00,0x20,0x1f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0xfd,0xdc,0xc4,0xd6,0x2b,0xd4,0xfd, +0xdc,0x2b,0xed,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x37,0x03,0x2a,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x34,0x0a,0x9d,0x6f,0x76,0x94,0x05,0x65,0x0a,0xa2,0x9c, +0x12,0x06,0xe4,0x65,0x75,0x25,0x25,0x5c,0xd7,0x26,0x26,0x61,0xfe,0xda,0x71,0x8b,0x8a,0x72,0x86,0x86,0x00,0x02,0x00,0x6c,0x04,0xc2,0x03,0x68,0x06,0xbe,0x00,0x11,0x00,0x18,0x00,0x5e,0x40,0x0c,0x0f,0xe2,0x0f,0x02,0x01,0x02,0x40,0x0d,0x10,0x48,0x02,0x0b,0xb8,0xff,0xe8,0xb6,0x09,0x0c,0x48,0x0b,0x40,0x08,0x09,0xb8,0xff,0xc0, +0x40,0x21,0x09,0x0c,0x48,0x09,0x09,0x17,0x16,0x0d,0xc2,0x4f,0x05,0x01,0xcf,0x05,0x01,0x05,0x80,0x08,0x40,0x11,0x11,0x0b,0x0b,0x80,0x12,0x90,0x12,0xa0,0x12,0x03,0x12,0xc0,0x16,0x2f,0x1a,0xcc,0x5d,0x39,0x2f,0xc6,0xc6,0x1a,0xcd,0x1a,0xdc,0x5d,0x71,0xe1,0x00,0x2f,0xcd,0x39,0x2f,0x2b,0xd5,0x1a,0xcd,0x2b,0xdc,0x2b,0x5d,0xed, +0x31,0x30,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x32,0x35,0x34,0x23,0x22,0x07,0x13,0x23,0x27,0x07,0x23,0x37,0x33,0x02,0x50,0x24,0x2c,0x59,0x6f,0x4b,0x39,0x6d,0x71,0x5f,0x11,0x28,0x4e,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x06,0xba,0x04,0x53,0x48,0x3c,0x54,0x07,0x32,0x73,0x4b,0x40,0x08,0xfe,0x72,0x94,0x94, +0xfa,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x0b,0xb6,0x02,0x18,0x13,0x19,0x06,0x07,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00, +0x00,0x0e,0xb9,0x00,0x02,0xff,0xf7,0xb4,0x23,0x29,0x0f,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x85,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x7c,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xf2,0x40,0x09,0x1a,0x19,0x0b,0x0b,0x3e,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x27,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xf4,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x31,0x25,0x10,0x14,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, +0x02,0x48,0x01,0x2e,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf4,0x40,0x0a,0x16,0x16,0x06,0x07,0x25,0x03,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0x52,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xc2,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, +0x00,0x28,0x24,0x10,0x14,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xad,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x49,0x00,0x13,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x15,0x16,0x06,0x07,0x25,0x03,0x02,0x1a,0x05,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xe8,0xff,0xe8,0x03,0x83,0x06,0x50,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x49,0xa6,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x25,0x26,0x0d,0x12,0x25,0x03,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12, +0x08,0x1c,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x07,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x27,0x28,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0xe9,0x06,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4a, +0x00,0x81,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf3,0x40,0x0a,0x37,0x38,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0xa3,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9, +0x40,0x0a,0x28,0x29,0x06,0x07,0x25,0x03,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4b,0x2f,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x05,0x38,0x39,0x0d,0x12,0x25,0x03,0x02,0x37,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x6b,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0x11,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1e,0x40,0x0c,0x02,0x14,0x05,0x26,0x03,0x17,0x1a,0x20,0x05,0x00,0x3e,0x02,0xb8,0xff,0xf4,0xb4,0x14,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b, +0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x06,0x0e,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0x97,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x24,0x11,0x26,0x03,0x29,0x2a,0x30,0x08,0x14,0x3e,0x02,0x1f,0x24,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b, +0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfb,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x52,0x01,0x59,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1a,0x14,0x06,0x07,0x25,0x03,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0, +0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4c,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x06,0x27,0x2d,0x0d,0x12,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0xfc,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x53,0x01,0x43,0x01,0x5c, +0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfa,0x40,0x0a,0x14,0x1a,0x06,0x07,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0xa0,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4d,0x00,0xe5,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x1f,0x27,0x2d,0x0d,0x12,0x25, +0x03,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x65,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x54,0x01,0x64,0x01,0x5b,0x00,0x2c,0xb1,0x03,0x02,0xb8,0xff,0xfb,0x40,0x1a,0x1a,0x19,0x06,0x07,0x25,0x03,0x6f,0x25,0x8f,0x25,0x02,0x02,0x20,0x25,0x30,0x25, +0x50,0x25,0x60,0x25,0x80,0x25,0x05,0x25,0x05,0x26,0x00,0x2b,0x71,0x35,0x71,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x07,0x0a,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x02,0x4e,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfc,0x40,0x0a,0x2a,0x29,0x0d,0x12,0x25,0x03,0x02,0x35,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x08,0x3f,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x02,0x55,0x00,0xad,0x01,0x5b,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1a,0x10,0x06,0x07,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, +0x03,0x83,0x06,0xe4,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x02,0x4f,0x35,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x36,0x3c,0x0d,0x12,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0xc6,0x05,0x12,0x07,0x1a,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x00,0xda,0x01,0x5e, +0x01,0x5c,0x01,0x07,0x02,0x45,0x01,0x56,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x13,0x05,0x26,0x03,0x17,0x20,0x26,0x05,0x00,0x3e,0x02,0x02,0x16,0x10,0x06,0x07,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xc6,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x00,0x27,0x00,0xda,0x00,0xdc,0x00,0x00, +0x01,0x07,0x02,0x45,0x00,0xc2,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x23,0x11,0x26,0x03,0x29,0x30,0x36,0x08,0x14,0x3e,0x02,0x25,0x26,0x20,0x08,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf3,0x00,0x00,0x00,0x0b, +0xb6,0x01,0x10,0x0f,0x15,0x02,0x0b,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xf2,0x00,0x00,0x00,0x0b,0xb6,0x02,0x27,0x1d,0x23,0x19,0x13,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x83,0x02,0x26,0x00,0x28, +0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x0d,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0c,0x1d,0x11,0x02,0x0b,0x3e,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x27,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x19,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x30,0x2b,0x1f, +0x19,0x13,0x3e,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x0e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdc,0x01,0x5c,0x00,0x17,0x40,0x0e,0x01,0x07,0x16,0x0c,0x02,0x0b,0x3e,0x01,0x00,0x16,0x01,0x16,0x05,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xb2,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xc8,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0d,0x24,0x1a,0x0c,0x12,0x25,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x6f,0x07,0xab,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, +0x02,0x48,0x00,0xdf,0x01,0x5b,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x14,0x10,0x02,0x03,0x25,0x02,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x5a,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x48,0x00,0xca,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf0, +0x40,0x0a,0x23,0x24,0x16,0x0f,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xb4,0x07,0xad,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x49,0xff,0xcc,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x19,0x10,0x13,0x02,0x03,0x25,0x02,0x01,0x16,0x05,0x26,0x00,0x2b,0x35, +0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0c,0xff,0xe8,0x03,0xdd,0x06,0x50,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x49,0xca,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x1f,0x20,0x16,0x0f,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x20,0x08,0x1a, +0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x56,0x00,0xb8,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x15,0x22,0x1e,0x02,0x03,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x32,0x06,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xca,0x00,0x00, +0x00,0x17,0x40,0x0d,0x03,0x02,0x19,0x31,0x32,0x16,0x0f,0x25,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x08,0x40,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0x51,0x00,0x4e,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x0f,0x23,0x1f,0x02,0x03,0x25,0x02,0x01, +0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0xe4,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x02,0x4b,0x47,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x10,0x31,0x2d,0x19,0x13,0x25,0x03,0x02,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc, +0xfe,0xc6,0x03,0xb4,0x07,0x6b,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xbf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xea,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x10,0x05,0x26,0x02,0x07,0x16,0x1c,0x01,0x00,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x10,0x0c,0x01,0x00,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x60, +0xfe,0xc6,0x03,0xdd,0x06,0x0e,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xb4,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xef,0x00,0x00,0x00,0x1b,0x40,0x12,0x02,0x1e,0x11,0x26,0x03,0x26,0x24,0x2a,0x0c,0x12,0x3e,0x02,0x0c,0x1e,0x1a,0x0c,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x9a,0x00,0x00, +0x01,0xb3,0x07,0x83,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xef,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x88,0x00,0x00,0x01,0xa1,0x06,0x27,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x02,0x44,0xdd,0x00,0x00,0x13, +0x40,0x0b,0x01,0x00,0x0e,0x0d,0x02,0x03,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xb2,0xfe,0xc6,0x01,0x78,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x06,0x02,0x45,0xc0,0x00,0x00,0x0b,0xb6,0x01,0x05,0x07,0x0d,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x01,0x66, +0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xfd,0xb4,0x13,0x19,0x03,0x09,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x05,0xb2,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa8,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0xff,0xf9,0xb4,0x1b,0x21, +0x03,0x09,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x04,0x18,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x06,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x1b,0x21,0x03,0x09,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x83,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x50, +0x01,0xf6,0x01,0x5c,0x00,0x16,0xb9,0x00,0x02,0xff,0xee,0x40,0x09,0x22,0x21,0x0c,0x06,0x3e,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x27,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x43,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x22,0x21,0x0c, +0x06,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0xb3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x98,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x48,0x01,0x08,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x1e,0x1e,0x0c,0x0c,0x25,0x03,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xad,0x02,0x26,0x00,0x32,0x00,0x00, +0x01,0x07,0x02,0x49,0x00,0x94,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x21,0x21,0x0c,0x06,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x50,0x06,0x50,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0x49,0xee,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd, +0x40,0x0a,0x21,0x21,0x06,0x06,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x1a,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x56,0x01,0x78,0x01,0x5c,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xed,0x40,0x0a,0x2f,0x30,0x0c,0x06,0x25,0x03,0x02,0x2e,0x05,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xbe,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0x4a,0x00,0xe5,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x2c,0x2c,0x06,0x06,0x25,0x03,0x02,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x05,0xaa,0x08,0x40,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0x51,0x01,0x29,0x01,0x5c,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x2d,0x2d,0x0c,0x06,0x25,0x03,0x02,0x2f,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xe4,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06, +0x02,0x4b,0x70,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf5,0x40,0x0a,0x30,0x31,0x0c,0x06,0x25,0x03,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x05,0xaa,0x07,0x6b,0x02,0x26,0x00,0x32,0x00,0x00,0x00,0x27,0x00,0xd7,0x01,0xa4,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0xb0,0x00,0x00, +0x00,0x1b,0x40,0x12,0x02,0x1c,0x05,0x26,0x03,0x01,0x22,0x28,0x03,0x09,0x3e,0x02,0x16,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x50,0x06,0x0e,0x02,0x26,0x00,0x52,0x00,0x00,0x00,0x27,0x00,0xd7,0x00,0xf7,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfe,0x00,0x00,0x00,0x1e, +0xb4,0x02,0x1c,0x11,0x26,0x03,0xb8,0xff,0xfb,0x40,0x0c,0x22,0x28,0x03,0x09,0x3e,0x02,0x15,0x1c,0x18,0x03,0x09,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x0e,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x00,0x27,0x27,0x18,0x18, +0x25,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x61,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x26,0x26,0x10,0x10,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x06,0x3a,0x07,0x67,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xc8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x27,0x27,0x18,0x18,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x0a,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x02, +0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xfc,0x40,0x09,0x26,0x26,0x19,0x19,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a,0x07,0x83,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x50,0x02,0x0c,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x30,0x2f,0x18,0x18,0x25,0x02,0x2f,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x06,0x27,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x45,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe9,0x40,0x09,0x2f,0x2e,0x19,0x10,0x25,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x06,0x3a, +0x07,0x0e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0xb0,0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x0f,0x30,0x26,0x15,0x0f,0x25,0x02,0x30,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0xa9,0x05,0xb2,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xf8,0x00,0x00,0x00,0x13, +0x40,0x0b,0x02,0x03,0x2f,0x25,0x0d,0x07,0x3e,0x02,0x2f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0xc6,0x06,0x3a,0x06,0x3e,0x02,0x26,0x02,0x40,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xac,0x00,0x00,0x00,0x0b,0xb6,0x02,0x03,0x2c,0x2c,0x12,0x12,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0xc6, +0x04,0xa9,0x04,0xfc,0x02,0x26,0x02,0x41,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x0b,0xb6,0x02,0x05,0x2b,0x2b,0x0a,0x0a,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc6,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x14,0x14,0x02, +0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xd1,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xfb,0xb4,0x18,0x18,0x0c,0x0c,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x83,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, +0x02,0x50,0x01,0x97,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1f,0x13,0x05,0x0d,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x27,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x22,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x20,0x23,0x17,0x08,0x11,0x3e,0x01, +0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xb8,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x19,0x19,0x06,0x0c,0x3e,0x01,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7, +0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x1d,0x1d,0x09,0x10,0x3e,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x67,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7a,0x01,0x5d,0x00,0x13, +0x40,0x0b,0x01,0x13,0x19,0x19,0x06,0x0c,0x3e,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x0a,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x23,0x1d,0x1c,0x09,0x10,0x3e,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x83,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x9d,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe6,0x40,0x09,0x22,0x21,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x06,0x27,0x02,0x26,0x02,0x43, +0x00,0x00,0x01,0x07,0x02,0x44,0x01,0x27,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x26,0x25,0x09,0x10,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x07,0x0e,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x66,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x0a, +0x22,0x18,0x06,0x0c,0x3e,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x04,0xc7,0x05,0xb2,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x26,0x1c,0x08,0x1b,0x3e,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0xaa,0xfe,0xc6,0x05,0xd0,0x06,0x96,0x02,0x26,0x02,0x42,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x66,0x00,0x00,0x00,0x0b,0xb6,0x01,0x07,0x1e,0x1e,0x02,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xfe,0xc6,0x04,0xc7,0x04,0xfc,0x02,0x26,0x02,0x43,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe5,0x00,0x00,0x00,0x0b,0xb6,0x01, +0x00,0x1f,0x25,0x0a,0x01,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0xfe,0xc6,0x04,0x60,0x05,0x9a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xdf,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x11,0x17,0x03,0x02,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x02,0x26,0x00,0x5c,0x00,0x00, +0x01,0x07,0x02,0x45,0x01,0xc2,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xec,0xb4,0x15,0x1b,0x14,0x14,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x83,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x02,0x50,0x01,0x1a,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x18,0x1f,0x13,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x27,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x02,0x44,0x00,0xc9,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x26,0x1a,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x07,0x0e,0x02,0x26, +0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xde,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x08,0x18,0x0e,0x05,0x00,0x3e,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0xb2,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8b,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xfd,0x40,0x09,0x1f,0x15,0x0c,0x00,0x3e,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29,0xfe,0x85,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x01,0x9c,0x00,0x93,0x00,0x00,0x00,0x0b,0xb6,0x01,0x1d,0x0b,0x0b,0x03,0x03,0x3e,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x85,0x02,0x81, +0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x01,0x9c,0x2a,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xe7,0xb4,0x17,0x15,0x04,0x00,0x3e,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x67,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0e, +0x0c,0x02,0x0b,0x3e,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x0a,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xe5,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd9,0x40,0x09,0x1c,0x1a,0x19,0x13,0x3e,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff, +0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x67,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xda,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x16,0x14,0x0b,0x01,0x3e,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x06,0x0a,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07, +0x00,0x43,0x00,0xde,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x11,0x0f,0x07,0x0d,0x3e,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff, +0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xf6,0x05,0x9a,0x00,0x0d,0x00,0x5b,0x40,0x2c,0x05,0x08,0x91,0x02,0x0b,0x0b,0x07,0x01,0x91,0x0c,0x03,0x07,0x09,0x08,0x04,0x00,0x04,0x00, +0x0f,0x02,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x08,0xb8,0xff,0xe0,0xb3,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x00,0x2f,0x3f,0xed,0x12, +0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0xf6,0xfd,0xc0,0x01,0x5a,0xfe,0xa6,0xa8,0xe5,0xe5,0x02,0xe8,0x05,0x02,0xfe,0x36,0x9a,0xfd,0x62,0x02,0x9e,0x9a,0x02,0x62,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x00,0x0d,0x00,0x5e,0x40,0x27,0x05,0x08, +0x96,0x02,0x0b,0x0b,0x07,0x01,0x95,0x0c,0x0f,0x07,0x09,0x07,0x04,0x00,0x04,0x00,0x0f,0x02,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x0b,0x07,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0c,0x06,0x4d,0x07,0xb8,0xff,0xe4,0xb3,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b, +0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x03,0x29,0xfe,0x6b,0x01,0x02,0xfe,0xfe,0xa4,0xd2,0xd2,0x02,0x39,0x03,0x74,0xfe,0xe2,0x85,0xfe,0x2f,0x01,0xd1,0x85,0x01, +0xaa,0x00,0x00,0x01,0xff,0xea,0xfe,0x80,0x07,0x0a,0x05,0x9a,0x00,0x21,0x00,0xae,0x40,0x13,0x13,0x0d,0x1c,0x04,0x04,0x10,0x1f,0x10,0x0e,0x12,0x20,0x91,0x03,0x40,0x1d,0x17,0x12,0x03,0x01,0xb8,0x01,0x30,0xb3,0x09,0x03,0x0e,0x02,0xb8,0x01,0x2c,0x40,0x09,0x21,0x1d,0x1e,0x1e,0x08,0x20,0x03,0x02,0x21,0xb8,0xff,0xf8,0x40,0x26, +0x0c,0x06,0x4d,0x21,0x0e,0x08,0x12,0x11,0x11,0x09,0x0e,0x0f,0x0f,0x09,0x42,0x0f,0x1f,0x18,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x7e,0x17,0x10,0x09,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xf4,0x40,0x11,0x0c,0x06,0x4d,0x09,0x13,0x0b,0x06,0x4d,0x09,0x09,0x23,0x22,0x2f, +0x23,0x3f,0x23,0x02,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x2b,0x11,0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x1a,0x10,0xed,0x11,0x12,0x39,0x39,0x11,0x17,0x33,0x31,0x30,0x01,0x23, +0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x07,0x0a,0x99,0x50,0xfd,0xcf,0x18,0x0d,0x05,0x9f,0x04,0x0f,0x16,0xfd,0xcf,0xe3,0x02,0x91,0xfd,0x9b,0xce,0x02,0x1a,0x17,0x0e,0x04,0x9f,0x05,0x0d,0x18,0x02,0x1a, +0xcd,0xfd,0x9b,0x02,0x0d,0x8b,0xfe,0x80,0x01,0x80,0x02,0x90,0x1c,0x16,0xfd,0x3e,0x02,0xc2,0x19,0x19,0xfd,0x70,0x02,0xe8,0x02,0xb2,0xfd,0x93,0x1b,0x16,0x02,0x9e,0xfd,0x62,0x16,0x1b,0x02,0x6d,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0x04,0xfe,0x8b,0x06,0x00,0x04,0x00,0x00,0x19,0x00,0xa4,0xb9,0x00,0x01,0x01,0x31,0x40,0x15,0x04, +0x09,0x0f,0x14,0x04,0x0c,0x17,0x0c,0x07,0x15,0x0e,0x11,0x0f,0x18,0x96,0x03,0x40,0x0a,0x03,0x07,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x19,0xb8,0x01,0x2c,0x40,0x2c,0x02,0x15,0x16,0x16,0x06,0x18,0x03,0x02,0x02,0x19,0x0e,0x06,0x0e,0x0d,0x0d,0x07,0x0a,0x0b,0x0b,0x07,0x42,0x0b,0x17,0x12,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08, +0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x11,0x0c,0x07,0xb8,0xff,0xf0,0x40,0x11,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x0c,0x0b,0x06,0x4d,0x07,0x07,0x1a,0x1b,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x33,0x10,0xe0,0x32,0x2f, +0x33,0x33,0x11,0x39,0x2f,0x33,0x10,0xe1,0x2b,0x00,0x2f,0x33,0x33,0x1a,0x10,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x06,0x00,0x8c,0x5c,0xfe,0x36,0x04,0x9c,0x04,0xfe, +0x35,0xdb,0x01,0xfc,0xfe,0x23,0xd1,0x01,0xb6,0x04,0x9c,0x04,0x01,0xb6,0xd3,0xfe,0x21,0x01,0x81,0x87,0xfe,0x8b,0x01,0x75,0x01,0xfa,0xfe,0x06,0x01,0xfa,0xfe,0x06,0x02,0x10,0x01,0xf0,0xfe,0x21,0x01,0xdf,0xfe,0x21,0x01,0xdf,0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0xfe,0x80,0x04,0xa8,0x05,0x9a,0x00,0x14,0x00,0x87,0xb9,0x00, +0x01,0x01,0x30,0x40,0x1c,0x0f,0x04,0x12,0x12,0x08,0x10,0x0b,0x03,0x13,0x91,0x02,0x02,0x08,0x10,0x11,0x11,0x08,0x14,0x08,0x0d,0x06,0x4d,0x14,0x08,0x0c,0x06,0x4d,0x14,0xb8,0x01,0x2c,0xb2,0x13,0x03,0x02,0xb8,0xff,0xf8,0x40,0x1a,0x0d,0x06,0x4d,0x02,0x02,0x16,0x12,0x0b,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08, +0x08,0x0b,0x06,0x4d,0x08,0x7e,0x09,0xb8,0xff,0xf4,0xb3,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfc,0xb3,0x0b,0x06,0x4d,0x09,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x33,0x2f,0x2b,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00,0x2f,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11, +0x33,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xa8,0x9a,0x50,0xfd,0xd0,0x1b,0x0b,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x0c,0x8c,0xfe,0x80,0x01,0x80,0x02,0x90,0x20,0x12,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b, +0x02,0x71,0xfd,0x4e,0xfd,0xae,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x00,0x04,0x00,0x00,0x10,0x00,0x7b,0xb9,0x00,0x01,0x01,0x31,0x40,0x1d,0x0f,0x96,0x03,0x0b,0x04,0x0e,0x0e,0x06,0x0c,0x09,0x0f,0x11,0x03,0x06,0x0c,0x0d,0x0d,0x06,0x10,0x08,0x0d,0x06,0x4d,0x10,0x08,0x0c,0x06,0x4d,0x10,0xb8,0x01,0x2c,0x40,0x19,0x0f,0x03,0x02, +0x02,0x12,0x0e,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x11,0x39,0x2f,0x33,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x33,0x00, +0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x33,0x04,0x00,0x8c,0x64,0xfe,0x3e,0x04,0xa4,0xa4,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0x7f,0x89,0xfe,0x8b,0x01,0x75,0x01,0xea,0xfe,0x16,0x04,0x00,0xfe,0x2d,0x01,0xd3, +0xfe,0x10,0xfe,0x71,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0xaa,0x40,0x51,0x00,0x03,0x10,0x03,0x20,0x03,0x03,0x03,0x03,0x02,0x0a,0x0f,0x14,0x1f,0x14,0x2f,0x14,0x03,0x14,0x14,0x0d,0x15,0x12,0x11,0x0f,0x16,0x0f,0x11,0x16,0x0f,0x06,0x05,0x02,0x01,0x08,0x01,0x06,0x08,0x01,0x0f,0x08,0x18,0x18,0x0a, +0x16,0x0d,0x03,0x01,0x0a,0x15,0x02,0x12,0x0f,0x05,0x01,0x05,0x05,0x00,0x16,0x17,0x17,0x01,0x19,0x00,0x29,0x00,0x02,0x0f,0x00,0x01,0x00,0x00,0x1a,0x08,0x0d,0x0f,0x18,0x04,0x0a,0x7e,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0xe1, +0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x33,0x11,0x39,0x2f,0x5d,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x12,0x01,0x39,0x10,0x87,0x04,0xc0,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x31,0x30,0x21,0x23,0x01,0x11, +0x23,0x11,0x27,0x26,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x37,0x11,0x33,0x15,0x01,0x33,0x01,0x04,0xa2,0xea,0xfe,0x58,0x4c,0x36,0x26,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x36,0x4c,0x01,0x96,0xd1,0xfd,0x99,0x01,0xf4,0xfe,0xf2,0x01,0x68,0x42,0x2f,0x03,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x3f,0x01,0x52,0xf8,0x01, +0xd8,0xfd,0x50,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf4,0x04,0x00,0x00,0x14,0x00,0x81,0x40,0x4c,0x1f,0x04,0x01,0x50,0x04,0x60,0x04,0x02,0x04,0x04,0x02,0x08,0x5f,0x0f,0x6f,0x0f,0x02,0x0f,0x0f,0x0b,0x11,0x0e,0x0d,0x12,0x0d,0x05,0x02,0x01,0x06,0x01,0x0d,0x06,0x14,0x14,0x08,0x12,0x0b,0x0f,0x01,0x08,0x11,0x02,0x0e,0x05, +0x05,0x00,0x12,0x38,0x13,0x48,0x13,0x02,0x13,0x13,0x01,0x0f,0x00,0xaf,0x00,0x02,0x39,0x00,0x49,0x00,0x02,0x00,0x00,0x16,0x06,0x0b,0x0d,0x14,0x04,0x08,0x84,0x09,0x2f,0xe1,0x17,0x32,0x11,0x39,0x2f,0x5d,0x5d,0x33,0x39,0x2f,0x5d,0x33,0x11,0x39,0x2f,0x33,0xcd,0x32,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x11,0x33,0x33,0x10,0x87, +0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x11,0x00,0x39,0x2f,0x5d,0x11,0x12,0x39,0x2f,0x5d,0x5d,0x31,0x30,0x21,0x23,0x01,0x15,0x23,0x11,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x35,0x33,0x15,0x01,0x33,0x01,0x03,0xf4,0xe4,0xfe,0xe6,0x4c,0x5c,0x04,0xa4,0xa4,0x04,0x5c,0x4c,0x01,0x06,0xd9,0xfe,0x23,0x01,0x33,0xc1,0x01,0x13,0x65, +0xfe,0x16,0x04,0x00,0xfe,0x2d,0x65,0xed,0x9b,0x01,0x1c,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x00,0x0f,0x00,0xb7,0x40,0x0b,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0xb8,0x01,0x30,0x40,0x13,0x0e,0x91,0x03,0x0c,0x09,0x03,0x03,0x06,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x08,0x0c,0x06,0x4d, +0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xe8,0x40,0x19,0x0c,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x7e,0x0b,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xe0,0x40,0x1e,0x0c,0x06,0x4d,0x03,0x10,0x0b,0x06,0x4d, +0x03,0x03,0x11,0x09,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x7e,0x07,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x07,0xb8,0xff,0xf7,0xb3,0x0c,0x06,0x4d,0x07,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x7d,0x2f,0x2b,0x2b,0xe1, +0x2b,0x2b,0x00,0x18,0x2f,0x33,0x3f,0x33,0x10,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0xb2,0x9b,0xcd,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfe,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x90,0x04,0x00,0x00,0x0f,0x00,0x9c,0xb9,0x00,0x01,0x01,0x31,0x40,0x13,0x0e,0x95,0x03,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x0c,0x09,0x0f,0x03,0x06,0x02,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x02,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x0f,0xba,0x01,0x2c,0x00,0x02,0xff,0xf8,0x40, +0x40,0x0d,0x06,0x4d,0x02,0x02,0x11,0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x84,0x0b,0x03,0x03,0x0d,0x06,0x4d,0x03,0x03,0x0b,0x06,0x4d,0x03,0x03,0x11,0x0a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x84,0x07,0x08,0x0d,0x06,0x4d,0x07,0x40,0x11, +0x01,0x5d,0x2f,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x11,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x00,0x2f,0x33,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x10,0xed,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x04,0x90,0x8e,0xae,0xfd,0xf6, +0xa4,0xa4,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x8c,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x0c,0x00,0x68,0x40,0x0c,0x03,0x1b,0x04,0x42,0x01,0x01,0x0d,0x0c,0x06,0x0f, +0x0c,0x00,0xb8,0xff,0xf8,0x40,0x24,0x0c,0x06,0x4d,0x00,0x0e,0x01,0x06,0x05,0x04,0x05,0x42,0x05,0x08,0x01,0x08,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0x08,0x0b,0x06,0x4d,0x01,0x84,0x04,0x07,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xf4,0x40,0x0a,0x0c,0x06,0x4d,0x04,0x04,0x0e,0x0d,0x4f,0x0e,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b, +0x2b,0xe1,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x11,0x01,0x33,0x10,0xe1,0x2b,0x32,0x00,0x18,0x3f,0x33,0x12,0x39,0x7d,0x2f,0x18,0xe5,0x3f,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x03,0xd5,0xfe,0x69,0xa4,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0x04,0x00,0xfc,0x06,0xfe,0x23,0x01, +0xdf,0x03,0xf8,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x14,0x00,0x7d,0x40,0x16,0x11,0x0d,0x07,0x04,0x97,0x40,0x0a,0x01,0x01,0x06,0x14,0x0d,0x03,0x06,0x11,0x10,0x05,0x06,0x03,0x03,0x14,0x00,0xb8,0xff,0xd8,0x40,0x23,0x0b,0x06,0x4d,0x00,0x0e,0x05,0x08,0x08,0x06,0x0d,0x0c, +0x06,0x0c,0x42,0x0c,0x01,0x05,0x08,0x0d,0x06,0x4d,0x05,0x08,0x0c,0x06,0x4d,0x05,0x08,0x0b,0x06,0x4d,0x05,0x7e,0x0b,0x06,0xb8,0xff,0xf8,0x40,0x0a,0x0b,0x06,0x4d,0x06,0x06,0x16,0x15,0x20,0x16,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x2b,0x32, +0x39,0x2f,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x33,0x1a,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x04,0x60,0xfe,0x27,0x01,0x52,0xfe,0xae,0xa8,0xfe,0xb7,0x01,0x49,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x0a, +0x1c,0x01,0x50,0x05,0x9a,0xfc,0x72,0x85,0xfe,0x79,0x01,0x87,0x85,0x02,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x22,0x36,0x02,0x88,0x00,0x01,0x00,0x0e,0xfe,0x29,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x60,0x40,0x35,0x04,0x1b,0x02,0x05,0x96,0x08,0x40,0x0c,0x0c,0x08,0x10,0x0a,0x0f,0x12,0x08,0x00,0x00,0x10,0x11,0x0e,0x02,0x07,0x07,0x05, +0x0a,0x09,0x09,0x05,0x42,0x09,0x0d,0x0c,0x12,0x02,0x08,0x0d,0x06,0x4d,0x02,0x84,0x08,0x05,0x07,0x0d,0x06,0x4d,0x05,0x05,0x14,0x13,0x4f,0x14,0x01,0x5d,0x11,0x12,0x39,0x2f,0x2b,0x33,0xe1,0x2b,0x32,0x39,0x39,0x2f,0x2b,0x11,0x01,0x33,0x12,0x39,0x18,0x2f,0x10,0xe0,0x32,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x1a, +0x10,0xed,0x32,0x3f,0x31,0x30,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x01,0x33,0x01,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x03,0x92,0xfe,0xac,0xa4,0xfe,0xb4,0x01,0x4c,0xfe,0x74,0xb6,0x01,0x0d,0x1d,0x02,0x0a,0x16,0x01,0x1b,0xaa,0xfe,0x69,0x85,0xfe,0xae,0x01,0x52,0x85,0x04,0x00,0xfd,0x04,0x64,0x22,0x46,0x02,0xf8,0xfc, +0x00,0x00,0x00,0x01,0x00,0x1a,0xfe,0x80,0x04,0xc6,0x05,0x9a,0x00,0x19,0x00,0x5f,0xb9,0x00,0x01,0x01,0x30,0x40,0x20,0x06,0x11,0x17,0x03,0x0c,0x0c,0x0a,0x15,0x0e,0x03,0x18,0x91,0x03,0x1a,0x03,0x0a,0x06,0x0c,0x11,0x17,0x04,0x0d,0x15,0x16,0x0e,0x0d,0x16,0x0d,0x16,0x0d,0x0b,0x19,0xb8,0x01,0x2c,0x40,0x0d,0x18,0x03,0x03,0x02, +0x10,0x0d,0x06,0x4d,0x02,0x02,0x1b,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, +0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x01,0x33,0x04,0xc6,0x98,0x61,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xe0,0xfe,0x46,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe,0x3d,0x01,0x6b,0x8a,0xfe,0x80,0x01,0x80,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0xd1,0x02,0xc9,0xfe,0x08,0x32,0x32,0x42, +0x26,0x01,0xf4,0xfd,0x39,0xfd,0xc3,0x00,0x00,0x01,0x00,0x1a,0xfe,0x8b,0x03,0xb4,0x04,0x00,0x00,0x17,0x00,0x5f,0xb9,0x00,0x01,0x01,0x31,0x40,0x20,0x06,0x11,0x15,0x03,0x0c,0x0c,0x0a,0x13,0x0e,0x0f,0x16,0x96,0x02,0x18,0x02,0x0a,0x06,0x0c,0x11,0x15,0x04,0x0d,0x13,0x14,0x0e,0x0d,0x14,0x0d,0x14,0x0d,0x0b,0x17,0xb8,0x01,0x2c, +0x40,0x0d,0x16,0x03,0x03,0x02,0x08,0x0d,0x06,0x4d,0x02,0x02,0x19,0x0a,0x0b,0x2f,0x33,0x12,0x39,0x2f,0x2b,0x33,0x11,0x33,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x12,0x17,0x39,0x00,0x2f,0x33,0x33,0x10,0xed,0x3f,0x33,0x12,0x39,0x11,0x17,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03, +0x23,0x01,0x01,0x33,0x13,0x16,0x17,0x33,0x01,0x33,0x01,0x13,0x33,0x03,0xb4,0x8b,0x5c,0xc9,0x15,0x18,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x15,0x16,0x04,0x01,0x00,0xb5,0xfe,0xa8,0xfb,0x7f,0xfe,0x8b,0x01,0x75,0x01,0x4c,0x23,0x2b,0x09,0x45,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x26,0x2a,0x01,0xae,0xfd, +0xfa,0xfe,0x87,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x17,0x00,0xa0,0x40,0x40,0x11,0x11,0x0c,0x0f,0x06,0x06,0x01,0x04,0x02,0x15,0x07,0x91,0x0f,0x15,0x15,0x13,0x16,0x0f,0x0f,0x01,0x16,0x0c,0x03,0x01,0x05,0x06,0x12,0x11,0x40,0x0c,0x15,0x11,0x7f,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06, +0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x15,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x18,0x0b,0x06,0x4d,0x01,0x01,0x19,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x7e,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x0b,0x0c,0x0b,0x06,0x4d,0x0b,0x2f, +0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x11,0x23,0x11,0x06,0x26,0x35,0x11,0x33,0x11, +0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x04,0x81,0xa8,0xa7,0x88,0x4c,0xce,0xea,0xa8,0xf6,0x1a,0x4c,0x86,0xa9,0xa8,0x02,0x85,0x58,0x17,0xfe,0xae,0x01,0x4a,0x0f,0xc3,0xbd,0x02,0x1b,0xfd,0xed,0xe7,0x01,0x6a,0xfe,0x9e,0x14,0x52,0x02,0x8c,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x03,0xdf,0x04,0x00,0x00,0x16,0x00,0x8e, +0x40,0x5b,0x10,0x10,0x0b,0x0e,0x06,0x06,0x01,0x04,0x02,0x07,0x14,0x14,0x12,0x15,0x0e,0x95,0x07,0x07,0x01,0x15,0x0b,0x0f,0x01,0x05,0x06,0x11,0x10,0x40,0x0b,0x14,0x10,0x85,0x2b,0x30,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x84,0x14,0x01,0x01,0x18,0x0b,0x08,0x0d,0x06,0x4d,0x0b,0x08, +0x0c,0x06,0x4d,0x0b,0x08,0x0b,0x06,0x4d,0x0b,0x84,0x0a,0x05,0x0d,0x06,0x4d,0x0a,0x05,0x0c,0x06,0x4d,0x0a,0x04,0x0b,0x06,0x4d,0x0a,0x2f,0x18,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x2b,0x2b,0x2b,0x2b,0x01,0x1a,0x18,0x10,0xcd,0x33,0x32,0x00,0x2f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39, +0x39,0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x15,0x23,0x35,0x04,0x11,0x11,0x33,0x11,0x14,0x33,0x33,0x11,0x33,0x11,0x36,0x37,0x11,0x33,0x03,0xdf,0xa3,0x76,0x66,0x4c,0xfe,0x84,0xa4,0xc2,0x16,0x4c,0x6e,0x6e,0xa3,0x01,0x9c,0x40,0x16,0xd4,0xca,0x1c,0x01,0x86,0x01,0x5a,0xfe, +0xae,0xe1,0x01,0x25,0xfe,0xe5,0x14,0x38,0x01,0xdd,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x10,0x00,0x73,0x40,0x27,0x0b,0x06,0x04,0x91,0x0d,0x0d,0x07,0x0a,0x03,0x01,0x07,0x00,0x08,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x01,0x1e,0x0d,0x06,0x4d,0x01,0x08,0x0c,0x06,0x4d, +0x01,0xb8,0xff,0xfc,0x40,0x19,0x0b,0x06,0x4d,0x01,0x01,0x12,0x0b,0x07,0x08,0x0d,0x06,0x4d,0x07,0x08,0x0c,0x06,0x4d,0x07,0x08,0x0b,0x06,0x4d,0x07,0x7e,0x08,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x08,0x0c,0x0b,0x06,0x4d,0x08,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x00, +0x2f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x16,0x15,0x04,0x81,0xa8,0xf5,0xb4,0xe2,0xa8,0xa8,0xe4,0xc6,0xba,0xcf,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x05,0x9a,0xfd,0x7a,0x7a,0xc2,0xb2,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec, +0x02,0x06,0x00,0x4b,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x77,0x40,0x29,0x12,0x91,0x01,0x20,0x01,0x50,0x01,0x02,0x01,0x09,0x16,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x7d,0x01, +0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x06,0x4d,0x12,0x12,0x1a,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x7d,0x00,0x10,0x0d,0x06,0x4d,0x00,0x08,0x0c,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0xe1,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x33,0xe1,0x2b,0x2b,0x11,0x39,0x2f,0x00,0x3f,0xed, +0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x5d,0x2f,0xed,0x31,0x30,0x13,0x21,0x26,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc, +0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x56,0x40,0x23,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x01,0x01,0x17,0x04, +0x95,0x09,0x10,0x17,0x95,0x0f,0x16,0x80,0x06,0x90,0x06,0x02,0x06,0x06,0x0c,0x00,0x13,0x14,0x0c,0x83,0x01,0xb8,0xff,0xf8,0x40,0x0e,0x0d,0x06,0x4d,0x01,0x01,0x1b,0x14,0x83,0x00,0x10,0x0d,0x06,0x4d,0x00,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0xe1,0x12,0x39,0x11,0x12,0x39,0x2f,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x04,0xb0,0x9a,0xae,0x90,0x86,0xdf,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x84,0x7a,0x74,0xa3,0x02,0x29,0xab,0xba,0x72,0x9a, +0x62,0xfe,0xea,0xfe,0xf2,0xfe,0xd6,0x01,0x06,0xe5,0x35,0x8d,0x9f,0xa6,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19,0x00,0x63,0x40,0x18,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0x2b,0x30,0x0f,0x91,0x06,0x04,0x17,0x91,0x00,0x13,0x09,0x7d,0x12,0x0c,0x14,0x13,0xb8,0xff,0xf0,0xb3,0x0d,0x06, +0x4d,0x13,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x13,0xb8,0xff,0xe0,0x40,0x18,0x0b,0x06,0x4d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x10,0x0d,0x06,0x4d,0x03,0x10,0x0c,0x06,0x4d,0x03,0x18,0x0b,0x06,0x4d,0x03,0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x12,0x39,0x39,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc0,0x12,0xfe,0xfd,0xd7,0xd0,0xfe,0xee,0x16,0x03,0xe4,0xfc,0x1c,0x15,0x01,0x0c,0xcb,0xdc,0x01, +0x09,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf5,0x01,0x0d,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x6b,0x40,0x18,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x2b,0x30,0x0e,0x95, +0x06,0x10,0x16,0x95,0x00,0x16,0x11,0x0c,0x13,0x09,0x83,0x12,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xf0,0xb6,0x0c,0x06,0x4d,0x30,0x12,0x01,0x12,0xb8,0xff,0xde,0x40,0x1b,0x0b,0x06,0x4d,0x12,0x12,0x19,0x13,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d, +0x2f,0x2b,0x2b,0x2b,0xe1,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe4,0xfe,0xf2,0x01,0x1a,0xf0,0xe5,0x01,0x01, +0xfe,0xeb,0x67,0x29,0xfe,0xe5,0x88,0xb1,0x17,0x02,0x98,0xfd,0x64,0x0a,0xb7,0x93,0x01,0x33,0x18,0x01,0x20,0xec,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x74,0x01,0x32,0xa0,0x92,0x8b,0xa3,0xbc,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x02,0x80,0x01,0xb8,0xff, +0xc0,0x40,0x12,0x09,0x0c,0x48,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd,0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x06,0xd9,0xf6,0xfe,0x4f,0x6e, +0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x02,0x80,0x01,0x06,0xe2,0x05,0x02,0x62,0x00,0x01,0x00,0x00,0x05,0x04,0x04,0x09,0x05,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x01,0x23,0x27,0x33,0x01,0x21,0x35,0x21,0x01,0xaa,0x7f,0xdd, +0xa8,0x01,0x44,0xfe,0x04,0x01,0xfc,0x05,0x7d,0xf5,0xfe,0x50,0x6d,0x00,0x00,0x02,0x00,0x3e,0x06,0x1e,0x02,0x3a,0x07,0xcf,0x00,0x03,0x00,0x07,0x00,0x2d,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x12,0x09,0x0c,0x48,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00,0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xcd,0x00,0x2f,0xfd,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x06,0xd9,0xf6,0xf6,0xbb,0x6e,0x6e,0x00,0x02,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x06,0x72,0x00,0x03,0x00,0x07,0x00,0x24,0x40,0x11,0x01,0x80,0x00,0x05,0xe2,0x04,0x02,0x6d,0x00,0x01,0x00,0x00, +0x04,0x07,0x07,0x09,0x04,0x2f,0x12,0x39,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0x00,0x2f,0xfd,0xde,0x1a,0xcd,0x31,0x30,0x13,0x37,0x33,0x07,0x05,0x35,0x21,0x15,0xcd,0xb4,0xa8,0xdd,0xfe,0xf2,0x01,0xfc,0x05,0x7d,0xf5,0xf5,0xbb,0x6d,0x6d,0x00,0x00,0x03,0x00,0x7d,0x06,0x1e,0x02,0xc4,0x07,0xd1,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44, +0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x2b, +0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a,0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x3b,0x27,0x29,0x3c,0x3a,0x06,0xdb,0xf6,0xf6,0xbd,0x39,0x2a,0x2a,0x39,0x3a, +0x29,0x29,0x3a,0x3b,0x28,0x2a,0x39,0x3a,0x29,0x29,0x3a,0x00,0x00,0x03,0x00,0x7d,0x04,0xc2,0x02,0xc4,0x06,0x74,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x3b,0x40,0x1f,0x01,0x80,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x02,0x01,0x0f,0x03,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1c,0x1d,0x19,0x07,0x2b,0x3a,0x2b, +0x01,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x5f,0x5e,0x5d,0x00,0x2f,0x33,0xed,0x32,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x50,0xb4,0xa8,0xdd,0x93,0x28,0x3a,0x38,0x28,0x2a, +0x3a,0x38,0xfe,0x56,0x2a,0x3b,0x39,0x29,0x29,0x3c,0x3a,0x05,0x7f,0xf5,0xf5,0xbd,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x3b,0x28,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x08,0x00,0x03,0x00,0x16,0x00,0x54,0xb9,0x00,0x01,0xff,0xc0,0x40,0x0f,0x09,0x0d,0x48,0x01,0x80,0x03,0x40,0x10,0x15, +0x48,0x03,0x16,0x10,0xda,0x0b,0xb8,0xff,0xc0,0x40,0x1e,0x09,0x0c,0x48,0x0b,0x14,0xda,0x07,0x0d,0x02,0x20,0x0a,0x0d,0x48,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x2b,0x00,0x2f,0xd6,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x2b,0x1a, +0xcd,0x2b,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x12,0xf6,0xf6,0x1a,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x02, +0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xae,0x00,0x03,0x00,0x16,0x00,0x3e,0xb2,0x01,0x80,0x00,0xb8,0xff,0xc0,0x40,0x1d,0x09,0x0c,0x48,0x00,0x16,0x10,0xda,0x0b,0x14,0xda,0x07,0x0d,0x02,0x5f,0x00,0x6f,0x00,0x02,0x00,0x00,0x0e,0x04,0xc4,0x16,0x16,0x18,0x0d,0xc4,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xcd,0x00, +0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0xde,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x37,0x33,0x07,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x62,0xb4,0xa8,0xdc,0x01,0x48,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xb8,0xf6,0xf6,0x1a,0x65,0x75,0x25, +0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x03,0x00,0xa9,0x06,0x0c,0x03,0x2a,0x08,0x02,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x66,0x40,0x10,0x06,0x12,0xc1,0x00,0x00,0x0c,0x10,0x0c,0x02,0x0c,0x03,0x0c,0x2a,0x24,0xda,0x1f,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x03,0xb8, +0xff,0xc0,0xb3,0x0a,0x0d,0x48,0x15,0xb8,0xff,0xc0,0x40,0x11,0x0a,0x0d,0x48,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x2b,0x2b,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0x2b,0xfd,0xc6,0xd6,0x5f,0x5e,0x5d,0x32,0xed,0x32,0x31,0x30,0x01,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43, +0x56,0x57,0x29,0x58,0x5e,0xb6,0x3f,0x52,0x51,0x33,0x54,0x07,0x3e,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0x00,0x00,0x03,0x00,0xa9,0x04,0xb2,0x03,0x2a,0x06,0xa8,0x00,0x0b,0x00,0x17,0x00,0x2a,0x00,0x3f,0x40,0x22,0x06,0x12,0xc1,0x00, +0x0c,0x2a,0x24,0xda,0x1f,0x28,0xda,0x40,0x1b,0x21,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x22,0x03,0x15,0x2b,0x3a,0x18,0xc4,0x2a,0x2a,0x2c,0x21,0xc4,0x22,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0xd6,0x1a,0xed,0xdc,0xfd,0xc6,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x02,0xab,0x29,0x3a,0x39,0x28,0x29,0x3c,0x3a,0xfe,0x56,0x28,0x3c,0x3a,0x28,0x2a,0x3a,0x38,0x01,0xd6,0x5d,0x55,0x43,0x56,0x57,0x29,0x58,0x5e, +0xb6,0x3f,0x52,0x51,0x33,0x54,0x05,0xe4,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x38,0x2a,0x2a,0x38,0x39,0x29,0x2a,0x38,0x46,0x65,0x75,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x02,0x00,0x14,0x06,0x1e,0x02,0x12,0x07,0x6a,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09, +0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a,0x3a,0x17,0xb5,0xa8,0xde,0x06,0xa8,0x38,0x2a,0x29,0x37,0x37,0x29,0x28,0x3a,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x14,0x04,0xc2, +0x02,0x12,0x06,0x0e,0x00,0x0b,0x00,0x0f,0x00,0x1f,0x40,0x0e,0x06,0xc1,0x40,0x00,0x00,0x0e,0x80,0x0c,0x03,0xc0,0x09,0x09,0x0e,0x0c,0x2f,0xcd,0x39,0x2f,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x37,0x33,0x07,0x76,0x28,0x3a,0x39,0x29,0x28,0x3a, +0x3a,0x17,0xb5,0xa8,0xde,0x05,0x4c,0x38,0x2a,0x29,0x37,0x37,0x29,0x29,0x39,0x8a,0xf6,0xf6,0x00,0x02,0x00,0x1e,0x06,0x1e,0x02,0x51,0x07,0xd7,0x00,0x0b,0x00,0x12,0x00,0x33,0xb3,0x06,0xc1,0x40,0x00,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14, +0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x07,0x14,0x39,0x2a,0x28,0x38,0x37,0x29, +0x29,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x00,0x02,0x00,0x1e,0x04,0xc2,0x02,0x51,0x06,0x7b,0x00,0x0b,0x00,0x12,0x00,0x2a,0x40,0x15,0x06,0xc1,0x40,0x00,0x00,0x0f,0x80,0x0e,0x03,0xc0,0x09,0x0c,0x0f,0x09,0xc0,0x2b,0x30,0x0c,0x0c,0x14,0x0f,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed, +0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x07,0x23,0x27,0x33,0x17,0x37,0x01,0x34,0x28,0x3a,0x39,0x29,0x29,0x39,0x39,0xf4,0xd7,0x86,0xd6,0x70,0xa6,0xa4,0x05,0xb8,0x39,0x29,0x29,0x38,0x37,0x2a,0x28,0x3a,0x04,0xfa,0xfa,0x93,0x93,0x00,0x03,0x00,0x14,0x06,0x1e,0x02,0x5b,0x07,0x9e,0x00,0x0b, +0x00,0x17,0x00,0x1b,0x00,0x39,0xb4,0x06,0x12,0xc1,0x00,0x0c,0xb8,0xff,0xc0,0x40,0x18,0x09,0x0c,0x48,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0xde,0x2b,0x32,0xed,0x32,0x31,0x30,0x01, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2b,0x39,0x39,0x29,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x06,0xd9,0x38,0x2b,0x2a,0x38,0x3a,0x28,0x2a,0x39,0x39,0x2a,0x29, +0x39,0x3a,0x28,0x2a,0x39,0xbb,0x6e,0x00,0x00,0x03,0x00,0x14,0x04,0xc2,0x02,0x5b,0x06,0x42,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x30,0x40,0x19,0x06,0x12,0xc1,0x00,0x0c,0x1a,0xe2,0x40,0x19,0x09,0xc0,0x03,0x0f,0xc0,0x15,0x18,0x19,0x03,0x15,0x2b,0x3a,0x18,0x18,0x1d,0x19,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x00, +0x18,0x2f,0x1a,0xfd,0xde,0x32,0xed,0x32,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x21,0x35,0x21,0x01,0xf9,0x29,0x3a,0x39,0x28,0x29,0x3b,0x39,0xfe,0x56,0x2a,0x3a,0x3a,0x28,0x29,0x3b,0x39,0x01,0x99,0xfe,0x04,0x01,0xfc,0x05,0x7d, +0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2a,0x39,0x3a,0x29,0x29,0x39,0xbb,0x6d,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x8a,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x7d, +0x00,0x00,0xff,0xff,0x00,0x16,0xfe,0x04,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x75,0xf9,0x6c,0x00,0x27,0x40,0x1a,0x03,0x02,0x00,0x13,0x19,0x06,0x07,0x25,0x03,0x02,0x16,0x40,0x09,0x0d,0x36,0x16,0x40,0x0a,0x0b,0x36,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x05,0x03,0x83,0x04,0x18,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xe9,0xf9,0x6d,0x00,0x27,0x40,0x1a,0x03,0x02,0x1b,0x23,0x29,0x08,0x00,0x25,0x03,0x02,0x26,0x40,0x09,0x0d,0x36,0x26,0x40,0x0a,0x0b,0x36,0x20,0x26,0x01,0x26,0x17,0x26,0x00,0x2b,0x5d,0x2b,0x2b,0x35, +0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x06,0xe2,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x47,0x01,0x5d,0x00,0x16,0xb9,0x00,0x03,0xff,0xc3,0x40,0x09,0x23,0x29,0x01,0x05,0x25,0x03,0x20,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec, +0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8b,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0xad,0x21,0x21,0x05,0x05,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe1,0x00,0x00,0x00,0x1a,0xb9,0x00, +0x03,0xff,0xc1,0x40,0x0c,0x23,0x29,0x00,0x0c,0x25,0x03,0x20,0x26,0x01,0x26,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x1a,0x00,0x00,0x00,0x1a,0xb9,0x00,0x02,0xff,0xf2,0x40,0x0c,0x21,0x27,0x03,0x0c,0x25,0x02,0x20, +0x24,0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1e,0x04,0x2f,0x05,0x9a,0x02,0x26,0x00,0x25,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x03,0xff,0xe3,0x40,0x0c,0x21,0x20,0x00,0x0c,0x25,0x03,0x20,0x22,0x01,0x22,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0xa6,0xff,0x1e,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3f,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x00,0x1f,0x1e,0x03,0x0c,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xfe,0x50,0x04,0x8c,0x07,0x67,0x02,0x26,0x00,0x26, +0x00,0x00,0x00,0x27,0x00,0xdd,0x02,0x39,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0xf5,0x01,0x5d,0x00,0x08,0xb3,0x02,0x2a,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0x62,0x06,0x0a,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x83,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x2f,0x00,0x00,0x00,0x08,0xb3,0x02, +0x2a,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x06,0xe2,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xd2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xa3,0x40,0x09,0x13,0x19,0x01,0x04,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec, +0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x64,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0x29,0x40,0x09,0x27,0x27,0x0f,0x0f,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x54,0x00,0x00,0x00,0x1a, +0xb9,0x00,0x02,0xff,0xac,0x40,0x0c,0x13,0x19,0x00,0x04,0x25,0x02,0x20,0x16,0x01,0x16,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0xc6,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x02,0x00,0x00,0x00,0x17,0x40,0x0e,0x02,0x1f,0x21,0x27,0x08,0x00,0x25,0x02,0x20,0x24, +0x01,0x24,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1e,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x46,0xfa,0x5c,0x00,0x1a,0xb9,0x00,0x02,0xff,0x85,0x40,0x0c,0x11,0x10,0x00,0x04,0x25,0x02,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xff,0x1e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5c,0x00,0x17,0x40,0x0e,0x02,0x20,0x1f,0x1e,0x08,0x00,0x25,0x02,0x20,0x20,0x01,0x20,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x85,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27, +0x00,0x00,0x01,0x07,0x01,0x9d,0x01,0x4a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x12,0x10,0x00,0x04,0x25,0x02,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x85,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x01,0x9d,0x00,0xdd,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x4b, +0x21,0x1e,0x08,0x00,0x25,0x02,0x21,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x05,0x3e,0x05,0x9a,0x02,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x3f,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x02,0xff,0xb8,0x40,0x09,0x14,0x10,0x00,0x04,0x25,0x02,0x15,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xfe,0x3e,0x04,0x10,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe0,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x02,0x1e,0x22,0x1e,0x08,0x00,0x25,0x02,0x23,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07, +0x02,0xd1,0x00,0xec,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x10,0x02,0x03,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd2,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x20, +0x21,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0xcf,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x02,0xd3,0x00,0xfd,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x11,0x13,0x02,0x0b,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x06,0x72,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x02,0xd4,0x00,0xe4,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1f,0x21,0x0c,0x12,0x25,0x03,0x02,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x03,0xb4,0x05,0x9a, +0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xd9,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x17,0x10,0x0c,0x01,0x00,0x25,0x01,0x11,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x3d,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xda,0xf9,0x7b,0x00,0x13,0x40,0x0b, +0x02,0x32,0x1e,0x1a,0x0c,0x00,0x25,0x02,0x1f,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x9a,0x03,0xb4,0x05,0x9a,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd1,0xf9,0xe8,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x16,0x0c,0x01,0x00,0x25,0x01,0x1f,0x14,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x99,0x03,0xdd,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xe1,0xf9,0xe7,0x00,0x13,0x40,0x0b,0x02,0x26,0x24,0x1a,0x0c,0x00,0x25,0x02,0x2d,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x50,0x03,0xb4,0x07,0x1c,0x02,0x26,0x00,0x28,0x00,0x00, +0x00,0x27,0x00,0xdd,0x01,0x8a,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xec,0x01,0x5e,0x00,0x16,0xb9,0x00,0x02,0xff,0xfb,0x40,0x09,0x25,0x1f,0x02,0x03,0x25,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xfe,0x50,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x00,0x27,0x00,0xdd,0x01,0x7d,0x00,0x00, +0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x33,0x2d,0x0c,0x12,0x25,0x03,0x30,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x06,0xe2,0x02,0x26,0x00,0x29,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x0d, +0x13,0x08,0x09,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0xe2,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x03,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x1e,0x1e,0x0a,0x09,0x25,0x01,0x15,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e, +0xff,0xe8,0x04,0xec,0x06,0x8c,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xda,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x80,0x1b,0x1a,0x05,0x0a,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x05,0x2f,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x17, +0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x1b,0x27,0x26,0x10,0x18,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe2,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x01,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40,0x09,0x0f,0x15,0x06,0x0b,0x25,0x01,0x0c, +0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xae,0x15,0x15,0x0b,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xf2,0x05,0x9a, +0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x8f,0x00,0x00,0x00,0x17,0x40,0x0e,0x01,0x0d,0x0f,0x15,0x05,0x00,0x25,0x01,0x20,0x12,0x01,0x12,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xe7,0x00,0x00, +0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x15,0x1b,0x09,0x00,0x25,0x01,0x20,0x18,0x01,0x18,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x06,0xe4,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x38,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x1b,0x15,0x06,0x0b,0x25, +0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0xe4,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe3,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x16,0x21,0x21,0x0b,0x0b,0x25,0x02,0x01,0x1e,0x02,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0xa0,0xfe,0x50,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x00,0x06,0x00,0xdd,0x6d,0x00,0xff,0xff,0x00,0x8c,0xfe,0x50,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x06,0x00,0xdd,0x59,0x00,0xff,0xff,0x00,0xbc,0xfe,0x8c,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xda, +0x01,0xa6,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x06,0x12,0x0c,0x05,0x00,0x25,0x01,0x12,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x27,0xf9,0xca,0x00,0x13,0x40,0x0b,0x01,0x0f,0x18,0x12,0x09,0x00,0x25,0x01,0x18,0x17, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xcf,0xfe,0x9c,0x02,0x50,0x05,0x9a,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xac,0xf9,0xea,0x00,0x0b,0xb6,0x01,0x00,0x0e,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xb9,0xfe,0x9c,0x02,0x3a,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07, +0x00,0xd8,0xff,0x96,0xf9,0xea,0x00,0x0b,0xb6,0x02,0x00,0x1a,0x10,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x07,0xd1,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x75,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x05,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x05,0x26,0x00, +0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x02,0x1b,0x06,0x74,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x02,0xd6,0xff,0x57,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x17,0x11,0x02,0x03,0x25,0x03,0x02,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, +0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x65,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x01,0x5b,0x00,0x16,0xb9,0x00,0x01,0xff,0x8f,0x40,0x09,0x13,0x12,0x08,0x0f,0x25,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x67,0x02,0x26,0x00,0x4e,0x00,0x00, +0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x1f,0x0f,0x0f,0x07,0x07,0x25,0x01,0x0f,0x02,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xcf,0x40,0x0c,0x14, +0x1a,0x07,0x00,0x25,0x01,0x20,0x17,0x01,0x17,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc8,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xce,0x40,0x0c,0x10,0x16,0x05,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x17,0x26,0x00, +0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1c,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x4f,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xdc,0x40,0x0c,0x13,0x14,0x07,0x00,0x25,0x01,0x20,0x13,0x01,0x13,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c, +0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x00,0xfa,0x5a,0x00,0x1a,0xb9,0x00,0x01,0xff,0xed,0x40,0x0c,0x0f,0x10,0x05,0x00,0x25,0x01,0x20,0x0f,0x01,0x0f,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07, +0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x1a,0xb9,0x00,0x01,0xff,0xf2,0x40,0x0c,0x09,0x0f,0x01,0x00,0x25,0x01,0x20,0x0c,0x01,0x0c,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x95,0xfe,0xc6,0x01,0x5b,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x06,0x02,0x45,0xa3,0x00,0x00,0x17,0x40,0x0e,0x01,0x00,0x07,0x0d, +0x01,0x00,0x25,0x01,0x20,0x0a,0x01,0x0a,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x03,0xa4,0x06,0x8c,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x27,0x00,0xd9,0x00,0xcf,0x01,0x5d,0x01,0x07,0x02,0x45,0x00,0xcd,0x00,0x00,0x00,0x2c,0xb9,0x00,0x02,0xff,0xf2,0xb5,0x0d,0x13,0x01,0x00,0x25,0x01, +0xb8,0xff,0xdb,0x40,0x10,0x07,0x06,0x02,0x00,0x25,0x02,0x20,0x10,0x01,0x10,0x14,0x26,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0xff,0xfa,0xfe,0xc6,0x01,0xf6,0x06,0x8c,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x27,0x00,0xd9,0xff,0xbc,0x01,0x5d,0x01,0x06,0x02,0x45,0xa2,0x00,0x00,0x29, +0xb9,0x00,0x02,0xff,0xff,0x40,0x17,0x0b,0x11,0x01,0x00,0x3e,0x01,0x00,0x05,0x04,0x01,0x00,0x3e,0x02,0x20,0x0e,0x01,0x0e,0x17,0x26,0x01,0x05,0x02,0x26,0x00,0x2b,0x35,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfe, +0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x0a,0x08,0x09,0x01,0x00,0x25,0x01,0x20,0x08,0x01,0x08,0x14,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfc,0xff,0x1c,0x01,0xf8,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xbe,0xfa,0x5a,0x00,0x17,0x40,0x0e,0x01,0x00,0x06,0x07,0x01,0x00,0x25,0x01, +0x20,0x06,0x01,0x06,0x17,0x26,0x00,0x2b,0x5d,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x3d,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x06,0x01,0x00,0x25,0x01,0x0b,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf, +0xfe,0x3e,0x02,0x13,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0x83,0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x00,0x08,0x04,0x01,0x00,0x25,0x01,0x09,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x07,0x67,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x00,0x8e,0x02,0x48, +0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x06,0x0a,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x32,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x22,0x20,0x13,0x1f,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x06,0xe2,0x02,0x26,0x00,0x30,0x00,0x00, +0x00,0x07,0x00,0xdb,0x02,0x78,0x01,0x5d,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x05,0x85,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xac,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x23,0x29,0x13,0x1f,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x06,0x72, +0x05,0x9a,0x02,0x26,0x00,0x30,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0xf2,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x06,0x54,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x27,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x23,0x29,0x12,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe3, +0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x27,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x17,0x1d,0x0a,0x13,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0x85,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13, +0x40,0x0b,0x01,0x09,0x16,0x1c,0x0a,0x12,0x25,0x01,0x13,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0xa0,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff,0xf7,0xb4,0x17,0x1d,0x09,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6, +0xfe,0xc6,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x04,0x00,0x00,0x00,0x0b,0xb6,0x01,0x0a,0x16,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0x1c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xbf,0xfa,0x5a,0x00,0x1e,0xb9,0x00,0x01,0xff, +0xfd,0xb6,0x16,0x17,0x0a,0x13,0x25,0x01,0x16,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x16,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x21,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x0e,0x15,0x16,0x0a,0x12,0x25,0x01,0x15,0xb8, +0xff,0xc0,0xb5,0x09,0x0b,0x36,0x15,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x3c,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x91,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x18,0x14,0x0a,0x13,0x25,0x01,0x19,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0xa6,0xfe,0x3c,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xe2,0xf9,0x7a,0x00,0x13,0x40,0x0b,0x01,0x09,0x17,0x13,0x0a,0x12,0x25,0x01,0x18,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x08,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd7, +0x01,0x1e,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x26,0x1c,0x03,0x09,0x25,0x03,0x02,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xae,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xd8,0x6d,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x26,0x1c,0x03,0x09,0x25, +0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x08,0x02,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd9,0x01,0x1b,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0xa8,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x02,0xda,0x73,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x04,0x3a,0x30,0x03,0x09,0x25,0x04,0x03,0x02,0x3a,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa, +0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd1,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1c,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd2,0x01,0x1c, +0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xcf,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x02,0xd3,0x01,0xca,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1c,0x1f,0x03,0x09,0x25, +0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x72,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x02,0xd4,0x01,0x13,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf7,0x40,0x0a,0x1d,0x1f,0x03,0x09,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x07,0x67,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff,0xb9,0x40,0x09,0x15,0x13,0x03,0x07,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x0a,0x02,0x26,0x00,0x53, +0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1b,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe7,0x40,0x09,0x20,0x1e,0x04,0x0c,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x06,0xe2,0x02,0x26,0x00,0x33,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x5c,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0xff, +0xb8,0x40,0x09,0x16,0x1c,0x03,0x07,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0x85,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf0,0x40,0x09,0x21,0x27,0x04,0x0c,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x06,0xe2,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x87,0x01,0x5d,0x00,0x08,0xb3,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xbc,0x05,0x85,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb6,0x00,0x00,0x00,0x16,0xb9,0x00, +0x01,0xff,0xd3,0x40,0x09,0x14,0x1a,0x08,0x10,0x25,0x01,0x11,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x02,0x45, +0x5a,0x00,0xff,0xff,0x00,0xbc,0xfe,0xc6,0x04,0xc0,0x06,0x8c,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x27,0x00,0xd9,0x01,0x23,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x33,0x00,0x00,0x00,0x08,0xb3,0x02,0x29,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0xa6,0xfe,0xc6,0x02,0xbc,0x05,0x2f,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x26,0x00,0xd9, +0x6c,0x00,0x01,0x06,0x02,0x45,0x5a,0x00,0x00,0x22,0xb9,0x00,0x02,0xff,0xfe,0xb5,0x18,0x1e,0x08,0x10,0x3e,0x01,0xb8,0xff,0xf7,0x40,0x09,0x12,0x11,0x08,0x10,0x3e,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x2b,0x35,0xff,0xff,0x00,0xbc,0xff,0x1b,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x00,0xd9, +0x01,0x5c,0xfa,0x59,0x00,0x11,0xb1,0x02,0x2a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x2a,0x14,0x26,0x00,0x2b,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0xff,0x1d,0x02,0xc7,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x8d,0xfa,0x5b,0x00,0x1c,0x40,0x09,0x01,0x18,0x13,0x14,0x08,0x10,0x25,0x01,0x13,0xb8,0xff,0xc0, +0xb5,0x09,0x0b,0x36,0x13,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x83,0x01,0x5d,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x05,0x00,0x00,0x00,0x08,0xb3,0x01,0x2f,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x07,0x02,0x45,0x00,0xd3,0x00,0x00,0xff,0xff,0x00,0x68,0xfe,0xc6,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x02,0x45,0x72,0x00, +0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0x6a,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdb,0x01,0x5a,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x42,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x0e,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xdc,0x00,0xdb,0x00,0x00,0x00,0x0a,0xb4,0x02, +0x01,0x3e,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde,0x07,0xd7,0x02,0x26,0x00,0x36,0x00,0x00,0x01,0x07,0x02,0xdd,0x01,0x16,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x44,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x68,0xff,0xe8,0x03,0x0f,0x06,0x7b,0x02,0x26,0x00,0x56,0x00,0x00,0x01,0x07,0x02,0xde, +0x00,0x8c,0x00,0x00,0x00,0x0a,0xb4,0x02,0x01,0x3d,0x11,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x79,0xfe,0xc6,0x03,0xde,0x06,0xe2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x27,0x00,0xdb,0x01,0x93,0x01,0x5d,0x01,0x07,0x02,0x45,0x01,0x0b,0x00,0x00,0x00,0x08,0xb3,0x01,0x36,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x68,0xfe,0xc6, +0x03,0x0f,0x05,0x85,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x02,0x45,0x00,0x82,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xff,0x00,0x00,0x00,0x08,0xb3,0x01,0x3b,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x06,0xe2,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x4d,0x01,0x5d,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x08,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x55,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x5e,0x00,0xd0,0x00,0x19,0xb9,0x00,0x01,0xff,0xd6,0xb6,0x18,0x1e,0x07,0x14,0x25,0x01,0x15,0xb9,0x01,0x2d,0x00,0x0a,0x00,0x10, +0xfe,0x34,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xfe,0xc6,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xc4,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0b,0x11,0x06,0x07,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0xc6,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x06,0x02,0x45, +0x13,0x00,0x00,0x0b,0xb6,0x01,0x12,0x18,0x1e,0x07,0x14,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x29,0xff,0x1c,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xe0,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x00,0x0a,0x0b,0x06,0x07,0x25,0x01,0x0a,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0a,0x14,0x26,0x00, +0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0x1b,0x02,0x95,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x5b,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x41,0x17,0x18,0x07,0x14,0x25,0x01,0x17,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x17,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x29, +0xfe,0x3d,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xa7,0xf9,0x7b,0x00,0x13,0x40,0x0b,0x01,0x03,0x0c,0x08,0x06,0x07,0x25,0x01,0x0d,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x2b,0xfe,0x3e,0x02,0x86,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xf6, +0xf9,0x7c,0x00,0x13,0x40,0x0b,0x01,0x16,0x19,0x15,0x07,0x14,0x25,0x01,0x1a,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xfe,0xc3,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x17,0xfa,0x01,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xf8,0xb7,0x1d,0x17,0x05,0x0d,0x25,0x02,0x01, +0x20,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x20,0x14,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xfe,0xc4,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x7f,0xfa,0x02,0x00,0x22,0xb1,0x02,0x01,0xb8,0xff,0xe6,0xb7,0x21,0x1b,0x08,0x11,0x25,0x02,0x01,0x24,0xb8,0xff,0xc0, +0xb5,0x09,0x0b,0x36,0x24,0x17,0x26,0x00,0x2b,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xfe,0x9e,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x4c,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xf0,0x40,0x09,0x18,0x0e,0x05,0x0d,0x25,0x01,0x21,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x90,0xfe,0x9e,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xd3,0xf9,0xec,0x00,0x16,0xb9,0x00,0x01,0xff,0xfd,0x40,0x09,0x1c,0x12,0x08,0x11,0x25,0x01,0x25,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xfe,0x3d,0x04,0xd5,0x05,0x9a,0x02,0x26,0x00,0x38,0x00,0x00, +0x01,0x07,0x00,0xd7,0x01,0x42,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf9,0x40,0x09,0x12,0x0e,0x05,0x0d,0x25,0x01,0x13,0x14,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x90,0xfe,0x3d,0x03,0xe2,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xbb,0xf9,0x7b,0x00,0x16,0xb9,0x00,0x01,0xff,0xf8,0x40, +0x09,0x16,0x12,0x08,0x11,0x25,0x01,0x17,0x17,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x08,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x02,0xd7,0x00,0xdc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x1c,0x12,0x05,0x0d,0x25,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xae,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x02,0xd8,0x59,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x09,0x20,0x16,0x08,0x11,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9e,0x02,0x26,0x00,0x38, +0x00,0x00,0x01,0x07,0x02,0xdf,0x01,0x8c,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x04,0x1d,0x17,0x05,0x0d,0x25,0x03,0x02,0x01,0x27,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x42,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x02,0xe0,0x00,0xff,0x00,0x00, +0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xfd,0x40,0x0b,0x21,0x1b,0x08,0x11,0x25,0x03,0x02,0x01,0x2b,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x07,0x0f,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x1d,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x04,0x16,0x0c, +0x03,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x05,0xb2,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x8c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x03,0x16,0x0c,0x03,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12, +0xfe,0xc6,0x04,0xe6,0x05,0x9a,0x02,0x26,0x00,0x39,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x29,0x00,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0xc6,0x03,0xcb,0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x92,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0xff, +0xfb,0xb4,0x0f,0x15,0x03,0x00,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x06,0xe2,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0xfd,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0, +0x05,0x85,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x24,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0e,0x1f,0x25,0x0b,0x00,0x25,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0xc6,0x07,0x60,0x05,0x9a,0x02,0x26,0x00,0x3a,0x00,0x00,0x01,0x07,0x02,0x45,0x02,0x75,0x00,0x00,0x00,0x0b, +0xb6,0x01,0x0d,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x18,0xfe,0xc6,0x05,0xb0,0x04,0x00,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x02,0x45,0x01,0x95,0x00,0x00,0x00,0x0b,0xb6,0x01,0x06,0x1f,0x25,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe2,0x02,0x26,0x00,0x3b, +0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x93,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x07,0x19,0x1f,0x09,0x00,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x85,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x0e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x06,0x17,0x1d, +0x0b,0x00,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x06,0xe4,0x02,0x26,0x00,0x3b,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xcd,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x13,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x1a,0x00,0x00,0x03,0x92,0x05,0x87,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x06,0x00,0x8f,0x43,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x0d,0x23,0x1d,0x0b,0x00,0x25,0x02,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0xe2,0x02,0x26,0x00,0x3c,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x67,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x11,0x17,0x05,0x00,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x85,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x1f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40, +0x09,0x18,0x1e,0x0c,0x00,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x07,0x6b,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xdb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x0f,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x21,0x00,0x00,0x03,0x70,0x06,0x0e,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x06,0x00,0xd7,0x6f,0x00,0x00,0x13,0x40,0x0b,0x01,0x1d,0x0e,0x0a,0x05,0x09,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x04,0x64,0x05,0x9a,0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0xfd, +0x00,0x00,0x00,0x0b,0xb6,0x01,0x10,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xfe,0xc6,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x02,0x45,0x00,0x87,0x00,0x00,0x00,0x0b,0xb6,0x01,0x14,0x0d,0x13,0x05,0x09,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x21,0xff,0x1c,0x04,0x64,0x05,0x9a, +0x02,0x26,0x00,0x3d,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x0c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x06,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x14,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x21,0xff,0x1b,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd9, +0x00,0x9c,0xfa,0x59,0x00,0x1c,0x40,0x09,0x01,0x10,0x0c,0x0d,0x05,0x09,0x25,0x01,0x0c,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x0c,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0x1c,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1c,0xfa,0x5a,0x00,0x1c,0x40,0x09,0x01,0x09, +0x14,0x15,0x0a,0x11,0x25,0x01,0x14,0xb8,0xff,0xc0,0xb5,0x09,0x0b,0x36,0x14,0x17,0x26,0x00,0x2b,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x57,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0xb8,0x00,0xd0,0x00,0x1b,0x40,0x0b,0x02,0x01,0x00,0x24,0x1e,0x07,0x14,0x25,0x02,0x01,0x15,0xb9, +0x01,0x2d,0x00,0x0a,0x00,0x10,0xfe,0x34,0x34,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x06,0x1c,0x02,0x26,0x00,0x5a,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0xcc,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x08,0x1f,0x25,0x0b,0x00,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x1c,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xcb,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x18,0x1e,0x0c,0x00,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x06,0x1f,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x06,0x84,0x00,0xc9,0xff,0xf0,0x00,0x13,0x40,0x0b,0x02,0x30,0x26,0x29,0x08,0x14,0x25,0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x02,0x62,0x06,0xe2,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x00,0xdb,0xff,0xe2,0x01,0x5d,0x00,0x16,0xb9,0x00,0x01,0xff, +0x2c,0x40,0x09,0x10,0x16,0x07,0x0c,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x29,0x29,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x2d,0x33,0x0a,0x13,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x61,0xe8,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xb3,0x40,0x09,0x2b,0x31,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x36, +0x0c,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xde,0x40,0x0a,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x43,0xf2,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xc3,0x40,0x0a,0x2a,0x34, +0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x37,0x37,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x2d,0x34,0x0a,0x13,0x25,0x03,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x44,0x27,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf9,0x40,0x0a,0x2a,0x34,0x0a,0x13,0x25,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f, +0x00,0x00,0x01,0x06,0x04,0x38,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x33,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x45,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8, +0xff,0xd1,0x40,0x0a,0x2d,0x27,0x0a,0x13,0x25,0x03,0x02,0x36,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0x3f,0xff,0x7d,0x00,0x16,0xb4,0x02,0x19,0x04,0x19,0x02,0xb8,0xfe,0x04,0xb4,0x11,0x1c,0x05,0x00,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x44,0xff,0x7d,0x00,0x16,0xb4,0x02,0x17,0x04,0x17,0x02,0xb8,0xfe,0x08,0xb4,0x14,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e, +0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xd7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07, +0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xfe,0xe5,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03, +0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfe,0xe7,0xb4,0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0xd7,0x05,0x9e,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x15,0x04,0x15,0x03,0x02,0xb8,0xff,0x00,0xb4, +0x1d,0x1d,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xff,0x05,0xb4,0x10,0x10,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x03,0x02,0x19,0x04,0x19,0x03,0x02,0xb8,0xfd,0x88,0xb4,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe7, +0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x27,0xb2,0x00,0x00,0x13,0x40,0x0b,0x01,0x4d,0x2c,0x32,0x0c,0x11,0x25,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x23,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x61,0x82,0x00,0x00,0x13,0x40,0x0b, +0x01,0x11,0x2a,0x30,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x36,0x8b,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x21,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0x71,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x06,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26, +0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x37,0xc4,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x5a,0x2c,0x33,0x0c,0x11,0x25,0x02,0x01,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x06,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x44,0xa8,0x00,0x00,0x17,0x40,0x0d,0x02,0x01, +0x3e,0x29,0x33,0x0c,0x11,0x25,0x02,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x02,0x02,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0x35,0x05,0xa0,0x00,0x27,0x00,0x28,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xfd,0x7b,0xb4,0x10,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x05,0x5a, +0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00, +0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a, +0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0xf5,0xb4,0x0d,0x19,0x02,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x05,0x5a,0x05,0x9e,0x00,0x27,0x00,0x28,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff, +0xa0,0xb4,0x19,0x19,0x02,0x02,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x27,0x1f,0x00,0x00,0x13,0x40,0x0b,0x01,0x3b,0x16,0x21,0x0c,0x14,0x25,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82, +0xfe,0x6c,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x61,0xdc,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xf7,0x40,0x09,0x19,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x36,0xdd,0x00, +0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf8,0x40,0x0a,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x43,0xca,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe5,0x40,0x0a,0x18,0x22,0x0c,0x14, +0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x37,0x29,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x44,0x16,0x22,0x0c,0x14,0x25,0x02,0x01,0x15,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff, +0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x44,0x08,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x24,0x18,0x22,0x0c,0x14,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06, +0x04,0x38,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a,0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x45,0xdf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xfa,0x40,0x0a, +0x1b,0x15,0x0c,0x14,0x25,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xff,0x6b,0xb4,0x18,0x18,0x06,0x06,0x25,0x01,0x2b,0x35, +0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x13,0x04,0x13,0x01,0xb8,0xff,0x6e,0xb4,0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0x9e, +0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xff,0x76,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07, +0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02, +0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x56,0xb4,0x0d,0x19,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x98,0x05,0x9e,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x11,0x04,0x11,0x02,0x01,0xb8,0xff,0xa0,0xb4, +0x19,0x19,0x06,0x06,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x06,0x98,0x05,0xb2,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x15,0x04,0x15,0x02,0x01,0xb8,0xfc,0x64,0xb4,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x94,0xff,0xf4, +0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x27,0xfe,0xb0,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb2,0x40,0x09,0x0d,0x18,0x05,0x0b,0x25,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x6e,0xff,0xf4,0x02,0x08,0x06,0x23,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x61,0xfe,0x8c, +0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x8d,0x40,0x09,0x10,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x93,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x94,0x40,0x0a,0x0d,0x19,0x05,0x0b, +0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xb3,0xff,0xf4,0x02,0x08,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x6f,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x70,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x1b,0xff,0xf4,0x02,0x47,0x06,0x06,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0xd9,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xda,0x40,0x0a,0x0d,0x19,0x05,0x0b,0x25,0x02,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xea,0xff,0xf4,0x02,0x2d,0x06,0x06, +0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xb2,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xb4,0x40,0x0a,0x0f,0x19,0x05,0x0b,0x25,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8d, +0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a,0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xc0,0xff,0xf4,0x02,0x0a,0x06,0x83,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8d,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8e,0x40,0x0a, +0x12,0x0c,0x05,0x0b,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x02,0x4a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x00,0xe6,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0d,0x03,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x48,0x05,0xa0, +0x00,0x27,0x00,0x2c,0x00,0xe4,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x07,0xb2,0x01,0x0b,0x04,0x00,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x73,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00, +0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x3a,0x05,0xa0,0x00,0x27,0x00,0x2c,0x01,0xd6,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0x00,0x00,0x03,0x6e,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7a,0xff,0x9a, +0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0x00,0x00,0x03,0x77,0x05,0xa0,0x00,0x27,0x00,0x2c,0x02,0x13,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x9a,0x00,0x09,0xb3,0x02,0x01,0x14,0x03,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c, +0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xb2,0x00,0x27,0x00,0x2c,0x02,0x0a,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8a,0xff,0x2f,0x00,0x09,0xb3,0x02,0x01,0x0d,0x04,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x27,0x0a,0x00,0x00,0x13,0x40,0x0b,0x02,0x0b,0x19,0x24,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x23,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00, +0x00,0x16,0xb9,0x00,0x02,0xff,0xd4,0x40,0x09,0x1c,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x36,0xe9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xe9,0x40,0x0a,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18, +0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x43,0xb9,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xb9,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60, +0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x37,0x21,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x21,0x19,0x25,0x03,0x09,0x25,0x03,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x44, +0xfc,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xfd,0x40,0x0a,0x1b,0x25,0x03,0x09,0x25,0x03,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbd,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x02,0x21,0x04,0x21,0x02,0xb8,0xfc, +0xc8,0xb4,0x19,0x24,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x06,0x10,0x05,0xb2,0x00,0x26,0x00,0x32,0x66,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1f,0x04,0x1f,0x02,0xb8,0xfc,0xca,0xb4,0x1c,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, +0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xff,0xe2,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27, +0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x1d,0x04,0x1d,0x03,0x02,0xb8,0xff,0xf0,0xb4,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x37, +0xfe,0x7a,0xff,0x98,0x00,0x1a,0xb6,0x03,0x02,0x21,0x04,0x21,0x03,0x02,0xb8,0xfc,0x36,0xb4,0x19,0x25,0x03,0x09,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbe,0xff,0xe8,0x07,0x42,0x05,0xb2,0x00,0x27,0x00,0x32,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x86,0xff,0x98,0x00,0x18,0x40,0x0d,0x03,0x02, +0x1d,0x04,0x1d,0x03,0x02,0x0b,0x25,0x25,0x03,0x03,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x27,0xed,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xed,0x40,0x09,0x23,0x29,0x00,0x16,0x25,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x23,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x61,0x90,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x84,0x40,0x09,0x21,0x27,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00, +0x01,0x06,0x04,0x36,0xae,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x43,0xa5,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9f, +0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x37,0xee,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe9,0x40,0x0a,0x23,0x2a,0x00,0x16,0x25,0x02,0x01,0x1d,0x11,0x26,0x00,0x2b, +0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x06,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x44,0xcf,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xca,0x40,0x0a,0x20,0x2a,0x00,0x16,0x25,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, +0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x38,0xb0,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xaa,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x29,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x83,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x45,0xaa,0x00, +0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0a,0x23,0x1d,0x00,0x16,0x25,0x02,0x01,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x05,0x48,0x05,0xa0,0x00,0x27,0x00,0x3c,0x00,0xe8,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x15,0x04,0x15,0x01,0xb8,0xfd, +0x13,0xb4,0x12,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xb9,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00, +0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x06,0x7d,0x05,0x9e,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x13,0x04,0x13,0x02,0x01,0xb8,0xff,0xd3,0xb4,0x1b,0x1b,0x05,0x05,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00, +0x06,0x7d,0x05,0xb2,0x00,0x27,0x00,0x3c,0x02,0x1d,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x1a,0xb6,0x02,0x01,0x17,0x04,0x17,0x02,0x01,0xb8,0xfc,0x8b,0xb4,0x14,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01, +0x01,0x07,0x04,0x27,0x00,0xf7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x25,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x61,0x00,0xca,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xe1,0x40,0x09,0x26, +0x2c,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x36,0x00,0xcc,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xea,0x40,0x0a,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x43,0x00,0xb3,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0a,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06, +0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x37,0x01,0x27,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x44,0x00,0xf9,0x00,0x00, +0x00,0x17,0x40,0x0d,0x02,0x01,0x17,0x25,0x2f,0x06,0x1d,0x25,0x02,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x38,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d, +0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x45,0x00,0xd5,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf2,0x40,0x0a,0x28,0x22,0x06,0x1d,0x25,0x02,0x01,0x31,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x27,0xfd,0xd9,0xff,0x7d,0x00,0x16,0xb4,0x01,0x25,0x04,0x25,0x01,0xb8,0xff,0xb1,0xb4,0x28,0x28,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x06,0x3c,0x05,0xb2,0x00,0x27, +0x00,0x9f,0x00,0x93,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x01,0x23,0x04,0x23,0x01,0xb8,0xff,0xb4,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x72,0xff,0x98, +0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xd7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xc0,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7c,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x21,0x04,0x21,0x02,0x01, +0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbd,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x98,0x00,0x1a,0xb6,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x25,0x01, +0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbf,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x87,0xff,0x98,0x00,0x18,0x40,0x0d,0x02,0x01,0x21,0x04,0x21,0x02,0x01,0x00,0x29,0x29,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc, +0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0xff,0xbc,0x00,0x00,0x07,0x46,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9d, +0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x89,0xff,0x2f,0x00,0x18,0x40,0x0d,0x02,0x01,0x25,0x04,0x25,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x35,0x00,0x11,0x3f,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x02,0xff, +0x8f,0x40,0x09,0x29,0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x60,0x35,0x00,0x00,0x13,0x40,0x0b,0x02,0x06,0x29,0x27,0x0a,0x13,0x25,0x02,0x29,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x04,0x55,0xff,0x6c,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x28,0x26,0x0c,0x11,0x25,0x01,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x06,0x00,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x06,0x04,0x60, +0xda,0x00,0x00,0x13,0x40,0x0b,0x01,0x6f,0x28,0x26,0x0c,0x11,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x55,0xbe,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd9,0x40,0x09,0x17,0x15,0x0c,0x14,0x25,0x01,0x16,0x11,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x6c,0x03,0xf8,0x06,0x00,0x02,0x26,0x01,0xc7,0x00,0x00,0x01,0x06,0x04,0x60,0x40,0x00,0x00,0x13,0x40,0x0b,0x01,0x5b,0x17,0x15,0x0c,0x14,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x34,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9, +0x00,0x00,0x01,0x07,0x04,0x55,0xfe,0x63,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x64,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0xff,0xf4,0x02,0x08,0x06,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0xdd,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff, +0xde,0x40,0x09,0x0e,0x0c,0x05,0x0b,0x25,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x55,0xd2,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xd2,0x40,0x09,0x1a,0x18,0x03,0x09,0x25,0x02,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35, +0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x60,0x24,0x00,0x00,0x13,0x40,0x0b,0x02,0x24,0x1a,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x55, +0x8c,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x86,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x00,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x60,0x02,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xfc,0x40,0x09,0x1f,0x1d,0x00,0x16,0x25,0x01,0x1f, +0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x55,0x00,0xaf,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xcc,0x40,0x09,0x24,0x22,0x06,0x1d,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00, +0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x01,0x01,0x07,0x04,0x60,0x01,0x1f,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x3c,0x24,0x22,0x06,0x1d,0x25,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x27,0x29,0x00,0x01,0x06,0x04,0x28, +0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x27,0x11,0x26,0x03,0x25,0x3c,0x36,0x0a,0x00,0x3e,0x02,0x00,0x2d,0x33,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x23,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x61,0xe9,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c, +0x02,0x28,0x11,0x26,0x03,0x25,0x3b,0x35,0x0a,0x00,0x3e,0x02,0xb8,0xff,0xb4,0xb4,0x2b,0x31,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x36,0x0c,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x27,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xde,0xb4,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x43,0xf4,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xc5,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x37,0x38,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1f,0x40,0x14,0x03,0x02,0x27,0x11, +0x26,0x04,0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0x0a,0x2d,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x06,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x44,0x26,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x28,0x11,0x26,0x04, +0x25,0x3e,0x38,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xf8,0xb4,0x2a,0x34,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x38,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x33,0x11,0x26,0x04, +0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x83,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x45,0x00,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x22,0x40,0x0e,0x03,0x02,0x36,0x11,0x26,0x04, +0x25,0x45,0x3f,0x0a,0x00,0x3e,0x03,0x02,0xb8,0xff,0xd1,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x29,0xfe,0x40,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c,0x02,0x19, +0x04,0x19,0x03,0x07,0x25,0x26,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xd3,0xb4,0x1c,0x1c,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0xa0,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x27,0x04,0x61,0xfe,0x46,0xff,0x7d,0x01,0x07,0x04,0x28,0x00,0xa4,0x00,0x00,0x00,0x1f,0x40,0x0c, +0x02,0x17,0x04,0x17,0x03,0x07,0x24,0x25,0x05,0x00,0x3e,0x02,0xb8,0xfe,0xcc,0xb4,0x1a,0x1a,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x73,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x75,0x00,0x00, +0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x13,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xd8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7d,0xff,0x97, +0x01,0x07,0x04,0x28,0x01,0x84,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x22,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00, +0x00,0x27,0x04,0x37,0xfe,0x7b,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x50,0x00,0x00,0x00,0x25,0xb5,0x03,0x02,0x19,0x04,0x19,0x04,0xb8,0xff,0xee,0xb6,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xfe,0xe8,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbf,0xfe,0x40,0x05,0xd7, +0x05,0x9d,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x87,0xff,0x97,0x01,0x07,0x04,0x28,0x01,0x69,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x15,0x04,0x15,0x04,0x07,0x27,0x28,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x01,0xb4,0x1d,0x1d,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00, +0xff,0xff,0xff,0xbd,0xfe,0x40,0x05,0xd7,0x05,0xb2,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x8a,0xff,0x2f,0x01,0x07,0x04,0x28,0x01,0x64,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x02,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x06,0xb4,0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35, +0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0xd7,0x05,0xb1,0x00,0x27,0x00,0x24,0x00,0xc5,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x2e,0x01,0x07,0x04,0x28,0x01,0x68,0x00,0x00,0x00,0x23,0x40,0x0e,0x03,0x02,0x19,0x04,0x19,0x04,0x06,0x2e,0x2f,0x05,0x00,0x3e,0x03,0x02,0xb8,0xff,0x05,0xb4, +0x10,0x10,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x27,0x1f,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x15,0x11,0x26,0x02,0x01,0x2b,0x2b,0x08,0x08,0x3e,0x01,0x2e,0x1b, +0x21,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x23,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x61,0xdd,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x16,0x11,0x26,0x02,0x01,0x2a,0x2a,0x08,0x08,0x3e,0x01,0xb8,0xff,0xe0,0xb4,0x19,0x1f, +0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x36,0xde,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xe8,0xb4,0x1b,0x22, +0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x43,0xca,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff,0xd3,0xb4, +0x18,0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x37,0x27,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x15,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x31,0x1b, +0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x06,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x44,0x08,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x16,0x11,0x26,0x03,0x01,0x2d,0x2d,0x08,0x08,0x3e,0x02,0x01,0x12,0x18, +0x22,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x38,0xe0,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x21,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01,0xb8,0xff, +0xe9,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x82,0xfe,0x40,0x03,0xf8,0x06,0x83,0x02,0x26,0x01,0xc7,0x00,0x00,0x00,0x26,0x04,0x45,0xdf,0x00,0x01,0x07,0x04,0x28,0xff,0x15,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x24,0x11,0x26,0x03,0x01,0x34,0x34,0x08,0x08,0x3e,0x02,0x01, +0xb8,0xff,0xe8,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5d,0x00,0x00,0x00,0x21,0xb4,0x01,0x15,0x04,0x15,0x02,0xb8,0xff,0xfc,0xb5, +0x21,0x22,0x05,0x00,0x3e,0x01,0xb8,0xff,0x6a,0xb4,0x18,0x18,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x05,0x73,0x05,0xa0,0x00,0x27,0x00,0x2b,0x00,0x81,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x5f,0x00,0x00,0x00,0x21,0xb4,0x01,0x13,0x04, +0x13,0x02,0xb8,0xff,0xfe,0xb5,0x20,0x21,0x05,0x00,0x3e,0x01,0xb8,0xff,0x61,0xb4,0x16,0x16,0x06,0x06,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x84,0x00,0x00, +0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x77,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a, +0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x86,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x97,0x05,0x9f,0x00,0x27,0x00,0x2b, +0x01,0xa5,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x75,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xf0,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0x87,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe, +0xfe,0x40,0x06,0x96,0x05,0x9f,0x00,0x27,0x00,0x2b,0x01,0xa4,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0x83,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x11,0x04,0x11,0x03,0xb8,0xff,0xff,0xb6,0x23,0x24,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa1,0xb4,0x19,0x19,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35, +0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a,0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4, +0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x98,0x05,0xb3,0x00,0x27,0x00,0x2b,0x01,0xa6,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0x85,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x15,0x04,0x15,0x03,0xb8,0xff,0xff,0xb6,0x2a, +0x2b,0x05,0x00,0x3e,0x02,0x01,0xb8,0xff,0xa4,0xb4,0x0c,0x0c,0x06,0x06,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x29,0x00,0xf7,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x22, +0x11,0x26,0x02,0x0b,0x37,0x38,0x06,0x1d,0x3e,0x01,0x1a,0x28,0x2e,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x23,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x61,0x00,0xca,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26, +0x02,0x0b,0x36,0x37,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xe1,0xb4,0x26,0x2c,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x36,0x00,0xcc,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x22,0x11, +0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xea,0xb4,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x43,0x00,0xb3,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e, +0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xd0,0xb4,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x37,0x01,0x27,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00, +0x00,0x1f,0x40,0x14,0x02,0x01,0x22,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x45,0x28,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x06,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x44,0x00,0xfa,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f, +0x00,0x00,0x00,0x1f,0x40,0x14,0x02,0x01,0x23,0x11,0x26,0x03,0x0b,0x39,0x3a,0x06,0x1d,0x3e,0x02,0x01,0x18,0x25,0x2f,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x38,0x00,0xd5,0x00,0x00,0x01,0x07,0x04,0x28, +0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x2e,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x83,0x02,0x26,0x01,0xd5,0x00,0x01,0x00,0x27,0x04,0x45,0x00,0xd5,0x00,0x00, +0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x22,0x40,0x0e,0x02,0x01,0x31,0x11,0x26,0x03,0x0b,0x40,0x41,0x06,0x1d,0x3e,0x02,0x01,0xb8,0xff,0xf2,0xb4,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x2b,0x35,0x35,0xff,0xff,0xff,0xbc,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x93,0x00,0x00,0x00,0x27, +0x04,0x27,0xfd,0xd8,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x25,0x04,0x25,0x02,0xb8,0xff,0xfd,0xb5,0x31,0x32,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xb0,0xb4,0x28,0x28,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x06,0x3c,0x05,0xb2,0x00,0x27,0x00,0x9f, +0x00,0x93,0x00,0x00,0x00,0x27,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x01,0x07,0x04,0x28,0x01,0x9f,0x00,0x00,0x00,0x21,0xb4,0x01,0x23,0x04,0x23,0x02,0xb8,0xff,0xfd,0xb5,0x30,0x31,0x0e,0x00,0x3e,0x01,0xb8,0xff,0xa7,0xb4,0x26,0x26,0x12,0x12,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45, +0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x36,0xfe,0x72,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xd8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35, +0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x43,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x21,0x04,0x21,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0xb8,0xff,0xe7,0xb4,0x29,0x29,0x12,0x12, +0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x45,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9c,0x00,0x00,0x00,0x27,0x04,0x37,0xfe,0x7a,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa8,0x00,0x00,0x00,0x25,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0xb6,0x33,0x34,0x0e,0x00,0x3e, +0x02,0x01,0xb8,0xff,0xe8,0xb4,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0xfe,0x40,0x07,0x44,0x05,0xb2,0x00,0x27,0x00,0x9f,0x01,0x9b,0x00,0x00,0x00,0x27,0x04,0x44,0xfe,0x86,0xff,0x99,0x01,0x07,0x04,0x28,0x02,0xa7,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x21,0x04,0x21, +0x03,0xb8,0xff,0xfd,0x40,0x0d,0x33,0x34,0x0e,0x00,0x3e,0x02,0x01,0x02,0x29,0x29,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x38,0xfe,0x89,0xff,0x30,0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00, +0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0xff,0xbc,0xfe,0x40,0x07,0x46,0x05,0xb3,0x00,0x27,0x00,0x9f,0x01,0x9d,0x00,0x00,0x00,0x27,0x04,0x45,0xfe,0x89,0xff,0x30, +0x01,0x07,0x04,0x28,0x02,0xa9,0x00,0x00,0x00,0x23,0xb5,0x02,0x01,0x25,0x04,0x25,0x03,0xb8,0xff,0xfd,0x40,0x0d,0x3a,0x3b,0x0e,0x00,0x3e,0x02,0x01,0x05,0x1c,0x1c,0x12,0x12,0x3e,0x2b,0x35,0x35,0x2b,0x35,0x00,0x11,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0xbe,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07, +0x04,0x66,0x02,0x6a,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe3,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x2f,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x68,0x00,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xe1,0x40,0x09,0x28, +0x27,0x0a,0x13,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x55,0xbd,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x28,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0xb8,0xff,0x8e,0xb4,0x29,0x27, +0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x04,0x18,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x28,0x5b,0x00,0x00,0x0b,0xb6,0x02,0x24,0x2d,0x27,0x0a,0x00,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x06,0x00,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26, +0x04,0x60,0x35,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1b,0x40,0x12,0x02,0x29,0x11,0x26,0x03,0x25,0x31,0x2b,0x0a,0x00,0x3e,0x02,0x06,0x29,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x01,0x06,0x04,0x2a,0x0a,0x00,0x00,0x16, +0xb9,0x00,0x02,0xff,0xdb,0x40,0x09,0x2d,0x27,0x0a,0x13,0x25,0x02,0x2d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x5a,0xfe,0x40,0x04,0xc5,0x05,0x94,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x26,0x04,0x2a,0x0a,0x00,0x01,0x06,0x04,0x28,0x5c,0x00,0x00,0x1e,0x40,0x0c,0x02,0x2d,0x11,0x26,0x03,0x25,0x39,0x33,0x0a,0x00, +0x3e,0x02,0xb8,0xff,0xdb,0xb4,0x2d,0x27,0x0a,0x13,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x0a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x94,0x01,0x4c,0x00,0x13,0x40,0x0b,0x02,0x00,0x16,0x10,0x05,0x00,0x25,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0x79,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x96,0x01,0x4a,0x00,0x13,0x40,0x0b,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x02,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07, +0x04,0x55,0xfe,0x2a,0xff,0x99,0x00,0x16,0xb4,0x02,0x12,0x03,0x12,0x02,0xb8,0xfd,0xee,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x5c,0xff,0x99,0x00,0x16,0xb4,0x02,0x13,0x03,0x13,0x02,0xb8,0xfe, +0x20,0xb4,0x12,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x16,0xfe,0x40,0x05,0x12,0x05,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xa3,0x00,0x00,0x00,0x0b,0xb6,0x02,0x67,0x16,0x10,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e, +0x00,0x1f,0xb5,0x03,0x03,0x00,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38, +0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26, +0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x01,0xe4,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0xfa,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, +0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x01,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x0a,0x26,0x68,0x10,0x30,0x3e,0x3a,0x2c,0x35,0x46,0x73,0x04,0x7b,0x3f,0x38,0x68,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x57,0xa8,0x00,0x01,0x01,0x40,0x04,0xa6,0x03,0x70, +0x05,0x94,0x00,0x0b,0x00,0x1c,0x40,0x0d,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x70,0x6a,0x18,0x96,0x96,0x18,0x6a,0x0a,0x9a,0x74,0x74,0x9a,0x04,0xa6,0x8b,0x8b,0x6a, +0x84,0x85,0x00,0x03,0x01,0x33,0x04,0x7f,0x03,0x7d,0x06,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x35,0x40,0x1b,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x12,0x0c,0x1e,0xc1,0x18,0x0f,0xc0,0x15,0x15,0x00,0x21,0xc0,0x1b,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x10,0xd6,0xe1,0x10,0xc2,0x2f,0xe1,0x00,0x2f,0xfd,0x39, +0x39,0xde,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x1a,0x9e,0x6d,0x6c,0xa0,0x4c,0x28,0x38,0x39,0x27,0x2a, +0x3b,0x3b,0xfe,0x56,0x29,0x3a,0x3a,0x29,0x29,0x3b,0x3b,0x05,0x8e,0x6c,0x6c,0x5f,0x6d,0x6e,0xfe,0x93,0x38,0x2b,0x29,0x39,0x3a,0x28,0x2a,0x39,0x38,0x2b,0x28,0x3a,0x3a,0x28,0x2a,0x39,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x55,0xbe,0x00,0x01,0x07,0x04,0x28,0xff,0x14, +0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x20,0x20,0x08,0x08,0x3e,0x01,0xb8,0xff,0xc6,0xb4,0x17,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x04,0x18,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x0e,0xb9,0x00, +0x01,0xff,0x2e,0xb4,0x1b,0x15,0x0c,0x14,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x06,0x00,0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x60,0x40,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x1e,0xb4,0x01,0x16,0x11,0x26,0x02,0xb8,0xff,0xff,0x40,0x0c,0x20,0x20,0x08,0x08,0x3e,0x01,0x48,0x17,0x15, +0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x83,0xfe,0x6c,0x03,0xf9,0x05,0x94,0x02,0x26,0x01,0xc7,0x01,0x00,0x01,0x06,0x04,0x2a,0xf5,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x1b,0x15,0x0c,0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x83,0xfe,0x40,0x03,0xf9,0x05,0x94, +0x02,0x26,0x01,0xc7,0x01,0x00,0x00,0x26,0x04,0x2a,0xf5,0x00,0x01,0x07,0x04,0x28,0xff,0x14,0x00,0x00,0x00,0x20,0xb4,0x01,0x15,0x11,0x26,0x02,0xb8,0xff,0xff,0xb5,0x28,0x28,0x08,0x08,0x3e,0x01,0xb8,0xff,0xfd,0xb4,0x1b,0x15,0x09,0x14,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x04,0x37,0x05,0x9a, +0x00,0x27,0x00,0x28,0x00,0x83,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x78,0xb4,0x0e,0x0c,0x02,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x04,0x36,0x05,0x9a,0x00,0x27,0x00,0x28,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3, +0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xff,0x94,0xb4,0x0c,0x0c,0x02,0x02,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xff,0x7c,0xb4, +0x0c,0x0c,0x06,0x06,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xc4,0x00,0x00,0x05,0x74,0x05,0x9a,0x00,0x27,0x00,0x2b,0x00,0x82,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf3,0xff,0x99,0x00,0x16,0xb4,0x01,0x0f,0x03,0x0f,0x01,0xb8,0xfc,0xf2,0xb4,0x0e,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff, +0x00,0xbc,0xfe,0x40,0x04,0xf2,0x05,0x9a,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x04,0x28,0x00,0xdd,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x12,0x0c,0x06,0x0b,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0x01,0x4a,0x04,0x92,0x03,0x66,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x30,0x40,0x0e,0x03,0x03,0x09,0x0e,0x00,0x0f,0x09,0xfa,0x0d,0x80, +0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03,0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x05,0x23,0x03,0x33,0x01,0x68,0x1e,0x5d,0x17,0x31,0x41,0x36,0x2c,0x77,0x01, +0x41,0x5e,0xae,0xa6,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c,0x28,0x36,0x7a,0xa8,0x4e,0x01,0x6a,0x00,0x02,0x01,0x42,0x04,0x92,0x03,0x6e,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x37,0x40,0x13,0x10,0x18,0x09,0x0e,0x48,0x03,0x03,0x09,0x0f,0x00,0x10,0x09,0xfa,0x0d,0x80,0x0f,0x0f,0x0b,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x12,0x48,0x01,0x03, +0x0b,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x10,0xc2,0x2f,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x2b,0x01,0x27,0x36,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x01,0x03,0x23,0x13,0x01,0x60,0x1e,0x5d,0x17,0x32,0x40,0x36,0x2c,0x76,0x01,0x52,0xb0,0x5e,0x66,0x04,0x92,0x3d,0x28,0x4f,0x36,0x2c, +0x28,0x36,0x7a,0xa8,0x01,0x1c,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x53,0x40,0x0d,0x0d,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0f,0xb8,0x01,0x02,0x40,0x0d,0x0f,0x13,0x1f,0x13,0x02,0x13,0x40,0x13,0x18,0x48,0x13,0x0c,0x0d,0xb8,0xff,0xc0,0xb5,0x09, +0x12,0x48,0x0d,0x0f,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x27,0x36,0x37,0x22,0x35,0x34, +0x33,0x32,0x16,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xb4,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0x62,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0xff,0xff,0xff,0xec,0xff,0xf4,0x02,0x10,0x05,0xbe,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x66, +0x00,0xfe,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa7,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfa,0xff,0xf4,0x02,0x08,0x05,0x2f,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x64,0x00,0xf8,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa1,0x40,0x09,0x0e,0x0f,0x05, +0x0b,0x25,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x53,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0d,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01, +0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xb2,0xff,0xf4,0x02,0x5e,0x06,0x0e,0x00,0x26,0x01,0xc9,0x01,0x00,0x01,0x07,0x04,0x54,0xfe,0xb0,0x00,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xb0,0x40,0x0b,0x1f,0x19,0x05,0x0b,0x25,0x03,0x02,0x01,0x0e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xdf, +0xff,0xf4,0x02,0x0f,0x05,0x94,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0x9f,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xa0,0x40,0x09,0x12,0x0c,0x05,0x0b,0x25,0x01,0x12,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xd5,0xff,0xf4,0x02,0x1f,0x06,0x5a,0x00,0x26,0x01,0xc9,0x00,0x00,0x01,0x07,0x04,0x2b, +0xfe,0xa2,0x00,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa3,0x40,0x0b,0x12,0x21,0x05,0x0b,0x25,0x03,0x02,0x01,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x07,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x00,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x64,0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x06,0x07,0x02,0x03,0x25,0x01,0x05,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0xff,0xae,0x00,0x00,0x02,0x2c,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xc8,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdd,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x5d,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc6,0x00,0x00,0x02,0x4a,0x05,0x9a,0x00,0x27,0x00,0x2c,0x00,0xe6, +0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xf5,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0x57,0xb7,0x06,0x04,0x02,0x03,0x25,0x01,0x07,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0x00,0x02,0x01,0x44,0x04,0x92,0x03,0x6c,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0e,0x01,0x0f,0x05,0xfa,0x0d,0x80,0x0f,0x40,0x09,0x0e, +0x48,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b,0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x2b,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x05,0x23,0x03,0x33,0x02,0x1e,0x20,0xba,0x76,0x2c,0x36,0x40,0x32,0x18, +0x01,0xaa,0x5c,0xb0,0xa8,0x04,0xcf,0x3d,0x50,0xaa,0x7a,0x35,0x29,0x2c,0x36,0x4f,0x61,0x01,0x6a,0x00,0x00,0x02,0x01,0x38,0x04,0x92,0x03,0x7b,0x06,0x06,0x00,0x0c,0x00,0x10,0x00,0x35,0x40,0x1d,0x0b,0x0b,0x05,0x0f,0x01,0x10,0x05,0xfa,0x0d,0x80,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0f,0x08,0x00,0x40,0x09,0x12,0x48,0x00,0x00,0x0b, +0x08,0xaf,0x03,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x10,0xc2,0x2f,0x5d,0x1a,0xcd,0x00,0x3f,0xc4,0xd4,0xc6,0x12,0x39,0x2f,0x31,0x30,0x01,0x07,0x26,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x16,0x01,0x03,0x23,0x13,0x02,0x12,0x1e,0xbc,0x76,0x2c,0x36,0x40,0x32,0x17,0x01,0xc6,0xb0,0x5f,0x67,0x04,0xcf,0x3d,0x52,0xa8,0x7a,0x36, +0x28,0x2c,0x36,0x4f,0x01,0x09,0xfe,0x96,0x01,0x6a,0x00,0x02,0x01,0x33,0x04,0x77,0x03,0x7d,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x0d,0x0e,0x18,0x09,0x12,0x48,0x03,0xdb,0x40,0x09,0x80,0x00,0x06,0x0c,0xb8,0x01,0x02,0x40,0x15,0x0f,0x14,0x1f,0x14,0x02,0x14,0x40,0x13,0x18,0x48,0x14,0x0f,0x0e,0x40,0x09,0x12,0x48,0x0e, +0x0e,0x0c,0x16,0xb8,0x01,0x01,0x40,0x09,0x11,0x11,0x06,0x00,0xfc,0x01,0x05,0xfc,0x06,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x2f,0xf1,0x39,0xc0,0x2f,0x2b,0x00,0x2f,0xd4,0x2b,0x5d,0xed,0xd6,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x2b,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x16,0x17,0x07,0x26,0x35,0x34,0x36, +0x33,0x32,0x15,0x14,0x03,0x7d,0x69,0x2a,0x92,0x92,0x2a,0x69,0x19,0xa0,0x6c,0x6c,0xa0,0xfe,0xf8,0x06,0x54,0x14,0xb0,0x3e,0x30,0x5a,0x05,0xb6,0x6d,0x6d,0x5f,0x6e,0x6e,0xfe,0xe7,0x3a,0x16,0x35,0x25,0x91,0x30,0x41,0x52,0x50,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0xbe,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x66, +0x02,0x08,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xaa,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x2f,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x0e,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb0,0x40,0x09,0x1e,0x1d,0x00, +0x16,0x25,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x53,0xc3,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xbd,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1e,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35, +0x35,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x0e,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x54,0xd6,0x0e,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xd0,0x40,0x0b,0x30,0x2a,0x00,0x16,0x25,0x03,0x02,0x01,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50, +0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x29,0x14,0x00,0x00,0x16,0xb9,0x00,0x02,0xff,0xf4,0x40,0x09,0x1c,0x27,0x04,0x0a,0x25,0x02,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa1,0xfe,0x74,0x04,0x50,0x06,0x23,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x06,0x04,0x61,0xd4,0x00,0x00,0x16,0xb9,0x00, +0x02,0xff,0xb3,0x40,0x09,0x1f,0x1b,0x04,0x0a,0x25,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x05,0x94,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2a,0xba,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xb4,0x40,0x09,0x23,0x1d,0x00,0x16,0x25,0x01,0x23,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x06,0x5a,0x02,0x26,0x01,0xd2,0x00,0x00,0x01,0x06,0x04,0x2b,0xa9,0x00,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xa4,0x40,0x0b,0x38,0x32,0x00,0x16,0x25,0x03,0x02,0x01,0x35,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60, +0x07,0x0a,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x66,0x02,0x37,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e,0x05,0x00,0x25,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x81,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x04,0x64,0x02,0x38,0x01,0x52,0x00,0x13, +0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x96,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xc5,0xff,0x99,0x00,0x16,0xb4,0x01,0x10,0x03,0x10,0x01,0xb8,0xfc,0xfb,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xb2,0x00,0x00,0x05,0x49,0x05,0x9a,0x00,0x27,0x00,0x3c,0x00,0xe9,0x00,0x00,0x01,0x07,0x04,0x60,0xfd,0xe1,0xff,0x99,0x00,0x16,0xb4,0x01,0x0e,0x03,0x0e,0x01,0xb8,0xfd,0x17,0xb4,0x10,0x0e,0x05,0x00,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x04,0xb0, +0x05,0xa0,0x00,0x27,0x00,0x33,0x00,0x87,0x00,0x00,0x01,0x07,0x04,0x61,0xfd,0xdc,0xff,0x7d,0x00,0x16,0xb4,0x02,0x1a,0x04,0x1a,0x02,0xb8,0xfd,0x3b,0xb4,0x17,0x13,0x03,0x07,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04, +0x16,0xc1,0x40,0x10,0x10,0x02,0x80,0x01,0x0d,0xc0,0x07,0x00,0x40,0x13,0xc0,0x19,0x00,0x80,0x02,0x2f,0x1a,0xcd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x03,0x33,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x02,0xc0,0x5e,0xb0,0xa8,0xf0,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x04,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x03,0x01,0x02,0x04,0x96,0x03,0xae,0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b, +0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x00,0xb0,0x5e,0x66,0xf2,0x28,0x38,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf, +0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x01,0x40,0x02,0x01,0x02,0x80,0x00,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x02,0xdf,0x5e,0xb0,0xa8,0x04,0x96,0x01,0x6a,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x55,0x00,0xb0,0x00,0x00,0x01,0x07,0x04,0x28, +0x01,0x4f,0x00,0x00,0x00,0x1e,0x40,0x0c,0x01,0x23,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0xb8,0xff,0xcd,0xb4,0x24,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x04,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x0b,0xb6,0x01, +0x0b,0x28,0x29,0x06,0x1d,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x06,0x00,0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x60,0x01,0x1f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x24,0x11,0x26,0x02,0x0b,0x2c,0x2d,0x06,0x1d,0x3e,0x01,0x3c,0x24,0x22,0x06,0x1d,0x3e, +0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xff,0xe9,0x06,0x00,0x05,0x94,0x02,0x26,0x01,0xd5,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xeb,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x08,0x28,0x22,0x06,0x1d,0x25,0x01,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x77,0xfe,0x40,0x06,0x00,0x05,0x94, +0x02,0x26,0x01,0xd5,0x00,0x00,0x00,0x27,0x04,0x2a,0x00,0xeb,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x4f,0x00,0x00,0x00,0x1b,0x40,0x12,0x01,0x28,0x11,0x26,0x02,0x0b,0x34,0x35,0x06,0x1d,0x3e,0x01,0x08,0x28,0x22,0x06,0x1d,0x3e,0x2b,0x35,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xac,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26, +0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x02,0x1a,0x03,0x1a,0x02,0xb8,0xfc,0xc8,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0xff,0xe8,0x06,0x11,0x05,0xb2,0x00,0x26,0x00,0x32,0x67,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x02, +0x1b,0x03,0x1b,0x02,0xb8,0xfc,0xed,0xb4,0x1a,0x18,0x03,0x09,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xac,0x00,0x00,0x06,0x53,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0xaa,0x00,0x00,0x01,0x07,0x04,0x55,0xfd,0xdb,0xff,0x99,0x00,0x16,0xb4,0x01,0x1e,0x03,0x1e,0x01,0xb8,0xff,0xac,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01, +0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0xff,0xd1,0x00,0x00,0x06,0x3d,0x05,0xb2,0x00,0x27,0x00,0x9f,0x00,0x94,0x00,0x00,0x01,0x07,0x04,0x60,0xfe,0x00,0xff,0x99,0x00,0x16,0xb4,0x01,0x1f,0x03,0x1f,0x01,0xb8,0xff,0xe7,0xb4,0x1c,0x1c,0x12,0x12,0x25,0x01,0x2b,0x35,0x00,0x11,0x3f,0x35,0xff,0xff,0x00,0x64,0xfe,0x40,0x05,0xa9, +0x05,0xb2,0x02,0x26,0x00,0x9f,0x00,0x00,0x01,0x07,0x04,0x28,0x01,0x0e,0x00,0x00,0x00,0x0b,0xb6,0x01,0x5e,0x22,0x1c,0x12,0x18,0x25,0x01,0x2b,0x35,0x00,0x00,0x01,0x01,0xd1,0x04,0x96,0x02,0xdf,0x06,0x00,0x00,0x03,0x00,0x11,0xb6,0x02,0x40,0x03,0x01,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x3f,0x1a,0xcd,0x31,0x30,0x01,0x03,0x23, +0x13,0x02,0xdf,0xb0,0x5e,0x67,0x06,0x00,0xfe,0x96,0x01,0x6a,0x00,0x01,0x01,0xe2,0x04,0x7b,0x02,0xcf,0x06,0x23,0x00,0x0d,0x00,0x25,0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x0c,0x0c,0x01,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0c,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xc4,0x39,0x2f,0x31,0x30,0x2b,0x01, +0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x02,0xcf,0x29,0x53,0x71,0x45,0x35,0x2c,0x3a,0x6c,0x10,0x04,0xba,0x3f,0x28,0xa7,0x58,0x39,0x48,0x3a,0x2b,0x5d,0x07,0x68,0x00,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x1a,0x06,0x0e,0x00,0x06,0x00,0x15,0xb7,0x00,0xc0,0x04,0x02,0x00,0x05,0x80,0x04,0x00,0x2f,0x1a, +0xcd,0x39,0x39,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0x04,0xc2,0xe6,0xe6,0x01,0x4c,0x00,0x01,0xfe,0xc0,0x04,0xb2,0x01,0x42,0x05,0xb2,0x00,0x13,0x00,0x1e,0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd, +0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6a,0x82,0x34,0x2c,0x74,0x00,0x00,0x01,0xff,0x02, +0x04,0xc2,0x00,0xfe,0x05,0x2f,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x6d,0x00,0x01,0xfe,0x58,0x05,0x74,0x01,0xaa,0x05,0xec,0x00,0x03,0x00,0x0d,0xb4,0x02,0xda,0x01,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01, +0x21,0x35,0x21,0x01,0xaa,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x1d,0x40,0x0d,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x80,0x09,0xdb,0x03,0x00,0x2f,0xed,0x1a,0xdc,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xbe,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xff,0x9e,0x04,0xc2,0x00,0x62,0x05,0x85,0x00,0x0b,0x00,0x0f,0xb5,0x09,0xc0,0x03,0x06,0xc1,0x00,0x00,0x2f,0xed,0x01,0x2f,0xe1,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x04,0xc2,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x05,0x87,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x12,0xc1,0x0c,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15,0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30, +0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x04,0xc2,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x00,0x02,0xff,0x33, +0x04,0x98,0x00,0xcf,0x06,0x1c,0x00,0x0b,0x00,0x16,0x00,0x2a,0x40,0x18,0x14,0xc4,0x30,0x09,0x80,0x09,0xd0,0x09,0xe0,0x09,0x04,0x09,0xc0,0x0f,0xc4,0x03,0x0c,0xc5,0x40,0x06,0xc0,0x11,0xc5,0x00,0x00,0x2f,0xed,0x1a,0xdc,0x1a,0xed,0x01,0x2f,0xe1,0x1a,0xdc,0x71,0xe1,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x59,0x72,0x76,0x5b,0x59,0x72,0x7a,0x57,0x31,0x3f,0x70,0x31,0x41,0x41,0x04,0x98,0x6b,0x53,0x58,0x6e,0x6c,0x54,0x54,0x70,0x01,0x33,0x41,0x30,0x70,0x40,0x30,0x31,0x40,0x00,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2b, +0x40,0x14,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80,0x06,0x04,0x42,0x04,0x06,0x03,0x02,0x07,0x80,0x06,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe9,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x25,0xf6,0x60,0xd1,0x73,0xef,0x61,0xcf,0x06,0x00,0xfe,0xc2, +0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x01,0xfe,0xe8,0x04,0xc2,0x01,0x18,0x06,0x0c,0x00,0x06,0x00,0x11,0xb5,0x00,0xc0,0x03,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcc,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x06,0x0c,0xfe,0xb6,0x01,0x4a,0xe5,0xe5,0x00,0x01,0xff,0xcb, +0x04,0x96,0x00,0x35,0x06,0x00,0x00,0x03,0x00,0x0e,0xb5,0x01,0x02,0x01,0x00,0xfc,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00,0x00,0x02,0xff,0x58,0x04,0x96,0x00,0xa8,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0c,0x02,0x01,0x05,0x06,0x01,0x00,0xfc,0x01,0x01,0x04, +0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11,0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0x04,0x96,0x01,0x6a,0xfe,0x96,0x01,0x6a,0x00,0x02,0xfe,0xdd,0x04,0xc2,0x01,0x25,0x06,0x00,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x17,0x00,0x0e,0x0f,0x02,0x01,0x10,0x03,0x02,0x06,0x80, +0x06,0x04,0x42,0x60,0x04,0x01,0x04,0x06,0x07,0x04,0x03,0x80,0x00,0x00,0x2f,0x1a,0xcd,0x39,0x39,0x01,0x2f,0xcd,0x5d,0x2b,0x01,0x1a,0x18,0x10,0xdc,0x5f,0x5e,0x5d,0xe1,0x31,0x30,0x01,0x23,0x03,0x33,0x03,0x23,0x03,0x33,0x01,0x25,0x61,0xef,0x81,0x23,0x60,0xf6,0x85,0x04,0xc2,0x01,0x3e,0xfe,0xc2,0x01,0x3e,0x00,0x02,0xfe,0xee, +0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0b,0x00,0x18,0x00,0x26,0x40,0x13,0x06,0xc1,0x00,0x0c,0x12,0x15,0xdb,0x0f,0x0c,0xfc,0x18,0x18,0x09,0x12,0xfc,0x13,0x09,0xc0,0x03,0x2f,0xe1,0xde,0xe1,0x10,0xca,0x2f,0xe1,0x00,0x2f,0xfd,0xd4,0x32,0xd4,0xed,0x31,0x30,0x11,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x06, +0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0xe9,0x0a,0x9c,0x70,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x05,0xa6,0x39,0x29,0x2a,0x36,0x37,0x29,0x28,0x3a,0x18,0x70,0x8c,0x8a,0x72,0x9b,0x54,0x47,0x00,0x00,0x01,0xfe,0xee,0x04,0xc2,0x01,0x12,0x05,0xbe,0x00,0x0c,0x00,0x18, +0x40,0x0b,0x0a,0xdb,0x04,0x00,0x07,0x00,0xfc,0x01,0x06,0xfc,0x07,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x33,0xd4,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b,0x04,0xc2,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x00,0x00,0x01,0xff,0x8c, +0x04,0x7b,0x00,0x77,0x06,0x23,0x00,0x0d,0x00,0x27,0xb9,0x00,0x00,0xff,0xe8,0x40,0x13,0x09,0x0d,0x48,0x07,0xfb,0x02,0x0d,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x02,0x04,0xaf,0x0a,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xd4,0xed,0x31,0x30,0x2b,0x13,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x77, +0x69,0x10,0x6e,0x3a,0x2c,0x35,0x45,0x71,0x53,0x05,0xe4,0x38,0x68,0x08,0x5d,0x2a,0x3a,0x47,0x3a,0x58,0xa7,0x28,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39, +0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x4e,0x26,0x68,0x10,0x30,0x3c,0x38,0x2c,0x35,0x46,0x72,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x48,0x3a,0x57,0xa7,0x00,0x00,0x01,0xff,0x8c,0x03,0xf8,0x00,0x77,0x05,0xa0,0x00,0x0e,0x00,0x24, +0x40,0x15,0x00,0x18,0x09,0x0d,0x48,0x01,0x0d,0xfb,0x07,0xfa,0x00,0x40,0x09,0x0d,0x48,0x00,0x00,0x0d,0x0a,0xaf,0x04,0x2f,0xf1,0x39,0xc2,0x2f,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x77,0x27,0x54,0x70,0x45,0x35,0x2c,0x38,0x3c,0x30,0x10,0x04,0x38, +0x40,0x29,0xa6,0x57,0x3b,0x47,0x3a,0x2a,0x2b,0x39,0x01,0x69,0x00,0x01,0x00,0x2f,0x03,0xf8,0x01,0x1a,0x05,0xa0,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x03,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc6,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x13, +0x27,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x56,0x27,0x69,0x10,0x30,0x3c,0x38,0x2c,0x35,0x45,0x70,0x03,0xf8,0x40,0x36,0x69,0x01,0x39,0x2b,0x2a,0x3a,0x47,0x3b,0x57,0xa6,0x00,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x00,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03, +0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x01,0x33,0xc2,0x7e,0xfe,0xfa,0xa8,0xfe,0x42,0x01,0x47,0x00,0x01,0xff,0x3e,0xfe,0x42,0x00,0xc2,0xff,0x89,0x00,0x03,0x00,0x17,0x40,0x0c,0x02,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x17, +0x01,0x23,0x13,0xc2,0xfe,0xfa,0x7e,0xde,0x77,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2a,0x40,0x17,0x01,0x0e,0x02,0xfd,0x05,0x40,0x05,0x06,0x42,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x05,0x02,0x04,0x2f,0xdd,0x32,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a, +0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x23,0x35,0x21,0x35,0x21,0x35,0x33,0xb8,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0xfe,0x58,0x7f,0x6d,0x7e,0x00,0x01,0xff,0x48,0xfe,0x58,0x00,0xb8,0xff,0xc2,0x00,0x07,0x00,0x2c,0x40,0x18,0x02,0x0e,0x01,0xfd,0x06,0x40,0x06,0x05,0x42,0x06,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x03,0xfc,0x01,0x01, +0x06,0x07,0x2f,0xcd,0x32,0x10,0xe1,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0xb8,0xfe,0xfa,0x6a,0x6a,0x01,0x06,0xfe,0xd7,0x7f,0x01,0x6a,0x7e,0x00,0x00,0x01,0xff,0x16,0x04,0x96,0x00,0xea,0x06,0x68,0x00,0x05,0x00,0x14,0x40,0x09,0x00,0x03,0xfd,0x04,0x01,0x00, +0xfc,0x02,0x03,0x2f,0xdd,0xe1,0x00,0x3f,0xed,0xc4,0x31,0x30,0x13,0x23,0x11,0x21,0x35,0x21,0xea,0x6a,0xfe,0x96,0x01,0xd4,0x04,0x96,0x01,0x6a,0x68,0x00,0x00,0x01,0xff,0x52,0x04,0x96,0x00,0xae,0x06,0x0e,0x00,0x0b,0x00,0x12,0xb7,0x05,0x01,0xda,0x00,0x08,0xc2,0x03,0x00,0x2f,0xd4,0xe1,0x00,0x2f,0xed,0xc4,0x31,0x30,0x03,0x37, +0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0xae,0x02,0xd5,0x15,0x88,0x12,0x8e,0x78,0x04,0x96,0x74,0x82,0x48,0x3a,0x37,0x50,0x6c,0x85,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x28,0x40,0x16,0x0b,0xcb,0x40,0x00,0xc0,0x07,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06,0x80,0x09, +0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0xfe,0x5c,0x69,0x4d,0x4d,0x69,0x5e,0x58,0x5a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22,0x40,0x10,0x05,0x00, +0xfd,0x02,0x40,0x03,0x06,0x0e,0x05,0xfc,0x02,0x02,0x01,0x42,0x02,0x01,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xdd,0xed,0x33,0x31,0x30,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xb4,0x7f,0x6d,0x7e,0xfe,0x56,0x6a,0x01,0x06,0xfe,0xfa,0x6a,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x07,0x00,0x22, +0x40,0x10,0x04,0x02,0x06,0xfd,0x40,0x07,0x01,0x0e,0x02,0xfc,0x05,0x05,0x06,0x42,0x05,0x06,0x2f,0xcd,0x2b,0x01,0x10,0xf1,0xe1,0x00,0x18,0x2f,0x1a,0xfd,0x32,0xc6,0x31,0x30,0x17,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0xb6,0x7e,0x6d,0x7f,0x3a,0x6a,0xfe,0xfa,0x01,0x06,0x6a,0x00,0x00,0x01,0xff,0x4c,0xfe,0x5e,0x00,0xb6,0xff,0xc6, +0x00,0x0b,0x00,0x38,0x40,0x1f,0x03,0x0e,0x0a,0x01,0x04,0xfd,0x07,0x0e,0x40,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x09,0x03,0x08,0x00,0x0e,0x01,0x04,0x05,0x42,0x05,0x0a,0x07,0x01,0xfc,0x04,0x2f,0xe1,0x39,0x39,0xcd,0x2b,0x01,0x10,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xfd,0xfd,0x39,0x39,0xed,0x31,0x30,0x13,0x23,0x15,0x23, +0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0xb6,0x7e,0x6d,0x7f,0x7f,0x6d,0x7e,0xfe,0xdd,0x7f,0x7f,0x6b,0x7e,0x7e,0xff,0xff,0xff,0x03,0xff,0x53,0x00,0xff,0xff,0xbf,0x00,0x07,0x06,0x9a,0xfe,0xc5,0xfd,0x5f,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f, +0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2, +0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x27,0x33,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x35,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0x00,0x02,0xfe,0xdd,0xfe,0xc4,0x01,0x25,0xff,0x89,0x00,0x0b,0x00,0x17,0x00,0x1a,0x40,0x0c,0x06,0x00,0x0c,0xc1,0x12,0x09,0xc0,0x03,0x0f,0xc0,0x03,0x15, +0x2f,0xc6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x28,0x3a,0x38,0x28,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0xfe,0xc4,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39, +0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0xff,0xff,0xff,0x35,0xfe,0x7e,0x00,0xd1,0x00,0x02,0x00,0x07,0x00,0xdc,0xfe,0xe3,0xf9,0xe6,0x00,0x01,0xff,0x9c,0xfe,0x62,0x00,0x64,0xff,0x89,0x00,0x0b,0x00,0x3b,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0x40,0x09,0x0f,0x07,0x1f, +0x07,0x2f,0x07,0x03,0x07,0x01,0xb8,0xff,0xc0,0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x2f,0x5d,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0xfe,0x62,0x36,0x16,0x3a,0x50,0x51,0x41,0x30, +0x91,0x00,0xff,0xff,0xff,0x56,0xfe,0x50,0x00,0xaa,0x00,0x00,0x00,0x07,0x00,0xdd,0xff,0x23,0x00,0x00,0xff,0xff,0xff,0x5d,0xfe,0x70,0x00,0x71,0x00,0x00,0x00,0x07,0x00,0xdf,0xff,0x1f,0x00,0x00,0x00,0x01,0xff,0xcb,0xfe,0x1e,0x00,0x35,0xff,0x89,0x00,0x03,0x00,0x16,0x40,0x0c,0x01,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x00, +0xfc,0x01,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x13,0x23,0x11,0x33,0x35,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x22,0x40,0x13,0x00,0x05,0x80,0x03,0xfd,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d, +0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11,0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0xfe,0x5c,0xc5,0xc5,0x01,0x2d,0x00,0x01,0xfe,0xb1,0xfe,0xbc,0x01,0x4f,0xff,0x89,0x00,0x14,0x00,0x44,0x40,0x26,0x00,0x05,0x10,0x03,0x0a,0x12,0x03,0x0d,0xc5,0x40,0x07,0x80,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x09, +0x03,0x0a,0x14,0xff,0x00,0x0e,0x10,0x0b,0xff,0x0a,0x0a,0x0f,0x42,0x0a,0x80,0x10,0xfe,0x0f,0x2f,0xe1,0x1a,0xcc,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x33,0x32,0x35,0x33,0x14, +0x33,0x32,0x35,0x01,0x4f,0x6a,0x57,0x5a,0x34,0x35,0x5b,0x57,0x68,0x61,0x5f,0x69,0x4c,0x6a,0x5e,0x77,0x59,0x74,0x44,0x44,0x72,0x5b,0x75,0x75,0x75,0x75,0x00,0x01,0xfe,0xe8,0xfe,0x40,0x01,0x18,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd, +0x01,0x2f,0x1a,0xcc,0x31,0x30,0x05,0x03,0x23,0x03,0x33,0x17,0x37,0x01,0x18,0xd4,0x86,0xd6,0x72,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x01,0xfe,0xe8,0xfe,0x3e,0x01,0x1a,0xff,0x89,0x00,0x06,0x00,0x1a,0x40,0x0d,0x00,0xc0,0x04,0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f, +0x1a,0xcc,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x01,0x1a,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0x00,0x01,0xfe,0xee,0xfe,0x8e,0x01,0x12,0xff,0x89,0x00,0x0c,0x00,0x29,0x40,0x16,0x0c,0xc4,0x00,0xc0,0x07,0xc4,0x06,0x0c,0x06,0x09,0xdb,0x40,0x03,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06, +0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x10,0xc4,0x01,0x2f,0xe1,0x1a,0xdc,0xe1,0x31,0x30,0x05,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x12,0x0a,0x9b,0x71,0x75,0x95,0x04,0x64,0x0c,0xa0,0x44,0x61,0x09,0x77,0x72,0x89,0x89,0x72,0x9b,0x54,0x47,0xff,0xff,0xfe,0xe9,0xff,0x13,0x01,0x19,0x00,0x01,0x00,0x07, +0x04,0x2a,0xfd,0xa9,0xfa,0x6d,0x00,0x01,0xfe,0xc0,0xfe,0x9e,0x01,0x42,0xff,0x9e,0x00,0x13,0x00,0x22,0x40,0x11,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x09,0x11,0xda,0x03,0x07,0xda,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15, +0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54,0x4a,0x36,0x53,0x62,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0xff,0xff,0xff,0x05,0xff,0x51,0x01,0x01,0xff,0xbe,0x00,0x07,0x00,0xd9,0xfe,0xc7,0xfa,0x8f,0x00,0x01,0xfe,0x57,0xfe,0xd7,0x01,0xa9, +0xff,0x4e,0x00,0x03,0x00,0x0d,0xb4,0x01,0xda,0x02,0x00,0x01,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfe,0xd7,0x77,0xff,0xff,0xfe,0x57,0xfd,0xfe,0x01,0xa9,0xff,0x62,0x00,0x07,0x01,0x35,0xfe,0x57,0x00,0x00,0x00,0x01,0xfe,0xc0,0x01,0x9e,0x01,0x42,0x02,0x9e,0x00,0x13,0x00,0x1e, +0x40,0x0e,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x13,0x07,0xda,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6,0xfd,0xdc,0xed,0xc6,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x42,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x59,0x5e,0x61,0x56,0x41,0x54, +0x4a,0x36,0x53,0x02,0x9e,0x69,0x85,0x34,0x2a,0x70,0x69,0x82,0x33,0x2d,0x75,0x00,0x00,0x01,0xff,0x02,0x01,0xe6,0x00,0xfe,0x02,0x52,0x00,0x03,0x00,0x0e,0xb4,0x00,0x01,0x02,0xe2,0x01,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x35,0x21,0xfe,0xfe,0x04,0x01,0xfc,0x01,0xe6,0x6c,0xff,0xff,0xfe,0x58,0xff,0xc5,0x01,0xaa, +0x00,0x3d,0x00,0x07,0x01,0x95,0xfe,0x58,0xfa,0x51,0x00,0x01,0xfe,0x66,0x00,0x77,0x01,0x9c,0x03,0xc2,0x00,0x03,0x00,0x2a,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0a,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x00,0x02,0x2f,0xcd,0x00,0x2f,0x2f,0xc1,0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4, +0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x9c,0xfd,0x50,0x86,0x02,0xae,0x03,0xc2,0xfc,0xb5,0x03,0x4b,0x00,0x00,0x01,0xfe,0x70,0xff,0x12,0x01,0x92,0x05,0x9a,0x00,0x03,0x00,0x2b,0xb6,0x03,0x02,0x01,0x00,0x03,0x00,0x01,0xb8,0x01,0x00,0x40,0x0b,0x02,0x03,0x14,0x02,0x03,0x01,0x02,0x00,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0x2f,0xc1, +0x87,0x05,0x2b,0x10,0x00,0xc1,0x87,0x05,0x7d,0x10,0xc4,0x31,0x30,0x01,0x01,0x23,0x01,0x01,0x92,0xfd,0x50,0x72,0x02,0xae,0x05,0x9a,0xf9,0x78,0x06,0x88,0x00,0x01,0xff,0xa6,0xfe,0x5c,0x00,0x5a,0xff,0xc8,0x00,0x0b,0x00,0x2a,0x40,0x17,0x01,0xcb,0x40,0x00,0xc0,0x05,0xcb,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x06, +0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x5d,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4f,0x65,0x67,0xfe,0x5c,0x5c,0x5a,0x58,0x5e,0x67,0x4f,0x4d,0x69,0x00,0x01,0xfe,0x9c,0xfe,0x5c,0x01,0x64,0xff,0x89,0x00,0x07,0x00,0x24, +0x40,0x14,0x04,0xfd,0x40,0x01,0x80,0x06,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x07,0xfc,0x06,0x03,0xfc,0x02,0x2f,0xe1,0xd4,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x35,0x33,0x01,0x64,0xfd,0x38,0x68,0x01,0xf8,0x68,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x02,0xff,0x44,0xfe,0x10, +0x00,0xbc,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x14,0x01,0xc4,0x2f,0x07,0x01,0x07,0x06,0xc4,0x02,0x40,0x09,0x0d,0x48,0x02,0x03,0xc4,0x05,0x06,0xc4,0x02,0x2f,0xe1,0xdd,0xe1,0x00,0x2f,0x2b,0xed,0xdd,0x5d,0xed,0x31,0x30,0x13,0x21,0x11,0x21,0x03,0x35,0x23,0x15,0xbc,0xfe,0x88,0x01,0x78,0x5a,0xc4,0xfe,0x10,0x01,0x79, +0xfe,0xe1,0xc5,0xc5,0x00,0x01,0xfe,0xa5,0xfe,0xa8,0x01,0x5b,0xff,0x89,0x00,0x16,0x00,0x45,0x40,0x25,0x00,0x0d,0x0d,0x12,0x07,0x80,0x14,0x03,0x0a,0xc5,0x40,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x09,0x03,0x10,0x01,0xff,0x00,0x0e,0x06,0x0c,0xff,0x0d,0x0d,0x07,0x42,0x0d,0x80,0x06,0xfe,0x07,0x2f,0xe1,0x1a,0xce,0x2b,0x01,0x10, +0xe1,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x5f,0x5e,0x5d,0x1a,0xed,0x39,0x39,0x1a,0xcc,0x39,0x39,0x7c,0x2f,0x33,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x5b,0x62,0x11,0x4f,0x32,0x40,0x4e,0x41,0x32,0x4e,0x11,0x62,0x0b,0x6e,0x48,0x70,0x2a, +0x28,0x72,0x46,0x70,0xfe,0xee,0x43,0x55,0x34,0x35,0x54,0x43,0x43,0x58,0x64,0x64,0x5a,0x00,0x00,0x01,0xff,0x30,0x04,0xc2,0x00,0xd2,0x06,0x65,0x00,0x0b,0x00,0x09,0xb1,0x07,0x04,0x19,0x2f,0x00,0x2f,0x31,0x30,0x13,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86, +0x85,0x06,0x1a,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0x01,0xff,0x9e,0x05,0x08,0x00,0x62,0x07,0x1c,0x00,0x11,0x00,0x27,0x40,0x13,0x0a,0xc5,0x40,0x09,0xc0,0x01,0xc5,0x40,0x00,0x09,0x03,0xc4,0x10,0x00,0x80,0x0c,0xc4,0x07,0x00,0x2f,0xd4,0xe1,0x1a,0x10,0xdd,0xe1,0xc4,0x00,0x2f,0x1a,0xed,0x1a,0xdc,0x1a, +0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x27,0x26,0x35,0x34,0x33,0x15,0x22,0x15,0x14,0x17,0x16,0x15,0x14,0x62,0x6e,0x35,0x35,0xc0,0x6a,0x35,0x35,0x05,0x08,0x5e,0x42,0x1c,0x42,0x41,0x36,0x9f,0x5e,0x41,0x1b,0x40,0x40,0x3a,0xa0,0x00,0x00,0x02,0xfe,0x57,0x05,0x74,0x01,0xa9,0x07,0x04,0x00,0x03,0x00,0x07,0x00,0x19,0x40,0x0b, +0x02,0xda,0x01,0x06,0xda,0x05,0x07,0x06,0x01,0x00,0x01,0x2f,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xd6,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xa9,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x06,0x8e,0x76,0xfe,0x70,0x78,0x00,0x00,0x01,0xfe,0x70,0x04,0xc2,0xff,0xf6,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03, +0x80,0x01,0x02,0x00,0x2f,0xcd,0x00,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x23,0x01,0x33,0x0a,0x7f,0xfe,0xf9,0xa8,0x04,0xc2,0x01,0x48,0x00,0x00,0x01,0x00,0x0a,0x04,0xc2,0x01,0x90,0x06,0x0a,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x00,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xcd,0x31,0x30,0x01,0x01,0x23,0x13,0x01,0x90,0xfe,0xf9,0x7f,0xe0, +0x06,0x0a,0xfe,0xb8,0x01,0x48,0xff,0xff,0xfe,0xc0,0x04,0xb2,0x01,0x41,0x05,0xb2,0x00,0x07,0x00,0xd8,0xfe,0x9d,0x00,0x00,0x00,0x01,0xff,0x9c,0x04,0xc2,0x00,0x64,0x05,0xea,0x00,0x0b,0x00,0x33,0xb5,0x01,0x18,0x09,0x12,0x48,0x00,0xb8,0xff,0xc0,0xb4,0x13,0x16,0x48,0x00,0x03,0xb8,0x01,0x02,0xb2,0x07,0x00,0x01,0xb8,0xff,0xc0, +0xb5,0x09,0x12,0x48,0x01,0x03,0x0a,0xb9,0x01,0x01,0x00,0x05,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x2b,0x31,0x30,0x2b,0x03,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x4a,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x04,0xc2,0x36,0x16,0x3a,0x50,0x52,0x42,0x2f,0x91,0x00,0x00,0x03,0xfe,0xaa,0x04,0x96,0x01,0x56, +0x06,0x00,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x2c,0x40,0x15,0x0a,0x04,0x16,0xc1,0x40,0x10,0x10,0x03,0x80,0x02,0x13,0xc0,0x19,0x02,0x40,0x0d,0xc0,0x07,0x00,0x80,0x02,0x2f,0x1a,0xdd,0xd4,0xe1,0x1a,0x10,0xde,0xe1,0x00,0x2f,0x1a,0xcd,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x13,0x03,0x23,0x13,0x13,0x22,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xa8,0xb0,0x5e,0x66,0xf2,0x29,0x37,0x38,0x28,0x29,0x3b,0x3a,0xfd,0xf0,0x28,0x3a,0x3a,0x28,0x2a,0x3a,0x3a,0x06,0x00,0xfe,0x96,0x01,0x6a,0xfe,0xba,0x36,0x2a,0x2a,0x39,0x39,0x2a,0x28,0x38,0x37,0x29,0x2a,0x39,0x39,0x2a,0x28,0x38,0x00, +0x00,0x01,0xff,0x64,0xfe,0x40,0x00,0x9c,0xff,0x89,0x00,0x0c,0x00,0x23,0x40,0x13,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x5d,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x13,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x9c,0x3b, +0x55,0x4b,0x5d,0x78,0x46,0x27,0x29,0xfe,0x90,0x50,0x52,0x47,0xb0,0xba,0x43,0x2a,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf0,0x00,0x07,0x00,0x1b,0x40,0x0d,0x00,0x05,0x80,0x03,0xfd,0x06,0x00,0x00,0xfc,0x01,0x04,0xfc,0x05,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x1a,0xcd,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x23,0x11, +0x21,0x01,0x64,0x68,0xfe,0x08,0x68,0x02,0xc8,0x04,0xc2,0xc5,0xc5,0x01,0x2e,0x00,0x00,0x02,0xfe,0x2a,0xfd,0xfe,0x01,0xd6,0xff,0xaa,0x00,0x03,0x00,0x07,0x00,0x10,0xb6,0x06,0x05,0x02,0x50,0x01,0x01,0x01,0x00,0x2f,0x5d,0xcd,0x2f,0xcd,0x31,0x30,0x05,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x01,0xd6,0xfc,0x54,0x03,0xac,0xfc,0x54, +0x03,0xac,0xda,0x84,0xfe,0x54,0x84,0x00,0x00,0x02,0xff,0x58,0xfe,0x1e,0x00,0xa8,0xff,0x89,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x12,0x02,0x01,0x05,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x00,0xfc,0x01,0x01,0x04,0xfc,0x05,0x2f,0xf1,0xca,0x2f,0xe1,0x00,0x2f,0x5d,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x23,0x11, +0x33,0xa8,0x6a,0x6a,0xe6,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0xfe,0x95,0x01,0x6b,0x00,0x00,0x01,0xff,0x4c,0xfe,0x56,0x00,0xb6,0xff,0xc6,0x00,0x05,0x00,0x12,0xb7,0x01,0x04,0xfd,0x05,0x01,0xfc,0x02,0x05,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xc4,0x31,0x30,0x17,0x11,0x23,0x11,0x23,0x35,0xb6,0x6c,0xfe,0x3a,0xfe,0x90,0x01,0x06,0x6a,0x00, +0x00,0x01,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x06,0x74,0x00,0x19,0x00,0x3c,0x40,0x1d,0x05,0xc4,0x06,0x12,0xc4,0x13,0x0e,0x0b,0x09,0x10,0x18,0x01,0x03,0x16,0x0d,0x00,0x0c,0x19,0x06,0x0c,0x13,0x06,0x10,0xda,0x16,0x03,0xda,0x09,0x13,0x00,0x2f,0xd4,0xfd,0xdc,0xed,0xc4,0x10,0xc6,0x10,0xc6,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11, +0x12,0x39,0x39,0x01,0x2f,0xe1,0xd4,0xe1,0x31,0x30,0x13,0x07,0x16,0x33,0x32,0x35,0x33,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x37,0xa6,0x58,0x1e,0x1e,0x54,0x62,0x5f,0x53,0x3c,0x44,0x5a,0x5a,0x56,0x1e,0x1c,0x58,0x5e,0x60,0x56,0x3a,0x40,0x5c,0x06,0x3a,0x88,0x0a,0x74,0x68, +0x85,0x21,0x8c,0x3a,0x84,0x0c,0x72,0x6e,0x7e,0x23,0x8f,0x00,0x00,0x03,0xfe,0xc0,0x04,0xc4,0x01,0x40,0x07,0x62,0x00,0x0b,0x00,0x1f,0x00,0x2b,0x00,0x35,0x40,0x1b,0x09,0x03,0x29,0xc0,0x23,0x23,0x16,0x1f,0xc4,0x0c,0x15,0xc4,0x16,0x06,0xc1,0x00,0x0c,0x13,0xda,0x19,0x1d,0xda,0x0f,0x16,0x26,0xc1,0x20,0x00,0x2f,0xfd,0xd6,0xd4, +0xfd,0xdc,0xed,0xd4,0xd6,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01, +0x28,0x3b,0x3c,0x27,0x29,0x3a,0x3a,0x01,0x18,0x5f,0x53,0x46,0x5c,0x4c,0x2a,0x58,0x5e,0x60,0x56,0x42,0x54,0x49,0x35,0x54,0xdf,0x29,0x3a,0x3c,0x27,0x29,0x3a,0x3a,0x06,0xa0,0x39,0x29,0x2a,0x36,0x37,0x29,0x29,0x39,0x0a,0x69,0x85,0x33,0x2b,0x70,0x6c,0x7f,0x33,0x2d,0x75,0xfe,0x2e,0x3a,0x29,0x29,0x37,0x37,0x29,0x29,0x3a,0x00, +0x00,0x02,0xfe,0xc0,0x04,0xb2,0x01,0x40,0x06,0xa0,0x00,0x12,0x00,0x25,0x00,0x34,0x40,0x1a,0x25,0x13,0x12,0xc4,0x00,0x1c,0x1d,0x09,0xc4,0x0a,0x00,0x07,0xda,0x0c,0x10,0xda,0x09,0x03,0x13,0x1a,0xda,0x1f,0x23,0xda,0x1d,0x16,0x00,0x2f,0xc4,0xfd,0xdc,0xed,0xd4,0xd6,0xc6,0xfd,0xdc,0xed,0xc4,0x01,0x2f,0xe1,0x39,0x39,0xd4,0xe1, +0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x13,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x01,0x40,0x5c,0x56,0x42,0x57,0x57,0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x62,0x5c,0x56,0x42,0x57,0x57, +0x28,0x58,0x5e,0xb6,0x3e,0x52,0x52,0x32,0x54,0x06,0xa0,0x64,0x76,0x25,0x25,0x5c,0xd8,0x26,0x26,0x60,0xfe,0xfe,0x64,0x76,0x25,0x25,0x5c,0xd7,0x25,0x26,0x60,0x00,0x00,0x01,0xfe,0xa8,0xfe,0x6e,0x01,0x58,0xff,0xb6,0x00,0x09,0x00,0x35,0x40,0x1c,0x07,0x05,0x02,0x00,0x0e,0x09,0xfd,0x03,0x40,0x03,0x02,0x42,0x03,0x0f,0x02,0x1f, +0x02,0x2f,0x02,0x03,0x02,0x04,0x03,0x09,0x08,0x06,0x09,0x01,0x2f,0xcd,0x2f,0xcd,0x11,0x39,0x39,0x00,0x2f,0x5d,0xcd,0x2b,0x00,0x1a,0x18,0x10,0xfd,0xed,0x11,0x39,0x39,0x31,0x30,0x03,0x27,0x37,0x15,0x21,0x35,0x17,0x07,0x35,0x21,0xa8,0xb0,0xb0,0x01,0x50,0xb0,0xb0,0xfe,0xb0,0xfe,0x6e,0xa4,0xa4,0x6e,0x6e,0xa4,0xa4,0x6f,0x00, +0x00,0x01,0xff,0x5c,0xfe,0x5c,0x00,0xa4,0xff,0xdb,0x00,0x06,0x00,0x18,0x40,0x0a,0x00,0x04,0x02,0x03,0x04,0x04,0x05,0xfc,0x01,0x02,0x2f,0xdd,0xf1,0xc1,0x2f,0x00,0x2f,0xdd,0x32,0xc6,0x31,0x30,0x03,0x35,0x23,0x37,0x17,0x23,0x15,0x35,0x6f,0xa4,0xa4,0x6f,0xfe,0x5c,0xcf,0xb0,0xb0,0xcf,0x00,0x01,0xfd,0x0e,0x05,0xc2,0x02,0xf2, +0x07,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x00,0x07,0xda,0x0e,0x12,0xda,0x03,0x0b,0x15,0xda,0x00,0x0a,0xda,0x0b,0x2f,0xe1,0x2f,0xe1,0x00,0x2f,0xd4,0xfd,0xd4,0xed,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x25,0x24,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0x04,0x33,0x32,0x36,0x35,0x02,0xf2,0x02,0xb6,0x86,0x92,0xfe, +0xde,0xfe,0xde,0x90,0x58,0x71,0x77,0x02,0xb4,0x88,0x95,0x01,0x23,0x01,0x22,0x8c,0x57,0x72,0x07,0x00,0x86,0xb2,0x5b,0x5a,0x6b,0x50,0x88,0xb0,0x5b,0x5b,0x6c,0x50,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x16,0x40,0x09,0x03,0xda,0x08,0x00,0x06,0x01,0x00,0x05,0x06,0x2f,0x33,0x2f,0x32,0x00,0x2f,0xc4, +0xd4,0xed,0x31,0x30,0x01,0x23,0x02,0x21,0x20,0x03,0x23,0x12,0x21,0x20,0x03,0x1a,0xa2,0xba,0xfe,0x41,0xfe,0x43,0xba,0xa2,0xf0,0x02,0x2a,0x02,0x2a,0x05,0xc2,0x01,0x02,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xfd,0xaf,0xfe,0x6e,0x02,0x51,0xff,0xb6,0x00,0x06,0x00,0x22,0x40,0x12,0x04,0x05,0xfd,0x01,0x40,0x0f,0x02,0x1f,0x02,0x2f, +0x02,0x03,0x02,0x01,0x05,0x80,0x03,0x00,0x2f,0x2f,0x1a,0xcd,0x32,0x00,0x2f,0x5d,0x1a,0xdd,0xfd,0xcd,0x31,0x30,0x05,0x21,0x35,0x17,0x07,0x35,0x21,0xfd,0xaf,0x03,0xf2,0xb0,0xb0,0xfc,0x0e,0xb8,0x6e,0xa4,0xa4,0x6f,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4c,0x40,0x2b,0x0d,0x0a,0x04,0x95, +0x40,0x07,0x08,0x11,0x07,0x95,0x09,0x30,0x03,0x15,0x01,0x1d,0x95,0x17,0x16,0x0e,0x23,0x95,0x11,0x10,0x08,0x00,0x0b,0x0b,0x0a,0x14,0x83,0x20,0x20,0x27,0x02,0x0d,0x0a,0x07,0x04,0x19,0x84,0x05,0x03,0x2f,0xc6,0xe9,0x17,0x39,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x2b,0x00,0x18,0x2f, +0x1a,0xed,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x85,0xa2,0xf8,0xf8,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80, +0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xb4,0x8c,0xac,0xac,0x8c,0xfe,0x98,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x03,0xff,0xac,0x00,0x00,0x04,0x81,0x05,0x9a,0x00,0x1b,0x00,0x23,0x00,0x2b,0x00,0x48,0x40,0x26,0x08,0x08,0x00,0x0d,0x14,0x24,0x91,0x1d,0x1d,0x0d, +0x25,0x91,0x00,0x12,0x1c,0x01,0x91,0x0d,0x03,0x14,0x25,0x18,0x7d,0x29,0x29,0x11,0x7d,0x21,0x21,0x2d,0x00,0x05,0x7e,0x0a,0x1d,0x25,0x7e,0x00,0x2f,0xe9,0x32,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xe9,0x39,0x2f,0xe9,0x11,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22, +0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x96,0xba,0xda,0x84,0x74,0x91,0xae,0xfe,0xf8,0xc9,0xfa,0xac,0x8a, +0x9d,0xfe,0xee,0xc1,0xe4,0x94,0xa3,0xfe,0xa6,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x05,0x02,0xfe,0x31,0x85,0x79,0xd1,0xfd,0x9a,0xfd,0xfc,0x8c,0x7a,0xfe,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x0c,0x00,0x14,0x00,0x2e,0x40,0x18,0x0d,0x91, +0x05,0x05,0x01,0x0e,0x91,0x00,0x12,0x04,0x91,0x01,0x03,0x02,0x02,0x09,0x7d,0x12,0x12,0x16,0x05,0x0e,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc, +0x02,0xfe,0xfd,0xaa,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa2,0xfe,0xc9,0x05,0x9a,0x98,0xfe,0x38,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x36,0x40,0x1d,0x08,0x00,0x0b,0x17,0x95,0x11,0x16,0x03,0x15,0x1d,0x95,0x0b, +0x10,0x07,0x95,0x04,0x00,0x05,0x05,0x0e,0x83,0x1a,0x1a,0x21,0x14,0x01,0x08,0x84,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x03,0x25,0xfd,0x7d,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x05,0xec,0x8c,0xfd,0xec,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49,0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x02,0x00,0x33,0x00,0x00, +0x04,0x38,0x05,0xb2,0x00,0x0d,0x00,0x15,0x00,0x2b,0x40,0x16,0x0e,0x91,0x06,0x06,0x05,0x0f,0x91,0x00,0x12,0x03,0x05,0x04,0x0a,0x7d,0x13,0x13,0x17,0x02,0x06,0x0f,0x7e,0x00,0x2f,0xe1,0x32,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x27,0x35,0x25,0x33,0x11,0x21,0x32,0x16,0x15, +0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x89,0x01,0x1b,0x16,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe,0xec,0x95,0xa0,0xfe,0xcb,0x04,0x81,0x77,0x16,0xa4,0xfd,0x86,0xcd,0xbf,0xc6,0xe6,0x02,0xa4,0xfd,0xf2,0x8e,0x7e,0x01,0x02,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0x54,0x05,0xec,0x00,0x13,0x00,0x20,0x00,0x33, +0x40,0x1b,0x09,0x01,0x0c,0x18,0x95,0x12,0x16,0x03,0x15,0x1e,0x95,0x0c,0x10,0x06,0x08,0x00,0x0f,0x83,0x1b,0x1b,0x22,0x14,0x01,0x09,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x27,0x35,0x25,0x33,0x11,0x33,0x36,0x33, +0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4c,0x04,0xa2,0x85,0x01,0x10,0x17,0x04,0x79,0xe9,0xc5,0xe1,0xfb,0xda,0xc7,0x70,0xa4,0x80,0x94,0xac,0x9e,0x89,0x8f,0xae,0x94,0x94,0x04,0xc2,0x73,0x17,0xa0,0xfd,0x60,0xcc,0xfe,0xef,0xe9,0xff,0x00,0xfe,0xca,0x02,0x49, +0x8f,0x7f,0xb1,0xe1,0xc5,0xaf,0xc7,0xc7,0x00,0x01,0x00,0x6a,0xff,0xe8,0x04,0x98,0x05,0xb2,0x00,0x15,0x00,0x22,0x40,0x11,0x01,0x03,0x91,0x14,0x13,0x0b,0x09,0x91,0x0e,0x04,0x11,0x7d,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f,0xe9,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x00,0x11,0x10, +0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x6a,0x9a,0xba,0xf6,0x01,0x34,0xfe,0xe1,0xea,0xd8,0x9d,0x9f,0xed,0x01,0x31,0x01,0x71,0xfe,0x64,0xfe,0xc0,0xcc,0x23,0xb2,0x56,0x01,0x4b,0x01,0x13,0x01,0x07,0x01,0x36,0x60,0xa4,0x54,0xfe,0x76,0xfe,0xc0,0xfe,0xa8,0xfe,0x58,0x00,0x01,0x00,0x5e,0xff,0xe8, +0x05,0x42,0x06,0x83,0x00,0x21,0x00,0x43,0x40,0x24,0x20,0x11,0x01,0x11,0x0f,0x91,0x14,0x13,0x21,0x92,0x00,0x02,0x92,0x1f,0x1a,0x1c,0x1a,0x07,0x09,0x91,0x1a,0x04,0x19,0x06,0x17,0x00,0x1c,0x7f,0x04,0x06,0x12,0x12,0x23,0x0c,0x7d,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x11,0x39, +0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x42,0x2a,0x24,0x71,0x0f,0x09,0xa5,0xb7,0xf1,0xfe,0xd2,0x01,0x1f,0xe9,0xd8,0x9e,0x9f,0xed, +0xfe,0xce,0xfe,0x90,0x01,0x9c,0x01,0x3e,0x5c,0x5e,0x03,0x85,0x68,0x30,0x30,0x05,0xe4,0x14,0x9e,0x3c,0x58,0x06,0x5a,0xfe,0xb5,0xfe,0xed,0xfe,0xfa,0xfe,0xc9,0x60,0xa3,0x54,0x01,0x8a,0x01,0x40,0x01,0x57,0x01,0xa9,0x18,0x5f,0x8a,0x13,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0xd5,0x00,0x21,0x00,0x48,0x40,0x1d,0x30,0x11, +0x01,0x11,0x11,0x0f,0x95,0x14,0x16,0x21,0x96,0x00,0x02,0x96,0x1f,0x1a,0x1c,0x1a,0x40,0x07,0x01,0x07,0x07,0x09,0x95,0x1a,0x10,0x00,0x1c,0xb8,0x01,0x03,0xb7,0x04,0x06,0x11,0x11,0x23,0x0c,0x83,0x17,0x2f,0xe1,0x12,0x39,0x2f,0xd6,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x12,0x39,0x10,0xd4,0xfd,0xd6,0xed,0x3f,0xed,0x32, +0x2f,0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x04,0x0e,0x23,0x20,0x65,0x08,0x06,0x93,0x7d,0x95,0xbb,0xbd,0x9f,0x86,0x76,0x76,0xa2,0xdd,0xfe,0xf5,0x01,0x1a,0xe0,0x4b,0x41,0x02, +0x77,0x59,0x28,0x2e,0x04,0x42,0x12,0x8e,0x54,0x2e,0x04,0x4e,0xdf,0xb9,0xb4,0xd0,0x59,0x9c,0x47,0x01,0x1f,0xe5,0xef,0x01,0x3d,0x14,0x57,0x7a,0x13,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x0b,0x00,0x17,0x00,0x43,0x40,0x0a,0x10,0x0d,0x01,0x91,0x40,0x04,0x05,0x00,0x04,0x91,0xb8,0x01,0x00,0x40,0x17,0x30, +0x11,0x91,0x00,0x12,0x0c,0x91,0x05,0x03,0x0f,0x0f,0x11,0x08,0x7d,0x15,0x15,0x19,0x0d,0x04,0x11,0x7e,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x21, +0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0xbc,0xa0,0xa0,0x01,0x8c,0x02,0xf6,0xfe,0x5b,0xfe,0x9f,0xd4,0x01,0x50,0xfe,0xb0,0xd6,0x01,0x1a,0x01,0x3a,0xfd,0xb6,0x02,0x81,0x9b,0x02,0x7e,0xfd,0x45,0xfe,0xb2,0xfe,0x6f,0x05,0x02,0xfe,0x1a,0x9b,0xfe,0x17,0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0xff,0xac,0x00,0x00,0x05,0x90, +0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x2e,0x40,0x18,0x08,0x08,0x0d,0x15,0x91,0x00,0x12,0x14,0x01,0x91,0x0d,0x03,0x05,0x7e,0x0a,0x00,0x10,0x7d,0x19,0x19,0x1d,0x15,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x21,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26, +0x35,0x34,0x36,0x33,0x21,0x20,0x11,0x10,0x00,0x21,0x03,0x11,0x33,0x20,0x00,0x11,0x10,0x21,0x01,0x0e,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x8a,0x02,0xf6,0xfe,0x5b,0xfe,0x9e,0xd3,0xd6,0x01,0x1a,0x01,0x39,0xfd,0xb7,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xfd,0x45,0xfe,0xb4,0xfe,0x6d,0x05,0x02,0xfb,0x96, +0x01,0x2e,0x01,0x15,0x02,0x27,0x00,0x02,0x00,0x5c,0x00,0x00,0x03,0xd7,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x2c,0x40,0x17,0x0e,0x91,0x08,0x08,0x0c,0x0d,0x91,0x00,0x12,0x09,0x91,0x0c,0x03,0x00,0x7e,0x08,0x0d,0x0d,0x15,0x0a,0x11,0x7d,0x04,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x24,0x33,0x33,0x11,0x21,0x35,0x21,0x03,0x11,0x23,0x20,0x11,0x10,0x21,0x03,0xd7,0xfe,0x5c,0xe5,0xf2,0x01,0x0a,0xe0,0xe9,0xfd,0xaa,0x02,0xfe,0xa8,0xe7,0xfe,0xc6,0x01,0x36,0xce,0xc2,0xc2,0xe6,0x01,0xc8,0x9a,0xfa,0xfa,0x02,0x0e,0xfe,0xf4,0xfe,0xfe,0x00,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x0e,0x05,0xec,0x00,0x12,0x00,0x1f,0x00,0x34,0x40,0x1c,0x0e,0x02,0x0b,0x1d,0x95,0x05,0x16,0x00,0x15,0x17,0x95,0x0b,0x10,0x0f,0x95,0x12,0x00,0x00,0x84,0x13,0x02,0x0e,0x0e,0x21,0x1a,0x83,0x10,0x08,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x21,0x23, +0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0e,0xa2,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xfd,0x7e,0x03,0x24,0xa2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01, +0x32,0xa6,0x01,0xee,0x8c,0xfb,0xe3,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x5c,0x04,0x18,0x00,0x1a,0x00,0x26,0x00,0x44,0x40,0x25,0x00,0x0d,0x1b,0x03,0x06,0x16,0x10,0x09,0x01,0x09,0x0b,0x95,0x06,0x1c,0x21,0x95,0x16,0x10,0x1b,0x00,0x24,0x0d,0x83,0x03,0x03,0x13,0x08,0x08,0x13,0x19, +0x83,0x1e,0x1e,0x28,0x24,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x10,0x05, +0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xdd,0x7b,0x56,0xd9,0xac,0xad,0x90,0x96,0xab,0xd9,0x58,0xc8,0xd3,0xb3,0x01,0x22,0xe4,0xdf,0x01,0x17,0xfe,0x00,0xc6,0x92,0xba,0x9c,0x9a,0xbc,0x81,0x48,0x53,0x7e,0x50,0x71,0x98,0x4c,0xac,0x6c,0x7f,0x34,0x5d,0x77,0x7e,0xf7,0x92,0xcf,0x01,0x11,0xfe,0xfc,0xc4,0xfe, +0xd9,0x8f,0x6f,0xca,0x73,0x96,0xb2,0xb3,0x95,0x6e,0xbe,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x03,0x52,0x05,0x9a,0x00,0x0b,0x00,0x32,0x40,0x1b,0x04,0x91,0x40,0x07,0x0b,0x00,0x07,0x91,0x2b,0x30,0x03,0x91,0x00,0x12,0x08,0x91,0x0b,0x03,0x00,0x7e,0x07,0x03,0x03,0x0d,0x05,0x09,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00, +0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfd,0x08,0x02,0x50,0xfd,0xfa,0x02,0x06,0xfd,0xd1,0x02,0xd7,0x98,0x01,0xe9,0x97,0x01,0xea,0x98,0x00,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x00,0x23,0x00,0x49,0x40,0x28,0x08,0x1b, +0x91,0x40,0x1a,0x0e,0x02,0x1a,0x91,0x09,0x30,0x20,0x23,0x01,0x23,0x21,0x91,0x02,0x13,0x11,0x13,0x91,0x0e,0x04,0x08,0x05,0x1b,0x1b,0x1e,0x10,0x00,0x00,0x25,0x05,0x16,0x7d,0x0b,0x1e,0x7d,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f, +0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x35,0x24,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0xf4,0xa6,0xcf,0xf5,0xfe,0xe6,0xa2,0x90,0xff,0x00,0x01,0x11,0xd9,0xb2,0x91,0x99,0xaf,0x8d,0xaa,0xcb,0xab,0x69, +0x6b,0xfe,0x5d,0xbf,0xa5,0xc8,0xa7,0x35,0x4d,0xdd,0xb8,0x85,0xc4,0x26,0x06,0x50,0xed,0xa7,0xdc,0x46,0xaa,0x58,0x7e,0x6b,0x70,0x92,0x97,0xfe,0xf1,0x7d,0x8d,0x5c,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x11,0x00,0x33,0x40,0x1b,0x05,0x91,0x40,0x02,0x10,0x12,0x02,0x91,0x09,0x30,0x0b,0x0d,0x91,0x08,0x01,0x91, +0x10,0x03,0x03,0x11,0x11,0x13,0x02,0x06,0x7e,0x0b,0x0f,0x2f,0xc6,0xe1,0x32,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x03,0x94,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0xfe,0xae,0x41,0x37,0x32, +0x3e,0xb2,0x02,0xd8,0x05,0x02,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x85,0x06,0x83,0x00,0x25,0x00,0x63,0x40,0x37,0x12,0x91,0x40,0x15,0x1e,0x0f,0x15,0x91,0x08,0x30,0x16,0x11,0x0f,0x91,0x18,0x13,0x00,0x20,0x07,0x1e,0x02,0x92,0x23,0x1e,0x1f,0x07,0x2f,0x07, +0x02,0x07,0x09,0x91,0x1e,0x04,0x1d,0x06,0x1b,0x00,0x20,0x7f,0x04,0x06,0x06,0x16,0x13,0x13,0x0c,0x16,0x7e,0x11,0x11,0x27,0x0c,0x7d,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xd6,0xe1,0xc6,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x5d,0x10,0xd4,0xfd,0x11,0x12,0x39,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x05,0x85,0x29,0x24,0x72,0x0f,0x08,0xbf,0xd2,0xf6,0xfe,0xc8,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc6,0x01,0xe4, +0xd8,0xfe,0xf6,0xfe,0xcd,0xfe,0x85,0x01,0xa5,0x01,0x43,0x79,0x76,0x03,0x86,0x67,0x30,0x30,0x05,0xe4,0x14,0xa8,0x48,0x54,0x06,0x6c,0xfe,0xb6,0xfe,0xf6,0xfe,0xf0,0xfe,0xc9,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x22,0x64,0x8f,0x13,0x00,0x00,0x02,0x00,0x12,0xfe,0x1e,0x04,0xe6,0x05,0x9a, +0x00,0x17,0x00,0x1f,0x00,0x16,0x40,0x0a,0x1c,0x91,0x07,0x1c,0x00,0x0f,0x03,0x00,0x21,0x0f,0x2f,0x10,0xc6,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x04,0xe6,0xfd,0xfe, +0x06,0x72,0x89,0x63,0x60,0x82,0x29,0x4d,0x08,0xfe,0x06,0xbb,0x01,0x8d,0x15,0x08,0x04,0x0d,0x14,0x01,0x95,0xfe,0x43,0x43,0x43,0x44,0x05,0x9a,0xfa,0xc8,0x0c,0xe4,0x6e,0x61,0x85,0x82,0x64,0x3d,0x75,0x9a,0x10,0x05,0x3a,0xfb,0xbc,0x3a,0x36,0x39,0x37,0x04,0x44,0xfa,0x3f,0x8d,0x44,0x58,0x58,0x44,0x00,0x01,0x00,0xa6,0xff,0xe8, +0x06,0x87,0x05,0xec,0x00,0x20,0x00,0x45,0x40,0x27,0x04,0x01,0x07,0x0c,0x95,0x17,0x16,0x01,0x15,0x11,0x0f,0x1d,0x95,0x40,0x07,0x10,0x02,0x00,0x0a,0x84,0x19,0x00,0x0f,0x19,0x84,0x09,0x30,0x12,0x83,0x11,0x14,0x84,0x0f,0x0f,0x22,0x04,0x00,0x84,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18, +0x3f,0x3f,0x1a,0xed,0x3f,0x3f,0x3f,0xed,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x10,0x03,0x33,0x12,0x11,0x14,0x02,0x23,0x20,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x4a,0xa4,0xa4,0x04,0x62,0xcb,0x01,0x50,0xf7,0x84,0x9e,0x90,0xb2,0x81,0xfe,0xcb,0xfe, +0x69,0x69,0x7c,0x6c,0x8c,0x05,0xec,0xfd,0x72,0xba,0xfe,0x5f,0xaa,0xfe,0xaa,0xc2,0xa4,0x01,0x19,0x01,0x0a,0xfe,0xf6,0xfe,0xee,0xe5,0xfe,0xe9,0x01,0xda,0x8a,0xaa,0x98,0xb5,0x91,0x00,0x00,0x01,0x00,0xb8,0xff,0xee,0x02,0x25,0x05,0x9a,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x09,0x91,0x02,0x16,0x05,0x03,0x00,0x00,0x0d,0x06,0x7e, +0x05,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23,0x22,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x25,0x3c,0x3b,0xf6,0xa8,0x68,0x30,0x2d,0x04,0x16,0x01,0x22,0x04,0x8a,0xfb,0x7a,0x8f,0x15,0x00,0x01,0x00,0x29,0x00,0x00,0x02,0x10,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x91, +0x40,0x07,0x08,0x03,0x07,0x91,0x14,0x30,0x03,0x12,0x08,0x03,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x7e,0x03,0x0c,0x0d,0x03,0x7e,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11, +0x33,0x02,0x10,0xa0,0xa8,0x9f,0x9f,0xa8,0xa0,0x02,0x8e,0xfd,0x72,0x02,0x8e,0x97,0x02,0x75,0xfd,0x8b,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0xb2,0x00,0x17,0x00,0x2e,0x40,0x18,0x0a,0x17,0x05,0x03,0x08,0x01,0x07,0x12,0x08,0x03,0x12,0x14,0x91,0x0f,0x04,0x17,0x06,0x12,0x00,0x19,0x09,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x10, +0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x33,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x01,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x01,0x3c,0x8d,0x94,0x5c,0x38,0x37,0x38,0x3e,0x50,0x76,0xfe,0xc4, +0x02,0x90,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x01,0xa4,0xbc,0x5a,0x1a,0x9c,0x1e,0x99,0xfe,0x65,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x15,0x00,0x31,0x40,0x1a,0x01,0x03,0x11,0x15,0x04,0x14,0x05,0x15,0x14,0x0f,0x0c,0x0e,0x95,0x09,0x01,0x15,0x04,0x14,0x00,0x17,0x0c,0x10,0x10,0x04,0x84,0x05,0x2f,0xe1, +0x32,0x10,0xc6,0x10,0xd6,0xc6,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0xb3,0x8b,0x47,0x2f,0x37,0x35,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe, +0x14,0x04,0xb2,0x99,0xb7,0x12,0x94,0x1b,0xcf,0xfd,0x83,0x01,0xd5,0xfe,0x12,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x01,0xdb,0x05,0xec,0x00,0x0b,0x00,0x3b,0x40,0x20,0x0a,0x01,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x14,0x30,0x03,0x15,0x08,0x00,0x0b,0x0a,0x06,0x07,0x40,0x0a,0x07,0x02,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30, +0x2b,0x01,0x10,0xe1,0x39,0x39,0x1a,0x18,0x10,0xcd,0x10,0xcd,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0xdb,0x91,0xa4,0x92,0x92,0xa4,0x91,0x02,0xc4,0xfd,0x3c,0x02,0xc4,0x8c,0x02,0x9c,0xfd,0x64,0x00,0x01,0xff,0xfe,0x00,0x00,0x03,0xdf, +0x05,0xee,0x00,0x16,0x00,0x7c,0x40,0x44,0x16,0x12,0x00,0x06,0x05,0x02,0x07,0x15,0x07,0x13,0x12,0x00,0x09,0x05,0x02,0x08,0x14,0x08,0x16,0x13,0x12,0x00,0x12,0x09,0x06,0x05,0x02,0x05,0x06,0x08,0x09,0x13,0x15,0x16,0x06,0x07,0x14,0x10,0x07,0x07,0x05,0x05,0x02,0x0b,0x00,0x04,0x15,0x0d,0x0b,0x95,0x10,0x00,0x14,0x07,0x08,0x15, +0x00,0x08,0x0d,0x0d,0x02,0x05,0x12,0x03,0x04,0x00,0x18,0x04,0x2f,0x10,0xc6,0x11,0x17,0x39,0x39,0x2f,0xc6,0x10,0xc6,0x11,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0x33,0x12,0x39,0x39,0x11,0x33,0x2f,0x10,0xc4,0x11,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0, +0x31,0x30,0x21,0x23,0x01,0x01,0x23,0x01,0x27,0x05,0x27,0x25,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x37,0x17,0x05,0x03,0xdf,0xb0,0xfe,0xe7,0xfe,0x9c,0xb4,0x01,0xcf,0x1b,0xfe,0xf2,0x3a,0x01,0x1f,0x35,0x66,0x3e,0x3c,0x3c,0x46,0x68,0x80,0x36,0xf4,0x3a,0xff,0x00,0x03,0x3c,0xfc,0xc4,0x03,0xf8,0x4c,0x84,0x71,0x8b, +0x9c,0x12,0x99,0x0f,0x69,0x85,0x77,0x71,0x7d,0x00,0x00,0x01,0x00,0xb8,0xff,0xe8,0x06,0x66,0x05,0x9a,0x00,0x1e,0x00,0x45,0x40,0x27,0x02,0x07,0x15,0x1e,0x04,0x0c,0x19,0x05,0x11,0x91,0x40,0x09,0x13,0x00,0x12,0x0c,0x03,0x01,0x1e,0x7e,0x1d,0x0e,0x15,0x0c,0x15,0x42,0x0d,0x7e,0x0c,0x07,0x16,0x7e,0x15,0x1f,0x20,0x15,0x7e,0x08, +0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x33,0x00,0x18,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xa4,0x04, +0x6c,0xd1,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0xa2,0xba,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x01,0xff,0x9a,0xfe,0x96,0x05,0x42,0x05,0x9a,0x00,0x1b,0x00,0x30,0x40,0x19,0x0d,0x0f,0x91,0x0a,0x04,0x16, +0x1b,0x03,0x13,0x01,0x12,0x13,0x03,0x13,0x01,0x07,0x1b,0x7e,0x1a,0x1a,0x1d,0x0d,0x07,0x7e,0x12,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x16,0x17,0x33, +0x26,0x35,0x11,0x33,0x05,0x42,0xd0,0xfd,0x1e,0x1c,0x12,0x06,0x08,0xfe,0xae,0x41,0x37,0x32,0x3e,0xb2,0xda,0x02,0xce,0x2d,0x0d,0x04,0x0a,0xaa,0x04,0x77,0x2b,0x2f,0x2e,0x97,0xfc,0x29,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x05,0x65,0xfb,0x9b,0x46,0x1a,0x3e,0x95,0x03,0xf2,0x00,0x00,0x01,0x00,0x83,0xfe,0x6c,0x03,0xf8,0x04,0x18, +0x00,0x15,0x00,0x34,0x40,0x1b,0x0f,0x09,0x12,0x01,0x09,0x15,0x0c,0x0f,0x04,0x95,0x12,0x10,0x00,0x83,0x01,0x01,0x17,0x09,0x10,0x0d,0x08,0x84,0x09,0x0d,0x83,0x0c,0x09,0x2f,0xd6,0xe1,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15, +0x11,0x23,0x11,0x34,0x27,0x33,0x16,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa6,0xec,0x7d,0x9f,0xa4,0x23,0xa8,0x1b,0x04,0x70,0xe4,0xa7,0xb3,0xfe,0x6c,0x03,0xd0,0x01,0x47,0xb1,0x86,0xfd,0xb4,0x02,0xb6,0xef,0x5b,0x47,0x67,0xc6,0xd6,0xcb,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x12,0x00,0x19, +0x00,0x38,0xb7,0x14,0x91,0x40,0x12,0x06,0x00,0x12,0x91,0xb8,0x01,0x00,0x40,0x14,0x30,0x17,0x91,0x00,0x13,0x0f,0x91,0x06,0x04,0x12,0x0c,0x14,0x09,0x7d,0x13,0x13,0x1b,0x14,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00, +0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x00,0x23,0x22,0x00,0x07,0x05,0x21,0x16,0x00,0x33,0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xc2,0x13,0xfe,0xfd,0xd8,0xd0,0xfe,0xee,0x16,0x03,0xe6,0xfc,0x1a,0x15,0x01,0x0c,0xcb,0xdc,0x01,0x0b,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01, +0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x03,0x30,0xf6,0x01,0x0c,0xfe,0xe8,0xea,0x9b,0xea,0xfe,0xec,0x01,0x0b,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x07,0x04,0x05,0xb2,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x91,0x09,0x13,0x00,0x12,0x02,0x06,0x17,0x03,0x19,0x04,0x91,0x13,0x15,0x19,0x91,0x0f,0x04,0x07, +0x7e,0x16,0x16,0x0c,0x01,0x7e,0x00,0x00,0x22,0x1c,0x7d,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23, +0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x07,0x04,0xa8,0x76,0x82,0x36,0x4f,0xf9,0xe8,0xfe,0xce,0xfe,0x92,0x01,0x83,0x01,0x37,0x70,0xbe,0xbe,0x6c,0xd8,0xbc,0xfd,0x34,0xca,0x5e,0xe4,0xfe,0xe2,0x01,0x17,0xe5,0xa0,0x04,0xf4,0x19,0x09,0xfb,0x7e,0x7a,0x01,0x90,0x01,0x44,0x01,0x4c,0x01,0xaa,0x22,0x22,0x44,0xfb,0x0a,0x04,0x3e,0x20, +0xfe,0xba,0xfe,0xf7,0xfe,0xf6,0xfe,0xbe,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0xac,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x3e,0x40,0x22,0x16,0x07,0x1f,0x95,0x09,0x16,0x00,0x15,0x02,0x06,0x17,0x03,0x19,0x04,0x95,0x13,0x15,0x19,0x95,0x0f,0x10,0x07,0x84,0x16,0x16,0x0c,0x00,0x84,0x01,0x01,0x22,0x1c,0x83,0x0c,0x2f,0xe1,0x12,0x39, +0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x33,0xd4,0xed,0x11,0x17,0x39,0x3f,0x3f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0xac,0xa4,0x64,0x5c,0x3e,0x3d,0xaf,0xb8, +0xec,0xfe,0xe6,0x01,0x28,0xec,0x54,0x98,0x98,0x54,0xb2,0xae,0xfd,0x81,0x7f,0x46,0x9e,0xc2,0xc5,0xa7,0x6e,0x03,0x62,0x18,0x08,0xfc,0xec,0x56,0x01,0x1b,0xf3,0xfa,0x01,0x28,0x21,0x22,0x43,0xfc,0x80,0x02,0xd8,0x1e,0xd7,0xbd,0xb8,0xd0,0x00,0x02,0xff,0xac,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x16,0x00,0x1d,0x00,0x3c,0x40,0x1f, +0x09,0x09,0x0f,0x02,0x00,0x91,0x18,0x18,0x0f,0x02,0x12,0x17,0x03,0x91,0x0f,0x03,0x13,0x7d,0x1b,0x1b,0x1f,0x02,0x09,0x09,0x07,0x7e,0x0c,0x18,0x01,0x7e,0x02,0x2f,0xe1,0x32,0xd4,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22, +0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0x01,0xb6,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc3,0xa1,0x01,0x88,0xe6,0xfd,0xfe,0xe6,0xef,0xbc,0xb0,0x01,0x65,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x02,0x5d,0x4d,0x37,0x33,0x38,0x42,0x84,0xae,0xe1,0xcb, +0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x01,0x30,0x01,0x1c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x54,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x3c,0x40,0x20,0x0f,0x01,0x18,0x12,0x03,0x1b,0x1e,0x95,0x18,0x16,0x24,0x95,0x12,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x02,0x15,0x83,0x21,0x21,0x28,0x1b,0x0e,0x02,0x84,0x03,0x2f,0xe1, +0x32,0x32,0x12,0x39,0x2f,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x3f,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01, +0x4e,0x04,0xa4,0xb2,0x8c,0x47,0x2f,0x37,0x35,0xa4,0x04,0x76,0xec,0xc5,0xdf,0xfa,0xd9,0xc9,0x6e,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0xfd,0x95,0x06,0x89,0x98,0xb8,0x12,0x94,0x1b,0xcf,0xfe,0xa4,0xcc,0xfe,0xef,0xe9,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7e,0xb2,0xe3,0xcc,0xab,0xc2,0xc6,0x00,0x02,0x00,0xbc,0xff,0x68, +0x04,0x62,0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x40,0x40,0x22,0x11,0x05,0x91,0x40,0x15,0x0a,0x07,0x15,0x91,0x08,0x30,0x00,0x07,0x12,0x14,0x91,0x0a,0x08,0x03,0x10,0x15,0x01,0x00,0x00,0x0e,0x7d,0x19,0x19,0x1d,0x15,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x00,0x3f,0xdd,0xed,0x3f, +0x2f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x05,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x15,0x21,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x04,0x62,0xc8,0xc5,0x5d,0xa1,0x73,0xa8,0xa8,0x01,0x04,0xcd,0xe7,0xfe,0xc1,0x57,0x47,0xfd,0xe9,0xde,0x89,0xa1,0xfe,0xde,0x98,0x01, +0xb6,0xce,0xfe,0x14,0x05,0x9a,0x98,0xcd,0xb0,0xfe,0xe0,0x4d,0x04,0x36,0x92,0x03,0x1e,0xfe,0x19,0x80,0x74,0xf3,0x00,0x01,0x00,0x62,0xff,0xe8,0x03,0xc7,0x05,0xb2,0x00,0x35,0x00,0x3e,0x40,0x23,0x0a,0x2d,0x14,0x23,0x04,0x05,0x30,0x1b,0x01,0x1b,0x19,0x91,0x1e,0x04,0x20,0x35,0x01,0x35,0x30,0x91,0x05,0x13,0x23,0xb1,0x14,0x1b, +0x14,0x1b,0x0a,0x35,0x35,0x37,0x2d,0xb1,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x5d,0x3f,0xed,0xcd,0x5d,0x12,0x17,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xc7,0x1c,0x5d,0x68,0x63,0x23,0x66,0xb8,0x8d,0x53,0x3d,0x68,0x8a,0x4d,0x4b,0x73,0x50,0x29,0x36,0x56,0x6d,0x38,0xc7,0x7f,0x62,0xd3,0x5d,0xb3,0x8c,0x56,0x37,0x60,0x82,0x4b,0x47,0x7b,0x5a,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x3a,0x13,0x1f,0x15,0x0b,0x29, +0x5c,0x93,0x6a,0x50,0x7c,0x66,0x54,0x26,0x25,0x3e,0x42,0x50,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x50,0x77,0x5e,0x4e,0x26,0x24,0x41,0x47,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0x00,0x01,0x00,0x56,0xff,0xe8,0x02,0xfd,0x04,0x18,0x00,0x2e,0x00,0x43,0xb7,0x0b,0x20,0x07,0x2a,0x04,0x02,0x1b,0x2e,0xb8, +0xff,0xc0,0x40,0x1b,0x0b,0x0e,0x48,0x2e,0x2e,0x2c,0x95,0x02,0x16,0x18,0x18,0x16,0x95,0x1b,0x10,0x11,0x83,0x20,0x20,0x18,0x00,0x00,0x30,0x18,0x2a,0x83,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35, +0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x33,0x32,0x37,0x02,0xfd,0x74,0x9e,0x4f,0x93,0x70,0x43,0x29,0x4c,0x6d,0x43,0x33,0x50,0x38,0x1d,0x1d,0x35,0x4a,0x2e,0x93,0x71,0x69,0x85,0x4b,0x8d,0x6e,0x42,0x23,0x45,0x67,0x44,0x31, +0x55,0x3f,0x25,0xd8,0xa2,0x85,0x25,0x3d,0x24,0x4a,0x70,0x4c,0x3e,0x5a,0x45,0x37,0x1a,0x14,0x22,0x2a,0x36,0x28,0x20,0x35,0x26,0x15,0x4a,0xa6,0x2e,0x26,0x4b,0x6f,0x48,0x3b,0x58,0x45,0x37,0x1b,0x13,0x23,0x2c,0x39,0x29,0x90,0x63,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x38,0x40,0x1b,0x03,0x09, +0x09,0x05,0x02,0x0a,0x91,0x01,0x12,0x04,0x08,0x91,0x05,0x03,0x08,0x04,0x0a,0x03,0x09,0x09,0x02,0x07,0x00,0x00,0x0d,0x04,0x02,0x2f,0xc6,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x33,0x32,0x11,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x12,0x39,0x19,0x2f,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21, +0x03,0xf0,0xfc,0x3d,0x01,0xd3,0xfe,0x58,0x03,0x5a,0xfd,0x9c,0x01,0x78,0xfe,0x5f,0x02,0xcb,0x4e,0x02,0x96,0x02,0x5c,0x5a,0x9a,0xfd,0xe8,0xfd,0xac,0x00,0x00,0x02,0xff,0x83,0xfe,0x1e,0x02,0x87,0x06,0x02,0x00,0x15,0x00,0x20,0x00,0x39,0x40,0x1f,0x15,0x13,0x95,0x02,0x1c,0x1f,0x95,0x40,0x07,0xc0,0x19,0x95,0x40,0x0d,0x01,0x15, +0x04,0x16,0x04,0x1c,0x84,0x0a,0x11,0x84,0x04,0x21,0x22,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x11,0x33,0x10,0xc4,0x00,0x3f,0x1a,0xed,0x1a,0xdc,0x1a,0xed,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x87,0x39,0x5c,0xfe,0xfc,0x39,0x43,0x65,0x8a,0x90,0x6c,0x80,0x91,0x91,0x38,0x2e,0xfe,0x67,0x71,0x2a,0x39,0x3e,0x31,0x35,0xfe,0x3e,0x20,0x01,0x34,0x04,0xe6,0x1c,0x87,0x67,0x68,0x90,0xab,0x95,0xfa,0xac,0xc4,0x21,0x05,0xf7,0x0d,0xa8,0x3c,0x2b,0x2c,0x3c,0x00,0x00,0x01,0x00,0x2b, +0xfe,0x96,0x02,0x81,0x05,0x2f,0x00,0x1e,0x00,0x3e,0x40,0x22,0x06,0x08,0x95,0x03,0x1e,0x1c,0x95,0x0b,0x16,0x18,0x15,0x0e,0x95,0x14,0x11,0x0f,0x0b,0x40,0x13,0x16,0x48,0x0b,0x84,0x1e,0x17,0x17,0x18,0x06,0x15,0x11,0x18,0x84,0x0f,0x0e,0x2f,0xcd,0xe1,0x39,0x39,0xc4,0x10,0xc1,0x2f,0xd4,0xe1,0x2b,0x00,0x3f,0xcd,0xed,0x39,0x39, +0x3f,0xfd,0xc6,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x99,0x7e,0x3c,0x34,0x34,0x3c,0x7e,0xfe,0xf3,0xb0,0xb0,0x4d,0x57,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x44,0x87, +0x9f,0x18,0x92,0x1f,0x9f,0x28,0x01,0x2c,0x02,0x60,0x8c,0xfa,0x18,0x1d,0xfe,0xd1,0x8c,0xfd,0xbd,0x67,0x58,0x22,0x00,0x01,0xff,0xcd,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x2d,0x40,0x18,0x03,0x12,0x0a,0x04,0x01,0x91,0x40,0x11,0x03,0x08,0x7e,0x0d,0x0d,0x02,0x00,0x02,0x7e,0x03,0x12,0x13,0x03,0x7e,0x08,0x30,0x2b,0x01, +0x10,0xe1,0x18,0xc4,0x10,0xc0,0x2f,0xe1,0x00,0x3f,0x1a,0xed,0x32,0xc4,0x3f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x21,0x04,0x0c,0xfe,0x62,0xa8,0x9b,0x5a,0x65,0x15,0x9d,0x17,0xc2,0xa2,0x02,0xdb,0x05,0x02,0xfa,0xfe,0x05,0x02,0x5c,0x4e,0x37,0x33,0x38,0x42,0x85,0xad, +0x00,0x01,0x00,0x2b,0xff,0xea,0x02,0x81,0x06,0x02,0x00,0x1d,0x00,0x32,0x40,0x1a,0x1d,0x1b,0x95,0x02,0x16,0x0f,0x11,0x95,0x0c,0x01,0x17,0x14,0x05,0x95,0x08,0x0f,0x1d,0x0f,0x16,0x16,0x14,0x08,0x17,0x84,0x06,0x05,0x2f,0xcd,0xf1,0x39,0x39,0xc1,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30, +0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0x98,0x83,0x4a,0x41,0x3d,0x40,0x85,0x01,0x02,0xfe,0xfe,0x45,0x52,0x3c,0x2f,0x0a,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xc0,0x93,0xaf,0x1c, +0x92,0x23,0xbf,0xb8,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x27,0xfe,0x96,0x04,0x0c,0x05,0x9a,0x00,0x0f,0x00,0x32,0x40,0x1a,0x06,0x04,0x91,0x09,0x01,0x0c,0x91,0x40,0x0e,0x03,0x06,0x06,0x02,0x00,0x0b,0x0d,0x0d,0x02,0x7e,0x0b,0x10,0x11,0x0b,0x7e,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x11,0x39,0x2f, +0x00,0x3f,0x1a,0xed,0x32,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x21,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xaa,0x46,0x34,0x3a,0x4e,0xfe,0xbc,0xfe,0x61,0x03,0xe5,0x05,0x02,0xfb,0x33,0xfe,0xf8,0x17,0x94,0x1a,0x01,0x95,0x04,0xd7,0x98,0x00,0x00,0x01,0x00,0x62,0xff,0xe8,0x05,0xa8, +0x05,0x9a,0x00,0x1b,0x00,0x42,0x40,0x24,0x09,0x91,0x17,0x13,0x04,0x0e,0x10,0x11,0x04,0x01,0x91,0x02,0x03,0x12,0x7d,0x0e,0x0e,0x0c,0x06,0x00,0x7e,0x04,0x04,0x0c,0x06,0x11,0x11,0x14,0x7d,0x0c,0x0c,0x1d,0x01,0x06,0x7d,0x1a,0x2f,0xe1,0x33,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x00, +0x3f,0xed,0x17,0x39,0x3f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x04,0x11,0x14,0x00,0x33,0x32,0x00,0x35,0x10,0x01,0x35,0x21,0x15,0x21,0x04,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x01,0xbe,0xfe,0xa4,0x02,0x06,0xfe,0xa8,0x01,0x15,0xdd,0xe0,0x01,0x18,0xfe,0xa6,0x02,0x06,0xfe,0xa6,0x01,0x5c,0xfe,0x8e,0xfe,0xd0,0xfe,0xcd, +0xfe,0x8f,0x05,0x06,0x94,0x94,0xfe,0xfe,0x86,0xf7,0xfe,0xe6,0x01,0x1c,0xf5,0x01,0x78,0x01,0x00,0x94,0x94,0xec,0xfe,0x6f,0xfe,0xca,0xfe,0x95,0x01,0x66,0x01,0x39,0x01,0x93,0x00,0x01,0x00,0xb8,0xff,0xe8,0x05,0x54,0x05,0xb2,0x00,0x16,0x00,0x2a,0x40,0x16,0x04,0x91,0x14,0x13,0x00,0x03,0x0b,0x09,0x91,0x0e,0x04,0x0b,0x0b,0x01, +0x11,0x7d,0x07,0x07,0x18,0x01,0x7e,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x00,0x11,0x10,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x20,0x11,0xb8,0xa8,0x01,0x58,0xd9,0x01,0x17,0xfe,0xf8,0x48,0x40,0x4d,0x57,0xba,0xde, +0xfe,0x81,0xfe,0xdb,0xfe,0x08,0x05,0x9a,0xfc,0xac,0xfe,0x39,0x01,0x91,0x01,0x25,0x01,0xe5,0x1c,0x9a,0x1a,0xfe,0xad,0xfe,0xe3,0xfe,0x99,0xfe,0x0d,0x02,0x56,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x04,0xd6,0x05,0xb2,0x00,0x15,0x00,0x2b,0x40,0x16,0x00,0x15,0x14,0x03,0x14,0x0c,0x11,0x7e,0x14,0x03,0x14,0x11,0x03,0x13,0x15,0x03, +0x13,0x12,0x0e,0x91,0x09,0x03,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc6,0x12,0x39,0x10,0xcd,0x32,0x31,0x30,0x13,0x01,0x16,0x17,0x33,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x01,0x11,0x23,0x11,0x01,0xc1,0x01,0x50,0x1b,0x0c,0x02,0x23,0xc7,0x46,0x8e,0x6b,0x39,0x3a,0x2f,0x3a,0x5a,0x54, +0xfe,0xd1,0xa8,0xfe,0x27,0x05,0x9a,0xfd,0x78,0x33,0x25,0x58,0x01,0x9a,0x91,0x75,0x18,0x9c,0x1c,0xaa,0xfd,0x9e,0xfd,0xf2,0x02,0x12,0x03,0x88,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x04,0x60,0x04,0x18,0x00,0x1c,0x00,0x2f,0x40,0x19,0x14,0x05,0x0f,0x0a,0x0c,0x95,0x07,0x1c,0x10,0x0f,0x00,0x02,0x95,0x1a,0x10,0x0a,0x05,0x0a,0x0f,0x14, +0x04,0x10,0x00,0x1e,0x10,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xfd,0xc6,0x2f,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x12,0x33,0x32,0x17,0x04,0x60,0x2c,0x2c,0x66,0x42,0xfe,0x9e,0x7d,0xe5, +0x42,0x29,0x33,0x2e,0x7c,0x3e,0x52,0xfe,0x70,0xb6,0x01,0x15,0x0a,0x0b,0x06,0x05,0x0f,0xc0,0x6d,0xd1,0x29,0x31,0x03,0x79,0x13,0xa8,0xfc,0x78,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x1c,0x32,0x1a,0x34,0x02,0x06,0x01,0x26,0x10,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x11,0x00,0x5a,0x40,0x2e, +0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x91,0x40,0x0d,0x10,0x08,0x0d,0x91,0x14,0x30,0x09,0x05,0x91,0x08,0x12,0x00,0x0e,0x91,0x10,0x03,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0x21,0x35,0x21,0x04,0x64,0xfe,0x71,0xfc,0xfe,0x9d,0xfe,0xae,0x03,0x34,0xfb,0xd1,0x01,0x99,0xe3,0x01,0x4a,0x01,0x41,0xfd,0x00, +0x04,0x02,0x05,0x72,0xfd,0xb3,0x97,0xfe,0x0a,0x98,0x2f,0x02,0x5f,0x97,0x01,0xdd,0x98,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x00,0x11,0x00,0x5a,0x40,0x2e,0x02,0x02,0x01,0x04,0x01,0x05,0x00,0x05,0x0b,0x0b,0x0a,0x0d,0x0a,0x09,0x0e,0x09,0x04,0x01,0x0a,0x95,0x40,0x0d,0x10,0x08,0x0d,0x95,0x14,0x30,0x09,0x05, +0x95,0x08,0x15,0x00,0x0e,0x95,0x10,0x0f,0x06,0x0e,0x00,0x00,0x13,0x05,0x0f,0x09,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x33,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x10,0x87,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x31,0x30,0x01,0x01,0x33,0x15,0x21,0x03, +0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x70,0xfe,0xec,0xbc,0xfe,0xe0,0xe6,0x02,0x58,0xfc,0xb7,0x01,0x27,0xa8,0x01,0x0c,0xd3,0xfd,0xdb,0x03,0x16,0x03,0xd1,0xfe,0x83,0x8c,0xfe,0xc4,0x8c,0x33,0x01,0x95,0x8c,0x01,0x20,0x8c,0x00,0x00,0x01,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x05,0x9a,0x00,0x18,0x00,0x44, +0x40,0x24,0x0b,0x0a,0x91,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x91,0x17,0x1c,0x10,0x0c,0x91,0x0e,0x03,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x7d,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x24,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x04,0x00,0x15,0x10,0x00,0x21,0x22,0x0a,0xe0,0xde,0xe9,0x01,0x22,0xfe,0xd1,0xfe,0xf6,0x5c,0x01,0xf5,0xfc,0xf4,0x04,0x02,0xfe,0x02,0x01,0x11,0x01,0x47,0xfe,0x6f,0xfe,0xd4,0xe8,0xfe,0x89,0xb5,0x88,0xef,0xbf,0xcc, +0xe2,0x4c,0x02,0xa4,0x98,0x4c,0xfd,0x52,0x17,0xfe,0xd0,0xef,0xff,0x00,0xfe,0xb4,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x04,0xd7,0x05,0x9a,0x00,0x18,0x00,0x40,0x40,0x22,0x0e,0x0f,0x91,0x40,0x08,0x0a,0x02,0x08,0x91,0x09,0x30,0x18,0x16,0x91,0x02,0x1c,0x09,0x0d,0x91,0x0a,0x03,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x18,0x1a,0x0d,0x09,0x13, +0x7d,0x05,0x2f,0xe1,0xc4,0x32,0x12,0x39,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x20,0x00,0x11,0x34,0x00,0x25,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x20,0x04,0x15,0x14,0x04,0x33,0x32,0x37,0x04,0xd7,0xd5,0xfc,0xfe,0xd5,0xfe,0x83,0x01, +0x4e,0x01,0x0a,0xfe,0x02,0x04,0x02,0xfc,0xf6,0x01,0xf4,0x5c,0xfe,0xf8,0xfe,0xce,0x01,0x22,0xe8,0xf0,0xcf,0xfe,0x89,0x6b,0x01,0x3e,0x01,0x02,0xeb,0x01,0x40,0x17,0x02,0xae,0x4c,0x98,0xfd,0x5c,0x4c,0xe5,0xc9,0xbf,0xef,0x7d,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0xaa,0x04,0x00,0x00,0x18,0x00,0x3e,0x40,0x21,0x0e,0x0f,0x96,0x40, +0x08,0x0a,0x02,0x08,0x96,0x09,0x30,0x18,0x16,0x95,0x02,0x1c,0x09,0x0d,0x95,0x0a,0x0f,0x08,0x0e,0x0e,0x13,0x0c,0x18,0x1a,0x0d,0x09,0x13,0x83,0x05,0x2f,0xe1,0xc4,0x32,0x10,0xd6,0xc6,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36, +0x37,0x01,0x35,0x21,0x15,0x21,0x01,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x03,0xaa,0x9a,0xca,0xf4,0xfe,0xcc,0xf7,0xcf,0xfe,0x76,0x03,0x2d,0xfd,0xc5,0x01,0x7a,0x54,0xc8,0xe4,0xda,0xaa,0xc4,0x9c,0xfe,0x72,0x51,0xf9,0xcc,0xb0,0xfb,0x1d,0x02,0x1f,0x33,0x8c,0xfd,0xec,0x33,0xab,0x96,0x8d,0xb3,0x62,0x00,0x00,0x01, +0x00,0x0a,0xfe,0x1e,0x03,0x08,0x04,0x00,0x00,0x22,0x00,0x58,0x40,0x30,0x19,0x0b,0x06,0x1f,0x04,0x03,0x10,0x0f,0x96,0x40,0x16,0x13,0x03,0x16,0x96,0x08,0x30,0x00,0x21,0x95,0x03,0x1c,0x15,0x11,0x95,0x13,0x0f,0x16,0x11,0x15,0x10,0x10,0x0b,0x06,0x15,0x15,0x19,0x00,0x00,0x19,0x84,0x0b,0x0b,0x24,0x12,0x1f,0x83,0x06,0x2f,0xe1, +0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x12,0x17,0x39,0x31,0x30,0x05,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06, +0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x02,0x9e,0x89,0xb9,0xa0,0xb2,0x01,0x38,0xa4,0x7e,0x9e,0x8e,0x52,0x01,0x1a,0xfe,0x0a,0x02,0xd8,0xfe,0xda,0x9e,0xae,0xa6,0xc4,0x93,0x59,0xb8,0xaa,0xfc,0x9e,0x48,0x7d,0x6f,0xc5,0x66,0x36,0x6d,0x59,0x5a,0x67,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xae,0x12,0xa2,0x81,0x7e,0xaf,0x44,0x32,0x45,0x35, +0x6c,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xc2,0x05,0xb2,0x00,0x1b,0x00,0x6e,0x40,0x38,0x1a,0x01,0x02,0x18,0x02,0x0a,0x07,0x06,0x0d,0x06,0x01,0x1a,0x07,0x99,0x0a,0x0a,0x02,0x10,0x18,0x0d,0x15,0x06,0x02,0x99,0x05,0x18,0x12,0x10,0x9a,0x15,0x07,0x08,0x08,0x12,0x07,0x1a,0x01,0x18,0x02,0x0a,0x07,0x0d,0x06,0x00,0x00,0x18, +0x04,0x04,0x18,0x8a,0x0d,0x0d,0x1d,0x12,0x02,0x06,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x12,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x21, +0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x33,0x03,0xc2,0xfe,0xde,0xfe,0x85,0x02,0x9b,0xfc,0xa0,0x01,0x7f,0xfd,0x01,0x84,0x69,0x52,0x90,0x81,0xbe,0xb2,0xa2,0xe5,0xc0,0xdb,0x9f,0x9f,0x02,0x2b,0xfe,0x69,0x94,0x92,0x01,0x99,0x93,0x77,0x9d, +0x55,0x78,0x88,0xa4,0xac,0x83,0xcf,0xb0,0xaf,0xc6,0x00,0x01,0x00,0x74,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x1d,0x00,0x42,0x40,0x24,0x0d,0x14,0x09,0x9a,0x40,0x16,0x10,0x1c,0x16,0x9a,0x08,0x30,0x01,0x03,0x95,0x1c,0x16,0x13,0x0e,0x99,0x10,0x06,0x11,0x11,0x19,0x89,0x06,0x06,0x1f,0x0e,0x13,0x14,0x03,0x0d,0x0f,0x00,0x2f,0xc6, +0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x23,0x13,0x23,0x35,0x21,0x15,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x99,0xb9,0xbe,0xb1,0x32, +0x4d,0x5f,0x07,0x45,0x9e,0x03,0x13,0xfe,0x25,0x33,0x41,0x2c,0xe7,0xfb,0xfe,0xf1,0xec,0xbd,0x23,0xae,0x5f,0xad,0x8d,0x8e,0x9d,0x05,0x07,0x02,0x3b,0x94,0x94,0xfe,0x5c,0x04,0xe6,0xca,0xd0,0xfe,0x00,0x01,0x00,0x48,0xff,0xe8,0x02,0xcd,0x04,0x00,0x00,0x1b,0x00,0x42,0x40,0x24,0x0b,0x12,0x09,0x95,0x40,0x14,0x0e,0x1a,0x14,0x95, +0x08,0x30,0x01,0x03,0x95,0x1a,0x16,0x11,0x0c,0x95,0x0e,0x0f,0x10,0x10,0x17,0x83,0x06,0x06,0x1d,0x0c,0x11,0x12,0x03,0x0b,0x0d,0x00,0x2f,0xc6,0xc4,0x17,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x22,0x07,0x13,0x23,0x35,0x21,0x15,0x21,0x07,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x5a,0x72,0x7a,0x64,0x7b,0x83,0x73,0x17,0xa6,0x3e,0x68,0x02,0x5c,0xfe,0xa2,0x28,0x32,0x14,0x9d,0xcc,0xd5,0xb2,0x9e,0x18,0xa6,0x4c,0x6c,0x57,0x54,0x65,0x08,0x01,0x8e,0x8c,0x8c,0xfd,0x02,0xa7,0x94,0x97,0xbf,0x00,0x00,0x01,0x00,0x1e, +0xff,0xe8,0x02,0xe4,0x05,0x2f,0x00,0x20,0x00,0x41,0x40,0x21,0x1c,0x05,0x1f,0x0f,0x01,0x03,0x95,0x1f,0x16,0x11,0x15,0x12,0x0c,0x95,0x0f,0x0f,0x14,0x14,0x15,0x1c,0x83,0x05,0x05,0x22,0x12,0x0f,0x15,0x84,0x0c,0x01,0x01,0x0d,0x0c,0x2f,0xcd,0x39,0x2f,0x10,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x39, +0x39,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x70,0x76,0x95,0xc3,0x38,0x7d,0x92,0x5b,0x7e,0x7e,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x66,0x89,0x6f,0xc9, +0xad,0x96,0x25,0xb0,0x63,0x90,0x2e,0x4b,0x3f,0x4c,0x9b,0x6d,0x66,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0x62,0x4b,0x5e,0x31,0x44,0x8c,0x5e,0x7f,0xa3,0x00,0x02,0x00,0xa6,0xfe,0x29,0x04,0x16,0x04,0x18,0x00,0x0c,0x00,0x15,0x00,0x2c,0x40,0x17,0x02,0x1b,0x05,0x07,0x0e,0x95,0x00,0x03,0x0f,0x14,0x95,0x07,0x10,0x0a,0x83,0x11,0x11,0x17, +0x0e,0x05,0x01,0x84,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x00,0x01,0x11,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x01,0x4a,0xa4,0xa4,0xac,0xc2,0x97,0xc7,0xfe,0x84,0xfe,0xb0,0xf2,0x01,0x32,0x70,0x5c,0x9e, +0x2d,0xfe,0x56,0x05,0xd7,0x81,0x99,0xc4,0x92,0xdf,0xfe,0x72,0x02,0x80,0xfd,0x9b,0x61,0x01,0x34,0xad,0x5d,0x7a,0x00,0x01,0x00,0xac,0xfe,0x1e,0x01,0x40,0x06,0x1e,0x00,0x03,0x00,0x0f,0xb6,0x03,0xfa,0x00,0x1c,0x00,0xca,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x40,0x94,0x94,0xfe,0x1e,0x08,0x00,0x00, +0x00,0x02,0x00,0xac,0xfe,0x1e,0x02,0x66,0x06,0x1e,0x00,0x03,0x00,0x07,0x00,0x25,0x40,0x12,0x02,0x01,0x06,0x05,0x1c,0x06,0xfa,0x00,0xca,0x01,0x01,0x09,0x04,0xca,0x00,0x05,0x01,0x05,0x2f,0x5d,0xe1,0x12,0x39,0x7c,0x2f,0xe1,0x00,0x18,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x02,0x66,0x93, +0x93,0xfe,0xda,0x94,0x94,0xfe,0x1e,0x08,0x00,0xf8,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0x72,0x06,0x1e,0x00,0x13,0x00,0x4f,0x40,0x2c,0x12,0x01,0x04,0x95,0x07,0x11,0x0e,0x0b,0x95,0x08,0x40,0x0c,0x03,0x08,0x07,0x08,0x3a,0x03,0x1c,0x0c,0xfa,0x10,0x09,0x00,0x05,0x08,0x0b,0x0e,0x11,0x04,0x02,0x00,0x03,0x05, +0x05,0x02,0xca,0x03,0x14,0x15,0x03,0xca,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc0,0x18,0x2f,0x10,0xc4,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x39,0x39,0x10,0xed,0x39,0x39,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03, +0x72,0xfe,0xaa,0x93,0xfe,0xaa,0x01,0x56,0xfe,0xaa,0x01,0x56,0x93,0x01,0x56,0xfe,0xaa,0x01,0x56,0x01,0x46,0xfc,0xd8,0x03,0x28,0x8b,0x01,0x17,0x8a,0x02,0xac,0xfd,0x54,0x8a,0xfe,0xe9,0xff,0xff,0x00,0xb4,0xff,0xee,0x01,0x92,0x05,0x9a,0x02,0x06,0x00,0x04,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x09,0xbc,0x07,0x62,0x00,0x26, +0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x3d,0x05,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x06,0x43,0x01,0x56,0x00,0x13,0x40,0x0b,0x03,0x05,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xef,0x06,0x0c,0x00,0x26,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x5d,0x05,0x7f, +0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0xf5,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x0e,0x1f,0x1f,0x18,0x19,0x25,0x03,0x1c,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x05,0x06,0x0c,0x00,0x26,0x00,0x47,0x00,0x00,0x00,0x27,0x00,0x5d,0x04,0x95,0x00,0x00,0x01,0x07,0x00,0xe0,0x05,0x0c,0x00,0x00, +0x00,0x13,0x40,0x0b,0x03,0x0e,0x2d,0x2d,0x26,0x27,0x25,0x03,0x2a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xff,0xe8,0x06,0x29,0x05,0x9a,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x2d,0x03,0xfe,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x02,0xed,0xb4,0x0c,0x12,0x02,0x05,0x25,0x01,0x2b,0x35,0xff,0xff, +0x00,0xbc,0xfe,0x1e,0x05,0x39,0x05,0xd9,0x00,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x00,0x4d,0x03,0xd3,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x01,0xf3,0xb4,0x18,0x0f,0x02,0x05,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x03,0x77,0x05,0xec,0x00,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x4d,0x02,0x11,0x00,0x00, +0xff,0xff,0x00,0xbc,0xff,0xe8,0x07,0xe4,0x05,0x9a,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x2d,0x05,0xb9,0x00,0x00,0x00,0x0e,0xb9,0x00,0x01,0x03,0xda,0xb4,0x1a,0x20,0x0a,0x13,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0xfe,0x1e,0x07,0x34,0x05,0xd9,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x4d,0x05,0xce,0x00,0x00, +0x00,0x10,0xb1,0x02,0x01,0xb8,0x03,0x20,0xb4,0x26,0x1d,0x0a,0x13,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xa6,0xfe,0x1e,0x05,0xed,0x05,0xd9,0x00,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x4d,0x04,0x87,0x00,0x00,0x00,0x10,0xb1,0x02,0x01,0xb8,0x02,0x88,0xb4,0x25,0x1c,0x0a,0x12,0x25,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16, +0x00,0x00,0x05,0x12,0x07,0x62,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x12,0x01,0x56,0x00,0x16,0xb9,0x00,0x02,0xff,0xfd,0x40,0x09,0x13,0x10,0x05,0x00,0x25,0x02,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x0c,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x00,0xe0, +0x7f,0x00,0x00,0x13,0x40,0x0b,0x02,0x18,0x23,0x20,0x08,0x14,0x25,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf7,0x00,0x00,0x02,0x29,0x07,0x62,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x91,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x05,0x26,0x00, +0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xdf,0x00,0x00,0x02,0x11,0x06,0x0c,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x79,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x07,0x04,0x02,0x03,0x25,0x01,0x06,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x62,0x02,0x26, +0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x85,0x01,0x56,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x0c,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xd9,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00, +0x1b,0x18,0x03,0x09,0x25,0x02,0x1a,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x62,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x41,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x11,0x0e,0x05,0x0d,0x25,0x01,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff, +0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x0c,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0a,0x15,0x12,0x08,0x11,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x9a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x51, +0x00,0x69,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x00,0x21,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x3a,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x60,0xe9,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07, +0x25,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x54,0x00,0x80,0x01,0x60,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x0a,0x21,0x0e,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05, +0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x05,0x54,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x10,0x25,0x12,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00, +0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x5a,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x05,0x53,0x00,0x80,0x01,0x60,0x00,0x1f,0x40,0x12,0x03,0x02,0x01,0x00,0x24,0x1e,0x05,0x0d,0x25,0x03,0x02,0x01,0x30,0x21,0x01,0x21,0x05,0x26,0x00,0x2b,0x71,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8, +0x03,0xe2,0x06,0xfa,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x61,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x07,0x28,0x22,0x08,0x11,0x25,0x03,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x08,0x42,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07, +0x06,0x62,0x00,0x6d,0x01,0x60,0x00,0x1e,0xb2,0x03,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0b,0x10,0x1b,0x05,0x0d,0x25,0x03,0x02,0x01,0x1e,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0xe2,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x06,0x62,0xee,0x00,0x00,0x1b,0x40,0x0f, +0x03,0x02,0x01,0x00,0x14,0x1f,0x08,0x11,0x25,0x03,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x19,0x00,0x48,0x40,0x21,0x06,0x40,0x0b,0x0e,0x48,0x06,0x06,0x04,0x13,0x95,0x40,0x01,0x09,0x0f,0x01,0x95,0x08,0x30,0x17,0x95, +0x0f,0x16,0x04,0x95,0x09,0x10,0x0c,0x83,0x01,0x13,0x13,0x1b,0x06,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x06,0x14,0x83,0x00,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0xc5,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x31,0x30,0x13,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14, +0x00,0x23,0x22,0x02,0x35,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x52,0x02,0xd3,0x05,0xae,0x9b,0xad,0x90,0x86,0xde,0xd9,0xf8,0xfe,0xf1,0xc8,0xcb,0xdb,0x02,0xd1,0xfd,0xd7,0x02,0x86,0x78,0x74,0xa2,0x02,0x29,0xab,0xba,0x72,0x9a,0x62,0xfe,0xe9,0xfd,0xf1,0xfe,0xd5,0x01,0x06,0xe5,0x35,0x8f,0x9d,0xa6,0xff,0xff,0x00,0x16,0x00,0x00, +0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0x33,0x01,0x60,0x00,0x1e,0xb2,0x04,0x03,0x02,0xb8,0xff,0xf6,0x40,0x0b,0x23,0x1d,0x05,0x00,0x25,0x04,0x03,0x02,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x3a,0x00,0x26,0x00,0x44, +0xf8,0x00,0x01,0x06,0x06,0x60,0xa3,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x14,0x33,0x2d,0x08,0x14,0x25,0x04,0x03,0x02,0x30,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x9a,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x05,0x52,0x00,0x90,0x01,0x65,0x00,0x17, +0x40,0x0d,0x03,0x02,0x00,0x12,0x13,0x05,0x00,0x25,0x03,0x02,0x14,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x35,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x06,0x63,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x20,0x22,0x23,0x08,0x14,0x25,0x03,0x02,0x24,0x11,0x26,0x00, +0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x06,0x8c,0x02,0x26,0x00,0x91,0x00,0x00,0x01,0x07,0x00,0xd9,0x03,0x5a,0x01,0x5d,0x00,0x16,0xb9,0x00,0x02,0x01,0x50,0x40,0x09,0x16,0x17,0x05,0x0f,0x25,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x06,0x4e, +0x05,0x2f,0x00,0x26,0x00,0xa0,0xf8,0x00,0x01,0x07,0x00,0xd9,0x02,0x1a,0x00,0x00,0x00,0x13,0x40,0x0b,0x03,0x06,0x38,0x39,0x11,0x23,0x25,0x03,0x37,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x7d,0x05,0xb2,0x00,0x21,0x00,0x61,0x40,0x37,0x01,0x20,0x18,0x92,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b, +0x03,0x1b,0x1b,0x17,0x1c,0x91,0x1e,0x1e,0x0a,0x02,0x17,0x15,0x91,0x04,0x13,0x1f,0x0d,0x2f,0x0d,0x02,0x0d,0x0f,0x91,0x0a,0x04,0x00,0x00,0x1f,0x1a,0x1d,0x1d,0x1c,0x12,0x0d,0x0d,0x01,0x18,0x1f,0x7e,0x1c,0x1c,0x23,0x12,0x7d,0x07,0x2f,0xe9,0x12,0x39,0x2f,0xf9,0x39,0x39,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xc6,0x10,0xc0,0x2f,0x00, +0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x15,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x05,0x7d,0x91,0xd8,0xfe,0xf8,0xfe,0xcd,0xfe, +0x85,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x1e,0xf5,0xa8,0x7b,0xfe,0xc8,0x01,0x38,0xfe,0xc6,0x01,0xe2,0x91,0x01,0x31,0xcf,0x7a,0x01,0x8c,0x01,0x46,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xf0,0xfe,0xc9,0x43,0x6f,0x8b,0x98,0x98,0xfe,0xd0,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0xb6, +0x04,0x18,0x00,0x22,0x00,0x2f,0x00,0x77,0x40,0x12,0x22,0x00,0x0f,0x0b,0x01,0x17,0x03,0x0b,0x95,0x40,0x0c,0x13,0x08,0x0c,0x95,0x08,0x30,0x06,0xb8,0xff,0xc0,0x40,0x2d,0x0b,0x0f,0x48,0x06,0x06,0x08,0x95,0x03,0x1c,0x1c,0x10,0x19,0x2d,0x95,0x13,0x1e,0x0f,0x27,0x95,0x19,0x10,0x21,0x01,0x1f,0x0d,0x0a,0x0f,0x06,0x22,0x22,0x1f, +0x0c,0x0c,0x16,0x1f,0x84,0x23,0x1d,0x0f,0x0f,0x31,0x2a,0x83,0x06,0x16,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x12,0x39,0x2f,0x10,0xc2,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x5f,0x5e,0x5d,0x39,0x39,0x31,0x30,0x05, +0x23,0x02,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x21,0x35,0x21,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xb6,0xdb,0x77,0xfe,0x90,0xbe,0x8e,0xad,0x9d,0xda,0x5d,0xfe,0xb4,0x01,0x83,0x0c, +0x04,0x75,0xeb,0xbd,0xeb,0x01,0x00,0xd5,0xcf,0x64,0x04,0xa4,0x0c,0xb2,0xfe,0xb6,0xa5,0x7b,0x97,0xad,0xa7,0x86,0x8a,0xad,0xd1,0xfe,0xef,0x48,0xa4,0x60,0x85,0x8b,0x3d,0x45,0x99,0xc5,0x01,0x0c,0xd8,0xf5,0x01,0x2f,0xa6,0x8e,0xfc,0x52,0x50,0x48,0x02,0x3e,0x6e,0x7a,0xae,0xd6,0xba,0x9d,0xc5,0xc2,0xff,0xff,0x00,0x5e,0xff,0xe8, +0x04,0xec,0x07,0x62,0x02,0x26,0x00,0x2a,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x5c,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x36,0x1d,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc2,0x00,0x00, +0x00,0x13,0x40,0x0b,0x02,0x09,0x29,0x26,0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x07,0x62,0x02,0x26,0x00,0x2e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xdd,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xad,0x40,0x09,0x14,0x11,0x08,0x00,0x25,0x01,0x13,0x05,0x26, +0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x10,0x0d,0x06,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x02,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x05,0xb2, +0x00,0x19,0x00,0x25,0x00,0x50,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x91,0x0e,0x00,0x13,0x1a,0x91,0x14,0x04,0x0e,0xb8,0x01,0x04,0xb5,0x00,0x00,0x02,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f,0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x7d,0x23,0x23,0x27,0x1d,0x7d,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, +0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc2,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x48,0x80,0x44, +0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xfe,0xe5,0xfe,0xac,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0xb9,0xfe,0xa7,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x14,0x7e,0x4d,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x11,0x01,0x8d,0x01,0x34,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd,0xfe,0xba,0xfe,0x6b,0x05,0x16, +0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x02,0x00,0x60,0xfe,0x70,0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x4c,0xb1,0x06,0x04,0xb8,0x01,0x05,0x40,0x0b,0x09,0x20,0x95,0x00,0x0e,0x16,0x1a,0x95,0x14,0x10,0x0e,0xb8,0x01,0x04,0xb3,0x00,0x06,0x06,0x02,0xb8,0x01,0x04,0x40,0x0f, +0x0c,0x0c,0x19,0x0f,0x19,0x0f,0x11,0x17,0x83,0x23,0x23,0x27,0x1d,0x83,0x11,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xd6,0xe1,0x00,0x3f,0xed,0x3f,0x33,0xed,0x2f,0xfd,0xc6,0x31,0x30,0x05,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x02,0x35,0x10,0x00, +0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xa2,0x81,0x43,0x1e,0x1a,0x1e,0x34,0x4c,0x5c,0x83,0xd0,0xf5,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe6,0xfe,0xf4,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0x80,0x4b,0x46,0x0d,0x6b,0x0d,0x50,0x46,0x6f,0x75,0x0e,0x01,0x1c,0xe0,0x01,0x02, +0x01,0x22,0xfe,0xe6,0xfa,0xde,0xfe,0xdf,0x03,0x89,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0xff,0xff,0x00,0x5e,0xfe,0x70,0x05,0xaa,0x06,0x8c,0x02,0x26,0x05,0x14,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0xd2,0x01,0x5d,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xfe,0x70,0x04,0x50,0x05,0x2f,0x02,0x26,0x05,0x15,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x26,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x0a,0x28,0x29,0x11,0x17,0x25,0x02,0x27,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0a,0xfe,0x1e,0x04,0x83,0x07,0x62,0x02,0x26,0x04,0xe1,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x8b,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xc4,0x40,0x09,0x1c,0x19,0x01,0x14,0x25,0x01,0x1b,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x06,0x0c,0x00,0x26,0x05,0x97,0x00,0x00,0x01,0x06,0x00,0xe0,0xf8,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0xd5,0x40,0x09,0x1c,0x19,0x01, +0x14,0x25,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x3a,0xfe,0x1e,0x02,0x10,0x06,0x0c,0x02,0x26,0x06,0xac,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x78,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0xb5,0x10,0x0d,0x06,0x0c,0x25,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00, +0x09,0xbc,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x3d,0x05,0x58,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x9d,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x08,0xf0,0x05,0x9a,0x00,0x26,0x00,0x27,0x00,0x00,0x01,0x07,0x00,0x5d,0x05,0x80,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04, +0x4b,0xb4,0x15,0x19,0x01,0x04,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x08,0x06,0x05,0xec,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0x5d,0x04,0x96,0x00,0x00,0x00,0x0e,0xb9,0x00,0x02,0x04,0x26,0xb4,0x23,0x27,0x08,0x10,0x25,0x01,0x2b,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x07,0x68,0x02,0x26,0x00,0x2a, +0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x27,0x01,0x5e,0x00,0x13,0x40,0x0b,0x01,0xcb,0x1c,0x1a,0x05,0x19,0x25,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x06,0x0a,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x56,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x67,0x28,0x26, +0x10,0x18,0x25,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x79,0x05,0x9a,0x00,0x17,0x00,0x43,0x40,0x25,0x08,0x91,0x40,0x0d,0x0b,0x0a,0x0d,0x91,0x2b,0x30,0x13,0x91,0x03,0x13,0x0a,0x12,0x17,0x0f,0x10,0x0b,0x03,0x0e,0x0d,0x09,0x10,0x7e,0x07,0x07,0x0a,0x17,0x7e,0x16,0x16,0x19, +0x09,0x7e,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x07,0x79,0xe8,0xcd,0xc9,0xda,0xfd,0x43,0xa8, +0xa8,0x02,0xbd,0xa7,0x01,0x05,0x01,0x04,0xa8,0x01,0xac,0xd6,0xee,0xe5,0xd3,0xee,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x14,0xfe,0xd1,0x01,0x29,0x02,0x58,0x00,0x02,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x0c,0x00,0x15,0x00,0x2e,0x40,0x18,0x05,0x00,0x07,0x02,0x1b,0x0e,0x91,0x00,0x03,0x03,0x14,0x91,0x07,0x04, +0x0a,0x7d,0x11,0x11,0x17,0x0e,0x05,0x01,0x7e,0x02,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x2f,0xed,0x3f,0x11,0x12,0x39,0x31,0x30,0x05,0x11,0x23,0x11,0x33,0x15,0x36,0x21,0x32,0x12,0x15,0x10,0x00,0x01,0x11,0x24,0x00,0x11,0x34,0x26,0x23,0x22,0x01,0x64,0xa8,0xa8,0xeb,0x01,0x1d,0xc2,0xf9,0xfe,0x03,0xfe, +0x3a,0x01,0x61,0x01,0xb2,0xa3,0x88,0xea,0x3a,0xfe,0x63,0x07,0x71,0xe2,0xfa,0xfe,0xf2,0xc7,0xfe,0xbf,0xfd,0xdb,0x03,0x7f,0xfc,0x78,0x91,0x01,0xc9,0x01,0x03,0x8e,0xbd,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x07,0x68,0x02,0x26,0x00,0x31,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x7d,0x01,0x5e,0x00,0x16,0xb9,0x00,0x01,0xff, +0x93,0x40,0x09,0x16,0x14,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x0a,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0xcb,0x00,0x00,0x00,0x16,0xb9,0x00,0x01,0xff,0x90,0x40,0x09,0x15,0x13,0x0a,0x12,0x25,0x01,0x14,0x11,0x26,0x00,0x2b,0x35,0x01, +0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x5e,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x1d,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8a,0x40,0x0a,0x16,0x10,0x05,0x00,0x25,0x03,0x02,0x15,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x06,0x00, +0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x04,0x6e,0x01,0xa1,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xbc,0x40,0x0a,0x26,0x20,0x08,0x14,0x25,0x03,0x02,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xf0,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x00, +0x01,0x5c,0x00,0x13,0x40,0x0b,0x02,0x00,0x17,0x10,0x05,0x00,0x25,0x02,0x17,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0xbc,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x06,0x04,0x2a,0xae,0x28,0x00,0x13,0x40,0x0b,0x02,0x20,0x26,0x20,0x08,0x14,0x25,0x02,0x26,0x11,0x26,0x00,0x2b,0x35, +0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x9e,0x00,0x00,0x03,0xb4,0x07,0x5e,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x8a,0x40,0x0a,0x12,0x0c,0x02,0x0b,0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd, +0x06,0x00,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xbf,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xa2,0x40,0x0a,0x20,0x1a,0x0c,0x12,0x25,0x03,0x02,0x1f,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x18,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x2a, +0xff,0xd3,0x01,0x84,0x00,0x16,0xb9,0x00,0x01,0xff,0xf3,0x40,0x09,0x12,0x0c,0x02,0x0b,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbc,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x06,0x04,0x2a,0xc0,0x28,0x00,0x16,0xb9,0x00,0x02,0xff,0xfa,0x40,0x09,0x20,0x1a,0x0c,0x12,0x25, +0x02,0x20,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xce,0x07,0x5e,0x02,0x26,0x00,0x2c,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff, +0xff,0x6e,0x00,0x00,0x01,0xb6,0x06,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0x91,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x0a,0x04,0x02,0x03,0x25,0x02,0x01,0x09,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0x28,0x07,0x18,0x02,0x26,0x00,0x2c, +0x00,0x00,0x01,0x07,0x04,0x2a,0xfe,0xb8,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x0a,0x04,0x02,0x03,0x25,0x01,0x0a,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xe6,0x00,0x00,0x02,0x0a,0x05,0xbe,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x07,0x04,0x70,0x00,0xf8,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x0b,0x04, +0x02,0x03,0x25,0x01,0x0b,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x5e,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x91,0x01,0x5e,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8e,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x00,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xe3,0x00,0x00,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0x8c,0x40,0x0a,0x1e,0x18,0x03,0x09,0x25,0x03,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x18, +0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0xac,0x01,0x84,0x00,0x13,0x40,0x0b,0x02,0x00,0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xbc,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x04,0x2a,0x00,0x28,0x00,0x13,0x40,0x0b,0x02,0x00, +0x1e,0x18,0x03,0x09,0x25,0x02,0x1e,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x04,0xc0,0x07,0x5e,0x00,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc3,0x01,0x5e,0x00,0x0a,0xb4,0x03,0x02,0x2d,0x05,0x26,0x00,0x2b,0x35,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0xbc,0x06,0x00,0x02,0x26, +0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0x27,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x77,0x40,0x0a,0x17,0x11,0x08,0x10,0x25,0x02,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x07,0x18,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0xfe,0x01,0x84, +0x00,0x08,0xb3,0x02,0x2e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0x00,0x00,0x02,0xca,0x05,0xbc,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x04,0x2a,0xff,0x5a,0x00,0x28,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x11,0x08,0x10,0x25,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5, +0x07,0x5e,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x6e,0x02,0x54,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x96,0x40,0x0a,0x14,0x0e,0x05,0x0d,0x25,0x02,0x01,0x13,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x06,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x04,0x6e, +0x01,0xd1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x99,0x40,0x0a,0x18,0x12,0x08,0x11,0x25,0x02,0x01,0x17,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x07,0x18,0x02,0x26,0x00,0x38,0x00,0x00,0x01,0x07,0x04,0x2a,0x00,0x68,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x14,0x0e, +0x05,0x0d,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x90,0xff,0xe8,0x03,0xe2,0x05,0xbc,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x06,0x04,0x2a,0xeb,0x28,0x00,0x13,0x40,0x0b,0x01,0x0a,0x18,0x12,0x08,0x11,0x25,0x01,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0x10,0xfe,0x21, +0x03,0xcb,0x05,0xb2,0x00,0x24,0x00,0x53,0x40,0x2d,0x1d,0x0c,0x0f,0x09,0x01,0x1f,0x03,0x09,0x0b,0x91,0x40,0x0c,0x17,0x23,0x0c,0x91,0x08,0x30,0x01,0x03,0x91,0x23,0x1b,0x14,0x12,0x91,0x17,0x04,0x1d,0x1a,0x0b,0x0b,0x06,0x01,0x0f,0x7d,0x1a,0x1a,0x20,0x7d,0x06,0x06,0x26,0x14,0x01,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1, +0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x5f,0x5e,0x5d,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x20,0x00,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x10,0x00,0x21,0x22, +0x10,0x4c,0x66,0x01,0x00,0x01,0x58,0xe4,0xb7,0x5a,0x73,0x71,0x01,0xae,0xc2,0xa7,0xac,0xa2,0x9a,0xbe,0xf6,0x01,0x15,0xfe,0xd7,0xad,0xca,0xfe,0x47,0xfe,0xb4,0x67,0xfe,0x2f,0x9c,0x13,0x01,0x11,0xcf,0xa0,0xca,0x20,0x97,0x19,0x5f,0x01,0x09,0x83,0x9d,0x5a,0xa4,0x4e,0xec,0xc2,0xfe,0xe7,0x72,0x09,0x29,0xf9,0xb0,0xfe,0xf8,0xfe, +0x8b,0x00,0x00,0x01,0x00,0x1e,0xfe,0x21,0x03,0x3e,0x04,0x18,0x00,0x25,0x00,0x51,0x40,0x2d,0x1e,0x0c,0x09,0x40,0x1f,0x22,0x48,0x09,0x0b,0x95,0x40,0x0c,0x18,0x24,0x0c,0x95,0x08,0x30,0x01,0x03,0x95,0x24,0x1c,0x15,0x13,0x95,0x18,0x10,0x1e,0x1b,0x0b,0x0b,0x06,0x01,0x10,0x84,0x1b,0x1b,0x21,0x83,0x06,0x06,0x27,0x01,0x15,0x2f, +0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xfd,0xc6,0x2b,0x12,0x39,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, +0x16,0x16,0x15,0x14,0x00,0x21,0x22,0x2f,0x42,0x55,0xcb,0x01,0x05,0xa4,0x8c,0x58,0x5e,0x60,0x9e,0xb0,0x93,0x89,0x96,0x8e,0x86,0xb0,0xc7,0xe7,0xe8,0x84,0xa0,0xfe,0xa4,0xfe,0xeb,0x61,0xfe,0x2d,0x91,0x12,0xc8,0x9e,0x7d,0x9a,0x1d,0x8c,0x12,0x1e,0x92,0x62,0x62,0x70,0x52,0x97,0x45,0xbd,0x97,0xc7,0x6d,0x07,0x1e,0xc7,0x8c,0xd9, +0xfe,0xe2,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x07,0x62,0x02,0x26,0x00,0x2b,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x58,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x06,0x0b,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x07,0x62,0x02,0x26,0x00,0x4b,0x00,0x00, +0x01,0x07,0x00,0xe0,0x00,0x81,0x01,0x56,0x00,0x16,0xb9,0x00,0x01,0xff,0xb1,0x40,0x09,0x15,0x12,0x0a,0x11,0x25,0x01,0x14,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0x27,0x05,0xb2,0x00,0x12,0x00,0x2a,0x40,0x16,0x0c,0x09,0x0f,0x01,0x1b,0x09,0x12,0x0a,0x03,0x04,0x91,0x0f,0x04,0x00,0x7e,0x01, +0x01,0x14,0x0c,0x08,0x7e,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x12,0x21,0x32,0x12,0x11,0x05,0x27,0xa8,0xfe,0x9f,0xc0,0xfa,0xa8,0xa8,0x06,0x9e,0x01,0x3e,0xe9,0xf8,0xfe,0x29,0x05,0x0c,0x01,0xe5, +0xfe,0xe6,0xd5,0xfc,0xd5,0x05,0x9a,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x02,0x00,0x3e,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x1e,0x00,0x2a,0x00,0x62,0x40,0x36,0x14,0x00,0x1f,0x91,0x40,0x0a,0x04,0x1a,0x0a,0x91,0x08,0x30,0x25,0x91,0x1a,0x13,0x10,0x04,0x03,0x14,0x00,0x12,0x02,0x10,0x7d,0x0f,0x0f,0x0d,0x7e,0x12, +0x12,0x17,0x28,0x04,0x7d,0x8f,0x05,0x01,0x05,0x05,0x07,0x7e,0x02,0x02,0x22,0x1d,0x17,0x7d,0x28,0x28,0x2c,0x22,0x7d,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x5d,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39, +0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x56,0xcd,0x37,0xac,0x3b,0xa4,0x89,0x8a,0xa6,0x3e,0xae,0x37,0xd1,0x86,0x97,0xfe,0xc8,0xef, +0xf2,0xfe,0xd6,0x02,0x20,0x9e,0xd2,0xd8,0x98,0x9f,0xd4,0xda,0x03,0x60,0x6a,0xde,0x78,0x7a,0x70,0x7a,0x74,0x96,0x96,0x74,0x76,0x74,0x7c,0x76,0xce,0x7a,0x34,0xd6,0x8b,0xd7,0xfe,0xf4,0x01,0x01,0xd9,0x01,0x1e,0x2a,0xaf,0x95,0x95,0xb2,0xb1,0x96,0x95,0xaf,0x00,0x02,0x00,0x48,0xff,0xe8,0x04,0x42,0x05,0xec,0x00,0x1e,0x00,0x2a, +0x00,0x54,0x40,0x2f,0x15,0x00,0x1f,0x95,0x40,0x0b,0x05,0x1a,0x0b,0x95,0x08,0x30,0x25,0x95,0x1a,0x16,0x11,0x05,0x00,0x11,0x84,0x10,0x10,0x01,0x10,0x10,0x0e,0x84,0x13,0x13,0x17,0x83,0x28,0x28,0x2c,0x1d,0x05,0x84,0x06,0x06,0x08,0x84,0x03,0x03,0x22,0x83,0x1d,0x2f,0xe1,0x39,0x2f,0xf1,0xc2,0x2f,0xe1,0x11,0x12,0x39,0x2f,0xe1, +0x39,0x2f,0xf1,0xc2,0x2f,0x71,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x04,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x01,0x52,0x5f,0x6e,0x2b,0xa0,0x27,0x98,0x85,0x85,0x95,0x26,0x9f,0x2b,0xcc,0x01,0x0a,0xfe,0xd7,0xdb,0xdf,0xfe,0xe9,0x01,0xfe,0x92,0xc4,0xc8,0x8c,0x91,0xc5,0xc8,0x03,0x74,0x30,0xc6,0x7c,0x80,0x86,0x78,0x84,0x8e,0xae,0xaf,0x8d,0x84,0x78,0x86,0x80,0xf5,0x7d,0x7e,0xfe,0xdb,0xd7,0xfe,0xee,0x01,0x0b,0xda,0x01,0x26,0x36, +0xbd,0x9d,0x9c,0xc1,0xc0,0x9d,0x99,0xc1,0x00,0x01,0x00,0x21,0xff,0x0c,0x04,0x7b,0x05,0x9a,0x00,0x11,0x00,0x30,0x40,0x18,0x01,0x07,0x0d,0x91,0x06,0x12,0x0c,0x08,0x91,0x0a,0x03,0x08,0x0c,0x10,0x01,0x01,0x03,0x7e,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39, +0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x04,0x5a,0xa4,0x27,0x91,0xfc,0xd5,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x3c,0x01,0x23,0xf4,0x46,0x3c,0x72,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0xfc,0x47,0x00,0x01,0x00,0x21,0xff,0x1e,0x03,0x9e, +0x04,0x00,0x00,0x11,0x00,0x33,0x40,0x1b,0x01,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x08,0x0c,0x10,0x01,0xa0,0x03,0xb0,0x03,0x02,0x03,0x10,0x10,0x13,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xdd,0x5d,0xc6,0x10,0xc4,0x32,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0x31,0x30,0x05,0x23,0x36,0x35,0x34,0x23,0x21, +0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x03,0x7f,0x95,0x22,0x85,0xfd,0x9a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x80,0x01,0x0c,0xe2,0x40,0x38,0x6a,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xe8,0x41,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xea,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xdb, +0x01,0xc7,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x13,0x19,0x05,0x00,0x25,0x02,0x10,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0x7b,0x05,0x85,0x00,0x26,0x00,0x44,0xf8,0x00,0x01,0x07,0x00,0xdb,0x01,0x38,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x20,0x23,0x29,0x08,0x14,0x25,0x02,0x20,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xa3,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x05,0x51,0x00,0xb0,0x01,0x69,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x03,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, +0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x3a,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x60,0x00,0x00,0x00,0x1b,0x40,0x0f,0x04,0x03,0x02,0x00,0x2b,0x25,0x03,0x09,0x25,0x04,0x03,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0xb7,0x02,0x26,0x00,0x32, +0x00,0x00,0x01,0x07,0x05,0x55,0x00,0xaa,0x01,0x62,0x00,0x17,0x40,0x0d,0x03,0x02,0x09,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x55,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x64,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02, +0x0b,0x22,0x18,0x03,0x09,0x25,0x03,0x02,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xea,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x36,0x01,0x65,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x85,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x8a,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x1b,0x21,0x03,0x09,0x25,0x02,0x18,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x07,0x9a,0x02,0x26,0x00,0x32,0x00,0x00, +0x01,0x07,0x05,0x52,0x00,0xfe,0x01,0x65,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a,0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x35,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x06,0x06,0x63,0x52,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x1a, +0x1b,0x03,0x09,0x25,0x03,0x02,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x06,0x8c,0x02,0x26,0x00,0x3c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xfb,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x10,0x11,0x05,0x00,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xb4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32, +0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x10,0x00,0x01,0x00,0x01,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x08,0x04,0xc2, +0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x25,0xb2,0x02,0xe2,0x01,0xb8,0xff,0xc0,0x40,0x0e,0x09,0x0c,0x48,0x01,0x0a,0xc1,0x04,0x01,0x01,0x0d,0x00,0x0d,0xc0,0x07,0x2f,0xe1,0xc4,0x10,0xc0,0x2f,0x00,0x2f,0xfd,0xde,0x2b,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, +0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x37,0xb4,0x05,0x00,0x03,0x80,0x01,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0c,0x48,0x01,0x07,0x0d,0x19,0xc1,0x13, +0x00,0x03,0x00,0x03,0x16,0x10,0xc0,0x0a,0x16,0xc0,0x0a,0x1c,0x2f,0xc6,0xe1,0x10,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2, +0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x35,0xb2,0x00,0x80,0x01,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x01,0x04,0x0a,0x16,0xc1,0x40,0x10,0x00,0x80,0x02,0x02,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x07,0x19,0x2f,0xc6,0xe1,0x10,0xe1,0x12,0x39,0x2f,0x1a,0xcd,0x00,0x2f,0x1a,0xfd,0x39,0x39,0xd6,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x01,0x23, +0x13,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x77,0xfe,0xf9,0x7e,0xdf,0x31,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xe2,0xfe,0xb8,0x01,0x48,0xfd,0xe0,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a, +0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x17,0x14,0x15,0x14,0x15,0x0a,0x13,0xc4,0x00,0x09,0xc4,0x0a,0x17,0xe2,0x14,0x40,0x0d,0x12,0x48,0x14,0x13,0x07,0xda,0x0d,0xb8,0xff,0xc0,0xb7,0x09,0x0c,0x48,0x0d,0x11,0xda,0x09,0x03,0x00,0x2f,0xc6, +0xfd,0xdc,0x2b,0xed,0xd6,0xd6,0x2b,0xed,0x01,0x2f,0xe1,0xd4,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21,0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04, +0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x02,0x00,0x90,0xff,0xe8,0x03,0xb8,0x04,0x18,0x00,0x15,0x00,0x20,0x00,0x46,0xb9,0x00,0x04,0xff,0xc0,0x40,0x23,0x09,0x0c,0x48,0x04,0x04,0x02,0x0d,0x10,0x16,0x96,0x00,0x00,0x1d,0x02,0x95,0x08,0x16,0x0b,0x0f,0x1d,0x95,0x10,0x10,0x04,0x04, +0x13,0x83,0x1a,0x1a,0x22,0x16,0x0c,0x00,0x84,0x0b,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x11,0x33,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x25,0x37,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x31,0xd5,0xba,0x94,0x37,0xcb,0x5a,0xfe,0x98,0xa3,0x05,0x6a,0xd0,0x99,0xad,0xfe,0xae,0xfe,0xcb,0xfa,0x6e,0x77,0x6a,0x5a,0x7c,0x9f,0x01,0x77,0xfe,0xfb,0x7e,0xa8,0x27,0x39,0x01,0x7e,0x02,0x9a,0xa0,0xb8,0xa2,0x86,0xfe,0xe1,0x2f,0x58,0x22,0x0f,0x51,0x68,0x4c,0x5e,0xad,0x81,0x00,0x02, +0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x18,0x02,0x1b,0x95,0x05,0x16,0x01,0x15,0x0e,0x15,0x95,0x0b,0x10,0x0f,0x0f,0x11,0x0d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0x40,0x13,0x0c,0x06,0x4d,0x01,0x01,0x1f,0x18,0x08,0x0c,0x06,0x4d,0x18,0x83,0x08,0x0e,0x0c,0x06,0x4d,0x08, +0x2f,0x2b,0xe9,0x2b,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x33,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5, +0xd3,0x60,0x04,0xa4,0xa4,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfd,0xcf,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x54,0x04,0x18,0x00,0x10,0x00,0x1d,0x00,0x49,0x40,0x16,0x03,0x15,0x01,0x15,0x95,0x0f,0x16,0x07,0x1b,0x95,0x09,0x10, +0x04,0x0f,0x0c,0x06,0x0c,0x06,0x4d,0x0c,0x83,0x18,0xb8,0xff,0xec,0x40,0x15,0x0c,0x06,0x4d,0x18,0x18,0x1f,0x06,0x02,0x12,0x06,0x0c,0x06,0x4d,0x12,0x84,0x03,0x02,0x0c,0x06,0x4d,0x03,0x2f,0x2b,0xe9,0x2b,0x32,0x32,0x12,0x39,0x2f,0x2b,0xe9,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x11, +0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x4e,0x04,0xa4,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0x6c,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0x94,0x94,0x04,0x00,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f, +0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x56,0x06,0x02,0x00,0x1a,0x00,0x27,0x00,0x38,0x40,0x1e,0x10,0x01,0x13,0x1f,0x95,0x19,0x16,0x03,0x15,0x25,0x95,0x13,0x10,0x0a,0x0c,0x95,0x07,0x01,0x0a,0x0a,0x16,0x83,0x22,0x22,0x29,0x10,0x02,0x1c,0x83,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f, +0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x23,0x15,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0x50,0x04,0xa6,0xfd,0xdc,0x8a,0x7e,0x84,0x88, +0x87,0xa8,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xca,0x6d,0xa5,0x7f,0x95,0xab,0x9f,0x88,0x8f,0xae,0x94,0x94,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x93,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x02,0x49,0x8f,0x7f,0xb1,0xe5,0xca,0xaa,0xc3,0xc7,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x04,0x18,0x00,0x15, +0x00,0x26,0x40,0x14,0x30,0x01,0x01,0x01,0x03,0x95,0x14,0x16,0x0b,0x09,0x95,0x0e,0x10,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5c,0x78, +0x84,0x99,0xc1,0xbd,0x9f,0x83,0x79,0x78,0x9e,0xdb,0x01,0x0f,0xfe,0xe7,0xed,0x8c,0x21,0xa5,0x54,0xdc,0xb8,0xb4,0xd4,0x54,0x9b,0x43,0xfe,0xe3,0xe5,0xfe,0xfe,0xd0,0x00,0x02,0x00,0x60,0xff,0x70,0x03,0xa0,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x57,0x40,0x1e,0x14,0x12,0x20,0x0f,0x05,0x00,0x1c,0x0a,0x03,0x16,0x96,0x25,0x20,0x96, +0x1c,0x16,0x0d,0x0f,0x95,0x0a,0x10,0x1e,0x14,0x23,0x12,0x00,0x05,0x19,0x07,0x02,0xb8,0x01,0x03,0x40,0x0c,0x03,0x07,0x0d,0x0d,0x19,0x84,0x23,0x23,0x28,0x12,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xd4,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xd6,0xed,0x2f,0x11,0x12,0x39, +0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x25,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x01,0x68,0x1c,0x06,0x8c,0x0d,0x31,0x98,0x01,0x22,0xf2,0x87,0x67,0x72,0x82,0x9d,0xc9,0x46, +0x8a,0xbc,0x76,0x96,0xbc,0x9a,0x7c,0x24,0x4c,0x60,0x55,0x63,0x7e,0x88,0x18,0x50,0x58,0x86,0x70,0x90,0xf2,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x9c,0x64,0xb4,0x79,0x5c,0x66,0x87,0xb4,0x30,0x37,0x2e,0x56,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x05,0xec,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x19,0x17,0x95,0x02, +0x1c,0x12,0x06,0x0f,0x24,0x95,0x09,0x16,0x1e,0x95,0x0f,0x10,0x14,0x00,0x19,0x19,0x15,0x84,0x1a,0x12,0x06,0x06,0x28,0x21,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10, +0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x41,0x42,0x92,0xa0,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xa4,0xa0,0x3c,0x35,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x48,0xcc, +0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xf9,0x86,0xc8,0x1a,0x03,0x13,0x87,0x7f,0xb1,0xe0,0xc2,0xac,0xce,0xcb,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x13,0x07,0x10,0x24,0x95,0x0a,0x16,0x05,0x15,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84, +0x1a,0x13,0x06,0x06,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x04,0xd6,0xcc,0x62,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa2,0x80,0x99,0xa9,0xa4,0x89,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0x58,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x01,0x42,0x99,0xb7,0x12,0xfb,0xe7,0x87,0x7f,0xb1, +0xe0,0xc2,0xac,0xce,0xcb,0x00,0x00,0x02,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x00,0x12,0x00,0x18,0x00,0x4b,0xb9,0x00,0x01,0xff,0xc0,0x40,0x1f,0x0b,0x0e,0x48,0x01,0x01,0x03,0x07,0x95,0x40,0x18,0x0b,0x11,0x18,0x95,0x08,0x30,0x03,0x95,0x11,0x16,0x15,0x95,0x0b,0x10,0x0e,0x83,0x13,0x06,0x06,0x1a,0x01,0xb8,0xff,0xc0,0xb6, +0x0e,0x12,0x48,0x01,0x18,0x83,0x07,0x2f,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x34,0x12,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x01,0x02,0x23,0x22,0x06,0x07,0x9a,0x9a,0xb4,0x97,0xa7,0x03, +0xfd,0x29,0xeb,0xcd,0xcd,0xf8,0xfe,0xfb,0xd8,0xc2,0x01,0xf3,0x28,0xfb,0x7a,0x8a,0x02,0x42,0xa2,0x72,0xbd,0xa8,0x56,0xe0,0x01,0x0b,0xfe,0xe3,0xfb,0xf7,0xfe,0xdf,0x02,0x7a,0x01,0x2c,0xa1,0x8b,0x00,0x02,0x00,0x50,0xff,0xe8,0x05,0x16,0x04,0x18,0x00,0x1d,0x00,0x26,0x00,0x77,0x40,0x14,0x05,0x05,0x06,0x1e,0x1e,0x26,0x1f,0x04, +0x1f,0x17,0x17,0x16,0x0e,0x0e,0x0f,0x0d,0x18,0x0d,0x1d,0x02,0xb8,0x01,0x04,0x40,0x2c,0x1b,0x1e,0x05,0x1f,0x04,0x18,0x04,0x0d,0x18,0x1f,0x04,0x15,0x22,0x95,0x0a,0x16,0x12,0x40,0x09,0x0e,0x48,0x12,0x10,0x95,0x15,0x10,0x1e,0x0e,0x25,0x17,0x05,0x07,0x12,0x00,0x00,0x07,0x83,0x25,0x25,0x28,0x12,0x1f,0x83,0x0d,0x2f,0xe1,0xc6, +0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x12,0x17,0x39,0x2f,0x11,0x12,0x39,0x39,0xd6,0xed,0xc6,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x06,0x23,0x22,0x27,0x07,0x16,0x15,0x14,0x00,0x23,0x22,0x26,0x27,0x01,0x26,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x05,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x05,0x16,0x38,0x34,0x88,0x3c,0x3e,0x23,0xfe,0xf5,0xcc,0xbe,0xd9,0x0d,0x02,0x85,0x5b,0xa9,0xa4,0x99,0x9e,0xbe,0xf0,0x86,0xc3,0x21,0x22,0x4c,0x30,0x2e,0xfd,0xfc,0xfd,0xe8,0x0a,0x8b,0x6b,0x8f,0x9c,0x02,0x98,0x1f,0x8d,0x22, +0x61,0x7f,0xf4,0xfe,0xd8,0xee,0xdc,0x01,0x60,0x7c,0x72,0x9a,0x62,0xb8,0x68,0x68,0x6a,0x22,0x84,0xfe,0xda,0x6c,0x90,0xd4,0xb8,0x56,0x00,0x01,0x00,0x60,0xff,0xe8,0x02,0xf4,0x04,0x18,0x00,0x22,0x00,0x45,0x40,0x25,0x07,0x1a,0x95,0x40,0x19,0x0d,0x02,0x19,0x95,0x0c,0x30,0x22,0x20,0x95,0x02,0x16,0x10,0x12,0x95,0x0d,0x10,0x07, +0x05,0x1a,0x1a,0x1d,0x10,0x00,0x00,0x24,0x05,0x15,0x83,0x0a,0x1d,0x83,0x05,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x02,0xf4,0x72,0x98,0xba,0xd0,0xde,0xbb,0xc9,0xa4,0x82,0x67,0x6d,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0xfe,0xdd,0x80,0x72,0x86,0x74,0x1a,0x32,0xa1,0x87,0xcf,0x37,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4c,0x58,0x8e,0xac,0x4e,0x5c, +0x3e,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xee,0x04,0x18,0x00,0x21,0x00,0x4d,0x40,0x2a,0x1b,0x09,0x95,0x40,0x0a,0x15,0x20,0x0a,0x95,0x0c,0x30,0x70,0x01,0x01,0x01,0x03,0x95,0x20,0x16,0x12,0x10,0x95,0x15,0x10,0x1b,0x1d,0x09,0x0e,0x83,0x18,0x18,0x1d,0x09,0x09,0x00,0x1d,0x83,0x06,0x06,0x23,0x12,0x00,0x2f,0xc4,0x12,0x39, +0x2f,0xe1,0x12,0x39,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x5a, +0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x50,0x79,0x8b,0xc9,0x76,0x72,0x73,0x81,0xa2,0xc1,0xb9,0xdc,0xdb,0xbb,0x8c,0x1a,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x59,0x4b,0x94,0x3c,0x98,0x2e,0x97,0x7b,0xa5,0x45,0x04,0x33,0xcb,0x88,0xaa,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x35,0x04,0x18,0x00,0x2c,0x00,0x72,0x40,0x3d,0x04,0x05,0x27,0x08, +0x2c,0x02,0x96,0x2a,0x26,0x19,0x27,0x27,0x24,0x08,0x08,0x18,0x95,0x40,0x19,0x24,0x0d,0x19,0x95,0x0c,0x30,0x70,0x10,0x01,0x10,0x12,0x95,0x0d,0x16,0x21,0x1f,0x95,0x24,0x10,0x27,0x04,0x26,0x00,0x00,0x0a,0x08,0x0a,0x18,0x18,0x15,0x0f,0x1d,0x84,0x26,0x26,0x0a,0x83,0x15,0x15,0x2e,0x21,0x0f,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, +0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x10,0xc2,0x2f,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x11,0x12,0x39,0x2f,0x12,0x39,0xd6,0xed,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x36,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x37,0x17,0x16,0x33,0x32,0x37,0x04,0x35,0x39,0x2f,0x7a,0x3d,0x54,0x54,0x5c,0xdc,0xdb,0xbb,0x8c,0x72,0x72,0x8e,0x6f,0x7d,0xfe,0xdf,0x54,0x52,0x73,0x8f,0xc9,0x76,0x72,0x73,0x81,0x01,0x1d,0x3d,0x86,0x20,0x27,0x4e,0x2a,0x2e,0x02, +0x98,0x1f,0x79,0x56,0x56,0x2a,0x04,0x34,0xca,0x88,0xaa,0x32,0x9a,0x42,0x5f,0x4b,0xac,0x8e,0x5d,0x49,0x92,0x3c,0x98,0x2e,0xdc,0x8c,0x5e,0x74,0x22,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0c,0x04,0x18,0x00,0x10,0x00,0x23,0x00,0x44,0x40,0x25,0x01,0x11,0x95,0x40,0x12,0x0c,0x06,0x12,0x95,0x0c,0x30,0x1e,0x95,0x06,0x16,0x18, +0x95,0x0c,0x10,0x01,0x03,0x11,0x11,0x21,0x1b,0x15,0x84,0x0f,0x0f,0x03,0x83,0x21,0x21,0x25,0x1b,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32, +0x16,0x15,0x14,0x05,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x3a,0xd2,0xe8,0xc2,0xee,0xfe,0xec,0x01,0x26,0xee,0xa8,0xd2,0xfe,0x24,0x44,0xf4,0x7a,0x62,0xa4,0xc2,0xc2,0xa0,0x74,0x86,0xfe,0xf6,0x02,0x1c,0x04,0x30,0xca,0x87,0xaf,0x01,0x1a,0xf0,0xfc,0x01,0x2a,0x9b,0x7b, +0xa2,0x98,0x8e,0xa0,0x43,0x55,0xd5,0xbf,0xb6,0xd2,0x60,0x4a,0xac,0x00,0x00,0x01,0xff,0x81,0xfe,0x1e,0x02,0x1c,0x04,0x00,0x00,0x14,0x00,0x4b,0x40,0x29,0x13,0x01,0x0d,0x95,0x40,0x10,0x11,0x05,0x10,0x95,0x08,0x30,0x08,0x0a,0x95,0x40,0x05,0x1c,0x11,0x0f,0x08,0x0c,0x13,0x10,0x0c,0x00,0x0e,0x02,0x0e,0x0c,0x42,0x0e,0x02,0x84, +0x0c,0x15,0x16,0x0c,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc6,0x2b,0x01,0x10,0xe2,0x12,0x39,0x39,0x18,0x10,0xc6,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x1c,0xae,0xc3, +0xad,0x48,0x35,0x3d,0x42,0xcb,0xaf,0xaf,0xa3,0xae,0x01,0xdb,0xfe,0x04,0xd6,0xeb,0x1a,0x99,0x27,0x01,0x31,0x02,0x00,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x02,0x00,0x60,0xfe,0x1e,0x05,0x21,0x06,0x02,0x00,0x21,0x00,0x2e,0x00,0x4a,0xb9,0x00,0x0a,0xff,0xc0,0x40,0x26,0x0b,0x0f,0x48,0x0a,0x0a,0x0c,0x95,0x07,0x1c,0x1b,0x0f,0x18,0x2c, +0x95,0x12,0x16,0x26,0x95,0x18,0x10,0x00,0x02,0x95,0x1f,0x01,0x00,0x00,0x05,0x84,0x22,0x1b,0x0f,0x0f,0x30,0x0a,0x29,0x83,0x15,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x32,0x2f,0x2b,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x10,0x21,0x22,0x27, +0x35,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xfd,0xe4,0xbe,0x8e,0xad,0x9d,0x01,0x7a,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xb4,0x8a,0x48,0x2f, +0xfe,0x4b,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x05,0x5c,0x1b,0xcf,0xfb,0xaa,0xfd,0xcc,0x48,0xa4,0x60,0x01,0x92,0x70,0xc4,0x01,0x11,0xe6,0x01,0x05,0x01,0x34,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdf,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x4a,0x00,0x00, +0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xcd,0x04,0x18,0x00,0x19,0x00,0x41,0x40,0x23,0x17,0x95,0x40,0x18,0x08,0x02,0x18,0x95,0x08,0x30,0x15,0x00,0x13,0x95,0x02,0x16,0x0b,0x0d,0x95,0x08,0x10,0x17,0x17,0x15,0x10,0x0b,0x0b,0x00,0x84,0x15,0x15,0x1b,0x10,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x00, +0x3f,0xfd,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x03,0xcd,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x38,0xf6,0x9a,0x82,0x82,0xa3,0xa9,0xd4,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f, +0x3e,0x56,0x01,0x18,0xf0,0xf1,0x01,0x37,0x30,0x9c,0x42,0xe0,0xb4,0xb8,0xd0,0x26,0x01,0x04,0x8b,0x00,0x00,0x02,0x00,0x0e,0xfe,0x52,0x03,0xc6,0x04,0x00,0x00,0x11,0x00,0x19,0x00,0x16,0x40,0x0a,0x16,0x95,0x07,0x00,0x0f,0x0e,0x0f,0x00,0x1b,0x0e,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x2f,0xed,0x31,0x30,0x01,0x01,0x17,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x01,0x33,0x09,0x02,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0xc6,0xfe,0x78,0x22,0x5e,0x7c,0x63,0x5f,0x78,0x62,0x22,0xfe,0x82,0xb2,0x01,0x26,0x01,0x2e,0xfe,0xd0,0x40,0x40,0x41,0x04,0x00,0xfc,0xa0,0x44,0xbc,0x68,0x63,0x83,0x83,0x63,0x5a,0xca,0x44,0x03,0x60,0xfd,0x42,0x02,0xbe,0xfc, +0x10,0x8b,0x49,0x63,0x63,0x40,0x00,0x02,0x00,0x0a,0xff,0xe8,0x03,0x9e,0x04,0x18,0x00,0x1b,0x00,0x23,0x00,0x2a,0x40,0x17,0x20,0x95,0x09,0x16,0x00,0x12,0x19,0x02,0x10,0x95,0x15,0x10,0x0c,0x1e,0x22,0x06,0x0e,0x04,0x06,0x12,0x00,0x25,0x12,0x2f,0x10,0xc6,0x11,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0xed,0x31,0x30, +0x01,0x26,0x23,0x22,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x17,0x01,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x03,0x9e,0x46,0x33,0x75,0x7d,0x95,0x85,0x74,0x6f,0x7e,0x92,0x82,0x73,0x3f,0x36,0x40,0x4a,0x9e,0xa3,0xa5,0x9e,0x48,0x3e,0xfe,0x37,0x58,0x58, +0x58,0x03,0x60,0x2e,0xbf,0xef,0xca,0x88,0xa6,0xa4,0x86,0xd2,0xeb,0xbf,0x2c,0x96,0x20,0xce,0xce,0x20,0xfe,0x60,0xa3,0x97,0xac,0xac,0x92,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0x27,0x40,0x14,0x00,0x1b,0x11,0x02,0x08,0x0c,0x95,0x05,0x16,0x08,0x0f,0x11,0x84,0x02,0x10,0x10,0x13,0x09,0x84,0x08, +0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x78,0xda,0xfe,0xa8,0xa3,0xeb,0x7a,0xa6,0xa4,0xfe,0x29,0x02,0x81,0xc2,0x01,0xa1,0x02,0x77,0xfd,0xb2,0xfe,0xc0,0xbb,0x8f,0x02, +0x44,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1b,0x00,0x32,0x40,0x1a,0x16,0x00,0x19,0x09,0x15,0x04,0x95,0x19,0x10,0x10,0x12,0x95,0x0d,0x01,0x10,0x10,0x16,0x00,0x84,0x01,0x01,0x1d,0x16,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x39, +0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11, +0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x03,0xf8,0x06,0x02,0x00,0x24,0x00,0x40,0x40,0x22,0x06,0x08,0x95,0x03,0x1c,0x1f,0x22,0x12,0x15,0x0d,0x95,0x22,0x10,0x19,0x1b,0x95,0x16,0x01,0x19,0x19,0x1f,0x00,0x06,0x06,0x11,0x00,0x84,0x0a,0x0a,0x26,0x1f,0x11,0x84,0x12,0x2f,0xe1,0x32,0x12, +0x39,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xbf, +0xad,0x4c,0x36,0x3e,0x44,0xc8,0xee,0x78,0xa4,0xa4,0xfc,0xdb,0x8a,0x7e,0x84,0x88,0x87,0xa8,0x04,0x76,0xda,0x01,0x5a,0x04,0xe6,0xf8,0x1a,0x99,0x27,0x01,0x3e,0x02,0x66,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x03,0xdd,0x01,0x14,0x01,0x11,0x37,0x98,0x44,0xa5,0xf3,0x89,0xc2,0xfe,0x5f,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x0e,0x05,0xd9, +0x00,0x0b,0x00,0x17,0x00,0x52,0x40,0x2f,0x16,0x0d,0x10,0x95,0x40,0x13,0x14,0x0f,0x13,0x95,0x0c,0x30,0x0f,0x15,0x06,0x63,0x40,0x00,0x14,0x0f,0x09,0x62,0x03,0x0f,0x0e,0x03,0x62,0xff,0x30,0x0c,0x0e,0x0e,0x0f,0x11,0x42,0x11,0x16,0x13,0x0e,0x84,0x0f,0x18,0x19,0x0f,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x2b, +0x01,0x10,0xe2,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x01,0x10,0x2c,0x40,0x40,0x2c,0x2e,0x3d,0x3d,0xd0,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0, +0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xfc,0xd7,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x00,0x01,0x00,0x94,0xff,0xea,0x02,0x2f,0x04,0x00,0x00,0x0b,0x00,0x19,0x40,0x0c,0x0b,0x09,0x95,0x02,0x16,0x05,0x0f,0x0b,0x0b,0x06,0x84,0x05,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x25,0x06,0x23, +0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x02,0x2f,0x39,0x5c,0xfe,0xfa,0xa4,0x90,0x3c,0x2b,0x08,0x1e,0x01,0x28,0x02,0xee,0xfd,0x2f,0xbb,0x20,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x44,0x04,0x00,0x00,0x0b,0x00,0x33,0x40,0x1b,0x0a,0x02,0x95,0x01,0x15,0x09,0x05,0x95,0x06,0x0f,0x08,0x05,0x02,0x0b,0x0b,0x0a,0x02,0x40, +0x0a,0x84,0x03,0x0c,0x0d,0x03,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x1a,0x18,0xcd,0x10,0xc1,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x02,0x44,0xfe,0x08,0xaa,0xaa,0x01,0xf8,0xaa,0xaa,0x8c,0x02,0xe8,0x8c,0x8c,0xfd,0x18,0x00,0x01,0xff,0xec, +0x00,0x00,0x02,0x52,0x05,0xec,0x00,0x17,0x00,0x5c,0x40,0x33,0x13,0x10,0x15,0x0e,0x07,0x04,0x09,0x15,0x95,0x02,0x0c,0x91,0x0b,0x09,0x00,0x91,0x17,0x09,0x95,0x40,0x0e,0x11,0x06,0x0e,0x95,0x08,0x30,0x06,0x15,0x11,0x00,0x00,0x00,0x01,0x0e,0x03,0x00,0x00,0x05,0x0b,0x12,0x11,0x05,0x84,0x06,0x18,0x19,0x06,0x84,0x08,0x30,0x2b, +0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc2,0x2f,0x5f,0x5e,0x5d,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0xd4,0xed,0x10,0xd6,0xed,0xd4,0xed,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x02,0x52, +0x44,0x58,0x23,0x29,0xa4,0x2e,0x17,0x4d,0x48,0x46,0x55,0x1d,0x22,0xa4,0x2e,0x24,0x4e,0x48,0x02,0xd9,0x39,0x0a,0xfd,0x56,0x02,0xd9,0x0d,0x46,0x95,0x3b,0x08,0x02,0x84,0xfd,0x4c,0x0d,0x45,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x02,0xee,0x05,0xec,0x00,0x11,0x00,0x19,0x00,0x4a,0x40,0x29,0x0d,0x12,0x15,0x96,0x40,0x0b,0x12,0x80, +0x12,0x04,0x01,0x95,0x40,0x10,0x0e,0x03,0x10,0x95,0x08,0x30,0x03,0x15,0x0e,0x00,0x00,0x00,0x0d,0x10,0x12,0x03,0x02,0x84,0x0f,0x03,0x01,0x03,0x03,0x1b,0x17,0x84,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0xf1,0x17,0x39,0xc2,0x2f,0x00,0x3f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x1a,0x10,0xdc,0x1a,0xed,0x12,0x39,0x31,0x30, +0x01,0x21,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x21,0x21,0x26,0x26,0x23,0x22,0x15,0x14,0x33,0x02,0xee,0xff,0x00,0xa4,0x42,0x88,0x94,0x75,0x59,0x56,0x3a,0xa4,0x01,0x00,0xfe,0x5c,0x04,0x49,0x32,0x4c,0x8b,0x02,0x87,0xfd,0x79,0x02,0x87,0x74,0x67,0x55,0x78,0x3b,0x01,0xf8,0xfd,0x26,0x44, +0x5c,0x4a,0x56,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0x5a,0x05,0xec,0x00,0x0c,0x00,0x24,0x40,0x13,0x0c,0x0a,0x95,0x40,0x02,0x1c,0x06,0x00,0x0c,0x0c,0x08,0x84,0x05,0x0d,0x0e,0x05,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc2,0x18,0x2f,0x00,0x3f,0x3f,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14, +0x33,0x32,0x37,0x02,0x5a,0x40,0x43,0x93,0x9e,0xa4,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x06,0x80,0xf9,0x86,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x21,0x04,0xb2,0x05,0xec,0x00,0x1c,0x00,0x57,0x40,0x30,0x0b,0x0a,0x96,0x40,0x15,0x12,0x1b,0x15,0x96,0x08,0x30,0x10,0x01,0x01,0x01,0x03,0x95,0x1b,0x1c,0x0f,0x15,0x14,0x0c,0x95, +0x12,0x0f,0x10,0x00,0x15,0x0b,0x0b,0x06,0x01,0x01,0x0e,0x0f,0x0c,0x14,0x14,0x18,0x83,0x06,0x06,0x1e,0x12,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x11,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x39,0x3f,0x3f,0xfd,0xc6,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x27,0xa5,0xb1,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x80,0xfd,0xbe,0xa4,0xa4,0x03,0x2d,0xfe,0x77,0xd8,0xec,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x96,0xa5,0x33,0x02,0x14,0xfc,0x8c, +0x05,0xec,0xfe,0x14,0x33,0xfd,0xe1,0x1a,0xeb,0xb3,0xcc,0xfe,0xf7,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x45,0x40,0x25,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16, +0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x2f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11, +0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x54,0x04,0x00,0x00,0x1f,0x00,0x46, +0x40,0x26,0x02,0x08,0x0d,0x1a,0x05,0x12,0x95,0x40,0x0a,0x10,0x00,0x1b,0x1e,0x16,0x0d,0x0f,0x1f,0x84,0x01,0x1e,0x0e,0x16,0x0d,0x16,0x42,0x0e,0x84,0x0d,0x08,0x17,0x84,0x16,0x20,0x21,0x16,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0x32,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x1a,0xed,0x39, +0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xfe,0x29,0x02, +0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x06,0x54,0x04,0x18,0x00,0x28,0x00,0x50,0x40,0x2d,0x26,0x28,0x95,0x23,0x1c,0x05,0x15,0x16,0x1b,0x04,0x0d,0x95,0x40,0x1d,0x18,0x10,0x13,0x0f,0x0a,0x12,0x26,0x26, +0x09,0x20,0x84,0x01,0x0e,0x0a,0x12,0x0a,0x42,0x14,0x11,0x84,0x12,0x1b,0x09,0x84,0x0a,0x29,0x2a,0x0a,0x84,0x30,0x30,0x2b,0x01,0x10,0xe1,0x39,0x18,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x12,0x39,0x18,0x2f,0x00,0x2f,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x3f,0xfd,0xc6,0x31,0x30,0x00,0x11,0x11,0x34,0x26,0x23,0x22,0x06, +0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x05,0xb0,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0xbf,0xad,0x4c,0x36,0x3e,0x44,0xfe,0xaa,0x01, +0x3e,0x02,0x64,0xaa,0x98,0xc0,0x86,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb5,0x91,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0xfd,0x85,0xe6,0xf8,0x1a,0x99,0x27,0x00,0x00,0x01,0xff,0x96,0xfe,0x1e,0x03,0xf8,0x04,0x18,0x00,0x1a,0x00,0x35,0x40,0x1c,0x15,0x00,0x18,0x0e,0x10,0x95,0x0b,0x1c,0x00,0x15,0x13,0x0f,0x04,0x95, +0x18,0x10,0x00,0x84,0x01,0x01,0x1c,0x12,0x15,0x08,0x0e,0x08,0x84,0x12,0x2f,0xe1,0xc6,0x11,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11, +0x03,0xf8,0xa4,0xec,0x7b,0xa3,0xb3,0x8b,0x48,0x2e,0x36,0x36,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0x24,0x99,0xb5,0x13,0x93,0x1a,0xcd,0x04,0x89,0xaa,0xc2,0xfe,0x5a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x05,0x08,0x04,0x18,0x00,0x1a,0x00,0x31,0x40,0x1a,0x1a,0x18,0x95,0x02,0x1c,0x10,0x13,0x0d, +0x15,0x0e,0x0f,0x08,0x95,0x13,0x10,0x1a,0x1a,0x16,0x84,0x05,0x05,0x1c,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x14,0x33, +0x32,0x37,0x05,0x08,0x40,0x43,0x93,0x9e,0xec,0x7b,0xa3,0xa4,0xa4,0x04,0x74,0xde,0x01,0x58,0xa0,0x3c,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x02,0xdc,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xfe,0x5a,0xfd,0x00,0xc8,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x0a,0x04,0x00,0x00,0x13,0x00,0x26,0x40,0x14,0x01,0x04,0x0f,0x13, +0x04,0x0b,0x09,0x15,0x0b,0x0f,0x01,0x13,0x84,0x12,0x12,0x15,0x0b,0x08,0x84,0x09,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x04,0x0a,0x9c,0xfe,0x06,0x24,0x0c,0x04,0x04,0x9e,0xa4,0x01, +0xf2,0x20,0x10,0x04,0x06,0xa0,0x02,0xd1,0x33,0x18,0x35,0x4d,0xfd,0x66,0x04,0x00,0xfd,0x40,0x2d,0x21,0x33,0x3f,0x02,0x9c,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x33,0x40,0x1c,0x13,0x95,0x40,0x11,0x06,0x00,0x11,0x95,0x1b,0x30,0x16,0x95,0x00,0x16,0x0e,0x95,0x06,0x10,0x09,0x83, +0x0c,0x12,0x12,0x19,0x11,0x13,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01, +0xfe,0xeb,0x69,0x1e,0xfe,0xd8,0x8d,0xb1,0x12,0x02,0x98,0xfd,0x66,0x0a,0xb4,0x94,0x01,0x34,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x68,0x01,0x3e,0xa6,0x98,0x8c,0x9e,0xb4,0x00,0x00,0x02,0x00,0x60,0xff,0xea,0x05,0x60,0x04,0x16,0x00,0x13,0x00,0x1e,0x00,0x47,0x40,0x28,0x10,0x95,0x40,0x0f, +0x0b,0x00,0x0f,0x95,0x1b,0x30,0x1d,0x96,0x02,0x16,0x13,0x95,0x00,0x15,0x0c,0x95,0x0b,0x0f,0x17,0x96,0x08,0x10,0x0e,0x12,0x84,0x14,0x14,0x05,0x0c,0x10,0x00,0x00,0x20,0x1a,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x21,0x21,0x07,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x21,0x11,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x05,0x60,0xfd,0xd3,0xd7,0xeb,0xfe,0xef,0x01,0x1a,0xee,0x31,0x9a,0x02,0x15,0xfe,0x76,0x01,0x6f,0xfe,0x91,0x01,0xa2,0xfd,0xbc,0x60,0x52,0x9f,0xc1,0xba,0xa2,0x46, +0x16,0x01,0x21,0xeb,0xf3,0x01,0x2d,0x16,0x8c,0xfe,0xd6,0x8c,0xfe,0xce,0x02,0xed,0x19,0xe1,0xb3,0xb4,0xdc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x64,0x04,0x18,0x00,0x11,0x00,0x22,0x00,0x43,0x40,0x25,0x01,0x03,0x12,0x12,0x1b,0x16,0x0f,0x20,0x95,0x03,0x16,0x1b,0x95,0x40,0x09,0x10,0x18,0x84,0x0c,0x0e,0x13,0x12,0x06,0x42, +0x00,0x13,0x84,0x12,0x23,0x24,0x12,0x84,0x08,0x30,0x1e,0x84,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x39,0x11,0x39,0x2f,0x12,0x39,0x31,0x30,0x25,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x06,0x23,0x22,0x26,0x03,0x33,0x15,0x10,0x33, +0x32,0x11,0x34,0x26,0x23,0x22,0x00,0x15,0x10,0x33,0x32,0x11,0x02,0xdf,0x06,0x57,0xcc,0x9e,0xb8,0x01,0x65,0x01,0x2d,0x01,0x1c,0x01,0x56,0xc8,0xb0,0x6a,0x7b,0x75,0x9f,0xb9,0xd6,0xfa,0xe0,0xde,0xfe,0xfc,0xcf,0xbf,0xb2,0xca,0xeb,0xd5,0x01,0x17,0x01,0x59,0xfe,0xb6,0xfe,0xf0,0xe1,0xf5,0x5c,0x01,0xc2,0x5a,0xfe,0xc6,0x01,0x44, +0xdf,0xf9,0xfe,0xfe,0xd8,0xfe,0xbe,0x01,0x3a,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x48,0x40,0x2a,0x02,0x1b,0x13,0x00,0x19,0x95,0x03,0x16,0x12,0x0c,0x1a,0x95,0x40,0x09,0x10,0x0a,0x00,0x16,0x83,0x0f,0x0e,0x00,0x06,0x03,0x42,0x09,0x0c,0x13,0x19,0x04,0x00,0x84,0x03,0x20, +0x21,0x03,0x84,0x08,0x30,0x1d,0x83,0x06,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x17,0x39,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x3f,0x31,0x30,0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06, +0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17,0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12, +0xd2,0xac,0xa6,0xd3,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x04,0x00,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x0f,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35, +0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x02,0x0a,0x00,0x01,0x00,0x0c,0xff,0xee,0x02,0x23,0x05,0xec,0x00,0x0f,0x00,0x20,0x40,0x10,0x08,0x0a,0x95,0x05,0x16,0x00,0x15,0x0e,0x00,0x02,0x0f,0x84,0x0e,0x0e,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f, +0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x23,0xa4,0x04,0x53,0xba,0x40,0x22,0x2c,0x51,0x69,0x8d,0xa4,0xc8,0xda,0x0e,0xaa,0x21,0xc8,0xa9,0x03,0xf6,0x00,0x01,0x00,0x0c,0xfe,0x1e,0x03,0x33,0x04,0x00,0x00,0x18,0x00,0x2f,0x40,0x18,0x18,0x16,0x95,0x02, +0x1c,0x07,0x09,0x12,0x0c,0x0e,0x95,0x09,0x16,0x12,0x0f,0x18,0x18,0x06,0x13,0x84,0x12,0x12,0x1a,0x0c,0x2f,0x12,0x39,0x2f,0xf1,0x33,0xc2,0x2f,0x00,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33, +0x32,0x37,0x03,0x33,0x40,0x43,0x92,0x9f,0x04,0x52,0xbb,0x40,0x22,0x2c,0x51,0x68,0x8e,0xa4,0x9f,0x3d,0x34,0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x58,0xd6,0x0e,0xaa,0x21,0xc7,0xaa,0x02,0x0a,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x0f,0x00,0x23,0x40,0x11,0x07,0x1b,0x08,0x0f,0x00,0x00,0x0a,0x02, +0x0d,0x10,0x00,0x00,0x11,0x0a,0x06,0x84,0x07,0x2f,0xe9,0x32,0x11,0x39,0x2f,0x00,0x3f,0xcd,0x32,0x32,0x2f,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa4,0xa4,0x04,0x4a,0xc2,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfc,0x1f,0x05,0xd7,0xd3, +0xe5,0x0e,0x00,0x01,0x00,0xa6,0xfe,0x1e,0x02,0xbc,0x04,0x12,0x00,0x19,0x00,0x2c,0x40,0x16,0x14,0x1a,0x17,0x0a,0x08,0x95,0x0d,0x1c,0x11,0x0f,0x00,0x02,0x17,0x10,0x0a,0x00,0x00,0x1b,0x13,0x06,0x84,0x10,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xc6,0x00,0x3f,0xdd,0xc6,0x3f,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22, +0x06,0x15,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0xa0,0x3c,0x34,0x40,0x43,0x93,0x9e,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0xfd,0x68,0xc8,0x1a,0x8a,0x1c,0xaf,0x9f,0x04,0x94,0xd3,0x6c,0x79,0x0e,0x00,0x00,0x01, +0x00,0x90,0x00,0x00,0x02,0xa2,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x06,0x15,0x00,0x02,0x95,0x0a,0x10,0x00,0x00,0x0e,0x05,0x84,0x06,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x11,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0xa2,0x46,0x54,0xd7,0xa1,0xce,0xaa,0x56,0x44,0x03,0x68, +0x26,0xfe,0xed,0xfd,0x85,0x02,0x7b,0xbd,0xe0,0x1e,0x00,0x01,0x00,0x0c,0xfe,0x29,0x02,0x1e,0x04,0x18,0x00,0x0c,0x00,0x1b,0x40,0x0d,0x00,0x1b,0x06,0x04,0x95,0x09,0x10,0x00,0x84,0x01,0x01,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x23,0x11,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, +0x02,0x1e,0xa1,0xd7,0x4c,0x4e,0x50,0x54,0xb0,0xbe,0xfe,0x29,0x04,0x4e,0x01,0x17,0x28,0x92,0x20,0xd2,0xc5,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3e,0x40,0x20,0x0f,0x05,0x95,0x13,0x13,0x07,0x08,0x01,0x15,0x07,0x15,0x12,0x95,0x08,0x0f,0x03,0x10,0x10,0x0f,0x06,0x01,0x00,0x00,0x0c, +0x84,0x16,0x16,0x1a,0x13,0x06,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x83,0xb8, +0x75,0x3e,0x78,0x56,0xa4,0x01,0x52,0xa5,0xb7,0xea,0x53,0x39,0xfe,0x54,0x9a,0xcc,0xc4,0x01,0x14,0x92,0xfe,0x5a,0x04,0x00,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x02,0x3c,0xfe,0xbd,0xa8,0x9b,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x83,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x43,0x40,0x24,0x04,0x13,0x95,0x40,0x0d,0x0b,0x0a,0x0d, +0x95,0x08,0x30,0x14,0x95,0x0a,0x15,0x00,0x0f,0x0b,0x0f,0x10,0x02,0x03,0x02,0x0d,0x12,0x00,0x00,0x06,0x84,0x17,0x17,0x1c,0x0d,0x14,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x03,0x06,0x07,0x15,0x16,0x15, +0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x33,0x32,0x36,0x37,0x13,0x01,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x83,0x8d,0x33,0x55,0xe6,0xc7,0xae,0xfe,0xc7,0xa4,0x56,0x41,0x53,0x22,0x79,0xfe,0x7b,0x95,0xd1,0x6e,0x5e,0x04,0x00,0xfe,0xcb,0x71,0x29,0x04,0x2b,0xd7,0x88,0xa3,0x04,0x00,0xfe,0x5a,0x41,0x51,0x01,0x14,0xfd,0xcf,0xfe, +0xbd,0x9d,0x4f,0x57,0x00,0x01,0x00,0x68,0xfe,0xb6,0x02,0xdb,0x04,0x18,0x00,0x2b,0x00,0x5d,0x40,0x0e,0x05,0x03,0x00,0x08,0x01,0x08,0x10,0x16,0x21,0x27,0x04,0x2a,0x19,0x0c,0xb8,0xff,0xc0,0x40,0x13,0x0b,0x0e,0x48,0x0c,0x0c,0x0e,0x95,0x2a,0x16,0x1c,0x1c,0x1e,0x95,0x19,0x10,0x05,0x05,0x27,0x00,0xb8,0x01,0x03,0x40,0x0d,0x0c, +0x1c,0x1c,0x27,0x83,0x10,0x10,0x2d,0x0c,0x21,0x83,0x16,0x0c,0x2f,0xd6,0xe1,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x10,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x2f,0x2b,0x11,0x12,0x17,0x39,0x2f,0x5d,0xdd,0xc6,0x31,0x30,0x17,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35, +0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0xee,0x95,0x3b,0x3c,0x41,0x49,0x7b,0x8d,0x82,0x88,0xc3,0x56,0x7d,0x93,0x65,0xca,0x9f,0x7a,0x61,0x66,0x82,0x52,0x62,0x45,0x7e,0x94,0x72,0xc2,0xa9,0x41,0x02,0x27,0xaa,0x23,0x7b,0x1f,0x8f, +0x83,0x01,0x0d,0x63,0x90,0x3c,0x4e,0x36,0x41,0x89,0x64,0x80,0xa8,0x2e,0xa6,0x4a,0x50,0x40,0x3e,0x4b,0x35,0x40,0x8c,0x62,0x82,0xa8,0x00,0x01,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x00,0x15,0x00,0x2d,0x40,0x18,0x0b,0x0d,0x95,0x08,0x1c,0x00,0x02,0x95,0x40,0x13,0x01,0x00,0x00,0x05,0x0a,0x05,0x84,0x0f,0x16,0x17,0x0f,0x84, +0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xc4,0x10,0xc2,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0xb9,0x8f,0x4c,0x2a,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfa, +0xe7,0xa2,0xbf,0x13,0x93,0x1a,0xdf,0x05,0x17,0xa4,0xbe,0x12,0x00,0x01,0xff,0x9e,0xfe,0x1e,0x02,0x72,0x06,0x02,0x00,0x1d,0x00,0x53,0x40,0x2d,0x08,0x05,0x14,0x95,0x40,0x17,0x1b,0x0c,0x17,0x95,0x08,0x30,0x0f,0x11,0x95,0x0c,0x1c,0x00,0x02,0x95,0x40,0x1b,0x01,0x15,0x15,0x13,0x0f,0x06,0x06,0x09,0x00,0x00,0x09,0x0f,0x17,0x05, +0x09,0x84,0x13,0x1e,0x1f,0x13,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0xc6,0x10,0xc0,0x2f,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x35,0x11,0x23,0x35,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x72,0x32,0x3a,0xac,0xb0,0xb0,0xb7,0x8f,0x4b,0x2b,0x32,0x3a,0xac,0xb0,0xb0,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfd,0xce,0x8b,0xfd,0xa4,0xa4,0xbd,0x13,0x93,0x1a,0xdf,0x02,0x52,0x8b,0x02,0x3a,0xa2,0xc0,0x12,0x00,0x01,0xff,0xa6,0xfe,0x1e,0x02,0x48,0x04,0x18, +0x00,0x14,0x00,0x22,0x40,0x11,0x14,0x12,0x95,0x02,0x1c,0x09,0x07,0x95,0x0c,0x10,0x14,0x14,0x10,0x09,0x10,0x84,0x04,0x2f,0xe1,0xc6,0x10,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x37,0x02,0x48,0x3a,0x5c,0xfe, +0xfa,0x9a,0x3a,0x32,0x40,0x3d,0x90,0x9d,0x92,0x38,0x2e,0xfe,0x3c,0x1e,0x01,0x28,0x03,0x82,0xc5,0x19,0x8c,0x18,0xae,0x9c,0xfc,0x95,0xbb,0x22,0x00,0x02,0xff,0x44,0xfe,0x1e,0x02,0x8e,0x06,0x02,0x00,0x1b,0x00,0x23,0x00,0x68,0xb7,0x15,0x05,0x07,0x13,0x1c,0x0a,0x1e,0x07,0xb8,0xff,0xc0,0x40,0x30,0x13,0x16,0x48,0x07,0x08,0x08, +0x22,0x1e,0x96,0x0f,0x13,0x1f,0x13,0x02,0x09,0x03,0x13,0x22,0x96,0x0d,0x1c,0x00,0x02,0x95,0x40,0x19,0x01,0x1c,0x15,0x0a,0x05,0x10,0x07,0x00,0x00,0x05,0x20,0x84,0x10,0x05,0x84,0x15,0x24,0x25,0x15,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0xd4,0xe1,0x10,0xc2,0x2f,0xc6,0x11,0x12,0x39,0x11,0x33,0x00,0x3f,0x1a,0xfd,0xc6,0x3f, +0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x11,0x39,0x2f,0xcd,0x2b,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x16,0x17,0x15,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x02,0x8e,0x32,0x3e,0xaa,0x7a,0x74,0x7a, +0x80,0x10,0xa3,0x82,0x69,0x86,0xb4,0x91,0x27,0x21,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0x23,0x25,0xae,0x63,0x8e,0x05,0x5c,0x1b,0xdf,0xfb,0x2a,0x2c,0x54,0xa6,0x68,0x34,0x81,0x99,0x79,0x5d,0x6d,0x91,0x04,0x04,0xb2,0xa2,0xc0,0x12,0xf9,0x78,0x06,0x70,0x5a,0x00,0x00,0x01,0x00,0x38,0xfe,0xd1,0x02,0x8e,0x04,0x16,0x00,0x14,0x00,0x30, +0x40,0x18,0x03,0x04,0x07,0x04,0x13,0x95,0x01,0x15,0x0d,0x0b,0x95,0x10,0x10,0x14,0x14,0x04,0x01,0x13,0x84,0x07,0x07,0x16,0x06,0x0d,0x2f,0x33,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc1,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x31,0x30,0x21,0x23,0x15,0x07,0x11,0x21,0x35,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36, +0x33,0x20,0x11,0x11,0x33,0x02,0x8e,0xb1,0xa1,0xfe,0xfc,0x01,0x04,0x48,0x52,0x3e,0x2c,0x39,0x60,0x01,0x0c,0xb1,0xfa,0x35,0x01,0x2f,0x8c,0x02,0x41,0x67,0x58,0x22,0x8c,0x20,0xfe,0xd4,0xfd,0xa2,0x00,0x01,0x00,0x2b,0xfe,0x1e,0x02,0x81,0x05,0x2f,0x00,0x14,0x00,0x2e,0x40,0x17,0x14,0x12,0x95,0x02,0x1c,0x0a,0x0e,0x0b,0x06,0x95, +0x07,0x0f,0x00,0x00,0x0d,0x06,0x0d,0x06,0x0b,0x08,0x0f,0x84,0x04,0x2f,0xe9,0x33,0x32,0x33,0x32,0x2f,0x2f,0x33,0x2f,0x00,0x3f,0xed,0x33,0x32,0xc4,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x02,0x81,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4, +0x01,0x02,0xfe,0xfe,0x46,0x51,0x3b,0x30,0xfe,0x40,0x22,0x01,0x2e,0x04,0x28,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfb,0xf4,0x67,0x57,0x23,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1d,0x00,0x4c,0x40,0x2b,0x01,0x10,0x14,0x18,0x04,0x0a,0x95,0x40,0x0d,0x0e,0x07,0x0d,0x95,0x08,0x30,0x13,0x04,0x0e,0x1b,0x95, +0x07,0x16,0x02,0x15,0x0e,0x0f,0x00,0x01,0x01,0x04,0x17,0x03,0x13,0x84,0x12,0x12,0x1f,0x0c,0x18,0x0a,0x0f,0x84,0x0e,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xe1,0x17,0x39,0x10,0xcd,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11, +0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x36,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe,0xc4,0xfd,0xf4,0xfa,0x78,0x9a,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x01,0x9a,0xfe,0x66,0xb4,0x29,0x25, +0xfe,0xbc,0xb0,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x04,0x00,0x00,0x1b,0x00,0x38,0x40,0x1e,0x09,0x95,0x17,0x16,0x04,0x0e,0x11,0x03,0x10,0x0f,0x01,0x95,0x02,0x0f,0x12,0x0e,0x11,0x14,0x84,0x0c,0x0c,0x1d,0x1a,0x00,0x04,0x04,0x01,0x06,0x84,0x1a,0x2f,0xf1,0x33,0xc2,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x32,0xc6,0x32, +0x00,0x3f,0xed,0x3f,0x17,0x32,0x3f,0xed,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x27,0x35,0x21,0x15,0x23,0x16,0x11,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x01,0x1c,0xbc,0x01,0x7f,0xdb,0xbd,0xa1,0xa6,0xb6,0xda,0x01,0x7e,0xb8,0xb8,0xfe,0xec,0xf2,0xed,0xfe,0xf1,0x03,0x74,0x8c,0x8e,0x64, +0xfe,0xe6,0xaf,0xd3,0xcc,0xb6,0x01,0x1a,0x64,0x8e,0x8c,0x89,0xfe,0xfb,0xe3,0xfe,0xe5,0x01,0x16,0xe1,0x01,0x07,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0x16,0x04,0x18,0x00,0x17,0x00,0x2a,0x40,0x16,0x04,0x95,0x15,0x16,0x00,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x0c,0x0c,0x01,0x12,0x83,0x07,0x07,0x19,0x01,0x84,0x00,0x2f,0xe1,0x12,0x39, +0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x3f,0xed,0x31,0x30,0x13,0x33,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x20,0x11,0x90,0xa3,0x01,0x0b,0x93,0x9f,0x60,0x56,0x3b,0x35,0x3e,0x4f,0x96,0xa9,0xff,0x00,0xe3,0xfe,0x5d,0x04,0x00,0xfd,0xb4,0xfe,0xbe,0xdb, +0xc1,0xba,0xc8,0x1c,0x8a,0x1a,0xfe,0xe7,0xeb,0xfd,0xfe,0xd1,0x01,0xbe,0x00,0x01,0x00,0x0c,0x00,0x00,0x03,0xc8,0x04,0x00,0x00,0x0b,0x00,0x1d,0x40,0x0d,0x00,0x05,0x0a,0x09,0x15,0x0a,0x0f,0x01,0x00,0x00,0x0d,0x08,0x09,0x2f,0x33,0x11,0x33,0x2f,0x32,0x00,0x3f,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06, +0x07,0x01,0x23,0x01,0x33,0x03,0xc8,0xb4,0xfe,0xfc,0x1c,0x06,0x04,0x09,0x1b,0xfe,0xf2,0xac,0x01,0x96,0xa4,0x02,0xe8,0x51,0x3e,0x43,0x48,0xfd,0x14,0x04,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x00,0x1b,0x00,0x3c,0x40,0x20,0x00,0x04,0x09,0x0c,0x16,0x1a,0x06,0x12,0x11,0x15,0x12,0x0f,0x1b,0x1a,0x04,0x09, +0x08,0x16,0x13,0x12,0x0c,0x16,0x04,0x0c,0x03,0x11,0x01,0x00,0x00,0x1d,0x10,0x11,0x2f,0x33,0x11,0x33,0x2f,0x32,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16, +0x17,0x33,0x36,0x37,0x13,0x33,0x05,0xb0,0xac,0xd3,0x0b,0x03,0x09,0x02,0x10,0xec,0x95,0xd5,0x0a,0x04,0x08,0x02,0x0e,0xd2,0xa2,0x01,0x36,0xa8,0xd2,0x0c,0x05,0x04,0x03,0x12,0xe5,0xa4,0x03,0x02,0x28,0x34,0x2c,0x32,0xfd,0x00,0x03,0x04,0x24,0x38,0x27,0x35,0xfc,0xfc,0x04,0x00,0xfd,0x23,0x2b,0x34,0x24,0x39,0x02,0xdf,0x00,0x01, +0x00,0x0c,0x00,0x00,0x03,0xd1,0x05,0xec,0x00,0x14,0x00,0x2c,0x40,0x17,0x00,0x15,0x09,0x15,0x04,0x0a,0x14,0x0f,0x0f,0x0f,0x11,0x95,0x0c,0x00,0x0f,0x0a,0x0f,0x14,0x03,0x09,0x00,0x16,0x09,0x2f,0x10,0xc6,0x11,0x17,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x33,0x33,0x3f,0x3f,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07, +0x01,0x23,0x01,0x12,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x03,0xd1,0xb5,0xfe,0xea,0x02,0x10,0x06,0x06,0x11,0xfe,0xdf,0xaa,0x01,0xdc,0x7e,0xe4,0x3d,0x2b,0x34,0x2a,0x7f,0x3f,0x54,0x03,0x14,0x07,0x47,0x18,0x34,0xfc,0xea,0x04,0xae,0x01,0x3e,0x0d,0x93,0x12,0x98,0xc8,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0x4c,0x04,0x00, +0x00,0x0d,0x00,0x30,0x40,0x1a,0x00,0x01,0x04,0x09,0x04,0x05,0x03,0x15,0x05,0x0f,0x09,0x01,0x00,0x04,0x40,0x05,0x05,0x01,0x84,0x04,0x0e,0x0f,0x04,0x84,0x08,0x30,0x2b,0x01,0x10,0xf1,0xc1,0x18,0x2f,0x1a,0x10,0xcd,0x12,0x39,0x00,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x17,0x33,0x36, +0x37,0x13,0x03,0x4c,0xfe,0xb0,0xa4,0xfe,0xb2,0xb0,0xb8,0x29,0x11,0x04,0x18,0x20,0xbc,0x04,0x00,0xfd,0x77,0xfe,0x89,0x01,0x77,0x02,0x89,0xfe,0x7f,0x57,0x2e,0x46,0x3f,0x01,0x81,0x00,0x00,0x01,0x00,0x21,0xfe,0xfa,0x03,0xfe,0x04,0x00,0x00,0x16,0x00,0x36,0x40,0x0f,0x16,0x14,0x02,0x09,0x0f,0x95,0x08,0x15,0x0e,0x0a,0x95,0x0c, +0x0f,0x16,0x05,0xb8,0x01,0x03,0x40,0x09,0x12,0x0a,0x0e,0x10,0x10,0x18,0x0b,0x0f,0x09,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xc6,0x32,0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xdd,0xc6,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x06,0x15,0x14,0x33,0x32,0x37,0x03, +0xfe,0x34,0x41,0x58,0x6b,0x09,0xfd,0x52,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x02,0x58,0x22,0x5a,0x2c,0x30,0xee,0x18,0x6f,0x51,0x22,0x24,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x78,0x3d,0x69,0x1b,0x00,0x00,0x02,0x00,0x21,0xff,0x81,0x04,0x25,0x04,0x00,0x00,0x17,0x00,0x1e,0x00,0x7d,0x40,0x32,0x07,0x28,0x09,0x0d,0x48,0x04, +0x1e,0x14,0x1e,0x02,0x34,0x0d,0x44,0x0d,0x02,0x06,0x0d,0x16,0x0d,0x26,0x0d,0x03,0x1d,0x96,0x40,0x11,0x0d,0x80,0x02,0x00,0x18,0x00,0x07,0x0d,0x95,0x06,0x15,0x0c,0x08,0x95,0x0a,0x0f,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x02,0xb8,0x01,0x03,0x40,0x0b,0x0f,0x03,0x01,0x03,0x03,0x14,0x0d,0x08,0x0c,0x0c,0x14,0xb8,0x01,0x03,0xb5, +0x1b,0x1b,0x20,0x09,0x0d,0x07,0x2f,0x33,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x39,0x39,0x10,0xce,0x1a,0x10,0xdc,0x1a,0xed,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x00,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x01,0x21,0x35, +0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x35,0x34,0x23,0x22,0x02,0x06,0x0f,0x03,0x8e,0x04,0x0d,0xfe,0xaa,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x90,0x3d,0xca,0x78,0x76,0x8e,0xac,0x9c,0xaa,0xac,0xb7,0x78,0x9a,0x46,0x39,0x48,0x37,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0x8f,0x9f,0x78, +0x5c,0x6a,0x7c,0x8c,0x5a,0x54,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x0b,0x0a,0x96,0x40,0x11,0x0e,0x17,0x11,0x91,0x09,0x30,0x01,0x03,0x95,0x17,0x1c,0x10,0x0c,0x95,0x0e,0x0f,0x11,0x0b,0x0b,0x06,0x00,0x0c,0x10,0x10,0x14,0x83,0x06,0x06,0x1a,0x0d,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe, +0x77,0xda,0xea,0xfe,0xbc,0xf7,0xb6,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xea,0xb4,0xcc,0xfe,0xf7,0x00,0x02,0xff,0xea,0xfe,0x21,0x03,0x8c,0x04,0x00,0x00,0x20,0x00,0x29,0x00,0xa0,0xb5,0x19,0x20,0x0b,0x01,0x4d,0x14,0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x01,0x4d,0x02,0x00,0x23,0x1e,0x0c, +0x0a,0x20,0xb8,0xff,0xc0,0x40,0x47,0x12,0x16,0x48,0x20,0x00,0x04,0x23,0x95,0x0f,0x0a,0x1f,0x0a,0x02,0x09,0x03,0x0a,0x0a,0x04,0x13,0x12,0x96,0x40,0x19,0x40,0x09,0x0c,0x48,0x19,0x16,0x04,0x19,0x96,0x09,0x30,0x28,0x95,0x04,0x1c,0x18,0x14,0x95,0x16,0x0f,0x19,0x13,0x13,0x0e,0x07,0x14,0x18,0x18,0x1c,0x21,0x0c,0x0e,0x26,0x1e, +0x02,0x1c,0x07,0x20,0x20,0x1c,0x83,0x0e,0x0e,0x2b,0x15,0x26,0x84,0x07,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x2b,0x1a,0xed,0x39,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0xed,0x10,0xd4,0xcd, +0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x2b,0x2b,0x01,0x26,0x27,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x07,0x16,0x17,0x25,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x03,0x8c,0x55,0x64,0xa6,0xfe,0xfe,0x94,0xad,0xb0, +0x8b,0xb3,0xc8,0x20,0xe1,0xcb,0x52,0x01,0x80,0xfd,0xbe,0x03,0x2d,0xfe,0x77,0xd6,0xee,0x43,0x3e,0x29,0xfe,0xc2,0xa8,0x81,0x4d,0x59,0xb4,0xab,0xfe,0x21,0x4f,0x46,0x95,0x7c,0x67,0x64,0x82,0x76,0x3e,0x46,0x92,0xa3,0x33,0x02,0x14,0x8c,0x33,0xfd,0xe1,0x1a,0xe7,0xb1,0x75,0x6b,0x2e,0x21,0x39,0x5c,0x32,0x28,0x5e,0x00,0x00,0x01, +0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x19,0x00,0x2a,0x40,0x15,0x13,0x08,0x10,0x01,0x15,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34, +0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x01,0x89,0xa3,0x4c,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x3f,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf, +0x06,0x02,0x00,0x19,0x00,0x2e,0x40,0x18,0x14,0x05,0x17,0x0d,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x17,0x01,0x0c,0x84,0x0d,0x0d,0x14,0x00,0x00,0x1b,0x05,0x83,0x14,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x12,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15, +0x11,0x23,0x11,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x70,0x48,0xa4,0x39,0x5c,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x73,0xa2,0x84,0xfe,0x12,0x01,0xee,0x5f,0x82,0x5c,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x01,0x00,0x00,0xff,0xea, +0x02,0xcb,0x05,0xec,0x00,0x19,0x00,0x30,0x40,0x19,0x15,0x06,0x18,0x0d,0x40,0x01,0x01,0x01,0x03,0x95,0x18,0x16,0x0d,0x00,0x0e,0x84,0x0d,0x0d,0x01,0x15,0x83,0x06,0x06,0x1b,0x01,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x35,0x35,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x27,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x86,0x94,0x7a,0x91,0x3c,0x68,0x6f,0x4a,0xa4,0x3e,0x58,0x7a,0x4f,0xef,0xc2,0x93,0x27,0x9b,0x4e,0x76,0x5c,0x45,0x6e,0x6b,0x73,0xa0,0x87,0x01,0xee,0xfe,0x12,0x5e,0x88,0x58,0x77,0xa0,0x5f,0x97,0xc9,0x00,0x00,0x01,0x00,0x60,0xfe,0x21, +0x03,0x60,0x04,0x18,0x00,0x13,0x00,0x2e,0x40,0x1b,0x10,0x13,0x20,0x13,0x30,0x13,0x03,0x13,0x11,0x95,0x02,0x1c,0x3f,0x0b,0x01,0x0b,0x0d,0x95,0x08,0x10,0x0b,0x13,0x13,0x15,0x0f,0x83,0x05,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x31,0x30,0x01,0x06,0x23,0x22,0x02,0x11,0x10,0x00,0x33,0x32, +0x17,0x15,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x03,0x60,0x84,0x9c,0xe8,0xf8,0x01,0x07,0xf7,0x87,0x7b,0x7e,0x84,0xfe,0xac,0x01,0x4a,0x8c,0x80,0xfe,0x77,0x56,0x01,0x7b,0x01,0x6c,0x01,0x7f,0x01,0x91,0x41,0xa4,0x5b,0xfd,0x86,0xfd,0x96,0x66,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x0b,0x00,0x15,0x00,0x21, +0x00,0x3f,0x40,0x24,0x16,0x63,0x40,0x1c,0x06,0x00,0x1c,0x63,0x14,0x30,0x11,0x95,0x00,0x16,0x0c,0x95,0x40,0x06,0x01,0x1f,0x62,0x19,0x0f,0x14,0x19,0x62,0x08,0x30,0x09,0x83,0x14,0x14,0x23,0x0f,0x83,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x03,0x22,0x02,0x11,0x10,0x21,0x32,0x12,0x11,0x10,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x74,0xfe,0xfe,0xfe,0xee,0x01,0x1b,0x01,0x04,0x01,0x02,0x01,0x11,0xfe,0xe6,0xff,0xb4,0xbd,0x01,0x71,0xb4,0xbd,0xfe,0x8f,0x2f,0x40,0x40,0x2f, +0x2e,0x43,0x43,0x18,0x01,0x8c,0x01,0x76,0x01,0x7c,0x01,0x9c,0xfe,0x76,0xfe,0x86,0xfe,0x83,0xfe,0x67,0x05,0x8f,0xfe,0xb3,0xfe,0xc8,0xfd,0x80,0x01,0x4c,0x01,0x38,0x02,0x81,0xfd,0x0e,0x42,0x2f,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x00,0x03,0x00,0xa6,0x00,0x00,0x03,0x7f,0x04,0x00,0x00,0x0d,0x00,0x14,0x00,0x1b,0x00,0x40,0x40,0x23, +0x08,0x15,0x95,0x40,0x0f,0x01,0x00,0x0f,0x95,0x09,0x30,0x16,0x95,0x00,0x15,0x0e,0x95,0x01,0x0f,0x08,0x0a,0x0f,0x12,0x83,0x05,0x05,0x0a,0x83,0x19,0x19,0x1d,0x0f,0x16,0x84,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x33,0x11, +0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x01,0x56,0xa4,0xb0,0xac,0xdb,0xca,0xaf,0xbc,0xa2,0xbe,0xb8,0xa8,0xba,0xd3,0xe3,0x04,0x00,0x85,0x79,0xac,0x35,0x05,0x27,0xca,0x89,0xa2,0x03,0x74,0xfe,0xe2,0x94,0x8a,0xfe,0x57,0xfe,0xc1, +0x9d,0xa2,0x00,0x02,0x00,0x5c,0xff,0xe8,0x04,0x02,0x04,0x18,0x00,0x10,0x00,0x24,0x00,0x42,0x40,0x24,0x00,0x12,0x95,0x40,0x11,0x06,0x0c,0x11,0x95,0x0c,0x30,0x18,0x95,0x0c,0x16,0x1e,0x95,0x06,0x10,0x00,0x0f,0x12,0x12,0x15,0x09,0x83,0x1b,0x1b,0x26,0x0f,0x21,0x83,0x03,0x15,0x83,0x0f,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f, +0xe1,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x35,0x34,0x25,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x01,0x2f,0xbd,0xd9,0xb5,0xee,0x01, +0x14,0xfe,0xe1,0xf3,0xc0,0xd4,0x02,0x10,0x56,0xfe,0xee,0x81,0x71,0xa6,0xbe,0xbf,0xa3,0x68,0x78,0x88,0x78,0x02,0x14,0x04,0x3d,0xa9,0x7e,0x9c,0xfe,0xe6,0xf4,0xf5,0xfe,0xd3,0x9e,0x8a,0xce,0x78,0x8e,0xaa,0x4f,0x5d,0xd2,0xc0,0xb9,0xd1,0x54,0x44,0x48,0x58,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x54,0x04,0xe2,0x00,0x27,0x00,0x57, +0x40,0x1c,0x12,0x95,0x40,0x15,0x1e,0x18,0x15,0x95,0x08,0x30,0x16,0x11,0x0f,0x95,0x18,0x16,0x07,0x09,0x00,0x02,0x96,0x25,0x09,0x95,0x1e,0x10,0x00,0x22,0xb8,0x01,0x03,0x40,0x10,0x04,0x06,0x13,0x13,0x11,0x0c,0x06,0x06,0x16,0x84,0x11,0x11,0x29,0x0c,0x83,0x1b,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x10, +0xd6,0xe1,0xc6,0x00,0x3f,0xed,0x2f,0xfd,0xc6,0x10,0xc6,0x3f,0xed,0x32,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x04, +0x54,0x30,0x2a,0x5e,0x16,0x06,0x9c,0x8f,0xa8,0xd1,0xc5,0xa7,0x6e,0x4b,0xdf,0x01,0x7f,0xaf,0xb8,0xec,0xfe,0xe6,0x01,0x34,0xf5,0x51,0x49,0x05,0x70,0x56,0x3c,0x34,0x04,0x52,0x1a,0x76,0x42,0x68,0x06,0x48,0xe1,0xb3,0xb8,0xd0,0x26,0x01,0x04,0x8b,0xfe,0x17,0x56,0x01,0x18,0xf0,0xef,0x01,0x39,0x16,0x22,0x03,0x4c,0x6f,0x1a,0x00, +0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xe2,0x04,0x00,0x00,0x0b,0x00,0x35,0x40,0x1c,0x03,0x95,0x40,0x08,0x06,0x05,0x08,0x95,0x0c,0x30,0x0b,0x00,0x06,0x05,0x15,0x06,0x0f,0x09,0x08,0x04,0x00,0x84,0x01,0x01,0x0d,0x04,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0xe2,0xa4,0xfe,0x0c,0xa4,0xa4,0x01,0xf4,0xa4,0x01,0xc6,0xfe,0x3a,0x04,0x00,0xfe,0x52,0x01,0xae,0x00,0x00,0x03,0xff,0x18,0xfe,0x1e,0x02,0x38,0x05,0xd9,0x00,0x0b,0x00,0x1d,0x00,0x25,0x00,0x70,0xb7,0x1e,0x0e,0x0c,0x20,0x1b,0x18,0x16,0x1d,0xb8, +0xff,0xc0,0x40,0x36,0x13,0x16,0x48,0x1d,0x0c,0x0c,0x10,0x20,0x96,0x0f,0x16,0x1f,0x16,0x02,0x09,0x03,0x16,0x24,0x96,0x10,0x1c,0x06,0x63,0x40,0x00,0x19,0x0f,0x09,0x62,0x03,0x18,0x1b,0x03,0x62,0xff,0x30,0x0c,0x0c,0x1b,0x0e,0x1b,0x22,0x84,0x13,0x1e,0x1b,0x84,0x18,0x26,0x27,0x18,0x84,0x08,0x30,0x2b,0x01,0x10,0xe1,0x33,0x18, +0xd4,0xe1,0x12,0x39,0x10,0xc1,0x2f,0x2b,0x01,0x10,0xe1,0x00,0x18,0x3f,0xd6,0x1a,0xed,0x3f,0xed,0x2f,0x5f,0x5e,0x5d,0xed,0x12,0x39,0x2f,0xcd,0x2b,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x26,0x27,0x02,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11, +0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0xfa,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x01,0x11,0x7c,0x7e,0x2d,0xfe,0xf7,0x68,0x88,0xb5,0x91,0x27,0x21,0xa4,0x7a,0x74,0xfe,0x6e,0x24,0x24,0xae,0x62,0x8f,0x05,0x04,0x3c,0x2e,0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0xf9,0x98,0x68,0x34,0xfe,0xe6,0x78,0x5e,0x6d,0x91,0x04, +0x04,0x12,0xfb,0xc2,0x2c,0x54,0x26,0x06,0x70,0x5a,0x00,0x01,0x00,0x04,0xfe,0x14,0x03,0x56,0x04,0x00,0x00,0x0c,0x00,0x2a,0x40,0x16,0x00,0x1c,0x02,0x06,0x0a,0x03,0x07,0x05,0x15,0x0c,0x0f,0x07,0x0f,0x0c,0x84,0x06,0x02,0x0a,0x0a,0x0e,0x05,0x07,0x2f,0xc6,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f, +0x31,0x30,0x01,0x23,0x11,0x23,0x01,0x23,0x01,0x01,0x33,0x01,0x33,0x11,0x33,0x03,0x56,0xa4,0x04,0xfe,0x52,0xd7,0x01,0xdb,0xfe,0x00,0xe6,0x01,0xc4,0x04,0xa4,0xfe,0x14,0x03,0xc1,0xfe,0x2b,0x01,0xee,0x02,0x12,0xfe,0x14,0x01,0xec,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf8,0x04,0x00,0x00,0x05,0x00,0x19,0x40,0x0c,0x04,0x95, +0x01,0x15,0x02,0x0f,0x00,0x00,0x07,0x04,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x02,0xf8,0xfd,0xae,0xa4,0x01,0xae,0x04,0x00,0xfc,0x8c,0x00,0x02,0x00,0x60,0xfe,0x29,0x05,0x21,0x06,0x02,0x00,0x19,0x00,0x26,0x00,0x38,0x40,0x1e,0x05,0x1b,0x13,0x07,0x10,0x24,0x95,0x0a, +0x16,0x1e,0x95,0x10,0x10,0x00,0x02,0x95,0x17,0x01,0x00,0x00,0x05,0x84,0x1a,0x13,0x07,0x07,0x28,0x21,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32, +0x17,0x33,0x11,0x34,0x36,0x33,0x32,0x17,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x21,0x37,0x36,0xa4,0xa4,0x04,0x6e,0xee,0xc2,0xea,0xff,0xd6,0xd3,0x60,0x04,0xb4,0x8a,0x48,0x2f,0xfe,0x4b,0xa7,0x7b,0x98,0xaa,0xa7,0x84,0x8b,0xae,0x05,0x5c,0x1b,0xcf,0xf9,0x81,0x02,0x85,0xc6,0x01,0x12,0xee,0x01, +0x00,0x01,0x30,0xa6,0x01,0x40,0x99,0xb7,0x12,0xfb,0xdb,0x9b,0x7b,0xad,0xde,0xc4,0xb3,0xc7,0xc2,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xe8,0x06,0x02,0x00,0x1f,0x00,0x50,0x40,0x2a,0x03,0x00,0x06,0x95,0x40,0x09,0x17,0x05,0x09,0x95,0x08,0x30,0x1a,0x0f,0x17,0x05,0x15,0x14,0x12,0x95,0x17,0x01,0x02,0x02,0x1a,0x04,0x07,0x07, +0x14,0x09,0x00,0x04,0x84,0x05,0x05,0x14,0x1a,0x83,0x0f,0x0f,0x21,0x14,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x36,0x37,0x36, +0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x89,0xc5,0xc5,0xa3,0xae,0xae,0x51,0x69,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x4e,0x41,0x02,0x04,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x7a,0x9d,0x68,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f, +0x7b,0x4b,0x7d,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x02,0xcf,0x06,0x02,0x00,0x1f,0x00,0x4e,0x40,0x2a,0x0e,0x0b,0x11,0x95,0x40,0x14,0x1d,0x10,0x14,0x95,0x08,0x30,0x10,0x15,0x4f,0x00,0x01,0x00,0x02,0x95,0x1d,0x01,0x13,0x13,0x10,0x1a,0x0c,0x0c,0x00,0x14,0x0b,0x10,0x84,0x0f,0x0f,0x05,0x00,0x00,0x21,0x05,0x83,0x1a,0x2f,0xe1, +0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17, +0x02,0xcf,0x87,0x94,0x7a,0x90,0x32,0x72,0x6b,0x4d,0xb0,0xb0,0xa4,0xc6,0xc6,0x41,0x54,0x7a,0x4f,0xf0,0xc0,0x94,0x87,0x05,0x29,0x4e,0x78,0x59,0x38,0x72,0x75,0x6e,0x9d,0x78,0x8b,0xfe,0x87,0x01,0x79,0x8b,0x54,0x80,0x53,0x79,0x9f,0x5f,0x95,0xcb,0x3e,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x27,0x05,0xec,0x00,0x15,0x00,0x22, +0x00,0x25,0x00,0x4a,0x40,0x29,0x11,0x05,0x0e,0x20,0x95,0x08,0x16,0x25,0x01,0x95,0x04,0x15,0x00,0x23,0x95,0x14,0x0f,0x1a,0x95,0x0e,0x10,0x12,0x00,0x11,0x14,0x16,0x03,0x01,0x25,0x84,0x04,0x04,0x0b,0x23,0x00,0x03,0x03,0x27,0x1d,0x83,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xc6,0x32,0x12,0x39,0x2f,0xe1,0x32,0x17,0x39,0x00,0x3f,0x3f, +0xed,0x3f,0xed,0x39,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x07,0x27,0xfd,0x9f,0x02,0x58,0xfc,0x4e,0x04,0x72,0xee,0xc2, +0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17,0xfc,0x45,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x03,0xd1,0xfc,0xbb,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0xfd,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x02,0x37,0xfd,0x0f,0x00,0x00,0x02,0x00,0x60,0xfe,0x21, +0x07,0x77,0x05,0xec,0x00,0x29,0x00,0x36,0x00,0x72,0x40,0x40,0x0b,0x0a,0x96,0x40,0x22,0x1f,0x28,0x22,0x96,0x08,0x30,0x01,0x03,0x95,0x28,0x1c,0x1c,0x10,0x19,0x34,0x95,0x13,0x16,0x0e,0x15,0x21,0x0c,0x95,0x1f,0x0f,0x2e,0x95,0x19,0x10,0x1d,0x00,0x22,0x0b,0x0b,0x06,0x01,0x0c,0x21,0x21,0x25,0x01,0x01,0x1c,0x1f,0x2a,0x03,0x0e, +0x84,0x0f,0x0f,0x16,0x25,0x83,0x06,0x06,0x38,0x31,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x17,0x39,0x39,0x2f,0x10,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x39,0x3f,0x3f,0xed,0x12,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xa4,0xb2,0xae,0xdf,0xdf,0xcd,0x52,0x01,0x7f,0xfd,0xbe, +0xa4,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x2e,0xfe,0x76,0xd7,0xec,0xfe,0xbd,0xf6,0xb6,0xfe,0xe4,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0xfe,0x72,0xa2,0x68,0xb6,0x90,0x95,0xa6,0x33,0x02,0x14,0xfc,0x8c,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x33,0xfd,0xe1,0x1a, +0xe9,0xb5,0xcc,0xfe,0xf7,0x03,0xb6,0x87,0x7f,0xb1,0xdf,0xc3,0xac,0xce,0xcb,0x00,0x00,0x04,0x00,0x60,0xff,0x81,0x07,0xdb,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x32,0x00,0x39,0x00,0xcb,0xb9,0x00,0x30,0xff,0xd8,0x40,0x4e,0x0b,0x10,0x01,0x4c,0x19,0x18,0x0b,0x10,0x01,0x4c,0x04,0x39,0x14,0x39,0x24,0x39,0x03,0x34,0x19,0x44,0x19, +0x02,0x06,0x19,0x16,0x19,0x26,0x19,0x03,0x09,0x13,0x07,0x10,0x2d,0x95,0x0a,0x16,0x02,0x00,0x00,0x32,0x33,0x03,0x06,0x19,0x38,0x96,0x40,0x1c,0x80,0x19,0x95,0x06,0x15,0x18,0x30,0x95,0x16,0x0f,0x27,0x95,0x40,0x10,0x10,0x14,0x00,0x30,0x18,0x18,0x1f,0x33,0x00,0x36,0x02,0x1a,0x05,0x1f,0x02,0xb8,0x01,0x03,0x40,0x0b,0x03,0x0f, +0x03,0x1f,0x03,0x02,0x0a,0x03,0x32,0x1f,0x03,0xb8,0x01,0x03,0x40,0x11,0x08,0x30,0x19,0x13,0x16,0x23,0x03,0x32,0x84,0x06,0x06,0x1f,0x0d,0x30,0x18,0x18,0x1f,0xb8,0x01,0x03,0xb5,0x36,0x36,0x3b,0x2a,0x83,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x32,0x2b,0x01,0x5f,0x5e,0x5d,0x10, +0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0xc0,0x18,0x2f,0x32,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x39,0x3f,0xfd,0x1a,0xdc,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0xce,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x5e,0x5d,0x5d,0x5d,0x2b,0x2b,0x21,0x06,0x07,0x23,0x36,0x37,0x21,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x10,0x00,0x33, +0x32,0x17,0x33,0x11,0x33,0x11,0x21,0x15,0x01,0x33,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x21,0x11,0x25,0x33,0x32,0x35,0x34,0x23,0x22,0x05,0xba,0x0c,0x04,0x90,0x04,0x0f,0xfe,0x3f,0x04,0x72,0xee,0xc2,0xe6,0x01,0x02,0xd6,0xce,0x62,0x04,0xa4,0x03,0x17, +0xfd,0x9f,0x92,0x86,0xf9,0x76,0x8e,0xac,0x9b,0xfc,0xd8,0xa4,0x80,0x98,0xa8,0xa4,0x89,0x8a,0xad,0x02,0xc9,0xfd,0xdb,0x01,0xd8,0xae,0xb4,0x75,0x9d,0x39,0x46,0x3b,0x44,0xb4,0xcc,0x01,0x16,0xe8,0x01,0x00,0x01,0x32,0xa8,0x02,0x7c,0xfe,0x14,0x2f,0xfc,0xbb,0x01,0x2e,0x78,0x5c,0x6b,0x7b,0x01,0xd7,0x87,0x7f,0xb1,0xdf,0xc3,0xac, +0xce,0xcb,0x02,0x37,0xfd,0x0f,0x09,0x5a,0x54,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x04,0x94,0x05,0x2f,0x00,0x1d,0x00,0x2c,0x00,0x53,0x40,0x2d,0x11,0x17,0x25,0x2b,0x04,0x09,0x23,0x95,0x1a,0x16,0x05,0x06,0x1f,0x06,0x00,0x95,0x03,0x0f,0x0c,0x0e,0x95,0x09,0x10,0x1e,0x07,0x0c,0x11,0x83,0x2b,0x2b,0x17,0x1f,0x0c,0x0c,0x17,0x83, +0x25,0x25,0x2e,0x02,0x1f,0x00,0x06,0x84,0x03,0x2f,0xe1,0x39,0x39,0xcd,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x23,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0xdb,0xb0,0xb0,0xa4,0x01,0x73,0x46,0x54,0x7c,0x60,0x64,0x85,0x52,0x60,0x47,0x7a,0x94,0x72,0xf1,0xef,0xfb,0xde,0x01,0x6d,0xc9,0x9f,0x9e,0x01,0x30,0x59,0x79,0x8a,0x6b,0x03,0x74,0x8c,0xfa,0x35, +0xfe,0xd1,0x18,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x40,0x8c,0x62,0x84,0xaa,0xcd,0xd7,0x01,0xe8,0xfe,0x24,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x38,0x8b,0x69,0x48,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x04,0x3e,0x06,0x02,0x00,0x22,0x00,0x2a,0x00,0x49,0x40,0x27,0x0b,0x0d,0x95,0x08,0x1c,0x23,0x29,0x95,0x12,0x16,0x1a,0x1b,0x25,0x1b, +0x15,0x95,0x18,0x0f,0x00,0x02,0x95,0x20,0x01,0x00,0x00,0x04,0x84,0x0b,0x24,0x10,0x1c,0x1c,0x2c,0x25,0x15,0x1b,0x84,0x17,0x18,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x33,0xc4,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14, +0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x04,0x3e,0x32,0x3d,0xaa,0xb9,0x8f,0x4b,0x2c,0x32,0x3d,0xac,0x3a,0x5f,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x02,0xb8,0x8d,0x4c,0x2c,0xfe,0x43,0xfe, +0xfe,0x46,0x51,0x3e,0x05,0x5c,0x1b,0xdf,0xfa,0xe7,0xa3,0xbe,0x13,0x93,0x1a,0xdf,0x81,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0xa0,0xa2,0xc0,0x12,0xfa,0xa6,0x02,0xde,0xfd,0xbf,0x67,0x58,0x00,0x00,0x02,0x00,0x2b,0xff,0xe8,0x05,0xaa,0x05,0x2f,0x00,0x2b,0x00,0x34,0x00,0x77,0x40,0x41,0x22,0x13,0x24,0x13,0x00,0x2a, +0x18,0x33,0x96,0x0f,0x24,0x1f,0x24,0x02,0x24,0x24,0x18,0x2e,0x96,0x2a,0x16,0x11,0x95,0x02,0x16,0x0a,0x0b,0x0e,0x0b,0x05,0x95,0x08,0x0f,0x1b,0x1d,0x95,0x18,0x10,0x0c,0x2c,0x22,0x31,0x20,0x13,0x00,0x27,0x20,0x83,0x15,0x15,0x27,0x0e,0x1b,0x1b,0x27,0x84,0x31,0x31,0x36,0x0e,0x05,0x0b,0x84,0x07,0x08,0x2f,0xcd,0xe1,0x39,0x39, +0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0xc4,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14, +0x33,0x32,0x37,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x03,0x18,0xa0,0x8a,0xfe,0xed,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x93,0x4a,0x66,0x58,0x01,0x22,0xf3,0x87,0x66,0x72,0x81,0x9e,0xc9,0x38,0xd2, +0x86,0x75,0x93,0xbd,0x9b,0xba,0x02,0x54,0x70,0x54,0x66,0x78,0x60,0x52,0x6a,0x01,0x3d,0x02,0x4f,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xc1,0xc3,0x42,0x84,0xb0,0xfd,0x01,0x33,0x32,0xa8,0x50,0xe1,0xb7,0x81,0x61,0x96,0x7a,0x5b,0x67,0x86,0xc6,0x42,0x3a,0x2b,0x56,0x00,0x00,0x01,0x00,0x35,0xfe,0x1e,0x05,0xc8,0x06,0x02,0x00,0x2e, +0x00,0x58,0x40,0x30,0x06,0x08,0x95,0x03,0x1c,0x28,0x2b,0x12,0x15,0x16,0x15,0x0d,0x95,0x2b,0x10,0x26,0x14,0x17,0x95,0x1a,0x0f,0x21,0x23,0x95,0x1e,0x01,0x06,0x06,0x0a,0x21,0x21,0x28,0x11,0x84,0x12,0x12,0x1a,0x00,0x84,0x0a,0x0a,0x30,0x17,0x14,0x26,0x84,0x19,0x1a,0x2f,0xcd,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f, +0xe1,0x32,0x39,0x2f,0x11,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x39,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x3f,0xfd,0xc6,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15, +0x15,0x21,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x05,0xc8,0xbe,0xae,0x4c,0x35,0x3d,0x44,0xc9,0xed,0x7c,0xa2,0xa3,0xf0,0xa3,0xaf,0xaf,0xbf,0x97,0x4f,0x33,0x3a,0x40,0xbb,0x01,0x93,0x04,0x74,0xdc,0xa8,0xb2,0x04,0xe7,0xf7,0x1a,0x99,0x27,0x01,0x3e,0x02,0x60,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x03,0x74,0xfc,0x8c,0x03,0x74,0x8c,0x92, +0xa8,0xc8,0x16,0x94,0x1f,0xee,0x89,0xaa,0xc2,0xd8,0xce,0x00,0x00,0x01,0x00,0x98,0xff,0xe8,0x04,0x50,0x05,0xfc,0x00,0x24,0x00,0x3c,0x40,0x21,0x07,0x0d,0x18,0x1e,0x04,0x10,0x05,0x95,0x21,0x16,0x13,0x15,0x95,0x10,0x10,0x00,0x01,0x18,0x83,0x0d,0x0d,0x1e,0x00,0x13,0x13,0x1e,0x83,0x07,0x07,0x26,0x01,0x84,0x00,0x2f,0xe1,0x12, +0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x20,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x98,0xa4,0x9f,0xa0,0x01, +0x2d,0x58,0x79,0x8c,0x69,0xc8,0x9e,0x7c,0x61,0x65,0x84,0x52,0x61,0x47,0x7a,0x97,0x6f,0xf1,0xef,0xfb,0xdd,0x05,0xfc,0xfb,0x9c,0x9d,0x89,0xa0,0x39,0x4b,0x30,0x39,0x89,0x6a,0x81,0xa5,0x2e,0xa6,0x4a,0x4f,0x3f,0x3e,0x4b,0x33,0x41,0x8b,0x62,0x86,0xa8,0xcc,0xd8,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x60,0x05,0xec,0x00,0x08, +0x00,0x0b,0x00,0x2b,0x40,0x16,0x0b,0x01,0x95,0x04,0x15,0x00,0x09,0x95,0x07,0x0f,0x05,0x00,0x09,0x00,0x03,0x03,0x0d,0x01,0x07,0x0b,0x84,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xc6,0x32,0x00,0x3f,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x07,0x21,0x11,0x04,0x60,0xfd,0xa0,0x02, +0x58,0xfc,0x4e,0xa4,0x03,0x16,0xf2,0xfd,0xdc,0x03,0xd1,0xfc,0xbb,0x8c,0x05,0xec,0xfe,0x14,0x8c,0xfd,0x0f,0x00,0x00,0x02,0x00,0x31,0x00,0x00,0x03,0xc2,0x05,0x9a,0x00,0x1b,0x00,0x37,0x00,0x22,0x40,0x10,0x27,0x0e,0x40,0x26,0x12,0x0a,0x0b,0x42,0x0a,0x0b,0x03,0x00,0x1c,0x39,0x0b,0x27,0x2f,0x33,0x10,0xc6,0x32,0x00,0x3f,0xcd, +0x2b,0x00,0x18,0x3f,0x1a,0xed,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, +0x03,0xc2,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x82,0xb6,0x93,0x6b,0x09,0x05,0x04,0x03,0x0f,0x73,0x91,0xb5,0x8b,0x6b,0x09,0x03,0x05,0x02,0x10,0x76,0x8c,0x6c,0x08,0x04,0x04,0x01,0x10,0x67,0x05,0x9a,0xfd,0x78,0x01,0x90,0x21, +0x3b,0x24,0x36,0xfe,0x6e,0x02,0x88,0xfe,0x5a,0x24,0x34,0x21,0x39,0x01,0xa4,0xfe,0x5a,0x20,0x38,0x16,0x42,0x01,0xa6,0xfc,0xed,0xfd,0x79,0x01,0x90,0x21,0x3b,0x24,0x36,0xfe,0x6e,0x02,0x87,0xfe,0x5b,0x24,0x35,0x21,0x3a,0x01,0xa3,0xfe,0x5b,0x20,0x39,0x17,0x42,0x01,0xa5,0x00,0x00,0x02,0x00,0x74,0x00,0x00,0x03,0x7f,0x05,0x9a, +0x00,0x07,0x00,0x0f,0x00,0x37,0x40,0x1c,0x0b,0x96,0x0e,0x08,0x0d,0x12,0x00,0x05,0x03,0x96,0x06,0x03,0x01,0x00,0x08,0x09,0x05,0x04,0x0c,0x0d,0x08,0x7f,0x09,0x09,0x11,0x0c,0x7f,0x0d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0xcd,0x32,0x3f,0x33,0xdd,0xed,0x31,0x30,0x01,0x23,0x11, +0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x03,0x7f,0x89,0xfe,0x06,0x88,0x03,0x0b,0x89,0xfe,0x06,0x88,0x03,0x0b,0x03,0xa2,0x01,0x74,0xfe,0x8c,0x01,0xf8,0xfa,0x66,0x01,0x74,0xfe,0x8c,0x01,0xf8,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x14,0x05,0xfc,0x00,0x13,0x00,0x23,0x00,0x3d,0x40,0x20,0x01,0x00, +0x14,0x96,0x15,0x15,0x1f,0x1a,0x95,0x0e,0x01,0x1f,0xec,0x07,0x16,0x01,0x14,0x11,0x83,0x18,0x14,0x18,0x14,0x1d,0x04,0x83,0x22,0x22,0x25,0x1d,0x84,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x15,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x36,0x36,0x35,0x34,0x23,0x22,0x11,0x11,0x10,0x21,0x32,0x36,0x35,0x10,0x02,0x9e,0xb4,0xc2,0xf7,0xcd,0xcd,0xdd,0xda,0xbc,0xa6,0xc6,0x95,0xfe,0xdf,0x78,0x98,0xd1,0xe7,0x01,0x10,0x83,0x8f,0x03,0x38,0x05,0x1d,0xd8,0xa6,0xc3,0xed,0xfb,0xea,0x02,0x8d, +0xbe,0xe4,0xb9,0x9b,0x7e,0xcc,0x78,0x82,0x14,0xa5,0x73,0xdc,0xfe,0xda,0xfd,0x87,0xfe,0xa6,0x90,0x87,0x01,0x30,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xc4,0x06,0x02,0x00,0x2a,0x00,0x32,0x00,0x6b,0x40,0x3b,0x02,0x20,0x00,0x28,0x2b,0x00,0xec,0x2a,0x2b,0xec,0x20,0x20,0x1d,0x10,0x0e,0x95,0x13,0x10,0x2d,0x95,0x26,0x01,0x1d,0xec, +0x05,0x16,0x30,0x84,0x23,0x40,0x0b,0x0e,0x48,0x23,0x23,0x2b,0x0c,0x2a,0x2a,0x28,0x02,0x28,0x08,0x20,0x2b,0x1a,0x84,0x08,0x16,0x84,0x0c,0x0c,0x10,0x28,0x84,0x2b,0x2b,0x34,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xd4,0xe1,0x11,0x39,0x11,0x12,0x39,0x10,0xca,0x2f,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x00,0x3f,0xed,0x3f, +0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x06,0x07,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x13,0x26,0x00,0x35,0x34,0x36,0x33,0x20,0x13,0x36,0x37,0x05,0x02,0x23,0x22, +0x06,0x15,0x14,0x16,0x04,0xc4,0x42,0x59,0x0b,0xfe,0xed,0xea,0xbe,0xdc,0x16,0x15,0x58,0x26,0x20,0x32,0x31,0x65,0x7a,0x15,0x16,0x89,0x75,0x9e,0xb5,0x09,0xeb,0xfe,0xda,0xad,0x87,0x01,0x70,0x13,0x4d,0x4c,0xfe,0xc3,0x0e,0xd3,0x3f,0x4f,0xc7,0x02,0xe6,0x19,0x0f,0xfe,0xa6,0xfe,0x84,0xdc,0xc1,0x55,0x81,0x81,0x3a,0x78,0x11,0x89, +0x12,0x8a,0x6b,0x3f,0x81,0x81,0x50,0x84,0x97,0x01,0x29,0x01,0x12,0x08,0x01,0x18,0xd0,0x97,0xc9,0xfd,0x4a,0x0c,0x1f,0x35,0x02,0x35,0x71,0x5a,0x98,0xc9,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xb8,0x05,0xb2,0x00,0x16,0x00,0x4f,0x40,0x27,0x12,0x0d,0x14,0x03,0x05,0x02,0x08,0x05,0x0d,0x0d,0x0a,0x07,0x00,0x02,0x91,0x14,0x04,0x0a, +0x03,0x07,0x00,0x12,0x00,0x03,0x03,0x18,0x05,0x0a,0x09,0x09,0x17,0x0e,0x0d,0x05,0x7e,0x08,0x08,0x18,0x17,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x11,0x33,0x33,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x11,0x12,0x39,0x11,0x12,0x39,0x31,0x30,0x01,0x26,0x23,0x22,0x07, +0x01,0x11,0x23,0x11,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x36,0x33,0x32,0x17,0x04,0xb8,0x2c,0x2c,0x52,0x60,0xfe,0xd9,0xa8,0xfe,0x33,0xbf,0x01,0x41,0x06,0x1d,0x03,0x08,0x1a,0xc7,0x4b,0x8c,0x5e,0x36,0x2c,0x05,0x06,0x14,0xbe,0xfd,0xb2,0xfd,0xf2,0x02,0x0e,0x03,0x8c,0xfd,0x78,0x0c,0x4c,0x1c,0x3c,0x01,0x8e,0x96, +0x7c,0x14,0xff,0xff,0xff,0xb1,0x00,0x00,0x05,0xa0,0x05,0xb2,0x00,0x27,0x05,0xb5,0x00,0xe8,0x00,0x00,0x01,0x07,0x01,0x9f,0xfe,0xe3,0xff,0x99,0x00,0x14,0xb3,0x01,0x17,0x03,0x01,0xb8,0xff,0xc4,0xb4,0x17,0x17,0x09,0x09,0x25,0x01,0x2b,0x35,0x00,0x3f,0x35,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xb8,0x06,0xf7,0x02,0x26,0x05,0xb5, +0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x96,0x01,0x70,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xd1,0x40,0x0a,0x26,0x20,0x09,0x16,0x25,0x02,0x01,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x03,0x00,0x60,0xfe,0x29,0x04,0xba,0x05,0xec,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x45,0x40,0x25,0x0a,0x00,0x12,0x1a,0x95,0x0c, +0x09,0x10,0x02,0x1b,0x13,0x19,0x95,0x40,0x00,0x03,0x16,0x0f,0x83,0x16,0x0e,0x00,0x1d,0x03,0x42,0x13,0x0c,0x00,0x84,0x19,0x09,0x03,0x03,0x21,0x1d,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x31,0x30,0x05,0x11,0x23, +0x11,0x26,0x02,0x35,0x34,0x00,0x37,0x11,0x33,0x11,0x16,0x12,0x15,0x14,0x00,0x03,0x11,0x36,0x36,0x35,0x34,0x26,0x01,0x11,0x06,0x06,0x15,0x14,0x16,0x02,0xdf,0xa3,0xdd,0xff,0x01,0x04,0xd8,0xa3,0xdf,0xfc,0xfe,0xfe,0xd9,0x93,0xa0,0xa0,0xfe,0xca,0x91,0xa3,0xa3,0x18,0xfe,0x41,0x01,0xbf,0x11,0x01,0x22,0xdf,0xe7,0x01,0x20,0x17, +0x01,0xd4,0xfe,0x2c,0x10,0xfe,0xe1,0xe5,0xe3,0xfe,0xdc,0x03,0x91,0xfc,0xe4,0x12,0xd0,0xac,0xab,0xd1,0xfc,0xf6,0x03,0x1c,0x12,0xd2,0xac,0xa6,0xd3,0x00,0x00,0x02,0x00,0x00,0xff,0xea,0x06,0x2d,0x04,0x00,0x00,0x16,0x00,0x28,0x00,0x69,0x40,0x38,0x08,0x0b,0x20,0x20,0x0b,0x0f,0x12,0x01,0x09,0x04,0x12,0x18,0x01,0x10,0x95,0x15, +0x0f,0x24,0x1d,0xec,0x06,0x0b,0x16,0x17,0x83,0x01,0x01,0x03,0x18,0x83,0x10,0x0e,0x40,0x00,0x00,0x03,0x83,0x27,0x0e,0x22,0x1a,0x1f,0x42,0x09,0x08,0x22,0x84,0x1f,0x1f,0x2a,0x1a,0x83,0x0e,0x0e,0x2a,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x39,0x2b,0x01,0x10,0xf2,0xe1,0x32,0x18,0x2f,0x1a,0x10,0xdd,0xe1,0x10, +0xc9,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x32,0x32,0x32,0x5f,0x5e,0x5d,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x22,0x07,0x35,0x36,0x33,0x21,0x05,0x21,0x06,0x15,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x15,0x10,0x33,0x32,0x36,0x35,0x34, +0x06,0x2d,0xb6,0x83,0xd5,0xbf,0xcf,0x64,0x04,0x67,0xce,0xb9,0xd1,0x84,0x7e,0x76,0x6a,0x96,0x05,0x2d,0xfe,0xa0,0xfc,0xd1,0x88,0x7b,0x6d,0xe8,0xa1,0xe5,0x6c,0x7c,0x03,0x74,0xdc,0xda,0xda,0xfa,0xbe,0xbe,0xfb,0xd9,0xd5,0xe1,0x58,0x9c,0x48,0x8c,0xe6,0xd6,0x96,0xa9,0x01,0x5a,0xfc,0xfc,0xfe,0xa6,0xaa,0x95,0xd6,0x00,0x00,0x01, +0x00,0x00,0xfe,0x96,0x04,0x90,0x04,0x18,0x00,0x33,0x00,0x83,0x40,0x28,0x06,0x08,0x95,0x40,0x03,0x34,0x80,0x11,0x29,0x27,0x15,0x29,0x15,0x17,0x2b,0x1f,0x1d,0x95,0x22,0x10,0x2b,0x0f,0x33,0x31,0x95,0x40,0x0c,0x16,0x17,0x29,0x11,0x2b,0x0f,0x27,0x15,0x25,0x17,0x06,0x06,0x0b,0xb8,0x01,0x2e,0x40,0x1a,0x33,0x2b,0x83,0x2c,0x2c, +0x00,0x2e,0x84,0x0f,0x0e,0x33,0x17,0x83,0x18,0x18,0x1a,0x1f,0x1f,0x25,0x42,0x25,0x84,0x1a,0x1a,0x35,0x1f,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe1,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x10,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0x3f,0xed,0x32,0x11, +0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x1a,0x10,0xdc,0x1a,0xed,0x32,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x26,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16, +0x33,0x32,0x37,0x04,0x90,0x98,0x7d,0x3f,0x34,0x34,0x3b,0x39,0x46,0x77,0x85,0x14,0x06,0xf1,0x94,0x56,0x14,0x27,0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x44,0x87,0x9f,0x18,0x92,0x1f,0x57,0x48,0x2a,0x10,0xdb,0xb0,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59, +0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x0f,0x00,0x00,0x02,0x00,0x56,0x00,0x00,0x05,0x48,0x05,0xb2,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x1f,0x15,0x91,0x00,0x03,0x03,0x02,0x0f,0x91,0x40,0x09,0x04,0x02,0x0c,0x7d,0x18,0x0e,0x01,0x12,0x02,0x42,0x12,0x7d, +0x06,0x06,0x1b,0x01,0x7e,0x02,0x02,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x3f,0x1a,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x26,0x00,0x35,0x34,0x00,0x21,0x20,0x00,0x15,0x14,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, +0x23,0xa8,0xfc,0xfe,0xd7,0x01,0x63,0x01,0x18,0x01,0x1e,0x01,0x59,0xfe,0xd2,0xfe,0xb5,0xd2,0xf7,0xf8,0xd1,0xd2,0xf7,0xf7,0x01,0x64,0xfe,0x9c,0x01,0x64,0x17,0x01,0x29,0xdf,0xf1,0x01,0x3e,0xfe,0xcf,0xf1,0xde,0xfe,0xcc,0x03,0x9c,0xde,0xb3,0xb1,0xe0,0xde,0xb3,0xb1,0xe0,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x50,0x04,0x18, +0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x1f,0x0f,0x95,0x09,0x10,0x02,0x1b,0x15,0x96,0x40,0x00,0x03,0x16,0x0c,0x83,0x18,0x0e,0x00,0x12,0x03,0x42,0x00,0x84,0x03,0x03,0x1c,0x12,0x83,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x3f,0x3f,0xed,0x31,0x30, +0x05,0x11,0x23,0x11,0x26,0x02,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xaa,0xa4,0xc5,0xe1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xe2,0xfe,0xf0,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x14,0xfe,0x3d,0x01,0xc3,0x18,0x01,0x18,0xd8,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa, +0xdc,0xfe,0xe0,0x03,0x86,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x00,0x02,0x00,0x5e,0xfe,0xae,0x04,0xa8,0x06,0x60,0x00,0x20,0x00,0x21,0x00,0x4d,0xb9,0x00,0x0d,0xff,0xd8,0x40,0x0f,0x13,0x1d,0x48,0x01,0x22,0x80,0x11,0x16,0x1c,0x0b,0x07,0x22,0x21,0x04,0x1c,0xb8,0xff,0xf0,0x40,0x15,0x10,0x16,0x48,0x1c,0x06,0x13,0x1f, +0x7e,0x01,0x03,0x03,0x08,0x13,0x7e,0x10,0x0e,0x0e,0x23,0x1a,0x7d,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0x33,0x2b,0x3f,0x12,0x39,0x39,0x12,0x39,0xc4,0x1a,0x10,0xce,0x31,0x30,0x2b,0x01,0x23,0x36,0x35,0x34,0x26,0x27,0x24,0x11,0x10,0x00,0x37,0x24,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14, +0x06,0x07,0x06,0x06,0x02,0x15,0x10,0x05,0x16,0x16,0x15,0x14,0x13,0x04,0x44,0xb4,0x4f,0x88,0xa3,0xfd,0xaa,0x01,0x15,0xfb,0x01,0x28,0x62,0x08,0x97,0x0d,0x84,0xca,0xca,0xdf,0x8f,0x01,0xcf,0xef,0xbb,0x21,0xfe,0xae,0x54,0x4c,0x3a,0x45,0x1b,0x62,0x02,0x68,0x01,0x13,0x01,0x79,0x47,0x3e,0x37,0x2f,0x1b,0x1c,0x24,0x28,0x5d,0x6c, +0x2f,0x2d,0x6e,0xfe,0xfa,0xbf,0xfe,0x23,0x57,0x2d,0x80,0x77,0x5a,0x06,0xa8,0x00,0x00,0x02,0x00,0x60,0xfe,0xc4,0x03,0xa4,0x04,0xc6,0x00,0x1e,0x00,0x1f,0x00,0x4f,0xb9,0x00,0x17,0xff,0xd8,0x40,0x1f,0x13,0x1d,0x48,0x1b,0x01,0x10,0x10,0x16,0x48,0x01,0x15,0x15,0x20,0x1f,0x10,0x0c,0x20,0x80,0x06,0xec,0x11,0x15,0x0b,0x0c,0x0c, +0x09,0x84,0x0e,0x0e,0x13,0x1d,0xb8,0x01,0x2e,0xb6,0x1a,0x18,0x18,0x21,0x04,0x83,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x00,0x3f,0xed,0x1a,0x10,0xce,0x3f,0x12,0x39,0x11,0x33,0x2b,0xc4,0x31,0x30,0x2b,0x01,0x0e,0x02,0x15,0x14,0x05,0x16,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x27, +0x24,0x11,0x10,0x25,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x37,0x03,0x10,0xb1,0xe2,0x75,0x01,0x25,0xc4,0xa3,0x50,0xb4,0x62,0x73,0x8d,0xfe,0x6e,0x01,0x52,0xd4,0x7a,0x0a,0x98,0x0c,0x0a,0x03,0xbe,0x36,0x5f,0xc8,0x94,0xfd,0x3a,0x28,0x7d,0x76,0x5f,0x58,0x50,0x54,0x3f,0x40,0x19,0x48,0x01,0x70,0x01,0x9e,0x8e,0x41,0x38, +0x33,0x1c,0x1a,0x24,0x25,0x85,0x20,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xa8,0x05,0x9a,0x00,0x11,0x00,0x38,0x40,0x0d,0x01,0x06,0x91,0x0d,0x0d,0x08,0x0c,0x91,0x09,0x03,0x08,0x01,0x10,0xb8,0x01,0x2c,0x40,0x0d,0xaf,0x03,0x01,0x03,0x03,0x08,0x0b,0x0b,0x13,0x0d,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xe1,0xc6,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x23,0x36,0x35,0x34,0x23,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x21,0x32,0x15,0x14,0x03,0x70,0x8c,0x08,0x69,0xfe,0xe1,0xa8,0x02,0xec,0xfd,0xbc,0x01,0x25,0xf6,0x02,0x0e,0x1e,0x28,0x5a,0xfd,0x52,0x05,0x9a,0x98,0xfe,0x40,0xce,0x34,0x00,0x00,0x01, +0x00,0x90,0xfe,0x29,0x03,0x54,0x04,0x18,0x00,0x0e,0x00,0x2a,0x40,0x15,0x07,0x95,0x04,0x04,0x0f,0x01,0x95,0x0d,0x10,0x09,0x1b,0x05,0x05,0x00,0x00,0x10,0x04,0x04,0x07,0x84,0x0a,0x2f,0xe1,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x20,0x11,0x15,0x21,0x15,0x21,0x11,0x23, +0x11,0x34,0x12,0x33,0x33,0x03,0x54,0xee,0xfe,0xcd,0x01,0xf8,0xfe,0x08,0xa3,0xf4,0xe4,0xec,0x03,0x8e,0xfe,0xb0,0x4c,0x8c,0xfc,0xc3,0x04,0x02,0xea,0x01,0x03,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x04,0x7d,0x05,0x9a,0x00,0x07,0x00,0x36,0x40,0x1b,0x04,0x91,0x40,0x07,0x05,0x02,0x07,0x91,0x2b,0x30,0x05,0x03,0x02,0x03,0x00,0x02, +0x07,0x06,0x04,0x02,0x00,0x06,0x04,0x00,0x00,0x09,0x04,0x2f,0x12,0x39,0x2f,0x10,0xcd,0x10,0xcd,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x01,0x23,0x13,0x21,0x01,0x33,0x03,0x04,0x7d,0xfe,0xdb,0xb4,0xf2,0xfc,0xb2,0x01,0x1c,0xb4,0xe9,0x03,0x25,0xfc,0xdb,0x02,0x8e,0x03,0x0c, +0xfd,0x8b,0x00,0x01,0x00,0x33,0xfe,0x1e,0x03,0xd1,0x06,0x02,0x00,0x23,0x00,0x5e,0x40,0x32,0x12,0x95,0x40,0x23,0x1d,0x0b,0x23,0x95,0x2b,0x30,0x1a,0x18,0x95,0x1d,0x01,0x08,0x06,0x95,0x40,0x0b,0x1c,0x11,0x00,0x0e,0x08,0x08,0x00,0x03,0x84,0x0e,0x0e,0x00,0x1a,0x1a,0x15,0x12,0x12,0x20,0x42,0x23,0x12,0x20,0x84,0x15,0x15,0x00, +0x00,0x25,0x12,0x24,0x10,0xce,0x11,0x39,0x2f,0x39,0x2f,0xe1,0x11,0x39,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0x10,0xf1,0xe1,0x11,0x39,0x2f,0x11,0x12,0x39,0x00,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x03,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x37, +0x21,0x13,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x07,0x03,0xd1,0x5d,0x7a,0x41,0x39,0x2b,0x21,0x2c,0x38,0x74,0x92,0x81,0x21,0xfd,0x3b,0x5d,0x7a,0x41,0x39,0x2a,0x22,0x2c,0x38,0x74,0x92,0x81,0x21,0x02,0x56,0xfe,0xfc,0xfe,0xab,0x91,0x56,0x6c,0x14,0x89,0x17,0xb3,0x87,0xaa,0x01,0x6c,0x5d, +0x01,0x04,0x01,0x55,0x90,0x5a,0x69,0x15,0x8a,0x16,0xb2,0x88,0xaa,0xfe,0x94,0x5c,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x85,0x05,0xb2,0x00,0x18,0x00,0x94,0x40,0x5c,0x5d,0x05,0x6d,0x05,0x7d,0x05,0x03,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x2c,0x04,0x5c,0x04,0x02,0x04,0x0e,0x01,0x5b,0x08,0x01,0x06,0x05,0x08,0x03,0x07,0x29,0x0d, +0x01,0x29,0x0a,0x79,0x0a,0x89,0x0a,0x03,0x0b,0x0a,0x0d,0x03,0x0c,0x0a,0x07,0x01,0x05,0x0c,0x01,0x5f,0x0c,0x01,0x07,0x0c,0x07,0x0c,0x0f,0x01,0x11,0x0f,0x91,0x14,0x04,0x06,0x07,0x07,0x0b,0x0f,0x0c,0x01,0x0c,0x0c,0x3a,0x0e,0x01,0x0e,0x05,0x08,0x0a,0x0d,0x04,0x06,0x11,0x01,0x17,0x7d,0x03,0x03,0x1a,0x11,0x2f,0x12,0x39,0x2f, +0xe1,0x33,0x12,0x17,0x39,0x5d,0x39,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x11,0x17,0x33,0x5d,0x11,0x39,0x39,0x5d,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x00,0x5d,0x21,0x23,0x12,0x11,0x34,0x27,0x01,0x27,0x01,0x26,0x27,0x01,0x27,0x01, +0x26,0x23,0x22,0x07,0x35,0x36,0x21,0x20,0x00,0x11,0x10,0x03,0xfc,0xba,0x97,0x0e,0xfe,0x4d,0x54,0x01,0xe4,0x20,0x32,0xfd,0xfa,0x56,0x02,0x00,0x7c,0xb1,0xff,0xce,0xd2,0x01,0x03,0x01,0x3c,0x01,0x74,0x01,0x01,0x01,0x4d,0x58,0x5a,0xfe,0xae,0x6c,0x01,0x7c,0x60,0x4e,0xfe,0x6c,0x6c,0x01,0x92,0x6c,0xda,0xc2,0xb0,0xfe,0x1a,0xfe, +0x94,0xfe,0xc4,0x00,0x00,0x01,0xff,0x7b,0xfe,0x29,0x03,0x77,0x06,0x02,0x00,0x14,0x00,0x8d,0x40,0x5a,0x05,0x08,0x0a,0x0d,0x0e,0x04,0x0e,0x06,0x08,0x05,0x03,0x07,0x66,0x0d,0x01,0x0a,0x0d,0x01,0x0a,0x0a,0x01,0x0b,0x0d,0x0a,0x03,0x0c,0x16,0x07,0x76,0x07,0x02,0x07,0x76,0x0c,0x01,0x1d,0x0c,0x01,0x0c,0x0b,0x0e,0x7b,0x0e,0x02, +0x0c,0x04,0x2c,0x04,0x5c,0x04,0x6c,0x04,0xcc,0x04,0xdc,0x04,0x06,0x0e,0x0c,0x07,0x04,0x04,0x01,0x1b,0x0f,0xee,0x10,0x01,0x06,0x07,0x07,0x0b,0x0c,0x0c,0x04,0x0e,0x01,0x05,0x08,0x0a,0x0d,0x04,0x0f,0x13,0x84,0x03,0x03,0x16,0x15,0x0f,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x33,0x39,0x39,0x39,0x2f,0x33,0x33,0x2f,0x33, +0x00,0x3f,0xed,0x3f,0x17,0x39,0x5d,0x5d,0x2f,0x5d,0x5d,0x2f,0x5d,0x11,0x17,0x33,0x5d,0x5d,0x5d,0x11,0x17,0x33,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x23,0x12,0x11,0x34,0x27,0x05,0x27,0x25,0x26,0x27,0x05,0x27,0x25,0x02,0x25,0x35,0x04,0x00,0x11,0x10,0x02,0xa4,0xbc,0xed,0x08,0xfe,0x2f,0x31,0x01,0xe7,0x1e,0x3e, +0xfe,0x1a,0x30,0x01,0xd0,0xfa,0xfe,0x65,0x01,0xc2,0x02,0x3a,0xfe,0x29,0x01,0x4b,0x01,0x8a,0x4f,0x41,0xaa,0x82,0xb2,0x7c,0x7a,0xb2,0x81,0xac,0x01,0x88,0x4b,0xa6,0x58,0xfd,0x27,0xfe,0x2f,0xfe,0x94,0x00,0x00,0x01,0x00,0xb8,0xfe,0x1e,0x06,0x66,0x05,0x9a,0x00,0x2f,0x00,0x85,0x40,0x4b,0x3a,0x23,0x01,0x0c,0x91,0x00,0x07,0x10, +0x07,0x02,0x09,0x03,0x07,0x03,0x0a,0x91,0x09,0x10,0x91,0x09,0x03,0x1c,0x0d,0x18,0x01,0x0d,0x04,0x18,0x14,0x1e,0x2a,0x22,0x91,0x40,0x16,0x1a,0x13,0x2e,0x26,0x1e,0x03,0x03,0x10,0x10,0x40,0x09,0x14,0x48,0x10,0x02,0x13,0x0a,0x18,0x27,0x26,0x0a,0x0a,0x1d,0x2f,0x7e,0x13,0x2e,0x0e,0x27,0x1e,0x26,0x42,0x27,0x7e,0x26,0x26,0x31, +0x1e,0x7e,0x1d,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x39,0x5f,0x5e,0x5d,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5f,0x5e,0x5d,0xed,0x31,0x30,0x01,0x5d,0x01,0x10,0x00,0x21,0x22, +0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x37,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x66,0xfe,0xc1,0xfe,0xa4,0x47,0x7a,0x7a,0x30,0x68,0x56,0x56,0x70,0x38,0x72,0x71,0x50,0xf7,0xe5,0x0f, +0x06,0x6d,0xca,0xd7,0x48,0x72,0xe4,0xfe,0xac,0xa8,0x67,0x7d,0x67,0x91,0xa8,0xe2,0x6c,0x8c,0xa8,0x01,0x29,0xfe,0x62,0xfe,0x93,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0xe8,0xfc,0xb2,0xd4,0xd4,0x01,0xc4,0x03,0xee,0xfc,0x26,0xa5,0x9c,0xbf,0x86,0x03,0xd6,0xfc,0x12,0xfe,0xd3,0xb5,0x90,0x03,0xd6,0x00,0x00,0x01,0x00,0xa6,0xfe,0x1c, +0x06,0x54,0x04,0x00,0x00,0x30,0x00,0x7d,0x40,0x49,0x0c,0x95,0x04,0x07,0x14,0x07,0x02,0x07,0x03,0x0a,0x95,0x09,0x10,0x95,0x09,0x42,0x03,0x1c,0x19,0x13,0x1b,0x2f,0x27,0x1f,0x0f,0x2b,0x23,0x95,0x40,0x16,0x1b,0x16,0x03,0x10,0x2d,0x10,0x01,0x02,0x0f,0x10,0x1f,0x10,0x02,0x09,0x03,0x10,0x40,0x0c,0x15,0x48,0x10,0x13,0x0a,0x0a, +0x1e,0x30,0x84,0x13,0x2f,0x0e,0x28,0x1f,0x27,0x42,0x19,0x28,0x84,0x27,0x27,0x32,0x1f,0x84,0x1e,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x11,0x39,0x18,0x2f,0x12,0x39,0x2b,0x5f,0x5e,0x5d,0x5f,0x5d,0x11,0x33,0x00,0x3f,0x33,0x1a,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x39,0x3f,0xe6,0xed,0x10,0xed,0x10, +0xdc,0x5d,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x13,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x06,0x54,0xfe,0xc9,0xfe,0xa5,0x46,0x6f,0x6f,0x34, +0x70,0x4a,0x56,0x6c,0x33,0x6c,0x6b,0x51,0xef,0xe8,0x0c,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0x01,0x5c,0xfe,0x3d,0xfe,0x85,0x0c,0x0b,0x19,0x8e,0x16,0x0b,0x0b,0xf5,0x01,0x03,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x02,0x77,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd, +0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0x00,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0xb2,0x00,0x18,0x00,0x42,0x40,0x23,0x0b,0x09,0x1b,0x09,0x02,0x02,0x16,0x16,0x14,0x91,0x04,0x04,0x17,0x01,0x0d,0x0f,0x91,0x0a,0x04,0x17,0x03,0x01,0x0d,0x0d,0x16,0x11,0x00,0x7e,0x16,0x01,0x01,0x1a,0x11,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f, +0x33,0xe1,0x11,0x12,0x39,0x2f,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x01,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd5,0xff,0x00,0xb4,0x98,0x40,0x3f,0x3d,0x3a,0xac, +0xa9,0x94,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x06,0xd8,0xcf,0xfd,0x18,0x96,0x1a,0xfe,0xce,0x98,0xb4,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x33,0xfe,0x29,0x03,0x85,0x04,0x18,0x00,0x18,0x00,0x42,0x40,0x26,0x0a,0x08,0x1a,0x08,0x02,0x0a,0x06,0x1a,0x06,0x02,0x01,0x1b,0x03,0x05,0x17,0x0c,0x0e,0x95,0x09,0x10,0x17,0x0f,0x13,0x95, +0x05,0x16,0x0c,0x0c,0x10,0x18,0x84,0x01,0x17,0x17,0x1a,0x10,0x84,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x11,0x12,0x39,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x01,0x23,0x11,0x23,0x06,0x23,0x20,0x11,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11, +0x33,0x03,0x85,0xa3,0x05,0x71,0xd4,0xfe,0x9b,0x01,0x48,0x3a,0x35,0x34,0x35,0xaa,0x71,0x7c,0x7a,0xa4,0xa3,0xfe,0x29,0x02,0x73,0xb4,0x02,0x18,0x02,0x18,0x14,0x8d,0x17,0xfe,0x7a,0xd4,0xc2,0xbc,0x8e,0x02,0x44,0x00,0x00,0x01,0x00,0x00,0xfe,0x1e,0x04,0xb8,0x05,0x9a,0x00,0x22,0x00,0x5e,0x40,0x37,0x2b,0x10,0x3b,0x10,0x02,0x44, +0x01,0x01,0x0b,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x02,0x09,0x91,0x08,0x0f,0x91,0x08,0x02,0x1c,0x1d,0x18,0x18,0x16,0x91,0x1f,0x1f,0x19,0x1c,0x03,0x19,0x02,0x0f,0x0f,0x40,0x09,0x12,0x48,0x0f,0x09,0x22,0x7e,0x13,0x13,0x24,0x1d,0x18,0x7e,0x1a,0x09,0x2f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f, +0x3f,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x3f,0x33,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x01,0x5d,0x5d,0x25,0x10,0x21,0x22,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xb8,0xfd,0x71,0x45,0x77,0x77, +0x38,0x68,0x56,0x56,0x70,0x36,0x73,0x72,0x50,0xf7,0xe8,0xaa,0x97,0xbf,0xac,0xa8,0xa8,0xb9,0xcd,0xd3,0xfb,0xec,0xfd,0x32,0x0c,0x0b,0x17,0x96,0x19,0x0b,0x0c,0x01,0x13,0x01,0x21,0xc8,0xb0,0xcf,0x71,0xfd,0x40,0x05,0x9a,0xfd,0xb6,0x78,0xfe,0xec,0xe5,0x00,0x00,0x02,0xff,0xec,0xff,0xe8,0x03,0xe8,0x04,0x18,0x00,0x26,0x00,0x2f, +0x00,0xc5,0x40,0x59,0x1c,0x1d,0x16,0x1b,0x0d,0x0e,0x1a,0x0e,0x27,0x0c,0x28,0x18,0x17,0x1d,0x16,0x2f,0x19,0x2f,0x1c,0x17,0x1d,0x16,0x1d,0x27,0x0d,0x0c,0x28,0x0c,0x1d,0x21,0x15,0x0c,0x08,0x29,0x0e,0x0f,0x95,0x2e,0x2f,0x2e,0x25,0xec,0x04,0x00,0x04,0x10,0x04,0x02,0x2e,0x04,0x2e,0x04,0x08,0x28,0x29,0x95,0x16,0x19,0x1a,0x03, +0x15,0x10,0x08,0xec,0x21,0x16,0x00,0x1d,0x16,0x1e,0x12,0x28,0x0c,0x0b,0x2c,0x0d,0x0e,0x1b,0x1c,0x04,0x1a,0x12,0x17,0x18,0x27,0x2f,0x04,0x2c,0x1a,0xb8,0x01,0x2e,0xb3,0x19,0x19,0x0b,0x2c,0xb8,0x01,0x2e,0x40,0x0b,0x12,0x12,0x01,0x1e,0x84,0x0b,0x0b,0x31,0x00,0x84,0x01,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, +0x39,0x2f,0xe1,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0xed,0x3f,0x17,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x04,0xc0,0x08,0xc0,0x10,0x87, +0xc0,0x04,0xc0,0x08,0xc0,0x31,0x30,0x33,0x23,0x36,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x37,0x33,0x06,0x07,0x16,0x15,0x14,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x8c,0xa0,0x13,0x85,0x68,0x65,0x6f,0x62,0x38, +0x5e,0x8c,0x38,0xa6,0xbe,0x78,0xa2,0xb9,0x96,0xa6,0x8b,0x1d,0x15,0x9b,0x27,0x42,0x76,0xec,0xa6,0x82,0x70,0x56,0x22,0x48,0x02,0x14,0x62,0x7d,0x52,0x5e,0x87,0x8c,0x8f,0xa4,0x64,0x58,0xdc,0x9d,0x78,0x63,0xa8,0x83,0x68,0x71,0x99,0x6c,0x32,0x3a,0x6f,0x61,0x98,0xc0,0xd6,0xfe,0xce,0x6a,0x52,0x02,0x91,0x59,0x43,0x35,0x68,0x00, +0x00,0x01,0x00,0x48,0xff,0xe8,0x04,0xae,0x05,0xb2,0x00,0x29,0x00,0x52,0x40,0x2e,0x03,0x28,0x13,0x28,0x02,0x0c,0x1c,0x06,0x23,0x04,0x03,0x29,0x29,0x19,0x26,0x13,0x13,0x03,0x0f,0x91,0x19,0x04,0x26,0x91,0x03,0x13,0x13,0x11,0x7e,0x16,0x1c,0x7d,0x0c,0x16,0x0c,0x16,0x0c,0x06,0x00,0x7e,0x29,0x29,0x2b,0x23,0x7d,0x06,0x2f,0xe1, +0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x32,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x11,0x12,0x39,0x2f,0x11,0x17,0x39,0x31,0x30,0x5d,0x01,0x06,0x00,0x21,0x22,0x24,0x35,0x34,0x36,0x36,0x25,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x00,0x15,0x14,0x06,0x06, +0x07,0x05,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x04,0xae,0x17,0xfe,0xb7,0xfe,0xf4,0xe9,0xfe,0xef,0x68,0xb4,0x01,0x4e,0xda,0xd0,0x78,0x9c,0x14,0xa4,0x16,0xa7,0x93,0xbf,0x01,0x41,0x3a,0x72,0x33,0xfe,0x73,0xd8,0xb4,0xa0,0xc0,0xf2,0x0c,0x02,0x0a,0xfe,0xfe,0xdc,0xfd,0xbb,0x78,0xaf,0x5c,0x4d,0x30,0x68,0x6a,0xa8,0x6c,0x25, +0x2f,0x30,0x32,0x69,0x8d,0xff,0x00,0xaa,0x46,0x6c,0x4d,0x0c,0x61,0x46,0xb4,0x80,0xa3,0xd3,0xb8,0x00,0x00,0x01,0x00,0x3e,0xff,0xe8,0x03,0x90,0x04,0x18,0x00,0x27,0x00,0x6e,0x40,0x29,0x05,0x09,0x15,0x09,0x02,0x0b,0x09,0x24,0x1f,0x1e,0x03,0x20,0x27,0x30,0x27,0x02,0x27,0x27,0x19,0x24,0x13,0x40,0x09,0x0c,0x48,0x13,0x13,0x03, +0x0f,0x95,0x19,0x10,0x24,0x95,0x03,0x16,0x1c,0x84,0x0c,0x13,0x11,0xb8,0x01,0x2e,0x40,0x0d,0x10,0x16,0x20,0x16,0x30,0x16,0x03,0x16,0x0c,0x16,0x0c,0x06,0x00,0xb8,0x01,0x2e,0xb5,0x27,0x27,0x29,0x21,0x84,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xe1,0x32,0x10,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39, +0x2f,0x2b,0x11,0x12,0x39,0x2f,0x5d,0x11,0x39,0x39,0x11,0x39,0x39,0x5d,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x04,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x90,0x0a,0xf6,0xd2,0xad,0xd3,0x4a, +0x85,0xe1,0x97,0xa2,0x51,0x5d,0x21,0x98,0x1e,0x7c,0x6b,0x9d,0x01,0x05,0x6b,0xfe,0xa0,0x7c,0x7c,0x68,0x8c,0xa8,0x04,0x01,0xa0,0xd0,0xe8,0xb0,0x89,0x56,0x7e,0x47,0x34,0x23,0x44,0x41,0x78,0x46,0x29,0x31,0x31,0x37,0x53,0x6d,0xca,0x75,0x52,0x76,0x47,0x58,0x4b,0x50,0x65,0x9f,0x8f,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xb0, +0x05,0xb2,0x00,0x1c,0x00,0x1f,0x00,0xce,0x40,0x7a,0x1d,0x1e,0x8d,0x1e,0xbd,0x1e,0x03,0x74,0x0f,0xe4,0x0f,0x02,0x1e,0x1b,0x1f,0x19,0x0f,0x02,0x10,0x1c,0x0e,0x1c,0x1e,0x1f,0x19,0x04,0x03,0x02,0x10,0x1d,0x05,0x1d,0x0f,0x03,0x02,0x10,0x02,0x1e,0x1b,0x1a,0x1f,0x19,0x1f,0x10,0x42,0x0e,0x72,0x0e,0x82,0x0e,0x02,0x16,0x0e,0x46, +0x0e,0x56,0x0e,0x03,0x0e,0x1c,0x0c,0x19,0x42,0x05,0x76,0x05,0x01,0x05,0x04,0x1a,0x03,0x1b,0x1e,0x1d,0x07,0x1f,0x17,0x09,0x15,0x03,0x07,0x91,0x12,0x0c,0x04,0x1c,0x02,0x76,0x02,0x01,0x0f,0x02,0x1f,0x02,0x02,0x02,0x1f,0x91,0x01,0x10,0x19,0x19,0x1f,0x1f,0x02,0x15,0x0e,0x05,0x05,0x1d,0x1d,0x1c,0x09,0x15,0x09,0x15,0x09,0x02, +0x1c,0x1c,0x21,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x12,0x39,0x11,0x33,0x00,0x2f,0xed,0x39,0x5d,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x17,0x39,0x5d,0x10,0xe4,0x11,0x12,0x39,0x5d,0x5d,0x10,0xe6,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0x0e,0xc0, +0x10,0x87,0x08,0xc0,0x05,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x01,0x3d,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x21,0x35,0x01,0x27,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x07,0x01,0x27,0x01,0x01,0x04,0xb0,0xfb,0x64,0x01,0xf4,0x37,0x3b,0x46,0x2d, +0x2c,0x2c,0x2b,0x37,0x5a,0x8a,0x51,0x52,0x8b,0x59,0x36,0x2c,0x2c,0x2c,0x2c,0x4a,0x3c,0x36,0x01,0xf6,0xee,0xfe,0x9e,0xfe,0x9e,0x31,0x03,0xc1,0x6a,0x72,0x4c,0x14,0x98,0x14,0x76,0x9c,0x9e,0x74,0x14,0x98,0x14,0x49,0x75,0x66,0xfc,0x3b,0x67,0x02,0xb4,0xfd,0x4c,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x03,0xcd,0x04,0x18,0x00,0x1a, +0x00,0x1d,0x00,0x76,0x40,0x47,0x03,0x0e,0x33,0x0e,0x43,0x0e,0xd3,0x0e,0x04,0x0e,0x0b,0x19,0x03,0xcb,0x1c,0xdb,0x1c,0x02,0x8f,0x1c,0x01,0x14,0x1c,0x01,0x1c,0x03,0x1d,0x08,0x14,0x16,0x03,0x06,0x95,0x11,0x0b,0x10,0x1a,0x02,0x0b,0x02,0x2b,0x02,0x02,0x02,0x1d,0x95,0x01,0x19,0x03,0x1a,0x1d,0x14,0x02,0x1b,0x1a,0x08,0x0f,0x14, +0x01,0x00,0x08,0x01,0x14,0x08,0x14,0x08,0x02,0x1a,0x1a,0x1f,0x02,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x12,0x39,0x11,0x12,0x39,0x12,0x39,0x39,0x00,0x2f,0xed,0x39,0x5d,0x11,0x33,0x3f,0x33,0xed,0x17,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x33,0x12,0x39,0x5d,0x31,0x30,0x21,0x21,0x35,0x01,0x27,0x26, +0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x07,0x01,0x27,0x03,0x03,0x03,0xcd,0xfc,0x47,0x01,0x88,0x25,0x3b,0x40,0x21,0x21,0x20,0x2c,0x50,0x66,0x34,0x35,0x67,0x4f,0x2b,0x21,0x21,0x20,0x46,0x3c,0x22,0x01,0x8b,0xe3,0xfc,0xfc,0x23,0x02,0xba,0x44,0x6d,0x0f,0x8b,0x0e,0x48, +0x5e,0x5f,0x47,0x0e,0x8b,0x0f,0x6d,0x3f,0xfd,0x41,0x69,0x01,0xc6,0xfe,0x3a,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xee,0x06,0x04,0x00,0x1e,0x00,0x2a,0x00,0x74,0x40,0x34,0x33,0x18,0x43,0x18,0x53,0x18,0x03,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x03,0x99,0x05,0x01,0x0b,0x13,0x1f,0x91,0x0d,0x0d,0x19,0x25,0x03,0x91,0x0f,0x1d,0x1f, +0x1d,0x2f,0x1d,0x03,0x1d,0x19,0x01,0x91,0x00,0x07,0x91,0x00,0x42,0x19,0x01,0x25,0x91,0x13,0x13,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x0e,0x0c,0x12,0x48,0x01,0x05,0x01,0x0a,0x10,0x7d,0x28,0x28,0x2c,0x0a,0x22,0xb9,0x01,0x2f,0x00,0x16,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, +0xe6,0xed,0x10,0xed,0x10,0xdc,0x5d,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x06,0x03,0x33,0x36,0x21,0x32,0x00,0x15,0x14,0x00,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x04, +0xc2,0x50,0x68,0x33,0x6a,0x6b,0x4a,0xc2,0xc7,0x15,0x09,0xa3,0x01,0x07,0xf6,0x01,0x2b,0xfe,0xb9,0xff,0xfe,0xe6,0xfe,0xd0,0x01,0x23,0x01,0x3d,0x44,0x6e,0x6d,0x35,0x60,0xfe,0x3e,0xb4,0xe2,0xd7,0xb9,0xb7,0xdd,0xd7,0x06,0x04,0x96,0x18,0x0a,0x0a,0xe7,0xfe,0xef,0xc8,0xfe,0xce,0xf0,0xf2,0xfe,0xc2,0x01,0x58,0x01,0x45,0x01,0xda, +0x01,0xa3,0x0a,0x0a,0xfd,0xb4,0xd8,0xa5,0xbe,0xe8,0xe0,0xb1,0xb2,0xe0,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x06,0x06,0x00,0x1e,0x00,0x2c,0x00,0x75,0x40,0x2f,0x6b,0x1e,0x7b,0x1e,0x02,0x0c,0x09,0x1c,0x09,0x2c,0x09,0x8c,0x09,0x04,0x0b,0x1f,0x1f,0x2a,0x95,0x0d,0x0d,0x19,0x24,0x03,0x95,0x1d,0x40,0x09,0x0e,0x48,0x1d,0x19, +0x01,0x95,0x00,0x42,0x07,0x95,0x19,0x01,0x24,0x95,0x13,0x16,0x1b,0x05,0x05,0xb8,0xff,0xc0,0x40,0x18,0x0f,0x24,0x48,0x0a,0x05,0x21,0x6f,0x01,0x7f,0x01,0x8f,0x01,0x03,0x01,0x01,0x16,0x10,0x83,0x27,0x27,0x2e,0x21,0x83,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x2b,0x11,0x33,0x00,0x3f,0xed,0x3f, +0xed,0xf6,0xed,0x10,0xdc,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x32,0x12,0x39,0x31,0x30,0x5d,0x5d,0x01,0x15,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x02,0x03,0x33,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x16,0x33,0x32,0x01,0x06,0x15,0x14,0x12,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x03,0xdb,0x38,0x4f,0x18,0x39,0x3a,0x2f,0xac,0xc6,0x1a,0x04,0x81,0xe1,0xdc,0x01,0x00,0xfe,0xe8,0xea,0xed,0xfe,0xff,0x01,0x21,0x01,0x21,0x20,0x45,0x45,0x1e,0x44,0xfd,0x5e,0x04,0xb1,0x9f,0xa0,0xb0,0xb3,0xa3,0x63,0xb3,0x06,0x06,0x8b,0x11,0x04,0x04,0xfe,0xfc,0xfe,0xfc,0xae,0xfe,0xe4,0xf8,0xf4,0xfe,0xd8,0x01,0x57,0x01,0x40, +0x01,0xc1,0x01,0xc2,0x04,0x04,0xfc,0xcc,0x41,0x35,0xd8,0xfe,0xfa,0xcf,0xbd,0xc3,0xcd,0x71,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x7b,0x05,0x9a,0x00,0x13,0x00,0x36,0x40,0x17,0x09,0x01,0x04,0x91,0x12,0x0f,0x0f,0x03,0x10,0x03,0x03,0x12,0x01,0x7e,0x0f,0x04,0x04,0x0c,0x00,0x00,0x15,0x09,0x07,0xb9,0x01,0x2e,0x00,0x0c,0x2f,0xe1, +0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x3f,0x12,0x39,0x2f,0x33,0xfd,0x32,0xc6,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x21,0x33,0x11,0x33,0x11,0x21,0x04,0x7b,0xfe,0x33,0xa8,0xff,0x00,0x68,0x08,0x8e,0x0e,0x01,0x00,0xfc,0xa8,0x01,0xcd,0x04,0x00,0xfc,0x00,0x04, +0x00,0x5a,0x28,0x1e,0x32,0x34,0xd2,0x01,0x02,0xfe,0xfe,0x00,0x00,0x01,0x00,0x00,0xfe,0x96,0x03,0x4e,0x05,0x2f,0x00,0x18,0x00,0x3a,0x40,0x1d,0x05,0xec,0x40,0x04,0x19,0x80,0x0e,0x09,0x16,0x01,0x09,0x95,0x17,0x14,0x0f,0x05,0x17,0x01,0x84,0x14,0x09,0x09,0x11,0x00,0x1a,0x0e,0x0c,0xed,0x11,0x2f,0xe1,0x32,0x10,0xc6,0x11,0x39, +0x2f,0x33,0xe1,0x32,0xc6,0x00,0x3f,0x33,0xed,0x32,0xcd,0x10,0xc6,0x1a,0x10,0xde,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x10,0x05,0x35,0x36,0x36,0x35,0x11,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x33,0x33,0x35,0x37,0x11,0x21,0x03,0x4e,0xfe,0xc0,0xfe,0xa0,0x68,0x54,0x7a,0x60,0x06,0x8c,0x0a,0xf0,0x7a,0xa4,0x01,0x40,0x03, +0x74,0xfc,0xd6,0xfe,0x90,0x44,0x9f,0x16,0x7e,0x7f,0x03,0x2c,0x53,0x21,0x1e,0x30,0x2e,0xc0,0xfa,0x35,0xfe,0xd1,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x90,0x04,0x18,0x00,0x29,0x00,0x65,0x40,0x35,0x1d,0x0b,0x07,0x1f,0x1f,0x0b,0x0e,0x21,0x0f,0x15,0x13,0x95,0x18,0x10,0x29,0x27,0x95,0x40,0x02,0x16,0x0e,0x1f,0x07,0x21,0x05,0x1d, +0x0b,0x1b,0x0d,0x21,0x83,0x22,0x22,0x29,0x24,0x84,0x05,0x0e,0x29,0x15,0x1b,0x42,0x0d,0x83,0x0e,0x0e,0x15,0x1b,0x84,0x10,0x10,0x2b,0x15,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x18,0x2f,0xf0,0xe1,0x11,0x39,0x2f,0xe1,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x2f,0x3f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x3f, +0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x06,0x07,0x06,0x07,0x23,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x00,0x37,0x36,0x37,0x33,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x90,0x33,0x3f,0x88,0x9c,0x14,0x06,0xf1,0x94,0x56,0x14,0x27, +0xac,0xb0,0x56,0x50,0x2a,0x26,0x32,0x3e,0x8a,0x9c,0x15,0x01,0x8d,0x54,0x14,0x28,0xac,0xb0,0x57,0x4f,0x2a,0x26,0x02,0x16,0xde,0xbf,0x69,0x6a,0x06,0xdb,0x87,0x62,0x35,0x59,0x01,0x72,0xf4,0x89,0x9f,0x15,0x89,0x16,0xde,0xbf,0x69,0x6a,0x01,0x65,0x65,0x35,0x59,0xfe,0x8e,0xf4,0x8c,0x9c,0x15,0x00,0x00,0x02,0x00,0xa2,0xfe,0x1e, +0x04,0x50,0x04,0x18,0x00,0x19,0x00,0x25,0x00,0x39,0x40,0x20,0x05,0x03,0x15,0x03,0x02,0x22,0x95,0x12,0x10,0x00,0x1a,0x1a,0x1d,0x95,0x18,0x16,0x07,0x95,0x08,0x1c,0x07,0x07,0x0f,0x15,0x83,0x1f,0x1f,0x27,0x01,0x25,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x3f,0xed, +0x31,0x30,0x5d,0x25,0x23,0x1e,0x02,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x24,0x02,0x11,0x11,0x34,0x12,0x33,0x32,0x00,0x15,0x10,0x02,0x23,0x22,0x03,0x16,0x16,0x33,0x20,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x48,0x04,0x09,0x76,0xd1,0xc7,0x78,0x43,0x40,0x7f,0xf2,0xfe,0xee,0xb1,0xf4,0xe1,0xd9,0x01,0x00,0xf8,0xdd,0xc1,0x76, +0x26,0xa5,0x59,0x01,0x3e,0xa7,0x8f,0x90,0x9c,0x62,0x92,0xc0,0x56,0x04,0x02,0x08,0x8e,0x08,0x02,0x04,0x66,0x01,0x24,0x01,0x54,0x01,0x04,0xf4,0x01,0x16,0xfe,0xde,0xe6,0xfe,0xfc,0xfe,0xdc,0x01,0x1a,0x3d,0x53,0x01,0x96,0xb0,0xd6,0xcf,0xb3,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00, +0xff,0xff,0xff,0x3a,0xfe,0x1e,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x02,0xcf,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x39,0x40,0x1e,0x0e,0x95,0x40,0x0d,0x08,0x00,0x0d,0x95,0x2b,0x30,0x09,0x95,0x08,0x0f,0x12,0x95, +0x00,0x0c,0x08,0x0d,0x08,0x0d,0x08,0x0f,0x00,0x00,0x14,0x0f,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x33,0x15,0x23,0x20,0x03,0x21,0x15,0x21,0x12,0x21,0x33,0x03,0x5c,0xe3,0xf9,0xfe,0xe0, +0x01,0x2d,0xff,0xc6,0xc9,0xfe,0xb6,0x33,0x02,0x1f,0xfd,0xdb,0x1b,0x01,0x68,0xd3,0x01,0x09,0xe3,0xf3,0x01,0x21,0x8c,0xfe,0xe0,0x8c,0xfe,0xc4,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x5c,0x04,0x00,0x00,0x12,0x00,0x37,0x40,0x1d,0x05,0x95,0x40,0x06,0x0b,0x00,0x06,0x95,0x2b,0x30,0x0a,0x95,0x0b,0x0f,0x01,0x95,0x00,0x0f,0x83,0x04, +0x0a,0x05,0x0a,0x05,0x07,0x04,0x04,0x14,0x00,0x2f,0x11,0x39,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x00,0x2f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x13,0x21,0x35,0x21,0x02,0x21,0x23,0x35,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x60,0xd3,0x01,0x5d,0x24,0xfd,0xde,0x02,0x22,0x2a,0xfe,0xa9, +0xc9,0xda,0xf8,0x01,0x20,0xfe,0xd4,0xff,0x8c,0x01,0x3c,0x8c,0x01,0x20,0x8c,0xfe,0xf7,0xe3,0xf4,0xfe,0xe0,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x06,0xca,0x05,0x9a,0x00,0x33,0x00,0x2b,0x40,0x15,0x32,0x10,0x15,0x25,0x7e,0x24,0x16,0x7e,0x15,0x15,0x07,0x24,0x24,0x35,0x08,0x7e,0x07,0x07,0x03,0x00,0x12,0x00,0x3f,0x3f,0x01,0x2f, +0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x21,0x2e,0x05,0x27,0x33,0x1e,0x05,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x05,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x2e,0x03,0x27,0x03,0x01,0xe2,0x4d,0x75,0x5a,0x40,0x32,0x25,0x11,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0xe0,0x15,0x21,0x1c, +0x18,0x0c,0xa8,0x10,0x26,0x2e,0x38,0x46,0x57,0x35,0x35,0x57,0x46,0x38,0x2e,0x25,0x11,0xa8,0x11,0x25,0x32,0x40,0x5a,0x75,0x4d,0xa4,0x2b,0x4a,0x40,0x37,0x17,0xd5,0x95,0xf8,0xdd,0xd0,0xdc,0xf3,0x91,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x02,0x3c,0x48,0x94,0x9f,0xb0,0x63,0x8a,0xe5,0xc7,0xb5,0xb5,0xbd,0x6d,0x6d,0xbd,0xb5,0xb5, +0xc7,0xe5,0x8a,0x92,0xf2,0xdc,0xd0,0xde,0xf7,0x95,0x53,0x95,0x89,0x7f,0x3c,0xfd,0xd4,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x05,0x5e,0x04,0x00,0x00,0x14,0x00,0x4c,0x40,0x25,0x0d,0x03,0x02,0x0f,0x14,0x08,0x03,0x0d,0x02,0x0f,0x0f,0x02,0x0c,0x13,0x03,0x04,0x02,0x01,0x13,0x05,0x04,0x0c,0x13,0x0c,0x00,0x08,0x10,0x0f,0x0f,0x14, +0x08,0x14,0x00,0x00,0x16,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x00,0x2f,0x17,0x33,0x3f,0x12,0x39,0x39,0x33,0x33,0x87,0x05,0xc0,0xc0,0x31,0x30,0x01,0x01,0x23,0x03,0x03,0x23,0x02,0x02,0x27,0x33,0x16,0x12,0x13,0x13,0x26,0x27,0x33,0x16,0x12,0x17, +0x01,0x05,0x5e,0xfe,0xaa,0xa6,0xb8,0xb6,0x94,0xb5,0x72,0x1b,0xa8,0x1a,0x58,0x7c,0xaa,0x47,0x1b,0xac,0x20,0x77,0x75,0x01,0x08,0x04,0x00,0xfc,0x00,0x01,0xaa,0xfe,0x56,0x01,0x9b,0x01,0x76,0xef,0xcf,0xfe,0xce,0xfe,0xce,0x01,0x87,0xcb,0xe1,0xe2,0xfe,0xad,0xfe,0x03,0x33,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0xc6,0x05,0x9a, +0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f, +0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x4c,0xfe,0xdd,0x01,0x23,0xa8,0x01,0x5a,0xfe,0xa6,0x01,0x10,0xd4,0xee,0xf8,0xd8,0xfe,0xfe,0xeb,0x96,0xa1,0xfe,0xc9,0x04,0x74, +0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcd,0xc1,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8d,0x7d,0x01,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x4e,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b, +0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32, +0x35,0x34,0x23,0x01,0x40,0xfe,0xe9,0x01,0x17,0xa4,0x01,0x38,0xfe,0xc8,0x01,0x12,0x9d,0xbb,0xbb,0x8d,0xfe,0xde,0xf5,0xcd,0xcf,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0xc5,0xa3,0x94,0x93,0xad,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x00,0x01,0x00,0xbc,0xff,0xe8,0x06,0xd9,0x05,0xb2,0x00,0x1f,0x00,0x5e,0x40,0x34,0x1a,0x17,0x06,0x91, +0x40,0x0b,0x0a,0x08,0x0b,0x91,0x2b,0x30,0x30,0x12,0x01,0x12,0x12,0x14,0x91,0x0f,0x04,0x0a,0x03,0x20,0x1f,0x01,0x1f,0x1f,0x1d,0x91,0x02,0x13,0x08,0x19,0x19,0x17,0x12,0x1a,0x7d,0x0c,0x12,0x05,0x05,0x08,0x12,0x00,0x00,0x21,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0xe1,0x11,0x39,0x39, +0x2f,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x03,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x15,0x21,0x16,0x00,0x33,0x32,0x37,0x06,0xd9,0x9f,0xea,0xfe,0xde,0xfe,0x95, +0x0f,0xfe,0xb0,0xa8,0xa8,0x01,0x52,0x1d,0x01,0x7e,0x01,0x1b,0xd6,0x97,0xa3,0xcc,0xd7,0xfe,0xeb,0x18,0x02,0x79,0xfd,0x85,0x10,0x01,0x11,0xd7,0xe0,0x9d,0x3c,0x54,0x01,0x69,0x01,0x2e,0xfd,0x81,0x05,0x9a,0xfd,0x7c,0x01,0x34,0x01,0x68,0x3b,0xb3,0x56,0xfe,0xed,0xf1,0x97,0xef,0xfe,0xed,0x60,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8, +0x05,0x66,0x04,0x18,0x00,0x1f,0x00,0x68,0x40,0x3a,0x17,0x1a,0x06,0x95,0x40,0x0b,0x0a,0x08,0x0b,0x95,0x2b,0x30,0x0a,0x0f,0x40,0x12,0x50,0x12,0x02,0x12,0x12,0x14,0x95,0x0f,0x10,0x30,0x1f,0x01,0x1f,0x1f,0x1d,0x95,0x02,0x16,0x08,0x17,0x12,0x1a,0x83,0x05,0x0c,0x12,0x05,0x18,0x12,0x18,0x12,0x00,0x05,0x05,0x08,0x00,0x00,0x21, +0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xe1,0x11,0x39,0x00,0x2f,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x32,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x36,0x24,0x33, +0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x05,0x66,0x72,0xa0,0xd6,0xfe,0xf9,0x0f,0xfe,0xe2,0xa4,0xa4,0x01,0x20,0x18,0x01,0x0e,0xdc,0x89,0x67,0x64,0x92,0x93,0xb6,0x0d,0x01,0xb4,0xfe,0x4a,0x08,0xb2,0x94,0x92,0x78,0x2d,0x45,0xfb,0xdb,0xfe,0x42,0x04,0x00,0xfe,0x4a,0xdb,0xf3,0x32,0xa2, +0x4a,0xb0,0x94,0x8c,0x97,0xb5,0x5b,0x00,0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x3c,0x05,0x9a,0x00,0x0b,0x00,0x14,0x00,0x66,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x08,0x02,0x03,0x06,0x07,0x0c,0x10,0x13,0x14,0x08,0x0b,0x0a,0x03,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14, +0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x17,0x39,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23, +0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x17,0x05,0x3c,0xbb,0xfc,0x8f,0xa8,0x83,0xff,0x00,0xb5,0x02,0x3e,0xb6,0x3e,0x7d,0x12,0x0b,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x05,0x9a,0xfd,0x91,0x01,0x45,0x2f,0x51,0x47,0x3b,0xfe,0xc3,0xd7, +0x00,0x02,0x00,0x0c,0x00,0x00,0x03,0xf2,0x04,0x00,0x00,0x0b,0x00,0x14,0x00,0x68,0x40,0x37,0x0d,0x0c,0x02,0x0a,0x01,0x0a,0x0d,0x01,0x0a,0x13,0x12,0x07,0x08,0x0b,0x08,0x12,0x0b,0x02,0x03,0x06,0x07,0x0c,0x13,0x06,0x14,0x14,0x08,0x0b,0x0a,0x0f,0x05,0x01,0x08,0x0a,0x0b,0x0f,0x10,0x14,0x05,0x05,0x01,0x00,0x0e,0x04,0x08,0x09, +0x09,0x05,0x42,0x04,0x8b,0x05,0x05,0x16,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x00,0x18,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x33,0x11,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27, +0x03,0x23,0x01,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x03,0xf2,0xb0,0x98,0x60,0x96,0x64,0x9c,0xa8,0x01,0xac,0xa2,0x18,0x4d,0x1b,0x08,0x04,0x0b,0x16,0x51,0x7a,0x01,0x8c,0x76,0xfe,0xea,0x01,0x16,0x78,0xfe,0x72,0x04,0x00,0xfe,0x1a,0xd2,0x4a,0x45,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x06,0xe6, +0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0xa1,0x40,0x59,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x11,0x0a,0x09,0x12,0x09,0x02,0x03,0x06,0x07,0x14,0x1b,0x1c,0x07,0x0c,0x12,0x0a,0x91,0x40,0x11,0x0f,0x0c,0x11,0x91,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x03,0x01,0x05,0x08,0x09, +0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0x7e,0x05,0x05,0x1e,0x0f,0x09,0x01,0x09,0x09,0x1e,0x10,0x0c,0x7e,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17, +0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x01,0x23,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x03,0x26, +0x27,0x23,0x06,0x07,0x03,0x17,0x06,0xe6,0xbb,0xfc,0x8f,0xa8,0x84,0xff,0x00,0xb4,0x01,0x0d,0xfe,0x97,0xa8,0xa8,0x01,0xa4,0xf6,0xb6,0x3e,0x7e,0x10,0x0c,0x04,0x0a,0x17,0x7d,0x9c,0x02,0x8e,0xb7,0xfe,0x29,0x01,0xd3,0xb6,0xfd,0x77,0x02,0x9e,0xfd,0x62,0x05,0x9a,0xfd,0x9b,0x02,0x65,0xfd,0x91,0x01,0x45,0x2a,0x56,0x47,0x3b,0xfe, +0xc3,0xd7,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0x7b,0x04,0x00,0x00,0x13,0x00,0x1c,0x00,0xb0,0x40,0x50,0x11,0x0a,0x09,0x12,0x15,0x14,0x02,0x12,0x01,0x12,0x15,0x01,0x12,0x1b,0x1a,0x07,0x08,0x13,0x08,0x1a,0x13,0x08,0x02,0x03,0x06,0x07,0x14,0x1b,0x06,0x00,0x1c,0x01,0x13,0x03,0x1c,0x1c,0x0c,0x0f,0x0a,0x96,0x40,0x11,0x0f,0x0c, +0x11,0x96,0x2b,0x30,0x12,0x13,0x17,0x18,0x04,0x0f,0x0f,0x01,0x05,0x08,0x09,0x04,0x0c,0x13,0x17,0x12,0x18,0x17,0x18,0x1c,0x03,0x05,0x01,0x00,0x0e,0x04,0x08,0x09,0x09,0x05,0x42,0x04,0xb8,0x01,0x2e,0x40,0x11,0x05,0x05,0x1e,0x2f,0x09,0x3f,0x09,0x4f,0x09,0x03,0x09,0x09,0x1e,0x10,0x0c,0x84,0x0d,0x2f,0xe1,0x32,0x11,0x39,0x2f, +0x5d,0x12,0x39,0x2f,0xe1,0x2b,0x11,0x01,0x33,0x10,0xe0,0x32,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x00,0x18,0x2f,0x17,0x33,0x3f,0x17,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0x5f,0x5e,0x5d,0x17,0x33,0x11,0x12,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0x87,0xc0,0xc0, +0x31,0x30,0x21,0x23,0x03,0x07,0x11,0x23,0x11,0x27,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x13,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x17,0x05,0x7b,0xb0,0x98,0x60,0x95,0x65,0x9b,0xa8,0xc2,0xfe,0xf2,0xa4,0xa4,0x01,0x46,0xb2,0xa2,0x18,0x4e,0x1b,0x07,0x05,0x0b,0x16,0x52,0x7c,0x01,0x8c,0x76,0xfe,0xea,0x01, +0x16,0x78,0xfe,0x72,0x01,0xd5,0xfe,0x2b,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x1a,0xd2,0x49,0x46,0x55,0x36,0xcd,0x8d,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0xb3,0x40,0x30,0x10,0x03,0x0f,0x03,0x1a,0x19,0x06,0x13,0x06,0x1a,0x19,0x13,0x06,0x16,0x15,0x14,0x03,0x14,0x16,0x15,0x03,0x14, +0x0d,0x0e,0x06,0x0d,0x18,0x10,0x03,0x17,0x17,0x0e,0x03,0x06,0x06,0x09,0x13,0x14,0x91,0x40,0x0f,0x0e,0x03,0x05,0x01,0x09,0x13,0x0f,0xb8,0xff,0xd8,0x40,0x14,0x0b,0x01,0x4d,0x0f,0x0f,0x00,0x03,0x14,0x00,0x0e,0x10,0x0e,0x02,0x09,0x03,0x0e,0x0e,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09,0xb8,0x01, +0x2f,0x40,0x0b,0x0a,0x0a,0x1b,0x18,0x17,0x03,0x7e,0x06,0x06,0x1c,0x1b,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x2b,0x33,0x00,0x2f,0x33,0x33,0x3f,0x33,0x1a,0xed,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x17,0x33,0x87, +0x05,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x16,0x17,0x33,0x36,0x37,0x05,0xaa,0xc0,0x32,0xfe,0x8a,0xa8,0xcb,0xcb,0x1a, +0xc1,0x33,0xfd,0xe9,0xfe,0x62,0x04,0xa0,0xfe,0x52,0xea,0xf7,0xfe,0xb0,0xfd,0x9f,0x01,0x07,0x0d,0x16,0x02,0x10,0x16,0x02,0x0a,0x66,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x01,0x50,0x01,0x67,0x45,0x02,0x9e,0xfd,0x60,0x48,0xfe,0x9a,0x03,0xb6,0xfe,0x52,0x22,0x36,0x35,0x23,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x04,0x66, +0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x87,0x40,0x26,0x0f,0x0e,0x03,0x0e,0x0c,0x0d,0x06,0x0d,0x0f,0x42,0x0c,0x0c,0x08,0x16,0x16,0x0d,0x03,0x42,0x06,0x06,0x08,0x13,0x95,0x40,0x0e,0x0d,0x0f,0x05,0x01,0x08,0x12,0x13,0x0d,0x0e,0x0e,0x00,0x03,0x0d,0xb8,0xff,0xc0,0x40,0x16,0x0b,0x0f,0x48,0x0d,0x0d,0x06,0x09,0x00,0x83,0x01,0x0e, +0x03,0x08,0x06,0x42,0x08,0x83,0x09,0x09,0x19,0x16,0x03,0xb8,0x01,0x2e,0xb6,0x10,0x06,0x01,0x06,0x06,0x1a,0x19,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0x33,0x33,0x3f,0x32,0x1a,0xed,0x12,0x39,0x2f,0xe5,0x12, +0x39,0x11,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x36,0x12,0x37,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x13,0x16,0x17,0x36,0x37,0x04,0x66,0xae,0x21,0xfe,0xfd,0x9c,0xfe,0xf8,0x23,0xaf,0x29,0xb9,0xae,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0xab,0xb7,0xfe,0xd7, +0xfe,0x6f,0xb5,0x04,0x0a,0x04,0x0c,0x01,0x64,0x4e,0xfe,0x4e,0x01,0xb4,0x4b,0xfe,0x97,0xf6,0x01,0x01,0x34,0x01,0xd5,0xfe,0x29,0x36,0xff,0x00,0x02,0x86,0xfe,0xdd,0x06,0x18,0x0a,0x14,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x48,0x05,0x9a,0x00,0x18,0x00,0x1f,0x00,0xa9,0x40,0x3f,0x0c,0x0a,0x13,0x0a,0x16,0x03,0x15,0x03,0x13,0x14, +0x06,0x14,0x16,0x42,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0c,0x91,0x40,0x13,0x11,0x0e,0x13,0x91,0x2b,0x30,0x1a,0x91,0x14,0x40,0x15,0x14,0x11,0x03,0x01,0x05,0x0a,0x03,0x0e,0x19,0x15,0x15,0x00,0x03,0x1a,0x00,0x14,0x10,0x14,0x02,0x0b,0x03,0x14,0x14,0x06,0x0a,0x00,0xb8,0x01,0x2f,0xb6,0x01,0x0e,0x03,0x09,0x06,0x42,0x09, +0xb8,0x01,0x2f,0x40,0x13,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0a,0x0e,0x1d,0x1c,0x03,0x7e,0x06,0x06,0x21,0x12,0x0e,0x7e,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0x5d,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33, +0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39,0x10,0xe5,0x10,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x06,0x02,0x03,0x23,0x12,0x25,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x12,0x01,0x21,0x01,0x17,0x33,0x36,0x37,0x07,0x48,0xc1, +0x2f,0xfe,0x87,0xa7,0xcb,0xcb,0x1b,0xc1,0x54,0x01,0x34,0xfe,0x16,0xa8,0xa8,0x02,0x54,0xfe,0x8a,0x04,0xa0,0xfe,0x51,0xea,0xf8,0xfe,0xaf,0xfd,0xa0,0x01,0x06,0x24,0x02,0x10,0x16,0x02,0x09,0x67,0xfd,0x90,0x02,0x72,0x39,0xfe,0xd3,0xfe,0xf4,0x02,0x0e,0x92,0xfd,0x60,0x05,0x9a,0xfd,0xa2,0x02,0x5e,0xfd,0x60,0x48,0xfe,0x9c,0x03, +0xb4,0xfe,0x52,0x58,0x35,0x23,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xdf,0x04,0x00,0x00,0x17,0x00,0x1d,0x00,0xb8,0x40,0x4c,0x0b,0x09,0x12,0x09,0x15,0x03,0x14,0x03,0x12,0x13,0x06,0x15,0x05,0x1c,0x1c,0x13,0x03,0x42,0x06,0x06,0x05,0x0b,0x96,0x40,0x12,0x10,0x0d,0x12,0x96,0x2b,0x30,0x19,0x95,0x13,0x40,0x14,0x13,0x10,0x0f,0x01, +0x05,0x09,0x03,0x0d,0x18,0x14,0x14,0x00,0x03,0x19,0x00,0x13,0x10,0x13,0x20,0x13,0x60,0x13,0x04,0x0d,0x03,0x13,0x13,0x06,0x09,0x00,0x83,0x01,0x0e,0x03,0x08,0x06,0x42,0x08,0x83,0x09,0xb8,0xff,0xc8,0x40,0x0e,0x0b,0x0c,0x01,0x4c,0x09,0x40,0x09,0x0c,0x48,0x09,0x09,0x0d,0x1c,0x03,0xb8,0x01,0x2e,0x40,0x0c,0x0f,0x06,0x1f,0x06, +0x02,0x06,0x06,0x1f,0x11,0x0d,0x84,0x0e,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x11,0x12,0x39,0x18,0x2f,0x5f,0x5e,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x17,0x33,0x3f,0x33,0x33,0x1a,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0xe5,0x12,0x39, +0x11,0x12,0x39,0x87,0x05,0xc0,0x10,0x87,0xc0,0x10,0x87,0xc0,0x31,0x30,0x21,0x23,0x02,0x25,0x11,0x23,0x11,0x04,0x03,0x23,0x12,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x01,0x21,0x01,0x16,0x16,0x01,0x21,0x13,0x16,0x17,0x37,0x05,0xdf,0xae,0x23,0xfe,0xfe,0x9c,0xfe,0xf7,0x21,0xae,0x3e,0xe2,0xfe,0x92,0xa4,0xa4,0x01,0xbc,0xfe, +0xe4,0x03,0xb4,0xfe,0xb8,0xab,0xb6,0xfe,0xd9,0xfe,0x6e,0xb4,0x07,0x07,0x11,0x01,0x66,0x4c,0xfe,0x4e,0x01,0xb4,0x4d,0xfe,0x99,0x01,0x72,0x67,0xfe,0x27,0x04,0x00,0xfe,0x58,0x01,0xa8,0xfe,0x29,0x36,0xff,0x02,0x85,0xfe,0xdd,0x0b,0x13,0x1e,0x00,0x00,0x01,0x00,0x31,0xfe,0x66,0x03,0xe2,0x06,0xcb,0x00,0x43,0x00,0x75,0x40,0x41, +0x32,0x7d,0x13,0x00,0x7d,0x01,0x2e,0x17,0x2c,0x7d,0x1b,0x13,0x01,0x1b,0x17,0x20,0x20,0x17,0x1b,0x01,0x13,0x05,0x45,0x3b,0x7e,0x09,0x03,0x9a,0x42,0x42,0x35,0x3e,0x0c,0x9a,0x39,0x39,0x35,0x2f,0x2e,0x16,0x9a,0x17,0x17,0x29,0x10,0x9a,0x35,0x27,0x26,0x0f,0x24,0x1f,0x24,0x02,0x24,0x20,0x1e,0x99,0x23,0x29,0x03,0x3e,0x9a,0x01, +0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xed,0x32,0xc4,0x5d,0x39,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x20,0x11,0x34,0x36,0x33, +0x32,0x17,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x36,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0xd3,0xb7,0x4d,0x2c,0x6f,0x70,0x45,0xfe, +0xb2,0xa6,0xa0,0x17,0x4b,0x4b,0x18,0x72,0x81,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x82,0xa2,0xb9,0x73,0xa4,0xa4,0x77,0xbd,0x58,0xea,0xfe,0xf0,0x94,0xae,0xdb,0xbd,0x18,0x58,0x58,0x18,0x93,0x56,0x4c,0x2b,0x7b,0x7b,0x4a,0xef,0xfe,0x66,0x4c,0x26,0x26,0x01,0x23,0x80,0x91,0x06,0x06,0x89,0x75,0x01,0x14,0x8b,0x8a, +0x7e,0x6c,0x82,0x71,0xaa,0x48,0x0d,0x01,0x1c,0xe5,0xe5,0xfe,0xdd,0x0a,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xb4,0xe2,0x06,0x06,0x89,0x3f,0x50,0x25,0x25,0x00,0x01,0x00,0x21,0xfe,0x66,0x03,0x3c,0x05,0x35,0x00,0x42,0x00,0x79,0xb3,0x31,0x84,0x13,0x00,0xb8,0x01,0x2e,0x40,0x13,0x01,0x2d,0x17,0x2a,0x84,0x1a,0x13,0x01, +0x1a,0x17,0x1f,0x1f,0x17,0x1a,0x01,0x13,0x05,0x44,0x3a,0xb8,0x01,0x2e,0x40,0x27,0x0a,0x03,0x96,0x41,0x41,0x34,0x3d,0x2e,0x2d,0x16,0x95,0x17,0x17,0x28,0x0d,0x96,0x38,0x38,0x28,0x11,0x96,0x34,0x15,0x1f,0x1d,0x95,0x0f,0x23,0x1f,0x23,0x02,0x23,0x22,0x28,0x0f,0x3d,0x95,0x01,0x07,0x00,0x2f,0x33,0xed,0x3f,0x33,0xc4,0x5d,0xed, +0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x23,0x34,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x34,0x21,0x23,0x35,0x33, +0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x37,0x03,0x33,0x17,0x37,0x33,0x03,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x1e,0x95,0x3d,0x2e,0x55,0x55,0x38,0x82,0x99,0x9b,0x82,0x13,0x3b,0x3a,0x13,0xbf,0xfe,0xd6,0x64,0x60,0x01, +0x04,0x77,0x67,0x96,0x96,0x81,0x71,0xb6,0x73,0xa4,0xa4,0x77,0xb9,0xf9,0x71,0x61,0x70,0x8c,0xb0,0xa4,0x14,0x45,0x45,0x12,0x86,0x4b,0x41,0x2c,0x55,0x55,0x44,0xc6,0xfe,0x66,0x50,0x28,0x28,0x99,0x82,0x71,0x9a,0x07,0x08,0xa1,0xaa,0x8a,0xa4,0x45,0x53,0x4c,0x99,0x2e,0x0b,0x01,0x17,0xe5,0xef,0xfe,0xd9,0x29,0xdf,0x5b,0x80,0x15, +0x04,0x09,0x87,0x6a,0x89,0x97,0x07,0x07,0x85,0x42,0x51,0x25,0x25,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x05,0xc0,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x1e,0x14,0x11,0x91,0x04,0x07,0x07,0x06,0x18,0x12,0x0c,0x03,0x06,0x00,0x7e,0x17,0x17,0x1b,0x06,0x0c,0x0b,0x0b,0x1a,0x14,0x05,0x7e,0x11,0x06,0x06,0x1b,0x1a,0x11,0x12,0x39,0x2f, +0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x14,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x20,0x03,0x03,0x33,0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x20,0x11,0x11,0x33,0x05,0xc0,0xfe,0xe1,0xf1,0x39,0x9c,0x54,0xfe,0xd9,0x54,0xa6,0xa4, +0xa0,0x1d,0x6b,0x6e,0x3b,0x9c,0x39,0x01,0x68,0xa8,0x03,0x87,0xdf,0xfe,0xdd,0xfe,0x7b,0x01,0x85,0x01,0x5f,0x02,0xb6,0xfd,0x5e,0x79,0x65,0x03,0x80,0xfc,0x80,0x01,0x6d,0x02,0x13,0x00,0x00,0x01,0x00,0x66,0xfe,0x1e,0x05,0x7b,0x05,0x33,0x00,0x1b,0x00,0x40,0x40,0x19,0x06,0x1c,0x13,0x13,0x1a,0x0d,0x0f,0x15,0x12,0x95,0x04,0x07, +0x16,0x00,0x84,0x19,0x19,0x1d,0x06,0x0d,0x0c,0x0c,0x1c,0x14,0x05,0xb8,0x01,0x2e,0xb4,0x13,0x06,0x06,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0x2f,0x3f,0x31,0x30,0x01,0x10,0x00,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x27,0x03,0x33, +0x13,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x05,0x7b,0xfe,0xe4,0xe8,0x19,0x93,0x15,0xac,0xd4,0x3c,0x94,0xa6,0x94,0x2a,0x81,0x6f,0x11,0x93,0x19,0x96,0xca,0xa4,0x02,0x2d,0xfe,0xf4,0xfe,0xc9,0xfe,0x34,0x01,0xcc,0xca,0xf6,0x02,0x56,0xfd,0xaa,0xa9,0x88,0x04,0xba,0xfb,0x46,0xef,0xc3,0x01,0xd5,0x00, +0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x12,0x18,0x91,0x40,0x22,0x1c,0x0e,0x25,0x0f,0x14,0x42,0x0c,0x1a,0x14,0x91,0x20,0x20,0x00,0x0f,0x91,0x06,0x04,0x25,0x91,0x00,0x13,0x22,0x1a,0x12,0x09,0x7d,0x0c,0x0c,0x29,0x12,0x7d,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12, +0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x18,0xed,0x33,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x13,0x26,0x24,0x23,0x22,0x00,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x05,0x16,0x00,0x33, +0x32,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xbe,0x1a,0xfe,0xff,0xcf,0xd6,0xfe,0xea,0x0e,0xfc,0x46,0x3c,0x88,0x88,0x24,0x3d,0xfb,0xf0,0x52,0x3a,0x84,0x84,0x2e,0x2a,0xfe,0xf6,0x1a,0x01,0x09,0xc7,0xe4,0x01,0x0e,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70,0xfe,0xbd, +0xfe,0xa1,0xfe,0x68,0x03,0x52,0xe7,0xf9,0xfe,0xd8,0xf4,0x52,0x3a,0x3b,0x39,0x5a,0x3a,0x3a,0x56,0xe0,0xfe,0xf9,0x01,0x21,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x57,0x40,0x30,0x0b,0x25,0x1b,0x25,0x02,0x00,0x0f,0x10,0x0f,0x02,0x0c,0x03,0x11,0x17,0x95,0x40,0x21,0x1b,0x0e,0x24, +0x0e,0x13,0x42,0x0c,0x13,0x95,0x19,0x1f,0x1f,0x00,0x0e,0x95,0x06,0x10,0x24,0x95,0x00,0x16,0x09,0x83,0x0c,0x19,0x19,0x27,0x11,0x21,0x83,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x7c,0x2f,0x33,0x18,0xed,0x32,0x2b,0x00,0x18,0x10,0xf6,0x32,0x1a,0xed,0x32,0x31,0x30,0x01,0x5f,0x5e,0x5d, +0x5d,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x13,0x02,0x21,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x17,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x20,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0x69,0x22,0xfe,0xdc,0x8b,0xb5,0x12,0x8e,0x35,0x30,0x6c,0x6b, +0x1e,0x22,0x8e,0x84,0x34,0x30,0x68,0x68,0x26,0x1e,0x9c,0x12,0xb4,0x8c,0x01,0x26,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x02,0x64,0x01,0x42,0xaa,0x9a,0x31,0x34,0x35,0x5a,0x33,0x35,0x34,0x38,0x9a,0xaa,0x00,0x01,0x00,0x12,0x00,0x00,0x05,0xb8,0x05,0xb2,0x00,0x13,0x00,0x31,0x40,0x17,0x01,0x03, +0x91,0x12,0x04,0x09,0x03,0x0c,0x07,0x07,0x06,0x0c,0x0c,0x08,0x10,0x05,0x00,0x7e,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x36,0x33, +0x32,0x05,0xb8,0x9a,0x0c,0x47,0x41,0x2a,0xfe,0x77,0xbd,0xfd,0xf8,0xbb,0x01,0x8d,0x13,0x0a,0x04,0x07,0x1a,0x01,0x3b,0x3f,0xbb,0xd1,0x04,0xc0,0x63,0x7d,0xfb,0x5a,0x05,0x9a,0xfb,0x8f,0x37,0x48,0x32,0x4f,0x03,0xc7,0xc0,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x00,0x13,0x00,0x34,0x40,0x11,0x01,0x03,0x95,0x12, +0x10,0x09,0x0f,0x0c,0x07,0x07,0x06,0x0d,0x0d,0x08,0x10,0x05,0x00,0xb8,0x01,0x2e,0xb4,0x01,0x01,0x15,0x09,0x08,0x2f,0x33,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x39,0x19,0x2f,0x33,0x33,0x00,0x18,0x2f,0x33,0x3f,0x3f,0xfd,0xce,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36, +0x33,0x32,0x04,0x9a,0x96,0x08,0x42,0x37,0x31,0xfe,0xe8,0xa8,0xfe,0x7c,0xb4,0x01,0x04,0x1d,0x07,0x04,0x08,0x18,0xbf,0x47,0xaa,0xc6,0x03,0x3c,0x54,0x88,0xfc,0xf8,0x04,0x00,0xfd,0x18,0x52,0x3d,0x45,0x46,0x02,0x32,0xd2,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x05,0xb8,0x07,0x5c,0x02,0x26,0x05,0xee,0x00,0x00,0x01,0x07,0x04,0x6e, +0x02,0x2f,0x01,0x5c,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x4b,0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x06,0x00,0x02,0x26,0x05,0xef,0x00,0x00,0x01,0x07,0x04,0x6e,0x01,0xc1,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x6e, +0x40,0x0a,0x1a,0x14,0x08,0x00,0x25,0x02,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x04,0x00,0x5e,0xfe,0x66,0x0a,0x7f,0x05,0xdb,0x00,0x0d,0x00,0x1b,0x00,0x30,0x00,0x31,0x00,0x8f,0x40,0x33,0x0e,0x91,0x08,0x0e,0x00,0x0f,0x91,0x07,0x0e,0x01,0x16,0x91,0x00,0x15,0x91,0x40,0x01,0x01,0x07,0x32,0x31,0x24, +0x42,0x31,0x04,0x23,0x29,0x24,0x16,0x1d,0x1f,0x95,0x2f,0x10,0x26,0x0f,0x29,0x24,0x22,0x23,0x23,0x21,0x25,0x2e,0x20,0x06,0x20,0x01,0x20,0x26,0x1c,0xb8,0x01,0x2e,0x40,0x17,0x1d,0x1d,0x26,0x25,0x25,0x33,0x19,0x16,0x01,0x08,0x0f,0x01,0x0f,0x01,0x04,0x0b,0x7d,0x19,0x19,0x33,0x12,0x7d,0x04,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x11, +0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x5d,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x1a,0xed,0xdd,0xe6,0x10,0xf4,0xed,0x10,0xf4,0xe6,0x31,0x30,0x05,0x35,0x20,0x00,0x11,0x10,0x00,0x21,0x15, +0x20,0x00,0x11,0x10,0x00,0x01,0x35,0x22,0x00,0x11,0x10,0x00,0x33,0x15,0x32,0x00,0x11,0x10,0x00,0x01,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x13,0x02,0xfe,0xfe,0xd0,0xfe,0x90,0x01,0x7f,0x01,0x33,0x01,0x37,0x01,0x63,0xfe,0x8e,0xfe,0xd8,0xe7,0xfe,0xe5,0x01,0x12, +0xde,0xec,0x01,0x10,0xfe,0xfe,0x06,0x81,0x95,0x0a,0x40,0x3c,0x2d,0xfe,0x75,0xac,0x8f,0xfe,0x79,0xb4,0x01,0x04,0x1c,0x07,0x05,0x06,0x1a,0xaa,0x40,0xb2,0xc6,0x1b,0x42,0x52,0x01,0x93,0x01,0x43,0x01,0x52,0x01,0xa3,0x52,0xfe,0x76,0xfe,0xb7,0xfe,0xa2,0xfe,0x66,0x05,0x34,0x52,0xfe,0xb3,0xfe,0xfd,0xfe,0xf7,0xfe,0xbd,0x52,0x01, +0x34,0x01,0x16,0x01,0x1a,0x01,0x38,0xfe,0x4a,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x01,0x9a,0x00,0x03,0x00,0x58,0xfe,0x66,0x08,0xec,0x04,0x38,0x00,0x0d,0x00,0x1a,0x00,0x2f,0x00,0x83,0x40,0x2b,0x0e,0x95,0x08,0x0e,0x00,0x0f,0x95,0x07,0x0e,0x01,0x16,0x95,0x00,0x15,0x95,0x40, +0x01,0x2e,0x23,0x42,0x22,0x29,0x23,0x16,0x1c,0x1e,0x95,0x2e,0x10,0x25,0x0f,0x29,0x23,0x2c,0x21,0x22,0x22,0x24,0x2c,0x20,0x20,0x25,0x1b,0xb8,0x01,0x2e,0x40,0x17,0x1c,0x1c,0x25,0x24,0x24,0x31,0x19,0x15,0x00,0x0e,0x07,0x00,0x07,0x00,0x04,0x0b,0x83,0x19,0x19,0x31,0x12,0x83,0x04,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39, +0x2f,0x2f,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x39,0x2f,0xe1,0x12,0x39,0x11,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x39,0x00,0x3f,0x3f,0xfd,0xce,0x3f,0x33,0x2f,0x2b,0x00,0x7d,0x2f,0x1a,0x18,0xed,0xdd,0xed,0x10,0xf4,0xed,0x10,0xf4,0xed,0x31,0x30,0x05,0x35,0x22,0x00,0x35,0x34,0x00,0x33,0x15,0x32,0x00,0x15,0x14,0x00,0x03, +0x35,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x32,0x36,0x35,0x10,0x05,0x23,0x26,0x23,0x22,0x07,0x01,0x23,0x13,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x36,0x33,0x32,0x02,0x4e,0xe7,0xfe,0xf1,0x01,0x1a,0xea,0xeb,0x01,0x01,0xfe,0xeb,0xd7,0xa2,0xba,0xb3,0x9b,0xa1,0xb1,0x05,0x4c,0x96,0x08,0x42,0x3b,0x2d,0xfe,0x74,0xac,0x90, +0xfe,0x78,0xb5,0x01,0x04,0x1c,0x07,0x04,0x07,0x19,0xaa,0x40,0xb2,0xc6,0x38,0x3e,0x01,0x20,0xec,0xfa,0x01,0x2c,0x3e,0xfe,0xe6,0xfa,0xf6,0xfe,0xd8,0x03,0xa6,0x3e,0xd3,0xc1,0xb8,0xce,0x3e,0xd0,0xbb,0x01,0x8f,0x32,0x54,0x88,0xfb,0x5e,0x01,0x82,0x04,0x18,0xfd,0x18,0x51,0x3e,0x36,0x55,0x02,0x32,0xd2,0x00,0x00,0x02,0x00,0x5e, +0xff,0xb4,0x06,0x3e,0x05,0xec,0x00,0x13,0x00,0x26,0x00,0x5b,0x40,0x31,0x20,0x1e,0x16,0x18,0x0c,0x0a,0x02,0x04,0x14,0x18,0x91,0x0e,0x42,0x0a,0x04,0x22,0x1e,0x91,0x40,0x00,0x04,0x13,0x11,0x7d,0x25,0x0e,0x0e,0x1b,0x04,0x42,0x22,0x18,0x14,0x0a,0x00,0x00,0x0a,0x14,0x18,0x22,0x05,0x0e,0x1e,0x04,0x04,0x28,0x1b,0x7d,0x07,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x33,0x1a,0xed,0x32,0x3f,0xe5,0xed,0x32,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x24,0x00,0x11,0x10,0x00,0x25,0x36,0x33,0x32,0x17,0x04,0x00,0x11,0x10,0x00,0x01,0x06,0x23,0x22,0x27, +0x06,0x00,0x15,0x14,0x12,0x17,0x36,0x33,0x32,0x17,0x36,0x12,0x35,0x10,0x03,0xb0,0x26,0x42,0x42,0x27,0xfe,0xd0,0xfe,0xaf,0x01,0x53,0x01,0x39,0x25,0x49,0x48,0x24,0x01,0x2c,0x01,0x4e,0xfe,0xad,0xfe,0xd1,0x26,0x3e,0x3e,0x26,0xe5,0xfe,0xff,0xf5,0xdc,0x27,0x42,0x42,0x26,0xe5,0xf9,0x14,0x38,0x38,0x1b,0x01,0x7e,0x01,0x37,0x01, +0x46,0x01,0x8b,0x1f,0x40,0x3e,0x1b,0xfe,0x82,0xfe,0xca,0xfe,0xb3,0xfe,0x76,0x05,0x0c,0x30,0x30,0x18,0xfe,0xc9,0xfa,0xf9,0xfe,0xcf,0x1c,0x37,0x37,0x1b,0x01,0x2a,0xfe,0x02,0x16,0x00,0x00,0x02,0x00,0x60,0xff,0xb0,0x04,0xd3,0x04,0x4e,0x00,0x11,0x00,0x21,0x00,0x59,0x40,0x31,0x0b,0x09,0x14,0x12,0x42,0x16,0x95,0x0d,0x09,0x10, +0x02,0x04,0x1c,0x1e,0x1a,0x95,0x40,0x00,0x42,0x04,0x16,0x0f,0x83,0x20,0x0e,0x0d,0x18,0x04,0x42,0x1e,0x1a,0x16,0x12,0x09,0x00,0x00,0x09,0x12,0x16,0x1a,0x1e,0x06,0x0d,0x04,0x04,0x23,0x18,0x83,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x3f,0xe5,0x1a,0xfd, +0x32,0xcd,0x10,0xcd,0x3f,0x33,0xfd,0xf5,0xcd,0x10,0xcd,0x31,0x30,0x05,0x06,0x23,0x22,0x27,0x26,0x02,0x35,0x10,0x25,0x36,0x33,0x32,0x17,0x04,0x11,0x14,0x02,0x03,0x06,0x23,0x22,0x27,0x04,0x11,0x10,0x05,0x36,0x33,0x32,0x17,0x24,0x11,0x10,0x03,0x0a,0x26,0x48,0x46,0x27,0xe3,0xec,0x01,0xdc,0x26,0x46,0x46,0x26,0x01,0xbf,0xf0, +0xd1,0x26,0x44,0x46,0x26,0xfe,0xcc,0x01,0x29,0x27,0x44,0x44,0x26,0x01,0x25,0x10,0x40,0x3e,0x19,0x01,0x0f,0xde,0x01,0xe8,0x36,0x3c,0x3c,0x32,0xfe,0x24,0xde,0xfe,0xe9,0x03,0x74,0x37,0x3b,0x2f,0xfe,0xa2,0xfe,0xb2,0x31,0x37,0x37,0x2f,0x01,0x54,0x01,0x4e,0x00,0x03,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x08,0x05,0x00,0x29,0x00,0x41, +0x00,0x4d,0x00,0x5e,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x20,0x0a,0x05,0x25,0x7d,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x7d,0x05,0x1d,0x91,0x22,0x04,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x2a,0x96,0x37,0x2c,0x2c,0x0d,0x91,0x08,0x04,0x13,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x33,0xed, +0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23, +0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x04,0x85,0xc2,0xcb,0xfe,0xd3,0xfe,0x93,0x01,0x66,0x01,0x32,0x9e,0x6e,0x6a,0xa4,0xdf,0xfe,0xf9,0x01, +0x0e,0xf0,0xdd,0x9a,0x9a,0xdf,0xf0,0x01,0x0e,0xfe,0xfa,0xe0,0xa4,0x6a,0x6e,0x9e,0x01,0x31,0x01,0x67,0xfe,0x93,0xfe,0xd3,0xc8,0xc9,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x3e,0x56,0x01,0x8e,0x01,0x4c,0x01,0x4c,0x01, +0xa4,0x2b,0xb2,0x45,0xfe,0xba,0xfe,0xf2,0xfe,0xeb,0xfe,0xce,0x60,0x60,0x01,0x31,0x01,0x16,0x01,0x0d,0x01,0x47,0x45,0xb2,0x2b,0xfe,0x5e,0xfe,0xb4,0xfe,0xb4,0xfe,0x70,0x07,0xa3,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0x03,0x00,0x60, +0xff,0xe8,0x06,0xc6,0x06,0x9d,0x00,0x29,0x00,0x41,0x00,0x4d,0x00,0x5d,0x40,0x31,0x36,0x37,0x37,0x4c,0x47,0x2a,0x2a,0x47,0x0b,0x1f,0x05,0x25,0x83,0x1a,0x47,0x1a,0x47,0x1a,0x4f,0x10,0x83,0x05,0x42,0x42,0x08,0x49,0x49,0x2c,0x31,0x96,0x3c,0x3c,0x41,0x96,0x36,0x2c,0x00,0x1d,0xec,0x22,0x10,0x0d,0xec,0x08,0x10,0x13,0x95,0x02, +0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x2f,0xed,0x11,0x33,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x39,0x11,0x33,0x2f,0x11,0x33,0x33,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x13,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x01,0x27,0x36,0x37,0x22,0x35,0x34,0x33,0x32,0x16,0x15,0x14,0x03,0x96,0x96,0xac,0xe8,0xfe,0xf4,0x01,0x08,0xde,0x84, +0x63,0x69,0x82,0x93,0xa7,0xbb,0xad,0xa2,0x82,0x81,0xa1,0xad,0xbb,0xa6,0x92,0x83,0x69,0x63,0x85,0xde,0x01,0x06,0xfe,0xf5,0xe8,0xa9,0xf1,0x29,0x4a,0x85,0x78,0x6b,0x30,0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x40,0x76,0x77,0x79,0x43,0xfe,0x59,0x16,0x56,0x06,0x60,0x5a,0x30,0x3e,0x42,0x5a,0x01,0x25,0xed,0xf0,0x01,0x2e, +0x30,0xaa,0x49,0xd2,0xb9,0xb3,0xd5,0x63,0x63,0xd2,0xb6,0xb9,0xd2,0x49,0xaa,0x30,0xfe,0xd1,0xef,0xec,0xfe,0xda,0x06,0x3b,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0xfe,0x54,0x35,0x16,0x3a,0x50,0x52,0x41,0x30,0x91,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x06,0xca,0x06,0xdb,0x02,0x26,0x05,0xda, +0x00,0x00,0x01,0x07,0x06,0x65,0x02,0x1f,0x01,0x0a,0x00,0x08,0xb3,0x01,0x3e,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x1e,0x00,0x00,0x05,0x5e,0x05,0x7f,0x02,0x26,0x05,0xdb,0x00,0x00,0x01,0x07,0x06,0x65,0x01,0x53,0xff,0xae,0x00,0x16,0xb9,0x00,0x01,0xff,0xea,0x40,0x09,0x20,0x15,0x08,0x00,0x25,0x01,0x1f,0x11,0x26,0x00,0x2b, +0x35,0x01,0x2b,0x35,0x00,0x01,0x00,0x5e,0xfe,0x66,0x04,0x8c,0x05,0xb2,0x00,0x15,0x00,0x31,0x40,0x1a,0x30,0x00,0x01,0x00,0x00,0x02,0x91,0x13,0x04,0x0c,0x0a,0x08,0x91,0x0d,0x13,0x0a,0x7e,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x7d,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f,0xed,0x32,0x2f, +0x5d,0x31,0x30,0x01,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x11,0x23,0x11,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x04,0x8c,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0x20,0x2e,0xa8,0xfe,0xe8,0xfe,0xba,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x04,0xc4,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x04,0xfd,0xe3,0x01,0x82, +0x16,0x01,0x85,0x01,0x2f,0x01,0x58,0x01,0xa8,0x3b,0x00,0x01,0x00,0x60,0xfe,0x66,0x03,0x62,0x04,0x18,0x00,0x15,0x00,0x2d,0x40,0x17,0x00,0x00,0x02,0x95,0x13,0x10,0x0c,0x0a,0x08,0x96,0x0d,0x16,0x0a,0x84,0x0d,0x0d,0x10,0x00,0x00,0x17,0x05,0x83,0x10,0x2f,0xe1,0x12,0x39,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x2f,0x3f, +0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x11,0x23,0x11,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62,0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x1e,0x28,0xa2,0xc0,0xe8,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x09,0xfd,0xeb,0x01,0x88,0x15,0x01,0x17,0xce,0xfd,0x01,0x33, +0x32,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x13,0x00,0xc8,0x40,0x6b,0x09,0x08,0x11,0x06,0x07,0x12,0x05,0x0a,0x05,0x0c,0x08,0x11,0x03,0x07,0x12,0x04,0x0b,0x04,0x0d,0x08,0x11,0x02,0x01,0x0e,0x01,0x13,0x07,0x12,0x10,0x08,0x11,0x00,0x0f,0x0f,0x0e,0x0e,0x00,0x04,0x0a,0x42,0x05,0x04,0x04,0x03,0x13,0x06, +0x03,0x02,0x07,0x12,0x07,0x02,0x03,0x06,0x13,0x04,0x12,0x07,0x10,0x0d,0x0c,0x09,0x08,0x11,0x08,0x09,0x0c,0x0d,0x10,0x04,0x11,0x08,0x00,0x01,0x0f,0x0a,0x0b,0x05,0x40,0x04,0x05,0x0e,0x0f,0x05,0x0f,0x05,0x08,0x12,0x11,0x03,0x07,0x08,0x11,0x12,0x07,0x0b,0x0a,0x0e,0x08,0x12,0x00,0x42,0x00,0x12,0x12,0x15,0x08,0x2f,0x12,0x39, +0x2f,0xce,0x2b,0x01,0x10,0xe2,0x32,0x33,0x11,0x33,0x00,0x18,0x2f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x33,0x11,0x33,0x1a,0x10,0xcd,0x32,0x10,0xcd,0x32,0x11,0x12,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x17,0x39,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x01,0x33,0x2f,0x33,0x2b,0x01,0x10,0xe1,0x32, +0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x07,0x25,0x03,0x05,0x07,0x25,0x03,0x23,0x13,0x25,0x37,0x05,0x13,0x25,0x37,0x05,0x13,0x33,0x03,0x03,0xd5,0x37,0xfe,0xe5,0x99,0x01,0x16,0x38,0xfe,0xec,0xac,0x91,0xc3,0xfe,0xf3,0x37,0x01,0x0a,0x9a, +0xfe,0xfa,0x38,0x01,0x04,0xa1,0x93,0xba,0x03,0x6a,0x7a,0x7e,0xfe,0x9c,0x7c,0x7c,0x7c,0xfe,0x72,0x01,0xc4,0x78,0x7c,0x76,0x01,0x62,0x74,0x7e,0x75,0x01,0x79,0xfe,0x50,0x00,0x00,0x01,0x00,0x52,0x04,0xc2,0x02,0xd7,0x05,0xcb,0x00,0x11,0x00,0x18,0x40,0x0a,0x0b,0x08,0xe2,0x00,0x02,0x09,0x0e,0x00,0x0e,0x05,0x2f,0xcd,0xcd,0x10, +0xcd,0x00,0x2f,0xdd,0xfd,0xcc,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x0a,0x52,0x26,0x36,0x36,0x26,0x01,0x73,0x0b,0x4f,0x26,0x36,0x36,0x26,0x05,0x12,0x50,0x36,0x26,0x27,0x36,0x50,0x36,0x27,0x26,0x36,0x00,0x01,0x00,0x5e,0x04,0xc2,0x03,0x0a,0x05,0xbe, +0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0e,0x4c,0x03,0x09,0x99,0x00,0x08,0x00,0xc2,0x01,0x01,0x11,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x33,0xed,0xdc,0xed,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x06,0x23,0x23,0x35,0x33,0x32,0x37,0x36,0x33,0x32,0x03,0x0a,0x7a,0x32,0x64,0x32,0x61,0x61,0x42,0x66,0x50,0x3d,0x6a,0x69,0x4c,0x97, +0x04,0xc2,0x88,0x44,0x44,0x9a,0x31,0x31,0xff,0xff,0xff,0x90,0x04,0x7b,0x00,0x7d,0x06,0x23,0x00,0x07,0x04,0x61,0xfd,0xae,0x00,0x00,0xff,0xff,0xff,0x86,0x04,0x7b,0x00,0x71,0x06,0x23,0x00,0x07,0x04,0x29,0xfd,0xa2,0x00,0x00,0x00,0x08,0x00,0x21,0xfe,0xcf,0x07,0xbc,0x05,0x5a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b, +0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0xd5,0x40,0x74,0x0d,0x11,0x19,0x03,0x1d,0x0f,0x1b,0xc3,0x15,0x21,0x21,0x09,0x39,0x3d,0x41,0x49,0x03,0x4d,0x3f,0x4b,0xc3,0x45,0x51,0x51,0x39,0x5d,0x55,0x59,0x57,0xc3,0x40,0x5d,0x0e,0x30,0x39,0x05,0x42,0x09,0xc3,0x03,0x01,0x05,0x2d,0x39,0xc3,0x27,0x33,0x40,0x24,0x2a,0x35,0x03,0x30,0x3c, +0x0c,0xc4,0x3d,0x0d,0x0d,0x80,0x41,0x11,0xc4,0x42,0x12,0x0e,0x2a,0x30,0x18,0x42,0x48,0x18,0xc4,0x49,0x19,0x4d,0x1d,0xc4,0x4e,0x1e,0x1e,0x06,0x36,0x24,0xc4,0x25,0x25,0x80,0x29,0xc4,0x2a,0x0e,0x06,0x30,0x00,0x42,0x54,0x00,0xc4,0x55,0x01,0x59,0x05,0xc4,0x5a,0x06,0x06,0x61,0x36,0x30,0xc4,0x31,0x80,0x35,0xc4,0x36,0x2f,0xe1, +0x1a,0xdc,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0xe1,0x1a,0xc8,0x18,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0xdc,0x32,0xe1,0x32,0x2b,0x01,0x10,0xf2,0x32,0xe1,0x32,0x1a,0xc8,0x18,0x2f,0x32,0xe1,0x32,0x00,0x2f,0x17,0x33,0x1a,0xdc,0x32,0xed,0x32,0x2f,0x33,0xde,0xed,0x2b,0x00, +0x18,0x10,0xf6,0x1a,0xfd,0xce,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0xce,0x17,0x32,0x31,0x30,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32, +0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x01,0x23,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x04,0xa2,0x50, +0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x02,0x8f,0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x05,0x98,0x50,0x08,0x66,0x64,0x0c,0x52,0x07,0x6b,0x50,0x52,0x69,0xf9,0xe9,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x05,0x8f, +0x50,0x08,0x67,0x62,0x0e,0x52,0x08,0x6b,0x4f,0x52,0x6a,0xfa,0xfd,0x50,0x08,0x67,0x63,0x0d,0x52,0x08,0x6b,0x4f,0x52,0x6a,0x02,0x7e,0x50,0x08,0x68,0x64,0x0e,0x4f,0x07,0x6d,0x4f,0x52,0x68,0x04,0xa4,0x6a,0x6a,0x53,0x63,0x63,0xfe,0xaf,0x6a,0x6a,0x52,0x64,0x63,0x53,0x6a,0x6a,0x52,0x64,0x63,0xfd,0xc3,0x6b,0x6b,0x52,0x64,0x62, +0x54,0x6b,0x6b,0x53,0x63,0x62,0xfd,0xc1,0x6b,0x6b,0x52,0x64,0x63,0x53,0x6b,0x6b,0x52,0x64,0x63,0xfe,0xab,0x6b,0x6b,0x53,0x63,0x63,0x00,0x08,0x00,0x35,0xfe,0x66,0x07,0x68,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x95,0x40,0x4d,0x4f,0x15,0x5f,0x15,0x02,0x15,0x17,0x19, +0x1b,0x17,0x1b,0x17,0x1f,0x12,0x0b,0x09,0x40,0x07,0x50,0x07,0x02,0x07,0x05,0x09,0x05,0x09,0x05,0x0c,0x02,0x1e,0x2f,0x1f,0x01,0x1f,0x0c,0x03,0x02,0x12,0x10,0x0e,0x0c,0x14,0x16,0x08,0x0a,0x06,0x04,0x1a,0x18,0x1e,0x1c,0x00,0x02,0x16,0x0a,0x16,0x0a,0x11,0x02,0x18,0x04,0x18,0x04,0x1c,0x02,0x1c,0x02,0x0c,0x10,0x11,0x11,0x21, +0x0d,0x0c,0x0c,0x21,0x20,0x11,0x12,0x39,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x10,0xcd,0x00,0x2f,0xcd,0xd6,0xdd,0xd6,0xcd,0x10,0xd6,0x5d,0xcd,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x5d,0x10,0xcd,0x11, +0x12,0x39,0x39,0x2f,0x2f,0xcd,0x10,0xcd,0x5d,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x01,0x25,0x35,0x05,0x05,0x25,0x35,0x05,0x01,0x07,0x03,0x37,0x05,0x05,0x27,0x25,0x05,0x03,0x23,0x13,0x04,0x4c,0x5c,0x7c,0x76,0xfe,0x6a,0x58,0xa6,0x46,0x05,0x16,0xfe,0xc7,0x58,0x01,0x4d,0xfb,0x28,0xfe,0x9f, +0x01,0x61,0x05,0xd2,0xfe,0xa0,0x01,0x60,0xfe,0xe0,0x46,0xb8,0x58,0xfc,0xdb,0xfe,0xb2,0x43,0x01,0x39,0x02,0x04,0x75,0x62,0x5c,0x05,0x9a,0xfe,0xa0,0x01,0x60,0xfe,0x10,0x58,0x01,0x4e,0x44,0xb1,0xb8,0x58,0xa6,0xfd,0x2d,0x74,0x63,0x5c,0x9e,0x5c,0x7b,0x74,0xfd,0x7a,0x44,0x01,0x3a,0x58,0x81,0xa6,0x46,0xb8,0xbf,0xfe,0xa0,0x01, +0x60,0x00,0x00,0x02,0x00,0x29,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x45,0x40,0x23,0x0a,0x01,0x91,0x07,0x04,0x04,0x05,0x13,0x91,0x0b,0x0b,0x05,0x03,0x14,0x91,0x00,0x02,0x00,0x09,0x09,0x14,0x0f,0x7d,0x18,0x18,0x1c,0x0b,0x07,0x14,0x7e,0x04,0x00,0x00,0x1c,0x1b,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x12, +0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0xbc,0x93,0x93,0xa8,0xa2,0xa2,0x01,0x10,0xd6,0xee,0xfa,0xd8,0xfe,0xfe, +0xec,0x95,0xa2,0xfe,0xc9,0x04,0x74,0x9a,0x8c,0x8c,0x9a,0xfe,0xc6,0xcf,0xbf,0xc6,0xe6,0x02,0xa2,0xfd,0xf6,0x8c,0x7e,0x01,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x03,0xb4,0x05,0xec,0x00,0x12,0x00,0x19,0x00,0x47,0x40,0x24,0x0a,0x01,0x96,0x07,0x04,0x04,0x06,0x0b,0x95,0x13,0x13,0x00,0x06,0x00,0x14,0x95,0x00,0x02,0x00,0x09, +0x09,0x14,0x0f,0x83,0x17,0x17,0x1b,0x0b,0x07,0x14,0x84,0x04,0x00,0x00,0x1b,0x1a,0x11,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x11,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x10,0xc6,0x00,0x2f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x32,0x16, +0x15,0x14,0x06,0x23,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0xa6,0x79,0x79,0xa4,0x81,0x81,0x01,0x14,0x9d,0xb9,0xba,0x8e,0xfe,0xde,0xf6,0xcc,0xce,0x04,0xd1,0x85,0x96,0x96,0x85,0xfd,0xa6,0xa4,0x93,0x94,0xac,0x01,0xea,0xfe,0xa2,0xb4,0xaa,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x75,0x40,0x3f, +0x16,0x00,0x15,0x01,0x15,0x13,0x03,0x14,0x02,0x14,0x03,0x00,0x06,0x09,0x16,0x13,0x10,0x0f,0x01,0x02,0x06,0x14,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x15,0x0f,0x06,0x91,0x10,0x10,0x08,0x0f,0x91,0x09,0x03,0x08,0x02,0x01,0x01,0x0d,0x07,0x15,0x00,0x14,0x01,0x14,0x14,0x10,0x0d,0x7d,0x18,0x18,0x1c,0x10,0x07,0x7e,0x08,0x2f, +0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x10,0xc6,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x01,0x17,0x07,0x27,0x06,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16, +0x15,0x14,0x01,0x11,0x33,0x32,0x37,0x27,0x37,0x17,0x36,0x35,0x10,0x21,0x03,0x81,0x75,0x73,0x7d,0x67,0x7e,0xbd,0xa8,0x01,0x8a,0xe6,0xfd,0xfd,0x3b,0xb0,0x52,0x46,0x66,0x72,0x6f,0x52,0xfe,0xb0,0x02,0x89,0xb0,0x4d,0xba,0x28,0xfd,0xe2,0x05,0x9a,0xe0,0xcc,0xe3,0x01,0xf7,0xfd,0xb4,0x15,0x97,0x4e,0xa4,0x4e,0x8c,0x01,0x1c,0x00, +0x00,0x02,0x00,0xa6,0xfe,0x23,0x04,0x54,0x04,0x18,0x00,0x14,0x00,0x25,0x00,0x7c,0x40,0x44,0x18,0x00,0x17,0x01,0x17,0x15,0x03,0x16,0x02,0x16,0x03,0x00,0x05,0x10,0x18,0x15,0x24,0x1d,0x09,0x1c,0x01,0x02,0x05,0x16,0x17,0x40,0x09,0x0c,0x48,0x17,0x17,0x1d,0x24,0x95,0x05,0x16,0x0e,0x1d,0x95,0x10,0x10,0x0c,0x0f,0x02,0xdf,0x01, +0x01,0x01,0x01,0x13,0x09,0x17,0x00,0x16,0x01,0x16,0x16,0x21,0x13,0x83,0x1a,0x1a,0x27,0x21,0x0c,0x09,0x84,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x2b,0x33,0x10,0xc6,0x32,0x3f,0x11,0x12,0x39,0x39,0x11,0x12,0x39, +0x39,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x31,0x30,0x25,0x17,0x07,0x27,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x05,0x27,0x37,0x17,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x03,0xae,0x70,0x72,0x72,0x52,0x67,0xd7,0x5c,0x04,0xa4,0xa4,0x04,0x74, +0xee,0xc0,0xe4,0xfe,0x92,0x78,0x74,0x72,0x5a,0xa2,0x85,0x8d,0xb0,0xa6,0x80,0x42,0x56,0xa8,0x4e,0xaa,0x22,0xac,0xfd,0x8f,0x05,0xdd,0xb4,0xcc,0xfe,0xf2,0xe3,0xfe,0xc9,0x69,0xb1,0x4d,0xaa,0x71,0xd0,0xa9,0xc9,0xc9,0x98,0x8f,0x7f,0xad,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0x33,0x05,0x9a,0x00,0x19,0x00,0x40,0x40,0x24,0x18,0x91, +0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x91,0x11,0x11,0x0b,0x10,0x91,0x0d,0x03,0x0b,0x0f,0x0f,0x0c,0x15,0x7d,0x06,0x06,0x1b,0x11,0x0b,0x7e,0x01,0x42,0x0c,0x2f,0xe2,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0xbe,0xa4,0x9a,0xbd,0xca,0xfe,0xdb,0x46,0xa8,0x02,0xd0,0xfd,0xd8,0x4a,0x01,0x27,0x01,0x5e,0xfe,0xd9,0xfe,0xf4,0xae,0xfe,0xb2,0xb8,0x6c,0xdf,0xcb,0xd5,0x01,0x25,0xfd,0x5e,0x05,0x9a,0x9a,0xfe,0x3a,0xfe,0x97,0xfe, +0xdd,0xfd,0xfe,0xb5,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xaa,0x04,0x00,0x00,0x19,0x00,0x3f,0x40,0x23,0x18,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0b,0x0a,0x95,0x11,0x11,0x0b,0x10,0x95,0x0d,0x0f,0x0b,0x0e,0x0e,0x0c,0x15,0x83,0x06,0x06,0x1b,0x11,0x0b,0x84,0x01,0x0c,0x2f,0x33,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11, +0x39,0x2f,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x10,0xde,0x32,0x5d,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0xa6,0x75,0x8b,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0x02,0x76,0xfe,0x2e,0x42,0xf7,0x01,0x27,0xfe,0xe9,0xef,0x99, +0xfe,0xa0,0xa0,0x4e,0xbb,0xa9,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0x8c,0xff,0x00,0xfe,0xdd,0xf9,0xd7,0xfe,0xe5,0x00,0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0xe2,0x05,0xb2,0x00,0x31,0x00,0x79,0x40,0x46,0x08,0x0a,0xe2,0x40,0x05,0x32,0x80,0x00,0x0e,0x26,0x2c,0x2b,0x18,0x92,0x1b,0x1b,0x26,0x00,0x11,0x10,0x11,0x20,0x11,0x03,0x11,0x13, +0x92,0x0e,0x13,0x0f,0x23,0x1f,0x23,0x2f,0x23,0x03,0x23,0x21,0x92,0x26,0x04,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2f,0x10,0x2b,0x19,0x29,0x7d,0x1e,0x23,0x1e,0x19,0x19,0x1e,0x23,0x03,0x10,0x2f,0x7d,0x16,0x16,0x33,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1, +0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x06,0x02,0x4c,0x35,0x5a,0x4c,0x47,0x38,0x32,0x30,0x44,0x2d,0xf1,0x84,0xa8,0xd5,0x9b,0xb7,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x91,0x7f,0xb4,0xaa,0x9e,0xce,0xcc,0xea,0xfe,0xf0,0x94,0xae,0xd8,0x10,0x56,0x40,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x54,0xb6, +0x7b,0x96,0x7f,0x01,0x14,0x8b,0x8a,0x7e,0x6c,0x82,0x71,0xaa,0x58,0xc2,0x9e,0xfe,0xe9,0x49,0x04,0x11,0xbc,0x8b,0xab,0xe1,0x00,0x01,0x00,0x58,0xfe,0xae,0x03,0x44,0x04,0x18,0x00,0x2e,0x00,0x70,0x40,0x3d,0x08,0x0a,0xe2,0x40,0x05,0x2f,0x80,0x00,0x0e,0x24,0x29,0x28,0x17,0x95,0x40,0x1a,0x24,0x0e,0x1a,0x95,0x2b,0x30,0x11,0x13, +0x95,0x0e,0x16,0x21,0x1f,0x95,0x24,0x10,0x08,0x02,0xc2,0x0c,0x00,0xc2,0x0e,0x0e,0x2c,0x11,0x29,0x18,0x26,0x84,0x1c,0x21,0x1c,0x18,0x18,0x1c,0x21,0x03,0x11,0x2c,0x84,0x15,0x15,0x30,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe1,0x11,0x39,0x11,0x12,0x39,0x2f,0xe1,0xd6,0xe1,0xc6,0x00,0x3f,0xfd,0xc6, +0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x05,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x35,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15, +0x16,0x16,0x15,0x14,0x06,0x02,0x00,0x33,0x5a,0x4b,0x48,0x38,0x32,0x30,0x44,0x2d,0xc9,0x66,0x86,0xb4,0x01,0x0e,0xfe,0xd7,0x65,0x60,0x01,0x05,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x76,0xd2,0x70,0x8c,0xac,0x12,0x53,0x41,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x30,0xa2,0x4c,0xac,0xaa,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, +0xfe,0xee,0xbe,0x32,0x04,0x09,0x87,0x6a,0x77,0xa0,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x18,0x00,0x52,0x40,0x2a,0x08,0x11,0x96,0x0b,0x0e,0x0e,0x0d,0x13,0x04,0x18,0x04,0x18,0x01,0x18,0x06,0x16,0x0d,0x03,0x01,0x06,0x10,0x10,0x16,0x11,0x16,0x17,0x17,0x06,0x01,0x00,0x00,0x1a,0x19,0x09,0x0e,0x11,0x18,0x03, +0x06,0x7e,0x0b,0x07,0x2f,0x33,0xe1,0x17,0x32,0xc6,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x12,0x39,0x5d,0x11,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x37, +0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1f,0x07,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x25,0x0d,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x4d,0x40,0x27,0x0f,0x06, +0x96,0x0c,0x09,0x09,0x0b,0x00,0x11,0x02,0x14,0x14,0x04,0x12,0x0f,0x01,0x04,0x0e,0x0e,0x12,0x0f,0x07,0x05,0x12,0x13,0x13,0x04,0x01,0x00,0x00,0x16,0x0c,0x0f,0x14,0x03,0x04,0x84,0x09,0x05,0x2f,0x33,0xe1,0x17,0x32,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x10,0xc6,0x11,0x12,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x11,0x39,0x11,0x33, +0x33,0x3f,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x03,0xf8,0xe6,0xfe,0x3c,0x04,0xa4,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x01,0xec,0xfe,0x14,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5, +0xfe,0x12,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xac,0x05,0x9a,0x00,0x12,0x00,0x42,0x40,0x20,0x0d,0x04,0x12,0x12,0x06,0x08,0x91,0x10,0x0b,0x03,0x01,0x06,0x10,0x11,0x11,0x06,0x01,0x00,0x00,0x14,0x07,0x09,0x09,0x13,0x12,0x0b,0x06,0x7e,0x07,0x07,0x14,0x13,0x11,0x12,0x39,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f, +0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xac,0xea,0xfd,0xd6,0x1b,0x0b,0x04,0xa8,0xfe,0x63,0x02,0x45,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x20,0x12,0xfd,0x3e, +0x05,0x00,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xa4,0x04,0x00,0x00,0x0e,0x00,0x42,0x40,0x20,0x0b,0x02,0x0e,0x0e,0x04,0x06,0x95,0x0c,0x09,0x0f,0x01,0x04,0x0c,0x0d,0x0d,0x04,0x01,0x00,0x00,0x10,0x05,0x07,0x07,0x0f,0x0e,0x09,0x04,0x84,0x05,0x05,0x10,0x0f,0x11,0x12,0x39,0x2f, +0xe1,0x32,0x32,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x01,0x33,0x01,0x04,0xa4,0xe4,0xfe,0x3e,0x04,0xa4,0xfe,0xc8,0x01,0xdc,0x04,0x01,0xae,0xd9,0xfe,0x23,0x01,0xea,0xfe,0x16, +0x03,0x74,0x8c,0xfe,0x2d,0x01,0xd3,0xfe,0x10,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x06,0x90,0x05,0x9a,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x91,0x40,0x0a,0x09,0x06,0x0a,0x91,0x2b,0x30,0x01,0x91,0x0c,0x0c,0x09,0x03,0x03,0x06,0x00,0x00,0x0f,0x02,0x7e,0x0b,0x03,0x03,0x0f,0x0a,0x06,0x7e,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33, +0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x06,0x90,0xfe,0x62,0xa8,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0x02,0x46,0x05,0x00,0xfb,0x00,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6, +0x00,0x00,0x05,0x2f,0x04,0x00,0x00,0x0d,0x00,0x3b,0x40,0x1f,0x05,0x95,0x40,0x0a,0x09,0x06,0x0a,0x95,0x2b,0x30,0x01,0x95,0x0c,0x0c,0x09,0x0f,0x03,0x06,0x00,0x00,0x0f,0x02,0x84,0x0b,0x03,0x03,0x0f,0x0a,0x05,0x84,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x2f,0x33,0x3f,0x33,0x10,0xed,0x2b,0x00,0x18, +0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x21,0x05,0x2f,0xfe,0xc9,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0x01,0xdb,0x03,0x74,0xfc,0x8c,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0x00,0x01,0x00,0xbc,0xfe,0x66,0x07,0xbe,0x05,0x9a,0x00,0x1b,0x00,0x45,0x40,0x27,0x0a,0x91, +0x13,0x13,0x0c,0x0e,0x91,0x11,0x03,0x1a,0x91,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x7e,0x01,0x42,0x0c,0x0c,0x10,0x17,0x7d,0x06,0x06,0x1d,0x0f,0x7e,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe2,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31, +0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x20,0x00,0x11,0x14,0x00,0x21,0x22,0x04,0x4c,0xa4,0x99,0xbc,0xcd,0xff,0x00,0xda,0x46,0xa8,0xfd,0x1a,0xa8,0x04,0x36,0x4a,0x01,0x26,0x01,0x5c,0xfe,0xd6,0xfe,0xfa,0xae,0xfe,0xb2,0xae,0x6c,0xe7,0xcd,0xd3,0x01,0x29, +0xfd,0x5c,0x05,0x04,0xfa,0xfc,0x05,0x9a,0xfd,0x9e,0xfe,0x99,0xfe,0xdd,0xff,0xfe,0xb7,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x56,0x04,0x00,0x00,0x1b,0x00,0x44,0x40,0x26,0x0a,0x95,0x14,0x14,0x0c,0x0d,0x95,0x12,0x0f,0x1a,0x95,0x04,0x01,0x14,0x01,0x24,0x01,0x03,0x01,0x03,0x0c,0x0c,0x0f,0x13,0x0b,0x84,0x01,0x0c,0x0c,0x10, +0x17,0x83,0x06,0x06,0x1d,0x0f,0x84,0x10,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x00,0x2f,0x33,0x10,0xde,0x32,0x5d,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22, +0x03,0x54,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xfd,0xf6,0xa4,0x03,0x52,0x42,0xf7,0x01,0x25,0xfe,0xeb,0xef,0x99,0xfe,0xa0,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x03,0x74,0xfc,0x8c,0x04,0x00,0xfe,0x74,0xfe,0xdb,0xf7,0xd5,0xfe,0xe3,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xb6,0x05,0xb2,0x00,0x3b,0x00,0x4f,0x00,0x4a, +0x40,0x29,0x46,0x7d,0x21,0x1c,0x3a,0x2e,0x03,0x21,0x2b,0x7d,0x3c,0x21,0x0c,0x3c,0x3c,0x0c,0x21,0x03,0x51,0x15,0x7d,0x05,0x31,0x91,0x37,0x13,0x4b,0x1a,0x41,0x91,0x26,0x26,0x1a,0x10,0x91,0x0a,0x04,0x1a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06, +0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x02,0xff,0x8e,0xf6,0xb5,0x68,0x57,0xa9,0xf8,0xa0,0x24,0x23,0x0e,0x26,0x13,0x73,0xb5,0x7e,0x42,0x44,0x80,0xb6,0x72,0x41,0x3a,0x38,0x57,0x3b,0x1f,0x33,0x5e,0x89,0x55,0x5c,0x8a,0x5c,0x2f,0x76,0x62,0x18,0x32,0x1b,0x31,0x66,0x26,0x50,0x7a,0x42,0x74, +0x35,0x78,0x01,0x33,0x18,0x2f,0x47,0x30,0x31,0x49,0x30,0x18,0x1c,0x35,0x4d,0x31,0x33,0x44,0x29,0x11,0x18,0x5f,0xb7,0x01,0x0f,0xaf,0xaa,0x01,0x17,0xc7,0x6e,0x08,0x99,0x04,0x05,0x53,0x9a,0xdb,0x87,0x81,0xd8,0x9c,0x58,0x0e,0x38,0x8b,0x9c,0xa6,0x52,0x86,0xd2,0x91,0x4c,0x4c,0x91,0xd2,0x86,0xc6,0xfe,0xd4,0x62,0x07,0x07,0x18, +0x16,0x9b,0x28,0x1e,0x1b,0x3d,0x02,0xfb,0x5a,0x97,0x6f,0x3e,0x3c,0x6d,0x9a,0x5f,0x4f,0x96,0x87,0x71,0x29,0x2c,0x76,0x89,0x95,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x55,0x04,0x1a,0x00,0x38,0x00,0x48,0x00,0x54,0x40,0x31,0x1b,0x36,0x1e,0x28,0xef,0x39,0x43,0x84,0x1e,0x4f,0x39,0x01,0x39,0x0c,0x1e,0x1e,0x0c,0x39,0x03,0x4a, +0x14,0x83,0x40,0x05,0x50,0x05,0x60,0x05,0x03,0x05,0x2e,0x95,0x34,0x16,0x46,0x19,0x3e,0x95,0x23,0x23,0x19,0x0f,0x95,0x0a,0x0f,0x19,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x06,0x06,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02, +0x53,0x6a,0xb6,0x86,0x4d,0x43,0x7e,0xb4,0x71,0x1d,0x1a,0x19,0x1e,0x48,0x76,0x53,0x2d,0x2a,0x52,0x77,0x4d,0x1e,0x1c,0x44,0x4d,0x22,0x45,0x69,0x47,0x48,0x69,0x45,0x21,0x4d,0x42,0x0e,0x1d,0x10,0x23,0x4b,0x1c,0x39,0x5c,0x61,0x56,0x2a,0x5c,0x01,0x02,0x10,0x20,0x2c,0x1d,0x21,0x2f,0x1e,0x0e,0x44,0x3f,0x3d,0x35,0x18,0x44,0x85, +0xc4,0x7f,0x7a,0xca,0x91,0x51,0x08,0x8d,0x09,0x3d,0x6b,0x92,0x54,0x57,0x91,0x6a,0x3b,0x03,0x4a,0xd5,0x86,0x44,0x84,0x69,0x41,0x3e,0x67,0x85,0x47,0x86,0xd4,0x4a,0x02,0x03,0x11,0x10,0x88,0x23,0x28,0x14,0x15,0x02,0x25,0x38,0x5b,0x41,0x24,0x28,0x44,0x5a,0x32,0x7e,0xb0,0x31,0x31,0xaf,0x00,0x01,0x00,0x5e,0xfe,0xae,0x04,0x8c, +0x05,0xb2,0x00,0x23,0x00,0x52,0x40,0x2c,0x0a,0x0c,0xe2,0x40,0x07,0x10,0x80,0x02,0x10,0x16,0x30,0x19,0x01,0x19,0x19,0x1b,0x91,0x16,0x04,0x20,0x23,0x01,0x23,0x23,0x21,0x91,0x10,0x13,0x0a,0x0a,0x10,0x0e,0xc2,0x02,0x04,0x04,0x13,0x18,0x00,0x00,0x25,0x1e,0x7d,0x13,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0xf1,0x32, +0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x25,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x24,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x37,0x04,0x8c,0x72,0xae, +0x34,0x5a,0x4c,0x47,0x38,0x31,0x31,0x44,0x2d,0xfe,0xd1,0xfe,0x99,0x01,0x9e,0x01,0x3e,0xcc,0x86,0x9a,0xba,0xf7,0xfe,0xcd,0x01,0x1f,0xe9,0xd8,0x9e,0x3c,0x3c,0x12,0x54,0x40,0x4e,0x5e,0x16,0x6d,0x19,0x42,0x3e,0x50,0x04,0x01,0x89,0x01,0x3d,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00, +0x00,0x01,0x00,0x60,0xfe,0xae,0x03,0x62,0x04,0x18,0x00,0x23,0x00,0x4c,0x40,0x28,0x15,0x17,0xe2,0x40,0x12,0x24,0x80,0x0d,0x1b,0x21,0x00,0x00,0x02,0x95,0x21,0x10,0x30,0x0a,0x01,0x0a,0x0a,0x08,0x95,0x1b,0x16,0x15,0x15,0x1b,0x19,0xc2,0x0d,0x0f,0x0f,0x0a,0x1e,0x0b,0x00,0x05,0x83,0x1e,0x2f,0xe1,0x2f,0x33,0x11,0x12,0x39,0x2f, +0x33,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x1a,0x10,0xdc,0x1a,0xfd,0xc6,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x27,0x26,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x03,0x62, +0x72,0x82,0x9d,0xc9,0xbd,0x9f,0x86,0x76,0x58,0x72,0x32,0x59,0x4c,0x47,0x38,0x31,0x31,0x44,0x2e,0xc8,0xf4,0x01,0x22,0xf2,0x87,0x67,0x03,0x3e,0x50,0xe1,0xb7,0xb4,0xd0,0x59,0x9c,0x35,0x0e,0x54,0x3e,0x4f,0x5d,0x16,0x6d,0x19,0x42,0x40,0x50,0x0e,0x01,0x19,0xd7,0xfd,0x01,0x33,0x32,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x0c, +0x05,0x9a,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x30,0x40,0x14,0x01,0x08,0x91,0x0a,0x03,0x02,0x91,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x7e,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f, +0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x04,0x0c,0xfe,0x62,0xc1,0x9b,0xce,0xfe,0x63,0x03,0xe3,0x05,0x02,0xfb,0x96,0xfd,0xe8,0x01,0x80,0x05,0x02,0x98,0x00,0x01,0x00,0x1e,0xfe,0x8a,0x03,0x29,0x04,0x00,0x00,0x0b,0x00,0x42,0xb9,0x00,0x05,0x01,0x31,0x40,0x14,0x01, +0x08,0x95,0x0a,0x0f,0x02,0x95,0x40,0x07,0x00,0x0e,0x02,0x09,0x07,0x42,0x09,0x09,0x07,0x0c,0x03,0xb8,0x01,0x2c,0xb7,0x06,0x06,0x02,0x84,0x07,0x07,0x0d,0x0c,0x11,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23, +0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x29,0xfe,0xcd,0x98,0x8e,0xae,0xfe,0xcc,0x03,0x0b,0x03,0x74,0xfd,0x18,0xfd,0xfe,0x01,0x76,0x03,0x74,0x8c,0x00,0x01,0x00,0x29,0xfe,0x80,0x06,0xbc,0x05,0x9a,0x00,0x0f,0x00,0x50,0xb6,0x09,0x04,0x91,0x0c,0x07,0x03,0x01,0xb8,0x01,0x30,0x40,0x10,0x0e,0x0a,0x91,0x40,0x03,0x05,0x0e,0x03,0x0a, +0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x7e,0x0b,0x0b,0x11,0x0a,0x7e,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0x3f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21, +0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x06,0xbc,0x9b,0xfb,0xa5,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x02,0xe6,0xa8,0xc0,0xfe,0x80,0x01,0x80,0x05,0x02,0x98,0x98,0xfb,0x96,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b,0x05,0x3c,0x04,0x00,0x00,0x0f,0x00,0x50,0xb9,0x00,0x01,0x01,0x31,0x40,0x16,0x09,0x04,0x95, +0x0c,0x06,0x0f,0x0e,0x0a,0x95,0x40,0x03,0x05,0x0e,0x03,0x0a,0x08,0x42,0x08,0x08,0x0b,0x0a,0x0f,0xb8,0x01,0x2c,0x40,0x0d,0x02,0x02,0x0e,0x84,0x0b,0x0b,0x11,0x0a,0x84,0x03,0x03,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f, +0x33,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x05,0x3c,0x8e,0xfc,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x02,0x0a,0xa4,0x98,0xfe,0x8b,0x01,0x75,0x03,0x74,0x8c,0x8c,0xfd,0x18,0x03,0x74,0xfc,0x8c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x05,0x42,0x05,0x9a,0x00,0x14, +0x00,0x3d,0x40,0x0b,0x10,0x04,0x0e,0x91,0x06,0x06,0x03,0x11,0x0b,0x03,0x01,0xb8,0x01,0x30,0xb3,0x13,0x91,0x03,0x14,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x12,0x7e,0x04,0x11,0x11,0x16,0x0b,0x7e,0x0a,0x2f,0xe1,0x11,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x01, +0x23,0x11,0x23,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x05,0x42,0x9c,0xcd,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xc1,0xfe,0x80,0x01,0x80,0x02,0x85,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0xfe,0x00,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x77,0x04,0x00, +0x00,0x13,0x00,0x3d,0x40,0x0b,0x0f,0x04,0x0d,0xec,0x06,0x06,0x03,0x10,0x0a,0x0f,0x01,0xb8,0x01,0x31,0xb3,0x12,0x95,0x03,0x13,0xb8,0x01,0x2c,0x40,0x0b,0x02,0x02,0x11,0x84,0x04,0x0f,0x0f,0x15,0x0a,0x84,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31, +0x30,0x01,0x23,0x11,0x23,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0x77,0x8d,0xae,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0x98,0xfe,0x8b,0x01,0x75,0x01,0x9c,0x62,0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x8c,0x00,0x02,0x00,0x29,0xff,0xe8,0x06,0x58,0x05,0xb2, +0x00,0x1c,0x00,0x23,0x00,0x56,0x40,0x19,0x13,0x0c,0x18,0x01,0x91,0x40,0x23,0x1b,0x09,0x23,0x91,0x2b,0x30,0x20,0x91,0x1b,0x04,0x06,0x04,0x91,0x40,0x09,0x13,0x13,0x15,0xb8,0x01,0x2c,0x40,0x13,0x10,0x0c,0x80,0x06,0x06,0x0c,0x00,0x7d,0x1d,0x1d,0x25,0x0c,0x23,0x42,0x01,0x7d,0x18,0x42,0x0c,0x2f,0xe1,0xf1,0xe1,0x11,0x12,0x39, +0x2f,0xe1,0x11,0x39,0x2f,0x1a,0x10,0xdd,0xe1,0x32,0x00,0x3f,0x1a,0xfd,0xc6,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x32,0xc4,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x20,0x37,0x15,0x06,0x21,0x20,0x00,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x12,0x00,0x21,0x20,0x03,0x26,0x02,0x23,0x22,0x00,0x07, +0x06,0x58,0xfb,0xa2,0x10,0x01,0x1c,0xda,0x01,0x09,0xc2,0xc5,0xfe,0xe4,0xfe,0xda,0xfe,0x95,0x0f,0x1d,0x7c,0x88,0x27,0x8f,0x29,0x84,0x12,0x1d,0x01,0x6f,0x01,0x16,0x02,0x6a,0xb4,0x08,0xe7,0xc9,0xd0,0xfe,0xf6,0x16,0x02,0x7f,0xeb,0xfe,0xeb,0xa4,0xaa,0x91,0x01,0x6a,0x01,0x2d,0x8b,0x7d,0x5e,0x4a,0x47,0x52,0x80,0x01,0x30,0x01, +0x6c,0xfd,0x64,0xed,0x01,0x17,0xfe,0xe4,0xe8,0x00,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x1e,0x00,0x25,0x00,0x5f,0x40,0x0e,0x13,0x0c,0x0c,0x01,0x95,0x18,0x25,0x25,0x04,0x22,0x95,0x1b,0x10,0x06,0xb8,0xff,0xc0,0x40,0x15,0x09,0x0e,0x48,0x06,0x06,0x04,0x95,0x09,0x16,0x18,0x00,0x0c,0x25,0x1f,0x01,0x06,0x06, +0x00,0x0c,0x13,0x15,0xb8,0x01,0x2c,0x40,0x0a,0x10,0x0c,0x00,0x83,0x1f,0x1f,0x27,0x01,0x83,0x0c,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xdd,0xe1,0x32,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0xed,0x32,0x2f,0x2b,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x31,0x30,0x01,0x21,0x16,0x16,0x33,0x32,0x37, +0x15,0x06,0x23,0x22,0x02,0x27,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x33,0x36,0x24,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x04,0xc4,0xfd,0x2e,0x04,0xaf,0x9b,0xac,0x91,0x87,0xde,0xd0,0xf7,0x09,0x1b,0x77,0x8d,0x27,0x89,0x29,0x8a,0x14,0x1c,0x01,0x04,0xb0,0xca,0xdc,0xa8,0x01,0x85,0x7a,0x74, +0xa2,0x12,0x01,0xd7,0xab,0xba,0x72,0x9a,0x62,0x01,0x04,0xeb,0x85,0x6f,0x55,0x4a,0x47,0x4a,0x77,0xc8,0xee,0xfe,0xfc,0xe7,0x35,0x8d,0x9f,0xa6,0x86,0x00,0xff,0xff,0x00,0x29,0xfe,0x80,0x06,0x58,0x05,0xb2,0x02,0x26,0x06,0x1d,0x00,0x00,0x00,0x06,0x0b,0x51,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x8a,0x04,0xc4,0x04,0x18,0x02,0x26, +0x06,0x1e,0x00,0x00,0x00,0x06,0x0b,0x52,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x07,0x1a,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0xda,0x02,0x3f,0x01,0x5c,0x00,0x13,0x40,0x0b,0x01,0x00,0x24,0x1e,0x0d,0x00,0x25,0x01,0x21,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0xbe,0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0xc7,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x00,0x1c,0x16,0x09,0x00,0x25,0x01,0x19,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x01,0x00,0xbe,0xfe,0x66,0x04,0x4c,0x05,0x9a, +0x00,0x19,0x00,0x42,0x40,0x24,0x01,0x15,0x18,0x91,0x13,0x13,0x15,0x19,0x17,0x03,0x07,0x91,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x15,0x19,0x00,0x00,0x04,0x7d,0x0f,0x0f,0x1b,0x01,0x18,0x14,0x7e,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39, +0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x00,0x11,0x14,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x00,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x01,0x04,0x4c,0xfd,0xce,0xfa,0x01,0x1d,0xfe,0xd6,0xfe,0xf9,0xae,0x94,0xa4,0x9a,0xbc,0xcd,0xfe,0xff,0xda,0x46,0xa6,0xa6,0x02,0x17,0x05,0x9a,0xfd,0x97,0x21,0xfe,0xa1, +0xfe,0xfd,0xff,0xfe,0xb7,0x4c,0xae,0x6c,0xea,0xca,0xd6,0x01,0x26,0xfd,0x5c,0x05,0x9a,0xfd,0xa0,0x02,0x60,0x00,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xae,0x04,0x00,0x00,0x1a,0x00,0x42,0x40,0x24,0x01,0x14,0x19,0x95,0x13,0x13,0x14,0x1a,0x17,0x0f,0x07,0xec,0x04,0x0a,0x14,0x0a,0x24,0x0a,0x03,0x0a,0x0c,0x14,0x1a,0x00,0x00,0x04, +0x83,0x0f,0x0f,0x1c,0x17,0x01,0x14,0x84,0x0a,0x15,0x2f,0x33,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x32,0x2f,0x33,0x00,0x2f,0xde,0x32,0x5d,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x01,0x16,0x12,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x33,0x11,0x33, +0x01,0x03,0xae,0xfe,0x4c,0xc8,0xe6,0xfe,0xea,0xee,0x99,0x65,0x72,0x8e,0xa7,0xb5,0xda,0xbe,0x20,0xa4,0xa4,0x02,0x01,0x87,0x04,0x00,0xfe,0x6c,0x20,0xfe,0xe5,0xd9,0xd6,0xfe,0xe4,0x3a,0xa4,0x4c,0xb6,0xa8,0xb9,0xd7,0xfe,0x1a,0x04,0x00,0xfe,0x74,0x01,0x8c,0x00,0x01,0x00,0xbc,0xfe,0x66,0x04,0xf2,0x05,0x9a,0x00,0x18,0x00,0x40, +0x40,0x22,0x0a,0x7e,0x18,0x07,0x18,0x11,0x18,0x11,0x18,0x1a,0x06,0x02,0x7e,0x03,0x11,0x13,0x92,0x0e,0x08,0x03,0x01,0x91,0x06,0x40,0x04,0x03,0x06,0x91,0x2b,0x30,0x04,0x03,0x03,0x12,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe1,0x31,0x30, +0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x36,0x35,0x04,0x4a,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x95,0x94,0xfe,0xf8,0xae,0x94,0xa4,0x9a,0x5e,0x95,0x33,0x67,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfb,0x14,0xff,0xa4,0xa5,0x4c,0xae,0x6c, +0x3a,0x3b,0x74,0xcb,0x00,0x01,0x00,0xa6,0xfe,0x66,0x03,0xf8,0x04,0x00,0x00,0x19,0x00,0x3a,0x40,0x1f,0x0a,0x84,0x07,0x12,0x03,0x19,0x19,0x1b,0x06,0x02,0x84,0x03,0x14,0x95,0x0f,0x08,0x0f,0x01,0x95,0x06,0x40,0x04,0x03,0x06,0x95,0x2b,0x30,0x04,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x2b,0x00,0x1a,0x18,0x10,0xed,0x3f,0x2f,0xed,0x01, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0xe1,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x03,0x54,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x46,0x46,0x8b,0xef,0x9a,0x64,0x75,0x8b,0x54,0x83,0x5a,0x2f,0x01,0xd1,0xfe,0x2f,0x04,0x00, +0xfe,0x5c,0x01,0xa4,0xfc,0x69,0x72,0xbc,0x47,0x8e,0x3a,0xa0,0x4e,0x31,0x5c,0x85,0x54,0x00,0x00,0x01,0x00,0xa6,0xfe,0x80,0x04,0x81,0x05,0x9a,0x00,0x14,0x00,0x38,0xb9,0x00,0x02,0x01,0x30,0x40,0x0f,0x10,0x91,0x08,0x08,0x01,0x13,0x0d,0x03,0x05,0x91,0x01,0x00,0x7e,0x12,0x01,0xb8,0x01,0x2c,0xb7,0x04,0x12,0x06,0x06,0x16,0x0e, +0x7e,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xd6,0xe1,0x10,0xe1,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x3f,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0xd7,0x9c,0xcb,0xe5,0xc5,0xbc,0xcd,0xa8,0xf6,0xb2,0xe3,0xa8,0xfe,0x80,0x02,0x18,0x01, +0xed,0x79,0xc3,0xb0,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0x00,0x01,0x00,0x98,0xfe,0x8a,0x03,0xdf,0x04,0x00,0x00,0x13,0x00,0x3d,0x40,0x0b,0x11,0x06,0x0f,0xec,0x08,0x08,0x01,0x12,0x0c,0x0f,0x02,0xb8,0x01,0x31,0xb3,0x05,0x95,0x01,0x01,0xb8,0x01,0x2c,0x40,0x0b,0x04,0x00,0x84,0x06,0x06,0x11,0x11,0x15,0x0c,0x84,0x0b,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0x10,0xe1,0xd6,0xe1,0x00,0x2f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x23,0x11,0x33,0x11,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x03,0xdf,0xb0,0x8b,0x98,0xb4,0x98,0xfe,0xa8,0xa4,0xc2,0x94,0xaa,0xa3,0xfe,0x8a,0x02,0x02,0x01,0x10,0x62, +0x01,0x6c,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x07,0x19,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x55,0x01,0x5b,0x00,0x08,0xb3,0x02,0x13,0x05,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0xbe,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x00,0xda, +0x00,0xc6,0x00,0x00,0x00,0x08,0xb3,0x02,0x23,0x11,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x06,0xe2,0x02,0x26,0x00,0x24,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xe6,0x01,0x5b,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xf2,0x40,0x0a,0x1f,0x19,0x05,0x00,0x25,0x03,0x02,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b, +0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x83,0x05,0x87,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x14,0x2f,0x29,0x08,0x14,0x25,0x03,0x02,0x2c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0a,0x00,0x00,0x06,0x83,0x05,0x9a,0x02,0x06,0x00,0x91, +0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x06,0x56,0x04,0x18,0x02,0x06,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x07,0x1b,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x13,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x12,0x12,0x0c,0x02,0x0b,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00, +0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xdd,0x05,0xbe,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xe5,0x00,0x00,0x00,0x13,0x40,0x0b,0x02,0x00,0x20,0x1a,0x0c,0x12,0x25,0x02,0x1d,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x02,0x00,0x56,0xff,0xe8,0x05,0x66,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x3f,0x40,0x23, +0x12,0x91,0x40,0x01,0x09,0x0f,0x01,0x91,0x2b,0x30,0x2f,0x06,0x01,0x06,0x06,0x04,0x91,0x09,0x04,0x16,0x91,0x0f,0x13,0x06,0x06,0x00,0x0c,0x7d,0x01,0x12,0x12,0x1a,0x13,0x7d,0x00,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x13,0x21,0x26, +0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x25,0x21,0x16,0x12,0x33,0x32,0x00,0x56,0x04,0x5e,0x11,0xfe,0xe5,0xda,0xd8,0x9c,0x9e,0xe2,0x01,0x3f,0x01,0x6d,0xfe,0x94,0xfe,0xd3,0xfe,0xd1,0xfe,0xb8,0x04,0x5e,0xfc,0x56,0x04,0xf2,0xcf,0xcf,0x01,0x02,0x03,0x1a,0xed,0x01,0x13,0x60,0xa4,0x54,0xfe, +0x76,0xfe,0xa5,0xfe,0xbe,0xfe,0x5d,0x01,0x9f,0xfc,0xeb,0xfe,0xe7,0x01,0x18,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x04,0x18,0x02,0x06,0x05,0x07,0x00,0x00,0xff,0xff,0x00,0x56,0xff,0xe8,0x05,0x66,0x06,0xe4,0x02,0x26,0x06,0x32,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x2a,0x01,0x5d,0x00,0x1a,0xb1,0x03,0x02,0xb8,0xff,0xec, +0x40,0x0a,0x28,0x22,0x00,0x0c,0x25,0x03,0x02,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x52,0xff,0xe8,0x03,0xcf,0x05,0x87,0x02,0x26,0x05,0x07,0x00,0x00,0x01,0x06,0x00,0x8f,0x7a,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x0a,0x29,0x23,0x12,0x0c,0x25,0x03,0x02,0x26,0x11,0x26,0x00,0x2b,0x35,0x35,0x01, +0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xea,0x00,0x00,0x07,0x02,0x06,0xe4,0x02,0x26,0x01,0xed,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0xd6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x2d,0x27,0x0d,0x00,0x25,0x02,0x01,0x2a,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x04,0x00,0x00,0x05,0xf6,0x05,0x87, +0x02,0x26,0x02,0x0d,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x54,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x25,0x1f,0x09,0x00,0x25,0x02,0x01,0x22,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x06,0xe4,0x02,0x26,0x01,0xee,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x61, +0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xe0,0x40,0x0a,0x33,0x2d,0x01,0x1f,0x25,0x02,0x01,0x30,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xe7,0x03,0x3b,0x05,0x87,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x06,0x00,0x8f,0x11,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf6,0x40,0x0a,0x31,0x2b, +0x12,0x16,0x25,0x02,0x01,0x2e,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x01,0x00,0x52,0xff,0xe8,0x03,0xd3,0x05,0x9a,0x00,0x16,0x00,0x3f,0x40,0x20,0x0f,0x96,0x09,0x09,0x15,0x0b,0x91,0x0c,0x03,0x01,0x03,0x91,0x15,0x13,0x0a,0x0f,0x0e,0x09,0x09,0x06,0x01,0x0e,0x0b,0x0e,0x0b,0x01,0x12,0x7d,0x06,0x06,0x18,0x01, +0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x01,0x21,0x35,0x21,0x15,0x01,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0x52,0xa8,0xd5,0x9f,0xb3,0xfe,0xa1,0x91,0x01,0x8f,0xfd,0xaa, +0x03,0x56,0xfe,0x7a,0xc0,0xd9,0xfe,0xee,0xf9,0xf2,0x3c,0xb6,0x7b,0xa4,0x83,0x01,0x1e,0x02,0x46,0x98,0x28,0xfd,0xc8,0xdc,0xb6,0xca,0xf6,0x00,0xff,0xff,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x02,0x06,0x05,0x97,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0x8c,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0xd9, +0x01,0xd6,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x14,0x16,0x17,0x0a,0x13,0x25,0x01,0x15,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x05,0x2f,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x1e,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x07,0x10,0x11,0x07,0x0d,0x25,0x01,0x0f,0x11, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x06,0xe4,0x02,0x26,0x01,0xef,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x6f,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x11,0x23,0x1d,0x0a,0x13,0x25,0x02,0x01,0x20,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00, +0x04,0x00,0x05,0x87,0x02,0x26,0x02,0x0f,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xce,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x1b,0x1d,0x17,0x07,0x0d,0x25,0x02,0x01,0x1a,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x00,0x32,0x00,0x00,0x01,0x07,0x00,0x8f, +0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x03,0x02,0x03,0x27,0x21,0x03,0x09,0x25,0x03,0x02,0x24,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x00,0x52,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x03,0x02,0x00,0x27,0x21,0x03, +0x09,0x25,0x03,0x02,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x06,0xe4,0x02,0x26,0x02,0xcf,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x67,0x01,0x5d,0x00,0x17,0x40,0x0d,0x04,0x03,0x03,0x29,0x23,0x03,0x09,0x25,0x04,0x03,0x26,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35, +0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0x87,0x02,0x26,0x02,0xd0,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xb7,0x00,0x00,0x00,0x17,0x40,0x0d,0x04,0x03,0x00,0x27,0x21,0x03,0x09,0x25,0x04,0x03,0x24,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x90,0x06,0xe4,0x02,0x26, +0x02,0x04,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0x76,0x01,0x5d,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x9a,0x40,0x0a,0x28,0x22,0x0f,0x14,0x25,0x02,0x01,0x25,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x5a,0x05,0x87,0x02,0x26,0x02,0x24,0x00,0x00,0x01,0x06,0x00,0x8f,0xf0,0x00,0x00,0x1a, +0xb1,0x02,0x01,0xb8,0xff,0xb6,0x40,0x0a,0x28,0x22,0x01,0x14,0x25,0x02,0x01,0x25,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0x8c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x32,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x05,0x17,0x16,0x0d,0x00,0x25,0x01,0x17,0x05, +0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x2f,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc4,0x00,0x00,0x00,0x13,0x40,0x0b,0x01,0x0f,0x17,0x18,0x0c,0x00,0x25,0x01,0x16,0x11,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x06,0xe4, +0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xca,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x00,0x25,0x1f,0x0d,0x00,0x25,0x02,0x01,0x22,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x05,0x87,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x06,0x00,0x8f,0x50,0x00,0x00,0x17, +0x40,0x0d,0x02,0x01,0x00,0x24,0x1e,0x0c,0x00,0x25,0x02,0x01,0x21,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x3c,0xff,0xe7,0x04,0x96,0x07,0x5c,0x02,0x26,0x01,0xfa,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x52,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x4c,0x1c,0x16,0x0d,0x00,0x25,0x02,0x01,0x1c,0x05, +0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x0e,0xfe,0x1e,0x03,0xd5,0x06,0x00,0x02,0x26,0x00,0x5c,0x00,0x00,0x01,0x07,0x00,0xde,0x00,0xf0,0x00,0x00,0x00,0x17,0x40,0x0d,0x02,0x01,0x62,0x1b,0x15,0x0c,0x00,0x25,0x02,0x01,0x1b,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6, +0x00,0x00,0x04,0x81,0x06,0xe4,0x02,0x26,0x01,0xfe,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xf6,0x01,0x5d,0x00,0x17,0x40,0x0d,0x02,0x01,0x03,0x20,0x1a,0x08,0x10,0x25,0x02,0x01,0x1d,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x98,0x00,0x00,0x03,0xdf,0x05,0x87,0x02,0x26,0x02,0x1e,0x00,0x00,0x01,0x07, +0x00,0x8f,0x00,0x92,0x00,0x00,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0xf7,0x40,0x0a,0x1f,0x19,0x07,0x0f,0x25,0x02,0x01,0x1c,0x11,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x87,0x06,0xe3,0x02,0x26,0x02,0x02,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x87,0x01,0x5c,0x00,0x17,0x40,0x0d,0x04,0x03, +0x06,0x26,0x20,0x05,0x03,0x25,0x04,0x03,0x23,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x05,0x06,0x05,0x87,0x02,0x26,0x02,0x22,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x33,0x00,0x00,0x00,0x1a,0xb1,0x04,0x03,0xb8,0xff,0xfd,0x40,0x0a,0x25,0x1f,0x05,0x03,0x25,0x04,0x03,0x22,0x11,0x26, +0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0x02,0x00,0x56,0x00,0x00,0x03,0xd1,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x24,0x40,0x12,0x0c,0x91,0x08,0x08,0x09,0x03,0x0b,0x91,0x00,0x00,0x7e,0x08,0x0b,0x0b,0x14,0x0f,0x7d,0x04,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0xed,0x3f,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x22,0x26, +0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x03,0x11,0x23,0x20,0x11,0x14,0x16,0x33,0x03,0xd1,0xfe,0x56,0xd8,0xf9,0xee,0xd4,0x01,0x11,0xa8,0xa8,0xeb,0xfe,0xc8,0xa3,0x95,0xe6,0xc6,0xc1,0xcd,0x02,0x60,0xfa,0xfe,0x02,0x0a,0xff,0x00,0x7d,0x8d,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0x00,0x02, +0x00,0x64,0xff,0xe8,0x06,0x58,0x05,0x9a,0x00,0x19,0x00,0x22,0x00,0x3a,0x40,0x1e,0x06,0x08,0x1b,0x91,0x18,0x0f,0x0f,0x11,0x03,0x15,0x20,0x91,0x03,0x08,0x13,0x06,0x12,0x7e,0x0f,0x1a,0x1a,0x0b,0x00,0x7e,0x17,0x17,0x24,0x1e,0x7d,0x0b,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x3f, +0x39,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x11,0x23,0x20,0x11,0x10,0x21,0x32,0x36,0x06,0x58,0xd1,0xbf,0x69,0xad,0x2b,0x73,0xed,0xd2,0xf1,0xf2,0xd1,0x01,0x11,0xa7,0x7f,0x6d,0xe5,0xa8,0xfc, +0xe0,0xec,0xfe,0xc8,0x01,0x2a,0x63,0x97,0x01,0x92,0xc8,0xe2,0x63,0x5d,0xc0,0xeb,0xcb,0xc2,0xda,0x02,0x60,0xfb,0xf6,0x79,0x98,0x01,0x1f,0x01,0x9c,0xfe,0x38,0x01,0x30,0xfe,0xf2,0xfe,0xeb,0x82,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x70,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x3f,0x40,0x21,0x19,0x19,0x0d,0x25,0x11,0x00,0x0f,0x1f, +0x95,0x0d,0x10,0x16,0x05,0x25,0x95,0x03,0x07,0x16,0x05,0x13,0x84,0x11,0x1b,0x1b,0x0a,0x1a,0x83,0x19,0x19,0x29,0x22,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x39,0x00,0x3f,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0x11,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x22,0x02,0x35, +0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x70,0xca,0xb6,0xf4,0x4e,0x7c,0xfe,0xf1,0xd9,0xea,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x7e,0x64,0xd6,0xa8,0xfc,0xfc,0xa4,0x7e,0x96,0xac,0xa6,0x8a,0x89,0xab,0x01,0x83,0xbf, +0xdc,0xe3,0xe3,0x01,0x14,0xec,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfb,0x95,0x75,0x9a,0x01,0x1a,0xa1,0x5e,0x97,0x7c,0xac,0xdc,0xc2,0xb2,0xcc,0xc6,0x00,0x01,0x00,0x29,0xff,0xe8,0x05,0xf6,0x05,0xb2,0x00,0x24,0x00,0x4b,0x40,0x27,0x1c,0x1b,0x08,0x91,0x0b,0x0b,0x03,0x23,0x23,0x20,0x13,0x11,0x91,0x16,0x04,0x20,0x91,0x03,0x13,0x1c, +0x09,0x19,0x7d,0x0e,0x09,0x0e,0x09,0x13,0x1e,0x7d,0x06,0x06,0x13,0x24,0x7e,0x23,0x23,0x26,0x13,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x02,0x21,0x23,0x35, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x04,0x13,0x12,0x33,0x32,0x11,0x11,0x33,0x05,0xf6,0xd2,0xbe,0xb9,0xdd,0x05,0x09,0xfe,0x94,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x01,0x32,0x0f,0x0c,0xdf,0xe6,0xa8,0x01,0x92,0xc9,0xe1,0xeb,0xb9,0x01, +0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x26,0xfe,0xce,0xfe,0xe9,0x01,0x1f,0x01,0x9c,0x00,0x01,0x00,0x1e,0xff,0xe8,0x05,0x56,0x04,0x18,0x00,0x22,0x00,0x4b,0x40,0x27,0x22,0x22,0x03,0x1a,0x19,0x09,0x95,0x0a,0x0a,0x1e,0x12,0x10,0x95,0x15,0x10,0x1e,0x95,0x03,0x16,0x1a,0x09,0x17,0x84,0x0d, +0x09,0x0d,0x09,0x12,0x1c,0x84,0x05,0x05,0x12,0x22,0x83,0x21,0x21,0x24,0x12,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x03,0x26,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34, +0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x17,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0x56,0xcc,0xb5,0xfe,0xb7,0x3a,0x0e,0x7c,0x9f,0x65,0x61,0x01,0x04,0x77,0x68,0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0xda,0x20,0x20,0xbf,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0x01,0x4b,0x52,0x43,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d, +0xfe,0xee,0xbd,0x33,0x04,0x12,0xc2,0xcc,0x01,0x1a,0xa1,0x00,0x00,0x01,0x00,0x29,0xfe,0x80,0x04,0x3a,0x05,0xb2,0x00,0x1f,0x00,0x4e,0x40,0x0d,0x1a,0x19,0x07,0x91,0x08,0x08,0x03,0x11,0x0f,0x91,0x14,0x04,0x01,0xb8,0x01,0x30,0x40,0x0e,0x1e,0x91,0x03,0x1a,0x07,0x17,0x7d,0x0c,0x07,0x0c,0x07,0x03,0x11,0x1f,0xb8,0x01,0x2c,0xb7, +0x02,0x02,0x1e,0x7e,0x03,0x03,0x21,0x11,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15, +0x10,0x05,0x15,0x16,0x16,0x15,0x15,0x33,0x04,0x3a,0x9c,0xcd,0xfe,0x85,0x96,0x8a,0x9f,0xaf,0x92,0x7f,0xb3,0xab,0x9e,0xcf,0xcc,0xea,0xfe,0xf0,0x93,0xaa,0xc1,0xfe,0x80,0x01,0x80,0x01,0x8c,0x01,0x14,0x8b,0x8c,0x7c,0x6d,0x81,0x71,0xaa,0x58,0xc3,0x9d,0xfe,0xe9,0x49,0x04,0x11,0xbb,0x8e,0xfc,0x00,0x00,0x01,0x00,0x1e,0xfe,0x8b, +0x03,0x8e,0x04,0x18,0x00,0x1d,0x00,0x4e,0x40,0x0d,0x18,0x17,0x07,0x95,0x08,0x08,0x03,0x10,0x0e,0x95,0x13,0x10,0x01,0xb8,0x01,0x31,0x40,0x0e,0x1c,0x95,0x03,0x18,0x07,0x15,0x84,0x0b,0x07,0x0b,0x07,0x03,0x10,0x1d,0xb8,0x01,0x2c,0xb7,0x02,0x02,0x1c,0x84,0x03,0x03,0x1f,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x32,0x2f,0xe1,0x11,0x12, +0x39,0x39,0x2f,0x2f,0xe1,0x11,0x39,0x00,0x2f,0xed,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x34,0x21,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x07,0x15,0x16,0x16,0x15,0x15,0x33,0x03,0x8e,0x8e,0xae,0xfe,0xd7,0x65,0x61,0x01,0x04,0x77,0x68, +0x96,0x96,0xaa,0x8e,0x01,0x77,0xd3,0x71,0x8b,0x98,0xfe,0x8b,0x01,0x75,0x01,0x1c,0xac,0x8c,0xa2,0x44,0x54,0x4c,0x99,0x3d,0xfe,0xee,0xbd,0x33,0x04,0x09,0x87,0x6a,0x8c,0x00,0x00,0x01,0x00,0x18,0xff,0xe8,0x06,0xc2,0x05,0x9a,0x00,0x1c,0x00,0x3c,0x40,0x20,0x1c,0x1c,0x18,0x07,0x91,0x14,0x03,0x18,0x91,0x03,0x13,0x0e,0x10,0x91, +0x0b,0x13,0x15,0x7e,0x06,0x06,0x1a,0x09,0x7e,0x12,0x00,0x7e,0x1a,0x12,0x1a,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, +0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x06,0xc2,0xd2,0xbd,0xba,0xdb,0xfe,0x2d,0xfe,0x97,0x28,0x22,0x1c,0x20,0xd7,0x03,0x1b,0x7e,0x71,0xe5,0xa8,0x01,0x9a,0xcb,0xe7,0xf2,0xb8,0x03,0x70,0xfd,0x36,0xfd,0xb6,0x0a,0x96,0x0b,0x01,0xae,0x03,0x69,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x14,0xff,0xe8, +0x05,0xee,0x04,0x00,0x00,0x1c,0x00,0x46,0x40,0x1a,0x1c,0x1c,0x18,0x07,0x95,0x14,0x0f,0x0e,0x10,0x95,0x0b,0x0b,0x1d,0x18,0x95,0x03,0x16,0x15,0x84,0x06,0x06,0x12,0x1c,0x83,0x1b,0x09,0xb8,0x01,0x2e,0xb6,0x12,0x1b,0x12,0x1b,0x12,0x1e,0x0e,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed, +0x12,0x39,0x7c,0x2f,0x18,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x05,0xee,0xcc,0xb6,0xb1,0xd3,0xfe,0xa4,0xfe,0xc6,0x25,0x19,0x15,0x25,0xa4,0x02,0x9a,0x77,0x67,0xdc,0xa8, +0x01,0x83,0xbd,0xde,0xdd,0xb6,0x01,0xf9,0xfe,0x2a,0xfe,0x54,0x08,0x8b,0x0a,0x01,0x17,0x02,0x6e,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0xbc,0xff,0xe8,0x07,0x6e,0x05,0x9a,0x00,0x18,0x00,0x41,0x40,0x23,0x17,0x17,0x08,0x91,0x40,0x0d,0x0c,0x09,0x0d,0x91,0x2b,0x30,0x0f,0x0c,0x03,0x14,0x91,0x03,0x13,0x09,0x10,0x7e, +0x0e,0x07,0x07,0x0a,0x00,0x7e,0x16,0x16,0x1a,0x0d,0x08,0x7e,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x33,0x2f,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11, +0x11,0x33,0x07,0x6e,0xd3,0xbc,0xba,0xdb,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x7e,0x72,0xe4,0xa8,0x01,0x9a,0xcd,0xe5,0xf2,0xb8,0xfc,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfc,0x08,0x81,0xa2,0x01,0x21,0x01,0x9a,0x00,0x01,0x00,0xa6,0xff,0xe8,0x06,0x5a,0x04,0x00,0x00,0x18,0x00,0x44,0x40,0x24,0x17,0x17,0x03,0x08,0x95,0x40, +0x0d,0x0c,0x09,0x0d,0x95,0x2b,0x30,0x0f,0x0c,0x0f,0x14,0x95,0x03,0x16,0x09,0x11,0x84,0x0e,0x07,0x07,0x0a,0x00,0x83,0x16,0x16,0x1a,0x0d,0x08,0x84,0x0a,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x2f,0x3f,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x7c,0x2f,0x31,0x30,0x01,0x14,0x06,0x23, +0x22,0x26,0x35,0x35,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x06,0x5a,0xcc,0xb5,0xb1,0xd4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdc,0xb7,0x56,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfd,0x85,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x01,0x00,0x5e, +0xff,0xe8,0x05,0x62,0x05,0xb2,0x00,0x1a,0x00,0x3e,0x40,0x22,0x18,0x91,0x19,0x19,0x09,0x14,0x1f,0x0c,0x2f,0x0c,0x02,0x0c,0x0c,0x0e,0x91,0x09,0x04,0x14,0x91,0x03,0x13,0x18,0x0c,0x18,0x0c,0x06,0x00,0x7e,0x17,0x17,0x1c,0x11,0x7d,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f, +0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x12,0x37,0x21,0x35,0x21,0x05,0x62,0xfe,0xb5,0xfe,0xdd,0xfe,0xc9,0xfe,0xa1,0x01,0xa5,0x01,0x43,0xea,0x9f,0xae,0xee,0xf1,0xfe,0xcc,0x01,0x07,0xe5,0xcc,0xf2,0x04,0xfe,0x46, +0x02,0x60,0x02,0x8e,0xfe,0xd0,0xfe,0x8a,0x01,0x8a,0x01,0x48,0x01,0x4d,0x01,0xab,0x4c,0xba,0x6e,0xfe,0xb4,0xfe,0xf8,0xfe,0xef,0xfe,0xca,0x01,0x07,0xd8,0x98,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf4,0x04,0x18,0x00,0x1a,0x00,0x40,0x40,0x24,0x18,0x95,0x19,0x19,0x09,0x14,0x3f,0x0c,0x4f,0x0c,0x5f,0x0c,0x03,0x0c,0x0c,0x0e, +0x95,0x09,0x10,0x14,0x95,0x03,0x16,0x19,0x0c,0x19,0x0c,0x11,0x1a,0x83,0x17,0x17,0x1c,0x11,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x03,0xf4,0xe4,0xcc,0xd9,0xfe,0xf5,0x01,0x22,0xf2,0x9c,0x6b,0x77,0x96,0x9d,0xc9,0xb0,0x8e,0x7b,0x89,0x02,0xfe,0x98,0x02,0x10,0x01,0xd3,0xe3,0xfe,0xf8,0x01,0x1b,0xe5,0xfd,0x01,0x33,0x3f,0xa8,0x5d,0xe1,0xb7,0xaf,0xd5,0xa3,0x89,0x8b,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0xec, +0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x91,0x09,0x03,0x10,0x91,0x40,0x03,0x13,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x7e,0x06,0x06,0x08,0x00,0x7e,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x11,0x33,0x04,0xec,0xd3,0xbd,0xba,0xdc,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x7f,0x71,0xe6,0xa8,0x01,0x9a,0xca,0xe8,0xf1,0xb9,0x03,0x70,0x98,0x98,0xfc,0xa0,0x80,0xa3,0x01,0x21,0x01,0x9a,0x00,0x00,0x01,0x00,0x1e,0xff,0xe8,0x04,0x58, +0x04,0x00,0x00,0x14,0x00,0x3a,0x40,0x1e,0x13,0x13,0x10,0x0c,0x07,0x95,0x09,0x0f,0x10,0x95,0x40,0x03,0x16,0x0b,0x0e,0x0d,0x08,0x06,0x42,0x0d,0x84,0x06,0x06,0x08,0x00,0x83,0x12,0x12,0x16,0x08,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x2b,0x01,0x10,0xe2,0x00,0x18,0x3f,0x1a,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x31,0x30, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x11,0x35,0x33,0x04,0x58,0xcc,0xb5,0xb2,0xd3,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x78,0x67,0xdb,0xa8,0x01,0x83,0xbf,0xdc,0xdd,0xb6,0x01,0xf9,0x8c,0x8c,0xfe,0x11,0x7f,0x94,0x01,0x1a,0xa1,0x00,0x03,0x01,0x33,0x04,0xc2,0x03,0x7b,0x06,0x3a, +0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x36,0x40,0x1c,0x01,0xe2,0x40,0x02,0x80,0x0a,0x16,0xc1,0x40,0x04,0x10,0x01,0x00,0x01,0x00,0x13,0x0d,0xc0,0x07,0x13,0xc0,0x19,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x10,0xe1,0x10,0xe1,0x11,0x39,0x39,0x18,0x2f,0x2f,0x00,0x2f,0x33,0x1a,0xfd,0x32,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21, +0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x56,0xfe,0x04,0x01,0xfc,0x3e,0x28,0x3a,0x39,0x27,0x2a,0x3b,0x39,0xfe,0x56,0x29,0x3c,0x39,0x2a,0x29,0x3b,0x39,0x05,0xcd,0x6d,0xfe,0x88,0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a, +0x2a,0x38,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x64,0x06,0xfa,0x00,0x06,0x00,0x12,0x00,0x1e,0x00,0x66,0x40,0x3d,0x06,0x70,0x03,0x01,0x03,0x80,0x09,0x05,0x19,0x05,0x02,0x09,0x05,0x02,0x40,0x09,0x10,0x48,0x02,0x02,0x0d,0x19,0xc1,0x40,0x07,0x13,0x00,0xe0,0x03,0x01,0x03,0x03,0x00,0x05,0x05,0x1c,0x10,0xc0, +0x0a,0x16,0xc0,0x1c,0x00,0x1c,0x01,0x0f,0x0f,0x0a,0x1f,0x0a,0x2f,0x0a,0x03,0x10,0x03,0x20,0x1f,0x0a,0x1c,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x3d,0x2f,0x33,0x33,0x18,0x2f,0x5d,0x2f,0x00,0x2f,0x33,0x1a,0xed,0x32,0x32,0x2f,0x2b,0x33,0x5e,0x5d,0x1a,0xcd,0x5d,0x32,0x31,0x30,0x01,0x03, +0x23,0x03,0x33,0x17,0x37,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x5a,0xd5,0x85,0xd7,0x73,0xa4,0xa4,0x1e,0x28,0x3a,0x37,0x29,0x2a,0x3a,0x38,0xfe,0x55,0x29,0x3c,0x39,0x2a,0x29,0x3c,0x3a,0x06,0xfa,0xfe,0xb6,0x01,0x4a,0xe6,0xe6,0xfd,0xc8, +0x38,0x2b,0x2a,0x38,0x39,0x29,0x29,0x3a,0x39,0x2a,0x29,0x39,0x39,0x29,0x29,0x3a,0x00,0x03,0x01,0x1c,0x04,0xc2,0x03,0x77,0x06,0xe2,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x44,0xb2,0x03,0x80,0x00,0xb8,0xff,0xc0,0x40,0x20,0x09,0x0c,0x48,0x00,0x00,0x0a,0x16,0xc1,0x04,0x10,0x02,0x40,0x00,0x00,0x19,0x0d,0xc0,0x07,0x13,0xc0,0x19, +0x0f,0x07,0x01,0x10,0x03,0x1d,0x1c,0x07,0x19,0x2b,0x3a,0x2b,0x01,0x5f,0x5e,0x5d,0x10,0xe1,0x10,0xe1,0x12,0x39,0x18,0x2f,0x1a,0xcd,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0x2b,0x1a,0xcd,0x31,0x30,0x01,0x23,0x01,0x33,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x02,0xa2,0x7f,0xfe,0xf9,0xa6,0x01,0x50,0x29,0x39,0x3b,0x29,0x2a,0x39,0x3c,0xfe,0x57,0x2a,0x39,0x3b,0x2a,0x27,0x39,0x3a,0x05,0x9a,0x01,0x48,0xfd,0xe0,0x3a,0x29,0x29,0x39,0x39,0x29,0x2a,0x39,0x3a,0x29,0x29,0x39,0x38,0x2a,0x2b,0x38,0x00,0x02,0x01,0x08,0x04,0xc2,0x03,0x04,0x06,0x35,0x00,0x03,0x00,0x0f,0x00,0x32, +0x40,0x1a,0x01,0xe2,0x40,0x02,0x80,0x0a,0xc1,0x40,0x04,0x00,0x0e,0x0d,0x01,0x07,0x42,0x01,0x01,0x07,0xc0,0x0d,0x11,0x10,0x0d,0xc0,0x2b,0x30,0x2b,0x01,0x10,0xe1,0x32,0x18,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xfd,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x03,0x04,0xfe,0x04,0x01,0xfc,0xfe,0x28,0x3a,0x3a,0x28,0x29,0x39,0x39,0x05,0xc8,0x6d,0xfe,0x8d,0x39,0x2a,0x29,0x37,0x37,0x29,0x29,0x3a,0x00,0x00,0x02,0x01,0x23,0x04,0xb2,0x03,0xa4,0x06,0x55,0x00,0x13,0x00,0x17,0x00,0x3c,0x40,0x20,0x15,0xe2,0x40,0x16,0x80,0x13,0x0d,0xda,0x07,0x11,0xda,0x03,0x09,0x17,0x16,0x17, +0x16,0x0a,0x00,0xc4,0x0f,0x13,0x01,0x13,0x13,0x19,0x09,0xc4,0x20,0x0a,0x01,0x0a,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xd6,0xed,0xdc,0xfd,0xc6,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x35,0x37,0x21, +0x35,0x21,0x03,0xa4,0x60,0x52,0x47,0x5b,0x4d,0x2a,0x58,0x5e,0x60,0x56,0x41,0x54,0x4a,0x36,0x54,0x1a,0xfe,0x04,0x01,0xfc,0x05,0xb2,0x69,0x85,0x34,0x2b,0x71,0x6b,0x81,0x34,0x2c,0x74,0x36,0x6d,0x00,0x01,0xff,0x8c,0x05,0x0e,0x03,0x1e,0x05,0xd1,0x00,0x0b,0x00,0x32,0x40,0x19,0x0b,0xdb,0x04,0x08,0x40,0x05,0x01,0x09,0x03,0x03, +0x00,0x0e,0x05,0x0b,0x06,0x42,0x08,0x40,0x0b,0x0c,0x0d,0x06,0x05,0x2b,0x3a,0x2b,0x01,0x18,0x2f,0x1a,0xcd,0x2b,0x01,0x10,0xf0,0xc1,0x18,0x2f,0x00,0x2f,0x33,0x33,0x1a,0xdd,0x32,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x23,0x07,0x23,0x27,0x03,0x1e,0x5a,0x22,0x30,0xdc,0x30,0x22,0x30,0xdc,0x30,0x22,0x5a,0x05, +0xd1,0xc3,0x64,0x64,0x64,0x64,0xc3,0x00,0x00,0x02,0xff,0x27,0x04,0x89,0x00,0xbc,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x65,0x40,0x0d,0x02,0x09,0x12,0x09,0x22,0x09,0x03,0x03,0x05,0x0f,0x0f,0x0d,0x0b,0xba,0x01,0x3d,0x00,0x16,0xff,0xf0,0xb6,0x0c,0x0f,0x48,0x16,0x16,0x01,0x0d,0x41,0x0a,0x01,0x3d,0x00,0x12,0x01,0x39,0x00,0x1c, +0x01,0x3d,0x00,0x40,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0xb3,0x0f,0x0f,0x08,0x14,0xb8,0x01,0x3c,0xb4,0x16,0x01,0x0b,0x80,0x1a,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0x1a,0xdc,0x32,0x32,0xe1,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x1a,0xed,0x3f,0xed,0x11,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0x11,0x39,0x31,0x30,0x5d,0x13,0x23,0x35, +0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x35,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0xbc,0x52,0x02,0x35,0x68,0x4d,0x57,0xaa,0x99,0x6a,0x5d,0x49,0x41,0x6d,0xb4,0x52,0x7c,0x43,0x30,0x62,0x3e,0x4f,0x04,0x96,0x50,0x5d,0x52,0x43,0x8f,0x17,0x17,0x81,0x3e,0x54,0x30,0xbe, +0x7e,0x34,0x13,0x0a,0x2b,0x2d,0x56,0x57,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x68,0x40,0x14,0x02,0x01,0x12,0x01,0x22,0x01,0x03,0x0f,0x01,0x1f,0x01,0x2f,0x01,0x03,0x09,0x03,0x05,0x05,0x03,0x01,0xb8,0x01,0x3d,0xb4,0x40,0x17,0x0e,0x08,0x17,0xb8,0x01,0x3d,0xb2,0x2b,0x30,0x14,0xbe,0x01, +0x3d,0x00,0x0e,0x01,0x39,0x00,0x03,0x01,0x3d,0x00,0x08,0x01,0x3b,0xb3,0x05,0x05,0x0b,0x11,0xb8,0x01,0x3c,0xb7,0x60,0x12,0xc0,0x12,0x02,0x12,0x17,0x01,0xb9,0x01,0x3c,0x00,0x0b,0x2f,0xe1,0x32,0xdd,0x71,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x39,0x2f,0x5f,0x5e,0x5d,0x31,0x30,0x5d, +0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x57,0x49,0x42,0x70,0x6c,0x7d,0x87,0x64,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8c,0x7f,0x78,0x96,0x81,0x75,0x1a,0x96,0x52,0x44,0x00,0x00,0x02, +0xff,0xcb,0x04,0x96,0x00,0x35,0x07,0x83,0x00,0x07,0x00,0x0b,0x00,0x41,0xb9,0x00,0x00,0x01,0x3f,0x40,0x09,0x40,0x04,0x80,0x00,0x0a,0x01,0x0c,0x03,0x0a,0xbc,0x01,0x38,0x00,0x09,0x01,0x3a,0x00,0x0b,0x01,0x3c,0xb3,0x0a,0x02,0x06,0x0a,0xb8,0x01,0x3c,0xb2,0x2b,0x30,0x02,0xb8,0x01,0x3e,0xb1,0x06,0x0d,0x10,0xd4,0xe1,0x2b,0x01, +0x10,0xe1,0x00,0x18,0x3f,0x3f,0x5f,0x5e,0x5d,0x1a,0xdc,0x1a,0xed,0x31,0x30,0x11,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0x35,0x35,0x35,0x0e,0x52,0x52,0x07,0x18,0x36,0x35,0x35,0x36,0xfd,0x7e,0x02,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15,0x00,0x29,0x41,0x0e,0x00,0x0c, +0x01,0x3d,0x00,0x06,0x01,0x39,0x00,0x12,0x01,0x3d,0x00,0x00,0x01,0x3b,0x00,0x09,0x01,0x3c,0x00,0x14,0x00,0x0f,0x01,0x3c,0x00,0x03,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x72,0x88,0x8e,0x78, +0x72,0x80,0x89,0x6f,0x4f,0x5d,0x5c,0x50,0xa4,0x04,0x89,0x90,0x77,0x7f,0x93,0x8e,0x7c,0x7b,0x94,0x01,0xd3,0x6a,0x5e,0x5a,0x6b,0xc7,0xc6,0x00,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xd5,0x06,0x96,0x00,0x11,0x00,0x31,0xb1,0x10,0x09,0xb8,0x01,0x38,0xb2,0x0f,0x02,0x0c,0xbe,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00, +0x11,0x01,0x3c,0xb2,0x01,0x10,0x09,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x32,0x3f,0x33,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0xd5,0x52,0x02,0x33,0x6a,0xb9,0x52,0x7d,0x3c,0x4d,0x52,0x04,0x96,0x52,0x5f,0xdb,0x01,0x32,0xfe, +0xda,0xa1,0x57,0x48,0x01,0x28,0x00,0x01,0xff,0x2b,0x04,0x89,0x00,0xac,0x06,0xa2,0x00,0x15,0x00,0x2a,0xb1,0x00,0x02,0xbf,0x01,0x3d,0x00,0x13,0x01,0x39,0x00,0x0a,0x00,0x08,0x01,0x3d,0x00,0x0d,0x01,0x3b,0xb2,0x00,0x0a,0x05,0xb9,0x01,0x3c,0x00,0x10,0x2f,0xe1,0xc4,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xac,0x38,0x41,0x4f,0x65,0x5f,0x4f,0x43,0x3c,0x3d,0x51,0x6d,0x86,0x91,0x79,0x45,0x32,0x06,0x35,0x27,0x6f,0x5b,0x5a,0x69,0x2d,0x4e,0x25,0x8f,0x71,0x7e,0x9b,0x19,0x00,0x02,0xff,0x14,0x04,0x89,0x00,0xec,0x07,0x8c,0x00,0x10, +0x00,0x1c,0x00,0x3e,0xb9,0x00,0x0f,0x01,0x36,0xb3,0x0d,0x03,0x05,0x15,0x41,0x0b,0x01,0x3d,0x00,0x0b,0x01,0x39,0x00,0x1a,0x01,0x3d,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x10,0x01,0x3c,0xb3,0x12,0x01,0x0f,0x17,0xb9,0x01,0x3c,0x00,0x08,0x2f,0xe1,0xd4,0x32,0x32,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f, +0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x16,0x33,0x32,0x36,0xec,0x52,0x02,0x3a,0x76,0x60,0x74,0x80,0x6a,0x6a,0x30,0x02,0x52,0x52,0x53,0x3f,0xa0,0x54,0x44,0x45,0x55,0x04,0x96,0x58,0x65,0x8b,0x75,0x80,0x99,0x52,0x01,0x3c,0xfd, +0xf1,0x4b,0x3f,0x55,0xce,0x59,0x66,0x64,0x00,0x01,0xff,0x2b,0x04,0x96,0x00,0xd5,0x07,0x8c,0x00,0x11,0x00,0x32,0xb9,0x00,0x0b,0x01,0x36,0xb2,0x0d,0x08,0x04,0xbf,0x01,0x3d,0x00,0x0f,0x01,0x39,0x00,0x01,0x00,0x08,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb2,0x01,0x0b,0x08,0xb9,0x01,0x3c,0x00,0x09,0x2f,0xe1,0x32,0xd4,0xe1,0x00,0x3f, +0x33,0x3f,0xed,0x12,0x39,0x3f,0x31,0x30,0x13,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0xd5,0x52,0x77,0x3d,0x52,0x52,0x52,0x02,0x3b,0x6d,0xae,0x04,0x96,0x01,0x26,0xa0,0x5c,0x48,0xfe,0xde,0x02,0xf6,0xfe,0xb6,0x60,0xd1,0x00,0x01,0xfe,0x96,0x04,0x96,0x01,0x6c,0x06,0xa2,0x00,0x1d, +0x00,0x51,0xb4,0x04,0x15,0x19,0x03,0x0c,0xb8,0x01,0x3d,0xb2,0x40,0x1b,0x17,0xba,0x01,0x39,0x00,0x13,0x01,0x38,0xb2,0x08,0x00,0x10,0xba,0x01,0x3a,0x00,0x00,0x01,0x3c,0xb7,0x01,0x0e,0x08,0x10,0x09,0x42,0x19,0x08,0xb8,0x01,0x3c,0xb4,0x09,0x09,0x1e,0x13,0x10,0xb9,0x01,0x3c,0x00,0x11,0x2f,0xe1,0x32,0x11,0x39,0x2f,0xe1,0x39, +0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x1a,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x01,0x6c,0x52,0x72,0x35,0x4a,0x52,0x75,0x35,0x45,0x52,0x52,0x02,0x36,0x67, +0x71,0x20,0x3a,0x70,0xaa,0x04,0x96,0x01,0x26,0xa0,0x5e,0x44,0xfe,0xdc,0x01,0x30,0x96,0x59,0x49,0xfe,0xdc,0x02,0x00,0x50,0x5c,0x6a,0x6a,0xd1,0x00,0x01,0xff,0x9c,0x04,0x96,0x00,0xa8,0x06,0xa0,0x00,0x0f,0x00,0x2d,0xb3,0x0a,0x07,0x00,0x02,0xbe,0x01,0x40,0x00,0x0d,0x01,0x39,0x00,0x08,0x01,0x38,0x00,0x07,0x01,0x3a,0xb3,0x00, +0x00,0x09,0x06,0xb9,0x01,0x3c,0x00,0x07,0x2f,0xf1,0x32,0xc2,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x12,0x39,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0xa8,0x16,0x2a,0x35,0x45,0x52,0x52,0x02,0x24,0x63,0x1d,0x14,0x06,0x44,0x10,0x64,0x54,0xfe,0xfa,0x02,0x00,0x69,0x73,0x08,0x00, +0x00,0x01,0xff,0x6a,0x04,0x8c,0x00,0x96,0x07,0x2d,0x00,0x13,0x00,0x3a,0xb2,0x0a,0x0e,0x05,0x41,0x09,0x01,0x3d,0x00,0x0b,0x00,0x08,0x01,0x38,0x00,0x13,0x00,0x11,0x01,0x3d,0x00,0x02,0x01,0x3b,0xb6,0x13,0x0d,0x0d,0x0e,0x06,0x0b,0x0e,0xb8,0x01,0x3c,0xb1,0x08,0x05,0x2f,0x33,0xe1,0x32,0xcd,0x10,0xc1,0x2f,0x32,0x00,0x3f,0xed, +0x32,0x3f,0x33,0xed,0x32,0xcd,0x31,0x30,0x13,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x96,0x1e,0x2e,0x88,0x58,0x58,0x52,0x82,0x82,0x4c,0x1f,0x17,0x04,0x9c,0x10,0x95,0x01,0x2f,0x46,0x7c,0x1b,0x97,0x46,0xfe,0xdf,0x5e,0x11,0x00,0x00,0x01,0xff,0x10,0x04,0x96,0x00,0xf0, +0x06,0x96,0x00,0x0b,0x00,0x5b,0x40,0x0e,0x07,0x40,0x0e,0x11,0x48,0x07,0x18,0x09,0x0d,0x48,0x07,0x02,0x0b,0x04,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x40,0x25,0x00,0x0b,0x10,0x0b,0x20,0x0b,0x03,0x0b,0x00,0x0e,0x07,0x0f,0x04,0x1f,0x04,0x2f,0x04,0x03,0x09,0x05,0x04,0x03,0x03,0x07,0x42,0x03,0x01,0x18,0x09,0x0d,0x48,0x00,0x01, +0x02,0x03,0x04,0x07,0x19,0x2f,0x17,0x33,0x2b,0x18,0x2f,0x2b,0x11,0x01,0x33,0x5f,0x5e,0x5d,0x10,0xe0,0x32,0x5d,0x00,0x18,0x3f,0x3f,0x33,0x12,0x39,0x2b,0x2b,0x31,0x30,0x13,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xf0,0xcd,0x50,0xc3,0x5a,0x84,0x0c,0x04,0x02,0x05,0x0b,0x8a,0x06,0x96,0xfe,0x00,0x02,0x00,0xfe, +0x8d,0x21,0x27,0x26,0x20,0x01,0x75,0x00,0x00,0x01,0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x14,0x00,0x1c,0xbb,0x00,0x0e,0x01,0x38,0x00,0x0a,0x01,0x3a,0x40,0x09,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x0b,0x2f,0xc4,0x5d,0x00,0x3f,0x3f,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x37,0x03, +0x33,0x17,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x65,0x0f,0x07,0x02,0x07,0x0f,0x67,0x5e,0xae,0xa8,0x60,0x63,0x08,0x0e,0x02,0x16,0x69,0x06,0x96,0xfe,0xfe,0xfe,0xa6,0x19,0x0d,0x0e,0x18,0xa6,0xfc,0x01,0x04,0xae,0x0e,0x1c,0x2a,0xae,0x00,0x00,0x01,0x00,0x72,0x03,0xc6,0x01,0x62,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb4,0x02, +0x03,0x03,0x00,0x02,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x62,0x7c,0x74,0x54,0x05,0x9a,0xfe,0x2c,0x01,0xd4,0x00,0x01,0x00,0x72,0xfd,0xfe,0x01,0x62,0xff,0xc6,0x00,0x03,0x00,0x20,0xb9,0x00,0x03,0xff,0xc0,0x40,0x0e,0x0e,0x11,0x48,0x03,0x03,0x04,0x1f,0x02,0x2f,0x02,0x02,0x02,0x00,0x02,0x2f,0xcd,0x00, +0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x31,0x30,0x05,0x03,0x23,0x13,0x01,0x62,0x54,0x9c,0x7e,0x3a,0xfe,0x38,0x01,0xc8,0x00,0x01,0x01,0xba,0xfe,0x40,0x02,0xf6,0xff,0x89,0x00,0x0c,0x00,0x21,0x40,0x11,0x0c,0x0a,0xc3,0x40,0x02,0x80,0x06,0x40,0x09,0x0d,0x48,0x06,0x00,0x00,0x07,0xc2,0x06,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0x2b,0x1a,0xdc, +0x1a,0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x02,0xf6,0x3c,0x56,0x4b,0x5f,0x7b,0x44,0x29,0x29,0xfe,0x90,0x50,0x53,0x46,0xb0,0xba,0x43,0x2a,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x11,0x00,0x36,0xbc,0x00,0x0a,0x01,0x07,0x00,0x09,0x00,0x01,0x01,0x0a,0xb2, +0x0a,0x0c,0x04,0xbc,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x00,0x01,0x0c,0xb4,0x01,0x01,0x13,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d, +0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x50,0x05,0xc4,0x00,0x1a,0x00,0x4d,0xb1,0x09,0x01,0xbd,0x01,0x0a,0x00,0x15,0x00,0x04,0x01,0x0d,0x00,0x18,0xff,0xc0,0xb3,0x09,0x0d,0x48,0x18,0xb8,0x01,0x09,0xb2,0x10, +0x10,0x12,0xba,0x01,0x0d,0x00,0x0d,0x01,0x07,0xb3,0x10,0x10,0x08,0x00,0xb8,0x01,0x0c,0xb4,0x01,0x01,0x1c,0x15,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xe9,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x2b,0xed,0x32,0x3f,0x33,0x31,0x30,0x01,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x36, +0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x39,0x45,0x80,0x96,0x87,0x3d,0x3c,0x3a,0x3d,0x9f,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x0a,0x88,0x98,0x18,0x68,0x1c,0xb2,0x46,0x67,0xe7,0x00,0x02,0xff,0xbe,0x01,0x98,0x00,0xf6,0x05,0xc4,0x00,0x07, +0x00,0x13,0x00,0x38,0xb2,0x0d,0x0d,0x0f,0xb8,0x01,0x0d,0xb5,0x0a,0x12,0x04,0x00,0x40,0x12,0xb8,0x01,0x08,0x40,0x0b,0x02,0x06,0x0c,0x11,0x08,0x02,0x06,0xff,0x3a,0x0c,0x08,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe9,0x33,0x2b,0x01,0x18,0x2f,0x2f,0x2f,0x00,0x3f,0x1a,0xde,0xcd,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x13,0x22,0x35,0x34, +0x33,0x32,0x15,0x14,0x03,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0xda,0x2b,0x25,0x22,0x24,0x64,0x80,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x79,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x00,0x01,0x00,0x66,0x02,0x9a,0x01,0xa8,0x04,0xc8,0x00,0x0e,0x00,0x2d,0xbb,0x00,0x06,0x01,0x0a,0x00, +0x07,0x01,0x08,0xb5,0x0e,0xda,0x00,0x09,0x00,0x02,0xbe,0x01,0x0e,0x00,0x0c,0x01,0x09,0x00,0x09,0x00,0x05,0x01,0x0c,0x00,0x06,0x2f,0xe9,0x32,0x00,0x3f,0xed,0x32,0x32,0x2f,0xed,0x3f,0x3f,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x01,0xa8,0x1e,0x26,0x7e,0x80,0x80,0x02,0x28,0x69, +0x1b,0x14,0x04,0x46,0x12,0xb4,0xfe,0xf6,0x02,0x24,0x6c,0x76,0x08,0x00,0x00,0x01,0x00,0x0a,0x02,0x90,0x01,0x4c,0x04,0xbe,0x00,0x0e,0x00,0x31,0xb5,0x08,0x02,0x08,0x0a,0x52,0x05,0xbc,0x01,0x0b,0x00,0x01,0x01,0x0a,0x00,0x0d,0x01,0x08,0xb3,0x07,0x07,0x0c,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x10,0x0f,0x11,0x12,0x39,0x2f,0xe9, +0x33,0x33,0x2f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x4c,0x7f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x02,0x9a,0x6c,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0x00,0x01,0x00,0x0a,0x01,0x94,0x01,0xcf,0x04,0xbe,0x00,0x16,0x00,0x3e, +0xb2,0x16,0x16,0x14,0xb8,0x01,0x0d,0xb7,0x02,0x08,0x0b,0x05,0x0b,0x0d,0x52,0x08,0xba,0x01,0x0b,0x00,0x10,0x01,0x08,0xb5,0x00,0x0a,0x00,0x0a,0x0f,0x12,0xb8,0x01,0x0c,0xb3,0x04,0x04,0x18,0x17,0x11,0x12,0x39,0x2f,0xe9,0x33,0x33,0x32,0x2f,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x32,0x2f,0x10,0xd4,0xed,0x32,0x2f,0x31,0x30,0x01,0x06, +0x23,0x22,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0xcf,0x23,0x40,0x9f,0x02,0x29,0x68,0x1c,0x14,0x1e,0x26,0x7f,0x7f,0x4a,0x1e,0x1b,0x01,0xa6,0x12,0xbe,0xb4,0x76,0x08,0x7a,0x12,0xb4,0x01,0x0a,0xfd,0x9e,0x5e,0x10,0x00,0x02,0x00,0x66,0x02,0x9a,0x02,0x29,0x04,0xbe, +0x00,0x10,0x00,0x17,0x00,0x4d,0xb1,0x03,0x11,0xb8,0x01,0x0d,0xb3,0x0c,0x0c,0x0a,0x12,0xbd,0x01,0x0d,0x00,0x09,0x01,0x0a,0x00,0x00,0x00,0x0a,0x01,0x08,0x40,0x09,0x01,0x0f,0x0f,0x12,0x10,0xc2,0x00,0x00,0x06,0xb8,0x01,0x0c,0xb5,0x15,0x15,0x19,0x04,0x0c,0x12,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9, +0x32,0x2f,0xe9,0x11,0x39,0x11,0x33,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x07,0x06,0x07,0x15,0x16,0x15,0x14,0x23,0x23,0x11,0x33,0x15,0x33,0x32,0x37,0x37,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0x29,0x47,0x1a,0x36,0x7c,0xdf,0xc9,0x80,0x2a,0x3e,0x1c,0x3c,0xc0,0x43,0x67,0x61,0x04,0xbe,0xa2,0x3c, +0x15,0x03,0x14,0x6e,0xac,0x02,0x24,0xd0,0x43,0x8d,0xfe,0xce,0x90,0x48,0x48,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x03,0x18,0x04,0xbe,0x00,0x1b,0x00,0x17,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x08,0xb3,0x00,0x00,0x1d,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x34,0x27,0x23,0x06,0x07,0x03,0x23, +0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0x18,0x8c,0x9c,0x4a,0x0c,0x04,0x04,0x09,0x51,0x9c,0x88,0x8a,0x48,0x03,0x05,0x04,0x02,0x0a,0x58,0x92,0x50,0x03,0x05,0x04,0x02,0x08,0x4a,0x04,0xbe,0xfd,0xdc,0x01,0x41,0x01,0x45,0x19,0x2b,0xfe,0xbd,0x02,0x24,0xfe,0x9e,0x10,0x36,0x20, +0x28,0x01,0x60,0xfe,0x9e,0x0b,0x3b,0x20,0x26,0x01,0x62,0x00,0x00,0x01,0x00,0x0a,0x01,0x94,0x02,0x2f,0x04,0xbe,0x00,0x14,0x00,0x25,0xb2,0x06,0x06,0x08,0xb8,0x01,0x0d,0xb6,0x11,0x14,0x0b,0x01,0x04,0x03,0x0c,0xb8,0x01,0x08,0xb3,0x00,0x00,0x16,0x0c,0x2f,0x11,0x33,0x2f,0x00,0x3f,0xd4,0x17,0x39,0xed,0x32,0x2f,0x31,0x30,0x01, +0x03,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x2f,0xeb,0x48,0xa2,0x22,0x26,0x1e,0x20,0x57,0x24,0x14,0xd5,0x8a,0x78,0x0a,0x06,0x05,0x09,0x09,0x79,0x04,0xbe,0xfd,0x94,0xbe,0x0c,0x6c,0x0e,0x60,0x38,0x02,0x28,0xfe,0xa0,0x1e,0x34,0x37,0x1b,0x01,0x60,0x00,0x00,0x01, +0x00,0x82,0x03,0xdb,0x01,0x5e,0x05,0x9a,0x00,0x03,0x00,0x18,0xb7,0x02,0x03,0x03,0x03,0xbd,0x00,0x00,0x01,0xb9,0x01,0x34,0x00,0x02,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x5e,0x68,0x74,0x56,0x05,0x9a,0xfe,0x41,0x01,0xbf,0x00,0x00,0x02,0x00,0x8d,0x03,0xdb,0x02,0x84,0x05,0x9a,0x00,0x03, +0x00,0x07,0x00,0x28,0x40,0x12,0x06,0x03,0x02,0x07,0x04,0x03,0x00,0x00,0x01,0x02,0x02,0x09,0x06,0x07,0x04,0x04,0x05,0x06,0x2f,0xcd,0x32,0x2f,0xcd,0x11,0x12,0x39,0x2f,0xcd,0x32,0x2f,0xcd,0x00,0x3f,0xc4,0x33,0x32,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0x84,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe, +0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x00,0x01,0x00,0x6a,0x03,0xf4,0x01,0x6c,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x02,0x03,0x04,0x03,0x00,0x00,0x01,0x01,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x03,0x23,0x13,0x01,0x6c,0x6c,0x96,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x6e, +0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x06,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0xf4,0x01,0x70,0x05,0xb2,0x00,0x03,0x00,0x16,0x40,0x09,0x01,0x02,0x04,0x01,0x00,0x00,0x03,0x03,0x02,0x2f,0x33,0x11,0x33,0x2f,0xcd,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x03,0x33,0x01,0x70,0x74,0x8e,0x94,0x03,0xf4,0x01,0xbe,0x00,0x00,0x01, +0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x35,0x32,0x35,0x34,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0xfb,0x5e,0x5e,0x4e,0x66,0x66, +0x04,0xc2,0x5c,0x5b,0x58,0x5e,0x68,0x4e,0x4e,0x69,0x00,0x01,0x00,0xfb,0x04,0xc2,0x01,0xaf,0x06,0x2f,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x15, +0x22,0x15,0x14,0x33,0x01,0xaf,0x4e,0x66,0x65,0x4f,0x5e,0x5e,0x04,0xc2,0x69,0x4e,0x4d,0x69,0x5e,0x58,0x5b,0x00,0x00,0x01,0x00,0x14,0x02,0x9a,0x01,0xb0,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x0b,0x09,0xbe,0x01,0x0d,0x00,0x0e,0x01,0x07,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0b,0x11,0xb8,0x01,0x0c,0xb3,0x07, +0x07,0x17,0x0b,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x23,0x11,0x34,0x36,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0xfc,0x7f,0x24,0x41,0x4d,0x87,0x4a,0x4a,0x4a,0x5a,0x73,0x85,0x6a,0x4a,0x02,0x9a,0x01,0x08,0x40,0x59,0x3c,0x49,0x36, +0x64,0x2b,0x73,0x22,0x6e,0x58,0x62,0x60,0x44,0x56,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x00,0x15,0x00,0x2f,0xb1,0x00,0x02,0xbe,0x01,0x0d,0x00,0x13,0x01,0x07,0x00,0x0b,0x01,0x0a,0x00,0x09,0x01,0x0c,0xb6,0x0c,0x0c,0x10,0x00,0x00,0x17,0x04,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0x11,0x39,0x2f,0x12,0x39,0x2f,0xe1, +0x00,0x3f,0x3f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0xa6,0x48,0x52,0x80,0x4f,0x3a,0x29,0x80,0x50,0x64,0x8b,0x73,0x52,0x4c,0x05,0x2f,0x2b,0x5e,0x33,0x50,0x3a,0x58,0x45,0xfe,0xf8,0x01,0x06,0x4c,0x50,0x64,0x5a,0x58,0x72,0x22, +0x00,0x01,0x00,0x72,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x16,0x04,0x03,0x0e,0x05,0x20,0x06,0x00,0x05,0x00,0x42,0x00,0x00,0x02,0x01,0x05,0x05,0x01,0x04,0x00,0x00,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x33,0x33,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30, +0x25,0x01,0x35,0x01,0x17,0x01,0x01,0x04,0x3c,0xfc,0x36,0x03,0xc8,0x01,0xfc,0xff,0x03,0x00,0xe4,0x01,0x9b,0xa8,0x01,0x9b,0xb2,0xfe,0xc3,0xfe,0xc3,0x00,0x00,0x01,0x00,0x70,0x00,0xe4,0x04,0x3c,0x04,0xc2,0x00,0x06,0x00,0x32,0x40,0x17,0x04,0x05,0x0e,0x03,0x20,0x02,0x01,0x03,0x01,0x42,0x01,0x00,0x01,0x06,0x03,0x03,0x03,0x00, +0x04,0x01,0x01,0x08,0x07,0x11,0x12,0x39,0x2f,0x33,0xcd,0x39,0x00,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x11,0x00,0x33,0x1a,0x19,0x10,0xed,0x32,0x31,0x30,0x01,0x01,0x35,0x01,0x01,0x35,0x01,0x04,0x3a,0xfc,0x36,0x03,0x02,0xfc,0xfe,0x03,0xcc,0x02,0x7f,0xfe,0x65,0xb2,0x01,0x3d,0x01,0x3d,0xb2,0xfe,0x65,0x00,0x00,0x01,0x00,0x66, +0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x02,0x05,0x01,0x03,0x06,0x05,0x02,0x02,0x04,0x01,0x00,0x00,0x08,0x03,0x04,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x33,0x04,0x46,0xb2,0xfe,0xc2,0xfe,0xc2,0xb2,0x01,0x9c,0xa8,0xee, +0x03,0x02,0xfc,0xfe,0x03,0xca,0x00,0x01,0x00,0x66,0x00,0xee,0x04,0x46,0x04,0xb8,0x00,0x06,0x00,0x23,0x40,0x0f,0x06,0x04,0x05,0x02,0x02,0x01,0x05,0x05,0x03,0x06,0x00,0x00,0x08,0x04,0x03,0x2f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x11,0x33,0x33,0x00,0x2f,0x33,0xcd,0x32,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x01,0x04,0x46, +0xfe,0x64,0xa8,0xfe,0x64,0xb2,0x01,0x3e,0x01,0x3e,0x04,0xb8,0xfc,0x36,0x03,0xca,0xfc,0xfe,0x03,0x02,0x00,0x01,0x01,0x20,0x04,0x96,0x01,0x8a,0x06,0x00,0x00,0x03,0x00,0x11,0xb3,0x01,0x02,0x01,0x00,0xb9,0x01,0x32,0x00,0x01,0x2f,0xe1,0x00,0x3f,0xcd,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0x04,0x96,0x01,0x6a,0x00, +0xff,0xff,0x00,0x87,0x04,0xc2,0x02,0x0c,0x06,0x0a,0x02,0x06,0x00,0x8e,0x00,0x00,0xff,0xff,0x00,0x52,0x04,0xc2,0x01,0xd7,0x06,0x0a,0x02,0x06,0x00,0x43,0x00,0x00,0x00,0x01,0x01,0x20,0xfe,0x1e,0x01,0x8a,0xff,0x89,0x00,0x03,0x00,0x15,0xb5,0x02,0x02,0x04,0x01,0x1c,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x00,0x3f,0x12,0x39, +0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x8a,0x6a,0x6a,0xfe,0x1e,0x01,0x6b,0x00,0x00,0x01,0x00,0x3e,0xff,0x1c,0x02,0x3a,0xff,0x89,0x00,0x03,0x00,0x13,0xb7,0x01,0xe2,0x02,0x04,0x03,0x03,0x05,0x02,0x2f,0x12,0x39,0x2f,0x00,0x10,0xde,0xed,0x31,0x30,0x05,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0xe4,0x6d,0x00,0xff,0xff, +0x00,0x52,0xfe,0x43,0x01,0xd7,0xff,0x8b,0x00,0x07,0x00,0x43,0x00,0x00,0xf9,0x81,0xff,0xff,0x00,0x87,0xfe,0x42,0x02,0x0c,0xff,0x8a,0x00,0x07,0x00,0x8e,0x00,0x00,0xf9,0x80,0x00,0x02,0x00,0xb6,0x00,0x00,0x01,0x83,0x04,0x25,0x00,0x03,0x00,0x07,0x00,0x1f,0x40,0x11,0x02,0x63,0x03,0x06,0x63,0x05,0x00,0x42,0x04,0x40,0x13,0x19, +0x48,0x04,0x62,0x03,0x05,0x2f,0x33,0xf1,0x2b,0xe2,0x00,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x13,0x23,0x37,0x33,0x01,0x83,0x5a,0x19,0x5a,0xcc,0xcc,0x5a,0x18,0x04,0x25,0xcd,0xcd,0xfb,0xdb,0xcd,0x00,0x00,0x01,0x00,0xb6,0x01,0xc8,0x01,0x83,0x02,0x96,0x00,0x03,0x00,0x15,0x40,0x0b,0x03,0x63,0x02,0x00,0x40,0x13, +0x19,0x48,0x00,0x62,0x03,0x2f,0xe1,0x2b,0x00,0x2f,0xed,0x31,0x30,0x01,0x07,0x23,0x27,0x01,0x83,0x58,0x1b,0x5a,0x02,0x96,0xce,0xce,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x84,0x00,0x00,0xfc,0xb3,0xff,0xff,0x00,0xfb,0x01,0x75,0x01,0xaf,0x02,0xe2,0x00,0x07,0x06,0x85,0x00,0x00,0xfc,0xb3,0x00,0x01, +0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x22,0xb3,0x03,0xc0,0x05,0x02,0xb8,0x01,0x33,0xb5,0x00,0x06,0x06,0x05,0x01,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0xcd,0x10,0xc9,0x2f,0x00,0x2f,0xed,0x32,0x1a,0xcc,0x31,0x30,0x13,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xa0,0x7e,0x6e,0x7e,0x01,0x74,0x6b,0x01,0x07,0xfe, +0xf9,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xe6,0x00,0x07,0x00,0x1f,0x40,0x0e,0x01,0x06,0xe2,0x40,0x07,0xc0,0x04,0x01,0x01,0x02,0x06,0x02,0x50,0x05,0x2f,0xe1,0xcd,0x10,0xc1,0x2f,0x00,0x2f,0x1a,0xdc,0x1a,0xed,0x32,0x31,0x30,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x02,0x0a,0x7e,0x6e,0x7e,0x02,0xe6,0x6b,0xfe, +0xf9,0x01,0x07,0x6b,0x00,0x01,0x00,0xa0,0x01,0x74,0x02,0x0a,0x02,0xdd,0x00,0x0b,0x00,0x29,0x40,0x13,0x08,0x80,0x01,0x04,0xfd,0x40,0x0a,0x07,0x03,0x00,0x04,0x05,0x05,0x80,0x0a,0x01,0xfc,0x07,0x04,0x2f,0x33,0xf1,0x32,0x1a,0xc8,0x2f,0x10,0xcc,0x00,0x2f,0xde,0x32,0x1a,0xfd,0x32,0x1a,0xce,0x31,0x30,0x01,0x23,0x15,0x23,0x35, +0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x0a,0x7e,0x6e,0x7e,0x7e,0x6e,0x7e,0x01,0xf4,0x80,0x80,0x6a,0x7f,0x7f,0x00,0x01,0x00,0x3e,0x01,0xf4,0x02,0x3a,0x02,0x60,0x00,0x03,0x00,0x11,0xb6,0x02,0xe2,0x01,0x00,0x00,0x05,0x01,0x2f,0x12,0x39,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x01, +0xf4,0x6c,0x00,0x01,0x00,0x79,0x02,0x79,0x02,0x31,0x03,0xc8,0x00,0x0c,0x00,0x3d,0xb7,0x0c,0x0c,0x09,0x01,0x01,0x0b,0x06,0x04,0xb8,0x01,0x35,0x40,0x09,0x09,0x01,0x06,0x40,0x0b,0x0e,0x48,0x06,0x00,0xb8,0xff,0xc0,0x40,0x09,0x09,0x0d,0x48,0x00,0x00,0x01,0x06,0x03,0x0b,0x19,0x2f,0x17,0x33,0x18,0x2f,0x2b,0x2f,0x2b,0x19,0x2f, +0x00,0x18,0x2f,0xed,0x32,0xcd,0x32,0x2f,0x11,0x39,0x2f,0x31,0x30,0x13,0x37,0x17,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x07,0x79,0xcb,0x20,0x27,0x4e,0x29,0x2f,0x39,0x30,0x7a,0x3c,0x54,0x02,0xf0,0xd8,0x5e,0x74,0x22,0x80,0x1f,0x79,0x56,0x00,0x01,0x00,0x48,0x03,0xa4,0x02,0x68,0x05,0xc4,0x00,0x0b,0x00,0x4a,0x40,0x16, +0x00,0x01,0x04,0x03,0x03,0x06,0x09,0x0a,0x03,0x07,0x02,0x03,0x07,0x08,0x0b,0x05,0xe4,0x05,0xf4,0x05,0x02,0x05,0xb8,0xff,0xe0,0x40,0x15,0x2c,0x30,0x48,0x05,0x00,0x09,0x0a,0x03,0x01,0x04,0x06,0x07,0x03,0x03,0x01,0x02,0x03,0x05,0x0b,0x05,0x08,0x19,0x2f,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x00,0x2f,0x2b,0x5d,0x17,0x33, +0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x30,0x01,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x02,0x68,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x03,0xf8,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0xbc,0x54,0xbc,0x00,0x02,0x00,0x0a,0x01,0xb8,0x02,0x4c,0x04,0xbe,0x00,0x11,0x00,0x19,0x00,0x4f,0x40,0x12, +0x01,0x0d,0x10,0x12,0x04,0x11,0x0f,0x07,0x16,0x01,0x0d,0x10,0x12,0x04,0x04,0x0a,0x11,0x00,0xb8,0xff,0xc0,0x40,0x10,0x09,0x0c,0x48,0x00,0x00,0x04,0x0f,0x0e,0x40,0x09,0x0c,0x48,0x0e,0x0e,0x0a,0x04,0xbc,0x01,0x34,0x00,0x18,0x00,0x0a,0x01,0x34,0x00,0x14,0x2f,0xe1,0xde,0xe1,0x10,0xc2,0x2f,0x2b,0x32,0x10,0xc2,0x2f,0x2b,0x32, +0x11,0x12,0x17,0x39,0x00,0x2f,0xcd,0xc4,0x32,0x17,0x39,0x31,0x30,0x01,0x03,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x03,0x33,0x13,0x13,0x03,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x02,0x4c,0xdc,0x19,0x3b,0x5c,0x43,0x45,0x52,0x3d,0x19,0xda,0x8a,0x95,0x99,0x99,0x29,0x29,0x29,0x04,0xbe,0xfe,0x50,0x28,0x5e, +0x3c,0x3a,0x5a,0x52,0x3e,0x37,0x67,0x28,0x01,0xb0,0xfe,0xb9,0x01,0x47,0xfd,0xf6,0x44,0x22,0x34,0x34,0x22,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x00,0xe6,0x05,0xc4,0x00,0x03,0x00,0x16,0xbe,0x00,0x02,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xe6,0x80, +0x80,0x02,0x9a,0x03,0x2a,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xbc,0x04,0xcf,0x00,0x1d,0x00,0x5d,0x40,0x17,0x25,0x17,0x01,0x17,0x15,0x03,0x0b,0x09,0x1b,0x09,0x2b,0x09,0x03,0x0b,0x07,0x1b,0x07,0x02,0x09,0x07,0x1c,0x10,0x12,0xbf,0x01,0x0d,0x00,0x0d,0x01,0x09,0x00,0x01,0x00,0x03,0x01,0x0d,0x00,0x1c,0x01,0x0b,0xb3,0x10, +0x10,0x0a,0x19,0xb8,0x01,0x0c,0xb4,0x05,0x05,0x1f,0x01,0x14,0xb8,0x01,0x0c,0xb2,0x0a,0x0a,0x01,0x2f,0x33,0x10,0xe1,0x11,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32, +0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x48,0x55,0x63,0x27,0x4a,0x8f,0x79,0x5d,0x47,0x43,0x42,0x4a,0x56,0x60,0x69,0x37,0x7f,0x66,0x4f,0x02,0xac,0x70,0x30,0x39,0x1b,0x21,0x1e,0x38,0x6c,0x4a,0x62,0x1d,0x6e,0x28,0x3d,0x31,0x27,0x2a,0x4e,0x30,0x46,0x60,0x00,0x01,0x00,0x14,0x02,0x9a, +0x02,0x2d,0x04,0xbe,0x00,0x13,0x00,0x17,0xbb,0x00,0x0e,0x01,0x08,0x00,0x0a,0x01,0x0a,0xb3,0x02,0x02,0x15,0x0b,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x26,0x27,0x23,0x06,0x07,0x07,0x23,0x13,0x03,0x33,0x1f,0x02,0x33,0x37,0x02,0x2d,0xb9,0xb7,0x8f,0x62,0x02,0x15,0x05,0x08,0x0e,0x64,0x90,0xbd, +0xae,0x8f,0x5e,0x01,0x14,0x04,0x7d,0x04,0xbe,0xfe,0xf0,0xfe,0xec,0xa4,0x02,0x2a,0x12,0x18,0xa6,0x01,0x0e,0x01,0x16,0xae,0x02,0x28,0xd8,0x00,0xff,0xff,0x00,0x0a,0x02,0x9a,0x01,0xa6,0x05,0xc4,0x02,0x06,0x06,0x87,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x03,0x04,0x04, +0x03,0x03,0x00,0x01,0x01,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0xe4,0x05,0x1e,0x9c,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x03,0x04,0x06,0x04,0x03,0x03,0x05,0x00,0x01,0x01,0x09, +0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x03,0xd5,0x9d,0x01,0x48,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05,0x00,0x01, +0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x02,0x90,0x9b,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x1e,0x40,0x0d,0x01,0x06,0x04,0x03,0x04,0x03,0x03,0x05, +0x00,0x01,0x01,0x09,0x08,0x11,0x12,0x39,0x2f,0xcd,0x33,0x33,0x2f,0x00,0x2f,0xcd,0x3f,0x2f,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x01,0x48,0x9c,0x01,0x48,0x9c,0x03,0xd6,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x05,0x00,0x1a,0x40,0x0b,0x01,0x02,0x05,0x04,0x02,0x02, +0x05,0x04,0x04,0x07,0x06,0x11,0x12,0x39,0x2f,0xcd,0x33,0x2f,0x00,0x3f,0x2f,0xcd,0x31,0x30,0x21,0x21,0x35,0x21,0x11,0x33,0x02,0x79,0xfe,0x1d,0x01,0x48,0x9c,0x9c,0x05,0x1e,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x05,0x00,0x10,0xb5,0x02,0x04,0x01,0x05,0x04,0x01,0x2f,0xcd,0x2f,0x00,0x2f,0xcd,0x2f,0x31,0x30, +0x21,0x21,0x11,0x33,0x03,0x21,0x02,0x48,0xfe,0x1a,0x5e,0x02,0x01,0x8a,0x03,0x70,0xfc,0xee,0x00,0x01,0x00,0x62,0x00,0x00,0x02,0x48,0x03,0x70,0x00,0x07,0x00,0x19,0x40,0x0a,0x03,0x04,0x01,0x06,0x00,0x00,0x09,0x06,0x02,0x03,0x2f,0xcd,0x32,0x11,0x39,0x2f,0x00,0x2f,0xcd,0x2f,0x2f,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x33,0x03, +0x21,0x02,0x48,0xfe,0x78,0x5e,0x5e,0x02,0x01,0x8a,0x01,0x89,0xfe,0x77,0x03,0x70,0xfe,0x78,0x00,0x01,0x00,0x3c,0xfe,0x40,0x02,0x6e,0xff,0x89,0x00,0x06,0x00,0x1c,0x40,0x0e,0x00,0x00,0x08,0x03,0x02,0x80,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0x12,0x39,0x2f,0x31,0x30,0x05,0x03,0x23,0x03, +0x33,0x17,0x37,0x02,0x6e,0xd6,0x84,0xd8,0x73,0xa4,0xa4,0x77,0xfe,0xb7,0x01,0x49,0xe5,0xe5,0x00,0x02,0x00,0x00,0x04,0x5c,0x03,0x52,0x05,0xec,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x13,0x05,0xd9,0x00,0x06,0x10,0x06,0x20,0x06,0x03,0x06,0x06,0x01,0xd9,0x02,0x00,0x04,0x01,0x00,0x05,0x2f,0xc4,0x33,0x32,0x00,0x3f,0xed,0x33,0x2f, +0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x52,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x05,0x74,0x78,0xfe,0x70,0x77,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x0a,0x02,0x03,0x06,0x07,0x04,0x03,0xea,0x00,0x00,0x01,0xb8,0x01,0x34,0x40,0x09,0x02,0x02,0x09, +0x06,0x07,0xea,0x04,0x04,0x05,0xb9,0x01,0x34,0x00,0x06,0x2f,0xe9,0x32,0x2f,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x32,0x2f,0xe9,0x00,0x3f,0xcd,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76,0x6c,0x9a,0x8c,0x76,0x6f,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x01,0xff,0x3a,0xfe,0x1e, +0x01,0x4a,0x04,0x00,0x00,0x0c,0x00,0x3a,0x40,0x19,0x0b,0x0f,0x06,0x06,0x08,0x03,0x08,0x95,0x59,0x03,0x1c,0x06,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x84,0x0a,0xb8,0xff,0xfe,0xb6,0x0c,0x06,0x4d,0x0a,0x0a,0x0e,0x0d,0x11,0x12,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0xc6,0x00,0x3f,0x2b,0x11,0x00,0x33,0x18,0x2f,0x3f, +0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0xa4,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x03,0xf0,0x00,0x01,0x00,0x0a,0x00,0x00,0x02,0x0e,0x04,0x00,0x00,0x0b,0x00,0x2d,0x40,0x17,0x01,0x0a,0x04,0x95,0x40,0x07,0x08,0x03,0x07,0x95,0x30,0x30, +0x08,0x0f,0x03,0x00,0x00,0x09,0x08,0x02,0x84,0x05,0x03,0x2f,0xc6,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x02,0x0e,0xb0,0xa4,0xb0,0xb0,0xa4,0xb0,0x01,0xdb,0xfe,0x25,0x01,0xdb,0x8b,0x01,0x9a,0xfe,0x66,0x00,0x01, +0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4a,0x40,0x2e,0x74,0x06,0x84,0x06,0x02,0x36,0x06,0x46,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x34,0x07,0x44,0x07,0x54,0x07,0x74,0x07,0x84,0x07,0x94,0x07,0x06,0x07,0x02,0x04,0x06,0x08,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, +0x39,0x2f,0x10,0xd4,0xcd,0x12,0x39,0x5d,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x03,0xd6,0x01,0x48,0x9c,0xfe,0xd6,0x01,0x2a,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x09,0x00,0x5a,0x40,0x39,0x24,0x03,0x01,0x16,0x03,0x01,0x94,0x06,0xa4,0x06,0x02,0x72,0x06,0x01,0x43,0x06,0x01,0x14,0x06,0x24,0x06,0x34,0x06,0x03,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x08,0x90,0x07,0xa0,0x07,0x02,0x84,0x07,0x01,0x70,0x07,0x01,0x07,0x02,0x02,0x01,0x08,0x01,0x00, +0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x02,0x8f,0x9c,0xfe,0x07,0x01,0xf9,0x00,0x01,0x00,0x96, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x29,0x04,0x06,0x14,0x06,0x94,0x06,0xa4,0x06,0x04,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x00,0x04,0x10,0x04,0x02,0x04,0x03,0x06,0x09,0xa1,0x07,0x01,0x70,0x07,0x80,0x07,0x90,0x07,0x03,0x07,0x02,0x02,0x01,0x09,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xd4, +0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x03,0xd7,0x9c,0xfd,0x37,0x02,0xc9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x38,0x40,0x20,0xa6,0x05,0x01,0x02, +0x05,0x03,0x01,0x06,0x08,0x0a,0x00,0x03,0x10,0x03,0x02,0x03,0x02,0x05,0x07,0xa0,0x06,0x01,0x91,0x06,0x01,0x70,0x06,0x80,0x06,0x02,0x06,0x01,0x00,0x2f,0x33,0x5d,0x5d,0x5d,0x2f,0xd4,0xcd,0x01,0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8, +0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x05,0x1e,0x9c,0xfc,0x4a,0x03,0xb6,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x56,0x40,0x33,0xb7,0x06,0x01,0x03,0x06,0x04,0xb6,0x07,0x01,0x99,0x07,0x01,0x07,0x02,0x08,0x0a,0x05,0x04,0xb7,0x04,0x01,0xa8,0x04,0x01,0x04,0x05,0x08,0x93,0x06,0x01,0x86,0x06,0x01,0x77, +0x06,0x01,0x06,0x03,0x03,0x01,0xc6,0x02,0x01,0x48,0x02,0x58,0x02,0x02,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x5d,0x5d,0x12,0x39,0x39,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8, +0xfe,0x66,0x53,0x01,0x47,0x01,0x48,0x9c,0x05,0x0a,0xfe,0xcc,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0xaa,0x03,0x01,0x56,0x06,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12, +0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x84,0x53,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xb8,0x01,0x48,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07, +0x00,0x42,0x40,0x26,0x02,0x05,0x07,0x09,0x04,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0xc8,0x05,0x01,0x93,0x05,0x01,0x74,0x05,0x01,0x65,0x05,0x01,0x46,0x05,0x56,0x05,0x02,0x37,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde, +0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1e,0x53,0x02,0x8f,0x9c,0x02,0x8f,0x02,0xcc,0x5f,0xfd,0x8f,0x02,0x71,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x03,0x01,0x9b,0x03,0x01,0xa7,0x06,0x01, +0x56,0x06,0x01,0x03,0x06,0x02,0xb6,0x04,0x01,0x04,0x05,0x08,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53, +0x01,0x9a,0xf5,0x9c,0x01,0x47,0x02,0x8f,0x01,0x85,0x5f,0xfe,0x7e,0xfe,0x0f,0x03,0x73,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0xb6,0x02,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x55,0x05,0x01,0x02,0x05,0x01,0xb6,0x03,0x01,0x03, +0x04,0x07,0x90,0x06,0x01,0x06,0x01,0x00,0x2f,0x33,0x5d,0x2f,0xc4,0x32,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x66,0x53,0x01,0xae,0xe1,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0x6a,0xfd,0x5e, +0x04,0x38,0x00,0x01,0x00,0x43,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0xb6,0x03,0x01,0x03,0x04,0x06,0x84,0x05,0x94,0x05,0x02,0x56,0x05,0x66,0x05,0x02,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33, +0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x65,0x53,0x01,0x48,0x9c,0x03,0xd6,0x01,0x85,0x5f,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4a,0x68,0x07,0x01,0x88,0x04,0x01,0x83,0x03,0x01,0x77,0x03,0x01,0x58,0x03,0x68,0x03, +0x02,0x04,0x03,0x34,0x03,0x44,0x03,0x03,0x77,0x06,0x01,0x03,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0xc7,0x04,0x01,0x26,0x04,0x01,0x04,0x05,0x07,0x93,0x06,0xa3,0x06,0x02,0x02,0x83,0x06,0x01,0x74,0x06,0x01,0x27,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x48,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0x33,0x5d,0x5d, +0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x47,0x01,0x48,0x9c,0x04,0xc4,0xfd,0xcb,0x02,0xe4, +0x47,0xfd,0xcb,0x02,0x35,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x40,0x86,0x03,0xc6,0x03,0xd6,0x03,0xe6,0x03,0x04,0x58,0x03,0x68,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x04,0x03,0x01,0x85,0x06,0x95,0x06,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0xb6,0x04,0x01,0x79,0x04,0x01, +0x04,0x05,0x08,0xa2,0x06,0x01,0x74,0x06,0x94,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x61,0x01,0x2e,0x9c,0x03,0xd6,0xfe,0xb9,0x02,0xe4,0x47,0xfd,0xa0,0x01,0x40,0x01,0x20,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x22,0x9c,0x03,0x01,0x79,0x03,0x89,0x03,0x02,0xa6,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x03,0x06, +0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x7d,0x01,0x12, +0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0x71,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x37,0xa3,0x06,0x01,0x02,0x9a,0x02,0xaa,0x02,0x02,0x7b,0x02,0x8b,0x02,0x02,0x68,0x02,0x01,0x5b,0x02,0x01,0x4a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x91,0x06,0x01,0x85,0x06,0x01, +0x76,0x06,0x01,0x03,0x06,0x02,0x04,0x05,0x08,0x37,0x07,0x01,0x07,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x5d,0x10,0xc4,0x32,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03, +0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x67,0x01,0x97,0xf8,0x9c,0x01,0x47,0x01,0x48,0x02,0xe4,0x47,0xfd,0x40,0xf9,0x03,0xb9,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x34,0x40,0x1d,0x01,0x04,0x06,0x08,0x03,0x02,0x02,0x03,0x05,0x93,0x04,0xa3,0x04,0x02,0x02,0x80,0x04,0x01,0x73,0x04,0x01,0x64,0x04,0x01, +0x56,0x04,0x01,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x0a,0x67,0x02,0x8f,0x9c,0x05,0x73,0x47,0xfb,0x5b,0x04,0xa5,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45, +0x40,0x29,0x88,0x03,0x98,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x26,0x03,0x01,0x03,0x04,0x06,0x90,0x05,0xa0,0x05,0x02,0x72,0x05,0x82,0x05,0x02,0x63,0x05,0x01,0x05,0x02,0x02,0x01,0x06,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd, +0xc4,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x02,0x8f,0x02,0xe4,0x47,0xfd,0xd5,0x02,0x2b,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7a,0x40,0x4d,0x29,0x07,0x01,0x89,0x04,0xa9,0x04,0x02,0x75,0x03,0x85,0x03,0x02,0x68,0x03,0x01, +0x45,0x03,0x01,0x36,0x03,0x01,0x2a,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x78,0x04,0x98,0x04,0x02,0x04,0x05,0x07,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x81,0x06,0x01,0x74,0x06,0x01,0x06,0x03,0x03,0x01,0x7b,0x02,0x01,0x1c,0x02,0x01,0x0b,0x02,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f, +0x33,0x5d,0x5d,0x5d,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x5f,0x5d,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x47,0x01,0x48,0x9c,0x04,0x6a, +0xfc,0xdd,0x04,0x3c,0x37,0xfc,0xdd,0x03,0x23,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x75,0x40,0x49,0xa4,0x07,0x01,0x95,0x07,0x01,0x89,0x04,0x99,0x04,0xa9,0x04,0x03,0x78,0x04,0x01,0x85,0x02,0x01,0x76,0x02,0x01,0x84,0x03,0x01,0x35,0x03,0x45,0x03,0x75,0x03,0x03,0x03,0x06,0x03,0x16,0x03,0x02, +0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x94,0x06,0xa4,0x06,0x02,0x83,0x06,0x01,0x02,0x70,0x06,0x01,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x5f,0x5d,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39, +0x5d,0x5f,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x04,0x3c,0x37,0xfc,0xc5,0x02,0x89,0xb2,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x64,0x40,0x3b, +0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x04,0x03,0x01,0x91,0x06,0xa1,0x06,0x02,0xa9,0x04,0x01,0x9b,0x04,0x01,0x89,0x04,0x01,0x79,0x02,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x72,0x06,0x82,0x06,0x02,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39, +0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x5d,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x71,0x01,0x1e,0x9c,0x02,0x8f,0xfe,0xb8,0x04,0x3c,0x37, +0xfc,0x82,0x01,0x0d,0x02,0x71,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x25,0xa6,0x06,0x01,0x94,0x06,0x01,0x76,0x06,0x86,0x06,0x02,0xad,0x03,0x01,0x99,0x03,0x01,0x88,0x03,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x06,0x02,0x02,0x08,0x00,0x00,0x2f,0x2f,0x39,0x2f, +0xcd,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0x96,0xf9,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0x29,0x03,0xd7,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x08,0x00,0x55,0x40,0x35,0x74,0x06,0x01,0x56,0x06,0x01,0xa5,0x05,0x01,0x57,0x05,0x01,0xaa,0x03,0x01,0x99,0x03,0x01,0x8a,0x03,0x01,0xab,0x02,0x01,0x9c,0x02,0x01,0x8a,0x02,0x01,0x68,0x02,0x78,0x02,0x02,0x39,0x02,0x49,0x02,0x02,0x01,0x06,0x08,0x0a,0x04,0x03,0x03,0x04,0x02,0x05,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39, +0x39,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x48,0x71,0x01,0xb4,0xdb,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfb,0xde,0xde,0x05,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a, +0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x20,0xa2,0x05,0x01,0x95,0x05,0x01,0x82,0x05,0x01,0x77,0x05,0x01,0xa9,0x03,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x03,0x04,0x06,0x05,0x02,0x02,0x06,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x67,0x01,0x48,0x9c,0x01,0x47,0x04,0x3c,0x37,0xfc,0xc9,0x03,0x37,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x7c,0x40,0x50,0x89,0x06,0x01,0x76,0x06,0x01,0xca,0x03,0x01,0x97,0x03,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03, +0x45,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x07,0x03,0x01,0x47,0x06,0x01,0x9b,0x04,0xab,0x04,0x02,0x89,0x04,0x01,0x7a,0x04,0x01,0x10,0x04,0x01,0x48,0x02,0x01,0x03,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x04,0x05,0x02,0x07,0xa3,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32, +0x5d,0x5f,0x5d,0x2f,0x33,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x4d,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0, +0x05,0x8c,0x2e,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x59,0x8a,0x06,0x01,0x76,0x06,0x01,0xa8,0x04,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x58,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0x15,0x03,0x01,0x03,0x07,0x03,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01, +0x82,0x06,0x01,0xaa,0x04,0x01,0x03,0x79,0x04,0x89,0x04,0x99,0x04,0x03,0x14,0x04,0x01,0x9a,0x02,0xaa,0x02,0x02,0x22,0x02,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x09,0x07,0x02,0x02,0x01,0x09,0x70,0x06,0x01,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f, +0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x55,0x01,0x3d,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x8c,0x2e, +0xfb,0xc9,0x03,0xb7,0x80,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7a,0x40,0x4b,0x76,0x06,0x01,0x07,0x06,0x01,0x8a,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x03,0x06,0x03,0x16,0x03,0x02,0xa7,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x82,0x06,0x01,0xab,0x04,0x01,0x9a,0x04,0x01,0x03, +0x02,0x04,0x01,0x02,0x7b,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x70,0x06,0x01,0x54,0x06,0x01,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x5d,0x5d,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5f, +0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x76,0x01,0x69,0x01,0x2c,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x8c,0x2e,0xfb,0x90,0x02,0x6d,0x02,0x03,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x60, +0x40,0x39,0xa6,0x06,0x01,0x94,0x06,0x01,0x97,0x05,0x01,0x36,0x03,0x46,0x03,0x02,0x17,0x03,0x01,0x06,0x03,0x01,0x90,0x06,0xa0,0x06,0x02,0x82,0x06,0x01,0x71,0x06,0x01,0xab,0x04,0x01,0x89,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x05,0x08,0x07,0x02,0x02,0x00,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x3d,0x79,0x01,0x81,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x8c,0x2e,0xfb,0x43, +0x01,0x04,0x03,0xb9,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0x94,0x04,0x01,0x76,0x04,0x86,0x04,0x02,0xa6,0x03,0x01,0x97,0x03,0x01,0xa9,0x01,0x01,0x01,0x04,0x02,0x06,0x07,0x09,0x03,0x02,0x02,0x03,0x06,0x05,0x00,0x00,0x2f,0xcd,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39, +0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x3d,0x79,0x01,0xa1,0xf1,0x9c,0x05,0x8c,0x2e,0xfa,0xe2,0x05,0x1e,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x29,0x78,0x01,0x01,0x03,0x07,0x01,0x01,0xa4,0x04,0x01,0x83,0x04,0x93,0x04, +0x02,0x02,0xab,0x02,0x01,0x89,0x02,0x99,0x02,0x02,0x04,0x02,0x01,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x02,0x03,0x05,0x04,0x00,0x00,0x2f,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c, +0xfe,0x3c,0x74,0x01,0x50,0x9c,0x05,0x8c,0x2e,0xfb,0xdc,0x04,0x24,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x2c,0x40,0x15,0xab,0x06,0x01,0x58,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde, +0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb5,0x51,0x01,0x7e,0x02,0x01,0x05,0x1e,0xfe,0xb8,0x6b,0x01,0x79,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4f,0x40,0x2d,0x93,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xa6,0x05,0x01,0x9b, +0x03,0x01,0x89,0x03,0x01,0x78,0x03,0x01,0xb6,0x02,0xc6,0x02,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb0,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x03,0xd6,0x01,0x34,0xfe,0xcc,0x6b,0x01,0x79,0xfe,0xcc,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x28,0xbb,0x07,0xcb,0x07,0x02,0x76,0x07,0x01,0x67,0x07, +0x01,0xa6,0x05,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, +0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xc0,0x48,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x02,0x6a,0xfe,0xdd,0x6b,0x01,0x79,0xfd,0xc1,0x02,0x3f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x54,0x40,0x2e,0x28,0x06,0x01,0x19,0x06,0x01,0x0b,0x06,0x01,0xcf,0x07,0x01, +0xbb,0x07,0x01,0xa6,0x05,0x01,0xa9,0x03,0x01,0x9b,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8e,0xfe,0xda,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x03,0x95,0xfe,0xfa,0x6b,0x01,0x79,0xfc,0xd3,0x03,0x2d,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x39,0x88,0x05,0x01,0x29,0x05,0x01, +0x0b,0x05,0x01,0x79,0x02,0x89,0x02,0x02,0x38,0x02,0x48,0x02,0x68,0x02,0x03,0xed,0x06,0x01,0xdb,0x06,0x01,0xcf,0x06,0x01,0xa6,0x04,0x01,0xad,0x02,0x01,0x9b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33, +0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x05,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x81,0xfe,0xe7,0x4b,0x01,0x9b,0x01,0x48,0x9c,0x04,0xce,0xf8,0x6b,0x01,0x79,0xfb,0xe6,0x04,0x1a,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba, +0x00,0x06,0x00,0x35,0x40,0x1c,0xa6,0x04,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x69,0x02,0x01,0x58,0x02,0x01,0x05,0x02,0x06,0x08,0x03,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33, +0x02,0x7a,0x9c,0xfe,0xaf,0x4b,0x01,0x9c,0x9c,0x05,0x14,0xfe,0xc2,0x6b,0x01,0x79,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x42,0x40,0x25,0x59,0x07,0x99,0x07,0x02,0x9a,0x06,0x01,0x88,0x06,0x01,0x79,0x06,0x01,0x38,0x06,0x48,0x06,0x02,0x18,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x05,0x03, +0x03,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x05,0x00,0xfe,0xd6,0x9c,0x01,0x48,0x00,0x01,0x00,0x96, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x24,0x38,0x03,0x48,0x03,0x02,0x92,0x07,0xa2,0x07,0x02,0x65,0x07,0x75,0x07,0x02,0x88,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd, +0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x02,0x8f,0x01,0x47,0x9c,0xfe,0xd7,0x02,0x71,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x42,0x40,0x23,0x97,0x06,0xa7,0x06, +0x02,0xa3,0x07,0x01,0x82,0x07,0x92,0x07,0x02,0x73,0x07,0x01,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x05,0x03,0x02,0x03,0x02,0x03,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01, +0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x01,0x47,0x02,0x8f,0x9c,0xfe,0x07,0x03,0x41,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x46,0x40,0x28,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x01,0x38,0x01,0x48,0x01,0x02,0x03,0xa4,0x06,0x01,0x93,0x06,0x01,0x02,0x70, +0x06,0x80,0x06,0x02,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5f,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1, +0xee,0x9c,0x03,0xd6,0x9c,0xfd,0x38,0x04,0x10,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x55,0x40,0x31,0x84,0x06,0x94,0x06,0x02,0x47,0x06,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x89,0x04,0xa9,0x04,0x02,0x9b,0x02,0x01,0x7a,0x02,0x01,0x69,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06, +0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e, +0x01,0x61,0x9c,0x04,0xc4,0xfd,0xcb,0x01,0x9c,0x6f,0xfe,0xc0,0x02,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x36,0xba,0x07,0x01,0xb8,0x06,0x01,0x84,0x06,0x94,0x06,0xa4,0x06,0x03,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x47,0x05,0x01,0x08,0x05,0x01,0x59,0x02,0x01,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01, +0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x51,0x01,0x4a,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x01,0x9c,0x5e,0xfe,0xb6,0x01,0x47,0x01,0x34,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x37,0x40,0x1b,0xa3,0x05,0x01,0x86,0x05,0x01,0x08,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04, +0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x51,0x01,0x4a,0x01,0x48,0x9c,0x02,0x8f,0x01,0x9c,0x62,0xfe, +0x9e,0x02,0x8f,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x51,0x40,0x31,0x72,0x05,0x92,0x05,0x02,0x64,0x05,0x01,0x56,0x05,0x01,0x44,0x05,0x01,0x35,0x05,0x01,0x27,0x05,0x01,0x64,0x04,0x74,0x04,0x02,0x46,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x03,0x05,0x02,0x04,0x03,0x02, +0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x01,0x47,0x02,0xe4,0x65,0xfd,0x71,0x03,0xb9,0x00,0x00,0x01, +0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2c,0x54,0x06,0x94,0x06,0xa4,0x06,0x03,0x08,0x04,0x01,0xa9,0x02,0x01,0x9a,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x84,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39, +0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x4b,0x01,0xb7,0xe1,0x9c,0x02,0x8f,0x01,0x9c,0x64,0xfe,0x4e,0xfe,0x55,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00, +0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x4f,0x40,0x30,0x94,0x05,0x01,0x75,0x05,0x01,0x46,0x05,0x56,0x05,0x66,0x05,0x03,0x56,0x04,0x76,0x04,0x02,0x47,0x04,0x01,0x08,0x04,0x01,0x88,0x03,0xa8,0x03,0x02,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, +0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x48,0x01,0x54,0x9c,0x02,0x8f,0x01,0x9c,0x5d,0xfe,0xad,0x02,0x85,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76, +0x40,0x4a,0x86,0x06,0x01,0x77,0x06,0x01,0xc9,0x05,0x01,0x75,0x03,0x85,0x03,0xc5,0x03,0x03,0x68,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0x28,0x03,0x01,0xa2,0x06,0x01,0x94,0x06,0x01,0xdb,0x05,0xfb,0x05,0x02,0xcc,0x05,0x01,0xc0,0x02,0x01,0x9c,0x02,0x01,0x8b,0x02,0x01,0x78,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04, +0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x01,0x02,0x08,0x01,0x00,0x2f,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03, +0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x5d,0x01,0x48,0x01,0x51,0x9c,0x04,0x6a,0xfc,0xdd,0x03,0x47,0x3e,0xfd,0x77,0x03,0x77,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x85,0x06,0x01,0x76,0x06,0x01,0x85,0x03,0x01,0x74,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x29,0x03,0x01,0xa0,0x06,0x01,0x94, +0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0x8e,0x02,0x01,0x7a,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, +0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x51,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x03,0x47,0x3e,0xfd,0x71,0x02,0x8f,0xee,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5e,0x40,0x37, +0x76,0x06,0x01,0x76,0x03,0x01,0x37,0x03,0x47,0x03,0x02,0xa4,0x06,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0xcb,0x05,0xdb,0x05,0x02,0xa6,0x05,0x01,0x6c,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x07,0x02,0x05,0x04,0x03,0x02,0x04,0x04,0x02,0x03,0x03,0x08,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11, +0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x6b,0x01,0x2e,0x9c,0x02,0x8f,0xfe,0xb8,0x03,0x47,0x3e,0xfd,0x46,0x01,0x41,0x02,0x67, +0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x15,0xa6,0x05,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11, +0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0x87,0x01,0x12,0x9c,0x01,0x47,0x03,0x4a,0x3b,0xfd,0x17,0x03,0xd7,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x71,0x40,0x46,0xa0,0x06,0x01,0x93,0x06,0x01,0x74,0x06,0x01,0x65,0x06,0x01,0x56,0x06,0x01,0xa1,0x05,0x01, +0x90,0x05,0x01,0x85,0x05,0x01,0x44,0x05,0x01,0x36,0x05,0x01,0xdb,0x04,0x01,0xc9,0x04,0x01,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x94,0x02,0x01,0x88,0x02,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x04,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33, +0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x37,0x01,0x17,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x5d,0x01,0xa1,0xf8,0x9c,0x01,0x47,0x03,0x47,0x3e,0xfc,0xe6,0xf8,0x05,0x00,0x00,0x01,0x00,0x2f, +0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x54,0x40,0x32,0xfa,0x04,0x01,0xd9,0x04,0xe9,0x04,0x02,0x77,0x04,0x01,0xa2,0x05,0x01,0x91,0x05,0x01,0x80,0x05,0x01,0xcb,0x04,0x01,0xa7,0x04,0x01,0x94,0x04,0x01,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0xd0,0x03,0x02,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f, +0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x5d,0x01,0x52,0x9c,0x01,0x47,0x03,0x47,0x42,0xfd,0x77,0x03,0x73,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x08,0x00,0x62,0x40,0x3c,0x85,0x06,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x94,0x06,0xa4,0x06,0x02,0x76,0x06,0x86,0x06,0x02,0x9b,0x02,0x01,0x8c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x01,0x02, +0x08,0x06,0x03,0x01,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x51,0x6a,0x01,0x3a,0x01,0x52,0x9c,0x04,0x10, +0xfb,0xf0,0x05,0x10,0x2a,0xfc,0x49,0x04,0x37,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x47,0x85,0x06,0x01,0x76,0x06,0x01,0xd8,0x05,0x01,0x75,0x03,0x85,0x03,0x02,0x58,0x03,0x01,0x34,0x03,0x44,0x03,0x02,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa0,0x06,0x01,0x92,0x06,0x01,0x70,0x06, +0x80,0x06,0x02,0xb9,0x05,0x01,0x7f,0x02,0x8f,0x02,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x44,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x05,0x10,0x24,0xfc,0x3a,0x03,0xcc,0x80,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xa7,0x06, +0x01,0x76,0x06,0x01,0xb8,0x05,0x01,0x8a,0x03,0x01,0x45,0x03,0x75,0x03,0x02,0x36,0x03,0x01,0x28,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x54,0x06,0x64,0x06,0x02,0x9e,0x02,0xae,0x02,0x02,0x8f,0x02,0x01,0x7d,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05, +0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x5a,0x01,0x32,0x9c,0x02,0x8f,0xfd,0x71,0x05,0x10,0x2d,0xfc,0x19,0x02,0x6b,0x01,0xf9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3e,0x57,0x06,0x01,0x76,0x05,0x01,0x79,0x03,0x89,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0x92,0x06,0xa2, +0x06,0x02,0x84,0x06,0x01,0x75,0x06,0x01,0x9a,0x04,0xaa,0x04,0x02,0x8a,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30, +0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x52,0x6a,0x01,0x7b,0x01,0x11,0x9c,0x01,0x47,0xfe,0xb9,0x05,0x10,0x2d,0xfb,0xc4,0x01,0x00,0x03,0xb9,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x34,0x40,0x1c, +0x86,0x04,0xa6,0x04,0x02,0x77,0x04,0x01,0x98,0x01,0xa8,0x01,0x02,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x52, +0x6a,0x01,0x9d,0xef,0x9c,0x05,0x10,0x2a,0xfb,0x62,0x05,0x1e,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x2e,0x40,0x18,0x01,0x04,0x06,0x08,0x03,0x04,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0xa3,0x04,0x01,0x02,0x80,0x04,0x90,0x04,0x02,0x04,0x00,0x00,0x2f,0x32,0x5d,0x5f,0x5d,0x2f,0x39,0x2f,0x33,0x01,0x2f, +0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x51,0x6a,0x01,0x45,0x9c,0x05,0x10,0x27,0xfc,0x23,0x04,0x60,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x8b,0x06,0x9b,0x06,0xab,0x06,0x03,0x59,0x06,0x69,0x06,0x02,0xa5,0x04,0x01,0x86, +0x04,0x01,0x76,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x01,0x02,0x07,0x01,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb2,0x6a,0x01,0x5e,0x02,0x3d, +0x05,0x1e,0xfd,0x71,0x50,0x02,0xdb,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x47,0xc9,0x06,0x01,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x04,0x01,0x95,0x04,0x01,0xc9,0x07,0x01,0x94,0x07,0x01,0x47,0x07,0x57,0x07,0x02,0xc6,0x03,0x01,0xb7,0x03,0x01,0xac,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02, +0x7d,0x03,0x01,0x59,0x03,0x69,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x08,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x95,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x03,0xd6,0x01,0x23,0xfd,0x99,0x4d,0x02,0xdb,0xfe,0xcc,0x01,0x34,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x78,0x40,0x4c,0xf9,0x06, +0x01,0x76,0x06,0x86,0x06,0xc6,0x06,0x03,0x45,0x06,0x01,0x34,0x06,0x01,0x2a,0x06,0x01,0xc7,0x03,0x01,0x74,0x07,0x94,0x07,0x02,0x66,0x07,0x01,0x45,0x07,0x01,0xa6,0x05,0x01,0x87,0x05,0x01,0x66,0x05,0x01,0x57,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x8b,0x03,0x01,0x7d,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03, +0x06,0x08,0x05,0x04,0x07,0x02,0x02,0x01,0x08,0x01,0x00,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0xb3,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x02,0x8f,0x02,0x35,0xfd,0xcb,0x50,0x02,0xdb,0xfd,0xcb,0x02,0x35,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x98,0x40,0x63,0xf5,0x06,0x01,0xc6,0x06,0x01,0x84,0x06,0x01,0x75,0x06,0x01,0x59,0x06,0x01,0x36,0x06,0x46,0x06,0x02,0x2a,0x06,0x01,0xf5, +0x03,0x01,0xc7,0x03,0x01,0x85,0x03,0x01,0x76,0x03,0x01,0xa6,0x07,0x01,0x90,0x07,0x01,0x74,0x07,0x84,0x07,0x02,0x6c,0x07,0x01,0x57,0x07,0x01,0x2b,0x07,0x01,0x94,0x05,0x01,0x66,0x05,0x86,0x05,0x02,0x54,0x05,0x01,0xad,0x03,0x01,0x7b,0x03,0x9b,0x03,0x02,0x69,0x03,0x01,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06, +0x08,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x08,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa2,0xfe,0xc9,0x6a,0x01,0xb7,0x01,0x48,0x9c,0x01,0x47,0x03,0x57,0xfd,0xf9,0x48,0x02,0xdb,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x76,0x40,0x4b,0xc5,0x05,0x01,0x8b,0x05,0x01,0x7a,0x05,0x01,0x68,0x05,0x01,0x5a,0x05, +0x01,0x36,0x05,0x46,0x05,0x02,0x2a,0x05,0x01,0xc6,0x02,0x01,0x8b,0x02,0x01,0x7a,0x02,0x01,0x59,0x02,0x01,0xc9,0x06,0x01,0x90,0x06,0x01,0x84,0x04,0x94,0x04,0x02,0x9f,0x02,0xaf,0x02,0x02,0x8b,0x02,0x01,0x7e,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x07,0x04,0x03,0x03,0x07,0x06,0x00,0x00,0x2f,0x32, +0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x96,0xfe,0xd5,0x6a,0x01,0xb8,0x01,0x47,0x9c,0x04,0x81,0xfe,0x19, +0x45,0x02,0xdb,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3d,0x40,0x23,0x87,0x04,0x97,0x04,0x02,0xac,0x02,0x01,0x02,0x8f,0x02,0x9f,0x02,0x02,0x6d,0x02,0x7d,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x01,0x02,0x06,0x01,0x00,0x2f,0x2f,0x33,0x12, +0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb2,0x6a,0x01,0xb8,0x9c,0x04,0xba,0xfd,0xd7,0x4e,0x02,0xdb,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x18,0x69,0x06,0x79,0x06,0x02,0x06, +0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0xb8,0x54,0x01,0x7e,0x01,0x65, +0x9c,0x03,0xd6,0xfe,0xbc,0x67,0x01,0x79,0x01,0x48,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5b,0x40,0x35,0xc9,0x07,0x01,0x65,0x07,0x75,0x07,0x02,0x47,0x07,0x01,0xb9,0x06,0x01,0x87,0x06,0x01,0x75,0x06,0x01,0x66,0x06,0x01,0xb9,0x05,0x01,0xa9,0x03,0x01,0x9b,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09, +0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0xc6,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, +0xfe,0xb8,0xfe,0xb9,0x54,0x01,0x9b,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfe,0xc9,0x5a,0x01,0x8d,0xfe,0xb9,0x02,0x7b,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53,0x40,0x2f,0xcc,0x07,0x01,0x02,0xbc,0x07,0x01,0xbb,0x06,0x01,0x96,0x06,0x01,0x89,0x03,0x01,0x58,0x03,0x68,0x03,0x78,0x03,0x03,0x03, +0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01, +0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa5,0xfe,0xcc,0x54,0x01,0x9b,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfe,0xc9,0x5a,0x01,0x9e,0xfd,0x9c,0x03,0x87,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x38,0x54,0x05,0x01,0x27,0x05,0x01,0x19,0x05,0x01,0xeb,0x06,0x01,0xdf,0x06,0x01,0xcd,0x06,0x01, +0xa2,0x06,0x01,0x64,0x06,0x74,0x06,0x94,0x06,0x03,0x1f,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x8f,0xfe,0xe2,0x54,0x01,0x9c,0x01,0x47,0x9c,0x03,0xd6,0xfe,0xc9,0x5a,0x01,0xd2,0xfc,0x85,0x04,0x6a,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x38,0x40,0x1e,0xf6,0x04,0x01,0xc7, +0x04,0x01,0x87,0x03,0xa7,0x03,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x54, +0x01,0x9c,0x9c,0x03,0xd6,0xfe,0xd2,0x51,0x01,0x83,0x01,0x3e,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x96,0x03,0xa6,0x03,0x02,0xa9,0x02,0x01,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39, +0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x88,0xfe,0x07,0x9c,0x02,0x8f,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3d,0x40,0x20, +0x46,0x07,0x01,0x37,0x07,0x01,0x09,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21, +0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0x9c,0x01,0x65,0x01,0x2a,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0xa6,0x07,0x01,0x95,0x07,0x01,0x46,0x07,0x01,0x34,0x07,0x01,0x78,0x02,0x01,0x03,0x06,0x04,0x02,0x07,0x09,0x0b, +0x04,0x05,0x03,0x02,0x03,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x01,0x48,0x9c,0xfe,0xd6, +0x03,0xb9,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x74,0x05,0x01,0x89,0x02,0x99,0x02,0xa9,0x02,0x03,0x78,0x02,0x01,0x94,0x06,0xa4,0x06,0x02,0x53,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, +0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x13,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0xa1,0xee,0x9c,0x02,0x8f,0x9c,0xfe,0x07,0x04,0x88,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x28,0xa2,0x06,0x01,0x94,0x06,0x01, +0x46,0x06,0x01,0x92,0x05,0xa2,0x05,0x02,0x74,0x05,0x01,0x65,0x05,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x06,0x03,0x05,0x04,0x03,0x04,0x03,0x04,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x04,0x74,0xfc,0xd3,0x01,0x9c,0x70,0xfe,0xd2,0x03,0x95,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xa0,0x06,0x01,0x92,0x06,0x01,0x44,0x06,0x74,0x06,0x84,0x06,0x03,0x92, +0x05,0xa2,0x05,0x02,0x76,0x05,0x01,0x65,0x05,0x01,0x37,0x05,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x07,0x02,0x03,0x04,0x02,0x02,0x04,0x03,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x2e,0x01,0x61,0x9c,0x03,0xd6,0xfd,0x71,0x01,0x9c,0x70,0xfe,0xd3,0x02,0xba,0xda,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x61,0x40,0x3b,0xa2,0x06,0x01,0x93,0x06,0x01, +0x87,0x06,0x01,0x64,0x06,0x74,0x06,0x02,0x46,0x06,0x01,0xa1,0x05,0x01,0x92,0x05,0x01,0x36,0x05,0x46,0x05,0x66,0x05,0x76,0x05,0x04,0xb7,0x02,0xd7,0x02,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x06,0x03,0x05,0x04,0x02,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4, +0x32,0x11,0x33,0x01,0x2f,0x32,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x51,0x01,0x3e,0x9c,0x02,0x8f,0xfe,0xb8,0x01,0x9c,0x70,0xfe,0xaa,0x01,0x42,0x02,0x7b,0x00,0x00,0x01, +0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3e,0x40,0x20,0xa2,0x05,0x01,0x94,0x05,0x01,0x96,0x05,0x01,0x67,0x05,0x77,0x05,0x02,0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x05,0x04,0x03,0x04,0x03,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12, +0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9a,0xfe,0x83,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x61,0xfe,0x9f,0x03,0xd7,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x42,0x40,0x28,0x98,0x01,0xa8,0x01,0x02,0x36, +0x04,0x46,0x04,0x56,0x04,0x03,0x27,0x04,0x01,0x46,0x03,0x01,0x37,0x03,0x01,0x68,0x02,0x78,0x02,0x88,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11, +0x33,0x03,0xc1,0x9c,0xfd,0x1d,0x54,0x02,0x8f,0x9c,0x02,0xe3,0x66,0xfd,0x71,0x05,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3b,0x40,0x21,0x85,0x05,0x01,0x48,0x03,0x58,0x03,0x68,0x03,0x98,0x03,0xa8,0x03,0x05,0x02,0x05,0x07,0x09,0x04,0x00,0x03,0x01,0x03,0x05,0x02,0x04,0x03,0x02,0x03,0x02, +0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x47,0x01,0x9c,0x52,0xfe,0xb8,0x03,0xcd,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x08,0x00,0x7c,0x40,0x4f,0x8a,0x06,0x01,0x29,0x06,0x79,0x06,0x02,0xf9,0x03,0x01,0xc5,0x03,0x01,0x7b,0x03,0x8b,0x03,0x02,0x36,0x03,0x46,0x03,0x02,0x29,0x03,0x01,0x07,0x03,0x17,0x03,0x02,0x03,0x93,0x06,0xa3,0x06,0x02,0x02,0x81,0x06,0x01,0x70,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x03,0x9b,0x02,0x01,0x20, +0x02,0x01,0x02,0x03,0x06,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x2c,0x01,0x63,0x9c,0x04,0x10,0xfb,0xf0,0x03,0x6e,0x49,0xfd,0x93,0x04,0x70,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8e,0x40,0x5c,0xc5,0x06,0x01,0x89,0x06,0x01,0x56,0x06,0x76,0x06,0x02,0x29,0x06,0x01, +0xf9,0x03,0x01,0xc5,0x03,0x01,0x8b,0x03,0x01,0x36,0x03,0x46,0x03,0x76,0x03,0x03,0x29,0x03,0x01,0x17,0x03,0x01,0x03,0x07,0x03,0x01,0x77,0x07,0x01,0xa4,0x06,0x01,0x92,0x06,0x01,0x02,0x70,0x06,0x80,0x06,0x02,0x64,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x86,0x05,0x01,0x8a,0x04,0x01,0x03,0x23,0x02,0x01,0x02,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x04,0x02,0x04,0x02,0x00,0x09,0x03,0x00,0x00,0x2f,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x37,0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x48,0x70,0x01,0x32,0x01,0x5d,0x9c,0x03,0xd6,0xfc,0x2a,0x03,0x6e,0x4c,0xfd,0x9c,0x03,0xee,0x76,0x00,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x7c,0x40,0x4f,0x76,0x06,0x86,0x06,0x02,0xf9,0x03,0x01,0x85,0x03,0xc5,0x03,0x02,0x74, +0x03,0x01,0x35,0x03,0x45,0x03,0x02,0x07,0x03,0x17,0x03,0x02,0xa1,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x74,0x06,0x01,0x55,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03, +0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x47, +0x01,0x48,0x9c,0x02,0x8f,0xfd,0x71,0x03,0x6e,0x52,0xfd,0x59,0x02,0xad,0x01,0xf4,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5c,0x40,0x36,0x57,0x06,0x01,0x07,0x03,0x17,0x03,0x37,0x03,0x47,0x03,0x04,0xa2,0x06,0x01,0x80,0x06,0x90,0x06,0x02,0x72,0x06,0x01,0xa2,0x05,0x01,0x94,0x05,0x01,0x89,0x02,0x01, +0x03,0x06,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x49,0x70,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0xfe,0xb9,0x03,0x6e,0x49,0xfd,0x2e,0x01,0x3a,0x03,0x9b,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x36,0x40,0x1e,0xa5,0x03,0x01,0x84,0x03,0x94,0x03,0x02,0x59,0x01,0x79,0x01,0xa9,0x01,0x03,0x01,0x04,0x02, +0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x05,0x00,0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x21,0x21,0x01,0x37,0x01,0x33,0x11,0x33,0x03,0xc1,0xfe,0x1c,0xfe,0x49,0x70,0x01,0x91,0xfe,0x9c,0x03,0x6e,0x49,0xfc,0xe5,0x05,0x1e,0x00,0x01,0x00,0x26, +0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x46,0x40,0x2c,0x84,0x03,0x94,0x03,0xa4,0x03,0x03,0x80,0x04,0x90,0x04,0xa0,0x04,0x03,0x72,0x04,0x01,0x64,0x04,0x01,0x46,0x04,0x01,0x64,0x03,0x74,0x03,0x84,0x03,0x03,0x01,0x04,0x06,0x08,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01, +0x2f,0x5d,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x48,0x70,0x01,0x48,0x9c,0x03,0x6e,0x4f,0xfd,0x57,0x04,0xa6,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x2b,0x9d,0x06,0xad,0x06,0x02,0x8b,0x06,0x01, +0x79,0x06,0x01,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x75,0x04,0x01,0x57,0x04,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x05,0x04,0x04,0x00,0x02,0x07,0x00,0x00,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xef,0xfe,0x60,0x73,0x01,0xba,0x01,0xe4,0x05,0x1e,0xfc,0x29,0x48,0x04,0x2b,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x72,0x40,0x48,0x36,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x96,0x03,0xa6,0x03,0x02,0x90,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x01,0xa4,0x05, +0x01,0x92,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0x8f,0x03,0x9f,0x03,0xaf,0x03,0x03,0x7d,0x03,0x01,0x4b,0x03,0x5b,0x03,0x6b,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f, +0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xef,0xfe,0x82,0x73,0x01,0xba,0x01,0x48,0x9c,0x03,0xd6,0xe3,0xfc,0x8e,0x41,0x04,0x32,0xfe,0xea,0x01,0x16,0x00,0x00,0x01,0x00,0x23, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x74,0x40,0x4a,0x79,0x06,0x89,0x06,0x02,0x44,0x06,0x01,0x33,0x06,0x01,0x07,0x06,0x17,0x06,0x02,0x79,0x03,0x89,0x03,0x02,0x45,0x03,0x01,0x36,0x03,0x01,0x74,0x07,0xa4,0x07,0x02,0x45,0x07,0x55,0x07,0x65,0x07,0x03,0x94,0x05,0xa4,0x05,0x02,0x9f,0x03,0xaf,0x03,0x02,0x89,0x03,0x01, +0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23, +0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcb,0xfe,0xa6,0x73,0x01,0xba,0x01,0x48,0x9c,0x02,0x8f,0x02,0x02,0xfc,0xb6,0x3b,0x04,0x38,0xfd,0xe9,0x02,0x17,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x92,0x40,0x5f,0xf9,0x06,0x01,0xca,0x06,0x01,0x75,0x06,0x85,0x06,0x02,0x36,0x06,0x46, +0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x76,0x03,0x86,0x03,0x02,0x90,0x07,0x01,0x72,0x07,0x82,0x07,0x02,0x2d,0x07,0x01,0x13,0x07,0x01,0x03,0x06,0x07,0x01,0xa7,0x05,0x01,0x95,0x05,0x01,0x86,0x05,0x01,0x77,0x05,0x01,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x6d,0x03,0x7d,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04, +0x05,0x5b,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x73,0x01,0xba,0x01,0x48,0x9c,0x01,0x47,0x03,0x05,0xfc,0xfb,0x3e,0x04,0x35,0xfc,0xdd,0x03,0x23,0x00,0x01,0x00,0x23,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x72,0x40,0x4b,0x07,0x05,0x01,0xf9,0x05,0x01,0x35,0x05,0x45,0x05, +0x75,0x05,0x85,0x05,0xc5,0x05,0x05,0x28,0x05,0x01,0x07,0x05,0x17,0x05,0x02,0x76,0x02,0x86,0x02,0x02,0x84,0x06,0x01,0x92,0x04,0xa2,0x04,0x02,0x84,0x04,0x01,0x76,0x04,0x01,0xae,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x5d,0x02,0x7d,0x02,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x03,0x08,0x06, +0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xae,0xfe,0xc3,0x73,0x01,0xbb,0x01,0x47,0x9c,0x04,0x37,0xfd,0x10, +0x3e,0x04,0x35,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x3e,0x40,0x22,0x67,0x03,0x01,0xa3,0x04,0x01,0xae,0x02,0x01,0x03,0x8b,0x02,0x9b,0x02,0x02,0x7c,0x02,0x01,0x02,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f, +0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5f,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x73,0x01,0xbb,0x9c,0x04,0x74,0xfc,0xd3,0x38,0x04,0x3b,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x61,0x40,0x3a,0x92,0x06,0x01,0x76, +0x06,0x86,0x06,0x02,0x67,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x86,0x05,0x01,0x74,0x05,0x01,0xaf,0x03,0x01,0x99,0x03,0x01,0x8b,0x03,0x01,0x78,0x03,0x01,0x5b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33, +0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfd,0x71,0x51,0x02,0xbd,0x01,0x65,0x00,0x00,0x01,0x00,0x2f, +0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xaf,0x06,0x01,0x9b,0x06,0x01,0x7a,0x06,0x8a,0x06,0x02,0x95,0x04,0x01,0x57,0x03,0x67,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33, +0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0x4e,0x02,0xdd,0x01,0x48,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3d,0x49,0x06, +0x01,0x38,0x06,0x01,0x07,0x06,0x01,0xa0,0x07,0x01,0x91,0x07,0x01,0x74,0x07,0x01,0x65,0x07,0x01,0x94,0x06,0xa4,0x06,0x02,0x99,0x03,0xa9,0x03,0x02,0x8a,0x03,0x01,0x78,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x07,0x02,0x06,0x03,0x04,0x02,0x03,0x03,0x02,0x04,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd2,0xfe,0x9f,0x67,0x01,0xae,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfd,0x71,0x41, +0x03,0x19,0xfe,0xa8,0x02,0x71,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4b,0x40,0x2a,0x84,0x07,0xa4,0x07,0x02,0x76,0x07,0x01,0xa1,0x06,0x01,0x70,0x06,0x80,0x06,0x90,0x06,0x03,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00, +0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x67,0x01,0xae,0x01,0x48,0x9c,0x01,0x47,0x02,0x8f,0xfd,0x71,0x32,0x03,0x67,0xfd, +0x5d,0x03,0x7d,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2a,0xa6,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x93,0x05,0xa3,0x05,0x02,0x02,0x70,0x05,0x80,0x05,0x02,0x64,0x05,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f, +0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xa3,0xfe,0xce,0x67,0x01,0xaf,0x01,0x47,0x9c,0x03,0xd6,0xfd,0x71,0x41,0x03,0x9a,0xfc,0x4c,0x04,0x4c,0x00,0x01, +0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x45,0x40,0x28,0x94,0x04,0xa4,0x04,0x02,0x86,0x04,0x01,0x9f,0x02,0xaf,0x02,0x02,0x8d,0x02,0x01,0x6a,0x02,0x7a,0x02,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11, +0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x03,0xd6,0xfd,0x71,0x44,0x03,0x7d,0xb2,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5f,0x40,0x39,0x92,0x06,0xa2,0x06,0x02,0x84, +0x06,0x01,0x67,0x06,0x77,0x06,0x02,0x46,0x06,0x01,0x37,0x06,0x01,0xa6,0x05,0x01,0x94,0x05,0x01,0x58,0x03,0x01,0xaf,0x02,0x01,0x9d,0x02,0x01,0x8b,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x05,0x04,0x06,0x03,0x04,0x03,0x04,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xff,0xfe,0x70,0x4b,0x01,0x7d,0x01,0x5d,0x9c,0x04,0x88,0xfe,0x07,0xfe,0xb8,0x73,0x01,0x40,0x02,0xc0,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x07,0x00,0x33,0x40,0x19,0xb9,0x05,0x01,0x65,0x05,0x01,0x56,0x05,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02,0x04,0x03,0x02,0x03,0x02,0x03,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11, +0x33,0x03,0xc1,0x9c,0xfd,0x71,0x4b,0x02,0xda,0x9c,0x03,0xd6,0xfd,0x71,0x6d,0x02,0xdc,0x01,0x2a,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x16,0x88,0x06,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x05,0x04,0x06,0x02,0x04,0x02,0x04,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f, +0x2f,0x10,0xcd,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x7e,0x01,0x5c,0x9c,0x02,0x8f,0xfe,0xb8,0x67,0x01,0x7d,0x02,0x8f,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x53, +0x40,0x2f,0x84,0x07,0x01,0x56,0x07,0x01,0x47,0x07,0x01,0x84,0x06,0x01,0x77,0x06,0x01,0xb9,0x05,0x01,0x99,0x03,0xa9,0x03,0x02,0x03,0x06,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x05,0x04,0x06,0x03,0x02,0x04,0x03,0x03,0x04,0x02,0x03,0x09,0x00,0x00,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x4b,0x01,0x92,0x01,0x48,0x9c,0x01,0x47,0x01,0x48,0xfe,0xb8,0x63,0x01,0x95,0xfe,0xb8,0x03,0xc3,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x08,0x00,0x4d,0x40,0x2b,0xa2,0x06,0x01,0x94,0x06,0x01,0x85,0x06,0x01,0x57,0x06,0x01,0xa2,0x05,0x01,0x74,0x05,0x94,0x05,0x02,0xa4,0x04,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01, +0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0x9f,0xfe,0xd2,0x4b,0x01,0x93,0x01,0x47,0x9c,0x02,0x8f,0xfe,0xb8,0x70,0x01,0xa3,0xfd,0x9c,0x04,0xc4,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07, +0x00,0x3f,0x40,0x23,0xe9,0x05,0x01,0xbb,0x05,0xcb,0x05,0x02,0xb9,0x04,0xe9,0x04,0x02,0x79,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x04,0x03,0x05,0x02,0x03,0x02,0x03,0x02,0x07,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x4b,0x01,0x93,0x9c,0x02,0x8f,0xfe,0xb8,0x5a,0x01,0x94,0x02,0x85,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3a,0x40,0x1f,0x38,0x07,0x01,0x9b,0x06,0xab,0x06,0x02,0x9f,0x02,0x01,0x8b,0x02,0x01,0x7c,0x02,0x01,0x06,0x03,0x04, +0x07,0x02,0x08,0x0a,0x04,0x06,0x03,0x03,0x02,0x08,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x47,0x01,0x48,0x9c,0x04,0x10,0xfd,0x37,0x9c,0x03,0xd7,0x00, +0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x28,0x40,0x11,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x06,0x07,0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x35,0x33, +0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x01,0x51,0x01,0x3e,0x9c,0x03,0xd6,0xfd,0x71,0x9c,0x03,0x39,0x9e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x41,0x40,0x23,0x65,0x07,0x01,0x37,0x07,0x01,0x18,0x07,0x01,0x7a,0x02,0x01,0x48,0x02,0x01,0x19,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x05,0x07, +0x02,0x03,0x02,0x03,0x02,0x09,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33,0xcd,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x02,0x8f,0xfe,0xb8,0x9c,0x01,0x66, +0x02,0x71,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x3e,0x40,0x23,0x38,0x02,0x48,0x02,0x88,0x02,0x03,0xa2,0x06,0x01,0x93,0x06,0x01,0x65,0x06,0x75,0x06,0x02,0x56,0x06,0x01,0x02,0x05,0x03,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x02,0x08,0x06,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0xcd,0x01,0x2f,0x10,0xde, +0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x01,0x65,0x01,0x2a,0x9c,0x01,0x47,0x9c,0xfe,0xd7,0x05,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4e,0x40,0x2d,0x68,0x06,0x78,0x06,0x02,0x46, +0x05,0x01,0x28,0x03,0xc8,0x03,0x02,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x04,0xa9,0x04,0x02,0xab,0x02,0x01,0x06,0x03,0x04,0x07,0x02,0x08,0x0a,0x05,0x04,0x05,0x04,0x04,0x00,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x33,0x03,0xc1,0x9c,0xfe,0xb9,0xfe,0x64,0x54,0x01,0x11,0x01,0x7e,0x9c,0x04,0x10,0xfb,0xf0,0x01,0x9b,0x66,0xfe,0xfc,0x04,0xbd,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x23,0x46,0x05,0x01,0x28,0x03,0xc8,0x03,0x02, +0x99,0x04,0xa9,0x04,0x02,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37, +0x01,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x1d,0x01,0x72,0x9c,0x03,0xd6,0xfc,0x2a,0x01,0x9b,0x66,0xfe,0xe7,0x04,0x5c,0x76,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x48,0x40,0x25,0x47,0x05,0x01,0x28,0x03,0x01,0x93,0x06,0x01,0xa9,0x04,0x01,0x98,0x04,0x01,0x06,0x03,0x04, +0x02,0x07,0x09,0x0b,0x05,0x04,0x05,0x04,0x07,0x02,0x04,0x02,0x04,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xb8,0xfe,0x65,0x54,0x01,0x34,0x01,0x5b,0x9c,0x02,0x8f,0xfd,0x71,0x01,0x9b,0x66,0xfe,0xca,0x02,0xc4,0x02,0x2b,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x4d,0x40,0x2a,0xb9,0x07,0x01,0xb8,0x06,0x01,0x77,0x06,0x01,0x46,0x05,0x01,0x99,0x04,0xa9,0x04,0x02,0x8c,0x02,0x01,0x06,0x03,0x04,0x02, +0x07,0x09,0x0b,0x05,0x04,0x07,0x02,0x05,0x04,0x02,0x04,0x02,0x04,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x37,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c, +0xfe,0xb8,0xfe,0x65,0x54,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x01,0x9b,0x66,0xfe,0xb9,0x01,0x47,0x03,0xb9,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x32,0x40,0x18,0xa7,0x04,0x01,0xab,0x02,0x01,0x9a,0x02,0x01,0x01,0x04,0x02,0x05,0x07,0x09,0x03,0x02,0x03,0x02,0x02,0x00,0x07,0x04,0x00, +0x00,0x2f,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x21,0x01,0x37,0x01,0x21,0x11,0x33,0x03,0xc1,0xfd,0xff,0xfe,0x82,0x54,0x01,0x48,0x01,0x47,0x9c,0x01,0xa4,0x5d,0xfe,0x9b,0x05,0x1e,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06, +0x00,0x41,0x40,0x27,0x84,0x04,0x01,0x65,0x04,0x01,0xa9,0x02,0x01,0x78,0x02,0x98,0x02,0x02,0x59,0x02,0x01,0x28,0x02,0x38,0x02,0x48,0x02,0x03,0x01,0x04,0x06,0x08,0x03,0x00,0x02,0x01,0x02,0x03,0x02,0x02,0x06,0x04,0x00,0x00,0x2f,0x32,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x21,0x23,0x01,0x37,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0x64,0x54,0x01,0x48,0x9c,0x01,0x9b,0x66,0xfe,0xb9,0x05,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x3c,0x40,0x24,0xab,0x06,0x01,0x89,0x06,0x99,0x06,0x02,0x58,0x06,0x78,0x06,0x02,0x96,0x04,0xa6,0x04,0x02,0x77,0x04,0x87,0x04, +0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x04,0x05,0x02,0x07,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xcd,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x03,0xc1,0x9c,0xf1,0xfe,0x62,0x7c,0x01,0xc3,0x01,0xe4,0x05,0x1e,0xfa,0xe2,0x2e,0x05,0x8c,0x00,0x01, +0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x6e,0x40,0x45,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0xa6,0x03,0x01,0x57,0x03,0x01,0x91,0x07,0x01,0x55,0x07,0x01,0x36,0x07,0x46,0x07,0x02,0xa4,0x05,0x01,0x95,0x05,0x01,0x74,0x05,0x84,0x05,0x02,0xaf,0x03,0x01,0x8d,0x03,0x9d,0x03,0x02,0x7b,0x03,0x01,0x06, +0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x25,0x01,0x27, +0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf1,0xfe,0x80,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x03,0xd6,0xf1,0xfb,0x39,0x2e,0x05,0x8c,0xfe,0xe0,0x01,0x20,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x70,0x40,0x48,0x79,0x06,0x89,0x06,0xc9,0x06,0x03,0x36,0x06,0x46,0x06,0x02,0x07,0x06,0x17,0x06,0x02,0x78, +0x03,0x01,0x41,0x07,0x01,0x32,0x07,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x76,0x05,0x01,0x9f,0x03,0xaf,0x03,0x02,0x5d,0x03,0x6d,0x03,0x7d,0x03,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x8d,0x03,0x01,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10, +0xc4,0x32,0x5d,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd8,0xfe,0x99,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x02,0x8f,0x01,0xed,0xfb,0x84,0x2e,0x05,0x8c,0xfd,0xdf,0x02,0x21, +0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x8c,0x40,0x5b,0xf9,0x06,0x01,0xca,0x06,0x01,0x89,0x06,0x01,0x75,0x06,0x01,0x16,0x06,0x36,0x06,0x46,0x06,0x03,0x05,0x06,0x01,0x89,0x03,0x01,0x75,0x03,0x01,0x36,0x03,0x46,0x03,0x02,0xa4,0x07,0x01,0x72,0x07,0x01,0x2b,0x07,0x01,0x14,0x07,0x01,0x07,0x07,0x01, +0x03,0xa5,0x05,0x01,0x86,0x05,0x96,0x05,0x02,0xac,0x03,0x01,0x02,0x8f,0x03,0x9f,0x03,0x02,0x5d,0x03,0x7d,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x03,0x06,0x09,0x07,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x10,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39, +0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xc7,0xfe,0xaa,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x01,0x47,0x02,0xf8,0xfb,0xc1,0x2e,0x05,0x8c,0xfc,0xd3,0x03,0x2d,0x00,0x01, +0x00,0x1a,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x80,0x40,0x53,0xf9,0x05,0x01,0x8a,0x05,0xca,0x05,0x02,0x35,0x05,0x45,0x05,0x75,0x05,0x03,0x28,0x05,0x01,0x16,0x05,0x01,0x07,0x05,0x01,0xc9,0x02,0x01,0x88,0x02,0x01,0x76,0x02,0x01,0x94,0x06,0x01,0x47,0x06,0x01,0x15,0x06,0x01,0x03,0xa5,0x04,0x01,0x96,0x04,0x01,0x85, +0x04,0x01,0x9b,0x02,0xab,0x02,0x02,0x8c,0x02,0x01,0x02,0x7f,0x02,0x01,0x5b,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x02,0x05,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0xc4,0x32,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xb8,0xfe,0xb9,0x7c,0x01,0xc3,0x01,0x48,0x9c,0x04,0x10,0xfb,0xf0,0x2e,0x05,0x8c,0xfb,0xf0,0x04,0x10,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x06,0x00,0x36,0x40,0x1f,0x77,0x03, +0x01,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x05,0x02,0x06,0x08,0x03,0x00,0x04,0x01,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x7c,0x01, +0xc4,0x9c,0x04,0x24,0xfb,0xdc,0x2e,0x05,0x8c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x49,0x40,0x2a,0xa5,0x06,0x01,0x86,0x06,0x96,0x06,0x02,0x57,0x06,0x01,0x6b,0x03,0x7b,0x03,0xab,0x03,0x03,0x59,0x03,0x01,0xab,0x02,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02, +0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xdb,0xfe,0x4c,0x72,0x01,0xb9,0x01,0x48,0x9c,0x04,0xf6,0xfe,0xe0,0xfc,0x2a,0x32,0x03,0xf5,0x01, +0x93,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x30,0x40,0x18,0x89,0x06,0x99,0x06,0xa9,0x06,0x03,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x02,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d, +0x21,0x23,0x11,0x23,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1,0x9c,0xf9,0xfe,0x6a,0x72,0x01,0xb9,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x04,0x40,0x01,0x48,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x57,0x40,0x33,0xb8,0x07,0x01,0x64,0x07,0x74,0x07,0x02,0xa0,0x06,0x01,0x74,0x06,0x84,0x06,0x94, +0x06,0x03,0x66,0x06,0x01,0xa2,0x05,0x01,0x84,0x05,0x94,0x05,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe2,0xfe,0x8f,0x72,0x01,0xb9,0x01,0x48,0x9c,0x02,0x8f,0x01,0x47,0xfc,0x2a,0x32,0x04,0x99,0xfe,0x88,0x02,0x67,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x66,0x40,0x3c,0x79,0x06,0x01,0x46,0x06,0x01, +0x15,0x06,0x35,0x06,0x02,0x03,0x07,0x06,0x01,0xa4,0x07,0x01,0x93,0x06,0xa3,0x06,0x02,0x02,0x80,0x06,0x01,0x74,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x87,0x05,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x01,0x5d,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd9,0xfe,0x98,0x72,0x01,0xc3,0x01,0x3e,0x9c,0x01,0x47,0x02,0x8f,0xfc,0x2a,0x32,0x04,0xf8,0xfd,0x45, +0x03,0x4b,0x00,0x01,0x00,0x24,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x5e,0x40,0x37,0x46,0x05,0x01,0x34,0x05,0x01,0x15,0x05,0x01,0x03,0xa6,0x06,0x01,0xa2,0x05,0x01,0x93,0x05,0x01,0x02,0x80,0x05,0x01,0x74,0x05,0x01,0xa4,0x04,0x01,0x92,0x04,0x01,0x74,0x04,0x84,0x04,0x02,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04, +0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5f,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x72,0x01, +0xcd,0x01,0x34,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x1c,0xfc,0x20,0x04,0x4c,0x00,0x00,0x01,0x00,0x24,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x3e,0x40,0x24,0x67,0x03,0x77,0x03,0x02,0x84,0x04,0x94,0x04,0xa4,0x04,0x03,0x8f,0x02,0x9f,0x02,0xaf,0x02,0x03,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00, +0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x35,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x72,0x01,0xba,0x9c,0x03,0xd6,0xfc,0x2a,0x32,0x05,0x26,0x62,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba, +0x00,0x06,0x00,0x39,0x40,0x21,0xa2,0x04,0x01,0x95,0x04,0x01,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x7b,0x02,0x01,0x59,0x02,0x69,0x02,0x02,0x05,0x02,0x06,0x08,0x03,0x04,0x02,0x06,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11, +0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x67,0x02,0xf6,0x9c,0x04,0xa5,0xfb,0x5b,0x4f,0x05,0x6b,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x5d,0x40,0x38,0x96,0x06,0x01,0x87,0x06,0x01,0x94,0x05,0xa4,0x05,0x02,0x76,0x05,0x86,0x05,0x02,0xad,0x03,0x01,0x8b,0x03,0x9b,0x03,0x02,0x59,0x03,0x69,0x03, +0x79,0x03,0x03,0x89,0x02,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21, +0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xf8,0xfe,0x69,0x67,0x01,0xae,0x01,0x48,0x9c,0x03,0xd6,0xfe,0xb9,0xfd,0x71,0x4f,0x02,0xab,0x01,0xaa,0x01,0x16,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x44,0x40,0x26,0xab,0x06,0x01,0x9e,0x06,0x01,0x8b,0x06,0x01,0x58,0x06,0x01,0xa5,0x04, +0x01,0x75,0x03,0x01,0x67,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21,0x11,0x33,0x03,0xc1, +0x9c,0xfe,0xee,0xfe,0x83,0x67,0x01,0xa4,0x01,0x52,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x02,0xdc,0x02,0x8f,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x67,0x40,0x3d,0x83,0x07,0x01,0x03,0x67,0x07,0x01,0x56,0x07,0x01,0xa3,0x06,0x01,0x02,0x90,0x06,0x01,0x74,0x06,0x84,0x06,0x02,0x56,0x06,0x01,0xa6,0x05,0x01, +0x94,0x05,0x01,0x76,0x05,0x86,0x05,0x02,0x68,0x03,0x01,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x02,0x06,0x03,0x02,0x03,0x02,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5f,0x5d,0x5d,0x5d,0x5f,0x5d,0x21,0x23,0x11,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xf0,0xfe,0x81,0x67,0x01,0xd1,0x01,0x25,0x9c,0x01,0x47,0x01,0x48,0xfd,0x71,0x4f,0x03,0x1f,0xfe,0x9d,0x03,0xaf,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x64,0x40,0x3d,0x36,0x05, +0x46,0x05,0x02,0x27,0x02,0x01,0x54,0x06,0x84,0x06,0x02,0x15,0x06,0x01,0x07,0x06,0x01,0x03,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x72,0x05,0x01,0x24,0x05,0x01,0x84,0x04,0x94,0x04,0x02,0xa9,0x02,0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32, +0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x5f,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe,0xa5,0x67,0x01,0xc5,0x01,0x31,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0xfd,0x85,0x04, +0x92,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x48,0x40,0x29,0xa6,0x03,0x01,0xa3,0x05,0x01,0x02,0x80,0x05,0x90,0x05,0x02,0x74,0x05,0x01,0x66,0x05,0x01,0x9b,0x02,0x01,0x8a,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5f,0x5d,0x01,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x67,0x01,0xaf,0x9c,0x02,0x8f,0xfd,0x71,0x4f,0x03,0x54,0x02,0x17,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x41, +0x40,0x23,0xa2,0x06,0x01,0x96,0x06,0x01,0x57,0x06,0x67,0x06,0x02,0x9a,0x03,0x01,0x88,0x03,0x01,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x04,0x05,0x06,0x03,0x03,0x00,0x02,0x08,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d, +0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x33,0x03,0xc1,0x9c,0xe1,0xfe,0x52,0x48,0x01,0x95,0x01,0x42,0x9c,0x04,0x38,0xfd,0x0f,0xfe,0xb9,0x7b,0x01,0x32,0x04,0x0d,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x47,0x40,0x26,0xa2,0x06,0x01,0x94,0x06,0x01,0x99,0x03,0xa9,0x03,0x02,0x58,0x03,0x68, +0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x06,0x03,0x07,0x02,0x03,0x02,0x03,0x02,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x03,0x01,0x27,0x01,0x01,0x35, +0x33,0x03,0xc1,0x9c,0xf5,0xfe,0x66,0x48,0x01,0x8f,0x01,0x48,0x9c,0x03,0xd6,0xfd,0x71,0xfe,0xb9,0x7b,0x01,0x2e,0x03,0x73,0x9e,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x07,0x00,0x35,0x40,0x1c,0x46,0x05,0x66,0x05,0x02,0xa6,0x04,0x01,0x97,0x04,0x01,0x6b,0x02,0x01,0x02,0x05,0x07,0x09,0x03,0x04,0x05,0x02, +0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x48,0x02,0xd7,0x9c,0x02,0x8f,0xfd,0x71,0x7b,0x02,0xce,0x02,0x71,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1, +0x05,0xba,0x00,0x09,0x00,0x32,0x40,0x19,0xa9,0x06,0x01,0x96,0x03,0xa6,0x03,0x02,0x06,0x03,0x05,0x02,0x07,0x09,0x0b,0x04,0x05,0x07,0x03,0x03,0x00,0x09,0x05,0x04,0x00,0x00,0x2f,0xc4,0x32,0x2f,0x12,0x39,0x2f,0xcd,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x21,0x01,0x27,0x01,0x21, +0x11,0x33,0x03,0xc1,0x9c,0xfe,0xe0,0xfe,0x91,0x48,0x01,0x99,0x01,0x3e,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x68,0x03,0xd7,0x00,0x01,0x00,0x4e,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x4b,0x40,0x2b,0x74,0x06,0x01,0x53,0x06,0x01,0x36,0x06,0x01,0xbb,0x05,0x01,0x74,0x05,0x01,0x87,0x04,0x97,0x04,0xa7,0x04,0x03,0x69,0x02, +0x01,0x02,0x05,0x04,0x01,0x06,0x08,0x0a,0x03,0x04,0x05,0x02,0x02,0x00,0x08,0x04,0x03,0x06,0x00,0x00,0x2f,0x32,0xc4,0x32,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x01,0x01,0x27,0x01,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xcc,0xfe, +0xa5,0x48,0x01,0xa7,0x01,0x30,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x7c,0xfe,0xcd,0x04,0xf6,0x00,0x01,0x00,0x4e,0x00,0x00,0x02,0x7a,0x05,0xba,0x00,0x07,0x00,0x31,0x40,0x19,0xb9,0x05,0x01,0x97,0x04,0xa7,0x04,0x02,0x02,0x05,0x07,0x09,0x03,0x00,0x04,0x01,0x04,0x05,0x02,0x02,0x00,0x07,0x04,0x03,0x00,0x00,0x2f,0xc4,0x32,0x2f, +0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x11,0x33,0x02,0x7a,0x9c,0xfe,0xb8,0x48,0x01,0x90,0x9c,0x01,0x47,0xfe,0xb9,0x7b,0x01,0x86,0x03,0xb9,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x08,0x00,0x36,0x40,0x1d,0xa9,0x06,0x01,0x76, +0x03,0x86,0x03,0x02,0xad,0x02,0x01,0x8f,0x02,0x9f,0x02,0x02,0x06,0x03,0x05,0x07,0x02,0x08,0x0a,0x05,0x02,0x08,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01, +0x47,0x01,0x48,0x9c,0x03,0xb6,0xfc,0x4a,0x9c,0x05,0x1e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2d,0x40,0x15,0x9b,0x02,0xab,0x02,0x02,0x06,0x03,0x04,0x07,0x02,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x05,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, +0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x35,0x33,0x03,0xc1,0x9c,0xfe,0xfe,0xfe,0x73,0x01,0x47,0x01,0x48,0x9c,0x03,0xd6,0xfc,0x2a,0x9c,0x04,0xd0,0x4e,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x2f,0x40,0x16,0xaf,0x02,0x01,0x99,0x02,0x01,0x06,0x03,0x04,0x02, +0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4,0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x03,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xee,0xfe,0x5f,0x01,0x5b,0x01,0x34,0x9c,0x02,0x8f,0xfd,0x71,0x9c,0x03,0x61,0x01, +0xbd,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x09,0x00,0x3b,0x40,0x1f,0x46,0x07,0x01,0x37,0x07,0x01,0x0b,0x07,0x01,0x8b,0x02,0x01,0x09,0x02,0x01,0x06,0x03,0x04,0x02,0x07,0x09,0x0b,0x04,0x07,0x02,0x02,0x00,0x09,0x06,0x03,0x00,0x00,0x2f,0xd4,0xcd,0x2f,0x12,0x39,0x2f,0x33,0x01,0x2f,0x10,0xde,0xdd,0xc4, +0x12,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x21,0x35,0x21,0x01,0x11,0x33,0x03,0xc1,0x9c,0xfe,0xd6,0xfe,0x9b,0x01,0x47,0x01,0x48,0x9c,0x01,0x47,0xfe,0xb9,0x9c,0x01,0x65,0x03,0xb9,0x00,0x01,0xff,0x54,0x05,0xc2,0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x2c,0xb1,0x03,0x00,0xb8,0x01,0x35,0x40,0x16, +0x05,0x04,0x01,0x02,0x01,0x12,0x01,0x22,0x01,0x52,0x01,0x04,0x01,0x02,0x18,0x1a,0x1e,0x48,0x00,0x03,0x84,0x02,0x2f,0xe1,0xc6,0x2b,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0xc4,0x31,0x30,0x01,0x20,0x03,0x23,0x12,0x21,0x02,0x6c,0xfe,0x44,0xba,0xa2,0xf0,0x02,0x28,0x06,0xc4,0xfe,0xfe,0x01,0x7e,0x00,0x00,0x01,0xff,0x54,0x05,0xc2, +0x02,0x6c,0x07,0x40,0x00,0x05,0x00,0x33,0xb2,0x00,0x80,0x03,0xb8,0x01,0x35,0x40,0x0f,0x04,0x05,0x02,0x0d,0x02,0x1d,0x02,0x2d,0x02,0x5d,0x02,0x04,0x02,0x03,0x01,0xb8,0xff,0xe8,0xb6,0x1a,0x1e,0x48,0x00,0x84,0x01,0x03,0x2f,0xd6,0xe1,0x2b,0x12,0x39,0x5d,0x11,0x33,0x00,0x2f,0xed,0x1a,0xcc,0x31,0x30,0x01,0x23,0x02,0x21,0x35, +0x20,0x02,0x6c,0xa1,0xba,0xfe,0x43,0x02,0x28,0x05,0xc2,0x01,0x02,0x7c,0x00,0x01,0xfd,0xa7,0x05,0xc2,0x00,0xc0,0x06,0xfa,0x00,0x0b,0x00,0x22,0xb2,0x06,0x80,0x02,0xbb,0x01,0x35,0x00,0x09,0x00,0x00,0x01,0x35,0xb2,0x0b,0x0b,0x06,0xb9,0x01,0x34,0x00,0x05,0x2f,0xe1,0xc4,0x00,0x2f,0xed,0xd5,0xed,0x1a,0xcd,0x31,0x30,0x13,0x24, +0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x05,0xc0,0xfe,0xb3,0x8d,0x58,0x70,0x77,0x01,0xb4,0x88,0x93,0x01,0x49,0x06,0x16,0x67,0x6b,0x50,0x88,0xb0,0x66,0x00,0x00,0x01,0xff,0x68,0x05,0xc8,0x02,0x32,0x07,0x00,0x00,0x0b,0x00,0x22,0xb2,0x05,0x80,0x02,0xbe,0x01,0x35,0x00,0x09,0x00,0x0b,0x01,0x35,0x00,0x00,0x00,0x06,0x01, +0x34,0xb1,0x05,0x0b,0x2f,0xd4,0xe1,0x00,0x2f,0xfd,0xd5,0xed,0x1a,0xcc,0x31,0x30,0x03,0x04,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x27,0x98,0x01,0x00,0x8a,0x58,0x72,0x76,0x02,0xb6,0x86,0x8e,0xfe,0x06,0x94,0x50,0x6c,0x50,0x86,0xb2,0x4f,0x00,0x03,0x00,0x60,0xfe,0x1e,0x06,0x1c,0x05,0xec,0x00,0x22,0x00,0x2f,0x00,0x37, +0x01,0x5d,0x40,0x2c,0x30,0x31,0x18,0x00,0x22,0x06,0x01,0x37,0x01,0x19,0x31,0x18,0x05,0x22,0x06,0x04,0x1a,0x04,0x30,0x19,0x31,0x18,0x31,0x05,0x00,0x22,0x06,0x22,0x0b,0x01,0x01,0xbb,0x01,0xcb,0x01,0xdb,0x01,0xfb,0x01,0x04,0x37,0x01,0x36,0x04,0xb8,0xff,0xe8,0x40,0x33,0x09,0x13,0x48,0x1a,0x04,0x03,0x1b,0x0a,0x18,0x01,0xea, +0x18,0xfa,0x18,0x02,0x03,0x18,0x18,0x09,0x13,0x48,0x31,0x18,0x32,0x15,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x02,0x06,0x18,0x09,0x14,0x48,0x22,0x06,0x21,0x08,0x1b,0x96,0x36,0x36,0x38,0x32,0x95,0x21,0xb8,0xff,0xc0,0x40,0x4f,0x17,0x1c,0x48,0x21,0x21,0x38,0x03,0x1c,0x15,0x00,0x13,0x08,0x0b,0x27,0x95,0x11,0x10,0x2d,0x95, +0x0b,0x16,0xb5,0x37,0x01,0x0b,0x37,0x01,0xfb,0x37,0x01,0x37,0x20,0x09,0x16,0x48,0x37,0x01,0x34,0x02,0x5b,0x1a,0x01,0x1a,0x40,0x09,0x1d,0x48,0x1a,0x04,0x1e,0x03,0xa0,0x31,0x01,0x0b,0x31,0x01,0xeb,0x31,0xfb,0x31,0x02,0x44,0x31,0x01,0x31,0x18,0x34,0x16,0xa0,0x22,0x01,0xc3,0x22,0x01,0x22,0x1e,0x23,0x02,0xba,0x01,0x2c,0x00, +0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x23,0x34,0xb8,0x01,0x2c,0x40,0x14,0xa0,0x1e,0xd0,0x1e,0x02,0x1e,0x1e,0x16,0x84,0x15,0x06,0x07,0x15,0x03,0x23,0x23,0x39,0x2a,0x83,0x0e,0x2f,0xe1,0x12,0x39,0x2f,0x17,0x33,0x10,0xf1,0xc0,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0x2b,0x2b,0xe1,0x11, +0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x71,0x5d,0x71,0x5d,0x11,0x12,0x39,0x39,0x2b,0x71,0x11,0x12,0x39,0x39,0x2b,0x5d,0x71,0x5d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39,0x2b,0x5f,0x5d,0x71,0x11,0x12,0x39, +0x39,0x2b,0x11,0x39,0x39,0x5d,0x71,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x38,0x0f,0x02,0x91,0x07,0x27,0x58,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x13,0x67,0x97,0x6f,0x8c,0xa2,0x80,0x70,0xfe,0xe2,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0xab,0x01,0x02,0x3c, +0x50,0x92,0x70,0x6a,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x9a,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfa,0x28,0x4e,0x41,0x7b,0x75,0x5c,0x5f,0x7e,0x03,0x7d,0x97,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0xc6,0xfd,0xd2,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x03,0x56,0x05,0xec,0x00,0x15,0x00,0x1d,0x01,0x0f, +0x40,0x37,0x16,0x17,0x0b,0x00,0x15,0x06,0x01,0x1d,0x01,0x0c,0x17,0x0b,0x05,0x15,0x06,0x04,0x0d,0x04,0x16,0x0c,0x17,0x0b,0x17,0x05,0x00,0x15,0x06,0x15,0xbb,0x01,0xcb,0x01,0xdb,0x01,0x03,0x1d,0x01,0x1c,0x0d,0x0b,0x01,0xed,0x0b,0xfd,0x0b,0x02,0x0a,0x0b,0x01,0x0b,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x1b,0x09,0x13, +0x48,0x0d,0x06,0x01,0xed,0x06,0xfd,0x06,0x02,0x04,0x06,0x0b,0x0d,0x04,0x03,0x0e,0x96,0x1c,0x1c,0x1e,0x17,0x18,0x95,0x15,0x14,0xb8,0xff,0xc0,0x40,0x34,0x17,0x1c,0x48,0x14,0x14,0x1e,0x03,0x08,0x00,0x03,0x1c,0xa0,0x17,0x01,0x15,0x17,0x01,0x17,0x0b,0x1a,0x0a,0xa0,0x15,0x01,0xc3,0x15,0x01,0x15,0x06,0x11,0x07,0xb5,0x1d,0x01, +0x1d,0x20,0x09,0x16,0x48,0x1d,0x01,0x1a,0x02,0x0d,0x40,0x09,0x1d,0x48,0x0d,0x04,0x11,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x1a,0xb8,0x01,0x2c,0x40,0x0a,0xa0,0x11,0xd0,0x11,0x02,0x11,0x11,0x0a,0x84,0x07,0x2f,0xf1,0xc0,0x2f,0x5d,0xe1,0x12,0x39, +0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x3f,0x3f,0x11,0x12,0x39,0x2f,0x2b,0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x5d,0x71,0x2b,0x2b,0x5d,0x5d,0x71,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0, +0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01,0x70,0x0e,0x02,0x91,0x07,0x28,0x58,0xa4,0x12,0x67,0x97,0x72,0x8a,0xa4,0x7f,0x6f,0x1c,0x3b, +0x50,0x91,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x05,0xd8,0xfa,0x28,0x4e,0x41,0x7b,0x76,0x5b,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x06,0x04,0x04,0x18,0x00,0x24,0x00,0x2c,0x01,0x33,0x40,0x4c,0x25,0x26,0x1a,0x00,0x24,0x06,0x01,0x2c,0x01,0x1b,0x26,0x1a,0x05,0x24,0x06,0x04,0x1c,0x04, +0x25,0x1b,0x26,0x1a,0x26,0x05,0x00,0x24,0x06,0x24,0xb9,0x01,0xc9,0x01,0xd9,0x01,0x03,0x2c,0x01,0x03,0x2b,0x26,0x27,0x1a,0x0e,0x06,0x01,0xae,0x06,0xee,0x06,0xfe,0x06,0x03,0x02,0x24,0x06,0x23,0x0a,0x0d,0x1a,0x01,0xed,0x1a,0xfd,0x1a,0x02,0x0a,0x1a,0x5a,0x1a,0x02,0x1a,0x18,0x10,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09, +0x13,0x48,0x04,0x1a,0x1c,0x03,0x03,0x1d,0x96,0x2b,0x2b,0x2d,0x27,0x95,0x23,0xb8,0xff,0xc0,0x40,0x39,0x17,0x1c,0x48,0x23,0x23,0x2d,0x03,0x1c,0x13,0x0a,0x95,0x15,0x10,0x11,0x0f,0x0e,0xa0,0x26,0x01,0x15,0x26,0x01,0x26,0x1a,0x29,0x18,0xa0,0x24,0x01,0xc3,0x24,0x01,0x24,0x06,0x20,0x08,0xb5,0x2c,0x01,0x2c,0x20,0x09,0x16,0x48, +0x2c,0x01,0x29,0x02,0x1c,0x40,0x09,0x1d,0x48,0x1c,0x04,0x20,0x02,0xba,0x01,0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x08,0x29,0xb8,0x01,0x2c,0x40,0x10,0xa0,0x20,0xd0,0x20,0x02,0x20,0x20,0x18,0x84,0x08,0x08,0x2e,0x11,0x0e,0x84,0x0f,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b,0x2b,0xe1,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11, +0x12,0x39,0x11,0x12,0x39,0x39,0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x04,0x1e,0x0e,0x02,0x91,0x07,0x28,0x58,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x12,0x67,0x97,0x70,0x8c,0xa4,0x7e,0x70,0x1c,0x3b,0x51,0x90,0x6e,0x6b,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x02,0x34,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2, +0xd9,0xcd,0xfd,0xa2,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x02,0x00,0x2b,0xfe,0x1e,0x03,0x8c,0x05,0x2f,0x00,0x1d,0x00,0x25,0x01,0x39,0x40,0x48,0x1e,0x13,0x1f,0x00,0x06,0x1d,0x01,0x25,0x01,0x14,0x13,0x1f,0x05,0x06,0x1d,0x04,0x15,0x04,0x1e,0x14,0x13,0x1f,0x13,0x05,0x00,0x06,0x1d,0x06,0xb9,0x01, +0xc9,0x01,0xd9,0x01,0x03,0x25,0x01,0x03,0x24,0x0e,0x06,0x01,0xee,0x06,0xfe,0x06,0x02,0x02,0x1d,0x06,0x1c,0x08,0x1f,0x20,0x13,0x0d,0x13,0x01,0xed,0x13,0xfd,0x13,0x02,0x0a,0x13,0x01,0x13,0x18,0x0e,0x13,0x48,0x04,0xb8,0xff,0xe8,0x40,0x10,0x09,0x13,0x48,0x04,0x13,0x15,0x03,0x03,0x16,0x96,0x24,0x24,0x26,0x20,0x95,0x1c,0xb8, +0xff,0xc0,0x40,0x3a,0x17,0x1c,0x48,0x1c,0x1c,0x26,0x03,0x1c,0x0d,0x0e,0x11,0x08,0x95,0x0e,0x0b,0x0f,0xb5,0x25,0x01,0x25,0x20,0x09,0x16,0x48,0x25,0x01,0x22,0x02,0x15,0x40,0x09,0x1d,0x48,0x15,0x04,0x19,0x03,0xa0,0x1f,0x01,0x15,0x1f,0x01,0x1f,0x13,0x22,0x12,0xa0,0x1d,0x01,0xc3,0x1d,0x01,0x1d,0x06,0x19,0x07,0x02,0xba,0x01, +0x2c,0x00,0x03,0xff,0xc0,0xb3,0x17,0x25,0x48,0x03,0xb8,0xff,0xc0,0xb6,0x09,0x13,0x48,0x03,0x03,0x07,0x22,0xb8,0x01,0x2c,0x40,0x13,0xa0,0x19,0xd0,0x19,0x02,0x19,0x19,0x12,0x0f,0x0f,0x27,0x0e,0x0a,0x0b,0x0e,0x12,0x84,0x0b,0x07,0x2f,0x33,0xe1,0x32,0x10,0xcd,0x11,0x12,0x39,0x2f,0x10,0xc0,0x2f,0x5d,0xe1,0x12,0x39,0x2f,0x2b, +0x2b,0xe1,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d,0x11,0x12,0x39,0x39,0x2b,0x11,0x12,0x39,0x39,0x2b,0x5d,0x00,0x3f,0x33,0xed,0x32,0x10,0xcd,0x3f,0x12,0x39,0x2f,0x2b,0xed,0x11,0x39,0x2f,0xed,0x11,0x17,0x39,0x2b,0x2b,0x5d,0x5d,0x71,0x11,0x12,0x39,0x11,0x12,0x39,0x39,0x5f,0x5d,0x71,0x11,0x12,0x39,0x39, +0x5d,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x0e,0xc0,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x01, +0xa6,0x0e,0x02,0x92,0x08,0x27,0x58,0xb0,0xb0,0xa4,0x01,0x02,0xfe,0xfe,0x13,0x66,0x98,0x6f,0x8d,0xa4,0x80,0x6f,0x1c,0x3b,0x50,0x92,0x6e,0x6c,0xfe,0x85,0x40,0x27,0x66,0x64,0x78,0xb4,0x03,0x60,0x8c,0xfa,0x35,0xfe,0xd1,0x8c,0xfc,0xa0,0x4e,0x41,0x7b,0x75,0x5c,0x5e,0x7f,0xb8,0x2f,0x54,0x4c,0x00,0x00,0x01,0xff,0xdb,0xfe,0x23, +0x04,0x16,0x04,0x18,0x00,0x19,0x00,0x31,0x40,0x1a,0x18,0x0f,0x0c,0x0a,0x95,0x0f,0x10,0x01,0x1c,0x03,0x14,0x95,0x05,0x16,0x19,0x84,0x01,0x18,0x18,0x1b,0x11,0x84,0x08,0x08,0x1b,0x0c,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x20, +0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x04,0x16,0xa4,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xfe,0x23,0x02,0x87,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0x00,0x00,0x01, +0xff,0xdb,0xfe,0x1e,0x05,0x27,0x04,0x18,0x00,0x22,0x00,0x38,0x40,0x1e,0x22,0x20,0x95,0x02,0x1c,0x1c,0x0f,0x10,0x0e,0x95,0x13,0x10,0x07,0x18,0x95,0x09,0x16,0x22,0x1d,0x84,0x05,0x1c,0x1c,0x24,0x15,0x84,0x0c,0x0c,0x24,0x10,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0xe1,0xc4,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f, +0xed,0x32,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x05,0x27,0x40,0x43,0x92,0xa0,0x04,0x76,0xda,0xfe,0xa6,0x80,0x38,0x31,0x46,0x43,0x01,0x04,0xea,0x7a,0xa6,0xa4,0xa0,0x3c,0x35, +0xfe,0x3a,0x1c,0xaf,0x9f,0x01,0x3e,0xc2,0x01,0xa1,0x01,0x54,0xb1,0x1e,0x8c,0x1c,0xfe,0xd0,0xfe,0xca,0xfe,0xc0,0xbb,0x8f,0x02,0x44,0xfb,0x72,0xc8,0x1a,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x05,0x80,0x30,0x06,0x40,0x06,0x50,0x06,0x03,0x06,0x03,0xc0,0x06,0x2f,0x1a,0xcc,0x00,0x2f, +0x5d,0x1a,0xcd,0x31,0x30,0x17,0x17,0x37,0x33,0x03,0x23,0x03,0xf0,0x64,0x64,0x6a,0xb4,0x34,0xb5,0x48,0xaa,0xaa,0xfe,0xe8,0x01,0x18,0x00,0x01,0x00,0x85,0xfe,0xa0,0x02,0x22,0xff,0xb8,0x00,0x06,0x00,0x19,0x40,0x0d,0x01,0x80,0x30,0x02,0x40,0x02,0x50,0x02,0x03,0x02,0x04,0xc0,0x01,0x2f,0x1a,0xcc,0x00,0x2f,0x5d,0x1a,0xcd,0x31, +0x30,0x13,0x23,0x13,0x33,0x13,0x23,0x27,0xf0,0x6b,0xb5,0x34,0xb4,0x6a,0x64,0xfe,0xa0,0x01,0x18,0xfe,0xe8,0xaa,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x01,0x01,0x01,0x04,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x01,0x15,0x25,0x35,0x25,0x15,0x07,0x01,0xe0,0xfe, +0xe8,0x01,0x18,0xaa,0xfe,0xc8,0x6a,0xb4,0x34,0xb5,0x6b,0x64,0x00,0x01,0x00,0xc8,0xfe,0x5e,0x01,0xe0,0xff,0xfb,0x00,0x06,0x00,0x12,0xb7,0x30,0x06,0x01,0x06,0x03,0x05,0x80,0x02,0x2f,0x1a,0xcd,0x00,0x2f,0xce,0x5d,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0xc8,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0xfe,0xc8,0x64,0x64,0x6b,0xb5, +0x34,0xb4,0x00,0x02,0x00,0x87,0xfe,0x2d,0x02,0x23,0xff,0xb2,0x00,0x0b,0x00,0x16,0x00,0x2f,0x40,0x1c,0x11,0xc5,0x40,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x8f,0x00,0x04,0x00,0x80,0x0c,0xc5,0x40,0x4f,0x06,0x01,0x06,0x09,0xc4,0x14,0x80,0x0f,0xc4,0x03,0x2f,0xe1,0x1a,0xdc,0xe1,0x00,0x2f,0x5d,0x1a,0xfd,0x1a,0xdc,0x5d,0x1a,0xed,0x31, +0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x52,0x59,0x72,0x76,0x5b,0x59,0x72,0x7b,0x56,0x31,0x3f,0x70,0x31,0x41,0x41,0xfe,0x2d,0x6b,0x54,0x57,0x6f,0x6c,0x54,0x54,0x71,0x01,0x33,0x40,0x30,0x71,0x41,0x30,0x30,0x40,0x00,0xff,0xff,0x00,0x52, +0x01,0x74,0x01,0xd7,0x02,0xbc,0x02,0x07,0x00,0x43,0x00,0x00,0xfc,0xb2,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x70,0x02,0xbd,0x00,0x07,0x04,0x6e,0x01,0x4b,0xfc,0xbd,0xff,0xff,0x00,0x28,0x01,0x7f,0x02,0x6f,0x02,0xbd,0x00,0x07,0x00,0xde,0xff,0xe8,0xfc,0xbd,0xff,0xff,0x00,0x23,0x01,0x9e,0x02,0xa4,0x02,0x9e,0x00,0x07,0x00,0xd8, +0x00,0x00,0xfc,0xec,0xff,0xff,0x00,0xad,0x01,0x8e,0x01,0x8d,0x05,0xba,0x00,0x07,0x00,0x1d,0x00,0x3d,0x01,0xa4,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x1b,0xb1,0x02,0x01,0xb8,0x01,0x33,0xb4,0x04,0x04,0x00,0x00,0x02,0xb9,0x01,0x32,0x00,0x03,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x01, +0x21,0x11,0x23,0x11,0x21,0x02,0x12,0xfe,0xf0,0x6a,0x01,0x7a,0x05,0x52,0xfe,0xf0,0x01,0x78,0x00,0x01,0x00,0x98,0x04,0x42,0x02,0x12,0x05,0xba,0x00,0x05,0x00,0x19,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb2,0x02,0x04,0x02,0xb8,0x01,0x32,0xb1,0x05,0x00,0x2f,0xdd,0xe1,0x00,0x3f,0xfd,0xcd,0x31,0x30,0x13,0x35,0x21,0x11,0x23,0x11,0x98, +0x01,0x7a,0x6a,0x05,0x52,0x68,0xfe,0x88,0x01,0x10,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x1a,0xb1,0x04,0x05,0xb8,0x01,0x33,0xb3,0x02,0x00,0x00,0x05,0xb9,0x01,0x32,0x00,0x02,0x2f,0xf1,0xc1,0x2f,0x00,0x2f,0xfd,0xcd,0x31,0x30,0x25,0x15,0x21,0x11,0x33,0x11,0x02,0x12,0xfe,0x86,0x6a,0x68,0x68,0x01, +0x79,0xfe,0xef,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x02,0x12,0x01,0x79,0x00,0x05,0x00,0x18,0xb1,0x02,0x00,0xbb,0x01,0x33,0x00,0x05,0x00,0x03,0x01,0x32,0xb1,0x01,0x05,0x2f,0xdd,0xe1,0x00,0x2f,0xfd,0xc6,0x31,0x30,0x37,0x21,0x11,0x33,0x11,0x21,0x98,0x01,0x10,0x6a,0xfe,0x86,0x68,0x01,0x11,0xfe,0x87,0x00,0x00,0x01,0xff,0xf0, +0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x07,0x00,0x31,0xb9,0x00,0x04,0x01,0x33,0x40,0x0d,0x40,0x01,0x80,0x06,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x07,0xb8,0x01,0x32,0xb3,0x06,0x06,0x09,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x2f,0x5d,0x33,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15, +0x21,0x35,0x33,0x02,0xba,0xfd,0x36,0x69,0x01,0xf8,0x69,0xfe,0x5c,0x01,0x2d,0xc5,0xc5,0x00,0x00,0x01,0xff,0xf2,0xfe,0x5c,0x02,0xba,0xff,0x89,0x00,0x05,0x00,0x27,0xb9,0x00,0x04,0x01,0x33,0x40,0x0e,0x40,0x01,0x80,0x0f,0x02,0x1f,0x02,0x2f,0x02,0x03,0x02,0x05,0x07,0x03,0xb9,0x01,0x32,0x00,0x02,0x2f,0xe1,0x10,0xc6,0x00,0x2f, +0x5d,0x1a,0xdd,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x15,0x21,0x02,0xba,0xfd,0x38,0x68,0x02,0x60,0xfe,0x5c,0x01,0x2d,0xc5,0x00,0x00,0x01,0x00,0x3a,0xfe,0x5c,0x02,0x6e,0x00,0xa0,0x00,0x09,0x00,0x4b,0x40,0x2f,0x4f,0x02,0xcf,0x02,0x02,0x02,0x01,0x40,0x07,0xc0,0x07,0x02,0x07,0x01,0xdb,0x08,0x01,0x08,0x08,0x20,0x09,0x0c, +0x48,0x08,0x05,0x02,0x42,0x4f,0x07,0x01,0x07,0x40,0x16,0x19,0x48,0x07,0x07,0x05,0x0f,0x09,0x1f,0x09,0x02,0x09,0x09,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x5d,0x12,0x39,0x2f,0x2b,0x5d,0xe0,0x12,0x39,0x2b,0x11,0x33,0x00,0x2f,0xed,0xcd,0x5d,0x10,0xcd,0x5d,0x31,0x30,0x05,0x21,0x17,0x23,0x03,0x35,0x13,0x33,0x07,0x21,0x02,0x6e,0xfe, +0x4a,0xa8,0x5e,0xc8,0xc6,0x5e,0xa6,0x01,0xb6,0xb0,0xf4,0x01,0x1b,0x0e,0x01,0x1b,0xf4,0x00,0x00,0x01,0xff,0x74,0x04,0xba,0x00,0x8c,0x06,0x58,0x00,0x06,0x00,0x1a,0x40,0x0b,0x02,0x00,0x06,0xc0,0x03,0x03,0x02,0x00,0x05,0x80,0x06,0x2f,0x1a,0xcd,0x00,0x3f,0x33,0x2f,0x1a,0xce,0x39,0x39,0x31,0x30,0x03,0x37,0x27,0x35,0x05,0x15, +0x05,0x8c,0xaa,0xaa,0x01,0x18,0xfe,0xe8,0x05,0x25,0x65,0x64,0x6a,0xb5,0x33,0xb6,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x20,0x40,0x0f,0x07,0xcb,0x40,0x06,0xc0,0x0b,0xcb,0x40,0x00,0x00,0x06,0x80,0x09,0xc9,0x03,0x2f,0xe1,0x1a,0xcc,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x13,0x22, +0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x15,0x14,0x33,0x5a,0x4d,0x67,0x66,0x4e,0x5e,0x5e,0x04,0x98,0x68,0x4e,0x4c,0x6a,0x5e,0x58,0x5a,0x00,0x02,0xfe,0xee,0x04,0xc2,0x01,0x12,0x06,0x68,0x00,0x0c,0x00,0x18,0x00,0x2f,0x40,0x18,0x0a,0xdb,0x04,0x01,0x06,0x06,0x0d,0xc1,0x40,0x13,0x00,0xc4,0x01,0x0e,0x10,0x06,0x16,0x42,0x06,0xc4, +0x07,0x10,0xc0,0x16,0x2f,0xe1,0xd6,0xe1,0x2b,0x01,0x10,0xf2,0xe1,0x00,0x18,0x2f,0x1a,0xed,0x32,0x2f,0x33,0xde,0xed,0x31,0x30,0x01,0x23,0x26,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x01,0x12,0x66,0x09,0x61,0x44,0xa0,0x0c,0x64,0x04,0x95,0x75,0x71,0x9b, +0xfe,0xf8,0x29,0x39,0x39,0x29,0x28,0x3a,0x38,0x05,0x6c,0x48,0x54,0x9c,0x72,0x8a,0x8a,0x59,0x39,0x29,0x29,0x38,0x38,0x29,0x28,0x3a,0x00,0x01,0xff,0x30,0xfd,0xfe,0x00,0xd2,0xff,0xa1,0x00,0x0b,0x00,0xa5,0x40,0x17,0x01,0x42,0x05,0x03,0x02,0x03,0x06,0x09,0x0b,0x00,0x03,0x08,0x56,0x06,0x01,0xd4,0x06,0xe4,0x06,0xf4,0x06,0x03, +0x06,0xb8,0xff,0xe0,0x40,0x42,0x09,0x0c,0x48,0x59,0x08,0x01,0xdb,0x08,0xeb,0x08,0xfb,0x08,0x03,0x08,0x20,0x09,0x0c,0x48,0x08,0x06,0x04,0x0a,0x04,0x0f,0x07,0x1f,0x07,0x2f,0x07,0xcf,0x07,0x04,0x07,0x0a,0x42,0x02,0x00,0x0b,0x03,0x03,0x06,0x08,0x09,0x03,0x05,0x29,0x03,0x59,0x03,0x02,0x03,0x20,0x15,0x1a,0x48,0x03,0x20,0x09, +0x0c,0x48,0x26,0x05,0x56,0x05,0x02,0x05,0xb8,0xff,0xe0,0xb3,0x15,0x1a,0x48,0x05,0xb8,0xff,0xe0,0x40,0x09,0x09,0x0c,0x48,0x05,0x03,0x07,0x01,0x04,0x04,0xb8,0xff,0xe0,0xb3,0x17,0x1b,0x48,0x04,0x19,0x2f,0x2b,0x17,0x33,0x2b,0x2b,0x71,0x2b,0x2b,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0xe1,0x00,0x2f,0x5d,0x17,0x33,0x2b,0x5d,0x71, +0x2b,0x5d,0x71,0x11,0x17,0x33,0x11,0x17,0x33,0x18,0xe5,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0xd2,0x85,0x85,0x4c,0x86,0x85,0x4b,0x85,0x85,0x4c,0x86,0x85,0xaa,0x86,0x84,0x4e,0x86,0x86,0x4c,0x85,0x85,0x4d,0x85,0x85,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x46, +0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x74,0xfe,0x5e,0x00,0x8c,0xff,0xfb,0x00,0x07,0x07,0x47,0xfe,0xac,0x00,0x00,0x00,0x02,0xfe,0xa1,0xfe,0x5e,0x01,0x5f,0xff,0xfb,0x00,0x06,0x00,0x0d,0x00,0x35,0x40,0x1e,0x07,0x09,0x80,0x0f,0x0b,0x1f,0x0b,0x2f,0x0b,0x03,0x0b,0x0e,0x40,0x0f,0x06,0x1f,0x06,0x2f,0x06,0x03,0x06,0x03,0x0d,0xc0, +0x0a,0x0a,0x02,0x06,0x80,0x05,0x2f,0x1a,0xcd,0x32,0x33,0x2f,0x1a,0xcc,0x00,0x2f,0xce,0x5d,0x1a,0x10,0xde,0x5d,0x1a,0xcd,0x32,0x31,0x30,0x01,0x37,0x27,0x35,0x05,0x15,0x05,0x25,0x27,0x07,0x23,0x13,0x33,0x13,0xfe,0xa1,0xaa,0xaa,0x01,0x19,0xfe,0xe7,0x02,0x53,0x64,0x64,0x6a,0xb5,0x33,0xb5,0xfe,0xc8,0x64,0x64,0x6b,0xb5,0x34, +0xb4,0x2e,0xa9,0xa9,0x01,0x18,0xfe,0xe8,0x00,0x01,0xff,0xa6,0x04,0x98,0x00,0x5a,0x06,0x04,0x00,0x0b,0x00,0x22,0x40,0x10,0x05,0xcb,0x40,0x06,0xc0,0x01,0xcb,0x40,0x00,0x00,0x06,0x06,0x80,0x09,0xc9,0x03,0x2f,0xf1,0x1a,0xc8,0x2f,0x32,0x00,0x2f,0x1a,0xed,0x1a,0xde,0x1a,0xed,0x31,0x30,0x03,0x35,0x32,0x35,0x34,0x23,0x35,0x32, +0x16,0x15,0x14,0x06,0x5a,0x5e,0x5e,0x4d,0x67,0x67,0x04,0x98,0x5c,0x5a,0x58,0x5e,0x69,0x4d,0x4e,0x68,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x07,0x40,0x00,0x09,0x00,0x23,0x40,0x11,0x09,0x05,0x07,0xda,0x40,0x02,0x00,0x84,0x09,0x0e,0x0a,0x05,0x0a,0x42,0x05,0x84,0x04,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x00,0x18,0x2f,0x1a, +0xed,0xc4,0x32,0x31,0x30,0x01,0x02,0x21,0x20,0x03,0x33,0x12,0x21,0x20,0x13,0x03,0x1a,0xf0,0xfd,0xd6,0xfd,0xd6,0xf0,0xa2,0xba,0x01,0xbd,0x01,0xbf,0xba,0x07,0x40,0xfe,0x82,0x01,0x7e,0xfe,0xfe,0x01,0x02,0x00,0x01,0xfc,0xe6,0x05,0xc2,0x03,0x1a,0x06,0x58,0x00,0x03,0x00,0x19,0x40,0x0b,0x02,0x91,0x40,0x01,0x00,0x0e,0x04,0x04, +0x01,0x42,0x01,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0x05,0xc2,0x96,0x00,0x01,0xfc,0xe6,0xfe,0x70,0x03,0x1a,0xff,0x04,0x00,0x03,0x00,0x19,0x40,0x0b,0x01,0x91,0x40,0x02,0x03,0x0e,0x04,0x02,0x04,0x42,0x02,0x2f,0x2b,0x01,0x10,0xe2,0x00,0x18,0x2f,0x1a, +0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1a,0xf9,0xcc,0x06,0x34,0xfe,0x70,0x94,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0xec,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x06,0x00,0xed,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x07,0x00,0x0f,0x00,0x3c, +0x40,0x1e,0x0a,0x07,0x01,0x02,0x08,0x0c,0x01,0x0c,0x0f,0x03,0x04,0x0c,0x04,0x08,0x95,0x02,0x02,0x01,0x07,0x0f,0x04,0x01,0x15,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x01,0x5d,0x21,0x23,0x03,0x21, +0x03,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x03,0xb6,0xb4,0x58,0xfe,0x66,0x56,0xb0,0x01,0x75,0xc3,0x3b,0x87,0x02,0x12,0x07,0x05,0x10,0x88,0x01,0x02,0xfe,0xfe,0x04,0x00,0xfd,0x8e,0x01,0x8c,0x06,0x4e,0x1a,0x3a,0xfe,0x74,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0xe4,0x04,0x00,0x00,0x0f,0x00,0x13,0x00,0x5e, +0x40,0x31,0x13,0x03,0x04,0x12,0x04,0x0c,0x95,0x40,0x0b,0x07,0x00,0x0b,0x95,0x1a,0x30,0x10,0x95,0x02,0x02,0x00,0x11,0x08,0x95,0x07,0x0f,0x04,0x0f,0x95,0x00,0x12,0x06,0x06,0x01,0x14,0x08,0x0c,0x00,0x00,0x15,0x10,0x0a,0x0e,0x84,0x01,0x01,0x15,0x14,0x04,0x05,0x2f,0x33,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x11,0x33,0x2f,0xc4, +0xc4,0x11,0x12,0x39,0x2f,0x33,0x00,0x2f,0xed,0xc4,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23,0x03,0x04,0xe4,0xfd,0xb6,0xfe,0xa2,0x82,0xba,0x02,0x23,0x02,0xaa,0xfe,0x6f, +0x01,0x74,0xfe,0x8c,0x01,0xa8,0xfd,0xb6,0x1d,0xfa,0x01,0x02,0xfe,0xfe,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x01,0x02,0x01,0xe6,0xfe,0x1a,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x50,0x04,0x18,0x00,0x23,0x00,0x2e,0x00,0x35,0x00,0x71,0x40,0x1d,0x16,0x40,0x0b,0x0e,0x48,0x16,0x16,0x14,0x24,0x00,0x11,0x95,0x2f,0x2f,0x0c,0x14, +0x95,0x19,0x10,0x2b,0x95,0x1e,0x10,0x09,0x33,0x95,0x0c,0x16,0x04,0xb8,0xff,0xd0,0x40,0x1a,0x09,0x0c,0x48,0x04,0x02,0x95,0x07,0x16,0x05,0x05,0x21,0x83,0x28,0x28,0x37,0x00,0x09,0x1c,0x2f,0x04,0x24,0x83,0x11,0x11,0x37,0x17,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x17,0x30,0x83,0x0f,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17, +0x39,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x11,0x39,0x2f,0x2b,0x31,0x30,0x01,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x33,0x32,0x16, +0x15,0x10,0x05,0x25,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x07,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0xcb,0xd7,0xb1,0x9b,0x94,0xc8,0xee,0x42,0x04,0x73,0xf1,0xca,0xde,0x02,0xd3,0x03,0xb0,0x99,0xaf,0x90,0x84,0xe2,0x01,0x0a,0x77,0x04,0x8d,0xf6,0x99,0xaf,0xfe,0x81,0xfe,0xfa,0xcd,0x85,0x8d,0x6a,0x5a,0x78,0xa3,0xa6, +0xfd,0xd5,0x02,0x85,0x77,0x74,0xa6,0x01,0x9c,0xfe,0xd6,0x7a,0xa4,0x60,0xc6,0xc6,0x01,0x05,0xe8,0x54,0xab,0xba,0x72,0x9a,0x62,0xe0,0xe0,0xa1,0x87,0xfe,0xd2,0x16,0x7d,0x0a,0x06,0x52,0x61,0x49,0x59,0xab,0x85,0xc0,0x90,0x9c,0xa4,0x00,0x00,0x03,0x00,0x3e,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x48, +0x40,0x27,0x01,0x12,0x15,0x1c,0x04,0x08,0x95,0x0b,0x0b,0x1d,0x14,0x95,0x0c,0x0f,0x1d,0x95,0x07,0x15,0x12,0x01,0x19,0x83,0x10,0x10,0x03,0x20,0x00,0x00,0x03,0x83,0x20,0x20,0x25,0x15,0x0b,0x1d,0x84,0x09,0x07,0x2f,0xce,0xe1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed, +0x12,0x39,0x2f,0xed,0x17,0x39,0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x33,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x26,0x23,0x03,0x92,0x7e,0x6b,0xc4,0xab,0xfe,0x96,0x68,0x68,0x01,0x5e,0x99,0xb5,0x60,0xa0,0xfd,0xb6,0xac,0x54, +0x64,0xb8,0xac,0xba,0xd7,0x7b,0x64,0x01,0xcb,0x37,0x78,0x7f,0x9d,0x01,0xcb,0x8b,0x01,0xaa,0x8a,0x70,0x75,0x3b,0x01,0x1e,0xfe,0xe2,0x51,0x47,0x86,0xfe,0x57,0xfe,0xc1,0x99,0x4c,0x5a,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x04,0x06,0x04,0x00,0x00,0x07, +0x00,0x0e,0x00,0x1f,0x40,0x10,0x08,0x95,0x01,0x0f,0x09,0x95,0x00,0x15,0x04,0x83,0x0c,0x0c,0x10,0x09,0x84,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x20,0x11,0x10,0x21,0xa6,0x01,0x40,0x02,0x20,0xfe,0xd5,0xfc,0x97,0x8f,0x01,0x89,0xfe,0x7b, +0x04,0x00,0xfe,0x0a,0xeb,0xfe,0xe1,0x03,0x74,0xfd,0x18,0x01,0x7a,0x01,0x6e,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x04,0x10,0x04,0x00,0x00,0x0b,0x00,0x16,0x00,0x3f,0x40,0x22,0x10,0x0d,0x01,0x95,0x40,0x04,0x05,0x00,0x04,0x95,0x1a,0x30,0x0c,0x95,0x05,0x0f,0x11,0x95,0x00,0x15,0x0f,0x0f,0x11,0x08,0x83,0x14,0x14,0x18,0x0d,0x04, +0x11,0x84,0x02,0x00,0x2f,0xc6,0xe1,0x39,0x39,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x11,0x14,0x00,0x23,0x03,0x11,0x33,0x15,0x23,0x11,0x33,0x20,0x11,0x10,0x21,0xb0,0x74,0x74,0x01,0x40,0x02,0x20,0xfe,0xd6,0xfc, +0x98,0xec,0xec,0x90,0x01,0x88,0xfe,0x7c,0x01,0xba,0x8c,0x01,0xba,0xfe,0x0a,0xea,0xfe,0xe0,0x03,0x74,0xfe,0xd2,0x8c,0xfe,0xd2,0x01,0x7a,0x01,0x6e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x02,0xf0,0x04,0x00,0x00,0x0b,0x00,0x32,0x40,0x1b,0x08,0x95,0x40,0x07,0x03,0x00,0x07,0x95,0x1a,0x30,0x04,0x95,0x03,0x0f,0x0b,0x95,0x00,0x15, +0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0x84,0x01,0x2f,0xe1,0x39,0x11,0x33,0x2f,0xc4,0xc4,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x02,0xf0,0xfd,0xb6,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x04,0x00,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0, +0x00,0x01,0x00,0x5a,0xff,0xe8,0x02,0xec,0x04,0x18,0x00,0x22,0x00,0x3e,0x40,0x20,0x01,0x12,0x95,0x13,0x13,0x1e,0x0b,0x1b,0x19,0x95,0x1e,0x10,0x09,0x0b,0x95,0x06,0x16,0x00,0x21,0x12,0x0e,0x83,0x03,0x03,0x21,0x83,0x16,0x16,0x24,0x12,0x08,0x1b,0x2f,0xc6,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xfd, +0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x10,0xbb,0xca,0xa3,0x82,0x68,0x6e,0x7c,0x5a,0x6d,0x8c,0x78,0x50,0x52,0x01,0x21, +0x7e,0x72,0x86,0x74,0x72,0x98,0xb9,0xcf,0x01,0xea,0x04,0x40,0xa8,0x7d,0x99,0x2e,0x9a,0x3e,0x51,0x43,0x4b,0x59,0x8e,0xac,0x4d,0x5d,0x3e,0x96,0x32,0xa0,0x88,0xd0,0x00,0x02,0x00,0x8e,0xfe,0x27,0x01,0x64,0x04,0x00,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x12,0x0a,0x63,0x04,0x1b,0x00,0x15,0x03,0x0f,0x0d,0x62,0x07,0x07,0x00,0x84, +0x01,0x01,0x11,0x10,0x11,0x12,0x39,0x2f,0xe1,0x33,0x2f,0xe1,0x00,0x3f,0x3f,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x48,0xa2,0xa2,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x04,0x00,0xfa,0x27,0x3d,0x2e,0x2e,0x3c,0x3e,0x2c,0x2e,0x3d,0x00,0x00,0x01,0x00,0x14, +0xff,0xec,0x01,0xd3,0x04,0x00,0x00,0x0b,0x00,0x1b,0x40,0x0d,0x0b,0x0f,0x05,0x07,0x95,0x02,0x16,0x09,0x84,0x00,0x00,0x0d,0x04,0x2f,0x11,0x33,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x01,0xd3,0xfe,0xb9,0x40,0x38,0x32,0x3d,0xac,0xa4,0x01,0x72,0xfe,0x7a,0x14, +0x94,0x1d,0x01,0x00,0x02,0x89,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x0d,0x00,0x45,0x40,0x23,0x0b,0x02,0x03,0x0a,0x03,0x08,0x05,0x04,0x09,0x0a,0x09,0x04,0x03,0x09,0x03,0x09,0x03,0x01,0x06,0x0f,0x0c,0x95,0x01,0x15,0x0a,0x0a, +0x00,0x00,0x0f,0x08,0x05,0x0c,0x84,0x03,0x01,0x2f,0xce,0xe1,0x39,0x39,0x11,0x33,0x2f,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x87,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x03,0x04,0xfd,0xa2,0x64,0x64,0xa2,0xf0,0xf0, +0x01,0xbc,0x01,0x74,0x38,0x8a,0x3a,0x02,0x00,0xfe,0x5c,0x88,0x8e,0x87,0xfe,0xbd,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0xf8,0x04,0x00,0x02,0x06,0x02,0x13,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00,0x02,0x06,0x02,0x0f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x02,0x06,0x00,0x52,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x00,0x15,0x00,0x34,0x40,0x1f,0x40,0x0b,0x50,0x0b,0x02,0x0b,0x0b,0x09,0x95,0x0e,0x10,0x4f,0x01,0x5f,0x01,0x6f,0x01,0x03,0x01,0x01,0x03,0x95,0x14,0x16,0x11,0x83,0x06,0x06,0x17,0x0b,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d, +0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x5a,0x6c,0x86,0xa6,0xd2,0xcd,0x9f,0x8e,0x70,0x7c,0x9a,0xe6,0x01,0x16,0xfe,0xcd,0xeb,0x84,0x18,0x9a,0x40,0xda,0xb8,0xb3,0xd7,0x46,0x95,0x3b,0xfe,0xde,0xea,0xef,0xfe,0xcb,0x00,0x02,0x00,0x60,0x00,0x08, +0x04,0x92,0x03,0xf8,0x00,0x0b,0x00,0x17,0x00,0x1f,0x40,0x10,0x0c,0xf4,0x06,0x0f,0x12,0xf4,0x00,0x15,0x09,0xed,0x15,0x15,0x19,0x0f,0xed,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x25,0x22,0x00,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x02,0x79,0xf2,0xfe,0xd9,0x01,0x28,0xf1,0xf2,0x01,0x27,0xfe,0xd7,0xf2,0xb9,0xd2,0xd2,0xbd,0xb7,0xd4,0xd2,0x08,0x01,0x15,0xe5,0xe7,0x01,0x0f,0xfe,0xeb,0xe5,0xe5,0xfe,0xef,0x03,0x48,0xb6,0x9a,0xa2,0xae,0xb5,0x9b,0xa1,0xaf,0x00,0x00,0x01,0x00,0x60,0x00,0xb6,0x04,0x92,0x03,0xf8,0x00,0x15,0x00,0x29,0x40,0x14,0x0b,0x00, +0x00,0x17,0x06,0xf4,0x11,0x0f,0x01,0x14,0xed,0x03,0x03,0x17,0x0e,0x0b,0x0b,0x09,0xed,0x0e,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0xc6,0x00,0x3f,0xed,0x12,0x39,0x2f,0xc4,0x31,0x30,0x25,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x04,0x50,0x92,0x48,0xd8, +0xb5,0xb3,0xda,0x47,0x91,0x42,0x01,0x2f,0xec,0xec,0x01,0x2b,0xb6,0x7a,0xab,0xab,0xcc,0xd0,0xa7,0xa5,0x80,0x8e,0x9b,0xf0,0x01,0x29,0xfe,0xdf,0xe9,0xae,0x00,0x03,0x00,0x4c,0xff,0xe8,0x04,0xa6,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x23,0x00,0x7d,0x40,0x47,0x15,0x15,0x16,0x14,0x14,0x1b,0x13,0x13,0x12,0x0c,0x0c,0x0d,0x0b,0x00, +0x0b,0x1d,0x1d,0x1e,0x1c,0x1c,0x23,0x09,0x09,0x08,0x02,0x02,0x03,0x0a,0x01,0x0a,0x00,0x01,0x04,0x0a,0x0b,0x14,0x15,0x1c,0x1d,0x04,0x22,0x1a,0x02,0x09,0x0c,0x13,0x04,0x04,0x1a,0xf4,0x0e,0x0f,0x22,0xf4,0x04,0x15,0x01,0x00,0x00,0x11,0x0b,0x0a,0x07,0x11,0xed,0x17,0x17,0x25,0x1f,0xed,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10, +0xc6,0x32,0x10,0xc2,0x2f,0x32,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0xc6,0x32,0x10,0xc6,0x32,0x31,0x30,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x10,0x87,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x08,0xc0,0x25,0x07,0x27,0x06,0x23,0x22,0x00,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x00,0x15,0x14, +0x07,0x01,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x01,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0xa6,0x48,0x8b,0x8b,0xcf,0xf2,0xfe,0xd9,0x71,0x85,0x48,0x8a,0x8c,0xcf,0xf2,0x01,0x27,0x71,0xfd,0x77,0x02,0x18,0x56,0xd2,0xbd,0x82,0x01,0x65,0xfd,0xe8,0x56,0xd2,0xbd,0x81,0x33,0x4b,0x84,0x64,0x01,0x15,0xe5,0xc8,0x82,0x81,0x4b,0x84, +0x64,0xfe,0xeb,0xe5,0xc8,0x82,0x02,0x6d,0xfd,0xfb,0x5a,0x8a,0xa1,0xaf,0xfd,0x8f,0x02,0x05,0x5a,0x8a,0xa2,0xae,0x00,0x03,0x00,0x52,0xff,0xe8,0x07,0x10,0x04,0x18,0x00,0x1c,0x00,0x28,0x00,0x2f,0x00,0x58,0x40,0x29,0x0d,0x40,0x0b,0x0e,0x48,0x0d,0x0d,0x0b,0x08,0x95,0x29,0x29,0x0b,0x03,0x10,0x0b,0x1d,0x95,0x15,0x10,0x2d,0x03, +0x23,0x95,0x1b,0x16,0x18,0x83,0x26,0x26,0x31,0x00,0x12,0x29,0x03,0x20,0x83,0x08,0x08,0x31,0x0d,0xb8,0xff,0xc0,0xb6,0x0e,0x12,0x48,0x0d,0x2a,0x83,0x06,0x2f,0xe1,0xc4,0x2b,0x12,0x39,0x2f,0xe1,0x17,0x39,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30, +0x25,0x23,0x06,0x21,0x22,0x02,0x35,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x00,0x15,0x10,0x00,0x23,0x20,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x21,0x16,0x16,0x33,0x32,0x36,0x03,0x72,0x04,0x76,0xfe,0xf6,0xc2,0xda,0x02,0xd3,0x03,0xb0,0x9b,0xad,0x90,0x88, +0xda,0x01,0x10,0x71,0x04,0x83,0x01,0x1a,0xe5,0x01,0x0d,0xfe,0xe6,0xf0,0xfe,0xd9,0x01,0x35,0xa0,0xa9,0xab,0x9c,0x9f,0xb9,0xb9,0xfd,0x72,0xfd,0xd7,0x02,0x84,0x74,0x78,0xa6,0xd3,0xeb,0x01,0x05,0xe4,0x58,0xab,0xba,0x72,0x9a,0x62,0xed,0xed,0xfe,0xe4,0xee,0xfe,0xfc,0xfe,0xde,0x03,0xa6,0xcf,0xbb,0xc2,0xd0,0xd9,0xbf,0xb5,0xcf, +0xfe,0x10,0x8e,0x9e,0xa9,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xea,0x04,0x00,0x00,0x1f,0x00,0x2b,0x00,0x3f,0x40,0x21,0x14,0x00,0x20,0x95,0x0a,0x0a,0x26,0x05,0x10,0x0f,0x26,0x95,0x1a,0x16,0x14,0x00,0x02,0x0d,0x84,0x12,0x12,0x17,0x83,0x29,0x29,0x2d,0x1d,0x07,0x84,0x02,0x23,0x83,0x1d,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39, +0x2f,0xf1,0xc0,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x01,0x40,0xa6,0x1c,0xa0,0x1c,0x7e,0x6d,0x6d,0x7e,0x1c,0xa2,0x1a,0xa8,0x68,0x7a,0xfe,0xcb,0xd1,0xf0,0x78,0x01,0x4d,0x82,0x9b,0xa0,0x7d,0x81,0x9c,0x9f,0x02,0x7f,0x4b,0xa4,0x46,0x4c,0x45,0x40,0x56,0x6b,0x6b,0x56,0x40,0x45,0x46,0x4c,0x9e,0x51,0x26,0x9f,0x66,0xa2,0xca,0xc1,0xa3,0x65,0xa5,0x27,0x78,0x67,0x66,0x78,0x7a, +0x68,0x63,0x78,0x00,0x00,0x01,0x00,0x60,0x02,0x00,0x04,0x62,0x04,0x18,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x07,0x00,0x04,0x95,0x0b,0x10,0x00,0x83,0x01,0x01,0x0f,0x07,0x83,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xc4,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x00,0x33,0x32,0x00,0x04,0x62,0xa8, +0xb9,0xa1,0x9f,0xb9,0xa8,0x01,0x1f,0xe9,0xe7,0x01,0x13,0x02,0x00,0xbc,0xd2,0xd8,0xb6,0xee,0x01,0x2a,0xfe,0xde,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x62,0x02,0x00,0x00,0x0d,0x00,0x1d,0x40,0x0e,0x0d,0x06,0x0a,0x95,0x03,0x16,0x00,0x83,0x0d,0x0d,0x0f,0x07,0x83,0x06,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0xd4,0xc4,0x31, +0x30,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0x62,0xfe,0xe1,0xe9,0xe6,0xfe,0xec,0xa8,0xb9,0xa1,0x9f,0xb9,0x02,0x00,0xef,0xfe,0xd7,0x01,0x22,0xf6,0xbc,0xd2,0xd8,0xb6,0x00,0x02,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x00,0x0a,0x00,0x11,0x00,0x27,0x40,0x14,0x0c,0x95,0x00,0x00,0x01,0x0b, +0x95,0x03,0x0f,0x01,0x15,0x07,0x83,0x0f,0x0f,0x13,0x0c,0x01,0x84,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x48,0xa2,0x01,0x33,0xb4,0xc5,0xd4,0xb8,0x7e,0x7e,0xe6,0xd9,0x01,0x70, +0xfe,0x90,0x04,0x00,0xa1,0x99,0x98,0xbe,0x02,0x04,0xfe,0x88,0xc2,0xb6,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x1e,0x0b,0x02,0x95,0x13,0x13,0x00,0x14,0x95,0x12,0x0f,0x07,0x00,0x15,0x06,0x09,0x0b,0x09,0x08,0x13,0x00,0x84,0x01,0x01,0x1c,0x17,0x84,0x0e,0x0e,0x07,0x08,0x2f,0x33, +0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x39,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x06,0x07,0x03,0x23,0x13,0x36,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x21,0x03,0x11,0x23,0x22,0x15,0x14,0x16,0x33,0x02,0xfc,0xa2,0x58,0x42,0x51,0x23,0x79,0xb5,0x8e,0x34,0x53, +0xe5,0xc6,0xae,0x01,0x3a,0xa2,0x98,0xd0,0x6e,0x5e,0x01,0xa6,0x3f,0x53,0xfe,0xec,0x01,0x35,0x71,0x29,0x04,0x2b,0xd7,0x87,0xa4,0xfe,0x31,0x01,0x43,0x9d,0x4f,0x57,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0xfc,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x3b,0x40,0x1e,0x06,0x13,0x95,0x0f,0x0f,0x12,0x0b,0x11,0x0f,0x12,0x95,0x00,0x15,0x0c, +0x09,0x09,0x06,0x0a,0x0f,0x00,0x84,0x12,0x12,0x1a,0x16,0x84,0x04,0x04,0x0b,0x0a,0x2f,0x33,0x33,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x12,0x39,0x39,0x11,0x33,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x37,0x35,0x26,0x27,0x03,0x33,0x13,0x16,0x33,0x33,0x11,0x33,0x03,0x11,0x23, +0x22,0x15,0x14,0x33,0x02,0xfc,0xfe,0xae,0xa5,0xb7,0xea,0x53,0x39,0x8e,0xb9,0x75,0x3e,0x78,0x58,0xa2,0xa2,0x9c,0xcc,0xc4,0x98,0x84,0xda,0x31,0x04,0x21,0x7c,0x01,0x38,0xfe,0xec,0x92,0x01,0xa6,0xfc,0x8c,0x01,0x43,0xa8,0x9b,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0x29,0x04,0x00,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x90, +0xff,0xe8,0x03,0xb6,0x04,0x00,0x00,0x0d,0x00,0x1e,0x40,0x0f,0x06,0x0d,0x0f,0x09,0x95,0x02,0x16,0x0d,0x84,0x0c,0x0c,0x0f,0x06,0x84,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x11,0x11,0x33,0x03,0xb6,0xfe,0x64,0xfe,0x76,0xa1,0xf2,0xf1,0xa2, +0x01,0xa6,0xfe,0x42,0x01,0xb2,0x02,0x66,0xfd,0xa2,0xfe,0xd0,0x01,0x2a,0x02,0x64,0x00,0x01,0x00,0x66,0x00,0x5a,0x04,0x38,0x03,0xac,0x00,0x12,0x00,0x2a,0x40,0x14,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x14,0x08,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00,0x2f, +0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x37,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x66,0x02,0x0c,0x01,0x3a,0xad,0x88,0xfd,0xef,0x03,0xb8,0x80,0x9a,0xef,0xd5,0x5a,0xa4,0xf2,0x74,0xa6,0xa2,0xa2,0x04,0x6b,0xc2,0xb0,0xcf,0x00,0x03,0x00,0x3e,0x00,0x5a,0x05,0x6c,0x03,0xac, +0x00,0x12,0x00,0x1e,0x00,0x2a,0x00,0x49,0x40,0x25,0x19,0x63,0x13,0x1f,0x63,0x25,0x13,0x25,0x13,0x09,0x00,0xf4,0x01,0x01,0x13,0x0d,0x08,0xf4,0x09,0x0c,0x04,0x0b,0x0b,0x0f,0xed,0x04,0x04,0x2c,0x08,0x00,0x00,0x2c,0x1c,0x16,0x28,0x62,0x22,0x2f,0xe1,0x39,0x39,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x33,0x00, +0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x9c,0x02,0x0c, +0x01,0x3a,0xae,0x88,0xfd,0xf0,0x03,0xb8,0x81,0x99,0xed,0xd5,0xfc,0xf6,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x2a,0x2a,0x38,0x38,0x2a,0x29,0x39,0x38,0x5a,0xa4,0xf2,0x73,0xa7,0xa2,0xa2,0x04,0x6b,0xc2,0xb1,0xce,0x02,0x12,0x3b,0x28,0x29,0x3b,0x3b,0x29,0x29,0x3a,0xfe,0x80,0x38,0x28,0x29,0x3b,0x39,0x29,0x28,0x3a,0x00,0x00,0x01, +0x00,0x66,0xff,0x2d,0x04,0x38,0x04,0xd7,0x00,0x1f,0x00,0x3e,0x40,0x1f,0x01,0xf4,0x40,0x00,0x0e,0x09,0x0a,0x12,0x42,0x15,0x11,0xf4,0x12,0x1b,0x09,0xf4,0x0a,0x14,0x14,0x1b,0x15,0x18,0x0d,0x1d,0xed,0x05,0x05,0x21,0x11,0x09,0x00,0x2f,0x32,0x32,0x11,0x39,0x2f,0xf1,0x39,0x39,0x33,0x33,0xc0,0x2f,0x00,0x2f,0xed,0x39,0xd6,0xed, +0x32,0x2b,0x00,0x18,0x10,0xf6,0x1a,0xed,0x31,0x30,0x17,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x20,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x10,0x21,0x66,0x02,0x04,0xab,0x97,0xbc,0x8a,0xfe,0x00,0x02,0x19,0x01,0x2d,0xb4,0x92,0xfe,0x00,0x03,0xb8,0x8c,0xa6,0x76, +0x60,0xd6,0xfe,0x47,0xd3,0xa2,0x6a,0x75,0x6f,0x93,0xa2,0xe6,0x70,0x8d,0xa2,0xa2,0x04,0x5b,0xbc,0x6f,0xab,0x27,0x61,0xd4,0xfe,0x89,0xff,0xff,0x00,0x0e,0x00,0x00,0x03,0xcb,0x04,0x00,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0xff,0xff,0x00,0x21,0x00,0x00, +0x03,0x70,0x04,0x00,0x02,0x06,0x00,0x5d,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xf8,0x04,0x00,0x00,0x17,0x00,0x3d,0x40,0x1f,0x0a,0x08,0x52,0x10,0x10,0x03,0x0f,0x0c,0x95,0x0d,0x0f,0x01,0x03,0x95,0x16,0x16,0x10,0x0a,0x0a,0x06,0x0c,0x0b,0x0f,0x0f,0x13,0x84,0x06,0x06,0x19,0x0c,0x00,0x2f,0xc4,0x12,0x39,0x2f,0xf1,0xc0, +0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x21,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x50,0x6a,0x92,0x7a,0x8e,0xfe,0xdd,0x3d,0x01,0x06,0xfe,0x56,0x02,0x8b,0xfe,0xed,0x8e,0xa2,0xf0, +0xc6,0x89,0x18,0x96,0x3c,0x66,0x59,0xc1,0x3d,0x01,0x45,0x8c,0x46,0xfe,0xac,0x13,0xa4,0x7c,0x92,0xb9,0x00,0x01,0x00,0x50,0xff,0xe8,0x02,0xfa,0x04,0x18,0x00,0x25,0x00,0x42,0x40,0x22,0x14,0x13,0x07,0x01,0x00,0x0c,0x1f,0x1c,0x1a,0x95,0x1f,0x10,0x09,0x07,0x95,0x0c,0x16,0x00,0x83,0x14,0x14,0x18,0x0f,0x09,0x09,0x22,0x83,0x18, +0x18,0x27,0x1c,0x05,0x83,0x0f,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x10,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x01,0x15,0x06,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x35,0x36,0x37,0x36,0x35,0x34,0x23,0x22, +0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x01,0xf8,0x2e,0x56,0x7e,0xe5,0x9b,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x2a,0x2e,0x55,0x7f,0xe6,0x9a,0x76,0x7c,0xa5,0xb3,0xc8,0x9e,0x3a,0x02,0x0a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c,0x72,0x90,0x4a,0x1c,0x1a,0x54,0x1e,0x28,0x3a,0x4a,0x7a,0x4c,0x97,0x3f,0x8c, +0x72,0x90,0x4a,0x1c,0x00,0x01,0x00,0x14,0xff,0xe8,0x04,0x25,0x04,0x18,0x00,0x1b,0x00,0x3b,0x40,0x1e,0x12,0x10,0x09,0x1b,0x0b,0x06,0x19,0x95,0x02,0x16,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x0f,0x40,0x0f,0x09,0x42,0x09,0x09,0x1c,0x0f,0x0f,0x1d,0x1c,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x2b,0x01,0x1a,0x18,0x10,0xdd,0xe2, +0x12,0x17,0x39,0x00,0x3f,0xfd,0x39,0x39,0xd6,0xc4,0x3f,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x04,0x25,0x61,0x82,0x99,0x8d,0x8c,0x94,0x81,0x67,0x6e,0x74,0x60,0x62,0xe9,0xb6,0x9c,0x9b,0xae,0xe7,0x63,0x64,0x71, +0x6a,0x38,0x50,0x7a,0x7a,0x4d,0xa8,0x6b,0x54,0xe7,0xf5,0xa4,0xd2,0xcb,0xa5,0xfc,0xe6,0x54,0x67,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0xdf,0x04,0x00,0x02,0x06,0x02,0x0a,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x03,0xb6,0x04,0x00,0x00,0x0b,0x00,0x17,0x40,0x0a,0x04,0x0b,0x0f,0x00,0x09,0x15,0x00,0x00,0x0d,0x09,0x2f,0x11, +0x33,0x2f,0x00,0x3f,0xc4,0x3f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x03,0xb6,0xb2,0xfe,0xf2,0x02,0x12,0x05,0x05,0x10,0xfe,0xf2,0xb0,0x01,0x79,0xc1,0x03,0x14,0x06,0x4e,0x1b,0x39,0xfc,0xec,0x04,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x02,0x06,0x02,0x16,0x00,0x00, +0xff,0xff,0x00,0xa6,0x00,0x00,0x03,0x52,0x04,0x00,0x02,0x06,0x07,0x7a,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x04,0x5a,0x04,0x00,0x00,0x13,0x00,0x4c,0x40,0x29,0x0c,0x05,0x0f,0x96,0x40,0x02,0x02,0x03,0x0e,0x09,0x13,0x0f,0x03,0x15,0x11,0x84,0x00,0x0e,0x03,0x0a,0x84,0x07,0x04,0x07,0x42,0x07,0x07,0x14,0x0f,0x0c,0x03,0x84, +0x4f,0x04,0x5f,0x04,0x02,0x04,0x04,0x15,0x14,0x11,0x12,0x39,0x2f,0x5d,0xe1,0x39,0x39,0x12,0x39,0x2f,0x2b,0x01,0x10,0xe1,0x10,0xf0,0xe1,0x00,0x18,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x1a,0xed,0x39,0x39,0x31,0x30,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11,0x14,0x05,0x11,0x33,0x11,0x24,0x35,0x11,0x33,0x04,0x5a, +0xfe,0x54,0xa2,0xfe,0x54,0xa2,0x01,0x0a,0xa2,0x01,0x0a,0xa2,0x02,0x92,0xfe,0xa0,0x18,0xfe,0xe6,0x01,0x1a,0x12,0x01,0x60,0x01,0x74,0xfe,0x92,0xee,0x08,0x02,0x64,0xfd,0x9c,0x0c,0xea,0x01,0x6e,0x00,0x01,0x00,0x0a,0xff,0xf4,0x03,0xd7,0x04,0x00,0x00,0x10,0x00,0x2a,0x40,0x15,0x02,0x95,0x10,0x0f,0x09,0x0b,0x95,0x06,0x01,0x00, +0x15,0x03,0x0f,0x0f,0x09,0x00,0x84,0x01,0x01,0x12,0x09,0x2f,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x00,0x3f,0x10,0xd4,0xfd,0xc6,0x3f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x11,0x21,0x03,0xd7,0xa2,0xfe,0x67,0x0d,0x94,0xa1,0x26,0x2a,0x20,0x1e,0x41,0x48,0x2b,0x02,0xdb, +0x03,0x74,0xfd,0xb0,0xfe,0xd0,0x0c,0x8c,0x0d,0x7e,0x01,0x90,0x01,0x73,0x00,0x02,0x00,0x0a,0x02,0x9a,0x02,0xd7,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x4e,0x40,0x10,0x02,0x08,0x09,0x0a,0x0b,0x0c,0x01,0x0c,0x0d,0x0e,0x0f,0x03,0x04,0x0c,0x04,0x03,0xb8,0x01,0x0e,0xb2,0x0f,0x0f,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05, +0x01,0x0a,0xb6,0x0f,0x08,0x05,0x00,0x00,0x11,0x05,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x00,0x3f,0x3f,0x3f,0x39,0x2f,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x02,0xd7,0x8f,0x44, +0xfe,0xd5,0x3f,0x90,0x01,0x1d,0x97,0x24,0x63,0x03,0x0a,0x04,0x05,0x09,0x64,0x02,0x9a,0xbe,0xbe,0x03,0x00,0xfe,0x2e,0x01,0x22,0x0a,0x31,0x22,0x19,0xfe,0xde,0x00,0x00,0x02,0xff,0xf6,0x02,0x9a,0x03,0x9e,0x05,0x9a,0x00,0x0f,0x00,0x13,0x00,0x76,0xb5,0x13,0x03,0x04,0x12,0x04,0x0d,0xb8,0x01,0x0e,0xb4,0x40,0x0a,0x06,0x01,0x0a, +0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0xb8,0x01,0x0e,0xb3,0x13,0x13,0x06,0x0e,0xb8,0x01,0x0e,0xb2,0x01,0x01,0x05,0xbe,0x01,0x0a,0x00,0x09,0x01,0x0e,0x00,0x12,0x01,0x0e,0x00,0x06,0x01,0x06,0x40,0x09,0x03,0x04,0x12,0x13,0x04,0x05,0x10,0x0a,0x0e,0xb8,0x01,0x0c,0x40,0x09,0x01,0x01,0x05,0x08,0x0c,0x00,0x00,0x15,0x05,0x2f,0x12, +0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xe1,0x39,0x39,0x12,0x17,0x39,0x00,0x3f,0xed,0xed,0x3f,0x33,0x10,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0x01,0x21,0x35,0x21,0x07,0x23,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x25,0x11,0x23,0x03,0x03,0x9e,0xfe,0x50,0xff,0x00, +0x60,0x98,0x01,0xa2,0x01,0xf6,0xfe,0xe2,0x01,0x09,0xfe,0xf7,0x01,0x2e,0xfe,0x50,0x0f,0xb8,0x02,0x9a,0xbe,0xbe,0x03,0x00,0x71,0xd9,0x6c,0xda,0xbe,0x01,0x63,0xfe,0x9d,0x00,0x00,0x03,0x00,0x7b,0x02,0x9a,0x02,0x89,0x05,0x9a,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x57,0xb1,0x07,0x14,0xb8,0x01,0x0e,0xb4,0x40,0x0e,0x01,0x00,0x0e, +0xb8,0x01,0x0e,0xb2,0x32,0x30,0x15,0xbe,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0e,0x00,0x01,0x01,0x06,0xb3,0x06,0x09,0x0e,0x11,0xb8,0x01,0x0c,0xb2,0x04,0x04,0x09,0xb8,0x01,0x0c,0xb4,0x18,0x18,0x1c,0x0e,0x15,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x00,0x3f,0xed, +0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x13,0x11,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x7b,0xe7,0x01,0x06,0x89,0xaa,0x99,0x84,0x6e,0x5a,0x8a,0x8c,0x58,0x6e,0x96,0xa0,0x02,0x9a,0x03,0x00,0xbf,0x7d,0x29,0x02,0x19,0x9f, +0x68,0x79,0x02,0x8f,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x71,0x75,0x00,0x03,0x00,0x23,0x02,0x9a,0x02,0xb2,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x20,0x00,0x64,0xb5,0x01,0x11,0x14,0x1a,0x04,0x08,0xb8,0x01,0x0e,0xb4,0x40,0x0b,0x0c,0x07,0x0b,0xb8,0x01,0x0e,0xb2,0x32,0x30,0x1b,0xbe,0x01,0x0e,0x00,0x07,0x01,0x0a,0x00,0x13,0x01,0x0e, +0x00,0x0c,0x01,0x06,0xb4,0x11,0x01,0x03,0x14,0x17,0xb8,0x01,0x0c,0xb5,0x0f,0x0f,0x03,0x00,0x00,0x03,0xb8,0x01,0x0c,0xb7,0x1e,0x1e,0x22,0x14,0x0b,0x1b,0x09,0x07,0x2f,0xc6,0xc1,0x39,0x39,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x10,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x17,0x39, +0x31,0x30,0x01,0x23,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x20,0x15,0x14,0x07,0x33,0x25,0x15,0x33,0x32,0x35,0x34,0x23,0x03,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xb2,0x6a,0x56,0x97,0x86,0xf1,0x6d,0x6d,0xe7,0x01,0x06,0x48,0x7d,0xfe,0x60,0x5a,0x8a,0x8c,0x58,0x6f,0x95,0x9f,0x03,0xf0,0x28,0x58,0x62,0x74, +0x01,0x56,0x70,0x01,0x3a,0xbf,0x53,0x28,0xc9,0xc9,0x66,0x63,0xfe,0xc7,0xe6,0x6d,0x79,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x03,0x08,0x05,0x9a,0x00,0x07,0x00,0x0f,0x00,0x2d,0x41,0x0a,0x00,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x01,0x01,0x06,0x00,0x04,0x01,0x0c,0xb3,0x0d,0x0d,0x11,0x09,0xb9,0x01,0x0c, +0x00,0x00,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x11,0x33,0x20,0x11,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x7b,0xf1,0x01,0x9c,0xe2,0xc0,0x68,0x64,0x89,0x96,0xfe,0xe7,0x02,0x9a,0x03,0x00,0xfe,0x87,0xb1,0xd6,0x02,0x8f,0xfd,0xe1,0x90,0x84,0x01,0x0b,0x00,0x00,0x01,0x00,0x7b, +0x02,0x9a,0x02,0x2b,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00,0x09,0x01,0x0e,0xb4,0x40,0x06,0x02,0x01,0x06,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x0a,0xbe,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0e,0x00,0x02,0x01,0x06,0xb6,0x04,0x08,0x00,0x00,0x0d,0x06,0x0a,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xc4,0xc4, +0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2b,0xfe,0x50,0x01,0x9f,0xfe,0xe4,0x01,0x08,0xfe,0xf8,0x01,0x2d,0x02,0x9a,0x03,0x00,0x71,0xd7,0x70,0xd8,0x00,0x00,0x01,0x00,0x48,0x02,0x9a,0x01,0xf8,0x05,0x9a,0x00,0x0b,0x00,0x43,0xb9,0x00, +0x04,0x01,0x0e,0xb4,0x40,0x07,0x0b,0x00,0x07,0xb8,0x01,0x0e,0xb2,0xff,0x30,0x03,0x41,0x09,0x01,0x0e,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x0e,0x00,0x0b,0x01,0x06,0x00,0x00,0x01,0x0c,0xb6,0x07,0x03,0x03,0x0d,0x09,0x05,0x01,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31, +0x30,0x01,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0xf8,0xfe,0x50,0x01,0x2c,0xfe,0xf8,0x01,0x08,0xfe,0xe4,0x01,0xa0,0x02,0x9a,0x70,0xd8,0x70,0xd7,0x71,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0xcb,0x05,0xaa,0x00,0x19,0x00,0x50,0xb9,0x00,0x17,0x01,0x0e,0xb5,0x18,0x18,0x08,0x15,0x00,0x13,0xba,0x01,0x0e,0x00, +0x02,0x01,0x0b,0xb4,0xaf,0x0b,0x01,0x0b,0x0d,0xba,0x01,0x0e,0x00,0x08,0x01,0x07,0xb6,0x17,0x17,0x16,0x10,0x0b,0x0b,0x19,0xb8,0x01,0x0c,0xb3,0x16,0x16,0x1b,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xed,0x32,0x32,0x11,0x39,0x2f,0xed,0x31,0x30, +0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x35,0x23,0x35,0x21,0x02,0xcb,0x75,0x96,0xb2,0xd0,0xe7,0xb8,0x77,0x5e,0x62,0x75,0x7a,0x9d,0x8d,0x77,0x49,0x37,0x9c,0x01,0x1f,0x02,0xcb,0x42,0xd0,0xb5,0xb7,0xe5,0x27,0x81,0x38,0xa2,0x82,0x85,0x97,0x1c,0xb2,0x72, +0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0xea,0x05,0x9a,0x00,0x0b,0x00,0x49,0xb9,0x00,0x03,0x01,0x0e,0xb4,0x40,0x08,0x06,0x05,0x08,0xb8,0x01,0x0e,0xb5,0x32,0x30,0x0b,0x00,0x06,0x05,0xba,0x01,0x0a,0x00,0x06,0x01,0x06,0xb3,0x09,0x08,0x04,0x00,0xbb,0x01,0x0c,0x00,0x01,0x00,0x04,0x01,0x0c,0xb4,0x05,0x01,0x01,0x0d,0x05,0x2f,0x12, +0x39,0x2f,0x10,0xe1,0x10,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x02,0xea,0x84,0xfe,0x98,0x83,0x83,0x01,0x68,0x84,0x02,0x9a,0x01,0x4e,0xfe,0xb2,0x03,0x00,0xfe,0xbe,0x01,0x42,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a, +0x00,0xfe,0x05,0x9a,0x00,0x03,0x00,0x16,0xbe,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0x00,0x00,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x00,0x3f,0x3f,0x31,0x30,0x13,0x23,0x11,0x33,0xfe,0x83,0x83,0x02,0x9a,0x03,0x00,0x00,0x00,0x01,0x00,0x0a,0x02,0x87,0x01,0x5e,0x05,0x9a,0x00,0x0c,0x00,0x23,0xb1,0x06,0x08,0xbe,0x01,0x0e,0x00,0x03, +0x01,0x0b,0x00,0x0b,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb3,0x0b,0x0b,0x0e,0x06,0x2f,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x01,0x5e,0x82,0x74,0x35,0x29,0x2a,0x2c,0x7b,0x83,0x03,0xaa,0x8a,0x99,0x15,0x78,0x1c,0xb6,0x01,0xec,0x00,0x01,0x00,0x7b, +0x02,0x9a,0x02,0xc0,0x05,0x9a,0x00,0x10,0x00,0x21,0xbb,0x00,0x07,0x01,0x0a,0x00,0x08,0x01,0x06,0xb5,0x0f,0x00,0x12,0x10,0x0a,0x05,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x13,0x33,0x01,0x02,0xc0,0xa8,0xe9, +0x1f,0x0e,0x04,0x83,0x83,0x04,0x10,0x1d,0xe1,0x9c,0xfe,0xd7,0x02,0x9a,0x01,0x31,0x28,0x1d,0xfe,0x8a,0x03,0x00,0xfe,0x99,0x19,0x26,0x01,0x28,0xfe,0x8d,0x00,0x01,0x00,0x7b,0x02,0x9a,0x02,0x25,0x05,0x9a,0x00,0x05,0x00,0x22,0xbd,0x00,0x04,0x01,0x0e,0x00,0x01,0x01,0x0a,0x00,0x02,0x01,0x06,0xb3,0x00,0x00,0x07,0x04,0xb9,0x01, +0x0c,0x00,0x01,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x21,0x02,0x25,0xfe,0x56,0x83,0x01,0x27,0x02,0x9a,0x03,0x00,0xfd,0x70,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0xb6,0x05,0x9a,0x00,0x1b,0x00,0x27,0xbe,0x00,0x11,0x01,0x0a,0x00,0x13,0x01,0x06,0x00,0x1a,0x00,0x00,0x01,0x0c,0xb4, +0x01,0x01,0x1d,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x33,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x03,0xb6,0x83,0x07,0x05,0x07,0x10,0xd6,0x62,0xd8,0x0a,0x0e,0x04, +0x04,0x7b,0xbd,0xc6,0x14,0x08,0x04,0x11,0x0f,0xc2,0xb6,0x02,0x9a,0x01,0xe9,0x3b,0x58,0x20,0x36,0xfd,0xda,0x02,0x20,0x18,0x46,0x40,0x6a,0xfe,0x2c,0x03,0x00,0xfe,0x08,0x32,0x2c,0x3e,0x24,0x01,0xf4,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x08,0x01,0x0a,0x00,0x0a,0x01,0x06,0xb3, +0x0a,0x01,0x07,0x11,0xb8,0x01,0x0c,0xb3,0x10,0x10,0x13,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x01,0x26,0x27,0x23,0x17,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x27,0x11,0x33,0x03,0x06,0x8d,0xfe,0xb2,0x15,0x1c,0x04,0x02,0x7d,0x93,0x01,0x48,0x15,0x1c, +0x05,0x03,0x7d,0x02,0x9a,0x01,0xfc,0x1f,0x3d,0x6f,0xfe,0x17,0x03,0x00,0xfe,0x0e,0x1f,0x3d,0x6e,0x01,0xe0,0x00,0x00,0x01,0x00,0x7b,0x02,0x9a,0x03,0x06,0x05,0x9a,0x00,0x11,0x00,0x29,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01,0x06,0xb3,0x10,0x07,0x0a,0x00,0xb8,0x01,0x0c,0xb3,0x01,0x01,0x13,0x0a,0xb9,0x01,0x0c,0x00,0x08,0x2f, +0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x11,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x07,0x33,0x36,0x37,0x01,0x33,0x03,0x06,0x7d,0x03,0x05,0x0d,0x24,0xfe,0xb2,0x8d,0x7d,0x02,0x04,0x0e,0x23,0x01,0x47,0x94,0x02,0x9a,0x01,0xe9,0x6f,0x1e,0x3e,0xfe,0x04,0x03,0x00,0xfe,0x20,0x6e,0x1e, +0x3e,0x01,0xf2,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x03,0x2b,0x05,0xaa,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0e,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0e,0x00,0x06,0x01,0x07,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31, +0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xae,0xa6,0xca,0xd3,0xa9,0xa7,0xca,0xd2,0xa3,0x6c,0x86,0x82,0x6c,0x6c,0x86,0x82,0x02,0x89,0xd9,0xb0,0xb7,0xe1,0xd8,0xb1,0xb5,0xe3,0x02,0xb1,0x9e,0x84,0x83,0x9b,0x9d,0x83,0x83,0x9d,0x00,0x02, +0x00,0x3e,0x02,0x89,0x02,0xcf,0x05,0x9a,0x00,0x1b,0x00,0x27,0x00,0x5c,0xb2,0x12,0x00,0x1c,0xb8,0x01,0x0e,0xb3,0x09,0x09,0x04,0x22,0xbf,0x01,0x0e,0x00,0x17,0x01,0x0b,0x00,0x0e,0x00,0x04,0x01,0x06,0x00,0x0b,0x01,0x0c,0xb6,0x10,0x10,0x14,0x1a,0x05,0x05,0x07,0xb8,0x01,0x0c,0xb5,0x02,0x02,0x12,0x00,0x1a,0x14,0xb8,0x01,0x0c, +0xb3,0x25,0x25,0x29,0x1f,0xb9,0x01,0x0c,0x00,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x39,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xdd,0x75,0x19,0x7d,0x16,0x9d,0x9e,0x15,0x80,0x16,0x73,0x9e,0xba,0x92,0x92,0xb3,0x01,0x47,0x58,0x6d,0x6e,0x57,0x58,0x6f,0x73,0x04,0x7f,0x35,0x75,0x35,0x3c,0x2e,0x37,0x83,0x83,0x3b,0x2a,0x38,0x39,0x70,0x3a,0x3f,0xa2,0x7a,0x9b,0x96, +0x79,0xa0,0x0a,0x59,0x4b,0x4a,0x5a,0x58,0x4c,0x48,0x5c,0x00,0x00,0x02,0x00,0x7b,0x02,0x9a,0x02,0x83,0x05,0x9a,0x00,0x09,0x00,0x10,0x00,0x35,0xb9,0x00,0x00,0x01,0x0e,0xb3,0x0b,0x0b,0x03,0x02,0xbe,0x01,0x0a,0x00,0x0a,0x01,0x0e,0x00,0x03,0x01,0x06,0x00,0x06,0x01,0x0c,0xb4,0x0e,0x0e,0x12,0x0b,0x01,0xb9,0x01,0x0c,0x00,0x02, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x23,0x11,0x33,0x20,0x15,0x14,0x06,0x23,0x03,0x11,0x33,0x32,0x35,0x34,0x23,0xfe,0x83,0xef,0x01,0x19,0xa1,0x86,0x5e,0x54,0xaa,0xa4,0x03,0xa6,0xfe,0xf4,0x03,0x00,0xf2,0x71,0x91,0x01,0x83,0xfe,0xed,0x8e,0x85,0x00,0x02,0x00,0x7b, +0x02,0x9a,0x02,0xa4,0x05,0x9a,0x00,0x11,0x00,0x18,0x00,0x42,0xb1,0x0f,0x05,0xb8,0x01,0x0e,0xb4,0x13,0x13,0x08,0x00,0x07,0xbc,0x01,0x0a,0x00,0x12,0x01,0x0e,0x00,0x08,0x01,0x06,0xb4,0x0f,0x13,0x00,0x00,0x0c,0xb8,0x01,0x0c,0xb4,0x16,0x16,0x1a,0x13,0x06,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f, +0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x23,0x27,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x17,0x01,0x15,0x33,0x32,0x35,0x34,0x23,0x02,0xa4,0x96,0x5c,0x2a,0x4a,0x40,0x83,0x01,0x00,0x7f,0x89,0xae,0x37,0x29,0xfe,0xc9,0x68,0x94,0x90,0x02,0x9a,0xd2,0x61,0xfe, +0xcd,0x03,0x00,0x73,0x65,0xa8,0x22,0x02,0x16,0x59,0x01,0xa2,0xeb,0x78,0x73,0x00,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x48,0x05,0x9a,0x00,0x07,0x00,0x2d,0xbe,0x00,0x03,0x01,0x0a,0x00,0x01,0x00,0x04,0x01,0x0e,0x00,0x06,0x01,0x06,0xb4,0x00,0x03,0x05,0x05,0x02,0xb8,0x01,0x0c,0xb3,0x03,0x03,0x09,0x08,0x11,0x12,0x39,0x2f,0xf1, +0xc0,0x2f,0x10,0xc4,0x00,0x3f,0xed,0x32,0x3f,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x02,0x48,0xde,0x82,0xde,0x02,0x3e,0x05,0x29,0xfd,0x71,0x02,0x8f,0x71,0x00,0x00,0x01,0x00,0x74,0x02,0x89,0x02,0xdb,0x05,0x9a,0x00,0x0d,0x00,0x2b,0x41,0x09,0x00,0x09,0x01,0x0e,0x00,0x02,0x01,0x0b,0x00,0x0d,0x00,0x05,0x01,0x06, +0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x33,0x3f,0xed,0x31,0x30,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0xdb,0xfe,0xc5,0xfe,0xd4,0x84,0xb0,0xb0,0x83,0x03,0xd3,0xfe,0xb6,0x01,0x3f,0x01,0xd2,0xfe,0x35,0xd5,0xd5,0x01, +0xcb,0x00,0x00,0x01,0x00,0x10,0x02,0x9a,0x04,0x25,0x05,0x9a,0x00,0x1b,0x00,0x15,0xbb,0x00,0x0a,0x01,0x0a,0x00,0x0b,0x01,0x06,0xb2,0x00,0x1d,0x0b,0x2f,0x10,0xc6,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37, +0x13,0x04,0x25,0xc7,0x9e,0x8f,0x0a,0x02,0x04,0x05,0x0a,0x95,0x9e,0xcf,0x92,0x85,0x09,0x03,0x07,0x02,0x0e,0x9c,0x88,0x8e,0x0a,0x04,0x06,0x02,0x0c,0x82,0x05,0x9a,0xfd,0x00,0x02,0x0e,0x25,0x2d,0x2c,0x24,0xfd,0xf0,0x03,0x00,0xfd,0xdf,0x26,0x2a,0x1f,0x31,0x02,0x21,0xfd,0xda,0x26,0x25,0x19,0x35,0x02,0x23,0x00,0x02,0x00,0x3e, +0x02,0x89,0x02,0x1e,0x04,0xcf,0x00,0x14,0x00,0x1d,0x00,0x61,0x40,0x0c,0x02,0x05,0x16,0x0f,0x30,0x11,0x17,0x48,0x0f,0x0f,0x0d,0x16,0xb8,0x01,0x0d,0xb4,0x40,0x0b,0x12,0x05,0x0b,0xb8,0x01,0x0d,0xb2,0x30,0x30,0x1b,0x41,0x0b,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x0d,0x01,0x0d,0x00,0x12,0x01,0x09,0x00,0x00, +0x01,0x0c,0xb6,0x16,0x0b,0x01,0x01,0x1f,0x0f,0x19,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0xc4,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x12,0x39,0x2f,0x2b,0x11,0x12,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33, +0x32,0x15,0x07,0x35,0x07,0x06,0x15,0x14,0x33,0x32,0x36,0x02,0x1e,0x7e,0x02,0x38,0x76,0x53,0x5f,0xc2,0xa0,0x6f,0x64,0x59,0x56,0x76,0xde,0x7e,0x79,0x6d,0x5e,0x3c,0x4c,0x02,0x9a,0x50,0x61,0x59,0x4b,0x9b,0x1c,0x16,0x72,0x3f,0x71,0x31,0xd7,0x81,0x2f,0x10,0x0e,0x4e,0x50,0x4e,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x48,0x04,0xcf, +0x00,0x14,0x00,0x1d,0x00,0x61,0xb9,0x00,0x04,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0c,0x15,0x5f,0x15,0x01,0x15,0x40,0x18,0x1b,0x48,0x15,0x0f,0x02,0x41,0x09,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x0a,0x01,0x08,0x00,0x1a,0x01,0x0d,0x00,0x0f,0x01,0x09,0xb2,0x04,0x04,0x12,0xb8,0x01,0x0c,0xb5, +0x18,0x18,0x1f,0x15,0x00,0x0b,0xb9,0x01,0x0c,0x00,0x0a,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x11,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x31,0x30,0x13,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x35,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35, +0x34,0x23,0x22,0x06,0x15,0xe6,0x6e,0x64,0x58,0x54,0x76,0xe0,0x80,0x02,0x37,0x77,0x52,0x60,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x03,0x5e,0x72,0x3f,0x71,0x31,0xd7,0x01,0x5e,0x50,0x61,0x5c,0x48,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x41, +0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x10,0x01,0x08,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb5,0x11,0x0e,0x01,0x01,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31, +0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46, +0x5c,0xc2,0xb6,0x5e,0x00,0x03,0x00,0x48,0x02,0x89,0x03,0xa2,0x04,0xcf,0x00,0x22,0x00,0x2b,0x00,0x30,0x00,0xa9,0x40,0x09,0x1a,0x0a,0x0c,0x18,0x15,0x15,0x13,0x10,0x04,0xb8,0xff,0xd0,0xb6,0x11,0x17,0x48,0x04,0x04,0x02,0x00,0xb8,0x01,0x0d,0x40,0x0d,0x23,0x5f,0x23,0x01,0x23,0x40,0x18,0x1b,0x48,0x23,0x1d,0x02,0x10,0xb8,0x01, +0x0d,0x40,0x0c,0x03,0x2d,0x13,0x2d,0x23,0x2d,0x03,0x2d,0x2d,0x13,0x0c,0x02,0xb8,0x01,0x0d,0xb2,0x07,0x07,0x2f,0xbc,0x01,0x0d,0x00,0x0c,0x01,0x0b,0x00,0x28,0x01,0x0d,0xb3,0x1d,0x1d,0x13,0x18,0xb8,0x01,0x09,0xb5,0x00,0x09,0x1a,0x2c,0x04,0x23,0xb8,0x01,0x0c,0xb6,0x11,0x11,0x20,0x10,0x04,0x04,0x20,0xb8,0x01,0x0c,0xb4,0x26, +0x26,0x32,0x15,0x2d,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x17,0x39,0x00,0x3f,0xcd,0x33,0x10,0xed,0x3f,0xed,0x33,0x10,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x2b,0x71,0x2f,0xed,0x11,0x39,0x2f,0x2b,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x39,0x31,0x30,0x01, +0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x35,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x07,0x23,0x16,0x33,0x32,0x02,0x40,0x6e,0x64,0x58,0x54,0x76,0x7e,0x32,0x04,0x48,0x6a,0x72,0x80,0x01,0x78, +0x08,0x9c,0x5c,0x4e,0x4a,0x73,0x97,0x44,0x04,0x43,0x8a,0x58,0x6f,0xc3,0x9f,0x78,0x6d,0x5f,0x3a,0x4c,0x80,0xfe,0x02,0x7a,0x78,0x03,0x5e,0x72,0x3f,0x71,0x31,0x50,0x50,0x93,0x7a,0x43,0x8f,0x35,0x6f,0x2d,0x6b,0x6b,0x5e,0x46,0x9b,0x1c,0x3e,0x10,0x0f,0x4d,0x50,0x4e,0x3e,0x6b,0x8b,0x00,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x89, +0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x06,0x01,0x09,0x15,0x41,0x0d,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x03,0x01,0x0a,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x04,0x01,0x06,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x12,0x06,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0x3f, +0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x23,0x15,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0x43,0x03,0x2a,0xfe,0xaa,0x61, +0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x60,0x05,0xc4,0x00,0x10,0x00,0x1b,0x00,0x41,0xb3,0x0e,0x02,0x0b,0x19,0x41,0x0d,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x15,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x10,0x01,0x06,0x00,0x10,0x01,0x0c,0xb5,0x12,0x02, +0x0f,0x0f,0x1d,0x17,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x11,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0x7e,0x03,0x42,0x76,0x68, +0x81,0x8e,0x6e,0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x92,0x8e,0x42,0x54,0x02,0x9a,0x50,0x61,0x97,0x80,0x84,0xab,0x54,0x01,0x49,0xfd,0xd4,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x35,0x04,0xcf,0x00,0x11,0x00,0x16,0x00,0x4e,0xb3,0x05,0x05,0x03,0x01,0xb8,0x01,0x0d,0x40,0x0b,0x0c,0x16,0x1c,0x16, +0x2c,0x16,0x03,0x16,0x16,0x0e,0x03,0xbe,0x01,0x0d,0x00,0x08,0x01,0x0b,0x00,0x14,0x01,0x0d,0x00,0x0e,0x01,0x09,0xb2,0x05,0x05,0x00,0xb8,0x01,0x0c,0xb4,0x12,0x12,0x18,0x16,0x01,0xb9,0x01,0x0c,0x00,0x0b,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30, +0x01,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x07,0x02,0x35,0xfe,0x87,0x0a,0x9a,0x5c,0x4e,0x48,0x78,0x7e,0x8e,0x92,0x72,0x71,0x82,0x7b,0x02,0x78,0x78,0x0c,0x03,0x7f,0x8f,0x35,0x6f,0x2d,0x97,0x88,0x81,0xa6,0x91,0x7c,0x20,0x8a,0x8a,0x00,0x00,0x02,0x00,0x48, +0x02,0x87,0x02,0x40,0x04,0xd1,0x00,0x11,0x00,0x16,0x00,0x4c,0xb3,0x05,0x05,0x03,0x00,0xb8,0x01,0x0d,0x40,0x0b,0x03,0x13,0x13,0x13,0x23,0x13,0x03,0x13,0x13,0x03,0x15,0x41,0x09,0x01,0x0d,0x00,0x0e,0x01,0x0b,0x00,0x03,0x01,0x0d,0x00,0x08,0x01,0x09,0x00,0x0b,0x01,0x0c,0xb5,0x01,0x12,0x12,0x18,0x05,0x13,0xb9,0x01,0x0c,0x00, +0x00,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x33,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x13,0x21,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x05,0x23,0x16,0x33,0x32,0x48,0x01,0x78,0x09,0x9b,0x5c,0x4e,0x4a,0x77,0x7c,0x91,0x94,0x70,0x72,0x82,0x01,0x78, +0xfe,0x02,0x7a,0x74,0x03,0xd9,0x91,0x35,0x6f,0x2d,0x99,0x88,0x81,0xa8,0x94,0x7b,0x1f,0x8d,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xdb,0x04,0xcf,0x00,0x1e,0x00,0x5b,0xb1,0x06,0x17,0xb8,0x01,0x0d,0xb4,0x40,0x16,0x0c,0x02,0x16,0xb8,0x01,0x0d,0xb3,0x30,0x30,0x1e,0x1c,0xbf,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0f,0x00,0x11,0x01, +0x0d,0x00,0x0c,0x01,0x09,0x40,0x0b,0x06,0x04,0x17,0x17,0x1a,0x0f,0x00,0x00,0x20,0x04,0x13,0xbc,0x01,0x0c,0x00,0x09,0x00,0x1a,0x01,0x0c,0x00,0x04,0x2f,0xe1,0xd4,0xe1,0x11,0x12,0x39,0x2f,0xc4,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x35, +0x34,0x37,0x35,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x15,0x14,0x33,0x32,0x37,0x01,0xdb,0x49,0x58,0xfc,0x7a,0x66,0x80,0x6e,0x4d,0x40,0x3e,0x49,0x71,0x8b,0x32,0x34,0x9e,0x88,0x55,0x3e,0x02,0xa4,0x1b,0xa4,0x6f,0x1c,0x04,0x20,0x59,0x48,0x52,0x17,0x68,0x1c,0x41,0x47,0x63, +0x4c,0x49,0x1c,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x54,0xb1,0x01,0x11,0xb8,0x01,0x0d,0xb5,0x10,0x10,0x16,0x06,0x09,0x0b,0xbf,0x01,0x0d,0x00,0x06,0x01,0x0b,0x00,0x18,0x00,0x16,0x01,0x0d,0x00,0x1b,0x01,0x09,0xb6,0x01,0x1d,0x11,0x11,0x14,0x18,0x0d,0xb8,0x01,0x0c,0xb2,0x03,0x03,0x1d,0xb8, +0x01,0x0c,0xb4,0x14,0x14,0x20,0x09,0x18,0x2f,0xc6,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x15,0x14,0x01,0x64,0x67,0x81,0x6d,0x4d,0x40,0x3e,0x49,0x71,0x8c,0x30,0x32,0x9e,0x87,0x55,0x3e,0x49,0x59,0xfb,0x03,0xa0,0x04,0x1f,0x5a,0x49,0x51,0x17,0x68,0x1c,0x41,0x47,0x63,0x4c,0x49,0x1c,0x64,0x1b,0xa4,0x6f,0x00,0x00,0x02,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x00,0x18,0x00,0x23,0x00,0x4e,0xb3,0x05, +0x05,0x0d,0x07,0xb8,0x01,0x0d,0xb5,0x02,0x02,0x15,0x0a,0x13,0x21,0x41,0x0b,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x18,0x01,0x08,0x00,0x1d,0x01,0x0d,0x00,0x13,0x01,0x09,0x00,0x18,0x01,0x0c,0xb5,0x16,0x0a,0x19,0x19,0x25,0x1f,0xb8,0x01,0x0c,0xb1,0x05,0x10,0x2f,0xc4,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x00,0x3f,0xed,0x3f,0x3f, +0xed,0x12,0x39,0x39,0xc4,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x03,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x36,0x02,0x60,0xfe,0xbe,0x62,0x4a,0x58,0x59,0xbf,0x03,0x42,0x76,0x68,0x81,0x8e,0x6e, +0x70,0x35,0x03,0x7e,0x7e,0x52,0x40,0x90,0x8e,0x42,0x52,0x02,0xbc,0xfe,0xd8,0x22,0x79,0x31,0xbc,0x30,0x61,0x97,0x80,0x84,0xab,0x54,0x43,0xfe,0xda,0x2e,0x46,0x5c,0xc2,0xb6,0x5e,0x00,0x00,0x02,0x00,0x58,0x01,0x94,0x00,0xf6,0x04,0xbe,0x00,0x03,0x00,0x0b,0x00,0x22,0xb4,0x01,0x08,0x40,0x04,0x02,0xb8,0x01,0x08,0xb6,0x01,0x00, +0x06,0x0a,0xff,0x3a,0x00,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0xd4,0x1a,0xdd,0xce,0x31,0x30,0x13,0x23,0x11,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0xe8,0x82,0x82,0x42,0x4e,0x50,0x4e,0x02,0x9a,0x02,0x24,0xfc,0xd6,0x4b,0x4c,0x4c,0x4b,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x56,0x05,0xc4,0x00,0x0c, +0x00,0x2e,0xb5,0x03,0x08,0x0c,0x03,0x05,0x00,0xbc,0x01,0x0a,0x00,0x0b,0x01,0x08,0x00,0x06,0x01,0x07,0xb5,0x0b,0x00,0x0e,0x0c,0x08,0x03,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xe1,0x32,0x32,0x10,0xd6,0xc6,0x00,0x3f,0x3f,0x3f,0x33,0x17,0x39,0x31,0x30,0x01,0x23,0x03,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x02,0x56,0xa0, +0xce,0x02,0x80,0x80,0x02,0xc2,0x9c,0xde,0x02,0x9a,0x01,0x0e,0xfe,0xf2,0x03,0x2a,0xfd,0xfc,0xfe,0xfe,0xfc,0x00,0x00,0x01,0x00,0x66,0x02,0x9a,0x03,0x9a,0x04,0xcf,0x00,0x1d,0x00,0x59,0xb6,0x01,0x09,0x14,0x19,0x04,0x17,0x11,0xba,0x01,0x0a,0x00,0x12,0x01,0x08,0xb2,0x1b,0x04,0x0c,0xbb,0x01,0x0d,0x00,0x40,0x00,0x17,0x01,0x09, +0xb3,0x19,0x08,0x14,0x00,0xb8,0x01,0x0c,0xb7,0x01,0x0e,0x09,0x11,0x09,0x42,0x14,0x10,0xbb,0x01,0x0c,0x00,0x11,0x00,0x08,0x01,0x0c,0xb3,0x09,0x09,0x1f,0x1e,0x11,0x12,0x39,0x2f,0xe1,0x2f,0xe1,0x32,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x00,0x18,0x3f,0x1a,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x11, +0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x03,0x9a,0x80,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02, +0x24,0x52,0x63,0x6f,0x6f,0xe3,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x40,0xb1,0x05,0x07,0x41,0x0a,0x01,0x0d,0x00,0x02,0x00,0x11,0x01,0x0a,0x00,0x12,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x17,0x01,0x09,0xb3,0x05,0x05,0x10,0x00,0xb8,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x14,0x10,0xb9,0x01,0x0c,0x00,0x11, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x3f,0xd4,0xfd,0xc6,0x31,0x30,0x01,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0xd9,0x2b,0x25,0x22,0x23,0x65,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02, +0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x01,0x33,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x17,0x00,0x2d,0x41,0x0a,0x00,0x12,0x01,0x0d,0x00,0x00,0x01,0x0b,0x00,0x0c,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x09,0x01,0x0c,0xb3,0x15,0x15,0x19,0x0f,0xb9, +0x01,0x0c,0x00,0x03,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0x7e,0x49,0x57,0x58,0x48,0x49,0x57,0x57,0x02,0x89,0x9e,0x7f,0x87,0xa2, +0x9f,0x7e,0x88,0xa1,0x01,0xdb,0x62,0x56,0x56,0x62,0x62,0x56,0x58,0x60,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xcf,0x00,0x15,0x00,0x2e,0xb1,0x01,0x03,0x41,0x0a,0x01,0x0d,0x00,0x14,0x01,0x0b,0x00,0x0b,0x00,0x09,0x01,0x0d,0x00,0x0e,0x01,0x09,0x00,0x11,0x01,0x0c,0xb4,0x06,0x06,0x17,0x0b,0x00,0x2f,0x32,0x11,0x39,0x2f, +0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x3e,0x35,0x45,0x52,0x60,0x5a,0x50,0x49,0x39,0x45,0x56,0x7c,0x97,0xa4,0x88,0x50,0x02,0xa2,0x78,0x26,0x62,0x56,0x56,0x62,0x28,0x70,0x23,0x9f,0x80,0x8b,0x9c,0x00, +0x00,0x01,0x00,0x3e,0x03,0xac,0x02,0x7f,0x04,0xcf,0x00,0x0d,0x00,0x26,0xb2,0x01,0x07,0x04,0xbc,0x01,0x0d,0x00,0x0b,0x01,0x09,0x00,0x00,0x01,0x0c,0xb3,0x01,0x01,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x01,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, +0x32,0x16,0x02,0x7f,0x81,0x57,0x49,0x49,0x57,0x80,0xa5,0x81,0x82,0x99,0x03,0xac,0x58,0x60,0x62,0x56,0x84,0x9f,0xa1,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x03,0xac,0x00,0x0d,0x00,0x26,0xb2,0x00,0x06,0x0a,0xbc,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x00,0x01,0x0c,0xb3,0x0d,0x0d,0x0f,0x07,0xb9,0x01,0x0c,0x00,0x06,0x2f, +0xe1,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc4,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x02,0x7f,0xa5,0x82,0x80,0x9a,0x80,0x58,0x48,0x49,0x57,0x03,0xac,0x84,0x9f,0xa0,0x83,0x56,0x62,0x62,0x56,0x00,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x3e, +0xb4,0x03,0x06,0x00,0x09,0x15,0x41,0x0b,0x01,0x0d,0x00,0x0f,0x01,0x0b,0x00,0x04,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x09,0x01,0x09,0x00,0x0c,0x01,0x0c,0xb5,0x17,0x17,0x1d,0x11,0x01,0x05,0xb9,0x01,0x0c,0x00,0x04,0x2f,0xe1,0x32,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39,0x39,0xc4,0x31,0x30,0x13,0x23, +0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x80,0x02,0x42,0x76,0x68,0x81,0x8f,0x6c,0x72,0x36,0x51,0x40,0x91,0x8d,0x43,0x52,0x02,0xdd,0xfe,0xc7,0x03,0x1a,0x50,0x61,0x97,0x80,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6, +0x60,0x00,0x00,0x01,0x00,0x0a,0x02,0x8e,0x01,0x68,0x05,0x62,0x00,0x13,0x00,0x45,0xb1,0x13,0x11,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb4,0x0a,0x0b,0x0e,0x0b,0x05,0xba,0x01,0x0d,0x00,0x08,0x01,0x08,0xb7,0x0d,0x13,0x13,0x15,0x05,0x0e,0x05,0x0b,0xb8,0x01,0x0c,0x40,0x09,0x07,0x10,0x08,0x20,0x08,0x30,0x08,0x03,0x08,0x2f,0x5d, +0xcd,0xe1,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x22,0x40,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0xa0,0x12,0xbe,0x01,0x08,0x6a,0x80,0x24,0xa4, +0x6a,0xfe,0x5e,0x10,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x36,0xb3,0x11,0x02,0x08,0x0c,0x41,0x0a,0x01,0x0d,0x00,0x05,0x01,0x0b,0x00,0x00,0x01,0x0a,0x00,0x08,0x01,0x08,0x00,0x02,0x00,0x11,0x01,0x0c,0xb3,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc4,0x00,0x3f, +0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x02,0x9a,0x56,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x01,0x00,0x3e,0x02,0xb8,0x02,0x72,0x04,0xa2,0x00,0x12, +0x00,0x2e,0x40,0x15,0x00,0x0e,0x40,0x01,0x09,0x0d,0x08,0x09,0x08,0x42,0x08,0x09,0x0c,0x00,0x09,0x0a,0x0f,0x04,0x04,0x14,0x09,0x2f,0x12,0x39,0x2f,0xdd,0xc4,0x12,0x39,0x39,0x00,0x2f,0xcd,0x2b,0x00,0x18,0x10,0xc4,0x10,0xd6,0x1a,0xed,0x31,0x30,0x13,0x35,0x21,0x32,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x15,0x23,0x15,0x16,0x15, +0x14,0x06,0x23,0x3e,0x01,0x32,0x98,0x54,0x40,0xfe,0xca,0x02,0x24,0x4c,0x5c,0x7c,0x6a,0x02,0xb8,0x80,0x6c,0x38,0x47,0x7f,0x7f,0x02,0x3f,0x69,0x58,0x69,0x00,0x01,0x00,0x60,0x02,0x89,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x67,0x40,0x09,0x02,0x07,0x14,0x1d,0x04,0x0c,0x18,0x05,0x10,0xbf,0x01,0x0d,0x00,0x40,0x00,0x09,0x01,0x0b, +0x00,0x00,0x01,0x0a,0x00,0x0c,0x01,0x08,0xb4,0x07,0x14,0x02,0x02,0x1d,0xb8,0x01,0x0c,0xb6,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xb8,0x01,0x0c,0xb6,0x00,0x0c,0x01,0x0b,0x03,0x0c,0x15,0xb8,0x01,0x0c,0xb3,0x14,0x1e,0x1f,0x14,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x18,0x2f,0x5f,0x5e,0x5d,0xe1,0x2b,0x01,0x10,0xf0, +0xe1,0xc1,0x18,0x2f,0x12,0x39,0x00,0x3f,0x3f,0x3f,0x1a,0xed,0x39,0x39,0x12,0x17,0x39,0x31,0x30,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41, +0x80,0x68,0x32,0x40,0x80,0x02,0x9a,0x52,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0x00,0x0a,0x02,0x9a,0x02,0x35,0x04,0xbe,0x00,0x0b,0x00,0x1b,0xb3,0x07,0x00,0x03,0x02,0xba,0x01,0x0a,0x00,0x03,0x01,0x08,0xb2,0x00,0x0d,0x03,0x2f,0x10,0xc6,0x00,0x3f,0x3f, +0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x02,0x35,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x04,0xbe,0xfd,0xdc,0x02,0x24,0xfe,0x8e,0x2f,0x25,0x22,0x32,0x01,0x72,0x00,0x01,0x00,0x14,0x02,0x89,0x02,0x79,0x04,0xcf,0x00,0x1b,0x00,0x4a,0x40,0x0b,0x17,0x0d,0x0b,0x04, +0x06,0x12,0x1b,0x09,0x19,0x02,0x0b,0xbd,0x01,0x0d,0x00,0x40,0x00,0x06,0x01,0x0b,0x00,0x12,0x01,0x09,0x40,0x10,0x04,0x0d,0x17,0x03,0x0f,0x1b,0x0e,0x15,0x15,0x1d,0x0f,0x08,0x0f,0x42,0x08,0x0f,0x2f,0x2f,0x2b,0x11,0x12,0x01,0x39,0x18,0x2f,0xe2,0x12,0x17,0x39,0x00,0x3f,0x3f,0x1a,0xfd,0x39,0x39,0xd6,0xc4,0x11,0x12,0x39,0x12, +0x39,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x02,0x79,0x3c,0x49,0x60,0x4e,0x4f,0x5b,0x46,0x42,0x43,0x3f,0x36,0x28,0x77,0x6e,0x5d,0x5c,0x6c,0x78,0x2a,0x36,0x41,0x40,0x02,0xb4,0x2b,0x3b,0x3b,0x2b,0x79,0x39, +0x20,0x6b,0x85,0x57,0x74,0x71,0x56,0x84,0x6e,0x22,0x37,0x00,0x00,0x02,0x00,0x60,0x01,0xa4,0x02,0x74,0x05,0xc4,0x00,0x12,0x00,0x25,0x00,0x63,0xb3,0x02,0x11,0x0c,0x13,0xb8,0x01,0x0d,0xb4,0x40,0x14,0x06,0x11,0x14,0xb8,0x01,0x0d,0xb3,0x1e,0x30,0x1d,0x1f,0xbe,0x01,0x0d,0x00,0x11,0x01,0x0b,0x00,0x1a,0x01,0x0d,0x00,0x06,0x01, +0x07,0xb6,0x0c,0x0e,0x13,0x13,0x22,0x1d,0x18,0xb8,0x01,0x0c,0xb2,0x09,0x09,0x0e,0xb8,0x01,0x0c,0xb4,0x22,0x22,0x27,0x1d,0x01,0xb9,0x01,0x0c,0x00,0x02,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0xe1,0x11,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0xfd,0xc6,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x39,0x10,0xc4,0x31,0x30,0x13, +0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x15,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xdf,0x7f,0x8c,0x74,0x70,0x86,0x7f,0x9d,0x93,0x79,0x4a,0x09,0x1d,0x42,0x51,0x79,0x7f,0x3b,0x46,0x42,0x52,0x60,0x50,0x02,0xa6,0xfe,0xfe, +0x03,0x14,0x7a,0x92,0x7c,0x5c,0x81,0x2f,0x04,0x2e,0x93,0x67,0x87,0x01,0x77,0x62,0x46,0x3a,0x7c,0xa2,0xfe,0x5a,0x22,0x46,0x3a,0x40,0x4c,0x00,0x00,0x01,0xff,0xec,0x01,0xa4,0x02,0x23,0x04,0xbe,0x00,0x13,0x00,0x36,0xb4,0x03,0x0a,0x05,0x07,0x00,0xbb,0x01,0x0a,0x00,0x10,0x00,0x07,0x01,0x08,0xb6,0x0a,0x00,0x05,0x07,0x07,0x00, +0x0d,0xbc,0x01,0x0c,0x00,0x12,0x00,0x00,0x01,0x0c,0x00,0x05,0x2f,0xe1,0xd4,0xe1,0x10,0xc1,0x2f,0x11,0x12,0x39,0x00,0x3f,0x33,0x3f,0x11,0x39,0x39,0xcd,0x31,0x30,0x01,0x14,0x07,0x23,0x36,0x35,0x02,0x03,0x33,0x16,0x17,0x33,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x01,0x50,0x02,0x88,0x0b,0x48,0x9d,0x91,0x75,0x39,0x04,0x75, +0x06,0x80,0x05,0x02,0x83,0xb3,0x2c,0x6e,0x94,0x01,0x06,0x01,0x12,0xda,0xc8,0xa5,0xb1,0x2a,0x22,0x20,0x21,0xe8,0x00,0x02,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xc4,0x00,0x17,0x00,0x21,0x00,0x4c,0x40,0x09,0x00,0x02,0x0d,0x10,0x18,0x1f,0x06,0x05,0x1d,0xbf,0x01,0x0d,0x00,0x13,0x01,0x0b,0x00,0x08,0x00,0x0a,0x01,0x0d,0x00,0x05, +0x01,0x07,0xb3,0x08,0x08,0x10,0x0c,0xb8,0x01,0x0c,0xb2,0x02,0x16,0x10,0xb8,0x01,0x0c,0xb3,0x1f,0x1f,0x23,0x1a,0xb9,0x01,0x0c,0x00,0x16,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x10,0xd4,0xe1,0x10,0xc0,0x2f,0x00,0x3f,0xfd,0xc6,0x3f,0xed,0x12,0x17,0x39,0x31,0x30,0x13,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14, +0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x25,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0xee,0x4a,0x72,0x63,0x5f,0x60,0x5e,0x5b,0x5a,0x8f,0xcb,0xa2,0x83,0x81,0x9b,0x01,0x08,0x88,0x56,0x4a,0xa0,0x48,0x04,0xa0,0x37,0x4e,0x45,0x5a,0x2a,0x75,0x39,0x3b,0x25,0x58,0x7c,0x9c,0x72,0x93,0x8f,0x6f,0xa0,0x3b,0x54,0x80, +0x48,0x52,0x9a,0x36,0x5d,0x00,0x00,0x02,0x00,0x3e,0x01,0xa4,0x03,0x06,0x04,0xcf,0x00,0x15,0x00,0x1d,0x00,0x61,0xb3,0x02,0x1c,0x00,0x0d,0x41,0x0a,0x01,0x0d,0x00,0x03,0x01,0x0b,0x00,0x09,0x01,0x08,0x00,0x19,0x01,0x0d,0x00,0x40,0x00,0x10,0x01,0x09,0xb4,0x09,0x09,0x0d,0x0b,0x16,0xb8,0x01,0x0c,0xb6,0x13,0x0e,0x01,0x06,0x02, +0x42,0x0b,0xb8,0x01,0x0c,0xb3,0x06,0x1c,0x0d,0x01,0xb8,0x01,0x0c,0xb3,0x02,0x1e,0x1f,0x02,0xb8,0x01,0x0c,0xb1,0x08,0x30,0x2b,0x01,0x10,0xe1,0x39,0x39,0x18,0x2f,0xe1,0x2b,0x01,0x10,0xf0,0xe1,0x11,0x12,0x39,0x18,0x2f,0x00,0x3f,0x1a,0xed,0x3f,0x3f,0xed,0x39,0x39,0xcd,0x31,0x30,0x01,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x37, +0x33,0x06,0x15,0x14,0x17,0x11,0x34,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x34,0x26,0x23,0x22,0x15,0x11,0x36,0x01,0xe2,0x80,0x8a,0x9a,0x56,0x86,0x5e,0xa6,0xba,0x68,0x82,0x9e,0x1f,0x3e,0x2f,0x38,0xa5,0x02,0x89,0xe5,0xe5,0x05,0x9c,0x86,0x8a,0x84,0x78,0x90,0xbc,0x06,0x01,0x24,0xb7,0x9b,0x82,0x84,0x9e,0x01,0x1e,0x54,0x62,0x48, +0xfe,0xd8,0x08,0x00,0x00,0x01,0xff,0xf6,0x01,0x94,0x02,0x62,0x04,0xcf,0x00,0x1c,0x00,0x3c,0x40,0x0b,0x06,0x09,0x14,0x17,0x04,0x08,0x16,0x0e,0x0c,0x1c,0x1a,0xb8,0x01,0x0d,0xb3,0x02,0x08,0x11,0x16,0xbc,0x01,0x08,0x00,0x0c,0x01,0x0d,0x00,0x11,0x01,0x09,0xb4,0x16,0x00,0x1e,0x0e,0x08,0x2f,0xc6,0x10,0xd4,0xc4,0x00,0x3f,0xed, +0x3f,0x10,0xd4,0xd4,0xfd,0xc6,0x10,0xc6,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x27,0x27,0x03,0x23,0x13,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x17,0x37,0x33,0x03,0x17,0x16,0x33,0x32,0x37,0x02,0x62,0x20,0x21,0x41,0x4c,0x28,0x47,0xa0,0x8f,0xf0,0x4e,0x29,0x2b,0x13,0x1b,0x1c,0x28,0x6a,0x34,0x3d, +0x7d,0x8c,0xca,0x67,0x2f,0x2e,0x17,0x13,0x01,0x9e,0x0a,0x44,0x5b,0xa8,0xfe,0xc9,0x01,0xb4,0xb0,0x5c,0x0a,0x6c,0x09,0x7b,0x92,0xfc,0xfe,0x8e,0xe6,0x68,0x08,0x00,0xff,0xff,0x00,0x58,0xff,0x42,0x00,0xf6,0x02,0x6c,0x00,0x07,0x07,0xce,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xff,0x42,0x01,0xa8,0x01,0x70,0x00,0x07,0x06,0x79, +0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x5c,0xff,0x31,0x02,0x46,0x01,0x66,0x00,0x07,0x07,0xba,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x0a,0xff,0x42,0x02,0x35,0x01,0x66,0x00,0x07,0x07,0xbd,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x60,0xfe,0x4c,0x02,0x74,0x02,0x6c,0x00,0x07,0x07,0xbf,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xec,0xfe,0x4c, +0x02,0x23,0x01,0x66,0x00,0x07,0x07,0xc0,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x66,0xfe,0x4c,0x02,0x89,0x01,0x77,0x00,0x07,0x07,0xcf,0x00,0x00,0xfc,0xa8,0xff,0xff,0x00,0x3e,0xfe,0x4c,0x03,0x06,0x01,0x77,0x00,0x07,0x07,0xc2,0x00,0x00,0xfc,0xa8,0xff,0xff,0xff,0xf6,0xfe,0x3c,0x02,0x62,0x01,0x77,0x00,0x07,0x07,0xc3,0x00,0x00, +0xfc,0xa8,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0c,0x00,0x16,0x40,0x09,0x00,0x07,0x09,0xf2,0x03,0x00,0x0c,0x07,0x06,0x2f,0xcd,0xd4,0xcd,0x00,0x2f,0xfd,0xd6,0xc4,0x31,0x30,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x03,0xc4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68, +0x0c,0x05,0xf2,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x02,0x00,0x58,0x02,0x9a,0x00,0xf6,0x05,0xc4,0x00,0x07,0x00,0x0b,0x00,0x25,0xb3,0x04,0x00,0x40,0x0a,0xba,0x01,0x08,0x00,0x09,0x01,0x0a,0xb6,0x09,0x08,0x02,0x06,0xff,0x3a,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xe1,0x2b,0x00,0x18,0x3f,0x3f,0x1a,0xde,0xcd,0x31,0x30,0x13, +0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x03,0x23,0x11,0x33,0xa6,0x4e,0x50,0x4e,0x0e,0x82,0x82,0x05,0x2d,0x4c,0x4b,0x4b,0x4c,0xfd,0x6d,0x02,0x24,0x00,0x02,0x00,0x66,0x01,0xa4,0x02,0x89,0x04,0xcf,0x00,0x0e,0x00,0x19,0x00,0x31,0xb1,0x02,0x13,0x41,0x09,0x01,0x0d,0x00,0x0d,0x01,0x0b,0x00,0x17,0x01,0x0d,0x00,0x07,0x01,0x09,0x00, +0x0a,0x01,0x0c,0xb4,0x15,0x15,0x1b,0x0f,0x02,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xed,0x3f,0xed,0xc6,0x31,0x30,0x13,0x23,0x11,0x23,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0xe8,0x02,0x80,0x9a,0x7d,0x7a,0x92,0x8f,0x6c, +0x72,0x36,0x51,0x40,0x91,0x91,0x40,0x51,0x02,0xdd,0xfe,0xc7,0x02,0x00,0x8b,0xa0,0x9a,0x7d,0x84,0xab,0x01,0x37,0x2e,0x46,0x5c,0xc2,0xb6,0x60,0x00,0x01,0x00,0x42,0x00,0x00,0x03,0xc1,0x05,0xba,0x00,0x06,0x00,0x33,0x40,0x1c,0x9d,0x02,0x01,0x5b,0x02,0x6b,0x02,0x7b,0x02,0x03,0x49,0x02,0x01,0x38,0x02,0x01,0x05,0x02,0x06,0x08, +0x03,0x04,0x04,0x03,0x03,0x02,0x06,0x00,0x00,0x2f,0x2f,0x33,0x39,0x2f,0x33,0x01,0x2f,0x33,0x10,0xde,0xdd,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x01,0x27,0x01,0x33,0x03,0xc1,0x9c,0xfd,0x71,0x54,0x02,0xe3,0x9c,0x05,0x00,0xfd,0x8f,0x6a,0x02,0xc1,0x00,0x02,0x00,0x8f,0xff,0xe7,0x06,0xb2,0x04,0x19,0x00,0x20, +0x00,0x27,0x00,0xe1,0x40,0x34,0x69,0x23,0x79,0x23,0x02,0xe6,0x1e,0xf6,0x1e,0x02,0x55,0x14,0x65,0x14,0x02,0xaa,0x0f,0x01,0xcf,0x26,0xdf,0x26,0x02,0x9b,0x26,0xfb,0x26,0x02,0x24,0x26,0x34,0x26,0x02,0x05,0x17,0x01,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0x03,0x09,0x0f,0x19,0x0f,0x02,0x5b,0x0a,0x01,0x02,0xb8,0xff,0xe8,0x40,0x0e,0x13, +0x16,0x48,0x24,0x02,0x34,0x02,0x44,0x02,0x03,0xe2,0x1b,0x01,0x1b,0xb8,0xff,0xe0,0xb3,0x19,0x1c,0x48,0x1b,0xb8,0xff,0xe0,0x40,0x51,0x0b,0x0e,0x48,0xcb,0x0b,0x01,0x5b,0x0b,0x01,0x1b,0x0b,0x1d,0x0e,0x27,0x95,0xe0,0x01,0xf0,0x01,0x02,0x01,0x01,0x09,0x24,0x95,0x1d,0x10,0x19,0x11,0x0f,0x07,0xec,0x00,0x06,0x10,0x06,0x02,0x06, +0x04,0x95,0x09,0x16,0x15,0x95,0x0e,0x16,0x27,0x01,0x0b,0x03,0x1a,0x84,0x5f,0x19,0x7f,0x19,0x02,0x20,0x19,0xa0,0x19,0x02,0x19,0x19,0x11,0x06,0x40,0x0f,0x12,0x48,0x06,0x21,0x83,0x00,0x29,0x12,0x84,0x00,0x11,0x01,0x11,0x2f,0x5d,0xe1,0x10,0xde,0xe1,0xc6,0x2b,0x12,0x39,0x2f,0x5d,0x5d,0xe1,0x17,0x39,0x00,0x3f,0xed,0x3f,0xfd, +0xd6,0x5d,0xed,0x3f,0xc4,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x11,0x12,0x39,0x39,0x5d,0x5d,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x2b,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33, +0x15,0x36,0x33,0x32,0x12,0x15,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0xb2,0xfd,0x2f,0x05,0xae,0x99,0xac,0x91,0x8a,0xc7,0xfe,0xd9,0x71,0x2a,0xba,0x8d,0xfe,0x7f,0xa4,0xfe,0x7c,0x90,0xa4,0x7d,0xbb,0xc2,0xd7,0xa8,0x02,0x86,0x78,0x71,0xa3,0x15,0x01,0xd7,0xae,0xb6,0x70,0x99,0x63,0xea,0x66,0x84,0x01,0xb5,0x02,0x64,0xfd,0xb6, +0xfe,0xbd,0xb3,0x94,0x02,0x46,0x7b,0x94,0xfe,0xf8,0xe4,0x35,0x91,0x9a,0xa0,0x8b,0x00,0x01,0x00,0x74,0x00,0x00,0x04,0x8b,0x05,0xb4,0x00,0x27,0x00,0x57,0x40,0x2e,0x1d,0x91,0x02,0x02,0x1e,0x00,0x25,0x92,0x40,0x22,0x1e,0x00,0x22,0x92,0x28,0x30,0x21,0x92,0x1e,0x1e,0x0c,0x27,0x92,0x00,0x10,0x13,0x92,0x0c,0x04,0x0f,0x0f,0x1d, +0x22,0x26,0x7e,0x01,0x01,0x07,0x24,0x20,0x00,0x00,0x29,0x18,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xc4,0xc4,0x12,0x39,0x2f,0xf1,0x32,0x33,0xc0,0x2f,0x31,0x00,0x3f,0xfd,0xc6,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, +0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x8b,0xfd,0xb6,0x6b,0xab,0x77,0x40,0x49,0x8a,0xc5,0x7c,0x44,0x7d,0x34,0x39,0x80,0x42,0x55,0x86,0x5b,0x30,0x24,0x49,0x6e,0x4a,0x02,0x33,0xfe,0x6f,0x01,0x74,0xfe,0x8c,0x01,0xa8,0x01,0x7e,0x03,0x54, +0x8d,0xb9,0x69,0x7a,0xce,0x95,0x53,0x19,0x19,0xac,0x28,0x26,0x3f,0x6d,0x93,0x53,0x4c,0x81,0x63,0x3f,0x0b,0x01,0xe8,0x8c,0xfe,0xd4,0x8c,0xfe,0xd0,0x00,0x00,0x03,0x00,0x76,0xff,0xb5,0x04,0x18,0x06,0x3d,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x97,0x40,0x1d,0x23,0x1e,0x1b,0x1d,0x20,0x22,0x25,0x04,0x1b,0x0e,0x31,0x3b,0x3e,0x04, +0x3f,0x15,0x01,0x15,0x10,0x92,0x1b,0x13,0x04,0x07,0x0a,0x2d,0x04,0x01,0x0b,0xb8,0xff,0xc0,0x40,0x3c,0x0c,0x0f,0x48,0x0b,0x37,0x0d,0x32,0x3a,0x3f,0x04,0x37,0x05,0x2e,0x37,0x92,0x01,0x32,0x3a,0x3f,0x0d,0x04,0x0b,0x31,0x3b,0x3e,0x0e,0x04,0x16,0x2f,0x2d,0x01,0x04,0x07,0x04,0x0b,0x25,0x22,0x20,0x1d,0x04,0x16,0x28,0x05,0x06, +0x1e,0x03,0x1f,0x00,0x23,0x2e,0x03,0x24,0x28,0x0b,0x16,0x16,0x42,0x2f,0x7d,0x28,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x10,0xd4,0x17,0x32,0xc4,0x17,0x32,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0xcd,0x32,0x11,0x17,0x33,0x10,0xc4,0x2b,0x11,0x17,0x33,0x3f,0xfd,0xc6,0x5d,0x17,0x33, +0x11,0x17,0x33,0x10,0xce,0x32,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x13,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x01,0x14,0x17,0x01,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16, +0x17,0x01,0x26,0x03,0x36,0x2b,0x1a,0x2f,0x16,0x2b,0x73,0x31,0x10,0x20,0x11,0x3c,0x30,0xfe,0xa3,0x42,0x52,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x5a,0x50,0x17,0x71,0x23,0x2a,0x27,0x33,0x71,0x4d,0x4c,0x54,0x52,0x91,0xc7,0x76,0x2d,0xfe,0x63,0x34,0x01,0x0b,0x48,0x76,0x54,0x2d,0x01,0xdf,0x0a,0x12,0x09,0xfe,0xc4, +0x11,0x25,0x14,0x01,0x52,0x1c,0x06,0x3d,0x8b,0x02,0x02,0x8f,0xa2,0x04,0x0a,0x05,0xa5,0x1b,0x10,0xfb,0x82,0x1c,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x18,0x4b,0x74,0x18,0x1e,0xaa,0x01,0x00,0x5e,0x01,0x00,0x9f,0x9a,0x01,0x03,0xc5,0x7f,0x15,0x95,0xfc,0x7f,0xa6,0x80,0x03,0x71,0x1d,0x6d,0x98,0xbd,0x01,0xfe,0x01,0x01, +0xfb,0xf0,0x16,0x25,0x11,0x04,0x5b,0x03,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0x18,0x05,0xb2,0x00,0x3e,0x00,0x5e,0x40,0x16,0x38,0x37,0x3b,0x00,0x02,0x95,0x3b,0x35,0x35,0x1f,0x15,0x34,0x07,0x3f,0x0f,0x01,0x0f,0x0a,0x92,0x15,0x13,0x25,0xb8,0xff,0xc0,0x40,0x0c,0x0c,0x0f,0x48,0x25,0x2a,0x92,0x1f,0x04,0x38,0x00,0x37,0x07,0xb8, +0x01,0x2e,0x40,0x0b,0x34,0x34,0x1a,0x00,0x25,0x10,0x10,0x40,0x2f,0x7d,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0x12,0x39,0x2f,0xe1,0x32,0x12,0x39,0x00,0x3f,0xfd,0xc6,0x2b,0x3f,0xfd,0xc6,0x5d,0x33,0x33,0x11,0x12,0x39,0x2f,0xd4,0xfd,0xc6,0x11,0x33,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x16,0x32,0x33,0x32, +0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x18,0x27,0x48,0x5f,0x3f,0x3f,0x05,0x0c,0x06,0x2f,0x4e,0x49,0x48,0x27,0x26,0x4a,0x50,0x57,0x34,0x83, +0xdc,0x9f,0x59,0x65,0xb1,0xf0,0x8b,0x2c,0x47,0x40,0x3d,0x21,0x27,0x42,0x40,0x43,0x27,0x69,0xaf,0x80,0x47,0x27,0x48,0x66,0x3f,0x92,0x04,0x20,0x80,0x50,0x1d,0x2b,0x10,0x03,0x1c,0x1e,0x59,0x58,0x9a,0xfe,0x86,0x01,0x0a,0x14,0x1e,0x14,0x96,0x11,0x1a,0x12,0x09,0x66,0xba,0x01,0x08,0xa2,0xac,0x01,0x1b,0xca,0x6f,0x05,0x0a,0x10, +0x0b,0xa5,0x12,0x19,0x10,0x08,0x5b,0xa3,0xe3,0x89,0x63,0xae,0x8c,0x68,0x1e,0x03,0x18,0xbd,0x61,0x6c,0x07,0x06,0x00,0x01,0x00,0xa6,0xff,0x12,0x06,0x54,0x05,0x0c,0x00,0x2e,0x00,0x8c,0x40,0x48,0x10,0x13,0x16,0x03,0x12,0x26,0x2e,0x01,0x15,0x12,0x06,0x20,0x2d,0x2b,0x0f,0x0c,0x95,0x01,0x24,0x23,0x19,0x95,0x01,0x26,0x10,0x21, +0x0f,0x2d,0x16,0x15,0x2e,0x15,0x2d,0x16,0x2e,0x15,0x13,0x10,0x0f,0x01,0x14,0x00,0x01,0x0f,0x10,0x13,0x04,0x14,0x2e,0x00,0x00,0x06,0x14,0x15,0x20,0x2b,0x2b,0x17,0x11,0x84,0x12,0x12,0x20,0x06,0x84,0x05,0x05,0x30,0x23,0x1f,0x84,0x20,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0x33,0xc1,0x2f,0x10,0xc6,0x32,0x10, +0xc0,0x2f,0x32,0x12,0x00,0x17,0x39,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x11,0x12,0x00,0x39,0x39,0x10,0x87,0x05,0xc0,0xc0,0x31,0x00,0x3f,0x3f,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x33,0x33,0x2f,0x33,0x33,0xc6,0x10,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03, +0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x85,0x87,0x04,0x01,0x52,0xa4,0x11,0x32,0x5a,0x48,0x07,0x0d,0x07,0xe1,0xa4,0xf5,0x99,0x01,0x8e,0xe9,0x3f,0x5e,0x3d,0x1e,0xa4,0xa4,0x04,0x6e,0xd0,0x32,0x5d,0x4d,0x38,0x0e,0x3e, +0x5f,0x9f,0x05,0x0c,0xf4,0xfe,0x5f,0xfd,0x89,0x02,0x4c,0x46,0x76,0x56,0x30,0x01,0x01,0xfe,0x69,0xfe,0x0b,0xcc,0xfe,0x46,0x02,0xd0,0x7e,0x01,0x2e,0x39,0x5c,0x75,0x3c,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1e,0x38,0x4e,0x30,0x73,0x34,0x01,0x21,0x00,0x00,0x05,0x00,0x23,0x00,0x00,0x05,0x0a,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x29,0x00,0x31,0x00,0x98,0x40,0x5a,0x24,0x25,0x2a,0x2b,0x04,0x15,0x02,0x0f,0x13,0x29,0x03,0x0c,0x1c,0x20,0x03,0x17,0x92,0x18,0x0b,0x1f,0x23,0x03,0x04,0x08,0x2e,0x03,0x1b,0x92,0x2f,0x00,0x01,0x90,0x00,0xa0,0x00,0xc0,0x00,0xd0,0x00,0x04,0x00,0x00,0x02,0x11,0x15,0x06,0x02,0x03,0x12,0x21,0x22,0x2f,0x04,0x2a,0x11,0x29, +0x1c,0x1f,0x04,0x04,0x03,0x24,0x1b,0x17,0x15,0x19,0x01,0x15,0x0c,0x08,0x0a,0x0e,0x25,0x1e,0x13,0x20,0x2a,0x03,0x14,0x03,0x15,0x11,0x06,0x7f,0x10,0x10,0x33,0x14,0x7f,0x15,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x33,0x11,0x33,0x11,0x17,0x33,0x32,0x32,0xc6,0x32,0x33,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x12,0x17,0x39,0x11,0x12, +0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x5d,0x5d,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x01,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x21,0x05,0x21, +0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x23,0x99,0xcb,0xf1,0x01,0x5f,0x97,0x9c,0x9c,0x9c,0x9c,0xc2,0xfe,0xfb,0xfe,0xac,0x97,0x99,0x99,0x99,0x02,0xde,0xd6,0xfe,0xe7,0xfe,0x95,0x01,0x0f,0x44,0xcb,0x02,0x88,0x03,0x07,0x92,0xfe,0x0c,0x05,0x07,0x85,0x60,0x1b,0x03,0xae,0x01,0xec,0xfe, +0x14,0x01,0xec,0xfe,0x14,0x8d,0x88,0x8c,0xfd,0xf3,0x02,0x0d,0xfd,0xf3,0x02,0x0d,0x8c,0x88,0x88,0x88,0x88,0x88,0xfd,0xbc,0x31,0xa0,0x5f,0x02,0xbb,0x2e,0x94,0x58,0xc2,0x37,0x00,0x03,0x00,0xbc,0xff,0xe8,0x06,0x77,0x05,0x9a,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x84,0x40,0x12,0x2c,0x47,0x51,0x36,0x60,0x3a,0x70,0x3a,0x02,0x3a, +0x3d,0x95,0x36,0x36,0x36,0x07,0x08,0x22,0xb8,0xff,0xc0,0x40,0x33,0x09,0x0e,0x48,0x22,0x25,0x95,0x51,0x16,0x14,0x13,0x18,0x91,0x05,0x05,0x08,0x01,0x07,0x17,0x91,0x08,0x03,0x22,0x31,0x3a,0x4c,0x42,0x7e,0x31,0x31,0x27,0x1e,0x13,0x13,0x0e,0x01,0x00,0x00,0x0e,0x7d,0x1e,0x1e,0x07,0x27,0x7e,0x4c,0x4c,0x56,0x18,0x06,0x7e,0x07, +0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xf1,0xc2,0x2f,0x32,0x10,0xc1,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc4,0x10,0xc6,0x31,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0xed,0x39,0x39,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0x2f,0xfd,0xc6,0x5d,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23, +0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26, +0x27,0x04,0x04,0xc8,0xb1,0x4e,0x8d,0x4c,0xa8,0x01,0x60,0x5e,0x9e,0x72,0x40,0x29,0x4e,0x72,0x4a,0x51,0x42,0xfe,0x3a,0x92,0x3f,0x6b,0x4e,0x2c,0x8f,0x8d,0x02,0x21,0x3e,0x81,0x44,0xb0,0x1d,0x31,0x40,0x23,0x49,0x61,0x3b,0x18,0x2e,0x57,0x7d,0x4f,0x39,0x73,0x2d,0x33,0x6e,0x3d,0x24,0x3d,0x2b,0x19,0x17,0x2b,0x3c,0x24,0x42,0x64, +0x42,0x22,0x23,0x51,0x84,0x61,0x45,0x84,0x36,0x01,0xb0,0xb2,0xfd,0x9e,0x05,0x9a,0x2f,0x60,0x8f,0x60,0x4b,0x82,0x67,0x48,0x10,0x04,0x1e,0x8c,0x03,0x20,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0xfb,0xcc,0x2a,0x31,0x6e,0x1f,0x2c,0x1f,0x18,0x0c,0x18,0x35,0x41,0x4d,0x2f,0x35,0x5c,0x46,0x28,0x14,0x12,0xa3,0x1f,0x20,0x0f,0x1c, +0x28,0x19,0x21,0x2a,0x1d,0x16,0x0c,0x16,0x2f,0x3e,0x50,0x37,0x31,0x5e,0x4a,0x2d,0x1d,0x1b,0x00,0x07,0x00,0x14,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43,0x01,0x3f,0x40,0xb7,0x1a,0x1d,0x1e,0x01,0x02,0x19,0x02,0x17,0x26,0x25,0x3a,0x39,0x18,0x39,0x3b,0x24,0x27,0x16, +0x15,0x34,0x15,0x04,0x29,0x2a,0x41,0x42,0x03,0x42,0x40,0x2b,0x28,0x05,0x06,0x3f,0x06,0x13,0x22,0x21,0x32,0x31,0x14,0x31,0x12,0x23,0x20,0x33,0x2c,0x11,0x2c,0x0f,0x0c,0x0b,0x08,0x07,0x10,0x07,0x2e,0x2f,0x36,0x37,0x04,0x07,0x10,0x01,0x05,0x33,0x3b,0x04,0x1e,0x20,0x24,0x28,0x04,0x09,0x92,0x0a,0x1d,0x23,0x27,0x2b,0x04,0x12, +0x16,0x1a,0x40,0x41,0x05,0x0d,0x92,0x0e,0x0e,0x10,0x03,0x07,0x18,0x14,0x10,0x03,0x04,0x2a,0x41,0x03,0x3c,0x03,0x3b,0x24,0x27,0x16,0x04,0x15,0x37,0x3a,0x25,0x26,0x17,0x04,0x18,0x36,0x01,0x1e,0x1d,0x1a,0x04,0x19,0x02,0x05,0x28,0x2b,0x40,0x04,0x3d,0x06,0x32,0x21,0x22,0x13,0x04,0x14,0x2f,0x12,0x23,0x20,0x33,0x04,0x11,0x2e, +0x08,0x0c,0x0f,0x03,0x10,0x07,0x15,0x14,0x06,0x1c,0x00,0x02,0x0d,0x09,0x07,0x11,0x10,0x07,0x18,0x19,0x03,0x36,0x37,0x19,0x04,0x02,0x02,0x45,0x07,0x11,0x10,0x06,0x2e,0x2f,0x10,0x04,0x07,0x2f,0x17,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x17,0x33,0x2f,0x33,0x11,0x33,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x10,0xcd,0x32,0x11,0x12, +0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0xfd,0x17,0x33,0x17,0x32,0xd6,0xed,0x17,0x33,0x17,0x32,0x11,0x12,0x17,0x39,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x10, +0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x31,0x30,0x01,0x21,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x21,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13, +0x33,0x13,0x21,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x05,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0xe0,0xfe,0xf3,0x63,0xa2,0x63,0xe7,0x63,0xa1,0x67,0xfe,0xfb,0xe9,0x1a,0xcf,0xb3, +0x5f,0x8f,0x5a,0x01,0x0d,0x5e,0x84,0x59,0x01,0x01,0x57,0x8d,0x5c,0xbe,0xd9,0x19,0xf1,0xfb,0xa5,0xa5,0x1a,0xd8,0x02,0x60,0x9e,0x18,0xcf,0xfe,0xed,0xb2,0x19,0x80,0xf7,0x0d,0x03,0x04,0x03,0x11,0x25,0x71,0x02,0x6d,0x0b,0x05,0x02,0x03,0x0f,0x23,0x6c,0xea,0x03,0x04,0x0d,0x14,0x4a,0x13,0x0d,0x02,0x10,0xfd,0xf0,0x02,0x10,0xfd, +0xf0,0x02,0x10,0x8c,0x88,0x8d,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x01,0xe9,0xfe,0x17,0x8d,0x88,0x88,0x88,0x88,0x88,0x88,0xfe,0x2a,0x45,0x4b,0x35,0x5b,0xc2,0xca,0x39,0x4d,0x34,0x56,0xc6,0x02,0x9a,0x4a,0x46,0x69,0x67,0x43,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x03,0xd3,0x04,0x00,0x00,0x0f,0x00,0x1f,0x00,0x4a,0x40,0x23, +0x19,0x01,0xbe,0x0e,0x0e,0x1f,0x0f,0x1e,0xbe,0x06,0x11,0x0f,0x00,0xcd,0x0f,0x0f,0x10,0x18,0xc2,0x19,0x19,0x10,0x06,0xc2,0x2f,0x07,0x3f,0x07,0x02,0x07,0x07,0x21,0x1f,0xcd,0x10,0xb8,0xff,0xc0,0xb3,0x0b,0x10,0x48,0x10,0x2f,0x2b,0xe1,0x12,0x39,0x2f,0x5d,0xe1,0x11,0x39,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0x33,0xfd, +0xc6,0x2f,0x33,0x10,0xfd,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x21,0x11,0x03,0x11,0x21,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x21,0x11,0x01,0xe0,0x01,0x07,0x31,0x3a,0x81,0x1a,0x38,0x57,0x3d,0xfe,0x75,0xfe,0x01,0x8b,0x3d,0x57,0x38,0x1a,0x81,0x3a,0x31,0xfe,0xf9,0x03, +0x05,0xfd,0x7f,0x40,0x3b,0x03,0x01,0xfc,0xe4,0x2d,0x52,0x3f,0x26,0x03,0x05,0xfc,0xfb,0x04,0x00,0x25,0x3f,0x53,0x2d,0xfd,0xdf,0x02,0x07,0x3a,0x40,0xfc,0x84,0x00,0x00,0x03,0x00,0x60,0xfe,0xd7,0x04,0x98,0x05,0xec,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x5b,0x40,0x33,0x33,0x96,0x34,0x05,0x01,0x02,0x2d,0x95,0x05,0x16,0x11,0x23, +0x95,0x0f,0x10,0x1c,0x19,0x14,0x96,0x0f,0x15,0x1f,0x15,0x2f,0x15,0x03,0x15,0x17,0x00,0x11,0x03,0x0a,0x35,0x00,0x34,0x14,0x0a,0x1b,0x19,0x12,0x16,0x1d,0x03,0x01,0x84,0x00,0x00,0x37,0x28,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x17,0x32,0x33,0xc6,0x10,0xc4,0xc4,0x10,0xc6,0x12,0x39,0x39,0x31,0x00,0x3f,0xd6,0x5d,0xed,0x33, +0x32,0x3f,0xed,0x33,0x3f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x04,0x10,0xa4, +0x04,0x72,0xee,0x6c,0xa0,0x69,0x33,0x3b,0x75,0xb0,0x75,0xd0,0x63,0x04,0xfe,0xb5,0x01,0x4b,0xa4,0x88,0x88,0xa4,0x2c,0x4d,0x6a,0x3f,0x56,0x7a,0x4e,0x24,0x23,0x4a,0x73,0x50,0x47,0x73,0x51,0x2b,0x7b,0xfc,0xae,0x03,0x52,0xae,0xc6,0x52,0x8b,0xba,0x69,0x71,0xcc,0x99,0x5a,0xa6,0x01,0x40,0x86,0xb4,0xb4,0x86,0xfd,0x1d,0x97,0x3e, +0x6c,0x50,0x2e,0x43,0x72,0x96,0x53,0x4c,0x8b,0x69,0x3e,0x39,0x60,0x7e,0xfd,0x4e,0x77,0x00,0x00,0x01,0x00,0x2a,0x00,0x00,0x03,0xfd,0x05,0x9a,0x00,0x19,0x00,0x44,0x40,0x22,0x19,0x06,0x16,0x10,0x0a,0x92,0x0b,0x0b,0x0d,0x01,0x08,0x14,0x0d,0x03,0x05,0x10,0x16,0x19,0x04,0x17,0x08,0x01,0x00,0x14,0x17,0x15,0x15,0x1b,0x0a,0x0f, +0x0c,0x07,0x7e,0x08,0x2f,0xe1,0x33,0x32,0xc6,0x12,0x39,0x2f,0xc6,0x33,0xc6,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0xfd, +0xdb,0xfe,0x6c,0x10,0x0e,0x08,0x04,0xa8,0x92,0x92,0xa8,0x04,0x08,0x16,0x08,0x01,0x96,0xc2,0xfe,0x36,0x01,0x70,0xfe,0x97,0x02,0x54,0x1a,0x1b,0x0e,0xfd,0x69,0x02,0x9e,0x8d,0x02,0x6f,0xfd,0x8f,0x0e,0x22,0x0c,0x02,0x35,0xfd,0x91,0x8d,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0x6c,0x05,0x9a,0x00,0x17,0x00,0x73,0x40,0x3b,0x08,0x05, +0x09,0x04,0x0b,0x02,0x0a,0x03,0x0c,0x01,0x0d,0x00,0x16,0x0f,0x17,0x0e,0x0d,0x0a,0x09,0x04,0x50,0x03,0x01,0x03,0x00,0x0d,0x00,0x6f,0x17,0x7f,0x17,0x02,0x17,0x17,0x12,0x07,0x15,0x11,0x91,0x12,0x03,0x0a,0x0e,0x11,0x07,0x03,0x17,0x16,0x02,0x06,0x0f,0x0b,0x07,0x14,0x14,0x19,0x06,0x7e,0x07,0x2f,0xe1,0x12,0x39,0x2f,0x11,0x33, +0x33,0x11,0x33,0x33,0xc6,0x32,0x10,0xd4,0xc6,0x32,0x31,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x2f,0x5d,0xcd,0xcd,0x10,0xd6,0x5d,0xcd,0xdd,0xcd,0x10,0xcd,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11, +0x21,0x35,0x21,0x15,0x21,0x11,0x37,0x03,0x08,0xea,0xea,0xea,0xa8,0xef,0xef,0xef,0xef,0xfe,0xb3,0x03,0x43,0xfe,0xb2,0xea,0x03,0xb5,0x85,0xcc,0x85,0x8e,0x85,0xfe,0x2a,0x01,0x76,0x87,0x8e,0x87,0xcc,0x87,0x8e,0x87,0x01,0xa4,0x98,0x98,0xfe,0xbc,0x85,0x00,0x00,0x05,0x00,0x2c,0xfe,0x9e,0x08,0xe2,0x06,0x77,0x00,0x3a,0x00,0x53, +0x00,0x6a,0x00,0x7e,0x00,0x8e,0x00,0x84,0x40,0x4c,0x1e,0x3e,0x8c,0x0c,0x04,0x0f,0x19,0x29,0x32,0x24,0x36,0x4f,0xe2,0x2f,0x7a,0xe7,0x59,0x70,0x69,0x70,0x52,0x63,0x7f,0xdb,0x0f,0x19,0x1f,0x19,0x02,0x19,0x89,0x43,0xe2,0x07,0x63,0x07,0x89,0xdb,0x0f,0x0c,0x1e,0x24,0x2f,0x36,0x3e,0x4f,0x8c,0x08,0x00,0x14,0x32,0x33,0x33,0x00, +0x29,0x2a,0x14,0x54,0x68,0x69,0x6b,0x04,0x6a,0x00,0xb1,0x4a,0x4a,0x14,0x75,0xea,0x5e,0x5e,0x90,0x84,0xf3,0x14,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xc4,0x17,0x32,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x32,0x11,0x12,0x17,0x39,0x31,0x00,0x2f,0xed,0x33,0x33,0x10,0xed,0x10,0xd4,0x5d,0xed,0x10,0xed,0xc6,0x10,0xd4,0xed, +0x2f,0xed,0x33,0x32,0xcd,0xc4,0x11,0x12,0x17,0x39,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x12,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36,0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03, +0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x06,0x84,0x23,0x4d,0x78, +0xaa,0xdf,0x8c,0x3b,0x66,0x58,0x4c,0x22,0x42,0x94,0x55,0x2e,0x4a,0x34,0x1d,0x23,0x3a,0x4b,0x28,0x26,0x44,0x3d,0x3a,0x1c,0x36,0x58,0x26,0x25,0x5e,0x3c,0x5a,0x9b,0x8a,0x7d,0x3d,0x34,0x45,0x9f,0xb2,0xc2,0x68,0x43,0xa1,0x61,0x37,0x47,0x6c,0x2c,0x8a,0xcf,0x8a,0x45,0xfc,0xcf,0x32,0x74,0x46,0x1e,0x3f,0x48,0x50,0x2e,0x69,0xa8, +0x82,0x5e,0x3d,0x1d,0x3b,0x72,0xa9,0x6d,0x1b,0x31,0x2d,0x2e,0x02,0xf0,0x0f,0x2e,0x51,0x80,0x62,0x3d,0x66,0x4a,0x2a,0x2c,0x55,0x7b,0x4f,0x21,0x3f,0x36,0x2b,0x0d,0x8a,0xa3,0x01,0x64,0x12,0x25,0x39,0x27,0x2c,0x44,0x2f,0x18,0x14,0x25,0x35,0x21,0x35,0x49,0x2d,0x14,0xf9,0xfc,0x15,0x27,0x1e,0x12,0x12,0x1c,0x25,0x12,0x39,0x63, +0x2c,0x32,0x5c,0x03,0x3c,0x59,0xc0,0xb8,0xa4,0x7d,0x49,0x14,0x22,0x2d,0x18,0x3f,0x3c,0x1c,0x33,0x47,0x2b,0x30,0x4a,0x31,0x1a,0x10,0x1c,0x25,0x15,0x5f,0x01,0x0d,0xab,0xa9,0xf9,0x5d,0x0a,0x35,0x49,0x58,0x2d,0x50,0x38,0x69,0x51,0x34,0x03,0x48,0x66,0x26,0x42,0x1f,0x49,0x30,0x0f,0x5f,0x9b,0xd4,0xb1,0xc4,0xfe,0xe4,0x60,0x15, +0x24,0x1b,0x10,0x3f,0x6b,0x8e,0x9c,0xa1,0x4a,0x77,0xbb,0x85,0x4e,0x0a,0x2e,0x71,0x88,0xa3,0xfd,0xba,0x36,0x74,0x60,0x3f,0x25,0x47,0x68,0x43,0x48,0x7f,0x5f,0x36,0x10,0x1f,0x2c,0x1b,0xfe,0x29,0x02,0x7c,0x20,0x3e,0x30,0x1d,0x26,0x3f,0x51,0x2b,0x28,0x43,0x30,0x1a,0x31,0x47,0x52,0x15,0x0e,0x19,0x24,0x16,0x19,0x26,0x1a,0x0e, +0x36,0x35,0x27,0x36,0x00,0x02,0x00,0x30,0xfe,0x52,0x03,0x6a,0x05,0xe2,0x00,0x3c,0x00,0x4e,0x00,0x5d,0x40,0x32,0x01,0x02,0x07,0x1b,0x35,0x3b,0x4a,0x07,0x00,0x11,0x2b,0x25,0x3a,0x00,0x42,0xcb,0x11,0x00,0x4a,0x07,0x3d,0x02,0x35,0x1b,0x16,0x02,0x3a,0x00,0x47,0x48,0x0c,0x0c,0x3d,0x00,0x28,0x28,0x30,0x3d,0xc4,0x16,0x30,0xc0, +0x20,0x20,0x50,0x01,0x3b,0x3c,0x03,0x00,0x2f,0x17,0x32,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x10,0xc0,0x2f,0x11,0x12,0x39,0x2f,0xe1,0x10,0xc6,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x00,0x3f,0xed,0x2f,0xd6,0xd4,0xcd,0x11,0x12,0x17,0x39,0x31,0x30,0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03,0x30,0xfe,0x4c,0x11,0x13,0x11,0x28,0x16,0x26,0x4a,0x3a,0x23,0x20,0x3b,0x54, +0x34,0x30,0x47,0x2f,0x17,0x10,0x1d,0x26,0x16,0x2f,0x62,0x50,0x32,0x3e,0x6e,0x96,0x57,0x0b,0x0b,0x01,0x08,0x0c,0x25,0x51,0x43,0x2c,0x17,0x29,0x35,0x1e,0x23,0x47,0x1c,0x21,0x1e,0x64,0x62,0x01,0xcd,0x0e,0x19,0x22,0x14,0x11,0x21,0x19,0x0f,0x41,0x32,0x0e,0x19,0x12,0x0b,0x02,0x23,0xfe,0xe4,0x37,0x40,0x37,0x90,0x51,0x4b,0x8e, +0x8b,0x8a,0x47,0x3f,0x67,0x49,0x28,0x23,0x40,0x5b,0x38,0x22,0x69,0x85,0x99,0x52,0x54,0xad,0xbc,0xce,0x74,0x50,0x96,0x74,0x46,0x0c,0x09,0x06,0x10,0x03,0x09,0x3b,0x5a,0x78,0x47,0x56,0x9f,0x92,0x88,0x40,0x7d,0xe7,0x5b,0x6a,0x5d,0x01,0x50,0xf6,0x04,0xe1,0x30,0x41,0x28,0x11,0x13,0x29,0x41,0x2f,0x67,0xbf,0x60,0x3b,0x71,0x66, +0x56,0x00,0x00,0x04,0x00,0x26,0x00,0x00,0x04,0x8e,0x05,0x9a,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x81,0x40,0x4a,0x2c,0x12,0x24,0x0f,0x1c,0x92,0x1d,0x40,0x09,0x0d,0x48,0x1d,0x1d,0x03,0x18,0x23,0x0a,0x2f,0x07,0x00,0x92,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x2d,0x91,0x18,0x18,0x03,0x19,0x2e,0x91,0x03, +0x03,0x07,0x0a,0x0f,0x12,0x04,0x0c,0x22,0x25,0x2b,0x30,0x04,0x20,0x24,0x2d,0x2f,0x03,0x19,0x00,0x1c,0x1a,0x1e,0x02,0x1a,0x10,0x09,0x20,0x7d,0x0c,0x0c,0x35,0x19,0x7e,0x1a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0xc6,0x32,0x11,0x33,0x33,0x10,0xc6,0x32,0x11,0x17,0x33,0x11,0x17,0x33,0x11,0x17,0x33,0x31,0x00,0x3f,0xed,0x2f,0x12,0x39, +0x2f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x33,0x32,0x32,0x11,0x12,0x39,0x2f,0x2b,0xed,0x33,0x33,0x32,0x32,0x31,0x30,0x13,0x35,0x33,0x11,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36, +0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x26,0x96,0x01,0x7c,0xa1,0xdb,0x2e,0xac,0x90,0x03,0x03,0x02,0x92,0xb7,0x1b,0x59,0x73,0x8d,0x50,0xaf,0xa8,0x96,0x96,0x02,0x95,0x03,0xfe,0x16,0x01,0xe8,0x02,0x03,0xfe,0xb9,0x67,0x87,0x26,0xfe,0x46,0x01,0xbe,0x23,0x7f,0x64,0x03,0xfd,0x8d,0x01,0x10,0x8b,0x85,0x8d,0x1b,0x1c,0x15, +0x28,0x14,0x8c,0x42,0x69,0x49,0x27,0xfe,0x32,0x02,0xe9,0x8c,0x88,0x3f,0x21,0x1e,0x88,0x11,0x24,0xfe,0xbc,0x45,0x3e,0x83,0x02,0x9c,0x78,0x39,0x3f,0x00,0x00,0x04,0x00,0xa2,0xff,0xdf,0x06,0x7d,0x05,0xbb,0x00,0x1b,0x00,0x33,0x00,0x42,0x00,0x4f,0x00,0x52,0x40,0x2d,0x34,0x4c,0x0f,0x44,0x1f,0x44,0x02,0x44,0x44,0x37,0x36,0x36, +0x28,0x43,0x4c,0x37,0x37,0x1c,0x28,0xcb,0x00,0xc7,0x1c,0xcb,0x0e,0x04,0x3d,0xbd,0x4a,0x4a,0x2d,0x44,0x35,0xc2,0x36,0x36,0x07,0x2d,0xc9,0x15,0x15,0x51,0x21,0xc9,0x07,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x31,0x00,0x3f,0xed,0xf4,0xed,0x11,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x2f, +0x5d,0xed,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x03,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x90,0x67,0xbf, +0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa6,0xbf,0x67,0x67,0xbe,0xa7,0x89,0x62,0x36,0x36,0x62,0x89,0xa6,0xbf,0x67,0x88,0xf1,0xb4,0x69,0x30,0x56,0x79,0x94,0xa8,0x5b,0x88,0xf1,0xb4,0x68,0x30,0x56,0x79,0x93,0xa9,0xdd,0x83,0x01,0x1d,0x53,0x84,0x5b,0x30,0x29,0x59,0x8c,0x64,0x8a,0x81,0x48,0x5f,0x37,0x16,0x1a,0x3a,0x5a,0x41,0x21, +0x36,0x62,0x89,0xa7,0xbf,0x67,0x67,0xbf,0xa7,0x89,0x62,0x36,0x36,0x62,0x8a,0xa7,0xbf,0x66,0x66,0xbf,0xa7,0x8a,0x62,0x36,0x05,0x84,0x69,0xb4,0xf1,0x88,0x5b,0xa9,0x93,0x78,0x57,0x2f,0x68,0xb4,0xf1,0x88,0x5b,0xa8,0x93,0x79,0x57,0x30,0xfc,0xdb,0xfe,0xba,0x03,0xba,0x28,0x4d,0x71,0x4a,0x3a,0x74,0x5d,0x39,0x02,0x01,0xfe,0x71, +0x23,0x3a,0x49,0x25,0x2d,0x49,0x33,0x1b,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1a,0x05,0xec,0x00,0x1d,0x00,0x2b,0x00,0x39,0x00,0x41,0x40,0x24,0x11,0x00,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a, +0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14,0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f, +0x57,0x53,0x94,0x94,0xae,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x02,0x7a,0xfd,0x60,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x00,0x03,0x00,0x60,0xfe,0x29,0x07,0x1a,0x04,0x18,0x00,0x1d,0x00,0x2b,0x00,0x39, +0x00,0x42,0x40,0x25,0x11,0x0f,0x36,0x95,0x16,0x10,0x22,0x95,0x0d,0x10,0x30,0x95,0x1c,0x16,0x28,0x95,0x07,0x16,0x03,0x1b,0x12,0x2d,0x02,0x84,0x11,0x1e,0x03,0x03,0x0a,0x19,0x83,0x33,0x33,0x3b,0x25,0x83,0x0a,0x2f,0xe1,0x12,0x39,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x33,0xe1,0x32,0x32,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x3f, +0xed,0x3f,0x31,0x30,0x25,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x01,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x04,0x14, +0x04,0xa4,0x04,0x72,0xee,0xc1,0xe7,0x01,0x00,0xd5,0xd3,0x60,0x04,0xa4,0x04,0x79,0xe9,0xc5,0xdf,0xfa,0xd9,0xcb,0xfe,0xf0,0xa4,0x7e,0x96,0xac,0xa5,0x8b,0x89,0x55,0x51,0xa9,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0x57,0x53,0x94,0xfd,0x95,0x02,0x85,0xc6,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff, +0xfe,0xcb,0x01,0xd8,0xa6,0x7c,0xac,0xdc,0xc2,0xb1,0xcd,0x63,0x5e,0x01,0x0d,0x9e,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0x64,0x5e,0x00,0x01,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x00,0x03,0x00,0x18,0x40,0x0c,0x00,0x02,0xa0,0x03,0x01,0x0f,0x03,0x3f,0x03,0x02,0x03,0x02,0x00,0x2f,0x2f,0x5d,0x5d,0x01,0x2f,0xcd,0x31,0x30,0x01,0x01, +0x23,0x01,0x04,0xf0,0xfb,0xca,0xa4,0x04,0x36,0x06,0x30,0xf9,0x3a,0x06,0xc6,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x05,0x12,0x06,0x30,0x02,0x26,0x00,0x24,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0x6a,0x04,0xf0,0x06,0x30,0x02,0x26,0x00,0x26,0x00,0x00,0x00,0x06,0x07,0xe3,0x00,0x00,0xff,0xff,0x00,0x21, +0xff,0x37,0x04,0x0b,0x04,0xd1,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x00,0xbc,0x01,0x59,0xff,0x37,0xff,0xff,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x26,0x00,0x2f,0x00,0x00,0x00,0x07,0x00,0xd9,0xff,0xd4,0xfd,0xf5,0xff,0xff,0xff,0xef,0xff,0x6a,0x04,0xc9,0x06,0x30,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x07,0xe3, +0xd9,0x00,0x00,0x01,0x00,0x68,0xfe,0x92,0x03,0x0f,0x04,0x18,0x00,0x3c,0x00,0x57,0x40,0x31,0x3c,0x3a,0x95,0x02,0x0d,0x30,0x17,0x26,0x04,0x1c,0x36,0x1f,0x21,0x95,0x1c,0x10,0x08,0x36,0x20,0x09,0x30,0x09,0x40,0x09,0x03,0x09,0x0b,0x95,0x36,0x16,0x3c,0x3c,0x36,0x09,0x1f,0x1f,0x30,0x26,0x83,0x17,0x17,0x09,0x30,0x83,0x0d,0x0d, +0x3e,0x06,0x09,0x2f,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x39,0x39,0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x11,0x39,0x3f,0xfd,0xc6,0x11,0x12,0x17,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x07,0x06,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x02,0xc7,0x3a,0x5c,0x8c,0x46,0x3d,0x92,0x15,0x13,0x86,0xa1,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x42,0x6e,0x8d,0x4b,0x85,0x69,0x71,0x93,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50, +0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x49,0x40,0x44,0x27,0x16,0x30,0x3c,0x48,0x47,0xfe,0xb7,0x25,0xa4,0x90,0x4b,0x09,0x0b,0xb0,0x63,0x90,0x29,0x39,0x2c,0x23,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x6f,0x4b,0x26,0x2e,0xa6,0x4a,0x15,0x26,0x35,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5a,0x3e,0x4c,0x70,0x4a,0x12,0x0f,0x03, +0x24,0x35,0x71,0x28,0x00,0x01,0x00,0x21,0xfe,0x92,0x03,0x70,0x04,0x00,0x00,0x13,0x00,0x30,0x40,0x19,0x13,0x11,0x95,0x02,0x0c,0x08,0x95,0x0a,0x0f,0x07,0x0d,0x96,0x06,0x13,0x09,0x08,0x09,0x0d,0x13,0x04,0x07,0x0c,0x0c,0x15,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x2f,0xed,0x39,0x3f,0xed,0x39,0x2f,0xfd,0xc6, +0x31,0x30,0x01,0x06,0x23,0x22,0x00,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x17,0x16,0x33,0x32,0x37,0x03,0x6a,0x3a,0x5c,0x96,0xfe,0xcf,0xb2,0x3a,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0x97,0x85,0x81,0x88,0x46,0x48,0x47,0xfe,0xb7,0x25,0x01,0x6e,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xad,0x2b,0x97,0x9e,0x28,0x00,0x00,0x01, +0x00,0x30,0x00,0x00,0x03,0xf6,0x06,0x02,0x00,0x19,0x00,0x29,0x40,0x14,0x13,0x08,0x10,0x01,0x0d,0x0b,0x95,0x10,0x01,0x00,0x84,0x01,0x01,0x0d,0x13,0x83,0x08,0x08,0x1b,0x0d,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x00,0x3f,0xfd,0xc6,0x2f,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26, +0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x04,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x02,0x47,0xa3,0x5d,0x88,0x82,0x45,0xc1,0xe1,0xd8,0xa6,0xa1,0xde,0x01,0x29,0x01,0x1e,0x61,0x9e,0x63,0x4d,0x01,0xee,0x87,0xa2,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x83,0x6f,0x00,0xff,0xff,0x00,0x6c,0x04,0xc2, +0x01,0x31,0x05,0x85,0x02,0x06,0x00,0xdb,0x00,0x00,0x00,0x01,0xff,0x2b,0xfe,0x52,0x00,0xd4,0xff,0xe6,0x00,0x0e,0x00,0x0c,0xb3,0x05,0x0b,0x0c,0x0b,0x2f,0xcd,0x00,0x2f,0xc4,0x31,0x30,0x17,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0xd4,0x9e,0x6b,0x4f,0x53,0x52,0x4f,0x6a,0x9d,0x1f,0x94,0x0f,0x61, +0x0e,0x94,0xd7,0x23,0x7b,0x39,0x8c,0x8c,0x39,0x7b,0x23,0x5b,0x40,0xa2,0xa2,0x40,0x00,0x03,0xfe,0xbd,0xfe,0x5c,0x01,0x43,0xff,0xc8,0x00,0x1a,0x00,0x26,0x00,0x32,0x00,0x34,0x40,0x1d,0x0e,0x06,0xc3,0x40,0x27,0x0f,0x1b,0x1f,0x1b,0x2f,0x1b,0x03,0x1b,0x80,0x2d,0x21,0xc3,0x13,0x00,0x30,0xf1,0x11,0x2a,0x1e,0xf1,0x03,0x24,0xf1, +0x2a,0x2f,0xfd,0xd4,0xed,0x10,0xd4,0xed,0x00,0x2f,0x33,0xed,0x32,0x1a,0xdc,0x5d,0x32,0x1a,0xed,0x32,0x31,0x30,0x17,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x32,0x17,0x16,0x17,0x36,0x37,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x23,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x8f,0x4b,0x69,0x69,0x4b,0x4b,0x35,0x08,0x07,0x07,0x09,0x34,0x4b,0x4b,0x69,0x69,0x96,0x34,0x09,0x07,0x07,0x08,0x35,0x4b,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0xf2,0x2c,0x3f,0x3f,0x2c,0x2c,0x3e,0x3e,0x38,0x6b,0x4b,0x4b,0x6b,0x36,0x08,0x0a,0x0a,0x08,0x36,0x6b,0x4b,0x4b,0x6b,0x35, +0x09,0x09,0x09,0x09,0x35,0xfe,0xdd,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x40,0x2d,0x2c,0x40,0x40,0x2c,0x2d,0x40,0x00,0x00,0x01,0xff,0x60,0x04,0xba,0x00,0xa0,0x06,0x70,0x00,0x07,0x00,0x16,0x40,0x09,0x05,0x06,0xdb,0x40,0x01,0x03,0x07,0x80,0x03,0x2f,0x1a,0xcd,0x00,0x2f,0xc6,0x1a,0xfd,0xcd,0x31,0x30,0x13,0x23,0x37,0x23, +0x13,0x33,0x07,0x33,0x5a,0x64,0x2d,0xc3,0x46,0x64,0x2d,0xc3,0x04,0xba,0xac,0x01,0x0a,0xac,0xff,0xff,0xfc,0xe6,0xfe,0x52,0x03,0x1a,0xff,0xd0,0x02,0x07,0x07,0x5d,0x00,0x00,0xf8,0x90,0xff,0xff,0x00,0x21,0xfe,0x74,0x04,0x50,0x04,0x18,0x02,0x26,0x01,0xd0,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xe3,0xfa,0x31,0x00,0x0f,0x40,0x09, +0x02,0x10,0x1c,0x20,0x1c,0x40,0x1c,0x03,0x1c,0x00,0x11,0x5d,0x35,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x15,0x00,0x2c,0x40,0x17,0x0b,0x0a,0x08,0x91,0x0d,0x04,0x15,0x20,0x00,0x01,0x00,0x02,0x91,0x13,0x13,0x10,0x7d,0x05,0x05,0x17,0x0a,0x0a,0x00,0x2f,0x32,0x11,0x12,0x39,0x2f,0xe1,0x00,0x3f,0xfd,0xc6, +0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x31,0x30,0x37,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x68,0x9e,0xd8,0xe9,0x01,0x1f,0xfe,0xcd,0xf7,0xba,0x9a,0x86,0xcc,0x01,0x3e,0x01,0x9e,0xfe,0x90,0xfe,0xce,0xed,0x9f,0xdf,0x60,0x01,0x37,0x01,0x06,0x01,0x14,0x01,0x4a,0x56, +0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xc0,0xfe,0x76,0x54,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x26,0x00,0x26,0x00,0x00,0x01,0x07,0x00,0xdb,0x02,0x34,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x68, +0xff,0xe8,0x04,0x96,0x05,0xb2,0x02,0x26,0x07,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x23,0xfd,0xb0,0x00,0x15,0x40,0x0e,0x01,0x1f,0x1c,0x01,0x0f,0x1c,0x5f,0x1c,0xcf,0x1c,0xff,0x1c,0x04,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x01,0x00,0xbc,0xfe,0x80,0x03,0xa4,0x05,0x9a,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0xee,0x08,0x03, +0x02,0x91,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0x7f,0x06,0x06,0x02,0x7e,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x03,0xa4,0xfd,0xc1,0x99,0x99,0xa9,0x02,0xe8,0x04,0xfe,0xfb,0x98,0xfd,0xea,0x01,0x80,0x05,0x9a,0x00,0x00,0x01, +0x00,0xa6,0xfe,0x8b,0x02,0xdf,0x04,0x00,0x00,0x09,0x00,0x26,0x40,0x13,0x01,0x95,0x08,0x0f,0x02,0x96,0x06,0x05,0x00,0x00,0x0b,0x07,0x03,0xed,0x06,0x06,0x02,0x84,0x07,0x2f,0xf1,0xc1,0x2f,0xed,0x11,0x12,0x39,0x2f,0x00,0x2f,0x2f,0xed,0x3f,0xed,0x31,0x30,0x01,0x21,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x21,0x02,0xdf,0xfe,0x6b, +0x8c,0x8c,0xa4,0x02,0x39,0x03,0x74,0xfd,0x0d,0xfe,0x0a,0x01,0x75,0x04,0x00,0x00,0xff,0xff,0xff,0xbb,0xff,0xe8,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x01,0x06,0x00,0xd8,0x98,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x60,0xff,0xe8, +0x04,0xff,0x05,0xec,0x02,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x00,0xd8,0x02,0x5b,0xff,0xc5,0x00,0x11,0x40,0x0b,0x02,0x10,0x2b,0x20,0x2b,0x70,0x2b,0xaf,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xf8,0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xd5,0xfc,0xb7,0x00,0x0a, +0xb4,0x01,0x10,0x22,0x01,0x22,0x00,0x11,0x5d,0x35,0x00,0x03,0xff,0xc0,0x00,0x00,0x07,0x34,0x04,0x18,0x00,0x2c,0x00,0x36,0x00,0x3f,0x00,0xa3,0x40,0x2b,0x15,0x3e,0x0c,0x09,0x11,0x07,0x04,0x09,0x2c,0x28,0x02,0x96,0x23,0x28,0x35,0x37,0x2d,0x09,0x96,0x28,0x3e,0x3e,0x0b,0x02,0x19,0x01,0x0c,0x04,0x1e,0x31,0x19,0x03,0x3a,0x95, +0x20,0x1b,0x10,0x16,0x0f,0x06,0x01,0x0b,0x27,0xb8,0x01,0x03,0x40,0x0f,0x40,0x28,0x28,0x22,0x2d,0x00,0x84,0x01,0x0e,0x06,0x06,0x0b,0x42,0x14,0x10,0xb8,0x01,0x03,0x40,0x1b,0x40,0x11,0x16,0x17,0x3e,0x03,0x0a,0x84,0x0b,0x37,0x1e,0x35,0x03,0x05,0x84,0x06,0x0f,0x06,0x01,0x0c,0x03,0x40,0x41,0x06,0x84,0x30,0x30,0x2b,0x01,0x5f, +0x5e,0x5d,0x10,0xe1,0x17,0x39,0x18,0x2f,0xe1,0x17,0x39,0xd6,0x1a,0xed,0x33,0x2b,0x01,0x18,0x10,0xf4,0xf1,0x39,0x39,0xc0,0x2f,0x1a,0xed,0x00,0x2f,0x33,0x33,0x3f,0x3f,0x33,0xed,0x17,0x32,0x5f,0x5e,0x5d,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x39,0x11,0x39,0xfd,0x11,0x39,0x11,0x39,0x39,0xc4,0x11,0x39,0x11,0x39,0x31,0x30,0x21, +0x23,0x11,0x26,0x25,0x11,0x23,0x11,0x24,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06,0x07,0x27,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x04,0x25,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x06, +0x54,0xa4,0xb3,0xfe,0xd2,0xa4,0xfe,0xd1,0xb2,0xa4,0x21,0x16,0x38,0x77,0x02,0x5a,0x35,0x55,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0x01,0x52,0x1c,0x14,0x39,0x77,0x02,0x5b,0x34,0x4f,0xa4,0x69,0x7c,0x69,0x93,0x01,0x32,0xfe,0x2a,0xe9,0x6c,0x46,0x35,0x0d,0xb4,0x01,0x5a,0x05,0x42,0xfe,0x5f,0x01,0xc6,0x42,0x06,0xfd,0xf2, +0x01,0xfb,0x0d,0x15,0x35,0x50,0x88,0x58,0x34,0x15,0x01,0x83,0xa2,0xba,0x75,0x5f,0xd4,0xfe,0x5f,0x8a,0x0c,0x13,0x36,0x50,0x86,0x59,0x33,0x16,0x6c,0x76,0xaa,0x98,0xc0,0x86,0x2a,0x43,0x68,0x1d,0x01,0x2e,0x5b,0x44,0x64,0x07,0x00,0x02,0xff,0xc0,0x00,0x00,0x04,0xdc,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x5f,0x40,0x1a,0x0e,0x06, +0x02,0x13,0x25,0x96,0x1c,0x21,0x2f,0x28,0x09,0x96,0x21,0x12,0x12,0x08,0x16,0x2b,0x95,0x18,0x10,0x13,0x0f,0x01,0x08,0x20,0xb8,0x01,0x03,0x40,0x0b,0x21,0x21,0x1c,0x28,0x00,0x84,0x01,0x01,0x32,0x08,0x0d,0xb8,0x01,0x03,0xb7,0x0e,0x13,0x14,0x2f,0x03,0x07,0x84,0x08,0x2f,0xe1,0x17,0x39,0xd6,0xed,0x11,0x12,0x39,0x2f,0xf1,0x39, +0x39,0xc0,0x2f,0xed,0x00,0x2f,0x33,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0xc4,0xed,0xd4,0x39,0x11,0x39,0xfd,0x11,0x39,0x39,0xc4,0x31,0x30,0x21,0x23,0x11,0x26,0x27,0x26,0x27,0x11,0x23,0x11,0x06,0x07,0x06,0x15,0x23,0x36,0x37,0x36,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x15,0x36,0x37,0x36,0x35,0x33,0x06,0x07,0x06, +0x07,0x25,0x16,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x07,0x16,0x03,0xf8,0xa4,0x6c,0x9a,0x9a,0x6a,0xa4,0x27,0x1a,0x2e,0x77,0x02,0x50,0x3b,0x59,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x25,0x19,0x2f,0x77,0x02,0x51,0x3b,0x56,0xfe,0x59,0x9a,0x69,0xee,0x7b,0x51,0x3f,0x0e,0x6c,0x01,0x63,0x14,0x3d,0x3d,0x14,0xfd,0xfb,0x02,0x04,0x0d,0x1e, +0x35,0x50,0x88,0x58,0x41,0x11,0x01,0x7a,0xaa,0xc2,0xd9,0xcd,0x91,0x0e,0x1d,0x36,0x50,0x86,0x59,0x41,0x12,0xd1,0x3d,0x14,0x68,0x01,0x46,0x5d,0x49,0x67,0x14,0x00,0xff,0xff,0xff,0xbb,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xf9,0xf2,0x00,0x11,0x40,0x0b,0x02,0x20,0x2b,0x5f, +0x2b,0x70,0x2b,0xe0,0x2b,0x04,0x2b,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xbb,0x00,0x00,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x98,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0xff,0xa5,0x00,0x00,0x02,0xa2, +0x04,0x18,0x02,0x26,0x05,0x83,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0x82,0xfc,0xc8,0x00,0x11,0x40,0x0b,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0xaf,0x1e,0x04,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x27,0xff,0xe8,0x03,0xac,0x04,0x18,0x00,0x26,0x00,0x56,0x28,0x00,0x00,0x06,0x08,0x5f,0x00,0x00,0xff,0xff,0xff,0xef,0xff,0xea, +0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xcc,0xfc,0xc8,0x00,0x13,0x40,0x0d,0x01,0x10,0x1e,0x20,0x1e,0x70,0x1e,0x8f,0x1e,0xaf,0x1e,0x05,0x1e,0x00,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x5f,0xfc,0xc8, +0x00,0x13,0x40,0x0d,0x01,0x10,0x17,0x20,0x17,0x70,0x17,0x8f,0x17,0xaf,0x17,0x05,0x17,0x00,0x11,0x5d,0x35,0x00,0x00,0x02,0x00,0xa6,0xfe,0x1e,0x04,0x56,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x44,0x40,0x26,0x0a,0x23,0x95,0x0d,0x0d,0x02,0x1d,0x05,0x40,0x0b,0x0f,0x48,0x05,0x07,0x95,0x02,0x10,0x16,0x1d,0x95,0x18,0x13,0x1c,0x05, +0x05,0x09,0x10,0x83,0x20,0x20,0x27,0x09,0x84,0x19,0x84,0x17,0x84,0x18,0x2f,0xe1,0xe1,0xe1,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0x00,0x3f,0xc4,0xed,0x32,0x3f,0xfd,0xc6,0x2b,0x11,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x20,0x11,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27, +0x23,0x15,0x23,0x13,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xa6,0x02,0x1c,0xbe,0x8e,0xad,0x9d,0xfe,0x86,0x04,0x75,0xeb,0xbf,0xe9,0xfb,0xda,0xcf,0x64,0x04,0xa4,0xa4,0xa5,0x7b,0x98,0xac,0xa5,0x88,0x8a,0xad,0x01,0xe4,0x02,0x34,0x48,0xa4,0x60,0xfe,0x6e,0x70,0xc4,0xfe,0xef,0xe6,0xfe,0xfb,0xfe,0xcc,0xa6, +0x8e,0x02,0x31,0x97,0x7a,0xae,0xdd,0xc7,0xab,0xcd,0xc4,0x00,0x00,0x01,0x00,0x7a,0x01,0xf6,0x03,0x37,0x05,0x9a,0x00,0x0b,0x00,0x3b,0x40,0x23,0x03,0x54,0x3f,0x08,0x4f,0x08,0x5f,0x08,0x8f,0x08,0x9f,0x08,0xaf,0x08,0x06,0x08,0x08,0x06,0x01,0x05,0x05,0x0c,0x0a,0x06,0x03,0x00,0x50,0x09,0x01,0x01,0x0d,0x08,0x04,0x50,0x05,0x2f, +0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x03,0x37,0x6d,0xfe,0x1d,0x6d,0x6d,0x01,0xe3,0x6d,0x01,0xf6,0x01,0xa9,0xfe,0x57,0x03,0xa4,0xfe,0x67,0x01,0x99,0x00,0x00,0x02,0x00,0x60,0xfe,0x21,0x04,0x3f, +0x04,0x00,0x00,0x26,0x00,0x3c,0x00,0x54,0x40,0x30,0x38,0x0e,0x00,0x07,0x00,0x24,0x10,0x24,0x40,0x24,0x50,0x24,0x04,0x24,0x24,0x07,0x2c,0x95,0x1a,0x1b,0x09,0x06,0x95,0x07,0x0f,0x0e,0x84,0x05,0x08,0x38,0x24,0x31,0x00,0x08,0x07,0x07,0x08,0x00,0x03,0x1f,0x15,0x83,0x31,0x31,0x3e,0x27,0x83,0x1f,0x2f,0xe1,0x12,0x39,0x2f,0xe1, +0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x12,0x39,0xe1,0x00,0x3f,0xed,0x39,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x12,0x39,0x39,0x33,0x31,0x30,0x01,0x34,0x3e,0x02,0x37,0x21,0x35,0x21,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32, +0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x27,0x0e,0x03,0x01,0xd9,0x1d,0x33,0x45,0x29,0xfe,0x40,0x03,0x2d,0x58,0x90,0x66,0x37,0x42,0x64,0x74,0x64,0x42,0x4f,0x8b,0xbf,0x70,0x5b,0xaa,0x83,0x4e,0x37,0x6a,0x9a,0x63,0x14,0x11,0xd1,0x31,0x54,0x70,0x3f,0x48,0x7f,0x5e,0x36,0x15,0x3a,0x67,0x51,0x21,0x19,0x6e,0x84,0x46,0x16,0x02, +0x73,0x28,0x4d,0x43,0x37,0x12,0x8c,0x47,0x28,0x4f,0x4f,0x53,0x2d,0x32,0x4e,0x4c,0x53,0x6e,0x94,0x66,0x72,0xab,0x74,0x3a,0x37,0x6e,0xa5,0x6e,0x59,0x9b,0x85,0x70,0x2e,0x21,0x41,0xfd,0x87,0x4c,0x71,0x4b,0x25,0x27,0x4e,0x77,0x50,0x34,0x50,0x50,0x5c,0x3f,0x1a,0x17,0x36,0x6e,0x6e,0x6b,0xff,0xff,0x00,0x16,0xff,0xea,0x06,0xae, +0x05,0xec,0x00,0x26,0x00,0x57,0x00,0x00,0x00,0x27,0x00,0x4b,0x02,0xb6,0x00,0x00,0x00,0x06,0x08,0x06,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x00,0x05,0x18,0x05,0x9a,0x00,0x03,0x00,0x09,0xb2,0x03,0x03,0x02,0x00,0x2f,0x3f,0x31,0x30,0x01,0x01,0x23,0x01,0x05,0x18,0xfb,0xa2,0xa4,0x04,0x5e,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xff,0xff, +0x00,0x4a,0x00,0x00,0x02,0x46,0x04,0x00,0x02,0x26,0x05,0x6f,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x0c,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x0c,0x2f,0x0c,0x4f,0x0c,0x02,0xaf,0x0c,0xcf,0x0c,0xff,0x0c,0x03,0x00,0x5d,0x71,0x11,0x35,0x00,0xff,0xff,0xff,0xfb,0xff,0xf4,0x02,0x08,0x04,0x00,0x02,0x26,0x01,0xc9,0x00,0x00,0x01,0x07, +0x00,0xd9,0xff,0xbd,0xfd,0x17,0x00,0x15,0x40,0x0e,0x01,0x2f,0x0e,0x4f,0x0e,0x02,0xaf,0x0e,0xcf,0x0e,0xff,0x0e,0x03,0x0e,0x00,0x11,0x5d,0x71,0x35,0x00,0x00,0x03,0x00,0x22,0xfe,0x29,0x04,0xd5,0x04,0x18,0x00,0x19,0x00,0x23,0x00,0x2c,0x00,0x4b,0x40,0x29,0x14,0x21,0x05,0xe2,0x11,0x2a,0x06,0x06,0x1c,0x0a,0x26,0x95,0x0d,0x10, +0x08,0x0f,0x00,0x1c,0x95,0x18,0x16,0x03,0x1b,0x13,0x13,0x11,0x14,0x83,0x2b,0x20,0x20,0x2e,0x07,0x0a,0x2a,0x21,0x04,0x02,0x84,0x05,0x03,0x2f,0xc6,0xe1,0x17,0x39,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x23,0x11,0x23,0x11, +0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x16,0x17,0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x15,0x14,0x01,0x26,0x23,0x22,0x07,0x06,0x07,0x21,0x26,0x01,0x4e,0x04,0xa4,0x84,0x84,0xa4,0x04,0x79,0xe9,0xc6,0x6f,0x65,0x09,0x82,0x84,0x0f,0x6b,0x7d,0xd9,0xc7,0x1e,0x53,0x7f, +0x95,0x54,0x45,0x0d,0xfd,0xa1,0x02,0x13,0x4f,0x87,0x8f,0x57,0x51,0x06,0x02,0x61,0x08,0x94,0xfd,0x95,0x03,0xaf,0x6d,0x01,0xbb,0xb4,0xcc,0x8a,0x7d,0xcc,0x6d,0xd1,0x85,0x9a,0xe2,0x58,0x72,0x5c,0x98,0x36,0x7f,0x02,0x0a,0x61,0x64,0x5d,0x88,0x91,0x00,0x02,0x00,0x22,0xff,0xe8,0x04,0x24,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x3b, +0x40,0x1e,0x01,0x17,0x08,0xe2,0x11,0x0d,0x09,0x09,0x0f,0x0b,0x0f,0x13,0x95,0x04,0x16,0x12,0x12,0x01,0x16,0x10,0x84,0x0f,0x0f,0x1b,0x09,0x17,0x07,0x0c,0x84,0x0b,0x2f,0xe1,0x39,0x39,0xc6,0x12,0x39,0x2f,0xf1,0x39,0x39,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0x33,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x15,0x10,0x21, +0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x32,0x11,0x35,0x21,0x15,0x10,0x04,0x24,0x6e,0xfe,0x64,0xfe,0x76,0x6e,0x6e,0xa1,0x01,0xe3,0xa2,0x6e,0xfd,0xff,0xf1,0xfe,0x1d,0x01,0xd8,0x32,0xfe,0x42,0x01,0xb2,0x3e,0x6d,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xfe,0x2d,0x01,0x2a,0x3c,0x36,0xfe, +0xd0,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x04,0xae,0x04,0x00,0x00,0x1e,0x00,0x27,0x00,0x5e,0x40,0x31,0x12,0x26,0x1a,0xe2,0x0f,0x06,0x1d,0x1d,0x21,0x04,0x09,0x0d,0x03,0x01,0x95,0x0a,0x02,0x0f,0x21,0x95,0x16,0x16,0x0d,0x12,0x09,0x00,0x1a,0x04,0x09,0x04,0x12,0x1a,0x11,0x11,0x0c,0x0f,0x12,0x84,0x07,0x25,0x25,0x29,0x06,0x26, +0x84,0x01,0x1d,0x07,0x1a,0x2f,0xcd,0x33,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0x32,0xc1,0x2f,0x11,0x12,0x39,0x39,0x2f,0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x01,0x23,0x35,0x21,0x15,0x06,0x07,0x21,0x26,0x27,0x35,0x21,0x15,0x23,0x16,0x17, +0x33,0x15,0x23,0x06,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x23,0x35,0x33,0x36,0x13,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x01,0x1c,0xbc,0x01,0x7f,0xba,0x1c,0x02,0xb0,0x1c,0xb9,0x01,0x7e,0xb8,0x95,0x1c,0x53,0x4c,0x04,0x86,0x8a,0xf2,0xed,0x88,0x85,0x02,0x4c,0x54,0x1e,0xdc,0x5f,0xa1,0xa6,0x5b,0x54,0x06,0xfd,0x47,0x07,0x03, +0x74,0x8c,0x8e,0x55,0xd8,0xd8,0x55,0x8e,0x8c,0x6f,0xc0,0x6d,0xda,0x89,0x8d,0x8b,0x89,0xdc,0x6d,0xbe,0xfd,0xd8,0x69,0x66,0x5e,0xa2,0x9c,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x54,0x05,0xec,0x02,0x26,0x00,0x45,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xa9,0x05,0xec,0x02,0x26, +0x00,0x47,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xd2,0x00,0x00,0x00,0x09,0xb3,0x02,0x2a,0x2a,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x35,0xfe,0x96,0x02,0xa0,0x06,0x02,0x02,0x26,0x00,0x49,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x49,0x00,0x00,0x00,0x09,0xb3,0x01,0x21,0x21,0x09,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, +0xfe,0x1e,0x05,0xfc,0x04,0x18,0x02,0x26,0x00,0x4a,0x00,0x00,0x00,0x27,0x08,0x5d,0x05,0x25,0x00,0x00,0x01,0x07,0x08,0x60,0x03,0xc2,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x02,0x32,0x32,0x33,0x02,0x26,0x26,0x36,0x03,0x35,0x35,0x18,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96, +0x03,0xf9,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0x22,0x00,0x00,0x00,0x09,0xb3,0x01,0x0d,0x0d,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x01,0xe3,0x05,0xec,0x02,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x10,0x10,0x00,0x10,0x3c,0x12, +0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x06,0xed,0x04,0x18,0x02,0x26,0x00,0x50,0x00,0x00,0x01,0x07,0x08,0x5d,0x06,0x16,0x00,0x00,0x00,0x09,0xb3,0x01,0x2c,0x2c,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x96,0x04,0x91,0x04,0x18,0x02,0x26,0x00,0x51,0x00,0x00,0x01,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x09, +0xb3,0x01,0x1f,0x1f,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0xa6,0xfe,0x29,0x04,0x54,0x04,0x18,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x08,0x5b,0x03,0x05,0x00,0x00,0xff,0xff,0x00,0x5c,0xfe,0x96,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x01,0x07,0x08,0x5d,0x01,0x0c,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d, +0x06,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x68,0xfe,0x96,0x03,0xad,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0xd6,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x73,0xfb,0x27,0x00,0x11,0xb7,0x02,0x3d,0x42,0x2d,0x01,0x30,0x30,0x3f,0x10,0x3c,0x12,0x34,0x00,0x10,0xf4,0x34,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e, +0x03,0x4b,0x06,0x02,0x00,0x26,0x05,0x88,0x00,0x00,0x00,0x27,0x08,0x5d,0x02,0x74,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0x11,0xfb,0x74,0x00,0x1b,0x40,0x0c,0x01,0x22,0x22,0x24,0x01,0x17,0x17,0x26,0x02,0x25,0x25,0x04,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x0e,0xfe,0x96,0x04,0x06, +0x04,0x00,0x02,0x26,0x00,0x59,0x00,0x00,0x00,0x27,0x08,0x5d,0x03,0x2f,0x00,0x00,0x01,0x07,0x08,0x60,0x01,0xcc,0xfb,0x3f,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x02,0x01,0x0c,0x0c,0x1c,0x10,0x3c,0x12,0x34,0x00,0x10,0x3c,0x12,0x34,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x00,0x5b,0x00,0x00,0x01,0x07,0x08,0x5d, +0x02,0xbb,0x00,0x00,0x00,0x09,0xb3,0x01,0x14,0x14,0x02,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x21,0xfe,0x96,0x03,0x70,0x04,0x00,0x02,0x26,0x00,0x5d,0x00,0x00,0x01,0x07,0x08,0x5d,0x02,0x93,0x00,0x00,0x00,0x09,0xb3,0x01,0x0a,0x0a,0x03,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x04,0x71,0x04,0x18,0x02,0x26, +0x00,0x44,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xc1,0x00,0x00,0x00,0x09,0xb3,0x02,0x20,0x20,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0x96,0x04,0xfe,0x04,0x18,0x02,0x26,0x05,0x57,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x1e,0x1e,0x00,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60, +0xfe,0x96,0x05,0x21,0x06,0x02,0x02,0x26,0x05,0x5d,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x4e,0x00,0x00,0x00,0x09,0xb3,0x02,0x27,0x27,0x05,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x60,0xfe,0xb4,0x04,0x84,0x04,0x18,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0xd4,0x00,0x1e,0x00,0x09,0xb3,0x02,0x1a,0x1a,0x06,0x10, +0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xfe,0x96,0x04,0x29,0x04,0x19,0x02,0x26,0x01,0x31,0x00,0x00,0x01,0x07,0x08,0x5e,0x03,0x79,0x00,0x00,0x00,0x09,0xb3,0x01,0x26,0x26,0x25,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x50,0xfe,0x96,0x03,0x3b,0x04,0x19,0x02,0x26,0x02,0x0e,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x27,0x00,0x00, +0x00,0x09,0xb3,0x01,0x2d,0x2d,0x01,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x52,0xff,0xe8,0x05,0xe0,0x04,0x18,0x00,0x26,0x02,0xce,0x00,0x00,0x00,0x27,0x08,0x5e,0x05,0x30,0x01,0xf4,0x01,0x07,0x08,0x60,0x02,0x70,0xfc,0xdd,0x00,0x12,0xb7,0x02,0x1a,0x1a,0x00,0x03,0x29,0x29,0x00,0x00,0x10,0x3c,0x12,0x34,0x10,0x3c,0x12,0x34, +0xff,0xff,0x00,0x90,0xfe,0x96,0x02,0xd1,0x05,0xd9,0x02,0x26,0x00,0x4c,0x00,0x00,0x01,0x07,0x08,0x5e,0x02,0x21,0x00,0x00,0x00,0x09,0xb3,0x02,0x1c,0x1c,0x0f,0x10,0x3c,0x12,0x34,0x00,0xff,0xff,0x00,0x5a,0xfe,0x96,0x03,0x5a,0x04,0x18,0x02,0x26,0x05,0x5a,0x00,0x00,0x01,0x07,0x08,0x5e,0x01,0x33,0x00,0x00,0x00,0x09,0xb3,0x01, +0x21,0x21,0x01,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0x92,0xfe,0x1d,0x02,0x68,0x06,0x02,0x00,0x1f,0x00,0x28,0x40,0x15,0x17,0x95,0x09,0x0c,0x95,0x11,0x1c,0x02,0x95,0x1d,0x00,0x00,0x00,0x05,0x84,0x19,0x0e,0x09,0x83,0x15,0x19,0x2f,0xd6,0xe1,0xc4,0x10,0xf1,0xc2,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x2f,0xed,0x31,0x30,0x01,0x26, +0x23,0x22,0x15,0x11,0x14,0x07,0x06,0x07,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x02,0x68,0x32,0x3c,0xaa,0x5d,0x4c,0x7d,0x7f,0x3b,0x35,0x34,0x3d,0x7d,0x99,0x32,0x3c,0xac,0xb8,0x8e,0x4c,0x2a,0x05,0x5c,0x1b,0xdf,0xfc,0x71,0xa2,0x60,0x4d,0x0e,0x67,0x9d, +0x1e,0x92,0x17,0xa0,0x8b,0x01,0x06,0x1a,0xdf,0x03,0x8d,0xa4,0xbe,0x12,0xff,0xff,0x00,0x90,0xfe,0x96,0x04,0xd0,0x04,0x00,0x02,0x26,0x00,0x58,0x00,0x00,0x01,0x07,0x08,0x5e,0x04,0x20,0x00,0x00,0x00,0x09,0xb3,0x01,0x13,0x13,0x00,0x10,0x3c,0x12,0x34,0x00,0x00,0x01,0xff,0xdd,0xfe,0x21,0x03,0x68,0x04,0x00,0x00,0x23,0x00,0x53, +0x40,0x2f,0x09,0x96,0x11,0x11,0x0e,0x10,0x01,0x01,0x01,0x17,0x95,0x0f,0x03,0x1f,0x03,0x2f,0x03,0x03,0x03,0x10,0x0d,0x95,0x0e,0x0f,0x1d,0xec,0x21,0x1c,0x11,0x0c,0x0b,0x10,0x0b,0x10,0x0b,0x16,0x0e,0x14,0x83,0x06,0x06,0x25,0x0e,0x1f,0x19,0x83,0x01,0x2f,0xed,0xc4,0x2f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12, +0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x39,0x2f,0x5d,0xed,0xc6,0x5d,0x12,0x39,0x2f,0xed,0x31,0x30,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x23,0xa5,0xb1,0xae,0xdf,0xde,0xce,0x52,0x01, +0x63,0xfd,0xdb,0x03,0x2d,0xfe,0x95,0xbc,0xea,0xfe,0xbc,0xf7,0x5f,0x58,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0xb7,0x01,0x01,0x68,0x84,0x72,0x81,0x74,0x33,0x01,0x74,0x8c,0x33,0xfe,0x81,0x1a,0xb8,0xa0,0xae,0xd7,0x17,0x25,0x9d,0x1f,0x93,0x17,0x9f,0x00,0x02,0x00,0x66,0x02,0x89,0x02,0x88,0x04,0xcf,0x00,0x10,0x00,0x1b,0x00,0x48, +0xb3,0x0e,0x02,0x05,0x13,0x41,0x0d,0x01,0x0d,0x00,0x0b,0x01,0x0b,0x00,0x10,0x01,0x0a,0x00,0x00,0x01,0x08,0x00,0x17,0x01,0x0d,0x00,0x05,0x01,0x09,0x00,0x08,0x01,0x0c,0x40,0x09,0x11,0x0e,0x01,0x15,0x15,0x1d,0x0f,0x02,0x1b,0xb9,0x01,0x0c,0x00,0x10,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x11,0x33,0x33,0xed,0x00,0x3f,0xed,0x3f, +0x3f,0x3f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x15,0x23,0x36,0x16,0x33,0x32,0x35,0x34,0x23,0x22,0x06,0x15,0x15,0x66,0x7e,0x03,0x35,0x70,0x6e,0x8e,0x81,0x68,0x76,0x42,0x03,0x7e,0x7e,0x52,0x42,0x8e,0x90,0x40,0x52,0x04,0xbe,0x43,0x54,0xab,0x84,0x80,0x97, +0x61,0x50,0xb4,0x5e,0xb6,0xc2,0x5c,0x46,0x2e,0x00,0x00,0x01,0x00,0x3e,0x02,0x89,0x01,0xec,0x04,0xd1,0x00,0x15,0x00,0x32,0xb1,0x0b,0x0d,0xba,0x01,0x0d,0x00,0x08,0x01,0x09,0xb6,0xc0,0x15,0xd0,0x15,0x02,0x15,0x13,0xba,0x01,0x0d,0x00,0x02,0x01,0x0b,0xb3,0x0b,0x15,0x17,0x10,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x10,0xc6,0x32, +0x00,0x3f,0xfd,0xc6,0x5d,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x01,0xec,0x42,0x5b,0x7b,0x96,0xa2,0x87,0x4b,0x3a,0x3a,0x42,0x50,0x60,0x5b,0x51,0x44,0x3c,0x02,0xb2,0x29,0x9b,0x7c,0x8a,0xa7,0x24,0x6c,0x2c,0x6c,0x58,0x56,0x66, +0x31,0x00,0x00,0x02,0x00,0x3d,0x02,0x48,0x02,0x10,0x04,0xd1,0x00,0x1d,0x00,0x26,0x00,0x5b,0xb5,0x05,0x00,0x0a,0x1c,0x0d,0x0f,0xba,0x01,0x0d,0x00,0x0a,0x01,0x09,0x40,0x0d,0x25,0xbf,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x16,0x20,0xbb,0x01,0x0d,0x00,0x03,0x00,0x1c,0x01,0x0b,0x40,0x0f,0x03,0x05,0x00,0x03,0x03,0x19, +0x07,0x1e,0x14,0x12,0x23,0x19,0x0d,0x28,0x12,0xb9,0x01,0x0c,0x00,0x07,0x2f,0xed,0x10,0xd4,0xd4,0xcd,0x11,0x39,0x39,0x11,0x12,0x17,0x39,0x2f,0x00,0x3f,0xc4,0xfd,0xd4,0x5d,0x5d,0xcd,0x3f,0xfd,0xc6,0x11,0x12,0x39,0x39,0x31,0x30,0x13,0x06,0x07,0x23,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15, +0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0xdb,0x10,0x03,0x59,0x07,0x1c,0x55,0xa2,0x88,0x4b,0x3a,0x39,0x40,0x4f,0x64,0x21,0x4d,0x58,0x3d,0x4d,0x6d,0x54,0x45,0x0d,0x2d,0x24,0x1e,0x2f,0x3c,0x36,0x02,0x9e,0x27,0x2f,0x49,0x3d,0x4e,0x84,0x8a,0xa7,0x24,0x6c,0x2c,0x6d, +0x59,0x4c,0x2a,0x4d,0x42,0x32,0x42,0x3f,0x71,0x13,0x0f,0x12,0x20,0x00,0x00,0x02,0x00,0x3e,0x02,0x8a,0x02,0x7f,0x05,0xd4,0x00,0x1c,0x00,0x27,0x00,0x62,0x40,0x10,0x16,0x14,0x17,0x02,0x1c,0x01,0x06,0x15,0x00,0x15,0x00,0x15,0x1a,0x06,0x09,0x1d,0xbe,0x01,0x0d,0x00,0x0f,0x01,0x09,0x00,0x23,0x01,0x0d,0x00,0x09,0x01,0x0b,0x40, +0x10,0x01,0x1c,0x01,0x02,0x03,0x06,0x16,0x17,0x14,0x11,0x03,0x26,0x19,0x19,0x0c,0x06,0xb8,0x01,0x0c,0xb3,0x26,0x26,0x29,0x20,0xb9,0x01,0x0c,0x00,0x0c,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xc6,0x12,0x17,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0xc4,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30, +0x01,0x17,0x07,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x27,0x07,0x27,0x37,0x26,0x27,0x33,0x16,0x17,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x38,0x21,0x8a,0x22,0x22,0x6c,0x9d,0x86,0x86,0x98,0x9d,0x86,0x32,0x2c,0x02,0x28,0x2e,0xb6,0x1e,0x95,0x43,0x4f,0xa4, +0x2a,0x2b,0x30,0x4d,0x58,0x56,0x4d,0x49,0x54,0x05,0xd4,0x47,0x37,0x26,0x2f,0x94,0xb8,0x83,0xa8,0x99,0x83,0x85,0xa5,0x16,0x02,0x40,0x32,0x48,0x49,0x3b,0x38,0x2e,0x17,0x26,0xfe,0xd1,0x64,0x57,0x53,0x62,0x64,0x53,0xb9,0x00,0x00,0x01,0x00,0x42,0x02,0x89,0x01,0xdf,0x04,0xcf,0x00,0x1e,0x00,0x55,0xb1,0x1d,0x0d,0xb8,0x01,0x0d, +0x40,0x09,0x0e,0x0e,0x18,0x08,0xb0,0x15,0x01,0x15,0x13,0xbf,0x01,0x0d,0x00,0x18,0x01,0x09,0x00,0x06,0x00,0x08,0x01,0x0d,0x00,0x03,0x01,0x0b,0xb2,0x16,0x0e,0x1b,0xb8,0x01,0x0c,0xb6,0x11,0x0e,0x16,0x11,0x03,0x06,0x01,0xb8,0x01,0x0c,0xb3,0x0a,0x0a,0x20,0x06,0x2f,0x12,0x39,0x2f,0xed,0x12,0x17,0x39,0x2f,0xed,0x2f,0x2f,0x00, +0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x71,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x00,0x15,0x14,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x01,0xdf,0xfb,0x59,0x49,0x3e,0x55,0x87,0x9e,0x32,0x30,0x8c,0x71,0x49,0x3e,0x40,0x4d,0x6d, +0x81,0x67,0x03,0x9c,0x6f,0xa4,0x1b,0x64,0x1c,0x49,0x4c,0x63,0x47,0x41,0x1c,0x68,0x17,0x51,0x49,0x5a,0x1f,0x04,0x00,0x01,0x00,0x0a,0x02,0x9a,0x01,0x83,0x05,0xd3,0x00,0x14,0x00,0x33,0xb9,0x00,0x02,0x01,0x0d,0xb2,0x12,0x08,0x0c,0xbd,0x01,0x0d,0x00,0x05,0x00,0x0d,0x01,0x08,0x00,0x0a,0x01,0x0a,0x40,0x09,0x06,0x06,0x00,0x05, +0x09,0xcd,0x0e,0x0c,0x0a,0x2f,0xc6,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x00,0x3f,0x3f,0x33,0xed,0x32,0xd4,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x01,0x83,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0x49,0x6a, +0xfe,0x46,0x01,0xba,0x6a,0x4d,0x62,0x66,0x0a,0x00,0x00,0x01,0xff,0xdd,0x01,0x94,0x01,0x56,0x04,0xbe,0x00,0x14,0x00,0x48,0x40,0x0b,0x0e,0x0c,0x0a,0xcd,0x09,0x06,0x06,0x00,0x05,0x09,0x09,0xba,0x01,0x08,0x00,0x02,0x01,0x0d,0x40,0x13,0x0f,0x12,0x1f,0x12,0x02,0x2f,0x12,0x3f,0x12,0x9f,0x12,0xaf,0x12,0xbf,0x12,0x05,0x12,0x0b, +0x08,0xbb,0x01,0x0d,0x00,0x0e,0x00,0x05,0x01,0x0a,0x00,0x3f,0x33,0xed,0x32,0xd4,0x5d,0x71,0xed,0x3f,0x01,0x2f,0x33,0xc4,0x39,0x2f,0x10,0xfd,0xc6,0x33,0x31,0x30,0x03,0x16,0x33,0x32,0x35,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x1b,0x22,0x60,0x82,0x82,0x80,0x5c,0x5c,0x79,0x62, +0x2a,0x18,0x02,0x0e,0x0f,0x61,0x58,0x6a,0x01,0x9c,0xfe,0x64,0x6a,0x5c,0x62,0x66,0x0a,0x00,0xff,0xff,0x00,0x3e,0x01,0x94,0x02,0x60,0x04,0xcf,0x02,0x06,0x07,0xaf,0x00,0x00,0x00,0x01,0x00,0x5c,0x01,0xa4,0x02,0x46,0x04,0xbe,0x00,0x11,0x00,0x30,0x41,0x0a,0x00,0x0c,0x01,0x0d,0x00,0x01,0x00,0x05,0x01,0x0b,0x00,0x10,0x00,0x08, +0x01,0x08,0x00,0x11,0x01,0x0c,0xb4,0x01,0x10,0x10,0x13,0x09,0xb9,0x01,0x0c,0x00,0x08,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x33,0x3f,0xc6,0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x02,0x46,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x80,0x01,0xa4, +0x01,0x4c,0x67,0xe7,0x01,0x4e,0xfe,0xce,0x98,0x53,0x40,0x01,0x37,0x00,0x00,0x02,0x00,0x0f,0x02,0x9a,0x01,0x3f,0x05,0xc4,0x00,0x0b,0x00,0x13,0x00,0x48,0x40,0x19,0x01,0x05,0x0a,0x1f,0x06,0x01,0x06,0x40,0x0c,0x10,0x48,0x06,0x06,0x08,0x03,0x0c,0x0f,0x10,0x1f,0x10,0x2f,0x10,0x03,0x10,0x08,0xba,0x01,0x08,0x00,0x03,0x01,0x0a, +0xb3,0x0b,0x12,0x0a,0x02,0xb8,0x01,0x0c,0xb3,0x0e,0x06,0x07,0x03,0x2f,0xc4,0xc4,0xc4,0xfd,0x32,0xc4,0xc4,0x00,0x3f,0x3f,0xd4,0x5d,0xcd,0x11,0x12,0x39,0x2f,0x2b,0x71,0x33,0xcd,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x03,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01,0x3f,0x57,0x82,0x57,0x57, +0x82,0x57,0x99,0x4e,0x50,0x4e,0x03,0x91,0xf7,0xf7,0x56,0xd7,0xd7,0x01,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x02,0x8b,0x01,0x72,0x04,0xbe,0x00,0x0b,0x00,0x1f,0x41,0x0a,0x00,0x05,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0b,0x00,0x06,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x3f,0xed,0x3f,0x31, +0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x02,0x9b,0x10,0xb5,0x01,0x7e,0xfe,0x8a,0x52,0x12,0x00,0x01,0x00,0x11,0x02,0x9a,0x01,0x51,0x04,0xbe,0x00,0x0b,0x00,0x2e,0xb1,0x0b,0x07,0xbf,0x01,0x0d,0x00,0x08,0x01,0x08,0x00,0x01,0x00,0x04,0x01,0x0d,0x00,0x03, +0x01,0x0a,0xb2,0x0a,0x01,0x00,0xb8,0x01,0x0c,0xb2,0x07,0x04,0x05,0x2f,0xcd,0x32,0xfd,0xcd,0x32,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x13,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0xf2,0x5f,0xfe,0xc0,0x5f,0x5f,0x01,0x40,0x5f,0x02,0xf0,0x56,0x56,0x01,0x78,0x56,0x56,0x00,0x00,0x01,0x00,0x11,0x02,0x9a, +0x01,0x51,0x04,0xbe,0x00,0x13,0x00,0x44,0x40,0x09,0x01,0x09,0xcb,0x12,0x0a,0x0a,0x06,0x11,0x0d,0xbf,0x01,0x0d,0x00,0x0e,0x01,0x08,0x00,0x02,0x00,0x06,0x01,0x0d,0x00,0x05,0x01,0x0a,0xb4,0x00,0x0f,0x03,0x12,0x02,0xb8,0x01,0x0c,0xb4,0x0e,0x0a,0x06,0x0b,0x07,0x2f,0x33,0xcd,0x32,0x32,0xfd,0x32,0xcd,0x32,0x32,0x00,0x3f,0xed, +0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x01,0x49,0x57,0x5f,0xfe,0xc0,0x5f,0x57,0x57,0x5f,0x01,0x40,0x5f,0x57,0x03,0x91,0xa1,0x56,0x56,0xa1,0x56,0x81,0x56,0x56,0x81,0x00,0x00,0x03,0xff,0x87,0x01,0x94, +0x01,0x6d,0x05,0xc4,0x00,0x11,0x00,0x19,0x00,0x21,0x00,0x51,0x40,0x1f,0x02,0x00,0x14,0x0f,0x0c,0x00,0x0a,0x18,0x00,0x18,0x40,0x04,0x50,0x04,0x02,0x2f,0x04,0x3f,0x04,0x02,0x04,0x1a,0x0f,0x1e,0x1f,0x1e,0x2f,0x1e,0x03,0x1e,0x0d,0xb8,0x01,0x0a,0xb3,0x11,0x20,0x02,0x0e,0xb8,0x01,0x0c,0xb5,0x1c,0x0d,0x16,0x07,0x12,0x0d,0x2f, +0x33,0xd4,0xcd,0x10,0xc4,0xfd,0x32,0xc4,0xc6,0x00,0x3f,0xd4,0x5d,0xcd,0x2f,0x5d,0x5d,0xcd,0xc4,0x10,0xd4,0x11,0x39,0x39,0xcd,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x11,0x16,0x17,0x25,0x26,0x23,0x22,0x15,0x14,0x33,0x32,0x13,0x22,0x35,0x34,0x33,0x32,0x15,0x14,0x01, +0x6d,0x45,0x47,0x23,0xb1,0x3a,0x4c,0x65,0x52,0x15,0x13,0x82,0x44,0x41,0xfe,0xf9,0x14,0x14,0x58,0x32,0x4b,0x43,0x4e,0x50,0x4e,0x01,0xcf,0x39,0x1c,0x90,0x42,0x33,0x3b,0x4f,0x02,0x02,0x2d,0xfd,0xbb,0x18,0x2e,0x0b,0x03,0x33,0x27,0x03,0x46,0x4c,0x4b,0x4b,0x4c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x01,0x72,0x05,0xc4,0x00,0x0b, +0x00,0x1b,0xbb,0x00,0x05,0x01,0x07,0x00,0x09,0x01,0x0d,0xb2,0x02,0x0b,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xfd,0xc6,0x00,0x2f,0xed,0x3f,0x31,0x30,0x01,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x01,0x72,0x25,0x3c,0xab,0x82,0x50,0x22,0x18,0x01,0xa8,0x10,0xb5,0x03,0x77,0xfc,0x91,0x52,0x12,0x00,0x01,0x00,0x31, +0x01,0xcb,0x01,0x3d,0x05,0xc4,0x00,0x0e,0x00,0x38,0xbb,0x00,0x00,0x01,0x07,0x00,0x0b,0x01,0x0d,0xb3,0x50,0x06,0x01,0x06,0xb8,0xff,0xc0,0xb5,0x09,0x0c,0x48,0x06,0x02,0x0e,0xbf,0x01,0x0a,0x00,0x09,0x00,0x03,0x01,0x0c,0x00,0x0d,0x00,0x01,0x01,0x0c,0x00,0x00,0x2f,0xfd,0xd5,0xfd,0xc4,0x00,0x3f,0xd5,0xd4,0x2b,0x71,0xed,0x3f, +0x31,0x30,0x13,0x33,0x11,0x33,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x23,0x66,0x80,0x57,0x64,0x63,0x25,0x20,0x1d,0x23,0x59,0x0a,0x6e,0x05,0xc4,0xfc,0xf3,0x6f,0x7d,0x0b,0x61,0x10,0x73,0x00,0x00,0x01,0x00,0x66,0x02,0x96,0x01,0xb4,0x04,0xc4,0x00,0x05,0x00,0x20,0xbb,0x00,0x02,0x01,0x06,0x00,0x04,0x01,0x0d,0xb5, +0x01,0xff,0x00,0x00,0x07,0x04,0xb9,0x01,0x0c,0x00,0x01,0x2f,0xed,0x12,0x39,0x2f,0x00,0x3f,0xed,0x3f,0x31,0x30,0x01,0x21,0x11,0x33,0x13,0x33,0x01,0xb3,0xfe,0xb3,0x7f,0x01,0xce,0x02,0x96,0x02,0x2e,0xfe,0x3c,0x00,0x00,0x01,0x00,0x66,0x01,0x98,0x03,0x9a,0x04,0xcf,0x00,0x25,0x00,0x65,0xb9,0x00,0x24,0x01,0x0d,0x40,0x09,0x1f, +0x1d,0x00,0x08,0x13,0x18,0x05,0x16,0x10,0xba,0x01,0x0a,0x00,0x11,0x01,0x08,0xb2,0x1a,0x03,0x0b,0xba,0x01,0x0d,0x00,0x16,0x01,0x09,0xb3,0x18,0x07,0x13,0x1d,0xb8,0x01,0x0c,0x40,0x0a,0x40,0x22,0x00,0x0e,0x08,0x10,0x08,0x42,0x13,0x0f,0xbb,0x01,0x0c,0x00,0x10,0x00,0x07,0x01,0x0c,0xb3,0x08,0x08,0x27,0x26,0x11,0x12,0x39,0x2f, +0xed,0x2f,0xed,0x32,0x2b,0x01,0x18,0x10,0xf4,0xc6,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0xed,0x39,0x39,0x3f,0x3f,0x12,0x17,0x39,0xd4,0xed,0x31,0x30,0x01,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x15,0x11,0x02,0x23,0x22,0x27,0x35, +0x16,0x33,0x32,0x03,0x1a,0x68,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x01,0xd9,0x2b,0x25,0x22,0x23,0x65,0x02,0x9a,0x01,0x3b,0x8f,0x54,0x3f,0xfe,0xc9,0x01,0x3f,0x8b,0x52,0x45,0xfe,0xcd,0x02,0x24,0x52,0x63,0x6f,0x6f,0xe3,0xfe,0xba,0xfe,0xf2,0x10,0x68,0x14,0x00,0x00,0x01,0x00,0x60, +0x01,0xa4,0x03,0x94,0x04,0xbe,0x00,0x1d,0x00,0x56,0xb4,0x07,0x18,0x02,0x03,0x10,0xb8,0x01,0x0d,0xb2,0x05,0x01,0x09,0xb8,0x01,0x0b,0xb2,0x1c,0x14,0x0c,0xb8,0x01,0x08,0xb3,0x07,0x01,0x14,0x1d,0xb8,0x01,0x0c,0x40,0x09,0x40,0x01,0x1c,0x0e,0x14,0x0c,0x14,0x42,0x0d,0xbb,0x01,0x0c,0x00,0x0c,0x00,0x15,0x01,0x0c,0xb3,0x14,0x14, +0x1f,0x1e,0x11,0x12,0x39,0x2f,0xed,0x2f,0xed,0x2b,0x01,0x18,0x10,0xf4,0x32,0x1a,0xed,0x11,0x12,0x39,0x00,0x3f,0x33,0x33,0x3f,0xc6,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0x94, +0x7e,0x02,0x38,0x72,0x77,0x28,0x3d,0x7c,0xb2,0x7f,0x69,0x31,0x41,0x80,0x68,0x32,0x40,0x80,0x01,0xa4,0x01,0x48,0x63,0x6f,0x6f,0xe3,0x01,0x52,0xfe,0xc5,0x8f,0x54,0x3f,0x01,0x37,0xfe,0xc1,0x8b,0x52,0x46,0x01,0x32,0x00,0x01,0xff,0xbc,0x01,0x98,0x02,0x50,0x04,0xcf,0x00,0x19,0x00,0x3e,0xb1,0x0c,0x16,0xbe,0x01,0x0d,0x00,0x0f, +0x01,0x09,0x00,0x0a,0x01,0x08,0x00,0x07,0x01,0x0d,0xb3,0x02,0x00,0x09,0x13,0xba,0x01,0x0a,0x00,0x12,0x01,0x0c,0xb4,0x13,0x13,0x1b,0x0b,0x00,0xb8,0x01,0x0c,0xb1,0x05,0x09,0x2f,0xc6,0xed,0x32,0x12,0x39,0x2f,0xed,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31,0x30,0x13,0x10,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35, +0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x06,0x15,0xe6,0xda,0x2b,0x25,0x22,0x23,0x65,0x80,0x02,0x3b,0x79,0xb4,0x7f,0x6d,0x39,0x45,0x02,0xa6,0xfe,0xf2,0x10,0x68,0x14,0x9e,0x02,0x24,0x56,0x67,0xe7,0xfe,0xb2,0x01,0x33,0x97,0x54,0x3f,0x00,0x01,0x00,0x66,0x01,0x98,0x02,0xfa,0x04,0xcf,0x00,0x19, +0x00,0x3f,0xb1,0x14,0x0c,0xbe,0x01,0x0d,0x00,0x17,0x01,0x09,0x00,0x12,0x01,0x08,0x00,0x02,0x01,0x0d,0xb3,0x07,0x00,0x09,0x11,0xbb,0x01,0x0a,0x00,0x04,0x00,0x00,0x01,0x0c,0xb4,0x09,0x09,0x1b,0x13,0x10,0xb9,0x01,0x0c,0x00,0x11,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x00,0x3f,0x33,0x33,0xd4,0xed,0x3f,0x3f,0xed,0x32,0x31, +0x30,0x01,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x11,0x11,0x34,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x65,0x23,0x22,0x25,0x2b,0xd9,0x6d,0x39,0x45,0x80,0x80,0x02,0x3b,0x79,0xb4,0x02,0x9a,0x9e,0x14,0x68,0x10,0x01,0x0e,0x01,0x27,0x97,0x54,0x3f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7, +0x00,0x01,0x00,0x66,0x02,0x9a,0x02,0x6a,0x04,0xbe,0x00,0x13,0x00,0x26,0xbd,0x00,0x0a,0x01,0x08,0x00,0x09,0x01,0x0a,0x00,0x00,0x01,0x0c,0xb5,0x01,0x11,0x11,0x15,0x0b,0x08,0xb9,0x01,0x0c,0x00,0x09,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x00,0x3f,0x3f,0x31,0x30,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33, +0x13,0x16,0x17,0x33,0x26,0x35,0x11,0x33,0x02,0x6a,0x7f,0xea,0x14,0x07,0x02,0x02,0x80,0x84,0xe5,0x12,0x09,0x02,0x04,0x82,0x02,0x9a,0x01,0x4d,0x1c,0x0d,0x1d,0x2a,0xfe,0xd1,0x02,0x24,0xfe,0xbc,0x18,0x12,0x1c,0x22,0x01,0x30,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xcf,0x00,0x0b,0x00,0x14,0x00,0x1d,0x00,0x3f,0xb9,0x00, +0x13,0x01,0x0d,0xb3,0x19,0x19,0x0e,0x15,0xbe,0x01,0x0d,0x00,0x06,0x01,0x09,0x00,0x0e,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x1a,0x19,0x13,0x09,0xb8,0x01,0x0c,0xb3,0x12,0x12,0x1f,0x13,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x16,0x33,0x32,0x37,0x36,0x37,0x21,0x16,0x13,0x22,0x07,0x06,0x07,0x21,0x26,0x27,0x26,0x01,0x58,0x80,0x9a,0xa2,0x84,0x80,0x9b,0xa3,0xf2,0x2c,0x48,0x49,0x2b,0x21,0x08,0xfe,0xc5,0x08,0x96,0x49,0x2c,0x1d,0x0a,0x01,0x38,0x0a,0x1e,0x2b,0x02,0x89,0x9e,0x7f,0x87,0xa2,0x9f,0x7e, +0x88,0xa1,0x97,0x2c,0x2c,0x21,0x40,0x40,0x01,0x23,0x2c,0x1e,0x36,0x37,0x1e,0x2b,0x00,0x03,0x00,0x3e,0x01,0xa4,0x02,0xb1,0x05,0xc4,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x54,0xb1,0x1c,0x26,0xb8,0x01,0x0d,0xb2,0x0c,0x0a,0x09,0xbb,0x01,0x09,0x00,0x1d,0x00,0x25,0x01,0x0d,0xb5,0x14,0x40,0x00,0x01,0x00,0x01,0xb8,0x01,0x0b,0xb2, +0x0c,0x1d,0x15,0xb8,0x01,0x0c,0xb5,0x09,0x25,0x00,0x00,0x05,0x10,0xb8,0x01,0x0c,0xb3,0x18,0x18,0x29,0x21,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xed,0x32,0x3f,0xcd,0x33,0xed,0x32,0x31,0x30,0x01,0x35,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37, +0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x13,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x36,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x01,0x36,0x6e,0x3d,0x4d,0x51,0x3d,0x6a,0x82,0x6e,0x3d,0x4e,0x52,0x3e,0x69,0x4c,0x2c,0x2c,0x1b,0x31,0x31,0xff,0x00,0x2b,0x2c,0x1b,0x31,0x31,0x01,0xa4,0xe8,0x0d,0x3f,0x4f, +0x7f,0x87,0x51,0x3d,0x0f,0xfa,0xf8,0x0d,0x40,0x4f,0x7e,0x88,0x51,0x3d,0x0f,0xe9,0x01,0x81,0x31,0x56,0x58,0x30,0x1e,0x0b,0xfe,0x9d,0x0c,0x01,0x2d,0x31,0x56,0x56,0x31,0x1f,0x0c,0x01,0x63,0x0b,0x00,0x01,0x00,0x42,0x01,0xe2,0x01,0xa1,0x04,0xd1,0x00,0x2b,0x00,0x4f,0xb1,0x03,0x08,0xb8,0xff,0xc0,0x40,0x0b,0x0c,0x12,0x48,0x08, +0x10,0x27,0x16,0x21,0x04,0x19,0x0e,0xbe,0x01,0x0d,0x00,0x2a,0x01,0x0b,0x00,0x1e,0x01,0x0d,0x00,0x19,0x01,0x09,0xb7,0x1b,0x21,0xcd,0x16,0x1b,0x16,0x0c,0x27,0xb8,0x01,0x0c,0xb5,0x10,0x10,0x2d,0x05,0x01,0x0c,0x2f,0xcd,0xc4,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0xed,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0xd4,0x2b, +0xcd,0x31,0x30,0x13,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x97,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x3f,0x41,0x60,0x2b,0x3c,0x47,0x31,0x71,0x5a, +0x44,0x36,0x31,0x3e,0x31,0x27,0x24,0x3d,0x48,0x37,0x6c,0x5f,0x24,0x02,0x92,0x12,0x53,0x13,0x4d,0x11,0x4e,0x47,0xa7,0x36,0x3b,0x20,0x29,0x1d,0x24,0x4c,0x37,0x45,0x5c,0x19,0x6f,0x29,0x23,0x18,0x21,0x27,0x1d,0x23,0x4e,0x36,0x47,0x5b,0x00,0x01,0xff,0xc9,0x01,0x94,0x01,0x83,0x05,0xd3,0x00,0x15,0x00,0x2d,0xbc,0x00,0x02,0x01, +0x0d,0x00,0x13,0x00,0x0d,0x01,0x0d,0x40,0x0d,0x40,0x08,0x50,0x08,0x02,0x2f,0x08,0x3f,0x08,0x02,0x08,0x01,0x05,0xb8,0x01,0x0c,0xb1,0x0b,0x0f,0x2f,0xc6,0xfd,0xc6,0x00,0x2f,0x5d,0x5d,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x01, +0x83,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x1b,0x22,0x60,0x79,0x62,0x2a,0x18,0x05,0x59,0x0f,0x61,0xfd,0x55,0x62,0x66,0x0a,0x70,0x0f,0x61,0x02,0xab,0x62,0x66,0x0a,0x00,0x01,0x00,0x0a,0x01,0xe2,0x01,0x68,0x05,0x62,0x00,0x1d,0x00,0x53,0xb1,0x08,0x03,0xb8,0xff,0xc0,0xb6,0x0c,0x11,0x48,0x03,0x0c,0x1d,0x1b,0xbb,0x01,0x0d,0x00, +0x00,0x00,0x0c,0x01,0x0b,0xb4,0x14,0x15,0x18,0x15,0x0f,0xba,0x01,0x0d,0x00,0x12,0x01,0x08,0x40,0x0a,0x06,0x0a,0x17,0x1d,0x1d,0x1f,0x0f,0x18,0x0f,0x15,0xb8,0x01,0x0c,0xb1,0x11,0x12,0x2f,0xcd,0xed,0x39,0x39,0x11,0x12,0x39,0x2f,0xc4,0xcd,0xc4,0x00,0x3f,0xed,0x39,0x39,0x10,0xcd,0x3f,0x33,0xfd,0xc6,0x10,0xd4,0x2b,0xcd,0x31, +0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0x23,0x22,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x15,0x33,0x15,0x23,0x15,0x14,0x33,0x32,0x37,0x01,0x68,0x4f,0x45,0x29,0x24,0x21,0x21,0x4a,0x0d,0xa0,0x5c,0x5c,0x80,0x82,0x82,0x49,0x1e,0x1b,0x02,0x77,0x47,0x4e,0x11,0x4d,0x13,0x53,0x0e,0xbe,0x01,0x08,0x6a,0x80, +0x24,0xa4,0x6a,0xfe,0x5e,0x10,0x00,0x02,0x00,0x05,0x02,0x89,0x02,0x9d,0x04,0xbe,0x00,0x15,0x00,0x1d,0x00,0x59,0xb4,0x1b,0x1a,0x01,0x03,0x0a,0xb8,0x01,0x0d,0x40,0x09,0x14,0x10,0x5f,0x0d,0x01,0x0d,0x0d,0x12,0x0e,0xbf,0x01,0x08,0x00,0x04,0x00,0x16,0x01,0x0d,0x00,0x07,0x01,0x0b,0x00,0x03,0x01,0x0a,0xb5,0x15,0x1a,0x03,0x01, +0x03,0x13,0xb8,0x01,0x0c,0xb5,0x12,0x12,0x1f,0x1c,0x0a,0x0f,0xb8,0x01,0x0c,0xb1,0x0c,0x0e,0x2f,0xc6,0xed,0x39,0x39,0x12,0x39,0x2f,0xfd,0x17,0x39,0xc6,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0x39,0x2f,0x71,0x33,0x33,0xed,0x17,0x32,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x06,0x23,0x22,0x35,0x35,0x23,0x35,0x33,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x33,0x05,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x02,0x9d,0x57,0x80,0x02,0x3b,0x79,0xb4,0x57,0x57,0x7f,0xeb,0x80,0x57,0xfe,0xab,0x39,0x45,0xeb,0x03,0x91,0xf7,0x56,0x67,0xe7,0x21,0x56,0xd7,0xd7,0xd7,0xd7,0xf3,0x53,0x40,0x0a,0x05,0x98,0x00,0x01,0x00,0x3e,0x02,0x89,0x02,0x7f,0x04,0xbe,0x00,0x1b,0x00,0x4f, +0xb4,0x04,0x0e,0x12,0x03,0x01,0xbf,0x01,0x0d,0x00,0x0f,0x00,0x02,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x17,0x01,0x0b,0x40,0x0c,0x12,0x14,0x0f,0x00,0x1a,0x03,0x0f,0x03,0x0c,0x06,0x10,0x14,0xb8,0x01,0x0c,0xb3,0x0c,0x0c,0x1d,0x06,0xb8,0x01,0x0c,0xb1,0x02,0x1a,0x2f,0xc4,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f, +0x12,0x39,0x2f,0x12,0x39,0x00,0x3f,0xed,0x3f,0x33,0xed,0x17,0x32,0x31,0x30,0x13,0x23,0x35,0x33,0x15,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0xad,0x6f,0xfa,0x7a,0x56,0x4b,0x4c,0x53,0x7a,0xfb,0x6e,0x6e,0x9b,0x89,0x84,0x99,0x04,0x54,0x6a,0x5b,0x31, +0x83,0x5f,0x5c,0x59,0x62,0x83,0x31,0x5b,0x6a,0x41,0x74,0x7c,0x9a,0x97,0x7b,0x75,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x46,0x04,0xbe,0x00,0x0d,0x00,0x29,0xb1,0x0c,0x05,0xbe,0x01,0x08,0x00,0x09,0x01,0x0d,0x00,0x02,0x01,0x0b,0x00,0x0d,0x01,0x0c,0xb3,0x0c,0x0c,0x0f,0x06,0xb9,0x01,0x0c,0x00,0x05,0x2f,0xed,0x12,0x39,0x2f,0xed, +0x00,0x3f,0xed,0x3f,0x33,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x02,0x46,0xfb,0xef,0x7f,0x76,0x75,0x80,0x03,0x79,0xf0,0xea,0x01,0x4b,0xfe,0xcf,0x99,0x95,0x01,0x35,0x00,0x00,0x01,0x00,0x5c,0x02,0x89,0x02,0x55,0x04,0xcf,0x00,0x17,0x00,0x33,0x41,0x0c,0x00,0x0a,0x01,0x0d,0x00,0x0f, +0x00,0x00,0x01,0x08,0x00,0x04,0x01,0x0d,0x00,0x15,0x01,0x0b,0x00,0x0d,0x00,0x12,0x01,0x0c,0xb3,0x07,0x07,0x19,0x01,0xb9,0x01,0x0c,0x00,0x00,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x00,0x3f,0xed,0x3f,0xd4,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x35,0x5c,0x7f,0x73,0x4d,0x39,0x1e,0x24,0x21,0x1e,0x23,0x2c,0x5e,0x55,0x86,0x89,0xea,0x04,0xbe,0xfe,0xc6,0x90,0x6b,0x56,0x63,0x4c,0x0f,0x6c,0x0e,0x99,0x7e,0x8a,0xa5,0xf3,0x00,0x01,0x00,0x0b,0x02,0x9a,0x02,0x36,0x04,0xbe,0x00,0x0b,0x00,0x17,0xbb,0x00,0x00,0x01,0x0a,0x00,0x01,0x01,0x08,0xb3,0x03,0x03,0x0d,0x00, +0x2f,0x11,0x39,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x0b,0xc9,0x9b,0xc7,0x8a,0x78,0x0f,0x03,0x05,0x04,0x11,0x78,0x02,0x9a,0x02,0x24,0xfd,0xdc,0x01,0x72,0x2f,0x25,0x22,0x32,0xfe,0x8e,0x00,0x00,0x01,0x00,0x1a,0x02,0x9a,0x01,0xf5,0x04,0xbe,0x00,0x09,0x00,0x34,0xb1,0x05, +0x01,0xbf,0x01,0x0d,0x00,0x04,0x01,0x0a,0x00,0x00,0x00,0x06,0x01,0x0d,0x00,0x09,0x01,0x08,0x40,0x0c,0x02,0x07,0x06,0x07,0x02,0x01,0x04,0x05,0x00,0x00,0x0b,0x05,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x23,0x35,0x21,0x01,0xf5,0xfe,0xe8, +0x01,0x14,0xfe,0x29,0x01,0x18,0xf8,0x01,0xbb,0x04,0x86,0xfe,0x7e,0x6a,0x3a,0x01,0x80,0x6a,0x00,0x01,0x00,0x1a,0x01,0xe2,0x02,0x5a,0x04,0xbe,0x00,0x16,0x00,0x47,0xb1,0x04,0x09,0xb8,0xff,0xc0,0xb5,0x0c,0x10,0x48,0x09,0x10,0x16,0xbf,0x01,0x0d,0x00,0x0f,0x01,0x0a,0x00,0x15,0x00,0x11,0x01,0x0d,0x00,0x14,0x01,0x08,0x40,0x0f, +0x06,0x0c,0x02,0x00,0x12,0x11,0x12,0x00,0x16,0x04,0x10,0x15,0x15,0x18,0x10,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0xd6,0xcd,0xc6,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0xd4,0x2b,0xcd,0x31,0x30,0x01,0x06,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x21,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x01,0xf1, +0x23,0x4a,0x21,0x21,0x24,0x29,0x45,0x4f,0x04,0xfe,0x9d,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x03,0x04,0x41,0x43,0x53,0x13,0x4d,0x11,0x4e,0x47,0x11,0x12,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x00,0x00,0x02,0x00,0x1a,0x02,0x55,0x02,0x82,0x04,0xbe,0x00,0x17,0x00,0x1e,0x00,0x52,0xb6,0x1d,0x11,0x07,0x00,0x18,0x03,0x0d,0x41,0x09, +0x01,0x0d,0x00,0x03,0x00,0x06,0x01,0x0a,0x00,0x0c,0x00,0x08,0x01,0x0d,0x00,0x0b,0x01,0x08,0x40,0x15,0x18,0x00,0x1b,0x02,0x0e,0x05,0x14,0x03,0x09,0x1b,0x14,0x08,0x09,0x0d,0x03,0x04,0x07,0x0c,0x0c,0x20,0x07,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0xd4,0xcd,0x2f,0x2f,0x12,0x39,0x39,0xcd,0x11,0x39,0x39,0x00,0x3f,0xed,0x39,0x3f, +0xce,0xfd,0x17,0x39,0xd4,0xcd,0x31,0x30,0x01,0x06,0x07,0x23,0x36,0x37,0x23,0x35,0x01,0x23,0x35,0x21,0x15,0x01,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x36,0x35,0x34,0x23,0x22,0x01,0x4b,0x11,0x07,0x59,0x0b,0x0d,0xd8,0x01,0x18,0xf8,0x01,0xbb,0xfe,0xe8,0x3d,0x2b,0x72,0x44,0x45,0x42,0x60,0x58,0x48,0x54, +0x51,0x2e,0x41,0x02,0x9a,0x26,0x1f,0x27,0x1e,0x3a,0x01,0x80,0x6a,0x38,0xfe,0x7e,0x4e,0x57,0x42,0x32,0x43,0x58,0x6a,0x02,0x2a,0x23,0x00,0x01,0xff,0xfb,0x01,0x94,0x01,0xf7,0x04,0xbe,0x00,0x18,0x00,0x4c,0xb1,0x0b,0x09,0xb8,0x01,0x0d,0xb6,0x11,0x11,0x03,0x10,0x0d,0xe2,0x0e,0xbb,0x01,0x08,0x00,0x01,0x00,0x03,0x01,0x0d,0x40, +0x0d,0x17,0x11,0x0c,0x0f,0x0b,0x0b,0x0e,0x0f,0x0e,0x0f,0x0e,0x01,0x14,0xb8,0x01,0x0c,0xb3,0x06,0x06,0x1a,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0x00,0x2f,0xfd,0xc6,0x3f,0xed,0x39,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35, +0x37,0x21,0x35,0x21,0x15,0x03,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x05,0x5a,0x5a,0x5e,0x68,0x6c,0x65,0x28,0xa7,0xfe,0xec,0x01,0xc7,0xb3,0x55,0x7f,0xb2,0x8d,0x66,0x01,0xc0,0x76,0x38,0x4d,0x46,0x4a,0x44,0x3a,0xfb,0x6a,0x3a,0xfe,0xf7,0x0c,0x79,0x62,0x70,0x90,0x00,0x00,0x03,0x00,0x3e,0x02,0x89,0x02,0x7f,0x05,0xd3,0x00,0x0a, +0x00,0x10,0x00,0x17,0x00,0x3f,0xb9,0x00,0x12,0x01,0x0d,0xb3,0x10,0x10,0x15,0x0d,0xbe,0x01,0x0d,0x00,0x06,0x01,0x07,0x00,0x15,0x01,0x0d,0x00,0x00,0x01,0x0b,0xb3,0x0b,0x10,0x12,0x08,0xb8,0x01,0x0c,0xb3,0x11,0x11,0x19,0x12,0xb9,0x01,0x0c,0x00,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x12, +0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x13,0x02,0x23,0x22,0x06,0x07,0x05,0x21,0x16,0x16,0x33,0x32,0x36,0x01,0x58,0x85,0x95,0x9c,0x91,0x01,0x14,0x99,0x14,0x08,0x91,0x46,0x54,0x05,0x01,0x39,0xfe,0xc5,0x03,0x52,0x4a,0x48,0x51,0x02,0x89,0xd9,0xc5,0xcf,0xdd,0xfe,0x61,0xcc,0xdf,0x01, +0xdd,0x01,0x02,0x8c,0x76,0x63,0x85,0x8a,0x8c,0x00,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x00,0x07,0x40,0x0d,0x80,0x02,0x19,0x13,0x01,0x03,0x01,0x03,0x16,0x0a,0x04,0x10,0x16,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4,0x1a,0xdc,0x1a,0xcd, +0xc4,0x31,0x30,0x03,0x05,0x07,0x25,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x6a,0x01,0x02,0x2e,0xfe,0xfe,0x01,0x5a,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0xfe,0xf2,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xd3,0xe7,0x32,0xe7,0x09,0x19, +0x22,0x22,0x19,0x19,0x22,0x22,0xbc,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x03,0xff,0x3e,0x04,0xba,0x00,0xc2,0x05,0xd3,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x27,0x40,0x11,0x0d,0x40,0x03,0x07,0x80,0x01,0x13,0x19,0x00,0x02,0x00,0x02,0x04,0x10,0x16,0x0a,0x04,0x2f,0xcd,0xd4,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x00,0x2f,0xcd,0xc4, +0x1a,0xdc,0xc4,0x1a,0xcd,0x31,0x30,0x13,0x05,0x27,0x25,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x05,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x98,0xfe,0xfe,0x2e,0x01,0x02,0xfe,0xd4,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x01,0x0e,0x22,0x19,0x19,0x22,0x22,0x19,0x19,0x22,0x05,0xa1,0xe7, +0x32,0xe7,0x3b,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x8a,0x19,0x22,0x22,0x19,0x19,0x22,0x22,0x00,0x01,0xff,0x9c,0xfe,0x51,0x00,0x5b,0xff,0xc9,0x00,0x36,0x00,0x2c,0x40,0x15,0x30,0x1c,0x00,0x33,0x03,0x21,0x16,0x26,0x11,0x2b,0x0c,0x0c,0x11,0x16,0x1b,0x04,0x00,0x30,0x06,0x36,0x00,0x2f,0xcd,0xd4,0xcd,0x12,0x17,0x39,0x2f,0xcd, +0x2f,0xcd,0x2f,0xcd,0x00,0x2f,0xcd,0xcd,0xc4,0x39,0x31,0x30,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x07,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x64,0x13,0x39,0x24, +0x24,0x2b,0x0e,0x13,0x15,0x18,0x12,0x17,0x12,0x12,0x15,0x12,0x0f,0x17,0x1b,0x0b,0x01,0x1b,0x35,0x28,0x19,0x12,0x15,0x12,0x12,0x15,0x11,0x18,0x1d,0x18,0x11,0x0f,0x0f,0x18,0x04,0x87,0x2a,0x26,0x26,0x14,0x14,0x1d,0x0b,0x0c,0x13,0x08,0x07,0x0c,0x0f,0x17,0x11,0x10,0x15,0x12,0x10,0x0b,0x0b,0x0f,0x0c,0x08,0x04,0x0d,0x04,0x0c, +0x15,0x10,0x0f,0x14,0x11,0x0f,0x0b,0x0a,0x11,0x12,0x15,0x0e,0x0f,0x17,0x14,0x13,0x0c,0x0a,0x0d,0x10,0x0b,0x00,0x00,0x01,0xfe,0xdd,0x04,0xd2,0x01,0x29,0x05,0xbc,0x00,0x19,0x00,0x19,0x40,0x0a,0x0d,0x40,0x0c,0x0c,0x19,0x80,0x05,0x14,0x0d,0x19,0x2f,0xc4,0x00,0x2f,0xcd,0x1a,0xcd,0x39,0x2f,0x1a,0xcd,0x31,0x30,0x03,0x14,0x1e, +0x02,0x33,0x32,0x3e,0x04,0x33,0x17,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0xbe,0x0c,0x18,0x22,0x16,0x14,0x3a,0x43,0x48,0x44,0x3d,0x16,0x1b,0x19,0x40,0x47,0x4b,0x48,0x43,0x1b,0x29,0x45,0x31,0x1c,0x05,0x7b,0x10,0x29,0x26,0x1a,0x1b,0x28,0x2e,0x28,0x1b,0x29,0x1c,0x29,0x31,0x29,0x1c,0x36,0x4b,0x50,0x19,0xff,0xff,0x00,0x70, +0xfe,0x3c,0x01,0x50,0x05,0xd1,0x02,0x27,0x00,0x11,0x00,0x00,0x00,0x8d,0x00,0x27,0x00,0x11,0x00,0x00,0xfe,0x52,0x00,0x27,0x00,0x11,0x00,0x00,0x02,0xca,0x00,0x07,0x00,0x11,0x00,0x00,0x05,0x06,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x1e,0x01,0x24,0x02,0x07,0x07,0xa5,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x35, +0x01,0x24,0x02,0x07,0x07,0xab,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x3e,0xfe,0xde,0x02,0x7f,0x01,0x24,0x02,0x07,0x07,0xb4,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x12,0xfe,0xef,0x02,0x11,0x01,0x13,0x02,0x07,0x08,0x61,0x00,0x00,0xfc,0x55,0xff,0xff,0x00,0x48,0xfe,0xdc,0x02,0x40,0x01,0x26,0x02,0x07,0x07,0xac,0x00,0x00,0xfc,0x55, +0x00,0x03,0x00,0x54,0xff,0x2f,0x03,0xf2,0x06,0x50,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x1f,0xb7,0x17,0x39,0x2d,0x28,0x22,0x2e,0x39,0x1c,0xb8,0x01,0x4d,0xb3,0x23,0x16,0x39,0x0f,0xb8,0x01,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0xed,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x37,0x37,0x33,0x07,0x16, +0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e,0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x39,0x6d,0x13,0x64,0x95,0x62,0x30,0x43,0x83,0xc1,0x7f,0x11,0x6d,0x11,0x51,0x8e,0x39,0x3d,0x94,0x53,0x2e,0x01,0x65,0xb9,0xe1,0x0c,0xfe,0xb0,0x1b,0x39,0x5b,0x41,0x62,0x56,0x7f,0x54, +0x29,0x01,0x67,0x43,0x7d,0x31,0xd4,0x28,0xd1,0xe2,0x15,0x6e,0xae,0xe9,0x8f,0xa5,0x01,0x07,0xbb,0x69,0x08,0xbe,0xbe,0x05,0x25,0x20,0xb0,0x2f,0x35,0x07,0xfd,0xe9,0xfd,0x94,0x7a,0x02,0xc0,0x70,0xb7,0x8a,0x5c,0x15,0x04,0x5e,0x0b,0x59,0x95,0xc9,0xfd,0x53,0x21,0x22,0x01,0x88,0xfe,0x35,0x00,0x03,0x00,0x0c,0x00,0x00,0x04,0x44, +0x05,0x9a,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x91,0x40,0x4d,0x06,0x03,0x02,0x17,0x16,0x07,0x16,0x23,0x22,0x21,0x1a,0x19,0x09,0x08,0x1c,0x08,0x1d,0x1e,0x1f,0x20,0x1b,0x18,0x0a,0x0b,0x1c,0x0b,0x14,0x11,0x10,0x0d,0x0c,0x15,0x0c,0x02,0x1b,0x11,0x92,0x17,0x20,0x14,0x06,0x0a,0x0d,0x92,0x03,0x18,0x00,0x10,0x10,0x10,0x80,0x10, +0x03,0x10,0x10,0x14,0x1c,0x03,0x15,0x03,0x08,0x0c,0x01,0x05,0x13,0x0e,0x0e,0x15,0x16,0x1d,0x05,0x05,0x0c,0x07,0x07,0x25,0x0c,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x33,0x2f,0x33,0x00,0x2f,0x32,0x3f,0x17,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0, +0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x05,0xc0,0x10,0x87,0xc0,0xc0,0xc0,0xc0,0x0e,0xc0,0xc0,0x10,0x87,0x05,0xc0,0xc0,0xc0,0xc0,0x01,0x15,0x23,0x17,0x33,0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x04, +0x2c,0xcd,0x39,0x94,0x68,0x80,0xba,0x76,0xfe,0x25,0x72,0xbb,0x7f,0x67,0x93,0x39,0xcc,0xf8,0xb5,0xad,0xb5,0xfe,0x2e,0x01,0x8a,0x34,0xfe,0xdd,0x92,0x03,0x08,0x0b,0x53,0xd1,0x55,0x09,0x03,0x5f,0x8d,0xb3,0x8d,0xfe,0x6e,0x01,0x92,0xfe,0x6e,0x01,0x92,0x8d,0xb3,0x8d,0x02,0x3b,0xfd,0xc5,0xfe,0xc0,0xb3,0x02,0x10,0x3d,0x23,0xfe, +0xdd,0x01,0x23,0x1e,0x00,0x01,0x00,0x69,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x00,0x47,0x00,0x89,0xb1,0x01,0x2f,0xb8,0x01,0x05,0xb6,0x46,0x2f,0x30,0x01,0x30,0x09,0x26,0xb8,0x01,0x05,0x40,0x44,0x06,0xd0,0x27,0xe0,0x27,0x02,0x27,0x21,0x0e,0x35,0x44,0x27,0x30,0x06,0x3f,0x1c,0x3d,0x3c,0x3a,0x91,0x3f,0x04,0x17,0x00,0x16,0x10,0x16, +0x20,0x16,0x03,0x16,0x11,0x91,0x1c,0x13,0x3c,0x09,0x06,0x01,0x46,0x04,0x44,0x0e,0x25,0x28,0x2e,0x31,0x3c,0x05,0x35,0x21,0x16,0x16,0x44,0x08,0x00,0x00,0x44,0x7d,0x35,0x35,0x49,0x48,0x30,0x27,0x0e,0x7d,0x21,0x2f,0xe1,0xc4,0x32,0x11,0x12,0x39,0x2f,0xf1,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x11,0x12,0x17,0x39,0x11,0x12,0x17,0x39, +0x2f,0x00,0x3f,0xfd,0xc6,0x5d,0x32,0x3f,0xfd,0xc6,0x32,0x11,0x12,0x17,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33, +0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0xe2,0x6f,0x04,0x30,0x41,0x34,0x3a,0x01,0x52,0xfd,0xe2,0x24,0x1d,0x2d,0x33,0x99,0x9b,0x2d,0x6a,0x69,0x5f,0x22,0x1c,0x5d,0x68,0x64,0x22,0x66,0xb8,0x8d,0x53,0x1e,0x12,0x1a, +0x54,0xc7,0x16,0x17,0x45,0x4d,0x2e,0x28,0xfe,0x24,0x02,0x80,0x19,0x0f,0x15,0x36,0x56,0x6e,0x37,0xc7,0x7f,0x61,0xd4,0x5d,0xb3,0x8c,0x56,0x1a,0x26,0x03,0x41,0x04,0x2f,0x27,0x1f,0x1f,0x6b,0x16,0x17,0x23,0x56,0x3a,0x6c,0x73,0x12,0x21,0x30,0x1e,0xc6,0x13,0x1f,0x15,0x0b,0x29,0x5c,0x93,0x6a,0x50,0x3e,0x25,0x21,0x6b,0x0f,0x0e, +0x2a,0x26,0x17,0x14,0x6b,0x19,0x1e,0x28,0x37,0x3b,0x52,0x34,0x17,0x58,0xbd,0x33,0x2e,0x5e,0x91,0x62,0x4d,0x3a,0x00,0x02,0x00,0x56,0xff,0x2f,0x03,0xe6,0x06,0x50,0x00,0x18,0x00,0x21,0x00,0x4f,0x40,0x2d,0x13,0x20,0x15,0x91,0x0d,0x9f,0x0f,0xaf,0x0f,0x02,0x0f,0x10,0x04,0x20,0x18,0x01,0x18,0x1f,0x16,0x91,0x05,0x60,0x03,0x70, +0x03,0x02,0x03,0x02,0x13,0x10,0x16,0x03,0x8c,0x0d,0x1f,0x04,0x04,0x09,0x13,0x00,0x00,0x23,0x1b,0x7e,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x00,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x5d,0x3f,0xcd,0x5d,0x33,0xfd,0x32,0xc6,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10, +0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x11,0x10,0x17,0x16,0x17,0x11,0x06,0x03,0xe6,0x73,0xa7,0x68,0xe6,0x8d,0x9b,0xaf,0x8e,0xd1,0x68,0xad,0x6d,0x7d,0x9d,0xa4,0x76,0xfd,0x97,0x7f,0x77,0x5f,0x90,0x8a,0x3c,0x48,0x0a,0xbb,0xbb,0x11,0xb2,0xc5,0x01,0x40,0x01,0x58,0xd4,0xad,0x1f,0xa6, +0x9e,0x01,0x3a,0xb3,0x55,0x01,0xfb,0x65,0x07,0x59,0x03,0x96,0xa5,0xfe,0xec,0xfe,0xfa,0x9c,0x7c,0x19,0x04,0x89,0x1f,0x00,0x00,0x02,0x00,0x42,0x00,0xc8,0x02,0x68,0x03,0x49,0x00,0x03,0x00,0x07,0x00,0x23,0x40,0x11,0x01,0x00,0x03,0x10,0x03,0x02,0x03,0x03,0x08,0x05,0x07,0x03,0x07,0x07,0x09,0x02,0x06,0x2f,0x33,0x12,0x39,0x2f, +0x33,0x00,0x2f,0xcd,0x12,0x39,0x2f,0x5d,0xcd,0x31,0x30,0x01,0x05,0x35,0x25,0x35,0x05,0x35,0x25,0x02,0x68,0xfd,0xda,0x02,0x26,0xfd,0xda,0x02,0x26,0x01,0x9a,0xd2,0x83,0xd2,0xa9,0xd2,0x83,0xd2,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0xc1,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, +0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x11,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0xc1,0xfe,0xfd,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x01,0x03,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x8f,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed, +0x00,0x2f,0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x8f,0xd1,0x89,0x9f,0x17,0x93,0x1f,0x9d,0xd1,0x00,0x01,0xff,0x50,0xfe,0x96,0x00,0xd7,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x09,0x95,0x04,0x00,0x00,0x84,0x07,0x0c,0x2f,0xc6,0xed,0x00,0x2f, +0x2f,0xed,0x31,0x30,0x37,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x35,0xd7,0x98,0x7f,0x3c,0x34,0x34,0x3c,0x7e,0x35,0x77,0x89,0x9f,0x17,0x93,0x1f,0x9d,0x77,0x00,0x01,0xff,0x29,0xfe,0x96,0x00,0xb0,0x00,0x35,0x00,0x0c,0x00,0x12,0xb7,0x03,0x95,0x08,0x00,0x05,0x00,0x84,0x0c,0x2f,0xfd,0xc6,0x00,0x2f,0x2f,0xed, +0x31,0x30,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x3e,0x7e,0x3c,0x34,0x34,0x3c,0x7f,0x98,0x35,0x77,0x9d,0x1f,0x93,0x17,0x9f,0x89,0x77,0x00,0x01,0x00,0x27,0x01,0x83,0x03,0xac,0x02,0x83,0x00,0x11,0x00,0x27,0x40,0x0c,0x09,0x0f,0x96,0x03,0x06,0x96,0x11,0x2f,0x0c,0x01,0x0c,0x00,0xbc,0x01,0x03,0x00, +0x11,0x00,0x08,0x01,0x03,0x00,0x09,0x2f,0xed,0x2f,0xed,0x00,0x2f,0x5d,0xc6,0xfd,0xdc,0xed,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x24,0x23,0x22,0x15,0x23,0x34,0x36,0x33,0x32,0x04,0x33,0x32,0x35,0x03,0xac,0x60,0x7a,0x47,0xfe,0xc2,0x48,0x80,0x5e,0x60,0x7e,0x5f,0x01,0x34,0x36,0x7c,0x02,0x83,0x69,0x85,0x5f,0x71,0x6b,0x81, +0x60,0x74,0x00,0x01,0x00,0x3e,0x04,0xc2,0x02,0x3a,0x05,0x4d,0x00,0x03,0x00,0x0d,0xb4,0x02,0x95,0x01,0x03,0x02,0x2f,0x2f,0x00,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x3a,0xfe,0x04,0x01,0xfc,0x04,0xc2,0x8b,0x00,0x01,0x00,0x12,0x02,0x9a,0x02,0x11,0x04,0xbe,0x00,0x0d,0x00,0x13,0xbb,0x00,0x07,0x01,0x0a,0x00,0x09,0x01, +0x08,0xb1,0x02,0x07,0x2f,0x2f,0x00,0x3f,0x3f,0x31,0x30,0x01,0x03,0x13,0x23,0x27,0x23,0x07,0x23,0x13,0x03,0x33,0x17,0x33,0x37,0x02,0x11,0xbc,0xb8,0x91,0x6a,0x02,0x6e,0x90,0xbe,0xb6,0x92,0x67,0x02,0x6f,0x04,0xbe,0xfe,0xeb,0xfe,0xf1,0xb2,0xb2,0x01,0x0c,0x01,0x18,0xbd,0xbd,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32, +0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00, +0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x38, +0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x32,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x83,0x00,0x00,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x2c,0x00,0x10,0xb7,0x04,0x03,0x39,0x2a,0x02,0x28,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0x00,0x5a,0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x36,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x41,0x01,0x0f,0x41,0x10,0x41,0x02,0x41,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a, +0xff,0xe8,0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x37,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8, +0x04,0xc5,0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x43,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x04,0xc5, +0x07,0x46,0x02,0x26,0x01,0x2f,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x83,0xff,0xcf,0x01,0x07,0x04,0x44,0x00,0x29,0x01,0x40,0x00,0x1b,0x40,0x10,0x04,0x03,0x2f,0x42,0x01,0x0f,0x42,0x10,0x42,0x02,0x42,0x27,0x02,0x2a,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xf9,0xff,0xf4,0x02,0x15,0x07,0x32, +0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0xaf,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x02,0xff,0xf4,0x02,0x32,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00, +0x01,0x07,0x04,0x37,0xfe,0xc4,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xfc,0xff,0xf4,0x02,0x24,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0xb8,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e, +0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0xff,0xe5,0xff,0xf4,0x02,0x28,0x07,0x32,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x64,0x01,0x00,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0xad,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x1e,0x0f,0x01,0x0c,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0xff,0xee,0xff,0xf4,0x02,0x1a,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x36,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee, +0xff,0xf4,0x02,0x2d,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x37,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4, +0x02,0x20,0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x43,0xfe,0xb4,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xee,0xff,0xf4,0x02,0x3a, +0x07,0x46,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x66,0x01,0x00,0xff,0xcf,0x01,0x07,0x04,0x44,0xfe,0xbf,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x27,0x01,0x0f,0x27,0x10,0x27,0x02,0x27,0x0c,0x01,0x0f,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32, +0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x36,0xff,0xcc,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00, +0x01,0x07,0x04,0x37,0xff,0xd9,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x43,0xff,0xcd,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f, +0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x32,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0x00,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x2c,0x00,0x10,0xb7,0x03,0x02,0x2f,0x20,0x01,0x1d,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x34,0x34,0xff,0xff, +0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x36,0xff,0xc7,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14, +0xff,0xe6,0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x37,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6, +0x04,0x0e,0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x43,0xff,0xc5,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e, +0x07,0x46,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x66,0x02,0x1b,0xff,0xcf,0x01,0x07,0x04,0x44,0xff,0xd0,0x01,0x40,0x00,0x1b,0x40,0x10,0x03,0x02,0x2f,0x38,0x01,0x0f,0x38,0x10,0x38,0x02,0x38,0x1d,0x01,0x20,0x11,0x26,0x00,0x2b,0x35,0x10,0xda,0x5d,0x5d,0x34,0x34,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40, +0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x46,0xff,0xc1,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40,0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d, +0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x64,0x00,0xf6,0x00,0xd2,0x01,0x07,0x02,0x47,0xff,0xf3,0x01,0x88,0x00,0x29,0x40,0x1a,0x04,0x0f,0x2b,0x3f,0x2b,0x8f,0x2b,0x03,0x2b,0x40, +0x0d,0x15,0x36,0x2b,0x03,0x24,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x05,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3,0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07, +0x02,0x46,0xff,0x8f,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27,0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0xff,0xd3, +0xff,0xf4,0x02,0x1b,0x07,0x40,0x02,0x26,0x01,0xc9,0x00,0x00,0x00,0x27,0x04,0x68,0x00,0xf6,0xff,0xcf,0x00,0x27,0x04,0x66,0x00,0xf6,0x00,0xaa,0x01,0x07,0x02,0x47,0x00,0x19,0x01,0x88,0x00,0x33,0x40,0x22,0x04,0x4f,0x32,0x8f,0x32,0x02,0x32,0x40,0x0c,0x15,0x36,0x32,0x03,0x7f,0x27,0x8f,0x27,0x02,0x27,0x40,0x0d,0x11,0x36,0x27, +0x12,0x02,0x01,0x70,0x0c,0x90,0x0c,0x02,0x0c,0x06,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x46,0x00,0xef, +0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00, +0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x64,0x02,0x1b,0x00,0xd2,0x01,0x07,0x02,0x47,0x01,0x20,0x01,0x88,0x00,0x2b,0x40,0x1b,0x04,0x4f,0x3c,0x8f,0x3c,0x02,0x3c,0x40,0x0c,0x15,0x36,0x3c,0x03,0x00,0x35,0x01,0x35,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xda,0x5d, +0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b,0x00,0xaa,0x01,0x07,0x02,0x46,0x00,0xd1,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f, +0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe6,0x04,0x0e,0x07,0x40,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x27,0x04,0x68,0x02,0x18,0xff,0xcf,0x00,0x27,0x04,0x66,0x02,0x1b, +0x00,0xaa,0x01,0x07,0x02,0x47,0x01,0x48,0x01,0x88,0x00,0x31,0x40,0x20,0x04,0x8f,0x45,0x01,0x45,0x40,0x0c,0x15,0x36,0x45,0x03,0x7f,0x38,0x8f,0x38,0x02,0x38,0x40,0x0e,0x11,0x36,0x38,0x23,0x02,0x01,0x70,0x1d,0x90,0x1d,0x02,0x1d,0x14,0x00,0x10,0xda,0x5d,0x34,0x34,0x10,0xd2,0x2b,0x5d,0x34,0x11,0x2b,0x5d,0x35,0x00,0x00,0x03, +0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x16,0x00,0x1e,0x00,0x39,0xbc,0x00,0x0f,0x01,0x43,0x00,0x19,0x00,0x1d,0x01,0x43,0xb5,0x14,0x19,0x14,0x06,0x00,0x17,0xb8,0x01,0x44,0xb2,0x11,0x07,0x1b,0xb8,0x01,0x44,0xb2,0x0c,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x01,0x2f, +0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x13,0x32,0x11,0x10,0x23,0x22,0x11,0x10,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x04,0x8e,0xe4,0xfe,0xfe,0x3e,0xeb, +0xf9,0xef,0xec,0xe7,0xed,0xf1,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xff,0x00,0x01,0x7f,0x01,0x6c,0x02,0xdf,0xfe,0x7a,0xfe,0x84,0xfe,0xa6,0xfe,0x92,0x05,0x0d,0xfd,0xcd,0xfd,0xe2,0x02,0x14,0x02,0x3d,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x32, +0xb9,0x00,0x1a,0x01,0x43,0x40,0x11,0x13,0x19,0x19,0x00,0x06,0x00,0x1a,0x18,0x04,0x18,0x01,0x18,0x12,0x13,0x0c,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0xe6,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x23, +0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0x15,0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xd2,0x21,0x45,0x3f,0x33,0x0f,0xce, +0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x32,0x00,0x4e,0xb1,0x23,0x11,0xb8,0x01,0x43,0xb2,0x31,0x10,0x1b,0xb8,0x01,0x43,0x40,0x0c,0x27,0x31,0x27,0x31,0x27,0x00,0x08,0x00,0x12,0x27,0x20,0x10,0xb8,0x01,0x44,0xb3,0x31,0x18,0x23,0x25,0xb8,0x01,0x44,0xb3,0x22, +0x20,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0x33,0xe6,0x32,0x3f,0xe6,0x12,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe6,0x32,0x10,0xe6,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x21,0x35,0x34,0x3e,0x06,0x35,0x34,0x2e,0x02, +0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x0e,0x06,0x15,0x15,0x21,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x52,0xfd,0x88,0x36,0x58,0x70,0x75,0x70,0x58,0x36,0x41,0x71,0x96,0x54,0xde,0xa9,0xb0,0xc0,0xce,0x38,0x5b,0x74,0x7a,0x74, +0x5b,0x38,0x03,0x74,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x22,0x16,0x27,0x4a,0x4d,0x52,0x5f,0x6e,0x85,0x9f,0x60,0x5d,0x8c,0x5d,0x2f,0x83,0xde,0xa4,0xda,0x4b,0x7b,0x6b,0x61,0x61,0x66,0x76,0x8c,0x55,0x6b,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31, +0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x2d,0x00,0x73,0xb2,0x15,0x25,0x17,0xb8,0x01,0x43,0x40,0x09,0x21,0x1d,0x25,0x25,0x1d,0x21,0x03,0x0c,0x11,0xb8,0x01,0x43,0x40,0x09,0x28,0x0c,0x28,0x0c,0x06,0x00,0x15,0x1a,0x25,0xb8,0x01,0x44,0x40,0x0d,0x24,0x24,0x2b,0x80,0x1d,0x01,0x2b,0x1d,0x3b,0x1d,0x02,0x1d,0x1f,0xb8,0x01,0x44,0x40, +0x09,0x1a,0x07,0x24,0x2d,0x34,0x2d,0x02,0x2d,0x2b,0xb8,0x01,0x44,0xb2,0x0e,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0xc6,0x5d,0x3f,0xe6,0xc6,0x5d,0x5d,0x12,0x39,0x2f,0xe6,0x11,0x39,0x01,0x2f,0xc4,0x39,0x39,0x2f,0x2f,0xe6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0xe6,0x11,0x39,0x31,0x30,0x13,0x10,0x00, +0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x32,0x24,0x35,0x34,0x26,0x27,0x35,0x24,0x11,0x34,0x26,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x15,0x14,0x21,0x23,0x15,0x33,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x0b,0x79,0xcc, +0xe3,0x01,0x15,0xb7,0x9b,0x01,0x20,0xd9,0xb5,0xbc,0x8a,0x86,0x97,0xd2,0xfe,0xda,0x71,0x77,0x01,0x53,0x92,0x7b,0xb9,0x93,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xb3,0x4d,0xed,0xc1,0x8c,0xbb,0x0f,0x04,0x51,0x01,0x1b,0x96,0xc0,0x52,0xd2,0x67,0xda,0xd7,0xbd,0xe9,0x6a,0x90,0x74,0x00, +0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x1c,0x00,0x27,0x00,0x4f,0xb3,0x10,0x11,0x11,0x1a,0xb8,0x01,0x43,0x40,0x0e,0x27,0x13,0x19,0x1d,0x17,0x19,0x17,0x19,0x17,0x00,0x08,0x00,0x1b,0x18,0xb8,0x01,0x44,0x40,0x0b,0x16,0x11,0x1d,0x1d,0x12,0x1a,0x18,0x22,0x12,0x07,0x0c,0xba,0x01,0x42,0x00,0x04,0x01, +0x41,0x00,0x3f,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0x33,0xe6,0x32,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xe6,0x32,0x11,0x33,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x01,0x23,0x11,0x21,0x02,0x00,0x07,0x15,0x21,0x11,0x33,0x11,0x33,0x25,0x3e, +0x03,0x37,0x33,0x06,0x06,0x15,0x11,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x06,0x68,0xae,0xfe,0xfe,0xa4,0xfe,0xda,0x82,0x02,0x70,0xde,0xae,0xfc,0xde,0x35,0x6f,0x69,0x61,0x28,0x04,0x02,0x02,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe, +0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0x01,0x4c,0x03,0x66,0xfe,0xe0,0xfe,0x4e,0xa4,0xa7,0xfe,0x83,0x01,0x7d,0xb7,0x3b,0x95,0xa4,0xa8,0x4e,0x2a,0x49,0x21,0xfe,0x2a,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0f,0x00,0x34,0x00,0x50,0xb1,0x23,0x17,0xb8,0x01,0x43,0xb2,0x2d, +0x34,0x21,0xb8,0x01,0x43,0x40,0x09,0x26,0x2d,0x26,0x2d,0x26,0x00,0x08,0x00,0x28,0xb8,0x01,0x44,0xb3,0x1c,0x1c,0x12,0x23,0xb8,0x01,0x44,0xb2,0x25,0x06,0x32,0xb8,0x01,0x44,0xb2,0x12,0x19,0x0c,0xba,0x01,0x42,0x00,0x04,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xe6,0x12,0x39,0x2f,0xe6,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xe6,0x33,0x10,0xe6,0x32,0x30,0x31,0x13,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x11,0x10,0x01,0x00,0x21,0x20,0x01,0x00,0x05,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x22,0x06,0x06,0x07,0x13,0x21,0x35,0x21,0x03,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0xb4,0x01,0x5b,0x01,0x5c,0x01,0xe5, +0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe,0xa5,0xfe,0x1b,0xfe,0x1b,0xfe,0xa4,0xfe,0xa5,0x03,0x22,0x62,0xc7,0x6d,0xba,0x87,0x4d,0x4c,0x83,0xb0,0x63,0x07,0x1b,0x1f,0x1c,0x09,0x1b,0x01,0xec,0xfd,0x5e,0x3c,0xa5,0x3c,0x4a,0x7f,0x5d,0x35,0x2c,0x4c,0x65,0x39,0x97,0x94,0x02,0xcd,0x01,0xe5,0x01,0x5b,0x01,0x5c,0xfe,0xa4,0xfe, +0xa5,0xfe,0x1b,0xfe,0x1a,0xfe,0xa6,0xfe,0xa4,0x01,0x5c,0x01,0x5b,0xc5,0x3b,0x3f,0x77,0xab,0x6d,0x6f,0xa3,0x6a,0x34,0x01,0x02,0x01,0x01,0x72,0xc6,0xfc,0xff,0x0c,0x22,0x40,0x5d,0x3b,0x3e,0x62,0x44,0x23,0x5f,0x00,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5a,0xb5,0x0c,0x2c,0x0c, +0x2c,0x1d,0x17,0xbb,0x01,0x43,0x00,0x26,0x00,0x1d,0x01,0x43,0xb5,0x11,0x26,0x11,0x06,0x00,0x23,0xb8,0x01,0x44,0x40,0x0b,0x1a,0x1a,0x0e,0x29,0x22,0x20,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44,0xb2,0x0e,0x07,0x29,0xb8,0x01,0x44,0xb2,0x14,0x19,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd, +0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x26,0x23,0x20,0x00,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x34,0x12,0x33,0x32,0x17,0x01,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x05,0xf2,0x58,0x96,0xfe,0xf8,0xfe,0xbe,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61,0x03,0xc5,0xa4,0x7b,0x6f,0xfe,0x99,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b, +0xfd,0x49,0x02,0xb7,0x04,0xa1,0x29,0xfe,0x3e,0xfe,0x87,0xfe,0xc9,0xfe,0xa8,0x01,0x0b,0xd3,0xca,0xf1,0x8f,0xe0,0x01,0x23,0x39,0xfe,0x08,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x00,0x02,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x1a,0x00,0x3a,0xb2,0x0f,0x0c,0x15,0xb8,0x01,0x43,0x40,0x0e,0x14,0x0c,0x14, +0x0d,0x0d,0x14,0x0c,0x03,0x00,0x06,0x00,0x15,0x18,0x0f,0xb8,0x01,0x44,0xb2,0x0d,0x06,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x11,0x33,0x30,0x31,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x01,0x21,0x15,0x21,0x06,0x0a, +0x02,0x07,0x33,0x36,0x1a,0x02,0x37,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x06,0x78,0xfc,0x64,0x02,0x91,0x66,0x9c,0x75,0x55,0x1f,0xec,0x11,0x4e,0x80,0xb4,0x77,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x04,0xb2,0xc6,0xad,0xfe,0xbc,0xfe, +0xce,0xfe,0xdc,0x8d,0x94,0x01,0x38,0x01,0x4c,0x01,0x60,0xbc,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x25,0x00,0x39,0x00,0x4d,0x00,0x59,0x00,0x71,0xb3,0x21,0x0f,0x1e,0x44,0xb8,0x01,0x43,0xb2,0x14,0x14,0x0a,0xbb,0x01,0x43,0x00,0x30,0x00,0x3a,0x01,0x43,0xb2,0x1e,0x1e,0x26,0xb8,0x01,0x43,0x40,0x0b,0x00,0x30, +0x00,0x30,0x00,0x4e,0x54,0x4e,0x21,0x0f,0x2b,0xb8,0x01,0x44,0x40,0x09,0x60,0x49,0x70,0x49,0x02,0x49,0x49,0x51,0x57,0xbc,0x01,0x42,0x00,0x51,0x01,0x41,0x00,0x3f,0x01,0x44,0xb2,0x19,0x07,0x35,0xb8,0x01,0x44,0xb1,0x05,0x19,0x00,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0xe6,0x39,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39, +0x2f,0x2f,0x10,0xe6,0x33,0x2f,0xe6,0x10,0xe6,0x32,0x2f,0xe6,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x0e,0x03,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x76,0x47,0x7d,0xac,0x66,0x67,0xac,0x7c,0x44,0x1d,0x38,0x4f,0x32,0x24,0x3a,0x29,0x17,0x3e,0x6e,0x97,0x58,0x57,0x95,0x6f,0x3f,0x52,0x4d,0x32,0x51,0x39,0x1f,0xe8,0x24,0x40,0x57,0x34,0x37, +0x59,0x3f,0x22,0x23,0x40,0x59,0x35,0x37,0x59,0x3e,0x21,0x2d,0x1c,0x33,0x48,0x2b,0x29,0x46,0x34,0x1d,0x1e,0x34,0x46,0x28,0x28,0x46,0x35,0x1f,0xfc,0x29,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x01,0x97,0x5f,0xa0,0x76,0x42,0x42,0x76,0xa0,0x5f,0x34,0x6c,0x65,0x55,0x1d,0x1b,0x43,0x4e, +0x55,0x2c,0x4f,0x89,0x65,0x3a,0x39,0x65,0x89,0x50,0x5a,0x9e,0x35,0x1d,0x56,0x64,0x6c,0x26,0x35,0x5e,0x46,0x29,0x2b,0x48,0x5d,0x32,0x38,0x5e,0x43,0x26,0x25,0x43,0x5e,0x02,0xc3,0x28,0x47,0x35,0x1e,0x1d,0x33,0x48,0x2a,0x29,0x4a,0x3a,0x22,0x22,0x39,0x4b,0xfe,0xc7,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49, +0x02,0xb7,0x00,0x03,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0b,0x00,0x22,0x00,0x2e,0x00,0x5c,0xb5,0x0c,0x2c,0x0c,0x2c,0x1d,0x26,0xbb,0x01,0x43,0x00,0x17,0x00,0x11,0x01,0x43,0xb5,0x1d,0x1d,0x17,0x06,0x00,0x23,0xb8,0x01,0x44,0xb4,0x1a,0x1a,0x0e,0x29,0x22,0xb8,0xff,0xe0,0xb4,0x09,0x12,0x48,0x22,0x20,0xb8,0x01,0x44, +0xb2,0x0e,0x19,0x29,0xb8,0x01,0x44,0xb2,0x14,0x07,0x09,0xba,0x01,0x42,0x00,0x03,0x01,0x41,0x00,0x3f,0x3f,0x3f,0xe6,0x3f,0xf6,0xcd,0x2b,0x11,0x12,0x39,0x2f,0xe6,0x01,0x2f,0xc4,0x39,0x39,0x2f,0xe6,0x2f,0xe6,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x05,0x16,0x33,0x20, +0x00,0x11,0x10,0x02,0x23,0x22,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x14,0x02,0x23,0x22,0x27,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xb4,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x03,0x33,0x58,0x96,0x01,0x08,0x01,0x42,0xf6,0xd8,0xc4,0xfe,0xde,0xbc,0xad,0x61, +0x03,0xc5,0xa4,0x7b,0x6f,0x01,0x67,0x68,0x73,0x78,0x61,0x66,0x7c,0x7c,0x02,0xcd,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0xd7,0x29,0x01,0xc2,0x01,0x79,0x01,0x37,0x01,0x58,0xfe,0xf5,0xd3,0xca,0xf1,0x8f,0xe0,0xfe,0xdd,0x39,0x01,0xf8,0x91,0x81,0x75,0x99,0xb0,0x7c,0x63,0x91,0x00,0x05,0x00,0xbc, +0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x5d,0x40,0x34,0x1c,0x0d,0x1f,0x91,0x2c,0x24,0x24,0x20,0x2b,0x23,0x91,0x05,0x80,0x03,0x01,0x03,0x01,0x03,0x1d,0x20,0x91,0x14,0x16,0x00,0x09,0x7d,0x29,0x1d,0x1c,0x0c,0x2c,0x05,0x05,0x15,0x8c,0x21,0x25,0x02,0x03,0x16,0x29,0x16,0x00,0x10, +0x7d,0x1a,0x1a,0x2f,0x24,0x20,0x7e,0x00,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x17,0x33,0xed,0x17,0x32,0x2f,0xe1,0x00,0x2f,0xc6,0x33,0xed,0x32,0x3f,0xc6,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x33,0x11,0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15, +0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xbc,0x01,0x3a,0x68,0x93,0x5b,0x66,0x84,0x74,0x8a,0xa6,0x7a,0x6e,0xa4,0x68,0xfd,0x47,0xdc,0x5c,0xfe,0xaa,0x92,0x92,0x92,0xc6,0x46,0xa4,0x37,0x05,0x9a,0xb6,0xb7,0x09,0x51,0x5b, +0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0x72,0x68,0x09,0xd2,0xd1,0xde,0x46,0x7a,0xd8,0x20,0xfe,0x05,0x0b,0x01,0xf6,0xfd,0xfc,0x02,0x04,0x02,0x66,0xfe,0x31,0x01,0xcf,0xfe,0x73,0x43,0x79,0xab,0x1f,0xfe,0x45,0x10,0x00,0x00,0x02,0x00,0x48,0x02,0x34,0x02,0xa5,0x05,0xae,0x00,0x0a,0x00,0x12,0x00,0x1f,0x40,0x10,0x0b,0xe6, +0x06,0x27,0x0f,0xe6,0x00,0x29,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x2f,0xed,0x12,0x39,0x2f,0xed,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x02,0x34,0xdb,0xd1,0xe5, +0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0x00,0x02,0x00,0x49,0x02,0x34,0x02,0xa6,0x05,0xae,0x00,0x26,0x00,0x36,0x00,0x3c,0x40,0x23,0x04,0x10,0x14,0x10,0x02,0x27,0xe6,0x04,0x10,0x14,0x10,0x02,0x10,0x10,0x31,0x06,0xe6,0x24,0x27,0x31,0xe6,0x1a,0x29,0x01,0x01,0x1f,0x15,0xcc,0x34,0x34, +0x38,0x2c,0x0c,0xcc,0x1f,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e, +0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e,0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x05,0x8b,0x81,0x09,0x10,0x0c,0x07, +0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x99,0x67,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15,0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0x02,0x00,0x49,0x02,0x33,0x02,0xa6,0x05,0xae,0x00,0x27,0x00,0x39,0x00,0x3c,0x40,0x23,0x0b,0x0b,0x1b,0x0b,0x02,0x30,0xe6,0x0b, +0x0b,0x1b,0x0b,0x02,0x0b,0x0b,0x1f,0x28,0xe6,0x15,0x27,0x00,0xe6,0x1f,0x29,0x23,0x23,0x10,0x1a,0xcc,0x35,0x06,0x06,0x3b,0x2d,0xcc,0x10,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0xed,0x5d,0x31,0x30,0x01,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b,0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x72,0x55,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13, +0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x02,0xaa,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82,0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2b,0x3f,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47, +0x32,0x1c,0x00,0x01,0x00,0x5d,0x02,0xcb,0x02,0x91,0x04,0xff,0x00,0x0b,0x00,0x1b,0x40,0x10,0x04,0x7f,0x07,0x9f,0x07,0x02,0x3f,0x07,0xdf,0x07,0xff,0x07,0x03,0x07,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x01,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x02,0x91,0xe8,0x64,0xe8,0xe8,0x64,0xe8,0x03, +0xb3,0xe8,0xe8,0x64,0xe8,0xe8,0x00,0x01,0x00,0x5d,0x03,0xb3,0x02,0x91,0x04,0x17,0x00,0x03,0x00,0x1b,0x40,0x10,0x02,0x7f,0x01,0x9f,0x01,0x02,0x3f,0x01,0xdf,0x01,0xff,0x01,0x03,0x01,0x02,0x03,0x2f,0xcd,0x00,0x2f,0x5d,0x71,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x04,0x17,0x64,0x00,0x00,0x02,0x00,0x5d, +0x03,0x22,0x02,0x91,0x04,0xa8,0x00,0x03,0x00,0x07,0x00,0x21,0x40,0x11,0x03,0x40,0x00,0x80,0x07,0x0f,0x04,0x2f,0x04,0x3f,0x04,0x03,0x04,0x06,0x07,0x02,0x03,0x2f,0xcd,0x33,0x32,0x00,0x2f,0x5d,0xcd,0x1a,0xde,0x1a,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x5d,0x02,0x34,0xfd,0xcc,0x02,0x34,0xfd,0xcc,0x03,0x86, +0x64,0x01,0x86,0x64,0x00,0x01,0x00,0xcc,0x01,0xce,0x02,0x06,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x05,0x01,0x40,0x05,0x01,0x05,0x01,0x06,0x00,0x08,0xcd,0x03,0x2f,0xed,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x01,0x23,0x26,0x11,0x10,0x37,0x33,0x06,0x11,0x10,0x02,0x05,0x7f,0xba,0xba,0x80,0xbc,0x01,0xce,0xd4, +0x01,0x38,0x01,0x38,0xdc,0xe4,0xfe,0xd1,0xfe,0xd3,0x00,0x01,0x00,0x64,0x01,0xce,0x01,0x9e,0x05,0xee,0x00,0x09,0x00,0x1a,0x40,0x0d,0xdf,0x03,0x01,0x40,0x03,0x01,0x03,0x09,0x09,0x03,0x06,0xcd,0x01,0x2f,0xfd,0xd4,0xc6,0x00,0x2f,0x2f,0x5d,0x5d,0x31,0x30,0x00,0x11,0x10,0x27,0x33,0x16,0x11,0x10,0x07,0x23,0x01,0x20,0xbc,0x80, +0xba,0xba,0x7f,0x02,0xae,0x01,0x2d,0x01,0x2f,0xe4,0xdc,0xfe,0xc8,0xfe,0xc8,0xd4,0x00,0x02,0x00,0x5b,0x02,0xcd,0x01,0x05,0x06,0xeb,0x00,0x0b,0x00,0x0f,0x00,0x1c,0x40,0x0d,0x0d,0x24,0x00,0x40,0x06,0x80,0x0e,0x03,0x09,0x0c,0xc2,0x03,0x0d,0x2f,0xc4,0xfd,0xc4,0x00,0x3f,0x1a,0xdc,0x1a,0xcd,0x3f,0x31,0x30,0x13,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x23,0x11,0x33,0xaf,0x25,0x2f,0x2f,0x25,0x26,0x30,0x30,0x19,0x80,0x80,0x06,0x54,0x2b,0x21,0x1f,0x2c,0x2c,0x1f,0x20,0x2c,0xfc,0x79,0x02,0xcf,0x00,0xff,0xff,0x00,0x68,0x03,0x74,0x02,0x92,0x06,0xda,0x02,0x07,0x00,0xf1,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x81,0x03,0x5f,0x02,0x8e, +0x06,0xda,0x02,0x07,0x00,0xf2,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x50,0x03,0x74,0x01,0xc2,0x06,0xdc,0x02,0x07,0x00,0xf0,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0x03,0x60,0x02,0xa5,0x06,0xda,0x02,0x07,0x08,0x8d,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x2f,0x03,0x74,0x02,0xaa,0x06,0xc6,0x02,0x07,0x02,0x38,0x00,0x00,0x01,0x2c, +0xff,0xff,0x00,0x7b,0x03,0x5f,0x02,0x8a,0x06,0xca,0x02,0x07,0x02,0x39,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x60,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8e,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x4d,0x03,0x74,0x02,0xa0,0x06,0xd0,0x02,0x07,0x02,0x3a,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x41,0x03,0x60,0x02,0xad,0x06,0xda, +0x02,0x07,0x02,0x3b,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x49,0x03,0x5f,0x02,0xa6,0x06,0xda,0x02,0x07,0x08,0x8f,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x03,0xf7,0x02,0x91,0x06,0x2b,0x02,0x07,0x08,0x90,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x5d,0x04,0xdf,0x02,0x91,0x05,0x43,0x02,0x07,0x08,0x91,0x00,0x00,0x01,0x2c,0xff,0xff, +0x00,0x5d,0x04,0x4e,0x02,0x91,0x05,0xd4,0x02,0x07,0x08,0x92,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0xcc,0x02,0xfa,0x02,0x06,0x07,0x1a,0x02,0x07,0x08,0x93,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x64,0x02,0xfa,0x01,0x9e,0x07,0x1a,0x02,0x07,0x08,0x94,0x00,0x00,0x01,0x2c,0xff,0xff,0x00,0x48,0xfe,0xfa,0x02,0xa5,0x02,0x74,0x03,0x07, +0x08,0x8d,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0x0e,0x01,0xc2,0x02,0x76,0x03,0x07,0x00,0xf0,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0x0e,0x02,0x92,0x02,0x74, +0x03,0x07,0x00,0xf1,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x81,0xfe,0xf9,0x02,0x8e,0x02,0x74,0x03,0x07,0x00,0xf2,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2f,0xff,0x0e,0x02,0xaa,0x02,0x60, +0x03,0x07,0x02,0x38,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7b,0xfe,0xf9,0x02,0x8a,0x02,0x64,0x03,0x07,0x02,0x39,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfe,0xfa,0x02,0xa6, +0x02,0x74,0x03,0x07,0x08,0x8e,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x4d,0xff,0x0e,0x02,0xa0,0x02,0x6a,0x03,0x07,0x02,0x3a,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x41,0xfe,0xfa, +0x02,0xad,0x02,0x74,0x03,0x07,0x02,0x3b,0x00,0x00,0xfc,0xc6,0x00,0x11,0x40,0x09,0x02,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x49,0xfe,0xf9,0x02,0xa6,0x02,0x74,0x03,0x07,0x08,0x8f,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0x5d,0xff,0x91,0x02,0x91,0x01,0xc5,0x03,0x07,0x08,0x90,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x5d,0x00,0x79,0x02,0x91,0x00,0xdd,0x03,0x07,0x08,0x91,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x5d,0xff,0xe8,0x02,0x91,0x01,0x6e,0x03,0x07,0x08,0x92,0x00,0x00,0xfc,0xc6,0x00,0x0e,0xb7,0x01,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xcc,0xfe,0x94,0x02,0x06,0x02,0xb4,0x03,0x07,0x08,0x93,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x64,0xfe,0x94,0x01,0x9e,0x02,0xb4,0x03,0x07,0x08,0x94,0x00,0x00,0xfc,0xc6,0x00,0x0c,0xb6,0x00,0x60,0x00,0x70,0x00,0x02,0x00,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0xbc,0xfe,0x7e,0x06,0x12,0x07,0x4e,0x00,0x17,0x00,0x24,0x00,0x77,0x40,0x16,0x24,0xc4,0x18,0x1e,0xc4,0x1f,0x1f,0x00,0x0c,0x0f, +0x04,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7e,0x0e,0xb8,0xff,0xfe,0x40,0x17,0x0b,0x06,0x4d,0x0e,0x04,0x03,0x40,0x01,0x01,0x00,0x04,0x0c,0x06,0x4d,0x00,0x08,0x0b,0x06,0x4d,0x00,0x7e,0x16,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xdc,0x40,0x11,0x0b,0x06,0x4d,0x05,0x24,0x1e,0x80,0x21,0xda,0x1b,0x17, +0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x01,0x2f,0x2b,0x2b,0x33,0xf1,0x2b,0x2b,0xc1,0x2f,0x1a,0xcd,0x39,0x2f,0x2b,0xe1,0x2b,0x2b,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x14,0x07,0x33,0x36, +0x37,0x01,0x33,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x05,0x40,0xd2,0xb8,0xc1,0xab,0xac,0x0a,0x06,0x13,0x1b,0xfd,0x1e,0xd0,0xa8,0x08,0x04,0x16,0x22,0x02,0xd0,0xd8,0xd4,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x96,0xfd,0xe8,0x01,0x82,0x04,0x0c,0x8c,0x39,0x31,0x29,0xfb,0x89, +0x05,0x9a,0xfc,0x0e,0xa2,0x31,0x2c,0x34,0x04,0x65,0x01,0xb4,0x8d,0xa3,0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x02,0x00,0xa6,0xfe,0x8b,0x04,0xda,0x05,0xf2,0x00,0x11,0x00,0x1e,0x00,0x49,0x40,0x0a,0x1e,0xc4,0x12,0x18,0xc4,0x19,0x19,0x01,0x05,0x08,0xb8,0x01,0x2e,0xb6,0x07,0x00,0x11,0x0f,0x0f,0x40,0x0e,0xb8,0x01,0x2e,0x40,0x0f, +0x0c,0x01,0x11,0x1e,0x18,0x80,0x1b,0xda,0x15,0x0d,0x0f,0x0e,0xec,0x01,0x15,0x00,0x3f,0xed,0x3f,0xd6,0xed,0x1a,0xcc,0x32,0x2f,0x01,0x2f,0x33,0xf1,0x1a,0xc9,0x2f,0xcd,0x39,0x2f,0xe1,0x32,0x12,0x39,0x2f,0xfd,0xd4,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x11,0x33,0x11,0x36,0x37,0x01,0x33,0x11,0x33,0x03,0x23,0x13, +0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x04,0x19,0xad,0x16,0x2d,0xfe,0x27,0xaa,0x96,0x0c,0x28,0x01,0xe6,0xaa,0xda,0xb0,0xb4,0x4e,0x0f,0xc5,0x94,0x98,0xbf,0x09,0xa2,0x0e,0xb2,0x50,0x68,0x0c,0x03,0x31,0x2b,0x4e,0xfd,0x48,0x04,0x00,0xfc,0xd9,0x1d,0x46,0x02,0xc4,0xfc,0x96,0xfd,0xf5,0x07,0x67,0x8d,0xa3, +0xa3,0x8d,0xbc,0x63,0x59,0x00,0x00,0x01,0x00,0x10,0xfe,0x7e,0x05,0x76,0x05,0x9a,0x00,0x16,0x00,0x62,0x40,0x19,0x0b,0x18,0x0b,0x00,0x4d,0x04,0x03,0x01,0x01,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x07,0x15,0x05,0x28,0x0d,0x06,0x4d,0x05,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x05,0xb8,0xff,0xda,0x40,0x1a,0x0b,0x06,0x4d,0x20, +0x05,0x01,0x05,0x15,0x05,0x15,0x18,0x0f,0x06,0x91,0x16,0x03,0x0f,0x11,0x91,0x0c,0x13,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xfd,0xc6,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x2b,0x2b,0x11,0x33,0xf1,0x2b,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x00,0x2b,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x21,0x02,0x02, +0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x12,0x13,0x21,0x04,0xa4,0xd2,0xb8,0xc1,0xab,0xac,0xfe,0x72,0x45,0x50,0x52,0x8c,0x62,0x4f,0x3a,0x33,0x3e,0x3e,0x6d,0x71,0x45,0x02,0xc2,0x96,0xfd,0xe8,0x01,0x82,0x05,0x02,0xfd,0xe2,0xfe,0x40,0xd4,0x67,0x15,0x9e,0x1d,0x94,0x02,0x6e,0x02,0x19,0x00,0x01,0x00,0x10,0xfe,0x8b, +0x04,0x6c,0x04,0x00,0x00,0x12,0x00,0x36,0x40,0x1c,0x07,0xed,0x11,0x04,0x03,0x01,0x01,0x00,0x84,0x11,0x0d,0x05,0x05,0x14,0x0d,0x06,0x95,0x12,0x0f,0x0f,0x95,0x0a,0x15,0x00,0xec,0x05,0x15,0x03,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xf1,0xc1,0x2f,0xcd,0x39,0x10,0xed,0x31,0x30,0x25,0x33, +0x03,0x23,0x13,0x23,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x03,0x91,0xdb,0xb0,0xb4,0xa3,0xbd,0xee,0x29,0xc7,0xa8,0x33,0x25,0x23,0x29,0xdc,0x3f,0x02,0x1a,0x96,0xfd,0xf5,0x01,0x75,0x03,0x75,0xfe,0x0f,0xfe,0x6e,0x0e,0x8d,0x12,0x03,0x85,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x05,0xc4,0x05,0x9a,0x00,0x0f, +0x00,0x4c,0x40,0x17,0x02,0x06,0x91,0x40,0x0b,0x0a,0x07,0x0b,0x91,0x2b,0x30,0x0d,0x0a,0x03,0x0f,0x91,0x04,0x40,0x04,0x07,0x03,0x00,0x01,0xb8,0x01,0x2c,0x40,0x0e,0x02,0x80,0x00,0x00,0x0f,0x7e,0x0c,0x05,0x05,0x11,0x0b,0x07,0x7e,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0x1a,0xdd,0xe1,0x12,0x39,0x00,0x2f,0x33, +0x1a,0x10,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x05,0xc4,0xb8,0xc1,0xab,0xac,0xfd,0x1a,0xa8,0xa8,0x02,0xe6,0xa8,0x96,0xfd,0xe8,0x01,0x82,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xfc,0x00,0x01,0x00,0xa6, +0xfe,0x8b,0x04,0xd3,0x04,0x00,0x00,0x0f,0x00,0x4a,0x40,0x14,0x06,0x95,0x40,0x0b,0x0a,0x07,0x0b,0x95,0x2b,0x30,0x0d,0x0a,0x0f,0x02,0x0f,0xec,0x04,0x04,0x07,0x01,0xb8,0x01,0x2c,0x40,0x10,0x02,0x03,0x00,0x00,0x03,0x03,0x0f,0x84,0x0c,0x05,0x05,0x11,0x0b,0x06,0x84,0x08,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x2f,0x33, +0x2f,0x10,0xdd,0xe1,0x00,0x2f,0x33,0x10,0xed,0x2f,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x31,0x30,0x25,0x03,0x23,0x13,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0xd3,0xb0,0xb4,0xa3,0xbe,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x96,0xfd,0xf5,0x01,0x75,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4, +0xfc,0x96,0x00,0x01,0x00,0xbc,0xfe,0x7e,0x07,0x44,0x05,0x9a,0x00,0x1f,0x00,0x2b,0x40,0x15,0x04,0x03,0x01,0x01,0x00,0x7e,0x1e,0x05,0x05,0x21,0x17,0x14,0x7e,0x15,0x1f,0x03,0x00,0x91,0x05,0x12,0x03,0x00,0x2f,0x3f,0xed,0x3f,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0xc1,0x2f,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13, +0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x06,0x72,0xd2,0xb8,0xc1,0xab,0xab,0x0e,0x04,0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x15,0x16,0x04,0x08,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x2b,0x1a,0x01,0xc1,0xd2,0x96,0xfd,0xe8,0x01,0x82, +0x03,0xc2,0x72,0xa5,0x61,0x2a,0xfb,0xb2,0x04,0x46,0x30,0x63,0x56,0xc3,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x73,0x39,0x76,0x3a,0x03,0xe4,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x05,0xd3,0x04,0x00,0x00,0x17,0x00,0x29,0x40,0x14,0x04,0x03,0x01,0x16,0x00,0x84,0x05,0x05,0x19,0x11,0x0e,0xed,0x0f,0x17,0x0f,0x00,0xec,0x05,0x15,0x03,0x00,0x2f, +0x3f,0xed,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xe1,0x33,0xdd,0xcd,0x39,0x31,0x30,0x25,0x33,0x03,0x23,0x13,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xdb,0xb0,0xb4,0xa3,0xbc,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49, +0x01,0x06,0xda,0x96,0xfd,0xf5,0x01,0x75,0x03,0x4c,0x40,0x7c,0xfd,0x70,0x02,0x90,0x35,0x87,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x49,0x81,0xc6,0x02,0xa0,0x00,0x00,0x01,0x00,0x5a,0x01,0xfa,0x03,0xf6,0x02,0x7b,0x00,0x03,0x00,0x0e,0xb4,0x03,0x02,0x01,0xeb,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xf6, +0xfc,0x64,0x03,0x9c,0x01,0xfa,0x81,0x00,0x00,0x02,0x00,0x6e,0x03,0xf4,0x02,0xa0,0x05,0xb2,0x00,0x03,0x00,0x07,0x00,0x1c,0x40,0x0e,0x05,0xb4,0x07,0x01,0xb4,0x03,0x06,0xb3,0x07,0x04,0x02,0xb3,0x03,0x04,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x13,0x23,0x03,0x21,0x13,0x23,0x03,0x01,0x04,0x6c,0x76, +0x8c,0x01,0xc3,0x6f,0x76,0x8c,0x05,0xb2,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0x03,0x00,0x8d,0x03,0xdb,0x03,0x9d,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x20,0x40,0x0e,0x08,0x0a,0x04,0x06,0x00,0x02,0x0a,0x06,0x02,0xb3,0x0b,0x07,0x03,0x03,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x2f,0xcd,0x2f,0xcd, +0x31,0x30,0x01,0x03,0x23,0x13,0x21,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x01,0x69,0x69,0x73,0x55,0x02,0xbb,0x6a,0x74,0x56,0x93,0x69,0x73,0x55,0x05,0x9a,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0xfe,0x41,0x01,0xbf,0x00,0x03,0x00,0xe8,0x00,0x69,0x04,0x94,0x04,0x3a,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x43,0x40,0x1b,0x02,0x01, +0xbe,0x59,0x0a,0x02,0x0e,0x59,0x0a,0x09,0xbe,0x59,0x06,0x05,0xbe,0x59,0x0a,0x06,0x42,0x06,0x4f,0x0a,0x01,0x0a,0x03,0x0b,0x04,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x04,0x02,0x0a,0x05,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x05,0x2f,0x2b,0x33,0x33,0x2f,0x2b,0x33,0x33,0x00,0x2f,0x5d,0xc6,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x25, +0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x04,0x94,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0x69,0x84,0x02,0xc9,0x84,0xfd,0xd9,0x84,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x03,0xdf,0x05,0xb2,0x00,0x15,0x00,0x1f,0x40,0x0f,0x0b,0x15,0x15,0x17,0x10,0x7d,0x05,0x0d,0x91,0x08,0x04,0x13,0x91,0x02, +0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe1,0x11,0x39,0x2f,0x33,0x31,0x30,0x25,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x03,0xdf,0x85,0xc7,0xff,0x00,0xfe,0xcb,0x01,0x5b,0x01,0x0b,0xab,0x70,0x7c,0x96,0xc7,0xf8,0xe7,0xbc,0xaf,0x7f,0x3c,0x54,0x01,0x8a,0x01, +0x40,0x01,0x58,0x01,0xa8,0x3b,0xb3,0x56,0xfe,0xb6,0xfe,0xec,0xfe,0xfa,0xfe,0xc9,0x60,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x05,0xd2,0x05,0x9a,0x00,0x25,0x00,0x32,0x40,0x1a,0x0b,0x7e,0x09,0x0c,0x0c,0x27,0x00,0x23,0x7e,0x24,0x04,0x1e,0x10,0x03,0x25,0x18,0x18,0x24,0x25,0x03,0x24,0x12,0x0c,0x12,0x09,0x03,0x00,0x3f,0x3f,0x3f, +0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x32,0x12,0x39,0x2f,0x33,0xe1,0x31,0x30,0x01,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x0e,0x03,0x07,0x01,0x23,0x01,0x2e,0x03,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x01,0x95,0x01,0x74,0x19,0x21,0x08,0x06,0x0a,0x1d,0x1a,0x01, +0x64,0xdc,0xa7,0x07,0x07,0x04,0x07,0x18,0x1b,0x16,0x05,0xfe,0x8f,0x52,0xfe,0x90,0x04,0x19,0x1a,0x17,0x05,0x04,0x04,0x04,0xa2,0x05,0x9a,0xfd,0x56,0x2d,0x4e,0x1d,0x1e,0x50,0x2e,0x02,0xa6,0xfa,0x66,0x03,0xc2,0x39,0x91,0x53,0x18,0x3b,0x37,0x2c,0x0b,0xfd,0x58,0x02,0xa6,0x0c,0x2d,0x37,0x3a,0x19,0x2b,0x92,0x62,0xfc,0x40,0x05, +0x9a,0x00,0x00,0x01,0x00,0xa6,0xfe,0x2a,0x04,0xf8,0x04,0x00,0x00,0x13,0x00,0x32,0x40,0x1a,0x13,0x84,0x12,0x02,0x02,0x15,0x0d,0x09,0xed,0x0c,0x12,0x0f,0x10,0x09,0x02,0x03,0x0c,0x06,0x06,0x01,0x0c,0x0f,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1, +0x31,0x30,0x21,0x23,0x11,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x37,0x01,0x33,0x04,0xf8,0xa2,0x16,0x2e,0xff,0x00,0x93,0xfe,0xf8,0x15,0x2f,0x8d,0xd1,0x01,0x0e,0x1d,0x2d,0x49,0x01,0x06,0xda,0x03,0x4c,0x2c,0x54,0xfe,0x42,0x01,0xbe,0x24,0x5c,0xfa,0xde,0x05,0xd6,0xfe,0x33,0x32,0x59,0x89,0x01, +0xcf,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x03,0x00,0x11,0xb3,0x03,0x02,0x1b,0x01,0xb9,0x04,0xf1,0x00,0x02,0x2f,0xed,0x00,0x3f,0x2f,0x31,0x30,0x13,0x11,0x23,0x11,0x24,0x48,0x06,0xd6,0xf7,0x92,0x08,0x6e,0x00,0x00,0x01,0xff,0x25,0xfe,0x68,0x00,0xdb,0x06,0xd6,0x00,0x0e,0x00,0x44,0x40,0x0c,0x07,0x06, +0x03,0x04,0x01,0x09,0x0a,0x0d,0x0c,0x08,0x0b,0x00,0xb8,0x04,0xf1,0x40,0x13,0x05,0x01,0x0a,0x09,0x07,0x0c,0x0d,0x08,0x0b,0x05,0x02,0x0e,0x05,0x04,0x03,0x06,0x07,0x01,0x1b,0x00,0x3f,0x2f,0x33,0xdc,0x32,0x17,0x39,0xc4,0x32,0x10,0xc4,0x32,0x01,0x2f,0x33,0xfd,0x32,0x39,0xde,0x32,0xc4,0x32,0x10,0xde,0x32,0xc4,0x32,0x31,0x30, +0x13,0x23,0x11,0x07,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x24,0x48,0x86,0x31,0xab,0xab,0x31,0xaa,0xaa,0x31,0xab,0xab,0x31,0x86,0xfe,0x68,0x07,0x43,0x88,0x31,0xa9,0xa8,0x31,0xab,0xab,0x31,0xa8,0xa9,0x31,0x88,0x00,0x00,0x01,0xff,0xdc,0xfe,0x68,0x01,0xaf,0x06,0xd6,0x00,0x0a,0x00,0x30,0xb7,0x0a,0x09,0x03, +0x08,0x00,0x01,0x02,0x07,0xb8,0x04,0xf1,0xb4,0x04,0x02,0x01,0x00,0x04,0xb8,0x04,0xf1,0xb4,0x08,0x09,0x0a,0x05,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0x39,0xcc,0x32,0x01,0x2f,0xed,0xde,0x32,0xcd,0x39,0x39,0xc4,0x32,0x31,0x30,0x01,0x07,0x27,0x37,0x21,0x11,0x23,0x11,0x21,0x27,0x37,0x01,0xaf,0xd9,0x31,0x89,0xfe,0xf6,0x48,0x01, +0x52,0x89,0x31,0x05,0xff,0xd6,0x31,0x82,0xf8,0x8c,0x07,0xbb,0x82,0x31,0x00,0x01,0xfe,0x51,0xfe,0x68,0x00,0x24,0x06,0xd6,0x00,0x0a,0x00,0x32,0xb7,0x03,0x09,0x06,0x05,0x04,0x07,0x08,0x0a,0xb8,0x04,0xf1,0xb5,0x02,0x06,0x09,0x04,0x05,0x02,0xb8,0x04,0xf1,0xb4,0x09,0x08,0x07,0x00,0x1b,0x00,0x3f,0x2f,0x33,0xdd,0xfd,0xcc,0x32, +0x12,0x39,0x01,0x2f,0xed,0xdc,0x32,0xc4,0x32,0xcd,0x39,0x39,0x31,0x30,0x13,0x23,0x11,0x21,0x17,0x07,0x27,0x37,0x17,0x07,0x21,0x24,0x48,0xfe,0xf6,0x89,0x31,0xd9,0xd9,0x31,0x89,0x01,0x52,0xfe,0x68,0x07,0x74,0x82,0x31,0xd6,0xd7,0x31,0x82,0x00,0x00,0x01,0x00,0xab,0xff,0xf2,0x02,0x01,0x05,0xec,0x00,0x0e,0x00,0x1b,0xb1,0x0e, +0x09,0xb8,0x05,0x0a,0xb2,0x06,0x07,0x0e,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x01,0x2f,0xed,0xc4,0x31,0x30,0x05,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x02,0x01,0x14,0x66,0x7f,0x45,0x18,0x9c,0x0a,0x26,0x4a,0x40,0x0e,0x3e,0x66,0x82,0x45,0x04,0x8f,0xfb,0xac,0x42,0x60,0x3f,0x1e,0x00, +0xff,0xff,0x00,0x49,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0xff,0xa2,0xff,0xf2,0x02,0x65,0x07,0x30,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00,0xff,0xff,0x00,0x49,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x7f, +0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f, +0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xa3,0xff,0xa7,0x00,0x01,0xff,0xba,0xff,0xf2, +0x04,0x7c,0x03,0x0f,0x00,0x28,0x00,0x2c,0x40,0x0a,0x0c,0x21,0x2a,0x15,0x21,0x0c,0x20,0x03,0x00,0x12,0xb8,0x04,0xff,0xb4,0x2f,0x19,0x01,0x19,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01,0x2f,0x12,0x39,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37, +0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39, +0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0x00,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x00,0x40,0x00,0x5c,0xb9,0x00,0x03,0x05,0x0b,0x40,0x0c,0x0f,0x00,0x0f,0x1c,0x0f,0x35,0x35,0x0f,0x1c,0x03,0x09,0x14,0xb8,0x05,0x0a,0xb3,0x25,0x09,0x03, +0x0f,0xb8,0x04,0xfb,0xb5,0x40,0x39,0x2d,0x2d,0x20,0x32,0xbb,0x04,0xff,0x00,0x39,0x00,0x19,0x04,0xfc,0xb6,0x1f,0x20,0x2f,0x20,0x02,0x20,0x08,0xba,0x04,0xfb,0x00,0x09,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xe4,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed, +0x31,0x30,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63, +0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80, +0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff, +0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0xff,0xba,0xff,0xf2,0x05,0xf4,0x03,0x0f,0x00,0x42,0x00,0x60,0xb1,0x18,0x00,0xbb,0x05,0x0a,0x00,0x40,0x00,0x0d,0x05,0x0a,0x40,0x09,0x0a,0x21,0x33,0x40,0x0a,0x40,0x0a,0x44,0x36,0xb8,0x05,0x0a,0xb6,0x33, +0x41,0x2f,0x35,0x01,0x35,0x26,0xba,0x05,0x03,0x00,0x1d,0x05,0x03,0xb7,0x3b,0x2e,0x2e,0x2d,0x2d,0x21,0x18,0x05,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0x3f,0xed,0x39,0x39,0x32,0x11,0x33,0x11,0x33,0x3f,0x3f,0x2f,0x5d,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10, +0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0xf3,0x0b,0x27, +0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe, +0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57, +0x00,0x02,0xff,0xba,0xff,0xea,0x07,0x4b,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x52,0xb9,0x00,0x2a,0x05,0x0a,0x40,0x0d,0x3f,0x49,0x1e,0x1e,0x15,0x3f,0x3f,0x4d,0x16,0x15,0x00,0x15,0x31,0xba,0x05,0x03,0x00,0x44,0x04,0xfb,0x40,0x0f,0x2f,0x25,0x01,0x25,0x2f,0x15,0x01,0x15,0x49,0x49,0x3a,0x3a,0x1e,0x1e,0x0c,0xba,0x04,0xfb,0x00, +0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x01,0x2f,0xcd,0x12,0x39,0x2f,0x12,0x39,0x10,0xcd,0x10,0xed,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0x98,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4, +0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x03,0x61,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x6d,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95, +0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x26,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x00,0x01,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x00,0x13,0x00,0x13,0xb6,0x0f,0x05,0x05,0x15,0x14,0x00,0x0a,0x00,0x2f,0xcd,0x11,0x12,0x01, +0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa3,0x29,0x52,0x45,0x2a,0x2b,0x44,0x52,0x29,0x29,0x51,0x43,0x29,0x29,0x43,0x51,0x01,0xac,0x29,0x43,0x51,0x29,0x28,0x53,0x44,0x2b,0x2a,0x45,0x52,0x29,0x29,0x51,0x43,0x29,0x00,0x01,0x00,0x2b,0x00,0x00,0x01,0x56, +0x05,0x9a,0x00,0x0f,0x00,0x19,0xbc,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x08,0x04,0xe6,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x17,0x26,0x1f,0x18,0x0f,0x08,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x62,0xad,0xa2,0x9f,0xaa,0xb9,0x6c, +0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x50,0x05,0x9a,0x00,0x0f,0x00,0x28,0xb5,0x03,0x0a,0x01,0x01,0x11,0x09,0xbd,0x05,0x0a,0x00,0x0a,0x00,0x09,0x04,0xe6,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x31,0x30, +0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x2b,0x03,0x25,0xfd,0xa1,0x19,0x26,0x19,0x0d,0x9c,0x11,0x23,0x36,0x05,0x9a,0xa7,0x71,0xca,0xd0,0xe4,0x89,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x00,0x01,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x00,0x38,0x00,0x5c,0xb3,0x1c,0x0d,0x32,0x1f,0xbb, +0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x40,0x0d,0x0b,0x27,0x0b,0x1a,0x0b,0x1a,0x0b,0x3a,0x32,0x03,0x2b,0x2b,0x31,0xbb,0x05,0x0a,0x00,0x32,0x00,0x31,0x04,0xe6,0xb4,0x2b,0x2b,0x29,0x29,0x24,0xb8,0x04,0xfc,0xb7,0x06,0x15,0x1c,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0x2f,0x33,0xed,0x32,0x2f,0x32,0x2f,0x3f,0x01, +0x2f,0xed,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e, +0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x15,0x24,0x0f,0x15,0x26,0x11,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x1f,0x1d,0x34,0x17,0x2a,0x3b,0x26,0x11,0x24,0x9d,0x24,0x26,0x4a,0x6c,0x46,0x2d,0x67,0x3c,0x47,0x63,0x29,0x2b,0x0b,0x10,0x0b,0x06,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0x5b,0xa1,0x4c,0x05,0x04,0x1c,0x30, +0x3f,0x24,0x54,0x4e,0x59,0x56,0x51,0x40,0x09,0x08,0x1c,0x30,0x3f,0x24,0x54,0x4e,0x59,0x56,0x3e,0x6b,0x4f,0x2d,0x18,0x1c,0x33,0x09,0x43,0x88,0x91,0x9f,0x5a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x01,0x00,0x62,0xff,0xea,0x02,0xf5,0x05,0xb8,0x00,0x31,0x00,0x3f,0xb9,0x00,0x2c,0x05,0x0a,0xb2,0x21,0x21, +0x07,0xb8,0x05,0x0a,0xb7,0x17,0x17,0x33,0x32,0x31,0x1c,0x12,0x27,0xb8,0x05,0x02,0xb7,0x2f,0x26,0x01,0x26,0x0f,0x10,0x10,0x0c,0xba,0x04,0xfb,0x00,0x12,0x05,0x03,0x00,0x3f,0xed,0x33,0x11,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32, +0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x67,0x54,0x76,0x50,0x2e,0x18,0x07,0x2b,0x47,0x58,0x2d,0x4b,0x79,0x3a,0x7e,0x8e,0x47,0x8b,0x70,0x45,0x1b,0x42,0x6f,0x54,0x50,0x6b,0x3f,0x1a,0x2c,0x6d,0xb6,0x8a,0x73,0x87,0x45, +0x14,0x1f,0x52,0x90,0x72,0x03,0x13,0x4e,0x7f,0x67,0x50,0x3b,0x29,0x0c,0x2a,0x35,0x1d,0x0a,0x13,0x0f,0xa5,0x2c,0x1d,0x40,0x65,0x47,0x29,0x69,0x7e,0x93,0x53,0x25,0x44,0x45,0x49,0x2a,0x36,0x71,0x6f,0x69,0x2f,0xb0,0x24,0x46,0x3f,0x33,0x10,0x18,0x29,0x35,0x48,0x38,0x00,0x02,0x00,0x4f,0x00,0x9c,0x03,0xa9,0x04,0xd2,0x00,0x15, +0x00,0x29,0x00,0x31,0xb9,0x00,0x1b,0x05,0x0a,0xb3,0x0f,0x0f,0x2a,0x05,0xbb,0x05,0x0a,0x00,0x25,0x00,0x0a,0x04,0xfb,0xb4,0x2f,0x20,0x01,0x20,0x16,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0xf4,0x47,0x9b,0x80,0x53,0x3d,0x72,0xa4,0x67,0x65,0x9b,0x6a,0x36,0x27,0x41,0x56,0x5e,0x5f,0x28,0x28,0x5c,0x4e,0x34,0x2a,0x48,0x5f,0x36,0x4a,0x6a,0x45,0x20,0x3b,0x56,0x62,0x04,0xd2,0x55,0xa5,0xf2,0x9c,0x60,0x9f, +0x71,0x3e,0x38,0x66,0x90,0x59,0x69,0xb7,0x99,0x78,0x52,0x2c,0xa2,0x4a,0x85,0xbb,0x70,0x41,0x5c,0x3a,0x1a,0x22,0x3e,0x58,0x37,0x77,0xbd,0x83,0x45,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x03,0x92,0x05,0x9a,0x00,0x15,0x00,0x22,0xb1,0x15,0x0e,0xb8,0x05,0x0a,0xb2,0x00,0x09,0x0a,0xb8,0x04,0xfb,0xb4,0x2f,0x0d,0x01,0x0d,0x00,0xb8, +0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0xee,0x18,0x25,0x1c,0x15,0x0e,0x0b,0x07,0x06,0x03,0x03,0xfd,0x9b,0x02,0xfc,0x06,0x04,0x08,0x0d,0x14,0x21,0x31,0x22,0x66,0xa6,0x8e,0x7c,0x79,0x7b,0x8d,0xa4,0x65,0x53,0xa7,0xc6,0x8c,0xd7, +0xb7,0xa6,0xb5,0xd5,0x8a,0x00,0x00,0x01,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x11,0x00,0x14,0xb1,0x04,0x0b,0xb8,0x04,0xe6,0xb4,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x3f,0x39,0x31,0x30,0x13,0x12,0x12,0x13,0x33,0x12,0x12,0x13,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x93,0x65,0xae,0x4e,0x06,0x51,0xad, +0x64,0x9e,0x80,0xd8,0x61,0x94,0x33,0x69,0x6d,0x73,0x3d,0x05,0x9a,0xfe,0xf0,0xfd,0xc1,0xfe,0xcb,0x01,0x36,0x02,0x3f,0x01,0x0f,0xfe,0x9f,0xfd,0x39,0xfe,0x8e,0xc2,0x01,0x71,0x01,0x64,0x01,0x59,0xaa,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x04,0x4f,0x05,0x9a,0x00,0x11,0x00,0x21,0x40,0x0d,0x11,0x00,0x00,0x13,0x07,0x08,0x04,0x2f, +0x0d,0x01,0x0d,0x07,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x32,0x2f,0x5d,0x39,0x01,0x2f,0x33,0x12,0x39,0x11,0x33,0x31,0x30,0x21,0x02,0x02,0x03,0x23,0x02,0x02,0x03,0x23,0x36,0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x03,0xb0,0x65,0xae,0x4e,0x06,0x51,0xad,0x64,0x9e,0x40,0x75,0x6d,0x66,0x31,0x94,0x66,0xd8,0x7b,0x01,0x10,0x02,0x3f,0x01, +0x35,0xfe,0xca,0xfd,0xc1,0xfe,0xf1,0xb1,0x01,0x61,0x01,0x65,0x01,0x6a,0xb9,0xfe,0x7d,0xfd,0x3c,0xfe,0xad,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x00,0x1e,0x00,0x33,0x00,0x3a,0xb9,0x00,0x1a,0x05,0x0a,0xb4,0x06,0x1f,0x1f,0x35,0x2c,0xb8,0x05,0x0a,0xb2,0x0d,0x06,0x08,0xb8,0x04,0xfb,0xb4,0x2f,0x31,0x01,0x31, +0x27,0xb8,0x04,0xfb,0xb4,0x2f,0x12,0x01,0x12,0x00,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e, +0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0xdb,0x9f,0x29,0x36,0x24,0x15,0x08,0x7e,0x78,0x50,0x8d,0x69,0x3e,0x33,0x60,0x8c,0x5a,0x58,0x8d,0x3c,0x20,0x26,0x16,0x0c,0x06,0x07,0x14,0x26,0x3e,0xfe,0xe5,0x04,0x08,0x0a,0x0e,0x0a,0x23,0x6f,0x45,0x2c,0x4b,0x37,0x20,0x28,0x46,0x61,0x39,0x30,0x67,0x61,0xbd,0xb1,0xa3,0x48,0x3b, +0x34,0x61,0x8e,0x5a,0x50,0x9a,0x78,0x4a,0x51,0x5e,0x33,0x63,0x6d,0x7b,0x49,0x52,0xb5,0xcb,0xe2,0x02,0xd4,0x2a,0x42,0x38,0x32,0x1a,0x58,0x61,0x26,0x40,0x58,0x31,0x37,0x56,0x3c,0x1f,0x17,0x00,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x01, +0xff,0xba,0xff,0xf2,0x04,0x3c,0x03,0x8a,0x00,0x2c,0x00,0x36,0xb9,0x00,0x24,0x05,0x0a,0xb5,0x13,0x13,0x2e,0x2d,0x1c,0x1f,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x18,0x01,0x18,0x00,0x2c,0x2c,0x29,0x29,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0xed, +0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x37,0x04,0x3c,0x78,0xd5,0xc9,0xc5,0x67,0xfa,0x23,0x23,0x23,0x23,0x01,0x71,0x01,0x3e,0x4e,0x2c,0x0f,0x45,0x82,0xbc,0x77,0x28, +0x59,0x30,0x2e,0x63,0x36,0x3f,0x76,0x5c,0x37,0x16,0x36,0x5c,0x47,0x80,0xf9,0x8c,0xab,0x37,0x47,0x2a,0x11,0x34,0x20,0x20,0x33,0x06,0x33,0x63,0x5c,0x51,0x21,0x4f,0x8e,0x6b,0x3f,0x08,0x09,0xaa,0x08,0x0b,0x14,0x35,0x5a,0x45,0x21,0x4c,0x53,0x59,0x2e,0x19,0x54,0x42,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x5e,0x00,0x29, +0x00,0x38,0x00,0x47,0xb3,0x28,0x13,0x23,0x31,0xb8,0x05,0x0a,0xb3,0x16,0x16,0x39,0x23,0xb8,0x05,0x0a,0xb7,0x2a,0x05,0x13,0x28,0x34,0x04,0x01,0x2d,0xb8,0x04,0xff,0xb7,0x2f,0x1c,0x01,0x1c,0x10,0x0f,0x0f,0x00,0xbb,0x04,0xfb,0x00,0x08,0x00,0x01,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x01, +0x2f,0xed,0x11,0x33,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x06,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x36,0x37,0x26,0x26,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x16,0x17,0x3e,0x03,0x04,0xad,0x3e,0x87, +0xef,0x6d,0x67,0xfe,0xf0,0xae,0x67,0x23,0x23,0x23,0x23,0x71,0x80,0xc7,0x4f,0x6a,0xad,0x45,0x2d,0x72,0x7e,0x85,0x3f,0x27,0x54,0x50,0x47,0x36,0x20,0x19,0x35,0x52,0x39,0xb8,0x7c,0x79,0x67,0x4c,0x9e,0x49,0x45,0xa7,0x69,0x34,0x49,0x2d,0x14,0x99,0xa7,0x4a,0x45,0x40,0x4f,0x34,0x20,0x20,0x33,0x2a,0x23,0x58,0xd0,0x70,0xad,0x07, +0x12,0x0f,0x0b,0x05,0x10,0x1c,0x2d,0x41,0x2c,0x26,0x65,0x70,0x74,0x36,0x55,0x01,0xcb,0x33,0x2a,0x0f,0x08,0x0b,0x6a,0xb1,0x48,0x29,0x58,0x51,0x42,0x00,0x00,0x02,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x00,0x3c,0x00,0x4a,0x00,0x63,0xb3,0x3a,0x23,0x1e,0x35,0xbb,0x05,0x0a,0x00,0x3d,0x00,0x44,0x05,0x0a,0xb2,0x28,0x28,0x0d, +0xb8,0x05,0x0a,0x40,0x0e,0x1e,0x3d,0x1e,0x3d,0x1e,0x4c,0x4b,0x08,0x3a,0x23,0x46,0x04,0x02,0x40,0xb8,0x04,0xff,0xb5,0x2f,0x2e,0x01,0x2e,0x15,0x12,0xb8,0x04,0xfc,0xb7,0x16,0x1f,0x19,0x2f,0x19,0x02,0x19,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x12, +0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x27,0x35,0x3e,0x03,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x16,0x16, +0x03,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x16,0x17,0x3e,0x03,0x04,0x98,0x15,0x3e,0x56,0xa3,0x98,0x8d,0x40,0x4d,0x68,0x40,0x1b,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x1c,0x48,0x7e,0x62,0x20,0x46,0x44,0x3e,0x16,0x2d,0x72,0x7f,0x85,0x3f,0x27,0x54,0x4f,0x48,0x35,0x20,0x1b,0x48,0x80,0x66,0x70, +0xf2,0xb6,0x78,0x67,0x4c,0x9f,0x49,0x71,0x87,0x55,0x6e,0x40,0x18,0x99,0xa7,0x26,0x45,0x61,0x3b,0x20,0x46,0x4a,0x4f,0x28,0x40,0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x36,0x69,0x69,0x67,0x33,0x22,0x58,0x5e,0x5d,0x26,0xa5,0x07,0x12,0x0f,0x0b,0x06,0x0f,0x1b,0x2c,0x3e,0x2a,0x23,0x5f,0x6b,0x6f,0x31,0x52, +0x59,0x02,0x07,0x2f,0x29,0x0f,0x08,0x0d,0xb0,0x81,0x26,0x4d,0x44,0x36,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x02,0xff,0xff, +0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x01,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x51,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, +0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07, +0x0f,0x51,0x00,0xd5,0x04,0x74,0x00,0x01,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x00,0x21,0x00,0x33,0xb9,0x00,0x1a,0x05,0x0a,0x40,0x12,0x0c,0x0c,0x23,0x22,0x11,0x12,0x0c,0x1a,0x15,0x12,0x04,0x00,0x14,0x2f,0x13,0x01,0x13,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0x12,0x17,0x39,0x11,0x33,0x11, +0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0b,0x23,0x42,0x6d,0xa0,0x6f,0x0e,0x34, +0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8a,0x97,0xa6,0x5d,0x1e,0x4a,0x4d,0x49,0x39,0x22,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0xf2,0x05,0xec,0x00,0x16,0x00,0x20,0xb9,0x00,0x08,0x05,0x0a,0xb4,0x05,0x05,0x18,0x17,0x00,0xbb,0x04,0xfb,0x00,0x0f,0x05,0x03,0x00,0x06, +0x00,0x2f,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x04,0x99,0xfb,0x60,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34, +0x20,0x20,0x33,0x00,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0xf4,0x02,0xaf,0x00,0x23,0x00,0x33,0x00,0x39,0xb9,0x00,0x16,0x05,0x0a,0x40,0x0a,0x2a,0x2a,0x35,0x34,0x20,0x24,0x0c,0x03,0x11,0x1b,0xba,0x05,0x03,0x00,0x2f,0x04,0xfb,0xb5,0x2f,0x11,0x01,0x11,0x27,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d, +0xed,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57, +0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f, +0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x02,0x06,0x0e,0x5c,0x00,0x00,0x00,0x03,0x00,0x67,0xfd,0xff,0x05,0x58, +0x03,0x56,0x00,0x2f,0x00,0x3f,0x00,0x4f,0x00,0x61,0xb1,0x3f,0x40,0xb8,0x05,0x0a,0xb7,0x00,0x0b,0x0b,0x00,0x00,0x50,0x24,0x17,0xb8,0x05,0x0a,0xb4,0x35,0x4a,0x4a,0x35,0x45,0xb8,0x04,0xfb,0xb6,0x1f,0x29,0x2f,0x29,0x02,0x29,0x3a,0xb8,0x04,0xfb,0x40,0x0c,0x2f,0x12,0x01,0x12,0x3f,0x30,0x30,0x1e,0x1e,0x1d,0x1d,0x0b,0xb8,0x04, +0xfb,0xb2,0x40,0x20,0x00,0xb8,0x05,0x03,0x00,0x3f,0x32,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x27,0x1e,0x03,0x33,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17, +0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x01,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x02,0x01,0x53,0x7d,0x5b,0x3c,0x13,0x20,0x2c,0x5a,0x65,0x73,0x45,0x15,0x41,0x4e,0x55,0x52,0x49,0x1c,0x2e,0x53,0x3f,0x25,0x17, +0x27,0x34,0x1c,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x28,0x48,0x64,0x3d,0x26,0x55,0x56,0x50,0x3f,0x29,0x01,0x21,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x15,0x1a,0x48,0x48,0x3c,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x29,0x21,0x2d,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x0e,0x03,0x04,0x06,0x03,0xa9,0x05,0x07,0x04,0x02,0x85,0xcf,0x9c,0x6c, +0x43,0x1e,0x45,0x6e,0x88,0x43,0x35,0x5b,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x78,0x3e,0x34,0x60,0x4a,0x2c,0x14,0x2e,0x4b,0x6f,0x96,0x01,0x08,0x33,0x53,0x69,0x36,0x28,0x55,0x46,0x2c,0x47,0x87,0xc7,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7, +0x00,0x1b,0x00,0x29,0x00,0x3f,0xb9,0x00,0x1c,0x05,0x0a,0xb4,0x16,0x16,0x2a,0x24,0x01,0xbb,0x05,0x0a,0x00,0x00,0x00,0x11,0x04,0xfb,0xb4,0x2f,0x21,0x01,0x21,0x07,0xbc,0x04,0xfb,0x00,0x08,0x05,0x03,0x00,0x25,0x04,0xfc,0xb4,0x1b,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xdd,0xed,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x11, +0x33,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x02,0xac,0x9c,0x0f,0x29,0x48,0x3a,0x16,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65, +0xfe,0x8b,0x24,0x3a,0x4f,0x2a,0x27,0x55,0x22,0x4c,0x88,0x66,0x3b,0x03,0xd7,0xfd,0xb5,0x3e,0x5c,0x3c,0x1d,0xa7,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0xfe,0x66,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26, +0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x05,0x64,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x29,0x04,0xb4,0x00,0x01,0x00,0x9a, +0xff,0x02,0x06,0xae,0x02,0x13,0x00,0x44,0x00,0x4c,0xb9,0x00,0x36,0x05,0x0a,0xb2,0x0f,0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x31,0x31,0x46,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x3b,0x01,0x3b,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00, +0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e, +0x21,0x2a,0x3b,0x52,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x00,0x01, +0x00,0x6f,0xff,0xea,0x01,0x76,0x01,0xe7,0x00,0x12,0x00,0x1c,0xb1,0x09,0x0e,0xb8,0x05,0x0c,0xb5,0x05,0x05,0x14,0x13,0x08,0x00,0xb8,0x05,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0xed,0x39,0x31,0x30,0x17,0x22,0x2e,0x02,0x35,0x34,0x37,0x13,0x33,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0xf1,0x1b,0x2f,0x23,0x15,0x0a,0x6a, +0x75,0x4b,0x64,0x02,0x03,0x15,0x24,0x30,0x16,0x15,0x24,0x2f,0x1b,0x15,0x1e,0x01,0x47,0xfe,0xe3,0x23,0x0e,0x18,0x0b,0x23,0x35,0x23,0x11,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8c,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x07,0x0f,0x8d,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x49,0xff,0xea,0x03,0xf3,0x07,0x78,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff, +0x00,0x49,0xff,0xea,0x04,0xad,0x07,0x78,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0xff,0xa2,0xff,0xea,0x03,0xf3,0x06,0xbf,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d, +0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x06,0xae,0x04,0x21,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x00,0xfe,0xea,0x01,0x77,0x00,0xe4,0x00,0x0f,0x00,0x0a,0xb2,0x02,0x0d,0x07,0x00,0x2f,0x2f,0xcd, +0x30,0x31,0x15,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x36,0x2c,0x4a,0x41,0x2f,0x8c,0x2d,0x94,0x79,0x37,0x33,0x7b,0x0e,0x48,0x47,0x5e,0x80,0x79,0x6e,0x82,0x91,0x15,0xff,0xff,0xff,0xa2,0xff,0xea,0x04,0xad,0x06,0xbf,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00, +0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x02,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x6f,0xff,0xea,0x01,0x76,0x04,0x00,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x08,0xf8,0x00,0x00,0x02,0x19,0x00,0x02,0x00,0xab,0xff,0xee,0x03,0x57,0x05,0xb3,0x00,0x29,0x00,0x3d,0x00,0x3e,0xb5,0x00,0x2f,0x24,0x39,0x39, +0x24,0xb8,0x05,0x0a,0xb3,0x05,0x05,0x3f,0x1d,0xbd,0x05,0x0a,0x00,0x0c,0x00,0x34,0x04,0xfe,0x00,0x2a,0x05,0x03,0xb2,0x14,0x15,0x18,0xb8,0x04,0xfc,0xb3,0x2f,0x11,0x01,0x11,0x00,0x2f,0x5d,0xfd,0xc2,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x10,0xc4,0x39,0x31,0x30,0x01,0x3e,0x03,0x35,0x34,0x2e,0x04,0x35, +0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x03,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xf5,0x04,0x08,0x06,0x04,0x34,0x4e,0x5c,0x4e,0x34,0x3e,0x6c,0x91,0x53,0x48,0x91,0x45,0x3d,0x97,0x46,0x34,0x58,0x41,0x24, +0x33,0x4c,0x58,0x4c,0x33,0x04,0x06,0x09,0x04,0x5a,0x15,0x28,0x1f,0x13,0x12,0x1f,0x28,0x16,0x16,0x28,0x1f,0x12,0x13,0x1f,0x28,0x01,0x8e,0x0c,0x22,0x26,0x25,0x0f,0x3c,0x5b,0x4e,0x4a,0x58,0x6f,0x4b,0x51,0x81,0x5a,0x30,0x23,0x2a,0xac,0x39,0x34,0x1b,0x32,0x48,0x2e,0x38,0x5b,0x53,0x51,0x5c,0x6c,0x44,0x13,0x2a,0x27,0x23,0x0c, +0xfe,0x60,0x11,0x1d,0x28,0x18,0x17,0x29,0x1e,0x11,0x11,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0xe5,0x02,0xb4,0x00,0x1e,0x00,0x3a,0xb5,0x0c,0x00,0x0c,0x00,0x20,0x08,0xb8,0x05,0x0a,0xb3,0x16,0x1e,0x1e,0x03,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x1b,0x01,0x1b,0x10,0x10,0x0f,0x0f,0x0b,0xba,0x04,0xfb, +0x00,0x0d,0x04,0xe6,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x2f,0x5d,0xed,0x33,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x27,0x33,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x02,0xac,0x1d,0x43,0x20,0x30,0x53,0x3d,0x24,0x7b,0x79, +0xa9,0xfd,0x92,0x1d,0xa9,0x01,0x19,0x22,0x15,0x09,0x37,0x66,0x8f,0x58,0x1c,0x41,0x20,0x01,0xff,0x05,0x07,0x13,0x2a,0x42,0x30,0x5b,0x5e,0xa3,0x99,0x06,0x19,0x38,0x3b,0x39,0x19,0x45,0x72,0x52,0x2e,0x05,0x05,0x00,0xff,0xff,0xff,0xa2,0x00,0x00,0x02,0x65,0x07,0x30,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x37,0x00,0x00, +0xff,0xff,0x00,0x49,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0xfd,0xfe, +0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x7f,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x55,0x05,0x91,0x04,0xcc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x39,0xfc,0xe3,0x00,0x01,0x00,0xab,0x00,0x00,0x01,0x47,0x05,0xec,0x00,0x03,0x00,0x15,0xbd,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x02,0x04, +0xe6,0x00,0x01,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x23,0xab,0x9c,0x9c,0x05,0xec,0xfa,0x14,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07, +0x0f,0x51,0x01,0x01,0x04,0xad,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0x04,0x02,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54, +0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xc8,0xff,0xcf,0x00,0x01,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x40,0x40,0x0a,0x1d,0x00,0x31,0x03,0x16,0x0d,0x0d,0x33,0x26,0x05,0xb8,0x05,0x0a,0xb6,0x16,0x00,0x1d,0x31,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xff,0xb6,0x0e,0x1f, +0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, +0x32,0x1e,0x04,0x17,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26, +0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0x00,0x01,0x00,0x52,0xff,0xea,0x03,0x4a,0x03,0xba,0x00,0x19, +0x00,0x24,0xb9,0x00,0x11,0x05,0x0a,0xb4,0x08,0x08,0x1b,0x1a,0x03,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb3,0x2f,0x0e,0x01,0x0e,0x00,0x2f,0x5d,0x3f,0xed,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x52,0x61,0xa6, +0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x9f,0x9c,0x48,0x7a,0xa0,0x57,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xb1,0xfe,0xbf,0x91,0x63,0x80,0x4c,0x1e,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab, +0x04,0xad,0x00,0x01,0x00,0x00,0xfd,0xff,0x02,0x9e,0x02,0x5e,0x00,0x1a,0x00,0x26,0xb9,0x00,0x12,0x05,0x0a,0xb2,0x07,0x00,0x02,0xb8,0x04,0xfb,0x40,0x0b,0x1a,0x1f,0x17,0x2f,0x17,0x02,0x17,0x2f,0x0d,0x01,0x0d,0x00,0x2f,0x5d,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x11,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0xd1,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e,0x8a,0xd4,0x90,0x4a,0x16,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff, +0x02,0x9e,0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x03,0x0f,0x00,0x4d,0x00,0x74,0xb9,0x00,0x1b,0x05,0x0a,0xb2,0x18,0x26,0x0e,0xb8,0x05,0x0a,0xb3,0x0b,0x2f,0x2f,0x03,0xb8,0x05,0x0a,0x40,0x0a,0x4a,0x18,0x0b,0x4a,0x4a,0x0b,0x18,0x03,0x4f,0x40, +0xb8,0x05,0x0a,0xb5,0x39,0x2f,0x3d,0x01,0x3d,0x45,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x34,0x2f,0x34,0x02,0x34,0x26,0x2f,0x13,0x06,0xbc,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00,0x20,0x05,0x03,0x40,0x09,0x19,0x20,0x0d,0x01,0x0d,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xd4,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x39,0x2f,0x5d,0xed,0x2f,0x5d, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x80,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x38,0x5d,0x78,0x3f,0x2c,0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03, +0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x02,0x01,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01, +0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x00,0x42,0x00,0x56, +0x00,0x57,0xb3,0x54,0x09,0x13,0x3c,0xbe,0x05,0x0a,0x00,0x48,0x00,0x1a,0x05,0x0a,0x00,0x13,0x00,0x4d,0x04,0xfb,0x40,0x0d,0x2f,0x37,0x01,0x37,0x2f,0x28,0x01,0x28,0x2f,0x17,0x01,0x17,0x1f,0xb8,0x04,0xfb,0x40,0x0c,0x1f,0x0e,0x2f,0x0e,0x02,0x0e,0x54,0x54,0x43,0x43,0x09,0x30,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed, +0x39,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e, +0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x07,0x93,0xa1,0xe7,0x9d,0x5e,0x18,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81,0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b, +0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9b,0x3b,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x16,0x01,0x03,0x08,0x07,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, +0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55,0x2f,0x16,0x05,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26, +0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x3a,0xb9,0x00,0x0d,0x05,0x0a,0xb2,0x26,0x32,0x01,0xb8,0x05,0x0a,0xb5,0x00,0x32,0x32,0x21,0x21,0x1d,0xb8,0x04,0xfb,0xb3,0x03,0x1a,0x01,0x14,0xba,0x05,0x03,0x00,0x2b,0x04,0xfb,0xb1,0x08, +0x01,0x00,0x2f,0x2f,0xed,0x3f,0x12,0x39,0x39,0xed,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16, +0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66, +0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0x00,0x01,0x00,0x65,0xfd,0xff, +0x04,0x2d,0x04,0x2a,0x00,0x37,0x00,0x52,0xb4,0x29,0x00,0x16,0x39,0x31,0xb8,0x05,0x0a,0xb2,0x20,0x20,0x05,0xb8,0x05,0x0a,0xb4,0x16,0x28,0x29,0x29,0x2c,0xb8,0x04,0xfb,0x40,0x0d,0x25,0x00,0x34,0x1b,0x37,0x37,0x11,0x2f,0x25,0x01,0x25,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed, +0x32,0x2f,0x5d,0x12,0x39,0x2f,0x39,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22, +0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x5c,0xaf,0xe8,0x8b,0x39,0x2e,0x63,0x9e,0x71,0x61,0xc7,0x64,0x6d,0xbf,0x64,0x98,0xd7,0x89,0x40,0x14,0x31,0x53,0x3f,0x26,0x37,0x23,0x11,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x56,0x2a,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd1,0x89,0x01,0x9a,0x2e,0x66,0x72,0x7d,0x45,0x40, +0x72,0x55,0x32,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5b,0x31,0x64,0x65,0x64,0x30,0x24,0x51,0x55,0x56,0x29,0x4f,0x92,0x70,0x42,0x08,0x09,0xaa,0x08,0x0b,0x16,0x38,0x5d,0x46,0x4c,0x7f,0x2b,0x2d,0x52,0x24,0x00,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xe4, +0x04,0xdf,0x00,0x01,0xff,0xba,0xff,0xf2,0x01,0x56,0x00,0x99,0x00,0x08,0x00,0x13,0xb2,0x08,0x04,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x01,0x56,0xfe,0xaa,0x23,0x23,0x23,0x23,0x01,0x56,0x0e,0x34,0x20,0x20,0x33,0x00,0xff,0xff,0x00,0xab, +0xff,0xea,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x05,0xf4,0x05,0xec,0x00,0x25,0x00,0x46,0x00,0x71,0xbf,0x00,0x13,0x05, +0x0a,0x00,0x10,0x00,0x41,0x05,0x0b,0x00,0x28,0x00,0x39,0x05,0x0b,0x40,0x10,0x30,0x36,0x10,0x28,0x26,0x30,0x22,0x10,0x28,0x30,0x30,0x28,0x10,0x03,0x48,0x03,0xbe,0x05,0x0a,0x00,0x22,0x00,0x26,0x04,0xfd,0x00,0x46,0x00,0x36,0x04,0xfd,0x40,0x0a,0x28,0x41,0x30,0x39,0x04,0x1a,0x35,0x35,0x11,0x0b,0xba,0x04,0xfb,0x00,0x1a,0x05, +0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e, +0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x2d,0x52,0x71,0x88,0x9a,0x51,0x76,0xc2,0x9b, +0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f,0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0x6e,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58, +0x3d,0x70,0x33,0x57,0x0b,0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x01,0x00,0x9b,0xfe,0xac,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x25,0xbf,0x00,0x03,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00, +0x08,0x04,0xfb,0xb5,0x15,0x0f,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81, +0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x00,0x02,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x00,0x26,0x00,0x38,0x00,0x41,0xb2,0x17,0x1b,0x05,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x12,0x05, +0x0a,0x40,0x0a,0x1b,0x2f,0x17,0x01,0x17,0x20,0x34,0x34,0x00,0x27,0xbd,0x04,0xfb,0x00,0x0f,0x00,0x0a,0x05,0x03,0x00,0x31,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x02,0xac,0x4c,0x79,0x55,0x2e,0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45, +0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4, +0xad,0x05,0x0f,0x0d,0x09,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x03,0x5c,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x02,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x00,0x17,0x00,0x29,0x00,0x36,0xb9,0x00,0x06,0x05,0x0a,0xb6,0x20,0x20,0x10,0x2b,0x00,0x00,0x18,0xb8,0x05,0x0a,0xb4,0x10, +0x15,0x25,0x01,0x1d,0xba,0x04,0xfb,0x00,0x0b,0x05,0x03,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x37,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x03,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34, +0x2e,0x02,0x27,0x0e,0x03,0x01,0x3f,0x60,0x76,0xa7,0x6a,0x31,0x30,0x5a,0x83,0x53,0x51,0x7c,0x54,0x2b,0x2a,0x43,0x56,0x2c,0x15,0x2d,0x13,0x1d,0x32,0x42,0x25,0x66,0x5c,0x12,0x2b,0x46,0x34,0x29,0x47,0x34,0x1d,0x03,0x4f,0x7f,0x4e,0x9f,0xa5,0xaa,0x59,0x4b,0x7b,0x59,0x30,0x2b,0x50,0x70,0x45,0x53,0x96,0x7f,0x65,0x23,0x11,0x22, +0xfd,0xfb,0x2d,0x3e,0x28,0x12,0x58,0x4b,0x2e,0x5a,0x5c,0x5f,0x33,0x1d,0x52,0x60,0x6d,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x47,0xb2,0x23,0x23,0x1a,0xb8,0x05,0x0a,0xb3,0x08,0x08,0x38,0x2f,0xb8,0x05,0x0a,0xb2,0x0f,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x22,0x1f,0x1f,0x2f,0x1f,0x02,0x1f, +0x2a,0xb8,0x04,0xfb,0xb5,0x2f,0x14,0x01,0x14,0x08,0x34,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, +0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c, +0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x01,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x00,0x35, +0x00,0x42,0xb2,0x09,0x05,0x2f,0xbb,0x05,0x0a,0x00,0x16,0x00,0x28,0x05,0x0a,0xb6,0x1d,0x16,0x1d,0x16,0x1d,0x37,0x0c,0xb8,0x05,0x0a,0xb2,0x05,0x28,0x23,0xbe,0x04,0xff,0x00,0x22,0x00,0x00,0x04,0xfb,0x00,0x11,0x04,0xe6,0x00,0x09,0x00,0x2f,0x3f,0xed,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b, +0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f, +0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0x8d,0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00, +0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x01,0x11,0x58,0x00,0x02,0xff,0x33,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x23,0x00,0x31,0x00,0x3b,0xb2,0x20,0x13,0x1d,0xb8,0x05,0x0d,0xb5,0x24,0x23,0x23,0x24, +0x11,0x2c,0xb8,0x05,0x0d,0xb4,0x13,0x0b,0x08,0x05,0x18,0xb8,0x04,0xfd,0xb3,0x27,0x20,0x2f,0x0e,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37, +0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2f,0x21,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1f,0x31,0x3f,0x21,0x1f,0x3b,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04, +0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x45,0x45,0x26,0x3b,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71, +0x00,0x03,0x00,0x07,0x00,0x1d,0xb4,0x05,0x01,0x04,0x00,0x02,0xbc,0x04,0xfd,0x00,0x01,0x00,0x06,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0xde,0xed,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0xfe,0xb8,0x58,0x01,0x11,0x58,0x00,0x01,0x00,0x05,0x06,0x7c, +0x02,0x01,0x06,0xd4,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02,0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x13,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x06,0xd4,0x58,0x00,0x00,0x02,0xff,0xbf,0x06,0x55,0x01,0xca,0x08,0x0e,0x00,0x22,0x00,0x30,0x00,0x35,0xb2,0x1f,0x12,0x1c,0xb8,0x05,0x0d,0xb5,0x23,0x22, +0x22,0x23,0x10,0x2b,0xbb,0x05,0x0d,0x00,0x12,0x00,0x17,0x04,0xfd,0xb3,0x26,0x1f,0x2e,0x0c,0xb9,0x04,0xfd,0x00,0x05,0x00,0x2f,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x2d,0x23,0x18,0x30,0x15,0x39,0x67,0x30,0x12,0x32,0x5c,0x38,0x01,0x0b,0x06,0x01,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f, +0x23,0x1a,0x30,0x3c,0x06,0x55,0x22,0x22,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x01,0x00,0x05,0xff,0x19,0x02,0x01,0xff,0x71,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x02, +0xb9,0x04,0xfd,0x00,0x01,0x00,0x2f,0xed,0x01,0x10,0xcd,0x31,0x30,0x17,0x21,0x15,0x21,0x05,0x01,0xfc,0xfe,0x04,0x8f,0x58,0x00,0x01,0xff,0xd4,0x06,0x76,0x02,0x33,0x07,0xa0,0x00,0x33,0x00,0x53,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x30,0x33,0x33,0x30,0x0a,0x21,0x25,0x25,0x2a,0xb8,0x05,0x0d,0xb4,0x21,0x24,0x24,0x21, +0x1b,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x15,0x15,0x12,0x16,0x25,0x25,0x33,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1e,0x2d,0x00,0x2f,0x33,0xed,0x32,0x39,0xce,0x32,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x0e,0x02,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x06,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x03, +0x02,0x02,0x26,0x2d,0x2c,0x23,0x02,0x61,0x01,0x01,0x22,0x2d,0x2f,0x25,0x04,0x02,0x07,0xa0,0x14,0x25,0x0e,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x1a,0x2c,0x0e,0x17,0x1d,0x13,0x0c,0x05,0x33,0x3f,0x3e,0x3b,0x14,0x2e,0x0f,0x07,0x15,0x16,0x16,0x08,0x3d,0x3d,0x3e,0x37,0x17,0x30,0x0e,0x00,0x02,0x00,0x45,0x06,0x76, +0x01,0xc1,0x07,0xe9,0x00,0x13,0x00,0x1f,0x00,0x26,0x41,0x0c,0x00,0x05,0x05,0x0d,0x00,0x17,0x00,0x1d,0x05,0x0d,0x00,0x0f,0x00,0x00,0x04,0xfd,0x00,0x1a,0x00,0x14,0x04,0xfd,0x00,0x0a,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x03,0x29,0x45,0x33,0x1d,0x1d,0x33,0x45,0x29,0x2a,0x46,0x32,0x1c,0x1c,0x33,0x45,0x2a,0x30,0x34,0x34,0x30,0x2f,0x35,0x35,0x07,0xe9,0x1d,0x32,0x44,0x27,0x27,0x44,0x31,0x1d,0x1d,0x31,0x44,0x27,0x27,0x44,0x32,0x1d,0xfe,0xe4,0x36,0x2c,0x2b,0x38,0x38,0x2b,0x2c, +0x36,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff,0x00,0x52,0xfd,0xfe,0x04,0xad,0x05,0xec,0x02,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7f,0x72,0x00,0xff,0xff, +0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xa2,0x06,0x62,0x02,0x65,0x07,0x30,0x00,0x1b,0x00,0x20,0x40,0x0d,0x00,0x0e,0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0x0a,0x18,0x05,0x00,0x2f,0xcd,0xd4,0xcd,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x65,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2d,0x22,0x31,0x19,0x3e,0x1a,0x31,0x2d,0x29,0x12,0x33,0x5c,0x56,0x54,0x2c,0x23,0x31,0x19,0x06,0xb6,0x1b,0x21,0x12,0x06,0x1e,0x24,0x1e,0x16,0x16,0x46,0x1b,0x21,0x12,0x06,0x1e, +0x24,0x1e,0x15,0x17,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x00,0x1f, +0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb7,0x1d,0x2f,0x1f,0x01,0x1f,0x0b,0x17,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x00,0x02,0xff,0xba,0xff,0xf2,0x03,0x49,0x03,0x62, +0x00,0x24,0x00,0x38,0x00,0x31,0xb9,0x00,0x12,0x05,0x0a,0xb3,0x25,0x25,0x3a,0x31,0xb8,0x05,0x0a,0xb2,0x05,0x36,0x20,0xbc,0x04,0xfb,0x00,0x19,0x05,0x03,0x00,0x2c,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32, +0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8, +0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42, +0x4a,0x2a,0x18,0x4d,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x00,0x2f,0x00,0x43,0x00,0x3e,0xb1,0x15,0x12,0xb8,0x05,0x0a,0xb4,0x30,0x30,0x05,0x19,0x3c,0xb8,0x05,0x0a,0xb5,0x05,0x1f,0x0a,0x41,0x2b,0x18,0xbd,0x04,0xfb,0x00,0x24,0x00,0x19,0x05,0x03,0x00,0x37,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed, +0x3f,0x33,0xed,0x32,0x32,0x12,0x39,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19, +0x43,0x74,0x5b,0x21,0x19,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x00,0x01,0x00,0xab, +0xff,0xea,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0xb9,0x00,0x13,0x05,0x0a,0xb3,0x10,0x10,0x27,0x03,0xbd,0x05,0x0a,0x00,0x22,0x00,0x0b,0x04,0xfb,0x00,0x1a,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xc6,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33, +0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05, +0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x1f,0x00,0x26,0xb1,0x0b,0x00,0xb8,0x05,0x0a,0xb6,0x1d,0x1e,0x18,0x17,0x17,0x0b,0x05,0xbb,0x04,0xfb,0x00,0x10,0x00,0x06,0x05,0x03,0x00,0x3f,0x33, +0xed,0x39,0x32,0x11,0x33,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43, +0x38,0x25,0x9c,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x04,0x99,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x74,0xb9,0x00,0x3b,0x05,0x0a,0xb2,0x3a,0x3a,0x39,0xb8,0x05,0x0a,0xb3,0x38,0x1d,0x38,0x32,0xb8,0x05,0x0a,0xb7,0x33,0x38,0x33,0x38,0x33,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16, +0x00,0x3a,0x05,0x02,0xb2,0x3d,0x36,0x32,0xb8,0x05,0x02,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01,0x2f, +0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23, +0x35,0x33,0x03,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x6a,0xb5,0xb5,0x01,0x42,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01, +0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x64,0xb3,0xb3,0xb3,0xfe,0x3f,0xb3,0x00,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x03,0x00,0x07, +0x00,0x0b,0x00,0x3d,0x00,0x4b,0x00,0x97,0xb1,0x19,0x3e,0xbb,0x05,0x0b,0x00,0x49,0x00,0x09,0x05,0x0a,0xb2,0x08,0x08,0x04,0xbb,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0x40,0x0b,0x01,0x49,0x05,0x01,0x01,0x05,0x49,0x03,0x4d,0x32,0x11,0xbd,0x05,0x0a,0x00,0x22,0x00,0x41,0x04,0xfb,0x00,0x43,0x05,0x03,0xb6,0x3e,0x0c,0x29,0x3d, +0x04,0x1d,0x2f,0xb8,0x04,0xff,0xb2,0x36,0x19,0x16,0xb8,0x04,0xfc,0x40,0x0c,0x1a,0x1f,0x1d,0x2f,0x1d,0x02,0x1d,0x07,0x06,0x06,0x02,0x08,0xb8,0x05,0x02,0xb7,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x04,0x00,0xb8,0x05,0x02,0xb5,0x2f,0x02,0x3f,0x02,0x02,0x02,0x00,0x2f,0x5d,0xfd,0x32,0xde,0x5d,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33, +0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x13,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35, +0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x13,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x02,0x78,0xb5,0xb5,0x01,0x2e,0xb5,0xb5,0x97,0xb5,0xb5,0xfd,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19, +0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x2b,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x02,0xb3,0xb3,0xb3,0xfe,0x49,0xb3,0x02,0x50,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38, +0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfe,0x9a,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x00,0xfd,0xff, +0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x00,0x36,0x00,0x33,0xb2,0x1e,0x23,0x03,0xbb,0x05,0x0a,0x00,0x33,0x00,0x23,0x05,0x0a,0x40,0x09,0x15,0x1a,0x1e,0x1b,0x03,0x00,0x00,0x1c,0x0b,0xbb,0x04,0xfb,0x00,0x2b,0x05,0x03,0x00, +0x1c,0x00,0x2f,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4e,0x7e,0x67,0x51,0x20,0x25,0x32,0x1c,0x0c,0x57,0xa3,0xe8,0x91,0x03,0x4b,0xfd,0x66,0x8b,0xe1,0x9e,0x56,0x0f,0x31,0x5d,0x4f,0x57,0xef,0xa5,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x01,0x06,0x0a,0x09, +0x0a,0x1d,0x26,0x2c,0x1a,0x4d,0x8b,0x86,0x85,0x47,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x42,0x8b,0x96,0xa6,0x5e,0x1f,0x56,0x59,0x50,0x19,0x1b,0x0e,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38, +0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0x15,0x02,0x06,0x09,0x2a,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x02,0x13,0x02,0x06, +0x08,0xf7,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x06,0x19,0x02,0x26,0x08,0xf3,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x3e,0xfe,0x30,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26, +0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb9,0x01,0xac,0x02,0x89,0x03,0x7c,0x02,0x06,0x08,0xd7,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x01,0x56,0x05,0x9a,0x02,0x06,0x08,0xd8,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x03,0x50, +0x05,0x9a,0x02,0x06,0x08,0xd9,0x00,0x00,0xff,0xff,0x00,0x2b,0x00,0x00,0x04,0x1a,0x05,0x9a,0x02,0x06,0x08,0xda,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x03,0x70,0x05,0xb7,0x00,0x36,0x00,0x4a,0xb5,0x1d,0x0b,0x38,0x29,0x02,0x2f,0xb8,0x05,0x0a,0x40,0x09,0x30,0x1e,0x1d,0x1d,0x13,0x02,0x03,0x07,0x2f,0xbb,0x04,0xe6,0x00,0x29, +0x00,0x23,0x04,0xfb,0xb4,0x2f,0x18,0x01,0x18,0x0e,0xb8,0x04,0xfb,0xb7,0x2f,0x07,0x01,0x07,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x39,0x3f,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02, +0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x07,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x02,0x27,0xcb,0x30,0x05,0x0e,0x3f,0x5f,0x7d,0x4b,0x20,0x49,0x24,0x23,0x45,0x23,0x43,0x77,0x5a,0x34,0x29,0x41,0x51,0x29,0x32,0x62,0x5b,0x50,0x1f,0x14,0x49,0x5c,0x6b,0x36,0x1e,0x3e,0x39, +0x32,0x13,0x04,0x07,0x0c,0x07,0x04,0x9c,0x11,0x23,0x36,0x25,0x05,0x9a,0xd2,0x2f,0x56,0x42,0x28,0x08,0x09,0xa6,0x08,0x08,0x1b,0x30,0x43,0x28,0x23,0x33,0x21,0x0f,0x14,0x20,0x28,0x14,0xaa,0x11,0x26,0x21,0x15,0x08,0x10,0x19,0x11,0x03,0x38,0x71,0x7a,0x84,0x4a,0xfe,0x85,0x01,0x73,0x94,0xff,0xf8,0x01,0x03,0x99,0x00,0x00,0x02, +0x00,0x72,0xff,0xe9,0x04,0x28,0x05,0x9a,0x00,0x1e,0x00,0x3f,0x00,0x46,0xbf,0x00,0x17,0x05,0x0a,0x00,0x2a,0x00,0x20,0x05,0x0a,0x00,0x1f,0x00,0x38,0x05,0x0a,0xb3,0x09,0x3d,0x3d,0x25,0xb8,0x04,0xfb,0xb7,0x1c,0x00,0x1c,0x20,0x20,0x10,0x04,0x1c,0xba,0x05,0x03,0x00,0x31,0x04,0xff,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed, +0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x03,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x14,0x1e,0x02, +0x33,0x32,0x36,0x02,0x51,0x08,0x2a,0x66,0x3d,0x31,0x5f,0x4b,0x2f,0x2c,0x4b,0x62,0x6b,0x6e,0x31,0x30,0x6b,0x68,0x5e,0x48,0x2a,0x32,0x4f,0x64,0x31,0x3b,0x61,0x6c,0x86,0x0f,0x1f,0x2e,0x1f,0x1a,0x2f,0x23,0x15,0x1e,0x32,0x42,0x48,0x4a,0x21,0x21,0x48,0x46,0x3e,0x30,0x1c,0x14,0x23,0x2f,0x1c,0x36,0x41,0x7d,0x51,0x43,0x2c,0x70, +0xbe,0x92,0x8e,0xfd,0xd6,0xac,0x78,0x40,0x3e,0x75,0xa6,0xd1,0xf7,0x8a,0x98,0xc7,0x76,0x30,0x43,0x01,0x39,0x2d,0x4b,0x37,0x1e,0x1a,0x46,0x7a,0x60,0x72,0xd1,0xb3,0x92,0x67,0x38,0x39,0x68,0x91,0xb1,0xcd,0x6e,0x5c,0x7c,0x4c,0x20,0x6a,0x00,0x01,0x00,0x2f,0xff,0xf5,0x03,0x65,0x05,0xa4,0x00,0x28,0x00,0x3d,0xb5,0x00,0x16,0x07, +0x03,0x2a,0x1e,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x08,0x04,0xfc,0x40,0x09,0x2f,0x23,0x01,0x23,0x00,0x28,0x28,0x03,0x19,0xb8,0x04,0xfb,0xb5,0x2f,0x12,0x01,0x12,0x04,0x03,0xb8,0x04,0xe6,0x00,0x3f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x31,0x30,0x01,0x06,0x00,0x03,0x27,0x36,0x12, +0x37,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x03,0x65,0xe1,0xfe,0x7d,0xac,0x26,0x5e,0xec,0x84,0x01,0x49,0x74,0x51,0x2b,0x3b,0x6e,0x9e,0x62,0x1d,0x47,0x23,0x20,0x4d,0x21,0x37,0x5f,0x46,0x28,0x21,0x3a,0x51,0x2f,0x45,0x4d, +0x26,0x4a,0x27,0x03,0x0a,0x6e,0xfe,0x77,0xfe,0xe2,0xc2,0x9e,0x01,0x17,0x6b,0x04,0x0c,0x3b,0x5a,0x76,0x46,0x53,0x86,0x5f,0x34,0x05,0x05,0xab,0x05,0x07,0x17,0x31,0x4f,0x39,0x34,0x4e,0x35,0x1a,0x1b,0x17,0x2a,0x14,0xff,0xff,0xff,0xf4,0x00,0x00,0x03,0xfa,0x05,0x9a,0x02,0x06,0x08,0xde,0x00,0x00,0xff,0xff,0x00,0x49,0x00,0x00, +0x04,0x4f,0x05,0x9a,0x02,0x06,0x08,0xdf,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x03,0xdb,0x05,0xa8,0x02,0x06,0x08,0xe0,0x00,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x36,0xb1,0x1b,0x10,0xb8,0x05,0x0a,0xb3,0x0d,0x0d,0x17,0x03,0xb8,0x05,0x0a,0xb2,0x25,0x17,0x08,0xb8,0x04,0xfb,0xb2,0x20,0x1b, +0x15,0xba,0x04,0xfb,0x00,0x16,0x05,0x03,0xb1,0x0f,0x00,0x00,0x2f,0x2f,0x3f,0xed,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, +0x37,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f, +0xb7,0x72,0x3f,0x83,0x4b,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xb9,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, +0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x05,0xb9,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0x00,0x01,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1, +0x00,0x20,0x00,0x34,0xb9,0x00,0x02,0x05,0x0a,0xb3,0x1d,0x1d,0x22,0x13,0xb8,0x05,0x0a,0x40,0x0a,0x0c,0x2f,0x20,0x01,0x20,0x2f,0x10,0x01,0x10,0x18,0xb8,0x04,0xfb,0xb5,0x1f,0x07,0x2f,0x07,0x02,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x04,0x84,0x22,0x37,0x83,0xd6,0x9e,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0xb9,0xa1,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f, +0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0x0a,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x06,0x0f,0x5a,0x00,0x00,0x00,0x01,0xff,0xba,0xfd,0xfa,0x04,0x02,0x02,0x01,0x00,0x32,0x00,0x48, +0xb9,0x00,0x1e,0x05,0x0b,0x40,0x0a,0x13,0x09,0x09,0x13,0x13,0x24,0x19,0x28,0x28,0x0e,0xb8,0x05,0x0a,0xb5,0x03,0x24,0x19,0x28,0x18,0x00,0xbb,0x04,0xfb,0x00,0x19,0x00,0x2b,0x05,0x03,0xb7,0x2f,0x1f,0x01,0x1f,0x2f,0x09,0x01,0x09,0x00,0x2f,0x5d,0x2f,0x5d,0x3f,0x33,0xed,0x32,0x39,0x01,0x2f,0x2f,0x33,0xed,0x33,0x2f,0x11,0x12, +0x39,0x2f,0x33,0x2f,0x10,0xed,0x31,0x30,0x37,0x32,0x36,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x15,0x22,0x0e,0x02,0x15,0x15,0x2e,0x03,0x35,0x34,0x36,0x37,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x9b,0x30,0x3d,0x0e,0x09,0x10,0x1c,0x2e,0x27,0x97,0x2f,0x42,0x28,0x12,0x21, +0x33,0x3e,0x1e,0x07,0x42,0x73,0xa2,0x68,0x57,0x81,0x54,0x2a,0x7c,0xa9,0x68,0x2d,0x07,0x06,0x04,0x1a,0x40,0x2d,0x74,0x23,0x23,0x23,0x23,0x99,0x0a,0x0e,0x09,0x26,0x4b,0x7a,0x5c,0x67,0xa8,0x8b,0x71,0x2e,0x45,0x59,0x38,0x1e,0x09,0x60,0xa9,0x7d,0x48,0xa7,0x3f,0x76,0xa9,0x6a,0x30,0x18,0x47,0x60,0x7b,0x4d,0x20,0x43,0x25,0x02, +0x0c,0x0d,0x34,0x20,0x20,0x33,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x06,0x12,0x02,0x26,0x09,0x28,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x16,0xfe,0x29,0x00,0x0a,0xb4,0x02,0x2f,0x40,0x01,0x40,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x05,0x5d,0x02,0x26,0x09,0x28,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x01, +0x04,0xad,0x00,0x01,0x00,0x72,0xff,0xea,0x06,0xe5,0x03,0x5b,0x00,0x2b,0x00,0x1f,0xb9,0x00,0x0a,0x05,0x0a,0xb6,0x21,0x00,0x2f,0x2b,0x01,0x2b,0x0f,0xba,0x04,0xfb,0x00,0x1a,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e, +0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x03,0x4b,0x3a,0x72,0x69,0x60,0x28,0x24,0x3b,0x2a,0x17,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x27,0x43,0x5c,0x35,0x2e,0x62,0x63,0x60,0x2c,0x02,0xd3,0x30,0x4e,0x3f,0x34,0x16,0x14,0x25,0x25,0x28, +0x18,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x37,0x5a,0x4c,0x43,0x20,0x1c,0x38,0x3c,0x43,0x27,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb, +0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x33,0x02,0xac,0x0d,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93, +0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x08,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x3e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xab, +0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x09,0x66,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0x00,0x01,0x00,0x2d,0x00,0x00,0x01,0xab,0x00,0xbc,0x00,0x03,0x00,0x13,0xb2,0x03,0x02,0x02,0xba,0x04,0xfb,0x00,0x00,0x04,0xe6,0x00, +0x3f,0xed,0x01,0x2f,0xcd,0x31,0x30,0x21,0x21,0x27,0x21,0x01,0xab,0xfe,0xaa,0x28,0x01,0x7e,0xbc,0x00,0x00,0x03,0x00,0x7c,0x00,0x00,0x04,0x18,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xbc,0x00,0x05,0x05,0x0c,0x00,0x04,0x00,0x01,0x05,0x0c,0xb5,0x00,0x2f,0x09,0x01,0x09,0x08,0xba,0x04,0xe6,0x00,0x06,0x04,0xfe,0xb4, +0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0xfd,0x86,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00, +0x00,0x01,0x00,0x42,0x01,0xae,0x02,0xd9,0x04,0x25,0x00,0x0e,0x00,0x0c,0xb4,0x20,0x03,0x01,0x03,0x0c,0x00,0x2f,0xc4,0x5d,0x31,0x30,0x01,0x07,0x17,0x07,0x27,0x07,0x27,0x37,0x27,0x37,0x17,0x27,0x33,0x07,0x37,0x02,0xd9,0xf6,0xa6,0x7b,0x81,0x81,0x7b,0xa6,0xf5,0x2f,0xe7,0x16,0x97,0x16,0xe7,0x02,0xfe,0x37,0xbf,0x5a,0xdb,0xdb, +0x5a,0xbf,0x37,0x8f,0x64,0xfc,0xfc,0x64,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02, +0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x07,0x4a,0x08,0x36,0x00,0x3a,0x00,0x48,0x00,0x4c, +0x00,0x7a,0x00,0xdd,0xb9,0x00,0x0d,0x05,0x0a,0xb3,0x0a,0x66,0x66,0x69,0xb8,0x05,0x0d,0xb6,0x63,0x65,0x65,0x63,0x5a,0x5a,0x5d,0xb8,0x05,0x0d,0x40,0x09,0x4a,0x4b,0x4b,0x56,0x56,0x4a,0x59,0x59,0x49,0xb8,0x05,0x0b,0xb4,0x16,0x70,0x4a,0x4a,0x00,0xb8,0x05,0x0a,0xb3,0x38,0x4d,0x4d,0x50,0xb8,0x05,0x0b,0xb5,0x78,0x7a,0x7a,0x78, +0x43,0x2d,0xb8,0x05,0x0a,0x40,0x0e,0x2c,0x0a,0x63,0x38,0x78,0x2c,0x2c,0x78,0x38,0x63,0x0a,0x05,0x7c,0x3b,0xbb,0x05,0x0a,0x00,0x26,0x00,0x21,0x04,0xfb,0xb6,0x2f,0x40,0x01,0x40,0x16,0x33,0x05,0xbb,0x04,0xfb,0x00,0x19,0x00,0x12,0x05,0x03,0x40,0x0b,0x70,0x60,0x6c,0x30,0x4c,0x01,0x4c,0x49,0x5a,0x53,0x60,0xb8,0x04,0xfd,0xb3, +0x73,0x6c,0x0b,0x44,0xb8,0x04,0xfc,0x40,0x0a,0x2b,0x2f,0x2c,0x01,0x2c,0x3a,0x20,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xd6,0xd4,0x5d,0xdd,0xed,0x10,0xd4,0x32,0xfd,0x32,0xd6,0xde,0xcd,0x5d,0x11,0x12,0x39,0x3f,0x33,0xed,0x32,0x39,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x2f, +0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x33,0x2f,0x11,0x33,0x2f,0x33,0x2f,0x10,0xe4,0x32,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x05,0x49,0x0c,0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1d,0x40,0x36,0x24,0x9c, +0xfb,0xee,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x04,0x03,0x74,0x74,0xfe,0xf5,0x03,0x01,0x26,0x2d,0x2c,0x23,0x01,0x5f,0x01,0x22,0x2d,0x2f,0x25,0x03,0x5f,0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce, +0x65,0x86,0x4f,0x20,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xf4,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0xd3,0x01,0x56,0xfe,0x57,0x1c,0x18,0x09,0x33,0x3f,0x3e,0x3b,0x0d, +0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x00,0x01,0x00,0x57,0xff,0xaf,0x04,0x02,0x01,0xbb,0x00,0x1e,0x00,0x2a,0xbc,0x00,0x0d,0x05,0x0a,0x00,0x12,0x00,0x08,0x04,0xfb,0x40,0x09,0x2f,0x17,0x01,0x17,0x2f,0x0e,0x01,0x0e,0x1e,0xba,0x04, +0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x04,0x02,0x0c,0x42,0x6c,0x60,0x56,0x55,0x58,0x32,0x2a,0x4d,0x3b,0x23,0x83,0x03,0x01,0x42,0x69,0x80,0x3f,0x3f,0x6b, +0x60,0x58,0x56,0x58,0x31,0x0e,0x2b,0x40,0x4c,0x40,0x2b,0x23,0x4e,0x7c,0x58,0x20,0x16,0x1e,0x05,0x7e,0xb2,0x70,0x33,0x2b,0x40,0x4c,0x40,0x2b,0x00,0x01,0x00,0xc4,0x06,0x7c,0x01,0x42,0x08,0x04,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01, +0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0x06,0x7c,0x01,0x88,0x00,0x00,0x02,0xff,0x17,0x06,0x1d,0x02,0xee,0x08,0xde,0x00,0x53,0x00,0x65,0x00,0x6f,0xb5,0x09,0x26,0x61,0x03,0x47,0x1a,0xb8,0x05,0x0d,0xb2,0x59,0x2d,0x00,0xbb,0x05,0x0d,0x00,0x51,0x00,0x38,0x05,0x0d,0xb2,0x47,0x53,0x15,0xb8,0x05,0x01,0x40,0x11,0x5c,0x54,0x26,0x2d, +0x54,0x1f,0x61,0x61,0x54,0x4c,0x4c,0x54,0x10,0x10,0x0a,0x03,0x54,0xb8,0x05,0x01,0x40,0x09,0x1f,0x35,0x35,0x30,0x30,0x29,0x29,0x1f,0x3b,0xb9,0x05,0x01,0x00,0x42,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x32,0x2f,0x32,0x2f,0x10,0xfd,0x32,0xcc,0x33,0x2f,0x11,0x33,0x2f,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x10,0xde,0xfd,0xc6,0x01,0x2f, +0xed,0x2f,0xed,0x39,0x2f,0xed,0x11,0x17,0x39,0x31,0x30,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x01,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x61,0x0e,0x1a,0x1a,0x15,0x05,0x05,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13, +0x20,0x46,0x71,0x51,0x48,0x61,0x15,0x0a,0x14,0x06,0x01,0x12,0x31,0x1a,0x1f,0x28,0x0a,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x01,0x9b,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c, +0x1d,0x1b,0x07,0x7e,0x2a,0x27,0x1c,0x1a,0x0b,0x2a,0x12,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x03,0x08,0x04,0x14,0x0b,0x18,0x13,0x17,0x14,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76, +0xfe,0x4d,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x10,0x06,0x71,0x01,0xbb,0x08,0xde,0x00,0x14,0x00,0x27,0xb9,0x00,0x0c,0x05,0x0d,0xb5,0x09,0x06,0x06,0x00,0x00,0x03,0xb8,0x05,0x01,0xb5,0x11,0x14,0x14,0x11,0x0b,0x05,0x00,0x2f,0xc4,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f, +0xed,0x31,0x30,0x13,0x16,0x16,0x33,0x03,0x33,0x13,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x10,0x2e,0x51,0x27,0x99,0x5d,0x98,0x28,0x28,0x59,0x23,0x3d,0x53,0x30,0x2d,0x5e,0x30,0x06,0xe2,0x06,0x04,0x01,0xca,0xfe,0x37,0x02,0x1c,0x2a,0x01,0xbd,0xfe,0x22,0x34,0x3a,0x1b,0x06,0x04,0x06,0x00,0xff,0xff, +0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x28,0x00,0x3e,0xbc,0x00,0x1b,0x05,0x0d,0x00,0x0d,0x00,0x26,0x04,0xfd,0xb5,0x04,0x04,0x1f,0x14,0x14,0x12,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x18,0x10,0x18,0x02,0x18,0x1f,0x09,0x09,0x1f,0xb8,0x04,0xfd, +0xb3,0x1f,0x20,0x01,0x20,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x07, +0x3e,0x19,0x28,0x11,0x11,0x1d,0x1f,0x24,0x19,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x0d,0x1d,0x10,0x2d,0x3e,0x46,0x48,0x46,0xc7,0x31,0x40,0x2b,0x1e,0x0f,0x1f,0x2e,0xfe,0x06,0x56,0x15,0x10,0x0c,0x0f,0x0c,0x01,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x65,0x03,0x04,0x26,0x25,0x30,0x2d,0x61,0x0f,0x11,0x0f,0x28, +0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00, +0x00,0x02,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x02,0xb7,0x00,0x30,0x00,0x44,0x00,0x5b,0xb2,0x31,0x31,0x14,0xbb,0x05,0x0a,0x00,0x00,0x00,0x3d,0x05,0x0a,0xb6,0x07,0x00,0x07,0x00,0x07,0x46,0x25,0xb8,0x05,0x0a,0xb3,0x1e,0x1e,0x13,0x2a,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x19,0x2f,0x19,0x02,0x19,0x22,0x22,0x02,0x38,0xb8,0x04,0xfb,0xb5, +0x2f,0x0c,0x01,0x0c,0x00,0x42,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c, +0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21,0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x1d,0x32, +0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x06,0x7c,0x01,0xa2,0x07,0xe9,0x00,0x18,0x00,0x2f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb6,0x11,0x0e,0x09,0x0a,0x18,0x18,0x16, +0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, +0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x07,0x7e,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x01,0x00,0x49,0xfd,0xfe,0x01,0xa2,0xff,0x6b,0x00,0x18,0x00,0x34,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb3,0x11,0x18,0x18,0x16,0xb8,0x04,0xfd,0x40,0x0a,0x00,0x03, +0x10,0x03,0x02,0x03,0x09,0x0d,0x0d,0x09,0xb8,0x04,0xfd,0xb3,0x1f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x10,0xde,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x73,0x0d,0x1d,0x10,0x2d, +0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xff,0x00,0x03,0x04,0x26,0x27,0x5b,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0xff,0xff,0xff,0x97,0x00,0x00,0x01,0xf0,0x07,0xe8,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0x97,0xff,0xf2,0x02,0x01, +0x07,0xe8,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x00,0xff,0xff,0xff,0xc2,0x00,0x00,0x01,0xa2,0x07,0xe9,0x02,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xf2,0x02,0x01,0x07,0xe9,0x02,0x26,0x08,0xc7, +0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x7e,0x00,0x0a,0xb4,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x01,0xa2,0x05,0xec,0x02,0x26,0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x77,0x00,0x00,0xff,0xff,0xff,0xc2,0xfd,0xfe,0x02,0x01,0x05,0xec,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x77, +0x00,0x00,0xff,0xff,0x00,0xab,0x00,0x00,0x02,0xf8,0x05,0xec,0x00,0x26,0x09,0x0d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x01,0x20,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x03,0x57,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x21,0x02,0x01,0x00,0x00,0x01,0x07, +0x09,0x7e,0x01,0x56,0xfe,0x00,0x00,0x0a,0xb4,0x02,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0xa3,0x05,0x3e,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0xff,0xff,0xff,0xe7,0xfd,0xff,0x03,0xa3,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01, +0xfd,0x55,0x00,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0xff,0xff,0x00,0x9a,0xff,0x55,0x06,0x4f,0x05,0xe9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0xad,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xfa,0x05,0x3e,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x09,0x7e,0x05,0x58,0xfd,0x55,0xff,0xff,0x00,0xab,0xff,0xea, +0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad, +0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x01,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20, +0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x01,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0x00,0x0c,0xb5,0x02,0x01,0x20,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca, +0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07, +0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0x8f,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0x8f,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfd,0xa6,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x16, +0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1, +0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xc8,0xff,0xb1,0xff,0xff,0x00,0x7e,0xfd,0xff, +0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x96,0xff,0x75,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x02,0x26,0x09,0x13,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8, +0xff,0x26,0x00,0x0c,0xb5,0x02,0x01,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x03,0x54,0x02,0x26,0x08,0xd1,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0x91,0xff,0x14,0x00,0x0c,0xb5,0x02,0x01,0x20,0x43,0x01,0x43,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f, +0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x05,0xf2,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x05,0xf2,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x2a,0xff,0xff, +0xff,0xba,0xff,0xf2,0x04,0x7c,0x05,0x79,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0x00,0x05,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x84,0xb1,0x3e,0x36,0xb8,0x05,0x0a,0xb4,0x37,0x3f,0x37,0x3a,0x32,0xb8,0x05,0x0a,0x40,0x0e,0x33,0x3b,0x33, +0x1d,0x00,0x0d,0x03,0x37,0x33,0x37,0x33,0x43,0x26,0x05,0xb8,0x05,0x0a,0xb2,0x16,0x3e,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x40,0x0f,0x3d,0x1f,0x3d,0x02,0x3d,0x36,0x32,0xb8,0x04,0xfb,0x40,0x0d,0x38,0x2f,0x35,0x3f,0x35,0x02,0x35,0x31,0x1d,0x00,0x03,0x11,0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11, +0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06, +0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64, +0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0x7e,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0xfe,0xe6,0xb5,0xb5,0x01,0x1a,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, +0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x78,0xb3,0xb3,0xb3,0xfe,0x35,0xb3,0xb3,0xb3,0x00,0x04,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x42,0x00,0x46,0x00,0x4a,0x00,0x4e,0x00,0x90,0xb2,0x03,0x43,0x00,0xb8,0x05,0x0a,0xb4,0x01,0x44,0x01,0x4b,0x47,0xb8,0x05,0x0a,0x40,0x0e, +0x48,0x4c,0x48,0x23,0x38,0x13,0x03,0x01,0x48,0x01,0x48,0x50,0x2c,0x0b,0xbd,0x05,0x0a,0x00,0x1c,0x00,0x3c,0x04,0xfb,0x00,0x3e,0x05,0x03,0xb6,0x06,0x38,0x23,0x37,0x04,0x17,0x29,0xb8,0x04,0xff,0xb2,0x30,0x13,0x10,0xb8,0x04,0xfc,0x40,0x09,0x14,0x1f,0x17,0x2f,0x17,0x02,0x17,0x47,0x43,0xb8,0x04,0xfb,0x40,0x09,0x49,0x0f,0x46, +0x1f,0x46,0x02,0x46,0x4b,0x00,0xb8,0x04,0xfb,0xb4,0x4d,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0x33,0xfd,0x32,0xde,0x5d,0x32,0xed,0x32,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x39,0x31,0x30,0x25,0x23, +0x35,0x33,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x27,0x11,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x35,0x23,0x35, +0x33,0x03,0xa6,0xb5,0xa9,0x1d,0x2a,0x0f,0x9d,0xd5,0x81,0x37,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0x20,0x4b,0x24,0xc1,0x99,0x19,0x2f,0x84,0xc0,0x3f,0xb5,0xb5,0xfe,0xf0, +0xb5,0xb5,0xb5,0xb5,0x34,0xb3,0x31,0x70,0x3e,0x35,0x72,0x7b,0x86,0x48,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x15,0x9f,0xb4,0xa7,0x7a,0x66,0xfe,0x4a,0xb3,0xb3,0xb3,0x65,0xb3, +0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0xf4,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0f,0x5b,0x00,0xab,0x00,0xf5,0x00,0x0c,0xb5,0x02,0x01,0x20,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, +0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xab,0xfe,0xab,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x05,0x5d, +0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0x04,0xad,0xff,0xff, +0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x75,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07, +0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x31,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e, +0x00,0x26,0x09,0x17,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x1d,0x01,0x1d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x4f,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e, +0x04,0x07,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0x07,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57, +0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x04,0x07,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x03,0x0f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce, +0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4,0x03,0x0f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x05,0xf4, +0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00, +0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x05,0xca,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x07,0x4b,0x05,0xca,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e,0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x05,0xf5, +0x05,0xec,0x02,0x26,0x09,0x1d,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xa7,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xe4,0x04,0xdf,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x42,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x7a, +0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x00,0x36,0x00,0x4a,0x00,0x4c, +0xbc,0x00,0x23,0x05,0x0a,0x00,0x37,0x00,0x43,0x05,0x0a,0xb6,0x16,0x37,0x16,0x37,0x16,0x4c,0x03,0xb8,0x05,0x0a,0xb4,0x33,0x48,0x10,0x10,0x0d,0xb8,0x04,0xfb,0xb4,0x2a,0x00,0x00,0x1b,0x2a,0xba,0x05,0x03,0x00,0x3e,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x32,0x01,0x2f, +0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x36,0x36,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c, +0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60,0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26, +0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x05,0x24,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7,0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c, +0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x0e,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8, +0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, +0x07,0x4b,0x06,0x3c,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0xd5, +0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x04,0x79,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x4b,0x05,0x91,0x02,0x26,0x09,0x7c,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0x00,0x01,0x00,0x19,0xff,0xea,0x08,0x3d,0x04,0x19,0x00,0x3f,0x00,0x41, +0xb9,0x00,0x2e,0x05,0x0a,0xb6,0x0f,0x0c,0x0c,0x0f,0x0f,0x41,0x23,0xbf,0x05,0x0a,0x00,0x18,0x00,0x07,0x04,0xfb,0x00,0x38,0x05,0x03,0x00,0x12,0x04,0xfb,0xb4,0x2f,0x29,0x01,0x29,0x1e,0xb8,0x04,0xfb,0xb3,0x2f,0x1d,0x01,0x1d,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x31, +0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc8,0xd8,0xdd,0x69,0xa5,0xf9,0xc5,0x9e,0x4b,0x03, +0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x18,0x4a,0x89,0x71,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x3a,0xb4,0xed,0xfe,0xdc,0xaa,0x46,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x02,0x04,0x08,0x06,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40, +0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2d,0x12,0x15,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x09,0x06,0x04,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x07,0x92,0x04,0x19,0x00,0x44,0x00,0x48,0xb9,0x00,0x29,0x05,0x0a,0xb3,0x1e,0x1e,0x45,0x34,0xb8,0x05,0x0a,0xb4, +0x15,0x12,0x12,0x15,0x3e,0xba,0x05,0x03,0x00,0x18,0x04,0xfb,0xb4,0x2f,0x2f,0x01,0x2f,0x24,0xb8,0x04,0xfb,0xb5,0x2f,0x23,0x01,0x23,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34, +0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e, +0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0d,0x1d,0x2e,0x20,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b, +0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x1c,0x41,0x40,0x3b,0x16,0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6, +0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed, +0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x07,0xcb,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9, +0x05,0xf4,0x05,0xec,0x02,0x26,0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6, +0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xc3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00, +0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xc3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39,0x07,0x13,0x00,0x0c,0xb5,0x02,0x03,0x20,0x28,0x01,0x28,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x07,0x38,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x07,0x38,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff, +0x00,0xab,0xff,0xea,0x06,0xa2,0x08,0xbd,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x45,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x08,0xbd,0x02,0x26, +0x08,0xed,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x30,0x01,0x20,0x30,0x01,0x30,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32, +0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x04,0xa5,0x07,0x67,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf9,0x07,0x67,0x02,0x26,0x08,0xee,0x00,0x00, +0x00,0x07,0x0f,0x50,0x00,0x9c,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x46,0x08,0x7f,0x02,0x26,0x09,0x25,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9a,0x08,0x7f,0x02,0x26,0x08,0xee,0x00,0x00, +0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x04,0x9e,0x05,0xec,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29,0x00,0x65,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x27,0x05,0x0c,0xb2,0x26,0x26,0x22,0xbb,0x05,0x0c,0x00,0x23, +0x00,0x1e,0x05,0x0c,0x40,0x0a,0x1f,0x0d,0x23,0x1f,0x1f,0x23,0x0d,0x03,0x2b,0x03,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x26,0x04,0xfb,0xb2,0x29,0x22,0x1e,0xb8,0x04,0xfb,0xb5,0x24,0x20,0x21,0x01,0x21,0x08,0xba,0x04,0xfb,0x00,0x15,0x05,0x03,0xb1,0x0e,0x00,0x00,0x2f,0x2f,0x3f,0xed,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0xed,0x01,0x2f,0xed, +0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67, +0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x01,0x9d,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0xab,0xc9,0xc9,0x02,0xec,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x03,0x7e,0xfc,0x6e,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfb,0xf0,0xbd,0xbd,0xbd,0xfe,0x2b,0xbd,0x00,0xff,0xff, +0xff,0xba,0xfd,0xc9,0x02,0x48,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x01,0xf9, +0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x0e,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0x00,0x9b,0xfe,0x55,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00, +0x01,0x56,0x00,0x27,0x0f,0x5b,0x01,0x9f,0x00,0x56,0x00,0x07,0x0f,0x50,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf9,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x04,0x74,0x02,0x26,0x09,0x5f, +0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x00,0x26,0x09,0x42,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff, +0x05,0x58,0x04,0xda,0x02,0x26,0x09,0x43,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x02,0x26,0x09,0x29, +0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00,0xfd,0xfe,0x03,0x4b,0x03,0x1c,0x00,0x2a,0x00,0x3f,0x00,0x62,0xb2,0x08,0x20,0x35,0xb8,0x05,0x0a,0xb2,0x09,0x16,0x20,0xb8,0x05,0x0a,0xb7,0x0e,0x3d,0x3d,0x0e,0x0e,0x3a,0x11,0x08,0xb8,0x04,0xfd,0xb3,0x0b,0x0b,0x03,0x11,0xb8,0x04,0xfb,0x40,0x09,0x3d,0x2f,0x3a,0x3f, +0x3a,0x02,0x3a,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x2a,0x1f,0x27,0x2f,0x27,0x02,0x27,0x30,0xb8,0x04,0xfb,0xb3,0x2f,0x1b,0x01,0x1b,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0x33,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e, +0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x67,0xab,0x45,0x3e,0x60,0x48,0x33,0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x2f,0x58, +0x29,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0x13,0x2c,0x49,0x6e,0x96,0x62,0x58,0xad,0x58,0x02,0x98,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0xfe,0xfa,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11,0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d, +0x4f,0x9e,0xee,0x9f,0x51,0xa2,0x96,0x83,0x61,0x37,0x2c,0x2a,0x03,0x34,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x63,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x59,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x05,0x31,0x02,0x26,0x09,0x29,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x38,0x01,0x38,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, +0xfd,0xff,0x03,0x49,0x05,0x91,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0x00,0x01,0x00,0x32,0xff,0x55,0x06,0x3d,0x04,0x15,0x00,0x37,0x00,0x3a,0xb2,0x0b,0x05,0x31,0xbb,0x05,0x0a,0x00,0x18,0x00,0x2a,0x05,0x0a,0x40,0x09,0x1f,0x25,0x18,0x1f,0x18,0x1f,0x39,0x08,0x0e,0xbd,0x05,0x0a,0x00,0x05,0x00, +0x00,0x04,0xfb,0x00,0x13,0x04,0xe6,0x00,0x3f,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e, +0x04,0x15,0x14,0x0e,0x04,0x03,0x48,0x91,0xc4,0x78,0x34,0x0e,0x0e,0xfe,0xcf,0x01,0xeb,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xab,0x4c,0x81,0xad,0x60,0x38,0x72,0x39,0x39,0x72,0x61,0x58,0xaf,0x55, +0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x00,0x00,0x01,0x00,0x1e,0xff,0x02,0x07,0x58,0x02,0x13,0x00,0x44,0x00,0x5a,0xb3,0x26,0x14,0x20,0x38,0xb8,0x05,0x0a,0xb2,0x0f, +0x0f,0x14,0xb8,0x05,0x0a,0xb3,0x33,0x33,0x46,0x29,0xb8,0x05,0x0a,0x40,0x09,0x20,0x23,0x23,0x20,0x26,0x3d,0x23,0x23,0x0c,0xb8,0x04,0xff,0xb4,0x2f,0x3d,0x01,0x3d,0x1b,0xb8,0x04,0xfb,0xb4,0x2f,0x2e,0x01,0x2e,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f, +0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x07,0x58,0x16,0x43,0x67,0x4f,0x3b,0x2e,0x25,0x12,0x17,0x29,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x97,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3,0x0e,0x12,0x23,0x5d,0xa0,0x7d,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x19,0x2c,0x40, +0x66,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x27,0x60,0x54,0x39,0xff,0xff,0x00,0x9a, +0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6d, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x49,0x04,0x79,0x02,0x26,0x09,0x29,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x52,0x02,0x01,0xfd,0xce,0xff,0xff, +0x00,0x9a,0xfd,0xc4,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0x00,0x08,0xb3,0x02,0x4a,0x14,0x26,0x00,0x2b,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc9,0x05,0x91,0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x00,0x07,0x0f,0x54,0x02,0x01,0xfd,0xce,0xff,0xff,0x00,0x9a,0xfd,0xc4, +0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc8,0xfd,0xc9,0x00,0x04,0xff,0xa8,0x06,0x1d,0x02,0x5f,0x08,0xde,0x00,0x46,0x00,0x56,0x00,0x5a,0x00,0x5e,0x00,0x7a,0xb9,0x00,0x5c,0x05,0x0d,0xb2,0x5b,0x5b,0x0e,0xb8,0x05,0x0d,0xb5,0x47,0x29,0x29,0x47,0x18,0x3f,0xbe,0x05,0x0d,0x00,0x3c,0x00,0x23, +0x05,0x0d,0x00,0x32,0x00,0x57,0x05,0x0d,0xb2,0x58,0x58,0x51,0xb8,0x05,0x0d,0xb6,0x03,0x5d,0x5a,0x5b,0x57,0x3e,0x08,0xb8,0x05,0x01,0x40,0x0a,0x4c,0x43,0x18,0x13,0x54,0x46,0x46,0x37,0x37,0x43,0xb8,0x05,0x01,0xb4,0x13,0x1b,0x1b,0x13,0x26,0xb9,0x05,0x01,0x00,0x2d,0x00,0x2f,0xfd,0xce,0x32,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f, +0x32,0x11,0x39,0x10,0xd4,0xfd,0xcc,0xde,0x32,0xcd,0x32,0x01,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x32,0x17,0x37,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x98,0x32,0x23,0x14,0x25,0x32, +0x1e,0x1e,0x2f,0x19,0x11,0x1c,0x38,0x55,0x65,0x2e,0x17,0x27,0x30,0x0b,0x01,0x11,0x2c,0x16,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x40,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35,0x3b,0x16,0x1d,0x10,0x0e,0x0c,0x58,0x10,0x1a,0x1a,0x21,0x2d,0x14,0x6e,0x0a,0x11,0x16,0x0c,0x09,0x11,0x0d,0x09,0x25,0x36,0x09, +0x09,0x58,0x57,0x57,0x8f,0x57,0x57,0x07,0x2f,0x15,0x3a,0x1f,0x1b,0x36,0x2b,0x1c,0x1f,0x25,0x1a,0x46,0x2a,0x3b,0x3f,0x1e,0x05,0x17,0x15,0x19,0x12,0x01,0x0f,0x12,0x19,0x10,0x09,0x06,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x08,0x17,0x15,0x01,0x76,0xfe,0xa0,0x2f,0x22,0x01,0x40,0x10,0x24,0x1f,0x15,0x0c, +0x12,0x17,0x0c,0x14,0x29,0x18,0x06,0x1b,0x01,0x06,0x56,0x56,0x56,0x00,0x00,0x02,0xff,0xb7,0x06,0x71,0x02,0x28,0x08,0x06,0x00,0x1f,0x00,0x2f,0x00,0x35,0xb9,0x00,0x12,0x05,0x0d,0xb6,0x26,0x1a,0x20,0x08,0x03,0x17,0x0d,0xb8,0x05,0x01,0xb2,0x2b,0x13,0x23,0xbb,0x05,0x01,0x00,0x17,0x00,0x03,0x05,0x01,0xb3,0x1f,0x1f,0x1d,0x17, +0x00,0x2f,0x33,0x33,0x2f,0xed,0x10,0xfd,0x32,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x31,0x30,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x49,0x0e,0x1c,0x0b, +0x26,0x30,0x21,0x16,0x0d,0x0a,0x1f,0x30,0x45,0x32,0x37,0x50,0x33,0x18,0x19,0x32,0x4a,0x31,0x3f,0x67,0x24,0x20,0x57,0x31,0x16,0x16,0xfa,0x18,0x53,0x31,0x36,0x3e,0x0f,0x1f,0x2f,0x20,0x1d,0x2e,0x24,0x1a,0x06,0xdc,0x02,0x02,0x11,0x21,0x30,0x1e,0x19,0x3d,0x35,0x23,0x2c,0x43,0x4e,0x21,0x23,0x41,0x34,0x1f,0x32,0x23,0x30,0x25, +0x03,0x9e,0x1d,0x1e,0x26,0x26,0x12,0x2c,0x26,0x19,0x16,0x26,0x34,0x00,0x00,0x02,0x00,0x37,0x06,0x1e,0x01,0x9b,0x08,0x4e,0x00,0x2b,0x00,0x2f,0x00,0x39,0xb1,0x19,0x2c,0xb8,0x05,0x0d,0xb2,0x2d,0x20,0x05,0xb8,0x05,0x0e,0xb4,0x13,0x2b,0x18,0x0e,0x24,0xb8,0x04,0xfd,0xb2,0x1e,0x00,0x2f,0xbc,0x04,0xfd,0x00,0x2c,0x00,0x08,0x05, +0x01,0x00,0x0e,0x00,0x2f,0xfd,0xde,0xfd,0xd6,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x03,0x23,0x35,0x33,0x01,0x86, +0x49,0x62,0x3c,0x19,0x3b,0x46,0x46,0x4e,0x29,0x48,0x23,0x38,0x4f,0x32,0x17,0x14,0x37,0x5f,0x4b,0x12,0x1d,0x1e,0x25,0x1b,0x35,0x23,0x14,0x2d,0x1a,0x1c,0x2b,0x24,0x20,0x24,0x2a,0x1d,0x50,0x57,0x57,0x07,0x93,0x12,0x29,0x2d,0x31,0x1a,0x29,0x38,0x1a,0x61,0x0e,0x0c,0x1e,0x33,0x42,0x23,0x1f,0x42,0x3f,0x39,0x17,0x03,0x06,0x0e, +0x0c,0x08,0x0d,0x5f,0x06,0x07,0x0a,0x0f,0x13,0x10,0x0b,0x01,0xfe,0xc7,0x56,0x00,0x00,0x03,0x00,0x1d,0x06,0x70,0x01,0xec,0x08,0x17,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0xbf,0x00,0x09,0x05,0x0a,0x00,0x08,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x0b,0x04,0xff,0xb5,0x20,0x08,0x01,0x08,0x06,0x03,0xb8,0x04,0xff,0xb1,0x04,0x00, +0x00,0x2f,0x32,0xfd,0x32,0xde,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbf,0xa2,0xa2,0x01,0x2d,0xa1,0xa1,0x96,0xa2,0xa2,0x06,0x70,0x9e,0x9e,0x9e,0x6b,0x9e,0x00,0x01,0xff,0x2b,0x06,0x1f,0x02,0xae,0x08,0x2f,0x00,0x43,0x00,0x60,0xb4,0x28,0x28,0x00,0x00,0x03, +0xb8,0x05,0x0d,0xb2,0x40,0x21,0x0b,0xb8,0x05,0x0d,0xb6,0x08,0x40,0x08,0x40,0x08,0x18,0x38,0xbb,0x05,0x0d,0x00,0x32,0x00,0x18,0x05,0x0d,0x40,0x0b,0x15,0x21,0x28,0x10,0x1d,0x17,0x0a,0x0a,0x00,0x05,0x10,0xb8,0x05,0x01,0xb3,0x24,0x1d,0x35,0x3b,0xb9,0x04,0xfd,0x00,0x2d,0x00,0x2f,0xfd,0xc6,0xd4,0x32,0xfd,0x32,0xc4,0x32,0x11, +0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x32,0x2f,0x31,0x30,0x13,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32, +0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x07,0xbc,0x1a,0x2c,0x17,0x34,0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43, +0x2f,0x00,0x00,0x04,0x00,0x2d,0xfe,0xd2,0x08,0xcf,0x06,0x97,0x00,0x20,0x00,0x48,0x00,0x5c,0x00,0x70,0x00,0x31,0x40,0x16,0x18,0x6c,0x6c,0x15,0x3d,0x62,0x62,0x38,0x42,0x1b,0x15,0x08,0x4e,0x4e,0x0d,0x29,0x58,0x58,0x2e,0x24,0x03,0x0d,0x00,0x2f,0x33,0xcd,0x32,0x32,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x2f,0x33,0xcd,0x32,0x32,0x2f, +0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x25,0x06,0x04,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x24,0x27,0x24,0x11,0x10,0x25,0x36,0x25,0x36,0x36,0x33,0x32,0x16,0x17,0x04,0x17,0x04,0x11,0x10,0x05,0x16,0x04,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x24,0x37,0x36,0x12,0x35,0x10,0x25,0x26,0x25,0x0e,0x03,0x23,0x22,0x2e,0x02, +0x27,0x06,0x04,0x07,0x04,0x11,0x10,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0xa1,0x7c,0xfe,0xcc,0xbe,0x08,0x22,0x2f,0x3a,0x20,0x20,0x3a,0x2f,0x22,0x08,0xfe,0x82,0xf7,0xfe,0xd5,0x01,0x2e,0xf1,0x01, +0x83,0x12,0x60,0x3f,0x3e,0x5f,0x13,0x01,0x7a,0xf9,0x01,0x2c,0xf8,0xe8,0x6d,0x01,0x09,0xa1,0x09,0x22,0x2e,0x39,0x20,0x1f,0x3a,0x2e,0x22,0x09,0xa4,0x01,0x0a,0x6a,0x86,0x81,0xfe,0xfd,0xce,0xfe,0xb4,0x07,0x21,0x30,0x3b,0x21,0x21,0x3a,0x30,0x22,0x07,0x9f,0xfe,0xf9,0x6a,0xfe,0xef,0x03,0x5b,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, +0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x41,0x61,0x72,0x13,0x1e,0x32,0x24,0x15,0x15,0x24,0x32,0x1d,0x24,0xc1,0xed,0x01,0x7c,0x01,0x96,0xf1,0xc1,0x27,0x38,0x48,0x47,0x37,0x21,0xc4,0xec,0xfe,0x83,0xfe,0x65,0xa5,0x55,0x63,0x11,0x1c,0x31, +0x23,0x14,0x14,0x23,0x31,0x1c,0x11,0x5e,0x50,0x66,0x01,0x16,0xb7,0x01,0x72,0xc9,0x9f,0x23,0x1f,0x34,0x26,0x15,0x15,0x25,0x33,0x1e,0x11,0x65,0x53,0xd4,0xfe,0xa6,0xfe,0xa6,0xfe,0x2f,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x06,0x38,0x19,0x2d,0x21,0x13,0x13,0x21,0x2d,0x19,0x19,0x2d,0x21, +0x13,0x13,0x21,0x2d,0x00,0x0a,0x01,0x46,0xfe,0xa4,0x07,0x66,0x06,0xc8,0x00,0x17,0x00,0x2b,0x00,0x34,0x00,0x3d,0x00,0x45,0x00,0x52,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x0c,0xb3,0x3d,0x12,0x31,0x06,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x34,0x3e,0x02,0x37,0x01,0x01,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x01, +0x2e,0x03,0x25,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x32,0x16,0x17,0x13,0x27,0x07,0x13,0x36,0x01,0x03,0x06,0x06,0x23,0x22,0x27,0x03,0x17,0x13,0x16,0x16,0x17,0x25,0x26,0x26,0x27,0x01,0x14,0x16,0x17,0x25,0x26,0x26,0x35,0x34,0x37,0x25,0x06,0x06,0x05,0x14,0x06,0x07,0x05,0x36,0x35, +0x34,0x26,0x27,0x05,0x16,0x01,0x26,0x26,0x27,0x05,0x16,0x16,0x17,0x01,0x06,0x06,0x07,0x13,0x36,0x36,0x37,0x01,0x36,0x36,0x37,0x03,0x06,0x06,0x07,0x01,0x46,0x42,0x78,0xa7,0x65,0x01,0x4a,0x01,0x4a,0x65,0xa7,0x78,0x42,0x43,0x78,0xa7,0x64,0xfe,0xb6,0xfe,0xb4,0x64,0xa6,0x78,0x42,0x01,0xf5,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d, +0x2c,0x2c,0x4d,0x67,0x3b,0x3b,0x67,0x4d,0x2c,0x01,0x1b,0x20,0x3e,0x1d,0x72,0xed,0xee,0x73,0x3c,0x01,0x2c,0x73,0x1d,0x3d,0x20,0x41,0x3a,0x72,0xed,0xb3,0x38,0x58,0x1d,0x01,0x06,0x33,0xa7,0x6c,0xfc,0x3a,0x14,0x14,0x01,0x05,0x09,0x0a,0x14,0xfe,0xfa,0x14,0x14,0x04,0x32,0x0b,0x09,0x01,0x05,0x29,0x14,0x14,0xfe,0xfa,0x14,0xfd, +0xc0,0x38,0x58,0x1d,0xfe,0xfb,0x33,0xa7,0x6c,0x02,0x80,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0xfc,0x3a,0x1d,0x58,0x38,0x6c,0x6b,0xa8,0x33,0x02,0xb6,0x76,0xda,0xb8,0x91,0x2f,0x01,0x4a,0xfe,0xb5,0x2f,0x91,0xb8,0xd9,0x76,0x76,0xd9,0xb8,0x92,0x2e,0xfe,0xb5,0x01,0x4c,0x2e,0x91,0xb8,0xd9,0x76,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67, +0x3b,0x3b,0x67,0x4d,0x2c,0x2c,0x4d,0x67,0x01,0x51,0x0b,0x09,0x01,0x16,0xee,0xee,0xfe,0xea,0x14,0xfb,0xe5,0x01,0x16,0x09,0x0a,0x14,0xfe,0xe9,0xed,0x04,0xdc,0x1d,0x58,0x38,0x6d,0x6c,0xa7,0x33,0xfd,0x9a,0x3d,0x74,0x36,0x6c,0x1d,0x3e,0x20,0x3f,0x3c,0x6c,0x36,0x74,0x3d,0x20,0x3e,0x1d,0x6c,0x6d,0x7a,0x3d,0x74,0x36,0x6d,0x3a, +0xfe,0x5f,0x1d,0x58,0x38,0x6c,0x6c,0xa7,0x33,0x01,0xb2,0x38,0x58,0x1d,0xfe,0xfc,0x33,0xa6,0x6c,0x01,0xd3,0x38,0x58,0x1d,0x01,0x05,0x33,0xa7,0x6b,0x00,0x00,0x02,0x00,0x63,0x06,0x8f,0x01,0xa4,0x07,0xd0,0x00,0x0b,0x00,0x17,0x00,0x26,0x41,0x0c,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00, +0x00,0x12,0x00,0x0c,0x05,0x00,0x00,0x06,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x05,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x07,0xd0,0x5d, +0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x02,0x00,0x63,0x06,0x7b,0x01,0xa4,0x08,0x1c,0x00,0x0b,0x00,0x19,0x00,0x24,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x00,0x05,0x00,0xb2,0x12,0x0c,0x06,0xb8,0x01,0x4c,0x00,0x3f,0xdd,0xd6,0xed,0x01,0x2f,0xed, +0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x01,0x02,0x4b,0x57,0x53,0x4f,0x4c,0x53,0x54,0x4e,0x30,0x21,0x22,0x2f,0x30,0x24,0x08,0x14,0x20,0x08,0x1c,0x67,0x69,0x66,0x6b,0x69,0x67,0x6a,0x67,0xfe,0xaa,0x3b,0x49,0x4b,0x3c, +0x3b,0x4b,0x25,0x33,0x1f,0x0e,0x00,0x01,0x00,0x23,0x06,0x71,0x01,0xe3,0x07,0xb8,0x00,0x20,0x00,0x1d,0xb4,0x0b,0x12,0x1b,0x04,0x16,0xbc,0x04,0xfd,0x00,0x10,0x00,0x07,0x05,0x01,0x00,0x00,0x00,0x2f,0xfd,0xd6,0xed,0x01,0x2f,0xc4,0x39,0x39,0x31,0x30,0x13,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x36,0x37,0x35,0x2e,0x03,0x23, +0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x07,0x0e,0x03,0x5f,0x0d,0x15,0x0d,0x0d,0x0e,0x1c,0x0d,0x54,0x90,0x39,0x12,0x1f,0x22,0x29,0x1d,0x32,0x24,0x13,0x2e,0x18,0x2b,0x3c,0x36,0x3b,0x2a,0x12,0x15,0x43,0x5c,0x76,0x06,0x71,0x01,0x02,0x67,0x02,0x02,0x34,0x23,0x03,0x06,0x0e,0x0c,0x08,0x0d,0x5f,0x06,0x07,0x16,0x1a, +0x17,0x01,0x73,0x09,0x2e,0x30,0x25,0x00,0x00,0x02,0x00,0x16,0x06,0x1f,0x02,0x28,0x08,0x5e,0x00,0x20,0x00,0x30,0x00,0x40,0xb3,0x06,0x2c,0x03,0x10,0xb8,0x05,0x0d,0xb3,0x24,0x20,0x20,0x1d,0xb8,0x05,0x0d,0x40,0x0a,0x03,0x00,0x00,0x03,0x1a,0x06,0x2c,0x03,0x15,0x0b,0xbb,0x05,0x01,0x00,0x29,0x00,0x21,0x05,0x01,0xb1,0x15,0x20, +0x00,0x2f,0xd6,0xfd,0xd6,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e, +0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44,0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0x06,0x1f,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c, +0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b,0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0x00,0x01,0xff,0x2b,0xfd,0xf5,0x02,0xae,0x00,0x05,0x00,0x43,0x00,0x66,0xb9,0x00,0x18,0x05,0x0d,0xb2,0x15,0x21,0x0b,0xb8,0x05,0x0d,0xb5,0x08,0x28,0x28,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x0a,0x40,0x15,0x08,0x40,0x40,0x08, +0x15,0x03,0x17,0x38,0xb8,0x05,0x0d,0xb4,0x32,0x17,0x38,0x32,0x2d,0xb8,0x04,0xfd,0xb4,0x3b,0x21,0x28,0x24,0x1d,0xb8,0x04,0xfd,0xb6,0x05,0x10,0x16,0x09,0x09,0x35,0x00,0x00,0x2f,0x32,0x32,0x11,0x33,0xd4,0x32,0xed,0x32,0x39,0x39,0xd4,0xed,0x2f,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x32, +0x2f,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x17,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e, +0x02,0x35,0x34,0x26,0x27,0xe0,0x03,0x05,0x02,0x03,0x3f,0x1d,0x26,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x59,0x1b,0x2b,0x38,0x1d,0x29,0x3e,0x11,0x01,0x14,0x3a,0x1a,0x1a,0x21,0x0a,0x02,0x02,0x19,0x37,0x56,0x3e,0x3f,0x54,0x32,0x15,0x0d,0x56,0x05,0x05,0x3b,0x44,0x28,0x38,0x23,0x10,0x07,0x07,0x6e,0x1a,0x2c,0x17,0x34, +0x1e,0x2d,0x6d,0x50,0x1b,0x28,0x19,0x0c,0x06,0x11,0x1e,0x17,0xb8,0xd2,0x2d,0x3a,0x21,0x0c,0x17,0x1d,0x1e,0x16,0x0f,0x0e,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x33,0x3b,0x1b,0x29,0x16,0x41,0x35,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x00,0x01,0xff,0xc9,0x06,0x71,0x02,0x3c,0x07,0x26,0x00,0x1b,0x00,0x28,0x40,0x0a,0x00,0x0e, +0x0e,0x0d,0x0d,0x05,0x00,0x1b,0x1b,0x13,0xbc,0x05,0x01,0x00,0x0a,0x00,0x18,0x05,0x01,0x00,0x05,0x00,0x2f,0xed,0xdc,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3c,0x18,0x2e,0x2a,0x26, +0x10,0x30,0x4b,0x45,0x46,0x29,0x20,0x2d,0x17,0x3a,0x18,0x2d,0x2a,0x26,0x11,0x30,0x4c,0x45,0x44,0x29,0x21,0x2d,0x17,0x06,0xbf,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x15,0x14,0x41,0x19,0x1f,0x10,0x06,0x19,0x1d,0x19,0x13,0x16,0x00,0x02,0x00,0x4d,0x06,0x1f,0x01,0xb8,0x08,0x29,0x00,0x22,0x00,0x32,0x00,0x39,0xb1,0x13,0x2d,0xb8, +0x05,0x0d,0xb4,0x0f,0x0f,0x33,0x23,0x1a,0xb8,0x05,0x0d,0xb2,0x08,0x03,0x14,0xb8,0x05,0x01,0xb2,0x28,0x08,0x30,0xbc,0x04,0xfd,0x00,0x0a,0x00,0x03,0x04,0xfd,0x00,0x1f,0x00,0x2f,0xfd,0xde,0xfd,0x39,0xde,0xed,0x01,0x2f,0x2f,0xed,0x33,0x11,0x33,0x2f,0xed,0x32,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x4d,0x2c,0x45,0x21,0x29,0x32,0x1b,0x0a,0x01,0x21,0x28,0x1e,0x36,0x29,0x18,0x16,0x27,0x36,0x20,0x22,0x34,0x1a,0x1a,0x19,0x17,0x31,0x4f,0x38,0x26,0x49, +0x2d,0x01,0x13,0x0c,0x15,0x1b,0x0f,0x0b,0x16,0x11,0x0b,0x2f,0x1c,0x10,0x1f,0x06,0x9c,0x11,0x0c,0x14,0x1f,0x28,0x14,0x0c,0x12,0x23,0x35,0x23,0x1e,0x42,0x36,0x24,0x25,0x25,0x26,0x69,0x3b,0x30,0x59,0x44,0x29,0x0e,0x11,0x01,0x0d,0x0d,0x2b,0x28,0x1d,0x0e,0x16,0x1c,0x0d,0x1d,0x1f,0x04,0xff,0xff,0x00,0x21,0x06,0x70,0x03,0x36, +0x08,0x35,0x00,0x07,0x0a,0x1e,0x00,0x9f,0x00,0x00,0x00,0x01,0xff,0x82,0x06,0x70,0x02,0x97,0x08,0x35,0x00,0x23,0x00,0x1b,0xb9,0x00,0x08,0x05,0x0d,0xb4,0x1b,0x00,0x23,0x23,0x0b,0xb9,0x05,0x01,0x00,0x16,0x00,0x2f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02, +0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x37,0x01,0x02,0x20,0x38,0x33,0x31,0x19,0x2d,0x23,0x81,0x8b,0x38,0x77,0x72,0x66,0x27,0x34,0x7a,0x78,0x6c,0x27,0x63,0x86,0x51,0x22,0x13,0x23,0x2f,0x1b,0x2a,0x68,0x31,0x07,0xe3,0x1a,0x28,0x20,0x1b,0x0d,0x17,0x19,0x12,0x25,0x1b,0x04,0x06,0x08,0x05, +0x65,0x06,0x09,0x07,0x03,0x15,0x29,0x3a,0x25,0x1e,0x2e,0x27,0x21,0x11,0x19,0x40,0x2a,0x00,0x00,0x02,0x00,0x32,0x06,0x71,0x01,0xd4,0x08,0x8c,0x00,0x1e,0x00,0x22,0x00,0x31,0xbc,0x00,0x1f,0x05,0x0b,0x00,0x20,0x00,0x03,0x05,0x0d,0xb3,0x1b,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb5,0x0d,0x22,0x1f,0x1e,0x11,0x16,0xb9,0x05,0x01,0x00, +0x08,0x00,0x2f,0xfd,0xc6,0xd6,0xd6,0xcd,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06, +0x05,0x58,0x09,0x31,0x3b,0x23,0x31,0x20,0x0e,0x07,0x06,0x31,0x73,0x73,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x35,0x2a,0x0f,0x22,0x37,0x27,0x1a,0x3d,0x26,0x38,0x71,0x00,0x00,0x04,0x00,0x64,0xff,0xe0,0x04,0x68,0x06,0xb4,0x00,0x17,0x00,0x2e,0x00,0x45,0x00,0x5b,0x00,0x14, +0xb7,0x3a,0x23,0x0b,0x52,0x45,0x18,0x17,0x46,0x00,0x2f,0xcd,0xde,0xcd,0x2f,0x33,0xce,0x32,0x30,0x31,0x01,0x26,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x07,0x11,0x21,0x37,0x11,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x06,0x06, +0x07,0x11,0x27,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x17,0x11,0x07,0x21,0x11,0x36,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x01,0x18,0x41,0x2b,0x23,0x25,0x13,0x24,0x33,0x21,0x01,0x77,0x01,0x75,0x40,0x4d,0x22, +0x23,0x15,0x37,0x23,0xfd,0x64,0xbe,0x34,0x40,0x14,0x16,0x16,0x2a,0x26,0xf4,0xf2,0x24,0x2e,0x17,0x15,0x17,0x44,0x2d,0x44,0x39,0x4c,0x11,0x0e,0x10,0x21,0x19,0xc6,0xc6,0x1c,0x1e,0x0f,0x0e,0x0e,0x4a,0x3f,0x9a,0x01,0xcc,0x33,0x3f,0x0e,0x1a,0x1a,0x3c,0x33,0xfe,0xd5,0xfe,0xd3,0x33,0x3a,0x1c,0x1a,0x1e,0x60,0x02,0xa2,0x29,0x42, +0x35,0x7c,0x42,0x32,0x56,0x4d,0x45,0x21,0x01,0x79,0xfe,0x8b,0x41,0x9f,0x60,0x41,0x7b,0x35,0x20,0x37,0x15,0xfd,0x3e,0xbe,0x02,0x6c,0x15,0x2f,0x19,0x1c,0x4e,0x2d,0x3c,0x5b,0x26,0xf5,0xf2,0x24,0x5e,0x40,0x2d,0x4c,0x1b,0x1d,0x2f,0x14,0xfd,0x96,0x44,0x02,0x52,0x1a,0x2d,0x16,0x12,0x37,0x22,0x30,0x45,0x19,0xc6,0xc8,0x1d,0x41, +0x2c,0x21,0x39,0x12,0x13,0x33,0x14,0xfd,0xaa,0x9a,0x02,0x95,0x1e,0x35,0x17,0x28,0x5e,0x32,0x49,0x7f,0x33,0x01,0x2b,0xfe,0xd2,0x34,0x76,0x4d,0x33,0x60,0x27,0x2e,0x3d,0x00,0x00,0x02,0x00,0x10,0xfd,0xda,0x01,0xf7,0xff,0xc1,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x14,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01, +0x2f,0x03,0x01,0x03,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0x2f,0x5d,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0xfe,0xcd,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02,0x00,0x10,0x06,0x35,0x01,0xf7,0x08,0x1c,0x00,0x03, +0x00,0x07,0x00,0x22,0x40,0x0e,0x00,0x07,0x07,0x05,0x05,0x06,0x01,0x04,0x03,0x02,0x02,0x01,0x03,0x01,0x00,0x2f,0x2f,0x12,0x39,0x3d,0x2f,0x12,0x39,0x12,0x39,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x13,0x37,0x17,0x07,0x35,0x37,0x27,0x07,0x10,0xf4,0xf3,0xf4,0x8a,0x89,0x8a,0x07,0x28,0xf4,0xf4,0xf3,0x6a,0x89,0x89,0x89,0x00,0x02, +0x00,0x16,0xfd,0xf5,0x02,0x28,0x00,0x34,0x00,0x20,0x00,0x30,0x00,0x40,0xb9,0x00,0x10,0x05,0x0d,0xb5,0x24,0x20,0x20,0x06,0x06,0x1d,0xb8,0x05,0x0d,0x40,0x09,0x03,0x00,0x00,0x03,0x1a,0x2c,0x0b,0x20,0x15,0xbb,0x04,0xfd,0x00,0x21,0x00,0x29,0x04,0xfd,0xb3,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xfd,0xd6,0xed,0x32,0x11,0x39,0x39, +0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x2f,0xed,0x31,0x30,0x13,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x13,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x1e,0x04,0x04,0x31,0x2b,0x12,0x41,0x48,0x44, +0x15,0x33,0x4a,0x2f,0x16,0x16,0x2a,0x3f,0x29,0x1a,0x35,0x31,0x2e,0x13,0x2b,0x24,0x04,0x05,0xfa,0x27,0x34,0x0d,0x1b,0x2b,0x1e,0x35,0x50,0x14,0x16,0x2c,0x2b,0x2b,0xfd,0xf5,0x1a,0x31,0x14,0x44,0x61,0x17,0x65,0x74,0x3b,0x10,0x2c,0x44,0x4f,0x23,0x24,0x40,0x30,0x1d,0x0b,0x0c,0x0b,0x3a,0x34,0x14,0x32,0x1a,0x01,0x12,0x1e,0x2b, +0x13,0x2d,0x26,0x19,0x56,0x58,0x01,0x09,0x09,0x07,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x46,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4, +0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0xf7,0x04,0xb2,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x27,0x0f,0x50,0x06,0x3c,0xfe,0xab,0x00,0x07,0x0f,0x50,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x07,0x4b,0x04,0xb2,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e, +0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0x8f,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0xe4,0x04,0xdf,0x00,0x07,0x0f,0x50,0x01,0x8f,0xff,0xb1,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x05,0x2a,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, +0x04,0x7a,0x00,0x07,0x0f,0x50,0x01,0x56,0xff,0x57,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x1d,0x04,0x34,0x00,0x07,0x0f,0x50,0x01,0x1d,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x56, +0x04,0x02,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0xff,0xff,0x00,0x5a,0xfd,0xff,0x02,0xe5,0x02,0xb4,0x02,0x26,0x09,0x07,0x00,0x00,0x00,0x07,0x0f,0x5d,0x00,0xab,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x5d,0x01,0x99,0x00,0x00,0xff,0xff,0xff,0xc2,0xff,0xea, +0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc2,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x01,0x07, +0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x02,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x34,0xfd,0xfe,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac, +0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x03,0xf3,0x05,0xec,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x3a,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00, +0x00,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xc5,0x08,0x0e,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x9d,0x00,0x32,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0xfa,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x07,0x67,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x9d,0x06,0xb7,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x9b,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, +0x00,0x52,0xff,0xea,0x04,0xad,0x08,0x7f,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x01,0x07,0x0f,0x53,0x02,0x9d,0x06,0xb7,0x00,0x0e,0xb6,0x04,0x03,0x02,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x9b,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27, +0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x9d,0xfd,0xce,0x00,0x01,0x00,0x65,0x00,0x00,0x03,0xf8,0x05,0xa8,0x00,0x2b,0x00,0x40,0xb4,0x04,0x03,0x15, +0x2d,0x1d,0xb8,0x05,0x0a,0xb2,0x0e,0x0e,0x14,0xb8,0x05,0x0a,0xb6,0x15,0x27,0x22,0x04,0x04,0x14,0x09,0xb8,0x04,0xfb,0xb7,0x22,0x00,0x00,0x2f,0x22,0x01,0x22,0x14,0xb8,0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0xed,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x06,0x02,0x07, +0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x16,0x12,0x15,0x11,0x23,0x11,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0xf8,0x48,0x6d,0x23,0x9a,0x11,0x38,0x4a,0x5b,0x33,0x1d,0x25,0x14,0x07,0x18,0x1e,0x18,0x9c,0x0d,0x12,0x17,0x12,0x0d,0x21,0x41,0x5f,0x3f,0x46,0x75,0x5c,0x3f, +0x0f,0x05,0x1a,0x43,0x26,0x05,0x9a,0x6f,0xfe,0xfe,0x95,0x4a,0x83,0x62,0x39,0x11,0x1b,0x23,0x11,0x1d,0x72,0xbe,0xfe,0xec,0xc0,0xfe,0x85,0x01,0x73,0x88,0xd5,0xa4,0x7a,0x5c,0x44,0x1c,0x39,0x5d,0x43,0x25,0x3c,0x5d,0x6e,0x33,0x56,0x94,0x42,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x03,0x81,0x05,0x9a,0x00,0x12,0x00,0x20,0xb9,0x00, +0x08,0x05,0x0a,0xb2,0x07,0x00,0x0f,0xba,0x04,0xfb,0x00,0x11,0x04,0xe6,0xb3,0x2f,0x08,0x01,0x08,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x37,0x3e,0x04,0x12,0x37,0x33,0x06,0x02,0x0e,0x03,0x07,0x21,0x15,0x21,0x52,0x31,0x53,0x45,0x36,0x27,0x19,0x05,0x9c,0x07,0x19,0x23,0x2d,0x37,0x41,0x25,0x02,0x5c,0xfc,0xd1, +0x42,0x5c,0xb1,0xba,0xcd,0xf3,0x01,0x20,0xb1,0xb4,0xfe,0xe2,0xe8,0xba,0xa2,0x92,0x4b,0xa7,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90, +0x06,0x03,0x00,0x01,0x00,0x00,0x01,0x87,0x02,0xfe,0x01,0xd9,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0xfe,0xfd,0x02,0x02,0xfe,0x01,0x87,0x52,0x00,0xff,0xff,0xff,0x97,0xff,0xea,0x03,0xf3,0x07,0x77,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00, +0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0x97,0xff,0xea,0x04,0xad,0x07,0x77,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x0f,0x58,0x00,0x8f,0x00,0x10,0x00,0x66,0x00,0x5a,0x04,0x5b,0x04,0x4e,0x00,0x07,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f, +0x00,0x37,0x00,0x3f,0x00,0x47,0x00,0x4f,0x00,0x57,0x00,0x5f,0x00,0x67,0x00,0x6f,0x00,0x77,0x00,0x7f,0x01,0x23,0xb9,0x00,0x18,0x05,0x0b,0xb2,0x1c,0x30,0x10,0xb8,0x05,0x0b,0xb4,0x34,0x14,0x14,0x40,0x00,0xb8,0x05,0x0b,0xb4,0x04,0x44,0x04,0x48,0x08,0xb8,0x05,0x0b,0xb4,0x0c,0x4c,0x0c,0x60,0x20,0xb8,0x05,0x0b,0xb4,0x24,0x64, +0x24,0x70,0x28,0xb8,0x05,0x0b,0xb4,0x2c,0x74,0x2c,0x78,0x38,0xb8,0x05,0x0b,0xb4,0x3c,0x7c,0x3c,0x68,0x50,0xb8,0x05,0x0b,0x40,0x14,0x54,0x6c,0x54,0x1c,0x04,0x0c,0x24,0x2c,0x3c,0x54,0x54,0x3c,0x2c,0x24,0x0c,0x04,0x1c,0x07,0x81,0x58,0xb8,0x05,0x0b,0xb2,0x5c,0x2a,0x0a,0xb8,0x04,0xfd,0xb4,0x0e,0x2e,0x0e,0x3a,0x02,0xb8,0x04, +0xfd,0xb4,0x06,0x3e,0x06,0x52,0x12,0xb8,0x04,0xfd,0xb4,0x16,0x56,0x16,0x5a,0x1a,0xb8,0x04,0xfd,0xb4,0x1e,0x5e,0x1e,0x6a,0x32,0xb8,0x04,0xfd,0xb4,0x36,0x6e,0x36,0x7a,0x42,0xb8,0x04,0xfd,0xb4,0x46,0x7e,0x46,0x72,0x4a,0xb8,0x04,0xfd,0x40,0x14,0x4e,0x76,0x4e,0x0e,0x06,0x16,0x1e,0x36,0x46,0x4e,0x4e,0x46,0x36,0x1e,0x16,0x06, +0x0e,0x07,0x26,0x62,0xbb,0x04,0xfd,0x00,0x66,0x00,0x22,0x04,0xfd,0xb3,0x3f,0x26,0x01,0x26,0x00,0x2f,0x5d,0xed,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32, +0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x23,0x22,0x35,0x34,0x33, +0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33, +0x32,0x07,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x07,0x16,0x23,0x22,0x35,0x34,0x33,0x32,0x01,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x25,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x13,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x27,0x14,0x23,0x22,0x35,0x34,0x33,0x32,0x03,0xd4,0x30,0x34,0x34,0x30,0x94, +0x30,0x34,0x34,0x30,0xf7,0x33,0x31,0x33,0x31,0x24,0x30,0x34,0x34,0x30,0xfe,0x37,0x32,0x32,0x32,0x32,0xad,0x33,0x31,0x31,0x33,0x02,0x52,0x33,0x31,0x31,0x33,0xfd,0x1a,0x32,0x32,0x32,0x32,0x02,0x83,0x30,0x34,0x34,0x30,0x94,0x30,0x34,0x34,0x30,0xfd,0xae,0x30,0x34,0x32,0x32,0x24,0x01,0x31,0x34,0x34,0x31,0x01,0xc7,0x32,0x32, +0x32,0x32,0xfe,0x5c,0x32,0x32,0x32,0x32,0xf7,0x33,0x31,0x31,0x33,0x94,0x32,0x32,0x32,0x32,0x03,0x96,0x32,0x32,0x32,0x30,0x31,0x31,0x33,0xfe,0xd7,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0x01,0x97,0x33,0x33,0x31,0x56,0x31,0x31,0x33,0xfd,0x7b,0x31,0x31,0x33,0x01,0xbd,0x32,0x2f,0x35,0xfd,0x48,0x31,0x31,0x33,0x95,0x30,0x30,0x34, +0x02,0x20,0x33,0x33,0x31,0xdf,0x32,0x32,0x32,0xfe,0x07,0x33,0x33,0x31,0xe8,0x31,0x31,0x33,0xfe,0xd9,0x34,0x30,0x34,0x2e,0x31,0x31,0x33,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x09,0x63,0x01,0xef,0x00,0x0f,0x00,0x10,0xb2,0x0e,0x0b,0x07,0xb9,0x04,0xfb,0x00,0x00,0x00,0x2f,0xfd,0xcd,0x33,0x30,0x31,0x05,0x21,0x22,0x26,0x27,0x27, +0x37,0x21,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x33,0x09,0x63,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0x66,0x20,0x23,0x9d,0x25,0x1e,0xe8,0x0e,0x0e,0x0f,0x85,0x05,0x5a,0xa8,0x54,0x5a,0xa3,0x59,0x00,0x01,0x00,0x73,0xff,0xf1,0x08,0x39,0x01,0x60,0x00,0x4d,0x00,0x22,0xb1,0x2e,0x3d,0xb8,0x04,0xfb,0xb5,0x1d,0x00,0x10,0x18,0x06, +0x22,0xb8,0x04,0xfb,0xb2,0x45,0x33,0x29,0x00,0x2f,0x33,0x33,0xfd,0x32,0x32,0xdc,0x32,0x32,0xed,0x32,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x1e,0x03,0x33,0x21,0x17,0x07,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23, +0x22,0x2e,0x02,0x27,0x2e,0x03,0x23,0x22,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x24,0x0a,0x0b,0x23,0x1b,0x16,0x2a,0x28,0x25,0x11,0x14,0x2e,0x34,0x3c,0x21,0x20,0x31,0x27,0x1f,0x0e,0x1e,0x30,0x22,0x12,0x29,0x2e,0x32,0x1a,0x36,0x74,0x87,0x9f,0x62,0x01,0x7a,0x05,0x1c,0x51,0xb2,0x55,0x35,0x60,0x8d, +0x71,0x60,0x33,0x20,0x3c,0x38,0x33,0x18,0x21,0x33,0x29,0x20,0x0f,0x12,0x1c,0x1a,0x1b,0x12,0x1d,0x34,0x1d,0x16,0x32,0x3d,0x4c,0x30,0x33,0x48,0x2d,0x15,0x13,0x0f,0x01,0x48,0x1e,0x3b,0x16,0x26,0x20,0x10,0x1b,0x21,0x11,0x13,0x28,0x20,0x15,0x15,0x20,0x29,0x13,0x2a,0x32,0x10,0x26,0x3e,0x2f,0x1d,0x39,0x2c,0x1b,0x05,0x85,0x0f, +0x0e,0x17,0x25,0x31,0x1b,0x2a,0x35,0x1d,0x0b,0x0f,0x1a,0x22,0x13,0x17,0x25,0x19,0x0e,0x28,0x1c,0x15,0x2d,0x25,0x18,0x1b,0x30,0x43,0x28,0x2a,0x52,0x25,0x00,0x02,0x00,0x49,0xff,0xf2,0x05,0xd0,0x02,0x6c,0x00,0x1c,0x00,0x2e,0x00,0x16,0xb9,0x00,0x15,0x04,0xfb,0xb2,0x22,0x2c,0x1c,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xfd,0x32, +0xdc,0xed,0x30,0x31,0x25,0x17,0x07,0x06,0x06,0x23,0x23,0x2a,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x05,0xcc,0x04,0x1c,0x51,0xb2,0x55,0x36,0x1c,0x5e,0x7b,0x95,0x52,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55, +0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2b,0x3f,0x53,0x34,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x52,0x99,0x06,0x84,0x0f,0x0e,0x05,0x2a,0x59,0x53,0x55,0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x02,0x00,0x73,0xff,0xed,0x0b,0xbf,0x02,0x6c,0x00,0x32, +0x00,0x46,0x00,0x1c,0xb9,0x00,0x18,0x04,0xfb,0xb4,0x3d,0x42,0x11,0x09,0x00,0xb8,0x04,0xfb,0xb1,0x22,0x2c,0x00,0x2f,0x33,0xfd,0xcc,0x33,0x33,0xdc,0xed,0x30,0x31,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x26,0x26,0x27, +0x23,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x27,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x07,0xab,0x2d,0x23,0x02,0x04,0x07,0x04,0x8a,0x0b,0x0e,0x04,0x03,0x0a,0x13,0x20,0x19,0x0f,0x2d,0x3d,0x4c,0x5b,0x6b,0x3d,0x45,0x65,0x43,0x20,0x36,0x78,0xc0,0x8a,0x7c,0xa4,0x24,0x11,0x21, +0x0b,0x02,0x1e,0x53,0x2d,0xfa,0x41,0x55,0xb2,0x51,0x1c,0x05,0x09,0xab,0x4e,0x65,0x3c,0x17,0x18,0x29,0x37,0x1f,0x35,0x59,0x46,0x33,0x0f,0x0d,0x30,0x32,0x2d,0x99,0x2f,0x2d,0x0a,0x1d,0x21,0x22,0x0f,0x2a,0x4e,0x14,0x0d,0x18,0x13,0x0d,0x02,0x2c,0x68,0x67,0x60,0x4a,0x2c,0x3a,0x64,0x87,0x4d,0x63,0x6d,0x33,0x0a,0x05,0x0e,0x06, +0x22,0x13,0x2a,0x1f,0x0e,0x0f,0x85,0x05,0x03,0x04,0x16,0x2f,0x2c,0x31,0x45,0x2d,0x15,0x36,0x55,0x6b,0x36,0x01,0x00,0x02,0x00,0x49,0xff,0xf0,0x08,0x3d,0x02,0x6c,0x00,0x1e,0x00,0x30,0x00,0x36,0xb4,0x1e,0x1f,0x1f,0x32,0x29,0xbb,0x05,0x0a,0x00,0x12,0x00,0x24,0x04,0xfb,0x40,0x0b,0x2f,0x17,0x01,0x17,0x2e,0x2e,0x1f,0x1f,0x1e, +0x1e,0x00,0xb9,0x04,0xfb,0x00,0x07,0x00,0x2f,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x10,0xcd,0x30,0x31,0x25,0x32,0x36,0x37,0x07,0x06,0x06,0x23,0x21,0x22,0x06,0x22,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x17,0x23,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x33,0x32,0x36,0x06,0xfe,0x51,0x9c,0x52,0x21,0x23,0x80,0x55,0xfd,0x63,0x5c,0x8c,0x80,0x82,0x53,0x82,0xc1,0x7f,0x3f,0x32,0x5a,0x7c,0x4a,0x3e,0x68,0x55,0x43,0x33,0x23,0x0b,0x9f,0x0b,0x2a,0x40,0x54,0x33,0x20,0x43,0x38,0x24,0x20,0x42,0x66,0x47,0x30,0x53,0x99,0x08,0x0a,0xa9,0x05,0x0b,0x01,0x01,0x07,0x2a,0x5a,0x52,0x55, +0x97,0x71,0x42,0x2d,0x4a,0x60,0x68,0x68,0x2c,0x36,0x6a,0x55,0x35,0x17,0x31,0x4c,0x35,0x24,0x28,0x13,0x03,0x01,0x00,0x01,0x00,0x46,0xfe,0xaa,0x02,0x1e,0x02,0x01,0x00,0x09,0x00,0x18,0x40,0x0a,0x00,0x06,0x06,0x0b,0x0a,0x09,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xcd,0x11,0x12,0x01,0x39,0x2f,0xcd,0x31,0x30,0x01,0x0e,0x03,0x07, +0x23,0x36,0x12,0x37,0x02,0x1e,0x2c,0x5a,0x56,0x51,0x23,0x88,0x46,0x9f,0x4f,0x02,0x01,0x5a,0xce,0xdb,0xe4,0x70,0xfb,0x01,0xb4,0xa8,0x00,0x02,0x00,0x32,0xfd,0xfe,0x04,0x2e,0x04,0x0c,0x00,0x45,0x00,0x58,0x00,0x6d,0xb2,0x45,0x26,0x13,0xb8,0x05,0x0a,0xb4,0x4b,0x4b,0x5a,0x2e,0x26,0xb8,0x05,0x0a,0xb3,0x09,0x05,0x05,0x3f,0xb8, +0x05,0x0a,0xb7,0x2e,0x1b,0x23,0x55,0x09,0x04,0x18,0x0e,0xbc,0x04,0xfc,0x00,0x50,0x04,0xe6,0x00,0x00,0x04,0xfb,0xb5,0x42,0x2b,0x45,0x45,0x18,0x3a,0xb8,0x04,0xfb,0xb2,0x33,0x20,0x46,0xb8,0x04,0xfc,0x40,0x09,0x18,0x1f,0x1f,0x1f,0x18,0x2f,0x18,0x02,0x18,0x00,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x12,0x39,0x2f,0x39, +0x39,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x11,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x15,0x14,0x16,0x17,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x15,0x16,0x16,0x03,0x5c,0xad,0xe9,0x8c,0x3b,0x08,0x07,0x05,0x3a,0x76,0x78,0x78,0x3d,0x4f,0x77,0x50,0x28,0x40,0x78,0xae,0x6e,0x6f,0xad,0x3f,0x03,0x10,0x1e, +0x10,0x8c,0x1d,0x3b,0x1d,0x21,0x21,0x14,0x32,0x52,0x3f,0x4c,0x45,0x3d,0x72,0xa6,0x69,0x23,0x4f,0x2a,0x27,0x55,0x2b,0x36,0x65,0x4d,0x2f,0x37,0x33,0x51,0xd0,0x8a,0xfb,0x4b,0x72,0x4e,0x27,0x14,0x2c,0x45,0x30,0x2a,0x5c,0x62,0x6a,0x37,0x2d,0x86,0x01,0x9f,0x2e,0x68,0x73,0x7c,0x42,0x1d,0x33,0x1a,0x51,0x70,0x46,0x1f,0x2e,0x4f, +0x68,0x39,0x49,0x87,0x69,0x3f,0x40,0x36,0x01,0x1b,0x39,0x20,0x3d,0x6b,0x30,0x36,0x78,0x40,0x2e,0x65,0x66,0x65,0x30,0x45,0xa3,0x4f,0x4c,0x8c,0x6a,0x40,0x08,0x09,0xaa,0x08,0x0b,0x15,0x34,0x57,0x43,0x48,0x71,0x28,0x2d,0x52,0x24,0xfc,0x55,0x26,0x3d,0x4d,0x26,0x1b,0x33,0x28,0x18,0x17,0x39,0x63,0x4c,0x02,0x2d,0x36,0x00,0x02, +0xff,0xc9,0x06,0x37,0x02,0x29,0x07,0xeb,0x00,0x24,0x00,0x36,0x00,0x2e,0xbc,0x00,0x11,0x05,0x0d,0x00,0x2a,0x00,0x0c,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb1,0x1f,0x16,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x33,0x16,0x16, +0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71, +0x51,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x44,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x56,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02, +0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x01,0xff,0xe9,0x06,0x37,0x01,0xee,0x07,0xeb,0x00,0x2e,0x00,0x4a,0xb1,0x24,0x06,0xb8,0x05,0x0d,0xb4,0x00,0x27,0x27,0x09,0x1e,0xb8,0x05,0x0d,0x40,0x0b,0x18,0x1a,0x1a,0x18,0x09,0x24,0x09,0x0a,0x2e,0x2e,0x2c,0xb8,0x05,0x01,0xb5,0x03,0x09,0x23,0x23,0x1b,0x09,0xb8,0x05, +0x01,0xb1,0x14,0x0a,0x00,0x2f,0xc6,0xfd,0xc4,0x33,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x11,0x12,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x17, +0x1e,0x03,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0xbe,0x0e,0x1d,0x11,0x2e,0x40,0x92,0x48,0xcd,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x0a,0x51,0x06,0x09,0x02,0x02,0x08,0x12,0x20,0x1b,0x1d,0x12,0x17,0x1d,0x34,0x49,0x2c,0x20,0x22,0x07,0x7e,0x03,0x04,0x26,0x2c,0x5b,0x64,0x01,0x04, +0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x27,0x18,0x2f,0x0b,0x0a,0x11,0x0c,0x06,0x1b,0x3b,0x1e,0x23,0x3b,0x2b,0x17,0x06,0x00,0x02,0x00,0x03,0x06,0x1f,0x02,0x20,0x08,0x00,0x00,0x1d,0x00,0x36,0x00,0x2c,0xbf,0x00,0x2e,0x05,0x0d,0x00,0x25,0x00,0x11,0x04,0xfd,0x00,0x18,0x00,0x20,0x04,0xfd,0x40,0x0a,0x33,0x1e,0x00, +0x0c,0x14,0x1d,0x05,0x05,0x28,0x05,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0xfd,0xd4,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x0e,0x03,0x07,0x23,0x3e,0x03,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x26,0x27,0x01,0x4a,0x49,0x5a,0x34,0x18,0x07,0x51,0x06,0x17,0x32,0x57,0x47,0x14,0x1c,0x1e,0x25,0x1c,0x18,0x2d,0x11,0x14,0x2e,0x17,0x2b,0x39,0x32,0x37,0x2b,0x65,0x38,0x26,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x0c,0x11,0x0c,0x06,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x07,0x2f,0x12,0x29,0x2f,0x36,0x1e,0x1e,0x40,0x3f,0x3a,0x18, +0x03,0x07,0x0e,0x0c,0x07,0x06,0x07,0x5f,0x06,0x07,0x15,0x1b,0x17,0x01,0xfe,0xee,0x11,0x17,0x29,0x37,0x21,0x3e,0x75,0x36,0x1d,0x3d,0x3e,0x3a,0x19,0x3c,0x5c,0x3e,0x20,0x09,0x0a,0x00,0x00,0x04,0xff,0x88,0x06,0x1f,0x02,0xb1,0x08,0xbb,0x00,0x24,0x00,0x36,0x00,0x4d,0x00,0x51,0x00,0x52,0xb2,0x41,0x45,0x4e,0xbb,0x05,0x0d,0x00, +0x4f,0x00,0x45,0x05,0x0d,0xb2,0x3e,0x37,0x11,0xb8,0x05,0x0d,0xb3,0x2a,0x51,0x4e,0x0c,0xb8,0x05,0x01,0x40,0x09,0x2d,0x25,0x32,0x32,0x25,0x07,0x07,0x01,0x25,0xb8,0x05,0x01,0xb3,0x1f,0x16,0x41,0x39,0xb9,0x04,0xfd,0x00,0x4a,0x00,0x2f,0xfd,0xce,0xd4,0xce,0xfd,0xc4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd6,0xfd,0xd6,0xcd,0x01,0x2f, +0xed,0x39,0x2f,0xed,0x2f,0xed,0x12,0x39,0x31,0x30,0x03,0x33,0x16,0x16,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x07,0x06,0x06,0x07,0x23,0x36,0x36,0x35,0x34,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x16,0x32,0x32,0x17,0x16,0x33,0x32,0x3e,0x02, +0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x23,0x35,0x33,0x58,0x51,0x06,0x09,0x02,0x04,0x13,0x1d,0x0c,0x2d,0x40,0x53,0x33,0x27,0x38,0x26,0x12,0x1e,0x42,0x69,0x4b,0x30,0x41,0x2c,0x1b,0x0c,0x03,0x05,0x0e,0x07,0x57,0x13,0x17,0x01,0x3c,0x2a,0x37,0x20,0x0d,0x30,0x22,0x1d,0x2f,0x26,0x1c, +0x08,0x07,0x1a,0x1b,0x18,0xa0,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0x98,0x57,0x57,0x07,0x92,0x18,0x2f,0x0b,0x10,0x18,0x02,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x04,0x09,0x08,0x01,0x16,0x2b,0x11,0x33,0x63,0x33,0x2f,0x58,0x02,0x0e,0x1b,0x1a, +0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x83,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0xff,0xc4,0x06,0x71,0x02,0x22,0x07,0xb0,0x00,0x2a,0x00,0x31,0xb9,0x00,0x01,0x05,0x0d,0xb2,0x29,0x0c,0x1e,0xb8,0x05,0x0d,0xb5,0x1d,0x1e,0x18,0x15,0x15,0x24,0xb8,0x05,0x01, +0xb5,0x06,0x14,0x14,0x11,0x06,0x00,0x00,0x2f,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x02, +0x22,0x1b,0x2b,0x38,0x1d,0x26,0x33,0x20,0x10,0x03,0x04,0x0b,0x22,0x35,0x4d,0x34,0x10,0x21,0x13,0x0c,0x17,0x2a,0x13,0x3f,0x4f,0x2d,0x10,0x59,0x04,0x0f,0x1c,0x18,0x10,0x1a,0x12,0x0a,0x07,0xb0,0xa7,0x2d,0x3b,0x23,0x0d,0x11,0x1f,0x2b,0x1a,0x19,0x2b,0x1f,0x12,0x02,0x02,0x66,0x02,0x02,0x15,0x29,0x3a,0x25,0x35,0x1b,0x28,0x19, +0x0c,0x06,0x11,0x1e,0x17,0x8d,0x00,0x01,0x00,0xc4,0xfd,0xf6,0x01,0x42,0xff,0x7e,0x00,0x03,0x00,0x15,0xbd,0x00,0x00,0x05,0x0b,0x00,0x01,0x00,0x00,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x42,0x7e,0x7e,0xfd,0xf6,0x01,0x88,0x00,0x00,0x02,0xff,0xbf,0x06,0x73,0x01,0xca,0x08,0x2c, +0x00,0x23,0x00,0x2f,0x00,0x35,0xb2,0x03,0x10,0x06,0xb8,0x05,0x0d,0xb5,0x24,0x00,0x00,0x24,0x14,0x2a,0xb8,0x05,0x0d,0xb3,0x10,0x03,0x23,0x1e,0xbc,0x04,0xfd,0x00,0x17,0x00,0x2d,0x04,0xfd,0x00,0x0b,0x00,0x2f,0xfd,0xd4,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x07,0x16, +0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x27,0x26,0x22,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x13,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x71,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c, +0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x07,0xef,0x08,0x10,0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0xfe,0xec,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x01,0x00,0x32, +0x06,0x71,0x01,0xd4,0x07,0xe3,0x00,0x1c,0x00,0x29,0xb2,0x11,0x11,0x13,0xb8,0x05,0x0d,0xb3,0x0d,0x0d,0x1d,0x03,0xb8,0x05,0x0d,0xb3,0x19,0x1c,0x11,0x16,0xb9,0x05,0x01,0x00,0x08,0x00,0x2f,0xfd,0xc6,0xc6,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0xc7,0x07,0x06,0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x00,0xff,0xff, +0xff,0xc6,0x06,0x7c,0x02,0x2c,0x08,0xde,0x01,0x07,0x0f,0x57,0x00,0x00,0x06,0x7c,0x00,0x15,0x40,0x0c,0x01,0x00,0x20,0x00,0x01,0x20,0x00,0x01,0x20,0x00,0x01,0x00,0x00,0x11,0x5d,0x5d,0x5d,0x35,0x35,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x03,0x4a,0x06,0x05,0x02,0x26,0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xfe,0x29, +0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x05,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfe,0x29,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc2,0x04,0xaf,0x02,0x26,0x09,0x17,0x00,0x00, +0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x53,0xff,0xf2,0x05,0x32,0x06,0x40,0x02,0x26,0x0e,0x5c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x64,0xff,0xff,0x00,0x67,0xfd,0xff,0x05,0x58, +0x05,0xaa,0x02,0x26,0x08,0xf2,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x73,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x56,0x01,0x56,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x06,0x40,0x02,0x26,0x0e,0x5b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x56,0xfe,0x64,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35, +0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x05,0xaa,0x02,0x26,0x0e,0x5d,0x00,0x00,0x01,0x07,0x0a,0x6e,0x01,0x1d,0xfd,0xce,0x00,0x0a,0xb4,0x03,0x2f,0x4d,0x01,0x4d,0x00,0x11,0x5d,0x35,0x00,0x06,0xfe,0x93,0xfe,0x64,0x01,0x6d,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0x32,0x00,0x57,0xbc,0x00,0x20,0x05, +0x0a,0x00,0x25,0x00,0x2f,0x05,0x0a,0xb2,0x2a,0x2a,0x16,0xbb,0x05,0x0a,0x00,0x1a,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x31,0x10,0xb8,0x04,0xfc,0xb5,0x2c,0x12,0x0b,0x23,0x18,0x02,0xb8,0x04,0xfc,0xb6,0x27,0x1d,0x14,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x33,0x33,0xed,0x32,0x32,0xd4,0x32, +0x32,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x39,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x14,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x16,0x17,0x14,0x23, +0x22,0x26,0x35,0x34,0x33,0x32,0x01,0x6d,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0x43,0x44,0x28,0x1c,0x1c,0x27,0xb6,0x28,0x1b,0x42,0x42,0x1c,0x27,0x5a,0x41,0x1c,0x28,0x44,0x41,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x44,0x41,0x41,0x1c,0x28,0x28,0x1c,0x1b,0x26,0x41, +0x44,0x28,0xd4,0x44,0x28,0x1c,0x41,0x00,0x00,0x04,0xfe,0xa9,0xfe,0x64,0x01,0x54,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x19,0x00,0x47,0xbc,0x00,0x16,0x05,0x0c,0x00,0x17,0x00,0x12,0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x12,0x0b,0xbb,0x04,0xfc,0x00,0x10,0x00,0x02,0x04,0xfc,0xb4,0x07,0x15,0x07, +0x07,0x16,0xb8,0x04,0xfd,0xb4,0x14,0x2f,0x19,0x01,0x19,0x00,0x2f,0x5d,0x33,0xed,0x33,0x11,0x33,0x10,0xfd,0xd6,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x21,0x35,0x21,0x01,0x54,0x41, +0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xbb,0xfe,0xf4,0x01,0x0c,0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x52,0x52,0x00,0x04,0xfe,0x91,0xfe,0x64,0x01,0x71,0xff,0xa4,0x00,0x08,0x00,0x11,0x00,0x15,0x00,0x1d,0x00,0x59,0xb9,0x00,0x18,0x05,0x0d,0xb4,0x19,0x19,0x1e,0x1b,0x12,0xb8, +0x05,0x0d,0xb2,0x13,0x09,0x00,0xb8,0x05,0x0a,0xb3,0x0e,0x04,0x1a,0x16,0xb8,0x04,0xfd,0xb2,0x1d,0x15,0x02,0xb8,0x04,0xfc,0xb2,0x07,0x07,0x18,0xb8,0x04,0xfe,0xb6,0x14,0x2f,0x1d,0x01,0x1d,0x12,0x0b,0xb8,0x04,0xfc,0xb3,0x2f,0x10,0x01,0x10,0x00,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x33,0xe4,0x33,0x10,0xed,0x33,0x10,0xed,0x32,0x01, +0x2f,0x33,0xed,0x32,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x23,0x22,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x23,0x22,0x26,0x35,0x34,0x33,0x32,0x07,0x23,0x11,0x33,0x07,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0x71,0x41,0x44,0x28,0x1c,0x41,0x41,0x1c,0x28,0x44,0x41,0xe4,0x5c,0x5c,0xba,0x73,0x5c,0x73,0x01,0x42, +0xa0,0x41,0x41,0x1c,0x28,0xfc,0x44,0x28,0x1c,0x41,0x85,0x01,0x40,0x54,0x85,0x85,0x54,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x08,0x0e,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0x00,0x32,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0x67,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c, +0x06,0xb7,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x08,0x7f,0x02,0x26,0x09,0x3f,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x9c,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x4a, +0xfd,0xce,0xff,0xff,0x00,0xa1,0xff,0xf2,0x09,0x4b,0x08,0x36,0x00,0x26,0x09,0x71,0x00,0x00,0x00,0x07,0x09,0x0d,0x08,0x04,0x00,0x00,0x00,0x05,0x00,0x9b,0xfd,0xff,0x0b,0x15,0x05,0xec,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0xb2,0xb2,0x44,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x38,0x24,0xba,0x05,0x0a,0x00,0x58, +0x05,0x0a,0xb6,0x21,0x57,0x57,0x21,0x54,0x54,0x53,0x41,0x09,0x05,0x0a,0x00,0x33,0x05,0x0a,0x00,0x30,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x03,0x05,0x0a,0x40,0x17,0x1a,0x3f,0x21,0x30,0x0d,0x1a,0x1a,0x0d,0x30,0x21,0x3f,0x05,0x5c,0x5b,0x5a,0x5a,0x08,0x55,0x55,0x08,0x08,0x59,0x56,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x53,0x53,0x54, +0x54,0x15,0x15,0x57,0x57,0x38,0x3a,0xb8,0x04,0xfb,0x40,0x0b,0x52,0x1f,0x4f,0x2f,0x4f,0x02,0x4f,0x44,0x33,0x32,0x1e,0xba,0x04,0xfb,0x00,0x29,0x05,0x03,0xb2,0x23,0x0e,0x00,0x00,0x2f,0x2f,0x2f,0x3f,0xed,0x2f,0x2f,0x2f,0x2f,0x5d,0x33,0xed,0x32,0x32,0x2f,0x32,0x2f,0x33,0x2f,0x32,0x2f,0x33,0xed,0x32,0x32,0x2f,0x33,0x2f,0x11, +0x33,0x2f,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0xe4,0x33,0x2f,0x11,0x33,0x2f,0x10,0xe4,0xed,0x39,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x32,0x36,0x35, +0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x4e,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0x9c,0x38,0x81,0xd4,0x9d, +0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x06,0x96,0x5d,0x5b,0x9c,0x37,0x5f,0x7e,0x47,0x44,0x65,0x48,0x2d,0x1a,0x0a,0x9c,0x09,0x23,0x45,0x01,0x67,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1a,0x28,0x1c,0x0f,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0xfe,0x48,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0xa6,0x48,0x7a,0x37,0x5f,0x84, +0x51,0x24,0x31,0x6e,0xb3,0x81,0x04,0xc4,0xfb,0x28,0x8f,0xe4,0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0xfe,0xeb,0x68,0x70,0x01,0xa6,0xfe,0x53,0x6b,0x90,0x58,0x25,0x21,0x39,0x4c,0x57,0x5e,0x2e,0x04,0x79,0xfb,0xc2,0x40,0x69,0x4b,0x29,0xfe,0x40,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x41,0x8e,0x8f,0x8b,0x3e, +0x8a,0xd4,0x90,0x4a,0x16,0x17,0x79,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x06,0xf2,0x00,0x2f,0x00,0x33,0x00,0x62,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x0a, +0x29,0x06,0x31,0xb8,0x04,0xfd,0xb6,0x32,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0xdc,0x32,0x11,0x33,0xde,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11, +0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xbc, +0x58,0x00,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x53,0x00,0x61,0x00,0x85,0xb9,0x00,0x54,0x05,0x0d,0xb3,0x4d,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c,0x2f,0x2f,0x2c,0x43,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x41,0x1f,0x5c,0x5c,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19, +0xb8,0x05,0x0b,0xb4,0x12,0x15,0x15,0x12,0x48,0xb8,0x04,0xfd,0xb3,0x57,0x50,0x5f,0x3d,0xb8,0x04,0xfd,0x40,0x0a,0x36,0x33,0x33,0x36,0x15,0x00,0x23,0x0a,0x0d,0x06,0xb8,0x04,0xfd,0xb1,0x1c,0x29,0x00,0x2f,0x33,0xed,0x32,0x39,0xde,0x32,0x32,0xce,0x32,0x2f,0x10,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, +0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14, +0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34,0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f, +0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x1d,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14, +0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x02,0xff,0xd4,0x05,0x28,0x02,0x33,0x06,0xfc,0x00,0x2f,0x00,0x33,0x00,0x63,0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f, +0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x22,0x22,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xb9,0x04,0xfd,0x00,0x32,0x00,0x2f,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39, +0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x02,0x2f,0x02,0x02, +0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x06,0xfc,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12, +0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x00,0x00,0x03,0xff,0x6c,0x05,0x20,0x02,0x33,0x07,0xfd,0x00,0x2f,0x00,0x54,0x00,0x62,0x00,0x8b,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb7,0x12,0x15,0x15,0x12,0x12,0x63,0x3b,0x55,0xb8,0x05,0x0d,0xb4,0x4e,0x3b,0x00,0x00,0x03,0xb8,0x05,0x0d,0xb4,0x2c, +0x2f,0x2f,0x2c,0x44,0xb8,0x05,0x0d,0x40,0x09,0x0a,0x42,0x1f,0x5d,0x5d,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x0a,0x1f,0x22,0x22,0x1f,0x3c,0x60,0x39,0x03,0x36,0x49,0xbb,0x04,0xfd,0x00,0x58,0x00,0x3f,0x04,0xfd,0xb6,0x36,0x16,0x00,0x22,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd4,0x32, +0x32,0xd6,0xfd,0xd4,0xed,0x11,0x17,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x12,0x39,0x39,0xed,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, +0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x5a,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34, +0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x2f,0x3b,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14, +0x2c,0x0d,0x1d,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00,0x00,0x03,0xff,0xd4,0x05,0x28,0x02,0x33,0x07,0xab,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b, +0xb2,0x00,0x00,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26,0xb8,0x05,0x0d,0xb6,0x1f,0x22,0x22,0x1f,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0d,0x12,0x15,0x15,0x12,0x0a,0x29,0x06,0x15,0x23,0x23,0x00,0x1c,0x29,0xb8,0x04,0xfd,0xb2,0x0d,0x06,0x31,0xbc,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0x00, +0x36,0x00,0x2f,0xfd,0xd6,0xfd,0xd6,0x32,0xfd,0x32,0xcc,0x32,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01, +0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x07,0xab,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0xfe,0x84,0x58,0x57,0x58,0x00,0x00,0x04,0x00,0x35, +0xfd,0xf6,0x03,0xf2,0x05,0x28,0x00,0x27,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x58,0xbc,0x00,0x14,0x05,0x0a,0x00,0x28,0x00,0x3e,0x05,0x0b,0xb2,0x3f,0x3f,0x3a,0xbb,0x05,0x0c,0x00,0x3b,0x00,0x32,0x05,0x0a,0x40,0x0b,0x05,0x28,0x3b,0x05,0x05,0x3b,0x28,0x03,0x43,0x42,0x3a,0xb8,0x04,0xfb,0xb4,0x3d,0x3f,0x40,0x37,0x24,0xbd,0x04, +0xfb,0x00,0x1b,0x05,0x03,0x00,0x2d,0x04,0xfb,0x00,0x0c,0x00,0x2f,0xed,0x3f,0xed,0x32,0xd6,0xcd,0x2f,0xed,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x31,0x30,0x25,0x2e,0x03,0x35,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x27,0x16, +0x16,0x33,0x32,0x36,0x37,0x25,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x03,0x23,0x11,0x33,0x02,0x4e,0x49,0x60,0x38,0x16,0x15,0x28,0x3a,0x47,0x54,0x2f,0x45,0x75,0x38,0x14,0x26,0x1d,0x11,0x3c,0x64,0x82,0x8e,0x8f,0x3e,0x39,0x52,0x41,0x36,0x1e,0x20,0x51,0x9e,0x47,0x49,0x77, +0x21,0x01,0x09,0x22,0x38,0x4a,0x27,0x1d,0x37,0x2b,0x1b,0x18,0x42,0x73,0x5a,0x21,0x1d,0xab,0xc9,0xc9,0x23,0x7e,0x7e,0x9e,0x1d,0x45,0x4c,0x52,0x2b,0x2e,0x60,0x5b,0x50,0x3d,0x23,0x51,0x58,0x20,0x4a,0x54,0x5d,0x32,0x5e,0x82,0x56,0x30,0x17,0x05,0x02,0x04,0x06,0x04,0xa7,0x0a,0x08,0x07,0x04,0xc6,0x33,0x78,0x66,0x44,0x26,0x3c, +0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x17,0x52,0x03,0x36,0xbd,0xf8,0xce,0x01,0x88,0x00,0x03,0x00,0x65,0xff,0xea,0x03,0x9d,0x03,0x6c,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3a,0xb9,0x00,0x21,0x05,0x0c,0xb4,0x13,0x1b,0x1b,0x24,0x15,0xbb,0x05,0x0c,0x00,0x0f,0x00,0x09,0x05,0x0c,0xb2,0x03,0x1e,0x12,0xbe,0x04,0xfe,0x00,0x18,0x00, +0x0c,0x05,0x03,0x00,0x00,0x04,0xfe,0x00,0x06,0x00,0x2f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd4,0xed,0x11,0x33,0x2f,0xc4,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x02,0x00,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0xfd,0x79,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x02,0x8e,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfd,0x5c,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0xe7,0x06,0x7c,0x02,0x1f,0x06,0xe8, +0x00,0x03,0x00,0x15,0xb2,0x01,0x00,0x02,0xb8,0x04,0xfd,0xb3,0x2f,0x01,0x01,0x01,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xcd,0x31,0x30,0x03,0x21,0x15,0x21,0x19,0x02,0x38,0xfd,0xc8,0x06,0xe8,0x6c,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x04,0x02,0x03,0x00,0x00,0x2f,0x32, +0xcd,0x32,0x01,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x03,0x33,0x17,0x37,0x33,0x03,0xcb,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x06,0x7c,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x01,0xff,0xdf,0x06,0x7c,0x02,0x28,0x07,0xdc,0x00,0x06,0x00,0x15,0xb7,0x03,0x01,0x05,0x01,0x03,0x00,0x04,0x02,0x00,0x2f,0x33,0xcd,0x32,0x01,0x2f,0x2f,0x12, +0x39,0x31,0x30,0x01,0x13,0x23,0x27,0x07,0x23,0x13,0x01,0x3c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x07,0xdc,0xfe,0xa0,0xff,0xff,0x01,0x60,0x00,0x01,0x00,0x97,0xfe,0x92,0x01,0x6e,0xff,0x69,0x00,0x0b,0x00,0x15,0xbd,0x00,0x06,0x05,0x0c,0x00,0x00,0x00,0x09,0x04,0xfe,0x00,0x03,0x00,0x2f,0xed,0x01,0x10,0xed,0x31,0x30,0x13,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x97,0x3d,0x2f,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0xfe,0xfe,0x2f,0x3c,0x3c,0x2f,0x2f,0x3d,0x3d,0x00,0x00,0x02,0x00,0x3d,0x06,0x55,0x02,0x48,0x08,0x0e,0x00,0x23,0x00,0x2f,0x00,0x39,0xb4,0x14,0x2a,0x03,0x06,0x10,0xb8,0x05,0x0d,0xb3,0x2a,0x00,0x00,0x24,0xbb,0x05,0x0d,0x00,0x06,0x00, +0x0b,0x04,0xfd,0xb3,0x2d,0x03,0x27,0x17,0xb8,0x04,0xfd,0xb3,0x20,0x1e,0x01,0x1e,0x00,0x2f,0x5d,0xfd,0x32,0x39,0xd4,0xed,0x01,0x2f,0xed,0x32,0x2f,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x17,0x16,0x32,0x33,0x32,0x36,0x37,0x17,0x06, +0x06,0x23,0x22,0x26,0x27,0x06,0x07,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x96,0x09,0x14,0x0b,0x39,0x48,0x1d,0x31,0x3e,0x21,0x26,0x3e,0x2c,0x18,0x17,0x1a,0x01,0x06,0x07,0x01,0x38,0x5c,0x32,0x12,0x30,0x66,0x3c,0x14,0x30,0x17,0x23,0x2d,0x39,0x3c,0x34,0x1d,0x1c,0x29,0x29,0x21,0x36,0x06,0x92,0x08,0x10, +0x0b,0x1a,0x59,0x42,0x2a,0x3d,0x29,0x14,0x19,0x2b,0x3b,0x21,0x20,0x46,0x21,0x02,0x01,0x0f,0x0d,0x53,0x0e,0x0e,0x03,0x05,0x22,0x22,0x01,0x14,0x2a,0x3a,0x10,0x1a,0x3d,0x1c,0x21,0x2d,0x23,0x00,0x00,0x03,0x00,0x05,0x06,0x67,0x02,0x01,0x08,0x31,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x34,0xb9,0x00,0x08,0x05,0x0a,0xb3,0x00,0x09, +0x01,0x04,0xb8,0x05,0x0a,0x40,0x0f,0x05,0x02,0x01,0x03,0x00,0x01,0x00,0x04,0x0b,0x08,0x07,0x20,0x04,0x01,0x04,0x00,0x2f,0x5d,0xdd,0xd4,0xcd,0x11,0x39,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x32,0x2f,0x33,0xed,0x31,0x30,0x13,0x01,0x15,0x01,0x25,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xa1, +0xa1,0xfe,0xa5,0xa1,0xa1,0x06,0xd3,0x01,0x5e,0x6c,0xfe,0xa2,0x01,0x9d,0x8f,0x9d,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x22,0x03,0x0f,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x55,0x00,0x83,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x05,0xca,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab, +0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, +0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0xb2,0x02,0x26,0x09,0x3e,0x00,0x00, +0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x81,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x06,0x9f,0x03,0x0f,0x02,0x26,0x09,0x3e,0x00,0x00, +0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2a,0x01,0x2a,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xab,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f, +0x05,0x5a,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xda,0x02,0x26,0x09,0x13,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a, +0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xda,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x04,0x61,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x03,0x54,0x00,0x31,0x00,0x35,0x00,0x39, +0x00,0x3d,0x00,0x75,0xb9,0x00,0x3a,0x05,0x0a,0xb2,0x3b,0x3b,0x33,0xb8,0x05,0x0a,0xb3,0x32,0x1d,0x32,0x37,0xb8,0x05,0x0a,0xb7,0x36,0x32,0x36,0x32,0x36,0x3f,0x26,0x05,0xbb,0x05,0x0a,0x00,0x16,0x00,0x3c,0x04,0xfb,0xb5,0x2f,0x3b,0x01,0x3b,0x38,0x34,0xbb,0x04,0xfb,0x00,0x36,0x00,0x33,0x04,0xe6,0xb5,0x00,0x1d,0x31,0x03,0x11, +0x23,0xb8,0x04,0xff,0xb2,0x2a,0x0d,0x0a,0xb8,0x04,0xfc,0xb6,0x0e,0x1f,0x11,0x2f,0x11,0x02,0x11,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x04,0x06,0x06,0x15,0x14, +0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7, +0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a, +0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0x00,0x05,0x00,0x7e,0xfd,0xff,0x05,0x58,0x03,0x54,0x00,0x0d,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x8b,0xb1,0x2b,0x40,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x00,0x05,0x0b,0xb4,0x0b,0x41,0x41,0x0b,0x49, +0xb8,0x05,0x0a,0xb2,0x48,0x48,0x45,0xb8,0x05,0x0a,0xb7,0x44,0x0b,0x44,0x0b,0x44,0x4d,0x34,0x13,0xbb,0x05,0x0a,0x00,0x24,0x00,0x4a,0x04,0xfb,0xb5,0x2f,0x49,0x01,0x49,0x46,0x42,0xbb,0x04,0xfb,0x00,0x44,0x00,0x41,0x04,0xe6,0xb5,0x0e,0x2b,0x3f,0x03,0x1f,0x31,0xb8,0x04,0xff,0xb2,0x38,0x1b,0x18,0xb8,0x04,0xfc,0xb7,0x1c,0x1f, +0x1f,0x2f,0x1f,0x02,0x1f,0x03,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x3f,0x33,0xed,0x32,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x11,0x33,0x2f,0x10,0xed,0x39,0xe6,0x32,0x31,0x30,0x01,0x16,0x16,0x33,0x33,0x15,0x23, +0x22,0x2e,0x02,0x27,0x36,0x36,0x27,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x13,0x33,0x15,0x23,0x04,0x57,0x06,0x74,0x68,0x1f, +0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x2b,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xf7,0xb5,0xb5,0xfe,0xbe,0xb5,0xb5,0xa1,0xb5,0xb5,0x01, +0x56,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xb3,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x44,0xb3,0xb3,0xb3,0x01,0xc1,0xb3,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x07,0x0f,0x02,0x26,0x09,0x15,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x07,0x0f,0x57,0x00,0xab,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0x13,0x03,0x4a,0x03,0xba,0x02,0x26, +0x09,0x15,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x20,0x01,0x20,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x4e,0x02,0x5e,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00, +0x00,0x07,0x0f,0x56,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x05,0xa3,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, +0x05,0x20,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x04,0xe4,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0xb2,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x04,0x02, +0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00, +0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0x04,0x02,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x06,0xbb,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0xe4,0x04,0xf3,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad, +0x06,0x38,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x70,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x3c,0x05,0xfc,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x1d,0x04,0x34,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0xca,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x04,0x02, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00, +0x00,0x07,0x0f,0x51,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x4b,0x03,0x62,0x02,0x26,0x09,0xc8,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, +0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0e,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03, +0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x07,0xcb,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x07,0xcb,0x02,0x26,0x08,0xed,0x00,0x00, +0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b, +0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x04,0x79,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9, +0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0xf4,0x04,0x79,0x02,0x26,0x08,0xef,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0xf4,0x02,0xb9,0x02,0x26,0x09,0x26,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0xf4,0x02,0xaf,0x02,0x26,0x08,0xef,0x00,0x00, +0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xfb,0x04,0xa6,0x04,0xb2,0x02,0x27,0x09,0x5f,0x00,0x00,0x01,0x56,0x00,0x27,0x0f,0x50,0x01,0x9f,0x04,0x02,0x00,0x07,0x0f,0x51,0x01,0x9f,0xfe,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a, +0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x06,0x64,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x07,0xba,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c, +0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x05,0x63,0x02,0x26,0x09,0x5f,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x22,0x01,0x22,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x13,0x40,0x0a,0x02,0x2f,0x1c,0x01,0x1c,0x01,0x20,0x19,0x01,0x19,0x00,0x11,0x5d,0x35,0x11,0x5d,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x51, +0x05,0xec,0x02,0x26,0x09,0x25,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0xc3,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x02,0x26,0x08,0xee,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x02,0x26,0x09,0x3f,0x00,0x00,0x00,0x06,0x0f,0x5c,0x17,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x1f,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x04,0xbc,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x07,0x09,0x7e, +0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x1f,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x46,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x1f,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x84,0x05,0x76,0x02,0x06, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xa6,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8c,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c,0x02,0x18,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0xad,0x05,0xec,0x00,0x26,0x0f,0x65,0x00,0x00,0x00,0x27,0x0f,0x8d,0x02,0xac,0x00,0x00,0x00,0x07,0x0f,0x5c, +0x02,0x18,0x00,0x00,0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x00,0x00,0x0a,0x00,0x15,0x40,0x09,0x03,0x91,0x08,0x00,0x05,0x05,0x01,0x7e,0x00,0x2f,0xf1,0xc2,0x2f,0x00,0x2f,0xd4,0xed,0x31,0x30,0x23,0x33,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0xe6,0xa8,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0xd3,0x1d,0xa0,0x14,0xc5, +0x00,0x01,0xff,0x1a,0xfe,0x96,0x00,0xe6,0x00,0x35,0x00,0x0a,0x00,0x12,0xb7,0x08,0x91,0x03,0x0a,0x00,0x7e,0x0a,0x06,0x2f,0xd6,0xe1,0x00,0x2f,0xd4,0xed,0x31,0x30,0x37,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0xe6,0xb3,0x9f,0x42,0x38,0x33,0x3f,0xb2,0x35,0xbd,0xe2,0x14,0xa0,0x1d,0x01,0x08,0x00,0x00,0x01,0x01,0x9f, +0xfe,0x80,0x02,0x60,0x00,0x98,0x00,0x05,0x00,0x18,0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x91,0x05,0x22,0x03,0xb8,0x01,0x30,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0x9f,0xc1,0x9b,0x26,0x98,0xfd,0xe8,0x01,0x80,0x00,0x01,0x01,0xb3,0xfe,0x8a,0x02,0x4d,0x00,0x8b,0x00,0x05,0x00,0x18, +0xb9,0x00,0x01,0x01,0x2c,0xb5,0x04,0x00,0x95,0x05,0x22,0x03,0xb8,0x01,0x31,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x33,0x11,0x23,0x11,0x23,0x01,0xb3,0x9a,0x8f,0x0b,0x8b,0xfd,0xff,0x01,0x76,0x00,0x01,0x00,0x14,0x00,0x8b,0x02,0xe8,0x05,0x30,0x00,0x1d,0x00,0x30,0x40,0x17,0x17,0xb1,0x0c,0x00,0xb1,0x05,0x0c,0x05, +0x0c,0x05,0x04,0x01,0x01,0x1f,0x11,0x04,0x0f,0xbe,0x14,0x00,0x04,0xbe,0x03,0x00,0x2f,0xed,0x32,0x2f,0xed,0x01,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x33,0x34,0x37,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x07,0x06,0x07,0x06,0x01,0x89,0x01,0x2f,0xfd,0x5c,0xd2,0x26,0x26,0x6e,0x6a,0x38,0x97,0x7e,0x8f,0x82,0x84,0x9c,0xc2,0xea,0x4f,0x81,0x50,0x20,0x1f,0x01,0x20,0x95,0x95,0x84,0x50,0x51,0x6c,0x69,0x6e,0x3e,0x5f,0x80,0x4c,0x97,0x40,0xc8,0x98,0x5b,0x9f,0x7b,0x4d,0x42,0x40,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x04,0x2f,0x05,0x9a, +0x00,0x13,0x00,0x1f,0x00,0x27,0x00,0x84,0x40,0x0b,0x0c,0x19,0x10,0x06,0x0b,0x0d,0x06,0x4c,0x10,0x7d,0x1d,0xb8,0xff,0xf0,0x40,0x42,0x0b,0x0d,0x06,0x4c,0x1d,0x1d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x7d,0x25,0x08,0x0b,0x0c,0x06,0x4c,0x7f,0x25,0x01,0x25,0x25,0x29,0x00,0x29,0x40,0x0b,0x00,0x4d,0x21,0x17,0x17,0x15,0x19,0x7e,0x00, +0x04,0x00,0x02,0x02,0x00,0x0c,0x14,0x91,0x21,0x18,0x01,0x91,0x04,0x15,0x04,0x21,0x04,0x21,0x04,0x19,0x20,0x91,0x05,0x03,0x19,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x2f,0x32,0x2b,0x11,0x12,0x39,0x2f,0x5d, +0x2b,0xe9,0x2b,0x39,0x2f,0x2b,0xe9,0x2b,0x11,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x03,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0xbc,0xa0,0xa0,0x01,0x98,0xba,0xda,0x84,0x74,0x91,0xae,0xfe, +0xf8,0xc9,0xfa,0xfc,0xfc,0xe4,0x94,0xa3,0xfe,0xa6,0xc1,0xac,0x8a,0x9e,0xfe,0xed,0x01,0x4f,0x98,0x03,0xb3,0xb6,0x92,0x7a,0xb4,0x26,0x04,0x11,0xb9,0x94,0xb8,0xe4,0x02,0x9c,0xb5,0x98,0xb7,0x8c,0x7a,0xfe,0x02,0x66,0xfe,0x31,0x85,0x79,0xd1,0x00,0x00,0x02,0x00,0x1e,0xff,0xe8,0x05,0x61,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x41, +0x40,0x21,0x12,0x10,0x10,0x0e,0x7e,0x16,0x0d,0x0d,0x1b,0x17,0x0a,0x7e,0x09,0x07,0x07,0x05,0x09,0x0d,0x03,0x17,0x12,0x06,0x91,0x0f,0x0b,0x07,0x07,0x09,0x03,0x13,0x91,0x02,0x12,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x3f,0x01,0x2f,0x33,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x31, +0x30,0x01,0x10,0x21,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x20,0x11,0x35,0x21,0x15,0x10,0x04,0xd5,0xfd,0xdf,0xfd,0xf6,0x8c,0x8c,0xa8,0x02,0xdb,0xa8,0x8c,0x8c,0xfd,0xf1,0x01,0x67,0xfd,0x25,0x02,0x44,0xfd,0xa4,0x02,0x45,0x57,0x98,0x02,0x7e,0xfd,0x82,0x02,0x7e,0xfd,0x82,0x98, +0xfd,0xfb,0x01,0xaa,0x5b,0x4c,0xfe,0x47,0xff,0xff,0x00,0x18,0x00,0x00,0x04,0xef,0x05,0x9a,0x00,0x06,0x01,0xb0,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x70,0x03,0xb4,0x05,0xf8,0x02,0x26,0x00,0x28,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x1b,0x00,0x5e,0x00,0x1b,0x40,0x14,0x20,0x0e,0x30,0x0e,0x02,0x20,0x0d,0x30,0x0d,0x02,0x0f,0x0f, +0x1f,0x0f,0x02,0x0f,0x0c,0x1f,0x0c,0x02,0x00,0x5d,0x5d,0x5d,0x5d,0x00,0xff,0xff,0x00,0x60,0xfe,0xb5,0x03,0xdd,0x05,0x3d,0x02,0x26,0x00,0x48,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x3a,0xff,0xa3,0x00,0x0a,0xb4,0x02,0x4f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x14,0xff,0xe8,0x02,0xbd,0x05,0x9a,0x00,0x14,0x00,0x75, +0x40,0x0d,0x79,0x09,0x01,0x76,0x09,0x01,0x76,0x01,0x01,0x13,0x13,0x11,0x05,0xb8,0xff,0xf0,0x40,0x18,0x0d,0x06,0x4d,0x05,0x05,0x00,0x08,0x0b,0x0d,0x06,0x4c,0x00,0x7e,0x0a,0x0e,0x0a,0x0c,0x0c,0x0a,0x18,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xf6,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0x40,0x15,0x0b,0x06,0x4d,0x0a,0x0a,0x16,0x15, +0x14,0x0c,0x91,0x11,0x0d,0x0d,0x0f,0x03,0x06,0x06,0x08,0x91,0x03,0x13,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x2b,0x33,0x2f,0x11,0x33,0x10,0xe9,0x2b,0x32,0x2f,0x2b,0x32,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11, +0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x02,0x2b,0xd8,0xb5,0x54,0x36,0x36,0x56,0xe3,0xd8,0xd8,0xa8,0x92,0x92,0x02,0x02,0xff,0xfe,0xe5,0x18,0xa6,0x27,0x01,0x81,0x81,0x98,0x02,0x81,0xfd,0x7f,0x98,0x00,0x00,0x02,0xff,0x3a,0xfe,0x1e,0x01,0xd4,0x05,0xd9,0x00,0x14,0x00,0x20,0x00,0x7a,0x40,0x28,0x1e,0x62,0x18,0x0a, +0x00,0x18,0x62,0xff,0x30,0x06,0x0a,0x12,0x12,0x11,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x0a,0x0e,0x0a,0x0c,0x0c,0x7f,0x0a,0x01,0x0a,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x0a,0xb8,0xff,0xfe,0x40,0x19,0x0b,0x06,0x4d,0x0a,0x0a,0x22,0x21,0x1b,0x63,0x15,0x0f,0x14,0x0c,0x95,0x11, +0x0d,0x0d,0x0f,0x0f,0x06,0x06,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x10,0xde,0xed,0x11,0x12,0x01,0x39,0x2f,0x2b,0x2b,0x5d,0x33,0x2f,0x11,0x33,0x10,0xe1,0x2b,0x2b,0x2b,0x32,0x32,0x2f,0x10,0xc6,0x2b,0x01,0x10,0xe1,0x31,0x30,0x25,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11, +0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x4a,0xcb,0xbd,0x46,0x42,0x4a,0x42,0xe0,0x8a,0x8a,0xa4,0x8a,0x8a,0x50,0x2c,0x3e,0x3e,0x2c,0x2d,0x3f,0x3f,0x2b,0xfc,0xfe,0xef,0x20,0x99,0x2d,0x01,0x66,0x01,0x9d,0x87,0x01,0xcc,0xfe,0x34,0x87,0x03,0x57,0x3c,0x2e, +0x2e,0x3d,0x3d,0x2e,0x2c,0x3e,0x00,0x02,0x00,0x5e,0xfe,0x96,0x06,0x3d,0x05,0xb2,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x19,0x05,0x05,0x01,0x7e,0x25,0x1a,0x0b,0x0b,0x2b,0x1f,0x7d,0x13,0x1b,0x03,0x1c,0x91,0x16,0x04,0x22,0x91,0x10,0x13,0x03,0x91,0x08,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x11,0x10,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x17,0x16,0x17,0x35,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x11,0x35,0x02,0x27,0x26,0x05,0x19,0xb2,0x3f,0x33,0x38,0x42,0x9f,0xb3,0x0c,0x0d,0xa2,0xfe,0xf1,0xfe,0xf6, +0xfe,0xc1,0x01,0x45,0x01,0x19,0x01,0x02,0x9e,0x0b,0x0a,0xfe,0x54,0xc3,0xf4,0xed,0xbf,0xcc,0xeb,0x03,0x6f,0x72,0x05,0x9a,0xfa,0x9b,0xfe,0xf8,0x1d,0xa0,0x14,0xe2,0xbd,0xa0,0x11,0x10,0xcc,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xc8,0x0e,0x0f,0xcd,0x80,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x0e,0x01, +0x12,0x97,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x96,0x05,0x34,0x04,0x18,0x00,0x1d,0x00,0x2e,0x00,0x2c,0x40,0x17,0x27,0x83,0x12,0x02,0x02,0x1c,0x84,0x1e,0x1a,0x0a,0x1a,0x0f,0x23,0x95,0x16,0x10,0x2b,0x95,0x0e,0x16,0x00,0xec,0x05,0x00,0x2f,0xed,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x2f,0xed,0x31,0x30, +0x05,0x32,0x37,0x15,0x06,0x23,0x22,0x27,0x26,0x26,0x35,0x35,0x23,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x10,0x03,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0xc2,0x3e,0x34,0x39,0x41,0x9f,0x5a,0x2d,0x28,0x04,0x72,0xee,0xc1,0x74,0x73,0x80, +0x80,0xd5,0xd3,0x60,0x04,0xa4,0xa4,0x52,0x53,0x7d,0x96,0x56,0x56,0x52,0x53,0x8b,0x89,0x55,0x56,0xd3,0x1d,0xa0,0x14,0x71,0x39,0x96,0x5f,0x79,0xc6,0x89,0x89,0xee,0xfd,0x9a,0x99,0xa6,0x8e,0xfc,0x35,0xfe,0xf8,0x02,0xa2,0x97,0x7d,0x55,0x56,0x6e,0x6e,0xc2,0xb1,0x67,0x66,0x63,0x64,0x00,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0xc0, +0x05,0x9a,0x00,0x20,0x00,0x2b,0x00,0xb0,0x40,0x32,0x75,0x13,0x01,0x76,0x12,0x01,0x39,0x02,0x01,0x0e,0x1b,0x22,0x91,0x0b,0x08,0x08,0x0a,0x21,0x91,0x0f,0x03,0x01,0x0a,0x1b,0x09,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x28,0x7d,0x15,0x79,0x02,0x01,0x7a,0x01,0x01,0x02,0xb8,0xff,0xe8,0xb4, +0x0b,0x0d,0x01,0x4c,0x01,0xb8,0xff,0xe8,0x40,0x28,0x0b,0x0d,0x01,0x4c,0x01,0x1c,0x02,0x15,0x04,0x70,0x00,0x01,0x00,0x08,0x0d,0x06,0x4d,0x00,0x2d,0x22,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x0e,0x0d,0x09,0x7e,0x0a,0xb8,0xff,0xf2,0xb3,0x0d,0x06,0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0c,0x06, +0x4d,0x0a,0xb8,0xff,0xfa,0xb3,0x0b,0x06,0x4d,0x0a,0x2f,0x2b,0x2b,0x2b,0xe1,0x33,0x33,0x2b,0x2b,0x2b,0x32,0x10,0xc6,0x2b,0x5d,0x17,0x32,0x2b,0x2b,0x5d,0x5d,0x2f,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x00,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x39,0x32,0x31,0x30,0x5d,0x01,0x5d,0x5d,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11, +0x23,0x11,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x04,0xc0,0xc8,0xf0,0x21,0x3e,0x41,0x4b,0x2f,0x8a,0xa8,0xa0,0xa0,0x01,0xac,0x5e,0x9f,0x75,0x42,0x2d,0x53,0x75,0x49,0x24,0x35,0x30,0x2f,0x1d,0xfd,0xb1,0xe4,0x3f,0x6b,0x4e,0x2c, +0x95,0x8d,0x01,0x92,0x38,0x4f,0x32,0x17,0xfd,0x9e,0x02,0x62,0x98,0x02,0xa0,0x2f,0x60,0x8f,0x60,0x4b,0x7d,0x62,0x45,0x13,0x04,0x10,0x29,0x38,0x47,0x2f,0x03,0x53,0xfd,0xf8,0x26,0x47,0x67,0x40,0x73,0x81,0x00,0x01,0x00,0x1c,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x18,0x00,0x3f,0x40,0x1f,0x00,0x00,0x1a,0x11,0x06,0x0a,0x84,0x0b, +0x0f,0x0b,0x0d,0x0d,0x0b,0x09,0x0c,0xec,0x06,0x0f,0x0f,0x0b,0x16,0x12,0x00,0x00,0x02,0x16,0x10,0x10,0x0f,0x0b,0x15,0x00,0x3f,0x3f,0x3f,0xcd,0x32,0x2f,0x32,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x15,0x21,0x11, +0x23,0x11,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2b,0x51,0x69,0x8d,0x01,0x16,0xfe,0xea,0xa4,0x8a,0x8a,0xa4,0x04,0x23,0x90,0x59,0x40,0x22,0x03,0x5a,0x21,0xc6,0xab,0x23,0x98,0xfe,0xb1,0x01,0x4f,0x98,0x02,0x19,0xd3,0x6c,0x79,0x0e,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x00,0x11, +0x00,0x19,0x00,0x68,0x40,0x34,0x18,0x10,0x14,0x11,0x11,0x00,0x0f,0x19,0x0e,0x14,0x14,0x07,0x04,0x01,0x00,0x06,0x7e,0x0c,0x09,0x07,0x07,0x0d,0x00,0x02,0x02,0x00,0x00,0x1b,0x0e,0x0d,0x0b,0x0b,0x0d,0x19,0x04,0x0a,0x91,0x0f,0x01,0x0b,0x0b,0x11,0x11,0x14,0x05,0x08,0x03,0x07,0x0d,0x03,0x07,0x12,0x00,0x3f,0x3f,0x12,0x17,0x39, +0x33,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x03,0x11,0x23,0x11,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16, +0x17,0x33,0x36,0x37,0x37,0x21,0x04,0x60,0x8b,0x7a,0xc9,0xff,0xa8,0xfa,0xc9,0x7c,0x86,0xbf,0x83,0x01,0xd0,0x8a,0xfe,0x64,0x06,0x1d,0x03,0x0a,0x1c,0x78,0xfe,0xc9,0x05,0x9a,0xfe,0xf7,0x98,0xfe,0x19,0xfd,0xee,0x02,0x0e,0x01,0xeb,0x98,0x01,0x09,0xfe,0xf7,0x01,0x09,0xfd,0x78,0x0c,0x4c,0x22,0x36,0xe7,0x00,0x00,0x02,0x00,0x0e, +0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x18,0x00,0x20,0x00,0x66,0x40,0x35,0x1f,0x17,0x18,0x18,0x00,0x20,0x16,0x1b,0x15,0x01,0x04,0x05,0x1b,0x0f,0x10,0x13,0x07,0x00,0x0a,0x0a,0x14,0x00,0x02,0x02,0x00,0x00,0x22,0x15,0x14,0x12,0x12,0x14,0x20,0x04,0x11,0x96,0x16,0x01,0x12,0x12,0x21,0x18,0x14,0x0f,0x1b,0x05,0x0f,0x0a,0x0a,0x0c, +0x95,0x07,0x1c,0x00,0x3f,0xed,0x32,0x2f,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0x11,0x33,0x11,0x33,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x39,0x39,0x31,0x30,0x01,0x03,0x33,0x15,0x23,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32, +0x37,0x37,0x03,0x23,0x35,0x33,0x03,0x33,0x13,0x21,0x13,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x21,0x03,0xd5,0x8b,0x79,0xae,0xfe,0xe9,0x7e,0xe4,0x40,0x2b,0x35,0x2c,0x7c,0x3e,0x52,0xd3,0xae,0x79,0x88,0xb6,0x7a,0x01,0x6c,0x81,0xfe,0xae,0x05,0x10,0x06,0x05,0x0f,0x71,0xfe,0xf4,0x04,0x00,0xfe,0xa3,0x86,0xfd,0x3f,0xfe,0xc2,0x0d, +0x93,0x12,0x94,0xc2,0x02,0x1b,0x86,0x01,0x5d,0xfe,0xa3,0x01,0x5d,0xfc,0xec,0x0f,0x3f,0x18,0x34,0x01,0x33,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x78,0xfc,0xe6,0x00,0x1b, +0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c,0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x26,0x07,0x72,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0xb5,0xfc,0xe6,0x00,0x1b,0x40,0x14,0x01,0x0f,0x1c,0x1f,0x1c,0x02,0x3f,0x1c, +0x6f,0x1c,0x70,0x1c,0x8f,0x1c,0xcf,0x1c,0xdf,0x1c,0x06,0x1c,0x00,0x11,0x5d,0x71,0x35,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x29,0xfe,0x96,0x03,0xf6,0x05,0x9a,0x02,0x26,0x02,0xb9,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x78,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a, +0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1e,0xfe,0x96,0x03,0x29,0x04,0x00,0x02,0x26,0x02,0xba,0x00,0x00,0x01,0x07,0x08,0x5c,0x01,0x56,0x00,0x00,0x00,0x09,0xb3,0x01,0x1a,0x1a,0x06,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x04,0xda,0x05,0x9a,0x00,0x26,0x00,0x3b,0x00,0x00,0x00,0x07,0x08,0x5c,0x04,0x03, +0x00,0x00,0xff,0xff,0x00,0x1a,0xfe,0x96,0x03,0xc6,0x04,0x00,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x08,0x5c,0x02,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x00,0x1b,0x00,0x9b,0xb9,0x00,0x16,0xff,0xe0,0x40,0x11,0x0b,0x0d,0x01,0x4c,0x0f,0x20,0x0b,0x0d,0x01,0x4c,0x08,0x20,0x0b,0x0d,0x01,0x4c,0x01, +0xb8,0xff,0xe0,0x40,0x0a,0x0b,0x0d,0x01,0x4c,0x16,0x08,0x0c,0x00,0x4d,0x0f,0xb8,0xff,0xf8,0x40,0x09,0x0c,0x00,0x4d,0x0a,0x10,0x0b,0x00,0x4d,0x08,0xb8,0xff,0xf8,0x40,0x1d,0x0c,0x00,0x4d,0x01,0x08,0x0c,0x00,0x4d,0x0a,0x18,0x0d,0x1b,0x04,0x0e,0x19,0x19,0x17,0x00,0x10,0x0b,0x00,0x4d,0x00,0x00,0x1d,0x0b,0x0b,0x0e,0x09,0xb8, +0xff,0xf0,0x40,0x16,0x0b,0x00,0x4d,0x09,0x1b,0x04,0x0b,0x91,0x18,0x12,0x2f,0x0c,0x01,0x0c,0x0c,0x08,0x16,0x0f,0x03,0x01,0x08,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x33,0x2f,0x2b,0xc6,0x33,0x2f,0x11,0x17,0x39,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b, +0x2b,0x2b,0x2b,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x21,0x35,0x21,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x04,0x9a,0xcd,0xfe,0xb6,0x0f,0x12,0x04,0x0a,0x18,0xfe,0xac,0xce,0x01,0xb2,0xfe,0x66,0x01,0x94,0xfe,0x7a,0xce,0x01,0x25,0x1d,0x16,0x04,0x20,0x18,0x01,0x31,0xc1,0xfe, +0x71,0x01,0x8b,0xfe,0x6d,0x02,0x25,0x19,0x2e,0x17,0x30,0xfd,0xdb,0x02,0x8d,0x98,0x02,0x75,0xfe,0x08,0x32,0x32,0x42,0x26,0x01,0xf4,0xfd,0x8b,0x98,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x03,0x92,0x04,0x00,0x00,0x19,0x00,0x4e,0x40,0x2f,0x0d,0x0a,0x18,0x01,0x04,0x02,0x09,0x02,0x00,0x17,0x09,0x0c,0x0b,0x0e,0x13,0x0d,0x19,0x96, +0x0a,0x06,0x0f,0x00,0x1f,0x00,0x4f,0x00,0x5f,0x00,0x04,0x2f,0x00,0x3f,0x00,0x6f,0x00,0x7f,0x00,0x04,0x00,0x00,0x03,0x0f,0x16,0x15,0x08,0x03,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x71,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x13,0x21,0x01,0x33,0x13,0x16, +0x17,0x33,0x01,0x33,0x01,0x21,0x15,0x21,0x01,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x21,0x28,0x01,0x21,0xfe,0xe0,0xbf,0xc6,0x16,0x15,0x04,0x01,0x00,0xb5,0xfe,0xd4,0x01,0x1e,0xfe,0xe3,0x01,0x25,0xbf,0xc9,0x13,0x1a,0x04,0x05,0x2a,0xcd,0xbd,0x01,0x31,0xfe,0xdd,0x02,0x3d,0x01,0xc3,0xfe,0xa2,0x27,0x29,0x01,0xae, +0xfe,0x3d,0x86,0xfe,0x49,0x01,0x4c,0x1f,0x2f,0x09,0x45,0xfe,0xb4,0x01,0xb7,0x00,0xff,0xff,0x00,0x70,0xff,0xe8,0x03,0xf4,0x05,0xb2,0x02,0x06,0x04,0xbf,0x00,0x00,0xff,0xff,0x00,0x52,0xff,0xe7,0x03,0x3b,0x04,0x19,0x02,0x06,0x01,0x31,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x04,0xa4,0x05,0x9a,0x02,0x26,0x01,0xf2,0x00,0x00, +0x01,0x07,0x04,0x80,0x03,0xbe,0x00,0x00,0x00,0x09,0xb3,0x01,0x1d,0x1d,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x10,0xfe,0x96,0x03,0x92,0x04,0x00,0x02,0x26,0x02,0x12,0x00,0x00,0x01,0x07,0x04,0x80,0x02,0xac,0x00,0x00,0x00,0x09,0xb3,0x01,0x19,0x19,0x01,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x3e,0x04,0xc2,0x03,0x75, +0x06,0x0a,0x00,0x26,0x00,0xd9,0x00,0x00,0x00,0x07,0x00,0x8e,0x01,0x69,0x00,0x00,0xff,0xff,0x00,0x3f,0x04,0xc2,0x03,0x75,0x06,0x0a,0x00,0x27,0x00,0xd9,0x01,0x3b,0x00,0x00,0x00,0x06,0x00,0x43,0xed,0x00,0xff,0xff,0x00,0x3e,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x26,0x00,0xd9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x91,0xff,0x26, +0x00,0x0a,0xb3,0x01,0x06,0x06,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x03,0xe8,0x03,0x68,0x05,0x30,0x00,0x27,0x00,0xd9,0x01,0x2e,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xb8,0xff,0x26,0x00,0x0a,0xb3,0x01,0x07,0x07,0x02,0x00,0x10,0x3c,0x11,0x35,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x43, +0xed,0xc1,0x00,0x27,0x00,0x8e,0x00,0xbd,0xff,0xc1,0x00,0x07,0x00,0x43,0x01,0xf9,0xff,0xc1,0xff,0xff,0x00,0x3f,0x04,0x83,0x03,0xd0,0x05,0xcb,0x00,0x26,0x00,0x8e,0xb8,0xc1,0x00,0x27,0x00,0x43,0x00,0xf3,0xff,0xc1,0x00,0x07,0x00,0x8e,0x01,0xc4,0xff,0xc1,0xff,0xff,0x00,0x66,0xfd,0xfe,0x01,0xa8,0x00,0x2c,0x00,0x07,0x06,0x79, +0x00,0x00,0xfb,0x64,0x00,0x01,0x00,0x77,0x04,0x09,0x02,0x30,0x06,0x83,0x00,0x06,0x00,0x0d,0xb3,0x00,0x01,0x03,0x00,0x00,0x2f,0xce,0x01,0x2f,0xcd,0x31,0x30,0x01,0x25,0x35,0x25,0x15,0x05,0x05,0x02,0x30,0xfe,0x47,0x01,0xb9,0xfe,0xb6,0x01,0x4a,0x04,0x09,0xdd,0xc0,0xdd,0x7c,0xc1,0xc1,0x00,0x02,0x00,0xdb,0xfe,0x05,0x04,0x57, +0x00,0x1b,0x00,0x06,0x00,0x0d,0x00,0x2c,0x40,0x17,0x07,0x0a,0x05,0x40,0x06,0x80,0x0a,0x01,0x0a,0x80,0x30,0x09,0x40,0x09,0x02,0x09,0x09,0x03,0xc0,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x1a,0xce,0x33,0x2f,0x5d,0x1a,0xcd,0x5d,0x01,0x2f,0x1a,0xcd,0x2f,0xcc,0x31,0x30,0x13,0x37,0x27,0x35,0x05,0x15,0x05,0x01,0x03,0x23,0x03,0x33, +0x17,0x37,0xdb,0xc8,0xc8,0x01,0x37,0xfe,0xc9,0x03,0x7c,0xab,0xc0,0xab,0x7c,0x8f,0x8f,0xfe,0x81,0x8f,0x8f,0x7c,0xab,0xc0,0xab,0x01,0x94,0xfe,0xc9,0x01,0x37,0xc8,0xc8,0x00,0x00,0x04,0x00,0x35,0xff,0xf5,0x05,0xae,0x05,0x9a,0x00,0x07,0x00,0x0a,0x00,0x40,0x00,0x44,0x00,0x8e,0x40,0x0f,0x08,0x02,0x01,0x09,0x01,0x0a,0x03,0x04, +0x09,0x04,0x2c,0x13,0x3b,0x25,0x27,0xb8,0x01,0x0e,0x40,0x0c,0x0f,0x22,0x3f,0x22,0x5f,0x22,0x6f,0x22,0x04,0x22,0x0b,0x10,0xb8,0x01,0x0e,0xb3,0x3b,0x02,0x08,0x03,0xb8,0x01,0x0e,0xb7,0x0a,0x0a,0x06,0x05,0x43,0x44,0x09,0x06,0xbc,0x01,0x06,0x00,0x01,0x01,0x0a,0x00,0x05,0x01,0x0a,0xb3,0x41,0x43,0x0b,0x2c,0xb8,0x01,0x0c,0xb2, +0x1d,0x25,0x36,0xb8,0x01,0x0c,0x40,0x09,0x13,0x13,0x46,0x0a,0x08,0x05,0x00,0x00,0x05,0x2f,0x33,0x2f,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x32,0xd4,0xed,0x33,0x2f,0x2f,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x32,0x2f,0xed,0x32,0x2f,0x5d,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x10,0x87,0x05,0xc0,0xc0, +0x10,0x87,0xc0,0xc0,0x01,0x23,0x27,0x21,0x07,0x23,0x01,0x33,0x13,0x03,0x03,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x01,0x23,0x01,0x02,0xd3,0x83, +0x49,0xfe,0xf7,0x46,0x83,0x01,0x17,0x6f,0x23,0x5d,0x5a,0x02,0xbe,0x17,0x36,0x37,0x34,0x15,0x3b,0x46,0x17,0x29,0x37,0x20,0x26,0x42,0x32,0x1c,0x2d,0x49,0x5d,0x30,0x6a,0x3e,0x59,0x57,0x18,0x2e,0x24,0x16,0x13,0x24,0x34,0x20,0x24,0x46,0x37,0x21,0x29,0x46,0x5e,0x35,0x1a,0x38,0x35,0x2f,0x11,0x01,0x4d,0xfc,0xa6,0x90,0x03,0x5b, +0x02,0xc0,0xc2,0xc2,0x02,0xd9,0xfe,0x59,0x01,0x01,0xfe,0xff,0xfc,0xc8,0x14,0x1f,0x16,0x0c,0x2d,0x2b,0x17,0x23,0x1f,0x1d,0x10,0x14,0x27,0x32,0x3f,0x2b,0x35,0x4c,0x32,0x18,0x20,0x8b,0x3b,0x09,0x14,0x20,0x17,0x15,0x21,0x1d,0x1c,0x10,0x13,0x2b,0x35,0x40,0x29,0x38,0x4f,0x33,0x17,0x07,0x0d,0x12,0x0b,0x05,0x74,0xfa,0x66,0x05, +0x9a,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x03,0x0c,0x04,0x01,0x00,0x09,0x00,0x2d,0x40,0x16,0x07,0x84,0x06,0x02,0x06,0x03,0x06,0x03,0x06,0x0b,0x00,0x02,0x95,0x05,0x05,0x06,0x01,0x95,0x08,0x15,0x06,0x0f,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x37,0x21,0x11, +0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x48,0x02,0x21,0xfe,0x34,0x01,0xcc,0xa3,0xfd,0x3c,0x8a,0x01,0x5d,0x8c,0x01,0x8e,0xfb,0xff,0x00,0xff,0xff,0x00,0x5a,0xff,0xe8,0x03,0x6c,0x04,0x18,0x02,0x06,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x15,0x00,0x86,0xb9,0x00,0x15,0xff,0xf0,0xb3,0x10,0x06, +0x4d,0x15,0xb8,0xff,0xf0,0xb4,0x0b,0x0d,0x06,0x4c,0x15,0xb8,0xff,0xe8,0xb3,0x0a,0x06,0x4d,0x15,0xb8,0xff,0xe0,0xb3,0x09,0x06,0x4d,0x15,0xb8,0xff,0xc0,0x40,0x32,0x0a,0x1f,0x48,0x15,0x15,0x17,0x01,0x0e,0x11,0x11,0x10,0x0c,0x14,0x7e,0x01,0x07,0x03,0x03,0x09,0x05,0x01,0x13,0x02,0x91,0x05,0x10,0x05,0x0f,0x06,0x91,0x09,0x0c, +0x09,0x2f,0x09,0x6f,0x09,0x7f,0x09,0x03,0x05,0x09,0x05,0x09,0x0a,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x31,0x30,0x21,0x21, +0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x03,0xa4,0xfd,0x18,0xa0,0xa0,0xa0,0xa0,0xa8,0x01,0x2e,0xfe,0xd2,0x01,0x2e,0xfe,0xd2,0x02,0x40,0x01,0xda,0x98,0x9e,0x98,0x01,0xf2,0xfe,0x0e,0x98,0x9e,0x98,0xfe,0xbe,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x36,0x05,0xec, +0x00,0x13,0x00,0x51,0x40,0x2d,0x08,0x03,0x03,0x01,0x0e,0x12,0x12,0x00,0x84,0x09,0x05,0x01,0x0f,0x07,0x96,0x08,0x0c,0x08,0x13,0x03,0x96,0x04,0x10,0x04,0x0f,0x08,0x1f,0x08,0x3f,0x08,0x03,0x6f,0x04,0x8f,0x04,0x02,0x08,0x04,0x08,0x04,0x01,0x0a,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x21,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x01,0x77,0xa4,0xbf,0xbf,0xbf,0xbf,0xa4,0xbf,0xbf,0xbf,0xbf,0x01,0xe1,0x86,0x92,0x86,0x02,0x6d,0xfd,0x93,0x86,0x92, +0x86,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x03,0xf9,0x05,0x9a,0x00,0x26,0x00,0x2f,0x55,0x00,0x00,0x07,0x00,0xd8,0x00,0x04,0xfd,0x66,0x00,0x02,0x00,0x1c,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x51,0x40,0x29,0x12,0x12,0x14,0x0b,0x7d,0x18,0x18,0x1c,0x02,0x10,0x14,0x14,0x00,0x01,0x7e,0x02,0x06,0x02,0x04,0x04, +0x02,0x00,0x91,0x14,0x13,0x03,0x91,0x06,0x10,0x06,0x14,0x06,0x14,0x06,0x02,0x0f,0x91,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x11,0x23,0x11,0x23, +0x35,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x15,0x21,0x15,0x21,0x15,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xa0,0xa0,0x01,0x8a,0xe6,0xfd,0xfe,0xe7,0xef,0xbd,0x01,0x24,0xfe,0xdc,0xb0,0xae,0xb7,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x03,0x8a,0x98,0x01,0x78,0xe0,0xcc,0xcc,0xfe,0xfc,0x02,0xe4,0xe0,0x98,0xd4,0x9f, +0x91,0x01,0x1c,0x00,0xff,0xff,0x00,0xbc,0xfe,0x96,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x01,0x07,0x0a,0xbb,0x01,0xa2,0x00,0x00,0x00,0x09,0xb3,0x02,0x29,0x29,0x09,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0x5a,0xfe,0xb5,0x03,0x95,0x05,0x3d,0x02,0x26,0x00,0x44,0x00,0x00,0x01,0x07,0x04,0x96,0x02,0x03,0xff,0xa3, +0x00,0x0a,0xb4,0x02,0x4f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xb5,0xff,0x12,0x02,0xd7,0x05,0x9a,0x02,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x04,0x96,0x01,0x45,0x00,0x00,0x00,0x0a,0xb4,0x01,0x4f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xb2,0x05,0x9a,0x02,0x06,0x02,0xc1,0x00,0x00, +0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x92,0x05,0xec,0x00,0x26,0x00,0x4b,0x00,0x00,0x01,0x07,0x0a,0xbe,0x02,0x45,0x00,0x00,0x00,0x09,0xb3,0x01,0x12,0x12,0x00,0x10,0x3c,0x11,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x04,0xdd,0x05,0x9a,0x00,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x7d,0x00,0x00,0xff,0xff,0x00,0xa6, +0xfe,0x8a,0x04,0x0c,0x05,0xec,0x00,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xbf,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x80,0x04,0xb6,0x05,0x9a,0x00,0x26,0x00,0x3d,0x00,0x00,0x00,0x07,0x0a,0xbd,0x02,0x56,0x00,0x00,0xff,0xff,0x00,0x21,0xfe,0x8b,0x03,0xbd,0x04,0x00,0x00,0x26,0x00,0x5d,0x00,0x00,0x00,0x07,0x0a,0xbe, +0x01,0x70,0x00,0x01,0x00,0x02,0x00,0x4b,0x00,0x00,0x04,0x3a,0x04,0x23,0x00,0x21,0x00,0x2d,0x00,0x5c,0x40,0x2e,0x0a,0xef,0x1c,0x1f,0x1b,0x00,0x1b,0x0f,0x2b,0x28,0x1a,0x13,0x13,0x19,0x22,0x22,0x00,0x18,0x19,0x19,0x2f,0x28,0xef,0x00,0x1e,0x1e,0x00,0x1f,0x2b,0x1e,0x25,0x1e,0x1c,0x0f,0x05,0x1d,0x1d,0x13,0x1b,0x15,0x18,0x0f, +0x25,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x13,0x16,0x16, +0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x07,0x27,0x37,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x95,0x26,0x41,0x53,0x2d,0x2c,0x52,0x3e,0x25,0x1d,0x37,0x50,0x32,0x9f,0x14,0x18,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0x9a,0xfe,0xf9,0x7a,0x3c,0x7b,0x15,0x1c,0x01,0x31,0x26, +0x24,0x1e,0x31,0x0f,0x10,0x3f,0x3b,0x03,0x3f,0x3c,0x56,0x37,0x1b,0x1a,0x33,0x4d,0x32,0x31,0x4f,0x43,0x3a,0x1d,0xfe,0xd2,0x26,0x42,0x1e,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0xf6,0x41,0x7a,0x3e,0x31,0x68,0x43,0x24,0x2f,0x2f,0x35,0x24,0x3f,0x23,0x23,0x46,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07, +0x00,0x22,0x40,0x10,0x07,0x03,0x7e,0x04,0x01,0x01,0x04,0x02,0x91,0x07,0x07,0x04,0x05,0x03,0x04,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x22,0x40,0x10,0x07,0x03,0x84,0x04,0x00,0x00,0x04,0x02,0x95,0x07,0x07,0x04,0x05,0x0f,0x04,0x15,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c,0x8b,0xfe,0x2f,0x04, +0x00,0xfe,0x5c,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x05,0x38,0x04,0x18,0x00,0x15,0x00,0x1f,0x00,0x35,0xb9,0x00,0x1f,0x01,0x2e,0x40,0x18,0x0e,0x07,0x0e,0x07,0x04,0x13,0x83,0x1a,0x1a,0x21,0x09,0x83,0x04,0x1d,0x95,0x10,0x10,0x07,0x0f,0x16,0x0d,0x95,0x01,0x16,0x00,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x05,0x23,0x22,0x00,0x35,0x10,0x37,0x33,0x06,0x11,0x14,0x16,0x33,0x33,0x11,0x10,0x21,0x32,0x12,0x15,0x14,0x00,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x15,0x03,0x36,0xd2,0xec,0xfe,0xe8,0xd2,0xc2,0xec,0xbf,0x9b,0x1e,0x01,0x12,0xbc,0xea,0xfe,0xe7,0xfe,0xf5,0x22,0x98,0xc2, +0x93,0x67,0x82,0x18,0x01,0x20,0xf6,0x01,0x3b,0xc7,0xd8,0xfe,0xd2,0xb8,0xce,0x02,0x95,0x01,0x0f,0xfe,0xd7,0xfb,0xe9,0xfe,0xdd,0x8c,0xd3,0xb5,0xb4,0xdc,0x81,0x00,0x00,0x02,0x00,0xaf,0x03,0xf9,0x02,0x48,0x05,0xf5,0x00,0x03,0x00,0x0f,0x00,0x22,0xb3,0x0d,0xc0,0x07,0x01,0xb8,0x01,0x32,0x40,0x09,0x02,0x0a,0xc1,0x04,0x04,0x02, +0x03,0x03,0x02,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x48,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x05,0xf5,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x00,0x00,0x02, +0x00,0xaf,0x03,0xfd,0x02,0xa0,0x05,0xee,0x00,0x13,0x00,0x17,0x00,0x28,0x40,0x14,0x14,0x14,0x16,0x16,0x0c,0xc0,0x02,0x07,0xc1,0x0f,0x11,0x1f,0x11,0x02,0x11,0x11,0x15,0x17,0x17,0x15,0x00,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x33,0x2f,0x33,0x2f,0x31,0x30,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x01,0x27,0x01,0xcc,0x1d,0x0f,0x19,0x24,0x15,0x15,0x24,0x1b,0x10,0x11,0x1b,0x25,0x13,0x12,0x24,0x01,0xc6,0xfe,0x99,0x4d,0x01,0x67,0x05,0x47,0x1d,0x29,0x13,0x24,0x1a,0x10,0x11,0x1c,0x23,0x13,0x14,0x23,0x1a,0x10,0x0f,0x2c,0xfe,0x98,0x4d,0x01,0x68,0x00,0x00,0x02,0x00,0xaf,0x04,0x2b, +0x02,0xab,0x05,0xc4,0x00,0x03,0x00,0x0f,0x00,0x27,0x40,0x14,0x0a,0xc0,0x04,0x04,0x01,0x00,0x00,0x01,0x07,0xc1,0x0d,0x40,0x09,0x0e,0x48,0x0d,0x0d,0x02,0xe7,0x01,0x00,0x2f,0xed,0x33,0x2f,0x2b,0xed,0x01,0x2f,0x33,0x2f,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, +0x26,0x02,0xab,0xfe,0x04,0x01,0xfc,0xfe,0xa0,0x39,0x2a,0x28,0x38,0x37,0x29,0x29,0x3a,0x04,0x2b,0x6d,0xc9,0x28,0x3b,0x3a,0x29,0x29,0x39,0x39,0x00,0x01,0x00,0x75,0x04,0xfe,0x03,0x69,0x06,0x58,0x00,0x05,0x00,0x18,0x40,0x0a,0x04,0xea,0x01,0x01,0x02,0x05,0x05,0x03,0xbe,0x02,0x00,0x2f,0xed,0x33,0x2f,0x01,0x2f,0x33,0x2f,0xed, +0x31,0x30,0x01,0x11,0x21,0x35,0x21,0x35,0x03,0x69,0xfd,0x0c,0x02,0x5f,0x06,0x58,0xfe,0xa6,0x95,0xc5,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x25,0x40,0x11,0x09,0xea,0x00,0x00,0x04,0x07,0x07,0x03,0xea,0x04,0x08,0x02,0xbe,0x05,0x05,0x00,0x04,0x00,0x2f,0x33,0x33,0x2f,0xed,0x32,0x01,0x2f,0xed,0x33, +0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x21,0x11,0x02,0x23,0xfe,0xe7,0x95,0x03,0xdf,0xfe,0x64,0x04,0x7d,0x01,0x46,0xfe,0xb9,0x01,0xdc,0x95,0xfe,0xba,0x00,0x00,0x01,0x00,0x75,0x04,0x7c,0x04,0x54,0x06,0x58,0x00,0x09,0x00,0x27,0x40,0x12,0x00,0xea,0x09,0x09,0x05,0x02,0x02,0x06,0xea,0x05, +0x01,0x07,0xbe,0x04,0x09,0x05,0x05,0x04,0x00,0x2f,0x33,0x2f,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x11,0x02,0xb8,0x01,0x9c,0xfc,0x21,0x95,0x01,0x19,0x06,0x57,0xfe,0xba,0x95,0x01,0xdc,0xfe,0xb9,0x01,0x46,0x00,0x00,0x01,0x00,0x00,0xfd,0xff, +0x03,0x57,0x02,0x5e,0x00,0x23,0x00,0x34,0xb1,0x05,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x16,0x1f,0x05,0x02,0x2f,0x1b,0x01,0x1b,0x11,0xb8,0x04,0xfb,0xb6,0x1f,0x0b,0x2f,0x0b,0x02,0x0b,0x00,0xba,0x04,0xfb,0x00,0x02,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x22, +0x26,0x27,0x07,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x03,0x57,0x16,0x3f,0x4a,0x19,0x05,0x44,0x78,0xa5,0x61,0x33,0x6c,0x39,0x7c,0x59,0x55,0x74,0x45,0x1e,0x13,0x1f,0x29,0x16,0xa1,0x1d,0x2c,0x0e,0x06,0x1c,0x30,0x49,0x99,0xa7,0x24,0x21,0x01, +0x8c,0xd5,0x8e,0x48,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x4b,0x8e,0x88,0x83,0x3f,0x4b,0xa0,0x51,0x23,0x34,0x22,0x10,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00, +0x00,0x07,0x0f,0x53,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0xb9,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xaf,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, +0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x90,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0xf2,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xe1,0x04,0x31,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x09,0xf7,0x65, +0x00,0x0a,0xb4,0x01,0x2f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xfb,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf2,0xfe,0x00,0x00,0x06,0x0f,0x50,0xce,0x05,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0x07,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9a, +0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x1f,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9a,0x03,0x57,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x04,0xbc,0x02,0x26,0x0b,0x0c, +0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0x9a,0xfc,0xd3,0xff,0xff,0x00,0xab,0xff,0xea,0x03,0x57,0x03,0xce,0x02,0x06,0x09,0x28,0x00,0x00,0xff,0xff,0x00,0xa1,0xff,0xf2,0x04,0x02,0x03,0xd7,0x02,0x06,0x08,0xf3,0x00,0x00,0x00,0x03,0x00,0x79,0xfe,0x1e,0x06,0xf3,0x06,0x02,0x00,0x13,0x00,0x37,0x00,0x3b,0x00,0x1f,0x40,0x0e,0x28,0x23, +0x37,0x0a,0x00,0x23,0x00,0x23,0x00,0x38,0x3a,0x00,0x38,0x1b,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xd6,0xcd,0x11,0x33,0x31,0x30,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x26,0x26,0x35,0x34,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x15,0x36,0x33,0x32,0x1e,0x02,0x15, +0x14,0x0e,0x04,0x15,0x14,0x16,0x17,0x13,0x09,0x02,0x03,0x91,0x16,0x26,0x1c,0x10,0x11,0x1d,0x25,0x15,0x16,0x26,0x1d,0x10,0x12,0x1d,0x26,0x5b,0x08,0x13,0x2b,0x40,0x4b,0x40,0x2b,0x34,0x57,0x72,0x3e,0x87,0x7c,0x67,0x89,0x24,0x40,0x30,0x1c,0x2a,0x3e,0x49,0x3e,0x2a,0x0c,0x0b,0x78,0xfc,0xc3,0x03,0x3d,0x03,0x3d,0x89,0x12,0x1d, +0x25,0x14,0x15,0x26,0x1d,0x11,0x12,0x1d,0x26,0x14,0x16,0x26,0x1c,0x10,0x01,0x63,0x15,0x3d,0x25,0x2d,0x49,0x45,0x44,0x4f,0x5f,0x3d,0x40,0x60,0x40,0x21,0x54,0x9e,0x6d,0x12,0x24,0x35,0x22,0x2e,0x4d,0x46,0x43,0x4a,0x54,0x34,0x22,0x43,0x15,0xfd,0x44,0x03,0xf2,0x03,0xf2,0xfc,0x0e,0x00,0x00,0x01,0x00,0x3f,0x04,0xc1,0x03,0x26, +0x05,0xba,0x00,0x17,0x00,0x1e,0x40,0x0e,0x0c,0x00,0x0d,0x07,0x96,0x12,0x12,0x17,0x96,0x0c,0x0f,0x02,0x01,0x02,0x00,0x2f,0x5d,0x33,0xed,0x32,0x2f,0xed,0x01,0x2f,0xc4,0xcd,0x31,0x30,0x01,0x15,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x03,0x26,0x29,0x3f,0x88,0x81,0x71,0x29, +0x16,0x22,0x18,0x0c,0x80,0x18,0x33,0x53,0x3a,0x38,0x7e,0x7f,0x7d,0x37,0x05,0x40,0x7f,0x26,0x2e,0x26,0x13,0x21,0x2d,0x19,0x2f,0x5a,0x46,0x2a,0x26,0x2e,0x26,0x00,0xff,0xff,0x00,0x5e,0xff,0x3f,0x06,0x25,0x05,0xb2,0x02,0x06,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x29,0x04,0x10,0x04,0x18,0x02,0x06,0x00,0x54,0x00,0x00, +0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a,0x00,0x00,0xff,0xff,0x00,0x18,0x00,0x00,0x05,0xb0,0x04,0x00,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x9d,0x05,0xb1,0x00,0x36,0x00,0x57,0x40,0x2e,0x29,0x7d,0x16,0x2f,0x7d,0x0b,0x2c,0x11,0x16,0x01,0x11,0x16,0x0b,0x0b,0x16,0x11, +0x01,0x04,0x38,0x1d,0x7e,0x1e,0x2c,0x10,0x11,0x11,0x10,0x92,0x59,0x11,0x11,0x06,0x24,0x34,0x06,0x91,0x59,0x34,0x13,0x24,0x19,0x91,0x59,0x24,0x04,0x1e,0x00,0x2f,0x3f,0x2b,0x00,0x18,0x3f,0x2b,0x11,0x12,0x00,0x39,0x18,0x2f,0x2b,0x11,0x12,0x00,0x39,0x01,0x18,0x2f,0xe1,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10, +0xe1,0x10,0xe1,0x31,0x30,0x25,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x04,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0xf6,0x17,0x3a,0x3e,0x40,0x1d,0x3c,0x62,0x46,0x27,0x37,0x71, +0xab,0x74,0x4c,0x7a,0x56,0x2f,0x84,0x77,0x8e,0x90,0xa8,0x4f,0x83,0xa8,0x59,0x5e,0x99,0x6d,0x3b,0x9c,0x98,0x01,0xaf,0x43,0x74,0x9e,0x5c,0x56,0x72,0x0d,0xad,0x0c,0x15,0x11,0x09,0x21,0x40,0x61,0x40,0x41,0x6e,0x54,0x34,0x07,0x7a,0x09,0x2b,0x45,0x61,0x3f,0x66,0x63,0x8d,0x9d,0xfc,0x0f,0x04,0x09,0x79,0xa2,0x63,0x2a,0x2f,0x57, +0x78,0x4a,0x86,0xae,0x29,0x05,0x47,0xfe,0xb3,0x5b,0x93,0x66,0x37,0x16,0xff,0xff,0xfc,0x8c,0x04,0xa7,0xff,0x4c,0x07,0x68,0x00,0x07,0x00,0x0d,0xfc,0x40,0x01,0xce,0xff,0xff,0x00,0x4a,0xff,0xec,0x06,0xd9,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x4b,0xfd,0xb9, +0x00,0x07,0xb2,0x02,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xd7,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x00,0xf2,0x04,0x49,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x43,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x00,0x03,0xa4,0x00,0x09, +0x00,0x1b,0x40,0x0c,0x09,0x08,0x01,0x07,0x03,0x04,0x02,0x05,0x04,0x00,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x11,0x17,0x39,0x2f,0x31,0x30,0x01,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x06,0x00,0xfb,0x5a,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0xa8,0x02,0x12,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x00,0x01, +0x00,0x96,0xff,0xf4,0x03,0x31,0x05,0x5e,0x00,0x09,0x00,0x10,0xb6,0x08,0x01,0x07,0x03,0x03,0x04,0x00,0x00,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x05,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27,0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x0c,0x04,0xa4,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfb,0x5a,0x00,0x01,0x00,0xe7, +0x01,0x08,0x06,0x52,0x03,0xa4,0x00,0x09,0x00,0x17,0x40,0x0a,0x01,0x02,0x08,0x03,0x07,0x05,0x00,0x09,0xbe,0x00,0x00,0x2f,0xed,0x01,0x2f,0x2f,0xcd,0x17,0x39,0x31,0x30,0x13,0x21,0x27,0x35,0x01,0x15,0x01,0x35,0x37,0x21,0xe7,0x04,0xa6,0x7b,0x01,0x40,0xfe,0xc0,0x79,0xfb,0x5c,0x02,0x98,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0x94, +0x76,0x00,0x00,0x01,0x00,0x96,0xff,0xf6,0x03,0x31,0x05,0x60,0x00,0x09,0x00,0x10,0xb6,0x09,0x01,0x02,0x08,0x03,0x06,0x05,0x00,0x2f,0xcd,0x17,0x39,0x2f,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79,0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0x60,0xfb,0x58,0x7d,0xfe,0xc1,0x01,0x3f,0x7b,0x04, +0xa6,0x00,0x00,0x01,0x00,0x96,0x01,0x08,0x06,0x50,0x03,0xa4,0x00,0x0f,0x00,0x1f,0x40,0x0f,0x01,0x0a,0x0b,0x03,0x00,0x0e,0x09,0x02,0x08,0x03,0x03,0x06,0x02,0xbe,0x09,0x00,0x2f,0xed,0x01,0x2f,0xcd,0x17,0x39,0x2f,0xcd,0x17,0x39,0x31,0x30,0x01,0x37,0x21,0x17,0x15,0x01,0x35,0x01,0x15,0x07,0x21,0x27,0x35,0x01,0x15,0x01,0x05, +0x10,0x79,0xfb,0xd1,0x7b,0xfe,0xc1,0x01,0x3f,0x7d,0x04,0x33,0x7b,0x01,0x40,0xfe,0xc0,0x01,0x9c,0x76,0x76,0x94,0x01,0x4c,0x04,0x01,0x4c,0x94,0x78,0x78,0x94,0xfe,0xb4,0x04,0xfe,0xb4,0xff,0xff,0x00,0x33,0x00,0x00,0x04,0xf8,0x05,0x9a,0x02,0x06,0x00,0xa9,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x00,0x04,0x92,0x03,0xac,0x00,0x05, +0x00,0x13,0xb7,0x02,0xbd,0x05,0x03,0x02,0xbe,0x05,0x00,0x00,0x2f,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x15,0x21,0xe6,0x84,0x03,0x28,0xfc,0x54,0x03,0xac,0xfc,0xd7,0x83,0x00,0x01,0x00,0xe6,0x00,0x6a,0x04,0xb7,0x04,0x4f,0x00,0x19,0x00,0x1e,0x40,0x0d,0x13,0x14,0x14,0x1b,0x06,0x07,0x00,0x0d,0x14,0x10, +0x07,0x01,0x07,0x00,0x2f,0x5d,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xcd,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x02,0xc8,0x48,0x7f,0x5f,0x38,0x84,0x55,0x8a,0xb0,0x5a,0x5d,0xb0,0x88,0x53,0x84,0x3c,0x64,0x83,0x03,0xd1,0x31,0x65,0x9a, +0x69,0xfe,0x32,0x01,0xcf,0x8a,0xc9,0x83,0x40,0x40,0x83,0xc9,0x8a,0xfe,0x31,0x01,0xce,0x66,0x99,0x67,0x33,0x00,0x00,0x03,0x00,0xe6,0x00,0x70,0x04,0xac,0x04,0x3a,0x00,0x13,0x00,0x27,0x00,0x3b,0x00,0x2e,0x40,0x17,0x37,0xaf,0x2d,0x23,0xaf,0x19,0x2d,0x19,0x2d,0x19,0x3d,0x0f,0xaf,0x05,0x28,0xb0,0x32,0x10,0x1e,0x0a,0xb0,0x14, +0x00,0x00,0x2f,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x55,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x02,0xcf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xfe,0x76,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x70,0x12,0x1e,0x29,0x17,0x17,0x29, +0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x02,0xe9,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0xe6,0x00,0x6a,0x05,0x38,0x04,0x3b,0x00,0x1b,0x00,0x2e,0x40,0x16,0x15,0x0f,0x1a,0x13, +0x16,0xea,0x08,0x05,0x0f,0xbe,0x0e,0x0e,0x07,0x1a,0xbe,0x1b,0x1b,0x16,0x06,0xbe,0x13,0x07,0x00,0x2f,0x33,0xed,0x32,0x32,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x31,0x30,0x25,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x21,0x15,0x21,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x21, +0x15,0x03,0xa8,0x6a,0xb3,0x87,0x53,0x0a,0xc1,0xc1,0x0c,0x5b,0x8a,0xb0,0x60,0x01,0x90,0xfe,0x80,0xad,0xc1,0x11,0x02,0xff,0xfd,0x01,0x11,0xcb,0xc1,0x01,0x62,0x6a,0x37,0x6b,0x9f,0x69,0x84,0x68,0x9d,0x69,0x35,0x84,0x8d,0x92,0x84,0x93,0x93,0x84,0x00,0x01,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x03, +0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x05,0x9a,0xfa,0x66,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x00,0x00,0x07,0x5b,0x04,0xac,0x00,0x03,0x00,0x0d,0xb3,0x03,0x02,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x11,0x21,0xa5,0x06,0xb6,0xf9,0x4a,0x04,0xac,0xfb,0x54, +0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x00,0x02,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x21,0x03,0x72,0x03,0x22,0xf9,0xbc,0x05,0x9a,0xfa,0x66,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f,0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x01,0x00,0x2f,0x2f,0x01,0x2f, +0x2f,0x31,0x30,0x01,0x01,0x11,0x06,0x3f,0xfa,0x66,0x02,0xcd,0xfe,0x94,0x02,0xd8,0x00,0x01,0x00,0x50,0x00,0x00,0x06,0x94,0x05,0x9a,0x00,0x02,0x00,0x0d,0xb3,0x01,0x00,0x02,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x21,0x01,0x50,0x06,0x44,0xfc,0xde,0x05,0x9a,0xfa,0x66,0x00,0x00,0x01,0x00,0xa5,0x01,0x61,0x06,0x3f, +0x04,0x39,0x00,0x02,0x00,0x0d,0xb3,0x01,0x02,0x01,0x00,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x11,0x01,0x06,0x3f,0xfa,0x66,0x04,0x39,0xfd,0x28,0x01,0x6c,0x00,0x02,0x00,0x8c,0xff,0xe7,0x06,0x58,0x05,0xb2,0x00,0x1b,0x00,0x33,0x00,0x15,0xb7,0x0e,0x28,0x1c,0x00,0x21,0x15,0x2f,0x07,0x00,0x2f,0xcd,0x2f,0xcd,0x01,0x2f, +0xcd,0x2f,0xcd,0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x8c,0x35,0x60,0x87,0xa5,0xbe,0x66,0x66,0xbe,0xa5,0x88,0x61,0x35,0x35,0x61,0x88,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x7c,0x61, +0xa7,0xe1,0x80,0x55,0x9f,0x89,0x71,0x51,0x2c,0x2c,0x51,0x71,0x89,0x9f,0x55,0x80,0xe1,0xa7,0x61,0x02,0xcc,0x66,0xbe,0xa5,0x87,0x61,0x35,0x35,0x61,0x87,0xa5,0xbe,0x66,0x67,0xbd,0xa5,0x87,0x60,0x35,0x35,0x60,0x87,0xa5,0xbe,0x66,0x80,0xe1,0xa7,0x61,0x2c,0x50,0x70,0x8a,0x9e,0x55,0x55,0x9f,0x89,0x71,0x50,0x2c,0x61,0xa8,0xe1, +0x00,0x02,0x02,0x0d,0x00,0x00,0x04,0xd7,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1a,0x40,0x0a,0x0e,0x02,0x04,0x03,0x13,0x09,0x13,0x09,0x03,0x00,0x00,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xcd,0xdd,0xcd,0x31,0x30,0x01,0x21,0x11,0x21,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x02,0x0d, +0x02,0xca,0xfd,0x36,0x64,0x28,0x46,0x5d,0x36,0x35,0x5d,0x46,0x29,0x29,0x46,0x5d,0x35,0x36,0x5d,0x46,0x28,0x05,0x9a,0xfa,0x66,0x02,0xcd,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x35,0x35,0x5e,0x46,0x28,0x28,0x46,0x5e,0x00,0x03,0x00,0xa5,0x00,0x00,0x06,0x3f,0x05,0x9a,0x00,0x03,0x00,0x1d,0x00,0x31,0x00,0x1f,0x40,0x0d,0x1e,0x04, +0x03,0x28,0x12,0x02,0x2d,0x0b,0x03,0x22,0x23,0x17,0x00,0x00,0x2f,0xdd,0xce,0x3f,0xdd,0xce,0x01,0x2f,0xdd,0xce,0x2f,0xdd,0xce,0x31,0x30,0x13,0x21,0x11,0x21,0x13,0x14,0x1e,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x17,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xa5, +0x05,0x9a,0xfa,0x66,0x64,0x2c,0x50,0x70,0x89,0x9d,0x55,0x55,0x9f,0x89,0x71,0x51,0x2c,0x61,0xa8,0xe2,0x80,0x55,0x9d,0x89,0x70,0x50,0x2c,0x67,0x51,0x8b,0xba,0x6a,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xba,0x8b,0x51,0x05,0x9a,0xfa,0x66,0x02,0xcb,0x55,0x9d,0x89,0x70,0x50,0x2c,0x2c,0x50,0x70,0x89,0x9d,0x55,0x80,0xe2, +0xa8,0x61,0x2c,0x51,0x71,0x89,0x9f,0x55,0x6b,0xbc,0x8c,0x51,0x51,0x8c,0xbc,0x6b,0x6a,0xbb,0x8b,0x50,0x50,0x8b,0xbb,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0xb2,0x00,0x2b,0x00,0x1e,0x40,0x0d,0x0f,0x1c,0x1c,0x07,0x24,0x07,0x0c,0x1f,0x1f,0x16,0x22,0x00,0x26,0x00,0x3f,0x3f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39, +0x2f,0xcd,0x31,0x30,0x01,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x1e,0x03,0x17,0x15,0x21,0x35,0x3e,0x03,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x02,0xc1,0x2c,0x7b,0x86,0x84,0x69,0x41,0x34,0x55,0x6d,0x39,0x37,0x63,0x27,0x04,0x15,0x26,0x36,0x25,0xfd,0xee,0x25,0x36,0x26,0x15,0x04,0x27,0x63, +0x37,0x39,0x6d,0x55,0x34,0x41,0x69,0x84,0x86,0x7b,0x2c,0x05,0xb2,0x34,0x6b,0x76,0x82,0x93,0xa6,0x5f,0x52,0x7e,0x55,0x2c,0x1c,0x20,0x22,0x4c,0x4c,0x4a,0x1f,0x4b,0x4b,0x1f,0x4a,0x4c,0x4c,0x22,0x20,0x1c,0x2c,0x55,0x7e,0x52,0x5f,0xa6,0x93,0x82,0x76,0x6c,0x33,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x05,0x1c,0x05,0x9a,0x00,0x38, +0x00,0x1c,0x40,0x0b,0x32,0x06,0x06,0x10,0x28,0x10,0x2d,0x0b,0x0b,0x1c,0x00,0x00,0x2f,0x2f,0x39,0x2f,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x31,0x30,0x21,0x35,0x3e,0x03,0x35,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02, +0x23,0x22,0x2e,0x02,0x27,0x14,0x1e,0x02,0x17,0x15,0x01,0xb4,0x1c,0x36,0x2a,0x1a,0x13,0x25,0x2a,0x31,0x1f,0x41,0x73,0x55,0x31,0x2d,0x53,0x73,0x45,0x10,0x2d,0x52,0x72,0x46,0x46,0x72,0x52,0x2d,0x10,0x45,0x73,0x53,0x2d,0x31,0x55,0x73,0x41,0x1f,0x31,0x2a,0x25,0x13,0x19,0x2a,0x36,0x1d,0x4b,0x17,0x46,0x5c,0x72,0x44,0x0d,0x14, +0x0f,0x08,0x2c,0x51,0x74,0x48,0x41,0x71,0x55,0x32,0x01,0x34,0x37,0x40,0x73,0x55,0x32,0x32,0x55,0x73,0x40,0x37,0x34,0x01,0x32,0x55,0x71,0x41,0x48,0x74,0x51,0x2c,0x08,0x0f,0x14,0x0d,0x44,0x72,0x5c,0x46,0x17,0x4b,0x00,0x01,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x0d,0xb3,0x05,0x14,0x19,0x0c,0x00,0x2f,0x2f, +0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b,0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0x05,0x23, +0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b,0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0x00,0x01,0x00,0xcd,0x00,0x00,0x04,0xae,0x05,0x9a,0x00,0x03,0x00,0x0d,0xb3,0x02,0x00,0x03,0x01,0x00,0x2f,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x13,0x09,0x02,0xcd,0x01,0xf0,0x01, +0xf1,0xfe,0x0f,0x02,0xcc,0x02,0xce,0xfd,0x32,0xfd,0x34,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x2c,0x05,0xb2,0x00,0x16,0x00,0x2d,0x00,0x2d,0x40,0x17,0x13,0x12,0x7e,0x10,0x28,0x28,0x2f,0x1c,0x7d,0x05,0x13,0x10,0x03,0x17,0x91,0x0f,0x0a,0x04,0x21,0x91,0x14,0x00,0x13,0x00,0x3f,0x32,0xed,0x3f,0x33,0xed,0x3f,0x2f,0x01,0x2f, +0xe1,0x12,0x39,0x2f,0x33,0xe1,0x33,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x23,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xaa,0xef,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8, +0xa8,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x99,0x18,0x6a,0xbf,0x01,0x0b,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a,0xb7,0xfa,0x66,0xd6,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36, +0xff,0xff,0x00,0x0e,0x00,0x00,0x04,0x9a,0x04,0x18,0x02,0x06,0x05,0xef,0x00,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x08,0x74,0x05,0xb2,0x00,0x2c,0x00,0x54,0x40,0x2b,0x25,0x24,0x1c,0x2c,0x01,0x00,0x19,0x15,0x14,0x06,0x0a,0x09,0x10,0x24,0x2c,0x19,0x06,0x10,0x10,0x06,0x19,0x2c,0x24,0x05,0x2e,0x0c,0x0b,0x27,0x92,0x40,0x25,0x80, +0x21,0x04,0x14,0x05,0x0b,0x03,0x18,0x0f,0x01,0x0a,0x12,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01, +0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xcb,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x14,0x04,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x05,0x16,0xe1, +0x12,0x32,0x45,0x5c,0x3c,0x69,0x79,0x0b,0x9a,0x0c,0x47,0x16,0x23,0x1b,0x17,0x0b,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x35,0x55,0x03,0x54,0x46,0x68,0x44,0x22,0x79,0x79,0x63,0x16,0x29,0x3d,0x27,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x06,0x97, +0x04,0x18,0x00,0x2c,0x00,0x54,0x40,0x2b,0x0a,0x09,0x11,0x15,0x14,0x06,0x01,0x00,0x19,0x1d,0x2c,0x26,0x25,0x11,0x06,0x19,0x2c,0x25,0x25,0x2c,0x19,0x06,0x11,0x05,0x2e,0x0c,0x0b,0x29,0x95,0x40,0x26,0x80,0x22,0x10,0x14,0x05,0x0b,0x0f,0x18,0x10,0x01,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x3f,0x33,0x33,0x3f,0x1a,0xcc,0x1a,0xed, +0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x23,0x03,0x26,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x3e,0x03,0x33,0x32,0x16,0x17,0x23,0x26, +0x26,0x23,0x22,0x06,0x07,0x04,0x7d,0xaa,0xd3,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd4,0x0b,0x04,0x08,0x01,0x09,0x07,0x9a,0x0d,0x26,0x38,0x4e,0x35,0x5b,0x6b,0x0b,0x96,0x04,0x23,0x1c,0x21,0x2a,0x14,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc, +0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x26,0x36,0x14,0x2e,0x1a,0x02,0x46,0x32,0x4f,0x38,0x1d,0x6d,0x6f,0x2a,0x2a,0x3f,0x46,0x00,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x09,0x00,0x00,0x04,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x07,0x23,0x01,0x33,0x01,0x23,0x27, +0x11,0x01,0xa0,0x77,0x93,0x01,0x4b,0x04,0x01,0x4c,0x93,0x79,0x03,0x82,0x01,0x8b,0x79,0x01,0x3f,0xfe,0xc1,0x7b,0xfe,0x73,0x00,0x01,0x00,0x96,0x03,0x82,0x03,0x31,0x05,0xd3,0x00,0x09,0x00,0x0d,0xb3,0x00,0x09,0x04,0x09,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x01,0x11,0x37,0x33,0x01,0x23,0x01,0x33,0x17,0x11,0x02,0x25,0x79, +0x93,0xfe,0xb4,0x04,0xfe,0xb5,0x93,0x77,0x05,0xd3,0xfe,0x73,0x7b,0xfe,0xc1,0x01,0x3f,0x79,0x01,0x8b,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f,0x00,0x20,0x40,0x0f,0x00,0x03,0x03,0x0d,0x07,0x02,0x50,0x0a,0x01,0x0a,0x00,0x04,0x01,0x04,0x03,0x00,0x2f,0xd4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33, +0x2f,0xcd,0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x77,0x13,0x87,0x12,0x58,0x2e,0x41,0x41,0x2e,0x2d,0x42,0x42,0x06,0x89,0xfe,0x2d,0x01,0xd3,0xfc,0xfa,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x02,0x00,0xb4,0x03,0x83,0x01,0x92,0x06,0x89,0x00,0x03,0x00,0x0f, +0x00,0x20,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x02,0x5f,0x0a,0x01,0x0a,0x00,0x03,0x01,0x03,0x04,0x00,0x2f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31,0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x03,0x83, +0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x02,0x00,0xb4,0x01,0xd5,0x01,0x92,0x04,0xdb,0x00,0x03,0x00,0x0f,0x00,0x23,0x40,0x0f,0x03,0x00,0x00,0x07,0x0d,0x01,0x5f,0x0a,0x01,0x0a,0x00,0x00,0x01,0x00,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc4,0x5d,0xdd,0x5d,0xce,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x31, +0x30,0x13,0x13,0x33,0x13,0x03,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0xcb,0x12,0x87,0x13,0x54,0x2d,0x42,0x42,0x2d,0x2e,0x41,0x41,0x01,0xd5,0x01,0xd3,0xfe,0x2d,0x03,0x06,0x40,0x2e,0x2e,0x41,0x41,0x2e,0x2e,0x40,0x00,0x00,0x01,0x00,0x63,0xfe,0x3e,0x02,0x95,0xff,0x89,0x00,0x06,0x00,0x18,0x40,0x0c,0x00,0x04, +0x04,0x80,0x0f,0x05,0x1f,0x05,0x2f,0x05,0x03,0x05,0x00,0x2f,0x5d,0x1a,0xcd,0x01,0x2f,0xc4,0x31,0x30,0x01,0x23,0x27,0x07,0x23,0x13,0x33,0x02,0x95,0x78,0xa4,0xa6,0x70,0xd6,0x86,0xfe,0x3e,0xe5,0xe5,0x01,0x4b,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0x00,0x02,0x00,0xe8,0x01,0x3e, +0x03,0x9a,0x03,0x6c,0x00,0x03,0x00,0x07,0x00,0x1a,0x40,0x0b,0x00,0x01,0x04,0x05,0x04,0x05,0xbe,0x06,0x01,0xbe,0x02,0x00,0x2f,0xed,0xd6,0xed,0x01,0x2f,0x2f,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x9a,0xfd,0x4e,0x02,0xb2,0xfd,0x4e,0x02,0xb2,0x02,0xe8,0x84,0xfd,0xd2,0x84,0x00,0x01,0x00,0x94, +0x02,0xc3,0x01,0x43,0x05,0x9a,0x00,0x03,0x00,0x1c,0x40,0x0e,0x00,0x7d,0x03,0x04,0x0d,0x06,0x4d,0x03,0x03,0x05,0x04,0x01,0x00,0x03,0x00,0x3f,0xcd,0x11,0x12,0x01,0x39,0x2f,0x2b,0xe1,0x31,0x30,0x01,0x03,0x23,0x03,0x01,0x43,0x1e,0x73,0x1e,0x05,0x9a,0xfd,0x29,0x02,0xd7,0x00,0xff,0xff,0x00,0xa3,0x03,0xdb,0x01,0x34,0x05,0x9a, +0x02,0x06,0x00,0x0a,0x00,0x00,0x00,0x01,0x03,0x9b,0xfe,0x80,0x04,0x36,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00,0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x03,0x9b,0x9b,0x9b,0xfe,0x80,0x00,0x00,0x01,0x02,0xd6,0xfe,0x8a,0x03,0x64,0x00,0x00,0x00,0x03,0x00,0x0d,0xb3,0x01,0x00,0x03,0x00,0x00, +0x2f,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x21,0x33,0x11,0x23,0x02,0xd6,0x8e,0x8e,0xfe,0x8a,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x2f,0xb9,0x00,0x00,0x01,0x51,0xb2,0x06,0x06,0x0c,0xb8,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xbb,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0xb2,0x15,0x15,0x19, +0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c, +0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x05,0x00,0x00,0xfd,0xff,0x02,0xdd,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x00,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x35,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x14,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x10,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x33,0x29,0x2a,0x33,0x31, +0x2a,0x2a,0x34,0xfe,0x67,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe2, +0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x37,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0xb7,0x06,0x1b,0x1a,0x18,0x1b,0x1b,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x1d,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xcd,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30, +0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x21,0x35,0x21,0x02,0xdd,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xce,0xfe,0x50,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce, +0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0x66,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0xe1,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x40,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0xb8,0x01,0x51,0x40,0x0c,0x06,0x1f,0x19,0x1e,0x1c,0x1c,0x1a,0x19,0x1f,0x1f,0x09,0x0f,0xbb,0x01,0x55,0x00,0x15,0x00,0x03,0x01,0x55,0xb2, +0x09,0x09,0x21,0x11,0x00,0x33,0x2f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xdd,0xcd,0x33,0x01,0x2f,0xcd,0xdd,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x02,0xdd,0x33,0x29, +0x2a,0x33,0x31,0x2a,0x2a,0x34,0x04,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xcf,0xa5,0x66,0xa5,0x01,0xb0,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xfe,0xce,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb1,0xdf,0xdf,0x66,0x00,0x00,0x01,0x00,0x00,0xff,0x04,0x00,0xb9,0xff,0xbb,0x00,0x0b,0x00,0x1d,0xb9,0x00,0x00,0x01,0x51,0xb3, +0x06,0x06,0x0d,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x00,0xff,0x04,0x01,0xd6,0xff,0xbb,0x00,0x0b, +0x00,0x17,0x00,0x2f,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x0c,0x01,0x51,0xb3,0x12,0x12,0x19,0x03,0xb8,0x01,0x55,0xb2,0x09,0x09,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xed,0x30,0x31,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05, +0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0xd6,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x01,0xd6,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23, +0x00,0x45,0xb9,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x1e,0x0c,0xbb,0x01,0x51,0x00,0x12,0x00,0x18,0x01,0x51,0xb3,0x1e,0x1e,0x25,0x03,0xbe,0x01,0x55,0x00,0x09,0x00,0x1b,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0xb4,0x15,0x15,0x21,0x21,0x25,0x11,0x00,0x33,0x2f,0x33,0x2f,0xed,0x10,0xfd,0xde,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde, +0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x37,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x48,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0xe3, +0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xfe,0x5a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0x00,0x00,0xff,0x38,0x01,0xb0,0xff,0x9e,0x00,0x03,0x00,0x11,0xb5,0x00,0x02,0x00,0x02,0x02,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30, +0x31,0x05,0x21,0x35,0x21,0x01,0xb0,0xfe,0x50,0x01,0xb0,0xc8,0x66,0x00,0x00,0x01,0x00,0x00,0xfe,0x59,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x15,0x23,0x35,0x23,0x35,0x21,0x01,0xb0, +0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xdf,0xdf,0x66,0x00,0x00,0x01,0xff,0xa4,0x05,0x4e,0x00,0x5d,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5d,0x33,0x29,0x2a,0x33, +0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0x00,0x00,0xfd,0xff,0x02,0x77,0xff,0xbb,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3d,0xbf,0x00,0x18,0x01,0x51,0x00,0x1e,0x00,0x0c,0x01,0x51,0x00,0x12,0x00,0x00,0x01,0x51,0xb3,0x06,0x06,0x25,0x1b,0xbe,0x01,0x55,0x00,0x21,0x00,0x0f,0x01,0x55,0x00, +0x15,0x00,0x03,0x01,0x55,0xb2,0x09,0x09,0x25,0x11,0x00,0x33,0x2f,0xed,0xdc,0xed,0xdc,0xed,0x11,0x01,0x33,0x2f,0xfd,0xde,0xfd,0xde,0xed,0x30,0x31,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xdf,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa1,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xb0,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0xa5,0x02,0x18,0x00,0x5e,0x02,0xcf,0x00,0x0b, +0x00,0x15,0xbd,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x00,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x02,0x73,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0xcd,0xfe,0x09,0x00,0x33,0xff,0xb1, +0x00,0x03,0x00,0x11,0xb5,0x03,0x02,0x00,0x03,0x03,0x05,0x11,0x00,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x23,0x11,0x33,0x33,0x66,0x66,0xfe,0x09,0x01,0xa8,0x00,0x01,0x00,0x4b,0x04,0x38,0x02,0xe8,0x04,0xcd,0x00,0x03,0x00,0x14,0xb5,0x03,0x05,0x02,0x04,0x01,0x03,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x11,0x01,0x33,0x11,0x33, +0x30,0x31,0x01,0x21,0x37,0x21,0x02,0xd0,0xfd,0x7b,0x18,0x02,0x85,0x04,0x38,0x95,0x00,0x01,0xfe,0xd2,0x05,0x6b,0x01,0x31,0x05,0xd5,0x00,0x03,0x00,0x0d,0xb3,0x03,0x01,0x03,0x01,0x00,0x2f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x01,0x21,0x35,0x21,0x01,0x31,0xfd,0xa1,0x02,0x5f,0x05,0x6b,0x6a,0x00,0x01,0x00,0x94,0xff,0x9d,0x01,0x09, +0x05,0x30,0x00,0x03,0x00,0x15,0xbd,0x00,0x03,0x01,0x50,0x00,0x02,0x00,0x03,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x01,0x2f,0xed,0x30,0x31,0x05,0x23,0x11,0x33,0x01,0x09,0x75,0x75,0x63,0x05,0x93,0x00,0x01,0x02,0x00,0x05,0x4e,0x02,0xb9,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00, +0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x02,0xb9,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xfd,0x3c,0x05,0x4e,0xfd,0xf5,0x06,0x05,0x00,0x0b,0x00,0x17,0xbe,0x00,0x00,0x01,0x51,0x00,0x06,0x00, +0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xfd,0xf5,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12, +0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x00,0x0b,0x00,0x17,0xbe,0x00, +0x00,0x01,0x51,0x00,0x06,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0x05,0xdb,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x00,0x0b, +0x00,0x19,0xbc,0x00,0x00,0x01,0x51,0x00,0x06,0x00,0x03,0x01,0x57,0xb2,0x09,0x09,0x0d,0x11,0x00,0x33,0x2f,0xed,0x01,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x67,0x38,0x2d,0x2e,0x38,0x36,0x2e,0x2e,0x39,0xfe,0xf1,0x2e,0x36,0x34,0x30,0x2e,0x37,0x34,0x00,0x00,0x01,0x00,0xa5,0x00,0x00, +0x04,0x9a,0x04,0xd4,0x00,0x28,0x00,0x51,0x40,0x0b,0x1e,0x28,0x17,0x00,0x15,0x08,0x16,0x01,0x01,0x00,0x23,0xb8,0x01,0x50,0xb7,0x20,0x20,0x0f,0x2a,0x17,0x16,0x16,0x0e,0xb8,0x01,0x50,0x40,0x0a,0x0f,0x15,0x08,0x1e,0x28,0x04,0x16,0x17,0x17,0x21,0xbb,0x01,0x4a,0x00,0x0f,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0x2f,0x33, +0x17,0x39,0x01,0x2f,0xed,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0xed,0xc4,0x32,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x31,0x30,0x21,0x23,0x2e,0x05,0x27,0x0e,0x03,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x37,0x03,0x37,0x1e,0x03,0x17,0x16,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x04,0x9a,0xc5,0x2f,0x51,0x4b,0x4a,0x54, +0x61,0x3c,0x28,0x32,0x1c,0x09,0xa9,0x17,0x34,0x52,0x3c,0xdb,0x8e,0x2d,0x5a,0x54,0x4e,0x22,0x4f,0x46,0xae,0xaa,0x21,0x41,0x61,0x41,0x45,0x75,0x6e,0x6c,0x77,0x88,0x53,0x27,0x4c,0x51,0x5d,0x38,0xfe,0x73,0x01,0x98,0x4c,0x77,0x68,0x5f,0x33,0x01,0x38,0x47,0x3c,0x79,0x74,0x6d,0x30,0x70,0x66,0x63,0xd5,0x01,0x5d,0xfe,0xc1,0x52, +0x85,0x6d,0x5a,0x29,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x00,0x24,0x00,0x38,0xb2,0x07,0x07,0x00,0xb8,0x01,0x50,0xb7,0x06,0x12,0x12,0x26,0x09,0x19,0x19,0x16,0x41,0x09,0x01,0x54,0x00,0x1a,0x00,0x1f,0x01,0x4b,0x00,0x06,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f, +0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x21,0x07,0x21,0x37,0x21,0x32,0x3e,0x04,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xee,0x17,0x28,0x38,0x20,0x34,0x01,0x19,0x16,0xfc,0x2e,0x18,0x01,0xa6,0x44,0x62,0x44,0x29,0x17,0x07,0xc0,0xb0,0x69, +0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0x02,0x66,0x54,0x7b,0x5d,0x47,0x1f,0x32,0xa2,0xa2,0x33,0x52,0x65,0x64,0x59,0x1b,0x86,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x01,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x00,0x25,0x00,0x43,0xb3,0x17,0x02,0x02,0x00,0xb8,0x01,0x50, +0xb6,0x01,0x01,0x0b,0x27,0x1e,0x1e,0x0a,0xbb,0x01,0x50,0x00,0x0b,0x00,0x02,0x01,0x56,0xb3,0x17,0x17,0x00,0x1e,0xbd,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x33,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x06,0x06, +0x07,0x0e,0x03,0x07,0x23,0x36,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x03,0x2e,0x03,0x23,0x23,0x37,0x33,0x32,0x1e,0x02,0x17,0x03,0x17,0xa1,0x28,0x4d,0x7b,0x28,0x19,0x29,0x20,0x18,0x0a,0xa9,0x13,0x19,0x0b,0x18,0x1c,0x1f,0x10,0x24,0x54,0x61,0x6b,0x3a,0x1b,0x06,0x2a,0x44,0x5b,0x38,0xc5,0x16,0xaa,0x62,0x99,0x6d,0x3f,0x07,0x01, +0xe0,0x14,0x4e,0x2f,0x1d,0x4f,0x59,0x5e,0x2c,0x4d,0x47,0x1e,0x41,0x3f,0x38,0x15,0x2f,0x45,0x35,0x29,0x13,0x01,0x0e,0x36,0x4c,0x31,0x17,0x91,0x24,0x51,0x84,0x60,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x00,0x14,0x00,0x2d,0xb1,0x04,0x14,0xb8,0x01,0x50,0x40,0x09,0x00,0x0c,0x00,0x0c,0x16,0x0a,0x0e,0x04,0x0a,0xbc, +0x01,0x54,0x00,0x0b,0x01,0x4a,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0xed,0x32,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x11,0x34,0x36,0x37,0x22,0x0e,0x02,0x23,0x21,0x37,0x21,0x07,0x23,0x22,0x0e,0x02,0x15,0x11,0x02,0x2e,0x42,0x39,0x0c,0x26,0x27,0x23,0x0a,0xfd,0xfd,0x18,0x03,0x73,0x19,0x37,0x28,0x33, +0x1e,0x0b,0x03,0x32,0x5b,0x81,0x30,0x02,0x02,0x02,0x95,0x95,0x29,0x3e,0x46,0x1e,0xfc,0x93,0x00,0x02,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x00,0x17,0x00,0x1b,0x00,0x38,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x1d,0x18,0xb8,0x01,0x50,0xb5,0x19,0x0c,0x0c,0x19,0x0c,0x07,0xb8,0x01,0x54,0xb2,0x1b,0x0d,0x12,0xbb,0x01,0x4b, +0x00,0x19,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xc4,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x01,0x23,0x11,0x37,0x04,0xc0,0xab,0x34,0x61,0x8d,0x59,0x3a,0x86,0x83,0x75,0x2a,0x13,0x30,0x73, +0x7f,0x88,0x46,0x6e,0xbc,0x8c,0x4f,0xfc,0xae,0xa9,0xa9,0x02,0xea,0x65,0x88,0x52,0x22,0x0c,0x13,0x17,0x0a,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xfd,0x0d,0x02,0xc9,0x51,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x02,0x01, +0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x04,0xcd,0x00,0x00,0x01,0x00,0x31,0x00,0x00,0x02,0x5f,0x04,0xcd,0x00,0x20,0x00,0x2a,0xb4,0x18,0x0c,0x00,0x00,0x06,0xb8,0x01,0x50,0xb4,0x1e,0x0d,0x13,0x00,0x1e,0xbc,0x01,0x54,0x00,0x1f,0x01,0x4a,0x00,0x0c,0x01,0x4d,0x00,0x3f,0x3f,0xed, +0x32,0x01,0x2f,0x33,0xc6,0xed,0x32,0x2f,0x32,0x32,0x31,0x30,0x01,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x13,0x23,0x03,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x22,0x0e,0x02,0x23,0x23,0x37,0x21,0x02,0x5f,0x31,0x31,0x49,0x31,0x18,0x06,0x07,0x09,0x03,0x6f,0xb1,0x6f,0x02,0x07,0x06,0x04,0x09,0x1e,0x3b,0x31,0x18,0x3b,0x39, +0x33,0x10,0x53,0x13,0x02,0x1b,0x04,0x38,0x1d,0x35,0x4a,0x2c,0x12,0x35,0x39,0x36,0x13,0xfd,0x59,0x02,0xb4,0x0e,0x29,0x31,0x34,0x17,0x1a,0x3c,0x3a,0x34,0x12,0x02,0x01,0x02,0x95,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x04,0xba,0x04,0xde,0x00,0x17,0x00,0x30,0xb9,0x00,0x00,0x01,0x50,0xb3,0x01,0x01,0x19,0x0b,0xb8,0x01,0x50,0xb2, +0x0c,0x0a,0x07,0xbe,0x01,0x54,0x00,0x0d,0x00,0x12,0x01,0x4b,0x00,0x0c,0x00,0x00,0x01,0x4d,0x00,0x3f,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0xba,0xab,0x34,0x60,0x8a,0x57,0x53,0xa4,0x3c, +0xa9,0x30,0x7f,0x86,0x83,0x35,0x7f,0xc4,0x86,0x46,0x02,0xf8,0x63,0x82,0x4d,0x1e,0x14,0x0c,0xfb,0xd8,0x04,0xad,0x0a,0x12,0x0d,0x08,0x36,0x77,0xba,0x84,0x00,0x01,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x00,0x29,0x00,0x3e,0xb9,0x00,0x00,0x01,0x50,0xb6,0x17,0x20,0x17,0x20,0x17,0x2b,0x0d,0xb8,0x01,0x50,0xb2,0x0a,0x20,0x1d, +0x41,0x0a,0x01,0x54,0x00,0x21,0x00,0x24,0x01,0x4b,0x00,0x0b,0x01,0x4a,0x00,0x12,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34, +0x2e,0x02,0x23,0x22,0x06,0x07,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x05,0x01,0x52,0x98,0xd8,0x86,0x7c,0xc7,0x8c,0x4a,0xaa,0x22,0x54,0x90,0x6d,0x67,0x99,0x66,0x33,0x26,0x47,0x63,0x3d,0x35,0x5e,0x30,0x15,0x2c,0x5d,0x41,0x52,0x95,0x72,0x43,0x02,0x56,0x87,0xe3,0xa3,0x5c,0x52,0x9d,0xe6,0x94,0x02,0x77,0xfd,0x96,0x54,0xaa, +0x8a,0x56,0x49,0x7d,0xa5,0x5c,0x8f,0x4c,0x84,0x62,0x39,0x07,0x09,0x94,0x08,0x0b,0x47,0x86,0xc0,0x79,0x00,0x01,0x00,0xbe,0x02,0x27,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x14,0xb9,0x00,0x00,0x01,0x50,0xb2,0x01,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x27, +0x02,0xa6,0x00,0x01,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01,0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4f,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07, +0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7,0x8f,0x4f,0xfe,0x00,0x04,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x00,0x25,0x00,0x35,0xb9,0x00,0x00,0x01,0x50,0xb6, +0x11,0x11,0x27,0x08,0x1b,0x1b,0x16,0x41,0x0a,0x01,0x54,0x00,0x1c,0x00,0x21,0x01,0x4b,0x00,0x09,0x00,0x0c,0x01,0x54,0x00,0x08,0x00,0x03,0x01,0x4e,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x00,0x21,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x03,0xeb,0xfe,0xcb,0xfe,0xc4,0x28,0x53,0x4b,0x3d,0x12,0x15,0x2f,0x81,0x46,0x77,0xae,0x72,0x37,0x33,0x6e,0xab,0x78,0x1b,0x4d,0x53,0x51,0x20,0x14,0x1d,0x4a,0x4f,0x51,0x24,0x91,0xe2,0x9a,0x51,0x02,0x5f,0xfe,0xc7,0xfe,0xc7,0x07,0x0b,0x0d,0x07,0x8d,0x0a, +0x12,0x38,0x75,0xb4,0x7d,0x76,0xb5,0x7b,0x40,0x04,0x07,0x0b,0x06,0x8f,0x08,0x0d,0x09,0x05,0x4b,0x9d,0xf1,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x00,0x2b,0x00,0x39,0xb9,0x00,0x00,0x01,0x50,0xb6,0x1d,0x0e,0x1d,0x0e,0x1d,0x2d,0x26,0x41,0x0c,0x01,0x50,0x00,0x23,0x00,0x23,0x01,0x54,0x00,0x26,0x01,0x4a,0x00, +0x24,0x01,0x4c,0x00,0x0f,0x01,0x54,0x00,0x0e,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x03,0x0e,0x03,0x07,0x0e,0x03,0x07,0x37,0x32,0x3e,0x02,0x37,0x3e,0x03,0x37,0x13,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x32,0x1e,0x02, +0x03,0xeb,0x05,0x02,0x1c,0x06,0x1a,0x2d,0x41,0x2d,0x2f,0x7e,0x85,0x7e,0x2f,0x32,0x1a,0x48,0x4f,0x4f,0x1f,0x25,0x38,0x27,0x18,0x05,0x1b,0x01,0x05,0x22,0x3f,0x5a,0x37,0xfe,0x0a,0xa9,0x01,0x6e,0x56,0x8c,0x63,0x36,0x03,0x95,0x1c,0x3e,0x13,0xfe,0xe1,0x3b,0x76,0x6c,0x60,0x25,0x27,0x29,0x13,0x03,0x01,0x8e,0x03,0x0b,0x15,0x12, +0x15,0x42,0x53,0x5f,0x31,0x01,0x1a,0x0a,0x38,0x19,0x30,0x4a,0x32,0x1a,0x02,0x68,0xfe,0x2d,0x2f,0x54,0x72,0x00,0x00,0x02,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x00,0x0b,0x00,0x16,0x00,0x36,0xb9,0x00,0x00,0x01,0x50,0xb3,0x0c,0x0c,0x18,0x16,0xb8,0x01,0x50,0xb2,0x02,0x15,0x12,0x41,0x09,0x01,0x54,0x00,0x03,0x00,0x06,0x01, +0x4b,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x02,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x07,0x21,0x11,0x36,0x24,0x33,0x32,0x1e,0x02,0x15,0x03,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x04,0xe2,0x31,0xfc,0x0d,0x80,0x01,0x00,0x86,0x82,0xca,0x8a,0x48,0xab,0x37, +0x69,0x96,0x60,0x6a,0x9c,0x34,0xa9,0xa9,0x04,0xac,0x17,0x1b,0x42,0x7e,0xb6,0x75,0xfd,0xaf,0x02,0x53,0x5b,0x80,0x52,0x26,0x14,0x0b,0xfc,0x79,0x00,0x01,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x00,0x33,0x00,0x4b,0xb9,0x00,0x00,0x01,0x50,0x40,0x09,0x11,0x08,0x11,0x08,0x35,0x28,0x27,0x2b,0x22,0xb8,0x01,0x50,0xb2,0x23,0x21, +0x19,0x41,0x0d,0x01,0x54,0x00,0x2b,0x00,0x2e,0x01,0x4a,0x00,0x27,0x00,0x28,0x01,0x4b,0x00,0x23,0x01,0x4d,0x00,0x0c,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x32,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x16,0x16, +0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x04,0xe8,0x31,0x60,0x8e,0x5c,0x35,0x62,0x26,0x2c,0x21,0x40,0x28,0x38,0x51,0x35,0x1a,0x0e,0x21,0x38,0x52,0x71,0x4a,0x2c,0x5f,0x57,0x4a,0x17,0x09,0x0f, +0xa9,0x0a,0x17,0x94,0x16,0x1a,0x02,0x4a,0xba,0x75,0x7e,0xc1,0x83,0x43,0x01,0xb9,0x6f,0xab,0x75,0x3d,0x13,0x11,0x85,0x08,0x09,0x2a,0x4c,0x69,0x40,0xf8,0x30,0x64,0x5f,0x54,0x3e,0x25,0x15,0x29,0x3d,0x29,0x11,0x27,0x14,0xfc,0xaa,0x03,0xf5,0x2e,0x55,0x2d,0x40,0x20,0x54,0x3f,0x50,0x5c,0x52,0x94,0xcc,0x7a,0x00,0x01,0x00,0xbe, +0xfd,0xff,0x01,0x67,0x04,0xcd,0x00,0x03,0x00,0x17,0xbe,0x00,0x00,0x01,0x50,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x01,0x4a,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0xfd,0xff,0x06,0xce,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x00,0x19,0x00,0x33,0xb9,0x00,0x00,0x01, +0x50,0x40,0x09,0x03,0x03,0x01,0x1b,0x0e,0x0e,0x01,0x0e,0x09,0xbf,0x01,0x54,0x00,0x0f,0x00,0x12,0x01,0x4b,0x00,0x02,0x01,0x54,0x00,0x01,0x01,0x4d,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x21,0x37,0x21,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x36,0x36,0x33, +0x32,0x1e,0x04,0x15,0x02,0x87,0xfd,0xe0,0x13,0x01,0x62,0x0d,0x2b,0x52,0x44,0x0f,0x24,0x24,0x1f,0x08,0x18,0x1c,0x56,0x25,0x45,0x65,0x49,0x2f,0x1b,0x0b,0xa2,0x02,0x7b,0x41,0x6d,0x50,0x2c,0x02,0x03,0x04,0x02,0x94,0x06,0x08,0x22,0x3e,0x54,0x64,0x71,0x3a,0x00,0x02,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x00,0x14,0x00,0x27, +0x00,0x32,0xb9,0x00,0x00,0x01,0x50,0xb3,0x15,0x15,0x29,0x1e,0xb8,0x01,0x50,0xb2,0x0a,0x1d,0x1a,0xbf,0x01,0x54,0x00,0x0b,0x00,0x10,0x01,0x4b,0x00,0x23,0x01,0x54,0x00,0x05,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x3e,0x03, +0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x04,0xf7,0x4f,0x96,0xd9,0x8a,0x89,0xca,0x85,0x41,0x3c,0x87,0x8f,0x92,0x45,0x8c,0xd5,0x8f,0x48,0xab,0x2f,0x63,0x9a,0x6b,0x63,0xc4,0x4f,0x22,0x55,0x90,0x6d,0x6f,0x9c,0x61,0x2d,0x02,0x56,0x82,0xe1,0xa7,0x5f,0x5b,0xa4,0xe3, +0x87,0x02,0x59,0x09,0x11,0x0d,0x08,0x61,0xac,0xee,0x8d,0x68,0xb5,0x85,0x4d,0x10,0x0b,0xfe,0x39,0x54,0xaa,0x8a,0x56,0x55,0x86,0xa5,0x00,0x01,0x00,0x59,0xff,0x94,0x04,0x2b,0x04,0xcd,0x00,0x17,0x00,0x3a,0xb2,0x10,0x0d,0x00,0xb8,0x01,0x50,0xb5,0x0d,0x0e,0x15,0x15,0x19,0x0f,0xb8,0x01,0x51,0xb7,0x0e,0x08,0x08,0x0e,0x0d,0x10, +0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x07,0x27,0x3e,0x03,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xcd,0xdb,0x6b,0x2f,0x31,0x68,0x65,0x5f, +0x28,0xfe,0x72,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x64,0x91,0xd3,0x95,0x61,0x3f,0x27,0x10,0xa5,0x05,0x0d,0x13,0x17,0x0d,0x04,0x4b,0xfb,0xe8,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x8c,0x00,0x00,0x01,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x00,0x1b,0x00,0x3d,0xb9,0x00,0x00,0x01,0x50,0xb6,0x01,0x0e,0x01,0x0e,0x01,0x1d, +0x0d,0xbb,0x01,0x50,0x00,0x10,0x00,0x10,0x01,0x54,0xb4,0x0d,0x0d,0x1c,0x0c,0x07,0xbc,0x01,0x54,0x00,0x11,0x00,0x16,0x01,0x4b,0x00,0x00,0x00,0x2f,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x11,0x21,0x07,0x21, +0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x04,0x39,0xab,0x30,0x6a,0xaa,0x7a,0x16,0x34,0x33,0x2e,0x11,0x01,0x18,0x19,0xfe,0x59,0x24,0x57,0x5e,0x5f,0x2c,0xa5,0xeb,0x94,0x45,0xfd,0xff,0x04,0x73,0x81,0xb3,0x70,0x32,0x04,0x06,0x08,0x04,0xfe,0x65,0x96,0x02,0xaa,0x0b,0x12,0x0e,0x08,0x47,0x98,0xec,0xa5,0x00,0x00,0x01,0x00,0x96, +0xff,0xed,0x04,0x9c,0x04,0xde,0x00,0x27,0x00,0x51,0xb9,0x00,0x00,0x01,0x50,0xb6,0x13,0x1b,0x13,0x1b,0x13,0x29,0x1a,0xb8,0x01,0x50,0xb4,0x1d,0x0a,0x0a,0x1d,0x1d,0xb8,0x01,0x54,0xb4,0x1a,0x1a,0x0e,0x19,0x16,0x41,0x0a,0x01,0x54,0x00,0x1e,0x00,0x23,0x01,0x4b,0x00,0x0b,0x00,0x0e,0x01,0x54,0x00,0x0a,0x00,0x05,0x01,0x4e,0x00, +0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x23,0x22,0x06,0x07,0x11,0x21,0x07,0x21,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x04,0x9c,0x54, +0x9c,0xde,0x8a,0x2d,0x70,0x74,0x70,0x2d,0x1c,0x4b,0xbc,0x7d,0x6a,0xa4,0x71,0x3a,0xca,0xd4,0x5c,0x94,0x26,0x01,0x4c,0x1c,0xfe,0x2b,0x2c,0x71,0x75,0x70,0x2c,0x8f,0xdf,0x9a,0x50,0x02,0x59,0xa0,0xea,0x98,0x4a,0x06,0x0c,0x14,0x0e,0x96,0x14,0x1c,0x32,0x6d,0xaf,0x7e,0xf2,0x01,0x03,0x11,0x0b,0xfe,0x7f,0x96,0x02,0x8b,0x0f,0x17, +0x10,0x08,0x50,0xa1,0xf2,0x00,0x00,0x01,0x00,0x1e,0xfd,0xff,0x04,0x03,0x04,0xe5,0x00,0x22,0x00,0x44,0xb3,0x17,0x09,0x06,0x0a,0xb8,0x01,0x50,0xb4,0x0b,0x0b,0x12,0x20,0x00,0xb8,0x01,0x50,0x40,0x0e,0x1f,0x1c,0x1c,0x24,0x13,0x12,0x12,0x13,0x13,0x17,0x06,0x0a,0x1f,0x20,0xba,0x01,0x4b,0x00,0x0a,0x01,0x4f,0x00,0x3f,0x3f,0x33, +0x12,0x39,0x39,0x33,0x2f,0x33,0x01,0x2f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x32,0x32,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0x37,0x01,0x16,0x16,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x04,0x03,0x1e,0x44,0x70,0x52,0x61,0x05,0x02, +0xa9,0x0a,0x17,0x27,0x1e,0xfe,0xa8,0xab,0x01,0x36,0x1d,0x32,0x0c,0x4a,0x63,0x3b,0x19,0x1d,0x14,0xa3,0x17,0x1f,0x03,0xd4,0x59,0x96,0x7a,0x61,0x24,0x2b,0x26,0x50,0x20,0xfc,0xda,0x03,0x23,0x3a,0x62,0x5a,0x54,0x2d,0x02,0x05,0x40,0xfe,0x1f,0x2d,0x6b,0x2d,0x20,0x4e,0x60,0x72,0x44,0x4c,0x72,0x29,0x42,0x32,0x8e,0x00,0x00,0x01, +0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x00,0x14,0x00,0x4e,0xb3,0x05,0x0d,0x0c,0x06,0xb8,0x01,0x51,0xb3,0x0a,0x0a,0x08,0x00,0xb8,0x01,0x50,0x40,0x10,0x12,0x12,0x08,0x16,0x0c,0x0b,0x0b,0x08,0x05,0x0d,0x06,0x0c,0x13,0x13,0x0b,0x0c,0xbd,0x01,0x4a,0x00,0x06,0x00,0x09,0x01,0x54,0x00,0x08,0x01,0x4d,0x00,0x3f,0xed,0x32,0x3f, +0x33,0x33,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x13,0x07,0x21,0x37,0x21,0x01,0x37,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x25,0x28,0x48,0x64,0x3c,0xdc,0x2c,0xfc,0x86,0x2d,0x02,0xb3,0xfd,0x39,0x9a,0x01,0xc9,0x23,0x41, +0x32,0x1e,0xaa,0x03,0xd4,0x60,0x94,0x77,0x62,0x2f,0xfe,0xca,0xa2,0xa2,0x03,0xee,0x44,0xfd,0x74,0x15,0x42,0x5c,0x76,0x47,0x01,0x15,0x00,0x02,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x00,0x29,0x00,0x2d,0x00,0x46,0xb9,0x00,0x00,0x01,0x50,0xb6,0x15,0x09,0x15,0x09,0x15,0x2f,0x2a,0xb8,0x01,0x50,0xb2,0x1f,0x2b,0x2a,0xb8,0x01, +0x4f,0xb4,0x2c,0x2c,0x0a,0x1f,0x1a,0xbf,0x01,0x54,0x00,0x20,0x00,0x25,0x01,0x4b,0x00,0x0a,0x01,0x54,0x00,0x09,0x01,0x4e,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x3f,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x07,0x0e,0x03,0x07,0x37,0x3e,0x03,0x37,0x37,0x3e,0x03,0x35, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x23,0x11,0x33,0x04,0xd2,0x02,0x02,0x08,0x10,0x60,0x9f,0xdf,0x90,0x15,0x5e,0x99,0x72,0x47,0x0c,0x0d,0x01,0x01,0x01,0x01,0x2a,0x58,0x88,0x5f,0x5b,0xa4,0x9b,0x97,0x4e,0x20,0x2d,0x7f,0x9a,0xad,0x5a,0x91,0xcf,0x85,0x3e,0xfc,0x9c,0xa9,0xa9,0x03, +0x4a,0x10,0x35,0x11,0x68,0xb7,0xf7,0x9a,0x4c,0x0b,0xa1,0x0b,0x35,0x69,0xaa,0x80,0x8a,0x09,0x1a,0x1b,0x1a,0x09,0x44,0x61,0x3e,0x1d,0x0a,0x11,0x18,0x0e,0xa6,0x06,0x10,0x0d,0x0a,0x32,0x65,0x97,0xfa,0x4f,0x04,0xe2,0x00,0x01,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x00,0x13,0x00,0x27,0xb9,0x00,0x00,0x01,0x50,0xb5,0x01,0x01, +0x15,0x08,0x08,0x05,0xbd,0x01,0x54,0x00,0x09,0x00,0x0e,0x01,0x4b,0x00,0x00,0x01,0x4d,0x00,0x3f,0x3f,0x33,0xed,0x32,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x03,0xcd,0xab,0xc0,0xb0,0x69,0xc7,0x53,0x16,0x2a,0x5f,0x60,0x5b,0x27,0x78,0xc7, +0x8f,0x4f,0x02,0xea,0xb4,0xad,0x21,0x12,0xa0,0x09,0x0f,0x09,0x05,0x3b,0x7a,0xba,0x7f,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x00,0x31,0x00,0x56,0xbc,0x00,0x00,0x01,0x50,0x00,0x31,0x00,0x1b,0x01,0x50,0x40,0x0d,0x1a,0x31,0x1a,0x31,0x1a,0x33,0x0c,0x26,0x25,0x25,0x0e,0x0e,0x0d,0xb8,0x01,0x51,0xb2,0x0b,0x0c, +0x25,0xb8,0x01,0x54,0xb3,0x0e,0x0e,0x00,0x26,0xba,0x01,0x54,0x00,0x0b,0x01,0x4d,0xb2,0x1a,0x0c,0x00,0xb8,0x01,0x4a,0x00,0x3f,0x32,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x23,0x21, +0x03,0x33,0x13,0x3e,0x05,0x37,0x36,0x36,0x37,0x36,0x37,0x33,0x06,0x07,0x06,0x06,0x07,0x0e,0x03,0x07,0x17,0x21,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x36,0x37,0x05,0xd8,0x06,0x0a,0x08,0x1a,0x14,0x13,0x4f,0x7e,0xaf,0x73,0xfd,0x97,0xb9,0xb3,0x6b,0x3b,0x5f,0x4a,0x38,0x2a,0x1d,0x09,0x05,0x0a,0x05,0x05,0x05,0xb0,0x04,0x05,0x05, +0x0a,0x06,0x0e,0x3e,0x76,0xb9,0x89,0x18,0x01,0xd6,0x3c,0x6b,0x58,0x40,0x10,0x16,0x1c,0x08,0x0a,0x05,0x04,0xcd,0x33,0x54,0x48,0xe8,0xab,0xa8,0xeb,0x94,0x44,0x04,0xcd,0xfd,0x0e,0x12,0x24,0x31,0x44,0x61,0x85,0x5a,0x2e,0x5d,0x26,0x2d,0x29,0x24,0x2c,0x26,0x62,0x39,0x8a,0xc9,0x93,0x66,0x27,0xa7,0x27,0x64,0xad,0x85,0xa6,0xea, +0x4c,0x59,0x39,0x00,0x00,0x01,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x00,0x2d,0x00,0x47,0xb2,0x22,0x22,0x0b,0xb8,0x01,0x50,0xb3,0x1e,0x1e,0x15,0x00,0xb8,0x01,0x50,0x40,0x09,0x01,0x01,0x2f,0x15,0x22,0x0a,0x0a,0x1f,0x07,0x41,0x09,0x01,0x54,0x00,0x23,0x00,0x28,0x01,0x4b,0x00,0x1a,0x01,0x54,0x00,0x12,0x01,0x4e,0x00,0x01, +0x00,0x2f,0x3f,0xed,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0x31,0x30,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x06,0x07,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x05, +0x23,0xab,0x39,0x71,0xaa,0x71,0x33,0x6f,0x39,0x04,0x12,0x24,0x42,0x64,0x48,0x1d,0x3e,0x21,0x13,0x14,0x20,0x0f,0x2e,0x3e,0x27,0x11,0x2c,0x4c,0x1e,0x13,0x37,0x81,0x8f,0x9a,0x4f,0x7c,0xd5,0x9d,0x5a,0x02,0xea,0x61,0x86,0x54,0x26,0x08,0x06,0xfd,0x73,0x3d,0x72,0x64,0x54,0x3b,0x21,0x04,0x05,0x91,0x04,0x01,0x1f,0x44,0x69,0x49, +0x02,0x90,0x07,0x0f,0x06,0xa5,0x09,0x10,0x0d,0x08,0x36,0x77,0xba,0x84,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x6d,0x02,0x09,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x03,0x70,0x04,0xcd,0x00,0x27,0x0b,0x6d,0x02,0x09,0x00,0x00,0x00,0x06,0x0b,0x71,0x00,0x00,0xff,0xff, +0x00,0xbe,0x02,0x27,0x03,0x70,0x04,0xcd,0x00,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x71,0x02,0x09,0x00,0x00,0x00,0x01,0x00,0x6e,0x03,0x0e,0x01,0x70,0x04,0xcc,0x00,0x03,0x00,0x11,0xb5,0x03,0x00,0x01,0x02,0x00,0x02,0x00,0x2f,0xcd,0x01,0x2f,0x33,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x01,0x70,0x8c,0x76,0x6f,0x04,0xcc, +0xfe,0x42,0x01,0xbe,0x00,0x02,0x00,0x6e,0x03,0x0e,0x02,0xa0,0x04,0xcc,0x00,0x03,0x00,0x07,0x00,0x20,0x40,0x0d,0x03,0x00,0x01,0x02,0x07,0x04,0x05,0x06,0x00,0x02,0x02,0x04,0x06,0x00,0x2f,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0x33,0xdd,0x32,0xd6,0x32,0xcd,0x32,0x30,0x31,0x01,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x02,0xa0,0x8c,0x76, +0x6c,0x9a,0x8c,0x76,0x6f,0x04,0xcc,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x01,0xbe,0x00,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x53,0x01,0x48,0x02,0xfb,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5b,0x00,0xce,0x02,0xfb, +0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x06,0x0b,0x5c,0xad,0x00,0xff,0xff,0xff,0x51,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x26,0x0b,0x5c,0xad,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0x00,0x03,0x00,0xbe,0x01,0x58,0x03,0x95,0x04,0xcd,0x00,0x03, +0x00,0x07,0x00,0x0b,0x00,0x30,0xb1,0x03,0x0b,0xb8,0x01,0x50,0xb3,0x0a,0x0a,0x0d,0x07,0xb8,0x01,0x50,0xb2,0x02,0x06,0x0a,0xb8,0x01,0x4b,0xb4,0x00,0x02,0x09,0x04,0x06,0xb8,0x01,0x4b,0x00,0x3f,0xdd,0x32,0xde,0xcd,0x3f,0x01,0x2f,0x33,0xed,0x12,0x39,0x2f,0xed,0x32,0x30,0x31,0x01,0x21,0x35,0x21,0x25,0x23,0x11,0x33,0x01,0x23, +0x11,0x33,0x03,0x95,0xfd,0x29,0x02,0xd7,0xfd,0xd2,0xa9,0xa9,0x02,0x2e,0xa9,0xa9,0x01,0x58,0x6a,0x65,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0x2b,0x04,0xcd,0x00,0x16,0x00,0x3a,0xb2,0x0f,0x0c,0x16,0xb8,0x01,0x50,0xb5,0x0c,0x0d,0x15,0x15,0x18,0x0e,0xb8,0x01,0x51,0xb7,0x0d,0x08,0x08,0x0d,0x0c,0x0f, +0x16,0x0e,0xbb,0x01,0x4a,0x00,0x08,0x01,0x54,0x00,0x07,0x00,0x2f,0xed,0x3f,0x33,0x39,0x39,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x03,0x23,0x23,0x27,0x33,0x32,0x32,0x37,0x01,0x33,0x01,0x3e,0x03,0x35,0x11,0x33,0x04,0x2b,0x4d,0x86,0xb4,0xaf,0x9a,0xca,0x2f,0xcd,0x33, +0x53,0x2b,0xfe,0x79,0xb6,0x01,0x70,0x38,0x5e,0x46,0x27,0xa9,0x02,0x80,0x91,0xd3,0x95,0x61,0x26,0xa2,0x08,0x04,0x23,0xfc,0x04,0x1b,0x46,0x5f,0x7c,0x50,0x02,0x70,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x06,0x0b,0x68,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x06,0x0b,0x6b,0x00,0x00, +0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x06,0x0b,0x6c,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x06,0x0b,0x73,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0xbe,0x00,0x00,0x04,0xe2,0x04,0xde,0x02,0x06,0x0b,0x75,0x00,0x00, +0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x06,0x0b,0x80,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x06,0x0b,0x82,0x00,0x00,0x00,0x01,0x00,0x5f,0x02,0x12,0x04,0x0b,0x04,0x2b,0x00,0x07,0x00,0x19,0xb1,0x07,0x05,0xb8,0x01,0x50,0xb5,0x02,0x04,0x06,0x00,0x02,0x04,0x00,0x2f,0xde,0xcd,0x33, +0x01,0x2f,0xce,0xfd,0xce,0x30,0x31,0x01,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0b,0xfc,0x54,0x01,0x93,0x85,0x01,0x94,0x02,0x12,0x86,0x01,0x93,0xfe,0x6d,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x63,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8, +0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x64,0x03,0x25,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xde,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x27,0x0b,0x63,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x61,0x00,0x00,0x05,0xd8,0x06,0x05,0x02,0x26,0x0b,0x81,0x00,0x00, +0x00,0x27,0x0b,0x64,0x03,0x25,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0xa5,0xff,0x38,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5a,0x01,0xae,0x00,0x00,0xff,0xff,0x00,0xa5,0xfe,0x59,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5b,0x01,0xae,0x00,0x00, +0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0x3a,0xfe,0x43,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x04,0xde,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xd3,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x04,0xcd,0x02,0x26,0x0b,0x6a,0x00,0x00, +0x00,0x07,0x0b,0x5e,0x01,0x10,0x00,0x8c,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x04,0xcd,0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x36,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x04,0xde,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb8,0x00,0x00,0xff,0xff,0xff,0xfb,0x00,0x00,0x01,0xad, +0x04,0xcd,0x00,0x26,0x0b,0x6d,0x46,0x00,0x00,0x06,0x0b,0x5e,0x56,0x00,0xff,0xff,0xff,0xfa,0x00,0x00,0x02,0x87,0x04,0xcd,0x00,0x26,0x0b,0x6e,0x28,0x00,0x00,0x06,0x0b,0x5e,0x55,0x00,0xff,0xff,0x00,0xa0,0xff,0xed,0x05,0x01,0x04,0xdd,0x02,0x26,0x0b,0x70,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xc7,0x00,0x00,0xff,0xff,0xff,0xfb, +0x02,0x27,0x01,0xad,0x04,0xcd,0x00,0x26,0x0b,0x71,0x46,0x00,0x00,0x07,0x0b,0x5e,0x00,0x56,0x01,0x0e,0xff,0xff,0x00,0x2f,0xfe,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x72,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x4e,0xff,0xed,0x03,0xeb,0x04,0xde,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x5e, +0x01,0xa4,0x00,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0,0x02,0x26,0x0b,0x74,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xc6,0x00,0x00,0xff,0xff,0x00,0xa4,0xff,0xed,0x04,0xe8,0x04,0xe5,0x02,0x26,0x0b,0x76,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd2,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x87,0x04,0xde,0x02,0x26, +0x0b,0x78,0x00,0x00,0x00,0x07,0x0b,0x5e,0x00,0xfa,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0xf7,0x04,0xde,0x02,0x26,0x0b,0x79,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xb2,0x00,0x00,0xff,0xff,0x00,0x6c,0xfd,0xff,0x04,0x39,0x04,0xde,0x02,0x26,0x0b,0x7b,0x00,0x00,0x00,0x07,0x0b,0x5e,0x02,0xd5,0xff,0xd9,0xff,0xff,0x00,0x96, +0xff,0xed,0x04,0x9c,0x04,0xde,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x2f,0xff,0xf7,0xff,0xff,0x00,0x4b,0x00,0x00,0x04,0x25,0x04,0xd4,0x02,0x26,0x0b,0x7e,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x68,0xff,0x16,0xff,0xff,0x00,0x42,0xfd,0xff,0x04,0xd2,0x04,0xde,0x02,0x26,0x0b,0x7f,0x00,0x00,0x00,0x07,0x0b,0x5e, +0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x2f,0x00,0x00,0x03,0xcd,0x04,0xde,0x02,0x26,0x0b,0x80,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0xb3,0x00,0x00,0xff,0xff,0x00,0x6e,0x00,0x00,0x05,0xd8,0x04,0xcd,0x02,0x26,0x0b,0x81,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0xc0,0xff,0x2a,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x04,0xde,0x02,0x26, +0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x5e,0x03,0x20,0x00,0x00,0xff,0xff,0x00,0xb5,0x00,0x00,0x01,0x6e,0x06,0x05,0x02,0x26,0x0b,0x6d,0x00,0x00,0x00,0x07,0x0b,0x5c,0x01,0x11,0x00,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x04,0x3c,0x05,0xd5,0x02,0x26,0x0b,0x69,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0x4e, +0xff,0xed,0x03,0xeb,0x05,0xd5,0x02,0x26,0x0b,0x73,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xc7,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0xed,0x04,0x9c,0x05,0xd5,0x02,0x26,0x0b,0x7c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0x44,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x04,0xba,0x06,0xa0,0x00,0x1b,0x00,0x40,0xb6,0x17,0x06,0x12,0x0c,0x0b, +0x0b,0x01,0xb8,0x01,0x50,0xb3,0x1a,0x1a,0x1d,0x12,0xb8,0x01,0x50,0xb7,0x0f,0x06,0x17,0x0b,0x12,0x12,0x0f,0x1b,0xbc,0x01,0x4a,0x00,0x10,0x01,0x4c,0x00,0x0b,0x01,0x4d,0x00,0x3f,0x3f,0x3f,0x33,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x01,0x11,0x14,0x0e,0x02,0x07, +0x1e,0x03,0x17,0x23,0x02,0x00,0x25,0x11,0x33,0x11,0x16,0x16,0x17,0x16,0x17,0x36,0x36,0x35,0x11,0x04,0x89,0x28,0x4a,0x68,0x41,0x24,0x52,0x57,0x57,0x28,0xcb,0xc4,0xfe,0x36,0xfe,0xf8,0xaa,0x6f,0xc2,0x48,0x54,0x47,0x5c,0x6c,0x04,0xcd,0xfe,0xc1,0x52,0x83,0x6c,0x58,0x29,0x2b,0x6e,0x79,0x7e,0x3c,0x01,0x23,0x02,0x19,0xf6,0x02, +0x6e,0xfd,0xde,0x6f,0xd2,0x51,0x5f,0x55,0x35,0x99,0x6a,0x01,0x5d,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x09,0x9a,0x06,0xe8,0x00,0x04,0x00,0x08,0x00,0x0c,0x00,0x18,0x00,0x1c,0x00,0x21,0x00,0x2c,0x00,0x31,0x00,0x35,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4e,0x00,0x55,0x00,0x5c,0x00,0x64,0x00,0xee,0x40,0x10,0x05,0x32,0x06,0x33, +0x0a,0x19,0x46,0x1a,0x47,0x4b,0x2d,0x61,0x4a,0xce,0x3c,0x36,0xb8,0x01,0x50,0xb2,0x5d,0x53,0x5a,0x41,0x0a,0x01,0x52,0x00,0x25,0x00,0x29,0x01,0x52,0x00,0x4f,0x00,0x22,0x01,0x50,0x00,0x56,0x00,0x0d,0x01,0x50,0x40,0x28,0x16,0x02,0x1e,0x3c,0x5d,0x25,0x4f,0x56,0x16,0x1e,0x1e,0x16,0x56,0x4f,0x25,0x5d,0x3c,0x07,0x0a,0x42,0xce, +0x43,0x2f,0x4b,0x09,0x00,0x1d,0xce,0x0a,0x0b,0x44,0x30,0x0a,0x43,0x48,0x20,0x4c,0x0f,0x25,0x39,0xb8,0x01,0x56,0xb4,0x63,0x14,0x5a,0x63,0x59,0xb8,0x01,0x56,0xb2,0x53,0x52,0x5f,0xb8,0x01,0x56,0x40,0x19,0x3f,0x26,0x17,0x3f,0x01,0x2f,0x4c,0x63,0x53,0x3f,0x2f,0x2f,0x3f,0x53,0x63,0x4c,0x05,0x30,0x34,0x48,0x1e,0x33,0x47,0x03, +0x4b,0xb8,0x01,0x4d,0xb6,0x06,0x1a,0x03,0x07,0x1b,0x03,0x30,0x00,0x2f,0x17,0x33,0xc4,0x32,0x3f,0x17,0x33,0xc4,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xc6,0x32,0x10,0xc6,0x32,0x01,0x2f,0xe4,0x32,0x32,0x2f,0x33,0x33, +0xe4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xe4,0x32,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x23,0x01,0x35,0x21,0x05,0x21,0x35,0x21,0x01,0x23,0x11,0x33,0x01,0x10,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x35,0x11, +0x33,0x01,0x21,0x35,0x21,0x01,0x21,0x35,0x01,0x33,0x01,0x14,0x21,0x21,0x11,0x21,0x20,0x15,0x14,0x07,0x16,0x01,0x01,0x23,0x11,0x21,0x01,0x21,0x35,0x21,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x23,0x11,0x33,0x01,0x21,0x35,0x21,0x05,0x21,0x11,0x33,0x01,0x01,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34, +0x23,0x23,0x11,0x33,0x32,0x01,0x10,0x23,0x22,0x11,0x10,0x33,0x32,0x09,0x9a,0x78,0xfe,0xf3,0x01,0x85,0xfd,0x4e,0xfe,0x7d,0x01,0x83,0x02,0xb2,0x78,0x78,0xfe,0xc0,0xfd,0x67,0x3d,0x55,0x20,0x2f,0x71,0x8c,0xfb,0xda,0xfe,0x7e,0x01,0x82,0x05,0x66,0xfe,0x7b,0x01,0x0d,0x78,0xfd,0x12,0xfe,0xb7,0xfe,0xe0,0x01,0x1b,0x01,0x2a,0x6a, +0x8e,0xfa,0xd9,0xfe,0xf3,0x78,0x01,0x85,0x05,0x63,0xfe,0x7d,0x01,0x83,0xfd,0x19,0xc5,0xb8,0xb8,0xc0,0xc0,0xb8,0xb8,0xc5,0xfc,0x77,0x78,0x78,0x03,0xbc,0xfe,0x7e,0x01,0x82,0xfd,0x51,0xfe,0x7b,0x78,0x01,0x0d,0x04,0x79,0xc5,0x6c,0x7a,0xb7,0x22,0xcc,0x87,0x96,0xbd,0xfd,0x54,0xf0,0xec,0xec,0xf0,0x05,0x65,0x01,0x09,0x7a,0x7a, +0x7a,0xfb,0xca,0x01,0x82,0xfe,0xa8,0xfe,0xe1,0x36,0x5e,0x1e,0xa4,0x02,0x45,0x01,0x52,0x7a,0xf9,0x18,0x78,0x01,0x0d,0x01,0x41,0xfa,0x03,0x50,0xe0,0x6f,0x3d,0x36,0x03,0x14,0xfe,0xf7,0x01,0x83,0xf9,0x18,0x78,0x02,0xfa,0xd1,0xe4,0xe4,0xd1,0xd1,0xe7,0xe7,0xfe,0x6f,0x01,0x82,0xfb,0xcc,0x78,0x78,0x01,0x85,0xfe,0xf3,0x03,0xb8, +0x75,0xe6,0xf9,0x82,0xfe,0xf7,0x01,0x33,0x01,0x43,0xfe,0xbd,0xfe,0xc1,0x00,0x01,0x00,0x00,0xfe,0x09,0x01,0xb0,0xff,0x9e,0x00,0x07,0x00,0x1a,0x40,0x0a,0x07,0x01,0x06,0x04,0x02,0x01,0x04,0x06,0x06,0x09,0x11,0x00,0x33,0x2f,0xdd,0x32,0xcd,0x01,0x2f,0xcd,0xdd,0xcd,0x30,0x31,0x05,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x01,0xb0, +0xa5,0x66,0xa5,0x01,0xb0,0xc8,0xfe,0xd1,0x01,0x2f,0x66,0x00,0xff,0xff,0x00,0xa5,0x00,0x00,0x04,0x9a,0x04,0xd4,0x02,0x26,0x0b,0x68,0x00,0x00,0x01,0x07,0x0b,0x5e,0x02,0x2a,0xfe,0x6f,0x00,0x0f,0xb1,0x01,0x2c,0xb8,0xff,0xc0,0xb3,0x10,0x10,0x36,0x2c,0x00,0x11,0x2b,0x35,0x00,0xff,0xff,0x00,0x59,0x00,0x00,0x03,0xeb,0x06,0xa0, +0x02,0x06,0x0b,0x74,0x00,0x00,0xff,0xff,0x00,0x59,0xff,0x04,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x58,0x02,0x3f,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x04,0xba,0x06,0xa0,0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x59,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x59,0xfd,0xff,0x05,0x40,0x06,0xa0, +0x02,0x26,0x0b,0xb7,0x00,0x00,0x00,0x07,0x0b,0x54,0x02,0x63,0x00,0x00,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x00,0x18,0x00,0x2a,0x40,0x12,0x02,0x18,0x12,0x11,0x08,0x0b,0x11,0x13,0x05,0x40,0x10,0x10,0x01,0x0a,0xc0,0x11,0x11,0x1a,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xcd,0x33,0x01,0x2f,0xdc,0xcd, +0x10,0xdd,0xdc,0xcd,0x30,0x31,0x13,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x1e,0x03,0x15,0xbe,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0xfe,0x09,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40, +0x26,0x00,0x00,0x03,0xff,0x15,0x05,0x4e,0x00,0xeb,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3f,0xb9,0x00,0x06,0x01,0x51,0xb3,0x00,0x00,0x0c,0x1e,0xbe,0x01,0x51,0x00,0x18,0x00,0x12,0x01,0x51,0x00,0x0c,0x00,0x1b,0x01,0x55,0xb3,0x21,0x21,0x15,0x03,0xbd,0x01,0x55,0x00,0x09,0x00,0x0f,0x01,0x55,0x00,0x15,0x05,0x10,0x00, +0x3f,0xfd,0xde,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x03,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x07,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x5d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34, +0x8e,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x01,0x1d,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x06,0xaf,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x2d,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x01,0xff,0x73,0x05,0x4e,0x00,0x8e,0x07,0x0a,0x00,0x0b,0x00,0x24,0x40,0x0f,0x04,0x02,0x00,0x40, +0x0a,0x08,0x06,0x07,0x03,0x09,0x01,0x04,0x0b,0xc0,0x05,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcc,0x17,0x39,0x01,0x2f,0x33,0x33,0x1a,0xcc,0x32,0x32,0x30,0x31,0x13,0x07,0x17,0x07,0x17,0x07,0x23,0x37,0x27,0x37,0x27,0x37,0x8e,0xa1,0xa1,0xa1,0xa1,0xa1,0x7a,0xa1,0xa1,0xa1,0xa1,0xa1,0x07,0x0a,0x59,0x59,0x58,0x59,0x59,0x59,0x59,0x58, +0x59,0x59,0x00,0x02,0xff,0xa1,0x05,0x4e,0x00,0x5f,0x07,0x0a,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x0c,0x01,0x51,0xb2,0x12,0x12,0x00,0x41,0x09,0x01,0x51,0x00,0x06,0x00,0x15,0x01,0x55,0x00,0x0f,0x00,0x09,0x01,0x55,0x00,0x03,0x05,0x10,0x00,0x3f,0xfd,0xde,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x13,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x5f,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x03,0xff,0x49,0x05,0x4e,0x00,0xb8, +0x07,0x0a,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x32,0xb9,0x00,0x04,0x01,0x51,0xb2,0x0a,0x0a,0x10,0xb8,0x01,0x51,0xb4,0x16,0x03,0x02,0x03,0x19,0xbe,0x01,0x55,0x00,0x13,0x00,0x0d,0x01,0x55,0x00,0x00,0x00,0x07,0x05,0x10,0x00,0x3f,0x33,0xfd,0xde,0xed,0x32,0x01,0x2f,0xdd,0xde,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x23,0x11,0x33, +0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x27,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x51,0x66,0x66,0x01,0x09,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0x05,0x58,0x01,0xa8,0xfe,0xa9,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0xd8,0x2a,0x31,0x2f,0x2c, +0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x03,0x03,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xcc,0x30,0x31,0x07,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0xbb,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23, +0x96,0x64,0x64,0xa7,0x00,0x01,0xff,0x61,0x05,0x4e,0x00,0x9f,0x06,0xdf,0x00,0x03,0x00,0x10,0xb3,0x00,0x02,0x03,0x01,0xb8,0x05,0x10,0x00,0x3f,0xcd,0x01,0x2f,0xcd,0x30,0x31,0x13,0x07,0x27,0x37,0x9f,0x9f,0x9f,0x9f,0x06,0x17,0xc9,0xc9,0xc8,0x00,0x00,0x01,0xfe,0xab,0x05,0x4e,0x01,0x56,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12, +0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33,0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x03,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x1b,0x1c,0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05, +0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26,0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x01,0xfe,0x26,0x05,0x57,0xff,0x9c,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x05,0x00,0x09,0x08,0x09,0x02,0xb8, +0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xdc,0xcd,0x30,0x31,0x03,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0x05,0xaa,0x26,0x2d,0x32,0x24,0x91,0x67,0x64,0xab,0x00,0x01,0x00,0x64,0xfe,0x09,0x01,0xc4,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00, +0x44,0x04,0x54,0x04,0x02,0xcb,0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x01,0x23,0x27,0x37,0x33,0x07,0x01,0xc4, +0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09,0xd4,0xd4,0xd4,0x00,0x02,0xff,0x42,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0xb3,0x04,0x00,0x07,0x0c,0xb8,0x01,0x51,0xb5,0x12,0x04,0x03,0x0a,0x0a,0x0f,0xb8,0x01,0x55,0xb2,0x15,0x15,0x19,0x11,0x00,0x33,0x2f,0xed,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xfd,0xde,0xcd,0xce,0x30, +0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x07,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xc0,0x33,0x29,0x2a,0x33,0x31,0x2a,0x2a,0x34,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x3a,0x2a,0x31,0x2f,0x2c,0x2a,0x32,0x2f,0x00,0x00,0x01,0xff,0x45, +0x05,0x57,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x01,0x00,0x64, +0x05,0x57,0x01,0xda,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x07,0x03,0x00,0x04,0x03,0x09,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcc,0xcd,0x30,0x31,0x13,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x64,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x02,0xfe,0xe1, +0x05,0x57,0x01,0x1f,0x07,0x09,0x00,0x0b,0x00,0x17,0x00,0x25,0x40,0x0e,0x13,0x10,0x0c,0x0c,0x03,0x07,0x00,0x10,0x0f,0x0f,0x04,0x03,0x15,0x09,0xb8,0x05,0x10,0x00,0x3f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xcd,0xcc,0x32,0x2f,0xcc,0xcd,0x30,0x31,0x01,0x34,0x36,0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x25,0x34,0x36, +0x33,0x15,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0xfe,0xe1,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x01,0x20,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0x05,0xa8,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x97,0x22,0x31,0x2c,0x00,0x04,0xfe,0x06,0x05,0x35,0x01,0xfa,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x2b,0x00,0x37, +0x00,0x44,0x40,0x1f,0x29,0x32,0x1e,0x2c,0x24,0x2b,0x1e,0x02,0x16,0x00,0x0d,0x10,0x07,0x29,0x2a,0x35,0x2a,0x27,0x27,0x04,0x02,0x01,0x13,0x04,0x2f,0x21,0x21,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x33,0x2f,0xcd,0x10,0xcd,0x11,0x39,0x11,0x33,0x2f,0xce,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0xde,0xce,0xdc, +0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x07,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x28,0x3e, +0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x02,0x3d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44, +0x95,0x28,0x3e,0x53,0x70,0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x24,0x40,0x0f,0x0d,0x16,0x02,0x10,0x08,0x0f,0x02,0x0d,0x0e,0x19,0x0e,0x0b,0x13,0x05,0x0b,0x00,0x2f,0xdc,0xcd,0x10,0xce,0xcd,0x11,0x39,0x01,0x2f, +0xce,0xdc,0xcd,0x10,0xcd,0x32,0x30,0x31,0x03,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x7d,0x1c,0x6f,0x54,0x4e,0x71,0x70,0x4f,0x3f,0x29,0x6d,0x3e,0x01,0x81,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0xe1,0x28,0x3e,0x53,0x70, +0x73,0x50,0x53,0x6f,0x1e,0x6e,0x3e,0xd4,0x2f,0x44,0x44,0x2f,0x2f,0x44,0x44,0x00,0x00,0x01,0xff,0x5b,0x05,0x58,0x00,0xa6,0x07,0x00,0x00,0x11,0x00,0x2f,0x40,0x15,0x06,0x0a,0x09,0x11,0x40,0x00,0xc0,0x09,0x04,0x40,0x0d,0x40,0x09,0x10,0x48,0x0d,0x0d,0x11,0x09,0xc0,0x07,0xb8,0x05,0x10,0x00,0x3f,0x1a,0xcd,0x32,0x39,0x2f,0x2b, +0x1a,0xcd,0x01,0x2f,0x1a,0xdc,0x1a,0xcd,0x10,0xcd,0x32,0x30,0x31,0x13,0x15,0x14,0x06,0x23,0x22,0x27,0x15,0x23,0x11,0x33,0x15,0x16,0x33,0x32,0x36,0x35,0x35,0xa6,0x57,0x57,0x22,0x17,0x64,0x64,0x0f,0x1c,0x30,0x26,0x07,0x00,0x76,0x58,0x65,0x0a,0x7f,0x01,0xa8,0xcf,0x0b,0x2c,0x39,0x75,0x00,0x01,0xff,0x43,0xfe,0x09,0x00,0xbe, +0xff,0xb1,0x00,0x18,0x00,0x30,0x40,0x17,0x09,0x0a,0x10,0x13,0x01,0x00,0x13,0x10,0x13,0x40,0x05,0x40,0x09,0x10,0x48,0x05,0x05,0x12,0xc0,0x09,0x01,0x01,0x1a,0x11,0x00,0x33,0x2f,0x33,0x1a,0xcc,0x39,0x2f,0x2b,0x1a,0xcd,0x32,0x01,0x2f,0xdd,0xcd,0x10,0xdd,0xdd,0xcd,0x30,0x31,0x07,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35, +0x33,0x15,0x14,0x0e,0x02,0x07,0x15,0x23,0x35,0x2e,0x03,0x35,0xbd,0x66,0x27,0x30,0x31,0x27,0x66,0x0e,0x20,0x35,0x27,0x66,0x28,0x35,0x20,0x0e,0x4f,0x76,0x35,0x2f,0x2f,0x35,0x76,0x77,0x26,0x40,0x31,0x20,0x06,0x74,0x74,0x06,0x20,0x31,0x40,0x26,0x00,0x01,0xff,0x6a,0xfe,0x09,0x00,0x96,0xff,0xb1,0x00,0x05,0x00,0x15,0xb7,0x05, +0x02,0x04,0x02,0x01,0x05,0x05,0x07,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0xfe,0x09,0x66,0x01,0x42,0x00,0x00,0x01,0xff,0x4b,0xfe,0x09,0x00,0xab,0xff,0xb1,0x00,0x05,0x00,0x40,0x40,0x22,0xb4,0x02,0x01,0x03,0x01,0x00,0x44,0x04,0x54,0x04,0x02,0xcb, +0x04,0x01,0x04,0x80,0xcb,0x05,0x01,0x85,0x05,0x01,0x05,0x02,0x02,0x07,0x02,0x05,0x05,0x01,0xc0,0x03,0x03,0x07,0x11,0x00,0x33,0x2f,0x1a,0xcc,0x39,0x3d,0x2f,0x33,0x11,0x01,0x33,0x18,0x2f,0x33,0x5d,0x5d,0x1a,0xcd,0x5d,0x71,0x32,0x39,0x39,0x5d,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xab,0x8d,0xd3,0xd3,0x8d,0xd2,0xfe,0x09, +0xd4,0xd4,0xd4,0x00,0x00,0x01,0xff,0x45,0xfd,0xff,0x00,0xbb,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x04,0x00,0x07,0x04,0x03,0x0a,0x0a,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x17,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0xbb,0xb7,0xbf,0x85,0x8b,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64, +0x96,0x23,0x31,0x2c,0x00,0x02,0xfe,0xe1,0xfd,0xff,0x01,0x1f,0xff,0xb1,0x00,0x0b,0x00,0x17,0x00,0x26,0x40,0x10,0x00,0x07,0x04,0x04,0x0c,0x10,0x13,0x10,0x0f,0x0f,0x04,0x03,0x16,0x0a,0x0a,0x19,0x11,0x00,0x33,0x2f,0x33,0xdc,0xcd,0x33,0x2f,0xcd,0x01,0x2f,0xce,0xcd,0x32,0x10,0xde,0xcd,0x30,0x31,0x05,0x14,0x06,0x23,0x35,0x32, +0x36,0x35,0x34,0x27,0x33,0x16,0x05,0x14,0x06,0x23,0x35,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x01,0x1f,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xfe,0xe0,0x8c,0x92,0x5a,0x5e,0x04,0x64,0x06,0xa0,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x25,0xba,0xa7,0x64,0x64,0x96,0x23,0x31,0x2c,0x00,0x01,0xff,0x68,0xfd,0xff,0x00,0x99,0xff,0xbb, +0x00,0x09,0x00,0x2a,0x40,0x11,0x04,0x09,0x00,0x08,0x80,0x05,0x03,0x09,0x07,0x04,0x04,0x03,0x02,0x08,0x07,0x07,0x0b,0x11,0x00,0x33,0x2f,0x33,0xcc,0x32,0x39,0x19,0x2f,0x12,0x39,0x01,0x18,0x2f,0x33,0x1a,0xcc,0x32,0x39,0x39,0x30,0x31,0x13,0x07,0x07,0x35,0x37,0x27,0x37,0x37,0x15,0x07,0x99,0x4d,0xe4,0xa8,0xa8,0x4d,0xe4,0xaa, +0xfe,0x67,0x41,0x27,0x5c,0x1b,0xdd,0x41,0x27,0x59,0x1e,0x00,0x00,0x01,0xff,0x45,0x05,0x4d,0x00,0xbb,0x07,0x09,0x00,0x0b,0x00,0x14,0xb5,0x08,0x00,0x05,0x08,0x09,0x02,0xb8,0x05,0x10,0x00,0x3f,0xdc,0xcd,0x01,0x2f,0xcd,0xce,0x30,0x31,0x13,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0xbb,0x06,0x64,0x04,0x8b,0x85, +0xbf,0xb7,0x05,0xa0,0x26,0x2d,0x32,0x24,0x9b,0x67,0x64,0xab,0x00,0x02,0xff,0x17,0x05,0x35,0x00,0xe9,0x07,0x0a,0x00,0x0f,0x00,0x1b,0x00,0x22,0x40,0x0e,0x02,0x16,0x00,0x0d,0x10,0x07,0x02,0x01,0x13,0x04,0x19,0x0a,0x01,0x04,0x00,0x2f,0xce,0xdc,0xcd,0x10,0xcd,0x11,0x39,0x01,0x2f,0xcd,0xdc,0xce,0xcd,0x32,0x30,0x31,0x13,0x07, +0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xe9,0x3e,0x6d,0x29,0x3f,0x4f,0x70,0x71,0x4e,0x54,0x6f,0x1c,0xfe,0xeb,0x43,0x2e,0x2e,0x42,0x42,0x2e,0x2e,0x43,0x05,0x73,0x3e,0x6e,0x1e,0x6f,0x53,0x50,0x73,0x70,0x53,0x3e,0x28,0x66,0x2f,0x44, +0x44,0x2f,0x2f,0x44,0x44,0x00,0xff,0xff,0xff,0x43,0xfe,0x09,0x00,0xbe,0xff,0xb1,0x02,0x06,0x0b,0xd0,0x00,0x00,0x00,0x01,0xff,0x4b,0x05,0x4d,0x00,0xb5,0x07,0x09,0x00,0x05,0x00,0x31,0x40,0x17,0x00,0x04,0x80,0x84,0x05,0x94,0x05,0x02,0x05,0x34,0x03,0x01,0x03,0x34,0x01,0x01,0x01,0x02,0x05,0x05,0x03,0xc0,0x00,0xb8,0x05,0x10, +0x00,0x3f,0x1a,0xcc,0x39,0x3d,0x2f,0x01,0x18,0x2f,0x33,0x71,0x33,0x71,0x33,0x5d,0x1a,0xcd,0x32,0x30,0x31,0x13,0x23,0x27,0x37,0x33,0x07,0xb5,0x8d,0xdd,0xdd,0x8d,0xdc,0x05,0x4d,0xde,0xde,0xde,0x00,0x01,0xff,0x6a,0x05,0x58,0x00,0x96,0x07,0x00,0x00,0x05,0x00,0x14,0xb5,0x05,0x02,0x04,0x05,0x02,0x00,0xb8,0x05,0x10,0x00,0x3f, +0xcd,0xcd,0x01,0x2f,0xce,0xcd,0x30,0x31,0x13,0x21,0x35,0x33,0x11,0x33,0x96,0xfe,0xd4,0xc6,0x66,0x05,0x58,0x66,0x01,0x42,0x00,0x01,0x00,0x64,0xfd,0xff,0x01,0xda,0xff,0xb1,0x00,0x0b,0x00,0x15,0xb7,0x08,0x05,0x00,0x08,0x09,0x02,0x02,0x0d,0x11,0x00,0x33,0x2f,0xdc,0xcd,0x01,0x2f,0xdd,0xce,0x30,0x31,0x17,0x34,0x37,0x33,0x06, +0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x64,0x06,0x64,0x04,0x8b,0x85,0xbf,0xb7,0xa0,0x25,0x2c,0x31,0x23,0x96,0x64,0x64,0xa7,0x00,0x01,0xfd,0x87,0x05,0x4e,0x00,0x32,0x06,0xa3,0x00,0x31,0x00,0x2d,0x40,0x12,0x00,0x19,0x0f,0x24,0x21,0x28,0x0b,0x08,0x0f,0x08,0x21,0x2d,0x25,0x05,0x14,0x1e,0x0c,0x2d,0xb8,0x05,0x10,0x00,0x3f,0x33, +0xcd,0xdd,0xcd,0x33,0x12,0x39,0x39,0x01,0x2f,0xcd,0x33,0xdc,0xcd,0x33,0x12,0x39,0x39,0x30,0x31,0x01,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0xfe,0xc1,0x1c, +0x28,0x21,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2c,0x17,0x1b,0x28,0x20,0x1d,0x12,0x27,0x31,0x1e,0x24,0x1a,0x38,0x3e,0x18,0x2c,0x3e,0x24,0x22,0x37,0x31,0x2b,0x05,0xdf,0x26,0x31,0x1b,0x0b,0x32,0x2d,0x29,0x31,0x0d,0x48,0x14,0x56,0x45,0x24,0x3d,0x2c,0x19,0x15,0x26,0x36,0x1f,0x26, +0x31,0x1b,0x0b,0x32,0x2c,0x29,0x32,0x0d,0x47,0x14,0x56,0x45,0x23,0x3e,0x2c,0x19,0x15,0x26,0x37,0x00,0x00,0x02,0xff,0x29,0x05,0x4e,0x00,0xd8,0x06,0xfd,0x00,0x0b,0x00,0x17,0x00,0x18,0xb7,0x12,0x06,0x0c,0x00,0x15,0x03,0x0f,0x09,0xb8,0x05,0x10,0x00,0x3f,0xcd,0xdc,0xcd,0x01,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x03,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0xd7,0x78,0x5f,0x5f,0x79,0x79,0x5f,0x5f,0x78,0x60,0x43,0x34,0x35,0x43,0x43,0x35,0x34,0x43,0x06,0x25,0x55,0x83,0x83,0x55,0x55,0x82,0x82,0x55,0x2f,0x48,0x48,0x2f,0x2f,0x49,0x49,0x00,0xff,0xff,0xff,0xa4,0x05,0x4e,0x00,0x5d, +0x06,0x05,0x02,0x06,0x0b,0x5c,0x00,0x00,0x00,0x01,0x00,0xab,0x00,0x00,0x02,0xcb,0x04,0xde,0x00,0x19,0x00,0x2c,0xb5,0x0b,0x0b,0x18,0x18,0x1b,0x15,0x41,0x0a,0x01,0x50,0x00,0x00,0x00,0x16,0x01,0x54,0x00,0x18,0x01,0x4d,0x00,0x10,0x01,0x54,0x00,0x07,0x01,0x4a,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, +0x31,0x30,0x13,0x34,0x3e,0x04,0x33,0x32,0x16,0x17,0x17,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x21,0x17,0x21,0xab,0x0b,0x1b,0x2f,0x49,0x65,0x45,0x25,0x56,0x1c,0x18,0x08,0x1f,0x24,0x24,0x0f,0x44,0x52,0x2b,0x0d,0x01,0x62,0x13,0xfd,0xe0,0x03,0x1b,0x3a,0x71,0x64,0x54,0x3e,0x22,0x08,0x06,0x94,0x02,0x04,0x03,0x02,0x2c,0x50, +0x6d,0x41,0xfd,0x85,0xa2,0x00,0xff,0xff,0x00,0xb6,0x00,0xfc,0x01,0x6f,0x04,0xcd,0x02,0x26,0x0b,0x71,0x00,0x00,0x00,0x07,0x0b,0x5e,0x01,0x11,0xfe,0xe4,0x00,0x01,0xfe,0xb2,0x05,0x67,0x01,0x4f,0x06,0x78,0x00,0x0d,0x00,0x15,0xb7,0x00,0x01,0x08,0x07,0x00,0x08,0x0b,0x04,0x00,0x2f,0xcd,0xcc,0x32,0x01,0x2f,0x33,0xcc,0x32,0x30, +0x31,0x13,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0xc8,0x87,0x17,0xaa,0x8d,0x8e,0xa9,0x18,0x87,0x10,0x60,0x51,0x5e,0x60,0x06,0x78,0x84,0x8d,0x8a,0x87,0x49,0x54,0x51,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0x9a,0x00,0x19,0x00,0x8c,0x40,0x5f,0x59,0x17,0x01,0x48,0x17,0x01,0x56,0x13,0x01,0x79, +0x06,0x01,0x6a,0x06,0x01,0x0b,0x06,0x1b,0x06,0x02,0x9a,0x05,0x01,0x68,0x05,0x01,0x2a,0x05,0x01,0x96,0x03,0x01,0x24,0x03,0x01,0x05,0x03,0x15,0x03,0x02,0x66,0x02,0x76,0x02,0x02,0x0d,0x0d,0x00,0x7d,0x10,0x19,0x20,0x19,0x30,0x19,0x03,0x19,0x19,0x1b,0x0f,0x11,0x7d,0x08,0x0b,0x0b,0x8a,0x0a,0x01,0x69,0x0a,0x79,0x0a,0x02,0x4b, +0x0a,0x01,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x00,0x00,0x15,0x0a,0x0f,0x91,0x0d,0x03,0x15,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xc4,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x33,0x2f,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x10,0x13,0x23,0x35,0x21,0x15,0x21,0x04,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x05,0xaa,0xac,0xb6,0xfe,0xb6,0xfe,0xc6,0xb6,0xb0,0xf1,0xf1,0x05,0x4c,0xfc,0x89,0xfe,0xdb,0x7a,0x87,0xef,0xfc,0x86,0x7a,0x02,0xc8,0xfe,0xb4,0xc4,0xd0,0xc8,0xc1,0x01,0x3b,0x01,0x55,0x01,0x01, +0x98,0x98,0xef,0xfe,0xa8,0xf4,0x9c,0xac,0xaa,0x9b,0x01,0x04,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x16,0x00,0x5a,0x40,0x39,0x46,0x0e,0x01,0x37,0x0e,0x01,0x78,0x05,0x01,0x5b,0x05,0x01,0x16,0x15,0x7e,0x12,0x02,0x02,0x18,0x0a,0x0c,0x7e,0x68,0x09,0x78,0x09,0x02,0x09,0x0f,0x07,0x2f,0x07,0x3f,0x07,0x4f,0x07, +0x04,0x07,0x40,0x10,0x13,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x15,0x0a,0x13,0x03,0x15,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0xed,0x32,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06, +0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x11,0x33,0x04,0xf0,0xfe,0x97,0xbc,0xc3,0xd7,0xfe,0x5b,0xb0,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xc1,0x02,0x7b,0x73,0x01,0x08,0xd8,0xfe,0xb4,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0xfa,0xfe,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x05,0x23,0x05,0xb2,0x00,0x17,0x00,0x5b,0x40,0x37, +0x82,0x14,0x01,0x8a,0x12,0x01,0x76,0x08,0x01,0x67,0x08,0x01,0x65,0x07,0x01,0x7a,0x05,0x01,0x69,0x05,0x01,0x16,0x7e,0x04,0x17,0x7e,0x02,0x04,0x02,0x04,0x02,0x19,0x0c,0x0a,0x7e,0x0d,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x0c,0x0d,0x0d,0x16,0x06,0x91,0x13,0x04,0x16,0x91,0x01,0x03,0x12,0x00,0x3f,0xce,0xed,0x3f,0xed,0x11,0x39,0x2f, +0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x23,0x35,0x21,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x11,0x21,0x05,0x23,0x9c,0xfe,0x89,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71, +0xd5,0x01,0xa8,0x01,0x6b,0xcb,0xcb,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xfc,0xb2,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x4c,0x05,0x9a,0x00,0x16,0x00,0x26,0x00,0x7c,0x40,0x53,0x29,0x25,0x79,0x25,0x02,0x26,0x21,0x76,0x21,0x02,0x26,0x1d,0x76,0x1d,0x02,0x29,0x19,0x79,0x19,0x02, +0x8a,0x0b,0x01,0x8a,0x0a,0x01,0x89,0x06,0x01,0x86,0x02,0x01,0x12,0x7e,0x0c,0x11,0x11,0x00,0x7d,0x17,0x50,0x0c,0x01,0x10,0x17,0x20,0x17,0x50,0x17,0x60,0x17,0x04,0x0c,0x17,0x0c,0x17,0x28,0x1f,0x7d,0x08,0x0e,0x0e,0x0f,0x08,0x1f,0x08,0x2f,0x08,0x03,0x08,0x1b,0x91,0x0c,0x13,0x12,0x0d,0x91,0x0f,0x03,0x23,0x91,0x04,0x13,0x00, +0x3f,0xed,0x3f,0xfd,0xc4,0xdd,0x32,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x37,0x36,0x37,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x16,0x17,0x16,0x07,0x34,0x27, +0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x4c,0xbe,0xb3,0xfe,0xfa,0xfe,0xfc,0xb7,0xc0,0xa0,0x99,0xec,0xfd,0xdb,0x04,0xf2,0xfd,0xdb,0xe9,0x9b,0xa1,0xb0,0x87,0x82,0xc0,0xbf,0x82,0x88,0x87,0x82,0xc0,0xbf,0x82,0x88,0x02,0x28,0xfe,0xfa,0xa2,0x98,0xa0,0xa9,0x01,0x04,0xee,0xa0,0x99,0x16,0x90,0x98, +0x98,0x90,0x19,0xa0,0xa5,0xe5,0xc3,0x79,0x73,0x74,0x7a,0xc1,0xc3,0x79,0x73,0x74,0x79,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x03,0xb8,0x05,0xb2,0x00,0x13,0x00,0x51,0x40,0x34,0x96,0x12,0x01,0x72,0x12,0x82,0x12,0x02,0x8a,0x10,0x01,0x79,0x10,0x01,0x7a,0x0f,0x01,0x56,0x06,0x66,0x06,0x02,0x59,0x03,0x69,0x03,0x02,0x00,0x7e,0x02, +0x02,0x15,0x0a,0x08,0x7e,0x0b,0x0f,0x0d,0x1f,0x0d,0x02,0x0d,0x0a,0x0b,0x0b,0x01,0x04,0x91,0x11,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34, +0x37,0x36,0x33,0x20,0x11,0x03,0xb8,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0x00,0x01,0x00,0x64,0x00,0x00,0x05,0x23,0x05,0xb2,0x00,0x19,0x00,0x6f,0x40,0x44,0xa7,0x16,0x01,0x84,0x16,0x01,0x71,0x16,0x01,0x06, +0x16,0x01,0x7a,0x14,0x8a,0x14,0x02,0x7a,0x13,0x01,0x66,0x0a,0x01,0x6a,0x07,0x01,0x03,0x18,0x7e,0x06,0x19,0x7e,0x01,0x00,0x06,0x01,0x06,0x01,0x06,0x01,0x1b,0x0e,0x0c,0x7e,0x0f,0x0f,0x11,0x1f,0x11,0x02,0x11,0x0e,0x0f,0x19,0x91,0x01,0x03,0x0f,0x03,0x0f,0x03,0x05,0x08,0x91,0x15,0x04,0x05,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39, +0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x23,0x11,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x21,0x05,0x23,0x9c, +0xcf,0xa8,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xfd,0x73,0x03,0xe0,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x12,0x00,0x22,0x00,0x51,0x40,0x18,0x4a,0x21,0x5a,0x21,0x02,0x45, +0x1d,0x55,0x1d,0x02,0x45,0x19,0x55,0x19,0x02,0x5a,0x15,0x01,0x49,0x15,0x01,0x00,0x7e,0x13,0xb8,0xff,0xc0,0x40,0x19,0x09,0x0c,0x48,0x13,0x13,0x24,0x1b,0x7e,0x0d,0x7e,0x0a,0x08,0x17,0x91,0x0d,0x0f,0x10,0x09,0x91,0x0c,0x03,0x1f,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x01,0x2f,0xce,0xed,0xed,0x12,0x39,0x2f, +0x2b,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x21,0x35,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe7,0x87,0x84,0xfe,0x88,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55, +0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x03,0x0e,0x98,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0xe7,0x05,0x9a,0x00,0x0e,0x00,0x17,0x00,0x6b,0x40,0x45,0x06,0x15,0x86,0x15,0x02,0x9b,0x0a,0x01, +0x89,0x0a,0x01,0x7c,0x0a,0x01,0x6e,0x0a,0x01,0x0a,0x48,0x0e,0x49,0x29,0x0a,0x01,0x1a,0x0a,0x01,0x59,0x07,0x69,0x07,0x02,0x0d,0x03,0x7e,0x0f,0x0e,0x7e,0x02,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x02,0x19,0x13,0x7d,0x0f,0x09,0x1f,0x09,0x02,0x09,0x0e,0x91,0x01,0x03,0x03,0x04,0x10,0x91,0x0c,0x03,0x0f,0x91,0x04,0x12,0x00,0x3f,0xed, +0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x21,0x20,0x27,0x26,0x11,0x10,0x21,0x21,0x11,0x21,0x01,0x11,0x23,0x20,0x11,0x10,0x17,0x16,0x21,0x05,0xe7,0x9c,0xcf,0xfe,0xe8,0xfe, +0xa8,0xd4,0xda,0x02,0xf6,0x01,0x28,0x01,0x6b,0xfd,0xed,0x7c,0xfd,0xb6,0x9f,0x9c,0x01,0x19,0x01,0xc2,0xcb,0xfd,0x73,0xc2,0xc8,0x01,0x55,0x02,0xbb,0xfd,0x8b,0xfd,0x73,0x04,0x6a,0xfd,0xd9,0xfe,0xe9,0x98,0x94,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x05,0x7e,0x02,0x02,0x07,0x03, +0x02,0x91,0x05,0x03,0x01,0x12,0x00,0x3f,0x3f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x35,0x21,0x03,0x08,0xa8,0xfd,0xc0,0x02,0xe8,0x05,0x02,0x98,0x00,0x02,0x00,0x8c,0x00,0x00,0x04,0x7c,0x05,0x9a,0x00,0x11,0x00,0x21,0x00,0x6a,0x40,0x45,0x35,0x0f,0x01,0x35,0x0e,0x01,0x3a,0x06,0x01,0x3a,0x05,0x01, +0x45,0x0f,0x01,0x46,0x0e,0x01,0x4a,0x06,0x01,0x49,0x05,0x01,0x12,0x7e,0x11,0x7e,0x10,0x02,0x01,0x02,0x02,0x23,0x1a,0x7e,0x0b,0x7e,0x08,0x16,0x91,0x64,0x0b,0x01,0x35,0x0b,0x45,0x0b,0x55,0x0b,0x03,0x0b,0x0d,0x0a,0x03,0x1e,0x91,0x49,0x02,0x59,0x02,0x02,0x3a,0x02,0x01,0x02,0x04,0x01,0x12,0x00,0x3f,0xde,0x32,0x5d,0x5d,0xed, +0x3f,0xde,0x32,0x5d,0x5d,0xed,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x7c, +0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x88,0xda,0xed,0x81,0x78,0xa8,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x4c,0x55,0xa9,0xa6,0x5c,0x54,0x01,0x30,0x77,0x96,0x8c,0xf2,0x02,0xcd,0xfe,0xd0,0x77,0x96,0x8c,0xf2,0xaf,0x67,0x74,0x75,0x6a,0xab,0xaf,0x67,0x74,0x75,0x6a,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x9a,0x05,0x9a,0x00,0x13,0x00,0x23, +0x00,0x61,0x40,0x3f,0x43,0x12,0x53,0x12,0x02,0x4a,0x06,0x01,0x49,0x05,0x59,0x05,0x02,0x5b,0x02,0x01,0x4a,0x02,0x01,0x00,0x7e,0x10,0x14,0x20,0x14,0x30,0x14,0x03,0x14,0x14,0x07,0x25,0x0c,0x7e,0x0a,0x1c,0x7e,0x0e,0x7e,0x0f,0x07,0x01,0x07,0x18,0x91,0x55,0x0e,0x01,0x46,0x0e,0x01,0x0e,0x10,0x10,0x0a,0x08,0x91,0x0d,0x03,0x20, +0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x3f,0x33,0x5d,0x5d,0xed,0x01,0x2f,0x5d,0xed,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x00,0x35,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15, +0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0x9a,0x85,0x8b,0xee,0xe2,0xfe,0xf0,0xdc,0x9c,0x02,0x20,0x88,0xda,0xee,0x80,0x78,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x01,0x20,0xec,0x03,0x0e,0xcb,0x01,0x63,0xfe,0x07,0x77,0x95,0x8d,0xf8,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a, +0x73,0x74,0x66,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8,0x05,0xb0,0x05,0x9a,0x00,0x17,0x00,0x21,0x00,0x7c,0x40,0x53,0x5b,0x0f,0x01,0x3a,0x0f,0x4a,0x0f,0x02,0x3a,0x0e,0x4a,0x0e,0x5a,0x0e,0x03,0x5a,0x0a,0x01,0x49,0x0a,0x01,0x3a,0x0a,0x01,0x49,0x09,0x01,0x36,0x07,0x46,0x07,0x56,0x07,0x03,0x35,0x06,0x45,0x06,0x55,0x06,0x03,0x17, +0x7e,0x01,0x03,0x16,0x7e,0x11,0x00,0x19,0x10,0x19,0x02,0x19,0x19,0x23,0x1c,0x7e,0x0c,0x13,0x13,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x11,0x16,0x91,0x03,0x01,0x19,0x19,0x1e,0x12,0x91,0x15,0x03,0x1e,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xcc,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d, +0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01, +0x63,0xfc,0xf4,0x03,0xb4,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea,0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x02,0x98,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xa4,0x05,0x9a,0x00,0x19,0x00,0x3d,0x40,0x20, +0x95,0x17,0x01,0x94,0x0b,0x01,0x0f,0x0f,0x00,0x7e,0x02,0x02,0x08,0x1b,0x13,0x06,0x7e,0x08,0x13,0x15,0x91,0x06,0x04,0x04,0x08,0x10,0x91,0x0e,0x03,0x01,0x08,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x21,0x23,0x11,0x34,0x23, +0x22,0x07,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x21,0x15,0x21,0x22,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x15,0x04,0xa4,0xa8,0xf5,0xb4,0xe2,0xa8,0x6c,0x67,0xb8,0x02,0x14,0xfd,0xfe,0xf5,0xe4,0xc6,0xb7,0x67,0x6b,0x02,0x12,0xe8,0x6e,0xfd,0x74,0x04,0x28,0xb5,0x60,0x5d,0x98,0xe8,0xfe,0xfa,0x7a,0x5e,0x61,0xb5,0x00,0x02,0x00,0x5e, +0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1f,0x00,0x2f,0x00,0xc8,0x40,0x8d,0x59,0x2e,0x01,0x99,0x2d,0x01,0x6a,0x2d,0x01,0x54,0x2b,0x64,0x2b,0x02,0x56,0x2a,0x86,0x2a,0x02,0x86,0x26,0x01,0x67,0x26,0x01,0x56,0x26,0x01,0x64,0x25,0x01,0x56,0x25,0x01,0x6a,0x23,0x01,0x59,0x22,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x76,0x12,0x01,0x27, +0x12,0x01,0x13,0x12,0x01,0x04,0x12,0x01,0x24,0x11,0x94,0x11,0x02,0x07,0x11,0x01,0x29,0x0f,0x99,0x0f,0x02,0x79,0x0e,0x01,0x0a,0x0e,0x1a,0x0e,0x02,0x79,0x0a,0x01,0x1b,0x0a,0x01,0x0a,0x0a,0x01,0x2a,0x09,0x9a,0x09,0x02,0x09,0x09,0x01,0x19,0x7e,0x06,0x1f,0x1f,0x14,0x7d,0x20,0x40,0x06,0x01,0x10,0x20,0x20,0x20,0x30,0x20,0x03, +0x06,0x20,0x06,0x20,0x31,0x28,0x7d,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x24,0x91,0x10,0x04,0x1f,0x1d,0x91,0x00,0x02,0x2c,0x91,0x06,0x08,0x13,0x00,0x3f,0x33,0xed,0xdc,0x32,0xed,0x32,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x06,0x23,0x22,0x27,0x26,0x27,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16, +0x33,0x32,0x37,0x36,0x05,0xaa,0x34,0x3c,0x88,0x5e,0x61,0x02,0x6e,0x85,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0xba,0x23,0x43,0x39,0x32,0x45,0x3c,0x34,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88,0xed,0xfc,0x86,0x7a,0xff,0x17,0x51,0x54,0x7e,0x25,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe, +0xc6,0xfe,0xa1,0xcc,0x22,0x48,0x37,0x4a,0x2c,0x28,0x1f,0x03,0x34,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x0f,0x00,0x45,0x40,0x2a,0x35,0x0c,0x01,0x26,0x0c,0x01,0x96,0x0a,0x01,0x33,0x0a,0x01,0x25,0x0a,0x01,0x59,0x03,0x01,0x4b,0x03,0x01,0x4a, +0x01,0x01,0x0f,0x7e,0x0d,0x0d,0x11,0x09,0x7e,0x07,0x05,0x0e,0x05,0x91,0x08,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x01,0x2f,0xcd,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x21,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x05,0xd5,0xfd, +0xdf,0xfd,0xf6,0xfe,0x88,0x02,0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x03,0x71,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0x43,0x05,0x9a,0x00,0x16,0x00,0x48,0x40,0x29,0x47,0x10,0x01,0x36,0x10,0x01,0x58,0x06,0x01,0x5a,0x05,0x01,0x14,0x00,0x7e,0x02,0x02,0x18, +0x0c,0x0e,0x7e,0x0a,0x09,0x0f,0x07,0x01,0x07,0x14,0x12,0x91,0x02,0x04,0x04,0x01,0x09,0x91,0x15,0x0c,0x03,0x01,0x12,0x00,0x3f,0x3f,0xc4,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0x33,0xce,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x21,0x35, +0x21,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x05,0x43,0xa8,0xbc,0xc3,0xd7,0xfe,0x23,0xfe,0xc8,0x02,0x20,0x63,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x94,0x86,0x98,0xce,0xe0,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x05,0x23,0x05,0x9a,0x00,0x19,0x00,0x61,0x40,0x3c, +0x69,0x14,0x79,0x14,0x02,0x66,0x11,0x76,0x11,0x02,0x8a,0x07,0x01,0x96,0x05,0x01,0x80,0x05,0x01,0x05,0x05,0x01,0x19,0x7e,0x01,0x18,0x03,0x7e,0x00,0x15,0x01,0x15,0x15,0x1b,0x0d,0x0f,0x7e,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x19,0x91,0x01,0x03,0x0c,0x03,0x0c,0x03,0x16,0x03,0x13,0x91,0x06,0x13,0x00,0x3f,0xed,0x3f, +0x39,0x39,0x2f,0x2f,0x10,0xce,0xed,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd,0xc4,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x23,0x15,0x10,0x21,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x11,0x33,0x11,0x21,0x05,0x23,0x9c,0xcf,0xfe,0x58,0xd5, +0x71,0x66,0x34,0x96,0x22,0x36,0x44,0x8a,0x01,0x00,0xa8,0x01,0x6b,0x01,0xc2,0xcb,0xd9,0xfe,0x34,0x8a,0x7c,0xc9,0x8e,0x6a,0x46,0x4e,0x64,0x83,0x56,0x6c,0x01,0x48,0x03,0xe0,0xfd,0x8b,0x00,0x01,0x00,0xb0,0xff,0xe8,0x04,0x04,0x05,0x9a,0x00,0x13,0x00,0x4b,0x40,0x2f,0x59,0x0d,0x69,0x0d,0x02,0x66,0x0a,0x01,0x57,0x0a,0x01,0x99, +0x05,0x01,0x8a,0x05,0x01,0x7b,0x05,0x01,0x75,0x02,0x01,0x12,0x00,0x7e,0x11,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x15,0x09,0x7e,0x06,0x11,0x12,0x12,0x08,0x03,0x0b,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07, +0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x04,0x04,0x65,0x72,0xd5,0xfe,0x58,0xa8,0x01,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x01,0xb7,0xc9,0x7c,0x8a,0x01,0xcc,0x03,0xe6,0xfc,0x20,0xfe,0xb8,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a, +0x00,0x0e,0x00,0x15,0x00,0x53,0x40,0x34,0x38,0x15,0x48,0x15,0x02,0x56,0x09,0x01,0x57,0x06,0x01,0x77,0x05,0x87,0x05,0x02,0x65,0x05,0x01,0x53,0x05,0x01,0x0e,0x0e,0x07,0x7d,0x10,0x0f,0x20,0x0f,0x02,0x0f,0x0f,0x01,0x17,0x13,0x0c,0x7e,0x01,0x0c,0x91,0x14,0x14,0x0d,0x12,0x91,0x02,0x03,0x0d,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f, +0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x23,0x11,0x21,0x03,0x10,0x21,0x23,0x11,0x33,0x20,0x04,0x29,0xfc,0x93,0x01,0x8a,0xdc,0x7e,0x89,0x99,0x8f,0xe0,0xbd,0x02,0xc5,0xb0,0xfe, +0xb0,0xc5,0xb0,0x01,0x65,0x05,0x9a,0x66,0x70,0xd6,0xdb,0x7f,0x76,0xfe,0x7a,0x03,0x4e,0x01,0x1c,0xfd,0xb4,0x00,0x00,0x02,0x00,0x5e,0xfe,0xea,0x05,0xaa,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0xc8,0x40,0x8d,0x6a,0x2c,0x01,0x59,0x2c,0x01,0x69,0x2b,0x99,0x2b,0x02,0x64,0x29,0x01,0x87,0x28,0x01,0x55,0x28,0x01,0x87,0x24,0x01,0x55, +0x24,0x01,0x63,0x23,0x01,0x56,0x23,0x01,0x6b,0x21,0x01,0x59,0x20,0x01,0x07,0x1c,0x01,0x75,0x18,0x01,0x16,0x18,0x01,0x05,0x18,0x01,0x24,0x17,0x94,0x17,0x02,0x15,0x17,0x01,0x07,0x17,0x01,0x99,0x15,0x01,0x2a,0x15,0x01,0x18,0x15,0x01,0x19,0x14,0x79,0x14,0x02,0x0a,0x14,0x01,0x1a,0x10,0x7a,0x10,0x02,0x0b,0x10,0x01,0x99,0x0f, +0x01,0x2c,0x0f,0x01,0x1a,0x0f,0x01,0x09,0x0f,0x01,0x47,0x1c,0x01,0x1c,0x00,0x7e,0x0c,0x05,0x0a,0x0a,0x1a,0x7d,0x10,0x1e,0x20,0x1e,0x30,0x1e,0x03,0x1e,0x1e,0x2f,0x26,0x7d,0x0f,0x12,0x1f,0x12,0x02,0x12,0x22,0x91,0x16,0x04,0x05,0x91,0x06,0x2a,0x91,0x1c,0x0c,0x0e,0x13,0x00,0x3f,0x33,0x33,0xed,0xde,0xed,0x3f,0xed,0x01,0x2f, +0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xcc,0x33,0xed,0x32,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x14,0x06,0x07,0x06,0x23,0x35,0x16,0x37,0x36,0x35,0x34,0x27,0x06,0x21,0x20,0x27,0x26, +0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x10,0x07,0x16,0x03,0x10,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x05,0xaa,0x86,0x6b,0x25,0x4d,0x22,0x27,0x82,0x41,0xb4,0xfe,0xe1,0xfe,0xc8,0xb8,0xb0,0xb1,0xbb,0x01,0x4c,0x01,0x35,0xb4,0xab,0x7b,0x7b,0xb0,0x73,0x81,0xfc,0xf2,0x8b,0x7f,0x7b,0x88, +0xed,0xfc,0x86,0x7a,0x1c,0x64,0xa2,0x21,0x0b,0x87,0x03,0x0c,0x28,0x74,0x52,0x2c,0xac,0xd1,0xc7,0x01,0x3c,0x01,0x51,0xcd,0xd8,0xd2,0xc7,0xfe,0xc6,0xfe,0xe3,0xbc,0x55,0x02,0x17,0x01,0x05,0x9d,0xb0,0xb3,0xa3,0xf9,0xf5,0xa3,0xb4,0xaa,0x9b,0x00,0x00,0x03,0x00,0x5a,0x00,0x00,0x05,0x4c,0x05,0xb2,0x00,0x12,0x00,0x1b,0x00,0x24, +0x00,0x79,0x40,0x51,0x56,0x24,0x01,0x65,0x23,0x75,0x23,0x02,0x65,0x1f,0x75,0x1f,0x02,0x7b,0x1a,0x01,0x6a,0x1a,0x01,0x59,0x16,0x01,0x6a,0x15,0x7a,0x15,0x02,0x97,0x11,0x01,0x85,0x11,0x01,0x89,0x0d,0x01,0x98,0x09,0x01,0x8b,0x09,0x01,0x86,0x02,0x01,0x13,0x7d,0x10,0x00,0x20,0x00,0x02,0x00,0x04,0x18,0x7e,0x07,0x21,0x7d,0x1f, +0x0b,0x2f,0x0b,0x02,0x0b,0x1c,0x07,0x18,0x1c,0x91,0x07,0x04,0x04,0x06,0x17,0x1d,0x91,0x0f,0x04,0x06,0x12,0x00,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xdd,0x5d,0xed,0x10,0xfd,0xc4,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07, +0x11,0x23,0x11,0x26,0x27,0x26,0x35,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x03,0x34,0x27,0x26,0x27,0x11,0x36,0x37,0x36,0x05,0x11,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x05,0x4c,0xa1,0x9b,0xe9,0xa8,0xec,0x99,0xa0,0xc0,0xb7,0x01,0x04,0x01,0x06,0xb3,0xbe,0xb0,0x6c,0x67,0xa2,0xa3,0x66,0x6c,0xfd,0xe3,0xa3,0x66,0x6c,0x6c,0x67,0x03, +0x72,0xec,0xa5,0xa0,0x19,0xfe,0xd8,0x01,0x28,0x16,0x99,0xa0,0xee,0x01,0x04,0xa9,0xa0,0x98,0xa2,0xfe,0xf3,0xab,0x75,0x6e,0x1a,0xfc,0xaf,0x19,0x6f,0x75,0xfc,0x03,0x51,0x19,0x6f,0x75,0xac,0xaa,0x75,0x6f,0x00,0x01,0x00,0x32,0x00,0x00,0x04,0x62,0x05,0x9a,0x00,0x0f,0x00,0x46,0x40,0x2b,0x00,0x7e,0x20,0x02,0xa0,0x02,0xb0,0x02, +0xc0,0x02,0x04,0x02,0x03,0x0e,0x7e,0x06,0x07,0x7e,0x2f,0x09,0xaf,0x09,0xbf,0x09,0xcf,0x09,0x04,0x09,0x0b,0x06,0x0e,0x09,0x0b,0x91,0x06,0x01,0x03,0x03,0x05,0x0d,0x03,0x05,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xce,0xc4,0xfd,0xce,0xc4,0x01,0x2f,0xc4,0xdc,0x5d,0xed,0x10,0xfd,0xc4,0xdd,0x5d,0xed,0x31,0x30,0x01,0x23,0x35,0x21, +0x11,0x23,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x33,0x11,0x21,0x04,0x62,0x9c,0xfe,0xd8,0xa8,0xfe,0x3c,0x9c,0x01,0x28,0xa8,0x01,0xc4,0x02,0x9d,0xcb,0xfc,0x98,0x03,0x68,0x01,0x63,0xcb,0x01,0x9a,0xfe,0x66,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x00,0x0d,0x00,0x38,0x40,0x21,0x45,0x0c,0x01,0x44,0x0a,0x01,0x3a,0x05, +0x01,0x29,0x05,0x01,0x3a,0x03,0x01,0x29,0x03,0x01,0x00,0x7e,0x02,0x02,0x0f,0x06,0x7e,0x08,0x04,0x91,0x0b,0x04,0x01,0x07,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe, +0x93,0xfe,0x92,0xa8,0x02,0x17,0x02,0x14,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x12,0x00,0x3a,0x40,0x20,0x36,0x0c,0x01,0x68,0x06,0x01,0x4a,0x06,0x5a,0x06,0x02,0x10,0x00,0x7e,0x02,0x02,0x14,0x09,0x7e,0x07,0x02,0x04,0x91,0x10,0x0e,0x0e, +0x00,0x09,0x11,0x03,0x00,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x11,0x33,0x11,0x14,0x17,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0xa2,0xa8,0xbc,0xc3,0xd7,0xfe,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02, +0x7b,0x73,0x01,0x08,0xd8,0x01,0xb2,0xfe,0x52,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x81,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x38,0x86,0x1c,0x01,0x36,0x0f,0x01,0x36,0x0b,0x96,0x0b,0x02,0x27,0x0b,0x01,0x49,0x06,0x59,0x06,0x02,0x49,0x02,0x59,0x02,0x02,0x4a,0x01,0x01,0x21,0x7e,0x12,0x1f,0x1f, +0x18,0x23,0x09,0x7e,0x08,0x08,0x1a,0x7e,0x18,0x1f,0x1d,0x91,0x12,0x09,0x14,0x14,0x0d,0x1a,0x20,0x03,0x0d,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x12,0x39,0x2f,0xce,0x33,0xed,0x32,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22, +0x27,0x26,0x35,0x33,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x04,0x81,0x85,0x88,0xdf,0xdb,0x8d,0x87,0xa8,0x57,0x61,0x8f,0x90,0x5e,0x56,0xe4,0xc6,0xb7,0x67,0x6b,0xa8,0xf5,0xb4,0xe2,0xa8,0x01,0xb4,0xce,0x7e,0x80,0x8a,0x85,0xc0,0x76,0x63,0x6c, +0x6a,0x61,0x7d,0x01,0x12,0x7a,0x5e,0x61,0xb5,0x01,0xd4,0xfe,0x34,0xe8,0x6e,0x02,0x46,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x12,0x00,0x40,0x40,0x24,0x66,0x11,0x76,0x11,0x02,0x59,0x04,0x01,0x4a,0x04,0x01,0x39,0x04,0x01,0x00,0x7e,0x02,0x02,0x0a,0x14,0x0d,0x08,0x7e,0x0a,0x08,0x06,0x91,0x0d,0x0f,0x0f, +0x0a,0x0c,0x03,0x01,0x0a,0x12,0x00,0x3f,0xc4,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x32,0x12,0x15,0x04,0xc5,0xa8,0x52,0x55,0x96,0xb2,0xbd,0xa8,0xa8,0xbc,0xc3,0xd7, +0xfe,0x01,0xae,0x97,0x59,0x5c,0x70,0xfd,0x76,0x05,0x9a,0xfd,0x85,0x73,0xfe,0xf8,0xd8,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x05,0x00,0x05,0xb2,0x00,0x1f,0x00,0x83,0x40,0x57,0x66,0x18,0x01,0x06,0x17,0x16,0x17,0x56,0x17,0x66,0x17,0x04,0x56,0x13,0x66,0x13,0x02,0x66,0x12,0x01,0x08,0x0b,0x18,0x0b,0x02,0x29,0x05,0x01,0x77,0x0a, +0x01,0x99,0x07,0x01,0x79,0x06,0x01,0x0f,0x0f,0x1f,0x7e,0x02,0x10,0x1d,0x01,0x1d,0x1d,0x21,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x1e,0x1e,0x19,0x0f,0x11,0x91,0x96,0x0e,0x01,0x87,0x0e,0x01,0x76,0x0e,0x01,0x0e,0x0c,0x04,0x1d,0x19,0x91,0x69,0x02,0x79,0x02,0x02,0x02,0x04,0x13,0x00,0x12,0x00,0x3f,0x3f,0x33,0x5d,0xed,0x32, +0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36, +0x37,0x11,0x33,0x05,0x00,0xa8,0xa7,0xb9,0xfe,0xc6,0xb4,0xac,0xbf,0xc5,0x01,0x46,0xe0,0x9f,0xae,0xe4,0xf8,0x8d,0x82,0x7b,0x86,0xfe,0x66,0x5f,0x56,0x30,0xa8,0x40,0x58,0xcd,0xc3,0x01,0x42,0x01,0x4e,0xd2,0xd8,0x4c,0xba,0x6e,0xaf,0xa2,0xfe,0xfd,0xfe,0xf8,0x99,0xa6,0x28,0x23,0x34,0x01,0x56,0x00,0x00,0x02,0x00,0x5c,0xff,0xe8, +0x05,0xb0,0x05,0x9a,0x00,0x15,0x00,0x1f,0x00,0x73,0x40,0x4c,0x39,0x1e,0x01,0x39,0x1d,0x01,0x36,0x1b,0x01,0x35,0x19,0x01,0x4b,0x0f,0x5b,0x0f,0x02,0x49,0x0e,0x59,0x0e,0x02,0x59,0x0a,0x01,0x4a,0x0a,0x01,0x5a,0x09,0x01,0x56,0x07,0x01,0x55,0x06,0x01,0x44,0x06,0x01,0x15,0x7e,0x01,0x03,0x14,0x7e,0x11,0x00,0x17,0x10,0x17,0x02, +0x17,0x17,0x21,0x1a,0x7e,0x0f,0x0c,0x1f,0x0c,0x02,0x0c,0x14,0x11,0x91,0x17,0x01,0x03,0x03,0x12,0x03,0x1c,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xce,0xc4,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0xfd,0xc4,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35, +0x23,0x11,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x05,0xb0,0x9c,0xc8,0x83,0x87,0xe8,0xef,0x8a,0x85,0x78,0x7e,0xef,0x01,0x63,0xa8,0x01,0x64,0xfd,0xf4,0xfe,0xaf,0xfe,0xb1,0x01,0x4a,0xa7,0x5b,0x54,0x02,0x9d,0xcb,0xfe,0x8c,0xea, +0x8f,0x93,0x93,0x8f,0xf0,0xf0,0x87,0x8f,0x01,0x9a,0xfe,0x66,0xfd,0xf8,0x01,0x70,0xfe,0x8c,0xfe,0x7e,0x72,0x69,0x00,0x02,0x00,0xbc,0x00,0x00,0x04,0x38,0x05,0x9a,0x00,0x12,0x00,0x19,0x00,0x5f,0x40,0x3c,0x67,0x19,0x77,0x19,0x02,0x68,0x14,0x78,0x14,0x02,0x85,0x12,0x95,0x12,0x02,0x86,0x11,0x96,0x11,0x02,0x89,0x02,0x99,0x02, +0x02,0x9a,0x01,0x01,0x89,0x01,0x01,0x00,0x7d,0x13,0x13,0x0d,0x1b,0x07,0x7e,0x09,0x17,0x0b,0x06,0x7e,0x0d,0x08,0x0a,0x91,0x07,0x18,0x91,0x05,0x05,0x0d,0x16,0x91,0x0e,0x03,0x0d,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0xed,0xde,0xfd,0xcd,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x21,0x15,0x21,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x07,0x34,0x21,0x23,0x11,0x33,0x20,0x04,0x38,0x81,0x78,0xcb,0xfe,0xf0,0x01,0x6b,0x9c,0xcf,0xa8,0x01,0xaa,0xd5,0x79,0x84,0xb1,0xfe,0xc9,0xec,0xec,0x01,0x37,0x04,0x2f,0xb2,0x60,0x59,0x99,0xfe,0x9d,0xcb, +0xfe,0x6d,0x05,0x9a,0x56,0x5e,0xb7,0xd3,0xfe,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x31,0x00,0xa6,0x40,0x68,0x66,0x31,0x76,0x31,0x02,0x76,0x29,0x01,0x7a,0x27,0x01,0x95,0x20,0x01,0x66,0x20,0x86,0x20,0x02,0x9a,0x1c,0x01,0x8b,0x1c,0x01,0x6c,0x1c,0x01,0x89,0x1a,0x01,0x7c,0x12,0x01,0x56,0x0f,0x01,0x89, +0x07,0x01,0x7a,0x07,0x01,0x69,0x07,0x01,0x66,0x02,0x01,0x66,0x01,0x01,0x23,0x21,0x7d,0x24,0x26,0x26,0x13,0x2e,0x2a,0x00,0x7d,0x17,0x1b,0x20,0x13,0x50,0x13,0x02,0x13,0x13,0x33,0x2a,0x7d,0x1b,0x0b,0x0d,0x7d,0x0a,0x08,0x08,0x1b,0x23,0x23,0x2e,0x28,0x2e,0x1d,0x11,0x0a,0x0a,0x17,0x11,0x17,0x04,0x28,0x91,0x1d,0x04,0x11,0x91, +0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14, +0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x11,0x34,0x27,0x26,0x27,0x26,0x27,0x26,0x35,0x10,0x21,0x32,0x17,0x16,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x04,0xb5,0xab,0x8c,0xec,0xe8,0x93,0xb3,0x0f,0xb4,0x12,0x81,0x62,0x9c,0x01,0x71, +0x7a,0x49,0xa5,0xf5,0x70,0xaf,0x01,0xfa,0xcb,0x84,0xa1,0x0a,0xae,0x08,0xfe,0xbe,0xfe,0xb8,0x80,0x48,0xaa,0xee,0x73,0xa9,0x01,0x85,0xdd,0x6a,0x56,0x57,0x6b,0xd9,0x43,0x40,0x43,0x42,0x8e,0x42,0x32,0x01,0x06,0x85,0x44,0x28,0x1f,0x2e,0x43,0x68,0xcc,0x01,0x78,0x4e,0x5f,0xbd,0x25,0x4b,0x45,0x2b,0xd2,0xe0,0x85,0x42,0x26,0x1e, +0x2b,0x48,0x6b,0x00,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xc5,0x05,0x9a,0x00,0x14,0x00,0x46,0x40,0x2a,0x39,0x10,0x01,0x66,0x02,0x76,0x02,0x02,0x45,0x02,0x55,0x02,0x02,0x47,0x01,0x57,0x01,0x02,0x07,0x07,0x14,0x7e,0x12,0x12,0x09,0x16,0x0c,0x05,0x7e,0x09,0x0e,0x91,0x03,0x03,0x06,0x13,0x0b,0x03,0x06,0x91,0x09,0x12,0x00,0x3f, +0xed,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x02,0x23,0x22,0x27,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0xc5,0xfe,0xd7,0xc3,0xbc,0x02,0xf2,0xfc,0x66,0xa8,0xbd,0xb2,0x96,0x55,0x52,0xa8,0x03,0xe8, +0xd8,0xfe,0xf8,0x73,0xfe,0x1d,0x98,0x05,0x9a,0xfd,0x76,0x70,0x5c,0x59,0x97,0x01,0xae,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x05,0x1d,0x05,0x9a,0x00,0x0a,0x00,0x0d,0x00,0x6b,0x40,0x41,0x0d,0x0b,0x04,0x0c,0x00,0x0a,0x09,0x03,0x0c,0x00,0x05,0x0b,0x04,0x01,0x06,0x02,0x09,0x03,0x01,0x06,0x0b,0x03,0x09,0x03,0x7e,0x04,0x0b,0x14, +0x04,0x04,0x0b,0x09,0x09,0x0c,0x01,0x06,0x01,0x7e,0x00,0x0c,0x14,0x00,0x0c,0x00,0x00,0x04,0x0f,0x07,0x06,0x06,0x0b,0x04,0x01,0x04,0x0c,0x06,0x0b,0x91,0x09,0x03,0x01,0x00,0x03,0x04,0x12,0x00,0x3f,0xc4,0xdc,0xc4,0x3f,0xfd,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xcd,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18, +0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x31,0x30,0x25,0x23,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x21,0x01,0x13,0x21,0x13,0x05,0x1d,0xce,0xfe,0xa3,0xfe,0x0e,0xce,0x02,0x59,0xfe,0xad,0xfe,0xfa,0x04,0xeb,0xfe,0x3c,0x86,0xfe,0x27,0xec,0xcc,0x01,0xdb,0xfd,0x59,0x03,0x33,0x01,0xcf,0x98,0xfd,0x99,0x01,0xcf,0xfe, +0xbd,0x00,0x00,0x01,0x00,0x32,0xff,0xe8,0x05,0xd5,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x35,0x29,0x0e,0x39,0x0e,0x49,0x0e,0x03,0x96,0x0c,0x01,0x44,0x0c,0x01,0x35,0x0c,0x01,0x26,0x0c,0x01,0x59,0x03,0x01,0x11,0x7e,0x10,0x0f,0x01,0x0f,0x0f,0x04,0x13,0x09,0x7e,0x07,0x0b,0x7e,0x0f,0x04,0x01,0x04,0x11,0x11,0x0a,0x0d,0x07,0x05, +0x91,0x0a,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0xfd,0xce,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0xed,0xde,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x15,0x23,0x11,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0xd5,0xfd,0xdf,0xfd,0xf6,0xdc,0x9c,0x02, +0x20,0x01,0x74,0x01,0x67,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0xcb,0x01,0x63,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x7f,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xf0,0x05,0x9a,0x00,0x11,0x00,0x55,0x40,0x34,0x97,0x0f,0xa7,0x0f,0x02,0x86,0x0f,0x01,0x7a,0x02,0x01,0x00,0x10,0x7e,0x01,0x01,0x09,0x13,0x0c,0x07,0x7e,0x09,0x75,0x0c, +0x01,0x56,0x0c,0x66,0x0c,0x02,0x44,0x0c,0x01,0x23,0x0c,0x33,0x0c,0x02,0x0c,0x0e,0x91,0x03,0x10,0x91,0x01,0x03,0x03,0x08,0x0b,0x03,0x08,0x12,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xde,0xed,0x10,0xed,0x32,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x21,0x10,0x23,0x22, +0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x13,0x33,0x04,0xf0,0xfe,0x95,0xf0,0x94,0x4c,0x44,0xa8,0xa8,0x6f,0xb5,0x01,0x49,0x41,0xd1,0x02,0x44,0x01,0x4a,0x78,0x6b,0xb1,0xfe,0x06,0x05,0x9a,0xfe,0x07,0x77,0xfe,0xc4,0x00,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0x9a,0x00,0x15,0x00,0x64,0x40,0x42,0x27,0x15, +0x01,0x86,0x14,0x01,0x37,0x14,0x01,0x25,0x14,0x01,0x6b,0x0d,0x7b,0x0d,0x02,0x59,0x0d,0x01,0x99,0x09,0x01,0x1b,0x09,0x5b,0x09,0x02,0x08,0x09,0x01,0x65,0x02,0x75,0x02,0x02,0x00,0x7d,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0b,0x17,0x12,0x7e,0x0f,0x06,0x06,0x0f,0x0f,0x91,0x13,0x10,0x03,0x06,0x08,0x91,0x9a,0x05,0x01,0x05,0x03,0x13, +0x00,0x3f,0x33,0x5d,0xed,0x32,0x3f,0xdc,0xed,0x01,0x2f,0x32,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x00,0x21,0x22,0x27,0x35,0x16,0x33,0x20,0x00,0x11,0x34,0x00,0x23,0x21,0x11,0x33,0x15,0x33,0x20,0x00,0x04,0x8c,0xfe,0x75,0xfe,0xaf,0xcc,0x86,0x9a,0xba, +0x01,0x0a,0x01,0x20,0xfe,0xf1,0xf9,0xfe,0xf4,0x9c,0x86,0x01,0x3c,0x01,0x66,0x02,0xa7,0xfe,0xba,0xfe,0x87,0x3b,0xb3,0x56,0x01,0x1d,0x01,0x00,0xec,0x01,0x00,0x01,0x11,0x79,0xfe,0xb4,0x00,0x01,0x00,0x33,0x00,0x00,0x04,0x2f,0x05,0x9a,0x00,0x14,0x00,0x3f,0x40,0x24,0x36,0x0e,0x46,0x0e,0x02,0x5b,0x05,0x01,0x12,0x00,0x7e,0x02, +0x02,0x16,0x0a,0x0c,0x7e,0x09,0x07,0x40,0x09,0x0d,0x48,0x07,0x02,0x04,0x91,0x12,0x10,0x10,0x01,0x0a,0x13,0x03,0x01,0x12,0x00,0x3f,0x3f,0xce,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2b,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x5d,0x5d,0x21,0x23,0x11,0x06,0x23,0x22,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x17, +0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x2f,0xa8,0xbc,0xc3,0xd7,0xfe,0x33,0xb0,0x3b,0x52,0x55,0x96,0xb2,0xbd,0xa8,0x02,0x7b,0x73,0x01,0x08,0xd8,0x72,0x88,0x92,0x64,0x97,0x59,0x5c,0x70,0x02,0x8a,0x00,0x01,0x00,0x96,0x00,0x00,0x04,0xc4,0x05,0x9a,0x00,0x10,0x00,0x41,0x40,0x26,0x96,0x0b,0x01,0x87,0x0b,0x01,0x49,0x06,0x01,0x3a, +0x06,0x01,0x3a,0x01,0x4a,0x01,0x02,0x09,0x7e,0x07,0x04,0x0f,0x7e,0x00,0x02,0x7e,0x04,0x05,0x02,0x91,0x0c,0x0c,0x04,0x0f,0x09,0x03,0x04,0x12,0x00,0x3f,0x3f,0xc4,0x12,0x39,0x2f,0xed,0x32,0x01,0x2f,0xfd,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x05,0x11,0x23,0x11,0x24,0x11,0x11,0x33,0x11, +0x10,0x21,0x20,0x11,0x11,0x33,0x04,0xc4,0xfe,0x3d,0xa8,0xfe,0x3d,0xa8,0x01,0x6f,0x01,0x6f,0xa8,0x04,0x48,0xfd,0xd4,0x2c,0xfe,0x10,0x01,0xf0,0x2e,0x02,0x13,0x01,0x69,0xfe,0xa2,0xfe,0x47,0x01,0xaa,0x01,0x6d,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x17,0x00,0x22,0x00,0x2e,0x00,0x6b,0x40,0x40,0x89,0x2d, +0x01,0x85,0x27,0x01,0x77,0x27,0x01,0x95,0x17,0x01,0x9a,0x11,0x01,0x94,0x0a,0x01,0x94,0x01,0x01,0x1e,0x07,0x03,0x7e,0x24,0x14,0x06,0x06,0x00,0x7d,0x18,0x14,0x18,0x14,0x18,0x30,0x29,0x7e,0x0f,0x0f,0x1f,0x0f,0x02,0x0f,0x07,0x24,0x91,0x04,0x1e,0x91,0x02,0x14,0x04,0x04,0x2b,0x1d,0x91,0x15,0x03,0x2b,0x91,0x0b,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x10,0xc4,0xfd,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x11,0x21,0x20,0x03, +0x34,0x27,0x26,0x23,0x23,0x11,0x33,0x32,0x37,0x36,0x01,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x06,0x3a,0xfe,0x3c,0xfe,0xf0,0x02,0x23,0xfd,0xdd,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0x01,0xaa,0x01,0xd2,0xb1,0x5b,0x45,0x97,0xec,0xec,0xa4,0x45,0x4e,0xfd,0x35,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38, +0x04,0x61,0xfe,0xc7,0x82,0x98,0xa8,0xb5,0xc9,0x57,0x5c,0xa8,0xab,0x60,0x58,0x02,0xf4,0xfe,0xc7,0x60,0x25,0x1c,0xfe,0xbe,0x21,0x24,0xfd,0x61,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x00,0x01,0x00,0x60,0xff,0xea,0x03,0x98,0x04,0x00,0x00,0x2d,0x00,0x58,0x40,0x36,0x99,0x16,0x01,0x88,0x16,0x01,0x95,0x29,0x01,0x76,0x29,0x86, +0x29,0x02,0x27,0x29,0x37,0x29,0x02,0x29,0x00,0x24,0x84,0x23,0x00,0x84,0x19,0x6a,0x1e,0x01,0x1e,0x19,0x10,0x19,0x90,0x19,0x02,0x23,0x19,0x23,0x19,0x2f,0x0f,0x84,0x0a,0x0d,0x0c,0x0c,0x24,0x0f,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x10, +0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x03,0x98,0x44,0x72,0x96,0x51,0x51,0x95,0x72,0x43,0x28,0x9c,0x1e,0x27,0x43,0x59,0x32,0x32,0x5a, +0x43,0x28,0x16,0x28,0x39,0x23,0x36,0x41,0x26,0x0f,0x03,0xa4,0x01,0x0e,0x20,0x35,0x28,0x2c,0x47,0x31,0x1b,0x01,0x4a,0x57,0x84,0x58,0x2d,0x2d,0x58,0x84,0x57,0x5f,0x50,0x37,0x38,0x44,0x36,0x4f,0x34,0x19,0x19,0x34,0x4f,0x36,0x2f,0x49,0x42,0x3f,0x25,0x38,0x57,0x59,0x69,0x4b,0x37,0x54,0x48,0x45,0x28,0x2c,0x52,0x57,0x63,0x00, +0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x05,0xec,0x00,0x16,0x00,0x26,0x00,0x84,0x40,0x59,0x96,0x21,0x01,0x96,0x1d,0x01,0x53,0x15,0x01,0x44,0x15,0x01,0x53,0x14,0x01,0x42,0x14,0x01,0x09,0x0a,0x01,0x5a,0x06,0x01,0x4b,0x06,0x01,0x59,0x05,0x01,0x56,0x03,0x01,0x56,0x02,0x01,0x45,0x02,0x01,0x17,0x83,0x40,0x00,0x50,0x00,0x02, +0x00,0x12,0x84,0x0c,0x10,0x84,0x0e,0x0c,0x1f,0x83,0x0f,0x08,0x3f,0x08,0x02,0x08,0x4f,0x0c,0x01,0x0c,0x0e,0x95,0x11,0x11,0x0f,0x1b,0x95,0x0c,0x00,0x13,0x10,0x13,0x20,0x13,0x03,0x13,0x10,0x0f,0x00,0x23,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x5d,0x33,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xdd,0x5d,0xed,0x10,0xde,0xed, +0x10,0xfd,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x10,0x37,0x36,0x37,0x35,0x21,0x11,0x33,0x15,0x21,0x11,0x16,0x17,0x16,0x03,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x04,0x50,0x85,0x8b,0xee, +0xe7,0x87,0x84,0x8d,0x71,0xb2,0xfe,0xb8,0xa4,0x01,0x48,0xb1,0x6b,0x80,0xa8,0x4a,0x55,0xab,0xaa,0x5b,0x51,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0x01,0x02,0x91,0x74,0x17,0xc9,0x01,0x11,0x79,0xfe,0xa1,0x14,0x75,0x8c,0xfe,0xff,0xb3,0x67,0x76,0x78,0x6c,0xb0,0xab,0x6a,0x73,0x74,0x66,0x00,0x02, +0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x8d,0x40,0x5b,0x49,0x42,0x59,0x42,0x02,0x59,0x3e,0x01,0x4a,0x3e,0x01,0x55,0x3b,0x01,0x46,0x3b,0x01,0x6a,0x23,0x01,0x76,0x1a,0x01,0x65,0x1a,0x01,0x07,0x1a,0x17,0x1a,0x02,0x48,0x0e,0x58,0x0e,0x02,0x19,0x0e,0x29,0x0e,0x39,0x0e,0x03,0x19,0x16,0x83,0x2e,0x2b, +0x2e,0x1c,0x83,0x40,0x30,0x40,0x01,0x2e,0x40,0x2e,0x40,0x26,0x44,0x08,0x05,0x83,0x09,0x0c,0x0c,0x38,0x83,0x0f,0x26,0x1f,0x26,0x02,0x26,0x08,0x09,0x33,0x95,0x19,0x2b,0x2b,0x00,0x3d,0x95,0x21,0x1c,0x00,0x95,0x11,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32, +0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x13,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xc6,0x2a,0x46,0x32,0x1c,0x06,0x0e,0xa6,0x10,0x06,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x85,0xc2,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81, +0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0x03,0x8e,0x1f,0x35,0x45,0x27,0x1b,0x2f,0x39,0x1d,0x46,0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0xfd,0xfa,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e, +0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x06,0xa0,0x04,0x18,0x00,0x3e,0x00,0x52,0x01,0x00,0x40,0xa8,0x97,0x11,0x01,0x95,0x10,0x01,0x57,0x50,0x01,0x55,0x4b,0x01,0x58,0x42,0x01,0x65,0x3d,0x01,0x65,0x3c,0x01,0x55,0x37,0x01,0x56,0x34,0x01,0x47,0x34,0x01,0x36,0x34,0x01,0x46,0x33,0x56,0x33,0x02,0x37,0x33, +0x01,0x39,0x2d,0x49,0x2d,0x59,0x2d,0x03,0x29,0x11,0x01,0x28,0x10,0x01,0x69,0x07,0x01,0x69,0x03,0x01,0x68,0x02,0x01,0x49,0x83,0x0a,0x38,0x9a,0x0c,0x01,0x89,0x0c,0x01,0x68,0x0c,0x78,0x0c,0x02,0x0c,0x0a,0x9d,0x2c,0x01,0x8f,0x2c,0x01,0x2c,0x31,0x92,0x1a,0x01,0x70,0x1a,0x01,0x1a,0x13,0x9d,0x20,0x01,0x7a,0x20,0x8a,0x20,0x02, +0x20,0x1f,0x1f,0x00,0x83,0x3f,0x0a,0x3f,0x0a,0x3f,0x54,0x13,0x83,0x31,0x29,0x29,0x31,0x4e,0x95,0x05,0x05,0x2c,0x44,0x95,0x3a,0x0c,0x0e,0x95,0x56,0x38,0x01,0x25,0x38,0x01,0x14,0x38,0x01,0x05,0x38,0x01,0x38,0x36,0x36,0x3a,0x10,0x26,0x1a,0x01,0x1a,0x20,0x2c,0x95,0x25,0x17,0x29,0x01,0x29,0x95,0x28,0x28,0x25,0x1f,0x20,0x1c, +0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x5d,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x11,0x33,0x5d,0x5d,0x5d,0x33,0x10,0xed,0x31, +0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33, +0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0xa0,0x3c,0x74,0xa7,0x6b,0x6b,0xad,0x7b,0x43,0x46,0x6a,0x74,0x4d,0x7a,0x54,0x2d,0x2c,0x52,0x73,0x90,0xa7,0x5c,0x5d,0x96,0x7b,0x66,0x2d,0x68,0x64,0xc7,0xd4,0xe5,0x82,0x6c,0xc8,0x4b,0x4e,0xca,0x6b,0x54, +0x83,0x5c,0x30,0x45,0x81,0xbb,0x75,0xb7,0x83,0x7a,0xb4,0x6b,0xa7,0x74,0x3c,0xa8,0x21,0x45,0x6a,0x4a,0x4a,0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x6a,0x45,0x21,0x02,0x2e,0x6a,0xb3,0x82,0x49,0x4a,0x83,0xb3,0x6a,0x9e,0x74,0x4c,0x41,0x70,0x94,0x53,0x61,0x98,0x78,0x5d,0x4c,0x3e,0x1d,0x1d,0x38,0x39,0x39,0x1f,0x7d,0x3f,0x5e, +0x3f,0x20,0x3f,0x3f,0xa8,0x31,0x31,0x2e,0x77,0x91,0xaa,0x62,0x7b,0xcd,0x95,0x53,0x64,0x64,0x4a,0x83,0xb4,0x69,0x46,0x80,0x61,0x39,0x39,0x60,0x7f,0x46,0x47,0x7f,0x61,0x39,0x38,0x60,0x7f,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2d,0x00,0x6b,0x40,0x45,0x07,0x2b,0x17,0x2b,0x02,0x96,0x20,0x01,0x76,0x1f, +0x86,0x1f,0x96,0x1f,0x03,0x9c,0x1c,0x01,0x79,0x1c,0x89,0x1c,0x02,0x6a,0x16,0x01,0x59,0x16,0x01,0x75,0x12,0x01,0x57,0x12,0x67,0x12,0x02,0x77,0x11,0x01,0x2d,0x84,0x19,0x19,0x0a,0x2f,0x22,0x84,0x23,0x23,0x0d,0x0f,0x84,0x0c,0x0a,0x0d,0x0c,0x22,0x0c,0x22,0x14,0x1d,0x95,0x28,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed, +0x11,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x80,0x71,0x32,0x53,0x3c,0x22,0xa6,0x3e,0x6b,0x8f,0x51,0x50,0x92,0x70,0x43,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d,0x6d,0x45, +0x02,0xc2,0x79,0x83,0x19,0x34,0x51,0x37,0x55,0x83,0x5a,0x2e,0x2b,0x57,0x85,0x59,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x43,0x00,0x9b,0x40,0x61,0x87,0x3d,0x01,0x76,0x3d,0x01,0x76,0x2d,0x86,0x2d,0x96,0x2d,0x03,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x5b,0x1c,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66, +0x12,0x02,0x75,0x11,0x01,0x3f,0x3e,0x1f,0x3b,0x83,0x26,0x26,0x19,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x45,0x30,0x84,0x31,0x40,0x12,0x18,0x48,0x31,0x31,0x0d,0x0f,0x84,0x0c,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x0d,0x0c,0x3f,0x3e,0x1e,0x31,0x31,0x2b,0x20,0x95,0x1e,0x0c,0x1e,0x0c,0x1e,0x14,0x2b,0x95,0x36,0x10,0x14,0x95,0x05, +0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x2b,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x11,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b, +0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x32,0x56,0x40,0x25,0xa6,0x41,0x6f,0x92,0x51,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54, +0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x1b,0x35,0x50,0x35,0x5a,0x84,0x57,0x2b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x03,0x00,0x3c,0xff,0xe8,0x05,0xcc,0x06,0x02,0x00,0x1a,0x00,0x2a,0x00,0x36,0x00,0x6e,0x40,0x44,0x48,0x36,0x58,0x36,0x02,0x46,0x33,0x56,0x33,0x02,0x47,0x2f,0x57,0x2f, +0x02,0x65,0x19,0x01,0x66,0x02,0x01,0x00,0x83,0x10,0x2b,0x30,0x2b,0x02,0x2b,0x2b,0x08,0x38,0x0f,0x84,0x23,0x31,0x83,0x08,0x1b,0x1b,0x15,0x84,0x0f,0x08,0x01,0x08,0x09,0x0b,0x95,0x27,0x2d,0x95,0x17,0x15,0x17,0x27,0x17,0x27,0x17,0x35,0x1f,0x95,0x12,0x01,0x35,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f, +0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x10,0xed,0xdc,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x21,0x22,0x27,0x26,0x35,0x11,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x11,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07, +0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x01,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x05,0xcc,0x6c,0x76,0xfe,0xf8,0xe5,0x80,0x79,0x31,0x64,0x91,0x52,0x50,0x9f,0x94,0x01,0x3d,0x88,0xc6,0xea,0x7a,0x6e,0xfc,0x38,0x24,0x28,0x44,0x44,0x28,0x24,0x24,0x28,0x43,0x43,0x29,0x25,0x03,0x20,0xfe,0xca,0xa8,0x53, +0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xf0,0x81,0x97,0x8f,0x88,0xe1,0x01,0xd3,0x2c,0x57,0x54,0x91,0x94,0xab,0xfe,0xc9,0xfe,0x9a,0x77,0x8d,0x80,0x01,0xf6,0x47,0x32,0x39,0x39,0x32,0x47,0x45,0x33,0x38,0x38,0x33,0xfd,0x6a,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0xc1,0x04,0x18,0x00,0x2a, +0x00,0x3e,0x00,0xca,0x40,0x8b,0x39,0x3c,0x01,0x36,0x38,0x01,0x37,0x32,0x01,0x38,0x2e,0x01,0x47,0x28,0x57,0x28,0x02,0x57,0x23,0x01,0x45,0x23,0x01,0x57,0x22,0x01,0x5a,0x1e,0x01,0x49,0x1e,0x01,0x48,0x1d,0x58,0x1d,0x02,0x58,0x19,0x01,0x49,0x19,0x01,0x4a,0x18,0x5a,0x18,0x02,0x45,0x14,0x55,0x14,0x02,0x47,0x13,0x57,0x13,0x02, +0x46,0x0f,0x01,0x39,0x0a,0x99,0x0a,0x02,0x2a,0x0a,0x01,0x99,0x09,0x01,0x68,0x05,0x98,0x05,0x02,0x94,0x03,0x01,0x76,0x02,0x86,0x02,0x02,0x03,0x04,0x04,0x07,0x19,0x23,0x01,0x23,0x37,0x0f,0x01,0x0f,0x11,0x83,0x2b,0x00,0x83,0x07,0x10,0x07,0x01,0x2b,0x07,0x2b,0x07,0x40,0x35,0x83,0x1b,0x30,0x95,0x20,0x20,0x0f,0x0c,0x95,0x24, +0x23,0x34,0x23,0x02,0x15,0x23,0x01,0x23,0x26,0x10,0x04,0x03,0x03,0x3a,0x95,0x16,0x16,0x00,0x3f,0xed,0x33,0x2f,0x33,0x3f,0x33,0x5d,0x5d,0xed,0x32,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x32,0x5d,0x32,0x5d,0x11,0x39,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x05,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x06,0xc1,0x7f,0x76,0x75,0x5d,0x65,0x2c,0x56,0x7e,0x52,0x3f,0x64,0x2d,0x4f,0x43,0x81,0xbc,0x79,0x74,0xb7,0x7f,0x43,0x44,0x83,0xc1,0x7d,0x5e,0x94,0x3c,0x43,0x98,0x5d,0x76,0xbb,0x81,0x44,0xfc,0xdd,0x23,0x4d,0x7c,0x59,0x58,0x7f,0x53,0x27,0x29,0x54,0x7e,0x56,0x59,0x7c,0x4d,0x23,0x01,0xe8,0xa5,0xfe,0x5d, +0x73,0x47,0xcc,0x88,0x4d,0x93,0x72,0x46,0x22,0x23,0x80,0xc5,0x77,0xc6,0x8f,0x50,0x4e,0x8b,0xc1,0x72,0x7b,0xca,0x90,0x4f,0x2e,0x30,0x30,0x2e,0x57,0x97,0xcd,0x5f,0x54,0x92,0x6c,0x3e,0x40,0x6d,0x93,0x54,0x52,0x8f,0x6a,0x3d,0x3d,0x6a,0x91,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x04,0x81,0x04,0x18,0x00,0x19,0x00,0x89,0x40,0x5a, +0x45,0x18,0x01,0x4a,0x14,0x01,0x96,0x0b,0x01,0x99,0x07,0x01,0x28,0x07,0x38,0x07,0x02,0x99,0x10,0x01,0x88,0x10,0x01,0x79,0x10,0x01,0x10,0x12,0x0f,0x96,0x02,0x01,0x87,0x02,0x01,0x76,0x02,0x01,0x02,0x03,0x00,0x67,0x0f,0x01,0x01,0x0f,0x01,0x68,0x03,0x01,0x0e,0x03,0x01,0x0f,0x03,0x0f,0x03,0x0d,0x00,0x83,0x20,0x05,0x30,0x05, +0xa0,0x05,0x03,0x05,0x05,0x1b,0x0d,0x83,0x0f,0x12,0x1f,0x12,0xaf,0x12,0x03,0x12,0x09,0x95,0x16,0x10,0x03,0x02,0x02,0x0f,0x10,0x16,0x00,0x3f,0x33,0x33,0x2f,0x33,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x5d,0x5d,0x5d, +0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x27,0x36,0x11,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x10,0x17,0x07,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x04,0x81,0xeb,0x75,0xb8,0x5e,0x65,0xa8,0xa8,0x63,0x5b,0xb8,0x75,0xeb,0x8b,0x90,0xf7,0xf7,0x8e,0x8a,0x01,0xe8,0xfe,0xb8,0xb8,0x73,0x8d,0x01,0x0e,0xab,0x72, +0x7b,0x7b,0x71,0xac,0xfe,0xf2,0x8d,0x73,0xb8,0x01,0x48,0xfa,0x98,0x9e,0x9e,0x98,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x39,0x00,0x72,0x40,0x44,0x86,0x33,0x01,0x77,0x33,0x01,0x79,0x29,0x89,0x29,0x99,0x29,0x03,0x6b,0x16,0x01,0x59,0x16,0x01,0x74,0x12,0x01,0x67,0x12,0x01,0x56,0x12,0x01,0x34,0x35,0x31,0x1f, +0x1f,0x0f,0x00,0x83,0x19,0x19,0x0a,0x3b,0x31,0x83,0x2b,0x26,0x0d,0x0f,0x84,0x0c,0x0a,0x35,0x34,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x14,0x2b,0x95,0x2c,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x39,0x01,0x2f,0x33,0xed,0x32,0x2f,0xce,0xed,0x11,0x12,0x39,0x2f,0xed, +0x12,0x39,0x2f,0x12,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x35,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03, +0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x1f,0x3c,0x58,0x39,0x55,0x93,0x6d,0x3f,0x98,0x8d,0x49,0x82,0x62,0x39,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26, +0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x34,0x57,0x3d,0x22,0x8b,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x08,0x06,0x04,0x18,0x00,0x5f,0x01,0x72,0x40,0xf7,0x77,0x5e,0x01,0x86,0x5d,0x01,0x75,0x5d,0x01,0x89,0x58,0x01,0x77,0x53,0x01,0x89,0x50,0x01, +0x78,0x50,0x01,0x99,0x4f,0x01,0x97,0x4b,0x01,0x86,0x4b,0x01,0x99,0x47,0x01,0x88,0x47,0x01,0x79,0x47,0x01,0x78,0x41,0x01,0x66,0x2d,0x01,0x5a,0x29,0x6a,0x29,0x02,0x66,0x1f,0x01,0x64,0x1e,0x01,0x56,0x1e,0x01,0x5a,0x1a,0x6a,0x1a,0x02,0x6a,0x19,0x01,0x97,0x11,0x01,0x56,0x0f,0x66,0x0f,0x02,0x69,0x0b,0x01,0x99,0x07,0x01,0x88, +0x07,0x01,0x69,0x07,0x01,0x44,0x59,0x01,0x45,0x53,0x01,0x45,0x50,0x01,0x45,0x4c,0x01,0x47,0x4b,0x01,0x46,0x10,0x01,0x47,0x0f,0x01,0x4e,0x23,0x84,0x24,0x56,0x15,0x94,0x05,0x01,0x85,0x05,0x01,0x76,0x05,0x01,0x05,0x06,0x06,0x08,0x14,0x84,0x15,0x7f,0x3f,0x8f,0x3f,0x9f,0x3f,0x03,0x5c,0x3f,0x01,0x4b,0x3f,0x01,0x3a,0x3f,0x01, +0x2d,0x3f,0x01,0x3f,0x44,0x9b,0x38,0x01,0x8a,0x38,0x01,0x7b,0x38,0x01,0x6c,0x38,0x01,0x5a,0x38,0x01,0x38,0x93,0x35,0x01,0x85,0x35,0x01,0x62,0x35,0x01,0x35,0x37,0x37,0x30,0x00,0x83,0x08,0x24,0x15,0x08,0x08,0x15,0x24,0x03,0x61,0x30,0x83,0x44,0x3d,0x3d,0x44,0x0d,0x95,0x5b,0x5b,0x51,0x2b,0x95,0x49,0x49,0x70,0x4e,0x01,0x44, +0x4e,0x01,0x70,0x56,0x01,0x44,0x56,0x01,0x4e,0x56,0x23,0x51,0x14,0x14,0x23,0x23,0x05,0x1c,0x95,0x51,0x10,0x35,0x38,0x3f,0x95,0x3a,0x3d,0x95,0x3c,0x3c,0x3a,0x37,0x38,0x1c,0x06,0x05,0x16,0x00,0x3f,0x33,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x2f,0x11,0x12,0x39,0x39,0x5d,0x5d,0x5d, +0x5d,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x5d,0x5d,0x5d,0x11,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15, +0x14,0x1e,0x02,0x17,0x04,0x17,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x08,0x06,0x1c,0x3a,0x59,0x3c,0x75,0xb8,0x1f,0x36,0x4a,0x2b,0x2b,0x42,0x30,0x20,0x14,0x08,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x29, +0x3f,0x2e,0x1e,0x13,0x08,0xa4,0x08,0x14,0x21,0x30,0x41,0x2b,0x2b,0x4a,0x36,0x1f,0x56,0x9f,0xde,0x89,0x01,0x91,0xb6,0x68,0xfe,0x6f,0xfd,0xf9,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x29,0x59,0x8d,0x63,0x2f,0x5a,0x4f,0x3f,0x15,0x2a,0x99,0x5d,0x2e,0x59,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x5a,0x2f,0x55,0x89,0x60,0x34,0x02,0x26, +0x4e,0xa3,0x99,0x85,0x2f,0x73,0x8d,0x01,0x3e,0x5a,0x87,0x5a,0x2d,0x2b,0x46,0x59,0x5d,0x59,0x22,0x22,0x58,0x5d,0x5a,0x46,0x2b,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x2d,0x5a,0x87,0x5a,0x91,0xd1,0x98,0x6c,0x2b,0x80,0x7a,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x5b,0xb2,0x8d,0x58,0x1b,0x33, +0x4a,0x2f,0x5f,0x68,0x1b,0x33,0x4a,0x2f,0x2f,0x4a,0x33,0x1b,0x3e,0x7d,0xbb,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x25,0x00,0x33,0x00,0x72,0x40,0x4a,0x59,0x31,0x01,0x56,0x2e,0x01,0x59,0x29,0x01,0x99,0x1e,0x01,0x99,0x1d,0x01,0x76,0x18,0x01,0x67,0x17,0x01,0x6a,0x14,0x7a,0x14,0x02,0x69,0x0d,0x01,0x69, +0x0c,0x01,0x26,0x25,0x83,0x30,0x11,0x40,0x11,0x02,0x11,0x11,0x0a,0x35,0x1a,0x84,0x1b,0x1b,0x2d,0x83,0x0f,0x0a,0x1f,0x0a,0x02,0x0a,0x2b,0x95,0x4f,0x1b,0x01,0x1b,0x11,0x0f,0x0f,0x2f,0x15,0x95,0x20,0x01,0x2f,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xce,0x5d,0xed,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11, +0x12,0x39,0x2f,0x5d,0xed,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x03,0x34,0x2e,0x02,0x23,0x20,0x11,0x10,0x21,0x32,0x3e,0x02,0x04,0x28, +0x3f,0x7a,0xb2,0x73,0x75,0xb7,0x7d,0x41,0x3b,0x75,0xae,0x74,0xc5,0x89,0x8d,0x87,0x31,0x56,0x41,0x25,0xa6,0x41,0x6f,0x91,0x50,0x66,0xa5,0x74,0x3f,0xa8,0x26,0x4e,0x7a,0x54,0xfe,0xca,0x01,0x36,0x52,0x79,0x50,0x27,0x01,0xe0,0x70,0xb9,0x85,0x4a,0x4c,0x8a,0xbf,0x73,0x71,0xb6,0x80,0x45,0x77,0xec,0x8a,0x9d,0x1e,0x3b,0x58,0x39, +0x55,0x89,0x61,0x35,0x3d,0x74,0xa6,0x69,0xfd,0xa4,0x50,0x86,0x60,0x36,0xfe,0x98,0xfe,0x88,0x3a,0x65,0x87,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x1f,0x00,0x2b,0x00,0x7f,0x40,0x2c,0x59,0x2b,0x01,0x56,0x29,0x01,0x47,0x29,0x01,0x56,0x28,0x01,0x55,0x24,0x01,0x5a,0x21,0x01,0x66,0x1e,0x76,0x1e,0x02,0x2b, +0x0a,0x3b,0x0a,0x4b,0x0a,0x03,0x0c,0x0a,0x1c,0x0a,0x02,0x69,0x05,0x01,0x10,0x11,0x11,0x00,0x83,0x20,0xb8,0xff,0xc0,0x40,0x24,0x0a,0x0d,0x48,0x20,0x20,0x2d,0x26,0x83,0x1a,0x84,0x0f,0x08,0x1f,0x08,0x02,0x08,0x22,0x95,0x1a,0x1c,0x1c,0x2a,0x11,0x13,0x95,0x10,0x0e,0x0e,0x16,0x95,0x0b,0x01,0x2a,0x95,0x04,0x16,0x00,0x3f,0xed, +0x3f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x33,0xed,0x01,0x2f,0x5d,0xed,0xed,0x12,0x39,0x2f,0x2b,0xed,0x32,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x10,0x21,0x32,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x06,0x15,0x11, +0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x28,0x7b,0x84,0xeb,0xe5,0x80,0x79,0x01,0x5a,0x40,0xeb,0x35,0x52,0x72,0x4a,0x83,0x88,0x44,0xf5,0x2d,0x64,0x4b,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1, +0x02,0xd0,0x01,0x52,0x46,0x46,0x71,0x5f,0x46,0x55,0x64,0xfe,0xa6,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x04,0x18,0x00,0x3e,0x00,0xb8,0x40,0x11,0x86,0x3c,0x96,0x3c,0x02,0x77,0x38,0x01,0x66,0x38,0x01,0x47,0x38,0x57,0x38,0x02,0x32,0xb8,0xff,0xf8,0x40,0x65, +0x0d,0x10,0x48,0x96,0x2e,0x01,0x87,0x2e,0x01,0x99,0x27,0x01,0x75,0x24,0x01,0x66,0x24,0x01,0x85,0x23,0x01,0x69,0x20,0x79,0x20,0x02,0x6a,0x0b,0x7a,0x0b,0x02,0x84,0x08,0x01,0x66,0x07,0x76,0x07,0x02,0x99,0x04,0x01,0x88,0x04,0x01,0x26,0x25,0x25,0x16,0x2b,0x83,0x22,0x16,0x35,0x16,0x05,0x06,0x06,0x15,0x00,0x83,0x09,0x15,0x84, +0x16,0x0e,0x95,0x3a,0x3a,0x71,0x35,0x01,0x62,0x35,0x01,0x40,0x35,0x50,0x35,0x02,0x35,0x30,0x16,0x16,0x26,0x1d,0x95,0x30,0x10,0x94,0x06,0x01,0x06,0x05,0x05,0x94,0x25,0x01,0x25,0x26,0x16,0x00,0x3f,0x33,0x5d,0x33,0x2f,0x33,0x5d,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0x32,0x2f,0xed,0x01,0x2f,0xfd,0xde,0xed,0x12, +0x39,0x2f,0x33,0x11,0x39,0x10,0xde,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x05,0xae,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x37,0x64,0x8c,0x55,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f, +0x59,0x2e,0x55,0x8c,0x64,0x37,0x02,0x26,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x4e,0x7c,0xbb,0x7d,0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x00,0x00,0x01, +0x00,0x60,0xff,0xe8,0x03,0xf1,0x06,0x02,0x00,0x3f,0x00,0x99,0x40,0x5b,0x86,0x38,0x01,0x96,0x31,0x01,0x79,0x28,0x01,0x6a,0x16,0x01,0x59,0x16,0x01,0x56,0x12,0x66,0x12,0x02,0x7a,0x08,0x8a,0x08,0x02,0x7a,0x07,0x8a,0x07,0x02,0x46,0x3e,0x01,0x47,0x33,0x01,0x3a,0x3b,0x1f,0x31,0x2d,0x35,0x84,0x29,0x2d,0x26,0x26,0x19,0x2e,0x2d, +0x2d,0x1f,0x1f,0x0f,0x00,0x83,0x19,0x19,0x41,0x0d,0x0f,0x84,0x0c,0x0a,0x3b,0x3a,0x1e,0x18,0x31,0x01,0x09,0x31,0x01,0x29,0x31,0x2e,0x20,0x95,0x0d,0x0c,0x1e,0x0c,0x1e,0x0c,0x2d,0x2e,0x01,0x14,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x11,0x39,0x39,0x5d,0x5d,0x11,0x39,0x39,0x01,0x2f,0x33, +0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x11,0x39,0x39,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23, +0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x27,0x37,0x1e,0x05,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x03,0xf1,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x79,0x49,0x20,0x38,0x59,0x70,0x70,0x65,0x21,0x5e,0x23,0x70,0x7f,0x81,0x68, +0x41,0x1e,0x3f,0x64,0x46,0x49,0x82,0x62,0x39,0x01,0xbc,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1d,0x34,0x47,0x2a,0x37,0x46,0x31,0x24,0x2b,0x3b,0x2f,0x56,0x2c,0x3b,0x31,0x31,0x43,0x5f,0x47,0x2c,0x54,0x47,0x35,0x0c,0x04,0x0b,0x43, +0x66,0x85,0x00,0x01,0x00,0x3f,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x2d,0x00,0x8e,0x40,0x52,0x65,0x13,0x01,0x56,0x13,0x01,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x2c,0x2d,0x84,0x16,0x18,0x1a,0x28,0x25,0x27,0x27,0x20,0x1a,0x84,0x25,0x25,0x0d,0x16,0x16,0x08,0x2f,0x20,0x84,0x1f,0x1f,0x0b,0x0d,0x84,0x0a,0x08,0x28,0x95,0x18, +0x27,0x18,0x1f,0x20,0x0b,0x0a,0x0a,0x11,0x1d,0x95,0x22,0x89,0x16,0x99,0x16,0x02,0x16,0x2d,0x00,0x18,0x10,0x18,0x02,0x18,0x20,0x22,0x22,0x20,0x18,0x03,0x2d,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x12,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0x33, +0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x03,0x37,0x16, +0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x32,0x37,0x36,0x37,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x5f,0xab,0x3f,0x8e,0x9b,0xf9,0x21,0x89,0x17,0x7a,0x4c,0x40,0x6f,0x37,0xac,0x62,0x73,0x73,0x50,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c, +0x51,0x8a,0x03,0x3b,0x39,0x08,0x4a,0x65,0x75,0x93,0x01,0x1d,0x26,0xb9,0x47,0x47,0x6b,0x3c,0x82,0x1f,0x24,0x6a,0x00,0x01,0x00,0x60,0xff,0xe8,0x05,0xae,0x06,0x02,0x00,0x52,0x00,0xfc,0x40,0xa7,0x96,0x4c,0x01,0x94,0x47,0x01,0x99,0x2f,0x01,0x66,0x4c,0x76,0x4c,0x02,0x84,0x4b,0x01,0x8c,0x48,0x01,0x8a,0x47,0x01,0x69,0x47,0x79, +0x47,0x02,0x4a,0x42,0x5a,0x42,0x6a,0x42,0x03,0x4a,0x39,0x5a,0x39,0x6a,0x39,0x03,0x7b,0x33,0x01,0x6a,0x33,0x01,0x85,0x2f,0x01,0x66,0x2f,0x76,0x2f,0x02,0x89,0x2c,0x01,0x86,0x25,0x96,0x25,0x02,0x77,0x21,0x01,0x25,0x04,0x01,0x55,0x03,0x01,0x46,0x03,0x01,0x34,0x03,0x01,0x26,0x03,0x01,0x9b,0x4e,0x01,0x4e,0x4d,0x4d,0x3e,0x94, +0x17,0x01,0x17,0x11,0x4a,0x07,0x0d,0x00,0x83,0x4a,0x3e,0x94,0x2d,0x01,0x2d,0x2e,0x2e,0x3d,0x31,0x0c,0x0d,0x0d,0x28,0x83,0x31,0x1e,0x3d,0x84,0x3e,0x70,0x1e,0x01,0x1e,0x23,0x3e,0x3e,0x4e,0x2e,0x2d,0x2d,0x4d,0x4e,0x16,0x36,0x95,0x23,0x45,0x95,0x17,0x19,0x19,0x9d,0x11,0x01,0x7a,0x11,0x8a,0x11,0x02,0x96,0x07,0x01,0x09,0x07, +0x19,0x07,0x29,0x07,0x03,0x11,0x07,0x0c,0x23,0x10,0x0d,0x0c,0x01,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x2f,0x33,0xed,0x10,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x5d,0x01,0x2f,0xfd,0x39,0xde,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x10,0xde,0xed,0x11,0x39,0x12,0x39,0x39, +0x5d,0x11,0x39,0x2f,0x33,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x37,0x3e,0x05,0x37,0x17,0x0e,0x05,0x07,0x06,0x06,0x07,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07, +0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x07,0x2e,0x03,0x60,0x30,0x64,0x99,0x69,0x3f,0x85,0x81,0x7a,0x67,0x50,0x18,0x76,0x17,0x5d,0x7a,0x8b,0x8b,0x80,0x31,0x3c,0x4a,0x13,0x18,0x18,0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c, +0x64,0x37,0x1f,0x3e,0x5c,0x3c,0x75,0x5d,0x65,0x22,0x3a,0x4d,0x2b,0x2d,0x43,0x30,0x20,0x12,0x07,0xa4,0x08,0x14,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x65,0x5d,0x75,0x3c,0x5c,0x3e,0x1f,0x02,0x26,0x84,0xe2,0xb8,0x8c,0x2d,0x1b,0x2a,0x24,0x23,0x28,0x30,0x21,0x53,0x25,0x3c,0x33,0x2c,0x29,0x28,0x16,0x1b,0x3f,0x19,0x03,0x1e, +0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x4e,0xa3,0x99,0x85,0x2f,0x73,0x47,0xe4,0xa0,0x5a,0x87,0x5a,0x2d,0x2a,0x45,0x59,0x5d,0x59,0x24,0x26,0x5b,0x5d,0x57,0x44,0x29,0x2d,0x5a,0x87,0x5a,0xa0,0xe4,0x47,0x73,0x2f,0x85,0x99,0xa3,0x00,0x01,0x00,0x9a,0xff,0xe6,0x04,0x1d,0x05,0xec,0x00,0x19,0x00,0x6b,0x40,0x26, +0x99,0x13,0x01,0x68,0x13,0x78,0x13,0x02,0x69,0x0e,0x01,0x65,0x0c,0x01,0x56,0x0c,0x01,0x79,0x06,0x01,0x89,0x05,0x01,0x96,0x03,0x01,0x76,0x02,0x01,0x14,0x15,0x17,0x84,0x12,0x00,0x84,0x0f,0x12,0xb8,0xff,0xc0,0x40,0x1c,0x0a,0x0d,0x48,0x10,0x0f,0x20,0x0f,0x02,0x12,0x0f,0x12,0x0f,0x1b,0x0b,0x84,0x90,0x08,0x01,0x08,0x15,0x14, +0x10,0x0a,0x00,0x0d,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x10,0xed,0x10,0xfd,0xce,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x34,0x26,0x35,0x34,0x37,0x17,0x06, +0x15,0x14,0x16,0x04,0x1d,0x6a,0x76,0xe0,0xe5,0x74,0x6a,0xa2,0x01,0x21,0x01,0x1b,0x78,0xbf,0x4d,0x5e,0x6f,0x01,0xb3,0xd5,0x78,0x80,0x7b,0x77,0xd8,0x04,0x3c,0xfb,0xe1,0xfe,0xab,0x01,0x34,0x71,0xfb,0x3c,0x87,0x3d,0x87,0x23,0x34,0x1a,0xf7,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0xaa,0x05,0x31,0x00,0x36,0x00,0x42,0x01,0x23, +0x40,0xc8,0x09,0x13,0x01,0x06,0x10,0x01,0x57,0x35,0x01,0x77,0x2f,0x87,0x2f,0x02,0x77,0x2b,0x87,0x2b,0x02,0x88,0x27,0x01,0x7c,0x15,0x8c,0x15,0x02,0x6a,0x15,0x01,0x66,0x13,0x01,0x65,0x10,0x01,0x56,0x10,0x01,0x47,0x10,0x01,0x65,0x0f,0x85,0x0f,0x95,0x0f,0x03,0x69,0x0d,0x01,0x57,0x0a,0x01,0x79,0x06,0x01,0x79,0x02,0x01,0x1e, +0xa1,0x1f,0xb1,0x1f,0xc1,0x1f,0x03,0x50,0x1f,0x01,0x1f,0x1f,0x18,0x00,0x83,0x14,0x14,0x29,0x44,0x56,0x33,0x01,0x16,0x33,0x18,0x31,0x84,0x5a,0x27,0x01,0x27,0x41,0x25,0x37,0x3f,0x84,0x29,0x18,0x84,0x25,0x25,0x29,0x08,0x83,0x0f,0x0e,0x01,0x0e,0x0b,0x0c,0x29,0x7b,0x0c,0x8b,0x0c,0x9b,0x0c,0x03,0x49,0x0c,0x01,0x0c,0x85,0x41, +0x01,0x74,0x41,0x01,0x48,0x33,0x68,0x33,0x02,0x39,0x33,0x01,0x78,0x27,0x01,0x6a,0x27,0x01,0x58,0x27,0x01,0x3a,0x27,0x4a,0x27,0x02,0x06,0x27,0x16,0x27,0x26,0x27,0x03,0x27,0x33,0x41,0x03,0x3b,0x9c,0x16,0x01,0x8b,0x16,0x01,0x7c,0x16,0x01,0x6a,0x16,0x01,0x38,0x16,0x48,0x16,0x58,0x16,0x03,0x16,0x0b,0x0b,0x1c,0x2d,0x95,0x3b, +0x3b,0x1f,0x21,0x95,0x1e,0x1c,0x12,0x95,0x04,0x1c,0x00,0x3f,0xed,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x12,0x39,0x2f,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x33,0x5d,0x5d,0x01,0x2f,0xce,0x32,0xdc,0x5d,0xed,0x11,0x33,0x2f,0xed,0x10,0xfd,0xde,0x11,0x39,0x39,0x5d,0xed,0x11, +0x39,0x39,0x5d,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x5d,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x25,0x10,0x07,0x06,0x21,0x20,0x27,0x26,0x11,0x34,0x12,0x37,0x17,0x06,0x11,0x14,0x17,0x16,0x33,0x20,0x11,0x10,0x25,0x06,0x15,0x14,0x17,0x16,0x33, +0x32,0x37,0x17,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x36,0x05,0xaa,0xae,0xb5,0xfe,0xb2,0xfe,0xc5,0xb3,0xad,0xbb,0xb1,0x3b,0xf7,0x78,0x83,0xf0,0x02,0x01,0xfe,0x72,0x60,0x20,0x1d,0x25,0x39, +0x22,0x7a,0x52,0x83,0x62,0x4a,0x52,0x82,0x82,0x53,0x49,0x63,0x5e,0x4a,0x4f,0x87,0xd3,0x78,0x80,0xfe,0x22,0x1f,0x1b,0x23,0x25,0x1d,0x20,0x60,0x5f,0xd9,0xfe,0xb9,0xb7,0xbd,0xc1,0xbb,0x01,0x3a,0xeb,0x01,0x56,0x53,0x96,0x90,0xfe,0xa1,0xf3,0x96,0xa5,0x02,0x0d,0x01,0x67,0xf7,0x5b,0x45,0x28,0x19,0x17,0x2c,0x50,0x6d,0x39,0x40, +0x66,0x79,0x79,0x6e,0x72,0x6d,0x42,0x3a,0x3c,0x40,0x5b,0x62,0x7c,0x7b,0xaa,0xb5,0x02,0xb8,0x21,0x14,0x11,0x14,0x17,0x23,0x46,0x42,0x59,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x06,0x22,0x04,0x18,0x00,0x5a,0x00,0xe8,0x40,0x99,0x17,0x57,0x01,0x7a,0x53,0x01,0x69,0x53,0x01,0x7b,0x52,0x01,0x6a,0x52,0x01,0x48,0x50,0x58,0x50,0x02, +0x96,0x4e,0x01,0x65,0x4e,0x75,0x4e,0x02,0x97,0x4d,0x01,0x86,0x4d,0x01,0x65,0x4d,0x75,0x4d,0x02,0x69,0x49,0x01,0x98,0x3c,0x01,0x89,0x3c,0x01,0x57,0x35,0x01,0x46,0x35,0x01,0x37,0x35,0x01,0x48,0x2c,0x58,0x2c,0x02,0x49,0x2b,0x01,0x8a,0x1d,0x9a,0x1d,0x02,0x48,0x17,0x01,0x5a,0x16,0x01,0x49,0x16,0x01,0x65,0x12,0x75,0x12,0x02, +0x47,0x12,0x57,0x12,0x02,0x5a,0x84,0x19,0x19,0x27,0x5c,0x3d,0x20,0x3e,0x40,0x3e,0x50,0x3e,0x03,0x3e,0x3e,0x48,0x33,0x27,0x43,0x84,0x3b,0x50,0x26,0x84,0x27,0x0d,0x0f,0x84,0x0c,0x0a,0x0a,0x27,0x1f,0x95,0x55,0x55,0x4b,0x3e,0x3d,0x3d,0x4b,0x36,0x95,0x45,0x2e,0x0d,0x0c,0x50,0x26,0x4b,0x0c,0x26,0x0c,0x26,0x14,0x2e,0x95,0x4b, +0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xdc,0xed,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xdc,0xed,0x11,0x39,0x39,0x32,0x2f,0x5d,0x33,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x2e,0x02, +0x35,0x34,0x37,0x17,0x0e,0x03,0x15,0x14,0x33,0x36,0x36,0x37,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x06,0x22,0x4d,0x85,0xb4,0x66,0x59,0xa0,0x79,0x47,0x29,0x99,0x1c,0x2c,0x4c,0x64,0x39,0x43,0x77,0x59,0x33,0x17,0x2c,0x3d,0x27,0x24,0x38,0x2b,0x1e,0x12,0x09,0xa4,0x0a,0x13,0x1d,0x26,0x30,0x1c, +0x1d,0x2b,0x22,0x1e,0x11,0x21,0x73,0x63,0x32,0x50,0x38,0x1d,0x7f,0x69,0x12,0x20,0x1a,0x0f,0x4d,0x2e,0x45,0x1f,0x1f,0x84,0x58,0x2e,0x4c,0x3e,0x32,0x13,0x15,0x36,0x43,0x52,0x30,0x55,0x7e,0x52,0x29,0x0e,0x73,0xaf,0x76,0x3c,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4f,0x76,0x4e,0x02,0x40,0x5f, +0x89,0x59,0x2a,0x2d,0x48,0x5b,0x5d,0x56,0x1f,0x1f,0x56,0x5d,0x5b,0x48,0x2d,0x1a,0x35,0x4e,0x34,0x68,0x69,0x22,0x3c,0x54,0x32,0x88,0x6c,0x59,0x0b,0x20,0x28,0x30,0x1a,0x54,0x01,0x56,0x67,0x68,0x78,0x1f,0x39,0x4f,0x2f,0x2f,0x4f,0x39,0x1f,0x38,0x77,0xbb,0x84,0x00,0x00,0x02,0x00,0x40,0xfe,0x1e,0x06,0x9c,0x04,0x18,0x00,0x55, +0x00,0x69,0x00,0xd9,0x40,0x52,0x5a,0x67,0x01,0x39,0x67,0x49,0x67,0x02,0x36,0x63,0x46,0x63,0x56,0x63,0x03,0x56,0x5d,0x01,0x35,0x5d,0x45,0x5d,0x02,0x39,0x59,0x49,0x59,0x59,0x59,0x03,0x56,0x54,0x01,0x86,0x4f,0x96,0x4f,0x02,0x75,0x4f,0x01,0x95,0x4b,0x01,0x96,0x4a,0x01,0x7b,0x29,0x8b,0x29,0x02,0x69,0x28,0x01,0x58,0x28,0x01, +0x5a,0x16,0x01,0x86,0x11,0x01,0x9a,0x08,0x01,0x0d,0x0f,0x84,0x0a,0x0c,0x0a,0x50,0x51,0x4d,0x1f,0x5a,0x43,0x01,0x43,0x30,0xb8,0xff,0xf0,0x40,0x38,0x0f,0x12,0x48,0x30,0x32,0x83,0x56,0x4d,0x83,0x26,0x00,0x83,0x19,0x0a,0x56,0x26,0x19,0x19,0x26,0x56,0x0a,0x04,0x6b,0x60,0x83,0x3c,0x5b,0x95,0x41,0x41,0x48,0x0d,0x0c,0x65,0x95, +0x37,0x51,0x50,0x20,0x95,0x1e,0x37,0x1e,0x37,0x1e,0x14,0x30,0x2b,0x95,0x43,0x48,0x10,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x10,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xfd,0x32,0x2b,0x32, +0x5d,0xce,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x06,0x9c,0x4a,0x81,0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c, +0x2e,0x4b,0x60,0x32,0x43,0x73,0x53,0x2f,0x38,0x68,0x94,0x5b,0x3b,0x35,0x59,0x80,0x53,0x28,0x2b,0x4a,0x63,0x38,0x2b,0x47,0x3c,0x35,0x1a,0x46,0x43,0x7b,0xad,0x6b,0x6b,0xad,0x7b,0x43,0x43,0x7b,0xad,0x6b,0xb4,0x7a,0x20,0x53,0x5e,0x64,0x30,0x58,0x9d,0x77,0x46,0x98,0x8d,0x49,0x82,0x62,0x39,0xfc,0xa8,0x27,0x4c,0x71,0x4a,0x4a, +0x71,0x4c,0x27,0x27,0x4c,0x71,0x4a,0x4a,0x71,0x4c,0x27,0x0e,0x75,0xb0,0x75,0x3a,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x26,0x4d,0x77,0x51,0x50,0x7c,0x54,0x2b,0x8b,0x1a,0x39,0x59,0x3e,0x36,0x57,0x3c,0x21,0x0a,0x13,0x1c,0x12,0x74,0x9e,0x6a,0xb3,0x83,0x4a,0x49,0x82,0xb3,0x6a,0x69,0xb4,0x83,0x4a, +0x64,0x17,0x25,0x1a,0x0e,0x2d,0x57,0x80,0x52,0x89,0xa3,0x18,0x04,0x0b,0x43,0x66,0x85,0x01,0xef,0x46,0x7f,0x60,0x39,0x39,0x61,0x80,0x46,0x47,0x7f,0x60,0x38,0x39,0x61,0x7f,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x05,0xec,0x00,0x29,0x00,0xad,0x40,0x70,0x76,0x1b,0x01,0x79,0x18,0x01,0x59,0x13,0x69,0x13,0x02,0x75,0x0f,0x01, +0x57,0x0f,0x67,0x0f,0x02,0x09,0x25,0x01,0x95,0x1f,0x01,0x88,0x1b,0x01,0x28,0x29,0x84,0x74,0x26,0x01,0x26,0x00,0x27,0x70,0x27,0x02,0x27,0x24,0x20,0x16,0x01,0x16,0x16,0x08,0x2b,0x1d,0x84,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x30,0x08,0x01,0x0f,0x08,0x1f,0x08,0x02,0x08,0x8b,0x25,0x9b,0x25,0x02,0x7f,0x25,0x01,0x49,0x25,0x59,0x25, +0x02,0x27,0x25,0x28,0x8f,0x26,0x9f,0x26,0x02,0x26,0x22,0x0b,0x0a,0x1d,0x0a,0x1d,0x11,0x19,0x95,0x95,0x24,0x01,0x83,0x24,0x01,0x24,0x22,0x22,0x28,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x33,0x5d,0x5d,0xed,0x11,0x39,0x39,0x2f,0x2f,0x33,0x10,0xce,0x5d,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x01,0x2f,0x5d,0x5d,0x33, +0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xc4,0xcc,0x5d,0x32,0x5d,0xed,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33, +0x32,0x17,0x11,0x07,0x27,0x01,0x33,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x57,0x5d,0x88,0x77,0x66,0x43,0x49,0xa6,0x7d,0x73,0xa8,0x97,0x68,0x81,0x6f,0x01,0x10,0x84,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x51,0x8a,0x01,0xfa,0x79,0x83,0x34,0x39, +0x68,0xa8,0x61,0x57,0x3e,0x01,0xd8,0x82,0x70,0x01,0x14,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x05,0xce,0x04,0x18,0x00,0x49,0x00,0xdb,0x40,0x91,0x67,0x3f,0x77,0x3f,0x02,0x49,0x3b,0x59,0x3b,0x02,0x3a,0x3b,0x01,0x6a,0x3a,0x01,0x66,0x31,0x01,0x46,0x30,0x56,0x30,0x66,0x30,0x03,0x35,0x30,0x01,0x69,0x2c,0x79,0x2c,0x02,0x86,0x1e, +0x96,0x1e,0x02,0x79,0x1a,0x01,0x99,0x19,0x01,0x7a,0x19,0x8a,0x19,0x02,0x76,0x15,0x86,0x15,0x96,0x15,0x03,0x75,0x14,0x01,0x89,0x10,0x99,0x10,0x02,0x47,0x42,0x8e,0x08,0x9e,0x08,0x02,0x7b,0x08,0x01,0x59,0x08,0x01,0x3a,0x08,0x4a,0x08,0x02,0x08,0x00,0x06,0x06,0x0d,0x83,0x42,0x36,0x26,0x27,0x27,0x21,0x83,0x29,0x8d,0x01,0x9d, +0x01,0x02,0x01,0x00,0x00,0x29,0x17,0x35,0x84,0x36,0x17,0x35,0x12,0x27,0x26,0x35,0x26,0x35,0x26,0x08,0x3d,0x95,0x12,0x2e,0x95,0x1c,0x1c,0x12,0x10,0x27,0x47,0x01,0x47,0x01,0x08,0x95,0x03,0x06,0xf4,0x05,0x05,0x03,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x5d,0x3f,0x33,0x2f,0xed,0x10,0xed,0x11, +0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x01,0x2f,0xfd,0x39,0xce,0x32,0x2f,0x33,0x5d,0x10,0xed,0x33,0x2f,0x39,0x10,0xde,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x24,0x21,0x22,0x07,0x35,0x36,0x33,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x27,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x05,0x42,0x68,0xfe,0x9c,0xfe,0x55,0xd7,0x94,0x9b,0xd4,0x54,0x7e,0x53,0x2a,0x37,0x64,0x8c,0x55, +0x2f,0x5a,0x4f,0x3f,0x15,0x15,0x3f,0x4f,0x59,0x2e,0x55,0x8c,0x64,0x37,0x08,0x0f,0x16,0x0e,0x98,0x2b,0x22,0x3a,0x4d,0x2b,0x2c,0x41,0x30,0x20,0x13,0x09,0xa4,0x01,0x08,0x13,0x20,0x30,0x42,0x2b,0x2b,0x4d,0x3a,0x22,0x48,0x88,0xc7,0x7f,0xab,0x01,0x00,0xfe,0x9b,0x7d,0xfc,0x7e,0xa8,0x62,0x2d,0x8c,0xaa,0xbe,0x5f,0x7c,0xbb,0x7d, +0x3e,0x1e,0x37,0x4d,0x2f,0x2f,0x4d,0x37,0x1e,0x3e,0x7d,0xbb,0x7c,0x28,0x59,0x57,0x4e,0x1e,0x37,0x80,0x8d,0x5a,0x87,0x5a,0x2d,0x33,0x52,0x69,0x6c,0x67,0x27,0x27,0x67,0x6c,0x69,0x52,0x33,0x2d,0x5a,0x88,0x5a,0x89,0xcc,0x9a,0x72,0x2f,0x3f,0x7c,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x3b,0x00,0xcb,0x40,0x77, +0x66,0x32,0x01,0x86,0x31,0x01,0x74,0x31,0x01,0x65,0x31,0x01,0x56,0x31,0x01,0x9a,0x22,0x01,0x98,0x21,0x01,0x55,0x17,0x65,0x17,0x02,0x47,0x16,0x01,0x67,0x11,0x01,0x56,0x11,0x01,0x7a,0x08,0x01,0x79,0x07,0x01,0x3b,0x84,0x1a,0x39,0x39,0x0a,0x3d,0x5c,0x2a,0x6c,0x2a,0x7c,0x2a,0x03,0x3b,0x2a,0x4b,0x2a,0x02,0x2d,0x2a,0x01,0x2a, +0x2f,0x84,0x7c,0x29,0x01,0x6b,0x29,0x01,0x5c,0x29,0x01,0x3d,0x29,0x4d,0x29,0x02,0x2e,0x29,0x01,0x29,0x60,0x24,0x01,0x24,0x24,0x0d,0x0f,0x84,0x0c,0x0a,0x2a,0x29,0x29,0x3a,0x34,0x95,0x6a,0x1a,0x01,0x59,0x1a,0x01,0x3a,0x1a,0x4a,0x1a,0x02,0x2b,0x1a,0x01,0x1a,0x1f,0x0d,0x0c,0x1f,0xb8,0xff,0xc0,0x40,0x0d,0x0b,0x10,0x48,0x1f, +0x0c,0x1f,0x0c,0x3a,0x0f,0x14,0x95,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x2b,0x11,0x33,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x33,0x2f,0x33,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x05,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x37,0x17,0x06,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x03,0xf1,0x4a,0x81, +0xb1,0x66,0x52,0x9b,0x79,0x49,0x29,0x99,0x1c,0x2e,0x4b,0x60,0x32,0x43,0x74,0x55,0x30,0x17,0x3f,0x4b,0x53,0x2a,0x57,0x91,0x68,0x39,0x0f,0x0a,0x0b,0x0f,0x99,0x0b,0x08,0x08,0x0b,0x28,0x42,0x56,0x2f,0x3e,0x65,0x48,0x27,0xa4,0x22,0x69,0xa6,0x74,0x3d,0x34,0x60,0x8a,0x56,0x5b,0x54,0x37,0x32,0x4a,0x35,0x55,0x3c,0x20,0x28,0x4d, +0x6d,0x45,0x02,0x41,0x1a,0x2f,0x24,0x15,0x36,0x67,0x96,0x5f,0x33,0x59,0x22,0x28,0x22,0x37,0x1a,0x1e,0x1a,0x43,0x26,0x46,0x66,0x42,0x20,0x3b,0x63,0x80,0x45,0x85,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xdb,0x06,0x02,0x00,0x2b,0x00,0x37,0x00,0x9d,0x40,0x65,0x48,0x36,0x58,0x36,0x02,0x39,0x36,0x01,0x37,0x33,0x47,0x33,0x57,0x33, +0x03,0x38,0x2e,0x48,0x2e,0x58,0x2e,0x03,0x88,0x10,0x01,0x69,0x0a,0x01,0x66,0x03,0x01,0x86,0x28,0x96,0x28,0x02,0x86,0x26,0x96,0x26,0x02,0x99,0x10,0x01,0x08,0x83,0x32,0x32,0x16,0x20,0x22,0x84,0x1f,0x1f,0x1d,0x01,0x1d,0x16,0x27,0x16,0x15,0x2c,0x83,0x2b,0x84,0x10,0x0e,0x01,0x0e,0x15,0x84,0x16,0x1a,0x95,0x25,0x25,0x83,0x27, +0x93,0x27,0x02,0x27,0x29,0x1f,0x20,0x20,0x16,0x30,0x95,0x0e,0x0c,0x0c,0x34,0x11,0x95,0x29,0x01,0x34,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x2f,0x33,0x11,0x39,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xdc,0x5d,0xfd,0xed,0x11,0x12,0x39,0x10,0xde,0x5d,0x32,0xed,0x32,0x11,0x33,0x2f,0xed,0x31, +0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x20,0x11,0x03,0x34,0x27,0x26,0x23,0x20,0x11, +0x10,0x21,0x32,0x37,0x36,0x04,0xdb,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0x47,0x4c,0x1e,0xa6,0x20,0xad,0x8e,0xb9,0x53,0x53,0xbb,0x01,0x54,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xe0,0xe1,0x88,0x8f,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0xce,0x01, +0x45,0x64,0x49,0x69,0x69,0x49,0x64,0x65,0x51,0x3a,0x53,0x1d,0x52,0x4e,0x95,0xb5,0xbd,0xbd,0xfe,0x22,0xfd,0xc2,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x73,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x03,0xf8,0x06,0x02,0x00,0x23,0x00,0x2c,0x00,0x72,0x40,0x44,0x85,0x21,0xa5,0x21,0x02,0x87,0x17,0x01,0x88,0x06,0x98,0x06,0x02,0x7b, +0x08,0x01,0x80,0x04,0x90,0x04,0x02,0x76,0x04,0x01,0x04,0x00,0x05,0x05,0x1e,0x00,0x83,0x07,0x07,0x10,0x2e,0x19,0x84,0x24,0x2b,0x0e,0x1e,0x84,0x10,0x2b,0x95,0x1d,0x1d,0x37,0x1e,0x01,0x26,0x1e,0x01,0x1e,0x0a,0x95,0x20,0x20,0x0f,0x26,0x95,0x15,0x01,0x05,0x04,0x04,0x0f,0x15,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x2f, +0xed,0x33,0x5d,0x5d,0x33,0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0xdc,0xed,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x07,0x27,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07, +0x15,0x36,0x33,0x32,0x17,0x16,0x01,0x34,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x03,0xf8,0x3d,0x3e,0x6b,0x75,0xb7,0x7a,0x74,0x81,0x51,0x4a,0xa4,0x37,0x48,0xb5,0x6b,0x41,0x46,0x7b,0x64,0xa3,0x72,0xe2,0x9c,0x61,0x5d,0xfe,0x32,0x50,0x43,0x28,0x25,0xe0,0x01,0xe3,0x8e,0x89,0x8c,0x58,0x73,0x9f,0xe1,0x88,0x9f,0x70,0x66,0x88,0xfe, +0x5c,0x04,0x83,0xb0,0x59,0x76,0x34,0x38,0x66,0x96,0x69,0x55,0x2b,0xd3,0xae,0x7a,0x77,0x02,0x91,0x4b,0x33,0x2f,0x45,0x8d,0x3c,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x04,0x8b,0x04,0x18,0x00,0x2d,0x00,0xcc,0x40,0x89,0x87,0x2d,0x01,0x65,0x2d,0x01,0x76,0x2c,0x01,0x86,0x29,0x96,0x29,0x02,0x64,0x29,0x74,0x29,0x02,0x46,0x26,0x96, +0x26,0x02,0x96,0x24,0x01,0x9a,0x20,0x01,0x8d,0x1f,0x01,0x39,0x1f,0x01,0x5d,0x17,0x01,0x48,0x16,0x01,0x69,0x13,0x01,0x48,0x13,0x01,0x84,0x10,0x01,0x75,0x0f,0x01,0x07,0x0f,0x17,0x0f,0x67,0x0f,0x03,0x9a,0x06,0x01,0x29,0x06,0x01,0x54,0x02,0x01,0x9a,0x0a,0x01,0x8b,0x0a,0x01,0x7e,0x0a,0x01,0x0a,0x08,0x0b,0x21,0x94,0x22,0x01, +0x22,0x21,0x2a,0x2b,0x19,0x28,0x83,0x1d,0x00,0x83,0x15,0x2f,0x21,0x3f,0x21,0x02,0x21,0x19,0x1d,0x15,0x15,0x1d,0x19,0x21,0x04,0x2f,0x0d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2b,0x2a,0x18,0x95,0x1a,0x1a,0x22,0x0b,0x0a,0x0a,0x21,0x22,0x10,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x2f,0x33,0x11,0x39,0x2f,0xed,0x39, +0x39,0x01,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x5d,0x10,0xce,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x20,0x27,0x26,0x11,0x10,0x13,0x17, +0x02,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x04,0x8b,0x8e,0x85,0xcf,0xfe,0xdf,0x9b,0x8d,0xb0,0x88,0x8a,0x74,0x6d,0xb1,0x89,0x5a,0x60,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa2,0x8b,0x4c,0x77,0x3d,0x79, +0x65,0x45,0x4a,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0xcc,0xba,0x01,0x35,0x01,0xa5,0x01,0x9a,0x3a,0xfe,0x88,0xfe,0x71,0xfe,0xf4,0x96,0x8d,0x4c,0x51,0x8a,0x8b,0x98,0x8b,0xd9,0x8b,0x2c,0x26,0x85,0x60,0x6d,0x22,0x1c,0x4e,0x52,0x65,0xf3,0x36,0x04,0x0e,0xba,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x28,0x06,0x02,0x00,0x16, +0x00,0x22,0x00,0x68,0x40,0x26,0x59,0x21,0x01,0x56,0x1e,0x01,0x55,0x1c,0x01,0x59,0x19,0x01,0x78,0x0b,0x01,0x69,0x0b,0x01,0x66,0x03,0x01,0x94,0x12,0x01,0x76,0x12,0x86,0x12,0x02,0x12,0x00,0x11,0x0e,0x17,0x83,0x00,0x84,0x0e,0xb8,0xff,0xc0,0x40,0x1a,0x0a,0x0d,0x48,0x0e,0x0e,0x24,0x1d,0x83,0x0f,0x08,0x1f,0x08,0x02,0x08,0x11, +0x12,0x01,0x1b,0x95,0x0e,0x0c,0x0f,0x1f,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x2b,0xfd,0xed,0x10,0xce,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x35,0x10,0x27,0x37,0x16, +0x17,0x16,0x15,0x03,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x04,0x28,0x79,0x80,0xe5,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xb8,0x75,0x71,0x3f,0x3b,0xa8,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa3,0x55,0x4a,0x01,0xf4,0xf5,0x88,0x8f,0x96,0x8c,0xfa,0xf3,0x80,0x8d,0x77,0x4c,0x01,0x29,0x8d,0x73,0x58,0xa3,0x97, +0x98,0xfe,0x22,0xb5,0x5e,0x6d,0xfe,0x84,0xfe,0x74,0x73,0x63,0x00,0x02,0x00,0x32,0xfe,0x1e,0x04,0xdb,0x06,0x02,0x00,0x25,0x00,0x28,0x01,0x1e,0x40,0x21,0x98,0x22,0x01,0x96,0x20,0x01,0x86,0x0a,0x01,0x99,0x07,0x01,0x21,0x0d,0x0c,0x19,0x1a,0x18,0x1a,0x06,0x27,0x01,0x27,0x15,0x14,0x28,0x14,0x51,0x18,0x61,0x18,0x02,0x18,0xb8, +0xff,0xc8,0x40,0x90,0x33,0x36,0x48,0x00,0x18,0x10,0x18,0x20,0x18,0x03,0xf1,0x18,0x01,0x58,0x18,0x01,0x29,0x18,0x01,0x18,0x14,0x28,0x14,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x0c,0x84,0x0d,0x0d,0x26,0x0f,0x1a,0x01,0x1a,0x1a,0x28,0x03,0x05,0x84,0x00,0x31,0x17,0x41,0x17,0x51,0x17,0x71,0x17,0x81,0x17,0x05,0x77,0x17,0x01,0x56, +0x17,0x01,0x47,0x17,0x01,0x25,0x17,0x01,0x16,0x17,0x01,0x3e,0x26,0x4e,0x26,0x02,0x38,0x26,0x01,0x0b,0x26,0x01,0x17,0x26,0x28,0x26,0x84,0x16,0x17,0x14,0x16,0x16,0x17,0x02,0x0e,0x00,0x01,0x00,0x00,0x80,0x16,0x01,0x16,0x16,0x58,0x28,0x01,0x26,0x28,0x01,0x28,0x28,0x1b,0x21,0x0d,0x08,0x95,0x23,0x23,0x1f,0x03,0x02,0x02,0x0d, +0x26,0x27,0x95,0x1a,0x16,0x15,0x14,0x15,0x0d,0x15,0x0d,0x15,0x18,0x11,0x95,0x1f,0x01,0x17,0x18,0x1b,0x00,0x3f,0xc4,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc4,0x33,0xfd,0xc4,0x11,0x33,0x2f,0x33,0x11,0x33,0x2f,0xed,0x12,0x39,0x3f,0x01,0x3d,0x2f,0x5d,0x5d,0xc9,0x18,0x2f,0x5d,0x32,0x2f,0x5d,0x33,0x87,0x10,0x2b, +0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x72,0x5d,0x5d,0x5d,0x5d,0x5d,0x72,0x18,0x10,0xed,0x32,0x10,0xc9,0x2f,0x5d,0x12,0x39,0x2f,0xed,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x01,0x5d,0x5d,0x71,0x72,0x2b,0x72,0x10,0x87,0xc4,0xc4,0x01,0x5d,0x10,0x87,0x0e,0xc4,0x11,0x12,0x01,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x27,0x36,0x35, +0x34,0x26,0x23,0x22,0x07,0x06,0x15,0x23,0x34,0x27,0x26,0x23,0x22,0x11,0x14,0x17,0x21,0x01,0x23,0x01,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x01,0x21,0x01,0x04,0xdb,0x20,0xa6,0x1e,0x4c,0x47,0x67,0x30,0x24,0xa4,0x24,0x30,0x67,0xac,0x1c,0x03,0xa7,0xfe,0x25,0xa2,0xfe,0x67,0x55,0x4d,0x57,0xb0,0xbb,0x53, +0x53,0xb9,0x8e,0xad,0xfe,0xf4,0xfd,0x4c,0x01,0x56,0x04,0xb8,0x4e,0x52,0x1d,0x53,0x3a,0x51,0x65,0x64,0x49,0x69,0x69,0x49,0x64,0xfe,0xc5,0x6c,0x5d,0xfa,0xaa,0x04,0x7f,0xef,0xa2,0xd3,0x78,0x89,0xbd,0xbd,0xb5,0xfd,0x9a,0xfb,0xe8,0x00,0x00,0x02,0x00,0x50,0xfe,0x1e,0x04,0x00,0x05,0xec,0x00,0x41,0x00,0x4c,0x00,0xe4,0x40,0x8d, +0x76,0x3f,0x01,0x75,0x3e,0x01,0x86,0x3d,0x01,0x73,0x3d,0x01,0x99,0x18,0x01,0x76,0x13,0x01,0x76,0x0f,0x01,0x67,0x0f,0x01,0x88,0x01,0x01,0x37,0x36,0x39,0x2f,0x36,0x36,0x34,0x31,0x32,0x2f,0x84,0x28,0x1c,0x42,0x00,0x84,0x15,0x42,0x15,0x42,0x15,0x22,0x4e,0x2d,0x84,0x2a,0x2a,0x22,0x0b,0x0d,0x84,0x0a,0x08,0x08,0x48,0x84,0x22, +0x43,0x42,0x45,0x4b,0xb9,0x32,0x01,0xa8,0x32,0x01,0x32,0x31,0x31,0x66,0x2f,0x01,0x37,0x2f,0x47,0x2f,0x57,0x2f,0x03,0x26,0x2f,0x01,0x69,0x39,0x01,0x38,0x39,0x48,0x39,0x58,0x39,0x03,0x29,0x39,0x01,0x1c,0x39,0x34,0x2f,0x28,0x05,0x1e,0x26,0x95,0x45,0x4b,0xb6,0x36,0x01,0xa7,0x36,0x01,0x36,0x37,0x37,0x0b,0x0a,0x0a,0x11,0x1e, +0x95,0x4b,0x4b,0x11,0x29,0x95,0x2e,0x2c,0x00,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xde,0xed,0x11,0x39,0x2f,0xed,0x11,0x39,0x2f,0x33,0x32,0x2f,0x33,0x5d,0x5d,0x10,0xde,0xed,0x11,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f, +0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xc4,0xfd,0xcd,0x39,0x39,0x32,0x2f,0x10,0xc4,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x26,0x27,0x26,0x35,0x06, +0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x36,0x37,0x17,0x06,0x07,0x16,0x17,0x07,0x26,0x27,0x15,0x14,0x17,0x16,0x17,0x16,0x17,0x16,0x01,0x35,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x04,0x00,0x9d,0x86,0xb6,0xb3,0x88,0x9c,0x28,0x9c,0x1e,0x68,0x58,0x71,0x74,0x56,0x69, +0x25,0x06,0xb5,0x19,0x28,0x5d,0x5d,0x71,0x43,0x3f,0x3f,0x44,0x70,0x5b,0x5f,0xfe,0x7c,0xa4,0x01,0x84,0x55,0x40,0x81,0x4b,0x56,0x56,0x4b,0x81,0x40,0x55,0x23,0x13,0x42,0x67,0x19,0x2b,0xfe,0x39,0x64,0x56,0x25,0x3d,0x3d,0x25,0x56,0x8c,0xa5,0x5f,0x52,0x57,0x64,0xa5,0x5e,0x51,0x37,0x37,0x45,0x65,0x3b,0x32,0x2d,0x36,0x65,0x51, +0x34,0x09,0xbb,0x2c,0x45,0x66,0x29,0x4b,0x46,0x6d,0x6d,0x47,0x4b,0x2a,0x01,0xa1,0x01,0x11,0x79,0xfd,0x61,0x59,0x69,0x60,0x74,0x5d,0x5d,0x74,0x5f,0x69,0x59,0x6d,0x41,0x34,0x1c,0x41,0x66,0x27,0x46,0x02,0x5f,0x43,0x40,0x3f,0x22,0x22,0x40,0x00,0x00,0x02,0x00,0xae,0xff,0xe8,0x04,0x76,0x05,0xec,0x00,0x11,0x00,0x1d,0x00,0x92, +0x40,0x62,0x5a,0x1d,0x01,0x49,0x1d,0x01,0x45,0x1b,0x55,0x1b,0x02,0x46,0x1a,0x56,0x1a,0x02,0x46,0x16,0x56,0x16,0x02,0x49,0x13,0x59,0x13,0x02,0x69,0x05,0x01,0x37,0x1d,0x01,0x37,0x1a,0x01,0x38,0x16,0x01,0x85,0x0e,0x01,0x74,0x0e,0x01,0x07,0x0e,0x17,0x0e,0x02,0x0e,0x0c,0x0b,0x2e,0x0d,0x01,0x1f,0x0d,0x01,0x0d,0x0d,0x00,0x83, +0x10,0x12,0x20,0x12,0x30,0x12,0x03,0x12,0x12,0x1f,0x0b,0x84,0x18,0x83,0x08,0x0c,0x2e,0x0d,0x01,0x0d,0x0d,0x0a,0x14,0x95,0x66,0x0b,0x01,0x0b,0x0e,0x0f,0x0a,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xc4,0x01,0x2f,0xed,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x5d,0x5d,0x12,0x39, +0x39,0x5d,0x5d,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x33,0x11,0x01,0x33,0x01,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x04,0x76,0x7b,0x84,0xeb,0xe5,0x80,0x79,0xa8,0x01,0xd8,0xd7,0xfe,0xa0,0xea,0x79, +0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0x01,0xf0,0xe6,0x8c,0x96,0x8f,0x88,0xe1,0x04,0x0c,0xfd,0x7a,0x01,0x9e,0xfe,0xd8,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x00,0x00,0x01,0x00,0x21,0xfe,0x1e,0x05,0xf5,0x04,0x18,0x00,0x43,0x01,0x30,0x40,0xb7,0x75,0x3a,0x01,0x67,0x29,0x01,0x56,0x29, +0x01,0x45,0x29,0x01,0x26,0x29,0x01,0x36,0x17,0x01,0x6a,0x0e,0x01,0x42,0x41,0x41,0x00,0x84,0x3f,0x3b,0x30,0x31,0x31,0x2c,0x3a,0x3b,0x28,0x38,0x08,0x39,0x38,0x08,0x38,0x2a,0x2b,0x17,0x29,0x3b,0x28,0x2b,0x17,0x18,0x06,0x19,0x2b,0x17,0x07,0x06,0x19,0x38,0x08,0xa5,0x2b,0x01,0x2b,0x08,0x38,0x08,0x84,0x17,0x2b,0x14,0x17,0x17, +0x2b,0x2b,0x2c,0x84,0x38,0x37,0x37,0x28,0x06,0x19,0x06,0x84,0x3b,0x28,0x14,0x3b,0x28,0x3b,0x3b,0x17,0x45,0x20,0x1f,0x22,0x84,0x1d,0x1f,0x1f,0x1d,0x19,0x19,0x17,0x10,0x0f,0x08,0x17,0x0a,0x84,0x00,0x15,0x01,0x15,0x15,0x17,0x38,0x2e,0x31,0x33,0x30,0x30,0x2e,0x95,0x33,0x33,0x26,0xc5,0x1f,0x01,0x1f,0x20,0x20,0x19,0x1b,0x95, +0x28,0x26,0x10,0xba,0x41,0x01,0xa9,0x41,0x01,0x41,0x42,0x42,0x3b,0x3d,0x95,0x04,0xd2,0x17,0x01,0x24,0x17,0x44,0x17,0x54,0x17,0x03,0x09,0x17,0x01,0x17,0x76,0x10,0x86,0x10,0x02,0x10,0x12,0x95,0x6c,0x0f,0x01,0x0f,0x0d,0x0d,0x06,0x04,0x1c,0x00,0x3f,0x33,0x33,0x2f,0x33,0x5d,0xed,0x32,0x5d,0x32,0x5d,0x5d,0x5d,0x10,0xed,0x32, +0x32,0x2f,0x33,0x5d,0x5d,0x3f,0x33,0xed,0x32,0x32,0x2f,0x33,0x5d,0x11,0x33,0x2f,0xed,0x32,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0x33,0x2f,0x5d,0xed,0x11,0x39,0xcc,0x32,0x11,0x33,0x2f,0xce,0x32,0x2f,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x87,0x2b,0x87,0x7d,0xc4,0x01,0x33,0x18,0x2f,0x33,0xed,0x32,0x87,0x04,0x10,0x2b,0x87, +0x7d,0xc4,0x00,0x5d,0x0f,0x0f,0x0f,0x87,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x0f,0x11,0x01,0x33,0x18,0x2f,0x33,0x10,0xde,0xed,0x33,0x2f,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x01,0x01, +0x26,0x23,0x22,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x01,0x01,0x36,0x35,0x34,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x01,0x01,0x16,0x33,0x32,0x35,0x34,0x27,0x37,0x16,0x05,0xf5,0x40,0x3c,0x5b,0x90,0x52,0xfe,0xcf,0xfe,0xa4,0x33,0x8e,0x69,0x77,0x53,0x43,0x3c,0x4b,0x24,0x36,0x83, +0x01,0xef,0xfe,0xc3,0x36,0x2f,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x8b,0x52,0x01,0x3b,0x01,0xd3,0x59,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfe,0x26,0x01,0x35,0x37,0x30,0x2b,0x5a,0x7f,0x74,0xfe,0xf1,0x62,0x3a,0x37,0x86,0x01,0xf3,0xfe,0xfd,0x38,0x6c,0x5d,0x75,0x47,0x8a,0x47,0x34,0x24,0x6b,0x50,0x01,0x70,0x02, +0x06,0x58,0x38,0x3d,0x87,0x58,0xac,0x64,0x62,0x3a,0x37,0x86,0xfd,0xff,0x01,0x5c,0x42,0x25,0x2b,0x5a,0x7f,0x74,0x40,0x3c,0x5b,0x7e,0x64,0xfe,0x9f,0xfe,0x08,0x59,0x38,0x3d,0x87,0x58,0xac,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0xf3,0x06,0x02,0x00,0x3d,0x00,0xa2,0x40,0x5f,0x94,0x32,0x01,0x87,0x2e,0x01,0x98,0x15,0x01,0x86, +0x12,0x01,0x77,0x12,0x01,0x77,0x0f,0x87,0x0f,0x02,0x99,0x01,0x01,0x36,0x20,0x33,0x84,0x24,0x24,0x13,0x3a,0x19,0x38,0x84,0x1d,0x1d,0x13,0x20,0x20,0x19,0x19,0x0d,0x00,0x84,0x13,0x13,0x08,0x3f,0x2d,0x2c,0x2c,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x36,0x20,0x95,0x22,0x3a,0x19,0x0b,0x0a,0x0a,0x17,0x95,0x19,0x8b,0x2c,0x01, +0x18,0x31,0x01,0x9a,0x28,0x01,0x28,0x31,0x2c,0x03,0x2d,0x22,0x19,0x22,0x19,0x2d,0x01,0x11,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x33,0x11,0x39,0x10,0xed,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x33,0x2f, +0x11,0x33,0x2f,0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26, +0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17,0x04,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x03,0xf3,0x8f,0x80,0xd5,0xae,0x79,0x88,0x29,0x99,0x1c,0x55,0x4a,0x6c,0x01,0x3f,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x55,0x17,0x79,0xa1,0x2f,0x6a,0x3d,0x6d,0x41,0x5f,0x23,0x9d,0x01,0x32,0x6d,0x5c,0xc9, +0xc9,0x58,0x3a,0x37,0x01,0x2b,0xa2,0x55,0x4c,0x57,0x62,0xa7,0x5c,0x53,0x37,0x33,0x49,0x66,0x3a,0x32,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x44,0x1e,0x08,0x14,0x1b,0x10,0x24,0x54,0x60,0x48,0x1c,0x0b,0x18,0x2f,0xc9,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13,0x4b,0x47,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x95, +0x06,0x02,0x00,0x3d,0x00,0x45,0x00,0xc6,0x40,0x7a,0x76,0x41,0x01,0x57,0x41,0x67,0x41,0x02,0x65,0x30,0x01,0x99,0x2b,0x01,0x98,0x2a,0x01,0x99,0x29,0x01,0x99,0x28,0x01,0x99,0x17,0x01,0x9b,0x14,0x01,0x89,0x14,0x01,0x94,0x12,0x01,0x55,0x12,0x85,0x12,0x02,0x37,0x11,0x01,0x86,0x0d,0x01,0x89,0x07,0x01,0x6b,0x03,0x01,0x36,0x22, +0x33,0x84,0x26,0x26,0x15,0x3a,0x1b,0x00,0x22,0x22,0x2f,0x1b,0x01,0x1b,0x1b,0x42,0x38,0x84,0x1f,0x1f,0x15,0x2d,0x2c,0x3e,0x84,0x0b,0x0b,0x42,0x00,0x84,0x15,0x15,0x47,0x0f,0x42,0x83,0x06,0x3a,0x19,0x95,0x1b,0x42,0x95,0x0f,0x36,0x23,0x95,0x21,0x1b,0x0f,0x21,0x21,0x0f,0x1b,0x03,0x13,0x40,0x95,0x08,0x2c,0x2d,0x2d,0x08,0x01, +0x13,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0xed,0xce,0x32,0x11,0x33,0x2f,0xed,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x11,0x12,0x39,0x11,0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x03,0x26,0x11,0x10,0x21,0x32,0x16,0x15,0x14,0x07,0x06,0x07,0x14,0x17,0x12,0x33,0x20,0x35,0x34,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x17, +0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x23,0x22,0x11,0x36,0x37,0x36,0x04,0x95,0xfe,0x5f,0xfe,0xb4,0xb4,0x94,0x01,0x4e,0x67,0x7c,0x7d,0x7a,0x8f,0x67,0x87,0xf0,0x01,0x09,0x3d,0x40,0x60,0x60,0x60,0x64,0x79,0xdd,0x60,0x60,0xdd,0x3d,0x40,0x41,0x51,0x21,0x81,0x1a,0x5b,0x88,0x0c,0x49,0x6d,0x5c, +0xc9,0xc9,0x58,0x3a,0x37,0xfd,0x5a,0x41,0xa3,0x65,0x45,0x3a,0x01,0x2b,0xfe,0xbd,0x01,0x30,0xfa,0x01,0x59,0x02,0x97,0x74,0x68,0xa0,0xa0,0x9b,0x26,0xd8,0xcc,0xfe,0xf1,0xc9,0x43,0x2f,0x30,0x8b,0x48,0x40,0x82,0x8b,0x84,0x36,0x29,0x27,0x28,0x39,0x50,0x4a,0x41,0x3c,0x59,0x0b,0x42,0x5c,0x4a,0x6e,0x13,0x2a,0xa1,0xa0,0x2a,0x13, +0x4b,0x47,0x03,0xa4,0x55,0xfe,0x40,0x1b,0x83,0x6f,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x1d,0x04,0x18,0x00,0x19,0x00,0x27,0x01,0x04,0x40,0xb7,0x48,0x20,0x58,0x20,0x02,0x48,0x1c,0x58,0x1c,0x02,0x08,0x17,0x01,0x77,0x13,0x01,0x65,0x13,0x01,0x77,0x0f,0x01,0x65,0x0f,0x01,0x08,0x0b,0x01,0x25,0x1a,0x22,0x17,0x04,0x0b,0x03,0x0d, +0x19,0x19,0x15,0x83,0x1a,0x1a,0x29,0x22,0x83,0x0d,0x09,0x09,0x0d,0x1e,0x95,0x11,0x10,0x16,0x25,0x01,0x07,0x25,0x01,0xe7,0x25,0xf7,0x25,0x02,0xc5,0x25,0x01,0x97,0x25,0x01,0x73,0x25,0x83,0x25,0x02,0x64,0x25,0x01,0x47,0x25,0x57,0x25,0x02,0x25,0x09,0xda,0x0b,0x01,0x99,0x0b,0x01,0x0b,0x95,0x06,0x19,0xda,0x17,0x01,0x99,0x17, +0x01,0x17,0x95,0x19,0x00,0x01,0x08,0x00,0x01,0xe9,0x00,0xf9,0x00,0x02,0x9b,0x00,0x01,0x00,0x02,0x02,0x19,0x08,0x01,0x08,0x08,0x01,0xe9,0x08,0xf9,0x08,0x02,0x9b,0x08,0x01,0x08,0x0b,0x04,0x01,0xeb,0x04,0xfb,0x04,0x02,0x04,0x20,0x21,0x24,0x48,0x7c,0x04,0x01,0x5d,0x04,0x6d,0x04,0x02,0x4b,0x04,0x01,0x1a,0x04,0x2a,0x04,0x3a, +0x04,0x03,0x09,0x04,0x01,0xfa,0x04,0x01,0xdb,0x04,0xeb,0x04,0x02,0x9d,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x5d,0x5d,0x71,0x71,0x71,0x71,0x71,0x2b,0x71,0x72,0x33,0x5d,0x5d,0x71,0x71,0x33,0x2f,0x33,0x5d,0x5d,0x71,0x71,0xed,0x5d,0x5d,0x32,0x10,0xed,0x5d,0x5d,0x32,0x32,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x71,0x3f, +0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x17,0x39,0x11,0x12,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x27,0x35,0x16,0x37,0x26,0x11,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x16,0x37,0x01,0x34,0x27,0x26,0x23,0x22,0x07,0x06, +0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x1d,0x92,0xec,0x84,0x73,0x73,0x85,0xec,0x92,0x8e,0xfb,0xe8,0x8a,0x7d,0xcc,0xcc,0x7e,0x8c,0xe8,0xfb,0x8e,0xfe,0xb7,0x59,0x4e,0x87,0x86,0x4e,0x57,0xa3,0x8a,0x8a,0xa2,0x1b,0x33,0x1e,0x1e,0x33,0x9c,0x47,0x02,0xa6,0x01,0x2a,0xe8,0x7d,0x71,0x71,0x7d,0xe8,0xfe,0xd6,0xa6,0x02,0x47,0x01,0x8b, +0xaa,0x56,0x4c,0x4c,0x56,0xaa,0x88,0xe0,0x39,0x39,0xe0,0x00,0x00,0x01,0x00,0x5e,0xfe,0x1e,0x03,0xf1,0x04,0x00,0x00,0x28,0x00,0x9a,0x40,0x5d,0x55,0x27,0x01,0x99,0x16,0x01,0x3a,0x16,0x4a,0x16,0x02,0x76,0x0f,0x01,0x57,0x0f,0x67,0x0f,0x02,0x66,0x02,0x01,0x54,0x02,0x01,0x77,0x25,0x01,0x99,0x1a,0x01,0x8a,0x1a,0x01,0x59,0x1a, +0x69,0x1a,0x02,0x25,0x1a,0x24,0x19,0x19,0x0d,0x15,0x24,0x24,0x00,0x83,0x15,0x15,0x08,0x2a,0x1f,0x1e,0x1e,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x01,0x08,0x1a,0x1c,0x24,0x23,0x23,0x1f,0x19,0x25,0x95,0x0b,0x0a,0x18,0x0a,0x18,0x0a,0x11,0x1c,0x95,0x21,0x21,0x1e,0x95,0x1f,0x0f,0x11,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x33,0x2f, +0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x39,0x11,0x33,0x2f,0x33,0x12,0x39,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17, +0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x25,0x15,0x01,0x16,0x17,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x86,0x57,0x5b,0xfe,0x54,0x52,0x01,0x65,0x77,0x77,0xab,0xb9,0x2b,0x93,0xcb,0xcc,0x01,0x03,0xfe,0x77,0xd2, +0x74,0x7e,0x1d,0xd2,0x7d,0x76,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x54,0x57,0x8c,0x01,0x4e,0x33,0x01,0xea,0x18,0x42,0x8c,0x42,0x42,0x33,0xfd,0xe1,0x19,0x6e,0x77,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x06,0x02,0x00,0x43,0x00,0xe0,0x40,0x8f,0x56,0x43,0x66,0x43,0x02,0x85,0x3d,0x01,0x57,0x3d,0x67,0x3d, +0x02,0x76,0x36,0x86,0x36,0x02,0x79,0x32,0x89,0x32,0x02,0x89,0x22,0x01,0x48,0x17,0x01,0x59,0x13,0x69,0x13,0x02,0x76,0x0f,0x86,0x0f,0x02,0x67,0x0f,0x01,0x56,0x0f,0x01,0x2d,0x2b,0x84,0x2e,0x30,0x30,0x15,0x85,0x3a,0x95,0x3a,0x02,0x3a,0x38,0x3e,0x83,0x9b,0x1f,0x01,0x79,0x1f,0x01,0x08,0x1f,0x01,0x1f,0x23,0x1d,0x1d,0x15,0x54, +0x40,0x01,0x41,0x40,0x00,0x19,0x19,0x0d,0x00,0x83,0x20,0x15,0x01,0x15,0x15,0x08,0x45,0x38,0x83,0x23,0x23,0x0b,0x0d,0x84,0x0a,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2e,0x2d,0x40,0x41,0x1a,0x0b,0x0a,0x0a,0x11,0x18,0x95,0x1a,0x18,0x1f,0x01,0x3a,0x1f,0x1a,0x0f,0x2d,0x1f,0x2d,0x02,0x2d,0x1a,0x2d,0x1a,0x11,0x34,0x95,0x27,0x01,0x11, +0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x10,0xed,0x11,0x39,0x2f,0x33,0x11,0x39,0x39,0x11,0x33,0x01,0x2f,0x5d,0x33,0xed,0x32,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x5d,0x11,0x33,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11, +0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x20,0x35,0x34,0x27,0x24,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07, +0x27,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x05,0x15,0x16,0x16,0x03,0xf1,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x29,0x99,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xcb,0xb0,0x1d,0x17,0x01,0x4f,0xa7,0xfe,0xf2,0x2a,0xa7,0x89,0x79,0xaf,0xae,0x79,0x88,0x27,0x9d,0x1e,0x54,0x4a,0x6b,0x6c,0x4a, +0x55,0xa8,0x9c,0x9c,0xa8,0xfe,0xef,0x92,0xb1,0x22,0xd2,0x7b,0x73,0x61,0x6a,0xa9,0x5c,0x53,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x8b,0x8b,0x98,0x8b,0xd9,0x5d,0x3f,0x66,0x1a,0x6a,0xc6,0xa8,0x61,0x57,0x57,0x62,0xa7,0x60,0x4f,0x37,0x37,0x45,0x67,0x39,0x32,0x32,0x39,0x67,0x98,0x4b,0x38,0x38,0x4d,0x9e,0xf3,0x36,0x04,0x0e, +0xba,0x00,0x00,0x03,0x00,0x52,0xff,0xe8,0x04,0x92,0x06,0x02,0x00,0x21,0x00,0x2c,0x00,0x38,0x00,0x81,0x40,0x50,0x99,0x37,0x01,0x8a,0x37,0x01,0x85,0x31,0x01,0x8a,0x25,0x01,0x79,0x25,0x01,0x96,0x19,0x01,0x9a,0x16,0x01,0x7a,0x12,0x8a,0x12,0x02,0x9a,0x0b,0x01,0x7b,0x0b,0x01,0x7b,0x0a,0x01,0x1e,0x21,0x1c,0x01,0x1f,0x84,0x2e, +0x22,0x0e,0x0e,0x09,0x3a,0x28,0x83,0x14,0x14,0x33,0x83,0x09,0x40,0x09,0x0c,0x48,0x09,0x1c,0x22,0x95,0x0f,0x1f,0x0e,0x2e,0x01,0x95,0x20,0x0e,0x0e,0x35,0x26,0x95,0x18,0x01,0x35,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x01,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x11,0x12,0x39, +0x2f,0xc4,0xc4,0xfd,0xc4,0xc4,0xde,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x33,0x35,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x35,0x34,0x26,0x23,0x22,0x15,0x14,0x17, +0x16,0x33,0x13,0x35,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x04,0x92,0xfe,0xd4,0xcd,0xb6,0xb5,0x6b,0x71,0x81,0x74,0xb1,0xc6,0xc6,0xb1,0x74,0x81,0x71,0x6b,0xb5,0xb6,0xcd,0x01,0x2c,0xfe,0xd4,0x01,0x2c,0xfe,0x2c,0x72,0x69,0xe1,0x4c,0x45,0x65,0xc6,0xc6,0x65,0x45,0x4c,0xe1,0x69,0x3a,0x38,0x02,0x0e,0xa8,0xb5,0xc9, +0x57,0x5c,0xa8,0xab,0x60,0x58,0x9e,0x58,0x60,0xab,0xa8,0x5c,0x57,0xc9,0xb5,0xa8,0x98,0x9e,0x01,0x36,0xa8,0x68,0x7f,0xc4,0x60,0x39,0x32,0xfd,0x8a,0xa8,0x32,0x39,0x60,0xc4,0x41,0x3e,0x00,0x03,0x00,0x60,0xfe,0x1e,0x07,0x48,0x06,0x02,0x00,0x31,0x00,0x3d,0x00,0x49,0x00,0xb9,0x40,0x79,0x46,0x45,0x01,0x46,0x43,0x01,0x49,0x3d, +0x01,0x49,0x33,0x01,0x55,0x45,0x01,0x59,0x43,0x01,0x55,0x3d,0x01,0x5a,0x33,0x01,0x44,0x83,0x0f,0x19,0x1f,0x19,0x3f,0x19,0x03,0x19,0x12,0x32,0x83,0x00,0x00,0x10,0x00,0x30,0x00,0x03,0x00,0x06,0x38,0x38,0x2c,0x0b,0x06,0x84,0x12,0x3e,0x3e,0x24,0x1f,0x12,0x24,0x22,0x95,0x25,0x27,0x01,0x34,0x95,0x44,0x2c,0x54,0x2c,0x02,0x2c, +0x2e,0x2e,0x42,0x95,0x44,0x1f,0x54,0x1f,0x02,0x1f,0x1d,0x0f,0x3c,0x95,0x79,0x06,0x01,0x6a,0x06,0x01,0x4b,0x06,0x5b,0x06,0x02,0x06,0x04,0x04,0x46,0x95,0x69,0x13,0x79,0x13,0x02,0x4b,0x13,0x5b,0x13,0x02,0x13,0x15,0x16,0x0b,0x09,0x95,0x0c,0x0e,0x1c,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x5d,0x5d,0xed,0x33,0x2f,0x33,0x5d,0x5d, +0x5d,0xed,0x3f,0x33,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xed,0x3f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xcc,0x33,0x2f,0x10,0xfd,0xce,0xc4,0x33,0x2f,0x10,0xdc,0x5d,0xed,0x10,0xdc,0x5d,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x15,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x27, +0x26,0x35,0x35,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x11,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x16,0x07,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x20,0x01,0x34,0x27,0x26,0x23,0x20,0x11,0x10,0x21,0x32,0x37,0x36,0x07,0x48,0x7b,0x84,0xeb,0xbc,0x7a, +0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x7a,0xbc,0xeb,0x84,0x7b,0x6e,0x7a,0xea,0xc6,0x88,0xac,0x3d,0x30,0x2c,0x4b,0x93,0x5d,0x5a,0x88,0xc6,0xea,0x7a,0x6e,0xa8,0xfe,0xca,0xa8,0x53,0x47,0x4a,0x55,0xa3,0x01,0x36,0xfc,0xe0,0x47,0x53,0xa8,0xfe,0xca,0x01,0x36,0xa1,0x56,0x4b,0x01,0xf0,0xe6,0x8c,0x96,0x63,0xc9,0xd9,0x1b,0x94, +0x12,0x65,0x62,0x95,0xd1,0x63,0x96,0x8c,0xe6,0xdf,0x80,0x8d,0x77,0x01,0x39,0xd9,0x1b,0x94,0x12,0x65,0x62,0x95,0xfe,0xbf,0x77,0x8d,0x80,0xe5,0x01,0x68,0x6d,0x5e,0xa1,0x9e,0x63,0x73,0x01,0x74,0xa1,0x5e,0x6d,0xfe,0x98,0xfe,0x88,0x71,0x62,0x00,0x00,0x01,0x00,0x60,0xfe,0x1e,0x03,0xf1,0x04,0x18,0x00,0x2f,0x00,0xc2,0x40,0x83, +0x79,0x29,0x01,0x68,0x29,0x01,0x59,0x29,0x01,0x56,0x25,0x66,0x25,0x02,0x25,0x1f,0x01,0x77,0x1e,0x01,0x35,0x1e,0x01,0x85,0x1b,0x95,0x1b,0x02,0x8a,0x17,0x9a,0x17,0x02,0x75,0x12,0x01,0x67,0x12,0x01,0x7a,0x0f,0x01,0x2a,0x0a,0x01,0x69,0x09,0x01,0x06,0x02,0x16,0x02,0x02,0x2e,0x00,0x84,0x2d,0x2b,0x2b,0x0e,0x34,0x20,0x54,0x20, +0x64,0x20,0x84,0x20,0x04,0x20,0x23,0x1d,0x83,0x8b,0x0b,0x9b,0x0b,0x02,0x6d,0x0b,0x01,0x4a,0x0b,0x5a,0x0b,0x02,0x2f,0x0b,0x01,0x0b,0x08,0x20,0x0e,0x30,0x0e,0x02,0x0e,0x0e,0x31,0x23,0x83,0x08,0x14,0x84,0x15,0x15,0x0f,0x08,0x1f,0x08,0x02,0x08,0x2d,0x2e,0x2e,0x27,0x20,0x20,0x04,0x15,0x15,0x0b,0x10,0x95,0x0b,0x19,0x10,0x27, +0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x39,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x22,0x07,0x06,0x15,0x23,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x14,0x07,0x06,0x07,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x37,0x16,0x03,0xf1,0x88,0x7d,0xaa,0xcf,0x85,0x8e,0xbc,0xae,0xae,0xbc,0xfe,0xfb,0x68,0x44, +0x4b,0xa6,0x7f,0x73,0xab,0xba,0x77,0x7c,0xbc,0xae,0xae,0xbc,0x5b,0x55,0x88,0x68,0x4e,0x55,0x1c,0x9a,0x28,0x6e,0xa9,0x6a,0x61,0x73,0x7b,0xd2,0xcd,0x76,0x4d,0x4e,0x58,0x85,0xf4,0x34,0x39,0x68,0xa8,0x61,0x57,0x60,0x63,0xa7,0xe0,0x72,0x4b,0x4b,0x57,0xa0,0x8b,0x50,0x4c,0x3c,0x42,0x68,0x49,0x33,0x37,0x51,0x00,0x01,0x00,0x5f, +0xfe,0x1e,0x03,0xf0,0x04,0x18,0x00,0x3b,0x00,0x76,0x40,0x49,0x56,0x2a,0x66,0x2a,0x76,0x2a,0x03,0x55,0x24,0x65,0x24,0x02,0x47,0x24,0x01,0x99,0x1a,0x01,0x9a,0x19,0x01,0x76,0x0a,0x86,0x0a,0x02,0x2f,0x31,0x84,0x2c,0x12,0x17,0x84,0x11,0x0c,0x0c,0x2e,0x2c,0x2c,0x3d,0x02,0x21,0x84,0x3b,0x6b,0x21,0x01,0x3a,0x21,0x4a,0x21,0x5a, +0x21,0x03,0x21,0x07,0x95,0x2e,0x2f,0x1c,0x2f,0x1c,0x2f,0x01,0x27,0x95,0x36,0x1c,0x11,0x12,0x12,0x01,0x0f,0x00,0x3f,0x33,0x2f,0x33,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x13,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x5f,0xa4,0x27,0x48,0x65,0x3e,0x2e,0x57,0x42,0x28,0x0c,0x07, +0x09,0x0a,0x99,0x0e,0x0b,0x0a,0x10,0x39,0x68,0x91,0x57,0x2a,0x53,0x4b,0x40,0x16,0x30,0x55,0x73,0x44,0x32,0x60,0x4b,0x2e,0x1c,0x99,0x29,0x49,0x79,0x9b,0x52,0x66,0xb1,0x81,0x4a,0x04,0x00,0x85,0x45,0x80,0x63,0x3b,0x20,0x42,0x66,0x46,0x26,0x43,0x1a,0x1e,0x1a,0x37,0x22,0x28,0x22,0x59,0x33,0x5f,0x96,0x67,0x36,0x15,0x24,0x2f, +0x1a,0xfd,0xbf,0x45,0x6d,0x4d,0x28,0x20,0x3c,0x55,0x35,0x4a,0x32,0x37,0x54,0x5b,0x56,0x8a,0x60,0x34,0x3d,0x74,0xa6,0x69,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x50,0x04,0x18,0x00,0x36,0x00,0x46,0x00,0x93,0x40,0x60,0x45,0x46,0x55,0x46,0x02,0x55,0x42,0x01,0x46,0x42,0x01,0x5a,0x3f,0x01,0x49,0x3f,0x01,0x59,0x39,0x01,0x4a,0x39, +0x01,0x64,0x27,0x01,0x69,0x23,0x01,0x79,0x1e,0x01,0x6a,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x02,0x16,0x12,0x26,0x12,0x46,0x12,0x56,0x12,0x04,0x2f,0x32,0x84,0x1a,0x1d,0x1a,0x0b,0x10,0x83,0x0a,0x05,0x05,0x2a,0x83,0x3c,0x30,0x3c,0x01,0x1a,0x3c,0x1a,0x3c,0x48,0x44,0x83,0x0f,0x20,0x1f,0x20,0x02,0x20,0x0a,0x0b,0x37,0x95,0x1d,0x2f, +0x2f,0x00,0x41,0x95,0x25,0x10,0x00,0x95,0x15,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0xce,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x32,0x3e,0x02,0x35, +0x34,0x26,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x06,0x06,0x15,0x14,0x1e,0x02,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xea,0x2a,0x46,0x32,0x1c,0x06, +0x04,0x04,0x06,0xa6,0x06,0x05,0x04,0x07,0x35,0x5f,0x83,0x4f,0x4f,0x82,0x5e,0x34,0x17,0x0e,0xa5,0xa7,0x46,0x83,0xbd,0x78,0x74,0xb9,0x81,0x44,0x46,0x86,0xc1,0x7c,0x0e,0x10,0x1d,0x33,0x47,0x6e,0x57,0x81,0x54,0x2a,0x2b,0x56,0x80,0x55,0x9f,0xab,0xab,0xfe,0xa8,0x1f,0x35,0x45,0x27,0x1a,0x30,0x12,0x15,0x12,0x1d,0x16,0x1a,0x16, +0x3a,0x20,0x4a,0x7a,0x57,0x2f,0x2f,0x58,0x7d,0x4e,0x43,0x60,0x22,0x28,0xfa,0xc3,0x76,0xbd,0x84,0x47,0x44,0x80,0xb7,0x73,0x7c,0xc1,0x84,0x45,0x27,0x4e,0x35,0x33,0x4f,0x35,0x1b,0x02,0x06,0x35,0x62,0x8a,0x55,0x53,0x86,0x5e,0x33,0xb0,0xbe,0xc0,0xb2,0x00,0x00,0x01,0x00,0x40,0xfe,0x1e,0x04,0x96,0x04,0x18,0x00,0x33,0x00,0x93, +0x40,0x60,0x35,0x27,0x45,0x27,0x55,0x27,0x95,0x27,0x04,0x3a,0x23,0x4a,0x23,0x5a,0x23,0x03,0x65,0x16,0x01,0x94,0x2f,0x01,0x86,0x2f,0x01,0x64,0x2f,0x74,0x2f,0x02,0x2f,0x2a,0x8f,0x0c,0x9f,0x0c,0x02,0x3b,0x0c,0x4b,0x0c,0x5b,0x0c,0x03,0x18,0x0c,0x01,0x0c,0x0f,0x8b,0x01,0x9b,0x01,0x02,0x19,0x01,0x39,0x01,0x02,0x01,0x00,0x00, +0x1c,0x19,0x83,0x1d,0x20,0x20,0x35,0x2a,0x83,0x0f,0x09,0x09,0x0f,0x1d,0x1c,0x1c,0x0c,0x25,0x95,0x14,0x10,0x2f,0x01,0x0c,0x95,0x06,0x09,0x95,0x08,0x08,0x06,0x00,0x01,0x1c,0x00,0x3f,0x33,0xce,0x32,0x2f,0xed,0x10,0xed,0x11,0x39,0x3f,0xed,0x11,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x32, +0x2f,0x33,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x12,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x07,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x26,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0x96, +0x68,0x4f,0x98,0x9c,0xa4,0x5c,0xd7,0x94,0x4e,0xc0,0x6b,0xa8,0xb1,0x49,0x89,0xc5,0x7d,0x6f,0xb1,0x7b,0x42,0x0a,0x13,0x9d,0x0c,0x06,0x2b,0x52,0x77,0x4d,0x57,0x84,0x58,0x2d,0x43,0x84,0xc4,0x81,0x3a,0x65,0x5c,0x59,0xfe,0x9b,0x7d,0x3f,0x5e,0x3f,0x20,0x7e,0xa8,0x31,0x31,0x5e,0x01,0x30,0xca,0x7c,0xc7,0x8c,0x4b,0x4a,0x8a,0xc2, +0x78,0x28,0x4c,0x61,0x37,0x42,0x3a,0x23,0x56,0x8f,0x66,0x38,0x3b,0x68,0x90,0x54,0x81,0xb9,0x8e,0x71,0x39,0x1a,0x39,0x3e,0x44,0x00,0x00,0x03,0x00,0x70,0xff,0xea,0x02,0xf4,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x32,0x40,0x1a,0x0c,0xaf,0x12,0x12,0x1e,0x25,0x00,0xaf,0x06,0x06,0x18,0xaf,0x1e,0x15,0xb0,0x0f,0x0f,0x03, +0x21,0xb0,0x1b,0x16,0x03,0xb0,0x09,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x01,0x50,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x01,0xa4,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0xfe,0x5c,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x03,0xa8,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x28,0x2f,0x41,0x42,0x2e,0x2e,0x40,0x3f,0xfe,0x2c,0x2f,0x41,0x42,0x2e,0x2e,0x43,0x42,0x00,0x00,0x02,0x00,0x32, +0x02,0x58,0x02,0x76,0x06,0x02,0x00,0x20,0x00,0x2e,0x00,0x67,0x40,0x3f,0xd7,0x2a,0x01,0x0a,0x1c,0x01,0xea,0x1c,0xfa,0x1c,0x02,0x0a,0x06,0x01,0xeb,0x06,0xfb,0x06,0x02,0x0b,0x05,0x01,0x05,0x02,0x01,0xe5,0x02,0xf5,0x02,0x02,0x10,0x11,0x11,0x00,0x00,0x21,0x10,0x21,0x02,0x21,0x1b,0x29,0x29,0x09,0x1b,0x1b,0x1d,0x25,0x2b,0x04, +0x00,0x25,0x01,0x25,0x16,0x0b,0x11,0x13,0x10,0x0e,0x0e,0x0b,0x01,0x00,0x3f,0x33,0x2f,0x33,0xcd,0x32,0x10,0xdd,0xdc,0x5d,0xdc,0xcd,0x10,0xcd,0x32,0x01,0x2f,0xcd,0x33,0x2f,0x10,0xdc,0x5d,0xcd,0x32,0x2f,0x33,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x5d,0x71,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x11,0x34,0x33,0x32, +0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x15,0x15,0x36,0x33,0x32,0x17,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x36,0x02,0x76,0x4a,0x4f,0x8d,0x89,0x4d,0x48,0xcf,0x26,0x8d,0x20,0x31,0x45,0x2c,0x4f,0x51,0x29,0x93,0x1b,0x35,0x13,0x0d,0x52,0x63,0x8d,0x48,0x42,0x78,0x1d, +0x24,0x65,0x64,0x29,0x21,0xae,0x63,0x26,0x1d,0x03,0x90,0x8a,0x54,0x5a,0x56,0x52,0x87,0x01,0xb0,0xcb,0x2a,0x2a,0x58,0x39,0x2a,0x1f,0x17,0x39,0xbc,0x48,0x55,0x4d,0x89,0x65,0x2a,0x35,0x38,0x2d,0x62,0xcb,0x3b,0x2e,0x00,0x01,0x00,0x28,0xff,0x40,0x04,0x25,0x04,0x18,0x00,0x32,0x00,0x8c,0x40,0x4f,0x96,0x23,0x01,0x1b,0x1c,0x1c, +0x19,0x84,0x1e,0x03,0x00,0x84,0x04,0x07,0x07,0x1e,0x1e,0x28,0x34,0x2c,0x2b,0x2b,0x2a,0x2e,0x0c,0x0d,0x0e,0x2d,0x2d,0x0e,0x0e,0x84,0x28,0x2a,0x14,0x28,0x2a,0xa8,0x2a,0xb8,0x2a,0x02,0x19,0x2a,0x29,0x2a,0x02,0x0a,0x2a,0x01,0x2a,0x1f,0x28,0x01,0x28,0x0c,0x03,0x09,0x95,0x2e,0x31,0x10,0x2a,0x95,0x2d,0x0f,0x16,0x95,0x20,0x25, +0x1c,0x1b,0x1b,0x0e,0x11,0x95,0x28,0x25,0x16,0x00,0x3f,0x33,0xed,0x32,0x33,0x2f,0x33,0x10,0xdc,0xed,0x3f,0xed,0x3f,0x33,0xfd,0xcc,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x33,0x2f, +0x39,0x31,0x30,0x5d,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x0d,0xa8,0x13,0x03,0x33,0x0d, +0x13,0xfe,0x54,0x7c,0x02,0x33,0x0d,0x13,0x01,0x2b,0x4a,0x30,0x40,0x50,0x72,0x7d,0x52,0x33,0x0d,0x13,0xfe,0xd4,0x4e,0x26,0x9f,0x08,0x8d,0xc7,0x1d,0x01,0x6e,0x18,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x73,0xfd,0xb6,0x09,0x1b,0x35,0x05,0x4d,0x13,0x53,0x41,0x6a,0x99,0x5b,0x57,0x2f,0x31, +0x05,0x51,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0x68,0x6b,0x15,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x30,0x00,0x95,0x40,0x54,0x9b,0x17,0x01,0x89,0x17,0x01,0x78,0x17,0x01,0x2f,0x30,0x02,0x00,0x00,0x84,0x30,0x1c,0x14,0x30,0x30,0x1c,0x30,0x1c,0x06,0x84,0x19,0x19,0x1c,0x1c,0x22,0x32,0x27,0x29,0x29,0x84,0x22, +0x24,0x14,0x22,0x22,0x24,0x26,0x25,0x25,0x24,0xa8,0x24,0xb8,0x24,0x02,0x24,0x22,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x1f,0x22,0x01,0x22,0x00,0x30,0x24,0x95,0x27,0x0f,0x2f,0x29,0x2c,0x95,0x10,0x15,0x0f,0x22,0x1c,0x02,0x1f,0x16,0x15,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x11,0x39,0xed,0x32,0x32,0x3f,0xed,0xd4, +0xc4,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17, +0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x9c,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75,0x9b,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03, +0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xba,0x43,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2d,0xa9,0x4a,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x28,0xfe,0x1f,0x04,0x30,0x04,0x18,0x00,0x33,0x00,0xbd, +0x40,0x74,0x78,0x15,0x01,0x9a,0x11,0x01,0x89,0x11,0x01,0x30,0x2d,0x2d,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xd9,0x1a,0x01,0x78,0x1a,0x01,0x1a,0x17,0x00,0x84,0x13,0x13,0x50,0x17,0x60,0x17,0x02,0x17,0x17,0x22,0x35,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x22,0x23,0xf7,0x23,0x01,0x88, +0x23,0xa8,0x23,0xc8,0x23,0x03,0x79,0x23,0x01,0x47,0x23,0x57,0x23,0x02,0x23,0x22,0x0a,0x0c,0x84,0x09,0x07,0x07,0x1f,0x22,0x01,0x22,0x40,0x0c,0x10,0x48,0x22,0x20,0x1a,0x1d,0x95,0x2d,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x0a,0x09,0x30,0x21,0x17,0x22,0x15,0x0f,0x95,0x04,0x1c,0x00,0x3f,0xed,0x3f,0x33,0xc4,0x33,0xce,0x32,0x3f, +0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x05,0x14,0x07, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x16,0x04,0x30,0xb3,0x84,0xbc,0x93,0xd5,0x47,0x90,0x30,0x84,0x5a,0x65,0x56,0x75, +0x9b,0x09,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x87,0x02,0x9c,0xb0,0xa7,0x50,0x3a,0x85,0x5f,0x52,0x4e,0x37,0x33,0x27,0x2c,0x3d,0x21,0x2d,0x55,0x2c,0xa9,0x4b,0x1d,0x2c,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0xb4,0x26, +0x26,0xfd,0x7d,0x0a,0x0c,0x32,0xba,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x04,0xa7,0x06,0x04,0x00,0x39,0x00,0x48,0x00,0xe4,0x40,0x9a,0x84,0x44,0x01,0x75,0x44,0x01,0x66,0x40,0x01,0x45,0x40,0x55,0x40,0x02,0x85,0x3f,0x01,0x8b,0x3d,0x01,0x7c,0x3d,0x01,0x48,0x3d,0x68,0x3d,0x02,0x79,0x3c,0x89,0x3c,0x02,0x48,0x36,0x58,0x36,0x68, +0x36,0x03,0x79,0x1e,0x89,0x1e,0x02,0x99,0x1d,0x01,0x99,0x1a,0x01,0x76,0x17,0x86,0x17,0x02,0x27,0x17,0x01,0x94,0x11,0x01,0x85,0x11,0x01,0x11,0x15,0x0c,0x0f,0x84,0x22,0x97,0x25,0x01,0x25,0x22,0x15,0x83,0x3a,0x03,0x00,0x84,0x04,0x07,0x07,0x89,0x3e,0x01,0x58,0x3e,0x78,0x3e,0x02,0x20,0x3e,0x3a,0x4f,0x22,0x5f,0x22,0x6f,0x22, +0x03,0x22,0x3a,0x22,0x3a,0x1c,0x4a,0x2e,0x31,0x84,0x2d,0x00,0x2a,0x10,0x2a,0x02,0x2a,0x2a,0x42,0x83,0x0f,0x1c,0x1f,0x1c,0x5f,0x1c,0x6f,0x1c,0x04,0x1c,0x25,0x0c,0x28,0x04,0x09,0x95,0x38,0x01,0x3e,0x95,0x20,0x20,0x45,0x28,0x95,0x33,0x2d,0x00,0x45,0x95,0x19,0x16,0x00,0x3f,0xed,0x3f,0xdc,0xed,0x11,0x39,0x2f,0xed,0x3f,0xfd, +0xce,0x12,0x39,0x39,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0xed,0x32,0x10,0xed,0x11,0x33,0x5d,0x10,0xed,0x32,0x11,0x39,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x07, +0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x0f,0x02,0x06,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x10,0x07,0x06,0x21,0x22,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x37,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x33,0x32,0x01,0x34,0x27,0x26,0x27,0x06,0x07,0x06,0x15,0x14,0x16, +0x33,0x32,0x37,0x36,0x04,0xa7,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xaa,0x28,0x02,0x53,0x7c,0x1d,0x53,0x9e,0xa6,0xfe,0xf7,0xbd,0xde,0x90,0x93,0xfd,0x1d,0x09,0x15,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0x01,0xf7,0x44,0x30,0x9f,0xfe,0xc9,0x36,0x20,0x53,0xfe,0x84,0x6d,0x89,0x74,0xb9,0x77,0x6b,0x05, +0x50,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x35,0xc3,0x0a,0x0c,0x3c,0x42,0x63,0x25,0x66,0x95,0xfe,0xf7,0xb5,0xc0,0xc9,0xad,0xf8,0xb0,0xb4,0x2e,0x2f,0x38,0x19,0x30,0x71,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x9c,0x15,0xfc,0x5c,0x5e,0x48,0x2b,0x41,0x1b,0xa8,0x8b,0xbf,0x6d,0x85,0xa3,0x91,0x00,0x00,0x01, +0x00,0x28,0xfe,0x25,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x90,0x40,0x57,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0xb8,0x10,0xc8,0x10,0x02,0x10,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0xf7,0x19,0x01,0x88,0x19,0xa8,0x19,0xc8, +0x19,0x03,0x79,0x19,0x01,0x57,0x19,0x01,0x19,0x1f,0x18,0x01,0x18,0x40,0x0c,0x10,0x48,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x17,0x0d,0x04,0x18,0x15,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x2b,0x5d,0x33,0x5d,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10, +0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25, +0x08,0x87,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x7e,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x01, +0x00,0x28,0xfe,0x25,0x06,0xc0,0x04,0x18,0x00,0x30,0x00,0xb5,0x40,0x69,0x25,0x24,0x24,0x23,0x20,0x27,0x26,0x21,0x26,0x21,0x21,0x84,0x22,0x23,0x14,0x22,0x23,0xc8,0x23,0x01,0x86,0x23,0x01,0x57,0x23,0x77,0x23,0x02,0x23,0x5f,0x22,0x8f,0x22,0xbf,0x22,0x03,0x22,0x17,0x2c,0x0e,0x0c,0x0c,0x84,0x1a,0x17,0x14,0x1a,0x1a,0x17,0xa8, +0x1a,0xc8,0x1a,0x02,0x1a,0x17,0x12,0x84,0x13,0x13,0x17,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xb8,0x06,0x01,0x06,0x04,0x17,0x0c,0x06,0x09,0x95,0x2c,0x01,0x2f,0x2f,0x20,0x1a,0x1d,0x95,0x27,0x2a,0x10,0x23,0x95,0x26,0x0f,0x03,0x04,0x21,0x17,0x0e,0x22,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0xc4,0xd4,0xc4,0x3f, +0xed,0x3f,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x18,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x31, +0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56,0x86,0x13, +0x01,0x14,0xa4,0x14,0x01,0x14,0x88,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfd,0x81,0x5a,0x45,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x40,0x63,0x02,0xa4,0x0f,0x0e,0x35, +0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x86,0x71,0x15,0x00,0x00,0x02,0xff,0x3f,0xff,0xe7,0x04,0x25,0x06,0x04,0x00,0x2d,0x00,0x3f,0x00,0xa4,0x40,0x5e,0x87,0x04,0x01,0x76,0x04,0x01,0x64,0x04,0x01,0x53,0x04,0x01,0x03,0x01,0x01,0x84,0x3f,0x3d,0x14,0x3f,0x3f,0x3d,0x08,0x3f,0x18,0x3f,0x02,0x3f,0x3d,0x3d,0x0b,0x41, +0x1b,0x1d,0x84,0x18,0x34,0x33,0x29,0x28,0x27,0x35,0x27,0x35,0x35,0x84,0x0b,0x0e,0x14,0x0b,0x0b,0x0e,0x1a,0x18,0x18,0x0e,0x39,0x0e,0x01,0x2a,0x0e,0x01,0x0e,0x1f,0x0b,0x01,0x0b,0x3f,0x33,0x30,0x95,0x29,0x01,0x2c,0x10,0x0e,0x11,0x95,0x27,0x24,0x01,0x16,0x95,0x1f,0x1b,0x00,0x3d,0x35,0x38,0x95,0x0b,0x03,0x08,0x16,0x00,0x3f, +0x33,0x33,0xed,0x32,0x32,0x3f,0xde,0xed,0x3f,0x33,0xed,0x32,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d, +0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37, +0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x9f,0x08,0xec,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x51,0x01,0x75,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94, +0x2c,0x5f,0x15,0xb4,0x27,0x25,0x04,0x4a,0x10,0x0d,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0x8b,0x6a,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x02,0x00,0x5b,0xff,0xa7,0x06,0xc3,0x04,0x58,0x00,0x3a,0x00,0x4c,0x00,0xf0,0x40,0x85, +0x88,0x2c,0x98,0x2c,0x02,0x87,0x1c,0x01,0x76,0x1b,0x86,0x1b,0x96,0x1b,0x03,0x97,0x07,0x01,0x1d,0x1c,0x1c,0x18,0x16,0x36,0x01,0x07,0x36,0x01,0x36,0x16,0x49,0x4a,0x4b,0x4c,0x18,0x16,0x16,0x84,0x4c,0x20,0x14,0x4c,0x4c,0x20,0x4c,0x20,0x40,0x41,0x42,0x31,0x31,0x42,0x42,0x84,0x26,0x29,0x14,0x26,0x26,0x29,0x2e,0x2d,0x2d,0x29, +0x29,0x5f,0x26,0x01,0x26,0x20,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x50,0x0d,0x01,0x0d,0x20,0x4c,0x40,0x29,0x3d,0x95,0x34,0x16,0x10,0x13,0x95,0x36,0x01,0x39,0x39,0x34,0x2d,0x2e,0x2e,0x31,0x34,0x10,0x49,0x42,0x45,0x95,0x23,0x0d,0x08,0x04,0x09,0x09,0x96,0x1c,0x01,0x1c,0x1d,0x1d,0x23,0x26, +0x26,0x20,0x18,0x23,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x11,0x33,0x2f,0x33,0x5d,0x33,0x2f,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xcc,0x5d,0x32,0x11, +0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x05,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xc3,0x08,0x81,0x04, +0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x53,0x80,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x84,0x17,0x01,0x8f,0x4b,0x29,0x9f,0xfc,0xbb,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03, +0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x9f,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x22,0x39,0x62,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, +0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x28,0x00,0x00,0x03,0xa4,0x04,0x00,0x00,0x1f,0x00,0x52,0x40,0x2f,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0xd8,0x06,0x01,0x06,0x00,0x04,0x01,0x04,0x04,0x21,0x15,0x17,0x84,0x14,0x13,0x12,0x10,0x0e,0x95,0x0f,0x19,0x1f,0x19,0x02,0x19,0x06,0x09,0x95,0x01,0x1e, +0x12,0x95,0x15,0x0f,0x03,0x04,0x15,0x00,0x3f,0xc4,0x3f,0xed,0xde,0x32,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0x33,0xce,0x32,0xed,0x32,0x12,0x39,0x2f,0x5d,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x23,0x37,0x21,0x06,0x15, +0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x03,0xa4,0x08,0x8a,0xa3,0x8e,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x02,0xc7,0x1d,0x01,0x6e,0x1f,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x02,0xec,0x25,0x27,0xfd,0x60,0x02,0xc3,0x0f,0x0e,0x2b,0x05,0x34,0x15,0x96,0x12,0x10,0x8b,0x78,0x15,0x28,0x05,0x31,0x15,0x00,0x00,0x02,0x00,0x59, +0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x27,0x00,0x37,0x00,0x95,0x40,0x4e,0x36,0x35,0x0f,0x0e,0x0d,0x04,0x01,0x01,0x84,0x37,0x0d,0x14,0x37,0x37,0x0d,0x37,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x39,0x2e,0x2d,0x23,0x22,0x21,0x2f,0x21,0x2f,0x2f,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x84,0x1c,0x1c,0x18,0x87,0x18,0x01,0x18, +0x1f,0x15,0x01,0x15,0x37,0x2d,0x2a,0x95,0x23,0x21,0x18,0x01,0x26,0x10,0x1c,0x00,0x35,0x2f,0x32,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e, +0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13, +0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x04,0x25,0x09,0x99,0x13,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x09,0x99,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x54,0x7c, +0x03,0x33,0x0d,0x13,0x01,0xac,0x7c,0x03,0x03,0x64,0x22,0x2a,0xfd,0x3b,0x58,0x59,0x09,0x1d,0xfe,0xa9,0x01,0x50,0x16,0x0e,0x35,0x85,0x14,0x6b,0x15,0xb4,0x22,0x2a,0x02,0xc5,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0xc0,0x35,0x05,0x73,0xfd,0xaf,0x0e,0x0f,0x35,0x05,0x73,0x02,0x51,0x0e,0x00, +0x00,0x02,0x00,0x31,0xff,0xa7,0x06,0xbe,0x04,0x58,0x00,0x30,0x00,0x42,0x00,0xd9,0x40,0x7c,0x79,0x22,0x01,0x87,0x07,0x01,0x76,0x07,0x01,0x24,0x23,0x23,0x1f,0x27,0x1b,0x1c,0x1c,0x84,0x1d,0x1f,0x14,0x1d,0x1f,0x7a,0x1f,0x8a,0x1f,0x9a,0x1f,0x03,0x1f,0x1d,0x12,0x07,0x2c,0x17,0x2c,0x02,0x2c,0x36,0x38,0x38,0x84,0x12,0x15,0x14, +0x12,0x12,0x15,0x15,0x12,0x09,0x08,0x08,0x04,0x41,0x40,0x3f,0x0c,0x42,0x0c,0x97,0x04,0x01,0x04,0x01,0x01,0x84,0x42,0x0c,0x14,0x42,0x42,0x0c,0x42,0x0c,0x12,0x42,0x36,0x33,0x95,0x2c,0x01,0x2f,0x2f,0x2a,0x9a,0x23,0x01,0x8b,0x23,0x01,0x23,0x24,0x24,0x1b,0x15,0x18,0x95,0x27,0x1f,0x2a,0x10,0x1c,0x1d,0x15,0x3f,0x38,0x3b,0x95, +0x0f,0x85,0x08,0x95,0x08,0x02,0x08,0x09,0x09,0x12,0x0c,0x04,0x0f,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x10,0x87,0xc4,0x0e, +0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x80,0x02,0x33, +0x0d,0x13,0xfe,0x57,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x83,0x18,0x01,0x8a,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x62,0x15,0xb4,0x27,0x25,0x02,0x54, +0x09,0x14,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x83,0x6e,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x00,0x02,0x00,0x30,0xff,0xe7,0x05,0x4c,0x06,0x04,0x00,0x30,0x00,0x3d,0x00,0xcc,0x40,0x7d,0x56,0x3c,0x01,0x95,0x38,0x01, +0x87,0x38,0x01,0x89,0x35,0x01,0x95,0x0e,0x01,0x46,0x0e,0x56,0x0e,0x02,0x8a,0x07,0x01,0x21,0x23,0x84,0x20,0x1e,0x1e,0x14,0x00,0x01,0x01,0x2d,0x31,0x12,0x13,0x14,0x3d,0x14,0x2e,0x2f,0x05,0x06,0x2d,0x06,0x2d,0x2d,0x84,0x14,0x3d,0x14,0x14,0x14,0x3d,0x14,0x3d,0x3d,0x3f,0x37,0x83,0x0c,0x1c,0x95,0x0f,0x25,0x1f,0x25,0x02,0x25, +0x14,0x17,0x95,0x2d,0x2a,0x01,0x20,0x00,0x05,0x31,0x33,0x54,0x00,0x64,0x00,0x02,0x45,0x00,0x01,0x16,0x00,0x26,0x00,0x36,0x00,0x03,0x07,0x00,0x01,0x66,0x2f,0x01,0x12,0x2f,0x00,0x03,0x10,0x01,0x01,0x33,0x95,0x20,0x10,0x01,0x10,0x10,0x47,0x3d,0x01,0x3d,0x39,0x95,0x06,0x0a,0x16,0x00,0x3f,0x33,0xed,0x32,0x5d,0x3f,0x5d,0xed, +0x32,0x2f,0x12,0x17,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x12,0x39,0x39,0x3f,0x3f,0x33,0xed,0x32,0xdc,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x01,0x07,0x26,0x27,0x26,0x27,0x03,0x06,0x07,0x06,0x23,0x20,0x11,0x10,0x37,0x36,0x21,0x32,0x17,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x16,0x05,0x26,0x23,0x20,0x07,0x06,0x15,0x14,0x33,0x32,0x37, +0x36,0x37,0x05,0x4c,0x25,0x1c,0x20,0x4d,0x51,0x7e,0x21,0xc3,0x98,0xa8,0xfe,0x85,0xee,0xf7,0x01,0x75,0x27,0x1b,0x3c,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x3b,0x83,0xfe,0xc0,0x1f,0x1a,0xfe,0xe3,0xc8,0xbb,0xee,0x59,0x73,0x8d,0x10,0x03,0x9b,0xa2,0x15,0x12,0x2d,0x1b, +0xfd,0xb3,0x9c,0x55,0x43,0x01,0x7a,0x01,0x1f,0xc9,0xd0,0x02,0x01,0x1a,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x27,0x25,0xfe,0xee,0x23,0x4f,0x03,0xaf,0xa4,0xcc,0xfb,0x2d,0x36,0x4c,0x00,0x01,0x00,0x31,0x00,0x00,0x04,0x8d,0x06,0x04,0x00,0x33,0x00,0x9e,0x40,0x59,0x03,0x00,0x84,0x06, +0x18,0x15,0x15,0x84,0x24,0x21,0x14,0x24,0x24,0x21,0x04,0x06,0x06,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x00,0x21,0x01,0x21,0x21,0x2c,0x35,0x2a,0x0f,0x0e,0x2b,0x0e,0x2b,0x2b,0x84,0x2c,0x2d,0x14,0x2c,0x2d,0x08,0x2d,0x01,0x2d,0x2c,0x2f,0x03,0x01,0x03,0x03,0x12,0x19,0x0e,0x01,0x0e,0x09,0x95,0x77,0x2d,0x01,0x26,0x2d,0x01,0x19, +0x2d,0x01,0x2d,0x32,0x01,0x21,0x27,0x18,0x12,0x1d,0x2b,0x2c,0x15,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x10,0x00,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0xc4,0x11,0x39,0x11,0x39,0x3f,0x33,0x5d,0x5d,0x5d,0xed,0x32,0x5d,0x11,0x39,0x2f,0x5d,0x01,0x2f,0x33,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x12,0x01,0x39,0x18, +0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23, +0x22,0x07,0x05,0x03,0x23,0x01,0x36,0x37,0x25,0x36,0x33,0x32,0x04,0x8d,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x3e,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x27,0x13,0x03,0x12,0xa4,0x12,0x03,0x14,0x28,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0x01,0x06,0x1f,0xae,0x01,0x76,0x53,0x21,0x9f,0x05,0x50,0x27,0x25,0x41, +0x64,0x0f,0x0e,0x35,0x05,0x63,0x0f,0x32,0xfe,0xc9,0x6a,0x15,0xb4,0x2a,0x22,0xa7,0x51,0x44,0x30,0x3d,0xfe,0x91,0x01,0x6f,0x3d,0x2d,0x34,0x65,0xc9,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x04,0xd0,0x94,0x2c,0x5f,0x15,0x00,0x01,0x00,0x5b,0xff,0xa7,0x06,0xea,0x04,0x58,0x00,0x35,0x00,0xba,0x40,0x67,0x96,0x05,0x01,0x07,0x87,0x06, +0x01,0x06,0x06,0x96,0x02,0x01,0x87,0x02,0x01,0x02,0x00,0x00,0x84,0x35,0x34,0x14,0x35,0x35,0x34,0x35,0x0a,0x50,0x34,0x01,0x34,0x2a,0x2c,0x2e,0x2e,0x84,0x2a,0x2b,0x14,0x2a,0x2a,0x2b,0x2b,0x2a,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x99,0x18,0x01,0x08,0x18,0x01,0x18,0x5f,0x15,0x01,0x15,0x0f, +0x2a,0x00,0x35,0x2b,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x2b,0x0f,0x34,0x2e,0x31,0x95,0x0d,0x2a,0x24,0x27,0x95,0x15,0x0f,0x12,0x12,0x0d,0x06,0x07,0x07,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0x33,0xc4,0x33,0x2f,0x33,0x10,0xd4,0xc4,0x01,0x2f, +0x33,0xcc,0x5d,0x32,0x5d,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcc,0x5d,0x32,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x32,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23, +0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x06,0xea,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x82,0x4b,0x29,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04, +0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73, +0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x01,0x00,0x28,0xff,0xa7,0x05,0xa2,0x04,0x18,0x00,0x36,0x00,0x8e,0x40,0x4e,0x86,0x05,0x01,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x36,0x35,0x14,0x36,0x36,0x35,0x36,0x0a,0x35,0x35,0x10,0x38,0x20,0x22,0x84,0x1d,0xa7,0x2c,0x01,0x2c,0x2f,0x2f,0x84,0x10,0x13,0x14, +0x10,0x10,0x13,0x1f,0x1d,0x1d,0x13,0xd8,0x13,0x01,0x13,0x10,0x00,0x36,0x0f,0x1b,0x95,0x24,0x13,0x16,0x95,0x2c,0x29,0x10,0x1f,0x0f,0x35,0x2f,0x32,0x95,0x0d,0x94,0x06,0x01,0x06,0x07,0x07,0x10,0x0a,0x02,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x5d,0x10,0xed,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0xdc,0xed,0x3f,0xc4, +0x01,0x2f,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22, +0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51, +0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x28,0xfe,0x25, +0x05,0xa2,0x04,0x18,0x00,0x39,0x00,0x88,0x40,0x48,0x0c,0x0d,0x38,0x39,0x02,0x00,0x00,0x84,0x39,0x0b,0x14,0x39,0x39,0x0b,0x39,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13,0x3b,0x23,0x25,0x84,0x20,0x2f,0x32,0x32,0x84,0x13,0x16,0x14,0x13,0x13,0x16,0x22,0x20,0x20,0x16,0x16,0x13,0x00,0x39,0x0f,0x1e,0x95,0x27,0x16,0x19,0x95,0x2c, +0x2f,0x2c,0x22,0x22,0x2c,0x10,0x38,0x32,0x35,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x2f,0x11,0x33,0x10,0xed,0x32,0xdc,0xed,0x3f,0xc4,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x11,0x12,0x39,0x2f,0x33,0x2f, +0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x15,0x14, +0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x05,0xa2,0xc3,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x85,0x4a,0x30,0x9f,0x08,0x81,0x03,0x2c,0x0e,0x12,0xbe,0x4d,0x2c,0x90,0x08,0xa3,0x04,0x29,0x0d,0x13,0xbd,0x51,0x23,0x96,0x08,0x81,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0x53,0x52,0x5f,0x09,0x1d,0xfe, +0xa9,0x01,0x4e,0x18,0x0e,0x61,0x59,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x5e,0x0e,0x0f,0x2b,0x05,0x34,0x15,0x96,0x21,0x22,0x15,0x0e,0x28,0x05,0x31,0x15,0xaa,0x26,0x26,0xfd,0xa2,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x01,0x00,0x59,0xff,0xa7,0x06,0xbc,0x05,0xec,0x00,0x3b,0x00,0xc6,0x40,0x6e,0x96,0x07,0x01,0x31,0x84,0x30, +0x30,0x19,0x2a,0x2b,0x2c,0x18,0x2c,0x16,0x37,0x36,0x35,0x17,0x35,0x17,0x17,0x84,0x18,0x2c,0x14,0x18,0x18,0x2c,0x57,0x2c,0x01,0x2c,0x18,0x22,0x24,0x24,0x84,0x1f,0x21,0x14,0x1f,0x21,0x38,0x21,0x01,0x09,0x21,0x01,0x21,0x6f,0x1f,0x01,0x1f,0x18,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x28,0x10,0x01, +0x10,0x20,0x0d,0x50,0x0d,0x02,0x0d,0x18,0x16,0x10,0x13,0x95,0x37,0x35,0x2c,0x01,0x3a,0x10,0x31,0x30,0x00,0x22,0x21,0x0f,0x2a,0x24,0x27,0x95,0x1f,0x19,0x1c,0x16,0x0d,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33,0x2f,0x33,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xc4,0x3f,0xc4,0x3f,0x33,0x33,0x33,0x33,0xed, +0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x10,0xdc,0x5d,0x32,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x5d,0x01,0x14, +0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x06,0xbc,0x08,0x81,0x04,0x15, +0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0e,0x12,0x01,0xa7,0x98,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e, +0x0f,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0f,0x0e,0x35,0x05,0x72,0x02,0xc3,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x59,0xff,0xa7,0x04,0x4c,0x05,0xec,0x00,0x26,0x00,0x7d,0x40,0x45,0x07,0x06,0x06,0x02,0x00,0x00,0x84,0x26,0x25,0x14, +0x26,0x26,0x25,0x18,0x26,0x01,0x26,0x0a,0x25,0x25,0x10,0x28,0x1c,0x1f,0x1f,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x18,0x84,0x17,0x17,0x13,0x08,0x13,0x28,0x13,0x38,0x13,0x03,0x13,0x1f,0x10,0x01,0x10,0x1c,0x13,0x00,0x26,0x0f,0x17,0x00,0x25,0x1f,0x22,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x33,0x33, +0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x3f,0x3f,0xc4,0x33,0x33,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0xed,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22, +0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4c,0xb2,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0xfe,0x86,0x4a,0x30,0x9f,0x08,0x97,0x14,0x01,0x14,0xa4,0x14,0x01,0x14,0x9c,0x03,0x33,0x13,0x13,0x01,0xa8,0xa5,0x04,0x00,0xfc,0xb4,0x18,0x04,0x17,0x0f, +0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x26,0x26,0x02,0xc5,0x5e,0x53,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x5b,0x5f,0xfd,0x18,0x0e,0x0f,0x35,0x05,0x72,0x03,0x17,0x00,0x00,0x02,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x27,0x00,0x39,0x00,0xab,0x40,0x64,0x86,0x0e,0x01,0x75,0x0e,0x01,0x88,0x04,0x01,0x03,0x01,0x01, +0x84,0x39,0x37,0x14,0x39,0x39,0x37,0x18,0x39,0x01,0x09,0x39,0x01,0x39,0x37,0x12,0x13,0x13,0x37,0x37,0x18,0x3b,0x23,0x0a,0x2d,0x2f,0x2f,0x84,0x18,0x1b,0x14,0x18,0x18,0x1b,0x20,0x1f,0x1f,0x1b,0x09,0x1b,0x01,0x1b,0x1f,0x18,0x3f,0x18,0x02,0x18,0x39,0x2d,0x2a,0x95,0x26,0x1f,0x1b,0x20,0x20,0x23,0x01,0x26,0x10,0x5a,0x13,0x6a, +0x13,0x9a,0x13,0x03,0x13,0x15,0x12,0x12,0x10,0x95,0x15,0x1c,0x37,0x2f,0x32,0x95,0x18,0x0a,0x79,0x03,0x01,0x03,0x08,0x16,0x00,0x3f,0x33,0x5d,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d, +0x10,0xc4,0x01,0x33,0x32,0x11,0x12,0x39,0x18,0x2f,0x33,0x2f,0x33,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16, +0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x04,0x25,0x08,0x6c,0x1f,0xae,0xfe,0x8a,0x53,0x21,0x08,0x0b,0x02,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x9f,0xa7,0x33,0x0d,0x13, +0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfe,0x03,0x94,0x2c,0x5f,0x15,0x01,0x18,0x08,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x25,0x3f,0x6b,0x15,0xc0,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0x20, +0x0f,0x00,0x00,0x01,0x00,0x5b,0xfe,0x25,0x06,0xea,0x05,0xec,0x00,0x42,0x00,0xb9,0x40,0x64,0x31,0x33,0x33,0x84,0x2f,0x30,0x14,0x2f,0x2f,0x30,0x30,0x2f,0x26,0x29,0x29,0x84,0x1a,0x1d,0x14,0x1a,0x1a,0x1d,0x22,0x21,0x21,0x1d,0x1d,0x5f,0x1a,0x8f,0x1a,0x02,0x1a,0x2f,0x40,0x84,0x3f,0x3f,0x0e,0x0f,0x39,0x3a,0x3b,0x04,0x01,0x01, +0x84,0x3b,0x0d,0x14,0x3b,0x3b,0x0d,0x68,0x3b,0x01,0x3b,0x0d,0x08,0x84,0x09,0x09,0x60,0x0d,0x01,0x0d,0x14,0x2f,0x3f,0x00,0x26,0x21,0x1d,0x22,0x22,0x3b,0x31,0x01,0x30,0x0f,0x39,0x33,0x36,0x95,0x12,0x2f,0x29,0x2c,0x95,0x1a,0x14,0x17,0x17,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x2f,0x33,0x33, +0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x3f,0x33,0xc4,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x01,0x2f,0x33,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x01,0x33,0x18,0x2f,0xed,0x10,0xcc,0x5d,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33, +0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x33,0x03,0x06,0x15,0x14,0x33, +0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x06,0xea,0x13,0xb2,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x14,0x05,0xfe,0x83,0x4a,0x2a,0x84,0x17,0xfe,0x71,0x4b,0x29,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0xa7,0xac,0x03,0x33,0x0d,0x13,0x01,0xa9,0x96,0x14,0x01,0x14, +0xa4,0x14,0x01,0x04,0x66,0x5f,0x5b,0xfc,0xa7,0x52,0x5f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x61,0x59,0x14,0x6b,0x15,0x85,0x70,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x72,0x02,0xc3,0x5e,0x53,0x14, +0x12,0x01,0x69,0xfe,0x97,0x12,0x00,0x03,0x00,0x5b,0xfe,0x25,0x06,0xbe,0x04,0x58,0x00,0x32,0x00,0x3e,0x00,0x50,0x01,0x06,0x40,0x94,0x25,0x2e,0x01,0x06,0x2e,0x16,0x2e,0x02,0x2e,0x38,0x18,0x4d,0x4e,0x4f,0x50,0x17,0x50,0x0d,0x38,0x0e,0x38,0x0e,0x0e,0x84,0x17,0x50,0x14,0x17,0x17,0x50,0x50,0x17,0x16,0x29,0x26,0x29,0x02,0x07, +0x29,0x01,0x29,0x44,0x46,0x46,0x84,0x1e,0x21,0x14,0x1e,0x1e,0x21,0x26,0x25,0x25,0x21,0x21,0x1e,0x17,0x12,0x84,0x13,0x13,0x17,0x09,0x08,0x08,0x04,0x3b,0x3c,0x3d,0x3e,0x04,0x01,0x01,0x84,0x3e,0x0c,0x14,0x3e,0x3e,0x0c,0x3e,0x20,0x0c,0x50,0x0c,0x02,0x0c,0x17,0x50,0x44,0x41,0x95,0x2c,0x3e,0x38,0x35,0x95,0x2e,0x01,0x31,0x31, +0x2c,0x25,0x21,0x26,0x26,0x29,0x2c,0x10,0x4d,0x46,0x39,0x49,0x95,0x1b,0x7b,0x3b,0x01,0x3b,0xa9,0x0c,0x01,0x9a,0x0c,0x01,0x7b,0x0c,0x8b,0x0c,0x02,0x0c,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x1e,0x18,0x17,0x0e,0x0d,0x1b,0x16,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x5d,0x33,0x5d,0x5d,0x5d,0x33, +0x5d,0x10,0xed,0x32,0x32,0x32,0x3f,0x33,0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x32,0x01,0x2f,0xcd,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0xc4,0x05,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4, +0x01,0x32,0x5d,0x5d,0x11,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x10,0x87,0x0e,0xc4,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36, +0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x07,0x34,0x23,0x22,0x07,0x05,0x03,0x25,0x36,0x37,0x13,0x36,0x25,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x36,0x06,0xbe,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfd,0xf4,0x03,0x01,0x0c,0xa4, +0x0c,0x01,0x17,0xfe,0x81,0x50,0x24,0x9f,0x08,0x83,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7e,0x4b,0x29,0x85,0x16,0x01,0x8a,0x4e,0x26,0x9f,0xa7,0x33,0x0e,0x12,0xfe,0x58,0x8c,0x01,0xd5,0x36,0x0b,0x6e,0x03,0xfd,0x67,0x33,0x0d,0x13,0xfe,0x57,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x6e,0x03,0x03,0x64,0x26,0x26,0xfd, +0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21,0x3a,0x77,0x29,0x1c,0x09,0x1d,0xfe,0xa9,0x01,0x39,0x1a,0x21,0x5d,0x6b,0x65,0x15,0xb4,0x27,0x25,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0x7f,0x6a,0x15,0xc0,0x35,0x05,0x73,0xfd,0x58,0x6d,0x0d,0x34,0x02,0x20,0x0f,0x0e,0x35,0x05,0x72,0xfd,0xae,0x0e,0x0f, +0x35,0x05,0x63,0x0e,0x33,0x02,0x20,0x0f,0x00,0x01,0x00,0x71,0xfe,0x25,0x04,0x75,0x05,0xec,0x00,0x39,0x00,0xb1,0x40,0x63,0x30,0x84,0x2f,0x2f,0x2b,0x21,0x1e,0x84,0x22,0x2f,0x25,0x01,0x25,0x25,0x2b,0x03,0x00,0x84,0x04,0x7f,0x07,0x01,0x07,0x07,0x34,0x2a,0x19,0x18,0x17,0x2b,0x17,0x0d,0x0c,0x35,0x34,0x0e,0x34,0x0e,0x0e,0x84, +0x17,0x2b,0x14,0x17,0x17,0x2b,0x89,0x2b,0x01,0xf8,0x2b,0x01,0x99,0x2b,0x01,0x85,0x2b,0x01,0x66,0x2b,0x01,0x08,0x2b,0x01,0x2b,0x17,0x12,0x84,0x13,0x13,0x17,0x2a,0x35,0x38,0x27,0x95,0x0c,0x19,0x09,0x1c,0x1c,0x03,0x09,0x95,0x38,0x34,0x2b,0x38,0x22,0x22,0x38,0x10,0x2f,0x00,0x0e,0x17,0x15,0x13,0x1b,0x00,0x3f,0x3f,0x33,0x3f, +0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xfd,0xcc,0x32,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x5d,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0x33,0xed, +0x32,0x11,0x33,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x37,0x33,0x07,0x06,0x15,0x14,0x33,0x32,0x37,0x37,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x37,0x36,0x33, +0x32,0x04,0x75,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xad,0x9f,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x13,0x92,0x9b,0x44,0x30,0x9f,0x08,0x0d,0xa8,0x13,0x03,0x33,0x10,0x10,0xd0,0x15,0x01,0x14,0xa4,0x14,0x01,0x0a,0x78,0x44,0x30,0x9f,0x03,0x64,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x36,0xfd,0x01,0x52,0x5f,0x09,0x1d,0xfe,0xa9, +0x01,0x4d,0x19,0x0e,0x5d,0x5d,0x02,0xc9,0x30,0x15,0xb4,0x24,0x28,0x41,0x64,0x10,0x0d,0x35,0x05,0x41,0x67,0x4e,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x44,0x44,0x25,0x15,0x00,0x01,0x00,0x28,0xff,0xa7,0x04,0x25,0x04,0x18,0x00,0x21,0x00,0x84,0x40,0x4a,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10, +0x0d,0x0d,0x18,0x23,0x1b,0x1a,0x1a,0x19,0x16,0x1d,0x1c,0x17,0x1c,0x17,0x17,0x84,0x18,0x19,0x14,0x18,0x19,0x88,0x19,0x01,0x79,0x19,0x01,0x18,0x19,0x01,0x19,0x1f,0x18,0x3f,0x18,0x02,0x18,0x16,0x10,0x13,0x95,0x1d,0x01,0x20,0x10,0x19,0x95,0x1c,0x0f,0x0d,0x96,0x08,0x01,0x08,0x04,0x09,0x09,0x17,0x18,0x15,0x00,0x3f,0xc4,0x33, +0x2f,0x33,0x33,0x5d,0x33,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x5d,0x5d,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26, +0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0xa6,0xab,0xbe,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46, +0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72,0xfc,0xea,0x03,0x75,0x8b,0x67,0x6a,0x15,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x21,0x00,0x7e,0x40,0x45,0x20,0x0d,0x0c,0x0b,0x00,0x02,0x02,0x84,0x0b,0x21,0x14,0x0b,0x0b,0x21,0xa8,0x21,0x01,0x21,0x0b,0x06,0x84,0x07,0x07,0x0b,0x0b,0x13, +0x23,0x18,0x1a,0x1a,0x84,0x13,0x15,0x14,0x13,0x13,0x15,0x17,0x16,0x16,0x15,0xa9,0x15,0xb9,0x15,0x02,0x15,0x1f,0x13,0x01,0x13,0x00,0x21,0x15,0x95,0x18,0x0f,0x20,0x1a,0x1d,0x95,0x13,0x0d,0x0b,0x02,0x10,0x16,0x07,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33, +0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x31,0x30,0x01,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33, +0x32,0x37,0x25,0x13,0x04,0x4e,0xc5,0x11,0x01,0x0c,0xa4,0x0c,0x01,0x10,0x06,0xfe,0x84,0x48,0x2c,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x53,0x51,0x60,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x19,0x0e,0x73,0x47,0x19,0x70,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e,0x0f,0x35, +0x05,0x73,0x03,0x16,0x00,0x01,0x00,0x5b,0xfe,0x1f,0x04,0x4e,0x04,0x00,0x00,0x2c,0x00,0x8e,0x40,0x52,0x75,0x12,0x85,0x12,0x02,0x85,0x11,0x01,0x76,0x11,0x01,0x98,0x0c,0x01,0x95,0x08,0x01,0x95,0x07,0x01,0x2b,0x1a,0x02,0x00,0x00,0x84,0x2c,0x1a,0x14,0x2c,0x2c,0x1a,0x2c,0x1a,0x06,0x84,0x17,0x17,0x1a,0x1a,0x20,0x2e,0x23,0x25, +0x25,0x84,0x20,0x22,0x14,0x20,0x20,0x22,0x22,0x20,0x0f,0x84,0x0e,0x0e,0x1f,0x20,0x01,0x20,0x00,0x2c,0x23,0x22,0x0f,0x2b,0x25,0x28,0x95,0x0e,0x0f,0x20,0x1a,0x02,0x1d,0x16,0x13,0x95,0x0a,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x33,0x33,0xce,0x32,0xed,0x32,0x32,0x3f,0xc4,0xd4,0xc4,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x87,0x10, +0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x26,0x35,0x05,0x06,0x23,0x22,0x35, +0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x04,0x4e,0xb8,0x02,0x1a,0x9f,0x77,0xb5,0x9a,0x6f,0x61,0x12,0x9d,0x08,0x41,0x4c,0x67,0x5d,0x4a,0x61,0x19,0xfe,0x7f,0x48,0x2c,0x9f,0x08,0xa8,0xa8,0xae,0x03,0x33,0x0d,0x13,0x01,0xad,0xa6,0x04,0x00,0xfc,0x95,0x0a,0x0c,0x32,0xb0,0x43,0xae,0x51,0x3c,0x60,0x54, +0x6c,0x19,0x39,0x36,0x40,0x23,0x2f,0x5b,0x2d,0x9f,0x4a,0x70,0x15,0xb4,0x26,0x26,0x03,0x19,0xfc,0xc4,0x0e,0x0f,0x35,0x05,0x73,0x03,0x16,0x00,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0x25,0x05,0xec,0x00,0x33,0x00,0x97,0x40,0x52,0x96,0x07,0x01,0x09,0x08,0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x21, +0x35,0x29,0x84,0x28,0x28,0x24,0x17,0x16,0x2f,0x2e,0x2d,0x18,0x2d,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0xe6,0x24,0x01,0xd7,0x24,0x01,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x1f,0x21,0x3f,0x21,0x02,0x21,0x16,0x10,0x13,0x95,0x2f,0x2d,0x24,0x01,0x32,0x10,0x28,0x00,0x0d,0x08,0x04,0x09,0x09,0x18,0x21,0x15,0x1d,0x1b,0x00,0x3f, +0x3f,0x33,0x33,0x2f,0x33,0x33,0x33,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x11,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x31,0x30, +0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07, +0x86,0x03,0x33,0x0d,0x13,0xfe,0x54,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1b,0x22,0x02,0x86,0x0e,0x0f,0x35,0x05,0x73,0xfd,0x3e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4b,0x18, +0x11,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x25,0x04,0x58,0x00,0x34,0x00,0xa5,0x40,0x5f,0x9a,0x23,0x01,0x76,0x1b,0x86,0x1b,0x02,0x95,0x07,0x01,0x77,0x07,0x87,0x07,0x02,0x1f,0x20,0x20,0x50,0x20,0x60,0x20,0x03,0x20,0x20,0x09,0x08, +0x08,0x04,0x01,0x01,0x84,0x10,0x0d,0x14,0x10,0x10,0x0d,0x10,0x0d,0x0d,0x25,0x36,0x2d,0x2c,0x2c,0x28,0x30,0x16,0x18,0x18,0x84,0x25,0x28,0x14,0x25,0x28,0x28,0x1f,0x25,0x01,0x25,0x2c,0x28,0x2d,0x2d,0x16,0x10,0x13,0x95,0x30,0x01,0x33,0x10,0x9a,0x20,0x01,0x20,0x22,0x1f,0x1f,0x1d,0x95,0x22,0x1c,0x08,0x09,0x09,0x25,0x18,0x0d, +0x04,0x0a,0x15,0x00,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x11,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x32,0x2f,0x5d, +0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x04,0x25,0x08,0x81, +0x04,0x15,0x63,0x53,0x90,0x3f,0x0a,0x83,0x03,0x33,0x0d,0x13,0xfe,0x57,0x7a,0x23,0x5a,0x53,0xb6,0xcd,0xb2,0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x83,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x9f,0x03,0x64,0x26,0x26,0xfd,0x9c,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x0c,0x31,0x02,0x86,0x0f,0x0e,0x35,0x05,0x72, +0xfd,0xba,0xa7,0x61,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x85,0x9a,0x02,0x64,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x00,0x00,0x02,0x00,0x59,0xff,0xe7,0x06,0xbc,0x05,0xec,0x00,0x2a,0x00,0x36,0x00,0xb6,0x40,0x64,0x20,0x84,0x1f,0x1f,0x1b,0x1a,0x2b,0x36,0x0f,0x0e,0x1b,0x0e,0x0c,0x26,0x25,0x24,0x0d,0x24, +0x0d,0x0d,0x84,0x0e,0x1b,0x14,0x0e,0x0e,0x1b,0x88,0x1b,0x01,0x79,0x1b,0x01,0x1b,0x0e,0x2d,0x30,0x30,0x84,0x15,0x18,0x14,0x15,0x18,0x78,0x18,0x01,0x69,0x18,0x01,0x08,0x18,0x01,0x18,0x15,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x04,0x0e,0x2d,0x2b,0x95,0x24,0x1b,0x18,0x1a,0x1a,0x0c,0x06,0x09,0x95,0x26, +0x01,0x29,0x10,0x1f,0x00,0x36,0x30,0x33,0x95,0x15,0x0f,0x12,0x16,0x03,0x04,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0xd4,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, +0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x10,0x87,0xc4,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x31,0x30,0x01,0x14,0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x36,0x35,0x34, +0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x05,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x06,0xbc,0x08,0xa5,0xa7,0xaa,0x03,0x33,0x0d,0x13,0xfe,0x54,0xa8,0xa6,0x16,0xfe,0x8e,0x4a,0x2a,0x9f,0x08,0x69,0x20,0xad,0x02,0x0b,0x03,0x01,0x14,0xa4,0x14,0x01,0x14,0x03,0x01,0x77,0x4a,0x2a,0x9f, +0xfc,0xd0,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0e,0x12,0x01,0xa7,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x65,0x69,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0x23,0x22,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x35,0x85,0x14,0x6b,0x15,0x87,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05, +0x72,0x00,0x00,0x01,0x00,0x3f,0xfe,0x25,0x06,0xc0,0x04,0x58,0x00,0x35,0x00,0xae,0x40,0x61,0x29,0x28,0x28,0x24,0x15,0x2c,0x01,0x06,0x2c,0x01,0x2c,0x16,0x18,0x18,0x84,0x21,0x24,0x14,0x21,0x21,0x24,0x24,0x21,0x1c,0x84,0x1d,0x1d,0x5f,0x21,0x01,0x21,0x0e,0x06,0x31,0x16,0x31,0x02,0x31,0x0d,0x0c,0x0c,0x84,0x10,0x0e,0x14,0x10, +0x10,0x0e,0x10,0x0e,0x03,0x01,0x01,0x84,0x06,0x04,0x14,0x06,0x06,0x04,0x06,0x50,0x04,0x80,0x04,0x02,0x04,0x0e,0x0c,0x06,0x09,0x95,0x31,0x01,0x34,0x34,0x2f,0x28,0x24,0x29,0x29,0x16,0x10,0x13,0x95,0x2c,0x2f,0x10,0x1d,0x1b,0x03,0x04,0x21,0x18,0x0d,0x0e,0x15,0x00,0x3f,0xc4,0x33,0x33,0xd4,0xc4,0x3f,0x3f,0x33,0xed,0x32,0x32, +0x33,0x2f,0x33,0x33,0x11,0x33,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x33,0x5d,0x18,0x10,0xcc,0x5d,0x32,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x5d,0x5d,0x11,0x33,0x18,0x2f,0x33,0x31,0x30,0x01,0x14, +0x07,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x17,0x25,0x36,0x33,0x32,0x06,0xc0,0x08,0xa5,0xa3,0xa6,0x03,0x33,0x0d,0x13,0xfe,0x56, +0xa5,0xa3,0xa7,0x03,0x33,0x0d,0x13,0xfe,0x57,0x87,0x18,0x01,0x14,0xa4,0x14,0x01,0x14,0x93,0x05,0x15,0x63,0x53,0x90,0x37,0x06,0x01,0x7f,0x4b,0x29,0x84,0x17,0x01,0x8c,0x4a,0x2a,0x9f,0x03,0x64,0x26,0x26,0xfc,0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfc,0xeb,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x72,0xfd,0x80,0x72,0x2d,0x37,0x14, +0xfe,0x79,0x01,0x87,0x14,0x34,0x45,0x5e,0x02,0xb4,0x18,0x04,0x17,0x0f,0x46,0x85,0x5c,0x23,0x41,0x6b,0x15,0x86,0x71,0x15,0x00,0x01,0x00,0x21,0xfe,0x1f,0x04,0x80,0x04,0x18,0x00,0x44,0x00,0xd9,0x40,0x84,0x97,0x44,0x01,0x7a,0x2c,0x01,0x69,0x2c,0x01,0x9a,0x28,0x01,0x96,0x24,0x01,0x77,0x24,0x87,0x24,0x02,0x46,0x17,0x56,0x17, +0x02,0x85,0x13,0x01,0x36,0x28,0x01,0x01,0x00,0x00,0x42,0x84,0x04,0x3d,0x84,0x09,0x09,0x04,0x04,0x15,0x83,0x2a,0x2a,0x33,0x46,0x36,0x35,0x35,0x34,0x0f,0x0e,0x38,0x37,0x32,0x67,0x32,0x77,0x32,0x02,0x37,0x32,0x32,0x84,0x33,0x34,0x14,0x33,0x33,0x34,0x47,0x34,0x77,0x34,0x97,0x34,0x03,0x34,0x33,0x20,0x22,0x84,0x1f,0x1d,0x1d, +0x4f,0x33,0x5f,0x33,0x02,0x33,0x20,0x1f,0x0f,0x11,0x32,0x33,0x33,0x26,0x2e,0x95,0x00,0x01,0x09,0x01,0x19,0x01,0x29,0x01,0x03,0x11,0x01,0x11,0x01,0x26,0x0e,0x0b,0x95,0x38,0x3b,0x10,0x34,0x95,0x37,0x0f,0x26,0x95,0x19,0x1c,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0xed,0x11,0x39, +0x2f,0xc4,0x12,0x39,0xce,0x32,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x87,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, +0x07,0x27,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x36,0x33,0x32,0x17,0x16,0x15,0x10,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x06,0x07,0x23,0x13,0x23,0x37,0x21,0x07,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x07, +0x06,0x15,0x14,0x17,0x04,0x80,0x53,0x90,0x3f,0x0a,0x13,0x03,0x33,0x0d,0x13,0xfe,0x57,0x5e,0x81,0xca,0xcd,0x74,0x62,0xb8,0x9a,0xf1,0xc7,0x78,0x6f,0x3b,0x90,0x24,0x4b,0x52,0x87,0x8e,0x6b,0x87,0x40,0x4e,0x8c,0x64,0x5f,0x70,0x2d,0xab,0xa8,0xc7,0x1d,0x01,0x6e,0x16,0x01,0x75,0x4a,0x2a,0x9f,0x08,0x11,0x04,0x15,0x02,0x47,0x85, +0x5c,0x28,0x4d,0x06,0x37,0x6b,0x10,0x0d,0x35,0x05,0x72,0xfe,0x3f,0x4a,0x7b,0x69,0x8f,0xfe,0xf2,0x8a,0x75,0x50,0x4b,0x71,0x53,0x52,0x37,0x38,0x27,0x3c,0x29,0x2c,0x52,0x69,0xc4,0x56,0x43,0x54,0x2a,0x31,0x56,0x03,0x11,0x8b,0x67,0x6a,0x15,0xb4,0x28,0x24,0x49,0x11,0x0b,0x17,0x0f,0x00,0x00,0x01,0x00,0x42,0xfe,0x1f,0x04,0x2e, +0x04,0x58,0x00,0x30,0x00,0xbb,0x40,0x6b,0x18,0x25,0x01,0x99,0x2c,0x01,0x88,0x2c,0x01,0x9a,0x0f,0x01,0x77,0x0a,0x87,0x0a,0x02,0x2e,0x2d,0x2d,0x29,0x0e,0x0f,0x0f,0x04,0x01,0x01,0x84,0x29,0x26,0x14,0x29,0x29,0x26,0x18,0x29,0x01,0x09,0x29,0x01,0x29,0x26,0x26,0x14,0x32,0x1c,0x1b,0x1b,0x17,0x21,0x22,0x23,0x24,0x06,0x20,0x20, +0x06,0x06,0x84,0x14,0x17,0x14,0x14,0x17,0x17,0x1f,0x14,0x01,0x14,0x2d,0x2e,0x2e,0x1b,0x1c,0x1c,0x29,0x20,0x17,0x01,0x1d,0x0f,0x7a,0x0f,0x01,0x5b,0x0f,0x6b,0x0f,0x02,0x0f,0x11,0x0e,0x0e,0x0c,0x95,0x11,0x1c,0x26,0x24,0x95,0x14,0x79,0x04,0x01,0x04,0x06,0x16,0x00,0x3f,0x33,0x5d,0x33,0xed,0x32,0x3f,0xed,0x32,0x2f,0x12,0x39, +0x5d,0x5d,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x01,0x2f,0x5d,0x33,0x87,0x2b,0x7d,0x10,0xc4,0x87,0xc4,0x0e,0xc4,0xc4,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x5d,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x32,0x18,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x01, +0x5d,0x01,0x14,0x07,0x03,0x06,0x07,0x05,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x07,0x06,0x23,0x20,0x11,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x07,0x25,0x36,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x04,0x2e,0x06,0x73,0x1f,0xae,0xfd,0xfe,0x01,0x5a,0x53,0xb6,0xcd,0xb2, +0x23,0xb1,0xbd,0xfe,0x0c,0x21,0x84,0x03,0x15,0x63,0x53,0x90,0x3f,0x07,0x85,0x0c,0x07,0x01,0xdb,0x37,0x0a,0x70,0x03,0x15,0x63,0x53,0x90,0x3f,0x03,0x87,0x20,0x1d,0xfd,0xdc,0x95,0x2b,0x7f,0x12,0x0d,0x9e,0x44,0x3f,0x4c,0xa3,0x31,0x01,0xa9,0x86,0x99,0x02,0x64,0x10,0x0c,0x17,0x0f,0x46,0x85,0x5c,0x28,0x4d,0x1c,0x21,0xfd,0x86, +0x38,0x2d,0x7a,0x0e,0x33,0x02,0x25,0x0f,0x0d,0x17,0x0f,0x46,0x85,0x5c,0x28,0x00,0x00,0x02,0xff,0x8a,0xfe,0x25,0x04,0x5a,0x04,0xb5,0x00,0x15,0x00,0x18,0x00,0x95,0x40,0x5d,0x27,0x01,0x01,0x06,0x05,0x18,0x16,0x08,0x17,0x02,0x09,0x16,0x08,0x0a,0x03,0x04,0x00,0x05,0x0a,0x03,0x01,0x00,0x05,0x17,0x02,0x16,0x05,0x00,0x05,0x84, +0x08,0x16,0x14,0x08,0x08,0x16,0x17,0x03,0x0a,0x03,0x84,0x02,0x17,0x14,0x02,0x02,0x17,0x00,0x00,0x0f,0x02,0x4f,0x02,0x6f,0x02,0x7f,0x02,0xbf,0x02,0x05,0x02,0x02,0x08,0x1a,0x10,0x12,0x84,0x0f,0x0d,0x0d,0x0a,0x0a,0x07,0x0f,0x08,0x01,0x08,0x00,0x15,0x17,0x0a,0x16,0x95,0x10,0x15,0x0f,0x07,0x1b,0x08,0x05,0x03,0x02,0x15,0x00, +0x3f,0xc4,0x33,0x33,0x3f,0x3f,0xce,0xfd,0xc4,0xc4,0x12,0x39,0x01,0x2f,0x5d,0x33,0x33,0x2f,0x33,0x2f,0x33,0xed,0x32,0x11,0x12,0x39,0x2f,0x5d,0x33,0x2f,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x87,0x18,0x10,0x2b,0x87,0x7d,0xc4,0x0f,0x0f,0x0f,0x0f,0x11,0x01,0x33,0x31,0x30,0x5d,0x01,0x01,0x13,0x23,0x03,0x00,0x03,0x23,0x12,0x01,0x03, +0x23,0x22,0x37,0x36,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x05,0x21,0x17,0x04,0x5a,0xfe,0x68,0xe6,0xb5,0xa5,0xfe,0x8d,0x8e,0xc3,0xc9,0x01,0xb5,0xaa,0x86,0x96,0x06,0x02,0x1d,0xa7,0x1f,0x29,0x03,0x42,0xfe,0xf5,0xfe,0xc4,0x6b,0x03,0xd1,0xfe,0x24,0xfe,0x0b,0x01,0x67,0xfe,0x2f,0xfe,0x8f,0x01,0xcd,0x02,0x0d,0x01,0x75,0x94,0x2f, +0x7e,0x78,0x15,0x28,0x8c,0xea,0x00,0x01,0x00,0x31,0xff,0xa7,0x06,0xe6,0x04,0x58,0x00,0x37,0x00,0xb7,0x40,0x65,0x89,0x20,0x01,0x97,0x05,0x01,0x22,0x70,0x21,0x01,0x21,0x21,0x1d,0x25,0x19,0x1a,0x1a,0x84,0x1b,0x1d,0x14,0x1b,0x1d,0x89,0x1d,0x01,0x1d,0x1b,0x10,0x2b,0x2e,0x2e,0x84,0x10,0x13,0x14,0x10,0x10,0x13,0x13,0x10,0x07, +0x06,0x06,0x02,0x36,0x35,0x0a,0x02,0x00,0x00,0x84,0x37,0x0a,0x14,0x37,0x37,0x0a,0x37,0x20,0x0a,0x01,0x0a,0x10,0x00,0x37,0x0f,0x21,0x1d,0x22,0x22,0x19,0x13,0x16,0x95,0x2b,0x25,0x28,0x10,0x1a,0x1b,0x15,0x29,0x35,0x01,0x35,0x2e,0x31,0x95,0x0d,0x06,0x02,0x07,0x07,0x10,0x28,0x0a,0x01,0x0a,0x0d,0x16,0x00,0x3f,0x33,0x5d,0x33, +0x33,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x5d,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0x33,0x3f,0xc4,0x01,0x2f,0xcc,0x5d,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0x33,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xdc,0x32,0x5d,0x87,0x2b,0x7d,0x10,0xc4,0x01, +0x32,0x11,0x33,0x18,0x2f,0x5d,0x33,0x31,0x30,0x5d,0x5d,0x01,0x03,0x06,0x15,0x14,0x17,0x17,0x07,0x27,0x26,0x27,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x03,0x23,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x17,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25, +0x36,0x37,0x13,0x06,0xe6,0xb1,0x04,0x15,0x63,0x53,0x90,0x34,0x09,0xfe,0x7e,0x53,0x21,0x9f,0x08,0x7f,0x03,0x33,0x0e,0x13,0xfe,0x58,0xa6,0xab,0xb5,0x05,0x15,0x63,0x53,0x90,0x38,0x06,0x01,0x7d,0x4b,0x2a,0x9f,0x0a,0x7d,0x03,0x33,0x0d,0x13,0x01,0x77,0x37,0x0a,0x94,0x04,0x00,0xfc,0xb4,0x13,0x09,0x17,0x0f,0x46,0x85,0x5c,0x21, +0x3a,0x62,0x15,0xb4,0x26,0x26,0x02,0x54,0x0e,0x0f,0x35,0x05,0x72,0xfc,0xea,0x03,0x4b,0x17,0x05,0x17,0x0f,0x46,0x85,0x5c,0x24,0x40,0x6b,0x15,0xb4,0x1e,0x30,0xfd,0xae,0x0e,0x0f,0x35,0x05,0x63,0x0e,0x33,0x02,0xe5,0x00,0x01,0x00,0x2f,0xfe,0x25,0x04,0xbe,0x05,0xec,0x00,0x2d,0x00,0x77,0x40,0x40,0x00,0x01,0x37,0x29,0x97,0x29, +0x02,0x29,0x2b,0x84,0x06,0x04,0x04,0x15,0x2f,0x1d,0x84,0x1c,0x1c,0x18,0x22,0x23,0x0a,0x0b,0x0c,0x21,0x21,0x0c,0x0c,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x69,0x18,0x01,0x18,0x15,0x10,0x84,0x11,0x11,0x15,0x02,0x95,0x2d,0x0a,0x07,0x95,0x23,0x21,0x18,0x26,0x10,0x1c,0x00,0x0c,0x15,0x15,0x11,0x1b,0x00,0x3f,0x3f,0x33,0x3f,0x3f, +0x33,0x33,0x33,0xed,0x32,0xdc,0xed,0x01,0x2f,0x33,0x2f,0xed,0x11,0x33,0x5d,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xfd,0x32,0x5d,0xcc,0x32,0x31,0x30,0x01,0x07,0x23,0x22,0x27,0x27,0x26,0x23,0x22,0x07,0x05,0x03,0x06,0x15,0x14,0x17,0x13, +0x23,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x15,0x14,0x07,0x07,0x25,0x36,0x33,0x32,0x17,0x16,0x17,0x17,0x16,0x33,0x04,0xbe,0x1d,0xd3,0x60,0x22,0x38,0x0d,0x2a,0x10,0x10,0xfe,0xc5,0x9a,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x14,0xb8,0x13,0x01,0x14,0xa4,0x14,0x01,0x0f,0x03,0x01,0x04,0x42,0x32,0x4c, +0x27,0x19,0x17,0x32,0x08,0x19,0x02,0x7f,0x8b,0x87,0xde,0x34,0x05,0x63,0xfd,0x2e,0x62,0x4f,0x09,0x1d,0xfe,0xa9,0x01,0x4d,0x18,0x0f,0x5d,0x5d,0x03,0x59,0x58,0x59,0x14,0x12,0x01,0x69,0xfe,0x97,0x12,0x0b,0x3e,0x64,0x14,0x53,0x15,0x36,0x23,0x5a,0xc7,0x1f,0x00,0x01,0x00,0x35,0xff,0xe7,0x03,0xfe,0x04,0x00,0x00,0x1b,0x00,0x58, +0x40,0x35,0x89,0x0b,0x01,0x95,0x08,0x01,0x28,0x05,0x01,0x95,0x02,0x01,0x37,0x02,0x01,0x24,0x02,0x01,0x00,0x83,0x20,0x0d,0x01,0x0d,0x0d,0x1d,0x15,0x17,0x84,0x12,0x07,0x06,0x06,0x14,0x12,0x0f,0x95,0x1a,0x15,0x0f,0x08,0x06,0x18,0x06,0x02,0x06,0x04,0x07,0x07,0x09,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x2f,0x12,0x39,0x5d,0x3f, +0xde,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x10,0x07,0x06,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x36,0x35,0x34,0x23,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x33,0x21,0x20,0x03,0xfe,0x9c,0xa5,0xfe,0xe9,0xe9,0x88,0x65,0x81,0x9a,0xbf, +0x77,0x6b,0xbb,0xfe,0xc8,0x90,0x0e,0xa3,0x0a,0x29,0x01,0x2c,0x01,0x2f,0x02,0x41,0xfe,0xfe,0xa7,0xb1,0x8b,0x7f,0x7e,0x91,0x84,0xb5,0xde,0x94,0x1e,0x33,0x25,0x0c,0x28,0x00,0x00,0x01,0x00,0x46,0xfe,0x29,0x04,0x3c,0x05,0xec,0x00,0x33,0x00,0x94,0x40,0x4e,0x9a,0x1b,0x01,0x31,0x84,0x30,0x30,0x2c,0x2b,0x2a,0x0f,0x0e,0x0d,0x04, +0x01,0x01,0x84,0x2c,0x0d,0x14,0x2c,0x2c,0x0d,0x2c,0x0d,0x08,0x84,0x09,0x09,0x0d,0x0d,0x15,0x35,0x21,0x24,0x24,0x84,0x15,0x18,0x14,0x15,0x15,0x18,0x1d,0x1c,0x1c,0x18,0x08,0x18,0x01,0x18,0x1f,0x15,0x01,0x15,0x30,0x00,0x1c,0x1d,0x1d,0x2c,0x21,0x18,0x01,0x1e,0x0f,0x2a,0x24,0x27,0x95,0x15,0x0f,0x0d,0x04,0x12,0x16,0x09,0x1b, +0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0x33,0x33,0x33,0x33,0x2f,0x33,0x3f,0x01,0x2f,0x5d,0x33,0x5d,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x11,0x12,0x01,0x39,0x18,0x2f,0x33,0x2f,0xed,0x11,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x10,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x11,0x01,0x33,0x18,0x2f, +0xed,0x31,0x30,0x5d,0x01,0x14,0x07,0x03,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x37,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x35,0x34,0x27,0x27,0x37,0x17,0x16,0x15,0x14,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x13,0x36,0x35,0x34,0x27,0x03,0x33,0x13,0x16,0x04,0x3c,0x14,0xb8,0x13,0x01,0x10,0xa4, +0x10,0x01,0x14,0x03,0xfe,0x89,0x4a,0x2a,0x9f,0x08,0x81,0x04,0x15,0x63,0x53,0x90,0x3f,0x07,0x86,0x03,0x33,0x0d,0x13,0x01,0xac,0x97,0x15,0x01,0x0c,0xa4,0x0c,0x01,0x04,0x66,0x5d,0x5d,0xfc,0xa7,0x58,0x59,0x11,0x15,0xfe,0xad,0x01,0x53,0x15,0x08,0x35,0x85,0x14,0x6b,0x15,0xb4,0x26,0x26,0x02,0x64,0x13,0x09,0x17,0x0f,0x46,0x85, +0x5c,0x28,0x4d,0x1b,0x22,0xfd,0x7a,0x0e,0x0f,0x35,0x05,0x73,0x02,0xc2,0x62,0x4f,0x08,0x1e,0x01,0x69,0xfe,0x97,0x1e,0x00,0x00,0x01,0x00,0x28,0xfe,0x25,0x04,0x4e,0x04,0x00,0x00,0x27,0x00,0x6f,0x40,0x3c,0x02,0x00,0x00,0x84,0x27,0x25,0x14,0x27,0x27,0x25,0x27,0x25,0x0f,0x1c,0x1e,0x1e,0x84,0x17,0x19,0x14,0x17,0x17,0x19,0x1b, +0x1a,0x1a,0x19,0x19,0x17,0x0f,0x0b,0x84,0x0c,0x0c,0x06,0x08,0x84,0x11,0x0f,0x00,0x27,0x19,0x95,0x1c,0x0f,0x67,0x25,0x01,0x25,0x1e,0x21,0x95,0x17,0x11,0x06,0x02,0x14,0x16,0x0c,0x1b,0x00,0x3f,0x3f,0x33,0x33,0x33,0x33,0xed,0x32,0x32,0x5d,0x3f,0xed,0xd4,0xc4,0x01,0x2f,0x33,0xed,0x32,0x33,0x2f,0xed,0x10,0xcc,0x32,0x11,0x33, +0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xcd,0x32,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x31,0x30,0x01,0x03,0x06,0x07,0x06,0x07,0x07,0x06,0x15,0x14,0x17,0x13,0x23,0x03,0x26,0x35,0x34,0x37,0x07,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x23,0x37,0x21,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x13,0x04,0x4e,0x99, +0x14,0x42,0x27,0x50,0x7e,0x06,0x01,0x14,0xa4,0x14,0x01,0x01,0x53,0x4b,0x29,0x9f,0x08,0x8c,0xc7,0x1d,0x01,0x6e,0xae,0x03,0x33,0x0f,0x11,0x01,0x7b,0x37,0x0a,0x96,0x04,0x00,0xfd,0x26,0x5d,0x31,0x1c,0x16,0x23,0x28,0x24,0x37,0x14,0xfe,0x79,0x01,0x87,0x14,0x34,0x0d,0x12,0x17,0x15,0xb4,0x27,0x25,0x02,0x8e,0x8b,0xfc,0xc4,0x0e, +0x0f,0x35,0x05,0x6e,0x10,0x31,0x02,0xda,0x00,0x02,0x00,0x59,0xff,0xe7,0x07,0x24,0x06,0x04,0x00,0x35,0x00,0x43,0x00,0xcc,0x40,0x71,0x43,0x36,0x2e,0x2f,0x30,0x42,0x30,0x0e,0x0f,0x20,0x21,0x22,0x0d,0x86,0x22,0x01,0x65,0x22,0x01,0x0d,0x22,0x22,0x84,0x42,0x30,0x14,0x42,0x42,0x30,0x3a,0x30,0x01,0x08,0x30,0x18,0x30,0x02,0x30, +0x42,0x38,0x3b,0x3b,0x84,0x29,0x2c,0x14,0x29,0x2c,0x78,0x2c,0x01,0x6a,0x2c,0x01,0x08,0x2c,0x01,0x2c,0x29,0x42,0x03,0x00,0x84,0x07,0x17,0x15,0x15,0x84,0x1a,0x18,0x14,0x1a,0x1a,0x18,0x04,0x07,0x07,0x1a,0x1a,0x18,0x42,0x0d,0x09,0x95,0x30,0x34,0x01,0x42,0x3b,0x3e,0x95,0x29,0x22,0x26,0x16,0x17,0x18,0x15,0x38,0x36,0x95,0x2c, +0x2e,0x2e,0x20,0x1a,0x1d,0x95,0x15,0x0f,0x03,0x12,0x10,0x00,0x3f,0xce,0x33,0x33,0xed,0x32,0x32,0x33,0x2f,0x33,0xed,0x32,0x3f,0xc4,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0x33,0xed,0x32,0x01,0x2f,0xcc,0x32,0x11,0x33,0x2f,0x33,0x87,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x18,0x10,0xed,0x32,0x10,0xdc,0x32,0x5d,0x5d,0x5d,0x87,0x2b,0x7d, +0x10,0xc4,0x11,0x01,0x33,0x5d,0x5d,0x87,0x18,0x10,0x2b,0x7d,0x10,0xc4,0x01,0x5d,0x5d,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x10,0x87,0x0e,0xc4,0x05,0xc4,0xc4,0x0e,0xc4,0x31,0x30,0x01,0x14,0x07,0x07,0x23,0x37,0x36,0x35,0x34,0x23,0x22,0x07,0x05,0x06,0x07,0x03,0x25,0x36,0x33,0x32,0x15,0x14,0x07,0x03,0x23,0x13,0x36,0x35, +0x34,0x23,0x22,0x07,0x05,0x03,0x06,0x07,0x05,0x06,0x23,0x22,0x35,0x34,0x37,0x13,0x36,0x37,0x25,0x37,0x36,0x37,0x25,0x36,0x33,0x32,0x01,0x05,0x06,0x07,0x03,0x06,0x15,0x14,0x33,0x32,0x37,0x25,0x36,0x37,0x07,0x24,0x08,0x0e,0xa8,0x14,0x03,0x33,0x0d,0x13,0xfe,0x89,0x37,0x0a,0x40,0x01,0x77,0x4a,0x2a,0x9f,0x08,0xa5,0xa7,0xaa, +0x03,0x33,0x0d,0x13,0xfe,0x54,0x6c,0x20,0xae,0xfe,0x90,0x55,0x1f,0x9f,0x08,0x69,0x20,0xad,0x02,0x12,0x25,0x1e,0xaf,0x01,0x76,0x53,0x21,0x9f,0xfc,0x68,0xfe,0x23,0x37,0x0a,0x6b,0x03,0x33,0x0f,0x13,0x01,0x6f,0x35,0x0b,0x05,0x50,0x27,0x25,0x41,0x64,0x0f,0x0e,0x35,0x05,0x63,0x0e,0x33,0xfe,0xc8,0x6b,0x15,0xb4,0x26,0x26,0xfc, +0xe8,0x03,0x3b,0x0f,0x0e,0x35,0x05,0x73,0xfe,0x02,0x95,0x2b,0x5b,0x15,0xb4,0x27,0x25,0x01,0xeb,0x94,0x2c,0x86,0xb8,0x93,0x2d,0x5f,0x15,0xfd,0x8d,0x7e,0x0e,0x33,0xfd,0xf2,0x0f,0x0e,0x35,0x05,0x5f,0x0e,0x33,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x06,0x3a,0x05,0x9a,0x00,0x25,0x00,0x70,0x40,0x4b,0x98,0x21,0x01,0x98,0x20,0x01, +0x3a,0x20,0x01,0x29,0x20,0x01,0x94,0x1c,0x01,0x86,0x1c,0x01,0x25,0x1c,0x35,0x1c,0x02,0x87,0x1b,0x97,0x1b,0x02,0x48,0x14,0x01,0x49,0x13,0x01,0x45,0x0e,0x01,0x57,0x0e,0x01,0x07,0x7e,0x00,0x08,0x01,0x08,0x03,0x0c,0x25,0x7e,0x10,0x23,0x20,0x23,0x30,0x23,0x03,0x23,0x23,0x27,0x18,0x7e,0x16,0x24,0x18,0x03,0x1e,0x91,0x11,0x13, +0x03,0x91,0x0c,0x08,0x12,0x00,0x3f,0xde,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0x32,0xdc,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x06,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14, +0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x03,0x04,0x83,0x99,0x99,0x47,0x5a,0x1a,0x66,0x8e,0xb1,0x65,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x23,0x40,0x1f,0x03,0x9f,0x9d,0x83,0x83,0x53,0x5c,0x01,0x53,0x7c,0x53,0x29,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6, +0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x11,0x00,0x7a,0x40,0x51,0x37,0x10,0x01,0xa8,0x10,0xb8,0x10,0x02,0x56,0x10,0x01,0x45,0x10,0x01,0x58,0x0e,0x01,0x4a,0x0e,0x01,0x26,0x05,0x01,0x97,0x05,0xa7,0x05,0x02,0x34,0x05,0x01,0x26,0x05,0x01,0x99,0x03,0x01,0x3a,0x03,0x01, +0xc0,0x08,0x01,0x08,0x00,0x7e,0x9f,0x01,0x01,0x01,0x01,0x13,0x07,0x0a,0x7e,0x8f,0x0c,0x01,0x0c,0x01,0x01,0x0f,0x08,0x91,0xaf,0x0a,0x01,0x9f,0x0a,0xdf,0x0a,0x02,0x0a,0x0a,0x0b,0x04,0x91,0x0f,0x04,0x0b,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xfd, +0xc6,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfc,0x4b,0xa8,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfe,0xa8,0x98,0xfe,0x8e,0x03,0x6d, +0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x5e,0x00,0x00,0x05,0x70,0x05,0xb2,0x00,0x10,0x00,0x19,0x00,0x76,0x40,0x4f,0x26,0x16,0x01,0xa7,0x14,0x01,0x26,0x14,0x01,0x3a,0x12,0x4a,0x12,0x02,0x28,0x12,0x01,0xa8,0x11,0x01,0xa8,0x0d,0x01,0x55,0x0d,0x01,0x3a,0x0a,0x4a,0x0a,0x5a,0x0a,0x03,0x3b,0x06,0x4b,0x06,0x5b,0x06,0x03,0x00,0x00, +0x1b,0x0f,0x01,0x7d,0x18,0x04,0x04,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x0f,0x18,0x91,0x01,0xaf,0x04,0x01,0x9f,0x04,0xdf,0x04,0x02,0x04,0x04,0x03,0x13,0x91,0x0b,0x04,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x11,0x21,0x20,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x11,0x21,0x00,0x26,0x23,0x20,0x03,0x12,0x21,0x21,0x11,0x05,0x70,0xfe,0xfc,0xa8,0xfe,0x9d,0xfe,0xfd,0xff,0x00,0x01,0x19,0x01,0x03,0xe8,0x01,0x0a,0x01,0x04,0xfe,0x54,0xaf,0xa7,0xfe,0xa2,0x0a,0x0a, +0x01,0x63,0x01,0x51,0x01,0x72,0xfe,0x8e,0x01,0x72,0x01,0x2a,0xf0,0x01,0x04,0x01,0x22,0xfe,0xde,0xfe,0xfe,0x78,0x02,0x43,0xdb,0xfe,0x6a,0xfe,0x78,0x01,0x84,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x11,0x00,0x62,0x40,0x3e,0x96,0x0e,0x01,0x35,0x0e,0x01,0x26,0x0e,0x01,0x29,0x0c,0x01,0x98,0x0c,0x01,0x3a, +0x0c,0x01,0x29,0x0c,0x01,0x49,0x03,0x01,0x46,0x03,0x56,0x03,0x02,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x07,0x05,0x08,0x7e,0x0a,0x0a,0x13,0x10,0x7e,0x11,0x11,0x11,0x0d,0x0a,0x06,0x91,0x08,0x08,0x02,0x0a,0x12,0x0d,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xfd,0x32,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xf1,0xa8,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfe,0x9d,0x98,0xfe,0x8e,0x03,0x62,0x01,0xb9,0xfe,0x56, +0x47,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x07,0x05,0x9a,0x00,0x11,0x00,0x64,0x40,0x3e,0x99,0x0e,0x01,0x3a,0x0e,0x01,0x26,0x0c,0x01,0xa7,0x0c,0x01,0x95,0x0c,0x01,0x34,0x0c,0x01,0x26,0x0c,0x01,0x4a,0x03,0x01,0xa8,0x01,0x01,0x45,0x01,0x01,0x09,0x09,0x13,0x11,0x7e,0x9f,0x10,0x01,0x10,0x10,0x13,0x07,0x0a,0x7e,0x8f,0x04, +0x01,0x04,0x10,0x10,0x02,0x0a,0x91,0x08,0x08,0x02,0x05,0x03,0x0d,0x91,0x02,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x32,0x12,0x39,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x21,0x15,0x21,0x11, +0x10,0x21,0x20,0x11,0x35,0x33,0x04,0xd5,0xfd,0xec,0xfd,0xe9,0xa8,0x03,0xb5,0xfc,0x4b,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfe,0x8e,0x98,0xfe,0xa8,0xfe,0x47,0x01,0xaa,0x47,0x00,0x01,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x29,0x00,0x8e,0x40,0x5c,0x55,0x1c,0x01,0x27,0x19,0x01,0x84,0x18, +0x01,0x8c,0x14,0x01,0x99,0x13,0x01,0x24,0x0d,0x01,0x15,0x0d,0x01,0x69,0x09,0x79,0x09,0x02,0x1b,0x09,0x01,0x68,0x08,0x78,0x08,0x02,0x6a,0x04,0x7a,0x04,0x02,0x38,0x04,0x48,0x04,0x02,0x91,0x1d,0x01,0x83,0x1d,0x01,0x54,0x1d,0x01,0x1d,0x00,0x1b,0x7d,0x04,0x02,0x06,0x06,0x23,0x7d,0x24,0x24,0x02,0x2b,0x10,0x7d,0x11,0x11,0x00, +0x7e,0x0f,0x02,0x01,0x02,0x11,0x11,0x04,0x0b,0x91,0x16,0x04,0x1d,0x04,0x91,0x00,0x24,0x02,0x00,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x33,0x2f,0x12,0x39,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x21,0x15,0x23,0x11,0x21,0x24,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x01,0x0e,0xaa,0x01,0x99,0x02,0x6f,0x36,0x69,0x9b,0x66,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd8,0x83,0x88,0xdc,0x99,0x53, +0xfe,0x29,0xc5,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xc8,0x01,0x60,0xe6,0x01,0xbb,0x62,0xaf,0x84,0x4d,0x3e,0x6f,0x9b,0x5d,0x81,0xd3,0x96,0x52,0x5b,0xa3,0xe4,0x88,0xfe,0x3d,0xed,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x00,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x83,0x05,0x9a,0x00,0x13,0x00,0x2d,0x40,0x17,0x12,0x12, +0x06,0x7e,0x07,0x07,0x0d,0x15,0x10,0x13,0x7e,0x0d,0x12,0x91,0x10,0x10,0x0f,0x03,0x07,0x00,0x91,0x0d,0x12,0x00,0x3f,0xed,0xce,0x3f,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x25,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x01,0x64,0x01,0xb3,0x55, +0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0xca,0xa8,0x03,0x1f,0xfc,0xe1,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0x05,0x9a,0xfe,0x8e,0x98,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x07,0x05,0xb2,0x00,0x0f,0x00,0x44,0x40,0x29,0xa8,0x0e,0x01,0x45,0x0e,0x01,0x4a,0x0c,0x01,0x25,0x05,0x35,0x05,0x02,0x2a,0x03,0x3a,0x03, +0x02,0x08,0x08,0x11,0x0f,0x7e,0x01,0x01,0x11,0x07,0x7e,0x0b,0x01,0x01,0x0a,0x04,0x91,0x0d,0x04,0x07,0x91,0x0a,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x21,0x15,0x21,0x11,0x10,0x21,0x20,0x11, +0x04,0xd5,0xa8,0xfe,0x93,0xfe,0x92,0x03,0xb5,0xfb,0xa3,0x02,0x17,0x02,0x14,0x03,0x2a,0x47,0x01,0xaa,0xfe,0x47,0xfd,0x36,0x98,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x00,0x02,0x00,0xaa,0xff,0xe8,0x06,0x2b,0x05,0xb2,0x00,0x2c,0x00,0x3d,0x00,0xa0,0x40,0x6c,0x6a,0x3b,0x01,0x67,0x37,0x01,0x64,0x31,0x01,0x56,0x31,0x01,0x79,0x29, +0x01,0x78,0x28,0x01,0x99,0x24,0x01,0x88,0x24,0x01,0x7a,0x24,0x01,0x8a,0x23,0x9a,0x23,0x02,0x7b,0x23,0x01,0x86,0x1f,0x96,0x1f,0x02,0x75,0x1f,0x01,0x76,0x1e,0x01,0x46,0x14,0x01,0x49,0x10,0x01,0x97,0x08,0x01,0x86,0x07,0x96,0x07,0x02,0x25,0x07,0x35,0x07,0x02,0x16,0x07,0x01,0x98,0x03,0x01,0x2a,0x03,0x3a,0x03,0x02,0x1b,0x1a, +0x18,0x7e,0x2c,0x2e,0x2e,0x0c,0x3f,0x34,0x7e,0x26,0x0a,0x7e,0x0c,0x1b,0x2e,0x91,0x2c,0x18,0x18,0x39,0x05,0x91,0x12,0x04,0x39,0x91,0x21,0x21,0x0c,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x35,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x17,0x32,0x3e,0x02,0x04,0x7d,0x3a,0x6b,0x95,0x5b,0x5c,0x95,0x6b,0x3a,0xa8,0x4f,0x95,0xd5,0x86,0x85,0xd4,0x94,0x4f,0x01,0x06,0xfe,0xfa,0x35,0x63,0x90,0x5b,0x53,0x89,0x62,0x35,0x3c,0x6d,0x97,0x5c,0xb2,0xb2,0x36,0x58,0x3d,0x21,0x18,0x31,0x49,0x31,0x34,0x52,0x38,0x1d,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc, +0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x38,0x98,0xee,0x65,0xa0,0x6f,0x3c,0x3b,0x6a,0x92,0x56,0x5e,0x9d,0x70,0x3e,0xfe,0x7a,0xee,0x2a,0x49,0x64,0x3a,0x33,0x58,0x41,0x27,0x03,0x29,0x4b,0x67,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x70,0x05,0x9a,0x00,0x10,0x00,0x19,0x00,0x6e,0x40,0x48,0x3a,0x18,0x4a,0x18, +0x9a,0x18,0x03,0x28,0x18,0x01,0x96,0x16,0x01,0x34,0x16,0x44,0x16,0x02,0x26,0x16,0x01,0x96,0x14,0x01,0x34,0x14,0x44,0x14,0x02,0x26,0x14,0x01,0x59,0x09,0x01,0x55,0x04,0x01,0x00,0x00,0x1b,0x0f,0x01,0x7e,0x0c,0x9f,0x11,0x01,0x11,0x11,0x1b,0x15,0x7d,0x0f,0x08,0x1f,0x08,0x02,0x08,0x12,0x01,0x91,0x0f,0x0c,0x0c,0x05,0x0d,0x03, +0x17,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0xed,0x32,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x14,0x00,0x23,0x20,0x00,0x11,0x34,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x01,0x11,0x21,0x20,0x03,0x12,0x21, +0x32,0x36,0x05,0x70,0xfe,0xfc,0xfe,0xf6,0xe8,0xfe,0xfd,0xfe,0xe7,0x01,0x00,0x01,0x03,0x01,0x63,0xa8,0x01,0x04,0xfe,0x54,0xfe,0xaf,0xfe,0x9d,0x0a,0x0a,0x01,0x5e,0xa7,0xaf,0x03,0x90,0xfe,0x78,0xfe,0xfe,0xde,0x01,0x22,0x01,0x04,0xf0,0x01,0x2a,0x01,0x72,0xfe,0x8e,0xfd,0xe4,0x01,0x84,0xfe,0x78,0xfe,0x6a,0xdb,0x00,0x00,0x01, +0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x1b,0x00,0x5e,0x40,0x3c,0x9c,0x0a,0x01,0x8a,0x0a,0x01,0x89,0x09,0x99,0x09,0x02,0x98,0x05,0x01,0x39,0x05,0x01,0x89,0x04,0x01,0x4b,0x04,0x01,0x39,0x04,0x01,0x2b,0x04,0x01,0x18,0x04,0x01,0x1b,0x7e,0x01,0x01,0x0e,0x1d,0x11,0x0c,0x7e,0x0e,0x36,0x11,0x01,0x15,0x11,0x25,0x11,0x02, +0x11,0x07,0x91,0x16,0x16,0x10,0x03,0x01,0x0d,0x12,0x00,0x3f,0xce,0x3f,0x39,0x2f,0xed,0x33,0x5d,0x5d,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02, +0x15,0x04,0xd5,0xa8,0x2b,0x57,0x86,0x5b,0x5c,0x8c,0x5f,0x31,0xa8,0xa8,0x1d,0x4b,0x5e,0x71,0x42,0x85,0xc5,0x81,0x3f,0x01,0x3c,0xe7,0x6a,0xaa,0x75,0x3f,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x55,0xa2,0xec,0x97,0x00,0x01,0x00,0xbc,0xff,0x38,0x04,0x08,0x05,0x9a,0x00,0x0f,0x00,0x1f,0x40,0x0f, +0x09,0x7e,0x0a,0x0a,0x11,0x03,0x7e,0x00,0x02,0x03,0x0a,0x03,0x91,0x00,0x12,0x00,0x3f,0xed,0xce,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0xbc,0xa8,0x01,0x6a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0x05,0x9a,0xfa,0xfe,0x37,0x60,0x80,0x49, +0x2b,0x49,0x36,0x1e,0x00,0x01,0x00,0xbc,0xff,0xe8,0x05,0xc3,0x05,0x9a,0x00,0x1f,0x00,0x5a,0x40,0x38,0x94,0x1e,0x01,0x6a,0x15,0x7a,0x15,0x8a,0x15,0x03,0x59,0x15,0x01,0x84,0x11,0x01,0x65,0x11,0x75,0x11,0x02,0x56,0x11,0x01,0x9a,0x02,0x01,0x0d,0x7e,0x05,0x1a,0x7e,0x18,0x05,0x18,0x05,0x18,0x09,0x21,0x0c,0x07,0x7e,0x09,0x19, +0x06,0x91,0x0d,0x0f,0x0b,0x03,0x13,0x91,0x00,0x00,0x08,0x12,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x3f,0xed,0xc4,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x04,0x23,0x5d,0x99,0x6c,0x3b,0xfe,0xde,0xa8,0xa8,0x01,0xc5,0x27,0x43,0x5b,0x35,0x35,0x5d,0x44,0x27,0xa3,0x3b,0x6d,0x9a,0x18,0x36,0x6d,0xa4,0x6d,0x01,0xcc,0xfc,0x98,0x05,0x9a,0xfe,0x66,0xfd,0xb6,0x51,0x7a,0x51,0x28,0x28,0x51,0x7a,0x51,0x02,0x4a,0xfd,0x9c,0x6d,0xa4,0x6d,0x36,0x00, +0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x04,0x05,0xb2,0x00,0x1a,0x00,0x25,0x00,0xf0,0x40,0x33,0x76,0x21,0x01,0x79,0x25,0x01,0x26,0x22,0x76,0x22,0x02,0x3a,0x1f,0x01,0x86,0x1d,0x01,0x39,0x1d,0x01,0x45,0x17,0x55,0x17,0x02,0x05,0x17,0x15,0x17,0x25,0x17,0x03,0x98,0x04,0x01,0x38,0x02,0x88,0x02,0x02,0x89,0x1c,0x01,0x96,0x16,0xa6, +0x16,0xe6,0x16,0x03,0x15,0xb8,0xff,0xe0,0xb3,0x2e,0x31,0x48,0x15,0xb8,0xff,0xc0,0x40,0x6e,0x25,0x28,0x48,0x0c,0x15,0x0a,0x11,0x18,0x7d,0x6b,0x05,0x7b,0x05,0x8b,0x05,0x03,0x08,0x05,0x18,0x05,0x02,0x6b,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x1e,0x05,0x07,0x10,0x1b,0x20,0x1b,0x30,0x1b,0x03,0x1b,0x1b,0x03,0x27,0x0a, +0x7e,0x07,0x20,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x1e,0x18,0x1a,0x1f,0x48,0x09,0x1e,0x01,0xe9,0x1e,0xf9,0x1e,0x02,0x1e,0x05,0x07,0x91,0x06,0x15,0x16,0x15,0x26,0x15,0x03,0xb9,0x15,0x01,0x15,0xb9,0x0c,0x01,0x0c,0xb0,0x0a,0xc0,0x0a,0xd0,0x0a,0x03,0x0a,0x0a,0x08,0x11,0x13,0x91,0x10,0x0e,0x04,0x08,0x03,0x23,0x91,0x00,0x13, +0x00,0x3f,0xed,0x3f,0x3f,0x33,0xed,0x32,0x10,0xcd,0x2f,0x5d,0x32,0x5d,0x32,0x71,0x72,0xed,0x32,0x32,0x5d,0x71,0x2b,0x01,0x2f,0x5d,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xfd,0xc4,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x00,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x20,0x00,0x11,0x10,0x37,0x26,0x27,0x11,0x33,0x15,0x16,0x17,0x36,0x21,0x32,0x17,0x15,0x26,0x23,0x26,0x07,0x16,0x00,0x11,0x10,0x00,0x13,0x10,0x24,0x27,0x06,0x11,0x14,0x16,0x33,0x36,0x36,0x02,0xc0,0xfe,0xf4,0xfe,0xaa,0xd4,0x63,0x71,0x9c,0x79,0x6c,0xed,0x01,0x42,0x86,0x70,0x7f,0x8a,0xad,0x84,0xe7,0x01,0x53,0xfe,0xbb, +0x95,0xfe,0x8e,0xe8,0xec,0xf7,0xb8,0xbd,0xda,0x18,0x01,0x4a,0x01,0x24,0x01,0x45,0xec,0x06,0x01,0x01,0x0c,0x79,0x01,0x0b,0x9d,0x10,0xb0,0x28,0x02,0x30,0x27,0xfe,0xd2,0xfe,0xde,0xfe,0xce,0xfe,0xa5,0x02,0x83,0x01,0x0c,0xef,0x0e,0xcb,0xfe,0xb9,0xea,0xf9,0x01,0xff,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x17, +0x00,0x49,0x40,0x2d,0x4b,0x16,0x01,0x95,0x08,0x01,0x84,0x08,0x01,0x34,0x03,0x01,0x25,0x03,0x01,0x0c,0x7e,0x0a,0x0f,0x0f,0x19,0x01,0x7e,0x17,0x8e,0x0f,0x01,0x49,0x0f,0x01,0x2a,0x0f,0x3a,0x0f,0x02,0x0f,0x05,0x91,0x14,0x0e,0x12,0x0b,0x0f,0x01,0x03,0x00,0x3f,0x3f,0x3f,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x01,0x2f,0xed,0x12,0x39, +0x2f,0xc4,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x23,0x11,0x0e,0x03,0x23,0x20,0x02,0x11,0xaa,0xa8,0xab,0xb7,0x51,0x8b,0x64,0x39,0xa8,0xa8,0x1b,0x50,0x63,0x71,0x3b,0xfe,0xf6,0xff,0x05,0x9a,0xfd,0xa1,0xd6,0xd4,0x34,0x6c,0xa6,0x73,0xb6,0xfc,0x00,0x01, +0x7f,0x1c,0x30,0x24,0x15,0x01,0x2e,0x01,0x2e,0x00,0x00,0x01,0x00,0x21,0xff,0x68,0x04,0x50,0x06,0x02,0x00,0x0d,0x00,0xa1,0x40,0x5e,0xa6,0x08,0xb6,0x08,0x02,0xa9,0x04,0x01,0xb8,0x04,0x01,0x08,0x07,0x08,0x09,0x07,0x7e,0x06,0x05,0x14,0x06,0x06,0x05,0x06,0x05,0x0b,0x04,0x03,0x04,0x7e,0x0a,0x0b,0x14,0x0a,0x04,0x05,0x0a,0x0b, +0x08,0x09,0x04,0x05,0x08,0x05,0x04,0x7e,0x09,0x08,0x14,0x09,0x08,0x04,0x09,0x09,0x0a,0x61,0x05,0x01,0xc1,0x05,0xd1,0x05,0xe1,0x05,0x03,0x05,0x0a,0x05,0x0a,0x03,0x0d,0x7e,0x00,0x00,0x0f,0x03,0x86,0x0a,0x01,0x48,0x05,0x01,0x07,0x05,0x09,0x0a,0x04,0x06,0x0b,0x91,0x03,0x00,0x02,0x12,0x00,0x3f,0xce,0x33,0xed,0x2f,0x17,0x39, +0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x11,0x33,0x10,0xc1,0x87,0x04,0x2b,0x10,0x01,0xc1,0x87,0x04,0x7d,0x10,0xc4,0x87,0x08,0x18,0x10,0x2b,0x87,0x05,0x7d,0xc4,0x11,0x01,0x33,0x87,0x18,0x10,0x2b,0x08,0x7d,0x10,0xc4,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x05,0x35,0x21,0x35,0x01,0x25,0x13, +0x17,0x07,0x05,0x15,0x01,0x21,0x11,0x03,0xa8,0xfc,0x79,0x02,0xb3,0xfe,0x8c,0x8c,0x95,0x46,0x01,0x6b,0xfd,0x76,0x03,0x34,0x98,0x98,0x2f,0x04,0x03,0xc2,0x01,0x0e,0x4e,0x86,0xba,0x1d,0xfc,0x41,0xfe,0xd0,0x00,0x02,0x00,0x5e,0xff,0xc6,0x05,0x38,0x05,0xb2,0x00,0x35,0x00,0x45,0x00,0xba,0x40,0x7a,0x39,0x34,0x49,0x34,0x59,0x34, +0x03,0x84,0x1f,0x01,0x9b,0x1a,0x01,0x86,0x14,0x01,0x7a,0x10,0x01,0x28,0x10,0x01,0x69,0x0f,0x79,0x0f,0x02,0x56,0x09,0x01,0x37,0x09,0x47,0x09,0x02,0x9d,0x2b,0x01,0x7c,0x2b,0x8c,0x2b,0x02,0x2b,0x2a,0x2a,0x91,0x25,0x01,0x64,0x25,0x74,0x25,0x84,0x25,0x03,0x30,0x25,0x36,0x22,0x7e,0x9e,0x3c,0x01,0x8d,0x3c,0x01,0x7e,0x3c,0x01, +0x6b,0x3c,0x01,0x3c,0x0a,0x36,0x10,0x0d,0x20,0x0d,0x02,0x0d,0x0d,0x47,0x36,0x7e,0x00,0x17,0x7e,0x18,0x18,0x0f,0x00,0x1f,0x00,0x02,0x00,0x3c,0x25,0x39,0x41,0x18,0x18,0x12,0x30,0x0a,0x33,0x05,0x91,0x41,0x39,0x91,0x33,0x2a,0x2b,0x2b,0x33,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x33,0x10,0xfd,0xde,0xed,0x11, +0x39,0x39,0x11,0x39,0x2f,0x11,0x12,0x39,0x39,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0xed,0x11,0x39,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x1e,0x03,0x17,0x07,0x2e,0x03,0x27,0x06,0x04,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x36,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x5e,0x05,0x31,0x5f,0x8e,0x61,0x3f,0x7c,0x78,0x73,0x35,0x41,0x48,0x34,0x67,0x9c,0x69,0x63,0x98,0x67,0x36,0xb0, +0x54,0x99,0xd7,0x84,0x89,0xdb,0x9a,0x52,0x5d,0x53,0x14,0x40,0x45,0x42,0x17,0x73,0x18,0x42,0x46,0x43,0x18,0x74,0xfe,0xff,0x91,0xa9,0xb3,0xa6,0x5b,0x5b,0x6d,0xb5,0x51,0x23,0x4e,0x57,0x5d,0x30,0x38,0x50,0x34,0x18,0xf8,0x3f,0x67,0x49,0x29,0x18,0x2a,0x38,0x1f,0x4f,0xcb,0x8a,0x63,0xb8,0x8f,0x56,0x3f,0x70,0x9d,0x5d,0x81,0xd4, +0x97,0x54,0x63,0xae,0xed,0x8a,0xa7,0xfe,0xfc,0x64,0x0f,0x37,0x3e,0x3c,0x13,0x82,0x16,0x3f,0x41,0x3a,0x12,0x57,0x69,0x92,0x7c,0x29,0x3d,0x01,0x41,0x33,0x12,0x23,0x1c,0x12,0x12,0x1f,0x29,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x05,0x94,0x05,0xb2,0x00,0x0f,0x00,0x56,0x40,0x38,0x96,0x0c,0x01,0x24,0x0c,0x34,0x0c,0x02,0x98,0x0a, +0x01,0x2a,0x0a,0x3a,0x0a,0x02,0xa8,0x03,0x01,0x57,0x03,0x01,0x45,0x03,0x01,0xa7,0x01,0x01,0x49,0x01,0x59,0x01,0x02,0x06,0x05,0x7e,0xc0,0x09,0x01,0x09,0x09,0x11,0x0e,0x7e,0x0f,0x0e,0x0e,0x02,0x05,0x91,0x08,0x12,0x0b,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x10,0x21,0x20,0x11,0x11,0x33,0x15,0x21,0x11,0x10,0x21,0x20,0x11,0x15,0x23,0x78,0x02,0x14,0x02,0x17,0xf1,0xfe,0x67,0xfe,0x92,0xfe,0x93,0xa8,0x03,0x56,0x02,0x5c,0xfd,0xbb,0xfd,0x2b,0x98,0x03,0x62,0x01,0xb9,0xfe,0x56,0x97,0x00,0x00,0x02,0x00,0x62,0x00,0x00,0x05,0x3a, +0x05,0x9a,0x00,0x13,0x00,0x1b,0x00,0x7d,0x40,0x51,0x78,0x17,0x01,0x36,0x12,0x01,0x07,0x12,0x17,0x12,0x02,0x44,0x11,0x84,0x11,0x94,0x11,0x03,0x29,0x03,0x39,0x03,0x02,0x19,0x10,0x14,0x4a,0x04,0x7a,0x04,0x8a,0x04,0x9a,0x04,0x04,0x04,0x09,0x01,0x0d,0x0d,0x00,0x7e,0x15,0x15,0x1d,0x14,0x7e,0x01,0x06,0x06,0x01,0x19,0x20,0x24, +0x2a,0x48,0x19,0x20,0x17,0x1e,0x48,0x19,0x04,0x06,0x91,0x10,0x09,0xd0,0x07,0x01,0x07,0x07,0x01,0x0d,0x91,0x0c,0x03,0x14,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2b,0x2b,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x12,0x39,0x39,0x31,0x30, +0x71,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x11,0x10,0x37,0x26,0x23,0x35,0x20,0x17,0x36,0x21,0x33,0x15,0x23,0x22,0x07,0x04,0x00,0x11,0x01,0x21,0x11,0x10,0x24,0x27,0x06,0x11,0x05,0x3a,0xfb,0x82,0xca,0x59,0xcb,0x01,0x47,0x76,0xf7,0x01,0x56,0xce,0xe1,0xd4,0xa9,0x01,0x07,0x01,0x57,0xfc,0x2a,0x03,0x2e,0xfe,0xa6,0xfd,0xd7,0x02,0x10, +0x01,0x45,0xe7,0x07,0x9b,0x0f,0xcb,0x98,0x53,0x2c,0xfe,0xde,0xfe,0xce,0xfe,0x69,0x01,0x8d,0x01,0x0f,0xe4,0x18,0xd3,0xfe,0xbf,0x00,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0xd0,0x05,0x9a,0x00,0x0f,0x00,0x57,0x40,0x39,0x29,0x0e,0x39,0x0e,0x02,0x96,0x0c,0x01,0x25,0x0c,0x35,0x0c,0x02,0x4a,0x07,0x5a,0x07,0xda,0x07,0x03,0xc8,0x05, +0x01,0xa9,0x05,0x01,0x46,0x05,0x01,0xb7,0x0c,0x01,0x02,0x03,0x7e,0x30,0x0f,0x01,0x0f,0x0f,0x11,0x0a,0x7e,0xb0,0x08,0x01,0x08,0x09,0x03,0x0d,0x91,0x06,0x13,0x03,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01, +0x21,0x15,0x23,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x20,0x11,0x04,0x2d,0x01,0xa3,0xfb,0xfd,0xdf,0xfd,0xf6,0xa8,0x01,0x74,0x01,0x67,0x05,0x9a,0x98,0xfd,0x42,0xfd,0xa4,0x02,0x45,0x03,0x6d,0xfc,0x9e,0xfe,0x47,0x01,0xaa,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x4d,0x05,0xb2,0x00,0x3f,0x00,0x9b,0x40,0x63,0x49,0x3e, +0x01,0x33,0x10,0x10,0x13,0x48,0x6a,0x33,0x01,0x57,0x2d,0x01,0x67,0x29,0x77,0x29,0x02,0x56,0x29,0x01,0x46,0x24,0x56,0x24,0x02,0x84,0x20,0x01,0x87,0x1f,0x01,0xaa,0x1a,0x01,0x98,0x1a,0x01,0x7a,0x1a,0x8a,0x1a,0x02,0x63,0x14,0x01,0x79,0x10,0x01,0x6b,0x10,0x01,0x79,0x0f,0x01,0x25,0x06,0x22,0x7e,0x0d,0x0d,0x2b,0x7e,0x00,0x00, +0x18,0x41,0x36,0x7e,0x35,0x35,0x18,0x06,0x06,0x17,0x7e,0x18,0x26,0x25,0x06,0x18,0x18,0x12,0x08,0x91,0x06,0x36,0x06,0x36,0x12,0x3b,0x91,0x30,0x13,0x12,0x91,0x1d,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x39,0x2f,0x2f,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x01,0x2f,0xed,0x33,0x2f,0x11,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed, +0x33,0x2f,0xed,0x11,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x01,0x34,0x2e,0x02,0x23,0x21,0x35,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xa5,0x3b,0x70,0xa3,0x69,0xfe,0xac,0x01,0x4e,0x5e,0x93,0x60,0x30,0x26,0x45,0x60,0x3a,0x34,0x61,0x4a,0x2c,0xa6,0x4b,0x79,0x9c,0x51,0x51,0x9a,0x79,0x49,0x9a,0x90,0x48,0x84,0x62,0x38,0x55,0x8f,0xba,0x64,0x5c,0xb0,0x8a,0x55,0x02,0xa6,0x30,0x57,0x7c,0x4b,0x41,0x7a, +0x5f,0x39,0x01,0x87,0x46,0x69,0x47,0x23,0x8b,0x21,0x42,0x63,0x42,0x3d,0x5c,0x3d,0x1e,0x1b,0x36,0x50,0x34,0x58,0x84,0x58,0x2c,0x2d,0x57,0x7f,0x53,0x8e,0xb6,0x28,0x04,0x05,0x34,0x5a,0x7b,0x48,0x67,0xa0,0x6e,0x39,0x27,0x54,0x86,0x60,0x34,0x50,0x37,0x1c,0x24,0x47,0x67,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x05,0x1c,0x05,0x9a, +0x00,0x0f,0x00,0x54,0x40,0x38,0x29,0x0c,0x39,0x0c,0x49,0x0c,0x99,0x0c,0x04,0x97,0x0a,0x01,0x25,0x0a,0x35,0x0a,0x45,0x0a,0x03,0x46,0x03,0x56,0x03,0x02,0xd7,0x03,0x01,0x58,0x03,0x01,0x56,0x01,0x01,0x0f,0x7e,0x10,0x0e,0x01,0x0e,0x0e,0x11,0x08,0x7e,0x06,0x04,0x0e,0x0e,0x02,0x05,0x91,0x07,0x03,0x0b,0x91,0x02,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xce,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20,0x11,0x11,0x23,0x35,0x21,0x11,0x10,0x21,0x20,0x11,0x35,0x33,0x05,0x1c,0xfd,0xec,0xfd,0xe9,0xfb,0x01,0xa3,0x01,0x6e,0x01,0x6d,0xa8,0x02,0x44,0xfd,0xa4,0x02,0x45,0x02,0xd5,0x98,0xfc, +0x9e,0xfe,0x47,0x01,0xaa,0xab,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xf6,0x05,0xba,0x00,0x23,0x00,0xa4,0x40,0x69,0x97,0x22,0x01,0x98,0x1e,0x01,0x99,0x19,0x01,0x38,0x19,0x48,0x19,0x02,0x9b,0x18,0x01,0x94,0x14,0x01,0x85,0x09,0x01,0x76,0x09,0x01,0x27,0x09,0x01,0x87,0x08,0x01,0x84,0x02,0x01,0x55,0x02,0x01,0x47,0x02,0x01,0x01, +0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x00,0x9f,0x20,0x01,0x8c,0x20,0x01,0x71,0x01,0x01,0x64,0x01,0x01,0x20,0x01,0x21,0x23,0x23,0x11,0x7e,0x10,0x10,0x20,0x10,0x02,0x10,0x10,0x1b,0x25,0x22,0x21,0x21,0x06,0x7e,0x0f,0x1b,0x1f,0x1b,0x02,0x1b,0x00,0x11,0x00,0x11,0x22,0x04,0x0b,0x91,0x16,0x13,0x00, +0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x33,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4,0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x25,0x0e,0x03,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x37,0x01,0x04,0xb8,0xfe,0x92,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86,0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0xfe,0x8b,0x27,0x03,0xe5,0x04,0x14,0x66,0x15,0x6b,0x99,0xbd,0x69,0x61, +0xa3,0x76,0x42,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4f,0x96,0xd7,0x88,0x6c,0xcf,0xae,0x84,0x22,0x6c,0x93,0xfe,0xed,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x19,0x00,0x3f,0x40,0x28,0x3b,0x12,0x4b,0x12,0x02,0x86,0x0a,0x96,0x0a,0x02,0x95,0x09,0x01,0x86,0x09,0x01,0x25,0x09,0x01,0x99,0x05,0x01,0x2a,0x05, +0x01,0x19,0x7e,0x01,0x01,0x1b,0x0c,0x7e,0x0e,0x07,0x91,0x14,0x04,0x01,0x0d,0x12,0x00,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x05,0x25,0xa8,0x39,0x69, +0x93,0x5a,0x5d,0x98,0x6c,0x3b,0xa8,0x4e,0x91,0xd0,0x83,0x88,0xd9,0x97,0x51,0x03,0x71,0x6a,0xa0,0x6b,0x35,0x37,0x6e,0xa6,0x6e,0xfc,0x9e,0x03,0x6d,0x91,0xda,0x91,0x49,0x4b,0x97,0xe3,0x97,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x04,0xf6,0x05,0xb2,0x00,0x23,0x00,0x9a,0x40,0x63,0x46,0x1e,0x56,0x1e,0x96,0x1e,0x03,0x93,0x19,0x01, +0x45,0x18,0x01,0x9c,0x14,0x01,0x38,0x14,0x01,0x86,0x0d,0x01,0x89,0x09,0x01,0x3a,0x09,0x01,0x01,0x20,0x21,0x23,0x21,0x00,0x21,0x7e,0x22,0x23,0x14,0x22,0x22,0x23,0x99,0x22,0x01,0x22,0x21,0x21,0x81,0x20,0x91,0x20,0x02,0x34,0x20,0x74,0x20,0x02,0x20,0x23,0x1b,0x7e,0x6d,0x01,0x01,0x01,0x23,0x10,0x06,0x20,0x06,0x30,0x06,0x03, +0x06,0x06,0x11,0x25,0x00,0x23,0x23,0x10,0x7e,0x0f,0x11,0x1f,0x11,0x02,0x11,0x00,0x10,0x00,0x10,0x22,0x12,0x0b,0x91,0x16,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x5d,0x12,0x39,0x5d,0xed,0x11,0x39,0x5d,0x5d,0x32,0x2f,0x33,0x5d,0x87,0x04,0x10,0x2b,0x87,0x7d,0xc4, +0x10,0xc4,0xc4,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x05,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x07,0x01,0x9c,0x01,0x6e,0x88,0xd4,0x93,0x4d,0x37,0x6a,0x9b,0x64,0x63,0x98,0x67,0x36,0xb0,0x54,0x99,0xd7,0x84,0x86, +0xdb,0x9b,0x54,0x43,0x7e,0xb6,0x73,0x01,0x75,0x27,0xfc,0x1b,0x01,0xa6,0x66,0x15,0x65,0x91,0xb8,0x69,0x61,0x9f,0x71,0x3e,0x3f,0x70,0x9d,0x5d,0x7d,0xd3,0x9a,0x56,0x4b,0x91,0xd3,0x88,0x6c,0xc9,0xa7,0x7e,0x22,0x6c,0x93,0x01,0x13,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x89,0x05,0xb2,0x00,0x1c,0x00,0x58,0x40,0x38,0x7a,0x19, +0x01,0x68,0x19,0x01,0x1a,0x19,0x01,0x96,0x11,0x01,0x85,0x11,0x01,0x27,0x11,0x01,0x25,0x10,0x01,0x2a,0x0c,0x01,0x8b,0x0b,0x9b,0x0b,0x02,0x29,0x0b,0x01,0x16,0x03,0x01,0x13,0x7e,0x15,0x00,0x06,0x7e,0x08,0x1b,0x7e,0x00,0x08,0x08,0x01,0x00,0x15,0x12,0x1b,0x01,0x91,0x0e,0x04,0x00,0x3f,0xed,0x32,0x3f,0xce,0x11,0x39,0x2f,0x01, +0x2f,0xed,0xde,0xed,0x10,0xde,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x11,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x11,0x02,0xaf,0x52,0x8e,0x69,0x3c,0xa8,0x5b,0xa8,0xed,0x92,0x92,0xee,0xa9,0x5c,0xa8,0x3c,0x6a,0x90,0x54, +0x01,0x59,0x03,0xbc,0x0b,0x47,0x74,0x9f,0x62,0x74,0x7f,0x91,0xe0,0x99,0x4f,0x52,0x9e,0xe9,0x97,0xfc,0xbe,0x03,0x5d,0x5f,0x9a,0x71,0x45,0x0a,0xfc,0x43,0x00,0x02,0x00,0x64,0xff,0x38,0x05,0x44,0x05,0xb2,0x00,0x28,0x00,0x3a,0x00,0xb7,0x40,0x79,0x95,0x37,0x01,0x47,0x37,0x01,0x93,0x36,0x01,0x94,0x33,0x01,0x55,0x32,0x95,0x32, +0x02,0x45,0x2d,0x01,0x36,0x2d,0x01,0x2b,0x2b,0x8b,0x2b,0x02,0x68,0x2a,0x78,0x2a,0x02,0x94,0x27,0x01,0x94,0x24,0x01,0x36,0x24,0x01,0x89,0x1e,0x01,0x8a,0x1d,0x01,0x8a,0x1b,0x01,0x5a,0x19,0x01,0x80,0x28,0x90,0x28,0x02,0x61,0x28,0x71,0x28,0x02,0x50,0x28,0x01,0x04,0x28,0x01,0x28,0x0c,0x39,0x7e,0x16,0x4f,0x10,0x01,0x3b,0x10, +0x01,0x29,0x10,0x01,0x10,0x0e,0x16,0x05,0x7e,0x06,0x06,0x26,0x7e,0x29,0x16,0x29,0x16,0x29,0x20,0x3c,0x0c,0x7e,0x0e,0x0e,0x2f,0x7e,0x20,0x39,0x10,0x2c,0x91,0x23,0x04,0x28,0x10,0x91,0x0c,0x06,0x0e,0x0c,0x12,0x00,0x3f,0xdd,0xc4,0x10,0xfd,0xc4,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x5d,0x5d,0x5d,0x10,0xed,0x11,0x39,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x21,0x15,0x23,0x11,0x21,0x36,0x37,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35, +0x34,0x00,0x33,0x20,0x00,0x11,0x10,0x05,0x01,0x34,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x36,0x04,0x0a,0x55,0x78,0x4b,0x22,0xb0,0x12,0x2a,0x43,0x30,0xfd,0x29,0xaa,0x01,0x93,0x50,0x2f,0x35,0x41,0x1d,0x14,0x2c,0x45,0x30,0x43,0x88,0x6e,0x45,0x01,0x18,0xea,0x01,0x08,0x01,0x34,0xfe,0x26,0x01,0x2a,0xcf, +0xbd,0xa4,0xae,0x2d,0x4d,0x64,0x37,0x3d,0x63,0x44,0x25,0xc0,0x98,0x37,0x60,0x80,0x49,0x2b,0x49,0x36,0x1e,0xc8,0x01,0x60,0x1d,0x1b,0x1e,0x3b,0x38,0x17,0x20,0x34,0x2c,0x27,0x13,0x1a,0x48,0x66,0x8a,0x5c,0xc0,0x01,0x12,0xfe,0xb3,0xfe,0xe3,0xfe,0x42,0xf2,0x02,0xa1,0xd6,0x01,0x0c,0xc3,0x78,0x33,0x5b,0x4e,0x3d,0x15,0x18,0x39, +0x47,0x56,0x33,0xae,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xc6,0x05,0xb2,0x00,0x11,0x00,0x6a,0x40,0x46,0xd9,0x0a,0xf9,0x0a,0x02,0xa8,0x0a,0x01,0x46,0x0a,0x01,0x09,0x08,0x01,0x59,0x08,0x01,0x4a,0x08,0x01,0x97,0x03,0x01,0x25,0x03,0x35,0x03,0x02,0xb7,0x01,0x01,0x29,0x01,0x39,0x01,0x02,0x70,0x0e,0x01,0x0e,0x0c,0x0f,0x7e,0x30, +0x11,0x70,0x11,0x02,0x11,0x11,0x13,0x04,0x7e,0xb0,0x06,0x01,0x06,0x0d,0x91,0x0f,0x0f,0x06,0x02,0x91,0x09,0x03,0x11,0x11,0x06,0x12,0x00,0x3f,0x33,0x2f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xfd,0x32,0xcd,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x01,0x10,0x21,0x20, +0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x15,0x33,0x15,0x23,0x11,0x23,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0x02,0x0a,0x02,0x21,0xf1,0xf1,0xa8,0x03,0x71,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x3d,0x98,0xfd,0x7f,0x00,0x01,0x00,0xaa,0xff,0xe8,0x05,0x25,0x05,0x9a,0x00,0x19,0x00,0x3f,0x40,0x28,0x99,0x14, +0x01,0x2a,0x14,0x01,0x95,0x10,0x01,0x86,0x10,0x01,0x25,0x10,0x01,0x87,0x0f,0x97,0x0f,0x02,0x3b,0x07,0x4b,0x07,0x02,0x19,0x7e,0x17,0x17,0x1b,0x0c,0x7e,0x0a,0x18,0x0c,0x03,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x05,0x25,0x51,0x97,0xd9,0x88,0x83,0xd0,0x91,0x4e,0xa8,0x3b,0x6c,0x98,0x5d,0x5a,0x93,0x69,0x39,0xa8,0x02,0x44,0x97,0xe3,0x97,0x4b,0x49,0x91,0xda,0x91,0x03,0x6d,0xfc,0x9e,0x6e,0xa6,0x6e,0x37,0x35,0x6b,0x9f,0x6b,0x03,0x71,0x00,0x00,0x01, +0x00,0x5e,0x00,0x00,0x05,0x7a,0x05,0x9a,0x00,0x11,0x00,0x57,0x40,0x36,0x9e,0x10,0x01,0x4b,0x10,0x01,0x93,0x06,0x01,0x84,0x06,0x01,0x35,0x03,0x01,0x26,0x03,0x01,0x0a,0x08,0x7e,0x0c,0x06,0x06,0x13,0x01,0x7e,0x11,0x0b,0x4a,0x0d,0x5a,0x0d,0x02,0x3b,0x0d,0x01,0x2d,0x0d,0x01,0x1b,0x0d,0x01,0x0d,0x04,0x91,0x0f,0x09,0x91,0x0c, +0x12,0x01,0x07,0x03,0x00,0x3f,0xce,0x3f,0xed,0xde,0xed,0x33,0x5d,0x5d,0x5d,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xce,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x10,0x21,0x20,0x11,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0x06,0x23,0x20,0x11,0x5e,0xa8,0x01,0x6d,0x01,0x6e,0xa8,0xf1,0xfe,0x67,0x84, +0xeb,0xfd,0xec,0x04,0x5e,0xfe,0xf1,0xfe,0x56,0x01,0xb9,0x02,0x3c,0xfa,0xfe,0x98,0x01,0x93,0x85,0x02,0x5c,0x00,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xb5,0x05,0xb2,0x00,0x3a,0x00,0xba,0x40,0x7a,0x75,0x2e,0x01,0x56,0x2e,0x66,0x2e,0x02,0x5b,0x2a,0x01,0x86,0x24,0x96,0x24,0x02,0x75,0x24,0x01,0x66,0x24,0x01,0x75,0x23,0x01,0x67, +0x23,0x01,0x89,0x1e,0x99,0x1e,0x02,0x89,0x1a,0x01,0x4a,0x1a,0x01,0x7a,0x15,0x01,0x69,0x14,0x01,0x5a,0x11,0x01,0x33,0x0e,0x01,0x88,0x08,0x01,0x08,0x10,0x0d,0x10,0x48,0x49,0x07,0x01,0x73,0x03,0x01,0x65,0x03,0x01,0x65,0x02,0x75,0x02,0x02,0x26,0x7e,0x27,0x27,0x12,0x36,0x31,0x00,0x7e,0x17,0x1c,0x60,0x12,0x01,0x12,0x12,0x3c, +0x31,0x7e,0x1c,0x0b,0x7e,0x0a,0x0a,0x60,0x1c,0x01,0x1c,0x27,0x27,0x36,0x2c,0x36,0x10,0x21,0x0b,0x0b,0x17,0x10,0x17,0x05,0x2c,0x91,0x21,0x04,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0x5d,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39, +0xed,0x11,0x39,0x11,0x33,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x2b,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xb5,0x5a,0x97,0xc6,0x6c,0x67,0xc8,0x9e,0x61,0xb1,0x45,0x6e,0x88,0x44,0x01,0x71,0x33,0x59,0x7a,0x48,0x6d,0xbf,0x8e,0x53,0x3f,0x7a,0xb1,0x72,0x5a,0xae,0x89,0x55,0xb0,0x29,0x4f,0x75,0x4b,0x48,0x6f,0x4c,0x27,0x38,0x62,0x81,0x48,0x6c,0xb9,0x87,0x4c,0x01,0x85, +0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x49,0x5e,0x3a,0x22,0x0d,0x14,0x3b,0x60,0x8e,0x68,0x55,0x8b,0x63,0x35,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52,0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0x25,0x05,0xb2,0x00,0x0d,0x00,0x4f, +0x40,0x33,0x46,0x0c,0x01,0x33,0x0c,0x01,0x4b,0x0a,0x01,0x3d,0x0a,0x01,0x94,0x05,0x01,0x85,0x05,0x01,0x26,0x05,0x01,0x17,0x05,0x01,0x89,0x03,0x99,0x03,0x02,0x18,0x03,0x28,0x03,0x02,0x0d,0x7e,0x01,0x01,0x0f,0x06,0x7e,0x08,0x00,0x00,0x07,0x04,0x91,0x0b,0x04,0x07,0x12,0x00,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x12, +0x39,0x2f,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x35,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x21,0x20,0x11,0x05,0x25,0xa8,0xfe,0x6b,0xfe,0x6a,0xa8,0x02,0x3f,0x02,0x3c,0x02,0xc6,0xab,0x01,0xaa,0xfe,0x47,0xfc,0x9e,0x03,0x6d,0x02,0x45,0xfd,0xa4,0x00,0x02,0x00,0x90,0xff,0xe8,0x04,0xdf, +0x05,0xb2,0x00,0x2f,0x00,0x43,0x00,0x9f,0x40,0x67,0x59,0x2d,0x01,0x48,0x29,0x01,0x26,0x24,0x01,0x79,0x1e,0x01,0x68,0x1e,0x01,0x59,0x1e,0x01,0x5a,0x1d,0x01,0x76,0x18,0x01,0x67,0x18,0x01,0x56,0x18,0x01,0x66,0x14,0x76,0x14,0x02,0x64,0x0c,0x74,0x0c,0x84,0x0c,0x03,0x66,0x0b,0x76,0x0b,0x02,0x6a,0x07,0x01,0x7b,0x06,0x8b,0x06, +0x02,0x6c,0x06,0x01,0x01,0x10,0x04,0x0e,0x7e,0x30,0x30,0x16,0x7e,0x50,0x2b,0x01,0x2b,0x2b,0x04,0x45,0x21,0x7e,0x20,0x20,0x3a,0x7e,0x04,0x2f,0x2f,0x04,0x11,0x10,0x2e,0x3f,0x3f,0x01,0x91,0x21,0x2e,0x2e,0x35,0x26,0x91,0x1b,0x13,0x35,0x91,0x09,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xce,0xed,0x32,0x2f,0x11,0x39,0x39, +0x01,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x5d,0xed,0x33,0x2f,0xed,0x11,0x39,0x39,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x27,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x21,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0xcc,0xbf,0x43,0x45,0x51,0x83,0xa6,0x56,0x55,0xa4,0x82,0x50,0xfe,0xf0,0x49,0x7b,0x5a,0x33,0x5d,0x99,0xc7,0x6a,0x6c,0xc6,0x98,0x5c,0x02,0xa8,0x35,0x64,0x8e,0x5a,0x48,0x89, +0x6c,0x41,0xd1,0xdc,0xfe,0x42,0x03,0x2a,0x30,0x50,0x6a,0x39,0x3f,0x6d,0x4f,0x2d,0x2a,0x4d,0x6c,0x42,0x42,0x6c,0x4e,0x2a,0x03,0x29,0x32,0x93,0x64,0x5b,0x85,0x56,0x2a,0x28,0x57,0x87,0x5a,0xfe,0xed,0x51,0x04,0x05,0x31,0x57,0x7b,0x4e,0x6d,0xa1,0x6a,0x34,0x34,0x6a,0xa1,0x6d,0x43,0x6c,0x4b,0x28,0x20,0x43,0x68,0x48,0x8c,0x8d, +0x01,0x95,0x3a,0x5b,0x3e,0x21,0x23,0x3f,0x5b,0x37,0x40,0x61,0x41,0x22,0x01,0x03,0x23,0x41,0x5f,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x05,0xb2,0x05,0x9a,0x00,0x1a,0x00,0x57,0x40,0x34,0x9a,0x08,0x01,0x79,0x08,0x89,0x08,0x02,0x98,0x07,0x01,0x9a,0x03,0x01,0x3d,0x03,0x4d,0x03,0x02,0x2b,0x03,0x01,0x00,0x19,0x7e,0x01,0x01,0x0c, +0x1c,0x0f,0x0a,0x7e,0x0c,0x1a,0x91,0x01,0x26,0x0f,0x01,0x0f,0x14,0x91,0x05,0x01,0x05,0x01,0x05,0x0b,0x0e,0x03,0x0b,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x5d,0x10,0xed,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0xfd,0xcd,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x35,0x34,0x26,0x23,0x22, +0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x05,0xb2,0xfe,0x7b,0xb7,0xb6,0x57,0x88,0x5e,0x31,0xa8,0xa8,0x21,0x49,0x58,0x6b,0x42,0x78,0xbb,0x84,0x4d,0x0b,0xe2,0x01,0xe6,0x47,0xd5,0xe9,0x41,0x79,0xaf,0x6e,0xfd,0xec,0x05,0x9a,0xfe,0x45,0x21,0x3c,0x2c,0x1a,0x44,0x84,0xc0,0x7c,0x00,0x03, +0x00,0x5e,0x00,0x00,0x05,0xf8,0x05,0x9a,0x00,0x14,0x00,0x1d,0x00,0x26,0x00,0x87,0x40,0x5a,0x29,0x22,0x01,0x29,0x1e,0x01,0x26,0x19,0x01,0x26,0x15,0x01,0x68,0x12,0x78,0x12,0x02,0x68,0x0e,0x78,0x0e,0x02,0x67,0x07,0x77,0x07,0x02,0x67,0x04,0x77,0x04,0x02,0x17,0x7d,0x0f,0x10,0x01,0x10,0x10,0x0b,0x20,0x7d,0x90,0x06,0x01,0x00, +0x06,0xc0,0x06,0x02,0x06,0x06,0x25,0x02,0x09,0x7e,0x1b,0x14,0x10,0x0b,0xc0,0x0b,0xd0,0x0b,0xf0,0x0b,0x04,0x0b,0x0b,0x27,0x28,0x1b,0x25,0x91,0x0c,0x09,0x40,0x12,0x16,0x48,0x09,0x0b,0x12,0x24,0x1c,0x91,0x02,0x14,0x00,0x03,0x00,0x3f,0xdd,0x32,0xed,0x32,0x3f,0xdd,0x2b,0x32,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x5d,0x33,0x33, +0xed,0x32,0x32,0x32,0x2f,0x5d,0x71,0xed,0x11,0x33,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x15,0x04,0x17,0x16,0x15,0x14,0x00,0x21,0x15,0x23,0x35,0x20,0x27,0x26,0x35,0x34,0x37,0x36,0x25,0x01,0x06,0x15,0x14,0x17,0x16,0x33,0x11,0x06,0x01,0x36,0x35,0x34,0x27,0x26,0x27,0x11,0x32,0x02,0xd7, +0xa8,0x01,0x0d,0xb6,0xb6,0xfe,0x94,0xfe,0xf3,0xa8,0xfe,0xf2,0xb5,0xb6,0xb6,0xb5,0x01,0x0e,0xfe,0xab,0x74,0x74,0x73,0xe2,0xe2,0x02,0xdf,0x74,0x74,0x74,0xe1,0xe1,0x05,0x9a,0x8c,0x01,0xa3,0xa3,0xfb,0xfd,0xfe,0xb9,0x88,0x88,0xa3,0xa4,0xfd,0xfb,0xa3,0xa3,0x01,0xfe,0xe6,0x7f,0xab,0xa9,0x80,0x7f,0x03,0x52,0x01,0xfd,0x2e,0x80, +0xa9,0xab,0x7f,0x7f,0x01,0xfc,0xae,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x04,0xe1,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0xbe,0x40,0x87,0x39,0x20,0x49,0x20,0x59,0x20,0x99,0x20,0x04,0xe4,0x1e,0x01,0xa6,0x1e,0xb6,0x1e,0x02,0x94,0x1e,0x01,0x36,0x1e,0x46,0x1e,0x56,0x1e,0x03,0xe7,0x1a,0x01,0xa6,0x1a,0x01,0x94,0x1a,0x01,0x35,0x1a, +0x45,0x1a,0x55,0x1a,0x03,0x99,0x18,0x01,0x3a,0x18,0x4a,0x18,0x5a,0x18,0x03,0x06,0x10,0x01,0x5b,0x0c,0x01,0x49,0x0c,0x01,0xe8,0x0c,0x01,0xaa,0x0c,0xba,0x0c,0x02,0x56,0x0a,0x01,0xe7,0x0a,0x01,0x14,0x01,0x7e,0x1c,0x7d,0x04,0x07,0x04,0x15,0x15,0x0e,0x7e,0x16,0x10,0x16,0x01,0x00,0x16,0x10,0x16,0x20,0x16,0x03,0x04,0x16,0x04, +0x16,0x23,0x06,0x19,0x91,0x0b,0x26,0x1f,0x91,0x59,0x13,0x69,0x13,0x02,0x13,0x0f,0x11,0x01,0xbf,0x11,0xcf,0x11,0xdf,0x11,0x03,0x11,0x07,0x15,0x91,0x04,0x01,0x03,0x12,0x00,0x3f,0xdd,0x32,0xfd,0x32,0xde,0x5d,0x71,0x32,0x5d,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x32,0x2f,0x11,0x33,0x10,0xed, +0xed,0x32,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x34,0x00,0x33,0x32,0x00,0x15,0x14,0x02,0x23,0x22,0x27,0x15,0x21,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xe1,0xfc,0xb8,0xa8,0xdd,0xdd,0x01, +0x0b,0xe7,0xee,0x01,0x10,0xf8,0xee,0xda,0x88,0x03,0x48,0xa8,0x9f,0xab,0xa6,0xb0,0xac,0xaa,0xab,0x9f,0x98,0x98,0x98,0x98,0x02,0x8a,0xdf,0x01,0x19,0xfe,0xdf,0xe7,0xe8,0xfe,0xe8,0x77,0xf1,0x02,0x80,0xa8,0xd0,0xd3,0xa1,0xa6,0xda,0xd3,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x82,0x40,0x61, +0x1a,0x17,0x01,0xc8,0x13,0x01,0x0a,0x13,0x1a,0x13,0x02,0xc6,0x11,0x01,0x05,0x11,0x15,0x11,0x02,0x85,0x0d,0xc5,0x0d,0x02,0x04,0x0d,0x14,0x0d,0x02,0xc9,0x0b,0x01,0x56,0x0b,0x66,0x0b,0x96,0x0b,0x03,0xd7,0x07,0x01,0x55,0x07,0x65,0x07,0x95,0x07,0x03,0xc6,0x05,0x01,0x59,0x05,0x69,0x05,0x99,0x05,0x03,0xc6,0x01,0x01,0x5a,0x01, +0x6a,0x01,0x9a,0x01,0x03,0x09,0x7d,0x00,0x15,0x10,0x15,0x30,0x15,0x03,0x15,0x15,0x19,0x0f,0x7d,0x0f,0x03,0x1f,0x03,0x02,0x03,0x0c,0x91,0x06,0x04,0x12,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, +0x05,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x02,0xfe,0xfe,0xcf,0xfe,0x91,0x01,0x76,0x01,0x42,0x01,0x29,0x01,0x6b,0xfe,0x8c,0xfe,0xd4,0xe2,0xfe,0xe6,0x01,0x13,0xdd,0xec,0x01,0x10,0xfe,0xf8,0x18,0x01,0x92,0x01,0x42,0x01,0x5a,0x01,0x9c,0xfe,0x70, +0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x05,0x32,0xfe,0xba,0xfe,0xf7,0xfe,0xf7,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0x00,0x03,0x00,0x86,0xff,0xe8,0x05,0x45,0x05,0x9a,0x00,0x1f,0x00,0x2a,0x00,0x35,0x00,0x82,0x40,0x54,0x3a,0x28,0x4a,0x28,0x02,0x29,0x28,0x01,0x7c,0x23,0x01,0x69,0x23,0x01,0x4a,0x23,0x01,0x39,0x23,0x01, +0x95,0x1d,0x01,0x99,0x14,0x01,0x45,0x0e,0x95,0x0e,0x02,0x24,0x0e,0x34,0x0e,0x02,0x05,0x0e,0x15,0x0e,0x02,0x96,0x0d,0x01,0x55,0x03,0x01,0x57,0x02,0x01,0x16,0x7e,0x2b,0x11,0x00,0x7e,0x20,0x25,0x1b,0x7e,0x11,0x0a,0x7e,0x0b,0x30,0x11,0x0b,0x0b,0x26,0x11,0x11,0x25,0x05,0x31,0x91,0x1b,0x30,0x1a,0x03,0x10,0x26,0x91,0x05,0x13, +0x00,0x3f,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x36, +0x33,0x33,0x11,0x1e,0x03,0x07,0x34,0x2e,0x02,0x27,0x11,0x3e,0x03,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x0e,0x02,0x05,0x45,0x59,0x9f,0xdb,0x82,0x88,0xe3,0xa4,0x5b,0xb1,0x36,0x61,0x84,0x4e,0x6d,0x9c,0x63,0x2f,0xd0,0xcb,0xa8,0x80,0xbf,0x7f,0x3f,0xb0,0x29,0x53,0x7d,0x54,0x4b,0x7b,0x57,0x30,0xfd,0x20,0x29,0x43,0x54,0x2b,0x40, +0x5a,0x38,0x19,0x01,0xe9,0x86,0xc2,0x7d,0x3c,0x44,0x86,0xc6,0x81,0x4d,0x82,0x63,0x3d,0x06,0x02,0xde,0x1a,0x3e,0x4b,0x5a,0x35,0x7a,0x8c,0xfe,0x3f,0x1e,0x61,0x7f,0x9b,0x57,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x09,0x33,0x57,0x7c,0x02,0xff,0x21,0x30,0x23,0x1a,0x0a,0x01,0x04,0x10,0x1c,0x28,0x00,0x00,0x01,0x00,0x00,0x04,0x90, +0x00,0xca,0x06,0x1c,0x00,0x0d,0x00,0x50,0x40,0x15,0x0c,0x18,0x22,0x25,0x48,0x0c,0x18,0x09,0x13,0x48,0x08,0x18,0x22,0x25,0x48,0x08,0x18,0x09,0x13,0x48,0x05,0xb8,0xff,0xe8,0xb3,0x1d,0x21,0x48,0x01,0xb8,0xff,0xf0,0x40,0x17,0x1d,0x21,0x48,0x00,0x06,0x03,0xc4,0x10,0x0a,0x20,0x0a,0x30,0x0a,0x03,0x0a,0x00,0xc5,0x40,0x0d,0xc0, +0x06,0xc5,0x07,0x00,0x2f,0xed,0x1a,0xde,0x1a,0xed,0x01,0x2f,0x5d,0xfd,0xce,0x32,0x31,0x30,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x13,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0xca,0x30,0x40,0x40,0x30,0x54,0x76,0x76,0x54,0x05,0xcb,0x41,0x34,0x34,0x41,0x51,0x6c,0x5a,0x5a,0x6c,0x00,0x01,0x00,0x00,0x04,0x8a, +0x00,0xe1,0x06,0x03,0x00,0x0e,0x00,0x25,0x40,0x0b,0x01,0x18,0x09,0x0d,0x48,0x00,0x03,0xfb,0x09,0x01,0x01,0xb8,0xff,0xc0,0xb7,0x09,0x0d,0x48,0x01,0x03,0x0c,0xaf,0x06,0x2f,0xe1,0x39,0xc4,0x2b,0x00,0x3f,0xfd,0xc4,0x31,0x30,0x2b,0x11,0x35,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x5e,0x14,0x34,0x3e, +0x3a,0x30,0x35,0x42,0x71,0x04,0x8a,0x49,0x05,0x62,0x02,0x38,0x2a,0x2b,0x3a,0x49,0x38,0x60,0x93,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x22,0x40,0x11,0x78,0x03,0x88,0x03,0x98,0x03,0x03,0x03,0x40,0x00,0x80,0x01,0x40,0x02,0x03,0x80,0x02,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x1a,0xcd,0x1a,0xdd,0x1a, +0xcd,0x31,0x30,0x5d,0x01,0x03,0x23,0x13,0x01,0x35,0xb6,0x7f,0x8f,0x06,0x0a,0xfe,0xb8,0x01,0x48,0x00,0x00,0x01,0x00,0x00,0x04,0x3e,0x01,0x92,0x06,0x03,0x00,0x1d,0x00,0x13,0xb6,0x03,0x1b,0x1b,0x0d,0x13,0x00,0x0f,0x00,0x2f,0xcc,0x01,0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15, +0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x35,0x34,0x27,0x01,0x86,0x04,0x08,0x1a,0x2d,0x3c,0x22,0x1a,0x2c,0x21,0x12,0x08,0x71,0x04,0x07,0x59,0x48,0x18,0x2d,0x23,0x15,0x08,0x06,0x03,0x0f,0x30,0x13,0x23,0x38,0x2e,0x25,0x10,0x0c,0x19,0x1d,0x24,0x16,0x17,0x22,0x0f,0x2f,0x14,0x45,0x5b,0x1d,0x0a,0x19,0x1f,0x25, +0x16,0x17,0x22,0x00,0x00,0x01,0x00,0x00,0x04,0xc2,0x01,0x35,0x06,0x0a,0x00,0x03,0x00,0x31,0xb7,0x77,0x03,0x87,0x03,0x97,0x03,0x03,0x03,0xb8,0xff,0xf8,0x40,0x12,0x18,0x1c,0x48,0x01,0x40,0x00,0x80,0x03,0x40,0x50,0x02,0x60,0x02,0x02,0x02,0x03,0x80,0x01,0x00,0x2f,0x1a,0xcd,0x01,0x2f,0x5d,0x1a,0xcd,0x1a,0xdd,0x1a,0xcd,0x31, +0x30,0x2b,0x5d,0x01,0x23,0x03,0x33,0x01,0x35,0x7f,0xb6,0xa8,0x04,0xc2,0x01,0x48,0x00,0x01,0x00,0x00,0x04,0x76,0x02,0x29,0x06,0x1c,0x00,0x2d,0x00,0xa0,0xb5,0x2a,0x08,0x11,0x14,0x48,0x26,0xb8,0xff,0xf8,0x40,0x4f,0x11,0x14,0x48,0x2a,0x1c,0x01,0x1c,0x10,0x11,0x14,0x48,0x06,0x12,0x16,0x12,0x02,0x19,0x07,0x11,0x01,0x2a,0x09, +0x0d,0x01,0x08,0x0c,0x01,0x39,0x0c,0x10,0x19,0x1f,0x48,0x07,0x03,0x17,0x03,0x27,0x03,0x03,0x3e,0x00,0x7f,0x2d,0x8f,0x2d,0x02,0x2d,0x2d,0x16,0x0a,0x9f,0x23,0xaf,0x23,0x02,0x23,0x40,0x09,0x0c,0x48,0x23,0x16,0x10,0x17,0x20,0x17,0x30,0x17,0x03,0x17,0x00,0x00,0x0f,0xc0,0x05,0x01,0x05,0x28,0xb8,0xff,0xc0,0x40,0x12,0x15,0x1a, +0x48,0x28,0x17,0xaf,0x0f,0xbf,0x0f,0xcf,0x0f,0x03,0x0f,0xc0,0x1e,0x01,0x1e,0x17,0xb8,0x01,0x3a,0x00,0x3f,0xdc,0x71,0xcd,0x71,0x10,0xd4,0x2b,0xcd,0x71,0x11,0x39,0x2f,0x01,0x2f,0x5d,0xcd,0xdc,0x2b,0x71,0xcd,0x11,0x39,0x2f,0x71,0xcd,0x31,0x30,0x5e,0x5d,0x2b,0x5e,0x5d,0x5d,0x5e,0x5d,0x5e,0x5d,0x2b,0x5d,0x2b,0x2b,0x01,0x14, +0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x15,0x23,0x34,0x3e,0x04,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x01,0x37,0x07,0x10,0x1b,0x14,0x15,0x1f,0x14,0x09,0x16,0x24,0x30,0x19,0x32,0x4b,0x35,0x23,0x13,0x08,0x5b,0x09,0x1a,0x2e,0x4a,0x69,0x47,0x2e,0x51,0x3c,0x23,0x18, +0x2d,0x40,0x27,0x2a,0x3c,0x28,0x13,0x05,0x4f,0x0e,0x1e,0x19,0x10,0x0e,0x18,0x1f,0x10,0x1a,0x2b,0x1e,0x11,0x20,0x36,0x45,0x4a,0x49,0x1f,0x20,0x57,0x5e,0x5c,0x48,0x2d,0x1e,0x36,0x4a,0x2c,0x23,0x3f,0x2e,0x1b,0x1b,0x2f,0x3d,0x21,0x00,0x00,0x01,0x00,0x00,0x04,0xb7,0x02,0xce,0x06,0x1c,0x00,0x06,0x00,0x2a,0x40,0x16,0xa5,0x01, +0xb5,0x01,0xc5,0x01,0x03,0x96,0x01,0x01,0x01,0x06,0x04,0x00,0x00,0x02,0x04,0x00,0x06,0x05,0x01,0x04,0x00,0x2f,0xdd,0x32,0xcd,0x32,0x01,0x2f,0xcd,0x39,0x2f,0x12,0x39,0x39,0x5d,0x5d,0x31,0x30,0x01,0x07,0x21,0x15,0x21,0x35,0x01,0x01,0x60,0xc9,0x02,0x37,0xfd,0x32,0x01,0x11,0x05,0xd1,0xd5,0x45,0x45,0x01,0x20,0x00,0x00,0x01, +0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x91,0x40,0x63,0x9c,0x1e,0x01,0x09,0x1e,0x19,0x1e,0x29,0x1e,0x03,0x57,0x1c,0x01,0x98,0x1b,0x01,0xc8,0x1a,0x01,0x9c,0x1a,0x01,0x07,0x0e,0x17,0x0e,0x02,0xf7,0x0e,0x01,0x36,0x0e,0x01,0x66,0x0c,0xe6,0x0c,0xf6,0x0c,0x03,0x55,0x0c,0x01,0x27,0x0c,0x37,0x0c,0x02,0x66,0x0c, +0x76,0x0c,0x86,0x0c,0x03,0x36,0x06,0x01,0x56,0x04,0x01,0x66,0x04,0x76,0x04,0x86,0x04,0x03,0x01,0x84,0x1f,0x08,0x15,0x15,0x12,0x84,0x10,0x1b,0x0a,0x84,0x08,0x08,0x20,0x21,0x16,0x0d,0x0d,0x1b,0x05,0x95,0x18,0x1d,0x16,0x14,0x0f,0x11,0x09,0x00,0x0f,0x00,0x3f,0x32,0x32,0x3f,0x3f,0x33,0xed,0x32,0x32,0x11,0x33,0x11,0x12,0x01, +0x39,0x2f,0xed,0x33,0xdc,0xed,0x33,0x2f,0x10,0xdc,0xed,0x31,0x30,0x5d,0x71,0x5d,0x5d,0x71,0x71,0x71,0x5d,0x5d,0x71,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x69, +0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x16,0x00,0x5a,0x40,0x3a,0x75,0x15, +0x01,0x05,0x14,0x15,0x14,0x25,0x14,0x75,0x14,0x85,0x14,0x95,0x14,0x06,0xe8,0x06,0xf8,0x06,0x02,0xc7,0x06,0xd7,0x06,0x02,0x69,0x03,0x01,0x09,0x09,0x18,0x16,0x84,0x01,0x01,0x18,0x0f,0x0b,0x07,0x84,0x0d,0x10,0x04,0x95,0x13,0x01,0x01,0x13,0x10,0x0e,0x0f,0x0d,0x1b,0x09,0x95,0x0b,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x39,0x2f, +0x10,0xed,0x32,0x01,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfd,0x20,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x01,0x30, +0x01,0x18,0x01,0x46,0xb9,0x8d,0xfe,0x50,0x98,0xfe,0x29,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xf2,0x04,0x18,0x00,0x14,0x00,0x21,0x00,0x72,0x40,0x4d,0xc9,0x21,0xd9,0x21,0x02,0x26,0x20,0x36,0x20,0x02,0xc9,0x1e,0xd9,0x1e,0x02,0x64,0x1e,0x01,0x45,0x1e,0x55,0x1e,0x02,0x44,0x1a,0x54,0x1a,0x02, +0x68,0x0d,0x01,0xa7,0x0c,0x01,0xca,0x09,0xda,0x09,0x02,0x02,0x00,0x13,0x84,0x16,0x12,0x20,0x04,0x01,0x04,0x04,0x23,0x1c,0x83,0x0f,0x0b,0x1f,0x0b,0x02,0x0b,0x12,0x0f,0x10,0x19,0x95,0x0e,0x10,0x05,0x1f,0x95,0x08,0x16,0x04,0x1b,0x00,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0x5d,0xed, +0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x15,0x23,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xf2,0xe2,0xa4,0x04,0x6b,0xf3,0xc1,0xe9,0x01, +0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xa4,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0x98,0x98,0xfe,0x29,0x02,0x87,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfc,0x98,0x01,0x35,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xc3,0x04,0x18,0x00,0x16,0x00,0x5d,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86, +0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x14,0x00,0x12,0x84,0x01,0x01,0x18,0x0b,0x07,0x84,0x09,0x14,0x95,0x16,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x15,0x01,0x1b,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32, +0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0x32,0xce,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x23,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xcb,0xcb,0xfe,0x29,0x04,0x1f,0x01, +0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfe,0x26,0x98,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x2a,0x05,0xec,0x00,0x16,0x00,0x60,0x40,0x3e,0x7a,0x11,0x8a,0x11,0x02,0x10,0x18,0x10,0x14,0x48,0x09,0x10,0x19,0x10,0x29,0x10,0x03,0xc9,0x06,0xd9,0x06,0x02,0x06,0x10,0x1f,0x22,0x48,0x36,0x06,0x01,0x65,0x03,0x01,0x00, +0x00,0x18,0x09,0x84,0x0b,0x07,0x07,0x18,0x15,0x01,0x84,0x12,0x08,0x08,0x0f,0x00,0x95,0x15,0x0f,0x13,0x00,0x0c,0x04,0x95,0x0f,0x16,0x0b,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x11,0x39,0x2f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x31,0x30,0x5d,0x5d,0x2b,0x5d,0x5d,0x2b,0x5d,0x01,0x21,0x11,0x10, +0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x21,0x04,0x2a,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xa4,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9,0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x04,0x5e,0xfe,0x14,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0xec, +0x04,0x18,0x00,0x12,0x00,0x1f,0x00,0x67,0x40,0x46,0xc9,0x1f,0xd9,0x1f,0x02,0x26,0x1e,0x36,0x1e,0x02,0xc9,0x1c,0xd9,0x1c,0x02,0x45,0x1c,0x55,0x1c,0x02,0x44,0x18,0x54,0x18,0x02,0xa7,0x07,0x01,0xca,0x04,0xda,0x04,0x02,0x10,0x0e,0x84,0x14,0x0d,0x00,0x12,0x10,0x12,0x20,0x12,0x03,0x12,0x12,0x21,0x1a,0x83,0x1f,0x06,0x01,0x06, +0x10,0x95,0x12,0x1b,0x0d,0x0f,0x0c,0x17,0x95,0x09,0x10,0x00,0x1d,0x95,0x03,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x5d,0xed,0x12,0x39,0x2f,0x5d,0x33,0x33,0xfd,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x00,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33, +0x15,0x21,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x6c,0x04,0x6b,0xf3,0xc1,0xe9,0x01,0x00,0xd8,0xd2,0x5e,0x04,0xa4,0xdc,0xfe,0x80,0xa5,0x7f,0x94,0xac,0xa6,0x83,0x90,0xab,0xb0,0xc8,0x01,0x13,0xed,0xff,0x01,0x31,0xa6,0x8e,0xfa,0xc1,0x98,0x03,0xa4,0x95,0x7e,0xae,0xdb,0xc7,0xb1,0xc9,0xc5,0x00, +0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x2a,0x05,0xec,0x00,0x09,0x00,0x26,0x40,0x13,0x09,0x06,0x09,0x06,0x0b,0x04,0x07,0x84,0x01,0x06,0x95,0x04,0x0f,0x02,0x00,0x09,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x03,0xf8, +0xfc,0xae,0xa4,0x02,0xe0,0xfd,0x20,0x02,0xae,0x05,0xec,0xfe,0x14,0x98,0xfd,0x30,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0x2a,0x04,0x18,0x00,0x14,0x00,0x5c,0x40,0x0b,0x28,0x13,0x01,0x76,0x13,0x86,0x13,0x96,0x13,0x03,0x12,0xb8,0xff,0xe0,0x40,0x2f,0x10,0x14,0x48,0x05,0x12,0x15,0x12,0x25,0x12,0x03,0x86,0x06,0x96,0x06,0x02,0xe8, +0x05,0x01,0x28,0x03,0x01,0x69,0x03,0x01,0x09,0x14,0x84,0x01,0x01,0x16,0x0d,0x07,0x84,0x0b,0x0e,0x04,0x95,0x11,0x10,0x0c,0x0f,0x09,0x95,0x0b,0x1b,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xc6,0x31,0x30,0x5d,0x71,0x5d,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22, +0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0x02,0xe0,0xfc,0x7c,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfc,0x79,0x98,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x02,0x00,0xa6,0xfe,0x29,0x05,0x2b,0x04,0x18,0x00,0x0c,0x00,0x38,0x00,0x8c,0x40,0x5b, +0x98,0x35,0x01,0x97,0x23,0x01,0x66,0x23,0x76,0x23,0x86,0x23,0x03,0x65,0x22,0x01,0x89,0x1e,0x01,0x96,0x15,0x01,0x87,0x15,0x01,0x5a,0x10,0x01,0x49,0x10,0x01,0x9a,0x0a,0x01,0x89,0x0a,0x01,0x78,0x0a,0x01,0x69,0x0a,0x01,0x97,0x07,0x01,0x66,0x03,0x76,0x03,0x86,0x03,0x03,0x28,0x27,0x25,0x84,0x0d,0x01,0x01,0x19,0x3a,0x05,0x84, +0x33,0x1b,0x17,0x84,0x19,0x01,0x28,0x95,0x25,0x0d,0x0d,0x12,0x08,0x95,0x2e,0x16,0x1c,0x1d,0x1d,0x12,0x95,0x20,0x10,0x1a,0x0f,0x18,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x33,0x11,0x33,0x3f,0xed,0x11,0x39,0x2f,0xc4,0xfd,0xc4,0x01,0x2f,0xfd,0xc4,0xde,0xed,0x11,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x03,0xe9,0x80,0x58,0x67, +0x4f,0x47,0x2e,0x41,0x28,0x12,0x03,0x2e,0x4e,0x69,0x3e,0x57,0x8b,0x62,0x35,0xa4,0xa4,0x04,0x40,0xd4,0x8a,0x5a,0x99,0x71,0x40,0x01,0x9a,0x9a,0x2c,0x56,0x80,0x54,0x45,0x74,0x54,0x2f,0x36,0x60,0x85,0x4f,0x01,0x5c,0x9e,0x6a,0x61,0x54,0x61,0x27,0x40,0x51,0x01,0x60,0x3a,0x5d,0x42,0x23,0x41,0x6b,0x88,0x47,0xfc,0x16,0x05,0xd7, +0xb4,0x60,0x6c,0x38,0x67,0x90,0x57,0x98,0x9e,0x52,0x88,0x63,0x37,0x32,0x58,0x77,0x46,0x52,0x84,0x5c,0x31,0x00,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0xca,0x05,0xec,0x00,0x16,0x00,0x23,0x00,0x55,0x40,0x36,0x68,0x0f,0x01,0x4a,0x0f,0x5a,0x0f,0x02,0x48,0x0e,0x58,0x0e,0x02,0x68,0x09,0x01,0x5a,0x09,0x01,0x4d,0x09,0x01,0x66,0x05, +0x01,0x55,0x05,0x01,0x43,0x05,0x01,0x01,0x00,0x15,0x84,0x12,0x17,0x17,0x25,0x1b,0x83,0x0c,0x01,0x17,0x95,0x12,0x15,0x0f,0x14,0x00,0x1e,0x95,0x07,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc4,0xfd,0xc4,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0xfd,0xcd,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x33,0x11,0x33,0x05,0x21,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x04,0xca,0xce,0x39,0x6f,0xa3,0x6b,0x7b,0xb8,0x79,0x3c,0x40,0x7b,0xb4,0x74,0x01,0x13,0xa8,0xce,0xfe,0x8a,0xfe,0xff,0xa7,0xa1,0x05,0x05,0xa1,0x8e,0x48,0x6b,0x45,0x22,0x03,0x76,0xfe,0x8d, +0x69,0xc3,0x96,0x59,0x52,0x92,0xc8,0x75,0x70,0xba,0x84,0x49,0x01,0xec,0xfe,0x14,0x8a,0xba,0xb9,0xc8,0xc9,0x46,0x72,0x92,0x4b,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x4e,0xb3,0x37,0x10,0x01,0x10,0xb8,0xff,0xd0,0x40,0x2c,0x11,0x14,0x48,0x71,0x10,0x01,0x06,0x10,0x16,0x10,0x26,0x10,0x03,0x86, +0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x68,0x03,0x01,0x11,0x84,0x01,0x01,0x13,0x0b,0x07,0x84,0x09,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x08,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x5d,0x2b,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23, +0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0xc3,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0x76,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x05,0x84,0x03,0x04,0x0f,0x01,0x95,0x03,0x1b, +0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x11,0x33,0x2f,0x31,0x30,0x01,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0x2c,0xfe,0x30,0xa4,0xfe,0xc1,0x98,0x05,0xd7,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x0b,0x05,0xec,0x00,0x35,0x00,0x49,0x40,0x29,0x95,0x2c,0x01,0x87,0x2c,0x01,0x28,0x84,0x0d,0x35,0x84,0x01,0x33,0x0d,0x33,0x0d,0x33,0x1a, +0x37,0x1c,0x18,0x84,0x1a,0x34,0x0f,0x1e,0x13,0x95,0x23,0x10,0x1c,0x00,0x19,0x1b,0x2e,0x95,0x03,0x08,0x16,0x00,0x15,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x3f,0x01,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x31,0x30,0x5d,0x5d,0x21,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35, +0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x06,0x0b,0xa4,0x04,0x1a,0x38,0x44,0x51,0x32,0x61,0x80,0x4b,0x1f,0x0d,0x26,0x43,0x37,0x42,0x63,0x42,0x21,0xa4,0xa4,0x04,0x1e,0x41,0x4c,0x5b,0x36,0x54,0x6d, +0x3f,0x18,0x0d,0x2d,0x54,0x47,0x3e,0x5a,0x3b,0x1d,0xa4,0xa2,0x2f,0x45,0x2f,0x17,0x43,0x7c,0xb0,0x6d,0x62,0x50,0x84,0x5f,0x35,0x43,0x6b,0x84,0x40,0xfc,0x0d,0x07,0xc3,0xfd,0x6a,0x30,0x49,0x31,0x18,0x41,0x77,0xa9,0x68,0x71,0x51,0x86,0x60,0x35,0x43,0x69,0x80,0x3c,0x02,0x26,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0xb0,0x06,0x02, +0x00,0x15,0x00,0x25,0x00,0xc7,0x40,0x64,0x96,0x1a,0x01,0x96,0x16,0x01,0x48,0x0a,0x58,0x0a,0x02,0x49,0x06,0x59,0x06,0x02,0x5a,0x05,0x01,0x49,0x05,0x01,0x56,0x03,0x01,0x45,0x03,0x01,0x56,0x02,0x01,0x47,0x02,0x01,0x79,0x0c,0x99,0x0c,0x02,0x4c,0x0c,0x5c,0x0c,0x02,0x38,0x0c,0x01,0x0c,0x23,0x0d,0x20,0xb5,0x11,0xc5,0x11,0x02, +0x87,0x11,0x01,0x62,0x11,0x01,0x47,0x11,0x57,0x11,0x02,0x46,0x14,0x56,0x14,0x02,0x11,0x14,0x10,0x12,0x12,0x00,0x83,0x10,0x20,0x20,0x20,0x30,0x20,0x03,0x20,0x20,0x08,0x27,0xe9,0x0f,0x01,0x0f,0x10,0x0d,0x12,0x48,0x0f,0x10,0xb8,0xff,0xc0,0x40,0x21,0x0e,0x12,0x48,0x10,0x36,0x0e,0x01,0x0e,0x0d,0x0d,0x18,0x83,0x20,0x08,0x01, +0x08,0x14,0x23,0x95,0x0f,0x10,0x0d,0x03,0x0e,0x0c,0x11,0x0f,0x0e,0x00,0x1c,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x3f,0xc5,0x12,0x17,0x39,0xfd,0xc4,0x01,0x2f,0x5d,0xed,0x33,0x2f,0x33,0x5d,0xcd,0x2b,0x32,0x2b,0x5d,0x11,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x39,0x5d,0x5d, +0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x01,0x37,0x17,0x07,0x01,0x21,0x15,0x23,0x16,0x25,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x37,0x36,0x35,0x26,0x27,0x27,0x23,0x22,0x04,0x50,0x85,0x8b,0xee,0xe7,0x87,0x84,0x89,0x78,0xce,0xfe,0x55, +0x97,0x88,0x43,0x01,0xda,0x01,0x76,0xd9,0x78,0xfd,0x14,0x5b,0x54,0x5c,0xa6,0xab,0x54,0x4b,0x01,0x8c,0x2c,0x5b,0xd6,0x02,0x04,0xf1,0x93,0x98,0x94,0x8f,0xe9,0xfb,0x88,0x78,0x0f,0x01,0x21,0xe3,0x5a,0x65,0xfe,0xbd,0x8a,0x96,0x2c,0x69,0xa9,0xab,0x6a,0x73,0x74,0x66,0xb2,0xe6,0x73,0x1f,0x00,0x01,0x00,0x90,0xfe,0x29,0x03,0xe2, +0x05,0xec,0x00,0x11,0x00,0x37,0x40,0x21,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95,0x02,0x05,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x23,0x11, +0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x11,0x00,0x98,0x40,0x2c,0x75,0x10, +0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x00,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b, +0x06,0x4d,0x01,0x01,0x13,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xa4,0xee,0x78,0xa4,0xa4,0xa4,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2, +0xfe,0x5f,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0xb2,0x05,0xc6,0x00,0x14,0x00,0x2f,0x00,0x93,0x40,0x5d,0x99,0x27,0x01,0x46,0x24,0x01,0x37,0x1d,0x01,0x9a,0x12,0x01,0x85,0x08,0x01,0x78,0x15,0x88,0x15,0x02,0x75,0x07,0x01,0x66,0x07,0x01,0x84,0x1a,0x01,0x00,0x1a,0x05,0x91,0x19,0x01,0x19,0x2f,0x2f,0x2a,0x0f,0x99,0x17,0x01,0x17, +0x90,0x18,0x01,0x18,0x16,0x15,0x15,0x05,0x83,0x0f,0x2a,0x01,0x2a,0x21,0x1f,0x84,0x0f,0x0f,0x01,0x0f,0x6c,0x00,0x7c,0x00,0x02,0x4a,0x00,0x5a,0x00,0x02,0x00,0x2f,0x19,0x15,0x18,0x04,0x16,0x1a,0x1a,0x16,0x0a,0x95,0x23,0x25,0x16,0x20,0x15,0x16,0x00,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0x33,0x5d,0x5d, +0x01,0x2f,0x5d,0xed,0xc4,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xcd,0x5d,0x32,0x5d,0x11,0x12,0x39,0x2f,0xcd,0x5d,0x11,0x39,0x39,0x5d,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x34,0x2e,0x02,0x01,0x37,0x17,0x07,0x05,0x07,0x1e,0x03,0x15,0x11,0x23, +0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0xf0,0x48,0x5c,0x35,0x14,0x25,0x41,0x56,0x32,0x47,0x6b,0x47,0x24,0x2c,0x4d,0x69,0xfe,0x4e,0x6e,0x8f,0x37,0x01,0x89,0x71,0x49,0x7f,0x5d,0x35,0xa4,0x04,0x62,0xc6,0x54,0x8d,0x67,0x3a,0x29,0x5b,0x91,0x67,0x03,0x73,0x44,0x80,0x78,0x73,0x36,0x47,0x6a,0x47,0x24, +0x33,0x5a,0x78,0x45,0x28,0x56,0x79,0x5a,0x45,0x01,0x9e,0xd6,0x3c,0x63,0xda,0x75,0x29,0x5a,0x72,0x8e,0x5b,0xfe,0x06,0xa2,0xba,0x32,0x64,0x95,0x63,0x5a,0xaa,0xaa,0xad,0x5d,0x00,0x01,0x00,0xa6,0xfe,0x29,0x04,0xd4,0x04,0x18,0x00,0x14,0x00,0x58,0x40,0x0b,0x28,0x10,0x01,0x76,0x10,0x86,0x10,0x96,0x10,0x03,0x0f,0xb8,0xff,0xe0, +0x40,0x2c,0x10,0x14,0x48,0x05,0x0f,0x15,0x0f,0x25,0x0f,0x03,0x86,0x05,0x96,0x05,0x02,0x28,0x02,0x01,0x68,0x02,0x01,0x14,0x12,0x84,0x01,0x01,0x16,0x0a,0x06,0x84,0x09,0x0c,0x03,0x95,0x0e,0x10,0x0a,0x0f,0x08,0x15,0x12,0x95,0x00,0x1b,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xfd,0xcd,0x31, +0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x01,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x15,0x03,0x54,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xdc,0xfe,0x29,0x04,0x1f,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0xfc,0x4f,0x98,0x00,0x00,0x02, +0x00,0x60,0xff,0xe8,0x03,0x89,0x06,0x02,0x00,0x20,0x00,0x31,0x00,0x79,0x40,0x4c,0x49,0x2d,0x59,0x2d,0x02,0x76,0x24,0x86,0x24,0x96,0x24,0x03,0x67,0x24,0x01,0x75,0x12,0x01,0x66,0x12,0x01,0x86,0x0d,0x01,0x77,0x0d,0x01,0x49,0x03,0x59,0x03,0x99,0x03,0x03,0x2f,0x10,0x21,0x1f,0x01,0x1c,0x09,0x09,0x13,0x84,0x15,0x2b,0x2b,0x33, +0x21,0x84,0x1c,0x00,0x00,0x0f,0x1c,0x01,0x1c,0x26,0x95,0x17,0x19,0x16,0x14,0x15,0x09,0x0b,0x95,0x08,0x06,0x01,0x1f,0x2f,0x95,0x10,0x01,0x10,0x00,0x3f,0xc4,0xfd,0xc4,0x3f,0x33,0xed,0x32,0x3f,0x3f,0x33,0xed,0x01,0x2f,0x5d,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0x31,0x30,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x07,0x33,0x20,0x11,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x10,0x21,0x23,0x06,0x06,0x60,0x5a,0x21,0x77,0xa0,0xc0,0x6b,0x43,0x29,0x34,0x3e,0x50, +0x8a,0x71,0x55,0x19,0x5e,0x01,0xcd,0xa4,0x04,0x6a,0xd1,0x99,0xad,0x17,0x1d,0x34,0xa8,0x1c,0x33,0x48,0x2d,0x3f,0x68,0x4a,0x28,0xfe,0xc9,0x78,0x1b,0x13,0x04,0x18,0x62,0xb1,0x87,0x50,0x0a,0x8d,0x0d,0x3c,0x63,0x7e,0x43,0xfe,0x1e,0xfd,0xca,0xa0,0xb8,0xde,0xe0,0x8d,0xf3,0x68,0xfe,0x24,0x53,0x78,0x4f,0x26,0x30,0x52,0x6e,0x3e, +0x85,0x01,0x69,0x61,0xec,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x04,0xaf,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x13,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x12,0x95,0x10,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x00,0x15,0x00,0x3f, +0x3f,0x33,0xed,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xc4,0x32,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x15,0x23,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x01,0x71,0xcd,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, +0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0x98,0x00,0x01,0xff,0x70,0xfe,0x29,0x01,0x80,0x04,0x00,0x00,0x0a,0x00,0x16,0x40,0x0a,0x0a,0x84,0x05,0x09,0x09,0x0f,0x06,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xce,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x11,0x11,0x33,0x01,0x80,0xcb,0xb5,0x90,0x8c,0xe0,0xa4,0x09, +0xe8,0xf8,0x98,0x01,0x3b,0x04,0x04,0x00,0x00,0x01,0xff,0xf6,0xff,0xe8,0x04,0x0b,0x05,0xec,0x00,0x13,0x00,0x3e,0x40,0x25,0x9a,0x10,0x01,0x8b,0x10,0x01,0x29,0x10,0x01,0x76,0x03,0x01,0x67,0x03,0x01,0x13,0x01,0x84,0x11,0x0d,0x0b,0x09,0x84,0x07,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x09,0x0f,0x12,0x95,0x01,0x00,0x00,0x3f,0xed, +0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xed,0xc4,0x32,0x2f,0xed,0xce,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x03,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x23,0x0a,0x01,0x66,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xc3,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e, +0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x01,0x00,0x60,0xfe,0x29,0x03,0xc6,0x04,0x18,0x00,0x2f,0x00,0x71,0x40,0x49,0x66,0x2d,0x76,0x2d,0x02,0x79,0x2b,0x01,0x48,0x22,0x58,0x22,0x02,0x9a,0x03,0x01,0x89,0x03,0x01,0x99,0x02,0x01,0x88,0x02,0x01,0x93,0x0f,0x01,0x64,0x0f,0x74,0x0f,0x84,0x0f,0x03,0x0f,0x13,0x1a,0x1a,0x0a, +0x84,0x9c,0x25,0x01,0x8b,0x25,0x01,0x6c,0x25,0x01,0x25,0x20,0x29,0x29,0x31,0x13,0x84,0x20,0x2f,0x84,0x00,0x00,0x20,0x19,0x95,0x1b,0x1b,0x00,0x00,0x2c,0x95,0x05,0x10,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x5d,0x5d,0x5d,0xed,0x32,0x2f,0x11,0x39,0x5d,0x5d,0x31,0x30, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x60,0x44,0x76,0x9e,0x5b,0x5b,0x9e,0x76,0x44,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x1a,0x33,0x49,0x30,0x01,0xfe,0xfd, +0xf1,0x51,0x7f,0x58,0x2f,0x3d,0x63,0x80,0x84,0x80,0x63,0x3d,0x8c,0x85,0x85,0x8c,0x02,0x89,0x5c,0x94,0x67,0x38,0x38,0x67,0x94,0x5c,0x5c,0x8e,0x6e,0x57,0x4b,0x46,0x4d,0x5b,0x3b,0x24,0x3d,0x2e,0x1a,0x94,0x30,0x57,0x77,0x48,0x4e,0x77,0x5d,0x4d,0x48,0x4a,0x5c,0x72,0x4b,0x7e,0x86,0x86,0x7e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00, +0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x98,0x40,0x2c,0x75,0x11,0x01,0x92,0x10,0x01,0x82,0x10,0x01,0x6a,0x03,0x01,0x75,0x10,0x01,0x01,0x15,0x09,0x15,0x0a,0x0f,0x0c,0x04,0x95,0x0f,0x10,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x01,0xb8,0xff,0xf6,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff, +0xf8,0xb3,0x0c,0x06,0x4d,0x01,0xb8,0xff,0xf8,0x40,0x1e,0x0b,0x06,0x4d,0x01,0x01,0x14,0x0c,0x08,0x06,0x0d,0x06,0x4d,0x08,0x06,0x0c,0x06,0x4d,0x08,0x06,0x0b,0x06,0x4d,0x08,0x84,0x09,0x02,0x0d,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb3,0x0c,0x06,0x4d,0x09,0xb8,0xff,0xfe,0xb6,0x0b,0x06,0x4d,0x09,0x2f,0x14,0x01,0x5d,0x2f,0x2b,0x2b, +0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2, +0x02,0x48,0x01,0x46,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd9,0xcd,0x00,0x01,0x00,0x60,0xfe,0x29,0x02,0xec,0x04,0x1c,0x00,0x29,0x00,0x6a,0x40,0x41,0xb7,0x29,0x01,0xa6,0x29,0x01,0x88,0x25,0x01,0x9a,0x1f,0x01,0x89,0x1f,0x01,0x99,0x1e,0x01,0x8a,0x1e,0x01,0x65,0x0a,0x01,0x47,0x09,0x01,0x67,0x08,0x01,0x67,0x01,0x01,0x27, +0x28,0x28,0x29,0x95,0x29,0x01,0x29,0x11,0x11,0x03,0x84,0x26,0x23,0x23,0x2b,0x0e,0x84,0x16,0x23,0x03,0x11,0x29,0x28,0x95,0x26,0x27,0x10,0x11,0x95,0x12,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x2f,0x32,0x5d,0x11,0x33,0x2f,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x07,0x06,0x06,0x15,0x14,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x37,0x36,0x36,0x35,0x34,0x27,0x01,0x25,0x17,0x07,0x02,0x64,0x11,0x13,0x34,0x3b,0x31,0x46,0x3a,0x38,0x22,0x0b,0x12,0x4e,0x01,0xad,0xfe,0x53,0x73,0x6c,0x06, +0x0d,0x15,0x0f,0x1b,0x4c,0x56,0x58,0x27,0x14,0x10,0x0c,0xfe,0x9c,0x01,0x07,0x5f,0x8d,0x01,0xa4,0x19,0x37,0x23,0x29,0x61,0x3b,0x30,0x48,0x41,0x41,0x29,0x0e,0x2b,0x0e,0x45,0x94,0x68,0x70,0x0c,0x24,0x28,0x29,0x13,0x22,0x54,0x59,0x58,0x27,0x13,0x26,0x10,0x19,0x12,0x02,0x08,0xbd,0x84,0x66,0x00,0x00,0x01,0x00,0x90,0xfe,0x29, +0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x5b,0x40,0x38,0x9c,0x1e,0x01,0x85,0x0c,0x01,0x66,0x0c,0x76,0x0c,0x02,0x86,0x03,0x01,0x77,0x03,0x01,0x66,0x03,0x01,0x02,0x84,0x1f,0x08,0x16,0x14,0x12,0x84,0x10,0x1b,0x0b,0x84,0x08,0x05,0x95,0x1d,0x9d,0x1b,0x01,0x48,0x1b,0x58,0x1b,0x02,0x1b,0x15,0x0d,0x95,0x18,0x16,0x13,0x1b,0x11,0x01, +0x0a,0x0f,0x00,0x3f,0xc4,0xc4,0x3f,0x3f,0xed,0x33,0x33,0x5d,0x5d,0xd4,0xed,0x01,0x2f,0xed,0x33,0xdc,0xed,0xc4,0x33,0x10,0xdc,0xed,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x23,0x22,0x26,0x27,0x06, +0x23,0x20,0x11,0x90,0xa4,0x69,0x7c,0x69,0x93,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6d,0xd1,0x69,0x9c,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xaa,0x98,0xc0,0x86,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb5,0x91,0x02,0x48,0xfa,0x29,0x02,0x79,0xba,0x75,0x5f,0xd4,0x01,0xa1,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x04,0x04,0x18, +0x00,0x2d,0x00,0x44,0x00,0x86,0x40,0x57,0x66,0x40,0x01,0x67,0x3e,0x01,0x94,0x39,0x01,0x76,0x39,0x86,0x39,0x02,0x69,0x36,0x01,0x5a,0x29,0x01,0x49,0x29,0x01,0x67,0x17,0x01,0x93,0x16,0x01,0x86,0x16,0x01,0x75,0x16,0x01,0x66,0x16,0x01,0x95,0x15,0x01,0x85,0x14,0x01,0x77,0x0f,0x01,0x75,0x0e,0x01,0x89,0x02,0x99,0x02,0x02,0x1f, +0x1f,0x11,0x84,0x33,0x2e,0x42,0x84,0x00,0x00,0x07,0x33,0x33,0x26,0x46,0x3b,0x84,0x07,0x07,0x1b,0x84,0x26,0x2e,0x38,0x1f,0x95,0x21,0x1b,0x38,0x95,0x0c,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x2f,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x3e,0x03,0x17,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x04,0x15,0x14,0x06, +0x01,0x5c,0x22,0x32,0x3c,0x32,0x22,0x43,0x78,0xa6,0x64,0x64,0xa8,0x78,0x43,0x4d,0x7d,0xa0,0xa6,0xa0,0x3e,0x10,0x15,0x2f,0x33,0x02,0xb1,0xfd,0x4f,0x39,0x5a,0x3f,0x21,0x28,0x23,0x3c,0x46,0x25,0x0a,0x6e,0x43,0x90,0x78,0x4d,0x2a,0x4d,0x6b,0x41,0x96,0x8f,0x1e,0x2e,0x34,0x2e,0x1e,0x0b,0x01,0x01,0x29,0x45,0x40,0x40,0x48,0x55, +0x35,0x58,0x81,0x55,0x29,0x39,0x65,0x8d,0x54,0x54,0x9b,0x8f,0x87,0x7f,0x7a,0x3b,0x0f,0x2d,0x0e,0x23,0x36,0x94,0x23,0x40,0x5b,0x38,0x2d,0x51,0x20,0x35,0x54,0x4b,0x48,0x43,0x3a,0x70,0x77,0x84,0x4e,0x3b,0x60,0x44,0x25,0x68,0x6a,0x23,0x41,0x3e,0x3d,0x41,0x45,0x27,0x2a,0x44,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x87,0x04,0x18, +0x00,0x17,0x00,0x55,0x40,0x31,0x86,0x10,0x96,0x10,0x02,0x75,0x10,0x01,0x6a,0x03,0x01,0x59,0x03,0x01,0x06,0x14,0x01,0x14,0x00,0x15,0x15,0x12,0x84,0x02,0x00,0x00,0x07,0x02,0x02,0x09,0x19,0x0d,0x0b,0x07,0x84,0x09,0x00,0x14,0x95,0x09,0x17,0x15,0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xc4,0xed,0x39, +0x01,0x2f,0xfd,0xc4,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x25,0x24,0x11,0x10,0x25,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x21,0x15,0x21,0x02,0x5b,0x01,0x17,0xfe,0xfe,0x85,0xa1,0xa4,0xa4,0x04,0x74,0xe6,0x9e,0xd0, +0xc0,0x01,0x31,0xfd,0xd4,0x47,0x95,0x01,0x63,0x01,0x3e,0x11,0xb9,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xea,0xf0,0xf7,0xbb,0x8c,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x11,0x00,0xa5,0x40,0x3c,0x79,0x06,0x01,0x9b,0x06,0x01,0x8b,0x06,0x01,0x66,0x0b,0x01,0x56,0x0b,0x01,0x79,0x06,0x01,0x0d,0x10,0x0b,0x0c, +0x00,0x4c,0x38,0x03,0x01,0x01,0x15,0x03,0x0c,0x95,0x05,0x16,0x10,0x0f,0x08,0x0f,0x01,0x00,0x06,0x0d,0x06,0x4d,0x00,0x06,0x0c,0x06,0x4d,0x00,0x06,0x0b,0x06,0x4d,0x00,0x84,0x7f,0x0f,0x01,0x0f,0xb8,0xff,0xfa,0xb3,0x0d,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0xb3,0x0c,0x06,0x4d,0x0f,0xb8,0xff,0xfc,0x40,0x2a,0x0b,0x06,0x4d,0x0f,0x0f, +0x13,0x0a,0x06,0x0d,0x06,0x4d,0x0a,0x06,0x0c,0x06,0x4d,0x0a,0x06,0x0b,0x06,0x4d,0x0a,0x84,0x07,0x0a,0x0d,0x06,0x4d,0x07,0x06,0x0c,0x06,0x4d,0x07,0x02,0x0b,0x06,0x4d,0x07,0x2f,0x13,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x33,0x00,0x3f,0x3f,0x3f,0xed,0x32, +0x3f,0x5d,0x31,0x30,0x2b,0x01,0x5d,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x90,0xfe,0x29, +0x04,0xbe,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x28,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x00,0x12,0x84,0x03,0x01,0x0f,0x0f,0x15,0x09,0x84,0x07,0x11,0x00,0x09,0x0f,0x0c,0x95,0x02,0x05,0x16,0x13,0x95,0x01,0x1b,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x33,0x04,0xbe,0xfe,0x80,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0xa4,0xdc,0xfe,0x29,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xf8,0xd5, +0x00,0x01,0x00,0x8f,0xff,0xe8,0x06,0x17,0x04,0x18,0x00,0x26,0x00,0x53,0x40,0x33,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c,0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x14,0x1d,0x0f,0x17,0x95,0x0d,0x10,0x16, +0x01,0x0a,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0xc4,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x33, +0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41,0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfd,0xaa,0xa2,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x02,0x4e,0xaa,0x61,0x61, +0xd8,0xce,0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0xf8,0x04,0x18,0x00,0x12,0x00,0x53,0x40,0x0b,0x28,0x11,0x01,0x76,0x11,0x86,0x11,0x96,0x11,0x03,0x10,0xb8,0xff,0xe0,0x40,0x29,0x10,0x14,0x48,0x05,0x10,0x15,0x10,0x25,0x10,0x03,0x86,0x06,0x96,0x06,0x02,0x28,0x03,0x01,0x69,0x03,0x01,0x12,0x84,0x01,0x01,0x14,0x0b,0x07,0x84,0x09, +0x0c,0x04,0x95,0x0f,0x10,0x0a,0x0f,0x09,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x5d,0x71,0x71,0x5d,0x2b,0x5d,0x71,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0xa4,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74, +0xdc,0xa8,0xb2,0x02,0x48,0x01,0x46,0xb9,0x8d,0xfb,0xe1,0x05,0xd7,0xaa,0xc2,0xd9,0xcd,0x00,0x00,0x02,0x00,0x60,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x28,0x00,0x3d,0x00,0x70,0x40,0x47,0x55,0x31,0x01,0x46,0x31,0x01,0x45,0x2b,0x01,0x5a,0x21,0x01,0x7a,0x1b,0x01,0x69,0x1b,0x01,0x38,0x12,0x01,0x74,0x0e,0x01,0x9a,0x08,0x01,0x89, +0x08,0x01,0x8a,0x07,0x01,0x54,0x02,0x01,0x45,0x02,0x01,0x27,0x15,0x00,0x84,0x38,0x38,0x1e,0x3f,0x0b,0x83,0x0a,0x0a,0x2e,0x83,0x1e,0x28,0x0f,0x29,0x95,0x25,0x23,0x10,0x33,0x95,0x17,0x0b,0x19,0x16,0x10,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0xce,0x33,0xed,0x3f,0x33,0xed,0x3f,0x01,0x2f,0xed,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f, +0xed,0xc4,0xc4,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x10,0x00,0x23,0x22,0x2e,0x04,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x05,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, +0x35,0x35,0x34,0x2e,0x02,0x04,0x10,0xfe,0xf7,0xf5,0x20,0x59,0x60,0x5f,0x4b,0x2f,0xa8,0x35,0x4f,0x5d,0x27,0x51,0x81,0x5a,0x30,0x04,0x75,0xeb,0x6a,0x9f,0x6a,0x35,0x38,0x73,0xb1,0x79,0xcf,0x64,0x04,0xa4,0xfe,0x3c,0x58,0x7b,0x4e,0x23,0x24,0x4a,0x71,0x4e,0x48,0x73,0x51,0x2b,0x2c,0x4e,0x69,0x52,0xfe,0xe6,0xfe,0xe6,0x0d,0x20, +0x35,0x52,0x70,0x4a,0x3f,0x57,0x35,0x17,0x32,0x65,0x96,0x65,0x70,0xc4,0x50,0x89,0xb7,0x67,0x74,0xcf,0x9b,0x5b,0xa6,0x8e,0x72,0x44,0x74,0x98,0x54,0x4a,0x88,0x68,0x3e,0x38,0x5f,0x7f,0x47,0x97,0x3c,0x6b,0x51,0x30,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x02,0x04,0x00,0x00,0x05,0x00,0x1a,0x40,0x0c,0x01,0x01,0x07,0x00,0x84,0x03, +0x05,0x0f,0x00,0x95,0x03,0x15,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x25,0x21,0x15,0x21,0x11,0x33,0x01,0x4a,0x01,0xb8,0xfd,0xa4,0xa4,0x98,0x98,0x04,0x00,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x06,0x17,0x05,0xec,0x00,0x26,0x00,0x55,0x40,0x35,0x94,0x24,0x01,0x85,0x16,0x01,0x66,0x16,0x76,0x16,0x02,0x9c, +0x11,0x01,0x79,0x03,0x89,0x03,0x02,0x68,0x03,0x01,0x14,0x84,0x12,0x1c,0x1e,0x09,0x84,0x1c,0x00,0x84,0x02,0x0b,0x1c,0x20,0x04,0x95,0x23,0x10,0x1d,0x00,0x14,0x0f,0x17,0x95,0x0d,0x10,0x16,0x0a,0x1b,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x33,0xed,0x3f,0x3f,0x3f,0xed,0x33,0x01,0x2f,0xc4,0xdc,0xed,0x10,0xfd,0xc4,0x10,0xdc,0xed,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x23,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x06,0x17,0xa4,0xd0,0x39,0x5e,0x42,0x25,0xa4,0x04,0x33,0x8b,0x60,0xfe,0xb0,0xa3,0xda,0x36,0x5a,0x41, +0x24,0xa4,0x04,0x3a,0x9c,0x5c,0x96,0xa6,0x02,0x48,0x01,0x46,0x33,0x56,0x71,0x3e,0xfb,0xd3,0x02,0x79,0x5e,0x5c,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x34,0x58,0x74,0x40,0x04,0x3a,0xfd,0x6a,0x61,0x61,0xd8,0xce,0x00,0x02,0x00,0x00,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x62,0x40,0x3b,0x4a,0x21,0x5a,0x21, +0x02,0x43,0x1f,0x53,0x1f,0x02,0x66,0x09,0x76,0x09,0x02,0x12,0x12,0x0a,0x83,0x20,0x20,0x17,0x27,0x05,0x03,0x1a,0x14,0x0f,0x11,0x84,0x01,0x00,0x17,0x11,0x01,0x95,0x17,0x00,0x14,0x10,0x14,0x20,0x14,0x03,0x14,0x16,0x1b,0x1d,0x95,0x0f,0x0d,0x16,0x23,0x95,0x04,0x07,0x10,0x02,0x0f,0x00,0x3f,0x3f,0x33,0xed,0x3f,0x33,0xed,0x3f, +0xdd,0x5d,0xc4,0xfd,0xc4,0x01,0x2f,0xcd,0xc4,0xfd,0x32,0xc4,0xc4,0xc4,0x32,0x11,0x12,0x39,0x2f,0xed,0x32,0x2f,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x15,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x01,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x22,0x06,0xa6,0xa4,0x04,0x79,0xe9,0xc6,0xde,0xfa,0xd9,0xc7,0x6c,0x04,0x03,0x0a,0xfc,0xf6,0xa4,0xa6,0x01,0x4a,0xa5,0x7f,0x95,0xa9,0x9e,0x87,0x8f,0xae,0xa7,0x04,0xa7,0xb4,0xcc,0xfe,0xed,0xe7,0xfe,0xff,0xfe,0xcb,0xac,0xfe,0xc5,0x98,0x98,0x98,0x03,0x70,0x8f,0x7f,0xb1,0xe4,0xcb,0xab,0xc2,0xc7,0x00,0x02,0x00,0x60,0xff,0xe8, +0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x85,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83,0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x0b,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x90, +0x15,0x03,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b,0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1,0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed, +0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x03,0x00,0x60,0xfe,0x29,0x05,0x1f,0x05,0xec,0x00,0x0a,0x00,0x2f,0x00,0x38,0x00,0x93,0x40,0x5e,0x45,0x2d,0x01,0x46,0x2c,0x01,0x95,0x27,0x01,0x76,0x27,0x01,0x99,0x1c,0x01,0x96,0x16,0x01,0x34,0x16,0x01,0x25,0x16,0x01, +0x14,0x16,0x01,0x05,0x16,0x01,0x96,0x15,0x01,0x49,0x10,0x01,0x4c,0x0f,0x01,0x5b,0x08,0x01,0x3a,0x08,0x01,0x29,0x08,0x01,0x39,0x03,0x49,0x03,0x69,0x03,0x03,0x1e,0x83,0x30,0x19,0x2a,0x83,0x00,0x2f,0x05,0x25,0x84,0x19,0x12,0x83,0x13,0x35,0x0d,0x19,0x13,0x13,0x06,0x19,0x19,0x05,0x0d,0x36,0x95,0x25,0x35,0x24,0x00,0x18,0x06, +0x95,0x2f,0x0d,0x13,0x0b,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x2f,0x01,0x2f,0xc4,0xc4,0xde,0xed,0x10,0xfd,0xc4,0xc4,0xdc,0xed,0x10,0xdc,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x34,0x2e,0x02,0x27,0x11,0x3e, +0x03,0x01,0x23,0x11,0x2e,0x03,0x35,0x33,0x14,0x1e,0x02,0x17,0x11,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x14,0x1e,0x02,0x17,0x11,0x22,0x06,0x04,0x6f,0x29,0x53,0x7d,0x54,0x4c,0x7b,0x57,0x2f,0xfe,0xb3,0xa8,0x71,0xc5,0x91,0x53,0xb1,0x38,0x62,0x84,0x4b,0x6d,0x9c,0x63,0x2f,0x37, +0x69,0x99,0x62,0xa8,0x80,0xbf,0x7f,0x3f,0x4e,0x89,0xba,0x6c,0xfe,0x6d,0x29,0x43,0x54,0x2b,0x7c,0x6f,0x01,0xe9,0x3f,0x64,0x50,0x40,0x1b,0xfd,0x4f,0x0b,0x32,0x55,0x7c,0xfc,0x95,0x01,0xc2,0x07,0x49,0x84,0xbd,0x7d,0x50,0x83,0x60,0x3a,0x08,0x02,0xde,0x1e,0x47,0x56,0x67,0x3c,0x46,0x6f,0x4e,0x29,0xfd,0xea,0x1e,0x61,0x7c,0x9b, +0x57,0x7e,0xb7,0x7b,0x42,0x0a,0x04,0xd7,0x30,0x3b,0x2e,0x22,0x0d,0x01,0x56,0x4f,0x00,0x01,0x00,0x90,0xff,0xe8,0x05,0x5e,0x05,0xec,0x00,0x13,0x00,0x42,0x40,0x27,0x76,0x0b,0x01,0x67,0x0b,0x01,0x8b,0x06,0x9b,0x06,0x02,0x28,0x06,0x01,0x11,0x84,0x03,0x01,0x0f,0x13,0x0f,0x13,0x15,0x09,0x84,0x07,0x11,0x0f,0x09,0x00,0x0c,0x95, +0x02,0x05,0x16,0x12,0x95,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x3f,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xc4,0x33,0xed,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x21,0x21,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x21,0x05,0x5e,0xfd,0xe0,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78, +0x9b,0xa4,0x01,0x7c,0xa2,0xba,0x01,0xb4,0x04,0x50,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x98,0x00,0x02,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x00,0x0b,0x00,0x17,0x00,0x36,0x40,0x12,0x00,0xb0,0x06,0x10,0x12,0xb0,0x0c,0x13,0x09,0x03,0x15,0xaf,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0xb8,0xff,0xec,0xb3,0x0c,0x06,0x4d,0x0f, +0xb8,0xff,0xec,0xb6,0x0b,0x06,0x4d,0x0f,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x71,0xe1,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xdf,0x2e,0x41,0x41,0x2e,0x2f,0x42,0x42,0x2f,0x2e,0x41,0x41,0x2e,0x2f, +0x42,0x42,0x03,0x38,0x42,0x2e,0x2e,0x40,0x40,0x2e,0x2e,0x42,0xfc,0xb2,0x42,0x2e,0x2e,0x43,0x43,0x2e,0x2e,0x42,0x00,0x01,0x00,0x2a,0x00,0x00,0x02,0x19,0x00,0xc8,0x00,0x09,0x00,0x35,0x40,0x1f,0x07,0x08,0x08,0x0b,0x73,0x03,0x83,0x03,0x02,0x55,0x03,0x65,0x03,0x02,0x46,0x03,0x01,0x27,0x03,0x37,0x03,0x02,0x03,0x02,0x02,0x03, +0x07,0x05,0x08,0x00,0x15,0x00,0x3f,0x32,0xdd,0x32,0xce,0x32,0x01,0x2f,0x33,0x71,0x71,0x71,0x71,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x22,0x27,0x37,0x16,0x33,0x32,0x37,0x17,0x06,0x01,0x19,0xa6,0x49,0x59,0x27,0x70,0x66,0x7b,0x1e,0x84,0x86,0x42,0x59,0x20,0x63,0x2c,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x69,0x05,0xec,0x00,0x23, +0x00,0x79,0x40,0x4b,0x9b,0x20,0x01,0x85,0x13,0x01,0x76,0x13,0x01,0x67,0x13,0x01,0x85,0x0b,0x01,0x66,0x0b,0x76,0x0b,0x02,0x57,0x0b,0x01,0x9b,0x06,0x01,0x03,0x01,0x23,0x84,0x0f,0x12,0x84,0x21,0x1d,0x1b,0x19,0x84,0x17,0x80,0x0f,0x01,0x4f,0x21,0x01,0x0f,0x21,0x17,0x17,0x21,0x0f,0x03,0x25,0x09,0x84,0x07,0x23,0x95,0x10,0x00, +0x18,0x09,0x0f,0x1c,0x14,0x95,0x1f,0x0c,0x95,0x02,0x05,0x16,0x1a,0x00,0x15,0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xc4,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06, +0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x03,0xe2,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd, +0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0x00,0x00,0x01,0x00,0x90,0xff,0xe8,0x08,0x9b,0x05,0xec,0x00,0x28,0x00,0x8c,0x40,0x58,0x85,0x20,0x01,0x66,0x20,0x76,0x20,0x02,0x57,0x20,0x01,0x9b,0x1b,0x01,0x9a,0x10,0x01,0x85,0x03,0x01,0x66,0x03,0x76,0x03, +0x02,0x18,0x16,0x15,0x84,0x24,0x27,0x01,0x84,0x12,0x0d,0x0b,0x07,0x28,0x28,0x09,0x84,0x07,0x20,0x24,0x80,0x24,0x02,0x3f,0x12,0x01,0x10,0x07,0x70,0x07,0x02,0x24,0x12,0x07,0x07,0x12,0x24,0x03,0x2a,0x1e,0x84,0x1c,0x08,0x00,0x95,0x1e,0x27,0x0f,0x14,0x95,0x25,0x00,0x0c,0x04,0x95,0x0f,0x21,0x95,0x17,0x1a,0x16,0x0b,0x15,0x0f, +0x00,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0xed,0x33,0x3f,0xed,0x3f,0xc4,0xfd,0xce,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x32,0x2f,0x10,0xc4,0x32,0x10,0xfd,0xc4,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23, +0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x21,0x08,0x9b,0xfd,0x20,0xee,0x7b,0xa1,0xa4,0xa4,0x04,0x74,0xdc,0xa8,0xb2,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x02,0xe0,0x03,0x68,0xfe,0x50,0xfe,0xba,0xb9, +0x8d,0x01,0x18,0xfd,0x30,0xaa,0xc2,0xd9,0xcd,0x03,0xc6,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfe,0x14,0x00,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x23,0x00,0x81,0x40,0x52,0x92,0x22,0x01,0x85,0x17,0x01,0x66,0x17,0x76,0x17,0x02,0x57,0x17,0x01,0x9b,0x12,0x01,0x8a, +0x03,0x01,0x79,0x03,0x01,0x68,0x03,0x01,0x0f,0x0d,0x0b,0x84,0x1b,0x1f,0x1d,0x07,0x84,0x09,0x23,0x84,0x02,0x20,0x1b,0x80,0x1b,0x02,0x7f,0x09,0x01,0x10,0x02,0x01,0x1b,0x09,0x02,0x02,0x09,0x1b,0x03,0x25,0x15,0x84,0x13,0x1e,0x04,0x95,0x21,0x10,0x0a,0x95,0x1c,0x00,0x15,0x0f,0x18,0x95,0x0e,0x11,0x16,0x01,0x0c,0x15,0x08,0x1b, +0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0x3f,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20, +0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x33,0x36,0x33,0x20,0x11,0x08,0x69,0xa4,0xee,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x5a,0x02,0x4e,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe, +0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x01,0x00,0x90,0xfe,0x29,0x08,0x69,0x05,0xec,0x00,0x25,0x00,0x81,0x40,0x51,0x85,0x21,0x01,0x66,0x21,0x76,0x21,0x02,0x57,0x21,0x01,0x9c,0x1c,0x01,0x9b,0x10,0x01,0x75,0x03,0x85,0x03,0x02,0x66,0x03,0x01,0x16,0x14,0x84,0x19,0x17,0x25,0x02,0x84,0x11,0x0d,0x0b,0x09,0x84, +0x07,0x80,0x25,0x01,0x4f,0x11,0x01,0xc0,0x07,0x01,0x25,0x11,0x07,0x07,0x11,0x25,0x03,0x27,0x1f,0x84,0x1d,0x08,0x1f,0x0f,0x15,0x95,0x17,0x1b,0x22,0x95,0x18,0x1b,0x0c,0x04,0x95,0x0f,0x16,0x0a,0x15,0x12,0x95,0x00,0x00,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x33,0xd4,0x32,0xed,0x3f,0xed,0x3f,0xc4,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x5d,0x5d,0x5d,0x10,0xed,0xc4,0x33,0x10,0xed,0x10,0xc4,0x33,0xfd,0xcd,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x01,0x21,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x21,0x11,0x33,0x15,0x21,0x11,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x03, +0x3e,0x02,0x7c,0xf8,0x78,0x9b,0xa4,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xfe,0xcb,0xa5,0xfe,0xb7,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x05,0xec,0xfb,0xca,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0xfc,0x00,0xa2,0xba,0x01,0xb4,0x03,0xb8,0xf9,0x6d,0x98,0x02,0x79,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x00,0x00,0x01, +0x00,0x90,0xfe,0x29,0x0a,0xc2,0x05,0xec,0x00,0x31,0x00,0x90,0x40,0x59,0x85,0x2b,0x01,0x76,0x2b,0x01,0x67,0x2b,0x01,0x83,0x1d,0x01,0x66,0x1d,0x76,0x1d,0x02,0x57,0x1d,0x01,0x9b,0x18,0x01,0x9a,0x09,0x01,0x88,0x09,0x01,0x9b,0x06,0x01,0x15,0x13,0x11,0x84,0x21,0x25,0x23,0x0d,0x84,0x0f,0x29,0x84,0x07,0x03,0x01,0x31,0x84,0x2f, +0x21,0x0f,0x07,0x2f,0x2f,0x07,0x0f,0x21,0x04,0x33,0x1b,0x84,0x19,0x24,0x0a,0x95,0x27,0x10,0x10,0x95,0x22,0x00,0x30,0x1b,0x0f,0x2c,0x95,0x02,0x05,0x1e,0x95,0x14,0x17,0x16,0x01,0x12,0x15,0x0e,0x1b,0x00,0x3f,0x3f,0xc4,0x3f,0x33,0xed,0xd4,0x32,0xed,0x3f,0xc4,0x3f,0xed,0x3f,0xed,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x2f,0x10,0xed,0xc4,0x32,0x10,0xed,0x10,0xfd,0xc4,0x33,0x10,0xed,0xc4,0x32,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35,0x11,0x21, +0x11,0x33,0x36,0x33,0x20,0x11,0x15,0x10,0x33,0x32,0x36,0x35,0x11,0x33,0x0a,0xc2,0xa4,0x04,0x66,0xc7,0xfe,0xab,0xc1,0x78,0xa4,0xa4,0xfe,0xcb,0xa4,0x04,0x66,0xd6,0xfe,0x92,0xa3,0xf8,0x78,0x9b,0x02,0x7d,0x04,0x76,0xda,0x01,0x2c,0xdf,0x69,0x9b,0xa4,0xa2,0xba,0x01,0xb4,0xb2,0x01,0x40,0xb9,0x91,0xfb,0xe5,0x07,0x2b,0xfa,0xac, +0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0xb1,0x8f,0x04,0x3a,0xfd,0x6a,0xc2,0xfe,0x5f,0xc1,0xfe,0xbc,0xb1,0x8f,0x02,0x4e,0x00,0x01,0x00,0x83,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x2b,0x00,0x5a,0x40,0x30,0x0f,0x09,0x1c,0x1b,0x11,0x0e,0x7e,0x01,0x2a,0x14,0x01,0x08,0x09,0x1b,0x01,0x01,0x1b,0x09,0x03,0x2d,0x24,0x00, +0x08,0x14,0x23,0x92,0x24,0x11,0x2b,0x92,0x0e,0x00,0x00,0x00,0x24,0x10,0x24,0x02,0x24,0x24,0x08,0x1c,0x12,0x0b,0x07,0x92,0x08,0x03,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x11,0x33, +0x31,0x30,0x13,0x21,0x2e,0x03,0x23,0x23,0x35,0x21,0x15,0x21,0x16,0x16,0x17,0x21,0x15,0x21,0x06,0x06,0x07,0x15,0x1e,0x03,0x17,0x13,0x23,0x03,0x2e,0x03,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x37,0x21,0x83,0x01,0xe5,0x08,0x25,0x43,0x63,0x44,0xce,0x03,0x87,0xfe,0xb8,0x1d,0x25,0x06,0x01,0x00,0xfe,0xfb,0x15,0x9b,0x77,0x22,0x38, +0x34,0x33,0x1d,0xff,0xbe,0xe4,0x21,0x3b,0x43,0x51,0x36,0x70,0xcd,0x33,0x5c,0x49,0x33,0x0b,0xfe,0x1d,0x04,0x53,0x2a,0x45,0x31,0x1b,0x8c,0x8c,0x25,0x5d,0x39,0x8c,0x78,0xa9,0x20,0x04,0x10,0x2a,0x37,0x48,0x2e,0xfe,0x65,0x01,0x7e,0x37,0x54,0x38,0x1c,0x89,0x21,0x3b,0x53,0x32,0x00,0x02,0x00,0x37,0x00,0x00,0x04,0x1a,0x05,0x9a, +0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x1f,0x0b,0x00,0x02,0x7e,0x08,0x05,0x00,0x0d,0x05,0x0c,0x03,0x03,0x0d,0x0c,0x01,0x05,0x91,0x00,0x06,0x10,0x06,0x02,0x06,0x06,0x03,0x08,0x91,0x09,0x03,0x03,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x11,0x12,0x01,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x31, +0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x25,0x35,0x21,0x15,0x04,0x1a,0xfe,0x62,0xa8,0xfe,0x63,0x03,0xe3,0xfc,0x1d,0x03,0xe3,0x03,0xdc,0xfc,0x24,0x03,0xdc,0x98,0x8e,0x98,0x98,0xff,0xff,0x00,0x90,0x00,0x00,0x01,0x66,0x05,0xd9,0x02,0x06,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x00,0x0d, +0x00,0x18,0x00,0x22,0xbc,0x00,0x00,0x01,0x86,0x00,0x0e,0x00,0x13,0x01,0x86,0x40,0x09,0x08,0x10,0x9a,0x0b,0x10,0x16,0x9a,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf4, +0x3d,0x77,0xaf,0x72,0xd9,0xea,0xf4,0xeb,0xe0,0xd9,0xac,0xfe,0xe9,0x8f,0x9c,0x91,0x90,0x8c,0x95,0x02,0x04,0x83,0xc9,0x8a,0x47,0x01,0x06,0xff,0x01,0x14,0x01,0x19,0xfe,0xf0,0xfe,0xf5,0x01,0x93,0xcb,0xd0,0xbf,0xc8,0xcd,0x00,0x00,0x01,0x00,0x79,0x00,0x00,0x02,0x71,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00, +0x01,0x00,0x08,0x01,0x81,0x40,0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0x71,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f, +0x33,0x3f,0x45,0x21,0x00,0x01,0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x00,0x26,0x00,0x34,0xb9,0x00,0x1b,0x01,0x86,0xb5,0x12,0x0a,0x0a,0x00,0x25,0x24,0xb8,0x01,0x86,0xb6,0x00,0x03,0x0a,0x12,0x03,0x24,0x0d,0xb8,0x01,0x7f,0xb5,0x16,0x10,0x24,0x99,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x2f,0x12, +0x39,0x2f,0x39,0xed,0x31,0x30,0x33,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x06,0x15,0x21,0x15,0x99,0x32,0x53,0x69,0x6e,0x69,0x53,0x32,0x7a,0x67,0x27,0x55,0x57,0x54,0x25,0x48,0xb5,0x67,0x5b,0x8a,0x5e,0x30,0x33,0x52,0x6a,0x6f,0x6a,0x52,0x33,0x02,0x93, +0x58,0x48,0x6d,0x56,0x44,0x3b,0x3a,0x40,0x4e,0x33,0x55,0x5d,0x12,0x20,0x2c,0x1a,0x9d,0x36,0x31,0x2b,0x4f,0x70,0x45,0x40,0x67,0x55,0x46,0x3e,0x39,0x3b,0x3f,0x26,0x93,0x00,0x00,0x01,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x00,0x2a,0x00,0x43,0x40,0x1b,0x16,0x89,0x1b,0x13,0x25,0x03,0x08,0x23,0x23,0x08,0x00,0x89,0x0f,0x0f, +0x2c,0x08,0x25,0x12,0x9a,0x08,0x05,0x1b,0x1e,0x13,0x13,0x05,0x18,0xb8,0x01,0x7f,0xb4,0x1e,0x10,0x0a,0x9a,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02, +0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb8,0x4a,0x85,0xb9,0x6f,0xcb,0x7b,0x91,0xbb,0x4a,0x7a,0x56,0x2f,0xfe,0x71,0x77,0x71,0x01,0x62,0xfe,0xf2,0x4b,0x90,0x42,0x88,0xbe,0x5b,0x92,0x68,0x38,0xfe,0xe1,0x4b,0x7c,0x59,0x32,0x02,0x60, +0x9f,0x71,0x3e,0x4e,0xb0,0x73,0x27,0x48,0x66,0x40,0x01,0x18,0x8b,0x01,0x09,0xf3,0x33,0x33,0xa0,0x52,0x32,0x5b,0x7e,0x4b,0xfe,0xe6,0x53,0x04,0x07,0x37,0x59,0x78,0x00,0x02,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x0e,0x00,0x15,0x00,0x31,0xb2,0x10,0x0e,0x05,0xb8,0x01,0x85,0x40,0x12,0x0f,0x09,0x06,0x06,0x17,0x09,0x11, +0x07,0x0e,0x10,0x09,0x01,0x10,0x9a,0x04,0x07,0x18,0x06,0x00,0x2f,0x3f,0x33,0xed,0x32,0x32,0x3f,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xb8,0xb8,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe, +0x24,0x01,0xe9,0x46,0x83,0x7b,0x72,0x04,0x02,0xfc,0x83,0x85,0xfe,0x68,0x01,0x98,0x7d,0x64,0xe3,0xea,0xe9,0x6b,0xfc,0x83,0x02,0x89,0x75,0xbc,0x9b,0x82,0x00,0x01,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x00,0x23,0x00,0x35,0xb9,0x00,0x1c,0x01,0x85,0xb3,0x17,0x17,0x08,0x00,0xb8,0x01,0x86,0xb2,0x0f,0x08,0x12,0xb8,0x01,0x7f, +0xb7,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x0f,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e, +0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92,0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x1c,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00, +0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x36,0xb3,0x12,0x2b,0x19,0x00,0xbb,0x01,0x86,0x00,0x21,0x00,0x19,0x01,0x86,0x40,0x0c,0x0a,0x26,0x9a,0x19,0x1c,0x1c,0x30,0x14,0x9a,0x0f,0x06,0x30,0xb8,0x01,0x7f,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x2f, +0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8, +0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b,0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d, +0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f,0x54,0x75,0x00,0x00,0x01,0x00,0x45,0xfe,0x66,0x03,0xd5,0x04,0x00,0x00,0x12,0x00,0x22,0xb9,0x00,0x07,0x01,0x86,0x40,0x0c,0x0f,0x08,0x08,0x00,0x10,0x00,0x00,0x10,0x99,0x11,0x0f,0x08,0x00,0x2f,0x3f,0xed,0x39,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x0e,0x03,0x02, +0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02,0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x03,0xa1,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2, +0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47,0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x05,0x15,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x18,0x47,0x9a,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f, +0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31, +0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35,0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57, +0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58,0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x00,0x20,0x00,0x34,0x00,0x33,0x40,0x16,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x10,0x0a,0xb9,0x01,0x7f,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed, +0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec, +0x4e,0x96,0xd8,0x8a,0x8e,0x6c,0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x01,0x8a,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a, +0xb0,0x7f,0x46,0x57,0xa7,0xf4,0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0xff,0xff,0x00,0x5c,0xff,0xe7,0x03,0xf4,0x04,0x19,0x02,0x06,0x0c,0xb9,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x02,0xe0,0x04,0x1e,0x00,0x0e,0x00,0x24,0xbc,0x00,0x00,0x01,0x86,0x00,0x01,0x00,0x08,0x01,0x81,0x40, +0x09,0x02,0x0d,0x07,0x07,0x01,0x0d,0x10,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x02,0xe0,0xac,0x13,0x49,0x5b,0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x46,0x03,0x3b,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xff,0xff, +0x00,0x99,0x00,0x00,0x03,0xd3,0x04,0x1b,0x02,0x06,0x0c,0xbb,0x00,0x00,0xff,0xff,0x00,0x7b,0xfe,0x50,0x03,0xb8,0x04,0x1b,0x02,0x06,0x0c,0xbc,0x00,0x00,0xff,0xff,0x00,0x32,0xfe,0x68,0x04,0x2e,0x04,0x02,0x00,0x06,0x0c,0xbd,0x00,0x00,0xff,0xff,0x00,0xa4,0xfe,0x4d,0x03,0xc9,0x04,0x00,0x02,0x06,0x0c,0xbe,0x00,0x00,0xff,0xff, +0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2,0x02,0x06,0x0c,0xbf,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x66,0x03,0xf0,0x04,0x00,0x00,0x06,0x0c,0xc0,0x1b,0x00,0xff,0xff,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x02,0x06,0x0c,0xc1,0x00,0x00,0xff,0xff,0x00,0x5e,0xfe,0x4e,0x03,0xec,0x04,0x19,0x02,0x06,0x0c,0xc2,0x00,0x00,0x00,0x02, +0x00,0x56,0xff,0xe7,0x03,0xfc,0x05,0xb2,0x00,0x10,0x00,0x18,0x00,0x20,0x40,0x10,0x00,0x89,0x11,0x11,0x1a,0x15,0x89,0x0a,0x13,0x9a,0x0f,0x07,0x17,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x20,0x03, +0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x03,0xfc,0x41,0x7b,0xb3,0x72,0x6c,0xa9,0x74,0x3c,0x3f,0x7a,0xb5,0x75,0x01,0xc3,0xa8,0xfe,0xdd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x02,0xd3,0xb4,0xfe,0xea,0xbf,0x63,0x5f,0xb6,0x01,0x09,0xab,0xbc,0x01,0x20,0xc3,0x63,0xfd,0x11,0x02,0x64,0xfd,0x91,0xfd,0xbb,0x00,0x00,0x01,0x00,0x53,0x00,0x00, +0x02,0x43,0x05,0xba,0x00,0x0e,0x00,0x28,0x40,0x13,0x0e,0x8a,0x00,0x06,0x00,0x06,0x00,0x0f,0x10,0x07,0x99,0x01,0x0c,0x06,0x06,0x0c,0x07,0x00,0x18,0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x0e,0x03,0x07,0x35,0x3e,0x03,0x37,0x33,0x11,0x01,0x9f,0x13,0x49,0x5b, +0x65,0x30,0x36,0x79,0x75,0x68,0x26,0x3e,0x04,0xd7,0x13,0x31,0x30,0x2a,0x0c,0xa6,0x0f,0x33,0x3f,0x45,0x21,0xfa,0x46,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x03,0xe2,0x05,0xb2,0x00,0x2a,0x00,0x2e,0x40,0x17,0x1e,0x13,0x89,0x0a,0x21,0x00,0x00,0x2c,0x1d,0x89,0x21,0x00,0x0e,0x1d,0x99,0x20,0x18,0x0a,0x0a,0x05,0x9a,0x0e,0x07,0x00, +0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x21,0x15,0x21,0x35,0x34,0x3e,0x02,0x37,0x3e,0x03,0x03,0x04,0x29,0x47,0x60,0x38,0x30,0x5c,0x57,0x51, +0x23,0x45,0xab,0x7b,0x58,0x96,0x6e,0x3f,0x27,0x4f,0x78,0x51,0x65,0x83,0x4d,0x1f,0x02,0xca,0xfc,0x8b,0x28,0x5c,0x95,0x6c,0x4e,0x69,0x40,0x1b,0x04,0x22,0x42,0x62,0x41,0x20,0x1a,0x2e,0x40,0x27,0xb0,0x43,0x47,0x33,0x62,0x90,0x5d,0x55,0x8a,0x7a,0x70,0x3a,0x48,0x66,0x59,0x59,0x3a,0x93,0x47,0x5c,0x8c,0x7e,0x7e,0x4f,0x38,0x66, +0x66,0x69,0x00,0x01,0x00,0x7b,0xff,0xe7,0x03,0xb9,0x05,0xb2,0x00,0x29,0x00,0x55,0x40,0x32,0x16,0x89,0x1a,0x13,0x24,0x03,0x08,0x22,0x22,0x08,0x00,0x89,0x0f,0x0f,0x2b,0x08,0x39,0x1a,0x01,0x2f,0x1a,0x01,0x1a,0x1a,0x18,0x9a,0x1d,0x24,0x12,0x9a,0x13,0x13,0x1d,0x07,0x36,0x08,0x01,0x00,0x08,0x10,0x08,0x20,0x08,0x03,0x08,0x08, +0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x2f,0x5d,0x5d,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x35,0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36, +0x33,0x32,0x1e,0x02,0x15,0x10,0x05,0x15,0x1e,0x03,0x03,0xb9,0x49,0x85,0xba,0x70,0xcd,0x79,0x91,0xbb,0x4b,0x79,0x57,0x2f,0xfe,0x70,0x77,0x71,0x01,0x62,0xfe,0xf2,0x98,0x85,0x89,0xbd,0x5a,0x92,0x68,0x39,0xfe,0xe2,0x49,0x7c,0x5a,0x33,0x01,0x96,0x61,0x9f,0x71,0x3e,0x4e,0xb0,0x72,0x26,0x48,0x66,0x40,0x01,0x19,0x8b,0x01,0x08, +0xf4,0x66,0x9f,0x52,0x32,0x5a,0x7e,0x4c,0xfe,0xe5,0x51,0x04,0x08,0x37,0x58,0x77,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x56,0x05,0x9a,0x00,0x0e,0x00,0x15,0x00,0x2e,0x40,0x16,0x10,0x0e,0x04,0x8a,0x07,0x07,0x17,0x0f,0x09,0x04,0x08,0x99,0x09,0x01,0x0f,0x0f,0x06,0x11,0x0e,0x06,0x06,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x01,0x2f,0x33,0x12,0x39,0x2f,0xed,0x33,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x35,0x3e,0x03,0x37,0x01,0x21,0x11,0x0e,0x03,0x03,0x76,0xe0,0xe0,0xa2,0xfd,0x5e,0x5e,0xc0,0xaf,0x95,0x33,0xfe,0x24,0x01,0xe9,0x4b,0x86,0x79,0x6e,0x05,0x9a,0xfc,0x4d,0x96,0xfe,0xaf,0x01,0x51,0x8e,0x6a,0xf1, +0xf8,0xf7,0x71,0xfc,0x4d,0x02,0xbe,0x83,0xce,0xa8,0x88,0x00,0x00,0x01,0x00,0xa4,0xff,0xe7,0x03,0xc9,0x05,0x9a,0x00,0x23,0x00,0x3d,0x40,0x21,0x1c,0x8a,0x1a,0x17,0x17,0x08,0x00,0x89,0x0f,0x0f,0x25,0x08,0x12,0x9a,0x1f,0x1f,0x0a,0x1b,0x99,0x18,0x06,0x32,0x08,0x01,0x20,0x08,0x01,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed, +0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x39,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x21,0x15,0x21,0x03,0x36,0x36,0x33,0x32,0x1e,0x02,0x03,0xc9,0x48,0x85,0xbc,0x73,0xc8,0x61,0x92, +0x99,0x4e,0x7d,0x58,0x2f,0xbc,0xb3,0x1d,0x40,0x40,0x3d,0x19,0x31,0x02,0x97,0xfd,0xf7,0x1d,0x20,0x48,0x1c,0x72,0xb4,0x7d,0x41,0x01,0xb6,0x69,0xaa,0x7a,0x42,0x3c,0xae,0x5e,0x2e,0x52,0x74,0x45,0x8c,0x9f,0x02,0x03,0x04,0x03,0x02,0xcf,0x94,0xfe,0x5b,0x02,0x03,0x3c,0x6f,0xa1,0x00,0x02,0x00,0x6f,0xff,0xe7,0x03,0xfe,0x05,0xb2, +0x00,0x20,0x00,0x34,0x00,0x37,0x40,0x1c,0x12,0x0a,0x00,0x89,0x21,0x21,0x36,0x2b,0x19,0x89,0x0a,0x26,0x9a,0x1a,0x1c,0x1c,0x30,0x0f,0x12,0x12,0x14,0x9a,0x0f,0x07,0x30,0x9a,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xfe,0x44,0x78,0xa6,0x61,0x6c,0xab,0x77,0x3e,0x53,0x99,0xd8,0x85,0x94,0x5a,0x6f,0x7b,0x60,0x9a,0x6e,0x3b, +0x04,0x63,0xe4,0x5e,0x97,0x6b,0x3a,0xa8,0x26,0x47,0x68,0x42,0x3d,0x68,0x4c,0x2b,0x2a,0x4c,0x69,0x40,0x3e,0x66,0x48,0x28,0x01,0xc7,0x69,0xb0,0x80,0x47,0x5a,0xa9,0xf4,0x99,0xbb,0x01,0x31,0xd9,0x76,0x29,0x9b,0x39,0x56,0x9d,0xde,0x88,0xb3,0x40,0x75,0xa2,0x78,0x4b,0x78,0x54,0x2d,0x2e,0x4f,0x69,0x3b,0x4a,0x81,0x60,0x37,0x2f, +0x54,0x75,0x00,0x01,0x00,0x45,0x00,0x00,0x03,0xd5,0x05,0x9a,0x00,0x12,0x00,0x24,0x40,0x11,0x07,0x89,0x0f,0x00,0x08,0x00,0x08,0x00,0x14,0x10,0x00,0x10,0x99,0x11,0x06,0x08,0x18,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x0e,0x03,0x02,0x02,0x07,0x23,0x36,0x12,0x12,0x3e,0x02, +0x37,0x21,0x35,0x21,0x03,0xd5,0x21,0x5d,0x68,0x6c,0x5e,0x47,0x10,0xb0,0x12,0x4b,0x5f,0x6a,0x64,0x53,0x19,0xfd,0x31,0x03,0x90,0x05,0x3b,0x39,0xaa,0xd4,0xf4,0xfe,0xfc,0xfe,0xf5,0x81,0x80,0x01,0x0b,0x01,0x01,0xee,0xc8,0x99,0x2b,0x94,0x00,0x03,0x00,0x5a,0xff,0xe9,0x03,0xfc,0x05,0xb2,0x00,0x23,0x00,0x37,0x00,0x4b,0x00,0x47, +0x40,0x25,0x38,0x89,0x08,0x42,0x8a,0x12,0x05,0x15,0x12,0x08,0x12,0x08,0x12,0x00,0x1a,0x89,0x2e,0x2e,0x4d,0x24,0x89,0x00,0x15,0x05,0x33,0x9a,0x3d,0x3d,0x0d,0x29,0x99,0x1f,0x19,0x47,0x9a,0x0d,0x07,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39, +0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x5a,0x24,0x43,0x63,0x3f,0x5d,0x6e,0x3d,0x6c,0x94,0x56,0x57,0x94,0x6c,0x3c,0x6e,0x5b,0x3e,0x62,0x43,0x24,0x44,0x7b,0xab,0x67,0x66,0xaa,0x7c,0x45,0xb2,0x29,0x4b,0x6b,0x41,0x3f,0x6a,0x4d,0x2b,0x29,0x4c,0x6a,0x42,0x3e,0x69,0x4d,0x2c,0x33,0x25,0x41,0x56,0x31,0x31,0x57,0x40,0x26,0x25,0x40,0x57,0x32,0x35, +0x57,0x3f,0x22,0x01,0x90,0x39,0x73,0x64,0x52,0x18,0x34,0xa3,0x63,0x4f,0x86,0x62,0x37,0x38,0x62,0x86,0x4e,0x63,0xa3,0x34,0x18,0x52,0x64,0x73,0x39,0x5e,0x9c,0x6f,0x3e,0x3e,0x6f,0x9c,0x6c,0x43,0x6c,0x4c,0x29,0x2a,0x4c,0x6c,0x42,0x3c,0x69,0x50,0x2e,0x2b,0x4d,0x6b,0x02,0x59,0x33,0x57,0x41,0x25,0x26,0x41,0x57,0x32,0x34,0x58, +0x40,0x25,0x26,0x41,0x58,0x00,0x00,0x02,0x00,0x5e,0xff,0xe7,0x03,0xec,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x35,0x40,0x1b,0x21,0x00,0x89,0x08,0x17,0x10,0x10,0x36,0x2b,0x89,0x17,0x30,0x99,0x0f,0x12,0x12,0x05,0x26,0x9a,0x1c,0x07,0x08,0x08,0x0a,0x9a,0x05,0x19,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0x39,0xed,0x01, +0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xec,0x4e,0x96,0xd8,0x8a,0x8e,0x6c, +0x77,0x87,0x61,0x99,0x6a,0x38,0x04,0x5c,0xe4,0x5c,0x9a,0x70,0x3e,0x45,0x7b,0xa9,0x64,0x6c,0xa7,0x72,0x3c,0xb1,0x2b,0x4c,0x69,0x3e,0x3b,0x66,0x4b,0x2b,0x29,0x4c,0x6b,0x41,0x39,0x65,0x4b,0x2b,0x03,0x23,0xc5,0xfe,0xcd,0xd5,0x6f,0x32,0x9d,0x43,0x50,0x99,0xe0,0x91,0xb9,0x41,0x77,0xa4,0x63,0x6a,0xb0,0x7f,0x46,0x57,0xa7,0xf4, +0x0a,0x53,0x88,0x61,0x35,0x2f,0x55,0x75,0x45,0x4c,0x78,0x53,0x2c,0x2b,0x49,0x63,0x00,0x02,0x00,0x56,0xff,0xe8,0x03,0xfc,0x05,0xb2,0x00,0x0a,0x00,0x12,0x00,0x88,0x40,0x1a,0x0f,0x9a,0x00,0x19,0x0b,0x9a,0x06,0x07,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x89,0x11,0xb8,0xff,0xf0,0xb3, +0x0d,0x06,0x4d,0x11,0xb8,0xff,0xe0,0xb6,0x0c,0x06,0x4d,0x30,0x11,0x01,0x11,0xb8,0xff,0xe0,0x40,0x1d,0x0b,0x06,0x4d,0x20,0x11,0x40,0x11,0x02,0x11,0x11,0x14,0x0d,0x08,0x0d,0x06,0x4d,0x0d,0x08,0x0c,0x06,0x4d,0x0d,0x08,0x0b,0x06,0x4d,0x0d,0x89,0x03,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d, +0x03,0xb8,0xff,0xe0,0xb6,0x0b,0x06,0x4d,0x2f,0x03,0x01,0x03,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x05,0x22,0x02,0x11,0x10,0x12,0x33,0x20,0x11,0x10,0x02,0x03,0x20,0x11,0x10,0x21,0x20,0x11,0x10,0x02,0x1a,0xd5,0xef,0xf9, +0xeb,0x01,0xc2,0xfe,0xcd,0xfe,0xcd,0x01,0x2d,0x01,0x29,0x18,0x01,0x6e,0x01,0x5a,0x01,0x7c,0x01,0x86,0xfd,0x21,0xfe,0x94,0xfe,0x81,0x05,0x3f,0xfd,0x91,0xfd,0xba,0x02,0x50,0x02,0x65,0x00,0x01,0x00,0xa8,0x00,0x00,0x03,0xdb,0x05,0xba,0x00,0x09,0x00,0x7e,0xb5,0x26,0x06,0x36,0x06,0x02,0x06,0xb8,0xff,0xf8,0x40,0x2d,0x0d,0x06, +0x4d,0x04,0x08,0x0d,0x06,0x4d,0x06,0x04,0x07,0x05,0x08,0x02,0x99,0x01,0x18,0x05,0x07,0x07,0x01,0x05,0x01,0x00,0x01,0x00,0x01,0x08,0x08,0x0d,0x06,0x4d,0x08,0x08,0x0c,0x06,0x4d,0x08,0x08,0x0b,0x06,0x4d,0x08,0x8a,0x03,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd0,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb3,0x0b, +0x06,0x4d,0x03,0xb8,0xff,0xf0,0xb6,0x0b,0x01,0x4d,0x03,0x03,0x0b,0x0a,0x11,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x33,0x2f,0x2f,0x11,0x33,0x2f,0x00,0x3f,0x33,0x3f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x31,0x30,0x5d,0x21,0x21,0x35,0x21,0x11,0x05,0x35,0x25,0x11,0x21,0x03,0xdb,0xfc,0xd5,0x01,0x44, +0xfe,0xb4,0x01,0xf0,0x01,0x43,0x90,0x04,0x5a,0x63,0x9c,0x97,0xfa,0xd6,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0xcd,0x05,0xb2,0x00,0x17,0x00,0xa3,0xb3,0x78,0x08,0x01,0x15,0xb8,0xff,0xe8,0x40,0x36,0x0c,0x00,0x4d,0x11,0x06,0x0e,0x02,0x15,0x99,0x01,0x18,0x0b,0x0b,0x09,0x9a,0x0e,0x07,0x0b,0x00,0x10,0x0c,0x06,0x4d,0x00,0x18,0x0b, +0x0d,0x01,0x4c,0x00,0x00,0x11,0x08,0x0d,0x06,0x4d,0x11,0x08,0x0c,0x06,0x4d,0x11,0x08,0x0b,0x06,0x4d,0x11,0x8a,0x20,0x06,0x30,0x06,0x02,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x19,0x0b,0xb8,0xff,0xf8,0x40,0x0c,0x0d,0x06,0x4d,0x0b, +0x16,0x20,0x0b,0x0c,0x01,0x4c,0x16,0x01,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x01,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x01,0x2f,0x2b,0x2b,0x33,0x2b,0x33,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x2b,0x2f,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x32,0x12,0x39,0x39,0x31,0x30,0x01,0x2b,0x5d,0x21, +0x21,0x35,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x01,0x15,0x21,0x03,0xc0,0xfc,0xa0,0x01,0xa2,0xa0,0x89,0x8e,0x83,0xc0,0xb0,0xa8,0xdf,0xc0,0xdc,0x98,0xc5,0xfe,0xb5,0x02,0x9b,0x92,0x01,0xa3,0xa0,0xd5,0x79,0x7c,0x88,0xa4,0xac,0x83,0xd0,0xaf,0x8a,0xfe,0xf9,0xc3,0xfe,0xb9, +0x04,0x00,0x00,0x01,0x00,0x83,0xff,0xe8,0x03,0xc0,0x05,0xb2,0x00,0x21,0x00,0xe5,0x40,0x3a,0x76,0x1c,0x01,0x74,0x16,0x01,0x7a,0x00,0x01,0x12,0x11,0x00,0x01,0x19,0x09,0x9a,0x0a,0x0a,0x14,0x34,0x01,0x01,0x00,0x01,0x10,0x01,0x20,0x01,0x03,0x01,0x01,0x03,0x9a,0x20,0x19,0x3b,0x11,0x01,0x2f,0x11,0x01,0x11,0x11,0x0f,0x9a,0x14, +0x07,0x19,0x09,0x10,0x0c,0x06,0x4d,0x09,0x70,0x11,0x01,0x11,0xb8,0xff,0xf0,0x40,0x3f,0x0d,0x06,0x4d,0x11,0x17,0x06,0x0c,0x06,0x4d,0x17,0x06,0x0b,0x06,0x4d,0x17,0x89,0x0d,0x10,0x0d,0x06,0x4d,0x0d,0x10,0x0c,0x06,0x4d,0x0d,0x14,0x0b,0x06,0x4d,0x0d,0x09,0x11,0x0d,0x03,0x00,0x1d,0x08,0x0d,0x06,0x4d,0x1d,0x08,0x0c,0x06,0x4d, +0x1d,0x08,0x0b,0x06,0x4d,0x1d,0x89,0x7f,0x06,0x01,0x06,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf8,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x23,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x00,0x2f,0x2b,0x2b,0x2b,0x11, +0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x12,0x17,0x39,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2f,0x2b,0x5d,0x2f,0x2b,0x39,0x00,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x5d,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x5d,0x5d,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35, +0x33,0x20,0x11,0x34,0x21,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x10,0x05,0x15,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x83,0x93,0xb9,0x96,0xb3,0xfe,0x71,0x77,0x71,0x01,0x63,0xfe,0xf1,0x97,0x86,0x8a,0xbc,0xb5,0xd9,0xfe,0xe0,0x9b,0xb7,0xfe,0xeb,0xe3,0xcc,0x35,0xb1,0x74,0x96,0x7f,0x01,0x19,0x8b,0x01,0x08,0xf4,0x67,0xa0,0x52, +0xc0,0x96,0xfe,0xe5,0x51,0x04,0x0f,0xbb,0x8c,0xc1,0xed,0x00,0x00,0x02,0x00,0x0e,0x00,0x00,0x04,0x0a,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x8a,0x40,0x16,0x39,0x07,0x79,0x07,0x02,0x76,0x06,0x01,0x09,0x00,0x00,0x02,0x06,0x0b,0x0d,0x06,0x4c,0x02,0x8a,0x0b,0x07,0x03,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xd6,0xb4, +0x0b,0x0c,0x06,0x4c,0x03,0xb8,0xff,0xe0,0xb3,0x0d,0x01,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0b,0x0c,0x01,0x4c,0x03,0x03,0x14,0x12,0x05,0xb8,0xff,0xf8,0x40,0x15,0x0c,0x0d,0x06,0x4c,0x2f,0x05,0x3f,0x05,0x4f,0x05,0x03,0x05,0x01,0x05,0x9a,0x09,0x06,0x12,0x12,0x03,0x0f,0xb8,0xff,0xf0,0xb7,0x0c,0x00,0x4d,0x0f,0x07,0x06,0x03, +0x18,0x00,0x3f,0x3f,0x33,0x2b,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x5d,0x2b,0x32,0x11,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x33,0x33,0xe9,0x2b,0x32,0x2f,0x32,0x31,0x30,0x00,0x5d,0x01,0x5d,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x34,0x37,0x23,0x06,0x07,0x01,0x04,0x0a,0xb8,0xa2,0xfd,0x5e,0x02, +0x7e,0xc6,0xb8,0xfe,0xa6,0x04,0x04,0x0e,0x29,0xfe,0x47,0x01,0x7d,0xfe,0x83,0x01,0x7d,0x6b,0x03,0xb2,0xfc,0x68,0x02,0x6c,0x42,0x52,0x24,0x4a,0xfd,0x6e,0x00,0x01,0x00,0xa4,0xff,0xe8,0x03,0xc8,0x05,0x9a,0x00,0x19,0x00,0xb1,0x40,0x32,0x7a,0x00,0x01,0x00,0x01,0x0b,0x09,0x9a,0x12,0x12,0x0c,0x20,0x01,0x30,0x01,0x02,0x01,0x01, +0x03,0x9a,0x18,0x19,0x0f,0x99,0x0c,0x06,0x0e,0x00,0x0e,0x15,0x08,0x0d,0x06,0x4d,0x15,0x08,0x0c,0x06,0x4d,0x15,0x08,0x0b,0x06,0x4d,0x15,0x89,0x7f,0x06,0x01,0x06,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb6,0x0b,0x06,0x4d,0x06,0x06,0x1b,0x00,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xe0,0x40,0x14, +0x0c,0x06,0x4d,0x00,0x10,0x06,0x0c,0x06,0x4d,0x10,0x0e,0x0b,0x06,0x4d,0x10,0x8b,0x70,0x0b,0x01,0x0b,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x0b,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x0b,0xb8,0xff,0xf8,0x40,0x09,0x0b,0x06,0x4d,0x0b,0x20,0x0d,0x01,0x4d,0x0b,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x33,0x2b,0x2b,0x12,0x39, +0x2f,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x32,0x11,0x33,0x31,0x30,0x5d,0x37,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x04,0x23,0x22,0xa4,0x93,0x98,0x98,0xba,0xbe,0xb1,0x3c,0xa5, +0x02,0xb6,0xfd,0xe5,0x42,0x38,0xe6,0xfc,0xfe,0xf1,0xec,0xc7,0x23,0xae,0x5f,0xac,0x8e,0x8d,0x9e,0x0c,0x02,0xcf,0x94,0xfe,0x5c,0x04,0xe7,0xc9,0xd0,0xfe,0x00,0x02,0x00,0x6e,0xff,0xe8,0x03,0xfe,0x05,0xb2,0x00,0x16,0x00,0x22,0x00,0xae,0x40,0x3b,0x7a,0x14,0x01,0x76,0x0a,0x01,0x29,0x14,0x39,0x14,0x02,0x06,0x0f,0x15,0x17,0x9a, +0x09,0x09,0x15,0x1d,0x9a,0x0f,0x19,0x01,0x01,0x03,0x9a,0x15,0x07,0x01,0x40,0x0c,0x00,0x4d,0x01,0x01,0x0c,0x08,0x0d,0x06,0x4d,0x0c,0x08,0x0c,0x06,0x4d,0x0c,0x08,0x0b,0x06,0x4d,0x0c,0x89,0x20,0x20,0x30,0x20,0x02,0x20,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x20,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x20,0xb8,0xff,0xe4,0x40,0x19, +0x0b,0x06,0x4d,0x20,0x20,0x24,0x1a,0x06,0x08,0x0d,0x06,0x4d,0x06,0x08,0x0c,0x06,0x4d,0x06,0x08,0x0b,0x06,0x4d,0x06,0x89,0x12,0xb8,0xff,0xd4,0xb3,0x0d,0x06,0x4d,0x12,0xb8,0xff,0xd6,0xb3,0x0c,0x06,0x4d,0x12,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x12,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x32,0x12,0x39,0x2f,0x2b,0x2b,0x2b, +0x5d,0xe9,0x2b,0x2b,0x2b,0x32,0x2f,0x2b,0x00,0x3f,0xed,0x32,0x2f,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x01,0x15,0x26,0x23,0x22,0x02,0x11,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x02,0x11,0x10,0x00,0x21,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03, +0xa6,0x6f,0x7b,0xbf,0xe5,0x04,0x64,0xe4,0xbc,0xde,0xfe,0xc4,0xd8,0xf6,0x01,0x42,0x01,0x08,0x96,0xfe,0xf2,0x7f,0x9e,0x9d,0x82,0x7c,0x98,0x92,0x05,0x89,0x9b,0x39,0xfe,0xac,0xfe,0xe3,0xcb,0xf1,0xca,0xd3,0xfe,0xf5,0x01,0x58,0x01,0x37,0x01,0x79,0x01,0xc2,0xfd,0x44,0xac,0x75,0x93,0xd0,0xb5,0x8b,0x98,0xac,0x00,0x01,0x00,0x56, +0x00,0x00,0x03,0xf2,0x05,0x9a,0x00,0x06,0x00,0xbc,0x40,0x0b,0x73,0x01,0x01,0x02,0x18,0x00,0x04,0x99,0x05,0x06,0x03,0xb8,0xff,0xd8,0x40,0x0b,0x0b,0x0d,0x01,0x4c,0x01,0x28,0x0b,0x0d,0x01,0x4c,0x03,0xb8,0xff,0xf4,0x40,0x09,0x0d,0x06,0x4d,0x01,0x0c,0x0d,0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x01,0x10,0x0c, +0x06,0x4d,0x03,0xb8,0xff,0xf0,0x40,0x14,0x0b,0x06,0x4d,0x01,0x10,0x0b,0x06,0x4d,0x01,0x03,0x00,0x02,0x02,0x04,0x20,0x00,0x30,0x00,0x02,0x00,0xb8,0xff,0xe8,0xb3,0x0d,0x06,0x4d,0x00,0xb8,0xff,0xf0,0xb3,0x0c,0x06,0x4d,0x00,0xb8,0xff,0xf0,0x40,0x0d,0x0b,0x06,0x4d,0x00,0x20,0x0b,0x0c,0x01,0x4c,0x00,0x00,0x08,0x04,0xb8,0xff, +0xe0,0xb3,0x0d,0x06,0x4d,0x04,0xb8,0xff,0xe0,0xb3,0x0c,0x06,0x4d,0x04,0xb8,0xff,0xe0,0x40,0x0e,0x0b,0x06,0x4d,0x04,0x40,0x0b,0x01,0x4d,0x04,0x40,0x0b,0x00,0x4d,0x04,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x2b,0x5d,0x12,0x39,0x2f,0x12,0x39,0x39,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed, +0x39,0x3f,0x31,0x30,0x01,0x5d,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x03,0xf2,0xfd,0xc8,0xaa,0x02,0x19,0xfd,0x2d,0x03,0x9c,0x05,0x66,0xfa,0x9a,0x05,0x06,0x94,0x00,0x00,0x03,0x00,0x64,0xff,0xe8,0x03,0xee,0x05,0xb2,0x00,0x15,0x00,0x1f,0x00,0x29,0x00,0xfa,0x40,0x26,0x7b,0x13,0x01,0x7b,0x0f,0x01,0x74,0x08,0x01,0x74,0x04,0x01, +0x76,0x07,0x01,0x29,0x08,0x0b,0x00,0x4d,0x35,0x1f,0x01,0x36,0x0a,0x01,0x36,0x1d,0x01,0x76,0x1e,0x01,0x20,0x08,0x0d,0x06,0x4d,0x1e,0xb8,0xff,0xf8,0x40,0x38,0x0d,0x06,0x4d,0x20,0x00,0x0b,0x03,0x1e,0x1e,0x06,0x25,0x9a,0x11,0x19,0x19,0x9a,0x06,0x07,0x00,0x0b,0x1e,0x20,0x04,0x03,0x16,0x89,0x09,0x18,0x0d,0x01,0x4d,0x09,0x09, +0x0e,0x08,0x0d,0x06,0x4d,0x0e,0x08,0x0c,0x06,0x4d,0x0e,0x08,0x0b,0x06,0x4d,0x0e,0x89,0x20,0x28,0x30,0x28,0x02,0x28,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x28,0xb8,0xff,0xe8,0xb3,0x0c,0x06,0x4d,0x28,0xb8,0xff,0xe8,0x40,0x0a,0x0b,0x06,0x4d,0x28,0x28,0x2b,0x14,0x1c,0x89,0x03,0xb8,0xff,0xf8,0xb3,0x0c,0x06,0x4d,0x03,0xb8,0xff, +0xf8,0x40,0x17,0x0b,0x06,0x4d,0x03,0x03,0x22,0x08,0x0d,0x06,0x4d,0x22,0x08,0x0c,0x06,0x4d,0x22,0x08,0x0b,0x06,0x4d,0x22,0x89,0x14,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x14,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x14,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0x2b,0xe9,0x11, +0x12,0x39,0x2f,0x2b,0x2b,0x2b,0x5d,0xe9,0x2b,0x2b,0x2b,0x39,0x2f,0x2b,0xe9,0x12,0x17,0x39,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x17,0x33,0x2b,0x2b,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x2b,0x01,0x5d,0x00,0x5d,0x5d,0x5d,0x5d,0x01,0x35,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x05,0x15,0x04,0x11,0x14,0x04,0x23,0x22,0x26, +0x35,0x10,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x07,0x04,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x9a,0xfe,0xfe,0xec,0xba,0xa8,0xd8,0xfe,0xf6,0x01,0x3a,0xff,0x00,0xe4,0xb8,0xee,0x02,0xb2,0x7c,0x6b,0x64,0x8b,0xe9,0xed,0xf8,0xfe,0xee,0x9f,0x82,0x7c,0x9d,0x02,0xf0,0x04,0x78,0xe4,0x9b,0xc7,0xba,0x92,0xee, +0x84,0x04,0x70,0xfe,0xec,0xb2,0xd2,0xd0,0xa6,0x01,0x14,0x01,0xe0,0x63,0x72,0x77,0x5c,0xbb,0x5f,0x62,0xfa,0x6d,0xcf,0x6b,0x89,0x87,0x67,0xd8,0x00,0x02,0x00,0x5e,0xff,0xe8,0x03,0xec,0x05,0xb2,0x00,0x17,0x00,0x23,0x00,0xc1,0x40,0x29,0x79,0x14,0x01,0x74,0x15,0x01,0x76,0x04,0x01,0x2d,0x04,0x3d,0x04,0x02,0x29,0x14,0x39,0x14, +0x02,0x08,0x10,0x0a,0x9a,0x1e,0x1e,0x10,0x70,0x01,0x01,0x01,0x01,0x03,0x9a,0x16,0x19,0x18,0x9a,0x10,0x07,0x21,0x00,0xb8,0xff,0xea,0x40,0x17,0x0c,0x06,0x4d,0x00,0x13,0x08,0x0d,0x06,0x4d,0x13,0x08,0x0c,0x06,0x4d,0x13,0x08,0x0b,0x06,0x4d,0x21,0x13,0x89,0x06,0xb8,0xff,0xf8,0xb3,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf0,0xb3,0x0c, +0x06,0x4d,0x06,0xb8,0xff,0xe8,0x40,0x1e,0x0b,0x06,0x4d,0x20,0x06,0x30,0x06,0x02,0x06,0x06,0x25,0x00,0x1b,0x08,0x0d,0x06,0x4d,0x1b,0x08,0x0c,0x06,0x4d,0x1b,0x08,0x0b,0x06,0x4d,0x1b,0x89,0x0d,0xb8,0xff,0xd8,0xb3,0x0d,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0c,0x06,0x4d,0x0d,0xb8,0xff,0xd8,0xb3,0x0b,0x06,0x4d,0x0d,0x2f,0x2b, +0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x33,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xe9,0x33,0x2b,0x2b,0x2b,0x2f,0x2b,0x2f,0x00,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x5d,0x11,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x5d,0x5d,0x5d,0x5d,0x00,0x5d,0x37,0x35,0x16,0x33,0x32,0x12,0x11,0x06,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x00,0x33,0x32,0x12, +0x11,0x10,0x00,0x21,0x22,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0xac,0x78,0x86,0xc3,0xd9,0x02,0x02,0x5c,0xe4,0xb8,0xec,0x01,0x03,0xca,0xd4,0xed,0xfe,0xcc,0xfe,0xee,0x90,0x01,0x06,0x77,0x9f,0x9c,0x85,0x74,0xa1,0xa0,0x18,0x9e,0x44,0x01,0x3a,0x01,0x21,0x01,0x01,0xb9,0xfa,0xc5,0xd2,0x01,0x0d,0xfe,0xb1, +0xfe,0xc0,0xfe,0x73,0xfe,0x52,0x05,0x3f,0xb3,0x8a,0x97,0xad,0x9e,0x72,0xa3,0xce,0x00,0x02,0x00,0x48,0xff,0xec,0x02,0xa5,0x03,0x66,0x00,0x0a,0x00,0x12,0x00,0x20,0x40,0x10,0x08,0xcc,0x11,0x11,0x14,0x0d,0xcc,0x03,0x0b,0xe7,0x06,0x2b,0x0f,0xe7,0x00,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30, +0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x11,0x10,0x33,0x32,0x11,0x10,0x01,0x6d,0x8b,0x9a,0xa1,0x99,0x01,0x23,0xa3,0x87,0xa9,0xa6,0xa4,0x14,0xdb,0xd1,0xe5,0xe9,0xfe,0x47,0xdb,0xe6,0x03,0x03,0xfe,0xaf,0xfe,0xc6,0x01,0x40,0x01,0x4b,0x00,0xff,0xff,0x00,0x50,0x00,0x01,0x01,0xc2,0x03,0x69,0x01,0x07, +0x00,0xf0,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x68,0x00,0x01,0x02,0x92,0x03,0x67,0x03,0x07,0x00,0xf1,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x01,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x02,0x8e,0x03,0x67,0x03,0x07,0x00,0xf2,0x00,0x00,0xfd,0xb9,0x00,0x07, +0xb2,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0x00,0x01,0x02,0xaa,0x03,0x53,0x01,0x07,0x02,0x38,0x00,0x00,0xfd,0xb9,0x00,0x09,0xb3,0x01,0x00,0x03,0x2c,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x02,0x8a,0x03,0x57,0x03,0x07,0x02,0x39,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x23,0x2d,0x00,0x3f, +0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xec,0x02,0xa6,0x03,0x66,0x00,0x26,0x00,0x36,0x00,0x2f,0x40,0x18,0x01,0x15,0xcd,0x34,0x34,0x38,0x2c,0x0c,0xcc,0x1f,0x27,0xe7,0x0c,0x10,0x10,0x31,0x06,0xe6,0x24,0x2b,0x31,0xe6,0x1a,0x2d,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x32,0x31, +0x30,0x01,0x15,0x2e,0x03,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x33,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x63,0x0e,0x28,0x2b,0x2c,0x12,0x39,0x55,0x21,0x1f,0x2d,0x04,0x1d,0x6e,0x4e, +0x3c,0x5f,0x42,0x23,0x2d,0x4f,0x6b,0x3d,0x3f,0x72,0x56,0x32,0x38,0x65,0x8c,0x54,0x2b,0x52,0xc1,0x22,0x3c,0x2c,0x1a,0x15,0x29,0x3a,0x25,0x4b,0x55,0x4d,0x03,0x43,0x81,0x09,0x10,0x0c,0x07,0x24,0x24,0x22,0x7f,0x61,0x32,0x41,0x27,0x47,0x63,0x3d,0x3d,0x68,0x4d,0x2b,0x31,0x63,0x98,0x68,0x75,0xb5,0x7c,0x40,0x12,0xfe,0x59,0x15, +0x28,0x38,0x24,0x22,0x41,0x32,0x1e,0x5b,0x49,0x4e,0x5a,0x00,0xff,0xff,0x00,0x4d,0x00,0x01,0x02,0xa0,0x03,0x5d,0x03,0x07,0x02,0x3a,0x00,0x00,0xfd,0xb9,0x00,0x07,0xb2,0x00,0x00,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x41,0xff,0xed,0x02,0xad,0x03,0x67,0x03,0x07,0x02,0x3b,0x00,0x00,0xfd,0xb9,0x00,0x0b,0xb4,0x02,0x01,0x00, +0x1f,0x2d,0x00,0x3f,0x35,0x35,0x35,0x00,0x00,0x02,0x00,0x49,0xff,0xeb,0x02,0xa6,0x03,0x66,0x00,0x27,0x00,0x39,0x00,0x31,0x40,0x19,0x2d,0xcc,0x23,0x10,0x35,0x1a,0xcd,0x06,0x05,0x05,0x10,0x3b,0x30,0xe7,0x0b,0x0b,0x28,0x00,0xe6,0x1f,0x2d,0x28,0xe6,0x15,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x11,0x12,0x01,0x39, +0x2f,0x10,0xed,0x33,0x2f,0x33,0xed,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x1e,0x03,0x13,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x34,0x42,0x5e,0x3c,0x1b,0x04,0x0d,0x2b, +0x37,0x42,0x24,0x3c,0x61,0x46,0x26,0x2a,0x4d,0x6c,0x41,0x40,0x71,0x56,0x32,0x30,0x5d,0x8a,0x5b,0x30,0x61,0x26,0x13,0x2e,0x30,0x30,0x52,0x21,0x39,0x2a,0x18,0x52,0x45,0x20,0x3d,0x2f,0x1d,0x19,0x2c,0x3c,0x62,0x33,0x5c,0x7e,0x4b,0x1c,0x2f,0x21,0x13,0x26,0x47,0x63,0x3c,0x3f,0x6a,0x4c,0x2a,0x33,0x65,0x96,0x64,0x69,0xb4,0x82, +0x4a,0x17,0x16,0x7f,0x0b,0x13,0x0f,0x08,0x02,0x8e,0x17,0x2c,0x3e,0x28,0x4c,0x56,0x16,0x26,0x33,0x1d,0x2a,0x47,0x32,0x1c,0x00,0x02,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x00,0x07,0x00,0x15,0x00,0x27,0x40,0x12,0x15,0x08,0x15,0x08,0x00,0x05,0x00,0x03,0x39,0x15,0x15,0x05,0x0f,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f, +0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x13,0x03,0x2e,0x03,0x27,0x23,0x0e,0x03,0x07,0x03,0x04,0x04,0xb3,0x71,0xfe,0x3d,0x6a,0xb3,0x01,0xae,0xa4,0x5e,0x98,0x02,0x07,0x08,0x07,0x01,0x03,0x02,0x06,0x07,0x07,0x03,0x92,0x01,0x1a,0xfe,0xe6,0x04,0x33, +0xfd,0x73,0x01,0x9a,0x05,0x17,0x1d,0x1c,0x0b,0x0c,0x1d,0x1d,0x18,0x07,0xfe,0x6b,0x00,0x03,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x3c,0x40,0x21,0x10,0x24,0x0d,0x38,0x16,0x16,0x06,0x00,0x38,0x1f,0x1b,0x24,0x37,0x06,0x10,0x23,0x3a,0x2f,0x1b,0x3f,0x1b,0x02,0x1b,0x1b,0x06,0x1a,0x3a,0x07, +0x35,0x24,0x3a,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x23,0x11,0x33, +0x32,0x36,0x03,0xa1,0x3b,0x67,0x8e,0x52,0xfe,0x91,0x01,0x67,0x4c,0x7c,0x57,0x2f,0x6c,0x61,0x3d,0x63,0x44,0x25,0xe7,0x71,0x72,0x83,0x71,0x73,0x82,0x3c,0x8f,0x90,0x83,0xa0,0x7b,0x87,0x01,0x35,0x45,0x72,0x51,0x2d,0x04,0x33,0x23,0x41,0x5b,0x37,0x5b,0x86,0x1e,0x03,0x06,0x2a,0x44,0x5b,0x01,0xb9,0x4e,0x3a,0xfe,0xc3,0x5a,0xfe, +0x6c,0x60,0x55,0xfe,0x9b,0x54,0x00,0x01,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x00,0x1d,0x00,0x1b,0x40,0x0d,0x16,0x38,0x07,0x0f,0x00,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x33,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x03,0xbb,0x83,0xc5,0x7d,0xc8,0x8c,0x4a,0x54,0x9b,0xd8,0x84,0xa9,0x6f,0x7a,0x96,0x63,0x9e,0x6d,0x3a,0x36,0x66,0x94,0x5e,0xad,0x7d,0x2c,0x3f,0x4d,0x8c,0xc6,0x79,0x80,0xd4,0x98,0x54,0x2c,0x9e,0x40,0x3d,0x70,0x9e,0x62,0x5d,0x96,0x6a,0x39,0x48,0x00,0x00,0x02,0x00,0xb0,0x00,0x00, +0x04,0x54,0x04,0x33,0x00,0x0a,0x00,0x17,0x00,0x1c,0x40,0x0e,0x00,0x38,0x0b,0x12,0x37,0x06,0x11,0x39,0x07,0x35,0x12,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9,0xef, +0x92,0xfe,0xe3,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x04,0x33,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfc,0xed,0x30,0x64,0x98,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x00,0x0b,0x00,0x3c,0x40,0x22,0x06,0x0a,0x37,0x01,0x08,0x04, +0x08,0x04,0x00,0x01,0x00,0x09,0x39,0x0f,0x06,0x01,0x2f,0x06,0x3f,0x06,0xff,0x06,0x03,0x06,0x06,0x01,0x05,0x39,0x02,0x35,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x5d,0x71,0xed,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21, +0x03,0x27,0xfd,0x89,0x02,0x5b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x06,0x37,0x07,0x04,0x04,0x00,0x07,0x00,0x05,0x39,0x02,0x02,0x07,0x01,0x39,0x08,0x35,0x07,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39, +0x2f,0xed,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x00,0x01,0x00,0x58,0xff,0xed,0x04,0x20,0x04,0x45,0x00,0x22,0x00,0x2f,0x40,0x18,0x20,0x20,0x07,0x1e, +0x0f,0x00,0x37,0x1e,0x16,0x38,0x07,0x20,0x39,0x21,0x21,0x02,0x11,0x39,0x0c,0x36,0x1b,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02, +0x33,0x32,0x36,0x37,0x11,0x21,0x35,0x21,0x04,0x20,0xb3,0xdc,0x7f,0xd2,0x96,0x52,0x5c,0xa4,0xe3,0x87,0xc0,0x86,0x8e,0xbd,0x60,0xa3,0x75,0x42,0x39,0x6b,0x98,0x60,0x42,0x6d,0x30,0xfe,0xfe,0x01,0xa4,0x4a,0x5d,0x4f,0x8e,0xc8,0x79,0x7b,0xd1,0x98,0x56,0x39,0xa4,0x53,0x3f,0x71,0x9b,0x5b,0x5e,0x99,0x6c,0x3a,0x16,0x16,0x01,0x0b, +0x8b,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x00,0x0b,0x00,0x27,0x40,0x13,0x08,0x04,0x37,0x05,0x09,0x00,0x37,0x01,0x03,0x39,0x08,0x08,0x05,0x0a,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x33,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11, +0x21,0x11,0x33,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0xa4,0x02,0x40,0xa5,0x01,0xf3,0xfe,0x0d,0x04,0x33,0xfe,0x4b,0x01,0xb5,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x00,0x03,0x00,0x10,0xb6,0x00,0x37,0x01,0x02,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x54,0xa4,0xa4,0x04,0x33, +0x00,0x01,0x00,0x11,0xff,0xed,0x01,0xe5,0x04,0x33,0x00,0x11,0x00,0x16,0x40,0x0a,0x00,0x37,0x0f,0x07,0x10,0x35,0x0a,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0xe5,0x33,0x5d,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46, +0x2f,0x18,0xa4,0x01,0x81,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x3d,0x63,0x48,0x02,0xb3,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x00,0x12,0x00,0x33,0x40,0x18,0x10,0x11,0x11,0x00,0x12,0x0b,0x07,0x37,0x08,0x01,0x00,0x00,0x14,0x12,0x06,0x0b,0x0b,0x08,0x10,0x09,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12, +0x39,0x11,0x33,0x33,0x11,0x01,0x33,0x2f,0x33,0x2f,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x03,0xec,0xcc,0xfe,0x60,0x09,0x19,0x06,0x04,0xa4,0xa4,0x04,0x05,0x19,0x0a,0x01,0x91,0xb8,0xfe,0x33,0x01,0xdd,0x0b,0x20,0x0a,0xfd, +0xee,0x04,0x33,0xfe,0x07,0x08,0x1e,0x0b,0x01,0xc8,0xfd,0xfc,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x05,0x00,0x16,0x40,0x0a,0x04,0x37,0x01,0x00,0x02,0x35,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x2f,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x03,0x2e,0xfd,0x82,0xa4,0x01,0xda,0x04,0x33,0xfc, +0x58,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x00,0x21,0x00,0x20,0x40,0x0f,0x17,0x10,0x14,0x37,0x15,0x20,0x06,0x05,0x00,0x37,0x01,0x16,0x35,0x15,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x33,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x26,0x27, +0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x05,0x62,0x9e,0x02,0x06,0x04,0x0a,0x14,0x11,0xfe,0x9d,0x58,0xfe,0x98,0x12,0x15,0x09,0x03,0x03,0x03,0x99,0xda,0x01,0x45,0x15,0x1b,0x06,0x06,0x0b,0x1e,0x11,0x01,0x46,0xd7,0x02,0xbe,0x2b,0x61,0x3e,0x24,0x3a,0x26,0xfc,0xfc,0x03,0x04, +0x26,0x38,0x26,0x20,0x62,0x49,0xfd,0x43,0x04,0x33,0xfd,0x3e,0x2a,0x4a,0x17,0x1d,0x4d,0x24,0x02,0xbf,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1a,0x40,0x0c,0x01,0x00,0x37,0x16,0x0c,0x09,0x37,0x0a,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x2f,0xed,0x33,0x31,0x30,0x21,0x23,0x01,0x26, +0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04,0x7a,0xae,0xfd,0xcc,0x1f,0x29,0x08,0x05,0x06,0x99,0xb9,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0x99,0x02,0xf7,0x2a,0x41,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x04,0x19,0x23,0x18,0x10,0x05,0x17,0x4e,0x39,0x02, +0xc7,0x00,0x00,0x02,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x13,0x00,0x23,0x00,0x1c,0x40,0x0e,0x00,0x38,0x14,0x1c,0x38,0x0a,0x17,0x39,0x0f,0x36,0x21,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34, +0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c, +0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x24,0x40,0x12,0x00,0x38,0x0f,0x14,0x07,0x37,0x08,0x06,0x3a,0x14,0x14,0x08,0x13,0x3a,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02, +0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0x01,0x4b,0x61,0x98,0x68,0x36,0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0xee,0x4d,0x82,0x5e,0x34,0xfe,0x73,0x04,0x33,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x58,0xff,0x65, +0x04,0xc5,0x04,0x45,0x00,0x18,0x00,0x28,0x00,0x24,0x40,0x12,0x00,0x38,0x19,0x21,0x38,0x0f,0x08,0x05,0x0a,0x1c,0x39,0x14,0x36,0x26,0x39,0x0a,0x34,0x07,0x00,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x06,0x07,0x05,0x23,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x04,0x95,0x52,0x49,0x22,0x28,0x01,0x15,0xf8,0xb2,0x4f,0x5a,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x02,0x27,0x86,0xd4,0x4a,0x22,0x1b,0xe1,0x9e, +0x16,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0xdf,0x04,0x33,0x00,0x19,0x00,0x24,0x00,0x2e,0x40,0x17,0x16,0x09,0x00,0x11,0x38,0x1a,0x1f,0x09,0x37,0x0a,0x16,0x08,0x3a,0x1f,0x1f,0x0a,0x1e,0x3a,0x0b,0x35,0x01,0x0a, +0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0xfd,0xc6,0x12,0x39,0x31,0x30,0x21,0x23,0x03,0x2e,0x03,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x03,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x03,0xdf,0xc0,0xbe,0x13,0x24,0x29,0x2f,0x1d,0x61, +0xa4,0x01,0x6d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x3f,0x1c,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x01,0x47,0x20,0x2b,0x19,0x0a,0xfe,0x4b,0x04,0x33,0x27,0x4a,0x69,0x43,0x3a,0x63,0x4c,0x35,0x0d,0x03,0x1a,0x65,0x01,0xa1,0x57,0x4c,0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, +0x00,0x37,0x00,0x26,0x40,0x13,0x2e,0x37,0x0a,0x1f,0x27,0x00,0x37,0x15,0x15,0x2d,0x05,0x29,0x39,0x24,0x36,0x10,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xc4,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x2e, +0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x03,0x08,0x38,0x67,0x94,0x5d,0x20,0x4e,0x4c,0x41,0x12,0x1a,0x46,0x4d,0x4f,0x24,0x39,0x53,0x36,0x19,0x14,0x35,0x5d,0x4a,0x47,0x66,0x42,0x1f,0x39,0x66,0x8d,0x53,0xa0,0x4a,0x5f,0x93,0x32,0x4f,0x38,0x1d,0x0e,0x2f,0x56, +0x48,0x4f,0x6f,0x46,0x20,0x01,0x1b,0x44,0x70,0x4f,0x2b,0x0b,0x11,0x16,0x0c,0xac,0x15,0x24,0x1a,0x0e,0x16,0x28,0x38,0x22,0x1f,0x32,0x30,0x36,0x25,0x23,0x46,0x4c,0x58,0x35,0x40,0x68,0x49,0x28,0x26,0xa5,0x42,0x15,0x26,0x33,0x1e,0x1d,0x2f,0x31,0x36,0x22,0x26,0x47,0x4c,0x54,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33, +0x00,0x07,0x00,0x1e,0x40,0x0e,0x02,0x37,0x03,0x03,0x00,0x05,0x00,0x01,0x05,0x39,0x06,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe,0xa9,0xa4,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfc,0x58,0x03,0xa8,0x8b,0x00,0x01,0x00,0x9c,0xff,0xed, +0x04,0x26,0x04,0x33,0x00,0x15,0x00,0x1b,0x40,0x0d,0x00,0x37,0x13,0x09,0x37,0x06,0x14,0x07,0x35,0x0e,0x39,0x03,0x34,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x04,0x26,0xed,0xe2,0xd9,0xe2,0xa5,0x22,0x48, +0x6f,0x4d,0x4a,0x6b,0x45,0x20,0xa5,0x01,0xb3,0xe3,0xe3,0xdb,0xda,0x02,0x91,0xfd,0x80,0x51,0x77,0x4e,0x25,0x24,0x4d,0x76,0x51,0x02,0x83,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0f,0x00,0x0f,0xb5,0x03,0x00,0x03,0x35,0x02,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x01,0x23,0x01,0x33,0x01,0x1e, +0x03,0x17,0x33,0x36,0x36,0x37,0x01,0x04,0x15,0xfe,0x43,0xa3,0xfe,0x4b,0xb9,0x01,0x0c,0x10,0x17,0x0f,0x0a,0x02,0x03,0x04,0x20,0x22,0x01,0x12,0x04,0x33,0xfb,0xcd,0x04,0x33,0xfd,0x40,0x2a,0x40,0x32,0x24,0x0e,0x17,0x61,0x57,0x02,0xbf,0x00,0x01,0x00,0x05,0x00,0x00,0x06,0x64,0x04,0x33,0x00,0x26,0x00,0x0f,0xb5,0x1a,0x0a,0x1a, +0x35,0x19,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x01,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x03,0x2e,0x03,0x27,0x0e,0x03,0x07,0x03,0x23,0x01,0x33,0x13,0x1e,0x03,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x81,0xdf,0x1d,0x1a,0x04,0x03,0x05,0x1c,0x20,0xd4,0xb1,0xfe,0x8c,0xa3,0xdf,0x07,0x10,0x10,0x0f, +0x04,0x06,0x10,0x11,0x10,0x07,0xda,0xa3,0xfe,0x8c,0xb0,0xd7,0x10,0x16,0x0e,0x09,0x02,0x03,0x04,0x1a,0x1d,0xde,0x04,0x33,0xfd,0x5e,0x5a,0x71,0x17,0x1c,0x71,0x62,0x02,0x95,0xfb,0xcd,0x02,0xa4,0x15,0x37,0x3e,0x3e,0x1c,0x1f,0x43,0x40,0x39,0x14,0xfd,0x67,0x04,0x33,0xfd,0x6b,0x31,0x4d,0x3a,0x29,0x0e,0x17,0x71,0x5a,0x02,0xa2, +0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x00,0x19,0x00,0x0f,0xb5,0x0b,0x00,0x0d,0x35,0x0b,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x03,0xe4,0xc3,0xfe,0xfa,0x06,0x0e,0x08,0x03, +0x04,0x0e,0x0b,0xfe,0xc3,0x01,0x7c,0xfe,0xa2,0xc5,0xe6,0x0d,0x15,0x09,0x03,0x0d,0x17,0x0a,0xe3,0xb8,0xfe,0x9a,0x01,0x8e,0x0a,0x1a,0x12,0x09,0x1b,0x12,0xfe,0x72,0x02,0x28,0x02,0x0b,0xfe,0x91,0x14,0x25,0x12,0x19,0x27,0x0e,0x01,0x6c,0xfd,0xdf,0x00,0x01,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x00,0x0f,0x00,0x1d,0x40,0x0d, +0x0a,0x02,0x37,0x03,0x03,0x06,0x05,0x0f,0x00,0x05,0x35,0x03,0x33,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x01,0x11,0x23,0x11,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0xa7,0xfe,0x83,0xa3,0xfe,0x8d,0xb4,0xf3,0x06,0x0f,0x08,0x02,0x05,0x10,0x0b,0xff,0x04,0x33,0xfd,0x5a, +0xfe,0x73,0x01,0x8a,0x02,0xa9,0xfe,0x25,0x0c,0x21,0x15,0x0d,0x21,0x14,0x01,0xdb,0x00,0x01,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x07,0x07,0x00,0x01,0x04,0x06,0x03,0x00,0x00,0x07,0x39,0x08,0x35,0x05,0x01,0x39,0x04,0x33,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x12, +0x39,0x2f,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x03,0xb3,0xfd,0x73,0x02,0x7c,0xfc,0x87,0x02,0x8b,0xfd,0xad,0x03,0x52,0x04,0x02,0xfc,0x89,0x8b,0x37,0x03,0x71,0x8b,0x00,0x00,0x02,0xff,0xf8,0x00,0x00,0x05,0x56,0x04,0x33,0x00,0x0f,0x00,0x13,0x00,0x59,0x40,0x33,0x0a,0x0e,0x37,0x01,0x11,0x01,0x10,0x01, +0x0c,0x08,0x08,0x0c,0x01,0x10,0x04,0x00,0x05,0x00,0x09,0x13,0x39,0x06,0x03,0x39,0x10,0x0d,0x39,0x0a,0x0f,0x0a,0x01,0x2f,0x0a,0x3f,0x0a,0xff,0x0a,0x03,0x10,0x0a,0x10,0x0a,0x01,0x06,0x35,0x05,0x33,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x71,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x01,0x2f, +0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x21,0x03,0x23,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x21,0x11,0x23,0x05,0x56,0xfd,0x89,0xfe,0x6f,0x9b,0xbb,0x02,0x46,0x02,0xfc,0xfe,0x49,0x01,0x95,0xfe,0x6b,0x01,0xd3,0xfc,0x3c,0x01,0x4d,0x49,0x01,0x28,0xfe,0xd8, +0x04,0x33,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x01,0x28,0x01,0xf6,0x00,0x02,0x00,0x58,0xff,0xed,0x05,0xe8,0x04,0x45,0x00,0x1e,0x00,0x2e,0x00,0x51,0x40,0x2f,0x19,0x1d,0x37,0x1f,0x1b,0x1f,0x1b,0x00,0x28,0x38,0x0b,0x17,0x00,0x18,0x20,0x39,0x15,0x1c,0x39,0x0f,0x19,0x01,0x2f,0x19,0x3f,0x19,0xff,0x19,0x03,0x19,0x19,0x01,0x15,0x35, +0x23,0x39,0x10,0x36,0x2d,0x39,0x06,0x34,0x1d,0x1f,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x5d,0x71,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x31,0x30,0x21,0x21,0x22,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x23,0x21, +0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x25,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0xe8,0xfd,0xab,0x06,0x3a,0x50,0x57,0x23,0x80,0xcf,0x93,0x4f,0x52,0x99,0xd8,0x86,0x25,0x58,0x49,0x2f,0x03,0x02,0x3b,0xfe,0x47,0x01,0x97,0xfe,0x69,0x01,0xd3,0xfd,0x89,0x40,0x6a,0x2b,0x5b,0x96,0x6c,0x3c,0x3b, +0x6b,0x95,0x59,0x5a,0x06,0x07,0x06,0x4f,0x8f,0xc8,0x7a,0x82,0xd2,0x94,0x50,0x06,0x06,0x06,0x8b,0xfe,0xc0,0x8b,0xfe,0xae,0x06,0x03,0x14,0x0b,0x0b,0x3f,0x70,0x9a,0x5a,0x5b,0x98,0x6e,0x3e,0x00,0x00,0x01,0x00,0x38,0x00,0x00,0x03,0x2e,0x04,0x33,0x00,0x0d,0x00,0x34,0x40,0x19,0x08,0x0c,0x37,0x01,0x0a,0x0a,0x00,0x05,0x03,0x01, +0x00,0x02,0x08,0x09,0x03,0x09,0x03,0x09,0x01,0x06,0x35,0x0c,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xc6,0x33,0x12,0x39,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x15,0x05,0x11,0x21,0x03,0x2e,0xfd,0x82,0x78,0x78,0xa4,0x01,0x01,0xfe, +0xff,0x01,0xda,0x01,0x95,0x44,0x8a,0x43,0x02,0x15,0xfe,0x48,0x8f,0x8b,0x8d,0xfe,0x99,0x00,0x00,0x03,0x00,0x41,0xff,0xda,0x04,0xa9,0x04,0x65,0x00,0x1b,0x00,0x26,0x00,0x32,0x00,0x28,0x40,0x14,0x1f,0x30,0x2c,0x00,0x38,0x1c,0x2c,0x38,0x0e,0x2f,0x1e,0x22,0x27,0x39,0x13,0x36,0x22,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0xed,0x11, +0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x17,0x07,0x16,0x16,0x07,0x34,0x27,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x26,0x04,0xa9,0x4d,0x90,0xce, +0x82,0x6f,0xb6,0x45,0x83,0x4e,0x86,0x36,0x39,0x4d,0x92,0xd4,0x86,0x61,0xa4,0x42,0x7b,0x4f,0x7a,0x3f,0x42,0xab,0x44,0xfd,0xc4,0x30,0x80,0x4e,0x5c,0x8f,0x63,0x34,0xfe,0x88,0x57,0x8f,0x66,0x37,0x1d,0x1b,0x02,0x34,0x2d,0x74,0x02,0x27,0x82,0xd2,0x95,0x51,0x3c,0x39,0x88,0x49,0x8c,0x45,0xb0,0x69,0x81,0xd1,0x95,0x51,0x32,0x2f, +0x81,0x4b,0x7f,0x47,0xbd,0x80,0xa8,0x68,0xfd,0xac,0x2d,0x2f,0x38,0x6a,0x9b,0x02,0x07,0x3c,0x6e,0x9b,0x5e,0x46,0x78,0x31,0x02,0x4e,0x21,0x23,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x2e,0x40,0x17,0x00,0x38,0x11,0x16,0x0b,0x07,0x37,0x08,0x06,0x3a,0x16,0x15,0x3a,0x0b,0x16,0x0b,0x16,0x0b, +0x08,0x09,0x35,0x08,0x33,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x32,0x2f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x03,0x92,0x3f,0x73,0xa3,0x63,0x86,0xa4,0xa4,0xa7,0x61,0x98,0x68,0x36, +0xab,0x86,0x87,0x86,0x76,0x89,0x94,0x02,0x2c,0x4d,0x82,0x5e,0x34,0xcb,0x04,0x33,0xc2,0x2c,0x54,0x79,0x52,0x6b,0x5a,0xfe,0x65,0x69,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x00,0x0e,0x00,0x1f,0x00,0x35,0x40,0x1b,0x18,0x18,0x06,0x00,0x38,0x0f,0x16,0x1a,0x37,0x0a,0x08,0x06,0x19,0x08,0x39,0x16,0x09,0x09,0x06,0x15, +0x39,0x0b,0x35,0x1a,0x39,0x06,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x21,0x11,0x23,0x35,0x33,0x11,0x21,0x20,0x00,0x03,0x34,0x2e,0x02,0x23,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x32,0x3e,0x02,0x04,0x54,0x5d,0xa9, +0xef,0x92,0xfe,0xe3,0x83,0x83,0x01,0x2b,0x01,0x3c,0x01,0x3d,0xab,0x3c,0x76,0xae,0x72,0x83,0xfb,0xfb,0x7a,0x6e,0xb0,0x7b,0x42,0x02,0x27,0x7d,0xcb,0x90,0x4f,0x01,0xe1,0x89,0x01,0xc9,0xfe,0xfb,0xfe,0xf6,0x67,0x92,0x5c,0x2a,0xfe,0xc7,0x89,0xfe,0xaf,0x30,0x64,0x98,0x00,0x01,0x00,0xa6,0xff,0xee,0x03,0xe8,0x04,0x45,0x00,0x39, +0x00,0x3f,0x40,0x21,0x27,0x38,0x14,0x30,0x38,0x09,0x01,0x0f,0x1c,0x14,0x09,0x14,0x09,0x3b,0x1b,0x37,0x1c,0x2a,0x0e,0x3b,0x0f,0x0f,0x22,0x04,0x39,0x35,0x34,0x17,0x39,0x22,0x36,0x1c,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31, +0x30,0x25,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x01,0x9a,0x26,0x73,0x43,0x28,0x48,0x36,0x1f,0x2a,0x57,0x84,0x5a,0x39,0x5c, +0x41,0x23,0x5a,0x58,0x65,0x74,0xa4,0x42,0x6c,0x8c,0x4a,0x4e,0x7f,0x5a,0x31,0x68,0x77,0x56,0x7b,0x4f,0x25,0x31,0x5e,0x88,0x56,0x2c,0x43,0x35,0x2a,0x0a,0x97,0x12,0x1a,0x13,0x2a,0x42,0x30,0x2f,0x4f,0x3b,0x25,0x05,0x71,0x06,0x1c,0x2f,0x41,0x2a,0x45,0x43,0x71,0x7d,0xfd,0x32,0x02,0xe3,0x68,0x88,0x51,0x21,0x24,0x43,0x61,0x3c, +0x5a,0x80,0x1e,0x04,0x0d,0x31,0x48,0x62,0x3f,0x45,0x70,0x4f,0x2c,0x05,0x07,0x0a,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x43,0x00,0x96,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26, +0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x0e,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x2c,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0x8c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00, +0x00,0x00,0x04,0x04,0x05,0xd0,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0x9f,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xa5,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x06,0x00,0x8f,0x62,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x17,0x01,0x17,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x67,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x00,0x09,0xb3,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x58,0xfe,0x56,0x03,0xbb,0x04,0x45,0x02,0x26,0x0c,0xed,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x97,0x00,0x06, +0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x43,0x79,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xec,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d, +0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2c,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xd7,0x6c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa5,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x53,0x1e,0x00,0x0c, +0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xfc,0x00,0x00,0x01,0x81,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x43,0xaa,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06, +0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe9,0x00,0x00,0x02,0x1d,0x06,0x2c,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd7,0x8d,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3, +0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x05,0xd0,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x32,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58, +0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x14,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x68,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x2c,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x00,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xd0,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd8,0x01,0x13,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xa5,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xd6,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff, +0x00,0x00,0x01,0x07,0x00,0x43,0x01,0x07,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x28,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x62,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed, +0x04,0x26,0x06,0x2c,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd7,0x00,0xeb,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xa5,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0x8f,0x00,0xc1,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x4d,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0xc6,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0xdc,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfe,0x70,0x04,0x04,0x04,0x33,0x02,0x26,0x0c,0xeb,0x00,0x00, +0x00,0x07,0x00,0xdf,0x02,0xab,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x28,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x71,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2a,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xe0, +0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xa3,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xba,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x54,0x06,0x2a,0x02,0x26, +0x0c,0xee,0x00,0x00,0x01,0x07,0x00,0xe0,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x2d,0x00,0x00,0x04,0x54,0x04,0x33,0x02,0x06,0x0d,0x0a,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x4d,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xd9,0x00,0x9c,0x00,0x1e, +0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xdc,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xac,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0xa3,0x02,0x26,0x0c,0xef,0x00,0x00, +0x01,0x07,0x00,0xdb,0x01,0x15,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x70,0x03,0x27,0x04,0x33,0x02,0x26,0x0c,0xef,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xbe,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x2a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0xe0, +0x66,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x05,0xdc,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x52,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xfe,0x85,0x04,0x20,0x04,0x45,0x02,0x26,0x0c,0xf1, +0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xf8,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x05,0xa3,0x02,0x26,0x0c,0xed,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0xb0,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x2c,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07, +0x00,0xd7,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x2d,0x00,0x00,0x04,0xbc,0x04,0x33,0x00,0x13,0x00,0x17,0x00,0x4a,0x40,0x0e,0x17,0x0c,0x04,0x37,0x05,0x14,0x0d,0x00,0x37,0x01,0x03,0x39,0x17,0x17,0xb8,0xff,0xc0,0x40,0x16,0x09,0x0c,0x48,0x16,0x13,0x06,0x39,0x09,0x10, +0x0c,0x09,0x17,0x09,0x17,0x09,0x05,0x0e,0x0a,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x2b,0x10,0xed,0x01,0x2f,0xed,0x33,0x33,0x2f,0xed,0x32,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23, +0x07,0x35,0x21,0x15,0x04,0x39,0xa5,0xfd,0xc0,0xa4,0x83,0x83,0xa4,0x02,0x40,0xa5,0x83,0x83,0xa5,0xfd,0xc0,0x01,0xf3,0xfe,0x0d,0x03,0x2b,0x89,0x7f,0x7f,0x7f,0x7f,0x89,0xad,0xad,0xad,0xff,0xff,0xff,0xc3,0x00,0x00,0x02,0x44,0x05,0xd0,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd8,0xa0,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05, +0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x04,0x00,0x00,0x02,0x00,0x05,0x4d,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xd9,0xc6,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xf1,0x00,0x00,0x02,0x16,0x05,0xdc,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xda,0xcc,0x1e,0x00,0x0a, +0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x3f,0xfe,0x70,0x01,0x54,0x04,0x33,0x02,0x26,0x0c,0xf3,0x00,0x00,0x00,0x06,0x00,0xdf,0x01,0x00,0xff,0xff,0x00,0xa0,0x00,0x00,0x01,0x65,0x05,0xa3,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0xdb,0x34,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0xb0,0xff,0xed,0x03,0xe9,0x04,0x33,0x00,0x26,0x0c,0xf3,0x00,0x00,0x00,0x07,0x0c,0xf4,0x02,0x04,0x00,0x00,0xff,0xff,0x00,0x11,0xff,0xed,0x02,0xac,0x06,0x2c,0x02,0x26,0x0c,0xf4,0x00,0x00,0x01,0x06,0x00,0xd7,0x1c,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0, +0xfe,0x85,0x03,0xec,0x04,0x33,0x02,0x26,0x0c,0xf5,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x06,0x28,0x02,0x26,0x0c,0xf6,0x00,0x00,0x01,0x06,0x00,0x8e,0x52,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0x2e,0x04,0x33, +0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x06,0x01,0x9c,0x6b,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x13,0x04,0xaa,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x2e,0x04,0x33,0x02,0x26,0x0c,0xf6,0x00,0x00,0x00,0x07,0x00,0xdb,0x01,0x8a,0xfd,0x56,0xff,0xff,0x00,0xb0, +0x00,0x00,0x04,0x7a,0x06,0x28,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x9e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x04,0x7a,0x04,0x33,0x02,0x26,0x0c,0xf8,0x00,0x00,0x00,0x07,0x01,0x9c,0x01,0x0c,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, +0x06,0x2a,0x02,0x26,0x0c,0xf8,0x00,0x00,0x01,0x07,0x00,0xe0,0x01,0x16,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1a,0x01,0x1a,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0x59,0x04,0x88,0x04,0x33,0x00,0x26,0x00,0x32,0x40,0x18,0x26,0x37,0x25,0x0f,0x25,0x08,0x08,0x25,0x1a,0x17,0x37,0x18,0x20,0x13,0x17,0x25,0x19,0x35,0x0f,0x00, +0x17,0x0a,0x39,0x05,0x00,0x2f,0xed,0x2f,0x33,0x33,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x33,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x01,0x26,0x26,0x27,0x23,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x1e,0x03,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x04, +0x88,0x33,0x5e,0x83,0x4f,0x46,0x2c,0x2c,0x48,0x2f,0x46,0x2f,0x18,0xfd,0xbc,0x20,0x28,0x08,0x05,0x06,0xa0,0xc0,0x02,0x35,0x12,0x19,0x11,0x09,0x03,0x03,0x04,0x04,0xa0,0x13,0x65,0x98,0x65,0x32,0x13,0x9a,0x1d,0x1b,0x42,0x6e,0x52,0x02,0xf1,0x29,0x42,0x13,0x23,0x71,0xfd,0x1f,0x04,0x33,0xfd,0x21,0x19,0x23,0x18,0x10,0x05,0x17, +0x4e,0x39,0x02,0xaa,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0x4d,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x3a,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x05,0xdc,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x3f,0x00,0x1e, +0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x1e,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0xde,0x01,0x7d,0x00,0x1e,0x00,0x0c,0xb5,0x03,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x28,0x02,0x26,0x0c,0xfc, +0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x03,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0xfe,0x85,0x03,0xdf,0x04,0x33,0x02,0x26,0x0c,0xfc,0x00,0x00,0x00,0x07,0x01,0x9c,0x00,0xa0,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xdf,0x06,0x2a,0x02,0x26,0x0c,0xfc,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x83,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x25,0x01,0x25,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x28,0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xc9,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2c, +0x02,0x26,0x0c,0xfd,0x00,0x00,0x01,0x06,0x00,0xd7,0x4e,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x50,0x03,0x08,0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x07,0x00,0xdd,0x00,0xdc,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x06,0x2a,0x02,0x26,0x0c,0xfd,0x00,0x00, +0x01,0x06,0x00,0xe0,0x4f,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x19,0xfe,0x50,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x07,0x00,0xdd,0x01,0x15,0x00,0x00,0xff,0xff,0x00,0x19,0xfe,0x85,0x03,0x6c,0x04,0x33,0x02,0x26,0x0c,0xfe,0x00,0x00,0x00,0x06,0x01,0x9c,0x2d,0x00, +0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x06,0x2a,0x02,0x26,0x0c,0xfe,0x00,0x00,0x01,0x06,0x00,0xe0,0x43,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x08,0x01,0x08,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x00,0x0f,0x00,0x3d,0x40,0x1f,0x02,0x06,0x37,0x07,0x0b,0x07,0x0a,0x07,0x03,0x03,0x07,0x0a,0x03,0x00, +0x0d,0x00,0x01,0x0d,0x39,0x0e,0x05,0x09,0x39,0x02,0x0a,0x0a,0x07,0x0e,0x35,0x07,0x33,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x03,0x6c,0xfe, +0xa9,0x01,0x0e,0xfe,0xf2,0xa4,0xfe,0xf1,0x01,0x0f,0xfe,0xa8,0x03,0x53,0x03,0xa8,0xfe,0xb6,0x89,0xfe,0x2b,0x01,0xd5,0x89,0x01,0x4a,0x8b,0x00,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xd0,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd8,0x00,0xfe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0x4d,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xd9,0x01,0x25,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x05,0xdc,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x2a,0x00,0x1e,0x00,0x0a,0xb4,0x01, +0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x3a,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07,0x00,0xdc,0x01,0x41,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xff,0xed,0x04,0x26,0x06,0x1e,0x02,0x26,0x0c,0xff,0x00,0x00,0x01,0x07, +0x00,0xde,0x01,0x51,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x16,0x01,0x16,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9c,0xfe,0x70,0x04,0x26,0x04,0x33,0x02,0x26,0x0c,0xff,0x00,0x00,0x00,0x07,0x00,0xdf,0x01,0xaa,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x2c,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0xd7, +0x01,0xbe,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x43,0x01,0xa6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x06,0x28,0x02,0x26, +0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x5e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x05,0x00,0x00,0x06,0x64,0x05,0xa5,0x02,0x26,0x0d,0x01,0x00,0x00,0x01,0x07,0x00,0x8f,0x01,0x94,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x27,0x01,0x27,0x00,0x11,0x5d,0x35,0x35,0xff,0xff, +0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x2c,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0xd7,0x67,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06,0x00,0x43,0x71,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x28,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x21,0x00,0x1e,0x00,0x0a, +0xb4,0x01,0x0f,0x0b,0x01,0x0b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x05,0xa3,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07,0x00,0xdb,0x01,0x3d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x06,0x2a,0x02,0x26,0x0d,0x04,0x00,0x00,0x01,0x07, +0x00,0xe0,0x00,0x8d,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0a,0x01,0x0a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0xe3,0x02,0x26,0x0c,0xeb,0x00,0x00,0x00,0x27,0x00,0xdc,0x00,0xdf,0xff,0x4b,0x01,0x07,0x00,0x8e,0x01,0x14,0x00,0xd9,0x00,0x2a,0x40,0x1b,0x04,0xe0,0x2f,0x01,0x90,0x2f,0x01,0x90,0x2f,0x01, +0x80,0x2f,0x01,0x70,0x2f,0x01,0x70,0x2f,0x01,0x60,0x2f,0x01,0x2f,0x03,0x02,0x27,0x35,0x00,0x3f,0x35,0x35,0x11,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x35,0xff,0xff,0xff,0xf8,0x00,0x00,0x05,0x56,0x06,0x28,0x02,0x26,0x0d,0x05,0x00,0x00,0x01,0x07,0x00,0x8e,0x02,0x7b,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x16,0x01,0x16,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x41,0xff,0xda,0x04,0xa9,0x06,0x28,0x02,0x26,0x0d,0x08,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x69,0x00,0x1e,0x00,0x0a,0xb4,0x03,0x0f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xa1,0x04,0x33, +0x02,0x06,0x0c,0xec,0x00,0x00,0x00,0x01,0x00,0x9c,0x00,0x00,0x03,0x06,0x04,0x33,0x00,0x05,0x00,0x18,0x40,0x0b,0x00,0x07,0x02,0x37,0x03,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0x01,0x2f,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x06,0xfe,0x3a,0xa4,0x02,0x6a,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00, +0x00,0x02,0x00,0x2a,0x00,0x00,0x04,0x20,0x04,0x33,0x00,0x05,0x00,0x0e,0x00,0x23,0x40,0x10,0x0e,0x02,0x06,0x05,0x02,0x05,0x0f,0x10,0x09,0x01,0x03,0x35,0x0e,0x39,0x01,0x33,0x00,0x3f,0xed,0x3f,0x12,0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x33,0x01,0x27,0x01,0x26,0x27,0x23,0x06,0x06, +0x07,0x01,0x04,0x20,0xfc,0x0a,0x01,0xa7,0xa4,0x01,0xab,0xcb,0xfe,0xed,0x1c,0x04,0x03,0x03,0x10,0x0e,0xfe,0xf3,0x39,0x03,0xfa,0xfc,0x06,0x51,0x02,0x9a,0x44,0x26,0x12,0x35,0x23,0xfd,0x66,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x03,0xb3,0x04,0x33, +0x02,0x06,0x0d,0x04,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x00,0x03,0x00,0x17,0x00,0x27,0x00,0x2f,0x40,0x18,0x02,0x01,0x20,0x04,0x38,0x18,0x18,0x29,0x20,0x38,0x0e,0x00,0x39,0x01,0x01,0x25,0x1b,0x39,0x13,0x36,0x25,0x39, +0x09,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x01,0x35,0x21,0x15,0x25,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xac,0x01,0x95,0x01,0x54,0x52, +0x91,0xc9,0x77,0x78,0xc6,0x8e,0x4e,0x4b,0x8f,0xd0,0x85,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57,0xb8,0xc0,0x01,0xdd,0x8b,0x8b,0x4a,0x86,0xd4,0x93,0x4d,0x4f,0x90,0xc8,0x79,0x7c,0xd0,0x97,0x55,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0xff,0xff,0x00,0xb0, +0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x04,0x15,0x04,0x33,0x00,0x0d,0x00,0x22,0x40,0x0f,0x04,0x03,0x0d,0x00,0x03,0x00,0x0f,0x0e,0x04,0x08,0x01,0x0d,0x33,0x01,0x35,0x00,0x3f,0x3f,0x12,0x39, +0x39,0x11,0x12,0x01,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x31,0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x01,0xbd,0xa3,0x01,0xb5,0xb9,0xfe,0xf4,0x20,0x1e,0x04,0x03,0x04,0x20,0x22,0xfe,0xee,0x04,0x33,0xfb,0xcd,0x02,0xc0,0x53,0x5f,0x1c,0x17,0x61,0x57,0xfd,0x41,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, +0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x02,0x06,0x0c,0xf8,0x00,0x00,0x00,0x03,0x00,0x49,0x00,0x00,0x03,0x4c,0x04,0x33,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x30,0x40,0x19,0x02,0x03,0x06,0x07,0x04,0x0b,0x0a,0x0b,0x0a,0x0b,0x0c,0x0d,0x05,0x39,0x06,0x06,0x02,0x0a, +0x39,0x09,0x33,0x01,0x39,0x02,0x35,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x21,0x35,0x21,0x13,0x21,0x35,0x21,0x03,0x36,0xfd,0x29,0x02,0xd7,0x73,0xfe,0x0f,0x01,0xf1,0x89,0xfc,0xfd,0x03,0x03,0x03,0xa3,0x90,0xfd,0xa7,0x8c,0xfd,0x9a, +0x91,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x00,0x07,0x00,0x1b,0x40,0x0d,0x04,0x37,0x05,0x00,0x37,0x01,0x03,0x39,0x06,0x35,0x01,0x05,0x33,0x00,0x3f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x11, +0x23,0x11,0x21,0x04,0x37,0xa5,0xfd,0xc2,0xa4,0x03,0x87,0x03,0xa6,0xfc,0x5a,0x04,0x33,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x00,0x03,0x63,0x04,0x33,0x00,0x0b,0x00,0x34,0x40,0x1a,0x08,0x04,0x03,0x07,0x09,0x0b,0x04,0x09,0x0b,0x0b,0x09,0x04,0x03,0x0d, +0x0a,0x02,0x04,0x08,0x39,0x05,0x35,0x02,0x0a,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x31,0x30,0x21,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x03,0x63,0xfc,0xcd,0x01,0x82,0xfe,0xa1,0x02,0xdc,0xfe,0x0d,0x01,0x27,0xfe,0xb0, +0x02,0x50,0x44,0x01,0xe5,0x01,0xbd,0x4d,0x8c,0xfe,0x87,0xfe,0x59,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x04,0x33,0x02,0x06,0x0d,0x03,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x46, +0x40,0x23,0x1f,0x12,0x01,0x37,0x37,0x0f,0x02,0x02,0x09,0x18,0x37,0x25,0x32,0x37,0x09,0x1f,0x37,0x3a,0x04,0x00,0x04,0x1e,0x2c,0x3a,0x0f,0x12,0x0f,0x04,0x0f,0x04,0x0f,0x02,0x10,0x36,0x02,0x00,0x2f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33, +0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x02,0xcd,0x99,0x18,0x66,0xaa,0x79,0x43,0x43,0x7a, +0xaa,0x67,0x16,0x99,0x17,0x69,0xaa,0x78,0x42,0x44,0x79,0xa9,0x65,0x19,0x17,0x46,0x70,0x4e,0x29,0x2a,0x4f,0x70,0x46,0xae,0x14,0x45,0x71,0x4f,0x2b,0x29,0x4e,0x70,0x47,0x8b,0x96,0x96,0x3e,0x71,0x9c,0x5f,0x5d,0x97,0x6a,0x3a,0x70,0x70,0x3b,0x6b,0x97,0x5b,0x5f,0x9c,0x71,0x3e,0x02,0xc4,0xfd,0xc1,0x27,0x4b,0x6c,0x46,0x41,0x69, +0x49,0x28,0xfd,0xc1,0x02,0x3f,0x27,0x49,0x6a,0x42,0x46,0x6c,0x4a,0x27,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x04,0xc3,0x04,0x33,0x00,0x1b,0x00,0x34,0x40,0x1a,0x0d,0x00,0x37,0x0e,0x1b,0x1b,0x06,0x15,0x37,0x14,0x07,0x37,0x06,0x01,0x19,0x39,0x0c,0x10, +0x10,0x0e,0x1b,0x06,0x14,0x35,0x0e,0x33,0x00,0x3f,0x3f,0x33,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0xec,0x19,0x97, +0x88,0x9f,0xe1,0xdd,0x19,0x99,0x19,0xd7,0xe6,0x9e,0x88,0x97,0x19,0x04,0x33,0xfd,0x60,0x8a,0x89,0x01,0x8d,0xfe,0x73,0xc6,0xd4,0xfe,0xf4,0x01,0x0c,0xd1,0xc9,0x01,0x8d,0xfe,0x73,0x89,0x8a,0x02,0xa0,0x00,0x00,0x01,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x00,0x2b,0x00,0x2a,0xbc,0x00,0x0f,0x01,0x50,0x00,0x1b,0x00,0x25,0x01, +0x50,0x40,0x0d,0x05,0x0a,0x39,0x20,0x36,0x2a,0x12,0x03,0x15,0x39,0x01,0x14,0x33,0x00,0x3f,0x33,0xed,0x32,0x32,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15, +0x14,0x0e,0x02,0x07,0x21,0x04,0xb8,0xfe,0x51,0x80,0x86,0x36,0x64,0x90,0x5a,0x5c,0x92,0x66,0x37,0x87,0x81,0xfe,0x50,0x01,0x0d,0x48,0x67,0x40,0x1e,0x51,0x93,0xcd,0x7d,0x7f,0xd0,0x93,0x50,0x1e,0x41,0x65,0x48,0x01,0x0c,0x8a,0x5d,0xd4,0x89,0x59,0x8c,0x62,0x33,0x33,0x62,0x8c,0x58,0x89,0xd5,0x5d,0x8a,0x8b,0x2c,0x62,0x6f,0x81, +0x4c,0x75,0xb8,0x80,0x43,0x42,0x7f,0xb9,0x76,0x4b,0x81,0x70,0x61,0x2d,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x06,0x28,0x02,0x26,0x0c,0xeb,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x1c,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x06,0x28,0x02,0x26,0x0c,0xef, +0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xe8,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x06,0x28,0x02,0x26,0x0c,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6f,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x0c,0x01,0x0c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x87,0x00,0x00, +0x02,0x0c,0x06,0x28,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x06,0x00,0x8e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x06,0x28,0x02,0x26,0x0c,0xf9,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x02,0x0f,0x24,0x01,0x24,0x00,0x11,0x5d,0x35, +0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x06,0x28,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x07,0x00,0x8e,0x00,0xf5,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x06,0x28,0x02,0x26,0x0d,0x80,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x6d,0x00,0x1e,0x00,0x0a,0xb4,0x01, +0x0f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x14,0x00,0x00,0x03,0xa7,0x05,0xa5,0x02,0x26,0x0d,0x03,0x00,0x00,0x01,0x06, +0x00,0x8f,0x3d,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x10,0x01,0x10,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27,0x05,0x8a,0x02,0x26,0x0c,0xef,0x00,0x00,0x01,0x06,0x00,0x8f,0x45,0x03,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x0d,0x01,0x0d,0x00,0x11,0x5d,0x35,0x35,0x00,0x01,0x00,0x22,0xff,0xf2,0x04,0x3f,0x04,0x33, +0x00,0x1d,0x00,0x3e,0x40,0x20,0x13,0x0b,0x37,0x0c,0x19,0x37,0x06,0x01,0x11,0x06,0x0c,0x06,0x0c,0x06,0x1f,0x0e,0x0a,0x39,0x13,0x13,0x0f,0x03,0x3a,0x1c,0x34,0x12,0x0e,0x39,0x0f,0x35,0x0c,0x33,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x32, +0x31,0x30,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x02,0x7c,0x32,0x49,0x4a,0x58,0x7e,0x72,0xba,0xa3,0xfe,0xd6,0x03,0x3a,0xfe,0x93,0xca,0x59,0x90,0x66,0x37,0xa4,0x97,0x4c,0x04,0x8c,0x19,0x5f,0x52,0x60,0x68,0xfe,0x10, +0x03,0xa9,0x8a,0x8a,0xfe,0xce,0x2c,0x56,0x7c,0x51,0x94,0xa2,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x06,0x28,0x00,0x26,0x0d,0x6b,0x14,0x00,0x01,0x07,0x00,0x8e,0x00,0xd6,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x06,0x01,0x06,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x58,0xff,0xee,0x03,0xca,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17, +0x0f,0x16,0x07,0x1c,0x1c,0x1e,0x14,0x17,0x38,0x07,0x17,0x39,0x14,0x14,0x1a,0x11,0x39,0x0c,0x36,0x1a,0x39,0x02,0x34,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x33,0x31,0x30,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21, +0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x03,0xca,0x83,0xc3,0x7d,0xcd,0x92,0x50,0x56,0x9a,0xd4,0x7f,0xb0,0x7f,0x86,0xaa,0xb1,0xcf,0x15,0x01,0xf7,0xfe,0x08,0x0e,0xc8,0xb4,0xb9,0x83,0x2d,0x3f,0x48,0x89,0xc7,0x7f,0x8a,0xd6,0x93,0x4d,0x2c,0x9e,0x40,0xa9,0xb6,0x89,0xa5,0xb7,0x48,0xff,0xff,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45, +0x02,0x06,0x0c,0xfd,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x01,0x54,0x04,0x33,0x02,0x06,0x0c,0xf3,0x00,0x00,0xff,0xff,0xff,0xe0,0x00,0x00,0x02,0x27,0x05,0xa5,0x02,0x26,0x0c,0xf3,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x63,0x00,0x1e,0x00,0x0c,0xb5,0x02,0x01,0x0f,0x05,0x01,0x05,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x11, +0xff,0xed,0x01,0xe5,0x04,0x33,0x02,0x06,0x0c,0xf4,0x00,0x00,0x00,0x02,0x00,0x0d,0xff,0xef,0x06,0x32,0x04,0x33,0x00,0x26,0x00,0x2f,0x00,0x44,0xb6,0x02,0x19,0x1b,0x28,0x37,0x00,0x21,0xb8,0x01,0x50,0x40,0x1b,0x2c,0x19,0x00,0x2c,0x2c,0x00,0x19,0x03,0x31,0x0f,0x27,0x39,0x1b,0x1b,0x28,0x02,0x39,0x19,0x35,0x11,0x39,0x0c,0x34, +0x28,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x21,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, +0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x03,0x37,0xfe,0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0xe2,0x58,0x8b,0x60,0x33,0x36,0x65,0x8f,0x58,0xd6,0xc4,0x70,0x7a,0x74,0x76,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f, +0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0xfe,0x44,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x00,0x02,0x00,0xb0,0x00,0x00,0x06,0x46,0x04,0x33,0x00,0x08,0x00,0x1f,0x00,0x49,0xb6,0x1f,0x01,0x37,0x14,0x1c,0x14,0x0e,0xb8,0x01,0x50,0x40,0x1c,0x05,0x14,0x05,0x14,0x05,0x21,0x1b, +0x17,0x37,0x18,0x16,0x39,0x1b,0x00,0x39,0x1f,0x1b,0x1f,0x1b,0x1f,0x1d,0x19,0x35,0x01,0x39,0x17,0x14,0x33,0x00,0x3f,0x33,0xed,0x3f,0x33,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x03,0xf3,0xbf,0x70,0x7a,0x6f,0x76,0x1e,0x58,0x8a,0x5e,0x31,0x36,0x65,0x8f,0x58,0xfe,0x8c,0xfe,0x03,0xa3,0xa3,0x01,0xfd,0xa3,0x01,0xed,0xfe,0x9d,0x52,0x5d,0x60,0x54,0x8a,0x2b,0x50,0x73,0x48,0x4a,0x77,0x53,0x2d,0x01,0xec,0xfe, +0x14,0x04,0x33,0xfe,0x43,0x01,0xbd,0xfe,0x44,0x00,0x00,0x01,0x00,0x22,0x00,0x00,0x04,0x64,0x04,0x33,0x00,0x12,0x00,0x34,0x40,0x1a,0x0f,0x07,0x37,0x08,0x00,0x37,0x01,0x08,0x01,0x08,0x01,0x14,0x0a,0x06,0x39,0x0f,0x0f,0x08,0x0e,0x0a,0x39,0x0b,0x35,0x01,0x08,0x33,0x00,0x3f,0x33,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x20,0x11,0x04,0x64,0xa4,0x6f,0x65,0xfc,0xa3,0xfe,0xd5,0x03,0x3a,0xfe,0x94,0xfd,0x01,0x77,0x01,0x24,0x66,0x5f,0xfe,0x17,0x03,0xa9,0x8a,0x8a,0xfe,0xc7,0xfe,0xb4,0x00,0xff,0xff, +0x00,0xb0,0x00,0x00,0x03,0xec,0x06,0x28,0x02,0x26,0x0c,0xf5,0x00,0x00,0x01,0x07,0x00,0x8e,0x01,0x42,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x13,0x01,0x13,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x36,0xff,0xed,0x03,0xf4,0x05,0xdc,0x02,0x26,0x0d,0xab,0x00,0x00,0x01,0x07,0x00,0xda,0x00,0xea,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c, +0x01,0x1c,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0xb0,0xfe,0xe0,0x04,0x2f,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x01,0x37,0x04,0x00,0x37,0x09,0x04,0x09,0x04,0x09,0x0d,0x08,0x37,0x05,0x0a,0x06,0x35,0x08,0x39,0x01,0x05,0x33,0x03,0x00,0x2f,0x3f,0x33,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x31,0x30,0x21,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0x2f,0xfe,0x8b,0x98,0xfe,0x8e,0xa3,0x02,0x38,0xa4,0xfe,0xe0,0x01,0x20,0x04,0x33,0xfc,0x57,0x03,0xa9,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x33,0x02,0x06,0x0c,0xeb,0x00,0x00,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9c,0x04,0x33,0x00,0x10, +0x00,0x1b,0x00,0x2f,0x40,0x18,0x03,0x12,0x0b,0x38,0x16,0x16,0x1d,0x05,0x12,0x37,0x00,0x11,0x39,0x05,0x05,0x12,0x04,0x39,0x01,0x35,0x12,0x39,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x33,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0xb0,0x02,0x7c,0xfe,0x27,0xca,0x58,0x8e,0x64,0x35,0x38,0x67,0x92,0x59,0xbf,0xac,0x7d,0x75,0x1b,0x3b,0x5c,0x40,0x04,0x33,0x8a,0xfe,0xce,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xed,0xfe,0x9d,0x50,0x5f,0x30,0x45,0x2b,0x14,0x00,0xff,0xff,0x00,0xb0,0x00,0x00, +0x03,0xa1,0x04,0x33,0x02,0x06,0x0c,0xec,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0x33,0x00,0x06,0x0d,0x6b,0x14,0x00,0x00,0x02,0x00,0x12,0xfe,0xdf,0x04,0x6c,0x04,0x33,0x00,0x0f,0x00,0x18,0x00,0x44,0x40,0x23,0x0f,0x37,0x02,0x0e,0x37,0x10,0x12,0x37,0x0c,0x18,0x07,0x0c,0x07,0x10,0x06,0x02,0x10,0x02,0x10,0x1a, +0x03,0x37,0x06,0x12,0x39,0x0c,0x35,0x01,0x04,0x0e,0x07,0x18,0x39,0x03,0x33,0x00,0x3f,0xed,0x32,0x32,0x2f,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x36,0x37,0x12,0x37,0x21,0x11,0x33,0x21,0x11, +0x21,0x06,0x06,0x07,0x06,0x06,0x07,0x04,0x6c,0x98,0xfc,0xd7,0x99,0x5d,0x3c,0x64,0x2a,0x55,0x0a,0x02,0x34,0xa0,0xfe,0xbd,0xfe,0xfd,0x07,0x2d,0x27,0x27,0x56,0x30,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0xab,0x61,0xdf,0x81,0x01,0x02,0xe6,0xfc,0x57,0x03,0x1f,0x58,0xcb,0x75,0x76,0xc2,0x4f,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x27, +0x04,0x33,0x02,0x06,0x0c,0xef,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x05,0xe7,0x04,0x33,0x00,0x1d,0x00,0x17,0x40,0x0a,0x06,0x37,0x07,0x07,0x1f,0x1e,0x15,0x35,0x07,0x33,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xed,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x01,0x16, +0x17,0x33,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x05,0xe7,0xc9,0xfe,0x47,0x15,0x0a,0x04,0x9c,0x04,0x0b,0x13,0xfe,0x46,0xca,0x01,0xff,0xfe,0x25,0xb9,0x01,0xa7,0x13,0x0b,0x04,0x9c,0x04,0x0a,0x15,0x01,0xa6,0xb8,0xfe,0x26,0x01,0xec,0x14,0x11,0xfd,0xef,0x02,0x11,0x10,0x15,0xfe,0x14,0x02,0x2e,0x02,0x05,0xfe,0x2f,0x15, +0x10,0x01,0xf6,0xfe,0x0a,0x10,0x15,0x01,0xd1,0xfd,0xfb,0x00,0x00,0x01,0x00,0x50,0xff,0xee,0x03,0x3d,0x04,0x45,0x00,0x2f,0x00,0x39,0x40,0x1e,0x10,0x38,0x17,0x0c,0x23,0x03,0x00,0x20,0x20,0x00,0x29,0x38,0x08,0x08,0x31,0x00,0x24,0x0b,0x3a,0x0c,0x0c,0x1b,0x03,0x3b,0x2e,0x34,0x15,0x3b,0x1b,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11, +0x39,0x2f,0xed,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x37,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x50,0x88,0xa9, +0x3d,0x65,0x46,0x27,0xfe,0xd9,0x76,0x6c,0x7e,0x89,0x1e,0x38,0x50,0x33,0x8e,0x89,0x42,0x96,0x56,0x54,0x88,0x60,0x34,0x75,0x71,0x3d,0x64,0x47,0x27,0x3d,0x72,0xa2,0x65,0xca,0x2d,0x96,0x5c,0x1b,0x33,0x48,0x2d,0xc2,0x80,0x60,0x58,0x25,0x3e,0x2c,0x18,0x55,0x8d,0x22,0x20,0x26,0x46,0x61,0x3b,0x69,0x83,0x1c,0x03,0x06,0x2b,0x44, +0x59,0x34,0x4a,0x77,0x54,0x2d,0x00,0x01,0x00,0xb0,0x00,0x00,0x04,0x7a,0x04,0x33,0x00,0x18,0x00,0x1e,0x40,0x0e,0x0e,0x37,0x0c,0x0f,0x0f,0x1a,0x17,0x01,0x37,0x00,0x17,0x33,0x01,0x35,0x00,0x3f,0x3f,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x3e,0x03,0x37,0x01,0x33,0x11,0x23, +0x11,0x34,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0xb0,0x99,0x04,0x04,0x03,0x03,0x09,0x11,0x19,0x12,0x02,0x35,0xb9,0x99,0x06,0x05,0x08,0x29,0x1f,0xfd,0xcc,0xae,0x04,0x33,0xfd,0x39,0x39,0x4e,0x17,0x05,0x10,0x18,0x23,0x19,0x02,0xfc,0xfb,0xcd,0x02,0xe1,0x71,0x23,0x13,0x41,0x2a,0xfd,0x09,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x7a, +0x05,0xdc,0x02,0x26,0x0d,0xa0,0x00,0x00,0x01,0x07,0x00,0xda,0x01,0x65,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1c,0x01,0x1c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0xec,0x04,0x33,0x02,0x06,0x0c,0xf5,0x00,0x00,0x00,0x01,0x00,0x0d,0xff,0xef,0x03,0xda,0x04,0x33,0x00,0x1b,0x00,0x2b,0x40,0x16,0x03,0x37,0x1a,0x00, +0x37,0x01,0x1a,0x01,0x1a,0x01,0x1d,0x10,0x03,0x39,0x1a,0x35,0x12,0x39,0x0d,0x34,0x01,0x33,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x21,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x12,0x37,0x21,0x03,0xda,0xa3,0xfe, +0xe5,0x0e,0x1a,0x16,0x14,0x08,0x0f,0x26,0x45,0x6f,0x5a,0x42,0x30,0x2b,0x33,0x2c,0x38,0x27,0x1e,0x12,0x19,0x34,0x1d,0x02,0x4a,0x03,0xa9,0x66,0xa5,0x87,0x6a,0x2a,0x4e,0x92,0x70,0x44,0x0f,0x8f,0x16,0x28,0x51,0x7a,0x52,0x70,0x01,0x39,0xce,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x05,0x62,0x04,0x33,0x02,0x06,0x0c,0xf7,0x00,0x00, +0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x39,0x04,0x33,0x02,0x06,0x0c,0xf2,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x95,0x04,0x45,0x02,0x06,0x0c,0xf9,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x04,0x37,0x04,0x33,0x02,0x06,0x0d,0x78,0x00,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x03,0x92,0x04,0x33,0x02,0x06,0x0c,0xfa,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x04,0x45,0x02,0x06,0x0c,0xed,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x03,0x6c,0x04,0x33,0x02,0x06,0x0c,0xfe,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xed,0x03,0xf4,0x04,0x33,0x00,0x18,0x00,0x23,0x40,0x10,0x18,0x00,0x00,0x1a,0x12,0x11,0x10,0x16,0x06,0x18,0x11,0x35,0x0b,0x39,0x06,0x34, +0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x01,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x03,0xf4,0xfe,0x91,0x2c,0x56,0x61,0x72,0x48,0x57,0x3d,0x45,0x4c,0x1f,0x3a,0x39,0x3b,0x21,0xfe,0x63,0xb6,0x01,0x18,0x08,0x11, +0x06,0x01,0x01,0x23,0x04,0x33,0xfd,0x12,0x5a,0x82,0x54,0x28,0x17,0x98,0x26,0x0e,0x29,0x49,0x3c,0x03,0x01,0xfd,0xdc,0x0e,0x26,0x12,0x02,0x6a,0xff,0xff,0x00,0x50,0xff,0xf5,0x04,0xb1,0x04,0x3d,0x02,0x06,0x0d,0x7d,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x03,0xe4,0x04,0x33,0x02,0x06,0x0d,0x02,0x00,0x00,0x00,0x01,0x00,0xb0, +0xfe,0xdf,0x04,0xce,0x04,0x33,0x00,0x0b,0x00,0x2a,0x40,0x15,0x02,0x37,0x0b,0x0b,0x09,0x37,0x08,0x08,0x0d,0x05,0x37,0x04,0x08,0x04,0x35,0x0a,0x06,0x39,0x03,0x33,0x01,0x00,0x2f,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x2f,0xed,0x31,0x30,0x01,0x23,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33, +0x04,0xce,0x99,0xfc,0x7b,0xa3,0x02,0x38,0xa4,0x9f,0xfe,0xdf,0x01,0x21,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xb0,0x04,0x33,0x00,0x15,0x00,0x2b,0x40,0x15,0x15,0x37,0x02,0x14,0x14,0x17,0x0c,0x37,0x0b,0x10,0x39,0x02,0x0b,0x05,0x05,0x01,0x14,0x0b,0x35,0x01,0x33,0x00,0x3f,0x3f,0x33,0x12, +0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x03,0xb0,0xa3,0x56,0xa7,0x60,0x47,0x72,0x4f,0x2b,0xa3,0x54,0x60,0x4b,0x99,0x55,0xa3,0x01,0xd8,0x28,0x33,0x26,0x4b,0x6f,0x49,0x01,0x8d,0xfe, +0x90,0x64,0x5b,0x28,0x26,0x01,0xe1,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x05,0xc3,0x04,0x33,0x00,0x0b,0x00,0x2e,0x40,0x17,0x07,0x37,0x06,0x0b,0x37,0x0a,0x06,0x0a,0x06,0x0a,0x0d,0x03,0x37,0x02,0x0a,0x06,0x02,0x35,0x08,0x04,0x39,0x01,0x33,0x00,0x3f,0xed,0x32,0x3f,0x33,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, +0x10,0xed,0x31,0x30,0x21,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x05,0xc3,0xfa,0xed,0xa3,0x01,0x95,0xa3,0x01,0x95,0xa3,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0x00,0x00,0x01,0x00,0xb0,0xfe,0xdf,0x06,0x61,0x04,0x33,0x00,0x0f,0x00,0x39,0x40,0x1d,0x05,0x37,0x04,0x0e,0x37,0x0b,0x0b,0x09,0x37,0x08, +0x04,0x08,0x04,0x08,0x11,0x01,0x37,0x00,0x0a,0x06,0x02,0x39,0x0f,0x33,0x0d,0x08,0x04,0x00,0x35,0x00,0x3f,0x32,0x32,0x2f,0x3f,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x2f,0xed,0x10,0xed,0x31,0x30,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x21,0xb0,0xa3,0x01, +0x95,0xa3,0x01,0x95,0xa3,0x9e,0x99,0xfa,0xe8,0x04,0x33,0xfc,0x57,0x03,0xa9,0xfc,0x57,0x03,0xa9,0xfc,0x57,0xfe,0x55,0x01,0x21,0x00,0x00,0x02,0x00,0x22,0x00,0x00,0x04,0x3b,0x04,0x33,0x00,0x10,0x00,0x19,0x00,0x33,0x40,0x1a,0x05,0x12,0x37,0x00,0x0b,0x38,0x16,0x00,0x16,0x00,0x16,0x1b,0x02,0x11,0x3a,0x05,0x05,0x12,0x02,0x39, +0x03,0x35,0x12,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x21,0x35,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x4d,0xfe,0xd5,0x01,0xce,0xca,0x58,0x8f,0x64,0x36, +0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x03,0xa9,0x8a,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x03,0x00,0xb0,0x00,0x00,0x04,0xf1,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x1b,0x00,0x35,0x40,0x1b,0x09,0x38,0x14,0x18,0x37,0x19,0x14,0x19,0x14,0x19,0x1d,0x03, +0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x1a,0x01,0x35,0x10,0x3a,0x19,0x00,0x33,0x00,0x3f,0x32,0xed,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x01,0x23,0x11, +0x33,0xb0,0xa3,0xca,0x58,0x8f,0x64,0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x02,0xf2,0xa4,0xa4,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0xfe,0x0f,0x04,0x33,0x00,0x02,0x00,0xb0,0x00,0x00,0x03,0x9e,0x04,0x33,0x00,0x0e,0x00,0x17,0x00,0x26,0x40,0x13, +0x09,0x38,0x14,0x14,0x19,0x03,0x10,0x37,0x00,0x0f,0x3a,0x03,0x03,0x01,0x35,0x10,0x3a,0x00,0x33,0x00,0x3f,0xed,0x3f,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0xb0,0xa3,0xca,0x58,0x8f,0x64, +0x36,0x39,0x68,0x92,0x59,0xbf,0xac,0x75,0x7f,0x7b,0x79,0x04,0x33,0xfe,0x44,0x2b,0x51,0x73,0x47,0x4a,0x77,0x53,0x2d,0x01,0xf1,0xfe,0x95,0x54,0x5f,0x61,0x57,0x00,0x00,0x01,0x00,0x54,0xff,0xee,0x03,0xc6,0x04,0x45,0x00,0x1c,0x00,0x2e,0x40,0x17,0x15,0x38,0x08,0x06,0x00,0x05,0x05,0x1e,0x0d,0x00,0x06,0x39,0x07,0x07,0x10,0x02, +0x39,0x1a,0x34,0x0b,0x39,0x10,0x36,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x54,0x82,0xba,0xb4,0xc8,0x0e,0xfe,0x08,0x01, +0xf7,0x15,0xcf,0xb1,0xaa,0x86,0x7f,0xb0,0x86,0xd7,0x96,0x50,0x50,0x92,0xcd,0x7d,0xc4,0x82,0xbf,0x48,0xb7,0xa5,0x89,0xb6,0xa9,0x40,0x9e,0x2c,0x4d,0x94,0xd6,0x89,0x7f,0xc7,0x89,0x48,0x3f,0x00,0x00,0x02,0x00,0xb0,0xff,0xed,0x06,0x88,0x04,0x45,0x00,0x1a,0x00,0x2a,0x00,0x43,0xb9,0x00,0x23,0x01,0x50,0x40,0x20,0x0a,0x11,0x0a, +0x00,0x38,0x1b,0x0a,0x1b,0x0a,0x1b,0x2c,0x10,0x0c,0x37,0x0d,0x0b,0x3a,0x10,0x10,0x28,0x1e,0x39,0x16,0x36,0x0e,0x35,0x0d,0x33,0x28,0x39,0x05,0x34,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x07,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x06,0x88,0x52,0x91,0xc9,0x77,0x74,0xc1,0x8d,0x52,0x05,0xf9,0xa3,0xa3,0xfe,0x0e,0x57,0x8c,0xc0,0x78,0x7a,0xc3,0x88,0x49,0xab,0xb7,0xb7,0x57,0x8c,0x62,0x34,0x31,0x5f,0x88,0x57, +0xb8,0xc0,0x02,0x27,0x86,0xd4,0x93,0x4d,0x4b,0x87,0xbd,0x72,0xfe,0x12,0x04,0x33,0xfe,0x3d,0x68,0xac,0x7c,0x45,0x55,0x93,0xc6,0x80,0xc8,0xdc,0x3c,0x6e,0x9b,0x5e,0x5e,0x9a,0x6d,0x3c,0xda,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x03,0x39,0x04,0x33,0x00,0x1c,0x00,0x27,0x00,0x3d,0xb9,0x00,0x22,0x01,0x50,0x40,0x1b,0x16,0x1d,0x00, +0x37,0x01,0x10,0x01,0x16,0x01,0x16,0x01,0x29,0x09,0x0a,0x10,0x03,0x3a,0x27,0x27,0x09,0x1e,0x3a,0x1c,0x35,0x01,0x09,0x33,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x21,0x23,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03, +0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x03,0x39,0xa4,0x9c,0x16,0x26,0x24,0x24,0x14,0x97,0xb8,0xb7,0x08,0x1b,0x23,0x2b,0x18,0x3b,0x5d,0x40,0x22,0x39,0x66,0x8f,0x56,0x01,0x5d,0xa3,0xb0,0x6d,0x77,0x20,0x3b,0x52,0x33,0x01,0xb5,0x08,0x1b,0x32,0x2a,0xfe,0xca,0x01, +0x63,0x10,0x26,0x24,0x1e,0x09,0x03,0x0c,0x32,0x49,0x5d,0x36,0x46,0x71,0x50,0x2b,0xfe,0x08,0x01,0x72,0x5e,0x58,0x2c,0x45,0x31,0x1a,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x1a,0x04,0xf9,0x00,0x07,0x00,0x1f,0x40,0x0f,0x00,0x37,0x05,0x05,0x09,0x02,0x37,0x03,0x06,0x01,0x39,0x04,0x35,0x03,0x33,0x00,0x3f,0x3f,0xed,0xce,0x01,0x2f, +0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x33,0x03,0x1a,0xfe,0x39,0xa3,0x01,0xda,0x90,0x03,0xa9,0xfc,0x57,0x04,0x33,0xc6,0x00,0x01,0x00,0x35,0x00,0x00,0x03,0xff,0x06,0x04,0x00,0x1d,0x00,0x37,0x40,0x1c,0x1c,0x04,0x84,0x09,0x05,0x05,0x01,0x07,0x13,0x00,0x84,0x01,0x13,0x13,0x08,0x16,0x95,0x0f, +0x01,0x03,0x07,0x95,0x1c,0x08,0x0f,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x03, +0xff,0xa4,0xfe,0x2c,0xa4,0xae,0xae,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x04,0x01,0x06,0x04,0x00,0x1d,0x00,0x33,0x40,0x1a,0x0b,0x0f, +0x84,0x14,0x10,0x0d,0x10,0x0d,0x01,0x12,0x00,0x84,0x01,0x05,0x95,0x1a,0x01,0x0e,0x12,0x95,0x0b,0x13,0x0f,0x01,0x10,0x15,0x00,0x3f,0x33,0x3f,0x33,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11, +0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x04,0x01,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xae,0xae,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07,0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x05,0x19, +0x06,0x02,0x00,0x2c,0x00,0x59,0x40,0x2f,0x11,0x28,0x84,0x29,0x00,0x29,0x20,0x24,0x84,0x12,0x0a,0x25,0x29,0x25,0x22,0x22,0x25,0x29,0x03,0x1a,0x2b,0x1a,0x27,0x23,0x2b,0x95,0x2c,0x0a,0x1b,0x0a,0x1b,0x06,0x20,0x11,0x2c,0x0f,0x25,0x29,0x15,0x1d,0x95,0x18,0x01,0x0d,0x95,0x06,0x00,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33, +0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x13,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15, +0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0xe3,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd5,0x30,0x57,0x78,0x47,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0xa4,0xfe,0x2b,0xa4,0xae,0x04,0x00,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0xa6,0x4e,0x80,0x5b,0x33,0x12,0x94,0x1b, +0xd9,0x9e,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x00,0x01,0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x62,0x40,0x36,0x1e,0x08,0x84,0x09,0x0d,0x09,0x32,0x04,0x84,0x1f,0x17,0x05,0x09,0x05,0x09,0x05,0x01,0x0b,0x29,0x00,0x84,0x01,0x2c,0x95,0x25,0x01,0xb0,0x29,0xc0,0x29,0xe0,0x29,0x03,0x17,0x29,0x17, +0x29,0x0c,0x1a,0x95,0x13,0x00,0x07,0x03,0x0b,0x95,0x32,0x1e,0x0c,0x0f,0x05,0x01,0x09,0x15,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21, +0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x21,0x06,0x78,0xa4,0xfe,0x2c,0xa4,0xfe,0x2b,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e, +0x53,0x30,0x6d,0x71,0x01,0xd5,0x40,0x81,0xc2,0x81,0x48,0x7e,0x23,0x2e,0x7f,0x49,0x53,0x7f,0x56,0x2b,0x02,0x78,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x09,0x09,0x94,0x0e,0x0d,0x37,0x61,0x85,0x4f,0x0d,0x00,0x00,0x01, +0x00,0x35,0x00,0x00,0x06,0x78,0x06,0x04,0x00,0x33,0x00,0x58,0x40,0x2f,0x29,0x13,0x84,0x14,0x18,0x14,0x0b,0x0f,0x84,0x2a,0x22,0x10,0x14,0x10,0x0d,0x0d,0x10,0x14,0x03,0x01,0x16,0x00,0x84,0x01,0x05,0x95,0x30,0x01,0x22,0x22,0x17,0x25,0x95,0x1e,0x00,0x12,0x0e,0x16,0x95,0x29,0x0b,0x17,0x0f,0x10,0x01,0x14,0x15,0x00,0x3f,0x33, +0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0x33,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x06,0x78,0xa2,0x17,0x56,0x2c,0x53,0x79,0x4e,0x25,0xf1,0xf1,0xa4,0xfe,0x2d,0xa4,0xae,0xae,0x2f,0x5e,0x8d,0x5f,0x35,0x5b,0x1a,0x1e,0x53,0x30,0x6d,0x71,0x01,0xd3,0x3a,0x79,0xbc,0x81,0x3e,0x96,0x5a,0x05,0x6e,0x04,0x07, +0x37,0x61,0x85,0x4f,0x0d,0x8b,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0x8b,0x15,0x5e,0xa9,0x80,0x4a,0x09,0x09,0x94,0x0e,0x0d,0xb0,0x9e,0x0d,0x15,0x5e,0xb3,0x8a,0x54,0x0b,0x0d,0x00,0x00,0x03,0x00,0x57,0xff,0xef,0x05,0x31,0x04,0x45,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x6d,0x40,0x3e,0x38,0x05,0x0f,0x33,0x37,0x2c,0x29,0x49, +0x2c,0x53,0x24,0x4e,0x12,0x03,0x17,0x21,0x37,0x58,0x60,0x37,0x17,0x40,0x2c,0x58,0x17,0x17,0x58,0x2c,0x40,0x04,0x69,0x53,0x37,0x0f,0x12,0x4e,0x49,0x05,0x04,0x00,0x5d,0x3b,0x1c,0x2f,0x2f,0x44,0x65,0x24,0x29,0x38,0x04,0x3d,0x1c,0x36,0x44,0x39,0x0a,0x34,0x3d,0x39,0x00,0x34,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x12, +0x39,0x2f,0x10,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07, +0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb2,0x2f,0x4a,0x41,0x3b,0x1f,0x23,0x56,0x6a, +0x7e,0x4b,0x5c,0x97,0x6c,0x3c,0x8b,0x85,0x19,0x30,0x26,0x17,0x30,0x53,0x71,0x41,0x40,0x6c,0x4d,0x2b,0x65,0x65,0x34,0x56,0x4a,0x3f,0x1e,0x33,0x35,0x08,0x07,0xa1,0x08,0x06,0x14,0x2a,0x40,0x2c,0x1d,0x2d,0x2d,0x33,0x21,0x18,0x34,0x1b,0x1e,0x41,0xfd,0x20,0x3a,0x63,0x52,0x44,0x1c,0x2a,0x4f,0x56,0x63,0x3d,0x2d,0x4e,0x39,0x20, +0x26,0x42,0x59,0xde,0x19,0x28,0x31,0x18,0x44,0x51,0x01,0x14,0x21,0x2a,0x17,0x5a,0x50,0x11,0x12,0x23,0x33,0x20,0x1b,0x31,0x26,0x16,0x2a,0x51,0x76,0x4b,0x73,0xa1,0x34,0x10,0x2b,0x36,0x43,0x28,0x3c,0x5b,0x3f,0x20,0x20,0x3c,0x54,0x34,0x5a,0x77,0x2a,0x14,0x3b,0x48,0x53,0x2b,0x55,0xcb,0x70,0x1d,0x32,0x19,0x19,0x2c,0x1e,0x40, +0x86,0x83,0x7e,0x37,0x20,0x2b,0x1a,0x0b,0x0c,0x09,0x85,0x0e,0x0b,0x8b,0x10,0x1d,0x27,0x18,0x3e,0x63,0x4d,0x3a,0x16,0x11,0x29,0x39,0x4a,0x32,0x2f,0x46,0x2e,0x18,0x02,0xd7,0x1f,0x2e,0x1e,0x0e,0x45,0x3b,0x1a,0x2f,0x28,0x20,0x0b,0x1c,0x4e,0x00,0xff,0xff,0x00,0x58,0xff,0xed,0x03,0xbb,0x06,0x2c,0x02,0x26,0x0c,0xed,0x00,0x00, +0x01,0x07,0x00,0xd7,0x00,0xf1,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x1e,0x01,0x1e,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x58,0xff,0xed,0x04,0x20,0x06,0x2c,0x02,0x26,0x0c,0xf1,0x00,0x00,0x01,0x07,0x00,0xd7,0x01,0x1e,0x00,0x1e,0x00,0x0a,0xb4,0x01,0x0f,0x23,0x01,0x23,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x68,0xfe,0x85,0x03,0x08, +0x04,0x45,0x02,0x26,0x0c,0xfd,0x00,0x00,0x00,0x06,0x01,0x9c,0x25,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x2f,0x05,0x9a,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0x29,0x05,0x9a,0x02,0x06,0x00,0x33,0x00,0x00,0xff,0xff,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x01,0x0f,0x00,0x33,0x04,0x7b,0x05,0x9a, +0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x03,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x02,0x06,0x00,0x37,0x00,0x00,0xff,0xff,0x00,0x27,0x00,0x00,0x04,0x0a,0x05,0x9a,0x01,0x47,0x00,0x37,0xff,0xfe,0x05,0x9a, +0x40,0x00,0xc0,0x00,0x00,0x07,0xb2,0x00,0x07,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0xec,0x05,0xb2,0x02,0x06,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x02,0x06,0x00,0x2e,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x01,0x0f,0x00,0x2e,0x04,0xa4,0x05,0x9a, +0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x01,0x0f,0x00,0x26,0x04,0xf4,0x05,0x9a,0xc0,0x00, +0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x02,0x06,0x00,0x3d,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0x94,0x05,0x9a,0x02,0x06,0x00,0x29,0x00,0x00,0xff,0xff,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x01,0x0f,0x00,0x29,0x03,0xe8,0x05,0x9a,0xc0,0x00,0x00,0x07, +0xb2,0x00,0x08,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x00,0x31,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x79,0xff,0xe8,0x03,0xde, +0x05,0xb2,0x02,0x06,0x00,0x36,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xc0,0x05,0x9a,0x02,0x06,0x00,0x35,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x00,0x04,0x0d,0x05,0x9a,0x01,0x0f,0x00,0x35,0x04,0xc9,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x0b,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6, +0x05,0x9a,0x01,0x0f,0x00,0x39,0x04,0xf8,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x02,0x06,0x00,0x39,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x02,0x06,0x00,0x2b,0x00,0x00,0xff,0xff,0x00,0x91,0xff,0xe8,0x05,0x1f,0x05,0xb2, +0x01,0x0f,0x00,0x2a,0x05,0x7d,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x08,0x13,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xb0,0x00,0x00,0x02,0xc7,0x05,0xb2,0x01,0x0f,0x00,0x2d,0x02,0xdb,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x0b,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x60,0x05,0x9a,0x02,0x06,0x00,0x3a, +0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x06,0x00,0x3b,0x00,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x04,0x60,0x05,0x9a,0x02,0x06,0x00,0x3c,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x03,0xda,0x05,0x9a,0x01,0x0f,0x00,0x25,0x04,0x96,0x05,0x9a,0xc0,0x00,0x00,0x0b,0xb4,0x02,0x01,0x00,0x01,0x12,0x00,0x3f, +0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x02,0x06,0x00,0x24,0x00,0x00,0xff,0xff,0x00,0x17,0x00,0x00,0x05,0x13,0x05,0x9a,0x01,0x0f,0x00,0x24,0x05,0x29,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x06,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xb4,0x05,0x9a,0x02,0x06, +0x00,0x28,0x00,0x00,0xff,0xff,0x00,0x58,0x00,0x00,0x03,0x50,0x05,0x9a,0x01,0x0f,0x00,0x28,0x04,0x0c,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x01,0x64,0x05,0x9a,0x02,0x06,0x00,0x2c,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x02,0x06,0x00,0x32, +0x00,0x00,0xff,0xff,0x00,0xaa,0xff,0xe8,0x04,0xd5,0x05,0x9a,0x02,0x06,0x00,0x38,0x00,0x00,0xff,0xff,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0xb2,0x01,0x0f,0x00,0x38,0x05,0x7f,0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x05,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x01,0x0f,0x00,0x2f,0x03,0xc4, +0x05,0x9a,0xc0,0x00,0x00,0x07,0xb2,0x00,0x03,0x12,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x04,0xe0,0x05,0x9a,0x01,0x0f,0x00,0x27,0x05,0x9c,0x05,0x9a,0xc0,0x00,0x00,0x09,0xb3,0x01,0x00,0x01,0x12,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x00,0xcb,0x02,0x06,0x00,0x11,0x00,0x00,0xff,0xff, +0x00,0x27,0xfe,0xf8,0x01,0x3c,0x00,0xe4,0x02,0x06,0x00,0x0f,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x03,0x0c,0x00,0xcb,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x11,0x01,0xbc,0x00,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x02,0xf8,0x00,0xe4,0x00,0x26,0x00,0x11,0x00,0x00,0x00,0x07,0x00,0x0f,0x01,0xbc,0x00,0x00,0xff,0xff, +0x00,0x27,0xfe,0xf8,0x01,0x52,0x04,0x16,0x02,0x06,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x70,0xff,0xea,0x01,0x50,0x04,0x16,0x02,0x06,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xea,0x04,0x83,0x02,0x7b,0x00,0x26,0x00,0x10,0x00,0x00,0x00,0x07,0x00,0x11,0x03,0x33,0x00,0x00,0xff,0xff,0x00,0x90,0x01,0xc8,0x02,0xb2,0x03,0xf4, +0x02,0x27,0x00,0x10,0x00,0x00,0x01,0x79,0x00,0x06,0x00,0x10,0x00,0xce,0x00,0x01,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x00,0x0b,0x00,0x61,0x40,0x40,0x02,0x0a,0x92,0x0b,0x03,0x03,0x07,0x92,0x40,0x06,0x01,0x04,0x0e,0x03,0x07,0x08,0x42,0x0a,0x07,0x40,0x03,0x06,0x0d,0x06,0x4d,0x03,0x06,0x0c,0x06,0x4d,0x03,0x06,0x0b,0x06, +0x4d,0x03,0x7e,0x08,0x08,0x04,0x0d,0x06,0x4d,0x08,0x02,0x0c,0x06,0x4d,0x08,0x02,0x0b,0x06,0x4d,0x08,0x40,0x0d,0x01,0x4d,0x0c,0x0d,0x08,0x7e,0xff,0x30,0x2b,0x01,0x2b,0x2b,0x2b,0x2b,0x10,0xe1,0x2b,0x2b,0x2b,0x1a,0x18,0xcd,0x32,0x2b,0x01,0x10,0xe1,0x32,0x00,0x18,0x2f,0x1a,0xed,0x32,0x3f,0xed,0x32,0x31,0x30,0x01,0x15,0x23, +0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x23,0x35,0x01,0xf0,0x8c,0x8c,0xfe,0x40,0x8c,0x8c,0x05,0x9a,0x90,0xfb,0x86,0x90,0x90,0x04,0x7a,0x90,0x00,0x00,0x02,0x00,0x5e,0xfe,0x7c,0x05,0xcc,0x05,0xb2,0x00,0x28,0x00,0x38,0x00,0x96,0x40,0x29,0x78,0x12,0x01,0x14,0x00,0x29,0x91,0x0b,0x04,0x31,0x91,0x00,0x19,0xee,0x24,0x1e,0x1e,0x75, +0x14,0x01,0x14,0x00,0x07,0x0f,0x06,0x0d,0x06,0x4d,0x0f,0x06,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x7d,0x35,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x35,0xb8,0xff,0xea,0xb3,0x0c,0x06,0x4d,0x35,0xb8,0xff,0xea,0x40,0x2f,0x0b,0x06,0x4d,0x20,0x35,0x30,0x35,0x02,0x35,0x35,0x3a,0x2d,0x06,0x0d,0x06,0x4d,0x2d,0x06,0x0c,0x06, +0x4d,0x2d,0x06,0x0b,0x06,0x4d,0x2d,0x7d,0x07,0x10,0x0d,0x06,0x4d,0x07,0x10,0x0c,0x06,0x4d,0x07,0x10,0x0b,0x06,0x4d,0x07,0x2f,0x3a,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe1,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x5d,0x2b,0x2b,0x2b,0xf1,0x2b,0x2b,0x2b,0x11,0x39,0x39,0x5d,0xc2,0x2f,0x00,0x2f,0xed,0x2f,0xed,0x3f,0xed,0x12,0x39,0x31,0x30, +0x01,0x5d,0x05,0x22,0x2e,0x02,0x27,0x26,0x11,0x10,0x37,0x36,0x21,0x20,0x17,0x16,0x11,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x03,0x22,0x07,0x06,0x11,0x10,0x17,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x02,0xf4,0x40,0x84,0x7c,0x71,0x2e,0xb7,0xba,0xbc,0x01,0x46,0x01, +0x24,0xb6,0xb6,0x3d,0x7c,0xbc,0x80,0x34,0x5b,0x5b,0x62,0x3b,0x10,0x26,0x27,0x24,0x0f,0x10,0x28,0x29,0x28,0x11,0x60,0x99,0x85,0x7c,0x2e,0xe2,0x8d,0x8d,0x89,0x8a,0xdd,0xec,0x88,0x88,0x84,0x84,0x18,0x19,0x33,0x4b,0x32,0xc8,0x01,0x43,0x01,0x5b,0xcd,0xce,0xc8,0xc8,0xfe,0xbd,0x88,0xf1,0xc2,0x87,0x1d,0x38,0x56,0x3b,0x1e,0x03, +0x07,0x09,0x06,0xa2,0x05,0x07,0x05,0x03,0x39,0x63,0x84,0x05,0x7e,0xa3,0xa3,0xfe,0xf7,0xfe,0xf8,0xa3,0xa1,0x9a,0x9a,0x01,0x15,0x01,0x1d,0x9a,0x9b,0x00,0x00,0x03,0x00,0x77,0xff,0xe7,0x05,0x91,0x05,0xb2,0x00,0x29,0x00,0x37,0x00,0x46,0x00,0x69,0x40,0x3c,0x02,0x38,0x3b,0x0b,0x04,0x12,0x04,0x24,0x27,0x1f,0x1c,0x36,0x24,0x05, +0x12,0x01,0x45,0x95,0x04,0x13,0x2f,0x96,0x12,0x04,0x27,0x02,0x25,0x09,0x1f,0x38,0x24,0x40,0x0b,0x36,0x3b,0x1c,0x04,0x17,0x0d,0x25,0xef,0x24,0x17,0x84,0x2a,0x34,0x84,0x0d,0x0d,0x2a,0x24,0x03,0x09,0x01,0x00,0x00,0x48,0x40,0x83,0x09,0x2f,0xe1,0x12,0x39,0x2f,0x33,0x12,0x17,0x39,0x2f,0xe1,0x2f,0xe1,0x2f,0xe1,0x11,0x12,0x17, +0x39,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x39,0x00,0x3f,0xed,0x3f,0xed,0x2f,0x11,0x17,0x39,0x2f,0x11,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x25,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x3e,0x03,0x37,0x33,0x02,0x07,0x16,0x16,0x01,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x17,0x36,0x13,0x26,0x26,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x05,0x91,0xe5,0x9a,0xc2,0xfe,0xed,0x67,0xa7,0x77,0x41,0x01,0x47,0x9b,0x38,0x65,0x8a,0x52,0x4d,0x7e,0x5a,0x31,0x21,0x4c,0x7c,0x5b,0x67,0xbb,0x55,0x17,0x29,0x20,0x12,0x01,0x97,0x01,0xab,0x14,0x87,0xfe,0x34,0x1c,0x30, +0x41,0x25,0x32,0x50,0x39,0x1e,0x8d,0xfe,0x62,0x46,0xcc,0x87,0x45,0x60,0x3c,0x1b,0x2c,0x4d,0x68,0x3d,0xdc,0x9e,0xb7,0x39,0x66,0x8e,0x56,0xfd,0xa7,0xc7,0x8b,0x49,0x7c,0x5a,0x33,0x2d,0x50,0x6e,0x40,0x42,0x6b,0x5f,0x56,0x2d,0x6d,0xbe,0x54,0x21,0x5c,0x67,0x6a,0x2f,0xfe,0xf2,0xd8,0x14,0x87,0x04,0x04,0x27,0x43,0x30,0x1c,0x1e, +0x37,0x4c,0x2e,0x6d,0x9d,0x7a,0xfd,0x30,0x48,0xd3,0x8f,0x23,0x45,0x4b,0x54,0x32,0x3a,0x5e,0x42,0x24,0x00,0x02,0x00,0xb4,0xff,0xee,0x01,0x91,0x05,0x9a,0x00,0x03,0x00,0x17,0x00,0x1e,0x40,0x0f,0x03,0x03,0x02,0x13,0xb0,0x09,0x13,0x01,0x02,0x00,0x7d,0x03,0x04,0xaf,0x0e,0x2f,0xe1,0xd4,0xe1,0x39,0x39,0x00,0x3f,0xfd,0xc6,0x3f, +0x31,0x30,0x01,0x03,0x23,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x01,0x77,0x14,0x72,0x14,0xb4,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x28,0x1e,0x12,0x05,0x9a,0xfb,0xf9,0x04,0x07,0xfa,0xc2,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12, +0x12,0x1e,0x29,0x00,0x00,0x01,0x00,0x5c,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x14,0x00,0x17,0x40,0x0a,0x14,0x0c,0xb2,0x15,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x5c,0x37,0x4c, +0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x00,0x13,0x00,0x28,0x00,0x22,0x40,0x11,0x05,0xb0,0x0f,0x10,0x28,0x20,0xb2,0x29,0x00,0xaf,0x0a,0x17,0x23,0x14, +0x23,0xaf,0x1d,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0x00,0x10,0xf4,0xc4,0x3f,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0x52,0x12,0x1e,0x29,0x18,0x17,0x28,0x1e,0x11, +0x11,0x1e,0x28,0x17,0x16,0x29,0x20,0x12,0xf4,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x03,0xa8,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x28,0x1e,0x12,0x11,0x1e,0x29,0xfb,0x69,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x02,0x00,0x83, +0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x20,0x00,0x34,0x00,0x32,0x40,0x0b,0x19,0x17,0x95,0x1c,0x04,0x09,0x30,0xb0,0x26,0x13,0x08,0xb8,0x01,0x03,0x40,0x0c,0x09,0x21,0xaf,0x2b,0x2b,0x19,0x00,0x84,0x12,0x12,0x36,0x19,0x2f,0x12,0x39,0x2f,0xe1,0x11,0x39,0x2f,0xe1,0xd4,0xe1,0x00,0x3f,0xfd,0xc6,0x3f,0xfd,0xc6,0x31,0x30,0x01,0x14, +0x07,0x0e,0x03,0x15,0x15,0x23,0x35,0x34,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x31,0x44,0x2a,0x12,0x70,0x0f,0x25,0x3d,0x2d,0x57,0x59,0x21,0x3d,0x55,0x34,0xa9,0x7c,0x99,0xa5, +0x53,0x88,0x60,0x35,0xfe,0xc1,0x11,0x1e,0x28,0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x17,0x28,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x2a,0x41,0x39,0x3a,0x22,0x4a,0x4e,0x31,0x52,0x4a,0x48,0x29,0x4e,0x8f,0x50,0x31,0x51,0x39,0x20,0x85,0xb0,0x60,0x32,0x5a,0x7f,0xfb,0xb5,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x17,0x28,0x1e, +0x12,0x12,0x1e,0x28,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00, +0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b, +0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2, +0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18, +0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2, +0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44, +0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a, +0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17,0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31, +0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31,0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68, +0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1,0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d, +0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0xff,0xff,0x00,0x60,0xff,0xe8,0x05,0x76,0x05,0xf6,0x00,0x26,0x00,0x47,0x00,0x00,0x01,0x07,0x0e,0x10,0x03,0x70,0x06,0x63,0x00,0x14,0x40,0x0b, +0x02,0x27,0x9d,0x27,0x27,0x10,0x10,0x25,0x02,0x2a,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0xa4,0x02,0x26,0x00,0x2f,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x54,0x06,0x11,0x00,0x16,0xb1,0x01,0x15,0xb8,0xff,0xb6,0xb7,0x15,0x15,0x05,0x05,0x25,0x01,0x12,0x04,0x00,0x3f,0x35,0x01,0x2b, +0x11,0x35,0xff,0xff,0x00,0xa6,0x00,0x00,0x02,0x8b,0x05,0xf6,0x00,0x26,0x00,0x4f,0x00,0x00,0x01,0x07,0x0e,0x10,0x00,0x85,0x06,0x63,0x00,0x14,0x40,0x0b,0x01,0x0d,0x78,0x0d,0x0d,0x03,0x03,0x25,0x01,0x10,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0xff,0xe4,0x00,0x00,0x04,0x4a,0x05,0xb2,0x00,0x26,0x00,0x51,0x52,0x00, +0x01,0x07,0x0d,0xfc,0xff,0x70,0x00,0x00,0x00,0x16,0xb1,0x01,0x1f,0xb8,0xff,0x62,0xb7,0x1f,0x1f,0x0a,0x0a,0x25,0x01,0x1f,0x04,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x5e,0xfe,0x05,0x04,0xec,0x05,0xb2,0x02,0x26,0x00,0x2a,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x65,0x00,0x00,0xff,0xff,0x00,0x60,0xfe,0x1e,0x04,0x10, +0x06,0x3c,0x02,0x26,0x00,0x4a,0x00,0x00,0x01,0x0f,0x0e,0x10,0x03,0xe5,0x04,0x41,0xc0,0x00,0x00,0x15,0x40,0x0c,0x02,0x32,0x11,0x26,0x02,0x35,0x0b,0x35,0x2f,0x10,0x18,0x25,0x01,0x2b,0x11,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xa2,0x05,0x9a,0x02,0x26,0x00,0x2e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xd6, +0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x05,0xec,0x02,0x26,0x00,0x4e,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0x87,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x05,0x40,0x05,0x9a,0x02,0x26,0x00,0x31,0x00,0x00,0x00,0x07,0x0e,0x10,0x01,0x45,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x03,0xf8,0x04,0x18,0x02,0x26,0x00,0x51, +0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xc5,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x05,0x04,0xc0,0x05,0x9a,0x02,0x26,0x00,0x35,0x00,0x00,0x00,0x07,0x0e,0x10,0x00,0xf9,0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x05,0x02,0xbc,0x04,0x12,0x02,0x26,0x00,0x55,0x00,0x00,0x00,0x06,0x0e,0x10,0xed,0x00,0xff,0xff,0x00,0x2b,0xff,0xea,0x03,0x7f, +0x05,0xf6,0x00,0x26,0x00,0x57,0x00,0x00,0x01,0x07,0x0e,0x10,0x01,0x79,0x06,0x63,0x00,0x16,0xb1,0x01,0x1e,0xb8,0x01,0x37,0xb7,0x1e,0x1e,0x0a,0x0a,0x25,0x01,0x21,0x01,0x00,0x3f,0x35,0x01,0x2b,0x11,0x35,0xff,0xff,0x00,0x79,0xfe,0x05,0x03,0xde,0x05,0xb2,0x02,0x26,0x00,0x36,0x00,0x00,0x00,0x06,0x0e,0x10,0x7f,0x00,0xff,0xff, +0x00,0x68,0xfe,0x05,0x03,0x0f,0x04,0x18,0x02,0x26,0x00,0x56,0x00,0x00,0x00,0x06,0x0e,0x10,0x14,0x00,0xff,0xff,0x00,0x5e,0xfe,0xed,0x01,0x52,0x04,0x17,0x02,0x06,0x0d,0xf7,0x00,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f, +0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, +0x5f,0x2d,0x00,0x01,0x01,0x3d,0xfe,0x05,0x02,0x06,0xff,0x93,0x00,0x12,0x00,0x12,0xb6,0x12,0x0c,0x03,0x0f,0x00,0x0f,0x09,0x2f,0xc1,0xc4,0x12,0x39,0x00,0x2f,0xc4,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x50,0x31,0x21,0x12,0x17,0x24,0x18,0x2b,0x2e,0x33, +0x3d,0x45,0x46,0xfe,0x3a,0x28,0x41,0x17,0x16,0x12,0x0b,0x10,0x22,0x1e,0x22,0x34,0x48,0x45,0x4e,0x7c,0x37,0x00,0xff,0xff,0x00,0x29,0xfe,0x05,0x04,0x0c,0x05,0x9a,0x02,0x26,0x00,0x37,0x00,0x00,0x00,0x06,0x0e,0x10,0x7a,0x00,0xff,0xff,0x00,0x2b,0xfe,0x05,0x02,0x81,0x05,0x2f,0x02,0x26,0x00,0x57,0x00,0x00,0x00,0x06,0x0e,0x10, +0xe5,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3d,0x00,0x60,0x40,0x25,0x3b,0x36,0x14,0x0f,0x36,0x0f,0x36,0x0f,0x3f,0x25,0x31,0x28,0x11,0x38,0x38,0x2d,0x1f,0x19,0x0d,0x33,0x0d,0x00,0x01,0x01,0x02,0x0a,0x2d,0x0d,0x26,0x0a,0x0a,0x26,0x0d,0x2d,0x04,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08, +0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0xcd,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x10,0xcd,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x16,0x33, +0x32,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x93,0x17, +0x12,0x4e,0x11,0x64,0x12,0x15,0x28,0x3a,0x26,0x17,0x32,0x1c,0x11,0x36,0x16,0x14,0x10,0x01,0x06,0x07,0x64,0x08,0x10,0x1a,0x12,0x67,0x0a,0x10,0x07,0x12,0x0e,0x23,0x23,0x11,0x63,0x10,0x06,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0x1c,0x05,0x50,0x29,0x24,0x2f,0x2f,0x24,0x40,0x31,0x1c,0x0d, +0x10,0x0f,0x0d,0x03,0x01,0x32,0x6b,0x4a,0x7a,0x77,0x47,0x78,0x74,0x7a,0x49,0x2a,0x4a,0x24,0x05,0x2c,0x25,0x25,0x27,0x26,0x2e,0x12,0x24,0x00,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x3a,0x00,0x57,0xb3,0x09,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb6,0x2a,0x20,0x20,0x2a,0x30,0x2f,0x1b,0xb8,0x04,0xfd,0x40, +0x11,0x15,0x00,0x01,0x01,0x02,0x0a,0x25,0x0b,0x2f,0x03,0x08,0x15,0x0a,0x15,0x0a,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xcd,0x32,0x11,0x33,0x10,0xed,0x10,0xcd,0x01,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f, +0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x03,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01, +0xce,0x01,0x61,0xbf,0x38,0x3f,0x20,0x07,0x12,0x1e,0x25,0x12,0x24,0x33,0x1e,0x41,0x42,0x23,0x45,0x36,0x22,0x09,0x1b,0x2f,0x26,0x24,0x2d,0x19,0x0a,0x15,0x36,0x5d,0x48,0x33,0x3b,0x1e,0x08,0x11,0x26,0x3f,0x2e,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x01,0xa7,0x34,0x4a,0x32,0x1c,0x06,0x0d,0x0f, +0x08,0x03,0x07,0x08,0x67,0x14,0x0d,0x1c,0x2f,0x22,0x0f,0x2c,0x36,0x3f,0x23,0x10,0x21,0x21,0x21,0x11,0x19,0x33,0x31,0x2f,0x16,0x6c,0x0c,0x16,0x14,0x11,0x06,0x0a,0x14,0x18,0x20,0x17,0x00,0x02,0xff,0xba,0xff,0xab,0x05,0x1f,0x06,0xee,0x00,0x0a,0x00,0x30,0x00,0x4f,0xb1,0x09,0x1d,0xbb,0x05,0x0b,0x00,0x1e,0x00,0x14,0x04,0xfd, +0x40,0x14,0x27,0x0b,0x0b,0x27,0x00,0x01,0x01,0x02,0x0a,0x2c,0x08,0x0f,0x1d,0x0a,0x0a,0x1d,0x0f,0x03,0x04,0x05,0xb8,0x04,0xff,0x40,0x09,0x2f,0x08,0x01,0x08,0x09,0x2f,0x04,0x01,0x04,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xcd,0x32,0x11,0x33,0x2f,0x33,0x2f,0x10,0xed,0x01,0x2f,0xed, +0x39,0x31,0x30,0x01,0x07,0x27,0x01,0x07,0x01,0x23,0x35,0x21,0x01,0x01,0x13,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x05,0x1f,0x2a,0xa9,0xfe,0x6d,0x54,0xfe,0x0d,0xb8,0x01,0x00,0x01,0xce,0x01,0x61,0x23, +0x22,0x34,0x10,0x76,0x07,0x16,0x1c,0x24,0x14,0x13,0x11,0x0a,0x0b,0x0a,0x64,0x0c,0x0f,0x0c,0x4a,0x34,0x21,0x39,0x2e,0x22,0x0a,0x02,0x0d,0x1a,0x11,0x03,0x2c,0x65,0x4b,0xfc,0xa0,0x07,0x06,0xa7,0x9c,0xf9,0xc5,0x03,0x08,0x02,0xb5,0x35,0x8b,0x47,0x1b,0x37,0x2b,0x1c,0x17,0x12,0x0f,0x2b,0x4f,0x78,0x5b,0x7a,0x77,0x5e,0x82,0x5a, +0x39,0x15,0x36,0x3e,0x16,0x25,0x31,0x19,0x25,0x3b,0x1f,0x00,0x00,0x02,0x00,0x1e,0xfe,0xa9,0x06,0xd2,0x03,0x61,0x00,0x3b,0x00,0x4d,0x00,0x5d,0xb4,0x38,0x25,0x16,0x10,0x06,0xb8,0x05,0x0a,0xb4,0x25,0x49,0x49,0x25,0x41,0xb8,0x05,0x0a,0xb7,0x2d,0x25,0x2d,0x25,0x2d,0x4f,0x13,0x19,0xb8,0x05,0x0a,0xb3,0x10,0x25,0x05,0x28,0xb8, +0x04,0xfb,0xb5,0x38,0x2f,0x46,0x01,0x46,0x3c,0xb8,0x04,0xfb,0xb4,0x2f,0x32,0x01,0x32,0x1e,0xb9,0x04,0xfb,0x00,0x0b,0x00,0x2f,0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x01,0x0e,0x03,0x07,0x15,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x25,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x06,0xd2,0x0f,0x2c,0x39,0x43,0x25, +0x49,0x99,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x09,0x08,0xfe,0xc7,0x01,0xeb,0x13,0x13,0x2b,0x64,0xa5,0x7a,0x62,0x8f,0x64,0x3e,0x24,0x0e,0x02,0x2d,0x57,0x28,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x23,0x30,0x0c,0x33,0x5a,0x23,0xfd,0xf3,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x25,0x4d,0x27,0x07,0x27,0x36,0x43, +0x01,0x7c,0x0d,0x20,0x23,0x25,0x11,0x04,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x31,0x6b,0x3a,0x3a,0x72,0x61,0x64,0xa8,0x48,0x5f,0x84,0x54,0x26,0x1a,0x30,0x42,0x50,0x5b,0x30,0x0e,0x0f,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x38,0x91,0x52,0x1c,0x3b,0x1a,0xa6,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0e,0x0d, +0x3a,0x7a,0x63,0x40,0x00,0x04,0x00,0x7c,0x00,0x00,0x05,0x61,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x5e,0xb4,0x0d,0x0e,0x0e,0x00,0x09,0xbb,0x05,0x0c,0x00,0x08,0x00,0x05,0x05,0x0c,0x40,0x0c,0x04,0x0c,0x0f,0x0f,0x04,0x00,0x08,0x04,0x08,0x04,0x11,0x01,0xb8,0x05,0x0c,0xb5,0x00,0x2f,0x0d,0x01,0x0d,0x0c,0xbb, +0x04,0xe6,0x00,0x0a,0x00,0x06,0x04,0xfe,0xb5,0x08,0x2f,0x05,0x01,0x05,0x02,0xb9,0x04,0xfe,0x00,0x01,0x00,0x2f,0xed,0x2f,0x5d,0x33,0xed,0x32,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x13,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33, +0x15,0x23,0x05,0x01,0x33,0x01,0xc0,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0xfc,0x12,0x03,0x0d,0x8f,0xfc,0xf3,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0x5b,0x05,0x58,0xfa,0xa8,0x00,0x00,0x05,0x00,0x7c,0x00,0x00,0x06,0xd5,0x05,0x58,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x6d,0xb4,0x01,0x02,0x02, +0x04,0x11,0xbe,0x05,0x0c,0x00,0x10,0x00,0x0d,0x05,0x0c,0x00,0x0c,0x00,0x09,0x05,0x0c,0x40,0x0f,0x08,0x00,0x03,0x03,0x08,0x04,0x10,0x0c,0x08,0x08,0x0c,0x10,0x03,0x15,0x05,0xb8,0x05,0x0c,0xb3,0x04,0x12,0x0e,0x0a,0xb8,0x04,0xfe,0xb6,0x10,0x0c,0x2f,0x09,0x01,0x09,0x06,0xb8,0x04,0xfe,0xb5,0x05,0x2f,0x01,0x01,0x01,0x00,0xb8, +0x04,0xe6,0x00,0x3f,0x2f,0x5d,0x2f,0xed,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x11,0x33,0x31,0x30,0x33,0x01,0x33,0x01,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x7c,0x03,0x0d, +0x8f,0xfc,0xf3,0x4b,0xf7,0xf7,0x02,0x36,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x01,0x74,0xf7,0xf7,0x05,0x58,0xfa,0xa8,0x04,0xfd,0xf7,0xfd,0x4c,0xf7,0xf7,0xf7,0xf7,0xf7,0x00,0x01,0x00,0x76,0xfe,0xf8,0x01,0x8b,0x00,0xe4,0x00,0x03,0x00,0x10,0xb7,0x2f,0x01,0x01,0x01,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x5d,0x31,0x30,0x25,0x13, +0x23,0x03,0x01,0x16,0x75,0x75,0xa0,0xe4,0xfe,0x14,0x01,0xec,0x00,0x02,0xff,0xc8,0x06,0x1d,0x02,0x29,0x08,0xde,0x00,0x2b,0x00,0x2f,0x00,0x2c,0xbc,0x00,0x2f,0x05,0x0d,0x00,0x2c,0x00,0x13,0x05,0x0d,0x40,0x09,0x16,0x26,0x09,0x2d,0x14,0x0e,0x1e,0x2c,0x29,0xb9,0x05,0x01,0x00,0x04,0x00,0x2f,0xfd,0xce,0xde,0xcd,0x2f,0x2f,0x01, +0x2f,0xcd,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x07,0x06,0x06,0x23,0x22,0x22,0x06,0x22,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x11,0x33,0x11,0x02,0x29,0x52,0xab,0x43,0x46,0x6c,0x49,0x26,0x25,0x35, +0x3b,0x16,0x1d,0x10,0x0d,0x0d,0x58,0x10,0x1d,0x26,0x15,0x06,0x0c,0x06,0x03,0x0e,0x0f,0x0e,0x04,0x18,0x26,0x60,0x69,0x63,0x9b,0x7f,0x58,0x06,0x8f,0x61,0x08,0x09,0x0c,0x1e,0x33,0x28,0x29,0x35,0x1f,0x0d,0x08,0x07,0x17,0x16,0x01,0x76,0xfe,0x7e,0x26,0x34,0x21,0x11,0x03,0x01,0x01,0x01,0x0f,0x12,0x19,0x10,0x09,0x48,0x02,0x0d, +0xfd,0xf3,0x00,0x02,0x00,0x43,0x06,0x1f,0x01,0x6c,0x08,0xbb,0x00,0x16,0x00,0x1a,0x00,0x23,0xb2,0x17,0x17,0x0e,0xbb,0x05,0x0d,0x00,0x07,0x00,0x19,0x04,0xfd,0xb2,0x18,0x0a,0x02,0xb9,0x04,0xfd,0x00,0x13,0x00,0x2f,0xfd,0xd6,0xd6,0xed,0x01,0x2f,0xed,0x33,0x2f,0x31,0x30,0x13,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33, +0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x13,0x23,0x35,0x33,0x43,0x36,0x28,0x21,0x2c,0x1a,0x0b,0x1d,0x13,0x5a,0x17,0x18,0x1f,0x38,0x4b,0x2b,0x17,0x2b,0x1a,0xda,0x57,0x57,0x06,0x90,0x11,0x17,0x28,0x38,0x20,0x3f,0x74,0x37,0x39,0x7f,0x34,0x3c,0x5b,0x3e,0x20,0x09,0x0a,0x02,0x33,0x56,0x00,0x01,0x00,0x37,0x06,0x7c, +0x01,0xcf,0x06,0xca,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x06,0xca,0x4e,0x00,0x02,0x00,0x0d,0x06,0x5c,0x01,0xb5,0x07,0xe2,0x00,0x23,0x00,0x2f,0x00,0x36,0xb2,0x16,0x09,0x13,0xb8,0x05,0x0e,0xb4,0x24,0x19,0x19,0x24,0x2a,0xb8,0x05,0x0e, +0x40,0x0c,0x09,0x16,0x19,0x19,0x20,0x0e,0x27,0x2d,0x03,0x03,0x20,0x1a,0x00,0x2f,0x2e,0xc9,0x2f,0x32,0xd4,0xcd,0x11,0x33,0x2f,0x39,0x01,0x2f,0xed,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x32,0x37,0x35,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26, +0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x1e,0x21,0x41,0x26,0x01,0x09,0x06,0x2d,0x1b,0x2b,0x38,0x1d,0x1c,0x34,0x28,0x19,0x3f,0x33,0x05,0x19,0x06,0x2f,0x14,0x23,0x10,0x15,0x2b,0x11,0x28,0x48,0x23,0x01,0x5d,0x2d,0x1b,0x1d,0x30,0x1f,0x17,0x2a,0x35,0x06,0xea,0x08, +0x08,0x01,0x02,0x3c,0x3b,0x22,0x35,0x24,0x13,0x12,0x24,0x36,0x24,0x3b,0x4f,0x17,0x05,0x16,0x05,0x35,0x0f,0x1f,0x0f,0x05,0x03,0x08,0x07,0xb0,0x23,0x22,0x22,0x20,0x1a,0x36,0x19,0x0e,0x32,0x00,0x00,0x01,0x00,0x37,0xff,0x23,0x01,0xcf,0xff,0x71,0x00,0x03,0x00,0x0c,0xba,0x00,0x02,0x05,0x00,0x00,0x01,0x00,0x2f,0xed,0x31,0x30, +0x17,0x21,0x15,0x21,0x37,0x01,0x98,0xfe,0x68,0x8f,0x4e,0x00,0xff,0xff,0x00,0x70,0xfe,0xf8,0x01,0x8b,0x03,0x11,0x02,0x26,0x0e,0x19,0x00,0x00,0x00,0x07,0x00,0x11,0x00,0x00,0x02,0x46,0xff,0xff,0x00,0x9a,0xfe,0x63,0x05,0x91,0x04,0x15,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x64,0xff,0xff,0x00,0x9a, +0xfe,0x0e,0x06,0xae,0x02,0x13,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0xff,0xff,0xff,0xba,0xff,0x05,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0x1a,0x01,0x06,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x5b, +0x00,0x1a,0x01,0x06,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0xe4,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, +0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab, +0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53, +0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0xfe,0xab,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0xad,0x03,0x0f,0x00,0x35, +0x00,0x41,0xb1,0x0d,0x24,0xb8,0x05,0x0b,0xb4,0x30,0x30,0x37,0x15,0x2a,0xb8,0x05,0x03,0x40,0x09,0x30,0x24,0x24,0x21,0x0c,0x20,0x04,0x00,0x12,0xb8,0x04,0xff,0xb5,0x2f,0x19,0x01,0x19,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x5d,0xed,0x12,0x17,0x39,0x11,0x33,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xed, +0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33, +0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7, +0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0x00,0x01,0x00,0x52,0xff,0xea,0x04,0x02,0x03,0xba,0x00,0x24,0x00,0x29,0xb1,0x1b,0x0f,0xb8,0x05,0x0a,0xb5,0x06,0x1c,0x21,0x14,0x14,0x03,0xbd,0x04,0xfb,0x00,0x0b, +0x00,0x21,0x05,0x03,0x00,0x15,0x05,0x03,0x00,0x3f,0x3f,0xc4,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x12,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x52,0x61,0xa6,0x39,0x92,0x7f,0x1c,0x31,0x40,0x24, +0xa6,0x38,0x4d,0x1d,0x07,0x18,0x2d,0x46,0x36,0x16,0x21,0x3f,0x38,0x2d,0x0f,0x05,0x1a,0x51,0x64,0x75,0x3e,0x3a,0x9a,0x4b,0xa9,0x0b,0x0b,0x47,0x4e,0x2e,0x92,0xb0,0xc3,0x5f,0xa7,0xfe,0xe3,0x80,0x20,0x4d,0x43,0x2d,0xa7,0x10,0x23,0x39,0x29,0x2d,0x3c,0x25,0x0f,0x0c,0x0a,0x00,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x05,0x5d, +0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x1d,0x04,0xad,0x00,0x01,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x03,0x0f,0x00,0x58,0x00,0x83,0xb1,0x13,0x08,0xb8,0x05,0x0a,0xb2,0x05,0x1e,0x54,0xb8,0x05,0x0a,0xb3,0x51,0x27,0x27,0x49,0xb8,0x05,0x0a,0x40,0x0a,0x42,0x05,0x51,0x42,0x42,0x51,0x05,0x03,0x5a,0x38,0xb8,0x05,0x0a, +0x40,0x0e,0x31,0x2f,0x53,0x01,0x53,0x2f,0x46,0x01,0x46,0x2f,0x35,0x01,0x35,0x3d,0xb8,0x04,0xfb,0xb6,0x1f,0x2c,0x2f,0x2c,0x02,0x2c,0x4c,0xba,0x04,0xfb,0x00,0x23,0x05,0x03,0xb6,0x26,0x12,0x1d,0x03,0x06,0x0d,0x00,0xba,0x04,0xfb,0x00,0x18,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0xed,0x32,0x12,0x17,0x39,0x3f, +0xed,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x07, +0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x07,0x57,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c, +0x4f,0x42,0x34,0x12,0x04,0x19,0x3f,0x44,0x46,0x1f,0x42,0x52,0x19,0x05,0x03,0x3d,0x80,0xcc,0x91,0x8a,0xb9,0x70,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x10,0x9b,0x08,0x0c,0x05,0x06,0x58,0x5e,0x22,0x3f,0x30,0x1d,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, +0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xbb,0x78,0x3f,0x70,0x38,0x42,0x3f,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0x00,0x01, +0xff,0xba,0xff,0xf2,0x06,0xae,0x03,0x0f,0x00,0x4d,0x00,0x68,0xb5,0x27,0x39,0x1e,0x46,0x13,0x08,0xbe,0x05,0x0a,0x00,0x05,0x00,0x49,0x05,0x0a,0x00,0x46,0x00,0x3c,0x05,0x0a,0x40,0x17,0x39,0x48,0x2f,0x3a,0x01,0x3a,0x26,0x1d,0x06,0x13,0x18,0x12,0x12,0x06,0x18,0x41,0x34,0x34,0x33,0x33,0x0d,0x0d,0x00,0xb8,0x04,0xfb,0xb3,0x2c, +0x23,0x0e,0x18,0xb8,0x05,0x03,0xb3,0x2f,0x06,0x01,0x06,0x00,0x2f,0x5d,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0x2f,0x5d,0x33,0x01,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x39,0x12,0x39,0x11,0x39,0x31,0x30,0x25,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33, +0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x04,0xab,0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e, +0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x21,0x64,0x77,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x8f,0x43,0x62, +0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0x0b,0xc9,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x02,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x00,0x4b,0x00,0x5f,0x00,0x7b,0xbf,0x00,0x26,0x05,0x0a,0x00,0x1f,0x00,0x5d,0x05,0x0a,0x00,0x2b,0x00, +0x37,0x05,0x0a,0x40,0x0a,0x51,0x2b,0x51,0x1f,0x51,0x1f,0x51,0x0e,0x3d,0x15,0xb8,0x05,0x0a,0x40,0x0a,0x0e,0x5d,0x5d,0x4c,0x4c,0x3c,0x3c,0x42,0x04,0x2b,0xbd,0x04,0xfb,0x00,0x3d,0x00,0x47,0x05,0x03,0x00,0x56,0x04,0xfb,0x40,0x0d,0x2f,0x32,0x01,0x32,0x2f,0x23,0x01,0x23,0x2f,0x12,0x01,0x12,0x1a,0xb8,0x04,0xfb,0xb5,0x1f,0x09, +0x2f,0x09,0x02,0x09,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x39,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x26,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0xf8,0x1f,0x28,0x12,0x05,0x03,0x3d,0x81, +0xcd,0x94,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x93,0x5d,0x2b,0x12,0x17,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c,0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x46,0x38,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xa1,0xe7,0x9d,0x5e,0x02,0x99,0x6b, +0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x85,0x75,0x65,0x52,0x3f,0x15,0x5c,0xee,0x03,0x09,0x1d,0x15,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x53,0xc5,0x6e,0x3f,0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b, +0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x03,0x08,0x9d,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x2a,0x49,0x63,0x71,0x7a,0x3c,0x02,0x01,0x00,0x00,0x02,0xff,0xba,0xff,0xea,0x08,0x04,0x03,0x3c,0x00,0x42,0x00,0x54,0x00,0x64,0xbc,0x00,0x52,0x05,0x0a,0x00,0x27,0x00,0x33,0x05,0x0a,0xb7,0x48,0x27,0x48,0x27, +0x48,0x1b,0x39,0x22,0xbd,0x05,0x0a,0x00,0x1b,0x00,0x39,0x05,0x03,0x00,0x4d,0x04,0xfb,0x40,0x13,0x2f,0x2e,0x01,0x2e,0x2f,0x1e,0x01,0x1e,0x52,0x52,0x43,0x43,0x38,0x38,0x27,0x27,0x3e,0x09,0x15,0xbc,0x04,0xfb,0x00,0x0e,0x05,0x03,0x00,0x00,0x05,0x03,0x00,0x3f,0x3f,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x2f, +0x5d,0x2f,0x5d,0xed,0x3f,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x24,0x26,0x26,0x27,0x26,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03, +0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x27,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x04,0xe7,0xb3,0xff,0x00,0xaf,0x69,0x1b,0x23,0x2e,0x14,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x27,0x42,0x30,0x1c,0x0f,0x0d,0x9a,0x0b,0x0d,0x08,0x03,0x11,0x21,0x36,0x28,0x18,0x4c, +0x67,0x81,0x9a,0xb4,0x65,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x3e,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x16,0x01,0x06,0x0d,0x0c,0x0f,0x31,0x23,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x18,0x27,0x33,0x1b,0x30,0x6e,0x3d,0x3f, +0x72,0x3a,0x17,0x2b,0x22,0x15,0x02,0x41,0x96,0x95,0x8b,0x6a,0x40,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0xa9,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x50, +0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x02,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x4c,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2f,0x2f,0x0b,0x3b,0x24,0xb8,0x05,0x0a,0x40,0x11,0x21,0x0b,0x25,0x1b, +0x15,0x23,0x15,0x15,0x0b,0x3b,0x3b,0x2a,0x2a,0x1e,0x1e,0x10,0x0a,0xbd,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x34,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x11,0x33,0x2f,0x11,0x33,0x2f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33, +0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54, +0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e, +0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x00,0x02,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x43,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x2a,0x2a,0x3a,0x36,0x1f,0xb8,0x05,0x0a,0x40,0x09,0x1c,0x20,0x0c,0x1e, +0x36,0x36,0x25,0x25,0x18,0xb8,0x04,0xff,0xb3,0x11,0x0c,0x0c,0x11,0xbb,0x05,0x03,0x00,0x2f,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x2f,0x12,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2, +0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01, +0x00,0x02,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x50,0xb9,0x00,0x05,0x05,0x0a,0xb4,0x33,0x33,0x0b,0x3f,0x28,0xb8,0x05,0x0a,0xb6,0x25,0x0b,0x29,0x15,0x27,0x1a,0x15,0xb8,0x05,0x03,0x40,0x0a,0x3f,0x3f,0x2e,0x2e,0x22,0x22,0x21,0x21,0x10,0x0a,0xbd,0x04,0xff,0x00,0x0b,0x05,0x03,0x00,0x38,0x04,0xfb, +0x00,0x00,0x00,0x2f,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x11,0x33,0x2f,0x3f,0x33,0x2f,0x12,0x39,0x01,0x2f,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x36,0x37, +0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, +0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25, +0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae, +0x05,0xec,0x02,0x26,0x0e,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xe5,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xa2,0x06,0xb3,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x90,0x06,0x03, +0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xa2,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00, +0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x03,0x4b,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02, +0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0xdc,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0x01,0xfe,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0x2c,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50, +0x00,0x0a,0xb4,0x01,0x2f,0x4b,0x01,0x4b,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x6e,0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6e, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x04,0xf9,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x03,0xb9,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba, +0xfe,0xa6,0x02,0x9a,0x04,0xb2,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9a, +0xff,0x55,0x05,0x91,0x06,0x11,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x8f,0x04,0x49,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xd1,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x9a,0x05,0xca,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51, +0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x53,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50, +0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xd4,0x03,0xc9,0x00,0x02,0x00,0xab,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x2e,0x00,0x4f,0x00,0x66,0xb1,0x1e,0x13,0xbe,0x05,0x0a,0x00,0x10,0x00,0x4a,0x05,0x0b,0x00,0x31,0x00,0x42,0x05,0x0b,0x40,0x0a, +0x39,0x10,0x31,0x39,0x39,0x31,0x10,0x03,0x51,0x03,0xbe,0x05,0x0a,0x00,0x2b,0x00,0x3e,0x04,0xfd,0x00,0x3f,0x00,0x2f,0x04,0xfd,0xb5,0x4f,0x1e,0x23,0x18,0x18,0x0b,0xbc,0x04,0xfb,0x00,0x23,0x05,0x03,0x00,0x19,0x05,0x03,0xb4,0x11,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x2f,0xfd,0xd4,0xed, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x35,0x34,0x26,0x27, +0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x01,0x62,0x09,0x11,0x1f,0x2f,0x1a,0x4e,0x7b,0xb1,0x7d,0x6d,0xa2,0x6c,0x36,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x64,0x75,0x20,0x04,0x26,0x6f,0x87,0x9b,0x53,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x01,0xe4,0xc5,0x1f, +0x15,0x10,0x21,0x1b,0x11,0x2e,0x4f,0x69,0x3b,0x5e,0x54,0x21,0x17,0x0f,0x20,0x1a,0x10,0x25,0x4c,0x74,0x4f,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x0a,0x29,0x53,0x48,0x04,0x8b,0xfb,0xac,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x34,0x1a,0x05,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x57,0x0b, +0x47,0x12,0x16,0x0b,0x08,0x14,0x1b,0x27,0x1b,0x26,0x3e,0x2f,0x1f,0x08,0x5d,0x0c,0x2d,0x21,0x14,0x18,0x0b,0x08,0x12,0x1a,0x23,0x19,0x1f,0x3e,0x33,0x23,0x04,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x00,0x2c,0x00,0x2e,0x40,0x11,0x11,0x15,0x12,0x03,0x00,0x14,0x2f,0x13,0x01,0x13,0x27,0x27,0x26,0x26,0x21,0x21, +0x06,0xbb,0x04,0xfb,0x00,0x22,0x00,0x00,0x05,0x03,0x00,0x3f,0x32,0xed,0x32,0x11,0x33,0x2f,0x33,0x2f,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23, +0x23,0x23,0x23,0x01,0x28,0x61,0x80,0x4c,0x1e,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40,0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x17,0x47,0x68,0x8d,0x5d,0x0e,0x34,0x20,0x20,0x33,0x16,0x2a,0x3f,0x29,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b,0x8a,0x4a, +0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x22,0x3a,0x2b,0x18,0x00,0x00,0x02,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x00,0x2f,0x00,0x41,0x00,0x54,0xb9,0x00,0x3d,0x01,0x52,0xb5,0x1f,0x1f,0x16,0x1a,0x06,0x2b,0xbb,0x05,0x0a,0x00,0x35,0x00,0x11,0x05,0x0a,0xb4,0x1a,0x0e,0x05,0x09,0x3a,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x26, +0x01,0x26,0x2f,0x16,0x01,0x16,0x09,0xb8,0x05,0x03,0xb3,0x1f,0x30,0x30,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x3f,0x2f,0x5d,0x2f,0x5d,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x39,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42, +0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24, +0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x00,0x02,0xff,0xba,0xff,0xf2,0x04,0xad,0x02,0xaf,0x00,0x30,0x00,0x40,0x00,0x32,0xb2,0x31,0x08,0x3c,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x24,0x01,0x24,0x34,0x30,0x30,0x0d,0x05,0x17,0xb8,0x04,0xfb,0xb4,0x10, +0x08,0x08,0x00,0x10,0xb8,0x05,0x03,0x00,0x3f,0x33,0x33,0x2f,0x10,0xed,0x39,0x39,0x32,0x2f,0x33,0x2f,0x5d,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33, +0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0xad,0x16,0x5b,0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4, +0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0xff,0xff,0x00,0x9b, +0xfd,0xff,0x05,0x58,0x03,0x5c,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x03,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53,0x00,0x2d,0x00,0x3f,0x00,0x50,0x00,0x63,0xb3,0x12, +0x1f,0x17,0x24,0xb8,0x05,0x0a,0xb2,0x4b,0x46,0x43,0xb8,0x05,0x0b,0xb6,0x31,0x4b,0x31,0x4b,0x31,0x52,0x3b,0xbf,0x05,0x0a,0x00,0x17,0x00,0x49,0x04,0xfc,0x00,0x29,0x05,0x03,0x00,0x36,0x04,0xfc,0x40,0x10,0x1c,0x00,0x46,0x40,0x1c,0x04,0x05,0x1e,0x2f,0x1f,0x01,0x1f,0x2e,0x0f,0x0f,0x0c,0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00, +0x3f,0xed,0x32,0x11,0x33,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27,0x35,0x16,0x04,0x16,0x16, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0x3b,0x26,0x61,0x6c,0x73,0x37,0x9e,0x23,0x23,0x23,0x23,0x3a,0x72,0x3a,0x84,0x38,0x01,0x4a,0x60,0x38,0x15,0x25,0x43,0x5c, +0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x34,0x20,0x20,0x33,0x02,0x03,0x04,0x1e,0x44,0x4d,0x55,0x2f,0x37,0x79,0x6c, +0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0x00,0x53,0xff,0xf2,0x05,0x32,0x04,0x53,0x00,0x2a, +0x00,0x3c,0x00,0x4d,0x00,0x63,0xb3,0x0f,0x1c,0x14,0x21,0xb8,0x05,0x0a,0xb2,0x48,0x43,0x40,0xb8,0x05,0x0b,0xb6,0x2e,0x48,0x2e,0x48,0x2e,0x4f,0x38,0xbf,0x05,0x0a,0x00,0x14,0x00,0x46,0x04,0xfc,0x00,0x26,0x05,0x03,0x00,0x33,0x04,0xfc,0x40,0x10,0x19,0x00,0x43,0x3d,0x19,0x04,0x05,0x1b,0x2f,0x1c,0x01,0x1c,0x2b,0x0e,0x0e,0x0c, +0xba,0x04,0xfb,0x00,0x05,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x32,0x2f,0x5d,0xcd,0x12,0x17,0x39,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x25,0x0e,0x03,0x23,0x22,0x26,0x27,0x27,0x16,0x16,0x33,0x32,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x27, +0x35,0x16,0x04,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x36,0x35,0x34,0x2e,0x02,0x27,0x02,0xe6,0x23,0x59,0x63,0x69,0x33,0x55,0x80,0x23,0x20,0x52,0x9c,0x51,0x80,0x3b,0x01,0x4a,0x60,0x38, +0x15,0x25,0x43,0x5c,0x38,0x01,0x53,0xca,0x01,0x32,0xcd,0x68,0x17,0x2f,0x46,0x2e,0x1e,0x5a,0x6b,0x76,0x51,0x33,0x21,0x1c,0x2b,0x34,0x18,0x1c,0x3a,0x2f,0x1e,0x11,0x31,0x58,0x01,0x0a,0x09,0x08,0x2a,0x2d,0x43,0x9a,0x4b,0x1d,0x29,0x45,0x5b,0x31,0x4c,0x1d,0x23,0x14,0x06,0x0b,0x05,0xa7,0x0a,0x08,0x03,0x04,0x1e,0x44,0x4d,0x55, +0x2f,0x37,0x79,0x6c,0x52,0x11,0x06,0x36,0xc7,0x71,0xf6,0xe7,0xc7,0x42,0x2f,0x5f,0x4c,0x30,0x09,0x15,0x22,0xbd,0x3f,0x7e,0x37,0x2d,0x50,0x3d,0x23,0x29,0x41,0x4f,0x26,0x19,0x36,0x3c,0x42,0x01,0x40,0x20,0x3c,0x21,0x4e,0x92,0x36,0x1a,0x20,0x06,0x2c,0x36,0x2b,0x5d,0x60,0x60,0x2e,0x00,0x00,0x03,0xff,0xba,0xfd,0xff,0x04,0x02, +0x03,0x56,0x00,0x2c,0x00,0x3c,0x00,0x4c,0x00,0x59,0xb1,0x19,0x0c,0xb8,0x05,0x0a,0xb5,0x32,0x47,0x47,0x32,0x3c,0x3d,0xb8,0x05,0x0a,0x40,0x09,0x12,0x00,0x25,0x2d,0x13,0x13,0x12,0x12,0x00,0xb8,0x04,0xfb,0xb3,0x3d,0x16,0x14,0x25,0xba,0x05,0x03,0x00,0x42,0x04,0xfb,0xb6,0x1f,0x1e,0x2f,0x1e,0x02,0x1e,0x37,0xb8,0x04,0xfb,0xb3, +0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x3f,0x33,0x33,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x31,0x30,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x17,0x21,0x15,0x21,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x27,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0xb4,0x15,0x41,0x4e,0x55,0x51,0x49,0x1b,0x2f,0x54,0x3f,0x25,0x16,0x27,0x34,0x1d,0x02,0x01,0x45,0xfe,0xc0,0x01,0x48,0x40,0x27,0x49,0x66,0x3f,0x24,0x54,0x55,0x50,0x3f, +0x29,0x04,0xab,0x23,0x23,0x23,0x23,0x01,0xd0,0x30,0x52,0x3a,0x21,0x11,0x1e,0x27,0x16,0x1a,0x47,0x47,0x3d,0x0e,0x0b,0x04,0x2e,0x45,0x52,0x27,0x22,0x2e,0x1c,0x0d,0x20,0x3d,0x58,0x38,0x99,0x85,0xcf,0x9c,0x6c,0x43,0x1e,0x45,0x6d,0x87,0x43,0x35,0x5d,0x4e,0x41,0x19,0x07,0xa7,0x06,0x2d,0x79,0x3f,0x33,0x5f,0x49,0x2d,0x14,0x2e, +0x4b,0x6f,0x96,0x61,0x34,0x20,0x20,0x33,0x33,0x53,0x69,0x36,0x28,0x55,0x45,0x2d,0x47,0x88,0xc6,0x7f,0xa7,0x58,0x7d,0x50,0x26,0x16,0x22,0x2c,0x16,0x24,0x4b,0x3c,0x26,0x00,0x00,0x02,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x55,0xb2,0x1f,0x1f,0x1c,0xb8,0x05,0x0a,0xb4,0x36,0x0b,0x0b,0x36,0x32,0xb8, +0x05,0x0a,0xb2,0x11,0x00,0x03,0xb8,0x04,0xfb,0xb7,0x27,0x1f,0x24,0x2f,0x24,0x02,0x24,0x2d,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x16,0x01,0x16,0x36,0x35,0x35,0x1d,0x1d,0x1c,0xbb,0x04,0xfb,0x00,0x1e,0x00,0x0b,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0x33, +0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c, +0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54, +0x56,0x48,0xbf,0x6d,0xa7,0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x01,0xf2,0x03,0x0f,0x02,0x06,0x0e,0x6f,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x03,0x0f,0x02,0x06,0x09,0x3b,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x03,0xff,0xd4,0x05,0x20,0x02,0x33,0x07,0xa1,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x60,0xb2,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40,0x09,0x2c,0x2f,0x2f,0x2c,0x0a,0x1f,0x23,0x23,0x26, +0xb8,0x05,0x0d,0xb5,0x1f,0x22,0x22,0x1f,0x00,0x31,0xbb,0x04,0xfd,0x00,0x32,0x00,0x35,0x04,0xfd,0xb4,0x36,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x11,0x39,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed, +0x32,0x2f,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0x2f,0x02,0x02,0x63, +0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0x36,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37, +0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x01,0x6b,0x58,0x57,0x58,0x00,0x03,0xff,0xd8,0x06,0x60,0x02,0x2c,0x08,0x21,0x00,0x1e,0x00,0x35,0x00,0x41,0x00,0x4c,0xb4,0x14,0x39,0x04,0x32,0x11,0xbe,0x05,0x0d,0x00,0x39,0x00,0x22,0x05,0x0d,0x00,0x32,0x00,0x3f,0x05,0x0d,0xb4,0x07,0x36,0x1b,0x1e, +0x0c,0xb8,0x04,0xfd,0x40,0x0a,0x3c,0x00,0x1f,0x35,0x04,0x14,0x27,0x2d,0x2d,0x00,0xb9,0x05,0x00,0x00,0x1e,0x00,0x2f,0xed,0x32,0x2f,0xdd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0xed,0x2f,0xed,0x2f,0xed,0x11,0x39,0x11,0x39,0x31,0x30,0x13,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, +0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x88,0x2d,0x58,0x2e,0x01,0x2e,0x2b,0x1a,0x2d,0x3c,0x22,0x24,0x3d,0x2c,0x19, +0x2a,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x27,0x2e,0x23,0x23,0x2f,0x31,0x06,0xb0,0x04,0x0e,0x13,0x05,0x1f,0x4e,0x2d,0x24,0x3b,0x2b,0x18,0x18,0x2b,0x39,0x21,0x33,0x4c,0x21,0x08,0x09,0x05,0x4a,0x0a,0x15, +0x0b,0x21,0x1d,0x05,0x01,0x86,0x17,0x41,0x2a,0x0e,0x14,0x02,0x02,0x28,0x21,0x26,0x2c,0x17,0x27,0x35,0x1e,0x4d,0x74,0x24,0xfe,0xe1,0x18,0x3a,0x21,0x22,0x29,0x27,0x20,0x26,0x3a,0x00,0x00,0x04,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x29,0x00,0x2f,0x00,0x4e,0x00,0x65,0x00,0x71,0x00,0xaa,0x40,0x0a,0x44,0x2c,0x34,0x03,0x12,0x52, +0x52,0x16,0x16,0x19,0xb8,0x05,0x0b,0x40,0x0b,0x12,0x62,0x62,0x12,0x15,0x15,0x12,0x12,0x41,0x41,0x03,0xb8,0x05,0x0d,0x40,0x0d,0x2c,0x69,0x69,0x2c,0x2f,0x2f,0x2c,0x0a,0x26,0x1f,0x6f,0x6f,0x37,0xb8,0x05,0x0d,0xb3,0x26,0x23,0x23,0x26,0xb8,0x05,0x0d,0x40,0x09,0x1f,0x22,0x22,0x1f,0x00,0x4b,0x66,0x4e,0x3c,0xb8,0x04,0xfd,0x40, +0x0a,0x6c,0x30,0x4f,0x65,0x34,0x44,0x57,0x5d,0x5d,0x30,0xb8,0x05,0x00,0xb6,0x4e,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xde,0xed,0x32,0x2f,0xcd,0x39,0x39,0xc0,0x32,0x10,0xd4,0xed,0x11,0x39,0x39,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x2f,0x10,0xe4,0x33, +0x2f,0x11,0x12,0x39,0x2f,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x11,0x33,0x2f,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x32,0x2f,0x11,0x12,0x39,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x25,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x07,0x13,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02, +0x35,0x34,0x36,0x37,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02,0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0xfe,0xb9,0x2d,0x58,0x2e,0x01,0x2e,0x28,0x1c,0x2d,0x3a,0x1f, +0x1f,0x3b,0x2e,0x1c,0x28,0x23,0x0e,0x18,0x0b,0x21,0x1b,0x2e,0x15,0x3e,0x84,0x3f,0x0b,0x30,0x3a,0x05,0x06,0x0d,0x06,0x1e,0x2b,0x31,0x22,0x17,0x28,0x1d,0x11,0x54,0x4c,0x01,0x17,0x22,0x25,0x32,0x1e,0x1d,0x31,0x2e,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30, +0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x8e,0x04,0x0e,0x13,0x05,0x1d,0x49,0x2b,0x27,0x3a,0x27,0x13,0x13,0x25,0x38,0x25,0x30,0x48,0x20,0x08,0x09,0x05,0x4a,0x0a,0x15,0x0b,0x21,0x1b,0x05,0x01,0x78,0x15,0x3d,0x26,0x0e,0x12,0x02,0x02,0x28,0x21,0x26,0x2c,0x16,0x26,0x33,0x1d,0x4b,0x70, +0x23,0xfe,0xed,0x16,0x35,0x1f,0x23,0x23,0x23,0x21,0x23,0x33,0x00,0x02,0xff,0xd4,0x05,0x20,0x02,0x33,0x08,0x04,0x00,0x2f,0x00,0x33,0x00,0x5e,0xb4,0x0a,0x31,0x23,0x23,0x30,0xbb,0x05,0x0b,0x00,0x31,0x00,0x26,0x05,0x0d,0xb5,0x22,0x22,0x31,0x16,0x16,0x19,0xb8,0x05,0x0b,0xb5,0x12,0x15,0x15,0x12,0x12,0x03,0xb8,0x05,0x0d,0x40, +0x0d,0x2c,0x2f,0x2f,0x2c,0x00,0x33,0x30,0x2f,0x16,0x23,0x0a,0x1c,0x29,0xb8,0x04,0xfd,0xb1,0x0d,0x06,0x00,0x2f,0x33,0xfd,0x32,0x39,0xd6,0x32,0x32,0xd6,0xcd,0x01,0x2f,0x2f,0x33,0x2f,0x10,0xed,0x32,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x11,0x33,0x02,0x2f,0x02,0x02,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x04,0x02, +0x60,0x05,0x02,0x26,0x2d,0x2d,0x22,0x02,0x61,0x01,0x01,0x22,0x2d,0x30,0x24,0x04,0x02,0x92,0x74,0x74,0x06,0x36,0x12,0x23,0x0d,0x67,0x6d,0x1f,0x20,0x20,0x1f,0x20,0x36,0x49,0x29,0x18,0x28,0x0e,0x27,0x20,0x08,0x30,0x37,0x37,0x36,0x12,0x29,0x0e,0x0d,0x2c,0x0f,0x37,0x37,0x38,0x31,0x14,0x2c,0x0d,0x64,0x01,0x6a,0x00,0x00,0x03, +0xff,0x6c,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3d,0x00,0x4b,0x00,0x69,0xb2,0x3a,0x11,0x37,0xb8,0x05,0x0d,0xb5,0x3e,0x09,0x09,0x3e,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2b,0x06,0x06,0x46,0xb8,0x05,0x0d,0xb7,0x2d,0x0e,0x09,0x0a,0x25,0x22,0x1f,0x32,0xb8,0x04,0xfd,0xb3,0x41,0x3a,0x49,0x28,0xb8,0x04,0xfd,0xb4,0x1f,0x16, +0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x39,0x39,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15, +0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x27,0x37,0x16,0x16,0x33,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36, +0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x19,0x2f,0x15,0x42,0x5e,0x25,0x61,0x36,0x99,0x31,0x5b,0x34,0x10,0x0f,0x01,0x36,0x1e,0x31,0x3f,0x20,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a, +0x2f,0x3b,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x07,0x06,0x34,0x2a,0x59,0x3b,0x8e,0x3c,0x3e,0x03,0x02,0x42,0x41,0x24,0x38,0x27,0x14,0x14,0x27,0x3a,0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x19,0x11,0x1b,0x38,0x1b,0x0e,0x35,0x00, +0x00,0x02,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0x3b,0x00,0x18,0x00,0x1c,0x00,0x3f,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb7,0x11,0x11,0x1d,0x1a,0x0e,0x09,0x0a,0x1a,0xb8,0x04,0xfd,0xb4,0x1b,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f, +0x10,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x25,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21, +0xfe,0x92,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xb8,0x58,0x00,0x03,0xff,0xf8,0x05,0x26,0x02,0x03,0x08,0x58,0x00,0x18,0x00,0x3c,0x00,0x4a,0x00,0x65,0xb3,0x39,0x18,0x11,0x36,0xb8,0x05,0x0d,0xb5,0x3d,0x09,0x09,0x3d,0x0e,0x11,0xb8,0x05,0x0d,0xb3,0x2a, +0x06,0x06,0x45,0xb8,0x05,0x0d,0xb4,0x2c,0x0e,0x09,0x0a,0x31,0xb8,0x04,0xfd,0xb3,0x40,0x39,0x48,0x26,0xb8,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18,0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0x32,0x39,0xd4,0xed,0x11,0x12,0x39,0x01, +0x2f,0xed,0x39,0x2f,0x39,0xed,0x39,0x2f,0x33,0x2f,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x37,0x26,0x35,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x02,0x17,0x28,0x11,0x18,0x2f,0x14,0x3c,0x65,0x31,0x12,0x33,0x5a,0x39,0x01,0x0b,0x06,0x01,0x34, +0x1e,0x31,0x3e,0x21,0x20,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x02,0x33,0x1f,0x0f,0x1f,0x18,0x0f,0x23,0x1a,0x30,0x3a,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x2b,0x11,0x22,0x11,0x05,0x03,0x0e,0x0e,0x53,0x0d,0x0f,0x01,0x02,0x40,0x40,0x24,0x39,0x27,0x14,0x14,0x27,0x3a, +0x27,0x3f,0x56,0x19,0x0b,0x10,0x08,0xcd,0x26,0x22,0x09,0x11,0x1a,0x10,0x1a,0x3a,0x1a,0x0e,0x36,0x00,0x00,0x03,0x00,0x05,0x05,0x26,0x02,0x01,0x07,0xea,0x00,0x18,0x00,0x1c,0x00,0x20,0x00,0x41,0xb1,0x0e,0x06,0xb8,0x05,0x0d,0xb4,0x11,0x0e,0x09,0x0a,0x1a,0xbb,0x04,0xfd,0x00,0x1b,0x00,0x1e,0x04,0xfd,0xb4,0x1f,0x16,0x18,0x18, +0x16,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c,0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01, +0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0x01,0x67,0x58,0x57,0x58,0x00,0x00,0x03, +0x00,0x49,0x05,0x26,0x01,0xbd,0x08,0x42,0x00,0x17,0x00,0x2b,0x00,0x37,0x00,0x55,0xbc,0x00,0x1d,0x05,0x0d,0x00,0x2f,0x00,0x06,0x05,0x0d,0xb3,0x0e,0x10,0x10,0x35,0xb8,0x05,0x0d,0xb5,0x0b,0x27,0x0e,0x09,0x0a,0x18,0xbb,0x04,0xfd,0x00,0x32,0x00,0x2c,0x04,0xfd,0xb4,0x22,0x15,0x17,0x17,0x15,0xb8,0x05,0x01,0xb4,0x03,0x09,0x0c, +0x0c,0x09,0xb9,0x05,0x01,0x00,0x0a,0x00,0x2f,0xed,0x32,0x2f,0x10,0xd6,0xed,0x32,0x2f,0x10,0xd6,0xfd,0xd6,0xed,0x11,0x12,0x39,0x01,0x2f,0x33,0xed,0x39,0x2f,0x39,0xed,0x2f,0xed,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x2d,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x70,0x28,0x45,0x31,0x1c,0x1c,0x31,0x45,0x28,0x2a,0x45,0x30,0x1b,0x1b,0x31,0x44,0x2a,0x30,0x30,0x30, +0x30,0x30,0x30,0x30,0x06,0x1e,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x33,0x3a,0x21,0x37,0x28,0x16,0x06,0x01,0xbf,0x1c,0x31,0x42,0x26,0x26,0x42,0x30,0x1c,0x1c,0x30,0x42,0x26,0x26,0x42,0x31,0x1c,0xfe,0xee,0x33,0x2a,0x29,0x35,0x35,0x29,0x2a,0x33,0x00,0x00,0x03,0x00,0x05,0xfe,0x00,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c, +0x00,0x20,0x00,0x3d,0xb1,0x0e,0x06,0xbe,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0x00,0x1a,0x00,0x1f,0x04,0xfd,0xb2,0x1e,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09,0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xfd,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31, +0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x01,0xfc,0xfe,0x04, +0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfd,0x9d,0x58,0x01,0x07,0x58,0x00,0x00,0x02,0x00,0x05,0xfe,0xaf,0x02,0x01,0x00,0xc1,0x00,0x18,0x00,0x1c,0x00,0x35,0xb1,0x0e,0x06,0xbb,0x05,0x0d,0x00,0x11,0x00,0x1b,0x04,0xfd,0xb2,0x1a,0x0e,0x0a,0xb8,0x04,0xfd,0xb4,0x09,0x0c,0x0c,0x09, +0x03,0xb8,0x04,0xfd,0xb3,0x16,0x18,0x18,0x16,0x00,0x2f,0x33,0x2f,0x10,0xfd,0xc6,0x32,0x2f,0x10,0xfd,0x39,0xd6,0xed,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x21,0x15,0x21,0x01,0x73,0x0d,0x1d,0x10,0x2d,0x3e, +0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xfe,0x92,0x01,0xfc,0xfe,0x04,0x56,0x03,0x04,0x23,0x28,0x53,0x61,0x5b,0x05,0x1a,0x36,0x1d,0x21,0x37,0x28,0x16,0x06,0xfe,0x4c,0x58,0xff,0xff,0x00,0x4f,0xfe,0xf8,0x01,0x64,0x00,0xe4,0x00,0x06,0x00,0x0f,0x28,0x00,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59, +0x03,0x0f,0x00,0x2e,0x00,0x3c,0xb1,0x0c,0x01,0xb8,0x05,0x0a,0xb3,0x2d,0x2d,0x30,0x20,0xb8,0x05,0x0a,0x40,0x0a,0x19,0x2f,0x2e,0x01,0x2e,0x2f,0x1d,0x01,0x1d,0x11,0xb8,0x05,0x03,0xb2,0x0c,0x28,0x06,0xba,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x3f,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39, +0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x11,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40, +0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0x03,0x0f,0xfe,0x89,0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0x00,0x01,0xff,0xba,0xff,0xf2, +0x01,0xf2,0x03,0x0f,0x00,0x16,0x00,0x1e,0xbe,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0f,0x05,0x03,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c, +0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x00,0x00,0x02,0x00,0x9b,0xfd,0xff,0x06,0x03,0x02,0xb7,0x00,0x30,0x00,0x41,0x00,0x65,0xb2,0x13,0x13,0x10,0xb8,0x05,0x0a,0xb4,0x3f,0x30,0x30,0x3f,0x3b,0xb8,0x05,0x0a,0xb6,0x05, +0x3f,0x05,0x3f,0x05,0x43,0x24,0xb8,0x05,0x0a,0xb5,0x1d,0x2f,0x21,0x01,0x21,0x29,0xb8,0x04,0xfb,0x40,0x0a,0x1f,0x18,0x2f,0x18,0x02,0x18,0x3f,0x3e,0x3e,0x10,0xbd,0x04,0xfb,0x00,0x00,0x00,0x12,0x05,0x03,0x00,0x36,0x04,0xfb,0xb3,0x2f,0x0a,0x01,0x0a,0x00,0x2f,0x5d,0xed,0x3f,0x33,0xed,0x32,0x11,0x33,0x2f,0x5d,0xed,0x2f,0x5d, +0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e,0x03,0x23,0x22, +0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e,0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86, +0x65,0x04,0x0e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19,0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49, +0x03,0x62,0x02,0x06,0x09,0x3c,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x03,0x62,0x02,0x06,0x09,0x3d,0x00,0x00,0xff,0xff,0x00,0x49,0x04,0x7c,0x01,0xa2,0x05,0xe9,0x00,0x07,0x09,0x7e,0x00,0x00,0xfe,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x3e,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01, +0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xe7,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x30,0x00,0x28,0xfd,0x55,0x00,0x0e,0xb6,0x04,0x03,0x02,0x2f,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff, +0xff,0xba,0xff,0xf2,0x03,0xa3,0x05,0x3e,0x00,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x01,0xfd,0x55,0x00,0x0a,0xb4,0x01,0x2f,0x2d,0x01,0x2d,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x3e,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x09,0x7e,0x02,0x01,0xfd,0x55,0x01,0x07,0x09,0x21,0x02,0xac, +0x00,0x00,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xb9,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x57,0x02,0xad,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff, +0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, +0x0f,0x52,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xee,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x5b,0x02,0xad,0x00,0xef,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07,0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca, +0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff, +0x00,0xab,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xca,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07, +0x0f,0x56,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x56,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x16,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x09,0x7e,0x01,0x56,0xfd,0x2d,0x00,0x0a,0xb4,0x01,0x2f,0x4c,0x01,0x4c,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0xfe,0xab,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d, +0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x79,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x56,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, +0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xf4,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x5b,0x00,0xab, +0x00,0xf5,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x50,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea, +0x04,0x02,0x05,0x5d,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xfe,0xa6,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x1d, +0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x52,0xff,0xea,0x04,0x02,0x06,0x75,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x1d,0x04,0xad,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0x07,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x06,0xae,0x04,0x07,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x03,0x0f,0x02,0x26,0x0e,0x31, +0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x50,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x03,0x0f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xa4,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x54,0x05,0x50,0xfd,0xce,0x00,0x07,0x0f,0x53,0x05,0x46, +0x03,0x57,0xff,0xff,0xff,0xba,0xfd,0xc9,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xa4,0xfd,0xce,0x00,0x07,0x0f,0x53,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x51,0x06,0x3c,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x51,0x03,0x86,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x05,0xca,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0xca,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xea,0x08,0x04,0x05,0xca,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x1e, +0x04,0x02,0xff,0xff,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x39,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x02,0x26,0x0e,0x3a,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0xff,0xff,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x3b, +0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xe5,0x04,0x02,0x00,0x02,0x00,0xab,0xff,0xea,0x08,0x04,0x03,0x62,0x00,0x41,0x00,0x55,0x00,0x5c,0xb1,0x10,0x0d,0xbb,0x05,0x0a,0x00,0x42,0x00,0x4e,0x05,0x0a,0xb6,0x00,0x42,0x00,0x42,0x00,0x57,0x2f,0xb8,0x05,0x0a,0xb5,0x28,0x2f,0x2c,0x01,0x2c,0x1f,0xb8,0x05,0x03,0x40,0x09,0x53,0x1a,0x05, +0x14,0x3c,0x3c,0x39,0x39,0x13,0xbc,0x04,0xfb,0x00,0x14,0x05,0x03,0x00,0x49,0x04,0xfb,0xb3,0x2f,0x05,0x01,0x05,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x11,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03, +0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x04,0xb0,0x30,0x55,0x74,0x44, +0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b, +0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35, +0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x08,0x04,0x05,0x24,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x27,0x0f,0x50,0x04,0xd7, +0x04,0x74,0x00,0x07,0x0f,0x50,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x54,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea, +0x08,0x04,0x06,0x3c,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x56,0x04,0xd7,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x04,0x79,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5, +0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03,0x05,0x91,0x02,0x26,0x0e,0x70,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xd4,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x06,0x3c,0x02,0x26,0x09,0x3c, +0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x3c,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x04,0x74,0x00,0x01,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x00,0x43,0x00,0x49,0xb4,0x13,0x05,0x05,0x1b,0x37,0xb8,0x05,0x0a,0x40,0x0c,0x30,0x1b,0x2f,0x34,0x01, +0x34,0x0a,0x0e,0x0b,0x03,0x0c,0x28,0xb8,0x05,0x03,0xb5,0x3f,0x20,0x20,0x1f,0x1f,0x1a,0xba,0x04,0xfb,0x00,0x1b,0x05,0x03,0xb4,0x0d,0x2f,0x0c,0x01,0x0c,0x00,0x2f,0x5d,0x33,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x2f,0x5d,0x01,0x2f,0x2f,0xed,0x12,0x39,0x10,0xcd,0x31,0x30,0x25,0x3e,0x03,0x35,0x34,0x2e,0x02, +0x27,0x35,0x01,0x15,0x01,0x1e,0x03,0x17,0x1e,0x05,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x05,0x4b,0x25,0x32,0x1c,0x0c,0x58,0xa4,0xe7,0x90,0x03,0x4b,0xfd,0x66,0xad,0xdd,0x85,0x40, +0x10,0x03,0x0b,0x14,0x21,0x34,0x49,0x32,0x16,0x59,0x8d,0x2c,0x05,0x22,0x53,0x44,0x27,0x5d,0x74,0x90,0x5a,0x76,0xc2,0x9b,0x78,0x2c,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1a,0x4f,0x7b,0xb1,0x7c,0x4f,0x80,0x66,0x4f,0xad,0x0a,0x1d,0x26,0x2d,0x1a,0x4c,0x8c,0x86,0x85,0x46,0x76,0x02,0x22,0xb0,0xfe,0x5f,0x52,0x92,0x8b, +0x8a,0x4a,0x0f,0x2b,0x30,0x2e,0x26,0x17,0xa7,0x4a,0x55,0x2d,0x3d,0x15,0x0c,0x10,0x09,0x03,0x06,0x16,0x2c,0x26,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x13,0x1a,0x10,0x07,0x02,0x05,0x0a,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x06,0x0e,0x56,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xea, +0x08,0xaf,0x04,0x19,0x00,0x48,0x00,0x52,0xb9,0x00,0x25,0x05,0x0a,0xb2,0x1a,0x3b,0x30,0xb8,0x05,0x0a,0xb4,0x11,0x0e,0x0e,0x11,0x14,0xb8,0x04,0xfb,0xb7,0x2b,0x2b,0x1f,0x3b,0x41,0x35,0x35,0x07,0x41,0x09,0x04,0xfb,0x00,0x41,0x05,0x03,0x00,0x32,0x04,0xfb,0x00,0x36,0x05,0x03,0x00,0x20,0x04,0xfb,0xb3,0x2f,0x1f,0x01,0x1f,0x00, +0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x32,0x2f,0x11,0x39,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x39,0x2f,0xed,0x31,0x30,0x37,0x1e,0x05,0x33,0x32,0x3e,0x04,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14, +0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x06,0x04,0x21,0x22,0x2e,0x04,0x27,0x19,0x25,0x83,0xaa,0xc7,0xd4,0xd8,0x65,0x72,0xbb,0x9d,0x83,0x72,0x68,0x33,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f, +0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4b,0x1a,0x04,0x0c,0x21,0x14,0x76,0xfe,0x25,0xfe,0xa9,0x47,0xb1,0xc0,0xc2,0xae,0x8f,0x2d,0xa9,0x05,0x07,0x06,0x03,0x02,0x01,0x01,0x02,0x02,0x05,0x06,0x04,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66, +0x38,0x23,0x2c,0x05,0x03,0xa7,0x2c,0x29,0x16,0x21,0x0e,0x0a,0x0e,0x01,0x02,0x03,0x06,0x07,0x05,0x00,0x00,0x01,0xff,0xba,0xff,0xea,0x08,0x04,0x04,0x19,0x00,0x4d,0x00,0x61,0xb1,0x3f,0x34,0xb8,0x05,0x0a,0x40,0x09,0x15,0x12,0x12,0x24,0x15,0x15,0x1e,0x3a,0x29,0xbb,0x05,0x0a,0x00,0x1e,0x00,0x18,0x04,0xfb,0xb3,0x2f,0x2f,0x23, +0x47,0xbc,0x05,0x03,0x00,0x3a,0x05,0x03,0x00,0x24,0x04,0xfb,0x40,0x0c,0x2f,0x23,0x01,0x23,0x3f,0x00,0x39,0x36,0x36,0x0d,0x0d,0x07,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x2f,0x33,0x2f,0x33,0x11,0x39,0x2f,0x5d,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x39,0x33,0x2f,0x10,0xed, +0x39,0x31,0x30,0x17,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x16,0x04,0x33,0x32,0x3e,0x02,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x24,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07, +0x0e,0x02,0x04,0x23,0x22,0x2e,0x04,0x32,0x32,0x23,0x23,0x23,0x23,0x3b,0x1e,0xa2,0xef,0x01,0x2e,0xab,0x9d,0xf6,0xc3,0x99,0x40,0x03,0x03,0x5d,0x55,0xfb,0xd3,0x56,0x88,0x5e,0x32,0x6b,0xc7,0x01,0x1f,0xb4,0x7f,0xe3,0xac,0x65,0x19,0x4b,0x88,0x70,0x03,0xba,0x46,0x76,0x54,0x2f,0x0b,0x20,0x3e,0x1f,0x07,0x39,0x4c,0x19,0x04,0x0b, +0x22,0x14,0x34,0xb6,0xec,0xfe,0xe9,0x96,0x50,0xb3,0xb2,0xa8,0x8b,0x66,0x0e,0x34,0x20,0x20,0x33,0x03,0x03,0x02,0x03,0x05,0x07,0x05,0x0b,0x12,0x0b,0x43,0x55,0x07,0x1f,0x40,0x39,0x52,0xa9,0x92,0x6f,0x19,0xa6,0x10,0x43,0x56,0x61,0x2e,0x12,0x14,0x0a,0x02,0x2e,0x4d,0x66,0x38,0x23,0x2c,0x05,0x03,0xa7,0x2d,0x28,0x15,0x22,0x0e, +0x05,0x08,0x07,0x04,0x01,0x02,0x02,0x02,0x01,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0xff,0xff,0x00,0xab,0xff,0xea, +0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x07,0xcb,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73, +0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xcb,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0x39,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x06,0xae,0x05,0xec,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0x74,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59, +0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x5b,0x04,0xa6,0x05,0xb0,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27,0x0f,0x5b,0x01,0x4f,0x05,0xb0,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xc3, +0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x51,0x03,0x90,0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x07,0xc3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x51,0x00,0x39, +0x07,0x13,0x00,0x0c,0xb5,0x03,0x02,0x20,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00, +0x00,0x26,0x0f,0x59,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x07,0x38,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x52,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x59,0x03,0x57,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x02,0x07,0x38,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x27, +0x0f,0x52,0x00,0xab,0xfd,0xce,0x00,0x06,0x0f,0x59,0x00,0x00,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x08,0xbd,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x27,0x0f,0x59,0x03,0x57,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x57,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x4f,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x5d,0x35,0x35, +0x35,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x08,0xbd,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x26,0x0f,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x00,0x00,0x06,0xf5,0x00,0x13,0x40,0x0a,0x04,0x03,0x02,0x20,0x3c,0x01,0x20,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x5d,0x35,0x35,0x35,0x00,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x70,0x08,0x0e, +0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0a,0x6d,0x03,0x48,0x00,0x32,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x07,0x67,0x02,0x26,0x09,0x59,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x48,0x06,0xb7,0xff,0xff,0x00,0x9b,0xfe,0xac,0x05,0x58,0x08,0x7f,0x02,0x26,0x09,0x59,0x00,0x00,0x01,0x07,0x0f,0x53,0x03,0x48,0x06,0xb7,0x00,0x0e, +0xb6,0x01,0x03,0x02,0x20,0x34,0x01,0x34,0x00,0x11,0x5d,0x35,0x35,0x35,0x00,0x04,0x00,0x9b,0xfd,0xc4,0x05,0x58,0x05,0xec,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x72,0xb1,0x0e,0x01,0xbb,0x05,0x0a,0x00,0x27,0x00,0x2a,0x05,0x0c,0xb2,0x29,0x29,0x2d,0xbb,0x05,0x0c,0x00,0x2e,0x00,0x31,0x05,0x0c,0x40,0x0a,0x32,0x27,0x2e, +0x32,0x32,0x2e,0x27,0x03,0x36,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x29,0x04,0xfb,0xb2,0x2c,0x31,0x2d,0xb8,0x04,0xfb,0x40,0x0c,0x33,0x2f,0x30,0x01,0x30,0x1a,0x0d,0x00,0x11,0x11,0x22,0x06,0xbb,0x04,0xfb,0x00,0x07,0x05,0x03,0x00,0x00,0x00,0x2f,0x3f,0xed,0x32,0x33,0x2f,0x12,0x39,0x2f,0x2f,0x5d,0x33,0xfd,0x32,0xd6,0xed,0x01, +0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x23,0x35,0x33,0x37,0x23,0x35,0x33, +0x05,0x23,0x35,0x33,0x04,0x9e,0x0c,0x27,0x49,0x3e,0x1a,0x23,0x4c,0x48,0x3e,0x14,0x03,0x41,0xda,0xa3,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x24,0x4e,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xfc,0xc9,0xc9,0xab,0xc9,0xc9,0xfe,0xaa,0xc9,0xc9,0x05,0xec,0xfb,0xb0,0x43,0x61,0x40,0x1f,0xa7,0x10,0x27,0x44,0x35,0x56,0x5a,0x45, +0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x2e,0x67,0xa7,0x79,0x03,0x9c,0xf7,0xd8,0xbd,0x5b,0xbd,0xbd,0xbd,0x00,0x03,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x2c,0x34,0x30,0xb8,0x05,0x0c,0x40,0x09,0x31,0x35,0x31,0x2c,0x31, +0x2c,0x31,0x39,0x22,0xbb,0x05,0x0a,0x00,0x1b,0x00,0x34,0x04,0xfb,0xb4,0x2f,0x37,0x01,0x37,0x30,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x33,0x01,0x33,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed, +0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, +0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e, +0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50, +0x00,0x83,0xfe,0xab,0x00,0x01,0x00,0x9b,0xfd,0xff,0x05,0x58,0x01,0xc1,0x00,0x2a,0x00,0x4a,0xb2,0x0b,0x00,0x0c,0xb8,0x05,0x0a,0xb5,0x2a,0x27,0x27,0x2c,0x1a,0x1d,0xb8,0x05,0x0a,0x40,0x0b,0x19,0x16,0x2f,0x2a,0x01,0x2a,0x2f,0x1a,0x01,0x1a,0x22,0xb8,0x04,0xfb,0xb7,0x1f,0x11,0x2f,0x11,0x02,0x11,0x0c,0x06,0xba,0x04,0xfb,0x00, +0x07,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0xed,0x2f,0x5d,0x2f,0x5d,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xe1,0x32,0x32,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x33,0x15,0x23,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x26,0x27,0x04,0x84,0x08,0x09,0x06,0x09,0x55,0x5f,0x16,0x3f,0x4a,0x17,0x05,0x03,0x3c,0x82,0xcf,0x95,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0x01,0xc1,0x2d,0x54,0x2a,0x3f,0x3e,0xa7,0x26,0x20,0x01,0x84,0xd3,0x93,0x4e,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39, +0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x0e,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x9e,0x06,0x32,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0xff,0xff,0xff,0xba, +0xff,0xf2,0x02,0xac,0x06,0x32,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x57,0x00,0x72,0x03,0xd0,0x00,0x03,0x00,0x9b,0xfe,0x55,0x05,0x58,0x04,0xb6,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb1,0x11,0x03,0xb8,0x05,0x0a,0xb2,0x39,0x14,0x17,0xb8,0x05,0x0e,0xb2,0x44,0x23,0x21,0xb8,0x05,0x0e,0xb5,0x4a,0x44,0x4a,0x44,0x4a, +0x3d,0xb8,0x05,0x0c,0xb6,0x3e,0x39,0x3e,0x39,0x3e,0x4e,0x2f,0xbb,0x05,0x0a,0x00,0x28,0x00,0x40,0x01,0x57,0xb5,0x3d,0x2f,0x3c,0x01,0x3c,0x1c,0xb8,0x05,0x00,0xb3,0x41,0x14,0x23,0x47,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x34,0x01,0x34,0x2f,0x2c,0x01,0x2c,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d, +0x2f,0x5d,0xfd,0x39,0x39,0xd6,0xed,0x2f,0x5d,0xd6,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x39,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e, +0x02,0x35,0x34,0x37,0x2e,0x03,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x39,0x35,0x14,0x04,0x2b,0xa3,0x80,0x14,0x17,0x1a,0x2b,0x3a, +0x20,0x23,0x3b,0x2b,0x19,0x21,0x6e,0x95,0x5b,0x27,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94,0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0x63,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0x03,0x17,0x5e,0xab,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x60,0x7d,0x18,0x15,0x38,0x21,0x20,0x3a,0x2c,0x19,0x19,0x2c,0x39, +0x21,0x3b,0x2a,0x0b,0x4d,0x7e,0xab,0x68,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0xea,0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0xff,0xff,0xff,0xba,0xff,0x05,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x5b,0x00,0x1a,0x01,0x06,0x00,0x07, +0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x04,0x74,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x9f,0x02,0xac,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x87,0x04,0x53, +0x02,0x06,0x0e,0x5b,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xff,0x04,0x02,0x03,0x56,0x02,0x06,0x0e,0x5d,0x00,0x00,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0x56,0xfd,0xce,0x00,0x07,0x0f,0x50,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x04,0x11, +0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfc,0x28,0xff,0xff,0x00,0x57,0xff,0xaf,0x04,0x02,0x03,0x5c,0x02,0x26,0x09,0x72,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xab,0x02,0xac,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x06,0x0f,0x5b,0x66,0x60,0x00,0x02,0x00,0x00, +0xfd,0xfe,0x04,0x02,0x03,0x1c,0x00,0x2c,0x00,0x41,0x00,0x6a,0xb2,0x12,0x2b,0x37,0xb8,0x05,0x0a,0xb2,0x13,0x20,0x2b,0xb8,0x05,0x0a,0xb4,0x18,0x3f,0x3f,0x18,0x12,0xb8,0x04,0xfd,0xb6,0x2f,0x15,0x01,0x15,0x15,0x0d,0x1b,0xb8,0x04,0xfb,0xb6,0x2f,0x3c,0x3f,0x3c,0x02,0x3c,0x32,0xb8,0x04,0xfb,0xb5,0x2f,0x25,0x01,0x25,0x0a,0x0d, +0xb8,0x04,0xfb,0x40,0x09,0x09,0x1f,0x06,0x2f,0x06,0x02,0x06,0x18,0x2b,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x2f,0x5d,0x33,0xed,0x32,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x11,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0x2f,0x10,0xed,0x2f,0x33,0xed,0x12,0x39,0x31,0x30,0x05,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x35,0x16, +0x16,0x33,0x32,0x3e,0x02,0x37,0x21,0x35,0x21,0x36,0x36,0x37,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x25,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x04,0x02,0xc3,0x0d,0x3f,0x72,0xab,0x79,0x58,0xad,0x58,0x67,0xab,0x45,0x3e,0x60,0x48,0x33, +0x11,0xfe,0x2a,0x01,0xf4,0x08,0x07,0x01,0x30,0x56,0x2a,0x42,0x7b,0x5e,0x39,0x30,0x55,0x75,0x45,0x42,0x7f,0x63,0x3d,0xb7,0xfe,0x96,0x0f,0x2a,0x32,0x35,0x1a,0x1c,0x37,0x2c,0x1b,0x20,0x3a,0x4e,0x2f,0x1b,0x4b,0x2a,0x02,0x09,0x0e,0x62,0xb5,0x8a,0x53,0x2c,0x2a,0xa6,0x2b,0x25,0x1b,0x31,0x43,0x28,0x6d,0x2b,0x58,0x2d,0x16,0x11, +0x29,0x4f,0x72,0x48,0x41,0x8e,0x77,0x4d,0x4f,0x9e,0xee,0x9f,0x09,0xef,0x33,0x55,0x3d,0x22,0x26,0x3d,0x4a,0x24,0x26,0x3c,0x29,0x16,0x0c,0x14,0x1d,0x33,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6d,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x63,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x09,0x30,0x00,0xe4,0xfd,0x55,0x00,0x0c,0xb5,0x03,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x59,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x09,0x73,0x00,0xe5,0xfd,0x55, +0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x05,0x31,0x02,0x26,0x0e,0x5e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xe5,0xfd,0x55,0x00,0x0a,0xb4,0x02,0x2f,0x3a,0x01,0x3a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0xd5,0x03,0xc9,0xff,0xff,0x00,0x00, +0xfd,0xff,0x04,0x02,0x05,0x91,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x53,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x6d, +0x00,0x9c,0xfd,0x7e,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0x00,0xfd,0xff,0x04,0x02,0x04,0x79,0x02,0x26,0x0e,0x5e,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x03,0xc9,0xff,0xff,0xff,0xba,0xfd,0xc9,0x01,0xf2,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x52,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x81,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0f,0x54, +0x00,0x83,0xfd,0xce,0x00,0x01,0x00,0x81,0x06,0xa6,0x01,0x86,0x07,0xab,0x00,0x13,0x00,0x19,0xbc,0x00,0x0a,0x05,0x0c,0x00,0x00,0x00,0x05,0x04,0xfe,0xb3,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x13,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x81,0x13,0x23,0x2f,0x1d, +0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x07,0x28,0x1c,0x31,0x22,0x14,0x14,0x22,0x31,0x1c,0x1d,0x2f,0x23,0x13,0x13,0x23,0x2f,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x53,0x05,0x50,0x03,0x57,0x00,0x07,0x0f,0x50,0x05,0x50,0xfe,0xab,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xa4,0x03,0x57,0x00,0x07,0x0f,0x50,0x02,0xa4,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x0a,0xb0,0x04,0xb2,0x00,0x26,0x0e,0x35,0x00,0x00,0x00,0x27,0x0f,0x50,0x05,0xca,0x04,0x02,0x00,0x07,0x0f,0x50,0x06,0x3c,0xfe,0xab,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x08,0x04,0x04,0xb2,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x27,0x0f,0x50,0x03,0x1e,0x04,0x02,0x00,0x07,0x0f,0x50,0x03,0x90,0xfe,0xab,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x55,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x0f, +0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x55,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x21,0x02,0xac,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x05,0xca,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xad,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xca, +0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x9c,0x04,0x02,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07, +0x0f,0x53,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x53,0x02,0xad,0xfd,0xce,0x00,0x07,0x0f,0x51,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x53,0x00,0x83,0xfd,0xce,0x00,0x07, +0x0f,0x51,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xad,0xfe,0xab,0x00,0x07,0x0f,0x50,0x02,0xad,0x04,0x02,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x83,0xfe,0xab,0x00,0x07, +0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0xab,0xfe,0x13,0x07,0x59,0x03,0x0f,0x02,0x26,0x0e,0x6e,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0xad,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x35,0x01,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0x13,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0x83, +0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x05,0x5a,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0xad,0xfd,0x7e,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x05,0x5a,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x6d,0x00,0x9c,0xfd,0x7e,0xff,0xff, +0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x61,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x56,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x07,0x0f,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x27, +0x0f,0x57,0x01,0x1d,0x04,0xad,0x00,0x07,0x0f,0x52,0x00,0xab,0xfd,0xce,0xff,0xff,0x00,0x52,0xfe,0x13,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x01,0x07,0x0a,0x6e,0x00,0xab,0xf7,0x97,0x00,0x0a,0xb4,0x01,0x2f,0x2b,0x01,0x2b,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x02,0x5e,0x02,0x26,0x0b,0x0c, +0x00,0x00,0x00,0x07,0x0f,0x5c,0x00,0xc0,0xfc,0xfa,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x56,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x56,0x02,0xa4,0x03,0x57,0xff,0xff,0x00,0xab,0xfe,0xa6, +0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x51,0x05,0x10,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x08,0x04,0x03,0x62,0x02,0x26,0x0e,0xa5,0x00,0x00,0x00,0x07,0x0f,0x53,0x05,0x10,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0xb3,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x50,0x03,0x90, +0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x07,0xcb,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x03,0x90,0x06,0x03,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0xad,0xfd,0xce,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x57, +0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad,0x04,0x79,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0x03,0xc9,0xff,0xff,0x00,0x39,0xfd,0xff,0x04,0xad,0x02,0xb9,0x02,0x26,0x0e,0x57,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6, +0x04,0xad,0x02,0xaf,0x02,0x26,0x0e,0x58,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x8f,0xfe,0xab,0x00,0x04,0x00,0x9b,0xfd,0xf6,0x05,0x58,0x04,0xb6,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x82,0xb1,0x11,0x03,0xbb,0x05,0x0a,0x00,0x2c,0x00,0x31,0x05,0x0c,0xb2,0x30,0x30,0x38,0xbe,0x05,0x0c,0x00,0x39,0x00,0x34,0x05,0x0c,0x00, +0x35,0x00,0x22,0x05,0x0a,0x40,0x0e,0x1b,0x2c,0x39,0x35,0x1b,0x1b,0x35,0x39,0x2c,0x04,0x3d,0x3c,0x38,0x34,0xb8,0x04,0xfb,0xb5,0x3a,0x2f,0x37,0x01,0x37,0x33,0xb8,0x01,0x57,0xb5,0x30,0x2f,0x2f,0x01,0x2f,0x16,0xb8,0x04,0xfb,0x40,0x0a,0x2f,0x27,0x01,0x27,0x2f,0x1f,0x01,0x1f,0x11,0x09,0xba,0x04,0xfb,0x00,0x0a,0x05,0x03,0x00, +0x3f,0xed,0x39,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xd6,0xed,0x2f,0x5d,0x33,0xed,0x32,0x11,0x12,0x01,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x16,0x16,0x15,0x15,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x84,0x11,0x11,0x0b,0x26,0x46,0x3b,0x19,0x1b,0x3b,0x3a,0x34,0x14,0x04,0x1b,0x56,0x79,0x9e,0x63,0x88,0xb7,0x6f,0x2f,0x0f,0x0e,0x97,0x0b,0x0c,0x24,0x4f,0x7e,0x5a,0x69,0x94, +0x5e,0x2b,0x11,0x10,0xe4,0xc9,0xc9,0xab,0xc9,0xc9,0x01,0x56,0xc9,0xc9,0x03,0x17,0x5d,0xac,0x51,0x21,0x47,0x62,0x3e,0x1c,0xa7,0x09,0x16,0x28,0x1e,0x3d,0x60,0x42,0x23,0x45,0x7f,0xb7,0x72,0x40,0x89,0x4e,0x4b,0x7f,0x39,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x45,0x9d,0x64,0xe2,0xbd,0xf9,0x40,0xbd,0xbd,0xbd,0x00,0xff,0xff, +0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x00,0x07,0x0f,0x50,0x00,0x9c,0x04,0x02,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x06,0x64,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f,0x02,0xac,0x00,0x07,0x0f,0x57,0x01,0x9f,0x04,0x02,0xff,0xff, +0xff,0xba,0xff,0xf2,0x02,0xac,0x07,0xba,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0f,0x57,0x00,0x72,0x05,0x58,0x00,0x0a,0xb4,0x01,0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58,0x05,0x63,0x02,0x26,0x0e,0xcf,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0x9f, +0x02,0xac,0x01,0x07,0x0a,0x6d,0x01,0x9f,0xfd,0x87,0x00,0x0a,0xb4,0x01,0x20,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0xc4,0x06,0xb9,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9c,0x04,0x02,0x01,0x07,0x0a,0x6d,0x00,0x9c,0xfe,0xdd,0x00,0x14,0x40,0x0a,0x02,0x2f,0x25,0x01,0x25,0x01, +0x20,0x21,0x01,0x21,0x00,0x11,0x5d,0x35,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x1f,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0f,0x52,0x05,0x50,0x03,0x57,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x1f,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0f,0x52,0x02,0xa4,0x03,0x57,0x00,0x03,0x00,0x7e, +0xfd,0xfe,0x04,0x2d,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x6a,0xb4,0x24,0x02,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb2,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0xb7,0x28,0x44,0x28,0x44,0x28,0x4e,0x10,0x21,0xbb,0x05,0x0a,0x00,0x02,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x0f,0x2a,0x2f,0x2f, +0x01,0x2f,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x2f,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35, +0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x2b,0xad,0x53,0xa8,0xfe, +0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0xfd,0xfe, +0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f, +0x33,0x43,0x24,0x00,0x00,0x04,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x7e,0xb2,0x1b,0x1b,0x34,0xb8,0x05,0x0e,0xb5,0x44,0x58,0x58,0x44,0x4c,0x2b,0xb8,0x05,0x0d,0x40,0x0b,0x28,0x44,0x28,0x44,0x28,0x5c,0x24,0x02,0x4d,0x10,0x21,0xbf,0x05,0x0a,0x00,0x02,0x00,0x50,0x04,0xfb,0x00, +0x52,0x05,0x03,0x00,0x39,0x04,0xfd,0xb6,0x3f,0x28,0x28,0x25,0x25,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2a,0x2f,0x2f,0x01,0x2f,0x1b,0x07,0x1c,0x4d,0x04,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0xc6,0xfd,0xc6,0x32,0x2f,0x32,0x2f,0x10,0xed,0x3f,0xed,0x01,0x2f, +0xed,0x39,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x2f,0x10,0xed,0x32,0x2f,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5, +0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x06,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xba,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35, +0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x1e,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x02,0x43,0x68,0x55, +0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x00,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0xff,0xff,0xff,0xba,0xfe,0x03,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0xfe,0x03,0x00,0x05,0x00,0x7e,0xfd,0xfa,0x04,0x2d, +0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x50,0x00,0x54,0x00,0x9d,0xb9,0x00,0x52,0x05,0x0a,0xb7,0x51,0x51,0x44,0x24,0x02,0x1b,0x1b,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4,0x2c,0x4c,0x28,0x28,0x4d,0xb8,0x05,0x0a,0xb7,0x4e,0x44,0x4e,0x44,0x4e,0x56,0x10,0x21,0xb8,0x05,0x0a,0xb4,0x02,0x2c,0x2a,0x52,0x4d, +0xb8,0x05,0x02,0xb2,0x53,0x50,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0x40,0x10,0x2f,0x2f,0x3f,0x2f,0x02,0x2f,0x2f,0x2a,0x01,0x2a,0x1c,0x07,0x1b,0x03,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x2f,0x5d,0x2f,0x5d, +0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11,0x39,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04, +0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63, +0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x07,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38, +0x1f,0x33,0x43,0x24,0xfe,0x83,0xb5,0xb5,0xb5,0x00,0x00,0x06,0x00,0x7e,0xfd,0xfa,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x3e,0x00,0x4c,0x00,0x5a,0x00,0x5e,0x00,0x62,0x00,0xb1,0xb2,0x24,0x02,0x4d,0xb8,0x05,0x0b,0xb3,0x58,0x58,0x44,0x60,0xb8,0x05,0x0a,0xb3,0x34,0x5f,0x5f,0x34,0xbb,0x05,0x0e,0x00,0x44,0x00,0x2b,0x05,0x0d,0xb4, +0x2c,0x4c,0x28,0x28,0x5b,0xb8,0x05,0x0a,0xb7,0x5c,0x44,0x5c,0x44,0x5c,0x64,0x10,0x21,0xb8,0x05,0x0a,0xb2,0x02,0x5f,0x5b,0xb8,0x04,0xfb,0x40,0x0a,0x61,0x2f,0x5e,0x01,0x5e,0x51,0x50,0x50,0x2f,0x39,0xb8,0x04,0xfd,0x40,0x0a,0x3f,0x28,0x28,0x25,0x25,0x2f,0x3f,0x01,0x3f,0x47,0xb8,0x04,0xfd,0xb3,0x2c,0x52,0x2a,0x2f,0xba,0x04, +0xfb,0x00,0x52,0x05,0x03,0xb6,0x4d,0x1c,0x07,0x1b,0x04,0x00,0x0d,0xb8,0x04,0xff,0xb4,0x14,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x2f,0xed,0x12,0x17,0x39,0x3f,0xf4,0xc6,0x12,0x39,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x2f,0x5d,0x33,0xed,0x32,0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed, +0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x2f,0x10,0xe4,0x12,0x39,0x2f,0xed,0x11,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x03,0x16,0x16,0x17,0x11,0x33,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54, +0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x33,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x01,0xe7,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0xfe,0x86,0xb9,0xb9, +0x01,0x42,0xb9,0xb9,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x01,0x82,0x02,0x03,0x02,0x01,0x93,0xf7,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04,0x03,0x5e,0x02,0x0e, +0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x01,0xdf,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0xfc,0xac,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0x68,0x02,0xdb,0x00,0x42,0x00,0x50,0x00,0x54,0x00,0x58,0x00,0x92,0xb1,0x0d,0x30,0xb8,0x05,0x0e,0xb2,0x48,0x48,0x55,0xb8,0x05,0x0a,0xb2,0x56,0x50,0x27,0xb8,0x05,0x0d, +0xb2,0x3f,0x3f,0x51,0xb8,0x05,0x0a,0x40,0x09,0x52,0x56,0x52,0x56,0x52,0x5a,0x15,0x55,0x51,0xb8,0x04,0xfb,0x40,0x09,0x57,0x54,0x43,0x3e,0x3e,0x43,0x3b,0x3b,0x35,0xb8,0x04,0xfd,0xb4,0x2f,0x43,0x01,0x43,0x4b,0xb8,0x04,0xfd,0x40,0x0b,0x27,0x2f,0x2b,0x01,0x2b,0x20,0x0c,0x21,0x03,0x00,0x12,0xb8,0x04,0xff,0xb7,0x2f,0x19,0x01, +0x19,0x26,0x3f,0x3f,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x2f,0x5d,0x33,0xfd,0xd6,0x5d,0xed,0x33,0x2f,0x11,0x33,0x2f,0x10,0xd4,0x32,0xed,0x32,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xed,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x0e,0x03,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e, +0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x79,0x66,0x5c,0x65,0x76,0x4e,0x20,0x2c,0x75,0x95,0xb4,0x6a,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e, +0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x30,0x25,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x09,0x41,0x57,0x5f,0x27,0x7a,0x01,0x3d,0x42,0x22,0x39,0x4b,0x29,0x3a, +0x40,0x1e,0x05,0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe6,0x17,0x1c,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0x04,0xff,0xba,0xfd,0xfa,0x04,0xad,0x02,0xdb,0x00,0x4f,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0xa7,0xb1,0x0d,0x3d,0xb8,0x05,0x0e,0xb6,0x55,0x55,0x62,0x63,0x30,0x30,0x24, +0xba,0x05,0x0b,0x00,0x62,0x05,0x0a,0xb2,0x63,0x5d,0x34,0xb8,0x05,0x0d,0xb2,0x4c,0x4c,0x5e,0xb8,0x05,0x0a,0x40,0x09,0x5f,0x63,0x5f,0x63,0x5f,0x67,0x66,0x62,0x5e,0xb8,0x04,0xfb,0xb2,0x64,0x61,0x42,0xb8,0x04,0xfd,0x40,0x0a,0x50,0x4b,0x4b,0x48,0x48,0x2f,0x50,0x01,0x50,0x58,0xb8,0x04,0xfd,0xb5,0x34,0x2f,0x38,0x01,0x38,0x2a, +0xb8,0x05,0x03,0xb7,0x30,0x24,0x21,0x0c,0x20,0x05,0x00,0x12,0xb8,0x04,0xff,0x40,0x09,0x2f,0x19,0x01,0x19,0x33,0x4c,0x4c,0x29,0x06,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x39,0x11,0x33,0x2f,0x5d,0xed,0x12,0x17,0x39,0x3f,0x2f,0x5d,0x33,0xfd,0xc6,0x5d,0x32,0x2f,0x32,0x2f,0x10,0xfd,0xd6,0x32,0xed,0x32,0x11, +0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x32,0x10,0xfd,0xe4,0x33,0x2f,0x11,0x12,0x39,0x2f,0xed,0x39,0x31,0x30,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02, +0x27,0x06,0x06,0x07,0x15,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x16,0x16,0x17,0x35,0x06,0x06,0x23,0x05,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xda,0xc7,0xb9,0x5a,0x3a,0x59,0x60,0x76,0x57, +0x4e,0x7e,0x33,0x37,0x84,0x4e,0x4f,0x7a,0x66,0x5c,0x64,0x77,0x4e,0x20,0x1d,0x46,0x2a,0x03,0x14,0x35,0x5c,0x4a,0x14,0x62,0x7c,0x49,0x1e,0x04,0x48,0xad,0x67,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x0d,0x17,0x3e,0x2a,0x51,0xb4,0x64,0x02,0x46,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23, +0x3f,0x35,0x2a,0x0f,0x21,0xaf,0xaf,0x01,0x38,0xaf,0xaf,0x0e,0x34,0x20,0x20,0x33,0x31,0x4f,0x64,0x32,0x05,0x18,0x2f,0x26,0x18,0x14,0x10,0x9d,0x12,0x17,0x1b,0x28,0x2f,0x29,0x1c,0x01,0xbb,0x06,0x22,0x17,0x27,0x36,0x23,0x10,0xa7,0x29,0x45,0x59,0x31,0x2a,0x5a,0x25,0x7a,0x01,0x3c,0x43,0x22,0x39,0x4b,0x29,0x3a,0x40,0x1e,0x05, +0x01,0x03,0x04,0x03,0x62,0x02,0x03,0x02,0xe5,0x17,0x1b,0xb5,0x02,0x0c,0x18,0x17,0x33,0x30,0x1b,0x2c,0x3a,0x1f,0xfe,0xbd,0xab,0xab,0xab,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x07,0x0d,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02, +0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x07,0x0d,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x27,0x0f,0x51,0x05,0x46,0x03,0x57,0x01,0x07,0x0f,0x57,0x05,0x46,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x5b,0x01,0x5b,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4, +0x07,0x0d,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07,0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x45,0x01,0x45,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x07,0x0d,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0xa4,0x03,0x57,0x01,0x07, +0x0f,0x57,0x02,0xa4,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x4f,0x01,0x4f,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc6,0x07,0x0d,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x1d,0x01,0x1d,0x00,0x11,0x5d, +0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x07,0x0d,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x9a,0x03,0x57,0x01,0x07,0x0f,0x57,0x00,0x9a,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0x41,0x06,0x8c,0x02,0x26,0x09,0x13,0x00,0x00, +0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0x00,0x7e,0xfd,0xff,0x04,0xad,0x06,0x8c,0x02,0x26,0x08,0xd1,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x04,0x2a,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x7c,0x06,0x13,0x02,0x26,0x08,0xd0,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xad, +0x06,0x13,0x02,0x26,0x0e,0x2d,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x56,0x03,0xb1,0xff,0xff,0x00,0x17,0x00,0x00,0x01,0xf2,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00,0xff,0xff,0x00,0x17,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5e,0x00,0x00, +0xff,0xff,0x00,0x16,0x00,0x00,0x01,0xfa,0x07,0x6e,0x00,0x27,0x09,0x0d,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x16,0xff,0xf2,0x02,0xac,0x07,0x6e,0x00,0x27,0x08,0xc7,0x00,0xab,0x00,0x00,0x00,0x06,0x0f,0x5f,0x00,0x00,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00, +0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x36,0x01,0x36,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae,0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x45,0x01,0x2f,0x45,0x01,0x45,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba, +0xfe,0xa6,0x02,0x4c,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x1f,0x01,0x1f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab, +0x01,0x07,0x0f,0x5e,0x00,0xd5,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x28,0x01,0x28,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x55,0x05,0x91,0x05,0x8a,0x02,0x26,0x09,0x2a,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x1c,0x00,0x0a,0xb4,0x01,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x06,0xae, +0x04,0xdf,0x02,0x26,0x08,0xf7,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x68,0x01,0x2f,0x68,0x01,0x68,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x96,0x05,0xf6,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88, +0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0xf6,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x51,0x00,0x4a,0xfe,0xab,0x01,0x07,0x0f,0x5f,0x00,0x9c,0xfe,0x88,0x00,0x0a,0xb4,0x03,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x91, +0x04,0xaa,0x02,0x27,0x09,0x2a,0x00,0x00,0x00,0x95,0x01,0x07,0x0f,0x60,0x02,0x01,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x06,0xae,0x02,0xbd,0x02,0x26,0x0f,0x61,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x43,0x01,0x43,0x00,0x11, +0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0x75,0x03,0x0f,0x02,0x26,0x0e,0x6f,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x33,0x01,0x33,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x02,0xac,0x03,0x0f,0x02,0x26,0x09,0x3b,0x00,0x00,0x01,0x07,0x0f,0x60,0x00,0x9c,0xf8,0x34,0x00,0x0a, +0xb4,0x01,0x2f,0x42,0x01,0x42,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x17,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x17,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5e,0x00,0x00,0xfd,0x55,0xff,0xff, +0x00,0x16,0xfd,0xff,0x03,0xf4,0x04,0xc3,0x00,0x27,0x09,0x29,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x16,0xfd,0xff,0x04,0xad,0x04,0xc3,0x00,0x27,0x0e,0x5e,0x00,0xab,0x00,0x00,0x00,0x07,0x0f,0x5f,0x00,0x00,0xfd,0x55,0xff,0xff,0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65, +0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff, +0x00,0x72,0xff,0xea,0x06,0xe5,0x05,0x6e,0x02,0x26,0x09,0x65,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfe,0x00,0x00,0x0e,0xb7,0x01,0x2f,0x2c,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x09,0x66,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a, +0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0x00,0x02,0x00,0x7e,0xfd,0xfe,0x04,0x2c,0x03,0x54,0x00,0x24,0x00,0x4a,0x00,0x65,0xb9,0x00,0x3e,0x05,0x0b,0xb5,0x31,0x31,0x38,0x24,0x02,0x37,0xb8,0x05,0x0d,0xb4,0x38,0x38,0x4c,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x37,0x01,0x37,0x47,0x25,0x28,0x2e,0xb8,0x04,0xfd, +0x40,0x13,0x41,0x4a,0x4a,0x41,0x41,0x2f,0x25,0x01,0x25,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d,0x01,0x2f,0xed,0x39,0x12,0x39,0x2f,0xed,0x11,0x39,0x11,0x39,0x2f,0xed,0x31,0x30,0x01, +0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01, +0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8,0x58,0x5d,0x58,0x01,0xd3,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd, +0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x02,0xd6,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35, +0x1c,0x00,0x00,0x03,0x00,0x7e,0xfd,0xfe,0x05,0x58,0x03,0x54,0x00,0x24,0x00,0x32,0x00,0x58,0x00,0x81,0xb5,0x24,0x55,0x33,0x03,0x02,0x25,0xbb,0x05,0x0b,0x00,0x30,0x00,0x4c,0x05,0x0b,0xb2,0x3f,0x3f,0x45,0xb8,0x05,0x0d,0xb7,0x46,0x30,0x46,0x30,0x46,0x5a,0x10,0x21,0xb8,0x05,0x0a,0x40,0x09,0x02,0x2f,0x45,0x01,0x45,0x55,0x33, +0x36,0x3c,0xb8,0x04,0xfd,0x40,0x0a,0x4f,0x58,0x58,0x4f,0x4f,0x2f,0x33,0x01,0x33,0x28,0xba,0x04,0xfb,0x00,0x2a,0x05,0x03,0x40,0x0a,0x1c,0x07,0x1b,0x03,0x14,0x2f,0x24,0x01,0x24,0x0d,0xb9,0x04,0xff,0x00,0x14,0x00,0x2f,0xed,0x2f,0x5d,0x12,0x17,0x39,0x3f,0xed,0x2f,0x5d,0x33,0x2f,0x33,0x2f,0x10,0xfd,0xc4,0x11,0x39,0x2f,0x5d, +0x01,0x2f,0xed,0x39,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x2f,0xed,0x10,0xed,0x11,0x17,0x39,0x31,0x30,0x01,0x26,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x04,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x36, +0x36,0x07,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0x2b,0xad,0x53,0xa8,0xfe,0xac,0x30,0x4c,0x52,0x63,0x46,0x4f,0x7d,0x35,0x36,0x86,0x4b,0x49,0x6f,0x5d,0x54,0x5c,0x6d,0x48,0x20,0xc5,0xfe,0xe2,0xb8, +0x58,0x5d,0x58,0x02,0x89,0x06,0x74,0x68,0x1f,0x37,0x4f,0x77,0x52,0x2c,0x04,0x1f,0x3f,0x96,0x1e,0x2e,0x0f,0x69,0x06,0x14,0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0xfd,0xfe,0xef,0xd9,0x68,0xbe,0xa6,0x8b,0x35,0x08,0x0f,0x20,0x19,0x10,0x14,0x10,0x9d, +0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xbb,0x34,0x75,0x88,0x9f,0x5e,0x64,0xe7,0x8a,0x03,0x58,0x68,0x55,0xa7,0x30,0x56,0x74,0x44,0x0b,0x13,0x7a,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0xff,0xff,0xff,0xba, +0xfd,0x78,0x04,0x7c,0x03,0x0f,0x02,0x26,0x08,0xd0,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x2c,0x01,0x2c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0x78,0x04,0xad,0x03,0x0f,0x02,0x26,0x0e,0x2d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0x56,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x52,0x01,0x52, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x05,0x50,0x02,0x26,0x09,0x19,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x05,0x50,0x02,0x26,0x0e,0x31,0x00,0x00,0x01,0x07,0x0f,0x60,0x05,0x49,0xfd,0xdd, +0x00,0x0a,0xb4,0x01,0x2f,0x75,0x01,0x75,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x05,0x50,0x02,0x26,0x08,0xd4,0x00,0x00,0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x5f,0x01,0x5f,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x05,0x50,0x02,0x26,0x0e,0x32,0x00,0x00, +0x01,0x07,0x0f,0x60,0x02,0x9d,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x6a,0x01,0x6a,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9b,0xfd,0xff,0x08,0xa0,0x04,0xb8,0x02,0x26,0x09,0x19,0x00,0x00,0x00,0x07,0x0a,0x6e,0x05,0x46,0xfc,0xdc,0xff,0xff,0x00,0x9b,0xfd,0xff,0x09,0x5a,0x04,0xb8,0x02,0x26,0x0e,0x31,0x00,0x00,0x00,0x07,0x0a,0x6e, +0x05,0x46,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x05,0xf4,0x04,0xb8,0x02,0x26,0x08,0xd4,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0xff,0xba,0xff,0xf2,0x06,0xae,0x04,0xb8,0x02,0x26,0x0e,0x32,0x00,0x00,0x00,0x07,0x0a,0x6e,0x02,0xa4,0xfc,0xdc,0xff,0xff,0x00,0xab,0xff,0xea,0x05,0xf4,0x06,0xb3,0x02,0x26, +0x09,0x24,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xae,0x06,0xb3,0x02,0x26,0x0e,0x55,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0x73,0x06,0x03,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x4b,0x06,0xb3,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0xff,0xff,0xff,0xba, +0xff,0xf2,0x04,0x02,0x06,0xb3,0x02,0x26,0x0e,0x56,0x00,0x00,0x00,0x07,0x0f,0x51,0x00,0x39,0x06,0x03,0x00,0x01,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x00,0xb0,0x00,0x03,0x00,0x19,0xbc,0x00,0x00,0x05,0x0a,0x00,0x01,0x00,0x02,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x23,0x35,0x33,0x01, +0x5d,0xb9,0xb9,0x05,0xb5,0x00,0x00,0x02,0x00,0x03,0xff,0xfb,0x01,0xfe,0x00,0xb0,0x00,0x03,0x00,0x07,0x00,0x29,0xb9,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01,0x08,0x04,0xb8,0x05,0x0a,0xb2,0x05,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x31,0x30,0x17, +0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x00,0x02,0x00,0xa4,0xff,0xfb,0x01,0x5d,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x25,0xb1,0x04,0x00,0xb8,0x05,0x0a,0xb2,0x05,0x01,0x07,0xbb,0x05,0x02,0x00,0x04,0x00,0x02,0x05,0x02,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xfd,0xd6,0xed, +0x01,0x2f,0x33,0xed,0x32,0x31,0x30,0x05,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x5d,0xb9,0xb9,0xb9,0xb9,0x05,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x41,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb3,0x01,0x01, +0x0c,0x08,0xb8,0x05,0x02,0xb6,0x0b,0x0b,0x00,0x07,0x06,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x11,0x33,0x11,0x33,0x2f,0xed,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd6,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xa1,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x03,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x37,0xbf,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x00,0x05,0x0a,0xb2,0x01,0x04,0x00,0xb8,0x05,0x02,0xb3,0x06,0x03,0x03,0x0a,0xb8,0x05,0x02,0xb3,0x2f,0x08,0x01, +0x08,0x00,0x2f,0x5d,0xed,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0xd6,0xed,0xd4,0xed,0x31,0x30,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x01,0x13,0xb5,0xb5,0xb5,0xfe,0x33,0xb5,0x00,0x00,0x03,0xff,0x62,0xff,0xfb,0x02,0x9f,0x00,0xb0,0x00,0x03,0x00,0x07, +0x00,0x0b,0x00,0x35,0xbf,0x00,0x08,0x05,0x0a,0x00,0x09,0x00,0x04,0x05,0x0a,0x00,0x05,0x00,0x00,0x05,0x0a,0xb5,0x01,0x01,0x0c,0x0a,0x06,0x02,0xb8,0x05,0x02,0xb5,0x09,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0x32,0xed,0x32,0x32,0x11,0x01,0x33,0x2f,0xed,0xd4,0xed,0xd4,0xed,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35, +0x33,0x05,0x23,0x35,0x33,0x1b,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x03,0xff,0xfb,0x01,0xfe,0x01,0xc8,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x3f,0xb1,0x08,0x00,0xb8,0x05,0x0a,0xb5,0x09,0x01,0x01,0x10,0x0c,0x04,0xb8,0x05,0x0a,0xb3,0x0d,0x05,0x0d,0x08,0xb8, +0x05,0x02,0xb4,0x0e,0x0b,0x0b,0x06,0x02,0xb8,0x05,0x02,0xb4,0x05,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0x32,0xed,0x32,0x33,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x32,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xbc,0xb9,0xb9,0x01,0x42,0xb9,0xb9, +0xfe,0xbe,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xb5,0xb5,0xb5,0x63,0xb5,0xb5,0xb5,0x00,0x02,0xff,0xc6,0x00,0x00,0x02,0x2c,0x02,0x62,0x00,0x19,0x00,0x27,0x00,0x44,0xb2,0x27,0x27,0x06,0xb8,0x05,0x0d,0xb3,0x03,0x03,0x28,0x0f,0xb8,0x05,0x0e,0xb4,0x1f,0x06,0x14,0x05,0x0a,0xb8,0x05,0x01,0xb7,0x22,0x00,0x27,0x1a,0x1a,0x03,0x03, +0x00,0xb8,0x05,0x01,0xb4,0x2f,0x14,0x01,0x14,0x02,0x00,0x3f,0x5d,0xed,0x32,0x2f,0x33,0x11,0x33,0x10,0xd4,0xfd,0xc6,0x12,0x39,0x01,0x2f,0xed,0x11,0x33,0x2f,0xed,0x32,0x2f,0x31,0x30,0x27,0x16,0x16,0x17,0x11,0x33,0x11,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x25,0x32,0x3e,0x02,0x35, +0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x3a,0x17,0x3f,0x29,0x59,0x03,0x26,0x67,0x48,0x30,0x45,0x2c,0x15,0x27,0x45,0x5c,0x36,0x47,0x6c,0x53,0x3d,0x18,0x01,0x4f,0x35,0x47,0x2a,0x12,0x41,0x2e,0x23,0x3f,0x35,0x2a,0x0f,0x72,0x02,0x03,0x02,0x01,0xf7,0xfe,0xa5,0x01,0x3e,0x46,0x24,0x3d,0x50,0x2c,0x40,0x46,0x21,0x06,0x01,0x03,0x04, +0x03,0x5e,0x02,0x0e,0x1c,0x1a,0x3b,0x38,0x1f,0x33,0x43,0x24,0x00,0x02,0xff,0x97,0x06,0x7d,0x01,0xf0,0x07,0xe8,0x00,0x1b,0x00,0x29,0x00,0x2b,0xbf,0x00,0x0e,0x05,0x0d,0x00,0x21,0x00,0x09,0x04,0xfd,0x00,0x24,0x00,0x1c,0x04,0xfd,0xb3,0x13,0x27,0x13,0x03,0xb8,0x04,0xfd,0xb1,0x18,0x13,0x00,0x2f,0xdc,0xed,0x11,0x39,0x10,0xfd, +0xd6,0xed,0x01,0x2f,0xed,0x31,0x30,0x03,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x25,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x69,0x2f,0x4d,0x27,0x0c,0x15,0x0b,0x24,0x77,0x4d,0x27,0x3c,0x29,0x16,0x21,0x39,0x4b,0x2a,0x20, +0x3e,0x3a,0x38,0x19,0x16,0x39,0x23,0x01,0x57,0x1c,0x2b,0x1e,0x10,0x2c,0x1f,0x27,0x4e,0x20,0x1a,0x37,0x06,0xcd,0x20,0x21,0x02,0x03,0x70,0x6f,0x1b,0x2d,0x3a,0x20,0x29,0x49,0x37,0x20,0x10,0x14,0x10,0x13,0x1b,0x56,0x13,0x1e,0x25,0x13,0x22,0x27,0x46,0x53,0x0a,0x0f,0x00,0x01,0x00,0x00,0x04,0x82,0x03,0x4b,0x07,0x38,0x00,0x03, +0x00,0x11,0xb6,0x03,0x01,0x00,0x2f,0x02,0x01,0x02,0x00,0x2f,0x5d,0xcd,0x01,0x2f,0xcd,0x31,0x30,0x11,0x35,0x01,0x15,0x03,0x4b,0x04,0x82,0x94,0x02,0x22,0x94,0x00,0x00,0x01,0x00,0x89,0xfe,0x0a,0x01,0x93,0xff,0xfa,0x00,0x1c,0x00,0x17,0xb9,0x00,0x03,0x05,0x0b,0xb2,0x17,0x1c,0x12,0xb9,0x04,0xfe,0x00,0x08,0x00,0x2f,0xfd,0xc4, +0x01,0x2f,0xed,0x31,0x30,0x05,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x01,0x5d,0x36,0x3a,0x06,0x0c,0x19,0x0e,0x1b,0x29,0x1b,0x0e,0x0f,0x1d,0x2c,0x1d,0x27,0x39,0x24,0x11,0x14,0x2a,0x44,0x30,0x46,0x17,0x57,0x33,0x17,0x16,0x03,0x05,0x14,0x20, +0x29,0x16,0x16,0x2b,0x21,0x15,0x22,0x3a,0x4c,0x2b,0x2c,0x54,0x49,0x3e,0x16,0x00,0x00,0x02,0x00,0x60,0xfd,0xff,0x01,0xa1,0xff,0x40,0x00,0x0b,0x00,0x17,0x00,0x2d,0xbf,0x00,0x03,0x05,0x0e,0x00,0x0f,0x00,0x15,0x05,0x0e,0x00,0x09,0x00,0x06,0x05,0x00,0xb4,0x2f,0x0c,0x01,0x0c,0x12,0xb8,0x05,0x00,0xb3,0x2f,0x00,0x01,0x00,0x00, +0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x05,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x02,0x41,0x5e,0x5e,0x41,0x45,0x5d,0x5d,0x45,0x23,0x31,0x31,0x23,0x25,0x32,0x32,0xc0,0x5d,0x45,0x41,0x5e,0x5e,0x41,0x45,0x5d,0xf6, +0x31,0x23,0x25,0x32,0x32,0x25,0x23,0x31,0x00,0x01,0x00,0x1e,0x04,0x20,0x02,0x8e,0x04,0x8d,0x00,0x03,0x00,0x10,0xb9,0x00,0x00,0x04,0xfd,0xb3,0x2f,0x03,0x01,0x03,0x00,0x2f,0x5d,0xed,0x31,0x30,0x01,0x21,0x35,0x21,0x02,0x8e,0xfd,0x90,0x02,0x70,0x04,0x20,0x6d,0x00,0x00,0x02,0x00,0x3c,0xfd,0xff,0x01,0xc5,0xff,0x67,0x00,0x03, +0x00,0x07,0x00,0x21,0xbc,0x00,0x04,0x05,0x0b,0x00,0x05,0x00,0x00,0x05,0x0b,0xb2,0x01,0x04,0x00,0xb8,0x04,0xfe,0xb1,0x06,0x03,0x00,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x13,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0xb5,0x79,0x79,0x01,0x10,0x79,0x79,0xfd,0xff,0x01,0x68,0xfe,0x98,0x01,0x68,0x00,0x01,0x00,0x17, +0x05,0x44,0x01,0x77,0x07,0x6e,0x00,0x0f,0x00,0x17,0xb9,0x00,0x09,0x05,0x0d,0xb2,0x0a,0x09,0x01,0xb9,0x05,0x01,0x00,0x02,0x00,0x2f,0xed,0x2f,0x01,0x2f,0xed,0x31,0x30,0x13,0x21,0x15,0x23,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x17,0x01,0x60,0xee,0x09,0x0d,0x09,0x04,0x59,0x08,0x0f,0x16,0x07,0x6e,0x66,0x2c,0x4e,0x50, +0x58,0x35,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x00,0x01,0x00,0x16,0x05,0x44,0x01,0xfa,0x07,0x6e,0x00,0x33,0x00,0x44,0xb9,0x00,0x31,0x05,0x0d,0xb2,0x2c,0x18,0x1c,0xb8,0x05,0x0d,0xb3,0x07,0x2e,0x1d,0x0a,0xb8,0x05,0x0d,0x40,0x0b,0x04,0x1c,0x18,0x02,0x0f,0x24,0x2f,0x2f,0x07,0x29,0x02,0xb8,0x05,0x01,0xb3,0x0f,0x15,0x15,0x0f,0x00, +0x2f,0x33,0x2f,0x10,0xfd,0x32,0xc6,0x32,0x11,0x33,0x11,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0x39,0x39,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17, +0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x01,0x36,0x13,0x12,0x45,0x08,0x07,0x59,0x10,0x12,0x24,0x34,0x22,0x14,0x2d,0x19,0x0f,0x30,0x14,0x11,0x0f,0x01,0x06,0x06,0x59,0x07,0x0f,0x17,0x10,0x5c,0x09,0x0e,0x06,0x0f,0x0e,0x1f,0x1f,0x0f,0x58,0x0f,0x06,0x06,0xe6,0x04,0x47,0x12,0x24,0x0f,0x29,0x2b,0x20,0x39, +0x2c,0x19,0x0c,0x0e,0x0d,0x0c,0x03,0x01,0x2d,0x5f,0x42,0x6d,0x6a,0x3f,0x6b,0x68,0x6d,0x41,0x26,0x42,0x20,0x04,0x27,0x21,0x23,0x21,0x23,0x28,0x10,0x20,0x00,0x01,0x00,0x30,0x05,0x44,0x01,0xd9,0x07,0x73,0x00,0x25,0x00,0x2b,0xb9,0x00,0x19,0x05,0x0b,0xb2,0x0c,0x0c,0x12,0xb8,0x05,0x0d,0xb6,0x13,0x13,0x22,0x03,0x25,0x25,0x1c, +0xb8,0x05,0x01,0xb1,0x03,0x09,0x00,0x2f,0xc4,0xed,0x32,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x01,0xd9,0x1e,0x2e,0x0f,0x69,0x06,0x14, +0x19,0x20,0x12,0x11,0x0f,0x09,0x0a,0x09,0x59,0x0b,0x0d,0x0b,0x42,0x2e,0x1e,0x33,0x29,0x1e,0x09,0x02,0x0b,0x17,0x10,0x07,0x6e,0x30,0x7c,0x3f,0x18,0x31,0x27,0x19,0x15,0x10,0x0d,0x27,0x46,0x6b,0x51,0x6d,0x6a,0x54,0x74,0x50,0x33,0x13,0x30,0x37,0x14,0x21,0x2b,0x17,0x21,0x35,0x1c,0x00,0x00,0x01,0x00,0x9a,0xff,0xd2,0x06,0xae, +0x02,0xbd,0x00,0x42,0x00,0x4c,0xb9,0x00,0x14,0x05,0x0a,0xb2,0x2f,0x2f,0x0f,0xb8,0x05,0x0a,0xb3,0x34,0x34,0x44,0x27,0xbb,0x05,0x0a,0x00,0x20,0x00,0x0c,0x04,0xff,0xb4,0x2f,0x39,0x01,0x39,0x1b,0xb8,0x04,0xfb,0x40,0x09,0x2f,0x2c,0x01,0x2c,0x2f,0x24,0x01,0x24,0x00,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d, +0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x1e,0x05,0x06,0xae,0x16,0x41,0x63,0x4d,0x3a,0x2f,0x27,0x14,0x1a,0x2b,0x1d,0x1c,0x1f,0x12,0x15,0x12,0x29,0x48,0x60,0x6e,0x76,0x39,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0xa0,0x91,0x10,0x13,0x10,0x21,0x3a,0x4e,0x2c,0x3d,0x65,0x2a,0x12,0x1e,0x21,0x29,0x3a,0x50,0x99,0xa7,0x22, +0x3a,0x4c,0x53,0x55,0x25,0x33,0x2e,0x24,0x17,0x11,0x27,0x2d,0x36,0x20,0x2e,0x4a,0x39,0x28,0x1b,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x41,0x38,0x14,0x29,0x2b,0x31,0x1d,0x27,0x45,0x33,0x1e,0x41,0x4d,0x20,0x49,0x47,0x41,0x32,0x1d,0x00,0xff,0xff,0xff,0xa2,0x00,0x26,0x02,0xd4,0x06,0xbf, +0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x06,0x09,0x37,0x00,0x8f,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x49,0x00,0x26,0x02,0xd4,0x07,0x78,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x7e,0x00,0x8f,0xff,0xff,0x00,0x72,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, +0x09,0x7f,0x72,0x00,0x00,0x01,0x00,0x72,0x00,0x26,0x02,0xd4,0x05,0x58,0x00,0x03,0x00,0x0c,0xb4,0x02,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xcd,0x31,0x30,0x25,0x01,0x33,0x01,0x02,0x32,0xfe,0x40,0xa6,0x01,0xbc,0x26,0x05,0x32,0xfa,0xce,0xff,0xff,0xff,0x97,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06, +0x0f,0x58,0x00,0x8f,0xff,0xff,0xff,0xc2,0x00,0x26,0x02,0xd4,0x07,0x77,0x02,0x26,0x0f,0x65,0x00,0x00,0x01,0x07,0x09,0x77,0x00,0x00,0x08,0x0c,0x00,0x0a,0xb4,0x01,0x20,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x34,0xfd,0xfe,0x02,0xd4,0x05,0x58,0x02,0x26,0x0f,0x65,0x00,0x00,0x00,0x06,0x09,0x77,0x72,0x00,0xff,0xff, +0x00,0x3a,0x00,0x26,0x02,0xf8,0x05,0xe9,0x02,0x26,0x0f,0x65,0xc8,0x00,0x00,0x07,0x09,0x7e,0x01,0x56,0xfe,0x00,0xff,0xff,0x00,0x17,0x00,0x26,0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5e,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x04,0x01,0x04,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x16,0x00,0x26, +0x03,0x7f,0x06,0xf6,0x00,0x27,0x0f,0x65,0x00,0xab,0x00,0x00,0x01,0x06,0x0f,0x5f,0x00,0x88,0x00,0x0a,0xb4,0x01,0x2f,0x17,0x01,0x17,0x00,0x11,0x5d,0x35,0x00,0x01,0xff,0xc8,0xff,0xf2,0x05,0x49,0x03,0x0f,0x00,0x37,0x00,0x4b,0xb9,0x00,0x1a,0x05,0x0a,0xb2,0x17,0x23,0x0d,0xbb,0x05,0x0a,0x00,0x0a,0x00,0x00,0x05,0x0a,0xb3,0x30, +0x30,0x30,0x33,0xb8,0x04,0xff,0xb6,0x2f,0x34,0x01,0x34,0x23,0x12,0x05,0xbc,0x04,0xfb,0x00,0x28,0x05,0x03,0x00,0x1f,0x05,0x03,0xb4,0x18,0x2f,0x0b,0x01,0x0b,0x00,0x2f,0x5d,0xc6,0x3f,0x3f,0xed,0x32,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35, +0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x01,0x47,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e,0x26,0x40,0x2e,0x19,0x9c,0x39,0x5d,0x77,0x3f,0x5b,0x84,0x24, +0x04,0x1a,0x42,0x47,0x48,0x21,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x01,0x95,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x37,0x6c,0x85,0x4a,0x19,0x36,0x45,0x23,0x2f,0x1d,0x0c,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c, +0x09,0x08,0x00,0x01,0xff,0xc8,0xff,0xf2,0x06,0x03,0x03,0x0f,0x00,0x44,0x00,0x5c,0xb1,0x35,0x2a,0xb8,0x05,0x0a,0xb2,0x27,0x40,0x1d,0x41,0x09,0x05,0x0a,0x00,0x1a,0x00,0x10,0x05,0x0a,0x00,0x08,0x00,0x3a,0x05,0x03,0x00,0x30,0x05,0x03,0xb7,0x28,0x2f,0x1b,0x01,0x1b,0x08,0x08,0x0b,0xb8,0x04,0xff,0x40,0x0b,0x2f,0x0c,0x01,0x0c, +0x40,0x35,0x00,0x2f,0x22,0x22,0x15,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x32,0x11,0x33,0x11,0x39,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xc6,0x3f,0x3f,0x01,0x2f,0xed,0xd4,0xed,0x39,0xd4,0xed,0x39,0x31,0x30,0x05,0x22,0x2e,0x04,0x35,0x35,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x01,0xea,0x46,0x65,0x47,0x2c,0x18,0x09,0x3a,0x70,0x39,0x17,0x57,0xb6,0x5b,0x0b,0x24,0x44,0x39,0x24,0x43,0x33,0x1f,0x9c,0x0b,0x27,0x48,0x3e, +0x26,0x40,0x2e,0x19,0x9c,0x0c,0x27,0x49,0x3e,0x16,0x5d,0x70,0x1f,0x06,0x17,0x3a,0x42,0x47,0x24,0x2c,0x4f,0x42,0x34,0x12,0x04,0x1a,0x42,0x47,0x48,0x0e,0x21,0x37,0x48,0x4e,0x50,0x23,0x13,0x05,0x03,0x9c,0x09,0x08,0x64,0x41,0x5f,0x3e,0x1e,0x10,0x2a,0x48,0x38,0x01,0x0b,0xc6,0x43,0x60,0x3e,0x1e,0x0f,0x2a,0x48,0x39,0x01,0xbc, +0xfe,0x8f,0x43,0x62,0x41,0x1f,0xa7,0x36,0x39,0x21,0x2a,0x1a,0x0a,0x0d,0x1c,0x2f,0x23,0x23,0x2f,0x1d,0x0c,0x00,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07, +0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x04,0x07,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x04,0x07,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x50,0x01,0xf9,0x03,0x57,0x00,0x07, +0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x03,0x0f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x03,0x0f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x54,0x01,0xf9,0xfd,0xce,0x00,0x07,0x0f,0x53,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xfd,0xc9,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x54,0x01,0xf9,0xfd,0xce,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x53,0x01,0xf9,0x03,0x57,0x00,0x07,0x0f,0x50,0x01,0xf9,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f, +0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x1f,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff, +0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x1f,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0xf9,0x03,0x57,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x07,0x0d,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0xf9,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0xf9,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x3d,0x01,0x3d,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x07,0x0d,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x27,0x0f,0x57,0x01,0xf9,0x04,0xab,0x01,0x07,0x0f,0x51,0x01,0xf9,0x03,0x57,0x00,0x0c,0xb5,0x04,0x03,0x20,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x05,0x49,0x05,0x50,0x02,0x26,0x0f,0x6c, +0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x05,0x50,0x02,0x26,0x0f,0x6d,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xf2,0xfd,0xdd,0x00,0x0a,0xb4,0x01,0x2f,0x54,0x01,0x54,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xc8,0xff,0xf2, +0x05,0x49,0x04,0xb8,0x02,0x26,0x0f,0x6c,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0xff,0xff,0xff,0xc8,0xff,0xf2,0x06,0x03,0x04,0xb8,0x02,0x26,0x0f,0x6d,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0xf9,0xfc,0xdc,0x00,0x02,0xff,0xc8,0xff,0xea,0x06,0xa0,0x03,0x3c,0x00,0x30,0x00,0x42,0x00,0x44,0xb9,0x00,0x0c,0x05,0x0a,0xb7, +0x36,0x36,0x44,0x40,0x00,0x20,0x20,0x23,0xb8,0x04,0xff,0x40,0x09,0x2f,0x24,0x01,0x24,0x40,0x40,0x31,0x31,0x00,0xbc,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x3b,0x04,0xfb,0xb3,0x2f,0x07,0x01,0x07,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x32,0x11,0x33,0x2f,0x2f,0x5d,0xed,0x32,0x2f,0x01,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x3e, +0x05,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x16,0x16,0x01,0xd4,0x18,0x4c,0x67,0x81,0x9a,0xb3,0x66,0x79,0xae,0x70,0x36,0x2d,0x52,0x71, +0x88,0x9a,0x52,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x02,0xa7,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9b,0x41,0x96,0x95,0x8b,0x6a,0x40,0x4b,0x80,0xab,0x60,0x5d,0x80,0x55, +0x2f,0x16,0x05,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x0a,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x00,0x02,0xff,0xc8,0xff,0xea,0x07,0x59,0x03,0x3c,0x00,0x39,0x00,0x4b,0x00,0x50,0xb9,0x00,0x05,0x05, +0x0a,0x40,0x09,0x47,0x47,0x0b,0x3f,0x33,0x0b,0x22,0x22,0x25,0xb8,0x04,0xff,0xb4,0x2f,0x26,0x01,0x26,0x15,0xb8,0x05,0x03,0xb6,0x42,0x3f,0x3f,0x33,0x33,0x10,0x0a,0xbc,0x04,0xfb,0x00,0x0b,0x05,0x03,0x00,0x3a,0x04,0xfb,0xb3,0x2f,0x00,0x01,0x00,0x00,0x2f,0x5d,0xed,0x3f,0xed,0x39,0x32,0x2f,0x33,0x2f,0x33,0x3f,0x2f,0x5d,0xed, +0x32,0x2f,0x01,0x2f,0x2f,0xcd,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x2e,0x03,0x27,0x26,0x26,0x27,0x26,0x26,0x23,0x37,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x3e,0x05,0x17,0x22,0x0e,0x02,0x07,0x16,0x16,0x33,0x32, +0x3e,0x02,0x35,0x34,0x2e,0x02,0x04,0xd3,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x70,0x89,0x9d,0x54,0xb3,0xff,0x00,0xaf,0x68,0x1c,0x2e,0x3b,0x24,0x13,0x07,0x05,0x04,0x04,0x3c,0x68,0x36,0x17,0x42,0xae,0x5b,0x06,0x09,0x07,0x06,0x04,0x03,0x0d,0x1e,0x33,0x29,0x18,0x4c,0x67,0x81,0x9a, +0xb3,0x4c,0x6e,0xbc,0x97,0x6e,0x1f,0x5c,0xee,0x9d,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x03,0x3c,0x49,0x7d,0xa4,0x5b,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a,0x06,0x01,0x06,0x0d,0x0c,0x14,0x35,0x3f,0x47,0x27,0x1a,0x31,0x1c,0x03,0x04,0x9c,0x06,0x07,0x21,0x3a,0x37,0x37,0x1e,0x1a,0x2c,0x20,0x13,0x02,0x41,0x96,0x95, +0x8b,0x6a,0x40,0xa9,0x5c,0x92,0xb5,0x5a,0x02,0x01,0x0a,0x27,0x4f,0x45,0x56,0x78,0x4b,0x22,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x73, +0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x03,0x3c,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x03,0x3c,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x51,0x02,0xdb,0xfe,0xab,0xff,0xff,0xff,0xc8,0xff,0xea,0x06,0xa0,0x05,0xca,0x02,0x26,0x0f,0x82, +0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xff,0xea,0x07,0x59,0x05,0xca,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x07,0x0f,0x53,0x02,0x73,0x04,0x02,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x06,0xa0,0x04,0xb2,0x02,0x26,0x0f,0x82,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5, +0xfe,0xab,0xff,0xff,0xff,0xc8,0xfe,0xa6,0x07,0x59,0x04,0xb2,0x02,0x26,0x0f,0x83,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x73,0x04,0x02,0x00,0x07,0x0f,0x50,0x02,0xe5,0xfe,0xab,0x00,0x01,0xfd,0xa6,0xff,0xea,0x01,0x47,0x05,0xec,0x00,0x15,0x00,0x1a,0xbf,0x00,0x0b,0x05,0x0a,0x00,0x08,0x00,0x03,0x04,0xfb,0x00,0x12,0x05,0x03,0x00, +0x0a,0x00,0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x23,0x3f,0x5a,0x6e,0x81,0x46,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0x60,0x56,0x77,0x4f,0x2c,0x15,0x05, +0x0a,0x0e,0x00,0x01,0xfd,0xa6,0xff,0xea,0x02,0x01,0x05,0xec,0x00,0x1e,0x00,0x29,0xb1,0x16,0x0b,0xb8,0x05,0x0a,0xb5,0x08,0x16,0x1b,0x10,0x10,0x03,0xbd,0x04,0xfb,0x00,0x1b,0x05,0x03,0x00,0x11,0x05,0x03,0x00,0x0a,0x00,0x2f,0x3f,0x3f,0xed,0x32,0x2f,0x11,0x39,0x01,0x2f,0xed,0x39,0x31,0x30,0x25,0x16,0x16,0x33,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0xfd,0xa6,0x7f,0xe1,0x6d,0x4f,0x75,0x4e,0x26,0x9c,0x0f,0x2a,0x48,0x39,0x16,0x5a,0x6d,0x1e,0x04,0x1d,0x56,0x6d,0x82,0x4a,0x61,0xcb,0x64,0xa8,0x0f,0x09,0x06,0x25,0x4f,0x49,0x04,0x99,0xfb,0xac,0x47,0x62,0x3c,0x1a,0xa7,0x3b, +0x3c,0x2d,0x33,0x19,0x06,0x0a,0x0e,0x00,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x1a,0x08,0x0e,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x06,0x0a,0x6d,0xf2,0x32,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0x4f,0x07,0x67,0x02,0x26, +0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x07,0x67,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x50,0xff,0xf2,0x06,0xb7,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xf0,0x08,0x7f,0x02,0x26,0x0f,0x8c,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03, +0x02,0x01,0x20,0x18,0x01,0x18,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xff,0xea,0x02,0x01,0x08,0x7f,0x02,0x26,0x0f,0x8d,0x00,0x00,0x01,0x07,0x0f,0x53,0xff,0xf2,0x06,0xb7,0x00,0x0e,0xb6,0x03,0x02,0x01,0x20,0x29,0x01,0x29,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x01,0xf0,0x05,0xec,0x02,0x26, +0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xfd,0xc9,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x54,0xff,0xf2,0xfd,0xce,0xff,0xff,0xfd,0xa6,0xff,0xea,0x01,0xfb,0x05,0xec,0x02,0x26,0x0f,0x8c,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0xff,0xff,0xfd,0xa6, +0xff,0xea,0x02,0x01,0x05,0xec,0x02,0x26,0x0f,0x8d,0x00,0x00,0x00,0x07,0x0f,0x5c,0xff,0x6d,0x00,0x00,0x00,0x01,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x00,0x22,0x00,0x2c,0xbc,0x00,0x0b,0x05,0x0a,0x00,0x1b,0x00,0x16,0x04,0xfb,0x40,0x09,0x1f,0x10,0x2f,0x10,0x02,0x10,0x08,0x08,0x06,0xb8,0x04,0xff,0xb3,0x2f,0x00,0x01,0x00, +0x00,0x2f,0x5d,0xed,0x32,0x2f,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x3e,0x03,0x03,0x35,0x1d,0x20,0x28,0x2c,0x3c,0x30,0x11,0x14,0x44,0x79,0xa7,0x62,0x33,0x6c,0x39,0x7c,0x59, +0x55,0x74,0x45,0x1e,0x2d,0x20,0x2a,0x5b,0x57,0x4e,0x02,0x0a,0x2f,0x1d,0x1e,0x32,0x03,0x52,0x9c,0x46,0x8a,0xd4,0x90,0x4a,0x16,0x17,0xa5,0x27,0x3d,0x6c,0x92,0x56,0x76,0xda,0x67,0x06,0x09,0x06,0x03,0x00,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57, +0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0xb9,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x57,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6d,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00, +0x00,0x07,0x0f,0x5b,0x01,0xc9,0x00,0x00,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x50,0x02,0x2b,0xfe,0x00,0xff,0xff,0x00,0x39,0xfd,0xe1,0x04,0x6a,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x01,0x07,0x0a,0x6d,0x02,0x42,0xf7,0x65,0x00,0x0a,0xb4,0x01,0x2f,0x27,0x01,0x27, +0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x39,0xfd,0xfb,0x03,0x88,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0x2b,0xfe,0x00,0x00,0x07,0x0f,0x50,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0x07,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39, +0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x56,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xaf,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0a,0x6e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x87,0x02,0x0a,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x5c, +0x00,0xf9,0xfc,0x4f,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x52,0x01,0x0c,0x03,0x57,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x04,0xbc,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x09,0x7e,0x01,0x0c,0xfc,0xd3,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x07,0x0d,0x02,0x26, +0x0f,0x98,0x00,0x00,0x00,0x27,0x0f,0x51,0x01,0x0c,0x03,0x57,0x01,0x07,0x0f,0x57,0x01,0x0c,0x04,0xab,0x00,0x0c,0xb5,0x02,0x01,0x20,0x24,0x01,0x24,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x82,0xff,0x02,0x05,0x74,0x04,0x21,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x09,0x7e,0x00,0x39,0xfc,0x38,0x00,0x0a,0xb4,0x01,0x2f,0x4d, +0x01,0x4d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0a,0x6e,0x02,0x01,0xfc,0x50,0x00,0x0a,0xb4,0x01,0x2f,0x3d,0x01,0x3d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x03,0xb9,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x51,0x01,0xdc, +0x03,0x09,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xd1,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0xdc,0x03,0x09,0x00,0x01,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x00,0x36,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2c,0x2c,0x38,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00, +0x04,0xff,0xb4,0x2f,0x31,0x01,0x31,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06, +0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0x43,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x01, +0x6e,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23,0x2f,0x1d,0x1e,0x32,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00, +0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0xdd,0x05,0x3e,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x09,0x7e,0x04,0x3b,0xfd,0x55,0x00,0x01,0x00,0x1e,0xff,0x02,0x06,0x1f,0x02,0x0a,0x00,0x38,0x00,0x58,0xb9,0x00,0x1d,0x05,0x0a,0xb5,0x2d,0x2d,0x16,0x0b,0x05,0x32,0xb8,0x05,0x0a,0xb3,0x16,0x16, +0x3a,0x0e,0xb8,0x05,0x0a,0x40,0x0d,0x05,0x08,0x08,0x05,0x09,0x0a,0x0a,0x0b,0x0b,0x22,0x08,0x08,0x28,0xb8,0x04,0xff,0xb4,0x2f,0x22,0x01,0x22,0x00,0xb8,0x04,0xfb,0xb3,0x2f,0x13,0x01,0x13,0x00,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x11,0x39, +0x11,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x35,0x25,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x03,0x5c,0x98,0xcc,0x7d,0x35,0x04,0x04,0xfe,0xd0,0x01,0xe3, +0x0e,0x12,0x24,0x5d,0xa2,0x7e,0xbc,0xb9,0x10,0x18,0x1b,0x18,0x10,0x29,0x54,0x81,0x58,0x1d,0x20,0x28,0x2c,0x3b,0x43,0x21,0x08,0x22,0x29,0x22,0x2e,0x51,0x6e,0x7d,0x88,0xfe,0x4b,0x81,0xad,0x63,0x1f,0x49,0x23,0x39,0x72,0x5f,0x49,0x79,0x3f,0x4d,0x7d,0x5a,0x31,0x48,0x3d,0x13,0x1d,0x1b,0x1e,0x26,0x33,0x23,0x37,0x5b,0x40,0x23, +0x2f,0x1d,0x1e,0x32,0x13,0x1b,0x1e,0x0b,0x22,0x2a,0x2c,0x3b,0x33,0x39,0x5a,0x43,0x2f,0x1d,0x0d,0x00,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0x2c,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0a,0x6d,0x02,0x01,0xfc,0x50,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x00,0x07,0x0f,0x54, +0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x04,0xdf,0x02,0x26,0x0f,0xab,0x00,0x00,0x01,0x07,0x0f,0x5f, +0x00,0xa1,0xfd,0x71,0x00,0x0e,0xb7,0x01,0x2f,0x37,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0x78,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00,0x01,0x07,0x0f,0x60,0x01,0xc8,0xf8,0x34,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0x00,0x01,0x00,0x9a,0xff,0xd2,0x05,0x74, +0x02,0xbd,0x00,0x32,0x00,0x41,0xb9,0x00,0x0a,0x05,0x0a,0xb2,0x25,0x25,0x05,0xb8,0x05,0x0a,0xb3,0x2a,0x2a,0x34,0x1d,0xbb,0x05,0x0a,0x00,0x16,0x00,0x00,0x04,0xff,0xb4,0x2f,0x2d,0x01,0x2d,0x11,0xb8,0x04,0xfb,0xb7,0x2f,0x22,0x01,0x22,0x2f,0x1a,0x01,0x1a,0x00,0x2f,0x5d,0x2f,0x5d,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x12,0x39, +0x2f,0xed,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x20,0x38,0x40,0x1f,0x07,0x0c,0x0f,0x0d,0x29,0x47,0x60,0x70,0x7b, +0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x20,0x5b,0xa2,0x83,0xa9,0x96,0x0e,0x12,0x0e,0xae,0xa1,0x1d,0x20,0x28,0x01,0x6e,0x0a,0x10,0x12,0x07,0x0c,0x15,0x19,0x20,0x17,0x2d,0x48,0x37,0x27,0x19,0x0c,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6e,0x40,0x4a,0x7c,0x5b,0x33,0x30,0x29,0x0e,0x1a,0x1c,0x21,0x17,0x59,0x61, +0x2f,0x1d,0x1e,0x32,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f,0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32, +0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x04,0xad,0xfd,0xf2,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27,0x02,0x09,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10, +0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0x00,0x01,0x00,0x72,0xfe,0x28,0x06,0xe5,0x00,0x99,0x00,0x25,0x00,0x23,0xbc,0x00,0x06,0x05,0x0a,0x00,0x1d,0x00,0x0b,0x04,0xfb,0xb4,0x2f,0x16,0x01,0x16,0x24,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0xed,0x01,0x2f, +0xed,0x31,0x30,0x05,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e,0x04,0x33,0x21,0x06,0xae,0xfb,0xf1,0x43,0x8e,0x75,0x4b,0x45,0x93,0xe5,0xa1,0x7b,0xf4,0xe5,0xcf,0x56,0x72,0xf9,0xf0,0xda,0x54,0x93,0xe1,0xa6,0x70,0x43,0x1d,0x3d,0x63,0x7c,0x7d,0x72,0x27, +0x04,0x0a,0x0e,0x04,0x19,0x37,0x32,0x2e,0x3c,0x23,0x0e,0x07,0x0c,0x10,0x09,0xa5,0x0c,0x12,0x0c,0x06,0x12,0x24,0x35,0x45,0x55,0x32,0x4a,0x69,0x45,0x28,0x15,0x05,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x3d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5, +0x03,0x3d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x00,0x07,0x09,0x7e,0x00,0xab,0xfb,0x54,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26, +0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5e,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x26,0x01,0x26,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72,0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb5,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x72, +0xfe,0x28,0x06,0xe5,0x03,0x6d,0x02,0x26,0x0f,0xb6,0x00,0x00,0x01,0x07,0x0f,0x5f,0x00,0xab,0xfb,0xff,0x00,0x0a,0xb4,0x01,0x2f,0x37,0x01,0x37,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x05,0x74,0x02,0x0a,0x02,0x06,0x0f,0xab,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xc4,0x05,0x74,0x02,0xbd,0x02,0x26,0x0f,0xb4,0x00,0x00, +0x00,0x07,0x0f,0x52,0x01,0xc8,0xfd,0xc9,0xff,0xff,0x00,0x9a,0xfe,0x0e,0x05,0x74,0x02,0x0a,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x07,0x0f,0x5b,0x02,0x01,0x00,0x0f,0x00,0x01,0xff,0xf1,0xff,0xf2,0x01,0x47,0x05,0x7e,0x00,0x0d,0x00,0x1a,0xbf,0x00,0x08,0x05,0x0a,0x00,0x05,0x00,0x00,0x04,0xfb,0x00,0x0d,0x05,0x03,0x00,0x07,0x00, +0x2f,0x3f,0xed,0x01,0x2f,0xed,0x31,0x30,0x27,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x09,0x25,0x42,0x31,0x1c,0x9c,0x3c,0x61,0x7b,0x3e,0x99,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfb,0xce,0x65,0x86,0x4f,0x20,0x00,0x00,0x01,0xff,0xea,0xff,0xf2,0x02,0x24,0x04,0xe8,0x00,0x1c,0x00,0x22,0xb9,0x00,0x00,0x05,0x0a,0xb5, +0x1a,0x10,0x0d,0x1c,0x15,0x05,0xbb,0x04,0xfb,0x00,0x14,0x00,0x0d,0x05,0x03,0x00,0x3f,0x33,0xed,0x32,0x2f,0x12,0x39,0x01,0x2f,0xed,0x31,0x30,0x01,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x47,0x0c,0x26,0x46,0x39,0x16,0x16,0x06,0x0d, +0x13,0x0c,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x0a,0x1c,0x41,0x36,0x24,0x9c,0x01,0x8c,0x3b,0x5a,0x3e,0x20,0x31,0x1f,0x10,0x1f,0x19,0x0f,0x40,0x3b,0x3f,0x3c,0xa7,0x13,0x2c,0x47,0x34,0x03,0x95,0x00,0x02,0x00,0xa1,0xff,0xf2,0x04,0x25,0x03,0xd7,0x00,0x21,0x00,0x2f,0x00,0x48,0xb9,0x00,0x15,0x05,0x0a,0xb5,0x12,0x05,0x2a,0x2a, +0x31,0x22,0xbb,0x05,0x0a,0x00,0x0d,0x00,0x2b,0x04,0xfc,0xb2,0x12,0x14,0x2a,0xb8,0x04,0xfc,0x40,0x0a,0x15,0x14,0x05,0x05,0x00,0x2f,0x14,0x01,0x14,0x1a,0xba,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0x5d,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xdd,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x31,0x30,0x05,0x22, +0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x03,0xec,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x17,0x18,0x07, +0x0e,0x16,0xfd,0x3d,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x0e,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x31,0x1e,0x10,0x20,0x19,0x0f,0x01,0xea,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0xff,0xff,0x00,0x39,0xfd,0xff, +0x03,0x72,0x05,0x1f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07,0x0f,0x53,0x01,0x0c,0x03,0x57,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0x77,0x05,0xb2,0x00,0x23,0x00,0x65,0x40,0x38,0x82,0x16,0x01,0x76,0x0a,0x01,0x63,0x09,0x01,0x6a,0x07,0x7a,0x07,0x02,0x1a,0x1d,0x1f,0x18,0x1b,0x7e,0x01,0x00,0x03,0x22,0x05,0x01,0x01,0x25,0x0e,0x0c, +0x7e,0x0f,0x11,0x0e,0x0f,0x1f,0x22,0x91,0x01,0x1c,0x02,0x05,0x18,0x91,0x1b,0x02,0x0f,0x02,0x0f,0x02,0x20,0x12,0x08,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x39,0x2f,0x2f,0x10,0xc4,0xfd,0xc4,0x10,0xdd,0xc4,0xfd,0xc4,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xc4,0xc4,0xde,0xc4,0x10,0xfd,0xc4,0xc4,0xde,0xc4,0x31, +0x30,0x5d,0x5d,0x5d,0x5d,0x01,0x33,0x35,0x23,0x35,0x33,0x35,0x10,0x21,0x22,0x07,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x02,0x52,0xbe,0xbe,0xbe,0xff,0x00,0x8a,0x44,0x36,0x22,0x96,0x34,0x66,0x71,0xd5,0x01,0xa8,0xbf,0xbf,0xbf,0xbf,0xa8, +0xbe,0x02,0x33,0x6e,0x84,0xbb,0x01,0x48,0x6c,0x56,0x83,0x64,0x4e,0x46,0x6a,0x8e,0xc9,0x7c,0x8a,0xfe,0x34,0xc1,0x84,0x6e,0x84,0xfe,0x51,0x01,0xaf,0x00,0x00,0x01,0x00,0x65,0xff,0xe8,0x04,0xb6,0x05,0xb2,0x00,0x31,0x00,0xed,0x40,0xa0,0x6a,0x31,0x7a,0x31,0x8a,0x31,0x03,0x7a,0x30,0x01,0x68,0x30,0x01,0x08,0x2c,0x01,0x8c,0x2b, +0x01,0x6b,0x2b,0x7b,0x2b,0x02,0x56,0x24,0x01,0x56,0x23,0x01,0x37,0x23,0x01,0x57,0x20,0x01,0x88,0x19,0x01,0x49,0x19,0x01,0x8b,0x18,0x01,0x4a,0x18,0x01,0x86,0x17,0x01,0x77,0x17,0x01,0x83,0x16,0x93,0x16,0x02,0x61,0x16,0x71,0x16,0x02,0x07,0x16,0x01,0x85,0x13,0x95,0x13,0x02,0x76,0x13,0x01,0x07,0x13,0x01,0x95,0x12,0x01,0x86, +0x12,0x01,0x65,0x12,0x75,0x12,0x02,0x76,0x01,0x01,0x65,0x01,0x01,0x28,0x2a,0x7d,0x27,0x25,0x25,0x08,0x1b,0x1f,0x17,0x7d,0x04,0x00,0x00,0x08,0x01,0x08,0x08,0x33,0x1f,0x7d,0x00,0x0e,0x0c,0x7d,0x0f,0x11,0x11,0x0f,0x00,0x01,0x00,0x00,0x28,0x10,0x28,0x02,0x28,0x28,0x1b,0x21,0x0f,0x0f,0x04,0x0a,0x25,0x04,0x01,0x04,0x15,0x21, +0x91,0x3a,0x1b,0x01,0x29,0x1b,0x01,0x1b,0x2e,0x13,0x0a,0x91,0x15,0x04,0x00,0x3f,0xed,0x3f,0x39,0x5d,0x5d,0xed,0x11,0x39,0x5d,0x11,0x12,0x39,0x2f,0x11,0x12,0x39,0x2f,0x5d,0x01,0x2f,0x5d,0x33,0x2f,0x33,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x5d,0x12,0x39,0xed,0x11,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30,0x00,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x36,0x37,0x36,0x37,0x36,0x35,0x34,0x21,0x20,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x37,0x36,0x33,0x20,0x11,0x14,0x07,0x06,0x07,0x06,0x07,0x06,0x15,0x10,0x21,0x32,0x37,0x36,0x35,0x34, +0x27,0x33,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x65,0xa9,0x73,0xee,0xaa,0x48,0x80,0xfe,0xb8,0xfe,0xbe,0x08,0xae,0x0a,0xa1,0x84,0xcb,0x01,0xfa,0xaf,0x70,0xf5,0xa5,0x49,0x7a,0x01,0x71,0x9c,0x62,0x81,0x12,0xb4,0x0f,0xb3,0x93,0xe8,0xec,0x8c,0xab,0x01,0x85,0xcc,0x6b,0x48,0x2b,0x1e,0x26,0x42,0x85,0xe0,0xd2,0x2b,0x45, +0x4b,0x25,0xbd,0x5f,0x4e,0xfe,0x88,0xcc,0x68,0x43,0x2e,0x1f,0x28,0x44,0x85,0xfe,0xfa,0x32,0x42,0x8e,0x42,0x43,0x40,0x43,0xd9,0x6b,0x57,0x56,0x6a,0x00,0x00,0x01,0x00,0x21,0x00,0x00,0x04,0x64,0x05,0x9a,0x00,0x09,0x00,0x95,0x40,0x0d,0x7c,0x06,0x01,0x74,0x01,0x01,0x01,0x20,0x0b,0x0d,0x01,0x4c,0x06,0xb8,0xff,0xe0,0x40,0x29, +0x0b,0x0d,0x01,0x4c,0x15,0x00,0x25,0x00,0x02,0x03,0x00,0x01,0xe3,0x00,0xf3,0x00,0x02,0x1a,0x05,0x2a,0x05,0x02,0x0c,0x05,0x01,0xec,0x05,0xfc,0x05,0x02,0x05,0x01,0x91,0x04,0x12,0x00,0x07,0x91,0x08,0x03,0x06,0xb8,0xff,0xf8,0x40,0x09,0x0d,0x06,0x4d,0x01,0x08,0x0d,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x09,0x0c,0x06,0x4d,0x01, +0x0c,0x0c,0x06,0x4d,0x06,0xb8,0xff,0xf4,0x40,0x14,0x0b,0x06,0x4d,0x01,0x0c,0x0b,0x06,0x4d,0x03,0x07,0x07,0x01,0x06,0x03,0x04,0x04,0x00,0x00,0x0b,0x04,0x2f,0x12,0x39,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2b,0x2b,0x2b,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x39,0x3f,0xed,0x39,0x31,0x30,0x5d,0x71,0x71,0x5d,0x71,0x71,0x01,0x2b,0x2b,0x5d, +0x5d,0x01,0x01,0x21,0x15,0x21,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xb8,0x03,0x34,0xfb,0xd1,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x26,0x98,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x5f,0xff,0xe8,0x03,0xf0,0x06,0x02,0x00,0x2f,0x00,0xc5,0x40,0x82,0x7a,0x2f,0x01,0x79,0x2e,0x01,0x08,0x2e,0x18,0x2e,0x02,0x86,0x27,0x01, +0x24,0x27,0x01,0x26,0x26,0x46,0x26,0x02,0x85,0x23,0x01,0x56,0x23,0x01,0x79,0x21,0x01,0x79,0x1e,0x01,0x87,0x1a,0x97,0x1a,0x02,0x96,0x19,0x01,0x85,0x19,0x01,0x07,0x19,0x01,0x95,0x15,0x01,0x06,0x15,0x86,0x15,0x02,0x86,0x14,0x01,0x79,0x12,0x01,0x3b,0x12,0x01,0x38,0x11,0x01,0x9a,0x0e,0x01,0x65,0x0b,0x01,0x57,0x0b,0x01,0x57, +0x07,0x67,0x07,0x02,0x25,0x22,0x28,0x83,0x10,0x0d,0x0d,0x13,0x31,0x1b,0x84,0x1c,0x22,0x83,0x13,0x05,0x84,0x00,0x00,0x13,0x03,0x02,0x02,0x09,0x10,0x98,0x10,0x01,0x6a,0x10,0x01,0x10,0x20,0x2c,0x1b,0x1b,0x25,0x20,0x25,0x17,0x09,0x95,0x2c,0x16,0x20,0x95,0x17,0x01,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x11,0x12,0x39,0x2f,0x11, +0x12,0x39,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x2f,0xed,0x11,0x12,0x39,0x2f,0x39,0xed,0x11,0x39,0x31,0x30,0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x13,0x34,0x37,0x17,0x06,0x15,0x14,0x17,0x16,0x33,0x32, +0x37,0x36,0x35,0x34,0x27,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x16,0x15,0x23,0x34,0x27,0x26,0x23,0x20,0x15,0x14,0x17,0x16,0x17,0x16,0x15,0x14,0x07,0x06,0x23,0x22,0x27,0x26,0x5f,0x28,0x9a,0x1c,0x55,0x4e,0x68,0x88,0x55,0x5b,0xbc,0xae,0xae,0xbc,0x7c,0x77,0xba,0xab,0x73,0x7f,0xa6,0x4b,0x44,0x68,0xfe,0xfb,0xbc, +0xae,0xae,0xbc,0x8e,0x85,0xcf,0xaa,0x7d,0x88,0x01,0x5c,0x5e,0x51,0x37,0x33,0x49,0x68,0x42,0x3c,0x4c,0x50,0x95,0xaa,0x57,0x4b,0x4b,0x72,0xe5,0xae,0x63,0x60,0x57,0x61,0xa8,0x68,0x39,0x34,0xfb,0x8a,0x58,0x4e,0x4d,0x76,0xd7,0xdc,0x7b,0x73,0x61,0x6a,0x00,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0x52,0x04,0x54,0x00,0x35,0x00,0x49, +0x00,0x8c,0x40,0x5b,0x49,0x47,0x59,0x47,0x69,0x47,0x03,0x65,0x43,0x01,0x46,0x43,0x56,0x43,0x02,0x64,0x3d,0x01,0x9c,0x09,0x01,0x7a,0x08,0x01,0x8f,0x0a,0x9f,0x0a,0x02,0x7e,0x0a,0x01,0x6f,0x0a,0x01,0x87,0x3b,0x01,0x92,0x2c,0x01,0x81,0x2c,0x01,0x63,0x2c,0x73,0x2c,0x02,0x2c,0x1b,0x3b,0x0a,0x04,0x05,0x24,0x24,0x31,0x83,0x30, +0x36,0x01,0x36,0x36,0x4b,0x40,0x83,0x05,0x12,0x12,0x05,0x13,0x18,0x95,0x12,0x0a,0x0d,0x0d,0x3b,0x2c,0x24,0x29,0x95,0x23,0x1b,0x1e,0x10,0x45,0x95,0x00,0x16,0x00,0x3f,0xed,0x3f,0x33,0x33,0xed,0x32,0x32,0x32,0x32,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0x5d,0xed,0x32,0x2f,0x11,0x17,0x39,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x31,0x30,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x07,0x35,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x15,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x13, +0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x4c,0x6c,0xad,0x7b,0x42,0x22,0x4f,0x81,0x5f,0x30,0x69,0x3b,0x33,0x55,0x1f,0x24,0x1e,0x1b,0x22,0x1d,0x51,0x33,0x89,0xda,0x57,0x34,0x72,0x40,0x30,0x4b,0x1a,0x1f,0x16,0x1a,0x21,0x1c,0x4e,0x30,0x0c,0x16,0x0b,0x39,0x50,0x32,0x17,0x42,0x7b,0xad,0xc2, +0x1d,0x3d,0x5d,0x3f,0x59,0x86,0x5a,0x2d,0x26,0x4b,0x72,0x4b,0x4b,0x72,0x4b,0x26,0x18,0x40,0x7a,0xae,0x6e,0x33,0x84,0x89,0x81,0x30,0x0d,0x0e,0x09,0x05,0x06,0x07,0x97,0x03,0x04,0x02,0x05,0x31,0x2a,0x0b,0x0b,0x03,0x02,0x03,0x02,0x92,0x05,0x04,0x03,0x06,0x01,0x01,0x35,0x77,0x77,0x72,0x30,0x6e,0xae,0x7a,0x40,0x01,0xd6,0x32, +0x70,0x6e,0x66,0x29,0x1e,0x61,0x72,0x78,0x36,0x4c,0x7b,0x56,0x2f,0x2f,0x56,0x7b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x17,0x00,0x83,0x40,0x1f,0x19,0x40,0x0b,0x02,0x4d,0x12,0x95,0x00,0x16,0x0c,0x95,0x06,0x10,0x09,0x06,0x0d,0x06,0x4d,0x09,0x06,0x0c,0x06,0x4d,0x09,0x06,0x0b,0x06,0x4d,0x09,0x83, +0x15,0xb8,0xff,0xf0,0xb3,0x0d,0x06,0x4d,0x15,0xb8,0xff,0xf0,0x40,0x09,0x0c,0x06,0x4d,0x20,0x15,0x30,0x15,0x02,0x15,0xb8,0xff,0xde,0x40,0x2a,0x0b,0x06,0x4d,0x15,0x15,0x19,0x0f,0x08,0x0d,0x06,0x4d,0x0f,0x0a,0x0c,0x06,0x4d,0x0f,0x06,0x0b,0x06,0x4d,0x0f,0x83,0x03,0x10,0x0d,0x06,0x4d,0x03,0x0c,0x0c,0x06,0x4d,0x03,0x19,0x0b, +0x06,0x4d,0x03,0x2f,0x19,0x01,0x5d,0x2f,0x2b,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x12,0x39,0x2f,0x2b,0x5d,0x2b,0x2b,0xe9,0x2b,0x2b,0x2b,0x00,0x3f,0xed,0x3f,0xed,0x31,0x30,0x01,0x2b,0x05,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x52,0xe3,0xfe,0xf1, +0x01,0x1a,0xf0,0xe5,0x01,0x01,0xfe,0xeb,0xdd,0x9e,0xb8,0xba,0x9c,0x9f,0xab,0xab,0x18,0x01,0x1f,0xed,0x01,0x02,0x01,0x22,0xfe,0xe6,0xfa,0xf5,0xfe,0xd9,0x03,0xa6,0xd7,0xbd,0xb6,0xd2,0xce,0xbe,0xc0,0xd0,0x00,0x01,0xff,0xe6,0xfe,0x1e,0x04,0x10,0x04,0x18,0x00,0x3f,0x00,0x91,0x40,0x58,0x75,0x35,0x85,0x35,0x02,0x09,0x2d,0x01, +0x05,0x28,0x15,0x28,0x02,0x6a,0x1d,0x01,0x99,0x0a,0x01,0x99,0x05,0x01,0x00,0x02,0x83,0x3f,0x3d,0x3d,0x17,0x30,0x2f,0x33,0x2a,0x83,0x11,0x12,0x0c,0x17,0x17,0x41,0x33,0x83,0x0c,0x1f,0x84,0x20,0x20,0x0c,0x3f,0x00,0x00,0x30,0x38,0x09,0x2f,0x49,0x2f,0x59,0x2f,0x03,0x7a,0x30,0x01,0x28,0x30,0x01,0x2f,0x30,0x07,0x20,0x20,0x12, +0x1a,0x95,0x16,0x12,0x01,0x35,0x11,0x01,0x12,0x11,0x25,0x10,0x38,0x95,0x07,0x1c,0x00,0x3f,0xed,0x3f,0x39,0x39,0x5d,0x5d,0xed,0x11,0x39,0x2f,0x11,0x39,0x39,0x5d,0x5d,0x5d,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0x33,0x2f,0xed,0x10,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x11,0x39,0x39,0x11,0x33,0x2f,0x33,0xed,0x32,0x31,0x30, +0x00,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x25,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x25,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x05,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x70,0x0d,0x53,0x8c, +0xb9,0x66,0x51,0x94,0x71,0x43,0x25,0x45,0x64,0x3f,0x01,0x7d,0x43,0x5c,0x3a,0x1a,0x6c,0x6d,0x32,0x5c,0x4e,0x3a,0x0f,0xa6,0x12,0x5b,0x80,0x9d,0x54,0x4b,0x87,0x65,0x3c,0x27,0x46,0x63,0x3d,0xfe,0x85,0x80,0x79,0x28,0x45,0x5e,0x36,0x3d,0x75,0x5b,0x37,0x09,0x41,0x2a,0x30,0x66,0xa9,0x78,0x42,0x32,0x5b,0x83,0x51,0x45,0x80,0x6d, +0x56,0x1a,0x9b,0x1b,0x3e,0x49,0x54,0x31,0x4d,0x5d,0x1b,0x36,0x50,0x34,0x56,0x84,0x59,0x2d,0x23,0x49,0x6e,0x4b,0x43,0x7a,0x68,0x54,0x1e,0x96,0x33,0x9c,0x70,0x35,0x53,0x39,0x1e,0x2c,0x4e,0x6c,0x41,0x20,0x1b,0x00,0x00,0x01,0x00,0x2d,0x00,0x00,0x04,0x55,0x04,0x00,0x00,0x09,0x00,0x41,0x40,0x22,0x06,0x01,0x00,0x01,0x84,0x05, +0x06,0x14,0x05,0x05,0x06,0x09,0x00,0x00,0x02,0x03,0x03,0x05,0x0b,0x08,0x07,0x07,0x04,0x05,0x06,0x95,0x00,0x08,0x0f,0x05,0x01,0x95,0x03,0x15,0x00,0x3f,0xed,0x33,0x3f,0x33,0xed,0x01,0x2f,0x33,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0x33,0x33,0x2f,0x33,0x87,0x10,0x2b,0x87,0x7d,0xc4,0x31,0x30,0x01,0x01,0x21,0x07,0x21,0x37,0x01, +0x21,0x37,0x21,0x04,0x4b,0xfd,0x04,0x02,0x44,0x1d,0xfc,0xb7,0x0a,0x02,0xfb,0xfd,0xef,0x1e,0x03,0x16,0x03,0xd1,0xfc,0xbb,0x8c,0x33,0x03,0x41,0x8c,0x00,0x00,0x02,0x00,0x72,0xff,0xe8,0x03,0xde,0x05,0xb2,0x00,0x0d,0x00,0x18,0x00,0x20,0x40,0x10,0x0a,0x89,0x11,0x11,0x1a,0x16,0x89,0x04,0x13,0x9a,0x07,0x07,0x0e,0x9a,0x00,0x19, +0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x12,0x11,0x14,0x02,0x06,0x27,0x32,0x12,0x11,0x10,0x21,0x22,0x02,0x11,0x10,0x12,0x02,0x22,0x80,0xc6,0x6a,0xef,0xda,0xcb,0xd8,0x6e,0xc9,0x84,0x82,0x91,0xfe,0xff,0x8b,0x90,0x8e,0x18,0xb6,0x01,0x4d,0xdd,0x01, +0x64,0x01,0x86,0xfe,0x89,0xfe,0x9e,0xe4,0xfe,0xa9,0xb6,0x8a,0x01,0x3b,0x01,0x36,0x02,0x45,0xfe,0xd9,0xfe,0xd8,0xfe,0xdd,0xfe,0xbc,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xb2,0x05,0x9a,0x00,0x1f,0x00,0x29,0x40,0x0f,0x18,0x08,0x01,0x8a,0x0b,0x10,0x00,0x14,0x1d,0x1d,0x09,0x14,0x06,0x01,0x0e,0xb8,0x01,0x81,0xb1,0x09,0x18,0x00, +0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0xcd,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x02,0x75,0xf4,0x1d,0x1f,0x1f,0x1d,0xfd,0x74,0x1f,0x1d,0x1d,0x1f,0xf4,0x29, +0x33,0x7f,0x24,0x0f,0xce,0x05,0x42,0x23,0x24,0x0f,0x04,0xe3,0xfb,0xc1,0x30,0x20,0x20,0x34,0x34,0x20,0x20,0x30,0x04,0xa5,0x2f,0x22,0x1c,0xfe,0x70,0x0c,0x0b,0x20,0x2f,0x1d,0x00,0x01,0x00,0xc2,0xff,0xe8,0x03,0x8a,0x05,0xb2,0x00,0x1b,0x00,0x27,0x40,0x13,0x00,0x8a,0x14,0x14,0x1d,0x13,0x05,0x8a,0x0b,0x04,0x9b,0x13,0x13,0x08, +0x18,0x0f,0x07,0x08,0x19,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x03,0x8a,0x1c,0x1d,0xfe,0x15,0x30,0x20,0x22,0x32,0x31,0x23,0x20, +0x30,0x01,0x80,0x31,0x23,0x20,0x30,0x03,0x54,0x22,0x32,0xfd,0x21,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b,0x1e,0xfe,0x2b,0x01,0xd5,0x1d,0x1c,0x1b,0x1e,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x03,0x34,0x05,0xb2,0x00,0x19,0x00,0x26,0x40,0x0c,0x0f,0x07,0x01,0x8a,0x13,0x0a,0x0c,0x9b,0x11,0x11,0x17,0x09,0xb8,0x01,0x81,0xb3, +0x05,0x18,0x17,0x07,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0xcd,0x32,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x21,0x22,0x35,0x34,0x33,0x21,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x34,0x2c,0x1a,0xfe,0x77,0x46,0x46,0x01,0x2b,0xfe,0xcb,0x1f,0x1d,0x1d,0x1f,0x01,0x35, +0x30,0x20,0x22,0x32,0x05,0x79,0xfa,0xd9,0x1c,0x36,0x51,0x53,0x01,0x99,0x30,0x20,0x20,0x34,0x02,0x98,0x1e,0x1b,0x1c,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x03,0x55,0x05,0xb2,0x00,0x1a,0x00,0x2b,0x40,0x0f,0x09,0x01,0x8a,0x14,0x14,0x1c,0x05,0x8a,0x0f,0x04,0x9b,0x13,0x13,0x18,0x05,0xb8,0x01,0x81,0xb3,0x0c,0x18,0x18,0x07,0x00, +0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x01,0x11,0x14,0x23,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x23,0x21,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x11,0x34,0x36,0x33,0x32,0x16,0x03,0x55,0x32,0xfe,0x78,0x01,0x74,0x1e,0x28,0x46,0xfe,0x2e,0x1e,0x28,0x1d,0x1f,0x01,0x7e,0x31,0x23, +0x20,0x30,0x05,0x79,0xfd,0x7a,0x54,0xfe,0x05,0x2a,0x23,0x57,0x39,0x30,0x02,0x86,0x20,0x34,0x02,0x36,0x1d,0x1c,0x1b,0x00,0x00,0x01,0x01,0x08,0xff,0xe8,0x03,0x47,0x05,0xb2,0x00,0x16,0x00,0x1e,0x40,0x0e,0x06,0x01,0x0a,0x8a,0x10,0x09,0x9b,0x01,0x01,0x0d,0x14,0x07,0x0d,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xfd, +0x32,0xc6,0x31,0x30,0x01,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x01,0xac,0x01,0x55,0x1e,0x28,0x28,0x1e,0xfe,0xab,0x30,0x20,0x22,0x32,0x31,0x23,0x20,0x30,0x05,0x79,0xfd,0xb3,0x2a,0x28,0x2b,0x27,0xfd,0x99,0x1e,0x1b,0x1c,0x1d,0x05,0x58,0x1d,0x1c,0x1b, +0x00,0x01,0x00,0xe1,0xff,0xe9,0x03,0x73,0x05,0xb2,0x00,0x17,0x00,0x23,0x40,0x11,0x01,0x8a,0x07,0x07,0x19,0x14,0x8a,0x0b,0x09,0x9b,0x14,0x14,0x10,0x04,0x19,0x10,0x07,0x00,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x22,0x26,0x35,0x11,0x34, +0x36,0x33,0x32,0x16,0x15,0x11,0x21,0x32,0x16,0x03,0x73,0x31,0x23,0x20,0x30,0xfe,0x66,0x22,0x32,0x30,0x20,0x22,0x32,0x01,0xb2,0x1d,0x1f,0x02,0xef,0xfd,0x33,0x1c,0x1d,0x1b,0x1e,0x02,0x7d,0x1c,0x1d,0x02,0xa1,0x1e,0x1b,0x1c,0x1d,0xfd,0xca,0x34,0x00,0x01,0x00,0xa1,0x00,0x00,0x03,0xaf,0x05,0xb2,0x00,0x16,0x00,0x21,0x40,0x0f, +0x0d,0x11,0x11,0x18,0x0c,0x8a,0x04,0x0c,0x0f,0x0f,0x01,0x08,0x07,0x01,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x33,0x31,0x30,0x21,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x06,0x01,0x68,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01, +0xd6,0x0d,0x20,0x24,0x43,0x06,0xfd,0xec,0x0e,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfb,0x59,0x03,0x42,0x19,0x35,0x1f,0x0b,0x0c,0xfc,0x57,0x19,0x00,0x00,0x02,0x00,0xa9,0x00,0x00,0x03,0xa7,0x05,0xb2,0x00,0x14,0x00,0x17,0x00,0x26,0x40,0x12,0x15,0x03,0x03,0x19,0x00,0x17,0x8a,0x0d,0x16,0x9b,0x17,0x00,0x00,0x0a,0x11,0x07, +0x0a,0x18,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x32,0x15,0x14,0x06,0x07,0x01,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0x21,0x11,0x01,0x4d,0x02,0x1d,0x3d,0x16,0x16,0xfe,0x22,0x0e,0x1f,0x73,0x25,0x2f,0x31,0x23,0x20,0x30,0x01,0x83, +0xfe,0x7d,0x04,0x2a,0x3a,0x26,0x3a,0x27,0xfc,0xb0,0x19,0x1b,0x1b,0x05,0x43,0x1d,0x1c,0x1b,0x1e,0xfe,0x0d,0xfd,0x4d,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x03,0x94,0x05,0xb2,0x00,0x13,0x00,0x1f,0x00,0x33,0x40,0x1a,0x04,0x8a,0x09,0x00,0x8b,0x14,0x09,0x14,0x09,0x14,0x21,0x1a,0x8b,0x0e,0x1d,0x9b,0x03,0x0b,0x0b,0x11,0x07,0x19, +0x17,0x9b,0x11,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x94,0x9a,0x80,0x32, +0x20,0x20,0x32,0x82,0x98,0xca,0xa6,0xa6,0xc2,0x9a,0x6b,0x61,0x65,0x73,0x71,0x67,0x5c,0x70,0x04,0x6f,0x78,0xab,0x17,0xfc,0xec,0x1e,0x1b,0x1b,0x1e,0x03,0x15,0x19,0xaa,0x76,0x94,0xaf,0xad,0x8d,0x4f,0x57,0x57,0x4f,0x56,0x60,0x64,0x00,0x00,0x02,0x00,0x76,0x00,0xf7,0x03,0xb0,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x1f,0x40,0x0f, +0x10,0x8a,0x09,0x09,0x1d,0x03,0x8a,0x18,0x06,0x99,0x14,0x00,0x99,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x14,0x6e,0x8f,0x93,0x6a,0x6a, +0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f,0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x00,0x01,0x00,0x8a,0xfe,0xe6,0x03,0x37,0x05,0x9c,0x00,0x29,0x00,0x49,0x40,0x26,0x0a,0x8a,0x20,0x11,0x8a,0x17,0x0e,0x29,0x14,0x1c, +0x29,0x14,0x20,0x17,0x17,0x20,0x14,0x29,0x1c,0x05,0x2b,0x26,0x8a,0x02,0x0e,0x1c,0x29,0x1c,0x13,0x00,0x00,0x06,0x14,0x13,0x23,0x99,0x06,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x26,0x35, +0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x6f,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49, +0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0,0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x00,0x01,0x00,0x6d,0xfe,0xdb,0x03,0xbe,0x05,0x9c,0x00,0x21,0x00,0x3c,0x40,0x1d,0x00,0x21,0x1d,0x1a, +0x8a,0x0e,0x02,0x0e,0x06,0x06,0x13,0x14,0x0b,0x0e,0x09,0x09,0x11,0x0b,0x9a,0x02,0x1d,0x1d,0x00,0x11,0x9b,0x16,0x06,0x21,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x11,0x39,0x2f,0x01,0x2f,0x33,0xc4,0x32,0x39,0x2f,0x12,0x39,0x10,0xed,0x32,0x2f,0x33,0x31,0x30,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32, +0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x39,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a, +0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe,0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0x76,0xfe,0xde,0x03,0xa2,0x05,0x88,0x00,0x2f,0x00,0x60,0x40,0x19,0x00,0x2f,0x2b,0x28,0x8a,0x0f,0x0c,0x24,0x0f,0x2f,0x0f,0x2f,0x0f,0x31,0x03,0x18,0x14,0x06,0x14,0x06,0x1c,0x22,0x8a,0x18,0x0c,0xb8, +0x01,0x7e,0x40,0x15,0x2b,0x03,0x2b,0x24,0x13,0x9b,0x14,0x2b,0x09,0x14,0x14,0x09,0x2b,0x03,0x00,0x1c,0x9b,0x1d,0x06,0x2f,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc6,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x10,0xed,0x32, +0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x02,0xf6,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a, +0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a,0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c, +0x00,0x02,0x00,0x6c,0xff,0xf3,0x04,0x48,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x50,0xb6,0x26,0x8b,0x10,0x09,0x8b,0x2c,0x02,0xb8,0x01,0x85,0x40,0x22,0x24,0x2f,0x20,0x13,0x03,0x10,0x06,0x2c,0x24,0x10,0x2c,0x24,0x24,0x2c,0x10,0x03,0x33,0x1c,0x8a,0x17,0x06,0x13,0x20,0x13,0x2f,0x03,0x0d,0x25,0x19,0x06,0x29,0x99,0x0d,0x19,0x00, +0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x16,0x17, +0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x41,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99,0x74,0xc1, +0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x97,0xfe,0xdb,0x05,0x22,0x05,0x88,0x00,0x25,0x00,0x49,0x40,0x24,0x25,0x00,0x1a,0x09,0x13,0x0b,0x11,0x00,0x0b,0x11, +0x11,0x0b,0x00,0x03,0x22,0x17,0x16,0x27,0x03,0x8a,0x22,0x13,0x1a,0x1a,0x1e,0x9b,0x09,0x06,0x0e,0x06,0x0e,0x17,0x25,0x06,0x16,0x17,0x00,0x2f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x10,0xc6,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x32,0x11,0x33,0x31,0x30,0x01,0x06,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x8d,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b, +0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9,0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x00,0x01,0x00,0x90,0xfe,0xde,0x04,0xce,0x05,0x88,0x00,0x36,0x00,0x63,0x40,0x33,0x04,0x8a,0x19,0x16,0x15,0x22,0x1f,0x13, +0x0b,0x11,0x1f,0x0b,0x11,0x15,0x15,0x11,0x0b,0x1f,0x04,0x26,0x38,0x2d,0x2d,0x36,0x32,0x8a,0x26,0x0e,0x01,0x13,0x19,0x19,0x09,0x07,0x99,0x1b,0x22,0x01,0x9b,0x35,0x1b,0x35,0x1b,0x35,0x16,0x2e,0x9b,0x2b,0x06,0x15,0x16,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x32,0x33,0x11,0x33,0x11,0x39, +0x01,0x2f,0xfd,0xc6,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x32,0xed,0x31,0x30,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35, +0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x61,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b,0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2, +0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x01,0x00,0x76,0xff,0xf8,0x04,0xca,0x05,0x88,0x00,0x29,0x00,0x4d,0xbc,0x00,0x24,0x01,0x85,0x00,0x06,0x00,0x0d,0x01,0x85,0x40,0x0a,0x1d, +0x06,0x29,0x1d,0x1d,0x29,0x06,0x03,0x2b,0x16,0xb8,0x01,0x85,0x40,0x0f,0x15,0x00,0x9b,0x29,0x21,0x9b,0x09,0x29,0x09,0x29,0x09,0x11,0x15,0x06,0x1a,0xb8,0x01,0x80,0xb1,0x11,0x18,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01, +0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0xd4,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2,0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93, +0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x01,0x00,0x80,0xff,0xa1,0x04,0x3e,0x05,0x96,0x00,0x16,0x00,0x2f, +0x40,0x16,0x16,0x00,0x0a,0x0b,0x00,0x0b,0x00,0x0b,0x18,0x04,0x8b,0x12,0x0b,0x0a,0x0a,0x0e,0x00,0x16,0x06,0x07,0x99,0x0e,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26, +0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x97,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c,0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x00,0x01,0x00,0x76,0xfe,0xe6,0x04,0x23,0x05,0x9c, +0x00,0x27,0x00,0x42,0x40,0x21,0x27,0x00,0x24,0x8a,0x02,0x12,0x13,0x10,0x89,0x16,0x00,0x1d,0x13,0x16,0x02,0x16,0x02,0x16,0x29,0x08,0x8a,0x1d,0x00,0x9a,0x27,0x27,0x12,0x05,0x9b,0x20,0x06,0x13,0x12,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, +0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x01,0xf1,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec, +0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce,0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0x96,0x00,0x93,0x04,0x9f,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x1f,0x40,0x0f, +0x1b,0x8a,0x00,0x00,0x20,0x08,0x8a,0x13,0x0b,0x9b,0x0f,0x04,0x9b,0x17,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x03,0xff,0x55,0x9d, +0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67,0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x00,0x01,0x00,0x64,0xff,0xe7,0x03,0x88,0x05,0xb1,0x00,0x25,0x00,0x35, +0x40,0x1a,0x06,0x8a,0x14,0x25,0x0d,0x12,0x22,0x14,0x0d,0x22,0x14,0x14,0x22,0x0d,0x03,0x27,0x1c,0x25,0x1f,0x10,0x10,0x0a,0x1f,0x07,0x0a,0x19,0x00,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14,0x02,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x32,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98,0xfe,0x81,0x7a, +0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x00,0x01,0x00,0x78,0xff,0xa7,0x05,0x09,0x05,0xb1,0x00,0x2d,0x00,0x43,0x40,0x13,0x03,0x00,0x89,0x0c,0x15,0x27,0x23,0x1d,0x07,0x15,0x23,0x23,0x15,0x07,0x03,0x2f,0x1d,0x03,0x0d,0xb8,0x01,0x81, +0x40,0x0b,0x19,0x27,0x27,0x20,0x0c,0x0c,0x08,0x20,0x07,0x07,0x08,0x00,0x2f,0x33,0x3f,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0xed,0x39,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36, +0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x47,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b, +0x7e,0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x00,0x01,0x00,0x82,0x00,0x93,0x05,0x8b,0x05,0x36,0x00,0x23,0x00,0x38,0x40,0x14,0x1a,0x8a,0x07,0x0a,0x0d,0x13, +0x0d,0x07,0x07,0x0d,0x13,0x03,0x25,0x00,0x22,0x0a,0x10,0x10,0x16,0x03,0xb8,0x01,0x80,0xb4,0x1e,0x22,0x00,0x16,0x06,0x00,0x3f,0xc6,0x32,0xd4,0xed,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x31,0x30,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x07,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xfb,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0,0x70,0x9e,0xe3,0x18,0x0e,0x3c, +0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0x8c,0x00,0x4c,0x04,0x91,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x46,0x40,0x26,0x2c,0x8a,0x12,0x1a,0x8a,0x33,0x03,0x8b,0x1e,0x0e,0x12,0x33,0x1d,0x1e,0x12,0x33,0x1e,0x1e,0x33,0x12,0x03,0x3a, +0x26,0x8a,0x0b,0x22,0x1d,0x0e,0x30,0x04,0x16,0x29,0x99,0x07,0x36,0x9b,0x16,0x07,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x7e,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, +0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, +0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x96,0x00,0x01,0x05,0x82,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x5a,0x40,0x18,0x02,0x8a,0x30,0x2b,0x25,0x0f,0x89,0x28,0x09,0x14,0x00,0x30,0x28,0x28,0x30,0x00,0x14,0x09,0x05,0x34,0x20,0x8a,0x1a,0x13,0xb8,0x01,0x7e,0x40,0x10,0x09,0x2b,0x05,0x12,0x30,0x08,0x1e,0x12,0x08,0x12,0x08, +0x16,0x00,0x1e,0x07,0x25,0xb8,0x01,0x80,0xb1,0x16,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x32,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x33,0x33,0x10,0xed,0x31,0x30,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14, +0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xbf,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78, +0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77,0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00, +0x00,0x01,0x00,0x64,0xff,0xe5,0x06,0x29,0x05,0xb1,0x00,0x2d,0x00,0x5a,0xb9,0x00,0x0a,0x01,0x85,0x40,0x12,0x19,0x06,0x1b,0x01,0x8a,0x21,0x1b,0x21,0x19,0x21,0x28,0x28,0x21,0x19,0x03,0x2f,0x11,0x02,0xb8,0x01,0x80,0x40,0x12,0x11,0x12,0x1b,0x1e,0x22,0x06,0x12,0x1e,0x06,0x12,0x12,0x06,0x1e,0x03,0x0e,0x2b,0x07,0x15,0xb8,0x01, +0x80,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36, +0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x92,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74,0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89, +0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0x87,0xff,0xe8,0x04,0xa0,0x05,0xb1,0x00,0x21,0x00,0x30,0x00,0x43,0x40,0x0a,0x24,0x14,0x8a,0x21,0x1b,0x21,0x1b,0x21, +0x32,0x2e,0xb8,0x01,0x82,0xb4,0x05,0x05,0x2e,0x24,0x22,0xb8,0x01,0x80,0x40,0x0d,0x00,0x0d,0x15,0x1e,0x02,0x02,0x0d,0x1e,0x19,0x2a,0x9b,0x0d,0x07,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x32,0x32,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x27,0x26, +0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0x4e,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59,0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58, +0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83,0x0a,0x25,0x00,0x00,0x02,0x00,0x78,0xff,0xe8, +0x06,0x08,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x6e,0xb3,0x1f,0x8a,0x18,0x26,0xb8,0x01,0x86,0x40,0x2d,0x3e,0x12,0x24,0x1a,0x3e,0x18,0x1a,0x3e,0x3e,0x1a,0x18,0x03,0x43,0x0e,0x35,0x8a,0x07,0x31,0x1a,0x1c,0x3e,0x34,0x32,0x9b,0x10,0x23,0x9b,0x15,0x12,0x0e,0x02,0x0a,0x1c,0x0e,0x15,0x2b,0x1c,0x10,0x15,0x15,0x10,0x1c,0x03,0x0a, +0x3a,0xb8,0x01,0x80,0xb3,0x2b,0x19,0x0a,0x07,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x27,0x27,0x06,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03,0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0x01,0x26,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41, +0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab,0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f, +0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x00,0x01,0x00,0x96,0xff,0xe7,0x05,0x3b,0x05,0xb1,0x00,0x3c,0x00,0x67,0xb9,0x00,0x1a,0x01,0x83,0xb6,0x39,0x0d,0x39,0x0d,0x39,0x07,0x35,0xb8,0x01,0x85,0x40,0x24, +0x1d,0x2d,0x2a,0x24,0x2a,0x1d,0x1d,0x2a,0x24,0x03,0x3e,0x07,0x89,0x14,0x00,0x9b,0x18,0x31,0x21,0x07,0x10,0x0a,0x21,0x2d,0x18,0x27,0x0a,0x18,0x0a,0x18,0x10,0x27,0x07,0x10,0x19,0x1a,0xb8,0x01,0x81,0xb1,0x39,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x01, +0x2f,0xec,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x2e,0x02,0x02,0x26,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85, +0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44,0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x02,0x00,0x98,0x00,0xe6,0x03,0xee, +0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x2a,0xb9,0x00,0x00,0x01,0x85,0xb3,0x0c,0x0c,0x19,0x12,0xbe,0x01,0x85,0x00,0x06,0x00,0x15,0x01,0x7e,0x00,0x03,0x00,0x0f,0x01,0x7e,0xb1,0x09,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xee,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x00,0xff,0xba,0x03,0x6f,0x05,0x1a,0x00,0x15,0x00,0x1e,0x00,0x36,0x40,0x09, +0x16,0x12,0x8a,0x02,0x00,0x02,0x00,0x20,0x1b,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x1d,0x99,0x05,0x05,0x00,0x19,0x9b,0x0d,0x06,0x15,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x33,0x31,0x30,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x6f,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01,0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44, +0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x5d,0xff,0xbe,0x04,0x26,0x04,0xee,0x00,0x20,0x00,0x4d,0xb2,0x1e,0x05,0x1c,0xb8,0x01,0x85,0x40,0x1d,0x10,0x0d,0x10,0x01,0x00,0x09,0x10,0x00,0x00,0x10,0x09,0x03,0x22,0x16,0x0d,0x05,0x1e,0x1e,0x07,0x0b,0x07,0x0b,0x07,0x01,0x13,0x9b,0x19,0x06,0x00,0xb8,0x01,0x80,0xb1,0x01,0x19,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x33,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x32,0x31,0x30,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00,0x15,0x10,0x05,0x16,0x16, +0x04,0x26,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x00,0x01,0x00,0x6b,0xff,0x7b, +0x04,0x19,0x05,0x04,0x00,0x2a,0x00,0x68,0xb6,0x05,0x04,0x04,0x2c,0x29,0x00,0x26,0xb8,0x01,0x85,0x40,0x19,0x1b,0x08,0x02,0x02,0x16,0x1b,0x0d,0x16,0x0d,0x16,0x22,0x13,0x1b,0x02,0x09,0x29,0x29,0x17,0x0f,0x0f,0x11,0x16,0x9b,0x17,0x11,0xb8,0x01,0x81,0x40,0x0b,0x09,0x17,0x09,0x17,0x09,0x05,0x1f,0x9b,0x24,0x06,0x04,0xb9,0x01, +0x80,0x00,0x05,0x00,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x11,0x39,0x11,0x12,0x39,0x01,0x2f,0x33,0xc4,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33, +0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x19,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96,0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c, +0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00,0x00,0x02,0x00,0x94,0xff,0xba,0x03,0xf0,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x53,0xb3,0x00,0x89,0x1c,0x06,0xbb,0x01,0x85,0x00,0x1d,0x00,0x24, +0x01,0x85,0x40,0x1e,0x0e,0x02,0x1c,0x12,0x21,0x18,0x03,0x1d,0x0e,0x1c,0x1d,0x0e,0x0e,0x1d,0x1c,0x03,0x2b,0x15,0x89,0x14,0x18,0x02,0x12,0x21,0x04,0x0a,0x1c,0x14,0x06,0x27,0xb8,0x01,0x80,0xb1,0x0a,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10, +0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x30,0xfe,0xef,0x81,0x3d,0x1f,0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80, +0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b,0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c, +0x00,0x01,0x00,0x59,0xff,0xf6,0x04,0x2b,0x04,0xe1,0x00,0x1a,0x00,0x48,0xb9,0x00,0x10,0x01,0x85,0xb2,0x0a,0x18,0x00,0xb8,0x01,0x85,0x40,0x0d,0x01,0x0a,0x01,0x0a,0x01,0x1c,0x12,0x89,0x0d,0x07,0x18,0x12,0x15,0xb8,0x01,0x80,0x40,0x0b,0x02,0x07,0x0d,0x04,0x04,0x01,0x19,0x0d,0x06,0x01,0x18,0x00,0x3f,0x3f,0x33,0x12,0x39,0x2f, +0x12,0x39,0x39,0xed,0x32,0x32,0x01,0x2f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x31,0x30,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x2b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23,0xaa,0x5a, +0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x7d,0xff,0xf6,0x04,0x06,0x06,0x30,0x00,0x2d,0x00,0x68,0xb9,0x00,0x17,0x01,0x85,0x40,0x10,0x0c,0x13,0x0e,0x13,0x1a,0x1a,0x13,0x0e,0x03,0x05,0x2f,0x25,0x25, +0x00,0x20,0x28,0xb8,0x01,0x85,0x40,0x1c,0x09,0x07,0x05,0x14,0x9b,0x11,0x0c,0x00,0x2d,0x07,0x26,0x9b,0x23,0x1a,0x1b,0x2d,0x23,0x1b,0x1b,0x23,0x2d,0x03,0x02,0x1d,0x9b,0x0c,0x06,0x2b,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x10,0xdd,0xed,0x01, +0x2f,0x33,0x33,0xfd,0x32,0xc4,0x39,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33, +0x32,0x37,0x04,0x06,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39,0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61, +0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xbf,0xff,0xf0,0x03,0xc4,0x05,0x25,0x00,0x17,0x00,0x40,0xb4,0x03,0x04,0x10,0x0f,0x00,0xb8,0x01,0x85,0x40,0x09,0x07,0x0f,0x07,0x04,0x07,0x04,0x07,0x19,0x0d,0xb8,0x01,0x85,0x40,0x0c,0x12,0x0f,0x10,0x10,0x15,0x04,0x03,0x19,0x0a,0x9b,0x15,0x06,0x00,0x3f,0xed,0x3f,0x33, +0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xc4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4, +0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0x29,0x00,0x18,0x00,0x3c,0xb6,0x10,0x00,0x10,0x00,0x1a,0x0e,0x13,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x00,0x18,0x18,0x10,0x02,0x0c,0x0f,0xb8,0x01, +0x80,0xb3,0x07,0x10,0x06,0x16,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b, +0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x2b,0xff,0xf6,0x04,0x59,0x05,0xda,0x00,0x25,0x00,0x4a,0xb9,0x00,0x19,0x01,0x85,0x40,0x0e,0x0f,0x1d,0x11, +0x1d,0x15,0x00,0x00,0x15,0x1d,0x11,0x04,0x27,0x0e,0x20,0xb8,0x01,0x85,0xb7,0x09,0x05,0x17,0x9b,0x14,0x1c,0x0c,0x0e,0xb8,0x01,0x80,0xb3,0x07,0x1e,0x06,0x23,0xb8,0x01,0x80,0xb1,0x02,0x18,0x00,0x3f,0xed,0x3f,0x33,0xfd,0xcd,0x33,0xd4,0xed,0x01,0x2f,0xc4,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30, +0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x59,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03, +0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0x76,0x01,0x13,0x03,0xc8,0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x27,0xb9,0x00,0x10,0x01,0x85,0xb3,0x09,0x09,0x1b,0x03,0xbb,0x01, +0x85,0x00,0x17,0x00,0x06,0x01,0x80,0xb4,0x13,0x00,0x9b,0x0c,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x20,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75, +0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b,0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x02,0x00,0x2d,0xff,0xe8,0x03,0x89,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x3c,0x40,0x0b,0x18,0x0d,0x8a,0x0e,0x0f,0x15,0x0f,0x15,0x0f,0x23,0x1f,0xbb,0x01,0x85,0x00,0x06, +0x00,0x16,0x01,0x80,0xb3,0x03,0x03,0x09,0x0d,0xb8,0x01,0x80,0xb5,0x12,0x19,0x1c,0x9b,0x09,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x33,0x31,0x30,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35, +0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x0c,0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49, +0x4c,0x5e,0x00,0x01,0x00,0x7c,0xff,0xe8,0x04,0x43,0x05,0xb2,0x00,0x26,0x00,0x55,0xb9,0x00,0x00,0x01,0x85,0x40,0x24,0x09,0x0a,0x1b,0x0a,0x1b,0x0a,0x28,0x18,0x03,0x8b,0x21,0x13,0x10,0x0a,0x09,0x03,0x21,0x20,0x18,0x10,0x16,0x09,0x10,0x16,0x20,0x20,0x16,0x10,0x09,0x04,0x0c,0x1e,0x9b,0x23,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0c, +0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x32,0x11,0x33,0x01,0x2f,0xcd,0xc4,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0x84,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38,0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53, +0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x00,0x01,0x00,0x0f,0xff,0xe8,0x04,0x52,0x05,0xb2,0x00,0x2b,0x00,0x5b,0xb9,0x00,0x02,0x01,0x85,0x40,0x0d,0x00,0x1d,0x10,0x10,0x2d,0x1d,0x23,0x17,0x23,0x17,0x0a,0x09,0x29,0xb8,0x01,0x85,0x40,0x17,0x1d,0x09,0x0a,0x00,0x13,0x17,0x9b,0x18,0x23,0x22,0x0a, +0x18,0x22,0x22,0x18,0x0a,0x03,0x06,0x20,0x9b,0x25,0x07,0x0d,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24, +0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0x80,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96,0x78, +0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x02,0x00,0x0a,0xff,0xe8,0x04,0xc4,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x57,0xbc,0x00,0x16,0x01,0x85,0x00, +0x0d,0x00,0x07,0x01,0x85,0x40,0x1c,0x11,0x02,0x03,0x14,0x01,0x0f,0x03,0x0d,0x04,0x11,0x03,0x0d,0x11,0x03,0x03,0x11,0x0d,0x03,0x1d,0x00,0x10,0x01,0x0f,0x04,0x14,0x04,0x00,0x19,0xb8,0x01,0x80,0xb7,0x0a,0x19,0x03,0x10,0x10,0x02,0x00,0x07,0x00,0x3f,0x32,0x32,0x11,0x33,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x01,0x01,0x17,0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x70,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19, +0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae,0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x00,0x01,0x00,0x16,0xff,0xe8,0x05,0x11,0x05,0xb2,0x00,0x22,0x00,0x4b,0x40,0x12,0x01,0x02,0x20,0x00,0x8a,0x08,0x02,0x08, +0x02,0x08,0x24,0x1b,0x8a,0x15,0x0e,0x21,0x06,0x1e,0xb8,0x01,0x80,0x40,0x0d,0x15,0x09,0x14,0x0b,0x14,0x0b,0x14,0x05,0x12,0x9b,0x17,0x07,0x00,0xb8,0x01,0x80,0xb1,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0xed,0x3f,0x01,0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31, +0x30,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32,0x37,0x11,0x33,0x04,0x38,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82, +0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x01,0x00,0x41,0xff,0xe8,0x04,0x85,0x05,0xbb,0x00,0x36,0x00,0x70,0xbf,0x00,0x0a,0x01,0x85,0x00,0x15,0x00,0x2a,0x01,0x85,0x00,0x27,0x00,0x04,0x01,0x85,0x40,0x11,0x1b,0x1d,0x27,0x1b,0x15, +0x00,0x0f,0x27,0x1b,0x1b,0x27,0x0f,0x00,0x15,0x05,0x38,0x30,0xb8,0x01,0x85,0x40,0x16,0x20,0x0f,0x10,0x07,0x17,0x17,0x1d,0x12,0x00,0x9b,0x2d,0x22,0x10,0x0d,0x22,0x27,0x36,0x36,0x0d,0x27,0x07,0x12,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0xed,0x12,0x39,0x39,0x11,0x33, +0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17, +0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x30,0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05, +0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62,0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x36,0xff,0xe8,0x04,0xaf,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x53,0xb1,0x21,0x16,0xbb,0x01,0x85,0x00,0x07,0x00,0x27, +0x01,0x85,0x40,0x0d,0x0f,0x07,0x0f,0x07,0x0f,0x2b,0x00,0x8b,0x1d,0x1d,0x00,0x21,0x1e,0xb8,0x01,0x80,0x40,0x09,0x0c,0x09,0x0c,0x00,0x0c,0x00,0x0c,0x12,0x03,0xb8,0x01,0x80,0xb5,0x1a,0x19,0x24,0x9b,0x12,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xd1,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9, +0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a,0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x00,0x01, +0x00,0x80,0xff,0xe8,0x04,0x3e,0x05,0xbc,0x00,0x14,0x00,0x33,0x40,0x14,0x14,0x00,0x09,0x0a,0x00,0x0a,0x00,0x0a,0x16,0x04,0x8b,0x10,0x0a,0x09,0x09,0x0d,0x00,0x14,0x07,0x07,0xb8,0x01,0x80,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01, +0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0x7c,0xfe,0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x02, +0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x58,0x40,0x13,0x03,0x00,0x15,0x16,0x01,0x02,0x0b,0x0c,0x00,0x16,0x02,0x0c,0x0c,0x02,0x16,0x00,0x04,0x1a,0x04,0xb8,0x01,0x85,0x40,0x13,0x12,0x0c,0x0b,0x00,0x03,0x02,0x01,0x0b,0x03,0x01,0x01,0x03,0x0b,0x03,0x0e,0x16,0x15,0x07,0x08,0xb8,0x01,0x80,0xb1,0x0e, +0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02, +0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6,0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0x82,0x00,0xd7,0x04,0x4f,0x04,0x89, +0x00,0x0f,0x00,0x1c,0x00,0x22,0x40,0x09,0x08,0x89,0x10,0x10,0x1e,0x16,0x89,0x00,0x19,0xb8,0x01,0x80,0xb4,0x0c,0x13,0x9b,0x04,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x36,0x82,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81,0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x00,0x82,0xff,0xe2,0x03,0x7f,0x05,0x7d,0x00,0x15, +0x00,0x21,0x00,0x3b,0x40,0x0e,0x08,0x8a,0x13,0x12,0x16,0x12,0x16,0x12,0x23,0x0e,0x1c,0x89,0x00,0x1f,0xb8,0x01,0x80,0x40,0x0d,0x0e,0x04,0x0c,0x0c,0x13,0x19,0x9b,0x04,0x06,0x12,0x9a,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x31,0x30,0x13, +0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x82,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03, +0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68,0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x00,0x96,0xff,0xe2,0x03,0x93,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x3d,0x40,0x0f,0x03,0x04,0x0a,0x00,0x89,0x1e,0x04,0x1e,0x04,0x1e,0x25,0x18,0x89,0x10,0x1b,0xb8,0x01,0x80, +0x40,0x0d,0x0a,0x14,0x0c,0x0c,0x03,0x21,0x9b,0x14,0x06,0x04,0x9a,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x11,0x33,0x31,0x30,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16, +0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x93,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64, +0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d,0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0x4c,0x05,0x7d,0x00,0x33,0x00,0x57,0x40,0x1a,0x11,0x10,0x14,0x89,0x0d,0x22,0x32,0x8a,0x33,0x29,0x8a,0x2a,0x10,0x0d,0x33,0x2a,0x2a,0x33,0x0d,0x10,0x04,0x35,0x07,0x89,0x1b,0x0a,0xb8,0x01,0x81,0x40,0x11,0x10,0x22,0x11, +0x17,0x11,0x17,0x11,0x1f,0x2a,0x33,0x18,0x2e,0x04,0x9b,0x25,0x1f,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0xaf,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f, +0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57,0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x00,0x02,0x00,0x64,0xff,0xe5,0x05,0x0b, +0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x53,0x40,0x29,0x1e,0x89,0x00,0x10,0x89,0x18,0x0b,0x8b,0x0a,0x08,0x1b,0x03,0x03,0x00,0x0d,0x18,0x0a,0x00,0x18,0x0a,0x0a,0x18,0x00,0x03,0x25,0x06,0x89,0x05,0x0b,0x05,0x05,0x08,0x03,0x0d,0x1b,0x04,0x14,0x0a,0x06,0x07,0x21,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17, +0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01, +0x27,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2,0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38, +0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x00,0x03,0x00,0x64,0xff,0xe5,0x05,0x23,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x6e,0x40,0x39,0x37,0x89,0x0a,0x1d,0x89,0x25,0x12,0x89,0x31,0x19,0x18,0x3a,0x28,0x03,0x08,0x04,0x0a,0x25,0x15,0x1b,0x31,0x18,0x0a,0x25,0x31,0x18,0x18,0x31,0x25,0x0a,0x04,0x3e,0x06,0x05,0x2b,0x89,0x00,0x18, +0x05,0x08,0x3a,0x15,0x03,0x28,0x1b,0x06,0x06,0x19,0x06,0x19,0x06,0x21,0x34,0x9b,0x0e,0x06,0x2e,0xb8,0x01,0x80,0xb1,0x21,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x32,0x33,0x01,0x2f,0xed,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x10,0xed, +0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, +0x17,0x36,0x36,0x01,0x0b,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02,0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56, +0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03,0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x04,0xe2,0x05,0x7d,0x00,0x2f,0x00,0x57,0x40,0x16,0x12,0x89, +0x1f,0x2c,0x89,0x05,0x1f,0x05,0x1f,0x05,0x24,0x31,0x19,0x18,0x18,0x00,0x0c,0x89,0x24,0x18,0x19,0x1c,0xb8,0x01,0x80,0x40,0x0f,0x15,0x0c,0x28,0x1f,0x15,0x19,0x15,0x19,0x15,0x00,0x09,0x9b,0x28,0x06,0x01,0xb8,0x01,0x81,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x12,0x39,0x10,0xed,0x11,0x33, +0x01,0x2f,0xed,0xc4,0x39,0x2f,0x33,0x11,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x10,0x00,0x21,0x64,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77,0xa7,0x77,0x76,0x55,0x50, +0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x02,0x00,0x64,0xff,0xe5,0x04,0xed,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x50,0x40,0x13,0x24,0x89,0x05,0x15,0x89,0x2e,0x05,0x2e,0x00,0x00,0x2e,0x05,0x03,0x35,0x28,0x0d,0x8a,0x1c,0x2b,0xb8,0x01,0x80,0x40,0x10,0x18,0x31,0x9b,0x12, +0x0f,0x12,0x18,0x12,0x18,0x12,0x00,0x09,0x9b,0x20,0x06,0x01,0xb8,0x01,0x80,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15, +0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x64,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06, +0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79,0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01, +0x00,0xb4,0x00,0x00,0x04,0x5a,0x05,0x42,0x00,0x05,0x00,0x16,0x40,0x0a,0x01,0x04,0x89,0x05,0x05,0x18,0x03,0x9b,0x00,0x06,0x00,0x3f,0xed,0x3f,0x01,0x2f,0xfd,0xc4,0x31,0x30,0x13,0x21,0x15,0x21,0x11,0x23,0xb4,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0x82,0xff,0xe2,0x03,0xf2,0x05,0x62,0x00,0x16, +0x00,0x3b,0x40,0x1d,0x04,0x03,0x0c,0x08,0x89,0x13,0x12,0x0c,0x00,0x05,0x12,0x05,0x12,0x18,0x0f,0x89,0x00,0x0c,0x05,0x0b,0x0b,0x03,0x12,0x99,0x13,0x19,0x06,0x03,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0xed,0x11,0x33,0x33,0x31,0x30,0x13,0x34,0x12, +0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0x82,0xb1,0x9b,0x1b,0x01,0x62,0xa7,0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51, +0x96,0x3b,0xf3,0x01,0x35,0x00,0x00,0x02,0x00,0x77,0xff,0xe8,0x04,0x41,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x20,0x40,0x10,0x00,0x89,0x0c,0x0c,0x19,0x12,0x89,0x06,0x09,0x99,0x0f,0x06,0x15,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33, +0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x41,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe,0xeb,0xfe,0xfc,0x01, +0x02,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0x94,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x57,0x40,0x30,0x21,0x89,0x14,0x19,0x0a,0x89,0x2d,0x1e,0x2d,0x00,0x89,0x07,0x14,0x2d,0x03,0x07,0x17,0x17,0x07,0x03,0x2d,0x14,0x05,0x2f,0x26,0x89,0x11,0x09,0x23,0x9b,0x14,0x19,0x21,0x21,0x0d,0x18,0x20,0x9b,0x15,0x06,0x2a,0x99, +0x0d,0x18,0x04,0x99,0x03,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37, +0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x05,0x94,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01, +0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02,0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0xf0,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x62,0xb4,0x23,0x89,0x0d,0x13,0x16,0xb8,0x01, +0x84,0x40,0x0f,0x2f,0x2a,0x89,0x04,0x00,0x0d,0x2f,0x04,0x04,0x2f,0x0d,0x00,0x04,0x3c,0x35,0xbe,0x01,0x84,0x00,0x1c,0x00,0x32,0x01,0x7e,0x00,0x13,0x00,0x38,0x01,0x7e,0x40,0x12,0x19,0x08,0x27,0x27,0x19,0x13,0x19,0x13,0x19,0x01,0x10,0x9b,0x20,0x06,0x2d,0x99,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15, +0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xf0,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04,0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f, +0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0x8c,0x00,0x00,0x05,0xd1,0x05,0x31,0x00,0x20,0x00,0x51,0x40,0x2b,0x16,0x0c, +0x89,0x0d,0x1f,0x1c,0x89,0x05,0x14,0x00,0x05,0x0d,0x01,0x05,0x05,0x01,0x0d,0x03,0x22,0x10,0x89,0x11,0x02,0x1f,0x99,0x01,0x08,0x9b,0x16,0x01,0x19,0x19,0x12,0x01,0x18,0x15,0x0f,0x9b,0x12,0x06,0x0d,0x11,0x18,0x00,0x3f,0x33,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x11,0x39,0x39,0x10,0xed,0x32,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x05,0xd1,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72, +0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38,0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x05,0xa3,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x50,0x40,0x2b,0x18,0x89,0x0c,0x11,0x02,0x89,0x24,0x15, +0x24,0x00,0x89,0x12,0x0c,0x24,0x0f,0x12,0x12,0x0f,0x24,0x0c,0x04,0x26,0x1e,0x89,0x09,0x01,0x1a,0x9b,0x11,0x0c,0x18,0x18,0x05,0x10,0x17,0x9b,0x13,0x0d,0x06,0x21,0x99,0x05,0x18,0x00,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10, +0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x05,0xa3,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed, +0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x8c,0xfd,0xb9,0x07,0x18,0x07,0x21,0x00,0x34,0x00,0x62,0x40,0x35,0x19,0x89,0x1a,0x1f, +0x15,0x89,0x16,0x24,0x8a,0x0f,0x34,0x8a,0x00,0x1d,0x16,0x0f,0x1a,0x16,0x0f,0x00,0x00,0x0f,0x16,0x1a,0x04,0x36,0x08,0x89,0x2c,0x1e,0x18,0x9b,0x1b,0x04,0x9b,0x30,0x1b,0x12,0x9b,0x1f,0x21,0x00,0x21,0x00,0x1a,0x1b,0x06,0x0c,0x99,0x28,0x16,0x1a,0x18,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x10,0xd4, +0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x33,0x32,0x16, +0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x76,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93,0xc3,0xd3,0x01,0x8c,0x01,0x10, +0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01,0x1a,0xfe,0xfe,0x2c,0xfe,0xce, +0x00,0x03,0x00,0x50,0x00,0x00,0x07,0x45,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x7a,0x40,0x44,0x3e,0x89,0x2d,0x03,0x23,0x89,0x3a,0x3b,0x3a,0x06,0x1d,0x89,0x1e,0x10,0x0d,0x89,0x17,0x2d,0x3a,0x1e,0x01,0x13,0x17,0x12,0x12,0x17,0x13,0x01,0x1e,0x3a,0x2d,0x07,0x40,0x34,0x89,0x2a,0x14,0x10,0x99,0x13,0x19,0x9b,0x06,0x13, +0x0a,0x0a,0x2e,0x13,0x18,0x22,0x30,0x9b,0x03,0x2d,0x3e,0x3e,0x26,0x02,0x3d,0x9b,0x2e,0x06,0x37,0x99,0x26,0x18,0x1e,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32, +0x10,0xed,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x30,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d, +0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x05,0x5f,0x05,0x31,0x00,0x1a,0x00,0x26, +0x00,0x41,0x40,0x23,0x0f,0x89,0x1b,0x02,0x89,0x03,0x1b,0x03,0x00,0x00,0x03,0x1b,0x03,0x28,0x09,0x21,0x89,0x15,0x1e,0x9b,0x09,0x0c,0x0c,0x12,0x01,0x05,0x9b,0x19,0x06,0x24,0x99,0x12,0x18,0x03,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5f,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88,0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3, +0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x00,0x03,0x00,0x32,0xff,0x00,0x06,0xe6,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40, +0x00,0x78,0x40,0x2c,0x29,0x01,0x89,0x02,0x28,0x89,0x11,0x04,0x89,0x2b,0x14,0x17,0x89,0x35,0x3b,0x8a,0x1e,0x0f,0x11,0x2b,0x02,0x11,0x2b,0x35,0x1e,0x1e,0x35,0x2b,0x11,0x02,0x05,0x42,0x2f,0x89,0x0b,0x2a,0x06,0x04,0x2c,0x9b,0x0e,0x28,0x0e,0x3e,0xb8,0x01,0x80,0x40,0x13,0x1a,0x14,0x1a,0x22,0x0e,0x1a,0x0e,0x1a,0x07,0x38,0x9b, +0x22,0x06,0x32,0x99,0x07,0x19,0x02,0x18,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x06, +0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xe6,0xa8,0xfb,0x59, +0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44,0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74, +0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x50,0xff,0xe4,0x07,0x4d,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x91,0x40,0x50, +0x40,0x89,0x20,0x13,0x15,0x08,0x41,0x26,0x03,0x03,0x23,0x23,0x03,0x25,0x15,0x89,0x3c,0x3d,0x3c,0x44,0x8a,0x11,0x0b,0x8a,0x49,0x30,0x00,0x2d,0x8a,0x03,0x00,0x49,0x03,0x20,0x3c,0x11,0x49,0x03,0x03,0x49,0x11,0x3c,0x20,0x05,0x4e,0x36,0x89,0x1d,0x14,0x32,0x9b,0x25,0x20,0x40,0x40,0x19,0x23,0x3f,0x9b,0x21,0x06,0x9b,0x08,0x41, +0x29,0x29,0x0e,0x21,0x06,0x39,0x99,0x19,0x18,0x47,0x99,0x0e,0x18,0x00,0x30,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0xed,0x10,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, +0x10,0xed,0x32,0x11,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x07, +0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x43,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47,0x3d, +0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28,0x5d, +0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x02,0x00,0x72,0xff,0xe5,0x05,0x5b,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x0c,0x8b,0x1c,0x1c,0x21,0x14,0x8b,0x04,0x10,0x9b,0x08,0x06,0x18,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f, +0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x02,0xe6,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f, +0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81,0xe0,0x7e,0x00,0x00,0x01,0x00,0x74,0xff,0xe6,0x06,0x74,0x04,0xc9,0x00,0x1b,0x00,0x3e,0xb4,0x07,0x06,0x15,0x16,0x12,0xb8,0x01,0x85,0x40,0x0a,0x18,0x06,0x16, +0x18,0x18,0x16,0x06,0x03,0x1d,0x04,0xb8,0x01,0x85,0x40,0x0b,0x0a,0x00,0x9b,0x0e,0x06,0x16,0x06,0x06,0x15,0x07,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32, +0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x74,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf,0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69, +0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x60,0x00,0x00,0x06,0x3d,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x45,0xb9,0x00,0x19,0x01,0x85,0x40,0x12,0x05,0x08,0x0a,0x8b,0x1f,0x25,0x8b,0x11,0x05,0x1f,0x11,0x11,0x1f,0x05,0x03,0x2c,0x00,0x28,0xb8,0x01,0x80,0x40,0x0c,0x08,0x0e,0x0e,0x15,0x00,0x99,0x1e,0x18,0x22,0x9b, +0x15,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27, +0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x60,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91,0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe, +0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x00,0x01,0x00,0x58,0xff,0xe7,0x03,0xcf,0x04,0xc9,0x00,0x28,0x00,0x53,0x40,0x2c,0x23,0x8b,0x17,0x00,0x8b,0x0e,0x26,0x0e,0x12,0x17,0x0e,0x0e,0x17,0x12,0x03,0x2a,0x1c,0x1d,0x07,0x06,0x06,0x07,0x26,0x12,0x9b,0x13,0x1d,0x1c,0x07,0x13, +0x1c,0x1c,0x13,0x07,0x03,0x1f,0x0a,0x99,0x04,0x19,0x1a,0x9b,0x1f,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x39,0x11,0x33,0x01,0x2f,0x33,0xc6,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36, +0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x03,0xcf,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba,0x68,0x49,0x50,0x4e,0x5e,0x01,0x54, +0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x02,0x00,0x73,0xff,0xe8,0x05,0x9f,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x66,0x40,0x36,0x16,0x8b,0x0f,0x13,0x12,0x1d,0x8b,0x03,0x08,0x8b,0x23,0x2a,0x2b,0x1a,0x12,0x25,0x03,0x23, +0x0f,0x12,0x03,0x23,0x2b,0x2b,0x23,0x03,0x12,0x0f,0x05,0x34,0x2e,0x8b,0x28,0x2b,0x2a,0x06,0x9b,0x0c,0x1a,0x26,0x0c,0x20,0x2a,0x0c,0x2a,0x0c,0x13,0x00,0x9a,0x20,0x19,0x12,0x13,0x06,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06, +0x15,0x14,0x16,0x16,0x17,0x02,0xfe,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39,0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31, +0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54,0x20,0x00,0x00,0x02,0x00,0x5d,0xff,0xc0,0x06,0x59,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x7f,0xb9,0x00,0x1a,0x01,0x84,0x40,0x0a,0x19,0x0a,0x8b,0x34,0x13,0x20,0x3a,0x8b,0x04, +0x00,0xb8,0x01,0x84,0x40,0x14,0x2c,0x02,0x0d,0x20,0x03,0x34,0x2c,0x04,0x2f,0x19,0x34,0x04,0x2f,0x2f,0x04,0x34,0x19,0x04,0x40,0x28,0xb8,0x01,0x84,0x40,0x0c,0x29,0x00,0x2c,0x28,0x2f,0x9b,0x30,0x06,0x29,0x28,0x19,0x3c,0xb8,0x01,0x81,0x40,0x0f,0x02,0x0d,0x25,0x19,0x25,0x19,0x07,0x16,0x99,0x1d,0x19,0x37,0x9b,0x07,0x06,0x00, +0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x39,0xed,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17, +0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37,0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0xbd,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31, +0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02,0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f, +0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07,0x62,0x00,0x01,0x00,0x73,0x00,0x00,0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x02,0x00,0x0a,0x13,0x1a,0x1a,0x13,0x0a,0x03,0x20,0x0e,0x17,0x8a,0x04,0x00,0x02,0x14,0x9b, +0x11,0x11,0x08,0x19,0x99,0x1c,0x18,0x0b,0x9b,0x08,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15, +0x21,0x22,0x26,0x73,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x00,0x70,0xff,0xe5,0x04,0x44,0x04,0xc9,0x00,0x2e,0x00,0x54, +0xb3,0x04,0x8a,0x03,0x22,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1a,0x8b,0x1b,0x03,0x14,0x1b,0x1b,0x14,0x03,0x03,0x30,0x2c,0xb8,0x01,0x85,0x40,0x11,0x0b,0x2c,0x07,0x03,0x14,0x1b,0x1e,0x03,0x1b,0x03,0x1b,0x07,0x17,0x9b,0x1e,0x06,0x00,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39, +0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x02,0x56, +0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c,0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53, +0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x74,0xff,0xe7,0x06,0x8b,0x04,0xc9,0x00,0x20,0x00,0x42,0xb1,0x03,0x06,0xb8,0x01,0x85,0x40,0x0c,0x1d,0x12,0x20,0x1d,0x01,0x01,0x1d,0x20,0x12,0x04,0x22,0x15,0xb8,0x01,0x85,0xb5,0x0e,0x12,0x11,0x11,0x00,0x19,0xb8,0x01,0x81,0xb6,0x0a,0x19,0x20,0x03, +0x9b,0x00,0x06,0x00,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x03,0x21,0x03, +0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb,0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x73,0x00,0x00, +0x05,0xa9,0x04,0xbe,0x00,0x1e,0x00,0x38,0x40,0x1d,0x1d,0x1b,0x16,0x0e,0x04,0x04,0x0e,0x16,0x03,0x20,0x08,0x12,0x8a,0x00,0x1b,0x1d,0x0f,0x9b,0x0c,0x0c,0x03,0x14,0x99,0x17,0x18,0x06,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x31,0x30, +0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x73,0xcf,0xbd,0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c, +0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x05,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x23,0x40,0x0d,0x00,0x8a,0x10,0x10,0x21,0x18,0x8a,0x08,0x14,0x9b,0x0c,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x04,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31, +0x30,0x01,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x05,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e, +0x02,0x55,0xa2,0xfe,0xea,0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x00,0x01,0x00,0x82,0xff,0xfd,0x05,0x1b,0x04,0xac,0x00,0x1d,0x00,0x37,0x40,0x1c,0x13,0x12,0x03,0x04,0x00,0x8a,0x07,0x12,0x04,0x07,0x07,0x04,0x12,0x03,0x1f,0x0f,0x8a,0x16, +0x0b,0x9b,0x1a,0x06,0x04,0x12,0x12,0x03,0x13,0x18,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04, +0x12,0x05,0x1b,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00,0x01,0x00,0x64, +0x00,0x00,0x04,0x54,0x04,0xac,0x00,0x25,0x00,0x44,0x40,0x0f,0x17,0x18,0x00,0x8a,0x0b,0x18,0x0b,0x18,0x0b,0x27,0x12,0x89,0x05,0x1e,0x15,0xb8,0x01,0x81,0x40,0x0c,0x18,0x17,0x1a,0x17,0x1a,0x17,0x05,0x0f,0x9b,0x22,0x06,0x06,0xb8,0x01,0x81,0xb1,0x05,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xed,0x01, +0x2f,0xc4,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0x54,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, +0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0x82,0xff,0xdd,0x04,0xa3,0x04,0xac, +0x00,0x32,0x00,0x3c,0x00,0x7a,0x40,0x21,0x1e,0x1f,0x1f,0x13,0x1a,0x8a,0x25,0x2c,0x8a,0x13,0x03,0x11,0x35,0x03,0x25,0x2e,0x13,0x00,0x25,0x13,0x00,0x00,0x13,0x25,0x03,0x3e,0x3a,0x8a,0x0a,0x38,0x9b,0x0e,0x1c,0xb8,0x01,0x81,0x40,0x12,0x22,0x1f,0x1e,0x11,0x35,0x2e,0x03,0x04,0x06,0x0e,0x22,0x1e,0x1e,0x22,0x0e,0x03,0x28,0x33, +0xb8,0x01,0x81,0xb2,0x06,0x18,0x30,0xb8,0x01,0x81,0xb5,0x00,0x19,0x17,0x9b,0x28,0x06,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30, +0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x04,0xa3,0x54, +0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c,0x42,0x6f,0x55,0x53,0xbe,0x6e, +0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x6e,0xff,0xf3,0x05,0x8a,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x39,0x37,0x8a,0x11,0x26,0x26,0x22,0x1b,0x8a,0x27,0x0b,0x8a,0x31,0x05,0x8a,0x22,0x2f, +0x15,0x11,0x13,0x1d,0x27,0x08,0x31,0x22,0x11,0x27,0x31,0x22,0x22,0x31,0x27,0x11,0x04,0x3e,0x2c,0x8b,0x15,0x26,0x9b,0x00,0x06,0x34,0x9b,0x13,0x08,0x0e,0x1d,0x2f,0x18,0x1f,0x1f,0x0e,0x29,0x9b,0x18,0x06,0x3a,0xb8,0x01,0x81,0xb1,0x0e,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x39,0xed,0x3f,0xed, +0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36, +0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfe,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56,0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88, +0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a,0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45, +0x00,0x03,0x00,0x82,0xff,0xdc,0x05,0xd8,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x99,0x40,0x4a,0x00,0x8b,0x36,0x04,0x8b,0x0b,0x3b,0x8b,0x30,0x22,0x21,0x21,0x1e,0x18,0x18,0x3f,0x08,0x08,0x0b,0x2c,0x0f,0x8a,0x3f,0x1e,0x8b,0x25,0x02,0x36,0x2e,0x0d,0x3d,0x03,0x0b,0x30,0x36,0x0b,0x30,0x3f,0x25,0x25,0x3f,0x30,0x0b,0x36, +0x05,0x49,0x42,0x8b,0x15,0x3f,0x0f,0x9b,0x18,0x3d,0x2e,0x33,0x02,0x0d,0x2c,0x2c,0x07,0x39,0x9b,0x33,0x06,0x21,0x22,0x22,0x12,0x1b,0x9b,0x28,0x06,0x45,0xb8,0x01,0x80,0xb2,0x12,0x18,0x08,0xb8,0x01,0x80,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x39,0x39,0x12,0x39,0x39, +0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x25,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xd8,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b, +0xc7,0xa8,0x73,0xa0,0xea,0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73, +0xa2,0x9e,0x18,0xac,0xfa,0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x02,0x00,0x64,0x00,0x00,0x05,0x43,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x64,0xb9,0x00,0x11,0x01,0x85,0x40, +0x12,0x1e,0x23,0x8b,0x17,0x0c,0x8b,0x07,0x00,0x1e,0x17,0x07,0x07,0x17,0x1e,0x00,0x04,0x2a,0x19,0xb8,0x01,0x85,0x40,0x09,0x09,0x05,0x17,0x23,0x23,0x21,0x9b,0x0e,0x26,0xb8,0x01,0x81,0x40,0x0d,0x0c,0x07,0x0e,0x14,0x14,0x01,0x0e,0x06,0x09,0x9b,0x0a,0x06,0x1c,0xb8,0x01,0x81,0xb1,0x01,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12, +0x39,0x2f,0x12,0x39,0x39,0xed,0x10,0xed,0x32,0x11,0x33,0x01,0x2f,0xc6,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23,0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23, +0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x43,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e,0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a, +0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x04,0x9e,0x04,0xc1,0x00,0x27,0x00,0x42,0x40,0x1a,0x11,0x8a,0x16,0x1c,0x8a,0x0b,0x16,0x0b,0x27,0x27,0x0b,0x16,0x03,0x29,0x23,0x8a,0x05,0x1e,0x09,0x13,0x09,0x01,0x14,0x14,0x19,0x26,0xb8,0x01,0x81,0xb5,0x01,0x18,0x0e,0x9b,0x19,0x06, +0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15, +0x14,0x16,0x33,0x21,0x04,0x9e,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61,0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70, +0x5b,0x83,0x00,0x02,0x00,0x82,0x00,0x00,0x05,0x43,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x59,0xb3,0x24,0x24,0x22,0x13,0xb8,0x01,0x84,0x40,0x24,0x27,0x01,0x04,0x8a,0x22,0x27,0x22,0x00,0x00,0x22,0x27,0x03,0x33,0x2d,0x1a,0x8a,0x0c,0x2f,0x99,0x16,0x24,0x01,0x9b,0x25,0x18,0x25,0x16,0x25,0x16,0x25,0x08,0x2a,0x9b,0x10,0x06,0x1e, +0xb8,0x01,0x81,0xb1,0x08,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x43,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f, +0x25,0x2e,0x41,0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x02,0x00,0x82,0x00,0x00,0x04,0x44,0x04,0xac,0x00,0x26,0x00,0x31, +0x00,0x70,0x40,0x3c,0x17,0x18,0x0b,0x8b,0x31,0x10,0x89,0x1d,0x1f,0x06,0x2c,0x03,0x31,0x1d,0x00,0x18,0x31,0x1d,0x1d,0x31,0x18,0x00,0x04,0x33,0x04,0x8a,0x21,0x18,0x17,0x2f,0x99,0x0e,0x29,0x9b,0x08,0x06,0x2c,0x1f,0x10,0x04,0x0e,0x08,0xc0,0x0e,0xf0,0x0e,0x02,0x17,0x0e,0x08,0x08,0x0e,0x17,0x03,0x1a,0x01,0x9b,0x25,0x06,0x15, +0xb8,0x01,0x81,0xb1,0x1a,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0x44,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c,0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b, +0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b,0x29,0x00,0x00,0x02,0x00,0x5d,0xff,0xe8,0x03,0xe9,0x03,0x7c,0x00,0x0b, +0x00,0x1b,0x00,0x23,0x40,0x0d,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06,0x00,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x02,0x23,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0,0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x02,0x00,0x00,0xfe,0x63,0x06,0xd4,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x37,0x40,0x1e, +0x21,0x8a,0x11,0x00,0x8a,0x19,0x11,0x09,0x19,0x19,0x09,0x11,0x03,0x23,0x04,0x89,0x0d,0x1d,0x9b,0x15,0x07,0x07,0x99,0x0a,0x18,0x21,0x10,0x99,0x01,0x18,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21, +0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21,0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xd4,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d, +0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02,0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x01,0x00,0x64,0xff,0xe6,0x07,0x12,0x05,0xb3,0x00,0x1e,0x00,0x3d,0x40,0x21,0x10,0x0f,0x1e,0x89,0x02,0x1b,0x89,0x06,0x0f,0x02,0x06,0x00,0x00,0x06,0x02,0x0f,0x04,0x20,0x0c,0x89,0x13,0x03,0x1e,0x99,0x02,0x18,0x09,0x9b, +0x17,0x07,0x0f,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x07,0x12, +0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x00,0x01,0x00,0x64, +0xff,0xe6,0x07,0x1b,0x05,0xb3,0x00,0x2d,0x00,0x50,0x40,0x2b,0x19,0x18,0x22,0x0d,0x8a,0x0e,0x2d,0x2a,0x8a,0x06,0x01,0x06,0x18,0x0e,0x02,0x06,0x06,0x02,0x0e,0x18,0x04,0x2f,0x15,0x8a,0x1c,0x22,0x19,0x09,0x12,0x9b,0x26,0x1f,0x07,0x18,0x19,0x19,0x0e,0x18,0x03,0x2d,0x99,0x02,0x18,0x00,0x3f,0xed,0x39,0x3f,0x3f,0x33,0x3f,0x33, +0xed,0x32,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x32,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36, +0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x07,0x1b,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66,0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9, +0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93,0x56,0x00,0x00,0x02,0x00,0x61,0xff,0xe6,0x06,0x81,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x6d,0x40,0x38,0x14,0x13,0x37,0x89,0x07,0x00,0x89,0x31,0x26,0x26,0x10,0x2b,0x89,0x20,0x1d,0x34,0x0a,0x03,0x07,0x31, +0x2e,0x20,0x13,0x07,0x31,0x20,0x20,0x31,0x07,0x13,0x04,0x3e,0x10,0x89,0x17,0x1d,0x2e,0x0a,0x34,0x04,0x04,0x26,0x25,0x25,0x1b,0x23,0x9b,0x28,0x0c,0x9b,0x1b,0x07,0x13,0x14,0x19,0x3a,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x31,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b, +0xbb,0xb2,0x7c,0x69,0x80,0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe, +0x01,0x24,0x00,0x01,0x00,0x61,0xfd,0xfe,0x07,0x0f,0x07,0x61,0x00,0x43,0x00,0x71,0x40,0x38,0x1f,0x8a,0x24,0x22,0x21,0x2a,0x8a,0x19,0x30,0x8a,0x11,0x00,0x01,0x41,0x8a,0x03,0x2c,0x11,0x01,0x24,0x21,0x14,0x19,0x11,0x01,0x03,0x03,0x01,0x11,0x19,0x14,0x21,0x24,0x07,0x45,0x0a,0x8a,0x39,0x01,0x00,0x19,0x06,0x9b,0x3d,0x27,0x2c, +0x14,0x9b,0x15,0x15,0x22,0x1c,0x9b,0x27,0x07,0x0e,0xb8,0x01,0x80,0xb3,0x34,0x21,0x22,0x19,0x00,0x3f,0x33,0xd4,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x10,0xd4,0xed,0x3f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31, +0x30,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32, +0x04,0x12,0x11,0x14,0x02,0x06,0x7d,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01,0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01, +0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc,0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9, +0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xf4,0x05,0xb3,0x00,0x3e,0x00,0x6a,0x40,0x0b,0x00,0x3e,0x0a,0x33,0x8a,0x34,0x11,0x2a,0x8a,0x2b,0x17,0xb8,0x01,0x85,0x40,0x24,0x23,0x3e,0x34,0x1d,0x2b,0x23,0x23,0x2b,0x1d,0x34,0x3e,0x05,0x40,0x3c,0x8a,0x03,0x12,0x0b, +0x0b,0x34,0x2f,0x26,0x38,0x9b,0x15,0x0e,0x07,0x07,0x3e,0x00,0x19,0x1d,0x1e,0x1e,0x34,0x20,0xb8,0x01,0x80,0xb3,0x1b,0x2b,0x34,0x18,0x00,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x3f,0x33,0x3f,0x33,0x33,0xed,0x32,0x32,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10, +0xed,0x39,0x11,0x33,0x31,0x30,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11,0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22, +0x06,0x02,0x15,0x10,0x17,0xee,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99,0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f, +0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03,0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x00,0x46,0xff,0xe6,0x05,0x17,0x05,0xb3,0x00,0x0b,0x00,0x30, +0x00,0x47,0x40,0x1d,0x2a,0x89,0x13,0x17,0x1b,0x89,0x00,0x13,0x00,0x30,0x30,0x00,0x13,0x03,0x32,0x06,0x8a,0x22,0x09,0x99,0x30,0x0c,0x18,0x1f,0x0c,0x1f,0x0c,0x26,0x0f,0xb8,0x01,0x80,0xb5,0x2e,0x19,0x03,0x9b,0x26,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x02,0x8f,0x6e,0x5e,0x5e,0x7a, +0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf,0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60, +0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x00,0x01,0x00,0x64,0xfd,0xfe,0x06,0xea,0x05,0xb3,0x00,0x2d,0x00,0x57,0x40,0x2a,0x2c,0x01,0x8a,0x0e,0x28,0x89,0x13,0x1d,0x1c,0x0e,0x13,0x0f,0x07,0x1c,0x1c,0x07,0x0f,0x13,0x0e,0x05,0x2f,0x19,0x89,0x20,0x2d,0x06,0x16,0x9b,0x24,0x07, +0x1c,0x1d,0x19,0x10,0x2b,0x99,0x0f,0x07,0x08,0x08,0x0f,0x0b,0xb8,0x01,0x80,0xb2,0x04,0x0f,0x18,0x00,0x3f,0xd4,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x39,0x3f,0x33,0x3f,0xed,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x33,0x31,0x30,0x01,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35, +0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xea,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83,0x98,0x80,0x78, +0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x05,0x06,0x00, +0x00,0x02,0x00,0x61,0xff,0xe6,0x07,0x02,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x84,0x40,0x45,0x1b,0x1a,0x26,0x10,0x8a,0x11,0x46,0x8a,0x07,0x00,0x8a,0x40,0x35,0x35,0x17,0x3a,0x8a,0x2e,0x2b,0x43,0x0a,0x03,0x07,0x40,0x3d,0x2e,0x1a,0x11,0x07,0x40,0x2e,0x2e,0x40,0x07,0x11,0x1a,0x05,0x4c,0x17,0x8a,0x1e,0x0c,0x14,0x9b,0x22,0x2b, +0x26,0x43,0x0a,0x3d,0x26,0x04,0x04,0x35,0x34,0x34,0x22,0x31,0x9b,0x37,0x29,0x22,0x07,0x1a,0x1b,0x19,0x11,0x18,0x48,0xb8,0x01,0x80,0xb1,0x04,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x3f,0x33,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x39, +0x11,0x12,0x17,0x39,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17, +0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0xc2,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90, +0x85,0x3d,0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad, +0x90,0x81,0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x2b,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x20,0x40,0x10,0x18,0x89,0x03,0x03,0x1d,0x09,0x89,0x10,0x06,0x9b,0x14,0x06, +0x00,0x99,0x0c,0x18,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x02,0xd5,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab, +0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0xa3,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x5f,0xbc,0x00,0x2c,0x01,0x82,0x00,0x00,0x00,0x06,0x01,0x82,0x40,0x18,0x32,0x14,0x89,0x1b,0x28, +0x32,0x00,0x32,0x17,0x1b,0x1b,0x17,0x32,0x00,0x04,0x39,0x22,0x89,0x0c,0x18,0x99,0x17,0x18,0x2f,0xb8,0x01,0x7d,0x40,0x11,0x28,0x35,0x9b,0x03,0x28,0x03,0x28,0x03,0x09,0x1f,0x9b,0x10,0x06,0x26,0x99,0x09,0x18,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f, +0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x02,0x28,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a, +0x88,0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x02,0x00,0xb4,0x00,0x00,0x05,0x90,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x71,0xb9,0x00,0x2d,0x01,0x83,0x40,0x2f,0x00,0x42,0x8c,0x30,0x39,0x8c,0x48,0x27,0x26,0x06,0x0e, +0x89,0x1f,0x06,0x48,0x1f,0x00,0x30,0x48,0x1f,0x1f,0x48,0x30,0x00,0x04,0x4c,0x18,0x89,0x15,0x16,0x06,0x45,0x3f,0x30,0x3c,0x36,0x06,0x27,0x3c,0x36,0x27,0x27,0x36,0x3c,0x03,0x03,0x1b,0xb8,0x01,0x80,0xb7,0x12,0x18,0x23,0x2a,0x9b,0x0a,0x03,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11, +0x12,0x39,0x33,0x32,0x3f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x22,0x76,0x72,0x41,0x5d,0x15,0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b, +0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b,0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a, +0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x02,0x00,0x82,0xff,0xf4,0x05,0x73,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x71,0xbc,0x00,0x31,0x01,0x82,0x00,0x25,0x00,0x2b,0x01,0x82,0x40,0x30,0x37,0x1c,0x1b,0x09,0x0f,0x89,0x15, +0x09,0x37,0x12,0x25,0x37,0x12,0x15,0x15,0x12,0x37,0x25,0x04,0x3b,0x22,0x89,0x03,0x13,0x99,0x12,0x18,0x18,0x1f,0x9b,0x06,0x2e,0x9b,0x25,0x00,0x28,0x09,0x1c,0x06,0x28,0x1c,0x28,0x1c,0x00,0x0c,0x06,0x06,0x34,0xb8,0x01,0x7d,0xb1,0x00,0x18,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0xed, +0x10,0xed,0x32,0x3f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15, +0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x2f,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e,0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37, +0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74,0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x3b, +0x00,0x47,0x00,0x84,0xb9,0x00,0x06,0x01,0x82,0xb4,0x3f,0x28,0x89,0x27,0x45,0xbb,0x01,0x82,0x00,0x0c,0x00,0x0e,0x01,0x83,0x40,0x16,0x00,0x39,0x0c,0x00,0x14,0x3f,0x27,0x0c,0x00,0x00,0x0c,0x27,0x3f,0x14,0x05,0x49,0x32,0x89,0x1e,0x17,0x11,0x3c,0xb8,0x01,0x7d,0x40,0x1a,0x09,0x42,0x9b,0x03,0x22,0x2d,0x11,0x1b,0x0c,0x09,0x2d, +0x03,0x27,0x09,0x03,0x09,0x03,0x1b,0x27,0x06,0x39,0x35,0x99,0x1b,0x18,0x13,0xb8,0x01,0x80,0xb1,0x14,0x19,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed, +0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37, +0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xcb,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f, +0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a, +0x2a,0x3a,0x00,0x03,0x00,0x82,0xff,0xed,0x05,0x4b,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0xaa,0xbf,0x00,0x29,0x01,0x83,0x00,0x1b,0x00,0x4d,0x01,0x82,0x00,0x27,0x00,0x21,0x01,0x82,0x40,0x12,0x47,0x18,0x27,0x1b,0x27,0x47,0x2f,0x2f,0x47,0x27,0x1b,0x04,0x11,0x5d,0x07,0x89,0x06,0x00,0xb8,0x01,0x82,0x40,0x18,0x56,0x50, +0x8c,0x3e,0x3c,0x56,0x3e,0x06,0x56,0x3e,0x3e,0x56,0x06,0x03,0x5d,0x11,0x89,0x39,0x0c,0x01,0x4b,0x9b,0x1e,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x24,0x32,0x2c,0x3c,0x53,0x01,0x03,0x41,0x27,0x1e,0x2c,0x24,0x1e,0x24,0x1e,0x24,0x36,0x59,0x41,0x06,0x18,0x14,0x99,0x36,0x18,0x2e,0xb8,0x01,0x80,0xb3,0x2f,0x19,0x06,0x06,0x00,0x3f,0x3f, +0xed,0x3f,0xed,0x32,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x12,0x39,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x07, +0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x5d,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41, +0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59, +0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01,0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x00,0x50,0xff,0xf4,0x04,0xa7,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x63,0x40,0x09,0x18,0x89,0x05,0x25, +0x8c,0x2f,0x12,0x0b,0x29,0xb8,0x01,0x83,0x40,0x14,0x1f,0x00,0x0b,0x2f,0x1f,0x05,0x2f,0x1f,0x1f,0x2f,0x05,0x03,0x36,0x0f,0x89,0x0e,0x32,0x9b,0x22,0x2c,0xb8,0x01,0x7d,0x40,0x12,0x00,0x12,0x0b,0x22,0x00,0x22,0x00,0x15,0x02,0x99,0x1c,0x18,0x08,0x9b,0x15,0x06,0x0e,0x06,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f, +0x39,0x39,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xb5,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58,0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9, +0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x80,0x05,0xe6,0x00,0x3b,0x00,0x47,0x00,0x7b,0x40,0x0c,0x17,0x89,0x14,0x26,0x25,0x06,0x06,0x2c, +0x0d,0x89,0x1e,0x35,0xb8,0x01,0x82,0x40,0x21,0x45,0x3f,0x8c,0x2f,0x1c,0x1e,0x45,0x14,0x1e,0x45,0x2f,0x2f,0x45,0x1e,0x14,0x04,0x49,0x2c,0x89,0x00,0x3c,0x9b,0x2e,0x38,0x32,0x06,0x26,0x32,0x26,0x32,0x26,0x03,0x42,0xb8,0x01,0x7d,0xb2,0x38,0x18,0x10,0xb8,0x01,0x80,0x40,0x0a,0x1c,0x18,0x15,0x06,0x21,0x29,0x9b,0x0a,0x03,0x06, +0x00,0x3f,0x33,0xed,0x32,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06, +0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48, +0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39,0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31, +0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x02,0x00,0x82,0xff,0xf6,0x05,0x9c,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x7e,0xb9,0x00,0x0b,0x01,0x82,0x40, +0x1b,0x47,0x27,0x89,0x26,0x41,0x8c,0x05,0x1a,0x33,0x00,0x47,0x26,0x33,0x05,0x1d,0x47,0x26,0x05,0x05,0x26,0x47,0x03,0x4e,0x31,0x89,0x1d,0x44,0xb8,0x01,0x7d,0x40,0x1a,0x02,0x15,0x9b,0x36,0x4a,0x9b,0x08,0x21,0x2c,0x00,0x02,0x36,0x2c,0x08,0x26,0x02,0x36,0x08,0x08,0x36,0x02,0x03,0x0e,0x26,0x06,0x33,0xb8,0x01,0x81,0xb5,0x1a, +0x18,0x3d,0x99,0x0e,0x18,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x04,0xfc,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a, +0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39, +0x3a,0x00,0x00,0x02,0x00,0x82,0xff,0xf4,0x06,0x1b,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x7a,0x40,0x0a,0x06,0x20,0x2a,0x13,0x89,0x12,0x21,0x89,0x22,0x32,0xbb,0x01,0x82,0x00,0x41,0x00,0x3b,0x01,0x82,0x40,0x19,0x2c,0x12,0x22,0x41,0x2c,0x2c,0x41,0x22,0x12,0x04,0x45,0x2a,0x89,0x00,0x38,0x9b,0x06,0x20,0x03,0x2c,0x35,0x2f,0x2f, +0x03,0x3e,0xb8,0x01,0x7d,0x40,0x15,0x35,0x18,0x1d,0x9b,0x09,0x17,0x9b,0x0f,0x09,0x0f,0x09,0x0f,0x12,0x22,0x18,0x12,0x06,0x26,0x9b,0x03,0x06,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10, +0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x82,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23,0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65, +0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73,0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28, +0x3c,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x05,0x3f,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x20,0x40,0x10,0x04,0x89,0x13,0x13,0x20,0x1b,0x89,0x0c,0x00,0x99,0x17,0x06,0x10,0x99,0x08,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34, +0x12,0x24,0x13,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x02,0xe2,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb, +0xe5,0xf9,0xc8,0x80,0xd0,0x74,0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0x78,0xff,0xf7,0x05,0x3b,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x61,0xb5,0x29,0x89,0x04,0x00,0x01,0x19,0xbb,0x01,0x82,0x00,0x2e,0x00,0x33,0x01,0x82,0x40,0x12,0x13,0x11,0x2e,0x13,0x04,0x01,0x2e,0x13,0x13,0x2e,0x01,0x04,0x04,0x38,0x0c,0x89,0x21,0x0f, +0xb8,0x01,0x7f,0x40,0x11,0x2b,0x11,0x31,0x11,0x16,0x1d,0x16,0x1d,0x16,0x00,0x25,0x99,0x08,0x06,0x01,0x00,0x18,0x00,0x3f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x32,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36, +0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xf3,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85, +0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9,0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe, +0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x04,0x52,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x5a,0xbf,0x00,0x2f,0x01,0x82,0x00,0x03,0x00,0x17,0x01,0x84,0x00,0x16,0x00,0x09,0x01,0x82,0x40,0x22,0x29,0x00,0x16,0x29,0x03,0x16,0x29,0x29,0x16,0x03,0x03,0x33,0x20,0x89,0x11, +0x13,0x1b,0x2c,0x06,0x31,0x00,0x1b,0x16,0x00,0x06,0x06,0x0d,0x17,0x16,0x07,0x24,0x99,0x0d,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x39,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69, +0x8f,0x57,0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x50, +0xff,0xf2,0x05,0x71,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x88,0x40,0x23,0x4e,0x89,0x27,0x54,0x22,0x07,0x89,0x3f,0x24,0x46,0x16,0x2f,0x04,0x27,0x2d,0x89,0x48,0x0f,0x89,0x35,0x22,0x3f,0x27,0x3f,0x48,0x35,0x45,0x45,0x35,0x48,0x3f,0x27,0x05,0x5e,0x5a,0xb8,0x01,0x82,0x40,0x1e,0x1c,0x0a,0x3b,0x45,0x3b,0x00,0x00,0x2a, +0x04,0x9b,0x42,0x2a,0x57,0x9b,0x24,0x2f,0x22,0x16,0x04,0x19,0x46,0x2a,0x1f,0x1f,0x19,0x4c,0x9b,0x2a,0x06,0x51,0xb8,0x01,0x7d,0xb5,0x19,0x19,0x32,0x99,0x13,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x17,0x39,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34,0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x90,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb, +0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57,0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e, +0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae,0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27, +0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x78,0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x8b,0xbc,0x00,0x0d,0x01,0x84,0x00,0x43,0x00,0x3b,0x01,0x82,0x40,0x44,0x4b,0x25,0x89,0x22,0x51,0x03,0x03,0x3e,0x08,0x03,0x43,0x06,0x8a,0x34,0x13,0x32,0x22,0x34,0x43,0x4b,0x22,0x34,0x34,0x22,0x4b, +0x43,0x04,0x55,0x2d,0x89,0x19,0x46,0x0a,0x53,0x00,0x4d,0x38,0x1d,0x29,0x08,0x32,0x3e,0x13,0x04,0x10,0x0a,0x03,0x00,0x29,0x38,0x23,0x0a,0x00,0x38,0x38,0x00,0x0a,0x03,0x10,0x23,0x06,0x30,0x99,0x15,0x19,0x40,0x10,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x11,0x12,0x17,0x39, +0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x17,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34, +0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x42,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74, +0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e,0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f, +0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f,0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0x78, +0xff,0xf2,0x05,0x25,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0xba,0xb9,0x00,0x59,0x01,0x82,0xb6,0x3a,0x38,0x03,0x42,0x03,0x3a,0x40,0xb8,0x01,0x82,0x40,0x13,0x54,0x00,0x8a,0x45,0x3a,0x54,0x45,0x45,0x54,0x3a,0x03,0x33,0x6a,0x20,0x8a,0x10,0x66,0x1d,0x17,0xbb,0x01,0x82,0x00,0x60,0x00,0x27,0x01,0x84,0x40,0x41, +0x4d,0x1d,0x48,0x22,0x2d,0x0e,0x05,0x60,0x10,0x60,0x4d,0x4d,0x60,0x10,0x03,0x6a,0x09,0x89,0x33,0x50,0x24,0x68,0x1a,0x62,0x14,0x06,0x38,0x03,0x42,0x56,0x3d,0x22,0x0e,0x48,0x2d,0x04,0x2a,0x24,0x1d,0x1a,0x42,0x52,0x38,0x03,0x14,0x3d,0x24,0x1a,0x14,0x3d,0x3d,0x14,0x1a,0x24,0x04,0x2a,0x47,0x06,0x0c,0x99,0x2f,0x19,0x4a,0x2a, +0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x11,0x39,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10, +0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36, +0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x12,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6, +0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a, +0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f, +0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x78,0xff,0xf2,0x06,0x58,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0xad,0x40,0x0c,0x2a,0x29,0x38,0x89,0x1c,0x0c,0x3e,0x4e,0x16,0x04,0x0e,0x14,0xb8,0x01,0x84,0xb4,0x51,0x31,0x89,0x24,0x57,0xbb, +0x01,0x84,0x00,0x0e,0x00,0x4b,0x01,0x82,0x40,0x26,0x5c,0x62,0x03,0x03,0x5c,0x44,0x29,0x1c,0x51,0x24,0x0e,0x5c,0x5c,0x0e,0x24,0x51,0x1c,0x29,0x06,0x66,0x06,0x89,0x44,0x21,0x34,0x29,0x34,0x2a,0x2a,0x5f,0x2e,0x9b,0x27,0x5f,0x54,0x9b,0x11,0x59,0xb8,0x01,0x7d,0x40,0x11,0x00,0x4e,0x16,0x0c,0x3e,0x04,0x40,0x11,0x03,0x00,0x5f, +0x11,0x00,0x11,0x00,0x40,0x48,0xb8,0x01,0x7d,0xb7,0x5f,0x06,0x18,0x0a,0x99,0x3c,0x40,0x19,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x12,0x39,0x2f,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11, +0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x05,0x07,0x27, +0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x36,0x57,0x15,0x2e,0x40, +0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21,0x1a,0x1a,0x25,0xf4,0x1a, +0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a,0x6a,0x94,0x01,0x04,0x9f, +0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x64,0xfd,0xeb,0x05,0x98,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x85,0xb3,0x3b,0x1e,0x21,0x40,0xb8,0x01,0x82,0xb2,0x19,0x0f,0x00,0xb8,0x01,0x83,0x40,0x14,0x2e, +0x23,0x2e,0x11,0x89,0x21,0x06,0x89,0x07,0x19,0x2e,0x21,0x07,0x07,0x21,0x2e,0x19,0x04,0x45,0x33,0xb8,0x01,0x83,0x40,0x11,0x28,0x3f,0x9b,0x35,0x25,0x1e,0x16,0x1c,0x23,0x0f,0x25,0x1c,0x25,0x1c,0x25,0x0c,0x38,0xb8,0x01,0x7d,0x40,0x0f,0x07,0x16,0x19,0x30,0x2b,0x2e,0x00,0x00,0x0c,0x2b,0x2b,0x02,0x99,0x0c,0x06,0x00,0x3f,0xed, +0x39,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x3f,0xc6,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x39,0x11,0x12,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26,0x23, +0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfc,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d,0x82, +0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59,0x69, +0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0x70,0xfe,0xa4,0x05,0x65,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0xa6,0xb3,0x0a,0x56,0x14,0x0c,0xb8,0x01,0x82,0x40,0x09,0x5e,0x24, +0x06,0x89,0x5a,0x62,0x8c,0x14,0x3d,0xb8,0x01,0x82,0x40,0x1e,0x6b,0x71,0x37,0x34,0x89,0x44,0x37,0x6b,0x44,0x5e,0x5a,0x14,0x6b,0x44,0x44,0x6b,0x14,0x5a,0x5e,0x05,0x75,0x4b,0x89,0x1d,0x2b,0x9b,0x00,0x00,0x03,0x48,0xb8,0x01,0x80,0xb4,0x31,0x54,0x0a,0x14,0x68,0xb8,0x01,0x7d,0x40,0x1b,0x40,0x5a,0x21,0x6e,0x9b,0x3a,0x56,0x60, +0x14,0x03,0x1a,0x21,0x37,0x3a,0x40,0x3a,0x40,0x3a,0x1a,0x28,0x31,0x06,0x4e,0x99,0x1a,0x19,0x65,0xb8,0x01,0x7d,0xb1,0x0f,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x12,0x17,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x11,0x39,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34, +0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36, +0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xfa,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf,0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c, +0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51, +0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70,0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20, +0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0xff,0xf2,0x06,0xb5,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x64,0x40,0x09,0x02,0x89,0x31,0x00,0x33,0x27,0x89,0x0d,0x1a,0xb8,0x01,0x82,0x40,0x1b,0x37,0x3d,0x14,0x14,0x37,0x21,0x31,0x33,0x0d,0x37,0x37,0x0d,0x33,0x31,0x04,0x41, +0x12,0x89,0x21,0x3a,0x9b,0x14,0x1d,0x17,0x17,0x0f,0x34,0xb8,0x01,0x7d,0x40,0x0c,0x1d,0x19,0x33,0x00,0x24,0x99,0x0f,0x06,0x2e,0x99,0x06,0x19,0x00,0x3f,0xed,0x3f,0xed,0xc4,0x32,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x10,0xed,0x11,0x33, +0x10,0xed,0x31,0x30,0x01,0x12,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x06,0x13,0xa2,0x70,0xcd,0x84,0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd, +0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f,0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x78,0x01,0xb4,0x03,0xde,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x1f,0x40,0x0f, +0x11,0x89,0x09,0x09,0x1e,0x03,0x89,0x19,0x06,0x99,0x15,0x00,0x9b,0x0d,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x2c,0x79,0x93,0x8d,0x7f, +0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00,0x01,0x00,0x64,0xff,0x83,0x03,0x98,0x05,0x9a,0x00,0x1d,0x00,0x38,0x40,0x1c,0x19,0x89,0x0e,0x0d,0x1d,0x00,0x03,0x0d, +0x00,0x00,0x0d,0x03,0x03,0x1f,0x09,0x89,0x11,0x0d,0x0a,0x0e,0x0e,0x15,0x00,0x1d,0x06,0x9b,0x15,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x31,0x30,0x17,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35, +0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0xe9,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b,0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe, +0xae,0xfe,0x9b,0x9a,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x00,0x05,0x9a,0x00,0x23,0x00,0x38,0x40,0x1b,0x00,0x23,0x23,0x25,0x0c,0x20,0x0f,0x08,0x08,0x16,0x1c,0x89,0x0f,0x05,0x9b,0x20,0x0a,0x15,0x0a,0x15,0x00,0x12,0x9b,0x19,0x06,0x23,0x00,0x00,0x2f,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0xed,0x01,0x2f,0xed,0xc4,0x39, +0x2f,0x12,0x39,0x39,0x11,0x39,0x2f,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0x67,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a, +0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36,0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x00,0x78,0xff,0x83,0x03,0xd3,0x05,0x9a,0x00,0x31,0x00,0x64,0x40,0x33,0x1f,0x1e, +0x1e,0x33,0x07,0x18,0x89,0x2b,0x28,0x04,0x00,0x16,0x2b,0x07,0x0e,0x00,0x2b,0x2b,0x00,0x0e,0x03,0x24,0x14,0x89,0x07,0x2e,0x9b,0x02,0x16,0x02,0x21,0x9b,0x26,0x0d,0x11,0x02,0x28,0x1c,0x26,0x1f,0x02,0x26,0x02,0x26,0x11,0x1e,0x1f,0x0a,0x9b,0x11,0x06,0x00,0x3f,0xed,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11, +0x12,0x39,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39,0x39,0x10,0xed,0x11,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x17,0x07, +0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0x0a,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78,0x73,0x43,0x81,0x23,0x03,0x68, +0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x81,0x05,0x9a,0x00,0x22,0x00,0x33,0x40,0x1a,0x1c,0x89,0x04,0x0e,0x02,0x0e,0x20,0x20,0x0e,0x02, +0x03,0x24,0x09,0x89,0x14,0x21,0x9b,0x20,0x20,0x0f,0x04,0x9b,0x18,0x06,0x0e,0x0f,0x00,0x2f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0xed,0x31,0x30,0x01,0x20,0x11,0x34,0x37,0x22,0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32, +0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x29,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01,0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01, +0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x3a,0x40,0x1c,0x04,0x03,0x00,0x89,0x16,0x07,0x14,0x16,0x03,0x16,0x03,0x16,0x18,0x0e,0x8a,0x0d,0x12,0x99,0x07,0x0e,0x09,0x09,0x04,0x00,0x0e,0x07,0x03,0x04,0x00,0x2f,0x33,0x3f, +0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17,0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08, +0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x78,0xff,0xf6,0x05,0x17,0x05,0x9a,0x00,0x2c,0x00,0x3f,0x40,0x20,0x17,0x16,0x16,0x1c,0x24,0x89,0x08,0x1c,0x89,0x10,0x08,0x10, +0x08,0x10,0x2e,0x00,0x8a,0x2c,0x1c,0x08,0x28,0x00,0x00,0x13,0x04,0x99,0x28,0x18,0x19,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02, +0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x1c,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70,0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1, +0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f,0xf0,0x01,0xf1,0x01,0x75,0x00,0x01,0x00,0x64,0xff,0xf6,0x05,0x65,0x05,0xae,0x00,0x26,0x00,0x46,0x40,0x12,0x00,0x8b,0x26,0x1b, +0x89,0x0c,0x1f,0x0c,0x07,0x26,0x0c,0x07,0x07,0x0c,0x26,0x03,0x28,0x12,0xb8,0x01,0x84,0x40,0x10,0x13,0x13,0x07,0x12,0x12,0x04,0x0f,0x9b,0x17,0x06,0x21,0x99,0x04,0x18,0x00,0x07,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x31,0x30, +0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x65,0x07,0x72,0xf7,0xd9,0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54, +0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8,0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x5a, +0x05,0xae,0x00,0x15,0x00,0x2f,0x40,0x15,0x0c,0x0d,0x00,0x15,0x0f,0x08,0x0d,0x15,0x0d,0x15,0x17,0x08,0x0f,0x08,0x07,0x07,0x0d,0x0c,0x07,0x15,0x00,0x00,0x2f,0x32,0x3f,0x33,0x39,0x2f,0x33,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02, +0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x03,0xc1,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb,0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0x2a, +0x05,0x9a,0x00,0x25,0x00,0x3e,0x40,0x20,0x00,0x25,0x0e,0x89,0x16,0x09,0x89,0x1c,0x25,0x16,0x1c,0x11,0x11,0x1c,0x16,0x25,0x04,0x27,0x23,0x89,0x02,0x11,0x0e,0x06,0x12,0x12,0x00,0x1c,0x9b,0x06,0x06,0x00,0x00,0x2f,0x3f,0xec,0x12,0x39,0x2f,0x12,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed, +0x11,0x33,0x31,0x30,0x17,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0xa3,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b, +0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12,0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x21,0x40,0x0c,0x00,0x8b, +0x10,0x10,0x1d,0x16,0x8b,0x08,0x13,0x9b,0x0c,0x19,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x01,0x78,0xd2,0x78,0x78,0xd0, +0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x01,0x00,0x7f,0xff,0xf1,0x03,0xda,0x03,0x6e,0x00,0x1b,0x00,0x34,0x40,0x12,0x1b,0x0f,0x0f,0x00,0x0e,0x07,0x8b,0x15,0x00,0x1b, +0x0e,0x0f,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0xb8,0x01,0x7f,0xb3,0x0b,0x18,0x9b,0x03,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x07,0x80,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65,0x58,0x00,0x00,0x01,0x00,0x3a,0xfd,0xfe,0x03,0xc2,0x03,0x64,0x00,0x12,0x00,0x24, +0x40,0x0d,0x00,0x8b,0x10,0x10,0x14,0x09,0x8b,0x08,0x08,0x08,0x04,0x11,0x0d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xc2,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98, +0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e,0x00,0x01,0x00,0x7f,0xfd,0xfe,0x03,0xda,0x03,0x6e,0x00,0x1f,0x00,0x47,0x40,0x1b,0x00,0xa8,0x1f,0x1f,0x21,0x1e,0x0a,0x10,0x04,0x04,0x11,0x03,0x18,0x8b,0x0a,0x11,0x10,0x03,0x1e,0x04,0x1c,0x10,0x04,0x10,0x04,0x14,0x07,0xb8, +0x01,0x7f,0xb4,0x1c,0x0d,0x9b,0x14,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x11,0x33,0x01,0x2f,0xed,0xc4,0x32,0x32,0x11,0x33,0x11,0x39,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16, +0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x03,0x0f,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86,0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a, +0x01,0xfe,0x07,0x00,0x00,0x01,0x00,0x80,0xfd,0xfe,0x03,0xdb,0x03,0x6e,0x00,0x1f,0x00,0x45,0x40,0x1d,0x0f,0x1b,0x1b,0x0e,0x01,0x1c,0x1c,0x07,0x21,0x1f,0x89,0x00,0x15,0x8b,0x07,0x1c,0x1b,0x0e,0x0f,0x01,0x1b,0x0f,0x1b,0x0f,0x03,0x12,0x9b,0x0b,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x00,0x00,0x2f,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xed,0xd4,0xed,0x11,0x12,0x39,0x2f,0x39,0x33,0x33,0x11,0x33,0x31,0x30,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x9f,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74, +0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b,0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x5c, +0xb4,0x14,0x8b,0x24,0x02,0x05,0xbb,0x01,0x83,0x00,0x2e,0x00,0x28,0x01,0x83,0x40,0x0d,0x0b,0x24,0x2e,0x0b,0x0b,0x2e,0x24,0x03,0x35,0x1d,0x8b,0x1c,0x31,0xbb,0x01,0x7e,0x00,0x02,0x00,0x2b,0x01,0x7e,0x40,0x0a,0x08,0x02,0x08,0x1c,0x1c,0x08,0x02,0x03,0x0f,0x21,0xb8,0x01,0x7f,0xb3,0x18,0x00,0x9b,0x0f,0x00,0x2f,0xed,0x2f,0xed, +0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x10,0xed,0x31,0x30,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36, +0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x4d,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81,0x56,0x5b,0x87,0x84, +0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x6f,0xb9,0x00,0x30,0x01,0x83,0xb7,0x00,0x0b,0x8b,0x28,0x1a,0x8b,0x1b,0x06, +0xb8,0x01,0x83,0x40,0x11,0x36,0x08,0x36,0x00,0x28,0x1b,0x36,0x36,0x1b,0x28,0x00,0x04,0x3d,0x23,0x8b,0x12,0x33,0xb8,0x01,0x7e,0x40,0x18,0x2d,0x08,0x2d,0x39,0x9b,0x03,0x2d,0x03,0x2f,0x1b,0x01,0x1b,0x30,0x2d,0x01,0x1b,0x03,0x2d,0x03,0x0e,0x1f,0x9b,0x17,0x25,0xb9,0x01,0x7f,0x00,0x0e,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39, +0x5d,0x2f,0x5d,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26, +0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a,0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83, +0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61,0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x00,0x01,0x00,0x80,0xfe,0x05, +0x04,0x30,0x03,0x6e,0x00,0x32,0x00,0x43,0xb9,0x00,0x00,0x01,0x84,0x40,0x0c,0x32,0x23,0x8b,0x10,0x32,0x10,0x32,0x10,0x34,0x19,0x18,0x2a,0xb8,0x01,0x84,0x40,0x0b,0x08,0x18,0x19,0x32,0x19,0x32,0x04,0x13,0x9b,0x1f,0x2d,0xb9,0x01,0x7f,0x00,0x04,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0xc6,0x32, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x04,0x30,0x07,0x40,0x6d, +0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69,0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca, +0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x02,0x00,0x80,0xff,0xf0,0x04,0x01,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x47,0xb5,0x1a,0x8b,0x03,0x1d,0x00,0x0c,0xb8,0x01,0x83,0x40,0x0f,0x1e,0x03,0x00,0x1e,0x1e,0x00,0x03,0x03,0x26,0x21,0x8b,0x12,0x00,0x1d,0x21,0xb8,0x01,0x7d,0xb6,0x09,0x09,0x0f, +0x06,0x9b,0x16,0x23,0xb9,0x01,0x80,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x2f,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0xa5,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d,0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92, +0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x00,0x02,0x00,0x80,0xfd,0xfe,0x04,0x08,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x72,0x40,0x09,0x05,0x29,0x16,0x8b,0x15,0x26,0x8b,0x08,0x2b,0xbb,0x01,0x83,0x00,0x37,0x00,0x31,0x01,0x83,0x40,0x10,0x00,0x29,0x15,0x08,0x37,0x00,0x00,0x37,0x08,0x15,0x04,0x3e,0x0e,0x8b,0x1e,0x34, +0xb8,0x01,0x7e,0x40,0x19,0x2e,0x3a,0x9b,0x03,0x29,0x03,0x20,0x15,0x30,0x15,0x40,0x15,0x03,0x15,0x2e,0x03,0x03,0x2e,0x15,0x03,0x1a,0x0b,0x9b,0x23,0x11,0xb9,0x01,0x7f,0x00,0x1a,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x39, +0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x0f,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a,0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe, +0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x23,0x40,0x0d,0x00,0x8b,0x1a,0x1a,0x1c,0x16,0x8b,0x07, +0x12,0x9b,0x0c,0x07,0x18,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef, +0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8,0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x00,0x01,0x00,0x66,0xff,0xe7,0x03,0xa8,0x05,0xe8,0x00,0x09,0x00,0x2d,0x40,0x15,0x03,0x8b,0x07,0x05,0x07,0x05,0x0b,0x00,0x05,0x04,0x00,0x09, +0x04,0x09,0x04,0x09,0x01,0x07,0x18,0x01,0x06,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0x66,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa,0xcb,0x86,0x80,0xd2,0x05,0x35,0x83, +0x00,0x01,0x00,0x80,0x00,0x00,0x03,0xd2,0x05,0xe9,0x00,0x22,0x00,0x32,0xb7,0x08,0x8b,0x1b,0x1b,0x24,0x22,0x03,0x11,0xb8,0x01,0x84,0x40,0x0e,0x00,0x12,0x03,0x00,0x00,0x01,0x12,0x18,0x1e,0x9b,0x05,0x05,0x01,0x06,0x00,0x3f,0x33,0x2f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0x33,0xed,0x32,0x32,0x12,0x39,0x2f,0xed,0x31,0x30, +0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x80,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa,0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed, +0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x66,0x00,0x00,0x04,0x34,0x05,0xe3,0x00,0x12,0x00,0x2c,0xb6,0x0a,0x8b,0x0b,0x0b,0x14,0x03,0x12,0xbb,0x01,0x85,0x00,0x00,0x00,0x0f,0x01,0x7f,0xb7,0x03,0x05,0x05,0x01,0x06,0x0b,0x00,0x18, +0x00,0x3f,0x32,0x3f,0x39,0x2f,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x33,0x01,0x33,0x03,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x66,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01, +0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x66,0xff,0xe7,0x04,0x8b,0x05,0xe3,0x00,0x09,0x00,0x37,0x40,0x09,0x03,0x8b,0x07,0x05,0x07,0x05,0x07,0x0b,0x09,0xb8,0x01,0x85,0x40,0x0f,0x00,0x05,0x08,0x01,0x03,0x07,0x04,0x04,0x01,0x07,0x18,0x01,0x06,0x00,0x18,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0x01, +0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x33,0x01,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x66,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x59,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x35,0x40,0x16,0x00,0x04, +0x8b,0x0f,0x1c,0x02,0x1c,0x02,0x1f,0x15,0x8b,0x0b,0x03,0x12,0x9b,0x00,0x0e,0x0e,0x08,0x10,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x08,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x21,0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xdf,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00, +0x00,0x02,0x00,0x80,0x00,0x00,0x04,0x59,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x36,0x40,0x1b,0x10,0x02,0x8b,0x03,0x1d,0x03,0x00,0x03,0x00,0x03,0x1f,0x19,0x8b,0x08,0x10,0x1c,0x99,0x01,0x05,0x05,0x03,0x16,0x9b,0x0b,0x07,0x03,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x33,0x10,0xed,0x32,0x31,0x30,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x59,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e,0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd, +0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x03,0x41,0x05,0xe3,0x00,0x07,0x00,0x2a,0x40,0x0d,0x02,0x89,0x05,0x03,0x01,0x05,0x05,0x01,0x03,0x03,0x09,0x00,0x02,0xb8,0x01,0x7f,0xb5,0x05,0x18,0x07,0x9b,0x00,0x06,0x00,0x3f,0xed, +0x3f,0xed,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0x67,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe,0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x80,0xff,0xf1,0x04,0x01,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x59,0x40,0x29,0x1a,0x1b,0x00,0x27, +0x03,0x09,0x8b,0x29,0x24,0x29,0x14,0x11,0x1b,0x06,0x29,0x1b,0x27,0x29,0x29,0x27,0x1b,0x03,0x36,0x1e,0x2f,0x8b,0x17,0x11,0x27,0x1b,0x1b,0x00,0x1a,0x14,0x06,0x0d,0x2c,0x9b,0x21,0x06,0x32,0xb8,0x01,0x7f,0xb1,0x0d,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0xc4,0x32,0x32,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x13,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5b,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76,0xce,0x7a,0x79,0xd0,0x75, +0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x02,0x00,0x80,0xff,0xdc,0x04,0x01,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x5a,0x40,0x2e,0x0d,0x0c,0x27,0x00,0x1e,0x24,0x8b,0x03,0x28,0x03,0x13,0x10,0x0c,0x21,0x03,0x0c, +0x00,0x03,0x03,0x00,0x0c,0x03,0x35,0x2e,0x09,0x8b,0x16,0x10,0x31,0x99,0x13,0x21,0x1a,0x06,0x06,0x0d,0x2b,0x9b,0x1a,0x07,0x00,0x0c,0x0c,0x27,0x0d,0x19,0x00,0x3f,0x33,0x33,0x11,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x01,0x2f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf1,0x39,0x40, +0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f,0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e, +0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0x14,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x26,0xb9,0x00,0x00,0x01,0x85,0x40,0x0b,0x0c,0x0c,0x19,0x12,0x8a,0x06,0x0f,0x9b,0x09,0x06,0x15,0xb8,0x01,0x7f,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed, +0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0x14,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01,0x84,0x01,0x78,0x01,0x63,0xfe, +0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x00,0x8c,0xff,0xec,0x04,0x4d,0x05,0xa3,0x00,0x2c,0x00,0x56,0xb9,0x00,0x16,0x01,0x85,0x40,0x0e,0x2b,0x09,0x03,0x23,0x09,0x03,0x1d,0x1d,0x03,0x09,0x23,0x04,0x2e,0x28,0xbb,0x01,0x85,0x00,0x0f,0x00,0x2b,0x01,0x7f,0x40,0x15, +0x0c,0x1c,0x1d,0x00,0x0c,0x06,0x0c,0x1d,0x1d,0x0c,0x06,0x03,0x13,0x1f,0x99,0x1a,0x19,0x25,0x9b,0x13,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0xed,0x31,0x30,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04,0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x38,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc, +0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a,0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x64,0xff,0xec,0x05,0x7f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x85,0xb5,0x31, +0x1a,0x1a,0x13,0x21,0x4d,0xbe,0x01,0x85,0x00,0x2b,0x00,0x25,0x01,0x84,0x00,0x52,0x00,0x38,0x01,0x85,0x40,0x0b,0x13,0x2b,0x52,0x13,0x13,0x52,0x2b,0x03,0x57,0x4c,0x04,0xb8,0x01,0x85,0xb4,0x48,0x40,0x9b,0x0b,0x50,0xb8,0x01,0x7e,0x40,0x13,0x28,0x55,0x9b,0x21,0x1a,0x9b,0x31,0x0b,0x28,0x21,0x31,0x31,0x21,0x28,0x0b,0x04,0x2f, +0x10,0x07,0xb8,0x01,0x7f,0x40,0x0b,0x3b,0x45,0x19,0x16,0x1d,0x9b,0x4c,0x00,0x34,0x2f,0x06,0x00,0x3f,0x33,0xc4,0x32,0xed,0x32,0x3f,0x33,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x11,0x39,0x11, +0x33,0x31,0x30,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x94,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85, +0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48, +0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x02,0x00,0xa0,0xff,0xec,0x06,0x1e,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x5e,0xb9,0x00,0x15,0x01,0x84,0xb2,0x2e,0x22,0x08,0xbb,0x01,0x85,0x00,0x09,0x00,0x28,0x01,0x85,0x40,0x0b, +0x00,0x2e,0x09,0x00,0x00,0x09,0x2e,0x03,0x33,0x11,0x29,0xb8,0x01,0x85,0x40,0x0f,0x1b,0x31,0x9b,0x22,0x1f,0x11,0x11,0x18,0x04,0x0d,0x9b,0x24,0x1f,0x06,0x2c,0xb8,0x01,0x7e,0xb4,0x18,0x19,0x00,0x09,0x18,0x00,0x3f,0x33,0x3f,0xed,0x3f,0x33,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x7e,0x82,0x62,0x69, +0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4, +0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0xc4,0x06,0x27,0x00,0x3d,0x00,0x6f,0x40,0x12,0x08,0x89,0x32,0x38,0x8b,0x03,0x2f,0x00,0x32,0x00,0x03,0x03,0x00,0x32,0x03,0x28,0x0b,0x1f,0xb8,0x01,0x85,0xb6,0x1c,0x0b,0x1c,0x0b,0x1c,0x3f,0x28,0xb8,0x01,0x85,0x40,0x14,0x15,0x23,0x19,0x19,0x1d,0x35, +0x0e,0x2f,0x2f,0x12,0x03,0x35,0x3b,0x3b,0x12,0x06,0x9b,0x35,0x06,0x2b,0xb8,0x01,0x7f,0xb4,0x12,0x19,0x0b,0x0c,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x11,0x33,0x10,0xc4,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10, +0xed,0x10,0xed,0x31,0x30,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x03,0x9f,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12, +0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7,0x4c,0x5e,0x4f,0x00,0x02,0x00,0xa0,0xff,0xec,0x04,0xf8,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0xa2,0xb9,0x00,0x4f,0x01,0x84,0xb4,0x3e,0x46,0x3c,0x3e, +0x44,0xbb,0x01,0x84,0x00,0x55,0x00,0x04,0x01,0x85,0x40,0x1f,0x4a,0x2a,0x89,0x15,0x1b,0x8b,0x24,0x13,0x21,0x15,0x21,0x24,0x24,0x21,0x15,0x03,0x0c,0x2d,0x3e,0x55,0x4a,0x2d,0x00,0x00,0x2d,0x4a,0x55,0x3e,0x05,0x5c,0x0c,0xb8,0x01,0x85,0x40,0x1e,0x37,0x00,0x4e,0x41,0x30,0x13,0x27,0x9b,0x18,0x46,0x3c,0x08,0x13,0x34,0x24,0x1e, +0x08,0x52,0x18,0x41,0x1e,0x18,0x1e,0x18,0x34,0x58,0x9b,0x41,0x06,0x0f,0xb8,0x01,0x7f,0xb4,0x34,0x19,0x2d,0x2e,0x19,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x39,0x11,0x39,0x12,0x39,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f, +0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x04,0xf8,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d, +0x2d,0xfe,0xc7,0xc5,0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe, +0xaf,0x86,0x83,0x89,0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01, +0x00,0x7b,0xff,0xec,0x04,0x61,0x06,0x3b,0x00,0x3a,0x00,0x76,0xb9,0x00,0x24,0x01,0x85,0xb4,0x0b,0x32,0x89,0x00,0x1e,0xb8,0x01,0x85,0x40,0x11,0x17,0x12,0x13,0x0b,0x00,0x39,0x17,0x13,0x13,0x17,0x39,0x00,0x0b,0x05,0x3c,0x1a,0x05,0xb8,0x01,0x85,0xb3,0x2b,0x13,0x12,0x02,0xb8,0x01,0x7f,0x40,0x0d,0x2e,0x00,0x2e,0x35,0x12,0x2e, +0x35,0x35,0x2e,0x12,0x03,0x20,0x08,0xb8,0x01,0x7f,0x40,0x0a,0x27,0x19,0x1a,0x1b,0x17,0x1e,0x0f,0x9b,0x20,0x06,0x00,0x3f,0xed,0x39,0x39,0xc4,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x10,0xed, +0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x02,0x4c,0x16, +0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e,0x72,0x26,0x1b,0x15,0x19,0x2a, +0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0xa0,0xff,0xec,0x05,0x85,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x76,0xb9,0x00,0x1c,0x01,0x84,0xb5,0x3d,0x28,0x11,0x11,0x38,0x2e,0xbb,0x01,0x85,0x00,0x0a,0x00, +0x04,0x01,0x85,0x40,0x0d,0x33,0x3d,0x0a,0x37,0x33,0x33,0x37,0x0a,0x3d,0x04,0x42,0x18,0x38,0xb8,0x01,0x85,0x40,0x15,0x22,0x40,0x9b,0x18,0x11,0x9b,0x28,0x18,0x28,0x18,0x28,0x1f,0x0e,0x14,0x9b,0x37,0x00,0x2a,0x26,0x06,0x3b,0xb8,0x01,0x7e,0xb2,0x1f,0x19,0x30,0xb8,0x01,0x7f,0xb1,0x07,0x19,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33, +0xc6,0x32,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x10,0xed,0x31,0x30,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15, +0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xba,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63,0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91, +0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57, +0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x00,0xa0,0xff,0xec,0x04,0x8e,0x06,0x27,0x00,0x45,0x00,0x6d,0xb9,0x00,0x00,0x01,0x85,0xb5,0x43,0x33,0x13,0x13,0x0c,0x2e,0xb8,0x01,0x85,0x40,0x0f,0x1a,0x1f,0x89,0x28,0x43,0x1a,0x22,0x28,0x28,0x22,0x1a,0x43,0x04,0x47,0x0c,0xbb,0x01,0x85,0x00,0x39,0x00,0x13,0x01, +0x81,0x40,0x09,0x33,0x1f,0x25,0x33,0x25,0x33,0x2b,0x17,0x0f,0xb8,0x01,0x7f,0x40,0x0b,0x31,0x36,0x19,0x05,0x3f,0x3f,0x44,0x1d,0x9b,0x2b,0x06,0x00,0x3f,0xed,0xc4,0x39,0x11,0x33,0x3f,0x33,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x39,0x10,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11, +0x33,0x10,0xed,0x31,0x30,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37, +0x3e,0x02,0x35,0x35,0x33,0x04,0x8e,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52,0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55, +0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x01,0x00,0xe9,0xff,0xec,0x04,0xac,0x06,0x3b, +0x00,0x43,0x00,0x85,0xb9,0x00,0x2f,0x01,0x85,0xb5,0x1b,0x40,0x04,0x8a,0x05,0x0b,0xb8,0x01,0x85,0x40,0x15,0x3b,0x05,0x23,0x38,0x29,0x3b,0x00,0x1b,0x10,0x23,0x29,0x3b,0x3b,0x29,0x23,0x10,0x1b,0x00,0x06,0x45,0x15,0xb8,0x01,0x85,0x40,0x20,0x36,0x00,0x43,0x3e,0x1e,0x9b,0x2c,0x38,0x12,0x9b,0x0f,0x20,0x26,0x2c,0x40,0x05,0x3e, +0x26,0x2c,0x0f,0x05,0x05,0x0f,0x2c,0x26,0x04,0x33,0x08,0x9b,0x3e,0x06,0x18,0xb8,0x01,0x7f,0xb1,0x33,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x39,0x10,0xed,0x10,0xc4,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x39, +0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35, +0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xac,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8,0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67, +0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80,0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x02,0x00,0x84,0x00,0x45,0x03,0x96,0x05,0xa3,0x00,0x0e, +0x00,0x1d,0x00,0x1f,0x40,0x0f,0x0f,0x89,0x00,0x00,0x1f,0x07,0x89,0x17,0x0b,0x9a,0x13,0x03,0x9b,0x1b,0x06,0x00,0x3f,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32, +0x12,0x02,0xef,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x00,0x01,0x00,0x69,0xfe,0xf1,0x03,0x48, +0x05,0xa3,0x00,0x2e,0x00,0x3d,0x40,0x0f,0x00,0x89,0x15,0x1c,0x89,0x28,0x15,0x21,0x28,0x28,0x21,0x15,0x03,0x30,0x0e,0xb8,0x01,0x83,0x40,0x0e,0x09,0x0c,0x24,0x0c,0x24,0x05,0x18,0x9b,0x2c,0x06,0x11,0x99,0x05,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x31,0x30,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x48,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11,0x1f,0x06,0x0b, +0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01,0x0e,0x01,0x9e, +0xe2,0xfe,0xd5,0x00,0x00,0x01,0x00,0x84,0x00,0x8a,0x04,0x64,0x05,0xa3,0x00,0x3f,0x00,0x4e,0xb5,0x0c,0x32,0x08,0x32,0x0f,0x00,0xb8,0x01,0x83,0x40,0x21,0x3b,0x2f,0x89,0x15,0x3b,0x15,0x0f,0x20,0x20,0x0f,0x15,0x3b,0x04,0x41,0x1c,0x89,0x27,0x32,0x08,0x0c,0x05,0x08,0x3d,0x3d,0x08,0x05,0x0c,0x04,0x23,0x17,0x9b,0x2c,0x06,0x00, +0x3f,0xed,0xc4,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x31,0x30,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15, +0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x64,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f, +0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b,0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb, +0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01,0x00,0x84,0x01,0x73,0x04,0x1b,0x05,0xa3,0x00,0x54,0x00,0x4c,0x40,0x28,0x47,0x89,0x14,0x41,0x4b,0x0c,0x14,0x34,0x23,0x0c,0x14,0x00,0x00,0x14,0x0c,0x23,0x34,0x05,0x56,0x2f,0x89,0x3a,0x16,0x2b,0x9b,0x3e,0x41,0x3e,0x51,0x1f,0x51,0x1f,0x04,0x37,0x4b,0x03,0x0a,0x43, +0x3e,0x06,0x00,0x3f,0x33,0xc4,0x17,0x32,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x39,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07, +0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x04,0x0e,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23, +0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29,0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07, +0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14,0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01, +0x00,0x84,0xff,0xc3,0x03,0x45,0x05,0xa7,0x00,0x26,0x00,0x2d,0x40,0x17,0x10,0x12,0x04,0x89,0x1f,0x25,0x12,0x1f,0x1f,0x12,0x25,0x03,0x28,0x18,0x8a,0x0b,0x1b,0x9a,0x08,0x10,0x06,0x00,0x07,0x00,0x3f,0x3f,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x32,0x16,0x16,0x15,0x10,0x02, +0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xa9,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed, +0x6b,0xfe,0xef,0xfe,0x1c,0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x01,0x00,0x84,0x01,0x46,0x03,0x79,0x05,0xa7,0x00,0x33,0x00,0x49,0xb9,0x00,0x31,0x01,0x83,0xb4,0x07,0x2f,0x89,0x28,0x0a,0xb8,0x01,0x84,0x40,0x1b, +0x21,0x00,0x07,0x28,0x21,0x21,0x28,0x07,0x00,0x04,0x35,0x19,0x8b,0x13,0x0a,0x16,0x2b,0x04,0x16,0x04,0x16,0x0f,0x2b,0x07,0x1d,0x99,0x0f,0x00,0x2f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x27, +0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0x79,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d, +0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d,0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18, +0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0xdd,0x05,0xa3,0x00,0x40,0x00,0x49,0xb7,0x06,0x89,0x22,0x00,0x3b,0x8b,0x36,0x27,0xb8,0x01,0x82,0x40,0x1c,0x2e,0x22,0x15,0x36,0x2e,0x2e,0x36,0x15,0x22,0x04,0x42,0x1c,0x89,0x0d,0x24,0x00,0x00,0x2b,0x2b,0x39,0x1f,0x9a,0x09,0x39,0x06,0x19,0x12,0x06, +0x00,0x3f,0x33,0x3f,0xd4,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32, +0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x7d,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01, +0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe,0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44, +0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x00,0x01,0x00,0x84,0xff,0xf6,0x03,0xe8,0x05,0xa3,0x00,0x3e,0x00,0x4a,0x40,0x29,0x00,0x89,0x2c,0x23,0x89,0x0a,0x27,0x89,0x06,0x2c,0x0a,0x06,0x16,0x16,0x06,0x0a,0x2c,0x04,0x40,0x37,0x10,0x89,0x1d,0x34,0x34,0x20,0x30,0x9b,0x3b,0x06,0x0d,0x9b,0x20,0x06,0x16,0x19,0x18,0x29, +0x9a,0x03,0x18,0x00,0x3f,0xed,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x01,0x2f,0xed,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35, +0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03,0xe8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b, +0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f,0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21, +0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0x70,0x00,0x45,0x03,0x6c,0x05,0xa7,0x00,0x31,0x00,0x41,0xb9,0x00,0x1c,0x01,0x85,0x40,0x10,0x17,0x05,0x89,0x27,0x17,0x27,0x00,0x00,0x27,0x17,0x03,0x33,0x22,0x8b,0x14,0x22,0xb8,0x01,0x81,0xb5,0x11,0x2f,0x11,0x2f,0x19,0x27,0xb8,0x01,0x80,0xb2,0x0a,0x19,0x07,0x00,0x3f, +0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xec,0x10,0xed,0x31,0x30,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37, +0x3e,0x04,0x17,0x32,0x16,0x03,0x6c,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26,0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f, +0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x01,0x00,0x84,0xff,0xc3,0x03,0x33,0x05,0xa7,0x00,0x37,0x00,0x3f,0x40,0x21,0x00,0x1f,0x2d,0x89,0x0e,0x33,0x89,0x08,0x1f,0x0e,0x08,0x08,0x0e,0x1f,0x03,0x39, +0x14,0x89,0x27,0x36,0x9a,0x02,0x1c,0x02,0x1c,0x2a,0x17,0x9a,0x23,0x11,0x9b,0x2a,0x07,0x00,0x3f,0xed,0xd4,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02, +0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x03,0x07,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e, +0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4,0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b, +0x08,0x00,0x00,0x02,0x00,0x60,0xff,0xe7,0x04,0xa2,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x23,0x40,0x0d,0x09,0x89,0x15,0x15,0x19,0x0f,0x89,0x03,0x0c,0x9b,0x06,0x06,0x12,0xb8,0x01,0x7f,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14, +0x00,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x81,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x00,0x01,0x00,0x50, +0xff,0xe7,0x03,0x44,0x04,0x19,0x00,0x15,0x00,0x28,0x40,0x0b,0x0a,0x00,0x05,0x89,0x10,0x0b,0x15,0x0b,0x15,0x02,0x0d,0xb8,0x01,0x7f,0xb5,0x08,0x19,0x13,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0xed,0xc4,0x32,0x31,0x30,0x13,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x56,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00,0x02,0x00,0x2d,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x50,0xb9,0x00,0x0d,0x01, +0x83,0x40,0x0b,0x25,0x19,0x8a,0x0b,0x25,0x0b,0x25,0x0b,0x29,0x03,0x20,0xb8,0x01,0x83,0xb3,0x13,0x03,0x04,0x22,0xb8,0x01,0x7d,0x40,0x11,0x10,0x0d,0x10,0x16,0x04,0x10,0x04,0x10,0x00,0x1d,0x9b,0x16,0x06,0x06,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x33,0x01,0x2f,0xed, +0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0xb0,0x7b,0xb8,0x50,0xa8,0xdf,0x77,0xb4,0x63,0x1d,0x0c, +0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x00,0x50,0xfd,0x6d,0x03,0xd7,0x04,0x19, +0x00,0x25,0x00,0x40,0x40,0x18,0x1c,0x27,0x13,0x0a,0x25,0x10,0x89,0x05,0x19,0x99,0x1e,0x19,0x0b,0x0a,0x15,0x00,0x13,0x0a,0x00,0x0a,0x00,0x0d,0x25,0x02,0xb8,0x01,0x7f,0xb5,0x13,0x18,0x08,0x9b,0x0d,0x06,0x00,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x3f,0xed,0x01,0x2f,0xed,0xc4,0x32,0x39, +0x10,0xc6,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x50,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19,0x53,0xb6,0xe0,0x44,0x43, +0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x03,0xe5,0x04,0x19,0x00,0x21,0x00,0x46,0x40,0x1d,0x1f,0x0a,0x0e,0x89,0x0f,0x12,0x0f,0x0a, +0x0f,0x0a,0x0f,0x23,0x03,0x89,0x17,0x1e,0x1f,0x12,0x09,0x1f,0x09,0x1f,0x14,0x00,0x9b,0x1b,0x06,0x0a,0x06,0xb8,0x01,0x7f,0xb3,0x14,0x18,0x0f,0x18,0x00,0x3f,0x3f,0xed,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x02,0x75,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f, +0xa9,0x9c,0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x60,0xfd,0x6d,0x05,0xb0,0x04,0x19,0x00,0x32,0x00,0x59,0xb9,0x00,0x0a,0x01,0x84,0x40,0x21,0x05,0x18,0x17,0x2b,0x2b,0x1f,0x00,0x8a,0x0f,0x22,0x05,0x0f,0x0f, +0x05,0x22,0x03,0x34,0x1f,0x89,0x24,0x21,0x22,0x2b,0x18,0x07,0x22,0x18,0x18,0x22,0x07,0x03,0x28,0x0d,0xb8,0x01,0x7f,0xb7,0x02,0x19,0x14,0x1b,0x9b,0x2e,0x28,0x06,0x00,0x3f,0x33,0xed,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x12,0x39,0x11,0x33, +0x33,0x10,0xed,0x31,0x30,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0xb0,0xfa,0x6c,0x79,0x14,0x83,0x0e, +0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, +0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x00,0x01,0x00,0x77,0xff,0xe7,0x04,0x35,0x07,0x62,0x00,0x31,0x00,0x50,0x40,0x26,0x19,0x8b,0x0d,0x1f,0x89,0x06,0x0d,0x06,0x13,0x2c,0x2c,0x13,0x06,0x0d,0x04,0x33,0x31,0x8a,0x26,0x12,0x06,0x19,0x22,0x13,0x13,0x22,0x2b,0x2c,0x2c,0x10,0x2e,0x9b,0x29,0x16,0x9b,0x10,0x06,0x03, +0xb8,0x01,0x7f,0xb1,0x22,0x19,0x00,0x3f,0xed,0x3f,0xed,0xd4,0xed,0x12,0x39,0x2f,0x33,0x11,0x39,0x2f,0x12,0x39,0x39,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0x1b,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46,0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1, +0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d,0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x60,0xfd,0x6d,0x06,0xec,0x04,0x19,0x00,0x32,0x00,0x5e,0x40,0x09, +0x08,0x07,0x1b,0x1b,0x0f,0x23,0x8a,0x32,0x2b,0xb8,0x01,0x83,0x40,0x21,0x2a,0x12,0x32,0x2a,0x2a,0x32,0x12,0x03,0x34,0x0f,0x89,0x14,0x04,0x0b,0x9b,0x18,0x11,0x12,0x1b,0x08,0x18,0x2a,0x12,0x08,0x08,0x12,0x2a,0x03,0x30,0x1e,0x18,0x06,0x25,0xb8,0x01,0x7f,0xb1,0x30,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x11,0x12,0x39,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x12,0x39,0x11,0x33,0x33,0x31,0x30,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11, +0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x11,0x05,0x0c,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b, +0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0x0a,0x00,0x00,0x04,0x3f,0x04,0x00,0x00,0x0e,0x00,0x2a,0x40,0x14,0x0b,0x89,0x08,0x07,0x00,0x00,0x04,0x0c,0x0c,0x10,0x03,0x89,0x04,0x00,0x04,0x07, +0x06,0x0c,0x04,0x18,0x00,0x3f,0x33,0x3f,0x12,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x33,0xed,0x31,0x30,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0x25,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99,0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e, +0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x00,0x60,0xfd,0x6d,0x04,0x25,0x04,0x19,0x00,0x24,0x00,0x4d,0xb9,0x00,0x0e,0x01,0x85,0x40,0x12,0x09,0x05,0x89,0x14,0x09,0x14,0x20,0x20,0x14,0x09,0x03,0x26,0x1a,0x89,0x00,0x20,0x1f,0x11,0xb8,0x01,0x7e,0x40,0x11,0x07,0x1f,0x07,0x0b,0x0b,0x07,0x1f,0x03,0x02,0x1d,0x9a,0x22, +0x19,0x17,0x9b,0x02,0x06,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12, +0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x60,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, +0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0x60,0xff,0xe7,0x04,0x7b,0x05,0xfa,0x00,0x22,0x00,0x4b,0xb1,0x03,0x0e,0xb8,0x01,0x84,0x40,0x19,0x0f,0x0a,0x89,0x05,0x0f,0x1b,0x05,0x05,0x1b,0x0f,0x03,0x24,0x15,0x89,0x20,0x1b,0x1a,0x03,0x0f,0x1a,0x0f,0x1a,0x0f,0x00,0x18,0xb8,0x01,0x7f,0xb6,0x1d,0x19,0x12,0x9b,0x07,0x00,0x06, +0x00,0x3f,0xc6,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x31,0x30,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11, +0x34,0x12,0x02,0x29,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35,0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x00,0x03,0x00,0x82, +0xff,0xe8,0x05,0x70,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33,0x00,0x5c,0xbc,0x00,0x1b,0x01,0x85,0x00,0x27,0x00,0x00,0x01,0x85,0xb2,0x1a,0x05,0x14,0xb8,0x01,0x85,0x40,0x0f,0x13,0x2e,0x8a,0x21,0x27,0x1a,0x13,0x21,0x21,0x13,0x1a,0x27,0x04,0x35,0x0c,0xb8,0x01,0x85,0x40,0x12,0x0b,0x16,0x10,0x99,0x05,0x1a,0x13,0x0b,0x02,0x09, +0x2b,0x9b,0x24,0x06,0x31,0x99,0x1e,0x19,0x00,0x3f,0xed,0x3f,0xed,0xde,0x32,0xcd,0x32,0x32,0x39,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33, +0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x70,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76,0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe, +0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2,0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83, +0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x00,0xf0,0x00,0x00,0x01,0x91,0x06,0xd0,0x00,0x03,0x00,0x12,0xb9,0x00,0x00,0x01,0x85,0xb3,0x01,0x02,0x01,0x18,0x00,0x3f,0xcd,0x01,0x2f,0xed,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x91,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x64,0xff,0xe8,0x06,0x29,0x06,0xe8,0x00,0x20,0x00,0x2c, +0x00,0x38,0x00,0x45,0x00,0x81,0xb9,0x00,0x14,0x01,0x84,0xb4,0x39,0x21,0x89,0x27,0x18,0xbb,0x01,0x85,0x00,0x09,0x00,0x3f,0x01,0x84,0x40,0x37,0x0e,0x00,0x39,0x27,0x09,0x0e,0x0e,0x09,0x27,0x39,0x00,0x05,0x47,0x2d,0x89,0x33,0x3c,0x9b,0x11,0x43,0x00,0x20,0x06,0x9b,0x1a,0x24,0x30,0x2a,0x36,0x17,0x0a,0x18,0x20,0x1a,0x0a,0x36, +0x43,0x20,0x1a,0x30,0x36,0x36,0x30,0x1a,0x20,0x04,0x09,0x43,0x06,0x09,0x18,0x1e,0x99,0x02,0x19,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x06,0x29,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x01,0x77, +0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a,0x72,0x00,0x02,0x00,0x64, +0x00,0x00,0x04,0xfa,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x6f,0xb1,0x16,0x22,0xbb,0x01,0x84,0x00,0x2a,0x00,0x04,0x01,0x85,0xb2,0x05,0x25,0x00,0xb8,0x01,0x84,0x40,0x0f,0x0b,0x12,0x27,0x0b,0x2a,0x05,0x0e,0x0b,0x0b,0x0e,0x05,0x2a,0x04,0x37,0x30,0xb8,0x01,0x84,0x40,0x1b,0x1c,0x33,0x99,0x19,0x2d,0x9b,0x1f,0x22,0x07,0x03,0x9b, +0x06,0x27,0x0e,0x9b,0x0f,0x06,0x0f,0x06,0x0f,0x05,0x16,0x9b,0x22,0x06,0x05,0x18,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xed,0x33,0x10,0xdd,0xed,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x39,0x33,0x10,0xed,0x32,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x10,0x21,0x23,0x11, +0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xfa,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02, +0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b,0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74, +0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x01,0x00,0xb4,0x00,0x00,0x05,0x0a,0x06,0xd0,0x00,0x12,0x00,0x5c,0xb1,0x11,0x04,0xb8,0x01,0x85,0xb5,0x05,0x0e,0x05,0x0b,0x0a,0x00,0xb8,0x01,0x85,0x40,0x0a,0x01,0x05,0x0a,0x01,0x01,0x0a,0x05,0x03,0x14,0x0d,0xb8,0x01,0x85,0x40,0x16,0x07,0x03,0x07,0x9b,0x11,0x0d,0x0a,0x0b,0x0d,0x0f,0x0b, +0x0b,0x0f,0x0d,0x03,0x0c,0x01,0x05,0x18,0x08,0x0c,0x07,0x00,0x3f,0xcd,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11, +0x33,0x11,0x21,0x05,0x0a,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xb4,0xff,0xe9,0x04,0xc6,0x06,0xd0,0x00,0x1b,0x00,0x4b,0xb9,0x00,0x00,0x01,0x84,0x40,0x0d,0x12, +0x11,0x07,0x04,0x11,0x11,0x04,0x07,0x03,0x1d,0x14,0x10,0x0d,0xb8,0x01,0x85,0x40,0x13,0x0e,0x0a,0x9b,0x11,0x12,0x14,0x18,0x12,0x18,0x12,0x0e,0x0f,0x13,0x07,0x0e,0x18,0x04,0x03,0x19,0x00,0x3f,0x33,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0xed,0x01,0x2f,0xed,0x32,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, +0xed,0x31,0x30,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x04,0xc6,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b, +0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39,0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x02,0x00,0x64,0xff,0xe8,0x03,0xfa,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x5e,0xb9,0x00,0x00,0x01,0x84,0x40,0x13,0x1b,0x21,0x1b,0x21,0x1b,0x05,0x28,0x07,0x0a,0x14,0x11,0x04,0x08,0x12,0x12,0x08,0x0e,0x08,0x16, +0xb8,0x01,0x85,0x40,0x18,0x05,0x1e,0x9b,0x18,0x14,0x08,0x9b,0x09,0x11,0x09,0x16,0x18,0x09,0x18,0x09,0x03,0x0c,0x99,0x0f,0x06,0x24,0x99,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x01,0x2f,0xed,0xc6,0xc4,0x11,0x39,0x2f,0x12,0x17,0x39,0x11,0x12,0x39,0x39,0x2f,0x2f, +0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xfa,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f, +0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51,0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x00,0xff,0xe8,0x05,0x9d,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x5a, +0xb5,0x0a,0x8a,0x16,0x08,0x16,0x0d,0xb8,0x01,0x84,0xb7,0x26,0x16,0x26,0x16,0x26,0x2d,0x00,0x20,0xb8,0x01,0x84,0x40,0x1b,0x13,0x0a,0x16,0x16,0x1f,0x29,0x29,0x10,0x1f,0x19,0x9b,0x06,0x08,0x06,0x08,0x06,0x1f,0x1d,0x9b,0x02,0x17,0x1f,0x07,0x23,0x99,0x10,0x19,0x00,0x3f,0xed,0x3f,0x33,0xdd,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10, +0xed,0x11,0x12,0x39,0x2f,0x12,0x39,0x11,0x33,0x01,0x2f,0xed,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x31,0x30,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b, +0x5b,0xfb,0x47,0x53,0x77,0x76,0x54,0x54,0x76,0x77,0x00,0x04,0x00,0x82,0xff,0xe8,0x04,0x4e,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x6f,0x40,0x0a,0x34,0x8a,0x1e,0x0c,0x89,0x12,0x00,0x89,0x06,0x18,0xb8,0x01,0x85,0x40,0x11,0x2e,0x20,0x12,0x2c,0x06,0x2e,0x1e,0x12,0x06,0x2e,0x2e,0x06,0x12,0x1e,0x04,0x22,0x2a, +0xbb,0x01,0x85,0x00,0x29,0x00,0x23,0x01,0x85,0x40,0x11,0x22,0x31,0x9b,0x2c,0x20,0x26,0x26,0x1b,0x22,0x09,0x15,0x03,0x0f,0x29,0x22,0x06,0x37,0xb8,0x01,0x80,0xb1,0x1b,0x19,0x00,0x3f,0xed,0x3f,0x33,0xde,0x32,0xcd,0x32,0x11,0x12,0x39,0x2f,0x39,0x39,0xed,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12, +0x39,0x11,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x13,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf,0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b, +0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x03,0x00,0x64,0xff,0xe9,0x05,0xdd,0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x82,0xb9,0x00,0x30,0x01, +0x84,0x40,0x11,0x23,0x0d,0x0d,0x3b,0x06,0x89,0x36,0x04,0x08,0x8b,0x12,0x1d,0x12,0x20,0x03,0x23,0x00,0xb8,0x01,0x84,0x40,0x0c,0x29,0x23,0x36,0x12,0x29,0x29,0x12,0x36,0x23,0x04,0x43,0x3b,0xb8,0x01,0x85,0xb5,0x17,0x2d,0x9b,0x26,0x33,0x3f,0xb8,0x01,0x81,0x40,0x14,0x14,0x38,0x9b,0x1b,0x20,0x03,0x1d,0x36,0x06,0x12,0x06,0x1b, +0x14,0x1b,0x14,0x1b,0x0c,0x33,0x06,0x0d,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x10,0xed,0x10,0xed,0x10,0xd4,0xed,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0x10,0xed,0x31,0x30,0x01,0x14, +0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37, +0x05,0xdd,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57,0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86, +0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0x00,0x02,0x00,0x67,0xff,0xe7,0x04,0x72,0x05,0xb2,0x00,0x0f,0x00,0x1d,0x00,0x2b, +0xb9,0x00,0x0c,0x01,0x86,0xb3,0x1b,0x1b,0x1f,0x14,0xbb,0x01,0x86,0x00,0x04,0x00,0x10,0x01,0x80,0xb2,0x08,0x07,0x17,0xb8,0x01,0x80,0xb1,0x00,0x19,0x00,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x16,0x15,0x10,0x02,0x04,0x13,0x22,0x06,0x02,0x15, +0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x01,0xe2,0x78,0xab,0x58,0xae,0x01,0x28,0xc1,0x69,0xaa,0x61,0xab,0xfe,0xde,0x4a,0x87,0xd4,0x86,0x75,0x70,0x81,0xd2,0x85,0x71,0x19,0x75,0xd1,0x86,0x01,0x19,0x01,0xe9,0xfd,0x6a,0xc3,0x7e,0xfe,0xcf,0xfe,0x0a,0xf9,0x05,0x2d,0xd0,0xfe,0x65,0xd5,0xa5,0xaa,0xcf,0x01,0x9b,0xd0,0xa4, +0xb1,0x00,0x00,0x01,0x00,0x84,0xff,0xe7,0x04,0x18,0x05,0xb5,0x00,0x23,0x00,0x40,0xb9,0x00,0x18,0x01,0x86,0xb2,0x0d,0x13,0x1f,0xb8,0x01,0x86,0x40,0x0d,0x06,0x0d,0x06,0x0d,0x06,0x25,0x00,0x00,0x13,0x00,0x13,0x10,0x03,0xb8,0x01,0x80,0xb2,0x21,0x19,0x16,0xb8,0x01,0x80,0xb1,0x10,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39, +0x2f,0x2f,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x27,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x1e,0x02,0x15,0x10,0x21,0x22,0x27,0x84,0x3b,0xbe,0x50,0x9c,0x97,0x33,0x4d,0x46,0x3a,0x1f,0xc2,0xbd,0x5d, +0x5b,0x2e,0x35,0x48,0xe4,0x34,0x54,0x49,0x30,0x1d,0xfe,0x26,0xcd,0x7b,0xb2,0x13,0x1a,0x83,0x9b,0x3a,0x7c,0x6b,0x61,0x70,0x78,0x3f,0xb2,0xb7,0x10,0x9e,0x08,0x08,0xb2,0x40,0x88,0x7b,0x6c,0x62,0x69,0x3c,0xfe,0x38,0x1d,0x00,0x00,0x01,0x00,0x67,0xff,0xe7,0x04,0x8e,0x05,0xb2,0x00,0x27,0x00,0x61,0xb9,0x00,0x19,0x01,0x86,0xb4, +0x0b,0x12,0x89,0x13,0x00,0xb8,0x01,0x85,0x40,0x0e,0x27,0x09,0x1d,0x0b,0x1d,0x13,0x27,0x27,0x13,0x1d,0x0b,0x04,0x29,0x21,0xb8,0x01,0x86,0xb2,0x06,0x09,0x1c,0xb8,0x01,0x80,0x40,0x09,0x1d,0x27,0x13,0x13,0x27,0x1d,0x03,0x03,0x16,0xb8,0x01,0x80,0xb2,0x0f,0x07,0x24,0xb8,0x01,0x80,0xb1,0x03,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12, +0x17,0x39,0x2f,0x2f,0x2f,0xed,0x39,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33, +0x32,0x12,0x13,0x04,0x8e,0x5d,0xfe,0xc9,0xde,0xcc,0xe9,0x92,0x7a,0xaa,0x64,0xc0,0x84,0xa0,0xe2,0x1d,0xac,0x18,0x7e,0x65,0x73,0x86,0x97,0x8a,0x28,0x9b,0xc0,0x97,0x7c,0xa0,0xec,0x3f,0x02,0xcf,0xfe,0x7f,0xfe,0x99,0xe4,0xca,0x85,0xd5,0x2a,0x6c,0xc4,0x6b,0xa4,0x5a,0xae,0x91,0x4b,0x56,0x6d,0x57,0x70,0x74,0x9e,0xa7,0x8f,0x7e, +0x95,0x01,0x4f,0x01,0x26,0x00,0x00,0x01,0x00,0x3f,0xff,0xe7,0x04,0x9f,0x05,0x9d,0x00,0x2c,0x00,0x5e,0xb6,0x0e,0x8a,0x1e,0x09,0x8a,0x23,0x15,0xb8,0x01,0x85,0x40,0x0d,0x14,0x1e,0x23,0x14,0x14,0x23,0x1e,0x03,0x2a,0x2e,0x03,0x01,0x29,0xb8,0x01,0x85,0x40,0x0f,0x2c,0x2a,0x2a,0x18,0x25,0x99,0x06,0x04,0x06,0x14,0x06,0x14,0x06, +0x00,0x10,0xb8,0x01,0x80,0xb6,0x1b,0x19,0x03,0x2c,0x99,0x00,0x06,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x10,0xed,0x3f,0x01,0x2f,0xc6,0xfd,0xc4,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x21,0x07,0x21,0x03,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06, +0x15,0x14,0x33,0x32,0x36,0x37,0x37,0x33,0x07,0x0e,0x03,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x23,0x22,0x06,0x07,0x03,0x23,0x01,0x23,0xb1,0x03,0x9f,0x20,0xfd,0xc3,0x4d,0x6c,0x69,0x77,0x90,0x04,0x3d,0x21,0x52,0x2b,0x33,0x17,0x16,0xa2,0x17,0x0f,0x21,0x3e,0x68,0x57,0x70,0x6f,0x26,0x36,0x06,0x84,0x51,0x7f,0x19, +0x91,0xa1,0x01,0x12,0xc0,0x05,0x9d,0x91,0xfe,0x96,0x36,0x84,0x6e,0x10,0x26,0xfe,0xf3,0x79,0x44,0x61,0x44,0x68,0x62,0x6d,0x44,0x75,0x56,0x30,0x69,0x72,0x3a,0xab,0xf1,0x1b,0x1b,0x79,0x51,0x48,0xfd,0x52,0x05,0x0c,0x00,0x02,0x00,0x6b,0xff,0xe7,0x04,0x21,0x05,0xb0,0x00,0x14,0x00,0x21,0x00,0x4f,0xb2,0x10,0x0f,0x03,0xb8,0x01, +0x86,0x40,0x21,0x1e,0x14,0x00,0x01,0x12,0x15,0x0e,0x04,0x1e,0x0f,0x1e,0x00,0x00,0x1e,0x0f,0x03,0x23,0x19,0x89,0x09,0x00,0x0f,0x0f,0x15,0x01,0x0e,0x12,0x04,0x06,0x14,0x10,0x07,0x1b,0xb8,0x01,0x80,0xb1,0x06,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x17,0x39,0x33,0x11,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x17, +0x39,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x01,0x00,0x15,0x14,0x04,0x21,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x27,0x37,0x16,0x17,0x36,0x37,0x01,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x35,0x34,0x02,0x27,0x04,0x20,0xff,0x00,0x01,0x01,0xfe,0xf8,0xfe,0xf2,0xcb,0xd5,0x51,0x92,0xa5,0x5f,0xaa,0x98,0x3e,0x53,0x78,0x5c, +0xfe,0xfc,0x5d,0xc5,0x69,0x01,0x0b,0xa0,0xb9,0x7d,0x56,0x05,0x4f,0xfe,0xff,0xfe,0x52,0xeb,0xec,0xe2,0xb4,0xb0,0x66,0xc6,0xcb,0xad,0x64,0xfd,0x60,0x53,0x80,0x7a,0x58,0xfe,0x16,0x4b,0xf3,0xd3,0x47,0xe8,0x9a,0x8a,0x54,0x01,0x3f,0x88,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x61,0x05,0xb5,0x00,0x26,0x00,0x32,0x00,0x63,0x41,0x0b, +0x00,0x30,0x01,0x86,0x00,0x21,0x00,0x04,0x01,0x84,0x00,0x1f,0x00,0x00,0x01,0x86,0x00,0x2a,0x00,0x12,0x01,0x85,0x40,0x0c,0x11,0x21,0x1f,0x2a,0x11,0x11,0x2a,0x1f,0x21,0x04,0x34,0x0b,0xb8,0x01,0x86,0x40,0x0a,0x18,0x27,0x1f,0x04,0x11,0x04,0x11,0x04,0x15,0x2d,0xb8,0x01,0x80,0xb2,0x24,0x07,0x0e,0xb8,0x01,0x80,0xb1,0x15,0x19, +0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x01,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x14,0x06,0x06,0x07,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x37,0x17,0x02,0x00,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x36,0x37, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x03,0x8f,0x51,0xa4,0x63,0x0b,0x37,0x52,0x49,0x38,0x1e,0x7b,0x7b,0x8f,0xf7,0x3f,0xa2,0x58,0xfe,0xc1,0xd5,0xc6,0xd3,0x1f,0x39,0x4c,0x51,0x45,0x0e,0x3d,0xa0,0x77,0x7f,0x92,0xfe,0x9d,0x5c,0x5f,0x3e,0x2f,0x2b,0x40,0x18,0x04,0xab, +0x4b,0x78,0x54,0x0d,0x2d,0x5e,0x5c,0x50,0x56,0x59,0x30,0x72,0x7a,0x01,0x10,0xd8,0x27,0xfe,0xdc,0xfe,0xc5,0xcb,0xbc,0x3e,0x65,0x5c,0x54,0x58,0x72,0x39,0x74,0x6b,0x77,0x9b,0x93,0xfe,0x0f,0x47,0x31,0x2b,0x41,0x43,0x30,0x35,0x48,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0x48,0x05,0x9a,0x00,0x1e,0x00,0x3d,0xb9,0x00,0x1a,0x01, +0x85,0x40,0x0c,0x19,0x05,0x19,0x01,0x19,0x01,0x19,0x20,0x12,0x8a,0x0b,0x15,0xb8,0x01,0x80,0x40,0x0c,0x05,0x0e,0x08,0x08,0x00,0x19,0x0e,0x06,0x01,0x9a,0x00,0x19,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x31,0x30,0x05,0x27,0x36,0x36,0x37,0x37,0x06, +0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33,0x03,0x0e,0x02,0x01,0x7d,0x10,0x98,0xae,0x2b,0x34,0x29,0x97,0x57,0x81,0xa4,0x08,0x5d,0xa1,0x5a,0x06,0x5d,0x45,0x55,0x9d,0x2d,0x6a,0xa1,0xbd,0x2e,0x81,0xca,0x19,0x87,0x0c,0xa9,0xc3,0xf1,0x1a,0x22,0x87,0x67,0x2b,0x20,0x01, +0xc6,0xfe,0x4d,0x1d,0x19,0x35,0x43,0x32,0x2a,0x02,0x05,0xfc,0x7e,0xd5,0xdf,0x77,0x00,0x01,0x00,0x59,0xff,0xe7,0x04,0x5f,0x05,0xb5,0x00,0x19,0x00,0x41,0xb2,0x0c,0x0d,0x12,0xb8,0x01,0x86,0x40,0x11,0x07,0x0d,0x07,0x0d,0x07,0x1b,0x00,0x89,0x19,0x0d,0x0c,0x19,0x0c,0x19,0x0c,0x0f,0x02,0xb8,0x01,0x80,0xb2,0x16,0x19,0x0a,0xb8, +0x01,0x80,0xb1,0x0f,0x07,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x16,0x33,0x32,0x36,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x21,0x32,0x16,0x15,0x10,0x02,0x04,0x23,0x22,0x26,0x27,0x01,0x0d,0x2e,0x9a,0x69,0xaf,0x7f, +0x4c,0x75,0x71,0x9e,0x75,0x89,0xa9,0x01,0x04,0xb1,0xcb,0xae,0xfe,0xd6,0xc0,0x8c,0xc8,0x1a,0x01,0x34,0xaf,0x7f,0xe7,0x01,0x44,0x99,0xa1,0xae,0x96,0x5a,0xda,0xf9,0xd4,0xfe,0xe8,0xfe,0x14,0xfd,0xb4,0x98,0x00,0x01,0x00,0x7b,0xff,0xe7,0x04,0x7f,0x05,0xb2,0x00,0x1a,0x00,0x3f,0x40,0x0b,0x0d,0x0c,0x1a,0x89,0x00,0x0c,0x00,0x0c, +0x00,0x1c,0x07,0xb8,0x01,0x86,0xb7,0x13,0x0d,0x0c,0x00,0x0c,0x00,0x10,0x02,0xb8,0x01,0x80,0xb2,0x17,0x07,0x0a,0xb8,0x01,0x80,0xb1,0x10,0x19,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x16,0x33, +0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x12,0x24,0x33,0x32,0x16,0x17,0x03,0xcc,0x30,0x98,0x69,0xad,0x80,0x4c,0x75,0x70,0x9e,0x75,0x88,0x57,0xd3,0x82,0xaf,0xcc,0xae,0x01,0x28,0xc1,0x8d,0xc7,0x19,0x04,0x65,0xaf,0x7c,0xe7,0xfe,0xbd,0x9a,0xa5,0xaa,0x96,0x5a,0x70,0x6a,0xf9,0xd3,0x01,0x19,0x01,0xe9,0xfd,0xb6,0x96, +0x00,0x01,0x00,0x8b,0xff,0xe7,0x04,0x9b,0x05,0x9d,0x00,0x15,0x00,0x29,0xb9,0x00,0x08,0x01,0x85,0xb4,0x07,0x07,0x17,0x13,0x00,0xb8,0x01,0x86,0xb4,0x0f,0x07,0x12,0x06,0x03,0xb8,0x01,0x80,0xb1,0x0c,0x19,0x00,0x3f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x32,0x12,0x39,0x2f,0xed,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x13,0x33, +0x03,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x13,0x33,0x03,0x06,0x01,0x32,0x68,0x6d,0x75,0x88,0x22,0xd3,0xa2,0xd8,0x32,0xe2,0xbf,0xa7,0xbe,0x31,0xb1,0xa2,0xaf,0x2e,0x01,0x45,0x67,0x59,0x97,0x99,0x03,0xe7,0xfc,0x0a,0xef,0xd0,0xa3,0x8f,0x6c,0xd2,0x03,0x46,0xfc,0xca,0xcf,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a, +0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0xff,0xd0,0xfe,0x9d,0x02,0x51,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xad,0xf9,0xeb,0x00,0x0b,0xb6,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf9,0x00,0x00,0x02,0x29,0x07,0x18,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x2a, +0xfe,0xb9,0x01,0x84,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x12,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0x86,0x00,0x00,0x01,0xf0,0x07,0x5e,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x6e,0x00,0xa9,0x01,0x5e,0x00,0x1a,0xb1,0x02,0x01,0xb8,0xff,0x78,0x40,0x0a,0x12,0x0c,0x0b,0x05, +0x25,0x02,0x01,0x11,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xfe,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8e,0xff,0xf2,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xe8,0x40,0x09,0x0d, +0x0d,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfd,0x00,0x00,0x02,0x31,0x07,0x6b,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd7,0xff,0xa1,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x10,0x05,0x26,0x01,0x00,0x10,0x0c,0x0b,0x00,0x25,0x01,0x2b,0x35,0x00,0x2b,0x35,0x00,0xff,0xff,0xff,0xbe, +0x00,0x00,0x03,0x58,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x68,0x00,0x00,0x01,0x07,0x04,0x36,0xfe,0x74,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x40,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbd,0x00,0x00,0x03,0x6e,0x05,0xa1,0x00,0x27,0x0d,0xf2, +0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x37,0xfe,0x7b,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x31,0x40,0x09,0x0d,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc1,0x00,0x00,0x03,0x67,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x77,0x00,0x00,0x01,0x07,0x04,0x43,0xfe,0x7d, +0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x3a,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1b,0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x38,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41, +0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x03,0x88,0x05,0xa1,0x00,0x27,0x0d,0xf2,0x01,0x98,0x00,0x00,0x01,0x07,0x04,0x44,0xfe,0x88,0xff,0x9b,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x25,0x40,0x09,0x0f,0x19,0x0b,0x05,0x25,0x02,0x01,0x1c, +0x03,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xbe,0x00,0x00,0x03,0x6e,0x05,0xb3,0x00,0x27,0x0d,0xf2,0x01,0x7e,0x00,0x00,0x01,0x07,0x04,0x45,0xfe,0x8b,0xff,0x30,0x00,0x19,0xb1,0x02,0x01,0xb8,0xfe,0x41,0x40,0x09,0x12,0x0c,0x0b,0x05,0x25,0x02,0x01,0x15,0x04,0x00,0x3f,0x35,0x35,0x01,0x2b,0x35,0x35,0x00, +0xff,0xff,0xff,0xbf,0x00,0x00,0x02,0x48,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x58,0x00,0x01,0x07,0x04,0x61,0xfd,0xdd,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb9,0xb7,0x10,0x0c,0x0b,0x05,0x25,0x01,0x13,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xbe,0x00,0x00,0x02,0x4a,0x05,0xa1,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07, +0x04,0x27,0xfd,0xda,0xff,0x7e,0x00,0x14,0xb9,0x00,0x01,0xfe,0xb5,0xb7,0x0d,0x18,0x0b,0x05,0x25,0x01,0x15,0x04,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xfe,0x00,0x00,0x02,0x22,0x07,0x0a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x66,0x01,0x10,0x01,0x4c,0x00,0x13,0x40,0x0b,0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2, +0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0xff,0xf2,0x00,0x00,0x02,0x39,0x06,0xe3,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07, +0x00,0x8f,0xff,0x75,0x01,0x5c,0x00,0x17,0x40,0x0d,0x02,0x01,0x05,0x1b,0x15,0x0b,0x05,0x25,0x02,0x01,0x18,0x05,0x26,0x00,0x2b,0x35,0x35,0x01,0x2b,0x35,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0xfe,0x70,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00, +0x01,0x06,0x00,0xdf,0x12,0x00,0x00,0x0b,0xb6,0x01,0x00,0x1a,0x0c,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x05,0x9a,0x02,0x06,0x0d,0xf2,0x00,0x00,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x07,0x83,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0x50,0xff,0xf0,0x01,0x5c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x16,0x15,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xff,0xe8,0x04,0x4c,0x05,0x9a,0x00,0x26,0x0d,0xf2,0x00,0x00,0x00,0x07,0x00,0x2d,0x02,0x21,0x00,0x00,0xff,0xff,0xff,0xd1,0x00,0x00,0x02,0x52,0x07,0x0c,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd8,0xff,0xae, +0x01,0x5a,0x00,0x13,0x40,0x0b,0x01,0x00,0x16,0x0c,0x0b,0x05,0x25,0x01,0x16,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x30,0xfe,0xc6,0x01,0xf0,0x05,0x9a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x06,0x02,0x45,0xbc,0x00,0x00,0x0b,0xb6,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x1c, +0x00,0x00,0x01,0xf0,0x07,0x66,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0x43,0xff,0xca,0x01,0x5c,0x00,0x16,0xb9,0x00,0x01,0xff,0xc5,0x40,0x09,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x04,0x60, +0xfd,0xf6,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd0,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xc7,0x00,0x00,0x02,0x4a,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x5a,0x00,0x01,0x07,0x01,0x9f,0xfe,0xf9,0xff,0x9a,0x00,0x14,0xb9,0x00,0x01,0xfe,0xcf,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0xff,0xf3,0x00,0x00,0x02,0x3a,0x07,0xd1,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x02,0xd5,0xff,0x76,0x00,0x00,0x00,0x1b,0x40,0x0f,0x03,0x02,0x01,0x06,0x1f,0x19,0x0b,0x05,0x25,0x03,0x02,0x01,0x1c,0x05,0x26,0x00,0x2b,0x35,0x35,0x35,0x01,0x2b,0x35,0x35,0x35,0x00,0xff,0xff, +0xff,0xf8,0x00,0x00,0x02,0x2a,0x07,0x62,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xe0,0xff,0x92,0x01,0x56,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x0c,0x0b,0x05,0x25,0x01,0x0e,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x12,0x00,0x00,0x02,0x0e,0x06,0x79,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x04,0x64, +0x01,0x10,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xaf,0x00,0x00,0x02,0x2c,0x05,0x9b,0x00,0x26,0x0d,0xf2,0x3c,0x00,0x01,0x07,0x04,0x55,0xfd,0xde,0xff,0x9b,0x00,0x14,0xb9,0x00,0x01,0xfe,0xd6,0xb7,0x0e,0x0c,0x0b,0x05,0x25,0x01, +0x0f,0x03,0x00,0x3f,0x35,0x01,0x2b,0x35,0xff,0xff,0x00,0x30,0x00,0x00,0x01,0xf0,0x06,0xe2,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xdb,0x00,0x42,0x01,0x5d,0x00,0x13,0x40,0x0b,0x01,0x00,0x0f,0x15,0x0b,0x05,0x25,0x01,0x0c,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x10,0x06,0x79, +0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xd9,0xff,0xd6,0x01,0x4a,0x00,0x13,0x40,0x0b,0x01,0x00,0x0e,0x0f,0x0b,0x05,0x25,0x01,0x0d,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x02,0x24,0x07,0x1a,0x02,0x26,0x0d,0xf2,0x00,0x00,0x01,0x07,0x00,0xda,0xff,0xda,0x01,0x5c,0x00,0x13,0x40,0x0b, +0x01,0x00,0x12,0x0c,0x0b,0x05,0x25,0x01,0x0f,0x05,0x26,0x00,0x2b,0x35,0x01,0x2b,0x35,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x55,0x00,0x5b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95, +0x00,0x99,0x00,0x9d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e, +0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x05,0x21,0x35,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35, +0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d, +0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0xe0,0xfe,0xf0,0x59,0x5b,0xba,0x58,0xfb,0xbb,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56, +0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08, +0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x04,0x4b,0x01,0x0b,0x13,0x4c,0x26,0xfe,0x96,0x03,0x8b,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c, +0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x61,0x00,0x67,0x00,0x6d,0x00,0x73,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99, +0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x33,0x15,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35, +0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35, +0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x02,0x2f,0xae,0xfe,0xe5,0x7c,0x25,0x1e,0x40,0x37,0x33,0x38,0x47,0x42,0x4a,0x5b,0xfc,0x14,0xeb,0x96,0x04, +0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18, +0x01,0x2a,0xfc,0x44,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x4d,0x02,0x4f,0x4a,0x76,0x24,0x30,0x1b,0x3b,0x2c,0x53,0x25,0x43,0x38,0x4b, +0x51,0x03,0x37,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x14,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0, +0x00,0x09,0x00,0x15,0x00,0x4b,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x92,0x00,0x96,0x00,0x9a,0x00,0x9e,0x00,0xa2,0x00,0xa6,0x00,0xaa,0x00,0xae,0x00,0xb2,0x00,0xb6,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x11,0x33,0x21,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13, +0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35, +0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01, +0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x03,0x20,0x97,0x8b,0x8b,0x61,0xf8,0x02,0x1a,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xfd,0x35,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34, +0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x01,0xd9,0x2b,0x3a,0x24,0x28,0x32,0x2b,0x27,0x24,0x54,0x41,0x2b,0x29,0x2d,0x3d,0x42,0x49,0x55,0x2d,0x35,0x58,0x4e,0x42,0xfc,0x98,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56, +0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0x04,0x7b,0x6a,0x4e,0xa7,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfc,0x45,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a, +0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x0a,0x52,0x1f,0x1f,0x1c,0x1d,0x1f,0x48,0x38,0x35,0x1c,0x4d,0x17,0x3b,0x30,0x54,0x15,0x02,0x06,0x37,0x27,0x3d,0x46,0x03,0xdd,0xec, +0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x13,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x0b,0x00,0x41, +0x00,0x5d,0x00,0x63,0x00,0x69,0x00,0x6f,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0x00,0x01,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x13,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35, +0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x13,0x23,0x11,0x34,0x37,0x23,0x06,0x07,0x03,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x17,0x16,0x17,0x33,0x36,0x37,0x37,0x33,0x25,0x35,0x33,0x15,0x23,0x15,0x25,0x35, +0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33, +0x03,0x82,0x94,0x6e,0x92,0x68,0x5a,0x07,0x01,0x02,0x02,0x07,0x5a,0xe5,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0x7b,0x60,0x04,0x02,0x08,0x06,0x65, +0x4f,0x67,0x04,0x09,0x03,0x04,0x57,0x8e,0x58,0x0a,0x05,0x02,0x08,0x09,0x58,0x8a,0xfc,0x28,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55, +0x05,0x6b,0x56,0x56,0x02,0xac,0xfe,0x52,0x01,0xae,0xfe,0xd4,0x18,0x13,0x15,0x18,0x01,0x2a,0xfe,0x63,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d, +0x0c,0x02,0x19,0x01,0x01,0x2a,0x32,0x27,0x12,0xfe,0xdc,0x01,0x21,0x0c,0x30,0x3f,0x30,0xee,0x01,0xae,0xff,0x1f,0x1e,0x23,0x1b,0xfe,0x0a,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03, +0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x00,0x00,0x03,0x00,0x93,0xff,0x43,0x03,0x75,0x05,0xb8,0x00,0x1e,0x00,0x25,0x00,0x2a,0x00,0x5b,0xb1,0x16,0x1c,0xb8,0x01,0x84,0x40,0x0d,0x29,0x19,0x13,0x00,0x00,0x1f,0x10,0x09,0x03,0x03,0x0d,0x29,0x23,0xb8,0x01,0x84,0x40,0x0b,0x06,0x0d,0x1f,0x19,0x13,0x09, +0x26,0x0a,0x03,0x20,0x18,0xb8,0x01,0x7e,0xb6,0x10,0x7f,0x13,0x01,0x13,0x27,0x09,0xb8,0x01,0x7e,0xb1,0x00,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x71,0x33,0xed,0x32,0x11,0x39,0x39,0x11,0x12,0x39,0x39,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x2f,0x33,0x33,0x33,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x15,0x23,0x35,0x22, +0x27,0x35,0x16,0x16,0x33,0x11,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x03,0x11,0x06,0x06,0x15,0x14,0x16,0x13,0x11,0x36,0x35,0x34,0x02,0x2e,0x5e,0xc1,0x79,0x35,0xb6,0x4f,0xc7,0x76,0xb3,0x8a,0x5e,0xb2,0x44,0x5d,0x99,0xbd,0x8a,0xad,0xf8,0x4c,0x59,0x48,0xbb,0xaf, +0x07,0xc4,0xbd,0x4e,0x9e,0x2f,0x3e,0x01,0xd0,0x60,0xa2,0x6e,0x84,0xbf,0x13,0xa3,0x9f,0x06,0x2d,0x9a,0x48,0x06,0xfe,0x21,0x59,0xa8,0x6b,0x80,0xaf,0x02,0xce,0x01,0xa6,0x0f,0x68,0x4b,0x4d,0x64,0xfe,0xff,0xfe,0x66,0x26,0x97,0x7d,0x00,0x00,0x05,0x00,0x48,0xff,0xec,0x05,0xaa,0x05,0x27,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x27, +0x00,0x33,0x00,0x6f,0xb5,0x18,0x1a,0x18,0x1a,0x03,0x25,0xbe,0x01,0x83,0x00,0x31,0x00,0x09,0x01,0x83,0x00,0x15,0x00,0x2b,0x01,0x83,0xb7,0x1f,0x15,0x1f,0x15,0x1f,0x03,0x31,0x0f,0xbb,0x01,0x83,0x00,0x03,0x00,0x12,0x01,0x7d,0xb5,0x70,0x00,0x01,0x00,0x00,0x0c,0xb8,0x01,0x7d,0xb6,0x06,0x06,0x7f,0x1b,0x01,0x1b,0x28,0xb8,0x01, +0x7d,0xb2,0x22,0x22,0x2e,0xb8,0x01,0x7d,0xb2,0x1c,0x1c,0x1a,0x00,0x2f,0x33,0x2f,0xed,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x33,0x2f,0x71,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x25,0x01,0x23,0x01,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x6e,0x86,0xa0,0xa9,0x8f,0x8b,0x99,0xab,0x7e,0x56,0x64,0x62,0x54,0x55,0x60,0x5f,0x03,0x07,0xfc,0xbe,0x81,0x03,0x40,0x23, +0x86,0xa0,0xab,0x8d,0x8a,0x9a,0xac,0x7e,0x57,0x62,0x62,0x54,0x55,0x60,0x5f,0x02,0x88,0xb0,0x94,0xa1,0xba,0xac,0x9c,0x9c,0xbb,0x02,0x3b,0x7f,0x70,0x6d,0x7b,0x7f,0x71,0x6d,0x7a,0x50,0xfa,0xe4,0x05,0x1c,0xfa,0xd9,0xb2,0x92,0xa2,0xbb,0xae,0x9c,0x9b,0xbc,0x02,0x3b,0x7f,0x70,0x6c,0x7a,0x7f,0x70,0x6e,0x78,0x00,0x03,0x00,0x6c, +0xff,0xeb,0x05,0xa8,0x05,0x29,0x00,0x43,0x00,0x57,0x00,0x67,0x00,0x7e,0xb1,0x41,0x33,0xbb,0x01,0x84,0x00,0x2c,0x00,0x60,0x01,0x84,0xb6,0x17,0x12,0x4e,0x24,0x03,0x17,0x21,0xb8,0x01,0x84,0xb3,0x58,0x29,0x05,0x38,0xb8,0x01,0x85,0x40,0x0b,0x49,0x17,0x58,0x49,0x49,0x58,0x17,0x03,0x0f,0x2c,0x53,0xb8,0x01,0x84,0xb3,0x0f,0x24, +0x12,0x4e,0xb8,0x01,0x7e,0x40,0x0c,0x29,0x49,0x38,0x05,0x04,0x0a,0x65,0x2f,0x65,0x2f,0x44,0x5d,0xb8,0x01,0x7e,0xb2,0x1c,0x3d,0x44,0xb8,0x01,0x7e,0xb1,0x00,0x0a,0x00,0x2f,0x33,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0xed,0x39,0x39,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x39,0x39, +0x10,0xed,0x11,0x17,0x39,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x05,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x14,0x0e,0x02,0x07,0x1e,0x03,0x33,0x32,0x36,0x37, +0x15,0x06,0x06,0x25,0x32,0x3e,0x02,0x37,0x2e,0x03,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x14,0x1e,0x02,0x17,0x36,0x36,0x05,0x1d,0x33,0x4f,0x43,0x3f,0x22,0x25,0x5f,0x74,0x89,0x51,0x62,0xa3,0x74,0x40,0x9d,0x91,0x1c,0x36,0x2b,0x1a,0x34,0x5a,0x7c,0x47,0x47,0x75,0x54,0x2f,0x7c,0x7c,0x3e, +0x66,0x56,0x4a,0x24,0x4a,0x4a,0x08,0x07,0x90,0x07,0x03,0x02,0x23,0x3a,0x4d,0x2a,0x1f,0x35,0x35,0x39,0x25,0x1b,0x38,0x1e,0x21,0x47,0xfc,0xe5,0x45,0x74,0x62,0x4f,0x21,0x37,0x5e,0x5f,0x6b,0x47,0x39,0x60,0x46,0x28,0x2d,0x4f,0x69,0x01,0x20,0x22,0x34,0x3f,0x1f,0x59,0x6a,0x01,0x17,0x29,0x36,0x1f,0x72,0x71,0x15,0x1c,0x34,0x4a, +0x2f,0x27,0x48,0x38,0x22,0x31,0x5f,0x8c,0x5a,0x8b,0xc5,0x3e,0x14,0x35,0x44,0x53,0x31,0x47,0x6f,0x4c,0x27,0x27,0x48,0x66,0x3e,0x6d,0x90,0x33,0x18,0x47,0x57,0x64,0x35,0x66,0xf7,0x87,0x22,0x3d,0x1e,0x1e,0x36,0x25,0x52,0xa7,0x9d,0x8d,0x3b,0x2b,0x41,0x2b,0x15,0x0e,0x0b,0x89,0x0d,0x0d,0x81,0x1e,0x32,0x42,0x24,0x56,0x7a,0x59, +0x40,0x1b,0x17,0x37,0x4b,0x64,0x43,0x3e,0x5e,0x3e,0x20,0x03,0x9d,0x2d,0x40,0x29,0x13,0x60,0x52,0x25,0x42,0x38,0x2b,0x10,0x28,0x6a,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x1b,0x00,0x4d,0xb1,0x14,0x18,0xb8,0x01,0x84,0x40,0x0c,0x08,0x04,0x16,0x0f,0x00,0x00,0x0f,0x16,0x04,0x04,0x1d,0x1a,0xb8,0x01,0x86,0xb3, +0x06,0x01,0x17,0x06,0xb8,0x01,0x7e,0xb4,0x14,0x07,0x07,0x1a,0x11,0xb8,0x01,0x7e,0xb2,0x0c,0x02,0x1a,0xb9,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc4,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x35,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34, +0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x14,0x07,0x21,0x03,0x8f,0xfc,0xd1,0xc6,0xb3,0xb3,0xc5,0x9d,0x6a,0x57,0x5b,0x64,0xd0,0x01,0x0c,0xfe,0xf4,0xaf,0x02,0x84,0x7a,0x3f,0xdd,0xa9,0x80,0xe6,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0xd6,0x80,0x8d,0xdb,0x58,0x00,0x02,0x00,0x77,0xff,0xc4,0x02,0xdb, +0x05,0x47,0x00,0x26,0x00,0x30,0x00,0x5c,0xb2,0x1c,0x00,0x25,0xbb,0x01,0x84,0x00,0x2e,0x00,0x20,0x01,0x84,0xb2,0x07,0x16,0x02,0xb8,0x01,0x84,0x40,0x09,0x0d,0x16,0x0d,0x16,0x0d,0x12,0x2e,0x14,0x29,0xb8,0x01,0x84,0x40,0x0c,0x12,0x00,0x2c,0x14,0x27,0x20,0x27,0x2c,0x0d,0x04,0x05,0x1e,0xbc,0x01,0x7e,0x00,0x19,0x00,0x0a,0x01, +0x7e,0x00,0x05,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xfd,0xc5,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xed,0x10,0xfd,0xcd,0xc4,0x31,0x30,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17, +0x15,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x01,0x06,0x15,0x14,0x16,0x17,0x36,0x35,0x34,0x26,0x02,0x54,0x52,0xb6,0x8c,0x77,0x61,0x75,0x6d,0x4c,0x53,0x40,0x83,0xd3,0x85,0x60,0xa9,0x8b,0x76,0x50,0x5b,0x6f,0x98,0x49,0x94,0xca,0xfe,0x8e,0x5c,0x66,0x80,0x50,0x5f,0x01,0x79,0x43,0x66,0x77,0x95,0x33,0x8f,0x43,0x48, +0x36,0x30,0x42,0x46,0x6e,0xb1,0x94,0x49,0x4b,0x7f,0x73,0x95,0x27,0x8f,0x38,0x83,0x31,0x52,0x47,0x61,0xa8,0x9a,0x01,0x5b,0x2e,0x62,0x41,0x63,0x39,0x3d,0x5f,0x41,0x5b,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x03,0xb0,0x05,0x13,0x00,0x1b,0x00,0x72,0xb3,0x10,0x0c,0x05,0x09,0xbb,0x01,0x84,0x00,0x0a,0x00,0x01,0x01,0x82,0x40,0x15, +0x18,0x03,0x07,0x0c,0x12,0x0a,0x0e,0x18,0x07,0x07,0x18,0x0e,0x0a,0x12,0x0c,0x06,0x00,0x13,0x00,0x08,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x05,0x0d,0x04,0x10,0xb8,0x01,0x7e,0x40,0x13,0x11,0x01,0x18,0x11,0x0f,0x11,0x1f,0x11,0x02,0x0d,0x11,0x0d,0x11,0x0a,0x13,0x7f,0x00,0x01,0x00,0x00,0x2f,0x71,0x32,0x2f,0x39,0x39,0x2f,0x2f,0x5d, +0x11,0x39,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x10,0xed,0x32,0x11,0x33,0x31,0x30,0x01,0x01,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x01,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x03,0xb0, +0xfe,0xbe,0x01,0x02,0xfe,0xd1,0x01,0x2f,0xfe,0xd1,0x94,0xfe,0xc8,0x01,0x38,0xfe,0xc8,0x01,0x08,0xfe,0xc1,0xae,0xe2,0x19,0x12,0x03,0x0c,0x21,0xe4,0x05,0x13,0xfd,0xae,0x7e,0xbc,0x7e,0xfe,0xf7,0x01,0x09,0x7e,0xbc,0x7e,0x02,0x52,0xfe,0x2f,0x35,0x30,0x26,0x44,0x01,0xcc,0x00,0x00,0x01,0x00,0x96,0xfe,0x99,0x03,0xb5,0x03,0xa0, +0x00,0x18,0x00,0x29,0xb1,0x0e,0x0a,0xbb,0x01,0x84,0x00,0x0b,0x00,0x17,0x01,0x84,0xb5,0x14,0x03,0x15,0x0d,0x0b,0x11,0xb8,0x01,0x7e,0xb1,0x06,0x01,0x00,0x2f,0x2f,0xed,0x2f,0x2f,0x33,0x01,0x2f,0x33,0xed,0x2f,0xed,0x32,0x31,0x30,0x21,0x23,0x26,0x35,0x23,0x06,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x14,0x16,0x33,0x32, +0x36,0x35,0x11,0x33,0x11,0x14,0x03,0xb5,0x9a,0x14,0x05,0x4c,0xb1,0x97,0x40,0x04,0x94,0x94,0x7d,0x65,0x6d,0x89,0x96,0x41,0x57,0xad,0x70,0xfe,0x3e,0x05,0x07,0xfd,0xc9,0x73,0x88,0x9b,0x84,0x02,0x13,0xfd,0x50,0xaa,0x00,0x01,0x00,0x2e,0xfe,0x57,0x04,0x48,0x05,0x13,0x00,0x0b,0x00,0x32,0xb1,0x08,0x0a,0xbb,0x01,0x86,0x00,0x01, +0x00,0x09,0x01,0x86,0x40,0x10,0x03,0x03,0x00,0x04,0x01,0x07,0x00,0x08,0x9a,0x7f,0x05,0x01,0x05,0x0a,0x9a,0x01,0x00,0x2f,0xed,0x2f,0x71,0xed,0x01,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x31,0x30,0x01,0x21,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x04,0x48,0xfb,0xe6,0x02,0x65,0xfd,0xbd,0x03,0xd4, +0xfd,0x0b,0x02,0x1a,0xfd,0xca,0x03,0x35,0xfe,0x57,0x47,0x03,0x20,0x03,0x04,0x51,0x8b,0xfd,0x39,0xfd,0x21,0x00,0x00,0x01,0x00,0x5c,0xff,0xea,0x03,0x97,0x05,0x29,0x00,0x25,0x00,0x58,0xb4,0x14,0x25,0x25,0x27,0x1d,0xb8,0x01,0x85,0xb2,0x09,0x21,0x05,0xb8,0x01,0x7e,0xb4,0x06,0x1e,0x06,0x1c,0x0c,0xb8,0x01,0x7e,0x40,0x13,0x0d, +0x19,0x0d,0x0f,0x06,0x1f,0x06,0x02,0x3f,0x0d,0x4f,0x0d,0x02,0x06,0x0d,0x06,0x0d,0x23,0x16,0xbc,0x01,0x7e,0x00,0x11,0x00,0x23,0x01,0x7e,0x00,0x02,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x2f,0x39,0x31,0x30,0x25,0x06,0x23,0x20, +0x03,0x23,0x35,0x33,0x26,0x35,0x34,0x37,0x23,0x35,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x06,0x17,0x21,0x15,0x21,0x12,0x33,0x32,0x37,0x03,0x97,0x79,0x87,0xfe,0x7d,0x4a,0x6e,0x62,0x03,0x05,0x64,0x77,0x2e,0x01,0x01,0xb7,0x7c,0x62,0x68,0x80,0x72,0xb0,0x24,0x01,0xc3,0xfe,0x2a,0x08,0x07, +0x01,0xd7,0xfe,0x37,0x41,0xfc,0x77,0x80,0x2d,0x43,0x01,0xcb,0x7f,0x1c,0x29,0x2c,0x36,0x7f,0xd9,0xf6,0x33,0x93,0x47,0xb6,0x9a,0x7f,0x5a,0x4d,0x7f,0xfe,0xb4,0x4f,0x00,0x03,0x00,0x73,0x00,0x00,0x06,0x30,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x24,0x00,0x70,0xb1,0x0e,0x1f,0xbe,0x01,0x83,0x00,0x14,0x00,0x08,0x01,0x82,0x00,0x03, +0x00,0x23,0x01,0x84,0x40,0x11,0x19,0x0f,0x03,0x00,0x0f,0x0f,0x00,0x03,0x03,0x05,0x0a,0x14,0x0c,0x01,0x05,0x08,0x02,0xbb,0x01,0x7d,0x00,0x01,0x00,0x17,0x01,0x7d,0xb7,0x1c,0x01,0x1c,0x01,0x1c,0x0d,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0a,0x0f,0x04,0x99,0x07,0x07,0x7f,0x0d,0x01,0x0d,0x0c,0x00,0x2f,0x2f,0x71,0x33,0x2f,0xed,0x2f, +0xed,0x32,0x11,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, +0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0xc4,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfa,0xee,0x67,0xd6,0x5c,0x63, +0x32,0x35,0x42,0x5d,0x87,0x45,0x77,0x62,0x8b,0xb1,0x8d,0x04,0x00,0x04,0x00,0x73,0x00,0x00,0x06,0x0a,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x18,0x00,0x20,0x00,0x7d,0xb5,0x17,0x10,0x0e,0xa8,0x11,0x08,0xbb,0x01,0x82,0x00,0x03,0x00,0x1d,0x01,0x83,0x40,0x18,0x13,0x03,0x00,0x13,0x13,0x00,0x03,0x03,0x05,0x1e,0x1a,0x19,0x0a,0x11, +0x0c,0x01,0x05,0x04,0x99,0x07,0x07,0x0d,0x0f,0x13,0xb8,0x01,0x7d,0xb5,0x1d,0x17,0x14,0x1d,0x08,0x02,0xb8,0x01,0x7d,0x40,0x11,0x01,0x19,0x15,0x1d,0x01,0x15,0x15,0x01,0x1d,0x03,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0x0c,0x00,0x2f,0x33,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32, +0x11,0x33,0x2f,0xed,0x01,0x2f,0x33,0xc4,0x2f,0xc4,0x33,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x02,0x43, +0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7,0x83,0x03,0x0a,0x01,0x9e,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0a,0x18,0xc6,0xe8,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, +0x00,0x04,0x00,0x75,0x00,0x00,0x06,0x45,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x2f,0x00,0x37,0x00,0x9a,0xb5,0x2e,0x27,0x25,0xa8,0x28,0x17,0xbe,0x01,0x82,0x00,0x0d,0x00,0x1c,0x01,0x83,0x00,0x06,0x00,0x34,0x01,0x83,0x40,0x0f,0x2a,0x0d,0x06,0x2a,0x2a,0x06,0x0d,0x03,0x09,0x35,0x30,0x21,0x28,0x23,0x1a,0xb8,0x01,0x86,0xb4,0x11, +0x00,0x09,0x26,0x2a,0xb8,0x01,0x7d,0xb5,0x34,0x2e,0x2b,0x34,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0x40,0x0d,0x1f,0x30,0x2c,0x34,0x1f,0x2c,0x2c,0x1f,0x34,0x03,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb7,0x14,0x14,0x7f,0x24,0x01,0x24,0x28,0x23,0x00,0x2f,0x33,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x17,0x39, +0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x39,0x2f,0xed,0x39,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0xc6,0xed,0xc4,0x2f,0xc4,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x10,0xf4,0xc6,0x32,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x23,0x15,0x23,0x35,0x21,0x35,0x01,0x33,0x11,0x33,0x03,0x23,0x06,0x07,0x03,0x33,0x11,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66,0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x74,0xfc,0xf7,0x82, +0x03,0x0a,0x01,0x98,0x64,0x78,0xfe,0x9c,0x01,0x4f,0x8d,0x64,0xd8,0x04,0x0b,0x17,0xc6,0xe8,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05,0x13,0xfb,0xa6,0xb9,0xb9,0x53,0x01,0xf6,0xfe,0x1a,0x01,0x74,0x1c,0x26,0xfe,0xce,0x01,0x24,0x1d, +0x00,0x01,0x00,0x19,0x00,0x00,0x03,0x3e,0x05,0x13,0x00,0x11,0x00,0x4b,0x40,0x09,0x00,0x0e,0x00,0x0e,0x03,0x09,0x10,0x0c,0x02,0xb8,0x01,0x85,0xb4,0x07,0x05,0x03,0x01,0x05,0xb8,0x01,0x7f,0x40,0x12,0x06,0x10,0x06,0x0f,0x9a,0x0c,0x06,0x0c,0x06,0x0c,0x03,0x0b,0x9a,0x7f,0x08,0x01,0x08,0x03,0x00,0x2f,0x2f,0x71,0xed,0x12,0x39, +0x39,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xc6,0x33,0xed,0x32,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x15,0x33,0x02,0x20,0xdd,0x99,0x91,0x91,0x02,0x94,0xfe,0x05,0x01,0xd5,0xfe,0x2b,0xdd,0xfc,0xfc,0xfc,0x8d,0x03,0x8a, +0x8a,0xfe,0x3f,0x89,0xb6,0x00,0x00,0x04,0x00,0xaa,0xff,0xea,0x07,0xd0,0x05,0x13,0x00,0x09,0x00,0x10,0x00,0x25,0x00,0x45,0x00,0x9b,0xb1,0x36,0x41,0xbb,0x01,0x84,0x00,0x2b,0x00,0x06,0x01,0x85,0xb2,0x0e,0x1d,0x21,0xb8,0x01,0x84,0xb5,0x1a,0x18,0x16,0x1f,0x11,0x3b,0xb8,0x01,0x84,0x40,0x0f,0x26,0x30,0x0e,0x16,0x11,0x30,0x30, +0x11,0x16,0x0e,0x04,0x02,0x2b,0x0b,0x01,0xb8,0x01,0x85,0x40,0x0e,0x02,0x2b,0x3b,0x44,0x33,0x44,0x13,0x0b,0x9a,0x00,0x33,0x38,0x20,0x18,0xb8,0x01,0x7e,0x40,0x0d,0x19,0x1d,0x19,0x00,0x19,0x1c,0x1c,0x19,0x00,0x03,0x03,0x29,0x23,0xb8,0x01,0x7e,0x40,0x09,0x13,0x0a,0x9a,0x7f,0x03,0x01,0x03,0x02,0x18,0x00,0x3f,0x2f,0x71,0xed, +0x2f,0xed,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x32,0x33,0x10,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc4,0xed,0x11,0x33,0x10,0xc6,0x33,0xed,0x32,0x10,0xed,0x10,0xfd,0xc4,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x20,0x11,0x14,0x06,0x23,0x03, +0x11,0x33,0x20,0x11,0x10,0x21,0x01,0x06,0x23,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x15,0x23,0x11,0x14,0x33,0x32,0x37,0x17,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x01,0x43,0x99,0x01,0x1b,0x01, +0xa3,0xf0,0xd5,0x60,0x55,0x01,0x30,0xfe,0xe3,0x03,0xd3,0x34,0x57,0x76,0x6a,0x8d,0x8d,0x94,0xd7,0xd7,0x77,0x36,0x2a,0x3e,0x6d,0x7c,0x93,0x3a,0xdf,0x61,0xa6,0x85,0x75,0x47,0x57,0x67,0x42,0x4f,0x62,0x55,0x7f,0x44,0x9f,0x8c,0x92,0x01,0xeb,0xfe,0x15,0x05,0x13,0xfe,0x7c,0xbe,0xe6,0x02,0x9e,0xfd,0xec,0x01,0x13,0x01,0x01,0xfb, +0x80,0x1d,0x81,0x8f,0x01,0xa4,0x7d,0xe3,0x31,0xfe,0xec,0x7d,0xfe,0x76,0xad,0x1f,0x66,0x9f,0x5a,0x68,0x24,0x48,0x54,0x38,0x69,0x6e,0x83,0x2a,0x91,0x3e,0x39,0x2e,0x33,0x28,0x23,0x39,0x66,0x43,0x71,0x82,0x00,0x01,0x00,0x60,0x00,0x00,0x03,0x8f,0x05,0x29,0x00,0x23,0x00,0x81,0xb5,0x10,0x0c,0x07,0x22,0x1e,0x01,0xb8,0x01,0x84, +0x40,0x0e,0x12,0x0e,0x0a,0x20,0x00,0x0a,0x00,0x19,0x19,0x00,0x0a,0x03,0x05,0x04,0xb8,0x01,0x86,0xb3,0x07,0x05,0x01,0x0c,0xb8,0x01,0x7e,0xb4,0x0d,0x22,0x0d,0x21,0x10,0xb8,0x01,0x7e,0x40,0x16,0x11,0x1e,0x11,0x30,0x0d,0x40,0x0d,0x02,0x2f,0x11,0x01,0x00,0x11,0x10,0x11,0x02,0x0d,0x11,0x0d,0x11,0x04,0x1b,0xb8,0x01,0x7e,0xb2, +0x16,0x08,0x04,0xb9,0x01,0x7e,0x00,0x07,0x00,0x2f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0xed,0x32,0x32,0x10,0xc4,0x32,0x31,0x30,0x01,0x21,0x15,0x14,0x07,0x21,0x15,0x21,0x35, +0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x11,0x15,0x21,0x15,0x21,0x15,0x21,0x02,0xc6,0xfe,0xf4,0xaf,0x02,0x84,0xfc,0xd1,0xc6,0xb3,0xb3,0xb3,0xb3,0xc5,0x9d,0x6b,0x56,0x5a,0x65,0xd0,0x01,0x0c,0xfe,0xf4,0x01,0x0c,0x01,0xba,0x08,0xdc,0x57,0x7f,0x7a,0x41,0xdb,0x24, +0x7f,0x7b,0x80,0x71,0xab,0xd9,0x25,0x8d,0x34,0xfe,0xea,0x61,0x80,0x7b,0x00,0x05,0x00,0x73,0xff,0xee,0x06,0x35,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x21,0x00,0x2a,0x00,0x34,0x00,0x9a,0xbc,0x00,0x24,0x01,0x83,0x00,0x20,0x00,0x29,0x01,0x83,0x40,0x0a,0x1a,0x0e,0x18,0x1a,0x20,0x1a,0x20,0x1a,0x16,0x10,0xbb,0x01,0x83,0x00,0x33, +0x00,0x2d,0x01,0x83,0x40,0x0b,0x16,0x0c,0x16,0x0a,0x0a,0x16,0x0c,0x03,0x03,0x33,0x08,0xb8,0x01,0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb7,0x01,0x18,0x0e,0x2b,0x22,0x2b,0x13,0x26,0xb8,0x01,0x7d,0x40,0x0e,0x1d,0x22,0x30,0x1d,0x01,0x1d,0x01,0x1d,0x0c,0x7f,0x0d,0x01,0x0d,0x30,0xb8,0x01,0x7d,0xb3, +0x13,0x13,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x21, +0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x02,0x43,0xfe,0x37,0xa8,0xaf,0x01,0x25,0xab,0x02,0xab,0xfc,0xf7, +0x83,0x03,0x0a,0x01,0x35,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, +0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x75,0xff,0xee,0x06,0x76,0x05,0x25,0x00,0x20,0x00,0x24,0x00,0x38,0x00,0x41,0x00,0x4b,0x00,0xc3,0xbc,0x00,0x3b,0x01,0x83,0x00,0x37,0x00,0x40,0x01,0x83,0x40,0x0a,0x31,0x25,0x2f,0x31,0x37,0x31,0x37,0x31,0x2d,0x27,0xbb,0x01,0x83,0x00,0x4a,0x00,0x0d, +0x01,0x82,0x40,0x09,0x11,0x09,0x1a,0x03,0x00,0x17,0x17,0x00,0x1c,0xbb,0x01,0x83,0x00,0x06,0x00,0x44,0x01,0x83,0x40,0x0f,0x2d,0x23,0x06,0x2d,0x21,0x21,0x2d,0x06,0x23,0x04,0x00,0x4a,0x00,0x19,0x09,0xb8,0x01,0x7d,0xb3,0x0a,0x0a,0x14,0x03,0xb8,0x01,0x7d,0xb7,0x1f,0x2f,0x25,0x42,0x39,0x42,0x2a,0x3d,0xb8,0x01,0x7d,0x40,0x0b, +0x34,0x39,0x34,0x47,0x1f,0x34,0x1f,0x34,0x23,0x24,0x0f,0xb8,0x01,0x7d,0xb6,0x14,0x14,0x7f,0x24,0x01,0x24,0x47,0xb8,0x01,0x7d,0xb3,0x2a,0x2a,0x23,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x39, +0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15, +0x16,0x15,0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x75,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4f,0x72,0x66, +0x7a,0x84,0xa1,0x9a,0x81,0x7c,0x04,0x75,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x35,0x93,0x94,0x87,0x71,0x98,0x93,0x77,0x8b,0x77,0x6a,0x83,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x43,0x40,0x53,0x02,0x2e,0x81,0x45,0x44,0x3a,0x80,0x6a,0x7a,0x6c,0x3f,0x7e,0x2e,0x6b,0x57,0x89,0x31,0x04,0x26,0x91,0x6a,0x86,0x03,0x15,0xfa,0xed,0x05, +0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x82,0xff,0xee,0x06,0x78,0x05,0x17,0x00,0x15,0x00,0x19,0x00,0x2d,0x00,0x36,0x00,0x40,0x00,0xb6,0xbc,0x00,0x30,0x01,0x83,0x00,0x2c,0x00, +0x35,0x01,0x83,0x40,0x0a,0x26,0x1a,0x24,0x26,0x2c,0x26,0x2c,0x26,0x22,0x1c,0xb8,0x01,0x83,0xb2,0x3f,0x0c,0x11,0xbb,0x01,0x83,0x00,0x06,0x00,0x39,0x01,0x83,0x40,0x0d,0x22,0x18,0x06,0x22,0x16,0x16,0x22,0x06,0x18,0x04,0x09,0x3f,0x0e,0xb8,0x01,0x82,0xb2,0x00,0x09,0x08,0xb8,0x01,0x7d,0xb3,0x0e,0x0e,0x0a,0x03,0xb8,0x01,0x7d, +0xb7,0x14,0x1a,0x24,0x37,0x2e,0x37,0x1f,0x32,0xb8,0x01,0x7d,0x40,0x0b,0x29,0x2e,0x29,0x3c,0x14,0x29,0x14,0x29,0x1f,0x19,0x0d,0xb8,0x01,0x7d,0xb6,0x0a,0x0a,0x7f,0x19,0x01,0x19,0x3c,0xb8,0x01,0x7d,0xb3,0x1f,0x1f,0x18,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x33,0x2f,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10, +0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x10,0xed,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xfd,0xc4,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39,0x10,0xed,0x10,0xed,0x31,0x30,0x13,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x11,0x21,0x15,0x21,0x15,0x36,0x16,0x15, +0x14,0x06,0x23,0x22,0x01,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x82,0x67,0x4e,0x4d,0x5b,0xb9,0x8c,0x01,0x9e,0xfe,0xd6,0xa5,0xa9,0x9e,0x89,0x70,0x04, +0x6c,0xfc,0xf7,0x83,0x03,0x0b,0x01,0x34,0x94,0x94,0x87,0x72,0x97,0x93,0x77,0x8b,0x76,0x6a,0x84,0xf8,0x7b,0x79,0x36,0x46,0x74,0x90,0x55,0x42,0x41,0x53,0x02,0x25,0x84,0x3f,0x51,0x40,0x8a,0x08,0x01,0x9a,0x71,0xb5,0x0c,0x89,0x74,0x72,0x90,0x03,0x15,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43, +0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d,0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x05,0x00,0x93,0xff,0xee,0x05,0xfe,0x05,0x1c,0x00,0x06,0x00,0x0a,0x00,0x1e,0x00,0x27,0x00,0x31,0x00,0x9a,0xbc,0x00,0x21,0x01,0x83,0x00,0x1d,0x00,0x26,0x01,0x83,0x40,0x0a,0x17,0x0b,0x15,0x17,0x1d,0x17,0x1d, +0x17,0x13,0x0d,0xbe,0x01,0x83,0x00,0x30,0x00,0x06,0x01,0x85,0x00,0x02,0x00,0x2a,0x01,0x83,0x40,0x0f,0x13,0x01,0x09,0x02,0x13,0x07,0x07,0x13,0x02,0x09,0x01,0x05,0x30,0x03,0x03,0xb8,0x01,0x7d,0x40,0x0a,0x04,0x04,0x0a,0x0b,0x15,0x1f,0x28,0x28,0x10,0x23,0xb8,0x01,0x7d,0x40,0x0e,0x1a,0x1f,0x2d,0x1a,0x01,0x1a,0x01,0x1a,0x10, +0x7f,0x0a,0x01,0x0a,0x2d,0xb8,0x01,0x7d,0xb3,0x10,0x10,0x09,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x10,0xed,0x11,0x39,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0x2f,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x11,0x39,0x39,0x2f,0x2f,0x12,0x39,0x39, +0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x23,0x01,0x21,0x35,0x21,0x15,0x25,0x01,0x23,0x01,0x01,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36,0x35,0x34,0x23,0x22,0x06,0x15,0x14,0x17,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x01,0x73,0x84,0x01,0x23,0xfe,0x81,0x02, +0x1b,0x02,0x09,0xfc,0xf6,0x82,0x03,0x0a,0x01,0x35,0x94,0x95,0x87,0x71,0x97,0x92,0x76,0x8a,0x77,0x6a,0x83,0xf8,0x7b,0x78,0x36,0x46,0x74,0x90,0x55,0x42,0x40,0x54,0x02,0x11,0x02,0xa0,0x6b,0x30,0x27,0xfa,0xed,0x05,0x13,0xfc,0x83,0x41,0x8b,0x66,0x76,0x75,0x60,0x8a,0x49,0x43,0x72,0x5b,0x6e,0x69,0x55,0x79,0x10,0x34,0x4a,0x5d, +0x33,0x28,0x4d,0xa0,0x30,0x69,0x2e,0x3e,0x3d,0x2c,0x67,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x04,0x1e,0x05,0x2b,0x00,0x27,0x00,0x61,0xb1,0x22,0x26,0xb8,0x01,0x84,0x40,0x0a,0x1d,0x01,0x10,0x24,0x24,0x10,0x01,0x03,0x00,0x18,0xb8,0x01,0x84,0xb3,0x07,0x20,0x00,0x02,0xbe,0x01,0x7e,0x00,0x1d,0x00,0x25,0x01,0x7e,0x00,0x22,0x00, +0x21,0x01,0x7e,0x40,0x0a,0x1e,0x1d,0x22,0x1e,0x1e,0x22,0x1d,0x03,0x26,0x13,0xbc,0x01,0x7e,0x00,0x0c,0x00,0x26,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x21,0x11,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x04,0x1e,0xfd,0xed,0x61,0x9b,0x6c,0x3a,0x42,0x7d,0xb3,0x70,0x3e,0x71,0x2f,0x34,0x74,0x3b,0x4d,0x7a,0x52,0x2c,0x21,0x42,0x64,0x43,0x01,0xfe,0xfe,0x95,0x01,0x51,0xfe,0xaf, +0x01,0x80,0x01,0x5a,0x03,0x4c,0x80,0xa7,0x5f,0x6f,0xbb,0x87,0x4b,0x17,0x17,0x9b,0x24,0x22,0x39,0x63,0x85,0x4b,0x45,0x75,0x59,0x39,0x0a,0x01,0xba,0x7f,0xfe,0xf0,0x7f,0xfe,0xed,0x00,0x00,0x03,0x00,0x6b,0xff,0xbc,0x03,0xb5,0x05,0xa7,0x00,0x2e,0x00,0x36,0x00,0x40,0x00,0x34,0x40,0x09,0x3b,0x32,0x3f,0x03,0x28,0x15,0x15,0x42, +0x2f,0xb8,0x01,0x85,0xb6,0x28,0x3e,0x31,0x32,0x03,0x37,0x10,0xbc,0x01,0x7e,0x00,0x1b,0x00,0x37,0x01,0x7e,0x00,0x01,0x00,0x2f,0xed,0x2f,0xed,0x11,0x17,0x39,0x01,0x2f,0xed,0x12,0x39,0x2f,0x12,0x17,0x39,0x31,0x30,0x01,0x07,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x15, +0x0e,0x03,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x37,0x01,0x14,0x17,0x13,0x0e,0x03,0x01,0x22,0x06,0x07,0x01,0x16,0x16,0x17,0x01,0x26,0x02,0xe9,0x27,0x17,0x2b,0x14,0x27,0x68,0x2c,0x0e,0x1d,0x0f,0x36,0x2b,0xfe,0xc3,0x3c,0x4b,0x2a,0x47,0x42,0x41,0x23,0x22,0x43,0x48,0x4f, +0x2f,0x52,0x48,0x15,0x67,0x20,0x26,0x23,0x2f,0x66,0x46,0x45,0x4c,0x4a,0x84,0xb4,0x6b,0x29,0xfe,0x89,0x2f,0xf2,0x41,0x6b,0x4c,0x29,0x01,0xb2,0x09,0x10,0x08,0xfe,0xe2,0x0f,0x21,0x13,0x01,0x32,0x1a,0x05,0xa7,0x7e,0x02,0x02,0x82,0x93,0x04,0x09,0x04,0x96,0x19,0x0e,0xfb,0xee,0x19,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08, +0x16,0x44,0x69,0x16,0x1b,0x9a,0xe8,0x55,0xe8,0x90,0x8c,0xea,0xb3,0x73,0x13,0x87,0xfc,0xd3,0x96,0x74,0x03,0x1e,0x1a,0x63,0x8a,0xab,0x01,0xce,0x01,0x01,0xfc,0x52,0x14,0x21,0x10,0x03,0xf2,0x03,0x00,0x01,0x00,0x6b,0xff,0xea,0x03,0xb5,0x05,0x29,0x00,0x3e,0x00,0x45,0xb1,0x37,0x07,0xb8,0x01,0x83,0xb3,0x34,0x34,0x00,0x2f,0xb8, +0x01,0x85,0xb4,0x1a,0x25,0x10,0x00,0x02,0xb8,0x01,0x7e,0x40,0x09,0x35,0x37,0x34,0x07,0x04,0x3b,0x3b,0x0a,0x2a,0xbc,0x01,0x7e,0x00,0x1f,0x00,0x0a,0x01,0x7e,0x00,0x15,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0x33,0x33,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x26,0x23,0x22,0x07,0x06,0x15, +0x11,0x16,0x32,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x03,0xb5,0x23,0x41,0x56,0x39,0x39,0x04,0x0b,0x06,0x2a,0x47,0x42,0x41,0x23,0x22,0x43, +0x48,0x4f,0x2f,0x77,0xc7,0x90,0x51,0x5b,0xa1,0xd9,0x7e,0x28,0x40,0x3a,0x38,0x1d,0x23,0x3c,0x3a,0x3c,0x24,0x5f,0x9e,0x74,0x41,0x24,0x41,0x5c,0x39,0x85,0x03,0x1d,0x74,0x49,0x1a,0x27,0x0e,0x02,0xd1,0x1b,0x50,0x50,0x8c,0xfe,0xaa,0x01,0x09,0x12,0x1b,0x13,0x88,0x10,0x17,0x11,0x08,0x5d,0xa8,0xef,0x93,0x9c,0x01,0x00,0xb7,0x65, +0x05,0x09,0x0e,0x0a,0x96,0x11,0x16,0x0f,0x07,0x52,0x94,0xce,0x7c,0x59,0x9e,0x7f,0x5e,0x1b,0x02,0xcd,0xab,0x58,0x62,0x07,0x05,0x00,0x00,0x01,0x00,0x96,0xff,0x28,0x05,0xbc,0x04,0x93,0x00,0x2e,0x00,0x62,0xb1,0x23,0x1f,0xb8,0x01,0x84,0xb2,0x20,0x2b,0x11,0xb8,0x01,0x84,0x40,0x0d,0x16,0x15,0x20,0x12,0x00,0x01,0x12,0x01,0x12, +0x01,0x06,0x20,0x05,0xb8,0x01,0x84,0xb2,0x06,0x0f,0x19,0xb8,0x01,0x7e,0x40,0x12,0x26,0x13,0x16,0x10,0x2b,0x04,0x26,0x20,0x2e,0x2e,0x2d,0x01,0x26,0x15,0x15,0x12,0x06,0x20,0x00,0x2f,0x33,0x33,0x33,0x2f,0x2f,0x33,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11, +0x12,0x39,0x33,0xed,0x39,0x10,0xed,0x32,0x31,0x30,0x01,0x07,0x33,0x20,0x11,0x11,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x22,0x07,0x03,0x11,0x23,0x35,0x03,0x23,0x01,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x37,0x13,0x05,0x00,0x7a,0x03,0x01,0x33,0x95,0x0f,0x2e,0x51, +0x41,0x07,0x0b,0x07,0xcc,0x94,0xde,0x8b,0x01,0x69,0xd3,0x39,0x56,0x37,0x1b,0x95,0x95,0x04,0x63,0xbd,0x2d,0x54,0x46,0x33,0x0c,0x39,0x56,0x90,0x04,0x93,0xde,0xfe,0x87,0xfd,0xc4,0x02,0x15,0x3f,0x6b,0x4e,0x2b,0x01,0xfe,0x8f,0xfe,0x3a,0xb9,0xfe,0x6f,0x02,0x8d,0x72,0x01,0x11,0x33,0x54,0x6a,0x36,0xfd,0xef,0x03,0xa0,0x93,0xa8, +0x1b,0x32,0x47,0x2c,0x69,0x2f,0x01,0x06,0x00,0x05,0x00,0x20,0x00,0x00,0x04,0x91,0x05,0x13,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x29,0x00,0x31,0x00,0xa2,0x40,0x0f,0x2f,0x22,0x21,0x12,0x04,0x11,0x14,0x11,0x28,0x0e,0x09,0x09,0x0c,0x08,0x10,0xb8,0x01,0x83,0x40,0x0d,0x29,0x1c,0x1f,0x04,0x04,0x03,0x1d,0x05,0x28,0x03,0x2e,0x20, +0x14,0xb8,0x01,0x84,0x40,0x0b,0x15,0x17,0x00,0x00,0x19,0x01,0x15,0x29,0x13,0x0f,0x17,0xb8,0x01,0x7e,0x40,0x09,0x18,0x20,0x1c,0x0c,0x18,0x23,0x1f,0x0b,0x1b,0xb8,0x01,0x7e,0x40,0x1c,0x00,0x2e,0x08,0x04,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x4f,0x00,0x04,0x18,0x00,0x18,0x00,0x02,0x25,0x15,0x11,0x2b,0x06,0x7f,0x02,0x01,0x02, +0x00,0x2f,0x71,0xc4,0x33,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x01,0x2f,0x33,0x33,0x33,0x2f,0x33,0x10,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0xed,0x32,0x32,0x32,0x2f,0x33,0x11,0x33,0x11,0x12,0x17,0x39,0x31,0x30, +0x13,0x33,0x11,0x33,0x13,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x23,0x03,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x05,0x33,0x27,0x23,0x01,0x33,0x26,0x35,0x35,0x23,0x01,0x23,0x16,0x15,0x15,0x33,0x27,0x26,0x20,0x8a,0xb8,0xdb,0x01,0x3e,0x88,0x8e,0x8e,0x8e,0x8e,0xaf,0xed,0xfe, +0xcc,0x89,0x8a,0x8a,0x8a,0x02,0x99,0xc2,0xff,0xfe,0xb7,0xf6,0x3e,0xb8,0x02,0x4b,0x03,0x06,0x85,0xfe,0x3b,0x04,0x06,0x79,0x57,0x19,0x03,0x55,0x01,0xbe,0xfe,0x42,0x01,0xbe,0xfe,0x42,0x7f,0x7c,0x7e,0xfe,0x24,0x01,0xdc,0xfe,0x24,0x01,0xdc,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0xfd,0xf2,0x2d,0x91,0x56,0x02,0x79,0x2a,0x86,0x50,0xb0, +0x32,0x00,0x00,0x03,0x00,0xaa,0xff,0xea,0x05,0xdb,0x05,0x13,0x00,0x16,0x00,0x21,0x00,0x54,0x00,0x79,0xb1,0x3a,0x4c,0xb8,0x01,0x84,0xb3,0x27,0x13,0x07,0x0e,0xbb,0x01,0x85,0x00,0x1e,0x00,0x42,0x01,0x84,0x40,0x0c,0x31,0x22,0x00,0x31,0x1e,0x31,0x1e,0x31,0x07,0x27,0x18,0x06,0xb8,0x01,0x85,0x40,0x09,0x07,0x13,0x18,0x9a,0x05, +0x27,0x42,0x51,0x3d,0xb8,0x01,0x7e,0x40,0x0d,0x36,0x05,0x36,0x05,0x36,0x07,0x17,0x9a,0x7f,0x08,0x01,0x08,0x25,0xb8,0x01,0x7e,0xb4,0x51,0x51,0x01,0x07,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x71,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12,0x39,0x39,0x10,0xed,0x39,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11, +0x33,0x33,0x10,0xed,0x10,0xed,0x11,0x39,0x10,0xed,0x32,0x31,0x30,0x21,0x23,0x03,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x16,0x17,0x01,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17, +0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0xa3,0xb5,0xa0,0x47,0x80,0x44,0x99,0x01,0x3f,0x55,0x90,0x67,0x3a,0x25,0x47,0x67,0x43,0x49,0x3c,0xfe,0x65,0x84,0x39,0x61,0x46,0x28,0x81,0x80,0x01,0xee,0x38,0x75,0x3d,0xa0,0x1a,0x2d,0x3a,0x1f,0x43,0x57,0x36, +0x16,0x2a,0x4f,0x71,0x48,0x33,0x69,0x28,0x2e,0x64,0x37,0x20,0x38,0x27,0x16,0x14,0x27,0x37,0x20,0x3c,0x5b,0x3c,0x1e,0x1f,0x4a,0x77,0x58,0x3f,0x77,0x31,0x01,0x87,0xa2,0xfd,0xd7,0x05,0x13,0x2a,0x57,0x82,0x57,0x44,0x76,0x5d,0x41,0x0f,0x03,0x1b,0x7f,0x02,0xd4,0xfe,0x29,0x23,0x40,0x5d,0x3a,0x69,0x74,0xfc,0x32,0x26,0x2d,0x64, +0x1c,0x28,0x1c,0x16,0x0b,0x15,0x30,0x3b,0x46,0x2a,0x31,0x53,0x3f,0x25,0x13,0x10,0x94,0x1d,0x1c,0x0d,0x19,0x25,0x16,0x1e,0x26,0x1b,0x14,0x0a,0x14,0x2b,0x38,0x49,0x31,0x2d,0x55,0x43,0x29,0x1b,0x18,0x00,0x00,0x07,0x00,0x12,0x00,0x00,0x05,0x53,0x05,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x33,0x00,0x3b,0x00,0x43, +0x00,0x6a,0xb4,0x3b,0x33,0x05,0x01,0x09,0xb8,0x01,0x7e,0x40,0x0b,0x0a,0x28,0x24,0x20,0x1e,0x0a,0x2b,0x27,0x23,0x1d,0x0d,0xb8,0x01,0x7e,0x40,0x23,0x0e,0x40,0x1a,0x16,0x12,0x0e,0x0f,0x0e,0x1f,0x0e,0x3f,0x0e,0x4f,0x0e,0x04,0x0a,0x0e,0x0a,0x0e,0x07,0x3c,0x18,0x14,0x10,0x10,0x7f,0x14,0x01,0x14,0x37,0x36,0x2e,0x2e,0x03,0x07, +0x00,0x2f,0x33,0x33,0x11,0x33,0x33,0x2f,0x71,0x33,0x2f,0x11,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x11,0x33,0x33,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x32,0x31,0x30,0x01,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x03,0x33,0x13,0x33, +0x13,0x33,0x13,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x21,0x33,0x37,0x23,0x05,0x33,0x37,0x23,0x07,0x33,0x27,0x23,0x03,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x05,0x16,0x17,0x33,0x36,0x37,0x37,0x23,0x03,0x23,0x06,0x07,0x07,0x33,0x27,0x26,0x05,0x53,0xf4,0x5a,0x93,0x59,0xd2,0x59,0x92,0x5d,0xed,0xd3,0x17,0xbc,0xa2,0x56, +0x82,0x51,0xf4,0x55,0x78,0x50,0xe9,0x4f,0x80,0x54,0xad,0xc5,0x17,0xdb,0xfc,0x0e,0x95,0x18,0xc4,0x02,0x27,0x8f,0x16,0xbc,0xf9,0xa1,0x16,0x74,0xe0,0x0c,0x02,0x04,0x03,0x0f,0x22,0x67,0x02,0x33,0x0a,0x04,0x02,0x03,0x0d,0x20,0x62,0xd4,0x02,0x04,0x0c,0x12,0x43,0x11,0x0c,0x01,0xde,0xfe,0x22,0x01,0xde,0xfe,0x22,0x01,0xde,0x7f, +0x7b,0x80,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x80,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0xfe,0x57,0x3f,0x44,0x30,0x53,0xaf,0xb7,0x33,0x46,0x2f,0x4e,0xb3,0x02,0x5c,0x43,0x40,0x5f,0x5d,0x3d,0x00,0x00,0x03,0x00,0x57,0xfe,0xf3,0x04,0x29,0x05,0x5d,0x00,0x1c,0x00,0x31,0x00,0x35,0x00,0x64,0xb4,0x14,0x14,0x01, +0x33,0x28,0xb8,0x01,0x84,0xb4,0x0a,0x32,0x1b,0x19,0x00,0xb8,0x01,0x84,0xb4,0x1d,0x16,0x12,0x01,0x33,0xbb,0x01,0x7d,0x00,0x34,0x00,0x23,0x01,0x7e,0xb2,0x0f,0x1c,0x14,0xb8,0x01,0x7e,0x40,0x0c,0x15,0x19,0x15,0x02,0x12,0x0f,0x15,0x0f,0x15,0x05,0x18,0x2d,0xb8,0x01,0x7e,0xb3,0x05,0x18,0x01,0x18,0x00,0x3f,0x3f,0xed,0x2f,0x12, +0x39,0x39,0x2f,0x2f,0x39,0x39,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x2f,0xed,0x01,0x2f,0x33,0x33,0x33,0xfd,0x32,0xc6,0xc6,0x2f,0xed,0xc4,0x12,0x39,0x2f,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x33,0x11,0x21,0x35,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x03,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x13,0x21,0x35,0x21,0x03,0xae,0x94,0x04,0x67,0xd8,0x62,0x91,0x5f,0x2e,0x35,0x6a,0xa0,0x6a,0xbc,0x5a,0x04,0xfe,0xd4,0x01,0x2c,0x94,0x7b,0x7b,0x94,0x28,0x46,0x60,0x39,0x4e,0x6f,0x46,0x21,0x20,0x43,0x68,0x49,0x40,0x68,0x4a,0x26,0x70,0xfc,0xfe,0x03,0x02,0x9e,0xb4, +0x4b,0x7d,0xa9,0x5f,0x67,0xb8,0x8b,0x51,0x96,0x01,0x22,0x79,0xa3,0xa3,0x79,0xfd,0x62,0x89,0x38,0x62,0x49,0x29,0x3c,0x68,0x87,0x4c,0x44,0x7e,0x60,0x38,0x34,0x57,0x72,0xfd,0x8f,0x6c,0x00,0x01,0x00,0x26,0x00,0x00,0x03,0x9d,0x05,0x13,0x00,0x19,0x00,0x42,0xb6,0x18,0x19,0x16,0x03,0x00,0x0f,0x07,0xb8,0x01,0x85,0xb7,0x0c,0x0a, +0x08,0x15,0x00,0x19,0x06,0x0a,0xb8,0x01,0x7e,0x40,0x0d,0x16,0x10,0x0f,0x0b,0x0b,0x01,0x14,0x7f,0x0e,0x01,0x0e,0x08,0x01,0x00,0x2f,0x33,0x2f,0x71,0x33,0x12,0x39,0x2f,0x33,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x33,0x2f,0xc6,0x33,0xed,0x32,0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x01,0x26,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35, +0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x21,0x15,0x21,0x03,0x9d,0xc6,0xfe,0x92,0x0f,0x0d,0x07,0x03,0x99,0x84,0x84,0x99,0x03,0x07,0x14,0x08,0x01,0x6f,0xb0,0xfe,0x61,0x01,0x4e,0xfe,0xb9,0x02,0x1c,0x18,0x18,0x0d,0xfd,0xa7,0x02,0x5f,0x80,0x02,0x34,0xfd,0xca,0x0d,0x1e,0x0b,0x02,0x00,0xfd,0xcc,0x80,0x00,0x01, +0x00,0x25,0x00,0x00,0x03,0x1a,0x05,0x13,0x00,0x17,0x00,0x5e,0xb9,0x00,0x06,0x01,0x84,0x40,0x2c,0x07,0x15,0x11,0x9a,0x12,0x02,0x0b,0x03,0x0a,0x0a,0x09,0x0f,0x16,0x0e,0x17,0x0e,0x0d,0x08,0x05,0x09,0x04,0x04,0x03,0x0c,0x01,0x0d,0x00,0x00,0x17,0x09,0x0d,0x03,0x17,0x17,0x03,0x0d,0x09,0x04,0x07,0x7f,0x12,0x01,0x12,0x07,0x00, +0x2f,0x2f,0x71,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x01,0x2f,0xed,0x31,0x30,0x01,0x07,0x15,0x37,0x15,0x07,0x11,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x21,0x35,0x21,0x15,0x21, +0x11,0x37,0x02,0xbf,0xd4,0xd4,0xd4,0x98,0xd9,0xd9,0xd9,0xd9,0xfe,0xd2,0x02,0xf5,0xfe,0xd1,0xd4,0x03,0x5c,0x79,0xb9,0x79,0x81,0x78,0xfe,0x56,0x01,0x53,0x7a,0x80,0x7a,0xb9,0x7a,0x81,0x7a,0x01,0x7c,0x8a,0x8a,0xfe,0xdb,0x78,0x00,0x05,0x00,0x28,0xfe,0xbf,0x08,0x0c,0x05,0xdb,0x00,0x3a,0x00,0x53,0x00,0x6a,0x00,0x7e,0x00,0x8e, +0x00,0x98,0x40,0x09,0x8c,0x3e,0x0c,0x1e,0x4f,0x36,0x2f,0x24,0x00,0xb8,0x01,0x85,0x40,0x11,0x4a,0x68,0x54,0x6b,0x2a,0x1e,0x24,0x4a,0x6b,0x6b,0x4a,0x24,0x1e,0x2a,0x05,0x14,0x5e,0xbb,0x01,0x83,0x00,0x75,0x00,0x84,0x01,0x82,0x40,0x29,0x14,0x6a,0x24,0x4f,0x4f,0x36,0x0c,0x8c,0x07,0x7f,0x7f,0x3e,0x1e,0x43,0x19,0x68,0x63,0x7a, +0x59,0x19,0x59,0x29,0x29,0x59,0x19,0x03,0x0f,0x36,0x32,0x32,0x2f,0x36,0x43,0x89,0x89,0x0f,0x70,0x63,0x63,0x07,0x0f,0x00,0x2f,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x2f,0x33,0x33,0x2f,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x12,0x39,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x2f,0x01,0x2f, +0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x33,0x11,0x33,0x33,0x33,0x31,0x30,0x01,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x37,0x36,0x36,0x37,0x0e,0x03,0x07,0x27,0x3e,0x03,0x37,0x36, +0x36,0x37,0x17,0x06,0x06,0x07,0x1e,0x03,0x05,0x06,0x02,0x07,0x1e,0x03,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x03,0x23,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0x22,0x0e,0x02,0x15, +0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0xe7,0x20,0x45,0x6d,0x9a,0xca,0x7f,0x35,0x5d,0x4f,0x45,0x1f,0x3c,0x86,0x4d,0x2a,0x43,0x2f,0x1a,0x20,0x34,0x44,0x24,0x23,0x3d,0x38,0x34,0x1a,0x30,0x50,0x23,0x21,0x55,0x37,0x52,0x8c,0x7d,0x72,0x37,0x2f,0x3f,0x90,0xa1,0xb0,0x5e,0x3d,0x91,0x58,0x32,0x40,0x62,0x28,0x7d,0xbc, +0x7d,0x3e,0xfd,0x1c,0x2d,0x69,0x40,0x1b,0x39,0x42,0x48,0x2a,0x5f,0x98,0x76,0x55,0x37,0x1b,0x36,0x67,0x99,0x63,0x18,0x2d,0x29,0x29,0x02,0xa9,0x0e,0x29,0x4a,0x74,0x58,0x38,0x5c,0x43,0x26,0x28,0x4d,0x6f,0x48,0x1e,0x39,0x31,0x27,0x0b,0x7d,0x94,0x01,0x43,0x10,0x21,0x34,0x23,0x28,0x3e,0x2a,0x16,0x12,0x21,0x31,0x1d,0x30,0x43, +0x28,0x12,0xfa,0x8c,0x13,0x23,0x1b,0x11,0x11,0x19,0x22,0x10,0x34,0x59,0x28,0x2d,0x53,0x02,0xee,0x50,0xae,0xa7,0x95,0x71,0x42,0x12,0x1f,0x29,0x15,0x39,0x36,0x19,0x2e,0x41,0x27,0x2b,0x43,0x2d,0x17,0x0e,0x1a,0x21,0x13,0x56,0xf4,0x9b,0x99,0xe1,0x55,0x0a,0x30,0x42,0x4f,0x29,0x48,0x33,0x5f,0x4a,0x2f,0x02,0x42,0x5c,0x22,0x3b, +0x1c,0x43,0x2b,0x0e,0x56,0x8c,0xc0,0xa1,0xb1,0xfe,0xff,0x57,0x13,0x21,0x19,0x0e,0x39,0x61,0x81,0x8d,0x92,0x43,0x6c,0xa9,0x79,0x46,0x09,0x29,0x67,0x7b,0x94,0xfd,0xf1,0x31,0x69,0x57,0x39,0x21,0x41,0x5e,0x3d,0x41,0x73,0x56,0x31,0x0f,0x1c,0x28,0x18,0xfe,0x55,0x02,0x40,0x1d,0x38,0x2b,0x1a,0x22,0x39,0x49,0x27,0x25,0x3c,0x2c, +0x17,0x2c,0x40,0x4b,0x13,0x0c,0x17,0x21,0x14,0x16,0x23,0x17,0x0d,0x31,0x30,0x23,0x31,0x00,0x00,0x02,0x00,0x2b,0xfe,0x7a,0x03,0x18,0x05,0x54,0x00,0x3c,0x00,0x4e,0x00,0x5e,0xb9,0x00,0x02,0x01,0x82,0xb2,0x3b,0x28,0x47,0xb8,0x01,0x83,0xb3,0x0c,0x4a,0x35,0x1b,0xbb,0x01,0x82,0x00,0x07,0x00,0x16,0x01,0x82,0x40,0x1a,0x3d,0x3b, +0x0c,0x07,0x3d,0x3d,0x07,0x0c,0x3b,0x04,0x00,0x20,0x8a,0x30,0x00,0x25,0x4a,0x1b,0x07,0x35,0x01,0x02,0x3b,0x07,0x00,0x42,0xb8,0x01,0x7d,0xb2,0x11,0x3a,0x00,0x00,0x2f,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x01,0x2f,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0xcd,0x32,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30, +0x33,0x13,0x13,0x36,0x37,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x26,0x36,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x27,0x06,0x06,0x07,0x06,0x07,0x03,0x07,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x3e,0x03, +0x2b,0xe7,0x44,0x10,0x11,0x0f,0x25,0x14,0x23,0x43,0x34,0x20,0x1d,0x35,0x4c,0x30,0x2b,0x40,0x2b,0x15,0x0f,0x1a,0x22,0x14,0x2a,0x59,0x49,0x2d,0x38,0x64,0x88,0x4f,0x0a,0x0a,0x01,0x08,0x0b,0x21,0x49,0x3d,0x28,0x15,0x25,0x30,0x1b,0x20,0x40,0x1a,0x1d,0x1c,0x5a,0x59,0x01,0xa2,0x0d,0x17,0x1e,0x13,0x0f,0x1e,0x17,0x0d,0x3b,0x2d, +0x0d,0x16,0x11,0x0a,0x01,0xf0,0xfe,0xfe,0x32,0x3a,0x32,0x82,0x4a,0x44,0x80,0x7e,0x7d,0x41,0x39,0x5d,0x42,0x24,0x1f,0x3a,0x53,0x32,0x1f,0x5f,0x79,0x8a,0x4b,0x4c,0x9d,0xaa,0xbb,0x69,0x48,0x88,0x69,0x40,0x0b,0x08,0x06,0x0e,0x03,0x08,0x36,0x51,0x6d,0x40,0x4e,0x90,0x85,0x7b,0x3a,0x72,0xd1,0x52,0x60,0x55,0x01,0x31,0xdf,0x04, +0x6c,0x2b,0x3b,0x24,0x10,0x12,0x25,0x3b,0x2a,0x5e,0xad,0x57,0x36,0x66,0x5d,0x4e,0x00,0x04,0x00,0x22,0x00,0x00,0x04,0x20,0x05,0x13,0x00,0x1f,0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x7f,0xb3,0x30,0x2b,0x2d,0x0c,0xb8,0x01,0x85,0xb6,0x20,0x00,0x1c,0x2d,0x2f,0x24,0x19,0xb8,0x01,0x85,0x40,0x09,0x1e,0x02,0x1a,0x18,0x9a,0x2d,0x2c, +0x12,0x1c,0xb8,0x01,0x7e,0xb6,0x1d,0x24,0x0f,0x1d,0x23,0x0a,0x00,0xb8,0x01,0x7e,0x40,0x21,0x01,0x2f,0x07,0x01,0x50,0x2d,0x01,0x50,0x1d,0x01,0x1d,0x40,0x09,0x0d,0x48,0x20,0x01,0x01,0x2d,0x1d,0x01,0x01,0x1d,0x2d,0x03,0x03,0x1a,0x2e,0x9a,0x7f,0x03,0x01,0x03,0x00,0x2f,0x71,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x2b, +0x5d,0x5d,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x01,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0xc6,0x32,0x2f,0xed,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x21,0x32,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x23,0x0e,0x03,0x23,0x23,0x11,0x23,0x11,0x23,0x35,0x33, +0x35,0x05,0x34,0x27,0x21,0x15,0x21,0x36,0x36,0x01,0x32,0x36,0x37,0x21,0x15,0x11,0x15,0x21,0x26,0x26,0x23,0x22,0x88,0x01,0x59,0x91,0xc7,0x2a,0x9b,0x82,0x03,0x03,0x02,0x84,0xa5,0x19,0x50,0x69,0x7f,0x49,0x9e,0x99,0x88,0x88,0x02,0x57,0x03,0xfe,0x45,0x01,0xba,0x01,0x03,0xfe,0xd8,0x5d,0x7b,0x22,0xfe,0x70,0x01,0x94,0x20,0x73, +0x5b,0x03,0x9d,0x80,0xf6,0x7e,0x78,0x80,0x18,0x1a,0x13,0x24,0x12,0x7f,0x3c,0x5f,0x42,0x23,0xfe,0x5d,0x02,0xa3,0x7f,0x7b,0x39,0x1e,0x1b,0x7b,0x0f,0x21,0xfe,0xda,0x3f,0x38,0x77,0x02,0x5d,0x6c,0x33,0x39,0x00,0x03,0x00,0x4c,0xff,0x43,0x03,0x93,0x05,0xb8,0x00,0x1c,0x00,0x27,0x00,0x2e,0x00,0x65,0x40,0x1a,0x1c,0x2e,0x2d,0x17, +0x16,0x0f,0x06,0x0e,0x00,0x00,0x02,0x22,0x23,0x0c,0x04,0x0d,0x01,0x0d,0x13,0x0e,0x01,0x0e,0x01,0x0e,0x07,0x19,0xbe,0x01,0x84,0x00,0x2b,0x00,0x1d,0x01,0x84,0x00,0x07,0x00,0x2d,0x01,0x7e,0xb4,0x17,0x17,0x0f,0x22,0x28,0xb8,0x01,0x7e,0xb4,0x02,0x1b,0x18,0x23,0x16,0xb8,0x01,0x7e,0xb1,0x0c,0x0f,0x00,0x2f,0x33,0xed,0x32,0x3f, +0x33,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x39,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x31,0x30,0x05,0x23,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x37,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x03,0x21,0x11,0x06,0x23,0x23,0x01,0x14,0x1e,0x02,0x17,0x13,0x0e, +0x03,0x01,0x32,0x36,0x37,0x11,0x23,0x03,0x02,0x04,0x63,0x11,0x5b,0x87,0x58,0x2c,0x3d,0x76,0xaf,0x73,0x10,0x63,0x10,0x4a,0x80,0x34,0x37,0x87,0x4b,0x29,0x01,0x43,0xa8,0xcb,0x0b,0xfe,0xcf,0x19,0x33,0x53,0x3b,0x59,0x4e,0x73,0x4d,0x25,0x01,0x46,0x3c,0x72,0x2c,0xc0,0x24,0xbd,0xcc,0x13,0x64,0x9e,0xd3,0x81,0x96,0xee,0xaa,0x5f, +0x07,0xac,0xac,0x05,0x21,0x1d,0xa0,0x2b,0x30,0x06,0xfe,0x1c,0xfd,0xce,0x6f,0x02,0x7e,0x65,0xa6,0x7d,0x53,0x13,0x03,0xf4,0x09,0x51,0x87,0xb6,0xfd,0x93,0x1e,0x1f,0x01,0x63,0xfe,0x60,0x00,0x03,0x00,0x0b,0x00,0x00,0x03,0xdd,0x05,0x13,0x00,0x17,0x00,0x1b,0x00,0x23,0x00,0x45,0xb6,0x1c,0x1d,0x1d,0x15,0x0a,0x06,0x0e,0xb8,0x01, +0x7e,0xb6,0x0f,0x18,0x03,0x0f,0x1b,0x02,0x12,0xb8,0x01,0x7e,0x40,0x0f,0x13,0x20,0x17,0x13,0x0f,0x13,0x0f,0x13,0x08,0x7f,0x15,0x01,0x15,0x0c,0x08,0x00,0x2f,0x33,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x23,0x17,0x33, +0x15,0x23,0x13,0x23,0x03,0x21,0x03,0x23,0x13,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x13,0x01,0x21,0x27,0x21,0x13,0x23,0x06,0x07,0x03,0x33,0x03,0x26,0x03,0xc8,0xba,0x34,0x86,0x5f,0x74,0xa8,0x6b,0xfe,0x52,0x68,0xa9,0x73,0x5d,0x85,0x33,0xb8,0xe0,0xa4,0x9d,0xa4,0xfe,0x5a,0x01,0x65,0x2f,0xfe,0xf8,0x84,0x02,0x08,0x0a, +0x4b,0xbe,0x4d,0x09,0x03,0x0e,0x80,0xa2,0x80,0xfe,0x94,0x01,0x6c,0xfe,0x94,0x01,0x6c,0x80,0xa2,0x80,0x02,0x05,0xfd,0xfb,0xfe,0xde,0xa2,0x01,0xde,0x37,0x1f,0xfe,0xf8,0x01,0x08,0x1b,0x00,0x01,0x00,0x5f,0xff,0xea,0x03,0x85,0x05,0x29,0x00,0x47,0x00,0x5c,0xb3,0x3c,0x21,0x16,0x44,0xbb,0x01,0x85,0x00,0x35,0x00,0x0e,0x01,0x85, +0xb2,0x21,0x09,0x26,0xb8,0x01,0x7d,0xb4,0x27,0x06,0x27,0x01,0x2f,0xb8,0x01,0x7d,0x40,0x1b,0x30,0x46,0x30,0x20,0x27,0x01,0x0f,0x27,0x1f,0x27,0x02,0x3f,0x30,0x4f,0x30,0x02,0x27,0x30,0x27,0x30,0x11,0x3a,0x9a,0x3f,0x11,0x9a,0x1c,0x00,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x5d,0x11,0x33,0x10,0xed,0x32,0x11, +0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x11,0x39,0x31,0x30,0x01,0x23,0x07,0x06,0x07,0x06,0x07,0x21,0x15,0x21,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x36,0x37,0x23,0x35,0x33,0x36,0x37,0x36,0x37,0x36,0x37,0x21,0x35,0x21,0x36,0x37,0x36,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x03,0x85,0x65,0x04,0x2b,0x3b,0x2f,0x35,0x01,0x33,0xfe,0x15,0x21,0x1a,0x29,0x2e,0x8a,0x8d,0x28,0x60,0x60,0x56,0x1f,0x1a,0x54,0x5e,0x5b,0x1f,0x5c,0xa7,0x80,0x4b,0x1b,0x11,0x17,0x4c,0xb4,0x14,0x15,0x3f,0x45,0x2a,0x24,0xfe,0x51,0x02,0x44,0x17, +0x0d,0x13,0x31,0x4e,0x63,0x32,0xb4,0x73,0x57,0xc1,0x54,0xa2,0x7f,0x4e,0x18,0x23,0x02,0xf3,0x04,0x2b,0x23,0x1c,0x1c,0x61,0x14,0x15,0x1f,0x4e,0x35,0x62,0x68,0x10,0x1e,0x2c,0x1b,0xb3,0x12,0x1c,0x13,0x0a,0x25,0x54,0x85,0x60,0x48,0x39,0x21,0x1e,0x61,0x0e,0x0c,0x26,0x23,0x15,0x12,0x61,0x16,0x1b,0x25,0x32,0x35,0x4a,0x2f,0x15, +0x4f,0xab,0x2e,0x2a,0x55,0x83,0x59,0x46,0x34,0x00,0x00,0x02,0x00,0x4e,0xff,0x43,0x03,0x88,0x05,0xb8,0x00,0x18,0x00,0x21,0x00,0x38,0xb2,0x16,0x10,0x03,0xb8,0x01,0x82,0xb5,0x1f,0x0d,0x04,0x04,0x00,0x1b,0xb8,0x01,0x84,0x40,0x0d,0x09,0x13,0x00,0x20,0x15,0x9a,0x0d,0x10,0x1f,0x16,0x9a,0x05,0x02,0x00,0x2f,0x33,0xed,0x32,0x2f, +0x33,0xed,0x32,0x01,0x2f,0x33,0x2f,0xed,0x12,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x31,0x30,0x25,0x06,0x07,0x15,0x23,0x35,0x26,0x27,0x26,0x11,0x10,0x37,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x15,0x26,0x27,0x11,0x36,0x37,0x01,0x06,0x15,0x14,0x17,0x16,0x17,0x11,0x06,0x03,0x88,0x68,0x97,0x5f,0xd0,0x80,0x8c,0x9e,0x81,0xbd,0x5f, +0x9c,0x63,0x71,0x8e,0x94,0x6b,0xfd,0xd1,0x73,0x6c,0x56,0x82,0x7d,0x36,0x41,0x09,0xa9,0xa9,0x0f,0xa2,0xb2,0x01,0x22,0x01,0x38,0xc0,0x9d,0x1c,0x96,0x8f,0x01,0x35,0xa2,0x4d,0x01,0xfb,0xd4,0x06,0x51,0x03,0x40,0x96,0xfa,0xed,0x8e,0x70,0x17,0x04,0x1c,0x1c,0x00,0x05,0x00,0xaa,0xff,0x43,0x03,0x8c,0x05,0xb8,0x00,0x17,0x00,0x1e, +0x00,0x22,0x00,0x26,0x00,0x2d,0x00,0x76,0xb6,0x0c,0x10,0x1d,0x1d,0x2c,0x05,0x15,0xb8,0x01,0x82,0xb4,0x16,0x25,0x02,0x16,0x09,0xb8,0x01,0x85,0x40,0x0a,0x29,0x16,0x21,0x29,0x29,0x21,0x16,0x03,0x00,0x10,0xb8,0x01,0x85,0xb2,0x1a,0x24,0x20,0xb8,0x01,0x85,0x40,0x1c,0xa0,0x00,0xb0,0x00,0x02,0x00,0x0d,0x1c,0x1f,0x9a,0x2c,0x24, +0x24,0x01,0x1d,0x20,0x9a,0x17,0x14,0x04,0x2b,0x23,0x9a,0x05,0x7f,0x01,0x01,0x01,0x00,0x2f,0x71,0x33,0xed,0x32,0x2f,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x39,0x01,0x2f,0x5d,0xed,0x32,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x32,0x11,0x12,0x39,0x31,0x30,0x33,0x11, +0x21,0x35,0x33,0x15,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x07,0x06,0x07,0x15,0x23,0x35,0x37,0x36,0x35,0x34,0x27,0x11,0x36,0x01,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x13,0x36,0x35,0x34,0x27,0x11,0x36,0xaa,0x01,0x1d,0x5e,0x85,0x53,0x5c,0x78,0x69,0x7d,0x97,0x6f,0x63,0x95,0x5e,0xe5,0x40,0xc7,0x53,0xfe, +0xcb,0x84,0x84,0x84,0xb3,0x40,0x95,0x32,0x05,0x13,0xa5,0xa6,0x08,0x49,0x53,0x84,0x6e,0xa4,0x22,0x04,0x0f,0xa8,0x86,0xa6,0x68,0x5e,0x08,0xbe,0xbd,0xc9,0x40,0x6e,0xc4,0x1d,0xfe,0x34,0x0a,0x01,0xc7,0xfe,0x2d,0x01,0xd3,0x02,0x2c,0xfe,0x5d,0x01,0xa3,0xfe,0x99,0x3d,0x6d,0x9b,0x1c,0xfe,0x6f,0x0e,0x00,0x05,0x00,0x8c,0xfe,0x2f, +0x0a,0x0a,0x05,0x5d,0x00,0x1d,0x00,0x37,0x00,0x52,0x00,0x56,0x00,0x5a,0x00,0x95,0xbc,0x00,0x10,0x05,0x0a,0x00,0x0d,0x00,0x33,0x05,0x0a,0x40,0x09,0x30,0x30,0x53,0x89,0x54,0x57,0x89,0x58,0x24,0xb8,0x05,0x0a,0x40,0x0e,0x21,0x0d,0x54,0x58,0x21,0x52,0x52,0x21,0x58,0x54,0x0d,0x05,0x1a,0x4a,0xb8,0x05,0x0a,0xb2,0x3f,0x00,0x03, +0xb8,0x05,0x0a,0x40,0x0a,0x1a,0x1d,0x44,0x22,0x22,0x44,0x1d,0x03,0x0f,0x3a,0xb8,0x04,0xfb,0xb4,0x2f,0x4f,0x01,0x4f,0x1e,0xb8,0x04,0xfb,0xb6,0x2f,0x29,0x01,0x29,0x59,0x55,0x08,0xb8,0x04,0xfb,0x40,0x0b,0x58,0x54,0x2f,0x15,0x01,0x15,0x31,0x2f,0x0f,0x01,0x0f,0x00,0x2f,0x5d,0x33,0x2f,0x5d,0x33,0x33,0xed,0x32,0x32,0x2f,0x5d, +0xed,0x2f,0x5d,0xed,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x01,0x2f,0xfd,0xc6,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x33,0x10,0xed,0x10,0xed,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05, +0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x25,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x2f,0x0a,0x0a,0x20,0x47,0x71,0x51,0x5d,0x85,0x55,0x27,0x8d,0x33, +0x75,0xc0,0x8e,0x7a,0xa5,0x63,0x2b,0x0c,0x0d,0x05,0xf7,0x55,0x52,0x8d,0x31,0x56,0x73,0x40,0x3e,0x5b,0x41,0x29,0x18,0x09,0x8e,0x08,0x20,0x3e,0x01,0x45,0x71,0x50,0x4d,0x69,0x3f,0x1b,0x11,0x1c,0x25,0x14,0x92,0x17,0x24,0x1a,0x0d,0x3d,0x6e,0x97,0x59,0x2e,0x62,0x34,0xfe,0x72,0xa8,0xa8,0x01,0x23,0xa7,0xa7,0x01,0x7e,0x41,0x6e, +0x32,0x56,0x78,0x49,0x21,0x2c,0x64,0xa2,0x75,0x04,0x51,0xfb,0x9d,0x82,0xce,0x90,0x4e,0x3e,0x74,0xa5,0x68,0x39,0x76,0x44,0xfb,0x5f,0x65,0x01,0x7e,0xfe,0x7c,0x61,0x83,0x4f,0x22,0x1e,0x34,0x44,0x4f,0x55,0x2a,0x04,0x0d,0xfc,0x29,0x3a,0x60,0x43,0x26,0xfe,0x6a,0x23,0x37,0x62,0x85,0x4d,0x44,0x81,0x7b,0x77,0x39,0x3b,0x81,0x81, +0x7e,0x38,0x7d,0xc0,0x83,0x43,0x14,0x15,0x6e,0xa4,0xa4,0xa4,0x00,0x03,0x00,0x6e,0xff,0xee,0x06,0x34,0x05,0x27,0x00,0x09,0x00,0x0d,0x00,0x2e,0x00,0x82,0xb9,0x00,0x1b,0x01,0x82,0x40,0x09,0x27,0x18,0x1f,0x03,0x0f,0x25,0x25,0x0f,0x2a,0xb8,0x01,0x83,0x40,0x0b,0x14,0x0a,0x0f,0x0c,0x0c,0x0f,0x0a,0x03,0x03,0x14,0x08,0xb8,0x01, +0x82,0xb7,0x03,0x04,0x99,0x07,0x07,0x0d,0x08,0x02,0xb8,0x01,0x7d,0xb2,0x01,0x27,0x17,0xb8,0x01,0x7d,0xb3,0x18,0x18,0x11,0x1d,0xb8,0x01,0x7d,0x40,0x0b,0x22,0x01,0x22,0x01,0x22,0x0c,0x7f,0x0d,0x01,0x0d,0x11,0xb8,0x01,0x7d,0xb3,0x2d,0x2d,0x0c,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x12, +0x39,0x2f,0xed,0x39,0x10,0xed,0x32,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x33,0x11,0x07,0x35,0x25,0x11,0x33,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07, +0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x3d,0xfe,0x38,0xa7,0xae,0x01,0x24,0xab,0x02,0xef,0xfc,0xf6,0x82,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4d,0x49,0xb2,0x82,0x55,0x54,0x4f,0x72,0x67,0x79,0x83,0xa0,0x9a,0x80,0x7d,0x02,0x11,0x66,0x02,0x1a,0x32,0x71,0x57,0xfd,0x50,0x02,0x9c, +0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x03,0x00,0x80,0xff,0xee,0x06,0x32,0x05,0x25,0x00,0x16,0x00,0x1a,0x00,0x3b,0x00,0x9c,0xb9,0x00,0x28,0x01,0x82,0x40,0x09,0x2c,0x24,0x35,0x03,0x1b,0x32,0x32,0x1b,0x37,0xbb,0x01,0x83,0x00, +0x21,0x00,0x11,0x01,0x83,0x40,0x13,0x06,0x0b,0x01,0x19,0x00,0x06,0x1b,0x19,0x06,0x1b,0x17,0x17,0x1b,0x06,0x19,0x04,0x01,0x21,0x15,0xbb,0x01,0x84,0x00,0x01,0x00,0x09,0x01,0x7d,0xb4,0x0e,0x0e,0x1a,0x34,0x24,0xb8,0x01,0x7d,0xb3,0x25,0x25,0x1e,0x2a,0xb8,0x01,0x7d,0xb2,0x2f,0x02,0x15,0xb8,0x01,0x7d,0x40,0x0b,0x01,0x2f,0x01, +0x2f,0x01,0x19,0x7f,0x1a,0x01,0x1a,0x1e,0xb8,0x01,0x7d,0xb3,0x3a,0x3a,0x19,0x18,0x00,0x3f,0x33,0x2f,0xed,0x2f,0x71,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x32,0x10,0xed,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11, +0x39,0x2f,0x12,0x17,0x39,0xed,0x31,0x30,0x01,0x21,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x15,0x21,0x01,0x01,0x23,0x01,0x03,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x15,0x16,0x15, +0x14,0x06,0x23,0x22,0x02,0x76,0xfe,0x0a,0xd9,0x5e,0x33,0x45,0x38,0x6b,0x59,0x4d,0x88,0x6b,0x7d,0xb9,0x95,0x01,0x5e,0x02,0xb4,0xfc,0xf7,0x83,0x03,0x0a,0x51,0x5d,0x67,0x49,0x53,0xc6,0x4c,0x48,0xb3,0x83,0x55,0x53,0x4e,0x73,0x66,0x79,0x83,0xa0,0x9a,0x80,0x7c,0x02,0x11,0x67,0xd6,0x5d,0x62,0x32,0x35,0x42,0x5d,0x87,0x45,0x77, +0x62,0x8b,0xb0,0x8e,0x03,0x02,0x93,0xfa,0xed,0x05,0x13,0xfb,0x0b,0x81,0x45,0x44,0x3a,0x7f,0x6b,0x7a,0x6b,0x3e,0x7e,0x2e,0x6c,0x57,0x88,0x31,0x04,0x26,0x91,0x6a,0x86,0x00,0x00,0x02,0x00,0xb2,0x04,0x37,0x02,0xbc,0x06,0x1f,0x00,0x03,0x00,0x07,0x00,0x1f,0xbc,0x00,0x05,0x01,0x85,0x00,0x06,0x00,0x01,0x01,0x85,0xb5,0x02,0x06, +0x02,0x02,0x07,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x51,0x9f,0x02,0x0a,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0xfe,0x18,0x01,0xe8,0x00,0x00,0x01,0x00,0xb2,0x04,0x37,0x01,0x51,0x06,0x1f,0x00,0x03,0x00,0x13,0xb9,0x00,0x01,0x01,0x85,0xb3,0x02,0x02, +0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0xed,0x31,0x30,0x01,0x11,0x23,0x11,0x01,0x51,0x9f,0x06,0x1f,0xfe,0x18,0x01,0xe8,0x00,0x01,0x00,0x53,0x03,0x1d,0x03,0x55,0x06,0x1f,0x00,0x0e,0x00,0x0f,0xb4,0x0c,0x0b,0x03,0x03,0x0c,0x00,0x2f,0x33,0x2f,0x01,0x2f,0xcd,0x31,0x30,0x01,0x05,0x13,0x07,0x03,0x03,0x27,0x13,0x25,0x37,0x05, +0x03,0x33,0x03,0x25,0x03,0x55,0xfe,0xd4,0xd0,0x79,0xaa,0xad,0x78,0xd0,0xfe,0xd2,0x31,0x01,0x1f,0x1a,0x97,0x19,0x01,0x20,0x04,0xb7,0x3e,0xfe,0xf7,0x53,0x01,0x21,0xfe,0xdf,0x53,0x01,0x09,0x3e,0x88,0x6c,0x01,0x4c,0xfe,0xb4,0x6c,0x00,0x00,0x01,0x00,0x2b,0xfe,0xdf,0x01,0x59,0x00,0xf9,0x00,0x03,0x00,0x0f,0xb4,0x02,0x00,0x02, +0x02,0x00,0x00,0x2f,0x32,0x2f,0x01,0x2f,0x2f,0x31,0x30,0x25,0x03,0x23,0x13,0x01,0x59,0xae,0x80,0x80,0xf9,0xfd,0xe6,0x02,0x1a,0x00,0x00,0x01,0x00,0xa6,0x02,0x49,0x03,0x1e,0x02,0xde,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x99,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0x1e,0xfd,0x88,0x02,0x78, +0x02,0x49,0x95,0x00,0x00,0x01,0x00,0x7a,0xff,0xe8,0x01,0x6f,0x00,0xde,0x00,0x0b,0x00,0x0d,0xb3,0x09,0x03,0x06,0x00,0x00,0x2f,0x32,0x01,0x2f,0xcd,0x31,0x30,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x18,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x02,0x00,0x7a, +0xff,0xe8,0x01,0x6f,0x04,0x77,0x00,0x0b,0x00,0x17,0x00,0x15,0xb7,0x15,0x09,0x0f,0x03,0x12,0x0c,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0xcd,0x32,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xf4,0x33,0x47,0x47,0x33,0x33,0x48, +0x48,0x33,0x33,0x47,0x47,0x33,0x33,0x48,0x48,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfc,0x63,0x48,0x32,0x33,0x49,0x49,0x33,0x32,0x48,0x00,0x00,0x02,0x00,0x2b,0xfe,0xdf,0x01,0x71,0x04,0x77,0x00,0x0b,0x00,0x0f,0x00,0x1a,0x40,0x0a,0x0c,0x0c,0x0e,0x09,0x03,0x0e,0x0e,0x0f,0x00,0x06,0x00,0x2f,0x33,0x2f,0x33,0x2f, +0x01,0x2f,0xcd,0x2f,0x39,0x2f,0x31,0x30,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x03,0x23,0x13,0xf7,0x33,0x47,0x47,0x33,0x32,0x48,0x48,0x30,0xae,0x80,0x80,0x03,0x85,0x48,0x32,0x32,0x46,0x46,0x32,0x32,0x48,0xfd,0x74,0xfd,0xe6,0x02,0x1a,0x00,0x01,0x00,0x00,0xfe,0xa9,0x03,0xd7,0xff,0x32,0x00,0x03, +0x00,0x0e,0xb4,0x01,0x00,0x01,0x9a,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x03,0xd7,0xfc,0x29,0x03,0xd7,0xfe,0xa9,0x89,0x00,0x00,0x02,0x00,0x6a,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x05,0x0b,0x00,0x19,0x2f,0x33,0x31,0x30,0x25,0x23,0x01,0x01,0x33,0x01,0x03,0x23,0x01, +0x01,0x33,0x01,0x04,0x46,0xc3,0xfe,0xa7,0x01,0x59,0xc5,0xfe,0x9d,0x61,0xc0,0xfe,0xa6,0x01,0x5a,0xc0,0xfe,0xa2,0xe7,0x01,0x85,0x01,0x8d,0xfe,0x73,0xfe,0x7b,0x01,0x85,0x01,0x8d,0xfe,0x73,0x00,0x00,0x02,0x00,0x68,0x00,0xe7,0x04,0x48,0x03,0xf9,0x00,0x05,0x00,0x0b,0x00,0x09,0xb1,0x03,0x09,0x00,0x19,0x2f,0x33,0x31,0x30,0x01, +0x01,0x23,0x01,0x01,0x33,0x03,0x01,0x23,0x01,0x01,0x33,0x04,0x48,0xfe,0xa4,0xbf,0x01,0x5d,0xfe,0xa3,0xbf,0x66,0xfe,0xa7,0xc5,0x01,0x64,0xfe,0x9c,0xc5,0x02,0x6e,0xfe,0x79,0x01,0x87,0x01,0x8b,0xfe,0x75,0xfe,0x79,0x01,0x87,0x01,0x8b,0x00,0x01,0x00,0x00,0x02,0x29,0x04,0x5f,0x02,0xb6,0x00,0x03,0x00,0x11,0xb2,0x01,0x00,0x01, +0xb9,0x01,0x7f,0x00,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30,0x01,0x21,0x35,0x21,0x04,0x5f,0xfb,0xa1,0x04,0x5f,0x02,0x29,0x8d,0x00,0x02,0x00,0x6f,0x03,0xd0,0x02,0x9c,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x32,0x40,0x18,0x21,0x0c,0x29,0x14,0x04,0x18,0x1e,0x24,0x03,0x09,0x0f,0x15,0x15,0x1e,0xaf,0x24,0x24,0x2b,0x11,0x00, +0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x05,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x01,0x6b,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11, +0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0x03,0xd0,0x02,0x95,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2c,0x40,0x15,0x14,0x29,0x0c,0x21,0x04,0x03,0x0f,0x09,0x18,0x24,0x1e,0x00,0x0f,0xaf,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0xe1,0xc6,0x11,0x12,0x39,0x11,0x12, +0x39,0x00,0x3f,0x33,0xc4,0x32,0x31,0x30,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27, +0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x6f,0x03,0xd0,0x01,0x61, +0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x0c,0x14,0x04,0x03,0x09,0x0f,0x00,0x00,0x09,0xaf,0x0f,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x3e,0x02,0x37,0x01,0x61,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20, +0x35,0x46,0x27,0x05,0x77,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x01,0x00,0x74,0x03,0xd0,0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x15,0x40,0x09,0x14,0x0c,0x04,0x03,0x0f,0x00,0x0f,0xaf,0x09,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x13,0x36,0x36,0x35,0x34, +0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x74,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0x04,0x0b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x62,0xfe,0xed,0x01,0x4e,0x00,0xcf,0x00,0x16,0x00,0x17, +0x40,0x0a,0x16,0x0e,0xb2,0x17,0x05,0x11,0x00,0x11,0xaf,0x0b,0x2f,0xe1,0xc6,0x12,0x39,0x00,0x10,0xf4,0xc4,0x31,0x30,0x17,0x3e,0x03,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x62,0x1b,0x31,0x24,0x15,0x19,0x1d,0x28,0x1a,0x2f,0x30,0x3b,0x45,0x20,0x35,0x46,0x27,0xde,0x16,0x31,0x31, +0x2f,0x15,0x19,0x13,0x0d,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x00,0x02,0x00,0x68,0xfe,0xed,0x02,0x95,0x00,0xcf,0x00,0x14,0x00,0x29,0x00,0x2a,0x40,0x14,0x14,0x0c,0x29,0x21,0xb2,0x2a,0x18,0x24,0x1e,0x03,0x0f,0xaf,0x09,0x09,0x09,0x2b,0x15,0x24,0xaf,0x1e,0x2f,0xe1,0xc6,0x12,0x39,0x2f,0x2f,0xe1, +0x39,0x11,0x12,0x39,0x00,0x10,0xf4,0xc4,0x33,0x32,0x31,0x30,0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x25,0x36,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x07,0x01,0xa3,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44, +0x20,0x35,0x46,0x27,0xfe,0x95,0x37,0x4c,0x14,0x1a,0x28,0x1a,0x30,0x33,0x38,0x44,0x20,0x35,0x46,0x27,0xd8,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x3b,0x2d,0x5f,0x2a,0x18,0x15,0x0c,0x11,0x26,0x22,0x26,0x39,0x4f,0x4e,0x37,0x5d,0x4f,0x44,0x1e,0x00,0x01,0x00,0x74,0x03,0xd0, +0x01,0x66,0x05,0xb2,0x00,0x14,0x00,0x19,0x40,0x0b,0x00,0x08,0x04,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x00,0x3f,0xc4,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x36,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28, +0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x00,0x02,0x00,0x90,0x03,0xd0,0x02,0xbd,0x05,0xb2,0x00,0x14,0x00,0x29,0x00,0x2d,0x40,0x15,0x26,0x1a,0x20,0x29,0x29,0x20,0xaf,0x1a,0x11,0x0b,0x05,0x14,0x14,0x0b,0xaf,0x05,0x15,0x00,0x1d,0x08,0x04,0x00, +0x3f,0x33,0xc4,0x32,0x01,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xf1,0xc2,0x2f,0x11,0x12,0x39,0x31,0x30,0x01,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x05,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x52,0x27,0x46,0x35, +0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x01,0x0b,0x27,0x46,0x35,0x20,0x44,0x38,0x33,0x30,0x1a,0x28,0x1a,0x14,0x4c,0x37,0x03,0xd0,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a,0x5f,0x2d,0x3b,0x1e,0x44,0x4f,0x5d,0x37,0x4e,0x4f,0x39,0x26,0x22,0x26,0x11,0x0c,0x15,0x18,0x2a, +0x5f,0x2d,0x00,0x03,0x00,0x8d,0xff,0xe7,0x06,0x57,0x05,0xb1,0x00,0x15,0x00,0x31,0x00,0x4d,0x00,0x40,0x40,0x1d,0x10,0x0b,0x00,0x05,0x00,0x05,0x00,0x40,0x32,0x16,0x24,0x40,0x0b,0x0b,0x0d,0x15,0x02,0x13,0x0d,0x08,0x13,0x08,0x13,0x08,0x1d,0x39,0x2b,0x47,0x1d,0x00,0x2f,0xc9,0x2f,0xc9,0x11,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10, +0xc9,0xc6,0x10,0xc2,0x2f,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc9,0x31,0x30,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x25,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x04,0x37,0x14,0x1e,0x04,0x33,0x32, +0x3e,0x04,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x04,0x04,0x80,0x69,0x8f,0xc0,0xfe,0xfc,0x01,0x0a,0xd5,0x79,0x60,0x56,0x8f,0x8d,0xb7,0xbb,0x90,0x84,0x5e,0xfc,0x0d,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x7f,0x2c,0x50,0x70,0x88,0x9d,0x55,0x54, +0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x54,0x55,0x9d,0x88,0x70,0x50,0x2c,0x01,0x49,0x45,0xfa,0xbc,0xda,0x01,0x04,0x35,0x96,0x48,0xb4,0x98,0x94,0xb2,0x4e,0xfb,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x66,0x66,0xbe,0xa4,0x88,0x60,0x35,0x35,0x60,0x88,0xa4,0xbe,0x5f,0x55,0x9c,0x88,0x70,0x50,0x2c, +0x2c,0x50,0x70,0x88,0x9c,0x55,0x55,0x9d,0x88,0x70,0x50,0x2c,0x2c,0x50,0x70,0x88,0x9d,0x00,0xff,0xff,0x00,0x70,0x00,0xb2,0x01,0x50,0x04,0xde,0x02,0x07,0x00,0x1d,0x00,0x00,0x00,0xc8,0x00,0x17,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b, +0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x5b,0x00,0x6b,0x00,0x73,0x00,0x7c,0x00,0xb2,0x00,0xbc,0x00,0xc3,0x01,0x65,0x40,0xc6,0x3b,0x1b,0x38,0x18,0x37,0x2f,0x14,0x34,0x2c,0x23,0x1f,0x20,0x1c,0x0c,0x64,0x65,0x79,0x97,0x97,0xab,0x7d,0x8e,0x03,0x11,0x4d,0x50,0x51,0xa1,0x8e,0xab,0x86,0x48, +0x57,0x59,0x57,0xbe,0xb4,0xb5,0x6d,0x75,0x5c,0xb9,0xc1,0x61,0x71,0x68,0x79,0x06,0x12,0x11,0x51,0x8e,0x86,0x57,0xb5,0x5c,0xc1,0x71,0x79,0x12,0x12,0x79,0x71,0xc1,0x5c,0xb5,0x57,0x86,0x8e,0x51,0x11,0x0b,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04, +0x14,0x2a,0x42,0x29,0x41,0x46,0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x97,0x97,0x9c,0x7e,0x81,0x5a,0x52,0x51,0x51,0x49,0x15,0x0d,0xb0,0x81,0xb3,0xbe,0xbd,0xb6,0x9c,0x93,0x5c,0x75,0x49,0x57,0x74,0x6d,0x6c,0x5d,0x4d,0x52,0x0a,0x00,0x0d,0xb5,0x81,0xbe,0xb6,0x93,0x75,0x57,0x6d,0x5d,0x52,0x00, +0x00,0x52,0x5d,0x6d,0x57,0x75,0x93,0xb6,0xbe,0x81,0xb5,0x0d,0x0c,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc0,0x2f,0x10,0xc4,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9, +0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc5,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4, +0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01, +0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0xbc,0xeb,0x96, +0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfd,0x02,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b, +0x98,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0xfd,0x7c,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22, +0x24,0x40,0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff, +0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0xae,0x35,0x30,0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0xfd,0x3a,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30, +0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0x00,0x00,0x15,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x7d,0x00,0x87,0x00,0x8e,0x00,0x98,0x00,0xb4,0x01,0x57,0x40,0xbf,0x3b,0x1b,0x38,0x18,0x14,0x23,0x1f,0x20,0x1c,0x0c,0xa8,0x2f,0x2f,0x37,0x62,0x62,0x76,0x34,0x2c,0xa4,0x8f,0x8f,0x96,0x48,0x59,0x93,0x03,0x11,0x97,0x90,0x6c,0x59, +0x96,0x92,0x76,0x51,0x37,0xa4,0x89,0x7f,0x80,0x84,0x8c,0x06,0x12,0x11,0x90,0x59,0x92,0x51,0xa4,0x80,0x8c,0x12,0x99,0x99,0x12,0x8c,0x80,0xa4,0x51,0x92,0x59,0x90,0x11,0x0a,0x14,0x30,0x3c,0x40,0x05,0x04,0x0f,0x00,0x31,0x3d,0x41,0x04,0x0c,0x09,0x24,0x28,0x44,0x04,0x17,0x25,0x29,0x45,0x0a,0x04,0x14,0x2a,0x42,0x29,0x41,0x46, +0x3e,0x01,0x45,0x3d,0x3d,0x0f,0x26,0x32,0x32,0x0f,0x25,0x31,0x31,0x0f,0x62,0x62,0x67,0x49,0x4c,0xb4,0xa4,0xac,0x15,0x0d,0x7b,0x4c,0x7e,0x89,0x88,0x81,0x67,0x5e,0xa3,0x9b,0x90,0x97,0xb1,0xb0,0xa9,0xa8,0x04,0x97,0x9e,0x9f,0xac,0x93,0x94,0x0a,0x00,0x0d,0x80,0x4c,0x89,0x81,0x5e,0x97,0xac,0x94,0x00,0x00,0x94,0xac,0x97,0x5e, +0x81,0x89,0x4c,0x80,0x0d,0x0a,0x01,0x19,0x1d,0x2d,0x13,0x04,0x0f,0x12,0x18,0x1c,0x2c,0x04,0x0c,0x20,0x34,0x38,0x06,0x04,0x04,0x07,0x21,0x35,0x39,0x04,0x01,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32, +0x11,0x17,0x33,0x10,0xc9,0x32,0x32,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0x10,0xc4,0x32,0x10,0xc6,0x10,0xc2,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x10,0xc9,0x32,0x10,0xca,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x33,0xc4,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0x10,0xc0,0x2f,0x10,0xc0,0x2f,0x32,0x10,0xc4,0x32,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0x31,0x30,0x13,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23, +0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x35,0x16, +0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x25,0x15,0x23,0x11,0x33,0x32,0x15,0x14,0x06,0x23,0x27,0x15,0x33,0x32,0x35,0x34,0x23,0x25,0x21,0x35,0x13,0x23,0x35, +0x21,0x15,0x03,0x33,0x01,0x03,0x23,0x03,0x26,0x27,0x23,0x06,0x07,0x03,0x23,0x03,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x17,0x33,0x36,0x37,0x13,0xbc,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1, +0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfb,0xac,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13,0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40, +0x02,0x1f,0x61,0x98,0xa2,0x5d,0x4e,0x2e,0x26,0x4d,0x4d,0xfe,0x82,0xfe,0xa5,0xdd,0xcd,0x01,0x4a,0xd8,0xd9,0x02,0xb6,0x71,0x6c,0x47,0x06,0x01,0x01,0x03,0x05,0x49,0x70,0x71,0x6a,0x3c,0x04,0x02,0x02,0x01,0x07,0x4e,0x68,0x47,0x04,0x03,0x01,0x01,0x05,0x3b,0x04,0xd4,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56, +0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0xfd,0xc7,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11,0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c, +0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x8f,0x94,0x01,0xae,0x89,0x41,0x50,0xd0,0x86,0x43,0x43,0xba,0x38,0x01,0x27,0x4f,0x36,0xfe,0xd6,0x01,0x60,0xfe,0x52,0x01,0x14,0x15,0x1b,0x1d,0x13,0xfe,0xec,0x01,0xae,0xfe,0xe2,0x13,0x1f,0x17,0x1c,0x01,0x1d,0xfe,0xdf, +0x10,0x1e,0x18,0x18,0x01,0x1f,0x00,0x16,0x00,0xbc,0x00,0x00,0x06,0x7c,0x05,0xc0,0x00,0x35,0x00,0x3b,0x00,0x41,0x00,0x47,0x00,0x4d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x91,0x00,0xa5,0x00,0xb5,0x00,0xbd,0x00,0xc6,0x01,0x62,0x40,0xc3, +0x71,0x51,0x6e,0x4e,0x6d,0x65,0x4a,0x6a,0x62,0x59,0x56,0x52,0x42,0x1a,0x1a,0x2e,0x00,0x11,0xae,0xaf,0xc3,0x39,0x47,0x83,0x86,0x87,0xb7,0xbf,0xa6,0xab,0xbb,0xb2,0xc3,0x7e,0x8d,0x8f,0x8d,0x97,0x9a,0x9b,0x24,0x11,0x2e,0x09,0x92,0xa1,0xa3,0xa1,0x3c,0x48,0x47,0x87,0xa6,0xbb,0xc3,0x8d,0x9b,0x11,0x09,0xa1,0x48,0x48,0xa1,0x09, +0x11,0x9b,0x8d,0xc3,0xbb,0xa6,0x87,0x47,0x0b,0x4a,0x66,0x72,0x76,0x3b,0x04,0x45,0x36,0x67,0x73,0x77,0x04,0x42,0x3f,0x5a,0x5e,0x7a,0x04,0x4d,0x5b,0x5f,0x7b,0x40,0x04,0x4a,0x60,0x78,0x5f,0x77,0x7c,0x74,0x37,0x5b,0x67,0x67,0x45,0x01,0xbf,0xa4,0x90,0x88,0x9b,0x87,0x87,0x7f,0x1a,0x7b,0x73,0x73,0xb6,0x5c,0xae,0xaf,0x03,0x68, +0xb7,0x4b,0x43,0x33,0xa6,0xbf,0x04,0xbf,0xbe,0xb7,0x1f,0xb6,0xa7,0x16,0xa7,0x93,0x7f,0x8d,0xa1,0x8d,0x97,0x83,0x88,0x9c,0x88,0x40,0x36,0x43,0xbf,0xb7,0xa7,0x8d,0x88,0x36,0x36,0x88,0x8d,0xa7,0xb7,0xbf,0x43,0x07,0x37,0x4f,0x53,0x63,0x49,0x04,0x45,0x48,0x4e,0x52,0x62,0x04,0x42,0x56,0x6a,0x6e,0x3c,0x04,0x3a,0x3d,0x57,0x6b, +0x6f,0x04,0x37,0x00,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x11,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x10,0xc9,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc4,0x17,0x32,0x10,0xc0,0x2f,0x32,0x32,0x10,0xc0,0x2f, +0x32,0x10,0xc4,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x32,0x10,0xc6,0x32,0xc6,0x32,0xc6,0x32,0x01,0x2f,0x17,0x33,0xc9,0x17,0x32,0x2f,0x17,0x33,0xc9,0x17,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x10,0xc9,0x10, +0xc9,0x10,0xc9,0x32,0x10,0xc9,0x32,0x11,0x33,0x10,0xc5,0x32,0x10,0xc4,0x10,0xc0,0x2f,0x10,0xc4,0x32,0xc4,0xc4,0x32,0x10,0xc4,0x32,0xc4,0x32,0xc4,0x32,0x31,0x30,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14, +0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x01,0x35,0x33,0x15,0x23,0x15,0x25,0x35,0x33,0x15,0x23,0x35,0x01,0x35,0x33,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23,0x35,0x33, +0x01,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x16,0x15,0x15,0x23,0x11,0x33,0x13,0x16,0x17,0x33,0x26,0x35,0x35,0x33,0x01,0x11,0x33,0x32, +0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x15,0x33,0x32,0x36,0x35,0x34,0x23,0x07,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x04,0x10,0x1a,0x3d,0x20,0x12,0x1b,0x12,0x09,0x0e,0x19,0x22,0x14,0x32,0x32,0x1b,0x2f,0x3d,0x22,0x22,0x34,0x16,0x0b,0x1a,0x1b,0x1a,0x0c,0x11,0x1b,0x13,0x0a,0x0c,0x15,0x1e,0x13, +0x19,0x29,0x1e,0x0f,0x1b,0x2f,0x3e,0x22,0x24,0x40,0xfc,0x95,0xeb,0x96,0x04,0x7f,0xec,0x56,0xfa,0x96,0x55,0x96,0x03,0xe9,0x96,0x56,0xfd,0xe6,0xd2,0xfc,0xce,0xd3,0xd3,0xd3,0x03,0xa7,0x56,0x56,0x56,0x56,0xfc,0xb7,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0x5e,0xd2,0xfb,0xdd,0x55,0x55,0x55,0x55,0x05,0x6b,0x56,0x56,0xfc,0xe4, +0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0x02,0x01,0x61,0xb2,0x0f,0x06,0x01,0x02,0x5c,0x69,0xab,0x0b,0x0a,0x01,0x02,0x5b,0xfc,0xc7,0x9d,0x48,0x4d,0x2f,0x25,0x2e,0x37,0x55,0x49,0x44,0x2a,0x1e,0x23,0x47,0x24,0x34,0x22,0x26,0x25,0x22,0x01,0x0e,0x60,0x16,0x16,0x07,0x0c,0x0f,0x0a,0x0c,0x14,0x11, +0x10,0x08,0x15,0x3c,0x2b,0x22,0x30,0x1f,0x0f,0x08,0x09,0x59,0x07,0x0c,0x07,0x04,0x07,0x0b,0x10,0x0a,0x0b,0x11,0x0f,0x0f,0x07,0x0b,0x19,0x1e,0x27,0x1b,0x24,0x30,0x1f,0x0d,0x0c,0x03,0xd2,0xec,0x55,0x97,0x97,0x55,0xec,0x97,0xfa,0x95,0xeb,0x95,0x56,0x56,0x95,0xeb,0x56,0x56,0x56,0x56,0x05,0x6b,0x55,0x55,0xfb,0xdd,0xd2,0x01, +0x8c,0xd2,0xfb,0x88,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xfd,0xff,0xd1,0x2c,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfe,0x52,0x01,0x0e,0x18,0x0c,0x17,0x2f,0xec,0x01,0xae,0xfe,0xfa,0x12,0x11,0x0f,0x2c,0xee,0xfc,0x34,0x01,0xae,0x35,0x30, +0x23,0x34,0x0a,0x01,0x06,0x38,0x29,0x3b,0x45,0x01,0x67,0x66,0x1d,0x19,0x30,0xae,0x72,0x1f,0x1b,0x1a,0x1e,0x00,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0x15,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11, +0x5d,0x35,0xff,0xff,0x00,0xab,0xff,0xf2,0x04,0xad,0x05,0xec,0x00,0x26,0x08,0xc7,0x00,0x00,0x00,0x27,0x09,0x3b,0x02,0x01,0x00,0x00,0x01,0x07,0x09,0x7e,0x02,0x73,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x3c,0x01,0x3c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0x16,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27, +0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x57,0x01,0x57,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0xa1,0xff,0xf2,0x06,0xae,0x05,0x3f,0x00,0x26,0x08,0xf3,0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x60, +0x01,0x60,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e, +0x00,0x00,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07, +0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e,0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x64,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x30,0x00,0xe4,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0e, +0xb6,0x05,0x02,0x03,0x2f,0x59,0x01,0x59,0x00,0x11,0x5d,0x35,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0x16,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00, +0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x3f,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x0a,0x6d,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0c,0xb5,0x04,0x02,0x2f,0x3e,0x01,0x3e,0x00,0x11,0x5d,0x35,0x35,0xff,0xff,0x00,0x00,0xfd,0xff, +0x06,0x16,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27,0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x0e,0x6f,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x00,0xfd,0xff,0x06,0xae,0x05,0x5a,0x00,0x26,0x0e,0x5e,0x00,0x00,0x00,0x27, +0x09,0x73,0x00,0xe5,0xfd,0x56,0x00,0x27,0x09,0x3b,0x04,0x02,0x00,0x00,0x01,0x07,0x09,0x7e,0x04,0x74,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x5d,0x01,0x5d,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x08,0xc2,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x0e,0x6f,0x06,0xae, +0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xfd,0xc5,0x09,0x5a,0x05,0x3f,0x00,0x26,0x0f,0x61,0x00,0x00,0x00,0x27,0x0f,0x52,0x01,0xc8,0xfd,0xca,0x00,0x27,0x09,0x3b,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a, +0xb4,0x04,0x2f,0x6c,0x01,0x6c,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xfd,0xca,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x52,0x00,0x83,0xfd,0xcf,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x04,0x2f,0x55,0x01,0x55,0x00,0x11,0x5d,0x35,0xff,0xff, +0x00,0x9a,0xff,0x02,0x08,0xc2,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0e,0x6f,0x06,0xae,0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0x00,0x9a,0xff,0x02,0x09,0x5a,0x05,0x3f,0x00,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x09,0x3b,0x06,0xae, +0x00,0x00,0x01,0x07,0x09,0x7e,0x07,0x20,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x72,0x01,0x72,0x00,0x11,0x5d,0x35,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0xc0,0x05,0x3f,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0e,0x6f,0x02,0xac,0x00,0x00,0x01,0x07,0x09,0x7e,0x03,0x1e,0xfd,0x56,0x00,0x0a,0xb4,0x02,0x2f,0x4d,0x01,0x4d,0x00,0x11, +0x5d,0x35,0x00,0x02,0xff,0x0e,0x04,0x88,0x00,0xf3,0x07,0x90,0x00,0x19,0x00,0x25,0x00,0x2b,0x40,0x0d,0x0d,0x0d,0x00,0x1a,0x14,0x14,0x20,0x06,0x1d,0x14,0x17,0x17,0x0c,0xbb,0x01,0x36,0x00,0x23,0x00,0x03,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x36,0x37,0x15,0x06,0x07,0x07,0x0e,0x02,0x07,0x33,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0xf3,0x83,0x6c,0x74,0x82,0x2d,0x68,0x80,0x71,0x1e,0x0e,0x34,0x58,0x46,0x42,0x26,0x06,0x02,0x3c,0x6f,0x69,0x79,0x54,0x58,0x48,0x68,0x34,0x59,0x4a,0x45, +0x54,0x05,0x8c,0x77,0x8d,0xa3,0xa0,0x78,0xaa,0x67,0x15,0x13,0x14,0x4d,0x0e,0x09,0x0e,0x0c,0x2f,0x68,0x49,0x57,0x8c,0x7a,0x59,0x67,0x62,0x3f,0x5c,0x79,0x68,0x00,0x00,0x03,0xff,0x36,0x04,0x96,0x00,0xcb,0x06,0x96,0x00,0x0c,0x00,0x13,0x00,0x1a,0x00,0x31,0x40,0x10,0x0b,0x09,0x0d,0x0d,0x04,0x00,0x14,0x11,0x18,0x04,0x17,0x11, +0x11,0x18,0x10,0x05,0xbb,0x01,0x38,0x00,0x18,0x00,0x04,0x01,0x3a,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0xc4,0x31,0x30,0x13,0x14,0x06,0x23,0x23,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x27,0x34,0x23,0x23,0x15,0x33,0x32,0x17,0x34,0x23,0x23,0x15,0x33,0x32,0xcb,0x61, +0x47,0xed,0xdf,0x4c,0x57,0x62,0x75,0x65,0x59,0x85,0x7b,0x63,0x13,0x6f,0x82,0x8e,0x63,0x05,0x29,0x40,0x53,0x02,0x00,0x42,0x3b,0x64,0x15,0x0f,0x7c,0x43,0x90,0x94,0x4e,0x9e,0x00,0x01,0xff,0x72,0x04,0x96,0x00,0x8f,0x06,0x96,0x00,0x05,0x00,0x17,0xb4,0x04,0x01,0x02,0x00,0x03,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f, +0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x03,0x11,0x23,0x11,0x21,0x15,0x3c,0x52,0x01,0x1d,0x06,0x50,0xfe,0x46,0x02,0x00,0x46,0x00,0x02,0xfe,0xfc,0x03,0xdb,0x01,0x05,0x06,0x96,0x00,0x0c,0x00,0x11,0x00,0x2f,0x40,0x0b,0x0a,0x11,0x11,0x00,0x10,0x03,0x04,0x0c,0x00,0x0e,0x08,0xb8,0x01,0x38,0xb5,0x10,0x0a,0x05,0x04,0x00,0x02,0xb8, +0x01,0x3a,0x00,0x3f,0xce,0x32,0xc9,0x32,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0xc8,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x36,0x13,0x21,0x11,0x33,0x11,0x03,0x23,0x06,0x07,0x33,0xbf,0xfe,0x83,0x46,0x2e,0x81,0x04,0x01,0x0a,0x4c,0x9e,0x72,0x0d,0x67,0xe6,0x03,0xdb,0xbb,0xbb,0x01,0x01,0xba,0x01, +0x00,0xfe,0x46,0xfe,0xff,0x02,0x75,0xd5,0x9f,0x00,0x00,0x01,0xfe,0x84,0x04,0x96,0x01,0x7d,0x06,0x96,0x00,0x15,0x00,0x2f,0x40,0x12,0x10,0x03,0x04,0x0d,0x04,0x0a,0x09,0x04,0x13,0x13,0x04,0x09,0x0a,0x04,0x08,0x15,0x08,0x0b,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x11,0x33,0x10,0xc9,0x32,0x31,0x30,0x01,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x23,0x13,0x27,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x07,0x13,0x01,0x0e,0xe5,0x02,0x4e,0x02,0xe4,0x6f,0xfe,0xee,0x68,0xdb,0x02,0x4e,0x02,0xdb,0x6a,0xf0,0xff,0x04,0x96,0xfd,0xfd,0xfd,0xfd,0x01,0x08,0xf8,0xf0,0xf0,0xf0,0xf0,0xf8,0xfe,0xf8, +0x00,0x01,0xff,0x46,0x04,0x88,0x00,0xbb,0x06,0xa1,0x00,0x21,0x00,0x37,0x40,0x13,0x1e,0x1f,0x0d,0x1b,0x11,0x11,0x0a,0x16,0x05,0x0d,0x00,0x0a,0x1f,0x0d,0x0e,0x0e,0x08,0x14,0x19,0xbb,0x01,0x39,0x00,0x08,0x00,0x03,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x39,0x01,0x2f,0xc9,0x2f,0xc4,0x32,0x12,0x39,0x2f,0xc9, +0x10,0xc9,0x32,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0xbb,0x70,0x64,0x6b,0x36,0x3f,0x5d,0x88,0x95,0x32,0x30,0x82,0x37,0x39,0x4b,0x4a,0x57,0x45,0xbb,0x3a,0x30,0x38,0x46,0x05,0x21, +0x47,0x52,0x1b,0x51,0x26,0x56,0x55,0x46,0x51,0x1f,0x2c,0x25,0x4c,0x1f,0x89,0x2e,0x41,0x09,0x02,0x05,0x42,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0c,0x00,0x29,0x40,0x0c,0x0a,0x0a,0x04,0x0c,0x07,0x03,0x0b,0x04,0x02,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33, +0x39,0x39,0x01,0x2f,0xc8,0xc9,0x32,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x01,0x62,0xe2,0x02,0x52,0x52,0x02,0xd7,0x6c,0xee,0x01,0x00,0x04,0x96,0xf6,0xf6,0x02,0x00,0xeb,0xeb,0xf7,0xfe,0xf7,0x00,0x01,0xff,0x20,0x04,0x8f,0x00,0xe1,0x06,0x96,0x00,0x0e,0x00,0x1c,0xb4,0x07, +0x0e,0x00,0x02,0x0c,0xb8,0x01,0x38,0xb2,0x0a,0x05,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xd4,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0x31,0x30,0x13,0x11,0x23,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x8f,0x77,0x12,0x61,0x59,0x1a,0x12,0x0d,0x19,0x70,0x1e,0x01,0x0d,0x04,0x96,0x01,0xbb,0xe9,0xd9,0x07,0x47,0x09,0x01, +0xc2,0xfe,0x00,0x00,0x00,0x01,0xfe,0xec,0x04,0x96,0x01,0x15,0x06,0x96,0x00,0x10,0x00,0x17,0xb4,0x07,0x08,0x10,0x00,0x09,0xba,0x01,0x38,0x00,0x08,0x01,0x3a,0x00,0x3f,0x3f,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11,0x07,0x03,0x23,0x03,0x27,0x11,0x23,0x11,0x33,0x13,0x17,0x37,0x13,0x33,0x11,0xc4,0x0f,0x93,0x49,0x84,0x22, +0x47,0x69,0x87,0x25,0x24,0x83,0x6d,0x04,0x96,0x01,0xa6,0x2d,0xfe,0x87,0x01,0x48,0x5e,0xfe,0x5a,0x02,0x00,0xfe,0xb2,0x65,0x63,0x01,0x50,0xfe,0x00,0x00,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x0b,0x00,0x27,0x40,0x0b,0x07,0x03,0x04,0x0b,0x08,0x00,0x02,0x07,0x07,0x09,0x06,0xbb,0x01,0x38,0x00,0x04,0x00,0x00, +0x01,0x3a,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x32,0x31,0x30,0x13,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x83,0xfe,0xfb,0x52,0x52,0x01,0x05,0x52,0x04,0x96,0xe8,0xe8,0x02,0x00,0xd2,0xd2,0xfe,0x00,0x00,0x00,0x02,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa2,0x00,0x0b,0x00,0x15, +0x00,0x1c,0xb5,0x09,0x14,0x0f,0x03,0x0c,0x06,0xbb,0x01,0x39,0x00,0x12,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x02,0x71,0x89,0x8d,0x79,0x71,0x81,0x8a,0x6e,0x4f,0x5d,0x5b, +0x51,0xa4,0x04,0x89,0x91,0x76,0x82,0x90,0x8e,0x7c,0x7c,0x93,0x01,0xd3,0x6a,0x5e,0x5b,0x6a,0xc7,0xc6,0x00,0x01,0xff,0x2c,0x04,0x96,0x00,0xd5,0x06,0x96,0x00,0x07,0x00,0x1c,0xb5,0x03,0x04,0x07,0x00,0x02,0x05,0xbb,0x01,0x38,0x00,0x04,0x00,0x00,0x01,0x3a,0x00,0x3f,0x32,0x3f,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x11, +0x21,0x11,0x23,0x11,0x21,0x11,0x83,0xfe,0xfb,0x52,0x01,0xa9,0x04,0x96,0x01,0xba,0xfe,0x46,0x02,0x00,0xfe,0x00,0x00,0x02,0xff,0x15,0x03,0xa9,0x00,0xec,0x06,0xa2,0x00,0x10,0x00,0x1d,0x00,0x2e,0x40,0x0c,0x0b,0x17,0x11,0x05,0x01,0x02,0x00,0x05,0x08,0x14,0x01,0x0e,0xbd,0x01,0x3b,0x00,0x1a,0x00,0x08,0x01,0x39,0x00,0x03,0x01, +0x38,0x00,0x3f,0x3f,0xc9,0x3f,0xce,0xc9,0x12,0x39,0x39,0x01,0x2f,0xc9,0x32,0x32,0x2f,0xc9,0x31,0x30,0x03,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x99,0x52,0x52,0x02,0x3c,0x75,0x64,0x6e,0x7d,0x6c,0x65,0x35,0x02,0x52, +0x40,0x46,0x59,0x4e,0x44,0x47,0x58,0x04,0xdf,0xfe,0xca,0x02,0xed,0x5a,0x66,0x8a,0x73,0x82,0x9a,0x56,0x83,0x3b,0x59,0x6c,0x6d,0x52,0x64,0x62,0x48,0x00,0x00,0x01,0xff,0x40,0x04,0x89,0x00,0xc1,0x06,0xa2,0x00,0x15,0x00,0x1c,0xb5,0x05,0x10,0x0b,0x00,0x02,0x13,0xbb,0x01,0x39,0x00,0x08,0x00,0x0d,0x01,0x3b,0x00,0x3f,0xc9,0x3f, +0xc9,0x01,0x2f,0x33,0x2f,0xc9,0x31,0x30,0x13,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0xc1,0x38,0x41,0x4f,0x65,0x5d,0x51,0x43,0x3c,0x3d,0x51,0x6b,0x88,0x93,0x77,0x46,0x31,0x06,0x35,0x27,0x72,0x58,0x58,0x6b,0x2d,0x4e,0x25,0x8c,0x74,0x7d,0x9c,0x19,0x00,0x01, +0xff,0x3e,0x04,0x96,0x00,0xc3,0x06,0x96,0x00,0x07,0x00,0x1d,0xb7,0x01,0x02,0x02,0x06,0x04,0x00,0x04,0x05,0xba,0x01,0x38,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x32,0x01,0x2f,0x2f,0x39,0x2f,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x2a,0x52,0x9a,0x01,0x85,0x06,0x50,0xfe,0x46,0x01,0xba,0x46,0x46,0x00,0x01, +0xff,0x23,0x04,0x96,0x00,0xdd,0x06,0x96,0x00,0x10,0x00,0x1d,0xb7,0x01,0x09,0x09,0x0a,0x08,0x02,0x00,0x03,0xba,0x01,0x3a,0x00,0x00,0x01,0x38,0x00,0x3f,0x3f,0x01,0x2f,0x32,0x2f,0x33,0x39,0x2f,0xc9,0x31,0x30,0x13,0x03,0x17,0x23,0x27,0x23,0x06,0x07,0x23,0x37,0x03,0x33,0x16,0x17,0x33,0x37,0x37,0xdd,0xac,0xaa,0x60,0x7b,0x02, +0x12,0x6b,0x5e,0xae,0xa8,0x60,0x6b,0x0e,0x02,0x1a,0x65,0x06,0x96,0xfe,0xfe,0xfe,0xcc,0x20,0xac,0xfc,0x01,0x04,0xbd,0x1b,0x31,0xa7,0x00,0x01,0xff,0x06,0x03,0xdb,0x00,0xfb,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0a,0x09,0x06,0x06,0x00,0x05,0x02,0x0b,0x00,0x07,0x04,0xb8,0x01,0x38,0xb3,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00, +0x3f,0xce,0xc9,0x32,0x3f,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31,0x30,0x13,0x35,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x11,0xb4,0xfe,0x52,0x52,0x01,0x05,0x52,0x4c,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x01,0xff,0x2f,0x04,0x96,0x00,0xd2,0x06,0x96,0x00,0x0f,0x00,0x24, +0x40,0x0b,0x08,0x05,0x0f,0x0c,0x00,0x03,0x01,0x0a,0x0a,0x0d,0x07,0xba,0x01,0x38,0x00,0x00,0x01,0x3a,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xcd,0xc9,0x01,0x2f,0x33,0xc9,0x2f,0xc9,0x31,0x30,0x13,0x35,0x06,0x23,0x22,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x37,0x35,0x33,0x11,0x81,0x57,0x4f,0xac,0x52,0x61,0x49,0x56,0x51,0x04,0x96,0xce, +0x31,0xb6,0xad,0xa9,0x71,0x2b,0xeb,0xfe,0x04,0x00,0x00,0x01,0xfe,0xba,0x04,0x96,0x01,0x47,0x06,0x96,0x00,0x0b,0x00,0x29,0x40,0x0b,0x07,0x04,0x04,0x00,0x0b,0x08,0x03,0x00,0x09,0x05,0x02,0xb8,0x01,0x38,0xb2,0x07,0x03,0x00,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x2f,0xc9,0x31, +0x30,0x01,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xfe,0xba,0x52,0xcc,0x52,0xcb,0x52,0x04,0x96,0x02,0x00,0xfe,0x46,0x01,0xba,0xfe,0x46,0x01,0xba,0xfe,0x00,0x00,0x01,0xfe,0x93,0x03,0xdb,0x01,0x6d,0x06,0x96,0x00,0x0f,0x00,0x37,0x40,0x10,0x09,0x06,0x0d,0x0a,0x06,0x0a,0x06,0x0a,0x00,0x05,0x02,0x0f,0x00,0x0b, +0x07,0x04,0xb8,0x01,0x38,0xb4,0x0d,0x09,0x05,0x00,0x02,0xb8,0x01,0x3a,0x00,0x3f,0xce,0xc9,0x32,0x32,0x3f,0x33,0x33,0x01,0x2f,0xc9,0x2f,0xc9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x31,0x30,0x01,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x01,0x25,0xfd,0x6e,0x52,0xcb,0x52,0xcc,0x52, +0x4d,0x03,0xdb,0xbb,0x02,0x00,0xfe,0x45,0x01,0xbb,0xfe,0x45,0x01,0xbb,0xfe,0x45,0xff,0x00,0x00,0x03,0xff,0x04,0x04,0x89,0x00,0xfc,0x06,0xa1,0x00,0x0b,0x00,0x1b,0x00,0x28,0x00,0x40,0x40,0x19,0x27,0x09,0x19,0x1f,0x13,0x03,0x19,0x13,0x1f,0x0c,0x27,0x10,0x21,0x25,0x1f,0x27,0x21,0x21,0x27,0x1f,0x25,0x04,0x16,0x1c,0x06,0xbb, +0x01,0x39,0x00,0x16,0x00,0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x32,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x33,0x31,0x30,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x22,0x27,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x06, +0x03,0x22,0x06,0x07,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x26,0x02,0x73,0x87,0x8c,0x79,0x73,0x80,0x89,0x29,0x16,0x36,0x32,0x15,0x0d,0x29,0x27,0x08,0x5c,0x45,0x48,0x51,0x0a,0x1d,0x30,0x55,0x49,0x59,0x08,0x48,0x19,0x13,0x39,0x3b,0x0c,0x0e,0x4a,0x10,0x04,0x89,0x8f,0x78,0x80,0x91,0x8c,0x7d,0x7c,0x91,0xcc,0x1b,0x1a,0x10, +0x0c,0x4b,0x57,0x4e,0x55,0x0b,0x0f,0x01,0x05,0x55,0x4d,0x18,0x19,0x1b,0x1d,0xa1,0x00,0x01,0xfe,0x94,0x04,0x88,0x01,0x6c,0x06,0x96,0x00,0x17,0x00,0x30,0x40,0x0d,0x01,0x02,0x0d,0x02,0x0d,0x02,0x12,0x16,0x07,0x12,0x00,0x04,0x15,0xbd,0x01,0x38,0x00,0x0a,0x00,0x0f,0x01,0x3b,0x00,0x02,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f,0xc9, +0x32,0x01,0x2f,0xc9,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x31,0x30,0x13,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0xd3,0x52,0xe0,0x56,0x64,0x58,0x4b,0x44,0x3a,0x39,0x48,0x6d,0x86,0x8d,0x7c,0x01,0xcf,0x06,0x50,0xfe,0x46,0x01,0xba,0x65,0x59,0x55, +0x6e,0x2d,0x4e,0x26,0x8c,0x75,0x7d,0x90,0x46,0x00,0x00,0x02,0xff,0x36,0x04,0x89,0x00,0xcb,0x06,0xa2,0x00,0x14,0x00,0x1e,0x00,0x3a,0x40,0x12,0x0f,0x0f,0x19,0x08,0x1e,0x0b,0x00,0x01,0x15,0x0f,0x12,0x0b,0x0b,0x1b,0x02,0x05,0x0d,0x12,0xbd,0x01,0x39,0x00,0x1b,0x00,0x05,0x01,0x3b,0x00,0x01,0x01,0x3a,0x00,0x3f,0x3f,0xc9,0x3f, +0xc9,0x12,0x39,0x12,0x39,0x2f,0x12,0x39,0xc9,0x01,0x2f,0xc9,0x33,0x33,0x2f,0xd9,0xc0,0x2f,0x31,0x30,0x13,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x07,0x07,0x06,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0xcb,0x52,0x02,0x35,0x68,0x4e,0x56,0xa4,0x9f,0x6a,0x5c,0x4a,0x40, +0x6e,0xb4,0x52,0x7c,0x42,0x31,0x64,0x3a,0x51,0x04,0x96,0x50,0x5d,0x52,0x43,0x8d,0x18,0x18,0x81,0x3e,0x54,0x30,0xbe,0x4a,0x13,0x0a,0x2a,0x2e,0x56,0x54,0x40,0x00,0x00,0x02,0xff,0x21,0x04,0x89,0x00,0xdf,0x06,0xa2,0x00,0x11,0x00,0x17,0x00,0x2d,0x40,0x0e,0x06,0x06,0x00,0x12,0x17,0x01,0x0b,0x01,0x05,0x17,0x17,0x03,0x14,0x0e, +0xbb,0x01,0x39,0x00,0x03,0x00,0x08,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0xc9,0x12,0x39,0x2f,0x39,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x27,0x26,0x23,0x22,0x06,0x07,0xdf,0xfe,0x98,0x04,0xa1,0x56,0x4a,0x41,0x71,0x6d,0x7c, +0x86,0x65,0x64,0x6f,0x53,0x02,0x7e,0x3a,0x52,0x09,0x05,0x81,0xb2,0x39,0x4e,0x31,0x8b,0x80,0x76,0x98,0x80,0x76,0x1a,0x96,0x51,0x45,0x00,0x01,0xff,0x27,0x04,0x96,0x00,0xda,0x06,0x96,0x00,0x19,0x00,0x4c,0x40,0x1f,0x04,0x08,0x01,0x17,0x17,0x14,0x0d,0x19,0x19,0x13,0x14,0x06,0x06,0x0c,0x0d,0x10,0x17,0x08,0x17,0x07,0x19,0x00, +0x04,0x00,0x17,0x00,0x17,0x00,0x02,0x14,0x0d,0xba,0x01,0x3a,0x00,0x02,0x01,0x38,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0xd9,0xc0,0x2f,0x11,0x12,0x39,0x2f,0x33,0xc9,0x32,0x31,0x30,0x03,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x16,0x16,0x15, +0x15,0x23,0x35,0x34,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x37,0x35,0x23,0xae,0x86,0x52,0x85,0x85,0x57,0x59,0x52,0x85,0x8a,0x52,0xb1,0x86,0x06,0x3a,0x5c,0x5c,0x43,0x4c,0x0a,0x78,0x6a,0x29,0x32,0xa1,0xa1,0x32,0x2c,0xd8,0x12,0x4b,0x00,0x00,0x02,0xff,0x18,0x04,0x88,0x00,0xe8,0x07,0x8c,0x00,0x12,0x00,0x1c,0x00,0x3b,0x40,0x1a, +0x10,0x08,0x0c,0x19,0x00,0x16,0x08,0x19,0x16,0x16,0x19,0x08,0x03,0x06,0x0f,0x1b,0x09,0x06,0x19,0x0c,0x09,0x0c,0x09,0x0f,0x13,0x03,0xb8,0x01,0x3b,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0xc9,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x11,0x33,0x10,0xc9,0x31,0x30,0x13,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x37,0x03,0x33,0x16,0x17,0x37,0x13,0x33,0x03,0x16,0x16,0x07,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x15,0x14,0x5d,0x44,0x34,0x35,0x47,0x47,0x98,0x5f,0x59,0x0e,0x09,0xa5,0x5c,0xda,0x23,0x2c,0x7a,0x19,0x10,0x0f,0x1d,0x26,0x04,0xf8,0x30,0x40,0x3d,0x36,0x37,0x89,0x01,0x20,0xb6,0x23,0x16,0x01,0x74,0xfe,0x30,0x3e,0x5e,0x52, +0x21,0x0e,0x10,0x2d,0x3a,0x4f,0x28,0x2f,0x00,0x02,0xfe,0xf7,0x04,0x96,0x01,0x0a,0x07,0x8c,0x00,0x12,0x00,0x19,0x00,0x3b,0x40,0x19,0x0f,0x0b,0x17,0x08,0x04,0x04,0x06,0x0d,0x00,0x13,0x06,0x16,0x0f,0x0e,0x06,0x07,0x0b,0x07,0x0f,0x07,0x0f,0x07,0x09,0x17,0x04,0xb8,0x01,0x3a,0x00,0x3f,0xc9,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x33, +0x10,0xc9,0x32,0x10,0xc9,0x01,0x2f,0x2f,0xc9,0xc4,0x12,0x39,0x2f,0x33,0xc9,0x32,0x32,0x31,0x30,0x01,0x14,0x06,0x23,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x32,0x16,0x07,0x34,0x23,0x23,0x15,0x33,0x32,0x01,0x0a,0x5c,0x48,0xe3,0x8c,0x8c,0x52,0x9c,0x9c,0x89,0x4f,0x5d,0x54,0x68,0x79,0x7a,0x67,0x05, +0x36,0x47,0x59,0x02,0x59,0x43,0x5a,0x5a,0x43,0xfe,0xe2,0x51,0x4a,0x55,0xaf,0x00,0x00,0x02,0xfe,0xa2,0x04,0x8a,0x01,0x5e,0x06,0xa2,0x00,0x12,0x00,0x1a,0x00,0x3b,0x40,0x10,0x15,0x0a,0x03,0x03,0x06,0x10,0x19,0x09,0x05,0x06,0x04,0x09,0x09,0x17,0x13,0x0d,0xbf,0x01,0x39,0x00,0x07,0x01,0x38,0x00,0x06,0x01,0x3a,0x00,0x17,0x00, +0x00,0x01,0x3b,0x00,0x3f,0xc9,0x3f,0x3f,0x3f,0xc9,0x12,0x39,0x2f,0xc9,0x01,0x2f,0xc9,0x32,0x2f,0xc9,0x12,0x39,0x2f,0x33,0xc9,0x31,0x30,0x13,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x15,0x14,0x33,0x32,0x35,0x34,0x6c,0x6a,0x79,0x04,0x91,0x52,0x52,0x92,0x0d,0x7c, +0x69,0x70,0x76,0x81,0x6c,0x99,0x9b,0x97,0x04,0x8a,0x7f,0x75,0xe8,0x02,0x00,0xd2,0x66,0x78,0x8e,0x7c,0x7f,0x8f,0x01,0xd3,0xc8,0xc6,0xc7,0xc7,0x00,0x02,0xfe,0xc2,0x04,0x8a,0x01,0x3f,0x06,0xa2,0x00,0x1b,0x00,0x26,0x00,0x5e,0x40,0x1d,0x0f,0x0b,0x0c,0x15,0x15,0x1c,0x09,0x07,0x07,0x00,0x0c,0x22,0x1b,0x11,0x00,0x15,0x15,0x13, +0x18,0x0a,0x0f,0x23,0x11,0x0f,0x11,0x0f,0x11,0x1f,0x18,0xbd,0x01,0x39,0x00,0x0d,0x01,0x38,0x00,0x00,0x00,0x0c,0x01,0x3a,0xb4,0x01,0x02,0x02,0x1f,0x04,0xb8,0x01,0x3b,0x00,0x3f,0xd9,0xc0,0x2f,0x32,0x3f,0x33,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x01,0x2f,0x33,0xc9,0x33,0x2f,0x12,0x39, +0x2f,0xcd,0xd9,0xc0,0x2f,0x10,0xc9,0x32,0x31,0x30,0x13,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x21,0x37,0x34,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x15,0x11,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0xed,0x02,0x32,0x6b,0x4c,0x57,0x1c,0xb3,0x52,0x52,0x01,0x38,0xa1,0x69,0x5b, +0x4c,0x47,0x67,0xb4,0xfe,0xc0,0x3a,0x28,0x3f,0x4d,0x7c,0x42,0x30,0x04,0x96,0x50,0x5c,0x51,0x43,0x3c,0x24,0xe8,0x02,0x00,0xd2,0x16,0x83,0x3f,0x54,0x30,0xbf,0xfe,0xb3,0x8e,0x2a,0x2b,0x57,0x3c,0x37,0x12,0x0a,0x2b,0x00,0x02,0xff,0x07,0x04,0x96,0x00,0xfa,0x06,0x96,0x00,0x08,0x00,0x14,0x00,0x47,0x40,0x1b,0x00,0x00,0x0d,0x07, +0x0e,0x04,0x03,0x0b,0x08,0x10,0x0e,0x08,0x08,0x0e,0x10,0x03,0x09,0x12,0x09,0x0b,0x10,0x10,0x08,0x0a,0x03,0x04,0x13,0xb8,0x01,0x38,0xb2,0x12,0x0e,0x0a,0xb8,0x01,0x3a,0x00,0x3f,0x33,0x33,0x3f,0xc9,0x32,0x12,0x39,0x39,0x11,0x33,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0xc6,0x32,0x10,0xc4,0xd9,0xc0,0x2f,0x31, +0x30,0x13,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x17,0x17,0x23,0x27,0x07,0x15,0x23,0x35,0x27,0x07,0x23,0x13,0x33,0x3a,0x26,0x0e,0x04,0x02,0x02,0x08,0x2f,0x3d,0xf6,0x58,0x4c,0x30,0x4b,0x32,0x4e,0x54,0xd6,0x51,0x05,0xa3,0x69,0x22,0x25,0x14,0x23,0x75,0x46,0xcb,0xc6,0x3b,0x8b,0x8b,0x3c,0xc7,0x02,0x00,0x00,0x00,0x02,0xfe,0xee, +0x04,0x96,0x01,0x12,0x06,0x96,0x00,0x12,0x00,0x17,0x00,0x51,0x40,0x20,0x12,0x12,0x0e,0x13,0x03,0x04,0x0f,0x16,0x0c,0x04,0x16,0x16,0x04,0x0c,0x03,0x0d,0x13,0x14,0x09,0x0d,0x0f,0x0c,0x02,0x05,0x16,0x0c,0x16,0x0c,0x16,0x00,0x14,0x0d,0xb8,0x01,0x38,0xb2,0x09,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x3f,0xc9,0x12,0x39, +0x39,0x2f,0x2f,0x10,0xc9,0x32,0x11,0x33,0x01,0x2f,0xc6,0xc9,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x06,0x07,0x23,0x36,0x36,0x37,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xbb,0x12,0x80,0x4e,0x44,0x47,0x0b,0x57,0x15,0x5c,0x57, +0x9f,0x01,0xda,0xa4,0x53,0x5b,0x17,0xa8,0xc9,0x5b,0x07,0x04,0x04,0x96,0xb3,0x26,0xd9,0xda,0x15,0x68,0x5d,0x7e,0x7c,0x1b,0xeb,0xec,0x1b,0x7a,0x7f,0x01,0xbc,0x91,0x0f,0x08,0x00,0x02,0xfe,0xb2,0x04,0x96,0x01,0x4f,0x06,0x96,0x00,0x17,0x00,0x1c,0x00,0x69,0x40,0x2d,0x17,0x17,0x13,0x18,0x19,0x12,0x03,0x04,0x14,0x1b,0x12,0x0a, +0x11,0x04,0x1b,0x1b,0x04,0x11,0x0a,0x12,0x05,0x0d,0x18,0x10,0x0c,0x08,0x08,0x0c,0x0d,0x02,0x05,0x1b,0x0b,0x10,0x14,0x1b,0x10,0x10,0x1b,0x14,0x03,0x00,0x19,0x0e,0x12,0xb8,0x01,0x38,0xb3,0x0d,0x08,0x04,0x00,0xb8,0x01,0x3a,0x00,0x3f,0x32,0x32,0x32,0x3f,0xc4,0xc9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x32,0x01, +0x2f,0xd9,0xc2,0x2f,0x11,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xc9,0x10,0xc9,0x10,0xc9,0x10,0xd9,0xc2,0x2f,0x31,0x30,0x13,0x26,0x27,0x15,0x23,0x35,0x06,0x07,0x23,0x36,0x37,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x27,0x21,0x07,0x16,0x16,0x17,0x03,0x23,0x17,0x17,0x37,0xf8,0x11,0x82,0x4e,0x86,0x0f,0x57,0x1e, +0x72,0xb7,0x52,0x52,0xdf,0x8f,0x01,0xda,0xa4,0x54,0x5a,0x17,0xa8,0xc9,0x5a,0x07,0x09,0x04,0x96,0xb0,0x29,0xd9,0xda,0x29,0xb1,0xb7,0x35,0xec,0x02,0x00,0xd4,0xd4,0xec,0x1c,0x76,0x82,0x01,0xbc,0x91,0x0f,0x0f,0x00,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x25,0x00,0x3f,0x40,0x21,0x06,0x1a,0x0a,0x0a,0x1a,0x06, +0x03,0x00,0x03,0x09,0x0e,0x7f,0x05,0x00,0x09,0x06,0x91,0x07,0x03,0x1d,0x92,0x16,0x16,0x03,0x23,0x92,0x1a,0x11,0x04,0x0a,0x91,0x03,0x12,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xc4,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21, +0x15,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x03,0xe8,0xa4,0xfc,0xdd,0x03,0x41,0xfd,0x02,0x04,0x00,0xfc,0xb8,0x02,0x2a,0x94,0xa1,0x8b,0x73,0x45,0x8b,0x50,0x5d,0x4e,0x40,0x41,0x8c,0x87,0x78,0x4a,0x79,0x3f,0x30,0x64,0x32, +0x37,0x45,0x79,0x79,0x2f,0x04,0xd3,0x98,0x28,0xfb,0x26,0x87,0x7f,0x6f,0x8a,0x2e,0x24,0x29,0x43,0x33,0x73,0x85,0x29,0x19,0x13,0x26,0x3e,0x00,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x22,0x00,0x40,0x40,0x22,0x18,0x06,0x0a,0x05,0x05,0x0a,0x06,0x18,0x04,0x00,0x03,0x09,0x0d,0xed,0x00,0x09,0x06,0x95,0x07,0x0f, +0x1b,0x96,0x14,0x14,0x03,0x20,0x96,0x18,0x10,0x04,0x0a,0x95,0x03,0x15,0x00,0x3f,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x05,0x34,0x23,0x21,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x20,0x15,0x14,0x06,0x23,0x22,0x27,0x26,0x23,0x22, +0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x03,0x11,0x99,0xfd,0xa9,0x02,0x5e,0xfd,0xdb,0x03,0x16,0xfd,0xa2,0x01,0x7b,0x01,0x11,0x7a,0x67,0x65,0x9b,0x52,0x46,0x39,0x39,0x81,0x78,0x6e,0x44,0x82,0x4b,0x50,0x2e,0x36,0x34,0x72,0x72,0x33,0x03,0x41,0x8c,0x2f,0xfc,0xbb,0xf5,0x6a,0x84,0x4c,0x28,0x40,0x30, +0x6f,0x7e,0x2c,0x22,0x26,0x3e,0x00,0x01,0x00,0x21,0xfe,0x99,0x04,0x7b,0x05,0x9a,0x00,0x2d,0x00,0x5a,0x40,0x30,0x2d,0x1b,0x03,0x1b,0x0b,0x2c,0x07,0x07,0x2c,0x0b,0x1b,0x03,0x05,0x27,0x2a,0x09,0x06,0x0f,0x7f,0x02,0x27,0x1e,0x92,0x17,0x17,0x2a,0x24,0x92,0x1b,0x12,0x2b,0x0b,0x91,0x2a,0x0a,0x2d,0x92,0x07,0x00,0x00,0x04,0x2a, +0x12,0x06,0x03,0x91,0x04,0x03,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x31,0x30,0x13,0x21,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x01,0x21,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x17,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01,0x21,0xa2,0x01,0x85,0x01,0x3b,0xfd,0x02,0x04,0x00,0xfe,0x78,0x01,0x38,0xfe,0x72,0xfe,0x96,0x02,0x2a,0xa2,0x93,0x8b,0x72,0x42,0x7d,0x61,0x61,0x4a,0x40,0x42,0x8c,0x87,0x79,0x5c,0x69,0x3e, +0x30,0x63,0x32,0x37,0x44,0xa4,0xfc,0xdd,0x01,0xae,0xfe,0xd3,0x03,0x2e,0x01,0xd4,0x98,0x28,0xfd,0xbc,0x80,0xfd,0xea,0x7e,0x88,0x6f,0x8a,0x27,0x2b,0x29,0x43,0x33,0x73,0x85,0x2a,0x18,0x13,0x26,0x3e,0x2e,0x79,0x2f,0x02,0x7f,0x00,0x01,0x00,0x21,0xfe,0xa9,0x03,0x9e,0x04,0x00,0x00,0x2c,0x00,0x5a,0x40,0x31,0x1b,0x03,0x2c,0x0b, +0x2b,0x07,0x02,0x02,0x07,0x2b,0x0b,0x2c,0x03,0x1b,0x07,0x26,0x29,0x09,0x06,0x0f,0xed,0x26,0x1e,0x96,0x17,0x17,0x29,0x23,0x96,0x1b,0x12,0x2a,0x0b,0x95,0x29,0x0a,0x2c,0x96,0x07,0x00,0x00,0x04,0x29,0x15,0x06,0x03,0x95,0x04,0x0f,0x00,0x3f,0xed,0x39,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x39,0xd4,0x32,0xed,0x12,0x39, +0x2f,0xed,0x01,0x2f,0xfd,0xc4,0xc4,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x13,0x21,0x13,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x21,0x03,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x23,0x21,0x35,0x01, +0x23,0x7d,0x01,0x31,0xd1,0xfd,0xdb,0x03,0x16,0xfe,0xec,0x01,0x04,0xfe,0xa4,0xf2,0x01,0x7f,0x80,0x8d,0x7c,0x6b,0x40,0x97,0x2f,0x4c,0x45,0x36,0x37,0x81,0x76,0x6a,0x41,0x7d,0x4f,0x54,0x2f,0x39,0x36,0x76,0xfd,0x86,0x01,0x33,0xd7,0x02,0x54,0x01,0x20,0x8c,0x2f,0xfe,0x83,0x7a,0xfe,0xb2,0x7f,0x76,0x69,0x85,0x33,0x19,0x28,0x40, +0x30,0x70,0x7d,0x2b,0x23,0x26,0x3e,0x2a,0x72,0x33,0x01,0xa7,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xdc,0x05,0xb2,0x00,0x27,0x00,0x29,0x40,0x16,0x00,0x1a,0x7d,0x0d,0x22,0x7d,0x13,0x06,0x13,0x0d,0x22,0x27,0x04,0x03,0x10,0x91,0x17,0x04,0x24,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd, +0xc4,0x31,0x30,0x25,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x14,0x21,0x32,0x36,0x37,0x03,0xdc,0x3f,0xcb,0x5d,0xf1,0xfe,0xf3,0xae,0xce,0x8f,0x74,0x34,0x9b,0x96,0x5e,0x8e,0x5a,0x4f,0x88,0x5e,0xef,0x01, +0x03,0x43,0x92,0x8f,0x9d,0x7a,0x38,0x01,0x34,0x63,0xe0,0x3e,0x3a,0x26,0x2c,0xb6,0xa9,0x91,0xd8,0x66,0x48,0x55,0x5d,0x44,0x5a,0x6c,0x24,0x34,0xbd,0x1e,0x15,0xbd,0xad,0x5d,0x8e,0x7a,0x49,0x50,0x5e,0x65,0x44,0xc4,0x4a,0x37,0x00,0x01,0x00,0x70,0xff,0xe8,0x03,0x17,0x04,0x18,0x00,0x22,0x00,0x29,0x40,0x16,0x00,0x16,0x83,0x0b, +0x1d,0x83,0x10,0x05,0x10,0x0b,0x1d,0x22,0x04,0x02,0x0e,0x95,0x13,0x10,0x1f,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x15, +0x14,0x33,0x32,0x36,0x37,0x03,0x17,0x70,0xa2,0xc6,0xcf,0x87,0x9e,0x82,0x56,0x6a,0x60,0x91,0x73,0x68,0x86,0xb5,0xd3,0x75,0x9e,0x6c,0x53,0x2b,0xd8,0x52,0x99,0x3c,0x25,0x3d,0x88,0x85,0x71,0x9c,0x3e,0x34,0x55,0x3c,0x40,0x49,0x4a,0xa6,0x2e,0x91,0x7e,0x72,0x91,0x40,0x2c,0x36,0x41,0x2b,0x86,0x35,0x2e,0x00,0x00,0x01,0x00,0xbc, +0xff,0xf0,0x02,0xc8,0x05,0x9a,0x00,0x11,0x00,0x1f,0x40,0x0f,0x09,0x7e,0x06,0x00,0x7f,0x0f,0x10,0x10,0x03,0x07,0x03,0x0c,0x91,0x03,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01,0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xc8,0x8b,0x79,0x7d, +0x8b,0xa8,0x3c,0x2d,0x2c,0x37,0x98,0xfa,0x7d,0x8d,0x9a,0x93,0x04,0x7d,0xfb,0x82,0x54,0x45,0x3b,0x3d,0x2b,0x00,0x00,0x01,0x00,0xa6,0xff,0xf0,0x02,0xa5,0x04,0x00,0x00,0x11,0x00,0x22,0xb3,0x09,0x84,0x06,0x00,0xb8,0x01,0x2e,0x40,0x0a,0x0f,0x10,0x10,0x03,0x07,0x0f,0x0c,0xec,0x03,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x01, +0x2f,0xed,0x2f,0xed,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x02,0xa5,0x85,0x78,0x7b,0x87,0xa3,0x38,0x31,0x2a,0x34,0x95,0xf1,0x76,0x8b,0x98,0x8b,0x02,0xed,0xfd,0x12,0x4a,0x48,0x38,0x3b,0x28,0x00,0x01,0x00,0xaa,0x00,0x00,0x04,0xd5,0x05,0x9a,0x00,0x19,0x00,0x4d, +0x40,0x29,0x12,0x16,0x7e,0x0f,0x0b,0x0b,0x07,0x00,0x0d,0x06,0x7e,0x07,0x14,0x19,0x7e,0x00,0x16,0x03,0x91,0x0b,0x15,0x0d,0x92,0x0e,0x12,0x0e,0x00,0x0b,0x10,0x0b,0x02,0x0b,0x0e,0x0b,0x0e,0x07,0x10,0x03,0x00,0x07,0x12,0x00,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x33,0x01,0x2f,0xfd, +0xc4,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x31,0x30,0x21,0x11,0x10,0x21,0x20,0x11,0x11,0x23,0x11,0x10,0x12,0x37,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x15,0x04,0x11,0x11,0x04,0x2d,0xfe,0x99,0xfe,0x8c,0xa8,0xe0,0xe2,0xfe,0xba,0x01,0x46,0xa8,0x01,0x46,0xfe,0xba,0x01,0xc1,0x01,0x7c,0x01,0xaa,0xfe, +0x47,0xfe,0x93,0x01,0x78,0x01,0x08,0x01,0x28,0x11,0x99,0x8a,0xbe,0xbe,0x8a,0x9b,0x2e,0xfd,0xd8,0xfe,0x9f,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4,0x04,0x00,0x00,0x19,0x00,0x47,0x40,0x24,0x14,0x19,0x0d,0x07,0x12,0x16,0x84,0x0f,0x0b,0x0b,0x00,0x07,0x84,0x08,0x19,0x84,0x00,0x15,0x0d,0x96,0x12,0x0e,0x0e,0x08,0x10,0x03, +0x96,0x16,0x0b,0x0b,0x08,0x10,0x0f,0x00,0x08,0x15,0x00,0x3f,0x33,0x3f,0x12,0x39,0x2f,0x33,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xc4,0x10,0xc4,0x31,0x30,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x35,0x21,0x35,0x21,0x35,0x33,0x15,0x21,0x15, +0x21,0x15,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8b,0x89,0xa4,0x01,0x62,0xfe,0xf5,0x01,0x0b,0xa4,0x01,0x0b,0xfe,0xf5,0x01,0x61,0x6b,0x01,0x3c,0xa1,0xa7,0x5f,0x58,0x01,0xac,0x28,0x96,0x86,0xb8,0xb8,0x86,0x97,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0x48,0xff,0xe7,0x05,0x73,0x05,0x9a,0x00,0x16,0x00,0x35,0x00,0x55,0x40,0x18, +0x2b,0x1d,0x7e,0x07,0x10,0x23,0x28,0x23,0x28,0x23,0x04,0x17,0x0f,0x13,0x7d,0x17,0x2e,0x7d,0x08,0x04,0x20,0x25,0x1a,0x2b,0xb8,0x01,0x05,0x40,0x10,0x07,0x10,0x0c,0x07,0x25,0x07,0x25,0x07,0x00,0x0e,0x08,0x03,0x32,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x01, +0x2f,0xc4,0xed,0x2f,0xfd,0xc4,0x11,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0xc4,0xfd,0xcd,0x31,0x30,0x05,0x22,0x24,0x26,0x35,0x34,0x36,0x37,0x01,0x33,0x01,0x17,0x33,0x37,0x01,0x33,0x01,0x16,0x16,0x15,0x14,0x06,0x04,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x06, +0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x02,0xe9,0xca,0xfe,0xcb,0xa2,0xfe,0xed,0xfe,0x69,0xdc,0x01,0x34,0x36,0x06,0x31,0x01,0x2b,0xca,0xfe,0x88,0xe1,0xfc,0xa4,0xfe,0xd6,0x01,0x1c,0xd1,0xb0,0x46,0x36,0x2a,0x33,0x38,0x43,0x4f,0x4e,0x69,0x7a,0x32,0x39,0xb2,0xdb,0x73,0xf1,0x92,0x8f,0xd8,0x6a,0x19,0x6e,0xc8,0x86,0xad, +0xe5,0x26,0x02,0x3f,0xfe,0x20,0x5e,0x56,0x01,0xe8,0xfd,0xc3,0x26,0xdc,0xa4,0x8d,0xd3,0x70,0x01,0xca,0x88,0xa3,0x0c,0x60,0x71,0x2b,0x21,0x2f,0x1f,0x89,0x1d,0x64,0x59,0x48,0x7f,0x4e,0x14,0xa6,0x82,0x61,0x8f,0x54,0x52,0x95,0x00,0x02,0x00,0x19,0xff,0xe7,0x03,0xb6,0x05,0xed,0x00,0x14,0x00,0x20,0x00,0x3b,0x40,0x1e,0x0e,0x1e, +0x09,0x15,0x84,0x07,0x12,0x00,0x84,0x1b,0x07,0x1b,0x07,0x1b,0x0a,0x11,0x0a,0x0e,0x12,0x1e,0x03,0x0a,0x0a,0x04,0x10,0x00,0x18,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc5,0x10,0xfd,0xc5,0xc6,0x32,0x31,0x30,0x25,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34, +0x13,0x01,0x33,0x13,0x16,0x17,0x37,0x01,0x33,0x01,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x02,0xa2,0x3c,0x6e,0x45,0x71,0x87,0x8d,0xfe,0xd1,0xbe,0x92,0x20,0x1c,0x13,0x01,0x46,0xb8,0xfe,0x4e,0x4f,0x4f,0xfe,0xba,0x2c,0x27,0x26,0x2c,0x32,0x27,0x28,0x24,0xc6,0x3b,0x68,0x3c,0x7e,0x67,0x79,0x01, +0x07,0x02,0x40,0xfe,0xd5,0x42,0x45,0x2d,0x02,0xe6,0xfc,0x62,0x87,0xb5,0x43,0x2b,0x32,0x32,0x2b,0x23,0x85,0x47,0x59,0x6e,0x00,0x01,0x00,0x5e,0xff,0xe8,0x08,0xaa,0x05,0xb2,0x00,0x32,0x00,0x49,0x40,0x28,0x1e,0x02,0x1e,0x02,0x17,0x09,0x7d,0x30,0x24,0x7d,0x17,0x00,0x21,0x91,0x1b,0x10,0xee,0x02,0x1e,0x1e,0x1b,0x0f,0x2a,0x1f, +0x2a,0x2f,0x2a,0x03,0x2a,0x2a,0x13,0x05,0x1b,0x04,0x2d,0x27,0x91,0x0d,0x13,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x01,0x22,0x07,0x35,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x26,0x27, +0x06,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x36,0x37,0x16,0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x06,0x14,0xa8,0x66,0x71,0x9b,0xc5,0x01,0x2e,0xa5,0xa4,0xfe,0xd0,0xc6,0x5e,0xd2,0x5b,0x5a,0xd6,0x5d,0xc5,0xfe,0xcf,0xa4,0xa2,0x01,0x2e,0xc8,0xa1,0x6b, +0x2e,0x8f,0x51,0xdc,0xfe,0xf6,0x01,0x0c,0xf2,0x6f,0xc9,0x3f,0x42,0xc2,0x75,0xef,0x01,0x0f,0xfe,0xf8,0x05,0x1a,0x45,0xb2,0x2b,0xb9,0xfe,0xaa,0xdf,0xd9,0xfe,0xb3,0xb6,0x2c,0x2a,0x29,0x2d,0xb6,0x01,0x4c,0xd8,0xda,0x01,0x57,0xbf,0x2b,0xb2,0x20,0x25,0xfe,0xbc,0xfe,0xf0,0xfe,0xee,0xfe,0xcb,0x35,0x2b,0x2b,0x35,0x01,0x31,0x01, +0x16,0x01,0x11,0x01,0x43,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x06,0xc6,0x04,0x18,0x00,0x2b,0x00,0x47,0x40,0x26,0x0c,0x20,0x0c,0x20,0x06,0x27,0x83,0x1b,0x11,0x83,0x06,0x1e,0x0e,0xec,0x09,0x00,0xec,0x20,0x0c,0x0c,0x09,0x16,0x40,0x09,0x0c,0x48,0x16,0x16,0x02,0x23,0x09,0x10,0x18,0x14,0x95,0x2a,0x02,0x16,0x00,0x3f,0x33,0xed, +0x32,0x3f,0x33,0x12,0x39,0x2f,0x2b,0x12,0x39,0x11,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x25,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x00,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32, +0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x03,0x96,0x93,0xaf,0x98,0xe4,0x78,0x01,0x0a,0xdc,0x80,0x67,0x69,0x82,0x93,0xa7,0xc1,0xa7,0xa5,0x7f,0x80,0xa2,0xa9,0xbf,0xa5,0x93,0x83,0x69,0x6a,0x7e,0x90,0xdd,0x77,0xfe,0xf3,0xe6,0xae,0x42,0x5a,0x84,0xf3,0x9b,0xf6,0x01,0x28,0x30,0xaa,0x49,0xd2,0xb9,0xb9,0xcf,0x63,0x63,0xd0,0xb8,0xb8, +0xd3,0x49,0xaa,0x30,0x87,0xf7,0xa0,0xef,0xfe,0xdd,0x00,0x02,0xff,0xf3,0x00,0x00,0x04,0x5a,0x05,0xb2,0x00,0x14,0x00,0x1d,0x00,0x2d,0x40,0x17,0x00,0x1a,0x7e,0x08,0x08,0x0e,0x04,0x7d,0x15,0x0e,0x19,0x91,0x00,0x00,0x08,0x0c,0x92,0x11,0x04,0x1a,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0xed, +0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x01,0x86,0x01,0x1d,0xcb,0xec,0xf5,0xda,0xfe,0x53,0x4a,0x51,0x26,0x2a,0x2f,0x3e,0x8e,0x98,0x02,0x23,0xa1,0x9d,0xe5,0xe7,0x9a,0xa2,0x03, +0x3a,0xd0,0xbe,0xc5,0xe7,0x04,0x05,0x9f,0x83,0x15,0x8e,0x12,0xce,0xbf,0xfd,0x7d,0x86,0x7a,0xfd,0xf6,0x8c,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x04,0x19,0x04,0x18,0x00,0x06,0x00,0x1b,0x00,0x2d,0x40,0x17,0x13,0x04,0x84,0x1b,0x1b,0x00,0x0c,0x17,0x83,0x00,0x03,0x95,0x13,0x13,0x0f,0x04,0x95,0x1b,0x15,0x0a,0x95,0x0f,0x10,0x00, +0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x01,0x34,0x23,0x23,0x11,0x33,0x32,0x01,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x03,0x71,0xce,0xf4,0xf6,0xcc,0xfd,0x9a,0x3b,0x4a,0x30,0x24,0x39,0x37,0x83,0x8a,0x01, +0x14,0x9b,0xbb,0xb5,0x91,0xfe,0x38,0x01,0x40,0xaa,0xfe,0xa2,0x02,0x5b,0x50,0x57,0x0f,0x88,0x11,0x99,0x91,0x77,0xa5,0x92,0x92,0xae,0x00,0x03,0x00,0x33,0x00,0x00,0x06,0xa2,0x05,0x9a,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x15,0x7e,0x08,0x04,0x7d,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x7e,0x00,0x14,0x91, +0x0d,0x0d,0x08,0x0b,0x01,0x03,0x00,0x12,0x0a,0x91,0x0b,0x03,0x15,0x91,0x08,0x12,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x10,0x21, +0x23,0x11,0x33,0x32,0x36,0x05,0xfa,0xa8,0xfe,0xb1,0xf5,0xda,0xfe,0x53,0xfe,0x5c,0x02,0x4c,0x01,0x1e,0xcb,0xeb,0xb1,0xfe,0xc3,0xe6,0xe7,0x97,0xa5,0x05,0x9a,0xfa,0x66,0x01,0xac,0xc4,0xe8,0x05,0x02,0x98,0xfd,0xa0,0xd3,0xc5,0x01,0x00,0xfd,0xf6,0x89,0x00,0x00,0x03,0x00,0x1c,0x00,0x00,0x05,0xae,0x04,0x00,0x00,0x03,0x00,0x10, +0x00,0x18,0x00,0x40,0x40,0x22,0x0d,0x16,0x84,0x08,0x04,0x83,0x11,0x08,0x11,0x08,0x11,0x00,0x0a,0x03,0x84,0x00,0x15,0x95,0x0d,0x0d,0x08,0x0b,0x01,0x0f,0x00,0x15,0x0a,0x95,0x0b,0x0f,0x16,0x95,0x08,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x11,0x12,0x39,0x2f,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10, +0xed,0x32,0x31,0x30,0x21,0x11,0x33,0x11,0x01,0x14,0x06,0x23,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x32,0x16,0x07,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x05,0x0c,0xa2,0xfe,0xae,0xb6,0x92,0xfe,0x3a,0xfe,0xce,0x01,0xd6,0x01,0x14,0xa0,0xb6,0xa8,0x67,0x6c,0xef,0xef,0xd3,0x04,0x00,0xfc,0x00,0x01,0x40,0x93,0xad,0x03,0x73,0x8d,0xfe, +0x77,0xa6,0x93,0x57,0x55,0xfe,0xa2,0x00,0x00,0x02,0x00,0xbb,0x00,0x00,0x06,0x5d,0x05,0x9a,0x00,0x16,0x00,0x1f,0x00,0x4b,0x40,0x27,0x07,0x0b,0x1c,0x7e,0x04,0x13,0x09,0x13,0x09,0x17,0x03,0x16,0x7e,0x00,0x0f,0x7d,0x17,0x0a,0x15,0x91,0x07,0x03,0x03,0x13,0x01,0x1b,0x91,0x0b,0x0b,0x13,0x05,0x01,0x03,0x00,0x12,0x1c,0x91,0x13, +0x12,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x32,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11, +0x33,0x32,0x36,0xbb,0xa8,0x01,0x7e,0xa8,0x01,0x67,0xfe,0x99,0x01,0x1a,0xce,0xec,0xfb,0xd7,0xfe,0x56,0xfe,0x82,0x04,0x49,0x9c,0xa5,0xe2,0xe3,0x9c,0xa4,0x05,0x9a,0x95,0x95,0x95,0x98,0xfe,0xcd,0xd2,0xbc,0xc9,0xe3,0x04,0x6d,0xfb,0x93,0x01,0xa2,0x80,0x80,0xfd,0xf6,0x89,0x00,0x00,0x02,0x00,0xa6,0x00,0x00,0x05,0xaa,0x05,0xec, +0x00,0x16,0x00,0x1e,0x00,0x4b,0x40,0x27,0x09,0x17,0x07,0x0b,0x1c,0x84,0x04,0x13,0x13,0x17,0x03,0x16,0x84,0x00,0x0f,0x83,0x17,0x0a,0x15,0x95,0x07,0x03,0x03,0x13,0x01,0x1b,0x95,0x0b,0x0b,0x13,0x05,0x01,0x00,0x00,0x15,0x1c,0x95,0x13,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x12,0x39,0x2f,0xed,0x11,0x12,0x39,0x2f,0x33,0xed,0x32, +0x01,0x2f,0xed,0x2f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x32,0x10,0xc4,0x31,0x30,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x21,0x11,0x21,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0xa6,0xa4,0x01,0x52,0xa4,0x01,0x1e,0xfe,0xe2,0x01,0x14,0xa2,0xb4,0xb6,0x91,0xfe, +0x39,0xfe,0xae,0x03,0xb8,0x63,0x70,0xef,0xef,0xd3,0x05,0xec,0xc3,0xc3,0xc3,0x8d,0xfd,0xdb,0xa7,0x90,0x91,0xaf,0x04,0x9c,0xfb,0x64,0x01,0x3e,0x55,0x57,0xfe,0xa2,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x6a,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x1d,0x07,0x7e,0x1c,0x1c,0x0c,0x16,0x7d,0x00,0x0b,0x7e,0x08,0x0c,0x0e,0x91, +0x07,0x07,0x0c,0x09,0x03,0x0c,0x12,0x1f,0x91,0x04,0x04,0x19,0x91,0x12,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x34,0x12,0x24,0x33,0x20,0x00,0x13,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x37,0x10,0x12,0x33, +0x32,0x12,0x11,0x10,0x00,0x23,0x22,0x02,0x60,0x9a,0x01,0x21,0xbf,0x01,0x1b,0x01,0x5b,0x1f,0x01,0x53,0xa8,0xa8,0xfe,0xb2,0xa5,0xfe,0xdb,0xb7,0xcd,0xfe,0xd7,0x9d,0xb0,0xfe,0xe5,0xdf,0xf2,0xfe,0xfd,0xe1,0xe0,0xf0,0x02,0xdf,0xd7,0x01,0x49,0xb3,0xfe,0xae,0xfe,0xd5,0x02,0x65,0xfa,0x66,0x02,0x9e,0xc6,0xfe,0xbb,0xab,0xb7,0x01, +0x59,0xd0,0xfe,0xe9,0xfe,0xce,0x01,0x3b,0x01,0x17,0x01,0x13,0x01,0x36,0xfe,0xcd,0x00,0x02,0x00,0x63,0xff,0xe8,0x05,0xdb,0x04,0x18,0x00,0x13,0x00,0x1b,0x00,0x38,0x40,0x1e,0x06,0x0d,0x84,0x18,0x18,0x0b,0x14,0x83,0x00,0x0a,0x84,0x07,0x0b,0x0d,0x95,0x06,0x06,0x0b,0x08,0x0f,0x0b,0x15,0x1a,0x95,0x03,0x10,0x16,0x95,0x11,0x16, +0x00,0x3f,0xed,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x0e,0x02,0x23,0x22,0x00,0x37,0x10,0x21,0x20,0x11,0x10,0x21,0x20,0x63,0xf0,0xdc,0xca,0xff,0x1b,0x01,0x24,0xa4,0xa4,0xfe,0xde,0x05, +0x6f,0xcb,0x8f,0xe2,0xfe,0xfe,0xa7,0x01,0x2f,0x01,0x36,0xfe,0xce,0xfe,0xcd,0x02,0x04,0xff,0x01,0x15,0xe9,0xd3,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x94,0xde,0x77,0x01,0x24,0xf2,0xfe,0x74,0x01,0x8c,0x01,0x90,0x00,0x02,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0f,0x00,0x17,0x00,0x48,0xb9,0x00,0x14,0x01,0x04,0x40,0x22,0x05, +0x04,0x05,0x15,0x15,0x05,0x04,0x03,0x08,0x0f,0x0b,0x07,0x7e,0x08,0x02,0x91,0x14,0x06,0x91,0x0b,0x14,0x0b,0x14,0x0b,0x08,0x11,0x0d,0x03,0x09,0x03,0x04,0x00,0x08,0x12,0x00,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x31,0x30, +0x21,0x03,0x21,0x03,0x23,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x06,0x96,0x98,0xfd,0xa0,0x8f,0xbb,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae,0x02,0x28,0xfd,0x80,0x04,0x09,0x0e,0xdf,0x01,0xf1,0xe1,0x0b,0x01,0x92,0xfe,0x6e,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b, +0x02,0x75,0xfa,0x66,0x04,0xec,0x37,0x29,0xfd,0x9d,0x02,0x63,0x1f,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xa1,0x04,0x18,0x00,0x1c,0x00,0x27,0x00,0x5d,0x40,0x31,0x0f,0x0b,0x84,0x0c,0x16,0x1d,0x83,0x09,0x07,0x07,0x00,0x0c,0x23,0x1c,0x84,0x11,0x00,0x13,0x95,0x19,0x10,0x01,0x02,0x0a,0x95,0x0f,0x24,0x96,0x11,0x02,0x0c,0x0f, +0x16,0x11,0x0d,0x0f,0x11,0x0f,0x11,0x0c,0x0d,0x0f,0x00,0x0c,0x15,0x20,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x11,0x33,0x3f,0xed,0x01,0x2f,0x33,0xed,0x33,0x2f,0x12,0x39,0x2f,0xcd,0xfd,0xc4,0x10,0xed,0x32,0x31,0x30,0x21,0x35,0x23,0x06,0x23, +0x22,0x26,0x35,0x34,0x37,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x07,0x06,0x06,0x04,0xfd,0x04,0x67,0xd4,0x97,0xaf,0x38,0xfe,0x9a,0xa4,0xa4,0x02,0x71,0x01,0x42,0xd3,0x60,0xa0,0x4e,0x93,0xc9,0x01,0x69,0xfd,0x7f,0x6b,0x59,0x7a, +0x9f,0xef,0x88,0x66,0xa0,0xb8,0x9f,0x89,0x74,0x4d,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x2d,0x01,0x05,0x3d,0x41,0xa8,0x60,0xfe,0x82,0xfd,0x66,0x01,0x1c,0x4c,0x5e,0xab,0x83,0x66,0x21,0x14,0x56,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x11,0x00,0x2f,0x40,0x18,0x07,0x0d,0x0e,0x04,0x04,0x0e, +0x0d,0x07,0x04,0x00,0x03,0x00,0x06,0x92,0x0d,0x0d,0x00,0x09,0x01,0x03,0x07,0x92,0x00,0x12,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x33,0x01,0x33,0x01,0x27,0x03,0x21,0x03,0x01,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x16,0x02,0x26,0xae,0x02,0x28,0xf1, +0xae,0xfe,0x3a,0xa8,0x01,0x8d,0x04,0x08,0x08,0x08,0x97,0x01,0x62,0x99,0x08,0x06,0x05,0x9a,0xfa,0x66,0x91,0x01,0xd2,0xfe,0x2e,0x04,0x5b,0x23,0x2b,0x14,0xfe,0x62,0x01,0xa0,0x17,0x2c,0x00,0x03,0x00,0x0a,0x00,0x00,0x03,0xc7,0x04,0x00,0x00,0x03,0x00,0x07,0x00,0x0f,0x00,0x2f,0x40,0x18,0x04,0x0b,0x0c,0x05,0x05,0x0c,0x0b,0x04, +0x04,0x00,0x01,0x00,0x07,0x96,0x0b,0x0b,0x01,0x08,0x02,0x0f,0x04,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x31,0x30,0x21,0x21,0x01,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x27,0x26,0x27,0x03,0xc7,0xfc,0x43,0x01,0x98,0xa1,0xfe,0xa0,0x02,0x05, +0x71,0xfe,0xe3,0x8c,0x05,0x1a,0x43,0xcb,0x40,0x14,0x10,0x04,0x00,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x44,0x47,0xb9,0xb5,0x34,0x5b,0x00,0x00,0x04,0x00,0x29,0x00,0x00,0x05,0xaa,0x05,0x9a,0x00,0x14,0x00,0x1b,0x00,0x1f,0x00,0x24,0x00,0x69,0x40,0x38,0x16,0x14,0x1c,0x0b,0x7e,0x0c,0x24,0x0c,0x15,0x02,0x7e,0x19,0x00,0x23,0x14,0x0c, +0x19,0x1d,0x01,0x01,0x1d,0x19,0x0c,0x14,0x23,0x00,0x07,0x06,0x11,0x06,0x0a,0x0e,0x92,0x23,0x1c,0x23,0x1f,0x20,0x92,0x14,0x19,0x02,0x14,0x23,0x14,0x23,0x14,0x00,0x0c,0x07,0x11,0x12,0x16,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f, +0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xfd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0x31,0x30,0x13,0x21,0x01,0x16,0x16,0x12,0x17,0x23,0x26,0x27,0x21,0x11,0x23,0x11,0x21,0x06,0x07,0x23,0x12,0x00,0x37,0x01,0x21,0x13,0x16,0x17,0x36,0x36,0x13,0x21,0x26,0x27,0x27,0x06,0x06,0x07,0x21,0xa5,0x04,0x9f,0xfe, +0x52,0x9e,0xcb,0x7e,0x2d,0xbf,0x10,0x31,0xfe,0x98,0xa8,0xfe,0x8c,0x2c,0x10,0xc1,0x2f,0x01,0x01,0xe9,0x01,0xe5,0xfd,0x9f,0xf8,0x23,0x11,0x11,0x0e,0x31,0x01,0x25,0x6e,0xb7,0xa8,0x68,0x8b,0x3e,0x01,0x31,0x05,0x9a,0xfd,0x60,0x36,0xb2,0xfe,0xea,0xfc,0xb1,0x6b,0xfe,0xe4,0x01,0x1c,0x6d,0xaf,0x01,0x4a,0x01,0x6c,0x46,0x02,0x06, +0xfe,0x6a,0x37,0x39,0x33,0x1a,0xfe,0x58,0x9c,0x33,0x02,0x1f,0x5b,0x57,0x00,0x04,0x00,0x1e,0x00,0x00,0x04,0x66,0x04,0x00,0x00,0x15,0x00,0x1c,0x00,0x21,0x00,0x26,0x00,0x6d,0x40,0x0c,0x20,0x17,0x0e,0x22,0x04,0xef,0x05,0x21,0x05,0x23,0x16,0x11,0xb8,0x01,0x2e,0x40,0x2a,0x1a,0x0f,0x0e,0x05,0x1a,0x10,0x10,0x1a,0x05,0x0e,0x0f, +0x05,0x0a,0x15,0x0a,0x03,0x07,0x96,0x20,0x22,0x20,0x26,0x1d,0x96,0x0e,0x11,0x1a,0x0e,0x0f,0x20,0x0e,0x20,0x0e,0x0a,0x17,0x95,0x0f,0x0f,0x05,0x00,0x0a,0x15,0x00,0x3f,0x33,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x10,0xfd,0xcd,0xcd,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xcd,0x31,0x30,0x21,0x26,0x27,0x23,0x15,0x23,0x35,0x21,0x06,0x07,0x23,0x3e,0x02,0x37,0x01,0x21,0x01,0x1e,0x02,0x17,0x01,0x21,0x17,0x16,0x17,0x36,0x36,0x07,0x06,0x06,0x07,0x3b,0x02,0x26,0x26,0x27,0x03,0xb8,0x0a,0x21,0xf9,0x9c,0xff,0x00,0x1a,0x11,0xaf,0x24,0x60, +0x98,0x74,0xfe,0xc2,0x03,0xb5,0xfe,0xb8,0x73,0x9b,0x5e,0x1d,0xfe,0xb0,0xfe,0x6f,0x9f,0x1c,0x08,0x03,0x0a,0x5d,0x3a,0x5a,0x2d,0xc1,0x9c,0xb9,0x35,0x4c,0x38,0x74,0x4e,0xc2,0xc2,0x40,0x82,0xbe,0xc9,0x81,0x23,0x01,0xd5,0xfe,0x29,0x24,0x8a,0xcd,0xae,0x03,0x79,0xff,0x2b,0x17,0x08,0x11,0x9d,0x12,0x37,0x35,0x3a,0x30,0x12,0x00, +0x00,0x03,0x00,0xbc,0x00,0x00,0x07,0x50,0x05,0x9a,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x49,0x40,0x27,0x08,0x04,0x7e,0x05,0x14,0x0e,0x7e,0x0f,0x02,0x01,0x02,0x15,0x0c,0x0c,0x15,0x02,0x01,0x04,0x00,0x05,0x00,0x0e,0x03,0x91,0x14,0x08,0x08,0x01,0x11,0x0a,0x03,0x06,0x03,0x05,0x12,0x0f,0x92,0x01,0x12,0x00,0x3f,0xed,0x3f,0x3f, +0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x10,0xc5,0xfd,0xcd,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x03,0x21,0x03,0x01,0x23,0x06,0x07,0x03,0x21,0x03,0x26,0x07,0x50,0xfb,0x04,0xfb,0xfe,0x15,0xa8,0xa8,0x02,0x25,0xf1,0xae, +0x01,0x37,0xbe,0xfe,0x5a,0xb8,0x01,0x8d,0x04,0x09,0x0e,0x83,0x01,0x38,0x84,0x09,0x02,0x8e,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0xf7,0x01,0xfd,0xfe,0x03,0x04,0x5b,0x37,0x29,0xfe,0x99,0x01,0x67,0x1b,0x00,0x00,0x03,0x00,0xa6,0x00,0x00,0x05,0xd0,0x04,0x00,0x00,0x0b,0x00,0x0f,0x00,0x17,0x00,0x4d,0x40,0x2a,0x08,0x04, +0x84,0x05,0x01,0x02,0x0c,0x13,0x14,0x0d,0x0d,0x14,0x13,0x0c,0x02,0x01,0x06,0x00,0x05,0x00,0x0f,0x96,0x13,0x03,0x95,0x08,0x13,0x08,0x13,0x08,0x01,0x10,0x0a,0x0f,0x06,0x0f,0x05,0x15,0x0c,0x96,0x01,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f, +0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x32,0x31,0x30,0x21,0x21,0x13,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x13,0x33,0x01,0x21,0x03,0x21,0x13,0x06,0x07,0x07,0x33,0x26,0x26,0x27,0x05,0xd0,0xfc,0x43,0xba,0xfe,0x7d,0xa4,0xa4,0x01,0xba,0xa7,0xa1,0xfe,0xa0,0x02,0x05,0x71,0xfe,0xe3,0x8c,0x06,0x18,0x44,0xcb,0x2c,0x2c,0x0c,0x01,0xd1,0xfe, +0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfc,0x7b,0x01,0x44,0x01,0xb8,0x47,0x44,0xb9,0x7b,0x7c,0x4d,0x00,0x00,0x01,0x00,0x1e,0xfe,0x29,0x05,0xfe,0x05,0x9a,0x00,0x1a,0x00,0x2f,0x40,0x17,0x1a,0x7e,0x02,0x00,0x00,0x0b,0x14,0x0b,0x19,0x18,0x01,0x02,0x02,0x12,0x15,0x12,0x12,0x03,0x0e,0x91,0x00,0x08,0x13,0x00,0x3f,0xc6,0xed,0x3f, +0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x01,0x26,0x27,0x23,0x11,0x03,0x4d,0x05,0x0e,0x1a,0xe0,0x2c,0x8c,0x6d,0x6b,0x85,0x0d,0xa1,0x0d,0x51,0x2c,0x3c,0x1f,0x01,0xb4, +0x9a,0x02,0x0c,0xc0,0xfe,0xe4,0x1d,0x0a,0x05,0xfe,0x29,0x05,0xc9,0x60,0x47,0xfd,0xa3,0x89,0x7e,0x7b,0x80,0x64,0x4b,0x51,0x04,0x80,0xfa,0x66,0x03,0x44,0x5c,0x52,0xfa,0x37,0x00,0x01,0x00,0x05,0xfe,0x29,0x04,0xd0,0x04,0x00,0x00,0x1a,0x00,0x30,0x40,0x18,0x1a,0xef,0x02,0x00,0x00,0x0a,0x14,0x0a,0x19,0x18,0x01,0x02,0x02,0x12, +0x15,0x15,0x12,0x0f,0x0e,0x95,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x11,0x33,0x33,0x33,0x01,0x2f,0x2f,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x01,0x11,0x23,0x06,0x07,0x03,0x06,0x06,0x23,0x22,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x26,0x27,0x23,0x11,0x02,0xa3,0x05,0x0f,0x12, +0x81,0x2f,0x78,0x5c,0xd5,0x1f,0x9d,0x05,0x29,0x29,0x27,0x39,0x22,0x01,0x2a,0x9d,0x01,0x8e,0xaa,0xbd,0x1a,0x0b,0x05,0xfe,0x29,0x04,0x86,0x54,0x36,0xfe,0xaf,0x85,0x68,0xeb,0x30,0x2d,0x43,0x56,0x02,0xf2,0xfc,0x00,0x02,0x16,0x58,0x41,0xfb,0x7a,0x00,0x01,0x00,0x3e,0xfe,0x7f,0x05,0x34,0x05,0x9a,0x00,0x0b,0x00,0x2a,0x40,0x15, +0x05,0x7e,0x02,0x02,0x06,0x0b,0x7f,0x00,0x09,0x7e,0x06,0x00,0x0a,0x07,0x03,0x03,0x05,0x01,0x91,0x0a,0x12,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0xc0,0xa8,0x02,0xe6,0xa8,0xfb,0xa5,0xfe,0x7f,0x02,0x19, +0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0x66,0xfe,0x7f,0x00,0x01,0x00,0x3e,0xfe,0x8b,0x04,0x27,0x04,0x00,0x00,0x0b,0x00,0x2a,0x40,0x15,0x05,0x84,0x02,0x02,0x06,0x0b,0xed,0x00,0x09,0x84,0x06,0x00,0x0a,0x07,0x03,0x0f,0x05,0x01,0x95,0x0a,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed, +0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x3e,0x97,0xa4,0x02,0x0a,0xa4,0xfc,0xa4,0xfe,0x8b,0x02,0x00,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x00,0xfe,0x8b,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x06,0xc6,0x05,0x9a,0x00,0x0f,0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x7e,0x15,0x03,0x7f,0x04,0x15,0x04, +0x15,0x04,0x0e,0x07,0x7f,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0xee,0x0d,0x03,0x01,0x14,0x09,0x91,0x06,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21, +0x15,0x21,0x21,0x06,0x02,0x07,0x21,0x04,0x87,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x92,0xc8,0x0c,0x04,0xe2,0xfd,0x19,0xfe,0x94,0x0e,0xb9,0x78,0x02,0xab,0x04,0xfe,0xfb,0x9a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x0d,0x02,0xba,0x01,0x3b,0x9c,0xe5,0xfd,0x66,0xe7,0x00,0x02,0x00,0x12,0xfe,0x8b,0x05,0x20,0x04,0x00,0x00,0x0f, +0x00,0x15,0x00,0x3d,0x40,0x1f,0x14,0x07,0x01,0x84,0x15,0x03,0xed,0x04,0x15,0x04,0x15,0x04,0x0e,0x07,0xed,0x08,0x0e,0x04,0x08,0x06,0x00,0x11,0x95,0x0d,0x0f,0x01,0x14,0x09,0x95,0x06,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x10,0xcd,0x32,0x01,0x2f,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31, +0x30,0x01,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x21,0x15,0x21,0x23,0x06,0x02,0x07,0x21,0x03,0x8b,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x7d,0x8d,0x03,0xa9,0xfd,0xc7,0xe3,0x0a,0x79,0x66,0x01,0xcc,0x03,0x74,0xfd,0x17,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xb0,0x01,0xc9,0xfc,0x8c,0xc5,0xfe,0x7d,0xa1, +0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe3,0x05,0x9a,0x00,0x17,0x00,0x24,0x40,0x12,0x17,0x7e,0x00,0x00,0x0a,0x14,0x0a,0x16,0x02,0xee,0x13,0x03,0x0e,0x91,0x08,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x21,0x07,0x06,0x02,0x02,0x06,0x23,0x22,0x27,0x35,0x16,0x16, +0x33,0x32,0x36,0x12,0x12,0x13,0x21,0x15,0x21,0x11,0x03,0xfc,0xfe,0x71,0x20,0x1e,0x46,0x57,0x8e,0x6b,0x4d,0x3c,0x12,0x47,0x18,0x44,0x4f,0x4b,0x55,0x2e,0x05,0x01,0xfd,0xc1,0x04,0xfe,0xf9,0xe7,0xfe,0x48,0xfe,0xfa,0x77,0x15,0x9e,0x0b,0x12,0x6e,0x01,0x26,0x02,0x1c,0x01,0x6b,0x9c,0xfb,0x02,0x00,0x00,0x01,0x00,0x10,0xff,0xf2, +0x05,0x26,0x04,0x00,0x00,0x11,0x00,0x24,0x40,0x12,0x11,0x84,0x00,0x00,0x07,0x0e,0x07,0x10,0x02,0x95,0x0d,0x0f,0x0a,0x95,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x23,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x13,0x21,0x15,0x21,0x11,0x02,0xee, +0xee,0x28,0xc1,0xaf,0x38,0x20,0x1f,0x2d,0x6d,0x8b,0x23,0x03,0xaf,0xfe,0x6b,0x03,0x74,0xfe,0x21,0xfe,0x5d,0x0e,0x8d,0x12,0x01,0xbf,0x01,0xc6,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x08,0xb1,0x05,0x9a,0x00,0x1f,0x00,0x3f,0x40,0x1f,0x07,0x06,0x03,0x01,0x7e,0x02,0x02,0x14,0x1e,0x10,0x13,0x7e,0x14,0x00,0xee,0x1d, +0x1d,0x15,0x0f,0x07,0x06,0x10,0x19,0x10,0x14,0x15,0x03,0x0c,0x02,0x14,0x12,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x39,0x11,0x33,0x33,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x32,0x2f,0x12,0x39,0x2f,0xed,0x33,0x33,0x33,0x31,0x30,0x01,0x11,0x23,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x15, +0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x01,0x21,0x15,0x06,0x72,0xa7,0x02,0x0c,0x04,0x0d,0x10,0x0e,0xfe,0x16,0x52,0xfe,0x17,0x13,0x17,0x05,0x08,0xa2,0xde,0x01,0xb8,0x31,0x11,0x06,0x29,0x1a,0x01,0xc4,0x03,0x10,0x04,0xfe,0xfb,0x02,0x03,0xc2,0x20,0x39,0xbe,0x2e,0x3f,0x1e,0xfb,0xb2,0x04,0x46,0x2d,0x66,0x6a,0xaf, +0xfc,0x40,0x05,0x9a,0xfc,0x18,0x70,0x3c,0x70,0x3c,0x03,0xe8,0x9c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0x8d,0x04,0x00,0x00,0x17,0x00,0x34,0x40,0x1a,0x17,0x84,0x00,0x00,0x0a,0x14,0x09,0xed,0x0a,0x16,0x95,0x13,0x13,0x0b,0x01,0x08,0x0f,0x08,0x0a,0x0b,0x0f,0x00,0x0a,0x15,0x05,0x15,0x00,0x3f,0x3f,0x33,0x3f,0x12,0x39,0x39, +0x11,0x33,0x11,0x33,0x10,0xed,0x01,0x2f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x01,0x23,0x01,0x26,0x27,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x37,0x01,0x21,0x15,0x21,0x11,0x04,0x56,0x10,0x26,0xfe,0xf2,0x93,0xfe,0xf8,0x2d,0x17,0x8d,0xd1,0x01,0x0e,0x3e,0x0a,0x04,0x0f,0x26,0x01,0x18,0x02,0x6f, +0xfe,0x6b,0x03,0x4c,0x2f,0x6a,0xfd,0x4d,0x02,0x90,0x74,0x48,0xfc,0xb4,0x04,0x00,0xfd,0x64,0x9a,0x2f,0x39,0x5d,0x02,0xcf,0x8c,0xfc,0x8c,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x28,0x40,0x14,0x15,0x7d,0x09,0x21,0x1b,0x7d,0x03,0x0f,0x00,0x06,0x06,0x0c,0x18,0x91,0x12,0x04, +0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x02,0x30,0x41,0x42,0x31, +0x30,0x42,0x41,0x37,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe,0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x02,0x70,0x3c,0x30,0x2b,0x3e,0x39,0x30,0x2e,0x3e,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe, +0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0x00,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x28,0x40,0x14,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x00,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x01, +0x2f,0xc4,0xed,0x2f,0xc6,0xed,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x58,0x29,0x38,0x3a,0x27,0x2a,0x37,0x35,0x32,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02, +0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x01,0xaa,0x38,0x2a,0x2d,0x32,0x37,0x28,0x27,0x3b,0xfe,0x3e,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03,0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0x00,0x00,0x04,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f, +0x00,0x32,0x40,0x19,0x2d,0x27,0x15,0x7d,0x21,0x1b,0x7d,0x09,0x03,0x0f,0x24,0x00,0x00,0x2a,0x06,0x06,0x0c,0x18,0x91,0x12,0x04,0x1e,0x91,0x0c,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xc4,0xed,0x2f,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x13,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x01,0x22,0x00,0x11,0x10,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x34,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x9a,0xfe,0xd0,0xfe,0x90,0x01,0x75,0x01,0x43,0x01,0x23,0x01,0x71,0xfe,0x89,0xfe,0xd7,0xe1,0xfe, +0xe5,0x01,0x0f,0xe1,0xef,0x01,0x0d,0xfe,0xf5,0x1e,0x2c,0x3d,0x3e,0x2d,0x30,0x3a,0x3c,0x02,0x70,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0xfd,0x78,0x01,0x90,0x01,0x44,0x01,0x5a,0x01,0x9c,0xfe,0x75,0xfe,0xb8,0xfe,0x9d,0xfe,0x6c,0x05,0x32,0xfe,0xbb,0xfe,0xf6,0xfe,0xfb,0xfe,0xb9,0x01,0x36,0x01,0x13,0x01,0x20,0x01,0x32,0xfd, +0x56,0x3c,0x30,0x2e,0x3b,0x3e,0x2b,0x2d,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x0b,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x32,0x40,0x19,0x2e,0x28,0x15,0x83,0x09,0x22,0x1c,0x83,0x03,0x0f,0x25,0x00,0x00,0x2b,0x06,0x06,0x0c,0x19,0x95,0x12,0x10,0x1f,0x95,0x0c,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39, +0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xc4,0xed,0x2f,0xc4,0xed,0xc4,0xc6,0x31,0x30,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x00,0x35,0x10,0x00,0x33,0x32,0x12,0x17,0x14,0x06,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x01,0xc9,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x63,0xe7,0xfe,0xf5,0x01,0x1c,0xee,0xe6,0xfe,0x02,0x83,0xe1,0x8e,0x9e,0xb8,0xb6,0xa0,0xa0,0xaa,0xac,0x16,0x28,0x34,0x37,0x25,0x25,0x38,0x37,0x01,0xaf,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0xfe,0x39,0x01,0x23,0xe9,0x01,0x04,0x01,0x20,0xfe,0xe6,0xfa,0xaa,0xf1,0x81,0x03, +0xa6,0xd7,0xbd,0xb2,0xd6,0xd0,0xbc,0xc2,0xce,0xfe,0x21,0x37,0x26,0x2b,0x30,0x31,0x2a,0x28,0x35,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x09,0x58,0x05,0xb2,0x00,0x1d,0x00,0x2b,0x00,0x37,0x00,0x43,0x00,0x4f,0x00,0x3f,0x40,0x20,0x21,0x7d,0x35,0x35,0x0c,0x4d,0x47,0x1a,0x7d,0x28,0x41,0x3b,0x2f,0x7d,0x0c,0x44,0x38,0x38,0x4a,0x3e, +0x3e,0x09,0x1e,0x2c,0x91,0x0f,0x04,0x25,0x32,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0xc4,0xc4,0x2f,0xed,0xc4,0xc6,0x12,0x39,0x2f,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x07,0x06,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x33,0x3e,0x02,0x33, +0x20,0x00,0x11,0x10,0x07,0x06,0x01,0x22,0x02,0x11,0x14,0x12,0x16,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x21,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x35,0x10,0x02,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0xe8,0x7b,0xc7,0x98,0x2f,0x08,0x27, +0x36,0x9e,0xfe,0xe7,0xfe,0xea,0xfe,0xb1,0x01,0x55,0x01,0x26,0xb8,0x01,0x0a,0x3e,0x08,0x24,0x9d,0xd9,0x83,0x01,0x0e,0x01,0x4c,0xaa,0xa8,0xfe,0xed,0xca,0xf6,0x69,0xc2,0x8a,0xcd,0xf3,0x67,0xc5,0xfb,0x52,0xc8,0xf8,0xf4,0xc1,0xdb,0xe5,0xef,0xcd,0x2d,0x3c,0x40,0x2a,0x2b,0x40,0x3d,0x03,0xf6,0x2b,0x3e,0x3f,0x2b,0x2b,0x40,0x3c, +0x18,0x4e,0x9d,0x7b,0x68,0x3d,0xc1,0x01,0x91,0x01,0x44,0x01,0x59,0x01,0x9c,0xbb,0xa6,0x66,0xa8,0x53,0xfe,0x70,0xfe,0xbd,0xfe,0x9f,0xca,0xcc,0x05,0x32,0xfe,0xb7,0xfe,0xfc,0xac,0xfe,0xf5,0x97,0x01,0x2e,0x01,0x1b,0xbb,0x01,0x0a,0x8d,0xfe,0xba,0xfe,0xf7,0xfe,0xf3,0xfe,0xc1,0x01,0x41,0xfe,0x01,0x2f,0x01,0x2d,0xfd,0x56,0x3f, +0x2d,0x30,0x39,0x39,0x30,0x2e,0x3e,0x3b,0x31,0x30,0x39,0x39,0x30,0x2e,0x3e,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x06,0xdc,0x04,0x18,0x00,0x1b,0x00,0x28,0x00,0x34,0x00,0x40,0x00,0x4c,0x00,0x4b,0x40,0x28,0x3e,0x83,0x38,0x20,0x83,0x32,0x4a,0x83,0x44,0x38,0x32,0x44,0x44,0x32,0x38,0x03,0x0c,0x19,0x83,0x26,0x2c,0x83,0x0c,0x41, +0x35,0x35,0x47,0x3b,0x3b,0x08,0x1c,0x29,0x95,0x0f,0x10,0x23,0x2f,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0x33,0x11,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x26,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x00, +0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x17,0x14,0x02,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x0e, +0x57,0x89,0x6d,0x25,0x04,0x2a,0xbe,0x8c,0x86,0xc6,0x78,0x01,0x08,0xd1,0x84,0xbd,0x29,0x04,0x32,0xc4,0x86,0xca,0xee,0x01,0xfb,0xc9,0x5f,0x86,0x41,0x99,0x8d,0x88,0x94,0x94,0xfc,0x8e,0x85,0xa1,0x9d,0x89,0x84,0x98,0x95,0x8c,0x24,0x34,0x32,0x26,0x23,0x35,0x32,0x02,0xc4,0x25,0x33,0x32,0x26,0x23,0x35,0x32,0x18,0x32,0x66,0x57, +0x71,0x7e,0x7a,0xea,0xa8,0x01,0x0b,0x01,0x19,0x7e,0x70,0x75,0x79,0xfe,0xe2,0xf6,0xf5,0xfe,0xd9,0x03,0xa6,0x6b,0xad,0x78,0xb2,0xda,0xce,0xbe,0xc2,0xce,0xd3,0xc1,0xb5,0xd3,0xc8,0xc9,0xbb,0xd0,0xfe,0x1c,0x38,0x2a,0x2a,0x35,0x33,0x2c,0x29,0x39,0x39,0x29,0x2a,0x35,0x33,0x2c,0x29,0x39,0x00,0x0f,0x00,0x7e,0xff,0xe7,0x05,0xd7, +0x05,0xb3,0x00,0x2a,0x00,0x36,0x00,0x42,0x00,0x4e,0x00,0x5a,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0x96,0x00,0xa2,0x00,0xae,0x00,0xba,0x00,0xc6,0x00,0xd2,0x01,0x3c,0xb1,0xbe,0x82,0xb8,0x01,0x04,0x40,0x0f,0x0f,0x09,0x07,0x11,0x07,0x58,0x7f,0x52,0x34,0x64,0x7f,0x5e,0x2e,0x5e,0xa6,0xb8,0x01,0x04,0xb4,0xa0,0x16,0x02, +0xca,0x8e,0xb8,0x01,0x04,0x40,0x0d,0x88,0xc4,0x88,0x4c,0x7f,0x46,0x40,0x7c,0x7f,0x76,0x3a,0x76,0xb2,0xb8,0x01,0x04,0xb4,0xac,0x1d,0x26,0x1b,0x28,0xb8,0x01,0x04,0x40,0x1d,0x94,0xd0,0x94,0x70,0x7f,0x6a,0x07,0x52,0x5e,0xa0,0x88,0x46,0x76,0xac,0x94,0x6a,0x6a,0x94,0xac,0x76,0x46,0x88,0xa0,0x5e,0x52,0x07,0x0a,0x0c,0x21,0xbb, +0x01,0x04,0x00,0xb8,0x00,0x9a,0x01,0x04,0xb2,0x0c,0xc7,0xbb,0xb8,0x01,0x05,0x40,0x0c,0x14,0x73,0x5b,0xee,0x61,0x79,0x61,0x8b,0x7f,0x26,0x25,0x09,0xb8,0x01,0x05,0x40,0x0f,0x9d,0xb5,0x9d,0x67,0x43,0x4f,0xee,0x55,0x6d,0x49,0x55,0xcd,0xc1,0xaf,0x97,0xb8,0x01,0x05,0x40,0x2a,0x0f,0x1e,0x1d,0x0f,0x37,0x2b,0xee,0x31,0x3d,0x31, +0x80,0x55,0x01,0x02,0x61,0x7f,0x9d,0xa9,0x55,0xa3,0xc1,0x0f,0x31,0x16,0x16,0x31,0x0f,0xc1,0xa3,0x55,0xa9,0x9d,0x7f,0x61,0x02,0x0b,0x04,0x18,0x14,0x04,0x91,0x85,0xb8,0x01,0x05,0xb2,0x00,0x04,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x10, +0xed,0x32,0x11,0x33,0x33,0x10,0xed,0x32,0x11,0x33,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x10,0xed,0x32,0x32,0x11,0x33,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33, +0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xfd,0x32,0xcd,0x32,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0x11,0x33,0x10,0xcd,0x32,0xed,0x32,0x31,0x30,0x05,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x37,0x32,0x16,0x15, +0x14,0x06,0x07,0x23,0x27,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xe2,0x8f,0x45,0x45,0x8b,0x78,0x94,0x27,0x65,0x76,0x74,0x66,0x26,0x91, +0x7e,0x8a,0x43,0x47,0x8f,0x7a,0x88,0x23,0x1c,0x6f,0x89,0x80,0x6e,0x13,0x14,0x24,0x89,0xfd,0xdc,0x1d,0x2c,0x2b,0x1e,0x1f,0x2d,0x2b,0x01,0x83,0x1d,0x2c,0x2c,0x1d,0x1e,0x2e,0x2b,0xd5,0x1d,0x2c,0x2c,0x1d,0x1d,0x2f,0x2c,0xfe,0x3c,0x1d,0x2d,0x2d,0x1d,0x1e,0x2e,0x2c,0x94,0x1d,0x2c,0x2d,0x1c,0x1e,0x2e,0x2b,0x02,0x73,0x1d,0x2c, +0x2c,0x1d,0x20,0x2b,0x2b,0xfe,0xf0,0x1d,0x2c,0x2b,0x1e,0x1e,0x2e,0x2b,0xfe,0x3b,0x46,0x54,0x56,0x48,0x4b,0x4f,0x4f,0x01,0x55,0x47,0x54,0x57,0x48,0x49,0x51,0x50,0xfd,0x5a,0x47,0x54,0x56,0x49,0x48,0x51,0x50,0x01,0x57,0x47,0x54,0x55,0x4a,0x48,0x51,0x51,0x01,0x58,0x46,0x55,0x56,0x48,0x49,0x51,0x4e,0xfd,0x1d,0x46,0x54,0x56, +0x48,0x49,0x51,0x50,0x01,0x56,0x47,0x54,0x56,0x49,0x49,0x51,0x50,0x19,0x65,0x65,0x9e,0x84,0x60,0x44,0x0f,0x99,0x76,0x77,0x9b,0x11,0x41,0x5d,0x86,0xa1,0x66,0x66,0x9e,0x8a,0x5c,0x41,0x02,0x9f,0x87,0x80,0x98,0x07,0x01,0x44,0x60,0x83,0x9e,0x04,0x5f,0x2a,0x25,0x22,0x2b,0x28,0x25,0x22,0x2d,0x2b,0x24,0x24,0x29,0x28,0x25,0x22, +0x2d,0xfe,0x3e,0x2a,0x26,0x24,0x29,0x27,0x26,0x22,0x2e,0x2b,0x25,0x22,0x2b,0x28,0x25,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x25,0x28,0x28,0x25,0x22,0x2d,0x01,0xc1,0x2c,0x24,0x23,0x2a,0x2a,0x23,0x23,0x2d,0xfe,0x3f,0x2b,0x24,0x22,0x2b,0x27,0x26,0x22,0x2d,0x01,0x09,0x69,0x59,0x5a,0x65,0x66,0x5a,0x5a,0x67,0x6a,0x59,0x59,0x65,0x64, +0x5c,0x5c,0x65,0x01,0xc2,0x6a,0x58,0x58,0x67,0x64,0x5b,0x5d,0x65,0x69,0x59,0x5a,0x65,0x63,0x5c,0x5f,0x63,0x6a,0x58,0x5a,0x65,0x64,0x5c,0x59,0x68,0x01,0xc2,0x69,0x5a,0x5a,0x65,0x64,0x5c,0x5b,0x67,0x6a,0x59,0x5a,0x65,0x64,0x5c,0x5c,0x66,0x00,0x00,0x01,0xfe,0xc2,0x04,0xd3,0x01,0x3e,0x05,0x87,0x00,0x0f,0x00,0x1a,0x40,0x0a, +0x0b,0x0c,0x03,0x04,0x00,0x40,0x07,0x80,0x0c,0x04,0x00,0x2f,0x33,0x1a,0xdd,0x1a,0xc9,0x01,0x2f,0xc9,0x2f,0xc9,0x31,0x30,0x03,0x22,0x15,0x15,0x23,0x35,0x34,0x33,0x21,0x32,0x15,0x15,0x23,0x35,0x34,0x23,0x70,0x42,0x8c,0x7a,0x01,0x88,0x7a,0x8b,0x42,0x05,0x20,0x31,0x1c,0x2e,0x86,0x88,0x2c,0x1c,0x31,0x00,0x00,0x08,0x00,0x6f, +0xfe,0xb6,0x07,0x72,0x05,0xf8,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3b,0x00,0x47,0x00,0x53,0x00,0x5f,0x00,0x39,0x40,0x1b,0x35,0x59,0x5b,0x37,0x5b,0x29,0x4d,0x4f,0x2b,0x4f,0x1d,0x41,0x43,0x1f,0x43,0x5b,0x4f,0x43,0x43,0x4f,0x5b,0x03,0x07,0x11,0x13,0x05,0x07,0x00,0x2f,0xce,0x2f,0xce,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x11,0x33,0x10,0xce,0x32,0x31,0x30,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x03,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37, +0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x01,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x13,0x17,0x23,0x27,0x07,0x23,0x37,0x27,0x33,0x17,0x37,0x33,0x04,0x1d,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x87,0x7e, +0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x01,0xa4,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x1c,0x7e,0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0xfe,0xdf,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfb,0x1c,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0xfe,0xd4,0x7e, +0x60,0x4a,0x4b,0x5f,0x7e,0x88,0x60,0x54,0x53,0x60,0x27,0x7d,0x5f,0x4b,0x4a,0x60,0x7f,0x88,0x60,0x53,0x54,0x60,0x05,0x30,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xf9,0x78,0xba,0x7b,0x7b,0xba,0xc7,0x88,0x88,0x04,0x63,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba, +0xc8,0x89,0x89,0x03,0xcd,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0xfc,0xee,0xb9,0x7b,0x7b,0xb9,0xc8,0x88,0x88,0xfc,0xed,0xba,0x7c,0x7c,0xba,0xc8,0x89,0x89,0x00,0x02,0x01,0x13,0xfe,0x52,0x06,0xce,0x06,0x5b,0x00,0x07,0x00,0x0f,0x00,0x40,0xb1,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x06,0x08,0x01,0x0f,0xb8,0x01,0x04,0x40,0x0c,0x02,0x0c, +0x0d,0x09,0x02,0x06,0x09,0x06,0x09,0x06,0x07,0x0b,0xbc,0x01,0x05,0x00,0x08,0x00,0x04,0x01,0x05,0x00,0x07,0x00,0x2f,0xed,0x2f,0xed,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x01,0x2f,0x33,0xed,0x32,0x2f,0x33,0xed,0x32,0x31,0x30,0x01,0x11,0x23,0x11,0x21,0x11,0x23,0x19,0x02,0x33,0x11,0x21,0x11,0x33,0x11,0x06,0xce,0x60, +0xfb,0x09,0x64,0x64,0x04,0xf7,0x60,0x06,0x5b,0xfe,0x26,0x01,0x80,0xfe,0x80,0x01,0xda,0xf7,0xf7,0x01,0xda,0xfe,0x80,0x01,0x80,0xfe,0x26,0x00,0x00,0x0a,0x00,0x26,0xfe,0x52,0x07,0xbb,0x06,0x5b,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0xae,0xb3,0x28,0x10,0x14, +0x2f,0xb8,0x01,0x04,0xb3,0x2c,0x0b,0x07,0x0f,0xb8,0x01,0x04,0xb4,0x0c,0x04,0x00,0x0c,0x1b,0xb8,0x01,0x04,0x40,0x1f,0x18,0x25,0x1d,0x21,0x14,0x2c,0x02,0x0c,0x09,0x18,0x21,0x21,0x18,0x09,0x0c,0x02,0x2c,0x14,0x07,0x11,0x24,0x20,0x1c,0x29,0x15,0x11,0x19,0x0d,0x2d,0x22,0x16,0xb8,0x01,0x05,0xb4,0x15,0x21,0x15,0x26,0x2a,0xb8, +0x01,0x05,0xb4,0x29,0x25,0x29,0x1e,0x12,0xb8,0x01,0x05,0x40,0x12,0x11,0x1d,0x11,0x2d,0x15,0x29,0x11,0x11,0x29,0x15,0x2d,0x04,0x03,0x18,0x0c,0x2c,0x0a,0x02,0xb8,0x01,0x05,0xb1,0x07,0x03,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x11,0x33, +0x10,0xed,0x32,0x11,0x33,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0x10,0xed,0x11,0x33,0x33,0x31,0x30,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x03,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21, +0x35,0x21,0x01,0x11,0x33,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x05,0x21,0x35,0x21,0x13,0x11,0x33,0x11,0x03,0xbd,0xc0,0xc0,0x64,0xb6,0xb6,0x64,0x64,0xfd,0xd5,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0x03,0x61,0x64,0x02,0x00,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfe,0x30,0x01,0xd0,0xfa,0x3b, +0xfe,0x30,0x01,0xd0,0x2d,0x64,0x04,0x8b,0xb6,0x64,0xb6,0xb6,0x64,0xb6,0xf9,0xc7,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0xfd,0x64,0x01,0xd0,0xfe,0x30,0x05,0x6c,0x64,0xfc,0x68,0x64,0x01,0x36,0x64,0x64,0x64,0xfb,0xca,0x01,0xd0,0xfe,0x30,0x00,0x00,0x02,0x00,0x7d,0x02,0xaf,0x03,0x54,0x05,0xeb,0x00,0x0b,0x00,0x17, +0x00,0x64,0xb2,0x16,0x0c,0x17,0xb8,0x01,0x00,0xb5,0x00,0x14,0x0e,0x12,0x10,0x06,0xb8,0x01,0x00,0x40,0x23,0x11,0x00,0x0e,0x11,0x11,0x0e,0x00,0x03,0x01,0x07,0x05,0x0b,0x01,0x0f,0x0c,0x0b,0x08,0x0b,0x13,0x16,0x01,0x04,0x01,0x0e,0x09,0x0b,0x14,0x01,0x0b,0x01,0x0b,0x01,0x03,0x09,0x03,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f, +0x11,0x39,0x11,0x12,0x39,0x11,0x33,0x10,0xc9,0x32,0x11,0x33,0x10,0xc9,0x32,0x01,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xfd,0xc5,0x32,0x11,0x33,0x10,0xed,0xc5,0x32,0x31,0x30,0x13,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x23,0x07,0x27,0x23,0x37,0x33,0x17,0x37,0x33,0x27,0x37,0x23,0x27,0x07,0x23,0x17,0xfa,0x7d, +0xf9,0x73,0x74,0xf7,0x7c,0x7c,0xf8,0x73,0x73,0xf7,0x69,0xb1,0x50,0x50,0xb0,0x58,0x58,0xb0,0x50,0x51,0xb0,0x58,0x04,0x4e,0xd5,0xc8,0xc8,0xd6,0xd6,0xc8,0xc8,0x3d,0x8b,0x8b,0x99,0x99,0x8b,0x8b,0x99,0x00,0x00,0x01,0xfe,0x9c,0x04,0xc2,0x01,0x64,0x05,0xf2,0x00,0x0d,0x00,0x13,0xb6,0x0a,0x04,0x0a,0x04,0x80,0x00,0x07,0x00,0x2f, +0xc9,0x1a,0xcd,0x32,0x01,0x2f,0x2f,0x31,0x30,0x03,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16,0x33,0x01,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x01,0xff,0x33,0x04,0x80,0x00,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01, +0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39,0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x13,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x0e,0x1b,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1d,0x27, +0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2,0x00,0x00,0x01,0x00,0xfc,0x04,0xc2,0x03,0xc4,0x05,0xf2,0x00,0x0d,0x00,0x11,0xb5,0x0a,0x04,0x00,0x07,0x0a,0x04,0x00,0x2f,0x33,0x2f,0xc9,0x01,0x2f,0x2f,0x31,0x30,0x01,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x26,0x27,0x33,0x16, +0x33,0x02,0x5f,0x4e,0x6c,0x09,0xa2,0x0f,0xc2,0x97,0x9c,0xbb,0x09,0xa2,0x12,0xae,0x05,0x36,0x67,0x55,0x8c,0xa4,0xa5,0x8b,0xbc,0x00,0x00,0x01,0x01,0x33,0x04,0x80,0x02,0xce,0x05,0xbe,0x00,0x12,0x00,0x26,0x40,0x10,0x01,0x01,0x06,0x11,0x00,0x00,0x09,0x06,0x0c,0x40,0x03,0x03,0x10,0x08,0x80,0x00,0x00,0x2f,0x1a,0xcc,0x32,0x39, +0x2f,0x1a,0xc9,0x01,0x2f,0xd9,0xc0,0x2f,0x2f,0x12,0x39,0x2f,0x31,0x30,0x01,0x37,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x33,0x03,0x02,0x0f,0x1a,0x41,0x35,0x39,0x47,0x76,0x1c,0x1f,0x1e,0x26,0x15,0x18,0x79,0x46,0x04,0x80,0x77,0x1f,0x46,0x48,0x58,0x3c,0x26,0x21,0x0e,0x09,0x6c,0xfe,0xc2, +0x00,0x02,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x06,0xa2,0x00,0x10,0x00,0x16,0x00,0x42,0x40,0x22,0x15,0x03,0x0c,0x7f,0x09,0x0e,0x7e,0x16,0x09,0x16,0x09,0x16,0x00,0x03,0x7f,0x04,0x10,0x7f,0x00,0x0a,0x0c,0x00,0x04,0x02,0x12,0x91,0x0c,0x03,0x0e,0x15,0x05,0x91,0x02,0x12,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd, +0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x10,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x21,0x06,0x02,0x07,0x21,0x04,0xad,0xfb,0xfd,0x9b,0x6f,0xa4,0xc2,0x90,0x02,0x13,0xc1,0xfe,0x97,0xfe,0x94,0x11,0xb6,0x78,0x02,0xab,0xfe,0x7f, +0x01,0x81,0xfe,0x7f,0x02,0x19,0x01,0x31,0x02,0xdb,0x01,0x11,0xed,0xfe,0xf8,0xfa,0xfe,0xfd,0xe7,0x06,0x83,0xf6,0xfd,0x7c,0xf0,0x00,0x00,0x02,0x00,0x12,0xfe,0x8b,0x04,0x23,0x05,0x0e,0x00,0x10,0x00,0x15,0x00,0x40,0x40,0x21,0x14,0x0c,0xed,0x09,0x0e,0x84,0x15,0x09,0x15,0x09,0x15,0x00,0x03,0xed,0x04,0x10,0xed,0x00,0x0a,0x0c, +0x00,0x04,0x02,0x12,0x95,0x0c,0x0f,0x0e,0x14,0x05,0x95,0x02,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x10,0xcd,0x32,0x10,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0xc4,0x31,0x30,0x01,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x11,0x35,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x23,0x02,0x03,0x21, +0x03,0x98,0xfd,0x06,0x8c,0x5c,0x88,0x81,0x90,0x01,0x84,0x98,0xfe,0xc4,0xe3,0x20,0xc9,0x01,0xcc,0xfe,0x8b,0x01,0x75,0xfe,0x8b,0x02,0x00,0xcf,0x01,0xad,0x01,0x15,0xf2,0xfe,0xf2,0xfc,0x8b,0xfe,0x00,0x04,0xea,0xfe,0x4d,0xfe,0xc9,0x00,0x00,0x01,0x00,0x79,0xfe,0x29,0x03,0xde,0x05,0xb2,0x00,0x22,0x00,0x28,0x40,0x15,0x22,0x16, +0x7d,0x0b,0x11,0x1d,0x7d,0x05,0x11,0x16,0x05,0x00,0x04,0x0e,0x02,0x91,0x20,0x13,0x91,0x0e,0x04,0x00,0x3f,0xed,0x2f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x02, +0x15,0x14,0x04,0x23,0x22,0x27,0x79,0xb7,0xca,0x93,0xa1,0x87,0xc8,0xbf,0xa5,0x01,0x0f,0xe3,0xa5,0x90,0x9e,0xa8,0x88,0xa9,0xa3,0x95,0x98,0x9b,0x48,0xfe,0xf6,0xf4,0xcc,0x9b,0xbf,0x81,0xa4,0x94,0x7d,0xbf,0x8b,0x83,0xff,0x9e,0xd4,0xff,0x33,0xbd,0x58,0xa9,0x89,0x7f,0xd0,0x5e,0x61,0xa0,0xb7,0x76,0xe7,0xfd,0x52,0x00,0x00,0x01, +0x00,0x67,0xfe,0x29,0x03,0x0f,0x04,0x18,0x00,0x23,0x00,0x29,0x40,0x16,0x23,0x18,0x83,0x0c,0x13,0x1e,0x83,0x06,0x13,0x18,0x06,0x00,0x04,0x10,0x03,0x95,0x21,0x1b,0x15,0x95,0x10,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0xc4,0x31,0x30,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x26, +0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x67,0x3d,0x9b,0x50,0x64,0x74,0x6d,0x7d,0x8e,0x85,0x61,0xb3,0x74,0x8e,0x60,0x72,0x88,0x63,0x71,0x62,0x76,0xa0,0x85,0xda,0xbb,0x9b,0x77,0xea,0x2e,0x35,0x7c,0x74,0x5d,0x93,0x4b,0x53,0xd5,0x8d,0x70, +0xb3,0x62,0x2e,0xa6,0x4a,0x81,0x72,0x63,0x90,0x48,0x63,0xc3,0x83,0xb5,0xd9,0x3d,0x00,0x01,0x00,0x60,0xff,0xe8,0x08,0x9a,0x05,0xb2,0x00,0x34,0x00,0x72,0x40,0x3e,0x28,0x7d,0x1d,0x2b,0x08,0x7d,0x06,0x15,0x2f,0x03,0x7e,0x04,0x2c,0x04,0x22,0x18,0x1d,0x15,0x04,0x33,0x32,0x32,0x33,0x04,0x15,0x1d,0x18,0x22,0x07,0x0e,0x34,0x0e, +0x33,0x2f,0x02,0x2f,0x02,0x06,0x18,0x92,0x2b,0x0f,0x04,0x22,0x2d,0x19,0x19,0x04,0x31,0x2d,0x03,0x20,0x92,0x25,0x04,0x12,0x92,0x0c,0x13,0x00,0x04,0x12,0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12,0x39,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f, +0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xcd,0xed,0xc4,0x10,0xed,0x31,0x30,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x11,0x33,0x11, +0x33,0x01,0x33,0x01,0x01,0x07,0xb0,0xfd,0xd7,0x2b,0xa8,0xfe,0x9d,0x91,0x7c,0xed,0xa2,0xf6,0x81,0x55,0xc7,0x61,0x9e,0xb4,0xfe,0x8b,0x95,0x89,0x9f,0xaf,0x94,0x7c,0xb9,0xa5,0xa3,0xc9,0xcc,0xea,0x54,0x45,0x01,0x9d,0xa8,0x2b,0x02,0x17,0xd1,0xfd,0xa1,0x02,0x8a,0x02,0xa0,0xfd,0x60,0x02,0xa0,0x5f,0xab,0x80,0xc3,0x6b,0x54,0xb6, +0x40,0x3b,0x96,0x7f,0x01,0x14,0x8b,0x8c,0x7c,0x6f,0x7f,0x71,0xaa,0x58,0xbf,0xa1,0x64,0x9a,0x29,0x02,0x6f,0xfd,0x91,0x02,0x6f,0xfd,0x59,0xfd,0x0d,0x00,0x00,0x01,0x00,0x50,0xff,0xe7,0x07,0x39,0x04,0x19,0x00,0x31,0x00,0x6f,0x40,0x3c,0x30,0x1d,0x84,0x13,0x20,0x00,0x84,0x0b,0x24,0x2d,0x84,0x2e,0x21,0x2e,0x0e,0x13,0x0b,0x2e, +0x28,0x27,0x27,0x28,0x2e,0x0b,0x13,0x0e,0x06,0x05,0x29,0x18,0x05,0x28,0x2c,0x24,0x24,0x2c,0x30,0x0e,0x95,0x20,0x06,0x2e,0x18,0x0f,0x0f,0x22,0x2a,0x2e,0x15,0x26,0x22,0x0f,0x16,0x95,0x1b,0x10,0x09,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0xed,0x32,0x32,0x33,0x11,0x12, +0x39,0x01,0x2f,0x33,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xed,0xcd,0x10,0xfd,0xc4,0x31,0x30,0x01,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x16,0x33,0x20,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x21,0x11,0x33,0x11, +0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11,0x23,0x11,0x21,0x16,0x03,0x3b,0xe0,0xc8,0xde,0x65,0x3a,0xab,0x54,0x01,0x0f,0xfe,0xd7,0x65,0x60,0x84,0x81,0x76,0x6a,0x95,0x96,0xa1,0x97,0x01,0x76,0x35,0x2c,0x01,0x36,0xa4,0x2a,0x01,0x88,0xd7,0xfe,0x29,0x01,0xfc,0xe6,0xfe,0x62,0x2a,0xa4,0xfe,0xf6,0x5e,0x01,0x19,0x8c,0xa6,0x36, +0xa1,0x23,0x28,0xac,0xaa,0x8b,0x4f,0x53,0x46,0x51,0x4b,0x99,0x3e,0xfe,0xed,0x3f,0x53,0x20,0x01,0xac,0xfe,0x54,0x01,0xac,0xfe,0x16,0xfd,0xea,0x01,0xc9,0xfe,0x37,0x01,0xc9,0x40,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x06,0xc6,0x05,0x9a,0x00,0x20,0x00,0x38,0x40,0x1c,0x19,0x7e,0x16,0x14,0x14,0x00,0x0f,0x7e,0x0c,0x20,0x7e,0x1d, +0x00,0x1b,0x11,0x91,0x03,0x01,0x05,0x0d,0x09,0x09,0x1e,0x17,0x0d,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12,0x39,0x2f,0x33,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x27,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35, +0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x06,0x1e,0xc3,0xa9,0xc3,0x5b,0x68,0x79,0x7c,0x41,0x9f,0xb1,0xa8,0xc9,0x4d,0xba,0x4d,0x09,0xa8,0xc9,0x96,0xb5,0xa8,0x02,0x85,0x79,0x95,0x3f,0x36,0x20,0xc1,0xad,0x02,0x20,0xfd,0xf2,0xec,0x42,0x32,0x2f,0x3c,0x02,0x1b,0xfd,0xed,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x00,0x01, +0x00,0x98,0x00,0x00,0x06,0x3b,0x04,0x00,0x00,0x20,0x00,0x3c,0x40,0x1e,0x19,0xef,0x14,0x16,0x14,0x16,0x14,0x00,0x0f,0x84,0x0c,0x20,0x84,0x1d,0x00,0x1b,0x11,0xec,0x04,0x01,0x07,0x0d,0x0a,0x0a,0x1e,0x17,0x0d,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x33,0x33,0x39,0x2f,0x12,0x39,0x39,0x33,0xed,0x32,0x01,0x2f,0x33,0xed,0x2f,0xed,0x12, +0x39,0x39,0x2f,0x2f,0x10,0xed,0x31,0x30,0x21,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x14,0x33,0x32,0x36,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x05,0x98,0x46,0x9a,0x5a,0x60,0x8d,0x22,0x90,0x98,0x49,0xfe,0xba,0xa4,0xb4,0x59,0x98,0x43,0x0c,0xa3,0xb5,0x8b,0x9d, +0xa3,0x01,0x9c,0x27,0x3b,0x43,0x3c,0x4f,0x30,0x01,0x6c,0x01,0x5a,0xfe,0xaf,0xe2,0x38,0x24,0x32,0x4b,0x01,0x5a,0xfe,0xae,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x02,0x00,0x0f,0xfe,0x38,0x05,0xda,0x05,0x9a,0x00,0x29,0x00,0x2f,0x00,0x4c,0x40,0x27,0x2e,0x13,0x7f,0x14,0x08,0x1b,0x7e,0x29,0x2f,0x1e,0x7f,0x0e,0x2f,0x0e,0x2f,0x0e, +0x05,0x14,0x21,0x24,0x7f,0x05,0x2b,0x91,0x19,0x03,0x21,0x09,0x08,0x08,0x03,0x27,0x2e,0x1b,0x15,0x91,0x14,0x12,0x12,0x00,0x3f,0xcd,0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35, +0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x12,0x12,0x13,0x21,0x11,0x33,0x32,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x21,0x06,0x02,0x07,0x21,0x04,0x2a,0x24,0x60,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3b,0x42,0x3c,0x40,0xfb,0xf0,0x9b,0x6f,0x92,0xc7,0x0d,0x02, +0xa3,0x47,0xf9,0x36,0x28,0x32,0x3f,0x85,0x77,0x68,0x4b,0x4c,0xfe,0x94,0x0f,0xb1,0x7f,0x02,0xab,0xfe,0xc7,0x0e,0x12,0x43,0x3a,0x69,0x01,0x21,0x1b,0x1f,0x19,0xfe,0x7f,0x02,0x19,0x01,0x0a,0x02,0xc6,0x01,0x32,0xfa,0xec,0xa6,0x33,0x41,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x06,0xb0,0xef,0xfd,0x83,0xfe,0x00,0x00,0x02,0x00,0x12, +0xfe,0x38,0x04,0xcb,0x04,0x00,0x00,0x2a,0x00,0x30,0x00,0x54,0x40,0x0a,0x2f,0x13,0xed,0x14,0x08,0x1c,0x84,0x2a,0x30,0x1f,0xb8,0x01,0x2e,0x40,0x09,0x0e,0x30,0x0e,0x30,0x0e,0x05,0x14,0x22,0x25,0xb8,0x01,0x2e,0x40,0x12,0x05,0x2c,0x95,0x1a,0x0f,0x22,0x09,0x08,0x08,0x03,0x28,0x2f,0x1c,0x15,0x95,0x14,0x12,0x15,0x00,0x3f,0xcd, +0xed,0x32,0x32,0xc4,0x32,0x39,0x2f,0x33,0x33,0x3f,0xed,0x01,0x2f,0xfd,0xcd,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xc4,0xfd,0xc4,0x10,0xfd,0xc4,0x31,0x30,0x01,0x16,0x16,0x33,0x32,0x35,0x34,0x23,0x23,0x35,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x23,0x11,0x33,0x36,0x12,0x35,0x35,0x21,0x11,0x33,0x32,0x15, +0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x03,0x23,0x06,0x02,0x07,0x21,0x03,0x1b,0x17,0x6d,0x1e,0x7d,0x89,0x47,0x20,0x20,0x3a,0x43,0x3c,0x36,0xfc,0xe9,0x8c,0x5b,0x80,0x8a,0x02,0x14,0x34,0xf9,0x36,0x28,0x30,0x41,0x87,0x75,0x68,0x4b,0x35,0xe3,0x0a,0x73,0x6d,0x01,0xcd,0xfe,0xc7,0x0a,0x16,0x43,0x3a,0x69,0x01, +0x20,0x1c,0x1f,0x19,0xfe,0x8b,0x02,0x00,0xb6,0x01,0xc8,0xea,0x0d,0xfc,0x87,0xa7,0x34,0x40,0x0b,0x0c,0x45,0x34,0x4e,0x56,0x1a,0x05,0x23,0xbc,0xfe,0x80,0xae,0x00,0x00,0x01,0x00,0x29,0xfe,0x66,0x05,0x3d,0x05,0x9a,0x00,0x1e,0x00,0x39,0x40,0x1d,0x13,0x0b,0xad,0x0c,0x1e,0x1e,0x05,0x0e,0x18,0x7d,0x11,0x05,0x0a,0x91,0x13,0x13, +0x0c,0x12,0x0e,0x91,0x0f,0x03,0x00,0x0c,0x02,0x91,0x1c,0x0c,0x12,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0x33,0xe4,0x32,0x31,0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x04,0x12,0x15, +0x14,0x02,0x06,0x23,0x22,0x27,0x01,0xc8,0xa2,0x9c,0xba,0xcd,0x76,0xda,0x8d,0x42,0xa8,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x4a,0xc1,0x01,0x26,0x9e,0x89,0xff,0xab,0xaa,0x98,0x96,0x6c,0xde,0xcc,0x94,0xe8,0x7e,0xfd,0x5e,0x05,0x02,0x98,0x98,0xfe,0x38,0xa2,0xfe,0xd6,0xc0,0xab,0xfe,0xf5,0x92,0x4c,0x00,0x00,0x01,0x00,0x1e,0xfe,0x66, +0x04,0x56,0x04,0x00,0x00,0x1d,0x00,0x39,0x40,0x1d,0x12,0x0a,0x84,0x1d,0x0b,0x0b,0x05,0x0d,0x16,0x83,0x10,0x05,0x09,0x95,0x12,0x12,0x0b,0x11,0x0d,0x95,0x0e,0x0f,0x00,0x0b,0x02,0x95,0x1a,0x0b,0x15,0x00,0x3f,0xd4,0xed,0x11,0x39,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xed,0x2f,0x12,0x39,0x2f,0xc4,0xed,0x32,0x31, +0x30,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x33,0x32,0x00,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x01,0x52,0x79,0x87,0xa5,0xb7,0xd9,0xbf,0x20,0xa4,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x42,0xf7,0x01,0x27,0x81,0xeb,0x9a,0x4c,0x6c,0x46,0xc0,0x4e,0xb9,0xab,0xb9,0xd7,0xfe, +0x1a,0x03,0x74,0x8c,0x8c,0xff,0x00,0xfe,0xde,0xfa,0x8e,0xe5,0x7f,0x16,0x24,0x00,0x00,0x01,0x00,0x29,0xff,0xe8,0x04,0x0c,0x05,0x9a,0x00,0x11,0x00,0x23,0x40,0x11,0x0c,0x7e,0x05,0x00,0x05,0x00,0x09,0x07,0x0b,0x07,0x91,0x08,0x03,0x0f,0x92,0x02,0x13,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31, +0x30,0x25,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x83,0x3c,0x57,0x95,0x95,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x52,0x56,0x44,0x29,0x01,0x19,0xa3,0xac,0x03,0xcb,0x98,0x98,0xfc,0x53,0x78,0x66,0x1d,0x00,0x01,0x00,0x1e,0xff,0xe8,0x03,0x29,0x04,0x00,0x00,0x10,0x00,0x23,0x40,0x11, +0x0b,0x84,0x04,0x00,0x04,0x00,0x08,0x06,0x0a,0x06,0x95,0x07,0x0f,0x0e,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x03,0x0c,0x34,0x58,0xfe,0xd2,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0x55,0x53, +0x45,0x29,0x01,0x19,0x01,0x50,0x02,0x3c,0x8c,0x8c,0xfd,0xdd,0x78,0x67,0x1d,0x00,0x00,0x01,0x00,0xae,0xfe,0x29,0x05,0xbd,0x05,0x9a,0x00,0x26,0x00,0x40,0x40,0x12,0x26,0x17,0x7e,0x14,0x14,0x0c,0x13,0x03,0x7f,0x10,0x21,0x1a,0x7f,0x0c,0x15,0x11,0x03,0x24,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05,0xb5,0x1e,0x17, +0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x01,0x2f,0xed,0x2f,0x33,0xed,0x32,0x12,0x39,0x2f,0xed,0xc4,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35, +0x34,0x36,0x33,0x21,0x15,0x01,0xd0,0x45,0x4e,0x88,0x8b,0x0f,0x01,0x32,0x93,0xb4,0x51,0x74,0x68,0xfc,0x6f,0xa8,0x02,0xe6,0xa8,0x63,0x68,0xff,0x00,0xfe,0xf0,0xfe,0x9a,0xd3,0xc6,0x8b,0x93,0x02,0x5a,0xd8,0x23,0x21,0x30,0x24,0x2c,0x51,0x4e,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x92,0x69,0xab,0xa1,0x56,0x63, +0x4e,0x5d,0x65,0x00,0x00,0x01,0x00,0x8f,0xfe,0x29,0x04,0xc6,0x04,0x00,0x00,0x24,0x00,0x44,0x40,0x10,0x11,0x84,0x0e,0x24,0x15,0x84,0x12,0x0e,0x12,0x0e,0x12,0x0a,0x03,0xed,0x1f,0x18,0xb8,0x01,0x2e,0x40,0x10,0x0a,0x22,0x00,0x00,0x0e,0x06,0x1c,0x1b,0x13,0x0f,0x0f,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x3f,0x33,0x3f, +0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x01,0x9a,0x3c,0x44,0x78, +0x6c,0xc3,0xc3,0xaf,0x72,0x60,0xfd,0x45,0xa4,0x02,0x0a,0xa4,0x61,0x6d,0xfb,0xfb,0xed,0xaa,0xaa,0x87,0x77,0x01,0xab,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x29,0xfe,0x9b,0x04,0x0c,0x05,0x9a,0x00,0x13, +0x00,0x31,0x40,0x19,0x00,0x7e,0x0a,0x05,0x13,0x7e,0x0c,0x0a,0x0c,0x0a,0x0c,0x10,0x0e,0x12,0x0e,0x91,0x0f,0x03,0x02,0x92,0x07,0x0b,0x92,0x00,0x12,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc4,0x10,0xed,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33, +0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0xcf,0x0a,0xa5,0x4c,0x32,0x38,0x52,0x9f,0xac,0x9f,0xfe,0x63,0x03,0xe3,0xfe,0x62,0xdb,0x20,0x92,0x18,0xc5,0xba,0x76,0x04,0x72,0x98,0x98,0xfa,0xfe,0x00,0x00,0x01,0x00,0x1e,0xfe,0x9b,0x03,0x29,0x04,0x00,0x00,0x13,0x00,0x2d,0x40,0x17,0x05,0x13,0x84,0x0c,0x0c,0x0a,0x10,0x0e,0x00,0x84, +0x0a,0x12,0x0e,0x95,0x0f,0x0f,0x02,0x95,0x07,0x0b,0xec,0x00,0x15,0x00,0x3f,0xed,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0xed,0xc6,0x2f,0x12,0x39,0x2f,0xfd,0xc4,0x31,0x30,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x35,0x33,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x01,0x53,0x0a,0xa4,0x44,0x2e,0x3d,0x45,0x9c,0xa6,0xa3, +0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xdb,0x20,0x93,0x17,0xc7,0xb8,0x76,0x02,0xe4,0x8c,0x8c,0xfc,0x8c,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x05,0xc5,0x05,0x9a,0x00,0x14,0x00,0x37,0x40,0x1c,0x0d,0x7e,0x06,0x0b,0x06,0x0b,0x00,0x08,0x14,0x7e,0x11,0x00,0x12,0x03,0x0c,0x08,0x91,0x09,0x0f,0x91,0x01,0x09,0x03,0x03,0x09,0x03,0x00,0x12, +0x00,0x3f,0x3f,0x39,0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x22,0x26,0x35,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x21,0x32,0x37,0x11,0x33,0x11,0x05,0x1d,0xf2,0xcb,0xc3,0xd7,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x04,0xc4,0xe7,0xa8,0x02, +0x85,0x79,0xc3,0xb0,0x01,0x85,0x96,0x98,0xfe,0x85,0xe7,0x6e,0x02,0x8c,0xfa,0x66,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0xae,0x04,0x00,0x00,0x13,0x00,0x37,0x40,0x1c,0x0c,0x84,0x05,0x0a,0x05,0x0a,0x00,0x07,0x13,0x84,0x10,0x00,0x11,0x0f,0x0b,0x07,0x95,0x08,0x0e,0xec,0x01,0x08,0x03,0x03,0x08,0x0f,0x00,0x15,0x00,0x3f,0x3f,0x39, +0x2f,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0x33,0xed,0x2f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x31,0x30,0x21,0x11,0x06,0x23,0x20,0x11,0x35,0x21,0x35,0x21,0x15,0x21,0x15,0x14,0x33,0x32,0x37,0x11,0x33,0x11,0x04,0x0b,0xba,0x9c,0xfe,0x9d,0xfe,0xcc,0x03,0x0b,0xfe,0xcd,0xca,0x9a,0xb1,0xa3,0x01,0x9c,0x62,0x01,0x6c,0xce,0x8c, +0x8c,0xc6,0xe1,0x56,0x01,0xdd,0xfc,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x04,0x81,0x05,0xb4,0x00,0x19,0x00,0x2c,0x40,0x16,0x0b,0x18,0x7e,0x19,0x11,0x7e,0x05,0x12,0x15,0x91,0x0b,0x19,0x0d,0x0d,0x02,0x12,0x19,0x12,0x07,0x91,0x02,0x04,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0xed,0x01,0x2f,0xc4,0xed,0x2f,0xed,0x32, +0x31,0x30,0x13,0x10,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11,0x23,0xa6,0x01,0xf2,0x63,0x61,0x5c,0x63,0xae,0xa1,0xea,0xc0,0xbf,0xca,0xa8,0xf5,0xb6,0xe0,0xa8,0x03,0xb4,0x02,0x00,0x17,0x9a,0x1d,0xba,0xca,0x88,0x7a,0xc5,0xaf,0xfd,0xe6,0x02,0x12,0xe8, +0x6e,0xfd,0x74,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x06,0x02,0x00,0x1d,0x00,0x29,0x40,0x15,0x0d,0x1c,0x84,0x1d,0x06,0x13,0x84,0x14,0x0d,0x10,0x14,0x1d,0x15,0x17,0x95,0x10,0x10,0x09,0x95,0x03,0x01,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x32,0x31,0x30,0x13,0x34,0x12,0x33,0x32, +0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x20,0x11,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x06,0x15,0x11,0x23,0xa6,0xf2,0xe5,0x86,0x82,0x3e,0x8c,0x3d,0xa4,0x90,0x04,0x75,0xdb,0x01,0x5a,0xa4,0xee,0x4d,0x83,0x4c,0xa4,0x03,0xe9,0xfc,0x01,0x1d,0x37,0x98,0x20,0x24,0xc3,0xc8,0x96,0xc2,0xfe,0x5f,0xfd,0x89,0x02, +0x4e,0x01,0x40,0x53,0x97,0x60,0xfd,0xbc,0x00,0x01,0x00,0xbc,0xfe,0x29,0x07,0xa5,0x05,0x9a,0x00,0x2a,0x00,0x54,0x40,0x1d,0x03,0x7f,0x25,0x17,0x7e,0x14,0x2a,0x1b,0x7e,0x18,0x25,0x14,0x18,0x18,0x14,0x25,0x03,0x0c,0x13,0x7e,0x10,0x1e,0x7f,0x0c,0x19,0x15,0x11,0x03,0x28,0xb8,0x01,0x05,0xb3,0x00,0x00,0x10,0x07,0xb8,0x01,0x05, +0xb6,0x22,0x1b,0x17,0x13,0x91,0x10,0x12,0x00,0x3f,0xed,0x32,0x32,0xd4,0xed,0x12,0x39,0x2f,0xed,0x3f,0x33,0x33,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x21,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11, +0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x04,0x21,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x03,0x47,0x45,0x4e,0x88,0x8b,0x0f,0x01,0xa3,0x93,0xb4,0x51,0x75,0x68,0xfa,0x88,0xa8,0x02,0x13,0xa8,0x02,0x12,0xa8,0x62,0x6a,0xff,0x00,0xfe,0xf0,0xfe,0x28,0xd2,0xc6,0x8b,0x93,0x02,0xcb,0xd8,0x23,0x21,0x30,0x24,0x2b, +0x53,0x4d,0x51,0x54,0x05,0x9a,0xfa,0xfe,0x05,0x02,0xfa,0xfe,0x05,0x02,0xfa,0xf8,0x22,0x91,0x6a,0xaa,0xa2,0x56,0x63,0x4e,0x5d,0x65,0x00,0x01,0x00,0xa6,0xfe,0x29,0x06,0x8f,0x04,0x00,0x00,0x28,0x00,0x51,0x40,0x16,0x03,0xed,0x23,0x15,0x84,0x12,0x28,0x19,0x84,0x16,0x23,0x12,0x16,0x16,0x12,0x23,0x03,0x0a,0x11,0x84,0x0e,0x1c, +0xb8,0x01,0x2e,0x40,0x12,0x0a,0x26,0x00,0x00,0x0e,0x06,0x20,0x1b,0x17,0x13,0x0f,0x0f,0x19,0x15,0x11,0x95,0x0e,0x15,0x00,0x3f,0xed,0x32,0x32,0x3f,0x33,0x33,0x3f,0xcd,0x12,0x39,0x2f,0xcd,0x01,0x2f,0xed,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0xc4,0x10,0xed,0x10,0xed,0x31,0x30,0x05,0x22,0x06,0x15,0x14,0x16,0x33, +0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x15,0x02,0x85,0x3c,0x44,0x78,0x6c,0x01,0xa1,0xc3,0xaf,0x72,0x60,0xfb,0x7c,0xa4,0x01,0x97,0xa4,0x01,0x98,0xa4,0x61,0x6d,0xfb,0xfb,0xfe,0x35,0xaa,0xaa,0x87, +0x77,0x02,0x89,0xd8,0x23,0x20,0x32,0x26,0x01,0x66,0x67,0x4c,0x59,0x04,0x00,0xfc,0x8b,0x03,0x75,0xfc,0x8b,0x03,0x75,0xfc,0x7b,0x1d,0x91,0x62,0x9e,0xa4,0x5c,0x62,0x4d,0x57,0x63,0x00,0x00,0x01,0x00,0x2b,0xff,0xea,0x04,0x1b,0x05,0x2f,0x00,0x1c,0x00,0x47,0x40,0x24,0x0f,0x07,0x84,0x08,0x0c,0x08,0x13,0x17,0x84,0x04,0x10,0x04, +0x08,0x04,0x08,0x04,0x00,0x0a,0x15,0x00,0x12,0x0e,0x16,0x06,0x0a,0x95,0x13,0x0f,0x0b,0x0f,0x08,0x15,0x1a,0x95,0x02,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0xc4,0x32,0x01,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x31,0x30,0x25,0x06,0x23,0x20,0x11,0x11,0x23, +0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x33,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0x1b,0x3a,0x5f,0xfe,0xf3,0xf6,0xa4,0xb0,0xb0,0xa4,0xf6,0xa4,0x01,0x01,0xfe,0xff,0x46,0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xfa,0x35,0xfe,0xd1,0xfa,0x35,0xfe,0xd1,0x8b,0xfd, +0xbe,0x67,0x58,0x22,0x00,0x04,0x00,0x32,0x00,0x00,0x04,0x37,0x05,0xb2,0x00,0x3f,0x00,0x48,0x00,0x51,0x00,0x5a,0x00,0xb2,0xb1,0x4f,0x2b,0xb8,0x01,0x04,0xb2,0x09,0x2c,0x35,0xb8,0x01,0x04,0xb2,0x58,0x46,0x26,0xb8,0x01,0x04,0xb4,0x51,0x15,0x27,0x3e,0x21,0xb8,0x01,0x04,0x40,0x0e,0x22,0x48,0x22,0x2c,0x58,0x27,0x22,0x22,0x27, +0x58,0x2c,0x04,0x00,0x55,0xb8,0x01,0x04,0x40,0x40,0x30,0x10,0x1d,0x7d,0x00,0x58,0x3e,0x4f,0x48,0x51,0x05,0x52,0x46,0x25,0x52,0x33,0x42,0x3b,0x3b,0x33,0x4b,0x37,0x37,0x1d,0x00,0x39,0x35,0x2d,0x2a,0x20,0x23,0x28,0x09,0x25,0x10,0x15,0x09,0x03,0x33,0x25,0x40,0x09,0x11,0x48,0x0f,0x33,0x1f,0x33,0x2f,0x33,0x03,0x25,0x33,0x25, +0x33,0x0d,0x27,0x22,0x2c,0x12,0x12,0x91,0x0d,0x04,0x00,0x3f,0xed,0x3f,0x33,0x33,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x2b,0x11,0x17,0x39,0x12,0x17,0x39,0x33,0x2f,0xc9,0x11,0x33,0x2f,0xc9,0x10,0xc9,0x10,0xc9,0x11,0x17,0x39,0x01,0x2f,0xfd,0xc4,0x2f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x10,0xc4,0x33, +0xed,0x32,0x10,0xed,0x10,0xc4,0xed,0x32,0x31,0x30,0x01,0x34,0x2e,0x02,0x27,0x2e,0x02,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x06,0x23,0x15,0x23,0x35,0x26,0x27,0x15,0x23,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32, +0x17,0x36,0x33,0x32,0x15,0x15,0x36,0x27,0x34,0x23,0x22,0x06,0x15,0x15,0x32,0x37,0x25,0x34,0x23,0x22,0x06,0x15,0x15,0x16,0x17,0x25,0x22,0x06,0x15,0x14,0x16,0x17,0x35,0x34,0x03,0x87,0x33,0x5a,0x7b,0x47,0x9e,0x83,0x43,0x82,0xe5,0x8b,0xd3,0x62,0x7f,0xc7,0x8d,0xa4,0x2f,0x66,0xa2,0xaa,0x88,0x4a,0x90,0x84,0x60,0x42,0x61,0x60, +0x64,0x40,0x60,0x3f,0x4b,0x3c,0x33,0x5b,0x17,0x2f,0x5a,0x59,0x1e,0x2f,0x5c,0x85,0x64,0xc4,0x4e,0x24,0x31,0x69,0x3a,0xfe,0xfd,0x4e,0x26,0x30,0x39,0x6b,0xfe,0xde,0x13,0x0f,0x22,0x1e,0x01,0x5e,0x3a,0x56,0x48,0x40,0x24,0x50,0x6f,0x84,0x56,0x74,0xae,0x5d,0x33,0xbd,0x58,0x76,0x62,0x3a,0x56,0x4c,0x50,0x55,0x71,0x8a,0x57,0x7d, +0x8b,0x1b,0x4c,0x3e,0x06,0x38,0x3a,0x05,0x0d,0x4c,0x68,0x1a,0x6d,0x49,0x33,0x3d,0x54,0x53,0x53,0x53,0xaa,0x53,0x36,0x0c,0x6b,0x3e,0x30,0x6b,0x0c,0x65,0x68,0x3d,0x34,0x55,0x0c,0x05,0xe8,0x26,0x15,0x23,0x46,0x11,0x6e,0x47,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x06,0x00,0x09,0x03,0x00, +0x2f,0xc4,0x01,0x2f,0xc4,0x31,0x30,0x37,0x01,0x23,0x27,0x05,0x17,0x13,0x27,0x35,0x01,0xe7,0x03,0x46,0xa8,0x68,0x01,0xcc,0x05,0x08,0x69,0xfc,0xb9,0xae,0x03,0x46,0x68,0x08,0x04,0xfe,0x33,0x69,0xac,0xfc,0xb8,0x00,0x00,0x01,0x00,0xe7,0x00,0x50,0x04,0xf6,0x04,0x5c,0x00,0x09,0x00,0x0d,0xb3,0x00,0x06,0x09,0x03,0x00,0x2f,0xc4, +0x01,0x2f,0xc4,0x31,0x30,0x01,0x01,0x37,0x17,0x25,0x27,0x03,0x17,0x07,0x01,0x04,0xf6,0xfc,0xb8,0xaa,0x69,0xfe,0x33,0x04,0x09,0x69,0x02,0x03,0x4a,0x03,0xfe,0xfc,0xb8,0x02,0x68,0x08,0x04,0x01,0xcd,0x68,0xaf,0x03,0x4a,0x00,0x00,0x02,0x00,0x00,0xff,0xb8,0x06,0x78,0x06,0x2e,0x00,0x09,0x00,0x13,0x00,0x2e,0x40,0x16,0x06,0x10, +0x06,0x10,0x00,0x0a,0x0a,0x15,0x30,0x00,0x01,0x00,0x03,0x0d,0x03,0x0d,0x09,0x3f,0x13,0x01,0x13,0x09,0x00,0x2f,0x2f,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x01,0x2f,0x5d,0x11,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x35,0x01,0x21,0x37,0x21,0x17,0x11,0x07,0x11,0x09,0x02,0x21,0x07,0x21,0x27,0x11,0x37,0x11,0x01,0x01,0xee,0xfe, +0x91,0xb3,0x01,0xfe,0x02,0xb3,0xfe,0x11,0x05,0xe8,0xfe,0x12,0x01,0x6f,0xb3,0xfe,0x02,0x02,0xb3,0x01,0xef,0x48,0x01,0xee,0xb3,0x02,0xfe,0x02,0xb3,0x01,0x73,0xfe,0x0f,0x05,0xe6,0xfe,0x12,0xb3,0x02,0x01,0xfe,0xb3,0xfe,0x8d,0x01,0xf1,0x00,0x03,0x00,0x83,0xff,0xee,0x03,0x31,0x05,0xb2,0x00,0x13,0x00,0x1b,0x00,0x2f,0x00,0x3a, +0x40,0x1d,0x1b,0x08,0x08,0x09,0x09,0x1c,0xaf,0x26,0x26,0x0c,0x00,0x84,0x17,0x17,0x31,0x0c,0x1b,0x0f,0x09,0x2b,0xb0,0x21,0x15,0x0c,0x0a,0x1a,0x95,0x0f,0x00,0x00,0x3f,0xfd,0x32,0xcc,0x3f,0xfd,0xce,0x11,0x39,0x01,0x2f,0x12,0x39,0x2f,0xed,0x11,0x39,0x2f,0xed,0x33,0x2f,0x33,0x11,0x33,0x31,0x30,0x01,0x14,0x07,0x0e,0x03,0x15, +0x07,0x23,0x03,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x01,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x13,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x03,0x31,0xcf,0x1e,0x38,0x2b,0x1a,0x03,0x87,0x10,0x5e,0x4c,0x99,0xa5,0x53,0x88,0x60,0x35,0xfe,0xae,0x57,0x59,0x65,0x55,0x0a,0x27,0x11,0x1e,0x28, +0x18,0x17,0x29,0x1e,0x11,0x12,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x04,0x5a,0xce,0xaf,0x1a,0x33,0x32,0x32,0x19,0x7f,0x03,0x80,0x20,0x52,0xb0,0x60,0x32,0x5a,0x7f,0xfe,0x78,0x4e,0x8f,0x50,0x58,0x73,0x0d,0xfd,0xe8,0xfd,0x50,0x16,0x28,0x1e,0x12,0x11,0x1e,0x28,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x29,0x00,0xff,0xff,0x00,0xac, +0xfe,0x1e,0x03,0x00,0x06,0x1e,0x00,0x26,0x00,0x5f,0x00,0x00,0x00,0x07,0x00,0x5f,0x01,0xc0,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x78,0x05,0x1c,0x05,0x23,0x00,0x23,0x00,0x45,0x00,0x15,0xb7,0x24,0x14,0x32,0x05,0x41,0x19,0x2b,0x0d,0x00,0x2f,0x33,0x2f,0x33,0x01,0x2f,0x33,0x2f,0x33,0x31,0x30,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x04,0x07,0x23,0x2e,0x05,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x33,0x3e,0x03,0x01,0x14,0x1e,0x04,0x17,0x3e,0x05,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x2e,0x03,0x23,0x22,0x0e,0x02,0x03,0xea,0x3b,0x6f,0x55,0x33,0x40,0x68,0x83,0x86,0x7d,0x2d,0x09,0x2d,0x7c,0x86,0x83,0x68,0x40,0x33,0x55,0x6f,0x3b,0x39,0x5b, +0x49,0x37,0x14,0x09,0x14,0x38,0x49,0x5b,0xfd,0x2b,0x34,0x54,0x69,0x6c,0x63,0x23,0x23,0x62,0x6b,0x68,0x53,0x34,0x1c,0x30,0x42,0x26,0x3a,0x5b,0x49,0x39,0x16,0x17,0x38,0x49,0x5c,0x39,0x26,0x42,0x30,0x1c,0x05,0x23,0x2b,0x57,0x84,0x5a,0x64,0xad,0x98,0x85,0x79,0x6f,0x35,0x35,0x6f,0x79,0x85,0x98,0xad,0x64,0x5a,0x84,0x57,0x2b, +0x1e,0x33,0x41,0x22,0x22,0x41,0x33,0x1e,0xfe,0xa0,0x50,0x8e,0x7e,0x6f,0x63,0x57,0x26,0x26,0x57,0x63,0x6f,0x7e,0x8e,0x50,0x3d,0x58,0x38,0x1a,0x2e,0x4b,0x5e,0x2f,0x2f,0x5e,0x4b,0x2e,0x1a,0x38,0x58,0x00,0x00,0x02,0x00,0x30,0x00,0x00,0x03,0x43,0x05,0x9a,0x00,0x1b,0x00,0x1f,0x00,0x21,0x40,0x0e,0x1c,0x00,0x0f,0x12,0x1d,0x0b, +0x01,0x0e,0x1e,0x1c,0x03,0x11,0x03,0x03,0x00,0x3f,0x2f,0x12,0x39,0x39,0x01,0x2f,0x33,0xcd,0x33,0x2f,0xcd,0x32,0x32,0x31,0x30,0x01,0x25,0x11,0x33,0x15,0x37,0x15,0x07,0x11,0x37,0x15,0x07,0x11,0x23,0x35,0x05,0x11,0x23,0x35,0x07,0x35,0x37,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x25,0x11,0x05,0x01,0x37,0x01,0x05,0x67,0xa0,0xa0, +0xa0,0xa0,0x67,0xfe,0xfb,0x67,0xa0,0xa0,0xa0,0xa0,0x67,0x01,0x05,0xfe,0xfb,0x03,0xff,0x8b,0x01,0x10,0xd9,0x55,0x98,0x55,0xfe,0x42,0x55,0x98,0x55,0xfe,0xda,0xef,0x8b,0xfe,0xef,0xda,0x55,0x98,0x55,0x01,0xbe,0x55,0x98,0x55,0x01,0x0e,0xfc,0xd3,0x8b,0x01,0xbe,0x8b,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e, +0x00,0x2c,0x00,0x3a,0x00,0x48,0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x7f,0x00,0x8c,0x00,0x1e,0x40,0x13,0x30,0x49,0x23,0x36,0x57,0x41,0x86,0x50,0x79,0x6e,0x2b,0x5d,0x80,0x68,0x0e,0x3b,0x0f,0x73,0x00,0x00,0x2f,0x32,0x2f,0x33,0x17,0x39,0x31,0x30,0x05,0x22,0x27,0x2e,0x02,0x27,0x26,0x35,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32, +0x17,0x16,0x16,0x17,0x16,0x15,0x14,0x06,0x07,0x0e,0x02,0x07,0x06,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x36,0x33,0x32,0x16,0x17,0x36,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x01,0x22,0x06,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x37,0x26,0x05,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, +0x37,0x26,0x26,0x35,0x34,0x03,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x37,0x06,0x23,0x22,0x26,0x13,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x01,0x32,0x36,0x35,0x34,0x26,0x27,0x16,0x15,0x14,0x06,0x07,0x16,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x03,0xff,0xa4,0x76,0x69, +0xb5,0x6e,0x05,0x6e,0x6e,0x08,0xe8,0xa1,0x76,0xa4,0xa2,0x79,0xa0,0xe6,0x0a,0x6f,0x3a,0x34,0x07,0x6d,0xb6,0x69,0x77,0x02,0x11,0x54,0x96,0x56,0x63,0xa4,0x24,0x5a,0x64,0x87,0xde,0x2d,0x1b,0x84,0x23,0xa4,0x62,0x53,0x95,0x58,0x1c,0x2a,0xe1,0x86,0x66,0xfe,0x27,0x83,0xbd,0x6f,0x5e,0x2d,0x51,0x88,0x48,0x3e,0xfe,0x44,0x5b,0x71, +0x53,0x93,0x59,0x46,0x3b,0x81,0xa0,0xf1,0x1b,0x54,0x92,0x59,0x61,0xa7,0x22,0x5a,0x63,0x88,0xde,0x3c,0x24,0x9d,0x5c,0x5c,0x9b,0x56,0x1b,0x2c,0xdf,0x87,0x60,0x01,0xd3,0x82,0xbd,0x6b,0x60,0x2c,0x9d,0x86,0x40,0x01,0xbb,0x5a,0x74,0xb9,0x86,0x43,0x3e,0x7f,0xa0,0x48,0x6c,0x05,0x6c,0xb8,0x67,0x76,0xa5,0xa4,0x78,0xa0,0xe8,0x08, +0x6c,0x6d,0x08,0xe7,0x9f,0x7b,0xa4,0x4f,0x92,0x39,0x6a,0xb4,0x6c,0x06,0x6b,0x03,0x16,0x54,0x95,0x58,0x70,0x5d,0x2d,0x9f,0x84,0x40,0x01,0xbd,0x5c,0x6f,0x55,0x95,0x54,0x47,0x3c,0x82,0xa0,0x01,0x0c,0xbb,0x85,0x61,0xa5,0x24,0x58,0x67,0x60,0xa7,0x75,0x13,0x1c,0x81,0x23,0xa6,0x61,0x54,0x94,0x58,0x1b,0x2a,0xe1,0x85,0x66,0xfe, +0xaa,0x3c,0x46,0x53,0x95,0x57,0x6f,0x5d,0x2d,0xa1,0xfe,0x86,0x5b,0x71,0x56,0x94,0x55,0x45,0x3e,0x83,0xa0,0xfe,0xf5,0xbe,0x80,0x61,0xa2,0x28,0x58,0x66,0x87,0xda,0x2e,0x1c,0x80,0x23,0xa2,0x65,0x82,0xbf,0x1b,0x2b,0xdd,0x86,0x6f,0x00,0x00,0x09,0x00,0xe6,0xff,0xb8,0x07,0x19,0x05,0xe7,0x00,0x1e,0x00,0x2c,0x00,0x3a,0x00,0x48, +0x00,0x56,0x00,0x64,0x00,0x72,0x00,0x80,0x00,0x8e,0x00,0x21,0x40,0x15,0x38,0x49,0x2f,0x29,0x32,0x57,0x43,0x88,0x50,0x7a,0x21,0x6a,0x5f,0x81,0x70,0x0f,0x07,0x73,0x16,0x3b,0x07,0x00,0x2f,0x33,0x2f,0x33,0x12,0x17,0x39,0x31,0x30,0x13,0x34,0x37,0x36,0x36,0x37,0x36,0x33,0x32,0x17,0x1e,0x02,0x17,0x16,0x15,0x14,0x07,0x06,0x06, +0x07,0x06,0x23,0x22,0x27,0x2e,0x02,0x27,0x26,0x26,0x37,0x14,0x17,0x36,0x36,0x33,0x32,0x17,0x26,0x26,0x23,0x22,0x06,0x06,0x13,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x25,0x22,0x07,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x17,0x16,0x15,0x14,0x06,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34, +0x26,0x13,0x06,0x06,0x23,0x22,0x27,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x03,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x05,0x32,0x37,0x26,0x26,0x35,0x34,0x37,0x06,0x06,0x15,0x14,0x16,0x16,0x25,0x26,0x35,0x34,0x36,0x37,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0xe6,0x6f,0x08,0xe6,0xa2,0x79,0xa2, +0xa4,0x76,0x68,0xb6,0x6e,0x05,0x6e,0x6e,0x08,0xe6,0xa3,0x76,0xa4,0xa2,0x77,0x68,0xb6,0x70,0x05,0x34,0x3a,0x67,0x1b,0x2d,0xde,0x87,0x64,0x5a,0x23,0xa6,0x62,0x57,0x95,0x54,0x84,0x56,0x66,0x86,0xe1,0x2a,0x1c,0x57,0x94,0x55,0x62,0xa4,0x02,0x0c,0x43,0x3e,0x49,0x87,0x51,0x2d,0x5e,0x6f,0xbe,0xf7,0x2d,0xa0,0x81,0x3b,0x46,0x57, +0x94,0x54,0x71,0xc3,0x2b,0xde,0x88,0x63,0x5a,0x23,0xa6,0x61,0x5a,0x92,0x53,0x82,0x5d,0x60,0x88,0xdf,0x2b,0x1b,0x56,0x9a,0x5d,0x5b,0x9d,0xfd,0xf5,0x43,0x40,0x84,0x9f,0x2c,0x5f,0x6c,0x57,0x95,0xfe,0xdb,0x2d,0xa0,0x7f,0x3e,0x43,0x55,0x93,0x57,0x74,0x02,0xcd,0xa4,0x7b,0x9c,0xe9,0x09,0x6d,0x6c,0x05,0x6e,0xb5,0x68,0x78,0xa4, +0xa5,0x76,0xa0,0xe8,0x08,0x6c,0x6b,0x05,0x6c,0xb6,0x69,0x39,0x92,0x50,0x42,0x40,0x85,0x9e,0x2d,0x5c,0x71,0x58,0x95,0x01,0x27,0x2c,0xa0,0x82,0x3c,0x47,0x54,0x94,0x56,0x70,0xdd,0x1c,0x14,0x75,0xa6,0x60,0x67,0x58,0x24,0xa6,0x60,0x85,0xbb,0x81,0x59,0x66,0x85,0xe1,0x2a,0x1b,0x57,0x93,0x56,0x61,0xa6,0xfe,0x74,0x81,0xa1,0x2d, +0x5f,0x6d,0x58,0x96,0x51,0x46,0xfe,0x41,0x2d,0xa0,0x83,0x3e,0x45,0x55,0x94,0x56,0x70,0xdc,0x1c,0x2d,0xda,0x88,0x66,0x58,0x27,0xa3,0x61,0x54,0x94,0x56,0x80,0x53,0x6f,0x86,0xdd,0x2b,0x1b,0x55,0x97,0x55,0x64,0xa4,0xff,0xff,0x00,0x37,0xfe,0x70,0x01,0x4b,0x04,0x00,0x02,0x26,0x00,0xd6,0x00,0x00,0x01,0x06,0x00,0xdf,0xf9,0x00, +0x00,0x0b,0xb6,0x01,0x00,0x12,0x04,0x02,0x03,0x25,0x01,0x2b,0x35,0x00,0x00,0x02,0xfd,0x33,0x00,0x00,0x02,0xcd,0x05,0x9a,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x21,0x37,0x21,0x11,0x21,0xfd,0x33,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0xfb,0x5e,0x05,0x9a,0xfa,0x66,0x7c,0x04,0xa2,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1, +0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x23,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x07,0x23,0x07,0x33,0x07,0x23,0x03,0x23,0x13,0x23,0x03,0x23,0x13,0x23,0x37,0x33,0x37,0x23,0x37,0x33,0x13,0x33,0x03,0x33,0x13,0x33,0x03,0x07,0x23,0x07,0x33,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xf6,0x19,0xd1, +0x32,0xe1,0x1a,0xdc,0x42,0x8d,0x41,0xc8,0x3f,0x8c,0x3f,0xd2,0x14,0xd4,0x31,0xde,0x17,0xde,0x3d,0x8d,0x3d,0xc9,0x3f,0x8a,0x3d,0xa2,0xc9,0x35,0xcb,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x0f,0x6e,0xf0,0x6b,0xfe,0xd9,0x01,0x27,0xfe,0xd9,0x01,0x27,0x6b,0xf0,0x6e,0x01,0x29,0xfe,0xd7,0x01,0x29,0xfe,0xd7,0x6e, +0xf0,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x00,0x01,0x11,0x23,0x11,0x06,0x06,0x07,0x06,0x06,0x07,0x35,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x36,0x36,0x37,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x04,0x62,0xae,0x16,0x31,0x1a,0x1c,0x3e,0x25,0x19,0x29,0x14,0x14, +0x28,0x14,0x13,0x27,0x13,0x15,0x29,0x15,0xfc,0x7a,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x04,0xb2,0xfb,0xfd,0x03,0x3f,0x0f,0x1c,0x0b,0x0b,0x13,0x09,0x8b,0x07,0x0e,0x07,0x08,0x11,0x08,0x0a,0x14,0x0b,0x0b,0x1a,0x0b,0x01,0x41,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03, +0x00,0x07,0x00,0x27,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x21,0x35,0x01,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x07,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x4a,0xfd,0x6f,0x01,0x3d,0x31,0x45,0x2c,0x13,0x10,0x28,0x42,0x32,0x49, +0x82,0x43,0x80,0xa9,0x45,0x73,0x53,0x2e,0x1f,0x3d,0x5b,0x3b,0xed,0x01,0xd6,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x20,0x84,0x01,0x23,0x2d,0x4a,0x46,0x4c,0x2f,0x15,0x38,0x33,0x23,0x3a,0x39,0x97,0x5c,0x2e,0x4e,0x65,0x37,0x3b,0x65,0x60,0x5f,0x34,0xd1,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89, +0x00,0x03,0x00,0x07,0x00,0x3e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x94, +0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd6,0x3a,0x95,0x48,0x21,0x4c,0x41,0x2b,0x29,0x49,0x63,0x3a,0x5d,0x58,0x34,0x57,0x3f,0x23,0x21,0x33,0x3c,0x1c,0x3b,0x82,0x35,0x36,0x81,0x49,0x3f,0x77,0x5c,0x37,0x73,0x64,0x31,0x5c,0x47,0x2a,0x3f,0x6c,0x8f,0x4f,0x50,0x92,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x4a, +0x9a,0x29,0x28,0x0e,0x25,0x40,0x31,0x31,0x45,0x2b,0x14,0x80,0x12,0x29,0x40,0x2e,0x2b,0x37,0x1f,0x0c,0x24,0x24,0x8e,0x1d,0x1d,0x1d,0x3c,0x5c,0x3f,0x64,0x80,0x17,0x05,0x26,0x3f,0x55,0x33,0x4a,0x70,0x4c,0x27,0x1b,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x12,0x00,0x15,0x00,0x00,0x13,0x11, +0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x23,0x11,0x23,0x11,0x21,0x35,0x01,0x33,0x11,0x33,0x21,0x11,0x01,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x83,0x88,0xae,0xfe,0x21,0x01,0xc4,0xc9,0x88,0xfe,0xca,0xfe,0xd7,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfb,0x2a,0xfe,0xfb,0x01,0x05,0x7f,0x02,0x79,0xfd,0x99,0x01, +0xac,0xfe,0x54,0x00,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2c,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x11,0x21,0x15,0x21,0x11,0x3e,0x02,0x32,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x94,0x06, +0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xd7,0x7b,0x7e,0x36,0x5c,0x43,0x26,0x2d,0x4b,0x64,0x37,0x33,0x88,0x02,0x41,0xfe,0x6c,0x0e,0x0c,0x09,0x0a,0x0c,0x4f,0x92,0x6e,0x42,0x47,0x75,0x98,0x52,0xa5,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0x3f,0x97,0x42,0x18,0x30,0x47,0x2f,0x30,0x43,0x2c,0x14,0x09,0x02,0x16,0x86, +0xfe,0xf8,0x01,0x01,0x01,0x21,0x48,0x73,0x52,0x56,0x7a,0x4f,0x25,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x26,0x23,0x22,0x0e,0x02,0x15,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x04,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0x31,0x5a,0x61,0x56,0x77,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76, +0x48,0xfe,0xe2,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e,0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfd,0x7c,0x2c,0x46,0x70,0x90,0x49,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0xfe,0x24,0x1c,0x34,0x4a,0x2e, +0x29,0x49,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b,0x31,0x17,0x00,0x03,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x0e,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x01,0x23,0x01,0x21,0x35,0x21,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfd,0xae,0xfe,0x1a,0xad,0x01,0xb4,0xfd,0x9a,0x03,0x45, +0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x05,0xfc,0x23,0x03,0x78,0x8b,0x00,0x00,0x05,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2b,0x00,0x3f,0x00,0x53,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x13,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfc,0x03,0x3b,0x70,0x56,0x34,0x5a,0x5e,0x34,0x53,0x3b,0x1f,0x3a, +0x62,0x7e,0x44,0x44,0x7e,0x62,0x3a,0x1f,0x3b,0x53,0x34,0x5e,0x5a,0x34,0x56,0x70,0x3b,0x1e,0x37,0x28,0x18,0x13,0x26,0x37,0x25,0x25,0x38,0x25,0x13,0x18,0x28,0x37,0x1e,0x28,0x44,0x32,0x1d,0x1a,0x30,0x46,0x2b,0x2c,0x45,0x30,0x1a,0x1d,0x32,0x44,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfe,0x2b,0x21,0x40,0x5e,0x3d, +0x50,0x86,0x23,0x17,0x3a,0x47,0x54,0x31,0x43,0x64,0x42,0x20,0x20,0x42,0x64,0x43,0x31,0x54,0x47,0x3a,0x17,0x23,0x86,0x50,0x3d,0x5e,0x40,0x21,0xfe,0x4a,0x0a,0x24,0x31,0x3c,0x21,0x13,0x2a,0x24,0x18,0x18,0x24,0x2a,0x13,0x21,0x3c,0x31,0x24,0xfe,0x11,0x19,0x2a,0x37,0x1e,0x24,0x39,0x30,0x2a,0x15,0x15,0x2a,0x30,0x39,0x24,0x1e, +0x37,0x2a,0x19,0x00,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x03,0x00,0x07,0x00,0x2d,0x00,0x41,0x00,0x00,0x13,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x01,0x16,0x33,0x32,0x3e,0x02,0x35,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x27,0x01,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x94,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0xfa,0xdb,0x5a,0x61,0x55,0x78,0x4a,0x22,0x03,0x12,0x30,0x3d,0x48,0x29,0x47,0x75,0x54,0x2e,0x31,0x5a,0x82,0x51,0x66,0x8e,0x57,0x27,0x19,0x32,0x4d,0x68,0x84,0x51,0x76,0x48,0x01,0x1e,0x26,0x4a,0x3b,0x25,0x1b,0x36,0x4e, +0x33,0x30,0x47,0x2f,0x18,0x21,0x36,0x45,0x05,0xf3,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xfa,0xc2,0x2c,0x46,0x70,0x8f,0x4a,0x1f,0x34,0x27,0x16,0x2f,0x53,0x72,0x42,0x4c,0x80,0x5c,0x33,0x50,0x81,0xa2,0x52,0x45,0x8c,0x82,0x71,0x55,0x30,0x20,0x01,0xdc,0x1c,0x34,0x4a,0x2e,0x28,0x4a,0x39,0x21,0x24,0x3a,0x49,0x26,0x34,0x4b, +0x31,0x17,0x00,0x04,0x00,0x00,0xfe,0xb9,0x07,0xd1,0x06,0x89,0x00,0x10,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x25,0x22,0x26,0x27,0x26,0x35,0x34,0x36,0x37,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x06,0x03,0x22,0x11,0x14,0x16,0x33,0x32,0x11,0x34,0x26,0x01,0x11,0x21,0x11,0x13,0x21,0x11,0x21,0x03,0xd1,0x55,0x7f,0x30,0x5d,0x2f, +0x32,0x62,0xb5,0x01,0x5c,0x2f,0x32,0x63,0xa0,0xc1,0x5f,0x5e,0xb9,0x58,0xfc,0x57,0x06,0xa7,0x96,0xf8,0x2f,0x07,0xd1,0x9e,0x40,0x40,0x7f,0xf5,0x87,0xc8,0x46,0x89,0xfd,0xfa,0x80,0xc2,0x44,0x86,0x03,0x8e,0xfe,0x6d,0xbd,0xbc,0x01,0x7f,0xc9,0xc4,0x01,0xc7,0xf9,0x5c,0x06,0xa4,0xf8,0xc6,0x07,0xd0,0xff,0xff,0x00,0x90,0x01,0xfa, +0x02,0xb2,0x02,0x7b,0x02,0x06,0x00,0x10,0x00,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26, +0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23, +0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x1e,0x05,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08, +0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20, +0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x01, +0xeb,0x13,0x1e,0x19,0x13,0x0c,0x07,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, +0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x4e,0x8b,0x81,0x7f,0x88,0x94,0x57,0xfe,0xd1,0x01, +0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9b,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34, +0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06, +0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x21,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x08,0xca,0x68, +0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e, +0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd5,0x02,0x84, +0xfe,0x1b,0x14,0x1e,0x14,0x0b,0x7d,0x0e,0x1c,0x2b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13, +0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x85,0x5b,0xa1,0xa7,0xb6,0x6e,0xfe,0xd1,0x01,0x29,0x76,0xcc, +0xc7,0xcf,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xc4,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26, +0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06, +0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16, +0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, +0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27, +0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xd3,0x11,0x1d,0x0c,0x11,0x1e,0x0e,0x21,0x30,0x1e,0x0e,0x1d,0x7d,0x1d,0x19,0x18,0x29,0x13,0x21,0x2f,0x1f,0x0d,0x1c,0x7d,0x1d,0x1e,0x3c,0x56,0x38,0x24,0x52,0x30,0x39, +0x4f,0x21,0x23,0x09,0x0d,0x09,0x05,0x7d,0x0e,0x1c,0x2b,0x1e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d, +0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xc4,0x49,0x80,0x3d,0x04,0x03,0x16,0x26,0x33,0x1d,0x43, +0x3e,0x47,0x45,0x41,0x33,0x07,0x06,0x16,0x26,0x33,0x1d,0x43,0x3e,0x47,0x45,0x31,0x56,0x3f,0x24,0x13,0x16,0x28,0x07,0x36,0x6d,0x74,0x7f,0x48,0xfe,0xd1,0x01,0x29,0x76,0xcc,0xc7,0xcf,0x7a,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b, +0x00,0xbd,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27, +0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x0e,0x05,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0, +0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f, +0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0x63,0x43,0x5f,0x40,0x24,0x14,0x05,0x22,0x39,0x46, +0x24,0x3c,0x61,0x2f,0x65,0x72,0x39,0x6f,0x59,0x38,0x16,0x35,0x59,0x43,0x40,0x56,0x32,0x15,0x23,0x57,0x92,0x6e,0x5c,0x6c,0x37,0x10,0x19,0x42,0x73,0x5b,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16, +0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20, +0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x03,0xbf,0x3f,0x65,0x53,0x40,0x2f,0x21,0x09,0x22,0x2a,0x18,0x08,0x10,0x0c,0x84,0x24,0x18,0x33,0x51,0x38,0x21,0x54,0x65,0x76,0x42,0x1e,0x36,0x37,0x3b,0x21,0x2b,0x5b,0x59,0x54,0x25,0x8d,0x1c,0x38,0x33,0x29,0x0c,0x14,0x20,0x2b,0x39,0x2d,0x00,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16, +0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0xb5,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17, +0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21, +0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39, +0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20, +0x20,0x2f,0x01,0xe9,0x39,0x7c,0x66,0x43,0x31,0x5b,0x84,0x52,0x51,0x7c,0x55,0x2b,0x1f,0x34,0x45,0x4b,0x4c,0x20,0x20,0x49,0x3f,0x29,0x21,0x3a,0x4c,0x2b,0x3b,0x55,0x37,0x1a,0x2f,0x45,0x4e,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e, +0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20, +0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0x24,0x44,0x84,0xc1,0x7d,0x4d,0x7f,0x5b,0x31,0x2d,0x51,0x73,0x48,0x54,0x92,0x7a,0x60,0x42,0x23,0x81,0x3c,0x6a,0x96,0x59,0x34,0x4a,0x2e,0x15,0x1b,0x32,0x46,0x2c,0x5f,0x98,0x68,0x38,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f, +0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xa1,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14, +0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x2e,0x07,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68, +0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c, +0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x02,0xb1,0x13,0x1e,0x16,0x11,0x0b,0x09,0x06,0x04,0x03,0x02,0xfe,0x15,0x02,0x64,0x04,0x04,0x06,0x0a,0x10,0x1b,0x27,0x1b, +0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb, +0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x52,0x84,0x72,0x63,0x61,0x62,0x71,0x83,0x51,0x43,0x85,0x9e,0x70,0xac,0x93,0x84,0x91,0xab,0x6e,0x00,0x00,0x09, +0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33, +0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10, +0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x02,0x02,0x03,0x23,0x26,0x0a,0x02,0x27,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e, +0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05, +0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0xce,0x50,0x8c,0x3e,0x05,0x41,0x8a, +0x50,0x7e,0x66,0xad,0x4d,0x77,0x29,0x54,0x57,0x5c,0x31,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d, +0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x05,0xba,0xd9,0xfe,0x34,0xf8,0xf8,0x01,0xcc,0xd9,0xfe,0xe6,0xfd, +0xc7,0xfe,0xd8,0x9b,0x01,0x27,0x01,0x1d,0x01,0x14,0x88,0x00,0x00,0x09,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0x9d,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34, +0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27, +0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36, +0x1a,0x02,0x37,0x33,0x12,0x12,0x13,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6, +0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27,0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e, +0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x06,0x51,0x8b,0x3e,0x05,0x41,0x8a,0x50,0x7f,0x34,0x5d,0x57,0x52,0x27,0x77,0x51,0xad,0x62,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e, +0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80,0x20,0x2e,0x2e,0x20,0x21, +0x2e,0x2f,0x01,0x49,0xda,0x01,0xcc,0xf7,0xf8,0xfe,0x34,0xd9,0x8e,0x01,0x1a,0x01,0x1e,0x01,0x21,0x94,0xfe,0xcb,0xfd,0xc9,0xfe,0xf1,0x00,0x0a,0x00,0x32,0xfe,0x7f,0x08,0xca,0x07,0x16,0x00,0x33,0x00,0x3f,0x00,0x44,0x00,0x50,0x00,0x6e,0x00,0x7a,0x00,0x7f,0x00,0x8b,0x00,0xaa,0x00,0xbf,0x00,0x00,0x01,0x14,0x07,0x06,0x07,0x16, +0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x21,0x20,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x27,0x26,0x35,0x34,0x37,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x21,0x20,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x26,0x23,0x22,0x07,0x07, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x34,0x27,0x26,0x27,0x06,0x23,0x22,0x27,0x21,0x06,0x23,0x22,0x27,0x06,0x07,0x06,0x15,0x10,0x01,0x36,0x33,0x32,0x17,0x21,0x36,0x33,0x32,0x17,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x27,0x21,0x16,0x33,0x32,0x25,0x34,0x26,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x23,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x03,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x08,0xca,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0xfe,0xed,0xfe,0xef,0xf0,0x21,0x28, +0x37,0x4e,0x03,0xb3,0x64,0x68,0x68,0x64,0xb3,0x03,0x4e,0x37,0x28,0x21,0xf0,0x01,0x13,0x01,0x11,0xf0,0x21,0x28,0x37,0x4e,0x03,0xb3,0x64,0x68,0xfe,0x4e,0x2e,0x20,0x20,0x2f,0x2e,0x21,0x20,0x2e,0xd6,0xd4,0xef,0xf1,0xd4,0x39,0x2f,0x20,0x20,0x2e,0x2e,0x20,0x21,0x2e,0x05,0xdb,0x5c,0x58,0x9f,0x1d,0x23,0x38,0x27,0xfc,0x28,0x27, +0x38,0x23,0x1d,0x9f,0x58,0x5c,0x01,0x53,0x1d,0x23,0x38,0x27,0x03,0xd8,0x27,0x38,0x23,0x1d,0x01,0x53,0xfe,0xbc,0x2e,0x20,0x21,0x2e,0x2f,0x20,0x20,0x2e,0xd6,0xfc,0x78,0xd4,0xf1,0xef,0xfd,0x13,0x2e,0x21,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x03,0x51,0x80,0x20,0x2c,0x1c,0x11,0x07,0x64,0x60,0x40,0x71,0x54,0x32,0x29,0x4d,0x70,0x48, +0x46,0x71,0x30,0x1a,0x1e,0x12,0x09,0x05,0x06,0x10,0x1e,0x32,0xe3,0x03,0x06,0x08,0x0c,0x08,0x1c,0x58,0x38,0x23,0x3c,0x2c,0x19,0x20,0x38,0x4d,0x2e,0x26,0x53,0x02,0xcb,0xf6,0xdc,0xd6,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f,0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd6,0xdc,0xf6,0xf6,0xdc,0xd5,0x9a,0x0e,0x0f,0x37,0x4d,0x16,0x7f,0x7f, +0x16,0x4d,0x37,0x0f,0x0e,0x9a,0xd5,0xdc,0x02,0x67,0x21,0x2e,0x2f,0x20,0x20,0x2e,0x2e,0x33,0x6d,0x6d,0x13,0x20,0x2f,0x2e,0x21,0x20,0x2e,0x2e,0xfc,0xc2,0xdb,0xc6,0xbe,0x8b,0x10,0x29,0x29,0x10,0x8b,0xbe,0xc6,0xdb,0xfe,0x3f,0xfe,0xd8,0x10,0x29,0x29,0x10,0x01,0x28,0xfe,0x64,0x20,0x2e,0x2e,0x20,0x20,0x2f,0x2e,0x0e,0x6d,0x80, +0x20,0x2e,0x2e,0x20,0x21,0x2e,0x2f,0x01,0x49,0x4e,0x97,0x8d,0x83,0x39,0x2f,0x2a,0x4d,0x72,0x48,0x40,0x7b,0x60,0x3b,0x40,0x4c,0x28,0x50,0x57,0x62,0x3b,0x41,0x91,0xa2,0xb5,0x02,0x43,0x22,0x34,0x2d,0x28,0x15,0x46,0x4e,0x1e,0x34,0x46,0x27,0x2c,0x45,0x30,0x19,0x13,0x00,0x01,0x00,0x53,0x00,0x00,0x04,0x2d,0x05,0x9a,0x00,0x1d, +0x00,0x70,0x40,0x25,0x1b,0x00,0x1a,0x01,0x1a,0x03,0x18,0x02,0x0f,0x19,0x1f,0x19,0x02,0x19,0x40,0x0f,0x12,0x48,0x19,0x19,0x15,0x17,0x04,0x16,0x05,0x16,0x14,0x07,0x15,0x06,0x06,0x00,0x05,0x10,0x05,0x02,0x05,0xb8,0xff,0xc0,0x40,0x1a,0x0f,0x12,0x48,0x05,0x05,0x02,0x01,0x60,0x15,0x70,0x15,0x02,0x0d,0x15,0x01,0x01,0x15,0x0d, +0x03,0x13,0x1c,0x03,0x08,0x91,0x13,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x11,0x33,0x33,0x2f,0x2b,0x5d,0x33,0x11,0x12,0x39,0x39,0x32,0x11,0x12,0x39,0x39,0x11,0x33,0x2f,0x2b,0x5d,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x31,0x30,0x01,0x25,0x15,0x05,0x15,0x25,0x15,0x05,0x11,0x33,0x32,0x37,0x36,0x37, +0x33,0x06,0x07,0x06,0x23,0x23,0x11,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x11,0x33,0x01,0xea,0x01,0x58,0xfe,0xa8,0x01,0x58,0xfe,0xa8,0x23,0xa3,0x68,0x66,0x0b,0xa4,0x14,0x93,0x90,0xee,0xc6,0xef,0xef,0xef,0xef,0xa8,0x04,0x1d,0x89,0x99,0x89,0x83,0x89,0x99,0x88,0xfe,0x2e,0x69,0x69,0xb9,0xfe,0x92,0x92,0x02,0x26,0x5e,0x98,0x5f, +0x83,0x5f,0x98,0x5f,0x01,0xc0,0x00,0x02,0x00,0xbb,0x00,0xf7,0x03,0xf5,0x04,0x66,0x00,0x0b,0x00,0x1b,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0x59,0x6e,0x8f,0x93,0x6a,0x6a,0x91,0x8d,0x6e,0x71,0xbe,0x6d,0x6f, +0xbf,0x6e,0x6e,0xbf,0x71,0x6e,0xbe,0x03,0xcc,0xa2,0x7a,0x77,0xa8,0xa7,0x78,0x78,0xa4,0x9a,0x73,0xcc,0x78,0x76,0xcd,0x75,0x76,0xcc,0x76,0x76,0xcd,0x74,0x00,0x01,0x01,0x01,0xfe,0xe6,0x03,0xae,0x05,0x9c,0x00,0x29,0x00,0x00,0x01,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x07, +0x27,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0xe6,0xe5,0x50,0x94,0x55,0x5b,0x98,0x57,0x48,0x86,0x9c,0xf0,0xa4,0x56,0x87,0x1c,0x1c,0x2a,0x6e,0xb5,0x75,0x9d,0xad,0x4f,0x55,0x49,0x45,0x59,0x50,0x47,0x02,0xf7,0x8f,0xd7,0x5b,0x92,0x52,0x58,0xa4,0x68,0x5f,0xb8,0xc0, +0xa7,0xd2,0xd2,0x5e,0x6a,0x68,0x52,0x27,0x3b,0x23,0x2c,0x4b,0x75,0xa9,0x67,0x9d,0xd7,0xab,0x5b,0x63,0x6c,0x60,0x49,0x42,0x7d,0x2c,0x00,0x01,0x00,0xaf,0xfe,0xdb,0x04,0x00,0x05,0x9c,0x00,0x21,0x00,0x00,0x01,0x02,0x03,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16, +0x16,0x15,0x14,0x02,0x07,0x07,0x16,0x12,0x17,0x03,0x7b,0xee,0x9a,0x46,0x74,0x42,0x4a,0x3c,0x7c,0x50,0x85,0x8d,0xc3,0x9a,0x88,0x96,0x31,0xb1,0xa4,0x8f,0xea,0x83,0xca,0xb0,0x01,0x72,0x9e,0x66,0xfe,0xdb,0x01,0x56,0x01,0x6c,0x02,0x47,0x72,0x3b,0x3b,0x4a,0xd2,0x2a,0xb4,0x7d,0x9c,0xc8,0x49,0x94,0x4c,0x85,0xe9,0x86,0xa9,0xfe, +0xfa,0x3e,0x03,0xed,0xfe,0xf6,0x89,0x00,0x00,0x01,0x00,0xc2,0xfe,0xde,0x03,0xee,0x05,0x88,0x00,0x2f,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x14,0x07,0x15,0x16,0x16,0x15,0x14, +0x06,0x07,0x15,0x16,0x16,0x17,0x03,0x42,0x5a,0x71,0x4b,0x81,0x9d,0x4c,0x39,0x3a,0x83,0x3a,0x5f,0x61,0x95,0x88,0xfe,0xc3,0x7a,0x8c,0x86,0x82,0xfe,0xd2,0x01,0x29,0x89,0xc3,0x65,0x84,0x62,0x74,0x98,0x7c,0x27,0x93,0x33,0xfe,0xde,0x8b,0x93,0x51,0x05,0x6b,0x51,0x38,0x48,0x57,0x52,0x19,0x85,0x5f,0x7b,0x83,0x97,0x66,0x5c,0x5a, +0x5f,0x96,0x53,0x98,0x64,0x9d,0x61,0x06,0x2b,0xc0,0x70,0x84,0xcc,0x24,0x04,0x29,0xb9,0x4c,0x00,0x02,0x00,0x6a,0xff,0xf3,0x04,0x46,0x05,0x88,0x00,0x25,0x00,0x31,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16, +0x16,0x17,0x3e,0x02,0x35,0x27,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x04,0x3f,0x07,0x4d,0x8b,0xa5,0x7e,0x69,0x56,0x98,0x59,0x9c,0xc4,0x65,0x80,0xae,0x89,0x4d,0x0a,0xa6,0x0e,0x41,0x77,0x96,0x92,0x77,0x42,0x04,0xfd,0xfe,0x64,0x57,0x52,0x6e,0x55,0x67,0x68,0x57,0x05,0x88,0x25,0x2e,0x66,0xba,0xb3,0x99, +0x74,0xc1,0x63,0x5d,0x91,0x50,0xb3,0x8f,0x5f,0xb9,0x79,0x94,0xa5,0xae,0x61,0x41,0x39,0x3e,0x32,0x51,0x92,0x8e,0x80,0x84,0x9a,0xa4,0x5b,0x44,0xfb,0xa6,0x4b,0x5a,0x63,0x4c,0x42,0x8f,0x5c,0x63,0x92,0x00,0x00,0x01,0x00,0x64,0xfe,0xdb,0x04,0xef,0x05,0x88,0x00,0x25,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x12,0x12,0x17,0x07,0x26,0x02,0x27,0x35,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x37,0x01,0x5a,0x2e,0x24,0x8f,0x7f,0x35,0x66,0x24,0x42,0x48,0x3e,0x48,0x5f,0x3a,0x54,0xb1,0x64,0x80,0x62,0xc9,0x25,0x37,0x8c,0x3f,0x82,0xc8,0x6f,0x2b,0x23,0x05,0x88,0xb2,0xe2,0x63,0xc9, +0xd5,0x30,0x2c,0x60,0x6b,0x4b,0x5f,0x7b,0x5c,0x5f,0x5b,0xfe,0xf9,0xfe,0x91,0x85,0x5d,0x86,0x01,0xcd,0x90,0x01,0x2f,0x35,0x91,0x01,0x04,0x9c,0x6f,0x01,0x11,0x7c,0x00,0x01,0x00,0x39,0xfe,0xde,0x04,0x77,0x05,0x88,0x00,0x36,0x00,0x00,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x07,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x03,0x0a,0xed,0x73,0x7c,0x9d,0x7c,0x45,0x37,0x2a,0x3c,0x39,0x52,0x73,0x45,0x57,0x92,0x7d,0x3f,0x7c,0x2f,0x60,0x5a,0x80,0xd5,0x77,0x3c,0x4b, +0x63,0x75,0x3b,0x64,0xa9,0x85,0xe0,0xca,0x7e,0x7e,0x43,0x96,0x7d,0x01,0x1a,0x02,0xe0,0x75,0x6d,0x7e,0xa2,0x13,0x56,0x4a,0x3f,0x49,0x8f,0x5a,0x57,0x35,0xad,0xbd,0x5c,0x44,0xd4,0x6d,0x1c,0x75,0xce,0x7d,0x51,0x87,0x3c,0x06,0x26,0xa8,0x6f,0x4d,0x6c,0x47,0x2a,0x96,0x22,0x4a,0x3f,0x5e,0x72,0x00,0x00,0x01,0x00,0x2e,0xff,0xf8, +0x04,0x82,0x05,0x88,0x00,0x29,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x23,0x22,0x00,0x02,0x11,0x33,0x10,0x12,0x12,0x33,0x32,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x37,0x03,0x8c,0x16,0x1d,0x78,0xaf,0x5e,0xa8,0x84,0x72,0xb0,0x60,0x7d,0xe2, +0x8f,0xcd,0xfe,0xea,0x83,0x9f,0x69,0xcd,0x93,0x95,0xb9,0x3e,0x6b,0x3e,0x3f,0x4c,0x43,0x75,0x46,0x1a,0x01,0xd4,0x05,0x62,0xae,0x67,0x89,0xb1,0x8b,0xfc,0x9c,0xb6,0xfe,0xe8,0x97,0x01,0x43,0x02,0x95,0x01,0xb8,0xfe,0x5a,0xfd,0xc3,0xfe,0xeb,0x01,0x05,0xce,0x6f,0xb1,0x64,0x59,0x4c,0x48,0x66,0x36,0x02,0x00,0x00,0x01,0x00,0x79, +0xff,0xa1,0x04,0x37,0x05,0x96,0x00,0x16,0x00,0x00,0x01,0x00,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x00,0x13,0x03,0x90,0xfd,0xef,0x52,0x19,0x95,0x73,0x6c,0xb9,0x6d,0x89,0x81,0xfe,0xfd,0x95,0x75,0xc1,0x6f,0x82,0x01,0x23,0xe9,0x05,0x39,0xfd,0x2c,0xc9,0x3c,0x3b,0x6c, +0x83,0x89,0xb4,0x57,0xc7,0xb4,0x64,0xb4,0x72,0x72,0x01,0x05,0x01,0xb2,0x01,0x42,0x00,0x01,0x00,0x81,0xfe,0xe6,0x04,0x2e,0x05,0x9c,0x00,0x27,0x00,0x00,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x1e,0x02,0x15,0x14,0x07,0x27,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x16, +0x15,0x14,0x06,0x07,0x01,0xfc,0xc5,0x6f,0x59,0x60,0x77,0x38,0x86,0xcc,0xd0,0x7a,0x38,0x56,0x87,0x36,0x29,0x54,0xb4,0xec,0xa0,0x49,0xcf,0xa2,0x6b,0xaa,0x5f,0x99,0x90,0x03,0x32,0x54,0xa6,0x60,0x76,0x84,0x63,0x40,0x7e,0xa8,0xd8,0xdd,0x99,0x74,0x37,0x6b,0x6b,0x52,0x4e,0x34,0x22,0x4f,0x69,0xbf,0xfa,0xd2,0xb0,0x5a,0xa5,0xce, +0x61,0xad,0x67,0x82,0xc5,0x36,0x00,0x02,0x00,0xfd,0x00,0x93,0x05,0x06,0x04,0xc9,0x00,0x0e,0x00,0x1e,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x06,0x04,0x66,0x55,0x9d,0x66,0x6c,0xa8,0x5e,0xba,0x96,0x67, +0xaf,0x64,0xfe,0x79,0x8c,0xdd,0x79,0x8c,0xfa,0x96,0x8e,0xe2,0x7d,0x93,0xff,0x02,0xc0,0x64,0xa4,0x5d,0x66,0xb7,0x6c,0x9b,0xcb,0x68,0xb6,0xfe,0x3f,0x8a,0xf4,0x8e,0x98,0xff,0x93,0x87,0xed,0x90,0x99,0xfe,0xfb,0x94,0x00,0x01,0x01,0x70,0xff,0xe7,0x04,0x94,0x05,0xb1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x17,0x16,0x16,0x15,0x14, +0x02,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x02,0x3e,0x12,0x5d,0x74,0xc3,0xb0,0x76,0xb2,0x6a,0x5f,0x73,0xa2,0x73,0x35,0x40,0x3b,0x3f,0x75,0x8e,0x9d,0x6a,0x3c,0x59,0x3d,0x37,0x47,0x22,0x23,0x04,0xd3,0x20,0x56,0x59,0x98, +0xfe,0x81,0x7a,0xfe,0xfa,0x86,0x5a,0x4b,0x57,0x74,0x10,0x4d,0x54,0x3d,0x77,0x7c,0x74,0x7f,0x6e,0x6a,0x35,0x44,0x55,0x3f,0x36,0x25,0x2d,0x11,0x00,0x01,0x00,0xb9,0xff,0xa7,0x05,0x4a,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x16,0x04,0x17,0x07,0x26,0x24,0x24,0x27,0x37,0x16,0x17,0x16,0x33,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x1e,0x05,0x04,0x88,0xcc,0xcf,0xc8,0x01,0x3c,0x59,0x68,0x4d,0xfe,0x8e,0xfe,0x5e,0xc8,0x10,0x31,0x85,0x3c,0x36,0x7e,0xf5,0x7c,0x41,0x75,0xa9,0x97,0x82,0x46,0x56,0x42,0x36,0x46,0x22,0x23,0x01,0x34,0x8a,0x94,0x8f,0x71,0x46,0x03,0x4b,0x7e, +0xc8,0x3f,0x06,0x4b,0xe2,0x83,0x69,0x71,0xfa,0x9c,0x12,0xa5,0x03,0x19,0x06,0x4b,0x74,0x49,0x36,0x48,0x31,0x24,0x20,0x3c,0x57,0x41,0x44,0x5b,0x42,0x2f,0x1d,0x38,0x12,0x06,0x07,0x14,0x24,0x37,0x52,0x72,0x00,0x01,0x00,0x7d,0x00,0x93,0x05,0x86,0x05,0x36,0x00,0x23,0x00,0x00,0x13,0x12,0x00,0x33,0x32,0x36,0x36,0x35,0x34,0x26, +0x27,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x24,0x02,0x03,0x37,0xf6,0x96,0x01,0x40,0xce,0x64,0x97,0x53,0x98,0x83,0x09,0x30,0x8d,0x5b,0x61,0x83,0xc7,0xa8,0x95,0xe1,0x79,0x7a,0xdf,0x8e,0xb4,0xfe,0xce,0xf2,0x4a,0x73,0x05,0x36,0xfd,0xd2,0xfe,0x25,0x6c,0xc0, +0x70,0x9e,0xe3,0x18,0x0e,0x3c,0x4a,0x5b,0x83,0x93,0x6a,0x80,0x9c,0x91,0xfe,0xfe,0x9f,0xa0,0xfe,0xf5,0x99,0xf7,0x01,0xf5,0x01,0x5e,0x59,0x00,0x00,0x03,0x00,0xff,0x00,0x4c,0x05,0x04,0x05,0xb1,0x00,0x1d,0x00,0x2b,0x00,0x38,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x26,0x27,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x14,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xf1,0x95,0x7e,0x8a,0xee,0x8f,0x8e,0xed,0x83,0x8f,0xa7,0x87,0x7a,0x7f,0xe0,0x80,0x82,0xd2,0x77,0x6e,0x7f,0x77,0x46,0x80,0x9b, +0x9d,0x84,0x47,0xd8,0xa0,0x94,0xbd,0xfd,0x6c,0x3f,0x76,0x9f,0x9c,0x7a,0xb7,0x89,0x84,0xa6,0x03,0x32,0x3f,0xa8,0x77,0x75,0xb3,0x60,0x62,0xb1,0x75,0x7e,0xaa,0x37,0x06,0x34,0x91,0x65,0x62,0x98,0x54,0x51,0x94,0x64,0x6b,0x92,0x33,0xfe,0x98,0x44,0x63,0x4a,0x31,0x28,0x44,0x61,0x47,0x71,0x91,0x85,0x03,0x0b,0x37,0x50,0x3d,0x2f, +0x2c,0x71,0x54,0x4c,0x62,0x5e,0x00,0x02,0x00,0x8c,0x00,0x01,0x05,0x78,0x05,0xb1,0x00,0x1f,0x00,0x32,0x00,0x00,0x01,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x15,0x07,0x0e,0x02,0x15,0x14,0x16,0x33,0x17,0x15,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x00,0x37,0x17,0x01,0x14,0x16,0x16,0x33,0x37,0x26,0x26,0x35,0x34,0x36, +0x37,0x26,0x26,0x35,0x35,0x37,0x06,0x02,0x03,0xb5,0x2f,0x84,0x5f,0x18,0x2e,0x34,0x95,0x70,0xcb,0x8f,0x48,0x7a,0x50,0x79,0xd2,0xd1,0xb0,0xfe,0xdb,0xa5,0xa5,0x01,0x2d,0xc2,0x95,0xfd,0x75,0x78,0xde,0x95,0x43,0x42,0x5a,0x83,0x97,0x70,0x82,0x02,0xd9,0xe3,0x05,0x5e,0x5c,0x47,0x5d,0x86,0x0d,0x1f,0x4b,0x06,0x49,0x7d,0x78,0x77, +0x40,0x4c,0x80,0x80,0x06,0x6b,0x95,0x01,0x01,0x95,0x91,0x01,0x4c,0x01,0x35,0x73,0x4d,0xfc,0xcc,0x76,0xb8,0x63,0x03,0x36,0xa2,0x4d,0x62,0xc2,0x6e,0x2a,0xaa,0x71,0x15,0x15,0xac,0xfe,0xac,0x00,0x00,0x01,0x00,0x1f,0xff,0xe5,0x05,0xe4,0x05,0xb1,0x00,0x2d,0x00,0x00,0x01,0x11,0x14,0x33,0x32,0x36,0x37,0x33,0x16,0x12,0x15,0x14, +0x02,0x06,0x23,0x20,0x00,0x03,0x37,0x33,0x12,0x21,0x32,0x36,0x36,0x35,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0x4d,0x23,0x68,0xbd,0x68,0x0e,0x66,0x73,0x87,0xff,0xae,0xfe,0xae,0xfe,0x39,0x78,0x77,0x06,0xfa,0x02,0x1c,0x7a,0xb6,0x62,0x34,0x47,0xc2,0x66,0x74, +0x85,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x04,0x89,0xfe,0xd2,0x73,0x93,0xa4,0x59,0xfe,0xf7,0x98,0xa6,0xfe,0xf9,0x93,0x02,0x35,0x02,0x51,0x64,0xfb,0xb5,0x6f,0xc6,0x7b,0x7a,0x6a,0x60,0x6e,0x8f,0x78,0x01,0x72,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x00,0x02,0x00,0xf5,0xff,0xe8,0x05,0x0e,0x05,0xb1,0x00,0x21,0x00,0x30, +0x00,0x00,0x01,0x06,0x23,0x22,0x24,0x27,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x03,0x15,0x11,0x17,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x01,0x32,0x37,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x06,0x15,0x17,0x16,0x03,0xbc,0x63,0x96,0x5c,0xfe,0xe1,0x1b,0x19,0x1f,0x62,0x9a,0xc7,0x73,0x1f,0x58,0x59, +0x3e,0x27,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x57,0x62,0xfe,0xfb,0xa2,0x63,0x29,0x37,0x3a,0x11,0x61,0xae,0x65,0x07,0x8c,0x02,0x74,0x1d,0x2a,0x13,0x1c,0x5b,0x2a,0x65,0xfc,0xb7,0x64,0x35,0x62,0x84,0xb2,0x74,0xfd,0xb2,0x4c,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0x01,0xe2,0x27,0x57,0x75,0xa0,0x63,0x2c,0x87,0xe9,0x83, +0x0a,0x25,0x00,0x02,0x00,0x3a,0xff,0xe8,0x05,0xca,0x05,0xb1,0x00,0x31,0x00,0x41,0x00,0x00,0x13,0x27,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x36,0x35,0x34,0x27,0x35,0x37,0x33,0x16,0x15,0x14,0x06,0x23,0x22,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x03, +0x35,0x25,0x22,0x07,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x36,0x35,0x27,0x26,0x26,0xe8,0x01,0x06,0x1a,0x1d,0x2a,0x46,0x58,0x41,0x56,0x63,0x78,0xa1,0x90,0x80,0x26,0x52,0x54,0x58,0x4c,0x0b,0x82,0x06,0x28,0xad,0x90,0x30,0x1b,0x0e,0x62,0x99,0xc7,0x71,0x1f,0x58,0x59,0x3e,0x27,0x01,0xca,0x9b,0x8b,0x29,0x37,0x3a,0x11,0x61,0xab, +0x65,0x07,0x3b,0x6f,0x04,0x71,0x52,0x01,0x11,0x42,0x2f,0x38,0x55,0x9e,0x8a,0xfe,0xa4,0x36,0x3c,0x18,0x12,0x3a,0x3b,0x1d,0x1f,0x06,0x62,0x4f,0x52,0x81,0x9b,0x06,0x19,0x2a,0x64,0xff,0xb6,0x63,0x35,0x62,0x84,0xb2,0x74,0x97,0x40,0x57,0x75,0xa0,0x63,0x2c,0x85,0xeb,0x83,0x0a,0x20,0x1e,0x00,0x01,0x00,0xaf,0xff,0xe7,0x05,0x54, +0x05,0xb1,0x00,0x3c,0x00,0x00,0x01,0x22,0x06,0x06,0x15,0x14,0x17,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x20,0x13,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x14,0x16,0x17,0x04,0x16,0x16,0x15,0x14,0x06,0x06,0x23, +0x2e,0x02,0x02,0x3f,0x41,0x6f,0x42,0x0c,0x0b,0x0f,0x4e,0x2d,0x41,0x5d,0x5f,0x4b,0x4d,0x90,0x56,0x6d,0xb2,0x6d,0x01,0x6e,0x4c,0x56,0x6a,0x55,0xac,0xff,0xfe,0xe1,0xe2,0x4f,0x44,0x39,0x48,0x22,0x23,0x01,0x94,0xa2,0x01,0x37,0xeb,0x7a,0x87,0xd5,0x85,0x23,0x4e,0x72,0x02,0x1f,0x45,0x7a,0x41,0x28,0x25,0x02,0x2a,0x36,0x66,0x44, +0x47,0x58,0x57,0x95,0x59,0x6a,0xc4,0x63,0xfd,0xec,0x23,0xa6,0x5f,0x42,0x6e,0x61,0x5f,0x69,0xcd,0x8a,0x54,0x5c,0x3e,0x37,0x25,0x2d,0x11,0x06,0x3f,0x6c,0x39,0x6e,0x8c,0xaf,0x6d,0x81,0xf5,0x7c,0xe5,0xe2,0x71,0x00,0x00,0x02,0x00,0xb7,0x00,0xe6,0x04,0x0d,0x04,0x23,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x0d,0xf8,0xb3,0xb3,0xf8,0xf0,0xbb,0xbb,0xf0,0xa0,0x93,0x78,0x77,0x94,0x97,0x74,0x73,0x98,0x02,0x83,0xae,0xef,0xef,0xae,0xbb,0xe5,0xe5,0xbb,0x71,0xab,0xad,0x6f,0x77,0xa5,0xa8,0x00,0x02,0x01,0x2a,0xff,0xba,0x03,0x99,0x05,0x1a, +0x00,0x15,0x00,0x1e,0x00,0x00,0x05,0x24,0x11,0x35,0x12,0x35,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x10,0x03,0x15,0x14,0x17,0x01,0x35,0x34,0x23,0x22,0x15,0x14,0x33,0x32,0x03,0x99,0xfe,0xeb,0x0a,0x25,0x25,0x7e,0x9c,0x9f,0x7c,0x7a,0x72,0x0a,0x72,0xfe,0xfa,0x4e,0x7b,0x78,0x21,0x46,0x24,0x01,0x11,0x0c,0x01, +0x1e,0xe4,0x08,0x9b,0x7d,0x74,0x99,0xb2,0xe0,0xfe,0xf0,0xfe,0x83,0x07,0x8e,0x0d,0x03,0x44,0x25,0xb8,0x6d,0x7c,0x00,0x01,0x00,0x7d,0xff,0xbe,0x04,0x46,0x04,0xee,0x00,0x20,0x00,0x00,0x25,0x07,0x26,0x27,0x26,0x27,0x06,0x23,0x22,0x35,0x34,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x36,0x33,0x32,0x00, +0x15,0x10,0x05,0x16,0x16,0x04,0x46,0x28,0x79,0x5b,0x19,0xa2,0x6c,0x6f,0xd9,0xe9,0x79,0x6b,0x6b,0x80,0xc3,0xa3,0xbc,0x8f,0x65,0x72,0xbe,0x80,0xe5,0x01,0x21,0xfe,0xf6,0x65,0x6d,0x58,0x9a,0x11,0x43,0x12,0x98,0x24,0x91,0x8e,0x45,0x38,0xc5,0x73,0xa4,0xc8,0x77,0x7c,0x57,0x44,0xfe,0xda,0xe6,0xfe,0xd1,0xad,0x63,0x3e,0x00,0x01, +0x00,0x8b,0xff,0x7b,0x04,0x39,0x05,0x04,0x00,0x2a,0x00,0x00,0x01,0x14,0x05,0x16,0x17,0x07,0x26,0x26,0x27,0x07,0x22,0x27,0x26,0x35,0x34,0x33,0x32,0x17,0x24,0x35,0x34,0x21,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x20,0x11,0x14,0x06,0x07,0x16,0x04,0x39,0xfe,0xdb,0x41,0x7d,0x29,0x72,0x96, +0x62,0x4c,0x8c,0x41,0x77,0xaa,0x6d,0xb3,0x01,0x20,0xfe,0xca,0xcd,0xeb,0x7c,0x94,0x82,0x49,0xa0,0xa8,0xbb,0x38,0xd6,0xc5,0x02,0x0b,0x57,0x3c,0x9b,0x01,0x8f,0xe9,0x41,0x2e,0x22,0x9a,0x1f,0x51,0x61,0x01,0x12,0x22,0x65,0x78,0x6e,0x14,0x8d,0xcb,0xa1,0x5a,0x53,0x7c,0x29,0x17,0x47,0x97,0x50,0xfe,0xa4,0x46,0x9b,0x24,0x77,0x00, +0x00,0x02,0x00,0xb4,0xff,0xba,0x04,0x10,0x05,0x1e,0x00,0x1c,0x00,0x29,0x00,0x00,0x01,0x02,0x01,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x00,0x03,0x33,0x16,0x16,0x17,0x3e,0x02,0x37,0x03,0x34,0x27,0x26,0x27,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0x10,0x30,0xfe,0xef,0x81,0x3d,0x1f, +0x5c,0x9b,0x53,0x54,0x9a,0x5c,0x1f,0x3e,0x80,0xfe,0xeb,0x2c,0xaa,0x22,0x76,0x6f,0x57,0x55,0x3d,0x18,0x5a,0x38,0x11,0x5e,0x72,0x3b,0x67,0x43,0x43,0x67,0x05,0x1e,0xfe,0x81,0xfe,0xdc,0x95,0x64,0x63,0x30,0x51,0x8f,0x55,0x55,0x8f,0x51,0x30,0x63,0x65,0x94,0x01,0x28,0x01,0x7b,0xb6,0xfa,0x76,0x5a,0x8d,0xba,0x85,0xfb,0xd1,0x3b, +0x50,0x18,0x6c,0x84,0x50,0x3b,0x38,0x5e,0x5c,0x00,0x00,0x01,0x00,0x79,0xff,0xf6,0x04,0x4b,0x04,0xe1,0x00,0x1a,0x00,0x00,0x05,0x23,0x11,0x06,0x23,0x22,0x24,0x27,0x37,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x36,0x37,0x11,0x33,0x04,0x4b,0xa0,0x7b,0xe0,0xa7,0xfe,0xf9,0x29,0x4f,0x39,0x41,0x23, +0xaa,0x5a,0x65,0x1f,0x9f,0x56,0x57,0xd7,0x2d,0xa0,0x0a,0x01,0x53,0x2a,0x8e,0x7e,0x69,0x66,0x92,0x50,0xde,0x27,0xac,0xa9,0xcd,0x98,0x31,0x37,0x22,0x16,0x02,0xea,0x00,0x01,0x00,0x9d,0xff,0xf6,0x04,0x26,0x06,0x30,0x00,0x2d,0x00,0x00,0x25,0x06,0x23,0x22,0x24,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x37,0x26,0x35,0x34,0x36,0x33, +0x17,0x15,0x27,0x22,0x06,0x15,0x14,0x17,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x20,0x15,0x14,0x16,0x33,0x32,0x37,0x04,0x26,0xb9,0xc0,0xe9,0xfe,0xd9,0xa0,0x9c,0xde,0xc2,0x1c,0x98,0x7a,0x69,0x69,0x50,0x22,0x68,0x88,0x23,0x75,0x7a,0xc1,0xa2,0xba,0x84,0xec,0xcb,0xfe,0x9d,0xe0,0x91,0xa3,0xa5,0x39, +0x43,0xc4,0xaf,0xa5,0x5c,0x5d,0xb1,0x98,0xb4,0x10,0x32,0x45,0x6a,0x7b,0x04,0xa7,0x03,0x1c,0x21,0x47,0x27,0x23,0x9c,0x1a,0x5f,0x61,0x52,0x6d,0xaf,0xa1,0x61,0x72,0x3b,0x00,0x00,0x01,0x00,0xdf,0xff,0xf0,0x03,0xe4,0x05,0x25,0x00,0x17,0x00,0x00,0x01,0x14,0x00,0x05,0x27,0x36,0x00,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17, +0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x03,0xe4,0xfe,0xba,0xff,0x00,0x70,0xe0,0x01,0x37,0x98,0x69,0x52,0x74,0x40,0x8c,0x53,0xc4,0xa1,0xb1,0xef,0x03,0x92,0xc2,0xfe,0x08,0xe8,0x71,0xcb,0x01,0xc9,0x9d,0x61,0x92,0x6b,0x46,0x52,0x6b,0x4e,0x75,0x96,0x8f,0xc2,0xe8,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0x29,0x00,0x18, +0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe,0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x02,0xbd,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x9f,0x2f, +0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x01,0x00,0x4b,0xff,0xf6,0x04,0x79,0x05,0xda,0x00,0x25,0x00,0x00,0x25,0x06,0x23,0x22,0x00,0x11,0x34,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x21,0x26,0x35,0x34,0x36,0x33,0x15,0x22,0x07,0x06,0x15,0x14,0x16,0x33,0x15,0x21,0x16,0x15,0x10,0x12,0x33,0x32,0x37,0x04,0x79,0x9b,0xa6,0xfb,0xfe, +0xcd,0x07,0xb8,0x83,0x40,0x5c,0x26,0x01,0xb5,0x11,0x8e,0xb1,0x44,0x17,0x45,0x46,0x34,0xfd,0x59,0x03,0xdd,0xb2,0x65,0x79,0x65,0x6f,0x01,0xd2,0x01,0x80,0x52,0x47,0x09,0x89,0x3f,0x77,0xa8,0x2c,0x37,0x7f,0x77,0xa0,0x06,0x11,0x3f,0x2c,0x37,0x9f,0x2f,0x6b,0xfe,0xc9,0xfe,0x85,0x4d,0x00,0x00,0x02,0x00,0xe1,0x01,0x13,0x04,0x33, +0x04,0xa4,0x00,0x0b,0x00,0x19,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x02,0x8b,0x73,0x99,0x9d,0x6f,0x70,0x9a,0x97,0x73,0x75,0xc3,0x70,0xed,0xbb,0x72,0xc6,0x72,0xe9,0x04,0x09,0xab,0x81,0x7f,0xb0,0xb0,0x7f,0x80,0xac,0x9b, +0x76,0xd3,0x7f,0xc8,0xfe,0xff,0x7a,0xd3,0x7c,0xce,0xfa,0x00,0x00,0x02,0x00,0xdc,0xff,0xe8,0x04,0x38,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x03,0x32,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0xbb, +0x02,0x50,0x4e,0x8c,0xb3,0xb2,0x87,0x92,0xb8,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0xa4,0x58,0x4c,0x55,0x49,0x47,0x5c,0x5b,0x03,0x39,0x02,0x15,0xb7,0x98,0x8c,0xb1,0xc9,0x9f,0xfc,0x38,0x67,0xac,0x28,0x2d,0x55,0x4b,0x03,0x3e,0x23,0x66,0x5e,0x6a,0x5e,0x49,0x4c,0x5e,0x00,0x01,0x00,0xa6,0xff,0xe8,0x04,0x6d,0x05,0xb2,0x00,0x26, +0x00,0x00,0x01,0x14,0x06,0x07,0x17,0x16,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x03,0xae,0xca,0xac,0x25,0x22,0x64,0x51,0x73,0x8c,0x3a,0x96,0x9f,0x90,0xb4,0x30,0x28,0x7d,0x79,0x68,0x47,0x94,0x38, +0x6e,0x81,0xbe,0x9f,0x62,0x33,0x1a,0x38,0x60,0xa7,0xed,0x7e,0x03,0xce,0xa3,0xf2,0x26,0x90,0x82,0x7e,0x47,0x9e,0x44,0xbc,0xc0,0xa3,0x05,0x4e,0x53,0x45,0x5d,0x9d,0x20,0x9c,0x6b,0x90,0xae,0x08,0x95,0x0e,0x7a,0xdb,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0xab,0x05,0xb2,0x00,0x2b,0x00,0x00,0x01,0x16,0x15,0x14,0x06,0x06,0x23,0x22, +0x24,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x03,0xd9,0xd2,0x7b,0xdd,0x89,0xb9,0xfe,0xd6,0x7f,0x7a,0x5e,0xf8,0x8d,0x97,0xb1,0x70,0x5e,0x36,0x40,0x58,0x4d,0x13,0x29,0x5d,0x6f,0x8e,0x96, +0x78,0x4d,0x3f,0x23,0x4d,0x57,0x88,0xc7,0x68,0x7f,0x02,0xf7,0x8d,0xe4,0x7d,0xbc,0x65,0xb6,0xc0,0x5f,0x94,0xa6,0x8e,0x7e,0x56,0x90,0x2f,0x10,0x0b,0x97,0x07,0x89,0x6a,0x6f,0x86,0x12,0x97,0x16,0x6a,0xbd,0x74,0xb0,0x6e,0x00,0x00,0x02,0x00,0x2d,0xff,0xe8,0x04,0xe7,0x05,0xbc,0x00,0x10,0x00,0x1b,0x00,0x00,0x13,0x01,0x01,0x17, +0x01,0x16,0x12,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x10,0x37,0x01,0x01,0x34,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x93,0x01,0xf5,0x01,0xed,0x72,0xfe,0x16,0x76,0x71,0xbd,0x9b,0x9f,0xbd,0xe6,0xfe,0x17,0x03,0x19,0x55,0x64,0xbf,0x67,0x50,0x54,0x6d,0x05,0xbc,0xfe,0x3a,0x01,0xc6,0x75,0xfe,0x3b,0x81,0xfe,0xff,0x92,0xae, +0xd8,0xe0,0xb0,0x01,0x1a,0xf6,0x01,0xbc,0xfc,0x35,0x5a,0xd5,0x6e,0xcb,0xd8,0x67,0x89,0x8a,0x00,0x01,0x00,0x0c,0xff,0xe8,0x05,0x07,0x05,0xb2,0x00,0x22,0x00,0x00,0x25,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x33,0x32, +0x37,0x11,0x33,0x04,0x2e,0x90,0x49,0x3f,0x83,0x35,0x42,0x44,0x6e,0x8b,0xda,0xe8,0x2c,0x2f,0x2d,0x1c,0x1f,0x28,0x41,0x76,0x88,0x8e,0x7c,0x97,0x76,0xa4,0x82,0x67,0xac,0x28,0x2d,0x55,0x4b,0xfb,0x35,0xed,0xdb,0x01,0xa2,0x29,0x36,0x05,0x96,0x0a,0x91,0x7f,0xfe,0x5e,0x87,0x90,0x66,0x03,0x4b,0x00,0x00,0x01,0x00,0x68,0xff,0xe8, +0x04,0xac,0x05,0xbb,0x00,0x36,0x00,0x00,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x2e,0x02,0x35,0x34,0x37,0x35,0x24,0x35,0x10,0x21,0x32,0x36,0x35,0x34,0x27,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x03,0x57, +0xb9,0x5f,0x66,0x81,0xb5,0xdb,0xc2,0xa2,0x89,0x86,0x60,0x2f,0x57,0x5b,0x3f,0x53,0xfa,0xb6,0xc1,0x62,0x44,0xfe,0xe9,0x01,0x9a,0x43,0x56,0x06,0x9d,0x04,0xac,0x82,0x87,0x7b,0x89,0x6c,0x2b,0x2d,0xed,0x03,0x1a,0x1c,0x0e,0x59,0x48,0x3d,0x3d,0x05,0x07,0x79,0x75,0x6d,0x86,0x28,0x8b,0x1b,0x38,0x27,0x50,0x06,0x05,0x3d,0x7b,0x62, +0x66,0x4a,0x02,0x45,0xdb,0x01,0x25,0x25,0x22,0x17,0x12,0x33,0x12,0x1e,0x49,0x5f,0x47,0x47,0x43,0x50,0x03,0x23,0x00,0x02,0x00,0x4d,0xff,0xe8,0x04,0xc6,0x05,0xb2,0x00,0x1d,0x00,0x29,0x00,0x00,0x13,0x12,0x12,0x33,0x32,0x36,0x12,0x35,0x34,0x27,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x06, +0x23,0x22,0x00,0x03,0x25,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe8,0x2c,0xcf,0xb5,0x76,0xb8,0x62,0x04,0x02,0x7d,0x9b,0xa1,0xc9,0xc0,0xa2,0x89,0xce,0x6d,0x89,0xfd,0xa2,0xf8,0xfe,0xde,0x37,0x02,0xb4,0x42,0x89,0x3d,0x21,0x83,0x52,0x5e,0x77,0x6d,0x03,0x23,0xfe,0x94,0xfe,0xcc,0x92,0x01,0x00,0x97,0x3d,0x3a, +0x6a,0xdb,0xb0,0xa5,0xc9,0xbf,0xfe,0x9b,0xed,0xc9,0xfe,0xc0,0xb0,0x01,0x70,0x01,0xa2,0x5a,0x47,0x44,0x91,0xa7,0x73,0x5f,0x6c,0x85,0x00,0x01,0x00,0xab,0xff,0xe8,0x04,0x69,0x05,0xbc,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x13,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x01,0x03,0xa7,0xfe, +0x6e,0x6f,0x5e,0x90,0x74,0xe9,0xab,0x89,0x7c,0xfd,0xa0,0xbb,0xea,0x6c,0x71,0x01,0x96,0x05,0x5f,0xfd,0xdf,0x97,0xd8,0x5a,0x6a,0x88,0x01,0x3b,0x57,0xd3,0xac,0xe3,0xaf,0x7c,0x01,0x07,0x98,0x02,0x27,0x00,0x00,0x02,0x00,0x7d,0xff,0xe8,0x04,0x96,0x05,0xb5,0x00,0x03,0x00,0x18,0x00,0x00,0x01,0x01,0x17,0x01,0x25,0x14,0x16,0x16, +0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x37,0x17,0x06,0x02,0x02,0x1d,0x01,0xb1,0x71,0xfe,0x52,0xfe,0x8a,0x72,0xc8,0x78,0x61,0xa7,0x51,0x70,0xce,0xf5,0xae,0xfe,0xef,0x97,0xdc,0xca,0x70,0xad,0xcb,0x02,0x68,0x01,0x8c,0x73,0xfe,0x75,0x9a,0x99,0xf0,0x84,0x49,0x43,0x73,0xb4,0xab,0x01,0x3c,0xcc,0xe6, +0x01,0x97,0x9d,0x75,0x84,0xfe,0x90,0x00,0x00,0x02,0x00,0xad,0x00,0xd7,0x04,0x7a,0x04,0x89,0x00,0x0f,0x00,0x1c,0x00,0x00,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0xad,0x81,0xe3,0x83,0x81,0xe3,0x82,0x84,0xe2,0x80,0x81, +0xe3,0x83,0x03,0x26,0xb9,0x86,0x84,0xbc,0xbb,0x85,0x55,0x94,0x56,0x02,0xb0,0x7d,0xda,0x82,0x80,0xdc,0x7d,0x7e,0xdc,0x7f,0x80,0xdc,0x7d,0x84,0xbc,0xbc,0x84,0x82,0xbd,0x54,0x96,0x00,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x15,0x00,0x21,0x00,0x00,0x01,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, +0x23,0x22,0x27,0x1e,0x02,0x17,0x07,0x24,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x15,0x69,0xb2,0x67,0x65,0xb1,0x65,0x64,0xb2,0x65,0x68,0x47,0x1b,0x8c,0xe0,0x84,0x56,0xfe,0xcc,0xfe,0xac,0x02,0x58,0x7d,0x59,0x55,0x7f,0x7e,0x56,0x59,0x7d,0x03,0xe5,0x6c,0xbe,0x6e,0x69,0xb1,0x62,0x64,0xae,0x68, +0x33,0x72,0xe3,0xc1,0x3c,0x86,0x92,0x02,0x27,0x01,0x66,0x5c,0x84,0x8b,0x63,0x58,0x7c,0x87,0x00,0x02,0x01,0x15,0xff,0xe2,0x04,0x12,0x05,0x7d,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x10,0x00,0x05,0x27,0x36,0x36,0x37,0x15,0x36,0x37,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x05,0x14,0x16,0x33,0x32,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x04,0x12,0xfe,0xaa,0xfe,0xcf,0x55,0x68,0xbc,0x44,0x74,0x2e,0x49,0x67,0x65,0xb1,0x65,0x67,0xb0,0x64,0x66,0xb3,0x69,0xfd,0xaa,0x7d,0x57,0x57,0x7d,0x7d,0x57,0x58,0x7c,0x03,0xe5,0xfe,0xb7,0xfd,0xd7,0x91,0x86,0x31,0x90,0x4f,0x01,0x91,0xb2,0x33,0x67,0xaf,0x64,0x64,0xb1,0x67,0x6e,0xbe,0x50,0x5d, +0x85,0x7d,0x57,0x62,0x8c,0x83,0x00,0x01,0x00,0x2f,0x00,0x00,0x04,0xf9,0x05,0x7d,0x00,0x33,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x02,0x5c,0x31,0x4f,0x27,0x5c,0x82,0x4c,0x36,0x17,0x1c,0x2e,0x27,0x33,0x52,0x77,0x80,0x5a,0x50,0x8b,0x4f,0x61,0xb4,0x74,0x4f,0x86,0x1d,0x2a,0x7f,0x4e,0xa1,0xb7,0xa4,0x69,0x46,0x4a,0x5c,0xa4,0x03,0xe7,0x3f,0x76,0x45,0xc8,0x91,0x6d,0x9d,0x26,0x19,0x16,0x2e,0x11,0x8d,0x04,0x87,0x57, +0x5f,0x88,0x77,0xc7,0x74,0x8f,0xe5,0x81,0x53,0x40,0x48,0x4b,0xc0,0xa2,0xfb,0xe5,0x04,0x1b,0x4f,0x77,0x8d,0x6d,0xfc,0x19,0x00,0x02,0x00,0x40,0xff,0xe5,0x04,0xe7,0x05,0xa9,0x00,0x17,0x00,0x23,0x00,0x00,0x01,0x34,0x36,0x37,0x26,0x03,0x37,0x12,0x05,0x36,0x13,0x17,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26, +0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x03,0x95,0x84,0xee,0xee,0xa6,0xa6,0x01,0x1e,0xc3,0xe1,0x99,0xd6,0xde,0x85,0x93,0x72,0xc3,0x6f,0x6f,0xc1,0x74,0x02,0xa0,0x8c,0x70,0x73,0x8a,0x94,0x69,0x67,0x95,0x01,0x60,0x87,0xfa,0x57,0x94,0x01,0x9b,0x42,0xfe,0xa2,0xb0,0x6d,0x01,0x87,0x43,0xfe,0x8d,0xa2, +0x64,0xf1,0x74,0x6e,0xb5,0x66,0x65,0xb1,0x72,0x5f,0xc7,0x3f,0x38,0xcf,0x6b,0x5c,0x84,0x8b,0x00,0x03,0x00,0x34,0xff,0xe5,0x04,0xf3,0x05,0x7d,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x00,0x13,0x34,0x36,0x37,0x26,0x03,0x37,0x16,0x17,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27, +0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x25,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0xdb,0x7d,0x6e,0xc8,0xca,0x86,0x80,0x8c,0x49,0x63,0xaa,0x61,0x5c,0xa4,0x60,0x89,0x5f,0x73,0xba,0x63,0x88,0x60,0x82,0x48,0x66,0xb0,0x64,0x65,0xb0,0x67,0x02, +0x50,0x50,0x43,0x7d,0x97,0x7c,0x57,0x56,0x7e,0x79,0x6d,0x4c,0x52,0x74,0x4f,0x45,0x6a,0x81,0x01,0x47,0x57,0xb0,0x47,0x59,0x01,0x24,0x65,0xe0,0x56,0x62,0x78,0x5d,0xa5,0x60,0x64,0xab,0x60,0x5d,0xb5,0x3b,0x2b,0xa3,0x89,0x65,0xaa,0x5c,0x7e,0x62,0x55,0x98,0x59,0x60,0xa4,0x42,0x54,0x9f,0x32,0x29,0x95,0x4b,0x53,0x74,0x62,0x03, +0x2c,0x56,0x7d,0x74,0x52,0x3f,0x8a,0x3d,0x38,0x89,0x00,0x01,0x00,0x55,0x00,0x00,0x04,0xd3,0x05,0x7d,0x00,0x2f,0x00,0x00,0x33,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x26,0x26,0x35,0x34,0x36,0x36, +0x33,0x32,0x16,0x16,0x15,0x10,0x00,0x21,0x55,0xcc,0x01,0x42,0x01,0xc7,0x56,0x94,0x56,0x57,0x7e,0x37,0x2e,0x43,0x4b,0xc1,0x86,0x61,0xc1,0x42,0x86,0x36,0x75,0x33,0x44,0x5c,0x76,0x3a,0x42,0x66,0xaf,0x66,0x81,0xe4,0x84,0xfd,0xd4,0xfe,0x7a,0xa7,0x01,0x9f,0x01,0x27,0x63,0xad,0x64,0x54,0x3c,0x17,0x39,0x1a,0x26,0x6b,0x3a,0x77, +0xa7,0x77,0x76,0x55,0x50,0x57,0x46,0x2f,0x3e,0x3d,0x1f,0x6e,0x3d,0x4f,0x8b,0x50,0x90,0xf5,0x8b,0xfe,0x94,0xfd,0xff,0x00,0x00,0x02,0x00,0x4f,0xff,0xe5,0x04,0xd8,0x05,0x7d,0x00,0x27,0x00,0x33,0x00,0x00,0x17,0x35,0x33,0x20,0x00,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x10,0x00,0x21,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x4f,0x95,0x01,0x5e,0x01,0xef,0x73,0xcc,0x72,0x69,0xb8,0x6b,0x09,0x27,0x7d,0x4a,0x77,0xa0,0xa0,0x70,0x6e,0xc4,0x71,0x99,0x01,0x06,0x92,0x9f,0x01,0x17,0xa2,0xfd,0xab,0xfe,0x61,0x79, +0x11,0x53,0x31,0x2e,0x3b,0x46,0x2a,0x30,0x50,0x1b,0x9c,0x01,0xad,0x01,0x32,0x66,0xb3,0x68,0x5e,0xa2,0x5e,0x18,0x26,0x43,0x54,0x9a,0x69,0x6b,0x98,0x75,0xc9,0x6f,0x86,0xec,0x88,0x92,0xfd,0x8e,0xfe,0x8b,0xfd,0xfa,0x02,0xcb,0x1b,0x24,0x40,0x28,0x26,0x36,0x4c,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x04,0x67,0x05,0x42,0x00,0x05, +0x00,0x00,0x13,0x21,0x15,0x21,0x11,0x23,0xc1,0x03,0xa6,0xfd,0x02,0xa8,0x05,0x42,0x99,0xfb,0x57,0x00,0x00,0x01,0x00,0xdc,0xff,0xe2,0x04,0x4c,0x05,0x62,0x00,0x16,0x00,0x00,0x13,0x34,0x12,0x37,0x33,0x01,0x11,0x33,0x11,0x14,0x06,0x23,0x01,0x06,0x06,0x15,0x14,0x00,0x17,0x07,0x26,0x24,0x02,0xdc,0xb1,0x9b,0x1b,0x01,0x62,0xa7, +0x1e,0x13,0xfe,0x14,0x56,0x54,0x01,0x19,0xec,0x43,0xac,0xfe,0xe0,0x9f,0x02,0xe5,0xac,0x01,0x58,0x79,0xfe,0x8f,0x01,0x71,0xfd,0x5b,0x0b,0x13,0x01,0xf5,0x51,0xde,0x80,0xcd,0xfe,0xb1,0x51,0x96,0x3b,0xf3,0x01,0x35,0x00,0x02,0x01,0xbd,0xff,0xe8,0x05,0x87,0x05,0x48,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02, +0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x05,0x87,0xfb,0xeb,0xea,0xfa,0xfa,0xea,0xeb,0xfb,0xab,0x9a,0xa1,0xa1,0x98,0x97,0xa2,0xa2,0x99,0x02,0x97,0xfe,0xa8,0xfe,0xa9,0x01,0x57,0x01,0x58,0x01,0x59,0x01,0x58,0xfe,0xa8,0xfe,0xa7,0x01,0x17,0x01,0x06,0xfe,0xf7,0xfe,0xec,0xfe, +0xeb,0xfe,0xfc,0x01,0x02,0x00,0x00,0x03,0x01,0x00,0x00,0x00,0x06,0x44,0x05,0x31,0x00,0x1d,0x00,0x21,0x00,0x2d,0x00,0x00,0x01,0x14,0x06,0x07,0x35,0x32,0x36,0x35,0x10,0x21,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x21,0x11,0x33,0x32,0x16,0x16,0x01,0x11,0x21,0x11,0x05,0x21,0x22,0x06,0x15,0x14, +0x16,0x16,0x33,0x32,0x36,0x35,0x06,0x44,0xdd,0xae,0x68,0x78,0xfe,0xc6,0xd0,0xd0,0x6e,0xce,0x83,0x8d,0x7d,0x03,0x58,0xfe,0xfd,0x39,0x72,0xc5,0x75,0xfd,0x73,0xfe,0xfb,0x01,0x05,0xfe,0xc8,0x61,0x6f,0x56,0x85,0x3b,0x79,0x79,0x01,0xc0,0xc9,0xf5,0x02,0x95,0x92,0x89,0x01,0x04,0xd5,0xff,0xe0,0x88,0xe7,0x71,0x86,0xb7,0x13,0x02, +0x01,0x94,0xfe,0xab,0x65,0xb8,0x01,0x1d,0x01,0x55,0xfe,0xab,0x94,0x72,0x62,0x49,0x9c,0x66,0xad,0xbe,0x00,0x02,0x00,0xd2,0x00,0x00,0x06,0x72,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x00,0x21,0x21,0x22,0x26,0x35,0x34,0x3e,0x06,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x04,0x15,0x14,0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0x72,0xfb,0xe3,0xc7,0xa3,0x45,0x70,0x90,0x96,0x90,0x70,0x45,0xb7,0x9b,0x4d,0x6f,0x33,0x84,0x7d,0x98,0x6d,0x69,0x8b,0x89,0xda,0x88,0xe2,0x01,0x16,0x83,0xf2,0xad,0x8d,0x70,0x56,0x82,0x04, +0x04,0xfb,0xcf,0x46,0x2d,0x2f,0x44,0x43,0x30,0x2f,0x44,0x60,0x6e,0x4a,0x61,0x42,0x2e,0x2d,0x36,0x52,0x7a,0x5a,0x90,0xa5,0x30,0x2f,0x04,0x80,0x7c,0x61,0x8a,0x97,0x6a,0x7d,0xe0,0x76,0xf2,0xc9,0x8a,0xd0,0x79,0x2e,0x25,0x3f,0x2c,0x2e,0x23,0x02,0xbf,0x31,0x47,0x48,0x30,0x33,0x45,0x45,0x00,0x01,0x00,0xff,0x00,0x00,0x06,0x44, +0x05,0x31,0x00,0x20,0x00,0x00,0x21,0x21,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x15,0x23,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x21,0x06,0x44,0xfd,0xf0,0x61,0x84,0x7b,0x6b,0x47,0x54,0x3d,0xa8,0xfe,0xf4,0xa8,0x02,0xce,0x72,0x3e,0x64,0x45,0xa8,0xd7,0x45,0x38, +0x01,0x00,0x95,0x0d,0xbe,0x7a,0x81,0x9b,0x1e,0x32,0xfd,0x5a,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfe,0xb5,0x20,0x19,0xe8,0xaf,0x5e,0xbf,0x43,0x00,0x03,0x00,0xf8,0x00,0x00,0x06,0x4b,0x05,0x31,0x00,0x14,0x00,0x18,0x00,0x24,0x00,0x00,0x01,0x21,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11, +0x21,0x11,0x33,0x01,0x11,0x21,0x11,0x05,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x06,0x4b,0xfe,0x20,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x02,0xd0,0x6d,0x01,0x38,0xa8,0xfd,0x78,0xfe,0xed,0x01,0x13,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84,0x02,0xb4,0x90,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02, +0x06,0x94,0xfe,0xab,0x01,0xe9,0xfe,0x17,0x01,0x55,0xfe,0xab,0x94,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0x00,0x01,0x00,0x5c,0xfd,0xb9,0x06,0xe8,0x07,0x21,0x00,0x34,0x00,0x00,0x01,0x02,0x02,0x24,0x23,0x22,0x04,0x02,0x11,0x10,0x12,0x04,0x33,0x20,0x00,0x11,0x34,0x26,0x23,0x22,0x07,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x21,0x15, +0x23,0x11,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x04,0x23,0x20,0x00,0x02,0x11,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x13,0x06,0x46,0x07,0xa4,0xfe,0xde,0xba,0xd3,0xfe,0xc7,0xad,0x9d,0x01,0x1e,0xc8,0x01,0x0b,0x01,0x2e,0x5d,0x4f,0x70,0x37,0xa8,0xee,0xa8,0x02,0xb0,0x72,0x53,0x55,0xa1,0xae,0xb5,0xfe,0xb2,0xd6,0xfe,0xff,0xfe,0x93, +0xc3,0xd3,0x01,0x8c,0x01,0x10,0xe3,0x01,0x63,0xcb,0x0c,0x03,0x1d,0x01,0x03,0x01,0x91,0xdc,0xf7,0xfe,0x22,0xfe,0xbc,0xfe,0xb2,0xfe,0x1c,0xf5,0x01,0x6b,0x01,0x4f,0x72,0x8c,0x51,0xfe,0x4c,0x04,0x9d,0xfb,0x63,0x05,0x31,0x94,0xfd,0xaa,0x51,0xe9,0xdd,0xed,0xfe,0x96,0xc2,0x01,0x18,0x02,0x22,0x01,0x81,0x01,0x71,0x02,0x22,0x01, +0x1a,0xfe,0xfe,0x2c,0xfe,0xce,0x00,0x03,0x00,0x27,0x00,0x00,0x07,0x1c,0x05,0x31,0x00,0x2e,0x00,0x3a,0x00,0x3e,0x00,0x00,0x01,0x15,0x23,0x11,0x16,0x16,0x17,0x3e,0x02,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x33,0x15,0x21,0x35,0x36,0x36,0x35,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x27,0x15,0x10,0x02,0x23,0x22,0x26, +0x26,0x35,0x34,0x36,0x37,0x11,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x21,0x11,0x04,0x07,0x6d,0x52,0x75,0x32,0x23,0x50,0x53,0x48,0x94,0xaf,0x3a,0x30,0xa2,0xfe,0xc3,0x28,0x33,0xa1,0x59,0x64,0xa8,0x49,0x51,0xe0,0xda,0x7f,0xc8,0x72,0x92,0x7e,0x01,0xbb,0xa9,0x95,0x9b,0x46,0x9c,0x86,0x79,0x84, +0xfe,0xed,0x05,0x31,0x94,0xfe,0xa9,0x0a,0x43,0x40,0x42,0x4d,0x23,0xd1,0xab,0x64,0xbb,0x3b,0x95,0x93,0x39,0xb3,0x58,0x01,0x00,0x9f,0x95,0xfe,0x5d,0x01,0x94,0x82,0x7e,0x18,0x88,0xfe,0xf4,0xfe,0xe8,0x70,0xd5,0x92,0x81,0xb4,0x1f,0x02,0x06,0xfd,0x83,0x28,0x5d,0x5c,0x93,0xab,0xe8,0xcc,0xff,0x01,0x55,0xfe,0xab,0x00,0x00,0x02, +0x01,0x1a,0x00,0x00,0x06,0x29,0x05,0x31,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x02,0x07,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x11,0x34,0x12,0x24,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x06,0x29,0xab,0xa8,0xed,0x99,0xf7,0x90,0x08,0x2c,0x88, +0x44,0x96,0xb7,0xbe,0x91,0xcb,0xd2,0xbd,0x01,0x47,0xc3,0x02,0x48,0xfd,0x32,0x63,0x45,0x47,0x77,0x2a,0x0a,0x79,0x6b,0x44,0x5e,0x04,0x9d,0xfb,0x63,0x04,0x9d,0x8d,0xfe,0xfc,0xa8,0x2b,0x33,0xbf,0x9c,0x9e,0xc8,0x01,0x21,0x01,0x1e,0xd0,0x01,0x5e,0xc3,0xfc,0x27,0x54,0x82,0x3c,0x30,0x8d,0xa0,0x74,0x00,0x03,0x00,0x48,0xff,0x00, +0x06,0xfc,0x05,0x31,0x00,0x2a,0x00,0x34,0x00,0x40,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x06,0x00,0x21,0x22,0x24,0x26,0x35,0x34,0x36,0x33,0x21,0x36,0x35,0x34,0x02,0x27,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x07,0x33,0x11,0x01,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32, +0x24,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x06,0xfc,0xa8,0xfb,0x59,0xfe,0x6c,0xfe,0xef,0x8d,0xfe,0xfd,0x83,0xba,0x9a,0x03,0x3c,0x07,0x80,0x78,0x25,0x1b,0xbf,0x92,0x5f,0x97,0x56,0x66,0xc1,0x84,0xb7,0x01,0x0d,0x92,0x06,0xcf,0xfe,0x58,0xfc,0xcb,0x36,0x43,0xd2,0xc5,0xaf,0x01,0x06,0xc9,0x67,0x44,0x44, +0x66,0x60,0x4a,0x4b,0x60,0x05,0x31,0xf9,0xf9,0x01,0xdc,0xf9,0xfe,0xf3,0x6e,0xb8,0x75,0x74,0x8c,0x60,0x31,0xb9,0x01,0x09,0x46,0x25,0x52,0x36,0xa2,0xc1,0x55,0x9f,0x70,0x6d,0xa9,0x5f,0xad,0xfe,0xb1,0xee,0x30,0x48,0x03,0x96,0xfb,0xd5,0x4b,0x35,0x74,0x7d,0xb6,0x03,0x30,0x53,0x7f,0x7d,0x55,0x52,0x6c,0x6e,0x00,0x04,0x00,0x23, +0xff,0xe4,0x07,0x20,0x05,0x31,0x00,0x30,0x00,0x3c,0x00,0x40,0x00,0x4c,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x23,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x11,0x21,0x15,0x23,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02, +0x07,0x01,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x11,0x23,0x11,0x05,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x26,0x06,0x16,0x2d,0x3b,0x87,0x73,0x4d,0x42,0x69,0x78,0x88,0x79,0x80,0x9b,0x31,0x9b,0x4b,0xa2,0x87,0x7f,0xc8,0x72,0x72,0x6c,0x02,0xbc,0x6d,0xea,0x3f,0xa8,0x61,0x72,0xc0,0x6c,0x47, +0x3d,0xfc,0x0c,0x63,0x95,0x9b,0x46,0x9c,0x86,0x65,0x52,0xff,0x02,0xf9,0x25,0x20,0x44,0x30,0x62,0x2a,0x46,0x2c,0x43,0xff,0x70,0xca,0xca,0x47,0x35,0xdf,0x8e,0xb4,0xd5,0xe1,0xc0,0x8d,0x86,0x90,0xd0,0xe5,0x6f,0x70,0xd5,0x92,0x86,0xa4,0x2a,0x02,0x06,0x94,0xfe,0xab,0x57,0x65,0x83,0xeb,0x99,0xa0,0xfe,0xda,0x53,0x02,0xd0,0x28, +0x5d,0x5c,0x93,0xab,0xc1,0xf3,0xff,0x01,0x55,0xfe,0xab,0x98,0x33,0x7c,0x65,0x74,0x93,0xf1,0x47,0x80,0x5a,0x00,0x00,0x02,0x00,0xbf,0xff,0xe5,0x05,0xa8,0x04,0xc9,0x00,0x0f,0x00,0x1f,0x00,0x00,0x05,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x03,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32, +0x36,0x36,0x35,0x34,0x26,0x26,0x03,0x33,0xa6,0xfe,0xdc,0xaa,0xa9,0x01,0x25,0xa6,0xa8,0x01,0x24,0xa9,0xa9,0xfe,0xdb,0xa7,0x7f,0xda,0x80,0x7f,0xda,0x80,0x7f,0xda,0x80,0x80,0xd9,0x1b,0xa6,0x01,0x21,0xab,0xa9,0x01,0x22,0xa7,0xa7,0xfe,0xdd,0xa8,0xa8,0xfe,0xdd,0xa7,0x04,0x5b,0x7f,0xdf,0x81,0x80,0xdd,0x7e,0x7d,0xdd,0x81,0x81, +0xe0,0x7e,0x00,0x01,0x00,0x34,0xff,0xe6,0x06,0x34,0x04,0xc9,0x00,0x1b,0x00,0x00,0x01,0x22,0x04,0x06,0x15,0x10,0x05,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x27,0x24,0x11,0x34,0x26,0x24,0x03,0x34,0xaa,0xfe,0xe8,0xa0,0x01,0x32,0x62,0xaf,0xbf,0xc1,0x01,0x61,0xde,0xe0,0x01,0x60,0xc0,0xbf, +0xb0,0x61,0x01,0x31,0xa0,0xfe,0xea,0x04,0x33,0x89,0xef,0x88,0xfe,0xef,0xc2,0x7a,0x6a,0x01,0x37,0xac,0xb7,0x01,0x32,0xad,0xaf,0xfe,0xcf,0xb6,0xac,0xfe,0xc8,0x69,0x7a,0xc2,0x01,0x11,0x88,0xef,0x89,0x00,0x00,0x02,0x00,0x45,0x00,0x00,0x06,0x22,0x04,0xdc,0x00,0x1e,0x00,0x2a,0x00,0x00,0x37,0x21,0x32,0x36,0x36,0x35,0x34,0x26, +0x27,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x21,0x01,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x45,0x03,0x61,0x87,0xe4,0x72,0xb2,0x8d,0x2c,0x4e,0x81,0x4b,0x72,0x9c,0x66,0xb0,0x5f,0x99,0x01,0x21,0xab,0x9b,0xfe,0xcd,0xae,0xfc,0x9f,0x03,0x91, +0x31,0x2f,0x40,0x57,0x4b,0x32,0x33,0x47,0x97,0x7d,0xd7,0x8e,0x95,0xf7,0x31,0x44,0x45,0x42,0x81,0x4b,0x9f,0x73,0x55,0x88,0x4e,0xac,0xfe,0xe0,0xa5,0xb1,0xfe,0xee,0xa8,0x03,0xb1,0x28,0x4e,0x1f,0x0b,0x57,0x33,0x33,0x47,0x47,0x00,0x01,0x01,0x78,0xff,0xe7,0x04,0xef,0x04,0xc9,0x00,0x28,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22, +0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x04,0xef,0x75,0xca,0x7b,0xd9,0xe4,0x5a,0x65,0xab,0x53,0x51,0x81,0x4b,0x96,0x77,0xb6,0xb6,0x77,0x83,0x98,0x7d,0x7f,0x95,0x5c,0xa8,0xe6,0x72,0xba, +0x68,0x49,0x50,0x4e,0x5e,0x01,0x54,0x60,0xab,0x62,0xc6,0x7b,0x5b,0x50,0x39,0x64,0x3a,0x60,0x74,0x8d,0x6b,0x58,0x50,0x6d,0x74,0x64,0xa4,0x58,0x9a,0x5a,0x5f,0x84,0x2d,0x2a,0x98,0x00,0x00,0x02,0x00,0x9e,0xff,0xe8,0x05,0xca,0x04,0xec,0x00,0x0b,0x00,0x32,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0x14,0x16, +0x13,0x24,0x36,0x37,0x26,0x26,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x24,0x11,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x17,0x03,0x29,0x33,0x47,0x47,0x33,0x35,0x45,0x48,0x30,0x01,0x17,0xee,0x05,0x05,0x58,0x51,0x3e,0x7e,0x8b,0x6c,0xca,0xb8,0x27,0x39, +0x9d,0x76,0x77,0x9b,0x37,0x27,0xfe,0x29,0x8a,0x5c,0x31,0x1d,0x5c,0xbf,0xb0,0x72,0x44,0x38,0x29,0x4d,0x0e,0x0f,0x4d,0x28,0x39,0x43,0x01,0xa6,0x3b,0xb0,0x7e,0x4f,0x77,0x31,0x74,0x3c,0xc2,0x6d,0x74,0xaf,0x7d,0x33,0x1e,0x62,0x40,0x6f,0x97,0x98,0x6e,0x37,0x67,0x21,0x67,0x01,0x46,0xa9,0x71,0x66,0x2f,0x59,0x2c,0x4d,0x79,0x54, +0x20,0x00,0x00,0x02,0x00,0x36,0xff,0xc0,0x06,0x32,0x04,0xcd,0x00,0x33,0x00,0x3e,0x00,0x00,0x01,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x1e,0x02,0x17,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x27,0x2e,0x03,0x23,0x22,0x00,0x03,0x27,0x36,0x12,0x37,0x26,0x26,0x27,0x37, +0x1e,0x02,0x25,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x36,0x02,0x96,0x38,0x3a,0x51,0xa3,0x85,0x80,0xa1,0x6e,0x69,0x30,0x3f,0x2b,0x17,0x0b,0x11,0x05,0x24,0x20,0x29,0x31,0x0e,0x8b,0x13,0x83,0x63,0x5e,0x79,0x13,0x1d,0x2d,0x40,0x49,0x33,0xe0,0xfe,0xc2,0x66,0x8f,0x3d,0xf0,0xa3,0x2d,0xc1,0x7c,0x21,0x55,0xba,0x9b,0x02, +0x01,0x57,0x37,0x38,0x53,0x5e,0x51,0x6a,0x02,0xc8,0x0f,0x06,0x59,0x6d,0x7f,0xa4,0x9e,0x75,0x5e,0x91,0x27,0x25,0x65,0x82,0x82,0x43,0x44,0x16,0x1f,0x5a,0x61,0x18,0x96,0xa0,0x7f,0x79,0xb5,0x7a,0x4d,0x21,0xfe,0xd0,0xfe,0xc7,0x25,0xdd,0x01,0x4f,0x55,0x9a,0xe7,0x32,0x88,0x14,0x90,0xdb,0x5f,0x38,0x54,0x55,0x41,0x64,0x3f,0x07, +0x62,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x21,0x21,0x15,0x21,0x22,0x26,0x99,0xa7,0xa7,0x5c,0xa0,0x5f,0x97,0x7f,0x66,0x6a,0x97,0x7b,0x01,0xd2,0xfe,0x2e,0x7b, +0x97,0x01,0x04,0x03,0x8f,0xfc,0x56,0xbc,0xd0,0x01,0x42,0xbd,0x6b,0x6b,0xbe,0x50,0x8c,0x4f,0x92,0x59,0x54,0x5a,0x6f,0x97,0x77,0x61,0xb0,0x97,0xa8,0x00,0x00,0x01,0x01,0x4a,0xff,0xe5,0x05,0x1e,0x04,0xc9,0x00,0x2e,0x00,0x00,0x25,0x32,0x36,0x37,0x33,0x06,0x04,0x23,0x22,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x23,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x0e,0x03,0x07,0x0e,0x02,0x15,0x14,0x16,0x03,0x30,0x95,0xa1,0x16,0xa2,0x18,0xfe,0xff,0xd5,0x8b,0xdf,0x7c,0x2e,0x5c,0x9a,0x95,0x8b,0x6f,0x3b,0xa5,0x6e,0x75,0x97,0x0d,0x9b,0xf9,0xbb,0x7b,0xc6,0x72,0x24,0x3d,0x59,0x6f,0x81,0x94,0x71,0x3e,0xad,0x7d,0x7c, +0x7b,0xbd,0xd2,0x56,0x9e,0x6b,0x49,0x71,0x54,0x42,0x22,0x20,0x32,0x44,0x32,0x4c,0x6a,0x74,0x68,0xa1,0xd0,0x59,0x9b,0x53,0x40,0x5f,0x48,0x33,0x27,0x1e,0x21,0x35,0x4d,0x38,0x5f,0x6c,0x00,0x01,0x00,0x28,0xff,0xe7,0x06,0x3f,0x04,0xc9,0x00,0x20,0x00,0x00,0x01,0x21,0x15,0x21,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02, +0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x02,0x27,0x02,0xd5,0x03,0x6a,0xfd,0xd4,0x7c,0x81,0xa4,0xfe,0xd4,0xa4,0xa4,0xfe,0xd3,0xa3,0x7c,0x6e,0x5b,0x4d,0x58,0x7c,0xdb,0x7d,0x7c,0xdc,0x7c,0xdb,0xc0,0x04,0xc9,0x8b,0x5d,0xfb,0x91,0xa9,0xfe,0xe8,0xad,0xad,0x01,0x19,0xa8,0x92,0xfb, +0x5a,0x6e,0x40,0xc9,0x70,0x7d,0xd3,0x7b,0x7b,0xd4,0x7c,0xae,0x01,0x02,0x3b,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x05,0xcf,0x04,0xbe,0x00,0x1e,0x00,0x00,0x13,0x34,0x36,0x33,0x21,0x15,0x21,0x20,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x34,0x37,0x26,0x99,0xcf,0xbd, +0x03,0xaa,0xfc,0x71,0xfe,0xfc,0x43,0x7a,0x55,0x01,0xd2,0xfe,0x2e,0x7b,0x97,0xd0,0x7f,0x97,0x60,0xa0,0x5b,0xa7,0xa7,0x03,0x7b,0x99,0xaa,0x98,0xb0,0x3c,0x64,0x38,0x96,0x70,0x59,0xa8,0x97,0x50,0x8b,0x50,0xbd,0x6b,0x6b,0x00,0x00,0x02,0x00,0xac,0x00,0x00,0x05,0x2f,0x04,0xac,0x00,0x0f,0x00,0x1f,0x00,0x00,0x01,0x14,0x02,0x04, +0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x07,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x05,0x2f,0x9b,0xfe,0xf4,0x9b,0x9c,0xfe,0xf6,0x9b,0x9a,0x01,0x0d,0x9a,0x9a,0x01,0x0c,0x9c,0xa5,0x6c,0xc0,0x71,0x70,0xc1,0x6c,0x6e,0xbe,0x71,0x70,0xbf,0x6e,0x02,0x55,0xa2,0xfe,0xea, +0x9d,0x9f,0x01,0x14,0xa2,0xa1,0x01,0x16,0xa0,0xa0,0xfe,0xe9,0xa0,0x73,0xc9,0x76,0x76,0xca,0x72,0x74,0xc9,0x74,0x73,0xca,0x00,0x01,0x00,0xa1,0xff,0xfd,0x05,0x3a,0x04,0xac,0x00,0x1d,0x00,0x00,0x01,0x14,0x02,0x07,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24, +0x33,0x32,0x04,0x12,0x05,0x3a,0xc2,0x8b,0x4a,0x68,0x8a,0x75,0xc4,0x6f,0x70,0xc5,0x72,0x8e,0x63,0x49,0x8d,0xc0,0xa0,0x01,0x10,0x9c,0x9d,0x01,0x11,0x9f,0x02,0x55,0xb8,0xfe,0xa6,0x46,0x93,0x37,0x01,0x08,0x86,0x72,0xcb,0x75,0x77,0xc9,0x72,0x8b,0xfe,0xf9,0x34,0x92,0x47,0x01,0x59,0xb8,0xa0,0x01,0x18,0x9f,0xa1,0xfe,0xe8,0x00, +0x00,0x01,0x00,0xf6,0x00,0x00,0x04,0xe6,0x04,0xac,0x00,0x25,0x00,0x00,0x01,0x14,0x02,0x04,0x23,0x21,0x35,0x21,0x32,0x37,0x24,0x11,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x04,0xe6,0x9c,0xfe,0xef,0x9f,0xfe,0x5c,0x01,0xa4,0x3c,0x4d, +0x01,0x1e,0x73,0xc4,0x70,0x54,0x80,0x7d,0x57,0x5c,0x3f,0x75,0x62,0xae,0x64,0xb0,0x66,0x66,0xb0,0x64,0xa8,0x01,0x0d,0x97,0x02,0x55,0x9d,0xfe,0xea,0xa2,0xa4,0x1b,0x64,0x01,0x32,0x72,0xca,0x76,0x7c,0x59,0x55,0x7f,0x44,0x72,0x77,0x66,0xae,0x65,0x64,0xb1,0x65,0x9b,0xfe,0xec,0x00,0x02,0x00,0xdd,0xff,0xdd,0x04,0xfe,0x04,0xac, +0x00,0x32,0x00,0x3c,0x00,0x00,0x05,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x32,0x37,0x17,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x07,0x16,0x33,0x32,0x37,0x05,0x32,0x37,0x26,0x26,0x23,0x22, +0x15,0x14,0x16,0x04,0xfe,0x54,0x6c,0x6b,0x58,0xb2,0x92,0x57,0xa4,0x5f,0x57,0x99,0x5d,0x73,0xee,0x48,0x3b,0x65,0xae,0x66,0x2d,0x3a,0x65,0x36,0x2f,0x56,0x20,0x6b,0x32,0x70,0x97,0x97,0x6a,0x8d,0xff,0x9c,0x70,0x46,0x38,0x0c,0x26,0xfd,0x55,0xc5,0x55,0x3c,0xad,0x51,0xa6,0x6d,0x23,0x33,0x61,0x45,0x2c,0x4e,0x81,0x46,0x53,0x7c, +0x42,0x6f,0x55,0x53,0xbe,0x6e,0xbd,0x69,0x30,0x27,0x58,0x41,0x68,0x35,0x47,0x8e,0x6d,0x66,0x96,0x9e,0xfe,0xf1,0x96,0xe1,0x9a,0x51,0x09,0x02,0x4f,0x43,0x4b,0x64,0x36,0x43,0x00,0x03,0x00,0x60,0xff,0xf3,0x05,0x7c,0x04,0xc1,0x00,0x26,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x37,0x24,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x26,0x27,0x05,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x36,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xf0,0x51,0x90,0x6c,0x3f,0xca,0xb8,0x25,0x37,0xbb,0x8f,0x8d,0xbd,0x48,0xfe,0x56, +0x92,0x69,0x67,0x95,0xc1,0x82,0xf3,0xf0,0xdd,0x3a,0x5e,0x74,0xfd,0xe6,0x33,0x24,0x25,0x3f,0x33,0x88,0x02,0x00,0x60,0x46,0x45,0x61,0x5d,0x49,0x4b,0x5b,0x04,0xc1,0x0c,0x1f,0x44,0x78,0x64,0x87,0xce,0x46,0x23,0x63,0x38,0x88,0xa2,0xa7,0x83,0x6f,0x45,0x9b,0x01,0x45,0x69,0x92,0x95,0x67,0xa8,0x49,0x61,0x24,0x3f,0xa0,0x63,0x3a, +0x42,0x1f,0x06,0x61,0x27,0x37,0x39,0x25,0x5c,0x3c,0x2d,0xfd,0xc2,0x39,0x51,0x4e,0x3c,0x35,0x45,0x45,0x00,0x03,0x00,0x43,0xff,0xdc,0x05,0x99,0x04,0xac,0x00,0x35,0x00,0x3e,0x00,0x47,0x00,0x00,0x01,0x14,0x07,0x16,0x15,0x14,0x06,0x07,0x27,0x32,0x36,0x35,0x34,0x27,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x25,0x26, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x17,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x15,0x14,0x17,0x36,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x99,0xaa,0x74,0x89,0xaa,0x4b,0x62,0x7f,0x84,0x6b,0xf7,0x1b,0xc7,0xa8,0x73,0xa0,0xea, +0x01,0x1f,0x08,0x89,0x57,0x35,0x47,0x25,0x30,0x5a,0x3e,0x59,0xa3,0x76,0x68,0xae,0x67,0x06,0x7f,0x43,0x50,0xa5,0x7a,0x80,0xa0,0x9d,0x4e,0x35,0x83,0x72,0x94,0xfd,0x42,0xc5,0x99,0x49,0x2d,0x4d,0x7e,0x03,0x78,0xdd,0x63,0x78,0x8b,0x99,0x9a,0x26,0xa0,0x67,0x49,0x5c,0x6e,0x19,0x0f,0xe1,0xed,0x9e,0x73,0xa2,0x9e,0x18,0xac,0xfa, +0x4c,0x3c,0x1d,0x3a,0x27,0x82,0x20,0x93,0x4d,0x78,0xad,0x93,0xfe,0xfa,0xa0,0x08,0x0a,0x6a,0x89,0x84,0xb0,0xb0,0x73,0x38,0x4e,0x97,0x5c,0x69,0x3e,0xfe,0xd3,0x10,0x56,0x56,0x2b,0x42,0xa5,0x00,0x00,0x02,0x00,0x7e,0x00,0x00,0x05,0x5d,0x04,0xac,0x00,0x1d,0x00,0x28,0x00,0x00,0x21,0x21,0x22,0x24,0x26,0x35,0x34,0x37,0x26,0x23, +0x37,0x20,0x13,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x33,0x21,0x01,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x33,0x32,0x36,0x05,0x5d,0xfe,0x06,0xa4,0xfe,0xed,0x9d,0x9d,0x73,0xbb,0x0f,0x01,0x20,0x98,0x7c,0xa2,0x86,0xac,0xad,0x85,0x7e,0xa1,0x4c,0x4a,0xfc,0xb9,0x01,0xfa,0xfe,0x98,0x54,0x3e, +0x7b,0x59,0x3a,0x59,0x41,0x3f,0x53,0x84,0xeb,0x8d,0xc7,0x7d,0xc7,0xa5,0xfe,0xe6,0x2b,0xa0,0x7a,0x7b,0xa7,0x85,0xa0,0x4a,0x6c,0x93,0xb9,0x01,0xf5,0x36,0x49,0x1d,0x79,0x5c,0x40,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x05,0x06,0x04,0xc1,0x00,0x27,0x00,0x00,0x21,0x21,0x22,0x26,0x26,0x35,0x34,0x37,0x36,0x37,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x07,0x06,0x15,0x14,0x16,0x33,0x21,0x05,0x06,0xfd,0x4d,0x66,0xb1,0x66,0x8d,0x27,0xd9,0x84,0x4b,0x3f,0x37,0x4a,0x1b,0x8e,0x31,0xab,0x7c,0x84,0xa8,0x8b,0x3e,0x84,0x3f,0x84,0x7c,0x5c,0x02,0xb3,0x62,0xab,0x64,0xb5,0x66,0x1e,0x61, +0x3a,0x49,0x3f,0x50,0x45,0x2f,0x30,0x1c,0x52,0x41,0x62,0x74,0x9f,0xae,0x8d,0x9d,0x46,0x1f,0x34,0x1e,0x40,0x70,0x5b,0x83,0x00,0x02,0x00,0x8d,0x00,0x00,0x05,0x4e,0x04,0xc1,0x00,0x26,0x00,0x31,0x00,0x00,0x01,0x23,0x16,0x16,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22, +0x27,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x10,0x27,0x35,0x21,0x01,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x33,0x32,0x36,0x05,0x4e,0xd6,0x62,0x4d,0x9f,0xfe,0xf0,0x9d,0xa4,0xfe,0xf0,0x9a,0x5a,0x91,0x5d,0x64,0x90,0x90,0x64,0x5c,0x3f,0x08,0x70,0xc3,0x76,0x6e,0xc5,0x75,0xec,0x01,0xb7,0xfc,0xeb,0x3f,0x25,0x2e,0x41, +0x0b,0x3f,0x3b,0x2b,0x39,0x04,0x07,0x6a,0xc1,0x87,0x9f,0xfe,0xed,0xa3,0xa5,0x01,0x22,0xaf,0xa0,0x01,0x21,0x8a,0xa4,0x72,0x6f,0xa6,0x3c,0x23,0x40,0x80,0xd5,0x76,0x74,0xc6,0x70,0x01,0x15,0xa7,0xa1,0xff,0x00,0x29,0x49,0x58,0x53,0x4b,0x4f,0x00,0x00,0x02,0x01,0x0d,0x00,0x00,0x04,0xcf,0x04,0xac,0x00,0x26,0x00,0x31,0x00,0x00, +0x01,0x21,0x22,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x17,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x21,0x01,0x34,0x23,0x22,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x04,0xcf,0xfd,0x93,0x48,0x68,0x35,0x73,0xa4,0x80,0x92,0x92,0x68,0x9c, +0x74,0x08,0x7d,0x63,0x5c,0x37,0x74,0x6a,0x9d,0xab,0xdb,0x25,0x70,0x5b,0x9e,0x5c,0x02,0x6d,0xfe,0xa4,0x5e,0x29,0x7f,0x17,0x20,0x6e,0x27,0x27,0x41,0x04,0x07,0x68,0x48,0x5e,0x32,0x63,0x6f,0x62,0x5d,0x7b,0x45,0x1b,0x16,0x6a,0x87,0x25,0x73,0x56,0xe3,0xb2,0x4e,0x53,0x7c,0xa5,0x5a,0x9f,0x5c,0xfd,0xa9,0x41,0x28,0x15,0x1a,0x2b, +0x29,0x00,0x00,0x02,0x01,0xc8,0xff,0xe8,0x05,0x54,0x03,0x7c,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x8e,0x7f,0xa0,0xa0,0x7f,0x7f,0xa0,0xa0,0x7f,0x7e,0xd0,0x78,0x78,0xd1,0x7d,0x7e,0xd0, +0x78,0x78,0xd0,0x81,0xa9,0x88,0x88,0xa9,0xa9,0x88,0x88,0xa9,0x99,0x76,0xd3,0x81,0x81,0xd3,0x76,0x76,0xd3,0x81,0x81,0xd3,0x76,0x00,0x00,0x02,0x00,0x24,0xfe,0x63,0x06,0xf8,0x05,0xb3,0x00,0x18,0x00,0x21,0x00,0x00,0x21,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x11,0x10,0x12,0x21, +0x20,0x00,0x11,0x03,0x11,0x10,0x26,0x23,0x22,0x06,0x11,0x11,0x06,0xf8,0xfa,0x99,0x67,0x5f,0x60,0x66,0x01,0x55,0xfe,0xb6,0xc2,0xb6,0xc4,0xb4,0x01,0x57,0xff,0x01,0x03,0x01,0x02,0x01,0x01,0xa4,0xb1,0xae,0xb0,0xae,0x3f,0x46,0x4a,0x3b,0x93,0x86,0x90,0x8f,0x8b,0x02,0x9d,0x01,0x44,0x01,0x3f,0xfe,0xc5,0xfe,0xb8,0xfd,0x63,0x02, +0x8e,0x01,0x05,0xf4,0xf8,0xfe,0xff,0xfd,0x72,0x00,0x00,0x01,0x00,0x37,0xff,0xe6,0x06,0xe5,0x05,0xb3,0x00,0x1e,0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x06,0xe5,0xfc,0xd6,0x67,0x56,0xf8,0xd5,0xd5, +0xf8,0x66,0x83,0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x93,0x93,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74,0x00,0x01,0x00,0x32,0xff,0xe6,0x06,0xe9,0x05,0xb3,0x00,0x2d, +0x00,0x00,0x25,0x15,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x07,0x06,0xe9,0xfd,0x59,0x53,0x52,0x6c,0x79,0x71,0x61,0xa4,0x61,0x71,0x7b,0x6a,0x66, +0x5d,0x9b,0x5f,0x6c,0xc5,0xbe,0x6e,0x96,0x21,0x08,0x20,0x96,0x6f,0x76,0xad,0x60,0x4b,0x30,0x93,0x93,0x51,0x74,0x01,0x4b,0xf6,0x01,0x12,0x01,0x00,0xc7,0xeb,0xfc,0x9a,0x03,0x66,0xea,0xc8,0xfb,0xfe,0xe9,0xf9,0xfe,0x87,0x77,0x37,0x7f,0x01,0xa8,0xe2,0x01,0x56,0x01,0x6e,0x74,0x6b,0x6a,0x75,0xa3,0xfe,0xc0,0xe1,0x99,0xfe,0x93, +0x56,0x00,0x00,0x02,0x00,0x7e,0xff,0xe6,0x06,0x9e,0x07,0xc8,0x00,0x30,0x00,0x3c,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x04,0x02,0x15,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x12,0x06,0x4e,0x79,0xd9,0x88,0xac,0xd5,0xd6,0xd3,0x80,0xaf,0xac,0xfe,0xf0,0x8c,0x6e,0x6e,0x95,0x71,0x7d,0xb3,0x01,0x60,0xde,0xfd,0xba,0x77,0x5b,0x79,0x7a,0x9b,0x9f,0x1d,0xac,0xbb,0xb2,0xd7,0x7f,0x94,0x5e,0x65,0xa7,0x55,0x4b,0xbb,0xb2,0x7c,0x69,0x80, +0xa8,0x02,0x8e,0xb7,0xfe,0xc0,0xb1,0x01,0x1c,0xdd,0xdb,0x01,0x6c,0x9e,0x54,0x9d,0xfe,0xec,0xb7,0xb6,0xfe,0xc4,0x9e,0x3a,0xa6,0x01,0x7d,0xaa,0xe3,0x01,0x57,0xc6,0x8c,0x5b,0x97,0x51,0x62,0x6e,0x3b,0x8a,0x3f,0xba,0x95,0x6f,0xcf,0x72,0x6b,0xfe,0xde,0xba,0x94,0xfc,0x55,0x8d,0xfe,0xc6,0xc1,0xa3,0xbe,0x01,0x24,0x00,0x00,0x01, +0x00,0x37,0xfd,0xfe,0x06,0xe5,0x07,0x61,0x00,0x43,0x00,0x00,0x05,0x27,0x12,0x11,0x10,0x00,0x21,0x22,0x00,0x02,0x11,0x10,0x12,0x04,0x33,0x32,0x12,0x35,0x10,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x13,0x07,0x02,0x11,0x10,0x00,0x33,0x32,0x16,0x15,0x10,0x07,0x15,0x16,0x16,0x15,0x14,0x02,0x06, +0x23,0x22,0x24,0x02,0x02,0x35,0x10,0x12,0x00,0x21,0x32,0x04,0x12,0x11,0x14,0x02,0x06,0x53,0x9e,0x8b,0xfe,0xaf,0xfe,0xd1,0xd4,0xfe,0xa5,0xb6,0x9c,0x01,0x0e,0xb4,0xbf,0xd4,0xf8,0x72,0x65,0x63,0x6d,0x73,0x7a,0xa8,0xa0,0x8b,0x99,0x96,0x01,0x03,0xed,0xb9,0xd3,0xae,0x67,0x7d,0x96,0xff,0xa8,0xa9,0xfe,0xea,0xc9,0x74,0xde,0x01, +0xaa,0x01,0x0a,0xef,0x01,0x6b,0xc2,0x4c,0x19,0x37,0x01,0x9f,0x01,0x92,0x01,0xa6,0x01,0xd3,0xfe,0xfe,0xfe,0x32,0xfe,0xcd,0xfe,0xd1,0xfe,0x00,0xff,0x01,0x24,0xfd,0x01,0x7d,0x96,0x9b,0x85,0xa2,0x8d,0xfe,0xe7,0xfe,0xbd,0xfe,0xb1,0xfe,0xae,0x37,0x01,0x75,0x01,0x5f,0x01,0x69,0x01,0x90,0xf0,0xca,0xfe,0xf8,0x67,0x06,0x1e,0xfc, +0xb4,0xc0,0xfe,0xb0,0xa8,0xb1,0x01,0x4d,0x01,0xd0,0xe9,0x01,0x60,0x02,0x19,0x01,0x33,0xfd,0xfe,0x2f,0xfe,0xc6,0xd7,0xfe,0x31,0x00,0x00,0x01,0x00,0x46,0xfd,0xfe,0x06,0xd6,0x05,0xb3,0x00,0x3e,0x00,0x00,0x17,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x20,0x11, +0x10,0x02,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x22,0x06,0x11,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x26,0x23,0x22,0x06,0x02,0x15,0x10,0x17,0xd0,0x41,0x49,0x51,0x92,0x64,0x56,0x7e,0x2a,0x05,0x24,0x86,0x5a,0x5b,0x6f,0x31,0x06,0x26,0x7f,0x60,0x01,0x3c,0x7f,0xe3,0x99, +0x8c,0x6f,0x7e,0x77,0xb3,0xad,0x59,0x4e,0x5e,0x51,0xa3,0x4e,0x5b,0x63,0x54,0xa3,0x49,0x55,0x32,0x52,0x2f,0x7d,0x1a,0x85,0x01,0x91,0xdc,0xe8,0x01,0x4b,0xa8,0x56,0x6b,0x5f,0x62,0x52,0x73,0x64,0x61,0xfc,0xcf,0xfe,0xaa,0xfd,0xe8,0xfe,0xea,0x2d,0xac,0x40,0x01,0xe2,0x01,0xf7,0x01,0x51,0x01,0x57,0xda,0xfe,0xfe,0xfc,0xc4,0x03, +0x3c,0x01,0x05,0xd7,0xe9,0xf1,0xfc,0xc2,0x03,0x3e,0x01,0x0b,0xcf,0x8b,0xfe,0xf9,0xb5,0xfe,0x46,0xfa,0x00,0x02,0x01,0x25,0xff,0xe6,0x05,0xf6,0x05,0xb3,0x00,0x0b,0x00,0x30,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x16,0x04,0x33,0x32,0x36,0x12,0x35,0x34,0x02,0x26,0x27,0x07,0x16,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x20,0x27,0x03,0x6e,0x6e,0x5e,0x5e,0x7a,0x6e,0x5d,0x63,0x76,0xfd,0xb9,0x68,0x01,0x05,0x92,0xa8,0xfd,0x84,0x86,0xe3,0x82,0x03,0x55,0x62,0x62,0xb1,0x6f,0xa9,0xc8,0x86,0xed,0x9a,0xcb,0x01,0x41,0xb8,0xb6,0xfe,0xb1,0xcb,0xfe,0xbf, +0xbe,0x04,0x1e,0x69,0x80,0x82,0x64,0x66,0x7c,0x78,0xfd,0x84,0x5c,0x60,0x95,0x01,0x0f,0xb0,0x9f,0x01,0x12,0xa3,0x07,0x08,0x1c,0x9b,0x60,0x65,0xa5,0x5d,0xc6,0xa3,0x7f,0xbd,0x66,0xb4,0xfe,0xa9,0xd3,0xdc,0xfe,0xab,0xbe,0x94,0x00,0x01,0x00,0x4b,0xfd,0xfe,0x06,0xd1,0x05,0xb3,0x00,0x2d,0x00,0x00,0x01,0x11,0x10,0x00,0x21,0x22, +0x26,0x27,0x35,0x17,0x16,0x33,0x32,0x36,0x35,0x21,0x35,0x36,0x12,0x35,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15,0x14,0x02,0x07,0x21,0x11,0x06,0xd1,0xfe,0xcd,0xfe,0xe6,0x46,0x76,0x55,0x4a,0x69,0x70,0xbb,0xdc,0xfd,0xa2,0x67,0x56,0xf8,0xd5,0xd5,0xf8,0x66,0x83, +0x98,0x80,0x78,0xa4,0x01,0x27,0xb4,0xae,0x01,0x1c,0x9f,0x56,0x4a,0x01,0x9a,0x05,0x99,0xfa,0xb4,0xfe,0xe3,0xfe,0xce,0x13,0x14,0xac,0x18,0x22,0xc6,0xa3,0x62,0xa7,0x01,0x15,0x96,0x01,0x19,0x01,0x4d,0xfe,0xb2,0xfe,0xe8,0xae,0xfe,0xdd,0xc6,0x37,0xb9,0x01,0x64,0xbb,0xdc,0x01,0x5b,0xbe,0xbe,0xfe,0xa7,0xde,0x8d,0xfe,0xd6,0x74, +0x05,0x06,0x00,0x02,0x00,0x3d,0xff,0xe6,0x06,0xde,0x07,0xc8,0x00,0x3f,0x00,0x4a,0x00,0x00,0x01,0x14,0x02,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x37,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x02,0x11,0x14,0x12,0x17,0x07,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x17,0x36,0x36, +0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x12,0x07,0x34,0x26,0x27,0x06,0x02,0x15,0x10,0x33,0x32,0x12,0x06,0x9e,0x64,0xac,0x6c,0x88,0xad,0xb0,0xad,0x57,0x59,0x88,0x91,0xa2,0xea,0x8c,0x88,0x65,0x58,0x9a,0x5c,0x6b,0x6e,0xc5,0x81,0x75,0xab,0x20,0x07,0x2b,0xc0,0x7d,0x90,0x85,0x3d, +0x49,0x60,0x63,0x3b,0x64,0x3f,0x17,0x89,0x97,0x8e,0xad,0x67,0x75,0x48,0x54,0xa4,0x2b,0x30,0x8f,0x7f,0x9a,0x61,0x6e,0x02,0x8e,0xbb,0xfe,0xc2,0xaf,0x01,0x18,0xe1,0xdd,0x01,0x6f,0xa0,0x4f,0xf6,0xe6,0xfc,0xc2,0x03,0x3e,0x01,0xdc,0xfe,0xe3,0xfe,0xd4,0xb4,0xfe,0x8c,0x8c,0x37,0x98,0x01,0x9f,0xbb,0xe4,0x01,0x4a,0xad,0x90,0x81, +0x83,0x8e,0x87,0x3a,0xa8,0x5c,0x63,0x6d,0x1d,0x1e,0x8a,0x3f,0xb8,0x97,0x6f,0xd0,0x70,0x6d,0xfe,0xdd,0xb8,0xb7,0xd9,0x4b,0x84,0xfe,0xd5,0xcf,0xfe,0x9f,0x01,0x13,0x00,0x02,0x00,0xdf,0xff,0xf4,0x05,0x88,0x03,0xf1,0x00,0x0b,0x00,0x1b,0x00,0x00,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x22,0x24,0x26, +0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x04,0x03,0x32,0xc7,0xdf,0xdf,0xc7,0xc5,0xdd,0xdd,0xc5,0xaa,0xfe,0xee,0x97,0x95,0x01,0x13,0xab,0xae,0x01,0x14,0x94,0x97,0xfe,0xee,0x87,0xc2,0xa9,0xab,0xc1,0xc3,0xa9,0xa9,0xc2,0x93,0x7f,0xe9,0x96,0x97,0xea,0x7e,0x7f,0xe9,0x97,0x96,0xe8,0x80,0x00,0x00,0x02,0x00,0xa3, +0xff,0xf4,0x05,0xc4,0x03,0xf1,0x00,0x2b,0x00,0x37,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x04,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x04,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x27,0x26,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x02,0x49,0x74,0x5a,0x5d,0x77,0xe8,0xc2,0xb7,0xe7,0xa0,0x01,0x2c,0xc4,0xbf,0x01,0x2c,0xa6,0xcb,0xc2,0x6d,0x6f,0x7a,0xdc,0x8a,0xd9,0xfe,0xf9,0x3f,0x73,0x43,0x82,0x41,0x03,0x55,0x6a,0x6c,0x3a,0x2a,0x27,0x3a,0x39,0x28,0x2b,0x39,0x01,0xb7,0x58,0x78,0x7b,0x63,0xc5,0xf0,0x01,0x05,0xd6,0x9f,0xf9,0x8a,0x88, +0xfa,0x9d,0xc0,0xf6,0x27,0x95,0x1d,0xa8,0x83,0x74,0xb5,0x63,0xd9,0xb6,0x62,0x91,0x51,0x58,0x06,0x06,0x72,0x58,0x29,0x39,0x37,0x2b,0x29,0x39,0x39,0x00,0x00,0x02,0x00,0xc6,0x00,0x00,0x05,0xa2,0x05,0xe6,0x00,0x3e,0x00,0x4a,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23, +0x21,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x25,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x34,0x76,0x72,0x41,0x5d,0x15, +0x07,0x0d,0x6e,0x4a,0x7e,0x89,0xb7,0xa0,0xfd,0xd2,0xa1,0xb6,0xad,0x66,0x5b,0x02,0x00,0x5b,0x64,0x36,0x33,0x2e,0x3f,0x03,0x91,0x02,0x3e,0x2d,0x31,0x31,0x27,0x1e,0x05,0x04,0x55,0x44,0x44,0x57,0x64,0x5d,0x96,0xa9,0x01,0x67,0x1f,0x2e,0x2d,0x20,0x1e,0x2d,0x2e,0x02,0x98,0xb3,0xa9,0x48,0x45,0x3f,0x4e,0xaf,0x99,0xfe,0x9e,0x9b, +0xaf,0xb0,0x9a,0x04,0x9c,0xfb,0x6f,0x5b,0x60,0x60,0x5b,0x01,0x5e,0x55,0x5a,0x4c,0x3e,0x3e,0x4c,0x58,0x72,0x4f,0x73,0x10,0x05,0x05,0x18,0x42,0x58,0x59,0x41,0x4f,0x56,0xb1,0x3e,0x2b,0x20,0x20,0x2a,0x2a,0x20,0x20,0x2b,0x00,0x00,0x02,0x00,0xbb,0xff,0xf4,0x05,0xac,0x03,0xf3,0x00,0x2d,0x00,0x39,0x00,0x00,0x05,0x22,0x02,0x35, +0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x02,0x07,0x35,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x68,0xc3,0xea,0xc8,0xa4,0x5f,0x8d,0x24,0x1e, +0x91,0x63,0xa2,0xc1,0xc4,0xa5,0xb8,0x78,0x58,0x4e,0x53,0xab,0x58,0x4f,0x56,0x77,0x37,0x07,0x06,0x6f,0x58,0x5b,0x76,0x7a,0x55,0x29,0x39,0x39,0x29,0x2a,0x37,0x38,0x0c,0x01,0x1d,0xeb,0xdf,0x01,0x18,0x72,0x74,0x6b,0x7b,0xfe,0xea,0xdf,0xce,0xfe,0xe9,0x24,0x96,0x3c,0x01,0x37,0x92,0xd0,0x9c,0x91,0x91,0x9c,0xce,0x96,0xb0,0x74, +0x02,0x54,0x68,0x74,0x58,0x5d,0x79,0x01,0x38,0x02,0x39,0x29,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x02,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x3b,0x00,0x47,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x18,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda, +0xed,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0x01,0x6f,0x27,0x3b,0x38,0x2a,0x27,0x3b,0x3c,0x01,0xae,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57, +0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x45,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x00,0x03,0x00,0xcf,0xff,0xed,0x05,0x98,0x05,0x82,0x00,0x43,0x00,0x4f,0x00,0x5b,0x00,0x00,0x01,0x07,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x16, +0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x15,0x14,0x16,0x17,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x14,0x16,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0xaa,0x08,0x9e,0x8f,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c,0x98,0x81,0x29,0x75,0x3c,0x38,0x39,0x57,0xb7,0x96,0x70,0x81,0x78,0x58,0x56,0x71,0x08,0x1f,0x9b,0x81,0x8c,0x58,0x39,0xb1,0x54,0x41,0xab,0xa5,0x33,0xda,0xed,0xb0,0xc5,0x3d,0x74,0x59,0x64,0x72,0xdd,0x27,0x3b,0x38, +0x2a,0x27,0x3b,0x3c,0xfe,0x0f,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x04,0x3d,0x10,0x29,0x72,0x52,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71,0x93,0x5f,0x85,0xa0,0x13,0x0b,0x05,0x1e,0x8e,0x4f,0x89,0xa6,0x74,0x62,0x5a,0x74,0x6a,0x59,0x23,0x38,0x5e,0x7b,0x10,0x0e,0x23,0x9a,0x19,0x24,0x18,0x16,0xeb,0xcc,0xb9,0x01, +0x03,0x58,0x3c,0x5c,0x5a,0x75,0x81,0xfc,0xf7,0x39,0x2b,0x29,0x3a,0x39,0x2a,0x2a,0x3a,0x02,0xbc,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x02,0x01,0x08,0xff,0xf4,0x05,0x5f,0x05,0x6a,0x00,0x28,0x00,0x34,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x26,0x02,0x27,0x33,0x16,0x16,0x17,0x36,0x36,0x33, +0x32,0x04,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x6d,0x47,0x8b,0xa9,0xc6,0xae,0x9b,0x47,0xa9,0x46,0x30,0xae,0x49,0xd5,0x2c,0x49,0x25,0x30,0x91,0x3b,0xe7,0x01,0x05,0x7e,0xeb,0x98,0xca,0xfe,0xfa,0x7a,0x6a,0x58, +0x75,0x75,0x5b,0x60,0x3b,0x28,0x28,0x3b,0x3b,0x28,0x2a,0x39,0xb9,0x34,0xc2,0xb1,0xa2,0xb0,0x26,0x1f,0xa1,0x01,0x70,0x54,0x44,0xd5,0xa6,0x16,0x1a,0xfc,0xe7,0x98,0xec,0x80,0xd7,0xaa,0x6d,0x7c,0x74,0x5c,0x57,0x76,0xce,0x2a,0x39,0x3c,0x27,0x29,0x3b,0x3a,0x00,0x02,0x00,0x35,0xff,0xf4,0x06,0x33,0x05,0xe6,0x00,0x3b,0x00,0x47, +0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x3e,0x02,0x33,0x32,0x12,0x15,0x14,0x06,0x07,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x21,0x36,0x11,0x34,0x26,0x23,0x22,0x06,0x06,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x05,0x06,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0xac,0xa3,0x53,0x8a,0x23,0x0d,0x48,0x66,0x36,0xa0,0xac,0x25,0x15,0x46,0x56,0x62,0xae,0x58,0xa4,0x66,0xfe,0xe2,0x5d,0x52,0x4d,0x2d,0x49,0x29,0xa7,0x01,0x53,0x47,0x51,0x58,0x37,0x07,0x06,0x70,0x58,0x5c,0x74,0x7b,0x64,0x80,0xc5,0x6a,0x01,0xbf,0x2a,0x3a,0x3a,0x2a,0x29,0x39, +0x3a,0x01,0xfc,0xf8,0x01,0x00,0x75,0x66,0x37,0x65,0x3f,0xfe,0xfe,0xf4,0x64,0xce,0x31,0x5f,0x5b,0x04,0x91,0xfb,0x64,0x5d,0x97,0x56,0xc8,0x01,0x36,0xa7,0xbd,0x45,0x8c,0x64,0x9f,0x96,0xb8,0xae,0xbb,0x69,0x02,0x57,0x65,0x75,0x57,0x5f,0x77,0x82,0xec,0x36,0x02,0x39,0x29,0x2a,0x38,0x3b,0x27,0x27,0x3d,0x00,0x00,0x02,0x00,0xa7, +0xff,0xf6,0x05,0xc1,0x05,0x82,0x00,0x40,0x00,0x4c,0x00,0x00,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x23,0x22,0x26,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x06,0x07,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x37,0x36,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x07,0x0e,0x03,0x15,0x14,0x17,0x36,0x36, +0x33,0x32,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x21,0x16,0x1b,0x57,0x78,0x77,0x56,0x5c,0x77,0x9e,0x80,0x2f,0x57,0x56,0x45,0x3e,0x3e,0x1b,0x1e,0x25,0x18,0x10,0x02,0xda,0xfd,0x93,0x01,0x20,0xf9,0xaf,0xa5,0x12,0xac,0x15,0xd7,0xe9,0xcd,0xc0,0x78,0x3c, +0xb4,0x16,0x6f,0x5d,0x26,0x49,0x49,0x52,0x46,0x4b,0x1c,0x2e,0x49,0x0d,0x9a,0x3b,0x29,0x27,0x3b,0x3a,0x28,0x27,0x3d,0x01,0x18,0x05,0x76,0x59,0x5a,0x75,0x7c,0x65,0xd1,0xfe,0xf7,0x27,0x46,0x4d,0x44,0x2e,0x33,0x57,0x84,0x1b,0x02,0xf1,0xc7,0xa3,0xef,0xa4,0x3b,0x28,0x77,0x57,0x3b,0x2d,0x28,0x3d,0x94,0xb6,0x35,0x30,0x56,0x71, +0x93,0x5f,0xca,0x39,0x8b,0x7f,0x22,0x39,0x54,0x4c,0x34,0x49,0x3d,0xd0,0x29,0x3b,0x39,0x2b,0x29,0x39,0x3a,0x00,0x00,0x02,0x00,0x67,0xff,0xf4,0x06,0x00,0x04,0xfe,0x00,0x37,0x00,0x43,0x00,0x00,0x13,0x34,0x12,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x02,0x06,0x23,0x22,0x26, +0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x01,0x23,0x03,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x02,0x25,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x67,0xd9,0xc5,0x57,0x9d,0x2b,0x1e,0x51,0x38,0x1a,0x3f,0x4b,0x35,0x37,0x15,0x31,0x37,0xa8,0x54,0x79,0x43,0x23, +0x55,0x51,0x1d,0x2e,0x11,0x1d,0x2d,0x0b,0x01,0x13,0xc1,0xe5,0x3e,0x6d,0x3f,0x4a,0x67,0x31,0x3c,0x08,0x6f,0x58,0x5b,0x76,0x7a,0x65,0xc7,0xe6,0x01,0xbd,0x2a,0x39,0x3a,0x29,0x2a,0x37,0x38,0x01,0xdb,0xfa,0x01,0x1c,0x6a,0x57,0x94,0x7a,0x26,0x48,0x35,0x26,0xe1,0xa8,0x88,0xfe,0xe5,0x8f,0x32,0x51,0x1d,0x28,0x88,0x7f,0xfd,0x73, +0x02,0x46,0xa1,0x7a,0x63,0xb5,0x6a,0x9d,0x76,0x5c,0x6e,0x74,0x58,0x5d,0x79,0x01,0x06,0x32,0x02,0x3b,0x27,0x2a,0x38,0x38,0x2a,0x28,0x3c,0x00,0x00,0x02,0x00,0xd0,0xff,0xf2,0x05,0x97,0x04,0xa3,0x00,0x0f,0x00,0x1e,0x00,0x00,0x01,0x32,0x04,0x12,0x15,0x14,0x02,0x04,0x23,0x22,0x24,0x02,0x35,0x34,0x12,0x24,0x13,0x32,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x3a,0xaa,0x01,0x18,0x9b,0x9e,0xfe,0xe6,0xaf,0xa9,0xfe,0xe7,0x9e,0xa0,0x01,0x1e,0xa2,0xcb,0xf2,0x6d,0xc7,0x7f,0x82,0xcd,0x71,0x71,0xc9,0x04,0xa3,0x9a,0xfe,0xed,0xad,0xad,0xfe,0xec,0x96,0x9c,0x01,0x14,0xa7,0xa9,0x01,0x15,0x9c,0xfb,0xe5,0xf9,0xc8,0x80,0xd0,0x74, +0x76,0xd0,0x80,0x7d,0xcf,0x73,0x00,0x02,0x00,0xd2,0xff,0xf7,0x05,0x95,0x04,0xa3,0x00,0x2a,0x00,0x36,0x00,0x00,0x05,0x27,0x36,0x12,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x24,0x33,0x32,0x04,0x12,0x15, +0x10,0x25,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x4d,0x75,0x80,0x94,0x70,0xc9,0x81,0x85,0xc7,0x6e,0x85,0x6e,0x2d,0x15,0x38,0x69,0x48,0x48,0x6b,0x5b,0xa4,0x6f,0x75,0xbc,0x68,0xa0,0x01,0x11,0xaf,0xa5,0x01,0x15,0xa9,0xfd,0x93,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x09,0x70,0x69,0x01,0x19,0x97,0x65,0xb9, +0x6f,0x6a,0xbc,0x71,0x9a,0xb4,0x0b,0x34,0x4d,0x4b,0x69,0x6b,0x49,0x4e,0x81,0x49,0x73,0xd6,0x8e,0x97,0x01,0x07,0x92,0x8e,0xfe,0xfa,0x8f,0xfe,0x90,0x65,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x02,0x01,0x47,0xff,0xf2,0x05,0x21,0x06,0x66,0x00,0x25,0x00,0x31,0x00,0x00,0x25,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x01,0x36,0x12,0x37,0x17,0x0e,0x02,0x07,0x0e,0x03,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x08,0x26,0x26,0x65,0x4b,0x50,0x65,0x6c,0xc8,0x7e,0xa2,0xfb,0x8b,0x01,0x82,0x94,0xca,0x3a,0x92,0x2e,0x5c,0x75,0x8d,0x69,0x8f,0x57, +0x27,0x69,0xba,0x6a,0x61,0x90,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0xa1,0x26,0x3e,0x2d,0x50,0x62,0x68,0x4a,0x58,0x93,0x55,0x7f,0xe8,0x93,0x01,0x2b,0x01,0x35,0x77,0x01,0x06,0x9d,0x36,0x7b,0xa7,0x89,0x77,0x5a,0x91,0x7b,0x71,0x51,0x5c,0xa0,0x62,0x6b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0xa3,0xff,0xf2, +0x05,0xc4,0x06,0xac,0x00,0x45,0x00,0x50,0x00,0x5c,0x00,0x00,0x01,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x02,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x37,0x26,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x33,0x32,0x12,0x35,0x34, +0x2e,0x03,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x04,0x17,0x01,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xe3,0xec,0x71,0x4f,0x26,0x1d,0x2a,0x44,0x67,0xe9,0xc2,0x6f,0x35,0x64,0xb5,0x71,0x62,0xcb,0x6a,0x47,0x9f,0x69,0x49,0x68,0x69,0x48,0x36,0x57, +0x16,0x27,0x1c,0x54,0x7a,0x7f,0x62,0x76,0x86,0x56,0x5d,0xa3,0x39,0x6d,0x81,0x1f,0x3c,0x59,0x73,0xb3,0x78,0x6a,0x3e,0x8b,0x66,0x56,0x01,0x2a,0x96,0xfd,0x51,0x27,0x2e,0x24,0x17,0x20,0x39,0xf9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0x66,0x71,0x2d,0x12,0x2d,0x1e,0x1d,0x2e,0x28,0x59,0x74,0x93,0xcf,0x8f,0xc0,0xfe,0xc6,0xae, +0x81,0x6f,0x78,0x78,0x69,0x49,0x4b,0x69,0x3b,0x30,0x32,0x4c,0x74,0x01,0x4f,0x72,0x72,0x97,0xd8,0xd4,0x9c,0xe5,0x73,0x81,0x01,0x1d,0xfc,0x65,0x92,0x6c,0x4c,0x3c,0x40,0x2b,0x43,0x57,0x3a,0x5f,0x82,0x68,0x53,0xfc,0x2e,0x69,0x77,0x81,0x93,0x39,0x3e,0x4c,0xe4,0xfd,0xf9,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03, +0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x3d,0x00,0x47,0x00,0x53,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x24,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x05,0x0e,0x02,0x15,0x14,0x16,0x33,0x32, +0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0xa7,0x32,0x64,0x16,0x2b,0x3a,0x19,0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x5c,0xbc,0xa9,0x01,0x42,0x85,0x4b,0x1e, +0xa8,0xb4,0xcc,0xfe,0xf4,0x87,0x98,0x44,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0xf8,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x5e,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x02,0x0e,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa5,0xe0,0x8c,0x2c,0x54,0x2f,0x34,0x41,0x2f, +0xa3,0xb0,0x86,0xa0,0x34,0x45,0x23,0x6d,0xa7,0xa2,0xb9,0xd4,0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0xfe,0xb6,0x50,0x2c,0x1f,0x20,0x27,0x01,0x7b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x04,0x00,0xdd,0xff,0xf2,0x05,0x8a,0x06,0x3d,0x00,0x47,0x00,0x51,0x00,0x5c,0x00,0x68,0x00,0x00,0x01,0x14,0x06,0x23, +0x06,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x17,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x25,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x36, +0x36,0x35,0x35,0x33,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x03,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x77,0xd0,0xa8,0x23,0x72,0x80,0xc7,0x9c,0x4c,0x4a,0x41,0xc6,0x32,0x7a,0xcb,0x70,0x48,0x6b,0x6c,0x47,0x32,0x64,0x16,0x2b,0x3a,0x19, +0x74,0x65,0x73,0x8f,0x86,0x6d,0x50,0x7a,0x5a,0xe5,0x6f,0x80,0x85,0x3d,0x68,0xe7,0x01,0x20,0x0f,0x4c,0x66,0x4d,0x4a,0x67,0x0b,0x2b,0x3f,0xa5,0xfe,0x7f,0x5d,0x42,0x26,0x3e,0x42,0x2f,0x3d,0x7d,0x35,0x2a,0x17,0x1c,0x25,0x31,0xf7,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x05,0xd5,0x99,0xbe,0x23,0x3c,0x31,0x4a,0xd9,0xb6,0xb9,0xd4, +0x75,0x5e,0x74,0x71,0xc4,0x70,0x6b,0x49,0x49,0x69,0x4c,0x3a,0x16,0x70,0x42,0x4f,0x34,0x3c,0x70,0x56,0x5d,0x70,0x34,0x55,0x89,0x73,0xfa,0xd7,0xa6,0xc8,0x9e,0x6b,0x08,0x35,0x5c,0x49,0x6b,0x71,0x47,0x18,0x1d,0x1c,0x6b,0x4b,0x5e,0xfa,0x87,0x50,0x2c,0x1f,0x20,0x27,0x03,0xf6,0x21,0x29,0x1c,0x29,0x27,0x1e,0x18,0x30,0xfd,0x83, +0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x03,0x00,0x44,0xff,0xf2,0x06,0x24,0x06,0xac,0x00,0x4d,0x00,0x58,0x00,0x64,0x00,0x00,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, +0x33,0x32,0x05,0x07,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0xfe, +0x36,0x57,0x15,0x2e,0x40,0x54,0x94,0x54,0x5b,0x40,0x63,0x79,0x5a,0x5b,0x6f,0x5d,0x39,0x62,0x50,0x93,0x59,0x35,0x74,0xd1,0xa0,0x70,0x6f,0x92,0x5d,0xa7,0x01,0x70,0x46,0x8f,0xa7,0x5a,0x3f,0x1d,0x28,0x48,0x5f,0xfb,0xed,0x69,0x84,0xe1,0x82,0x9d,0x6d,0x71,0x98,0x87,0xe1,0x7e,0x76,0xcc,0x78,0x48,0x6b,0x6c,0xf0,0x14,0x25,0x21, +0x1a,0x1a,0x25,0xf4,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x03,0x50,0x3b,0x30,0x43,0xe3,0x6e,0x71,0xc0,0x6e,0x37,0x6f,0x87,0x62,0x7f,0x7f,0x62,0x87,0x6d,0x39,0x88,0xe6,0x80,0xa4,0xa7,0x7b,0x70,0x38,0x27,0x7e,0x4e,0x58,0x7d,0xbb,0x8b,0x43,0x4f,0x1e,0x2e,0x1d,0x20,0x2f,0x24,0x5d,0xb8,0xfe,0xfe,0xcb,0xaf,0xfe,0xd5,0xaa,0x6a, +0x6a,0x94,0x01,0x04,0x9f,0xa1,0x01,0x3a,0xb2,0x6b,0x49,0x49,0x69,0xfd,0xd9,0x14,0x57,0x17,0x2f,0x35,0x32,0x2a,0x4b,0x02,0x5b,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x03,0x00,0x9a,0xfd,0xeb,0x05,0xce,0x04,0xa5,0x00,0x2d,0x00,0x37,0x00,0x43,0x00,0x00,0x01,0x24,0x33,0x32,0x12,0x15,0x11,0x23,0x11,0x34,0x26,0x26, +0x23,0x22,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x32,0x01,0x16,0xc4,0xd3,0xef,0xa8,0x4d, +0x82,0x4b,0x4c,0xee,0x5f,0x39,0x39,0x57,0x74,0x44,0x49,0x68,0x69,0x48,0x3b,0x32,0x17,0x1a,0x22,0x48,0x41,0x57,0x66,0x70,0x4a,0x48,0x5f,0x44,0x29,0x3d,0x1b,0x24,0x26,0x19,0x2c,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x0f,0x96,0xfe,0xeb,0xf3,0xfb,0x4e,0x04,0xb2,0x66,0xab,0x61,0x4b,0x36,0xa7,0xba,0x55,0xea,0xa3,0x59, +0x69,0x49,0x4b,0x69,0x27,0x34,0x8f,0x37,0xac,0x73,0x22,0x69,0x52,0x4c,0x70,0x3c,0x92,0x5a,0x2a,0x1b,0x1b,0x30,0xfc,0xca,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x04,0x00,0xb9,0xfe,0xa4,0x05,0xae,0x04,0xa5,0x00,0x4a,0x00,0x5d,0x00,0x67,0x00,0x73,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x11,0x10,0x02,0x06,0x07,0x16, +0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x06,0x07,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x25,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x07,0x06,0x07,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x01,0x14,0x16, +0x33,0x32,0x36,0x37,0x36,0x24,0x33,0x32,0x17,0x36,0x36,0x35,0x35,0x01,0x06,0x06,0x05,0x34,0x27,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x43,0x1d,0xd2,0x3c,0xa8,0x98,0x19,0x38,0x34,0x5e,0x6b,0x48,0x49,0x6a,0x15,0x5b,0x45,0xbc,0x86,0x8c,0x3e,0x63,0x6e,0xae,0xbf, +0x02,0x0d,0x7d,0x54,0x1c,0x3c,0x40,0x56,0xa3,0x22,0x0f,0x14,0x39,0x4a,0x5a,0x36,0x58,0x60,0x39,0x2c,0x0d,0x62,0x3f,0x48,0x6b,0x6c,0x47,0x74,0xcf,0x7a,0x5c,0xa6,0x66,0x44,0x9c,0xfe,0x62,0x21,0x16,0x1c,0x60,0x60,0x82,0x01,0x21,0x42,0x21,0x2c,0x26,0x31,0xfd,0x99,0xae,0x87,0x03,0xb6,0x47,0x3c,0x26,0x1c,0x1c,0x25,0xfd,0x5f, +0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x3f,0x1b,0x49,0xee,0xff,0x00,0xfe,0xff,0xfe,0xf8,0x88,0x1b,0x35,0x7e,0x46,0x6c,0x6c,0x51,0x20,0x26,0x16,0x1e,0x57,0x41,0x2f,0x6a,0x67,0x56,0x95,0x53,0xe5,0x36,0x7a,0x72,0x7d,0x8f,0x3f,0x5a,0x13,0x05,0x03,0x24,0x2a,0x21,0x78,0x7b,0x3a,0x70,0x1b,0x44,0x50,0x6b,0x49,0x49,0x69,0x70, +0xc2,0x71,0x71,0xaf,0x5f,0x38,0xfb,0x11,0x1d,0x1f,0x25,0x2e,0x3e,0x68,0x06,0x19,0x7f,0x49,0x42,0xfe,0xf0,0x4d,0x5b,0x46,0x35,0x20,0x24,0x31,0x19,0x29,0x26,0x02,0xb8,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x00,0x15,0xff,0xf2,0x06,0x52,0x04,0xa1,0x00,0x33,0x00,0x3f,0x00,0x00,0x01,0x12,0x11,0x14,0x06,0x06, +0x23,0x22,0x26,0x26,0x35,0x37,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x10,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x10,0x03,0x01,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0xb0,0xa2,0x70,0xcd,0x84, +0x78,0xca,0x6a,0x03,0x0c,0xfe,0xe9,0x88,0x97,0x5e,0x17,0x50,0x30,0x48,0x6b,0x6c,0x47,0x6e,0xba,0x76,0xf3,0xcf,0xcf,0xf6,0x06,0x07,0x91,0x83,0x78,0x8d,0x9c,0xfc,0xa9,0x1a,0x27,0x27,0x1a,0x1a,0x26,0x26,0x04,0x9f,0xfe,0x8d,0xfe,0xdf,0x9f,0xf6,0x84,0x5f,0xb4,0x7a,0x56,0xcd,0x22,0x01,0x47,0xc6,0xb2,0xfe,0xf2,0x83,0x27,0x2f, +0x6b,0x49,0x49,0x69,0xb0,0x01,0x49,0xa5,0xf4,0x01,0x1d,0xfd,0xdc,0x30,0x6b,0x6c,0x33,0x7a,0x8c,0xbb,0xc8,0x01,0x1a,0x01,0x42,0xfb,0xfe,0x27,0x1a,0x1b,0x27,0x26,0x1c,0x1b,0x26,0x00,0x00,0x02,0x01,0x09,0x01,0xb4,0x04,0x6f,0x05,0x9a,0x00,0x0c,0x00,0x1c,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26, +0x26,0x27,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x02,0xbd,0x79,0x93,0x8d,0x7f,0x80,0x8a,0x42,0x78,0x50,0x74,0xcb,0x73,0x6d,0xc8,0x7d,0x75,0xcb,0x74,0x6f,0xca,0x05,0x09,0xc9,0x9a,0xa5,0xbc,0xbb,0xa6,0x62,0xa6,0x5b,0x91,0x86,0xe6,0x89,0x92,0xe3,0x7c,0x80,0xe4,0x8d,0x8c,0xe6,0x83,0x00, +0x00,0x01,0x01,0x22,0xff,0x83,0x04,0x56,0x05,0x9a,0x00,0x1d,0x00,0x00,0x05,0x36,0x00,0x35,0x34,0x02,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x24,0x33,0x32,0x16,0x12,0x15,0x14,0x02,0x00,0x07,0x01,0xa7,0xfa,0x01,0x0b,0x5d,0x3d,0x35,0xb1,0x60,0x42,0x39,0x9b,0x39,0x51,0xa5,0x01,0x14,0x6f,0x4b, +0x78,0x49,0x85,0xfe,0xf0,0xb0,0x19,0xe7,0x01,0xb7,0xba,0x97,0x01,0x33,0x35,0x39,0x18,0x4b,0xb0,0x43,0x4d,0x51,0xe6,0x5f,0x3a,0x78,0x5a,0x88,0xfe,0xed,0x90,0x9b,0xfe,0xae,0xfe,0x9b,0x9a,0x00,0x00,0x01,0x00,0xf8,0xff,0x83,0x04,0x80,0x05,0x9a,0x00,0x23,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x36,0x33,0x32, +0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x16,0x12,0x13,0x03,0xe7,0x21,0x4d,0x63,0x85,0x57,0x74,0x5b,0x1b,0x6d,0xb8,0x41,0x41,0x5d,0x79,0x77,0x6a,0x53,0xf2,0x6d,0x42,0xa3,0xe7,0x6b,0xba,0xd0,0x38,0x61,0x64,0x62,0x88,0x1c,0x7d,0xf0,0x01,0x05,0xa0,0x59,0x36, +0x8c,0x3b,0x18,0x54,0xc7,0x48,0x59,0x63,0x90,0x73,0x85,0x90,0x7f,0x98,0x8b,0x5d,0x9f,0x89,0x5d,0x5f,0xfe,0x91,0xfe,0xff,0x00,0x01,0x01,0x0e,0xff,0x83,0x04,0x69,0x05,0x9a,0x00,0x31,0x00,0x00,0x01,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x15,0x14, +0x06,0x06,0x07,0x16,0x17,0x07,0x02,0x21,0x22,0x07,0x27,0x36,0x33,0x32,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x01,0xa0,0x8c,0x8f,0x33,0x2e,0x59,0x4a,0x5c,0x69,0x4e,0xec,0x60,0x3c,0x8b,0xee,0x71,0x9c,0xbf,0xb1,0x8e,0x2d,0x63,0x53,0x88,0x5b,0x8d,0xa8,0xfe,0xa1,0x37,0x36,0x37,0x5f,0x69,0x85,0x6c,0x59,0x7c,0x78, +0x73,0x43,0x81,0x23,0x03,0x68,0x36,0x08,0x41,0x67,0x32,0x4b,0x4e,0x7f,0x5b,0x7b,0x77,0x79,0x99,0x84,0x8b,0x92,0x52,0x93,0x59,0x78,0x75,0x37,0x69,0xc4,0x4e,0x01,0x68,0x14,0x81,0x23,0x28,0x2c,0x97,0x46,0x53,0x5e,0x18,0x11,0x00,0x01,0x00,0xb7,0xff,0x83,0x04,0xc0,0x05,0x9a,0x00,0x22,0x00,0x00,0x01,0x20,0x11,0x34,0x37,0x22, +0x0e,0x02,0x15,0x14,0x12,0x12,0x04,0x17,0x07,0x26,0x00,0x00,0x02,0x35,0x34,0x36,0x24,0x33,0x32,0x17,0x06,0x15,0x14,0x16,0x33,0x37,0x07,0x06,0x04,0x68,0xfe,0x53,0x0e,0x2e,0xa9,0x76,0x1b,0x86,0xfb,0x01,0x1c,0x77,0x30,0x97,0xfe,0xb0,0xfe,0xe9,0x90,0x57,0x01,0x32,0x83,0x8e,0x27,0x13,0x8a,0x91,0x40,0x10,0x2a,0x02,0xa8,0x01, +0xc3,0x57,0x50,0x1c,0x23,0x2a,0x45,0x92,0xfe,0xa9,0xfe,0xad,0xf2,0x2b,0x88,0x32,0x01,0x13,0x01,0x80,0x01,0x7e,0xac,0x6f,0x61,0x58,0x29,0x9f,0x3f,0xb0,0x9e,0x05,0x9d,0x05,0x00,0x01,0x00,0x78,0xff,0x83,0x04,0xff,0x05,0xae,0x00,0x16,0x00,0x00,0x01,0x12,0x12,0x17,0x07,0x26,0x02,0x03,0x06,0x23,0x22,0x26,0x02,0x03,0x37,0x17, +0x12,0x16,0x33,0x32,0x37,0x02,0x03,0x03,0x36,0x19,0xee,0xc2,0x4c,0x98,0xe5,0x46,0xa6,0x81,0x73,0x93,0x48,0x03,0xa5,0x08,0x09,0x69,0x6d,0x3c,0x91,0x3c,0x0b,0x05,0xae,0xfd,0xd5,0xfd,0x09,0x8f,0x7a,0x62,0x01,0x9b,0x01,0x24,0x56,0x9e,0x01,0x57,0x01,0x57,0x14,0x9d,0xfe,0xbf,0xf1,0x4e,0x01,0x2c,0x01,0x41,0x00,0x01,0x00,0x6c, +0xff,0xf6,0x05,0x0b,0x05,0x9a,0x00,0x2c,0x00,0x00,0x01,0x12,0x12,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x02,0x03,0x01,0x10,0x0d,0x94,0xef,0x9d,0x39,0x8f,0x5c,0x61,0x61,0x70, +0x7f,0x73,0x40,0xdb,0xaf,0x53,0xa0,0x5b,0x4e,0x9a,0x65,0x67,0x7a,0x5f,0x63,0x99,0x7d,0x57,0x35,0x8c,0xee,0x74,0xbe,0xfe,0xe1,0xb5,0x1f,0x04,0x66,0xfe,0xd1,0xfe,0x33,0xe3,0x5a,0x91,0x52,0x42,0x6d,0x31,0x38,0x3f,0x62,0x7a,0x4e,0x95,0xc0,0x45,0x42,0x73,0x69,0x6c,0x5a,0x3c,0x6a,0x34,0x51,0x4b,0x54,0x68,0x41,0x70,0xdb,0x8f, +0xf0,0x01,0xf1,0x01,0x75,0x00,0x00,0x01,0x00,0x3b,0xff,0xf6,0x05,0x3c,0x05,0xae,0x00,0x26,0x00,0x00,0x01,0x0a,0x02,0x23,0x22,0x26,0x27,0x36,0x37,0x36,0x12,0x35,0x34,0x26,0x23,0x22,0x02,0x03,0x27,0x12,0x12,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x02,0x02,0x07,0x16,0x33,0x32,0x36,0x12,0x12,0x13,0x05,0x3c,0x07,0x72,0xf7,0xd9, +0x71,0x98,0x45,0x0a,0x19,0x89,0x6d,0x67,0x6b,0x79,0x90,0x1b,0x8d,0x1c,0x68,0xb7,0x93,0x6f,0x9c,0x54,0x3e,0x73,0x3a,0x34,0x2c,0x83,0xa4,0x61,0x31,0x0a,0x05,0xae,0xfd,0xac,0xfd,0xa6,0xfe,0xf6,0x29,0x2a,0x18,0x2c,0xef,0x01,0x4f,0x8a,0x92,0x81,0xfe,0xe8,0xfe,0xbd,0x2f,0x01,0x1b,0x01,0x19,0x89,0x65,0xb1,0x68,0x69,0xfe,0xf8, +0xfe,0xe9,0x5c,0x10,0x77,0x01,0x01,0x01,0xc4,0x01,0xd7,0x00,0x00,0x01,0x00,0xcb,0xff,0x83,0x04,0xad,0x05,0xae,0x00,0x15,0x00,0x00,0x05,0x26,0x02,0x26,0x26,0x23,0x22,0x07,0x27,0x3e,0x02,0x37,0x17,0x04,0x07,0x36,0x33,0x32,0x04,0x12,0x17,0x04,0x14,0x12,0x80,0xa2,0xb4,0x5b,0x83,0x60,0x23,0x2b,0x9f,0xda,0x63,0x6a,0xfe,0xeb, +0x87,0x38,0x3e,0x89,0x01,0x1b,0xda,0x19,0x7d,0x81,0x01,0x4c,0xf6,0x85,0x39,0x7e,0x67,0xef,0xf2,0x56,0x64,0xff,0xf6,0x07,0xfe,0xfe,0x43,0xdb,0x00,0x01,0x00,0xe3,0xff,0x83,0x04,0x95,0x05,0x9a,0x00,0x25,0x00,0x00,0x05,0x26,0x35,0x10,0x12,0x00,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x2e,0x02,0x35, +0x34,0x36,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x02,0x15,0x14,0x17,0x01,0x0e,0x2b,0xce,0x01,0x45,0xbc,0x66,0x6c,0x73,0x4b,0x28,0x85,0x72,0x21,0x7a,0xaa,0x5c,0x36,0x3d,0x3a,0x39,0x1e,0x2b,0x88,0xeb,0x91,0x2e,0x7d,0x95,0xc0,0x01,0x31,0x02,0x4d,0x01,0x44,0x4d,0x45,0x88,0x6b,0x46,0x33,0x1a,0x41,0x54,0x0f,0x91,0x12, +0x54,0x74,0x3d,0x28,0x56,0x3b,0x38,0x5c,0x2d,0x19,0x12,0xfe,0xda,0xfd,0xf6,0xfc,0xc5,0x78,0x00,0x02,0x00,0x47,0xff,0xf1,0x03,0xc8,0x03,0x6e,0x00,0x0f,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0xc8, +0x78,0xd2,0x78,0x78,0xd0,0x77,0x79,0xd0,0x76,0x79,0xd0,0x79,0x97,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x01,0xaf,0x76,0xce,0x7a,0x79,0xd0,0x75,0x7a,0xd1,0x74,0x75,0xd0,0x7a,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x01,0x00,0x5a,0xff,0xf1,0x03,0xb5,0x03,0x6e,0x00,0x1b,0x00,0x00,0x13,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x5b,0x3d,0xe0,0x84,0x79,0xcb,0x75,0x7c,0xd1,0x76,0x85,0xda,0x39,0x89,0x26,0x88,0x59,0x84,0xb0,0xac,0x7e,0x5c,0x93,0x24,0x02,0x68,0x7a,0x8c,0x7a,0xd0,0x75,0x73,0xd1,0x7a,0x91,0x7b,0x37,0x54,0x60,0xab,0x7c,0x7f,0xb9,0x65, +0x58,0x00,0x00,0x01,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x64,0x00,0x12,0x00,0x00,0x05,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x03,0xcc,0x70,0xc5,0x85,0x92,0xcf,0x6d,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x97,0x0d,0x91,0xef,0x75,0x6f,0xc7,0x82,0x52,0x8a,0x4d,0xc8,0xb1,0x03,0x5e, +0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x01,0x01,0x26,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x27,0x01,0x02,0xea,0xfd,0xcb,0x2d,0x2e,0x89,0x26,0x88,0x59,0x83,0xb1,0xab,0x7f,0x5c,0x93,0x24,0x86, +0x3d,0xe0,0x84,0x79,0xcc,0x74,0x7c,0xd1,0x76,0x05,0x05,0x01,0xc2,0xfd,0xfe,0x02,0x7d,0x32,0x54,0x38,0x54,0x60,0xa8,0x7e,0x80,0xb4,0x65,0x58,0x46,0x7a,0x8c,0x78,0xcd,0x75,0x73,0xd1,0x7a,0x01,0xfe,0x07,0x00,0x01,0x00,0x5a,0xfd,0xfe,0x03,0xb5,0x03,0x6e,0x00,0x1f,0x00,0x00,0x13,0x01,0x07,0x23,0x22,0x26,0x26,0x35,0x34,0x36, +0x36,0x33,0x32,0x16,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x07,0x01,0x79,0x01,0xb5,0x0b,0x06,0x75,0xd2,0x7c,0x74,0xcb,0x7a,0x84,0xdd,0x40,0x86,0x25,0x93,0x5b,0x7f,0xab,0xb2,0x82,0x59,0x88,0x26,0x89,0x2a,0x32,0xfd,0xe0,0xfd,0xfe,0x01,0xf9,0x01,0x7a,0xd0,0x74,0x74,0xcd,0x79,0x8b, +0x7b,0x46,0x58,0x65,0xb3,0x81,0x7e,0xa8,0x60,0x54,0x38,0x50,0x36,0xfd,0x83,0x00,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x27,0x00,0x33,0x00,0x00,0x01,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x33,0x14,0x16, +0x16,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x11,0x7a,0x52,0x55,0x73,0x82,0x61,0x5f,0x83,0x75,0xd3,0x81,0x86,0xc5,0x70,0x70,0xc6,0x85,0x91,0xcf,0x6d,0x98,0x4d,0x8d,0x5b,0x89,0x9b,0x99,0xfe,0x2b,0x3c,0x28,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x02,0xdf,0x4e,0x0a,0x81, +0x56,0x5b,0x87,0x84,0x5d,0x7b,0xce,0x76,0x76,0xee,0x91,0xfe,0x7a,0x90,0xef,0x76,0x6e,0xc8,0x82,0x56,0x86,0x4d,0xc8,0xb1,0x01,0x6a,0xb0,0xbf,0xfe,0xd2,0x28,0x3b,0x3c,0x27,0x29,0x3b,0x3b,0x00,0x00,0x02,0x00,0x44,0xff,0xf1,0x03,0xcc,0x05,0xe9,0x00,0x2f,0x00,0x3b,0x00,0x00,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x16, +0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x12,0x15,0x23,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x11,0x10,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x07,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x86,0x5c,0x5e,0x85,0x38,0x2a,0x35,0xfb,0xc6,0x8a,0xc6,0x6a, +0x73,0xc5,0x82,0xd9,0xf5,0x98,0x4d,0x8d,0x5c,0x88,0x9b,0x01,0x23,0x94,0x96,0x3a,0x25,0x0a,0x0b,0x5e,0x83,0x7f,0x3c,0x27,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x02,0x7c,0x60,0x84,0x85,0x5e,0x52,0x43,0x1d,0x49,0x37,0x9f,0xbb,0x6a,0xd7,0x8c,0x02,0x54,0x8a,0xdf,0x6e,0xfe,0xf0,0xdb,0x60,0xa0,0x5c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x61, +0x5b,0x23,0x2d,0x10,0x01,0x83,0x60,0x28,0x3b,0x3b,0x28,0x29,0x3b,0x3c,0x00,0x01,0x00,0x30,0xfe,0x05,0x03,0xe0,0x03,0x6e,0x00,0x32,0x00,0x00,0x05,0x0e,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x07,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06, +0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x03,0xe0,0x07,0x40,0x6d,0x4b,0x50,0x68,0x3a,0x1d,0x35,0x45,0x44,0x34,0x1c,0xaf,0x7c,0x7c,0xab,0x2d,0x7b,0x4a,0x79,0xd0,0x76,0x7a,0xd1,0x77,0x1e,0x32,0x50,0x58,0x35,0x2c,0x28,0x13,0x1d,0x1d,0x15,0x15,0xf9,0x48,0x74,0x46,0x32,0x5d,0x3b,0x3d,0x62,0x6e,0x6b,0x69, +0x6c,0x69,0x34,0x7f,0xa7,0xae,0x82,0x58,0x4a,0x52,0x72,0x82,0x7a,0xd1,0x74,0x72,0xca,0x79,0x34,0x75,0x68,0x7e,0x88,0x88,0x37,0x2a,0x2c,0x09,0x19,0x23,0x48,0x00,0x00,0x02,0x00,0x47,0xff,0xf0,0x03,0xc8,0x03,0x6e,0x00,0x1d,0x00,0x24,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07, +0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x25,0x34,0x26,0x27,0x16,0x17,0x36,0x02,0x6c,0x53,0x72,0xaf,0x7c,0x64,0xa0,0x1a,0x7c,0x9d,0x6e,0x51,0x77,0x84,0x79,0xd1,0x75,0x79,0xd0,0x79,0x9d,0x76,0xfe,0xc5,0x57,0x42,0x0a,0x74,0x1b,0x6f,0x1d,0xb5,0x6e,0x80,0xb0,0x76,0x5e,0x09,0x9b,0x6f,0x4d,0x9d, +0x1d,0x45,0xf8,0x92,0x72,0xc6,0x76,0x75,0xd0,0x7a,0x92,0xfe,0x2f,0xfd,0x45,0x66,0x04,0x91,0x7a,0x2e,0x00,0x02,0x00,0x44,0xfd,0xfe,0x03,0xcc,0x03,0x6e,0x00,0x30,0x00,0x3c,0x00,0x00,0x25,0x34,0x36,0x33,0x33,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x20,0x11,0x11,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x33,0x14,0x06,0x06,0x23,0x22, +0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x37,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x01,0xd3,0x83,0x5e,0x0b,0x0a,0x25,0x3a,0x97,0x93,0xfe,0xdd,0x98,0x8b,0x5b,0x93,0x48,0x98,0x6e,0xcf,0x91,0x83,0xc4,0x73,0x6a,0xc7,0x89,0xc6,0xfb,0x35,0x2a, +0x38,0x82,0x61,0x5c,0x86,0x7f,0x3b,0x28,0x29,0x3b,0x3c,0x28,0x28,0x3b,0xe3,0x5e,0x83,0x01,0x10,0x2d,0x23,0x5c,0x60,0xfe,0xaf,0xfe,0x6e,0xb1,0xbe,0x4c,0x83,0x5a,0x82,0xc7,0x6f,0x6e,0xe0,0x89,0x01,0xcc,0x8c,0xd8,0x69,0xbc,0x9e,0x37,0x49,0x1d,0x43,0x52,0x5c,0x87,0x84,0x5e,0x29,0x3b,0x3b,0x29,0x28,0x3b,0x3c,0x00,0x00,0x02, +0x00,0x80,0xff,0xf1,0x04,0x08,0x05,0xe9,0x00,0x0f,0x00,0x1a,0x00,0x00,0x01,0x14,0x02,0x23,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x15,0x07,0x10,0x21,0x22,0x06,0x15,0x11,0x10,0x21,0x20,0x11,0x04,0x08,0xf6,0xd8,0x8a,0xc6,0x6a,0x74,0xc7,0x83,0xdb,0xef,0x97,0xfe,0xc9,0x88,0x9b,0x01,0x23,0x01,0x37,0x01,0xc8, +0xd6,0xfe,0xff,0x6a,0xd7,0x8c,0x02,0x54,0x85,0xe3,0x6f,0xf2,0xdc,0x0d,0x01,0x4c,0xbd,0xb2,0xfd,0xe6,0xfe,0xaf,0x01,0x6f,0x00,0x01,0x00,0xa3,0xff,0xe7,0x03,0xe5,0x05,0xe8,0x00,0x09,0x00,0x00,0x13,0x25,0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x05,0xa3,0x01,0xd1,0x1c,0x01,0x2b,0x2a,0xfe,0x30,0x1c,0xfe,0xd4,0x05,0x16,0xd2,0xfa, +0xcb,0x86,0x80,0xd2,0x05,0x35,0x83,0x00,0x00,0x01,0x00,0x9b,0x00,0x00,0x03,0xed,0x05,0xe9,0x00,0x22,0x00,0x00,0x13,0x11,0x33,0x15,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x15,0x9b,0x97,0x73,0x87,0xca,0xf7,0x51,0x92,0xaa, +0x80,0x66,0x37,0x94,0x43,0x77,0x9d,0x91,0x7d,0x42,0xaa,0x80,0x4e,0x83,0x29,0x04,0x12,0x01,0xd1,0x45,0x4b,0xed,0xbd,0x57,0x9f,0x9d,0x85,0x65,0x66,0x5d,0x2e,0xd1,0xe0,0x42,0x7b,0x7d,0x7b,0x71,0x81,0x7a,0x3e,0x7b,0xa0,0x4e,0x3c,0xbe,0x00,0x01,0x00,0x5d,0x00,0x00,0x04,0x2b,0x05,0xe3,0x00,0x12,0x00,0x00,0x33,0x01,0x33,0x03, +0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x07,0x03,0x5d,0x01,0xeb,0xa7,0xd1,0x28,0x2c,0x7d,0xcb,0x71,0x97,0xac,0x7e,0x44,0x3f,0xe9,0x05,0xe3,0xfd,0x83,0x08,0x6a,0xbd,0x70,0xfe,0x29,0x01,0xa7,0x7f,0xb9,0x1e,0xfd,0x3f,0x00,0x01,0x00,0x31,0xff,0xe7,0x04,0x56,0x05,0xe3,0x00,0x09,0x00,0x00,0x33,0x01, +0x33,0x11,0x25,0x17,0x05,0x23,0x11,0x01,0x31,0x02,0x1d,0xb3,0x01,0x2c,0x29,0xfe,0x30,0x1c,0xfe,0x68,0x05,0xe3,0xfa,0xcf,0x87,0x80,0xd2,0x04,0x7a,0xfb,0x9f,0x00,0x00,0x02,0x00,0x57,0xff,0xf1,0x04,0x30,0x05,0xe3,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x33,0x15,0x23,0x11,0x14,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21, +0x11,0x33,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x03,0xb6,0x7a,0x7a,0x67,0xbb,0x7a,0xd0,0xf3,0xf1,0xc9,0x01,0x0e,0x97,0xfe,0x62,0x8d,0x9d,0xa6,0x8e,0x40,0x78,0x45,0x03,0x6e,0x8f,0xfe,0xa0,0x7c,0xb3,0x5f,0xee,0xd0,0xcb,0xf4,0x02,0x75,0xfc,0xfc,0xa4,0x94,0x8a,0x9d,0x3a,0x64,0x3f,0x01,0x82,0x00,0x02, +0x00,0x57,0x00,0x00,0x04,0x30,0x05,0xe9,0x00,0x11,0x00,0x1d,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x33,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x04,0x30,0x7a,0x97,0xfe,0xf2,0xca,0xf0,0xf3,0xd0,0x79,0xbc,0x67,0x7a,0xfe,0xef,0x46,0x77,0x40,0x8e, +0xa6,0x9d,0x8d,0x01,0x07,0x02,0x6c,0xfd,0x94,0x02,0x6c,0xf4,0xcb,0xcf,0xef,0x5f,0xb3,0x7c,0xfe,0xa1,0x01,0x81,0x3f,0x65,0x39,0x9c,0x8a,0x96,0xa2,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x03,0xb1,0x05,0xe3,0x00,0x07,0x00,0x00,0x13,0x21,0x01,0x21,0x15,0x21,0x01,0x21,0xd7,0x02,0xa8,0xfe,0x4f,0x01,0xe3,0xfd,0x50,0x01,0xaa,0xfe, +0x2c,0x05,0xe3,0xfa,0xac,0x8f,0x05,0x54,0x00,0x02,0x00,0x83,0xff,0xf1,0x04,0x04,0x05,0xfe,0x00,0x28,0x00,0x34,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27, +0x37,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x03,0x5e,0x4c,0x5a,0x6e,0x60,0x5f,0x6f,0x78,0xd2,0x78,0x78,0xd0,0x77,0x6a,0x63,0x5e,0x6f,0x5d,0x4d,0x63,0x36,0x3f,0xad,0x7a,0x7e,0xad,0x40,0x39,0x66,0x13,0xaf,0x7c,0x7c,0xab,0xad,0x7a,0x7e,0xad,0x05,0xfb,0x3c,0xb3,0x6d,0x6f,0xca,0x3e,0x3d,0xc7,0x75,0x76, +0xce,0x7a,0x79,0xd0,0x75,0x72,0xc7,0x40,0x3d,0xc8,0x72,0x6e,0xb4,0x3d,0x6a,0x2a,0x7e,0x4d,0x81,0xae,0xb4,0x7b,0x4b,0x80,0x2b,0x66,0xfb,0xb4,0x80,0xb0,0xae,0x82,0x81,0xae,0xb4,0x00,0x00,0x02,0x00,0x83,0xff,0xdc,0x04,0x04,0x05,0xe9,0x00,0x27,0x00,0x33,0x00,0x00,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16, +0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0xf4,0x39,0x40,0xae,0x7d,0x7a,0xad,0x3f,0x36,0x63,0x4d,0x5d,0x6f,0x5e,0x61,0x6c,0x78,0xd0,0x77,0x78,0xd2,0x78,0x6f, +0x5f,0x61,0x6d,0x5b,0x4d,0x11,0xae,0x7d,0x7a,0xad,0xa9,0x7e,0x7e,0xad,0x46,0x2a,0x80,0x4b,0x7c,0xb3,0xae,0x81,0x4d,0x7e,0x29,0x6b,0x3d,0xb4,0x6e,0x71,0xc9,0x3d,0x3e,0xca,0x71,0x76,0xd0,0x78,0x7a,0xce,0x76,0x75,0xc6,0x3e,0x3f,0xc9,0x6f,0x6d,0xb3,0x3e,0x04,0x4e,0x7c,0xb3,0xae,0x81,0x81,0xae,0xb1,0x00,0x00,0x02,0x01,0x48, +0xff,0xec,0x04,0xbc,0x05,0xa3,0x00,0x0b,0x00,0x17,0x00,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x03,0x10,0x02,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x12,0x04,0xbc,0xd6,0xe5,0xe0,0xd9,0xda,0xdf,0xe0,0xdb,0xa0,0x8c,0x8f,0x8a,0x8d,0x88,0x8f,0x92,0x89,0x02,0xc8,0xfe,0x7a,0xfe,0xaa,0x01,0x58,0x01, +0x84,0x01,0x78,0x01,0x63,0xfe,0xa0,0xfe,0x85,0x01,0x3c,0x01,0x13,0xfe,0xe1,0xfe,0xd0,0xfe,0xc9,0xfe,0xe7,0x01,0x11,0x00,0x00,0x01,0x01,0x21,0xff,0xec,0x04,0xe2,0x05,0xa3,0x00,0x2c,0x00,0x00,0x01,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x00,0x11,0x14,0x02,0x04, +0x23,0x22,0x27,0x27,0x16,0x33,0x32,0x36,0x12,0x35,0x10,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0xcd,0x29,0x30,0x4c,0x34,0x3e,0x4c,0x94,0x6f,0x9e,0xbc,0x77,0xd6,0x84,0xeb,0x01,0x05,0xaf,0xfe,0xcf,0xc4,0x48,0x50,0x1b,0x5f,0x68,0x93,0xdc,0x81,0xfe,0xa4,0x88,0x9d,0x68,0x54,0x3a,0x02,0xf2,0x0b,0x42,0x27,0x32,0x4e,0x5a, +0x3f,0x68,0x95,0xd9,0xb3,0x7b,0xd3,0x79,0xfe,0xa1,0xfe,0xb6,0xe2,0xfe,0x95,0xc1,0x0a,0xa5,0x19,0x92,0x01,0x1e,0xb6,0x02,0x2f,0xbd,0x90,0x66,0x88,0x00,0x00,0x02,0x00,0x74,0xff,0xec,0x05,0x8f,0x06,0x3b,0x00,0x4c,0x00,0x55,0x00,0x00,0x13,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36, +0x35,0x11,0x34,0x23,0x22,0x06,0x07,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27, +0xa4,0x66,0x65,0x57,0x24,0x47,0x3e,0x6c,0x68,0x30,0x5f,0x5a,0x53,0x24,0x20,0x2c,0x62,0x22,0x5a,0x2f,0x23,0x2c,0x5c,0x52,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x92,0x6a,0x2d,0x83,0x41,0x69,0x76,0x85,0x59,0x34,0x56,0x54,0x59,0x37,0x36,0x5e,0x5b,0x5f,0x37,0x78,0x77,0x26,0x35,0x02,0x1d,0x22,0x1c,0x37,0x4d, +0x28,0x06,0x3b,0x13,0x72,0x6e,0xfb,0xa2,0x72,0x11,0x17,0x28,0x19,0x1e,0x19,0x38,0x20,0x03,0xbd,0x8a,0x46,0x38,0x2a,0x33,0x74,0x55,0x56,0xbd,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e,0x01,0xfd,0xa8,0x9b,0x82,0x3a,0x48,0x9b,0x8b,0xfc,0x21,0x45,0x6d,0x19,0x1e,0x19,0x19,0x1e,0x19,0x67,0x6d,0x04,0x44,0x5b,0x43,0x0f,0xfc,0xd9, +0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x02,0x00,0x43,0xff,0xec,0x05,0xc1,0x05,0xa3,0x00,0x28,0x00,0x31,0x00,0x00,0x21,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x25,0x14, +0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x21,0x82,0x62,0x69,0x82,0xa0,0x82,0x69,0x63,0x81,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0xd4,0xb0,0x64,0xa2,0x35,0x6c,0xcf,0xaf,0xd5,0xfb,0x22,0x22,0x1c,0x37,0x4d,0x28,0x04,0x1e,0x70,0x89,0x8a,0x6f,0xfb,0xe2,0x04,0x1e,0x6f,0x8a,0x8a,0x6f,0xfd,0xc0,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59, +0x4e,0x03,0x89,0xb5,0xd2,0x44,0x42,0x86,0xd1,0xb6,0xfb,0xe4,0xba,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x00,0x01,0x00,0xf0,0xff,0xec,0x05,0x14,0x06,0x27,0x00,0x3d,0x00,0x00,0x01,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x15,0x14,0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x00,0x25,0x36,0x36,0x35,0x35, +0x33,0x15,0x14,0x06,0x06,0x07,0x0e,0x02,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x03,0xef,0x51,0x37,0x08,0x57,0x44,0xb6,0xe7,0xf1,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x01,0x00,0x01,0x1e,0xa9,0x97,0xa0,0x5a,0xac,0xa3,0xa4,0xb7,0x5a,0x6a, +0x64,0x2e,0x77,0x7d,0x2d,0x93,0xa6,0xb8,0x9f,0x96,0xb3,0x58,0x44,0x39,0x50,0x02,0x26,0x39,0x4f,0x3b,0x44,0xdc,0x90,0xdd,0x56,0xa0,0x21,0x11,0x12,0xc2,0x9f,0x01,0x0f,0x01,0x05,0x01,0x2e,0x4e,0x2d,0x61,0x41,0x7b,0x73,0x56,0x81,0x58,0x2b,0x2c,0x82,0xc7,0x8b,0xd6,0x83,0x89,0x0f,0x0f,0x01,0x3d,0xd9,0x93,0xb1,0xc8,0xcb,0xa7, +0x4c,0x5e,0x4f,0x00,0x00,0x02,0x00,0xd6,0xff,0xec,0x05,0x2e,0x06,0x3b,0x00,0x4e,0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x14,0x06,0x06,0x23,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x37,0x24,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x17,0x07,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x3e,0x02,0x35,0x35,0x34,0x36,0x37,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x05,0x2e,0x37,0x23,0x7d,0xf5,0x8f,0xae,0xaf,0x6a,0x64,0x2e,0x77,0x7d,0x2d,0xfe,0xc7,0xc5, +0x92,0x96,0xb3,0x58,0x44,0x39,0x50,0x51,0x37,0x08,0x57,0x44,0x53,0x63,0xf9,0xdf,0x1a,0xc0,0x64,0x55,0x77,0x78,0x3c,0x95,0xb3,0x43,0x8b,0x72,0x61,0x7a,0x62,0x5f,0x84,0x1b,0x41,0x62,0x38,0x67,0x64,0xfd,0x3f,0x30,0x23,0x24,0x31,0x31,0x24,0x23,0x30,0x05,0xb1,0x10,0x45,0x58,0x53,0x56,0x80,0x47,0x1d,0xbe,0xaf,0x86,0x83,0x89, +0x0f,0x0f,0x01,0x7c,0xf5,0x8b,0xb8,0xcb,0xa7,0x4c,0x5e,0x4f,0x3a,0x39,0x4f,0x3b,0x44,0x60,0x53,0x7a,0xc7,0x3d,0xa0,0x21,0x11,0x12,0xc2,0x9f,0xbf,0x7f,0xa2,0x7d,0x2a,0x43,0x70,0x5f,0x83,0x86,0x5b,0x34,0x33,0x01,0x2e,0x4b,0x25,0x88,0x6f,0x71,0x13,0xfe,0x57,0x23,0x30,0x30,0x23,0x24,0x31,0x31,0x00,0x01,0x01,0x0f,0xff,0xec, +0x04,0xf5,0x06,0x3b,0x00,0x3a,0x00,0x00,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x12,0x11,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x16,0x17,0x36,0x33,0x32,0x00,0x11,0x15,0x10,0x02,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x02,0xe0,0x16,0x3a,0x54,0x68,0x9c,0x89,0xb3,0xa9,0xac,0xa5,0x6d,0xba,0x2e,0x65,0x11,0x0c,0x04,0x2f,0x2d,0x2f,0x60,0x6c,0x02,0x70,0x74,0xfc,0x01,0x09,0xff,0xf1,0x84,0xd6,0x77,0xbc,0x9e,0x49,0x77,0x43,0x4c,0x3e,0x35,0x4b,0x30,0x02,0x9d,0x16,0x88,0x66,0x90,0xbd,0x01,0x08,0x01,0x13,0x9e,0xef,0xed,0x63,0x4e, +0x72,0x26,0x1b,0x15,0x19,0x2a,0x3e,0x0c,0x8a,0x13,0x72,0x4b,0x38,0xfe,0xc8,0xfe,0xd0,0xba,0xfe,0xbd,0xfe,0xae,0x79,0xd3,0x7b,0xb3,0xd9,0x44,0x76,0x43,0x3f,0x5a,0x4f,0x31,0x27,0x42,0x00,0x02,0x00,0x8f,0xff,0xec,0x05,0x74,0x06,0x3b,0x00,0x37,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x07,0x27,0x26,0x23,0x22,0x06,0x15,0x11,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x14,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x04,0xa9,0x66,0x65,0x85,0x72,0x72,0x7f,0x28,0x30,0x23,0x63, +0x52,0x2b,0x5a,0x54,0x26,0x2e,0x48,0x74,0x45,0x75,0x5b,0x62,0x6f,0x65,0x6d,0x91,0x6a,0x6c,0x84,0x6a,0x76,0x54,0x27,0x2d,0x29,0x31,0xfc,0xb5,0x22,0x1c,0x37,0x4d,0x28,0x06,0x3b,0x15,0x6e,0x65,0xfb,0x6d,0x64,0x70,0x69,0x5d,0x03,0xdb,0x46,0x44,0x49,0x5f,0x33,0x74,0x55,0x56,0xfd,0x73,0x10,0x5f,0x83,0x3b,0x58,0x6d,0x59,0x4e, +0x03,0xcd,0xa8,0x9b,0x82,0x82,0x9d,0x89,0xfc,0x67,0x6c,0x39,0x39,0x04,0x2c,0x57,0x3c,0x08,0xfb,0x09,0x24,0x28,0x52,0x25,0x63,0x0b,0x00,0x01,0x01,0x0b,0xff,0xec,0x04,0xf9,0x06,0x27,0x00,0x45,0x00,0x00,0x01,0x14,0x0e,0x02,0x07,0x0e,0x04,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x17,0x16,0x16,0x17,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x3e,0x02,0x37,0x3e,0x02,0x35,0x35,0x33,0x04,0xf9,0x2e,0x54,0x92,0x9a,0x7e,0x72,0x56,0x3a,0x20,0x3b,0x36,0x22,0x5a,0x2f,0x23,0x2c,0x2f,0x54,0x2b,0x41,0x39,0x52, +0x3c,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x8a,0x9e,0x8e,0x6a,0x92,0x6a,0x2d,0x84,0x40,0x6c,0x82,0x38,0x73,0xc5,0xc1,0x72,0x71,0x3a,0xa0,0x05,0xb4,0x4a,0x72,0x55,0x44,0x26,0x20,0x36,0x4e,0x73,0xa1,0x6f,0xfe,0xf0,0x44,0x46,0x46,0x38,0x2a,0x32,0x3b,0x39,0x01,0x9f,0x98,0x75,0x90,0x07,0x0a,0x39,0x23,0x2b,0x45, +0x4c,0x3a,0x60,0x80,0xe4,0xbc,0xb9,0xf9,0x82,0x3b,0x47,0xa1,0x85,0x01,0x2c,0x8b,0xcd,0x8f,0x6c,0x39,0x23,0x3d,0x52,0x30,0x7b,0x00,0x00,0x01,0x01,0x20,0xff,0xec,0x04,0xe3,0x06,0x3b,0x00,0x43,0x00,0x00,0x01,0x06,0x06,0x15,0x15,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x21,0x07,0x23,0x22,0x06,0x15,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x24,0x35,0x10,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x34,0x36,0x37,0x04,0xe3,0x37,0x23,0xa2,0x22,0x8e,0x61,0x6a,0x85,0x35,0x63,0x46,0x01,0x3c,0x10,0xed,0x8f,0xb5,0xb8, +0x8c,0x91,0xa8,0x41,0x30,0x16,0x1a,0x27,0x25,0x48,0x34,0x3a,0x4b,0x7e,0x6d,0x7e,0x8d,0x78,0xda,0x87,0xdf,0xfe,0xfb,0xdc,0x57,0x5e,0xe0,0xb6,0xa3,0x69,0x67,0x64,0x05,0xb1,0x10,0x45,0x58,0xa4,0x56,0x61,0x70,0x5b,0x35,0x58,0x32,0x8c,0xb2,0x91,0x8f,0xb7,0x7d,0x6d,0x49,0x5e,0x07,0x0a,0x39,0x23,0x2b,0x45,0x4c,0x3a,0x60,0x80, +0xa7,0x99,0x6c,0xa2,0x58,0xf1,0xcd,0x01,0x2d,0x69,0x26,0x8b,0x5b,0x9b,0xbc,0x5b,0x6f,0x71,0x13,0x00,0x00,0x02,0x00,0x9d,0x00,0x45,0x03,0xaf,0x05,0xa3,0x00,0x0e,0x00,0x1d,0x00,0x00,0x01,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x12,0x37,0x14,0x02,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x33, +0x32,0x12,0x03,0x08,0x60,0x4c,0x4e,0x7c,0x4e,0x33,0x55,0x2f,0x4f,0x77,0x47,0xa7,0x75,0xc9,0x87,0x67,0x95,0x51,0x7a,0xd7,0x7c,0x98,0xad,0x03,0x81,0xb6,0xe2,0xb0,0xfe,0xa8,0xb8,0x72,0xb7,0x62,0xa8,0x01,0x5f,0xa0,0xf3,0xfe,0x7f,0xbc,0x8f,0x01,0x1e,0xba,0xd5,0x01,0x5e,0xc4,0xfe,0xd5,0x00,0x01,0x00,0xb6,0xfe,0xf1,0x03,0x95, +0x05,0xa3,0x00,0x2e,0x00,0x00,0x01,0x14,0x02,0x02,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x16,0x16,0x33,0x32,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x16,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x10,0x12,0x36,0x33,0x32,0x12,0x03,0x95,0x5d,0x88,0xa7,0x50,0x3b,0x7b,0x4d,0x4d,0x11, +0x1f,0x06,0x0b,0x51,0x2d,0x46,0x93,0x53,0x3c,0x36,0x42,0x75,0x4d,0x27,0x10,0x09,0x5f,0x1d,0x11,0x38,0x22,0x74,0xcc,0x7a,0x7f,0x8b,0x03,0x60,0xec,0xfe,0x42,0xfe,0xdd,0xa2,0x4f,0x7b,0x3a,0x12,0x3a,0x20,0x3b,0x61,0x01,0x52,0x01,0xf7,0xcb,0xb6,0xca,0xc0,0xfe,0xa8,0x90,0x72,0x8f,0x29,0x17,0x15,0x1a,0x44,0x68,0x96,0x5a,0x01, +0x0e,0x01,0x9e,0xe2,0xfe,0xd5,0x00,0x01,0x00,0x36,0x00,0x8a,0x04,0x16,0x05,0xa3,0x00,0x3f,0x00,0x00,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x01,0x36,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x17,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x12,0x12,0x36,0x33, +0x32,0x16,0x15,0x14,0x03,0x03,0x36,0x33,0x32,0x16,0x33,0x32,0x36,0x37,0x36,0x36,0x33,0x32,0x16,0x04,0x16,0x0f,0x6e,0x65,0x44,0x1f,0x3a,0x1f,0x2b,0x35,0x0a,0x09,0x15,0x3e,0x0b,0x01,0x1a,0x29,0x31,0x68,0x41,0xb8,0x9e,0x55,0x30,0x09,0x5f,0x1c,0x13,0x31,0x21,0x6f,0xcc,0xf4,0x72,0x78,0x89,0xa9,0xc5,0x0d,0x14,0x18,0x2c,0x1b, +0x17,0x62,0x21,0x0b,0x0d,0x0b,0x23,0x4c,0x02,0x21,0x11,0x2d,0xd7,0x60,0x12,0x22,0x07,0x40,0x10,0x16,0x16,0x02,0x32,0x52,0xaa,0x28,0xb2,0x9b,0xf7,0xfe,0xeb,0x89,0x5b,0x7d,0x18,0x11,0x17,0x47,0x5b,0x8b,0x3f,0xbf,0x01,0x6d,0x01,0x23,0xa5,0xa4,0x86,0x71,0xfe,0xbb,0xfe,0x84,0x04,0x09,0x8d,0x51,0x1c,0x17,0x23,0x00,0x00,0x01, +0x00,0x5a,0x01,0x73,0x03,0xf1,0x05,0xa3,0x00,0x54,0x00,0x00,0x01,0x14,0x06,0x06,0x23,0x22,0x26,0x23,0x22,0x07,0x07,0x22,0x35,0x35,0x34,0x37,0x37,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x0e,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x02,0x15,0x14,0x1e,0x02,0x15,0x14,0x06, +0x23,0x22,0x26,0x35,0x34,0x12,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x16,0x33,0x32,0x36,0x37,0x36,0x33,0x32,0x16,0x03,0xe4,0x62,0x7f,0x2a,0x11,0x2d,0x28,0x23,0x23,0x10,0x36,0x43,0x20,0x9b,0x2a,0x3b,0x19,0x15,0x16,0x2b,0x31,0x38,0x24,0x23,0x30,0x27,0x1b,0x11,0x2f,0x2b,0x25,0x48,0x29, +0x23,0x38,0x58,0x35,0x0d,0x11,0x0d,0x6b,0x1e,0x12,0x36,0x5f,0xa8,0x72,0x29,0x68,0x16,0x5e,0x61,0x36,0x53,0x2f,0x54,0x50,0x8d,0x18,0x1c,0x20,0x4f,0x1c,0x0d,0x15,0x11,0x32,0x02,0x62,0x22,0x71,0x51,0x07,0x0f,0x03,0x24,0x0d,0x0e,0x71,0x39,0x01,0x23,0x4d,0xc1,0x35,0x26,0x31,0x32,0x61,0x90,0x5d,0x5c,0x66,0x2e,0x1d,0x11,0x14, +0x6d,0x5e,0xb5,0x62,0x26,0x26,0x82,0xfe,0xf1,0x90,0x4b,0x5c,0x3c,0x29,0x16,0x14,0x41,0xc6,0x49,0xe7,0x01,0x75,0xb7,0x32,0x23,0x55,0x32,0x57,0x33,0x4a,0xf1,0x94,0xfe,0x0b,0x3e,0x32,0x18,0x24,0x00,0x01,0x00,0xc5,0xff,0xc3,0x03,0x86,0x05,0xa7,0x00,0x26,0x00,0x00,0x01,0x32,0x16,0x16,0x15,0x10,0x02,0x06,0x23,0x22,0x26,0x35, +0x34,0x12,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x12,0x35,0x34,0x26,0x27,0x26,0x35,0x34,0x36,0x02,0xea,0x20,0x4c,0x30,0x69,0xba,0x83,0x8c,0x8f,0x8d,0x81,0x1a,0x15,0x0e,0x57,0x2c,0x75,0x5d,0x43,0x3b,0x4a,0x6e,0x40,0x28,0x2e,0x08,0x54,0x05,0xa7,0x9c,0xed,0x6b,0xfe,0xef,0xfe,0x1c, +0xfb,0xee,0xe8,0xd0,0x01,0x65,0x8e,0x1c,0x36,0x0c,0x14,0x3a,0xa0,0xfe,0xed,0x98,0x94,0xbb,0xde,0x01,0xa1,0xca,0x94,0xb9,0x49,0x0c,0x13,0x11,0x4a,0x00,0x00,0x01,0x00,0xab,0x01,0x46,0x03,0xa0,0x05,0xa7,0x00,0x33,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x27,0x27,0x06,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x07,0x14,0x16,0x33,0x32,0x36,0x37,0x37,0x36,0x37,0x36,0x35,0x34,0x27,0x27,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x17,0x13,0x17,0x16,0x03,0xa0,0x3b,0x29,0x19,0x2e,0x19,0x1a,0x18,0x0a,0x05,0x06,0x29,0x35,0x5a,0x49,0x57,0x65,0x2d,0x1e,0x37,0x27,0x1d,0x04,0x2a,0x2b,0x30,0x38,0x0d,0x06,0x0b,0x1d, +0x14,0x16,0x04,0x3e,0x17,0x1b,0x17,0x14,0x0b,0x04,0x64,0x3c,0x24,0x01,0xdd,0x17,0x23,0x7b,0x8b,0x8a,0x77,0x80,0x2b,0x7f,0xfe,0x64,0xa3,0x51,0x71,0xe0,0xf8,0x21,0x1b,0x15,0x14,0xed,0x72,0x68,0xa7,0xd6,0x5a,0xa9,0x3a,0x3c,0x40,0x10,0x45,0x11,0x11,0x1f,0x18,0x47,0x45,0x18,0xfe,0x6e,0xd2,0x7f,0x00,0x01,0x00,0x79,0xff,0xc3, +0x03,0xd2,0x05,0xa3,0x00,0x40,0x00,0x00,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x10,0x02,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x06,0x02,0x15,0x10,0x12,0x33,0x32,0x36,0x35,0x34,0x23,0x22,0x06,0x06,0x07,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x27,0x26,0x35,0x34, +0x36,0x33,0x32,0x15,0x14,0x07,0x06,0x15,0x14,0x02,0x72,0x14,0x2a,0x16,0x78,0x94,0xc8,0xbe,0x88,0xd5,0x76,0x60,0xad,0xd8,0x60,0x37,0x26,0x10,0x2a,0x2f,0xb7,0xdc,0xa1,0x8a,0x70,0x72,0x7c,0x17,0x2e,0x20,0x01,0x01,0x17,0x22,0x1f,0x17,0x0e,0x0d,0x08,0x08,0x1d,0x30,0x4f,0x0b,0x0b,0x03,0x2a,0x06,0x0d,0xb3,0x93,0xfe,0xee,0xfe, +0xde,0xb1,0x01,0x49,0xd2,0x9a,0x01,0x1e,0xdb,0x81,0x13,0x1a,0x31,0x1d,0x12,0x07,0x1a,0xfe,0xa4,0xff,0xfe,0xee,0xfe,0xc6,0xb9,0xc6,0xf6,0x31,0x49,0x19,0x1c,0x1d,0x15,0x22,0x33,0x5d,0x5c,0x35,0x26,0x44,0x44,0x24,0x29,0x28,0x3e,0x1e,0x46,0x47,0x2e,0x23,0x00,0x01,0x00,0x74,0xff,0xf6,0x03,0xd8,0x05,0xa3,0x00,0x3e,0x00,0x00, +0x01,0x10,0x02,0x23,0x22,0x26,0x35,0x34,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x02,0x35,0x34,0x12,0x33,0x32,0x16,0x15,0x14,0x07,0x06,0x15,0x10,0x33,0x32,0x12,0x11,0x34,0x02,0x26,0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x12,0x03, +0xd8,0x91,0x9e,0x6b,0x60,0x0d,0x0c,0x34,0x3c,0x3c,0x30,0x34,0x35,0x08,0x1a,0x59,0x19,0x2b,0x53,0x42,0x9b,0x89,0x78,0x90,0x0c,0x0c,0x41,0x34,0x34,0x5b,0xa1,0x60,0x23,0x46,0x47,0x20,0x09,0x20,0x14,0xab,0x62,0x95,0xeb,0x83,0x02,0xa5,0xfe,0x97,0xfe,0xba,0xb8,0xb6,0x33,0x95,0x94,0x30,0x7c,0x71,0xb2,0xb6,0x85,0xdd,0x6d,0x0f, +0x1b,0x0f,0x15,0x4f,0xab,0x01,0x50,0x71,0xea,0x01,0x09,0xbd,0x9b,0x31,0x94,0x89,0x39,0xfe,0xf8,0x01,0x20,0x01,0x07,0xa6,0x01,0x23,0xa8,0x16,0x17,0x21,0x2f,0x1e,0x18,0x31,0xc4,0xfe,0x9f,0x00,0x00,0x01,0x00,0xa8,0x00,0x45,0x03,0xa4,0x05,0xa7,0x00,0x31,0x00,0x00,0x01,0x14,0x07,0x06,0x06,0x07,0x0e,0x02,0x23,0x22,0x27,0x26, +0x23,0x22,0x07,0x06,0x23,0x22,0x26,0x35,0x34,0x13,0x01,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x01,0x37,0x37,0x32,0x17,0x17,0x32,0x37,0x3e,0x04,0x17,0x32,0x16,0x03,0xa4,0x2e,0x24,0x56,0x16,0x1b,0x17,0x20,0x0f,0x26,0x47,0x47,0x23,0x24,0x3f,0x3f,0x20,0x1d,0x27,0x67,0x01,0x43,0x09,0x44,0x23,0x31,0x12,0x14,0x26, +0x57,0xfe,0xef,0x39,0x34,0x0e,0x65,0x20,0x11,0x21,0x0e,0x1f,0x0e,0x54,0x20,0x17,0x1f,0x4e,0x02,0xc6,0x14,0x4c,0x4b,0xd1,0x55,0x69,0x2a,0x1d,0x0f,0x0e,0x0e,0x0f,0x25,0x26,0x30,0x01,0x24,0x03,0xa9,0x1a,0x1a,0x13,0x0e,0x34,0x2f,0x5b,0xe2,0xfd,0x1f,0x07,0x04,0x10,0x03,0x68,0x2d,0x60,0x25,0xd5,0x34,0x03,0x27,0x00,0x00,0x01, +0x00,0xce,0xff,0xc3,0x03,0x7d,0x05,0xa7,0x00,0x37,0x00,0x00,0x01,0x14,0x06,0x23,0x27,0x26,0x23,0x22,0x35,0x34,0x37,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33,0x32,0x37,0x37,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x02,0x35,0x10,0x12,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x06,0x15,0x14, +0x16,0x17,0x16,0x03,0x51,0x25,0x0d,0x22,0x5d,0x3d,0x3b,0x21,0x33,0x40,0x16,0x3c,0x30,0x72,0x79,0x73,0x66,0x4c,0x31,0x35,0x09,0x10,0x16,0x42,0x5d,0x89,0x4e,0x72,0xa8,0x5b,0xe6,0xd5,0x6e,0x86,0x2e,0x55,0x0e,0x13,0x24,0x33,0x21,0x01,0x94,0x13,0x4e,0x04,0x12,0x3b,0x18,0x54,0x81,0xdb,0x97,0x48,0x72,0x80,0xfe,0x9f,0xfe,0xc4, +0xfe,0xf4,0xfe,0xda,0x3c,0x40,0x0b,0x3a,0x19,0x21,0x61,0x3d,0xa4,0x01,0x3b,0xde,0x01,0x85,0x01,0xa2,0xd1,0xab,0x4c,0xc0,0xe1,0x23,0x29,0x0e,0x10,0x0f,0x0b,0x08,0x00,0x02,0x00,0xc3,0xff,0xe7,0x05,0x05,0x04,0x19,0x00,0x0b,0x00,0x17,0x00,0x00,0x05,0x22,0x00,0x35,0x10,0x00,0x21,0x32,0x00,0x15,0x14,0x00,0x03,0x22,0x06,0x15, +0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0xe4,0xf5,0xfe,0xd4,0x01,0x2c,0x01,0x01,0xf8,0x01,0x1d,0xfe,0xdf,0xfa,0xb3,0xcc,0xd0,0xaf,0xb5,0xbe,0xbe,0x19,0x01,0x21,0xec,0x01,0x02,0x01,0x23,0xfe,0xe7,0xfc,0xfb,0xfe,0xde,0x03,0xa6,0xd9,0xba,0xb5,0xd2,0xcb,0xc0,0xc1,0xce,0x00,0x01,0x01,0x6a,0xff,0xe7,0x04,0x5e,0x04,0x19, +0x00,0x15,0x00,0x00,0x01,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x01,0x70,0x72,0x9e,0xdf,0xff,0xfe,0xf8,0xf2,0x8e,0x6c,0x69,0x8f,0xa9,0xad,0xa1,0x9d,0x96,0x74,0x03,0xd3,0x46,0xfe,0xe5,0xf6,0xfe,0xfc,0xfe,0xe3,0x38,0xa2,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x00, +0x00,0x02,0x01,0x08,0xfd,0x6d,0x04,0xc0,0x04,0x19,0x00,0x1c,0x00,0x27,0x00,0x00,0x01,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x36,0x35,0x11,0x34,0x27,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x10,0x00,0x03,0x22,0x06,0x15,0x14,0x33,0x32,0x36,0x35,0x34,0x26,0x02,0x8b,0x7b,0xb8,0x50,0xa8,0xdf,0x77, +0xb4,0x63,0x1d,0x0c,0x73,0x60,0x64,0x71,0x80,0x86,0xb6,0xb8,0xfe,0xd1,0x68,0x2f,0x33,0x60,0x2b,0x33,0x31,0xfd,0x6d,0x23,0x28,0xaa,0x6c,0x79,0xe6,0x9d,0x02,0x25,0xb3,0x65,0x59,0x65,0x70,0x61,0x6d,0x6a,0xe8,0xdd,0xfd,0x9e,0xfe,0xce,0xfe,0xad,0x06,0x3d,0x35,0x31,0x5f,0x34,0x2d,0x30,0x34,0x00,0x00,0x01,0x01,0x20,0xfd,0x6d, +0x04,0xa7,0x04,0x19,0x00,0x25,0x00,0x00,0x25,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x10,0x00,0x21,0x23,0x27,0x17,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x04,0x27,0x01,0x20,0x78,0xa2,0xc0,0xc6,0xb9,0xb2,0xad,0x82,0x7d,0xb2,0xf7,0x01,0x1a,0xfe,0xdd,0xfe,0xf1,0x1a,0x19, +0x53,0xb6,0xe0,0x44,0x43,0x36,0x36,0x59,0x49,0x94,0x8f,0x87,0x78,0x66,0x27,0xc1,0x4e,0xd0,0xc7,0xbe,0xc5,0x56,0x9c,0x46,0xfe,0xe4,0xf5,0xfe,0xfc,0xfe,0xe3,0x02,0x5d,0xd2,0xb8,0x1b,0x90,0x20,0x52,0x80,0x9c,0x94,0x7b,0x1e,0x00,0x01,0x01,0x21,0xfd,0x6d,0x04,0xa6,0x04,0x19,0x00,0x21,0x00,0x00,0x01,0x22,0x06,0x15,0x14,0x16, +0x33,0x32,0x24,0x37,0x15,0x03,0x06,0x02,0x07,0x23,0x36,0x12,0x01,0x06,0x23,0x22,0x24,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x03,0x36,0xb0,0xbf,0x9e,0x9b,0x57,0x01,0x09,0x46,0xcd,0xa7,0xaf,0x26,0xbb,0x3e,0xea,0x01,0x24,0x6d,0x8b,0xd4,0xfe,0xff,0x84,0xf5,0x98,0x73,0xbf,0x3c,0x41,0xcd,0x03,0x8f,0xa9,0x9c, +0x93,0x98,0x3e,0x24,0x9c,0xfe,0xf7,0xd5,0xfe,0xe1,0x7b,0xa9,0x01,0x5d,0x01,0x50,0x30,0xed,0xce,0x87,0xd2,0x72,0x26,0x20,0x9c,0x29,0x2f,0x00,0x00,0x01,0x00,0x3c,0xfd,0x6d,0x05,0x8c,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x10,0x23,0x22,0x26,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x35,0x11,0x34,0x26,0x26,0x23,0x22, +0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x05,0x8c,0xfa,0x6c,0x79,0x14,0x83,0x0e,0x2e,0x26,0x5e,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b, +0x77,0x88,0xa5,0x4e,0xfe,0x81,0xfe,0xec,0x75,0x64,0x50,0x24,0x2f,0x2d,0x30,0x32,0x8b,0x03,0x79,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca,0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0x00,0x01,0x01,0x05,0xff,0xe7,0x04,0xc3,0x07,0x62,0x00,0x31,0x00,0x00,0x01,0x10,0x12,0x33, +0x32,0x36,0x35,0x34,0x27,0x2e,0x03,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x00,0x11,0x11,0x10,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x02,0x11,0x01,0xa9,0xb1,0xc5,0x7a,0x84,0x7c,0x77,0x4b,0x32,0x1b,0x96,0x8b,0x73,0x54,0x29,0x60,0x3e,0x41,0x46, +0x57,0x75,0x66,0x65,0xd8,0xcc,0xfe,0xed,0xfe,0xf9,0x01,0x3b,0x01,0x2f,0xb6,0x98,0xa5,0xa7,0xe7,0xe1,0x02,0xe9,0xfe,0xb3,0xfe,0xd7,0x57,0x51,0x5b,0x4a,0x46,0x3b,0x45,0x4f,0x33,0x7f,0x92,0x2b,0x90,0x13,0x20,0x4c,0x39,0x33,0x55,0x43,0x3b,0x89,0x56,0xa0,0xa0,0x01,0x72,0x01,0x90,0x01,0x40,0x01,0x97,0x01,0xa2,0x4e,0xaa,0x6d, +0xfe,0x9d,0xfe,0x86,0x00,0x01,0x00,0x50,0xfd,0x6d,0x06,0xdc,0x04,0x19,0x00,0x32,0x00,0x00,0x01,0x34,0x26,0x26,0x23,0x22,0x06,0x07,0x23,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x10,0x17,0x15,0x24,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x15, +0x14,0x06,0x23,0x22,0x11,0x04,0xfc,0x29,0x5c,0x52,0x60,0x6f,0x0e,0x9e,0x0e,0x6d,0x60,0x51,0x5c,0x2a,0xbf,0xfe,0x99,0x4e,0xa8,0x89,0x78,0x8a,0x29,0x29,0x8b,0x77,0x88,0xa5,0x4e,0x5e,0x27,0x2d,0x0e,0x83,0x15,0x79,0x6d,0xfa,0x02,0x00,0xb0,0x91,0x4c,0x75,0x8b,0x8a,0x76,0x4b,0x90,0xb0,0xfe,0xa5,0x24,0x9c,0x48,0x01,0xd3,0xca, +0xdb,0x72,0x60,0x75,0x74,0x61,0x70,0xda,0xcf,0xfc,0x85,0x89,0x32,0x30,0x2d,0x2f,0x26,0x3e,0x70,0x79,0x01,0x14,0x00,0x01,0x00,0xc9,0x00,0x00,0x04,0xfe,0x04,0x00,0x00,0x0e,0x00,0x00,0x01,0x06,0x02,0x07,0x23,0x36,0x12,0x37,0x33,0x16,0x12,0x17,0x23,0x26,0x02,0x02,0xe4,0x2b,0xc5,0x6e,0xbd,0x9a,0xf7,0x36,0xa8,0x3b,0xf2,0x99, +0xbc,0x71,0xc3,0x03,0x31,0xbc,0xfe,0x3c,0xb1,0xe1,0x02,0x2e,0xf1,0xfe,0xfd,0xe1,0xe3,0xb6,0x01,0xc4,0x00,0x01,0x01,0x01,0xfd,0x6d,0x04,0xc6,0x04,0x19,0x00,0x24,0x00,0x00,0x01,0x10,0x21,0x32,0x16,0x15,0x10,0x21,0x22,0x35,0x34,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x02,0x11,0x10,0x12,0x33, +0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x01,0x01,0x02,0x11,0xd1,0xe3,0xfe,0xcd,0xfa,0x08,0xa0,0x08,0x2b,0x35,0x48,0x3d,0x8b,0x81,0xb3,0xb6,0xf8,0xe9,0x8f,0x86,0x7e,0x9f,0xfe,0xc4,0xfe,0xbb,0x01,0x29,0x02,0xf0,0xea,0xdb,0xfe,0x62,0xdd,0x30,0x12,0x18,0x27,0x2f,0x30,0x8e,0x8b,0x9b,0xa2,0xfe,0xd6,0xfe,0xbc,0xfe,0x74,0xfe,0x65, +0x52,0xa0,0x3d,0x01,0xe3,0x00,0x00,0x01,0x00,0xd6,0xff,0xe7,0x04,0xf1,0x05,0xfa,0x00,0x22,0x00,0x00,0x01,0x32,0x16,0x17,0x36,0x35,0x34,0x27,0x33,0x16,0x15,0x14,0x06,0x06,0x07,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x00,0x11,0x34,0x12,0x02,0x9f,0x68,0xa6,0x29,0x75,0x3f,0xb0,0x35, +0x2f,0x54,0x75,0x8d,0x6e,0x5d,0x8d,0x98,0xad,0xa9,0x82,0x76,0x6c,0x8e,0xf2,0xfe,0xf8,0xf2,0x04,0x19,0x5f,0x56,0xa4,0xfc,0x8b,0x6b,0x6a,0x8e,0x65,0xa9,0x9a,0x97,0x5b,0x6f,0xce,0xb5,0xc7,0xd0,0x4e,0xa2,0x38,0x01,0x1a,0x01,0x07,0xfc,0x01,0x15,0x00,0x03,0x00,0x8b,0xff,0xe8,0x05,0x79,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x33, +0x00,0x00,0x01,0x02,0x21,0x22,0x26,0x27,0x0e,0x02,0x23,0x20,0x03,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x35,0x33,0x12,0x33,0x32,0x36,0x36,0x35,0x13,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x03,0x34,0x26,0x26,0x23,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x00,0x05,0x79,0x01,0xfe,0x9f,0x59,0x9d,0x1f,0x0f,0x53,0x76, +0x3c,0xfe,0x9e,0x01,0xa1,0x1f,0x5a,0x49,0x63,0x62,0xa1,0x02,0xc0,0x47,0x5a,0x21,0x99,0xfe,0x94,0xfe,0xfd,0xfe,0xfd,0xfe,0x94,0x01,0x6d,0x01,0x02,0x01,0x01,0x01,0x6e,0xa1,0x7e,0xd5,0x7b,0xbc,0xfe,0xef,0x01,0x0c,0xc1,0xc5,0x01,0x09,0x06,0xd0,0xfe,0x51,0x57,0x4e,0x2c,0x4e,0x2b,0x01,0xaf,0x62,0x7a,0x42,0x86,0x98,0xfe,0xe2, +0x3e,0x75,0x6b,0xfb,0x87,0xfe,0xfd,0xfe,0x94,0x01,0x6e,0x01,0x01,0x01,0x01,0x01,0x6e,0xfe,0x94,0xfe,0xfd,0x80,0xdb,0x83,0xfe,0xe3,0xc1,0xbe,0xfe,0xe0,0x01,0x23,0x00,0x01,0x02,0xb1,0x00,0x00,0x03,0x52,0x06,0xd0,0x00,0x03,0x00,0x00,0x21,0x23,0x11,0x33,0x03,0x52,0xa1,0xa1,0x06,0xd0,0x00,0x04,0x00,0x1f,0xff,0xe8,0x05,0xe4, +0x06,0xe8,0x00,0x20,0x00,0x2c,0x00,0x38,0x00,0x45,0x00,0x00,0x25,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x23,0x11,0x26,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x14,0x06,0x07,0x11,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x16,0x33,0x32,0x36,0x05,0xe4,0x73,0x9d,0x78,0x9b,0x86,0x4c,0x9d,0x5e,0xa2,0x72,0x50,0x49,0xcb,0x90,0x90,0xca,0x01,0x8f,0x7b,0x79,0x91,0x6f,0x9e,0x85,0x4d,0x6b,0x4b,0xfd,0x93,0x3d,0x2d,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0xfd,0xd0,0x3e,0x2d,0x2b,0x40,0x40, +0x2b,0x2d,0x3e,0x01,0x77,0x76,0x54,0x50,0x7a,0x3a,0x3d,0x53,0x54,0x76,0x69,0x81,0x6d,0x5a,0xaf,0x04,0x3a,0x1d,0x5d,0x62,0x77,0x90,0xcb,0xcc,0x8f,0x78,0xbb,0x20,0xfc,0xa4,0x61,0x6b,0x5b,0x5b,0x01,0xe4,0x2d,0x3d,0x3e,0x2c,0x2d,0x3e,0x3e,0x2d,0x2c,0x3e,0x3d,0x2d,0x2e,0x3d,0x3e,0x02,0xa8,0x56,0x74,0x71,0x59,0x53,0x3d,0x3a, +0x72,0x00,0x00,0x02,0x00,0xb7,0x00,0x00,0x05,0x4d,0x06,0xe8,0x00,0x29,0x00,0x35,0x00,0x00,0x01,0x10,0x21,0x23,0x11,0x23,0x11,0x21,0x32,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x20,0x36,0x35,0x34,0x26,0x23,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x20,0x15,0x14,0x07,0x15,0x16,0x01,0x34,0x26,0x27, +0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x4d,0xfe,0x8f,0x5f,0xa1,0x01,0x00,0x79,0x67,0x43,0xa7,0xa1,0x01,0x02,0x89,0x71,0x6f,0x76,0x19,0xbb,0x80,0x8c,0xcf,0xcb,0x90,0x7c,0xbf,0x19,0x76,0x01,0x71,0xc5,0xc5,0xfd,0x8f,0x76,0x54,0x51,0x79,0x6f,0x5b,0x56,0x74,0x03,0x16,0xfe,0xf9,0xfd,0xf1,0x02,0xa0,0x40,0x4a,0x34,0x3b, +0x12,0x91,0x42,0x4d,0x4c,0x2f,0x75,0xa0,0xc7,0x95,0x90,0xcb,0x9c,0x75,0xf8,0xb6,0x32,0x07,0x35,0x01,0xd2,0x55,0x74,0x01,0x71,0x59,0x51,0x79,0x76,0x00,0x00,0x01,0x00,0xd7,0x00,0x00,0x05,0x2d,0x06,0xd0,0x00,0x12,0x00,0x00,0x21,0x23,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x33,0x01,0x07,0x01,0x11,0x21,0x11,0x33,0x11,0x21,0x05, +0x2d,0xa1,0xfe,0xc7,0xa1,0xfe,0x25,0xa3,0x01,0xa5,0x72,0xfe,0xcb,0x01,0x3a,0xa1,0x01,0xda,0x02,0x48,0xfd,0xb8,0x02,0x48,0x04,0x88,0xfe,0x58,0x72,0x01,0x39,0xfc,0xea,0x01,0x22,0xfe,0xde,0x00,0x00,0x01,0x00,0xf9,0xff,0xe9,0x05,0x0b,0x06,0xd0,0x00,0x1b,0x00,0x00,0x01,0x14,0x06,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22, +0x00,0x07,0x23,0x11,0x33,0x01,0x07,0x01,0x11,0x36,0x37,0x36,0x33,0x32,0x16,0x16,0x05,0x0b,0xd5,0x96,0x37,0x7c,0x95,0x86,0x70,0xd8,0xfe,0xef,0x01,0xa1,0xa3,0x01,0xa6,0x72,0xfe,0xca,0x51,0x87,0x7f,0x93,0x71,0xb5,0x61,0x01,0xa6,0x9a,0xf6,0x2d,0x7b,0x21,0xb4,0x6d,0x62,0x74,0xfe,0x82,0xfe,0x06,0xd0,0xfe,0x58,0x72,0x01,0x39, +0xfb,0xf9,0x89,0x47,0x47,0x51,0x9e,0x00,0x00,0x02,0x01,0x37,0xff,0xe8,0x04,0xcd,0x06,0xd0,0x00,0x1a,0x00,0x26,0x00,0x00,0x01,0x14,0x06,0x23,0x20,0x11,0x10,0x13,0x21,0x35,0x21,0x36,0x37,0x21,0x15,0x21,0x06,0x07,0x21,0x15,0x21,0x02,0x11,0x36,0x33,0x32,0x16,0x07,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04, +0xcd,0xcc,0x8f,0xfe,0x6e,0x7d,0xfe,0xda,0x01,0x61,0x47,0x7a,0x01,0x74,0xfe,0xf2,0x47,0x2f,0x01,0x2f,0xfe,0x94,0x8b,0x69,0x88,0x8f,0xcc,0x91,0x72,0x58,0x59,0x72,0x70,0x5b,0x5a,0x70,0x01,0x44,0x90,0xcc,0x02,0x57,0x01,0x2d,0x01,0x53,0x92,0xa2,0xdd,0x92,0x83,0x6a,0x92,0xfe,0xa1,0xfe,0xde,0x60,0xcc,0x8e,0x50,0x79,0x78,0x51, +0x50,0x7b,0x7a,0x00,0x00,0x02,0x00,0x33,0xff,0xe8,0x05,0xd0,0x06,0xe8,0x00,0x1f,0x00,0x2b,0x00,0x00,0x13,0x36,0x33,0x32,0x17,0x16,0x33,0x32,0x37,0x33,0x11,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x11,0x06,0x23,0x22,0x27,0x26,0x23,0x22,0x07,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x33,0x73,0x9d,0x76,0x9d,0x83,0x4e,0x9e,0x5d,0xa3,0x75,0x96,0xca,0x92,0x8f,0xcc,0x98,0x72,0x77,0x93,0x70,0x9d,0x85,0x4c,0x69,0x4e,0x03,0x26,0x77,0x53,0x54,0x77,0x78,0x53,0x53,0x77,0x06,0x67,0x81,0x6d,0x5b,0xb0,0xfb,0xc5,0x1c,0xc0,0x76,0x90,0xcb,0xca,0x91,0x77,0xc0,0x1b,0x03,0x5d,0x62,0x6c,0x5b,0x5b,0xfb,0x47,0x53,0x77, +0x76,0x54,0x54,0x76,0x77,0x00,0x00,0x04,0x01,0x1c,0xff,0xe8,0x04,0xe8,0x06,0x83,0x00,0x0b,0x00,0x17,0x00,0x2d,0x00,0x39,0x00,0x00,0x01,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x05,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x01,0x14,0x00,0x23,0x22,0x00,0x35,0x10,0x37,0x26,0x03,0x33,0x16,0x16, +0x33,0x32,0x36,0x37,0x33,0x02,0x07,0x16,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xad,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0xfd,0x7f,0x3d,0x2d,0x2e,0x3d,0x3e,0x2d,0x2c,0x3e,0x02,0xbc,0xfe,0xe6,0xcc,0xcc,0xfe,0xe6,0xda,0xd9,0x01,0xa2,0x01,0xbd,0x86,0x87,0xbd,0x01,0xa1,0x02,0xd8,0xda,0xa1,0xbf, +0x86,0x86,0xbe,0xbf,0x85,0x86,0xbf,0x06,0x18,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0x2d,0x2b,0x40,0x40,0x2b,0x2d,0x3e,0x3e,0xfb,0x8c,0xc7,0xfe,0xde,0x01,0x20,0xc9,0x01,0x02,0x95,0x93,0x01,0x00,0x7e,0xc5,0xc7,0x7c,0xfe,0xff,0x92,0x95,0xfe,0xfe,0x7f,0xc7,0xc6,0x80,0x83,0xc5,0xc7,0x00,0x00,0x03,0x00,0x45,0xff,0xe9,0x05,0xbe, +0x06,0xe8,0x00,0x28,0x00,0x35,0x00,0x41,0x00,0x00,0x01,0x14,0x06,0x07,0x15,0x14,0x07,0x16,0x15,0x14,0x06,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x27,0x06,0x21,0x22,0x24,0x27,0x34,0x37,0x36,0x33,0x20,0x17,0x36,0x35,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x32,0x16,0x07,0x34,0x27,0x26,0x23,0x22,0x06,0x07,0x14,0x16,0x33,0x32,0x36, +0x01,0x26,0x21,0x22,0x06,0x15,0x14,0x16,0x16,0x33,0x20,0x37,0x05,0xbe,0x92,0x81,0x2f,0x2f,0x79,0xf2,0x98,0xb0,0xc2,0x07,0xb5,0xfe,0xc7,0xcb,0xfe,0xec,0x01,0x8b,0x8a,0xcb,0x01,0x38,0xb6,0x07,0x01,0x7c,0x96,0xca,0x91,0x90,0xcc,0x92,0x3b,0x3a,0x55,0x55,0x74,0x01,0x71,0x59,0x56,0x74,0xfe,0x9f,0x8c,0xfe,0xe6,0x87,0xb8,0x57, +0x93,0x55,0x01,0x1b,0x8b,0x05,0x8d,0x76,0xc2,0x1d,0x18,0x86,0x74,0x72,0x88,0x9d,0xeb,0x9e,0x1d,0xa1,0x2b,0xd7,0xa0,0x28,0x29,0xc4,0xd8,0x95,0x97,0x6a,0x6c,0xc3,0x28,0x28,0x18,0x1d,0xbf,0x79,0x90,0xca,0x01,0xcc,0x8f,0x57,0x38,0x3b,0x76,0x54,0x51,0x79,0x76,0xfd,0xef,0xc2,0x74,0x50,0x32,0x5e,0x33,0xc1,0xff,0xff,0x00,0x00, +0xfd,0xff,0x03,0xbd,0xff,0xbb,0x02,0x26,0x0b,0x59,0x00,0x00,0x00,0x27,0x0b,0x5f,0x02,0x6d,0x00,0x00,0x00,0x07,0x0b,0x53,0x03,0x04,0x00,0x00,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5a,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x97,0xff,0xbb,0x02,0x26,0x0b,0x5b,0x00,0x00,0x00,0x67,0x0b,0x5f,0x02,0x47,0x00,0x00,0xc0,0x01,0x40,0x00,0x00,0x07,0x0b,0x53,0x02,0xde,0x00,0x00,0xff,0xff,0xff,0x9c,0x05,0x77,0x00,0x67,0x06,0x40,0x02,0x06,0x0b,0x66,0x00,0x00,0xff,0xff,0xfe,0xe6,0x05,0x77,0x01,0x1b,0x06,0x40,0x02,0x27, +0x0b,0x66,0xff,0x4a,0x00,0x00,0x00,0x07,0x0b,0x66,0x00,0xb4,0x00,0x00,0xff,0xff,0xff,0x9c,0xfe,0x8d,0x00,0x67,0xff,0x56,0x02,0x06,0x0b,0x67,0x00,0x00,0xff,0xff,0x00,0x31,0x00,0x00,0x03,0x17,0x05,0xd5,0x02,0x26,0x0b,0x6a,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x20,0x00,0x00,0x03,0xab,0x05,0xd5, +0x02,0x26,0x0b,0x6b,0x00,0x00,0x00,0x07,0x0b,0x61,0x01,0xea,0x00,0x00,0xff,0xff,0x00,0xb8,0x00,0x00,0x04,0xc0,0x05,0xd5,0x02,0x26,0x0b,0x6c,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xad,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xed,0x05,0x23,0x05,0xd5,0x02,0x26,0x0b,0x82,0x00,0x00,0x00,0x07,0x0b,0x61,0x02,0xf3,0x00,0x00,0x00,0x02, +0x00,0x6d,0xff,0xe8,0x01,0xcc,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x4d,0x40,0x2e,0x11,0x03,0x7e,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x15,0x91,0x14,0x0d,0x91,0x00,0x2f,0x14,0x01,0x20,0x00,0x50,0x00,0x80,0x00,0xb0,0x00,0xd0,0x00,0xe0,0x00,0x06,0x14,0x00,0x14,0x00,0x06,0x1b,0x91,0x0e,0x04,0x07,0x91,0x06,0x13,0x00,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x10,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x32,0x16,0x15,0x14,0x06,0x23,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x6d,0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52, +0x91,0xce,0xce,0x91,0x52,0x65,0x65,0x52,0x02,0xa6,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x03,0xa4,0xce,0x91,0x91,0xce,0x98,0x06,0x6e,0x53,0x53,0x6e,0x06,0x00,0x02,0x00,0x5a,0x01,0x80,0x01,0x52,0x05,0xb2,0x00,0x0d,0x00,0x1b,0x00,0x30,0x40,0x18,0x11,0x03,0xed,0x18,0x0a,0x0a,0x1d,0x1b,0x14,0x0d,0x06,0x07, +0x96,0x06,0x0d,0x96,0x00,0x15,0x96,0x14,0x1b,0x96,0x0e,0x04,0x00,0x3f,0xed,0xd6,0xed,0xd6,0xed,0xd6,0xed,0x01,0x2f,0x33,0x33,0x33,0x12,0x39,0x2f,0x33,0xe9,0x32,0x31,0x30,0x13,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x11,0x16,0x16,0x15,0x14,0x06,0x07,0x35,0x36,0x36,0x35,0x34,0x26,0x27,0x5a,0x68, +0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x68,0x90,0x90,0x68,0x36,0x3a,0x3a,0x36,0x03,0x70,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x02,0xc4,0x02,0x91,0x65,0x65,0x91,0x02,0x82,0x05,0x3b,0x36,0x36,0x3b,0x05,0x00,0x00,0x01,0x00,0x5b,0x02,0xac,0x01,0xde,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07, +0x07,0x0f,0x03,0x7e,0x0a,0x06,0x91,0x07,0x00,0x91,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0xde,0x60,0x7b,0x7b,0x60,0xa7,0xdc,0xdc,0xa7,0x05,0x1a,0x06,0x85,0x60,0x60,0x85,0x06,0x98,0xdc,0xa7,0xa7,0xdc,0x00, +0x00,0x01,0x00,0x4e,0x03,0x90,0x01,0x5e,0x05,0xb2,0x00,0x0d,0x00,0x1e,0x40,0x0e,0x00,0x07,0x07,0x0f,0x03,0xed,0x0a,0x06,0x96,0x07,0x00,0x96,0x0d,0x04,0x00,0x3f,0xed,0xd6,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x15,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x5e,0x3f,0x49,0x49,0x3f, +0x77,0x99,0x95,0x7b,0x05,0x30,0x05,0x4b,0x3f,0x3f,0x4b,0x05,0x82,0x02,0x98,0x77,0x75,0x98,0x04,0x00,0x00,0x01,0x00,0xbc,0xfe,0x5a,0x04,0xf2,0x05,0x9a,0x00,0x15,0x00,0x3b,0x40,0x1f,0x13,0x00,0x7e,0x0b,0x06,0x0b,0x06,0x0b,0x17,0x12,0x0e,0x7e,0x0f,0x0d,0x91,0x40,0x12,0x10,0x0f,0x12,0x91,0x2b,0x30,0x14,0x10,0x03,0x08,0x91, +0x03,0x0f,0x12,0x00,0x3f,0xd4,0xed,0x3f,0x33,0x2b,0x00,0x18,0x2f,0x1a,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x31,0x30,0x25,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x04,0xf2,0xb5,0xb7,0x4c,0x3d,0x4f,0x3e,0x5f,0x61,0xfd,0x1a,0xa8, +0xa8,0x02,0xe6,0xa8,0x3f,0xf8,0xed,0x1f,0xa5,0x2c,0x86,0x89,0x02,0x8d,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x02,0x75,0x00,0x01,0x00,0xa6,0xfe,0x5a,0x03,0xf8,0x05,0xec,0x00,0x1a,0x00,0x2f,0x40,0x18,0x00,0x84,0x0a,0x06,0x0a,0x06,0x0a,0x1c,0x15,0x11,0x84,0x12,0x15,0x0d,0x95,0x18,0x0f,0x13,0x00,0x08,0xec,0x03,0x12,0x15,0x00,0x3f, +0xd4,0xed,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x20,0x11,0x03,0xf8,0xb7,0xaf,0x4d,0x3d,0x4f,0x3f,0xbe,0xee,0x77,0xa5,0xa4,0xa4,0x04,0x77,0xd9,0x01, +0x5a,0xd4,0xd2,0x1f,0xa5,0x2c,0x01,0x0e,0x02,0x4e,0x01,0x40,0xb8,0x92,0xfd,0xbc,0x05,0xec,0xfd,0x6a,0xc2,0xfe,0x5f,0x00,0x00,0x01,0x00,0x29,0xfe,0x21,0x05,0x83,0x05,0x9a,0x00,0x21,0x00,0x5c,0x40,0x31,0x1f,0x17,0x7e,0x13,0x0a,0x18,0x03,0x7d,0x10,0x15,0x21,0x1a,0x18,0x1d,0x10,0x21,0x21,0x10,0x1d,0x18,0x1a,0x05,0x22,0x23, +0x00,0x14,0x21,0x15,0x91,0x1f,0x12,0x92,0x00,0x00,0x06,0x1f,0x1f,0x18,0x1e,0x1a,0x91,0x1b,0x03,0x0a,0x0d,0x92,0x06,0x18,0x12,0x00,0x3f,0xd4,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x01,0x2f,0x33,0x11,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x10,0xc6,0xc4,0xe9,0x32, +0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x23,0x35,0x01,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x03,0xea,0xbf,0xda,0xfe,0xdf,0xea,0x76,0xaa,0x56,0x63,0xb7,0x63,0x96,0xbc,0xfe,0xa1,0x8c,0x01,0x8a,0xfd,0xfe,0xa8,0xfe,0x63,0x03,0xe3,0xfe, +0x62,0x03,0x02,0x01,0x73,0x04,0xd8,0xb6,0xce,0xf2,0x26,0x2e,0xb6,0x44,0x37,0xa0,0x87,0x01,0x1e,0x07,0x02,0x3f,0xfc,0xc5,0x05,0x02,0x98,0x98,0xfe,0xd1,0x28,0x00,0x00,0x01,0x00,0x2b,0xfe,0x21,0x04,0xe4,0x05,0x2f,0x00,0x29,0x00,0x57,0x40,0x2e,0x00,0x12,0x03,0x83,0x0e,0x14,0x29,0x12,0x0e,0x29,0x29,0x0e,0x12,0x03,0x2b,0x27, +0x15,0x84,0x24,0x22,0x09,0x20,0x29,0x15,0x21,0x95,0x23,0x11,0x96,0x00,0x00,0x06,0x27,0x26,0x23,0x0f,0x1b,0x19,0x95,0x1e,0x15,0x09,0x0b,0x95,0x06,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x33,0x33,0x12,0x39,0x2f,0xed,0x10,0xed,0x32,0x32,0x01,0x2f,0xc4,0x33,0x33,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10, +0xe9,0x11,0x33,0x31,0x30,0x01,0x16,0x16,0x15,0x14,0x00,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35,0x33,0x35,0x37,0x11,0x21,0x15,0x03,0x20,0xd2,0xf2,0xfe,0xb5,0xf0,0xb6,0x9a,0xa6,0xb0,0xab,0xe2,0xdb,0xd1,0x52,0x01, +0x80,0xfd,0xc1,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x03,0x2a,0x01,0xae,0x1c,0xe9,0xb3,0xce,0xfe,0xf9,0x51,0xa2,0x68,0xb2,0x94,0x9b,0xa0,0x33,0x02,0x14,0xfd,0xbf,0x67,0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x33,0x00,0x00,0x01,0x00,0x66,0xff,0xe9,0x04,0x0b,0x05,0xb2,0x00,0x24, +0x00,0x4b,0x40,0x17,0x24,0x1a,0x18,0x01,0x20,0x0e,0x1a,0x01,0x0e,0x0e,0x01,0x1a,0x03,0x26,0x09,0x7d,0x15,0x20,0x23,0x91,0x1c,0x00,0x05,0xb8,0x01,0x05,0x40,0x0e,0x19,0x1a,0x24,0x1b,0x19,0x04,0x12,0x1c,0x04,0x0e,0x0c,0x91,0x12,0x13,0x00,0x3f,0xed,0x32,0x3f,0x12,0x17,0x39,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12, +0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x06,0x23,0x20,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x03,0x3c,0x0c,0x25,0x13,0x26,0x1f,0xd2,0xca,0xd4,0xac,0xb9,0xbb,0x5c, +0xb3,0x65,0xfe,0xfd,0xfe,0xd2,0x01,0x17,0xf4,0xfe,0x49,0x01,0xb7,0x93,0x9c,0x4f,0x53,0xbf,0x58,0xf8,0x03,0x40,0x8c,0x03,0x03,0x01,0x02,0x99,0x9b,0x7e,0x8c,0x5c,0xa6,0x29,0x23,0xdc,0xc3,0xc6,0xd8,0x02,0x04,0x01,0x23,0x2e,0x01,0x35,0x24,0x22,0xaa,0x30,0x28,0xab,0x00,0x01,0x00,0x26,0xfe,0x1d,0x03,0xc5,0x04,0x00,0x00,0x25, +0x00,0x4a,0x40,0x26,0x25,0x1b,0x19,0x00,0x1b,0x00,0x1b,0x00,0x16,0x21,0x10,0x10,0x27,0x09,0x84,0x16,0x21,0x24,0x95,0x1d,0x06,0x96,0x00,0x1c,0x25,0x1b,0x03,0x1d,0x19,0x19,0x13,0x1d,0x10,0x0f,0x0c,0x95,0x13,0x1c,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x12,0x17,0x39,0x33,0xed,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f, +0xc4,0x11,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x15,0x26,0x26,0x27,0x27,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x24,0x35,0x34,0x24,0x37,0x35,0x01,0x35,0x01,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x07,0x02,0xf6,0x0c,0x25,0x13,0x26,0x1f,0xc3,0xde,0xe3,0xa2,0x5e,0xb8,0x5e, +0x67,0xaa,0x63,0xf9,0xfe,0xce,0x01,0x1e,0xee,0xfe,0x56,0x01,0x8f,0x9a,0xaa,0x4e,0x53,0xbf,0x58,0xf0,0x01,0x8e,0x8c,0x03,0x03,0x01,0x02,0xa9,0x97,0x83,0xa0,0x34,0x2e,0x9c,0x2d,0x24,0xe3,0xca,0xc5,0xe3,0x02,0x05,0x01,0x23,0x2e,0x01,0x36,0x24,0x22,0x9b,0x30,0x28,0xbe,0x00,0x00,0x02,0x00,0x51,0xff,0xe6,0x03,0x95,0x05,0x9a, +0x00,0x12,0x00,0x1e,0x00,0x35,0x40,0x1a,0x13,0x12,0x01,0x7e,0x0f,0x08,0x0f,0x08,0x0f,0x20,0x1e,0x10,0x11,0x10,0x91,0x17,0x12,0x1e,0x1e,0x04,0x12,0x03,0x0b,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x01,0x2f,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x01,0x11,0x14,0x06,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x03,0x95,0xa4,0xbc,0x23,0x65,0x21,0x1f,0x61,0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x05,0x9a,0xfb,0xdc,0xde,0xb2,0x0f,0x10,0xa5,0x11,0x1b, +0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0x00,0x02,0x00,0x21,0xfe,0x1e,0x03,0x50,0x04,0x00,0x00,0x12,0x00,0x1d,0x00,0x30,0x40,0x18,0x13,0x11,0x00,0x84,0x0e,0x07,0x0e,0x07,0x0e,0x1f,0x1d,0x10,0x17,0x11,0x0f,0x10,0x1d,0x96,0x0f,0x15,0x0a,0x95,0x03,0x1c,0x00,0x3f, +0xed,0x3f,0xed,0x32,0x3f,0x33,0x01,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x03,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75, +0x02,0x85,0xaa,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22,0xfd,0x8e,0x00,0x03,0x00,0x51,0xff,0xe6,0x04,0xa1,0x05,0x9a,0x00,0x16,0x00,0x22,0x00,0x26,0x00,0x54,0x40,0x2c,0x26,0x23,0x24,0x25, +0x01,0x04,0x7e,0x13,0x17,0x16,0x13,0x23,0x03,0x25,0x13,0x0c,0x0c,0x13,0x25,0x03,0x23,0x05,0x28,0x22,0x14,0x25,0x12,0x26,0x04,0x14,0x91,0x15,0x01,0x1b,0x16,0x22,0x22,0x08,0x16,0x03,0x0f,0x91,0x08,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xfd,0x32,0xcc,0x3f,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f, +0x2f,0x2f,0x11,0x33,0x33,0x10,0xe9,0x32,0x11,0x33,0x11,0x33,0x31,0x30,0x01,0x11,0x33,0x15,0x23,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x13,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x07,0x06,0x07,0x01,0x05,0x03,0x23,0x13,0x03,0x95,0xf1,0xf1,0xa6,0xba,0x23,0x65,0x21,0x1f,0x61, +0x29,0x60,0x58,0xfd,0x64,0x02,0x95,0x07,0x07,0x03,0x04,0x07,0x09,0x11,0x09,0x08,0xfe,0x47,0x03,0x99,0xa6,0x7b,0x75,0x05,0x9a,0xfc,0x61,0x96,0x0e,0xc7,0xaa,0x0f,0x10,0xa5,0x11,0x1b,0x58,0x80,0x0f,0x81,0x03,0xb4,0xfc,0x61,0x02,0x4d,0x18,0x54,0x1a,0x0f,0x10,0x1d,0x0f,0x0c,0xfd,0x84,0xf8,0xfe,0xfc,0x01,0x04,0x00,0x00,0x03, +0x00,0x21,0xfe,0x1e,0x04,0x72,0x04,0x00,0x00,0x16,0x00,0x21,0x00,0x25,0x00,0x4b,0x40,0x26,0x23,0x24,0x25,0x22,0x07,0x24,0x14,0x22,0x22,0x14,0x24,0x07,0x04,0x27,0x21,0x10,0x13,0x16,0x84,0x17,0x11,0x0e,0x1b,0x11,0x0f,0x24,0x24,0x03,0x13,0x10,0x21,0x25,0x16,0x0f,0x15,0x0a,0x03,0x1c,0x00,0x3f,0xcd,0x3f,0x33,0xcc,0xcd,0x32, +0x32,0x12,0x39,0x2f,0x3f,0x33,0x01,0x2f,0x33,0x33,0xe9,0x32,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x21,0x35,0x01,0x33,0x11,0x21,0x15,0x21,0x27,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x01,0x05,0x03,0x23, +0x13,0x03,0x50,0xae,0xa5,0x29,0x57,0x29,0x2b,0x51,0x2a,0x5a,0x58,0xfd,0x75,0x02,0x85,0xaa,0x01,0x05,0xfe,0xfb,0xa4,0x02,0x05,0x03,0x03,0x0a,0x06,0x14,0xfe,0x46,0x03,0xa3,0xa6,0x7b,0x75,0x3f,0xca,0xd9,0x0c,0x14,0x99,0x1b,0x12,0x7e,0x9b,0x3d,0x6f,0x03,0x91,0xfc,0x84,0x84,0x84,0x02,0x54,0x1e,0x32,0x15,0x07,0x14,0x0a,0x22, +0xfd,0x8e,0xdc,0xfe,0xfc,0x01,0x04,0x00,0x00,0x01,0x00,0xb0,0x00,0x00,0x03,0x0b,0x04,0x33,0x00,0x09,0x00,0x26,0x40,0x12,0x03,0x00,0x00,0x0b,0x02,0x05,0x84,0x07,0x05,0x95,0x02,0x02,0x07,0x01,0x95,0x08,0x07,0x15,0x00,0x3f,0xdd,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0xc6,0x31,0x30,0x01,0x21,0x11,0x21, +0x15,0x21,0x11,0x23,0x11,0x21,0x03,0x0b,0xfe,0x49,0x01,0x95,0xfe,0x6b,0xa4,0x02,0x5b,0x03,0xa8,0xfe,0xb1,0x8a,0xfe,0x31,0x04,0x33,0x00,0x01,0x00,0x68,0xff,0xed,0x03,0x08,0x04,0x45,0x00,0x21,0x00,0x34,0x40,0x1b,0x1b,0x84,0x06,0x11,0x06,0x11,0x21,0x23,0x16,0x84,0x0b,0x21,0x11,0x13,0x95,0x16,0x0b,0x1b,0x06,0x04,0x0e,0x1e, +0x00,0x03,0x95,0x1e,0x16,0x00,0x3f,0xfd,0xc6,0x10,0xd4,0x17,0x39,0xfd,0xc6,0x01,0x2f,0xd4,0xe9,0x11,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x24,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x04,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x6b,0x33, +0xa3,0x4a,0x73,0x68,0x71,0xfe,0xef,0x7c,0xd7,0xa8,0xa0,0x4a,0x5f,0x93,0x61,0x75,0x77,0x01,0x01,0x87,0xd7,0xb9,0x43,0xa8,0x22,0xd7,0x29,0x38,0x54,0x44,0x46,0x57,0x87,0x91,0x69,0x7e,0x9b,0x26,0xa5,0x42,0x4e,0x3e,0x4d,0x59,0x7b,0x8d,0x67,0x88,0xa6,0x28,0x16,0x00,0x00,0x03,0x00,0x16,0x00,0x00,0x08,0xf1,0x05,0x9a,0x00,0x17, +0x00,0x21,0x00,0x2b,0x00,0x3f,0x40,0x1f,0x17,0x0c,0x1c,0x03,0x05,0x26,0x13,0x00,0x00,0x05,0x13,0x13,0x2d,0x05,0x26,0x1c,0x16,0x03,0x91,0x2b,0x21,0x21,0x04,0x1c,0x11,0x06,0x03,0x14,0x01,0x04,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x33,0x01,0x2f,0x11,0x33,0x2f,0x12,0x39,0x2f,0x12,0x39, +0x12,0x17,0x39,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x05,0x12,0xba,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0x6f,0x16,0x06, +0x0b,0x02,0x04,0x15,0x09,0x01,0x77,0xae,0x02,0x28,0xba,0x98,0xfd,0xa0,0x60,0xfe,0xaa,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x05,0xd0,0xe1,0x06,0x0e,0x02,0x04,0x02,0x0d,0x08,0xdf,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfc,0x47,0x3b,0x12,0x23,0x0d,0x0d,0x40,0x16,0x03,0xd3,0xfa,0x66,0x01,0x92,0xfe,0xf2,0x01,0xa5,0x02,0x63, +0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x02,0x63,0x10,0x3a,0x16,0x14,0x36,0x15,0xfd,0x9c,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0xfc,0x04,0x18,0x00,0x2d,0x00,0x38,0x00,0x43,0x00,0x5d,0x40,0x30,0x09,0x09,0x00,0x32,0xef,0x39,0x23,0x19,0x39,0x2e,0x11,0x84,0x12,0x04,0x12,0x39,0x12,0x39,0x12,0x45,0x3d,0x83,0x27,0x20,0x09,0x27, +0x27,0x06,0x25,0x95,0x2a,0x2e,0x39,0x96,0x04,0x23,0x23,0x0d,0x2a,0x0f,0x35,0x40,0x95,0x16,0x1d,0x16,0x12,0x15,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0x33,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x32,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x31, +0x30,0x01,0x36,0x36,0x37,0x25,0x10,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x15,0x05,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x25,0x07,0x06,0x06,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x03,0x7b,0x1f,0x5b,0x30,0x01,0x33,0xcd,0x3f,0x8f,0x1f,0x3d,0x87,0x52,0x9f,0xa9,0xa4,0x04,0x6a,0xd1,0x78,0x91,0x26,0x04,0x32,0xa9,0x6b,0x94,0xb2,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0xb9,0xa8,0x01,0xdd,0xf7,0x82,0x64,0x73,0x51,0x78,0xa1,0xfd,0x87,0xf7,0x82,0x64,0x6d,0x57,0x7a,0x9f,0x02, +0x2d,0x12,0x18,0x07,0x2b,0x01,0x05,0x49,0x35,0x9e,0x39,0x31,0xbe,0xc0,0xfd,0x66,0xa0,0xb8,0x5b,0x61,0x5a,0x62,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xc3,0xbb,0x94,0x22,0x12,0x5f,0x57,0x4d,0x5d,0xae,0x80,0x66,0x22,0x12,0x5f,0x57,0x50,0x5a,0xae,0x80,0x00,0x00,0x03,0x00,0x16,0xff,0xe8,0x08,0xdb,0x05,0xb2, +0x00,0x15,0x00,0x21,0x00,0x2b,0x00,0x3b,0x40,0x1f,0x0d,0x7d,0x26,0x06,0x1b,0x1b,0x00,0x2d,0x21,0x7f,0x07,0x00,0x14,0x91,0x06,0x2b,0x2b,0x01,0x15,0x12,0x18,0x91,0x10,0x13,0x1e,0x91,0x0a,0x04,0x26,0x01,0x03,0x00,0x3f,0xcd,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0xed,0x01,0x2f,0x2f,0xe9,0x11,0x12,0x39,0x2f,0x39,0x39, +0xe9,0x31,0x30,0x33,0x01,0x33,0x13,0x16,0x17,0x17,0x33,0x36,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x24,0x27,0x21,0x03,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x07,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x9f,0x0b,0x08,0x0c,0x04,0x21,0x01,0x60,0x01,0x1a,0x01,0x28,0x01, +0x6c,0xfe,0x8c,0xfe,0xc8,0xeb,0xfe,0xbd,0x42,0xfd,0xa1,0x8f,0x03,0x6e,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xb6,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x62,0x1d,0x19,0x2c,0xdf,0x01,0x39,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0xed,0xbd,0xfe,0x6e,0x01,0xc1,0xfe,0xbe,0x01,0x34, +0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xa2,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0xb6,0x04,0x18,0x00,0x20,0x00,0x2c,0x00,0x37,0x00,0x52,0x40,0x2c,0x00,0x14,0x2c,0x84,0x30,0x0a,0x30,0x1b,0x83,0x26,0x30,0x26,0x30,0x26,0x39,0x34,0x83,0x0e,0x07,0x23,0x95,0x1e, +0x16,0x29,0x95,0x18,0x10,0x0e,0x0c,0x95,0x11,0x30,0x96,0x14,0x11,0x00,0x0a,0x0a,0x11,0x10,0x37,0x95,0x04,0x16,0x00,0x3f,0xed,0x3f,0x39,0x2f,0x39,0x12,0x39,0xed,0x10,0xed,0x32,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xc4,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x39,0x39,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22, +0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x12,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x03,0x27,0x02,0x45,0xc8,0x78,0x92,0xb4,0x01,0x52,0x01,0x33,0xd3,0xba, +0x94,0x97,0xc5,0x8d,0x98,0x18,0x04,0x44,0xd3,0x6a,0xe0,0xfa,0xfe,0xf2,0xe4,0x83,0xe0,0x22,0xb4,0x99,0x9c,0xa2,0xa2,0x9c,0x9c,0xb1,0xfe,0xc2,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xcd,0x73,0x72,0xa2,0x86,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0x64,0x4b,0x61,0x4e,0xfe,0xe4,0xf8,0xf3,0xfe,0xd7,0x75,0xed,0xd8,0xcf,0xbd,0xbe, +0xd2,0xe1,0xa1,0xfe,0x66,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0xff,0xe8,0x07,0x3a,0x05,0x9a,0x00,0x13,0x00,0x1d,0x00,0x30,0x40,0x18,0x02,0x7e,0x18,0x08,0x0c,0x01,0x01,0x1f,0x0c,0x0a,0x91,0x1d,0x1d,0x0b,0x18,0x01,0x0d,0x03,0x0b,0x12,0x12,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x33,0xcd,0x12, +0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x2f,0x12,0x39,0x39,0xe9,0x31,0x30,0x01,0x11,0x33,0x11,0x10,0x21,0x22,0x26,0x27,0x03,0x21,0x03,0x23,0x01,0x33,0x01,0x16,0x16,0x33,0x20,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x06,0x92,0xa8,0xfd,0xdf,0x34,0x59,0x34,0x98,0xfd,0xa0,0x8f,0xbb,0x02,0x26,0xae,0x01,0xf5,0x12,0x29, +0x11,0x01,0x67,0xfc,0xf7,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x02,0x29,0x03,0x71,0xfc,0xaa,0xfd,0xa4,0x0a,0x0e,0x01,0x92,0xfe,0x6e,0x05,0x9a,0xfa,0xea,0x03,0x02,0x01,0xaa,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x06,0x1e,0x04,0x18,0x00,0x26,0x00,0x31,0x00,0x50,0x40,0x2b, +0x1d,0x84,0x2a,0x12,0x08,0x2a,0x02,0x00,0x84,0x24,0x2a,0x24,0x2a,0x24,0x33,0x2e,0x83,0x18,0x0f,0x25,0x0f,0x18,0x16,0x95,0x1b,0x2a,0x96,0x12,0x12,0x1b,0x0f,0x08,0x31,0x95,0x0c,0x16,0x02,0x21,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x39,0x2f,0xed,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe1,0x12, +0x39,0x39,0x2f,0x2f,0x10,0xe9,0x33,0x11,0x33,0x33,0x10,0xe9,0x31,0x30,0x21,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33, +0x06,0x1e,0x9f,0x04,0x63,0xd0,0x75,0x98,0x2f,0x03,0x3f,0xc0,0x6a,0x99,0xad,0x01,0x52,0x01,0x33,0x6b,0x68,0xba,0x94,0x97,0xc5,0x01,0x69,0x7b,0x74,0x74,0x94,0xa4,0xfc,0x27,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa2,0xba,0x57,0x65,0x5d,0x5f,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x11,0x75,0x7f,0x7e,0xa8,0x60,0xfe,0x82,0xf4,0x92,0xa2,0xb2, +0x8e,0x02,0x4e,0xfc,0x72,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x10,0x00,0x1a,0x00,0x32,0x40,0x18,0x15,0x05,0x00,0x0a,0x0b,0x0b,0x1c,0x0c,0x06,0x00,0x0f,0x91,0x1a,0x1a,0x01,0x10,0x05,0x0d,0x12,0x0a,0x03,0x15,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0x33,0x33,0x12, +0x39,0x2f,0xed,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01,0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x98,0xfd,0xa0,0x8f, +0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x66,0x01,0x92,0xfe,0x6e,0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1b,0x00,0x26,0x00,0x45,0x40,0x24,0x0c,0x04,0x84,0x17,0x0e,0x1f, +0x1f,0x14,0x0a,0x0b,0x0b,0x28,0x23,0x83,0x1b,0x14,0x1f,0x96,0x05,0x17,0x17,0x02,0x0e,0x26,0x95,0x11,0x16,0x0c,0x15,0x0a,0x0f,0x1b,0x19,0x95,0x02,0x10,0x00,0x3f,0xed,0x32,0x3f,0x3f,0x3f,0xed,0x32,0x11,0x39,0x2f,0x39,0xed,0x01,0x2f,0xc4,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0xe9,0x32,0x31,0x30,0x13,0x36,0x33, +0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x00,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0xbe,0x97,0xc5,0x01,0x69,0x04,0x03,0x16,0x11,0xdc,0xad,0xfe,0x4a,0xa5,0x04,0x6a,0xd1,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x01,0x87, +0x9a,0xf7,0x8f,0x57,0x6e,0x56,0x03,0xb8,0x60,0xfe,0x82,0xfe,0x87,0x24,0x51,0x2a,0x02,0x40,0xfc,0x00,0xa0,0xb8,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xfd,0x62,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x03,0x00,0x16,0x00,0x00,0x07,0x24,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x22,0x00,0x3b,0x40,0x1c,0x00,0x1d, +0x10,0x1d,0x05,0x0d,0x0a,0x0b,0x0b,0x24,0x05,0x22,0x0f,0x03,0x91,0x0c,0x08,0x1c,0x14,0x14,0x04,0x10,0x0a,0x06,0x03,0x01,0x04,0x12,0x00,0x3f,0x33,0x3f,0x33,0xcd,0x12,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0x11,0x33,0x2f,0x33,0xc6,0x12,0x39,0x39,0x11,0x33,0x31,0x30,0x21,0x23,0x03,0x21,0x03,0x23,0x01,0x33,0x01, +0x21,0x13,0x33,0x03,0x33,0x15,0x21,0x01,0x06,0x06,0x07,0x03,0x21,0x03,0x26,0x26,0x27,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x21,0x05,0x11,0xb9,0xe5,0xfe,0x3a,0xdc,0xbb,0x02,0x26,0xae,0x01,0x02,0x01,0x94,0xef,0xb5,0xf9,0xcd,0xfe,0xfb,0xfc,0x9b,0x05,0x0b,0x07,0x93,0x01,0x57,0x93,0x05,0x0c,0x05,0x02,0x0d,0x14,0x0b,0x04, +0x10,0x08,0x70,0xfe,0xdc,0x02,0x64,0xfd,0x9c,0x05,0x9a,0xfd,0x61,0x02,0x9f,0xfd,0x61,0x97,0x02,0x88,0x1f,0x30,0x11,0xfe,0x6f,0x01,0x91,0x0f,0x30,0x21,0xfc,0x3d,0x36,0x49,0x18,0x51,0x16,0x01,0x3b,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x05,0x3a,0x04,0x18,0x00,0x1d,0x00,0x24,0x00,0x2f,0x00,0x4d,0x40,0x28,0x1a,0x17,0x18,0x18, +0x31,0x1d,0x15,0x1f,0x84,0x0a,0x01,0x2f,0x28,0x83,0x0f,0x07,0x17,0x0f,0x0f,0x0d,0x95,0x12,0x1f,0x1c,0x2f,0x96,0x19,0x15,0x20,0x0a,0x0a,0x12,0x10,0x01,0x2b,0x95,0x04,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0x33,0x33,0xed,0x32,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc4,0xe9,0x2f,0x33,0x33,0xe9,0x32,0x32, +0x11,0x33,0x2f,0x33,0xc6,0x31,0x30,0x21,0x35,0x23,0x06,0x23,0x22,0x26,0x35,0x34,0x24,0x21,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x11,0x15,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x13,0x23,0x15,0x33,0x36,0x36,0x37,0x27,0x20,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x02,0xdf,0x04,0x6a,0xd1,0x99,0xad,0x01,0x29, +0x01,0x5c,0x69,0x6a,0xba,0x94,0x97,0xc5,0x01,0x69,0x7e,0x8c,0xad,0x9f,0x77,0xaf,0xdf,0x4b,0x4c,0x04,0x05,0x20,0x11,0xf3,0xfe,0xf6,0xbe,0x6e,0x56,0x7f,0x9a,0xa0,0xb8,0xa1,0x87,0xbe,0xbf,0x83,0x7e,0x7e,0xa8,0x60,0xfe,0x82,0x0d,0x01,0x73,0xfe,0x8d,0x83,0xfd,0xf6,0x02,0x0a,0xf1,0x2e,0x64,0x2e,0x31,0x76,0x78,0x4b,0x5f,0xa9, +0x8f,0x60,0x00,0x02,0x00,0x16,0xfe,0x1e,0x07,0x24,0x05,0x9a,0x00,0x1c,0x00,0x26,0x00,0x42,0x40,0x22,0x21,0x00,0x0c,0x05,0x19,0x03,0x0b,0x13,0x13,0x00,0x0a,0x0b,0x0b,0x28,0x00,0x1b,0x91,0x05,0x1c,0x26,0x26,0x01,0x19,0x1c,0x12,0x15,0x91,0x0f,0x1c,0x0a,0x03,0x21,0x01,0x03,0x00,0x3f,0xcd,0x3f,0x3f,0xed,0x3f,0x33,0x12,0x39, +0x2f,0x12,0x39,0xed,0x01,0x2f,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x17,0x39,0x12,0x39,0x31,0x30,0x33,0x01,0x33,0x01,0x16,0x17,0x33,0x34,0x36,0x37,0x01,0x33,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x21,0x03,0x01,0x03,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x16,0x02,0x26,0xae,0x01, +0xb5,0x14,0x0b,0x04,0x10,0x08,0x01,0x95,0xb5,0xfd,0xe5,0x5f,0xb6,0x8c,0x1e,0x30,0x1d,0x31,0x30,0x3a,0x60,0x22,0x48,0xa2,0xfd,0xa0,0x8f,0x02,0xb8,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfb,0x8f,0x36,0x49,0x18,0x51,0x16,0x04,0x71,0xfa,0x53,0xfd,0xd2,0x05,0x08,0x9d,0x12,0x56,0x50,0xa4,0x01,0x92,0xfe,0x6e, +0x02,0x29,0x02,0x63,0x0f,0x30,0x21,0x1f,0x30,0x11,0xfd,0x9d,0x00,0x02,0x00,0x5a,0xfe,0x1e,0x05,0x3a,0x04,0x18,0x00,0x25,0x00,0x30,0x00,0x56,0x40,0x2d,0x28,0x13,0x84,0x25,0x0a,0x1b,0x25,0x1a,0x20,0x25,0x20,0x25,0x07,0x19,0x1a,0x1a,0x32,0x2d,0x83,0x07,0x0e,0x0e,0x07,0x22,0x95,0x1d,0x1c,0x19,0x0f,0x0e,0x0c,0x95,0x11,0x29, +0x96,0x14,0x0a,0x0a,0x11,0x10,0x00,0x30,0x95,0x04,0x16,0x00,0x3f,0xed,0x32,0x3f,0x39,0x2f,0x39,0xed,0x10,0xed,0x32,0x3f,0x3f,0xed,0x01,0x2f,0x33,0x2f,0x10,0xe9,0x11,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x32,0x10,0xe9,0x33,0x31,0x30,0x25,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x10,0x25,0x25,0x10,0x23,0x22, +0x07,0x35,0x36,0x33,0x20,0x11,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x26,0x36,0x35,0x35,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0xe4,0x04,0x36,0xa1,0x69,0x99,0xad,0x01,0x52,0x01,0x33,0xd3,0xba,0x94,0x97,0xc5,0x01,0x69,0x04,0x03,0x18,0x10,0xdb,0xad,0xfe,0x0a,0x7e,0xe4, +0x41,0x2a,0x34,0x2d,0x7f,0x3d,0x50,0x9f,0x9a,0xf7,0x8f,0x57,0x6e,0x56,0xa8,0x5d,0x63,0xa1,0x87,0x01,0x1f,0x2f,0x2b,0x01,0x05,0x7e,0xa8,0x60,0xfe,0x82,0xfe,0x8c,0x24,0x51,0x2a,0x02,0x3b,0xfb,0x5c,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x70,0xa9,0x8f,0x5c,0x22,0x15,0x5e,0x55,0x4b,0x5f,0x00,0x02,0x00,0x68,0xff,0xe8,0x04,0x96, +0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x7d,0x05,0x21,0x05,0x21,0x05,0x23,0x0a,0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x91,0x13,0x13,0x0a,0x08,0x91,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37, +0x16,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x27,0x00,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x68,0x9d,0xd9,0xea,0x01,0x1e,0xfe,0xcc,0xf6,0xb9,0x9b,0x87,0xcb,0x01,0x3e,0x01,0x9e,0xfe,0x8f,0xfe,0xcf,0xed,0x9f,0x01,0x27,0x3a,0x29,0x2a,0x38,0x38,0x2a, +0x29,0x3a,0xdf,0x60,0x01,0x38,0x01,0x05,0x01,0x14,0x01,0x4a,0x56,0xb3,0x3b,0xfe,0x58,0xfe,0xa8,0xfe,0xbf,0xfe,0x77,0x54,0x02,0xc2,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28,0x00,0x00,0x02,0x00,0x50,0xff,0xe8,0x03,0x52,0x04,0x18,0x00,0x15,0x00,0x21,0x00,0x37,0x40,0x1c,0x1b,0xc0,0x21,0x10,0x83,0x05,0x21,0x05,0x21,0x05,0x23,0x0a, +0x15,0x1e,0xc1,0x18,0x18,0x0d,0x00,0x02,0x95,0x13,0x16,0x0a,0x08,0x95,0x0d,0x10,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x11,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x27,0x12, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x52,0x77,0x85,0x9e,0xbe,0xca,0x9c,0x81,0x73,0x69,0x85,0xf1,0x01,0x23,0xfe,0xf3,0xdb,0xa1,0x77,0xa1,0x3a,0x29,0x2a,0x38,0x38,0x2a,0x29,0x3a,0xcb,0x59,0xd0,0xb4,0xb6,0xe2,0x50,0xa8,0x32,0xfe,0xcd,0xfd,0xe4,0xfe,0xe4,0x47,0x01,0xfd,0x37,0x36,0x2a,0x2a,0x39,0x3b,0x28, +0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x46,0x40,0x23,0x17,0x18,0x00,0x19,0x10,0x10,0x07,0x01,0x00,0x00,0x1b,0x12,0x0e,0x06,0x7e,0x0b,0x09,0x07,0x11,0x09,0x92,0x0e,0x04,0x19,0x12,0x03,0x0a,0x0a,0x07,0x17,0x0c,0x03,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0x33,0xed,0x32, +0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x39,0x10,0xc6,0x32,0x31,0x30,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c, +0x02,0x18,0xd1,0xfd,0x99,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x43,0x40,0x22,0x09,0x09,0x0d,0x0e,0x11,0x0e,0x10,0x10,0x16,0x0f,0x0b,0x07,0x14,0x84,0x04,0x02,0x00,0x0d,0x0f,0x0a,0x02,0x96, +0x07,0x12,0x0f,0x0b,0x03,0x03,0x03,0x05,0x00,0x11,0x00,0x15,0x00,0x3f,0x32,0x3f,0x39,0x2f,0x17,0x39,0x33,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x32,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x39,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x01,0x23,0x01,0x23,0x11, +0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x02,0x00,0xe6,0xfe,0x3c,0x04,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0xfd,0xee,0x01,0xec,0xfe,0x14,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x41,0x40,0x21,0x0a,0x0c,0x13,0x0c,0x13,0x0c,0x08,0x09,0x09,0x10, +0x0f,0x0f,0x1b,0x03,0x19,0x7e,0x00,0x13,0x12,0x0d,0x0c,0x0c,0x03,0x0a,0x17,0x12,0x05,0x08,0x01,0x03,0x10,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xe1,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01, +0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79, +0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x40,0x40,0x21,0x02,0x13,0x84,0x14,0x0e,0x08,0x0e,0x08,0x05,0x14,0x04,0x05,0x05,0x0c,0x0b,0x0f,0x0e,0x09,0x08,0x08,0x02,0x06,0x11,0x0e,0x05,0x04,0x0c,0x14,0x15,0x04,0x0f,0x00,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x17,0x39,0x11, +0x33,0x11,0x33,0x01,0x2f,0x33,0x33,0x2f,0x33,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x32,0x31,0x30,0x13,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0xa6,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x05,0xec,0xfc, +0x3f,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2,0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x21,0x00,0x54,0x40,0x2b,0x12,0x14,0x1b,0x14,0x1b,0x14,0x10,0x11,0x11,0x18,0x17,0x17,0x23,0x0b,0x07,0x21,0x7e,0x04,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x15,0x14,0x1b,0x1a,0x1a, +0x1f,0x12,0x0b,0x14,0x05,0x03,0x03,0x10,0x05,0x03,0x18,0x00,0x12,0x00,0x3f,0x32,0x3f,0x33,0x39,0x2f,0x17,0x39,0x11,0x33,0x11,0x33,0x11,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11, +0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x01,0x15,0x07,0x01,0x23,0x01,0x07,0x35,0x37,0x27,0x26,0x27,0x23,0x11,0xbc,0xaa,0xaa,0xa8,0xe8,0xe8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xa5,0x01,0x08,0xa8,0x01,0x8d,0xea,0xfe,0xec,0xcc,0x6e,0xb8,0x1e,0x08,0x04,0x04,0x9c,0x85,0x79,0x79,0x85,0xfe,0x5c,0x0b,0x18,0x0e,0x02, +0x71,0xfd,0x50,0xbc,0x01,0x21,0xd5,0xb8,0xfe,0x3e,0x01,0x46,0xe1,0xd7,0x79,0xdb,0x24,0x0e,0xfd,0x3e,0x00,0x01,0x00,0x27,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x1c,0x00,0x59,0x40,0x2e,0x0d,0x0f,0x16,0x0f,0x16,0x0f,0x0b,0x0c,0x0c,0x13,0x12,0x12,0x1e,0x09,0x05,0x1a,0x84,0x02,0x00,0x1b,0x10,0x0f,0x16,0x15,0x15,0x18,0x0d,0x09, +0x0f,0x05,0x0b,0x1b,0x08,0x00,0x96,0x05,0x01,0x01,0x03,0x13,0x1b,0x15,0x0b,0x0f,0x03,0x00,0x00,0x3f,0x3f,0x3f,0x33,0x12,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0x01,0x2f,0xc6,0x33,0xe1,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x35,0x33,0x35,0x33, +0x15,0x21,0x15,0x21,0x11,0x33,0x01,0x33,0x01,0x17,0x37,0x15,0x07,0x01,0x23,0x27,0x07,0x35,0x37,0x27,0x23,0x11,0x23,0x11,0x27,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x01,0xae,0xd7,0xfe,0x25,0x67,0xe6,0x88,0x01,0x3b,0xe6,0xc4,0x99,0x3e,0xa5,0x04,0xa4,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfd,0x79,0x01,0xd5,0xfe,0x12,0x6b,0xee,0xc2, +0x8d,0xfe,0xba,0xd4,0x9e,0xc2,0x40,0xb4,0xfe,0x14,0x04,0xb2,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0x3b,0x05,0x9a,0x00,0x09,0x00,0x2a,0x40,0x16,0x01,0x7e,0x04,0x02,0x04,0x02,0x0b,0x08,0x7e,0x06,0x06,0x05,0x09,0x00,0x04,0x04,0x07,0x03,0x01,0x91,0x04,0x12,0x00,0x3f,0xed,0x3f,0x12,0x17,0x39,0x01,0x2f,0xe1,0x12,0x39,0x39,0x2f, +0x2f,0xe1,0x31,0x30,0x01,0x11,0x21,0x15,0x21,0x11,0x07,0x11,0x33,0x11,0x01,0xfc,0x02,0x3f,0xfd,0x18,0x97,0xa9,0x03,0x18,0xfd,0x80,0x98,0x02,0xa8,0x2f,0x03,0x21,0xfd,0x4d,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xdc,0x05,0xed,0x00,0x07,0x00,0x2b,0x40,0x16,0x06,0x84,0x04,0x00,0x84,0x02,0x04,0x02,0x04,0x02,0x08,0x09,0x04,0x03, +0x07,0x00,0x04,0x02,0x05,0x00,0x02,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x11,0x12,0x01,0x39,0x39,0x2f,0x2f,0x10,0xe1,0x10,0xe1,0x31,0x30,0x01,0x11,0x23,0x11,0x07,0x11,0x33,0x11,0x01,0xdc,0xa4,0x92,0xa4,0x03,0x43,0xfc,0xbd,0x02,0xd5,0x2e,0x03,0x46,0xfd,0x26,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x03,0xa4,0x05,0x9a,0x00,0x0d, +0x00,0x2d,0x40,0x16,0x09,0x0c,0x09,0x0c,0x0f,0x0b,0x7e,0x02,0x00,0x0a,0x02,0x92,0x07,0x03,0x03,0x00,0x05,0x03,0x0b,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0xe1,0x12,0x39,0x39,0x2f,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x21,0x15,0xbc,0xaa,0xaa, +0xa8,0xe8,0xe8,0x02,0x40,0x04,0x9c,0x85,0x79,0x79,0x85,0xfb,0xfc,0x98,0x00,0x01,0x00,0x1e,0x00,0x00,0x01,0xd2,0x05,0xec,0x00,0x0b,0x00,0x2c,0x40,0x15,0x09,0x09,0x07,0x0a,0x84,0x04,0x02,0x00,0x00,0x0c,0x0d,0x0a,0x02,0x96,0x07,0x03,0x03,0x05,0x00,0x00,0x15,0x00,0x3f,0x3f,0x39,0x2f,0x33,0xed,0x32,0x11,0x12,0x01,0x39,0x2f, +0xc6,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xa6,0x88,0x88,0xa4,0x88,0x88,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfb,0x4e,0x00,0x03,0x00,0x00,0xff,0xe8,0x06,0x08,0x05,0xb2,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3f,0x40,0x20,0x0a,0x0a,0x08,0x0b,0x7d,0x12,0x1f,0x1f,0x21,0x18, +0x19,0x7d,0x02,0x00,0x11,0x19,0x0b,0x11,0x91,0x18,0x08,0x02,0x02,0x05,0x1c,0x91,0x0e,0x13,0x15,0x91,0x05,0x04,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x12,0x39,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x35,0x33,0x12,0x00,0x21,0x20,0x00,0x13,0x33,0x15,0x23,0x02, +0x00,0x21,0x20,0x00,0x03,0x25,0x26,0x02,0x23,0x22,0x00,0x07,0x15,0x16,0x00,0x33,0x32,0x00,0x37,0x61,0x14,0x01,0x7a,0x01,0x27,0x01,0x1e,0x01,0x5d,0x17,0x60,0x62,0x16,0xfe,0x91,0xfe,0xdd,0xfe,0xdc,0xfe,0x9a,0x14,0x04,0x97,0x15,0xfe,0xda,0xd3,0xfe,0xee,0x14,0x14,0x01,0x0f,0xca,0xdf,0x01,0x05,0x15,0x02,0x7e,0x9b,0x01,0x2c, +0x01,0x6d,0xfe,0x9e,0xfe,0xc9,0x9b,0xfe,0xd0,0xfe,0x9a,0x01,0x69,0x01,0x2d,0x9b,0xf9,0x01,0x08,0xfe,0xea,0xeb,0x9b,0xe6,0xfe,0xe7,0x01,0x09,0xf6,0x00,0x00,0x03,0x00,0x00,0xff,0xe8,0x04,0xb0,0x04,0x18,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x3b,0x40,0x1e,0x08,0x08,0x07,0x0a,0x83,0x19,0x18,0x1f,0x12,0x83,0x01,0x00,0x10,0x12, +0x0a,0x11,0x95,0x1f,0x07,0x00,0x00,0x04,0x15,0x95,0x0d,0x16,0x1c,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0x33,0xed,0x32,0x32,0x01,0x2f,0xcd,0x33,0xe1,0x32,0x2f,0x33,0xf1,0x32,0xc1,0x2f,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x00,0x23,0x22,0x00,0x27,0x23,0x21,0x16,0x16, +0x33,0x32,0x36,0x37,0x27,0x26,0x26,0x23,0x22,0x06,0x07,0x66,0x1e,0x01,0x10,0xd6,0xce,0xfd,0x16,0x65,0x62,0x10,0xfe,0xf2,0xde,0xdc,0xfe,0xf9,0x0e,0x61,0x01,0x0a,0x0c,0xb1,0x97,0x96,0xa5,0x0d,0x04,0x15,0xa3,0x8c,0x87,0xb0,0x19,0x02,0x5b,0xd0,0xed,0xec,0xd1,0x8b,0xe1,0xfe,0xf9,0x01,0x04,0xe4,0xa4,0xba,0xb2,0xac,0x8c,0x95, +0x9d,0xa0,0x92,0x00,0x00,0x03,0x00,0x5e,0xff,0xe8,0x06,0xcb,0x05,0xb2,0x00,0x15,0x00,0x21,0x00,0x2c,0x00,0x44,0x40,0x25,0x00,0x2b,0x22,0x03,0x11,0x0b,0x7d,0x1b,0x06,0x7f,0x25,0x1b,0x25,0x1b,0x25,0x2e,0x21,0x7d,0x11,0x1e,0x91,0x14,0x04,0x22,0x92,0x09,0x09,0x03,0x18,0x91,0x0e,0x13,0x00,0x28,0x92,0x03,0x04,0x00,0x3f,0xed, +0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x17,0x39,0x31,0x30,0x01,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x15,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x25,0x36,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x04,0xda,0x26,0x7c,0x55,0x73,0x87,0xa0,0x83,0x02,0xfe,0x8e,0xfe,0xc6,0xfe,0xd0,0xfe,0x90,0x01,0x78,0x01,0x40,0x01,0x14,0xfc,0xe4,0x01,0x11,0xdf,0xef,0x01,0x0d,0xfe,0xfd,0xed,0xe8,0xfe,0xec,0x04,0x89,0x47,0x59,0x39,0x37,0x31,0x4e,0x19,0x4c,0x05,0x04,0x52,0x5c,0x9d,0x84,0x95,0xcd,0x11, +0x1f,0x20,0xfe,0xa8,0xfe,0x61,0x01,0x97,0x01,0x3d,0x01,0x59,0x01,0x9d,0xfc,0x1a,0xfe,0xb3,0x01,0x40,0x01,0x09,0x01,0x17,0x01,0x3b,0xfe,0xac,0xfb,0xd3,0x13,0x7e,0x57,0x4f,0x56,0x4a,0x42,0x71,0x00,0x03,0x00,0x60,0xff,0xe8,0x05,0x4b,0x04,0x18,0x00,0x13,0x00,0x1f,0x00,0x2a,0x00,0x45,0xb7,0x20,0x29,0x04,0x03,0x0d,0x84,0x19, +0x0a,0xb8,0x01,0x03,0x40,0x1b,0x23,0x19,0x23,0x19,0x23,0x2c,0x1f,0x83,0x13,0x20,0x96,0x0d,0x0d,0x07,0x16,0x95,0x10,0x16,0x04,0x26,0x96,0x07,0x0f,0x1c,0x95,0x02,0x10,0x00,0x3f,0xed,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x17,0x39,0x31,0x30,0x12,0x00,0x33, +0x32,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x06,0x00,0x23,0x22,0x00,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x25,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x60,0x01,0x1b,0xef,0xc4,0x7a,0x22,0x61,0x3c,0x6a,0x7a,0x8e,0x6f,0x16,0xfe,0xef,0xd5,0xe3,0xfe,0xf1,0xa8,0xba,0x9c,0xa1, +0xa9,0xa8,0xa2,0x9f,0xb7,0x03,0x45,0x39,0x40,0x34,0x31,0x23,0x33,0x14,0x4a,0x02,0xef,0x01,0x29,0x68,0x2f,0x39,0x8d,0x79,0x79,0xb8,0x15,0xe0,0xfe,0xfc,0x01,0x24,0xe8,0xa9,0xd9,0xcf,0xbd,0xbf,0xd1,0xe1,0xb3,0x4c,0x19,0x67,0x45,0x40,0x55,0x29,0x1f,0x70,0x00,0x03,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x00,0x19,0x00,0x25, +0x00,0x31,0x00,0x3f,0x40,0x22,0x00,0x0d,0x25,0x7d,0x2b,0x2b,0x07,0x13,0x7d,0x1f,0x1f,0x33,0x31,0x7d,0x07,0x1c,0x91,0x16,0x13,0x22,0x91,0x10,0x04,0x0d,0x00,0x04,0x2e,0x91,0x0a,0x04,0x28,0x91,0x04,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39, +0x39,0x31,0x30,0x01,0x0e,0x02,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x32,0x04,0x17,0x36,0x24,0x33,0x20,0x00,0x11,0x10,0x00,0x21,0x22,0x26,0x26,0x36,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x05,0x50,0x1e,0xb0,0xef,0x95,0xfe,0xcf,0xfe,0x91,0x01,0x77, +0x01,0x41,0xd1,0x01,0x2c,0x43,0x42,0x01,0x39,0xe2,0x01,0x28,0x01,0x6c,0xfe,0x8c,0xfe,0xc8,0x93,0xec,0xae,0x3d,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfb,0x63,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x01,0x4a,0x54,0xb2,0x5c,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xc5,0x9e,0x9a, +0xc9,0xfe,0x70,0xfe,0xbd,0xfe,0xa1,0xfe,0x68,0x5d,0xb1,0xcb,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0xfe,0xf6,0xfe,0xbe,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x3f,0x40,0x22,0x00,0x0c, +0x23,0x83,0x29,0x29,0x06,0x12,0x83,0x1d,0x1d,0x31,0x2f,0x83,0x06,0x1a,0x95,0x15,0x16,0x20,0x95,0x0f,0x10,0x0c,0x00,0x03,0x2c,0x95,0x09,0x10,0x26,0x95,0x03,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x39,0x39,0x31,0x30,0x25,0x06,0x06,0x23,0x22, +0x00,0x35,0x10,0x00,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x00,0x15,0x14,0x00,0x23,0x22,0x26,0x36,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x04,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0xf9,0x2d,0xdb,0x9f,0xe4,0xfe,0xf2,0x01,0x19,0xf1,0x92,0xd7,0x2e,0x27,0xe6,0xa4,0xe6,0x01,0x00,0xfe, +0xeb,0xe9,0x98,0xde,0x2c,0xbb,0x9b,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xfc,0xb8,0xba,0x9c,0xa1,0xa9,0xa8,0xa2,0xa0,0xb6,0xc9,0x60,0x81,0x01,0x1f,0xed,0x01,0x01,0x01,0x23,0x75,0x6b,0x5b,0x85,0xfe,0xe5,0xf9,0xf5,0xfe,0xd9,0x81,0xd9,0xd0,0xcf,0xbd,0xbf,0xd1,0xda,0xbb,0xb5,0xd2,0xcf,0xbd,0xbf,0xd1,0xda,0xba,0x00,0x02,0x00,0x19, +0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x12,0x00,0x1a,0x00,0x47,0x40,0x24,0x0f,0x7d,0x18,0x18,0x06,0x1c,0x14,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x00,0x91,0x14,0x04,0x08,0x92,0x09,0x01,0x09,0x14,0x09,0x14,0x09,0x06,0x13,0x91,0x0b,0x03,0x06,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32, +0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x21,0x15,0x21,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x04,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0x01,0x0d,0xfe,0xf3,0xa8,0xa3,0xa3,0x01,0x8a,0xe1,0x01,0x02,0xfe,0xe8,0xf0,0xbd, +0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0x9d,0x85,0xfc,0xfc,0x85,0x04,0x19,0xe2,0xca,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x1e,0xfe,0x29,0x04,0x54,0x04,0x18,0x00,0x19,0x00,0x26,0x00,0x49,0x40,0x27,0x0d,0x83,0x20,0x20,0x19,0x28,0x16,0x16,0x14,0x06,0x18,0x84,0x03,0x01,0x19,0x00,0x16,0x96, +0x03,0x15,0x15,0x10,0x19,0x1b,0x12,0x1d,0x95,0x2f,0x10,0x01,0x10,0x16,0x06,0x23,0x95,0x0a,0x10,0x04,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xc6,0x33,0xf9,0x32,0x32,0xc2,0x2f,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33, +0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x88,0x88,0xa4,0x04,0x3f,0xaf,0x74,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x4b,0xfe,0xb5,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xfe,0xdd,0x86,0x04,0x9d,0xb4,0x68, +0x64,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xcf,0x86,0xb4,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x05,0x31,0x05,0x9a,0x00,0x18,0x00,0x20,0x00,0x39,0x40,0x1d,0x15,0x7d,0x1e,0x1e,0x02,0x22,0x07,0x7e,0x0c,0x1a,0x01,0x7e,0x10,0x02,0x03,0x00,0x91,0x10,0x1a,0x09,0x1a,0x09, +0x02,0x19,0x91,0x11,0x03,0x02,0x12,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35, +0x10,0x21,0x02,0x6c,0xa8,0x5c,0x51,0x59,0x14,0x9e,0x16,0xca,0x9a,0x42,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0x5c,0x4e,0x36,0x34,0x36,0x44,0x89,0xa9,0x02,0xe4,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02,0x00,0x05,0xfe,0x29,0x05,0x46, +0x04,0x18,0x00,0x1d,0x00,0x28,0x00,0x39,0x40,0x1e,0x09,0x83,0x22,0x14,0x83,0x1a,0x1e,0x02,0x0e,0x84,0x00,0x0f,0x17,0x17,0x0d,0x0f,0x1b,0x00,0x1e,0x95,0x10,0x0d,0x15,0x03,0x25,0x95,0x06,0x10,0x01,0x0f,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x33,0xed,0x32,0x3f,0x12,0x39,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x32,0xd4,0xed,0x2f,0xe9,0x31, +0x30,0x25,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x3b,0x02,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x98,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xa4,0x39,0x64,0x6c,0x1c,0x94,0x07,0x0b,0xb1,0x99, +0xed,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0x8a,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x01,0xd7,0x52,0x52,0x32,0x3a,0x0e,0x4b,0x1d,0x89,0x9b,0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x06,0x27,0x05,0xb2,0x00,0x23,0x00,0x2b,0x00,0x41,0x40,0x22,0x20,0x7d,0x29,0x29,0x02,0x2d, +0x15,0x7e,0x0e,0x08,0x08,0x2c,0x25,0x01,0x7e,0x1b,0x02,0x03,0x00,0x91,0x1b,0x25,0x25,0x01,0x24,0x91,0x1c,0x03,0x0b,0x91,0x12,0x04,0x01,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x22,0x26, +0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x16,0x16,0x33,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x03,0x62,0xa8,0x27,0xcd,0xb4,0x41,0x4e,0x20,0x3a,0x1f,0x28,0x42,0x28,0x7f,0x9f,0x27,0x5b,0x55,0x29,0x01,0x8a,0xe5,0xfe,0xfe,0xe8,0xf0, +0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x02,0x1e,0xb0,0xca,0xd3,0x4e,0x5b,0x0c,0x0a,0x9e,0x0b,0x0b,0x9c,0x7c,0xc4,0x83,0x6b,0x31,0x02,0xe3,0xe3,0xc9,0xcb,0xfe,0xfb,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x00,0x02,0x00,0x05,0xfe,0x29,0x06,0x85,0x04,0x96,0x00,0x28,0x00,0x33,0x00,0x44,0x40,0x24,0x23,0x83, +0x2d,0x2d,0x00,0x35,0x15,0x84,0x0c,0x05,0x05,0x34,0x29,0x1d,0x28,0x84,0x1a,0x00,0x1d,0x30,0x95,0x20,0x10,0x09,0x95,0x11,0x1b,0x0f,0x29,0x1a,0x95,0x27,0x01,0x15,0x00,0x1b,0x00,0x3f,0x3f,0x33,0xed,0x32,0x3f,0xd4,0xed,0x3f,0xed,0x32,0x01,0x2f,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0xc6,0xe9,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30, +0x01,0x11,0x23,0x22,0x26,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x37,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x16,0x16,0x33,0x33,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x00,0x21,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x02,0xd7,0x49,0xcd,0xb4,0x3e,0x43,0x23,0x41,0x23,0x28,0x1e, +0x31,0x20,0x83,0x92,0x29,0x5d,0x55,0x4b,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfe,0xdd,0xfe,0xf1,0xd8,0xe4,0xc6,0xb8,0x9e,0x87,0x8d,0xb0,0xfe,0x29,0x01,0xd7,0xb0,0xca,0x01,0xf3,0x4f,0x50,0x10,0x10,0x94,0x09,0x07,0x06,0x95,0x83,0xfe,0x2b,0x81,0x6c,0x32,0x03,0x76,0xb4,0xcc,0xfe,0xee,0xe8,0xff,0x00,0xfe,0xe2,0xfe,0x29,0x02,0x61, +0xd1,0xc6,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x5e,0xfe,0xd0,0x06,0x25,0x05,0xb2,0x00,0x18,0x00,0x24,0x00,0x4f,0x40,0x2a,0x02,0x7d,0x1e,0x0b,0x0a,0x07,0x10,0x05,0x1e,0x0e,0x1e,0x07,0x07,0x1e,0x0e,0x03,0x26,0x24,0x7d,0x15,0x21,0x91,0x18,0x04,0x0c,0x0f,0x09,0x06,0x04,0x0b,0x0b,0x0d,0x08,0x07,0x1b,0x91,0x0e,0x0d,0x10,0x05, +0x12,0x13,0x00,0x3f,0x33,0x33,0xc6,0x32,0xfd,0xc0,0x32,0x11,0x39,0x2f,0x17,0x39,0x3f,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x32,0x10,0xe9,0x31,0x30,0x00,0x00,0x11,0x14,0x02,0x07,0x17,0x25,0x15,0x07,0x17,0x21,0x27,0x05,0x35,0x37,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x00,0x00, +0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x3e,0x01,0x6c,0xa1,0x77,0x44,0x01,0x05,0x8d,0xd7,0xfe,0xcf,0x46,0xff,0x00,0x8a,0x52,0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0xfd,0xf8,0x01,0x12,0xde,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0x05,0xb2,0xfe,0x70,0xfe,0xbd,0xeb,0xfe,0xbd,0x51,0x31,0xa6, +0xa3,0x59,0x9a,0x34,0xa3,0xa3,0x58,0x3e,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfc,0x11,0xfe,0xbc,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x00,0x02,0x00,0x60,0xfe,0x29,0x04,0x98,0x04,0x18,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2b,0x14,0x17,0x84,0x00,0x25,0x10,0x04,0x00,0x02,0x00,0x16,0x16, +0x00,0x02,0x03,0x27,0x1f,0x83,0x0b,0x12,0x0f,0x10,0x1c,0x95,0x0e,0x10,0x06,0x22,0x95,0x08,0x17,0x02,0x96,0x14,0x03,0x03,0x2f,0x08,0x01,0x08,0x16,0x00,0x1b,0x00,0x3f,0x3f,0x5d,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x33,0x33,0x10,0xe9,0x32,0x31, +0x30,0x01,0x35,0x21,0x35,0x21,0x11,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x15,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x03,0x6c,0xfe,0xb5,0x01,0x4b,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x88,0x88,0xa4,0xa7,0x7d,0x94,0xac,0xa4, +0x85,0x90,0xab,0xfe,0x29,0xb4,0x86,0x01,0x4d,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfb,0x63,0x86,0xb4,0x04,0x39,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x02,0x00,0x5e,0xfe,0x3c,0x07,0xa9,0x05,0xb2,0x00,0x23,0x00,0x2f,0x00,0x5a,0x40,0x31,0x00,0x01,0x0e,0x7d,0x29,0x1d,0x7e,0x16,0x03,0x11,0x29,0x01,0x29,0x19, +0x22,0x16,0x16,0x22,0x19,0x29,0x01,0x05,0x31,0x2f,0x7d,0x08,0x19,0x92,0x11,0x12,0x03,0x03,0x1a,0x1a,0x05,0x2c,0x91,0x0b,0x04,0x21,0x02,0x05,0x23,0x23,0x01,0x26,0x91,0x05,0x13,0x00,0x3f,0xed,0xc6,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0xed,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x12, +0x39,0x39,0x10,0xe9,0x10,0xe9,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x27,0x06,0x23,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x14,0x02,0x07,0x17,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x17,0x21,0x00,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x11,0x04,0x43,0xaf,0x01,0x00,0xae, +0x6b,0x7d,0xfe,0xcf,0xfe,0x91,0x01,0x77,0x01,0x41,0x01,0x28,0x01,0x6c,0x8f,0x89,0x6e,0x01,0x38,0x64,0x6c,0x6d,0x85,0x01,0xc6,0xcc,0x59,0x8a,0xfe,0xaa,0xb5,0xfe,0xe7,0xfc,0x02,0x01,0x11,0xdf,0xec,0x01,0x10,0xfe,0xf8,0xe8,0xe2,0xfe,0xe6,0xfe,0x3c,0x01,0x4b,0x82,0x21,0x01,0x91,0x01,0x43,0x01,0x5b,0x01,0x9b,0xfe,0x70,0xfe, +0xbd,0xce,0xfe,0xac,0x5d,0x4f,0x01,0x93,0x81,0xb7,0x32,0x4c,0x4c,0x91,0x90,0x8e,0x3d,0xb4,0xb0,0xfe,0x49,0x82,0x02,0x83,0xfe,0xbd,0x01,0x34,0x01,0x15,0x01,0x1c,0x01,0x36,0xfe,0xb9,0xfe,0xf8,0x00,0x02,0x00,0x60,0xfe,0x29,0x06,0x12,0x04,0x18,0x00,0x25,0x00,0x32,0x00,0x56,0x40,0x2e,0x00,0x01,0x32,0x23,0x84,0x24,0x10,0x02, +0x24,0x1d,0xef,0x16,0x01,0x09,0x24,0x19,0x16,0x16,0x19,0x24,0x03,0x34,0x2c,0x83,0x09,0x25,0x01,0x01,0x06,0x24,0x1b,0x19,0x95,0x1a,0x10,0x0e,0x29,0x95,0x0c,0x10,0x12,0x03,0x2f,0x95,0x06,0x16,0x00,0x3f,0xed,0x32,0x32,0x3f,0xed,0x32,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39, +0x10,0xed,0x11,0x33,0x33,0x10,0xe9,0x33,0x11,0x33,0x31,0x30,0x01,0x23,0x01,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x37,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x01,0x11,0x23,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x02, +0xcd,0xa5,0x01,0x44,0x04,0x6b,0xf3,0xc2,0xe8,0xff,0xd9,0xd2,0x5e,0x04,0xa4,0x9b,0x64,0x6c,0x71,0x81,0x01,0xc4,0xc4,0x52,0x43,0x4e,0xfe,0xe1,0xa4,0xa7,0x7d,0x94,0xac,0xa4,0x85,0x90,0xab,0xfe,0x4e,0x01,0x9f,0xc3,0xc8,0x01,0x13,0xed,0xfe,0x01,0x32,0xa6,0x8e,0xfc,0xbe,0xc7,0x81,0xb7,0x32,0x4f,0x50,0x8a,0x90,0x8e,0x40,0xa4, +0x58,0x65,0xfe,0x92,0xfe,0x3e,0xf0,0x03,0x49,0x7f,0xad,0xdc,0xc6,0xb0,0xca,0xc6,0x95,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x04,0x13,0x05,0xb3,0x00,0x16,0x00,0x3d,0x40,0x1f,0x14,0x01,0x11,0x7d,0x04,0x16,0x15,0x01,0x04,0x15,0x15,0x04,0x01,0x03,0x18,0x0a,0x7e,0x0b,0x14,0x01,0x0a,0x01,0x0a,0x01,0x0e,0x16,0x12,0x07,0x91,0x0e, +0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xcd,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x11,0x33,0x31,0x30,0x01,0x35,0x24,0x24,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x00,0x07,0x01,0x23,0x01,0x3c,0x01,0x0c,0x01,0x0a,0xa1,0x84,0x8f,0xb1,0x24,0xab, +0x24,0x01,0x1a,0xd4,0xd0,0x01,0x02,0xfe,0xeb,0xca,0x01,0xf0,0xd3,0x02,0x4c,0x3e,0x27,0xc6,0x94,0x7b,0x95,0x9b,0x8f,0xd2,0xf0,0xe7,0xc1,0xa8,0xfe,0xf9,0x2c,0xfd,0xd0,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x03,0x0b,0x04,0x18,0x00,0x16,0x00,0x3e,0x40,0x20,0x0b,0x0a,0x06,0x83,0x10,0x09,0x0c,0x0a,0x10,0x0c,0x0c,0x10,0x0a,0x03, +0x18,0x16,0x84,0x00,0x0c,0x09,0x96,0x0d,0x00,0x0d,0x00,0x03,0x0b,0x15,0x13,0x95,0x03,0x10,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xe9,0x11,0x33,0x31,0x30,0x13,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x01,0x23,0x01,0x35,0x36,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x0f,0x29,0xbb,0xa1,0x94,0xbe,0xab,0x93,0x01,0x63,0xd6,0xfe,0xaa,0x9d,0xc2,0x5e,0x4e,0x58,0x66,0x1f,0x02,0xcf,0xa1,0xa8,0xae,0x89,0x71,0xae,0x32,0xfe,0x70,0x01,0x9e,0x40,0x16,0x8c,0x61,0x4c,0x61,0x56,0x69,0x00,0x01,0x00,0x3d,0x00,0x00,0x04,0x53,0x05,0xb0,0x00,0x1e,0x00,0x4c,0x40,0x26,0x10,0x7e, +0x04,0x1a,0x1a,0x18,0x1c,0x7e,0x1d,0x15,0x1d,0x04,0x1d,0x04,0x1d,0x20,0x14,0x09,0x00,0x1b,0x1e,0x91,0x15,0x18,0x01,0x15,0x16,0x15,0x16,0x15,0x0d,0x1d,0x12,0x09,0x07,0x92,0x0d,0x04,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10, +0xf9,0x32,0xc2,0x2f,0x10,0xe9,0x31,0x30,0x13,0x35,0x12,0x12,0x35,0x34,0x26,0x23,0x22,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x3d,0xfe,0xa8,0x4e,0x3e,0x76,0x5f,0x3d,0x77,0x3d,0x80,0x95,0x5a,0x91,0xaf,0x01,0xf1,0xa8,0xcc,0xcc,0xa8,0x01,0x47,0x96,0x01, +0x05,0x01,0x29,0x7c,0x43,0x55,0x76,0xa4,0x39,0x2a,0x9e,0x8b,0x64,0xc5,0xc3,0xbe,0x01,0xfb,0xfe,0x05,0x96,0xfe,0xb9,0x01,0x47,0x00,0x00,0x01,0x00,0x0f,0xfe,0xe7,0x03,0xe0,0x04,0x18,0x00,0x1e,0x00,0x48,0x40,0x24,0x1b,0x84,0x0e,0x04,0x04,0x03,0x07,0x84,0x08,0x00,0x08,0x0e,0x08,0x0e,0x08,0x20,0x1e,0x14,0x0a,0x14,0x11,0x95, +0x18,0x01,0x01,0x09,0x18,0x10,0x0b,0x03,0x00,0x96,0x08,0x06,0x09,0x15,0x00,0x3f,0x33,0xcd,0xed,0x32,0x32,0x3f,0x12,0x39,0x2f,0x10,0xed,0x32,0x01,0x2f,0xc4,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xf9,0x32,0xc0,0x2f,0x10,0xe9,0x31,0x30,0x25,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x37,0x36,0x12,0x35,0x34, +0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x02,0x07,0x02,0x9d,0xa4,0x9f,0x9f,0xa4,0xfd,0x72,0x02,0xc9,0xca,0x46,0x42,0x36,0x6b,0x30,0x39,0x79,0x39,0x7d,0x91,0xb1,0xd6,0x84,0x01,0xe3,0xfe,0x1d,0x84,0xfe,0xe7,0x01,0x19,0x77,0xc4,0x01,0x44,0x7f,0x42,0x4e,0x36,0x36,0x93,0x34,0x2f,0x98,0x7b,0x7a,0xfe, +0xd1,0xd8,0x00,0x01,0x00,0x12,0x00,0x00,0x04,0xe6,0x05,0x9a,0x00,0x14,0x00,0x3a,0x40,0x1d,0x14,0x00,0x05,0x06,0x00,0x06,0x00,0x06,0x0f,0x10,0x10,0x16,0x03,0x02,0x04,0x07,0x01,0x13,0x0b,0x05,0x14,0x14,0x02,0x12,0x12,0x0f,0x05,0x02,0x03,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0x32,0x11,0x33,0x2f,0x33, +0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x31,0x30,0x37,0x13,0x01,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0xb0,0xb1,0xfe,0xb1,0xbb,0xed,0xf3,0x93,0xfe,0xc2,0x58,0x0a,0x0e,0x05,0x04,0x07,0x1a,0x01,0x95,0xb5,0xfd,0xed,0xb9,0x6f,0x68,0x0f,0x01,0xee,0x03,0x9d,0xfd,0x5a,0x02, +0xa6,0xfc,0x8a,0xfb,0x1c,0x3f,0x24,0x3c,0x45,0x04,0x6f,0xfa,0x66,0x01,0x31,0xfe,0xde,0x00,0x00,0x01,0xff,0xe8,0xff,0x37,0x03,0xcb,0x04,0xd1,0x00,0x14,0x00,0x42,0x40,0x24,0x10,0x0f,0x06,0x03,0x01,0x13,0x04,0x07,0x12,0x05,0x05,0x02,0x0f,0x05,0x02,0x02,0x05,0x0f,0x03,0x16,0x14,0x00,0x04,0x07,0x01,0x0a,0x04,0x03,0x14,0x12, +0x15,0x06,0x0f,0x0f,0x03,0x0f,0x00,0x3f,0x3f,0xce,0x3f,0xce,0x12,0x17,0x39,0x01,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x17,0x39,0x33,0x32,0x11,0x33,0x30,0x31,0x07,0x01,0x03,0x33,0x13,0x13,0x33,0x01,0x17,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x23,0x03,0x03,0x18,0x01,0x09,0xe3,0xb4,0x88,0xff,0x87,0xfe, +0xb7,0x3f,0x1d,0x07,0x04,0x05,0x10,0x0b,0x01,0x10,0xad,0xfe,0x68,0xa1,0x62,0xc3,0xc9,0x02,0x71,0x02,0x58,0xfe,0x79,0x02,0x58,0xfc,0xfb,0xb4,0x53,0x3c,0x26,0x46,0x1f,0x02,0xec,0xfc,0x00,0x01,0x01,0xfe,0x36,0x00,0x00,0x01,0x00,0x1a,0xfe,0x1e,0x07,0x60,0x05,0x9a,0x00,0x2c,0x00,0x4e,0x40,0x27,0x18,0x17,0x1d,0x23,0x22,0x13, +0x0f,0x01,0x27,0x1d,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x1d,0x27,0x13,0x03,0x18,0x2c,0x22,0x19,0x03,0x0f,0x18,0x12,0x0b,0x91,0x05,0x1c,0x00,0x3f,0xed,0x3f,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x33,0x11,0x33, +0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x07,0x60,0xfe,0x74,0x3c,0x75,0x9c,0x63,0x1d,0x31,0x1d,0x30,0x31,0x3b, +0x67,0x1f,0x3c,0xfe,0xc8,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0xc3,0xfe,0x5c,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x37,0x09,0x09,0x03,0x03,0x04,0x0a,0x0a,0x01,0x24,0x05,0x9a,0xfa,0x88,0xd5,0xca,0x65,0x05,0x08,0x9d,0x12,0x56,0x52,0xa2,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x05,0x9a, +0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xb0,0x20,0x4a,0x20,0x21,0x43,0x26,0x04,0x50,0x00,0x00,0x01,0x00,0x18,0xfe,0x1e,0x05,0xb0,0x04,0x00,0x00,0x2c,0x00,0x4b,0x40,0x25,0x18,0x17,0x1f,0x23,0x22,0x13,0x0f,0x27,0x1f,0x19,0x13,0x27,0x00,0x09,0x09,0x19,0x2c,0x00,0x00,0x2e,0x1a,0x19,0x27,0x1e,0x13,0x03,0x18,0x2c, +0x22,0x19,0x0f,0x0b,0x95,0x05,0x0f,0x18,0x15,0x00,0x3f,0x33,0xd4,0xed,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x12,0x39,0x11,0x33,0x11,0x33,0x33,0x11,0x33,0x33,0x31,0x30,0x01,0x01,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x37,0x37,0x03,0x26,0x26,0x27, +0x23,0x06,0x07,0x03,0x23,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x33,0x34,0x36,0x37,0x13,0x05,0xb0,0xfe,0xb4,0x39,0x59,0x88,0x6a,0x1c,0x34,0x1b,0x34,0x2d,0x51,0x66,0x23,0x2d,0xdd,0x06,0x08,0x02,0x04,0x03,0x12,0xe5,0xa4,0xfe,0xca,0xac,0xd4,0x05,0x07,0x02,0x08,0x03,0x0f,0xec,0x96,0xd5, +0x05,0x06,0x02,0x06,0x06,0x08,0xd6,0x04,0x00,0xfb,0xb6,0xba,0x90,0x4e,0x05,0x08,0x93,0x12,0x5b,0x6f,0x8a,0x02,0xdd,0x15,0x30,0x1a,0x24,0x39,0xfd,0x21,0x04,0x00,0xfc,0xfe,0x11,0x2e,0x1d,0x2d,0x31,0x03,0x00,0xfc,0xfc,0x13,0x2d,0x1c,0x13,0x2f,0x1a,0x03,0x04,0x00,0x00,0x01,0x00,0x55,0xfe,0x21,0x04,0x93,0x05,0xc2,0x00,0x2c, +0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x7d,0x1c,0x1c,0x2e,0x16,0x06,0x7d,0x26,0x0b,0x22,0x91,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12,0x03,0x91,0x29,0x16,0x19,0x91,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed, +0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x04,0x15,0x14,0x04,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32, +0x16,0x17,0x02,0x7e,0x1f,0x63,0x27,0x59,0x78,0x8e,0x84,0x01,0xf9,0xfe,0xad,0xd3,0x01,0x04,0xfe,0xc0,0xfe,0xfb,0x57,0xae,0x57,0x59,0xb1,0x58,0xb9,0xd8,0xc2,0xf0,0x68,0x01,0x4c,0xfe,0xd8,0xec,0xd9,0x9b,0x32,0x5b,0x29,0x05,0x00,0x10,0x1d,0x74,0x5b,0x74,0x7d,0x56,0xfe,0x65,0xe0,0xbe,0xcc,0xf1,0x20,0x2a,0xa2,0x32,0x22,0x9c, +0x8e,0x91,0x8e,0x37,0x01,0x9c,0xc9,0xc0,0x95,0xcf,0x0b,0x0c,0x00,0x01,0x00,0x3e,0xfe,0x21,0x04,0x0c,0x04,0xdd,0x00,0x2c,0x00,0x53,0x40,0x19,0x0c,0x20,0x20,0x26,0x00,0x00,0x26,0x22,0x0b,0x0b,0x0f,0x83,0x1c,0x1c,0x2e,0x16,0x06,0x83,0x26,0x0b,0x22,0x95,0x09,0x21,0x1f,0xb8,0x01,0x05,0x40,0x0e,0x0c,0x09,0x0c,0x09,0x0c,0x12, +0x03,0x96,0x29,0x16,0x19,0x95,0x12,0x1c,0x00,0x3f,0xed,0x32,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x10,0xed,0x32,0x01,0x2f,0xed,0xc4,0x12,0x39,0x2f,0xf9,0xc0,0x2f,0x32,0x11,0x39,0x2f,0x12,0x39,0x11,0x33,0x31,0x30,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x16,0x16,0x15,0x14,0x04,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x01,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x02,0x00,0x26,0x4b,0x27,0x39,0x4a,0x5d,0x5e,0x01,0xec,0xfe,0xbe,0xd4,0xee,0xfe,0xc6,0xf1,0x53,0xa6,0x53,0x55,0xa8,0x54,0xab,0xd3,0xe0,0xcf,0x4f,0x01,0x42,0xfe,0xf9,0x9e,0xc5,0xa8,0x77,0x29, +0x51,0x29,0x04,0x33,0x14,0x10,0x46,0x39,0x4a,0x4e,0x53,0xfe,0x7e,0x11,0xd6,0xb6,0xc6,0xe7,0x1f,0x28,0xa2,0x34,0x2a,0x9c,0x8b,0x91,0x96,0x35,0x01,0x85,0xa0,0x84,0x70,0x95,0x0b,0x11,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x56,0x40,0x16,0x11,0x7d,0x1a,0x16,0x0d,0x01,0x0b,0x0b,0x09,0x01, +0x7e,0x06,0x04,0x02,0x00,0x91,0x16,0x15,0x91,0x0d,0x0c,0x04,0xb8,0x01,0x05,0xb6,0x05,0x09,0x05,0x20,0x16,0x01,0x05,0xb8,0xff,0xc0,0x40,0x0c,0x09,0x0e,0x48,0x16,0x05,0x16,0x05,0x02,0x07,0x03,0x02,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x11,0x33,0x10,0xfd,0x32,0xdc,0xed,0x10,0xed,0x01,0x2f,0xc6,0x33,0xf9, +0x32,0xc0,0x2f,0x11,0x33,0x33,0x2f,0xe9,0x31,0x30,0x01,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0xaa,0xaa,0xa8,0xd4,0xd4,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0xfe,0xc2,0x04, +0xee,0x67,0x45,0x45,0x67,0x36,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4f,0x40,0x2c,0x10,0x83,0x1f,0x08,0x1f,0x08,0x1f,0x27,0x0a,0x06,0x17,0x84,0x03,0x01,0x18,0x17,0x1b,0x15,0x1c,0x95,0x13,0x16,0x0a,0x22,0x95,0x0d, +0x09,0x01,0x96,0x06,0x02,0x02,0x04,0x00,0x0d,0x10,0x0d,0x20,0x0d,0x03,0x0d,0x10,0x04,0x00,0x00,0x3f,0x3f,0x5d,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x15,0x21,0x11,0x33,0x36, +0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x01,0x54,0xfe,0xac,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0x04,0xb2,0x86,0xb4,0xb4,0x86,0xfe,0x9a,0xcc,0xfe,0xee, +0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfd,0x95,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0x29,0x05,0x9a,0x00,0x14,0x00,0x1c,0x00,0x44,0x40,0x23,0x11,0x7d,0x1a,0x1a,0x06,0x1e,0x16,0x05,0x03,0x03,0x01,0x05,0x7e,0x0a,0x08,0x06,0x15,0x91,0x0d,0x0d,0x06,0x0b,0x03,0x16,0x91,0x00,0x01,0x0f, +0x09,0x01,0x09,0x04,0x08,0x06,0x12,0x00,0x3f,0xde,0x32,0xdd,0x5d,0x32,0xdc,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc6,0x33,0xf9,0x32,0xc2,0x2f,0x11,0x33,0x11,0x12,0x39,0x2f,0xe9,0x31,0x30,0x01,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x00,0x23,0x03,0x11,0x33,0x32,0x36, +0x35,0x10,0x21,0x01,0x64,0xd4,0xd4,0xa8,0xaa,0xaa,0xa8,0xe2,0xe8,0xfb,0xfe,0xe5,0xf0,0xba,0xb0,0xae,0xb7,0xfe,0xb0,0x01,0x3e,0x55,0x67,0x82,0x82,0x67,0x04,0xb1,0xe2,0xe0,0xcc,0xcb,0xfe,0xfd,0x02,0xe3,0xfd,0xb4,0x9b,0x92,0x01,0x1f,0x00,0x02,0x00,0x27,0xfe,0x29,0x04,0x54,0x05,0xec,0x00,0x18,0x00,0x25,0x00,0x4b,0x40,0x28, +0x0c,0x1f,0x1f,0x18,0x27,0x19,0x17,0x15,0x15,0x13,0x06,0x17,0x03,0x01,0x18,0x17,0x1b,0x11,0x1c,0x95,0x0f,0x00,0x16,0x96,0x03,0x13,0x1f,0x0f,0x2f,0x0f,0x02,0x0f,0x16,0x06,0x22,0x95,0x09,0x10,0x04,0x00,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x5d,0xde,0x32,0xed,0x32,0x10,0xed,0x32,0x3f,0x01,0x2f,0xc6,0x33,0xd1,0x32,0x32,0xc2,0x2f, +0x11,0x33,0x11,0x12,0x39,0x2f,0xc1,0x31,0x30,0x17,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x12,0x15,0x10,0x02,0x23,0x22,0x27,0x23,0x11,0x21,0x15,0x21,0x15,0x23,0x13,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xa6,0x7f,0x7f,0xa4,0x04,0x79,0xe9,0xc4,0xe0,0xfa,0xd9,0xc7,0x6c,0x04,0x01,0x54,0xfe, +0xac,0xa4,0xa4,0xa4,0x80,0x94,0xaa,0x9e,0x87,0x8d,0xb0,0xf8,0x86,0x06,0x5e,0xfd,0x60,0xcc,0xfe,0xee,0xe8,0xfe,0xfe,0xfe,0xcc,0xac,0xfe,0xfa,0x86,0xdf,0x03,0x79,0x80,0xb0,0xe3,0xcc,0xab,0xc2,0xc5,0x98,0x00,0x01,0x00,0xbc,0xfe,0x29,0x03,0xc7,0x05,0x9a,0x00,0x0b,0x00,0x23,0x40,0x10,0x09,0x0a,0x0a,0x0d,0x04,0x00,0x7e,0x01, +0x04,0x0b,0x01,0x09,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x11,0x33,0x2f,0x33,0x31,0x30,0x01,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x64,0xa8,0xa8,0x04,0x03,0x0e,0x0d,0x01,0x8c,0xb5,0xfd,0x9d,0xfe,0x29,0x07,0x71,0xfb,0xcb,0x12,0x31,0x1e,0x03,0xd4,0xfa,0x66,0x00, +0x00,0x01,0x00,0xa6,0xfe,0x29,0x03,0x28,0x04,0x00,0x00,0x0b,0x00,0x21,0x40,0x0f,0x08,0x09,0x09,0x0d,0x03,0x0a,0x84,0x00,0x0a,0x03,0x08,0x01,0x0f,0x00,0x1b,0x00,0x3f,0x3f,0x33,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x13,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x13,0x33,0x01,0x11,0xa6,0xa4,0x04,0x0a,0x2b, +0x14,0xe4,0xad,0xfe,0x22,0xfe,0x29,0x05,0xd7,0xfd,0x34,0x33,0x68,0x2f,0x02,0x02,0xfc,0x00,0xfe,0x29,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x5d,0x05,0xb2,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x7d,0x0f,0x23,0x7d,0x06,0x1f,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x29,0x1f,0x0a,0x91,0x0b,0x0b,0x19,0x00,0x03,0x91,0x26, +0x13,0x15,0x12,0x91,0x19,0x04,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc4,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x37,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15, +0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x60,0x4b,0xa1,0x4b,0x80,0x99,0x9b,0x93,0x71,0x5a,0x7f,0x95,0x67,0x62,0x45,0x99,0x41,0x4b,0x93,0x4b,0xa9,0xc3,0x6d,0x6a,0x7c,0x8c,0xf8,0xcc,0x4e,0x9d,0x4e,0xd7,0x32,0x26,0x95,0x82,0x80,0x85,0x98,0x97,0x84,0x64,0x69,0x2d,0x30,0xa2,0x2b,0x27,0xc1,0xa0,0x7d, +0xa9,0x2d,0x08,0x16,0xbe,0x8c,0xc4,0xea,0x21,0x2c,0x00,0x01,0x00,0x1e,0xfe,0x23,0x02,0xe7,0x04,0x18,0x00,0x29,0x00,0x41,0x40,0x22,0x1c,0x84,0x0f,0x23,0x84,0x06,0x20,0x0f,0x0a,0x0f,0x06,0x06,0x0f,0x0a,0x03,0x2b,0x15,0x00,0x1f,0x0a,0x95,0x0b,0x0b,0x19,0x00,0x03,0x95,0x26,0x1c,0x15,0x12,0x95,0x19,0x10,0x00,0x3f,0xed,0x32, +0x3f,0xed,0x32,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xc6,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x00,0x23, +0x22,0x26,0x27,0x21,0x23,0x6c,0x2b,0x97,0xd0,0x9c,0xba,0x46,0x52,0x78,0xa1,0x71,0x65,0x47,0x8f,0x47,0x48,0x94,0x48,0xaf,0xc6,0x72,0x51,0x80,0x73,0xfe,0xcf,0xdb,0x2a,0x66,0x2a,0xfe,0xcc,0x0f,0x11,0xc5,0x96,0x8b,0x85,0x89,0xa2,0x78,0x65,0x70,0x29,0x2b,0x98,0x25,0x20,0xb8,0xa6,0x5d,0xc0,0x2a,0x05,0x2c,0xbb,0x80,0xcd,0xfe, +0xe9,0x08,0x09,0x00,0x00,0x02,0x00,0x14,0xff,0xe8,0x03,0xba,0x05,0xb0,0x00,0x19,0x00,0x24,0x00,0x41,0x40,0x21,0x24,0x0e,0x7e,0x00,0x03,0x00,0x0a,0x7d,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x91,0x12,0x0e,0x00,0x91,0x24,0x02,0x02,0x07,0x12,0x13,0x20,0x91,0x07,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed, +0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9,0x32,0x31,0x30,0x01,0x21,0x35,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x01,0x83,0xfe,0xe2,0x01,0x1e, +0x95,0x86,0x7d,0x9f,0xb9,0x86,0x50,0xd1,0xbc,0x54,0x36,0x36,0x56,0xe3,0xf9,0x49,0x45,0x31,0x36,0x41,0x37,0x03,0x70,0x97,0x81,0x8c,0x9c,0x99,0x7c,0x80,0xab,0xfe,0x92,0xf8,0xfe,0xde,0x18,0xa6,0x27,0x01,0x81,0x02,0x07,0x53,0x41,0x36,0x4a,0x50,0x43,0x81,0x00,0x02,0xff,0x76,0xfe,0x1e,0x03,0x15,0x06,0x02,0x00,0x19,0x00,0x24, +0x00,0x41,0x40,0x21,0x24,0x0e,0x84,0x00,0x03,0x00,0x0a,0x83,0x1d,0x00,0x1d,0x00,0x1d,0x26,0x01,0x15,0x15,0x17,0x95,0x12,0x0e,0x00,0x95,0x24,0x02,0x02,0x07,0x12,0x1c,0x20,0x95,0x07,0x00,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x33,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x10,0xe9, +0x32,0x31,0x30,0x13,0x23,0x35,0x37,0x35,0x34,0x36,0x37,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x14,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xe2,0xd8,0xd8,0x91,0x8a,0x7d,0x9b,0xae,0x83,0x5e,0xcc,0xbc,0x45,0x43,0x49,0x43,0xe0,0xf9,0x43,0x4f,0x3d,0x33,0x3c,0x3b, +0x03,0xc6,0x8c,0x01,0x87,0x89,0x9e,0x01,0x98,0x7a,0x82,0xa8,0xfc,0x65,0xfd,0xfe,0xf0,0x20,0x99,0x2d,0x01,0x66,0x04,0x42,0x57,0x47,0x3d,0x4b,0x54,0x4a,0x88,0x00,0x00,0x01,0x00,0x38,0xff,0xe8,0x03,0xca,0x05,0xb2,0x00,0x25,0x00,0x37,0x40,0x1c,0x15,0x7d,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x7e,0x0f,0x1c,0x1f,0x91,0x18, +0x08,0x05,0x91,0x0c,0x0c,0x12,0x18,0x13,0x25,0x91,0x12,0x04,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26, +0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x26,0x23,0x01,0x7c,0x9b,0x8b,0x7c,0x3a,0x6e,0x36,0x35,0x6d,0x3d,0xc1,0xee,0xf8,0xcd,0xde,0xef,0xfe,0xc0,0xfe,0xe7,0x3c,0x77,0x3c,0x39,0x81,0x39,0xcf,0xd6,0x8f,0x90,0x05,0x1c,0xae,0x8d,0x90,0xaf,0x28,0x2b,0xa2,0x23,0x24,0xfc,0xc7,0xd7,0x01,0x0c,0xfe,0x9f,0xfe,0xbe,0xfe,0x87, +0xfe,0x52,0x18,0x16,0xa5,0x1d,0x20,0x01,0x4c,0x01,0x45,0x01,0x10,0xfd,0x00,0x01,0x00,0x43,0xfe,0x4e,0x03,0xce,0x04,0x18,0x00,0x25,0x00,0x34,0x40,0x1a,0x15,0x83,0x22,0x08,0x22,0x08,0x22,0x27,0x1c,0x02,0x84,0x0f,0x08,0x05,0x95,0x0c,0x0c,0x12,0x1c,0x1f,0x95,0x18,0x25,0x95,0x12,0x0f,0x00,0x3f,0xed,0x2f,0xed,0x32,0x11,0x39, +0x2f,0xed,0x32,0x01,0x2f,0xe9,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x00,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x12,0x33,0x32,0x12,0x11,0x10,0x00,0x21,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x12,0x11,0x10,0x02,0x23,0x01,0x83,0x9c,0x8e,0x7b,0x39,0x6d,0x37,0x36,0x71, +0x37,0xc0,0xec,0xf5,0xcd,0xdd,0xec,0xfe,0xc8,0xfe,0xe2,0x3c,0x76,0x3c,0x39,0x82,0x38,0xd4,0xd5,0x91,0x92,0x03,0x8e,0xb6,0x8e,0x96,0xb2,0x24,0x2b,0x98,0x23,0x1e,0xfb,0xc5,0xd6,0x01,0x0a,0xfe,0xa2,0xfe,0xbb,0xfe,0x8a,0xfe,0x4f,0x16,0x14,0x9d,0x1d,0x20,0x01,0x55,0x01,0x49,0x01,0x18,0x01,0x00,0x00,0x01,0x00,0x28,0x02,0x89, +0x02,0x39,0x05,0xaa,0x00,0x24,0x00,0x44,0xb3,0x00,0x00,0x05,0x0b,0xb8,0x01,0x04,0xb3,0x18,0x18,0x26,0x1e,0xb8,0x01,0x04,0xb3,0x12,0x05,0x12,0x15,0xb8,0x01,0x05,0xb2,0x0e,0x24,0x21,0xb8,0x01,0x05,0xb4,0x02,0x02,0x08,0x0e,0x1b,0xb8,0x01,0x05,0xb1,0x08,0x04,0x00,0x3f,0xed,0x2f,0x12,0x39,0x2f,0xed,0x32,0x10,0xed,0x32,0x01, +0x2f,0xc4,0xe9,0x12,0x39,0x2f,0xed,0x12,0x39,0x2f,0x31,0x30,0x01,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x01,0x7a,0x2b,0x32,0x77,0x7e,0x8f,0x71,0x83,0x8e,0xa9,0x9c,0x29,0x4b,0x26, +0x28,0x4b,0x28,0x5f,0x62,0x49,0x45,0x3a,0x47,0x38,0x3f,0x18,0x31,0x13,0x03,0xbb,0x11,0x83,0x72,0x74,0x97,0xbf,0xad,0xc5,0xf0,0x0f,0x0e,0x78,0x14,0x11,0xa3,0xa1,0x86,0x77,0x55,0x42,0x3f,0x52,0x0c,0x0e,0x00,0x02,0x00,0x60,0xff,0x43,0x05,0x60,0x05,0xec,0x00,0x1a,0x00,0x27,0x00,0x4e,0x40,0x2a,0x27,0x19,0x84,0x15,0x09,0x06, +0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x04,0x29,0x21,0x83,0x10,0x17,0x00,0x15,0x1e,0x95,0x13,0x10,0x0a,0x24,0x95,0x07,0x0d,0x16,0x02,0x00,0x19,0x95,0x05,0x09,0x15,0x00,0x3f,0x33,0xfd,0xc6,0x33,0x3f,0xc6,0xed,0x32,0x3f,0xed,0x32,0x3f,0x01,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33, +0x11,0x33,0xe9,0x33,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x35,0x23,0x06,0x23,0x22,0x02,0x35,0x34,0x12,0x33,0x32,0x17,0x33,0x11,0x33,0x11,0x33,0x03,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x04,0xbc,0x8e,0x59,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x04,0x72,0xee,0xc0,0xe8,0xff,0xd6,0xd3, +0x60,0x04,0xa4,0x53,0xf7,0xa6,0x7c,0x97,0xab,0xa3,0x8d,0x88,0xac,0x01,0x44,0xba,0x8a,0xbd,0xbd,0xae,0xc6,0x01,0x11,0xef,0xfc,0x01,0x34,0xa6,0x02,0x7a,0xfa,0x9e,0x01,0xdc,0x7e,0xaa,0xdd,0xc1,0xb1,0xcd,0xc6,0x97,0x00,0x01,0x00,0xa6,0xff,0x43,0x02,0x9a,0x05,0xec,0x00,0x0d,0x00,0x30,0x40,0x17,0x0b,0x0c,0x05,0x06,0x0c,0x06, +0x00,0x08,0x08,0x0f,0x03,0x84,0x00,0x01,0x00,0x07,0x05,0x03,0x95,0x0c,0x0a,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x12,0x39,0x39,0x11,0x33,0x11,0x33,0x31,0x30,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0xa6,0xa4,0x53,0x57,0x8e,0x57,0x6f,0xb1,0x59,0x8e, +0x59,0x05,0xec,0xfa,0x9e,0xba,0xba,0x8a,0xbd,0xbd,0x00,0x01,0x00,0xa6,0xff,0x43,0x07,0xa4,0x04,0x18,0x00,0x29,0x00,0x5d,0x40,0x32,0x1d,0x19,0x84,0x1a,0x23,0x11,0x84,0x12,0x28,0x84,0x09,0x06,0x07,0x00,0x01,0x12,0x09,0x07,0x01,0x03,0x03,0x01,0x07,0x09,0x12,0x05,0x04,0x1a,0x04,0x23,0x1d,0x0d,0x15,0x95,0x25,0x20,0x10,0x1b, +0x0f,0x12,0x19,0x15,0x02,0x00,0x28,0x95,0x07,0x05,0x09,0x15,0x00,0x3f,0x33,0xc6,0xfd,0xc6,0x33,0x3f,0x33,0x3f,0x3f,0x33,0xed,0x32,0x32,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0x10,0xe9,0x10,0xe9,0x39,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x36,0x33,0x20,0x11,0x11,0x33,0x06,0xfe,0x8e,0x57,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0x68,0x7d,0x69,0x93,0xa4,0xe9,0x6a,0x8e,0xa4,0xa4,0x04,0x6d,0xd1,0x68,0x9e,0x1c,0x72,0xe2,0x01,0x52,0x53,0x01,0x44, +0xba,0x8a,0xbd,0xbd,0x02,0x4c,0xa7,0x9b,0xbe,0x88,0xfd,0xb8,0x02,0x60,0x01,0x2e,0xb3,0x93,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x76,0x5e,0xd4,0xfe,0x5f,0xfe,0x13,0x00,0x00,0x01,0x00,0xa6,0xff,0x43,0x05,0x48,0x04,0x18,0x00,0x1c,0x00,0x45,0x40,0x25,0x14,0x10,0x84,0x11,0x1b,0x84,0x06,0x07,0x00,0x01,0x09,0x07,0x01,0x03,0x03,0x01, +0x07,0x09,0x04,0x04,0x11,0x04,0x15,0x0c,0x95,0x17,0x10,0x12,0x0f,0x11,0x15,0x00,0x1b,0x95,0x07,0x09,0x15,0x00,0x3f,0xc6,0xfd,0xc6,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x11,0x33,0x11,0x33,0xed,0x10,0xe9,0x32,0x31,0x30,0x01,0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x11,0x10,0x23, +0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x04,0xa5,0x8e,0x5a,0x6f,0xb1,0x59,0x8e,0x59,0xb5,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x53,0x01,0x46,0xbc,0x8a,0xbd,0xbd,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0x18,0x00,0x00,0x01,0x00,0xa6, +0x00,0x00,0x02,0xbc,0x04,0x91,0x00,0x17,0x00,0x3a,0x40,0x1e,0x09,0x0a,0x00,0x01,0x0a,0x01,0x06,0x06,0x01,0x0a,0x03,0x19,0x12,0x0f,0x84,0x10,0x11,0x0f,0x10,0x15,0x14,0x0b,0x09,0x08,0xec,0x17,0x00,0x96,0x02,0x10,0x00,0x3f,0xed,0x33,0xfd,0xcd,0x33,0x33,0x3f,0x3f,0x01,0x2f,0xe9,0x32,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33, +0x11,0x33,0x31,0x30,0x01,0x33,0x07,0x16,0x16,0x17,0x15,0x26,0x27,0x07,0x23,0x37,0x06,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x02,0x26,0x7a,0x23,0x14,0x1e,0x0d,0x26,0x42,0x3a,0x7a,0x31,0x3a,0x4d,0xa4,0xa4,0x04,0x1a,0x5b,0x3b,0x04,0x91,0x80,0x02,0x06,0x05,0xaa,0x1d,0x03,0xd7,0xb7,0x26,0xa8,0x82,0xfd,0xf6, +0x04,0x00,0xd3,0x4f,0x6c,0x18,0x00,0x02,0x00,0xa6,0xff,0x43,0x04,0xa2,0x04,0x01,0x00,0x1e,0x00,0x27,0x00,0x53,0x40,0x2c,0x0f,0x06,0x0c,0x83,0x1c,0x1d,0x16,0x17,0x17,0x14,0x1d,0x00,0x04,0x19,0x24,0x19,0x24,0x19,0x07,0x1a,0x20,0x06,0x84,0x07,0x0f,0x20,0x96,0x05,0x05,0x06,0x1f,0x96,0x08,0x0f,0x06,0x15,0x18,0x16,0x14,0x95, +0x1d,0x1b,0x00,0x15,0x00,0x3f,0x32,0xc6,0xfd,0xc6,0x33,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x01,0x2f,0xe9,0x32,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x12,0x17,0x39,0x11,0x33,0x11,0x33,0xed,0x11,0x39,0x31,0x30,0x21,0x03,0x26,0x26,0x23,0x23,0x11,0x23,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x17,0x33,0x37, +0x33,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x01,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x02,0xe5,0x98,0x2e,0x40,0x4e,0x47,0xa4,0x01,0x36,0xce,0xb2,0x90,0x67,0x1f,0x3b,0x2a,0x69,0x53,0x4f,0x8e,0x4f,0x6f,0xb1,0x59,0x8e,0x59,0xfd,0xe7,0x78,0x72,0x80,0x67,0x73,0x01,0x1b,0x54,0x34,0xfe,0x5d,0x04,0x01,0x8b,0x94,0x5f,0x97,0x0c, +0x03,0x09,0x3d,0x4d,0xc0,0xa7,0xa7,0x8a,0xbd,0xbd,0x03,0x7e,0xfe,0xab,0x5f,0x5a,0x4f,0x4d,0x00,0x02,0x00,0x2b,0xff,0xea,0x05,0x12,0x05,0xb1,0x00,0x21,0x00,0x2c,0x00,0x4d,0x40,0x28,0x1c,0xef,0x25,0x09,0x25,0x09,0x25,0x2e,0x14,0x03,0x84,0x11,0x0f,0x0d,0x2c,0x21,0x84,0x15,0x00,0x28,0x96,0x19,0x20,0x02,0x0e,0x95,0x11,0x2c, +0x14,0x11,0x13,0x13,0x11,0x0f,0x06,0x95,0x0b,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x33,0x2f,0x11,0x33,0x33,0x10,0xed,0x32,0x32,0xd4,0xed,0x01,0x2f,0x33,0xe9,0x32,0x2f,0xc6,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x11,0x11,0x23,0x35, +0x33,0x35,0x37,0x11,0x21,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x02,0xf2,0xfe,0x8d,0x46,0x51,0x3f,0x2c,0x3b,0x5e,0xfe,0xf3,0xb0,0xb0,0xa4,0x01,0x73,0x8c,0x8a,0x83,0x87,0xa7,0xa0,0x35,0x36,0x4f,0x5d,0x37,0x39,0x39,0x37,0x03,0x74,0xfd,0xbf,0x67, +0x58,0x22,0x8c,0x20,0x01,0x2c,0x02,0x5e,0x8c,0xfa,0x35,0xfe,0xd1,0x6e,0xa9,0x9a,0x96,0x82,0x8d,0x98,0xfc,0x8c,0x04,0x00,0x4b,0x4f,0x49,0x48,0x52,0x6e,0x6b,0x00,0x00,0x02,0xff,0xec,0x00,0x00,0x03,0x5b,0x05,0xb2,0x00,0x22,0x00,0x2e,0x00,0x4c,0x40,0x28,0x1f,0x10,0x22,0x0d,0x7e,0x26,0x03,0x23,0x00,0x26,0x13,0x7e,0x1c,0x26, +0x1c,0x26,0x1c,0x30,0x22,0x00,0x2c,0x7e,0x18,0x07,0x1f,0x03,0x10,0x23,0x04,0x22,0x22,0x0a,0x18,0x91,0x16,0x12,0x29,0x91,0x0a,0x03,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x17,0x39,0x01,0x2f,0xc6,0xe9,0xc6,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x11,0x12,0x39,0x39,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x13,0x36,0x12,0x37, +0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x07,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x95,0x4d,0x8d,0x3c,0x10,0x93,0x4c,0x98,0x6f,0x73,0x88,0x31,0x22,0x84,0x6c,0xe5,0xc4,0xfe,0x3a,0x01,0xd1, +0x69,0x89,0x42,0x48,0x3d,0x87,0x4b,0xcf,0x15,0x18,0x2c,0x29,0x29,0x31,0x49,0x01,0x3a,0x80,0x01,0x04,0x80,0x0e,0x82,0x97,0x4f,0x6b,0x93,0x92,0x79,0x4b,0xa5,0x59,0x84,0xd8,0x73,0xba,0xd5,0x97,0x89,0x6d,0x54,0x9e,0x4e,0x7e,0xed,0x7b,0x02,0xf5,0x38,0x5d,0x38,0x36,0x3b,0x3c,0x29,0x39,0x69,0x00,0x00,0x02,0x00,0x0f,0xff,0xe8, +0x05,0xaa,0x05,0x9a,0x00,0x0e,0x00,0x1a,0x00,0x28,0x40,0x14,0x05,0x7d,0x0e,0x0b,0x14,0x14,0x1c,0x1a,0x7d,0x00,0x0b,0x11,0x91,0x08,0x13,0x17,0x0e,0x91,0x01,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x01,0x2f,0xc6,0xe9,0x12,0x39,0x2f,0x12,0x39,0xe9,0x31,0x30,0x13,0x35,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x11,0x34,0x12, +0x37,0x02,0x00,0x33,0x32,0x00,0x11,0x10,0x00,0x23,0x22,0x00,0x15,0x0f,0x03,0x07,0x01,0x25,0x01,0x6f,0xfe,0x8c,0xfe,0xc8,0xfe,0xd4,0xfe,0x8c,0x99,0x74,0x5d,0x01,0x11,0xdf,0xe9,0x01,0x13,0xfe,0xfc,0xec,0xe1,0xfe,0xe5,0x05,0x02,0x98,0xfe,0x6d,0xfe,0xcc,0xfe,0xb0,0xfe,0x65,0x01,0x8d,0x01,0x3b,0xe1,0x01,0x2a,0x47,0xfc,0xc1, +0xfe,0xbc,0x01,0x34,0x01,0x09,0x01,0x10,0x01,0x36,0xfe,0xb9,0xfc,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x18,0x05,0xe9,0x00,0x13,0x00,0x1e,0x00,0x2f,0x40,0x18,0x09,0x0c,0x10,0x83,0x19,0x19,0x20,0x0d,0x0c,0x1e,0x83,0x02,0x08,0x05,0x16,0x95,0x13,0x16,0x0d,0x00,0x1b,0x95,0x05,0x10,0x00,0x3f,0xed,0x3f,0x3f,0xed,0x12,0x39, +0x01,0x2f,0xe9,0xc4,0x32,0x12,0x39,0x2f,0xed,0x12,0x39,0x31,0x30,0x04,0x02,0x35,0x34,0x00,0x33,0x32,0x16,0x17,0x37,0x26,0x00,0x27,0x33,0x04,0x00,0x11,0x14,0x00,0x23,0x00,0x16,0x33,0x32,0x36,0x35,0x10,0x21,0x22,0x06,0x15,0x01,0x5c,0xfc,0x01,0x09,0xde,0x33,0x5e,0x1f,0x03,0x4f,0xfe,0xea,0xbc,0xfa,0x01,0x20,0x01,0x25,0xfe, +0xfa,0xd4,0xfe,0xca,0xa9,0x91,0x8a,0xa4,0xfe,0xd6,0x96,0xa8,0x18,0x01,0x1c,0xf6,0xf0,0x01,0x2e,0x1e,0x1d,0x02,0x77,0x01,0x06,0x8d,0xdb,0xfe,0x07,0xfe,0xf1,0xef,0xfe,0xd1,0x01,0x61,0xd7,0xdf,0xad,0x01,0x90,0xdc,0xb8,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xac,0x00,0x15,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x17, +0x0d,0x06,0x09,0x83,0x0b,0x0e,0x02,0xf4,0x12,0x01,0x0c,0x00,0x0a,0x1b,0x06,0xec,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x02,0xf4,0x2f,0x57,0x78, +0x92,0x01,0x77,0xfe,0x89,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x04,0xea,0x21,0xd1,0xc8,0xfd,0x25,0x97,0xfe,0x29,0x07,0x71,0xd3,0x6b,0x7a,0x07,0x07,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x14,0x00,0x2b,0x40,0x16,0x07,0x00,0x00,0x16,0x0d,0x06,0x09,0x84,0x0b,0x0e,0x02,0xec,0x12,0x10,0x0c,0x0f, +0x0a,0x1b,0x06,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x21,0x15,0x21,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0x01,0x56,0xfe,0xaa,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24, +0x03,0x5a,0x21,0xc5,0xac,0xfe,0x80,0x8a,0xfe,0x29,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00,0x02,0x00,0x5a,0xff,0xe8,0x04,0x49,0x05,0x9a,0x00,0x1a,0x00,0x2b,0x00,0x4d,0x40,0x28,0x07,0x7d,0x18,0x0b,0x7d,0x1d,0x00,0x04,0x15,0x25,0x1d,0x18,0x1d,0x04,0x04,0x1d,0x18,0x03,0x2d,0x28,0x7d,0x01,0x12,0x18,0x07,0x25,0x07,0x02,0x15,0x15, +0x02,0x2b,0x91,0x0f,0x13,0x04,0x00,0x91,0x02,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x11,0x39,0x2f,0x12,0x39,0xcd,0x11,0x33,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x11,0x33,0x10,0xe9,0x10,0xe9,0x31,0x30,0x01,0x21,0x35,0x21,0x15,0x06,0x06,0x15,0x14,0x04,0x16,0x15,0x15,0x06,0x04,0x23,0x22,0x24,0x35, +0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x12,0x36,0x35,0x34,0x26,0x2f,0x02,0x26,0x26,0x27,0x06,0x06,0x15,0x14,0x16,0x33,0x02,0x82,0xfe,0x27,0x03,0x4b,0x95,0xeb,0x01,0x31,0xa4,0x06,0xfe,0xe8,0xe5,0xdb,0xfe,0xef,0xc0,0xda,0x19,0x17,0x69,0xb6,0xb6,0x55,0x39,0x4b,0x3c,0x0e,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x05,0x04,0x96,0x85, +0x1a,0x90,0x52,0x52,0xce,0xcb,0x81,0x07,0xd0,0xee,0xed,0xc3,0x9d,0xee,0x61,0x21,0x53,0x23,0x46,0x7f,0xfb,0x9f,0xa1,0x8c,0x40,0x76,0x2d,0x3a,0x2d,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x59,0x00,0x00,0x04,0x48,0x05,0xb2,0x00,0x1d,0x00,0x2d,0x00,0x45,0x40,0x24,0x1b,0x7d,0x07,0x15,0x7d,0x2a,0x00,0x0f, +0x07,0x2a,0x01,0x01,0x2a,0x07,0x03,0x2f,0x20,0x7d,0x04,0x0f,0x27,0x1b,0x07,0x07,0x18,0x18,0x03,0x2d,0x91,0x12,0x04,0x04,0x00,0x91,0x03,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0x39,0x11,0x33,0xcd,0x01,0x2f,0xc4,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x10,0xe9,0x10,0xe9,0x31,0x30,0x25,0x21,0x15,0x21,0x35, +0x36,0x24,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x36,0x24,0x33,0x32,0x04,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x17,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x20,0x01,0xd9,0xfc,0xb5,0x7b,0x01,0x05,0x45,0x47,0x46,0x8f,0x74,0x06,0x01,0x17,0xe6,0xdb,0x01,0x11,0xc9,0xd1, +0x19,0x17,0x69,0xb6,0xb6,0x60,0x9a,0x1c,0x0d,0x19,0x0e,0xbe,0x87,0xa9,0x96,0x96,0x96,0x85,0x12,0x93,0x57,0x2a,0x53,0x33,0x32,0x6a,0xb5,0x65,0x0d,0xcf,0xef,0xed,0xc3,0xa1,0xf0,0x5b,0x21,0x53,0x23,0x46,0x7f,0x04,0x61,0xa1,0x8c,0x41,0x85,0x6f,0x15,0x0a,0x14,0x0c,0x5a,0xae,0x76,0x88,0x9b,0x00,0x00,0x02,0x00,0x60,0xfe,0x39, +0x04,0x3f,0x04,0x18,0x00,0x19,0x00,0x27,0x00,0x48,0x40,0x25,0x21,0x14,0x1c,0x17,0x84,0x07,0x11,0x83,0x24,0x00,0x0b,0x07,0x01,0x24,0x07,0x24,0x07,0x24,0x29,0x1c,0x83,0x04,0x0b,0x21,0x96,0x14,0x14,0x02,0x27,0x95,0x0e,0x10,0x04,0x00,0x95,0x02,0x1b,0x00,0x3f,0xed,0x32,0x3f,0xed,0x12,0x39,0x2f,0xed,0x01,0x2f,0xc4,0xe9,0x12, +0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xe9,0x10,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x21,0x15,0x21,0x35,0x36,0x36,0x35,0x34,0x24,0x26,0x35,0x34,0x24,0x33,0x32,0x04,0x15,0x14,0x02,0x07,0x16,0x16,0x15,0x14,0x06,0x02,0x06,0x15,0x14,0x16,0x1f,0x02,0x36,0x36,0x35,0x34,0x26,0x23,0x02,0x08,0x01,0xc0,0xfc,0xd3,0xd5, +0xb0,0xfe,0xc2,0x82,0x01,0x1a,0xef,0xca,0x01,0x0c,0xd8,0xc6,0x14,0x11,0x6a,0x96,0xbe,0x5c,0x60,0x6a,0x1b,0xa7,0xa7,0xaa,0x8a,0xfe,0xc5,0x8c,0x47,0x61,0x97,0x4e,0x5b,0xd6,0xd0,0x86,0xd5,0xf6,0xef,0xc9,0xb2,0xfe,0xf7,0x5c,0x21,0x41,0x21,0x4d,0x8e,0x04,0xa2,0xa7,0x95,0x68,0x7f,0x4d,0x54,0x18,0x52,0xc8,0x95,0x8c,0xa1,0x00, +0x00,0x01,0x00,0x20,0x00,0x00,0x03,0x08,0x05,0x9a,0x00,0x05,0x00,0x1a,0x40,0x0c,0x02,0x7e,0x03,0x03,0x07,0x05,0x03,0x12,0x05,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x01,0x2f,0x12,0x39,0x2f,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x20,0x02,0xe8,0xa8,0xfd,0xc0,0x05,0x9a,0xfa,0x66,0x05,0x02,0x00,0x01,0x00,0xa6,0x00,0x00, +0x01,0x4a,0x05,0xec,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x84,0x01,0x01,0x04,0x05,0x02,0x00,0x01,0x15,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31,0x30,0x21,0x23,0x11,0x33,0x01,0x4a,0xa4,0xa4,0x05,0xec,0x00,0x00,0x01,0x00,0xbc,0xfe,0x29,0x05,0xfc,0x05,0xb2,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x7e,0x0d,0x06,0x0d,0x06, +0x20,0x17,0x14,0x7e,0x15,0x19,0x10,0x91,0x1b,0x04,0x17,0x03,0x14,0x1b,0x03,0x91,0x0a,0x13,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x21,0x22,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33, +0x12,0x21,0x32,0x12,0x11,0x05,0x27,0x34,0x31,0x20,0x36,0x1a,0x18,0x44,0x1f,0x7e,0x84,0xfe,0x9f,0xc1,0xf9,0xa8,0xa8,0x06,0x9d,0x01,0x3f,0xe8,0xf9,0x01,0x21,0x5b,0x48,0x0e,0x0e,0x9e,0x0b,0x09,0x91,0x7f,0x02,0x3d,0x01,0xe5,0xfe,0xe5,0xd4,0xfa,0xfe,0x07,0x71,0xfe,0xfa,0x01,0x1e,0xfe,0xcd,0xfe,0xe3,0x00,0x00,0x01,0x00,0xa6, +0xfe,0x29,0x04,0xb0,0x04,0x18,0x00,0x1e,0x00,0x2e,0x40,0x18,0x00,0x84,0x0d,0x06,0x0d,0x06,0x20,0x18,0x14,0x84,0x15,0x18,0x10,0x95,0x1b,0x10,0x17,0x0f,0x14,0x1b,0x03,0x95,0x0a,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x01,0x14,0x16,0x33,0x32,0x36,0x37,0x15, +0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0xf8,0x2c,0x2c,0x16,0x34,0x16,0x17,0x39,0x19,0x73,0x80,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x01,0x14,0x5e,0x45,0x0a,0x0e,0x8d,0x0b,0x09,0x8d,0x83,0x01,0x50,0x01,0x46,0xb8,0x8e,0xfb,0xe1, +0x05,0xd7,0xaa,0xc2,0xd8,0xce,0x00,0x01,0x00,0xbc,0xfe,0x29,0x02,0xf4,0x05,0xb2,0x00,0x11,0x00,0x21,0x40,0x10,0x0c,0x0c,0x13,0x04,0x00,0x83,0x01,0x04,0x0e,0xf4,0x08,0x01,0x03,0x00,0x00,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16, +0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x01,0x64,0xa8,0xa8,0x04,0x26,0x9b,0x61,0x23,0x34,0x13,0x2f,0x57,0x78,0x92,0xfe,0x29,0x07,0x71,0xcd,0x6b,0x7a,0x07,0x07,0xb4,0x21,0xd1,0xc8,0x00,0x00,0x01,0x00,0xa6,0xfe,0x29,0x02,0xbc,0x04,0x12,0x00,0x10,0x00,0x21,0x40,0x10,0x00,0x00,0x12,0x0b,0x06,0x84,0x07,0x0a,0x02,0xec,0x0e,0x10, +0x09,0x0f,0x06,0x1b,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x01,0x2f,0xe1,0x32,0x11,0x39,0x2f,0x31,0x30,0x01,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x02,0xbc,0x2c,0x50,0x6a,0x8c,0xa4,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x03,0x5a,0x21,0xc5,0xac,0xfc,0x1f,0x05,0xd7,0xd3,0x6e,0x77,0x0e,0x00, +0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0xb9,0x05,0x9b,0x00,0x1e,0x00,0x2f,0x40,0x17,0x1d,0x19,0x12,0x08,0x12,0x08,0x20,0x1e,0x0c,0x7d,0x19,0x13,0x12,0x12,0x0f,0x91,0x16,0x13,0x09,0x1d,0x91,0x00,0x03,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x2f,0x33,0x01,0x2f,0xe1,0xc4,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x33,0x32, +0x37,0x21,0x32,0x17,0x33,0x15,0x21,0x22,0x00,0x15,0x14,0x00,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x20,0x00,0x11,0x34,0x12,0x36,0x37,0x21,0x6b,0xe6,0x64,0x4f,0x01,0xc6,0x32,0x3a,0x83,0xfe,0x88,0xe7,0xfe,0xb4,0x01,0x20,0xe9,0x57,0xa6,0x78,0x50,0xc0,0x6a,0xfe,0xc4,0xfe,0x88,0x84,0xad,0x35,0xfe,0xa7,0x05,0x9a,0x01,0x01, +0x97,0xfe,0xa4,0xeb,0xfa,0xfe,0xbd,0x28,0x38,0xa3,0x2a,0x2a,0x01,0x88,0x01,0x42,0x91,0x01,0x18,0x96,0x12,0x00,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x98,0x04,0x00,0x00,0x17,0x00,0x2d,0x40,0x16,0x16,0x13,0x0c,0x02,0x0c,0x02,0x19,0x17,0x06,0x83,0x13,0x0c,0x0c,0x09,0x95,0x10,0x16,0x03,0x16,0x95,0x00,0x0f,0x00,0x3f,0xed,0x32, +0x3f,0xed,0x32,0x2f,0x01,0x2f,0xe9,0xc6,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x31,0x30,0x13,0x21,0x15,0x21,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x00,0x35,0x34,0x36,0x37,0x23,0x60,0x03,0x38,0xfe,0xe3,0x9c,0xbf,0xbd,0x93,0x44,0x7f,0x44,0x45,0x82,0x44,0xdd,0xfe,0xe7,0x72,0x5a,0xe2,0x04,0x00, +0x89,0xda,0xaf,0xa1,0xdc,0x2b,0x30,0x9c,0x29,0x1f,0x01,0x16,0xdf,0x95,0xcc,0x39,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xf2,0x05,0x9a,0x00,0x09,0x00,0x25,0x40,0x12,0x08,0x7e,0x01,0x07,0x07,0x0b,0x04,0x7e,0x03,0x02,0x91,0x05,0x05,0x07,0x03,0x03,0x00,0x12,0x00,0x3f,0x3f,0x33,0x39,0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0x33, +0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x4a,0xfc,0x72,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0x03,0x0c,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x00,0x02,0xff,0xe5,0xfe,0x1e,0x03,0x30,0x05,0xec,0x00,0x22,0x00,0x2c,0x00,0x55,0x40,0x2c,0x00,0x08,0x84,0x12,0x23,0x20,0x12,0x0c,0x04,0x12,0x04,0x12,0x04,0x2e, +0x28,0xef,0x1a,0x07,0x17,0x96,0x04,0x03,0x2b,0x00,0x2b,0x25,0x96,0x1d,0x20,0x1d,0x20,0x2b,0x01,0x2b,0x1d,0x2b,0x1d,0x0f,0x21,0x00,0x0a,0x95,0x0f,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x11,0x33,0x10,0xc4,0x32,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xc6,0x11,0x33,0x33, +0x10,0xe9,0x32,0x31,0x30,0x01,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x11,0x14,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x35,0x11,0x07,0x22,0x07,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x03,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x02,0x16,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0xac,0x3c,0x32,0x29,0x4d,0x8e, +0xba,0x15,0x0c,0x0d,0x2e,0x8d,0xa4,0x85,0x6a,0x25,0x53,0x26,0xa4,0xa4,0x04,0x8f,0x2a,0x39,0x4d,0x61,0x25,0x03,0x8b,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfc,0x8d,0xdf,0x1a,0x93,0x13,0xc0,0xa1,0x03,0x51,0x02,0x01,0x01,0x81,0x73,0x65,0x7b,0x16,0x22,0x01,0x84,0xfd,0x6a,0xc4,0x30,0x2a,0x3a,0x36,0x00,0x01,0x00,0xbc,0xfe,0x7f, +0x06,0x00,0x05,0x9a,0x00,0x1a,0x00,0x38,0x40,0x1c,0x12,0x0c,0x7e,0x0b,0x0e,0x7f,0x10,0x0b,0x10,0x0b,0x10,0x1c,0x02,0x1a,0x7e,0x00,0x15,0x06,0x01,0x1a,0x10,0x0d,0x91,0x12,0x12,0x0b,0x01,0x03,0x00,0x3f,0x33,0x3f,0xed,0xce,0x33,0x12,0x39,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x33,0x31,0x30, +0x33,0x11,0x33,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0xbc,0xda,0x02,0xce,0x17,0x1c,0x07,0x04,0x05,0x05,0xa8,0xc0,0x9b,0xf3,0xfd,0x1e,0x1b,0x13,0x06,0x04,0x04,0x05,0x9a,0xfb,0x9b,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x03,0xf2,0xfa,0xfe,0xfd,0xe7, +0x01,0x81,0x04,0x77,0x2a,0x30,0x17,0x61,0x4d,0xfb,0xf4,0x00,0x00,0x01,0x00,0xa6,0xfe,0x8b,0x04,0x8f,0x04,0x18,0x00,0x16,0x00,0x35,0x40,0x1b,0x13,0x84,0x01,0x15,0xed,0x16,0x01,0x16,0x01,0x16,0x18,0x0b,0x08,0x84,0x09,0x0c,0x04,0x0f,0x10,0x0a,0x0f,0x08,0x15,0x16,0x13,0x01,0x15,0x00,0x3f,0xcd,0xce,0x3f,0x3f,0x3f,0xcd,0x32, +0x01,0x2f,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x23,0x11,0x10,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x11,0x23,0x04,0x02,0xae,0xee,0x7a,0xa2,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x97,0x8d,0x02,0x48,0x01,0x46,0xb8,0x8e,0xfd,0xb8,0x04,0x00,0xaa, +0xc2,0xd8,0xce,0xfe,0x19,0xfe,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x00,0x1b,0x00,0x3e,0x40,0x1f,0x15,0x06,0x06,0x1d,0x1a,0x01,0x7d,0x0f,0x0d,0x0c,0x14,0x15,0x15,0x17,0x91,0x12,0x01,0x0c,0x91,0x1a,0x0f,0x0f,0x12,0x04,0x07,0x06,0x06,0x04,0x91,0x09,0x13,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0x39,0x2f, +0x33,0xed,0x32,0x10,0xed,0x32,0x2f,0x33,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x01,0x21,0x16,0x00,0x33,0x32,0x37,0x15,0x06,0x23,0x20,0x00,0x03,0x23,0x35,0x33,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x21,0x02,0xa2,0xfe,0x6e,0x10,0x01,0x18,0xde,0xd8,0x9e,0x9f,0xed,0xfe,0xdc,0xfe,0x93, +0x10,0x5f,0x62,0x1d,0x01,0x91,0x01,0x2a,0xcb,0x87,0x9b,0xb9,0xe3,0xfe,0xd6,0x19,0x01,0x90,0x02,0x7d,0xe7,0xfe,0xe9,0x60,0xa3,0x54,0x01,0x6b,0x01,0x2a,0x9b,0x01,0x25,0x01,0x75,0x3b,0xb3,0x56,0xfe,0xe8,0xea,0x00,0x00,0x01,0x00,0x00,0xff,0xe8,0x03,0x62,0x04,0x18,0x00,0x1b,0x00,0x32,0x40,0x19,0x07,0x14,0x14,0x1d,0x0c,0x0f, +0x83,0x01,0x00,0x1a,0x0f,0x1a,0x95,0x0c,0x00,0x00,0x04,0x12,0x95,0x17,0x16,0x09,0x95,0x04,0x10,0x00,0x3f,0xed,0x3f,0xed,0x11,0x39,0x2f,0x33,0xed,0x32,0x01,0x2f,0xcd,0x33,0xe9,0x32,0x12,0x39,0x2f,0x33,0x31,0x30,0x11,0x33,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15, +0x06,0x23,0x22,0x00,0x27,0x23,0x68,0x1f,0x01,0x15,0xd8,0x85,0x69,0x73,0x81,0x89,0xbc,0x19,0x01,0x36,0xfe,0xc3,0x09,0xbc,0x96,0x85,0x77,0x77,0xa1,0xd5,0xfe,0xf5,0x08,0x60,0x02,0x5c,0xc6,0xf6,0x32,0xa8,0x50,0xac,0x86,0x8b,0xa5,0xba,0x59,0x9c,0x47,0x01,0x0d,0xdc,0x00,0x01,0x00,0x01,0xff,0xe8,0x05,0x1a,0x05,0xb2,0x00,0x1f, +0x00,0x78,0x40,0x2b,0x19,0x19,0x00,0x00,0x0b,0x7e,0x06,0x08,0x06,0x08,0x06,0x21,0x1e,0x01,0x7e,0x13,0x10,0x19,0x19,0x1b,0x91,0x16,0x10,0x01,0x11,0x00,0x00,0x1f,0x08,0x91,0x13,0x1e,0x12,0x1f,0x12,0x11,0x1f,0x16,0x11,0xc0,0x09,0x01,0x09,0xb8,0xff,0xc0,0xb3,0x0f,0x13,0x48,0x09,0xb8,0xff,0xc0,0x40,0x0d,0x0a,0x0d,0x48,0x09, +0x09,0x16,0x04,0x0b,0x06,0x04,0x91,0x0d,0x13,0x00,0x3f,0xed,0x32,0x32,0x3f,0x39,0x2f,0x2b,0x2b,0x5d,0x39,0x12,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0xed,0x11,0x33,0x11,0x12,0x39,0x39,0x10,0xed,0x32,0x2f,0x01,0x2f,0x33,0xe9,0x32,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x32,0x2f,0x32,0x2f,0x31,0x30,0x01,0x01,0x16,0x00,0x33,0x32, +0x37,0x11,0x21,0x35,0x21,0x11,0x06,0x21,0x20,0x00,0x03,0x07,0x35,0x37,0x12,0x00,0x21,0x32,0x17,0x15,0x26,0x23,0x22,0x00,0x07,0x01,0x05,0x1a,0xfb,0xf6,0x13,0x01,0x19,0xe5,0xa9,0x7a,0xfe,0xc6,0x01,0xe2,0xd9,0xfe,0xf9,0xfe,0xe7,0xfe,0x92,0x20,0x64,0x5d,0x0b,0x01,0xa2,0x01,0x3b,0xeb,0x9e,0xaf,0xed,0xe2,0xfe,0xd5,0x14,0x04, +0x08,0x03,0xe0,0xfe,0x9c,0xed,0xfe,0xf0,0x43,0x01,0x92,0x98,0xfd,0x76,0x7a,0x01,0x4c,0x01,0x0d,0x22,0x9a,0x20,0x01,0x41,0x01,0x98,0x4c,0xba,0x6e,0xfe,0xdc,0xe0,0x01,0x64,0x00,0x03,0x00,0x00,0xfe,0x1e,0x04,0x81,0x04,0x18,0x00,0x21,0x00,0x29,0x00,0x31,0x00,0x60,0x40,0x34,0x22,0x2a,0x84,0x0d,0x0b,0x00,0x0e,0x1b,0x1b,0x19, +0x1d,0x84,0x2b,0x29,0x16,0x04,0x00,0x02,0x95,0x1f,0x1b,0x17,0x0f,0x15,0x2e,0x95,0x1c,0x29,0x22,0x0b,0x04,0x0c,0x1b,0x1b,0x19,0x2a,0x0e,0x03,0x0d,0x1a,0x0d,0x0c,0x1a,0x0c,0x08,0x13,0x10,0x05,0x25,0x95,0x08,0x16,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x3f, +0x3f,0xed,0x32,0x01,0x2f,0x33,0x33,0x33,0xf9,0x32,0xc2,0x2f,0x2f,0xc4,0x33,0xcd,0xe9,0x32,0x31,0x30,0x17,0x16,0x33,0x20,0x11,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x07,0x35,0x37,0x26,0x35,0x10,0x12,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x37,0x15,0x07,0x11,0x10,0x21,0x22,0x27,0x13,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x05,0x25, +0x26,0x26,0x23,0x22,0x06,0x15,0xa8,0xac,0x9e,0x01,0x7a,0x04,0x75,0xeb,0x96,0xd0,0x29,0x79,0x62,0x02,0xfa,0xdb,0xcf,0x64,0x04,0xa4,0x71,0x71,0xfd,0xe4,0xbe,0x8e,0x72,0x1e,0x91,0x6c,0x8a,0xad,0xfd,0x9c,0x02,0x5c,0x16,0x97,0x6b,0x99,0xab,0xf6,0x60,0x01,0x92,0x70,0xc4,0xa8,0x8e,0x29,0x8e,0x21,0x0e,0x1e,0x01,0x14,0x01,0x34, +0xa6,0x8e,0xfe,0xe9,0x27,0x8e,0x27,0xfd,0xf7,0xfd,0xcc,0x48,0x02,0xf0,0x67,0x7d,0xc4,0x99,0x53,0x45,0xd1,0x5c,0x84,0xdf,0xc5,0x00,0x00,0x02,0x00,0x12,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x17,0x00,0x1d,0x00,0x57,0x40,0x2f,0x0b,0x10,0x0d,0x09,0x0a,0x0a,0x11,0x10,0x10,0x1f,0x13,0x04,0x19,0x7e,0x17,0x01,0x15,0x0f,0x12,0x13, +0x16,0x04,0x17,0x0e,0x0e,0x0c,0x1a,0x19,0x01,0x04,0x00,0x0d,0x00,0x17,0x17,0x18,0x0b,0x04,0x0d,0x05,0x02,0x11,0x15,0x12,0x09,0x02,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0xc6,0xed,0x32,0x32,0x11,0x33,0x2f,0x33,0x33,0x2f,0x33,0x33,0x11,0x39,0x31, +0x30,0x13,0x37,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x17,0x25,0x15,0x05,0x01,0x23,0x01,0x07,0x11,0x23,0x11,0x07,0x01,0x15,0x37,0x27,0x26,0x27,0x12,0xaa,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0x81,0x01,0xfb,0xfe,0x6a,0x01,0xac,0xea,0xfe,0x97,0xeb,0xa8,0xaa,0x01,0x52,0x89,0x5f,0x1e,0x08,0x01,0x7c, +0x3a,0x03,0xe4,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0x93,0xaf,0x96,0x8c,0xfe,0x1c,0x01,0xab,0x51,0xfe,0xa6,0x01,0x20,0x3a,0x01,0xdc,0xd2,0x2f,0x71,0x24,0x0e,0x00,0x00,0x02,0x00,0x26,0x00,0x00,0x03,0xf8,0x05,0xec,0x00,0x14,0x00,0x18,0x00,0x54,0x40,0x2e,0x12,0x11,0x15,0x0e,0x06,0x84,0x0b,0x09,0x07,0x14,0x10,0x11, +0x11,0x03,0x02,0x01,0x04,0x05,0x08,0x04,0x09,0x00,0x00,0x13,0x16,0x15,0x0b,0x04,0x0a,0x14,0x0a,0x09,0x09,0x17,0x12,0x0e,0x14,0x05,0x07,0x10,0x0f,0x0c,0x00,0x03,0x07,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0xce,0x33,0xe9, +0x32,0x32,0x11,0x39,0x31,0x30,0x01,0x05,0x01,0x23,0x01,0x07,0x15,0x23,0x35,0x07,0x35,0x37,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x17,0x25,0x05,0x37,0x27,0x23,0x03,0xea,0xfe,0xc2,0x01,0x4c,0xe6,0xfe,0xf7,0xbf,0xa4,0x80,0x80,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0x4d,0x01,0xa5,0xfd,0x60,0x5c,0x58,0x04,0x01,0xc5,0x6d,0xfe,0xa8, +0x01,0x20,0x42,0xde,0xa6,0x2c,0x8e,0x2c,0x04,0xb8,0xfc,0x3f,0x01,0xd5,0xfe,0x12,0x50,0x91,0xe7,0x20,0x60,0x00,0x00,0x03,0x00,0x12,0x00,0x00,0x05,0xea,0x05,0x9a,0x00,0x13,0x00,0x1c,0x00,0x26,0x00,0x58,0x40,0x31,0x0c,0x08,0x0a,0x0a,0x08,0x7e,0x25,0x07,0x07,0x28,0x18,0x04,0x11,0x7e,0x02,0x00,0x12,0x0c,0x25,0x26,0x0f,0x10, +0x13,0x06,0x00,0x0b,0x0b,0x06,0x09,0x01,0x0a,0x01,0x00,0x20,0x00,0x02,0x18,0x19,0x05,0x0a,0x14,0x08,0x03,0x0e,0x12,0x12,0x07,0x03,0x03,0x00,0x3f,0x33,0x3f,0x33,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xce,0x33,0xe9,0x32,0x32,0x12,0x39,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x31,0x30, +0x13,0x35,0x37,0x11,0x33,0x01,0x25,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x23,0x01,0x05,0x11,0x23,0x11,0x13,0x16,0x16,0x15,0x11,0x25,0x03,0x26,0x27,0x01,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x05,0x12,0xaa,0xda,0x01,0x90,0x01,0x72,0xa8,0xaa,0xaa,0xce,0xfe,0x6a,0xfe,0x88,0xa8,0xa0,0x04,0x04,0x01,0x26,0xfa,0x1b,0x13,0x03, +0x02,0x17,0x1c,0x07,0x04,0x05,0x05,0xfe,0xde,0x01,0x82,0x9a,0x3a,0x03,0x44,0xfd,0x8e,0x7e,0x01,0xf4,0xfe,0x45,0x3a,0x9a,0x3a,0xfc,0xbb,0x02,0x75,0x80,0xfe,0x0b,0x01,0xbc,0x03,0x15,0x17,0x61,0x4d,0xfe,0x83,0x64,0x01,0x84,0x2a,0x30,0xfc,0x64,0x23,0x30,0x0d,0x1f,0x68,0x4c,0x01,0x64,0x63,0x00,0x00,0x02,0x00,0x19,0x00,0x00, +0x04,0x86,0x04,0x18,0x00,0x15,0x00,0x1c,0x00,0x55,0x40,0x2e,0x17,0x0d,0x06,0x84,0x0b,0x09,0x07,0x14,0x02,0x00,0x00,0x02,0x84,0x18,0x03,0x0f,0x1a,0x95,0x01,0x04,0x05,0x03,0x09,0x00,0x00,0x14,0x18,0x17,0x0b,0x04,0x0a,0x15,0x0a,0x09,0x09,0x08,0x15,0x03,0x06,0x11,0x10,0x0d,0x0f,0x03,0x06,0x15,0x00,0x3f,0x33,0x3f,0x3f,0x12, +0x17,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0xed,0x32,0x01,0x2f,0x33,0xf9,0xca,0x2f,0x11,0x33,0x2f,0xce,0x33,0xe9,0x32,0x32,0x31,0x30,0x01,0x07,0x11,0x23,0x11,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x17,0x37,0x05,0x15,0x25,0x26,0x23,0x22,0x06,0x04,0x86,0x8e,0xa4, +0xfd,0xf6,0xa4,0x8d,0x8d,0xa4,0x04,0x74,0xdc,0x93,0xad,0x14,0x94,0xfc,0xc4,0x02,0x05,0x1d,0xcc,0x7a,0xa2,0x02,0x78,0x30,0xfd,0xb8,0x02,0x10,0xb4,0xfe,0xa4,0x01,0x23,0x30,0x8e,0x30,0x02,0x4f,0xaa,0xc2,0xa6,0x9e,0x32,0xbe,0x5e,0xb2,0xf2,0xb8,0x00,0x03,0x00,0x12,0x00,0x00,0x04,0xc0,0x05,0x9a,0x00,0x1d,0x00,0x24,0x00,0x2a, +0x00,0x65,0x40,0x35,0x0f,0x22,0x1c,0x15,0x14,0x09,0x09,0x14,0x14,0x2c,0x07,0x0c,0x27,0x23,0x26,0x1e,0x1b,0x7e,0x02,0x00,0x1c,0x0a,0x23,0x24,0x1d,0x04,0x00,0x09,0x09,0x07,0x27,0x26,0x02,0x04,0x01,0x08,0x01,0x00,0x0f,0x1e,0x91,0x08,0x00,0x1a,0x1a,0x03,0x15,0x1b,0x12,0x25,0x91,0x03,0x03,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39, +0x2f,0x39,0x39,0xed,0x39,0x11,0x33,0x11,0x12,0x17,0x39,0x33,0x11,0x12,0x17,0x39,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x2f,0x33,0xc1,0x32,0x11,0x33,0x2f,0x33,0x2f,0x11,0x33,0x12,0x39,0x39,0x31,0x30,0x13,0x35,0x37,0x11,0x21,0x32,0x16,0x17,0x37,0x15,0x07,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x17,0x01,0x23,0x03,0x26,0x26, +0x23,0x23,0x11,0x23,0x11,0x17,0x33,0x32,0x36,0x35,0x35,0x05,0x11,0x11,0x25,0x26,0x26,0x23,0x12,0xaa,0x01,0xac,0x84,0xcd,0x35,0xbc,0x91,0x03,0xa7,0x97,0x2f,0x4d,0x59,0x01,0x0d,0xc8,0xf0,0x47,0x7b,0x58,0x8a,0xa8,0xa8,0xe4,0x81,0xa3,0xfd,0xf8,0x01,0xdb,0x23,0x7b,0x57,0x02,0xf4,0x9a,0x3a,0x01,0xd2,0x5d,0x5f,0x40,0x9a,0x31, +0x1b,0x1c,0x90,0xcb,0x27,0x04,0x15,0x44,0x8e,0xfe,0x51,0x01,0x92,0x79,0x57,0xfd,0x9e,0x03,0x2e,0x34,0x97,0x7d,0x0a,0xb1,0x01,0x9b,0xfe,0xff,0xa1,0x2f,0x31,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0xbc,0x04,0x12,0x00,0x17,0x00,0x48,0x40,0x23,0x17,0x11,0x11,0x19,0x16,0x09,0x02,0x84,0x07,0x05,0x03,0x11,0x11,0x0b,0x13,0x0e, +0x10,0x04,0x01,0x05,0x00,0x00,0x07,0x16,0x06,0x17,0x06,0x05,0x17,0x05,0x03,0x08,0x0f,0x03,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0x3f,0xcd,0x32,0x32,0x2f,0x01,0x2f,0xc6,0x33,0xe9,0x32,0x32,0x11,0x39,0x2f,0x33,0x31,0x30,0x01,0x05,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x33, +0x15,0x33,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x25,0x02,0xa4,0xfe,0xa6,0xa4,0x83,0x83,0xa4,0x04,0x25,0x8f,0x58,0x3e,0x24,0x2c,0x50,0x69,0x8d,0x01,0x5a,0x02,0x20,0xa1,0xfe,0x81,0x01,0x33,0x3c,0x92,0x3c,0x02,0x3b,0xd3,0x6e,0x77,0x0e,0xaa,0x21,0xc5,0xa5,0xa1,0x00,0x00,0x01,0x00,0x45,0xff,0xe8,0x04,0x06, +0x05,0xb2,0x00,0x2a,0x00,0x5b,0x40,0x31,0x0f,0x7d,0x00,0x04,0x15,0x15,0x19,0x7d,0x26,0x04,0x26,0x0a,0x0a,0x26,0x04,0x03,0x2c,0x20,0x1f,0x20,0x29,0x16,0x2a,0x15,0x15,0x01,0x13,0x00,0x14,0x00,0x2a,0x26,0x19,0x2a,0x14,0x04,0x0f,0x06,0x07,0x23,0x91,0x1c,0x13,0x09,0x0a,0x0c,0x91,0x07,0x04,0x00,0x3f,0xed,0xcd,0x32,0x3f,0xed, +0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xc4,0x32,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xf9,0xc2,0x2f,0x10,0xc6,0xe9,0x31,0x30,0x13,0x25,0x26,0x26,0x35,0x34,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x25,0x15,0x05,0x16,0x16,0x15,0x14,0x04,0x23,0x22,0x26, +0x27,0x35,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x05,0x45,0x01,0x2b,0x86,0x6f,0x01,0x1b,0xd7,0xd3,0x62,0x7f,0xc7,0x8a,0xa7,0x54,0x8e,0x3f,0x01,0xba,0xfe,0xf0,0x7b,0x6d,0xfe,0xf2,0xf0,0x52,0xe2,0x33,0x40,0xe2,0x5f,0x9c,0x98,0x62,0xaf,0xfe,0x28,0x02,0x6f,0x66,0x4d,0xa4,0x6d,0xae,0xd1,0x33,0xbd,0x58,0x74,0x64,0x4d, +0x68,0x4d,0x1f,0x97,0x96,0x5d,0x4f,0xa8,0x64,0xba,0xc8,0x2f,0x23,0xc6,0x39,0x48,0x72,0x6d,0x4a,0x79,0x59,0xa1,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x2b,0x04,0x18,0x00,0x27,0x00,0x63,0x40,0x35,0x26,0x01,0x04,0x22,0x83,0x13,0x17,0x04,0x83,0x0e,0x27,0x1d,0x14,0x11,0x0e,0x17,0x0e,0x1d,0x1d,0x0e,0x17,0x03,0x29,0x09,0x1d,0x1f, +0x95,0x11,0x01,0x12,0x00,0x00,0x14,0x26,0x13,0x27,0x13,0x12,0x0e,0x04,0x12,0x27,0x17,0x22,0x06,0x07,0x1a,0x10,0x0a,0x0c,0x95,0x07,0x16,0x00,0x3f,0xfd,0xc6,0x3f,0x12,0x17,0x39,0x11,0x33,0x11,0x12,0x39,0x39,0x33,0x11,0x12,0x39,0x39,0xfd,0xc6,0x01,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x39,0x10,0xc6,0x10,0xe9,0x10, +0xc6,0xe9,0x11,0x39,0x39,0x31,0x30,0x01,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x26,0x27,0x05,0x35,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x25,0x03,0x2b,0x9e,0x3f,0x43,0xe2,0xb3,0x9f,0x73,0x85,0xa2,0xd8,0x41,0x68,0xfe,0xa2,0xa7, +0x53,0x4a,0xe2,0xa6,0x86,0x68,0x71,0x93,0x5b,0x6f,0x41,0x39,0x51,0x01,0x4e,0x02,0x2a,0x37,0x27,0x6a,0x50,0x89,0xa1,0x3d,0xb0,0x63,0x90,0x33,0x4d,0x2a,0x78,0x8e,0x39,0x2d,0x74,0x54,0x84,0xa4,0x2e,0xa6,0x4a,0x50,0x40,0x3b,0x45,0x18,0x21,0x73,0x00,0x01,0xff,0xac,0x00,0x00,0x05,0x44,0x05,0x9a,0x00,0x17,0x00,0x39,0x40,0x1e, +0x17,0x7e,0x14,0x00,0x00,0x04,0x19,0x09,0x7e,0x0e,0x13,0x03,0x7e,0x04,0x15,0x03,0x02,0x91,0x13,0x0b,0x0b,0x04,0x06,0x91,0x11,0x03,0x04,0x12,0x00,0x12,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0x2f,0xed,0x3f,0x01,0x2f,0xed,0x32,0xd4,0xe9,0x11,0x12,0x39,0x2f,0x33,0xe9,0x31,0x30,0x21,0x11,0x21,0x11,0x23,0x11,0x23,0x22,0x06, +0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x21,0x11,0x33,0x11,0x04,0x9c,0xfd,0x1a,0xa8,0x18,0x51,0x59,0x14,0x9e,0x16,0xc8,0x9a,0xa8,0x02,0xe6,0xa8,0x02,0x8e,0xfd,0x72,0x05,0x02,0x5c,0x4e,0x36,0x34,0x36,0x44,0x88,0xaa,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x00,0x02,0x00,0x19,0x02,0x9a,0x03,0x4b,0x05,0x9a,0x00,0x13, +0x00,0x17,0x00,0x5d,0xb3,0x0a,0x0a,0x08,0x0c,0xb8,0x01,0x0c,0xb7,0x14,0x05,0x0d,0x0d,0x19,0x17,0x04,0x10,0xb8,0x01,0x0c,0xb3,0x13,0x01,0x11,0x0f,0xb8,0x01,0x0e,0x40,0x0a,0x30,0x17,0x40,0x17,0x02,0x17,0x17,0x00,0x0d,0x11,0xb8,0x01,0x0a,0xb2,0x16,0x0b,0x13,0xb8,0x01,0x0e,0xb4,0x08,0x04,0x00,0x06,0x02,0xb8,0x01,0x06,0x00, +0x3f,0x33,0xde,0x32,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x5d,0xed,0x01,0x2f,0x33,0xce,0xe1,0x32,0x32,0x12,0x39,0x2f,0x33,0x33,0xf1,0x32,0xca,0x2f,0x31,0x30,0x13,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x23,0x05,0x35,0x21,0x15,0x19,0x62,0x83,0x01,0x68,0x84,0x61, +0x61,0x84,0xfe,0x98,0x83,0x62,0x02,0x4d,0xfe,0x98,0x05,0x2b,0x6f,0x6f,0x6f,0x6f,0x70,0xfd,0xdf,0x01,0x4e,0xfe,0xb2,0x02,0x21,0x63,0x63,0x63,0x00,0x03,0x00,0x3e,0x02,0x89,0x03,0xf6,0x04,0xcf,0x00,0x1f,0x00,0x2b,0x00,0x30,0x00,0x7a,0xb3,0x15,0x02,0x30,0x0b,0xb8,0x01,0x0c,0xb2,0x22,0x0f,0x0a,0xb8,0x01,0x0c,0xb6,0x2c,0x22, +0x2c,0x22,0x2c,0x32,0x28,0xb8,0x01,0x0c,0xb2,0x1c,0x02,0x25,0xbb,0x01,0x0d,0x00,0x1f,0x00,0x0b,0x01,0x0d,0x40,0x0e,0x0c,0x30,0x1c,0x30,0x2c,0x30,0x03,0x30,0x0f,0x30,0x0f,0x1f,0x0d,0x2e,0x41,0x0d,0x01,0x0d,0x00,0x06,0x00,0x1f,0x01,0x09,0x00,0x15,0x00,0x2b,0x01,0x0d,0x00,0x19,0x00,0x0d,0x01,0x0d,0x00,0x12,0x00,0x19,0x01, +0x0b,0x00,0x3f,0xd4,0xed,0x10,0xed,0x32,0x3f,0xd4,0xed,0x11,0x12,0x39,0x39,0x2f,0x2f,0x5d,0xed,0x10,0xed,0x32,0x01,0x2f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xfd,0xc6,0x10,0xed,0x32,0x39,0x39,0x31,0x30,0x00,0x16,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x06, +0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x12,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x25,0x26,0x23,0x22,0x07,0x01,0x9f,0x71,0x2b,0x04,0x23,0x6a,0x37,0x71,0x82,0xfe,0x87,0x0b,0x99,0x5b,0x4f,0x48,0x78,0x3b,0x6c,0x29,0x04,0x26,0x71,0x48,0x7f,0x9b,0xa0,0x86,0x43,0x57,0x57,0x49,0x49,0x57,0x58,0x48,0x02,0x1d, +0x02,0x78,0x78,0x0c,0x04,0xcf,0x2c,0x3c,0x36,0x32,0x92,0x7b,0x43,0x8f,0x35,0x6f,0x2d,0x2a,0x3c,0x30,0x36,0x9d,0x80,0x85,0xa4,0xfe,0x25,0x61,0x57,0x58,0x60,0x61,0x57,0x57,0x61,0xee,0x8a,0x8a,0x00,0x01,0x00,0x90,0xff,0xe8,0x06,0x3e,0x04,0x00,0x00,0x1f,0x00,0x3b,0x40,0x1f,0x1b,0x0b,0x84,0x08,0x08,0x1f,0x14,0x12,0x84,0x11, +0x11,0x21,0x02,0x84,0x1f,0x1b,0x05,0x95,0x1d,0x16,0x15,0x0d,0x95,0x18,0x16,0x14,0x15,0x11,0x01,0x09,0x0f,0x00,0x3f,0x33,0x33,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x13,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x10,0x33,0x32,0x36,0x35, +0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x26,0x27,0x06,0x23,0x20,0x11,0x90,0xa4,0x67,0x7e,0x68,0x94,0xa4,0xe9,0x6c,0x8c,0xa4,0xa4,0x04,0x6e,0xd0,0x6b,0x9a,0x1d,0x72,0xe2,0xfe,0xae,0x04,0x00,0xfd,0xb4,0xa8,0x9a,0xc1,0x85,0x02,0x48,0xfd,0xa0,0xfe,0xd2,0xb4,0x92,0x02,0x48,0xfc,0x00,0xa2,0xba,0x75,0x5f,0xd4,0x01,0xa1, +0x00,0x01,0x00,0x54,0x00,0x00,0x03,0x2c,0x05,0x9a,0x00,0x09,0x00,0x29,0x40,0x14,0x02,0x7e,0x03,0x06,0x03,0x06,0x03,0x0b,0x09,0x04,0x91,0x07,0x07,0x00,0x03,0x12,0x08,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x01,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x31,0x30,0x13,0x21,0x11,0x23,0x11,0x21,0x35,0x21,0x11, +0x21,0x54,0x02,0xd8,0xa8,0xfd,0xfa,0x02,0x06,0xfd,0xd0,0x05,0x9a,0xfa,0x66,0x02,0x7b,0x97,0x01,0xf0,0x00,0x02,0x00,0x52,0x00,0x00,0x03,0xbf,0x05,0x9a,0x00,0x0a,0x00,0x12,0x00,0x28,0x40,0x14,0x11,0x08,0x7e,0x09,0x09,0x14,0x0d,0x7d,0x03,0x0a,0x91,0x11,0x11,0x06,0x09,0x12,0x12,0x91,0x06,0x03,0x00,0x3f,0xed,0x3f,0x12,0x39, +0x2f,0xed,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x33,0x31,0x30,0x01,0x22,0x00,0x35,0x34,0x36,0x33,0x21,0x11,0x23,0x11,0x03,0x20,0x11,0x14,0x16,0x33,0x33,0x11,0x02,0x5a,0xf0,0xfe,0xe8,0xff,0xe4,0x01,0x8a,0xa8,0xc5,0xfe,0xb0,0xb6,0xaf,0xb0,0x02,0x1e,0x01,0x05,0xcb,0xcd,0xdf,0xfa,0x66,0x02,0x1e,0x02,0xe4,0xfe,0xe4,0x92,0x9e, +0x02,0x4c,0x00,0x01,0x00,0xbd,0x00,0x00,0x06,0x73,0x05,0x9a,0x00,0x1e,0x00,0x30,0x40,0x18,0x15,0x13,0x7e,0x05,0x00,0x0d,0x12,0x12,0x20,0x1d,0x01,0x7e,0x00,0x0d,0x06,0x18,0x03,0x15,0x1d,0x12,0x12,0x09,0x00,0x03,0x00,0x3f,0x32,0x32,0x3f,0x33,0x17,0x39,0x01,0x2f,0xe9,0x32,0x12,0x39,0x2f,0x39,0x12,0x39,0xe9,0x33,0x31,0x30, +0x13,0x33,0x11,0x14,0x06,0x07,0x33,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0xbd,0xa7,0x07,0x07,0x04,0x18,0x13,0x01,0xea,0x52,0x01,0xe9,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0xfe,0x48,0x33,0x0f,0x06,0x16,0x22,0x0d,0xfe,0x3f,0xd2,0x05,0x9a,0xfc, +0x3e,0x39,0x8b,0x53,0x63,0x28,0x04,0x4e,0xfb,0xba,0x2e,0x65,0x2b,0x8b,0x63,0x03,0xc0,0xfa,0x66,0x03,0xe8,0x74,0x38,0x3c,0x57,0x1d,0xfc,0x1c,0x00,0x01,0x00,0xbc,0xfe,0x29,0x01,0x64,0x05,0x9a,0x00,0x03,0x00,0x17,0x40,0x0a,0x00,0x7e,0x01,0x01,0x04,0x05,0x02,0x03,0x01,0x1b,0x00,0x3f,0x3f,0x11,0x12,0x01,0x39,0x2f,0xe9,0x31, +0x30,0x01,0x23,0x11,0x33,0x01,0x64,0xa8,0xa8,0xfe,0x29,0x07,0x71,0x00,0x00,0x01,0x00,0x1a,0x00,0x00,0x09,0x12,0x05,0x9a,0x00,0x27,0x00,0x48,0x40,0x25,0x0c,0x0b,0x04,0x00,0x0f,0x15,0x14,0x24,0x1f,0x1e,0x18,0x18,0x24,0x0f,0x04,0x04,0x0a,0x1d,0x1d,0x29,0x27,0x10,0x0a,0x0f,0x18,0x04,0x23,0x04,0x09,0x1c,0x14,0x0b,0x03,0x1f, +0x00,0x09,0x12,0x00,0x3f,0x33,0x33,0x3f,0x33,0x33,0x12,0x17,0x39,0x01,0x2f,0x2f,0x33,0x11,0x33,0x2f,0x12,0x17,0x39,0x11,0x33,0x33,0x11,0x33,0x33,0x11,0x33,0x11,0x33,0x33,0x31,0x30,0x21,0x01,0x27,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x16,0x17,0x33,0x36,0x37, +0x01,0x33,0x01,0x23,0x01,0x26,0x26,0x27,0x23,0x06,0x07,0x01,0x03,0x70,0xfe,0xcc,0x13,0x0a,0x03,0x04,0x03,0x12,0x0a,0xfe,0xd7,0xb6,0x01,0xb2,0xb9,0x01,0x31,0x13,0x05,0x05,0x02,0x10,0x0d,0x01,0x3d,0xa1,0x01,0x30,0x10,0x08,0x04,0x04,0x17,0x01,0x25,0xb6,0xfe,0x6b,0xc5,0xfe,0xd9,0x0a,0x0b,0x02,0x04,0x06,0x14,0xfe,0xd7,0x04, +0x1a,0x46,0x23,0x25,0x25,0x46,0x23,0xfb,0xe6,0x05,0x9a,0xfb,0xb4,0x45,0x4b,0x1a,0x48,0x2e,0x04,0x4c,0xfb,0xac,0x39,0x4d,0x34,0x56,0x04,0x50,0xfa,0x66,0x04,0x18,0x22,0x48,0x28,0x47,0x49,0xfb,0xe6,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x06,0xd7,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00, +0x01,0x07,0x02,0x3a,0x04,0x37,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x11,0x2c,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xeb,0x06,0xd4,0x05,0xb0,0x00,0x27,0x0c,0xea,0x04,0x2e,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x06,0x00,0xf0,0x00,0x00,0x00,0x09,0xb3,0x01,0x00,0x1f,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff, +0x00,0x4a,0xff,0xec,0x09,0x19,0x05,0xb0,0x00,0x26,0x00,0xf0,0xfa,0x00,0x00,0x27,0x00,0xf0,0x04,0x00,0xfd,0xb9,0x00,0x27,0x0c,0xe1,0x06,0x74,0x00,0x00,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x0e,0xb6,0x03,0x02,0x1a,0x2d,0x01,0x0d,0x2c,0x00,0x3f,0x35,0x3f,0x35,0x35,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xa3,0x05,0xb0, +0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x02,0x39,0x04,0x19,0xfd,0xb9,0x01,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0x00,0x07,0xb2,0x01,0x30,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x8d,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf1,0x25,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9, +0x00,0x07,0xb2,0x02,0x47,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x81,0xff,0xec,0x06,0xe5,0x05,0xae,0x00,0x26,0x00,0xf2,0x00,0x00,0x00,0x27,0x00,0xbc,0x03,0x01,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x5b,0xfd,0xb9,0x00,0x07,0xb2,0x02,0x48,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x2f,0xff,0xec,0x06,0xa3,0x05,0x9a,0x00,0x26, +0x02,0x38,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x02,0x39,0x04,0x19,0xfd,0xb9,0x00,0x07,0xb2,0x03,0x39,0x2d,0x00,0x3f,0x35,0x00,0xff,0xff,0x00,0x50,0xff,0xec,0x06,0xb3,0x05,0xb0,0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xbf,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x0d,0x00,0x00,0x00,0x09, +0xb3,0x03,0x02,0x2b,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x7b,0xff,0xec,0x06,0xed,0x05,0x9e,0x00,0x26,0x02,0x39,0x00,0x00,0x00,0x27,0x00,0xbc,0x02,0xf9,0x00,0x00,0x01,0x07,0x0c,0xe7,0x04,0x47,0x00,0x00,0x00,0x09,0xb3,0x03,0x02,0x43,0x2d,0x00,0x3f,0x35,0x35,0x00,0xff,0xff,0x00,0x50,0x00,0x00,0x05,0x71,0x05,0xb0, +0x00,0x26,0x00,0xf0,0x00,0x00,0x00,0x07,0x00,0xbc,0x02,0xbf,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x03,0xa4,0x05,0x9a,0x02,0x06,0x00,0x2f,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x04,0x8c,0x05,0xb2,0x02,0x06,0x00,0x26,0x00,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x02,0x06,0x00,0x27,0x00,0x00,0xff,0xff, +0x00,0xbc,0x00,0x00,0x06,0x72,0x05,0x9a,0x02,0x06,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x05,0x12,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x07,0x00,0x4c,0x03,0xac,0x00,0x00,0xff,0xff,0x00,0x1a,0x00,0x00,0x07,0x02,0x05,0xd9,0x00,0x26,0x00,0x5b,0x00,0x00,0x00,0x27,0x00,0x4c,0x03,0xac,0x00,0x00,0x00,0x07, +0x00,0x4c,0x05,0x9c,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x01,0x4a,0x05,0xec,0x02,0x06,0x00,0x4f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0x62,0x04,0x18,0x02,0x06,0x00,0x46,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x04,0x10,0x05,0xec,0x02,0x06,0x00,0x47,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x06,0x54,0x04,0x18, +0x02,0x06,0x00,0x50,0x00,0x00,0x00,0x03,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x2d,0x40,0x17,0x11,0x7e,0x22,0x22,0x05,0x0a,0x7d,0x17,0x17,0x25,0x1c,0x7d,0x05,0x10,0x23,0x91,0x07,0x03,0x11,0x22,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12, +0x39,0x2f,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x11,0x03,0x64,0xaa,0xfe,0xe4,0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x66,0x68,0x8b,0xdd,0x9a,0x52,0xfd, +0xb6,0xfe,0x74,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfb,0x96,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x04,0x6a,0x00,0x03,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x2b,0x00,0x41,0x40,0x22,0x11,0x7e, +0x24,0x24,0x00,0x04,0x7d,0x1e,0x1e,0x2d,0x2b,0x0b,0x18,0x7e,0x00,0x2a,0x92,0x0b,0x2b,0x92,0x17,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x01,0x2f,0xe9,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x31,0x30,0x33,0x11,0x21, +0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xd4,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xd6,0x8b,0xdd,0x9a,0x52,0xfd, +0xb6,0x83,0x78,0x89,0x24,0x44,0x60,0x3c,0x5a,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x4c,0x93,0xd8,0x8c,0x02,0x27,0xfc,0xba,0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x05,0x00,0x5e,0x00,0x00,0x07,0xde,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x48, +0x00,0x53,0x00,0x6b,0x40,0x39,0x45,0x7e,0x20,0x53,0x30,0x3d,0x7e,0x19,0x3e,0x26,0x19,0x36,0x7e,0x4c,0x20,0x19,0x4c,0x4c,0x19,0x20,0x03,0x05,0x0a,0x7d,0x2c,0x2c,0x55,0x13,0x7d,0x05,0x52,0x3f,0x92,0x26,0x30,0x26,0x53,0x3e,0x92,0x1a,0x3c,0x1a,0x26,0x1a,0x26,0x1a,0x00,0x2f,0x10,0x91,0x07,0x03,0x3d,0x19,0x91,0x00,0x12,0x00, +0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x01,0x2f,0xe9,0x12,0x39,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe9,0x11,0x33,0x33,0x10,0xe9,0x32,0x32,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x01, +0x23,0x20,0x11,0x14,0x1e,0x02,0x33,0x33,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x01,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x21,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x03,0x64,0xaa,0xfe,0xe4, +0xce,0x72,0x02,0xf6,0x01,0x94,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0xfe,0xf2,0x72,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0x68,0x5c,0x65,0xa0,0x6f,0x3a,0x3b,0x6f,0xa1,0x65,0x5a,0x01,0x10,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x72,0x5a,0x65,0xa1,0x6f,0x3b,0x3a,0x6f,0xa0,0x65,0x5c,0xa8,0x5a,0x3c,0x60,0x44,0x24,0x89,0x78,0x01,0x62,0x78,0x89, +0x24,0x44,0x60,0x3c,0x5a,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x9d,0x38,0x6b,0x9d,0x65,0x65,0x95,0x61,0x30,0xfc,0x33,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x9d,0x30,0x61,0x95,0x65,0x65,0x9d,0x6b,0x38,0x9d,0x01,0x24,0x02,0x22,0x1a,0x3d,0x64,0x49,0x93,0x8b, +0x8b,0x93,0x49,0x64,0x3d,0x1a,0xfd,0xde,0x00,0x01,0x00,0x68,0xff,0xe8,0x04,0x96,0x05,0xb2,0x00,0x19,0x00,0x2f,0x40,0x18,0x06,0x7d,0x13,0x13,0x1b,0x0d,0x19,0x0c,0x2f,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x13,0x00,0x19,0x19,0x17,0x91,0x02,0x04,0x00,0x3f,0xed,0x32,0x2f,0x33,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0x33,0x12, +0x39,0x2f,0xe9,0x31,0x30,0x13,0x36,0x33,0x20,0x17,0x16,0x11,0x10,0x07,0x06,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x11,0x10,0x27,0x26,0x23,0x22,0x07,0x68,0x9f,0xed,0x01,0x31,0xb9,0xb8,0xcf,0xcf,0xfe,0xc2,0xcb,0x87,0x9b,0xb9,0xf6,0x9b,0x99,0x8f,0x90,0xe9,0xd9,0x9d,0x05,0x5e,0x54,0xc5,0xc4,0xfe,0xbf,0xfe,0xa7,0xd3, +0xd4,0x3b,0xb3,0x56,0xa5,0xa5,0x01,0x14,0x01,0x05,0x9d,0x9b,0x60,0x00,0x00,0x01,0x00,0x5e,0xfe,0x7f,0x04,0x8c,0x05,0xb2,0x00,0x20,0x00,0x38,0x40,0x1e,0x1c,0x7f,0x1f,0x0d,0x1f,0x0d,0x22,0x14,0x7d,0x05,0x0c,0x30,0x0d,0x01,0x0d,0x0d,0x0f,0x91,0x0a,0x04,0x20,0x1c,0x01,0x1c,0x1c,0x19,0x91,0x1e,0x00,0x13,0x00,0x3f,0xce,0xed, +0x32,0x2f,0x5d,0x3f,0xed,0x32,0x2f,0x5d,0x33,0x01,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0xe9,0x31,0x30,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x23,0x11,0x06,0x03,0x00,0xa1,0xfb,0xac,0x5a,0x6b,0xc2,0x01,0x0d,0xa2,0xcb,0x87, +0x9b,0xb9,0x87,0xcf,0x8c,0x48,0x47,0x87,0xc0,0x7a,0x6b,0xba,0x51,0x9b,0x6e,0x18,0x70,0xc2,0x01,0x04,0x94,0xa6,0x01,0x1a,0xcd,0x73,0x3b,0xb3,0x56,0x61,0xa6,0xdc,0x7b,0x7a,0xd1,0x9a,0x58,0x2f,0x32,0xfd,0x9f,0x01,0x83,0x1a,0x00,0x01,0x01,0x05,0xff,0xcc,0x05,0x57,0x05,0xc6,0x00,0x08,0x00,0x24,0x40,0x0f,0x03,0x08,0x01,0x07, +0x07,0x0a,0x05,0x07,0x00,0x06,0x06,0x03,0x01,0x05,0x03,0x00,0x2f,0xdd,0xc4,0x12,0x39,0x11,0x33,0x2f,0x01,0x2f,0x12,0x39,0x2f,0x39,0xc9,0x39,0x31,0x30,0x01,0x01,0x11,0x01,0x01,0x11,0x01,0x11,0x21,0x03,0xb1,0x01,0xa6,0xfd,0xd7,0xfd,0xd7,0x01,0xa8,0x01,0x04,0x01,0x66,0x01,0x70,0xfe,0xd7,0xfe,0x1f,0x01,0xe1,0x01,0x29,0xfe, +0x90,0x04,0x60,0x00,0x00,0x04,0x00,0xbc,0x00,0x00,0x05,0x3e,0x05,0x9a,0x00,0x09,0x00,0x20,0x00,0x36,0x00,0x3f,0x00,0x65,0x40,0x18,0x2f,0x7f,0x3a,0x11,0x7e,0x26,0x3a,0x26,0x3a,0x26,0x00,0x04,0x7d,0x1e,0x1e,0x41,0x3f,0x36,0x2b,0x0b,0x18,0x7e,0x00,0x3e,0xb8,0x01,0x05,0xb4,0x2b,0x2a,0x92,0x0b,0x3f,0xb8,0x01,0x05,0x40,0x14, +0x35,0x36,0x92,0x17,0x40,0x0b,0x01,0x0b,0x17,0x0b,0x17,0x00,0x0a,0x91,0x01,0x03,0x18,0x91,0x00,0x12,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xfd,0xd6,0xed,0x10,0xfd,0xd6,0xed,0x01,0x2f,0xe9,0x32,0x32,0x32,0x32,0x12,0x39,0x2f,0xe9,0x12,0x39,0x39,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x31,0x30,0x33,0x11,0x21, +0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x03,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x33,0x32,0x3e,0x02,0x35,0x10,0x21,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0xbc,0x01,0x8c,0x02,0xf6,0x72,0xce,0xfe, +0xe4,0xaa,0xd4,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xd6,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0x54,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0x05,0x9a,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x05,0x02,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x4c, +0x93,0xd8,0x8c,0x02,0x27,0xfc,0x6e,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x00,0x07,0x00,0x5e,0x00,0x00,0x08,0xba,0x05,0x9a,0x00,0x0f,0x00,0x26,0x00,0x3d,0x00,0x53,0x00,0x69,0x00,0x72,0x00,0x7b,0x00,0x95,0x40,0x2c,0x4e,0x7e,0x2c,0x78,0x7f,0x45,0x72,0x69, +0x5e,0x19,0x26,0x7e,0x3c,0x73,0x49,0x3e,0x32,0x3c,0x62,0x7f,0x6d,0x1f,0x7e,0x59,0x2c,0x45,0x3c,0x6d,0x59,0x59,0x6d,0x3c,0x45,0x2c,0x05,0x05,0x0a,0x7d,0x15,0x36,0x7d,0x05,0x71,0x74,0xb8,0x01,0x05,0x40,0x13,0x5e,0x49,0x5d,0x4a,0x92,0x19,0x20,0x32,0x30,0x32,0x02,0x32,0x18,0x33,0x91,0x07,0x03,0x72,0x73,0xb8,0x01,0x05,0x40, +0x0f,0x68,0x3f,0x69,0x3e,0x92,0x25,0x2f,0x3d,0x01,0x3d,0x26,0x3c,0x91,0x00,0x12,0x00,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x3f,0xfd,0x32,0xd6,0x5d,0x32,0xfd,0x32,0xd6,0x32,0xed,0x32,0x01,0x2f,0xe9,0x2f,0xe9,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x10,0xe9,0x10,0xe9,0x11,0x33,0x33,0x33,0x33,0x10, +0xe9,0x32,0x32,0x32,0x32,0x10,0xe9,0x10,0xe9,0x31,0x30,0x21,0x22,0x24,0x26,0x02,0x35,0x10,0x21,0x21,0x20,0x11,0x14,0x02,0x06,0x04,0x23,0x37,0x32,0x3e,0x02,0x35,0x10,0x21,0x23,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x25,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x20,0x11,0x14,0x1e,0x02, +0x33,0x33,0x3d,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x03,0x64,0xaa,0xfe, +0xe4,0xce,0x72,0x02,0xf6,0x02,0x70,0x02,0xf6,0x72,0xce,0xfe,0xe4,0xaa,0x02,0x8b,0xdd,0x9a,0x52,0xfd,0xb6,0xe0,0x8c,0x7d,0xc6,0x89,0x48,0x48,0x89,0xc5,0x7c,0x8e,0xfe,0xca,0x7d,0xc4,0x89,0x48,0x48,0x89,0xc6,0x7d,0x8c,0xe0,0xfd,0xb6,0x52,0x9a,0xdd,0x8b,0xd6,0x3e,0x48,0x77,0x56,0x30,0xa8,0x9f,0x3c,0x8c,0xbf,0xb1,0x2a,0x5a, +0x8b,0x61,0x01,0xc0,0x61,0x8b,0x5a,0x2a,0xb1,0xbf,0x8c,0x3c,0x9f,0xa8,0x30,0x56,0x77,0x48,0x3e,0x3c,0x5b,0x57,0x56,0x5c,0x3c,0xa8,0x3c,0x5c,0x56,0x56,0x5c,0x65,0xbf,0x01,0x10,0xab,0x02,0xbb,0xfd,0x45,0xab,0xfe,0xf0,0xbf,0x65,0x98,0x4c,0x93,0xd8,0x8c,0x02,0x27,0x53,0x35,0x71,0xb2,0x7c,0x73,0xb5,0x7e,0x42,0x5b,0x5b,0x42, +0x7e,0xb5,0x73,0x7c,0xb2,0x71,0x35,0x53,0xfd,0xd9,0x8c,0xd8,0x93,0x4c,0x5b,0x7d,0x4b,0x1e,0x44,0x6e,0x50,0x90,0x7c,0x4b,0xaf,0xa8,0x4a,0x83,0x64,0x3a,0x3a,0x64,0x83,0x4a,0xa8,0xaf,0x4b,0x7c,0x90,0x50,0x6e,0x44,0x1e,0x4b,0xba,0x52,0x5f,0x55,0x48,0xfe,0xb2,0x01,0x4e,0x48,0x55,0x5f,0x52,0x00,0xff,0xff,0x00,0x48,0xff,0xec, +0x06,0xd9,0x05,0xae,0x00,0x27,0x00,0xbc,0x03,0x03,0x00,0x00,0x00,0x27,0x00,0xf2,0x04,0x4b,0xfd,0xb9,0x01,0x06,0x08,0x8d,0x00,0x00,0x00,0x07,0xb2,0x01,0x23,0x2d,0x00,0x3f,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0x46,0x04,0x27,0x01,0xb6,0x00,0x03,0x00,0x0e,0xb4,0x01,0x00,0x01,0x52,0x02,0x00,0x2f,0xed,0x01,0x2f,0x2f,0x31,0x30, +0x01,0x21,0x35,0x21,0x04,0x27,0xfb,0xd9,0x04,0x27,0x01,0x46,0x70,0x00,0x00,0x02,0x00,0xab,0xfe,0x0a,0x07,0x59,0x03,0x0f,0x00,0x2e,0x00,0x35,0x00,0x00,0x01,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03, +0x33,0x32,0x3e,0x02,0x35,0x11,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x06,0x9f,0x0c,0x27,0x49,0x3e,0x16,0x61,0x70,0x20,0x04,0x2c,0x80,0x9d,0xb4,0x60,0x88,0xe1,0xb5,0x88,0x30,0x40,0x30,0x12,0x0b,0x9a,0x09,0x11,0x1f,0x2f,0x1d,0x5c,0x92,0xd1,0x93,0x80,0xc0,0x7f,0x3f,0xfd,0x6c,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x03,0x0f,0xfe,0x89, +0x43,0x60,0x3e,0x1e,0xa7,0x3a,0x40,0x2f,0x35,0x19,0x05,0x04,0x15,0x2c,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xac,0x03,0x0f,0x00,0x1f,0x00,0x26,0x00,0x00,0x01,0x14, +0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xa9,0xec,0x7d,0xab, +0xa8,0x79,0xe6,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfa,0xfb,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x02,0x00,0xab,0xfe,0x0a,0x06,0x9f,0x03,0x0f,0x00,0x25,0x00,0x2c,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35, +0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x01,0x62,0x09,0x11,0x1e,0x30,0x1d,0x5c,0x91,0xd2,0x93,0x80,0xc0,0x7f,0x3f,0x9c,0x33,0x5d,0x81,0x9a,0xaf,0x5d,0x86,0xde,0xb3,0x87,0x30,0x3f,0x30,0x12,0x0b,0x02,0xa7,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x02, +0x5f,0x2b,0x65,0x36,0x3c,0x63,0x23,0x15,0x1b,0x0f,0x05,0x0a,0x29,0x53,0x48,0x01,0xae,0xfe,0x4b,0x5a,0x7c,0x52,0x2d,0x16,0x05,0x03,0x15,0x2d,0x29,0x37,0x98,0x58,0x3d,0x70,0x33,0xfb,0xab,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x00,0x02,0xff,0xba,0xfe,0x0a,0x02,0xa6,0x03,0x0f,0x00,0x16,0x00,0x1d,0x00,0x00,0x37,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x03,0x33,0x17,0x37,0x33,0x03,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x49,0xec,0x7d,0xab,0xa8,0x79,0xe6,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20, +0x20,0x33,0xfd,0x71,0x01,0x60,0xff,0xff,0xfe,0xa0,0x00,0x04,0x00,0x7e,0xfd,0xff,0x04,0x41,0x04,0xb2,0x00,0x31,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x00,0x01,0x06,0x04,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36, +0x36,0x33,0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0xd8,0xfe,0xde,0xaf,0x49,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31,0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe, +0xf9,0xb9,0xb9,0xfe,0xe9,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x39,0x7e,0x8a,0x98,0x52,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19,0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfd,0x0e,0xb5,0x03,0x7e,0xb5,0xb5,0xb5,0x00,0x04, +0x00,0x7e,0xfd,0xff,0x04,0xad,0x04,0xb2,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x01,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33, +0x32,0x1e,0x04,0x17,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x0c,0x22,0x40,0x1e,0x05,0x26,0x46,0x69,0x47,0x18,0x63,0x8f,0x5f,0x31,0x05,0x8d,0xc0,0x75,0x32,0x2e,0x64,0x9d,0x70,0x61,0xc3,0x64,0x6d,0xbd,0x63,0x98,0xd7,0x88,0x3f,0x19,0x3d,0x64,0x97,0xcd,0x87,0x32,0x4d,0x51,0x63,0x49,0x4b,0x80,0x31, +0x37,0x85,0x4e,0x48,0x6d,0x5d,0x53,0x5d,0x6d,0x48,0xfe,0xd4,0xb9,0xb9,0xf2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x02,0x01,0x09,0x12,0x09,0x60,0x7e,0x49,0x1d,0xa7,0x3f,0x75,0xa6,0x67,0x33,0x6e,0x77,0x80,0x45,0x42,0x74,0x56,0x31,0x26,0x23,0x9a,0x26,0x23,0x48,0x7b,0xa3,0x5c,0x38,0x75,0x76,0x74,0x6d,0x63,0x2a,0x08,0x10,0x20,0x19, +0x0f,0x15,0x0f,0x9d,0x12,0x17,0x16,0x21,0x27,0x22,0x17,0x01,0xfc,0xe6,0xb5,0x03,0xa6,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0x7c,0x04,0xb2,0x00,0x28,0x00,0x2c,0x00,0x30,0x00,0x34,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32, +0x1e,0x04,0x17,0x07,0x0e,0x05,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39,0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x2b,0x73,0x92,0xb1,0xd0,0xf1,0x88,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42, +0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x0a,0x42,0x59,0x62,0x53,0x36,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x04,0xad,0x04,0xb2,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x15,0x22, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x01,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x23,0x23,0x23,0x23,0x3b,0x7b,0xe0,0xcf,0xbf,0x5a,0x39, +0x60,0x68,0x7c,0x57,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x14,0x35,0x5e,0x4a,0x14,0x62,0x7d,0x4a,0x1e,0x02,0x48,0xab,0xc8,0xe3,0x80,0x02,0x81,0xb9,0xb9,0xc3,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x37,0x59,0x70,0x39,0x05,0x1b,0x35,0x2b,0x1b,0x14,0x10, +0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2b,0x3b,0x25,0x10,0xa7,0x29,0x46,0x5d,0x35,0x2b,0x5b,0x4b,0x30,0xfe,0xb4,0xb5,0x04,0xa2,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x05,0xf5,0x05,0xec,0x00,0x20,0x00,0x34,0x00,0x38,0x00,0x3c,0x00,0x00,0x01,0x33,0x11,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x04,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x55,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x5a,0x79,0xae,0x70,0x36,0x2d,0x52,0x71,0x88,0x9a,0x52,0xb7,0xfe,0xf5,0xc6,0x92, +0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x02,0x52,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x05,0xec,0xfc,0x1d,0x01,0x43,0x7a,0x5d,0x36,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x55,0x2f,0x16,0x05,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a, +0x66,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0xff,0xba,0xff,0xed,0x05,0xf5,0x05,0xec,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x36, +0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x79,0xae,0x70,0x36,0x2d,0x51,0x71,0x88,0x9a,0x52,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23,0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4, +0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x83,0x75,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4f,0x88,0xb5,0x66,0x5d,0x80,0x54,0x2e,0x16,0x04,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82, +0x52,0x25,0x2c,0x4e,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x00,0x04,0xff,0xba,0xff,0xed,0x06,0xae,0x05,0xec,0x00,0x2d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33, +0x21,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26,0x6f,0x89,0x9d,0x54,0x72,0xc7,0xc6,0xd2,0x7c,0x45,0x23,0x23,0x23, +0x23,0x01,0x2e,0x08,0x14,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5b,0xeb,0x96,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3c,0x43,0x30,0x35,0x1a,0x05,0x02,0x01,0x02,0x34,0x20,0x20,0x33,0x17,0x2f,0x1a, +0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x19,0xff,0xea,0x06,0xae,0x05,0xec,0x00,0x29,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x00,0x01,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26, +0x27,0x23,0x0e,0x03,0x23,0x22,0x24,0x26,0x26,0x27,0x27,0x16,0x16,0x17,0x36,0x36,0x37,0x11,0x33,0x11,0x17,0x3e,0x03,0x03,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x04,0x07,0x16,0x16,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x28,0x78,0xac,0x70,0x37,0x02,0x01,0x11,0x29,0x47,0x37,0x16,0x5e,0x74,0x1f,0x06,0x26, +0x70,0x89,0x9d,0x54,0xb7,0xfe,0xf5,0xc6,0x92,0x3e,0x20,0x2d,0x91,0x58,0x08,0x13,0x0b,0x9e,0x03,0x2e,0x77,0x8f,0xa4,0x27,0x6b,0xa2,0x6d,0x37,0x32,0x58,0x79,0x47,0x49,0x84,0x74,0x63,0x52,0x3e,0x15,0x5c,0xe9,0x97,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x03,0x58,0x4e,0x84,0xae,0x61,0x3a,0x54,0x36,0x1a,0xa7,0x3a,0x45,0x31,0x36,0x1a, +0x06,0x03,0x06,0x09,0x06,0xa7,0x06,0x07,0x01,0x16,0x2e,0x1a,0x04,0xf3,0xfc,0x1d,0x01,0x43,0x7a,0x5c,0x37,0xfd,0x3b,0x0a,0x27,0x4f,0x45,0x5e,0x82,0x52,0x25,0x2d,0x4d,0x68,0x77,0x81,0x3f,0x02,0x01,0x03,0x6a,0xb5,0xb5,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x07,0x4b,0x06,0x3c,0x00,0x36,0x00,0x4a,0x00,0x4e,0x00,0x52,0x00,0x56, +0x00,0x5a,0x00,0x00,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35, +0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x01,0x62,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d,0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x3a,0x64,0x89,0x9d,0xac,0x55,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x05,0xe6,0x0f, +0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1a,0x18,0x42,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x02,0x5f,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x60, +0x84,0x57,0x30,0x17,0x05,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0xf2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x49,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6,0x03,0x49,0x06,0x3c,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, +0x00,0x48,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33, +0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81,0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9, +0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x00,0x06,0xff,0xba,0xfe,0xa6, +0x04,0x02,0x06,0x3c,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8, +0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x39,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17, +0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5,0x00,0x06,0x00,0xab,0xfe,0xa6,0x08,0x04,0x06,0x3c,0x00,0x41,0x00,0x55,0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x01,0x34,0x3e,0x02, +0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x05,0x33,0x32,0x36,0x37,0x37,0x2e,0x03,0x05,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36, +0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xb0,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5b,0x27,0x33,0x77,0x82,0x8a,0x45,0xb9,0x86,0xd6,0xaa,0x7f,0x2e,0x3f,0x30,0x12,0x0b,0x9a,0x09,0x11,0x20,0x2e,0x17,0x39,0x4f,0x6d, +0x96,0xc7,0x82,0x5b,0x8e,0x3b,0x02,0x4a,0x60,0x38,0x15,0x01,0xfe,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x41,0x73,0x5a,0x23,0x1b,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0xfe,0x0f,0xb9,0xb9,0x01,0xd1,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x63,0x27,0x09,0x03,0xa7,0x07, +0x0e,0x16,0x0f,0x18,0x1a,0x0d,0x03,0x05,0x15,0x2d,0x27,0x36,0x99,0x58,0x3d,0x70,0x33,0x2b,0x65,0x36,0x3c,0x66,0x20,0x10,0x17,0x0f,0x08,0x05,0x01,0x02,0x03,0x06,0x1e,0x44,0x4d,0x55,0x35,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x1f,0x3e,0x43,0x4a,0x2b,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0x63,0xb5,0xf8,0x6a,0xb5, +0x00,0x05,0x00,0x9b,0xfc,0xb6,0x05,0x4b,0x04,0x79,0x00,0x30,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x2e,0x05, +0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0xad,0x50,0x5c,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x1b,0x28,0x1b,0x0e,0x4a,0x98,0xed,0xa3,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x67,0x93,0x64,0x3b,0x21, +0x0b,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x17,0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x2a,0x68,0x75,0x7f,0x40,0x95,0xdc,0x91,0x47,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26, +0x1d,0x32,0x46,0x51,0x5b,0xd0,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x03,0x1f,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x05,0xff,0xba,0xfe,0xa6,0x03,0x49,0x05,0x24,0x00,0x24,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e, +0x03,0x15,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x14,0x26,0x1d,0x12,0x39,0x61,0x81, +0x91,0x97,0x47,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x37,0x2c,0x1b,0x19,0x41,0x73,0x5a,0x21,0x1d,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x58,0x21,0x4a,0x52,0x5a,0x30,0x60,0x83,0x55,0x2e,0x15,0x04, +0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x42,0x4a,0x2a,0x18,0x4d,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00,0x05,0xff,0xba,0xfe,0xa6,0x04,0x02,0x05,0x24,0x00,0x2f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x00,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16, +0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xa5,0x4a,0x60,0x38,0x15,0x30, +0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x38,0x72,0x43,0x16,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x70,0x75,0x74,0x34,0xbf,0x23,0x23,0x23,0x23,0xc8,0x30,0x75,0x36,0x01,0x09,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0xfe,0xe5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x68,0xb9,0xb9, +0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x56,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x34,0x20,0x20,0x33,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0x03,0x3e,0xb5,0xb5,0xb5,0xf9,0x82,0xb5,0x00, +0x00,0x05,0x00,0x9b,0xfc,0xb6,0x06,0x03,0x04,0x79,0x00,0x30,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x03,0x2e, +0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x04,0x36,0x5c,0x91,0x66,0x36,0x30,0x55,0x73,0x44,0x48,0x78,0x36,0x2d,0x34,0x07,0xbc,0xbb,0x0b,0x54,0x99,0xe0,0x97,0xa1,0xdb,0x87,0x3b,0x0f,0x0e,0x97,0x0b,0x0c,0x2b,0x64,0xa5,0x7a,0x60,0x8d,0x63,0x3e, +0x24,0x10,0x03,0x1d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1a,0x7c,0x86,0x65,0x04,0x0e,0xfe,0xf5,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x6a,0xb9,0xb9,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x48,0xc0,0x6d,0xa7,0x7f,0xbc,0x7b,0x3d,0x41,0x7c,0xb7,0x77,0x3f,0x8c,0x4e,0x4b,0x7d,0x36,0x5f,0x84,0x54,0x26,0x19, +0x2d,0x3e,0x49,0x52,0x2b,0x01,0x42,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0x02,0xb6,0xb5,0xb5,0xb5,0xf8,0x3d,0xb5,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x51,0x05,0xec,0x00,0x2d,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x38,0x81,0xd4,0x9d,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xa8,0x8f,0xe4, +0x9f,0x56,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xa5,0x05,0xec,0x00,0x26,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32, +0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x99,0x2e,0x47,0x30,0x18,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfd,0xe0,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0x0f,0x2a, +0x48,0x39,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0xac,0x05,0xec,0x00,0x2f,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21, +0x35,0x21,0x11,0x33,0x11,0x33,0x02,0xa5,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x16,0x61,0x74,0x1d,0x04,0x1b,0x43,0x48,0x49,0x22,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04,0x5c,0x83,0x6d,0xfe,0x2c,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20, +0x20,0x33,0x12,0x2c,0x47,0x35,0x02,0x19,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x01,0x00,0x9b,0xfe,0xac,0x05,0x58,0x05,0xec,0x00,0x38,0x00,0x00,0x01,0x23,0x15,0x33,0x15,0x23,0x11,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02, +0x33,0x32,0x3e,0x02,0x35,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x33,0x05,0x51,0xb3,0xb3,0xb3,0x0c,0x27,0x4a,0x3d,0x13,0x49,0x59,0x1c,0x04,0x11,0x4c,0x7f,0xb7,0x7c,0x87,0xb6,0x6d,0x2f,0x0d,0x0e,0x98,0x0b,0x0b,0x23,0x4f,0x7d,0x59,0x67,0x93,0x5d,0x2b,0xfe,0xdf,0x01,0x21,0xfe,0xdf,0x01,0x21,0x9c,0xb3,0x04, +0x5c,0x83,0x6d,0xfe,0x30,0x43,0x61,0x40,0x1f,0xa7,0x28,0x26,0x5f,0x95,0x69,0x37,0x45,0x7f,0xb7,0x72,0x3f,0x83,0x4b,0x48,0x7a,0x37,0x5f,0x84,0x51,0x24,0x31,0x6e,0xb3,0x81,0x02,0x44,0x6d,0x83,0x6d,0x01,0x23,0xfe,0xdd,0x00,0x00,0x05,0x00,0x39,0xfd,0xff,0x03,0xf4,0x05,0x91,0x00,0x26,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x44, +0x00,0x00,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x13,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x02,0xac,0x4c,0x79,0x55,0x2e, +0x23,0x47,0x69,0x45,0x31,0x66,0x61,0x59,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x2e,0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x02,0xb9,0x53,0x7d,0x91,0x3e,0x3b,0x6c,0x52,0x30, +0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x43,0x23,0x0b,0xfd,0xdf,0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0f,0x0d,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x03,0xf4,0x05,0x91,0x00,0x23,0x00,0x33,0x00,0x37, +0x00,0x3b,0x00,0x3f,0x00,0x00,0x15,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x23,0x23, +0x23,0x23,0x1a,0x3f,0x57,0x3b,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x35,0x9a,0x5e,0x01,0x6e,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3f,0x2d,0xb0,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1a,0x2f, +0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x50,0x43,0x01,0x13,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x02,0x89,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0xff,0xba,0xff,0xf2,0x04,0xad,0x05,0x91,0x00,0x30,0x00,0x40,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x00,0x05,0x23,0x22,0x26, +0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x04,0x17,0x1e,0x03,0x33,0x25,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x5b, +0x6f,0x1e,0x05,0x2d,0x87,0x61,0x34,0x61,0x57,0x4b,0x1e,0x35,0x99,0x5f,0x13,0x23,0x23,0x23,0x23,0x1a,0x3f,0x57,0x3a,0x23,0x0b,0x0d,0x21,0x2b,0x38,0x48,0x5c,0x39,0x4f,0x72,0x50,0x33,0x1c,0x0c,0x02,0x04,0x0d,0x25,0x46,0x3d,0xfc,0xd4,0x2b,0x8e,0x56,0x5e,0x69,0x1a,0x35,0x52,0x37,0x30,0x4f,0x3e,0x2f,0xaf,0xb9,0xb9,0x01,0x42, +0xb9,0xb9,0xa1,0xb9,0xb9,0x0e,0x40,0x41,0x39,0x48,0x18,0x28,0x35,0x1e,0x50,0x43,0x34,0x20,0x20,0x33,0x2e,0x41,0x48,0x1b,0x1f,0x49,0x48,0x42,0x34,0x1e,0x2e,0x48,0x56,0x51,0x40,0x0e,0x21,0x3e,0x30,0x1d,0x6d,0x35,0x36,0x44,0x45,0x21,0x51,0x45,0x2f,0x26,0x45,0x5f,0x02,0x85,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x05,0x00,0x39, +0xfd,0xff,0x04,0xad,0x05,0x91,0x00,0x2f,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x00,0x25,0x15,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x3e,0x05,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x05,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02, +0x23,0x22,0x06,0x07,0x1e,0x03,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x27,0x23,0x35,0x33,0x04,0xad,0x16,0x51,0x68,0x21,0x04,0x26,0x6c,0x4f,0x31,0x65,0x60,0x57,0x24,0x4e,0x43,0x09,0x11,0x17,0x0e,0xa6,0x19,0x1d,0x24,0x42,0x5d,0x3a,0x17,0x3d,0x45,0x49,0x44,0x3b,0x15,0x44,0x6e,0x53,0x34,0x0b,0x06,0x0f,0x26,0x45,0xfe,0x55, +0x21,0x35,0x27,0x15,0x1e,0x33,0x45,0x27,0x4b,0x6d,0x29,0x21,0x44,0x44,0x43,0x54,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xa1,0xb9,0xb9,0x99,0xa7,0x3a,0x36,0x36,0x3b,0x13,0x17,0x13,0x63,0x5b,0x26,0x5d,0x63,0x61,0x2a,0x67,0xbd,0x45,0x48,0x79,0x5b,0x39,0x09,0x71,0xa2,0x6f,0x42,0x24,0x0b,0x41,0x67,0x80,0x3f,0x26,0x43,0x33,0x1d,0x01, +0x0c,0x1c,0x30,0x23,0x25,0x59,0x4e,0x34,0xa4,0xad,0x05,0x0e,0x0e,0x09,0x03,0x2c,0xb5,0xb5,0xb5,0x63,0xb5,0x00,0x00,0x04,0x00,0x82,0xfe,0x10,0x05,0x91,0x04,0xcc,0x00,0x35,0x00,0x4e,0x00,0x52,0x00,0x56,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d, +0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b,0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0xfe,0xa1,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58, +0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23,0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0x05,0x0c,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x4a,0xb5,0xb5,0xb5, +0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x05,0x3e,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x37,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26, +0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x63,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c, +0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x05,0x78,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x1f,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23, +0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0xf2,0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23, +0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0x0d,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55,0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xdf,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0xc4,0x03,0x04,0x25, +0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x6e,0xb5,0xb5,0xb5,0x00,0x04,0x00,0x82,0xfd,0xc0,0x06,0xae,0x04,0x68,0x00,0x44,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34, +0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x33,0x33,0x15,0x21,0x35,0x33,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x13,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67, +0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d,0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0x36,0x0d,0x1d,0x10,0x2d,0x3e,0x8e,0x46,0xfe,0xa7,0x55, +0x01,0x17,0x16,0x1c,0x33,0x47,0x2b,0x1f,0x21,0xc2,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57, +0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0x03,0x64,0x03,0x04,0x25,0x2b,0x58,0x61,0x5b,0x05,0x1a,0x3a,0x1d,0x22,0x39,0x2a,0x17,0x06,0xf9,0x5e,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x9a,0xfe,0x10,0x05,0x91,0x04,0x78,0x00,0x35,0x00,0x39,0x00,0x3d,0x00,0x41,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06, +0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x04,0x15,0x14,0x0e,0x04,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x02,0x9c,0x94,0xc5,0x77,0x32,0x23,0x1d,0x97,0x17,0x23,0x21,0x52,0x8e,0x6d,0x6d,0xbd,0x8d,0x51,0x33,0x4b,0x59,0x4b, +0x33,0x54,0x96,0xd1,0x7e,0x64,0x9c,0x6c,0x38,0x33,0x4d,0x5a,0x4d,0x33,0x27,0x4e,0x73,0x98,0xbc,0x9d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xb2,0xb9,0xb9,0xab,0x4e,0x85,0xb1,0x63,0x5b,0xba,0x5b,0x58,0xaf,0x55,0x47,0x7b,0x5c,0x34,0x2e,0x4b,0x5e,0x30,0x26,0x33,0x2c,0x2e,0x40,0x5c,0x45,0x55,0x7f,0x5b,0x3b,0x12,0xa2,0x0d,0x23, +0x31,0x41,0x2a,0x29,0x39,0x2f,0x2c,0x3a,0x4f,0x3a,0x31,0x6a,0x68,0x5e,0x47,0x2a,0xfe,0xbb,0xb5,0xb5,0xb5,0x04,0xfe,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0x48,0x04,0xb2,0x00,0x16,0x00,0x1a,0x00,0x1e,0x00,0x22,0x00,0x00,0x37,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x0e,0x04,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x01, +0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x99,0x2e,0x47,0x30,0x18,0x9c,0x1c,0x31,0x43,0x4f,0x57,0x2d,0x8f,0x23,0x23,0x23,0x23,0x01,0x06,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x99,0x0f,0x2a,0x48,0x39,0x01,0xbc,0xfe,0x3d,0x4b,0x6e,0x4c,0x31,0x1a,0x0a,0x34,0x20,0x20,0x33,0xfe,0x0d,0xb5,0xb5,0xb5,0x04, +0xa2,0xb5,0x00,0x04,0xff,0xba,0xfe,0xa6,0x02,0xac,0x04,0xb2,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x00,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x23,0x35,0x33,0x01,0xf2, +0x0c,0x27,0x4a,0x3d,0x16,0x64,0x78,0x1e,0x04,0x1a,0x41,0x46,0x47,0x21,0x8f,0x23,0x23,0x23,0x23,0x99,0x1d,0x43,0x38,0x25,0x9c,0xec,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x4f,0xb9,0xb9,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x3f,0x3c,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0xfb,0x97,0xb5,0xb5,0xb5,0x04, +0xa2,0xb5,0x00,0x04,0x00,0x9a,0xfd,0xc0,0x06,0xae,0x03,0xba,0x00,0x44,0x00,0x48,0x00,0x4c,0x00,0x50,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x04,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x05,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x06,0xae,0x16,0x43,0x67,0x4e,0x3b,0x2d,0x25,0x12,0x17,0x2b,0x18,0x1d,0x27,0x20,0x26,0x20,0x2d,0x4e,0x68,0x77,0x80,0x3e,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x54,0x81,0x59,0x2d, +0x20,0x26,0x20,0x26,0x41,0x57,0x30,0x31,0x60,0x27,0x11,0x1e,0x21,0x2a,0x3b,0x52,0xfb,0xf8,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0x9b,0xb9,0xb9,0x99,0xa7,0x21,0x35,0x45,0x47,0x44,0x1b,0x23,0x1c,0x22,0x24,0x21,0x2c,0x2f,0x3e,0x34,0x3a,0x5c,0x47,0x31,0x20,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c, +0x33,0x16,0x27,0x35,0x20,0x1c,0x2b,0x30,0x41,0x32,0x35,0x57,0x3e,0x22,0x2c,0x3a,0x1a,0x3d,0x3d,0x3a,0x2c,0x1a,0xfd,0x27,0xb5,0xb5,0xb5,0x04,0x90,0xb5,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x28,0x00,0x38,0x00,0x00,0x01,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1a,0x28,0x1c,0x0f,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f, +0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26,0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x41,0x8e,0x8f,0x8b,0x3e,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10, +0x10,0x1c,0x15,0x0c,0x00,0x02,0xff,0xa6,0xfd,0xff,0x03,0x5a,0x02,0x5e,0x00,0x30,0x00,0x40,0x00,0x00,0x01,0x16,0x16,0x17,0x1e,0x03,0x33,0x15,0x23,0x22,0x26,0x27,0x14,0x06,0x07,0x16,0x16,0x17,0x07,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x27,0x03,0x32, +0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x02,0x31,0x1e,0x2b,0x0f,0x06,0x1c,0x31,0x49,0x32,0x16,0x3f,0x4a,0x1a,0x0f,0x0d,0x3c,0x6c,0x30,0x8b,0x3f,0x51,0x23,0x56,0x5f,0x64,0x30,0x45,0x6f,0x4f,0x2a,0x2e,0x4e,0x67,0x39,0x4e,0x9a,0x4b,0x07,0x05,0x13,0x1f,0x29,0x16,0xbc,0x46,0x78,0x2a,0x37,0x7c,0x47,0x26, +0x31,0x1d,0x0b,0x0f,0x23,0x37,0x02,0x5e,0x4c,0xa5,0x53,0x21,0x31,0x20,0x0f,0xa7,0x24,0x21,0x3e,0x6d,0x31,0x2b,0x72,0x4a,0x57,0x61,0x44,0x36,0x4a,0x2e,0x15,0x22,0x40,0x5d,0x3b,0x3d,0x5b,0x3a,0x1d,0x1d,0x20,0x31,0x41,0x1e,0x4b,0x8e,0x88,0x83,0x3f,0xfc,0x49,0x33,0x39,0x18,0x19,0x0d,0x16,0x1d,0x10,0x10,0x1c,0x15,0x0c,0x00, +0x00,0x03,0x00,0x00,0xfd,0xff,0x03,0x49,0x02,0xb7,0x00,0x22,0x00,0x36,0x00,0x3a,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01, +0x23,0x35,0x33,0x6c,0xad,0x52,0x64,0x7b,0x45,0x1a,0x02,0x53,0x59,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x34,0x72,0xb6,0x82,0x5b,0xac,0x64,0x02,0xa9,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0xfe,0x93,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x42,0x68,0x82,0x41, +0x25,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xed,0x84,0x74,0xd3,0xa2,0x60,0x26,0x2e,0x02,0x66,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xfe,0x8c,0xb5,0x00,0x03,0x00,0x00,0xfd,0xff,0x04,0x02,0x02,0xb7,0x00,0x27,0x00,0x38,0x00,0x3c,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e, +0x02,0x37,0x36,0x36,0x37,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x01,0x23,0x35,0x33,0x6c,0xad,0x52,0x45,0x66,0x48,0x2c,0x0c,0x05,0x0b,0x04,0x75,0x5c,0x92,0x66,0x36,0x30, +0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x35,0x07,0xbc,0xbd,0x08,0x3e,0x74,0xab,0x75,0x5b,0xac,0x64,0x02,0x8d,0x0d,0x25,0x2c,0x34,0x1c,0x1d,0x37,0x2c,0x1b,0x7c,0x87,0x65,0x04,0x0e,0xfe,0x7f,0xb9,0xb9,0xfe,0xf9,0x2c,0x23,0x21,0x39,0x4c,0x2c,0x13,0x3d,0x26,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x56,0x48,0xbf,0x6d,0xa7, +0x66,0xb5,0x88,0x50,0x26,0x2e,0x02,0xe1,0x26,0x4d,0x3d,0x26,0x26,0x3c,0x4c,0x26,0x4b,0x52,0x27,0x4e,0xfe,0x23,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x03,0xfe,0x03,0x62,0x00,0x3d,0x00,0x51,0x00,0x55,0x00,0x59,0x00,0x00,0x25,0x16,0x16,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23, +0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x27,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x03,0x15,0x1d,0x47,0x26,0x19,0x23,0x23,0x23, +0x23,0x22,0x17,0x3f,0x4a,0x51,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x10,0x22,0x0a,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x82,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9, +0x01,0x42,0xb9,0xb9,0xa5,0x05,0x07,0x33,0x20,0x20,0x34,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05,0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0xa2,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20, +0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x04,0x00,0x02,0xfe,0x8d,0x04,0x1c,0x03,0x62,0x00,0x37,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x00,0x25,0x15,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x2e,0x03,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x06,0x07,0x16,0x16,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x04,0x1c,0x30,0x2c,0x60,0x5f,0x5c,0x27,0x32,0x5e,0x4d,0x35,0x07,0x10,0x29,0x49,0x39,0x21,0x83,0x03,0x01,0x41,0x67,0x7f,0x3e,0x0e,0x25, +0x09,0x02,0x4a,0x60,0x38,0x15,0x30,0x55,0x74,0x44,0x48,0x78,0x36,0x15,0x25,0x1d,0x11,0x1b,0x19,0x39,0x8b,0xfe,0xd3,0x0f,0x1c,0x26,0x2d,0x32,0x1a,0x1d,0x38,0x2b,0x1b,0x19,0x43,0x74,0x5b,0x21,0x19,0x87,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x99,0xa7,0x07,0x0e,0x16,0x0f,0x16,0x17,0x0b,0x02,0x25,0x4f,0x7b,0x56,0x20,0x16,0x1e,0x05, +0x7d,0xb1,0x71,0x34,0x01,0x01,0x07,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x52,0x57,0x21,0x4a,0x53,0x5a,0x30,0x42,0x64,0x26,0x09,0x03,0xd4,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3e,0x44,0x4a,0x2b,0x18,0x4f,0xfd,0x75,0xb5,0xb5,0xb5,0x00,0x00,0x01,0x00,0x00,0x06,0x40,0x02,0x35,0x07,0xaa,0x00,0x1b, +0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23, +0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0x33,0x08,0x14,0x00,0x2a,0x00,0x37,0x00,0x00,0x01,0x06,0x07,0x06,0x07,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x36,0x37,0x26,0x27,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x37,0x27,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x36,0x02,0x33,0x25,0x29,0x0b,0x11,0x22,0x72,0x54,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x2d,0x26,0x12,0x10,0x10,0x10,0x1c,0x2c,0x1b,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x0f,0x0e,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x07,0x07,0x0c,0x09, +0x14,0x12,0x25,0x31,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x0b,0x05,0x07,0x02,0x05,0x09,0x24,0x38,0x27,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x14,0x15,0x06,0x07,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x02,0x1a,0x00,0x00,0x01,0x00,0x00,0xfe,0x89,0x02,0x35,0xff,0xf3,0x00,0x1b,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02, +0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x0c,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfe,0x89,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00, +0x00,0x02,0x00,0x00,0x06,0x40,0x02,0x7b,0x08,0x72,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22, +0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x06,0x40,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e, +0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x04,0x00,0x00,0x06,0x76,0x02,0xdd,0x08,0xfa,0x00,0x28,0x00,0x51,0x00,0x5e,0x00,0x6c,0x00,0x00,0x01,0x06,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x37,0x1e,0x03,0x33,0x32,0x37,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x37,0x01,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x07,0x2e,0x03,0x23,0x22,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x06,0x06,0x07,0x17,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x07,0x06,0x05,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x36,0x02,0xdd,0x26,0x28,0x0f,0x2e,0x40,0x53,0x34,0x21,0x44,0x3e,0x31,0x0d,0x44,0x07,0x1a,0x27,0x34,0x22,0x43,0x31,0x19,0x2f,0x24,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0xfd,0x35,0x25,0x29,0x0f,0x2e,0x40,0x52,0x35,0x21,0x44,0x3e,0x30,0x0e,0x44,0x08,0x19, +0x27,0x34,0x22,0x44,0x31,0x19,0x2f,0x25,0x16,0x18,0x29,0x38,0x21,0x1f,0x38,0x2a,0x19,0x04,0x08,0x0e,0x07,0x6e,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x24,0x1c,0x0b,0x01,0xdd,0x2a,0x1b,0x1c,0x28,0x29,0x15,0x12,0x20,0x0e,0x0b,0x07,0x07,0x0c,0x09,0x1a,0x2d,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0e,0x22,0x1e,0x14,0x17,0x03,0x15,0x24, +0x34,0x23,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x16,0x13,0x03,0x06,0x04,0x01,0x14,0x0c,0x09,0x19,0x2e,0x21,0x14,0x13,0x22,0x31,0x1e,0x35,0x0d,0x22,0x1e,0x15,0x18,0x03,0x15,0x24,0x34,0x22,0x23,0x3a,0x29,0x17,0x14,0x29,0x3d,0x29,0x15,0x13,0x02,0x07,0x03,0x19,0x2a,0x21,0x24,0x1f,0x1f,0x24,0x03,0x1b,0xb1,0x2a,0x21,0x24, +0x1f,0x1f,0x24,0x01,0x01,0x1b,0x00,0x02,0x00,0x00,0xfd,0xc1,0x02,0x7b,0xff,0xf3,0x00,0x1b,0x00,0x37,0x00,0x00,0x13,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x27,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x15, +0x14,0x0e,0x02,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x52,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0x9f,0x0c,0x19,0x2e,0x41,0x29,0xd6,0x1f,0x33,0x09,0x59,0x0c,0x19,0x2e,0x42,0x28,0xd6,0x1f,0x33,0x09,0xfd,0xc1,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b, +0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x9d,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x12,0x0e,0x2b,0x1b,0x20,0x23,0x3d,0x2d,0x19,0x1e,0x20,0x13,0x0d,0x00,0x00,0x01,0x00,0x64,0x06,0x76,0x01,0x1d,0x07,0x2b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x06,0x76,0xb5,0x00,0x00,0x02,0x00,0x64,0x06,0x76, +0x02,0x5f,0x07,0x2b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0x06,0x76,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0x06,0x41,0x02,0x3f,0x07,0xda,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16, +0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1a,0x1e,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e,0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d, +0x4c,0x3f,0x11,0x06,0x41,0x23,0x20,0x04,0x04,0x06,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0b,0x04,0x05,0x23,0x26,0xcf,0x2a,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x01,0x00,0x64,0xfe,0xa6,0x01,0x1d,0xff,0x5b,0x00,0x03,0x00,0x00,0x01,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0xfe,0xa6, +0xb5,0x00,0x00,0x02,0x00,0x64,0xfe,0xa6,0x02,0x5f,0xff,0x5b,0x00,0x03,0x00,0x07,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x1d,0xb9,0xb9,0x01,0x42,0xb9,0xb9,0xfe,0xa6,0xb5,0xb5,0xb5,0x00,0x00,0x02,0x00,0x00,0xfd,0xd1,0x02,0x3f,0xff,0x6a,0x00,0x1c,0x00,0x2b,0x00,0x00,0x01,0x26,0x27,0x06,0x07,0x06,0x23,0x22, +0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x37,0x17,0x06,0x07,0x06,0x07,0x16,0x17,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x37,0x26,0x01,0xa4,0x09,0x0b,0x1b,0x1d,0x36,0x43,0x28,0x50,0x3f,0x28,0x5a,0x51,0x3b,0x6c,0x2b,0x27,0x1e,0x37,0x2a,0x1c,0x1a,0x21,0x0e,0x10,0x0b,0x07,0xb5,0x1e, +0x4a,0x28,0x0f,0x20,0x1b,0x11,0x47,0x3d,0x4c,0x40,0x11,0xfd,0xd1,0x23,0x21,0x05,0x03,0x07,0x0d,0x27,0x48,0x3a,0x51,0x5d,0x3e,0x36,0x30,0x3f,0x0f,0x10,0x64,0x07,0x0a,0x05,0x04,0x24,0x26,0xd0,0x29,0x30,0x07,0x12,0x1e,0x17,0x29,0x27,0x0a,0x20,0x00,0x02,0x00,0x00,0x06,0x76,0x02,0xae,0x08,0x74,0x00,0x03,0x00,0x07,0x00,0x00, +0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0x06,0xde,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x04,0xff,0xbf,0x06,0x55,0x03,0xd2,0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x51,0x00,0x5f,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32, +0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x05,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37, +0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x3c,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x01,0xcf,0x17,0x28,0x11,0x18,0x30,0x15,0x72,0x5e, +0x12,0x33,0x5a,0x39,0x01,0x0b,0x07,0x34,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25, +0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0xe9,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x01,0x02,0x43,0x44,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42,0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x00,0x00,0x02,0x00,0x00,0xfd,0x6c,0x02,0xae,0xff,0x6a,0x00,0x03,0x00,0x07, +0x00,0x00,0x11,0x25,0x17,0x05,0x13,0x25,0x17,0x05,0x02,0x22,0x1e,0xfd,0xde,0x50,0x02,0x22,0x1e,0xfd,0xde,0xfd,0xd4,0x9c,0x68,0x9c,0x01,0x62,0x9c,0x68,0x9c,0x00,0x00,0x02,0x00,0x00,0x06,0x76,0x01,0xc8,0x08,0xdd,0x00,0x23,0x00,0x35,0x00,0x00,0x11,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x3c,0x5c,0x2b,0x34,0x41,0x25,0x0e,0x15,0x2d,0x17,0x24,0x42,0x33,0x1e,0x1a,0x2e,0x3f,0x24,0x26,0x45,0x1d,0x1d,0x1d,0x1e,0x3f,0x63,0x45,0x31,0x5c,0x36,0x01,0x6a,0x01,0x11, +0x1d,0x25,0x15,0x0f,0x1c,0x17,0x0e,0x12,0x1d,0x27,0x15,0x13,0x28,0x07,0x01,0x18,0x12,0x1e,0x31,0x3d,0x20,0x08,0x0a,0x16,0x2a,0x3d,0x28,0x22,0x47,0x39,0x25,0x2b,0x2e,0x2d,0x70,0x47,0x3e,0x6c,0x51,0x2f,0x10,0x19,0x01,0x3d,0x14,0x38,0x33,0x24,0x0f,0x1a,0x24,0x14,0x13,0x1f,0x15,0x0c,0x06,0x00,0x00,0x03,0x00,0x0a,0x06,0x7b, +0x02,0x06,0x08,0x1c,0x00,0x11,0x00,0x18,0x00,0x1f,0x00,0x00,0x13,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33,0x15,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x32,0x36,0x37,0x23,0x16,0x16,0x13,0x22,0x06,0x07,0x33,0x26,0x26,0x0a,0x5c,0x0a,0x50,0x42,0x42,0x52,0x0b,0x65,0x64,0x08,0x50,0x48,0x45,0x51,0x08,0x5a,0xfb,0x2a,0x22, +0x04,0xa3,0x04,0x25,0x2a,0x27,0x26,0x05,0xa0,0x05,0x23,0x07,0x7e,0x50,0x4e,0x4e,0x50,0x58,0x55,0x56,0x56,0x55,0x60,0x2b,0x35,0x35,0x2b,0x01,0x0b,0x25,0x2e,0x2d,0x26,0x00,0x00,0x02,0x00,0x05,0x06,0x7c,0x02,0x01,0x07,0xdf,0x00,0x03,0x00,0x07,0x00,0x00,0x13,0x21,0x15,0x21,0x25,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01, +0x5b,0xb9,0xb9,0x06,0xd4,0x58,0xae,0xb5,0x00,0x02,0x00,0x05,0xfe,0x07,0x02,0x01,0xff,0x6a,0x00,0x03,0x00,0x07,0x00,0x00,0x17,0x21,0x15,0x21,0x01,0x23,0x35,0x33,0x05,0x01,0xfc,0xfe,0x04,0x01,0x5b,0xb9,0xb9,0x96,0x58,0xfe,0xf5,0xb5,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07, +0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0x07,0x8e,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0x06,0x62,0x01,0x49,0x08,0x48,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49, +0xff,0x6a,0x00,0x06,0x00,0x00,0x11,0x25,0x15,0x07,0x17,0x15,0x25,0x01,0x49,0xe7,0xe7,0xfe,0xb7,0xfe,0xb0,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x01,0x00,0x00,0xfd,0x84,0x01,0x49,0xff,0x6a,0x00,0x06,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0xfe,0x3e,0xba,0x7d,0x76,0x76,0x7d, +0xba,0x00,0x00,0x02,0x00,0x00,0x06,0x62,0x02,0xd9,0x08,0x48,0x00,0x06,0x00,0x0d,0x00,0x00,0x01,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x49,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x07,0x1c,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x03, +0x00,0x64,0x06,0x62,0x04,0x41,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x11,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x0d,0x02,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x01,0x90,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x72, +0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x02,0x00,0x64,0x06,0x62,0x02,0xb1,0x08,0x48,0x00,0x03,0x00,0x0a,0x00,0x00,0x01,0x23,0x35,0x33,0x05,0x05,0x35,0x37,0x27,0x35,0x05,0x01,0x1d,0xb9,0xb9,0x01,0x94,0xfe,0xb7,0xe7,0xe7,0x01,0x49,0x06,0xf8,0xb5,0x91,0xba,0x7d,0x76,0x76,0x7d,0xba,0x00,0x00,0x03,0x00,0x00,0x06,0x55,0x02,0x84, +0x08,0x0e,0x00,0x21,0x00,0x2f,0x00,0x33,0x00,0x00,0x01,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x37,0x16,0x16,0x33,0x32,0x32,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x17,0x37,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x36,0x36,0x25,0x23,0x35,0x33,0x01,0xf6,0x17,0x28,0x11, +0x18,0x30,0x15,0x72,0x5e,0x12,0x33,0x5a,0x39,0x01,0x0c,0x08,0x36,0x1e,0x32,0x3f,0x20,0x1f,0x3c,0x2e,0x1c,0x48,0x39,0x0b,0x14,0x09,0x04,0x33,0x1f,0x10,0x1f,0x19,0x0f,0x23,0x1a,0x30,0x3c,0xfe,0x8a,0xb9,0xb9,0x06,0x55,0x11,0x22,0x11,0x05,0x03,0x1c,0x53,0x0d,0x0f,0x02,0x45,0x43,0x26,0x3c,0x29,0x15,0x14,0x29,0x3d,0x29,0x42, +0x5a,0x1a,0x0b,0x10,0x08,0xd6,0x29,0x25,0x09,0x13,0x1c,0x12,0x1d,0x3d,0x1d,0x10,0x39,0x11,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x0b,0xf8,0x02,0x3e,0x00,0x45,0x00,0x2c,0xb1,0x40,0x37,0xb8,0x04,0xfb,0xb5,0x0e,0x45,0x45,0x3c,0x3c,0x30,0xb8,0x04,0xfb,0xb4,0x15,0x05,0x0e,0x28,0x1f,0xb9,0x04,0xfb,0x00,0x21,0x00,0x2f,0xfd, +0x32,0xde,0x32,0xdc,0xed,0x32,0x2f,0x33,0x2f,0x10,0xed,0x32,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x15,0x21,0x22,0x26,0x27,0x27,0x37,0x21,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x04,0x33,0x32,0x3e,0x02,0x35,0x33,0x14, +0x16,0x33,0x32,0x3e,0x02,0x35,0x0b,0xf8,0x16,0x2d,0x44,0x2e,0x2d,0x4a,0x17,0x07,0x12,0x24,0x26,0x28,0x16,0x29,0x39,0x2c,0x25,0x2b,0x36,0x26,0x20,0x24,0x14,0x05,0x0b,0x17,0x21,0x17,0x8c,0xf8,0x84,0x55,0xb2,0x51,0x1c,0x05,0x07,0xa7,0x17,0x15,0x1a,0x38,0x56,0x3c,0x2a,0x3d,0x30,0x28,0x29,0x2f,0x20,0x20,0x2d,0x1c,0x0d,0x6e, +0x26,0x33,0x13,0x18,0x0e,0x06,0x02,0x3d,0x45,0x6f,0x4e,0x2a,0x27,0x2a,0x1a,0x20,0x11,0x06,0x14,0x1e,0x24,0x1e,0x14,0x11,0x1a,0x20,0x10,0x15,0x30,0x2e,0x27,0x0b,0xa7,0x0e,0x0f,0x85,0x05,0x25,0x5c,0x23,0x30,0x5a,0x47,0x2b,0x17,0x22,0x27,0x22,0x17,0x20,0x30,0x37,0x17,0x54,0x4a,0x1f,0x30,0x37,0x18,0x00,0x00,0x01,0x00,0xbc, +0x00,0x00,0x03,0xfa,0x05,0x9a,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0xfa,0xfd,0x6a,0xa8,0xa8,0x03,0x25,0x97,0xfd,0x72,0x05,0x9a,0xfd,0x8b,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0x04,0x04,0x00,0x00,0x07,0x00,0x00,0x01,0x15,0x21,0x11,0x23,0x11,0x33,0x11,0x03,0x04,0xfe,0x46,0xa4,0xa4,0x02,0x5c, +0x8b,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0x33,0x05,0x9a,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x04,0x33,0xa8,0xf6,0xa8,0xf5,0xa8,0x05,0x9a,0xfe,0x1e,0x01,0x4a,0xfa,0xfe,0x05,0x02,0xfe,0xb6,0x01,0xe2,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x03,0xe8, +0x05,0x3f,0x00,0x0b,0x00,0x00,0x01,0x11,0x23,0x35,0x23,0x11,0x23,0x11,0x23,0x15,0x23,0x11,0x03,0xe8,0x9e,0xdc,0xa4,0xdc,0x9e,0x05,0x3f,0xfe,0x8e,0xe6,0xfb,0x4d,0x04,0xb3,0xe6,0x01,0x72,0x00,0xff,0xff,0x00,0xbc,0x00,0x00,0x05,0x40,0x05,0x9a,0x02,0x06,0x01,0xef,0x00,0x00,0xff,0xff,0x00,0xa6,0x00,0x00,0x04,0x00,0x04,0x00, +0x02,0x06,0x02,0x0f,0x00,0x00,0x00,0x01,0x00,0xbc,0xfe,0x8c,0x04,0x98,0x05,0x9a,0x00,0x12,0x00,0x00,0x25,0x01,0x27,0x01,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x37,0x01,0x33,0x01,0x04,0x98,0xfe,0x30,0x63,0x01,0x49,0xfd,0xe0,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0x02,0x18,0xd1,0xfd,0x99,0x05,0xfe,0x87, +0x74,0x01,0x0b,0x02,0x85,0x25,0x0d,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x16,0x1b,0x02,0x71,0xfd,0x50,0x00,0x00,0x01,0x00,0x10,0xff,0xe9,0x06,0xe4,0x05,0x9a,0x00,0x28,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x23,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13, +0x21,0x01,0x16,0x16,0x17,0x33,0x36,0x37,0x01,0x33,0x01,0x06,0xe4,0xcd,0xfe,0xb6,0x10,0x11,0x04,0x05,0x11,0x0c,0xfe,0xac,0xce,0x01,0xe0,0xfe,0xa4,0x7a,0x6d,0x10,0x2d,0x14,0x52,0xc5,0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x01,0x76,0x01,0x25,0x0e,0x1a,0x0b,0x04,0x1f,0x19,0x01,0x31,0xc1,0xfe,0x3d,0x02,0x25,0x1b,0x2c, +0x0b,0x24,0x18,0xfd,0xdb,0x02,0xd1,0x02,0x31,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfe,0x08,0x19,0x32,0x19,0x41,0x27,0x01,0xf4,0xfd,0x39,0x00,0x00,0x01,0x00,0x10,0xff,0xf2,0x05,0x40,0x04,0x00,0x00,0x21,0x00,0x00,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x03, +0x23,0x02,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x13,0x16,0x16,0x17,0x33,0x01,0x05,0x40,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xf5,0x30,0x29,0x64,0x63,0xa8,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x01,0x1f,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x04,0x00,0xfd,0xfa,0xfe,0x06, +0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x01,0x7f,0xfe,0x0f,0xc9,0xc9,0x0e,0x8d,0x12,0x03,0x85,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0xe0,0x05,0x9a,0x00,0x11,0x00,0x19,0x00,0x00,0x01,0x11,0x23,0x11,0x21,0x32,0x17,0x16,0x17,0x13,0x33,0x01,0x01,0x23,0x01,0x06,0x06,0x23, +0x03,0x11,0x33,0x32,0x36,0x35,0x10,0x21,0x01,0x64,0xa8,0x01,0x8a,0xe7,0x7d,0x73,0x0b,0xf1,0xc1,0xfe,0x3d,0x01,0xc9,0xcd,0xfe,0x63,0x42,0xab,0x68,0xbd,0xb0,0xaf,0xb6,0xfe,0xb0,0x02,0x1e,0xfd,0xe2,0x05,0x9a,0x70,0x66,0xb5,0x01,0x8b,0xfd,0x39,0xfd,0x2d,0x02,0x80,0x32,0x30,0x02,0xe4,0xfd,0xb4,0x9e,0x92,0x01,0x1c,0x00,0x02, +0x00,0xa6,0xfe,0x29,0x05,0xea,0x04,0x18,0x00,0x1a,0x00,0x2f,0x00,0x00,0x09,0x02,0x23,0x03,0x0e,0x03,0x23,0x22,0x27,0x23,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x05,0xea,0xfe,0xa8,0x01,0x52,0xbf,0xe2,0x13,0x4e, +0x72,0x95,0x5a,0xc7,0x6c,0x04,0xa4,0xa4,0x04,0x79,0xe9,0x58,0x8f,0x6a,0x42,0x0b,0xe7,0xfc,0x15,0x2b,0x4e,0x6b,0x40,0x4b,0x76,0x52,0x2b,0x29,0x4c,0x6d,0x43,0x47,0x75,0x53,0x2e,0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x74,0x5b,0x93,0x67,0x37,0xac,0xfd,0x95,0x05,0xd7,0xb4,0xcc,0x3a,0x6b,0x99,0x5e,0x01,0x84,0xfe,0x31,0x8f,0x3f, +0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65,0x55,0x87,0x5f,0x32,0x35,0x5e,0x80,0x00,0x02,0x00,0x3d,0x00,0x00,0x06,0x4d,0x05,0x9a,0x00,0x24,0x00,0x2f,0x00,0x00,0x21,0x21,0x11,0x23,0x22,0x0e,0x02,0x07,0x03,0x23,0x13,0x3e,0x03,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x01,0x11,0x23, +0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x06,0x4d,0xfd,0x08,0xd1,0x1e,0x34,0x31,0x2f,0x19,0xb4,0xc8,0xda,0x0a,0x21,0x2b,0x33,0x1d,0x47,0x70,0x4e,0x29,0x44,0x7a,0xaa,0x66,0x03,0xd0,0xfd,0xd0,0x02,0x06,0xfd,0xfa,0x02,0x50,0xfd,0x08,0xe9,0x8f,0x9c,0x2a,0x4d,0x6d,0x43,0x02,0x62,0x0b,0x25,0x47,0x3b,0xfe,0x50,0x01,0xdf,0x16,0x34, +0x30,0x29,0x0b,0x04,0x10,0x43,0x60,0x7b,0x47,0x5c,0x95,0x6a,0x39,0x98,0xfe,0x23,0x97,0xfe,0x0a,0x02,0x62,0x02,0x08,0x85,0x7b,0x3d,0x62,0x44,0x25,0x00,0x00,0x03,0x00,0x3e,0xff,0xe8,0x06,0x3a,0x04,0x18,0x00,0x28,0x00,0x31,0x00,0x38,0x00,0x00,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22, +0x07,0x03,0x23,0x13,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x21,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x07,0x11,0x23,0x22,0x15,0x14,0x33,0x06,0x3a,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x63,0xa1,0x77,0x48,0x0a,0x8c,0x63,0x51,0x85,0xbe,0xac,0x3d,0x54,0x79,0x7d,0x33, +0x61,0x8b,0x58,0x01,0x66,0x3e,0x9b,0x5a,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0xab,0xc2,0xcf,0xc9,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x3c,0x72,0xa7,0x6b,0xa0,0xfe,0xf8,0x01,0x3c,0x6f,0x22,0x10,0x8f,0x6d,0x44,0x6d,0x4d,0x29,0x62,0x3a,0x40,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42, +0x31,0x01,0x43,0x9d,0xa6,0x00,0x00,0x01,0x00,0xbc,0x00,0x00,0x04,0xa2,0x05,0x9a,0x00,0x19,0x00,0x00,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x27,0x37,0x17,0x37,0x33,0x01,0x17,0x07,0x27,0x03,0x04,0xa2,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xa8,0x04,0x07,0x13,0x0c,0x01,0x04,0x7f,0x6a, +0x79,0xb0,0xd1,0xfe,0xe6,0x92,0x6e,0x8b,0xe6,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x05,0x9a,0xfd,0x5e,0x0b,0x18,0x0e,0x01,0x30,0x8d,0x69,0x82,0xcd,0xfe,0xc5,0x9c,0x71,0x99,0xfe,0xff,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf8,0x04,0x00,0x00,0x14,0x00,0x00,0x01,0x37,0x33,0x07,0x17,0x07,0x27,0x07,0x01,0x23,0x01,0x23,0x11,0x23, +0x11,0x33,0x11,0x33,0x37,0x27,0x37,0x02,0x84,0x78,0xd7,0xed,0x66,0x61,0x5e,0x95,0x02,0x00,0xe6,0xfe,0x3c,0x04,0xa4,0xa4,0x04,0xdf,0x57,0x5f,0x03,0x7d,0x83,0xf6,0x77,0x54,0x6e,0x9b,0xfd,0xee,0x01,0xec,0xfe,0x14,0x04,0x00,0xfe,0x2b,0xf3,0x66,0x55,0x00,0x00,0x01,0x00,0x10,0xfe,0x66,0x07,0x73,0x05,0x9a,0x00,0x2e,0x00,0x00, +0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x03,0x06,0x06,0x07,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x36,0x12,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0xfe,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfe,0x72,0x6d,0x10,0x2d,0x14,0x52,0xc5, +0x4f,0x3a,0x34,0x3d,0x3e,0x36,0x37,0x71,0x45,0x02,0xc2,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x05,0x02,0xfd,0x02,0x71,0xa3,0x36,0xd1,0x15,0x9e,0x1d,0x4a,0x4a,0x02,0x6e,0x02,0x19,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0x10, +0xfe,0x66,0x05,0xf1,0x04,0x00,0x00,0x2c,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x23,0x06,0x02,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x13,0x21,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x02,0xed,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20, +0xa3,0xee,0x15,0x46,0x65,0x85,0x53,0x31,0x27,0x22,0x2a,0xdc,0x3f,0x02,0x1a,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0,0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x03,0x75,0xfb,0xfe,0xa9,0xd4,0x5d,0x0e,0x8d,0x12,0x03,0x85,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01, +0x00,0xbc,0xfe,0x66,0x07,0xc1,0x05,0x9a,0x00,0x25,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x04,0x4c,0xa3,0x9b,0xbe,0xc9,0x42,0x7a,0xb0,0x6d,0x46,0xa8,0xfd,0x1a,0xa8,0xa8,0x02, +0xe6,0xa8,0x4a,0x93,0xee,0xa8,0x5c,0x4b,0x90,0xd2,0x86,0xae,0xfe,0xb2,0xb8,0x6c,0xde,0xcc,0x69,0xb9,0x89,0x4f,0xfd,0x5e,0x02,0xa3,0xfd,0x5d,0x05,0x9a,0xfd,0xa0,0x02,0x60,0xfd,0xa0,0x5f,0xac,0xf0,0x91,0x7d,0xd6,0x9c,0x59,0x00,0x01,0x00,0xa6,0xfe,0x66,0x06,0x58,0x04,0x00,0x00,0x27,0x00,0x00,0x01,0x35,0x16,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x03,0x54,0x75,0x8b,0x54,0x81,0x59,0x2e,0x39,0x6a,0x97,0x5e,0x20,0xa4,0xfd,0xf6,0xa4,0xa4,0x02,0x0a,0xa4,0x42,0x7b,0xc8,0x8e,0x4d,0x49,0x87,0xbf,0x77,0x9a,0xfe,0xa0,0xa0, +0x4e,0x30,0x5b,0x85,0x54,0x5d,0x94,0x67,0x38,0xfe,0x1a,0x01,0xd1,0xfe,0x2f,0x04,0x00,0xfe,0x5c,0x01,0xa4,0xfe,0x74,0x4c,0x8d,0xc8,0x7b,0x6b,0xb6,0x85,0x4c,0x00,0x00,0x01,0x00,0xa6,0xfe,0x7f,0x05,0x41,0x05,0x9a,0x00,0x16,0x00,0x00,0x13,0x33,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x34,0x23, +0x22,0x07,0x11,0x23,0xa6,0xa8,0xe5,0xc5,0x5e,0x92,0x65,0x34,0xc0,0x9b,0xcd,0xf6,0xb1,0xe4,0xa8,0x05,0x9a,0xfd,0x7b,0x79,0x32,0x5f,0x8a,0x58,0xfe,0x7d,0xfd,0xe7,0x01,0x81,0x02,0x13,0xe7,0x6e,0xfd,0x74,0x00,0x01,0x00,0x98,0xfe,0x8b,0x04,0x76,0x04,0x00,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x11, +0x23,0x11,0x33,0x11,0x36,0x33,0x20,0x11,0x15,0x33,0x04,0x76,0x8d,0xae,0xc2,0x94,0xaa,0xa3,0xa3,0xb5,0x97,0x01,0x58,0x97,0xfe,0x8b,0x01,0x75,0x01,0x52,0xe1,0x56,0xfe,0x23,0x04,0x00,0xfe,0x64,0x62,0xfe,0x94,0xcf,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1a,0x00,0x00,0x01,0x07,0x11,0x23,0x11,0x07,0x35,0x37, +0x35,0x23,0x35,0x33,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x11,0x37,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x32,0x58,0x76,0x45,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0x02,0xec,0x92,0xfd,0xa6,0x01,0xf8,0x6a,0xa5,0x68,0xd9,0x8c,0xa6,0x51,0x81,0x5a,0x30,0x12,0x94,0x1b,0xd9,0xfe,0x5f,0x8f,0x00,0x01,0x00,0x35, +0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x18,0x00,0x00,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xba,0x0d,0x3b,0x52,0x67,0x39,0x4b,0x2c,0x30,0x3d,0x7b,0x23,0x05,0x09,0x8c,0xfb,0x83,0x03,0x74,0x8c,0x7d,0x8c,0x3a,0x5d, +0x40,0x22,0x12,0x94,0x1b,0x6e,0x00,0x02,0x00,0x5c,0xff,0xe7,0x04,0x53,0x05,0xfe,0x00,0x27,0x00,0x38,0x00,0x00,0x01,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x03,0x04,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x03,0xe7,0xa9,0xab,0x32,0x51,0x3a,0x20,0x19,0x36,0x55,0x3c,0x72,0xa7,0x6e,0x36,0x4a,0x88,0xc0,0x77,0x6d,0xb5,0x83,0x49,0xd3,0xcc,0xee,0x36,0x65,0x91,0x5a,0xa6,0xbf,0xfe,0x92,0x2f,0x57,0x7a,0x4b,0x4f,0x7f,0x59,0x30,0x22,0x4a,0x75,0x05,0xbe,0xb7,0x65,0x12,0x21,0x2f,0x1d,0x18,0x31,0x36,0x3e,0x24, +0x45,0x7c,0x81,0x8f,0x5a,0x75,0xbb,0x83,0x47,0x46,0x7f,0xb1,0x6c,0x9c,0x01,0x01,0x58,0x93,0xa3,0x40,0x63,0x44,0x23,0xfd,0x75,0x95,0xfe,0xec,0x4f,0x7e,0x59,0x30,0x32,0x5d,0x82,0x50,0x3b,0x68,0x63,0x62,0x00,0x02,0x00,0xbc,0x00,0x00,0x05,0x0c,0x05,0x9a,0x00,0x05,0x00,0x09,0x00,0x00,0x21,0x21,0x11,0x33,0x11,0x21,0x05,0x23, +0x11,0x33,0x05,0x0c,0xfd,0x18,0xa8,0x02,0x40,0xfc,0x58,0xa8,0xa8,0x05,0x9a,0xfa,0xfe,0x98,0x05,0x9a,0x00,0x01,0x00,0x1e,0x00,0x00,0x03,0x26,0x05,0xec,0x00,0x13,0x00,0x00,0x01,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x03,0x26,0x88,0xa4,0xb0,0xa4,0x88,0x88,0xa4,0xb0, +0xa4,0x88,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0xfb,0x4e,0x04,0xb2,0x86,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x01,0x00,0x81,0xff,0xe9,0x04,0x4b,0x05,0xee,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27, +0x03,0x8d,0x5a,0x64,0x43,0x7d,0xb1,0x6e,0x77,0xb7,0x7d,0x40,0x3b,0x62,0x7d,0x42,0x80,0x3e,0x6c,0x50,0x2e,0x2a,0x51,0x75,0x4b,0x43,0x6d,0x4e,0x2b,0x38,0x33,0x03,0x9b,0x43,0xda,0x8d,0x75,0xbf,0x89,0x4b,0x56,0xa4,0xf0,0x9b,0x92,0x01,0x11,0xea,0xb9,0x3a,0x6b,0x40,0x9e,0xc2,0xe8,0x8b,0x6c,0xb7,0x84,0x4b,0x36,0x5e,0x82,0x4c, +0x60,0x96,0x32,0x00,0x00,0x01,0x00,0x77,0xff,0xe8,0x03,0xaa,0x05,0xf1,0x00,0x25,0x00,0x00,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x36,0x36,0x37,0x17,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x02,0xf1,0x58,0x61,0x33,0x61,0x8c,0x5a,0x6c,0xa5,0x6f,0x39,0x3b,0x61, +0x7c,0x42,0x78,0x3e,0x6c,0x50,0x2e,0x25,0x47,0x66,0x41,0x31,0x4d,0x34,0x1c,0x38,0x33,0x03,0x96,0x42,0xd8,0x8c,0x75,0xbf,0x89,0x4b,0x56,0xa5,0xf0,0x9b,0x93,0x01,0x13,0xeb,0xb9,0x39,0x65,0x40,0x9f,0xc4,0xec,0x8d,0x6e,0xbb,0x88,0x4d,0x37,0x62,0x86,0x4e,0x61,0x98,0x33,0x00,0x00,0x02,0x00,0x06,0xff,0xe7,0x04,0x96,0x05,0x9a, +0x00,0x1a,0x00,0x29,0x00,0x00,0x01,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x01,0x33,0x01,0x16,0x16,0x17,0x33,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x26,0x04,0x96,0xfe,0x45,0x3c,0x70,0x71,0x76,0x41,0x3b,0x5f,0x43,0x24,0x42,0x6e,0x8d,0x4b,0x30,0x2f,0xfe,0x4f,0xbf, +0x01,0x58,0x05,0x12,0x0e,0x05,0x01,0x65,0xfd,0x96,0x2e,0x4a,0x35,0x1d,0x3a,0x35,0x18,0x35,0x3c,0x42,0x24,0x43,0x05,0x9a,0xfc,0x17,0x87,0xb0,0x69,0x2a,0x26,0x44,0x5e,0x37,0x48,0x6f,0x4b,0x26,0x06,0x03,0x92,0xfd,0x02,0x0a,0x2e,0x25,0x03,0x5b,0xfb,0xea,0x15,0x26,0x35,0x20,0x3b,0x3c,0x19,0x38,0x5c,0x44,0x16,0x00,0x00,0x02, +0xff,0xbd,0xfe,0x1e,0x03,0xd5,0x04,0x00,0x00,0x19,0x00,0x29,0x00,0x00,0x01,0x01,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x01,0x01,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x37,0x26,0x22,0x03,0xd5,0xfe,0x29,0x7e,0xe4,0x32,0x52,0x3b,0x20,0x43,0x6f, +0x8f,0x4b,0x14,0x25,0x13,0xfe,0x79,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x01,0x23,0xfe,0x08,0x2e,0x4c,0x36,0x1e,0x49,0x12,0x2a,0x2b,0x28,0x0f,0x22,0x0e,0x1e,0x04,0x00,0xfb,0x5c,0xfe,0xc2,0x1b,0x36,0x51,0x36,0x48,0x6f,0x4a,0x26,0x02,0x02,0x03,0xe7,0xfc,0xec,0x4e,0x0c,0x26,0x1a,0x03,0x16,0xfb,0x93,0x15,0x25,0x35,0x20, +0x58,0x12,0x25,0x38,0x25,0x51,0x02,0x00,0x00,0x02,0x00,0xbc,0xff,0xe8,0x05,0x8c,0x05,0xb2,0x00,0x18,0x00,0x2d,0x00,0x00,0x01,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x15,0x23,0x11,0x33,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x64, +0x27,0x70,0x7c,0x7e,0x35,0x85,0xe0,0xa2,0x5b,0x67,0xb0,0xea,0x82,0x42,0x7c,0x6c,0x5a,0x21,0xa8,0xa8,0x16,0x65,0x7c,0x84,0x35,0x5d,0xa5,0x7d,0x49,0x40,0x76,0xa5,0x66,0x33,0x82,0x7d,0x69,0x1c,0x04,0xab,0x4a,0x65,0x3d,0x1b,0x6a,0xc3,0xfe,0xeb,0xab,0xa9,0xfe,0xf1,0xbf,0x66,0x22,0x3b,0x4d,0x2b,0xbd,0x05,0x9a,0xfc,0x6d,0x6e, +0x96,0x5c,0x28,0x4e,0x96,0xd9,0x8c,0x8a,0xdc,0x9a,0x52,0x27,0x5c,0x98,0x70,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x40,0x04,0x18,0x00,0x31,0x00,0x3a,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x01,0x0a,0x04,0xaf,0x9b,0x3c,0x79,0x6b,0x52,0x15,0x6a,0x03,0x18,0x2d,0x45,0x30,0x28,0x46,0x3b,0x32,0x15,0x4a,0x1e,0x4d,0x56,0x5c,0x2d,0x54,0x7a,0x1b,0x29,0x67,0x75,0x7d,0x3f,0x75,0xb7,0x7e,0x42,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01, +0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x12,0x39,0x6a,0x57,0x1b,0x1f,0x43,0x37,0x24,0x23,0x3d,0x51,0x2e,0x23,0x57,0x7f,0x54,0x29,0x67,0x62,0x45,0x5c,0x38,0x17,0x47,0x89,0xc6,0x7e,0x77,0xc7,0x8f,0x4f,0x43,0x7f,0xb6,0x73,0x56,0x8b,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x00,0x01,0x00,0x78,0xff,0xee,0x02,0x8e, +0x05,0xfe,0x00,0x25,0x00,0x00,0x37,0x16,0x33,0x32,0x37,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x0e,0x03,0x23,0x22,0x27,0x78,0x2b,0x51,0x69,0x47,0x22,0x24,0x24,0x22,0x47,0x69,0x51,0x2b,0x24,0x3e,0x2d,0x51,0x46,0x36,0x12,0x04,0xa4,0xa4, +0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xa6,0x21,0x63,0x30,0x81,0x53,0x02,0x14,0x52,0x82,0x30,0x63,0x21,0xaa,0x0e,0x1f,0x3b,0x55,0x36,0xd3,0xfa,0x14,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0x00,0x03,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18,0x00,0x13,0x00,0x2f,0x00,0x3e,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x36,0x36,0x35,0x34,0x26,0x03,0x22,0x0e,0x02,0x15,0x14,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x02,0x52,0x71,0xb8,0x82,0x47,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f, +0x59,0x30,0x4d,0x46,0x06,0x1f,0x38,0x4d,0x2d,0x2c,0x4a,0x36,0x1f,0x07,0x3e,0x40,0xaa,0x9f,0x18,0x29,0x1e,0x11,0x70,0x19,0x2b,0x1f,0x11,0x41,0x18,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x73,0xab,0x31,0x18,0x1b,0x2d,0x49,0x34,0x1c,0x1d,0x33,0x46,0x2a, +0x1c,0x16,0x31,0xa7,0x74,0xc1,0xcf,0xfd,0xc5,0x11,0x1f,0x29,0x18,0x70,0x11,0x1e,0x29,0x18,0x31,0x40,0x00,0x01,0x00,0x49,0x00,0x00,0x02,0xc0,0x04,0x33,0x00,0x0b,0x00,0x00,0x37,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x49,0x01,0xd3,0xfe,0x6b,0x01,0x95,0xfe,0x49,0x02,0x5b,0xfd,0x89,0x8b,0x01,0x52,0x8b,0x01, +0x40,0x8b,0xfb,0xcd,0x00,0x02,0x00,0x06,0xfd,0xe3,0x01,0x4a,0x02,0x13,0x00,0x0d,0x00,0x19,0x00,0x00,0x05,0x14,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x35,0x11,0x33,0x27,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x40,0x74,0x6e,0x15,0x2c,0x17,0x3a,0x20,0x6a,0x76,0x3f,0x1d,0x2a,0x2a,0x1d,0x1e,0x2b, +0x2b,0xf7,0x8f,0x97,0x0b,0x0a,0x72,0x25,0xb5,0x02,0x19,0x76,0x28,0x1e,0x1d,0x27,0x27,0x1d,0x1d,0x29,0x00,0x01,0x00,0x1c,0x02,0x9a,0x02,0xdb,0x05,0xa3,0x00,0x08,0x00,0x00,0x01,0x01,0x23,0x01,0x33,0x13,0x17,0x37,0x13,0x02,0xdb,0xfe,0xd7,0x79,0xfe,0xe3,0x83,0xcf,0x0a,0x0a,0xd9,0x05,0xa3,0xfc,0xf7,0x03,0x09,0xfd,0xb7,0x2f, +0x2e,0x02,0x4a,0x00,0x00,0x01,0x00,0x79,0xfe,0x92,0x03,0xde,0x05,0xb2,0x00,0x49,0x00,0x00,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x26,0x27,0x26,0x26,0x27,0x35,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03, +0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x17,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xab,0x23,0x5b,0x38,0x32,0x5f,0x53,0x42,0x15,0x41,0x8c,0x23,0x3d,0x14,0x22,0x5f,0x69,0x6a,0x2d,0x9c,0x98,0x27,0x53,0x7e,0x57,0x4b,0x82,0x60,0x37,0x56,0x8c,0xb3,0x5d,0xd3,0x62,0x7f,0xc7,0x38,0x6d,0x56,0x36,0x29,0x50,0x73,0x4b,0x4d,0x8a,0x68,0x3d, +0x4d,0x83,0xac,0x5f,0x13,0x1d,0x0b,0x0f,0x2c,0x33,0x38,0x1a,0x2c,0x56,0x2b,0xfe,0xb9,0x14,0x13,0x15,0x2b,0x40,0x2b,0x83,0x4a,0x0a,0x18,0x0e,0xc6,0x1e,0x30,0x21,0x12,0x71,0x6d,0x37,0x4f,0x45,0x45,0x2d,0x27,0x4d,0x5e,0x77,0x50,0x62,0x90,0x5f,0x2e,0x33,0xbd,0x58,0x17,0x34,0x52,0x3b,0x37,0x50,0x42,0x3e,0x25,0x26,0x54,0x66, +0x7d,0x4f,0x64,0x8e,0x5d,0x2e,0x04,0x11,0x28,0x17,0x1d,0x2c,0x1d,0x0f,0x14,0x15,0x00,0x01,0x00,0x21,0xfe,0x8b,0x04,0x64,0x05,0x9a,0x00,0x1c,0x00,0x00,0x01,0x01,0x1e,0x03,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x27,0x2e,0x03,0x23,0x23,0x35,0x01,0x21,0x35,0x21,0x04,0x64,0xfc,0xbd,0x3a,0x6d,0x60,0x54,0x23, +0x4e,0x75,0x32,0x29,0x43,0x28,0x40,0x69,0xaa,0xaa,0x2b,0x51,0x54,0x59,0x33,0xae,0x03,0x41,0xfd,0x02,0x04,0x00,0x05,0x72,0xfb,0x2e,0x0c,0x30,0x3e,0x48,0x24,0x51,0x50,0x14,0x15,0x91,0x26,0xba,0x2e,0x47,0x2e,0x18,0x2f,0x04,0xd3,0x98,0x00,0x01,0x00,0x70,0xff,0xea,0x01,0x50,0x01,0xcf,0x00,0x17,0x00,0x00,0x17,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x02,0x37,0x17,0x0e,0x03,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x1b,0x24,0x26,0x0b,0x66,0x0b,0x16,0x13,0x10,0x06,0x24,0x30,0x12,0x1f,0x29,0x16,0x12,0x1e,0x29,0x17,0x20,0x67,0x6e,0x63,0x1d,0x13,0x19,0x3c,0x41,0x41,0x1e,0x0a,0x3d,0x26,0x17,0x29,0x1e,0x12,0x00,0x01,0x00,0x70,0x00,0xf8, +0x01,0x50,0x01,0xd9,0x00,0x13,0x00,0x00,0x37,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xdf,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0xf8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x27,0xff,0xd4, +0x01,0x3c,0x01,0xc0,0x00,0x03,0x00,0x00,0x01,0x03,0x23,0x13,0x01,0x3c,0xa0,0x75,0x75,0x01,0xc0,0xfe,0x14,0x01,0xec,0x00,0x00,0x02,0x00,0x6f,0xff,0xea,0x01,0x9a,0x05,0x08,0x00,0x13,0x00,0x17,0x00,0x00,0x37,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x03,0x13,0x33,0x03,0xdf,0x17,0x29,0x1e, +0x12,0x12,0x1e,0x29,0x17,0x17,0x29,0x1e,0x12,0x12,0x1e,0x29,0x43,0xa0,0x75,0x75,0xc8,0x12,0x1e,0x29,0x17,0x18,0x28,0x1d,0x11,0x11,0x1e,0x28,0x17,0x17,0x29,0x1e,0x12,0x02,0x54,0x01,0xec,0xfe,0x14,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x01,0xda,0x05,0x99,0x00,0x09,0x00,0x00,0x25,0x23,0x03,0x05,0x35,0x05,0x03,0x33,0x03,0x33, +0x01,0xaa,0x4c,0x28,0xfe,0xfa,0x01,0x2e,0x28,0x9c,0x28,0x30,0xe5,0x02,0xb6,0x1e,0x96,0x14,0x01,0x9a,0xfe,0x66,0x00,0x01,0x01,0x2e,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x09,0x00,0x00,0x01,0x33,0x03,0x33,0x03,0x25,0x15,0x25,0x03,0x23,0x01,0x2e,0x30,0x28,0x9c,0x28,0x01,0x2e,0xfe,0xfa,0x28,0x4c,0x03,0xff,0x01,0x9a,0xfe,0x66, +0x14,0x96,0x1e,0xfd,0x4a,0x00,0x00,0x01,0x00,0x30,0x00,0xe5,0x02,0xd8,0x05,0x99,0x00,0x0b,0x00,0x00,0x01,0x25,0x13,0x23,0x13,0x05,0x35,0x05,0x13,0x33,0x13,0x25,0x02,0xd8,0xfe,0xd2,0x28,0x9c,0x28,0xfe,0xd2,0x01,0x06,0x28,0x4c,0x28,0x01,0x06,0x02,0x6b,0x14,0xfe,0x66,0x01,0x9a,0x14,0x96,0x1e,0x02,0xb6,0xfd,0x4a,0x1e,0x00, +0x00,0x02,0x00,0x83,0x01,0x31,0x03,0x27,0x05,0xd3,0x00,0x1f,0x00,0x2d,0x00,0x00,0x01,0x26,0x26,0x27,0x26,0x35,0x34,0x37,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x14,0x1e,0x02,0x17,0x16,0x15,0x14,0x06,0x07,0x01,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x35,0x34,0x2e,0x02,0x02,0x1e,0x18,0x5d,0x3d,0xe9, +0x93,0x6a,0x31,0x5a,0x7d,0x4c,0x84,0x57,0x65,0x7a,0xa8,0x0d,0x32,0x61,0x54,0xdf,0x3d,0x39,0xfe,0xdd,0x65,0x1a,0x3c,0x61,0x47,0x58,0x18,0x38,0x5d,0x01,0x31,0x13,0x3c,0x20,0x7a,0xc3,0xa3,0x51,0x52,0x8d,0x40,0x6b,0x4d,0x2b,0x2b,0x9e,0x3e,0x90,0x1c,0x2f,0x32,0x3a,0x28,0x6a,0xbb,0x4c,0x7b,0x35,0x01,0xd1,0x33,0x6c,0x25,0x3d, +0x39,0x39,0x20,0x43,0x69,0x24,0x3b,0x36,0x35,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0b,0xf2,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0b,0xf2,0xf4,0x0e,0x0b,0xf2,0x01,0xfa,0x81,0x00,0x00,0x01,0x00,0x00,0x01,0xfa,0x0f,0xfe,0x02,0x7b,0x00,0x03,0x00,0x00,0x01,0x21,0x35,0x21,0x0f,0xfe,0xf0,0x02,0x0f,0xfe,0x01,0xfa, +0x81,0x00,0x00,0x01,0x00,0x25,0x06,0x12,0x02,0x7d,0x09,0x46,0x00,0x1f,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x02,0x7d,0x5c,0x85,0x55,0x8a,0x62,0x36,0x3a,0x67,0x8f,0x56,0x74,0x5e,0x6b,0x68,0x6b,0x8d,0x0e,0x01, +0x54,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x34,0x06,0x44,0x32,0x3a,0x68,0x92,0x58,0x60,0x9c,0x6f,0x3d,0x25,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x01,0x00,0x5b,0x06,0x20,0x02,0xe6,0x09,0x3a,0x00,0x09,0x00,0x00,0x01,0x23,0x11,0x01,0x23,0x11,0x33,0x11,0x01,0x33,0x02,0xe6,0x78,0xfe,0x76,0x89, +0x78,0x01,0x87,0x8c,0x06,0x20,0x02,0x64,0xfd,0x9c,0x03,0x1a,0xfd,0x9e,0x02,0x62,0x00,0x03,0xff,0xda,0x06,0x1f,0x01,0x31,0x09,0x2f,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x00,0x13,0x23,0x11,0x33,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xc2,0x76, +0x76,0x2c,0x1b,0x28,0x27,0x1b,0x1d,0x27,0x26,0xeb,0x1d,0x29,0x28,0x1c,0x1c,0x29,0x28,0x06,0x1f,0x02,0x3e,0x51,0x24,0x1c,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x26,0x1a,0x1c,0x25,0x25,0x1c,0x1b,0x25,0x00,0x01,0xff,0xf7,0x05,0x1c,0x02,0x26,0x08,0x5d,0x00,0x14,0x00,0x00,0x01,0x01,0x06,0x06,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32, +0x36,0x37,0x37,0x26,0x02,0x27,0x33,0x13,0x13,0x02,0x26,0xfe,0xfc,0x22,0x68,0x41,0x12,0x24,0x12,0x2b,0x17,0x1b,0x2e,0x0e,0x2a,0x35,0x70,0x36,0x80,0x97,0x9e,0x08,0x5d,0xfd,0x72,0x55,0x5e,0x05,0x06,0x68,0x0f,0x25,0x23,0x65,0x89,0x01,0x1e,0x89,0xfe,0x53,0x01,0xad,0x00,0x02,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x00,0x0e, +0x00,0x16,0x00,0x00,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0xea,0xde,0x01,0x55,0x84,0x79,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x02,0xb0,0x6a,0xfe,0xb9,0x74,0x6e,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x44,0x3e,0x7f,0x00,0x03, +0x00,0x5b,0x06,0x1f,0x03,0x0c,0x09,0x39,0x00,0x03,0x00,0x10,0x00,0x18,0x00,0x00,0x01,0x23,0x11,0x33,0x01,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x03,0x0c,0x77,0x77,0xfd,0x4f,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c,0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfc, +0xe6,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x02,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x00,0x0c,0x00,0x14,0x00,0x00,0x13,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x23,0x5a,0x78,0x83,0x7a,0x88,0x25,0x45,0x62,0x3d,0x7c, +0x71,0x48,0x50,0x98,0x06,0x1f,0x03,0x1a,0xfe,0xb9,0x75,0x6d,0x37,0x59,0x3f,0x22,0x01,0x6b,0xfe,0xff,0x43,0x3f,0x7f,0x00,0x00,0x01,0x00,0x1e,0x06,0x1f,0x03,0xd5,0x09,0x39,0x00,0x2d,0x00,0x00,0x01,0x2e,0x05,0x27,0x33,0x1e,0x03,0x17,0x13,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x3e,0x05,0x37,0x33,0x0e,0x05,0x07,0x23,0x26,0x26, +0x27,0x03,0x01,0x19,0x2b,0x41,0x31,0x24,0x1c,0x14,0x0a,0x79,0x0c,0x20,0x2b,0x38,0x26,0x6b,0x0c,0x12,0x0f,0x0d,0x06,0x78,0x0d,0x1f,0x2b,0x39,0x26,0x1a,0x2a,0x23,0x1c,0x18,0x14,0x09,0x78,0x09,0x15,0x1b,0x24,0x32,0x40,0x2b,0x6b,0x2a,0x3f,0x18,0x68,0x06,0x1f,0x53,0x89,0x7b,0x73,0x7a,0x86,0x50,0x6c,0xa7,0x90,0x89,0x4f,0x01, +0x11,0x28,0x52,0x59,0x60,0x37,0x6e,0xa6,0x91,0x89,0x51,0x36,0x5f,0x5d,0x5f,0x6a,0x7a,0x4a,0x51,0x86,0x7a,0x74,0x7a,0x89,0x52,0x51,0x83,0x3c,0xfe,0xf0,0x00,0x01,0x00,0x5c,0x06,0x12,0x03,0xfb,0x09,0x46,0x00,0x27,0x00,0x00,0x01,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x3e,0x03,0x33,0x32,0x16,0x17, +0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x15,0x21,0x1e,0x03,0x33,0x32,0x36,0x37,0x03,0xfb,0x5e,0x84,0x50,0x84,0x61,0x3a,0x06,0xcf,0x79,0x79,0xd1,0x09,0x40,0x66,0x86,0x4e,0x3b,0x68,0x2f,0x6d,0x66,0x6c,0x8d,0x0d,0x01,0x53,0xfe,0xac,0x06,0x2a,0x42,0x58,0x35,0x39,0x6d,0x35,0x06,0x44,0x32,0x33,0x5e,0x83,0x50,0xfe,0xa9,0x03,0x1a, +0xfe,0xa6,0x52,0x85,0x5d,0x33,0x13,0x12,0x7c,0x38,0x83,0x7b,0x69,0x39,0x5d,0x42,0x23,0x1f,0x21,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28, +0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xc8,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfd,0xa3,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23, +0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfb,0xe1,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64, +0x00,0x00,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x07,0x58,0xfa,0x1f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f, +0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x64,0xff,0xf1,0x02,0x79,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x21,0x23,0x11,0x33,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x02,0x79,0x94,0x94,0xfe,0x5a,0x17,0x28,0x1e,0x12,0x12,0x1e,0x28,0x17,0x17,0x29,0x1f,0x12, +0x12,0x1f,0x29,0x07,0x58,0xf8,0x99,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x71,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01, +0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x06,0x90,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x04,0xfb,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03, +0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x03,0x39,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29, +0x1e,0x12,0x00,0x02,0x00,0x96,0x00,0x00,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x01,0x77, +0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x02,0x00,0x96,0xff,0xf1,0x02,0xab,0x07,0x58,0x00,0x03,0x00,0x17,0x00,0x00,0x13,0x33,0x11,0x23,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x96,0x94,0x94,0x01,0xa6,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29, +0x17,0x16,0x29,0x1e,0x12,0x12,0x1e,0x28,0x07,0x58,0xf8,0xa8,0x0f,0x12,0x1e,0x29,0x17,0x17,0x29,0x1f,0x12,0x12,0x1f,0x29,0x17,0x17,0x29,0x1e,0x12,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x02,0xc9,0x06,0xd4,0xf9,0x2c,0x07,0x58,0x00, +0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x05,0x1f,0xfa,0xe1,0x07,0x58,0xfe,0x4b,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb, +0x94,0x94,0x02,0x35,0x03,0x6a,0xfc,0x96,0x07,0x58,0xfc,0x96,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x07,0x00,0x00,0x01,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x03,0x5f,0xfd,0xcb,0x94,0x94,0x02,0x35,0x01,0xb5,0xfe,0x4b,0x07,0x58,0xfa,0xe1,0x00,0x01,0x00,0x96,0x00,0x00,0x03,0x5f,0x07,0x58,0x00,0x05,0x00,0x00, +0x13,0x33,0x11,0x21,0x15,0x21,0x96,0x94,0x02,0x35,0xfd,0x37,0x07,0x58,0xf9,0x2c,0x84,0x00,0x00,0x04,0x00,0xb4,0xfe,0x31,0x09,0xec,0x07,0x69,0x00,0x0e,0x00,0x26,0x00,0x3a,0x00,0x46,0x00,0x5f,0xb9,0x00,0x0e,0x01,0x43,0xb2,0x07,0x0d,0x36,0xbb,0x01,0x43,0x00,0x20,0x00,0x16,0x01,0x43,0x40,0x0c,0x2c,0x0d,0x20,0x2c,0x2c,0x20, +0x0d,0x03,0x3b,0x41,0x3b,0x44,0xbc,0x01,0x42,0x00,0x3e,0x01,0x41,0x00,0x27,0x01,0x44,0xb2,0x1b,0x07,0x31,0xb8,0x01,0x44,0x40,0x0c,0x0f,0x19,0x0e,0x18,0x04,0x0c,0x01,0x0c,0x06,0x07,0x00,0x07,0x00,0x3f,0xde,0xce,0x33,0x5d,0x3f,0x3f,0xe6,0x3f,0xe6,0x3f,0x3f,0x01,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xe6,0x10,0xe6, +0x10,0xcd,0xe6,0x30,0x31,0x01,0x23,0x0e,0x03,0x07,0x15,0x3e,0x03,0x37,0x11,0x33,0x05,0x32,0x3e,0x04,0x35,0x34,0x02,0x26,0x26,0x23,0x22,0x06,0x06,0x02,0x15,0x14,0x1e,0x04,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x10,0x00,0x21,0x20,0x00,0x11,0x10,0x00,0x21,0x20,0x00,0x04,0x2f, +0x7a,0x26,0x68,0x75,0x79,0x36,0x30,0x65,0x5b,0x49,0x13,0xe0,0x02,0x8f,0x64,0x8f,0x62,0x3b,0x20,0x0a,0x2c,0x61,0x9d,0x70,0x75,0xa8,0x6c,0x33,0x0f,0x24,0x3c,0x5c,0x7e,0x6a,0x3a,0x4a,0x2b,0x10,0x11,0x2c,0x4d,0x3b,0x3c,0x4e,0x2d,0x12,0x12,0x2f,0x50,0xfa,0x1d,0x02,0xb7,0x01,0xe5,0x01,0xe5,0x02,0xb7,0xfd,0x49,0xfe,0x1b,0xfe, +0x1b,0xfd,0x49,0x05,0xba,0x21,0x45,0x3f,0x33,0x0f,0xce,0x0c,0x2a,0x30,0x31,0x13,0xfb,0x51,0x18,0x45,0x73,0x98,0xa6,0xa9,0x4c,0xb8,0x01,0x13,0xb8,0x5c,0x62,0xc2,0xfe,0xe0,0xbe,0x58,0xae,0x9f,0x87,0x64,0x38,0x05,0x0d,0x46,0x8d,0xd3,0x8d,0x87,0xcc,0x87,0x44,0x42,0x85,0xc8,0x85,0x8f,0xd7,0x8f,0x48,0xfd,0xd8,0x01,0xe5,0x02, +0xb7,0xfd,0x49,0xfe,0x1b,0xfe,0x1b,0xfd,0x49,0x02,0xb7,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x08,0x05,0x9a,0x00,0x1a,0x00,0x27,0x00,0x5c,0x40,0x35,0x76,0x15,0x01,0x59,0x22,0x69,0x22,0x89,0x22,0x03,0x22,0x15,0x29,0x05,0x01,0x1c,0x09,0x0d,0x0b,0x06,0x0f,0x07,0x03,0x02,0x0a,0x02,0x0b,0x1a,0x1d,0x0e,0x1d,0x2f,0x02,0x6f, +0x02,0x7f,0x02,0xbf,0x02,0x04,0x2f,0x1d,0x01,0x02,0x1d,0x02,0x1d,0x05,0x27,0x0f,0x06,0x05,0x18,0x00,0x3f,0x3f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x11,0x33,0x10,0xcd,0x32,0x11,0x33,0x10,0xcd,0x32,0x01,0x2f,0x33,0x33,0xce,0x32,0xcd,0x32,0x32,0x10,0xde,0xcd,0x5d,0x5d,0x30,0x31,0x01,0x15,0x21,0x15,0x21,0x11,0x23,0x11, +0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x5b,0x01,0x82,0xfe,0x7e,0xa4,0x77,0x77,0x77,0x77,0x01,0x84,0x5c,0xa7,0x7f,0x4b,0x43,0x80,0xb8,0x76,0xbc,0xa7,0x57,0x85,0x5b,0x2e,0x2a,0x54,0x7e,0x54,0x02,0x7f,0xcf,0x8b,0xfe, +0xdb,0x01,0x25,0x8b,0xcf,0x8b,0x02,0x90,0x2f,0x60,0x92,0x63,0x66,0x98,0x66,0x33,0x02,0x90,0xfd,0xfb,0x1b,0x3d,0x64,0x48,0x47,0x62,0x3d,0x1b,0x00,0x01,0x00,0x32,0x00,0x00,0x05,0xe6,0x05,0x9a,0x00,0x27,0x00,0x57,0x40,0x35,0x67,0x25,0x01,0x00,0x12,0x25,0x13,0x13,0x1e,0x0a,0x0f,0x07,0x3f,0x07,0x02,0x07,0x29,0x1b,0x5f,0x1e, +0x6f,0x1e,0x8f,0x1e,0xaf,0x1e,0x04,0x1e,0x78,0x11,0x88,0x11,0x02,0x11,0x5b,0x14,0x01,0x3a,0x14,0x4a,0x14,0x02,0x14,0x00,0x25,0x25,0x13,0x27,0x06,0x1c,0x09,0x13,0x18,0x00,0x3f,0x33,0x33,0x3f,0x12,0x39,0x2f,0x33,0xcd,0x5d,0x5d,0x32,0x5d,0x01,0x2f,0x5d,0xcd,0x10,0xde,0x5d,0xcd,0x12,0x39,0x2f,0x33,0xcd,0x32,0x00,0x5d,0x30, +0x31,0x01,0x1e,0x04,0x12,0x15,0x15,0x23,0x35,0x34,0x2e,0x04,0x27,0x11,0x23,0x11,0x0e,0x05,0x15,0x15,0x23,0x35,0x34,0x12,0x3e,0x03,0x37,0x11,0x33,0x03,0x5e,0x55,0xa3,0x90,0x78,0x57,0x31,0xa4,0x27,0x45,0x5d,0x6c,0x75,0x3a,0xa4,0x39,0x73,0x6c,0x5e,0x46,0x28,0xa4,0x32,0x58,0x7a,0x90,0xa1,0x53,0xa4,0x04,0x6d,0x09,0x39,0x65, +0x95,0xcd,0xfe,0xf9,0xa5,0xb8,0xbf,0x91,0xe3,0xac,0x79,0x51,0x2c,0x09,0xfc,0x22,0x03,0xe0,0x08,0x2a,0x4f,0x7a,0xad,0xe5,0x94,0xbf,0xb8,0xa8,0x01,0x0b,0xce,0x95,0x63,0x35,0x08,0x01,0x2c,0x00,0x00,0x16,0x00,0x26,0x00,0x00,0x07,0x15,0x05,0xc0,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23, +0x00,0x27,0x00,0x2d,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x57,0x00,0x5c,0x00,0x62,0x00,0x7c,0x00,0x00,0x13,0x35,0x33,0x15,0x23,0x15,0x03,0x35,0x33,0x15,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x13,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x01,0x23, +0x35,0x33,0x35,0x23,0x35,0x33,0x25,0x35,0x33,0x15,0x23,0x35,0x03,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0x23,0x35,0x33,0x01,0x23,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x27,0x15,0x07,0x05,0x21,0x11,0x33,0x11, +0x33,0x05,0x23,0x11,0x34,0x34,0x37,0x03,0x23,0x03,0x15,0x11,0x23,0x11,0x33,0x13,0x16,0x16,0x17,0x36,0x37,0x3e,0x03,0x37,0x33,0x26,0xeb,0x96,0x55,0x55,0x96,0x5b,0xd3,0xd3,0xd3,0x5e,0xd1,0xfd,0x0d,0x55,0x55,0x02,0x22,0xd1,0xfd,0x0d,0x55,0x55,0x55,0x55,0x05,0xae,0xec,0x56,0x96,0x96,0x56,0xfd,0xe6,0xd2,0x01,0x48,0x56,0x56, +0x56,0x56,0xfc,0xb7,0xd1,0xd1,0xd1,0x5e,0xd2,0x01,0x48,0x56,0x56,0xfb,0x91,0x50,0x35,0xc6,0x32,0x50,0xc2,0x48,0x28,0x4d,0x01,0x4b,0x02,0x7d,0xfe,0xed,0x4a,0xc9,0x02,0x4a,0x4b,0x01,0xa9,0x28,0xaa,0x48,0x5b,0x9a,0x08,0x04,0x05,0x0a,0x08,0x12,0x28,0x29,0x28,0x12,0x58,0x04,0xd4,0xec,0x55,0x97,0xfb,0x2c,0xeb,0x95,0x56,0x56, +0x56,0x05,0x6b,0x55,0x55,0xfa,0x95,0x56,0x56,0x01,0x48,0xd2,0x03,0x51,0x55,0x55,0xfd,0x0c,0xd1,0x5e,0xd2,0xf3,0x55,0xec,0x97,0xfa,0x95,0x56,0x95,0xeb,0x56,0x56,0x01,0x48,0xd2,0x01,0x8c,0xd2,0xfb,0x88,0x56,0x56,0x05,0x6b,0x55,0x55,0x55,0x55,0xfd,0x0c,0xd1,0xfe,0xb6,0x8c,0x8c,0x01,0xfb,0xfe,0xce,0xcf,0x02,0x02,0xcf,0xc9, +0x01,0xfb,0xfe,0x42,0x3d,0x01,0x53,0x09,0x14,0x0b,0xfe,0x85,0x01,0x7b,0x29,0xfe,0xae,0x01,0xfb,0xfe,0xa2,0x12,0x0f,0x09,0x1b,0x10,0x28,0x59,0x5c,0x59,0x27,0x00,0x00,0x01,0x00,0xbc,0xfe,0x96,0x06,0x72,0x05,0x9a,0x00,0x26,0x00,0x1f,0x40,0x10,0x0e,0x16,0x21,0x03,0x1c,0x1d,0x03,0x08,0x03,0x03,0x1c,0x12,0x12,0x12,0x00,0x03, +0x00,0x3f,0x3f,0x3f,0x33,0x2f,0x33,0x3f,0x12,0x17,0x39,0x30,0x31,0x01,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x34,0x36,0x37,0x23,0x06,0x07,0x01,0x23,0x01,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x23,0x11,0x33,0x01,0x16,0x17,0x33,0x36,0x36,0x37,0x01,0x06,0x72,0xfe,0xaf,0x3f,0x39,0x32,0x3e,0xb2,0x07,0x07,0x04, +0x18,0x13,0xfe,0x16,0x52,0xfe,0x17,0x14,0x17,0x04,0x04,0x04,0xa2,0xde,0x01,0xb8,0x33,0x0f,0x06,0x16,0x22,0x0d,0x01,0xc1,0x05,0x9a,0xfa,0x9b,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x03,0x8d,0x39,0x8b,0x53,0x63,0x28,0xfb,0xb2,0x04,0x46,0x2e,0x65,0x2b,0x8c,0x62,0xfc,0x40,0x05,0x9a,0xfc,0x18,0x74,0x38,0x3c,0x57,0x1d,0x03,0xe4, +0x00,0x02,0x00,0x16,0x00,0x00,0x05,0x12,0x05,0x9a,0x00,0x07,0x00,0x11,0x00,0x1a,0x40,0x0c,0x11,0x0d,0x06,0x02,0x02,0x01,0x06,0x12,0x04,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x33,0x30,0x31,0x13,0x33,0x13,0x21,0x13,0x33,0x01,0x23,0x03,0x13,0x16,0x16,0x17,0x33,0x36,0x36,0x37,0x13,0x16,0xba,0x98,0x02, +0x60,0x8f,0xbb,0xfd,0xda,0xae,0x9f,0xe1,0x05,0x0c,0x05,0x04,0x05,0x0b,0x07,0xdf,0x05,0x9a,0xfe,0x6e,0x01,0x92,0xfa,0x66,0x03,0x71,0xfd,0x9d,0x0f,0x30,0x21,0x1f,0x30,0x11,0x02,0x63,0xff,0xff,0x00,0x60,0xfe,0x96,0x03,0x62,0x04,0x18,0x02,0x26,0x00,0x46,0x00,0x00,0x00,0x07,0x08,0x5d,0x02,0x89,0x00,0x00,0xff,0xff,0x00,0xa6, +0xfe,0x96,0x04,0x91,0x05,0xec,0x02,0x26,0x00,0x4b,0x00,0x00,0x00,0x07,0x08,0x5d,0x03,0xba,0x00,0x00,0x00,0x03,0x00,0x6e,0x00,0x00,0x05,0x5b,0x05,0x9a,0x00,0x2a,0x00,0x32,0x00,0x3c,0x00,0x29,0x40,0x15,0x1f,0x35,0x91,0x2b,0x13,0x91,0x01,0x01,0x2b,0x0a,0x2b,0x0a,0x00,0x3c,0x91,0x14,0x03,0x2c,0x91,0x00,0x12,0x00,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x33,0x2f,0xed,0x10,0xed,0x39,0x30,0x31,0x21,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e, +0x02,0x35,0x34,0x21,0x01,0xe8,0x47,0x28,0x3b,0x27,0x13,0x06,0x05,0x98,0x09,0x28,0x4b,0x6a,0x41,0x5c,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xe4,0x95,0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x02,0x9c,0x17,0x25,0x31,0x1a,0x0f,0x2c,0x13,0x30,0x29,0x47, +0x67,0x44,0x20,0x02,0x68,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0x02,0x9c,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0x00,0x02,0x00,0x75,0xfe,0xab,0x05,0x80,0x05,0xec,0x00,0x30,0x00,0x43,0x00,0x24,0x40,0x14,0x12,0x0f,0x21,0x03,0x15,0x23, +0x15,0x2d,0x96,0x05,0x36,0x95,0x1f,0x15,0x40,0x95,0x15,0x10,0x11,0x00,0x00,0x3f,0x3f,0xed,0x3f,0xed,0xdc,0xed,0x3f,0x12,0x17,0x39,0x30,0x31,0x05,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x23,0x15,0x23,0x11,0x0e,0x03,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x03,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x03,0x4d,0x10,0x3c,0x4c,0x54,0x27,0x7d,0xac,0x6c,0x30,0x2b,0x57,0x83,0x58,0xa4,0x46,0x9f,0x5b,0x66,0xa9,0x78,0x43,0x40,0x79,0xad,0x6d,0xcc,0x67,0x04,0xa4,0x2f,0x44,0x2c,0x16,0x8d,0x98,0x3f,0x77,0x27,0xa9,0x2b,0x4e, +0x6b,0x40,0x4b,0x76,0x52,0x2b,0x22,0x50,0x83,0x61,0x4e,0x85,0x39,0xf7,0x12,0x22,0x1a,0x10,0x44,0x79,0xa9,0x65,0x4c,0xc0,0xc9,0xc3,0x4e,0x02,0x90,0xfd,0xe0,0x23,0x29,0x48,0x85,0xbb,0x72,0x7f,0xd1,0x94,0x52,0xac,0x94,0x02,0x9c,0x41,0x91,0x92,0x89,0x39,0xa8,0xae,0x1d,0x19,0x02,0x4c,0x3f,0x6f,0x52,0x30,0x3b,0x70,0x9f,0x65, +0x46,0x83,0x66,0x3d,0x2b,0x25,0x00,0x01,0xff,0x9a,0xfe,0x96,0x03,0x94,0x05,0x9a,0x00,0x15,0x00,0x20,0x40,0x10,0x14,0x91,0x01,0x01,0x09,0x91,0x06,0x06,0x02,0x11,0x91,0x0c,0x04,0x91,0x02,0x03,0x00,0x3f,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x30,0x31,0x03,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x10, +0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x23,0x1f,0xdb,0x02,0xd8,0xfd,0xd0,0x01,0x20,0xfe,0xe0,0xfe,0xae,0x3f,0x39,0x32,0x3e,0xb2,0xdb,0x03,0x12,0x02,0x88,0x98,0xfe,0x10,0x97,0xfd,0xba,0xfe,0x61,0x14,0xa0,0x1d,0x01,0x08,0x02,0x46,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x02,0xa0,0x06,0x02,0x00,0x1d,0x00,0x33,0xb6,0x05, +0x95,0x08,0x08,0x02,0x95,0x1d,0xb8,0xff,0xc0,0x40,0x14,0x09,0x0c,0x48,0x1d,0x1d,0x03,0x1c,0x95,0x19,0x0f,0x16,0x95,0x11,0x00,0x09,0x95,0x0c,0x0f,0x03,0x15,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xed,0x33,0x2f,0xed,0x30,0x31,0x01,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x34, +0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x15,0x02,0x77,0xf0,0xa3,0xaf,0xaf,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0xf0,0xf0,0x03,0x06,0x8c,0xfd,0x86,0x02,0x7a,0x8c,0x6e,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0x8c,0x6e,0x00,0x02,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0xb2, +0x00,0x21,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x92,0x35,0x35,0x00,0x21,0x03,0x1f,0x2d,0x91,0x1a,0x04,0x02,0x22,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e, +0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44,0x22,0x43,0x79,0xab,0x68,0x3b,0x70,0x64,0x56,0x22,0xa8,0xfd,0xbe,0x4d,0x7b,0x63, +0x4e,0x21,0x21,0x54,0x63,0x72,0x3f,0x47,0x69,0x46,0x23,0xae,0x9d,0xc2,0xbc,0x30,0x55,0x73,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x14,0x23,0x31,0x1d,0x6d,0xfa,0xdd,0x27,0x40,0x52,0x2c,0x02,0xf3,0x2d,0x4b,0x36,0x1d,0x23,0x40,0x59,0x35,0x7e,0x80,0x8b, +0x8a,0x8a,0x3e,0x66,0x49,0x28,0x00,0x02,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x19,0x00,0x1f,0x00,0x3d,0x00,0x26,0x40,0x14,0x0f,0x36,0x96,0x34,0x34,0x01,0x1f,0x0f,0x1d,0x2b,0x95,0x18,0x10,0x02,0x20,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x01,0x32,0x3e,0x02,0x37,0x11,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64, +0x6f,0x36,0x5d,0x7c,0x47,0x2e,0x52,0x45,0x39,0x16,0xa4,0xfe,0x54,0x24,0x4a,0x45,0x3e,0x17,0x16,0x38,0x41,0x48,0x25,0x37,0x4d,0x31,0x16,0x6d,0x7b,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x12,0x1c,0x23,0x12,0x4a,0xfc,0x71,0x10, +0x1e,0x2e,0x1e,0x02,0x28,0x1b,0x2d,0x21,0x12,0x19,0x2b,0x3c,0x22,0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x00,0x02,0x00,0x5e,0xff,0xe8,0x05,0x14,0x05,0xb2,0x00,0x1e,0x00,0x39,0x00,0x1c,0x40,0x0e,0x0a,0x28,0x92,0x27,0x27,0x00,0x1f,0x91,0x15,0x04,0x30,0x92,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39, +0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x02,0x6a,0x7b,0xc3,0x87,0x47,0x2d,0x54,0x77,0x4a,0x44,0x66,0x44, +0x22,0x44,0x80,0xb8,0x74,0x94,0xf3,0xae,0x5f,0x62,0xb3,0xfb,0x90,0x50,0x72,0x4b,0x23,0xae,0x9d,0xc2,0xbc,0x31,0x58,0x7a,0x4a,0x75,0xc0,0x87,0x4a,0x46,0x81,0xb7,0x18,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x12,0x38,0x4f,0x6a,0x44,0x54,0x8b,0x63,0x37,0x6a,0xbf,0xfe,0xf6,0xa0,0xaa,0xfe,0xe9,0xc8,0x6e,0x05,0x32, +0x23,0x40,0x59,0x35,0x7e,0x80,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x52,0x99,0xdc,0x8a,0x8f,0xde,0x97,0x4e,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x10,0x04,0x19,0x00,0x1c,0x00,0x3b,0x00,0x1e,0x40,0x0f,0x00,0x1c,0x1d,0x96,0x3b,0x3b,0x08,0x26,0x95,0x12,0x16,0x30,0x95,0x08,0x10,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed, +0x39,0x39,0x30,0x31,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x17,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x33,0x01,0x5c,0x64,0x6f,0x38,0x68,0x96,0x5d,0x6f,0xb8, +0x84,0x49,0x49,0x87,0xc0,0x78,0x63,0x9d,0x6d,0x3b,0x24,0x42,0x5d,0x39,0xbe,0x0b,0x4a,0x67,0x3f,0x1c,0x80,0x89,0x54,0x82,0x58,0x2e,0x24,0x50,0x82,0x5e,0x37,0x56,0x3c,0x1f,0x18,0x36,0x59,0x41,0x06,0x02,0x17,0x15,0x6c,0x5a,0x45,0x6d,0x4c,0x29,0x43,0x85,0xc8,0x85,0x71,0xc5,0x92,0x54,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28, +0x05,0x44,0x17,0x2c,0x42,0x2a,0x57,0x57,0x3b,0x6a,0x92,0x56,0x52,0x92,0x6d,0x3f,0x19,0x2b,0x3c,0x22,0x29,0x3b,0x26,0x13,0x00,0x01,0x00,0x5e,0xff,0xe8,0x04,0x8e,0x05,0x9a,0x00,0x2b,0x00,0x21,0x40,0x11,0x0f,0x1c,0x92,0x1b,0x1b,0x00,0x2b,0x03,0x15,0x03,0x02,0x24,0x92,0x05,0x13,0x00,0x12,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f, +0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x15,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x04,0x8e,0xa8,0x4e,0xd4,0x83,0x6c,0xb1,0x80,0x46,0x2d,0x54,0x77,0x4a,0x7d,0x8a,0xa8,0x31, +0x58,0x7b,0x4a,0xc2,0xbc,0x30,0x55,0x73,0x43,0x4d,0x7b,0x63,0x4e,0x21,0xa8,0x8c,0x4b,0x59,0x3f,0x72,0x9e,0x5f,0x45,0x77,0x5a,0x3a,0x08,0x04,0x22,0x87,0x74,0x01,0x8b,0xfe,0x76,0x39,0x56,0x39,0x1d,0x8b,0x8a,0x8a,0x3e,0x66,0x49,0x28,0x27,0x40,0x52,0x2c,0x04,0x3e,0x00,0x01,0x00,0x60,0xff,0xe8,0x03,0x97,0x04,0x00,0x00,0x2b, +0x00,0x21,0x40,0x11,0x0f,0x1b,0x96,0x1a,0x1a,0x00,0x2b,0x0f,0x15,0x0f,0x02,0x24,0x92,0x05,0x16,0x00,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x21,0x23,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x0e, +0x02,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x37,0x11,0x33,0x03,0x97,0xa4,0x3c,0x8d,0x5f,0x4f,0x85,0x61,0x36,0x24,0x42,0x5d,0x39,0x64,0x6f,0xa4,0x6d,0x7a,0x06,0x0b,0x4a,0x67,0x3f,0x1c,0x78,0x70,0x24,0x4a,0x45,0x3e,0x17,0xa4,0x5d,0x34,0x41,0x2b,0x4f,0x71,0x46,0x34,0x57,0x41,0x28,0x05,0x05,0x15,0x6c,0x5a,0x01,0x0e,0xfe,0xec, +0x51,0x4c,0x81,0x17,0x2c,0x42,0x2a,0x57,0x57,0x10,0x1e,0x2e,0x1e,0x03,0x15,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x03,0xe2,0x05,0xb2,0x02,0x06,0x01,0xee,0x00,0x00,0x00,0x02,0x00,0x5e,0xfe,0x1e,0x05,0x2c,0x05,0xb2,0x00,0x1f,0x00,0x36,0x00,0x25,0x40,0x14,0x19,0x91,0x16,0x2f,0x14,0x01,0x14,0x11,0x03,0x0f,0x1d,0x00,0x20,0x91, +0x0a,0x04,0x2a,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x3f,0x2f,0x5d,0x33,0xed,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x35,0x33,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04, +0x35,0x11,0x34,0x2e,0x02,0x02,0xb9,0x86,0xde,0x9f,0x58,0x5c,0xa9,0xf0,0x94,0x4e,0x80,0x66,0x4d,0x1c,0xa8,0xfd,0x6b,0xf4,0xb6,0xdf,0xc9,0xf2,0xfd,0x40,0xe1,0x80,0x6c,0xad,0x7a,0x42,0x42,0x79,0xa9,0x66,0x33,0x67,0x5f,0x53,0x3d,0x23,0x3b,0x6e,0x9a,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x21,0x39,0x4b,0x2a, +0xb7,0xfa,0xf0,0xfd,0x94,0x4f,0xb2,0x69,0xdf,0xdd,0x64,0x6d,0x81,0x05,0x32,0x56,0x9c,0xd9,0x84,0x84,0xd9,0x9a,0x55,0x13,0x2c,0x48,0x6a,0x90,0x5d,0x01,0x0d,0x6c,0xa2,0x6c,0x36,0x00,0x00,0x02,0x00,0x28,0x00,0x00,0x04,0x9d,0x05,0x9a,0x00,0x20,0x00,0x2c,0x00,0x32,0x40,0x1c,0x1e,0x07,0x92,0x2b,0x17,0x2b,0x23,0x92,0x11,0x8f, +0x11,0xef,0x11,0x02,0x61,0x11,0x01,0x2b,0x11,0x2b,0x11,0x01,0x15,0x03,0x1f,0x91,0x01,0x12,0x00,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x5d,0x10,0xed,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x21,0x21,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06, +0x07,0x11,0x21,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x04,0x9d,0xfd,0x18,0x0b,0x10,0x13,0x19,0x15,0x46,0x71,0x4f,0x2b,0x23,0x3f,0x58,0x35,0x25,0x53,0x26,0xa8,0x3c,0x75,0x3c,0x3c,0x75,0x3c,0x02,0x40,0xfd,0x18,0x04,0x8f,0x2a,0x39,0x12,0x29,0x43,0x30,0x25,0x02,0x22,0x01,0x01,0x01,0x01,0x21,0x3e,0x5b,0x3a, +0x31,0x53,0x3b,0x21,0x16,0x22,0x01,0xe0,0xfd,0x43,0x1a,0x49,0x34,0xa6,0x2a,0x3f,0x17,0xfe,0x4a,0x02,0x10,0xc4,0x30,0x2a,0x1d,0x2a,0x1c,0x0d,0x00,0x01,0x00,0x02,0x00,0x00,0x03,0xe8,0x05,0x9a,0x00,0x10,0x00,0x19,0x40,0x0d,0x0e,0x12,0x04,0x10,0x0a,0x03,0x06,0x09,0x12,0x06,0x03,0x01,0x03,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39, +0x3f,0x30,0x31,0x13,0x33,0x01,0x16,0x17,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x06,0x07,0x01,0x23,0x01,0x02,0xea,0x02,0x2a,0x1f,0x07,0x04,0xa8,0xa8,0x04,0x0e,0x18,0xfd,0xe8,0xd1,0x02,0x67,0x05,0x9a,0xfd,0x70,0x25,0x0d,0x02,0xc2,0xfa,0x66,0x02,0xa2,0x16,0x1b,0xfd,0x8f,0x02,0xb0,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c, +0x05,0x9a,0x00,0x07,0x00,0x0f,0xb6,0x05,0x03,0x06,0x02,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x04,0x0c,0xfc,0x1d,0x01,0x9d,0xa8,0x01,0x9e,0x98,0x05,0x02,0xfa,0xfe,0x00,0x00,0x01,0x00,0x32,0x02,0x79,0x05,0xcc,0x03,0x21,0x00,0x03,0x00,0x08,0xb1,0x01,0x03,0x00,0x2f,0xcd, +0x30,0x31,0x01,0x15,0x21,0x35,0x05,0xcc,0xfa,0x66,0x03,0x21,0xa8,0xa8,0x00,0x03,0xff,0xf9,0xff,0xe8,0x04,0xc5,0x04,0x18,0x00,0x27,0x00,0x30,0x00,0x39,0x00,0x30,0x40,0x19,0x1c,0x0f,0x20,0x0c,0x35,0x1d,0x0f,0x19,0x14,0x04,0x2d,0x2d,0x07,0x28,0x95,0x14,0x10,0x31,0xec,0x07,0x16,0x25,0xec,0x02,0x16,0x00,0x3f,0xed,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0x33,0x33,0xcd,0x32,0x32,0x3f,0x30,0x31,0x25,0x06,0x23,0x22,0x03,0x23,0x02,0x21,0x22,0x2e,0x02,0x27,0x23,0x35,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x1e,0x03,0x33,0x32,0x37,0x01,0x22,0x0e,0x02,0x07,0x21,0x26,0x26,0x03,0x32,0x36,0x37,0x21,0x1e, +0x03,0x04,0xc5,0x33,0x2c,0x9a,0x36,0x04,0x95,0xfe,0xf7,0x5a,0x94,0x6b,0x3d,0x04,0x61,0x67,0x0c,0x4d,0x79,0xa3,0x63,0x3f,0x72,0x60,0x4c,0x1a,0x04,0x55,0xac,0xab,0xa0,0xaa,0x10,0x20,0x26,0x2c,0x1c,0x16,0x12,0xfd,0x74,0x3f,0x67,0x4e,0x33,0x0a,0x02,0x53,0x2a,0x92,0x95,0x66,0xa8,0x3a,0xfd,0xb1,0x05,0x29,0x43,0x5d,0x05,0x0d, +0x01,0x25,0xfe,0xcb,0x48,0x7f,0xae,0x66,0x81,0x68,0xac,0x7c,0x44,0x26,0x4a,0x6a,0x44,0x01,0x06,0xfe,0x44,0x81,0x59,0x75,0x46,0x1d,0x05,0x02,0xf9,0x32,0x59,0x79,0x48,0xa2,0xaa,0xfc,0xe8,0xa6,0xa5,0x47,0x79,0x58,0x33,0x00,0x00,0x03,0x00,0x5a,0xff,0xe8,0x06,0x58,0x04,0x18,0x00,0x29,0x00,0x38,0x00,0x41,0x00,0x43,0x40,0x24, +0x23,0x25,0x95,0x20,0x10,0x18,0x16,0x95,0x1b,0x39,0x95,0x28,0x2a,0x95,0x14,0x08,0x0c,0x28,0x1d,0x14,0x1b,0x28,0x14,0x28,0x14,0x0c,0x1b,0x10,0x33,0x95,0x0c,0x16,0x3e,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x10,0xed,0x32,0x3f,0xed,0x32,0x30, +0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x15,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x10,0x25,0x25,0x10,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x05,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x37,0x1e,0x03,0x33,0x32,0x36,0x37,0x06,0x58,0x38, +0x6b,0x9d,0x65,0x80,0xcc,0x3e,0x04,0x91,0xf2,0x4d,0x79,0x55,0x2d,0x01,0x7f,0x01,0x06,0xd7,0xaf,0x9b,0x94,0xc8,0xdb,0x48,0x3c,0xb8,0x7b,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfc,0x87,0xcb,0x8b,0x89,0x1b,0x33,0x49,0x2d,0x3b,0x67,0x4d,0x2c,0xa8,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73,0xb6,0x7f,0x43, +0x7e,0x6e,0x07,0xe5,0x2a,0x4d,0x6d,0x44,0x01,0x2c,0x18,0x10,0x01,0x2a,0x7a,0xa4,0x60,0xb1,0x56,0x5b,0x62,0x9a,0x72,0xb9,0xac,0x50,0x0c,0x08,0x52,0x5f,0x24,0x3c,0x2b,0x17,0x2d,0x50,0x6c,0x3f,0x04,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0x40,0x04,0x12,0x00,0x20,0x00,0x2a,0x00,0x22,0x40,0x0f, +0x1f,0x1e,0x14,0x21,0x1e,0x21,0x1e,0x21,0x01,0x25,0x0d,0x20,0x19,0x01,0x15,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x30,0x31,0x05,0x37,0x2e,0x03,0x35,0x11,0x34,0x3e,0x02,0x37,0x25,0x33,0x13,0x16,0x15,0x14,0x07,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x17,0x01,0x03,0x25,0x36,0x35, +0x27,0x0e,0x03,0x15,0x01,0xac,0x09,0x62,0x82,0x4d,0x20,0x07,0x10,0x1c,0x14,0x01,0x7c,0x31,0xd9,0x0f,0x1a,0xfe,0x35,0x2f,0x45,0x50,0x21,0x21,0x31,0x2d,0x2f,0x1e,0x2d,0xfe,0xaf,0x92,0x01,0x0b,0x11,0xa7,0x19,0x2b,0x1f,0x12,0x0d,0x1a,0x1e,0x4b,0x5b,0x6c,0x40,0x01,0x18,0x23,0x2d,0x20,0x17,0x0c,0xea,0xfe,0xd6,0x1a,0x09,0x0f, +0x10,0xfe,0xef,0x30,0x44,0x2d,0x15,0x07,0x13,0x21,0x19,0x2d,0xfe,0xd2,0x02,0x09,0x9a,0x0b,0x07,0xf1,0x10,0x1a,0x23,0x35,0x2c,0x00,0x00,0x02,0x00,0x13,0xff,0xe8,0x04,0x23,0x04,0x18,0x00,0x20,0x00,0x29,0x00,0x36,0x40,0x1e,0x11,0x0b,0xff,0x06,0x01,0x06,0x03,0x14,0x03,0x01,0x95,0x29,0xe0,0x03,0xf0,0x03,0x02,0x03,0x29,0x03, +0x29,0x0e,0x24,0x95,0x1b,0x10,0x09,0x95,0x0e,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x11,0x33,0x10,0xdd,0x5d,0xce,0x33,0x30,0x31,0x01,0x21,0x14,0x17,0x21,0x15,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x23,0x35,0x33,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x27, +0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x03,0xdd,0xfd,0x2d,0x06,0x03,0x13,0xfd,0x15,0x29,0x92,0x65,0xac,0x92,0x88,0xdd,0xa1,0xdb,0x31,0x71,0x53,0x06,0x49,0x7f,0xad,0x63,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0x26,0x21,0x81,0x4d,0x50,0x72,0x9a,0x62,0x98,0x8f,0x81,0x33,0x39,0x77,0xc7,0x8f, +0x4f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x29,0xff,0xe8,0x04,0xc4,0x04,0x18,0x00,0x26,0x00,0x2f,0x00,0x27,0x40,0x14,0x0f,0x95,0x1b,0x1b,0x01,0x95,0x2f,0x13,0x2f,0x13,0x2f,0x09,0x2a,0x95,0x21,0x10,0x04,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f, +0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x23,0x22,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x33,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x04,0xc4,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88,0xdd,0x75,0xab,0x72,0x3a,0x04,0x0e,0x8a,0x29, +0x89,0x27,0x25,0x44,0x60,0x3b,0x22,0x0e,0x4c,0x77,0x9f,0x60,0x6f,0xa0,0x66,0x30,0xa8,0x01,0x86,0x79,0x41,0x66,0x4b,0x2e,0x09,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x4e,0x87,0xb4,0x66,0x77,0x4a,0x47,0x49,0x56,0x38,0x5a,0x40,0x22,0x5b,0x9f,0x77,0x45,0x50,0x88,0xb2,0x61,0x35,0x8f,0x9d,0x34,0x54,0x6c,0x38,0xff,0xff,0x00,0x35, +0x00,0x00,0x02,0xa0,0x06,0x02,0x02,0x06,0x00,0x49,0x00,0x00,0x00,0x03,0x00,0x60,0xfe,0x11,0x04,0x35,0x04,0x18,0x00,0x2d,0x00,0x42,0x00,0x4e,0x00,0x45,0x40,0x2b,0x24,0x15,0x18,0x27,0x0f,0x33,0x95,0x22,0x10,0x24,0x12,0x01,0x02,0x46,0x2a,0x12,0x04,0x05,0x49,0x96,0x2f,0x0f,0x01,0x0f,0x3d,0x95,0xef,0x18,0x01,0x18,0x40,0x09, +0x0f,0x48,0x18,0x15,0x43,0x96,0x05,0x1b,0x2d,0x00,0x1b,0x00,0x3f,0x32,0x3f,0xed,0x3f,0x2b,0x5d,0xed,0xde,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0xed,0x3f,0x12,0x39,0x39,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x17,0x33,0x35,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x01,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0xaa,0x1c,0x2b,0x49,0xbc,0x63,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x45,0x26,0x04,0x75,0xeb, +0x5f,0x9d,0x6f,0x3d,0x41,0x79,0xae,0x6d,0xcf,0x64,0x04,0xa4,0x4a,0x26,0x38,0x11,0xc9,0x2c,0x4e,0x69,0x3d,0x4b,0x78,0x54,0x2d,0x2a,0x4f,0x6f,0x45,0x45,0x72,0x53,0x2d,0xfe,0x95,0x4d,0x78,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x48,0xfe,0x11,0x42,0x36,0x3b,0x30,0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5b,0x7e,0x70,0xc4, +0x47,0x83,0xba,0x73,0x82,0xd2,0x95,0x50,0xa6,0x8e,0xfc,0x52,0xd0,0x83,0x29,0x60,0x39,0x04,0x29,0x3c,0x6b,0x51,0x30,0x38,0x6c,0x9c,0x64,0x54,0x8b,0x63,0x36,0x35,0x5d,0x80,0x4b,0xfc,0xd1,0x2a,0x26,0x1f,0x22,0x27,0x1d,0x23,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0xb7,0x05,0xec,0x00,0x2b,0x00,0x2b,0x40,0x15,0x21,0x20, +0x11,0x03,0x03,0x1a,0x27,0x0a,0x0b,0x20,0x27,0x0b,0x0b,0x27,0x20,0x03,0x16,0x2a,0x00,0x16,0x15,0x00,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x11,0x33,0x01,0xae,0x0f,0x1d,0x0e,0x1b,0x25,0x17,0x09,0x57,0x27,0x58,0x47,0x6f,0x68,0x0e,0x18,0x0c,0xa4,0x0f,0x20,0x11,0x32,0x29,0x2d,0x2a,0x26,0x4d,0x53,0x6a,0x68,0x1a,0x1e,0xa4,0x03,0x1f,0x06,0x08,0x10,0x1c,0x27,0x17,0x5b,0x19,0x52,0x17, +0x63,0x4c,0x5f,0x70,0x04,0x03,0xfd,0x4d,0x02,0xff,0x05,0x07,0x3c,0x2e,0x34,0x32,0x0e,0x51,0x0e,0x62,0x55,0x5f,0x70,0x08,0x02,0x84,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0xa4,0x05,0xec,0x00,0x26,0x00,0x4f,0x6e,0x00,0x00,0x27,0x00,0xd8,0x00,0x00,0xfe,0x71,0x00,0x07,0x00,0xd8,0x00,0x00,0xfd,0x3b,0x00,0x03,0xff,0xf6,0x00,0x00, +0x01,0xfa,0x05,0xec,0x00,0x15,0x00,0x1b,0x00,0x22,0x00,0x29,0x40,0x13,0x20,0x15,0x15,0x18,0x02,0x1f,0x0d,0x0d,0x19,0x0a,0x02,0x0a,0x02,0x0a,0x01,0x0b,0x00,0x01,0x15,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x21,0x23,0x11,0x2e,0x03,0x35,0x34,0x36,0x37,0x11,0x33, +0x11,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x27,0x14,0x17,0x35,0x06,0x06,0x05,0x34,0x26,0x27,0x15,0x36,0x36,0x01,0x4a,0xa4,0x27,0x41,0x2e,0x1a,0x60,0x50,0xa4,0x50,0x60,0x1a,0x2f,0x41,0x26,0xe4,0x40,0x1d,0x23,0x01,0x1e,0x20,0x1a,0x1a,0x20,0x02,0x1c,0x0a,0x2a,0x3a,0x4a,0x2c,0x5b,0x7a,0x17,0x02,0x00,0xfe,0x01,0x16,0x7a,0x55, +0x2a,0x4a,0x3c,0x2d,0x0c,0xe6,0x5f,0x1e,0xf5,0x13,0x3f,0x26,0x23,0x3c,0x13,0xe3,0x13,0x3b,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0xb4,0x04,0x18,0x00,0x3a,0x00,0x47,0x00,0x36,0x40,0x1e,0x36,0x1a,0x95,0x38,0x03,0x96,0x01,0x01,0x3b,0x96,0x13,0x13,0x20,0x38,0x10,0x2e,0x24,0x95,0x31,0x10,0x2d,0x0f,0x2a,0x15,0x20,0x15,0x43,0x95, +0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33, +0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x54,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0x19,0x37,0x57,0x3e,0x35,0x5c,0x44,0x27,0xa4,0xe9,0x35,0x5b,0x42,0x26,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5d,0x4b,0x38, +0x0e,0x72,0xe2,0x01,0x52,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x74,0x54,0x7a,0x4f,0x25,0x34,0x5a,0x76,0x42,0xfd,0xb8,0x02,0x60,0x01,0x2e,0x30,0x56,0x78,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0xf2, +0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xff,0xe8,0x04,0x58,0x04,0x18,0x00,0x26,0x00,0x33,0x00,0x2b,0x40,0x17,0x20,0x17,0x95,0x23,0x03,0x96,0x00,0x00,0x27,0x96,0x13,0x13,0x1c,0x23,0x10,0x1f,0x0f,0x1c,0x15,0x2f,0x95,0x09,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed, +0x10,0xed,0x32,0x30,0x31,0x01,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x10,0x23,0x22,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0xf8,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42, +0x24,0x2a,0x4a,0x66,0x3c,0x56,0xee,0x7b,0x51,0x50,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0xeb,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x01,0xd8,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x70,0x01,0x46,0x5d,0x5c,0x8d,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfe,0xf7,0x16,0x24,0x2f,0x19,0x35,0x3f, +0x50,0x43,0x63,0x00,0x00,0x02,0x00,0xa6,0xfe,0x11,0x04,0x1c,0x04,0x18,0x00,0x2e,0x00,0x3a,0x00,0x3f,0x40,0x28,0x17,0x95,0x24,0x10,0x20,0x0f,0x24,0x12,0x01,0x02,0x32,0x2b,0x12,0x04,0x05,0x35,0x96,0x2f,0x0f,0x5f,0x0f,0x6f,0x0f,0xef,0x0f,0x04,0x06,0x0f,0x01,0x0f,0x0f,0x1d,0x15,0x2e,0x00,0x00,0x2f,0x96,0x05,0x1b,0x00,0x3f, +0xed,0x33,0x2f,0x33,0x3f,0x33,0x2f,0x5d,0x5d,0xed,0x12,0x17,0x39,0x5d,0x3f,0x3f,0xed,0x30,0x31,0x01,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x35,0x11,0x10,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x16,0x16,0x17,0x25, +0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x91,0x1c,0x2a,0x4a,0xbb,0x64,0x3a,0x69,0x50,0x2f,0x34,0x56,0x71,0x3e,0x51,0x9e,0x46,0x26,0xee,0x3d,0x68,0x4c,0x2b,0xa4,0xa4,0x04,0x74,0xdc,0xa9,0xb1,0x27,0x23,0x26,0x37,0x11,0xfd,0xca,0x44,0x83,0x2d,0x30,0x6e,0x3e,0x4d,0x51,0x47,0xfe,0x11,0x42,0x36,0x3b,0x30, +0x1c,0x35,0x4b,0x2f,0x31,0x4b,0x33,0x1b,0x29,0x27,0x5a,0x7f,0x02,0x0c,0x01,0x46,0x31,0x57,0x78,0x46,0xfd,0xb8,0x04,0x00,0xaa,0xc2,0xd8,0xce,0xfd,0xca,0x61,0x9e,0x3f,0x28,0x60,0x39,0x63,0x29,0x26,0x1f,0x23,0x27,0x1d,0x23,0x2a,0x00,0x00,0x02,0x00,0x64,0xff,0xd8,0x03,0xc9,0x04,0x12,0x00,0x1e,0x00,0x30,0x00,0x0d,0xb4,0x30, +0x1e,0x25,0x10,0x16,0x00,0x3f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x07,0x1e,0x03,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x05,0x11,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x26,0x26,0x27,0x03,0x02,0x20,0x03,0x23,0x36,0x40,0x20,0x16,0x15,0x19,0x38, +0x5c,0x42,0xbd,0x43,0x04,0xbe,0xb4,0x10,0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0xfe,0xa6,0x2d,0x52,0x42,0x2d,0x06,0x0e,0x26,0x22,0x18,0x29,0x28,0x30,0x56,0x13,0x03,0xd9,0x0e,0x05,0x3b,0x55,0x67,0x32,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x14,0x50,0x2d,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0xd4, +0xfd,0xb8,0x15,0x1e,0x15,0x0a,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x4a,0x74,0x2a,0x00,0x03,0x00,0x54,0xff,0xb4,0x03,0xc9,0x04,0x40,0x00,0x22,0x00,0x31,0x00,0x37,0x00,0x16,0x40,0x09,0x37,0x00,0x20,0x13,0x12,0x12,0x23,0x0e,0x16,0x00,0x3f,0xcd,0x33,0x2f,0x33,0x2f,0x33,0x33,0x30,0x31,0x01,0x07,0x16,0x16,0x17,0x16,0x16,0x15, +0x14,0x0e,0x02,0x07,0x07,0x23,0x26,0x26,0x27,0x07,0x23,0x37,0x27,0x35,0x3e,0x03,0x35,0x11,0x34,0x26,0x27,0x25,0x17,0x37,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x27,0x01,0x1e,0x03,0x03,0x11,0x13,0x26,0x26,0x27,0x03,0x9e,0x83,0x1b,0x46,0x22,0x16,0x15,0x19,0x38,0x5c,0x42,0xbd,0x43,0x03,0x60,0x5b,0x50,0x78,0x62,0x52,0x10, +0x13,0x0b,0x04,0x05,0x05,0x02,0x54,0x14,0x31,0xab,0x0e,0x26,0x22,0x18,0x29,0x28,0x06,0xfe,0xff,0x2b,0x4f,0x3f,0x2b,0xee,0xcb,0x1b,0x2d,0x0b,0x04,0x40,0xd3,0x2d,0x6d,0x36,0x23,0x41,0x2a,0x28,0x4e,0x58,0x69,0x42,0xbe,0x0e,0x31,0x1e,0x81,0x9f,0x16,0x3e,0x05,0x11,0x20,0x31,0x26,0x01,0x57,0x33,0x53,0x22,0xdf,0x22,0x50,0xfc, +0x64,0x2b,0x47,0x5a,0x2f,0x3a,0x6d,0x3f,0x09,0xfe,0x63,0x14,0x1c,0x14,0x09,0x02,0x9a,0xfe,0x64,0x01,0x48,0x27,0x42,0x1a,0x00,0x02,0x00,0x80,0xff,0xb4,0x04,0x50,0x04,0x40,0x00,0x23,0x00,0x2b,0x00,0x2b,0x40,0x15,0x0c,0x22,0x0e,0x23,0x23,0x1f,0x12,0x1b,0x12,0x1b,0x09,0x18,0x95,0x1f,0x10,0x0e,0x0e,0x24,0x95,0x09,0x16,0x00, +0x3f,0xed,0x33,0x2f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x2f,0x12,0x39,0x39,0x30,0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x27,0x33,0x16,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x17,0x37,0x01,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x04,0x25, +0x66,0x47,0x4a,0x48,0x84,0xbd,0x75,0x38,0x64,0x2d,0x36,0x78,0x53,0x7a,0x34,0xb3,0x0e,0x28,0x17,0x01,0x9c,0x4d,0x71,0x6b,0x9b,0x29,0xaf,0x34,0xfd,0xb9,0x4b,0x81,0x36,0x40,0xfe,0xb2,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x04,0x40,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x12,0x11,0x57,0x87,0x54,0x98,0x1f,0x34,0x15,0x02,0x99,0x36, +0x65,0x5e,0x9f,0xae,0x20,0x1f,0x67,0xfc,0x32,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x03,0x00,0x60,0xff,0xe8,0x07,0x1f,0x04,0x18,0x00,0x22,0x00,0x32,0x00,0x3b,0x00,0x2c,0x40,0x18,0x1e,0x95,0x19,0x10,0x33,0x95,0x16,0x14,0x08,0x21,0x21,0x0a,0x23,0x95,0x14,0x10,0x2d,0x95,0x0a,0x16,0x38,0x95,0x05,0x16,0x00,0x3f,0xed,0x3f, +0xed,0x3f,0xed,0x12,0x39,0x2f,0x39,0x12,0x39,0xed,0x3f,0xed,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x20,0x17,0x36,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x06,0x07,0x21,0x01,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x01,0x1e,0x03,0x33, +0x32,0x36,0x37,0x07,0x1f,0x38,0x6b,0x9d,0x65,0x80,0xca,0x3c,0x83,0xfe,0xe1,0x72,0xb9,0x81,0x46,0x4a,0x89,0xc1,0x78,0x01,0x17,0x6f,0x39,0xc2,0x86,0xdd,0x88,0x92,0xac,0x9b,0xaf,0x04,0x02,0xd3,0xfb,0x3f,0x4e,0x7f,0x59,0x30,0x30,0x58,0x7e,0x4e,0xa0,0xac,0xac,0x01,0x52,0x0a,0x33,0x4e,0x64,0x3a,0x79,0x86,0x01,0x01,0xd3,0x73, +0xb6,0x7f,0x43,0x7e,0x6e,0xec,0x4b,0x89,0xc0,0x76,0x81,0xcc,0x8e,0x4b,0xd4,0x67,0x6d,0x62,0x9a,0x72,0xb9,0xac,0x01,0x65,0x38,0x69,0x98,0x5f,0x5a,0x8f,0x65,0x36,0xcc,0xbe,0xc3,0xcf,0xfe,0x10,0x43,0x6e,0x4f,0x2c,0x9d,0x8f,0x00,0x04,0x00,0x60,0xff,0xb4,0x07,0x21,0x04,0x40,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0x4a,0x00,0x41, +0x40,0x24,0x2e,0x95,0x29,0x2c,0x3f,0x34,0x0b,0x04,0x0c,0x2d,0x2d,0x29,0x10,0x42,0x95,0x10,0x13,0x26,0x24,0x19,0x19,0x13,0x1f,0x95,0x24,0x10,0x45,0x95,0x13,0x16,0x0c,0x0c,0x37,0x95,0x09,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0x33,0x2f,0x12,0x17,0x39,0x10,0xed,0x30, +0x31,0x01,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x07,0x23,0x37,0x26,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x35,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x16,0x17,0x37,0x05,0x22,0x06,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x16, +0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0xf5,0x69,0x48,0x4d,0x4a,0x89,0xc2,0x77,0x6a,0x55,0x33,0x78,0x52,0x4d,0x2d,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x4d,0x85,0x38,0x43,0xfe,0xa9,0xa0,0xac,0x3c,0x39,0x01,0x9c,0x52,0x75,0x4f,0x7f, +0x59,0x2f,0x24,0x22,0xfe,0x72,0x39,0xfc,0x2a,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x04,0x40,0xaa,0x45,0xc7,0x7c,0x81,0xcc,0x8e,0x4b,0x1f,0x53,0x84,0x38,0x63,0xeb,0x45,0x7f,0xb5,0x70,0x58,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x23,0x21,0x6c,0xb2,0xcc,0xbe,0x72,0xa5,0x33,0x02,0x9a,0x3a,0xfc,0xe4,0x39,0x69,0x97, +0x5f,0x4e,0x7f,0x31,0xfd,0x7f,0x15,0x01,0x2c,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x00,0x04,0x00,0x60,0xff,0xe8,0x07,0x21,0x04,0x18,0x00,0x24,0x00,0x2d,0x00,0x36,0x00,0x3f,0x00,0x3b,0x40,0x20,0x3a,0x95,0x1f,0x16,0x37,0x95,0x01,0x2b,0x95,0x31,0x1c,0x1a,0x01,0x0d,0x31,0x01,0x31,0x01,0x31,0x10,0x25,0x95,0x1a,0x16,0x2e,0x95, +0x10,0x10,0x06,0x95,0x0b,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x39,0x11,0x12,0x39,0x10,0xed,0x10,0xed,0x3f,0xed,0x30,0x31,0x13,0x21,0x2e,0x03,0x23,0x22,0x07,0x35,0x36,0x33,0x20,0x17,0x33,0x36,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x20,0x27,0x23,0x06,0x21,0x22,0x2e,0x02,0x35,0x01, +0x32,0x3e,0x02,0x37,0x21,0x16,0x16,0x13,0x22,0x06,0x07,0x21,0x2e,0x03,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x60,0x02,0xd5,0x02,0x2f,0x56,0x7a,0x4d,0xaf,0x90,0x89,0xdc,0x01,0x0d,0x71,0x04,0x82,0x01,0x1e,0x73,0xb8,0x81,0x46,0x4a,0x89,0xc2,0x77,0xfe,0xda,0x6c,0x04,0x76,0xfe,0xf5,0x63,0x9a,0x6a,0x37,0x04,0xc3,0x49,0x77, +0x58,0x35,0x07,0xfd,0x63,0x0b,0xab,0x95,0x8c,0xa7,0x14,0x02,0x95,0x0a,0x38,0x55,0x72,0xfb,0x9e,0x02,0x85,0x75,0x3d,0x67,0x50,0x33,0x08,0x02,0x29,0x55,0x85,0x5c,0x2f,0x72,0x9a,0x62,0xed,0xed,0x4c,0x89,0xc0,0x75,0x81,0xcc,0x8e,0x4b,0xeb,0xeb,0x45,0x7f,0xb5,0x70,0xfe,0xa1,0x30,0x5b,0x82,0x52,0xab,0xb4,0x03,0x1c,0x9d,0x95, +0x47,0x72,0x4f,0x2a,0xfe,0x10,0x8f,0x9d,0x2e,0x51,0x6e,0x3f,0x00,0x02,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x00,0x32,0x00,0x42,0x00,0x1f,0x40,0x11,0x33,0x95,0x29,0x10,0x17,0x95,0x10,0x10,0x21,0x95,0x06,0x16,0x03,0x3d,0x95,0x00,0x16,0x00,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x9a,0x8d,0xd5,0x3f,0x42,0xd6,0x8f,0x71,0xb8,0x82, +0x47,0x49,0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x71,0x66,0x66,0x71,0x4b,0x8a,0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69, +0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x03,0x00,0x60,0xff,0xb4,0x07,0x98,0x04,0x40,0x00,0x3c,0x00,0x47,0x00,0x4f,0x00,0x30,0x40,0x1b,0x03,0x45,0x4d,0x32,0x04,0x05,0x33,0x33,0x3d,0x95, +0x2f,0x10,0x1d,0x95,0x16,0x10,0x09,0x27,0x95,0x0c,0x16,0x05,0x05,0x48,0x95,0x00,0x16,0x00,0x3f,0xed,0x33,0x2f,0x3f,0xed,0x32,0x3f,0xed,0x3f,0xed,0x33,0x2f,0x12,0x17,0x39,0x30,0x31,0x05,0x22,0x26,0x27,0x07,0x23,0x37,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x07,0x26,0x22,0x23, +0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x01,0x26,0x03,0x32,0x36,0x35,0x34,0x27,0x01,0x16,0x05,0x9a,0x38,0x64,0x2d,0x36,0x78,0x54,0x26,0x3f,0x19,0x42,0xd6,0x8f,0x71,0xb8,0x82,0x47,0x49, +0x88,0xc1,0x78,0x0d,0x18,0x0c,0x19,0x09,0x12,0x09,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0x4a,0x89,0xc0,0x77,0x4b,0x81,0x36,0x40,0x79,0x66,0x47,0x4a,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x3f,0x3a,0x01,0x9b,0x4d,0x71,0xa0,0xaa,0x42,0xfe,0x72,0x3c,0x18,0x13,0x11,0x58,0x87,0x1a,0x42,0x28,0x66,0x71,0x4b,0x8a, +0xc1,0x76,0x81,0xcb,0x8d,0x4b,0x01,0x01,0x89,0x01,0x37,0x69,0x96,0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0x7e,0xc8,0x8b,0x49,0x20,0x1f,0x67,0xa5,0x45,0xce,0x84,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96,0x5e,0x69,0x9f,0x33,0x02,0x99,0x36,0xfc,0xe4,0xcd,0xbf,0xa8,0x65,0xfd,0x7f,0x18,0x00,0x01,0x00,0x7d,0x00,0x00,0x03,0xe4, +0x04,0x00,0x00,0x11,0x00,0x19,0x40,0x0c,0x0b,0x03,0x96,0x0e,0x0e,0x07,0x0c,0x0f,0x07,0x15,0x00,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x30,0x31,0x21,0x35,0x10,0x21,0x22,0x06,0x15,0x15,0x23,0x35,0x10,0x25,0x11,0x33,0x11,0x04,0x11,0x15,0x03,0x40,0xfe,0xf5,0x8c,0x88,0xa4,0x01,0x62,0xa4,0x01,0x61,0x6b,0x01,0x3c, +0xa0,0xa8,0x5f,0x58,0x01,0xab,0x29,0x01,0xd4,0xfe,0x2b,0x2c,0xfe,0x54,0x53,0x00,0x00,0x02,0x00,0xb0,0xfe,0x8d,0x04,0x24,0x04,0x33,0x00,0x2a,0x00,0x35,0x00,0x1d,0x40,0x0e,0x0a,0x27,0x3a,0x30,0x30,0x28,0x2f,0x3a,0x2a,0x16,0x3a,0x1d,0x28,0x08,0x00,0x3f,0xdc,0xed,0x2f,0xed,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x32,0x1e, +0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x2e,0x02,0x23,0x23,0x11,0x23,0x11,0x01,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x3e,0x02,0x02,0x1d,0x56,0x8a,0x61,0x34,0x26,0x46,0x62,0x3c,0x3c,0x55,0x37,0x19,0x09,0x1b,0x30,0x28,0x11,0x20, +0x0e,0x11,0x22,0x13,0x96,0x83,0x27,0x40,0x51,0x29,0x90,0xa4,0x02,0x37,0x77,0x76,0xa6,0xa0,0x37,0x59,0x40,0x23,0x04,0x33,0x27,0x4a,0x69,0x43,0x3b,0x62,0x4c,0x35,0x0d,0x03,0x14,0x2e,0x3e,0x4f,0x33,0xe8,0x3b,0x58,0x3a,0x1e,0x05,0x05,0x88,0x04,0x04,0xb8,0xb9,0xff,0x25,0x43,0x33,0x1d,0xfe,0x4b,0x04,0x33,0xfe,0xd7,0x57,0x4c, +0xfe,0x8e,0x1e,0x37,0x4c,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x01,0xef,0x04,0x00,0x00,0x0d,0x00,0x11,0xb7,0x09,0x00,0x0d,0x0f,0x07,0x0f,0x05,0x15,0x00,0x3f,0x3f,0x3f,0x33,0x32,0x30,0x31,0x01,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x37,0x01,0xef,0x35,0x2a,0x46,0xa4,0xa4,0x04,0x18,0x51,0x35,0x03,0x6a, +0x18,0x3a,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x49,0x68,0x1a,0x00,0x01,0x00,0xa6,0x00,0x00,0x03,0xf2,0x04,0x12,0x00,0x1e,0x00,0x1b,0x40,0x0e,0x14,0x07,0x0a,0xec,0x1a,0x10,0x13,0x0f,0x10,0x15,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x30,0x31,0x01,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23, +0x22,0x06,0x07,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x03,0x90,0x3e,0x24,0x2c,0x50,0x65,0x45,0x2a,0x50,0x20,0x35,0x4a,0x23,0x46,0xa4,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x62,0xac,0xfd,0xf6,0x04,0x00,0xd3,0x36,0x55, +0x3b,0x1f,0x20,0x1d,0x3d,0x00,0x00,0x02,0x00,0x1c,0xff,0xe8,0x03,0x9e,0x04,0x12,0x00,0x26,0x00,0x33,0x00,0x28,0x40,0x15,0x02,0xec,0x24,0x10,0x0a,0x96,0x07,0x07,0x27,0x96,0x1e,0x1c,0x1b,0x1b,0x10,0x1c,0x0f,0x2f,0x95,0x10,0x16,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x26, +0x23,0x22,0x07,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x17,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x03,0x9e,0x2c,0x50,0x6a,0x46,0x46,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66, +0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x3e,0x24,0xfd,0xa3,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x03,0x5a,0x21,0x63,0x62,0xac,0x32,0x6f,0x63,0x46,0x6b,0x48,0x25,0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x0e,0xfd,0x65,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x02, +0x00,0x1c,0xff,0xe8,0x04,0xd4,0x04,0x12,0x00,0x32,0x00,0x3f,0x00,0x30,0x40,0x1a,0x07,0x0a,0xec,0x2e,0x10,0x14,0x96,0x11,0x11,0x33,0x96,0x28,0x27,0x25,0x25,0x1a,0x27,0x0f,0x3b,0x95,0x1a,0x16,0x05,0xec,0x00,0x10,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x33,0x2f,0xed,0x3f,0xed,0x32,0x30,0x31,0x01,0x32, +0x17,0x15,0x26,0x23,0x22,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x06,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x15,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x36,0x01,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x04,0x72,0x3e,0x24,0x2c,0x50,0x65,0x45, +0x2a,0x50,0x20,0x35,0x4a,0x23,0x23,0x23,0x60,0x60,0x28,0x49,0x67,0x3f,0x37,0x5c,0x42,0x24,0x2a,0x4a,0x66,0x3c,0x56,0xa4,0x04,0x12,0x36,0x46,0x51,0x2d,0x32,0x49,0x1a,0x47,0xfd,0x29,0x24,0x36,0x23,0x11,0x36,0x36,0x36,0x33,0x04,0x12,0x0e,0xaa,0x21,0x5b,0x37,0x24,0x31,0x32,0x32,0x90,0x56,0x28,0x6f,0x63,0x46,0x6b,0x48,0x25, +0x27,0x45,0x5e,0x37,0x3c,0x59,0x3c,0x1e,0x02,0x28,0xd3,0x36,0x55,0x3b,0x1f,0x20,0x1d,0x3d,0xfd,0x57,0x16,0x24,0x2f,0x19,0x35,0x3f,0x50,0x43,0x63,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x03,0x14,0x04,0x00,0x00,0x15,0x00,0x1d,0x40,0x0e,0x05,0x96,0x0f,0x0a,0x0f,0x0a,0x0f,0x01,0x14,0x0f,0x0c,0x0f,0x01,0x15,0x00,0x3f,0x3f,0x3f, +0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x30,0x31,0x21,0x23,0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x03,0x14,0xa4,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x03,0x64,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21, +0x11,0x00,0x00,0x02,0x00,0x3c,0xff,0xe9,0x05,0x06,0x04,0x00,0x00,0x20,0x00,0x2c,0x00,0x29,0x40,0x16,0x21,0x96,0x1c,0x09,0x96,0x13,0x0d,0x1c,0x13,0x13,0x1c,0x0d,0x03,0x00,0x18,0x0f,0x10,0x0f,0x27,0x96,0x00,0x16,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x10,0xed,0x10,0xed,0x30,0x31,0x05,0x22,0x2e,0x02,0x35, +0x11,0x06,0x06,0x23,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x11,0x36,0x33,0x20,0x11,0x14,0x06,0x03,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x03,0xb0,0x48,0x76,0x54,0x2e,0x2d,0x70,0x46,0x4a,0x6e,0x2b,0x6e,0x83,0x27,0x64,0x41,0x25,0x4a,0x3f,0x2e,0x09,0xa4,0x49,0x6b,0x01, +0x3e,0xb2,0x94,0x5d,0x4f,0x4e,0x5b,0x5a,0x4c,0x4b,0x17,0x27,0x4b,0x70,0x4a,0x02,0x4f,0x1a,0x1f,0x1f,0x1c,0xd4,0x01,0x6e,0x38,0x24,0x10,0x1a,0x21,0x11,0xfe,0x73,0x24,0xfe,0xac,0xaa,0xb0,0x02,0x52,0x81,0x83,0x79,0x79,0x7a,0x7d,0x80,0x7f,0x00,0xff,0xff,0xff,0x92,0xfe,0x1e,0x02,0x68,0x06,0x02,0x02,0x06,0x05,0x88,0x00,0x00, +0x00,0x01,0x00,0x90,0xff,0xe8,0x03,0xe2,0x04,0x00,0x00,0x12,0x00,0x19,0x40,0x0c,0x11,0x11,0x01,0x09,0x0f,0x02,0x0c,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x03,0xe2,0xa4,0x04,0x66,0xd6, +0xfe,0x92,0xa3,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x58,0x58,0x90,0x01,0x03,0x00,0x00,0x02,0x00,0x21,0xff,0xe8,0x04,0xa4,0x04,0x00,0x00,0x15,0x00,0x1f,0x00,0x28,0x40,0x13,0x0a,0x01,0x18,0x10,0x14,0x0d,0x10,0x12,0x10,0x12,0x10,0x07,0x0f,0x0f,0x04,0x1b,0x95,0x07,0x15,0x00,0x3f,0xed, +0x32,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x10,0xcd,0x32,0x32,0x30,0x31,0x01,0x23,0x11,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x21,0x35,0x33,0x15,0x33,0x05,0x35,0x21,0x15,0x10,0x33,0x32,0x3e,0x02,0x04,0xa4,0x98,0xa4,0x04,0x66,0xd5,0xfe,0x8f,0x97,0x97,0xa4,0x02,0x0c,0xa4,0x98,0xfe, +0xc4,0xfd,0xf4,0xfa,0x3c,0x65,0x48,0x29,0x01,0xdb,0xfe,0x25,0xa2,0xba,0x01,0xb4,0x3f,0x8b,0x01,0x9a,0xfe,0x66,0x50,0x50,0xb4,0x29,0x25,0xfe,0xbc,0x2f,0x54,0x76,0x00,0x02,0x00,0xa6,0xff,0xe8,0x06,0x54,0x04,0x12,0x00,0x27,0x00,0x3b,0x00,0x29,0x40,0x16,0x0e,0x0e,0x25,0x28,0x32,0x10,0x07,0x95,0x25,0x16,0x23,0x1b,0x11,0x95, +0x1e,0x16,0x1a,0x15,0x17,0x0f,0x01,0x0f,0x00,0x3f,0x3f,0x3f,0x3f,0xed,0x32,0x32,0x3f,0xed,0x3f,0xcd,0x12,0x39,0x2f,0x30,0x31,0x13,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x10,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x23,0x20,0x11,0x01,0x22,0x2e, +0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0xa6,0xa4,0x19,0x36,0x57,0x3f,0x34,0x5c,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6e,0xd0,0x35,0x5d,0x4b,0x37,0x0e,0x72,0xe2,0xfe,0xae,0x02,0xd7,0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x16,0x28,0x1d,0x11,0x11,0x1d,0x28,0x04,0x00,0xfd,0xb4, +0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0xfe,0xd2,0x30,0x57,0x77,0x48,0x02,0x48,0xfc,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0x01,0xa1,0x01,0xb4,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11,0x00,0x00,0x02,0x00,0xa6,0xff,0xee,0x06,0x54,0x04,0x18,0x00,0x27,0x00,0x3b,0x00,0x2b, +0x40,0x17,0x28,0x32,0x16,0x07,0x95,0x25,0x10,0x11,0x95,0x1e,0x10,0x23,0x1b,0x19,0x0e,0x0e,0x18,0x19,0x0f,0x18,0x15,0x01,0x15,0x00,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x12,0x39,0x39,0x3f,0xed,0x3f,0xed,0x3f,0xcd,0x30,0x31,0x21,0x23,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x10,0x23,0x22,0x0e,0x02,0x15,0x11, +0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x1e,0x02,0x17,0x36,0x33,0x20,0x11,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x06,0x54,0xa4,0x19,0x36,0x57,0x3f,0x35,0x5b,0x45,0x27,0xa4,0xe9,0x36,0x5b,0x42,0x25,0xa4,0xa4,0x04,0x6d,0xd1,0x34,0x5e,0x4b,0x37,0x0e,0x72,0xe2,0x01,0x52,0xfd,0x29, +0x16,0x27,0x1c,0x11,0x11,0x1c,0x27,0x16,0x17,0x27,0x1d,0x11,0x11,0x1d,0x27,0x02,0x4c,0x55,0x7a,0x4e,0x25,0x35,0x59,0x76,0x42,0x8d,0xa5,0x01,0x2e,0x30,0x57,0x77,0x48,0xfd,0xb8,0x04,0x00,0xa2,0xba,0x1f,0x38,0x4e,0x2f,0xd4,0xfe,0x5f,0xfe,0x4c,0x10,0x1c,0x27,0x17,0x17,0x27,0x1d,0x10,0x10,0x1d,0x27,0x17,0x16,0x27,0x1c,0x11, +0x00,0x01,0x00,0x0e,0xff,0xe8,0x04,0x46,0x04,0x31,0x00,0x21,0x00,0x1c,0x40,0x0e,0x0d,0x95,0x13,0x13,0x02,0x01,0x20,0x0f,0x1b,0x95,0x05,0x16,0x01,0x15,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x33,0x2f,0xed,0x30,0x31,0x21,0x23,0x35,0x23,0x06,0x23,0x20,0x11,0x11,0x34,0x2e,0x02,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32,0x1e,0x02, +0x15,0x11,0x10,0x33,0x32,0x37,0x36,0x35,0x11,0x33,0x04,0x46,0xa4,0x04,0x66,0xd6,0xfe,0x92,0x0a,0x1c,0x35,0x2a,0x1e,0x2a,0x19,0x2a,0x4c,0x48,0x68,0x43,0x20,0xf8,0x79,0x4c,0x4e,0xa4,0xa2,0xba,0x01,0xb4,0x01,0x2b,0x38,0x54,0x37,0x1c,0x0d,0x0e,0x94,0x12,0x34,0x5e,0x82,0x4e,0xfe,0xe7,0xfe,0xbc,0x58,0x58,0x90,0x02,0x4e,0x00, +0xff,0xff,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x02,0x06,0x01,0xd3,0x00,0x00,0x00,0x02,0x00,0x0c,0xfe,0x21,0x04,0xbc,0x04,0x18,0x00,0x28,0x00,0x3c,0x00,0x28,0x40,0x15,0x38,0x18,0x0a,0x1b,0x07,0x04,0x19,0x1f,0x1f,0x08,0x19,0x0f,0x0d,0xec,0x12,0x10,0x2e,0x00,0x00,0x08,0x1b,0x00,0x3f,0x33,0x2f,0x32,0x3f,0xed,0x3f,0x12, +0x39,0x2f,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x22,0x26,0x27,0x26,0x26,0x27,0x03,0x01,0x23,0x01,0x03,0x26,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x1e,0x02,0x17,0x13,0x01,0x33,0x01,0x13,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0xea, +0x3e,0x5c,0x1c,0x1c,0x35,0x1f,0xa0,0xfe,0xa1,0xb9,0x01,0xc6,0xae,0x42,0x48,0x2e,0x2a,0x21,0x4a,0x2b,0x44,0x39,0x32,0x1a,0x8c,0x01,0x11,0xb9,0xfe,0x89,0xdc,0x1c,0x4c,0x2d,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x8c,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0xfe,0x21,0x38,0x30,0x30,0x6c, +0x43,0x01,0x56,0xfd,0x6f,0x03,0x38,0x01,0x89,0x94,0x0e,0x9a,0x0a,0x15,0x32,0x51,0x3c,0xfe,0xb6,0x02,0x06,0xfd,0x58,0xfe,0x18,0x1a,0x1b,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0xc6,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0x00,0x0c,0xfe,0x21,0x04,0x46,0x04,0x18,0x00,0x21, +0x00,0x20,0x40,0x12,0x02,0xec,0x1f,0x1c,0x08,0x16,0x05,0x19,0x04,0x07,0x18,0x1b,0x13,0xec,0x0e,0x10,0x07,0x0f,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x13,0x16,0x33,0x32,0x37,0x13,0x01,0x33,0x01,0x13,0x3e,0x03,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x07,0x03,0x01,0x23,0x01,0x03,0x0e,0x03,0x23,0x22,0x27, +0x0c,0x27,0x27,0x48,0x44,0xec,0xfe,0x89,0xb9,0x01,0x11,0x8c,0x1a,0x32,0x39,0x44,0x2b,0x4a,0x21,0x2a,0x2e,0x48,0x42,0xae,0x01,0xc6,0xb9,0xfe,0xa1,0x9f,0x26,0x44,0x45,0x4b,0x2d,0x31,0x2b,0xfe,0xc6,0x10,0x96,0x02,0x0c,0x02,0xa8,0xfd,0xfa,0x01,0x4a,0x3d,0x52,0x31,0x14,0x0a,0x9a,0x0e,0x94,0xfe,0x77,0xfc,0xc8,0x02,0x91,0xfe, +0x95,0x57,0x75,0x48,0x1e,0x09,0x00,0x02,0x00,0x1a,0xff,0xd3,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x26,0x40,0x16,0x21,0x0f,0x37,0x25,0x01,0x1f,0x18,0x04,0x05,0x40,0x0b,0x0e,0x48,0x05,0x05,0x1d,0x15,0x2d,0x0f,0x16,0x00,0x0f,0x00,0x3f,0x3f,0x33,0x3f,0x39,0x2f,0x2b,0x17,0x39,0x33,0x3f,0x30,0x31,0x01,0x01,0x17,0x36, +0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x03,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d, +0x2b,0x34,0x46,0x34,0x2c,0x19,0x63,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xcd,0xbd,0x01,0x5d,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x1b,0x32,0x49,0x2e, +0xb5,0x11,0x26,0x17,0x05,0x26,0x23,0xfe,0xb4,0x01,0xf6,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x00,0x01,0xff,0x1f,0xfe,0x57,0x03,0x92,0x04,0x00,0x00,0x15,0x00,0x1a,0x40,0x0e,0x06,0x0d,0x01,0x13,0x04,0x03,0x15,0x0f,0x0f,0x0f, +0x0b,0x1b,0x03,0x15,0x00,0x3f,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x30,0x31,0x09,0x02,0x23,0x03,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x03,0x92,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00, +0x04,0x00,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0x00,0x02,0xff,0x1f,0xfe,0x57,0x04,0x2c,0x04,0x00,0x00,0x27,0x00,0x3b,0x00,0x2a,0x40,0x18,0x37,0x18,0x1f,0x01,0x25,0x04,0x27,0x2f,0x05,0x3f,0x05,0x02,0x05,0x05,0x0f,0x27,0x0f,0x21,0x0f,0x1d, +0x1b,0x2d,0x0f,0x16,0x00,0x3f,0x33,0x3f,0x3f,0x3f,0x12,0x39,0x2f,0x5d,0x12,0x17,0x39,0x33,0x30,0x31,0x01,0x01,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07,0x01,0x23,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e, +0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x03,0x92,0xfe,0xa8,0x88,0x1c,0x51,0x32,0x2c,0x4a,0x36,0x1f,0x21,0x39,0x4d,0x2b,0x29,0x3f,0x36,0x2e,0x16,0x74,0x09,0x17,0x0d,0x04,0x02,0x18,0x15,0xfe,0x38,0xbd,0x02,0x58,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0x1b,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d, +0x26,0x15,0x15,0x26,0x1d,0x10,0x04,0x00,0xfd,0xfa,0xe2,0x1e,0x21,0x1d,0x33,0x46,0x2a,0x2a,0x48,0x34,0x1e,0x15,0x29,0x3e,0x29,0xd4,0x11,0x26,0x17,0x05,0x26,0x23,0xfd,0x0b,0x03,0x9f,0x02,0x0a,0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfc,0x99,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x15,0x15,0x26,0x1d,0x10,0x10,0x1d,0x26,0x00,0x01, +0xfe,0xc8,0xfe,0x21,0x03,0x7a,0x04,0x00,0x00,0x23,0x00,0x1d,0x40,0x10,0x02,0xec,0x21,0x1c,0x0e,0x12,0x08,0x17,0x04,0x10,0x14,0x15,0x10,0x0f,0x0a,0x0f,0x00,0x3f,0x3f,0x3f,0x12,0x17,0x39,0x3f,0xed,0x30,0x31,0x01,0x16,0x33,0x32,0x3e,0x02,0x37,0x01,0x01,0x33,0x13,0x16,0x16,0x17,0x33,0x01,0x33,0x01,0x01,0x23,0x03,0x26,0x27, +0x23,0x06,0x06,0x07,0x01,0x0e,0x03,0x23,0x22,0x27,0xfe,0xc8,0x27,0x27,0x14,0x1d,0x1f,0x2a,0x21,0x01,0xae,0xfe,0xb2,0xbf,0xc6,0x0b,0x15,0x0b,0x04,0x01,0x00,0xb5,0xfe,0xa8,0x01,0x52,0xbf,0xc9,0x14,0x19,0x04,0x02,0x18,0x15,0xfe,0xab,0x2b,0x41,0x3c,0x41,0x2a,0x31,0x2b,0xfe,0xc6,0x10,0x0a,0x21,0x3f,0x34,0x02,0xa2,0x02,0x0a, +0xfe,0xa2,0x14,0x28,0x14,0x01,0xae,0xfd,0xfa,0xfe,0x06,0x01,0x4c,0x1f,0x2f,0x05,0x26,0x23,0xfd,0xdc,0x45,0x64,0x40,0x1e,0x09,0x00,0x00,0x01,0x00,0x0e,0xfe,0x1e,0x03,0x40,0x04,0x00,0x00,0x14,0x00,0x18,0x40,0x0b,0x0f,0x0b,0x14,0x14,0x03,0x0d,0x0f,0x08,0x95,0x03,0x1c,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31, +0x01,0x01,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x37,0x37,0x01,0x33,0x01,0x17,0x33,0x36,0x36,0x37,0x13,0x03,0x40,0xfe,0xbe,0x7e,0xe4,0x41,0x2a,0x34,0x2d,0x7d,0x3d,0x52,0xfe,0x70,0xb6,0x01,0x15,0x15,0x06,0x02,0x0a,0x08,0x99,0x02,0x89,0xfc,0xd3,0xfe,0xc2,0x0d,0x93,0x12,0x94,0xc2,0x03,0xfe,0xfc,0xec,0x4e,0x0c,0x26,0x1a, +0x01,0x9f,0x00,0x02,0x00,0x25,0x03,0x50,0x02,0x4a,0x05,0xbe,0x00,0x10,0x00,0x21,0x00,0x14,0xb7,0x11,0x16,0x14,0x1c,0x0b,0x10,0x0d,0x05,0x00,0x2f,0xcd,0xcc,0x32,0xde,0xcd,0xcc,0x32,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x33,0x16,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e, +0x02,0x17,0x02,0x4a,0x05,0x2e,0x4a,0x61,0x39,0x3a,0x61,0x47,0x2a,0x02,0x64,0x0c,0xa0,0x45,0x60,0x0a,0x0a,0x60,0x45,0xa0,0x0c,0x64,0x02,0x2a,0x47,0x61,0x3a,0x37,0x62,0x4a,0x2f,0x05,0x05,0xbe,0x38,0x5c,0x43,0x25,0x24,0x42,0x5d,0x39,0x9b,0x53,0x48,0xfd,0x92,0x48,0x53,0x9b,0x39,0x5d,0x42,0x24,0x25,0x42,0x5d,0x38,0x00,0x01, +0x00,0x64,0x01,0xbc,0x02,0x4e,0x05,0xc4,0x00,0x21,0x00,0x14,0xb7,0x12,0x1f,0x1f,0x19,0x1a,0x0a,0x05,0x19,0x00,0x2f,0xdc,0xcd,0x2f,0x12,0x39,0x2f,0xcd,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02, +0x4e,0x1f,0x3a,0x56,0x36,0x2b,0x24,0x2b,0x26,0x13,0x25,0x1b,0x11,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0x02,0xa0,0x3e,0x57,0x36,0x19,0x10,0x5f,0x16,0x06,0x1a,0x32,0x2c,0x01,0x3a,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0x00,0x01,0x00,0x00,0x02,0x9a,0x01,0xf4,0x05,0xc4,0x00,0x28, +0x00,0x29,0x40,0x13,0x1c,0x1d,0x0e,0x02,0x02,0x16,0x23,0x07,0x08,0x1d,0x23,0x08,0x08,0x23,0x1d,0x03,0x12,0x27,0x12,0x00,0x2f,0x2f,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x30,0x31,0x01,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x37,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x07,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x01,0x3c,0x12,0x11,0x24,0x1b,0x3f,0x1e,0x42,0x35,0x50,0x4b,0x10,0x0d,0x80,0x0a,0x14,0x0b,0x21,0x1b,0x21,0x1e,0x1e,0x39,0x3f,0x4d,0x4c,0x09,0x11,0x09,0x80,0x04,0x6b,0x05,0x27,0x20,0x3d,0x11,0x43,0x11,0x48,0x38,0x45,0x52, +0x03,0xfe,0x81,0x01,0xb9,0x03,0x04,0x29,0x1f,0x23,0x23,0x0a,0x41,0x0b,0x48,0x3e,0x45,0x52,0x03,0x02,0x01,0x20,0x00,0x01,0x00,0x00,0x02,0x95,0x01,0xbf,0x05,0xc0,0x00,0x2f,0x00,0x23,0x40,0x0f,0x03,0x2d,0x2d,0x0a,0x10,0x10,0x28,0x22,0x22,0x15,0x1b,0x1b,0x07,0x1e,0x07,0x00,0x2f,0x2f,0x12,0x39,0x2f,0xcd,0x33,0x2f,0xcd,0x32, +0x2f,0xcd,0x33,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x27,0x11,0x23,0x11,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x17,0x35,0x33,0x11,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x23,0x22,0x27,0x15,0x16,0x33,0x32,0x37,0x01,0xbf,0x02,0x40,0x38,0x11,0x10,0x86,0x14, +0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x14,0x0d,0x41,0x02,0x3a,0x02,0x40,0x3b,0x11,0x10,0x86,0x0d,0x11,0x3e,0x02,0x3d,0x02,0x40,0x38,0x11,0x10,0x0d,0x11,0x3e,0x02,0x04,0x3d,0x47,0x59,0x03,0xfe,0xf5,0x01,0x45,0x06,0x50,0x49,0x57,0x04,0x76,0x06,0x50,0x49,0x57,0x04,0xcc,0xfe,0xf7,0x04,0x52,0x47,0x59,0x03,0x79,0x04, +0x52,0x00,0x00,0x01,0x00,0x00,0x02,0x8d,0x02,0x80,0x04,0xfc,0x00,0x25,0x00,0x19,0x40,0x0a,0x0c,0x13,0x13,0x02,0x01,0x25,0x1e,0x06,0x06,0x01,0x00,0x2f,0x33,0x2f,0xcd,0x2f,0x12,0x39,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02, +0x15,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x02,0x80,0x7f,0x02,0x1d,0x4f,0x3d,0xd3,0x1c,0x30,0x11,0x18,0x0e,0x0c,0x2e,0x16,0x29,0x42,0x2d,0x18,0x05,0x14,0x29,0x23,0x24,0x3a,0x29,0x15,0x7f,0x02,0x9a,0x5c,0x35,0x34,0xf7,0xa0,0x40,0x3f,0x07,0x08,0x5e,0x05,0x05,0x1e,0x35,0x4a,0x2c,0x8c,0x2e,0x45,0x2e,0x17, +0x1e,0x33,0x41,0x24,0x01,0x3b,0x00,0x02,0x00,0x60,0xff,0xe8,0x04,0x0e,0x04,0x18,0x00,0x14,0x00,0x29,0x00,0x1b,0x40,0x0e,0x00,0x1b,0x95,0x13,0x10,0x06,0x25,0x95,0x09,0x16,0x04,0x15,0x03,0x0f,0x00,0x3f,0x3f,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x01,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x23,0x22,0x2e,0x02,0x35,0x34, +0x3e,0x02,0x33,0x32,0x13,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0x66,0x04,0xa4,0xa4,0x04,0x7a,0xe8,0x63,0x9c,0x6c,0x39,0x40,0x79,0xad,0x6d,0xcc,0x6b,0x2c,0x4e,0x6b,0x3f,0x4a,0x76,0x52,0x2c,0x29,0x4c,0x6c,0x44,0x48,0x75,0x53,0x2d,0x03,0x6c,0x94,0xfc,0x00,0xb4,0xcc,0x48,0x84, +0xbb,0x73,0x7f,0xd0,0x95,0x52,0xfd,0xb7,0x8f,0x3e,0x6f,0x53,0x30,0x3b,0x6f,0xa0,0x65,0x55,0x87,0x5f,0x32,0x36,0x5e,0x7f,0xff,0xff,0x00,0x58,0x00,0x00,0x04,0xb8,0x04,0x45,0x02,0x06,0x0d,0x80,0x00,0x00,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x04,0x7f,0x00,0x07,0x0f,0x50,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0xcf,0xfe,0xe8, +0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x50,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x04,0x7f,0x00,0x07,0x0f,0x51,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfe,0xe8,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x51,0x00,0x2b,0xfe,0xed,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x53,0x00,0x2b, +0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x53,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29,0x05,0x97,0x00,0x07,0x0f,0x54,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x54,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x2e,0x03,0xca,0x02,0x29, +0x05,0x97,0x00,0x07,0x0f,0x56,0x00,0x2b,0x03,0xcf,0xff,0xff,0x00,0x2e,0xfd,0xd0,0x02,0x29,0xff,0x9d,0x00,0x07,0x0f,0x56,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x67,0xfe,0x36,0x01,0xf0,0xff,0x9e,0x00,0x06,0x0f,0x5d,0x2b,0x37,0xff,0xff,0x00,0xcf,0x03,0xca,0x01,0x88,0x05,0x97,0x00,0x07,0x0f,0x52,0x00,0x2b,0x03,0xcf,0xff,0xff, +0x00,0xcf,0xfd,0xd0,0x01,0x88,0xff,0x9d,0x00,0x07,0x0f,0x52,0x00,0x2b,0xfd,0xd5,0xff,0xff,0x00,0x8b,0xfe,0x63,0x01,0xcc,0xff,0xa4,0x00,0x06,0x0f,0x5b,0x2b,0x64,0xff,0xff,0x00,0x0c,0x03,0xca,0x02,0x72,0x06,0x2c,0x00,0x07,0x0f,0x57,0x00,0x46,0x03,0xca,0xff,0xff,0x00,0x0c,0xfe,0x17,0x02,0x72,0x00,0x79,0x00,0x07,0x0f,0x57, +0x00,0x46,0xfe,0x17,0xff,0xff,0xff,0xd4,0x03,0xc3,0x02,0x33,0x06,0xa7,0x02,0x07,0x0e,0x65,0x00,0x00,0xfe,0xa3,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x95,0x00,0x27,0x0a,0x65,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x06,0xa0,0x00,0x27,0x0a,0x66,0x00,0x1e,0xfe,0xa3, +0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x51,0x05,0x9f,0x00,0x27,0x0a,0x67,0x00,0x1e,0xfe,0xa3,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x05,0xff,0xf2,0x02,0x01,0x07,0x8d,0x02,0x26,0x08,0xc7,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x01,0x07,0x8d,0x02,0x26, +0x09,0x0d,0x00,0x00,0x00,0x06,0x09,0x2c,0x00,0x00,0x00,0x02,0x00,0x52,0xfe,0x9c,0x0c,0xb6,0x03,0xba,0x00,0x7a,0x00,0x8a,0x00,0x68,0xb1,0x72,0x03,0xbd,0x04,0xfb,0x00,0x77,0x05,0x03,0x00,0x15,0x00,0x6a,0x04,0xfb,0xb6,0x6b,0x6b,0x59,0x1f,0x5e,0x37,0x34,0xb8,0x04,0xfb,0xb6,0x7b,0x55,0x59,0x33,0x33,0x2c,0x3c,0x41,0x09,0x04, +0xfb,0x00,0x59,0x05,0x03,0x00,0x7e,0x04,0xfb,0x00,0x50,0x05,0x03,0x00,0x86,0x04,0xfb,0xb5,0x2f,0x46,0x01,0x46,0x46,0x25,0xb8,0x04,0xff,0xb3,0x2c,0x0e,0x0e,0x2c,0x00,0x2f,0x33,0x2f,0x10,0xed,0x33,0x2f,0x5d,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x39,0xed,0x32,0x32,0x39,0x11,0x33,0x2f,0xed,0x32,0x3f,0xed,0x32, +0x30,0x31,0x37,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x00,0x17,0x1e,0x03,0x17,0x26,0x26,0x35,0x34,0x3e,0x04,0x37,0x35,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x04,0x17,0x07,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x0e,0x05,0x15,0x14,0x1e,0x02,0x17,0x07,0x2e,0x05,0x27,0x0e,0x03,0x23,0x22,0x26,0x27,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x52,0x61,0xa6,0x39,0x4f,0x6c,0x42,0x1d,0x3b,0x60,0x7b,0x40,0xb9,0x01,0x05,0x2d,0x1f,0x5e,0x76,0x8a,0x4b, +0x06,0x09,0x31,0x5a,0x80,0x9f,0xb9,0x67,0x39,0x60,0x68,0x7d,0x56,0x4e,0x7e,0x33,0x37,0x84,0x4e,0x50,0x7c,0x6a,0x61,0x69,0x7a,0x4e,0x20,0x20,0x50,0x31,0x01,0x13,0x30,0x55,0x44,0x3f,0x56,0x3a,0x22,0x0b,0x14,0x37,0x54,0x79,0x56,0x61,0x8b,0x58,0x2a,0x2b,0x56,0x81,0x57,0x36,0x63,0x58,0x4b,0x1f,0x32,0x88,0x55,0x31,0x43,0x6e, +0x50,0x30,0x05,0x30,0x6f,0x70,0x66,0x50,0x2f,0x24,0x4b,0x73,0x50,0x2f,0x50,0xad,0xad,0xa5,0x91,0x77,0x28,0x1c,0x53,0x67,0x76,0x3f,0x3a,0x9a,0x4b,0x09,0xd1,0x2a,0x8f,0x55,0x5e,0x6a,0x1a,0x35,0x52,0x38,0x32,0x4e,0x3e,0x2e,0xa9,0x0b,0x0b,0x15,0x2c,0x44,0x2f,0x49,0x9c,0x9f,0xa1,0x4e,0xfe,0xdc,0xf9,0x5a,0x97,0x7b,0x61,0x23, +0x1e,0x39,0x12,0x38,0x57,0x47,0x3e,0x3d,0x42,0x29,0x05,0x1b,0x36,0x2a,0x1b,0x14,0x10,0x9d,0x12,0x17,0x1d,0x2b,0x32,0x2c,0x1e,0x01,0xc8,0x08,0x29,0x1d,0x2a,0x3a,0x26,0x11,0x2e,0x41,0x48,0x1a,0x2f,0x72,0x62,0x42,0x4d,0x74,0x86,0x3a,0x3b,0x72,0x59,0x36,0x17,0x28,0x35,0x1f,0x4b,0x48,0x29,0x4d,0x6e,0x45,0x0c,0x24,0x2a,0x31, +0x34,0x38,0x1b,0x25,0x43,0x35,0x22,0x04,0xaa,0x08,0x2a,0x41,0x55,0x67,0x77,0x42,0x2c,0x3b,0x24,0x0f,0x0c,0x0a,0x01,0x05,0x34,0x37,0x44,0x46,0x21,0x50,0x45,0x2f,0x28,0x47,0x5f,0x00,0x00,0x12,0x00,0x32,0xff,0x17,0x07,0xc3,0x06,0x5d,0x01,0x37,0x01,0x67,0x01,0x8a,0x01,0xb5,0x01,0xb9,0x01,0xc7,0x01,0xec,0x02,0x11,0x02,0x21, +0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x48,0x02,0x4c,0x02,0x50,0x02,0x54,0x02,0x58,0x02,0x5c,0x00,0x00,0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17, +0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x15,0x14,0x16,0x33,0x33,0x35,0x33,0x15,0x21, +0x32,0x3e,0x02,0x35,0x11,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x14,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17, +0x33,0x11,0x33,0x11,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x23,0x11,0x14,0x1e,0x02,0x33,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17, +0x36,0x36,0x37,0x15,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06, +0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x01,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x27,0x15,0x14,0x0e,0x02,0x23, +0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x35,0x01,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x01,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14, +0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x05,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x34, +0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x03,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x13,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x01,0x21,0x15,0x21,0x25,0x33,0x15,0x23,0x03,0x23,0x35,0x33, +0x07,0x23,0x35,0x33,0x05,0xf4,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x68,0x2f,0x35,0x0b,0x15,0x31,0x14,0x97,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e, +0x19,0x15,0x8d,0x09,0x15,0x11,0x0c,0xdb,0x1d,0x27,0x0d,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x13,0x23,0xd2,0x41,0x01,0xee,0x09,0x15,0x11,0x0c,0x0c,0x26,0x2e,0x0a,0x15,0x31,0x14,0x27,0x2f,0x22,0x1b,0x12,0x13,0x24,0x21,0x29,0x21,0x8b,0x94,0x75, +0x6a,0x01,0x02,0x3c,0x03,0x20,0x30,0x3a,0x1a,0x73,0x6d,0x24,0x2a,0x24,0x42,0x3c,0x1f,0x2a,0x22,0x24,0x1a,0x09,0x14,0x11,0x0b,0x41,0x18,0x22,0x0a,0x41,0x1a,0x21,0x05,0x05,0x42,0x04,0x04,0x03,0x04,0x3c,0x10,0x36,0x3d,0x3e,0x19,0x2c,0x3c,0x25,0x10,0x21,0x39,0x4d,0x2d,0x4b,0x1a,0x36,0x30,0x28,0x0d,0x01,0x0f,0x2d,0x16,0x0e, +0x07,0x11,0x1d,0x15,0xb7,0x2e,0x1b,0x15,0x2c,0x42,0x2c,0x0e,0x2d,0x12,0x11,0x25,0x14,0x17,0x26,0x1d,0x10,0x24,0x35,0x2f,0x4e,0x33,0x2d,0x4e,0x4a,0x48,0x27,0x8c,0x2f,0x35,0x0b,0x15,0x31,0x14,0xfe,0x16,0x07,0x11,0x1d,0x15,0x6b,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfc, +0x2c,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x04,0x1d,0x2a,0x43,0x20,0x27,0x31,0x1b,0x0a,0x01,0x21,0x22,0x1a,0x30,0x25,0x16,0x13,0x21,0x2d,0x1b,0x1d,0x2e,0x14,0x16,0x15,0x14,0x2d,0x48, +0x33,0x23,0x43,0x27,0xe6,0x12,0x1c,0x23,0x12,0x34,0x16,0x0d,0x27,0x11,0x14,0x29,0x0b,0x11,0x28,0x11,0xfe,0xa3,0x01,0x60,0x11,0x1f,0x30,0x15,0x1b,0x11,0x1e,0x2d,0x18,0x1d,0x15,0x1e,0xfd,0xf8,0x42,0x42,0x04,0x15,0x4d,0x3c,0x11,0x19,0x1c,0x0c,0x17,0x2d,0x28,0x21,0x0b,0xfa,0xe9,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09, +0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x02,0x68,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x03,0x7c,0x0d,0x16,0x1c,0x0f,0x0c,0x16,0x11,0x0b,0x31,0x20,0x0f,0x1e,0xfa,0x73,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xf3, +0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x05,0x29,0x1b,0x0c,0x18,0x0c,0x32,0x42,0x03,0x5d,0x01,0x0d,0xfe,0xf3,0x01,0x0d,0xfe,0xf3,0x02,0x36,0x01,0x0d,0xfe,0xf3,0xfd,0x85,0xd1,0xd1,0xe2,0x4c,0x4c,0x83,0x4b,0x4b,0x01,0x23,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x18,0x0d,0x15,0x10,0x13,0x0e,0x10,0x11, +0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x01,0x48,0x14,0x11,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x07,0xf3,0x26,0x27,0x7c,0x7c,0x05, +0x0d,0x16,0x11,0x01,0x83,0x02,0x17,0x0c,0x15,0x10,0x2b,0x34,0x2b,0x1d,0x1a,0x10,0x26,0x2b,0x30,0x1a,0x4f,0x4b,0x4d,0x55,0x0e,0x17,0x0e,0x13,0x15,0x09,0x20,0x25,0x12,0x05,0x29,0x30,0x11,0x22,0x26,0x2c,0x1c,0x39,0x48,0x2b,0x33,0x2b,0x05,0x0e,0x15,0x11,0x02,0x0c,0xfe,0x0b,0x1a,0x30,0x05,0x01,0xb8,0xfe,0x48,0x02,0x17,0x14, +0x11,0x29,0x17,0x17,0x2b,0x15,0x21,0x03,0x38,0x59,0x3e,0x21,0x1c,0x2f,0x40,0x24,0x33,0x39,0x1b,0x06,0x02,0x09,0x14,0x12,0x14,0x1d,0xfe,0x94,0x0f,0x1c,0x17,0x0e,0x27,0x3b,0x19,0x1d,0x35,0x27,0x17,0x03,0x03,0x46,0x03,0x04,0x05,0x11,0x1f,0x19,0x17,0x37,0x21,0x09,0x1f,0x19,0x4e,0x14,0x1a,0x10,0x06,0x18,0x0d,0x15,0x10,0xfe, +0xcf,0x0f,0x1c,0x17,0x0e,0x04,0x0d,0x16,0x12,0x63,0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x63,0x49,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0x03,0x42,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21,0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20, +0x01,0x39,0xfa,0x39,0x11,0x0e,0x1a,0x28,0x33,0x1a,0x0f,0x10,0x1f,0x2d,0x1d,0x19,0x37,0x2f,0x1e,0x21,0x21,0x22,0x5c,0x34,0x2d,0x53,0x3f,0x26,0x0f,0x12,0x56,0x6d,0x1b,0x21,0x12,0x06,0x16,0x0e,0x08,0x0b,0x0e,0x0f,0x0a,0x30,0x0f,0x17,0x43,0x32,0x1d,0x1a,0x0e,0x18,0x43,0x31,0x1d,0x1a,0x01,0x0e,0x18,0x6b,0x06,0x70,0xfd,0x3c, +0x95,0x1b,0x24,0x20,0x29,0x18,0x0a,0x1c,0x2f,0x3e,0x21,0x02,0x02,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0x69,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03, +0x0f,0x08,0xfa,0xc0,0x0f,0x2d,0x2a,0x1e,0x0f,0x17,0x1e,0x0f,0x1d,0x21,0x05,0x20,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x02,0x33,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0x01,0xe7,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfc,0xd6,0x25,0x01,0x6f,0x25,0x03,0x3f,0x25,0x51,0x25,0xfb,0x58,0x4c,0x4c,0x4c,0x00,0x00,0x05, +0x00,0x32,0xff,0xba,0x06,0xc7,0x06,0x22,0x00,0xa9,0x00,0xb9,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0x00,0x25,0x22,0x26,0x27,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x35,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x27,0x26, +0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x16,0x33,0x32,0x37,0x26,0x02,0x27,0x35,0x33,0x16,0x12,0x17,0x33,0x11,0x33,0x11,0x14,0x07,0x16,0x16,0x17,0x3e,0x03,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x16,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x3e,0x02, +0x37,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x17,0x36,0x36,0x37,0x26,0x26,0x27,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x16,0x17,0x36,0x36,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x37,0x15,0x0e,0x05,0x25,0x26,0x26,0x27,0x0e,0x03,0x07,0x16,0x16,0x33,0x32,0x3e,0x02,0x01,0x0e,0x03,0x15,0x14,0x16,0x33,0x32, +0x3e,0x02,0x35,0x01,0x23,0x35,0x33,0x07,0x23,0x35,0x33,0x04,0xc2,0x2d,0x39,0x10,0x09,0x0a,0x3b,0x5d,0x7e,0x4c,0x6b,0xc5,0xab,0x8a,0x2e,0x33,0x93,0xae,0xc0,0x60,0x3e,0x70,0x56,0x32,0x14,0x2d,0x39,0x16,0x14,0x37,0x3d,0x42,0x20,0x2d,0x5e,0x58,0x4d,0x1c,0x34,0x69,0x29,0x25,0x40,0x22,0x10,0x10,0x05,0x10,0x07,0x0f,0x08,0x32, +0x43,0x2c,0x4d,0x39,0x20,0x17,0x48,0x2a,0x21,0x33,0x23,0x13,0x34,0x51,0x61,0x2d,0x4c,0x3e,0x46,0x3a,0x24,0x39,0x96,0x61,0x5c,0x41,0x81,0x3e,0x08,0x48,0x25,0x0e,0x1b,0x0d,0x13,0x22,0x18,0x0e,0x47,0x08,0x0b,0x0a,0x25,0x14,0x16,0x47,0x16,0x19,0x3d,0x42,0x44,0x21,0x22,0x41,0x22,0x23,0x27,0x2a,0x62,0x35,0x22,0x13,0x1f,0x0c, +0x15,0x3e,0x2a,0x2b,0x56,0x2f,0x1c,0x21,0x2a,0x57,0x33,0x63,0x5d,0x14,0x2d,0x14,0x03,0x19,0x17,0x3d,0x22,0x15,0x27,0x15,0x59,0x1e,0x51,0x5d,0x63,0x5f,0x56,0x01,0x3d,0x0f,0x2b,0x20,0x2f,0x60,0x5b,0x51,0x20,0x0f,0x2e,0x1d,0x29,0x5e,0x5c,0x56,0xfb,0x47,0x22,0x43,0x35,0x21,0x24,0x1f,0x10,0x2a,0x25,0x19,0x04,0xb9,0x3f,0x3f, +0xad,0x3f,0x3f,0x47,0x28,0x26,0x1f,0x18,0x38,0x30,0x20,0x31,0x4e,0x61,0x30,0x61,0x37,0x67,0x50,0x30,0x18,0x29,0x36,0x1e,0x1c,0x24,0x2f,0x25,0x34,0x21,0x0f,0x11,0x1d,0x24,0x13,0x54,0x1e,0x2d,0x0b,0x0a,0x06,0x03,0x02,0x39,0x19,0x33,0x19,0x19,0x15,0x28,0x39,0x23,0x17,0x20,0x18,0x29,0x34,0x1c,0x34,0x44,0x29,0x13,0x03,0x25, +0xfe,0xec,0x32,0x36,0x15,0xab,0x01,0x4c,0x9f,0x05,0x6b,0xfe,0xea,0xb4,0x03,0x86,0xfc,0x77,0x4c,0x31,0x2b,0x5c,0x30,0x08,0x1f,0x27,0x2c,0x15,0x04,0x7b,0xfb,0xb5,0x20,0x38,0x1a,0x17,0x20,0x04,0xa7,0xfb,0x59,0x0d,0x16,0x1c,0x10,0x0a,0x08,0x52,0x13,0x11,0x0c,0x0a,0x11,0x08,0x11,0x21,0x10,0x10,0x0e,0x52,0x0e,0x10,0x1e,0x43, +0x0b,0x1a,0x0b,0x5a,0x0f,0x0e,0x24,0x13,0x0c,0x1a,0x10,0x32,0x54,0x16,0x33,0x34,0x31,0x25,0x17,0xda,0x0e,0x1b,0x0f,0x18,0x2d,0x23,0x16,0x01,0x1c,0x24,0x18,0x27,0x30,0x01,0xe0,0x03,0x0b,0x19,0x2b,0x22,0x1e,0x29,0x06,0x0d,0x14,0x0e,0xfd,0x9c,0x40,0x85,0x40,0x00,0x00,0x20,0x00,0x32,0xfe,0x62,0x08,0x31,0x06,0xaf,0x00,0x69, +0x00,0xcf,0x01,0x2d,0x01,0x5d,0x01,0x61,0x01,0x86,0x01,0x8a,0x01,0x96,0x01,0xa5,0x01,0xb4,0x01,0xbe,0x01,0xc2,0x01,0xc6,0x01,0xca,0x01,0xf0,0x01,0xf4,0x02,0x1a,0x02,0x1e,0x02,0x2a,0x02,0x36,0x02,0x42,0x02,0x4e,0x02,0x52,0x02,0x56,0x02,0x5a,0x02,0x5e,0x02,0x62,0x02,0x66,0x02,0x6a,0x02,0x6e,0x02,0x93,0x02,0xb8,0x00,0x00, +0x01,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02, +0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x32,0x3e,0x02,0x35,0x35,0x01,0x06,0x06,0x07,0x0e,0x03,0x23,0x23,0x22,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36, +0x37,0x36,0x36,0x35,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x37,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x17,0x03,0x06,0x06,0x07,0x0e,0x03,0x23,0x23, +0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22,0x06, +0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x25,0x33,0x11,0x23,0x01,0x06,0x06,0x15, +0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x01,0x23,0x35,0x33,0x13,0x22,0x06,0x07,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x01,0x1e,0x03,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x01,0x32,0x36,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x1e,0x03,0x25,0x14,0x16,0x33,0x32,0x36,0x37,0x35,0x06,0x06,0x01,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x13,0x23,0x35,0x33,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16, +0x33,0x01,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x27,0x0e,0x03,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x01,0x33,0x11,0x23,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x14,0x16,0x01,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x01,0x33,0x15,0x23,0x25,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x01,0x33,0x15,0x23,0x05,0x33,0x15,0x23,0x03,0x33,0x15,0x23,0x05,0x06,0x06,0x15, +0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23,0x22,0x26,0x35,0x34,0x34,0x37,0x13,0x06,0x06,0x15,0x14,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x35,0x33,0x14,0x16,0x15,0x14,0x06,0x23,0x22,0x27,0x06,0x23, +0x22,0x26,0x35,0x34,0x34,0x37,0x08,0x31,0x19,0x27,0x32,0x18,0x23,0x37,0x0e,0x11,0x39,0x17,0x1d,0x38,0x10,0x17,0x39,0x17,0x20,0x33,0x0f,0x15,0x31,0x14,0x30,0x18,0x28,0x0d,0x10,0x24,0x19,0x13,0x27,0x11,0x0f,0x1b,0x0a,0x19,0x14,0x0e,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0c,0x18,0x27,0x1e,0x13,0x05,0x01,0x05, +0x0e,0x19,0x15,0x26,0x09,0x15,0x11,0x0c,0x41,0x1d,0x23,0x0b,0x18,0x13,0x0d,0x43,0x1d,0x26,0x0c,0x17,0x12,0x0c,0x40,0x21,0x2a,0x0e,0x1a,0x13,0x0b,0xfd,0x03,0x1a,0x32,0x17,0x16,0x32,0x39,0x3f,0x23,0x24,0x44,0x1c,0x13,0x2c,0x20,0x21,0x3a,0x18,0x12,0x2d,0x19,0x18,0x11,0x15,0x09,0x05,0x58,0x65,0x2f,0x41,0x28,0x12,0x03,0x02, +0x02,0x03,0x42,0x05,0x05,0x31,0x3b,0x23,0x32,0x1f,0x0e,0x07,0x06,0x42,0x08,0x02,0x1c,0x1d,0x10,0x16,0x11,0x0b,0x04,0x0d,0x1a,0x20,0x29,0x1c,0x29,0x34,0x1c,0x0b,0x01,0x08,0x12,0x20,0x1b,0x1c,0x18,0x2f,0x34,0x3b,0x23,0x16,0x23,0x23,0x23,0x16,0x18,0x2f,0x17,0x14,0x33,0x1b,0x22,0x3c,0x3c,0x3f,0x23,0x4f,0x0e,0x31,0x2a,0x16, +0x2e,0x37,0x42,0x2a,0x38,0x20,0x2a,0x0e,0x15,0x31,0x14,0x27,0x17,0x28,0x0d,0x10,0x24,0x1a,0x13,0x26,0x11,0x0f,0x1b,0x0a,0x19,0x15,0x0f,0x0b,0x47,0x0a,0x0a,0x2e,0x2b,0x0d,0x24,0x26,0x23,0x0b,0x19,0x27,0x1e,0x13,0x05,0x01,0x05,0x0e,0x18,0x15,0x1d,0x09,0x15,0x11,0x0c,0x40,0x14,0x23,0x4b,0x19,0x2e,0x33,0x3b,0x26,0x19,0x19, +0x38,0x2c,0x18,0x2e,0x17,0x14,0x32,0x1c,0x2a,0x39,0x1a,0x0d,0x19,0x1e,0x24,0x17,0xfd,0x23,0x13,0x23,0x17,0x22,0x42,0x16,0x24,0x2d,0x16,0x20,0x2a,0x0e,0x14,0x30,0x17,0x26,0x3c,0x0c,0x10,0x20,0x0b,0x19,0x2f,0x24,0x15,0x1e,0x33,0x41,0x23,0x42,0x15,0x21,0x13,0x26,0x43,0x01,0x20,0x42,0x42,0xfe,0x7f,0x02,0x01,0x18,0x14,0x2d, +0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x01,0x40,0x33,0x33,0x32,0x1e,0x27,0x0c,0x1e,0x38,0x3e,0x08,0x10,0x19,0xfe,0x84,0x17,0x1c,0x12,0x0a,0x06,0x15,0x19,0x09,0x11,0x16,0x0c,0x2c,0x03,0x0f,0x14,0x19,0x09,0x11,0x15,0x0c,0x2d,0x1b,0x17,0x1d,0x12,0x0a,0xfb,0xfb,0x29,0x1b,0x0c,0x18, +0x0c,0x32,0x42,0x07,0xb1,0x4b,0x4b,0xf9,0x00,0x4b,0x4b,0xac,0x2d,0x2d,0x04,0xac,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a,0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xdf,0x1e,0x1d,0x42,0x16,0x24,0x2e,0x18,0x3e,0x20,0x15,0x03,0x1a,0x2a, +0x38,0x21,0x23,0x2e,0x31,0x1f,0x36,0x2c,0x1a,0x10,0x42,0x0e,0x0f,0x05,0x04,0x20,0x26,0x01,0x10,0x41,0x41,0xfe,0x50,0x20,0x2c,0x2c,0x20,0x20,0x2c,0x2c,0x20,0x11,0x15,0x15,0x11,0x10,0x15,0x15,0xfe,0xd8,0x1f,0x2c,0x2c,0x1f,0x21,0x2c,0x2c,0x21,0x10,0x15,0x15,0x10,0x11,0x15,0x15,0xfe,0x51,0x4b,0x4b,0x83,0x4c,0x4c,0x02,0x10, +0xd1,0xd1,0xfe,0xd8,0xc7,0xc7,0x60,0xc7,0xc7,0x01,0x86,0xd1,0xd1,0xfb,0x5c,0xc7,0xc7,0x75,0xbd,0xbd,0x05,0x44,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d,0x02,0x2c,0x02,0x01,0x18,0x14,0x2d,0x09,0x0c,0x0e,0x09,0x01,0x2c,0x01,0x26,0x1e,0x18,0x16,0x17,0x16,0x22,0x1d, +0x02,0x04,0xf0,0xa2,0x29,0x31,0x1b,0x09,0x12,0x0f,0x14,0x0d,0x11,0x14,0x16,0x0f,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c,0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x63,0x4c,0x2a,0x26,0x04,0x0d,0x16,0x12,0x63, +0x4b,0x2c,0x25,0x04,0x0c,0x17,0x12,0x9f,0x85,0x2c,0x26,0x01,0x04,0x0c,0x17,0x12,0x9f,0xfc,0xfb,0x07,0x20,0x0e,0x0e,0x1f,0x1a,0x10,0x27,0x14,0x13,0x1c,0x14,0x14,0x1c,0x08,0x07,0x59,0x63,0x19,0x2e,0x42,0x29,0x0f,0x1b,0x0e,0x0e,0x16,0x0c,0x21,0x2f,0x11,0x3f,0x31,0x10,0x24,0x3b,0x2b,0x17,0x3d,0x24,0x41,0x11,0x14,0x0b,0x11, +0x13,0x09,0x1b,0x2e,0x23,0x14,0x22,0x2d,0x2c,0x0a,0x09,0x12,0x0f,0x09,0x0f,0x1a,0x25,0x17,0x0b,0x11,0x0c,0x06,0x08,0x06,0x46,0x06,0x08,0x15,0x19,0x15,0x01,0xfd,0x54,0x04,0x19,0x1d,0x0f,0x1d,0x17,0x0e,0x14,0x11,0x15,0x10,0x13,0x0e,0x10,0x11,0x07,0x05,0x04,0x05,0x1f,0x1c,0x1a,0x41,0x22,0x26,0x3c,0x18,0x33,0x42,0x08,0x3c, +0x46,0x24,0x09,0x18,0x26,0x2f,0x16,0x0c,0x14,0x0f,0x09,0x05,0x0d,0x16,0x11,0x9f,0x89,0x2a,0x25,0x0d,0x19,0x26,0x19,0x0c,0x0d,0x15,0x08,0x06,0x45,0x06,0x08,0x15,0x0d,0x06,0x0c,0x09,0x06,0x04,0x83,0x26,0x27,0x1a,0x1f,0x01,0x6d,0xfe,0x90,0x25,0x30,0x1d,0x0c,0x13,0x12,0x11,0x14,0x23,0x26,0x05,0x03,0x0c,0x19,0x28,0x1d,0x21, +0x31,0x22,0x16,0x06,0x2b,0xd1,0x27,0x26,0x19,0x20,0x01,0x39,0x5a,0xfd,0xf1,0x02,0x46,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfc,0x7e,0xdb,0xfe,0xa4,0x2c,0x25,0x20,0x29,0x0a,0x19,0x16,0x0f,0xfd,0x41,0x04,0x05,0x03,0x01,0x0f,0x14, +0x0c,0x1c,0x19,0x11,0x04,0x56,0x0f,0x14,0x0c,0x1d,0x18,0x11,0x68,0x04,0x05,0x03,0x01,0x6a,0x17,0x13,0x02,0x04,0x74,0x0b,0x28,0xfe,0xb5,0x4c,0xfe,0xb0,0x4d,0x03,0xa2,0x71,0xfb,0x17,0x14,0x25,0x01,0x9c,0xfe,0x61,0x29,0x32,0x1b,0x09,0x10,0x2e,0x3e,0x27,0x11,0x12,0x45,0x10,0x35,0x38,0x31,0x5b,0x2b,0x1f,0x2c,0x1b,0x16,0x12, +0x01,0xd0,0xfd,0xe7,0xfd,0xd0,0x14,0x25,0x01,0xa7,0xfe,0x56,0x29,0x31,0x1b,0x09,0x10,0x2e,0x41,0x2a,0x13,0x12,0x44,0x10,0x3d,0x39,0x30,0x5b,0x2c,0x1f,0x2d,0x1b,0x16,0x12,0x01,0xdb,0xfd,0xdd,0x06,0xa1,0x2d,0x20,0x20,0x2c,0x2c,0x20,0x20,0x2d,0x71,0x14,0x10,0x10,0x15,0x15,0x10,0x10,0x14,0xfd,0xfb,0x2d,0x21,0x20,0x2c,0x2c, +0x20,0x21,0x2d,0x72,0x14,0x10,0x10,0x16,0x16,0x10,0x10,0x14,0xfb,0xca,0x4c,0x4c,0x4c,0x04,0x61,0x25,0x8e,0x29,0xfb,0x6f,0x29,0x02,0x00,0x25,0x21,0x2a,0x03,0x7d,0x2a,0xbb,0x0a,0x14,0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xfd,0x87,0x0a,0x14, +0x02,0x20,0x22,0x1e,0x1e,0x11,0x11,0x10,0x11,0x08,0x0d,0x0a,0x07,0x0b,0x08,0x26,0x2a,0x12,0x12,0x30,0x20,0x03,0x0f,0x08,0xff,0xff,0x00,0x29,0x03,0xcb,0x02,0x25,0x04,0xdc,0x00,0x07,0x09,0x2c,0x00,0x24,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0xdc,0x00,0x27,0x09,0x2c,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02, +0x00,0x00,0xff,0xff,0x00,0x05,0x03,0x9a,0x02,0x9c,0x05,0x53,0x00,0x07,0x09,0x2d,0x00,0xd2,0xfd,0x45,0x00,0x01,0x00,0x9a,0xff,0xf2,0x03,0x2a,0x02,0xdd,0x00,0x13,0x00,0x10,0xb1,0x0a,0x12,0xba,0x04,0xfb,0x00,0x01,0x05,0x03,0x00,0x3f,0xed,0x2f,0x30,0x31,0x05,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14, +0x1e,0x02,0x33,0x33,0x03,0x2a,0x79,0x9c,0xce,0x7b,0x32,0x12,0x11,0x9a,0x0e,0x12,0x21,0x5a,0xa1,0x81,0x56,0x0e,0x50,0x87,0xb2,0x63,0x3f,0x7b,0x45,0x40,0x6f,0x3e,0x4a,0x7c,0x5c,0x33,0xff,0xff,0x00,0x05,0xfe,0x60,0x02,0x01,0xff,0x71,0x00,0x06,0x09,0x2e,0x00,0x00,0xff,0xff,0x00,0x15,0x03,0xcb,0x02,0x11,0x04,0x23,0x00,0x07, +0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x04,0x23,0x02,0x26,0x14,0x02,0x00,0x00,0x00,0x07,0x09,0x2f,0x00,0x10,0xfd,0x4f,0xff,0xff,0x00,0x21,0x03,0x90,0x02,0x2c,0x05,0x49,0x00,0x07,0x09,0x30,0x00,0x62,0xfd,0x3b,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x49,0x00,0x27,0x09,0x30,0x00,0x62, +0xfd,0x3b,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x29,0xff,0x19,0x02,0x25,0xff,0x71,0x00,0x06,0x09,0x31,0x24,0x00,0xff,0xff,0xff,0xba,0xff,0x19,0x02,0x4e,0x00,0x99,0x00,0x26,0x09,0x31,0x24,0x00,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0xff,0xf8,0x03,0xc5,0x02,0x57,0x04,0xef,0x00,0x07,0x09,0x32,0x00,0x24,0xfd,0x4f, +0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x57,0x04,0xef,0x00,0x27,0x09,0x32,0x00,0x24,0xfd,0x4f,0x00,0x06,0x14,0x02,0x00,0x00,0xff,0xff,0x00,0x69,0x03,0xbb,0x01,0xe5,0x05,0x2e,0x00,0x07,0x09,0x33,0x00,0x24,0xfd,0x45,0xff,0xff,0xff,0xba,0xff,0xf2,0x02,0x4e,0x05,0x2e,0x00,0x27,0x09,0x33,0x00,0x24,0xfd,0x45,0x00,0x06,0x14,0x02, +0x00,0x00,0x00,0x01,0xff,0xba,0xff,0xf2,0x02,0x4e,0x00,0x99,0x00,0x08,0x00,0x0e,0xbb,0x00,0x08,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x30,0x31,0x05,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x02,0x4e,0xfd,0xb2,0x23,0x23,0x23,0x23,0x02,0x4e,0x0e,0x34,0x20,0x20,0x33,0x00,0x01,0xff,0xe7,0x06,0x19,0x05,0x0f,0x07,0x5f, +0x00,0x1a,0x00,0x16,0xbc,0x00,0x12,0x04,0xfb,0x00,0x07,0x00,0x19,0x04,0xfb,0xb1,0x0c,0x02,0x00,0x2f,0x33,0xed,0xdc,0xed,0x30,0x31,0x01,0x07,0x21,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x23,0x3e,0x03,0x33,0x32,0x1e,0x04,0x33,0x21,0x05,0x0f,0x5a,0xfd,0xf4,0x4a,0x7d,0x66,0x4d,0x19,0x10,0x27,0x2e,0x34,0x1d,0x79,0x28,0x57, +0x5a,0x59,0x2a,0x18,0x39,0x3f,0x44,0x49,0x4c,0x27,0x02,0x3c,0x06,0xb6,0x9d,0x32,0x3d,0x32,0x08,0x1f,0x3c,0x34,0x55,0x78,0x4c,0x23,0x18,0x23,0x29,0x23,0x18,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x76,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d, +0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x14,0x05,0x3e,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x83,0xfe,0xab,0x00,0x07,0x09,0x7e,0x00,0x72,0xfd,0x55, +0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x76,0x02,0x26,0x0e,0x6e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x09,0x7e,0x02,0xb6,0xfc,0x8d,0xff,0xff,0x00,0xc4,0xfd,0xe4,0x01,0x42,0xff,0x6c,0x00,0x07,0x09,0x73,0x00,0x00,0xf7,0x68,0xff,0xff,0x00,0x52,0xfd,0xc9,0x03,0x4a,0x03,0xba,0x02,0x26,0x09,0x15, +0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x52,0xfd,0xc9,0x04,0x02,0x03,0xba,0x02,0x26,0x0e,0x2f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0xc9,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x09,0xf7,0x03,0x3c,0x02,0x26,0x09,0x1b,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9, +0x07,0x4b,0x03,0x3c,0x02,0x26,0x08,0xd6,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x08,0x04,0x03,0x3c,0x02,0x26,0x0e,0x36,0x00,0x00,0x00,0x07,0x0f,0x54,0x03,0x9c,0xfd,0xce,0xff,0xff,0x00,0x9b,0xfd,0xc9,0x0a,0xb0,0x03,0x3c,0x02,0x26,0x0e,0x35,0x00,0x00,0x00,0x07,0x0f,0x54,0x06,0x46, +0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0xb9,0x06,0x02,0x02,0x26,0x09,0x46,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x5d,0x06,0x02,0x02,0x26,0x08,0xed,0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x06,0x02,0x02,0x26,0x0e,0x56, +0x00,0x00,0x00,0x07,0x14,0x18,0x03,0x84,0xff,0x38,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x06,0x02,0x02,0x26,0x0e,0xb1,0x00,0x00,0x00,0x07,0x14,0x18,0x06,0xe0,0xff,0x38,0x00,0x02,0x00,0xab,0xfe,0x0c,0x03,0x49,0x02,0xb7,0x00,0x15,0x00,0x29,0x00,0x18,0xb1,0x11,0x1d,0xbd,0x04,0xfb,0x00,0x0a,0x00,0x27,0x04,0xfb,0x00,0x00, +0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x11,0x23,0x11,0x06,0x06,0x37,0x2e,0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x36,0x36,0x9c,0x2a,0x58,0x7e,0x01, +0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x55,0xf0,0x92,0xfd,0xd5,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0x00,0x02,0x00,0xab,0xfe,0x0c,0x04,0x02,0x02,0xb7,0x00,0x18, +0x00,0x2c,0x00,0x23,0xb1,0x14,0x11,0x41,0x0a,0x04,0xfb,0x00,0x13,0x05,0x03,0x00,0x20,0x04,0xfb,0x00,0x0a,0x00,0x2a,0x04,0xfb,0x00,0x00,0x05,0x03,0x00,0x3f,0xed,0x2f,0xed,0x3f,0xed,0x2f,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x17,0x33,0x15,0x23,0x11,0x23,0x11,0x06,0x06,0x37,0x2e, +0x05,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x01,0xff,0x42,0x7b,0x5e,0x39,0x30,0x55,0x74,0x44,0x48,0x77,0x36,0x2d,0x33,0x08,0xbd,0xb9,0x9c,0x2a,0x58,0x7e,0x01,0x10,0x1b,0x24,0x2d,0x32,0x1b,0x1d,0x37,0x2c,0x1b,0x22,0x39,0x4a,0x28,0x27,0x4e,0x0e,0x29,0x4f,0x72,0x4a,0x40,0x8d,0x77,0x4d,0x54,0x55,0x47,0xbc, +0x72,0xa7,0xfe,0x1a,0x02,0x09,0x11,0x12,0xc7,0x19,0x45,0x4b,0x49,0x3b,0x24,0x26,0x3c,0x4c,0x26,0x25,0x3b,0x28,0x16,0x0d,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0xc3,0x05,0xca,0x02,0x26,0x09,0x17,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57, +0x05,0xca,0x02,0x26,0x0b,0x0c,0x00,0x00,0x00,0x27,0x0f,0x50,0x00,0x9a,0x03,0x57,0x00,0x07,0x0a,0x6e,0x00,0x9b,0xfd,0xee,0x00,0x01,0x00,0x8c,0x06,0x56,0x01,0xc8,0x08,0x05,0x00,0x18,0x00,0x0c,0xb3,0x08,0x0e,0x00,0x18,0x00,0x2f,0xcd,0xdc,0xcd,0x30,0x31,0x13,0x3e,0x03,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x8c,0x2a,0x49,0x35,0x1f,0x3e,0x2d,0x10,0x1d,0x0d,0x21,0x1f,0x37,0x52,0x36,0x1b,0x2d,0x53,0x75,0x47,0x06,0xa9,0x0a,0x17,0x23,0x33,0x26,0x29,0x2a,0x04,0x03,0x6d,0x06,0x1c,0x2e,0x3e,0x22,0x3e,0x57,0x3c,0x26,0x0e,0x00,0x00,0x01,0xfe,0x45,0x04,0x3a,0xff,0xd9,0x05,0xc0,0x00,0x03,0x00,0x0c, +0xb3,0x03,0x02,0x01,0x00,0x00,0x2f,0x32,0xcd,0x32,0x30,0x31,0x01,0x35,0x01,0x15,0xfe,0x45,0x01,0x94,0x04,0x3a,0x85,0x01,0x01,0x8f,0xff,0xff,0x00,0x14,0xff,0xe8,0x02,0x2b,0x05,0x9a,0x02,0x06,0x00,0x2d,0x00,0x00,0xff,0xff,0x00,0xbc,0xfe,0x80,0x05,0xbb,0x05,0x9a,0x00,0x26,0x01,0xb5,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x5b, +0x00,0x00,0xff,0xff,0x00,0xa6,0xfe,0x8a,0x04,0x91,0x04,0x00,0x00,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x0a,0xbe,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x98,0xfe,0x96,0x04,0xf2,0x05,0x9a,0x00,0x13,0x00,0x1d,0x40,0x0e,0x10,0x91,0x0b,0x0b,0x06,0x07,0x91,0x01,0x01,0x06,0x12,0x03,0x00,0x03,0x00,0x3f,0x32,0x3f,0x39,0x2f,0xed,0x11, +0x33,0x2f,0xed,0x30,0x31,0x01,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x10,0x21,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x01,0x64,0x02,0xe6,0xa8,0xa8,0xfd,0x1a,0xfe,0xbc,0x4c,0x3c,0x36,0x44,0xaa,0x05,0x9a,0xfd,0x8b,0x02,0x75,0xfa,0x66,0x02,0x8e,0xfd,0x9d,0xfe,0x6b,0x1a,0x94,0x17,0x01,0x08,0x05,0x65,0x00,0x00,0x01, +0xff,0x5c,0xfe,0x1e,0x03,0xf8,0x04,0x00,0x00,0x16,0x00,0x1f,0x40,0x0f,0x16,0x95,0x10,0x10,0x0e,0x14,0x0a,0x95,0x05,0x05,0x14,0x15,0x11,0x0e,0x0f,0x00,0x3f,0x33,0x3f,0x33,0x2f,0xed,0x11,0x12,0x39,0x2f,0xed,0x30,0x31,0x05,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x11,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x23,0x11, +0x21,0x01,0x4a,0x31,0x5d,0x87,0x57,0x4b,0x37,0x3d,0x45,0xc8,0xa4,0x02,0x0a,0xa4,0xa4,0xfd,0xf6,0x04,0x73,0xb2,0x7a,0x3f,0x1a,0x99,0x27,0x01,0x3e,0x04,0x18,0xfe,0x5c,0x01,0xa4,0xfc,0x00,0x01,0xd1,0x00,0x00,0x02,0x00,0x0f,0xfe,0x7f,0x0a,0x06,0x05,0x9a,0x00,0x25,0x00,0x2e,0x00,0x32,0x40,0x1b,0x08,0x91,0x04,0x25,0x1e,0x03, +0x1a,0x1a,0x07,0x23,0x1c,0x03,0x27,0x91,0x19,0x03,0x12,0x0a,0x26,0x91,0x10,0x0c,0x0e,0x12,0x01,0x07,0x12,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x26,0x27,0x23,0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x36,0x12, +0x37,0x12,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x36,0x36,0x37,0x01,0x33,0x01,0x01,0x11,0x21,0x06,0x02,0x07,0x06,0x02,0x07,0x0a,0x06,0xea,0xfd,0xd6,0x1e,0x08,0x04,0xa8,0xfe,0x67,0xc1,0x9b,0xfb,0xfd,0x9b,0x6f,0x48,0x79,0x33,0x65,0x0d,0x02,0xa3,0x01,0x99,0xa8,0x04,0x07,0x13,0x0c,0x02,0x18,0xd1,0xfd,0x99,0xfc,0x6b,0xfe, +0x94,0x08,0x36,0x30,0x30,0x67,0x3a,0x02,0x90,0x24,0x0e,0xfd,0x3e,0x02,0x8e,0xfe,0x0a,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x19,0x84,0x01,0x31,0xb1,0x01,0x61,0x01,0x3b,0xfd,0x8b,0x02,0x75,0xfd,0x5e,0x0b,0x18,0x0e,0x02,0x71,0xfd,0x50,0xfd,0xae,0x04,0x6a,0x7d,0xfe,0xe2,0xa7,0xa7,0xfe,0xee,0x6f,0x00,0x02,0x00,0x12,0xfe,0x8b, +0x08,0x44,0x04,0x00,0x00,0x1d,0x00,0x22,0x00,0x32,0x40,0x1b,0x07,0x95,0x02,0x1d,0x19,0x03,0x15,0x15,0x05,0x1b,0x17,0x0f,0x1f,0x95,0x14,0x0f,0x10,0x08,0x1e,0x95,0x0e,0x0a,0x0c,0x15,0x01,0x05,0x15,0x00,0x3f,0x33,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x17,0x39,0xed,0x30,0x31,0x21,0x23,0x01,0x23, +0x11,0x23,0x11,0x21,0x11,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x33,0x00,0x13,0x21,0x11,0x21,0x11,0x33,0x11,0x33,0x01,0x33,0x01,0x01,0x11,0x23,0x02,0x03,0x08,0x44,0xe6,0xfe,0x3c,0x04,0xa4,0xfe,0x99,0x98,0x8b,0xfd,0x06,0x8c,0x5b,0x01,0x05,0x05,0x02,0x14,0x01,0x67,0xa4,0x04,0x01,0xae,0xd7,0xfe,0x25,0xfc,0xa3,0xe3,0x1b, +0xce,0x01,0xec,0xfe,0x14,0x01,0xd1,0xfe,0xba,0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0x01,0x79,0x01,0xfc,0xfe,0x5c,0x01,0xa4,0xfe,0x2b,0x01,0xd5,0xfe,0x12,0xfe,0x79,0x02,0xea,0xfe,0x62,0xfe,0xb4,0x00,0x00,0x03,0x00,0x0f,0xfe,0x7f,0x05,0x48,0x05,0x9a,0x00,0x13,0x00,0x1a,0x00,0x1f,0x00,0x29,0x40,0x14,0x09,0x14,0x91,0x11, +0x1e,0x13,0x1b,0x1b,0x04,0x0e,0x13,0x03,0x08,0x00,0x18,0x91,0x06,0x02,0x04,0x12,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0xed,0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x01,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x01,0x21,0x11,0x06,0x27,0x32, +0x37,0x11,0x01,0x04,0x81,0xc7,0x9b,0xfb,0xfd,0x9b,0x01,0x40,0x53,0x56,0xa8,0x63,0x02,0x28,0xa8,0xfd,0xae,0x30,0x2b,0xfe,0xe2,0x03,0x23,0xe5,0xb0,0xb1,0xe4,0xfe,0x66,0x98,0xfd,0xe7,0x01,0x81,0xfe,0x7f,0x02,0x1a,0x01,0xa4,0x2d,0xa2,0x73,0x02,0x1b,0xfd,0xed,0x93,0x36,0x02,0xdc,0xfc,0x72,0x06,0xfe,0x86,0x01,0xed,0x79,0x94, +0x6e,0x01,0xb1,0xfd,0xe1,0x00,0x00,0x03,0x00,0x12,0xfe,0x8b,0x04,0x23,0x04,0x00,0x00,0x12,0x00,0x19,0x00,0x1f,0x00,0x2b,0x40,0x15,0x09,0x13,0xec,0x18,0x10,0x1d,0x0d,0x1a,0x1a,0x04,0x11,0x0d,0x0f,0x08,0x01,0x16,0x95,0x06,0x02,0x04,0x15,0x00,0x3f,0xcd,0x32,0xed,0x32,0x32,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x33,0xed, +0x32,0x30,0x31,0x25,0x33,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x37,0x26,0x35,0x11,0x33,0x11,0x14,0x17,0x01,0x33,0x01,0x22,0x27,0x07,0x21,0x11,0x06,0x27,0x32,0x37,0x11,0x01,0x16,0x03,0xdf,0x44,0x8b,0xfd,0x06,0x8c,0xe8,0x62,0xa4,0x30,0x01,0xd0,0xa3,0xfe,0x11,0x52,0x3f,0xb2,0x02,0x8f,0xb5,0x89,0x94,0xaa,0xfe,0x98,0x13,0x8b, +0xfe,0x00,0x01,0x75,0xfe,0x8b,0x02,0x00,0xfe,0x59,0xc4,0x01,0x5a,0xfe,0xae,0x6f,0x39,0x01,0xfa,0xfd,0x3a,0x15,0xc4,0x01,0x11,0x62,0x93,0x56,0x01,0x3a,0xfe,0x73,0x03,0x00,0xff,0xff,0x00,0x10,0xfe,0x80,0x05,0x60,0x05,0x9a,0x00,0x26,0x01,0xf2,0x00,0x00,0x00,0x07,0x0a,0xbd,0x03,0x00,0x00,0x00,0xff,0xff,0x00,0x10,0xfe,0x8a, +0x04,0x29,0x04,0x00,0x00,0x26,0x02,0x12,0x00,0x00,0x00,0x07,0x0a,0xbe,0x01,0xdc,0x00,0x00,0xff,0xff,0x00,0x5e,0xff,0xe8,0x0a,0x47,0x05,0xb2,0x02,0x06,0x12,0x8f,0x00,0x00,0xff,0xff,0x00,0x60,0xff,0xe8,0x07,0x98,0x04,0x18,0x02,0x06,0x12,0x90,0x00,0x00,0x00,0x05,0x00,0x5e,0xff,0xe8,0x05,0xaa,0x05,0xb2,0x00,0x13,0x00,0x1a, +0x00,0x21,0x00,0x28,0x00,0x2f,0x00,0x22,0x40,0x11,0x15,0x2a,0x91,0x23,0x21,0x21,0x00,0x24,0x20,0x91,0x0a,0x03,0x14,0x2b,0x91,0x00,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x27,0x11, +0x21,0x1e,0x03,0x01,0x2e,0x03,0x27,0x11,0x21,0x21,0x11,0x0e,0x03,0x01,0x21,0x11,0x3e,0x03,0x02,0xfe,0x98,0xf8,0xb0,0x60,0x61,0xb4,0x01,0x02,0xa1,0x94,0xf3,0xae,0x5f,0x61,0xb3,0xfc,0xdf,0xfe,0x57,0x09,0x45,0x6f,0x94,0x02,0x93,0x08,0x40,0x6b,0x92,0x5a,0xfd,0xbb,0x01,0xa9,0x59,0x93,0x6e,0x45,0x03,0xda,0xfe,0x61,0x5b,0x91, +0x6a,0x40,0x18,0x6a,0xbf,0x01,0x0a,0xa1,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbf,0xfe,0xf6,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x9b,0x01,0xfa,0x6b,0xb0,0x82,0x51,0x02,0x89,0x6e,0xb2,0x82,0x4f,0x0c,0xfe,0x03,0x01,0xfc,0x0d,0x53,0x84,0xaf,0xfe,0xfc,0xfe,0x08,0x0d,0x50,0x80,0xaf,0x00,0x00,0x05,0x00,0x60,0xff,0xe8,0x04,0x50,0x04,0x18, +0x00,0x13,0x00,0x17,0x00,0x1e,0x00,0x22,0x00,0x27,0x00,0x22,0x40,0x11,0x19,0x15,0x95,0x24,0x22,0x22,0x00,0x25,0x21,0x95,0x0a,0x0f,0x18,0x16,0x95,0x00,0x15,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x12,0x39,0x2f,0x33,0xed,0x32,0x30,0x31,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x13,0x21, +0x11,0x36,0x05,0x11,0x21,0x1e,0x03,0x01,0x02,0x27,0x11,0x21,0x21,0x11,0x06,0x06,0x02,0x52,0x72,0xb8,0x82,0x46,0x49,0x88,0xc1,0x78,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0xdf,0xfe,0xfe,0xef,0xfe,0x7d,0xfe,0xfa,0x06,0x26,0x40,0x5c,0x01,0xd0,0x24,0xda,0xfe,0x6a,0x01,0x02,0x69,0x85,0x18,0x4c,0x8a,0xc1,0x75,0x81,0xcb,0x8d,0x4b, +0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x01,0xe9,0xfe,0xa6,0x25,0x23,0x01,0x58,0x42,0x72,0x5a,0x3d,0x01,0xd6,0x01,0x0a,0x22,0xfe,0xd4,0x01,0x2a,0x15,0x98,0x00,0xff,0xff,0x00,0x0c,0x06,0x1f,0x02,0xe6,0x09,0x39,0x02,0x06,0x13,0x7b,0x00,0x00,0xff,0xff,0x00,0x5a,0x06,0x1f,0x02,0x57,0x09,0x39,0x02,0x06,0x13,0x7d,0x00,0x00, +0x00,0x03,0x00,0x28,0xff,0xe8,0x04,0xca,0x05,0x88,0x00,0x4a,0x00,0x68,0x00,0x79,0x00,0x54,0x40,0x16,0x3a,0x37,0x99,0x40,0x32,0x27,0x2e,0x03,0x5a,0x4f,0x2b,0x00,0x4a,0x4a,0x2b,0x9a,0x55,0x55,0x22,0x9a,0x5e,0x07,0xb8,0x01,0x7f,0xb2,0x6f,0x6f,0x4b,0xb8,0x01,0x7f,0x40,0x0a,0x18,0x5e,0x18,0x5e,0x18,0x11,0x3b,0x40,0x19,0x75, +0xb9,0x01,0x7d,0x00,0x11,0x00,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x32,0x2f,0x33,0x10,0xcd,0x32,0x17,0x39,0x10,0xed,0x32,0x30,0x31,0x13,0x3e,0x03,0x37,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e, +0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x07,0x1e,0x03,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x07,0x01,0x11,0x36,0x36,0x37,0x17,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x17,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x01,0x14,0x1e,0x02, +0x33,0x33,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x7c,0x09,0x2b,0x3c,0x48,0x26,0x23,0x56,0x6b,0x3a,0x14,0x25,0x41,0x59,0x35,0x3e,0x56,0x36,0x18,0x01,0x6f,0x49,0x7f,0x5e,0x37,0x1a,0x3a,0x5d,0x43,0x12,0x26,0x25,0x20,0x0c,0x07,0x18,0x3b,0x26,0x20,0x3e,0x17,0x07,0x0e,0x28,0x19,0x07,0x27,0x3f,0x58,0x39,0x5b,0x8b,0x34,0x1c, +0x47,0x4c,0x4d,0x22,0x5b,0x91,0x69,0x40,0x09,0x24,0x44,0x3c,0x30,0x0e,0x01,0x82,0x21,0x2e,0x07,0x3b,0x05,0x0f,0x1b,0x15,0x15,0x2a,0x22,0x15,0x3b,0x30,0x2b,0x10,0x26,0x22,0x17,0x24,0x3d,0x51,0x2e,0xfd,0x4e,0x0d,0x21,0x38,0x2c,0x0c,0x03,0x0e,0x1e,0x1b,0x17,0x20,0x14,0x09,0x01,0x97,0x01,0x09,0x0f,0x15,0x0e,0x01,0x9d,0x37, +0x50,0x59,0x21,0x43,0x68,0x47,0x25,0x2c,0x46,0x56,0x2b,0x98,0x2a,0x4f,0x72,0x49,0x3e,0x78,0x5e,0x3b,0x06,0x11,0x1b,0x15,0x26,0x21,0x20,0x27,0x0b,0x14,0x0a,0x54,0x6c,0x40,0x19,0x35,0x30,0xb1,0x13,0x1c,0x13,0x09,0x2b,0x5d,0x92,0x67,0x08,0x0e,0x0a,0x07,0x02,0x02,0x30,0xfe,0xb3,0x17,0x37,0x20,0x11,0x14,0x2d,0x27,0x19,0x1c, +0x2c,0x33,0x17,0x11,0x39,0x48,0x14,0x2d,0x46,0x32,0x2e,0x45,0x2e,0x17,0x01,0x1b,0x21,0x35,0x25,0x13,0x7a,0x1b,0x3a,0x30,0x1f,0x17,0x27,0x34,0x00,0x01,0xff,0x38,0x06,0x19,0x05,0x0f,0x06,0xc0,0x00,0x04,0x00,0x0c,0xba,0x00,0x02,0x04,0xfb,0x00,0x00,0x00,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x21,0x15,0x04,0xb5,0xfa,0x83,0x05, +0xd7,0x06,0x19,0xa7,0x0a,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x05,0x26,0x06,0x50,0x00,0x3b,0x00,0x2e,0x40,0x12,0x3a,0x31,0x00,0x30,0x17,0x0b,0x11,0x9a,0x36,0x15,0x06,0x0d,0x0d,0x23,0x36,0x07,0x26,0x21,0xb8,0x01,0x7f,0xb1,0x23,0x18,0x00,0x3f,0xed,0x32,0x3f,0x12,0x39,0x2f,0x33,0x33,0x10,0xed,0x32,0x32,0x39,0x39,0xcc,0x32, +0x30,0x31,0x01,0x1e,0x03,0x17,0x23,0x2e,0x03,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06,0x07,0x11,0x23,0x11,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x21,0x35,0x21,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x03,0x6d,0x67,0xa0,0x6f,0x3e,0x05,0xa5,0x05,0x23,0x42,0x65, +0x45,0x72,0x0e,0x1e,0x0f,0x12,0x21,0x10,0x72,0x47,0x67,0x43,0x20,0x45,0x83,0xbd,0x78,0x01,0xd7,0xfb,0xb4,0x01,0x12,0x4a,0x78,0x54,0x2e,0x40,0x74,0xa4,0x63,0x72,0x11,0x23,0x12,0x0e,0x1c,0x0e,0x72,0x05,0x9c,0x1b,0x76,0xa6,0xcd,0x73,0x5c,0x9d,0x7d,0x59,0x18,0xfe,0x19,0x01,0xff,0x01,0x02,0x02,0x02,0xfe,0x02,0x01,0xe1,0x1d, +0x69,0x8e,0xae,0x62,0x78,0xd9,0xa4,0x61,0x8c,0x8c,0x22,0x7c,0xa1,0xbb,0x62,0x7c,0xde,0xb3,0x81,0x20,0xba,0xa2,0x02,0x02,0x02,0x01,0xa1,0x00,0x00,0x03,0x00,0xbc,0xff,0x2f,0x03,0xea,0x06,0x50,0x00,0x28,0x00,0x33,0x00,0x3e,0x00,0x38,0x40,0x0b,0x12,0x2a,0x99,0x35,0x35,0x27,0x26,0x06,0x00,0x00,0x34,0xb8,0x01,0x80,0xb7,0x08, +0x02,0x27,0x06,0x1d,0x24,0x24,0x2b,0xb8,0x01,0x80,0xb3,0x22,0x1b,0x26,0x18,0x00,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x3f,0x33,0x33,0xed,0x33,0x2f,0x33,0x11,0x12,0x39,0x2f,0xed,0x39,0x30,0x31,0x01,0x33,0x15,0x33,0x32,0x17,0x35,0x33,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x06,0x07,0x15,0x23,0x35, +0x06,0x22,0x23,0x23,0x15,0x23,0x35,0x23,0x11,0x33,0x13,0x23,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x27,0x03,0x11,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x01,0x7f,0x68,0x0f,0x23,0x24,0x68,0x3a,0x62,0x48,0x29,0x24,0x42,0x5b,0x37,0x48,0x71,0x4e,0x29,0xa9,0x9c,0x68,0x11,0x22,0x12,0x11,0x68,0xc3,0xc3,0x77,0x92,0x94,0x48,0x77, +0x54,0x2f,0xdc,0xfa,0x92,0x81,0x8b,0x17,0x3c,0x68,0x51,0x06,0x50,0xb6,0x03,0xb9,0xc7,0x0c,0x30,0x4b,0x69,0x47,0x3d,0x6c,0x58,0x41,0x12,0x04,0x09,0x3c,0x5c,0x78,0x45,0xac,0xc2,0x1f,0xe0,0xd3,0x02,0xd1,0xd1,0x05,0x9a,0xfd,0x02,0xfd,0xfc,0x1a,0x3d,0x64,0x4b,0xd9,0x1f,0x02,0x6c,0xfe,0x31,0x82,0x7c,0x2b,0x4c,0x39,0x21,0x00, +0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x02,0x19,0x00,0x13,0x00,0x12,0xb6,0x04,0x11,0x11,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x11,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a, +0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x03,0x2a,0xfe,0xa4,0x67,0xe7,0xff,0xff,0x00,0x66,0xfe,0xef,0x02,0x56,0x02,0x19,0x02,0x07,0x07,0xb1,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x00,0xe6,0x02,0x19,0x00,0x03,0x00,0x08,0xb1,0x03,0x00,0x00,0x2f,0x2f,0x30,0x31,0x13,0x23,0x11,0x33,0xe6,0x80, +0x80,0xfe,0xef,0x03,0x2a,0x00,0xff,0xff,0x00,0x66,0xfe,0xef,0x03,0x9a,0x01,0x24,0x02,0x07,0x07,0xb2,0x00,0x00,0xfc,0x55,0x00,0x01,0x00,0x66,0xfe,0xef,0x02,0x50,0x01,0x24,0x00,0x13,0x00,0x14,0xb7,0x04,0x11,0x11,0x0e,0x0b,0x0c,0x01,0x0b,0x00,0x2f,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x11,0x34,0x23,0x22, +0x0e,0x02,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x33,0x32,0x15,0x02,0x50,0x7f,0x6d,0x1d,0x2e,0x21,0x12,0x80,0x80,0x02,0x3a,0x7a,0xb4,0xfe,0xef,0x01,0x33,0x97,0x16,0x28,0x36,0x1f,0xfe,0xc9,0x02,0x24,0x56,0x67,0xe7,0x00,0xff,0xff,0x00,0x66,0xfd,0xf9,0x02,0x89,0x01,0x24,0x02,0x07,0x07,0xb8,0x00,0x00,0xfc,0x55,0x00,0x01, +0x00,0x3c,0xfe,0xdc,0x01,0xcd,0x01,0x26,0x00,0x2e,0x00,0x12,0xb6,0x06,0x1f,0x15,0x03,0x2c,0x1c,0x15,0x00,0x2f,0x33,0x2f,0x33,0x12,0x39,0x39,0x30,0x31,0x17,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x15, +0x14,0x0e,0x02,0x23,0x22,0x27,0x3c,0x28,0x59,0x2f,0x33,0x32,0x10,0x1d,0x27,0x16,0x2c,0x40,0x2a,0x14,0x22,0x3b,0x51,0x30,0x2a,0x4e,0x20,0x23,0x4d,0x2d,0x2a,0x34,0x39,0x33,0x27,0x3f,0x2c,0x17,0x27,0x42,0x55,0x2e,0x60,0x45,0x96,0x16,0x15,0x1d,0x21,0x13,0x1a,0x14,0x10,0x09,0x10,0x21,0x27,0x30,0x21,0x28,0x3e,0x2a,0x16,0x0f, +0x0e,0x6d,0x0f,0x14,0x1a,0x1d,0x20,0x26,0x13,0x0f,0x1f,0x28,0x32,0x21,0x2b,0x40,0x2a,0x15,0x25,0x00,0xff,0xff,0x00,0x0a,0xfe,0xe3,0x01,0x68,0x01,0xb7,0x02,0x07,0x07,0xb9,0x00,0x00,0xfc,0x55,0x00,0x03,0x00,0x1e,0x04,0xdb,0x03,0x93,0x0a,0x63,0x00,0x1d,0x00,0x26,0x00,0x31,0x00,0x27,0x40,0x11,0x1f,0x1d,0x1d,0x27,0x04,0x1e, +0x13,0x13,0x28,0x0e,0x04,0x0e,0x04,0x0e,0x02,0x10,0x02,0x00,0x2f,0x2f,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x33,0x2f,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x11,0x23,0x11,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x11,0x33,0x11,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x03,0x11,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x02,0x14,0x77,0x12,0x52,0x87,0x60,0x34,0x36,0x61,0x88,0x53,0x0d,0x77,0x0a,0x54,0x8a,0x62,0x35,0x34,0x5f,0x86,0x52,0x14,0x0a,0x73,0x7f,0x7c,0x71,0x86,0x0d,0x70,0x7f,0x20,0x3e,0x5a,0x3b,0x06,0x29,0xfe,0xb2,0x01,0x4e,0x38,0x65,0x8d,0x55,0x5a,0x93,0x69,0x3a,0x01, +0x2b,0xfe,0xd5,0x3a,0x69,0x93,0x5a,0x54,0x8d,0x66,0x38,0x02,0xa4,0xfd,0xc6,0x95,0x84,0x89,0x98,0xfd,0xc6,0x02,0x3a,0x97,0x8a,0x41,0x67,0x4a,0x27,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14, +0xb7,0x16,0x19,0x19,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x25,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10, +0xfe,0x0a,0x01,0xf6,0x9d,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x07,0x09,0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02, +0x35,0x34,0x3e,0x02,0x33,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0x06,0x9a,0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0x00,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x16,0x19,0x19,0x07,0x09, +0x09,0x00,0x14,0x00,0x2f,0x33,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x21,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x21,0x11,0x21,0x35,0x21,0x02,0x7f,0xf3,0x4c,0x4c,0x50,0x48,0xf3,0xfe,0xf8,0x3d,0x62,0x45,0x25,0x23,0x42,0x60,0x3c,0x01,0x10,0xfe,0x0a,0x01,0xf6,0x06,0x9a, +0x3c,0x40,0x3f,0x36,0x77,0x20,0x3d,0x58,0x37,0x37,0x59,0x3f,0x22,0xfd,0x36,0x75,0x00,0x01,0x00,0x6e,0x05,0x32,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, +0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0x04,0x45,0x02,0x7f,0x07,0x0f,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f, +0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x07,0x0f,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77, +0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00,0x00,0x01,0x00,0x6e,0xff,0x35,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x0e,0xb4,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25, +0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0x00,0x02,0x00,0x6e,0xfe,0x48,0x02,0x7f,0x01,0x12,0x00,0x15,0x00,0x19,0x00,0x14,0xb7,0x19,0x16,0x16,0x0d,0x0c,0x0c,0x14,0x00,0x00,0x2f,0x32,0x32,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x13,0x21, +0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x21,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x21,0x15,0x21,0x6e,0x01,0x10,0x3c,0x60,0x42,0x23,0x25,0x45,0x62,0x3d,0xfe,0xf8,0xf3,0x48,0x50,0x4c,0x4c,0xf3,0x01,0xf6,0xfe,0x0a,0x01,0x12,0x22,0x3f,0x59,0x37,0x37,0x58,0x3d,0x20,0x77,0x36,0x3f,0x40,0x3c,0xfe,0x20,0x75,0x00, +0xff,0xff,0x00,0x70,0x01,0xfe,0x01,0x50,0x02,0xdf,0x02,0x02,0x00,0xc3,0x00,0x00,0x00,0x01,0x00,0x29,0x00,0x00,0x04,0x0c,0x05,0x9a,0x00,0x0b,0x00,0x15,0x40,0x0a,0x09,0x04,0x91,0x06,0x03,0x0a,0x03,0x91,0x01,0x12,0x00,0x3f,0xed,0x32,0x3f,0xed,0x32,0x30,0x31,0x21,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x04, +0x0c,0xfc,0x1d,0x01,0x9d,0xfe,0x63,0x03,0xe3,0xfe,0x62,0x01,0x9e,0x98,0x04,0x6a,0x98,0x98,0xfb,0x96,0x00,0x02,0x00,0x20,0xff,0xde,0x02,0xd9,0x05,0xa4,0x00,0x1d,0x00,0x29,0x00,0x2a,0x40,0x19,0x07,0x21,0x00,0x16,0x04,0xb9,0x24,0xc9,0x24,0x02,0x24,0x14,0x14,0x0a,0x19,0x03,0xb6,0x1e,0xc6,0x1e,0x02,0x1e,0x04,0x0a,0x12,0x00, +0x3f,0x33,0x33,0x5d,0x3f,0x12,0x39,0x2f,0x33,0x5d,0x17,0x39,0x30,0x31,0x25,0x16,0x16,0x17,0x07,0x26,0x26,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x17,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x05,0x32,0x36,0x37,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x83,0x1c,0x2d,0x0d,0x91,0x09,0x18,0x0d,0x38, +0x86,0x4a,0x35,0x59,0x40,0x24,0x29,0x46,0x5f,0x35,0x77,0x66,0x12,0xa8,0x17,0xfe,0x7c,0x2c,0x4d,0x20,0x22,0x47,0x28,0x33,0x33,0x36,0xd6,0x29,0x63,0x37,0x35,0x1b,0x3d,0x17,0x33,0x29,0x1d,0x36,0x4d,0x30,0x32,0x50,0x37,0x1d,0x43,0x4e,0x6d,0x03,0x95,0xfc,0x68,0x52,0x9e,0x91,0x1b,0x20,0x1b,0x1d,0x20,0x19,0x1e,0x1c,0xff,0xff, +0x00,0x1a,0x00,0x00,0x04,0x9a,0x05,0x9a,0x02,0x02,0x00,0x3b,0x00,0x00,0x00,0x03,0x00,0xbc,0xfe,0x29,0x04,0x2f,0x05,0x9a,0x00,0x19,0x00,0x21,0x00,0x2b,0x00,0x22,0x40,0x11,0x0b,0x1a,0x91,0x23,0x23,0x00,0x1b,0x91,0x17,0x19,0x19,0x17,0x12,0x22,0x91,0x00,0x03,0x00,0x3f,0xed,0x3f,0x33,0x2f,0x10,0xed,0x12,0x39,0x2f,0xed,0x39, +0x30,0x31,0x13,0x21,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x23,0x11,0x23,0x13,0x11,0x33,0x32,0x36,0x35,0x34,0x21,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x21,0xbc,0x01,0x98,0x5d,0x95,0x69,0x39,0x22,0x40,0x5c,0x3a,0x48,0x75,0x54,0x2e,0x47,0x7c,0xab,0x63,0xfa,0xa8,0xa8,0xe4,0x95, +0xa2,0xfe,0xa6,0xc1,0xac,0x45,0x6e,0x4c,0x29,0xfe,0xed,0x05,0x9a,0x30,0x57,0x78,0x49,0x3d,0x6b,0x58,0x41,0x13,0x04,0x08,0x38,0x5a,0x7a,0x4a,0x5c,0x98,0x6c,0x3c,0xfe,0x29,0x04,0x73,0xfd,0xfc,0x8b,0x7b,0xfe,0x02,0x66,0xfe,0x31,0x22,0x41,0x5f,0x3c,0xd1,0xff,0xff,0x00,0xa7,0xfe,0x1f,0x04,0x15,0x05,0xfc,0x02,0x02,0x01,0xc4, +0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x07,0x58,0x05,0x9a,0x00,0x44,0x00,0x20,0x40,0x10,0x38,0x91,0x21,0x12,0x1c,0x17,0x3f,0x3f,0x0a,0x00,0x91,0x17,0x12,0x2e,0x0a,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x3f,0xed,0x30,0x31,0x25,0x32,0x12,0x11,0x34,0x2e,0x04,0x27,0x33,0x1e,0x05,0x15,0x14,0x02,0x06,0x06, +0x23,0x22,0x2e,0x02,0x27,0x0e,0x03,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x33,0x0e,0x05,0x15,0x10,0x12,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x05,0x5d,0xa0,0xab,0x18,0x28,0x35,0x3a,0x3b,0x1b,0xb5,0x18,0x38,0x39,0x35,0x29,0x19,0x46,0x85,0xc0,0x79,0x4a,0x72,0x5a,0x47,0x1e,0x1f,0x47,0x5a,0x72, +0x49,0x7a,0xbf,0x85,0x46,0x19,0x29,0x35,0x39,0x38,0x18,0xb5,0x1b,0x3b,0x3a,0x35,0x28,0x18,0xaa,0xa1,0x5c,0x76,0x44,0x1a,0xa8,0x18,0x42,0x77,0x7f,0x01,0x0a,0x01,0x15,0x45,0x96,0x96,0x8f,0x7b,0x63,0x1e,0x1c,0x58,0x73,0x88,0x98,0xa4,0x54,0xa7,0xfe,0xff,0xb0,0x5b,0x16,0x2b,0x3f,0x29,0x29,0x3f,0x2b,0x16,0x5b,0xb0,0x01,0x01, +0xa7,0x54,0xa4,0x98,0x88,0x73,0x58,0x1c,0x1e,0x63,0x7b,0x8f,0x96,0x96,0x45,0xfe,0xeb,0xfe,0xf6,0x32,0x62,0x93,0x62,0x01,0xc7,0xfe,0x4d,0x66,0x9b,0x68,0x34,0x00,0xff,0xff,0x00,0x77,0xff,0xea,0x06,0x00,0x04,0x01,0x02,0x02,0x01,0xd5,0x00,0x01,0x00,0x02,0x00,0xa6,0x00,0x00,0x06,0x14,0x04,0x00,0x00,0x11,0x00,0x18,0x00,0x1e, +0x40,0x0f,0x12,0x95,0x04,0x04,0x00,0x11,0x95,0x02,0x0f,0x13,0x95,0x0f,0x0f,0x00,0x15,0x00,0x3f,0x32,0x2f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x30,0x31,0x21,0x23,0x11,0x21,0x11,0x21,0x32,0x1e,0x02,0x15,0x14,0x07,0x06,0x23,0x21,0x11,0x21,0x01,0x11,0x33,0x32,0x35,0x34,0x23,0x01,0x4a,0xa4,0x03,0x04,0x01,0x14,0x51,0x7f,0x58, +0x2e,0x5c,0x5c,0x8f,0xfe,0x39,0xfe,0x44,0x02,0x60,0xf6,0xcc,0xce,0x04,0x00,0xfe,0x6a,0x28,0x4e,0x71,0x49,0x93,0x54,0x53,0x03,0x74,0xfe,0x69,0xfe,0xaf,0xae,0xa3,0x00,0x02,0x00,0xa6,0xff,0xe8,0x05,0xfe,0x04,0x18,0x00,0x1f,0x00,0x28,0x00,0x27,0x40,0x15,0x23,0x95,0x1a,0x0f,0x01,0x95,0x28,0x28,0x0f,0x95,0x14,0x14,0x11,0x12, +0x0f,0x11,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x12,0x39,0x2f,0xed,0x33,0x2f,0xed,0x3f,0xed,0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x27,0x21,0x11,0x23,0x11,0x33,0x11,0x21,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x05,0xfe,0xfd,0x2d,0x04, +0xaf,0x9b,0xac,0x92,0x88,0xdd,0x68,0xa8,0x78,0x44,0x04,0xfe,0xc8,0xa4,0xa4,0x01,0x3e,0x0f,0x52,0x7b,0x9c,0x59,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x42,0x7f,0xb8,0x76,0xfe,0x29,0x04,0x00,0xfe,0x62,0x62,0xa2,0x73,0x3f,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c, +0x4f,0x6f,0x42,0x00,0x00,0x02,0x00,0x60,0xff,0xe8,0x06,0x37,0x04,0x18,0x00,0x2e,0x00,0x37,0x00,0x2e,0x40,0x19,0x32,0x95,0x29,0x0f,0x01,0x95,0x0c,0x0f,0x26,0x23,0x37,0x37,0x0f,0x1e,0x95,0x23,0x0f,0x14,0x95,0x0f,0x15,0x04,0x95,0x09,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x12,0x39,0x12,0x39,0xed,0x3f,0xed, +0x30,0x31,0x01,0x21,0x16,0x16,0x33,0x32,0x37,0x15,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x07,0x35,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x07,0x06,0x37,0xfd,0x2d,0x04,0xaf,0x9b,0xac,0x92,0x88, +0xdd,0x88,0xc8,0x3a,0x45,0xdd,0x91,0x85,0x69,0x73,0x81,0x4e,0x84,0x5f,0x35,0x31,0x5b,0x81,0x4f,0x85,0x77,0x77,0xa1,0x89,0xd0,0x3f,0x40,0xc7,0x79,0x65,0x9d,0x6b,0x38,0xa8,0x01,0x86,0x79,0x3a,0x64,0x4e,0x33,0x0a,0x01,0xd7,0xac,0xb9,0x72,0x9a,0x62,0x6d,0x69,0x66,0x70,0x32,0xa8,0x50,0x3b,0x6c,0x96,0x5b,0x5a,0x8f,0x65,0x36, +0x59,0x9c,0x47,0x73,0x65,0x66,0x72,0x43,0x7f,0xb6,0x73,0x35,0x8f,0x9d,0x2c,0x4f,0x6f,0x42,0x00,0x02,0x00,0x90,0xff,0xe8,0x07,0x2a,0x04,0x18,0x00,0x23,0x00,0x33,0x00,0x22,0x40,0x12,0x24,0x95,0x1a,0x0f,0x17,0x03,0x08,0x15,0x0b,0x0f,0x0f,0x95,0x08,0x15,0x2e,0x95,0x00,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x39, +0x3f,0xed,0x30,0x31,0x05,0x22,0x26,0x27,0x0e,0x03,0x23,0x20,0x11,0x11,0x33,0x11,0x10,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x2c,0x81,0xc6,0x40,0x17,0x3d,0x58,0x77,0x4f,0xfe,0x5d,0xa3,0x01,0x00, +0x48,0x66,0x40,0x1d,0xa4,0x42,0xb2,0x6e,0x73,0xb4,0x7d,0x42,0x48,0x84,0xbd,0x69,0x4e,0x7f,0x59,0x30,0x30,0x5a,0x7e,0x4e,0xa0,0xaa,0xaa,0x18,0x5e,0x57,0x23,0x41,0x33,0x1e,0x01,0xb4,0x02,0x64,0xfd,0xb6,0xfe,0xbc,0x2f,0x55,0x75,0x47,0x02,0x4e,0x62,0x3c,0x3e,0x49,0x8a,0xc5,0x7c,0x79,0xc7,0x8e,0x4e,0x03,0xa6,0x37,0x69,0x96, +0x5e,0x5a,0x91,0x66,0x37,0xcd,0xbf,0xc1,0xcf,0x00,0x00,0x01,0x00,0x35,0xff,0xea,0x04,0xce,0x06,0x02,0x00,0x26,0x00,0x26,0x40,0x14,0x1c,0x0b,0x16,0x95,0x11,0x00,0x20,0x06,0x09,0x95,0x1d,0x19,0x0b,0x0f,0x07,0x15,0x24,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0x3f,0x33,0x33,0xed,0x32,0x32,0x3f,0xed,0x12,0x39,0x30,0x31,0x25,0x06, +0x23,0x20,0x11,0x11,0x21,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x37,0x36,0x33,0x32,0x17,0x15,0x26,0x23,0x22,0x15,0x15,0x21,0x35,0x37,0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x04,0xce,0x3b,0x5e,0xfe,0xf3,0xfe,0x5f,0xa3,0xaf,0xaf,0x5d,0x5d,0x8b,0x4b,0x2c,0x30,0x3d,0xac,0x01,0xa1,0xa4,0x01,0x02,0xfe,0xfe,0x46, +0x51,0x3f,0x2c,0x0a,0x20,0x01,0x2c,0x02,0x5e,0xfc,0x8c,0x03,0x74,0x8c,0xa6,0xa1,0x5d,0x5e,0x12,0x94,0x1b,0xd9,0x9e,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x00,0x01,0x00,0x68,0xff,0xe8,0x05,0x47,0x05,0x2f,0x00,0x3d,0x00,0x25,0x40,0x14,0x37,0x95,0x34,0x0f,0x0b,0x21,0x1a,0x33,0x05,0x95,0x31,0x0f,0x1f,0x95, +0x1a,0x15,0x3b,0x95,0x02,0x15,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x33,0x12,0x39,0x39,0x3f,0xed,0x30,0x31,0x25,0x06,0x23,0x20,0x11,0x11,0x21,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x27,0x35,0x16,0x33,0x32,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x21,0x35,0x37, +0x11,0x21,0x15,0x21,0x11,0x14,0x16,0x33,0x32,0x37,0x05,0x47,0x3b,0x5e,0xfe,0xf3,0xfe,0x3b,0x2e,0x4a,0x35,0x1d,0x1d,0x38,0x50,0x33,0x44,0x6c,0x4c,0x29,0x43,0x70,0x93,0x4f,0x9f,0x73,0x85,0xa2,0xd8,0x25,0x3f,0x55,0x31,0x44,0x67,0x45,0x23,0x3d,0x63,0x7e,0x40,0x01,0xd9,0xa4,0x01,0x02,0xfe,0xfe,0x46,0x51,0x3f,0x2c,0x0a,0x20, +0x01,0x2c,0x02,0x5e,0x0d,0x1c,0x2d,0x20,0x28,0x36,0x2a,0x22,0x14,0x1a,0x37,0x45,0x5b,0x3d,0x4c,0x70,0x4a,0x24,0x3d,0xb0,0x63,0x90,0x27,0x38,0x2d,0x25,0x13,0x1b,0x37,0x45,0x58,0x3b,0x48,0x67,0x42,0x1f,0xfa,0x35,0xfe,0xd1,0x8c,0xfd,0xbf,0x67,0x58,0x22,0x00,0x01,0x00,0x50,0x00,0x00,0x04,0xad,0x04,0xda,0x00,0x0b,0x00,0x0b, +0xb3,0x05,0x06,0x00,0x18,0x00,0x3f,0x2f,0x39,0x30,0x31,0x21,0x26,0x02,0x27,0x00,0x25,0x37,0x04,0x13,0x16,0x12,0x17,0x04,0x74,0x58,0xde,0x8d,0xfe,0xeb,0xfe,0xb4,0xe6,0x01,0x1d,0xe7,0x75,0xb8,0x46,0xcd,0x01,0x5b,0x97,0x01,0x2a,0x85,0x6c,0xd4,0xfe,0xbe,0xa3,0xfe,0xa0,0xc1,0x00,0x01,0x00,0x50,0xff,0xfa,0x02,0xd5,0x04,0xdd, +0x00,0x42,0x00,0x26,0x40,0x11,0x2a,0x29,0x29,0x10,0x11,0x36,0x3e,0x11,0x3e,0x11,0x3e,0x05,0x18,0x20,0x33,0x05,0x18,0x00,0x3f,0x33,0x2f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x11,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x23,0x35,0x21,0x36,0x36,0x35,0x34,0x26,0x23, +0x22,0x07,0x26,0x26,0x35,0x34,0x36,0x37,0x36,0x1e,0x02,0x15,0x14,0x06,0x15,0x33,0x15,0x23,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x02,0xd5,0x2d,0x51,0x70,0x43,0x17,0x4c,0x4b,0x36,0x1b,0x28,0x30,0x14,0xf7,0x01,0x0e,0x09,0x0d,0x4a,0x40,0x1d,0x27,0x08,0x11,0x0d,0x10, +0x47,0x69,0x45,0x21,0x04,0xe1,0xf3,0x2b,0x39,0x21,0x0d,0x39,0x42,0x3c,0x57,0x1d,0x27,0x20,0x11,0x1b,0x22,0x12,0x1d,0x2d,0x1f,0x10,0x01,0x02,0x2f,0x5e,0x4c,0x2f,0x26,0x46,0x62,0x3c,0x36,0x7a,0x80,0x82,0x3e,0x4e,0x11,0x39,0x28,0x4e,0x55,0x0b,0x08,0x1f,0x1a,0x11,0x26,0x17,0x02,0x3b,0x5e,0x72,0x36,0x17,0x2e,0x15,0x4e,0x7a, +0x9f,0x6a,0x44,0x1d,0x5d,0x65,0x47,0x36,0x12,0x31,0x19,0x13,0x25,0x1b,0x11,0x19,0x27,0x31,0x00,0x03,0x00,0x3c,0xfd,0xec,0x06,0xe7,0x05,0x65,0x00,0x3b,0x00,0x4f,0x00,0x63,0x00,0x43,0x40,0x0e,0x2e,0x15,0x9b,0x18,0x55,0x9b,0x4b,0x18,0x4b,0x18,0x4b,0x06,0x21,0x1f,0xb8,0x01,0x80,0x40,0x0c,0x27,0x5f,0x9b,0x41,0x41,0x06,0x39, +0x99,0x02,0x02,0x35,0x0b,0xb8,0x01,0x80,0xb2,0x09,0x06,0x18,0x00,0x3f,0x33,0xed,0x33,0x33,0x2f,0xed,0x11,0x33,0x2f,0xed,0x2f,0xed,0x33,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x30,0x31,0x01,0x06,0x23,0x22,0x27,0x26,0x27,0x26,0x27,0x37,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x20,0x35, +0x34,0x2e,0x02,0x23,0x22,0x07,0x27,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x16,0x15,0x14,0x0e,0x02,0x07,0x16,0x17,0x16,0x33,0x32,0x37,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x07,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x03,0xcf,0x67,0x59, +0xb2,0x7f,0x56,0x2f,0xbf,0x5e,0x8c,0x50,0xa6,0x34,0x5a,0x43,0x26,0x2d,0x51,0x70,0x43,0x8b,0x8b,0x01,0x35,0x27,0x44,0x5c,0x34,0x9c,0x5d,0x89,0x18,0x4f,0x65,0x76,0x40,0x59,0x96,0x6c,0x3c,0xa6,0xa3,0x33,0x5c,0x7f,0x4b,0x0c,0x4f,0x63,0x61,0x42,0x2c,0x03,0x61,0x3f,0x6c,0x8f,0x51,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x50, +0x90,0x6c,0x3f,0xa1,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x30,0x30,0x55,0x40,0x25,0xfe,0x20,0x34,0xcd,0x8a,0xc5,0x1f,0xa4,0x4d,0x77,0x1e,0x38,0x4c,0x2f,0x38,0x5b,0x40,0x22,0xa0,0xdc,0x31,0x53,0x3d,0x23,0x77,0x50,0x2d,0x49,0x33,0x1c,0x38,0x66,0x8e,0x56,0xc3,0x6a,0x63,0xe1,0x4a,0x7f,0x60,0x3d,0x09,0x60, +0x81,0xa5,0x26,0x02,0xdb,0x50,0x8f,0x6c,0x3f,0x3f,0x6c,0x8f,0x50,0x51,0x90,0x6c,0x3f,0x3f,0x6c,0x90,0x51,0x30,0x55,0x41,0x25,0x25,0x41,0x55,0x30,0x30,0x55,0x40,0x25,0x25,0x40,0x55,0x00,0x02,0x00,0x54,0xfe,0x9b,0x08,0x76,0x08,0xe0,0x00,0x72,0x00,0x82,0x00,0x53,0xb9,0x00,0x39,0x01,0x81,0xb4,0x4b,0x4b,0x43,0x48,0x42,0xb8, +0x01,0x81,0x40,0x18,0x45,0x11,0x63,0x79,0x23,0x04,0x16,0x7e,0x1e,0x1e,0x01,0x76,0x16,0x16,0x69,0x71,0x01,0x01,0x45,0x45,0x43,0x0c,0x69,0x2d,0xb8,0x01,0x81,0xb4,0x55,0x55,0x40,0x43,0x18,0x00,0x3f,0x33,0x33,0x2f,0xed,0x2f,0x33,0x12,0x39,0x2f,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x11,0x33,0x2f,0x33,0x12,0x17,0x39,0x10,0xed, +0x32,0x12,0x39,0x2f,0xed,0x30,0x31,0x01,0x21,0x35,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x07,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x0e,0x02,0x02,0x15,0x14,0x12,0x04,0x04,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x21,0x11,0x23,0x11,0x21, +0x15,0x23,0x11,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x06,0x04,0x23,0x22,0x24,0x24,0x26,0x26,0x02,0x35,0x34,0x3e,0x04,0x37,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x21,0x25,0x34,0x26,0x23,0x22,0x06,0x07,0x1e,0x03,0x33,0x32,0x3e,0x02,0x06,0xe5,0xfe,0x0b,0x1d,0x2f,0x20,0x11,0x28,0x4b,0x6b,0x42,0x3a, +0x60,0x47,0x2a,0x04,0x08,0x1a,0x20,0x20,0x0e,0x76,0x82,0x23,0x3f,0x56,0x34,0x38,0x56,0x40,0x2a,0x0d,0x46,0x93,0x78,0x4c,0x90,0x01,0x05,0x01,0x6d,0xde,0x5f,0xaf,0x96,0x7b,0x57,0x30,0x18,0x2d,0x40,0x29,0x1d,0x36,0x29,0x19,0xd8,0xfe,0xd7,0xd8,0x03,0xcd,0xf4,0x40,0x7f,0x50,0x81,0x5a,0x31,0x66,0xd9,0xfe,0xad,0xec,0xb2,0xfe, +0xc6,0xfe,0xf8,0xd2,0x91,0x4d,0x30,0x54,0x71,0x82,0x8d,0x45,0x44,0x75,0x9d,0x58,0x60,0xa4,0x77,0x44,0x23,0x23,0x01,0x21,0xfd,0x25,0x2b,0x2e,0x26,0x3b,0x11,0x02,0x16,0x22,0x2a,0x17,0x10,0x1d,0x16,0x0d,0x05,0xa8,0x7f,0x12,0x39,0x44,0x47,0x20,0x48,0x75,0x53,0x2e,0x29,0x46,0x61,0x37,0x04,0x08,0x08,0x05,0x78,0x6e,0x32,0x52, +0x3b,0x20,0x27,0x40,0x52,0x2c,0x2d,0x8f,0xd4,0xfe,0xe1,0xbd,0xda,0xfe,0xa0,0xfa,0x87,0x08,0x1f,0x3f,0x6e,0xa6,0x77,0x47,0x78,0x57,0x31,0x21,0x36,0x42,0x21,0xfe,0x1c,0x04,0x78,0xfb,0x88,0x05,0x28,0xb0,0xfe,0x99,0x3e,0x46,0x7c,0xad,0x67,0xb3,0xfe,0xee,0xba,0x5f,0x4b,0x8d,0xca,0xfe,0x01,0x2c,0xa9,0x8e,0xf6,0xd0,0xaa,0x87, +0x64,0x21,0x17,0x58,0x9d,0x75,0x45,0x45,0x78,0xa5,0x60,0x3c,0x7a,0x3b,0x56,0x36,0x30,0x15,0x0e,0x1e,0x37,0x2a,0x1a,0x0f,0x18,0x1f,0x00,0x01,0x00,0x74,0x00,0xfd,0x03,0x47,0x05,0x5a,0x00,0x5c,0x00,0x2b,0x40,0x14,0x37,0x53,0x59,0x22,0x1c,0x12,0x2d,0x03,0x53,0x03,0x12,0x12,0x03,0x53,0x03,0x0a,0x4d,0x40,0x21,0x0a,0x00,0x2f, +0x33,0x2f,0x33,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x12,0x39,0x11,0x33,0x32,0x32,0x11,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x11,0x26,0x26,0x27,0x22,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16, +0x17,0x35,0x34,0x26,0x23,0x22,0x06,0x23,0x22,0x2e,0x02,0x27,0x13,0x33,0x17,0x16,0x33,0x32,0x37,0x17,0x07,0x22,0x2e,0x02,0x23,0x22,0x06,0x07,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x15,0x36,0x36,0x37,0x03,0x47,0x2e,0x82,0x53,0x0d,0x15,0x1a,0x0c,0x42,0x24,0x50,0x43,0x2c,0x3b,0x2e,0x06,0x1b,0x1b,0x15,0x18,0x1c,0x18,0x0b,0x15, +0x20,0x15,0x2e,0x55,0x31,0x36,0x3c,0x10,0x1c,0x26,0x17,0x27,0x3b,0x07,0x0e,0x28,0x1e,0x2a,0x25,0x0f,0x17,0x09,0x0b,0x10,0x10,0x12,0x0c,0xfc,0x1c,0x9f,0x06,0x12,0x0f,0x0c,0x1d,0x75,0x08,0x1e,0x2b,0x38,0x22,0x1a,0x28,0x11,0x0e,0x19,0x0b,0x27,0x3f,0x2d,0x18,0x34,0x66,0x33,0x03,0x8b,0x54,0x4f,0x0e,0xfe,0x69,0x0f,0x1a,0x13, +0x0a,0x38,0x5b,0x75,0x3d,0x3f,0x47,0x06,0x18,0x33,0x2d,0x27,0x27,0x14,0x08,0x07,0x0c,0x25,0x23,0x19,0x01,0x69,0x04,0x0b,0x12,0x3f,0x2a,0x16,0x26,0x1d,0x10,0x2b,0x23,0x09,0x0d,0x0c,0x34,0x35,0x28,0x03,0x0e,0x1b,0x27,0x18,0x01,0x0c,0x6c,0x06,0x09,0x2a,0x78,0x1a,0x20,0x1a,0x2a,0x1b,0x02,0x03,0x17,0x25,0x31,0x1a,0x93,0x05, +0x2c,0x3b,0x00,0x01,0xff,0xf8,0xff,0xec,0x09,0x3b,0x05,0xcd,0x00,0xa4,0x00,0x00,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x37,0x3e,0x03,0x37,0x17,0x0e,0x05,0x07,0x0e,0x05,0x07,0x3e,0x05,0x37,0x3e,0x03,0x37,0x3e,0x03,0x37,0x17, +0x0e,0x05,0x07,0x0e,0x05,0x15,0x14,0x33,0x32,0x3e,0x02,0x37,0x17,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x37,0x3e,0x05,0x37,0x0e,0x03,0x07,0x0e,0x03,0x07,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x36,0x12,0x37,0x3e,0x05,0x37,0x0e,0x05,0x07,0x0e,0x05,0x01,0x0a,0x3f,0x65,0x48,0x26,0x1c,0x31,0x44,0x29,0x22, +0x2c,0x1a,0x0b,0x14,0x2c,0x43,0x2f,0x1a,0x11,0x13,0x2e,0x4b,0x38,0x4b,0x87,0x7e,0x77,0x76,0x78,0x41,0x61,0xc1,0xb0,0x96,0x36,0x21,0x09,0x32,0x40,0x47,0x3f,0x2e,0x07,0x07,0x24,0x30,0x36,0x31,0x26,0x07,0x20,0x4b,0x51,0x55,0x55,0x52,0x27,0x2d,0x4a,0x43,0x40,0x23,0x39,0x70,0x64,0x55,0x1f,0x22,0x17,0x3d,0x44,0x48,0x46,0x40, +0x19,0x15,0x38,0x3c,0x3b,0x2f,0x1d,0x10,0x1b,0x51,0x5b,0x5e,0x29,0x19,0x27,0x5f,0x62,0x5f,0x28,0x23,0x38,0x27,0x15,0x24,0x3b,0x48,0x48,0x3f,0x15,0x1a,0x4d,0x55,0x58,0x4b,0x37,0x0a,0x1a,0x70,0x9d,0xc4,0x6d,0x3e,0x6b,0x5d,0x51,0x24,0x1f,0x38,0x34,0x2f,0x15,0x22,0x27,0x14,0x05,0x19,0x49,0x84,0x6c,0x18,0x3e,0x42,0x41,0x36, +0x28,0x08,0x2c,0x6c,0x74,0x79,0x71,0x67,0x28,0x37,0x6d,0x71,0x78,0x85,0x96,0x14,0x27,0x48,0x63,0x3c,0x2b,0x4c,0x38,0x20,0x14,0x21,0x28,0x14,0x18,0x2d,0x26,0x1c,0x06,0x03,0x16,0x12,0x09,0x30,0x31,0x26,0x3a,0x65,0x8b,0xa0,0xaf,0x58,0x84,0xef,0xc3,0x90,0x26,0x15,0x15,0x6e,0x91,0xa1,0x8e,0x69,0x10,0x10,0x59,0x79,0x8e,0x8f, +0x83,0x30,0x20,0x66,0x7c,0x8a,0x8a,0x82,0x35,0x3d,0x64,0x55,0x4b,0x25,0x3d,0x69,0x54,0x3e,0x12,0x21,0x21,0x65,0x78,0x85,0x85,0x7d,0x33,0x2a,0x79,0x8a,0x90,0x81,0x67,0x1c,0x1d,0x38,0x59,0x6e,0x35,0x15,0x36,0x72,0x5e,0x3d,0x1a,0x3c,0x64,0x4a,0x31,0x7c,0x86,0x87,0x78,0x60,0x1c,0x23,0x5f,0x67,0x67,0x56,0x3e,0x0b,0x12,0x56, +0x97,0xde,0x99,0x59,0xa6,0x98,0x85,0x36,0x2e,0x4f,0x3b,0x21,0x2f,0x45,0x4d,0x1e,0x21,0x7b,0xbc,0x01,0x01,0xa7,0x26,0x5c,0x5e,0x5b,0x4c,0x36,0x0b,0x21,0x6b,0x82,0x91,0x90,0x86,0x36,0x49,0xa1,0x9b,0x8d,0x6b,0x3f,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0x2d,0x04,0x2a,0x02,0x26,0x09,0x1f,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0xc9, +0xfe,0xf4,0xff,0xff,0x00,0xab,0xfe,0xa6,0x05,0xf4,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06,0x09,0x24,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xfd,0xc9, +0x06,0x9f,0x04,0x12,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x27,0x0f,0x54,0x02,0xad,0xfd,0xce,0x00,0x07,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0xff,0xff,0x00,0xab,0xff,0xea,0x06,0x9f,0x04,0x39,0x02,0x26,0x09,0x3e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0xff,0xff,0x00,0x00,0xfd,0xff,0x02,0x9e,0x05,0x5f,0x02,0x26,0x09,0x17, +0x00,0x00,0x00,0x07,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xfb,0x05,0x91,0x05,0xe2,0x02,0x26,0x09,0x2a,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfe,0x00,0x00,0x07,0x0a,0x1f,0x01,0xc4,0xfd,0x56,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x4b,0x03,0x62,0x02,0x06,0x09,0xc8,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff, +0x05,0x4b,0x02,0xb7,0x02,0x06,0x09,0x7c,0x00,0x00,0xff,0xff,0x00,0x9b,0xfd,0xff,0x04,0xa6,0x01,0xc1,0x02,0x06,0x09,0x5f,0x00,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x04,0xb4,0x09,0x9a,0x00,0x28,0x00,0x2c,0x00,0x6e,0x00,0x7c,0x00,0x00,0x01,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23, +0x22,0x26,0x27,0x35,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x17,0x16,0x16,0x33,0x13,0x33,0x11,0x23,0x25,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26, +0x27,0x35,0x34,0x36,0x37,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x33,0x27,0x34,0x26,0x23,0x22,0x06,0x07,0x16,0x16,0x17,0x3e,0x03,0x03,0x75,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x0b,0x13,0x08,0x08,0x6a,0x4d,0x15,0x2b,0x17,0x17,0x2f,0x10,0x1d,0x27,0x18,0x0a,0x1f,0x11,0x61,0x0c,0x12,0x05,0x04, +0x1d,0x1d,0xee,0x5c,0x5c,0xfd,0x6b,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x1b,0x45,0x78,0x33,0x31,0x26,0x10,0x23,0x38,0x27,0x26,0x53,0x26,0x2b,0x4d,0x28,0x3f,0x5b,0x39,0x1b,0x0a,0x1a,0x2e,0x23,0x19,0x30,0x11,0x08,0x05,0x12,0x2d,0x32,0x35,0x1a,0x19,0x38,0x2d,0x1e,0x09,0x19,0x2c,0x24,0x25,0x50,0x2d,0x8d,0x26,0x21,0x18,0x32, +0x17,0x11,0x27,0x14,0x1c,0x24,0x15,0x07,0x07,0x95,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x07,0x03,0x66,0x67,0x08,0x0b,0x5f,0x07,0x09,0x15,0x26,0x34,0x1f,0x39,0x73,0x30,0x1d,0x42,0x20,0x14,0x15,0x02,0x05,0xfd,0x9a,0x61,0x16,0x23,0xb7,0xba,0x31,0x3c,0x20,0x0a,0x36,0x2e,0x16,0x30,0x1a,0x16,0x27,0x1e,0x11,0x0f, +0x0d,0x5a,0x14,0x09,0x1e,0x35,0x45,0x27,0x15,0x2b,0x2a,0x29,0x15,0x1c,0x45,0x1d,0x46,0x05,0x09,0x01,0x03,0x07,0x07,0x04,0x07,0x13,0x25,0x1e,0x0e,0x26,0x2a,0x2b,0x14,0x17,0x1a,0xbb,0x0b,0x08,0x04,0x03,0x1a,0x2e,0x14,0x0d,0x18,0x15,0x11,0x00,0x00,0x02,0xff,0x2b,0x06,0x1f,0x02,0xdf,0x08,0x40,0x00,0x36,0x00,0x48,0x00,0x21, +0x40,0x0e,0x00,0x37,0x37,0x23,0x31,0x05,0x0f,0x0f,0x1a,0x3f,0x05,0x05,0x29,0x1a,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x39,0x33,0x11,0x33,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15, +0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x33,0x17,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x32,0x32,0x16,0x32,0x01,0x35,0x0d,0x2f,0x43,0x57,0x36,0x28,0x3c,0x27,0x13,0x20,0x46,0x71,0x51,0x17,0x3e,0x3b,0x30,0x0a,0x02,0x02,0x1a,0x36,0x56,0x3e,0x3f,0x54,0x32,0x15,0x06,0x07,0x56, +0x05,0x05,0x3a,0x45,0x28,0x38,0x23,0x10,0x07,0x07,0x58,0x0a,0x02,0x1b,0x13,0xd3,0x2e,0x3b,0x23,0x0e,0x34,0x25,0x1f,0x34,0x29,0x1e,0x09,0x08,0x1c,0x1d,0x1b,0x07,0x2f,0x27,0x5f,0x53,0x38,0x22,0x3a,0x50,0x2d,0x3a,0x40,0x1e,0x06,0x01,0x06,0x0c,0x0a,0x30,0x4a,0x33,0x1a,0x1b,0x32,0x48,0x2d,0x1a,0x37,0x1d,0x1b,0x29,0x16,0x42, +0x34,0x12,0x28,0x41,0x2f,0x21,0x43,0x2f,0x5d,0x14,0x1c,0x03,0x02,0x0e,0x1b,0x1a,0x39,0x33,0x1f,0x33,0x3f,0x1f,0x01,0x00,0x00,0x01,0x00,0x00,0x06,0x1e,0x01,0xba,0x08,0xdd,0x00,0x35,0x00,0x19,0x40,0x0a,0x19,0x00,0x30,0x30,0x11,0x2a,0x21,0x21,0x0a,0x11,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x33,0x33,0x30,0x31,0x01, +0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x32,0x16,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x3e,0x03,0x37,0x01,0x62,0x47,0x61,0x3d,0x1b,0x12,0x26,0x3d,0x2b,0x2d,0x65,0x26,0x2f,0x5c,0x2e,0x45,0x61, +0x3e,0x1d,0x23,0x30,0x1c,0x1a,0x1c,0x35,0x4d,0x30,0x06,0x16,0x1a,0x16,0x06,0x0b,0x2b,0x11,0x34,0x43,0x11,0x0e,0x10,0x2f,0x34,0x37,0x1a,0x07,0xaa,0x10,0x28,0x2f,0x33,0x1b,0x18,0x2b,0x20,0x13,0x16,0x0e,0x63,0x10,0x12,0x21,0x38,0x4c,0x2a,0x2a,0x56,0x2a,0x1f,0x49,0x23,0x24,0x44,0x34,0x1f,0x02,0x03,0x03,0x64,0x02,0x03,0x25, +0x32,0x1a,0x2d,0x0f,0x0a,0x13,0x13,0x10,0x07,0x00,0x00,0x04,0x00,0x00,0x06,0x71,0x01,0xf5,0x09,0x3e,0x00,0x2a,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x27,0x40,0x11,0x40,0x3e,0x3e,0x3b,0x39,0x39,0x2b,0x00,0x19,0x0f,0x0f,0x22,0x33,0x19,0x19,0x08,0x22,0x00,0x2f,0x33,0x33,0x2f,0x33,0x12,0x39,0x2f,0x12,0x39,0x33,0x32,0x2f,0x33, +0x33,0x2f,0x33,0x30,0x31,0x13,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x65, +0x03,0x05,0x0f,0x23,0x3a,0x2c,0x31,0x3c,0x23,0x0e,0x03,0x18,0x1a,0x1d,0x36,0x29,0x19,0x15,0x26,0x33,0x1e,0x21,0x33,0x19,0x16,0x17,0x7d,0x88,0x43,0x5c,0x38,0x19,0x05,0x05,0x01,0x61,0x0b,0x15,0x0b,0x02,0x0b,0x11,0x16,0x0b,0x10,0x1d,0x27,0x2f,0x73,0x73,0xc8,0x73,0x73,0x07,0xa4,0x1a,0x2c,0x13,0x21,0x2c,0x1b,0x0c,0x0f,0x1b, +0x25,0x15,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x25,0x25,0x21,0x65,0x33,0x7e,0x77,0x1b,0x34,0x4e,0x32,0x17,0x32,0x1c,0x10,0x01,0x05,0x0e,0x25,0x21,0x17,0x2b,0x19,0x15,0x18,0x01,0x38,0x71,0x71,0x71,0x00,0x00,0x03,0x00,0x32,0x05,0xd1,0x01,0xd4,0x08,0x8c,0x00,0x1c,0x00,0x20,0x00,0x24,0x00,0x1d,0x40,0x0c,0x23,0x22, +0x22,0x1f,0x1d,0x1d,0x11,0x08,0x1c,0x1c,0x16,0x08,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x32,0x2f,0x33,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x23,0x35,0x33,0x03,0x21,0x15,0x21,0x01,0xc7,0x07,0x06, +0x16,0x35,0x56,0x40,0x37,0x4a,0x2d,0x13,0x06,0x05,0x58,0x09,0x30,0x3c,0x46,0x3c,0x07,0x06,0x31,0x73,0x73,0xdd,0x01,0x52,0xfe,0xae,0x07,0xe3,0x23,0x43,0x1f,0x37,0x58,0x3d,0x21,0x1a,0x32,0x46,0x2c,0x18,0x35,0x1e,0x3b,0x29,0x36,0x29,0x40,0x4f,0x1a,0x3d,0x26,0x38,0x71,0xfd,0x9d,0x58,0xff,0xff,0x00,0x32,0xfc,0xd5,0x01,0xd4, +0xff,0x90,0x02,0x03,0x14,0x61,0x00,0x00,0xf7,0x04,0x00,0x0b,0xfc,0xe6,0x07,0x1d,0x02,0xe0,0x0a,0x0e,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x78,0x00,0x7c,0x00,0x80,0x00,0x84,0x00,0x88,0x00,0x8c,0x00,0x00,0x03,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x3e,0x02,0x35, +0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17, +0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x01,0x33,0x11,0x23,0x01,0x33,0x15,0x23,0x07,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xf6,0x14,0x26,0x50,0x09,0x14,0x12,0x0c,0x5c,0x13,0x26,0x36,0x09,0x15, +0x11,0x0c,0x5c,0x11,0x21,0x3e,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x3b,0x23,0x32,0x11,0x17,0x35,0x19,0x4c,0x19,0x2c,0x0d,0x17,0x39,0x19,0x6a,0x17,0x2d,0x0d,0x17,0x35,0x1a,0x0e,0x17,0x27,0x22,0x1d,0x0e,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15, +0x11,0x0c,0x5c,0x03,0x7a,0x5c,0x5c,0xfc,0xdd,0x3f,0x3f,0x9e,0x65,0x65,0x02,0x2e,0x65,0x65,0xfc,0x7b,0x65,0x65,0x03,0xcc,0x64,0x64,0xfc,0xc0,0x64,0x64,0x01,0x12,0x64,0x64,0x45,0x64,0x64,0x02,0x2e,0x64,0x64,0x07,0xe9,0x2c,0x28,0x06,0x0d,0x16,0x11,0x01,0xcb,0xfe,0x4f,0x2c,0x28,0x06,0x0d,0x16,0x11,0xb7,0x9d,0x2a,0x2a,0x16, +0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x15,0x12,0x16,0x11,0x16,0x11,0x16,0x11,0x18,0x0f,0x16,0x11,0x0c,0x13,0x18,0x0c,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x01,0x14,0xfd,0x9a,0x02,0xda,0xc4,0x8f,0x62,0x62,0x62,0xeb,0x62,0xaf,0x62, +0xfe,0x8d,0x62,0xaf,0x62,0xea,0x62,0x62,0x62,0x00,0x00,0x07,0xfb,0x6b,0x06,0xaa,0x03,0xb0,0x09,0x9a,0x00,0x84,0x00,0x94,0x00,0x98,0x00,0xa4,0x00,0xa8,0x00,0xac,0x00,0xb0,0x00,0x00,0x01,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x33,0x16,0x16,0x17,0x1e,0x03,0x17,0x33,0x32,0x3e,0x02,0x37,0x27,0x26,0x26,0x23,0x22, +0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x07,0x07,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x17,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06, +0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x03,0x1e,0x03,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x01,0x33,0x11,0x23,0x25,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x06,0x06,0x13,0x23,0x35,0x33, +0x17,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0xfc,0xb3,0x26,0x47,0x16,0x32,0x29,0x0c,0x13,0x1a,0x0e,0x5f,0x17,0x20,0x0b,0x02,0x08,0x0e,0x15,0x0f,0x09,0x2a,0x4f,0x49,0x45,0x20,0x0b,0x1d,0x3f,0x32,0x1e,0x3d,0x13,0x17,0x3c,0x1f,0x32,0x45,0x1e,0x0d,0x1d,0x22,0x2b,0x1c,0x10,0x3d,0x02,0x22,0x2c,0x1d,0x09,0x15,0x11,0x0c,0x5c,0x03, +0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x10,0x21,0x0d,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x1c,0x27,0x0e,0x14,0x34,0x1a,0x22,0x35,0x12,0x17,0x37,0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x2d,0x42,0x08,0x1c,0x41,0x4b,0x54,0x2f,0x0f,0x1b,0x2b,0x0c,0x1a,0x4e,0x2e,0x17,0x41,0x1d,0xe7,0x35,0x49,0x2d,0x13, +0x51,0x49,0x47,0x4b,0x35,0x21,0x1f,0x07,0xb2,0x5c,0x5c,0xf8,0x73,0x21,0x17,0x20,0x1c,0x18,0x21,0x1a,0x21,0x20,0x65,0x65,0x8c,0x64,0x64,0x02,0xe0,0x64,0x64,0x07,0x9e,0x05,0x06,0x14,0x16,0x12,0x3e,0x4b,0x52,0x24,0x45,0x79,0x31,0x0a,0x19,0x17,0x0f,0x01,0x12,0x1e,0x27,0x14,0x05,0x10,0x18,0x08,0x05,0x58,0x08,0x0b,0x19,0x10, +0x06,0x0d,0x0b,0x09,0x02,0x59,0x27,0x14,0x10,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x2b,0x2a,0x02,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a,0x13,0x0f,0x13,0x0f,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x30,0x2a,0x10,0x20,0x1a,0x10,0x1c,0x11,0x1b,0x15, +0x08,0x04,0x01,0x96,0x21,0x43,0x45,0x47,0x25,0x42,0x51,0x49,0x3e,0x40,0x63,0x1f,0x1a,0x01,0x0c,0xfd,0x9a,0x8a,0x1a,0x17,0x1a,0x16,0x1f,0x3c,0x23,0x16,0x42,0x01,0x2a,0x62,0x62,0x62,0xfd,0x3b,0x62,0x00,0x00,0x06,0xfb,0x9b,0x07,0x31,0x03,0x92,0x09,0x9a,0x00,0x7e,0x00,0x82,0x00,0x92,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0x00, +0x01,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x23,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x17,0x16,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x16,0x16,0x17,0x01,0x33,0x11,0x23,0x25,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23, +0x22,0x0e,0x02,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0x01,0x7a,0x17,0x1d,0x5d,0x03,0x0c,0x16,0x13,0x10,0x1d,0x1d,0x5c,0x1a,0x2b,0x38,0x1d,0x19,0x20,0x2c,0x0f,0x14,0x34,0x1a,0x1b,0x24,0x2d,0x11,0x11,0x2e,0x35,0x3b,0x1e,0x48,0x66,0x45,0x2a,0x0b,0x0c,0x11, +0x07,0x17,0x37,0x19,0x19,0x11,0x1c,0x1a,0x19,0x0f,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x39,0x17,0x21,0x09,0x05,0x5c,0x0e,0x02,0x0e,0x10,0x0f,0x37,0x4e,0x65,0x3d,0x33,0x4a, +0x30,0x17,0x01,0x0e,0x17,0x01,0xe2,0x5c,0x5c,0xfc,0x5a,0x21,0x52,0x35,0x26,0x39,0x27,0x14,0x40,0x32,0x25,0x41,0x34,0x29,0xfe,0x59,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x11,0x64,0x64,0x04,0x24,0x64,0x64,0x07,0x95,0x17,0x23,0xb8,0x9b,0x17,0x20,0x16,0x0a,0x16,0x23,0x01,0xcc,0xfe,0x31,0x31,0x3c,0x20,0x0a, +0x01,0x11,0x10,0x13,0x0f,0x0f,0x18,0x0e,0x11,0x09,0x02,0x01,0x03,0x05,0x05,0x05,0x0f,0x08,0x16,0x11,0x03,0x06,0x08,0x06,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x19,0x0f,0x11, +0x3a,0x17,0x68,0x0b,0x11,0x04,0x28,0x5c,0x4e,0x34,0x1f,0x35,0x46,0x27,0x20,0x25,0x01,0x02,0x04,0xfd,0x9a,0x61,0x01,0x01,0x03,0x0c,0x19,0x16,0x3a,0x31,0x1d,0x2f,0x3c,0x24,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x01,0x42,0x62,0x8d,0x62,0x00,0x00,0x05,0xfc,0x00,0x07,0x1d,0x02,0x8d,0x09,0xb2,0x00,0x7e, +0x00,0x82,0x00,0x86,0x00,0x8a,0x00,0x8e,0x00,0x00,0x01,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x35,0x25,0x15,0x07,0x1e,0x03,0x17,0x1e,0x03,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22, +0x26,0x27,0x06,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x05,0x23,0x35, +0x33,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfe,0x24,0x14,0x26,0xd5,0x43,0x30,0x23,0x40,0x5a,0x36,0x01,0x5e,0xea,0x42,0x50,0x2e,0x15,0x07,0x01,0x07,0x10,0x1d,0x19,0x13,0x09,0x15,0x11,0x0c,0x5c,0x03,0x0b,0x15,0x11,0x16,0x22,0x5c,0x13,0x26,0x17,0x1d,0x5d,0x0f,0x22,0x38,0x29,0x22,0x35,0x12,0x17,0x37, +0x19,0x24,0x32,0x0f,0x16,0x38,0x18,0x38,0x0a,0x16,0x16,0x12,0x05,0x17,0x50,0x42,0xdd,0x23,0x32,0x11,0x17,0x35,0x1a,0x10,0x2c,0x41,0x1c,0x16,0x2b,0x17,0x1c,0x28,0x50,0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x17,0x2a,0x17,0x0e,0x09,0x15,0x11,0x0c,0x5c,0xfe,0x62,0x65,0x65,0x01,0x57,0x65,0x65,0x8c,0x64, +0x64,0xfe,0xa9,0x64,0x64,0x07,0xe9,0x2c,0x28,0x1a,0x18,0x1b,0x35,0x34,0x34,0x1b,0x3d,0xdb,0x61,0x94,0x20,0x38,0x36,0x36,0x1e,0x07,0x18,0x16,0x11,0x06,0x0d,0x16,0x11,0x71,0x58,0x15,0x20,0x14,0x0a,0x17,0x23,0x71,0x57,0x2c,0x28,0x17,0x23,0xb8,0x9b,0x33,0x46,0x2b,0x14,0x10,0x17,0x16,0x11,0x14,0x12,0x14,0x12,0x0b,0x10,0x12, +0x07,0x17,0x1d,0x15,0x12,0x16,0x11,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x12,0x1d,0x06,0x0d,0x16,0x11,0xb7,0x54,0x62,0x27,0x62,0x62,0x62,0xeb,0x62,0x00,0x00,0x06,0xfd,0x71,0x07,0x31,0x01,0x80,0x09,0x5c,0x00,0x43,0x00,0x52,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d, +0x00,0x00,0x03,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x26,0x26,0x17,0x34, +0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0x05,0x23,0x35,0x33,0xfc,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x1a,0x2f, +0x14,0x2a,0x67,0x36,0x48,0x68,0x89,0x27,0x1d,0x15,0x0b,0x05,0x5a,0x04,0x09,0x0a,0x0e,0x0c,0x22,0x33,0x48,0x31,0x13,0x26,0x21,0x18,0x04,0x22,0x10,0xc8,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0x8c,0x64,0x64,0xfe,0x63,0x64,0x64, +0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x13,0x07,0x0f,0x20,0x17,0x43,0x25,0x1b,0x34,0x14,0x11,0x34,0x13,0x14,0x23,0x09,0x08,0x0a,0x04,0x01,0x01,0x02,0x02,0x01,0x16,0x31,0x08,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14, +0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0x62,0x62,0x62,0x62,0x00,0x0a,0xfd,0x0e,0x06,0x71,0x02,0x8c,0x09,0x5c,0x00,0x4b,0x00,0x6d,0x00,0x7c,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xaf,0x00,0x00,0x01,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02, +0x15,0x14,0x07,0x33,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x0e,0x03,0x23,0x23,0x22,0x26,0x27,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x22,0x26,0x26,0x34,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x16,0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x05,0x16,0x16,0x33,0x32, +0x3e,0x02,0x37,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x25,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x17,0x36,0x03,0x23,0x35,0x33,0x01,0x23,0x35,0x33,0x25,0x23,0x35,0x33,0x05,0x23, +0x35,0x33,0x01,0x23,0x35,0x33,0x05,0x32,0x36,0x37,0x2e,0x03,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0xfe,0xa0,0x15,0x26,0x33,0x1e,0x24,0x39,0x27,0x15,0x0c,0x74,0x1f,0x16,0x15,0x26,0x32,0x1e,0x24,0x38,0x28,0x15,0x33,0x4f,0x60,0x2c,0x4b,0x19,0x30,0x14,0x15,0x30,0x2f,0x2c,0x12,0x27,0x30,0x42,0x1d,0x16,0x2b,0x17,0x1c,0x28,0x50, +0x02,0x01,0x01,0x1d,0x2d,0x39,0x1b,0x12,0x26,0x24,0x20,0x0d,0x19,0x2f,0x1e,0x14,0x1e,0x05,0x22,0x10,0x02,0x89,0x2a,0x51,0x1d,0x1e,0x27,0x19,0x0c,0x02,0x16,0x1c,0x1d,0x35,0x2a,0x19,0x16,0x25,0x33,0x1e,0x2d,0x3b,0x23,0x0f,0x16,0x30,0x4e,0x37,0x26,0x4b,0x27,0xfe,0x3f,0x0a,0x12,0x17,0x0d,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c, +0x01,0x58,0x0b,0x12,0x17,0x0c,0x11,0x1c,0x08,0x16,0x25,0x1e,0x0c,0x58,0x65,0x65,0xfd,0x2c,0x65,0x65,0x01,0xc3,0x64,0x64,0x01,0x9d,0x64,0x64,0xfd,0x2c,0x64,0x64,0x03,0xe3,0x0b,0x15,0x0a,0x02,0x0b,0x11,0x14,0x0c,0x08,0x10,0x0d,0x08,0x27,0x08,0x00,0x1b,0x3d,0x33,0x21,0x2c,0x40,0x49,0x1d,0x29,0x1c,0x16,0x35,0x20,0x1b,0x3d, +0x33,0x21,0x2c,0x40,0x49,0x1d,0x3e,0x44,0x1f,0x05,0x0f,0x08,0x08,0x0a,0x04,0x01,0x2a,0x19,0x12,0x1d,0x33,0x3d,0x19,0x0a,0x0c,0x0b,0x02,0x36,0x4b,0x30,0x15,0x0d,0x13,0x18,0x0a,0x14,0x1c,0x03,0x02,0x16,0x31,0xe9,0x11,0x13,0x12,0x1d,0x25,0x14,0x07,0x12,0x23,0x33,0x21,0x1b,0x3d,0x33,0x21,0x38,0x51,0x59,0x21,0x30,0x59,0x43, +0x29,0x09,0x13,0x01,0x4b,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x19,0x0f,0x0d,0x20,0x0f,0x27,0x23,0x18,0x2b,0x19,0x09,0x14,0x15,0x18,0x0f,0x0f,0x01,0x3f,0x62,0xfe,0xd6,0x62,0x66,0x62,0x62,0x62,0xfe,0xd6,0x62,0xff,0x02,0x05,0x0e,0x25,0x21,0x16,0x0c,0x14,0x17,0x0c,0x16,0x18,0x00,0x02,0x00,0x00,0x06,0x71,0x02,0xf4, +0x08,0x06,0x00,0x1b,0x00,0x2e,0x00,0x14,0xb7,0x21,0x18,0x18,0x05,0x2a,0x10,0x10,0x05,0x00,0x2f,0x33,0x2f,0x33,0x11,0x33,0x11,0x33,0x30,0x31,0x01,0x0e,0x03,0x23,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x33,0x32,0x36,0x37,0x25,0x14,0x1e,0x02,0x33,0x33,0x36,0x36,0x35,0x34,0x2e,0x02,0x23, +0x22,0x0e,0x02,0x02,0xf4,0x11,0x3c,0x4e,0x5d,0x31,0xef,0x3f,0x54,0x33,0x16,0x11,0x2b,0x48,0x38,0x2b,0x43,0x2c,0x17,0x13,0x81,0x59,0x93,0x2d,0xfd,0x66,0x0f,0x21,0x34,0x24,0x15,0x0f,0x0d,0x10,0x1a,0x20,0x10,0x1d,0x25,0x15,0x08,0x06,0x98,0x08,0x0f,0x0a,0x06,0x26,0x3c,0x49,0x23,0x21,0x47,0x3a,0x25,0x1f,0x36,0x4a,0x2b,0x32, +0x33,0x13,0x10,0x41,0x13,0x24,0x1c,0x11,0x1d,0x31,0x15,0x19,0x26,0x1a,0x0d,0x12,0x1c,0x25,0x00,0x02,0xff,0xfe,0x06,0x71,0x03,0x28,0x07,0xeb,0x00,0x29,0x00,0x39,0x00,0x21,0x40,0x0e,0x0f,0x2d,0x2d,0x20,0x08,0x14,0x1c,0x1c,0x26,0x35,0x14,0x14,0x03,0x26,0x00,0x2f,0x33,0x33,0x2f,0x33,0x11,0x33,0x2f,0x12,0x39,0x39,0x33,0x11, +0x33,0x30,0x31,0x03,0x16,0x16,0x33,0x32,0x3e,0x02,0x37,0x33,0x15,0x14,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x15,0x14,0x0e,0x02,0x23,0x23,0x22,0x26,0x27,0x23,0x0e,0x03,0x23,0x22,0x22,0x27,0x25,0x32,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x02,0x0f,0x1b,0x0d,0x37,0x4b,0x2e,0x16,0x03,0x5b,0x04,0x0c, +0x18,0x15,0x0d,0x30,0x44,0x57,0x35,0x42,0x43,0x1d,0x41,0x67,0x4a,0x5d,0x4c,0x52,0x06,0x04,0x0b,0x22,0x35,0x4c,0x35,0x0a,0x13,0x0b,0x01,0xe4,0x08,0x16,0x0c,0x16,0x3f,0x3a,0x2a,0x23,0x1d,0x1f,0x34,0x29,0x1e,0x06,0xda,0x01,0x02,0x11,0x1f,0x2e,0x1e,0x14,0x1a,0x26,0x1a,0x0d,0x01,0x29,0x61,0x53,0x37,0x4c,0x46,0x28,0x51,0x42, +0x2a,0x3e,0x34,0x19,0x2b,0x1f,0x12,0x01,0x66,0x01,0x08,0x18,0x2f,0x27,0x17,0x24,0x1f,0x33,0x3f,0x00,0x00,0x02,0x00,0xdc,0x01,0x03,0x03,0xa8,0x04,0x9a,0x00,0x1e,0x00,0x39,0x00,0x1a,0xb1,0x03,0x1b,0xb8,0x04,0xfb,0xb3,0x36,0x1f,0x22,0x2c,0xb9,0x04,0xfb,0x00,0x0f,0x00,0x2f,0xed,0x2f,0xce,0x33,0xed,0x32,0x30,0x31,0x01,0x06, +0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33,0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x02,0x3f,0x20,0x4d,0x2e,0x25,0x47,0x39,0x23,0x24,0x3b,0x4c,0x51,0x4e,0x20,0x1e,0x4d,0x4e,0x4b,0x3b, +0x23,0x26,0x3c,0x4b,0x25,0x2d,0x4a,0x1b,0x28,0x2d,0x30,0x13,0x24,0x1c,0x10,0x35,0x4b,0x52,0x1d,0x1d,0x4e,0x48,0x32,0x0f,0x1a,0x25,0x15,0x28,0x31,0x02,0x01,0x68,0x38,0x2d,0x1c,0x46,0x78,0x5c,0x5a,0xa0,0x87,0x6c,0x4c,0x28,0x27,0x4a,0x69,0x83,0x9c,0x57,0x60,0x7e,0x4b,0x1e,0x2d,0x38,0xaf,0x3a,0x49,0x0f,0x28,0x45,0x37,0x62, +0xa9,0x7b,0x46,0x47,0x7b,0xa6,0x5e,0x35,0x46,0x2c,0x12,0x44,0x3f,0x00,0xff,0xff,0xfe,0xd4,0xfe,0x53,0x00,0xdf,0x00,0x0c,0x02,0x07,0x0a,0x51,0xff,0x15,0xf7,0xe0,0xff,0xff,0x00,0x65,0xfd,0xff,0x04,0xad,0x03,0x95,0x02,0x26,0x08,0xe4,0x00,0x00,0x00,0x47,0x0f,0x54,0x01,0x91,0xfe,0xe7,0x2d,0x51,0x2d,0x42,0xff,0xff,0xff,0xba, +0xfd,0xc9,0x04,0xad,0x03,0x5e,0x02,0x26,0x08,0xe3,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x7f,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x04,0x3c,0x03,0x8a,0x02,0x26,0x08,0xe2,0x00,0x00,0x00,0x07,0x0f,0x54,0x01,0x31,0xfd,0xce,0xff,0xff,0x00,0xab,0xfe,0xa6,0x06,0xae,0x05,0xec,0x00,0x27,0x0f,0x50,0x02,0x59,0xfe,0xab,0x00,0x06, +0x0e,0x55,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0xf6,0xfe,0xab,0x00,0x06,0x0e,0x56,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x4b,0x06,0x02,0x00,0x27,0x0f,0x50,0x00,0x98,0xfe,0xab,0x00,0x06,0x08,0xed,0x00,0x00,0xff,0xff,0x00,0xab,0xfe,0xa6,0x07,0x59,0x04,0x12,0x00,0x27, +0x0f,0x50,0x02,0xad,0xfe,0xab,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x06,0x0e,0x6e,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac,0x05,0x3e,0x00,0x27,0x0f,0x50,0x00,0xa1,0xfe,0xab,0x00,0x26,0x09,0x3b,0x00,0x00,0x00,0x07,0x0a,0x19,0x00,0x65,0xfc,0xe0,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x8d,0x05,0x3e,0x00,0x27, +0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0x83,0xfe,0xab,0xff,0xff,0x00,0xab,0xfd,0xc9,0x07,0x59,0x04,0x12,0x00,0x27,0x0a,0x19,0x02,0xc0,0xfb,0xb4,0x00,0x26,0x0e,0x6e,0x00,0x00,0x00,0x07,0x0f,0x54,0x02,0xad,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0xac,0x05,0x3e,0x02,0x26, +0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0xff,0xba,0xfd,0xc9,0x02,0x8d,0x05,0x3e,0x00,0x27,0x0a,0x19,0x00,0x65,0xfc,0xe0,0x00,0x26,0x0e,0x6f,0x00,0x00,0x00,0x07,0x0f,0x54,0x00,0x83,0xfd,0xce,0xff,0xff,0x00,0xab,0xff,0xea,0x07,0x59,0x04,0x39,0x02,0x26, +0x0e,0x6e,0x00,0x00,0x00,0x07,0x14,0x7c,0x03,0xc6,0xfb,0xaa,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0xf1,0x05,0x17,0x00,0x21,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x25,0x40,0x0c,0x4b,0x47,0x4a,0x49,0x34,0x22,0x3a,0x2d,0x2d,0x20,0x05,0x19,0xb8,0x04,0xfb,0xb1,0x06,0x12,0x00,0x2f,0x33,0xed,0x32,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde, +0x32,0xcd,0x32,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x15,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x33,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36, +0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x07,0x20,0x44,0x3e,0x16,0x32,0x4a,0x37,0x27,0x0f,0x04,0x1a,0x41,0x46,0x47,0x21,0xfe,0x1b,0x23,0x23,0x23,0x23,0x01,0xef,0x1d,0x43,0x38,0x25,0x9c,0xfd,0x2d,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a, +0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x01,0x98,0x43,0x60,0x3e,0x1e,0xa7,0x10,0x1f,0x2e,0x1e,0x23,0x2f,0x1d,0x0c,0x34,0x20,0x20,0x33,0x12,0x2c,0x47,0x35,0x01,0xbc,0x01,0x5b,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25, +0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x04,0xff,0xba,0xff,0xf2,0x03,0x48,0x05,0x17,0x00,0x14,0x00,0x38,0x00,0x3c,0x00,0x40,0x00,0x21,0x40,0x0b,0x3e,0x3a,0x3d,0x3c,0x27,0x15,0x2d,0x20,0x20,0x14,0x0d,0xb9,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x2f,0x33,0x2f,0xcd,0xde,0x32,0xde,0x32,0xcd,0x32,0x30,0x31,0x01,0x11,0x14, +0x0e,0x02,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x3e,0x02,0x35,0x11,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x03,0x48,0x3d,0x63,0x80,0x43,0xfe,0x1b,0x23, +0x23,0x23,0x23,0x01,0xef,0x2e,0x47,0x30,0x18,0xfd,0xc9,0x06,0x09,0x0e,0x16,0x0c,0x1b,0x2b,0x43,0x35,0x39,0x4f,0x31,0x16,0x5e,0x2f,0x54,0x73,0x45,0x3d,0x4f,0x38,0x2a,0x17,0x1e,0x17,0x0a,0x07,0x97,0x73,0x47,0x72,0x03,0x0f,0xfe,0x3d,0x71,0x88,0x49,0x18,0x34,0x20,0x20,0x33,0x0f,0x2a,0x48,0x39,0x01,0xbc,0x01,0x5b,0x1a,0x3c, +0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x31,0x2c,0xb4,0xb8,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70,0x70,0x00,0x00,0x03,0xfe,0x84,0x06,0x71,0x01,0x76,0x08,0x8f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x1d,0x40,0x0c,0x24,0x27,0x27,0x29,0x2b,0x2b,0x00,0x18,0x11,0x11, +0x0b,0x18,0x00,0x2f,0x33,0x33,0x2f,0x12,0x39,0x33,0x2f,0x33,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x15,0x14,0x16,0x17,0x1e,0x03,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x25,0x23,0x35,0x33,0x17,0x23,0x35,0x33,0xfe,0xed,0x06,0x09,0x12,0x1a,0x10,0x22, +0x37,0x56,0x44,0x49,0x66,0x3f,0x1d,0x5e,0x38,0x65,0x8a,0x52,0x49,0x60,0x43,0x32,0x1b,0x24,0x1c,0x0a,0x07,0x01,0x46,0x73,0x73,0xb9,0x72,0x72,0x07,0xe2,0x1a,0x3c,0x21,0x24,0x31,0x15,0x0d,0x11,0x09,0x03,0x06,0x19,0x32,0x2b,0xef,0xf3,0x53,0x5a,0x2a,0x07,0x02,0x0d,0x1b,0x19,0x22,0x50,0x36,0x25,0x42,0x1f,0x3d,0x70,0x70,0x70, +0xff,0xff,0x00,0x00,0xfd,0xff,0x03,0x57,0x05,0x5f,0x00,0x27,0x0a,0x1f,0x00,0xa5,0xfc,0xd3,0x00,0x06,0x0b,0x0c,0x00,0x00,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x06,0xae,0x04,0x24,0x02,0x26,0x08,0xf7,0x00,0x00,0x00,0x27,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x07,0x0a,0x1f,0x01,0xde,0xfb,0x98,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0xac, +0x05,0xb4,0x02,0x26,0x09,0x3b,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x02,0x74,0x05,0xb4,0x02,0x26,0x0e,0x6f,0x00,0x00,0x00,0x27,0x0a,0x1f,0x00,0xa0,0xfd,0x28,0x00,0x07,0x0f,0x51,0x00,0x4a,0xfe,0xab,0xff,0xff,0x00,0xab,0xff,0xea,0x08,0x04, +0x03,0x62,0x02,0x06,0x0e,0xa5,0x00,0x00,0xff,0xff,0xff,0xba,0xfe,0xa6,0x04,0x02,0x03,0x62,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0xff,0xba,0xfe,0xa6,0x03,0x49,0x03,0x62,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x01,0x0e,0xfe,0xab,0xff,0xff,0x00,0x9b,0xfd,0xff,0x06,0x03, +0x02,0xb7,0x02,0x02,0x0e,0x70,0x00,0x00,0xff,0xff,0xff,0xba,0xff,0xf2,0x04,0x02,0x05,0x24,0x02,0x26,0x09,0x3d,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0xff,0xba,0xff,0xf2,0x03,0x49,0x05,0x24,0x02,0x26,0x09,0x3c,0x00,0x00,0x00,0x07,0x0f,0x50,0x00,0xd5,0x04,0x74,0xff,0xff,0x00,0x9b,0xfd,0xff,0x05,0x58, +0x01,0xc1,0x02,0x02,0x0e,0xcf,0x00,0x00,0x00,0x01,0x00,0xab,0x01,0xe1,0x01,0xac,0x02,0xe2,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0x2d,0x17,0x2e,0x25,0x18,0x18,0x25,0x2e,0x17,0x16,0x2d,0x25,0x17,0x17,0x25,0x2d,0x01, +0xe1,0x17,0x25,0x2d,0x16,0x16,0x2f,0x25,0x18,0x18,0x25,0x2f,0x16,0x16,0x2d,0x25,0x17,0x00,0x00,0x01,0x00,0xd4,0x01,0x18,0x01,0x84,0x03,0xe5,0x00,0x0d,0x00,0x08,0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x01,0x43,0x11,0x18,0x10,0x08,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5, +0x45,0x74,0x70,0x74,0x45,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x66,0x01,0x18,0x02,0x01,0x03,0xe5,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0e,0x07,0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x21,0x1e,0x03,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x21,0x02,0x01,0xfe,0xf2,0x08,0x0d,0x09,0x05,0x6b,0x07,0x10,0x1b,0x13,0x01,0x9b, +0x03,0x5d,0x2b,0x51,0x53,0x59,0x32,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x01,0x00,0x1f,0x01,0x18,0x02,0x39,0x03,0xe5,0x00,0x37,0x00,0x14,0xb7,0x30,0x2b,0x25,0x06,0x16,0x1c,0x00,0x0d,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x32,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16, +0x15,0x14,0x06,0x07,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x23,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0x8e,0x0c,0x12,0x07,0x04,0x09,0x04,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d,0x04,0x02,0x08,0x0e,0x07,0x28,0x1f,0x12,0x0b,0x6b,0x0d,0x0d, +0x18,0x2b,0x3c,0x23,0x18,0x33,0x1d,0x13,0x2f,0x18,0x10,0x05,0x05,0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x30,0x51,0x27,0x01,0x25,0x1b,0x19,0x38,0x18,0x20,0x37,0x1b,0x0e,0x19,0x0d,0x02,0x01,0x25,0x1b,0x19,0x38,0x18,0x21,0x35,0x1d,0x29,0x3f,0x2d,0x17,0x0b,0x0f,0x0d,0x0c,0x2d,0x5e,0x39,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00, +0x00,0x01,0x00,0x7f,0x01,0x0b,0x01,0xd8,0x03,0xfa,0x00,0x2e,0x00,0x0c,0xb3,0x14,0x13,0x2e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37, +0x01,0xd8,0x23,0x3f,0x21,0x27,0x4d,0x3d,0x25,0x3b,0x46,0x43,0x38,0x1b,0x3e,0x66,0x4b,0x39,0x44,0x23,0x0b,0x21,0x35,0x44,0x24,0x3f,0x4a,0x25,0x0a,0x16,0x1f,0x25,0x0f,0x14,0x20,0x1e,0x20,0x13,0x01,0x20,0x0b,0x0a,0x10,0x23,0x37,0x28,0x2f,0x6c,0x44,0x20,0x42,0x33,0x22,0x41,0x3a,0x35,0x17,0x8d,0x11,0x1b,0x14,0x0e,0x04,0x0a, +0x1b,0x1c,0x1d,0x0d,0x1d,0x35,0x4b,0x32,0x1d,0x07,0x0e,0x0f,0x07,0x02,0x01,0x04,0x06,0x05,0x00,0x02,0x00,0x4f,0x01,0x60,0x02,0x08,0x03,0x99,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x14,0x0a,0x1e,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x03,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x26,0x30,0x4f,0x39,0x1f,0x2c,0x42,0x4b,0x20,0x22,0x4f,0x43,0x2c,0x22,0x3c,0x53,0x30,0x11,0x26,0x20,0x16,0x12,0x1e,0x28,0x16,0x23,0x2d,0x1b,0x0a,0x18,0x24,0x29,0x01,0x60,0x1b,0x36,0x4f,0x35,0x54,0x84,0x5b,0x31,0x2b,0x54,0x7e,0x54,0x39,0x56,0x3b, +0x1e,0x01,0xb3,0x1f,0x38,0x4d,0x2e,0x1b,0x22,0x14,0x07,0x0f,0x19,0x1f,0x10,0x30,0x4e,0x37,0x1e,0x00,0x00,0x01,0x00,0x35,0x01,0x18,0x02,0x22,0x03,0xe5,0x00,0x12,0x00,0x0a,0xb2,0x12,0x07,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x01,0xb2,0x10,0x16,0x10,0x09,0x06,0x04,0x02, +0xfe,0xce,0x01,0x99,0x03,0x02,0x04,0x07,0x0a,0x11,0x18,0x11,0x01,0x18,0x43,0x66,0x56,0x4d,0x55,0x63,0x41,0x88,0x63,0x46,0x6c,0x5b,0x53,0x5b,0x6a,0x45,0x00,0x01,0x00,0x1b,0x01,0x12,0x02,0x3c,0x03,0xe5,0x00,0x13,0x00,0x0c,0xb3,0x03,0x10,0x00,0x0a,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07, +0x23,0x2e,0x03,0x27,0x33,0x16,0x16,0x17,0x01,0x2d,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x38,0x32,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x01,0xe5,0x87,0xfc,0x7d,0x60,0xb6,0xb1,0xb1,0x5b,0x60,0xb4,0xb1,0xb1,0x5d,0x7d,0xfb,0x88,0x00,0x00,0x01,0x00,0x1b,0x01,0x18,0x02,0x3c,0x03,0xea,0x00,0x13,0x00,0x0c,0xb3,0x13, +0x09,0x10,0x03,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x3e,0x03,0x37,0x33,0x1e,0x03,0x17,0x23,0x26,0x26,0x27,0x01,0x2a,0x22,0x4e,0x2d,0x72,0x23,0x3d,0x37,0x33,0x19,0x5c,0x1a,0x34,0x38,0x3b,0x21,0x72,0x2d,0x4e,0x22,0x03,0x18,0x88,0xfb,0x7d,0x60,0xb5,0xb1,0xb1,0x5b,0x5f,0xb4,0xb1,0xb1,0x5d,0x7d,0xfa, +0x89,0x00,0x00,0x02,0x00,0x35,0x01,0x18,0x02,0x23,0x03,0xeb,0x00,0x1c,0x00,0x2d,0x00,0x0e,0xb4,0x1c,0x05,0x28,0x20,0x0f,0x00,0x2f,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x01,0x26,0x26,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03,0x17,0x03,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x26,0x26,0x01,0xb2,0x28,0x20,0x08,0x38,0x36,0x27,0x45,0x35,0x1e,0x1c,0x33,0x47,0x2c,0x2a,0x47,0x1f,0x10,0x13,0x0c,0x07,0x04,0x03,0x0a,0x15,0x23,0x1d,0xdd,0x0e,0x2d,0x1f,0x13,0x1e,0x14,0x0b,0x38,0x29,0x14,0x2e,0x18,0x03,0x07,0x01,0x18,0x5b,0xa5,0x40,0x16,0x19,0x31,0x4a,0x32,0x2f,0x53,0x3d,0x24, +0x28,0x2e,0x1a,0x30,0x36,0x3e,0x26,0x26,0x53,0x63,0x75,0x48,0x02,0x04,0x22,0x28,0x10,0x19,0x20,0x0f,0x26,0x25,0x08,0x07,0x1a,0x1f,0x00,0x01,0x00,0x53,0x01,0x18,0x02,0x05,0x03,0xf1,0x00,0x2b,0x00,0x10,0xb5,0x24,0x1c,0x15,0x0b,0x00,0x05,0x00,0x2f,0x33,0xdd,0xde,0xcd,0x2f,0x30,0x31,0x13,0x17,0x17,0x36,0x36,0x33,0x32,0x16, +0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x06,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x27,0xc2,0x12,0x03,0x1a,0x58,0x3f,0x0c,0x23,0x16,0x22,0x25,0x1d,0x38,0x2b,0x1b,0x14,0x1f,0x27,0x14,0x2d,0x58,0x27,0x1f,0x5b,0x30,0x18,0x2e,0x14,0x02,0x02,0x02, +0x6b,0x07,0x10,0x1b,0x13,0x03,0xe5,0x52,0x01,0x2a,0x35,0x03,0x05,0x85,0x08,0x0a,0x13,0x1c,0x12,0x11,0x17,0x0f,0x07,0x1e,0x18,0x8a,0x14,0x1d,0x09,0x0b,0x01,0x1b,0x33,0x20,0xeb,0xe7,0x3b,0x6c,0x71,0x7f,0x4f,0x00,0x00,0x02,0x00,0x32,0x01,0x07,0x02,0x25,0x03,0xed,0x00,0x1a,0x00,0x35,0x00,0x12,0xb6,0x28,0x25,0x2c,0x03,0x17, +0x1b,0x0d,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x33,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x01,0x29,0x14,0x34,0x1e,0x1a, +0x33,0x2a,0x1a,0x32,0x4c,0x58,0x27,0x26,0x57,0x49,0x30,0x1c,0x2c,0x36,0x1a,0x1d,0x32,0x12,0x04,0x15,0x32,0x2b,0x1c,0x08,0x0d,0x13,0x0b,0x17,0x18,0x02,0x5b,0x17,0x1b,0x0a,0x12,0x0e,0x08,0x1e,0x2d,0x34,0x01,0x4e,0x28,0x1f,0x17,0x3b,0x64,0x4e,0x6c,0xb1,0x7f,0x46,0x44,0x7b,0xae,0x69,0x50,0x69,0x3e,0x19,0x1f,0x28,0x02,0x1f, +0x35,0x5d,0x7f,0x4b,0x26,0x32,0x1d,0x0c,0x31,0x39,0x34,0x35,0x09,0x1b,0x31,0x27,0x4e,0x81,0x5d,0x34,0x00,0x01,0x00,0x59,0x01,0x03,0x01,0xff,0x03,0xec,0x00,0x27,0x00,0x19,0x40,0x0a,0x20,0x19,0x00,0x23,0x1f,0x1f,0x24,0x23,0x0f,0x08,0x00,0x2f,0xcd,0x2f,0x33,0x39,0x2f,0x12,0x39,0x33,0x33,0x30,0x31,0x01,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x16,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x27,0x36,0x36,0x37,0x01,0x18,0x48,0x46,0x24,0x3f,0x56,0x32,0x10,0x25,0x1a,0x1b,0x2a,0x12,0x18,0x2b,0x21,0x14,0x12,0x1c,0x25,0x14,0x12,0x1f,0x0f,0x14,0x2e,0x21,0x6a,0xc3,0x5a,0x1f, +0x28,0x62,0x36,0x02,0x70,0x13,0x59,0x45,0x31,0x4c,0x33,0x1b,0x03,0x04,0x88,0x04,0x04,0x07,0x12,0x1f,0x17,0x16,0x1e,0x13,0x09,0x06,0x05,0x0b,0x1a,0x10,0x9b,0x2e,0xb4,0x86,0x9c,0x3c,0x65,0x2d,0x00,0x01,0x00,0x2b,0x01,0x18,0x02,0x2d,0x03,0xec,0x00,0x28,0x00,0x0e,0xb4,0x09,0x0f,0x04,0x23,0x19,0x00,0x2f,0x2f,0x33,0xdd,0xcc, +0x30,0x31,0x01,0x36,0x36,0x37,0x33,0x0e,0x03,0x07,0x23,0x2e,0x03,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x16,0x16,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x01,0x6c,0x0e,0x1e,0x13,0x82,0x1e,0x2b,0x21,0x18,0x0a,0x5b,0x09,0x19,0x20,0x27,0x16,0x17,0x13,0x09,0x03,0x08,0x08,0x6b,0x0b,0x0d,0x0b, +0x4c,0x3e,0x22,0x38,0x2c,0x22,0x0c,0x03,0x71,0x21,0x37,0x1c,0x2a,0x48,0x45,0x45,0x26,0x22,0x3c,0x2b,0x19,0x17,0x12,0x11,0x2c,0x14,0x2d,0x7c,0x58,0xd2,0xce,0x60,0x7a,0x51,0x36,0x1b,0x45,0x45,0x15,0x23,0x2c,0x17,0x00,0x01,0x00,0x4d,0x01,0x12,0x02,0x0a,0x03,0xe5,0x00,0x0e,0x00,0x0c,0xb3,0x09,0x05,0x07,0x00,0x00,0x2f,0x2f, +0xcd,0x32,0x30,0x31,0x01,0x0e,0x03,0x07,0x21,0x15,0x21,0x35,0x3e,0x03,0x37,0x01,0x5d,0x06,0x15,0x1e,0x26,0x18,0x01,0x24,0xfe,0x43,0x25,0x39,0x29,0x19,0x06,0x03,0xe5,0x79,0xb1,0x87,0x69,0x31,0x88,0x47,0x43,0x7f,0x94,0xb9,0x7d,0x00,0x00,0x06,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x08,0x36,0x00,0x64,0x00,0x78,0x00,0x86,0x00,0xb4, +0x00,0xb8,0x00,0xbc,0x00,0x54,0x40,0x0b,0xb8,0xb6,0xa0,0x87,0x94,0x9a,0x8d,0xa6,0xad,0x4d,0x34,0xb8,0x04,0xfb,0x40,0x0f,0x3e,0x82,0x40,0x7e,0x82,0x7e,0x82,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x61,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x1a,0xbc,0xba,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32, +0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0xed,0x10,0xde,0x32,0xdd,0x32,0xdc,0x32,0x32,0xde,0xcd,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27, +0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33, +0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x34,0x27,0x33,0x06,0x14,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x25,0x23,0x11,0x33,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38, +0x16,0x31,0x55,0x75,0x44,0x48,0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c, +0x26,0x46,0x39,0x25,0x42,0x31,0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x02,0xf8,0x03,0x01,0x26,0x2d,0x2d,0x22,0x01,0x5f,0x01,0x22,0x2d,0x30,0x24,0x03,0x5f, +0x01,0x01,0x63,0x52,0x26,0x44,0x14,0x06,0x15,0x49,0x27,0x2d,0x3d,0x26,0x11,0x03,0x01,0x6b,0x74,0x74,0x04,0xfb,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82,0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a, +0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01,0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26, +0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x04,0x80,0x1c,0x18,0x09,0x33,0x3f,0x3d,0x3c,0x0d,0x1c,0x0d,0x0e,0x1c,0x0b,0x3d,0x3d,0x3e,0x37,0x1f,0x1b,0x0c,0x18,0x08,0x6d,0x76,0x1f,0x20,0x20,0x1f,0x22,0x3a,0x4e,0x2c,0x21,0x18,0x53,0x01,0x56,0xfc,0x39,0xb5,0x00,0x00,0x04,0x00,0xa1,0xff,0xf2,0x0b,0x4d,0x05,0x7e, +0x00,0x64,0x00,0x78,0x00,0x86,0x00,0x8a,0x00,0x3b,0xb9,0x00,0x34,0x04,0xfb,0x40,0x0d,0x82,0x3e,0x40,0x7e,0x7e,0x40,0x40,0x5a,0x4d,0x76,0x53,0x46,0x60,0xb8,0x04,0xfb,0xb5,0x2c,0x25,0x19,0x8a,0x88,0x6c,0xb9,0x04,0xfb,0x00,0x0a,0x00,0x2f,0xed,0xde,0xcd,0x2f,0x33,0x33,0xed,0x32,0x32,0x32,0x2f,0x33,0x33,0x2f,0x39,0x2f,0x12, +0x39,0x39,0xed,0x30,0x31,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x15,0x14,0x0e,0x04,0x07,0x23,0x22,0x2e,0x02,0x27,0x23,0x0e,0x03,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0x23,0x22,0x2e,0x02,0x27,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x35,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02, +0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x33,0x11,0x14,0x1e,0x02,0x33,0x33,0x32,0x16,0x17,0x25,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x36,0x36,0x25,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x11,0x0e,0x03,0x01,0x23,0x35,0x33,0x09,0xa8,0x4a,0x61,0x38,0x16,0x31,0x55,0x75,0x44,0x48, +0x79,0x36,0x14,0x26,0x1d,0x11,0x39,0x61,0x82,0x90,0x98,0x47,0x8d,0x3b,0x5c,0x46,0x34,0x13,0x04,0x19,0x40,0x49,0x4f,0x28,0x68,0x75,0x1c,0x04,0x31,0x91,0x49,0x38,0x64,0x50,0x3a,0x0e,0x2b,0x62,0x2a,0x45,0x7f,0x62,0x3a,0x58,0x92,0xbc,0x65,0x9c,0x0e,0x26,0x44,0x36,0x1c,0x41,0x36,0x24,0x9c,0x0c,0x26,0x46,0x39,0x25,0x42,0x31, +0x1c,0x9c,0x20,0x3c,0x57,0x38,0x96,0x30,0x75,0x36,0x01,0x0a,0x10,0x1b,0x27,0x2d,0x32,0x1a,0x1d,0x38,0x2c,0x1c,0x19,0x43,0x73,0x5a,0x21,0x1e,0xf6,0x87,0x23,0x3c,0x4e,0x2a,0x27,0x55,0x22,0x4d,0x87,0x66,0x3b,0x08,0xfe,0xb9,0xb9,0x9e,0x1e,0x44,0x4d,0x55,0x2f,0x40,0x8d,0x77,0x4d,0x53,0x57,0x21,0x4a,0x52,0x5a,0x30,0x60,0x82, +0x53,0x2d,0x15,0x06,0x02,0x11,0x20,0x2e,0x1c,0x23,0x2f,0x1d,0x0c,0x40,0x3b,0x3f,0x3c,0x19,0x35,0x52,0x3a,0x11,0x0c,0x20,0x45,0x6c,0x4d,0x5e,0x92,0x68,0x42,0x0f,0x61,0xfd,0xb5,0x3d,0x5b,0x3d,0x1e,0x13,0x2c,0x47,0x34,0x03,0x95,0xfc,0xa4,0x3b,0x5a,0x3e,0x20,0x16,0x2d,0x46,0x31,0x04,0x2b,0xfc,0x0d,0x45,0x5c,0x39,0x18,0x01, +0x01,0xd6,0x1d,0x47,0x49,0x45,0x36,0x20,0x26,0x3c,0x4c,0x26,0x20,0x3f,0x43,0x49,0x2a,0x18,0x4d,0xab,0x26,0x35,0x21,0x0e,0x0a,0x0b,0x01,0x76,0x0e,0x2f,0x41,0x52,0x02,0x62,0xb5,0x00,0x00,0x01,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x00,0x0e,0x00,0x0c,0xba,0x00,0x0e,0x04,0xfb,0x00,0x01,0x00,0x2f,0xed,0x30,0x31,0x05,0x21, +0x22,0x2e,0x02,0x27,0x27,0x37,0x1e,0x03,0x33,0x21,0x08,0xfe,0xf9,0xb1,0x4b,0x99,0x8f,0x7d,0x2e,0x1e,0x05,0x36,0x8d,0x9f,0xa9,0x50,0x06,0x2b,0x0e,0x07,0x0f,0x15,0x0e,0x91,0x05,0x0a,0x0f,0x0a,0x05,0x00,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed, +0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9,0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0x00,0x01,0x00,0x00,0xff,0xf2,0x05,0x2f,0x00,0x99,0x00,0x07,0x00,0x0c,0xba,0x00,0x00,0x04,0xfb,0x00,0x06,0x00,0x2f,0xed,0x30,0x31,0x35,0x21,0x17,0x07,0x06,0x06,0x23,0x21,0x05,0x2a,0x05,0x1a,0x56,0xb9, +0x6e,0xfc,0x68,0x99,0x05,0x84,0x0d,0x11,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0xff,0xff,0x00,0x73,0xff,0xf2,0x08,0xfe,0x00,0xc1,0x02,0x06,0x14,0x99,0x00,0x00,0x00,0x01,0x00,0xf2,0x02,0x84,0x02,0x5a,0x03,0xed,0x00,0x13,0x00,0x08,0xb1,0x0a,0x00,0x00,0x2f,0xcd,0x30,0x31,0x01,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x01,0xa8,0x20,0x40,0x35,0x21,0x21,0x35,0x40,0x20,0x1f,0x40,0x33,0x20,0x20,0x33,0x40,0x02,0x84,0x20,0x34,0x3f,0x20,0x1f,0x41,0x34,0x22,0x21,0x35,0x41,0x1f,0x20,0x3f,0x34,0x20,0x00,0x00,0x01,0x01,0x2f,0x01,0x4a,0x02,0x1d,0x05,0x7d,0x00,0x0d,0x00,0x08, +0xb1,0x06,0x00,0x00,0x2f,0x2f,0x30,0x31,0x01,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x01,0xb7,0x19,0x27,0x19,0x0d,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x6c,0xb4,0xb1,0xbc,0x73,0xfe,0xcd,0x01,0x2d,0x67,0xb5,0xb5,0xc1,0x74,0x00,0x01,0x00,0x76,0x01,0x4a,0x02,0xd6,0x05,0x7d,0x00,0x0f,0x00,0x0a,0xb2,0x01,0x0f,0x08, +0x00,0x2f,0x2f,0xcd,0x30,0x31,0x01,0x15,0x21,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0x02,0xd6,0xfe,0x4a,0x10,0x19,0x12,0x09,0x84,0x0c,0x19,0x29,0x1c,0x05,0x7d,0x97,0x4f,0x9b,0xa0,0xa9,0x5d,0xfe,0xf4,0x01,0x06,0x75,0xc5,0xbc,0xc3,0x74,0x00,0x00,0x01,0x00,0x25,0x01,0x4a,0x03,0x28,0x05,0x7d,0x00,0x3c,0x00,0x14, +0xb7,0x35,0x2c,0x26,0x06,0x15,0x1d,0x00,0x0f,0x00,0x2f,0x33,0x33,0xdc,0x32,0xcd,0x32,0x2f,0x30,0x31,0x13,0x16,0x16,0x17,0x16,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x15,0x14,0x07,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x06,0x06,0x23,0x22,0x26, +0x27,0x1e,0x03,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xac,0x11,0x1b,0x0b,0x0c,0x17,0x0b,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x1f,0x12,0x24,0x1e,0x1f,0x2c,0x1b,0x0c,0x12,0x0f,0x84,0x0e,0x10,0x1d,0x39,0x54,0x37,0x23,0x4c,0x2d,0x1b,0x42,0x25,0x0c,0x19,0x0d,0x06,0x0a,0x07,0x04,0x83,0x10,0x1c,0x27,0x17,0x05,0x7d,0x45,0x79, +0x3a,0x03,0x02,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x4b,0x45,0x36,0x2d,0x0a,0x13,0x21,0x2b,0x19,0x21,0x44,0x20,0x21,0x52,0x27,0x2c,0x51,0x3e,0x24,0x11,0x16,0x14,0x12,0x02,0x02,0x28,0x53,0x62,0x77,0x4c,0xfe,0xe1,0x01,0x1a,0x6c,0xcb,0xc4,0xbf,0x5f,0x00,0x00,0x01,0x00,0xab,0x01,0x38,0x02,0xa1,0x05,0x97,0x00,0x2f,0x00,0x0c, +0xb3,0x25,0x24,0x0a,0x10,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x37,0x15,0x0e,0x03,0x15,0x14,0x1e,0x02,0x17,0x02,0x3f,0x5f,0x6c,0x36,0x0e,0x25,0x36,0x3d,0x18,0x39,0x58,0x30,0x62,0x65, +0x37,0x6d,0x56,0x35,0x15,0x30,0x50,0x3c,0x39,0x4d,0x2e,0x14,0x24,0x55,0x8e,0x6b,0x56,0x66,0x34,0x0f,0x20,0x43,0x6a,0x4b,0x03,0x91,0x55,0x7b,0x56,0x33,0x0c,0x1c,0x22,0x12,0x06,0x0c,0x0d,0x96,0x21,0x17,0x31,0x4e,0x38,0x20,0x4d,0x5b,0x68,0x3a,0x1b,0x31,0x34,0x39,0x22,0x2d,0x58,0x55,0x4f,0x23,0x9f,0x1a,0x31,0x29,0x21,0x0a, +0x11,0x22,0x28,0x33,0x22,0x00,0x00,0x02,0x00,0x62,0x01,0xbc,0x02,0xeb,0x04,0xf3,0x00,0x13,0x00,0x27,0x00,0x0c,0xb3,0x1e,0x0a,0x14,0x00,0x00,0x2f,0xcd,0x2f,0xcd,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x17,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x01,0xa1,0x35,0x74,0x62,0x3f,0x2f,0x57,0x7c,0x4c,0x4a,0x75,0x51,0x2b,0x40,0x60,0x6f,0x2e,0x1c,0x41,0x37,0x25,0x1e,0x33,0x43,0x26,0x36,0x4c,0x30,0x15,0x29,0x3d,0x46,0x04,0xf3,0x40,0x7c,0xb8,0x78,0x4d,0x7a,0x56,0x2e,0x29,0x4e,0x70,0x47,0x78,0xc1,0x87,0x49,0x94,0x35,0x5e,0x84,0x4f,0x2e,0x3f,0x26,0x11,0x18,0x2c, +0x3c,0x23,0x54,0x85,0x5d,0x31,0x00,0x01,0x00,0x42,0x01,0x4a,0x03,0x0a,0x05,0x7d,0x00,0x13,0x00,0x0a,0xb2,0x13,0x08,0x0a,0x00,0x2f,0xcd,0x2f,0x30,0x31,0x01,0x2e,0x05,0x27,0x27,0x21,0x35,0x21,0x17,0x1e,0x05,0x17,0x02,0x80,0x17,0x21,0x17,0x0e,0x0a,0x06,0x03,0x03,0xfe,0x35,0x02,0x4a,0x05,0x03,0x07,0x0a,0x0f,0x19,0x23,0x1a, +0x01,0x4a,0x60,0x96,0x7e,0x70,0x79,0x8a,0x59,0x5c,0x97,0x94,0x68,0xa1,0x89,0x7d,0x88,0xa1,0x67,0x00,0x00,0x01,0x00,0x1c,0x01,0x47,0x03,0x30,0x05,0x7d,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0e,0x07,0x00,0x00,0x2f,0x32,0x2f,0x33,0x30,0x31,0x13,0x16,0x12,0x17,0x33,0x36,0x12,0x37,0x33,0x06,0x0a,0x02,0x07,0x23,0x26,0x0a,0x02,0x27, +0xa5,0x49,0x7d,0x39,0x04,0x3a,0x7d,0x49,0x88,0x32,0x59,0x53,0x4c,0x24,0x78,0x27,0x4e,0x53,0x57,0x2f,0x05,0x7d,0xc7,0xfe,0x64,0xdf,0xdf,0x01,0x9d,0xc6,0x89,0xfe,0xf5,0xfe,0xf5,0xfe,0xf3,0x8a,0x91,0x01,0x12,0x01,0x0b,0x01,0x05,0x83,0x00,0x01,0x00,0x1d,0x01,0x4a,0x03,0x30,0x05,0x80,0x00,0x13,0x00,0x0c,0xb3,0x03,0x0d,0x00, +0x07,0x00,0x2f,0x33,0x2f,0x33,0x30,0x31,0x01,0x26,0x02,0x27,0x23,0x06,0x02,0x07,0x23,0x36,0x1a,0x02,0x37,0x33,0x16,0x1a,0x02,0x17,0x02,0xa8,0x4a,0x7d,0x38,0x05,0x39,0x7e,0x48,0x88,0x31,0x59,0x52,0x4d,0x25,0x78,0x26,0x4e,0x53,0x57,0x2f,0x01,0x4a,0xc7,0x01,0x9b,0xe0,0xe0,0xfe,0x64,0xc6,0x88,0x01,0x0b,0x01,0x0b,0x01,0x0e, +0x8a,0x90,0xfe,0xed,0xfe,0xf6,0xfe,0xfa,0x83,0x00,0x00,0x02,0x00,0x3c,0x01,0x4a,0x03,0x10,0x05,0x87,0x00,0x1e,0x00,0x33,0x00,0x10,0xb5,0x07,0x31,0x31,0x1e,0x27,0x11,0x00,0x2f,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x01,0x2e,0x03,0x27,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x1e,0x03,0x17,0x1e,0x03, +0x17,0x01,0x2e,0x03,0x27,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x02,0x88,0x1f,0x28,0x1b,0x10,0x06,0x5d,0x55,0x3b,0x6a,0x4f,0x2e,0x27,0x4a,0x6a,0x43,0x41,0x6a,0x2d,0x18,0x1d,0x11,0x09,0x05,0x05,0x0f,0x1e,0x31,0x27,0xfe,0xf3,0x03,0x05,0x07,0x09,0x07,0x19,0x4d,0x33,0x1f,0x35,0x26,0x15,0x1c,0x30, +0x42,0x27,0x22,0x4a,0x01,0x4a,0x47,0x8a,0x81,0x77,0x34,0x29,0x26,0x4a,0x6c,0x46,0x3f,0x76,0x5b,0x37,0x3b,0x47,0x26,0x4b,0x51,0x5c,0x38,0x3b,0x85,0x97,0xab,0x63,0x02,0x86,0x1b,0x2b,0x25,0x21,0x11,0x3d,0x44,0x1b,0x2d,0x3b,0x20,0x25,0x3a,0x27,0x14,0x10,0x00,0x01,0x00,0x69,0x01,0x4a,0x02,0xe4,0x05,0x92,0x00,0x31,0x00,0x12, +0xb6,0x22,0x17,0x17,0x2a,0x0d,0x00,0x07,0x00,0x2f,0x33,0xcd,0x2f,0x39,0x2f,0xcd,0x30,0x31,0x13,0x17,0x33,0x3e,0x03,0x33,0x32,0x16,0x17,0x15,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x37,0x15,0x0e,0x03,0x23,0x22,0x26,0x27,0x07,0x16,0x16,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x27,0xf0,0x21,0x04,0x0d, +0x32,0x46,0x59,0x35,0x16,0x36,0x1d,0x33,0x36,0x30,0x58,0x42,0x28,0x1e,0x31,0x3c,0x1e,0x24,0x48,0x43,0x3d,0x19,0x12,0x37,0x45,0x4d,0x27,0x2a,0x53,0x1d,0x03,0x0a,0x07,0x83,0x0b,0x19,0x28,0x1e,0x05,0x7d,0x92,0x21,0x3d,0x2e,0x1b,0x05,0x08,0x95,0x0c,0x12,0x22,0x30,0x1d,0x1a,0x25,0x18,0x0b,0x0e,0x17,0x1e,0x10,0x9a,0x0e,0x1c, +0x16,0x0f,0x14,0x17,0x02,0x48,0xac,0x53,0xfe,0xe5,0x01,0x16,0x6a,0xba,0xba,0xc8,0x77,0x00,0x00,0x02,0x00,0x3c,0x01,0x36,0x03,0x10,0x05,0x81,0x00,0x1e,0x00,0x3c,0x00,0x12,0xb6,0x3c,0x3a,0x24,0x03,0x1b,0x30,0x0f,0x00,0x2f,0xcd,0x2f,0x33,0xdd,0x32,0xcc,0x30,0x31,0x01,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x04,0x33, +0x32,0x1e,0x04,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x37,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x01,0xa3,0x20,0x4c,0x2e,0x25,0x49,0x3b,0x24,0x22,0x38,0x4b,0x52,0x53,0x26,0x25,0x51,0x4f,0x48,0x37,0x20,0x27,0x3d,0x4d,0x26,0x2c,0x49,0x1c,0x36,0x0a, +0x15,0x21,0x16,0x23,0x25,0x10,0x02,0x16,0x25,0x30,0x35,0x35,0x18,0x23,0x50,0x44,0x2c,0x0e,0x18,0x21,0x13,0x50,0x06,0x01,0xa3,0x3c,0x31,0x22,0x55,0x91,0x70,0x6b,0xbe,0xa1,0x80,0x59,0x30,0x2e,0x57,0x7d,0x9c,0xba,0x68,0x74,0x98,0x5a,0x25,0x31,0x3c,0xcb,0x1f,0x37,0x29,0x18,0x33,0x47,0x48,0x15,0x53,0x96,0x81,0x68,0x49,0x28, +0x59,0x9a,0xd2,0x78,0x41,0x57,0x34,0x16,0x9c,0x00,0x00,0x01,0x00,0x6f,0x01,0x3a,0x02,0xdd,0x05,0x86,0x00,0x25,0x00,0x1b,0x40,0x0c,0x20,0x00,0x07,0x03,0x03,0x25,0x25,0x03,0x16,0x10,0x04,0x03,0x00,0x2f,0x33,0x2f,0xcd,0x11,0x39,0x2f,0x12,0x17,0x39,0x30,0x31,0x01,0x06,0x00,0x07,0x27,0x36,0x36,0x37,0x27,0x26,0x26,0x35,0x34, +0x3e,0x02,0x33,0x32,0x17,0x15,0x26,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x37,0x36,0x36,0x37,0x02,0xdd,0xa7,0xfe,0xde,0x83,0x22,0x43,0xa6,0x5e,0x01,0x6e,0x76,0x30,0x57,0x79,0x4a,0x2d,0x3e,0x1d,0x3b,0x1a,0x27,0x46,0x33,0x1e,0x19,0x2c,0x3b,0x21,0x34,0x35,0x1d,0x3c,0x24,0x03,0x78,0x4e,0xfe,0xe3,0xd3,0xaf, +0x6d,0xbe,0x4c,0x03,0x16,0x88,0x69,0x42,0x69,0x4a,0x27,0x09,0x99,0x05,0x05,0x0f,0x22,0x37,0x28,0x25,0x36,0x24,0x11,0x13,0x11,0x22,0x12,0x00,0x00,0x01,0x00,0x41,0x01,0x4a,0x03,0x0b,0x05,0x88,0x00,0x29,0x00,0x0e,0xb4,0x04,0x09,0x29,0x20,0x16,0x00,0x2f,0x2f,0x33,0xdd,0xce,0x30,0x31,0x01,0x06,0x06,0x07,0x23,0x2e,0x03,0x23, +0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x15,0x11,0x23,0x11,0x34,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x17,0x33,0x36,0x36,0x37,0x03,0x0b,0x42,0x54,0x1c,0x7a,0x0d,0x29,0x35,0x40,0x25,0x15,0x1a,0x0f,0x06,0x08,0x0c,0x0d,0x0c,0x08,0x83,0x13,0x16,0x13,0x67,0x5e,0x34,0x56,0x44,0x30,0x0e,0x04,0x14,0x30,0x1d,0x05,0x7d,0x61, +0xc2,0x71,0x36,0x60,0x46,0x29,0x0b,0x13,0x19,0x0d,0x11,0x2b,0x3b,0x52,0x73,0x99,0x65,0xfe,0xda,0x01,0x10,0x93,0xd0,0x8e,0x5b,0x1e,0x5b,0x69,0x29,0x3f,0x4e,0x25,0x3c,0x65,0x2f,0x00,0x00,0x01,0x00,0x6b,0x01,0x47,0x02,0xe1,0x05,0x7d,0x00,0x12,0x00,0x0c,0xb3,0x00,0x0f,0x11,0x08,0x00,0x2f,0x2f,0xcd,0x32,0x30,0x31,0x13,0x3e, +0x05,0x37,0x33,0x0e,0x05,0x07,0x21,0x15,0x21,0x6b,0x25,0x3f,0x33,0x28,0x1e,0x13,0x05,0x83,0x06,0x12,0x19,0x21,0x27,0x2f,0x1a,0x01,0xc0,0xfd,0x8a,0x01,0x8b,0x45,0x83,0x89,0x98,0xb2,0xd5,0x82,0x82,0xd1,0xaa,0x8a,0x77,0x6b,0x36,0x97,0xff,0xff,0x00,0x39,0xfd,0xff,0x03,0x72,0x05,0x5f,0x02,0x26,0x0f,0x98,0x00,0x00,0x00,0x07, +0x0a,0x1f,0x01,0x09,0xfc,0xd3,0xff,0xff,0x00,0x9a,0xfd,0xd3,0x05,0x74,0x04,0x24,0x02,0x26,0x0f,0xab,0x00,0x00,0x00,0x27,0x0a,0x1f,0x02,0x00,0xfb,0x98,0x00,0x07,0x0f,0x51,0x02,0x01,0xfd,0xd8,0x00,0x01,0x00,0x55,0xff,0xe8,0x04,0x79,0x05,0x9a,0x00,0x2d,0x00,0x14,0x40,0x09,0x0e,0x0e,0x05,0x24,0x03,0x16,0x91,0x05,0x13,0x00, +0x3f,0xed,0x3f,0x12,0x39,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x27,0x2e,0x03,0x27,0x33,0x1e,0x03,0x17,0x1e,0x03,0x04,0x79,0x4e,0x8f,0xc7,0x78,0x78,0xc1,0x87,0x48,0x0c,0x10,0xb4,0x0e,0x12,0x2c,0x58,0x83,0x58,0xb1, +0xb4,0x1e,0x35,0x49,0x2b,0x2f,0x57,0x44,0x2c,0x04,0xa8,0x03,0x22,0x38,0x4c,0x2e,0x2b,0x57,0x45,0x2b,0x01,0xdc,0x7b,0xbb,0x7e,0x40,0x43,0x75,0x9e,0x5b,0x27,0x52,0x2a,0x21,0x50,0x33,0x3e,0x67,0x4b,0x29,0xa9,0xae,0x40,0x6f,0x62,0x56,0x28,0x2c,0x67,0x85,0xab,0x72,0x60,0x89,0x69,0x57,0x2e,0x2c,0x60,0x74,0x8e,0x00,0x00,0x02, +0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0x9a,0x00,0x2f,0x00,0x41,0x00,0x1c,0x40,0x0e,0x3d,0x91,0x26,0x13,0x12,0x00,0x10,0x03,0x03,0x1c,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0x12,0x39,0x3f,0xed,0x30,0x31,0x01,0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x06,0x35,0x35,0x33,0x15,0x14,0x1e,0x04,0x15,0x14,0x06,0x07,0x1e, +0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x0e,0x1b,0x0e,0x01,0x01,0x20,0x35,0x44,0x46,0x44,0x35,0x20,0xa4,0x38,0x55,0x62,0x55,0x38,0x04,0x02,0x4d,0x74,0x4d,0x26,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88, +0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x01,0x01,0x05,0x0a,0x05,0x18,0x1e,0x16,0x11,0x17,0x20,0x34,0x4b,0x36,0x28,0x28,0x1f,0x23,0x1d,0x1d,0x33,0x4f,0x40,0x0b,0x27,0x0f,0x1c,0x60,0x80,0x9c,0x57,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7, +0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x41,0x00,0x21,0x40,0x11,0x3d,0x91,0x26,0x13,0x10,0x10,0x00,0x0b,0x91,0x16,0x04,0x03,0x1e,0x35,0x91,0x00,0x10,0x00,0x3f,0xed,0x39,0x39,0x3f,0xed,0x12,0x39,0x2f,0x3f,0xed,0x30,0x31,0x01, +0x32,0x16,0x17,0x36,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x02,0x9f,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f, +0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0x01,0xec,0x33,0x5b,0x80,0x4c,0xb8,0xc4,0x32,0x5f,0x89,0x58,0x58,0x85,0x5a,0x2d,0x04,0x17,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e, +0x2a,0x2a,0x50,0x71,0x46,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0xfd,0xe7,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0x34,0x62,0x8f,0x00,0x02,0x00,0x82,0xff,0xe0,0x06,0xac,0x05,0xaf,0x00,0x42,0x00,0x52,0x00,0x34,0x40,0x1b,0x1f,0x2e,0x2a,0x92,0x33,0x50,0x91,0x0a, +0x33,0x0a,0x33,0x0a,0x25,0x15,0x91,0x3d,0x04,0x24,0x25,0x13,0x12,0x40,0x40,0x48,0x91,0x00,0x04,0x00,0x3f,0xed,0x39,0x11,0x33,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x10,0xed,0x39,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x23,0x22,0x0e,0x02, +0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x17,0x07,0x2e,0x03,0x23,0x22,0x06,0x07,0x35,0x3e,0x03,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x04,0xdf,0x6a,0xab,0x78,0x40,0x40,0x78,0xab,0x6a,0x6a,0xb1,0x7f,0x47,0x29,0x26,0x38,0x6d,0x31, +0x4e,0x79,0x53,0x2b,0x59,0x94,0xc0,0x67,0x57,0xa4,0x9b,0x91,0x45,0x5d,0x44,0xbb,0xd2,0xda,0x63,0x78,0xc1,0x3c,0x1b,0x46,0x4d,0x50,0x25,0x52,0x89,0x62,0x36,0x48,0x85,0xbb,0x73,0x55,0x9a,0x47,0x3e,0x97,0x01,0x74,0x21,0x46,0x6c,0x4a,0x4b,0x72,0x4d,0x27,0x9b,0x96,0x95,0x88,0x05,0xaf,0x42,0x7d,0xb6,0x75,0x75,0xb6,0x7d,0x40, +0x41,0x7e,0xb6,0x75,0x56,0x90,0x39,0x22,0x11,0x38,0x67,0x93,0x5a,0x82,0xb6,0x7f,0x54,0x20,0x1b,0x35,0x3e,0x4a,0x2f,0x7b,0x33,0x5b,0x45,0x28,0x23,0x1b,0x9c,0x0a,0x11,0x0d,0x08,0x02,0x22,0x68,0x8a,0xab,0x66,0x7e,0xca,0x8c,0x4b,0x25,0x37,0x2d,0x2f,0xfe,0x16,0x52,0x7e,0x57,0x2d,0x32,0x5a,0x7c,0x4a,0xa5,0xaf,0xad,0x00,0x01, +0x00,0x64,0xff,0xe8,0x04,0x87,0x05,0xb2,0x00,0x31,0x00,0x1b,0x40,0x0d,0x26,0x0e,0x26,0x0e,0x05,0x21,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x04,0x87,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x2d,0x51,0x72,0x44,0x42,0x6c,0x4b,0x29,0xb0,0x48,0x7e,0xaa,0x62,0x62,0xae,0x81,0x4b,0x01,0xda,0x71,0xb7,0x83,0x47,0x44, +0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x02,0x27,0x44,0x68,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x35,0x66,0x96,0x61,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x41,0x00,0x22,0x40,0x11,0x3d,0x1f,0x2d,0x22,0x91,0x0d,0x1f,0x1f,0x05,0x2a,0x91,0x33, +0x04,0x15,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xfd,0xce,0x12,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x3e,0x02, +0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7f,0x82,0x79,0x8c,0xb0,0x40,0x75,0xa5,0x65,0x5c,0x9b,0x71,0x3f,0x21,0x3f,0x5d,0x3c,0x43,0x76,0x59,0x33, +0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x68,0x6b,0x5c,0x88,0x5a,0x2c,0x31,0x5c,0x81,0x50,0x3b,0x66,0x4e,0x34,0x09,0x08,0x3c,0x61,0x83,0x00,0x00,0x03,0x00,0x28,0xff,0xe8,0x05,0xfe,0x05,0xb2, +0x00,0x27,0x00,0x37,0x00,0x45,0x00,0x24,0x40,0x13,0x1e,0x3b,0x91,0x23,0x10,0x0b,0x33,0x91,0x10,0x10,0x05,0x2b,0x91,0x1a,0x04,0x43,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x3f,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02, +0x33,0x32,0x16,0x15,0x15,0x3e,0x03,0x33,0x32,0x1e,0x02,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x01,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x05,0xfe,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x0d,0x28,0x2e,0x34,0x19,0x41,0x70,0x53,0x30,0x2f,0x56,0x79,0x49,0x9e,0xa1,0x21, +0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0xfc,0x0e,0x58,0x45,0x45,0x58,0x18,0x2a,0x39,0x21,0x21,0x3a,0x2a,0x19,0x03,0x40,0xa8,0x9d,0x4f,0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa0,0x02,0x16,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x01,0x70,0x0d,0x16,0x0f,0x09,0x2a,0x51,0x73,0x4a,0x4a,0x76,0x53,0x2c,0x9b,0x9c,0xf7,0x29,0x38,0x22, +0x0f,0x42,0x82,0xbf,0x01,0xe2,0x54,0x52,0x52,0x54,0x2c,0x3e,0x28,0x12,0x12,0x28,0x3e,0xfd,0xc7,0xbf,0xb1,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x02,0x00,0x82,0xff,0xe8,0x07,0x4c,0x05,0xb2,0x00,0x28,0x00,0x36,0x00,0x20,0x40,0x11,0x10,0x23,0x23,0x0e,0x91,0x26,0x04,0x2c,0x91,0x21,0x04,0x34,0x91,0x17,0x13,0x06,0x12,0x00, +0x3f,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x39,0x11,0x33,0x30,0x31,0x01,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x02,0x23,0x22,0x07,0x16,0x11,0x14,0x02,0x06,0x06,0x23,0x22,0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x36,0x33,0x32,0x17,0x36,0x36,0x33,0x32,0x00,0x01,0x10,0x02,0x23,0x22,0x02,0x11,0x14,0x1e,0x02,0x33,0x32,0x12,0x07, +0x4c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xae,0xb4,0x91,0x58,0x61,0x4a,0x8b,0xca,0x7f,0x73,0xc3,0x8d,0x4f,0x4c,0x8e,0xce,0x82,0xc6,0x7d,0x44,0xac,0x67,0xf9,0x01,0x0d,0xfc,0xb6,0xae,0xb4,0xb2,0xbc,0x32,0x5e,0x88,0x56,0xac,0xb6,0x02,0xc0,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb8,0xcd,0x6b,0x01,0x2a,0x01,0x2c,0x60, +0xb7,0xfe,0xc7,0xba,0xfe,0xea,0xb8,0x5c,0x53,0xaf,0x01,0x12,0xc0,0xc0,0x01,0x1c,0xbd,0x5d,0x75,0x3c,0x39,0xfe,0x89,0xfe,0x8b,0x01,0x2a,0x01,0x2b,0xfe,0xd4,0xfe,0xd3,0x97,0xda,0x8e,0x44,0x01,0x1f,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x04,0xb2,0x05,0xb2,0x00,0x24,0x00,0x0f,0xb6,0x0b,0x1a,0x12,0x12,0x91,0x00,0x04,0x00,0x3f, +0xed,0x3f,0x33,0x30,0x31,0x01,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x10,0x21,0x22,0x02,0x11,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x35,0x34,0x12,0x36,0x36,0x02,0xa7,0x7c,0xc3,0x86,0x46,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0xfe,0x9c,0xb4,0xb8,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e, +0x4b,0x8e,0xcb,0x05,0xb2,0x5e,0xbc,0xfe,0xe5,0xbd,0x80,0xd2,0xab,0x8a,0x39,0x3a,0x9c,0xb6,0xc9,0x67,0x02,0x60,0xfe,0xd4,0xfe,0xd6,0x6b,0xcd,0xb8,0x9c,0x3a,0x39,0x8a,0xab,0xd2,0x80,0xbd,0x01,0x1b,0xbc,0x5e,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0xb2,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x36,0x23,0x91,0x0e,0x20,0x20, +0x05,0x2b,0x91,0x2c,0x04,0x16,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x23,0x35,0x32,0x1e,0x02, +0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x04,0x93,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x0e,0x0f,0xb8,0x12,0x14,0x36,0x60,0x83,0x4c,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x52,0x6b,0x3f,0x1a,0x7b,0x83,0x63,0x9f,0x70,0x3c,0x21,0x40,0x5e,0x3d,0x45,0x78,0x58,0x33,0x01,0xb2,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60, +0x26,0x52,0x2c,0x26,0x4f,0x2e,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x60,0x6b,0x97,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x34,0x0a,0x09,0x3c,0x61,0x82,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x08,0x12,0x05,0xb3,0x00,0x5c,0x00,0x3d,0x40,0x21,0x48,0x3e,0x0e,0x0a,0x07,0x91,0x57,0x0b, +0x57,0x3e,0x2e,0x57,0x57,0x2e,0x3e,0x03,0x00,0x39,0x91,0x24,0x04,0x21,0x1b,0x42,0x91,0x1e,0x04,0x4d,0x91,0x18,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x32,0x32,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x33,0x10,0xed,0x32,0x39,0x11,0x33,0x30,0x31,0x21,0x2e,0x05,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03, +0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x16,0x04,0x04,0x16, +0x17,0x05,0xf6,0x0c,0x50,0x7a,0x9e,0xb3,0xc4,0x63,0x7e,0xf0,0x68,0x3c,0x93,0x55,0x66,0x8e,0x58,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x9a,0x2f,0x27,0x9a,0x67,0x65,0x9d,0x26,0x32,0x93,0x66,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x48,0x29,0x73,0x64,0xa8,0x63,0x73,0x39,0x4f,0x31,0x15,0xa8,0x64, +0x73,0x2c,0x49,0x35,0x1d,0x43,0x6f,0x8e,0x4b,0xc7,0x01,0x59,0x01,0x0b,0xb0,0x1f,0x1c,0x38,0x31,0x2a,0x1e,0x11,0x1f,0x22,0x9c,0x11,0x16,0x05,0x33,0x85,0x9c,0xb0,0x5f,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x61,0x5f,0x66,0x5a,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0xac, +0xae,0x88,0x88,0xae,0xac,0x2b,0x57,0x81,0x57,0x88,0x88,0xae,0xac,0x26,0x53,0x84,0x5f,0x77,0xb9,0x8e,0x67,0x23,0x0f,0x39,0x5c,0x80,0x55,0x00,0x00,0x02,0x00,0x82,0xff,0xe8,0x04,0x74,0x05,0xb2,0x00,0x2a,0x00,0x3a,0x00,0x1e,0x40,0x0f,0x14,0x36,0x91,0x1f,0x0f,0x0f,0x05,0x1a,0x91,0x25,0x04,0x2e,0x91,0x05,0x13,0x00,0x3f,0xed, +0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x04,0x74,0x47,0x82,0xb7, +0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x62,0x5c,0x50,0x20,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xb0,0x4b,0x81,0xae,0x62,0x62,0xae,0x82,0x4c,0xfc,0xbe,0xa2,0xa5,0xaf,0xa4,0x2f,0x57,0x7e,0x4f,0x4e,0x7a,0x54,0x2b,0x01,0xfc,0x7f,0xc6,0x88,0x47,0x48,0x8c,0xcc,0x84,0x7d,0xbc,0x7e,0x3f,0x0f,0x23,0x38,0x29,0x92, +0x45,0x69,0x47,0x25,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x32,0x63,0x92,0x61,0xfd,0xdc,0xc7,0xc1,0xc0,0xc4,0x60,0x89,0x58,0x29,0x28,0x57,0x87,0x00,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0xb2,0x00,0x30,0x00,0x40,0x00,0x2b,0x40,0x16,0x21,0x2b,0x91,0x18,0x26,0x91,0x1d,0x1d,0x18,0x00,0x36,0x91,0x05,0x05,0x0f,0x20, +0x18,0x04,0x3e,0x91,0x0f,0x13,0x00,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0xed,0x39,0x11,0x33,0x2f,0xed,0x10,0xed,0x32,0x30,0x31,0x01,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x37,0x15,0x0e,0x03,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15, +0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x01,0x42,0x21,0x53,0x5d,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0xa3,0xac,0x2b,0x63,0x5f,0x55,0x1e,0x2a,0x74,0x38,0x17,0x36,0x38,0x36,0x18,0x2e,0x62,0x5e,0x56,0x22,0x2e,0x41,0x28,0x13,0x02,0xa6,0x2d,0x56,0x7c,0x4e,0x4f, +0x80,0x5a,0x30,0xaa,0xaf,0xa5,0xa8,0x03,0x84,0x29,0x38,0x22,0x0f,0x42,0x82,0xbf,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x02,0x5a,0xa9,0xa9,0x16,0x1a,0x16,0x21,0x23,0xaa,0x0c,0x12,0x0c,0x06,0x16,0x1a,0x16,0x10,0x28,0x42,0x33,0xfd,0xa1,0x60,0x8b,0x5a,0x2b,0x2d,0x5b,0x8c,0x60,0xc4,0xca,0xcb,0x00,0x00,0x01,0x00,0x82, +0x00,0x00,0x06,0xf8,0x05,0xb4,0x00,0x3e,0x00,0x20,0x40,0x10,0x2a,0x25,0x0c,0x0c,0x2f,0x1c,0x3a,0x12,0x05,0x91,0x2f,0x04,0x12,0x91,0x25,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x33,0x12,0x39,0x2f,0x12,0x39,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e, +0x02,0x17,0x23,0x2e,0x03,0x35,0x10,0x12,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x06,0x48,0x21,0x46,0x6c,0x4a,0x3a,0x67,0x4e,0x2d,0xa4,0x2d,0x4e,0x67,0x3a,0x4a,0x6c,0x46,0x21,0x1e,0x34,0x49,0x2b,0xc9,0x20,0x3e,0x31,0x1e,0xee,0xe2,0x36,0x6e,0x62,0x4f,0x16,0x13, +0x4f,0x68,0x78,0x3d,0x69,0xa5,0x72,0x3c,0x1e,0x31,0x3e,0x20,0xc9,0x2b,0x49,0x34,0x1e,0x02,0xbc,0x91,0xe2,0x9c,0x52,0x46,0x86,0xc4,0x7e,0x6e,0x6e,0x7e,0xc4,0x86,0x46,0x4e,0x98,0xde,0x91,0x73,0xd0,0xb5,0x96,0x3a,0x39,0x8a,0xac,0xd2,0x80,0x01,0x77,0x01,0x7c,0x23,0x4a,0x76,0x52,0x52,0x75,0x4b,0x23,0x61,0xbf,0xfe,0xe3,0xbb, +0x81,0xd0,0xa9,0x89,0x39,0x3a,0x96,0xb2,0xcb,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x93,0x05,0x9a,0x00,0x43,0x00,0x1f,0x40,0x0f,0x3b,0x01,0x0f,0x36,0x91,0x21,0x33,0x33,0x01,0x29,0x91,0x19,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x11,0x39,0x30,0x31,0x01,0x33,0x1e,0x07,0x15,0x14,0x0e,0x02,0x07, +0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x06,0x01,0x12,0xbe,0x04,0x3a,0x5a,0x71,0x75,0x6f,0x57,0x35,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3, +0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0xd4,0xce,0x4f,0x6d,0x44,0x1e,0x36,0x58,0x71,0x78,0x74,0x5e,0x3e,0x05,0x9a,0x23,0x2a,0x1b,0x11,0x16,0x21,0x38,0x56,0x41,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83,0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a, +0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x28,0x2f,0x1c,0x12,0x15,0x20,0x39,0x5a,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0xc3,0x05,0xb2,0x00,0x42,0x00,0x35,0x40,0x1e,0x3e,0x1a,0x92,0x00,0x0e,0x00,0x0e,0x00,0x20,0xb0,0x30,0xc0,0x30,0xd0,0x30,0x03,0x30,0x13,0x91,0x08,0x08,0x21, +0x38,0x91,0x27,0x13,0x21,0x04,0x20,0x03,0x00,0x3f,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0xce,0x5d,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x37,0x32,0x3e,0x02,0x37,0x33,0x07,0x11,0x14,0x0e,0x02,0x23, +0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x02,0xf1,0x14,0x13,0x2a,0x53,0x7c,0x52,0x3f,0x81,0x68,0x41,0xaa,0x20,0x33,0x3f,0x1f,0x52,0x5d,0x2a,0x31,0x37,0x5e,0x9c,0x86,0x76,0x37,0x4c,0x01,0x4a,0x8b,0xca,0x80,0x75,0xc1,0x8b,0x4c,0x0f,0x10,0xb6,0x0f,0x16, +0x30,0x5e,0x88,0x59,0x57,0x85,0x5a,0x2f,0x18,0x44,0x4e,0x55,0x04,0x7c,0x23,0x4a,0x25,0x39,0x6a,0x52,0x31,0x21,0x4b,0x78,0x58,0x2f,0x3f,0x27,0x11,0x4d,0x51,0x2b,0x43,0x1c,0x83,0x10,0x27,0x43,0x33,0x02,0xfc,0x2a,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53, +0x02,0xe8,0x0e,0x18,0x14,0x0c,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xd0,0x05,0x9a,0x00,0x54,0x00,0x44,0x40,0x14,0x17,0x45,0x91,0x1e,0x3e,0x1b,0x1b,0x38,0x91,0x23,0x80,0x23,0x90,0x23,0xa0,0x23,0xe0,0x23,0x04,0x23,0xb8,0xff,0xc0,0x40,0x11,0x09,0x0d,0x48,0x3e,0x23,0x3e,0x23,0x0d,0x4f,0x2d,0x12,0x12,0x91,0x07,0x07,0x0d,0x03, +0x00,0x3f,0x33,0x2f,0xed,0x3f,0x33,0x12,0x39,0x39,0x2f,0x2f,0x2b,0x5d,0x10,0xed,0x33,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x13,0x34,0x3e,0x04,0x37,0x3e,0x03,0x37,0x33,0x0e,0x03,0x07,0x0e,0x03,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02, +0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x23,0x2e,0x03,0x82,0x3f,0x6a,0x8d,0x9b,0xa0,0x49,0x55,0x6c,0x42,0x24,0x0d,0xb5,0x10,0x49,0x77,0xa8,0x6f,0x4d,0x8b,0x72,0x58,0x1a,0x05,0x22,0x4f,0x28,0x6a,0x88,0x1b,0x0e,0x3d,0x51,0x5f,0x2f,0x54,0x8b,0x63,0x37,0x1d,0x2f, +0x3c,0x1f,0xc2,0x23,0x45,0x36,0x21,0x22,0x39,0x4b,0x29,0x3b,0x53,0x33,0x17,0xa2,0x14,0x32,0x54,0x40,0x2f,0x4f,0x39,0x20,0x23,0x37,0x44,0x21,0xc2,0x1f,0x3c,0x2f,0x1d,0x02,0x26,0xab,0xf2,0xa4,0x62,0x38,0x18,0x09,0x0a,0x13,0x1a,0x25,0x1c,0x42,0x58,0x3c,0x27,0x10,0x0b,0x11,0x20,0x3b,0x34,0x1d,0x1a,0x7c,0x85,0x45,0x61,0x3d, +0x1d,0x3e,0x7d,0xbb,0x7c,0x66,0xa3,0x85,0x6b,0x2d,0x29,0x6b,0x88,0xa6,0x64,0x62,0x85,0x52,0x23,0x37,0x60,0x83,0x4c,0x30,0x30,0x4d,0x83,0x60,0x36,0x29,0x56,0x83,0x5a,0x64,0xa6,0x88,0x6b,0x29,0x2d,0x6d,0x87,0xa2,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xac,0x05,0x9a,0x00,0x27,0x00,0x18,0x40,0x0b,0x23,0x15,0x1f,0x1f,0x05,0x0c, +0x03,0x10,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x04,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x04,0xac,0x46,0x83,0xbb,0x75,0x80,0xc6,0x87,0x46,0xa2,0xb2,0xad,0x58,0x85, +0x58,0x2c,0x13,0x1e,0x21,0x1e,0x13,0x15,0x1b,0xb1,0x15,0x22,0x29,0x31,0x29,0x01,0x98,0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfc,0x42,0xa6,0xb8,0x2a,0x4b,0x68,0x3d,0x3a,0x5e,0x4e,0x43,0x40,0x40,0x24,0x22,0x4c,0x2d,0x20,0x46,0x32,0x2c,0x5a,0x6c,0x86,0x00,0x02,0x00,0x6e,0xff,0xe8,0x05,0xba,0x05,0xb2,0x00,0x5a, +0x00,0x66,0x00,0x3e,0xb6,0x3d,0x2d,0x64,0x54,0x64,0x01,0x64,0xb8,0xff,0xe0,0x40,0x1a,0x10,0x15,0x48,0x64,0x9f,0x13,0x01,0x13,0x13,0x35,0x1e,0x1b,0x92,0x23,0x23,0x49,0x55,0x0f,0x05,0x91,0x49,0x13,0x5e,0x92,0x35,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0x12,0x39,0x2f,0xed,0x33,0x12,0x39,0x2f,0x5d,0x33,0x2b,0x5d,0x12,0x39,0x39, +0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x04,0x35,0x34,0x2e,0x04,0x27,0x0e,0x03,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x16,0x16,0x17,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x1e,0x05,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x04,0x35,0x34,0x3e, +0x02,0x37,0x33,0x0e,0x03,0x01,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x36,0x36,0x01,0x1d,0x57,0x8e,0xb4,0x5d,0x3a,0x78,0x70,0x62,0x49,0x2a,0x20,0x38,0x4a,0x56,0x5b,0x2d,0x19,0x2b,0x21,0x13,0x31,0x36,0x1d,0x38,0x11,0x23,0x39,0x18,0x52,0x92,0x38,0x5c,0x41,0x24,0x17,0x26,0x33,0x1c,0x3a,0x48,0x28,0x46,0x5c,0x35,0x31, +0x5a,0x46,0x2a,0x43,0x30,0x30,0x66,0x61,0x56,0x40,0x26,0x71,0xbc,0xf6,0x84,0x52,0xa4,0x97,0x81,0x60,0x37,0x21,0x3a,0x4f,0x2d,0xd7,0x35,0x5c,0x46,0x28,0x02,0xbf,0x33,0x2a,0x31,0x31,0x36,0x2d,0x27,0x35,0x02,0x1c,0x6e,0x9c,0x64,0x2f,0x11,0x25,0x3b,0x54,0x70,0x47,0x3c,0x5f,0x4c,0x3d,0x34,0x2e,0x17,0x15,0x27,0x25,0x24,0x12, +0x26,0x32,0x1a,0x16,0x11,0x2d,0x16,0x6d,0x22,0x3b,0x52,0x30,0x27,0x44,0x3b,0x34,0x17,0x2a,0x70,0x51,0x31,0x52,0x3b,0x21,0x21,0x3b,0x52,0x31,0x3c,0x67,0x2d,0x17,0x32,0x3d,0x4b,0x5f,0x77,0x4a,0x93,0xd2,0x86,0x3f,0x1c,0x39,0x59,0x7a,0x9c,0x61,0x46,0x89,0x7f,0x74,0x31,0x2f,0x6f,0x7b,0x86,0x02,0x72,0x23,0x2d,0x2f,0x21,0x2c, +0x41,0x1c,0x20,0x42,0x00,0x01,0x00,0x0a,0xff,0xe8,0x06,0x23,0x05,0xb8,0x00,0x54,0x00,0x30,0x40,0x19,0x10,0x91,0x0d,0x1e,0x07,0x07,0x19,0x4e,0x35,0x4e,0x35,0x4e,0x21,0x3d,0x91,0x2c,0x13,0x48,0x91,0x21,0x04,0x00,0x91,0x19,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x12,0x39,0x2f,0x39,0x39,0xed, +0x30,0x31,0x01,0x22,0x0e,0x04,0x23,0x22,0x2e,0x02,0x35,0x33,0x14,0x16,0x33,0x32,0x3e,0x06,0x33,0x32,0x1e,0x02,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15, +0x23,0x35,0x34,0x2e,0x02,0x02,0x76,0x32,0x39,0x27,0x22,0x36,0x58,0x49,0x32,0x53,0x3b,0x21,0x97,0x30,0x1d,0x1e,0x2b,0x20,0x1c,0x20,0x29,0x3b,0x51,0x39,0x38,0x5a,0x42,0x2b,0x08,0x1d,0x9b,0x74,0x54,0x88,0x60,0x33,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x20, +0x36,0x48,0x29,0x3b,0x52,0x33,0x17,0xa8,0x13,0x2d,0x49,0x05,0x21,0x2f,0x45,0x51,0x45,0x2e,0x23,0x3f,0x55,0x32,0x2a,0x2a,0x1b,0x2c,0x39,0x3a,0x39,0x2c,0x1b,0x26,0x44,0x5f,0x38,0x80,0x7f,0x3e,0x7d,0xbb,0x7c,0xfe,0x16,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82, +0x53,0x01,0xe1,0x64,0x89,0x52,0x24,0x37,0x60,0x83,0x4c,0x30,0x30,0x49,0x82,0x63,0x39,0x00,0x00,0x02,0x00,0x55,0xff,0xe8,0x06,0xd5,0x05,0xb2,0x00,0x56,0x00,0x66,0x00,0x31,0x40,0x1a,0x64,0x91,0x04,0x2b,0x47,0x19,0x91,0x16,0x2b,0x16,0x2b,0x16,0x3d,0x0c,0x91,0x52,0x13,0x38,0x21,0x91,0x3d,0x04,0x5c,0x91,0x35,0x04,0x00,0x3f, +0xed,0x3f,0xed,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x39,0x10,0xce,0xed,0x30,0x31,0x01,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x07,0x06,0x06,0x07,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e, +0x02,0x33,0x32,0x16,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x13,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0x02,0x59,0x03,0x02,0xb0,0x03,0x02,0x3f,0x6c,0x92,0x53,0x69,0x96,0x60,0x2d,0x25,0x4f,0x79,0x54,0x5e,0x58,0x51,0x6c, +0x41,0x1b,0x82,0x82,0x61,0xaf,0x53,0x1d,0x3a,0x6c,0x9b,0x62,0x61,0xa1,0x73,0x40,0x42,0x75,0xa0,0x5e,0x64,0x9d,0x36,0x37,0x6e,0x6f,0x6f,0x39,0x5d,0x9c,0x71,0x40,0x20,0x3e,0x5a,0x3a,0x3a,0x69,0x4f,0x2e,0x62,0xa2,0xce,0x6c,0x81,0xd4,0x97,0x52,0xa4,0x1c,0x3b,0x5c,0x40,0x41,0x61,0x42,0x21,0x83,0x82,0x80,0x73,0x01,0x8e,0x0f, +0x1f,0x11,0x11,0x1e,0x0f,0x44,0x66,0x44,0x22,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x24,0x3f,0x53,0x2f,0x5f,0x6d,0x01,0x02,0x30,0x3d,0x54,0x69,0x6c,0xa6,0x71,0x3b,0x3c,0x72,0xa7,0x6b,0x6a,0xa6,0x72,0x3c,0x3e,0x3c,0x26,0x31,0x1c,0x0a,0x31,0x5c,0x81,0x50,0x3b,0x65,0x4e,0x33,0x09,0x04,0x07,0x3b,0x61,0x83,0x4e,0x75, +0xad,0x71,0x37,0x3c,0x6e,0x9c,0x02,0xc1,0x47,0x6f,0x4c,0x27,0x2c,0x4e,0x6c,0x41,0x90,0x99,0x98,0x00,0x00,0x01,0x00,0x5a,0xff,0xe8,0x04,0x7d,0x05,0x9a,0x00,0x31,0x00,0x23,0x40,0x11,0x24,0x0a,0x24,0x0a,0x1b,0x13,0x05,0x91,0x10,0x10,0x15,0x2c,0x91,0x1b,0x13,0x15,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x12,0x39, +0x39,0x2f,0x2f,0x30,0x31,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xd5,0x2e,0x52,0x72,0x44,0x42,0x6f,0x4f,0x2c,0xa6,0x48,0x7e,0xaa,0x62,0x59, +0x9c,0x41,0xa8,0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x02,0xed,0x43,0x68,0x47,0x24,0x1b,0x34,0x50,0x34,0x58,0x88,0x5b,0x2f,0x28,0x29,0x01,0x51,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a, +0x82,0x53,0x00,0x01,0x00,0x82,0x00,0x00,0x05,0xb6,0x05,0xb3,0x00,0x4d,0x00,0x33,0x40,0x1b,0x08,0x05,0x92,0x4a,0x09,0x0c,0x19,0x37,0x1c,0x0c,0x26,0x37,0x37,0x26,0x0c,0x03,0x00,0x31,0x91,0x1c,0x04,0x3e,0x91,0x16,0x04,0x00,0x12,0x00,0x3f,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x11,0x12,0x39,0x11,0x33,0x33,0xed, +0x32,0x30,0x31,0x21,0x2e,0x03,0x27,0x22,0x06,0x07,0x35,0x36,0x36,0x37,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x04,0x17,0x16,0x16, +0x17,0x04,0x49,0x19,0x65,0x8a,0xa7,0x6e,0x46,0xbb,0x59,0x41,0x98,0x51,0x68,0x90,0x5a,0x28,0x2b,0x59,0x88,0x5c,0x6d,0x92,0x2f,0x27,0x99,0x67,0x54,0x8b,0x62,0x36,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x20,0x36,0x49,0x2a,0x39,0x4f,0x30,0x15,0xa8,0x16,0x31,0x4f,0x39,0x2c,0x49,0x35,0x1d,0x2b,0x4a,0x62,0x6d,0x74,0x36, +0xb8,0xf1,0x2f,0x2e,0x4f,0x3a,0x23,0x04,0x1e,0x23,0x9c,0x15,0x19,0x02,0x2d,0x83,0x9e,0xb3,0x5e,0x62,0xb2,0x87,0x50,0x5b,0x65,0x65,0x5b,0x3e,0x7c,0xbb,0x7c,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x62,0x85,0x52,0x23,0x2b,0x57,0x81,0x57,0x88,0x88,0x57,0x81,0x57,0x2b,0x26,0x53,0x84,0x5f,0x5a,0x98,0x7e,0x65,0x4f, +0x39,0x13,0x2d,0xa7,0x7d,0x00,0x00,0x01,0x00,0x6e,0xff,0xe8,0x04,0x91,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x00,0x1a,0x91,0x30,0x05,0x05,0x21,0x38,0x91,0x27,0x13,0x10,0x21,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x37,0x33,0x0e,0x03, +0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x35,0x33,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x03,0xe9,0x20,0x54,0x5e,0x63,0x30,0x5a,0xa8,0x80,0x4d,0x08,0x0d,0x13,0x0b,0xb6,0x0d,0x15,0x0f,0x08,0x39,0x57,0x68,0x30,0x49,0x7f,0x5e,0x36,0xa8, +0x4a,0x8b,0xca,0x80,0x75,0xbf,0x87,0x49,0x0f,0x10,0xb6,0x0f,0x16,0x2d,0x5a,0x86,0x59,0x57,0x85,0x5a,0x2f,0x03,0x5f,0x2a,0x3a,0x26,0x11,0x34,0x6d,0xaa,0x77,0x21,0x49,0x48,0x45,0x1d,0x1a,0x45,0x4b,0x4c,0x22,0x5f,0x74,0x3f,0x15,0x33,0x57,0x75,0x42,0xfe,0xfc,0x40,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20, +0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x00,0x02,0x00,0x32,0xff,0xe8,0x04,0xf3,0x05,0xb3,0x00,0x13,0x00,0x57,0x00,0x32,0x40,0x1c,0x38,0x33,0x2b,0x20,0x0f,0x91,0x57,0x48,0x00,0x52,0x10,0x52,0x02,0x52,0x52,0x3d,0x05,0x91,0x48,0x13,0x19,0x92,0x3d,0x04,0x26,0x92,0x33,0x04,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12, +0x39,0x2f,0x5d,0x12,0x39,0xed,0xce,0x32,0x11,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x01,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x15,0x14,0x17,0x23,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32, +0x1e,0x02,0x15,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x01,0xb1,0x39,0x5d,0x75,0x3c,0x3c,0x79,0x61,0x3d,0x39,0x5e,0x7a,0x42,0x42,0x76,0x5a,0x35,0x02,0x9a,0x18,0x2d,0x44,0x2b,0x36,0x48,0x2c,0x13,0x9e,0x1c,0x33,0x46,0x2a,0x4e,0x4f,0x15,0xb5,0x0e,0x32,0x5a,0x7b,0x49,0x2a,0x4e, +0x45,0x38,0x13,0x11,0x36,0x43,0x4d,0x29,0x5a,0x87,0x5b,0x2d,0x52,0x89,0xb3,0x61,0x69,0xbc,0x8c,0x52,0x59,0x8e,0xae,0x56,0x31,0x62,0x5b,0x51,0x20,0x01,0xde,0x56,0x83,0x59,0x2e,0x2d,0x58,0x82,0x55,0x55,0x83,0x59,0x2e,0x2b,0x56,0x83,0x01,0xc8,0x50,0x71,0x48,0x22,0x1e,0x33,0x45,0x27,0x2b,0x2b,0x2d,0x46,0x30,0x1a,0x62,0x54, +0x30,0x42,0x36,0x32,0x52,0x7b,0x53,0x2a,0x0f,0x23,0x38,0x29,0x28,0x38,0x24,0x10,0x32,0x6d,0xac,0x7a,0xfd,0xec,0x72,0xb9,0x81,0x46,0x46,0x84,0xbc,0x76,0x78,0xb8,0x7d,0x3f,0x11,0x24,0x37,0x27,0x00,0x02,0x00,0xa0,0x00,0x00,0x04,0x94,0x05,0xb1,0x00,0x0d,0x00,0x3f,0x00,0x22,0x40,0x11,0x06,0x91,0x3a,0x3a,0x3b,0x23,0x91,0x0e, +0x0e,0x2a,0x00,0x92,0x30,0x04,0x19,0x2a,0x12,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x2f,0xed,0x39,0x33,0x2f,0xed,0x30,0x31,0x01,0x22,0x0e,0x02,0x15,0x15,0x3e,0x03,0x35,0x34,0x26,0x13,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x23,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x11,0x23,0x11,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x15,0x3e,0x03,0x01,0xde,0x23,0x39,0x28,0x16,0x4e,0x6e,0x45,0x1f,0x3f,0x9a,0x63,0xab,0x7f,0x48,0x11,0x1b,0x20,0x10,0xc4,0x1c,0x2a,0x1c,0x0e,0x37,0x56,0x6b,0x33,0x48,0x87,0x69,0x3f,0xa2,0x33,0x57,0x73,0x41,0x44,0x6f,0x50,0x2b,0x2e,0x6b,0xb0,0x81,0x21,0x5b,0x66,0x6b,0x05,0x21,0x18,0x2a, +0x3c,0x24,0x83,0x0a,0x25,0x31,0x3b,0x20,0x30,0x3a,0xfe,0x36,0x35,0x71,0xb0,0x7b,0x42,0x73,0x61,0x50,0x20,0x26,0x5b,0x64,0x6b,0x35,0x5f,0x7b,0x47,0x1c,0x30,0x57,0x7d,0x4c,0xfe,0x8e,0x04,0x74,0x4c,0x77,0x50,0x2a,0x20,0x3f,0x5b,0x3b,0x34,0x66,0x5a,0x48,0x16,0xc5,0x2d,0x43,0x2c,0x16,0x00,0x01,0x00,0x82,0xff,0xe8,0x05,0x1d, +0x05,0x9a,0x00,0x42,0x00,0x20,0x40,0x10,0x14,0x3d,0x91,0x00,0x07,0x3c,0x3c,0x1e,0x28,0x03,0x31,0x91,0x1e,0x13,0x07,0x03,0x00,0x3f,0x3f,0xed,0x3f,0x12,0x39,0x2f,0x12,0x39,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x04,0x35,0x33,0x14,0x1e,0x04,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35, +0x34,0x3e,0x02,0x37,0x33,0x06,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x04,0x28,0x3a,0x57,0x65,0x57,0x3a,0xb1,0x39,0x55,0x64,0x55,0x39,0x24,0x41,0x5c,0x37,0x45,0x77,0x56,0x31,0x5f,0x9f,0xd2,0x73,0x87,0xdd,0x9e,0x56,0x1f,0x34,0x42,0x23,0xc7,0x6d,0x68,0x3c,0x72, +0xa4,0x68,0x69,0x97,0x60,0x2d,0x2c,0x58,0x85,0x59,0x7f,0x79,0x46,0x6a,0x48,0x25,0x04,0x1a,0x31,0x32,0x20,0x1c,0x35,0x5c,0x50,0x2c,0x2d,0x1d,0x1c,0x36,0x5e,0x51,0x30,0x54,0x42,0x2d,0x08,0x09,0x3c,0x61,0x82,0x4e,0x75,0xad,0x71,0x37,0x5e,0xbc,0x01,0x1b,0xbd,0x7b,0xd3,0xaf,0x8d,0x36,0x94,0xfe,0xa4,0xd6,0x94,0xe0,0x96,0x4b, +0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x20,0x32,0x3e,0x00,0x02,0x00,0x6e,0xff,0xe8,0x04,0x60,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x15,0x03,0x22,0x91,0x14,0x0f,0x10,0x1a,0x91,0x05,0x13,0x00,0x3f,0xed,0x3f,0x33,0xed,0x3f,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32, +0x1e,0x02,0x17,0x11,0x33,0x01,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x04,0x60,0x47,0x82,0xb7,0x6f,0x7a,0xc0,0x84,0x45,0x47,0x81,0xb5,0x6e,0x31,0x63,0x5b,0x51,0x1f,0xa8,0xfc,0xbe,0xa2,0xa5,0xae,0xa5,0x2f,0x57,0x7e,0x4f,0x9d,0xaa,0x02,0x06,0x7f,0xc9,0x8c,0x4a,0x4b,0x90,0xcf,0x84,0x7d,0xc0,0x82,0x43, +0x10,0x24,0x39,0x28,0x02,0x17,0xfc,0x76,0xc7,0xcb,0xcb,0xc3,0x60,0x8c,0x5d,0x2d,0xb3,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x04,0xff,0x05,0xb3,0x00,0x41,0x00,0x56,0x00,0x33,0x40,0x1c,0x3f,0x53,0x91,0x17,0x12,0x30,0x00,0x00,0x00,0x10,0x00,0x02,0x23,0x00,0x23,0x00,0x09,0x29,0x92,0x1c,0x04,0x36,0x92,0x12,0x04,0x47,0x09,0x12, +0x00,0x3f,0x33,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xce,0x11,0x39,0xed,0x39,0x30,0x31,0x01,0x32,0x1e,0x02,0x15,0x14,0x07,0x01,0x23,0x01,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x07,0x23,0x36,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x15,0x23,0x35, +0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x17,0x17,0x36,0x36,0x13,0x1e,0x03,0x17,0x33,0x3e,0x03,0x37,0x37,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x02,0xa4,0x58,0x8c,0x62,0x33,0x2d,0xfe,0xfe,0x8e,0xfe,0x17,0x11,0x16,0x32,0x5a,0x7e,0x4b,0x29,0x4d,0x43,0x36,0x11,0x13,0x38,0x45,0x4e,0x2a,0x49,0x7c,0x5a,0x33,0x0e, +0xb7,0x15,0x4f,0x4e,0x2a,0x46,0x33,0x1c,0x9e,0x13,0x2c,0x48,0x36,0x22,0x3b,0x2b,0x19,0x0c,0x0c,0x39,0x4e,0xa7,0x33,0x05,0x10,0x10,0x0d,0x03,0x02,0x03,0x0e,0x11,0x11,0x05,0x72,0x18,0x67,0x72,0x4b,0x7e,0x37,0x03,0xd5,0x28,0x4c,0x6d,0x45,0x59,0x5a,0xfe,0x04,0x03,0xca,0x23,0x5b,0x32,0x51,0x76,0x4d,0x25,0x10,0x24,0x38,0x28, +0x29,0x38,0x23,0x0f,0x2a,0x53,0x7b,0x52,0x32,0x36,0x42,0x30,0x54,0x62,0x1a,0x30,0x46,0x2d,0x2b,0x2b,0x27,0x45,0x33,0x1e,0x18,0x2e,0x43,0x2b,0x1d,0x36,0x17,0x72,0x1d,0x20,0xfd,0x79,0x0b,0x20,0x25,0x25,0x0f,0x0f,0x25,0x25,0x21,0x0b,0xe1,0x2e,0x3a,0x53,0x53,0x1c,0x19,0x00,0x00,0x02,0x00,0x32,0xff,0xe8,0x05,0x26,0x05,0x9a, +0x00,0x41,0x00,0x53,0x00,0x3f,0x40,0x25,0x02,0x41,0x09,0x4f,0x2d,0x10,0x06,0x05,0x0d,0x0d,0x4c,0x91,0x1f,0x32,0x05,0x05,0x42,0x91,0x3c,0x6f,0x32,0x7f,0x32,0xdf,0x32,0x03,0x32,0x3c,0x32,0x3c,0x01,0x27,0x91,0x16,0x13,0x01,0x03,0x00,0x3f,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x33,0x2f,0x10,0xce,0xed,0x33,0x2f, +0x12,0x17,0x39,0x30,0x31,0x01,0x33,0x11,0x36,0x36,0x37,0x15,0x06,0x06,0x07,0x16,0x16,0x17,0x15,0x26,0x26,0x27,0x11,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x11,0x0e,0x03,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x17,0x25,0x22, +0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x37,0x2e,0x03,0x03,0xad,0xa8,0x33,0x66,0x38,0x39,0x69,0x30,0x30,0x69,0x39,0x38,0x66,0x33,0x4a,0x8b,0xca,0x80,0x7e,0xc1,0x82,0x43,0x0f,0x10,0xb6,0x0f,0x16,0x2b,0x58,0x87,0x5c,0x57,0x85,0x5a,0x2f,0x2d,0x5a,0x5f,0x66,0x37,0x43,0x70,0x52,0x2e,0x2e,0x52,0x70,0x43,0x37,0x66,0x5f, +0x5a,0x2d,0xfe,0x88,0x17,0x32,0x2a,0x1b,0x1b,0x2a,0x32,0x17,0x66,0xbf,0x55,0x2a,0x5b,0x5f,0x63,0x05,0x9a,0xfe,0xac,0x2a,0x4d,0x21,0xa0,0x1d,0x46,0x26,0x26,0x45,0x1d,0xa0,0x20,0x4e,0x29,0xfe,0xb6,0x71,0xb7,0x83,0x47,0x44,0x75,0x9d,0x5a,0x27,0x53,0x2a,0x20,0x53,0x30,0x3d,0x68,0x4b,0x2b,0x2f,0x5a,0x82,0x53,0x01,0x53,0x22, +0x3b,0x2c,0x19,0x2b,0x4f,0x6d,0x42,0x42,0x6d,0x4e,0x2b,0x19,0x2c,0x3b,0x22,0x0f,0x0f,0x23,0x39,0x2a,0x2a,0x3a,0x23,0x0f,0x55,0x40,0x20,0x37,0x28,0x17,0x00,0x02,0x00,0xa0,0xff,0xe8,0x04,0x92,0x05,0x9a,0x00,0x16,0x00,0x24,0x00,0x16,0x40,0x0b,0x22,0x91,0x11,0x13,0x1a,0x91,0x02,0x07,0x10,0x01,0x03,0x00,0x3f,0x3f,0x33,0xed, +0x3f,0xed,0x30,0x31,0x13,0x33,0x11,0x3e,0x03,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x25,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x16,0x33,0x32,0x36,0xa0,0xa8,0x1f,0x51,0x5b,0x63,0x31,0x6e,0xb5,0x81,0x47,0x45,0x84,0xc0,0x7a,0x6f,0xb7,0x82,0x47,0x03,0x42,0xaa,0x9d,0x4f,0x7e,0x57,0x2f,0xa5,0xae, +0xa5,0xa2,0x05,0x9a,0xfd,0xe9,0x28,0x39,0x24,0x10,0x43,0x82,0xc0,0x7d,0x84,0xcf,0x90,0x4b,0x4a,0x8c,0xc9,0x7f,0x0a,0xbf,0xb3,0x2d,0x5d,0x8c,0x60,0xc3,0xcb,0xcb,0x00,0x01,0x00,0x50,0xff,0xe8,0x05,0xea,0x05,0xb2,0x00,0x5b,0x00,0x34,0x40,0x1d,0x14,0x4f,0x21,0x4f,0x21,0x4f,0x29,0x48,0x91,0x57,0x13,0x5b,0x44,0x15,0x2d,0x04, +0x08,0x34,0x91,0x3b,0x04,0x19,0x92,0x29,0x04,0x0e,0x92,0x08,0x13,0x00,0x3f,0xed,0x3f,0xed,0x3f,0xed,0x12,0x17,0x39,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x12,0x39,0x30,0x31,0x01,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x35,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x01,0x01,0x26,0x26,0x27,0x22,0x06,0x06,0x15,0x14, +0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x16,0x17,0x01,0x01,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x35,0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x06,0x07,0x01,0x01,0x16,0x16,0x37,0x36,0x36,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x27,0x01,0x01,0xd9,0x19,0x1d,0x24,0x49, +0x6e,0x4a,0x20,0x48,0x1f,0x3c,0x4b,0x39,0x39,0x3b,0x3d,0x01,0xc9,0xfe,0xb5,0x0f,0x21,0x12,0x09,0x1a,0x16,0x1c,0x17,0xa4,0x11,0x15,0x25,0x3d,0x4e,0x2a,0x48,0x6a,0x2a,0x01,0x32,0x01,0xc4,0x23,0x1b,0x29,0x1e,0x35,0x51,0x2c,0x2b,0x66,0x28,0x3d,0x5a,0x3b,0x1d,0x3e,0x3e,0xfe,0x21,0x01,0x40,0x0f,0x1f,0x15,0x20,0x18,0x1c,0x17, +0xae,0x11,0x15,0x26,0x3f,0x50,0x2a,0x48,0x6f,0x2a,0xfe,0xd9,0x01,0x7c,0x24,0x54,0x28,0x2f,0x58,0x44,0x29,0x0d,0x0f,0xb5,0x47,0x3f,0x2e,0x30,0x61,0x26,0x01,0x45,0x02,0x1e,0x18,0x0f,0x01,0x08,0x1f,0x1d,0x26,0x5b,0x2c,0x2b,0x50,0x2c,0x37,0x52,0x37,0x1b,0x3f,0x45,0xfe,0x10,0x01,0x42,0x19,0x34,0x14,0x1a,0x22,0x1e,0x17,0xa4, +0x11,0x15,0x22,0x3a,0x4f,0x2d,0x3c,0x6d,0x2c,0xfe,0xad,0xfd,0xfa,0x18,0x12,0x01,0x04,0x24,0x1d,0x26,0x55,0x2c,0x2b,0x50,0x2c,0x37,0x54,0x38,0x1d,0x3f,0x45,0x01,0xe3,0x00,0x00,0x01,0x00,0x50,0xff,0xe8,0x04,0x46,0x05,0x9a,0x00,0x52,0x00,0x2e,0x40,0x19,0x31,0x16,0x91,0x13,0x39,0x0d,0x91,0x0a,0x5f,0x0a,0x01,0x13,0x4b,0x0a, +0x0a,0x4b,0x13,0x03,0x22,0x00,0x91,0x43,0x13,0x22,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14, +0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x58,0x4a,0x76,0x52,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x2a,0x46,0x58,0x5d,0x58,0x46,0x2a,0xb1,0x2a,0x46,0x58,0x5d,0x58,0x46, +0x2a,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17,0x3f,0x7c,0xbb,0x7b,0x6f,0xbd,0x8a,0x4e,0x1e,0xb7,0x12,0x13,0x33,0x5c,0x7e,0x7e,0x13,0x2a,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x3b,0x1e,0x24,0x16,0x0e,0x13,0x1d,0x33,0x4f,0x3b,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44, +0x32,0x27,0x49,0x3c,0x29,0x07,0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x00,0x01,0x00,0x82,0xff,0xe8,0x04,0xcc,0x05,0x9a,0x00,0x57,0x00,0x2c,0x40,0x17,0x20,0x4c,0x91,0x49,0x18,0x55,0x91,0x52,0x5f,0x49,0x01,0x49, +0x52,0x49,0x52,0x09,0x3f,0x91,0x2a,0x13,0x35,0x09,0x03,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x39,0x30,0x31,0x01,0x34,0x2e,0x06,0x35,0x33,0x14,0x1e,0x06,0x15,0x14,0x0e,0x02,0x07,0x16,0x16,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x26,0x26,0x02,0x35,0x34, +0x3e,0x02,0x37,0x33,0x0e,0x03,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x04,0x1b,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0xb1,0x1f,0x33,0x41,0x45,0x41,0x33,0x1f,0x17,0x31,0x4c,0x35,0x65,0x63,0x1a,0x32,0x4b,0x31,0x35,0x4c,0x30,0x17, +0x3f,0x7c,0xbb,0x7b,0x87,0xdd,0x9e,0x56,0x1e,0x33,0x43,0x24,0xc9,0x38,0x50,0x33,0x17,0x3b,0x70,0xa2,0x68,0x47,0x73,0x50,0x2b,0x21,0x3b,0x51,0x2f,0x5e,0x5e,0x67,0x75,0x6b,0x71,0x5e,0x5e,0x73,0x69,0x04,0x47,0x1e,0x25,0x18,0x11,0x14,0x1e,0x32,0x4b,0x38,0x1b,0x22,0x18,0x11,0x14,0x1d,0x2e,0x44,0x32,0x27,0x49,0x3c,0x29,0x07, +0x14,0x5c,0x4d,0x26,0x41,0x32,0x21,0x06,0x09,0x2e,0x3f,0x4d,0x28,0x47,0x71,0x50,0x2b,0x5e,0xbc,0x01,0x1b,0xbd,0x7c,0xd2,0xaf,0x8d,0x36,0x4a,0xa0,0xb0,0xc1,0x6b,0x94,0xe0,0x96,0x4b,0x13,0x29,0x41,0x2e,0x21,0x36,0x25,0x15,0x96,0x3b,0x3d,0x3f,0x31,0x96,0x3d,0x00,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29, +0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1f,0x04,0x37,0xee,0x08,0x08,0x10,0x15,0x91,0x0f,0x0a,0x13,0x00,0x27,0x91,0x01,0x06,0x13,0x00,0x3f,0x33,0xed,0x32,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0xed,0x30,0x31,0x25,0x15,0x0e,0x03,0x23,0x22,0x27,0x06,0x23,0x22,0x2e,0x02,0x27,0x35,0x1e,0x03,0x17,0x2e,0x03,0x35,0x34,0x12, +0x36,0x36,0x33,0x32,0x1e,0x02,0x15,0x14,0x02,0x07,0x36,0x36,0x03,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x12,0x17,0x3e,0x03,0x05,0xe4,0x35,0x64,0x6d,0x7c,0x4c,0x82,0x72,0x6b,0x74,0x56,0x83,0x6f,0x63,0x34,0x2f,0x5a,0x5f,0x67,0x3c,0x5c,0x83,0x56,0x28,0x5d,0xaf,0xfa,0x9e,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x78, +0x40,0x7b,0xb1,0x70,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0xd8,0xb0,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0x01,0x04,0xb4,0x5e,0x5d,0xae,0xf8,0x9c,0xe2,0xfe,0xab,0x5d,0x04,0x2f,0x02,0x54,0x85,0xc8,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0xfe, +0xc7,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0xbb,0x00,0x34,0x00,0x26,0x40,0x13,0x0c,0x0a,0x91,0x1b,0x2d,0x1b,0x2d,0x15,0x00,0x91,0x25,0x13,0x10,0x91,0x15,0x15,0x18,0x13,0x04,0x00,0x3f,0x33,0x33,0x2f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0xed,0x39,0x30,0x31,0x25,0x32,0x3e,0x02,0x35,0x34, +0x2e,0x02,0x23,0x23,0x35,0x01,0x23,0x06,0x23,0x22,0x27,0x37,0x16,0x33,0x32,0x36,0x37,0x15,0x01,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x02,0x78,0x64,0x8a,0x54,0x25,0x2c,0x58,0x85,0x59,0xc5,0x01,0x64,0x03,0x77,0x76,0xaa,0xb7,0x2b,0x8d,0xce,0x67,0xff,0x81, +0xfe,0x76,0x03,0x8b,0xb9,0x6d,0x2d,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x7f,0x35,0x56,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x4b,0x01,0xdb,0x18,0x41,0x97,0x40,0x21,0x20,0x3f,0xfd,0xf0,0x02,0x07,0x53,0x7c,0x97,0x4b,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69, +0x48,0x25,0x00,0x01,0x00,0x64,0xff,0xe8,0x04,0x89,0x05,0x9a,0x00,0x44,0x00,0x2e,0x40,0x1a,0x3d,0x91,0x08,0x0f,0x36,0x91,0x33,0x00,0x33,0x10,0x33,0x02,0x08,0x33,0x21,0x21,0x33,0x08,0x03,0x00,0x29,0x91,0x19,0x13,0x00,0x03,0x00,0x3f,0x3f,0xed,0x12,0x17,0x39,0x2f,0x2f,0x2f,0x5d,0x10,0xed,0x39,0x10,0xed,0x30,0x31,0x01,0x33, +0x06,0x15,0x14,0x1e,0x02,0x33,0x21,0x15,0x14,0x0e,0x02,0x07,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x37,0x33,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23,0x23,0x35,0x33,0x32,0x3e,0x02,0x35,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x01,0x17,0xaf,0x09,0x1f,0x3d,0x5a,0x3b, +0x01,0x91,0x24,0x41,0x5d,0x39,0x43,0x76,0x59,0x33,0x5a,0x94,0xbf,0x66,0x75,0xc3,0x8c,0x4e,0x1e,0xb7,0x12,0x13,0x34,0x5f,0x83,0x4e,0x64,0x88,0x52,0x23,0x2a,0x56,0x83,0x59,0x70,0x6a,0x4f,0x6d,0x45,0x1f,0xfe,0x58,0x93,0x69,0x3b,0x06,0x05,0x9a,0x24,0x1b,0x23,0x29,0x15,0x05,0xda,0x2e,0x50,0x40,0x2c,0x09,0x08,0x3c,0x61,0x83, +0x4e,0x75,0xad,0x71,0x37,0x3f,0x72,0x9f,0x60,0x4d,0x57,0x22,0x5a,0x27,0x44,0x69,0x48,0x26,0x35,0x57,0x6e,0x39,0x3e,0x6a,0x4e,0x2d,0x97,0x1e,0x2e,0x38,0x1a,0x55,0x17,0x35,0x57,0x41,0x14,0x2c,0x00,0x03,0x00,0x6e,0xff,0xe8,0x04,0x29,0x05,0xb2,0x00,0x29,0x00,0x38,0x00,0x47,0x00,0x35,0x40,0x1c,0x24,0x2a,0x91,0x13,0x27,0x13, +0x01,0x39,0x91,0x12,0x28,0x12,0x2f,0x13,0x01,0x13,0x12,0x13,0x12,0x07,0x2e,0x91,0x1e,0x04,0x44,0x91,0x07,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x5d,0x11,0x33,0x10,0xed,0x32,0x11,0x33,0x10,0xed,0x32,0x30,0x31,0x01,0x23,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x23,0x22, +0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x01,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x13,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x04,0x29,0xad,0x35,0x63,0x8e,0x5a,0x54,0x91,0x6c,0x3d,0x3e,0x6f,0x9a,0x5c,0xc9,0xc9,0x5c,0x9a,0x6f,0x3e, +0x3d,0x6a,0x92,0x55,0x5a,0x8e,0x63,0x35,0xad,0xad,0xad,0xfe,0xb1,0x73,0x6b,0x2f,0x53,0x3e,0x24,0x25,0x42,0x5c,0x36,0xc9,0xc9,0x36,0x5c,0x42,0x25,0x24,0x3e,0x53,0x2f,0x68,0x76,0x01,0xe6,0x94,0x5a,0x88,0x5b,0x2d,0x29,0x52,0x7a,0x52,0x51,0x7c,0x55,0x2b,0xa2,0x2b,0x55,0x7c,0x51,0x52,0x7a,0x52,0x29,0x2e,0x5a,0x88,0x5a,0x94, +0x96,0xa2,0x01,0x38,0x94,0x69,0x6c,0x13,0x2a,0x44,0x31,0x2e,0x44,0x2e,0x17,0xfe,0x32,0x17,0x2e,0x45,0x2d,0x31,0x44,0x2a,0x13,0x6b,0x6a,0x00,0x00,0x03,0x00,0x6e,0xff,0xf1,0x05,0xd9,0x05,0xa7,0x00,0x1d,0x00,0x2a,0x00,0x37,0x00,0x2d,0x40,0x17,0x37,0x91,0x04,0x04,0x20,0x91,0x1d,0x2d,0x92,0x0e,0x0e,0x2a,0x92,0x13,0x1d,0x13, +0x1d,0x13,0x01,0x10,0x03,0x01,0x12,0x00,0x3f,0x3f,0x12,0x39,0x39,0x2f,0x2f,0x10,0xed,0x33,0x2f,0xed,0x10,0xed,0x33,0x2f,0xed,0x30,0x31,0x25,0x15,0x23,0x35,0x23,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x33,0x35,0x33,0x15,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x23,0x03,0x11,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x23, +0x03,0x11,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x03,0x78,0xa8,0x2b,0x7c,0xd0,0x97,0x54,0x54,0x97,0xd1,0x7d,0x29,0xa8,0x2a,0x7d,0xd0,0x96,0x54,0x55,0x97,0xcf,0x7a,0x2c,0x2c,0x5a,0x91,0x64,0x36,0x37,0x65,0x91,0x5a,0xd2,0x29,0x59,0x91,0x67,0x38,0x35,0x64,0x92,0x5c,0xba,0xc9,0xc9,0x54,0x96,0xd1,0x7d,0x7b,0xc9,0x8f, +0x4d,0x95,0x95,0x4f,0x8f,0xc8,0x7a,0x7e,0xd1,0x96,0x53,0x03,0xca,0xfc,0xcc,0x39,0x6b,0x9a,0x62,0x5b,0x95,0x6a,0x3a,0xfc,0xcc,0x03,0x34,0x39,0x69,0x96,0x5d,0x62,0x9b,0x6a,0x38,0x00,0x00,0x01,0x00,0x76,0xff,0xe8,0x04,0xc1,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x29,0x0a,0x1a,0x31,0x2b,0x91,0x36,0x13,0x15,0x0f,0x91,0x1a, +0x04,0x00,0x3f,0xed,0xcd,0x3f,0xed,0xcd,0x12,0x39,0x39,0x30,0x31,0x13,0x34,0x3e,0x02,0x37,0x3e,0x03,0x35,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x23,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x07,0x0e,0x03,0x15,0x10,0x21,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x76,0x4c,0x86,0xb8,0x6c, +0x49,0x81,0x62,0x39,0x28,0x4c,0x70,0x49,0x4c,0x76,0x50,0x29,0xaa,0x54,0x88,0xae,0x59,0x71,0xb0,0x79,0x3f,0x4c,0x85,0xb6,0x6a,0x46,0x82,0x65,0x3d,0x01,0x74,0x44,0x89,0x6f,0x46,0xab,0x60,0x9d,0xc7,0x67,0x6b,0xc5,0x96,0x5a,0x01,0x85,0x6f,0x92,0x5f,0x37,0x13,0x0c,0x25,0x3c,0x5b,0x43,0x33,0x52,0x3b,0x20,0x24,0x42,0x5c,0x38, +0x6f,0x99,0x5f,0x2b,0x35,0x63,0x8b,0x55,0x66,0x8d,0x60,0x3a,0x14,0x0d,0x24,0x3e,0x5e,0x47,0xfe,0xfa,0x1d,0x41,0x6a,0x4e,0x74,0xa3,0x67,0x2f,0x2a,0x60,0x9e,0x00,0x00,0x01,0x00,0xa0,0xff,0xe8,0x04,0xc3,0x05,0x9a,0x00,0x3d,0x00,0x1d,0x40,0x0e,0x3d,0x23,0x91,0x0e,0x38,0x38,0x16,0x2d,0x1d,0x03,0x05,0x91,0x16,0x13,0x00,0x3f, +0xed,0x3f,0x33,0x12,0x39,0x2f,0xce,0xed,0x39,0x30,0x31,0x01,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x11,0x33,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x27,0x33,0x1e,0x03,0x15,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x27,0x01,0x48, +0x2f,0x5a,0x85,0x57,0x58,0x86,0x5a,0x2e,0x16,0x0f,0xb6,0x10,0x0f,0x4a,0x87,0xbe,0x75,0x80,0xca,0x8b,0x4a,0xa8,0x36,0x5e,0x7f,0x49,0x30,0x68,0x57,0x39,0x08,0x0f,0x15,0x0d,0xb6,0x0b,0x13,0x0d,0x08,0x4d,0x80,0xa8,0x5a,0x30,0x63,0x5e,0x54,0x20,0x01,0xdc,0x53,0x82,0x5a,0x2f,0x2b,0x4b,0x68,0x3d,0x30,0x53,0x20,0x2a,0x53,0x27, +0x5a,0x9d,0x75,0x44,0x47,0x83,0xb7,0x71,0x03,0xc0,0xfe,0x42,0x75,0x57,0x33,0x19,0x44,0x78,0x5f,0x22,0x48,0x47,0x40,0x1a,0x1d,0x45,0x48,0x49,0x21,0x77,0xaa,0x6d,0x34,0x11,0x26,0x3a,0x2a,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x04,0xae,0x05,0xae,0x00,0x2f,0x00,0x3f,0x00,0x26,0x40,0x15,0x1e,0x03,0x35,0x91,0x11,0x00,0x40,0x09, +0x0d,0x48,0x00,0x00,0x16,0x3d,0x91,0x26,0x04,0x0b,0x91,0x16,0x13,0x00,0x3f,0xed,0x3f,0xed,0x12,0x39,0x2f,0x2b,0xce,0xed,0x39,0x39,0x30,0x31,0x01,0x22,0x26,0x27,0x06,0x06,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x33,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e, +0x02,0x15,0x14,0x0e,0x02,0x01,0x14,0x1e,0x02,0x33,0x32,0x36,0x35,0x34,0x2e,0x02,0x23,0x22,0x06,0x02,0x87,0x26,0x46,0x21,0x07,0x08,0x1a,0x2f,0x40,0x27,0x2f,0x47,0x2f,0x17,0xaf,0x35,0x60,0x86,0x50,0x51,0x82,0x5b,0x32,0x14,0x0c,0x73,0x70,0x4f,0x90,0xc9,0x7a,0x7a,0xc5,0x8a,0x4b,0x43,0x88,0xcf,0xfe,0x14,0x33,0x5b,0x7f,0x4d, +0xb8,0xc4,0x32,0x5f,0x89,0x58,0xb0,0xb4,0x01,0x7f,0x07,0x07,0x17,0x35,0x22,0x29,0x3d,0x28,0x13,0x17,0x27,0x36,0x1f,0x43,0x6e,0x4e,0x2a,0x2a,0x50,0x70,0x47,0x39,0x58,0x1f,0x45,0xed,0x97,0x7e,0xc8,0x8c,0x4a,0x4b,0x8a,0xc1,0x76,0x72,0xc8,0x94,0x55,0x02,0x19,0x60,0x91,0x60,0x31,0xcb,0xbb,0x59,0x8d,0x61,0x34,0xca,0x00,0x01, +0x00,0x82,0xff,0xd5,0x05,0x14,0x05,0xb2,0x00,0x24,0x00,0x22,0x40,0x10,0x03,0x22,0x00,0x24,0x12,0x24,0x12,0x24,0x01,0x18,0x91,0x0d,0x04,0x02,0x01,0x13,0x00,0x3f,0x33,0x3f,0xed,0x12,0x39,0x39,0x2f,0x2f,0x11,0x33,0x39,0x39,0x30,0x31,0x25,0x01,0x35,0x25,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e, +0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x33,0x25,0x04,0xd6,0xfc,0x21,0x01,0x73,0x71,0xb5,0x7e,0x44,0x59,0x9d,0xd8,0x7f,0x83,0xd6,0x99,0x53,0xaa,0x36,0x68,0x9a,0x63,0x65,0x9c,0x6b,0x37,0x4d,0x94,0xd5,0x89,0x01,0x01,0x6a,0xe5,0xfe,0xf0,0x9d,0x6b,0x20,0x75,0xa2,0xcd,0x78,0x84,0xdd,0x9f,0x59,0x50,0x96,0xd5,0x85, +0x5d,0x9d,0x70,0x3f,0x48,0x7e,0xaa,0x61,0x68,0xb8,0x92,0x65,0x15,0x65,0x00,0x01,0x00,0x62,0xff,0xe8,0x04,0xad,0x05,0xb2,0x00,0x3a,0x00,0x1b,0x40,0x0d,0x31,0x12,0x05,0x2c,0x91,0x26,0x21,0x04,0x10,0x91,0x0a,0x05,0x13,0x00,0x3f,0xcd,0xed,0x3f,0xcd,0xed,0x12,0x39,0x39,0x30,0x31,0x01,0x14,0x0e,0x02,0x23,0x22,0x2e,0x02,0x35, +0x33,0x14,0x1e,0x02,0x33,0x20,0x11,0x34,0x2e,0x02,0x27,0x2e,0x03,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x23,0x34,0x2e,0x02,0x23,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x17,0x1e,0x03,0x04,0xad,0x5a,0x96,0xc5,0x6b,0x67,0xc7,0x9d,0x60,0xab,0x46,0x6f,0x89,0x44,0x01,0x74,0x3d,0x65,0x82,0x46,0x6a,0xb6,0x85,0x4c,0x42,0x7b, +0xaf,0x6d,0x59,0xad,0x89,0x54,0xaa,0x29,0x50,0x76,0x4c,0x49,0x70,0x4d,0x27,0x39,0x61,0x82,0x49,0x6c,0xb8,0x86,0x4c,0x01,0x85,0x75,0x9e,0x60,0x2a,0x2f,0x67,0xa3,0x74,0x4e,0x6a,0x41,0x1d,0x01,0x06,0x47,0x5e,0x3e,0x24,0x0d,0x14,0x3a,0x60,0x8d,0x66,0x53,0x8b,0x63,0x37,0x2b,0x5f,0x99,0x6f,0x38,0x5c,0x42,0x24,0x20,0x3b,0x52, +0x33,0x43,0x5b,0x3c,0x25,0x0c,0x13,0x37,0x5f,0x92,0x00,0x02,0x00,0x64,0xff,0xe8,0x05,0xe4,0x05,0xb2,0x00,0x29,0x00,0x3b,0x00,0x26,0x40,0x14,0x2f,0x91,0x1e,0x13,0x0f,0x14,0x91,0x0e,0x09,0x04,0x37,0xee,0x07,0x07,0x29,0x26,0x91,0x00,0x05,0x04,0x00,0x3f,0x33,0xed,0x32,0x39,0x10,0xed,0x3f,0x33,0xed,0x32,0x3f,0xed,0x30,0x31, +0x13,0x3e,0x03,0x33,0x32,0x17,0x36,0x33,0x32,0x1e,0x02,0x17,0x15,0x2e,0x03,0x27,0x1e,0x03,0x15,0x14,0x02,0x06,0x06,0x23,0x22,0x2e,0x02,0x35,0x34,0x12,0x37,0x06,0x06,0x07,0x13,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x02,0x27,0x0e,0x03,0x64,0x34,0x65,0x6d,0x7c,0x4c,0x82,0x72,0x6a,0x75,0x55,0x84,0x6f,0x62,0x35,0x2f, +0x5a,0x5f,0x67,0x3c,0x5b,0x84,0x56,0x28,0x5d,0xaf,0xfb,0x9d,0x92,0xec,0xa7,0x5b,0xb9,0xba,0x72,0xc9,0x66,0xde,0x40,0x7b,0xb0,0x71,0x6e,0xb4,0x80,0x46,0xf7,0xe9,0x75,0xb4,0x7b,0x40,0x05,0x72,0x10,0x18,0x10,0x08,0x15,0x15,0x08,0x10,0x18,0x10,0xb5,0x12,0x1e,0x17,0x10,0x03,0x2d,0x82,0xa0,0xbc,0x68,0xa6,0xfe,0xfc,0xb4,0x5e, +0x5d,0xae,0xf8,0x9c,0xe2,0x01,0x55,0x5d,0x04,0x2f,0x26,0xfd,0xd2,0x86,0xc7,0x85,0x42,0x49,0x8b,0xc8,0x7e,0xf3,0x01,0x39,0x38,0x1b,0x6c,0x9d,0xcb,0x00,0x00,0x02,0x00,0x78,0xff,0xe8,0x05,0xbe,0x05,0xb2,0x00,0x13,0x00,0x27,0x00,0x10,0xb7,0x14,0x91,0x0a,0x04,0x1e,0x91,0x00,0x13,0x00,0x3f,0xed,0x3f,0xed,0x30,0x31,0x05,0x22, +0x26,0x26,0x02,0x35,0x34,0x12,0x36,0x24,0x33,0x32,0x16,0x16,0x12,0x15,0x14,0x02,0x06,0x06,0x03,0x22,0x0e,0x02,0x15,0x14,0x1e,0x02,0x33,0x32,0x3e,0x02,0x35,0x34,0x2e,0x02,0x03,0x15,0x98,0xf6,0xb0,0x5f,0x60,0xb4,0x01,0x01,0xa0,0x94,0xf2,0xac,0x5f,0x61,0xb2,0xfb,0x8f,0x72,0xbc,0x87,0x4a,0x48,0x83,0xb8,0x70,0x76,0xbd,0x85, +0x47,0x44,0x81,0xb9,0x18,0x6a,0xc0,0x01,0x0a,0xa0,0xac,0x01,0x18,0xc6,0x6c,0x6a,0xbe,0xfe,0xf5,0xa0,0xaf,0xfe,0xe7,0xc5,0x6a,0x05,0x32,0x56,0x9c,0xd9,0x84,0x83,0xd9,0x9b,0x55,0x4f,0x96,0xda,0x8a,0x8d,0xdd,0x98,0x50,0x00,0x00,0x03,0x00,0xbe,0x02,0x27,0x03,0x98,0x06,0x8f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x1a,0x40,0x09, +0x0b,0x09,0x09,0x02,0x05,0x07,0x07,0x00,0x02,0xb8,0x01,0x4a,0x00,0x3f,0xcd,0x33,0x2f,0xcd,0x11,0x33,0x2f,0xcd,0x30,0x31,0x01,0x23,0x11,0x33,0x01,0x23,0x11,0x33,0x05,0x23,0x11,0x33,0x01,0x67,0xa9,0xa9,0x02,0x31,0xa9,0xa9,0xfe,0xe8,0xa9,0xa9,0x02,0x27,0x02,0xa6,0xfd,0x5a,0x02,0xa6,0x67,0x02,0x29,0x00,0x00,0x00,0x00,0x01, +0x00,0x00,0xc2,0x66,0x00,0x01,0x20,0x64,0xc0,0x00,0x00,0x0d,0x02,0x58,0x00,0x05,0x00,0x55,0xff,0xcd,0x00,0x05,0x00,0x56,0xff,0xbe,0x00,0x05,0x00,0xe4,0xff,0xbe,0x00,0x05,0x00,0xfb,0xff,0xbe,0x00,0x05,0x01,0x1b,0xff,0xcd,0x00,0x05,0x01,0x1d,0xff,0xcd,0x00,0x05,0x01,0x1f,0xff,0xbe,0x00,0x05,0x01,0x73,0xff,0xcd,0x00,0x05, +0x01,0x75,0xff,0xbe,0x00,0x05,0x01,0xd5,0xff,0x6f,0x00,0x05,0x02,0x2b,0xff,0xbc,0x00,0x05,0x02,0x3e,0xff,0xbe,0x00,0x0a,0x00,0x55,0xff,0xcd,0x00,0x0a,0x00,0x56,0xff,0xbe,0x00,0x0a,0x00,0xe4,0xff,0xbe,0x00,0x0a,0x00,0xfb,0xff,0xbe,0x00,0x0a,0x01,0x1b,0xff,0xcd,0x00,0x0a,0x01,0x1d,0xff,0xcd,0x00,0x0a,0x01,0x1f,0xff,0xbe, +0x00,0x0a,0x01,0x73,0xff,0xcd,0x00,0x0a,0x01,0x75,0xff,0xbe,0x00,0x0a,0x01,0xd5,0xff,0x6f,0x00,0x0a,0x02,0x2b,0xff,0xbc,0x00,0x0a,0x02,0x3e,0xff,0xbe,0x00,0x0b,0x00,0x4d,0x00,0xe9,0x00,0x0b,0x01,0x64,0x00,0xe9,0x00,0x0d,0x00,0x24,0xff,0x5a,0x00,0x0d,0x00,0x2d,0xff,0x66,0x00,0x0d,0x00,0x46,0xff,0x9a,0x00,0x0d,0x00,0x47, +0xff,0x9a,0x00,0x0d,0x00,0x48,0xff,0x9a,0x00,0x0d,0x00,0x4a,0xff,0x9a,0x00,0x0d,0x00,0x52,0xff,0x9a,0x00,0x0d,0x00,0x54,0xff,0x9a,0x00,0x0d,0x00,0xa9,0xff,0x58,0x00,0x0d,0x00,0xf8,0xff,0x9a,0x00,0x0d,0x00,0xfd,0xff,0x9a,0x00,0x0d,0x00,0xff,0xff,0x9a,0x00,0x0d,0x01,0x00,0xff,0x9a,0x00,0x0d,0x01,0x03,0xff,0x5a,0x00,0x0d, +0x01,0x05,0xff,0x5a,0x00,0x0d,0x01,0x08,0xff,0x9a,0x00,0x0d,0x01,0x0b,0xff,0x9a,0x00,0x0d,0x01,0x45,0xff,0x5a,0x00,0x0d,0x01,0x48,0xff,0x9a,0x00,0x0d,0x01,0x52,0xff,0x9a,0x00,0x0d,0x01,0x54,0xff,0x9a,0x00,0x0d,0x01,0x56,0xff,0x9a,0x00,0x0d,0x01,0x63,0xff,0x66,0x00,0x0d,0x01,0x85,0xff,0x5a,0x00,0x0d,0x01,0x87,0xff,0x5a, +0x00,0x0d,0x01,0xa9,0xff,0x58,0x00,0x0d,0x01,0xb0,0xff,0x58,0x00,0x0d,0x01,0xe7,0xff,0x58,0x00,0x0d,0x02,0x0c,0xff,0x98,0x00,0x0d,0x02,0x15,0xff,0x98,0x00,0x0d,0x02,0x18,0xff,0x98,0x00,0x0d,0x02,0x1b,0xff,0x98,0x00,0x0d,0x02,0x27,0xff,0x98,0x00,0x0d,0x02,0x2a,0xff,0x98,0x00,0x0f,0x00,0xb4,0xff,0x31,0x00,0x0f,0x00,0xb5, +0xff,0x31,0x00,0x0f,0x00,0xb6,0xff,0x31,0x00,0x0f,0x00,0xb7,0xff,0x31,0x00,0x10,0x01,0x33,0xff,0xdb,0x00,0x10,0x01,0xd3,0xff,0xe7,0x00,0x10,0x02,0x37,0xff,0xdb,0x00,0x11,0x00,0xb4,0xff,0x31,0x00,0x11,0x00,0xb5,0xff,0x3d,0x00,0x11,0x00,0xb6,0xff,0x31,0x00,0x11,0x00,0xb7,0xff,0x3d,0x00,0x1e,0x02,0x37,0xff,0xdb,0x00,0x22, +0x01,0xcb,0xff,0xe7,0x00,0x22,0x02,0x37,0xff,0xdb,0x00,0x24,0x00,0x0d,0xff,0x7f,0x00,0x24,0x00,0x0f,0x00,0x44,0x00,0x24,0x00,0x1e,0x00,0x44,0x00,0x24,0x00,0x26,0xff,0xe5,0x00,0x24,0x00,0x2a,0xff,0xe5,0x00,0x24,0x00,0x2d,0x00,0x5e,0x00,0x24,0x00,0x32,0xff,0xe5,0x00,0x24,0x00,0x37,0xff,0x6d,0x00,0x24,0x00,0x38,0xff,0xe5, +0x00,0x24,0x00,0x39,0xff,0x8b,0x00,0x24,0x00,0x3a,0xff,0xb6,0x00,0x24,0x00,0x3c,0xff,0x64,0x00,0x24,0x00,0x3d,0x00,0x3b,0x00,0x24,0x00,0x57,0xff,0xe5,0x00,0x24,0x00,0x59,0xff,0xd5,0x00,0x24,0x00,0x5a,0xff,0xe5,0x00,0x24,0x00,0x5c,0xff,0xdb,0x00,0x24,0x00,0x8d,0xff,0x9a,0x00,0x24,0x00,0xb4,0xff,0x66,0x00,0x24,0x00,0xb5, +0xff,0x3f,0x00,0x24,0x00,0xb6,0xff,0x66,0x00,0x24,0x00,0xb7,0xff,0x3f,0x00,0x24,0x00,0xba,0xff,0xc1,0x00,0x24,0x00,0xbb,0xff,0x64,0x00,0x24,0x00,0xe5,0x00,0x3b,0x00,0x24,0x00,0xea,0xff,0x64,0x00,0x24,0x00,0xeb,0xff,0xdb,0x00,0x24,0x00,0xf7,0xff,0xe5,0x00,0x24,0x00,0xfc,0xff,0xe5,0x00,0x24,0x00,0xfe,0xff,0xe5,0x00,0x24, +0x01,0x18,0xff,0xe5,0x00,0x24,0x01,0x20,0xff,0x6d,0x00,0x24,0x01,0x21,0xff,0xe5,0x00,0x24,0x01,0x22,0xff,0x6d,0x00,0x24,0x01,0x23,0xff,0xe5,0x00,0x24,0x01,0x24,0xff,0xe5,0x00,0x24,0x01,0x26,0xff,0xe5,0x00,0x24,0x01,0x28,0x00,0x3b,0x00,0x24,0x01,0x2a,0x00,0x3b,0x00,0x24,0x01,0x47,0xff,0xe5,0x00,0x24,0x01,0x51,0xff,0xe5, +0x00,0x24,0x01,0x53,0xff,0xe5,0x00,0x24,0x01,0x55,0xff,0xe5,0x00,0x24,0x01,0x63,0x00,0x5e,0x00,0x24,0x01,0x6e,0xff,0xe5,0x00,0x24,0x01,0x70,0xff,0xe5,0x00,0x24,0x01,0x76,0xff,0x6d,0x00,0x24,0x01,0x77,0xff,0xe5,0x00,0x24,0x01,0x78,0xff,0xe5,0x00,0x24,0x01,0x7a,0xff,0xe5,0x00,0x24,0x01,0x7c,0xff,0xe5,0x00,0x24,0x01,0x7e, +0xff,0xe5,0x00,0x24,0x01,0x80,0xff,0xb6,0x00,0x24,0x01,0x81,0xff,0xe5,0x00,0x24,0x01,0x82,0xff,0x64,0x00,0x24,0x01,0x83,0xff,0xdb,0x00,0x24,0x01,0x89,0xff,0xe5,0x00,0x24,0x01,0x8c,0xff,0xb6,0x00,0x24,0x01,0x8d,0xff,0xe5,0x00,0x24,0x01,0x8e,0xff,0xb6,0x00,0x24,0x01,0x8f,0xff,0xe5,0x00,0x24,0x01,0x90,0xff,0xb6,0x00,0x24, +0x01,0x91,0xff,0xe5,0x00,0x24,0x01,0x92,0xff,0x64,0x00,0x24,0x01,0x93,0xff,0xdb,0x00,0x25,0x00,0x37,0xff,0xa4,0x00,0x25,0x00,0x3c,0xff,0xbe,0x00,0x25,0x00,0xbb,0xff,0xbe,0x00,0x25,0x00,0xc4,0xff,0xb2,0x00,0x25,0x00,0xc5,0xff,0xb2,0x00,0x25,0x00,0xea,0xff,0xbe,0x00,0x25,0x01,0x20,0xff,0xa4,0x00,0x25,0x01,0x22,0xff,0xa4, +0x00,0x25,0x01,0x76,0xff,0xa4,0x00,0x25,0x01,0x82,0xff,0xbe,0x00,0x25,0x01,0x92,0xff,0xbe,0x00,0x26,0x00,0x22,0x00,0x02,0x00,0x26,0x00,0x26,0xff,0xc9,0x00,0x26,0x00,0x2a,0xff,0xc9,0x00,0x26,0x00,0x32,0xff,0xe5,0x00,0x26,0x00,0x34,0xff,0xc9,0x00,0x26,0x00,0x64,0xff,0xc9,0x00,0x26,0x00,0x67,0xff,0xc9,0x00,0x26,0x00,0x77, +0x00,0x1d,0x00,0x26,0x00,0x92,0xff,0xc9,0x00,0x26,0x00,0xaa,0xff,0xcf,0x00,0x26,0x00,0xaf,0xff,0xc9,0x00,0x26,0x00,0xb0,0xff,0xc9,0x00,0x26,0x00,0xbe,0xff,0xcf,0x00,0x26,0x00,0xd0,0xff,0xc9,0x00,0x26,0x00,0xd1,0xff,0xc9,0x00,0x26,0x00,0xd2,0xff,0xc9,0x00,0x26,0x00,0xf7,0xff,0xc9,0x00,0x26,0x00,0xfc,0xff,0xc9,0x00,0x26, +0x00,0xfe,0xff,0xc9,0x00,0x26,0x01,0x18,0xff,0xe5,0x00,0x26,0x01,0x47,0xff,0xc9,0x00,0x26,0x01,0x51,0xff,0xc9,0x00,0x26,0x01,0x53,0xff,0xc9,0x00,0x26,0x01,0x55,0xff,0xc9,0x00,0x26,0x01,0x5c,0x00,0x1d,0x00,0x26,0x01,0x5e,0x00,0x1d,0x00,0x26,0x01,0x60,0x00,0x1d,0x00,0x26,0x01,0x6e,0xff,0xe5,0x00,0x26,0x01,0x70,0xff,0xe5, +0x00,0x26,0x01,0x89,0xff,0xe5,0x00,0x27,0x00,0x0f,0xff,0x7f,0x00,0x27,0x00,0x11,0xff,0x7f,0x00,0x27,0x00,0x24,0xff,0xdf,0x00,0x27,0x00,0x37,0xff,0xa4,0x00,0x27,0x00,0x3b,0xff,0xcb,0x00,0x27,0x00,0x3d,0xff,0xcf,0x00,0x27,0x00,0x62,0xff,0xdf,0x00,0x27,0x00,0x63,0xff,0xdf,0x00,0x27,0x00,0x91,0xff,0xb6,0x00,0x27,0x00,0xac, +0xff,0x7f,0x00,0x27,0x00,0xad,0xff,0xdf,0x00,0x27,0x00,0xae,0xff,0xdf,0x00,0x27,0x00,0xbb,0xff,0xf6,0x00,0x27,0x00,0xc4,0xff,0x8b,0x00,0x27,0x00,0xc5,0xff,0x8b,0x00,0x27,0x00,0xc7,0xff,0xdf,0x00,0x27,0x00,0xc9,0xff,0xdf,0x00,0x27,0x00,0xe5,0xff,0xcf,0x00,0x27,0x01,0x03,0xff,0xdf,0x00,0x27,0x01,0x05,0xff,0xdf,0x00,0x27, +0x01,0x20,0xff,0xa4,0x00,0x27,0x01,0x22,0xff,0xa4,0x00,0x27,0x01,0x28,0xff,0xcf,0x00,0x27,0x01,0x2a,0xff,0xcf,0x00,0x27,0x01,0x45,0xff,0xdf,0x00,0x27,0x01,0x76,0xff,0xa4,0x00,0x27,0x01,0x85,0xff,0xdf,0x00,0x27,0x01,0x87,0xff,0xdf,0x00,0x28,0x00,0x24,0x00,0x0a,0x00,0x28,0x00,0x2d,0x00,0x44,0x00,0x28,0x00,0x37,0x00,0x04, +0x00,0x28,0x00,0x3a,0x00,0x1d,0x00,0x28,0x00,0x3b,0x00,0x08,0x00,0x28,0x00,0x62,0x00,0x0a,0x00,0x28,0x00,0x63,0x00,0x0a,0x00,0x28,0x00,0x77,0x00,0x12,0x00,0x28,0x00,0xad,0x00,0x0a,0x00,0x28,0x00,0xae,0x00,0x0a,0x00,0x28,0x00,0xc7,0x00,0x0a,0x00,0x28,0x00,0xc9,0x00,0x0a,0x00,0x28,0x01,0x03,0x00,0x0a,0x00,0x28,0x01,0x05, +0x00,0x0a,0x00,0x28,0x01,0x20,0x00,0x04,0x00,0x28,0x01,0x22,0x00,0x04,0x00,0x28,0x01,0x45,0x00,0x0a,0x00,0x28,0x01,0x5c,0x00,0x12,0x00,0x28,0x01,0x5e,0x00,0x12,0x00,0x28,0x01,0x60,0x00,0x12,0x00,0x28,0x01,0x63,0x00,0x44,0x00,0x28,0x01,0x76,0x00,0x04,0x00,0x28,0x01,0x80,0x00,0x1d,0x00,0x28,0x01,0x85,0x00,0x0a,0x00,0x28, +0x01,0x87,0x00,0x0a,0x00,0x28,0x01,0x8c,0x00,0x1d,0x00,0x28,0x01,0x8e,0x00,0x1d,0x00,0x28,0x01,0x90,0x00,0x1d,0x00,0x29,0x00,0x0f,0xff,0x66,0x00,0x29,0x00,0x11,0xff,0x66,0x00,0x29,0x00,0x24,0xff,0x7b,0x00,0x29,0x00,0x2d,0xff,0xbe,0x00,0x29,0x00,0x36,0xff,0xe5,0x00,0x29,0x00,0x37,0x00,0x0e,0x00,0x29,0x00,0x44,0xff,0xb4, +0x00,0x29,0x00,0x49,0x00,0x0a,0x00,0x29,0x00,0x62,0xff,0x7b,0x00,0x29,0x00,0x63,0xff,0x7b,0x00,0x29,0x00,0x77,0x00,0x27,0x00,0x29,0x00,0x91,0xff,0x4c,0x00,0x29,0x00,0xac,0xff,0x66,0x00,0x29,0x00,0xad,0xff,0x7b,0x00,0x29,0x00,0xae,0xff,0x7b,0x00,0x29,0x00,0xc4,0xff,0x4a,0x00,0x29,0x00,0xc5,0xff,0x4a,0x00,0x29,0x00,0xc7, +0xff,0x7b,0x00,0x29,0x00,0xc9,0xff,0x7b,0x00,0x29,0x00,0xe3,0xff,0xe5,0x00,0x29,0x00,0xfa,0xff,0xe5,0x00,0x29,0x01,0x03,0xff,0x7b,0x00,0x29,0x01,0x05,0xff,0x7b,0x00,0x29,0x01,0x06,0xff,0xb4,0x00,0x29,0x01,0x1e,0xff,0xe5,0x00,0x29,0x01,0x20,0x00,0x0e,0x00,0x29,0x01,0x22,0x00,0x0e,0x00,0x29,0x01,0x45,0xff,0x7b,0x00,0x29, +0x01,0x5c,0x00,0x27,0x00,0x29,0x01,0x5e,0x00,0x27,0x00,0x29,0x01,0x60,0x00,0x27,0x00,0x29,0x01,0x63,0xff,0xbe,0x00,0x29,0x01,0x74,0xff,0xe5,0x00,0x29,0x01,0x76,0x00,0x0e,0x00,0x29,0x01,0x85,0xff,0x7b,0x00,0x29,0x01,0x87,0xff,0x7b,0x00,0x29,0x01,0x88,0xff,0xb4,0x00,0x29,0x02,0x3d,0xff,0xe5,0x00,0x2a,0x00,0x37,0xff,0xcf, +0x00,0x2a,0x00,0x39,0xff,0xe5,0x00,0x2a,0x00,0x5c,0xff,0xe5,0x00,0x2a,0x00,0xba,0xff,0xe5,0x00,0x2a,0x00,0xeb,0xff,0xe5,0x00,0x2a,0x01,0x20,0xff,0xcf,0x00,0x2a,0x01,0x22,0xff,0xcf,0x00,0x2a,0x01,0x76,0xff,0xcf,0x00,0x2a,0x01,0x83,0xff,0xe5,0x00,0x2a,0x01,0x93,0xff,0xe5,0x00,0x2d,0x00,0x0f,0xff,0x9a,0x00,0x2d,0x00,0x11, +0xff,0x9a,0x00,0x2d,0x00,0x24,0xff,0xdb,0x00,0x2d,0x00,0x2d,0xff,0xbe,0x00,0x2d,0x00,0x44,0xff,0xe5,0x00,0x2d,0x00,0x62,0xff,0xdb,0x00,0x2d,0x00,0x63,0xff,0xdb,0x00,0x2d,0x00,0x69,0xff,0xe5,0x00,0x2d,0x00,0x6a,0xff,0xe5,0x00,0x2d,0x00,0x6b,0xff,0xe5,0x00,0x2d,0x00,0x6c,0xff,0xe5,0x00,0x2d,0x00,0x6d,0xff,0xe5,0x00,0x2d, +0x00,0x6e,0xff,0xe5,0x00,0x2d,0x00,0x91,0xff,0x98,0x00,0x2d,0x00,0xa0,0xff,0xe5,0x00,0x2d,0x00,0xac,0xff,0x9a,0x00,0x2d,0x00,0xad,0xff,0xdb,0x00,0x2d,0x00,0xae,0xff,0xdb,0x00,0x2d,0x00,0xc4,0xff,0x66,0x00,0x2d,0x00,0xc5,0xff,0x9a,0x00,0x2d,0x00,0xc7,0xff,0xdb,0x00,0x2d,0x00,0xc9,0xff,0xdb,0x00,0x2d,0x01,0x03,0xff,0xdb, +0x00,0x2d,0x01,0x04,0xff,0xe5,0x00,0x2d,0x01,0x05,0xff,0xdb,0x00,0x2d,0x01,0x06,0xff,0xe5,0x00,0x2d,0x01,0x45,0xff,0xdb,0x00,0x2d,0x01,0x46,0xff,0xe5,0x00,0x2d,0x01,0x63,0xff,0xbe,0x00,0x2d,0x01,0x85,0xff,0xdb,0x00,0x2d,0x01,0x86,0xff,0xe5,0x00,0x2d,0x01,0x87,0xff,0xdb,0x00,0x2d,0x01,0x88,0xff,0xe5,0x00,0x2e,0x00,0x0f, +0x00,0x27,0x00,0x2e,0x00,0x1e,0x00,0x27,0x00,0x2e,0x00,0x26,0xff,0xa6,0x00,0x2e,0x00,0x2a,0xff,0xa6,0x00,0x2e,0x00,0x2d,0x00,0x5a,0x00,0x2e,0x00,0x32,0xff,0xa6,0x00,0x2e,0x00,0x34,0xff,0xa6,0x00,0x2e,0x00,0x3b,0x00,0x25,0x00,0x2e,0x00,0x3d,0x00,0x27,0x00,0x2e,0x00,0x46,0xff,0xe5,0x00,0x2e,0x00,0x47,0xff,0xe5,0x00,0x2e, +0x00,0x48,0xff,0xe5,0x00,0x2e,0x00,0x4a,0xff,0xe5,0x00,0x2e,0x00,0x52,0xff,0xe5,0x00,0x2e,0x00,0x54,0xff,0xe5,0x00,0x2e,0x00,0x57,0xff,0xd1,0x00,0x2e,0x00,0x59,0xff,0xb6,0x00,0x2e,0x00,0x5a,0xff,0xcb,0x00,0x2e,0x00,0x5c,0xff,0xa4,0x00,0x2e,0x00,0x64,0xff,0x9a,0x00,0x2e,0x00,0x67,0xff,0xa6,0x00,0x2e,0x00,0x6f,0xff,0xe5, +0x00,0x2e,0x00,0x70,0xff,0xe5,0x00,0x2e,0x00,0x71,0xff,0xe5,0x00,0x2e,0x00,0x72,0xff,0xe5,0x00,0x2e,0x00,0x73,0xff,0xe5,0x00,0x2e,0x00,0x74,0xff,0xcf,0x00,0x2e,0x00,0x77,0x00,0x27,0x00,0x2e,0x00,0x79,0xff,0xe5,0x00,0x2e,0x00,0x7a,0xff,0xe5,0x00,0x2e,0x00,0x7b,0xff,0xe5,0x00,0x2e,0x00,0x7c,0xff,0xe5,0x00,0x2e,0x00,0x7d, +0xff,0xe5,0x00,0x2e,0x00,0x92,0xff,0xa6,0x00,0x2e,0x00,0xaf,0xff,0xa6,0x00,0x2e,0x00,0xb0,0xff,0xa6,0x00,0x2e,0x00,0xb1,0xff,0xe5,0x00,0x2e,0x00,0xba,0xff,0xa4,0x00,0x2e,0x00,0xc4,0x00,0x44,0x00,0x2e,0x00,0xc5,0x00,0x44,0x00,0x2e,0x00,0xd0,0xff,0xa6,0x00,0x2e,0x00,0xd1,0xff,0xa6,0x00,0x2e,0x00,0xd2,0xff,0xa6,0x00,0x2e, +0x00,0xe5,0x00,0x27,0x00,0x2e,0x00,0xeb,0xff,0xa4,0x00,0x2e,0x00,0xf7,0xff,0xa6,0x00,0x2e,0x00,0xf8,0xff,0xe5,0x00,0x2e,0x00,0xfc,0xff,0xa6,0x00,0x2e,0x00,0xfd,0xff,0xe5,0x00,0x2e,0x00,0xfe,0xff,0xa6,0x00,0x2e,0x00,0xff,0xff,0xe5,0x00,0x2e,0x01,0x00,0xff,0xe5,0x00,0x2e,0x01,0x08,0xff,0xe5,0x00,0x2e,0x01,0x0b,0xff,0xe5, +0x00,0x2e,0x01,0x0d,0xff,0xe5,0x00,0x2e,0x01,0x18,0xff,0xa6,0x00,0x2e,0x01,0x19,0xff,0xe5,0x00,0x2e,0x01,0x21,0xff,0xd1,0x00,0x2e,0x01,0x23,0xff,0xd1,0x00,0x2e,0x01,0x28,0x00,0x27,0x00,0x2e,0x01,0x2a,0x00,0x27,0x00,0x2e,0x01,0x47,0xff,0xa6,0x00,0x2e,0x01,0x48,0xff,0xe5,0x00,0x2e,0x01,0x4c,0xff,0xe5,0x00,0x2e,0x01,0x4e, +0xff,0xe5,0x00,0x2e,0x01,0x50,0xff,0xe5,0x00,0x2e,0x01,0x51,0xff,0xa6,0x00,0x2e,0x01,0x52,0xff,0xe5,0x00,0x2e,0x01,0x53,0xff,0xa6,0x00,0x2e,0x01,0x54,0xff,0xe5,0x00,0x2e,0x01,0x55,0xff,0xa6,0x00,0x2e,0x01,0x56,0xff,0xe5,0x00,0x2e,0x01,0x5c,0x00,0x27,0x00,0x2e,0x01,0x5e,0x00,0x27,0x00,0x2e,0x01,0x60,0x00,0x27,0x00,0x2e, +0x01,0x63,0x00,0x5a,0x00,0x2e,0x01,0x6e,0xff,0xa6,0x00,0x2e,0x01,0x6f,0xff,0xe5,0x00,0x2e,0x01,0x70,0xff,0xa6,0x00,0x2e,0x01,0x71,0xff,0xe5,0x00,0x2e,0x01,0x77,0xff,0xd1,0x00,0x2e,0x01,0x81,0xff,0xcb,0x00,0x2e,0x01,0x83,0xff,0xa4,0x00,0x2e,0x01,0x89,0xff,0xa6,0x00,0x2e,0x01,0x8a,0xff,0xe5,0x00,0x2e,0x01,0x8d,0xff,0xcb, +0x00,0x2e,0x01,0x8f,0xff,0xcb,0x00,0x2e,0x01,0x91,0xff,0xcb,0x00,0x2e,0x01,0x93,0xff,0xa4,0x00,0x2f,0x00,0x0d,0xff,0x31,0x00,0x2f,0x00,0x22,0xff,0x9a,0x00,0x2f,0x00,0x24,0x00,0x3b,0x00,0x2f,0x00,0x26,0xff,0xbe,0x00,0x2f,0x00,0x2a,0xff,0xbe,0x00,0x2f,0x00,0x2d,0x00,0x64,0x00,0x2f,0x00,0x32,0xff,0xba,0x00,0x2f,0x00,0x34, +0xff,0xba,0x00,0x2f,0x00,0x37,0xff,0x8f,0x00,0x2f,0x00,0x38,0xff,0xe3,0x00,0x2f,0x00,0x39,0xff,0x8b,0x00,0x2f,0x00,0x3a,0xff,0xcf,0x00,0x2f,0x00,0x3c,0xff,0x7f,0x00,0x2f,0x00,0x3d,0x00,0x3b,0x00,0x2f,0x00,0x57,0xff,0xe5,0x00,0x2f,0x00,0x59,0xff,0x9a,0x00,0x2f,0x00,0x5a,0xff,0xbe,0x00,0x2f,0x00,0x5c,0xff,0xb4,0x00,0x2f, +0x00,0x64,0xff,0xbe,0x00,0x2f,0x00,0x67,0xff,0xba,0x00,0x2f,0x00,0x68,0xff,0xe3,0x00,0x2f,0x00,0x8d,0xff,0x9a,0x00,0x2f,0x00,0x92,0xff,0xba,0x00,0x2f,0x00,0xaf,0xff,0xba,0x00,0x2f,0x00,0xb0,0xff,0xba,0x00,0x2f,0x00,0xb4,0xff,0x73,0x00,0x2f,0x00,0xb5,0xff,0x8b,0x00,0x2f,0x00,0xb6,0xff,0x73,0x00,0x2f,0x00,0xb7,0xff,0x7f, +0x00,0x2f,0x00,0xba,0xff,0xb4,0x00,0x2f,0x00,0xbb,0xff,0x9a,0x00,0x2f,0x00,0xc4,0x00,0x44,0x00,0x2f,0x00,0xc5,0x00,0x44,0x00,0x2f,0x00,0xd0,0xff,0xba,0x00,0x2f,0x00,0xd1,0xff,0xba,0x00,0x2f,0x00,0xd2,0xff,0xba,0x00,0x2f,0x00,0xd3,0xff,0xe3,0x00,0x2f,0x00,0xd4,0xff,0xe3,0x00,0x2f,0x00,0xd5,0xff,0xe3,0x00,0x2f,0x00,0xe5, +0x00,0x3b,0x00,0x2f,0x00,0xea,0xff,0x7f,0x00,0x2f,0x00,0xeb,0xff,0xb4,0x00,0x2f,0x00,0xf7,0xff,0xbe,0x00,0x2f,0x00,0xfc,0xff,0xbe,0x00,0x2f,0x00,0xfe,0xff,0xbe,0x00,0x2f,0x01,0x03,0x00,0x3b,0x00,0x2f,0x01,0x05,0x00,0x3b,0x00,0x2f,0x01,0x18,0xff,0xba,0x00,0x2f,0x01,0x20,0xff,0x8f,0x00,0x2f,0x01,0x21,0xff,0xe5,0x00,0x2f, +0x01,0x22,0xff,0x8f,0x00,0x2f,0x01,0x23,0xff,0xe5,0x00,0x2f,0x01,0x24,0xff,0xe3,0x00,0x2f,0x01,0x26,0xff,0xe3,0x00,0x2f,0x01,0x28,0x00,0x3b,0x00,0x2f,0x01,0x2a,0x00,0x3b,0x00,0x2f,0x01,0x45,0x00,0x3b,0x00,0x2f,0x01,0x47,0xff,0xbe,0x00,0x2f,0x01,0x51,0xff,0xbe,0x00,0x2f,0x01,0x53,0xff,0xbe,0x00,0x2f,0x01,0x55,0xff,0xbe, +0x00,0x2f,0x01,0x63,0x00,0x64,0x00,0x2f,0x01,0x6e,0xff,0xba,0x00,0x2f,0x01,0x70,0xff,0xba,0x00,0x2f,0x01,0x76,0xff,0x8f,0x00,0x2f,0x01,0x77,0xff,0xe5,0x00,0x2f,0x01,0x78,0xff,0xe3,0x00,0x2f,0x01,0x7a,0xff,0xe3,0x00,0x2f,0x01,0x7c,0xff,0xe3,0x00,0x2f,0x01,0x7e,0xff,0xe3,0x00,0x2f,0x01,0x80,0xff,0xcf,0x00,0x2f,0x01,0x81, +0xff,0xbe,0x00,0x2f,0x01,0x82,0xff,0x7f,0x00,0x2f,0x01,0x83,0xff,0xb4,0x00,0x2f,0x01,0x85,0x00,0x3b,0x00,0x2f,0x01,0x87,0x00,0x3b,0x00,0x2f,0x01,0x89,0xff,0xba,0x00,0x2f,0x01,0x8c,0xff,0xcf,0x00,0x2f,0x01,0x8d,0xff,0xbe,0x00,0x2f,0x01,0x8e,0xff,0xcf,0x00,0x2f,0x01,0x8f,0xff,0xbe,0x00,0x2f,0x01,0x90,0xff,0xcf,0x00,0x2f, +0x01,0x91,0xff,0xbe,0x00,0x2f,0x01,0x92,0xff,0x7f,0x00,0x2f,0x01,0x93,0xff,0xb4,0x00,0x32,0x00,0x0f,0xff,0xa4,0x00,0x32,0x00,0x11,0xff,0xa4,0x00,0x32,0x00,0x24,0xff,0xe5,0x00,0x32,0x00,0x2d,0xff,0xf6,0x00,0x32,0x00,0x37,0xff,0xa4,0x00,0x32,0x00,0x3b,0xff,0xdb,0x00,0x32,0x00,0x3c,0xff,0xe7,0x00,0x32,0x00,0x3d,0xff,0xcf, +0x00,0x32,0x00,0x62,0xff,0xe5,0x00,0x32,0x00,0x63,0xff,0xe5,0x00,0x32,0x00,0xac,0xff,0xa4,0x00,0x32,0x00,0xad,0xff,0xe5,0x00,0x32,0x00,0xae,0xff,0xe5,0x00,0x32,0x00,0xbb,0xff,0xf6,0x00,0x32,0x00,0xc4,0xff,0x4c,0x00,0x32,0x00,0xc5,0xff,0x98,0x00,0x32,0x00,0xc7,0xff,0xe5,0x00,0x32,0x00,0xc9,0xff,0xe5,0x00,0x32,0x00,0xe5, +0xff,0xcf,0x00,0x32,0x00,0xea,0xff,0xe7,0x00,0x32,0x01,0x03,0xff,0xe5,0x00,0x32,0x01,0x05,0xff,0xe5,0x00,0x32,0x01,0x20,0xff,0xa4,0x00,0x32,0x01,0x22,0xff,0xa4,0x00,0x32,0x01,0x28,0xff,0xcf,0x00,0x32,0x01,0x2a,0xff,0xcf,0x00,0x32,0x01,0x45,0xff,0xe5,0x00,0x32,0x01,0x63,0xff,0xf6,0x00,0x32,0x01,0x76,0xff,0xa4,0x00,0x32, +0x01,0x82,0xff,0xe7,0x00,0x32,0x01,0x85,0xff,0xe5,0x00,0x32,0x01,0x87,0xff,0xe5,0x00,0x32,0x01,0x92,0xff,0xe7,0x00,0x33,0x00,0x0f,0xfe,0xba,0x00,0x33,0x00,0x11,0xfe,0xba,0x00,0x33,0x00,0x24,0xff,0x62,0x00,0x33,0x00,0x2a,0xff,0xf6,0x00,0x33,0x00,0x2d,0xff,0x7f,0x00,0x33,0x00,0x3a,0x00,0x27,0x00,0x33,0x00,0x3b,0xff,0xc3, +0x00,0x33,0x00,0x44,0xff,0xbe,0x00,0x33,0x00,0x46,0xff,0xb4,0x00,0x33,0x00,0x47,0xff,0xb4,0x00,0x33,0x00,0x48,0xff,0xb4,0x00,0x33,0x00,0x4a,0xff,0xb4,0x00,0x33,0x00,0x52,0xff,0xb4,0x00,0x33,0x00,0x54,0xff,0xb6,0x00,0x33,0x00,0x62,0xff,0x62,0x00,0x33,0x00,0x63,0xff,0x62,0x00,0x33,0x00,0x69,0xff,0xbe,0x00,0x33,0x00,0x6a, +0xff,0xbe,0x00,0x33,0x00,0x6b,0xff,0xbe,0x00,0x33,0x00,0x6c,0xff,0xbe,0x00,0x33,0x00,0x6d,0xff,0xbe,0x00,0x33,0x00,0x6e,0xff,0xbe,0x00,0x33,0x00,0x6f,0xff,0xb4,0x00,0x33,0x00,0x70,0xff,0xb4,0x00,0x33,0x00,0x71,0xff,0xb4,0x00,0x33,0x00,0x72,0xff,0xb4,0x00,0x33,0x00,0x73,0xff,0xb4,0x00,0x33,0x00,0x79,0xff,0xb4,0x00,0x33, +0x00,0x7a,0xff,0xb4,0x00,0x33,0x00,0x7b,0xff,0xb4,0x00,0x33,0x00,0x7c,0xff,0xb4,0x00,0x33,0x00,0x7d,0xff,0xb4,0x00,0x33,0x00,0x91,0xfe,0xe9,0x00,0x33,0x00,0xa0,0xff,0xbe,0x00,0x33,0x00,0xac,0xfe,0xba,0x00,0x33,0x00,0xad,0xff,0x62,0x00,0x33,0x00,0xae,0xff,0x62,0x00,0x33,0x00,0xb1,0xff,0xb4,0x00,0x33,0x00,0xc4,0xfe,0xba, +0x00,0x33,0x00,0xc5,0xfe,0xae,0x00,0x33,0x00,0xc7,0xff,0x62,0x00,0x33,0x00,0xc9,0xff,0x62,0x00,0x33,0x00,0xf7,0xff,0xf6,0x00,0x33,0x00,0xf8,0xff,0xb4,0x00,0x33,0x00,0xfd,0xff,0xb4,0x00,0x33,0x00,0xff,0xff,0xb4,0x00,0x33,0x01,0x00,0xff,0xb4,0x00,0x33,0x01,0x03,0xff,0x62,0x00,0x33,0x01,0x04,0xff,0xbe,0x00,0x33,0x01,0x05, +0xff,0x62,0x00,0x33,0x01,0x06,0xff,0xbe,0x00,0x33,0x01,0x08,0xff,0xb4,0x00,0x33,0x01,0x0b,0xff,0xb4,0x00,0x33,0x01,0x0d,0xff,0xb4,0x00,0x33,0x01,0x19,0xff,0xb4,0x00,0x33,0x01,0x45,0xff,0x62,0x00,0x33,0x01,0x46,0xff,0xbe,0x00,0x33,0x01,0x48,0xff,0xb4,0x00,0x33,0x01,0x4c,0xff,0xb4,0x00,0x33,0x01,0x4e,0xff,0xb4,0x00,0x33, +0x01,0x50,0xff,0xb4,0x00,0x33,0x01,0x51,0xff,0xf6,0x00,0x33,0x01,0x52,0xff,0xb4,0x00,0x33,0x01,0x53,0xff,0xf6,0x00,0x33,0x01,0x54,0xff,0xb4,0x00,0x33,0x01,0x55,0xff,0xf6,0x00,0x33,0x01,0x56,0xff,0xb4,0x00,0x33,0x01,0x63,0xff,0x7f,0x00,0x33,0x01,0x6f,0xff,0xb4,0x00,0x33,0x01,0x71,0xff,0xb4,0x00,0x33,0x01,0x80,0x00,0x27, +0x00,0x33,0x01,0x85,0xff,0x62,0x00,0x33,0x01,0x86,0xff,0xbe,0x00,0x33,0x01,0x87,0xff,0x62,0x00,0x33,0x01,0x88,0xff,0xbe,0x00,0x33,0x01,0x8a,0xff,0xb4,0x00,0x33,0x01,0x8c,0x00,0x27,0x00,0x33,0x01,0x8e,0x00,0x27,0x00,0x33,0x01,0x90,0x00,0x27,0x00,0x34,0x00,0x0f,0xff,0xa4,0x00,0x34,0x00,0x11,0xff,0x7f,0x00,0x34,0x00,0x24, +0xff,0xe5,0x00,0x34,0x00,0x37,0xff,0xa4,0x00,0x34,0x00,0x3b,0xff,0xdb,0x00,0x34,0x00,0x3c,0xff,0xf6,0x00,0x34,0x00,0x3d,0xff,0xcf,0x00,0x34,0x00,0x62,0xff,0xe5,0x00,0x34,0x00,0x63,0xff,0xe5,0x00,0x34,0x00,0xac,0xff,0x7f,0x00,0x34,0x00,0xad,0xff,0xe5,0x00,0x34,0x00,0xae,0xff,0xe5,0x00,0x34,0x00,0xbb,0xff,0xf6,0x00,0x34, +0x00,0xc4,0xff,0x98,0x00,0x34,0x00,0xc5,0xff,0x98,0x00,0x34,0x00,0xc7,0xff,0xe5,0x00,0x34,0x00,0xc9,0xff,0xe5,0x00,0x34,0x00,0xe5,0xff,0xcf,0x00,0x34,0x00,0xea,0xff,0xf6,0x00,0x34,0x01,0x03,0xff,0xe5,0x00,0x34,0x01,0x05,0xff,0xe5,0x00,0x34,0x01,0x20,0xff,0xa4,0x00,0x34,0x01,0x22,0xff,0xa4,0x00,0x34,0x01,0x28,0xff,0xcf, +0x00,0x34,0x01,0x2a,0xff,0xcf,0x00,0x34,0x01,0x45,0xff,0xe5,0x00,0x34,0x01,0x76,0xff,0xa4,0x00,0x34,0x01,0x82,0xff,0xf6,0x00,0x34,0x01,0x85,0xff,0xe5,0x00,0x34,0x01,0x87,0xff,0xe5,0x00,0x34,0x01,0x92,0xff,0xf6,0x00,0x35,0x00,0x1e,0x00,0x52,0x00,0x35,0x00,0x26,0xff,0xe3,0x00,0x35,0x00,0x2a,0xff,0xe3,0x00,0x35,0x00,0x2d, +0x00,0x39,0x00,0x35,0x00,0x32,0xff,0xec,0x00,0x35,0x00,0x34,0xff,0xec,0x00,0x35,0x00,0x37,0xff,0xcb,0x00,0x35,0x00,0x3c,0xff,0xd9,0x00,0x35,0x00,0x46,0xff,0xcb,0x00,0x35,0x00,0x47,0xff,0xcb,0x00,0x35,0x00,0x48,0xff,0xc7,0x00,0x35,0x00,0x4a,0xff,0xc7,0x00,0x35,0x00,0x52,0xff,0xc5,0x00,0x35,0x00,0x54,0xff,0xcb,0x00,0x35, +0x00,0x64,0xff,0xe5,0x00,0x35,0x00,0x67,0xff,0xec,0x00,0x35,0x00,0x6f,0xff,0xbe,0x00,0x35,0x00,0x70,0xff,0xbe,0x00,0x35,0x00,0x71,0xff,0xbe,0x00,0x35,0x00,0x72,0xff,0xbe,0x00,0x35,0x00,0x73,0xff,0xbe,0x00,0x35,0x00,0x79,0xff,0xc5,0x00,0x35,0x00,0x7a,0xff,0xc5,0x00,0x35,0x00,0x7b,0xff,0xc5,0x00,0x35,0x00,0x7c,0xff,0xc5, +0x00,0x35,0x00,0x7d,0xff,0xc5,0x00,0x35,0x00,0x92,0xff,0xec,0x00,0x35,0x00,0xaf,0xff,0xec,0x00,0x35,0x00,0xb0,0xff,0xec,0x00,0x35,0x00,0xb1,0xff,0xc5,0x00,0x35,0x00,0xbb,0xff,0xe5,0x00,0x35,0x00,0xd0,0xff,0xec,0x00,0x35,0x00,0xd1,0xff,0xec,0x00,0x35,0x00,0xd2,0xff,0xec,0x00,0x35,0x00,0xea,0xff,0xd9,0x00,0x35,0x00,0xf7, +0xff,0xe3,0x00,0x35,0x00,0xf8,0xff,0xc7,0x00,0x35,0x00,0xfc,0xff,0xe3,0x00,0x35,0x00,0xfd,0xff,0xcb,0x00,0x35,0x00,0xfe,0xff,0xe3,0x00,0x35,0x00,0xff,0xff,0xcb,0x00,0x35,0x01,0x00,0xff,0xcb,0x00,0x35,0x01,0x08,0xff,0xcb,0x00,0x35,0x01,0x0b,0xff,0xc7,0x00,0x35,0x01,0x0d,0xff,0xbe,0x00,0x35,0x01,0x18,0xff,0xec,0x00,0x35, +0x01,0x19,0xff,0xc5,0x00,0x35,0x01,0x20,0xff,0xcb,0x00,0x35,0x01,0x22,0xff,0xcb,0x00,0x35,0x01,0x47,0xff,0xe3,0x00,0x35,0x01,0x48,0xff,0xcb,0x00,0x35,0x01,0x4c,0xff,0xbe,0x00,0x35,0x01,0x4e,0xff,0xbe,0x00,0x35,0x01,0x50,0xff,0xbe,0x00,0x35,0x01,0x51,0xff,0xe3,0x00,0x35,0x01,0x52,0xff,0xc7,0x00,0x35,0x01,0x53,0xff,0xe3, +0x00,0x35,0x01,0x54,0xff,0xc7,0x00,0x35,0x01,0x55,0xff,0xe3,0x00,0x35,0x01,0x56,0xff,0xc7,0x00,0x35,0x01,0x63,0x00,0x39,0x00,0x35,0x01,0x6e,0xff,0xec,0x00,0x35,0x01,0x6f,0xff,0xc5,0x00,0x35,0x01,0x70,0xff,0xec,0x00,0x35,0x01,0x71,0xff,0xc5,0x00,0x35,0x01,0x76,0xff,0xcb,0x00,0x35,0x01,0x82,0xff,0xd9,0x00,0x35,0x01,0x89, +0xff,0xec,0x00,0x35,0x01,0x8a,0xff,0xc5,0x00,0x35,0x01,0x92,0xff,0xd9,0x00,0x36,0x00,0x57,0xff,0xbe,0x00,0x36,0x00,0x59,0xff,0xcf,0x00,0x36,0x00,0x5a,0xff,0xe5,0x00,0x36,0x00,0x5c,0xff,0xd1,0x00,0x36,0x00,0xba,0xff,0xbe,0x00,0x36,0x00,0xc4,0xff,0xb2,0x00,0x36,0x00,0xc5,0xff,0xb2,0x00,0x36,0x00,0xeb,0xff,0xd1,0x00,0x36, +0x01,0x21,0xff,0xbe,0x00,0x36,0x01,0x23,0xff,0xbe,0x00,0x36,0x01,0x77,0xff,0xbe,0x00,0x36,0x01,0x81,0xff,0xe5,0x00,0x36,0x01,0x83,0xff,0xd1,0x00,0x36,0x01,0x8d,0xff,0xe5,0x00,0x36,0x01,0x8f,0xff,0xe5,0x00,0x36,0x01,0x91,0xff,0xe5,0x00,0x36,0x01,0x93,0xff,0xd1,0x00,0x37,0x00,0x0f,0xff,0x7f,0x00,0x37,0x00,0x11,0xff,0x4c, +0x00,0x37,0x00,0x1d,0xff,0xe9,0x00,0x37,0x00,0x1e,0xff,0xe9,0x00,0x37,0x00,0x24,0xff,0x66,0x00,0x37,0x00,0x26,0xff,0xa4,0x00,0x37,0x00,0x2a,0xff,0xa4,0x00,0x37,0x00,0x2d,0xff,0x8f,0x00,0x37,0x00,0x32,0xff,0xa4,0x00,0x37,0x00,0x34,0xff,0xa4,0x00,0x37,0x00,0x37,0x00,0x27,0x00,0x37,0x00,0x39,0x00,0x2b,0x00,0x37,0x00,0x3a, +0x00,0x27,0x00,0x37,0x00,0x3b,0xff,0xfa,0x00,0x37,0x00,0x3c,0x00,0x1d,0x00,0x37,0x00,0x44,0xff,0x27,0x00,0x37,0x00,0x46,0xff,0x2d,0x00,0x37,0x00,0x47,0xff,0x2d,0x00,0x37,0x00,0x48,0xff,0x2d,0x00,0x37,0x00,0x49,0xff,0xa0,0x00,0x37,0x00,0x4a,0xff,0x2d,0x00,0x37,0x00,0x50,0xff,0x4e,0x00,0x37,0x00,0x51,0xff,0x4e,0x00,0x37, +0x00,0x52,0xff,0x2d,0x00,0x37,0x00,0x53,0xff,0x4e,0x00,0x37,0x00,0x54,0xff,0x2d,0x00,0x37,0x00,0x55,0xff,0x4e,0x00,0x37,0x00,0x56,0xff,0x66,0x00,0x37,0x00,0x58,0xff,0x4e,0x00,0x37,0x00,0x59,0xff,0x9a,0x00,0x37,0x00,0x5a,0xff,0x8f,0x00,0x37,0x00,0x5b,0xff,0x4c,0x00,0x37,0x00,0x5c,0xff,0x8f,0x00,0x37,0x00,0x5d,0xff,0x7f, +0x00,0x37,0x00,0x62,0xff,0x66,0x00,0x37,0x00,0x63,0xff,0x66,0x00,0x37,0x00,0x64,0xff,0xa4,0x00,0x37,0x00,0x67,0xff,0xa4,0x00,0x37,0x00,0x69,0xff,0x27,0x00,0x37,0x00,0x6a,0xff,0x27,0x00,0x37,0x00,0x6b,0xff,0x27,0x00,0x37,0x00,0x6c,0xff,0x27,0x00,0x37,0x00,0x6d,0xff,0x3f,0x00,0x37,0x00,0x6e,0xff,0x27,0x00,0x37,0x00,0x6f, +0xff,0x1b,0x00,0x37,0x00,0x70,0xff,0x2d,0x00,0x37,0x00,0x71,0xff,0x2d,0x00,0x37,0x00,0x72,0xff,0x2d,0x00,0x37,0x00,0x73,0xff,0x2d,0x00,0x37,0x00,0x74,0xff,0xe9,0x00,0x37,0x00,0x76,0x00,0x31,0x00,0x37,0x00,0x77,0x00,0x6f,0x00,0x37,0x00,0x78,0xff,0x4e,0x00,0x37,0x00,0x79,0xff,0x2d,0x00,0x37,0x00,0x7a,0xff,0x2d,0x00,0x37, +0x00,0x7b,0xff,0x2d,0x00,0x37,0x00,0x7c,0xff,0x2d,0x00,0x37,0x00,0x7d,0xff,0x2d,0x00,0x37,0x00,0x7e,0xff,0x4e,0x00,0x37,0x00,0x7f,0xff,0x4e,0x00,0x37,0x00,0x80,0xff,0x4e,0x00,0x37,0x00,0x81,0xff,0x4e,0x00,0x37,0x00,0x8d,0x00,0x52,0x00,0x37,0x00,0x91,0xff,0x0c,0x00,0x37,0x00,0x92,0xff,0xa4,0x00,0x37,0x00,0xa0,0xff,0x27, +0x00,0x37,0x00,0xaa,0xff,0x9a,0x00,0x37,0x00,0xab,0xff,0xcf,0x00,0x37,0x00,0xac,0xff,0x4c,0x00,0x37,0x00,0xad,0xff,0x66,0x00,0x37,0x00,0xae,0xff,0x66,0x00,0x37,0x00,0xaf,0xff,0xa4,0x00,0x37,0x00,0xb0,0xff,0xa4,0x00,0x37,0x00,0xb1,0xff,0x2d,0x00,0x37,0x00,0xb5,0x00,0x27,0x00,0x37,0x00,0xb7,0x00,0x27,0x00,0x37,0x00,0xba, +0xff,0x8f,0x00,0x37,0x00,0xbe,0xff,0x9a,0x00,0x37,0x00,0xbf,0xff,0xcf,0x00,0x37,0x00,0xc4,0xff,0x17,0x00,0x37,0x00,0xc5,0xff,0x17,0x00,0x37,0x00,0xc7,0xff,0x66,0x00,0x37,0x00,0xc9,0xff,0x66,0x00,0x37,0x00,0xd0,0xff,0xa4,0x00,0x37,0x00,0xd1,0xff,0xa4,0x00,0x37,0x00,0xd2,0xff,0xa4,0x00,0x37,0x00,0xe4,0xff,0x66,0x00,0x37, +0x00,0xe6,0xff,0x7f,0x00,0x37,0x00,0xea,0x00,0x1d,0x00,0x37,0x00,0xeb,0xff,0x8f,0x00,0x37,0x00,0xf7,0xff,0xa4,0x00,0x37,0x00,0xf8,0xff,0x2d,0x00,0x37,0x00,0xfb,0xff,0x66,0x00,0x37,0x00,0xfc,0xff,0xa4,0x00,0x37,0x00,0xfd,0xff,0x2d,0x00,0x37,0x00,0xfe,0xff,0xa4,0x00,0x37,0x00,0xff,0xff,0x2d,0x00,0x37,0x01,0x00,0xff,0x2d, +0x00,0x37,0x01,0x03,0xff,0x66,0x00,0x37,0x01,0x04,0xff,0x27,0x00,0x37,0x01,0x05,0xff,0x66,0x00,0x37,0x01,0x06,0xff,0x27,0x00,0x37,0x01,0x08,0xff,0x2d,0x00,0x37,0x01,0x0b,0xff,0x2d,0x00,0x37,0x01,0x0d,0xff,0x2d,0x00,0x37,0x01,0x15,0xff,0x4e,0x00,0x37,0x01,0x17,0xff,0x4e,0x00,0x37,0x01,0x18,0xff,0xa4,0x00,0x37,0x01,0x19, +0xff,0x2d,0x00,0x37,0x01,0x1b,0xff,0x4e,0x00,0x37,0x01,0x1d,0xff,0x4e,0x00,0x37,0x01,0x1f,0xff,0x66,0x00,0x37,0x01,0x20,0x00,0x27,0x00,0x37,0x01,0x22,0x00,0x27,0x00,0x37,0x01,0x25,0xff,0x4e,0x00,0x37,0x01,0x27,0xff,0x4e,0x00,0x37,0x01,0x29,0xff,0x7f,0x00,0x37,0x01,0x2b,0xff,0x7f,0x00,0x37,0x01,0x45,0xff,0x66,0x00,0x37, +0x01,0x46,0xff,0x27,0x00,0x37,0x01,0x47,0xff,0xa4,0x00,0x37,0x01,0x48,0xff,0x2d,0x00,0x37,0x01,0x4c,0xff,0x2d,0x00,0x37,0x01,0x4e,0xff,0x2d,0x00,0x37,0x01,0x50,0xff,0x2d,0x00,0x37,0x01,0x51,0xff,0xa4,0x00,0x37,0x01,0x52,0xff,0x2d,0x00,0x37,0x01,0x53,0xff,0xa4,0x00,0x37,0x01,0x54,0xff,0x2d,0x00,0x37,0x01,0x55,0xff,0xa4, +0x00,0x37,0x01,0x56,0xff,0x2d,0x00,0x37,0x01,0x5c,0x00,0x6f,0x00,0x37,0x01,0x5e,0x00,0x6f,0x00,0x37,0x01,0x60,0x00,0x6f,0x00,0x37,0x01,0x63,0xff,0x8f,0x00,0x37,0x01,0x6d,0xff,0x4e,0x00,0x37,0x01,0x6e,0xff,0xa4,0x00,0x37,0x01,0x6f,0xff,0x2d,0x00,0x37,0x01,0x70,0xff,0xa4,0x00,0x37,0x01,0x71,0xff,0x2d,0x00,0x37,0x01,0x73, +0xff,0x4e,0x00,0x37,0x01,0x75,0xff,0x66,0x00,0x37,0x01,0x76,0x00,0x27,0x00,0x37,0x01,0x79,0xff,0x4e,0x00,0x37,0x01,0x7b,0xff,0x4e,0x00,0x37,0x01,0x7d,0xff,0x4e,0x00,0x37,0x01,0x7f,0xff,0x4e,0x00,0x37,0x01,0x80,0x00,0x27,0x00,0x37,0x01,0x81,0xff,0x8f,0x00,0x37,0x01,0x82,0x00,0x1d,0x00,0x37,0x01,0x83,0xff,0x8f,0x00,0x37, +0x01,0x85,0xff,0x66,0x00,0x37,0x01,0x86,0xff,0x27,0x00,0x37,0x01,0x87,0xff,0x66,0x00,0x37,0x01,0x88,0xff,0x27,0x00,0x37,0x01,0x89,0xff,0xa4,0x00,0x37,0x01,0x8a,0xff,0x2d,0x00,0x37,0x01,0x8c,0x00,0x27,0x00,0x37,0x01,0x8d,0xff,0x8f,0x00,0x37,0x01,0x8e,0x00,0x27,0x00,0x37,0x01,0x8f,0xff,0x8f,0x00,0x37,0x01,0x90,0x00,0x27, +0x00,0x37,0x01,0x91,0xff,0x8f,0x00,0x37,0x01,0x92,0x00,0x1d,0x00,0x37,0x01,0x93,0xff,0x8f,0x00,0x37,0x02,0x3e,0xff,0x66,0x00,0x38,0x00,0x24,0xff,0xd7,0x00,0x38,0x00,0x91,0xff,0x8b,0x00,0x38,0x00,0xc4,0xff,0xa6,0x00,0x38,0x00,0xc5,0xff,0xa6,0x00,0x38,0x01,0x03,0xff,0xd7,0x00,0x38,0x01,0x05,0xff,0xd7,0x00,0x38,0x01,0x45, +0xff,0xd7,0x00,0x38,0x01,0x85,0xff,0xd7,0x00,0x38,0x01,0x87,0xff,0xd7,0x00,0x39,0x00,0x0f,0xff,0x33,0x00,0x39,0x00,0x11,0xff,0x1b,0x00,0x39,0x00,0x24,0xff,0x8b,0x00,0x39,0x00,0x26,0xff,0xd5,0x00,0x39,0x00,0x2a,0xff,0xd5,0x00,0x39,0x00,0x2d,0xff,0xba,0x00,0x39,0x00,0x32,0xff,0xf4,0x00,0x39,0x00,0x34,0xff,0xd5,0x00,0x39, +0x00,0x36,0xff,0xe5,0x00,0x39,0x00,0x37,0x00,0x27,0x00,0x39,0x00,0x44,0xff,0x6d,0x00,0x39,0x00,0x46,0xff,0x7f,0x00,0x39,0x00,0x47,0xff,0x7f,0x00,0x39,0x00,0x48,0xff,0x7f,0x00,0x39,0x00,0x4a,0xff,0x7f,0x00,0x39,0x00,0x50,0xff,0xb4,0x00,0x39,0x00,0x51,0xff,0xb4,0x00,0x39,0x00,0x52,0xff,0x7f,0x00,0x39,0x00,0x53,0xff,0xb4, +0x00,0x39,0x00,0x54,0xff,0x7f,0x00,0x39,0x00,0x55,0xff,0xb4,0x00,0x39,0x00,0x56,0xff,0xbe,0x00,0x39,0x00,0x58,0xff,0xb4,0x00,0x39,0x00,0x62,0xff,0x8b,0x00,0x39,0x00,0x63,0xff,0x8b,0x00,0x39,0x00,0x64,0xff,0xe1,0x00,0x39,0x00,0x67,0xff,0xf4,0x00,0x39,0x00,0x69,0xff,0x6d,0x00,0x39,0x00,0x6a,0xff,0x6d,0x00,0x39,0x00,0x6b, +0xff,0x6d,0x00,0x39,0x00,0x6c,0xff,0x6d,0x00,0x39,0x00,0x6d,0xff,0x6d,0x00,0x39,0x00,0x6e,0xff,0x6d,0x00,0x39,0x00,0x6f,0xff,0x7f,0x00,0x39,0x00,0x70,0xff,0x7f,0x00,0x39,0x00,0x71,0xff,0x7f,0x00,0x39,0x00,0x72,0xff,0x7f,0x00,0x39,0x00,0x73,0xff,0x7f,0x00,0x39,0x00,0x76,0x00,0x1d,0x00,0x39,0x00,0x77,0x00,0x5a,0x00,0x39, +0x00,0x78,0xff,0xb4,0x00,0x39,0x00,0x79,0xff,0x7f,0x00,0x39,0x00,0x7a,0xff,0x7f,0x00,0x39,0x00,0x7b,0xff,0x7f,0x00,0x39,0x00,0x7c,0xff,0x7f,0x00,0x39,0x00,0x7d,0xff,0x7f,0x00,0x39,0x00,0x7e,0xff,0xb4,0x00,0x39,0x00,0x7f,0xff,0xb4,0x00,0x39,0x00,0x80,0xff,0xb4,0x00,0x39,0x00,0x81,0xff,0xb4,0x00,0x39,0x00,0x8d,0x00,0x52, +0x00,0x39,0x00,0x91,0xff,0x44,0x00,0x39,0x00,0x92,0xff,0xf4,0x00,0x39,0x00,0xa0,0xff,0x6d,0x00,0x39,0x00,0xa2,0xff,0x75,0x00,0x39,0x00,0xaa,0xff,0xcf,0x00,0x39,0x00,0xac,0xff,0x1b,0x00,0x39,0x00,0xad,0xff,0x8b,0x00,0x39,0x00,0xae,0xff,0x8b,0x00,0x39,0x00,0xaf,0xff,0xf4,0x00,0x39,0x00,0xb0,0xff,0xf4,0x00,0x39,0x00,0xb1, +0xff,0x7f,0x00,0x39,0x00,0xbe,0xff,0xcf,0x00,0x39,0x00,0xc4,0xff,0x73,0x00,0x39,0x00,0xc5,0xff,0x7f,0x00,0x39,0x00,0xc7,0xff,0x8b,0x00,0x39,0x00,0xc9,0xff,0x8b,0x00,0x39,0x00,0xd0,0xff,0xf4,0x00,0x39,0x00,0xd1,0xff,0xf4,0x00,0x39,0x00,0xd2,0xff,0xf4,0x00,0x39,0x00,0xe3,0xff,0xe5,0x00,0x39,0x00,0xe4,0xff,0xbe,0x00,0x39, +0x00,0xf7,0xff,0xd5,0x00,0x39,0x00,0xf8,0xff,0x7f,0x00,0x39,0x00,0xfa,0xff,0xe5,0x00,0x39,0x00,0xfb,0xff,0xbe,0x00,0x39,0x00,0xfc,0xff,0xd5,0x00,0x39,0x00,0xfd,0xff,0x7f,0x00,0x39,0x00,0xfe,0xff,0xd5,0x00,0x39,0x00,0xff,0xff,0x7f,0x00,0x39,0x01,0x00,0xff,0x7f,0x00,0x39,0x01,0x03,0xff,0x8b,0x00,0x39,0x01,0x04,0xff,0x6d, +0x00,0x39,0x01,0x05,0xff,0x8b,0x00,0x39,0x01,0x06,0xff,0x6d,0x00,0x39,0x01,0x08,0xff,0x7f,0x00,0x39,0x01,0x0b,0xff,0x7f,0x00,0x39,0x01,0x0d,0xff,0x7f,0x00,0x39,0x01,0x15,0xff,0xb4,0x00,0x39,0x01,0x17,0xff,0xb4,0x00,0x39,0x01,0x18,0xff,0xf4,0x00,0x39,0x01,0x19,0xff,0x7f,0x00,0x39,0x01,0x1b,0xff,0xb4,0x00,0x39,0x01,0x1d, +0xff,0xb4,0x00,0x39,0x01,0x1e,0xff,0xe5,0x00,0x39,0x01,0x1f,0xff,0xbe,0x00,0x39,0x01,0x20,0x00,0x27,0x00,0x39,0x01,0x22,0x00,0x27,0x00,0x39,0x01,0x25,0xff,0xb4,0x00,0x39,0x01,0x27,0xff,0xb4,0x00,0x39,0x01,0x45,0xff,0x8b,0x00,0x39,0x01,0x46,0xff,0x6d,0x00,0x39,0x01,0x47,0xff,0xd5,0x00,0x39,0x01,0x48,0xff,0x7f,0x00,0x39, +0x01,0x4c,0xff,0x7f,0x00,0x39,0x01,0x4e,0xff,0x7f,0x00,0x39,0x01,0x50,0xff,0x7f,0x00,0x39,0x01,0x51,0xff,0xd5,0x00,0x39,0x01,0x52,0xff,0x7f,0x00,0x39,0x01,0x53,0xff,0xd5,0x00,0x39,0x01,0x54,0xff,0x7f,0x00,0x39,0x01,0x55,0xff,0xd5,0x00,0x39,0x01,0x56,0xff,0x7f,0x00,0x39,0x01,0x5c,0x00,0x5a,0x00,0x39,0x01,0x5e,0x00,0x5a, +0x00,0x39,0x01,0x60,0x00,0x5a,0x00,0x39,0x01,0x63,0xff,0xba,0x00,0x39,0x01,0x6d,0xff,0xb4,0x00,0x39,0x01,0x6e,0xff,0xf4,0x00,0x39,0x01,0x6f,0xff,0x7f,0x00,0x39,0x01,0x70,0xff,0xf4,0x00,0x39,0x01,0x71,0xff,0x7f,0x00,0x39,0x01,0x73,0xff,0xb4,0x00,0x39,0x01,0x74,0xff,0xe5,0x00,0x39,0x01,0x75,0xff,0xbe,0x00,0x39,0x01,0x76, +0x00,0x27,0x00,0x39,0x01,0x79,0xff,0xb4,0x00,0x39,0x01,0x7b,0xff,0xb4,0x00,0x39,0x01,0x7d,0xff,0xb4,0x00,0x39,0x01,0x7f,0xff,0xb4,0x00,0x39,0x01,0x85,0xff,0x8b,0x00,0x39,0x01,0x86,0xff,0x6d,0x00,0x39,0x01,0x87,0xff,0x8b,0x00,0x39,0x01,0x88,0xff,0x6d,0x00,0x39,0x01,0x89,0xff,0xf4,0x00,0x39,0x01,0x8a,0xff,0x7f,0x00,0x39, +0x02,0x3d,0xff,0xe5,0x00,0x39,0x02,0x3e,0xff,0xbe,0x00,0x3a,0x00,0x0f,0xff,0x8b,0x00,0x3a,0x00,0x11,0xff,0x7f,0x00,0x3a,0x00,0x24,0xff,0xb6,0x00,0x3a,0x00,0x37,0x00,0x27,0x00,0x3a,0x00,0x44,0xff,0xb4,0x00,0x3a,0x00,0x46,0xff,0xcf,0x00,0x3a,0x00,0x47,0xff,0xcf,0x00,0x3a,0x00,0x48,0xff,0xcf,0x00,0x3a,0x00,0x4a,0xff,0xcf, +0x00,0x3a,0x00,0x52,0xff,0xcf,0x00,0x3a,0x00,0x54,0xff,0xcf,0x00,0x3a,0x00,0x62,0xff,0xb6,0x00,0x3a,0x00,0x63,0xff,0xb6,0x00,0x3a,0x00,0x69,0xff,0xb4,0x00,0x3a,0x00,0x6a,0xff,0xb4,0x00,0x3a,0x00,0x6b,0xff,0xb4,0x00,0x3a,0x00,0x6c,0xff,0xb4,0x00,0x3a,0x00,0x6d,0xff,0xb4,0x00,0x3a,0x00,0x6e,0xff,0xb4,0x00,0x3a,0x00,0x6f, +0xff,0xcf,0x00,0x3a,0x00,0x70,0xff,0xcf,0x00,0x3a,0x00,0x71,0xff,0xcf,0x00,0x3a,0x00,0x72,0xff,0xcf,0x00,0x3a,0x00,0x73,0xff,0xcf,0x00,0x3a,0x00,0x76,0x00,0x31,0x00,0x3a,0x00,0x77,0x00,0x64,0x00,0x3a,0x00,0x79,0xff,0xcf,0x00,0x3a,0x00,0x7a,0xff,0xcf,0x00,0x3a,0x00,0x7b,0xff,0xcf,0x00,0x3a,0x00,0x7c,0xff,0xcf,0x00,0x3a, +0x00,0x7d,0xff,0xcf,0x00,0x3a,0x00,0x91,0xff,0x9a,0x00,0x3a,0x00,0xa0,0xff,0xb4,0x00,0x3a,0x00,0xa2,0xff,0xa4,0x00,0x3a,0x00,0xaa,0xff,0xcf,0x00,0x3a,0x00,0xab,0x00,0x27,0x00,0x3a,0x00,0xac,0xff,0x7f,0x00,0x3a,0x00,0xad,0xff,0xb6,0x00,0x3a,0x00,0xae,0xff,0xb6,0x00,0x3a,0x00,0xb1,0xff,0xcf,0x00,0x3a,0x00,0xbe,0xff,0xcf, +0x00,0x3a,0x00,0xbf,0x00,0x27,0x00,0x3a,0x00,0xc4,0xff,0x7f,0x00,0x3a,0x00,0xc5,0xff,0x8b,0x00,0x3a,0x00,0xc7,0xff,0xb6,0x00,0x3a,0x00,0xc9,0xff,0xb6,0x00,0x3a,0x00,0xf8,0xff,0xcf,0x00,0x3a,0x00,0xfd,0xff,0xcf,0x00,0x3a,0x00,0xff,0xff,0xcf,0x00,0x3a,0x01,0x00,0xff,0xcf,0x00,0x3a,0x01,0x03,0xff,0xb6,0x00,0x3a,0x01,0x04, +0xff,0xb4,0x00,0x3a,0x01,0x05,0xff,0xb6,0x00,0x3a,0x01,0x06,0xff,0xb4,0x00,0x3a,0x01,0x08,0xff,0xcf,0x00,0x3a,0x01,0x0b,0xff,0xcf,0x00,0x3a,0x01,0x0d,0xff,0xcf,0x00,0x3a,0x01,0x19,0xff,0xcf,0x00,0x3a,0x01,0x20,0x00,0x27,0x00,0x3a,0x01,0x22,0x00,0x27,0x00,0x3a,0x01,0x45,0xff,0xb6,0x00,0x3a,0x01,0x46,0xff,0xb4,0x00,0x3a, +0x01,0x48,0xff,0xcf,0x00,0x3a,0x01,0x4c,0xff,0xcf,0x00,0x3a,0x01,0x4e,0xff,0xcf,0x00,0x3a,0x01,0x50,0xff,0xcf,0x00,0x3a,0x01,0x52,0xff,0xcf,0x00,0x3a,0x01,0x54,0xff,0xcf,0x00,0x3a,0x01,0x56,0xff,0xcf,0x00,0x3a,0x01,0x5c,0x00,0x64,0x00,0x3a,0x01,0x5e,0x00,0x64,0x00,0x3a,0x01,0x60,0x00,0x64,0x00,0x3a,0x01,0x6f,0xff,0xcf, +0x00,0x3a,0x01,0x71,0xff,0xcf,0x00,0x3a,0x01,0x76,0x00,0x27,0x00,0x3a,0x01,0x85,0xff,0xb6,0x00,0x3a,0x01,0x86,0xff,0xb4,0x00,0x3a,0x01,0x87,0xff,0xb6,0x00,0x3a,0x01,0x88,0xff,0xb4,0x00,0x3a,0x01,0x8a,0xff,0xcf,0x00,0x3b,0x00,0x0f,0x00,0x44,0x00,0x3b,0x00,0x11,0x00,0x39,0x00,0x3b,0x00,0x1e,0x00,0x52,0x00,0x3b,0x00,0x26, +0xff,0xe9,0x00,0x3b,0x00,0x2a,0xff,0xe9,0x00,0x3b,0x00,0x2d,0x00,0x60,0x00,0x3b,0x00,0x32,0xff,0xe9,0x00,0x3b,0x00,0x34,0xff,0xe9,0x00,0x3b,0x00,0x37,0x00,0x21,0x00,0x3b,0x00,0x64,0xff,0xe9,0x00,0x3b,0x00,0x67,0xff,0xe9,0x00,0x3b,0x00,0x77,0x00,0x52,0x00,0x3b,0x00,0x92,0xff,0xe9,0x00,0x3b,0x00,0xac,0x00,0x39,0x00,0x3b, +0x00,0xaf,0xff,0xe9,0x00,0x3b,0x00,0xb0,0xff,0xe9,0x00,0x3b,0x00,0xc4,0x00,0x44,0x00,0x3b,0x00,0xc5,0x00,0x52,0x00,0x3b,0x00,0xd0,0xff,0xe9,0x00,0x3b,0x00,0xd1,0xff,0xe9,0x00,0x3b,0x00,0xd2,0xff,0xe9,0x00,0x3b,0x00,0xf7,0xff,0xe9,0x00,0x3b,0x00,0xfc,0xff,0xe9,0x00,0x3b,0x00,0xfe,0xff,0xe9,0x00,0x3b,0x01,0x18,0xff,0xe9, +0x00,0x3b,0x01,0x20,0x00,0x21,0x00,0x3b,0x01,0x22,0x00,0x21,0x00,0x3b,0x01,0x47,0xff,0xe9,0x00,0x3b,0x01,0x51,0xff,0xe9,0x00,0x3b,0x01,0x53,0xff,0xe9,0x00,0x3b,0x01,0x55,0xff,0xe9,0x00,0x3b,0x01,0x5c,0x00,0x52,0x00,0x3b,0x01,0x5e,0x00,0x52,0x00,0x3b,0x01,0x60,0x00,0x52,0x00,0x3b,0x01,0x63,0x00,0x60,0x00,0x3b,0x01,0x6e, +0xff,0xe9,0x00,0x3b,0x01,0x70,0xff,0xe9,0x00,0x3b,0x01,0x76,0x00,0x21,0x00,0x3b,0x01,0x89,0xff,0xe9,0x00,0x3c,0x00,0x0f,0xff,0x50,0x00,0x3c,0x00,0x11,0xff,0x3d,0x00,0x3c,0x00,0x24,0xff,0x62,0x00,0x3c,0x00,0x26,0xff,0xd3,0x00,0x3c,0x00,0x2a,0xff,0xd3,0x00,0x3c,0x00,0x2d,0xff,0xbe,0x00,0x3c,0x00,0x32,0xff,0xd3,0x00,0x3c, +0x00,0x34,0xff,0xd3,0x00,0x3c,0x00,0x36,0xff,0xe5,0x00,0x3c,0x00,0x37,0x00,0x27,0x00,0x3c,0x00,0x44,0xff,0x39,0x00,0x3c,0x00,0x46,0xff,0x4c,0x00,0x3c,0x00,0x47,0xff,0x4c,0x00,0x3c,0x00,0x48,0xff,0x4c,0x00,0x3c,0x00,0x49,0xff,0xe5,0x00,0x3c,0x00,0x4a,0xff,0x4c,0x00,0x3c,0x00,0x50,0xff,0x73,0x00,0x3c,0x00,0x51,0xff,0x73, +0x00,0x3c,0x00,0x52,0xff,0x4c,0x00,0x3c,0x00,0x53,0xff,0x73,0x00,0x3c,0x00,0x54,0xff,0x4c,0x00,0x3c,0x00,0x55,0xff,0x73,0x00,0x3c,0x00,0x56,0xff,0x7b,0x00,0x3c,0x00,0x58,0xff,0x73,0x00,0x3c,0x00,0x62,0xff,0x62,0x00,0x3c,0x00,0x63,0xff,0x62,0x00,0x3c,0x00,0x64,0xff,0xcd,0x00,0x3c,0x00,0x67,0xff,0xd3,0x00,0x3c,0x00,0x69, +0xff,0x39,0x00,0x3c,0x00,0x6a,0xff,0x39,0x00,0x3c,0x00,0x6b,0xff,0x39,0x00,0x3c,0x00,0x6c,0xff,0x7f,0x00,0x3c,0x00,0x6d,0xff,0x66,0x00,0x3c,0x00,0x6e,0xff,0x39,0x00,0x3c,0x00,0x6f,0xff,0x4c,0x00,0x3c,0x00,0x70,0xff,0x4c,0x00,0x3c,0x00,0x71,0xff,0x4c,0x00,0x3c,0x00,0x72,0xff,0x4c,0x00,0x3c,0x00,0x73,0xff,0x4c,0x00,0x3c, +0x00,0x77,0x00,0x5a,0x00,0x3c,0x00,0x78,0xff,0x73,0x00,0x3c,0x00,0x79,0xff,0x4c,0x00,0x3c,0x00,0x7a,0xff,0x4c,0x00,0x3c,0x00,0x7b,0xff,0x4c,0x00,0x3c,0x00,0x7c,0xff,0x4c,0x00,0x3c,0x00,0x7d,0xff,0x4c,0x00,0x3c,0x00,0x7e,0xff,0x73,0x00,0x3c,0x00,0x7f,0xff,0x73,0x00,0x3c,0x00,0x80,0xff,0x73,0x00,0x3c,0x00,0x81,0xff,0x73, +0x00,0x3c,0x00,0x91,0xff,0x3f,0x00,0x3c,0x00,0x92,0xff,0xd3,0x00,0x3c,0x00,0xa0,0xff,0x39,0x00,0x3c,0x00,0xa2,0xff,0x1b,0x00,0x3c,0x00,0xaa,0xff,0xcf,0x00,0x3c,0x00,0xac,0xff,0x3d,0x00,0x3c,0x00,0xad,0xff,0x62,0x00,0x3c,0x00,0xae,0xff,0x62,0x00,0x3c,0x00,0xaf,0xff,0xd3,0x00,0x3c,0x00,0xb0,0xff,0xd3,0x00,0x3c,0x00,0xb1, +0xff,0x4c,0x00,0x3c,0x00,0xbe,0xff,0x9a,0x00,0x3c,0x00,0xc4,0xff,0x08,0x00,0x3c,0x00,0xc5,0xff,0x08,0x00,0x3c,0x00,0xc7,0xff,0x62,0x00,0x3c,0x00,0xc9,0xff,0x62,0x00,0x3c,0x00,0xd0,0xff,0xd3,0x00,0x3c,0x00,0xd1,0xff,0xd3,0x00,0x3c,0x00,0xd2,0xff,0xd3,0x00,0x3c,0x00,0xe3,0xff,0xe5,0x00,0x3c,0x00,0xe4,0xff,0x7b,0x00,0x3c, +0x00,0xf7,0xff,0xd3,0x00,0x3c,0x00,0xf8,0xff,0x4c,0x00,0x3c,0x00,0xfa,0xff,0xe5,0x00,0x3c,0x00,0xfb,0xff,0x7b,0x00,0x3c,0x00,0xfc,0xff,0xd3,0x00,0x3c,0x00,0xfd,0xff,0x4c,0x00,0x3c,0x00,0xfe,0xff,0xd3,0x00,0x3c,0x00,0xff,0xff,0x4c,0x00,0x3c,0x01,0x00,0xff,0x4c,0x00,0x3c,0x01,0x03,0xff,0x62,0x00,0x3c,0x01,0x04,0xff,0x7f, +0x00,0x3c,0x01,0x05,0xff,0x62,0x00,0x3c,0x01,0x06,0xff,0x39,0x00,0x3c,0x01,0x08,0xff,0x4c,0x00,0x3c,0x01,0x0b,0xff,0x4c,0x00,0x3c,0x01,0x0d,0xff,0x4c,0x00,0x3c,0x01,0x15,0xff,0x73,0x00,0x3c,0x01,0x17,0xff,0x73,0x00,0x3c,0x01,0x18,0xff,0xd3,0x00,0x3c,0x01,0x19,0xff,0x4c,0x00,0x3c,0x01,0x1b,0xff,0x73,0x00,0x3c,0x01,0x1d, +0xff,0x73,0x00,0x3c,0x01,0x1e,0xff,0xe5,0x00,0x3c,0x01,0x1f,0xff,0x7b,0x00,0x3c,0x01,0x20,0x00,0x27,0x00,0x3c,0x01,0x22,0x00,0x27,0x00,0x3c,0x01,0x25,0xff,0x73,0x00,0x3c,0x01,0x27,0xff,0x73,0x00,0x3c,0x01,0x45,0xff,0x62,0x00,0x3c,0x01,0x46,0xff,0x7f,0x00,0x3c,0x01,0x47,0xff,0xd3,0x00,0x3c,0x01,0x48,0xff,0x4c,0x00,0x3c, +0x01,0x4c,0xff,0x4c,0x00,0x3c,0x01,0x4e,0xff,0x4c,0x00,0x3c,0x01,0x50,0xff,0x4c,0x00,0x3c,0x01,0x51,0xff,0xd3,0x00,0x3c,0x01,0x52,0xff,0x4c,0x00,0x3c,0x01,0x53,0xff,0xd3,0x00,0x3c,0x01,0x54,0xff,0x4c,0x00,0x3c,0x01,0x55,0xff,0xd3,0x00,0x3c,0x01,0x56,0xff,0x4c,0x00,0x3c,0x01,0x5c,0x00,0x5a,0x00,0x3c,0x01,0x5e,0x00,0x5a, +0x00,0x3c,0x01,0x60,0x00,0x5a,0x00,0x3c,0x01,0x63,0xff,0xbe,0x00,0x3c,0x01,0x6d,0xff,0x73,0x00,0x3c,0x01,0x6e,0xff,0xd3,0x00,0x3c,0x01,0x6f,0xff,0x4c,0x00,0x3c,0x01,0x70,0xff,0xd3,0x00,0x3c,0x01,0x71,0xff,0x4c,0x00,0x3c,0x01,0x73,0xff,0x73,0x00,0x3c,0x01,0x74,0xff,0xe5,0x00,0x3c,0x01,0x75,0xff,0x7b,0x00,0x3c,0x01,0x76, +0x00,0x27,0x00,0x3c,0x01,0x79,0xff,0x73,0x00,0x3c,0x01,0x7b,0xff,0x73,0x00,0x3c,0x01,0x7d,0xff,0x73,0x00,0x3c,0x01,0x7f,0xff,0x73,0x00,0x3c,0x01,0x85,0xff,0x62,0x00,0x3c,0x01,0x86,0xff,0x7f,0x00,0x3c,0x01,0x87,0xff,0x62,0x00,0x3c,0x01,0x88,0xff,0x39,0x00,0x3c,0x01,0x89,0xff,0xd3,0x00,0x3c,0x01,0x8a,0xff,0x4c,0x00,0x3c, +0x02,0x3d,0xff,0xe5,0x00,0x3c,0x02,0x3e,0xff,0x7b,0x00,0x3d,0x00,0x2d,0x00,0x52,0x00,0x3d,0x00,0x37,0x00,0x27,0x00,0x3d,0x00,0x5c,0xff,0xcb,0x00,0x3d,0x00,0x77,0x00,0x46,0x00,0x3d,0x00,0xab,0x00,0x27,0x00,0x3d,0x00,0xba,0xff,0xbe,0x00,0x3d,0x00,0xbf,0x00,0x52,0x00,0x3d,0x00,0xeb,0xff,0xcb,0x00,0x3d,0x01,0x20,0x00,0x27, +0x00,0x3d,0x01,0x22,0x00,0x27,0x00,0x3d,0x01,0x5c,0x00,0x46,0x00,0x3d,0x01,0x5e,0x00,0x46,0x00,0x3d,0x01,0x60,0x00,0x46,0x00,0x3d,0x01,0x63,0x00,0x52,0x00,0x3d,0x01,0x76,0x00,0x27,0x00,0x3d,0x01,0x83,0xff,0xcb,0x00,0x3d,0x01,0x93,0xff,0xcb,0x00,0x3e,0x00,0x4d,0x00,0xe9,0x00,0x3e,0x01,0x64,0x00,0xe9,0x00,0x45,0x00,0x44, +0xff,0xe5,0x00,0x45,0x00,0x49,0xff,0xf6,0x00,0x45,0x00,0x5b,0xff,0xe7,0x00,0x45,0x00,0x69,0xff,0xe5,0x00,0x45,0x00,0x6a,0xff,0xe5,0x00,0x45,0x00,0x6b,0xff,0xe5,0x00,0x45,0x00,0x6c,0xff,0xe5,0x00,0x45,0x00,0x6d,0xff,0xe5,0x00,0x45,0x00,0x6e,0xff,0xe5,0x00,0x45,0x00,0xa0,0xff,0xe5,0x00,0x45,0x00,0xc0,0xff,0xf6,0x00,0x45, +0x00,0xc1,0xff,0xf6,0x00,0x45,0x01,0x04,0xff,0xe5,0x00,0x45,0x01,0x06,0xff,0xe5,0x00,0x45,0x01,0x46,0xff,0xe5,0x00,0x45,0x01,0x86,0xff,0xe5,0x00,0x45,0x01,0x88,0xff,0xe5,0x00,0x46,0x00,0x2d,0x00,0x46,0x00,0x46,0x00,0x37,0xff,0x9a,0x00,0x46,0x00,0x3c,0xff,0xb4,0x00,0x46,0x00,0xea,0xff,0xb4,0x00,0x46,0x01,0x20,0xff,0x9a, +0x00,0x46,0x01,0x22,0xff,0x9a,0x00,0x46,0x01,0x63,0x00,0x46,0x00,0x46,0x01,0x76,0xff,0x9a,0x00,0x46,0x01,0x82,0xff,0xb4,0x00,0x46,0x01,0x92,0xff,0xb4,0x00,0x48,0x00,0x05,0xff,0x98,0x00,0x48,0x00,0x0a,0xff,0x98,0x00,0x49,0x00,0x0c,0x00,0x8d,0x00,0x49,0x00,0x0f,0xff,0x7f,0x00,0x49,0x00,0x10,0xff,0x9a,0x00,0x49,0x00,0x11, +0xff,0x7f,0x00,0x49,0x00,0x1d,0x00,0x52,0x00,0x49,0x00,0x1e,0x00,0x52,0x00,0x49,0x00,0x22,0x00,0x42,0x00,0x49,0x00,0x40,0x00,0x8d,0x00,0x49,0x00,0x45,0x00,0x12,0x00,0x49,0x00,0x4b,0x00,0x12,0x00,0x49,0x00,0x57,0x00,0x25,0x00,0x49,0x00,0x59,0x00,0x27,0x00,0x49,0x00,0x5a,0x00,0x27,0x00,0x49,0x00,0x5b,0x00,0x12,0x00,0x49, +0x00,0x5c,0x00,0x21,0x00,0x49,0x00,0x60,0x00,0x52,0x00,0x49,0x00,0x75,0x00,0x2d,0x00,0x49,0x00,0x76,0x00,0x12,0x00,0x49,0x00,0x77,0x00,0x79,0x00,0x49,0x00,0x8d,0x00,0x93,0x00,0x49,0x00,0xab,0x00,0x27,0x00,0x49,0x00,0xac,0xff,0x7f,0x00,0x49,0x00,0xb4,0x00,0x5e,0x00,0x49,0x00,0xb5,0x00,0x52,0x00,0x49,0x00,0xb6,0x00,0x5e, +0x00,0x49,0x00,0xb7,0x00,0x52,0x00,0x49,0x00,0xbf,0x00,0x27,0x00,0x49,0x00,0xc4,0xff,0xb0,0x00,0x49,0x00,0xc5,0xff,0xb0,0x00,0x49,0x00,0xeb,0x00,0x21,0x00,0x49,0x00,0xed,0x00,0x12,0x00,0x49,0x01,0x21,0x00,0x25,0x00,0x49,0x01,0x23,0x00,0x25,0x00,0x49,0x01,0x58,0x00,0x12,0x00,0x49,0x01,0x5a,0x00,0x12,0x00,0x49,0x01,0x5c, +0x00,0x79,0x00,0x49,0x01,0x5e,0x00,0x79,0x00,0x49,0x01,0x60,0x00,0x79,0x00,0x49,0x01,0x77,0x00,0x25,0x00,0x49,0x01,0x81,0x00,0x27,0x00,0x49,0x01,0x83,0x00,0x21,0x00,0x49,0x01,0x8d,0x00,0x27,0x00,0x49,0x01,0x8f,0x00,0x27,0x00,0x49,0x01,0x91,0x00,0x27,0x00,0x49,0x01,0x93,0x00,0x21,0x00,0x4a,0x00,0x4d,0x00,0x2f,0x00,0x4a, +0x01,0x64,0x00,0x2f,0x00,0x4d,0x00,0x4d,0x00,0x23,0x00,0x4d,0x01,0x64,0x00,0x23,0x00,0x4e,0x00,0x0f,0x00,0x52,0x00,0x4e,0x00,0x10,0xff,0x75,0x00,0x4e,0x00,0x11,0x00,0x52,0x00,0x4e,0x00,0x1d,0x00,0x52,0x00,0x4e,0x00,0x1e,0x00,0x52,0x00,0x4e,0x00,0x46,0xff,0xd7,0x00,0x4e,0x00,0x47,0xff,0xe5,0x00,0x4e,0x00,0x48,0xff,0xd7, +0x00,0x4e,0x00,0x4a,0xff,0xd7,0x00,0x4e,0x00,0x52,0xff,0xd7,0x00,0x4e,0x00,0x54,0xff,0xe5,0x00,0x4e,0x00,0x57,0xff,0xf0,0x00,0x4e,0x00,0x6f,0xff,0xe5,0x00,0x4e,0x00,0x70,0xff,0xd7,0x00,0x4e,0x00,0x71,0xff,0xd7,0x00,0x4e,0x00,0x72,0xff,0xd7,0x00,0x4e,0x00,0x73,0xff,0xd7,0x00,0x4e,0x00,0x79,0xff,0xd7,0x00,0x4e,0x00,0x7a, +0xff,0xd7,0x00,0x4e,0x00,0x7b,0xff,0xd7,0x00,0x4e,0x00,0x7c,0xff,0xd7,0x00,0x4e,0x00,0x7d,0xff,0xd7,0x00,0x4e,0x00,0xac,0x00,0x52,0x00,0x4e,0x00,0xb1,0xff,0xd7,0x00,0x4e,0x00,0xf8,0xff,0xd7,0x00,0x4e,0x00,0xfd,0xff,0xd7,0x00,0x4e,0x00,0xff,0xff,0xd7,0x00,0x4e,0x01,0x00,0xff,0xe5,0x00,0x4e,0x01,0x08,0xff,0xe5,0x00,0x4e, +0x01,0x0b,0xff,0xd7,0x00,0x4e,0x01,0x0d,0xff,0xd7,0x00,0x4e,0x01,0x19,0xff,0xd7,0x00,0x4e,0x01,0x21,0xff,0xf0,0x00,0x4e,0x01,0x23,0xff,0xf0,0x00,0x4e,0x01,0x48,0xff,0xd7,0x00,0x4e,0x01,0x4c,0xff,0xd7,0x00,0x4e,0x01,0x4e,0xff,0xd7,0x00,0x4e,0x01,0x50,0xff,0xd7,0x00,0x4e,0x01,0x52,0xff,0xd7,0x00,0x4e,0x01,0x54,0xff,0xd7, +0x00,0x4e,0x01,0x56,0xff,0xd7,0x00,0x4e,0x01,0x6f,0xff,0xd7,0x00,0x4e,0x01,0x71,0xff,0xd7,0x00,0x4e,0x01,0x77,0xff,0xf0,0x00,0x4e,0x01,0x8a,0xff,0xd7,0x00,0x51,0x00,0x05,0xff,0x98,0x00,0x51,0x00,0x0a,0xff,0x98,0x00,0x52,0x00,0x05,0xff,0x6f,0x00,0x52,0x00,0x0a,0xff,0x6f,0x00,0x52,0x00,0x44,0xff,0xe5,0x00,0x52,0x00,0x49, +0xff,0xdb,0x00,0x52,0x00,0x5b,0xff,0xe7,0x00,0x52,0x00,0x69,0xff,0xe5,0x00,0x52,0x00,0x6a,0xff,0xe5,0x00,0x52,0x00,0x6b,0xff,0xe5,0x00,0x52,0x00,0x6c,0xff,0xe5,0x00,0x52,0x00,0x6d,0xff,0xe5,0x00,0x52,0x00,0x6e,0xff,0xe5,0x00,0x52,0x00,0xa0,0xff,0xe5,0x00,0x52,0x00,0xb4,0xff,0xb2,0x00,0x52,0x00,0xb5,0xff,0x7d,0x00,0x52, +0x00,0xb6,0xff,0xbe,0x00,0x52,0x00,0xb7,0xff,0x7d,0x00,0x52,0x00,0xc0,0xff,0xe7,0x00,0x52,0x00,0xc1,0xff,0xe7,0x00,0x52,0x01,0x04,0xff,0xe5,0x00,0x52,0x01,0x06,0xff,0xe5,0x00,0x52,0x01,0x46,0xff,0xe5,0x00,0x52,0x01,0x86,0xff,0xe5,0x00,0x52,0x01,0x88,0xff,0xe5,0x00,0x53,0x00,0x44,0xff,0xe5,0x00,0x53,0x00,0x49,0xff,0xdb, +0x00,0x53,0x00,0x5b,0xff,0xe7,0x00,0x53,0x00,0x69,0xff,0xe5,0x00,0x53,0x00,0x6a,0xff,0xe5,0x00,0x53,0x00,0x6b,0xff,0xe5,0x00,0x53,0x00,0x6c,0xff,0xe5,0x00,0x53,0x00,0x6d,0xff,0xe5,0x00,0x53,0x00,0x6e,0xff,0xe5,0x00,0x53,0x00,0xa0,0xff,0xe5,0x00,0x53,0x00,0xb4,0xff,0xcb,0x00,0x53,0x00,0xb5,0xff,0x89,0x00,0x53,0x00,0xb6, +0xff,0x89,0x00,0x53,0x00,0xb7,0xff,0x89,0x00,0x53,0x00,0xc0,0xff,0xe7,0x00,0x53,0x00,0xc1,0xff,0xe7,0x00,0x53,0x01,0x04,0xff,0xe5,0x00,0x53,0x01,0x06,0xff,0xe5,0x00,0x53,0x01,0x46,0xff,0xe5,0x00,0x53,0x01,0x86,0xff,0xe5,0x00,0x53,0x01,0x88,0xff,0xe5,0x00,0x54,0x00,0x4d,0x00,0x66,0x00,0x54,0x01,0x64,0x00,0x66,0x00,0x55, +0x00,0x0f,0xff,0x62,0x00,0x55,0x00,0x10,0xff,0x7f,0x00,0x55,0x00,0x11,0xff,0x56,0x00,0x55,0x00,0x1d,0x00,0x52,0x00,0x55,0x00,0x1e,0x00,0x52,0x00,0x55,0x00,0x46,0xff,0xe5,0x00,0x55,0x00,0x47,0xff,0xe5,0x00,0x55,0x00,0x48,0xff,0xe5,0x00,0x55,0x00,0x49,0x00,0x27,0x00,0x55,0x00,0x4a,0xff,0xe5,0x00,0x55,0x00,0x50,0xff,0xfc, +0x00,0x55,0x00,0x51,0xff,0xfc,0x00,0x55,0x00,0x52,0xff,0xe5,0x00,0x55,0x00,0x54,0xff,0xe5,0x00,0x55,0x00,0x56,0x00,0x0e,0x00,0x55,0x00,0x57,0x00,0x3b,0x00,0x55,0x00,0x59,0x00,0x52,0x00,0x55,0x00,0x5a,0x00,0x52,0x00,0x55,0x00,0x5b,0x00,0x3b,0x00,0x55,0x00,0x5c,0x00,0x52,0x00,0x55,0x00,0x5d,0x00,0x27,0x00,0x55,0x00,0x6f, +0xff,0xe5,0x00,0x55,0x00,0x70,0xff,0xe5,0x00,0x55,0x00,0x71,0xff,0xe5,0x00,0x55,0x00,0x72,0xff,0xe5,0x00,0x55,0x00,0x73,0xff,0xe5,0x00,0x55,0x00,0x79,0xff,0xe5,0x00,0x55,0x00,0x7a,0xff,0xe5,0x00,0x55,0x00,0x7b,0xff,0xe5,0x00,0x55,0x00,0x7c,0xff,0xe5,0x00,0x55,0x00,0x7d,0xff,0xe5,0x00,0x55,0x00,0xac,0xff,0x56,0x00,0x55, +0x00,0xb1,0xff,0xe5,0x00,0x55,0x00,0xb4,0x00,0xa4,0x00,0x55,0x00,0xb5,0x00,0x79,0x00,0x55,0x00,0xb6,0x00,0xa4,0x00,0x55,0x00,0xb7,0x00,0x79,0x00,0x55,0x00,0xc4,0xff,0x62,0x00,0x55,0x00,0xc5,0xff,0x62,0x00,0x55,0x00,0xe4,0x00,0x0e,0x00,0x55,0x00,0xe6,0x00,0x27,0x00,0x55,0x00,0xeb,0x00,0x52,0x00,0x55,0x00,0xf8,0xff,0xe5, +0x00,0x55,0x00,0xfb,0x00,0x0e,0x00,0x55,0x00,0xfd,0xff,0xe5,0x00,0x55,0x00,0xff,0xff,0xe5,0x00,0x55,0x01,0x00,0xff,0xe5,0x00,0x55,0x01,0x08,0xff,0xe5,0x00,0x55,0x01,0x0b,0xff,0xe5,0x00,0x55,0x01,0x0d,0xff,0xe5,0x00,0x55,0x01,0x19,0xff,0xe5,0x00,0x55,0x01,0x1f,0x00,0x0e,0x00,0x55,0x01,0x21,0x00,0x3b,0x00,0x55,0x01,0x23, +0x00,0x3b,0x00,0x55,0x01,0x29,0x00,0x27,0x00,0x55,0x01,0x2b,0x00,0x27,0x00,0x55,0x01,0x48,0xff,0xe5,0x00,0x55,0x01,0x4c,0xff,0xe5,0x00,0x55,0x01,0x4e,0xff,0xe5,0x00,0x55,0x01,0x50,0xff,0xe5,0x00,0x55,0x01,0x52,0xff,0xe5,0x00,0x55,0x01,0x54,0xff,0xe5,0x00,0x55,0x01,0x56,0xff,0xe5,0x00,0x55,0x01,0x6d,0xff,0xfc,0x00,0x55, +0x01,0x6f,0xff,0xe5,0x00,0x55,0x01,0x71,0xff,0xe5,0x00,0x55,0x01,0x75,0x00,0x0e,0x00,0x55,0x01,0x77,0x00,0x3b,0x00,0x55,0x01,0x81,0x00,0x52,0x00,0x55,0x01,0x83,0x00,0x52,0x00,0x55,0x01,0x8a,0xff,0xe5,0x00,0x55,0x01,0x8d,0x00,0x52,0x00,0x55,0x01,0x8f,0x00,0x52,0x00,0x55,0x01,0x91,0x00,0x52,0x00,0x55,0x01,0x93,0x00,0x52, +0x00,0x55,0x02,0x3e,0x00,0x0e,0x00,0x57,0x00,0x10,0xff,0x8f,0x00,0x57,0x00,0x22,0xff,0xcb,0x00,0x57,0x00,0x46,0xff,0xe5,0x00,0x57,0x00,0x47,0xff,0xe5,0x00,0x57,0x00,0x48,0xff,0xf0,0x00,0x57,0x00,0x4a,0xff,0xf0,0x00,0x57,0x00,0x52,0xff,0xf0,0x00,0x57,0x00,0x54,0xff,0xf0,0x00,0x57,0x00,0x5b,0x00,0x1d,0x00,0x57,0x00,0x6f, +0xff,0xe5,0x00,0x57,0x00,0x70,0xff,0xf0,0x00,0x57,0x00,0x71,0xff,0xf0,0x00,0x57,0x00,0x72,0xff,0xf0,0x00,0x57,0x00,0x73,0xff,0xf0,0x00,0x57,0x00,0x79,0xff,0xf0,0x00,0x57,0x00,0x7a,0xff,0xf0,0x00,0x57,0x00,0x7b,0xff,0xf0,0x00,0x57,0x00,0x7c,0xff,0xf0,0x00,0x57,0x00,0x7d,0xff,0xf0,0x00,0x57,0x00,0xab,0x00,0x27,0x00,0x57, +0x00,0xb1,0xff,0xf0,0x00,0x57,0x00,0xbf,0x00,0x27,0x00,0x57,0x00,0xf8,0xff,0xf0,0x00,0x57,0x00,0xfd,0xff,0xe5,0x00,0x57,0x00,0xff,0xff,0xe5,0x00,0x57,0x01,0x00,0xff,0xe5,0x00,0x57,0x01,0x08,0xff,0xe5,0x00,0x57,0x01,0x0b,0xff,0xf0,0x00,0x57,0x01,0x0d,0xff,0xf0,0x00,0x57,0x01,0x19,0xff,0xf0,0x00,0x57,0x01,0x48,0xff,0xe5, +0x00,0x57,0x01,0x4c,0xff,0xf0,0x00,0x57,0x01,0x4e,0xff,0xf0,0x00,0x57,0x01,0x50,0xff,0xf0,0x00,0x57,0x01,0x52,0xff,0xf0,0x00,0x57,0x01,0x54,0xff,0xf0,0x00,0x57,0x01,0x56,0xff,0xf0,0x00,0x57,0x01,0x6f,0xff,0xf0,0x00,0x57,0x01,0x71,0xff,0xf0,0x00,0x57,0x01,0x8a,0xff,0xf0,0x00,0x58,0x00,0x05,0xff,0xbe,0x00,0x58,0x00,0x0a, +0xff,0xbe,0x00,0x59,0x00,0x0f,0xff,0x8b,0x00,0x59,0x00,0x11,0xff,0x7f,0x00,0x59,0x00,0x44,0xff,0xdb,0x00,0x59,0x00,0x46,0xff,0xf4,0x00,0x59,0x00,0x47,0xff,0xf0,0x00,0x59,0x00,0x48,0xff,0xf4,0x00,0x59,0x00,0x4a,0xff,0xf4,0x00,0x59,0x00,0x52,0xff,0xf4,0x00,0x59,0x00,0x54,0xff,0xf0,0x00,0x59,0x00,0x69,0xff,0xdb,0x00,0x59, +0x00,0x6a,0xff,0xdb,0x00,0x59,0x00,0x6b,0xff,0xdb,0x00,0x59,0x00,0x6c,0xff,0xdb,0x00,0x59,0x00,0x6d,0xff,0xdb,0x00,0x59,0x00,0x6e,0xff,0xdb,0x00,0x59,0x00,0x6f,0xff,0xf4,0x00,0x59,0x00,0x70,0xff,0xf4,0x00,0x59,0x00,0x71,0xff,0xf4,0x00,0x59,0x00,0x72,0xff,0xf4,0x00,0x59,0x00,0x73,0xff,0xf4,0x00,0x59,0x00,0x79,0xff,0xf4, +0x00,0x59,0x00,0x7a,0xff,0xf4,0x00,0x59,0x00,0x7b,0xff,0xf4,0x00,0x59,0x00,0x7c,0xff,0xf4,0x00,0x59,0x00,0x7d,0xff,0xf4,0x00,0x59,0x00,0xa0,0xff,0xdb,0x00,0x59,0x00,0xac,0xff,0x7f,0x00,0x59,0x00,0xb1,0xff,0xf4,0x00,0x59,0x00,0xc4,0xff,0x8b,0x00,0x59,0x00,0xc5,0xff,0x7f,0x00,0x59,0x00,0xf8,0xff,0xf4,0x00,0x59,0x00,0xfd, +0xff,0xf4,0x00,0x59,0x00,0xff,0xff,0xf4,0x00,0x59,0x01,0x00,0xff,0xf0,0x00,0x59,0x01,0x04,0xff,0xdb,0x00,0x59,0x01,0x06,0xff,0xdb,0x00,0x59,0x01,0x08,0xff,0xf0,0x00,0x59,0x01,0x0b,0xff,0xf4,0x00,0x59,0x01,0x0d,0xff,0xf4,0x00,0x59,0x01,0x19,0xff,0xf4,0x00,0x59,0x01,0x46,0xff,0xdb,0x00,0x59,0x01,0x48,0xff,0xf4,0x00,0x59, +0x01,0x4c,0xff,0xf4,0x00,0x59,0x01,0x4e,0xff,0xf4,0x00,0x59,0x01,0x50,0xff,0xf4,0x00,0x59,0x01,0x52,0xff,0xf4,0x00,0x59,0x01,0x54,0xff,0xf4,0x00,0x59,0x01,0x56,0xff,0xf4,0x00,0x59,0x01,0x6f,0xff,0xf4,0x00,0x59,0x01,0x71,0xff,0xf4,0x00,0x59,0x01,0x86,0xff,0xdb,0x00,0x59,0x01,0x88,0xff,0xdb,0x00,0x59,0x01,0x8a,0xff,0xf4, +0x00,0x5a,0x00,0x0f,0xff,0xa6,0x00,0x5a,0x00,0x11,0xff,0x9a,0x00,0x5a,0x00,0x46,0xff,0xfa,0x00,0x5a,0x00,0x47,0xff,0xf6,0x00,0x5a,0x00,0x48,0xff,0xf6,0x00,0x5a,0x00,0x4a,0xff,0xfa,0x00,0x5a,0x00,0x52,0xff,0xfa,0x00,0x5a,0x00,0x54,0xff,0xf6,0x00,0x5a,0x00,0x6f,0xff,0xfa,0x00,0x5a,0x00,0x70,0xff,0xf6,0x00,0x5a,0x00,0x71, +0xff,0xf6,0x00,0x5a,0x00,0x72,0xff,0xf6,0x00,0x5a,0x00,0x73,0xff,0xf6,0x00,0x5a,0x00,0x79,0xff,0xfa,0x00,0x5a,0x00,0x7a,0xff,0xfa,0x00,0x5a,0x00,0x7b,0xff,0xfa,0x00,0x5a,0x00,0x7c,0xff,0xfa,0x00,0x5a,0x00,0x7d,0xff,0xfa,0x00,0x5a,0x00,0xac,0xff,0x9a,0x00,0x5a,0x00,0xb1,0xff,0xfa,0x00,0x5a,0x00,0xc4,0xff,0xb4,0x00,0x5a, +0x00,0xc5,0xff,0xb4,0x00,0x5a,0x00,0xf8,0xff,0xfa,0x00,0x5a,0x00,0xfd,0xff,0xfa,0x00,0x5a,0x00,0xff,0xff,0xfa,0x00,0x5a,0x01,0x00,0xff,0xf6,0x00,0x5a,0x01,0x08,0xff,0xf6,0x00,0x5a,0x01,0x0b,0xff,0xf6,0x00,0x5a,0x01,0x0d,0xff,0xf6,0x00,0x5a,0x01,0x19,0xff,0xfa,0x00,0x5a,0x01,0x48,0xff,0xfa,0x00,0x5a,0x01,0x4c,0xff,0xf6, +0x00,0x5a,0x01,0x4e,0xff,0xf6,0x00,0x5a,0x01,0x50,0xff,0xf6,0x00,0x5a,0x01,0x52,0xff,0xfa,0x00,0x5a,0x01,0x54,0xff,0xfa,0x00,0x5a,0x01,0x56,0xff,0xfa,0x00,0x5a,0x01,0x6f,0xff,0xfa,0x00,0x5a,0x01,0x71,0xff,0xfa,0x00,0x5a,0x01,0x8a,0xff,0xfa,0x00,0x5b,0x00,0x46,0xff,0xf0,0x00,0x5b,0x00,0x47,0xff,0xf0,0x00,0x5b,0x00,0x48, +0xff,0xf0,0x00,0x5b,0x00,0x4a,0xff,0xf0,0x00,0x5b,0x00,0x52,0xff,0xf0,0x00,0x5b,0x00,0x54,0xff,0xf0,0x00,0x5b,0x00,0x6f,0xff,0xf0,0x00,0x5b,0x00,0x70,0xff,0xf0,0x00,0x5b,0x00,0x71,0xff,0xf0,0x00,0x5b,0x00,0x72,0xff,0xf0,0x00,0x5b,0x00,0x73,0xff,0xf0,0x00,0x5b,0x00,0x79,0xff,0xf0,0x00,0x5b,0x00,0x7a,0xff,0xf0,0x00,0x5b, +0x00,0x7b,0xff,0xf0,0x00,0x5b,0x00,0x7c,0xff,0xf0,0x00,0x5b,0x00,0x7d,0xff,0xf0,0x00,0x5b,0x00,0xb1,0xff,0xf0,0x00,0x5b,0x00,0xf8,0xff,0xf0,0x00,0x5b,0x00,0xfd,0xff,0xf0,0x00,0x5b,0x00,0xff,0xff,0xf0,0x00,0x5b,0x01,0x00,0xff,0xf0,0x00,0x5b,0x01,0x08,0xff,0xf0,0x00,0x5b,0x01,0x0b,0xff,0xf0,0x00,0x5b,0x01,0x0d,0xff,0xf0, +0x00,0x5b,0x01,0x19,0xff,0xf0,0x00,0x5b,0x01,0x48,0xff,0xf0,0x00,0x5b,0x01,0x4c,0xff,0xf0,0x00,0x5b,0x01,0x4e,0xff,0xf0,0x00,0x5b,0x01,0x50,0xff,0xf0,0x00,0x5b,0x01,0x52,0xff,0xf0,0x00,0x5b,0x01,0x54,0xff,0xf0,0x00,0x5b,0x01,0x56,0xff,0xf0,0x00,0x5b,0x01,0x6f,0xff,0xf0,0x00,0x5b,0x01,0x71,0xff,0xf0,0x00,0x5b,0x01,0x8a, +0xff,0xf0,0x00,0x5c,0x00,0x05,0x00,0x1d,0x00,0x5c,0x00,0x0a,0x00,0x1d,0x00,0x5c,0x00,0x0f,0xff,0x9a,0x00,0x5c,0x00,0x11,0xff,0x81,0x00,0x5c,0x00,0x22,0xff,0xb4,0x00,0x5c,0x00,0x46,0xff,0xf6,0x00,0x5c,0x00,0x47,0xff,0xf6,0x00,0x5c,0x00,0x48,0xff,0xf6,0x00,0x5c,0x00,0x49,0x00,0x04,0x00,0x5c,0x00,0x4a,0xff,0xf6,0x00,0x5c, +0x00,0x52,0xff,0xf6,0x00,0x5c,0x00,0x54,0xff,0xf6,0x00,0x5c,0x00,0x57,0x00,0x06,0x00,0x5c,0x00,0x6f,0xff,0xf6,0x00,0x5c,0x00,0x70,0xff,0xf6,0x00,0x5c,0x00,0x71,0xff,0xf6,0x00,0x5c,0x00,0x72,0xff,0xf6,0x00,0x5c,0x00,0x73,0xff,0xf6,0x00,0x5c,0x00,0x79,0xff,0xf6,0x00,0x5c,0x00,0x7a,0xff,0xf6,0x00,0x5c,0x00,0x7b,0xff,0xf6, +0x00,0x5c,0x00,0x7c,0xff,0xf6,0x00,0x5c,0x00,0x7d,0xff,0xf6,0x00,0x5c,0x00,0xac,0xff,0x81,0x00,0x5c,0x00,0xb1,0xff,0xf6,0x00,0x5c,0x00,0xbf,0x00,0x0c,0x00,0x5c,0x00,0xc4,0xff,0x8d,0x00,0x5c,0x00,0xc5,0xff,0x8d,0x00,0x5c,0x00,0xf8,0xff,0xf6,0x00,0x5c,0x00,0xfd,0xff,0xf6,0x00,0x5c,0x00,0xff,0xff,0xf6,0x00,0x5c,0x01,0x00, +0xff,0xf6,0x00,0x5c,0x01,0x08,0xff,0xf6,0x00,0x5c,0x01,0x0b,0xff,0xf6,0x00,0x5c,0x01,0x0d,0xff,0xf6,0x00,0x5c,0x01,0x19,0xff,0xf6,0x00,0x5c,0x01,0x21,0x00,0x06,0x00,0x5c,0x01,0x23,0x00,0x06,0x00,0x5c,0x01,0x48,0xff,0xf6,0x00,0x5c,0x01,0x4c,0xff,0xf6,0x00,0x5c,0x01,0x4e,0xff,0xf6,0x00,0x5c,0x01,0x50,0xff,0xf6,0x00,0x5c, +0x01,0x52,0xff,0xf6,0x00,0x5c,0x01,0x54,0xff,0xf6,0x00,0x5c,0x01,0x56,0xff,0xf6,0x00,0x5c,0x01,0x6f,0xff,0xf6,0x00,0x5c,0x01,0x71,0xff,0xf6,0x00,0x5c,0x01,0x77,0x00,0x06,0x00,0x5c,0x01,0x8a,0xff,0xf6,0x00,0x5e,0x00,0x4d,0x00,0xcb,0x00,0x5e,0x01,0x64,0x00,0xcb,0x00,0x62,0x00,0x2d,0x00,0x5e,0x00,0x62,0x00,0x37,0xff,0x6d, +0x00,0x62,0x00,0x39,0xff,0x8b,0x00,0x62,0x00,0x3a,0xff,0xb0,0x00,0x62,0x00,0x3c,0xff,0x64,0x00,0x62,0x00,0xea,0xff,0x64,0x00,0x62,0x01,0x20,0xff,0x6d,0x00,0x62,0x01,0x22,0xff,0x6d,0x00,0x62,0x01,0x63,0x00,0x5e,0x00,0x62,0x01,0x76,0xff,0x6d,0x00,0x62,0x01,0x80,0xff,0xb0,0x00,0x62,0x01,0x82,0xff,0x64,0x00,0x62,0x01,0x8c, +0xff,0xb0,0x00,0x62,0x01,0x8e,0xff,0xb0,0x00,0x62,0x01,0x90,0xff,0xb0,0x00,0x62,0x01,0x92,0xff,0x64,0x00,0x63,0x00,0x2d,0x00,0x5e,0x00,0x63,0x00,0x37,0xff,0x6d,0x00,0x63,0x00,0x39,0xff,0x8b,0x00,0x63,0x00,0x3a,0xff,0xb6,0x00,0x63,0x00,0x3c,0xff,0x64,0x00,0x63,0x00,0xea,0xff,0x64,0x00,0x63,0x01,0x20,0xff,0x6d,0x00,0x63, +0x01,0x22,0xff,0x6d,0x00,0x63,0x01,0x63,0x00,0x5e,0x00,0x63,0x01,0x76,0xff,0x6d,0x00,0x63,0x01,0x80,0xff,0xb6,0x00,0x63,0x01,0x82,0xff,0x64,0x00,0x63,0x01,0x8c,0xff,0xb6,0x00,0x63,0x01,0x8e,0xff,0xb6,0x00,0x63,0x01,0x90,0xff,0xb6,0x00,0x63,0x01,0x92,0xff,0x64,0x00,0x64,0x00,0x26,0xff,0xc9,0x00,0x64,0x00,0x2a,0xff,0xc9, +0x00,0x64,0x00,0x32,0xff,0xc9,0x00,0x64,0x00,0x34,0xff,0xc9,0x00,0x64,0x00,0xf7,0xff,0xc9,0x00,0x64,0x00,0xfc,0xff,0xc9,0x00,0x64,0x00,0xfe,0xff,0xc9,0x00,0x64,0x01,0x18,0xff,0xc9,0x00,0x64,0x01,0x47,0xff,0xc9,0x00,0x64,0x01,0x51,0xff,0xc9,0x00,0x64,0x01,0x53,0xff,0xc9,0x00,0x64,0x01,0x55,0xff,0xc9,0x00,0x64,0x01,0x6e, +0xff,0xc9,0x00,0x64,0x01,0x70,0xff,0xc9,0x00,0x64,0x01,0x89,0xff,0xc9,0x00,0x65,0x00,0x2d,0x00,0x3d,0x00,0x65,0x01,0x63,0x00,0x3d,0x00,0x67,0x00,0x24,0xff,0xe5,0x00,0x67,0x00,0x37,0xff,0xa4,0x00,0x67,0x00,0x3b,0xff,0xdb,0x00,0x67,0x00,0x3d,0xff,0xcf,0x00,0x67,0x00,0xe5,0xff,0xcf,0x00,0x67,0x01,0x03,0xff,0xe5,0x00,0x67, +0x01,0x05,0xff,0xe5,0x00,0x67,0x01,0x20,0xff,0xa4,0x00,0x67,0x01,0x22,0xff,0xa4,0x00,0x67,0x01,0x28,0xff,0xcf,0x00,0x67,0x01,0x2a,0xff,0xcf,0x00,0x67,0x01,0x45,0xff,0xe5,0x00,0x67,0x01,0x76,0xff,0xa4,0x00,0x67,0x01,0x85,0xff,0xe5,0x00,0x67,0x01,0x87,0xff,0xe5,0x00,0x79,0x00,0x44,0xff,0xe5,0x00,0x79,0x00,0x49,0xff,0xe7, +0x00,0x79,0x00,0x5b,0xff,0xe5,0x00,0x79,0x00,0xc0,0xff,0xe7,0x00,0x79,0x00,0xc1,0xff,0xe7,0x00,0x79,0x01,0x06,0xff,0xe5,0x00,0x79,0x01,0x88,0xff,0xe5,0x00,0x7a,0x00,0x44,0xff,0xe5,0x00,0x7a,0x00,0x49,0xff,0xe7,0x00,0x7a,0x00,0x5b,0xff,0xe5,0x00,0x7a,0x00,0xc0,0xff,0xe7,0x00,0x7a,0x00,0xc1,0xff,0xe7,0x00,0x7a,0x01,0x06, +0xff,0xe5,0x00,0x7a,0x01,0x88,0xff,0xe5,0x00,0x7b,0x00,0x44,0xff,0xe5,0x00,0x7b,0x00,0x49,0xff,0xe7,0x00,0x7b,0x00,0x5b,0xff,0xe5,0x00,0x7b,0x00,0xc0,0xff,0xe7,0x00,0x7b,0x00,0xc1,0xff,0xe7,0x00,0x7b,0x01,0x06,0xff,0xe5,0x00,0x7b,0x01,0x88,0xff,0xe5,0x00,0x7c,0x00,0x44,0xff,0xe5,0x00,0x7c,0x00,0x49,0xff,0xe7,0x00,0x7c, +0x00,0x5b,0xff,0xe5,0x00,0x7c,0x00,0xc0,0xff,0xe7,0x00,0x7c,0x00,0xc1,0xff,0xe7,0x00,0x7c,0x01,0x06,0xff,0xe5,0x00,0x7c,0x01,0x88,0xff,0xe5,0x00,0x7d,0x00,0x44,0xff,0xe5,0x00,0x7d,0x00,0x49,0xff,0xe7,0x00,0x7d,0x00,0x5b,0xff,0xe5,0x00,0x7d,0x00,0xc0,0xff,0xe7,0x00,0x7d,0x00,0xc1,0xff,0xe7,0x00,0x7d,0x01,0x06,0xff,0xe5, +0x00,0x7d,0x01,0x88,0xff,0xe5,0x00,0x91,0x00,0x2d,0x00,0x0e,0x00,0x91,0x01,0x63,0x00,0x0e,0x00,0x92,0x00,0x24,0xff,0xe5,0x00,0x92,0x00,0x37,0xff,0xa4,0x00,0x92,0x00,0x3b,0xff,0xdb,0x00,0x92,0x00,0x3d,0xff,0xcf,0x00,0x92,0x00,0xe5,0xff,0xcf,0x00,0x92,0x01,0x03,0xff,0xe5,0x00,0x92,0x01,0x05,0xff,0xe5,0x00,0x92,0x01,0x20, +0xff,0xa4,0x00,0x92,0x01,0x22,0xff,0xa4,0x00,0x92,0x01,0x28,0xff,0xcf,0x00,0x92,0x01,0x2a,0xff,0xcf,0x00,0x92,0x01,0x45,0xff,0xe5,0x00,0x92,0x01,0x76,0xff,0xa4,0x00,0x92,0x01,0x85,0xff,0xe5,0x00,0x92,0x01,0x87,0xff,0xe5,0x00,0xa1,0x00,0x44,0xff,0xe5,0x00,0xa1,0x00,0x49,0xff,0xe7,0x00,0xa1,0x00,0x5b,0xff,0xe5,0x00,0xa1, +0x00,0xc0,0xff,0xe7,0x00,0xa1,0x00,0xc1,0xff,0xe7,0x00,0xa1,0x01,0x06,0xff,0xe5,0x00,0xa1,0x01,0x88,0xff,0xe5,0x00,0xa2,0x00,0x3c,0xff,0x9a,0x00,0xa2,0x00,0x4d,0x00,0xbc,0x00,0xa2,0x00,0xea,0xff,0x9a,0x00,0xa2,0x01,0x64,0x00,0xbc,0x00,0xa2,0x01,0x82,0xff,0x9a,0x00,0xa2,0x01,0x92,0xff,0x9a,0x00,0xa4,0x00,0x4d,0x00,0xa0, +0x00,0xa4,0x01,0x33,0xff,0xdb,0x00,0xa4,0x01,0x64,0x00,0xa0,0x00,0xa4,0x02,0x37,0xff,0xdb,0x00,0xa9,0x00,0x0d,0xff,0x7f,0x00,0xa9,0x00,0x8d,0xff,0x98,0x00,0xa9,0x00,0xb4,0xff,0x66,0x00,0xa9,0x00,0xb5,0xff,0x3d,0x00,0xa9,0x00,0xb6,0xff,0x66,0x00,0xa9,0x00,0xb7,0xff,0x3d,0x00,0xa9,0x01,0x2d,0xff,0xd5,0x00,0xa9,0x01,0x2e, +0xff,0xd5,0x00,0xa9,0x01,0x33,0xff,0xa4,0x00,0xa9,0x01,0xb4,0xff,0xd5,0x00,0xa9,0x01,0xb7,0x00,0x3d,0x00,0xa9,0x01,0xb8,0xff,0x66,0x00,0xa9,0x01,0xb9,0xff,0x66,0x00,0xa9,0x01,0xba,0x00,0x3d,0x00,0xa9,0x01,0xbb,0xff,0x79,0x00,0xa9,0x01,0xbc,0x00,0x12,0x00,0xa9,0x01,0xbe,0xff,0x66,0x00,0xa9,0x01,0xc3,0xff,0xf6,0x00,0xa9, +0x01,0xc5,0xff,0xb6,0x00,0xa9,0x01,0xc8,0xff,0xf4,0x00,0xa9,0x01,0xcb,0x00,0x3d,0x00,0xa9,0x01,0xcd,0xff,0xdb,0x00,0xa9,0x01,0xd2,0xff,0xf6,0x00,0xa9,0x01,0xd3,0xff,0xc1,0x00,0xa9,0x01,0xd4,0xff,0xf6,0x00,0xa9,0x01,0xd7,0xff,0xf6,0x00,0xa9,0x01,0xd9,0xff,0xf6,0x00,0xaa,0x00,0x2d,0x00,0x52,0x00,0xaa,0x00,0x37,0xff,0xcf, +0x00,0xaa,0x00,0x3a,0x00,0x52,0x00,0xaa,0x00,0x3d,0x00,0x52,0x00,0xaa,0x00,0x5c,0x00,0x0c,0x00,0xaa,0x00,0xe5,0x00,0x52,0x00,0xaa,0x00,0xeb,0x00,0x0c,0x00,0xaa,0x01,0x20,0xff,0xcf,0x00,0xaa,0x01,0x22,0xff,0xcf,0x00,0xaa,0x01,0x28,0x00,0x52,0x00,0xaa,0x01,0x2a,0x00,0x52,0x00,0xaa,0x01,0x63,0x00,0x52,0x00,0xaa,0x01,0x76, +0xff,0xcf,0x00,0xaa,0x01,0x80,0x00,0x52,0x00,0xaa,0x01,0x83,0x00,0x0c,0x00,0xaa,0x01,0x8c,0x00,0x52,0x00,0xaa,0x01,0x8e,0x00,0x52,0x00,0xaa,0x01,0x90,0x00,0x52,0x00,0xaa,0x01,0x93,0x00,0x0c,0x00,0xaa,0x01,0xac,0x00,0x52,0x00,0xaa,0x01,0xb8,0xff,0xcd,0x00,0xaa,0x01,0xdc,0xff,0xcd,0x00,0xaa,0x01,0xe1,0x00,0x52,0x00,0xaa, +0x01,0xe3,0xff,0xcd,0x00,0xaa,0x01,0xeb,0x00,0x52,0x00,0xaa,0x01,0xf2,0x00,0x52,0x00,0xaa,0x01,0xf9,0xff,0xcd,0x00,0xaa,0x02,0x01,0xff,0xcd,0x00,0xaa,0x02,0x1a,0x00,0x0e,0x00,0xaa,0x02,0x31,0x00,0x0e,0x00,0xab,0x00,0x37,0xff,0xcf,0x00,0xab,0x00,0x39,0xff,0xcf,0x00,0xab,0x00,0x3a,0xff,0xcf,0x00,0xab,0x00,0x3c,0xff,0x9a, +0x00,0xab,0x00,0xea,0xff,0x9a,0x00,0xab,0x01,0x20,0xff,0xcf,0x00,0xab,0x01,0x22,0xff,0xcf,0x00,0xab,0x01,0x76,0xff,0xcf,0x00,0xab,0x01,0x80,0xff,0xcf,0x00,0xab,0x01,0x82,0xff,0x9a,0x00,0xab,0x01,0x8c,0xff,0xcf,0x00,0xab,0x01,0x8e,0xff,0xcf,0x00,0xab,0x01,0x90,0xff,0xcf,0x00,0xab,0x01,0x92,0xff,0x9a,0x00,0xab,0x01,0xb8, +0xff,0xcd,0x00,0xab,0x01,0xb9,0xff,0x98,0x00,0xab,0x01,0xdc,0xff,0xcd,0x00,0xab,0x01,0xe3,0xff,0xcd,0x00,0xab,0x01,0xf9,0xff,0xcd,0x00,0xab,0x02,0x01,0xff,0xcd,0x00,0xac,0x00,0xb4,0xff,0x31,0x00,0xac,0x00,0xb5,0xff,0x3d,0x00,0xac,0x00,0xb6,0xff,0x31,0x00,0xac,0x00,0xb7,0xff,0x3d,0x00,0xad,0x00,0x2d,0x00,0x5e,0x00,0xad, +0x00,0x37,0xff,0x6d,0x00,0xad,0x00,0x39,0xff,0x8b,0x00,0xad,0x00,0x3a,0xff,0xb6,0x00,0xad,0x00,0x3c,0xff,0x64,0x00,0xad,0x00,0xea,0xff,0x64,0x00,0xad,0x01,0x20,0xff,0x6d,0x00,0xad,0x01,0x22,0xff,0x6d,0x00,0xad,0x01,0x63,0x00,0x5e,0x00,0xad,0x01,0x76,0xff,0x6d,0x00,0xad,0x01,0x80,0xff,0xb6,0x00,0xad,0x01,0x82,0xff,0x64, +0x00,0xad,0x01,0x8c,0xff,0xb6,0x00,0xad,0x01,0x8e,0xff,0xb6,0x00,0xad,0x01,0x90,0xff,0xb6,0x00,0xad,0x01,0x92,0xff,0x64,0x00,0xae,0x00,0x2d,0x00,0x5e,0x00,0xae,0x00,0x37,0xff,0x6d,0x00,0xae,0x00,0x39,0xff,0x8b,0x00,0xae,0x00,0x3a,0xff,0xb6,0x00,0xae,0x00,0x3c,0xff,0x64,0x00,0xae,0x00,0xea,0xff,0x64,0x00,0xae,0x01,0x20, +0xff,0x6d,0x00,0xae,0x01,0x22,0xff,0x6d,0x00,0xae,0x01,0x63,0x00,0x5e,0x00,0xae,0x01,0x76,0xff,0x6d,0x00,0xae,0x01,0x80,0xff,0xb6,0x00,0xae,0x01,0x82,0xff,0x64,0x00,0xae,0x01,0x8c,0xff,0xb6,0x00,0xae,0x01,0x8e,0xff,0xb6,0x00,0xae,0x01,0x90,0xff,0xb6,0x00,0xae,0x01,0x92,0xff,0x64,0x00,0xaf,0x00,0x24,0xff,0xe5,0x00,0xaf, +0x00,0x37,0xff,0xa4,0x00,0xaf,0x00,0x3b,0xff,0xdb,0x00,0xaf,0x00,0x3d,0xff,0xcf,0x00,0xaf,0x00,0xe5,0xff,0xcf,0x00,0xaf,0x01,0x03,0xff,0xe5,0x00,0xaf,0x01,0x05,0xff,0xe5,0x00,0xaf,0x01,0x20,0xff,0xa4,0x00,0xaf,0x01,0x22,0xff,0xa4,0x00,0xaf,0x01,0x28,0xff,0xcf,0x00,0xaf,0x01,0x2a,0xff,0xcf,0x00,0xaf,0x01,0x45,0xff,0xe5, +0x00,0xaf,0x01,0x76,0xff,0xa4,0x00,0xaf,0x01,0x85,0xff,0xe5,0x00,0xaf,0x01,0x87,0xff,0xe5,0x00,0xb0,0x00,0x24,0x00,0x1d,0x00,0xb0,0x00,0x2d,0x00,0x44,0x00,0xb0,0x00,0x37,0x00,0x04,0x00,0xb0,0x00,0x3b,0x00,0x08,0x00,0xb0,0x01,0x03,0x00,0x1d,0x00,0xb0,0x01,0x05,0x00,0x1d,0x00,0xb0,0x01,0x20,0x00,0x04,0x00,0xb0,0x01,0x22, +0x00,0x04,0x00,0xb0,0x01,0x45,0x00,0x1d,0x00,0xb0,0x01,0x63,0x00,0x44,0x00,0xb0,0x01,0x76,0x00,0x04,0x00,0xb0,0x01,0x85,0x00,0x1d,0x00,0xb0,0x01,0x87,0x00,0x1d,0x00,0xb4,0x00,0x0f,0xff,0x98,0x00,0xb4,0x00,0x11,0xff,0x98,0x00,0xb4,0x00,0x24,0xff,0x25,0x00,0xb4,0x00,0x2d,0xff,0x62,0x00,0xb4,0x00,0x37,0x00,0x52,0x00,0xb4, +0x00,0x46,0xff,0x7f,0x00,0xb4,0x00,0x47,0xff,0x7f,0x00,0xb4,0x00,0x48,0xff,0x7f,0x00,0xb4,0x00,0x4a,0xff,0x73,0x00,0xb4,0x00,0x56,0xff,0xb2,0x00,0xb4,0x00,0x91,0xfe,0x87,0x00,0xb4,0x00,0xac,0xff,0x98,0x00,0xb4,0x00,0xe4,0xff,0xb2,0x00,0xb4,0x00,0xf8,0xff,0x73,0x00,0xb4,0x00,0xfb,0xff,0xb2,0x00,0xb4,0x00,0xfd,0xff,0x7f, +0x00,0xb4,0x00,0xff,0xff,0x7f,0x00,0xb4,0x01,0x00,0xff,0x7f,0x00,0xb4,0x01,0x03,0xff,0x25,0x00,0xb4,0x01,0x05,0xff,0x25,0x00,0xb4,0x01,0x08,0xff,0x7f,0x00,0xb4,0x01,0x0b,0xff,0x7f,0x00,0xb4,0x01,0x1f,0xff,0xb2,0x00,0xb4,0x01,0x20,0x00,0x52,0x00,0xb4,0x01,0x22,0x00,0x52,0x00,0xb4,0x01,0x45,0xff,0x25,0x00,0xb4,0x01,0x48, +0xff,0x7f,0x00,0xb4,0x01,0x52,0xff,0x73,0x00,0xb4,0x01,0x54,0xff,0x73,0x00,0xb4,0x01,0x56,0xff,0x73,0x00,0xb4,0x01,0x63,0xff,0x62,0x00,0xb4,0x01,0x75,0xff,0xb2,0x00,0xb4,0x01,0x76,0x00,0x52,0x00,0xb4,0x01,0x85,0xff,0x25,0x00,0xb4,0x01,0x87,0xff,0x25,0x00,0xb4,0x01,0xb8,0x00,0x52,0x00,0xb4,0x01,0xdc,0x00,0x52,0x00,0xb4, +0x01,0xe1,0xff,0x6f,0x00,0xb4,0x01,0xe3,0x00,0x52,0x00,0xb4,0x01,0xe7,0xff,0x23,0x00,0xb4,0x01,0xeb,0xff,0x6f,0x00,0xb4,0x01,0xf2,0xff,0x6f,0x00,0xb4,0x01,0xf9,0x00,0x52,0x00,0xb4,0x02,0x01,0x00,0x52,0x00,0xb4,0x02,0x0c,0xff,0x7f,0x00,0xb4,0x02,0x15,0xff,0x7f,0x00,0xb4,0x02,0x18,0xff,0x7f,0x00,0xb4,0x02,0x1b,0xff,0x7f, +0x00,0xb4,0x02,0x27,0xff,0x7f,0x00,0xb4,0x02,0x2a,0xff,0x7f,0x00,0xb4,0x02,0x2b,0xff,0xb0,0x00,0xb4,0x02,0x3e,0xff,0xb2,0x00,0xb5,0x00,0x0f,0xff,0x9a,0x00,0xb5,0x00,0x11,0xff,0x9a,0x00,0xb5,0x00,0x24,0xff,0x66,0x00,0xb5,0x00,0x37,0x00,0x52,0x00,0xb5,0x00,0x46,0xff,0xdd,0x00,0xb5,0x00,0x47,0xff,0x62,0x00,0xb5,0x00,0x48, +0xff,0x62,0x00,0xb5,0x00,0x4a,0xff,0x62,0x00,0xb5,0x00,0x52,0xff,0x62,0x00,0xb5,0x00,0x56,0xff,0x7f,0x00,0xb5,0x00,0x91,0xff,0x0a,0x00,0xb5,0x00,0xac,0xff,0x9a,0x00,0xb5,0x00,0xe4,0xff,0x7f,0x00,0xb5,0x00,0xf8,0xff,0x62,0x00,0xb5,0x00,0xfb,0xff,0x7f,0x00,0xb5,0x00,0xfd,0xff,0xdd,0x00,0xb5,0x00,0xff,0xff,0xdd,0x00,0xb5, +0x01,0x00,0xff,0x62,0x00,0xb5,0x01,0x03,0xff,0x66,0x00,0xb5,0x01,0x05,0xff,0x66,0x00,0xb5,0x01,0x08,0xff,0x62,0x00,0xb5,0x01,0x0b,0xff,0x62,0x00,0xb5,0x01,0x1f,0xff,0x7f,0x00,0xb5,0x01,0x20,0x00,0x52,0x00,0xb5,0x01,0x22,0x00,0x52,0x00,0xb5,0x01,0x45,0xff,0x66,0x00,0xb5,0x01,0x48,0xff,0xdd,0x00,0xb5,0x01,0x52,0xff,0x62, +0x00,0xb5,0x01,0x54,0xff,0x62,0x00,0xb5,0x01,0x56,0xff,0x62,0x00,0xb5,0x01,0x75,0xff,0x7f,0x00,0xb5,0x01,0x76,0x00,0x52,0x00,0xb5,0x01,0x85,0xff,0x66,0x00,0xb5,0x01,0x87,0xff,0x66,0x00,0xb5,0x01,0xdc,0x00,0x52,0x00,0xb5,0x01,0xe3,0x00,0x52,0x00,0xb5,0x01,0xe7,0xff,0x66,0x00,0xb5,0x01,0xf9,0x00,0x52,0x00,0xb5,0x02,0x01, +0x00,0x52,0x00,0xb5,0x02,0x0c,0xff,0x62,0x00,0xb5,0x02,0x15,0xff,0x62,0x00,0xb5,0x02,0x18,0xff,0x62,0x00,0xb5,0x02,0x1b,0xff,0x62,0x00,0xb5,0x02,0x27,0xff,0x62,0x00,0xb5,0x02,0x2a,0xff,0x62,0x00,0xb5,0x02,0x2b,0xff,0x7f,0x00,0xb5,0x02,0x3e,0xff,0x7f,0x00,0xb6,0x00,0x24,0xff,0x25,0x00,0xb6,0x00,0x26,0xff,0xbe,0x00,0xb6, +0x00,0x2d,0xff,0x6f,0x00,0xb6,0x00,0x37,0x00,0x52,0x00,0xb6,0x00,0x46,0xff,0x7f,0x00,0xb6,0x00,0x47,0xff,0x62,0x00,0xb6,0x00,0x48,0xff,0x7f,0x00,0xb6,0x00,0x4a,0xff,0x7f,0x00,0xb6,0x00,0x52,0xff,0x7f,0x00,0xb6,0x00,0x56,0xff,0xb2,0x00,0xb6,0x00,0x91,0xff,0x0a,0x00,0xb6,0x00,0xb6,0xff,0x54,0x00,0xb6,0x00,0xe4,0xff,0xb2, +0x00,0xb6,0x00,0xf8,0xff,0x7f,0x00,0xb6,0x00,0xfb,0xff,0xb2,0x00,0xb6,0x00,0xfc,0xff,0xbe,0x00,0xb6,0x00,0xfd,0xff,0x7f,0x00,0xb6,0x00,0xfe,0xff,0xbe,0x00,0xb6,0x00,0xff,0xff,0x7f,0x00,0xb6,0x01,0x00,0xff,0x62,0x00,0xb6,0x01,0x03,0xff,0x25,0x00,0xb6,0x01,0x05,0xff,0x25,0x00,0xb6,0x01,0x08,0xff,0x62,0x00,0xb6,0x01,0x0b, +0xff,0x7f,0x00,0xb6,0x01,0x1f,0xff,0xb2,0x00,0xb6,0x01,0x20,0x00,0x52,0x00,0xb6,0x01,0x22,0x00,0x52,0x00,0xb6,0x01,0x45,0xff,0x25,0x00,0xb6,0x01,0x47,0xff,0xbe,0x00,0xb6,0x01,0x48,0xff,0x7f,0x00,0xb6,0x01,0x52,0xff,0x7f,0x00,0xb6,0x01,0x54,0xff,0x7f,0x00,0xb6,0x01,0x56,0xff,0x7f,0x00,0xb6,0x01,0x63,0xff,0x6f,0x00,0xb6, +0x01,0x75,0xff,0xb2,0x00,0xb6,0x01,0x76,0x00,0x52,0x00,0xb6,0x01,0x85,0xff,0x25,0x00,0xb6,0x01,0x87,0xff,0x25,0x00,0xb6,0x01,0xdc,0x00,0x52,0x00,0xb6,0x01,0xde,0xff,0xbc,0x00,0xb6,0x01,0xe1,0xff,0x6f,0x00,0xb6,0x01,0xe3,0x00,0x52,0x00,0xb6,0x01,0xe7,0xff,0x23,0x00,0xb6,0x01,0xeb,0xff,0x6f,0x00,0xb6,0x01,0xf2,0xff,0x6f, +0x00,0xb6,0x01,0xf5,0xff,0xbc,0x00,0xb6,0x01,0xf8,0xff,0xbc,0x00,0xb6,0x01,0xf9,0x00,0x52,0x00,0xb6,0x01,0xfb,0xff,0xbc,0x00,0xb6,0x02,0x01,0x00,0x52,0x00,0xb6,0x02,0x0c,0xff,0x7f,0x00,0xb6,0x02,0x15,0xff,0x7f,0x00,0xb6,0x02,0x18,0xff,0x7f,0x00,0xb6,0x02,0x1b,0xff,0x7f,0x00,0xb6,0x02,0x27,0xff,0x7f,0x00,0xb6,0x02,0x2a, +0xff,0x7f,0x00,0xb6,0x02,0x2b,0xff,0xb0,0x00,0xb6,0x02,0x3e,0xff,0xb2,0x00,0xb7,0x00,0x0f,0xff,0x9a,0x00,0xb7,0x00,0x11,0xff,0x9a,0x00,0xb7,0x00,0x24,0xff,0x5a,0x00,0xb7,0x00,0x2d,0xff,0x62,0x00,0xb7,0x00,0x37,0x00,0x52,0x00,0xb7,0x00,0x44,0xff,0x98,0x00,0xb7,0x00,0x46,0xff,0x3d,0x00,0xb7,0x00,0x47,0xff,0x62,0x00,0xb7, +0x00,0x48,0xff,0x62,0x00,0xb7,0x00,0x4a,0xff,0x62,0x00,0xb7,0x00,0x52,0xff,0x62,0x00,0xb7,0x00,0x54,0xff,0x6f,0x00,0xb7,0x00,0x56,0xff,0x8b,0x00,0xb7,0x00,0x91,0xff,0x08,0x00,0xb7,0x00,0xac,0xff,0x9a,0x00,0xb7,0x00,0xb7,0xff,0x54,0x00,0xb7,0x00,0xc4,0xff,0x98,0x00,0xb7,0x00,0xe4,0xff,0x8b,0x00,0xb7,0x00,0xf8,0xff,0x62, +0x00,0xb7,0x00,0xfb,0xff,0x8b,0x00,0xb7,0x00,0xfd,0xff,0x3d,0x00,0xb7,0x00,0xff,0xff,0x3d,0x00,0xb7,0x01,0x00,0xff,0x62,0x00,0xb7,0x01,0x03,0xff,0x5a,0x00,0xb7,0x01,0x05,0xff,0x5a,0x00,0xb7,0x01,0x06,0xff,0x98,0x00,0xb7,0x01,0x08,0xff,0x62,0x00,0xb7,0x01,0x0b,0xff,0x62,0x00,0xb7,0x01,0x1f,0xff,0x8b,0x00,0xb7,0x01,0x20, +0x00,0x52,0x00,0xb7,0x01,0x22,0x00,0x52,0x00,0xb7,0x01,0x45,0xff,0x5a,0x00,0xb7,0x01,0x48,0xff,0x3d,0x00,0xb7,0x01,0x52,0xff,0x62,0x00,0xb7,0x01,0x54,0xff,0x62,0x00,0xb7,0x01,0x56,0xff,0x62,0x00,0xb7,0x01,0x63,0xff,0x62,0x00,0xb7,0x01,0x75,0xff,0x8b,0x00,0xb7,0x01,0x76,0x00,0x52,0x00,0xb7,0x01,0x85,0xff,0x5a,0x00,0xb7, +0x01,0x87,0xff,0x5a,0x00,0xb7,0x01,0x88,0xff,0x98,0x00,0xb7,0x01,0xdc,0x00,0x52,0x00,0xb7,0x01,0xe1,0xff,0x62,0x00,0xb7,0x01,0xe3,0x00,0x52,0x00,0xb7,0x01,0xe7,0xff,0x5a,0x00,0xb7,0x01,0xeb,0xff,0x62,0x00,0xb7,0x01,0xf2,0xff,0x62,0x00,0xb7,0x01,0xf9,0x00,0x52,0x00,0xb7,0x02,0x01,0x00,0x52,0x00,0xb7,0x02,0x07,0xff,0x96, +0x00,0xb7,0x02,0x0c,0xff,0x62,0x00,0xb7,0x02,0x15,0xff,0x62,0x00,0xb7,0x02,0x18,0xff,0x62,0x00,0xb7,0x02,0x1b,0xff,0x62,0x00,0xb7,0x02,0x27,0xff,0x62,0x00,0xb7,0x02,0x2a,0xff,0x62,0x00,0xb7,0x02,0x2b,0xff,0x8b,0x00,0xb7,0x02,0x3e,0xff,0x8b,0x00,0xba,0x00,0x46,0xff,0xf6,0x00,0xba,0x00,0x47,0xff,0xf6,0x00,0xba,0x00,0x48, +0xff,0xf6,0x00,0xba,0x00,0x4a,0xff,0xf6,0x00,0xba,0x00,0x52,0xff,0xf6,0x00,0xba,0x00,0x54,0xff,0xf6,0x00,0xba,0x00,0xf8,0xff,0xf6,0x00,0xba,0x00,0xfd,0xff,0xf6,0x00,0xba,0x00,0xff,0xff,0xf6,0x00,0xba,0x01,0x00,0xff,0xf6,0x00,0xba,0x01,0x08,0xff,0xf6,0x00,0xba,0x01,0x0b,0xff,0xf6,0x00,0xba,0x01,0x48,0xff,0xf6,0x00,0xba, +0x01,0x52,0xff,0xf6,0x00,0xba,0x01,0x54,0xff,0xf6,0x00,0xba,0x01,0x56,0xff,0xf6,0x00,0xbb,0x00,0x24,0xff,0x62,0x00,0xbb,0x00,0x26,0xff,0xe1,0x00,0xbb,0x00,0x2a,0xff,0xe1,0x00,0xbb,0x00,0x32,0xff,0xe1,0x00,0xbb,0x00,0x34,0xff,0xcd,0x00,0xbb,0x00,0x36,0xff,0xe5,0x00,0xbb,0x00,0xe3,0xff,0xe5,0x00,0xbb,0x00,0xf7,0xff,0xe1, +0x00,0xbb,0x00,0xfa,0xff,0xe5,0x00,0xbb,0x00,0xfc,0xff,0xe1,0x00,0xbb,0x00,0xfe,0xff,0xe1,0x00,0xbb,0x01,0x03,0xff,0x62,0x00,0xbb,0x01,0x05,0xff,0x62,0x00,0xbb,0x01,0x18,0xff,0xe1,0x00,0xbb,0x01,0x1e,0xff,0xe5,0x00,0xbb,0x01,0x45,0xff,0x62,0x00,0xbb,0x01,0x47,0xff,0xe1,0x00,0xbb,0x01,0x51,0xff,0xe1,0x00,0xbb,0x01,0x53, +0xff,0xe1,0x00,0xbb,0x01,0x55,0xff,0xe1,0x00,0xbb,0x01,0x6e,0xff,0xe1,0x00,0xbb,0x01,0x70,0xff,0xe1,0x00,0xbb,0x01,0x74,0xff,0xe5,0x00,0xbb,0x01,0x85,0xff,0x62,0x00,0xbb,0x01,0x87,0xff,0x62,0x00,0xbb,0x01,0x89,0xff,0xe1,0x00,0xbb,0x02,0x3d,0xff,0xe5,0x00,0xbe,0x00,0x2d,0x00,0x52,0x00,0xbe,0x00,0x37,0xff,0xcf,0x00,0xbe, +0x00,0x3a,0x00,0x27,0x00,0xbe,0x00,0x3d,0x00,0x52,0x00,0xbe,0x00,0x5c,0x00,0x0c,0x00,0xbe,0x00,0xe5,0x00,0x52,0x00,0xbe,0x00,0xeb,0x00,0x0c,0x00,0xbe,0x01,0x20,0xff,0xcf,0x00,0xbe,0x01,0x22,0xff,0xcf,0x00,0xbe,0x01,0x28,0x00,0x52,0x00,0xbe,0x01,0x2a,0x00,0x52,0x00,0xbe,0x01,0x63,0x00,0x52,0x00,0xbe,0x01,0x76,0xff,0xcf, +0x00,0xbe,0x01,0x80,0x00,0x27,0x00,0xbe,0x01,0x83,0x00,0x0c,0x00,0xbe,0x01,0x8c,0x00,0x27,0x00,0xbe,0x01,0x8e,0x00,0x27,0x00,0xbe,0x01,0x90,0x00,0x27,0x00,0xbe,0x01,0x93,0x00,0x0c,0x00,0xbe,0x01,0xdc,0xff,0xcd,0x00,0xbe,0x01,0xe1,0x00,0x52,0x00,0xbe,0x01,0xe3,0xff,0xcd,0x00,0xbe,0x01,0xeb,0x00,0x52,0x00,0xbe,0x01,0xf2, +0x00,0x52,0x00,0xbe,0x01,0xf9,0xff,0xcd,0x00,0xbe,0x02,0x01,0xff,0xcd,0x00,0xbe,0x02,0x1a,0x00,0x0e,0x00,0xbe,0x02,0x31,0x00,0x0e,0x00,0xbf,0x00,0x37,0xff,0x9a,0x00,0xbf,0x00,0x39,0xff,0xcf,0x00,0xbf,0x00,0x3a,0xff,0xcf,0x00,0xbf,0x00,0x3c,0xff,0x9a,0x00,0xbf,0x00,0xea,0xff,0x9a,0x00,0xbf,0x01,0x20,0xff,0x9a,0x00,0xbf, +0x01,0x22,0xff,0x9a,0x00,0xbf,0x01,0x76,0xff,0x9a,0x00,0xbf,0x01,0x80,0xff,0xcf,0x00,0xbf,0x01,0x82,0xff,0x9a,0x00,0xbf,0x01,0x8c,0xff,0xcf,0x00,0xbf,0x01,0x8e,0xff,0xcf,0x00,0xbf,0x01,0x90,0xff,0xcf,0x00,0xbf,0x01,0x92,0xff,0x9a,0x00,0xbf,0x01,0xdc,0xff,0x98,0x00,0xbf,0x01,0xe3,0xff,0x98,0x00,0xbf,0x01,0xf9,0xff,0x98, +0x00,0xbf,0x02,0x01,0xff,0x98,0x00,0xc4,0x00,0x2a,0xff,0xb2,0x00,0xc4,0x00,0x2d,0x00,0x6d,0x00,0xc4,0x00,0x32,0xff,0xa6,0x00,0xc4,0x00,0x37,0xff,0x31,0x00,0xc4,0x00,0x38,0xff,0xf6,0x00,0xc4,0x00,0x39,0xff,0x73,0x00,0xc4,0x00,0x3a,0xff,0x7f,0x00,0xc4,0x00,0x3b,0x00,0x39,0x00,0xc4,0x00,0x3c,0xff,0x08,0x00,0xc4,0x00,0x52, +0x00,0x19,0x00,0xc4,0x00,0x59,0xff,0x8b,0x00,0xc4,0x00,0x5a,0xff,0x7f,0x00,0xc4,0x00,0xea,0xff,0x08,0x00,0xc4,0x00,0xf7,0xff,0xb2,0x00,0xc4,0x01,0x18,0xff,0xa6,0x00,0xc4,0x01,0x20,0xff,0x31,0x00,0xc4,0x01,0x22,0xff,0x31,0x00,0xc4,0x01,0x24,0xff,0xf6,0x00,0xc4,0x01,0x26,0xff,0xf6,0x00,0xc4,0x01,0x51,0xff,0xb2,0x00,0xc4, +0x01,0x53,0xff,0xb2,0x00,0xc4,0x01,0x55,0xff,0xb2,0x00,0xc4,0x01,0x63,0x00,0x6d,0x00,0xc4,0x01,0x6e,0xff,0xa6,0x00,0xc4,0x01,0x70,0xff,0xa6,0x00,0xc4,0x01,0x76,0xff,0x31,0x00,0xc4,0x01,0x78,0xff,0xf6,0x00,0xc4,0x01,0x7a,0xff,0xf6,0x00,0xc4,0x01,0x7c,0xff,0xf6,0x00,0xc4,0x01,0x7e,0xff,0xf6,0x00,0xc4,0x01,0x80,0xff,0x7f, +0x00,0xc4,0x01,0x81,0xff,0x7f,0x00,0xc4,0x01,0x82,0xff,0x08,0x00,0xc4,0x01,0x89,0xff,0xa6,0x00,0xc4,0x01,0x8c,0xff,0x7f,0x00,0xc4,0x01,0x8d,0xff,0x7f,0x00,0xc4,0x01,0x8e,0xff,0x7f,0x00,0xc4,0x01,0x8f,0xff,0x7f,0x00,0xc4,0x01,0x90,0xff,0x7f,0x00,0xc4,0x01,0x91,0xff,0x7f,0x00,0xc4,0x01,0x92,0xff,0x08,0x00,0xc4,0x01,0xdc, +0xff,0x31,0x00,0xc4,0x01,0xde,0xff,0xa4,0x00,0xc4,0x01,0xe1,0x00,0x6f,0x00,0xc4,0x01,0xe3,0xff,0x31,0x00,0xc4,0x01,0xeb,0x00,0x6f,0x00,0xc4,0x01,0xf2,0x00,0x6f,0x00,0xc4,0x01,0xf5,0xff,0xa4,0x00,0xc4,0x01,0xf8,0xff,0xa4,0x00,0xc4,0x01,0xf9,0xff,0x31,0x00,0xc4,0x01,0xfb,0xff,0xa4,0x00,0xc4,0x01,0xfc,0x00,0x39,0x00,0xc4, +0x02,0x01,0xff,0x31,0x00,0xc4,0x02,0x08,0x00,0x1b,0x00,0xc4,0x02,0x0c,0x00,0x1b,0x00,0xc4,0x02,0x15,0x00,0x1b,0x00,0xc4,0x02,0x18,0x00,0x1b,0x00,0xc4,0x02,0x1b,0x00,0x1b,0x00,0xc4,0x02,0x27,0x00,0x1b,0x00,0xc4,0x02,0x2a,0x00,0x1b,0x00,0xc5,0x00,0x2a,0xff,0xa6,0x00,0xc5,0x00,0x2d,0x00,0x6d,0x00,0xc5,0x00,0x32,0xff,0xb2, +0x00,0xc5,0x00,0x37,0xff,0x31,0x00,0xc5,0x00,0x38,0xff,0xf6,0x00,0xc5,0x00,0x39,0xff,0x7f,0x00,0xc5,0x00,0x3a,0xff,0x8b,0x00,0xc5,0x00,0x3b,0x00,0x27,0x00,0xc5,0x00,0x3c,0xff,0x3d,0x00,0xc5,0x00,0x59,0xff,0x8b,0x00,0xc5,0x00,0x5a,0xff,0x7f,0x00,0xc5,0x00,0xea,0xff,0x3d,0x00,0xc5,0x00,0xf7,0xff,0xa6,0x00,0xc5,0x01,0x18, +0xff,0xb2,0x00,0xc5,0x01,0x20,0xff,0x31,0x00,0xc5,0x01,0x22,0xff,0x31,0x00,0xc5,0x01,0x24,0xff,0xf6,0x00,0xc5,0x01,0x26,0xff,0xf6,0x00,0xc5,0x01,0x51,0xff,0xa6,0x00,0xc5,0x01,0x53,0xff,0xa6,0x00,0xc5,0x01,0x55,0xff,0xa6,0x00,0xc5,0x01,0x63,0x00,0x6d,0x00,0xc5,0x01,0x6e,0xff,0xb2,0x00,0xc5,0x01,0x70,0xff,0xb2,0x00,0xc5, +0x01,0x76,0xff,0x31,0x00,0xc5,0x01,0x78,0xff,0xf6,0x00,0xc5,0x01,0x7a,0xff,0xf6,0x00,0xc5,0x01,0x7c,0xff,0xf6,0x00,0xc5,0x01,0x7e,0xff,0xf6,0x00,0xc5,0x01,0x80,0xff,0x8b,0x00,0xc5,0x01,0x81,0xff,0x7f,0x00,0xc5,0x01,0x82,0xff,0x3d,0x00,0xc5,0x01,0x89,0xff,0xb2,0x00,0xc5,0x01,0x8c,0xff,0x8b,0x00,0xc5,0x01,0x8d,0xff,0x7f, +0x00,0xc5,0x01,0x8e,0xff,0x8b,0x00,0xc5,0x01,0x8f,0xff,0x7f,0x00,0xc5,0x01,0x90,0xff,0x8b,0x00,0xc5,0x01,0x91,0xff,0x7f,0x00,0xc5,0x01,0x92,0xff,0x3d,0x00,0xc5,0x01,0xdc,0xff,0x31,0x00,0xc5,0x01,0xde,0xff,0xb0,0x00,0xc5,0x01,0xe1,0x00,0x6f,0x00,0xc5,0x01,0xe3,0xff,0x31,0x00,0xc5,0x01,0xeb,0x00,0x6f,0x00,0xc5,0x01,0xf2, +0x00,0x6f,0x00,0xc5,0x01,0xf5,0xff,0xb0,0x00,0xc5,0x01,0xf8,0xff,0xb0,0x00,0xc5,0x01,0xf9,0xff,0x31,0x00,0xc5,0x01,0xfb,0xff,0xb0,0x00,0xc5,0x01,0xfc,0x00,0x29,0x00,0xc5,0x02,0x01,0xff,0x31,0x00,0xc7,0x00,0x2d,0x00,0x5e,0x00,0xc7,0x00,0x37,0xff,0x6d,0x00,0xc7,0x00,0x39,0xff,0x8b,0x00,0xc7,0x00,0x3a,0xff,0xb6,0x00,0xc7, +0x00,0x3c,0xff,0x64,0x00,0xc7,0x00,0xea,0xff,0x64,0x00,0xc7,0x01,0x20,0xff,0x6d,0x00,0xc7,0x01,0x22,0xff,0x6d,0x00,0xc7,0x01,0x63,0x00,0x5e,0x00,0xc7,0x01,0x76,0xff,0x6d,0x00,0xc7,0x01,0x80,0xff,0xb6,0x00,0xc7,0x01,0x82,0xff,0x64,0x00,0xc7,0x01,0x8c,0xff,0xb6,0x00,0xc7,0x01,0x8e,0xff,0xb6,0x00,0xc7,0x01,0x90,0xff,0xb6, +0x00,0xc7,0x01,0x92,0xff,0x64,0x00,0xc8,0x00,0x2d,0x00,0x3d,0x00,0xc8,0x01,0x63,0x00,0x3d,0x00,0xc9,0x00,0x2d,0x00,0x5e,0x00,0xc9,0x00,0x37,0xff,0x6d,0x00,0xc9,0x00,0x39,0xff,0x8b,0x00,0xc9,0x00,0x3a,0xff,0xb6,0x00,0xc9,0x00,0x3c,0xff,0x64,0x00,0xc9,0x00,0xea,0xff,0x64,0x00,0xc9,0x01,0x20,0xff,0x6d,0x00,0xc9,0x01,0x22, +0xff,0x6d,0x00,0xc9,0x01,0x63,0x00,0x5e,0x00,0xc9,0x01,0x76,0xff,0x6d,0x00,0xc9,0x01,0x80,0xff,0xb6,0x00,0xc9,0x01,0x82,0xff,0x64,0x00,0xc9,0x01,0x8c,0xff,0xb6,0x00,0xc9,0x01,0x8e,0xff,0xb6,0x00,0xc9,0x01,0x90,0xff,0xb6,0x00,0xc9,0x01,0x92,0xff,0x64,0x00,0xca,0x00,0x2d,0x00,0x3d,0x00,0xca,0x01,0x63,0x00,0x3d,0x00,0xcb, +0x00,0x2d,0x00,0x3d,0x00,0xcb,0x01,0x63,0x00,0x3d,0x00,0xd0,0x00,0x24,0xff,0xe5,0x00,0xd0,0x00,0x37,0xff,0xa4,0x00,0xd0,0x00,0x3b,0xff,0xdb,0x00,0xd0,0x00,0x3d,0xff,0xcf,0x00,0xd0,0x00,0xe5,0xff,0xcf,0x00,0xd0,0x01,0x03,0xff,0xe5,0x00,0xd0,0x01,0x05,0xff,0xe5,0x00,0xd0,0x01,0x20,0xff,0xa4,0x00,0xd0,0x01,0x22,0xff,0xa4, +0x00,0xd0,0x01,0x28,0xff,0xcf,0x00,0xd0,0x01,0x2a,0xff,0xcf,0x00,0xd0,0x01,0x45,0xff,0xe5,0x00,0xd0,0x01,0x76,0xff,0xa4,0x00,0xd0,0x01,0x85,0xff,0xe5,0x00,0xd0,0x01,0x87,0xff,0xe5,0x00,0xd1,0x00,0x24,0xff,0xe5,0x00,0xd1,0x00,0x37,0xff,0xa4,0x00,0xd1,0x00,0x3b,0xff,0xdb,0x00,0xd1,0x00,0x3d,0xff,0xcf,0x00,0xd1,0x00,0xe5, +0xff,0xcf,0x00,0xd1,0x01,0x03,0xff,0xe5,0x00,0xd1,0x01,0x05,0xff,0xe5,0x00,0xd1,0x01,0x20,0xff,0xa4,0x00,0xd1,0x01,0x22,0xff,0xa4,0x00,0xd1,0x01,0x28,0xff,0xcf,0x00,0xd1,0x01,0x2a,0xff,0xcf,0x00,0xd1,0x01,0x45,0xff,0xe5,0x00,0xd1,0x01,0x76,0xff,0xa4,0x00,0xd1,0x01,0x85,0xff,0xe5,0x00,0xd1,0x01,0x87,0xff,0xe5,0x00,0xd2, +0x00,0x24,0xff,0xe5,0x00,0xd2,0x00,0x37,0xff,0xa4,0x00,0xd2,0x00,0x3b,0xff,0xdb,0x00,0xd2,0x00,0x3d,0xff,0xcf,0x00,0xd2,0x00,0xe5,0xff,0xcf,0x00,0xd2,0x01,0x03,0xff,0xe5,0x00,0xd2,0x01,0x05,0xff,0xe5,0x00,0xd2,0x01,0x20,0xff,0xa4,0x00,0xd2,0x01,0x22,0xff,0xa4,0x00,0xd2,0x01,0x28,0xff,0xcf,0x00,0xd2,0x01,0x2a,0xff,0xcf, +0x00,0xd2,0x01,0x45,0xff,0xe5,0x00,0xd2,0x01,0x76,0xff,0xa4,0x00,0xd2,0x01,0x85,0xff,0xe5,0x00,0xd2,0x01,0x87,0xff,0xe5,0x00,0xe1,0x00,0x0d,0xff,0x31,0x00,0xe1,0x00,0x22,0xff,0x9a,0x00,0xe1,0x00,0x24,0x00,0x3b,0x00,0xe1,0x00,0x26,0xff,0xbe,0x00,0xe1,0x00,0x2a,0xff,0xbe,0x00,0xe1,0x00,0x2d,0x00,0x64,0x00,0xe1,0x00,0x32, +0xff,0xba,0x00,0xe1,0x00,0x34,0xff,0xba,0x00,0xe1,0x00,0x37,0xff,0x8f,0x00,0xe1,0x00,0x38,0xff,0xe3,0x00,0xe1,0x00,0x39,0xff,0x8b,0x00,0xe1,0x00,0x3a,0xff,0xcf,0x00,0xe1,0x00,0x3c,0xff,0x7f,0x00,0xe1,0x00,0x3d,0x00,0x3b,0x00,0xe1,0x00,0x57,0xff,0xe5,0x00,0xe1,0x00,0x59,0xff,0x9a,0x00,0xe1,0x00,0x5a,0xff,0xbe,0x00,0xe1, +0x00,0x5c,0xff,0xb4,0x00,0xe1,0x00,0x64,0xff,0xbe,0x00,0xe1,0x00,0x67,0xff,0xba,0x00,0xe1,0x00,0x68,0xff,0xe3,0x00,0xe1,0x00,0x8d,0xff,0x9a,0x00,0xe1,0x00,0x92,0xff,0xba,0x00,0xe1,0x00,0xaf,0xff,0xba,0x00,0xe1,0x00,0xb0,0xff,0xba,0x00,0xe1,0x00,0xb4,0xff,0x73,0x00,0xe1,0x00,0xb5,0xff,0x8b,0x00,0xe1,0x00,0xb6,0xff,0x73, +0x00,0xe1,0x00,0xb7,0xff,0x7f,0x00,0xe1,0x00,0xba,0xff,0xb4,0x00,0xe1,0x00,0xbb,0xff,0x9a,0x00,0xe1,0x00,0xc4,0x00,0x44,0x00,0xe1,0x00,0xc5,0x00,0x44,0x00,0xe1,0x00,0xd0,0xff,0xba,0x00,0xe1,0x00,0xd1,0xff,0xba,0x00,0xe1,0x00,0xd2,0xff,0xba,0x00,0xe1,0x00,0xd3,0xff,0xe3,0x00,0xe1,0x00,0xd4,0xff,0xe3,0x00,0xe1,0x00,0xd5, +0xff,0xe3,0x00,0xe1,0x00,0xe5,0x00,0x3b,0x00,0xe1,0x00,0xea,0xff,0x7f,0x00,0xe1,0x00,0xeb,0xff,0xb4,0x00,0xe1,0x00,0xf7,0xff,0xbe,0x00,0xe1,0x00,0xfc,0xff,0xbe,0x00,0xe1,0x00,0xfe,0xff,0xbe,0x00,0xe1,0x01,0x03,0x00,0x3b,0x00,0xe1,0x01,0x05,0x00,0x3b,0x00,0xe1,0x01,0x18,0xff,0xba,0x00,0xe1,0x01,0x20,0xff,0x8f,0x00,0xe1, +0x01,0x21,0xff,0xe5,0x00,0xe1,0x01,0x22,0xff,0x8f,0x00,0xe1,0x01,0x23,0xff,0xe5,0x00,0xe1,0x01,0x24,0xff,0xe3,0x00,0xe1,0x01,0x26,0xff,0xe3,0x00,0xe1,0x01,0x28,0x00,0x3b,0x00,0xe1,0x01,0x2a,0x00,0x3b,0x00,0xe1,0x01,0x45,0x00,0x3b,0x00,0xe1,0x01,0x47,0xff,0xbe,0x00,0xe1,0x01,0x51,0xff,0xbe,0x00,0xe1,0x01,0x53,0xff,0xbe, +0x00,0xe1,0x01,0x55,0xff,0xbe,0x00,0xe1,0x01,0x63,0x00,0x64,0x00,0xe1,0x01,0x6e,0xff,0xba,0x00,0xe1,0x01,0x70,0xff,0xba,0x00,0xe1,0x01,0x76,0xff,0x8f,0x00,0xe1,0x01,0x77,0xff,0xe5,0x00,0xe1,0x01,0x78,0xff,0xe3,0x00,0xe1,0x01,0x7a,0xff,0xe3,0x00,0xe1,0x01,0x7c,0xff,0xe3,0x00,0xe1,0x01,0x7e,0xff,0xe3,0x00,0xe1,0x01,0x80, +0xff,0xcf,0x00,0xe1,0x01,0x81,0xff,0xbe,0x00,0xe1,0x01,0x82,0xff,0x7f,0x00,0xe1,0x01,0x83,0xff,0xb4,0x00,0xe1,0x01,0x85,0x00,0x3b,0x00,0xe1,0x01,0x87,0x00,0x3b,0x00,0xe1,0x01,0x89,0xff,0xba,0x00,0xe1,0x01,0x8c,0xff,0xcf,0x00,0xe1,0x01,0x8d,0xff,0xbe,0x00,0xe1,0x01,0x8e,0xff,0xcf,0x00,0xe1,0x01,0x8f,0xff,0xbe,0x00,0xe1, +0x01,0x90,0xff,0xcf,0x00,0xe1,0x01,0x91,0xff,0xbe,0x00,0xe1,0x01,0x92,0xff,0x7f,0x00,0xe1,0x01,0x93,0xff,0xb4,0x00,0xe3,0x00,0x57,0xff,0xbe,0x00,0xe3,0x00,0x59,0xff,0xcf,0x00,0xe3,0x00,0x5a,0xff,0xe5,0x00,0xe3,0x00,0x5c,0xff,0xd1,0x00,0xe3,0x00,0xba,0xff,0xbe,0x00,0xe3,0x00,0xc4,0xff,0xb2,0x00,0xe3,0x00,0xc5,0xff,0xb2, +0x00,0xe3,0x00,0xeb,0xff,0xd1,0x00,0xe3,0x01,0x21,0xff,0xbe,0x00,0xe3,0x01,0x23,0xff,0xbe,0x00,0xe3,0x01,0x77,0xff,0xbe,0x00,0xe3,0x01,0x81,0xff,0xe5,0x00,0xe3,0x01,0x83,0xff,0xd1,0x00,0xe3,0x01,0x8d,0xff,0xe5,0x00,0xe3,0x01,0x8f,0xff,0xe5,0x00,0xe3,0x01,0x91,0xff,0xe5,0x00,0xe3,0x01,0x93,0xff,0xd1,0x00,0xe5,0x00,0x2d, +0x00,0x52,0x00,0xe5,0x00,0x37,0x00,0x27,0x00,0xe5,0x00,0x5c,0xff,0xcb,0x00,0xe5,0x00,0x77,0x00,0x46,0x00,0xe5,0x00,0xab,0x00,0x27,0x00,0xe5,0x00,0xba,0xff,0xbe,0x00,0xe5,0x00,0xbf,0x00,0x52,0x00,0xe5,0x00,0xeb,0xff,0xcb,0x00,0xe5,0x01,0x20,0x00,0x27,0x00,0xe5,0x01,0x22,0x00,0x27,0x00,0xe5,0x01,0x5c,0x00,0x46,0x00,0xe5, +0x01,0x5e,0x00,0x46,0x00,0xe5,0x01,0x60,0x00,0x46,0x00,0xe5,0x01,0x63,0x00,0x52,0x00,0xe5,0x01,0x76,0x00,0x27,0x00,0xe5,0x01,0x83,0xff,0xcb,0x00,0xe5,0x01,0x93,0xff,0xcb,0x00,0xe8,0x00,0x0f,0xff,0x7f,0x00,0xe8,0x00,0x11,0xff,0x7f,0x00,0xe8,0x00,0x24,0xff,0xdf,0x00,0xe8,0x00,0x37,0xff,0xa4,0x00,0xe8,0x00,0x3b,0xff,0xcb, +0x00,0xe8,0x00,0x3d,0xff,0xcf,0x00,0xe8,0x00,0x62,0xff,0xdf,0x00,0xe8,0x00,0x63,0xff,0xdf,0x00,0xe8,0x00,0x91,0xff,0xb6,0x00,0xe8,0x00,0xac,0xff,0x7f,0x00,0xe8,0x00,0xad,0xff,0xdf,0x00,0xe8,0x00,0xae,0xff,0xdf,0x00,0xe8,0x00,0xbb,0xff,0xf6,0x00,0xe8,0x00,0xc4,0xff,0x8b,0x00,0xe8,0x00,0xc5,0xff,0x8b,0x00,0xe8,0x00,0xc7, +0xff,0xdf,0x00,0xe8,0x00,0xc9,0xff,0xdf,0x00,0xe8,0x00,0xe5,0xff,0xcf,0x00,0xe8,0x01,0x03,0xff,0xdf,0x00,0xe8,0x01,0x05,0xff,0xdf,0x00,0xe8,0x01,0x20,0xff,0xa4,0x00,0xe8,0x01,0x22,0xff,0xa4,0x00,0xe8,0x01,0x28,0xff,0xcf,0x00,0xe8,0x01,0x2a,0xff,0xcf,0x00,0xe8,0x01,0x45,0xff,0xdf,0x00,0xe8,0x01,0x76,0xff,0xa4,0x00,0xe8, +0x01,0x85,0xff,0xdf,0x00,0xe8,0x01,0x87,0xff,0xdf,0x00,0xea,0x00,0x0f,0xff,0x50,0x00,0xea,0x00,0x11,0xff,0x3d,0x00,0xea,0x00,0x24,0xff,0x62,0x00,0xea,0x00,0x26,0xff,0xd3,0x00,0xea,0x00,0x2a,0xff,0xd3,0x00,0xea,0x00,0x2d,0xff,0xbe,0x00,0xea,0x00,0x32,0xff,0xd3,0x00,0xea,0x00,0x34,0xff,0xd3,0x00,0xea,0x00,0x36,0xff,0xe5, +0x00,0xea,0x00,0x37,0x00,0x27,0x00,0xea,0x00,0x44,0xff,0x39,0x00,0xea,0x00,0x46,0xff,0x4c,0x00,0xea,0x00,0x47,0xff,0x4c,0x00,0xea,0x00,0x48,0xff,0x4c,0x00,0xea,0x00,0x49,0xff,0xe5,0x00,0xea,0x00,0x4a,0xff,0x4c,0x00,0xea,0x00,0x50,0xff,0x73,0x00,0xea,0x00,0x51,0xff,0x73,0x00,0xea,0x00,0x52,0xff,0x4c,0x00,0xea,0x00,0x53, +0xff,0x73,0x00,0xea,0x00,0x54,0xff,0x4c,0x00,0xea,0x00,0x55,0xff,0x73,0x00,0xea,0x00,0x56,0xff,0x7b,0x00,0xea,0x00,0x58,0xff,0x73,0x00,0xea,0x00,0x62,0xff,0x62,0x00,0xea,0x00,0x63,0xff,0x62,0x00,0xea,0x00,0x64,0xff,0xcd,0x00,0xea,0x00,0x67,0xff,0xd3,0x00,0xea,0x00,0x69,0xff,0x39,0x00,0xea,0x00,0x6a,0xff,0x39,0x00,0xea, +0x00,0x6b,0xff,0x39,0x00,0xea,0x00,0x6c,0xff,0x7f,0x00,0xea,0x00,0x6d,0xff,0x66,0x00,0xea,0x00,0x6e,0xff,0x39,0x00,0xea,0x00,0x6f,0xff,0x4c,0x00,0xea,0x00,0x70,0xff,0x4c,0x00,0xea,0x00,0x71,0xff,0x4c,0x00,0xea,0x00,0x72,0xff,0x4c,0x00,0xea,0x00,0x73,0xff,0x4c,0x00,0xea,0x00,0x77,0x00,0x5a,0x00,0xea,0x00,0x78,0xff,0x73, +0x00,0xea,0x00,0x79,0xff,0x4c,0x00,0xea,0x00,0x7a,0xff,0x4c,0x00,0xea,0x00,0x7b,0xff,0x4c,0x00,0xea,0x00,0x7c,0xff,0x4c,0x00,0xea,0x00,0x7d,0xff,0x4c,0x00,0xea,0x00,0x7e,0xff,0x73,0x00,0xea,0x00,0x7f,0xff,0x73,0x00,0xea,0x00,0x80,0xff,0x73,0x00,0xea,0x00,0x81,0xff,0x73,0x00,0xea,0x00,0x91,0xff,0x3f,0x00,0xea,0x00,0x92, +0xff,0xd3,0x00,0xea,0x00,0xa0,0xff,0x39,0x00,0xea,0x00,0xa2,0xff,0x1b,0x00,0xea,0x00,0xaa,0xff,0xcf,0x00,0xea,0x00,0xac,0xff,0x3d,0x00,0xea,0x00,0xad,0xff,0x62,0x00,0xea,0x00,0xae,0xff,0x62,0x00,0xea,0x00,0xaf,0xff,0xd3,0x00,0xea,0x00,0xb0,0xff,0xd3,0x00,0xea,0x00,0xb1,0xff,0x4c,0x00,0xea,0x00,0xbe,0xff,0x9a,0x00,0xea, +0x00,0xc4,0xff,0x08,0x00,0xea,0x00,0xc5,0xff,0x08,0x00,0xea,0x00,0xc7,0xff,0x62,0x00,0xea,0x00,0xc9,0xff,0x62,0x00,0xea,0x00,0xd0,0xff,0xd3,0x00,0xea,0x00,0xd1,0xff,0xd3,0x00,0xea,0x00,0xd2,0xff,0xd3,0x00,0xea,0x00,0xe3,0xff,0xe5,0x00,0xea,0x00,0xe4,0xff,0x7b,0x00,0xea,0x00,0xf7,0xff,0xd3,0x00,0xea,0x00,0xf8,0xff,0x4c, +0x00,0xea,0x00,0xfa,0xff,0xe5,0x00,0xea,0x00,0xfb,0xff,0x7b,0x00,0xea,0x00,0xfc,0xff,0xd3,0x00,0xea,0x00,0xfd,0xff,0x4c,0x00,0xea,0x00,0xfe,0xff,0xd3,0x00,0xea,0x00,0xff,0xff,0x4c,0x00,0xea,0x01,0x00,0xff,0x4c,0x00,0xea,0x01,0x03,0xff,0x62,0x00,0xea,0x01,0x04,0xff,0x7f,0x00,0xea,0x01,0x05,0xff,0x62,0x00,0xea,0x01,0x06, +0xff,0x39,0x00,0xea,0x01,0x08,0xff,0x4c,0x00,0xea,0x01,0x0b,0xff,0x4c,0x00,0xea,0x01,0x0d,0xff,0x4c,0x00,0xea,0x01,0x15,0xff,0x73,0x00,0xea,0x01,0x17,0xff,0x73,0x00,0xea,0x01,0x18,0xff,0xd3,0x00,0xea,0x01,0x19,0xff,0x4c,0x00,0xea,0x01,0x1b,0xff,0x73,0x00,0xea,0x01,0x1d,0xff,0x73,0x00,0xea,0x01,0x1e,0xff,0xe5,0x00,0xea, +0x01,0x1f,0xff,0x7b,0x00,0xea,0x01,0x20,0x00,0x27,0x00,0xea,0x01,0x22,0x00,0x27,0x00,0xea,0x01,0x25,0xff,0x73,0x00,0xea,0x01,0x27,0xff,0x73,0x00,0xea,0x01,0x45,0xff,0x62,0x00,0xea,0x01,0x46,0xff,0x7f,0x00,0xea,0x01,0x47,0xff,0xd3,0x00,0xea,0x01,0x48,0xff,0x4c,0x00,0xea,0x01,0x4c,0xff,0x4c,0x00,0xea,0x01,0x4e,0xff,0x4c, +0x00,0xea,0x01,0x50,0xff,0x4c,0x00,0xea,0x01,0x51,0xff,0xd3,0x00,0xea,0x01,0x52,0xff,0x4c,0x00,0xea,0x01,0x53,0xff,0xd3,0x00,0xea,0x01,0x54,0xff,0x4c,0x00,0xea,0x01,0x55,0xff,0xd3,0x00,0xea,0x01,0x56,0xff,0x4c,0x00,0xea,0x01,0x5c,0x00,0x5a,0x00,0xea,0x01,0x5e,0x00,0x5a,0x00,0xea,0x01,0x60,0x00,0x5a,0x00,0xea,0x01,0x63, +0xff,0xbe,0x00,0xea,0x01,0x6d,0xff,0x73,0x00,0xea,0x01,0x6e,0xff,0xd3,0x00,0xea,0x01,0x6f,0xff,0x4c,0x00,0xea,0x01,0x70,0xff,0xd3,0x00,0xea,0x01,0x71,0xff,0x4c,0x00,0xea,0x01,0x73,0xff,0x73,0x00,0xea,0x01,0x74,0xff,0xe5,0x00,0xea,0x01,0x75,0xff,0x7b,0x00,0xea,0x01,0x76,0x00,0x27,0x00,0xea,0x01,0x79,0xff,0x73,0x00,0xea, +0x01,0x7b,0xff,0x73,0x00,0xea,0x01,0x7d,0xff,0x73,0x00,0xea,0x01,0x7f,0xff,0x73,0x00,0xea,0x01,0x85,0xff,0x62,0x00,0xea,0x01,0x86,0xff,0x7f,0x00,0xea,0x01,0x87,0xff,0x62,0x00,0xea,0x01,0x88,0xff,0x39,0x00,0xea,0x01,0x89,0xff,0xd3,0x00,0xea,0x01,0x8a,0xff,0x4c,0x00,0xea,0x02,0x3d,0xff,0xe5,0x00,0xea,0x02,0x3e,0xff,0x7b, +0x00,0xeb,0x00,0x05,0x00,0x1d,0x00,0xeb,0x00,0x0a,0x00,0x1d,0x00,0xeb,0x00,0x0f,0xff,0x9a,0x00,0xeb,0x00,0x11,0xff,0x81,0x00,0xeb,0x00,0x22,0xff,0xb4,0x00,0xeb,0x00,0x46,0xff,0xf6,0x00,0xeb,0x00,0x47,0xff,0xf6,0x00,0xeb,0x00,0x48,0xff,0xf6,0x00,0xeb,0x00,0x49,0x00,0x04,0x00,0xeb,0x00,0x4a,0xff,0xf6,0x00,0xeb,0x00,0x52, +0xff,0xf6,0x00,0xeb,0x00,0x54,0xff,0xf6,0x00,0xeb,0x00,0x57,0x00,0x06,0x00,0xeb,0x00,0x6f,0xff,0xf6,0x00,0xeb,0x00,0x70,0xff,0xf6,0x00,0xeb,0x00,0x71,0xff,0xf6,0x00,0xeb,0x00,0x72,0xff,0xf6,0x00,0xeb,0x00,0x73,0xff,0xf6,0x00,0xeb,0x00,0x79,0xff,0xf6,0x00,0xeb,0x00,0x7a,0xff,0xf6,0x00,0xeb,0x00,0x7b,0xff,0xf6,0x00,0xeb, +0x00,0x7c,0xff,0xf6,0x00,0xeb,0x00,0x7d,0xff,0xf6,0x00,0xeb,0x00,0xac,0xff,0x81,0x00,0xeb,0x00,0xb1,0xff,0xf6,0x00,0xeb,0x00,0xbf,0x00,0x0c,0x00,0xeb,0x00,0xc4,0xff,0x8d,0x00,0xeb,0x00,0xc5,0xff,0x8d,0x00,0xeb,0x00,0xf8,0xff,0xf6,0x00,0xeb,0x00,0xfd,0xff,0xf6,0x00,0xeb,0x00,0xff,0xff,0xf6,0x00,0xeb,0x01,0x00,0xff,0xf6, +0x00,0xeb,0x01,0x08,0xff,0xf6,0x00,0xeb,0x01,0x0b,0xff,0xf6,0x00,0xeb,0x01,0x0d,0xff,0xf6,0x00,0xeb,0x01,0x19,0xff,0xf6,0x00,0xeb,0x01,0x21,0x00,0x06,0x00,0xeb,0x01,0x23,0x00,0x06,0x00,0xeb,0x01,0x48,0xff,0xf6,0x00,0xeb,0x01,0x4c,0xff,0xf6,0x00,0xeb,0x01,0x4e,0xff,0xf6,0x00,0xeb,0x01,0x50,0xff,0xf6,0x00,0xeb,0x01,0x52, +0xff,0xf6,0x00,0xeb,0x01,0x54,0xff,0xf6,0x00,0xeb,0x01,0x56,0xff,0xf6,0x00,0xeb,0x01,0x6f,0xff,0xf6,0x00,0xeb,0x01,0x71,0xff,0xf6,0x00,0xeb,0x01,0x77,0x00,0x06,0x00,0xeb,0x01,0x8a,0xff,0xf6,0x00,0xec,0x00,0x0f,0xfe,0xba,0x00,0xec,0x00,0x11,0xfe,0xba,0x00,0xec,0x00,0x24,0xff,0x62,0x00,0xec,0x00,0x2a,0xff,0xf6,0x00,0xec, +0x00,0x2d,0xff,0x7f,0x00,0xec,0x00,0x3a,0x00,0x27,0x00,0xec,0x00,0x3b,0xff,0xc3,0x00,0xec,0x00,0x44,0xff,0xbe,0x00,0xec,0x00,0x46,0xff,0xb4,0x00,0xec,0x00,0x47,0xff,0xb4,0x00,0xec,0x00,0x48,0xff,0xb4,0x00,0xec,0x00,0x4a,0xff,0xb4,0x00,0xec,0x00,0x52,0xff,0xb4,0x00,0xec,0x00,0x54,0xff,0xb6,0x00,0xec,0x00,0x62,0xff,0x62, +0x00,0xec,0x00,0x63,0xff,0x62,0x00,0xec,0x00,0x69,0xff,0xbe,0x00,0xec,0x00,0x6a,0xff,0xbe,0x00,0xec,0x00,0x6b,0xff,0xbe,0x00,0xec,0x00,0x6c,0xff,0xbe,0x00,0xec,0x00,0x6d,0xff,0xbe,0x00,0xec,0x00,0x6e,0xff,0xbe,0x00,0xec,0x00,0x6f,0xff,0xb4,0x00,0xec,0x00,0x70,0xff,0xb4,0x00,0xec,0x00,0x71,0xff,0xb4,0x00,0xec,0x00,0x72, +0xff,0xb4,0x00,0xec,0x00,0x73,0xff,0xb4,0x00,0xec,0x00,0x79,0xff,0xb4,0x00,0xec,0x00,0x7a,0xff,0xb4,0x00,0xec,0x00,0x7b,0xff,0xb4,0x00,0xec,0x00,0x7c,0xff,0xb4,0x00,0xec,0x00,0x7d,0xff,0xb4,0x00,0xec,0x00,0x91,0xfe,0xe9,0x00,0xec,0x00,0xa0,0xff,0xbe,0x00,0xec,0x00,0xac,0xfe,0xba,0x00,0xec,0x00,0xad,0xff,0x62,0x00,0xec, +0x00,0xae,0xff,0x62,0x00,0xec,0x00,0xb1,0xff,0xb4,0x00,0xec,0x00,0xc4,0xfe,0xba,0x00,0xec,0x00,0xc5,0xfe,0xae,0x00,0xec,0x00,0xc7,0xff,0x62,0x00,0xec,0x00,0xc9,0xff,0x62,0x00,0xec,0x00,0xf7,0xff,0xf6,0x00,0xec,0x00,0xf8,0xff,0xb4,0x00,0xec,0x00,0xfd,0xff,0xb4,0x00,0xec,0x00,0xff,0xff,0xb4,0x00,0xec,0x01,0x00,0xff,0xb4, +0x00,0xec,0x01,0x03,0xff,0x62,0x00,0xec,0x01,0x04,0xff,0xbe,0x00,0xec,0x01,0x05,0xff,0x62,0x00,0xec,0x01,0x06,0xff,0xbe,0x00,0xec,0x01,0x08,0xff,0xb4,0x00,0xec,0x01,0x0b,0xff,0xb4,0x00,0xec,0x01,0x0d,0xff,0xb4,0x00,0xec,0x01,0x19,0xff,0xb4,0x00,0xec,0x01,0x45,0xff,0x62,0x00,0xec,0x01,0x46,0xff,0xbe,0x00,0xec,0x01,0x48, +0xff,0xb4,0x00,0xec,0x01,0x4c,0xff,0xb4,0x00,0xec,0x01,0x4e,0xff,0xb4,0x00,0xec,0x01,0x50,0xff,0xb4,0x00,0xec,0x01,0x51,0xff,0xf6,0x00,0xec,0x01,0x52,0xff,0xb4,0x00,0xec,0x01,0x53,0xff,0xf6,0x00,0xec,0x01,0x54,0xff,0xb4,0x00,0xec,0x01,0x55,0xff,0xf6,0x00,0xec,0x01,0x56,0xff,0xb4,0x00,0xec,0x01,0x63,0xff,0x7f,0x00,0xec, +0x01,0x6f,0xff,0xb4,0x00,0xec,0x01,0x71,0xff,0xb4,0x00,0xec,0x01,0x80,0x00,0x27,0x00,0xec,0x01,0x85,0xff,0x62,0x00,0xec,0x01,0x86,0xff,0xbe,0x00,0xec,0x01,0x87,0xff,0x62,0x00,0xec,0x01,0x88,0xff,0xbe,0x00,0xec,0x01,0x8a,0xff,0xb4,0x00,0xec,0x01,0x8c,0x00,0x27,0x00,0xec,0x01,0x8e,0x00,0x27,0x00,0xec,0x01,0x90,0x00,0x27, +0x00,0xed,0x00,0x44,0xff,0xe5,0x00,0xed,0x00,0x49,0xff,0xf6,0x00,0xed,0x00,0x5b,0xff,0xe7,0x00,0xed,0x00,0x69,0xff,0xe5,0x00,0xed,0x00,0x6a,0xff,0xe5,0x00,0xed,0x00,0x6b,0xff,0xe5,0x00,0xed,0x00,0x6c,0xff,0xe5,0x00,0xed,0x00,0x6d,0xff,0xe5,0x00,0xed,0x00,0x6e,0xff,0xe5,0x00,0xed,0x00,0xa0,0xff,0xe5,0x00,0xed,0x00,0xc0, +0xff,0xf6,0x00,0xed,0x00,0xc1,0xff,0xf6,0x00,0xed,0x01,0x04,0xff,0xe5,0x00,0xed,0x01,0x06,0xff,0xe5,0x00,0xed,0x01,0x46,0xff,0xe5,0x00,0xed,0x01,0x86,0xff,0xe5,0x00,0xed,0x01,0x88,0xff,0xe5,0x00,0xf7,0x00,0x37,0xff,0xcf,0x00,0xf7,0x00,0x39,0xff,0xe5,0x00,0xf7,0x00,0x5c,0xff,0xe5,0x00,0xf7,0x00,0xba,0xff,0xe5,0x00,0xf7, +0x00,0xeb,0xff,0xe5,0x00,0xf7,0x01,0x20,0xff,0xcf,0x00,0xf7,0x01,0x22,0xff,0xcf,0x00,0xf7,0x01,0x76,0xff,0xcf,0x00,0xf7,0x01,0x83,0xff,0xe5,0x00,0xf7,0x01,0x93,0xff,0xe5,0x00,0xf8,0x00,0x4d,0x00,0x2f,0x00,0xf8,0x01,0x64,0x00,0x2f,0x00,0xfa,0x00,0x57,0xff,0xbe,0x00,0xfa,0x00,0x59,0xff,0xcf,0x00,0xfa,0x00,0x5a,0xff,0xe5, +0x00,0xfa,0x00,0x5c,0xff,0xd1,0x00,0xfa,0x00,0xba,0xff,0xbe,0x00,0xfa,0x00,0xc4,0xff,0xb2,0x00,0xfa,0x00,0xc5,0xff,0xb2,0x00,0xfa,0x00,0xeb,0xff,0xd1,0x00,0xfa,0x01,0x21,0xff,0xbe,0x00,0xfa,0x01,0x23,0xff,0xbe,0x00,0xfa,0x01,0x77,0xff,0xbe,0x00,0xfa,0x01,0x81,0xff,0xe5,0x00,0xfa,0x01,0x83,0xff,0xd1,0x00,0xfa,0x01,0x8d, +0xff,0xe5,0x00,0xfa,0x01,0x8f,0xff,0xe5,0x00,0xfa,0x01,0x91,0xff,0xe5,0x00,0xfa,0x01,0x93,0xff,0xd1,0x00,0xfc,0x00,0x26,0xff,0xc9,0x00,0xfc,0x00,0x2a,0xff,0xc9,0x00,0xfc,0x00,0x32,0xff,0xe5,0x00,0xfc,0x00,0x34,0xff,0xc9,0x00,0xfc,0x00,0x64,0xff,0xc9,0x00,0xfc,0x00,0x67,0xff,0xc9,0x00,0xfc,0x00,0x77,0x00,0x1d,0x00,0xfc, +0x00,0x92,0xff,0xc9,0x00,0xfc,0x00,0xaa,0xff,0xcf,0x00,0xfc,0x00,0xaf,0xff,0xc9,0x00,0xfc,0x00,0xb0,0xff,0xc9,0x00,0xfc,0x00,0xbe,0xff,0xcf,0x00,0xfc,0x00,0xd0,0xff,0xc9,0x00,0xfc,0x00,0xd1,0xff,0xc9,0x00,0xfc,0x00,0xd2,0xff,0xc9,0x00,0xfc,0x00,0xf7,0xff,0xc9,0x00,0xfc,0x00,0xfc,0xff,0xc9,0x00,0xfc,0x00,0xfe,0xff,0xc9, +0x00,0xfc,0x01,0x18,0xff,0xe5,0x00,0xfc,0x01,0x47,0xff,0xc9,0x00,0xfc,0x01,0x51,0xff,0xc9,0x00,0xfc,0x01,0x53,0xff,0xc9,0x00,0xfc,0x01,0x55,0xff,0xc9,0x00,0xfc,0x01,0x5c,0x00,0x1d,0x00,0xfc,0x01,0x5e,0x00,0x1d,0x00,0xfc,0x01,0x60,0x00,0x1d,0x00,0xfc,0x01,0x6e,0xff,0xe5,0x00,0xfc,0x01,0x70,0xff,0xe5,0x00,0xfc,0x01,0x89, +0xff,0xe5,0x00,0xfd,0x00,0x2d,0x00,0x46,0x00,0xfd,0x00,0x37,0xff,0x9a,0x00,0xfd,0x00,0x3c,0xff,0xb4,0x00,0xfd,0x00,0xea,0xff,0xb4,0x00,0xfd,0x01,0x20,0xff,0x9a,0x00,0xfd,0x01,0x22,0xff,0x9a,0x00,0xfd,0x01,0x63,0x00,0x46,0x00,0xfd,0x01,0x76,0xff,0x9a,0x00,0xfd,0x01,0x82,0xff,0xb4,0x00,0xfd,0x01,0x92,0xff,0xb4,0x00,0xfe, +0x00,0x26,0xff,0xc9,0x00,0xfe,0x00,0x2a,0xff,0xc9,0x00,0xfe,0x00,0x32,0xff,0xe5,0x00,0xfe,0x00,0x34,0xff,0xc9,0x00,0xfe,0x00,0x64,0xff,0xc9,0x00,0xfe,0x00,0x67,0xff,0xc9,0x00,0xfe,0x00,0x77,0x00,0x1d,0x00,0xfe,0x00,0x92,0xff,0xc9,0x00,0xfe,0x00,0xaa,0xff,0xcf,0x00,0xfe,0x00,0xaf,0xff,0xc9,0x00,0xfe,0x00,0xb0,0xff,0xc9, +0x00,0xfe,0x00,0xbe,0xff,0xcf,0x00,0xfe,0x00,0xd0,0xff,0xc9,0x00,0xfe,0x00,0xd1,0xff,0xc9,0x00,0xfe,0x00,0xd2,0xff,0xc9,0x00,0xfe,0x00,0xf7,0xff,0xc9,0x00,0xfe,0x00,0xfc,0xff,0xc9,0x00,0xfe,0x00,0xfe,0xff,0xc9,0x00,0xfe,0x01,0x18,0xff,0xe5,0x00,0xfe,0x01,0x47,0xff,0xc9,0x00,0xfe,0x01,0x51,0xff,0xc9,0x00,0xfe,0x01,0x53, +0xff,0xc9,0x00,0xfe,0x01,0x55,0xff,0xc9,0x00,0xfe,0x01,0x5c,0x00,0x1d,0x00,0xfe,0x01,0x5e,0x00,0x1d,0x00,0xfe,0x01,0x60,0x00,0x1d,0x00,0xfe,0x01,0x6e,0xff,0xe5,0x00,0xfe,0x01,0x70,0xff,0xe5,0x00,0xfe,0x01,0x89,0xff,0xe5,0x00,0xff,0x00,0x2d,0x00,0x46,0x00,0xff,0x00,0x37,0xff,0x9a,0x00,0xff,0x00,0x3c,0xff,0xb4,0x00,0xff, +0x00,0xea,0xff,0xb4,0x00,0xff,0x01,0x20,0xff,0x9a,0x00,0xff,0x01,0x22,0xff,0x9a,0x00,0xff,0x01,0x63,0x00,0x46,0x00,0xff,0x01,0x76,0xff,0x9a,0x00,0xff,0x01,0x82,0xff,0xb4,0x00,0xff,0x01,0x92,0xff,0xb4,0x01,0x03,0x00,0x0d,0xff,0x7f,0x01,0x03,0x00,0x0f,0x00,0x44,0x01,0x03,0x00,0x1e,0x00,0x44,0x01,0x03,0x00,0x26,0xff,0xe5, +0x01,0x03,0x00,0x2a,0xff,0xe5,0x01,0x03,0x00,0x2d,0x00,0x5e,0x01,0x03,0x00,0x32,0xff,0xe5,0x01,0x03,0x00,0x37,0xff,0x6d,0x01,0x03,0x00,0x38,0xff,0xe5,0x01,0x03,0x00,0x39,0xff,0x8b,0x01,0x03,0x00,0x3a,0xff,0xb6,0x01,0x03,0x00,0x3c,0xff,0x64,0x01,0x03,0x00,0x3d,0x00,0x3b,0x01,0x03,0x00,0x57,0xff,0xe5,0x01,0x03,0x00,0x59, +0xff,0xd5,0x01,0x03,0x00,0x5a,0xff,0xe5,0x01,0x03,0x00,0x5c,0xff,0xdb,0x01,0x03,0x00,0x8d,0xff,0x9a,0x01,0x03,0x00,0xb4,0xff,0x66,0x01,0x03,0x00,0xb5,0xff,0x3f,0x01,0x03,0x00,0xb6,0xff,0x66,0x01,0x03,0x00,0xb7,0xff,0x3f,0x01,0x03,0x00,0xba,0xff,0xc1,0x01,0x03,0x00,0xbb,0xff,0x64,0x01,0x03,0x00,0xe5,0x00,0x3b,0x01,0x03, +0x00,0xea,0xff,0x64,0x01,0x03,0x00,0xeb,0xff,0xdb,0x01,0x03,0x00,0xf7,0xff,0xe5,0x01,0x03,0x00,0xfc,0xff,0xe5,0x01,0x03,0x00,0xfe,0xff,0xe5,0x01,0x03,0x01,0x18,0xff,0xe5,0x01,0x03,0x01,0x20,0xff,0x6d,0x01,0x03,0x01,0x21,0xff,0xe5,0x01,0x03,0x01,0x22,0xff,0x6d,0x01,0x03,0x01,0x23,0xff,0xe5,0x01,0x03,0x01,0x24,0xff,0xe5, +0x01,0x03,0x01,0x26,0xff,0xe5,0x01,0x03,0x01,0x28,0x00,0x3b,0x01,0x03,0x01,0x2a,0x00,0x3b,0x01,0x03,0x01,0x47,0xff,0xe5,0x01,0x03,0x01,0x51,0xff,0xe5,0x01,0x03,0x01,0x53,0xff,0xe5,0x01,0x03,0x01,0x55,0xff,0xe5,0x01,0x03,0x01,0x63,0x00,0x5e,0x01,0x03,0x01,0x6e,0xff,0xe5,0x01,0x03,0x01,0x70,0xff,0xe5,0x01,0x03,0x01,0x76, +0xff,0x6d,0x01,0x03,0x01,0x77,0xff,0xe5,0x01,0x03,0x01,0x78,0xff,0xe5,0x01,0x03,0x01,0x7a,0xff,0xe5,0x01,0x03,0x01,0x7c,0xff,0xe5,0x01,0x03,0x01,0x7e,0xff,0xe5,0x01,0x03,0x01,0x80,0xff,0xb6,0x01,0x03,0x01,0x81,0xff,0xe5,0x01,0x03,0x01,0x82,0xff,0x64,0x01,0x03,0x01,0x83,0xff,0xdb,0x01,0x03,0x01,0x89,0xff,0xe5,0x01,0x03, +0x01,0x8c,0xff,0xb6,0x01,0x03,0x01,0x8d,0xff,0xe5,0x01,0x03,0x01,0x8e,0xff,0xb6,0x01,0x03,0x01,0x8f,0xff,0xe5,0x01,0x03,0x01,0x90,0xff,0xb6,0x01,0x03,0x01,0x91,0xff,0xe5,0x01,0x03,0x01,0x92,0xff,0x64,0x01,0x03,0x01,0x93,0xff,0xdb,0x01,0x05,0x00,0x0d,0xff,0x7f,0x01,0x05,0x00,0x0f,0x00,0x44,0x01,0x05,0x00,0x1e,0x00,0x44, +0x01,0x05,0x00,0x26,0xff,0xe5,0x01,0x05,0x00,0x2a,0xff,0xe5,0x01,0x05,0x00,0x2d,0x00,0x5e,0x01,0x05,0x00,0x32,0xff,0xe5,0x01,0x05,0x00,0x37,0xff,0x6d,0x01,0x05,0x00,0x38,0xff,0xe5,0x01,0x05,0x00,0x39,0xff,0x8b,0x01,0x05,0x00,0x3a,0xff,0xb6,0x01,0x05,0x00,0x3c,0xff,0x64,0x01,0x05,0x00,0x3d,0x00,0x3b,0x01,0x05,0x00,0x57, +0xff,0xe5,0x01,0x05,0x00,0x59,0xff,0xd5,0x01,0x05,0x00,0x5a,0xff,0xe5,0x01,0x05,0x00,0x5c,0xff,0xdb,0x01,0x05,0x00,0x8d,0xff,0x9a,0x01,0x05,0x00,0xb4,0xff,0x66,0x01,0x05,0x00,0xb5,0xff,0x3f,0x01,0x05,0x00,0xb6,0xff,0x66,0x01,0x05,0x00,0xb7,0xff,0x3f,0x01,0x05,0x00,0xba,0xff,0xc1,0x01,0x05,0x00,0xbb,0xff,0x64,0x01,0x05, +0x00,0xe5,0x00,0x3b,0x01,0x05,0x00,0xea,0xff,0x64,0x01,0x05,0x00,0xeb,0xff,0xdb,0x01,0x05,0x00,0xf7,0xff,0xe5,0x01,0x05,0x00,0xfc,0xff,0xe5,0x01,0x05,0x00,0xfe,0xff,0xe5,0x01,0x05,0x01,0x18,0xff,0xe5,0x01,0x05,0x01,0x20,0xff,0x6d,0x01,0x05,0x01,0x21,0xff,0xe5,0x01,0x05,0x01,0x22,0xff,0x6d,0x01,0x05,0x01,0x23,0xff,0xe5, +0x01,0x05,0x01,0x24,0xff,0xe5,0x01,0x05,0x01,0x26,0xff,0xe5,0x01,0x05,0x01,0x28,0x00,0x3b,0x01,0x05,0x01,0x2a,0x00,0x3b,0x01,0x05,0x01,0x47,0xff,0xe5,0x01,0x05,0x01,0x51,0xff,0xe5,0x01,0x05,0x01,0x53,0xff,0xe5,0x01,0x05,0x01,0x55,0xff,0xe5,0x01,0x05,0x01,0x63,0x00,0x5e,0x01,0x05,0x01,0x6e,0xff,0xe5,0x01,0x05,0x01,0x70, +0xff,0xe5,0x01,0x05,0x01,0x76,0xff,0x6d,0x01,0x05,0x01,0x77,0xff,0xe5,0x01,0x05,0x01,0x78,0xff,0xe5,0x01,0x05,0x01,0x7a,0xff,0xe5,0x01,0x05,0x01,0x7c,0xff,0xe5,0x01,0x05,0x01,0x7e,0xff,0xe5,0x01,0x05,0x01,0x80,0xff,0xb6,0x01,0x05,0x01,0x81,0xff,0xe5,0x01,0x05,0x01,0x82,0xff,0x64,0x01,0x05,0x01,0x83,0xff,0xdb,0x01,0x05, +0x01,0x89,0xff,0xe5,0x01,0x05,0x01,0x8c,0xff,0xb6,0x01,0x05,0x01,0x8d,0xff,0xe5,0x01,0x05,0x01,0x8e,0xff,0xb6,0x01,0x05,0x01,0x8f,0xff,0xe5,0x01,0x05,0x01,0x90,0xff,0xb6,0x01,0x05,0x01,0x91,0xff,0xe5,0x01,0x05,0x01,0x92,0xff,0x64,0x01,0x05,0x01,0x93,0xff,0xdb,0x01,0x07,0x00,0x0f,0xff,0x7f,0x01,0x07,0x00,0x11,0xff,0x7f, +0x01,0x07,0x00,0x24,0xff,0xdf,0x01,0x07,0x00,0x37,0xff,0xa4,0x01,0x07,0x00,0x3b,0xff,0xcb,0x01,0x07,0x00,0x3d,0xff,0xcf,0x01,0x07,0x00,0x62,0xff,0xdf,0x01,0x07,0x00,0x63,0xff,0xdf,0x01,0x07,0x00,0x91,0xff,0xb6,0x01,0x07,0x00,0xac,0xff,0x7f,0x01,0x07,0x00,0xad,0xff,0xdf,0x01,0x07,0x00,0xae,0xff,0xdf,0x01,0x07,0x00,0xbb, +0xff,0xf6,0x01,0x07,0x00,0xc4,0xff,0x8b,0x01,0x07,0x00,0xc5,0xff,0x8b,0x01,0x07,0x00,0xc7,0xff,0xdf,0x01,0x07,0x00,0xc9,0xff,0xdf,0x01,0x07,0x00,0xe5,0xff,0xcf,0x01,0x07,0x01,0x03,0xff,0xdf,0x01,0x07,0x01,0x05,0xff,0xdf,0x01,0x07,0x01,0x20,0xff,0xa4,0x01,0x07,0x01,0x22,0xff,0xa4,0x01,0x07,0x01,0x28,0xff,0xcf,0x01,0x07, +0x01,0x2a,0xff,0xcf,0x01,0x07,0x01,0x45,0xff,0xdf,0x01,0x07,0x01,0x76,0xff,0xa4,0x01,0x07,0x01,0x85,0xff,0xdf,0x01,0x07,0x01,0x87,0xff,0xdf,0x01,0x0a,0x00,0x24,0x00,0x0a,0x01,0x0a,0x00,0x2d,0x00,0x44,0x01,0x0a,0x00,0x37,0x00,0x04,0x01,0x0a,0x00,0x3a,0x00,0x1d,0x01,0x0a,0x00,0x3b,0x00,0x08,0x01,0x0a,0x00,0x62,0x00,0x0a, +0x01,0x0a,0x00,0x63,0x00,0x0a,0x01,0x0a,0x00,0x77,0x00,0x12,0x01,0x0a,0x00,0xad,0x00,0x0a,0x01,0x0a,0x00,0xae,0x00,0x0a,0x01,0x0a,0x00,0xc7,0x00,0x0a,0x01,0x0a,0x00,0xc9,0x00,0x0a,0x01,0x0a,0x01,0x03,0x00,0x0a,0x01,0x0a,0x01,0x05,0x00,0x0a,0x01,0x0a,0x01,0x20,0x00,0x04,0x01,0x0a,0x01,0x22,0x00,0x04,0x01,0x0a,0x01,0x45, +0x00,0x0a,0x01,0x0a,0x01,0x5c,0x00,0x12,0x01,0x0a,0x01,0x5e,0x00,0x12,0x01,0x0a,0x01,0x60,0x00,0x12,0x01,0x0a,0x01,0x63,0x00,0x44,0x01,0x0a,0x01,0x76,0x00,0x04,0x01,0x0a,0x01,0x80,0x00,0x1d,0x01,0x0a,0x01,0x85,0x00,0x0a,0x01,0x0a,0x01,0x87,0x00,0x0a,0x01,0x0a,0x01,0x8c,0x00,0x1d,0x01,0x0a,0x01,0x8e,0x00,0x1d,0x01,0x0a, +0x01,0x90,0x00,0x1d,0x01,0x0b,0x00,0x05,0xff,0x98,0x01,0x0b,0x00,0x0a,0xff,0x98,0x01,0x0c,0x00,0x24,0x00,0x0a,0x01,0x0c,0x00,0x2d,0x00,0x44,0x01,0x0c,0x00,0x37,0x00,0x04,0x01,0x0c,0x00,0x3a,0x00,0x1d,0x01,0x0c,0x00,0x3b,0x00,0x08,0x01,0x0c,0x00,0x62,0x00,0x0a,0x01,0x0c,0x00,0x63,0x00,0x0a,0x01,0x0c,0x00,0x77,0x00,0x12, +0x01,0x0c,0x00,0xad,0x00,0x0a,0x01,0x0c,0x00,0xae,0x00,0x0a,0x01,0x0c,0x00,0xc7,0x00,0x0a,0x01,0x0c,0x00,0xc9,0x00,0x0a,0x01,0x0c,0x01,0x03,0x00,0x0a,0x01,0x0c,0x01,0x05,0x00,0x0a,0x01,0x0c,0x01,0x20,0x00,0x04,0x01,0x0c,0x01,0x22,0x00,0x04,0x01,0x0c,0x01,0x45,0x00,0x0a,0x01,0x0c,0x01,0x5c,0x00,0x12,0x01,0x0c,0x01,0x5e, +0x00,0x12,0x01,0x0c,0x01,0x60,0x00,0x12,0x01,0x0c,0x01,0x63,0x00,0x44,0x01,0x0c,0x01,0x76,0x00,0x04,0x01,0x0c,0x01,0x80,0x00,0x1d,0x01,0x0c,0x01,0x85,0x00,0x0a,0x01,0x0c,0x01,0x87,0x00,0x0a,0x01,0x0c,0x01,0x8c,0x00,0x1d,0x01,0x0c,0x01,0x8e,0x00,0x1d,0x01,0x0c,0x01,0x90,0x00,0x1d,0x01,0x0d,0x00,0x05,0xff,0x98,0x01,0x0d, +0x00,0x0a,0xff,0x98,0x01,0x0e,0x00,0x0d,0xff,0x31,0x01,0x0e,0x00,0x22,0xff,0x9a,0x01,0x0e,0x00,0x24,0x00,0x3b,0x01,0x0e,0x00,0x26,0xff,0xbe,0x01,0x0e,0x00,0x2a,0xff,0xbe,0x01,0x0e,0x00,0x2d,0x00,0x64,0x01,0x0e,0x00,0x32,0xff,0xba,0x01,0x0e,0x00,0x34,0xff,0xba,0x01,0x0e,0x00,0x37,0xff,0x8f,0x01,0x0e,0x00,0x38,0xff,0xe3, +0x01,0x0e,0x00,0x39,0xff,0x8b,0x01,0x0e,0x00,0x3a,0xff,0xcf,0x01,0x0e,0x00,0x3c,0xff,0x7f,0x01,0x0e,0x00,0x3d,0x00,0x3b,0x01,0x0e,0x00,0x57,0xff,0xe5,0x01,0x0e,0x00,0x59,0xff,0x9a,0x01,0x0e,0x00,0x5a,0xff,0xbe,0x01,0x0e,0x00,0x5c,0xff,0xb4,0x01,0x0e,0x00,0x64,0xff,0xbe,0x01,0x0e,0x00,0x67,0xff,0xba,0x01,0x0e,0x00,0x68, +0xff,0xe3,0x01,0x0e,0x00,0x8d,0xff,0x9a,0x01,0x0e,0x00,0x92,0xff,0xba,0x01,0x0e,0x00,0xaf,0xff,0xba,0x01,0x0e,0x00,0xb0,0xff,0xba,0x01,0x0e,0x00,0xb4,0xff,0x73,0x01,0x0e,0x00,0xb5,0xff,0x8b,0x01,0x0e,0x00,0xb6,0xff,0x73,0x01,0x0e,0x00,0xb7,0xff,0x7f,0x01,0x0e,0x00,0xba,0xff,0xb4,0x01,0x0e,0x00,0xbb,0xff,0x9a,0x01,0x0e, +0x00,0xc4,0x00,0x44,0x01,0x0e,0x00,0xc5,0x00,0x44,0x01,0x0e,0x00,0xd0,0xff,0xba,0x01,0x0e,0x00,0xd1,0xff,0xba,0x01,0x0e,0x00,0xd2,0xff,0xba,0x01,0x0e,0x00,0xd3,0xff,0xe3,0x01,0x0e,0x00,0xd4,0xff,0xe3,0x01,0x0e,0x00,0xd5,0xff,0xe3,0x01,0x0e,0x00,0xe5,0x00,0x3b,0x01,0x0e,0x00,0xea,0xff,0x7f,0x01,0x0e,0x00,0xeb,0xff,0xb4, +0x01,0x0e,0x00,0xf7,0xff,0xbe,0x01,0x0e,0x00,0xfc,0xff,0xbe,0x01,0x0e,0x00,0xfe,0xff,0xbe,0x01,0x0e,0x01,0x03,0x00,0x3b,0x01,0x0e,0x01,0x05,0x00,0x3b,0x01,0x0e,0x01,0x18,0xff,0xba,0x01,0x0e,0x01,0x20,0xff,0x8f,0x01,0x0e,0x01,0x21,0xff,0xe5,0x01,0x0e,0x01,0x22,0xff,0x8f,0x01,0x0e,0x01,0x23,0xff,0xe5,0x01,0x0e,0x01,0x24, +0xff,0xe3,0x01,0x0e,0x01,0x26,0xff,0xe3,0x01,0x0e,0x01,0x28,0x00,0x3b,0x01,0x0e,0x01,0x2a,0x00,0x3b,0x01,0x0e,0x01,0x45,0x00,0x3b,0x01,0x0e,0x01,0x47,0xff,0xbe,0x01,0x0e,0x01,0x51,0xff,0xbe,0x01,0x0e,0x01,0x53,0xff,0xbe,0x01,0x0e,0x01,0x55,0xff,0xbe,0x01,0x0e,0x01,0x63,0x00,0x64,0x01,0x0e,0x01,0x6e,0xff,0xba,0x01,0x0e, +0x01,0x70,0xff,0xba,0x01,0x0e,0x01,0x76,0xff,0x8f,0x01,0x0e,0x01,0x77,0xff,0xe5,0x01,0x0e,0x01,0x78,0xff,0xe3,0x01,0x0e,0x01,0x7a,0xff,0xe3,0x01,0x0e,0x01,0x7c,0xff,0xe3,0x01,0x0e,0x01,0x7e,0xff,0xe3,0x01,0x0e,0x01,0x80,0xff,0xcf,0x01,0x0e,0x01,0x81,0xff,0xbe,0x01,0x0e,0x01,0x82,0xff,0x7f,0x01,0x0e,0x01,0x83,0xff,0xb4, +0x01,0x0e,0x01,0x85,0x00,0x3b,0x01,0x0e,0x01,0x87,0x00,0x3b,0x01,0x0e,0x01,0x89,0xff,0xba,0x01,0x0e,0x01,0x8c,0xff,0xcf,0x01,0x0e,0x01,0x8d,0xff,0xbe,0x01,0x0e,0x01,0x8e,0xff,0xcf,0x01,0x0e,0x01,0x8f,0xff,0xbe,0x01,0x0e,0x01,0x90,0xff,0xcf,0x01,0x0e,0x01,0x91,0xff,0xbe,0x01,0x0e,0x01,0x92,0xff,0x7f,0x01,0x0e,0x01,0x93, +0xff,0xb4,0x01,0x10,0x00,0x0d,0xff,0x31,0x01,0x10,0x00,0x22,0xff,0x9a,0x01,0x10,0x00,0x24,0x00,0x3b,0x01,0x10,0x00,0x26,0xff,0xbe,0x01,0x10,0x00,0x2a,0xff,0xbe,0x01,0x10,0x00,0x2d,0x00,0x64,0x01,0x10,0x00,0x32,0xff,0xba,0x01,0x10,0x00,0x34,0xff,0xba,0x01,0x10,0x00,0x37,0xff,0x8f,0x01,0x10,0x00,0x38,0xff,0xe3,0x01,0x10, +0x00,0x39,0xff,0x8b,0x01,0x10,0x00,0x3a,0xff,0xcf,0x01,0x10,0x00,0x3c,0xff,0x7f,0x01,0x10,0x00,0x3d,0x00,0x3b,0x01,0x10,0x00,0x57,0xff,0xe5,0x01,0x10,0x00,0x59,0xff,0x9a,0x01,0x10,0x00,0x5a,0xff,0xbe,0x01,0x10,0x00,0x5c,0xff,0xb4,0x01,0x10,0x00,0x64,0xff,0xbe,0x01,0x10,0x00,0x67,0xff,0xba,0x01,0x10,0x00,0x68,0xff,0xe3, +0x01,0x10,0x00,0x8d,0xff,0x9a,0x01,0x10,0x00,0x92,0xff,0xba,0x01,0x10,0x00,0xaf,0xff,0xba,0x01,0x10,0x00,0xb0,0xff,0xba,0x01,0x10,0x00,0xb4,0xff,0x73,0x01,0x10,0x00,0xb5,0xff,0x8b,0x01,0x10,0x00,0xb6,0xff,0x73,0x01,0x10,0x00,0xb7,0xff,0x7f,0x01,0x10,0x00,0xba,0xff,0xb4,0x01,0x10,0x00,0xbb,0xff,0x9a,0x01,0x10,0x00,0xc4, +0x00,0x44,0x01,0x10,0x00,0xc5,0x00,0x44,0x01,0x10,0x00,0xd0,0xff,0xba,0x01,0x10,0x00,0xd1,0xff,0xba,0x01,0x10,0x00,0xd2,0xff,0xba,0x01,0x10,0x00,0xd3,0xff,0xe3,0x01,0x10,0x00,0xd4,0xff,0xe3,0x01,0x10,0x00,0xd5,0xff,0xe3,0x01,0x10,0x00,0xe5,0x00,0x3b,0x01,0x10,0x00,0xea,0xff,0x7f,0x01,0x10,0x00,0xeb,0xff,0xb4,0x01,0x10, +0x00,0xf7,0xff,0xbe,0x01,0x10,0x00,0xfc,0xff,0xbe,0x01,0x10,0x00,0xfe,0xff,0xbe,0x01,0x10,0x01,0x03,0x00,0x3b,0x01,0x10,0x01,0x05,0x00,0x3b,0x01,0x10,0x01,0x20,0xff,0x8f,0x01,0x10,0x01,0x21,0xff,0xe5,0x01,0x10,0x01,0x22,0xff,0x8f,0x01,0x10,0x01,0x23,0xff,0xe5,0x01,0x10,0x01,0x24,0xff,0xe3,0x01,0x10,0x01,0x26,0xff,0xe3, +0x01,0x10,0x01,0x28,0x00,0x3b,0x01,0x10,0x01,0x2a,0x00,0x3b,0x01,0x10,0x01,0x45,0x00,0x3b,0x01,0x10,0x01,0x47,0xff,0xbe,0x01,0x10,0x01,0x51,0xff,0xbe,0x01,0x10,0x01,0x53,0xff,0xbe,0x01,0x10,0x01,0x55,0xff,0xbe,0x01,0x10,0x01,0x63,0x00,0x64,0x01,0x10,0x01,0x6e,0xff,0xba,0x01,0x10,0x01,0x70,0xff,0xba,0x01,0x10,0x01,0x76, +0xff,0x8f,0x01,0x10,0x01,0x77,0xff,0xe5,0x01,0x10,0x01,0x78,0xff,0xe3,0x01,0x10,0x01,0x7a,0xff,0xe3,0x01,0x10,0x01,0x7c,0xff,0xe3,0x01,0x10,0x01,0x7e,0xff,0xe3,0x01,0x10,0x01,0x80,0xff,0xcf,0x01,0x10,0x01,0x81,0xff,0xbe,0x01,0x10,0x01,0x82,0xff,0x7f,0x01,0x10,0x01,0x83,0xff,0xb4,0x01,0x10,0x01,0x85,0x00,0x3b,0x01,0x10, +0x01,0x87,0x00,0x3b,0x01,0x10,0x01,0x89,0xff,0xba,0x01,0x10,0x01,0x8c,0xff,0xcf,0x01,0x10,0x01,0x8d,0xff,0xbe,0x01,0x10,0x01,0x8e,0xff,0xcf,0x01,0x10,0x01,0x8f,0xff,0xbe,0x01,0x10,0x01,0x90,0xff,0xcf,0x01,0x10,0x01,0x91,0xff,0xbe,0x01,0x10,0x01,0x92,0xff,0x7f,0x01,0x10,0x01,0x93,0xff,0xb4,0x01,0x12,0x00,0x0d,0xff,0x31, +0x01,0x12,0x00,0x22,0xff,0x9a,0x01,0x12,0x00,0x24,0x00,0x3b,0x01,0x12,0x00,0x26,0xff,0xbe,0x01,0x12,0x00,0x2a,0xff,0xbe,0x01,0x12,0x00,0x2d,0x00,0x64,0x01,0x12,0x00,0x32,0xff,0xba,0x01,0x12,0x00,0x34,0xff,0xba,0x01,0x12,0x00,0x37,0xff,0x8f,0x01,0x12,0x00,0x38,0xff,0xe3,0x01,0x12,0x00,0x39,0xff,0x8b,0x01,0x12,0x00,0x3a, +0xff,0xcf,0x01,0x12,0x00,0x3c,0xff,0x7f,0x01,0x12,0x00,0x3d,0x00,0x3b,0x01,0x12,0x00,0x57,0xff,0xe5,0x01,0x12,0x00,0x59,0xff,0x9a,0x01,0x12,0x00,0x5a,0xff,0xbe,0x01,0x12,0x00,0x5c,0xff,0xb4,0x01,0x12,0x00,0x64,0xff,0xbe,0x01,0x12,0x00,0x67,0xff,0xba,0x01,0x12,0x00,0x68,0xff,0xe3,0x01,0x12,0x00,0x8d,0xff,0x9a,0x01,0x12, +0x00,0x92,0xff,0xba,0x01,0x12,0x00,0xaf,0xff,0xba,0x01,0x12,0x00,0xb0,0xff,0xba,0x01,0x12,0x00,0xb4,0xff,0x73,0x01,0x12,0x00,0xb5,0xff,0x8b,0x01,0x12,0x00,0xb6,0xff,0x73,0x01,0x12,0x00,0xb7,0xff,0x7f,0x01,0x12,0x00,0xba,0xff,0xb4,0x01,0x12,0x00,0xbb,0xff,0x9a,0x01,0x12,0x00,0xc4,0x00,0x44,0x01,0x12,0x00,0xc5,0x00,0x44, +0x01,0x12,0x00,0xd0,0xff,0xba,0x01,0x12,0x00,0xd1,0xff,0xba,0x01,0x12,0x00,0xd2,0xff,0xba,0x01,0x12,0x00,0xd3,0xff,0xe3,0x01,0x12,0x00,0xd4,0xff,0xe3,0x01,0x12,0x00,0xd5,0xff,0xe3,0x01,0x12,0x00,0xe5,0x00,0x3b,0x01,0x12,0x00,0xea,0xff,0x7f,0x01,0x12,0x00,0xeb,0xff,0xb4,0x01,0x12,0x00,0xf7,0xff,0xbe,0x01,0x12,0x00,0xfc, +0xff,0xbe,0x01,0x12,0x00,0xfe,0xff,0xbe,0x01,0x12,0x01,0x03,0x00,0x3b,0x01,0x12,0x01,0x05,0x00,0x3b,0x01,0x12,0x01,0x18,0xff,0xba,0x01,0x12,0x01,0x20,0xff,0x8f,0x01,0x12,0x01,0x21,0xff,0xe5,0x01,0x12,0x01,0x22,0xff,0x8f,0x01,0x12,0x01,0x23,0xff,0xe5,0x01,0x12,0x01,0x24,0xff,0xe3,0x01,0x12,0x01,0x26,0xff,0xe3,0x01,0x12, +0x01,0x28,0x00,0x3b,0x01,0x12,0x01,0x2a,0x00,0x3b,0x01,0x12,0x01,0x45,0x00,0x3b,0x01,0x12,0x01,0x47,0xff,0xbe,0x01,0x12,0x01,0x51,0xff,0xbe,0x01,0x12,0x01,0x53,0xff,0xbe,0x01,0x12,0x01,0x55,0xff,0xbe,0x01,0x12,0x01,0x63,0x00,0x64,0x01,0x12,0x01,0x6e,0xff,0xba,0x01,0x12,0x01,0x70,0xff,0xba,0x01,0x12,0x01,0x76,0xff,0x8f, +0x01,0x12,0x01,0x77,0xff,0xe5,0x01,0x12,0x01,0x78,0xff,0xe3,0x01,0x12,0x01,0x7a,0xff,0xe3,0x01,0x12,0x01,0x7c,0xff,0xe3,0x01,0x12,0x01,0x7e,0xff,0xe3,0x01,0x12,0x01,0x80,0xff,0xcf,0x01,0x12,0x01,0x81,0xff,0xbe,0x01,0x12,0x01,0x82,0xff,0x7f,0x01,0x12,0x01,0x83,0xff,0xb4,0x01,0x12,0x01,0x85,0x00,0x3b,0x01,0x12,0x01,0x87, +0x00,0x3b,0x01,0x12,0x01,0x89,0xff,0xba,0x01,0x12,0x01,0x8c,0xff,0xcf,0x01,0x12,0x01,0x8d,0xff,0xbe,0x01,0x12,0x01,0x8e,0xff,0xcf,0x01,0x12,0x01,0x8f,0xff,0xbe,0x01,0x12,0x01,0x90,0xff,0xcf,0x01,0x12,0x01,0x91,0xff,0xbe,0x01,0x12,0x01,0x92,0xff,0x7f,0x01,0x12,0x01,0x93,0xff,0xb4,0x01,0x15,0x00,0x05,0xff,0x98,0x01,0x15, +0x00,0x0a,0xff,0x98,0x01,0x17,0x00,0x05,0xff,0x98,0x01,0x17,0x00,0x0a,0xff,0x98,0x01,0x18,0x00,0x0f,0xff,0xa4,0x01,0x18,0x00,0x11,0xff,0xa4,0x01,0x18,0x00,0x24,0xff,0xe5,0x01,0x18,0x00,0x2d,0xff,0xf6,0x01,0x18,0x00,0x37,0xff,0xa4,0x01,0x18,0x00,0x3b,0xff,0xdb,0x01,0x18,0x00,0x3c,0xff,0xe7,0x01,0x18,0x00,0x3d,0xff,0xcf, +0x01,0x18,0x00,0x62,0xff,0xe5,0x01,0x18,0x00,0x63,0xff,0xe5,0x01,0x18,0x00,0xac,0xff,0xa4,0x01,0x18,0x00,0xad,0xff,0xe5,0x01,0x18,0x00,0xae,0xff,0xe5,0x01,0x18,0x00,0xbb,0xff,0xf6,0x01,0x18,0x00,0xc4,0xff,0x4c,0x01,0x18,0x00,0xc5,0xff,0x98,0x01,0x18,0x00,0xc7,0xff,0xe5,0x01,0x18,0x00,0xc9,0xff,0xe5,0x01,0x18,0x00,0xe5, +0xff,0xcf,0x01,0x18,0x00,0xea,0xff,0xe7,0x01,0x18,0x01,0x03,0xff,0xe5,0x01,0x18,0x01,0x05,0xff,0xe5,0x01,0x18,0x01,0x20,0xff,0xa4,0x01,0x18,0x01,0x22,0xff,0xa4,0x01,0x18,0x01,0x28,0xff,0xcf,0x01,0x18,0x01,0x2a,0xff,0xcf,0x01,0x18,0x01,0x45,0xff,0xe5,0x01,0x18,0x01,0x63,0xff,0xf6,0x01,0x18,0x01,0x76,0xff,0xa4,0x01,0x18, +0x01,0x82,0xff,0xe7,0x01,0x18,0x01,0x85,0xff,0xe5,0x01,0x18,0x01,0x87,0xff,0xe5,0x01,0x18,0x01,0x92,0xff,0xe7,0x01,0x19,0x00,0x05,0xff,0x6f,0x01,0x19,0x00,0x0a,0xff,0x6f,0x01,0x19,0x00,0x44,0xff,0xe5,0x01,0x19,0x00,0x49,0xff,0xdb,0x01,0x19,0x00,0x5b,0xff,0xe7,0x01,0x19,0x00,0x69,0xff,0xe5,0x01,0x19,0x00,0x6a,0xff,0xe5, +0x01,0x19,0x00,0x6b,0xff,0xe5,0x01,0x19,0x00,0x6c,0xff,0xe5,0x01,0x19,0x00,0x6d,0xff,0xe5,0x01,0x19,0x00,0x6e,0xff,0xe5,0x01,0x19,0x00,0xa0,0xff,0xe5,0x01,0x19,0x00,0xb4,0xff,0xb2,0x01,0x19,0x00,0xb5,0xff,0x7d,0x01,0x19,0x00,0xb6,0xff,0xbe,0x01,0x19,0x00,0xb7,0xff,0x7d,0x01,0x19,0x00,0xc0,0xff,0xe7,0x01,0x19,0x00,0xc1, +0xff,0xe7,0x01,0x19,0x01,0x04,0xff,0xe5,0x01,0x19,0x01,0x06,0xff,0xe5,0x01,0x19,0x01,0x46,0xff,0xe5,0x01,0x19,0x01,0x86,0xff,0xe5,0x01,0x19,0x01,0x88,0xff,0xe5,0x01,0x1a,0x00,0x1e,0x00,0x52,0x01,0x1a,0x00,0x26,0xff,0xe3,0x01,0x1a,0x00,0x2a,0xff,0xe3,0x01,0x1a,0x00,0x2d,0x00,0x39,0x01,0x1a,0x00,0x32,0xff,0xec,0x01,0x1a, +0x00,0x34,0xff,0xec,0x01,0x1a,0x00,0x37,0xff,0xcb,0x01,0x1a,0x00,0x3c,0xff,0xd9,0x01,0x1a,0x00,0x46,0xff,0xcb,0x01,0x1a,0x00,0x47,0xff,0xcb,0x01,0x1a,0x00,0x48,0xff,0xc7,0x01,0x1a,0x00,0x4a,0xff,0xc7,0x01,0x1a,0x00,0x52,0xff,0xc5,0x01,0x1a,0x00,0x54,0xff,0xcb,0x01,0x1a,0x00,0x64,0xff,0xe5,0x01,0x1a,0x00,0x67,0xff,0xec, +0x01,0x1a,0x00,0x6f,0xff,0xbe,0x01,0x1a,0x00,0x70,0xff,0xbe,0x01,0x1a,0x00,0x71,0xff,0xbe,0x01,0x1a,0x00,0x72,0xff,0xbe,0x01,0x1a,0x00,0x73,0xff,0xbe,0x01,0x1a,0x00,0x79,0xff,0xc5,0x01,0x1a,0x00,0x7a,0xff,0xc5,0x01,0x1a,0x00,0x7b,0xff,0xc5,0x01,0x1a,0x00,0x7c,0xff,0xc5,0x01,0x1a,0x00,0x7d,0xff,0xc5,0x01,0x1a,0x00,0x92, +0xff,0xec,0x01,0x1a,0x00,0xaf,0xff,0xec,0x01,0x1a,0x00,0xb0,0xff,0xec,0x01,0x1a,0x00,0xb1,0xff,0xc5,0x01,0x1a,0x00,0xbb,0xff,0xe5,0x01,0x1a,0x00,0xd0,0xff,0xec,0x01,0x1a,0x00,0xd1,0xff,0xec,0x01,0x1a,0x00,0xd2,0xff,0xec,0x01,0x1a,0x00,0xea,0xff,0xd9,0x01,0x1a,0x00,0xf7,0xff,0xe3,0x01,0x1a,0x00,0xf8,0xff,0xc7,0x01,0x1a, +0x00,0xfc,0xff,0xe3,0x01,0x1a,0x00,0xfd,0xff,0xcb,0x01,0x1a,0x00,0xfe,0xff,0xe3,0x01,0x1a,0x00,0xff,0xff,0xcb,0x01,0x1a,0x01,0x00,0xff,0xcb,0x01,0x1a,0x01,0x08,0xff,0xcb,0x01,0x1a,0x01,0x0b,0xff,0xc7,0x01,0x1a,0x01,0x0d,0xff,0xbe,0x01,0x1a,0x01,0x18,0xff,0xec,0x01,0x1a,0x01,0x19,0xff,0xc5,0x01,0x1a,0x01,0x20,0xff,0xcb, +0x01,0x1a,0x01,0x22,0xff,0xcb,0x01,0x1a,0x01,0x47,0xff,0xe3,0x01,0x1a,0x01,0x48,0xff,0xcb,0x01,0x1a,0x01,0x4c,0xff,0xbe,0x01,0x1a,0x01,0x4e,0xff,0xbe,0x01,0x1a,0x01,0x50,0xff,0xbe,0x01,0x1a,0x01,0x51,0xff,0xe3,0x01,0x1a,0x01,0x52,0xff,0xc7,0x01,0x1a,0x01,0x53,0xff,0xe3,0x01,0x1a,0x01,0x54,0xff,0xc7,0x01,0x1a,0x01,0x55, +0xff,0xe3,0x01,0x1a,0x01,0x56,0xff,0xc7,0x01,0x1a,0x01,0x63,0x00,0x39,0x01,0x1a,0x01,0x6e,0xff,0xec,0x01,0x1a,0x01,0x6f,0xff,0xc5,0x01,0x1a,0x01,0x70,0xff,0xec,0x01,0x1a,0x01,0x71,0xff,0xc5,0x01,0x1a,0x01,0x76,0xff,0xcb,0x01,0x1a,0x01,0x82,0xff,0xd9,0x01,0x1a,0x01,0x89,0xff,0xec,0x01,0x1a,0x01,0x8a,0xff,0xc5,0x01,0x1a, +0x01,0x92,0xff,0xd9,0x01,0x1b,0x00,0x0f,0xff,0x62,0x01,0x1b,0x00,0x10,0xff,0x7f,0x01,0x1b,0x00,0x11,0xff,0x56,0x01,0x1b,0x00,0x1d,0x00,0x52,0x01,0x1b,0x00,0x1e,0x00,0x52,0x01,0x1b,0x00,0x46,0xff,0xe5,0x01,0x1b,0x00,0x47,0xff,0xe5,0x01,0x1b,0x00,0x48,0xff,0xe5,0x01,0x1b,0x00,0x49,0x00,0x27,0x01,0x1b,0x00,0x4a,0xff,0xe5, +0x01,0x1b,0x00,0x50,0xff,0xfc,0x01,0x1b,0x00,0x51,0xff,0xfc,0x01,0x1b,0x00,0x52,0xff,0xe5,0x01,0x1b,0x00,0x54,0xff,0xe5,0x01,0x1b,0x00,0x56,0x00,0x0e,0x01,0x1b,0x00,0x57,0x00,0x3b,0x01,0x1b,0x00,0x59,0x00,0x52,0x01,0x1b,0x00,0x5a,0x00,0x52,0x01,0x1b,0x00,0x5b,0x00,0x3b,0x01,0x1b,0x00,0x5c,0x00,0x52,0x01,0x1b,0x00,0x5d, +0x00,0x27,0x01,0x1b,0x00,0x6f,0xff,0xe5,0x01,0x1b,0x00,0x70,0xff,0xe5,0x01,0x1b,0x00,0x71,0xff,0xe5,0x01,0x1b,0x00,0x72,0xff,0xe5,0x01,0x1b,0x00,0x73,0xff,0xe5,0x01,0x1b,0x00,0x79,0xff,0xe5,0x01,0x1b,0x00,0x7a,0xff,0xe5,0x01,0x1b,0x00,0x7b,0xff,0xe5,0x01,0x1b,0x00,0x7c,0xff,0xe5,0x01,0x1b,0x00,0x7d,0xff,0xe5,0x01,0x1b, +0x00,0xac,0xff,0x56,0x01,0x1b,0x00,0xb1,0xff,0xe5,0x01,0x1b,0x00,0xb4,0x00,0xa4,0x01,0x1b,0x00,0xb5,0x00,0x79,0x01,0x1b,0x00,0xb6,0x00,0xa4,0x01,0x1b,0x00,0xb7,0x00,0x79,0x01,0x1b,0x00,0xc4,0xff,0x62,0x01,0x1b,0x00,0xc5,0xff,0x62,0x01,0x1b,0x00,0xe4,0x00,0x0e,0x01,0x1b,0x00,0xe6,0x00,0x27,0x01,0x1b,0x00,0xeb,0x00,0x52, +0x01,0x1b,0x00,0xf8,0xff,0xe5,0x01,0x1b,0x00,0xfb,0x00,0x0e,0x01,0x1b,0x00,0xfd,0xff,0xe5,0x01,0x1b,0x00,0xff,0xff,0xe5,0x01,0x1b,0x01,0x00,0xff,0xe5,0x01,0x1b,0x01,0x08,0xff,0xe5,0x01,0x1b,0x01,0x0b,0xff,0xe5,0x01,0x1b,0x01,0x0d,0xff,0xe5,0x01,0x1b,0x01,0x19,0xff,0xe5,0x01,0x1b,0x01,0x1f,0x00,0x0e,0x01,0x1b,0x01,0x21, +0x00,0x3b,0x01,0x1b,0x01,0x23,0x00,0x3b,0x01,0x1b,0x01,0x29,0x00,0x27,0x01,0x1b,0x01,0x2b,0x00,0x27,0x01,0x1b,0x01,0x48,0xff,0xe5,0x01,0x1b,0x01,0x4c,0xff,0xe5,0x01,0x1b,0x01,0x4e,0xff,0xe5,0x01,0x1b,0x01,0x50,0xff,0xe5,0x01,0x1b,0x01,0x52,0xff,0xe5,0x01,0x1b,0x01,0x54,0xff,0xe5,0x01,0x1b,0x01,0x56,0xff,0xe5,0x01,0x1b, +0x01,0x6d,0xff,0xfc,0x01,0x1b,0x01,0x6f,0xff,0xe5,0x01,0x1b,0x01,0x71,0xff,0xe5,0x01,0x1b,0x01,0x75,0x00,0x0e,0x01,0x1b,0x01,0x77,0x00,0x3b,0x01,0x1b,0x01,0x81,0x00,0x52,0x01,0x1b,0x01,0x83,0x00,0x52,0x01,0x1b,0x01,0x8a,0xff,0xe5,0x01,0x1b,0x01,0x8d,0x00,0x52,0x01,0x1b,0x01,0x8f,0x00,0x52,0x01,0x1b,0x01,0x91,0x00,0x52, +0x01,0x1b,0x01,0x93,0x00,0x52,0x01,0x1b,0x02,0x3e,0x00,0x0e,0x01,0x1c,0x00,0x1e,0x00,0x52,0x01,0x1c,0x00,0x26,0xff,0xe3,0x01,0x1c,0x00,0x2a,0xff,0xe3,0x01,0x1c,0x00,0x2d,0x00,0x39,0x01,0x1c,0x00,0x32,0xff,0xec,0x01,0x1c,0x00,0x34,0xff,0xec,0x01,0x1c,0x00,0x37,0xff,0xcb,0x01,0x1c,0x00,0x3c,0xff,0xd9,0x01,0x1c,0x00,0x46, +0xff,0xcb,0x01,0x1c,0x00,0x47,0xff,0xcb,0x01,0x1c,0x00,0x48,0xff,0xc7,0x01,0x1c,0x00,0x4a,0xff,0xc7,0x01,0x1c,0x00,0x52,0xff,0xc5,0x01,0x1c,0x00,0x54,0xff,0xcb,0x01,0x1c,0x00,0x64,0xff,0xe5,0x01,0x1c,0x00,0x67,0xff,0xec,0x01,0x1c,0x00,0x6f,0xff,0xbe,0x01,0x1c,0x00,0x70,0xff,0xbe,0x01,0x1c,0x00,0x71,0xff,0xbe,0x01,0x1c, +0x00,0x72,0xff,0xbe,0x01,0x1c,0x00,0x73,0xff,0xbe,0x01,0x1c,0x00,0x79,0xff,0xc5,0x01,0x1c,0x00,0x7a,0xff,0xc5,0x01,0x1c,0x00,0x7b,0xff,0xc5,0x01,0x1c,0x00,0x7c,0xff,0xc5,0x01,0x1c,0x00,0x7d,0xff,0xc5,0x01,0x1c,0x00,0x92,0xff,0xec,0x01,0x1c,0x00,0xaf,0xff,0xec,0x01,0x1c,0x00,0xb0,0xff,0xec,0x01,0x1c,0x00,0xb1,0xff,0xc5, +0x01,0x1c,0x00,0xbb,0xff,0xe5,0x01,0x1c,0x00,0xd0,0xff,0xec,0x01,0x1c,0x00,0xd1,0xff,0xec,0x01,0x1c,0x00,0xd2,0xff,0xec,0x01,0x1c,0x00,0xea,0xff,0xd9,0x01,0x1c,0x00,0xf7,0xff,0xe3,0x01,0x1c,0x00,0xf8,0xff,0xc7,0x01,0x1c,0x00,0xfc,0xff,0xe3,0x01,0x1c,0x00,0xfd,0xff,0xcb,0x01,0x1c,0x00,0xfe,0xff,0xe3,0x01,0x1c,0x00,0xff, +0xff,0xcb,0x01,0x1c,0x01,0x00,0xff,0xcb,0x01,0x1c,0x01,0x08,0xff,0xcb,0x01,0x1c,0x01,0x0b,0xff,0xc7,0x01,0x1c,0x01,0x0d,0xff,0xbe,0x01,0x1c,0x01,0x18,0xff,0xec,0x01,0x1c,0x01,0x19,0xff,0xc5,0x01,0x1c,0x01,0x20,0xff,0xcb,0x01,0x1c,0x01,0x22,0xff,0xcb,0x01,0x1c,0x01,0x47,0xff,0xe3,0x01,0x1c,0x01,0x48,0xff,0xcb,0x01,0x1c, +0x01,0x4c,0xff,0xbe,0x01,0x1c,0x01,0x4e,0xff,0xbe,0x01,0x1c,0x01,0x50,0xff,0xbe,0x01,0x1c,0x01,0x51,0xff,0xe3,0x01,0x1c,0x01,0x52,0xff,0xc7,0x01,0x1c,0x01,0x53,0xff,0xe3,0x01,0x1c,0x01,0x54,0xff,0xc7,0x01,0x1c,0x01,0x55,0xff,0xe3,0x01,0x1c,0x01,0x56,0xff,0xc7,0x01,0x1c,0x01,0x63,0x00,0x39,0x01,0x1c,0x01,0x6e,0xff,0xec, +0x01,0x1c,0x01,0x6f,0xff,0xc5,0x01,0x1c,0x01,0x70,0xff,0xec,0x01,0x1c,0x01,0x71,0xff,0xc5,0x01,0x1c,0x01,0x76,0xff,0xcb,0x01,0x1c,0x01,0x82,0xff,0xd9,0x01,0x1c,0x01,0x89,0xff,0xec,0x01,0x1c,0x01,0x8a,0xff,0xc5,0x01,0x1c,0x01,0x92,0xff,0xd9,0x01,0x1d,0x00,0x0f,0xff,0x62,0x01,0x1d,0x00,0x10,0xff,0x7f,0x01,0x1d,0x00,0x11, +0xff,0x56,0x01,0x1d,0x00,0x1d,0x00,0x52,0x01,0x1d,0x00,0x1e,0x00,0x52,0x01,0x1d,0x00,0x46,0xff,0xe5,0x01,0x1d,0x00,0x47,0xff,0xe5,0x01,0x1d,0x00,0x48,0xff,0xe5,0x01,0x1d,0x00,0x49,0x00,0x27,0x01,0x1d,0x00,0x4a,0xff,0xe5,0x01,0x1d,0x00,0x50,0xff,0xfc,0x01,0x1d,0x00,0x51,0xff,0xfc,0x01,0x1d,0x00,0x52,0xff,0xe5,0x01,0x1d, +0x00,0x54,0xff,0xe5,0x01,0x1d,0x00,0x56,0x00,0x0e,0x01,0x1d,0x00,0x57,0x00,0x3b,0x01,0x1d,0x00,0x59,0x00,0x52,0x01,0x1d,0x00,0x5a,0x00,0x52,0x01,0x1d,0x00,0x5b,0x00,0x3b,0x01,0x1d,0x00,0x5c,0x00,0x52,0x01,0x1d,0x00,0x5d,0x00,0x27,0x01,0x1d,0x00,0x6f,0xff,0xe5,0x01,0x1d,0x00,0x70,0xff,0xe5,0x01,0x1d,0x00,0x71,0xff,0xe5, +0x01,0x1d,0x00,0x72,0xff,0xe5,0x01,0x1d,0x00,0x73,0xff,0xe5,0x01,0x1d,0x00,0x79,0xff,0xe5,0x01,0x1d,0x00,0x7a,0xff,0xe5,0x01,0x1d,0x00,0x7b,0xff,0xe5,0x01,0x1d,0x00,0x7c,0xff,0xe5,0x01,0x1d,0x00,0x7d,0xff,0xe5,0x01,0x1d,0x00,0xac,0xff,0x56,0x01,0x1d,0x00,0xb1,0xff,0xe5,0x01,0x1d,0x00,0xb4,0x00,0xa4,0x01,0x1d,0x00,0xb5, +0x00,0x79,0x01,0x1d,0x00,0xb6,0x00,0xa4,0x01,0x1d,0x00,0xb7,0x00,0x79,0x01,0x1d,0x00,0xc4,0xff,0x62,0x01,0x1d,0x00,0xc5,0xff,0x62,0x01,0x1d,0x00,0xe4,0x00,0x0e,0x01,0x1d,0x00,0xe6,0x00,0x27,0x01,0x1d,0x00,0xeb,0x00,0x52,0x01,0x1d,0x00,0xf8,0xff,0xe5,0x01,0x1d,0x00,0xfb,0x00,0x0e,0x01,0x1d,0x00,0xfd,0xff,0xe5,0x01,0x1d, +0x00,0xff,0xff,0xe5,0x01,0x1d,0x01,0x00,0xff,0xe5,0x01,0x1d,0x01,0x08,0xff,0xe5,0x01,0x1d,0x01,0x0b,0xff,0xe5,0x01,0x1d,0x01,0x0d,0xff,0xe5,0x01,0x1d,0x01,0x19,0xff,0xe5,0x01,0x1d,0x01,0x1f,0x00,0x0e,0x01,0x1d,0x01,0x21,0x00,0x3b,0x01,0x1d,0x01,0x23,0x00,0x3b,0x01,0x1d,0x01,0x29,0x00,0x27,0x01,0x1d,0x01,0x2b,0x00,0x27, +0x01,0x1d,0x01,0x48,0xff,0xe5,0x01,0x1d,0x01,0x4c,0xff,0xe5,0x01,0x1d,0x01,0x4e,0xff,0xe5,0x01,0x1d,0x01,0x50,0xff,0xe5,0x01,0x1d,0x01,0x52,0xff,0xe5,0x01,0x1d,0x01,0x54,0xff,0xe5,0x01,0x1d,0x01,0x56,0xff,0xe5,0x01,0x1d,0x01,0x6d,0xff,0xfc,0x01,0x1d,0x01,0x6f,0xff,0xe5,0x01,0x1d,0x01,0x71,0xff,0xe5,0x01,0x1d,0x01,0x75, +0x00,0x0e,0x01,0x1d,0x01,0x77,0x00,0x3b,0x01,0x1d,0x01,0x81,0x00,0x52,0x01,0x1d,0x01,0x83,0x00,0x52,0x01,0x1d,0x01,0x8a,0xff,0xe5,0x01,0x1d,0x01,0x8d,0x00,0x52,0x01,0x1d,0x01,0x8f,0x00,0x52,0x01,0x1d,0x01,0x91,0x00,0x52,0x01,0x1d,0x01,0x93,0x00,0x52,0x01,0x1d,0x02,0x3e,0x00,0x0e,0x01,0x1e,0x00,0x57,0xff,0xbe,0x01,0x1e, +0x00,0x59,0xff,0xcf,0x01,0x1e,0x00,0x5a,0xff,0xe5,0x01,0x1e,0x00,0x5c,0xff,0xd1,0x01,0x1e,0x00,0xba,0xff,0xbe,0x01,0x1e,0x00,0xc4,0xff,0xb2,0x01,0x1e,0x00,0xc5,0xff,0xb2,0x01,0x1e,0x00,0xeb,0xff,0xd1,0x01,0x1e,0x01,0x21,0xff,0xbe,0x01,0x1e,0x01,0x23,0xff,0xbe,0x01,0x1e,0x01,0x77,0xff,0xbe,0x01,0x1e,0x01,0x81,0xff,0xe5, +0x01,0x1e,0x01,0x83,0xff,0xd1,0x01,0x1e,0x01,0x8d,0xff,0xe5,0x01,0x1e,0x01,0x8f,0xff,0xe5,0x01,0x1e,0x01,0x91,0xff,0xe5,0x01,0x1e,0x01,0x93,0xff,0xd1,0x01,0x20,0x00,0x0f,0xff,0x7f,0x01,0x20,0x00,0x11,0xff,0x4c,0x01,0x20,0x00,0x1d,0xff,0xe9,0x01,0x20,0x00,0x1e,0xff,0xe9,0x01,0x20,0x00,0x24,0xff,0x66,0x01,0x20,0x00,0x26, +0xff,0xa4,0x01,0x20,0x00,0x2a,0xff,0xa4,0x01,0x20,0x00,0x2d,0xff,0x8f,0x01,0x20,0x00,0x32,0xff,0xa4,0x01,0x20,0x00,0x34,0xff,0xa4,0x01,0x20,0x00,0x37,0x00,0x27,0x01,0x20,0x00,0x39,0x00,0x2b,0x01,0x20,0x00,0x3a,0x00,0x27,0x01,0x20,0x00,0x3b,0xff,0xfa,0x01,0x20,0x00,0x3c,0x00,0x1d,0x01,0x20,0x00,0x44,0xff,0x27,0x01,0x20, +0x00,0x46,0xff,0x2d,0x01,0x20,0x00,0x47,0xff,0x2d,0x01,0x20,0x00,0x48,0xff,0x2d,0x01,0x20,0x00,0x49,0xff,0xa0,0x01,0x20,0x00,0x4a,0xff,0x2d,0x01,0x20,0x00,0x50,0xff,0x4e,0x01,0x20,0x00,0x51,0xff,0x4e,0x01,0x20,0x00,0x52,0xff,0x2d,0x01,0x20,0x00,0x53,0xff,0x4e,0x01,0x20,0x00,0x54,0xff,0x2d,0x01,0x20,0x00,0x55,0xff,0x4e, +0x01,0x20,0x00,0x56,0xff,0x66,0x01,0x20,0x00,0x58,0xff,0x4e,0x01,0x20,0x00,0x59,0xff,0x9a,0x01,0x20,0x00,0x5a,0xff,0x8f,0x01,0x20,0x00,0x5b,0xff,0x4c,0x01,0x20,0x00,0x5c,0xff,0x8f,0x01,0x20,0x00,0x5d,0xff,0x7f,0x01,0x20,0x00,0x62,0xff,0x66,0x01,0x20,0x00,0x63,0xff,0x66,0x01,0x20,0x00,0x64,0xff,0xa4,0x01,0x20,0x00,0x67, +0xff,0xa4,0x01,0x20,0x00,0x69,0xff,0x27,0x01,0x20,0x00,0x6a,0xff,0x27,0x01,0x20,0x00,0x6b,0xff,0x27,0x01,0x20,0x00,0x6c,0xff,0x27,0x01,0x20,0x00,0x6d,0xff,0x3f,0x01,0x20,0x00,0x6e,0xff,0x27,0x01,0x20,0x00,0x6f,0xff,0x1b,0x01,0x20,0x00,0x70,0xff,0x2d,0x01,0x20,0x00,0x71,0xff,0x2d,0x01,0x20,0x00,0x72,0xff,0x2d,0x01,0x20, +0x00,0x73,0xff,0x2d,0x01,0x20,0x00,0x74,0xff,0xe9,0x01,0x20,0x00,0x76,0x00,0x31,0x01,0x20,0x00,0x77,0x00,0x6f,0x01,0x20,0x00,0x78,0xff,0x4e,0x01,0x20,0x00,0x79,0xff,0x2d,0x01,0x20,0x00,0x7a,0xff,0x2d,0x01,0x20,0x00,0x7b,0xff,0x2d,0x01,0x20,0x00,0x7c,0xff,0x2d,0x01,0x20,0x00,0x7d,0xff,0x2d,0x01,0x20,0x00,0x7e,0xff,0x4e, +0x01,0x20,0x00,0x7f,0xff,0x4e,0x01,0x20,0x00,0x80,0xff,0x4e,0x01,0x20,0x00,0x81,0xff,0x4e,0x01,0x20,0x00,0x8d,0x00,0x52,0x01,0x20,0x00,0x91,0xff,0x0c,0x01,0x20,0x00,0x92,0xff,0xa4,0x01,0x20,0x00,0xa0,0xff,0x27,0x01,0x20,0x00,0xaa,0xff,0x9a,0x01,0x20,0x00,0xab,0xff,0xcf,0x01,0x20,0x00,0xac,0xff,0x4c,0x01,0x20,0x00,0xad, +0xff,0x66,0x01,0x20,0x00,0xae,0xff,0x66,0x01,0x20,0x00,0xaf,0xff,0xa4,0x01,0x20,0x00,0xb0,0xff,0xa4,0x01,0x20,0x00,0xb1,0xff,0x2d,0x01,0x20,0x00,0xb5,0x00,0x27,0x01,0x20,0x00,0xb7,0x00,0x27,0x01,0x20,0x00,0xba,0xff,0x8f,0x01,0x20,0x00,0xbe,0xff,0x9a,0x01,0x20,0x00,0xbf,0xff,0xcf,0x01,0x20,0x00,0xc4,0xff,0x17,0x01,0x20, +0x00,0xc5,0xff,0x17,0x01,0x20,0x00,0xc7,0xff,0x66,0x01,0x20,0x00,0xc9,0xff,0x66,0x01,0x20,0x00,0xd0,0xff,0xa4,0x01,0x20,0x00,0xd1,0xff,0xa4,0x01,0x20,0x00,0xd2,0xff,0xa4,0x01,0x20,0x00,0xe4,0xff,0x66,0x01,0x20,0x00,0xe6,0xff,0x7f,0x01,0x20,0x00,0xea,0x00,0x1d,0x01,0x20,0x00,0xeb,0xff,0x8f,0x01,0x20,0x00,0xf7,0xff,0xa4, +0x01,0x20,0x00,0xf8,0xff,0x2d,0x01,0x20,0x00,0xfb,0xff,0x66,0x01,0x20,0x00,0xfc,0xff,0xa4,0x01,0x20,0x00,0xfd,0xff,0x2d,0x01,0x20,0x00,0xfe,0xff,0xa4,0x01,0x20,0x00,0xff,0xff,0x2d,0x01,0x20,0x01,0x00,0xff,0x2d,0x01,0x20,0x01,0x03,0xff,0x66,0x01,0x20,0x01,0x04,0xff,0x27,0x01,0x20,0x01,0x05,0xff,0x66,0x01,0x20,0x01,0x06, +0xff,0x27,0x01,0x20,0x01,0x08,0xff,0x2d,0x01,0x20,0x01,0x0b,0xff,0x2d,0x01,0x20,0x01,0x0d,0xff,0x2d,0x01,0x20,0x01,0x15,0xff,0x4e,0x01,0x20,0x01,0x17,0xff,0x4e,0x01,0x20,0x01,0x18,0xff,0xa4,0x01,0x20,0x01,0x19,0xff,0x2d,0x01,0x20,0x01,0x1b,0xff,0x4e,0x01,0x20,0x01,0x1d,0xff,0x4e,0x01,0x20,0x01,0x1f,0xff,0x66,0x01,0x20, +0x01,0x20,0x00,0x27,0x01,0x20,0x01,0x22,0x00,0x27,0x01,0x20,0x01,0x25,0xff,0x4e,0x01,0x20,0x01,0x27,0xff,0x4e,0x01,0x20,0x01,0x29,0xff,0x7f,0x01,0x20,0x01,0x2b,0xff,0x7f,0x01,0x20,0x01,0x45,0xff,0x66,0x01,0x20,0x01,0x46,0xff,0x27,0x01,0x20,0x01,0x47,0xff,0xa4,0x01,0x20,0x01,0x48,0xff,0x2d,0x01,0x20,0x01,0x4c,0xff,0x2d, +0x01,0x20,0x01,0x4e,0xff,0x2d,0x01,0x20,0x01,0x50,0xff,0x2d,0x01,0x20,0x01,0x51,0xff,0xa4,0x01,0x20,0x01,0x52,0xff,0x2d,0x01,0x20,0x01,0x53,0xff,0xa4,0x01,0x20,0x01,0x54,0xff,0x2d,0x01,0x20,0x01,0x55,0xff,0xa4,0x01,0x20,0x01,0x56,0xff,0x2d,0x01,0x20,0x01,0x5c,0x00,0x6f,0x01,0x20,0x01,0x5e,0x00,0x6f,0x01,0x20,0x01,0x60, +0x00,0x6f,0x01,0x20,0x01,0x63,0xff,0x8f,0x01,0x20,0x01,0x6d,0xff,0x4e,0x01,0x20,0x01,0x6e,0xff,0xa4,0x01,0x20,0x01,0x6f,0xff,0x2d,0x01,0x20,0x01,0x70,0xff,0xa4,0x01,0x20,0x01,0x71,0xff,0x2d,0x01,0x20,0x01,0x73,0xff,0x4e,0x01,0x20,0x01,0x75,0xff,0x66,0x01,0x20,0x01,0x76,0x00,0x27,0x01,0x20,0x01,0x79,0xff,0x4e,0x01,0x20, +0x01,0x7b,0xff,0x4e,0x01,0x20,0x01,0x7d,0xff,0x4e,0x01,0x20,0x01,0x7f,0xff,0x4e,0x01,0x20,0x01,0x80,0x00,0x27,0x01,0x20,0x01,0x81,0xff,0x8f,0x01,0x20,0x01,0x82,0x00,0x1d,0x01,0x20,0x01,0x83,0xff,0x8f,0x01,0x20,0x01,0x85,0xff,0x66,0x01,0x20,0x01,0x86,0xff,0x27,0x01,0x20,0x01,0x87,0xff,0x66,0x01,0x20,0x01,0x88,0xff,0x27, +0x01,0x20,0x01,0x89,0xff,0xa4,0x01,0x20,0x01,0x8a,0xff,0x2d,0x01,0x20,0x01,0x8c,0x00,0x27,0x01,0x20,0x01,0x8d,0xff,0x8f,0x01,0x20,0x01,0x8e,0x00,0x27,0x01,0x20,0x01,0x8f,0xff,0x8f,0x01,0x20,0x01,0x90,0x00,0x27,0x01,0x20,0x01,0x91,0xff,0x8f,0x01,0x20,0x01,0x92,0x00,0x1d,0x01,0x20,0x01,0x93,0xff,0x8f,0x01,0x20,0x02,0x3e, +0xff,0x66,0x01,0x21,0x00,0x10,0xff,0x8f,0x01,0x21,0x00,0x22,0xff,0xcb,0x01,0x21,0x00,0x46,0xff,0xe5,0x01,0x21,0x00,0x47,0xff,0xe5,0x01,0x21,0x00,0x48,0xff,0xf0,0x01,0x21,0x00,0x4a,0xff,0xf0,0x01,0x21,0x00,0x52,0xff,0xf0,0x01,0x21,0x00,0x54,0xff,0xf0,0x01,0x21,0x00,0x5b,0x00,0x1d,0x01,0x21,0x00,0x6f,0xff,0xe5,0x01,0x21, +0x00,0x70,0xff,0xf0,0x01,0x21,0x00,0x71,0xff,0xf0,0x01,0x21,0x00,0x72,0xff,0xf0,0x01,0x21,0x00,0x73,0xff,0xf0,0x01,0x21,0x00,0x79,0xff,0xf0,0x01,0x21,0x00,0x7a,0xff,0xf0,0x01,0x21,0x00,0x7b,0xff,0xf0,0x01,0x21,0x00,0x7c,0xff,0xf0,0x01,0x21,0x00,0x7d,0xff,0xf0,0x01,0x21,0x00,0xab,0x00,0x27,0x01,0x21,0x00,0xb1,0xff,0xf0, +0x01,0x21,0x00,0xbf,0x00,0x27,0x01,0x21,0x00,0xf8,0xff,0xf0,0x01,0x21,0x00,0xfd,0xff,0xe5,0x01,0x21,0x00,0xff,0xff,0xe5,0x01,0x21,0x01,0x00,0xff,0xe5,0x01,0x21,0x01,0x08,0xff,0xe5,0x01,0x21,0x01,0x0b,0xff,0xf0,0x01,0x21,0x01,0x0d,0xff,0xf0,0x01,0x21,0x01,0x19,0xff,0xf0,0x01,0x21,0x01,0x48,0xff,0xe5,0x01,0x21,0x01,0x4c, +0xff,0xf0,0x01,0x21,0x01,0x4e,0xff,0xf0,0x01,0x21,0x01,0x50,0xff,0xf0,0x01,0x21,0x01,0x52,0xff,0xf0,0x01,0x21,0x01,0x54,0xff,0xf0,0x01,0x21,0x01,0x56,0xff,0xf0,0x01,0x21,0x01,0x6f,0xff,0xf0,0x01,0x21,0x01,0x71,0xff,0xf0,0x01,0x21,0x01,0x8a,0xff,0xf0,0x01,0x22,0x00,0x0f,0xff,0x7f,0x01,0x22,0x00,0x11,0xff,0x4c,0x01,0x22, +0x00,0x1d,0xff,0xe9,0x01,0x22,0x00,0x1e,0xff,0xe9,0x01,0x22,0x00,0x24,0xff,0x66,0x01,0x22,0x00,0x26,0xff,0xa4,0x01,0x22,0x00,0x2a,0xff,0xa4,0x01,0x22,0x00,0x2d,0xff,0x8f,0x01,0x22,0x00,0x32,0xff,0xa4,0x01,0x22,0x00,0x34,0xff,0xa4,0x01,0x22,0x00,0x37,0x00,0x27,0x01,0x22,0x00,0x39,0x00,0x2b,0x01,0x22,0x00,0x3a,0x00,0x27, +0x01,0x22,0x00,0x3b,0xff,0xfa,0x01,0x22,0x00,0x3c,0x00,0x1d,0x01,0x22,0x00,0x44,0xff,0x27,0x01,0x22,0x00,0x46,0xff,0x2d,0x01,0x22,0x00,0x47,0xff,0x2d,0x01,0x22,0x00,0x48,0xff,0x2d,0x01,0x22,0x00,0x49,0xff,0xa0,0x01,0x22,0x00,0x4a,0xff,0x2d,0x01,0x22,0x00,0x50,0xff,0x4e,0x01,0x22,0x00,0x51,0xff,0x4e,0x01,0x22,0x00,0x52, +0xff,0x2d,0x01,0x22,0x00,0x53,0xff,0x4e,0x01,0x22,0x00,0x54,0xff,0x2d,0x01,0x22,0x00,0x55,0xff,0x4e,0x01,0x22,0x00,0x56,0xff,0x66,0x01,0x22,0x00,0x58,0xff,0x4e,0x01,0x22,0x00,0x59,0xff,0x9a,0x01,0x22,0x00,0x5a,0xff,0x8f,0x01,0x22,0x00,0x5b,0xff,0x4c,0x01,0x22,0x00,0x5c,0xff,0x8f,0x01,0x22,0x00,0x5d,0xff,0x7f,0x01,0x22, +0x00,0x62,0xff,0x66,0x01,0x22,0x00,0x63,0xff,0x66,0x01,0x22,0x00,0x64,0xff,0xa4,0x01,0x22,0x00,0x67,0xff,0xa4,0x01,0x22,0x00,0x69,0xff,0x27,0x01,0x22,0x00,0x6a,0xff,0x27,0x01,0x22,0x00,0x6b,0xff,0x27,0x01,0x22,0x00,0x6c,0xff,0x27,0x01,0x22,0x00,0x6d,0xff,0x3f,0x01,0x22,0x00,0x6e,0xff,0x27,0x01,0x22,0x00,0x6f,0xff,0x1b, +0x01,0x22,0x00,0x70,0xff,0x2d,0x01,0x22,0x00,0x71,0xff,0x2d,0x01,0x22,0x00,0x72,0xff,0x2d,0x01,0x22,0x00,0x73,0xff,0x2d,0x01,0x22,0x00,0x74,0xff,0xe9,0x01,0x22,0x00,0x76,0x00,0x31,0x01,0x22,0x00,0x77,0x00,0x6f,0x01,0x22,0x00,0x78,0xff,0x4e,0x01,0x22,0x00,0x79,0xff,0x2d,0x01,0x22,0x00,0x7a,0xff,0x2d,0x01,0x22,0x00,0x7b, +0xff,0x2d,0x01,0x22,0x00,0x7c,0xff,0x2d,0x01,0x22,0x00,0x7d,0xff,0x2d,0x01,0x22,0x00,0x7e,0xff,0x4e,0x01,0x22,0x00,0x7f,0xff,0x4e,0x01,0x22,0x00,0x80,0xff,0x4e,0x01,0x22,0x00,0x81,0xff,0x4e,0x01,0x22,0x00,0x8d,0x00,0x52,0x01,0x22,0x00,0x91,0xff,0x0c,0x01,0x22,0x00,0x92,0xff,0xa4,0x01,0x22,0x00,0xa0,0xff,0x27,0x01,0x22, +0x00,0xaa,0xff,0x9a,0x01,0x22,0x00,0xab,0xff,0xcf,0x01,0x22,0x00,0xac,0xff,0x4c,0x01,0x22,0x00,0xad,0xff,0x66,0x01,0x22,0x00,0xae,0xff,0x66,0x01,0x22,0x00,0xaf,0xff,0xa4,0x01,0x22,0x00,0xb0,0xff,0xa4,0x01,0x22,0x00,0xb1,0xff,0x2d,0x01,0x22,0x00,0xb5,0x00,0x27,0x01,0x22,0x00,0xb7,0x00,0x27,0x01,0x22,0x00,0xba,0xff,0x8f, +0x01,0x22,0x00,0xbe,0xff,0x9a,0x01,0x22,0x00,0xbf,0xff,0xcf,0x01,0x22,0x00,0xc4,0xff,0x17,0x01,0x22,0x00,0xc5,0xff,0x17,0x01,0x22,0x00,0xc7,0xff,0x66,0x01,0x22,0x00,0xc9,0xff,0x66,0x01,0x22,0x00,0xd0,0xff,0xa4,0x01,0x22,0x00,0xd1,0xff,0xa4,0x01,0x22,0x00,0xd2,0xff,0xa4,0x01,0x22,0x00,0xe4,0xff,0x66,0x01,0x22,0x00,0xe6, +0xff,0x7f,0x01,0x22,0x00,0xea,0x00,0x1d,0x01,0x22,0x00,0xeb,0xff,0x8f,0x01,0x22,0x00,0xf7,0xff,0xa4,0x01,0x22,0x00,0xf8,0xff,0x2d,0x01,0x22,0x00,0xfb,0xff,0x66,0x01,0x22,0x00,0xfc,0xff,0xa4,0x01,0x22,0x00,0xfd,0xff,0x2d,0x01,0x22,0x00,0xfe,0xff,0xa4,0x01,0x22,0x00,0xff,0xff,0x2d,0x01,0x22,0x01,0x00,0xff,0x2d,0x01,0x22, +0x01,0x03,0xff,0x66,0x01,0x22,0x01,0x04,0xff,0x27,0x01,0x22,0x01,0x05,0xff,0x66,0x01,0x22,0x01,0x06,0xff,0x27,0x01,0x22,0x01,0x08,0xff,0x2d,0x01,0x22,0x01,0x0b,0xff,0x2d,0x01,0x22,0x01,0x0d,0xff,0x2d,0x01,0x22,0x01,0x15,0xff,0x4e,0x01,0x22,0x01,0x17,0xff,0x4e,0x01,0x22,0x01,0x18,0xff,0xa4,0x01,0x22,0x01,0x19,0xff,0x2d, +0x01,0x22,0x01,0x1b,0xff,0x4e,0x01,0x22,0x01,0x1d,0xff,0x4e,0x01,0x22,0x01,0x1f,0xff,0x66,0x01,0x22,0x01,0x20,0x00,0x27,0x01,0x22,0x01,0x22,0x00,0x27,0x01,0x22,0x01,0x25,0xff,0x4e,0x01,0x22,0x01,0x27,0xff,0x4e,0x01,0x22,0x01,0x29,0xff,0x7f,0x01,0x22,0x01,0x2b,0xff,0x7f,0x01,0x22,0x01,0x45,0xff,0x66,0x01,0x22,0x01,0x46, +0xff,0x27,0x01,0x22,0x01,0x47,0xff,0xa4,0x01,0x22,0x01,0x48,0xff,0x2d,0x01,0x22,0x01,0x4c,0xff,0x2d,0x01,0x22,0x01,0x4e,0xff,0x2d,0x01,0x22,0x01,0x50,0xff,0x2d,0x01,0x22,0x01,0x51,0xff,0xa4,0x01,0x22,0x01,0x52,0xff,0x2d,0x01,0x22,0x01,0x53,0xff,0xa4,0x01,0x22,0x01,0x54,0xff,0x2d,0x01,0x22,0x01,0x55,0xff,0xa4,0x01,0x22, +0x01,0x56,0xff,0x2d,0x01,0x22,0x01,0x5c,0x00,0x6f,0x01,0x22,0x01,0x5e,0x00,0x6f,0x01,0x22,0x01,0x60,0x00,0x6f,0x01,0x22,0x01,0x63,0xff,0x8f,0x01,0x22,0x01,0x6d,0xff,0x4e,0x01,0x22,0x01,0x6e,0xff,0xa4,0x01,0x22,0x01,0x6f,0xff,0x2d,0x01,0x22,0x01,0x70,0xff,0xa4,0x01,0x22,0x01,0x71,0xff,0x2d,0x01,0x22,0x01,0x73,0xff,0x4e, +0x01,0x22,0x01,0x75,0xff,0x66,0x01,0x22,0x01,0x76,0x00,0x27,0x01,0x22,0x01,0x79,0xff,0x4e,0x01,0x22,0x01,0x7b,0xff,0x4e,0x01,0x22,0x01,0x7d,0xff,0x4e,0x01,0x22,0x01,0x7f,0xff,0x4e,0x01,0x22,0x01,0x80,0x00,0x27,0x01,0x22,0x01,0x81,0xff,0x8f,0x01,0x22,0x01,0x82,0x00,0x1d,0x01,0x22,0x01,0x83,0xff,0x8f,0x01,0x22,0x01,0x85, +0xff,0x66,0x01,0x22,0x01,0x86,0xff,0x27,0x01,0x22,0x01,0x87,0xff,0x66,0x01,0x22,0x01,0x88,0xff,0x27,0x01,0x22,0x01,0x89,0xff,0xa4,0x01,0x22,0x01,0x8a,0xff,0x2d,0x01,0x22,0x01,0x8c,0x00,0x27,0x01,0x22,0x01,0x8d,0xff,0x8f,0x01,0x22,0x01,0x8e,0x00,0x27,0x01,0x22,0x01,0x8f,0xff,0x8f,0x01,0x22,0x01,0x90,0x00,0x27,0x01,0x22, +0x01,0x91,0xff,0x8f,0x01,0x22,0x01,0x92,0x00,0x1d,0x01,0x22,0x01,0x93,0xff,0x8f,0x01,0x22,0x02,0x3e,0xff,0x66,0x01,0x23,0x00,0x10,0xff,0x8f,0x01,0x23,0x00,0x22,0xff,0xcb,0x01,0x23,0x00,0x46,0xff,0xe5,0x01,0x23,0x00,0x47,0xff,0xe5,0x01,0x23,0x00,0x48,0xff,0xf0,0x01,0x23,0x00,0x4a,0xff,0xf0,0x01,0x23,0x00,0x52,0xff,0xf0, +0x01,0x23,0x00,0x54,0xff,0xf0,0x01,0x23,0x00,0x5b,0x00,0x1d,0x01,0x23,0x00,0x6f,0xff,0xe5,0x01,0x23,0x00,0x70,0xff,0xf0,0x01,0x23,0x00,0x71,0xff,0xf0,0x01,0x23,0x00,0x72,0xff,0xf0,0x01,0x23,0x00,0x73,0xff,0xf0,0x01,0x23,0x00,0x79,0xff,0xf0,0x01,0x23,0x00,0x7a,0xff,0xf0,0x01,0x23,0x00,0x7b,0xff,0xf0,0x01,0x23,0x00,0x7c, +0xff,0xf0,0x01,0x23,0x00,0x7d,0xff,0xf0,0x01,0x23,0x00,0xab,0x00,0x27,0x01,0x23,0x00,0xb1,0xff,0xf0,0x01,0x23,0x00,0xbf,0x00,0x27,0x01,0x23,0x00,0xf8,0xff,0xf0,0x01,0x23,0x00,0xfd,0xff,0xe5,0x01,0x23,0x00,0xff,0xff,0xe5,0x01,0x23,0x01,0x00,0xff,0xe5,0x01,0x23,0x01,0x08,0xff,0xe5,0x01,0x23,0x01,0x0b,0xff,0xf0,0x01,0x23, +0x01,0x0d,0xff,0xf0,0x01,0x23,0x01,0x19,0xff,0xf0,0x01,0x23,0x01,0x48,0xff,0xe5,0x01,0x23,0x01,0x4c,0xff,0xf0,0x01,0x23,0x01,0x4e,0xff,0xf0,0x01,0x23,0x01,0x50,0xff,0xf0,0x01,0x23,0x01,0x52,0xff,0xf0,0x01,0x23,0x01,0x54,0xff,0xf0,0x01,0x23,0x01,0x56,0xff,0xf0,0x01,0x23,0x01,0x6f,0xff,0xf0,0x01,0x23,0x01,0x71,0xff,0xf0, +0x01,0x23,0x01,0x8a,0xff,0xf0,0x01,0x24,0x00,0x24,0xff,0xd7,0x01,0x24,0x00,0x91,0xff,0x8b,0x01,0x24,0x00,0xc4,0xff,0xa6,0x01,0x24,0x00,0xc5,0xff,0xa6,0x01,0x24,0x01,0x03,0xff,0xd7,0x01,0x24,0x01,0x05,0xff,0xd7,0x01,0x24,0x01,0x45,0xff,0xd7,0x01,0x24,0x01,0x85,0xff,0xd7,0x01,0x24,0x01,0x87,0xff,0xd7,0x01,0x25,0x00,0x05, +0xff,0xbe,0x01,0x25,0x00,0x0a,0xff,0xbe,0x01,0x26,0x00,0x24,0xff,0xd7,0x01,0x26,0x00,0x91,0xff,0x8b,0x01,0x26,0x00,0xc4,0xff,0xa6,0x01,0x26,0x00,0xc5,0xff,0xa6,0x01,0x26,0x01,0x03,0xff,0xd7,0x01,0x26,0x01,0x05,0xff,0xd7,0x01,0x26,0x01,0x45,0xff,0xd7,0x01,0x26,0x01,0x85,0xff,0xd7,0x01,0x26,0x01,0x87,0xff,0xd7,0x01,0x27, +0x00,0x05,0xff,0xbe,0x01,0x27,0x00,0x0a,0xff,0xbe,0x01,0x28,0x00,0x2d,0x00,0x52,0x01,0x28,0x00,0x37,0x00,0x27,0x01,0x28,0x00,0x5c,0xff,0xcb,0x01,0x28,0x00,0x77,0x00,0x46,0x01,0x28,0x00,0xab,0x00,0x27,0x01,0x28,0x00,0xba,0xff,0xbe,0x01,0x28,0x00,0xbf,0x00,0x52,0x01,0x28,0x00,0xeb,0xff,0xcb,0x01,0x28,0x01,0x20,0x00,0x27, +0x01,0x28,0x01,0x22,0x00,0x27,0x01,0x28,0x01,0x5c,0x00,0x46,0x01,0x28,0x01,0x5e,0x00,0x46,0x01,0x28,0x01,0x60,0x00,0x46,0x01,0x28,0x01,0x63,0x00,0x52,0x01,0x28,0x01,0x76,0x00,0x27,0x01,0x28,0x01,0x83,0xff,0xcb,0x01,0x28,0x01,0x93,0xff,0xcb,0x01,0x2a,0x00,0x2d,0x00,0x52,0x01,0x2a,0x00,0x37,0x00,0x27,0x01,0x2a,0x00,0x5c, +0xff,0xcb,0x01,0x2a,0x00,0x77,0x00,0x46,0x01,0x2a,0x00,0xab,0x00,0x27,0x01,0x2a,0x00,0xba,0xff,0xbe,0x01,0x2a,0x00,0xbf,0x00,0x52,0x01,0x2a,0x00,0xeb,0xff,0xcb,0x01,0x2a,0x01,0x20,0x00,0x27,0x01,0x2a,0x01,0x22,0x00,0x27,0x01,0x2a,0x01,0x5c,0x00,0x46,0x01,0x2a,0x01,0x5e,0x00,0x46,0x01,0x2a,0x01,0x60,0x00,0x46,0x01,0x2a, +0x01,0x63,0x00,0x52,0x01,0x2a,0x01,0x76,0x00,0x27,0x01,0x2a,0x01,0x83,0xff,0xcb,0x01,0x2a,0x01,0x93,0xff,0xcb,0x01,0x2c,0x00,0x04,0x00,0x44,0x01,0x2c,0x00,0x0f,0xff,0x7d,0x01,0x2c,0x00,0x11,0xff,0x4c,0x01,0x2c,0x00,0x1d,0xff,0xe9,0x01,0x2c,0x00,0x1e,0xff,0xe9,0x01,0x2c,0x00,0x8d,0x00,0x52,0x01,0x2c,0x00,0xa9,0xff,0x6d, +0x01,0x2c,0x00,0xaa,0xff,0x98,0x01,0x2c,0x00,0xab,0xff,0xcd,0x01,0x2c,0x00,0xac,0xff,0x4c,0x01,0x2c,0x00,0xb5,0x00,0x29,0x01,0x2c,0x00,0xb7,0x00,0x29,0x01,0x2c,0x00,0xbe,0xff,0x98,0x01,0x2c,0x00,0xbf,0xff,0xcd,0x01,0x2c,0x00,0xc4,0xff,0x14,0x01,0x2c,0x00,0xc5,0xff,0x14,0x01,0x2c,0x01,0x2d,0xff,0xb6,0x01,0x2c,0x01,0x2e, +0xff,0xb6,0x01,0x2c,0x01,0x2f,0xff,0x2b,0x01,0x2c,0x01,0x30,0xff,0xb0,0x01,0x2c,0x01,0x31,0xff,0x2b,0x01,0x2c,0x01,0x32,0xff,0x2b,0x01,0x2c,0x01,0x33,0xff,0x8f,0x01,0x2c,0x01,0x34,0xff,0x2b,0x01,0x2c,0x01,0xa8,0x00,0x7b,0x01,0x2c,0x01,0xa9,0xff,0x6d,0x01,0x2c,0x01,0xac,0x00,0x0a,0x01,0x2c,0x01,0xb0,0xff,0x6d,0x01,0x2c, +0x01,0xb4,0xff,0xb6,0x01,0x2c,0x01,0xb8,0x00,0x2f,0x01,0x2c,0x01,0xb9,0x00,0x1d,0x01,0x2c,0x01,0xbc,0xff,0xcf,0x01,0x2c,0x01,0xbf,0xff,0x2b,0x01,0x2c,0x01,0xc0,0xff,0x2b,0x01,0x2c,0x01,0xc1,0xff,0x4e,0x01,0x2c,0x01,0xc2,0xff,0x8f,0x01,0x2c,0x01,0xc5,0xff,0xc1,0x01,0x2c,0x01,0xc7,0xff,0x4e,0x01,0x2c,0x01,0xc9,0xff,0x4e, +0x01,0x2c,0x01,0xca,0xff,0x4e,0x01,0x2c,0x01,0xcc,0xff,0x4e,0x01,0x2c,0x01,0xce,0xff,0xb0,0x01,0x2c,0x01,0xcf,0xff,0x2b,0x01,0x2c,0x01,0xd0,0xff,0x4e,0x01,0x2c,0x01,0xd1,0xff,0x2b,0x01,0x2c,0x01,0xd2,0xff,0x4e,0x01,0x2c,0x01,0xd3,0xff,0x7f,0x01,0x2c,0x01,0xd4,0xff,0x4e,0x01,0x2c,0x01,0xd5,0xff,0x2b,0x01,0x2c,0x01,0xd6, +0x00,0x52,0x01,0x2c,0x01,0xd7,0xff,0x4e,0x01,0x2c,0x01,0xd8,0xff,0x2b,0x01,0x2c,0x01,0xd9,0xff,0x4e,0x01,0x2c,0x01,0xda,0xff,0x2b,0x01,0x2c,0x02,0x37,0xff,0x8f,0x01,0x2d,0x00,0x0f,0xff,0xa2,0x01,0x2d,0x00,0xa9,0xff,0xcf,0x01,0x2d,0x00,0xc4,0xff,0x4a,0x01,0x2d,0x00,0xc5,0xff,0x96,0x01,0x2d,0x01,0xa9,0xff,0xe5,0x01,0x2d, +0x01,0xac,0xff,0xcd,0x01,0x2d,0x01,0xb0,0xff,0xe5,0x01,0x2d,0x01,0xb7,0xff,0xe3,0x01,0x2d,0x01,0xb8,0xff,0xa4,0x01,0x2d,0x01,0xb9,0xff,0xe7,0x01,0x2d,0x01,0xba,0xff,0xdb,0x01,0x2d,0x01,0xbe,0xff,0xe7,0x01,0x2d,0x01,0xcb,0xff,0xd7,0x01,0x2e,0x00,0x0f,0xff,0xa2,0x01,0x2e,0x00,0xa9,0xff,0xcf,0x01,0x2e,0x00,0xc4,0xff,0x4a, +0x01,0x2e,0x00,0xc5,0xff,0x96,0x01,0x2e,0x01,0xa9,0xff,0xcf,0x01,0x2e,0x01,0xac,0xff,0xcd,0x01,0x2e,0x01,0xb0,0xff,0xcf,0x01,0x2e,0x01,0xb7,0xff,0xe3,0x01,0x2e,0x01,0xb8,0xff,0xa4,0x01,0x2e,0x01,0xb9,0xff,0xe7,0x01,0x2e,0x01,0xba,0xff,0xd3,0x01,0x2e,0x01,0xbe,0xff,0xe7,0x01,0x2e,0x01,0xcb,0xff,0xc3,0x01,0x2f,0x01,0x2f, +0xff,0xee,0x01,0x2f,0x01,0x30,0xff,0xee,0x01,0x2f,0x01,0x32,0xff,0xee,0x01,0x2f,0x01,0x34,0xff,0xee,0x01,0x2f,0x01,0xbf,0xff,0xee,0x01,0x2f,0x01,0xcf,0xff,0xee,0x01,0x2f,0x01,0xd1,0xff,0xee,0x01,0x2f,0x01,0xd5,0xff,0xee,0x01,0x2f,0x01,0xd8,0xff,0xee,0x01,0x30,0x00,0x05,0xff,0x6f,0x01,0x30,0x00,0x0a,0xff,0x6f,0x01,0x30, +0x00,0xb4,0xff,0xb0,0x01,0x30,0x00,0xb5,0xff,0x7b,0x01,0x30,0x00,0xb6,0xff,0xbc,0x01,0x30,0x00,0xb7,0xff,0x7b,0x01,0x30,0x01,0x33,0xff,0xdb,0x01,0x30,0x01,0xc5,0xff,0xc1,0x01,0x30,0x01,0xd3,0xff,0xaa,0x01,0x30,0x02,0x37,0xff,0xdb,0x01,0x32,0x01,0x33,0x00,0x19,0x01,0x32,0x01,0xc5,0x00,0x31,0x01,0x32,0x01,0xcd,0x00,0x39, +0x01,0x32,0x01,0xd3,0x00,0x19,0x01,0x32,0x02,0x37,0x00,0x19,0x01,0x33,0x01,0x2f,0xff,0xdb,0x01,0x33,0x01,0x30,0xff,0xdb,0x01,0x33,0x01,0x32,0xff,0xdb,0x01,0x33,0x01,0x33,0x00,0x19,0x01,0x33,0x01,0x34,0xff,0xdb,0x01,0x33,0x01,0xbf,0xff,0xdb,0x01,0x33,0x01,0xc5,0x00,0x29,0x01,0x33,0x01,0xcd,0x00,0x25,0x01,0x33,0x01,0xcf, +0xff,0xdb,0x01,0x33,0x01,0xd0,0xff,0xcf,0x01,0x33,0x01,0xd3,0x00,0x19,0x01,0x33,0x01,0xd5,0xff,0xdb,0x01,0x33,0x01,0xd8,0xff,0xdb,0x01,0x33,0x01,0xda,0xff,0xdb,0x01,0x34,0x00,0x05,0xff,0x6f,0x01,0x34,0x00,0x0a,0xff,0x6f,0x01,0x34,0x00,0xb4,0xff,0xb0,0x01,0x34,0x00,0xb5,0xff,0x7b,0x01,0x34,0x00,0xb6,0xff,0xbc,0x01,0x34, +0x00,0xb7,0xff,0x7b,0x01,0x34,0x01,0x33,0xff,0xdb,0x01,0x34,0x01,0xc5,0xff,0xdb,0x01,0x34,0x01,0xd3,0xff,0xc3,0x01,0x34,0x02,0x37,0xff,0xdb,0x01,0x3a,0x00,0x4d,0x00,0x23,0x01,0x3a,0x01,0x64,0x00,0x23,0x01,0x3b,0x00,0x05,0xff,0x98,0x01,0x3b,0x00,0x0a,0xff,0x98,0x01,0x45,0x00,0x0d,0xff,0x7f,0x01,0x45,0x00,0x0f,0x00,0x44, +0x01,0x45,0x00,0x1e,0x00,0x44,0x01,0x45,0x00,0x26,0xff,0xe5,0x01,0x45,0x00,0x2a,0xff,0xe5,0x01,0x45,0x00,0x2d,0x00,0x5e,0x01,0x45,0x00,0x32,0xff,0xe5,0x01,0x45,0x00,0x37,0xff,0x6d,0x01,0x45,0x00,0x38,0xff,0xe5,0x01,0x45,0x00,0x39,0xff,0x8b,0x01,0x45,0x00,0x3a,0xff,0xb6,0x01,0x45,0x00,0x3c,0xff,0x64,0x01,0x45,0x00,0x3d, +0x00,0x3b,0x01,0x45,0x00,0x57,0xff,0xe5,0x01,0x45,0x00,0x59,0xff,0xd5,0x01,0x45,0x00,0x5a,0xff,0xe5,0x01,0x45,0x00,0x5c,0xff,0xdb,0x01,0x45,0x00,0x8d,0xff,0x9a,0x01,0x45,0x00,0xb4,0xff,0x66,0x01,0x45,0x00,0xb5,0xff,0x3f,0x01,0x45,0x00,0xb6,0xff,0x66,0x01,0x45,0x00,0xb7,0xff,0x3f,0x01,0x45,0x00,0xba,0xff,0xc1,0x01,0x45, +0x00,0xbb,0xff,0x64,0x01,0x45,0x00,0xe5,0x00,0x3b,0x01,0x45,0x00,0xea,0xff,0x64,0x01,0x45,0x00,0xeb,0xff,0xdb,0x01,0x45,0x00,0xf7,0xff,0xe5,0x01,0x45,0x00,0xfc,0xff,0xe5,0x01,0x45,0x00,0xfe,0xff,0xe5,0x01,0x45,0x01,0x18,0xff,0xe5,0x01,0x45,0x01,0x20,0xff,0x6d,0x01,0x45,0x01,0x21,0xff,0xe5,0x01,0x45,0x01,0x22,0xff,0x6d, +0x01,0x45,0x01,0x23,0xff,0xe5,0x01,0x45,0x01,0x24,0xff,0xe5,0x01,0x45,0x01,0x26,0xff,0xe5,0x01,0x45,0x01,0x28,0x00,0x3b,0x01,0x45,0x01,0x2a,0x00,0x3b,0x01,0x45,0x01,0x47,0xff,0xe5,0x01,0x45,0x01,0x51,0xff,0xe5,0x01,0x45,0x01,0x53,0xff,0xe5,0x01,0x45,0x01,0x55,0xff,0xe5,0x01,0x45,0x01,0x63,0x00,0x5e,0x01,0x45,0x01,0x6e, +0xff,0xe5,0x01,0x45,0x01,0x70,0xff,0xe5,0x01,0x45,0x01,0x76,0xff,0x6d,0x01,0x45,0x01,0x77,0xff,0xe5,0x01,0x45,0x01,0x78,0xff,0xe5,0x01,0x45,0x01,0x7a,0xff,0xe5,0x01,0x45,0x01,0x7c,0xff,0xe5,0x01,0x45,0x01,0x7e,0xff,0xe5,0x01,0x45,0x01,0x80,0xff,0xb6,0x01,0x45,0x01,0x81,0xff,0xe5,0x01,0x45,0x01,0x82,0xff,0x64,0x01,0x45, +0x01,0x83,0xff,0xdb,0x01,0x45,0x01,0x89,0xff,0xe5,0x01,0x45,0x01,0x8c,0xff,0xb6,0x01,0x45,0x01,0x8d,0xff,0xe5,0x01,0x45,0x01,0x8e,0xff,0xb6,0x01,0x45,0x01,0x8f,0xff,0xe5,0x01,0x45,0x01,0x90,0xff,0xb6,0x01,0x45,0x01,0x91,0xff,0xe5,0x01,0x45,0x01,0x92,0xff,0x64,0x01,0x45,0x01,0x93,0xff,0xdb,0x01,0x47,0x00,0x26,0xff,0xc9, +0x01,0x47,0x00,0x2a,0xff,0xc9,0x01,0x47,0x00,0x32,0xff,0xe5,0x01,0x47,0x00,0x34,0xff,0xc9,0x01,0x47,0x00,0x64,0xff,0xc9,0x01,0x47,0x00,0x67,0xff,0xc9,0x01,0x47,0x00,0x77,0x00,0x1d,0x01,0x47,0x00,0x92,0xff,0xc9,0x01,0x47,0x00,0xaa,0xff,0xcf,0x01,0x47,0x00,0xaf,0xff,0xc9,0x01,0x47,0x00,0xb0,0xff,0xc9,0x01,0x47,0x00,0xbe, +0xff,0xcf,0x01,0x47,0x00,0xd0,0xff,0xc9,0x01,0x47,0x00,0xd1,0xff,0xc9,0x01,0x47,0x00,0xd2,0xff,0xc9,0x01,0x47,0x00,0xf7,0xff,0xc9,0x01,0x47,0x00,0xfc,0xff,0xc9,0x01,0x47,0x00,0xfe,0xff,0xc9,0x01,0x47,0x01,0x18,0xff,0xe5,0x01,0x47,0x01,0x47,0xff,0xc9,0x01,0x47,0x01,0x51,0xff,0xc9,0x01,0x47,0x01,0x53,0xff,0xc9,0x01,0x47, +0x01,0x55,0xff,0xc9,0x01,0x47,0x01,0x5c,0x00,0x1d,0x01,0x47,0x01,0x5e,0x00,0x1d,0x01,0x47,0x01,0x60,0x00,0x1d,0x01,0x47,0x01,0x6e,0xff,0xe5,0x01,0x47,0x01,0x70,0xff,0xe5,0x01,0x47,0x01,0x89,0xff,0xe5,0x01,0x48,0x00,0x2d,0x00,0x46,0x01,0x48,0x00,0x37,0xff,0x9a,0x01,0x48,0x00,0x3c,0xff,0xb4,0x01,0x48,0x00,0xea,0xff,0xb4, +0x01,0x48,0x01,0x20,0xff,0x9a,0x01,0x48,0x01,0x22,0xff,0x9a,0x01,0x48,0x01,0x63,0x00,0x46,0x01,0x48,0x01,0x76,0xff,0x9a,0x01,0x48,0x01,0x82,0xff,0xb4,0x01,0x48,0x01,0x92,0xff,0xb4,0x01,0x4b,0x00,0x24,0x00,0x0a,0x01,0x4b,0x00,0x2d,0x00,0x44,0x01,0x4b,0x00,0x37,0x00,0x04,0x01,0x4b,0x00,0x3a,0x00,0x1d,0x01,0x4b,0x00,0x3b, +0x00,0x08,0x01,0x4b,0x00,0x62,0x00,0x0a,0x01,0x4b,0x00,0x63,0x00,0x0a,0x01,0x4b,0x00,0x77,0x00,0x12,0x01,0x4b,0x00,0xad,0x00,0x0a,0x01,0x4b,0x00,0xae,0x00,0x0a,0x01,0x4b,0x00,0xc7,0x00,0x0a,0x01,0x4b,0x00,0xc9,0x00,0x0a,0x01,0x4b,0x01,0x03,0x00,0x0a,0x01,0x4b,0x01,0x05,0x00,0x0a,0x01,0x4b,0x01,0x20,0x00,0x04,0x01,0x4b, +0x01,0x22,0x00,0x04,0x01,0x4b,0x01,0x45,0x00,0x0a,0x01,0x4b,0x01,0x5c,0x00,0x12,0x01,0x4b,0x01,0x5e,0x00,0x12,0x01,0x4b,0x01,0x60,0x00,0x12,0x01,0x4b,0x01,0x63,0x00,0x44,0x01,0x4b,0x01,0x76,0x00,0x04,0x01,0x4b,0x01,0x80,0x00,0x1d,0x01,0x4b,0x01,0x85,0x00,0x0a,0x01,0x4b,0x01,0x87,0x00,0x0a,0x01,0x4b,0x01,0x8c,0x00,0x1d, +0x01,0x4b,0x01,0x8e,0x00,0x1d,0x01,0x4b,0x01,0x90,0x00,0x1d,0x01,0x4c,0x00,0x05,0xff,0x98,0x01,0x4c,0x00,0x0a,0xff,0x98,0x01,0x4d,0x00,0x24,0x00,0x0a,0x01,0x4d,0x00,0x2d,0x00,0x44,0x01,0x4d,0x00,0x37,0x00,0x04,0x01,0x4d,0x00,0x3a,0x00,0x1d,0x01,0x4d,0x00,0x3b,0x00,0x08,0x01,0x4d,0x00,0x62,0x00,0x0a,0x01,0x4d,0x00,0x63, +0x00,0x0a,0x01,0x4d,0x00,0x77,0x00,0x12,0x01,0x4d,0x00,0xad,0x00,0x0a,0x01,0x4d,0x00,0xae,0x00,0x0a,0x01,0x4d,0x00,0xc7,0x00,0x0a,0x01,0x4d,0x00,0xc9,0x00,0x0a,0x01,0x4d,0x01,0x03,0x00,0x0a,0x01,0x4d,0x01,0x05,0x00,0x0a,0x01,0x4d,0x01,0x20,0x00,0x04,0x01,0x4d,0x01,0x22,0x00,0x04,0x01,0x4d,0x01,0x45,0x00,0x0a,0x01,0x4d, +0x01,0x5c,0x00,0x12,0x01,0x4d,0x01,0x5e,0x00,0x12,0x01,0x4d,0x01,0x60,0x00,0x12,0x01,0x4d,0x01,0x63,0x00,0x44,0x01,0x4d,0x01,0x76,0x00,0x04,0x01,0x4d,0x01,0x80,0x00,0x1d,0x01,0x4d,0x01,0x85,0x00,0x0a,0x01,0x4d,0x01,0x87,0x00,0x0a,0x01,0x4d,0x01,0x8c,0x00,0x1d,0x01,0x4d,0x01,0x8e,0x00,0x1d,0x01,0x4d,0x01,0x90,0x00,0x1d, +0x01,0x4e,0x00,0x05,0xff,0x98,0x01,0x4e,0x00,0x0a,0xff,0x98,0x01,0x4f,0x00,0x24,0x00,0x0a,0x01,0x4f,0x00,0x2d,0x00,0x44,0x01,0x4f,0x00,0x37,0x00,0x04,0x01,0x4f,0x00,0x3a,0x00,0x1d,0x01,0x4f,0x00,0x3b,0x00,0x08,0x01,0x4f,0x00,0x62,0x00,0x0a,0x01,0x4f,0x00,0x63,0x00,0x0a,0x01,0x4f,0x00,0x77,0x00,0x12,0x01,0x4f,0x00,0xad, +0x00,0x0a,0x01,0x4f,0x00,0xae,0x00,0x0a,0x01,0x4f,0x00,0xc7,0x00,0x0a,0x01,0x4f,0x00,0xc9,0x00,0x0a,0x01,0x4f,0x01,0x03,0x00,0x0a,0x01,0x4f,0x01,0x05,0x00,0x0a,0x01,0x4f,0x01,0x20,0x00,0x04,0x01,0x4f,0x01,0x22,0x00,0x04,0x01,0x4f,0x01,0x45,0x00,0x0a,0x01,0x4f,0x01,0x5c,0x00,0x12,0x01,0x4f,0x01,0x5e,0x00,0x12,0x01,0x4f, +0x01,0x60,0x00,0x12,0x01,0x4f,0x01,0x63,0x00,0x44,0x01,0x4f,0x01,0x76,0x00,0x04,0x01,0x4f,0x01,0x80,0x00,0x1d,0x01,0x4f,0x01,0x85,0x00,0x0a,0x01,0x4f,0x01,0x87,0x00,0x0a,0x01,0x4f,0x01,0x8c,0x00,0x1d,0x01,0x4f,0x01,0x8e,0x00,0x1d,0x01,0x4f,0x01,0x90,0x00,0x1d,0x01,0x50,0x00,0x05,0xff,0x98,0x01,0x50,0x00,0x0a,0xff,0x98, +0x01,0x51,0x00,0x37,0xff,0xcf,0x01,0x51,0x00,0x39,0xff,0xe5,0x01,0x51,0x00,0x5c,0xff,0xe5,0x01,0x51,0x00,0xba,0xff,0xe5,0x01,0x51,0x00,0xeb,0xff,0xe5,0x01,0x51,0x01,0x20,0xff,0xcf,0x01,0x51,0x01,0x22,0xff,0xcf,0x01,0x51,0x01,0x76,0xff,0xcf,0x01,0x51,0x01,0x83,0xff,0xe5,0x01,0x51,0x01,0x93,0xff,0xe5,0x01,0x52,0x00,0x4d, +0x00,0x2f,0x01,0x52,0x01,0x64,0x00,0x2f,0x01,0x53,0x00,0x37,0xff,0xcf,0x01,0x53,0x00,0x39,0xff,0xe5,0x01,0x53,0x00,0x5c,0xff,0xe5,0x01,0x53,0x00,0xba,0xff,0xe5,0x01,0x53,0x00,0xeb,0xff,0xe5,0x01,0x53,0x01,0x20,0xff,0xcf,0x01,0x53,0x01,0x22,0xff,0xcf,0x01,0x53,0x01,0x76,0xff,0xcf,0x01,0x53,0x01,0x83,0xff,0xe5,0x01,0x53, +0x01,0x93,0xff,0xe5,0x01,0x54,0x00,0x4d,0x00,0x2f,0x01,0x54,0x01,0x64,0x00,0x2f,0x01,0x55,0x00,0x37,0xff,0xcf,0x01,0x55,0x00,0x39,0xff,0xe5,0x01,0x55,0x00,0x5c,0xff,0xe5,0x01,0x55,0x00,0xba,0xff,0xe5,0x01,0x55,0x00,0xeb,0xff,0xe5,0x01,0x55,0x01,0x20,0xff,0xcf,0x01,0x55,0x01,0x22,0xff,0xcf,0x01,0x55,0x01,0x76,0xff,0xcf, +0x01,0x55,0x01,0x83,0xff,0xe5,0x01,0x55,0x01,0x93,0xff,0xe5,0x01,0x56,0x00,0x4d,0x00,0x2f,0x01,0x56,0x01,0x64,0x00,0x2f,0x01,0x63,0x00,0x0f,0xff,0x9a,0x01,0x63,0x00,0x11,0xff,0x9a,0x01,0x63,0x00,0x24,0xff,0xdb,0x01,0x63,0x00,0x2d,0xff,0xbe,0x01,0x63,0x00,0x44,0xff,0xe5,0x01,0x63,0x00,0x62,0xff,0xdb,0x01,0x63,0x00,0x63, +0xff,0xdb,0x01,0x63,0x00,0x69,0xff,0xe5,0x01,0x63,0x00,0x6a,0xff,0xe5,0x01,0x63,0x00,0x6b,0xff,0xe5,0x01,0x63,0x00,0x6c,0xff,0xe5,0x01,0x63,0x00,0x6d,0xff,0xe5,0x01,0x63,0x00,0x6e,0xff,0xe5,0x01,0x63,0x00,0x91,0xff,0x98,0x01,0x63,0x00,0xa0,0xff,0xe5,0x01,0x63,0x00,0xac,0xff,0x9a,0x01,0x63,0x00,0xad,0xff,0xdb,0x01,0x63, +0x00,0xae,0xff,0xdb,0x01,0x63,0x00,0xc4,0xff,0x66,0x01,0x63,0x00,0xc5,0xff,0x9a,0x01,0x63,0x00,0xc7,0xff,0xdb,0x01,0x63,0x00,0xc9,0xff,0xdb,0x01,0x63,0x01,0x03,0xff,0xdb,0x01,0x63,0x01,0x04,0xff,0xe5,0x01,0x63,0x01,0x05,0xff,0xdb,0x01,0x63,0x01,0x06,0xff,0xe5,0x01,0x63,0x01,0x45,0xff,0xdb,0x01,0x63,0x01,0x46,0xff,0xe5, +0x01,0x63,0x01,0x63,0xff,0xbe,0x01,0x63,0x01,0x85,0xff,0xdb,0x01,0x63,0x01,0x86,0xff,0xe5,0x01,0x63,0x01,0x87,0xff,0xdb,0x01,0x63,0x01,0x88,0xff,0xe5,0x01,0x64,0x00,0x4d,0x00,0x23,0x01,0x64,0x01,0x64,0x00,0x23,0x01,0x65,0x00,0x0f,0x00,0x27,0x01,0x65,0x00,0x1e,0x00,0x27,0x01,0x65,0x00,0x26,0xff,0xa6,0x01,0x65,0x00,0x2a, +0xff,0xa6,0x01,0x65,0x00,0x2d,0x00,0x5a,0x01,0x65,0x00,0x32,0xff,0xa6,0x01,0x65,0x00,0x34,0xff,0xa6,0x01,0x65,0x00,0x3b,0x00,0x25,0x01,0x65,0x00,0x3d,0x00,0x27,0x01,0x65,0x00,0x46,0xff,0xe5,0x01,0x65,0x00,0x47,0xff,0xe5,0x01,0x65,0x00,0x48,0xff,0xe5,0x01,0x65,0x00,0x4a,0xff,0xe5,0x01,0x65,0x00,0x52,0xff,0xe5,0x01,0x65, +0x00,0x54,0xff,0xe5,0x01,0x65,0x00,0x57,0xff,0xd1,0x01,0x65,0x00,0x59,0xff,0xb6,0x01,0x65,0x00,0x5a,0xff,0xcb,0x01,0x65,0x00,0x5c,0xff,0xa4,0x01,0x65,0x00,0x64,0xff,0x9a,0x01,0x65,0x00,0x67,0xff,0xa6,0x01,0x65,0x00,0x6f,0xff,0xe5,0x01,0x65,0x00,0x70,0xff,0xe5,0x01,0x65,0x00,0x71,0xff,0xe5,0x01,0x65,0x00,0x72,0xff,0xe5, +0x01,0x65,0x00,0x73,0xff,0xe5,0x01,0x65,0x00,0x74,0xff,0xcf,0x01,0x65,0x00,0x77,0x00,0x27,0x01,0x65,0x00,0x79,0xff,0xe5,0x01,0x65,0x00,0x7a,0xff,0xe5,0x01,0x65,0x00,0x7b,0xff,0xe5,0x01,0x65,0x00,0x7c,0xff,0xe5,0x01,0x65,0x00,0x7d,0xff,0xe5,0x01,0x65,0x00,0x92,0xff,0xa6,0x01,0x65,0x00,0xaf,0xff,0xa6,0x01,0x65,0x00,0xb0, +0xff,0xa6,0x01,0x65,0x00,0xb1,0xff,0xe5,0x01,0x65,0x00,0xba,0xff,0xa4,0x01,0x65,0x00,0xc4,0x00,0x44,0x01,0x65,0x00,0xc5,0x00,0x44,0x01,0x65,0x00,0xd0,0xff,0xa6,0x01,0x65,0x00,0xd1,0xff,0xa6,0x01,0x65,0x00,0xd2,0xff,0xa6,0x01,0x65,0x00,0xe5,0x00,0x27,0x01,0x65,0x00,0xeb,0xff,0xa4,0x01,0x65,0x00,0xf7,0xff,0xa6,0x01,0x65, +0x00,0xf8,0xff,0xe5,0x01,0x65,0x00,0xfc,0xff,0xa6,0x01,0x65,0x00,0xfd,0xff,0xe5,0x01,0x65,0x00,0xfe,0xff,0xa6,0x01,0x65,0x00,0xff,0xff,0xe5,0x01,0x65,0x01,0x00,0xff,0xe5,0x01,0x65,0x01,0x08,0xff,0xe5,0x01,0x65,0x01,0x0b,0xff,0xe5,0x01,0x65,0x01,0x0d,0xff,0xe5,0x01,0x65,0x01,0x18,0xff,0xa6,0x01,0x65,0x01,0x19,0xff,0xe5, +0x01,0x65,0x01,0x21,0xff,0xd1,0x01,0x65,0x01,0x23,0xff,0xd1,0x01,0x65,0x01,0x28,0x00,0x27,0x01,0x65,0x01,0x2a,0x00,0x27,0x01,0x65,0x01,0x47,0xff,0xa6,0x01,0x65,0x01,0x48,0xff,0xe5,0x01,0x65,0x01,0x4c,0xff,0xe5,0x01,0x65,0x01,0x4e,0xff,0xe5,0x01,0x65,0x01,0x50,0xff,0xe5,0x01,0x65,0x01,0x51,0xff,0xa6,0x01,0x65,0x01,0x52, +0xff,0xe5,0x01,0x65,0x01,0x53,0xff,0xa6,0x01,0x65,0x01,0x54,0xff,0xe5,0x01,0x65,0x01,0x55,0xff,0xa6,0x01,0x65,0x01,0x56,0xff,0xe5,0x01,0x65,0x01,0x5c,0x00,0x27,0x01,0x65,0x01,0x5e,0x00,0x27,0x01,0x65,0x01,0x60,0x00,0x27,0x01,0x65,0x01,0x63,0x00,0x5a,0x01,0x65,0x01,0x6e,0xff,0xa6,0x01,0x65,0x01,0x6f,0xff,0xe5,0x01,0x65, +0x01,0x70,0xff,0xa6,0x01,0x65,0x01,0x71,0xff,0xe5,0x01,0x65,0x01,0x77,0xff,0xd1,0x01,0x65,0x01,0x81,0xff,0xcb,0x01,0x65,0x01,0x83,0xff,0xa4,0x01,0x65,0x01,0x89,0xff,0xa6,0x01,0x65,0x01,0x8a,0xff,0xe5,0x01,0x65,0x01,0x8d,0xff,0xcb,0x01,0x65,0x01,0x8f,0xff,0xcb,0x01,0x65,0x01,0x91,0xff,0xcb,0x01,0x65,0x01,0x93,0xff,0xa4, +0x01,0x66,0x00,0x0f,0x00,0x52,0x01,0x66,0x00,0x10,0xff,0x75,0x01,0x66,0x00,0x11,0x00,0x52,0x01,0x66,0x00,0x1d,0x00,0x52,0x01,0x66,0x00,0x1e,0x00,0x52,0x01,0x66,0x00,0x46,0xff,0xd7,0x01,0x66,0x00,0x47,0xff,0xe5,0x01,0x66,0x00,0x48,0xff,0xd7,0x01,0x66,0x00,0x4a,0xff,0xd7,0x01,0x66,0x00,0x52,0xff,0xd7,0x01,0x66,0x00,0x54, +0xff,0xe5,0x01,0x66,0x00,0x57,0xff,0xf0,0x01,0x66,0x00,0x6f,0xff,0xe5,0x01,0x66,0x00,0x70,0xff,0xd7,0x01,0x66,0x00,0x71,0xff,0xd7,0x01,0x66,0x00,0x72,0xff,0xd7,0x01,0x66,0x00,0x73,0xff,0xd7,0x01,0x66,0x00,0x79,0xff,0xd7,0x01,0x66,0x00,0x7a,0xff,0xd7,0x01,0x66,0x00,0x7b,0xff,0xd7,0x01,0x66,0x00,0x7c,0xff,0xd7,0x01,0x66, +0x00,0x7d,0xff,0xd7,0x01,0x66,0x00,0xac,0x00,0x52,0x01,0x66,0x00,0xb1,0xff,0xd7,0x01,0x66,0x00,0xf8,0xff,0xd7,0x01,0x66,0x00,0xfd,0xff,0xd7,0x01,0x66,0x00,0xff,0xff,0xd7,0x01,0x66,0x01,0x00,0xff,0xe5,0x01,0x66,0x01,0x08,0xff,0xe5,0x01,0x66,0x01,0x0b,0xff,0xd7,0x01,0x66,0x01,0x0d,0xff,0xd7,0x01,0x66,0x01,0x19,0xff,0xd7, +0x01,0x66,0x01,0x21,0xff,0xf0,0x01,0x66,0x01,0x23,0xff,0xf0,0x01,0x66,0x01,0x48,0xff,0xd7,0x01,0x66,0x01,0x4c,0xff,0xd7,0x01,0x66,0x01,0x4e,0xff,0xd7,0x01,0x66,0x01,0x50,0xff,0xd7,0x01,0x66,0x01,0x52,0xff,0xd7,0x01,0x66,0x01,0x54,0xff,0xd7,0x01,0x66,0x01,0x56,0xff,0xd7,0x01,0x66,0x01,0x6f,0xff,0xd7,0x01,0x66,0x01,0x71, +0xff,0xd7,0x01,0x66,0x01,0x77,0xff,0xf0,0x01,0x66,0x01,0x8a,0xff,0xd7,0x01,0x67,0x00,0x0f,0x00,0x52,0x01,0x67,0x00,0x10,0xff,0x75,0x01,0x67,0x00,0x11,0x00,0x52,0x01,0x67,0x00,0x1d,0x00,0x52,0x01,0x67,0x00,0x1e,0x00,0x52,0x01,0x67,0x00,0x46,0xff,0xd7,0x01,0x67,0x00,0x47,0xff,0xe5,0x01,0x67,0x00,0x48,0xff,0xd7,0x01,0x67, +0x00,0x4a,0xff,0xd7,0x01,0x67,0x00,0x52,0xff,0xd7,0x01,0x67,0x00,0x54,0xff,0xe5,0x01,0x67,0x00,0x57,0xff,0xf0,0x01,0x67,0x00,0x6f,0xff,0xe5,0x01,0x67,0x00,0x70,0xff,0xd7,0x01,0x67,0x00,0x71,0xff,0xd7,0x01,0x67,0x00,0x72,0xff,0xd7,0x01,0x67,0x00,0x73,0xff,0xd7,0x01,0x67,0x00,0x79,0xff,0xd7,0x01,0x67,0x00,0x7a,0xff,0xd7, +0x01,0x67,0x00,0x7b,0xff,0xd7,0x01,0x67,0x00,0x7c,0xff,0xd7,0x01,0x67,0x00,0x7d,0xff,0xd7,0x01,0x67,0x00,0xac,0x00,0x52,0x01,0x67,0x00,0xb1,0xff,0xd7,0x01,0x67,0x00,0xf8,0xff,0xd7,0x01,0x67,0x00,0xfd,0xff,0xd7,0x01,0x67,0x00,0xff,0xff,0xd7,0x01,0x67,0x01,0x00,0xff,0xe5,0x01,0x67,0x01,0x08,0xff,0xe5,0x01,0x67,0x01,0x0b, +0xff,0xd7,0x01,0x67,0x01,0x0d,0xff,0xd7,0x01,0x67,0x01,0x19,0xff,0xd7,0x01,0x67,0x01,0x21,0xff,0xf0,0x01,0x67,0x01,0x23,0xff,0xf0,0x01,0x67,0x01,0x48,0xff,0xd7,0x01,0x67,0x01,0x4c,0xff,0xd7,0x01,0x67,0x01,0x4e,0xff,0xd7,0x01,0x67,0x01,0x50,0xff,0xd7,0x01,0x67,0x01,0x52,0xff,0xd7,0x01,0x67,0x01,0x54,0xff,0xd7,0x01,0x67, +0x01,0x56,0xff,0xd7,0x01,0x67,0x01,0x6f,0xff,0xd7,0x01,0x67,0x01,0x71,0xff,0xd7,0x01,0x67,0x01,0x77,0xff,0xf0,0x01,0x67,0x01,0x8a,0xff,0xd7,0x01,0x68,0x00,0x0d,0xff,0x31,0x01,0x68,0x00,0x22,0xff,0x9a,0x01,0x68,0x00,0x24,0x00,0x3b,0x01,0x68,0x00,0x26,0xff,0xbe,0x01,0x68,0x00,0x2a,0xff,0xbe,0x01,0x68,0x00,0x2d,0x00,0x64, +0x01,0x68,0x00,0x32,0xff,0xba,0x01,0x68,0x00,0x34,0xff,0xba,0x01,0x68,0x00,0x37,0xff,0x8f,0x01,0x68,0x00,0x38,0xff,0xe3,0x01,0x68,0x00,0x39,0xff,0x8b,0x01,0x68,0x00,0x3a,0xff,0xcf,0x01,0x68,0x00,0x3c,0xff,0x7f,0x01,0x68,0x00,0x3d,0x00,0x3b,0x01,0x68,0x00,0x57,0xff,0xe5,0x01,0x68,0x00,0x59,0xff,0x9a,0x01,0x68,0x00,0x5a, +0xff,0xbe,0x01,0x68,0x00,0x5c,0xff,0xb4,0x01,0x68,0x00,0x64,0xff,0xbe,0x01,0x68,0x00,0x67,0xff,0xba,0x01,0x68,0x00,0x68,0xff,0xe3,0x01,0x68,0x00,0x8d,0xff,0x9a,0x01,0x68,0x00,0x92,0xff,0xba,0x01,0x68,0x00,0xaf,0xff,0xba,0x01,0x68,0x00,0xb0,0xff,0xba,0x01,0x68,0x00,0xb4,0xff,0x73,0x01,0x68,0x00,0xb5,0xff,0x8b,0x01,0x68, +0x00,0xb6,0xff,0x73,0x01,0x68,0x00,0xb7,0xff,0x7f,0x01,0x68,0x00,0xba,0xff,0xb4,0x01,0x68,0x00,0xbb,0xff,0x9a,0x01,0x68,0x00,0xc4,0x00,0x44,0x01,0x68,0x00,0xc5,0x00,0x44,0x01,0x68,0x00,0xd0,0xff,0xba,0x01,0x68,0x00,0xd1,0xff,0xba,0x01,0x68,0x00,0xd2,0xff,0xba,0x01,0x68,0x00,0xd3,0xff,0xe3,0x01,0x68,0x00,0xd4,0xff,0xe3, +0x01,0x68,0x00,0xd5,0xff,0xe3,0x01,0x68,0x00,0xe5,0x00,0x3b,0x01,0x68,0x00,0xea,0xff,0x7f,0x01,0x68,0x00,0xeb,0xff,0xb4,0x01,0x68,0x00,0xf7,0xff,0xbe,0x01,0x68,0x00,0xfc,0xff,0xbe,0x01,0x68,0x00,0xfe,0xff,0xbe,0x01,0x68,0x01,0x03,0x00,0x3b,0x01,0x68,0x01,0x05,0x00,0x3b,0x01,0x68,0x01,0x18,0xff,0xba,0x01,0x68,0x01,0x20, +0xff,0x8f,0x01,0x68,0x01,0x21,0xff,0xe5,0x01,0x68,0x01,0x22,0xff,0x8f,0x01,0x68,0x01,0x23,0xff,0xe5,0x01,0x68,0x01,0x24,0xff,0xe3,0x01,0x68,0x01,0x26,0xff,0xe3,0x01,0x68,0x01,0x28,0x00,0x3b,0x01,0x68,0x01,0x2a,0x00,0x3b,0x01,0x68,0x01,0x45,0x00,0x3b,0x01,0x68,0x01,0x47,0xff,0xbe,0x01,0x68,0x01,0x51,0xff,0xbe,0x01,0x68, +0x01,0x53,0xff,0xbe,0x01,0x68,0x01,0x55,0xff,0xbe,0x01,0x68,0x01,0x63,0x00,0x64,0x01,0x68,0x01,0x6e,0xff,0xba,0x01,0x68,0x01,0x70,0xff,0xba,0x01,0x68,0x01,0x76,0xff,0x8f,0x01,0x68,0x01,0x77,0xff,0xe5,0x01,0x68,0x01,0x78,0xff,0xe3,0x01,0x68,0x01,0x7a,0xff,0xe3,0x01,0x68,0x01,0x7c,0xff,0xe3,0x01,0x68,0x01,0x7e,0xff,0xe3, +0x01,0x68,0x01,0x80,0xff,0xcf,0x01,0x68,0x01,0x81,0xff,0xbe,0x01,0x68,0x01,0x82,0xff,0x7f,0x01,0x68,0x01,0x83,0xff,0xb4,0x01,0x68,0x01,0x85,0x00,0x3b,0x01,0x68,0x01,0x87,0x00,0x3b,0x01,0x68,0x01,0x89,0xff,0xba,0x01,0x68,0x01,0x8c,0xff,0xcf,0x01,0x68,0x01,0x8d,0xff,0xbe,0x01,0x68,0x01,0x8e,0xff,0xcf,0x01,0x68,0x01,0x8f, +0xff,0xbe,0x01,0x68,0x01,0x90,0xff,0xcf,0x01,0x68,0x01,0x91,0xff,0xbe,0x01,0x68,0x01,0x92,0xff,0x7f,0x01,0x68,0x01,0x93,0xff,0xb4,0x01,0x6c,0x00,0x0f,0xff,0x9a,0x01,0x6c,0x00,0x11,0xff,0x9a,0x01,0x6c,0x00,0x24,0xff,0xdb,0x01,0x6c,0x00,0x2d,0xff,0xbe,0x01,0x6c,0x00,0x44,0xff,0xe5,0x01,0x6c,0x00,0x62,0xff,0xdb,0x01,0x6c, +0x00,0x63,0xff,0xdb,0x01,0x6c,0x00,0x69,0xff,0xe5,0x01,0x6c,0x00,0x6a,0xff,0xe5,0x01,0x6c,0x00,0x6b,0xff,0xe5,0x01,0x6c,0x00,0x6c,0xff,0xe5,0x01,0x6c,0x00,0x6d,0xff,0xe5,0x01,0x6c,0x00,0x6e,0xff,0xe5,0x01,0x6c,0x00,0x91,0xff,0x98,0x01,0x6c,0x00,0xa0,0xff,0xe5,0x01,0x6c,0x00,0xac,0xff,0x9a,0x01,0x6c,0x00,0xad,0xff,0xdb, +0x01,0x6c,0x00,0xae,0xff,0xdb,0x01,0x6c,0x00,0xc4,0xff,0x66,0x01,0x6c,0x00,0xc5,0xff,0x9a,0x01,0x6c,0x00,0xc7,0xff,0xdb,0x01,0x6c,0x00,0xc9,0xff,0xdb,0x01,0x6c,0x01,0x03,0xff,0xdb,0x01,0x6c,0x01,0x04,0xff,0xe5,0x01,0x6c,0x01,0x05,0xff,0xdb,0x01,0x6c,0x01,0x06,0xff,0xe5,0x01,0x6c,0x01,0x45,0xff,0xdb,0x01,0x6c,0x01,0x46, +0xff,0xe5,0x01,0x6c,0x01,0x63,0xff,0xbe,0x01,0x6c,0x01,0x85,0xff,0xdb,0x01,0x6c,0x01,0x86,0xff,0xe5,0x01,0x6c,0x01,0x87,0xff,0xdb,0x01,0x6c,0x01,0x88,0xff,0xe5,0x01,0x6d,0x00,0x4d,0x00,0x23,0x01,0x6d,0x01,0x64,0x00,0x23,0x01,0x6e,0x00,0x0f,0xff,0xa4,0x01,0x6e,0x00,0x11,0xff,0xa4,0x01,0x6e,0x00,0x24,0xff,0xe5,0x01,0x6e, +0x00,0x2d,0xff,0xf6,0x01,0x6e,0x00,0x37,0xff,0xa4,0x01,0x6e,0x00,0x3b,0xff,0xdb,0x01,0x6e,0x00,0x3c,0xff,0xe7,0x01,0x6e,0x00,0x3d,0xff,0xcf,0x01,0x6e,0x00,0x62,0xff,0xe5,0x01,0x6e,0x00,0x63,0xff,0xe5,0x01,0x6e,0x00,0xac,0xff,0xa4,0x01,0x6e,0x00,0xad,0xff,0xe5,0x01,0x6e,0x00,0xae,0xff,0xe5,0x01,0x6e,0x00,0xbb,0xff,0xf6, +0x01,0x6e,0x00,0xc4,0xff,0x4c,0x01,0x6e,0x00,0xc5,0xff,0x98,0x01,0x6e,0x00,0xc7,0xff,0xe5,0x01,0x6e,0x00,0xc9,0xff,0xe5,0x01,0x6e,0x00,0xe5,0xff,0xcf,0x01,0x6e,0x00,0xea,0xff,0xe7,0x01,0x6e,0x01,0x03,0xff,0xe5,0x01,0x6e,0x01,0x05,0xff,0xe5,0x01,0x6e,0x01,0x20,0xff,0xa4,0x01,0x6e,0x01,0x22,0xff,0xa4,0x01,0x6e,0x01,0x28, +0xff,0xcf,0x01,0x6e,0x01,0x2a,0xff,0xcf,0x01,0x6e,0x01,0x45,0xff,0xe5,0x01,0x6e,0x01,0x63,0xff,0xf6,0x01,0x6e,0x01,0x76,0xff,0xa4,0x01,0x6e,0x01,0x82,0xff,0xe7,0x01,0x6e,0x01,0x85,0xff,0xe5,0x01,0x6e,0x01,0x87,0xff,0xe5,0x01,0x6e,0x01,0x92,0xff,0xe7,0x01,0x6f,0x00,0x05,0xff,0x6f,0x01,0x6f,0x00,0x0a,0xff,0x6f,0x01,0x6f, +0x00,0x44,0xff,0xe5,0x01,0x6f,0x00,0x49,0xff,0xdb,0x01,0x6f,0x00,0x5b,0xff,0xe7,0x01,0x6f,0x00,0x69,0xff,0xe5,0x01,0x6f,0x00,0x6a,0xff,0xe5,0x01,0x6f,0x00,0x6b,0xff,0xe5,0x01,0x6f,0x00,0x6c,0xff,0xe5,0x01,0x6f,0x00,0x6d,0xff,0xe5,0x01,0x6f,0x00,0x6e,0xff,0xe5,0x01,0x6f,0x00,0xa0,0xff,0xe5,0x01,0x6f,0x00,0xb4,0xff,0xb2, +0x01,0x6f,0x00,0xb5,0xff,0x7d,0x01,0x6f,0x00,0xb6,0xff,0xbe,0x01,0x6f,0x00,0xb7,0xff,0x7d,0x01,0x6f,0x00,0xc0,0xff,0xe7,0x01,0x6f,0x00,0xc1,0xff,0xe7,0x01,0x6f,0x01,0x04,0xff,0xe5,0x01,0x6f,0x01,0x06,0xff,0xe5,0x01,0x6f,0x01,0x46,0xff,0xe5,0x01,0x6f,0x01,0x86,0xff,0xe5,0x01,0x6f,0x01,0x88,0xff,0xe5,0x01,0x70,0x00,0x0f, +0xff,0xa4,0x01,0x70,0x00,0x11,0xff,0xa4,0x01,0x70,0x00,0x24,0xff,0xe5,0x01,0x70,0x00,0x2d,0xff,0xf6,0x01,0x70,0x00,0x37,0xff,0xa4,0x01,0x70,0x00,0x3b,0xff,0xdb,0x01,0x70,0x00,0x3c,0xff,0xe7,0x01,0x70,0x00,0x3d,0xff,0xcf,0x01,0x70,0x00,0x62,0xff,0xe5,0x01,0x70,0x00,0x63,0xff,0xe5,0x01,0x70,0x00,0xac,0xff,0xa4,0x01,0x70, +0x00,0xad,0xff,0xe5,0x01,0x70,0x00,0xae,0xff,0xe5,0x01,0x70,0x00,0xbb,0xff,0xf6,0x01,0x70,0x00,0xc4,0xff,0x4c,0x01,0x70,0x00,0xc5,0xff,0x98,0x01,0x70,0x00,0xc7,0xff,0xe5,0x01,0x70,0x00,0xc9,0xff,0xe5,0x01,0x70,0x00,0xe5,0xff,0xcf,0x01,0x70,0x00,0xea,0xff,0xe7,0x01,0x70,0x01,0x03,0xff,0xe5,0x01,0x70,0x01,0x05,0xff,0xe5, +0x01,0x70,0x01,0x20,0xff,0xa4,0x01,0x70,0x01,0x22,0xff,0xa4,0x01,0x70,0x01,0x28,0xff,0xcf,0x01,0x70,0x01,0x2a,0xff,0xcf,0x01,0x70,0x01,0x45,0xff,0xe5,0x01,0x70,0x01,0x63,0xff,0xf6,0x01,0x70,0x01,0x76,0xff,0xa4,0x01,0x70,0x01,0x82,0xff,0xe7,0x01,0x70,0x01,0x85,0xff,0xe5,0x01,0x70,0x01,0x87,0xff,0xe5,0x01,0x70,0x01,0x92, +0xff,0xe7,0x01,0x71,0x00,0x05,0xff,0x6f,0x01,0x71,0x00,0x0a,0xff,0x6f,0x01,0x71,0x00,0x44,0xff,0xe5,0x01,0x71,0x00,0x49,0xff,0xdb,0x01,0x71,0x00,0x5b,0xff,0xe7,0x01,0x71,0x00,0x69,0xff,0xe5,0x01,0x71,0x00,0x6a,0xff,0xe5,0x01,0x71,0x00,0x6b,0xff,0xe5,0x01,0x71,0x00,0x6c,0xff,0xe5,0x01,0x71,0x00,0x6d,0xff,0xe5,0x01,0x71, +0x00,0x6e,0xff,0xe5,0x01,0x71,0x00,0xa0,0xff,0xe5,0x01,0x71,0x00,0xb4,0xff,0xb2,0x01,0x71,0x00,0xb5,0xff,0x7d,0x01,0x71,0x00,0xb6,0xff,0xbe,0x01,0x71,0x00,0xb7,0xff,0x7d,0x01,0x71,0x00,0xc0,0xff,0xe7,0x01,0x71,0x00,0xc1,0xff,0xe7,0x01,0x71,0x01,0x04,0xff,0xe5,0x01,0x71,0x01,0x06,0xff,0xe5,0x01,0x71,0x01,0x46,0xff,0xe5, +0x01,0x71,0x01,0x86,0xff,0xe5,0x01,0x71,0x01,0x88,0xff,0xe5,0x01,0x72,0x00,0x1e,0x00,0x52,0x01,0x72,0x00,0x26,0xff,0xe3,0x01,0x72,0x00,0x2a,0xff,0xe3,0x01,0x72,0x00,0x2d,0x00,0x39,0x01,0x72,0x00,0x32,0xff,0xec,0x01,0x72,0x00,0x34,0xff,0xec,0x01,0x72,0x00,0x37,0xff,0xcb,0x01,0x72,0x00,0x3c,0xff,0xd9,0x01,0x72,0x00,0x46, +0xff,0xcb,0x01,0x72,0x00,0x47,0xff,0xcb,0x01,0x72,0x00,0x48,0xff,0xc7,0x01,0x72,0x00,0x4a,0xff,0xc7,0x01,0x72,0x00,0x52,0xff,0xc5,0x01,0x72,0x00,0x54,0xff,0xcb,0x01,0x72,0x00,0x64,0xff,0xe5,0x01,0x72,0x00,0x67,0xff,0xec,0x01,0x72,0x00,0x6f,0xff,0xbe,0x01,0x72,0x00,0x70,0xff,0xbe,0x01,0x72,0x00,0x71,0xff,0xbe,0x01,0x72, +0x00,0x72,0xff,0xbe,0x01,0x72,0x00,0x73,0xff,0xbe,0x01,0x72,0x00,0x79,0xff,0xc5,0x01,0x72,0x00,0x7a,0xff,0xc5,0x01,0x72,0x00,0x7b,0xff,0xc5,0x01,0x72,0x00,0x7c,0xff,0xc5,0x01,0x72,0x00,0x7d,0xff,0xc5,0x01,0x72,0x00,0x92,0xff,0xec,0x01,0x72,0x00,0xaf,0xff,0xec,0x01,0x72,0x00,0xb0,0xff,0xec,0x01,0x72,0x00,0xb1,0xff,0xc5, +0x01,0x72,0x00,0xbb,0xff,0xe5,0x01,0x72,0x00,0xd0,0xff,0xec,0x01,0x72,0x00,0xd1,0xff,0xec,0x01,0x72,0x00,0xd2,0xff,0xec,0x01,0x72,0x00,0xea,0xff,0xd9,0x01,0x72,0x00,0xf7,0xff,0xe3,0x01,0x72,0x00,0xf8,0xff,0xc7,0x01,0x72,0x00,0xfc,0xff,0xe3,0x01,0x72,0x00,0xfd,0xff,0xcb,0x01,0x72,0x00,0xfe,0xff,0xe3,0x01,0x72,0x00,0xff, +0xff,0xcb,0x01,0x72,0x01,0x00,0xff,0xcb,0x01,0x72,0x01,0x08,0xff,0xcb,0x01,0x72,0x01,0x0b,0xff,0xc7,0x01,0x72,0x01,0x0d,0xff,0xbe,0x01,0x72,0x01,0x18,0xff,0xec,0x01,0x72,0x01,0x19,0xff,0xc5,0x01,0x72,0x01,0x20,0xff,0xcb,0x01,0x72,0x01,0x22,0xff,0xcb,0x01,0x72,0x01,0x47,0xff,0xe3,0x01,0x72,0x01,0x48,0xff,0xcb,0x01,0x72, +0x01,0x4c,0xff,0xbe,0x01,0x72,0x01,0x4e,0xff,0xbe,0x01,0x72,0x01,0x50,0xff,0xbe,0x01,0x72,0x01,0x51,0xff,0xe3,0x01,0x72,0x01,0x52,0xff,0xc7,0x01,0x72,0x01,0x53,0xff,0xe3,0x01,0x72,0x01,0x54,0xff,0xc7,0x01,0x72,0x01,0x55,0xff,0xe3,0x01,0x72,0x01,0x56,0xff,0xc7,0x01,0x72,0x01,0x63,0x00,0x39,0x01,0x72,0x01,0x6e,0xff,0xec, +0x01,0x72,0x01,0x6f,0xff,0xc5,0x01,0x72,0x01,0x70,0xff,0xec,0x01,0x72,0x01,0x71,0xff,0xc5,0x01,0x72,0x01,0x76,0xff,0xcb,0x01,0x72,0x01,0x82,0xff,0xd9,0x01,0x72,0x01,0x89,0xff,0xec,0x01,0x72,0x01,0x8a,0xff,0xc5,0x01,0x72,0x01,0x92,0xff,0xd9,0x01,0x73,0x00,0x0f,0xff,0x62,0x01,0x73,0x00,0x10,0xff,0x7f,0x01,0x73,0x00,0x11, +0xff,0x56,0x01,0x73,0x00,0x1d,0x00,0x52,0x01,0x73,0x00,0x1e,0x00,0x52,0x01,0x73,0x00,0x46,0xff,0xe5,0x01,0x73,0x00,0x47,0xff,0xe5,0x01,0x73,0x00,0x48,0xff,0xe5,0x01,0x73,0x00,0x49,0x00,0x27,0x01,0x73,0x00,0x4a,0xff,0xe5,0x01,0x73,0x00,0x50,0xff,0xfc,0x01,0x73,0x00,0x51,0xff,0xfc,0x01,0x73,0x00,0x52,0xff,0xe5,0x01,0x73, +0x00,0x54,0xff,0xe5,0x01,0x73,0x00,0x56,0x00,0x0e,0x01,0x73,0x00,0x57,0x00,0x3b,0x01,0x73,0x00,0x59,0x00,0x52,0x01,0x73,0x00,0x5a,0x00,0x52,0x01,0x73,0x00,0x5b,0x00,0x3b,0x01,0x73,0x00,0x5c,0x00,0x52,0x01,0x73,0x00,0x5d,0x00,0x27,0x01,0x73,0x00,0x6f,0xff,0xe5,0x01,0x73,0x00,0x70,0xff,0xe5,0x01,0x73,0x00,0x71,0xff,0xe5, +0x01,0x73,0x00,0x72,0xff,0xe5,0x01,0x73,0x00,0x73,0xff,0xe5,0x01,0x73,0x00,0x79,0xff,0xe5,0x01,0x73,0x00,0x7a,0xff,0xe5,0x01,0x73,0x00,0x7b,0xff,0xe5,0x01,0x73,0x00,0x7c,0xff,0xe5,0x01,0x73,0x00,0x7d,0xff,0xe5,0x01,0x73,0x00,0xac,0xff,0x56,0x01,0x73,0x00,0xb1,0xff,0xe5,0x01,0x73,0x00,0xb4,0x00,0xa4,0x01,0x73,0x00,0xb5, +0x00,0x79,0x01,0x73,0x00,0xb6,0x00,0xa4,0x01,0x73,0x00,0xb7,0x00,0x79,0x01,0x73,0x00,0xc4,0xff,0x62,0x01,0x73,0x00,0xc5,0xff,0x62,0x01,0x73,0x00,0xe4,0x00,0x0e,0x01,0x73,0x00,0xe6,0x00,0x27,0x01,0x73,0x00,0xeb,0x00,0x52,0x01,0x73,0x00,0xf8,0xff,0xe5,0x01,0x73,0x00,0xfb,0x00,0x0e,0x01,0x73,0x00,0xfd,0xff,0xe5,0x01,0x73, +0x00,0xff,0xff,0xe5,0x01,0x73,0x01,0x00,0xff,0xe5,0x01,0x73,0x01,0x08,0xff,0xe5,0x01,0x73,0x01,0x0b,0xff,0xe5,0x01,0x73,0x01,0x0d,0xff,0xe5,0x01,0x73,0x01,0x19,0xff,0xe5,0x01,0x73,0x01,0x1f,0x00,0x0e,0x01,0x73,0x01,0x21,0x00,0x3b,0x01,0x73,0x01,0x23,0x00,0x3b,0x01,0x73,0x01,0x29,0x00,0x27,0x01,0x73,0x01,0x2b,0x00,0x27, +0x01,0x73,0x01,0x48,0xff,0xe5,0x01,0x73,0x01,0x4c,0xff,0xe5,0x01,0x73,0x01,0x4e,0xff,0xe5,0x01,0x73,0x01,0x50,0xff,0xe5,0x01,0x73,0x01,0x52,0xff,0xe5,0x01,0x73,0x01,0x54,0xff,0xe5,0x01,0x73,0x01,0x56,0xff,0xe5,0x01,0x73,0x01,0x6d,0xff,0xfc,0x01,0x73,0x01,0x6f,0xff,0xe5,0x01,0x73,0x01,0x71,0xff,0xe5,0x01,0x73,0x01,0x75, +0x00,0x0e,0x01,0x73,0x01,0x77,0x00,0x3b,0x01,0x73,0x01,0x81,0x00,0x52,0x01,0x73,0x01,0x83,0x00,0x52,0x01,0x73,0x01,0x8a,0xff,0xe5,0x01,0x73,0x01,0x8d,0x00,0x52,0x01,0x73,0x01,0x8f,0x00,0x52,0x01,0x73,0x01,0x91,0x00,0x52,0x01,0x73,0x01,0x93,0x00,0x52,0x01,0x73,0x02,0x3e,0x00,0x0e,0x01,0x74,0x00,0x57,0xff,0xbe,0x01,0x74, +0x00,0x59,0xff,0xcf,0x01,0x74,0x00,0x5a,0xff,0xe5,0x01,0x74,0x00,0x5c,0xff,0xd1,0x01,0x74,0x00,0xba,0xff,0xbe,0x01,0x74,0x00,0xc4,0xff,0xb2,0x01,0x74,0x00,0xc5,0xff,0xb2,0x01,0x74,0x00,0xeb,0xff,0xd1,0x01,0x74,0x01,0x21,0xff,0xbe,0x01,0x74,0x01,0x23,0xff,0xbe,0x01,0x74,0x01,0x77,0xff,0xbe,0x01,0x74,0x01,0x81,0xff,0xe5, +0x01,0x74,0x01,0x83,0xff,0xd1,0x01,0x74,0x01,0x8d,0xff,0xe5,0x01,0x74,0x01,0x8f,0xff,0xe5,0x01,0x74,0x01,0x91,0xff,0xe5,0x01,0x74,0x01,0x93,0xff,0xd1,0x01,0x76,0x00,0x0f,0xff,0x7f,0x01,0x76,0x00,0x11,0xff,0x4c,0x01,0x76,0x00,0x1d,0xff,0xe9,0x01,0x76,0x00,0x1e,0xff,0xe9,0x01,0x76,0x00,0x24,0xff,0x66,0x01,0x76,0x00,0x26, +0xff,0xa4,0x01,0x76,0x00,0x2a,0xff,0xa4,0x01,0x76,0x00,0x2d,0xff,0x8f,0x01,0x76,0x00,0x32,0xff,0xa4,0x01,0x76,0x00,0x34,0xff,0xa4,0x01,0x76,0x00,0x37,0x00,0x27,0x01,0x76,0x00,0x39,0x00,0x2b,0x01,0x76,0x00,0x3a,0x00,0x27,0x01,0x76,0x00,0x3b,0xff,0xfa,0x01,0x76,0x00,0x3c,0x00,0x1d,0x01,0x76,0x00,0x44,0xff,0x27,0x01,0x76, +0x00,0x46,0xff,0x2d,0x01,0x76,0x00,0x47,0xff,0x2d,0x01,0x76,0x00,0x48,0xff,0x2d,0x01,0x76,0x00,0x49,0xff,0xa0,0x01,0x76,0x00,0x4a,0xff,0x2d,0x01,0x76,0x00,0x50,0xff,0x4e,0x01,0x76,0x00,0x51,0xff,0x4e,0x01,0x76,0x00,0x52,0xff,0x2d,0x01,0x76,0x00,0x53,0xff,0x4e,0x01,0x76,0x00,0x54,0xff,0x2d,0x01,0x76,0x00,0x55,0xff,0x4e, +0x01,0x76,0x00,0x56,0xff,0x66,0x01,0x76,0x00,0x58,0xff,0x4e,0x01,0x76,0x00,0x59,0xff,0x9a,0x01,0x76,0x00,0x5a,0xff,0x8f,0x01,0x76,0x00,0x5b,0xff,0x4c,0x01,0x76,0x00,0x5c,0xff,0x8f,0x01,0x76,0x00,0x5d,0xff,0x7f,0x01,0x76,0x00,0x62,0xff,0x66,0x01,0x76,0x00,0x63,0xff,0x66,0x01,0x76,0x00,0x64,0xff,0xa4,0x01,0x76,0x00,0x67, +0xff,0xa4,0x01,0x76,0x00,0x69,0xff,0x27,0x01,0x76,0x00,0x6a,0xff,0x27,0x01,0x76,0x00,0x6b,0xff,0x27,0x01,0x76,0x00,0x6c,0xff,0x27,0x01,0x76,0x00,0x6d,0xff,0x3f,0x01,0x76,0x00,0x6e,0xff,0x27,0x01,0x76,0x00,0x6f,0xff,0x1b,0x01,0x76,0x00,0x70,0xff,0x2d,0x01,0x76,0x00,0x71,0xff,0x2d,0x01,0x76,0x00,0x72,0xff,0x2d,0x01,0x76, +0x00,0x73,0xff,0x2d,0x01,0x76,0x00,0x74,0xff,0xe9,0x01,0x76,0x00,0x76,0x00,0x31,0x01,0x76,0x00,0x77,0x00,0x6f,0x01,0x76,0x00,0x78,0xff,0x4e,0x01,0x76,0x00,0x79,0xff,0x2d,0x01,0x76,0x00,0x7a,0xff,0x2d,0x01,0x76,0x00,0x7b,0xff,0x2d,0x01,0x76,0x00,0x7c,0xff,0x2d,0x01,0x76,0x00,0x7d,0xff,0x2d,0x01,0x76,0x00,0x7e,0xff,0x4e, +0x01,0x76,0x00,0x7f,0xff,0x4e,0x01,0x76,0x00,0x80,0xff,0x4e,0x01,0x76,0x00,0x81,0xff,0x4e,0x01,0x76,0x00,0x8d,0x00,0x52,0x01,0x76,0x00,0x91,0xff,0x0c,0x01,0x76,0x00,0x92,0xff,0xa4,0x01,0x76,0x00,0xa0,0xff,0x27,0x01,0x76,0x00,0xaa,0xff,0x9a,0x01,0x76,0x00,0xab,0xff,0xcf,0x01,0x76,0x00,0xac,0xff,0x4c,0x01,0x76,0x00,0xad, +0xff,0x66,0x01,0x76,0x00,0xae,0xff,0x66,0x01,0x76,0x00,0xaf,0xff,0xa4,0x01,0x76,0x00,0xb0,0xff,0xa4,0x01,0x76,0x00,0xb1,0xff,0x2d,0x01,0x76,0x00,0xb5,0x00,0x27,0x01,0x76,0x00,0xb7,0x00,0x27,0x01,0x76,0x00,0xba,0xff,0x8f,0x01,0x76,0x00,0xbe,0xff,0x9a,0x01,0x76,0x00,0xbf,0xff,0xcf,0x01,0x76,0x00,0xc4,0xff,0x17,0x01,0x76, +0x00,0xc5,0xff,0x17,0x01,0x76,0x00,0xc7,0xff,0x66,0x01,0x76,0x00,0xc9,0xff,0x66,0x01,0x76,0x00,0xd0,0xff,0xa4,0x01,0x76,0x00,0xd1,0xff,0xa4,0x01,0x76,0x00,0xd2,0xff,0xa4,0x01,0x76,0x00,0xe4,0xff,0x66,0x01,0x76,0x00,0xe6,0xff,0x7f,0x01,0x76,0x00,0xea,0x00,0x1d,0x01,0x76,0x00,0xeb,0xff,0x8f,0x01,0x76,0x00,0xf7,0xff,0xa4, +0x01,0x76,0x00,0xf8,0xff,0x2d,0x01,0x76,0x00,0xfb,0xff,0x66,0x01,0x76,0x00,0xfc,0xff,0xa4,0x01,0x76,0x00,0xfd,0xff,0x2d,0x01,0x76,0x00,0xfe,0xff,0xa4,0x01,0x76,0x00,0xff,0xff,0x2d,0x01,0x76,0x01,0x00,0xff,0x2d,0x01,0x76,0x01,0x03,0xff,0x66,0x01,0x76,0x01,0x04,0xff,0x27,0x01,0x76,0x01,0x05,0xff,0x66,0x01,0x76,0x01,0x06, +0xff,0x27,0x01,0x76,0x01,0x08,0xff,0x2d,0x01,0x76,0x01,0x0b,0xff,0x2d,0x01,0x76,0x01,0x0d,0xff,0x2d,0x01,0x76,0x01,0x15,0xff,0x4e,0x01,0x76,0x01,0x17,0xff,0x4e,0x01,0x76,0x01,0x18,0xff,0xa4,0x01,0x76,0x01,0x19,0xff,0x2d,0x01,0x76,0x01,0x1b,0xff,0x4e,0x01,0x76,0x01,0x1d,0xff,0x4e,0x01,0x76,0x01,0x1f,0xff,0x66,0x01,0x76, +0x01,0x20,0x00,0x27,0x01,0x76,0x01,0x22,0x00,0x27,0x01,0x76,0x01,0x25,0xff,0x4e,0x01,0x76,0x01,0x27,0xff,0x4e,0x01,0x76,0x01,0x29,0xff,0x7f,0x01,0x76,0x01,0x2b,0xff,0x7f,0x01,0x76,0x01,0x45,0xff,0x66,0x01,0x76,0x01,0x46,0xff,0x27,0x01,0x76,0x01,0x47,0xff,0xa4,0x01,0x76,0x01,0x48,0xff,0x2d,0x01,0x76,0x01,0x4c,0xff,0x2d, +0x01,0x76,0x01,0x4e,0xff,0x2d,0x01,0x76,0x01,0x50,0xff,0x2d,0x01,0x76,0x01,0x51,0xff,0xa4,0x01,0x76,0x01,0x52,0xff,0x2d,0x01,0x76,0x01,0x53,0xff,0xa4,0x01,0x76,0x01,0x54,0xff,0x2d,0x01,0x76,0x01,0x55,0xff,0xa4,0x01,0x76,0x01,0x56,0xff,0x2d,0x01,0x76,0x01,0x5c,0x00,0x6f,0x01,0x76,0x01,0x5e,0x00,0x6f,0x01,0x76,0x01,0x60, +0x00,0x6f,0x01,0x76,0x01,0x63,0xff,0x8f,0x01,0x76,0x01,0x6d,0xff,0x4e,0x01,0x76,0x01,0x6e,0xff,0xa4,0x01,0x76,0x01,0x6f,0xff,0x2d,0x01,0x76,0x01,0x70,0xff,0xa4,0x01,0x76,0x01,0x71,0xff,0x2d,0x01,0x76,0x01,0x73,0xff,0x4e,0x01,0x76,0x01,0x75,0xff,0x66,0x01,0x76,0x01,0x76,0x00,0x27,0x01,0x76,0x01,0x79,0xff,0x4e,0x01,0x76, +0x01,0x7b,0xff,0x4e,0x01,0x76,0x01,0x7d,0xff,0x4e,0x01,0x76,0x01,0x7f,0xff,0x4e,0x01,0x76,0x01,0x80,0x00,0x27,0x01,0x76,0x01,0x81,0xff,0x8f,0x01,0x76,0x01,0x82,0x00,0x1d,0x01,0x76,0x01,0x83,0xff,0x8f,0x01,0x76,0x01,0x85,0xff,0x66,0x01,0x76,0x01,0x86,0xff,0x27,0x01,0x76,0x01,0x87,0xff,0x66,0x01,0x76,0x01,0x88,0xff,0x27, +0x01,0x76,0x01,0x89,0xff,0xa4,0x01,0x76,0x01,0x8a,0xff,0x2d,0x01,0x76,0x01,0x8c,0x00,0x27,0x01,0x76,0x01,0x8d,0xff,0x8f,0x01,0x76,0x01,0x8e,0x00,0x27,0x01,0x76,0x01,0x8f,0xff,0x8f,0x01,0x76,0x01,0x90,0x00,0x27,0x01,0x76,0x01,0x91,0xff,0x8f,0x01,0x76,0x01,0x92,0x00,0x1d,0x01,0x76,0x01,0x93,0xff,0x8f,0x01,0x76,0x02,0x3e, +0xff,0x66,0x01,0x77,0x00,0x10,0xff,0x8f,0x01,0x77,0x00,0x22,0xff,0xcb,0x01,0x77,0x00,0x46,0xff,0xe5,0x01,0x77,0x00,0x47,0xff,0xe5,0x01,0x77,0x00,0x48,0xff,0xf0,0x01,0x77,0x00,0x4a,0xff,0xf0,0x01,0x77,0x00,0x52,0xff,0xf0,0x01,0x77,0x00,0x54,0xff,0xf0,0x01,0x77,0x00,0x5b,0x00,0x1d,0x01,0x77,0x00,0x6f,0xff,0xe5,0x01,0x77, +0x00,0x70,0xff,0xf0,0x01,0x77,0x00,0x71,0xff,0xf0,0x01,0x77,0x00,0x72,0xff,0xf0,0x01,0x77,0x00,0x73,0xff,0xf0,0x01,0x77,0x00,0x79,0xff,0xf0,0x01,0x77,0x00,0x7a,0xff,0xf0,0x01,0x77,0x00,0x7b,0xff,0xf0,0x01,0x77,0x00,0x7c,0xff,0xf0,0x01,0x77,0x00,0x7d,0xff,0xf0,0x01,0x77,0x00,0xab,0x00,0x27,0x01,0x77,0x00,0xb1,0xff,0xf0, +0x01,0x77,0x00,0xbf,0x00,0x27,0x01,0x77,0x00,0xf8,0xff,0xf0,0x01,0x77,0x00,0xfd,0xff,0xe5,0x01,0x77,0x00,0xff,0xff,0xe5,0x01,0x77,0x01,0x00,0xff,0xe5,0x01,0x77,0x01,0x08,0xff,0xe5,0x01,0x77,0x01,0x0b,0xff,0xf0,0x01,0x77,0x01,0x0d,0xff,0xf0,0x01,0x77,0x01,0x19,0xff,0xf0,0x01,0x77,0x01,0x48,0xff,0xe5,0x01,0x77,0x01,0x4c, +0xff,0xf0,0x01,0x77,0x01,0x4e,0xff,0xf0,0x01,0x77,0x01,0x50,0xff,0xf0,0x01,0x77,0x01,0x52,0xff,0xf0,0x01,0x77,0x01,0x54,0xff,0xf0,0x01,0x77,0x01,0x56,0xff,0xf0,0x01,0x77,0x01,0x6f,0xff,0xf0,0x01,0x77,0x01,0x71,0xff,0xf0,0x01,0x77,0x01,0x8a,0xff,0xf0,0x01,0x78,0x00,0x24,0xff,0xd7,0x01,0x78,0x00,0x91,0xff,0x8b,0x01,0x78, +0x00,0xc4,0xff,0xa6,0x01,0x78,0x00,0xc5,0xff,0xa6,0x01,0x78,0x01,0x03,0xff,0xd7,0x01,0x78,0x01,0x05,0xff,0xd7,0x01,0x78,0x01,0x45,0xff,0xd7,0x01,0x78,0x01,0x85,0xff,0xd7,0x01,0x78,0x01,0x87,0xff,0xd7,0x01,0x79,0x00,0x05,0xff,0xbe,0x01,0x79,0x00,0x0a,0xff,0xbe,0x01,0x7a,0x00,0x24,0xff,0xd7,0x01,0x7a,0x00,0x91,0xff,0x8b, +0x01,0x7a,0x00,0xc4,0xff,0xa6,0x01,0x7a,0x00,0xc5,0xff,0xa6,0x01,0x7a,0x01,0x03,0xff,0xd7,0x01,0x7a,0x01,0x05,0xff,0xd7,0x01,0x7a,0x01,0x45,0xff,0xd7,0x01,0x7a,0x01,0x85,0xff,0xd7,0x01,0x7a,0x01,0x87,0xff,0xd7,0x01,0x7b,0x00,0x05,0xff,0xbe,0x01,0x7b,0x00,0x0a,0xff,0xbe,0x01,0x7c,0x00,0x24,0xff,0xd7,0x01,0x7c,0x00,0x91, +0xff,0x8b,0x01,0x7c,0x00,0xc4,0xff,0xa6,0x01,0x7c,0x00,0xc5,0xff,0xa6,0x01,0x7c,0x01,0x03,0xff,0xd7,0x01,0x7c,0x01,0x05,0xff,0xd7,0x01,0x7c,0x01,0x45,0xff,0xd7,0x01,0x7c,0x01,0x85,0xff,0xd7,0x01,0x7c,0x01,0x87,0xff,0xd7,0x01,0x7d,0x00,0x05,0xff,0xbe,0x01,0x7d,0x00,0x0a,0xff,0xbe,0x01,0x7e,0x00,0x24,0xff,0xd7,0x01,0x7e, +0x00,0x91,0xff,0x8b,0x01,0x7e,0x00,0xc4,0xff,0xa6,0x01,0x7e,0x00,0xc5,0xff,0xa6,0x01,0x7e,0x01,0x03,0xff,0xd7,0x01,0x7e,0x01,0x05,0xff,0xd7,0x01,0x7e,0x01,0x45,0xff,0xd7,0x01,0x7e,0x01,0x85,0xff,0xd7,0x01,0x7e,0x01,0x87,0xff,0xd7,0x01,0x7f,0x00,0x05,0xff,0xbe,0x01,0x7f,0x00,0x0a,0xff,0xbe,0x01,0x80,0x00,0x0f,0xff,0x8b, +0x01,0x80,0x00,0x11,0xff,0x7f,0x01,0x80,0x00,0x24,0xff,0xb6,0x01,0x80,0x00,0x37,0x00,0x27,0x01,0x80,0x00,0x44,0xff,0xb4,0x01,0x80,0x00,0x46,0xff,0xcf,0x01,0x80,0x00,0x47,0xff,0xcf,0x01,0x80,0x00,0x48,0xff,0xcf,0x01,0x80,0x00,0x4a,0xff,0xcf,0x01,0x80,0x00,0x52,0xff,0xcf,0x01,0x80,0x00,0x54,0xff,0xcf,0x01,0x80,0x00,0x62, +0xff,0xb6,0x01,0x80,0x00,0x63,0xff,0xb6,0x01,0x80,0x00,0x69,0xff,0xb4,0x01,0x80,0x00,0x6a,0xff,0xb4,0x01,0x80,0x00,0x6b,0xff,0xb4,0x01,0x80,0x00,0x6c,0xff,0xb4,0x01,0x80,0x00,0x6d,0xff,0xb4,0x01,0x80,0x00,0x6e,0xff,0xb4,0x01,0x80,0x00,0x6f,0xff,0xcf,0x01,0x80,0x00,0x70,0xff,0xcf,0x01,0x80,0x00,0x71,0xff,0xcf,0x01,0x80, +0x00,0x72,0xff,0xcf,0x01,0x80,0x00,0x73,0xff,0xcf,0x01,0x80,0x00,0x76,0x00,0x31,0x01,0x80,0x00,0x77,0x00,0x64,0x01,0x80,0x00,0x79,0xff,0xcf,0x01,0x80,0x00,0x7a,0xff,0xcf,0x01,0x80,0x00,0x7b,0xff,0xcf,0x01,0x80,0x00,0x7c,0xff,0xcf,0x01,0x80,0x00,0x7d,0xff,0xcf,0x01,0x80,0x00,0x91,0xff,0x9a,0x01,0x80,0x00,0xa0,0xff,0xb4, +0x01,0x80,0x00,0xa2,0xff,0xa4,0x01,0x80,0x00,0xaa,0xff,0xcf,0x01,0x80,0x00,0xab,0x00,0x27,0x01,0x80,0x00,0xac,0xff,0x7f,0x01,0x80,0x00,0xad,0xff,0xb6,0x01,0x80,0x00,0xae,0xff,0xb6,0x01,0x80,0x00,0xb1,0xff,0xcf,0x01,0x80,0x00,0xbe,0xff,0xcf,0x01,0x80,0x00,0xbf,0x00,0x27,0x01,0x80,0x00,0xc4,0xff,0x7f,0x01,0x80,0x00,0xc5, +0xff,0x8b,0x01,0x80,0x00,0xc7,0xff,0xb6,0x01,0x80,0x00,0xc9,0xff,0xb6,0x01,0x80,0x00,0xf8,0xff,0xcf,0x01,0x80,0x00,0xfd,0xff,0xcf,0x01,0x80,0x00,0xff,0xff,0xcf,0x01,0x80,0x01,0x00,0xff,0xcf,0x01,0x80,0x01,0x03,0xff,0xb6,0x01,0x80,0x01,0x04,0xff,0xb4,0x01,0x80,0x01,0x05,0xff,0xb6,0x01,0x80,0x01,0x06,0xff,0xb4,0x01,0x80, +0x01,0x08,0xff,0xcf,0x01,0x80,0x01,0x0b,0xff,0xcf,0x01,0x80,0x01,0x0d,0xff,0xcf,0x01,0x80,0x01,0x19,0xff,0xcf,0x01,0x80,0x01,0x20,0x00,0x27,0x01,0x80,0x01,0x22,0x00,0x27,0x01,0x80,0x01,0x45,0xff,0xb6,0x01,0x80,0x01,0x46,0xff,0xb4,0x01,0x80,0x01,0x48,0xff,0xcf,0x01,0x80,0x01,0x4c,0xff,0xcf,0x01,0x80,0x01,0x4e,0xff,0xcf, +0x01,0x80,0x01,0x50,0xff,0xcf,0x01,0x80,0x01,0x52,0xff,0xcf,0x01,0x80,0x01,0x54,0xff,0xcf,0x01,0x80,0x01,0x56,0xff,0xcf,0x01,0x80,0x01,0x5c,0x00,0x64,0x01,0x80,0x01,0x5e,0x00,0x64,0x01,0x80,0x01,0x60,0x00,0x64,0x01,0x80,0x01,0x6f,0xff,0xcf,0x01,0x80,0x01,0x71,0xff,0xcf,0x01,0x80,0x01,0x76,0x00,0x27,0x01,0x80,0x01,0x85, +0xff,0xb6,0x01,0x80,0x01,0x86,0xff,0xb4,0x01,0x80,0x01,0x87,0xff,0xb6,0x01,0x80,0x01,0x88,0xff,0xb4,0x01,0x80,0x01,0x8a,0xff,0xcf,0x01,0x81,0x00,0x0f,0xff,0xa6,0x01,0x81,0x00,0x11,0xff,0x9a,0x01,0x81,0x00,0x46,0xff,0xfa,0x01,0x81,0x00,0x47,0xff,0xf6,0x01,0x81,0x00,0x48,0xff,0xf6,0x01,0x81,0x00,0x4a,0xff,0xfa,0x01,0x81, +0x00,0x52,0xff,0xfa,0x01,0x81,0x00,0x54,0xff,0xf6,0x01,0x81,0x00,0x6f,0xff,0xfa,0x01,0x81,0x00,0x70,0xff,0xf6,0x01,0x81,0x00,0x71,0xff,0xf6,0x01,0x81,0x00,0x72,0xff,0xf6,0x01,0x81,0x00,0x73,0xff,0xf6,0x01,0x81,0x00,0x79,0xff,0xfa,0x01,0x81,0x00,0x7a,0xff,0xfa,0x01,0x81,0x00,0x7b,0xff,0xfa,0x01,0x81,0x00,0x7c,0xff,0xfa, +0x01,0x81,0x00,0x7d,0xff,0xfa,0x01,0x81,0x00,0xac,0xff,0x9a,0x01,0x81,0x00,0xb1,0xff,0xfa,0x01,0x81,0x00,0xc4,0xff,0xb4,0x01,0x81,0x00,0xc5,0xff,0xb4,0x01,0x81,0x00,0xf8,0xff,0xfa,0x01,0x81,0x00,0xfd,0xff,0xfa,0x01,0x81,0x00,0xff,0xff,0xfa,0x01,0x81,0x01,0x00,0xff,0xf6,0x01,0x81,0x01,0x08,0xff,0xf6,0x01,0x81,0x01,0x0b, +0xff,0xf6,0x01,0x81,0x01,0x0d,0xff,0xf6,0x01,0x81,0x01,0x19,0xff,0xfa,0x01,0x81,0x01,0x48,0xff,0xfa,0x01,0x81,0x01,0x4c,0xff,0xf6,0x01,0x81,0x01,0x4e,0xff,0xf6,0x01,0x81,0x01,0x50,0xff,0xf6,0x01,0x81,0x01,0x52,0xff,0xfa,0x01,0x81,0x01,0x54,0xff,0xfa,0x01,0x81,0x01,0x56,0xff,0xfa,0x01,0x81,0x01,0x6f,0xff,0xfa,0x01,0x81, +0x01,0x71,0xff,0xfa,0x01,0x81,0x01,0x8a,0xff,0xfa,0x01,0x82,0x00,0x0f,0xff,0x50,0x01,0x82,0x00,0x11,0xff,0x3d,0x01,0x82,0x00,0x24,0xff,0x62,0x01,0x82,0x00,0x26,0xff,0xd3,0x01,0x82,0x00,0x2a,0xff,0xd3,0x01,0x82,0x00,0x2d,0xff,0xbe,0x01,0x82,0x00,0x32,0xff,0xd3,0x01,0x82,0x00,0x34,0xff,0xd3,0x01,0x82,0x00,0x36,0xff,0xe5, +0x01,0x82,0x00,0x37,0x00,0x27,0x01,0x82,0x00,0x44,0xff,0x39,0x01,0x82,0x00,0x46,0xff,0x4c,0x01,0x82,0x00,0x47,0xff,0x4c,0x01,0x82,0x00,0x48,0xff,0x4c,0x01,0x82,0x00,0x49,0xff,0xe5,0x01,0x82,0x00,0x4a,0xff,0x4c,0x01,0x82,0x00,0x50,0xff,0x73,0x01,0x82,0x00,0x51,0xff,0x73,0x01,0x82,0x00,0x52,0xff,0x4c,0x01,0x82,0x00,0x53, +0xff,0x73,0x01,0x82,0x00,0x54,0xff,0x4c,0x01,0x82,0x00,0x55,0xff,0x73,0x01,0x82,0x00,0x56,0xff,0x7b,0x01,0x82,0x00,0x58,0xff,0x73,0x01,0x82,0x00,0x62,0xff,0x62,0x01,0x82,0x00,0x63,0xff,0x62,0x01,0x82,0x00,0x64,0xff,0xcd,0x01,0x82,0x00,0x67,0xff,0xd3,0x01,0x82,0x00,0x69,0xff,0x39,0x01,0x82,0x00,0x6a,0xff,0x39,0x01,0x82, +0x00,0x6b,0xff,0x39,0x01,0x82,0x00,0x6c,0xff,0x7f,0x01,0x82,0x00,0x6d,0xff,0x66,0x01,0x82,0x00,0x6e,0xff,0x39,0x01,0x82,0x00,0x6f,0xff,0x4c,0x01,0x82,0x00,0x70,0xff,0x4c,0x01,0x82,0x00,0x71,0xff,0x4c,0x01,0x82,0x00,0x72,0xff,0x4c,0x01,0x82,0x00,0x73,0xff,0x4c,0x01,0x82,0x00,0x77,0x00,0x5a,0x01,0x82,0x00,0x78,0xff,0x73, +0x01,0x82,0x00,0x79,0xff,0x4c,0x01,0x82,0x00,0x7a,0xff,0x4c,0x01,0x82,0x00,0x7b,0xff,0x4c,0x01,0x82,0x00,0x7c,0xff,0x4c,0x01,0x82,0x00,0x7d,0xff,0x4c,0x01,0x82,0x00,0x7e,0xff,0x73,0x01,0x82,0x00,0x7f,0xff,0x73,0x01,0x82,0x00,0x80,0xff,0x73,0x01,0x82,0x00,0x81,0xff,0x73,0x01,0x82,0x00,0x91,0xff,0x3f,0x01,0x82,0x00,0x92, +0xff,0xd3,0x01,0x82,0x00,0xa0,0xff,0x39,0x01,0x82,0x00,0xa2,0xff,0x1b,0x01,0x82,0x00,0xaa,0xff,0xcf,0x01,0x82,0x00,0xac,0xff,0x3d,0x01,0x82,0x00,0xad,0xff,0x62,0x01,0x82,0x00,0xae,0xff,0x62,0x01,0x82,0x00,0xaf,0xff,0xd3,0x01,0x82,0x00,0xb0,0xff,0xd3,0x01,0x82,0x00,0xb1,0xff,0x4c,0x01,0x82,0x00,0xbe,0xff,0x9a,0x01,0x82, +0x00,0xc4,0xff,0x08,0x01,0x82,0x00,0xc5,0xff,0x08,0x01,0x82,0x00,0xc7,0xff,0x62,0x01,0x82,0x00,0xc9,0xff,0x62,0x01,0x82,0x00,0xd0,0xff,0xd3,0x01,0x82,0x00,0xd1,0xff,0xd3,0x01,0x82,0x00,0xd2,0xff,0xd3,0x01,0x82,0x00,0xe3,0xff,0xe5,0x01,0x82,0x00,0xe4,0xff,0x7b,0x01,0x82,0x00,0xf7,0xff,0xd3,0x01,0x82,0x00,0xf8,0xff,0x4c, +0x01,0x82,0x00,0xfa,0xff,0xe5,0x01,0x82,0x00,0xfb,0xff,0x7b,0x01,0x82,0x00,0xfc,0xff,0xd3,0x01,0x82,0x00,0xfd,0xff,0x4c,0x01,0x82,0x00,0xfe,0xff,0xd3,0x01,0x82,0x00,0xff,0xff,0x4c,0x01,0x82,0x01,0x00,0xff,0x4c,0x01,0x82,0x01,0x03,0xff,0x62,0x01,0x82,0x01,0x04,0xff,0x7f,0x01,0x82,0x01,0x05,0xff,0x62,0x01,0x82,0x01,0x06, +0xff,0x39,0x01,0x82,0x01,0x08,0xff,0x4c,0x01,0x82,0x01,0x0b,0xff,0x4c,0x01,0x82,0x01,0x0d,0xff,0x4c,0x01,0x82,0x01,0x15,0xff,0x73,0x01,0x82,0x01,0x17,0xff,0x73,0x01,0x82,0x01,0x18,0xff,0xd3,0x01,0x82,0x01,0x19,0xff,0x4c,0x01,0x82,0x01,0x1b,0xff,0x73,0x01,0x82,0x01,0x1d,0xff,0x73,0x01,0x82,0x01,0x1e,0xff,0xe5,0x01,0x82, +0x01,0x1f,0xff,0x7b,0x01,0x82,0x01,0x20,0x00,0x27,0x01,0x82,0x01,0x22,0x00,0x27,0x01,0x82,0x01,0x25,0xff,0x73,0x01,0x82,0x01,0x27,0xff,0x73,0x01,0x82,0x01,0x45,0xff,0x62,0x01,0x82,0x01,0x46,0xff,0x7f,0x01,0x82,0x01,0x47,0xff,0xd3,0x01,0x82,0x01,0x48,0xff,0x4c,0x01,0x82,0x01,0x4c,0xff,0x4c,0x01,0x82,0x01,0x4e,0xff,0x4c, +0x01,0x82,0x01,0x50,0xff,0x4c,0x01,0x82,0x01,0x51,0xff,0xd3,0x01,0x82,0x01,0x52,0xff,0x4c,0x01,0x82,0x01,0x53,0xff,0xd3,0x01,0x82,0x01,0x54,0xff,0x4c,0x01,0x82,0x01,0x55,0xff,0xd3,0x01,0x82,0x01,0x56,0xff,0x4c,0x01,0x82,0x01,0x5c,0x00,0x5a,0x01,0x82,0x01,0x5e,0x00,0x5a,0x01,0x82,0x01,0x60,0x00,0x5a,0x01,0x82,0x01,0x63, +0xff,0xbe,0x01,0x82,0x01,0x6d,0xff,0x73,0x01,0x82,0x01,0x6e,0xff,0xd3,0x01,0x82,0x01,0x6f,0xff,0x4c,0x01,0x82,0x01,0x70,0xff,0xd3,0x01,0x82,0x01,0x71,0xff,0x4c,0x01,0x82,0x01,0x73,0xff,0x73,0x01,0x82,0x01,0x74,0xff,0xe5,0x01,0x82,0x01,0x75,0xff,0x7b,0x01,0x82,0x01,0x76,0x00,0x27,0x01,0x82,0x01,0x79,0xff,0x73,0x01,0x82, +0x01,0x7b,0xff,0x73,0x01,0x82,0x01,0x7d,0xff,0x73,0x01,0x82,0x01,0x7f,0xff,0x73,0x01,0x82,0x01,0x85,0xff,0x62,0x01,0x82,0x01,0x86,0xff,0x7f,0x01,0x82,0x01,0x87,0xff,0x62,0x01,0x82,0x01,0x88,0xff,0x39,0x01,0x82,0x01,0x89,0xff,0xd3,0x01,0x82,0x01,0x8a,0xff,0x4c,0x01,0x82,0x02,0x3d,0xff,0xe5,0x01,0x82,0x02,0x3e,0xff,0x7b, +0x01,0x83,0x00,0x05,0x00,0x1d,0x01,0x83,0x00,0x0a,0x00,0x1d,0x01,0x83,0x00,0x0f,0xff,0x9a,0x01,0x83,0x00,0x11,0xff,0x81,0x01,0x83,0x00,0x22,0xff,0xb4,0x01,0x83,0x00,0x46,0xff,0xf6,0x01,0x83,0x00,0x47,0xff,0xf6,0x01,0x83,0x00,0x48,0xff,0xf6,0x01,0x83,0x00,0x49,0x00,0x04,0x01,0x83,0x00,0x4a,0xff,0xf6,0x01,0x83,0x00,0x52, +0xff,0xf6,0x01,0x83,0x00,0x54,0xff,0xf6,0x01,0x83,0x00,0x57,0x00,0x06,0x01,0x83,0x00,0x6f,0xff,0xf6,0x01,0x83,0x00,0x70,0xff,0xf6,0x01,0x83,0x00,0x71,0xff,0xf6,0x01,0x83,0x00,0x72,0xff,0xf6,0x01,0x83,0x00,0x73,0xff,0xf6,0x01,0x83,0x00,0x79,0xff,0xf6,0x01,0x83,0x00,0x7a,0xff,0xf6,0x01,0x83,0x00,0x7b,0xff,0xf6,0x01,0x83, +0x00,0x7c,0xff,0xf6,0x01,0x83,0x00,0x7d,0xff,0xf6,0x01,0x83,0x00,0xac,0xff,0x81,0x01,0x83,0x00,0xb1,0xff,0xf6,0x01,0x83,0x00,0xbf,0x00,0x0c,0x01,0x83,0x00,0xc4,0xff,0x8d,0x01,0x83,0x00,0xc5,0xff,0x8d,0x01,0x83,0x00,0xf8,0xff,0xf6,0x01,0x83,0x00,0xfd,0xff,0xf6,0x01,0x83,0x00,0xff,0xff,0xf6,0x01,0x83,0x01,0x00,0xff,0xf6, +0x01,0x83,0x01,0x08,0xff,0xf6,0x01,0x83,0x01,0x0b,0xff,0xf6,0x01,0x83,0x01,0x0d,0xff,0xf6,0x01,0x83,0x01,0x19,0xff,0xf6,0x01,0x83,0x01,0x21,0x00,0x06,0x01,0x83,0x01,0x23,0x00,0x06,0x01,0x83,0x01,0x48,0xff,0xf6,0x01,0x83,0x01,0x4c,0xff,0xf6,0x01,0x83,0x01,0x4e,0xff,0xf6,0x01,0x83,0x01,0x50,0xff,0xf6,0x01,0x83,0x01,0x52, +0xff,0xf6,0x01,0x83,0x01,0x54,0xff,0xf6,0x01,0x83,0x01,0x56,0xff,0xf6,0x01,0x83,0x01,0x6f,0xff,0xf6,0x01,0x83,0x01,0x71,0xff,0xf6,0x01,0x83,0x01,0x77,0x00,0x06,0x01,0x83,0x01,0x8a,0xff,0xf6,0x01,0x84,0x00,0x0c,0x00,0x8d,0x01,0x84,0x00,0x0f,0xff,0x7f,0x01,0x84,0x00,0x10,0xff,0x9a,0x01,0x84,0x00,0x11,0xff,0x7f,0x01,0x84, +0x00,0x1d,0x00,0x52,0x01,0x84,0x00,0x1e,0x00,0x52,0x01,0x84,0x00,0x22,0x00,0x42,0x01,0x84,0x00,0x40,0x00,0x8d,0x01,0x84,0x00,0x45,0x00,0x12,0x01,0x84,0x00,0x4b,0x00,0x12,0x01,0x84,0x00,0x57,0x00,0x25,0x01,0x84,0x00,0x59,0x00,0x27,0x01,0x84,0x00,0x5a,0x00,0x27,0x01,0x84,0x00,0x5b,0x00,0x12,0x01,0x84,0x00,0x5c,0x00,0x21, +0x01,0x84,0x00,0x60,0x00,0x52,0x01,0x84,0x00,0x75,0x00,0x2d,0x01,0x84,0x00,0x76,0x00,0x12,0x01,0x84,0x00,0x77,0x00,0x79,0x01,0x84,0x00,0x8d,0x00,0x93,0x01,0x84,0x00,0xab,0x00,0x27,0x01,0x84,0x00,0xac,0xff,0x7f,0x01,0x84,0x00,0xb4,0x00,0x5e,0x01,0x84,0x00,0xb5,0x00,0x52,0x01,0x84,0x00,0xb6,0x00,0x5e,0x01,0x84,0x00,0xb7, +0x00,0x52,0x01,0x84,0x00,0xbf,0x00,0x27,0x01,0x84,0x00,0xc4,0xff,0xb0,0x01,0x84,0x00,0xc5,0xff,0xb0,0x01,0x84,0x00,0xeb,0x00,0x21,0x01,0x84,0x00,0xed,0x00,0x12,0x01,0x84,0x01,0x21,0x00,0x25,0x01,0x84,0x01,0x23,0x00,0x25,0x01,0x84,0x01,0x58,0x00,0x12,0x01,0x84,0x01,0x5a,0x00,0x12,0x01,0x84,0x01,0x5c,0x00,0x79,0x01,0x84, +0x01,0x5e,0x00,0x79,0x01,0x84,0x01,0x60,0x00,0x79,0x01,0x84,0x01,0x77,0x00,0x25,0x01,0x84,0x01,0x81,0x00,0x27,0x01,0x84,0x01,0x83,0x00,0x21,0x01,0x84,0x01,0x8d,0x00,0x27,0x01,0x84,0x01,0x8f,0x00,0x27,0x01,0x84,0x01,0x91,0x00,0x27,0x01,0x84,0x01,0x93,0x00,0x21,0x01,0x85,0x00,0x0d,0xff,0x7f,0x01,0x85,0x00,0x0f,0x00,0x44, +0x01,0x85,0x00,0x1e,0x00,0x44,0x01,0x85,0x00,0x26,0xff,0xe5,0x01,0x85,0x00,0x2a,0xff,0xe5,0x01,0x85,0x00,0x2d,0x00,0x5e,0x01,0x85,0x00,0x32,0xff,0xe5,0x01,0x85,0x00,0x37,0xff,0x6d,0x01,0x85,0x00,0x38,0xff,0xe5,0x01,0x85,0x00,0x39,0xff,0x8b,0x01,0x85,0x00,0x3a,0xff,0xb6,0x01,0x85,0x00,0x3c,0xff,0x64,0x01,0x85,0x00,0x3d, +0x00,0x3b,0x01,0x85,0x00,0x57,0xff,0xe5,0x01,0x85,0x00,0x59,0xff,0xd5,0x01,0x85,0x00,0x5a,0xff,0xe5,0x01,0x85,0x00,0x5c,0xff,0xdb,0x01,0x85,0x00,0x8d,0xff,0x9a,0x01,0x85,0x00,0xb4,0xff,0x66,0x01,0x85,0x00,0xb5,0xff,0x3f,0x01,0x85,0x00,0xb6,0xff,0x66,0x01,0x85,0x00,0xb7,0xff,0x3f,0x01,0x85,0x00,0xba,0xff,0xc1,0x01,0x85, +0x00,0xbb,0xff,0x64,0x01,0x85,0x00,0xe5,0x00,0x3b,0x01,0x85,0x00,0xea,0xff,0x64,0x01,0x85,0x00,0xeb,0xff,0xdb,0x01,0x85,0x00,0xf7,0xff,0xe5,0x01,0x85,0x00,0xfc,0xff,0xe5,0x01,0x85,0x00,0xfe,0xff,0xe5,0x01,0x85,0x01,0x18,0xff,0xe5,0x01,0x85,0x01,0x20,0xff,0x6d,0x01,0x85,0x01,0x21,0xff,0xe5,0x01,0x85,0x01,0x22,0xff,0x6d, +0x01,0x85,0x01,0x23,0xff,0xe5,0x01,0x85,0x01,0x24,0xff,0xe5,0x01,0x85,0x01,0x26,0xff,0xe5,0x01,0x85,0x01,0x28,0x00,0x3b,0x01,0x85,0x01,0x2a,0x00,0x3b,0x01,0x85,0x01,0x47,0xff,0xe5,0x01,0x85,0x01,0x51,0xff,0xe5,0x01,0x85,0x01,0x53,0xff,0xe5,0x01,0x85,0x01,0x55,0xff,0xe5,0x01,0x85,0x01,0x63,0x00,0x5e,0x01,0x85,0x01,0x6e, +0xff,0xe5,0x01,0x85,0x01,0x70,0xff,0xe5,0x01,0x85,0x01,0x76,0xff,0x6d,0x01,0x85,0x01,0x77,0xff,0xe5,0x01,0x85,0x01,0x78,0xff,0xe5,0x01,0x85,0x01,0x7a,0xff,0xe5,0x01,0x85,0x01,0x7c,0xff,0xe5,0x01,0x85,0x01,0x7e,0xff,0xe5,0x01,0x85,0x01,0x80,0xff,0xb6,0x01,0x85,0x01,0x81,0xff,0xe5,0x01,0x85,0x01,0x82,0xff,0x64,0x01,0x85, +0x01,0x83,0xff,0xdb,0x01,0x85,0x01,0x89,0xff,0xe5,0x01,0x85,0x01,0x8c,0xff,0xb6,0x01,0x85,0x01,0x8d,0xff,0xe5,0x01,0x85,0x01,0x8e,0xff,0xb6,0x01,0x85,0x01,0x8f,0xff,0xe5,0x01,0x85,0x01,0x90,0xff,0xb6,0x01,0x85,0x01,0x91,0xff,0xe5,0x01,0x85,0x01,0x92,0xff,0x64,0x01,0x85,0x01,0x93,0xff,0xdb,0x01,0x87,0x00,0x24,0x00,0x0a, +0x01,0x87,0x00,0x2d,0x00,0x44,0x01,0x87,0x00,0x37,0x00,0x04,0x01,0x87,0x00,0x3a,0x00,0x1d,0x01,0x87,0x00,0x3b,0x00,0x08,0x01,0x87,0x00,0x62,0x00,0x0a,0x01,0x87,0x00,0x63,0x00,0x0a,0x01,0x87,0x00,0x77,0x00,0x12,0x01,0x87,0x00,0xad,0x00,0x0a,0x01,0x87,0x00,0xae,0x00,0x0a,0x01,0x87,0x00,0xc7,0x00,0x0a,0x01,0x87,0x00,0xc9, +0x00,0x0a,0x01,0x87,0x01,0x03,0x00,0x0a,0x01,0x87,0x01,0x05,0x00,0x0a,0x01,0x87,0x01,0x20,0x00,0x04,0x01,0x87,0x01,0x22,0x00,0x04,0x01,0x87,0x01,0x45,0x00,0x0a,0x01,0x87,0x01,0x5c,0x00,0x12,0x01,0x87,0x01,0x5e,0x00,0x12,0x01,0x87,0x01,0x60,0x00,0x12,0x01,0x87,0x01,0x63,0x00,0x44,0x01,0x87,0x01,0x76,0x00,0x04,0x01,0x87, +0x01,0x80,0x00,0x1d,0x01,0x87,0x01,0x85,0x00,0x0a,0x01,0x87,0x01,0x87,0x00,0x0a,0x01,0x87,0x01,0x8c,0x00,0x1d,0x01,0x87,0x01,0x8e,0x00,0x1d,0x01,0x87,0x01,0x90,0x00,0x1d,0x01,0x88,0x00,0x05,0xff,0x98,0x01,0x88,0x00,0x0a,0xff,0x98,0x01,0x89,0x00,0x0f,0xff,0xa4,0x01,0x89,0x00,0x11,0xff,0xa4,0x01,0x89,0x00,0x24,0xff,0xe5, +0x01,0x89,0x00,0x2d,0xff,0xf6,0x01,0x89,0x00,0x37,0xff,0xa4,0x01,0x89,0x00,0x3b,0xff,0xdb,0x01,0x89,0x00,0x3c,0xff,0xe7,0x01,0x89,0x00,0x3d,0xff,0xcf,0x01,0x89,0x00,0x62,0xff,0xe5,0x01,0x89,0x00,0x63,0xff,0xe5,0x01,0x89,0x00,0xac,0xff,0xa4,0x01,0x89,0x00,0xad,0xff,0xe5,0x01,0x89,0x00,0xae,0xff,0xe5,0x01,0x89,0x00,0xbb, +0xff,0xf6,0x01,0x89,0x00,0xc4,0xff,0x4c,0x01,0x89,0x00,0xc5,0xff,0x98,0x01,0x89,0x00,0xc7,0xff,0xe5,0x01,0x89,0x00,0xc9,0xff,0xe5,0x01,0x89,0x00,0xe5,0xff,0xcf,0x01,0x89,0x00,0xea,0xff,0xe7,0x01,0x89,0x01,0x03,0xff,0xe5,0x01,0x89,0x01,0x05,0xff,0xe5,0x01,0x89,0x01,0x20,0xff,0xa4,0x01,0x89,0x01,0x22,0xff,0xa4,0x01,0x89, +0x01,0x28,0xff,0xcf,0x01,0x89,0x01,0x2a,0xff,0xcf,0x01,0x89,0x01,0x45,0xff,0xe5,0x01,0x89,0x01,0x63,0xff,0xf6,0x01,0x89,0x01,0x76,0xff,0xa4,0x01,0x89,0x01,0x82,0xff,0xe7,0x01,0x89,0x01,0x85,0xff,0xe5,0x01,0x89,0x01,0x87,0xff,0xe5,0x01,0x89,0x01,0x92,0xff,0xe7,0x01,0x8a,0x00,0x05,0xff,0x6f,0x01,0x8a,0x00,0x0a,0xff,0x6f, +0x01,0x8a,0x00,0x44,0xff,0xe5,0x01,0x8a,0x00,0x49,0xff,0xdb,0x01,0x8a,0x00,0x5b,0xff,0xe7,0x01,0x8a,0x00,0x69,0xff,0xe5,0x01,0x8a,0x00,0x6a,0xff,0xe5,0x01,0x8a,0x00,0x6b,0xff,0xe5,0x01,0x8a,0x00,0x6c,0xff,0xe5,0x01,0x8a,0x00,0x6d,0xff,0xe5,0x01,0x8a,0x00,0x6e,0xff,0xe5,0x01,0x8a,0x00,0xa0,0xff,0xe5,0x01,0x8a,0x00,0xb4, +0xff,0xb2,0x01,0x8a,0x00,0xb5,0xff,0x7d,0x01,0x8a,0x00,0xb6,0xff,0xbe,0x01,0x8a,0x00,0xb7,0xff,0x7d,0x01,0x8a,0x00,0xc0,0xff,0xe7,0x01,0x8a,0x00,0xc1,0xff,0xe7,0x01,0x8a,0x01,0x04,0xff,0xe5,0x01,0x8a,0x01,0x06,0xff,0xe5,0x01,0x8a,0x01,0x46,0xff,0xe5,0x01,0x8a,0x01,0x86,0xff,0xe5,0x01,0x8a,0x01,0x88,0xff,0xe5,0x01,0x8c, +0x00,0x0f,0xff,0x8b,0x01,0x8c,0x00,0x11,0xff,0x7f,0x01,0x8c,0x00,0x24,0xff,0xb6,0x01,0x8c,0x00,0x37,0x00,0x27,0x01,0x8c,0x00,0x44,0xff,0xb4,0x01,0x8c,0x00,0x46,0xff,0xcf,0x01,0x8c,0x00,0x47,0xff,0xcf,0x01,0x8c,0x00,0x48,0xff,0xcf,0x01,0x8c,0x00,0x4a,0xff,0xcf,0x01,0x8c,0x00,0x52,0xff,0xcf,0x01,0x8c,0x00,0x54,0xff,0xcf, +0x01,0x8c,0x00,0x62,0xff,0xb6,0x01,0x8c,0x00,0x63,0xff,0xb6,0x01,0x8c,0x00,0x69,0xff,0xb4,0x01,0x8c,0x00,0x6a,0xff,0xb4,0x01,0x8c,0x00,0x6b,0xff,0xb4,0x01,0x8c,0x00,0x6c,0xff,0xb4,0x01,0x8c,0x00,0x6d,0xff,0xb4,0x01,0x8c,0x00,0x6e,0xff,0xb4,0x01,0x8c,0x00,0x6f,0xff,0xcf,0x01,0x8c,0x00,0x70,0xff,0xcf,0x01,0x8c,0x00,0x71, +0xff,0xcf,0x01,0x8c,0x00,0x72,0xff,0xcf,0x01,0x8c,0x00,0x73,0xff,0xcf,0x01,0x8c,0x00,0x76,0x00,0x31,0x01,0x8c,0x00,0x77,0x00,0x64,0x01,0x8c,0x00,0x79,0xff,0xcf,0x01,0x8c,0x00,0x7a,0xff,0xcf,0x01,0x8c,0x00,0x7b,0xff,0xcf,0x01,0x8c,0x00,0x7c,0xff,0xcf,0x01,0x8c,0x00,0x7d,0xff,0xcf,0x01,0x8c,0x00,0x91,0xff,0x9a,0x01,0x8c, +0x00,0xa0,0xff,0xb4,0x01,0x8c,0x00,0xa2,0xff,0xa4,0x01,0x8c,0x00,0xaa,0xff,0xcf,0x01,0x8c,0x00,0xab,0x00,0x27,0x01,0x8c,0x00,0xac,0xff,0x7f,0x01,0x8c,0x00,0xad,0xff,0xb6,0x01,0x8c,0x00,0xae,0xff,0xb6,0x01,0x8c,0x00,0xb1,0xff,0xcf,0x01,0x8c,0x00,0xbe,0xff,0xcf,0x01,0x8c,0x00,0xbf,0x00,0x27,0x01,0x8c,0x00,0xc4,0xff,0x7f, +0x01,0x8c,0x00,0xc5,0xff,0x8b,0x01,0x8c,0x00,0xc7,0xff,0xb6,0x01,0x8c,0x00,0xc9,0xff,0xb6,0x01,0x8c,0x00,0xf8,0xff,0xcf,0x01,0x8c,0x00,0xfd,0xff,0xcf,0x01,0x8c,0x00,0xff,0xff,0xcf,0x01,0x8c,0x01,0x00,0xff,0xcf,0x01,0x8c,0x01,0x03,0xff,0xb6,0x01,0x8c,0x01,0x04,0xff,0xb4,0x01,0x8c,0x01,0x05,0xff,0xb6,0x01,0x8c,0x01,0x06, +0xff,0xb4,0x01,0x8c,0x01,0x08,0xff,0xcf,0x01,0x8c,0x01,0x0b,0xff,0xcf,0x01,0x8c,0x01,0x0d,0xff,0xcf,0x01,0x8c,0x01,0x19,0xff,0xcf,0x01,0x8c,0x01,0x20,0x00,0x27,0x01,0x8c,0x01,0x22,0x00,0x27,0x01,0x8c,0x01,0x45,0xff,0xb6,0x01,0x8c,0x01,0x46,0xff,0xb4,0x01,0x8c,0x01,0x48,0xff,0xcf,0x01,0x8c,0x01,0x4c,0xff,0xcf,0x01,0x8c, +0x01,0x4e,0xff,0xcf,0x01,0x8c,0x01,0x50,0xff,0xcf,0x01,0x8c,0x01,0x52,0xff,0xcf,0x01,0x8c,0x01,0x54,0xff,0xcf,0x01,0x8c,0x01,0x56,0xff,0xcf,0x01,0x8c,0x01,0x5c,0x00,0x64,0x01,0x8c,0x01,0x5e,0x00,0x64,0x01,0x8c,0x01,0x60,0x00,0x64,0x01,0x8c,0x01,0x6f,0xff,0xcf,0x01,0x8c,0x01,0x71,0xff,0xcf,0x01,0x8c,0x01,0x76,0x00,0x27, +0x01,0x8c,0x01,0x85,0xff,0xb6,0x01,0x8c,0x01,0x86,0xff,0xb4,0x01,0x8c,0x01,0x87,0xff,0xb6,0x01,0x8c,0x01,0x88,0xff,0xb4,0x01,0x8c,0x01,0x8a,0xff,0xcf,0x01,0x8d,0x00,0x0f,0xff,0xa6,0x01,0x8d,0x00,0x11,0xff,0x9a,0x01,0x8d,0x00,0x46,0xff,0xfa,0x01,0x8d,0x00,0x47,0xff,0xf6,0x01,0x8d,0x00,0x48,0xff,0xf6,0x01,0x8d,0x00,0x4a, +0xff,0xfa,0x01,0x8d,0x00,0x52,0xff,0xfa,0x01,0x8d,0x00,0x54,0xff,0xf6,0x01,0x8d,0x00,0x6f,0xff,0xfa,0x01,0x8d,0x00,0x70,0xff,0xf6,0x01,0x8d,0x00,0x71,0xff,0xf6,0x01,0x8d,0x00,0x72,0xff,0xf6,0x01,0x8d,0x00,0x73,0xff,0xf6,0x01,0x8d,0x00,0x79,0xff,0xfa,0x01,0x8d,0x00,0x7a,0xff,0xfa,0x01,0x8d,0x00,0x7b,0xff,0xfa,0x01,0x8d, +0x00,0x7c,0xff,0xfa,0x01,0x8d,0x00,0x7d,0xff,0xfa,0x01,0x8d,0x00,0xac,0xff,0x9a,0x01,0x8d,0x00,0xb1,0xff,0xfa,0x01,0x8d,0x00,0xc4,0xff,0xb4,0x01,0x8d,0x00,0xc5,0xff,0xb4,0x01,0x8d,0x00,0xf8,0xff,0xfa,0x01,0x8d,0x00,0xfd,0xff,0xfa,0x01,0x8d,0x00,0xff,0xff,0xfa,0x01,0x8d,0x01,0x00,0xff,0xf6,0x01,0x8d,0x01,0x08,0xff,0xf6, +0x01,0x8d,0x01,0x0b,0xff,0xf6,0x01,0x8d,0x01,0x0d,0xff,0xf6,0x01,0x8d,0x01,0x19,0xff,0xfa,0x01,0x8d,0x01,0x48,0xff,0xfa,0x01,0x8d,0x01,0x4c,0xff,0xf6,0x01,0x8d,0x01,0x4e,0xff,0xf6,0x01,0x8d,0x01,0x50,0xff,0xf6,0x01,0x8d,0x01,0x52,0xff,0xfa,0x01,0x8d,0x01,0x54,0xff,0xfa,0x01,0x8d,0x01,0x56,0xff,0xfa,0x01,0x8d,0x01,0x6f, +0xff,0xfa,0x01,0x8d,0x01,0x71,0xff,0xfa,0x01,0x8d,0x01,0x8a,0xff,0xfa,0x01,0x8e,0x00,0x0f,0xff,0x8b,0x01,0x8e,0x00,0x11,0xff,0x7f,0x01,0x8e,0x00,0x24,0xff,0xb6,0x01,0x8e,0x00,0x37,0x00,0x27,0x01,0x8e,0x00,0x44,0xff,0xb4,0x01,0x8e,0x00,0x46,0xff,0xcf,0x01,0x8e,0x00,0x47,0xff,0xcf,0x01,0x8e,0x00,0x48,0xff,0xcf,0x01,0x8e, +0x00,0x4a,0xff,0xcf,0x01,0x8e,0x00,0x52,0xff,0xcf,0x01,0x8e,0x00,0x54,0xff,0xcf,0x01,0x8e,0x00,0x62,0xff,0xb6,0x01,0x8e,0x00,0x63,0xff,0xb6,0x01,0x8e,0x00,0x69,0xff,0xb4,0x01,0x8e,0x00,0x6a,0xff,0xb4,0x01,0x8e,0x00,0x6b,0xff,0xb4,0x01,0x8e,0x00,0x6c,0xff,0xb4,0x01,0x8e,0x00,0x6d,0xff,0xb4,0x01,0x8e,0x00,0x6e,0xff,0xb4, +0x01,0x8e,0x00,0x6f,0xff,0xcf,0x01,0x8e,0x00,0x70,0xff,0xcf,0x01,0x8e,0x00,0x71,0xff,0xcf,0x01,0x8e,0x00,0x72,0xff,0xcf,0x01,0x8e,0x00,0x73,0xff,0xcf,0x01,0x8e,0x00,0x76,0x00,0x31,0x01,0x8e,0x00,0x77,0x00,0x64,0x01,0x8e,0x00,0x79,0xff,0xcf,0x01,0x8e,0x00,0x7a,0xff,0xcf,0x01,0x8e,0x00,0x7b,0xff,0xcf,0x01,0x8e,0x00,0x7c, +0xff,0xcf,0x01,0x8e,0x00,0x7d,0xff,0xcf,0x01,0x8e,0x00,0x91,0xff,0x9a,0x01,0x8e,0x00,0xa0,0xff,0xb4,0x01,0x8e,0x00,0xa2,0xff,0xa4,0x01,0x8e,0x00,0xaa,0xff,0xcf,0x01,0x8e,0x00,0xab,0x00,0x27,0x01,0x8e,0x00,0xac,0xff,0x7f,0x01,0x8e,0x00,0xad,0xff,0xb6,0x01,0x8e,0x00,0xae,0xff,0xb6,0x01,0x8e,0x00,0xb1,0xff,0xcf,0x01,0x8e, +0x00,0xbe,0xff,0xcf,0x01,0x8e,0x00,0xbf,0x00,0x27,0x01,0x8e,0x00,0xc4,0xff,0x7f,0x01,0x8e,0x00,0xc5,0xff,0x8b,0x01,0x8e,0x00,0xc7,0xff,0xb6,0x01,0x8e,0x00,0xc9,0xff,0xb6,0x01,0x8e,0x00,0xf8,0xff,0xcf,0x01,0x8e,0x00,0xfd,0xff,0xcf,0x01,0x8e,0x00,0xff,0xff,0xcf,0x01,0x8e,0x01,0x00,0xff,0xcf,0x01,0x8e,0x01,0x03,0xff,0xb6, +0x01,0x8e,0x01,0x04,0xff,0xb4,0x01,0x8e,0x01,0x05,0xff,0xb6,0x01,0x8e,0x01,0x06,0xff,0xb4,0x01,0x8e,0x01,0x08,0xff,0xcf,0x01,0x8e,0x01,0x0b,0xff,0xcf,0x01,0x8e,0x01,0x0d,0xff,0xcf,0x01,0x8e,0x01,0x19,0xff,0xcf,0x01,0x8e,0x01,0x20,0x00,0x27,0x01,0x8e,0x01,0x22,0x00,0x27,0x01,0x8e,0x01,0x45,0xff,0xb6,0x01,0x8e,0x01,0x46, +0xff,0xb4,0x01,0x8e,0x01,0x48,0xff,0xcf,0x01,0x8e,0x01,0x4c,0xff,0xcf,0x01,0x8e,0x01,0x4e,0xff,0xcf,0x01,0x8e,0x01,0x50,0xff,0xcf,0x01,0x8e,0x01,0x52,0xff,0xcf,0x01,0x8e,0x01,0x54,0xff,0xcf,0x01,0x8e,0x01,0x56,0xff,0xcf,0x01,0x8e,0x01,0x5c,0x00,0x64,0x01,0x8e,0x01,0x5e,0x00,0x64,0x01,0x8e,0x01,0x60,0x00,0x64,0x01,0x8e, +0x01,0x6f,0xff,0xcf,0x01,0x8e,0x01,0x71,0xff,0xcf,0x01,0x8e,0x01,0x76,0x00,0x27,0x01,0x8e,0x01,0x85,0xff,0xb6,0x01,0x8e,0x01,0x86,0xff,0xb4,0x01,0x8e,0x01,0x87,0xff,0xb6,0x01,0x8e,0x01,0x88,0xff,0xb4,0x01,0x8e,0x01,0x8a,0xff,0xcf,0x01,0x8f,0x00,0x0f,0xff,0xa6,0x01,0x8f,0x00,0x11,0xff,0x9a,0x01,0x8f,0x00,0x46,0xff,0xfa, +0x01,0x8f,0x00,0x47,0xff,0xf6,0x01,0x8f,0x00,0x48,0xff,0xf6,0x01,0x8f,0x00,0x4a,0xff,0xfa,0x01,0x8f,0x00,0x52,0xff,0xfa,0x01,0x8f,0x00,0x54,0xff,0xf6,0x01,0x8f,0x00,0x6f,0xff,0xfa,0x01,0x8f,0x00,0x70,0xff,0xf6,0x01,0x8f,0x00,0x71,0xff,0xf6,0x01,0x8f,0x00,0x72,0xff,0xf6,0x01,0x8f,0x00,0x73,0xff,0xf6,0x01,0x8f,0x00,0x79, +0xff,0xfa,0x01,0x8f,0x00,0x7a,0xff,0xfa,0x01,0x8f,0x00,0x7b,0xff,0xfa,0x01,0x8f,0x00,0x7c,0xff,0xfa,0x01,0x8f,0x00,0x7d,0xff,0xfa,0x01,0x8f,0x00,0xac,0xff,0x9a,0x01,0x8f,0x00,0xb1,0xff,0xfa,0x01,0x8f,0x00,0xc4,0xff,0xb4,0x01,0x8f,0x00,0xc5,0xff,0xb4,0x01,0x8f,0x00,0xf8,0xff,0xfa,0x01,0x8f,0x00,0xfd,0xff,0xfa,0x01,0x8f, +0x00,0xff,0xff,0xfa,0x01,0x8f,0x01,0x00,0xff,0xf6,0x01,0x8f,0x01,0x08,0xff,0xf6,0x01,0x8f,0x01,0x0b,0xff,0xf6,0x01,0x8f,0x01,0x0d,0xff,0xf6,0x01,0x8f,0x01,0x19,0xff,0xfa,0x01,0x8f,0x01,0x48,0xff,0xfa,0x01,0x8f,0x01,0x4c,0xff,0xf6,0x01,0x8f,0x01,0x4e,0xff,0xf6,0x01,0x8f,0x01,0x50,0xff,0xf6,0x01,0x8f,0x01,0x52,0xff,0xfa, +0x01,0x8f,0x01,0x54,0xff,0xfa,0x01,0x8f,0x01,0x56,0xff,0xfa,0x01,0x8f,0x01,0x6f,0xff,0xfa,0x01,0x8f,0x01,0x71,0xff,0xfa,0x01,0x8f,0x01,0x8a,0xff,0xfa,0x01,0x90,0x00,0x0f,0xff,0x8b,0x01,0x90,0x00,0x11,0xff,0x7f,0x01,0x90,0x00,0x24,0xff,0xb6,0x01,0x90,0x00,0x37,0x00,0x27,0x01,0x90,0x00,0x44,0xff,0xb4,0x01,0x90,0x00,0x46, +0xff,0xcf,0x01,0x90,0x00,0x47,0xff,0xcf,0x01,0x90,0x00,0x48,0xff,0xcf,0x01,0x90,0x00,0x4a,0xff,0xcf,0x01,0x90,0x00,0x52,0xff,0xcf,0x01,0x90,0x00,0x54,0xff,0xcf,0x01,0x90,0x00,0x62,0xff,0xb6,0x01,0x90,0x00,0x63,0xff,0xb6,0x01,0x90,0x00,0x69,0xff,0xb4,0x01,0x90,0x00,0x6a,0xff,0xb4,0x01,0x90,0x00,0x6b,0xff,0xb4,0x01,0x90, +0x00,0x6c,0xff,0xb4,0x01,0x90,0x00,0x6d,0xff,0xb4,0x01,0x90,0x00,0x6e,0xff,0xb4,0x01,0x90,0x00,0x6f,0xff,0xcf,0x01,0x90,0x00,0x70,0xff,0xcf,0x01,0x90,0x00,0x71,0xff,0xcf,0x01,0x90,0x00,0x72,0xff,0xcf,0x01,0x90,0x00,0x73,0xff,0xcf,0x01,0x90,0x00,0x76,0x00,0x31,0x01,0x90,0x00,0x77,0x00,0x64,0x01,0x90,0x00,0x79,0xff,0xcf, +0x01,0x90,0x00,0x7a,0xff,0xcf,0x01,0x90,0x00,0x7b,0xff,0xcf,0x01,0x90,0x00,0x7c,0xff,0xcf,0x01,0x90,0x00,0x7d,0xff,0xcf,0x01,0x90,0x00,0x91,0xff,0x9a,0x01,0x90,0x00,0xa0,0xff,0xb4,0x01,0x90,0x00,0xa2,0xff,0xa4,0x01,0x90,0x00,0xaa,0xff,0xcf,0x01,0x90,0x00,0xab,0x00,0x27,0x01,0x90,0x00,0xac,0xff,0x7f,0x01,0x90,0x00,0xad, +0xff,0xb6,0x01,0x90,0x00,0xae,0xff,0xb6,0x01,0x90,0x00,0xb1,0xff,0xcf,0x01,0x90,0x00,0xbe,0xff,0xcf,0x01,0x90,0x00,0xbf,0x00,0x27,0x01,0x90,0x00,0xc4,0xff,0x7f,0x01,0x90,0x00,0xc5,0xff,0x8b,0x01,0x90,0x00,0xc7,0xff,0xb6,0x01,0x90,0x00,0xc9,0xff,0xb6,0x01,0x90,0x00,0xf8,0xff,0xcf,0x01,0x90,0x00,0xfd,0xff,0xcf,0x01,0x90, +0x00,0xff,0xff,0xcf,0x01,0x90,0x01,0x00,0xff,0xcf,0x01,0x90,0x01,0x03,0xff,0xb6,0x01,0x90,0x01,0x04,0xff,0xb4,0x01,0x90,0x01,0x05,0xff,0xb6,0x01,0x90,0x01,0x06,0xff,0xb4,0x01,0x90,0x01,0x08,0xff,0xcf,0x01,0x90,0x01,0x0b,0xff,0xcf,0x01,0x90,0x01,0x0d,0xff,0xcf,0x01,0x90,0x01,0x19,0xff,0xcf,0x01,0x90,0x01,0x20,0x00,0x27, +0x01,0x90,0x01,0x22,0x00,0x27,0x01,0x90,0x01,0x45,0xff,0xb6,0x01,0x90,0x01,0x46,0xff,0xb4,0x01,0x90,0x01,0x48,0xff,0xcf,0x01,0x90,0x01,0x4c,0xff,0xcf,0x01,0x90,0x01,0x4e,0xff,0xcf,0x01,0x90,0x01,0x50,0xff,0xcf,0x01,0x90,0x01,0x52,0xff,0xcf,0x01,0x90,0x01,0x54,0xff,0xcf,0x01,0x90,0x01,0x56,0xff,0xcf,0x01,0x90,0x01,0x5c, +0x00,0x64,0x01,0x90,0x01,0x5e,0x00,0x64,0x01,0x90,0x01,0x60,0x00,0x64,0x01,0x90,0x01,0x6f,0xff,0xcf,0x01,0x90,0x01,0x71,0xff,0xcf,0x01,0x90,0x01,0x76,0x00,0x27,0x01,0x90,0x01,0x85,0xff,0xb6,0x01,0x90,0x01,0x86,0xff,0xb4,0x01,0x90,0x01,0x87,0xff,0xb6,0x01,0x90,0x01,0x88,0xff,0xb4,0x01,0x90,0x01,0x8a,0xff,0xcf,0x01,0x91, +0x00,0x0f,0xff,0xa6,0x01,0x91,0x00,0x11,0xff,0x9a,0x01,0x91,0x00,0x46,0xff,0xfa,0x01,0x91,0x00,0x47,0xff,0xf6,0x01,0x91,0x00,0x48,0xff,0xf6,0x01,0x91,0x00,0x4a,0xff,0xfa,0x01,0x91,0x00,0x52,0xff,0xfa,0x01,0x91,0x00,0x54,0xff,0xf6,0x01,0x91,0x00,0x6f,0xff,0xfa,0x01,0x91,0x00,0x70,0xff,0xf6,0x01,0x91,0x00,0x71,0xff,0xf6, +0x01,0x91,0x00,0x72,0xff,0xf6,0x01,0x91,0x00,0x73,0xff,0xf6,0x01,0x91,0x00,0x79,0xff,0xfa,0x01,0x91,0x00,0x7a,0xff,0xfa,0x01,0x91,0x00,0x7b,0xff,0xfa,0x01,0x91,0x00,0x7c,0xff,0xfa,0x01,0x91,0x00,0x7d,0xff,0xfa,0x01,0x91,0x00,0xac,0xff,0x9a,0x01,0x91,0x00,0xb1,0xff,0xfa,0x01,0x91,0x00,0xc4,0xff,0xb4,0x01,0x91,0x00,0xc5, +0xff,0xb4,0x01,0x91,0x00,0xf8,0xff,0xfa,0x01,0x91,0x00,0xfd,0xff,0xfa,0x01,0x91,0x00,0xff,0xff,0xfa,0x01,0x91,0x01,0x00,0xff,0xf6,0x01,0x91,0x01,0x08,0xff,0xf6,0x01,0x91,0x01,0x0b,0xff,0xf6,0x01,0x91,0x01,0x0d,0xff,0xf6,0x01,0x91,0x01,0x19,0xff,0xfa,0x01,0x91,0x01,0x48,0xff,0xfa,0x01,0x91,0x01,0x4c,0xff,0xf6,0x01,0x91, +0x01,0x4e,0xff,0xf6,0x01,0x91,0x01,0x50,0xff,0xf6,0x01,0x91,0x01,0x52,0xff,0xfa,0x01,0x91,0x01,0x54,0xff,0xfa,0x01,0x91,0x01,0x56,0xff,0xfa,0x01,0x91,0x01,0x6f,0xff,0xfa,0x01,0x91,0x01,0x71,0xff,0xfa,0x01,0x91,0x01,0x8a,0xff,0xfa,0x01,0x92,0x00,0x0f,0xff,0x50,0x01,0x92,0x00,0x11,0xff,0x3d,0x01,0x92,0x00,0x24,0xff,0x62, +0x01,0x92,0x00,0x26,0xff,0xd3,0x01,0x92,0x00,0x2a,0xff,0xd3,0x01,0x92,0x00,0x2d,0xff,0xbe,0x01,0x92,0x00,0x32,0xff,0xd3,0x01,0x92,0x00,0x34,0xff,0xd3,0x01,0x92,0x00,0x36,0xff,0xe5,0x01,0x92,0x00,0x37,0x00,0x27,0x01,0x92,0x00,0x44,0xff,0x39,0x01,0x92,0x00,0x46,0xff,0x4c,0x01,0x92,0x00,0x47,0xff,0x4c,0x01,0x92,0x00,0x48, +0xff,0x4c,0x01,0x92,0x00,0x49,0xff,0xe5,0x01,0x92,0x00,0x4a,0xff,0x4c,0x01,0x92,0x00,0x50,0xff,0x73,0x01,0x92,0x00,0x51,0xff,0x73,0x01,0x92,0x00,0x52,0xff,0x4c,0x01,0x92,0x00,0x53,0xff,0x73,0x01,0x92,0x00,0x54,0xff,0x4c,0x01,0x92,0x00,0x55,0xff,0x73,0x01,0x92,0x00,0x56,0xff,0x7b,0x01,0x92,0x00,0x58,0xff,0x73,0x01,0x92, +0x00,0x62,0xff,0x62,0x01,0x92,0x00,0x63,0xff,0x62,0x01,0x92,0x00,0x64,0xff,0xcd,0x01,0x92,0x00,0x67,0xff,0xd3,0x01,0x92,0x00,0x69,0xff,0x39,0x01,0x92,0x00,0x6a,0xff,0x39,0x01,0x92,0x00,0x6b,0xff,0x39,0x01,0x92,0x00,0x6c,0xff,0x7f,0x01,0x92,0x00,0x6d,0xff,0x66,0x01,0x92,0x00,0x6e,0xff,0x39,0x01,0x92,0x00,0x6f,0xff,0x4c, +0x01,0x92,0x00,0x70,0xff,0x4c,0x01,0x92,0x00,0x71,0xff,0x4c,0x01,0x92,0x00,0x72,0xff,0x4c,0x01,0x92,0x00,0x73,0xff,0x4c,0x01,0x92,0x00,0x77,0x00,0x5a,0x01,0x92,0x00,0x78,0xff,0x73,0x01,0x92,0x00,0x79,0xff,0x4c,0x01,0x92,0x00,0x7a,0xff,0x4c,0x01,0x92,0x00,0x7b,0xff,0x4c,0x01,0x92,0x00,0x7c,0xff,0x4c,0x01,0x92,0x00,0x7d, +0xff,0x4c,0x01,0x92,0x00,0x7e,0xff,0x73,0x01,0x92,0x00,0x7f,0xff,0x73,0x01,0x92,0x00,0x80,0xff,0x73,0x01,0x92,0x00,0x81,0xff,0x73,0x01,0x92,0x00,0x91,0xff,0x3f,0x01,0x92,0x00,0x92,0xff,0xd3,0x01,0x92,0x00,0xa0,0xff,0x39,0x01,0x92,0x00,0xa2,0xff,0x1b,0x01,0x92,0x00,0xaa,0xff,0xcf,0x01,0x92,0x00,0xac,0xff,0x3d,0x01,0x92, +0x00,0xad,0xff,0x62,0x01,0x92,0x00,0xae,0xff,0x62,0x01,0x92,0x00,0xaf,0xff,0xd3,0x01,0x92,0x00,0xb0,0xff,0xd3,0x01,0x92,0x00,0xb1,0xff,0x4c,0x01,0x92,0x00,0xbe,0xff,0x9a,0x01,0x92,0x00,0xc4,0xff,0x08,0x01,0x92,0x00,0xc5,0xff,0x08,0x01,0x92,0x00,0xc7,0xff,0x62,0x01,0x92,0x00,0xc9,0xff,0x62,0x01,0x92,0x00,0xd0,0xff,0xd3, +0x01,0x92,0x00,0xd1,0xff,0xd3,0x01,0x92,0x00,0xd2,0xff,0xd3,0x01,0x92,0x00,0xe3,0xff,0xe5,0x01,0x92,0x00,0xe4,0xff,0x7b,0x01,0x92,0x00,0xf7,0xff,0xd3,0x01,0x92,0x00,0xf8,0xff,0x4c,0x01,0x92,0x00,0xfa,0xff,0xe5,0x01,0x92,0x00,0xfb,0xff,0x7b,0x01,0x92,0x00,0xfc,0xff,0xd3,0x01,0x92,0x00,0xfd,0xff,0x4c,0x01,0x92,0x00,0xfe, +0xff,0xd3,0x01,0x92,0x00,0xff,0xff,0x4c,0x01,0x92,0x01,0x00,0xff,0x4c,0x01,0x92,0x01,0x03,0xff,0x62,0x01,0x92,0x01,0x04,0xff,0x7f,0x01,0x92,0x01,0x05,0xff,0x62,0x01,0x92,0x01,0x06,0xff,0x39,0x01,0x92,0x01,0x08,0xff,0x4c,0x01,0x92,0x01,0x0b,0xff,0x4c,0x01,0x92,0x01,0x0d,0xff,0x4c,0x01,0x92,0x01,0x15,0xff,0x73,0x01,0x92, +0x01,0x17,0xff,0x73,0x01,0x92,0x01,0x18,0xff,0xd3,0x01,0x92,0x01,0x19,0xff,0x4c,0x01,0x92,0x01,0x1b,0xff,0x73,0x01,0x92,0x01,0x1d,0xff,0x73,0x01,0x92,0x01,0x1e,0xff,0xe5,0x01,0x92,0x01,0x1f,0xff,0x7b,0x01,0x92,0x01,0x20,0x00,0x27,0x01,0x92,0x01,0x22,0x00,0x27,0x01,0x92,0x01,0x25,0xff,0x73,0x01,0x92,0x01,0x27,0xff,0x73, +0x01,0x92,0x01,0x45,0xff,0x62,0x01,0x92,0x01,0x46,0xff,0x7f,0x01,0x92,0x01,0x47,0xff,0xd3,0x01,0x92,0x01,0x48,0xff,0x4c,0x01,0x92,0x01,0x4c,0xff,0x4c,0x01,0x92,0x01,0x4e,0xff,0x4c,0x01,0x92,0x01,0x50,0xff,0x4c,0x01,0x92,0x01,0x51,0xff,0xd3,0x01,0x92,0x01,0x52,0xff,0x4c,0x01,0x92,0x01,0x53,0xff,0xd3,0x01,0x92,0x01,0x54, +0xff,0x4c,0x01,0x92,0x01,0x55,0xff,0xd3,0x01,0x92,0x01,0x56,0xff,0x4c,0x01,0x92,0x01,0x5c,0x00,0x5a,0x01,0x92,0x01,0x5e,0x00,0x5a,0x01,0x92,0x01,0x60,0x00,0x5a,0x01,0x92,0x01,0x63,0xff,0xbe,0x01,0x92,0x01,0x6d,0xff,0x73,0x01,0x92,0x01,0x6e,0xff,0xd3,0x01,0x92,0x01,0x6f,0xff,0x4c,0x01,0x92,0x01,0x70,0xff,0xd3,0x01,0x92, +0x01,0x71,0xff,0x4c,0x01,0x92,0x01,0x73,0xff,0x73,0x01,0x92,0x01,0x74,0xff,0xe5,0x01,0x92,0x01,0x75,0xff,0x7b,0x01,0x92,0x01,0x76,0x00,0x27,0x01,0x92,0x01,0x79,0xff,0x73,0x01,0x92,0x01,0x7b,0xff,0x73,0x01,0x92,0x01,0x7d,0xff,0x73,0x01,0x92,0x01,0x7f,0xff,0x73,0x01,0x92,0x01,0x85,0xff,0x62,0x01,0x92,0x01,0x86,0xff,0x7f, +0x01,0x92,0x01,0x87,0xff,0x62,0x01,0x92,0x01,0x88,0xff,0x39,0x01,0x92,0x01,0x89,0xff,0xd3,0x01,0x92,0x01,0x8a,0xff,0x4c,0x01,0x92,0x02,0x3d,0xff,0xe5,0x01,0x92,0x02,0x3e,0xff,0x7b,0x01,0x93,0x00,0x05,0x00,0x1d,0x01,0x93,0x00,0x0a,0x00,0x1d,0x01,0x93,0x00,0x0f,0xff,0x9a,0x01,0x93,0x00,0x11,0xff,0x81,0x01,0x93,0x00,0x22, +0xff,0xb4,0x01,0x93,0x00,0x46,0xff,0xf6,0x01,0x93,0x00,0x47,0xff,0xf6,0x01,0x93,0x00,0x48,0xff,0xf6,0x01,0x93,0x00,0x49,0x00,0x04,0x01,0x93,0x00,0x4a,0xff,0xf6,0x01,0x93,0x00,0x52,0xff,0xf6,0x01,0x93,0x00,0x54,0xff,0xf6,0x01,0x93,0x00,0x57,0x00,0x06,0x01,0x93,0x00,0x6f,0xff,0xf6,0x01,0x93,0x00,0x70,0xff,0xf6,0x01,0x93, +0x00,0x71,0xff,0xf6,0x01,0x93,0x00,0x72,0xff,0xf6,0x01,0x93,0x00,0x73,0xff,0xf6,0x01,0x93,0x00,0x79,0xff,0xf6,0x01,0x93,0x00,0x7a,0xff,0xf6,0x01,0x93,0x00,0x7b,0xff,0xf6,0x01,0x93,0x00,0x7c,0xff,0xf6,0x01,0x93,0x00,0x7d,0xff,0xf6,0x01,0x93,0x00,0xac,0xff,0x81,0x01,0x93,0x00,0xb1,0xff,0xf6,0x01,0x93,0x00,0xbf,0x00,0x0c, +0x01,0x93,0x00,0xc4,0xff,0x8d,0x01,0x93,0x00,0xc5,0xff,0x8d,0x01,0x93,0x00,0xf8,0xff,0xf6,0x01,0x93,0x00,0xfd,0xff,0xf6,0x01,0x93,0x00,0xff,0xff,0xf6,0x01,0x93,0x01,0x00,0xff,0xf6,0x01,0x93,0x01,0x08,0xff,0xf6,0x01,0x93,0x01,0x0b,0xff,0xf6,0x01,0x93,0x01,0x0d,0xff,0xf6,0x01,0x93,0x01,0x19,0xff,0xf6,0x01,0x93,0x01,0x21, +0x00,0x06,0x01,0x93,0x01,0x23,0x00,0x06,0x01,0x93,0x01,0x48,0xff,0xf6,0x01,0x93,0x01,0x4c,0xff,0xf6,0x01,0x93,0x01,0x4e,0xff,0xf6,0x01,0x93,0x01,0x50,0xff,0xf6,0x01,0x93,0x01,0x52,0xff,0xf6,0x01,0x93,0x01,0x54,0xff,0xf6,0x01,0x93,0x01,0x56,0xff,0xf6,0x01,0x93,0x01,0x6f,0xff,0xf6,0x01,0x93,0x01,0x71,0xff,0xf6,0x01,0x93, +0x01,0x77,0x00,0x06,0x01,0x93,0x01,0x8a,0xff,0xf6,0x01,0xa1,0x00,0x0d,0xff,0x7f,0x01,0xa1,0x00,0x8d,0xff,0x98,0x01,0xa1,0x00,0xb4,0xff,0x66,0x01,0xa1,0x00,0xb5,0xff,0x3d,0x01,0xa1,0x00,0xb6,0xff,0x66,0x01,0xa1,0x00,0xb7,0xff,0x3d,0x01,0xa1,0x01,0x2d,0xff,0xe5,0x01,0xa1,0x01,0x2e,0xff,0xcf,0x01,0xa1,0x01,0x33,0xff,0x8f, +0x01,0xa1,0x01,0xb4,0xff,0xe5,0x01,0xa1,0x01,0xb7,0x00,0x3d,0x01,0xa1,0x01,0xb8,0xff,0x6d,0x01,0xa1,0x01,0xb9,0xff,0x64,0x01,0xa1,0x01,0xbb,0xff,0x79,0x01,0xa1,0x01,0xbe,0xff,0x64,0x01,0xa1,0x01,0xc5,0xff,0xaa,0x01,0xa1,0x01,0xc8,0xff,0xe7,0x01,0xa1,0x01,0xd3,0xff,0xcf,0x01,0xa2,0x00,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xa8, +0x00,0x0a,0x01,0xa2,0x01,0xa9,0x00,0x0c,0x01,0xa2,0x01,0xb0,0x00,0x0c,0x01,0xa2,0x01,0xb8,0x00,0x33,0x01,0xa5,0x01,0xa9,0xff,0xe5,0x01,0xa5,0x01,0xb0,0xff,0xe5,0x01,0xa5,0x01,0xb8,0xff,0xa4,0x01,0xa5,0x01,0xb9,0xff,0xe7,0x01,0xa5,0x01,0xbe,0xff,0xe7,0x01,0xa5,0x01,0xcb,0xff,0xd7,0x01,0xa6,0x00,0x04,0xff,0xd7,0x01,0xa6, +0x00,0x11,0xff,0x71,0x01,0xa6,0x00,0x1e,0xff,0x4c,0x01,0xa6,0x00,0xa2,0xff,0xd7,0x01,0xa6,0x00,0xa9,0xff,0x71,0x01,0xa6,0x00,0xac,0xff,0x71,0x01,0xa6,0x01,0x2d,0xff,0xd3,0x01,0xa6,0x01,0x2e,0xff,0xd3,0x01,0xa6,0x01,0x2f,0xff,0x4c,0x01,0xa6,0x01,0x30,0xff,0xc3,0x01,0xa6,0x01,0x31,0xff,0x9c,0x01,0xa6,0x01,0x32,0xff,0x4c, +0x01,0xa6,0x01,0x33,0xff,0xcf,0x01,0xa6,0x01,0x34,0xff,0x4c,0x01,0xa6,0x01,0xa9,0xff,0x60,0x01,0xa6,0x01,0xb0,0xff,0x60,0x01,0xa6,0x01,0xb4,0xff,0xd3,0x01,0xa6,0x01,0xb8,0x00,0x29,0x01,0xa6,0x01,0xbf,0xff,0x4c,0x01,0xa6,0x01,0xc0,0xff,0x9c,0x01,0xa6,0x01,0xc3,0xff,0x9a,0x01,0xa6,0x01,0xc6,0xff,0xc1,0x01,0xa6,0x01,0xc7, +0xff,0x71,0x01,0xa6,0x01,0xc9,0xff,0xd7,0x01,0xa6,0x01,0xca,0xff,0x71,0x01,0xa6,0x01,0xcc,0xff,0x71,0x01,0xa6,0x01,0xce,0xff,0xb0,0x01,0xa6,0x01,0xcf,0xff,0x4c,0x01,0xa6,0x01,0xd0,0xff,0x71,0x01,0xa6,0x01,0xd1,0xff,0x4c,0x01,0xa6,0x01,0xd2,0xff,0x9a,0x01,0xa6,0x01,0xd3,0xff,0xdb,0x01,0xa6,0x01,0xd4,0xff,0x9a,0x01,0xa6, +0x01,0xd5,0xff,0x4c,0x01,0xa6,0x01,0xd7,0xff,0x9a,0x01,0xa6,0x01,0xd8,0xff,0x4c,0x01,0xa6,0x01,0xd9,0xff,0x9a,0x01,0xa6,0x01,0xda,0xff,0x4c,0x01,0xa6,0x02,0x37,0xff,0xcf,0x01,0xa8,0x01,0xcb,0x00,0x6a,0x01,0xa9,0x00,0x0d,0xff,0x7f,0x01,0xa9,0x00,0x0f,0x00,0x46,0x01,0xa9,0x00,0x1e,0x00,0x46,0x01,0xa9,0x00,0x8d,0xff,0x98, +0x01,0xa9,0x00,0xa4,0xff,0xf6,0x01,0xa9,0x00,0xb4,0xff,0x66,0x01,0xa9,0x00,0xb5,0xff,0x3d,0x01,0xa9,0x00,0xb6,0xff,0x66,0x01,0xa9,0x00,0xb7,0xff,0x3d,0x01,0xa9,0x01,0x2d,0xff,0xe5,0x01,0xa9,0x01,0x2e,0xff,0xcf,0x01,0xa9,0x01,0x33,0xff,0x8f,0x01,0xa9,0x01,0xb4,0xff,0xe5,0x01,0xa9,0x01,0xb7,0x00,0x3d,0x01,0xa9,0x01,0xb8, +0xff,0x6d,0x01,0xa9,0x01,0xb9,0xff,0x64,0x01,0xa9,0x01,0xbb,0xff,0x79,0x01,0xa9,0x01,0xbe,0xff,0x64,0x01,0xa9,0x01,0xc5,0xff,0xaa,0x01,0xa9,0x01,0xc8,0xff,0xe7,0x01,0xa9,0x01,0xcb,0x00,0x3d,0x01,0xa9,0x01,0xcd,0xff,0xcf,0x01,0xa9,0x01,0xd3,0xff,0xcf,0x01,0xa9,0x01,0xd4,0xff,0xf6,0x01,0xaa,0x00,0xc4,0xff,0xb0,0x01,0xaa, +0x00,0xc5,0xff,0xb0,0x01,0xaa,0x01,0xb8,0xff,0xa4,0x01,0xaa,0x01,0xb9,0xff,0xbe,0x01,0xaa,0x01,0xbb,0xff,0xe7,0x01,0xaa,0x01,0xbe,0xff,0xbe,0x01,0xaa,0x01,0xd3,0xff,0xe7,0x01,0xab,0x00,0xa9,0x00,0x0c,0x01,0xab,0x01,0xa8,0x00,0x0a,0x01,0xab,0x01,0xa9,0x00,0x0c,0x01,0xab,0x01,0xb0,0x00,0x0c,0x01,0xab,0x01,0xb8,0x00,0x33, +0x01,0xab,0x01,0xba,0x00,0x0a,0x01,0xac,0x00,0xab,0x00,0x29,0x01,0xac,0x00,0xbf,0x00,0x52,0x01,0xac,0x01,0xa8,0x00,0x3d,0x01,0xac,0x01,0xb8,0x00,0x29,0x01,0xac,0x01,0xcb,0x00,0x25,0x01,0xaf,0x00,0x0f,0x00,0x29,0x01,0xaf,0x00,0x1e,0x00,0x29,0x01,0xaf,0x00,0xc4,0x00,0x46,0x01,0xaf,0x00,0xc5,0x00,0x46,0x01,0xaf,0x01,0x2d, +0xff,0xa6,0x01,0xaf,0x01,0x2e,0xff,0x91,0x01,0xaf,0x01,0x2f,0xff,0xe7,0x01,0xaf,0x01,0x30,0xff,0xe7,0x01,0xaf,0x01,0x32,0xff,0xe7,0x01,0xaf,0x01,0x33,0xff,0x9a,0x01,0xaf,0x01,0x34,0xff,0xe7,0x01,0xaf,0x01,0xa8,0x00,0x4a,0x01,0xaf,0x01,0xac,0x00,0x29,0x01,0xaf,0x01,0xb4,0xff,0xa6,0x01,0xaf,0x01,0xb7,0x00,0x3f,0x01,0xaf, +0x01,0xba,0x00,0x25,0x01,0xaf,0x01,0xbb,0xff,0xdb,0x01,0xaf,0x01,0xbf,0xff,0xe7,0x01,0xaf,0x01,0xc2,0xff,0xe7,0x01,0xaf,0x01,0xc3,0xff,0xe7,0x01,0xaf,0x01,0xc5,0xff,0xd1,0x01,0xaf,0x01,0xc8,0xff,0xe7,0x01,0xaf,0x01,0xc9,0xff,0xe7,0x01,0xaf,0x01,0xca,0x00,0x29,0x01,0xaf,0x01,0xcb,0x00,0x3d,0x01,0xaf,0x01,0xcc,0x00,0x29, +0x01,0xaf,0x01,0xcf,0xff,0xe7,0x01,0xaf,0x01,0xd1,0xff,0xe7,0x01,0xaf,0x01,0xd2,0xff,0xe7,0x01,0xaf,0x01,0xd4,0xff,0xe7,0x01,0xaf,0x01,0xd5,0xff,0xe7,0x01,0xaf,0x01,0xd7,0xff,0xe7,0x01,0xaf,0x01,0xd9,0xff,0xe7,0x01,0xaf,0x01,0xda,0xff,0xe7,0x01,0xb0,0x00,0x0d,0xff,0x7f,0x01,0xb0,0x00,0x8d,0xff,0x98,0x01,0xb0,0x00,0xb4, +0xff,0x66,0x01,0xb0,0x00,0xb5,0xff,0x3d,0x01,0xb0,0x00,0xb6,0xff,0x66,0x01,0xb0,0x00,0xb7,0xff,0x3d,0x01,0xb0,0x01,0x2d,0xff,0xe5,0x01,0xb0,0x01,0x2e,0xff,0xcf,0x01,0xb0,0x01,0x33,0xff,0x8f,0x01,0xb0,0x01,0xb4,0xff,0xe5,0x01,0xb0,0x01,0xb7,0x00,0x3d,0x01,0xb0,0x01,0xb8,0xff,0x6d,0x01,0xb0,0x01,0xb9,0xff,0x64,0x01,0xb0, +0x01,0xbb,0xff,0x79,0x01,0xb0,0x01,0xbe,0xff,0x64,0x01,0xb0,0x01,0xc3,0xff,0xf6,0x01,0xb0,0x01,0xc5,0xff,0xaa,0x01,0xb0,0x01,0xc8,0xff,0xe7,0x01,0xb0,0x01,0xcb,0x00,0x3d,0x01,0xb0,0x01,0xcd,0xff,0xcf,0x01,0xb0,0x01,0xd3,0xff,0xcf,0x01,0xb0,0x01,0xd4,0xff,0xf6,0x01,0xb0,0x01,0xd9,0xff,0xf6,0x01,0xb3,0x01,0xa8,0x00,0x3d, +0x01,0xb3,0x01,0xb7,0x00,0x25,0x01,0xb3,0x01,0xcb,0x00,0x3d,0x01,0xb4,0x00,0x0f,0xff,0xa2,0x01,0xb4,0x00,0xa9,0xff,0xcf,0x01,0xb4,0x00,0xc4,0xff,0x4a,0x01,0xb4,0x00,0xc5,0xff,0x96,0x01,0xb4,0x01,0xa9,0xff,0xe5,0x01,0xb4,0x01,0xac,0xff,0xcd,0x01,0xb4,0x01,0xb0,0xff,0xe5,0x01,0xb4,0x01,0xb7,0xff,0xe3,0x01,0xb4,0x01,0xb8, +0xff,0xa4,0x01,0xb4,0x01,0xb9,0xff,0xe7,0x01,0xb4,0x01,0xba,0xff,0xdb,0x01,0xb4,0x01,0xbe,0xff,0xe7,0x01,0xb4,0x01,0xcb,0xff,0xd7,0x01,0xb6,0x00,0x0f,0xfe,0xba,0x01,0xb6,0x00,0x11,0xfe,0xba,0x01,0xb6,0x00,0xa9,0xff,0x58,0x01,0xb6,0x00,0xac,0xfe,0xba,0x01,0xb6,0x00,0xc4,0xfe,0xba,0x01,0xb6,0x00,0xc5,0xfe,0xae,0x01,0xb6, +0x01,0x2f,0xff,0xb2,0x01,0xb6,0x01,0x30,0xff,0xb2,0x01,0xb6,0x01,0x32,0xff,0xb2,0x01,0xb6,0x01,0x34,0xff,0xb2,0x01,0xb6,0x01,0xa9,0xff,0x60,0x01,0xb6,0x01,0xb0,0xff,0x60,0x01,0xb6,0x01,0xba,0xff,0xc3,0x01,0xb6,0x01,0xbf,0xff,0xb2,0x01,0xb6,0x01,0xcb,0xff,0xc3,0x01,0xb6,0x01,0xcf,0xff,0xb2,0x01,0xb6,0x01,0xd0,0xff,0xa0, +0x01,0xb6,0x01,0xd1,0xff,0xc3,0x01,0xb6,0x01,0xd5,0xff,0xc3,0x01,0xb6,0x01,0xd8,0xff,0xb2,0x01,0xb7,0x00,0xa9,0x00,0x3d,0x01,0xb7,0x01,0x2d,0xff,0xe7,0x01,0xb7,0x01,0x2e,0xff,0xe7,0x01,0xb7,0x01,0x33,0xff,0xb6,0x01,0xb7,0x01,0xa9,0x00,0x3d,0x01,0xb7,0x01,0xb0,0x00,0x3d,0x01,0xb7,0x01,0xb3,0x00,0x25,0x01,0xb7,0x01,0xb4, +0xff,0xe7,0x01,0xb7,0x01,0xba,0x00,0x12,0x01,0xb7,0x01,0xcb,0x00,0x3d,0x01,0xb7,0x01,0xd3,0xff,0xdb,0x01,0xb8,0x00,0x0f,0xff,0x7d,0x01,0xb8,0x00,0x11,0xff,0x4c,0x01,0xb8,0x00,0x1d,0xff,0x7d,0x01,0xb8,0x00,0x1e,0xff,0xe9,0x01,0xb8,0x00,0x8d,0x00,0x52,0x01,0xb8,0x00,0xa9,0xff,0x6d,0x01,0xb8,0x00,0xaa,0xff,0x98,0x01,0xb8, +0x00,0xab,0xff,0xcd,0x01,0xb8,0x00,0xac,0xff,0x4c,0x01,0xb8,0x00,0xb5,0x00,0x29,0x01,0xb8,0x00,0xb7,0x00,0x29,0x01,0xb8,0x00,0xbe,0xff,0x98,0x01,0xb8,0x00,0xbf,0xff,0xcd,0x01,0xb8,0x00,0xc4,0xff,0x14,0x01,0xb8,0x00,0xc5,0xff,0x14,0x01,0xb8,0x01,0x2d,0xff,0xa4,0x01,0xb8,0x01,0x2e,0xff,0xa4,0x01,0xb8,0x01,0x2f,0xff,0x2b, +0x01,0xb8,0x01,0x30,0xff,0xb0,0x01,0xb8,0x01,0x31,0xff,0x2b,0x01,0xb8,0x01,0x32,0xff,0x2b,0x01,0xb8,0x01,0x33,0xff,0x8f,0x01,0xb8,0x01,0x34,0xff,0x2b,0x01,0xb8,0x01,0xa8,0x00,0x7b,0x01,0xb8,0x01,0xa9,0xff,0x66,0x01,0xb8,0x01,0xb0,0xff,0x66,0x01,0xb8,0x01,0xb4,0xff,0xa4,0x01,0xb8,0x01,0xb8,0x00,0x29,0x01,0xb8,0x01,0xb9, +0x00,0x1d,0x01,0xb8,0x01,0xba,0xff,0xf8,0x01,0xb8,0x01,0xbe,0x00,0x1d,0x01,0xb8,0x01,0xbf,0xff,0x2b,0x01,0xb8,0x01,0xc0,0xff,0x2b,0x01,0xb8,0x01,0xc1,0xff,0x4e,0x01,0xb8,0x01,0xc2,0xff,0x8f,0x01,0xb8,0x01,0xc3,0xff,0x4e,0x01,0xb8,0x01,0xc5,0xff,0xc1,0x01,0xb8,0x01,0xc6,0xff,0xc1,0x01,0xb8,0x01,0xc7,0xff,0x4e,0x01,0xb8, +0x01,0xc9,0xff,0x4e,0x01,0xb8,0x01,0xca,0xff,0x4e,0x01,0xb8,0x01,0xcc,0xff,0x4e,0x01,0xb8,0x01,0xce,0xff,0xb0,0x01,0xb8,0x01,0xcf,0xff,0x2b,0x01,0xb8,0x01,0xd0,0xff,0x4e,0x01,0xb8,0x01,0xd1,0xff,0x2b,0x01,0xb8,0x01,0xd2,0xff,0x4e,0x01,0xb8,0x01,0xd3,0xff,0x7f,0x01,0xb8,0x01,0xd4,0xff,0x4e,0x01,0xb8,0x01,0xd5,0xff,0x2b, +0x01,0xb8,0x01,0xd6,0x00,0x52,0x01,0xb8,0x01,0xd7,0xff,0x4e,0x01,0xb8,0x01,0xd8,0xff,0x2b,0x01,0xb8,0x01,0xd9,0xff,0x4e,0x01,0xb8,0x01,0xda,0xff,0x2b,0x01,0xb8,0x02,0x37,0xff,0x8f,0x01,0xb9,0x00,0x0f,0xff,0x50,0x01,0xb9,0x00,0x11,0xff,0x3d,0x01,0xb9,0x00,0x1e,0xff,0x4c,0x01,0xb9,0x00,0xa2,0xff,0x19,0x01,0xb9,0x00,0xa9, +0xff,0x71,0x01,0xb9,0x00,0xaa,0xff,0xcd,0x01,0xb9,0x00,0xac,0xff,0x3d,0x01,0xb9,0x00,0xbe,0xff,0x98,0x01,0xb9,0x00,0xc4,0xff,0x06,0x01,0xb9,0x00,0xc5,0xff,0x06,0x01,0xb9,0x01,0x2d,0xff,0xd3,0x01,0xb9,0x01,0x2e,0xff,0xd3,0x01,0xb9,0x01,0x2f,0xff,0x4c,0x01,0xb9,0x01,0x30,0xff,0xc3,0x01,0xb9,0x01,0x31,0xff,0x9c,0x01,0xb9, +0x01,0x32,0xff,0x4c,0x01,0xb9,0x01,0x33,0xff,0xcf,0x01,0xb9,0x01,0x34,0xff,0x4c,0x01,0xb9,0x01,0xa8,0x00,0x5c,0x01,0xb9,0x01,0xa9,0xff,0x60,0x01,0xb9,0x01,0xb0,0xff,0x60,0x01,0xb9,0x01,0xb4,0xff,0xd3,0x01,0xb9,0x01,0xb8,0x00,0x29,0x01,0xb9,0x01,0xbf,0xff,0x4c,0x01,0xb9,0x01,0xc0,0xff,0x9c,0x01,0xb9,0x01,0xc2,0xff,0x9a, +0x01,0xb9,0x01,0xc3,0xff,0x9a,0x01,0xb9,0x01,0xc6,0xff,0xc1,0x01,0xb9,0x01,0xc7,0xff,0x71,0x01,0xb9,0x01,0xc9,0xff,0x9a,0x01,0xb9,0x01,0xca,0xff,0x71,0x01,0xb9,0x01,0xcc,0xff,0x71,0x01,0xb9,0x01,0xce,0xff,0xb0,0x01,0xb9,0x01,0xcf,0xff,0x4c,0x01,0xb9,0x01,0xd0,0xff,0x71,0x01,0xb9,0x01,0xd1,0xff,0x4c,0x01,0xb9,0x01,0xd2, +0xff,0x9a,0x01,0xb9,0x01,0xd3,0xff,0xdb,0x01,0xb9,0x01,0xd4,0xff,0x9a,0x01,0xb9,0x01,0xd5,0xff,0x4c,0x01,0xb9,0x01,0xd6,0x00,0x29,0x01,0xb9,0x01,0xd7,0xff,0x9a,0x01,0xb9,0x01,0xd8,0xff,0x4c,0x01,0xb9,0x01,0xd9,0xff,0x9a,0x01,0xb9,0x01,0xda,0xff,0x4c,0x01,0xb9,0x02,0x37,0xff,0xcf,0x01,0xba,0x00,0x0f,0x00,0x46,0x01,0xba, +0x00,0x10,0xff,0xe7,0x01,0xba,0x00,0x11,0x00,0x39,0x01,0xba,0x00,0x1e,0x00,0x52,0x01,0xba,0x00,0xa9,0x00,0x3d,0x01,0xba,0x00,0xac,0x00,0x39,0x01,0xba,0x00,0xc4,0x00,0x46,0x01,0xba,0x00,0xc5,0x00,0x52,0x01,0xba,0x01,0x2d,0xff,0xe7,0x01,0xba,0x01,0x2e,0xff,0xe7,0x01,0xba,0x01,0x33,0xff,0xc3,0x01,0xba,0x01,0xa8,0x00,0x52, +0x01,0xba,0x01,0xb4,0xff,0xe7,0x01,0xba,0x01,0xb7,0x00,0x12,0x01,0xba,0x01,0xb8,0x00,0x23,0x01,0xba,0x01,0xc2,0xff,0xe7,0x01,0xba,0x01,0xc3,0xff,0xe7,0x01,0xba,0x01,0xc9,0xff,0xe7,0x01,0xba,0x01,0xd2,0xff,0xe7,0x01,0xba,0x01,0xd4,0xff,0xe7,0x01,0xba,0x01,0xd6,0x00,0x0a,0x01,0xba,0x01,0xd7,0xff,0xe7,0x01,0xba,0x01,0xd9, +0xff,0xe7,0x01,0xbb,0x00,0xa9,0xff,0x71,0x01,0xbb,0x01,0x2f,0xff,0xe7,0x01,0xbb,0x01,0x30,0xff,0xe7,0x01,0xbb,0x01,0x32,0xff,0xe7,0x01,0xbb,0x01,0x34,0xff,0xe7,0x01,0xbb,0x01,0xa9,0xff,0x6d,0x01,0xbb,0x01,0xb0,0xff,0x6d,0x01,0xbb,0x01,0xbf,0xff,0xe7,0x01,0xbb,0x01,0xcf,0xff,0xe7,0x01,0xbb,0x01,0xd1,0xff,0xe7,0x01,0xbb, +0x01,0xd5,0xff,0xe7,0x01,0xbb,0x01,0xd8,0xff,0xe7,0x01,0xbb,0x01,0xda,0xff,0xe7,0x01,0xbc,0x00,0xa9,0x00,0x12,0x01,0xbe,0x00,0x04,0xff,0xd7,0x01,0xbe,0x00,0x11,0xff,0x71,0x01,0xbe,0x00,0x1e,0xff,0x4c,0x01,0xbe,0x00,0xa2,0xff,0xd7,0x01,0xbe,0x00,0xa9,0xff,0x71,0x01,0xbe,0x00,0xac,0xff,0x71,0x01,0xbe,0x01,0x2d,0xff,0xd3, +0x01,0xbe,0x01,0x2e,0xff,0xd3,0x01,0xbe,0x01,0x2f,0xff,0x4c,0x01,0xbe,0x01,0x30,0xff,0xc3,0x01,0xbe,0x01,0x31,0xff,0x9c,0x01,0xbe,0x01,0x32,0xff,0x4c,0x01,0xbe,0x01,0x33,0xff,0xcf,0x01,0xbe,0x01,0x34,0xff,0x4c,0x01,0xbe,0x01,0xa9,0xff,0x60,0x01,0xbe,0x01,0xb0,0xff,0x60,0x01,0xbe,0x01,0xb4,0xff,0xd3,0x01,0xbe,0x01,0xb8, +0x00,0x29,0x01,0xbe,0x01,0xbf,0xff,0x4c,0x01,0xbe,0x01,0xc0,0xff,0x9c,0x01,0xbe,0x01,0xc3,0xff,0x9a,0x01,0xbe,0x01,0xc6,0xff,0xc1,0x01,0xbe,0x01,0xc7,0xff,0x71,0x01,0xbe,0x01,0xc9,0xff,0xd7,0x01,0xbe,0x01,0xca,0xff,0x71,0x01,0xbe,0x01,0xcc,0xff,0x71,0x01,0xbe,0x01,0xce,0xff,0xb0,0x01,0xbe,0x01,0xcf,0xff,0x4c,0x01,0xbe, +0x01,0xd0,0xff,0x71,0x01,0xbe,0x01,0xd1,0xff,0x4c,0x01,0xbe,0x01,0xd2,0xff,0x9a,0x01,0xbe,0x01,0xd3,0xff,0xdb,0x01,0xbe,0x01,0xd4,0xff,0x9a,0x01,0xbe,0x01,0xd5,0xff,0x4c,0x01,0xbe,0x01,0xd7,0xff,0x9a,0x01,0xbe,0x01,0xd8,0xff,0x4c,0x01,0xbe,0x01,0xd9,0xff,0x9a,0x01,0xbe,0x01,0xda,0xff,0x4c,0x01,0xbe,0x02,0x37,0xff,0xcf, +0x01,0xbf,0x00,0x1e,0xff,0xee,0x01,0xbf,0x01,0x2f,0xff,0xee,0x01,0xbf,0x01,0x30,0xff,0xee,0x01,0xbf,0x01,0x32,0xff,0xee,0x01,0xbf,0x01,0x34,0xff,0xee,0x01,0xbf,0x01,0xcf,0xff,0xee,0x01,0xbf,0x01,0xd1,0xff,0xee,0x01,0xbf,0x01,0xd5,0xff,0xee,0x01,0xc1,0x00,0x05,0xff,0x98,0x01,0xc1,0x00,0x0a,0xff,0x98,0x01,0xc2,0x01,0xcb, +0x00,0x6a,0x01,0xc3,0x00,0x05,0xff,0x6f,0x01,0xc3,0x00,0x0a,0xff,0x6f,0x01,0xc3,0x01,0xc5,0xff,0xdb,0x01,0xc3,0x01,0xcb,0xff,0xe7,0x01,0xc3,0x01,0xd3,0xff,0xe7,0x01,0xc4,0x01,0x33,0xff,0xd1,0x01,0xc4,0x01,0xd3,0xff,0xc1,0x01,0xc5,0x01,0x30,0xff,0xe5,0x01,0xc5,0x01,0x33,0x00,0x19,0x01,0xc5,0x01,0xc8,0x00,0x19,0x01,0xc5, +0x01,0xd0,0xff,0xe7,0x01,0xc5,0x02,0x37,0x00,0x19,0x01,0xc6,0x01,0x2f,0xff,0xb6,0x01,0xc6,0x01,0x30,0xff,0xb6,0x01,0xc6,0x01,0x32,0xff,0xb6,0x01,0xc6,0x01,0x33,0xff,0x81,0x01,0xc6,0x01,0x34,0xff,0xb6,0x01,0xc6,0x01,0xa8,0x00,0x3d,0x01,0xc6,0x01,0xbf,0xff,0xb6,0x01,0xc6,0x01,0xc3,0xff,0xe7,0x01,0xc6,0x01,0xc5,0xff,0xc3, +0x01,0xc6,0x01,0xcd,0xff,0x8f,0x01,0xc6,0x01,0xcf,0xff,0xb6,0x01,0xc6,0x01,0xd1,0xff,0xb6,0x01,0xc6,0x01,0xd2,0xff,0xe7,0x01,0xc6,0x01,0xd4,0xff,0xc3,0x01,0xc6,0x01,0xd5,0xff,0xb6,0x01,0xc6,0x01,0xd7,0xff,0xe7,0x01,0xc6,0x01,0xd8,0xff,0xb6,0x01,0xc6,0x01,0xd9,0xff,0xe7,0x01,0xc7,0x00,0x05,0xff,0x98,0x01,0xc7,0x00,0x0a, +0xff,0x98,0x01,0xc9,0x01,0xcb,0x00,0x6a,0x01,0xca,0x00,0x0f,0x00,0x29,0x01,0xca,0x00,0x10,0xff,0xb8,0x01,0xca,0x00,0x11,0x00,0x29,0x01,0xca,0x00,0x1d,0x00,0x52,0x01,0xca,0x00,0x1e,0x00,0x52,0x01,0xca,0x00,0xac,0x00,0x29,0x01,0xca,0x01,0x2f,0xff,0xd7,0x01,0xca,0x01,0x30,0xff,0xd7,0x01,0xca,0x01,0x32,0xff,0xd7,0x01,0xca, +0x01,0x34,0xff,0xd7,0x01,0xca,0x01,0xbf,0xff,0xd7,0x01,0xca,0x01,0xcb,0x00,0x31,0x01,0xca,0x01,0xcf,0xff,0xd7,0x01,0xca,0x01,0xd1,0xff,0xd7,0x01,0xca,0x01,0xd5,0xff,0xd7,0x01,0xca,0x01,0xd8,0xff,0xd7,0x01,0xca,0x01,0xda,0xff,0xd7,0x01,0xcb,0x01,0x33,0xff,0xb0,0x01,0xcb,0x01,0xc3,0xff,0xdb,0x01,0xcb,0x01,0xcb,0x00,0x31, +0x01,0xcb,0x01,0xcd,0xff,0xd1,0x01,0xcb,0x01,0xd2,0xff,0xdb,0x01,0xcb,0x01,0xd3,0xff,0xcf,0x01,0xcb,0x01,0xd4,0xff,0xdb,0x01,0xcb,0x01,0xd7,0xff,0xdb,0x01,0xcb,0x01,0xd9,0xff,0xdb,0x01,0xcd,0x01,0x2f,0xff,0xd7,0x01,0xcd,0x01,0x30,0xff,0xd7,0x01,0xcd,0x01,0x32,0xff,0xd7,0x01,0xcd,0x01,0x34,0xff,0xd7,0x01,0xcd,0x01,0xbf, +0xff,0xd7,0x01,0xcd,0x01,0xcb,0xff,0xb6,0x01,0xcd,0x01,0xce,0xff,0xe7,0x01,0xcd,0x01,0xcf,0xff,0xd7,0x01,0xcd,0x01,0xd0,0xff,0xdb,0x01,0xcd,0x01,0xd1,0xff,0xec,0x01,0xcd,0x01,0xd5,0xff,0xd7,0x01,0xcd,0x01,0xd8,0xff,0xd7,0x01,0xcd,0x01,0xda,0xff,0xd7,0x01,0xce,0x01,0x2f,0xff,0xd7,0x01,0xce,0x01,0x30,0xff,0xd7,0x01,0xce, +0x01,0x32,0xff,0xd7,0x01,0xce,0x01,0x34,0xff,0xd7,0x01,0xce,0x01,0xbf,0xff,0xd7,0x01,0xce,0x01,0xcf,0xff,0xd7,0x01,0xce,0x01,0xd5,0xff,0xd7,0x01,0xce,0x01,0xda,0xff,0xd7,0x01,0xcf,0x00,0x05,0xff,0x6f,0x01,0xcf,0x00,0x0a,0xff,0x6f,0x01,0xcf,0x00,0xb4,0xff,0xb0,0x01,0xcf,0x00,0xb5,0xff,0x7b,0x01,0xcf,0x00,0xb6,0xff,0xbc, +0x01,0xcf,0x00,0xb7,0xff,0x7b,0x01,0xcf,0x01,0x33,0xff,0xdb,0x01,0xcf,0x01,0xc5,0xff,0xdb,0x01,0xcf,0x01,0xd3,0xff,0xc3,0x01,0xcf,0x02,0x37,0xff,0xdb,0x01,0xd0,0x00,0x05,0xff,0x6f,0x01,0xd0,0x00,0x0a,0xff,0x6f,0x01,0xd0,0x00,0xb4,0xff,0xb0,0x01,0xd0,0x00,0xb5,0xff,0x7b,0x01,0xd0,0x00,0xb6,0xff,0xbc,0x01,0xd0,0x00,0xb7, +0xff,0x7b,0x01,0xd0,0x01,0x33,0xff,0xdb,0x01,0xd0,0x01,0xc5,0xff,0xe7,0x01,0xd0,0x01,0xd3,0xff,0xc3,0x01,0xd0,0x02,0x37,0xff,0xdb,0x01,0xd1,0x01,0x2f,0xff,0xc3,0x01,0xd1,0x01,0x30,0xff,0xc3,0x01,0xd1,0x01,0x32,0xff,0xc3,0x01,0xd1,0x01,0x34,0xff,0xc3,0x01,0xd1,0x01,0xbf,0xff,0xc3,0x01,0xd1,0x01,0xcb,0x00,0x25,0x01,0xd1, +0x01,0xcf,0xff,0xc3,0x01,0xd1,0x01,0xd8,0xff,0xc3,0x01,0xd1,0x01,0xda,0xff,0xc3,0x01,0xd2,0x00,0x05,0xff,0x6f,0x01,0xd2,0x00,0x0a,0xff,0x6f,0x01,0xd2,0x00,0xb4,0xff,0xb0,0x01,0xd2,0x00,0xb5,0xff,0x7b,0x01,0xd2,0x00,0xb6,0xff,0xbc,0x01,0xd2,0x00,0xb7,0xff,0x7b,0x01,0xd2,0x01,0x33,0xff,0xdb,0x01,0xd2,0x01,0xc5,0xff,0xdb, +0x01,0xd2,0x01,0xcb,0xff,0xe7,0x01,0xd2,0x01,0xd3,0xff,0xe7,0x01,0xd2,0x02,0x37,0xff,0xdb,0x01,0xd3,0x00,0x10,0xff,0xe7,0x01,0xd3,0x01,0x2f,0xff,0xc3,0x01,0xd3,0x01,0x30,0xff,0x9c,0x01,0xd3,0x01,0x31,0xff,0xd7,0x01,0xd3,0x01,0x32,0xff,0xc3,0x01,0xd3,0x01,0x34,0xff,0xc3,0x01,0xd3,0x01,0xbf,0xff,0xc3,0x01,0xd3,0x01,0xc0, +0xff,0xd7,0x01,0xd3,0x01,0xc3,0xff,0xe7,0x01,0xd3,0x01,0xcb,0xff,0xe7,0x01,0xd3,0x01,0xcf,0xff,0xc3,0x01,0xd3,0x01,0xd1,0xff,0xbe,0x01,0xd3,0x01,0xd2,0xff,0xe7,0x01,0xd3,0x01,0xd3,0x00,0x19,0x01,0xd3,0x01,0xd5,0xff,0xc3,0x01,0xd3,0x01,0xd7,0xff,0xe7,0x01,0xd3,0x01,0xd8,0xff,0xc3,0x01,0xd3,0x01,0xd9,0xff,0xe7,0x01,0xd3, +0x01,0xda,0xff,0xc3,0x01,0xd4,0x01,0xcb,0xff,0xe7,0x01,0xd5,0x00,0x05,0xff,0x6f,0x01,0xd5,0x00,0x0a,0xff,0x6f,0x01,0xd5,0x00,0xb4,0xff,0xb0,0x01,0xd5,0x00,0xb5,0xff,0x7b,0x01,0xd5,0x00,0xb6,0xff,0xbc,0x01,0xd5,0x00,0xb7,0xff,0x7b,0x01,0xd5,0x01,0x33,0xff,0xdb,0x01,0xd5,0x01,0xc5,0xff,0xdb,0x01,0xd5,0x01,0xd3,0xff,0xe7, +0x01,0xd5,0x02,0x37,0xff,0xdb,0x01,0xd6,0x01,0xcb,0x00,0x6a,0x01,0xd7,0x00,0x05,0xff,0x6f,0x01,0xd7,0x00,0x0a,0xff,0x6f,0x01,0xd7,0x00,0xb4,0xff,0xb0,0x01,0xd7,0x00,0xb5,0xff,0x7b,0x01,0xd7,0x00,0xb6,0xff,0xbc,0x01,0xd7,0x00,0xb7,0xff,0x7b,0x01,0xd7,0x01,0xc5,0xff,0xdb,0x01,0xd7,0x01,0xcb,0xff,0xe7,0x01,0xd7,0x01,0xd3, +0xff,0xe7,0x01,0xd8,0x00,0x05,0xff,0x6f,0x01,0xd8,0x00,0x0a,0xff,0x6f,0x01,0xd8,0x00,0xb4,0xff,0xb0,0x01,0xd8,0x00,0xb5,0xff,0x7b,0x01,0xd8,0x00,0xb6,0xff,0xbc,0x01,0xd8,0x00,0xb7,0xff,0x7b,0x01,0xd8,0x01,0xc5,0xff,0xdb,0x01,0xd8,0x01,0xd3,0xff,0xc3,0x01,0xd9,0x00,0x05,0xff,0x6f,0x01,0xd9,0x00,0x0a,0xff,0x6f,0x01,0xd9, +0x00,0xb4,0xff,0xb0,0x01,0xd9,0x00,0xb5,0xff,0x7b,0x01,0xd9,0x00,0xb6,0xff,0xbc,0x01,0xd9,0x00,0xb7,0xff,0x7b,0x01,0xd9,0x01,0xc5,0xff,0xdb,0x01,0xd9,0x01,0xcb,0xff,0xe7,0x01,0xd9,0x01,0xd3,0xff,0xe7,0x01,0xda,0x00,0x05,0xff,0x6f,0x01,0xda,0x00,0x0a,0xff,0x6f,0x01,0xda,0x00,0xb4,0xff,0xb0,0x01,0xda,0x00,0xb5,0xff,0x7b, +0x01,0xda,0x00,0xb6,0xff,0xbc,0x01,0xda,0x00,0xb7,0xff,0x7b,0x01,0xda,0x01,0xc5,0xff,0xdb,0x01,0xda,0x01,0xd3,0xff,0xe7,0x01,0xdb,0x01,0xe1,0x00,0x46,0x01,0xdb,0x01,0xe7,0x00,0x0c,0x01,0xdb,0x01,0xeb,0x00,0x46,0x01,0xdb,0x01,0xed,0x00,0x14,0x01,0xdb,0x01,0xf2,0x00,0x46,0x01,0xdb,0x01,0xfc,0x00,0x0a,0x01,0xdc,0x01,0xdc, +0xff,0x79,0x01,0xdc,0x01,0xde,0xff,0xcf,0x01,0xdc,0x01,0xe1,0x00,0x29,0x01,0xdc,0x01,0xe3,0xff,0x79,0x01,0xdc,0x01,0xe5,0xff,0xee,0x01,0xdc,0x01,0xeb,0x00,0x29,0x01,0xdc,0x01,0xf2,0x00,0x29,0x01,0xdc,0x01,0xf5,0xff,0xcf,0x01,0xdc,0x01,0xf8,0xff,0xcf,0x01,0xdc,0x01,0xf9,0xff,0x79,0x01,0xdc,0x01,0xfa,0xff,0xee,0x01,0xdc, +0x01,0xfb,0xff,0xc3,0x01,0xdc,0x01,0xfe,0xff,0x60,0x01,0xdc,0x02,0x01,0xff,0x79,0x01,0xdc,0x02,0x19,0xff,0xcf,0x01,0xdc,0x02,0x1a,0xff,0xe7,0x01,0xdc,0x02,0x31,0xff,0xe7,0x01,0xdd,0x00,0x0f,0xff,0x83,0x01,0xdd,0x00,0x11,0xff,0x83,0x01,0xdd,0x00,0xaa,0xff,0x91,0x01,0xdd,0x00,0xab,0xff,0xd7,0x01,0xdd,0x00,0xac,0xff,0x83, +0x01,0xdd,0x01,0xdc,0x00,0x29,0x01,0xdd,0x01,0xde,0xff,0xa2,0x01,0xdd,0x01,0xe1,0xff,0xa2,0x01,0xdd,0x01,0xe3,0x00,0x29,0x01,0xdd,0x01,0xe5,0x00,0x1d,0x01,0xdd,0x01,0xe7,0xff,0x71,0x01,0xdd,0x01,0xeb,0xff,0xa2,0x01,0xdd,0x01,0xf2,0xff,0xa2,0x01,0xdd,0x01,0xf5,0xff,0xcf,0x01,0xdd,0x01,0xf8,0xff,0xcf,0x01,0xdd,0x01,0xf9, +0x00,0x29,0x01,0xdd,0x01,0xfa,0x00,0x1d,0x01,0xdd,0x01,0xfb,0xff,0xa2,0x01,0xdd,0x02,0x01,0x00,0x29,0x01,0xdd,0x02,0x06,0xff,0xe7,0x01,0xdd,0x02,0x07,0xff,0x27,0x01,0xdd,0x02,0x09,0xff,0x4e,0x01,0xdd,0x02,0x0a,0xff,0x4e,0x01,0xdd,0x02,0x0b,0xff,0x9e,0x01,0xdd,0x02,0x0c,0xff,0x2b,0x01,0xdd,0x02,0x0f,0xff,0x4e,0x01,0xdd, +0x02,0x10,0xff,0x4e,0x01,0xdd,0x02,0x11,0xff,0x4e,0x01,0xdd,0x02,0x12,0xff,0x9e,0x01,0xdd,0x02,0x13,0xff,0x4e,0x01,0xdd,0x02,0x14,0xff,0x4e,0x01,0xdd,0x02,0x15,0xff,0x2b,0x01,0xdd,0x02,0x16,0xff,0x4e,0x01,0xdd,0x02,0x17,0xff,0x4e,0x01,0xdd,0x02,0x18,0xff,0x2b,0x01,0xdd,0x02,0x19,0xff,0xc3,0x01,0xdd,0x02,0x1b,0xff,0x2b, +0x01,0xdd,0x02,0x1c,0xff,0x4c,0x01,0xdd,0x02,0x1d,0xff,0x4e,0x01,0xdd,0x02,0x1e,0xff,0x4e,0x01,0xdd,0x02,0x1f,0xff,0x4e,0x01,0xdd,0x02,0x20,0xff,0x4e,0x01,0xdd,0x02,0x21,0xff,0xc3,0x01,0xdd,0x02,0x22,0xff,0x4e,0x01,0xdd,0x02,0x23,0xff,0x4e,0x01,0xdd,0x02,0x24,0xff,0x60,0x01,0xdd,0x02,0x25,0xff,0x4e,0x01,0xdd,0x02,0x26, +0xff,0x54,0x01,0xdd,0x02,0x27,0xff,0x2b,0x01,0xdd,0x02,0x29,0xff,0x4e,0x01,0xdd,0x02,0x2a,0xff,0x2b,0x01,0xdd,0x02,0x2b,0xff,0x66,0x01,0xdd,0x02,0x2c,0x00,0x6f,0x01,0xdd,0x02,0x2d,0xff,0x9e,0x01,0xdd,0x02,0x2e,0xff,0x4e,0x01,0xdd,0x02,0x32,0xff,0x4e,0x01,0xdd,0x02,0x34,0xff,0x4e,0x01,0xde,0x00,0xaa,0xff,0xcd,0x01,0xde, +0x00,0xbe,0xff,0xcd,0x01,0xde,0x01,0xde,0xff,0xc9,0x01,0xde,0x01,0xf5,0xff,0xc9,0x01,0xde,0x01,0xf8,0xff,0xc9,0x01,0xde,0x01,0xfb,0xff,0xc9,0x01,0xde,0x02,0x19,0xff,0xdb,0x01,0xde,0x02,0x21,0xff,0xdb,0x01,0xde,0x02,0x2c,0x00,0x1f,0x01,0xdf,0x00,0xc4,0xff,0xb0,0x01,0xdf,0x00,0xc5,0xff,0xb0,0x01,0xdf,0x01,0xf5,0xff,0xe7, +0x01,0xdf,0x01,0xfb,0xff,0xdb,0x01,0xdf,0x01,0xfe,0xff,0xdb,0x01,0xdf,0x02,0x1a,0xff,0xcf,0x01,0xdf,0x02,0x31,0xff,0xcf,0x01,0xe1,0x01,0xdc,0xff,0x79,0x01,0xe1,0x01,0xde,0xff,0xe7,0x01,0xe1,0x01,0xe3,0xff,0x79,0x01,0xe1,0x01,0xf5,0xff,0xe7,0x01,0xe1,0x01,0xf8,0xff,0xe7,0x01,0xe1,0x01,0xf9,0xff,0x79,0x01,0xe1,0x01,0xfb, +0xff,0xe7,0x01,0xe1,0x01,0xfe,0xff,0x62,0x01,0xe1,0x02,0x01,0xff,0x79,0x01,0xe1,0x02,0x19,0xff,0xcf,0x01,0xe1,0x02,0x21,0xff,0xcf,0x01,0xe2,0x01,0xdc,0xff,0x79,0x01,0xe2,0x01,0xde,0xff,0xe7,0x01,0xe2,0x01,0xe3,0xff,0x79,0x01,0xe2,0x01,0xf5,0xff,0xe7,0x01,0xe2,0x01,0xf8,0xff,0xe7,0x01,0xe2,0x01,0xf9,0xff,0x79,0x01,0xe2, +0x01,0xfb,0xff,0xe7,0x01,0xe2,0x01,0xfe,0xff,0x62,0x01,0xe2,0x02,0x01,0xff,0x79,0x01,0xe2,0x02,0x19,0xff,0xcf,0x01,0xe2,0x02,0x21,0xff,0xcf,0x01,0xe3,0x01,0xdc,0xff,0x79,0x01,0xe3,0x01,0xe1,0x00,0x3d,0x01,0xe3,0x01,0xe3,0xff,0x58,0x01,0xe3,0x01,0xeb,0x00,0x3d,0x01,0xe3,0x01,0xf2,0x00,0x3d,0x01,0xe3,0x01,0xfb,0xff,0xe7, +0x01,0xe3,0x01,0xfe,0xff,0x4e,0x01,0xe3,0x02,0x01,0xff,0xae,0x01,0xe4,0x00,0x0f,0x00,0x29,0x01,0xe4,0x00,0x1e,0x00,0x29,0x01,0xe4,0x00,0xc4,0x00,0x46,0x01,0xe4,0x00,0xc5,0x00,0x46,0x01,0xe4,0x01,0xde,0xff,0xa4,0x01,0xe4,0x01,0xe1,0x00,0x5c,0x01,0xe4,0x01,0xeb,0x00,0x5c,0x01,0xe4,0x01,0xed,0x00,0x62,0x01,0xe4,0x01,0xf2, +0x00,0x5c,0x01,0xe4,0x01,0xf5,0xff,0xa4,0x01,0xe4,0x01,0xf8,0xff,0xa4,0x01,0xe4,0x01,0xfb,0xff,0xa4,0x01,0xe4,0x01,0xfc,0x00,0x25,0x01,0xe4,0x01,0xfe,0xff,0xc3,0x01,0xe4,0x02,0x08,0xff,0xe5,0x01,0xe4,0x02,0x0b,0x00,0x62,0x01,0xe4,0x02,0x0c,0xff,0xe5,0x01,0xe4,0x02,0x0d,0x00,0x3d,0x01,0xe4,0x02,0x12,0x00,0x62,0x01,0xe4, +0x02,0x15,0xff,0xe5,0x01,0xe4,0x02,0x18,0xff,0xe5,0x01,0xe4,0x02,0x1a,0xff,0xa2,0x01,0xe4,0x02,0x1b,0xff,0xe5,0x01,0xe4,0x02,0x1e,0xff,0xc3,0x01,0xe4,0x02,0x27,0xff,0xe5,0x01,0xe4,0x02,0x2a,0xff,0xe5,0x01,0xe4,0x02,0x2c,0x00,0x29,0x01,0xe4,0x02,0x2d,0x00,0x62,0x01,0xe4,0x02,0x31,0xff,0xa2,0x01,0xe5,0x00,0x0f,0xff,0x3b, +0x01,0xe5,0x00,0x11,0xff,0x2b,0x01,0xe5,0x00,0xac,0xff,0x2b,0x01,0xe5,0x01,0xdc,0x00,0x29,0x01,0xe5,0x01,0xe1,0xff,0x75,0x01,0xe5,0x01,0xe3,0x00,0x29,0x01,0xe5,0x01,0xe7,0xff,0x33,0x01,0xe5,0x01,0xeb,0xff,0x75,0x01,0xe5,0x01,0xed,0x00,0x25,0x01,0xe5,0x01,0xf2,0xff,0x75,0x01,0xe5,0x01,0xf9,0x00,0x29,0x01,0xe5,0x02,0x01, +0x00,0x29,0x01,0xe5,0x02,0x07,0xff,0x79,0x01,0xe5,0x02,0x09,0xff,0xb6,0x01,0xe5,0x02,0x0a,0xff,0xb6,0x01,0xe5,0x02,0x0b,0xfe,0xfe,0x01,0xe5,0x02,0x0c,0xff,0x91,0x01,0xe5,0x02,0x0f,0xff,0xb6,0x01,0xe5,0x02,0x10,0xff,0xb6,0x01,0xe5,0x02,0x11,0xff,0xb6,0x01,0xe5,0x02,0x12,0xfe,0xfe,0x01,0xe5,0x02,0x13,0xff,0xb6,0x01,0xe5, +0x02,0x14,0xff,0xb6,0x01,0xe5,0x02,0x15,0xff,0x91,0x01,0xe5,0x02,0x16,0xff,0xb6,0x01,0xe5,0x02,0x17,0xff,0xb6,0x01,0xe5,0x02,0x18,0xff,0x91,0x01,0xe5,0x02,0x1b,0xff,0x91,0x01,0xe5,0x02,0x1c,0xff,0xb6,0x01,0xe5,0x02,0x1d,0xff,0xb6,0x01,0xe5,0x02,0x1f,0xff,0xb6,0x01,0xe5,0x02,0x20,0xff,0xb6,0x01,0xe5,0x02,0x22,0xff,0xb6, +0x01,0xe5,0x02,0x23,0xff,0xb6,0x01,0xe5,0x02,0x25,0xff,0xb6,0x01,0xe5,0x02,0x26,0xff,0xaa,0x01,0xe5,0x02,0x27,0xff,0x91,0x01,0xe5,0x02,0x29,0xff,0xb6,0x01,0xe5,0x02,0x2a,0xff,0x91,0x01,0xe5,0x02,0x2b,0xff,0xc3,0x01,0xe5,0x02,0x2c,0x00,0x6d,0x01,0xe5,0x02,0x2d,0xfe,0xfe,0x01,0xe5,0x02,0x2e,0xff,0xb6,0x01,0xe5,0x02,0x30, +0xff,0xb6,0x01,0xe5,0x02,0x32,0xff,0xb6,0x01,0xe5,0x02,0x34,0xff,0xb6,0x01,0xe7,0x00,0x0d,0xff,0x7f,0x01,0xe7,0x00,0x0f,0x00,0x46,0x01,0xe7,0x00,0x1e,0x00,0x46,0x01,0xe7,0x00,0x8d,0xff,0x98,0x01,0xe7,0x00,0xb4,0xff,0x66,0x01,0xe7,0x00,0xb5,0xff,0x3d,0x01,0xe7,0x00,0xb6,0xff,0x66,0x01,0xe7,0x00,0xb7,0xff,0x3d,0x01,0xe7, +0x01,0xdc,0xff,0x6d,0x01,0xe7,0x01,0xde,0xff,0xe5,0x01,0xe7,0x01,0xe1,0x00,0x60,0x01,0xe7,0x01,0xe3,0xff,0x6d,0x01,0xe7,0x01,0xeb,0x00,0x60,0x01,0xe7,0x01,0xed,0x00,0x3d,0x01,0xe7,0x01,0xf2,0x00,0x60,0x01,0xe7,0x01,0xf5,0xff,0xe5,0x01,0xe7,0x01,0xf8,0xff,0xe5,0x01,0xe7,0x01,0xf9,0xff,0x6d,0x01,0xe7,0x01,0xfb,0xff,0xc3, +0x01,0xe7,0x01,0xfe,0xff,0x3d,0x01,0xe7,0x02,0x01,0xff,0x6d,0x01,0xe7,0x02,0x0b,0x00,0x56,0x01,0xe7,0x02,0x0d,0x00,0x29,0x01,0xe7,0x02,0x12,0x00,0x56,0x01,0xe7,0x02,0x1a,0xff,0xd9,0x01,0xe7,0x02,0x2d,0x00,0x56,0x01,0xe7,0x02,0x31,0xff,0xd9,0x01,0xe8,0x01,0xde,0xff,0xe7,0x01,0xe8,0x01,0xf5,0xff,0xe7,0x01,0xe8,0x01,0xf8, +0xff,0xe7,0x01,0xe8,0x01,0xfb,0xff,0xe7,0x01,0xe8,0x01,0xfe,0xff,0x62,0x01,0xe8,0x02,0x19,0xff,0xcf,0x01,0xe8,0x02,0x21,0xff,0xcf,0x01,0xe9,0x00,0xc4,0xff,0xb0,0x01,0xe9,0x00,0xc5,0xff,0xb0,0x01,0xe9,0x01,0xdc,0xff,0xa2,0x01,0xe9,0x01,0xe3,0xff,0xa2,0x01,0xe9,0x01,0xf9,0xff,0xa2,0x01,0xe9,0x01,0xfe,0xff,0xd5,0x01,0xe9, +0x02,0x01,0xff,0xa2,0x01,0xea,0x00,0x0f,0xff,0x83,0x01,0xea,0x00,0x11,0xff,0x83,0x01,0xea,0x00,0xaa,0xff,0x91,0x01,0xea,0x00,0xab,0xff,0xd7,0x01,0xea,0x00,0xac,0xff,0x83,0x01,0xea,0x01,0xdc,0x00,0x29,0x01,0xea,0x01,0xde,0xff,0xa2,0x01,0xea,0x01,0xe1,0xff,0x9e,0x01,0xea,0x01,0xe3,0x00,0x29,0x01,0xea,0x01,0xe5,0x00,0x1d, +0x01,0xea,0x01,0xe7,0xff,0x71,0x01,0xea,0x01,0xeb,0xff,0xa2,0x01,0xea,0x01,0xf2,0xff,0xa2,0x01,0xea,0x01,0xf5,0xff,0xcf,0x01,0xea,0x01,0xf8,0xff,0xcf,0x01,0xea,0x01,0xf9,0x00,0x29,0x01,0xea,0x01,0xfa,0x00,0x1d,0x01,0xea,0x01,0xfb,0xff,0xa2,0x01,0xea,0x02,0x01,0x00,0x29,0x01,0xea,0x02,0x06,0xff,0xe7,0x01,0xea,0x02,0x07, +0xff,0x27,0x01,0xea,0x02,0x09,0xff,0x4e,0x01,0xea,0x02,0x0a,0xff,0x4e,0x01,0xea,0x02,0x0b,0xff,0x9e,0x01,0xea,0x02,0x0c,0xff,0x2b,0x01,0xea,0x02,0x0f,0xff,0x4e,0x01,0xea,0x02,0x10,0xff,0x4e,0x01,0xea,0x02,0x11,0xff,0x4e,0x01,0xea,0x02,0x12,0xff,0x9e,0x01,0xea,0x02,0x13,0xff,0x4e,0x01,0xea,0x02,0x14,0xff,0x4e,0x01,0xea, +0x02,0x15,0xff,0x2b,0x01,0xea,0x02,0x16,0xff,0x4e,0x01,0xea,0x02,0x17,0xff,0x4e,0x01,0xea,0x02,0x18,0xff,0x2b,0x01,0xea,0x02,0x19,0xff,0xc3,0x01,0xea,0x02,0x1b,0xff,0x2b,0x01,0xea,0x02,0x1c,0xff,0x4c,0x01,0xea,0x02,0x1d,0xff,0x4e,0x01,0xea,0x02,0x1e,0xff,0x4e,0x01,0xea,0x02,0x1f,0xff,0x4e,0x01,0xea,0x02,0x20,0xff,0x4e, +0x01,0xea,0x02,0x21,0xff,0xc3,0x01,0xea,0x02,0x22,0xff,0x4e,0x01,0xea,0x02,0x23,0xff,0x4e,0x01,0xea,0x02,0x24,0xff,0x60,0x01,0xea,0x02,0x25,0xff,0x4e,0x01,0xea,0x02,0x26,0xff,0x54,0x01,0xea,0x02,0x27,0xff,0x2b,0x01,0xea,0x02,0x29,0xff,0x4e,0x01,0xea,0x02,0x2a,0xff,0x2b,0x01,0xea,0x02,0x2b,0xff,0x66,0x01,0xea,0x02,0x2c, +0x00,0x6f,0x01,0xea,0x02,0x2d,0xff,0x9e,0x01,0xea,0x02,0x2e,0xff,0x4e,0x01,0xea,0x02,0x32,0xff,0x4e,0x01,0xea,0x02,0x34,0xff,0x4e,0x01,0xec,0x01,0xe1,0x00,0x46,0x01,0xec,0x01,0xe7,0x00,0x0c,0x01,0xec,0x01,0xeb,0x00,0x46,0x01,0xec,0x01,0xed,0x00,0x14,0x01,0xec,0x01,0xf2,0x00,0x46,0x01,0xec,0x01,0xfc,0x00,0x0a,0x01,0xec, +0x02,0x2c,0x00,0x14,0x01,0xed,0x00,0x0f,0x00,0x52,0x01,0xed,0x00,0x1e,0x00,0x52,0x01,0xed,0x00,0xc4,0x00,0x5a,0x01,0xed,0x00,0xc5,0x00,0x5a,0x01,0xed,0x01,0xde,0xff,0xcd,0x01,0xed,0x01,0xe1,0x00,0x85,0x01,0xed,0x01,0xe7,0x00,0x3d,0x01,0xed,0x01,0xeb,0x00,0x85,0x01,0xed,0x01,0xed,0x00,0x66,0x01,0xed,0x01,0xf5,0xff,0xcd, +0x01,0xed,0x01,0xf8,0xff,0xcd,0x01,0xed,0x01,0xfb,0xff,0xcd,0x01,0xed,0x01,0xfc,0x00,0x25,0x01,0xed,0x01,0xfe,0xff,0xdb,0x01,0xed,0x02,0x06,0x00,0x3d,0x01,0xed,0x02,0x0b,0x00,0x7b,0x01,0xed,0x02,0x0d,0x00,0x3d,0x01,0xed,0x02,0x12,0x00,0x7b,0x01,0xed,0x02,0x1a,0xff,0xd1,0x01,0xed,0x02,0x1c,0x00,0x48,0x01,0xed,0x02,0x1e, +0xff,0xe7,0x01,0xed,0x02,0x2c,0x00,0x52,0x01,0xed,0x02,0x2d,0x00,0x7b,0x01,0xed,0x02,0x31,0xff,0xd1,0x01,0xee,0x01,0xdc,0xff,0xe1,0x01,0xee,0x01,0xde,0xff,0xdb,0x01,0xee,0x01,0xe3,0xff,0xe1,0x01,0xee,0x01,0xf5,0xff,0xdb,0x01,0xee,0x01,0xf8,0xff,0xdb,0x01,0xee,0x01,0xf9,0xff,0xe1,0x01,0xee,0x01,0xfb,0xff,0xdb,0x01,0xee, +0x01,0xfe,0xff,0xdd,0x01,0xee,0x02,0x01,0xff,0xe1,0x01,0xf1,0x00,0x0f,0x00,0x29,0x01,0xf1,0x00,0x1e,0x00,0x29,0x01,0xf1,0x00,0xc4,0x00,0x46,0x01,0xf1,0x00,0xc5,0x00,0x46,0x01,0xf1,0x01,0xde,0xff,0xa4,0x01,0xf1,0x01,0xe1,0x00,0x5c,0x01,0xf1,0x01,0xeb,0x00,0x5c,0x01,0xf1,0x01,0xed,0x00,0x62,0x01,0xf1,0x01,0xf2,0x00,0x5c, +0x01,0xf1,0x01,0xf5,0xff,0xa4,0x01,0xf1,0x01,0xf8,0xff,0xa4,0x01,0xf1,0x01,0xfb,0xff,0xa4,0x01,0xf1,0x01,0xfc,0x00,0x25,0x01,0xf1,0x01,0xfe,0xff,0xc3,0x01,0xf1,0x02,0x06,0x00,0x3d,0x01,0xf1,0x02,0x08,0xff,0xe5,0x01,0xf1,0x02,0x0b,0x00,0x62,0x01,0xf1,0x02,0x0c,0xff,0xe5,0x01,0xf1,0x02,0x0d,0x00,0x3d,0x01,0xf1,0x02,0x12, +0x00,0x62,0x01,0xf1,0x02,0x15,0xff,0xe5,0x01,0xf1,0x02,0x18,0xff,0xe5,0x01,0xf1,0x02,0x1a,0xff,0xa2,0x01,0xf1,0x02,0x1b,0xff,0xe5,0x01,0xf1,0x02,0x1e,0xff,0xc3,0x01,0xf1,0x02,0x27,0xff,0xe5,0x01,0xf1,0x02,0x2a,0xff,0xe5,0x01,0xf1,0x02,0x2c,0x00,0x29,0x01,0xf1,0x02,0x2d,0x00,0x62,0x01,0xf1,0x02,0x31,0xff,0xa2,0x01,0xf5, +0x00,0x0f,0xff,0xa2,0x01,0xf5,0x00,0x11,0xff,0xa2,0x01,0xf5,0x00,0xac,0xff,0xa2,0x01,0xf5,0x00,0xc4,0xff,0x4a,0x01,0xf5,0x00,0xc5,0xff,0x96,0x01,0xf5,0x01,0xdc,0xff,0xa2,0x01,0xf5,0x01,0xdf,0xff,0xdb,0x01,0xf5,0x01,0xe1,0xff,0xf6,0x01,0xf5,0x01,0xe3,0xff,0xa2,0x01,0xf5,0x01,0xe5,0xff,0xe7,0x01,0xf5,0x01,0xe7,0xff,0xe5, +0x01,0xf5,0x01,0xeb,0xff,0xf6,0x01,0xf5,0x01,0xed,0xff,0xcd,0x01,0xf5,0x01,0xf2,0xff,0xf6,0x01,0xf5,0x01,0xf9,0xff,0xa2,0x01,0xf5,0x01,0xfa,0xff,0xe7,0x01,0xf5,0x01,0xfc,0xff,0xdb,0x01,0xf5,0x02,0x01,0xff,0xa2,0x01,0xf7,0x00,0x0f,0xfe,0xba,0x01,0xf7,0x00,0x11,0xfe,0xba,0x01,0xf7,0x00,0xac,0xfe,0xba,0x01,0xf7,0x00,0xc4, +0xfe,0xba,0x01,0xf7,0x00,0xc5,0xfe,0xae,0x01,0xf7,0x01,0xde,0xff,0xf6,0x01,0xf7,0x01,0xe1,0xff,0x7f,0x01,0xf7,0x01,0xe5,0xff,0xe7,0x01,0xf7,0x01,0xe7,0xff,0x60,0x01,0xf7,0x01,0xeb,0xff,0x7f,0x01,0xf7,0x01,0xed,0xff,0xcf,0x01,0xf7,0x01,0xee,0xff,0xe7,0x01,0xf7,0x01,0xf2,0xff,0x7f,0x01,0xf7,0x01,0xf5,0xff,0xf6,0x01,0xf7, +0x01,0xf8,0xff,0xf6,0x01,0xf7,0x01,0xfa,0xff,0xe7,0x01,0xf7,0x01,0xfb,0xff,0xf6,0x01,0xf7,0x01,0xfc,0xff,0xc1,0x01,0xf7,0x02,0x07,0xff,0xbc,0x01,0xf7,0x02,0x0b,0xff,0x6d,0x01,0xf7,0x02,0x0c,0xff,0xb2,0x01,0xf7,0x02,0x12,0xff,0x6d,0x01,0xf7,0x02,0x15,0xff,0xb2,0x01,0xf7,0x02,0x18,0xff,0xb2,0x01,0xf7,0x02,0x1b,0xff,0xb2, +0x01,0xf7,0x02,0x27,0xff,0xb2,0x01,0xf7,0x02,0x2a,0xff,0xb2,0x01,0xf7,0x02,0x2d,0xff,0x6d,0x01,0xf8,0x00,0xaa,0xff,0xcd,0x01,0xf8,0x00,0xbe,0xff,0xcd,0x01,0xf8,0x01,0xde,0xff,0xc9,0x01,0xf8,0x01,0xed,0x00,0x31,0x01,0xf8,0x01,0xf5,0xff,0xc9,0x01,0xf8,0x01,0xf8,0xff,0xc9,0x01,0xf8,0x01,0xfb,0xff,0xc9,0x01,0xf8,0x02,0x19, +0xff,0xdb,0x01,0xf8,0x02,0x21,0xff,0xdb,0x01,0xf8,0x02,0x2c,0x00,0x1f,0x01,0xf9,0x00,0x0f,0xff,0x7d,0x01,0xf9,0x00,0x11,0xff,0x4c,0x01,0xf9,0x00,0x1d,0xff,0xe9,0x01,0xf9,0x00,0x1e,0xff,0xe9,0x01,0xf9,0x00,0x8d,0x00,0x52,0x01,0xf9,0x00,0xaa,0xff,0x98,0x01,0xf9,0x00,0xab,0xff,0xcd,0x01,0xf9,0x00,0xac,0xff,0x4c,0x01,0xf9, +0x00,0xb5,0x00,0x29,0x01,0xf9,0x00,0xb7,0x00,0x29,0x01,0xf9,0x00,0xbe,0xff,0x98,0x01,0xf9,0x00,0xbf,0xff,0xcd,0x01,0xf9,0x00,0xc4,0xff,0x14,0x01,0xf9,0x00,0xc5,0xff,0x14,0x01,0xf9,0x01,0xdc,0x00,0x29,0x01,0xf9,0x01,0xde,0xff,0xa2,0x01,0xf9,0x01,0xe1,0xff,0x8d,0x01,0xf9,0x01,0xe3,0x00,0x29,0x01,0xf9,0x01,0xe7,0xff,0x66, +0x01,0xf9,0x01,0xeb,0xff,0x8d,0x01,0xf9,0x01,0xf2,0xff,0x8d,0x01,0xf9,0x01,0xf5,0xff,0xa2,0x01,0xf9,0x01,0xf8,0xff,0xa2,0x01,0xf9,0x01,0xf9,0x00,0x29,0x01,0xf9,0x01,0xfb,0xff,0xa2,0x01,0xf9,0x01,0xfc,0xff,0xf8,0x01,0xf9,0x02,0x01,0x00,0x29,0x01,0xf9,0x02,0x06,0xff,0xe7,0x01,0xf9,0x02,0x07,0xff,0x27,0x01,0xf9,0x02,0x09, +0xff,0x4e,0x01,0xf9,0x02,0x0a,0xff,0x4e,0x01,0xf9,0x02,0x0b,0xff,0x9e,0x01,0xf9,0x02,0x0c,0xff,0x2b,0x01,0xf9,0x02,0x0d,0xff,0xa6,0x01,0xf9,0x02,0x0f,0xff,0x4e,0x01,0xf9,0x02,0x10,0xff,0x4e,0x01,0xf9,0x02,0x11,0xff,0x4e,0x01,0xf9,0x02,0x12,0xff,0x9e,0x01,0xf9,0x02,0x13,0xff,0x4e,0x01,0xf9,0x02,0x14,0xff,0x4e,0x01,0xf9, +0x02,0x15,0xff,0x2b,0x01,0xf9,0x02,0x16,0xff,0x4e,0x01,0xf9,0x02,0x17,0xff,0x4e,0x01,0xf9,0x02,0x18,0xff,0x2b,0x01,0xf9,0x02,0x19,0xff,0xc3,0x01,0xf9,0x02,0x1a,0xff,0x8d,0x01,0xf9,0x02,0x1b,0xff,0x2b,0x01,0xf9,0x02,0x1c,0xff,0x4c,0x01,0xf9,0x02,0x1d,0xff,0x4e,0x01,0xf9,0x02,0x1e,0xff,0x4e,0x01,0xf9,0x02,0x1f,0xff,0x4e, +0x01,0xf9,0x02,0x20,0xff,0x4e,0x01,0xf9,0x02,0x21,0xff,0xc3,0x01,0xf9,0x02,0x22,0xff,0x4e,0x01,0xf9,0x02,0x23,0xff,0x4e,0x01,0xf9,0x02,0x24,0xff,0x60,0x01,0xf9,0x02,0x25,0xff,0x4e,0x01,0xf9,0x02,0x26,0xff,0x54,0x01,0xf9,0x02,0x27,0xff,0x2b,0x01,0xf9,0x02,0x29,0xff,0x4e,0x01,0xf9,0x02,0x2a,0xff,0x2b,0x01,0xf9,0x02,0x2b, +0xff,0x66,0x01,0xf9,0x02,0x2c,0x00,0x6f,0x01,0xf9,0x02,0x2d,0xff,0x9e,0x01,0xf9,0x02,0x2e,0xff,0x4e,0x01,0xf9,0x02,0x30,0xff,0x4e,0x01,0xf9,0x02,0x31,0xff,0x8d,0x01,0xf9,0x02,0x32,0xff,0x4e,0x01,0xf9,0x02,0x34,0xff,0x4e,0x01,0xfa,0x00,0x0f,0xff,0x3b,0x01,0xfa,0x00,0x11,0xff,0x2b,0x01,0xfa,0x00,0xac,0xff,0x2b,0x01,0xfa, +0x01,0xdc,0x00,0x29,0x01,0xfa,0x01,0xe1,0xff,0x75,0x01,0xfa,0x01,0xe3,0x00,0x29,0x01,0xfa,0x01,0xe7,0xff,0x33,0x01,0xfa,0x01,0xeb,0xff,0x75,0x01,0xfa,0x01,0xed,0x00,0x25,0x01,0xfa,0x01,0xf2,0xff,0x75,0x01,0xfa,0x01,0xf8,0xff,0xdb,0x01,0xfa,0x01,0xf9,0x00,0x29,0x01,0xfa,0x02,0x01,0x00,0x29,0x01,0xfa,0x02,0x07,0xff,0x79, +0x01,0xfa,0x02,0x09,0xff,0xb6,0x01,0xfa,0x02,0x0a,0xff,0xb6,0x01,0xfa,0x02,0x0b,0xfe,0xfe,0x01,0xfa,0x02,0x0c,0xff,0x91,0x01,0xfa,0x02,0x0f,0xff,0xb6,0x01,0xfa,0x02,0x10,0xff,0xb6,0x01,0xfa,0x02,0x11,0xff,0xb6,0x01,0xfa,0x02,0x12,0xfe,0xfe,0x01,0xfa,0x02,0x13,0xff,0xb6,0x01,0xfa,0x02,0x14,0xff,0xb6,0x01,0xfa,0x02,0x15, +0xff,0x91,0x01,0xfa,0x02,0x16,0xff,0xb6,0x01,0xfa,0x02,0x17,0xff,0xb6,0x01,0xfa,0x02,0x18,0xff,0x91,0x01,0xfa,0x02,0x1b,0xff,0x91,0x01,0xfa,0x02,0x1c,0xff,0xb6,0x01,0xfa,0x02,0x1d,0xff,0xb6,0x01,0xfa,0x02,0x1f,0xff,0xb6,0x01,0xfa,0x02,0x20,0xff,0xb6,0x01,0xfa,0x02,0x22,0xff,0xb6,0x01,0xfa,0x02,0x23,0xff,0xb6,0x01,0xfa, +0x02,0x25,0xff,0xb6,0x01,0xfa,0x02,0x26,0xff,0xaa,0x01,0xfa,0x02,0x27,0xff,0x91,0x01,0xfa,0x02,0x29,0xff,0xb6,0x01,0xfa,0x02,0x2a,0xff,0x91,0x01,0xfa,0x02,0x2b,0xff,0xc3,0x01,0xfa,0x02,0x2c,0x00,0x6d,0x01,0xfa,0x02,0x2d,0xfe,0xfe,0x01,0xfa,0x02,0x2e,0xff,0xb6,0x01,0xfa,0x02,0x30,0xff,0xb6,0x01,0xfa,0x02,0x32,0xff,0xb6, +0x01,0xfa,0x02,0x34,0xff,0xb6,0x01,0xfb,0x00,0x0f,0xff,0xa2,0x01,0xfb,0x00,0x11,0xff,0xa2,0x01,0xfb,0x00,0xac,0xff,0xa2,0x01,0xfb,0x00,0xc4,0xff,0x4a,0x01,0xfb,0x00,0xc5,0xff,0x96,0x01,0xfb,0x01,0xdc,0xff,0xa2,0x01,0xfb,0x01,0xdf,0xff,0xdb,0x01,0xfb,0x01,0xe1,0xff,0xf6,0x01,0xfb,0x01,0xe3,0xff,0xa2,0x01,0xfb,0x01,0xe5, +0xff,0xe7,0x01,0xfb,0x01,0xe7,0xff,0xc3,0x01,0xfb,0x01,0xeb,0xff,0xf6,0x01,0xfb,0x01,0xed,0xff,0xcd,0x01,0xfb,0x01,0xee,0xff,0xcf,0x01,0xfb,0x01,0xf2,0xff,0xf6,0x01,0xfb,0x01,0xf9,0xff,0xa2,0x01,0xfb,0x01,0xfa,0xff,0xe7,0x01,0xfb,0x01,0xfc,0xff,0xdb,0x01,0xfb,0x02,0x01,0xff,0xa2,0x01,0xfb,0x02,0x07,0xff,0xe7,0x01,0xfb, +0x02,0x0b,0xff,0x91,0x01,0xfb,0x02,0x2d,0xff,0x91,0x01,0xfc,0x00,0x0f,0x00,0x46,0x01,0xfc,0x00,0x11,0x00,0x39,0x01,0xfc,0x00,0x1e,0x00,0x52,0x01,0xfc,0x00,0xac,0x00,0x39,0x01,0xfc,0x00,0xc4,0x00,0x46,0x01,0xfc,0x00,0xc5,0x00,0x52,0x01,0xfc,0x01,0xdc,0x00,0x23,0x01,0xfc,0x01,0xde,0xff,0xdb,0x01,0xfc,0x01,0xe1,0x00,0x62, +0x01,0xfc,0x01,0xe3,0x00,0x23,0x01,0xfc,0x01,0xeb,0x00,0x62,0x01,0xfc,0x01,0xed,0x00,0x25,0x01,0xfc,0x01,0xf2,0x00,0x62,0x01,0xfc,0x01,0xf5,0xff,0xe7,0x01,0xfc,0x01,0xf8,0xff,0xdb,0x01,0xfc,0x01,0xf9,0x00,0x23,0x01,0xfc,0x01,0xfb,0xff,0xdb,0x01,0xfc,0x02,0x01,0x00,0x23,0x01,0xfc,0x02,0x2c,0x00,0x52,0x01,0xfd,0x00,0x0f, +0x00,0x29,0x01,0xfd,0x00,0xc4,0x00,0x29,0x01,0xfd,0x00,0xc5,0x00,0x29,0x01,0xfd,0x01,0xe1,0x00,0x3d,0x01,0xfd,0x01,0xeb,0x00,0x3d,0x01,0xfd,0x01,0xf2,0x00,0x3d,0x01,0xfd,0x01,0xfe,0xff,0xdb,0x01,0xfd,0x02,0x0b,0x00,0x25,0x01,0xfd,0x02,0x12,0x00,0x25,0x01,0xfd,0x02,0x2d,0x00,0x25,0x02,0x00,0x00,0x0f,0x00,0x29,0x02,0x00, +0x00,0x1e,0x00,0x29,0x02,0x00,0x00,0xc4,0x00,0x29,0x02,0x00,0x00,0xc5,0x00,0x29,0x02,0x00,0x01,0xe1,0x00,0x3d,0x02,0x00,0x01,0xeb,0x00,0x3d,0x02,0x00,0x01,0xf2,0x00,0x3d,0x02,0x00,0x01,0xfb,0xff,0xcf,0x02,0x00,0x01,0xfe,0xff,0xdb,0x02,0x00,0x02,0x0b,0x00,0x25,0x02,0x00,0x02,0x12,0x00,0x25,0x02,0x00,0x02,0x2d,0x00,0x25, +0x02,0x01,0x01,0xdc,0xff,0x79,0x02,0x01,0x01,0xde,0xff,0xe7,0x02,0x01,0x01,0xe3,0xff,0x79,0x02,0x01,0x01,0xf5,0xff,0xe7,0x02,0x01,0x01,0xf8,0xff,0xe7,0x02,0x01,0x01,0xf9,0xff,0x79,0x02,0x01,0x01,0xfb,0xff,0xe7,0x02,0x01,0x01,0xfe,0xff,0x62,0x02,0x01,0x02,0x01,0xff,0x79,0x02,0x01,0x02,0x19,0xff,0xcf,0x02,0x01,0x02,0x21, +0xff,0xcf,0x02,0x03,0x01,0xdc,0xff,0x79,0x02,0x03,0x01,0xde,0xff,0xe7,0x02,0x03,0x01,0xe3,0xff,0x79,0x02,0x03,0x01,0xf5,0xff,0xe7,0x02,0x03,0x01,0xf8,0xff,0xe7,0x02,0x03,0x01,0xf9,0xff,0x79,0x02,0x03,0x01,0xfb,0xff,0xe7,0x02,0x03,0x01,0xfe,0xff,0x62,0x02,0x03,0x02,0x01,0xff,0x79,0x02,0x03,0x02,0x19,0xff,0xcf,0x02,0x03, +0x02,0x21,0xff,0xcf,0x02,0x04,0x00,0x0f,0xff,0xa2,0x02,0x04,0x00,0x11,0xff,0xa2,0x02,0x04,0x00,0xac,0xff,0xa2,0x02,0x04,0x00,0xc4,0xff,0x4a,0x02,0x04,0x00,0xc5,0xff,0x96,0x02,0x04,0x01,0xdc,0xff,0xa2,0x02,0x04,0x01,0xdf,0xff,0xdb,0x02,0x04,0x01,0xe1,0xff,0xf6,0x02,0x04,0x01,0xe3,0xff,0xa2,0x02,0x04,0x01,0xe5,0xff,0xe7, +0x02,0x04,0x01,0xe7,0xff,0xe5,0x02,0x04,0x01,0xeb,0xff,0xf6,0x02,0x04,0x01,0xf2,0xff,0xf6,0x02,0x04,0x01,0xf9,0xff,0xa2,0x02,0x04,0x01,0xfa,0xff,0xe7,0x02,0x04,0x01,0xfc,0xff,0xdb,0x02,0x04,0x02,0x01,0xff,0xa2,0x02,0x05,0x00,0x0f,0xff,0xa2,0x02,0x05,0x00,0x11,0xff,0xa2,0x02,0x05,0x00,0xac,0xff,0xa2,0x02,0x05,0x00,0xc4, +0xff,0x4a,0x02,0x05,0x00,0xc5,0xff,0x96,0x02,0x05,0x01,0xdc,0xff,0xa2,0x02,0x05,0x01,0xdf,0xff,0xdb,0x02,0x05,0x01,0xe1,0xff,0xf6,0x02,0x05,0x01,0xe3,0xff,0xa2,0x02,0x05,0x01,0xe5,0xff,0xe7,0x02,0x05,0x01,0xe7,0xff,0xe5,0x02,0x05,0x01,0xeb,0xff,0xf6,0x02,0x05,0x01,0xf2,0xff,0xf6,0x02,0x05,0x01,0xf9,0xff,0xa2,0x02,0x05, +0x01,0xfa,0xff,0xe7,0x02,0x05,0x01,0xfc,0xff,0xdb,0x02,0x05,0x02,0x01,0xff,0xa2,0x02,0x07,0x02,0x1e,0xff,0xe7,0x02,0x08,0x02,0x0b,0xff,0xe7,0x02,0x08,0x02,0x0d,0xff,0xe1,0x02,0x08,0x02,0x19,0xff,0xdb,0x02,0x08,0x02,0x21,0xff,0xdb,0x02,0x09,0x02,0x19,0xff,0xee,0x02,0x09,0x02,0x1e,0xff,0xe7,0x02,0x09,0x02,0x21,0xff,0xee, +0x02,0x0a,0x00,0x0f,0xff,0xc3,0x02,0x0a,0x00,0x11,0xff,0xae,0x02,0x0a,0x00,0xac,0xff,0xae,0x02,0x0a,0x02,0x07,0xff,0xc3,0x02,0x0a,0x02,0x0b,0xff,0xb6,0x02,0x0a,0x02,0x0c,0xff,0xdb,0x02,0x0a,0x02,0x12,0xff,0xb6,0x02,0x0a,0x02,0x15,0xff,0xdb,0x02,0x0a,0x02,0x18,0xff,0xdb,0x02,0x0a,0x02,0x19,0x00,0x29,0x02,0x0a,0x02,0x1b, +0xff,0xdb,0x02,0x0a,0x02,0x21,0x00,0x29,0x02,0x0a,0x02,0x26,0xff,0xe7,0x02,0x0a,0x02,0x27,0xff,0xdb,0x02,0x0a,0x02,0x2a,0xff,0xdb,0x02,0x0a,0x02,0x2d,0xff,0xb6,0x02,0x0b,0x02,0x12,0x00,0x14,0x02,0x0b,0x02,0x1e,0xff,0xdb,0x02,0x0b,0x02,0x2d,0x00,0x14,0x02,0x0c,0x00,0x05,0xff,0x98,0x02,0x0c,0x00,0x0a,0xff,0x98,0x02,0x0d, +0x00,0x0f,0x00,0x52,0x02,0x0d,0x00,0x10,0xff,0x73,0x02,0x0d,0x00,0x11,0x00,0x52,0x02,0x0d,0x00,0x1d,0x00,0x52,0x02,0x0d,0x00,0x1e,0x00,0x52,0x02,0x0d,0x00,0xac,0x00,0x52,0x02,0x0d,0x02,0x0b,0x00,0x29,0x02,0x0d,0x02,0x0c,0xff,0xd7,0x02,0x0d,0x02,0x0d,0x00,0x4a,0x02,0x0d,0x02,0x12,0x00,0x52,0x02,0x0d,0x02,0x15,0xff,0xd7, +0x02,0x0d,0x02,0x18,0xff,0xd7,0x02,0x0d,0x02,0x1b,0xff,0xd7,0x02,0x0d,0x02,0x1e,0xff,0xe7,0x02,0x0d,0x02,0x27,0xff,0xd7,0x02,0x0d,0x02,0x2a,0xff,0xd7,0x02,0x0d,0x02,0x2d,0x00,0x29,0x02,0x0e,0x02,0x1e,0xff,0xd7,0x02,0x11,0x00,0x0f,0x00,0x52,0x02,0x11,0x00,0x10,0xff,0x73,0x02,0x11,0x00,0x11,0x00,0x52,0x02,0x11,0x00,0x1d, +0x00,0x52,0x02,0x11,0x00,0x1e,0x00,0x52,0x02,0x11,0x00,0xac,0x00,0x52,0x02,0x11,0x02,0x0b,0x00,0x14,0x02,0x11,0x02,0x0c,0xff,0xd7,0x02,0x11,0x02,0x0d,0x00,0x3d,0x02,0x11,0x02,0x12,0x00,0x29,0x02,0x11,0x02,0x15,0xff,0xd7,0x02,0x11,0x02,0x18,0xff,0xd7,0x02,0x11,0x02,0x1b,0xff,0xd7,0x02,0x11,0x02,0x1e,0xff,0xe7,0x02,0x11, +0x02,0x27,0xff,0xd7,0x02,0x11,0x02,0x2a,0xff,0xd7,0x02,0x11,0x02,0x2d,0x00,0x29,0x02,0x15,0x00,0x05,0xff,0x6f,0x02,0x15,0x00,0x0a,0xff,0x6f,0x02,0x15,0x00,0xb4,0xff,0xb0,0x02,0x15,0x00,0xb5,0xff,0x7b,0x02,0x15,0x00,0xb6,0xff,0xbc,0x02,0x15,0x00,0xb7,0xff,0x7b,0x02,0x15,0x02,0x07,0xff,0xe5,0x02,0x15,0x02,0x0b,0xff,0xe7, +0x02,0x15,0x02,0x0d,0xff,0xd7,0x02,0x15,0x02,0x19,0xff,0xdb,0x02,0x15,0x02,0x1c,0xff,0xe7,0x02,0x15,0x02,0x21,0xff,0xdb,0x02,0x17,0x00,0x05,0xff,0x6f,0x02,0x17,0x00,0x0a,0xff,0x6f,0x02,0x17,0x00,0xb4,0xff,0xc9,0x02,0x17,0x00,0xb5,0xff,0x87,0x02,0x17,0x00,0xb6,0xff,0x87,0x02,0x17,0x00,0xb7,0xff,0x87,0x02,0x17,0x02,0x07, +0xff,0xe5,0x02,0x17,0x02,0x0b,0xff,0xe7,0x02,0x17,0x02,0x0d,0xff,0xd7,0x02,0x17,0x02,0x19,0xff,0xdb,0x02,0x17,0x02,0x1c,0xff,0xe7,0x02,0x17,0x02,0x21,0xff,0xdb,0x02,0x19,0x00,0x0f,0xff,0xc3,0x02,0x19,0x00,0x11,0xff,0xae,0x02,0x19,0x00,0xac,0xff,0xae,0x02,0x19,0x02,0x0b,0xff,0xdb,0x02,0x19,0x02,0x0c,0xff,0xdb,0x02,0x19, +0x02,0x12,0xff,0xdb,0x02,0x19,0x02,0x15,0xff,0xdb,0x02,0x19,0x02,0x18,0xff,0xdb,0x02,0x19,0x02,0x19,0x00,0x14,0x02,0x19,0x02,0x1a,0x00,0x29,0x02,0x19,0x02,0x1b,0xff,0xdb,0x02,0x19,0x02,0x21,0x00,0x29,0x02,0x19,0x02,0x26,0xff,0xe7,0x02,0x19,0x02,0x27,0xff,0xdb,0x02,0x19,0x02,0x2a,0xff,0xdb,0x02,0x19,0x02,0x2d,0xff,0xdb, +0x02,0x19,0x02,0x31,0x00,0x29,0x02,0x1a,0x00,0x05,0x00,0x1d,0x02,0x1a,0x00,0x0a,0x00,0x1d,0x02,0x1a,0x00,0x0f,0xff,0x98,0x02,0x1a,0x00,0x11,0xff,0x7f,0x02,0x1a,0x00,0x22,0xff,0xb2,0x02,0x1a,0x00,0xac,0xff,0x7f,0x02,0x1a,0x00,0xbf,0x00,0x0e,0x02,0x1a,0x00,0xc4,0xff,0x8b,0x02,0x1a,0x00,0xc5,0xff,0x8b,0x02,0x1a,0x02,0x0b, +0xff,0x91,0x02,0x1a,0x02,0x0c,0xff,0xf6,0x02,0x1a,0x02,0x12,0xff,0x91,0x02,0x1a,0x02,0x15,0xff,0xf6,0x02,0x1a,0x02,0x18,0xff,0xf6,0x02,0x1a,0x02,0x19,0x00,0x29,0x02,0x1a,0x02,0x1b,0xff,0xf6,0x02,0x1a,0x02,0x21,0x00,0x29,0x02,0x1a,0x02,0x27,0xff,0xf6,0x02,0x1a,0x02,0x2a,0xff,0xf6,0x02,0x1a,0x02,0x2d,0xff,0x91,0x02,0x1b, +0x00,0x05,0xff,0x6f,0x02,0x1b,0x00,0x0a,0xff,0x6f,0x02,0x1b,0x00,0xb4,0xff,0xb0,0x02,0x1b,0x00,0xb5,0xff,0x7b,0x02,0x1b,0x00,0xb6,0xff,0xbc,0x02,0x1b,0x00,0xb7,0xff,0x7b,0x02,0x1b,0x02,0x07,0xff,0xe5,0x02,0x1b,0x02,0x0b,0xff,0xe7,0x02,0x1b,0x02,0x0d,0xff,0xd7,0x02,0x1b,0x02,0x19,0xff,0xdb,0x02,0x1b,0x02,0x1c,0xff,0xe7, +0x02,0x1b,0x02,0x21,0xff,0xdb,0x02,0x1c,0x02,0x0b,0x00,0x14,0x02,0x1c,0x02,0x0c,0xff,0xee,0x02,0x1c,0x02,0x12,0x00,0x29,0x02,0x1c,0x02,0x15,0xff,0xee,0x02,0x1c,0x02,0x18,0xff,0xee,0x02,0x1c,0x02,0x1b,0xff,0xee,0x02,0x1c,0x02,0x1e,0xff,0xdb,0x02,0x1c,0x02,0x27,0xff,0xee,0x02,0x1c,0x02,0x2a,0xff,0xee,0x02,0x1c,0x02,0x2d, +0x00,0x29,0x02,0x1d,0x02,0x1e,0xff,0xdb,0x02,0x20,0x02,0x1e,0xff,0xdb,0x02,0x21,0x02,0x0c,0xff,0xf4,0x02,0x21,0x02,0x15,0xff,0xf4,0x02,0x21,0x02,0x18,0xff,0xf4,0x02,0x21,0x02,0x19,0xff,0xaa,0x02,0x21,0x02,0x1a,0xff,0xb6,0x02,0x21,0x02,0x1b,0xff,0xf4,0x02,0x21,0x02,0x1e,0xff,0x85,0x02,0x21,0x02,0x21,0xff,0xaa,0x02,0x21, +0x02,0x27,0xff,0xf4,0x02,0x21,0x02,0x2a,0xff,0xf4,0x02,0x21,0x02,0x31,0xff,0xb6,0x02,0x23,0x02,0x0c,0xff,0xf4,0x02,0x23,0x02,0x15,0xff,0xf4,0x02,0x23,0x02,0x18,0xff,0xf4,0x02,0x23,0x02,0x19,0xff,0xaa,0x02,0x23,0x02,0x1a,0xff,0xb6,0x02,0x23,0x02,0x1b,0xff,0xf4,0x02,0x23,0x02,0x1e,0xff,0x85,0x02,0x23,0x02,0x21,0xff,0xaa, +0x02,0x23,0x02,0x27,0xff,0xf4,0x02,0x23,0x02,0x2a,0xff,0xf4,0x02,0x23,0x02,0x31,0xff,0xb6,0x02,0x24,0x00,0x05,0xff,0x6f,0x02,0x24,0x00,0x0a,0xff,0x6f,0x02,0x24,0x00,0xb4,0xff,0xb0,0x02,0x24,0x00,0xb5,0xff,0x7b,0x02,0x24,0x00,0xb6,0xff,0xbc,0x02,0x24,0x00,0xb7,0xff,0x7b,0x02,0x24,0x02,0x07,0xff,0xe5,0x02,0x24,0x02,0x0b, +0xff,0xe7,0x02,0x24,0x02,0x0d,0xff,0xd7,0x02,0x24,0x02,0x19,0xff,0xdb,0x02,0x24,0x02,0x1c,0xff,0xe7,0x02,0x24,0x02,0x21,0xff,0xdb,0x02,0x25,0x00,0x05,0xff,0x6f,0x02,0x25,0x00,0x0a,0xff,0x6f,0x02,0x25,0x00,0xb4,0xff,0xb0,0x02,0x25,0x00,0xb5,0xff,0x7b,0x02,0x25,0x00,0xb6,0xff,0xbc,0x02,0x25,0x00,0xb7,0xff,0x7b,0x02,0x25, +0x02,0x07,0xff,0xe5,0x02,0x25,0x02,0x0b,0xff,0xe7,0x02,0x25,0x02,0x0d,0xff,0xd7,0x02,0x25,0x02,0x19,0xff,0xdb,0x02,0x25,0x02,0x1c,0xff,0xe7,0x02,0x25,0x02,0x21,0xff,0xdb,0x02,0x27,0x00,0x05,0xff,0x98,0x02,0x27,0x00,0x0a,0xff,0x98,0x02,0x28,0x00,0x05,0xff,0x6f,0x02,0x28,0x00,0x0a,0xff,0x6f,0x02,0x28,0x00,0xb4,0xff,0xb0, +0x02,0x28,0x00,0xb5,0xff,0x7b,0x02,0x28,0x00,0xb6,0xff,0xbc,0x02,0x28,0x00,0xb7,0xff,0x7b,0x02,0x28,0x02,0x07,0xff,0xee,0x02,0x28,0x02,0x19,0xff,0xe7,0x02,0x28,0x02,0x1c,0xff,0xee,0x02,0x28,0x02,0x1e,0xff,0xe7,0x02,0x28,0x02,0x21,0xff,0xe7,0x02,0x29,0x00,0x0f,0xff,0xc3,0x02,0x29,0x00,0x11,0xff,0xae,0x02,0x29,0x00,0xac, +0xff,0xae,0x02,0x29,0x02,0x07,0xff,0xc3,0x02,0x29,0x02,0x0b,0xff,0xb6,0x02,0x29,0x02,0x0c,0xff,0xdb,0x02,0x29,0x02,0x12,0xff,0xb6,0x02,0x29,0x02,0x15,0xff,0xdb,0x02,0x29,0x02,0x18,0xff,0xdb,0x02,0x29,0x02,0x19,0x00,0x29,0x02,0x29,0x02,0x1b,0xff,0xdb,0x02,0x29,0x02,0x21,0x00,0x29,0x02,0x29,0x02,0x26,0xff,0xe7,0x02,0x29, +0x02,0x27,0xff,0xdb,0x02,0x29,0x02,0x2a,0xff,0xdb,0x02,0x29,0x02,0x2d,0xff,0xb6,0x02,0x2a,0x01,0xe4,0xff,0xe5,0x02,0x2c,0x02,0x28,0x00,0x52,0x02,0x2c,0x02,0x2f,0x00,0x52,0x02,0x2d,0x02,0x0c,0xff,0xf4,0x02,0x2d,0x02,0x15,0xff,0xf4,0x02,0x2d,0x02,0x18,0xff,0xf4,0x02,0x2d,0x02,0x19,0xff,0xaa,0x02,0x2d,0x02,0x1a,0xff,0xb6, +0x02,0x2d,0x02,0x1b,0xff,0xf4,0x02,0x2d,0x02,0x1e,0xff,0x85,0x02,0x2d,0x02,0x21,0xff,0xaa,0x02,0x2d,0x02,0x27,0xff,0xf4,0x02,0x2d,0x02,0x2a,0xff,0xf4,0x02,0x2d,0x02,0x31,0xff,0xb6,0x02,0x2e,0x02,0x0c,0xff,0xf4,0x02,0x2e,0x02,0x15,0xff,0xf4,0x02,0x2e,0x02,0x18,0xff,0xf4,0x02,0x2e,0x02,0x19,0xff,0xaa,0x02,0x2e,0x02,0x1a, +0xff,0xb6,0x02,0x2e,0x02,0x1b,0xff,0xf4,0x02,0x2e,0x02,0x1e,0xff,0x85,0x02,0x2e,0x02,0x21,0xff,0xaa,0x02,0x2e,0x02,0x27,0xff,0xf4,0x02,0x2e,0x02,0x2a,0xff,0xf4,0x02,0x2e,0x02,0x31,0xff,0xb6,0x02,0x2f,0x00,0x05,0xff,0x98,0x02,0x2f,0x00,0x0a,0xff,0x98,0x02,0x30,0x00,0x0f,0x00,0x52,0x02,0x30,0x00,0x10,0xff,0x73,0x02,0x30, +0x00,0x11,0x00,0x52,0x02,0x30,0x00,0x1d,0x00,0x52,0x02,0x30,0x00,0x1e,0x00,0x52,0x02,0x30,0x00,0xac,0x00,0x52,0x02,0x30,0x02,0x0b,0x00,0x29,0x02,0x30,0x02,0x0c,0xff,0xd7,0x02,0x30,0x02,0x12,0x00,0x3d,0x02,0x30,0x02,0x15,0xff,0xd7,0x02,0x30,0x02,0x18,0xff,0xd7,0x02,0x30,0x02,0x1b,0xff,0xd7,0x02,0x30,0x02,0x1e,0xff,0xe7, +0x02,0x30,0x02,0x27,0xff,0xd7,0x02,0x30,0x02,0x2a,0xff,0xd7,0x02,0x30,0x02,0x2d,0x00,0x3d,0x02,0x31,0x00,0x05,0x00,0x1d,0x02,0x31,0x00,0x0a,0x00,0x1d,0x02,0x31,0x00,0x0f,0xff,0x98,0x02,0x31,0x00,0x11,0xff,0x7f,0x02,0x31,0x00,0x22,0xff,0xb2,0x02,0x31,0x00,0xac,0xff,0x7f,0x02,0x31,0x00,0xbf,0x00,0x0e,0x02,0x31,0x00,0xc4, +0xff,0x8b,0x02,0x31,0x00,0xc5,0xff,0x8b,0x02,0x31,0x02,0x0b,0xff,0x91,0x02,0x31,0x02,0x0c,0xff,0xf6,0x02,0x31,0x02,0x12,0xff,0x91,0x02,0x31,0x02,0x15,0xff,0xf6,0x02,0x31,0x02,0x18,0xff,0xf6,0x02,0x31,0x02,0x19,0x00,0x29,0x02,0x31,0x02,0x1b,0xff,0xf6,0x02,0x31,0x02,0x21,0x00,0x29,0x02,0x31,0x02,0x27,0xff,0xf6,0x02,0x31, +0x02,0x2a,0xff,0xf6,0x02,0x31,0x02,0x2d,0xff,0x91,0x02,0x33,0x01,0xdc,0x00,0x29,0x02,0x33,0x01,0xde,0xff,0xa2,0x02,0x33,0x01,0xe0,0x00,0x2d,0x02,0x33,0x01,0xe1,0xff,0xa2,0x02,0x33,0x01,0xe3,0x00,0x29,0x02,0x33,0x01,0xe5,0x00,0x1d,0x02,0x33,0x01,0xe7,0xff,0x71,0x02,0x33,0x01,0xeb,0xff,0xa2,0x02,0x33,0x01,0xf2,0xff,0xa2, +0x02,0x33,0x01,0xf5,0xff,0xcf,0x02,0x33,0x01,0xf8,0xff,0xcf,0x02,0x33,0x01,0xf9,0x00,0x29,0x02,0x33,0x01,0xfa,0x00,0x1d,0x02,0x33,0x01,0xfb,0xff,0xa2,0x02,0x33,0x02,0x01,0x00,0x29,0x02,0x33,0x02,0x06,0xff,0xe7,0x02,0x33,0x02,0x07,0xff,0x27,0x02,0x33,0x02,0x09,0xff,0x4e,0x02,0x33,0x02,0x0a,0xff,0x4e,0x02,0x33,0x02,0x0b, +0xff,0x9e,0x02,0x33,0x02,0x0c,0xff,0x2b,0x02,0x33,0x02,0x0f,0xff,0x4e,0x02,0x33,0x02,0x10,0xff,0x4e,0x02,0x33,0x02,0x11,0xff,0x4e,0x02,0x33,0x02,0x12,0xff,0x9e,0x02,0x33,0x02,0x13,0xff,0x4e,0x02,0x33,0x02,0x14,0xff,0x4e,0x02,0x33,0x02,0x15,0xff,0x2b,0x02,0x33,0x02,0x16,0xff,0x4e,0x02,0x33,0x02,0x17,0xff,0x4e,0x02,0x33, +0x02,0x18,0xff,0x2b,0x02,0x33,0x02,0x19,0xff,0xc3,0x02,0x33,0x02,0x1b,0xff,0x2b,0x02,0x33,0x02,0x1c,0xff,0x4c,0x02,0x33,0x02,0x1d,0xff,0x4e,0x02,0x33,0x02,0x1e,0xff,0x4e,0x02,0x33,0x02,0x1f,0xff,0x4e,0x02,0x33,0x02,0x20,0xff,0x4e,0x02,0x33,0x02,0x21,0xff,0xc3,0x02,0x33,0x02,0x22,0xff,0x4e,0x02,0x33,0x02,0x23,0xff,0x4e, +0x02,0x33,0x02,0x24,0xff,0x60,0x02,0x33,0x02,0x25,0xff,0x4e,0x02,0x33,0x02,0x26,0xff,0x54,0x02,0x33,0x02,0x27,0xff,0x2b,0x02,0x33,0x02,0x29,0xff,0x4e,0x02,0x33,0x02,0x2a,0xff,0x2b,0x02,0x33,0x02,0x2b,0xff,0x66,0x02,0x33,0x02,0x2c,0x00,0x6f,0x02,0x33,0x02,0x2d,0xff,0x9e,0x02,0x33,0x02,0x2e,0xff,0x4e,0x02,0x33,0x02,0x32, +0xff,0x4e,0x02,0x33,0x02,0x34,0xff,0x4e,0x02,0x34,0x00,0x0f,0xff,0xc3,0x02,0x34,0x00,0x11,0xff,0xae,0x02,0x34,0x00,0xac,0xff,0xae,0x02,0x34,0x02,0x07,0xff,0xc3,0x02,0x34,0x02,0x0b,0xff,0xb6,0x02,0x34,0x02,0x0c,0xff,0xdb,0x02,0x34,0x02,0x12,0xff,0xb6,0x02,0x34,0x02,0x15,0xff,0xdb,0x02,0x34,0x02,0x18,0xff,0xdb,0x02,0x34, +0x02,0x19,0x00,0x29,0x02,0x34,0x02,0x1b,0xff,0xdb,0x02,0x34,0x02,0x21,0x00,0x29,0x02,0x34,0x02,0x26,0xff,0xe7,0x02,0x34,0x02,0x27,0xff,0xdb,0x02,0x34,0x02,0x2a,0xff,0xdb,0x02,0x34,0x02,0x2c,0x00,0x52,0x02,0x34,0x02,0x2d,0xff,0xb6,0x02,0x37,0x01,0x33,0x00,0x19,0x02,0x37,0x01,0xc5,0x00,0x29,0x02,0x37,0x02,0x37,0x00,0x19, +0x02,0x3d,0x00,0x57,0xff,0xbe,0x02,0x3d,0x00,0x59,0xff,0xcf,0x02,0x3d,0x00,0x5a,0xff,0xe5,0x02,0x3d,0x00,0x5c,0xff,0xd1,0x02,0x3d,0x00,0xba,0xff,0xbe,0x02,0x3d,0x00,0xc4,0xff,0xb2,0x02,0x3d,0x00,0xc5,0xff,0xb2,0x02,0x3d,0x00,0xeb,0xff,0xd1,0x02,0x3d,0x01,0x21,0xff,0xbe,0x02,0x3d,0x01,0x23,0xff,0xbe,0x02,0x3d,0x01,0x77, +0xff,0xbe,0x02,0x3d,0x01,0x81,0xff,0xe5,0x02,0x3d,0x01,0x83,0xff,0xd1,0x02,0x3d,0x01,0x8d,0xff,0xe5,0x02,0x3d,0x01,0x8f,0xff,0xe5,0x02,0x3d,0x01,0x91,0xff,0xe5,0x02,0x3d,0x01,0x93,0xff,0xd1,0x00,0x00,0x00,0x00,0x00,0x30,0x02,0x46,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x14,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x05,0x00,0x18,0x02,0x52,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x0e, +0x02,0x6a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0d,0x0e,0x04,0x03,0x40,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0e,0x00,0x56,0x02,0xea,0x00,0x03, +0x00,0x01,0x04,0x03,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x05,0x00,0x02,0x00,0x10,0x11,0x50,0x00,0x03,0x00,0x01,0x04,0x06,0x00,0x02,0x00,0x0c,0x11,0x60,0x00,0x03,0x00,0x01,0x04,0x07,0x00,0x02,0x00,0x10,0x11,0x6c,0x00,0x03,0x00,0x01,0x04,0x08,0x00,0x02,0x00,0x10,0x11,0x7c,0x00,0x03,0x00,0x01,0x04,0x09, +0x00,0x00,0x02,0x18,0x11,0x8c,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e,0x02,0x24,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x20,0x02,0x32,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x10,0x02,0x14,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x18, +0x02,0x52,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x0e,0x02,0x6a,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x72,0x02,0x78,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x2a,0x00,0x0e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x56,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x0e,0x18,0x13,0xa4,0x00,0x03, +0x00,0x01,0x04,0x09,0x00,0x0e,0x00,0x4a,0x02,0xea,0x00,0x03,0x00,0x01,0x04,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0b,0x00,0x02,0x00,0x10,0x21,0xbc,0x00,0x03,0x00,0x01,0x04,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x0e,0x00,0x02,0x00,0x0c,0x21,0xcc,0x00,0x03,0x00,0x01,0x04,0x10, +0x00,0x02,0x00,0x0e,0x21,0xd8,0x00,0x03,0x00,0x01,0x04,0x13,0x00,0x02,0x00,0x12,0x21,0xe6,0x00,0x03,0x00,0x01,0x04,0x14,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x15,0x00,0x02,0x00,0x10,0x21,0xf8,0x00,0x03,0x00,0x01,0x04,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x19,0x00,0x02,0x00,0x0e, +0x22,0x08,0x00,0x03,0x00,0x01,0x04,0x1b,0x00,0x02,0x00,0x10,0x22,0x16,0x00,0x03,0x00,0x01,0x04,0x1d,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x1f,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x04,0x24,0x00,0x02,0x00,0x0e,0x22,0x26,0x00,0x03,0x00,0x01,0x04,0x2d,0x00,0x02,0x00,0x0e,0x22,0x34,0x00,0x03, +0x00,0x01,0x08,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x08,0x16,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0a,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0x03,0x00,0x01,0x0c,0x0c,0x00,0x02,0x00,0x0c,0x11,0x44,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69, +0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20, +0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f, +0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37, +0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54, +0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65, +0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64, +0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64, +0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73, +0x00,0x2e,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x55,0x00,0x49,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72, +0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x35,0x00,0x2e,0x00,0x36,0x00,0x32,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x55,0x00,0x49,0x00,0x53,0x00,0x65,0x00,0x67,0x00,0x6f,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72, +0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00,0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x6f,0x00,0x75,0x00,0x70,0x00,0x20,0x00,0x6f, +0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x70,0x00,0x61,0x00,0x6e,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x2e,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x73,0x00,0x2e,0x00,0x6d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f, +0x00,0x66,0x00,0x74,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x74,0x00,0x79,0x00,0x70,0x00,0x6f,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x70,0x00,0x68,0x00,0x79,0x00,0x2f,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, +0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73, +0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72, +0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f, +0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65, +0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20, +0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65, +0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72, +0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74, +0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20, +0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66, +0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74, +0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c,0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41, +0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x68,0x00,0x65, +0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65, +0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69, +0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73, +0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f, +0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d, +0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48, +0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0d,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73, +0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, +0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20, +0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f, +0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f, +0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63,0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61, +0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77, +0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69, +0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75, +0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68, +0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75,0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72, +0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63, +0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73, +0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, +0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63, +0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0d, +0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76,0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74, +0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69, +0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e, +0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69, +0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0d,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f, +0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20, +0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c, +0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55,0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48, +0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c, +0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53, +0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45, +0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41,0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48, +0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44,0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49, +0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d,0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57, +0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c, +0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d, +0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54, +0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20, +0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6f, +0x00,0x62,0x00,0x79,0x01,0x0d,0x00,0x65,0x00,0x6a,0x00,0x6e,0x00,0xe9,0x00,0x6e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x72,0x00,0x64,0x03,0x9a,0x03,0xb1,0x03,0xbd,0x03,0xbf,0x03,0xbd,0x03,0xb9,0x03,0xba,0x03,0xac,0x00,0xa9,0x00,0x20,0x00,0x32, +0x00,0x30,0x00,0x31,0x00,0x38,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x43,0x00,0x6f,0x00,0x72,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x52, +0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x52,0x00,0x65,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54, +0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0xa9,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30, +0x00,0x33,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x30,0x00,0x37,0x00,0x2c,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x26,0x00,0x20,0x00,0x4a,0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48, +0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62, +0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x75,0x00,0x72,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74, +0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x3b,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x65,0x00,0x20, +0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72, +0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x73,0x00,0x2e,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, +0x00,0x2e,0x00,0x20,0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x63,0x00,0x72,0x00,0x65,0x00,0x61,0x00,0x74, +0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x70,0x00,0x6c,0x00,0x61,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73, +0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20, +0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66, +0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x64,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x72,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x69, +0x00,0x6e,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x69,0x00,0x63,0x00,0x68,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x77,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x20, +0x00,0x59,0x00,0x6f,0x00,0x75,0x00,0x20,0x00,0x6d,0x00,0x61,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74, +0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20, +0x00,0x65,0x00,0x6d,0x00,0x62,0x00,0x65,0x00,0x64,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, +0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x3b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x28,0x00,0x69,0x00,0x69,0x00,0x29,0x00,0x20,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x70,0x00,0x6f,0x00,0x72,0x00,0x61,0x00,0x72,0x00,0x69, +0x00,0x6c,0x00,0x79,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x77,0x00,0x6e,0x00,0x6c,0x00,0x6f,0x00,0x61,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74, +0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x70,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x68,0x00,0x65,0x00,0x6c, +0x00,0x70,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x00,0x20,0x00,0x41,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69, +0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x72,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x62,0x00,0x69,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x6c, +0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65, +0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x65,0x00,0x6e,0x00,0x2e,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x69,0x00,0x61,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x77,0x00,0x69,0x00,0x6b,0x00,0x69,0x00,0x2f,0x00,0x4d, +0x00,0x49,0x00,0x54,0x00,0x5f,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x70,0x00,0x70,0x00,0x6c,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e, +0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48, +0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x20,0x1d,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x20,0x00,0x6a,0x00,0x6f,0x00,0x69,0x00,0x6e,0x00,0x74,0x00,0x6c,0x00,0x79,0x00,0x20, +0x00,0x64,0x00,0x65,0x00,0x76,0x00,0x65,0x00,0x6c,0x00,0x6f,0x00,0x70,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x52,0x00,0x61,0x00,0x6c,0x00,0x70,0x00,0x68,0x00,0x20,0x00,0x48,0x00,0x61,0x00,0x6e,0x00,0x63,0x00,0x6f,0x00,0x63,0x00,0x6b,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x4a, +0x00,0x6f,0x00,0x68,0x00,0x6e,0x00,0x20,0x00,0x48,0x00,0x75,0x00,0x64,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x2e,0x00,0x20,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x50,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x68,0x00,0x65, +0x00,0x72,0x00,0x65,0x00,0x62,0x00,0x79,0x00,0x20,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x2c,0x00,0x20,0x00,0x66,0x00,0x72,0x00,0x65,0x00,0x65,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x63,0x00,0x68,0x00,0x61,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f, +0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x79,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6f,0x00,0x62,0x00,0x74,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20, +0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x54,0x00,0x79,0x00,0x70,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x66,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x42,0x00,0x69, +0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x48,0x00,0x65,0x00,0x62,0x00,0x72,0x00,0x65,0x00,0x77,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x6f,0x00,0x63,0x00,0x69,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x63, +0x00,0x75,0x00,0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x66,0x00,0x69,0x00,0x6c,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x20,0x1c,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f, +0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x20,0x1d,0x00,0x29,0x00,0x2c,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x65,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c, +0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x72,0x00,0x65,0x00,0x73, +0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x77,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x6d,0x00,0x69, +0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x75,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x2c,0x00,0x20, +0x00,0x6d,0x00,0x6f,0x00,0x64,0x00,0x69,0x00,0x66,0x00,0x79,0x00,0x2c,0x00,0x20,0x00,0x6d,0x00,0x65,0x00,0x72,0x00,0x67,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x70,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x2c,0x00,0x20,0x00,0x64,0x00,0x69,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x69,0x00,0x62,0x00,0x75, +0x00,0x74,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x2f,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x65,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69, +0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x2c, +0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d,0x00,0x69,0x00,0x74,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x77,0x00,0x68,0x00,0x6f,0x00,0x6d,0x00,0x20,0x00,0x74, +0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x66,0x00,0x75,0x00,0x72,0x00,0x6e, +0x00,0x69,0x00,0x73,0x00,0x68,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x64,0x00,0x6f,0x00,0x20,0x00,0x73,0x00,0x6f,0x00,0x2c,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x74,0x00,0x6f,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x66, +0x00,0x6f,0x00,0x6c,0x00,0x6c,0x00,0x6f,0x00,0x77,0x00,0x69,0x00,0x6e,0x00,0x67,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x64,0x00,0x69,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x3a,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x62,0x00,0x6f,0x00,0x76, +0x00,0x65,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x6d, +0x00,0x69,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x6e,0x00,0x6f,0x00,0x74,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x20,0x00,0x73,0x00,0x68,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x62,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x6e,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x64,0x00,0x65,0x00,0x64,0x00,0x20, +0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x61,0x00,0x6c,0x00,0x6c,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x70,0x00,0x69,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x72,0x00,0x20,0x00,0x73,0x00,0x75,0x00,0x62,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x61,0x00,0x6c,0x00,0x20,0x00,0x70,0x00,0x6f,0x00,0x72, +0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4c,0x00,0x61,0x00,0x79,0x00,0x6f,0x00,0x75,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x6f,0x00,0x67,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61, +0x00,0x72,0x00,0x65,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x0d,0x00,0x0a,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x20,0x00,0x50,0x00,0x52,0x00,0x4f,0x00,0x56,0x00,0x49,0x00,0x44,0x00,0x45,0x00,0x44,0x00,0x20, +0x00,0x27,0x00,0x41,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x53,0x00,0x27,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x59,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59, +0x00,0x20,0x00,0x4b,0x00,0x49,0x00,0x4e,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x45,0x00,0x58,0x00,0x50,0x00,0x52,0x00,0x45,0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4d,0x00,0x50,0x00,0x4c,0x00,0x49,0x00,0x45,0x00,0x44,0x00,0x2c,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x43,0x00,0x4c,0x00,0x55, +0x00,0x44,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x42,0x00,0x55,0x00,0x54,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x54,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x4d,0x00,0x49,0x00,0x54,0x00,0x45,0x00,0x44,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x52, +0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x49,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4d,0x00,0x45,0x00,0x52,0x00,0x43,0x00,0x48,0x00,0x41,0x00,0x4e,0x00,0x54,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x46,0x00,0x49,0x00,0x54,0x00,0x4e,0x00,0x45, +0x00,0x53,0x00,0x53,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x20,0x00,0x50,0x00,0x41,0x00,0x52,0x00,0x54,0x00,0x49,0x00,0x43,0x00,0x55,0x00,0x4c,0x00,0x41,0x00,0x52,0x00,0x20,0x00,0x50,0x00,0x55,0x00,0x52,0x00,0x50,0x00,0x4f,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x44,0x00,0x20, +0x00,0x4e,0x00,0x4f,0x00,0x4e,0x00,0x49,0x00,0x4e,0x00,0x46,0x00,0x52,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x45,0x00,0x4d,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x2e,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x4e,0x00,0x4f,0x00,0x20,0x00,0x45,0x00,0x56,0x00,0x45,0x00,0x4e,0x00,0x54,0x00,0x20,0x00,0x53,0x00,0x48,0x00,0x41, +0x00,0x4c,0x00,0x4c,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x41,0x00,0x55,0x00,0x54,0x00,0x48,0x00,0x4f,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x50,0x00,0x59,0x00,0x52,0x00,0x49,0x00,0x47,0x00,0x48,0x00,0x54,0x00,0x20,0x00,0x48,0x00,0x4f,0x00,0x4c,0x00,0x44, +0x00,0x45,0x00,0x52,0x00,0x53,0x00,0x20,0x00,0x42,0x00,0x45,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x4c,0x00,0x45,0x00,0x20,0x00,0x46,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x59,0x00,0x20,0x00,0x43,0x00,0x4c,0x00,0x41,0x00,0x49,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x44,0x00,0x41,0x00,0x4d, +0x00,0x41,0x00,0x47,0x00,0x45,0x00,0x53,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x4c,0x00,0x49,0x00,0x41,0x00,0x42,0x00,0x49,0x00,0x4c,0x00,0x49,0x00,0x54,0x00,0x59,0x00,0x2c,0x00,0x20,0x00,0x57,0x00,0x48,0x00,0x45,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52, +0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x4e,0x00,0x20,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x54,0x00,0x52,0x00,0x41,0x00,0x43,0x00,0x54,0x00,0x2c,0x00,0x20,0x00,0x54,0x00,0x4f,0x00,0x52,0x00,0x54,0x00,0x20, +0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x57,0x00,0x49,0x00,0x53,0x00,0x45,0x00,0x2c,0x00,0x20,0x00,0x41,0x00,0x52,0x00,0x49,0x00,0x53,0x00,0x49,0x00,0x4e,0x00,0x47,0x00,0x20,0x00,0x46,0x00,0x52,0x00,0x4f,0x00,0x4d,0x00,0x2c,0x00,0x20,0x00,0x4f,0x00,0x55,0x00,0x54,0x00,0x20, +0x00,0x4f,0x00,0x46,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x43,0x00,0x4f,0x00,0x4e,0x00,0x4e,0x00,0x45,0x00,0x43,0x00,0x54,0x00,0x49,0x00,0x4f,0x00,0x4e,0x00,0x20,0x00,0x57,0x00,0x49,0x00,0x54,0x00,0x48,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46, +0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x55,0x00,0x53,0x00,0x45,0x00,0x20,0x00,0x4f,0x00,0x52,0x00,0x20,0x00,0x4f,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x52,0x00,0x20,0x00,0x44,0x00,0x45,0x00,0x41,0x00,0x4c,0x00,0x49,0x00,0x4e, +0x00,0x47,0x00,0x53,0x00,0x20,0x00,0x49,0x00,0x4e,0x00,0x20,0x00,0x54,0x00,0x48,0x00,0x45,0x00,0x20,0x00,0x53,0x00,0x4f,0x00,0x46,0x00,0x54,0x00,0x57,0x00,0x41,0x00,0x52,0x00,0x45,0x00,0x2e,0x00,0x0d,0x00,0x0a,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x61,0x00,0x6c,0x00,0x69,0x00,0x4e,0x00,0x6f,0x00,0x72, +0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x65,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x64,0x00,0x61,0x00,0x61,0x00,0x72,0x00,0x64,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0x61,0x00,0x6c,0x00,0x6e,0x00,0x79,0x04,0x1e,0x04,0x31,0x04,0x4b,0x04,0x47,0x04,0x3d, +0x04,0x4b,0x04,0x39,0x00,0x4e,0x00,0x6f,0x00,0x72,0x00,0x6d,0x00,0xe1,0x00,0x6c,0x00,0x6e,0x00,0x65,0x00,0x4e,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x64,0x00,0x6e,0x00,0x6f,0x00,0x41,0x00,0x72,0x00,0x72,0x00,0x75,0x00,0x6e,0x00,0x74,0x00,0x61,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x4e,0x00,0x77,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x08,0x00,0x0a,0x00,0x13,0x00,0x07,0xff,0xff,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x23,0x8a,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x82,0x30,0x82,0x23,0x7e, +0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x23,0x6f,0x30,0x82,0x23,0x6b,0x02,0x01,0x01,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x71,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0xa0,0x63,0x30,0x61,0x30,0x2c,0x06,0x0a,0x2b,0x06,0x01, +0x04,0x01,0x82,0x37,0x02,0x01,0x1c,0xa2,0x1e,0x80,0x1c,0x00,0x3c,0x00,0x3c,0x00,0x3c,0x00,0x4f,0x00,0x62,0x00,0x73,0x00,0x6f,0x00,0x6c,0x00,0x65,0x00,0x74,0x00,0x65,0x00,0x3e,0x00,0x3e,0x00,0x3e,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0xd1,0x66,0x06,0x5e,0x25,0x40, +0xdd,0x89,0xdd,0x33,0x17,0x38,0x13,0xf4,0x79,0x7b,0x24,0x66,0x3e,0x9d,0x0d,0xef,0x96,0x4e,0xe9,0x40,0xb6,0xb7,0x21,0xab,0x14,0x43,0xa0,0x82,0x0d,0x81,0x30,0x82,0x05,0xff,0x30,0x82,0x03,0xe7,0xa0,0x03,0x02,0x01,0x02,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00,0x01,0x03, +0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, +0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53, +0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x38,0x30,0x37,0x31,0x32,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x17,0x0d,0x31,0x39,0x30,0x37,0x32,0x36,0x32,0x30,0x30,0x38,0x34,0x38,0x5a,0x30,0x74,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13, +0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72, +0x61,0x74,0x69,0x6f,0x6e,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x03,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01, +0x0a,0x02,0x82,0x01,0x01,0x00,0xd1,0x94,0x76,0x36,0xe6,0x86,0xab,0x36,0xfe,0x69,0xf9,0x46,0x7c,0x8b,0x88,0x50,0xcb,0x90,0x70,0x7f,0xb0,0x55,0xa9,0x24,0x1d,0x7e,0x39,0xe7,0x05,0x9f,0x0f,0xac,0x7b,0x97,0xb2,0xce,0x73,0x0a,0xfb,0xd4,0x9b,0x24,0x5c,0x16,0xb5,0x39,0xdd,0x1b,0x7e,0x33,0x6c,0x11,0xfc,0x3b,0x26,0xf3,0x98,0xaa, +0x5d,0x53,0x6b,0xaa,0xc3,0xec,0x13,0xb8,0xd2,0xef,0xcf,0x57,0x7f,0xcc,0x65,0xcb,0xaf,0x4d,0x2e,0x32,0xb1,0x56,0x2b,0x4e,0x34,0x07,0x89,0xfe,0x69,0x21,0xbd,0x3e,0x44,0xfb,0xde,0x12,0x9d,0x85,0xbf,0x7c,0x76,0x86,0x7d,0x72,0xb1,0x76,0x9b,0x61,0xe6,0x8a,0x64,0x4c,0x46,0xce,0xb6,0xd5,0x3a,0x8c,0x77,0x93,0x77,0x67,0x21,0x9c, +0xb6,0x5a,0x06,0x5e,0x47,0x86,0xf5,0x3c,0xd1,0x09,0xca,0x0d,0x3d,0xcd,0xb2,0xe9,0xa1,0x50,0x78,0xd1,0x84,0x88,0xe2,0x01,0x3c,0x22,0xfc,0xaf,0x96,0x08,0xcc,0x5d,0x99,0xc0,0xed,0xeb,0xa5,0x5a,0x98,0x92,0xf5,0xc8,0x40,0x4e,0x6a,0x73,0xaf,0xde,0xe3,0x74,0x7a,0xd3,0x5f,0x46,0x97,0xbc,0xe2,0x67,0x28,0x77,0x99,0xac,0xc1,0x0e, +0x31,0x16,0x8f,0x00,0x0f,0x01,0xfe,0x4b,0x5e,0x54,0x0f,0xca,0xc4,0x65,0x3f,0x0a,0xe3,0xa3,0x46,0xdb,0xf6,0x2c,0x03,0x3a,0x19,0xbe,0x68,0x05,0x16,0x9c,0xe6,0x7f,0x34,0xbf,0xa7,0x87,0x8d,0x65,0x39,0x26,0xc9,0x63,0xd4,0xef,0xc5,0xdd,0xbd,0x25,0xfe,0xfd,0x28,0xf4,0x34,0x86,0x79,0xac,0x2a,0xd5,0x5f,0x30,0x91,0x3b,0xe4,0x14, +0x6a,0xeb,0xb1,0xca,0x04,0x23,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x7e,0x30,0x82,0x01,0x7a,0x30,0x1f,0x06,0x03,0x55,0x1d,0x25,0x04,0x18,0x30,0x16,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x4c,0x08,0x01,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x03,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x47, +0xbe,0xc0,0xcb,0xe1,0xa6,0x3f,0xfd,0x65,0xd6,0x38,0xf2,0x03,0x5d,0xb7,0xaf,0x77,0xf7,0x40,0xff,0x30,0x50,0x06,0x03,0x55,0x1d,0x11,0x04,0x49,0x30,0x47,0xa4,0x45,0x30,0x43,0x31,0x29,0x30,0x27,0x06,0x03,0x55,0x04,0x0b,0x13,0x20,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e, +0x73,0x20,0x50,0x75,0x65,0x72,0x74,0x6f,0x20,0x52,0x69,0x63,0x6f,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x05,0x13,0x0d,0x32,0x33,0x30,0x30,0x31,0x32,0x2b,0x34,0x33,0x37,0x39,0x36,0x35,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x48,0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5, +0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x54,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4d,0x30,0x4b,0x30,0x49,0xa0,0x47,0xa0,0x45,0x86,0x43,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x72,0x6c,0x2f,0x4d,0x69,0x63, +0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x6c,0x30,0x61,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x55,0x30,0x53,0x30,0x51,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f, +0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x43,0x6f,0x64,0x53,0x69,0x67,0x50,0x43,0x41,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x2d,0x30,0x37,0x2d,0x30,0x38,0x2e,0x63,0x72,0x74,0x30, +0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x9f,0xf5,0xc9,0x53,0x0d,0x3f,0x0d,0x26,0xec,0xa2,0x44,0xd8,0x0d,0xd1,0x9f,0x63,0x96,0x06,0x4b,0x3f,0x1e,0x5c,0xc5,0x33,0xa3,0xa4,0xc3,0x6c,0xaf,0x1f,0xc0, +0x01,0xba,0xeb,0x65,0xec,0x9e,0x33,0x10,0x0f,0xa7,0xac,0x5b,0xd4,0xbd,0x90,0x61,0x17,0xe7,0x31,0xe7,0xc3,0x26,0xb4,0xac,0xf5,0x27,0xd3,0x48,0x93,0x86,0x88,0xfe,0x12,0x35,0x91,0x64,0x22,0xd1,0x6b,0x2d,0x3b,0xa8,0x2c,0x15,0x94,0x29,0xd2,0x37,0x96,0xe6,0x35,0xff,0x0c,0xce,0xc8,0x06,0x16,0x16,0x9e,0x24,0xb1,0xe2,0x39,0xf9, +0x6e,0x0e,0x78,0xd8,0x0c,0x1b,0xb6,0x29,0x60,0x27,0x76,0x34,0x24,0x9b,0xdd,0xb9,0x97,0x75,0xcb,0x01,0x3b,0xad,0x82,0x12,0x16,0x22,0x80,0x89,0x15,0x84,0xbb,0x98,0x50,0x20,0xb0,0x17,0x26,0x86,0x49,0xaf,0xce,0x7d,0x45,0x15,0x43,0x34,0x96,0xcf,0x81,0x5c,0x18,0x2c,0xd4,0x93,0xf2,0x67,0xab,0xe2,0x73,0xc8,0x3d,0xa3,0xcd,0xfc, +0x32,0x1e,0x60,0x1c,0xe9,0xb0,0x1b,0x30,0xfb,0x2c,0xbb,0x07,0x2e,0x96,0x84,0x93,0x45,0x28,0x54,0x5c,0xcd,0x96,0xfd,0xa0,0xdb,0x81,0xd8,0xb6,0x30,0xca,0x43,0xb1,0xf3,0x48,0xc0,0xb2,0x46,0x1c,0x5d,0x5e,0x76,0x2a,0x58,0x9f,0xd4,0xee,0xf2,0xf4,0xfa,0x48,0x4c,0xb5,0x61,0x8b,0xb0,0x8c,0x41,0xe9,0xaa,0xb8,0x9d,0x90,0xf4,0xff, +0x6a,0x42,0x0f,0xb9,0x3e,0xe9,0x0e,0xec,0x94,0xfc,0x8d,0x80,0xbb,0x78,0xe3,0x23,0xa7,0x78,0x5b,0xb2,0x6d,0x1f,0xf9,0x59,0xc1,0x7d,0xb6,0xd1,0x39,0xc9,0x79,0xe0,0x83,0x1c,0x60,0x0a,0xda,0x3d,0xb0,0xd1,0xed,0x36,0xbf,0x45,0x07,0xe9,0x1b,0x36,0x6e,0xe5,0x3d,0x3b,0x05,0x03,0xa7,0xd4,0xa7,0x25,0x12,0x8f,0xe6,0x76,0xa3,0x13, +0xb3,0x45,0x5a,0x43,0x31,0x82,0xda,0xd8,0x84,0xae,0xb9,0xb0,0x1f,0x75,0xf5,0xf6,0x1d,0x7d,0x51,0x11,0x37,0x27,0xe8,0xb5,0x35,0x84,0x71,0xf7,0x57,0xaa,0xae,0xfa,0x89,0x71,0xc9,0x98,0xd2,0x9e,0x5a,0x64,0x76,0xbe,0x8c,0xc3,0x7d,0x15,0x6a,0x91,0xf1,0x14,0xf4,0xf2,0xd9,0x35,0x31,0xb8,0xdb,0x72,0xfa,0xb4,0x75,0xc8,0x88,0x9b, +0x6a,0xbf,0x98,0x45,0xc7,0x66,0xb2,0xd7,0xff,0xce,0x92,0x90,0x75,0xe4,0xeb,0xe6,0x86,0xd2,0xc8,0x1b,0xdb,0x27,0xc0,0x5b,0x95,0x6f,0x49,0x6f,0x58,0x5d,0x69,0x2a,0xde,0x53,0x4b,0xf8,0xe8,0xca,0x7b,0xf6,0x6c,0x15,0xf9,0x03,0x19,0x0f,0x11,0x85,0xaa,0x4f,0x9a,0xbf,0xaa,0x57,0xdd,0x60,0xc6,0xf5,0x71,0x20,0xf4,0x51,0xa8,0x9a, +0xca,0xe9,0xd1,0xeb,0x34,0x47,0x3d,0x75,0xfa,0x22,0xec,0x55,0x3f,0x6a,0x19,0x39,0x6b,0x10,0xe9,0x5a,0x3f,0x8e,0xf4,0x23,0x78,0x30,0xb2,0xf2,0xa6,0x38,0xcb,0x35,0x8d,0xaa,0x98,0x59,0x24,0x40,0xb8,0x3a,0x67,0xa4,0x07,0x5f,0xa0,0xfe,0xd8,0x3b,0x49,0x13,0xfb,0x0c,0xe1,0xed,0x0b,0x6d,0x83,0x50,0xce,0xf0,0x7f,0x3e,0xe0,0xd9, +0x08,0xe8,0x8c,0x21,0x4a,0x41,0xc2,0xde,0xeb,0x8e,0x5b,0xee,0x03,0xc3,0x1d,0x6e,0x6e,0xe6,0x54,0x35,0x66,0x67,0x72,0x7c,0x1a,0xea,0x52,0xf6,0x22,0xc4,0x72,0x3f,0xae,0x30,0x82,0x07,0x7a,0x30,0x82,0x05,0x62,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x0e,0x90,0xd2,0x00,0x00,0x00,0x00,0x00,0x03,0x30,0x0d,0x06,0x09,0x2a,0x86, +0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64, +0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43,0x65,0x72,0x74,0x69,0x66, +0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x31,0x30,0x1e,0x17,0x0d,0x31,0x31,0x30,0x37,0x30,0x38,0x32,0x30,0x35,0x39,0x30,0x39,0x5a,0x17,0x0d,0x32,0x36,0x30,0x37,0x30,0x38,0x32,0x31,0x30,0x39,0x30,0x39,0x5a,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, +0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, +0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x30,0x82,0x02,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86, +0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0f,0x00,0x30,0x82,0x02,0x0a,0x02,0x82,0x02,0x01,0x00,0xab,0xf0,0xfa,0x72,0x10,0x1c,0x2e,0xad,0xd8,0x6e,0xaa,0x82,0x10,0x4d,0x34,0xba,0xf2,0xb6,0x58,0x21,0x9f,0x42,0x1b,0x2a,0x6b,0xe9,0x5a,0x50,0xaa,0xb8,0x06,0x38,0x1a,0x04,0x49,0xba,0x7f,0xc3,0x0c,0x1e,0xdd,0x37,0x6b, +0xc6,0x12,0xd8,0x0b,0xf0,0x38,0xc2,0x99,0x06,0xb0,0xc8,0x39,0xd5,0x01,0x14,0x31,0x42,0xd3,0x89,0x0d,0x79,0x64,0x87,0x7e,0x94,0x60,0x24,0x6c,0xaf,0x9e,0x49,0x9c,0xe9,0x68,0x5e,0xd2,0xdf,0x9b,0x53,0xb2,0x0a,0x2c,0xc3,0xaf,0xd9,0xa9,0x2b,0xae,0x7a,0x09,0xaf,0xd7,0x96,0x59,0xca,0x60,0x1a,0x05,0xe9,0x66,0x76,0xe8,0x32,0x52, +0x26,0x12,0x2f,0xe7,0xab,0x08,0x50,0xcf,0xb3,0x44,0xb7,0x5d,0xd8,0xc4,0x2e,0x03,0x75,0xab,0x68,0xf3,0xcb,0x6d,0xf3,0x3a,0x5c,0xa1,0x16,0xf4,0x46,0xba,0xe0,0x38,0x64,0xac,0x6e,0x64,0x35,0x78,0xa6,0xa0,0x63,0x0f,0x2d,0xd3,0x40,0x93,0xf8,0xe3,0xde,0x07,0x0d,0xd5,0x5c,0x79,0xa5,0x49,0x29,0xe7,0x0d,0xbe,0xa0,0x13,0x77,0xbe, +0x94,0x3d,0xef,0xfb,0xe3,0x2b,0x5a,0x10,0x1f,0x4d,0x56,0x28,0xa2,0x7a,0x72,0xe0,0x12,0x3a,0xb7,0x49,0x5e,0xd8,0xed,0xed,0x43,0x91,0x83,0xd9,0x7b,0xb2,0x7b,0x86,0x1b,0xd9,0x3e,0xb1,0x8c,0x5d,0xe8,0x89,0x4f,0x84,0x1a,0xf2,0xa1,0x2f,0x59,0xe4,0x90,0x3b,0x2d,0xae,0x33,0x58,0xc5,0xb7,0x3e,0xfe,0x32,0xd3,0xb3,0x03,0x3d,0xb1, +0xb2,0xaf,0x92,0x38,0x7e,0xd2,0x9d,0x80,0x2c,0xf5,0x4e,0x56,0x91,0x21,0x35,0x25,0xc3,0x39,0x6e,0x64,0x7f,0x53,0xba,0x9c,0x0f,0xad,0x19,0x23,0x84,0xcb,0xf4,0xba,0x03,0x86,0x8d,0xf7,0x5f,0xf0,0xd0,0x52,0xbf,0x8c,0x94,0x87,0xbc,0xc0,0x21,0x74,0x25,0x5f,0x18,0x28,0xb6,0xcc,0x27,0x28,0x38,0x25,0x98,0x39,0x4a,0x36,0xcf,0x7c, +0xb1,0x92,0xae,0x1c,0x23,0xa7,0xa9,0x66,0xec,0x61,0x1f,0x6a,0xe1,0x28,0x49,0x9d,0x5f,0x88,0xe2,0x25,0x5d,0xd3,0x21,0x4b,0x3e,0x52,0xc4,0xb5,0x57,0x3f,0x24,0x03,0xf0,0xd1,0x7a,0x5b,0x2f,0xd5,0x23,0xe3,0x70,0x5d,0x0f,0x51,0x46,0x77,0xb3,0xf8,0x00,0xe1,0xbc,0xac,0x02,0x82,0x5f,0xdb,0xc0,0x15,0xb3,0xbd,0x1b,0xd4,0x55,0x4b, +0xe7,0x39,0xa1,0x0f,0xe9,0x23,0x49,0xbc,0x18,0xb8,0x44,0x7c,0x45,0xe4,0xc1,0xc3,0x72,0x7a,0xe0,0x72,0xe7,0x24,0xdf,0xbf,0x46,0x99,0xc5,0xef,0xc2,0x1c,0x57,0xdb,0x83,0x8d,0xec,0x4d,0x49,0x30,0xa7,0xab,0x8e,0xdf,0xec,0x5b,0x9f,0xaf,0xfc,0xdd,0xb0,0x66,0xe2,0xc1,0x97,0x81,0x7b,0xed,0xd6,0xed,0x4b,0xe7,0x49,0x29,0xa7,0x13, +0x28,0xa6,0xa7,0x7d,0x67,0x80,0xe6,0x8a,0x62,0x78,0x5f,0xb2,0x2f,0x84,0xd7,0x57,0x9c,0x5c,0xbf,0x77,0x28,0x28,0xf1,0xed,0x6d,0xc3,0x28,0x8f,0x2c,0x8f,0x40,0x37,0x4f,0xc1,0xe1,0x85,0x44,0x89,0xc4,0x09,0x4c,0xc5,0xd4,0xa5,0x43,0x2f,0x74,0x95,0xf7,0x6e,0xf8,0x78,0x20,0x58,0x2c,0x13,0x5d,0x60,0x95,0x9a,0x3e,0x4f,0x33,0x84, +0xda,0xb0,0x88,0x17,0xde,0x9e,0x4e,0xf4,0x96,0xb0,0xbc,0x46,0xa0,0x6c,0x98,0xd2,0xe0,0xd6,0x88,0x8c,0x0b,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xed,0x30,0x82,0x01,0xe9,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16,0x04,0x14,0x48, +0x6e,0x64,0xe5,0x50,0x05,0xd3,0x82,0xaa,0x17,0x37,0x37,0x22,0xb5,0x6d,0xa8,0xca,0x75,0x02,0x95,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f,0x06,0x03,0x55, +0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x72,0x2d,0x3a,0x02,0x31,0x90,0x43,0xb9,0x14,0x05,0x4e,0xe1,0xea,0xa7,0xc7,0x31,0xd1,0x23,0x89,0x34,0x30,0x5a,0x06,0x03,0x55,0x1d,0x1f,0x04,0x53,0x30,0x51,0x30,0x4f,0xa0,0x4d,0xa0,0x4b,0x86,0x49, +0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f, +0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x6c,0x30,0x5e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x52,0x30,0x50,0x30,0x4e,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x42,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f, +0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x32,0x30,0x31,0x31,0x5f,0x32,0x30,0x31,0x31,0x5f,0x30,0x33,0x5f,0x32,0x32,0x2e,0x63,0x72,0x74,0x30,0x81,0x9f,0x06,0x03,0x55,0x1d,0x20,0x04,0x81,0x97,0x30,0x81,0x94,0x30,0x81,0x91,0x06,0x09,0x2b,0x06,0x01,0x04, +0x01,0x82,0x37,0x2e,0x03,0x30,0x81,0x83,0x30,0x3f,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x33,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x6f,0x70,0x73,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x70,0x72,0x69,0x6d,0x61, +0x72,0x79,0x63,0x70,0x73,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x70,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00, +0x6d,0x00,0x65,0x00,0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x67,0xf2,0x86,0xa5,0x98,0xe0,0x54,0x79,0x1a,0x2e,0xd3,0xd8,0x74,0x67,0x22,0x9b,0x0b,0x96,0x11,0xe1,0x63,0x92,0x99,0x42,0x96,0x7d,0xd2,0x79,0x0c,0x90,0xc1,0x65,0x5f, +0x2e,0x2c,0x3e,0xf8,0xc3,0x72,0xd1,0x6d,0x83,0xfe,0xbe,0x3f,0xe8,0x0a,0xca,0x3b,0xbf,0x47,0xa9,0xa3,0xf3,0x69,0xdb,0x63,0xbf,0x22,0x35,0xa5,0x97,0x5d,0x65,0x84,0x90,0x7d,0x8b,0x46,0x50,0x55,0xd8,0x0c,0x92,0x7c,0xd2,0x1a,0x4b,0x1c,0xf3,0x3c,0x42,0x8b,0x52,0xd0,0xb0,0xfd,0x6b,0xe3,0x3e,0x07,0x2e,0x29,0x9b,0xe6,0x3d,0x1b, +0xa5,0xd4,0xb5,0x1d,0x77,0x94,0x39,0xe2,0xe9,0x64,0xc9,0x44,0x3d,0x78,0x7a,0x23,0xf3,0x13,0x7d,0xa6,0x90,0x74,0x83,0x8d,0xf4,0xcb,0x26,0x02,0x46,0x2a,0xc2,0x8a,0x10,0xbb,0xa4,0xa9,0x05,0x0c,0x9b,0xed,0x68,0xfa,0x68,0x2e,0x95,0xa0,0x2a,0x3f,0x2a,0x6b,0x58,0x49,0x63,0x1f,0x09,0x69,0x6e,0x5a,0x98,0x96,0xe4,0x83,0xf4,0xc0, +0x8f,0xf3,0x46,0x2b,0xde,0xfc,0x3b,0xd0,0xbd,0x35,0xef,0x6e,0x25,0xae,0xe5,0xaf,0x27,0xed,0xd0,0xdd,0xf3,0x0e,0xaf,0x99,0x28,0x97,0x98,0x4d,0x0e,0x3d,0x0b,0xf2,0x08,0x89,0xd6,0x1f,0xc3,0x32,0x18,0xe2,0xf0,0xc5,0x2d,0xce,0x5b,0x9e,0xb4,0x49,0x39,0x0a,0xc6,0x0a,0xc2,0xc6,0xad,0xae,0xe5,0xb2,0xd9,0xdb,0x15,0x88,0x51,0x45, +0x58,0x38,0x32,0x71,0x27,0x1a,0x7f,0xb1,0xf4,0x27,0xf8,0xde,0x2c,0x3a,0x20,0x69,0x98,0xb2,0x59,0x89,0x68,0x6e,0x6f,0xa7,0xb7,0x74,0xc3,0x40,0x05,0x06,0xa6,0x01,0x2a,0x28,0x3e,0x82,0x3f,0x13,0x4d,0x66,0x0b,0xc0,0xb3,0x4d,0xf5,0xe1,0x8f,0x7f,0x1c,0x6f,0x15,0x7d,0x45,0xa7,0x76,0xe5,0x40,0x2a,0x65,0xa3,0xc3,0x5d,0x52,0x62, +0x86,0xc3,0x1d,0x63,0x36,0x97,0x86,0xdf,0xda,0xf3,0xf8,0xf2,0x16,0xa1,0x9a,0x27,0xe1,0xcd,0xa5,0x97,0xd0,0xee,0x5d,0x63,0x41,0xe3,0x5b,0x07,0x9c,0x87,0x3e,0x06,0x77,0x06,0xd1,0x06,0xb1,0x75,0x1f,0x14,0xbe,0x61,0x61,0xb5,0xf0,0xdc,0xc6,0x1b,0x04,0xbe,0xdf,0x41,0xc7,0x0e,0x28,0xee,0xde,0x65,0x2f,0xec,0x97,0xf6,0xa1,0x5c, +0x96,0xd8,0x00,0xd6,0xa1,0x46,0xbd,0x59,0xf3,0x97,0xa5,0x09,0x4b,0x48,0x10,0x99,0x80,0x1f,0xd0,0x00,0x29,0xc5,0xb1,0x9b,0xa5,0x3f,0x45,0x77,0x1e,0x35,0xc6,0xd2,0xa2,0xa2,0x9f,0x7a,0x7a,0x22,0xfa,0x48,0x95,0x1f,0xab,0xfb,0x47,0x23,0x80,0xf5,0x9e,0xf8,0xbf,0x6b,0xb7,0x4b,0x97,0xe2,0xeb,0x75,0x78,0x1a,0xec,0xea,0x37,0x99, +0x79,0x18,0x4b,0xff,0xd6,0xb3,0x23,0x68,0x75,0xe6,0xaf,0xfa,0xfc,0x8b,0xeb,0x0b,0x80,0xea,0x69,0x3b,0xaf,0xfc,0x30,0xed,0x04,0x4c,0x8e,0xdf,0xdf,0x75,0x6d,0x63,0x91,0x3d,0xd1,0x9d,0x56,0x4e,0x4f,0xbf,0x80,0x57,0x22,0xa1,0x78,0x11,0x32,0x21,0x7a,0xef,0x41,0x0a,0xb1,0x3f,0xfb,0xa8,0xcc,0xa4,0x5d,0xc1,0xa1,0x88,0x9b,0x57, +0x71,0x56,0x4e,0x48,0x45,0xc0,0x42,0xc9,0x9b,0x76,0x5b,0x0a,0x80,0x48,0x6b,0xfd,0x79,0x9f,0xc1,0xbd,0x6d,0x6d,0x6a,0xc9,0x52,0x73,0x13,0x0d,0x7a,0x50,0xcd,0x31,0x82,0x15,0x5b,0x30,0x82,0x15,0x57,0x02,0x01,0x01,0x30,0x81,0x95,0x30,0x7e,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11, +0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74, +0x69,0x6f,0x6e,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x03,0x13,0x1f,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,0x69,0x67,0x6e,0x69,0x6e,0x67,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x31,0x02,0x13,0x33,0x00,0x00,0x01,0x03,0x5e,0x25,0x1c,0x99,0x1f,0xa3,0x1e,0xb8,0x00,0x00,0x00,0x00, +0x01,0x03,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x81,0xae,0x30,0x19,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x04,0x30,0x1c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0b,0x31,0x0e,0x30, +0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x15,0x30,0x2f,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xef,0x1c,0x60,0x9d,0x4d,0xa4,0xea,0x66,0x76,0x09,0x51,0xf4,0xba,0x29,0x24,0x71,0xc9,0x1d,0x9e,0x20,0xa1,0x48,0x83,0xb3,0x95,0xb6,0x32,0x21,0x3f,0xc2,0xe1,0x1b,0x30,0x42, +0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x02,0x01,0x0c,0x31,0x34,0x30,0x32,0xa0,0x14,0x80,0x12,0x00,0x4d,0x00,0x69,0x00,0x63,0x00,0x72,0x00,0x6f,0x00,0x73,0x00,0x6f,0x00,0x66,0x00,0x74,0xa1,0x1a,0x80,0x18,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63, +0x6f,0x6d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x04,0x82,0x01,0x00,0x40,0xe0,0xd2,0x89,0x67,0x1e,0x8d,0xfc,0xdd,0x9c,0xd3,0x57,0x55,0xe8,0x1f,0x88,0x8d,0x5a,0xb1,0x90,0xf0,0xfa,0xb0,0x85,0xec,0xba,0xfa,0x6d,0x70,0xfa,0xab,0x25,0x02,0xe2,0x31,0xef,0xa5,0xfb,0xb2,0x85,0x7a,0xf7,0x50, +0xcf,0x79,0xff,0xf4,0x16,0x03,0x5f,0x86,0xa6,0xde,0xda,0x4a,0xfc,0x47,0xdd,0x21,0x41,0x45,0xda,0xcd,0x3b,0xe9,0xf3,0xf1,0xe6,0xd3,0xf8,0x9b,0xd8,0x83,0xcb,0x5f,0x4e,0x07,0x80,0x70,0x2a,0xc3,0x57,0x1e,0xa3,0x72,0xf3,0xe7,0xc7,0x90,0xd3,0x53,0xc7,0x44,0x76,0xd6,0xff,0xeb,0x2e,0x62,0xf4,0x1b,0xe2,0x09,0x62,0x8f,0x0a,0x08, +0x1b,0xc9,0xc5,0x1a,0xe0,0xd3,0x20,0x65,0x22,0x84,0xc1,0x58,0x73,0xa8,0x05,0x4c,0x6c,0x2a,0xee,0x5c,0x61,0x76,0x16,0x53,0x2b,0xf2,0x1a,0xb3,0xdb,0x8c,0xd7,0x39,0x03,0x3d,0x4c,0xf6,0xbd,0x67,0x20,0x8e,0x69,0xf9,0x0e,0x50,0x18,0x08,0x70,0x7d,0x33,0xfb,0xff,0x2e,0x5c,0x62,0x2d,0x6e,0xc6,0x3e,0x5e,0xf7,0x60,0x56,0x99,0xce, +0x52,0x94,0xce,0x2f,0xae,0xf8,0x50,0x19,0xe7,0x6e,0x6a,0x22,0x9b,0x27,0x70,0xfe,0xbe,0x79,0xdb,0x31,0x52,0x01,0x3f,0x4e,0xb4,0xcd,0xe8,0xf7,0x30,0xc2,0x61,0x02,0xc7,0x05,0x9b,0x0a,0x2f,0xe5,0xf5,0x0e,0x0c,0x9d,0xcb,0x2a,0xb0,0x79,0xac,0x96,0xf8,0x39,0xf0,0xb4,0xe5,0x67,0x7f,0x94,0x8a,0xac,0x77,0x9a,0xc9,0x38,0xb9,0x93, +0xed,0xf5,0x33,0xc2,0x44,0x82,0x81,0x5d,0xab,0x33,0x75,0xd2,0x6e,0x43,0xf4,0x03,0xf0,0x91,0x23,0x18,0xfb,0xa1,0x82,0x12,0xe5,0x30,0x82,0x12,0xe1,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x03,0x03,0x01,0x31,0x82,0x12,0xd1,0x30,0x82,0x12,0xcd,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x07,0x02,0xa0,0x82,0x12,0xbe, +0x30,0x82,0x12,0xba,0x02,0x01,0x03,0x31,0x0f,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x30,0x82,0x01,0x51,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0xa0,0x82,0x01,0x40,0x04,0x82,0x01,0x3c,0x30,0x82,0x01,0x38,0x02,0x01,0x01,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84, +0x59,0x0a,0x03,0x01,0x30,0x31,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0x04,0x20,0x4d,0xd8,0x6e,0x4d,0x11,0x8e,0x9b,0xbb,0x96,0x9d,0x1d,0x2e,0x32,0x48,0x7c,0xb0,0xde,0x56,0x6c,0xeb,0x7e,0x1c,0xe6,0x73,0xbc,0xa1,0x52,0xc7,0xa9,0xdb,0x41,0x31,0x02,0x06,0x5c,0x3d,0xd3,0x10,0xa8,0xe5,0x18, +0x13,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x31,0x38,0x34,0x30,0x33,0x36,0x2e,0x37,0x34,0x35,0x5a,0x30,0x04,0x80,0x02,0x01,0xf4,0xa0,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69, +0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b, +0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37, +0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa0,0x82,0x0e,0x3c,0x30,0x82,0x04,0xf1,0x30,0x82,0x03,0xd9,0xa0,0x03,0x02,0x01,0x02,0x02,0x13, +0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68, +0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04, +0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x38,0x31,0x30,0x32,0x34,0x32,0x31,0x31,0x34,0x31,0x35,0x5a,0x17,0x0d,0x32,0x30,0x30,0x31,0x31,0x30,0x32,0x31,0x31,0x34,0x31,0x35,0x5a, +0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a, +0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26, +0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54,0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d, +0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa3,0xf7,0x56,0x35,0x84,0xf3,0xdd,0x34,0xe4,0xa3,0x93,0x48,0x65,0xb2,0x92,0x69,0xb8,0xa1, +0x51,0xc2,0xfb,0x51,0x1e,0x08,0xbe,0xa5,0x84,0xaf,0xf3,0x48,0x46,0x9b,0x6c,0x0c,0xdc,0x8f,0xc3,0x82,0x4b,0x12,0x11,0xb1,0x11,0x5c,0xff,0x22,0xb3,0x3e,0xc2,0xde,0xb7,0xda,0xac,0x93,0x45,0x91,0xf4,0x8a,0xff,0x12,0x16,0x6f,0xd2,0x2d,0x4f,0xc8,0x20,0x76,0x05,0x21,0x37,0x4b,0x9f,0xd4,0xfd,0x57,0x7e,0xa9,0xf4,0x91,0x21,0xa6, +0xb9,0x8c,0x69,0xbf,0xe9,0x21,0xb8,0x98,0x0c,0x20,0xb7,0x5b,0xb4,0xc5,0xbf,0x4f,0xc3,0x6c,0x74,0x86,0x8d,0x10,0xfc,0x68,0xfe,0x8d,0x0c,0x85,0x64,0x5b,0xf0,0x23,0x2d,0xda,0x24,0x0b,0x0c,0x50,0xb4,0x8c,0x8f,0x67,0x02,0x0d,0x97,0x37,0xb4,0x1f,0x1d,0xaf,0x8b,0xcd,0xd5,0x87,0x8c,0x1e,0x70,0xd3,0xee,0xdf,0x22,0xc9,0xfe,0x54, +0xac,0x57,0xf4,0xbe,0xcd,0x55,0x12,0xfb,0x9b,0xa0,0x29,0xe1,0xcb,0x56,0x02,0x2e,0x4d,0xcb,0x72,0x2a,0xbf,0x4c,0x8c,0x14,0x9a,0x84,0x2a,0x25,0xdf,0x11,0xce,0x80,0x81,0xea,0x15,0x60,0x62,0x57,0xa2,0x0e,0x1a,0x09,0x74,0xa5,0x18,0xad,0xe9,0x9a,0x88,0x56,0x2c,0xcd,0xaf,0xd2,0x69,0x5d,0x2f,0xf1,0x88,0x1a,0x96,0x11,0x38,0x51, +0x0e,0x97,0xbd,0xdd,0x6c,0x11,0x52,0xe8,0x32,0xa5,0x95,0x17,0xa4,0x27,0x49,0xa9,0x7e,0x38,0x1a,0x84,0x1d,0xe8,0xe5,0xe7,0xcd,0x9f,0x6c,0x9c,0x2f,0x44,0x65,0x13,0x5d,0x89,0x5a,0x80,0x3d,0x3c,0x5a,0x37,0x7e,0xfd,0x5f,0xc6,0xab,0x2d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0x1b,0x30,0x82,0x01,0x17,0x30,0x1d,0x06,0x03,0x55, +0x1d,0x0e,0x04,0x16,0x04,0x14,0x26,0x77,0xcd,0x38,0x2b,0x45,0x7e,0xbd,0xd3,0x33,0x65,0x28,0xf7,0xcf,0xe3,0x68,0xf2,0x0e,0x65,0x4d,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x56,0x06,0x03,0x55, +0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0,0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74, +0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72, +0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x54,0x69,0x6d,0x53,0x74,0x61,0x50,0x43,0x41,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x37,0x2d,0x30,0x31,0x2e,0x63,0x72,0x74,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x02,0x30,0x00,0x30,0x13,0x06, +0x03,0x55,0x1d,0x25,0x04,0x0c,0x30,0x0a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x03,0x08,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x91,0x3f,0xe2,0xd1,0x15,0x1b,0x20,0x21,0x1c,0xf2,0x7b,0xbc,0xe4,0x9b,0x59,0x03,0xdf,0x8c,0x9a,0x5c,0x62,0xc4,0x1e,0xc1,0xc5,0xd3, +0x4e,0x96,0x21,0x60,0xf5,0x03,0xe5,0xcf,0x83,0x98,0x94,0x27,0x4d,0x5d,0xf8,0x1a,0x4e,0xec,0xa4,0x59,0xe3,0x23,0x87,0x2c,0x2c,0xc8,0x72,0xf8,0xc4,0x26,0xc3,0x73,0x06,0x5a,0xa7,0xff,0xed,0xfe,0xee,0xa1,0x8a,0x27,0xc5,0x65,0x68,0xc8,0xf6,0x16,0x8f,0x5a,0x4e,0x72,0xe5,0x37,0xf1,0x91,0x81,0xfc,0x18,0xe4,0x6e,0x2c,0xcd,0x94, +0x99,0xb5,0xda,0x60,0xa0,0x60,0x5f,0x76,0x3c,0x64,0x46,0x45,0xff,0x19,0x16,0x0c,0x40,0x25,0x7f,0x67,0xbb,0x2f,0x3a,0xfc,0x1f,0xbf,0x18,0x6c,0x68,0x90,0x8c,0xad,0x9a,0x23,0x6f,0xfd,0xa9,0xa6,0x3e,0x29,0xb2,0x57,0x1e,0xaa,0x83,0x8c,0xa3,0x1a,0xb5,0x95,0xe3,0xd7,0x0b,0x78,0xc9,0xa4,0xd1,0x0b,0x1c,0xbb,0xcd,0xc5,0xcf,0xe3, +0x13,0x45,0x57,0x43,0x0f,0x1f,0xc1,0x17,0x86,0x26,0x71,0x2f,0xad,0x27,0x6e,0x11,0xf3,0xa6,0xb3,0x72,0x5d,0x90,0xa3,0xdd,0xa0,0x2b,0x74,0x87,0xf7,0x77,0x26,0xd9,0x06,0x8f,0x5f,0x4d,0xfd,0x1e,0x0f,0x7b,0x0c,0x34,0xf0,0x25,0x54,0x21,0xe4,0x6e,0x4b,0x1f,0xab,0x7d,0x9d,0x9a,0x01,0x80,0x02,0xdf,0xf6,0xa9,0xa6,0x19,0xf9,0x24, +0xd2,0xa8,0x14,0x2e,0x38,0xfa,0x21,0x59,0x33,0xfe,0x9b,0x67,0xca,0x10,0x77,0x4f,0x66,0x4e,0x7c,0x97,0xb7,0x04,0x5a,0xa5,0x04,0xb3,0x56,0x39,0xb6,0x2f,0x54,0x21,0xe2,0x5c,0xc5,0x01,0xa8,0x46,0x30,0x82,0x06,0x71,0x30,0x82,0x04,0x59,0xa0,0x03,0x02,0x01,0x02,0x02,0x0a,0x61,0x09,0x81,0x2a,0x00,0x00,0x00,0x00,0x00,0x02,0x30, +0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x30,0x81,0x88,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65, +0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x32,0x30,0x30,0x06,0x03,0x55,0x04,0x03,0x13,0x29,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x52,0x6f,0x6f,0x74,0x20,0x43, +0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6f,0x72,0x69,0x74,0x79,0x20,0x32,0x30,0x31,0x30,0x30,0x1e,0x17,0x0d,0x31,0x30,0x30,0x37,0x30,0x31,0x32,0x31,0x33,0x36,0x35,0x35,0x5a,0x17,0x0d,0x32,0x35,0x30,0x37,0x30,0x31,0x32,0x31,0x34,0x36,0x35,0x35,0x5a,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06, +0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73, +0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x82,0x01,0x22,0x30,0x0d,0x06,0x09,0x2a, +0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0f,0x00,0x30,0x82,0x01,0x0a,0x02,0x82,0x01,0x01,0x00,0xa9,0x1d,0x0d,0xbc,0x77,0x11,0x8a,0x3a,0x20,0xec,0xfc,0x13,0x97,0xf5,0xfa,0x7f,0x69,0x94,0x6b,0x74,0x54,0x10,0xd5,0xa5,0x0a,0x00,0x82,0x85,0xfb,0xed,0x7c,0x68,0x4b,0x2c,0x5f,0xc5,0xc3,0xe5,0x61,0xc2, +0x76,0xb7,0x3e,0x66,0x2b,0x5b,0xf0,0x15,0x53,0x27,0x04,0x31,0x1f,0x41,0x1b,0x1a,0x95,0x1d,0xce,0x09,0x13,0x8e,0x7c,0x61,0x30,0x59,0xb1,0x30,0x44,0x0f,0xf1,0x60,0x88,0x84,0x54,0x43,0x0c,0xd7,0x4d,0xb8,0x38,0x08,0xb3,0x42,0xdd,0x93,0xac,0xd6,0x73,0x30,0x57,0x26,0x82,0xa3,0x45,0x0d,0xd0,0xea,0xf5,0x47,0x81,0xcd,0xbf,0x24, +0x60,0x32,0x58,0x60,0x46,0xf2,0x58,0x47,0x86,0x32,0x84,0x1e,0x74,0x61,0x67,0x91,0x5f,0x81,0x54,0xb1,0xcf,0x93,0x4c,0x92,0xc1,0xc4,0xa6,0x5d,0xd1,0x61,0x13,0x6e,0x28,0xc6,0x1a,0xf9,0x86,0x80,0xbb,0xdf,0x61,0xfc,0x46,0xc1,0x27,0x1d,0x24,0x67,0x12,0x72,0x1a,0x21,0x8a,0xaf,0x4b,0x64,0x89,0x50,0x62,0xb1,0x5d,0xfd,0x77,0x1f, +0x3d,0xf0,0x57,0x75,0xac,0xbd,0x8a,0x42,0x4d,0x40,0x51,0xd1,0x0f,0x9c,0x06,0x3e,0x67,0x7f,0xf5,0x66,0xc0,0x03,0x96,0x44,0x7e,0xef,0xd0,0x4b,0xfd,0x6e,0xe5,0x9a,0xca,0xb1,0xa8,0xf2,0x7a,0x2a,0x0a,0x31,0xf0,0xda,0x4e,0x06,0x91,0xb6,0x88,0x08,0x35,0xe8,0x78,0x1c,0xb0,0xe9,0x99,0xcd,0x3c,0xe7,0x2f,0x44,0xba,0xa7,0xf4,0xdc, +0x64,0xbd,0xa4,0x01,0xc1,0x20,0x09,0x93,0x78,0xcd,0xfc,0xbc,0xc0,0xc9,0x44,0x5d,0x5e,0x16,0x9c,0x01,0x05,0x4f,0x22,0x4d,0x02,0x03,0x01,0x00,0x01,0xa3,0x82,0x01,0xe6,0x30,0x82,0x01,0xe2,0x30,0x10,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x1d,0x06,0x03,0x55,0x1d,0x0e,0x04,0x16, +0x04,0x14,0xd5,0x63,0x3a,0x5c,0x8a,0x31,0x90,0xf3,0x43,0x7b,0x7c,0x46,0x1b,0xc5,0x33,0x68,0x5a,0x85,0x6d,0x55,0x30,0x19,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x0c,0x1e,0x0a,0x00,0x53,0x00,0x75,0x00,0x62,0x00,0x43,0x00,0x41,0x30,0x0b,0x06,0x03,0x55,0x1d,0x0f,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0f, +0x06,0x03,0x55,0x1d,0x13,0x01,0x01,0xff,0x04,0x05,0x30,0x03,0x01,0x01,0xff,0x30,0x1f,0x06,0x03,0x55,0x1d,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0xd5,0xf6,0x56,0xcb,0x8f,0xe8,0xa2,0x5c,0x62,0x68,0xd1,0x3d,0x94,0x90,0x5b,0xd7,0xce,0x9a,0x18,0xc4,0x30,0x56,0x06,0x03,0x55,0x1d,0x1f,0x04,0x4f,0x30,0x4d,0x30,0x4b,0xa0,0x49,0xa0, +0x47,0x86,0x45,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x63,0x72,0x6c,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70,0x6b,0x69,0x2f,0x63,0x72,0x6c,0x2f,0x70,0x72,0x6f,0x64,0x75,0x63,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30, +0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x6c,0x30,0x5a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x01,0x01,0x04,0x4e,0x30,0x4c,0x30,0x4a,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x30,0x02,0x86,0x3e,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x70, +0x6b,0x69,0x2f,0x63,0x65,0x72,0x74,0x73,0x2f,0x4d,0x69,0x63,0x52,0x6f,0x6f,0x43,0x65,0x72,0x41,0x75,0x74,0x5f,0x32,0x30,0x31,0x30,0x2d,0x30,0x36,0x2d,0x32,0x33,0x2e,0x63,0x72,0x74,0x30,0x81,0xa0,0x06,0x03,0x55,0x1d,0x20,0x01,0x01,0xff,0x04,0x81,0x95,0x30,0x81,0x92,0x30,0x81,0x8f,0x06,0x09,0x2b,0x06,0x01,0x04,0x01,0x82, +0x37,0x2e,0x03,0x30,0x81,0x81,0x30,0x3d,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x01,0x16,0x31,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x6d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x2e,0x63,0x6f,0x6d,0x2f,0x50,0x4b,0x49,0x2f,0x64,0x6f,0x63,0x73,0x2f,0x43,0x50,0x53,0x2f,0x64,0x65,0x66,0x61,0x75,0x6c, +0x74,0x2e,0x68,0x74,0x6d,0x30,0x40,0x06,0x08,0x2b,0x06,0x01,0x05,0x05,0x07,0x02,0x02,0x30,0x34,0x1e,0x32,0x20,0x1d,0x00,0x4c,0x00,0x65,0x00,0x67,0x00,0x61,0x00,0x6c,0x00,0x5f,0x00,0x50,0x00,0x6f,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x79,0x00,0x5f,0x00,0x53,0x00,0x74,0x00,0x61,0x00,0x74,0x00,0x65,0x00,0x6d,0x00,0x65,0x00, +0x6e,0x00,0x74,0x00,0x2e,0x20,0x1d,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x07,0xe6,0x88,0x51,0x0d,0xe2,0xc6,0xe0,0x98,0x3f,0x81,0x71,0x03,0x3d,0x9d,0xa3,0xa1,0x21,0x6f,0xb3,0xeb,0xa6,0xcc,0xf5,0x31,0xbe,0xcf,0x05,0xe2,0xa9,0xfe,0xfa,0x57,0x6d,0x19,0x30,0xb3, +0xc2,0xc5,0x66,0xc9,0x6a,0xdf,0xf5,0xe7,0xf0,0x78,0xbd,0xc7,0xa8,0x9e,0x25,0xe3,0xf9,0xbc,0xed,0x6b,0x54,0x57,0x08,0x2b,0x51,0x82,0x44,0x12,0xfb,0xb9,0x53,0x8c,0xcc,0xf4,0x60,0x12,0x8a,0x76,0xcc,0x40,0x40,0x41,0x9b,0xdc,0x5c,0x17,0xff,0x5c,0xf9,0x5e,0x17,0x35,0x98,0x24,0x56,0x4b,0x74,0xef,0x42,0x10,0xc8,0xaf,0xbf,0x7f, +0xc6,0x7f,0xf2,0x37,0x7d,0x5a,0x3f,0x1c,0xf2,0x99,0x79,0x4a,0x91,0x52,0x00,0xaf,0x38,0x0f,0x17,0xf5,0x2f,0x79,0x81,0x65,0xd9,0xa9,0xb5,0x6b,0xe4,0xc7,0xce,0xf6,0xca,0x7a,0x00,0x6f,0x4b,0x30,0x44,0x24,0x22,0x3c,0xcf,0xed,0x03,0xa5,0x96,0x8f,0x59,0x29,0xbc,0xb6,0xfd,0x04,0xe1,0x70,0x9f,0x32,0x4a,0x27,0xfd,0x55,0xaf,0x2f, +0xfe,0xb6,0xe5,0x8e,0x33,0xbb,0x62,0x5f,0x9a,0xdb,0x57,0x40,0xe9,0xf1,0xce,0x99,0x66,0x90,0x8c,0xff,0x6a,0x62,0x7f,0xdd,0xc5,0x4a,0x0b,0x91,0x26,0xe2,0x39,0xec,0x19,0x4a,0x71,0x63,0x9d,0x7b,0x21,0x6d,0xc3,0x9c,0xa3,0xa2,0x3c,0xfa,0x7f,0x7d,0x96,0x6a,0x90,0x78,0xa6,0x6d,0xd2,0xe1,0x9c,0xf9,0x1d,0xfc,0x38,0xd8,0x94,0xf4, +0xc6,0xa5,0x0a,0x96,0x86,0xa4,0xbd,0x9e,0x1a,0xae,0x04,0x42,0x83,0xb8,0xb5,0x80,0x9b,0x22,0x38,0x20,0xb5,0x25,0xe5,0x64,0xec,0xf7,0xf4,0xbf,0x7e,0x63,0x59,0x25,0x0f,0x7a,0x2e,0x39,0x57,0x76,0xa2,0x71,0xaa,0x06,0x8a,0x0f,0x89,0x16,0xba,0x61,0xa7,0x11,0xcb,0x9a,0xd8,0x0e,0x47,0x9a,0x80,0xc5,0xd0,0xcd,0xa7,0xd0,0xef,0x7d, +0x83,0xf0,0xe1,0x3b,0x71,0x09,0xdf,0x5d,0x74,0x98,0x22,0x08,0x61,0xda,0xb0,0x50,0x1e,0x6f,0xbd,0xf1,0xe1,0x00,0xdf,0xe7,0x31,0x07,0xa4,0x93,0x3a,0xf7,0x65,0x47,0x78,0xe8,0xf8,0xa8,0x48,0xab,0xf7,0xde,0x72,0x7e,0x61,0x6b,0x6f,0x77,0xa9,0x81,0xcb,0xa7,0x09,0xac,0x39,0xbb,0xec,0xc6,0xcb,0xd8,0x82,0xb4,0x72,0xcd,0x1d,0xf4, +0xb8,0x85,0x01,0x1e,0x80,0xfb,0x1b,0x89,0x2a,0x54,0x39,0xb2,0x5b,0xda,0xc8,0x0d,0x55,0x99,0x7a,0x87,0x73,0x3b,0x08,0xe6,0x98,0x2d,0xea,0x8d,0xe0,0x33,0x2e,0x12,0x29,0xf5,0xc0,0x2f,0x54,0x27,0x21,0xf7,0xc8,0xac,0x4e,0xda,0x28,0xb8,0xb1,0xa9,0xdb,0x96,0xb2,0xa7,0x42,0xa2,0xc9,0xcf,0x19,0x41,0x4d,0xe0,0x86,0xf9,0x2a,0x9a, +0xa3,0x11,0x66,0x30,0xd3,0xbb,0x74,0x32,0x4b,0xdf,0x63,0x7b,0xf5,0x99,0x8a,0x2f,0x1b,0xc7,0x21,0xaf,0x59,0xb5,0xae,0xdc,0x44,0x3c,0x97,0x50,0x71,0xd7,0xa1,0xd2,0xc5,0x55,0xe3,0x69,0xde,0x57,0xc1,0xd1,0xde,0x30,0xc0,0xfd,0xcc,0xe6,0x4d,0xfb,0x0d,0xbf,0x5d,0x4f,0xe9,0x9d,0x1e,0x19,0x38,0x2f,0xbc,0xcf,0x58,0x05,0x2e,0xef, +0x0d,0xa0,0x50,0x35,0xda,0xef,0x09,0x27,0x1c,0xd5,0xb3,0x7e,0x35,0x1e,0x08,0xba,0xda,0x36,0xdb,0xd3,0x5f,0x8f,0xde,0x74,0x88,0x49,0x12,0xa1,0x82,0x02,0xce,0x30,0x82,0x02,0x37,0x02,0x01,0x01,0x30,0x81,0xf8,0xa1,0x81,0xd0,0xa4,0x81,0xcd,0x30,0x81,0xca,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31, +0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f, +0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x0b,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x41,0x6d,0x65,0x72,0x69,0x63,0x61,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x73,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x0b,0x13,0x1d,0x54,0x68,0x61,0x6c,0x65,0x73,0x20,0x54, +0x53,0x53,0x20,0x45,0x53,0x4e,0x3a,0x34,0x39,0x42,0x43,0x2d,0x45,0x33,0x37,0x41,0x2d,0x32,0x33,0x33,0x43,0x31,0x25,0x30,0x23,0x06,0x03,0x55,0x04,0x03,0x13,0x1c,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x53,0x65,0x72,0x76,0x69,0x63,0x65,0xa2,0x23,0x0a,0x01, +0x01,0x30,0x07,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1a,0x03,0x15,0x00,0x38,0x3d,0xac,0x26,0x41,0x22,0x8f,0x3c,0xc6,0xc6,0x55,0xda,0x06,0x0a,0xf9,0x32,0x6d,0x93,0x2e,0x69,0xa0,0x81,0x83,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04, +0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31, +0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x30,0x22,0x18, +0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x34,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x18,0x0f,0x32,0x30,0x31,0x39,0x30,0x31,0x32,0x35,0x32,0x30,0x33,0x32,0x33,0x35,0x5a,0x30,0x77,0x30,0x3d,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x01,0x31,0x2f,0x30,0x2d,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf4,0x2e,0xe3,0x02,0x01, +0x00,0x30,0x0a,0x02,0x01,0x00,0x02,0x02,0x19,0xf6,0x02,0x01,0xff,0x30,0x07,0x02,0x01,0x00,0x02,0x02,0x11,0x74,0x30,0x0a,0x02,0x05,0x00,0xdf,0xf5,0x80,0x63,0x02,0x01,0x00,0x30,0x36,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a,0x04,0x02,0x31,0x28,0x30,0x26,0x30,0x0c,0x06,0x0a,0x2b,0x06,0x01,0x04,0x01,0x84,0x59,0x0a, +0x03,0x02,0xa0,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x07,0xa1,0x20,0xa1,0x0a,0x30,0x08,0x02,0x01,0x00,0x02,0x03,0x01,0x86,0xa0,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x79,0x78,0x9e,0x72,0x3a,0x6f,0xf0,0x0e,0x50,0x48,0xa6,0x78,0x90,0xb3,0x7b,0xd8,0xf9,0xd8,0xeb, +0x34,0x2d,0x2b,0x30,0xd5,0x86,0xfa,0x8c,0xc2,0x8e,0x06,0xad,0x31,0xb1,0xf1,0xfa,0x4b,0x6b,0xce,0xd8,0x44,0x4c,0xc7,0xc5,0xb0,0xa0,0x86,0x94,0x97,0x10,0x01,0x25,0xd1,0x29,0x21,0x2b,0x6c,0x1d,0x67,0x37,0xd3,0x15,0x81,0x32,0x40,0xa9,0x7f,0x2e,0x6b,0x4d,0x0d,0xcb,0xc9,0xa0,0x05,0xed,0x54,0x89,0x0a,0x8c,0x7f,0x0d,0x52,0x1a, +0x26,0xda,0x26,0x7f,0x8e,0xa4,0xc2,0x49,0xba,0x54,0x51,0xd1,0x1e,0xfc,0xf2,0x66,0xbf,0x46,0xa5,0xde,0x59,0x55,0x9a,0xbc,0xea,0xca,0xf7,0xf7,0xf9,0x7b,0x77,0x66,0x86,0x03,0xf0,0xf2,0xb8,0x53,0x28,0xa3,0x4a,0x0e,0xbe,0xf9,0x71,0x31,0x82,0x03,0x0d,0x30,0x82,0x03,0x09,0x02,0x01,0x01,0x30,0x81,0x93,0x30,0x7c,0x31,0x0b,0x30, +0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72, +0x6f,0x73,0x6f,0x66,0x74,0x20,0x43,0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee, +0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c,0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x0d,0x06,0x09,0x60,0x86,0x48,0x01,0x65,0x03,0x04,0x02,0x01,0x05,0x00,0xa0,0x82,0x01,0x4a,0x30,0x1a,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x03,0x31,0x0d,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x01,0x04,0x30,0x2f,0x06, +0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x04,0x31,0x22,0x04,0x20,0xa9,0xb8,0x68,0x0f,0x5b,0x53,0xc4,0x53,0x8f,0x02,0x31,0x6a,0xa0,0x8b,0xf7,0x6b,0x41,0xea,0x53,0x11,0xcb,0xc2,0x98,0xe8,0xce,0x11,0x08,0xe6,0x0c,0xe8,0x14,0xd4,0x30,0x81,0xfa,0x06,0x0b,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x09,0x10,0x02,0x2f,0x31,0x81, +0xea,0x30,0x81,0xe7,0x30,0x81,0xe4,0x30,0x81,0xbd,0x04,0x20,0x3f,0xae,0xc6,0x22,0xb7,0x3e,0xfb,0xf8,0xb4,0xb1,0x77,0x93,0x35,0x3e,0x92,0x51,0x0a,0x9f,0x0b,0x21,0x01,0xf2,0x99,0x2b,0x12,0x0c,0xd1,0x23,0x2f,0x10,0x2e,0xc3,0x30,0x81,0x98,0x30,0x81,0x80,0xa4,0x7e,0x30,0x7c,0x31,0x0b,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13, +0x02,0x55,0x53,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x08,0x13,0x0a,0x57,0x61,0x73,0x68,0x69,0x6e,0x67,0x74,0x6f,0x6e,0x31,0x10,0x30,0x0e,0x06,0x03,0x55,0x04,0x07,0x13,0x07,0x52,0x65,0x64,0x6d,0x6f,0x6e,0x64,0x31,0x1e,0x30,0x1c,0x06,0x03,0x55,0x04,0x0a,0x13,0x15,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x43, +0x6f,0x72,0x70,0x6f,0x72,0x61,0x74,0x69,0x6f,0x6e,0x31,0x26,0x30,0x24,0x06,0x03,0x55,0x04,0x03,0x13,0x1d,0x4d,0x69,0x63,0x72,0x6f,0x73,0x6f,0x66,0x74,0x20,0x54,0x69,0x6d,0x65,0x2d,0x53,0x74,0x61,0x6d,0x70,0x20,0x50,0x43,0x41,0x20,0x32,0x30,0x31,0x30,0x02,0x13,0x33,0x00,0x00,0x00,0xee,0xf8,0xc5,0xf5,0x36,0x3b,0x81,0x1c, +0x8c,0x00,0x00,0x00,0x00,0x00,0xee,0x30,0x22,0x04,0x20,0x14,0xc2,0x54,0x4f,0xba,0xe2,0x1c,0xdf,0x0c,0x3b,0x9d,0xfc,0xbc,0x5c,0xd8,0xb1,0x97,0xa6,0x39,0x9a,0x30,0x96,0xf8,0xa5,0xf4,0xb2,0x11,0xd6,0x59,0xc6,0x50,0xdd,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x0b,0x05,0x00,0x04,0x82,0x01,0x00,0x4e,0x09, +0xa9,0x0d,0x51,0x40,0x35,0x45,0x38,0x88,0x5f,0x87,0xc6,0xaf,0x4a,0xd8,0x8c,0x36,0x34,0xd4,0x98,0x9b,0x5b,0xfb,0xc0,0xc0,0x85,0xd8,0x62,0x7e,0x9d,0x36,0x78,0x97,0xc6,0x77,0x76,0x2c,0xfb,0xf7,0x48,0x80,0x3e,0x93,0x18,0x95,0x1d,0xda,0xab,0x0a,0x0a,0xd1,0x9d,0xdb,0xcd,0xb7,0x67,0x8c,0x91,0xa8,0xdd,0x33,0x8d,0x55,0x9e,0xa0, +0x25,0xdb,0x26,0x6d,0x71,0xea,0xb6,0x99,0x10,0xce,0xa6,0x7a,0xfe,0x58,0x2e,0xb0,0x19,0xbd,0xc4,0x92,0xa4,0xa4,0x2b,0x56,0x85,0x54,0x02,0xdc,0x8d,0xe5,0x7b,0x23,0xcd,0xd7,0xee,0x49,0xcb,0x8d,0x7d,0x2f,0x80,0x9d,0x48,0x77,0xa2,0xe1,0xcc,0xb9,0x66,0x09,0xbd,0x3b,0x43,0x88,0x4d,0x7d,0xbc,0x83,0xff,0xfc,0xbf,0x27,0x4d,0x0c, +0xc7,0x06,0xbb,0x68,0x0d,0x37,0xcc,0xa0,0x0f,0xda,0xe0,0xf5,0xcc,0x8c,0xd2,0x24,0x97,0xe4,0x6c,0x02,0x83,0xb3,0xbd,0x0e,0x50,0xdd,0x2f,0x0c,0x05,0xee,0xe7,0xda,0x9b,0x11,0xc4,0x9d,0x6e,0x67,0x8c,0x29,0x9b,0x4e,0xef,0x33,0xe7,0x31,0x20,0x9e,0xdf,0x47,0xdd,0x6a,0xea,0x7b,0xac,0x08,0x0f,0x83,0x04,0x2c,0xee,0x13,0x35,0x69, +0x90,0xb4,0x8a,0xbe,0xc5,0x5e,0x5e,0x29,0x29,0x09,0xc0,0x1b,0xa7,0x68,0x47,0x29,0x21,0x91,0x3b,0xdf,0xa3,0x2f,0x81,0x42,0x88,0x50,0x90,0x72,0x29,0x4f,0x24,0xc5,0x03,0x45,0x2e,0xa2,0x6a,0x10,0xf4,0xd1,0x0b,0x23,0xbd,0xbf,0x92,0x8c,0xc8,0x74,0x6e,0x35,0xcd,0x74,0x9b,0x38,0xdf,0x13,0xd2,0x2a,0xc5,0xfa,0x30,0xab,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x00,0x02,0x1a,0x02,0x22,0x00,0x02,0x00,0x57,0x00,0x00,0x02,0x43,0x00,0x01,0x02,0x44,0x02,0x56,0x00,0x03,0x02,0x57,0x04,0x61,0x00,0x01,0x04,0x62,0x04,0xaf,0x00,0x03,0x04,0xb0,0x05,0xfc,0x00,0x01,0x05,0xfd,0x06,0x02,0x00,0x03,0x06,0x03,0x06,0x65,0x00,0x01,0x06,0x66,0x06,0x72,0x00,0x03, +0x06,0x73,0x06,0x9a,0x00,0x01,0x06,0x9b,0x06,0x9b,0x00,0x03,0x06,0x9c,0x06,0xad,0x00,0x01,0x06,0xae,0x06,0xd9,0x00,0x02,0x06,0xda,0x06,0xda,0x00,0x03,0x06,0xdb,0x07,0x38,0x00,0x02,0x07,0x39,0x07,0x3d,0x00,0x03,0x07,0x3e,0x07,0x54,0x00,0x01,0x07,0x55,0x07,0x5f,0x00,0x03,0x07,0x60,0x07,0xec,0x00,0x01,0x07,0xed,0x07,0xf0, +0x00,0x03,0x07,0xf1,0x08,0x4b,0x00,0x01,0x08,0x4c,0x08,0x4f,0x00,0x03,0x08,0x50,0x09,0x2b,0x00,0x01,0x09,0x2c,0x09,0x33,0x00,0x03,0x09,0x34,0x09,0x36,0x00,0x01,0x09,0x37,0x09,0x37,0x00,0x03,0x09,0x38,0x09,0x70,0x00,0x01,0x09,0x71,0x09,0x71,0x00,0x02,0x09,0x72,0x09,0x72,0x00,0x01,0x09,0x73,0x09,0x75,0x00,0x03,0x09,0x76, +0x09,0x76,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x03,0x09,0x78,0x09,0x7d,0x00,0x01,0x09,0x7e,0x09,0x7f,0x00,0x03,0x09,0x80,0x0a,0x0e,0x00,0x01,0x0a,0x0f,0x0a,0x13,0x00,0x03,0x0a,0x14,0x0a,0x15,0x00,0x01,0x0a,0x16,0x0a,0x1f,0x00,0x03,0x0a,0x20,0x0a,0x20,0x00,0x01,0x0a,0x21,0x0a,0x23,0x00,0x03,0x0a,0x24,0x0a,0x4a,0x00,0x01, +0x0a,0x4b,0x0a,0x53,0x00,0x03,0x0a,0x54,0x0a,0x5b,0x00,0x01,0x0a,0x5c,0x0a,0x5e,0x00,0x03,0x0a,0x5f,0x0a,0x62,0x00,0x01,0x0a,0x63,0x0a,0x64,0x00,0x02,0x0a,0x65,0x0a,0x69,0x00,0x03,0x0a,0x6a,0x0a,0x6b,0x00,0x01,0x0a,0x6c,0x0a,0x71,0x00,0x03,0x0a,0x72,0x0a,0xda,0x00,0x01,0x0a,0xdb,0x0a,0xe3,0x00,0x03,0x0a,0xe4,0x0b,0x52, +0x00,0x01,0x0b,0x53,0x0b,0x5f,0x00,0x03,0x0b,0x60,0x0b,0x60,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x03,0x0b,0x62,0x0b,0x62,0x00,0x01,0x0b,0x63,0x0b,0x64,0x00,0x03,0x0b,0x65,0x0b,0x65,0x00,0x01,0x0b,0x66,0x0b,0x67,0x00,0x03,0x0b,0x68,0x0b,0xb8,0x00,0x01,0x0b,0xb9,0x0b,0xb9,0x00,0x03,0x0b,0xba,0x0b,0xbe,0x00,0x01,0x0b,0xbf, +0x0b,0xde,0x00,0x03,0x0b,0xdf,0x0b,0xe0,0x00,0x01,0x0b,0xe1,0x0b,0xe1,0x00,0x03,0x0b,0xe2,0x0e,0x19,0x00,0x01,0x0e,0x1a,0x0e,0x1e,0x00,0x03,0x0e,0x1f,0x0e,0x61,0x00,0x01,0x0e,0x62,0x0e,0x6c,0x00,0x03,0x0e,0x6d,0x0e,0xea,0x00,0x01,0x0e,0xeb,0x0e,0xeb,0x00,0x03,0x0e,0xec,0x12,0x58,0x00,0x01,0x12,0x59,0x12,0x5e,0x00,0x03, +0x12,0x5f,0x13,0x29,0x00,0x01,0x13,0x2a,0x13,0x44,0x00,0x03,0x13,0x45,0x13,0xd8,0x00,0x01,0x13,0xd9,0x13,0xe9,0x00,0x03,0x13,0xea,0x13,0xee,0x00,0x01,0x13,0xef,0x13,0xf2,0x00,0x02,0x13,0xf3,0x14,0x16,0x00,0x01,0x14,0x17,0x14,0x17,0x00,0x03,0x14,0x18,0x14,0x5c,0x00,0x01,0x14,0x5d,0x14,0x6a,0x00,0x03,0x14,0x6b,0x14,0x6b, +0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x03,0x14,0x6d,0x14,0x96,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x02,0x14,0x99,0x14,0xdf,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x33,0x02,0x44,0x02,0x44,0x00,0x02,0x02,0x45,0x02,0x45,0x00,0x04,0x02,0x46,0x02,0x47,0x00,0x02,0x04,0x62,0x04,0x73,0x00,0x02,0x04,0x75, +0x04,0x78,0x00,0x04,0x04,0x79,0x04,0x79,0x00,0x02,0x04,0x7b,0x04,0x7f,0x00,0x04,0x04,0x82,0x04,0x84,0x00,0x04,0x04,0x87,0x04,0x91,0x00,0x04,0x04,0x97,0x04,0x9a,0x00,0x04,0x04,0x9b,0x04,0x9d,0x00,0x02,0x04,0xa0,0x04,0xa2,0x00,0x02,0x04,0xa3,0x04,0xa3,0x00,0x04,0x04,0xa4,0x04,0xa4,0x00,0x02,0x04,0xa5,0x04,0xa7,0x00,0x04, +0x04,0xa8,0x04,0xaa,0x00,0x02,0x04,0xab,0x04,0xac,0x00,0x04,0x05,0xfd,0x06,0x00,0x00,0x02,0x06,0x66,0x06,0x72,0x00,0x02,0x07,0x3a,0x07,0x3d,0x00,0x03,0x07,0x55,0x07,0x57,0x00,0x02,0x07,0x58,0x07,0x5b,0x00,0x04,0x07,0x5c,0x07,0x5c,0x00,0x02,0x07,0xed,0x07,0xee,0x00,0x04,0x07,0xef,0x07,0xef,0x00,0x02,0x08,0x4c,0x08,0x4d, +0x00,0x02,0x08,0x4e,0x08,0x4e,0x00,0x04,0x08,0x4f,0x08,0x4f,0x00,0x02,0x09,0x2e,0x09,0x2e,0x00,0x01,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x01,0x09,0x7f,0x09,0x7f,0x00,0x01,0x0a,0x1a,0x0a,0x1a,0x00,0x01,0x0a,0x21,0x0a,0x21,0x00,0x01,0x0a,0x23,0x0a,0x23,0x00,0x01,0x0a,0x50,0x0a,0x50,0x00,0x01,0x0a,0x6f, +0x0a,0x6f,0x00,0x01,0x0a,0xdb,0x0a,0xe0,0x00,0x02,0x0a,0xe1,0x0a,0xe1,0x00,0x04,0x0a,0xe2,0x0a,0xe2,0x00,0x02,0x0a,0xe3,0x0a,0xe3,0x00,0x04,0x0e,0x1e,0x0e,0x1e,0x00,0x01,0x0e,0x6b,0x0e,0x6c,0x00,0x01,0x13,0x2c,0x13,0x2c,0x00,0x01,0x13,0x2f,0x13,0x2f,0x00,0x01,0x13,0x33,0x13,0x35,0x00,0x01,0x13,0x38,0x13,0x38,0x00,0x01, +0x13,0x3c,0x13,0x3c,0x00,0x01,0x13,0x3f,0x13,0x40,0x00,0x01,0x14,0x62,0x14,0x62,0x00,0x01,0x14,0x6c,0x14,0x6c,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x0a,0x01,0xee,0x04,0xce,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x00,0xea,0x63,0x79,0x72,0x6c,0x00,0xf4,0x64,0x65,0x76,0x32,0x01,0x08,0x67,0x6a,0x72,0x32, +0x01,0x22,0x67,0x72,0x65,0x6b,0x01,0x12,0x67,0x75,0x72,0x32,0x01,0x2c,0x68,0x65,0x62,0x72,0x01,0x36,0x6b,0x68,0x6d,0x72,0x01,0x4e,0x6b,0x6e,0x64,0x32,0x01,0x44,0x6c,0x61,0x6f,0x20,0x01,0x58,0x6c,0x61,0x74,0x6e,0x01,0x62,0x6d,0x6c,0x6d,0x32,0x01,0x8a,0x6d,0x6f,0x6e,0x67,0x01,0x94,0x6d,0x79,0x6d,0x72,0x01,0x9e,0x6f,0x72, +0x79,0x32,0x01,0xb2,0x74,0x61,0x6c,0x75,0x01,0xa8,0x74,0x65,0x6c,0x32,0x01,0xc6,0x74,0x68,0x61,0x69,0x01,0xd0,0x74,0x69,0x62,0x74,0x01,0xda,0x74,0x6d,0x6c,0x32,0x01,0xbc,0x00,0x2e,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x3a,0x4d,0x4f,0x52,0x20,0x00,0x46,0x53,0x4e,0x44,0x20,0x00,0x52,0x55,0x52, +0x44,0x20,0x00,0x5e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x09,0x00,0x13,0x00,0x1d,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0b,0x00,0x15,0x00,0x1f,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20, +0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x0d,0x00,0x17,0x00,0x21,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x04,0x00,0x00,0x00,0x0e,0x00,0x18,0x00,0x22,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x05, +0x00,0x01,0x00,0x0f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x10,0x00,0x19,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0x00,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x05,0x00,0x06,0x00,0x02,0x00,0x11,0x00,0x1a,0x00,0x23,0x00,0x00,0xff,0xff,0x00,0x04,0x00,0x07,0x00,0x03,0x00,0x1b,0x00,0x24,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00, +0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x04,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x00,0x00,0x25,0x63,0x61,0x73,0x65,0x00,0xe0,0x63,0x61,0x73,0x65,0x00,0xe6,0x63,0x61,0x73,0x65,0x00,0xec,0x63,0x61,0x73,0x65,0x00,0xf2,0x63,0x70,0x73,0x70,0x00,0xf8,0x63,0x70,0x73,0x70,0x01,0x02,0x63,0x70,0x73,0x70,0x01,0x0c,0x63,0x70,0x73,0x70,0x01,0x16,0x6b,0x65,0x72,0x6e,0x01,0x20,0x6b,0x65, +0x72,0x6e,0x01,0x36,0x6b,0x65,0x72,0x6e,0x01,0x60,0x6b,0x65,0x72,0x6e,0x01,0x76,0x6b,0x65,0x72,0x6e,0x01,0x8c,0x6b,0x65,0x72,0x6e,0x01,0xa2,0x6b,0x65,0x72,0x6e,0x01,0xcc,0x6b,0x65,0x72,0x6e,0x01,0xd2,0x6b,0x65,0x72,0x6e,0x01,0xd8,0x6b,0x65,0x72,0x6e,0x01,0xde,0x6d,0x61,0x72,0x6b,0x01,0xe4,0x6d,0x61,0x72,0x6b,0x01,0xee, +0x6d,0x61,0x72,0x6b,0x01,0xf8,0x6d,0x61,0x72,0x6b,0x02,0x02,0x6d,0x61,0x72,0x6b,0x02,0x0c,0x6d,0x61,0x72,0x6b,0x02,0x16,0x6d,0x61,0x72,0x6b,0x02,0x20,0x6d,0x61,0x72,0x6b,0x02,0x28,0x6d,0x61,0x72,0x6b,0x02,0x6a,0x6d,0x61,0x72,0x6b,0x02,0x80,0x6d,0x6b,0x6d,0x6b,0x02,0x94,0x6d,0x6b,0x6d,0x6b,0x02,0x9c,0x6d,0x6b,0x6d,0x6b, +0x02,0xa4,0x6d,0x6b,0x6d,0x6b,0x02,0xac,0x6d,0x6b,0x6d,0x6b,0x02,0xb4,0x6d,0x6b,0x6d,0x6b,0x02,0xbc,0x6d,0x6b,0x6d,0x6b,0x02,0xc4,0x6d,0x6b,0x6d,0x6b,0x02,0xcc,0x6d,0x6b,0x6d,0x6b,0x02,0xd8,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x00, +0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x03,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13, +0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09, +0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x01,0x00,0x39,0x00,0x3a,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40, +0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47,0x00,0x48,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00, +0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x00,0x00,0x1f,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x1d,0x00,0x1e,0x00,0x1f,0x00,0x20, +0x00,0x21,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x2b,0x00,0x2c,0x00,0x2d,0x00,0x2e,0x00,0x2f,0x00,0x30,0x00,0x31,0x00,0x32,0x00,0x33,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x09,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09, +0x00,0x0a,0x00,0x0c,0x00,0x14,0x00,0x00,0x00,0x08,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0c,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17, +0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x00,0x00,0x04,0x00,0x0d,0x00,0x0e,0x00,0x17,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x0d,0x00,0x0e,0x00,0x86,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x52,0x01,0x62,0x01,0x72,0x01,0x82,0x01,0x92,0x01,0xa2,0x01,0xb2,0x01,0xc2,0x01,0xd2, +0x01,0xe2,0x01,0xf2,0x02,0x02,0x02,0x12,0x02,0x22,0x02,0x32,0x02,0x42,0x02,0x52,0x02,0x62,0x02,0x72,0x02,0x96,0x02,0xa6,0x02,0xb6,0x02,0xc6,0x02,0xd6,0x02,0xe6,0x02,0xf6,0x03,0x06,0x03,0x2a,0x03,0x3a,0x03,0x68,0x04,0x5e,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x06,0x56,0x06,0x7a,0x06,0xee,0x07,0x1c,0x09,0x70,0x09,0x80,0x09,0x90, +0x09,0xa0,0x09,0xb0,0x09,0xc0,0x09,0xd0,0x09,0xe0,0x0a,0x04,0x0a,0x14,0x0a,0x38,0x0a,0x7a,0x0a,0xa8,0x0a,0xb8,0x0a,0xc8,0x0a,0xf6,0x0b,0x06,0x0b,0x16,0x0b,0x26,0x0b,0x36,0x0b,0x46,0x0b,0x56,0x0b,0x66,0x0b,0x76,0x0b,0x9a,0x0b,0xbe,0x0b,0xe2,0x0c,0x06,0x0c,0x2a,0x0c,0x4e,0x0c,0x72,0x0c,0x96,0x0c,0xba,0x0c,0xde,0x0c,0xee, +0x0c,0xfe,0x0d,0x0e,0x0d,0x1e,0x0d,0x2e,0x0d,0x3e,0x0d,0x4e,0x0d,0x5e,0x0d,0x6e,0x0d,0x7e,0x0d,0x8e,0x0d,0x9e,0x0d,0xae,0x0d,0xbe,0x0d,0xce,0x0d,0xde,0x0d,0xee,0x0d,0xfe,0x0e,0x0e,0x0e,0x1e,0x0e,0x2e,0x0e,0x3e,0x0e,0x4e,0x0e,0x5e,0x0e,0x6e,0x0e,0x7e,0x0e,0x8e,0x0e,0x9e,0x0e,0xae,0x0e,0xbe,0x0e,0xce,0x0e,0xde,0x0e,0xee, +0x0e,0xfe,0x0f,0x0e,0x0f,0x1e,0x0f,0x2e,0x0f,0x3e,0x0f,0x4e,0x0f,0x5e,0x0f,0x6e,0x0f,0x7e,0x0f,0x8e,0x0f,0x9e,0x0f,0xae,0x0f,0xbe,0x0f,0xce,0x0f,0xde,0x0f,0xee,0x0f,0xfe,0x10,0x0e,0x10,0x1e,0x10,0x2e,0x10,0x3e,0x10,0x4e,0x10,0x5e,0x10,0x6e,0x10,0x7e,0x10,0x8e,0x00,0x09,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, +0x00,0x02,0x00,0x00,0x0f,0x86,0x00,0x01,0x00,0x02,0x00,0x00,0x2d,0x04,0x00,0x09,0x00,0x08,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x02,0x00,0x00,0x35,0xd0,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x16,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x82,0xbe,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x97,0x3c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x98,0x5c,0x00,0x09,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x36,0x96,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x99,0xa2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x9a,0x78,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa8,0x76,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xa9,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xaa,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0xb1,0x9a,0x00,0x09,0x03,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0xb2,0x1c,0x00,0x09,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0xfe,0xcc,0x00,0x09,0x04,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x01,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x01,0x00,0x00,0x48,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xe8,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x49,0xf2,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x4a,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x01,0x02,0x92,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x02,0xa8,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x40,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x4a,0x78,0x00,0x09,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x05,0x00,0x01,0x12,0xb8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x15,0x60,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x18,0xd4,0x00,0x09,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x4a,0xcc,0x00,0x09,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x3a,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1a,0x90,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xa2,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xe4, +0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x4e,0xfc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x58,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x36,0x00,0x01, +0x00,0x08,0x00,0x00,0x4f,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x50,0x00,0x09,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde, +0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x58,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x64,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x7e,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xa2,0x00,0x01,0x00,0x08, +0x00,0x00,0x4f,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xe0,0x00,0x01,0x00,0x08,0x00,0x00,0x4f,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x12,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x24,0x00,0x01,0x00,0x08, +0x00,0x00,0x50,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x56,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x8a,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0x9e,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xaa,0x00,0x01,0x00,0x08, +0x00,0x00,0x50,0xb8,0x00,0x09,0x00,0x01,0x00,0x22,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x92,0x00,0x9a,0x00,0xa2,0x00,0xaa,0x00,0xb2,0x00,0xba,0x00,0xc2,0x00,0xca,0x00,0xd2,0x00,0xda,0x00,0xe2,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x01,0x12,0x01,0x1a, +0x01,0x22,0x01,0x2a,0x01,0x32,0x01,0x3a,0x01,0x42,0x01,0x4a,0x01,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xce,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xda,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xe8,0x00,0x01,0x00,0x08,0x00,0x00,0x50,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x16,0x00,0x01, +0x00,0x08,0x00,0x00,0x51,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x34,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x82,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0x90,0x00,0x01, +0x00,0x08,0x00,0x00,0x51,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x51,0xf2,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x04,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x18,0x00,0x01, +0x00,0x08,0x00,0x00,0x52,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x36,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xa6,0x00,0x01, +0x00,0x08,0x00,0x00,0x52,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xca,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xdc,0x00,0x01,0x00,0x08,0x00,0x00,0x52,0xf0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1b,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xbe,0x00,0x09, +0x00,0x01,0x00,0x0c,0x00,0x1e,0x00,0x26,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xf0,0x00,0x01,0x00,0x08,0x00,0x00,0x53,0xfa,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x06,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x14,0x00,0x01,0x00,0x08, +0x00,0x00,0x54,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x66,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0x72,0x00,0x09,0x00,0x01, +0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xd8,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xe4,0x00,0x01,0x00,0x08,0x00,0x00,0x54,0xf2,0x00,0x09,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x08, +0x00,0x00,0x55,0x42,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x4e,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x78,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x86,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xa2,0x00,0x01,0x00,0x08, +0x00,0x00,0x55,0xb0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xc0,0x00,0x01,0x00,0x08,0x00,0x00,0x55,0xcc,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x56,0x00,0x01,0x00,0x08,0x00,0x00, +0x56,0x68,0x00,0x09,0x00,0x01,0x00,0x3b,0x00,0x7c,0x00,0x84,0x00,0x8c,0x00,0x94,0x00,0x9c,0x00,0xa4,0x00,0xac,0x00,0xb4,0x00,0xbc,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x01,0x14,0x01,0x1c,0x01,0x24,0x01,0x2c,0x01,0x34,0x01,0x3c,0x01,0x44,0x01,0x4c,0x01,0x54, +0x01,0x5c,0x01,0x64,0x01,0x6c,0x01,0x74,0x01,0x7c,0x01,0x84,0x01,0x8c,0x01,0x94,0x01,0x9c,0x01,0xa4,0x01,0xac,0x01,0xb4,0x01,0xbc,0x01,0xc4,0x01,0xcc,0x01,0xd4,0x01,0xdc,0x01,0xe4,0x01,0xec,0x01,0xf4,0x01,0xfc,0x02,0x04,0x02,0x0c,0x02,0x14,0x02,0x1c,0x02,0x24,0x02,0x2c,0x02,0x34,0x02,0x3c,0x02,0x44,0x02,0x4c,0x00,0x01, +0x00,0x08,0x00,0x00,0x56,0x62,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0x90,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xa0,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xc4,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xd8,0x00,0x01, +0x00,0x08,0x00,0x00,0x56,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x56,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x10,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x24,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x6e,0x00,0x01, +0x00,0x08,0x00,0x00,0x57,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0x94,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xa8,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xd2,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x57,0xfc,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x12,0x00,0x01, +0x00,0x08,0x00,0x00,0x58,0x2a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x4a,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x5c,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x80,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xa6,0x00,0x01, +0x00,0x08,0x00,0x00,0x58,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xd0,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xe2,0x00,0x01,0x00,0x08,0x00,0x00,0x58,0xf4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x32,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x46,0x00,0x01, +0x00,0x08,0x00,0x00,0x59,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x6e,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0x96,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xaa,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xbe,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xd4,0x00,0x01,0x00,0x08,0x00,0x00,0x59,0xea,0x00,0x01, +0x00,0x08,0x00,0x00,0x59,0xf8,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x18,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x28,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x4c,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x72,0x00,0x01, +0x00,0x08,0x00,0x00,0x5a,0x84,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0x98,0x00,0x01,0x00,0x08,0x00,0x00,0x5a,0xac,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x1d,0x36,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xa4,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xd0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1e,0xda,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x1f,0x28,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x06,0x00,0x01,0x20,0x1c,0x00,0x09,0x00,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xb6,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xc2,0x00,0x01,0x00,0x08,0x00,0x00,0x5b,0xce,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xb0,0x00,0x09,0x00,0x01,0x00,0x03, +0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x2c,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x38,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0x46,0x00,0x09,0x00,0x01,0x00,0x06,0x00,0x12,0x00,0x1a,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xc6,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xd2, +0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xde,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x5c,0xf6,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x02,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x5a,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x66,0x00,0x01, +0x00,0x08,0x00,0x00,0x5d,0x72,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0x7e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5d,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x01,0x20,0xc8,0x00,0x09,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x08, +0x00,0x00,0x5e,0x46,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0x70,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x01,0x21,0x7a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xa4,0x00,0x09,0x00,0x00, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xb6,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xca,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xde,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5e,0xf4,0x00,0x09,0x00,0x00, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x20,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x2e,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x48,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x62, +0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x70,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0x8c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xa8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xb8,0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xd4, +0x00,0x01,0x00,0x08,0x00,0x00,0x5f,0xf0,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x1e,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x3c,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x4e, +0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x6c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x8a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0x9c,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xba,0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xd8,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c, +0x00,0x01,0x00,0x08,0x00,0x00,0x60,0xea,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x0a,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x3e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x5e,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x7e,0x00,0x09,0x00,0x00, +0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0x92,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xb2,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xd2,0x00,0x09,0x00,0x00,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x08,0x00,0x00,0x61,0xe6,0x00,0x01,0x00,0x08,0x00,0x00,0x62,0x06,0x00,0x01,0x00,0x08, +0x00,0x00,0x62,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x62,0x3e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x65,0x04,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x67,0x4e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x68,0xf8,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x69,0xca,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6a,0x26,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6b,0xb0,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6c,0x88,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x6c,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6d,0xbc,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x18,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0xe6,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04, +0x00,0x00,0x6f,0xbe,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x70,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x71,0x6e,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x72,0x94,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06, +0x00,0x00,0x72,0xea,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x73,0x40,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0x96,0x00,0x09,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xe0,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x60,0xfc,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x00,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x02,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x06,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x08,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x0e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x14,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x18,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x1c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x20,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x22,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x24,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x26,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x2e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x32,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x36,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x3e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x42,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x46,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x4e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x52,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x56,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x58,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5a,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x5c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x5e,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x60,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x62,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x64,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x66,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x68,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x61,0x6c,0x00,0x09,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x61,0x70,0x00,0x01,0x1c,0xce,0x00,0x05,0x00,0x00,0x00,0x53,0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x09,0x64,0x14,0x30,0x00,0xb8,0x10,0x92,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c, +0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x14,0x30,0x14,0x30,0x15,0x52,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x08,0x3c,0x14,0x30,0x14,0x30,0x00,0xb8,0x00,0xb8,0x00,0xb8, +0x00,0xb8,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x00,0xb0,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x08,0x3c,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x14,0x30,0x00,0x01,0x09,0x08,0x01,0x56,0x01,0x56,0x00,0x01,0x09,0x08, +0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55, +0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06, +0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55, +0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55, +0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b, +0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55, +0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55, +0xff,0x55,0x09,0x65,0xff,0x55,0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, +0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, +0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, +0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1, +0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55, +0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55, +0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0, +0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55, +0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55, +0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78, +0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55, +0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55, +0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf, +0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55, +0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55, +0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16, +0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55, +0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x3c,0xff,0x55,0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55, +0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a, +0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55, +0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55, +0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59, +0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55, +0x00,0x31,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c, +0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab, +0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab, +0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e, +0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x32,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55, +0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9, +0xff,0x55,0xff,0x55,0x08,0xfa,0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55, +0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55, +0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26, +0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29,0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab, +0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55,0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55, +0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a, +0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab, +0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55, +0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd,0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2, +0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55, +0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55,0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55, +0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9,0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2, +0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55,0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55, +0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55,0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55, +0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a, +0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55, +0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55, +0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4, +0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55, +0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55, +0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20, +0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab, +0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55, +0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74,0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84, +0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55, +0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55,0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab, +0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56,0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83, +0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x9a,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55,0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55, +0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x0e,0xff,0x55,0xff,0x55,0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16, +0xff,0x55,0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55, +0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55,0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x65,0xff,0x55, +0xff,0x55,0x09,0x67,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x8c,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97, +0x00,0xab,0x00,0xab,0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55, +0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55,0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55, +0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a, +0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x72,0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55, +0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55,0xff,0x55,0x0a,0x8f,0x00,0xab, +0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7,0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d, +0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55, +0x0e,0xaf,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x3c,0xff,0x55, +0xff,0x55,0x0f,0x3e,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab,0x00,0xab,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55,0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, +0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x83,0xff,0x55,0xff,0x55,0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x30,0x08,0xf4,0x00,0xab,0x00,0xab,0x09,0x0e,0xff,0x55, +0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x97,0x00,0xab,0x00,0xab,0x09,0x98, +0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xfa,0x00,0xab,0x00,0xab,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x73,0x00,0xab,0x00,0xab, +0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7d,0x00,0xab,0x00,0xab,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0xab,0x00,0xab,0x00,0xab,0x0e,0x49,0x00,0xab, +0x00,0xab,0x0e,0x4d,0x00,0xab,0x00,0xab,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x24,0x00,0xab,0x00,0xab,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x40, +0x00,0xab,0x00,0xab,0x0f,0x94,0x00,0xab,0x00,0xab,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x78,0x00,0xab,0x00,0xab,0x01,0x3f,0x08,0xcc,0xff,0x55,0xff,0x55,0x08,0xcd,0xff,0x55,0xff,0x55,0x08,0xd4,0xff,0x55,0xff,0x55,0x08,0xd5,0xff,0x55,0xff,0x55,0x08,0xd6,0xff,0x55,0xff,0x55,0x08,0xe1,0xff,0x55,0xff,0x55,0x08,0xe2,0xff,0x55, +0xff,0x55,0x08,0xe5,0xff,0x55,0xff,0x55,0x08,0xe8,0xff,0x55,0xff,0x55,0x08,0xeb,0xff,0x55,0xff,0x55,0x08,0xed,0xff,0x55,0xff,0x55,0x08,0xee,0xff,0x55,0xff,0x55,0x08,0xef,0xff,0x55,0xff,0x55,0x08,0xf0,0xff,0x55,0xff,0x55,0x08,0xf1,0xff,0x55,0xff,0x55,0x08,0xf4,0x00,0xab,0x00,0xab,0x08,0xf9,0xff,0x55,0xff,0x55,0x08,0xfa, +0xff,0x55,0xff,0x55,0x08,0xff,0xff,0x55,0xff,0x55,0x09,0x01,0xff,0x55,0xff,0x55,0x09,0x06,0xff,0x55,0xff,0x55,0x09,0x07,0xff,0x55,0xff,0x55,0x09,0x08,0xff,0x55,0xff,0x55,0x09,0x09,0xff,0x55,0xff,0x55,0x09,0x0a,0xff,0x55,0xff,0x55,0x09,0x0c,0xff,0x55,0xff,0x55,0x09,0x0d,0xff,0x55,0xff,0x55,0x09,0x0f,0xff,0x55,0xff,0x55, +0x09,0x10,0xff,0x55,0xff,0x55,0x09,0x11,0xff,0x55,0xff,0x55,0x09,0x12,0x00,0xab,0x00,0xab,0x09,0x13,0x00,0xab,0x00,0xab,0x09,0x14,0x00,0xab,0x00,0xab,0x09,0x15,0xff,0x55,0xff,0x55,0x09,0x16,0xff,0x55,0xff,0x55,0x09,0x17,0xff,0x55,0xff,0x55,0x09,0x18,0xff,0x55,0xff,0x55,0x09,0x19,0xff,0x55,0xff,0x55,0x09,0x1a,0xff,0x55, +0xff,0x55,0x09,0x1b,0xff,0x55,0xff,0x55,0x09,0x1c,0xff,0x55,0xff,0x55,0x09,0x1d,0xff,0x55,0xff,0x55,0x09,0x1e,0xff,0x55,0xff,0x55,0x09,0x1f,0x00,0xab,0x00,0xab,0x09,0x20,0x00,0xab,0x00,0xab,0x09,0x22,0xff,0x55,0xff,0x55,0x09,0x24,0xff,0x55,0xff,0x55,0x09,0x26,0xff,0x55,0xff,0x55,0x09,0x28,0xff,0x55,0xff,0x55,0x09,0x29, +0xff,0x55,0xff,0x55,0x09,0x2a,0xff,0x55,0xff,0x55,0x09,0x2b,0xff,0x55,0xff,0x55,0x09,0x34,0xff,0x55,0xff,0x55,0x09,0x3c,0xff,0x55,0xff,0x55,0x09,0x3e,0xff,0x55,0xff,0x55,0x09,0x40,0xff,0x55,0xff,0x55,0x09,0x41,0x00,0xab,0x00,0xab,0x09,0x42,0x00,0xab,0x00,0xab,0x09,0x45,0xff,0x55,0xff,0x55,0x09,0x46,0xff,0x55,0xff,0x55, +0x09,0x47,0xff,0x55,0xff,0x55,0x09,0x48,0xff,0x55,0xff,0x55,0x09,0x49,0xff,0x55,0xff,0x55,0x09,0x4a,0xff,0x55,0xff,0x55,0x09,0x4c,0x00,0xab,0x00,0xab,0x09,0x4e,0xff,0x55,0xff,0x55,0x09,0x5b,0xff,0x55,0xff,0x55,0x09,0x5c,0xff,0x55,0xff,0x55,0x09,0x5d,0xff,0x55,0xff,0x55,0x09,0x5e,0xff,0x55,0xff,0x55,0x09,0x60,0xff,0x55, +0xff,0x55,0x09,0x63,0xff,0x55,0xff,0x55,0x09,0x64,0xff,0x55,0xff,0x55,0x09,0x6c,0xff,0x55,0xff,0x55,0x09,0x6d,0xff,0x55,0xff,0x55,0x09,0x71,0xff,0x55,0xff,0x55,0x09,0x80,0xff,0x55,0xff,0x55,0x09,0x82,0xff,0x55,0xff,0x55,0x09,0x88,0xff,0x55,0xff,0x55,0x09,0x89,0xff,0x55,0xff,0x55,0x09,0x8a,0xff,0x55,0xff,0x55,0x09,0x8c, +0xff,0x55,0xff,0x55,0x09,0x8d,0xff,0x55,0xff,0x55,0x09,0x8e,0xff,0x55,0xff,0x55,0x09,0x8f,0x00,0xab,0x00,0xab,0x09,0x90,0xff,0x55,0xff,0x55,0x09,0x92,0xff,0x55,0xff,0x55,0x09,0x93,0xff,0x55,0xff,0x55,0x09,0x94,0xff,0x55,0xff,0x55,0x09,0x95,0xff,0x55,0xff,0x55,0x09,0x96,0xff,0x55,0xff,0x55,0x09,0x97,0x00,0xab,0x00,0xab, +0x09,0x98,0x00,0xab,0x00,0xab,0x09,0x9b,0x00,0xab,0x00,0xab,0x09,0x9e,0x00,0xab,0x00,0xab,0x09,0xa1,0x00,0xab,0x00,0xab,0x09,0xa4,0x00,0xab,0x00,0xab,0x09,0xa7,0x00,0xab,0x00,0xab,0x09,0xaa,0xff,0x55,0xff,0x55,0x09,0xab,0xff,0x55,0xff,0x55,0x09,0xac,0xff,0x55,0xff,0x55,0x09,0xae,0xff,0x55,0xff,0x55,0x09,0xb2,0xff,0x55, +0xff,0x55,0x09,0xb3,0xff,0x55,0xff,0x55,0x09,0xb4,0xff,0x55,0xff,0x55,0x09,0xb5,0xff,0x55,0xff,0x55,0x09,0xb6,0xff,0x55,0xff,0x55,0x09,0xb7,0xff,0x55,0xff,0x55,0x09,0xb8,0xff,0x55,0xff,0x55,0x09,0xb9,0xff,0x55,0xff,0x55,0x09,0xba,0xff,0x55,0xff,0x55,0x09,0xbb,0xff,0x55,0xff,0x55,0x09,0xbc,0xff,0x55,0xff,0x55,0x09,0xbd, +0xff,0x55,0xff,0x55,0x09,0xbe,0xff,0x55,0xff,0x55,0x09,0xbf,0xff,0x55,0xff,0x55,0x09,0xc0,0xff,0x55,0xff,0x55,0x09,0xc1,0xff,0x55,0xff,0x55,0x09,0xc2,0xff,0x55,0xff,0x55,0x09,0xc3,0xff,0x55,0xff,0x55,0x09,0xc4,0x00,0xab,0x00,0xab,0x09,0xc6,0xff,0x55,0xff,0x55,0x09,0xc8,0xff,0x55,0xff,0x55,0x09,0xc9,0xff,0x55,0xff,0x55, +0x09,0xca,0xff,0x55,0xff,0x55,0x09,0xcc,0xff,0x55,0xff,0x55,0x09,0xcd,0xff,0x55,0xff,0x55,0x09,0xd2,0xff,0x55,0xff,0x55,0x09,0xd3,0xff,0x55,0xff,0x55,0x09,0xd7,0xff,0x55,0xff,0x55,0x09,0xd8,0xff,0x55,0xff,0x55,0x09,0xd9,0xff,0x55,0xff,0x55,0x09,0xda,0xff,0x55,0xff,0x55,0x09,0xdb,0xff,0x55,0xff,0x55,0x09,0xdc,0xff,0x55, +0xff,0x55,0x09,0xdd,0xff,0x55,0xff,0x55,0x09,0xde,0xff,0x55,0xff,0x55,0x09,0xdf,0xff,0x55,0xff,0x55,0x09,0xe1,0xff,0x55,0xff,0x55,0x09,0xe2,0xff,0x55,0xff,0x55,0x09,0xe3,0xff,0x55,0xff,0x55,0x09,0xe4,0xff,0x55,0xff,0x55,0x09,0xe5,0xff,0x55,0xff,0x55,0x09,0xe7,0xff,0x55,0xff,0x55,0x09,0xe8,0xff,0x55,0xff,0x55,0x09,0xe9, +0xff,0x55,0xff,0x55,0x09,0xea,0xff,0x55,0xff,0x55,0x09,0xec,0xff,0x55,0xff,0x55,0x09,0xee,0xff,0x55,0xff,0x55,0x09,0xf0,0xff,0x55,0xff,0x55,0x09,0xf2,0x00,0xab,0x00,0xab,0x09,0xf9,0xff,0x55,0xff,0x55,0x09,0xfa,0x00,0xab,0x00,0xab,0x09,0xfd,0xff,0x55,0xff,0x55,0x09,0xfe,0xff,0x55,0xff,0x55,0x09,0xff,0xff,0x55,0xff,0x55, +0x0a,0x00,0xff,0x55,0xff,0x55,0x0a,0x01,0xff,0x55,0xff,0x55,0x0a,0x02,0xff,0x55,0xff,0x55,0x0a,0x03,0xff,0x55,0xff,0x55,0x0a,0x04,0xff,0x55,0xff,0x55,0x0a,0x05,0xff,0x55,0xff,0x55,0x0a,0x07,0xff,0x55,0xff,0x55,0x0a,0x0a,0xff,0x55,0xff,0x55,0x0a,0x0b,0xff,0x55,0xff,0x55,0x0a,0x0d,0xff,0x55,0xff,0x55,0x0a,0x24,0xff,0x55, +0xff,0x55,0x0a,0x25,0xff,0x55,0xff,0x55,0x0a,0x26,0xff,0x55,0xff,0x55,0x0a,0x27,0xff,0x55,0xff,0x55,0x0a,0x28,0x00,0xab,0x00,0xab,0x0a,0x2a,0xff,0x55,0xff,0x55,0x0a,0x3e,0xff,0x55,0xff,0x55,0x0a,0x56,0xff,0x55,0xff,0x55,0x0a,0x58,0xff,0x55,0xff,0x55,0x0a,0x5a,0xff,0x55,0xff,0x55,0x0a,0x63,0xff,0x55,0xff,0x55,0x0a,0x72, +0xff,0x55,0xff,0x55,0x0a,0x73,0x00,0xab,0x00,0xab,0x0a,0x74,0xff,0x55,0xff,0x55,0x0a,0x76,0xff,0x55,0xff,0x55,0x0a,0x77,0x00,0xab,0x00,0xab,0x0a,0x78,0xff,0x55,0xff,0x55,0x0a,0x79,0x00,0xab,0x00,0xab,0x0a,0x7a,0xff,0x55,0xff,0x55,0x0a,0x7b,0x00,0xab,0x00,0xab,0x0a,0x7c,0xff,0x55,0xff,0x55,0x0a,0x7d,0x00,0xab,0x00,0xab, +0x0a,0x7e,0xff,0x55,0xff,0x55,0x0a,0x7f,0xff,0x55,0xff,0x55,0x0a,0x80,0x00,0xab,0x00,0xab,0x0a,0x83,0x00,0xab,0x00,0xab,0x0a,0x86,0xff,0x55,0xff,0x55,0x0a,0x87,0xff,0x55,0xff,0x55,0x0a,0x88,0xff,0x55,0xff,0x55,0x0a,0x89,0xff,0x55,0xff,0x55,0x0a,0x8a,0xff,0x55,0xff,0x55,0x0a,0x8b,0x00,0xab,0x00,0xab,0x0a,0x8d,0xff,0x55, +0xff,0x55,0x0a,0x8f,0x00,0xab,0x00,0xab,0x0a,0x91,0xff,0x55,0xff,0x55,0x0a,0x93,0x00,0xab,0x00,0xab,0x0a,0x95,0xff,0x55,0xff,0x55,0x0a,0x9d,0xff,0x55,0xff,0x55,0x0a,0x9e,0xff,0x55,0xff,0x55,0x0a,0xa0,0xff,0x55,0xff,0x55,0x0a,0xa1,0xff,0x55,0xff,0x55,0x0a,0xa3,0xff,0x55,0xff,0x55,0x0a,0xa6,0xff,0x55,0xff,0x55,0x0a,0xa7, +0xff,0x55,0xff,0x55,0x0a,0xa8,0xff,0x55,0xff,0x55,0x0a,0xa9,0xff,0x55,0xff,0x55,0x0a,0xab,0x00,0xab,0x00,0xab,0x0a,0xad,0xff,0x55,0xff,0x55,0x0a,0xaf,0xff,0x55,0xff,0x55,0x0a,0xb2,0xff,0x55,0xff,0x55,0x0a,0xb4,0xff,0x55,0xff,0x55,0x0a,0xb5,0xff,0x55,0xff,0x55,0x0a,0xb6,0xff,0x55,0xff,0x55,0x0a,0xb7,0xff,0x55,0xff,0x55, +0x0b,0x19,0xff,0x55,0xff,0x55,0x0e,0x20,0xff,0x55,0xff,0x55,0x0e,0x3a,0xff,0x55,0xff,0x55,0x0e,0x3d,0xff,0x55,0xff,0x55,0x0e,0x3f,0xff,0x55,0xff,0x55,0x0e,0x41,0xff,0x55,0xff,0x55,0x0e,0x43,0xff,0x55,0xff,0x55,0x0e,0x47,0xff,0x55,0xff,0x55,0x0e,0x49,0x00,0xab,0x00,0xab,0x0e,0x4b,0xff,0x55,0xff,0x55,0x0e,0x4d,0x00,0xab, +0x00,0xab,0x0e,0x4f,0xff,0x55,0xff,0x55,0x0e,0x51,0x00,0xab,0x00,0xab,0x0e,0x5b,0xff,0x55,0xff,0x55,0x0e,0x5c,0xff,0x55,0xff,0x55,0x0e,0x5f,0xff,0x55,0xff,0x55,0x0e,0x6f,0xff,0x55,0xff,0x55,0x0e,0x71,0xff,0x55,0xff,0x55,0x0e,0x76,0xff,0x55,0xff,0x55,0x0e,0xa3,0xff,0x55,0xff,0x55,0x0e,0xac,0xff,0x55,0xff,0x55,0x0e,0xaf, +0xff,0x55,0xff,0x55,0x0e,0xd1,0xff,0x55,0xff,0x55,0x0e,0xd7,0xff,0x55,0xff,0x55,0x0e,0xe7,0x00,0xab,0x00,0xab,0x0e,0xe9,0x00,0xab,0x00,0xab,0x0f,0x16,0x00,0xab,0x00,0xab,0x0f,0x1a,0x00,0xab,0x00,0xab,0x0f,0x1e,0xff,0x55,0xff,0x55,0x0f,0x20,0xff,0x55,0xff,0x55,0x0f,0x22,0xff,0x55,0xff,0x55,0x0f,0x24,0x00,0xab,0x00,0xab, +0x0f,0x28,0xff,0x55,0xff,0x55,0x0f,0x2a,0xff,0x55,0xff,0x55,0x0f,0x2c,0xff,0x55,0xff,0x55,0x0f,0x2e,0x00,0xab,0x00,0xab,0x0f,0x30,0xff,0x55,0xff,0x55,0x0f,0x32,0x00,0xab,0x00,0xab,0x0f,0x34,0xff,0x55,0xff,0x55,0x0f,0x36,0x00,0xab,0x00,0xab,0x0f,0x38,0xff,0x55,0xff,0x55,0x0f,0x3a,0xff,0x55,0xff,0x55,0x0f,0x40,0x00,0xab, +0x00,0xab,0x0f,0x44,0xff,0x55,0xff,0x55,0x0f,0x46,0xff,0x55,0xff,0x55,0x0f,0x48,0xff,0x55,0xff,0x55,0x0f,0x4a,0xff,0x55,0xff,0x55,0x0f,0x4c,0xff,0x55,0xff,0x55,0x0f,0x4e,0xff,0x55,0xff,0x55,0x0f,0x6c,0xff,0x55,0xff,0x55,0x0f,0x6e,0xff,0x55,0xff,0x55,0x0f,0x70,0xff,0x55,0xff,0x55,0x0f,0x72,0xff,0x55,0xff,0x55,0x0f,0x74, +0xff,0x55,0xff,0x55,0x0f,0x76,0xff,0x55,0xff,0x55,0x0f,0x78,0xff,0x55,0xff,0x55,0x0f,0x7a,0xff,0x55,0xff,0x55,0x0f,0x7c,0xff,0x55,0xff,0x55,0x0f,0x7e,0xff,0x55,0xff,0x55,0x0f,0x80,0xff,0x55,0xff,0x55,0x0f,0x82,0xff,0x55,0xff,0x55,0x0f,0x84,0xff,0x55,0xff,0x55,0x0f,0x86,0xff,0x55,0xff,0x55,0x0f,0x88,0xff,0x55,0xff,0x55, +0x0f,0x8a,0xff,0x55,0xff,0x55,0x0f,0x8c,0xff,0x55,0xff,0x55,0x0f,0x8e,0xff,0x55,0xff,0x55,0x0f,0x90,0xff,0x55,0xff,0x55,0x0f,0x92,0xff,0x55,0xff,0x55,0x0f,0x94,0x00,0xab,0x00,0xab,0x0f,0x96,0xff,0x55,0xff,0x55,0x0f,0xc0,0xff,0x55,0xff,0x55,0x10,0xfe,0xff,0x55,0xff,0x55,0x11,0x00,0xff,0x55,0xff,0x55,0x11,0x02,0xff,0x55, +0xff,0x55,0x11,0x04,0xff,0x55,0xff,0x55,0x11,0x06,0xff,0x55,0xff,0x55,0x11,0x08,0xff,0x55,0xff,0x55,0x11,0x0a,0xff,0x55,0xff,0x55,0x11,0x0c,0xff,0x55,0xff,0x55,0x11,0x0d,0xff,0x55,0xff,0x55,0x11,0x0f,0xff,0x55,0xff,0x55,0x14,0x53,0x00,0xab,0x00,0xab,0x14,0x54,0xff,0x55,0xff,0x55,0x14,0x55,0xff,0x55,0xff,0x55,0x14,0x56, +0xff,0x55,0xff,0x55,0x14,0x57,0xff,0x55,0xff,0x55,0x14,0x58,0xff,0x55,0xff,0x55,0x14,0x59,0xff,0x55,0xff,0x55,0x14,0x5a,0xff,0x55,0xff,0x55,0x14,0x6f,0xff,0x55,0xff,0x55,0x14,0x72,0xff,0x55,0xff,0x55,0x14,0x75,0xff,0x55,0xff,0x55,0x14,0x78,0x00,0xab,0x00,0xab,0x14,0x7b,0xff,0x55,0xff,0x55,0x14,0x83,0xff,0x55,0xff,0x55, +0x14,0x86,0xff,0x55,0xff,0x55,0x14,0x97,0xff,0x55,0xff,0x55,0x14,0x98,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1e,0x08,0xc8,0x08,0xc9,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x09,0x00,0x06,0x09,0x17,0x09,0x18,0x00,0x08,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x5d,0x09,0x5e,0x00,0x0b, +0x09,0x80,0x09,0x83,0x00,0x0d,0x09,0xad,0x09,0xad,0x00,0x11,0x09,0xaf,0x09,0xb1,0x00,0x12,0x09,0xb3,0x09,0xb8,0x00,0x15,0x0a,0x54,0x0a,0x57,0x00,0x1b,0x0a,0x88,0x0a,0x88,0x00,0x1f,0x0a,0xb4,0x0a,0xb5,0x00,0x20,0x0b,0x0c,0x0b,0x0f,0x00,0x22,0x0b,0x11,0x0b,0x18,0x00,0x26,0x0e,0x8f,0x0e,0x8f,0x00,0x2e,0x0e,0x93,0x0e,0x93, +0x00,0x2f,0x0e,0x95,0x0e,0x97,0x00,0x30,0x0f,0x02,0x0f,0x02,0x00,0x33,0x0f,0x22,0x0f,0x23,0x00,0x34,0x0f,0x28,0x0f,0x2b,0x00,0x36,0x0f,0x62,0x0f,0x63,0x00,0x3a,0x0f,0x66,0x0f,0x67,0x00,0x3c,0x0f,0x6a,0x0f,0x6b,0x00,0x3e,0x0f,0x98,0x0f,0xa6,0x00,0x40,0x0f,0xc3,0x0f,0xc3,0x00,0x4f,0x14,0x58,0x14,0x58,0x00,0x50,0x14,0x7d, +0x14,0x7d,0x00,0x51,0x14,0xad,0x14,0xad,0x00,0x52,0x00,0x02,0x01,0x70,0x00,0x05,0x00,0x00,0x02,0x2e,0x03,0x3a,0x00,0x08,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55, +0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0xab,0x00,0xab,0x00,0xab, +0x00,0xab,0xff,0x55,0xff,0x55,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x00,0x00,0x00,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0xab,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0xff,0x55,0x00,0x02,0x00,0x1f,0x08,0xc9, +0x08,0xca,0x00,0x00,0x08,0xff,0x09,0x01,0x00,0x02,0x09,0x04,0x09,0x04,0x00,0x05,0x09,0x08,0x09,0x08,0x00,0x06,0x09,0x0a,0x09,0x0b,0x00,0x07,0x09,0x29,0x09,0x29,0x00,0x09,0x09,0x45,0x09,0x45,0x00,0x0a,0x09,0x85,0x09,0x85,0x00,0x0b,0x09,0xb3,0x09,0xb8,0x00,0x0c,0x0a,0x56,0x0a,0x57,0x00,0x12,0x0a,0xb4,0x0a,0xb5,0x00,0x14, +0x0b,0x0c,0x0b,0x0f,0x00,0x16,0x0b,0x11,0x0b,0x18,0x00,0x1a,0x0e,0x24,0x0e,0x24,0x00,0x22,0x0e,0x5e,0x0e,0x5e,0x00,0x23,0x0e,0x74,0x0e,0x75,0x00,0x24,0x0e,0xdc,0x0e,0xe3,0x00,0x26,0x0e,0xe6,0x0e,0xe6,0x00,0x2e,0x0f,0x02,0x0f,0x02,0x00,0x2f,0x0f,0x22,0x0f,0x23,0x00,0x30,0x0f,0x39,0x0f,0x39,0x00,0x32,0x0f,0x3b,0x0f,0x3b, +0x00,0x33,0x0f,0x62,0x0f,0x63,0x00,0x34,0x0f,0x66,0x0f,0x67,0x00,0x36,0x0f,0x6a,0x0f,0x6b,0x00,0x38,0x0f,0x98,0x0f,0xa6,0x00,0x3a,0x0f,0xc3,0x0f,0xc3,0x00,0x49,0x11,0x02,0x11,0x09,0x00,0x4a,0x14,0x58,0x14,0x58,0x00,0x52,0x14,0x7d,0x14,0x7d,0x00,0x53,0x14,0xad,0x14,0xad,0x00,0x54,0x00,0x02,0x00,0x2c,0x08,0xc9,0x08,0xc9, +0x00,0x01,0x08,0xca,0x08,0xca,0x00,0x03,0x08,0xff,0x09,0x01,0x00,0x04,0x09,0x04,0x09,0x04,0x00,0x04,0x09,0x08,0x09,0x08,0x00,0x01,0x09,0x0a,0x09,0x0a,0x00,0x02,0x09,0x0b,0x09,0x0b,0x00,0x03,0x09,0x29,0x09,0x29,0x00,0x02,0x09,0x45,0x09,0x45,0x00,0x07,0x09,0x85,0x09,0x85,0x00,0x03,0x09,0xb3,0x09,0xb5,0x00,0x05,0x09,0xb6, +0x09,0xb6,0x00,0x06,0x09,0xb7,0x09,0xb8,0x00,0x07,0x0a,0x56,0x0a,0x57,0x00,0x07,0x0a,0xb4,0x0a,0xb5,0x00,0x07,0x0b,0x0c,0x0b,0x0c,0x00,0x05,0x0b,0x0d,0x0b,0x0d,0x00,0x06,0x0b,0x0e,0x0b,0x0f,0x00,0x07,0x0b,0x11,0x0b,0x13,0x00,0x05,0x0b,0x14,0x0b,0x14,0x00,0x06,0x0b,0x15,0x0b,0x18,0x00,0x07,0x0e,0x24,0x0e,0x24,0x00,0x02, +0x0e,0x5e,0x0e,0x5e,0x00,0x02,0x0e,0x74,0x0e,0x75,0x00,0x02,0x0e,0xdc,0x0e,0xe3,0x00,0x02,0x0e,0xe6,0x0e,0xe6,0x00,0x02,0x0f,0x02,0x0f,0x02,0x00,0x06,0x0f,0x22,0x0f,0x23,0x00,0x07,0x0f,0x39,0x0f,0x39,0x00,0x02,0x0f,0x3b,0x0f,0x3b,0x00,0x02,0x0f,0x62,0x0f,0x63,0x00,0x04,0x0f,0x66,0x0f,0x67,0x00,0x04,0x0f,0x6a,0x0f,0x6b, +0x00,0x04,0x0f,0x98,0x0f,0x99,0x00,0x05,0x0f,0x9a,0x0f,0x9b,0x00,0x07,0x0f,0x9c,0x0f,0x9f,0x00,0x05,0x0f,0xa0,0x0f,0xa2,0x00,0x07,0x0f,0xa3,0x0f,0xa3,0x00,0x05,0x0f,0xa4,0x0f,0xa6,0x00,0x07,0x0f,0xc3,0x0f,0xc3,0x00,0x07,0x11,0x02,0x11,0x09,0x00,0x02,0x14,0x58,0x14,0x58,0x00,0x07,0x14,0x7d,0x14,0x7d,0x00,0x07,0x14,0xad, +0x14,0xad,0x00,0x07,0x00,0x02,0x00,0xf0,0x08,0xcc,0x08,0xcd,0x00,0x05,0x08,0xd4,0x08,0xd5,0x00,0x01,0x08,0xd6,0x08,0xd6,0x00,0x02,0x08,0xe1,0x08,0xe2,0x00,0x02,0x08,0xe5,0x08,0xe5,0x00,0x02,0x08,0xe8,0x08,0xe8,0x00,0x02,0x08,0xeb,0x08,0xeb,0x00,0x02,0x08,0xed,0x08,0xed,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x01,0x08,0xef, +0x08,0xef,0x00,0x02,0x08,0xf0,0x08,0xf0,0x00,0x01,0x08,0xf1,0x08,0xf1,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x06,0x08,0xf9,0x08,0xfa,0x00,0x01,0x08,0xff,0x08,0xff,0x00,0x01,0x09,0x01,0x09,0x01,0x00,0x01,0x09,0x06,0x09,0x06,0x00,0x01,0x09,0x07,0x09,0x07,0x00,0x02,0x09,0x09,0x09,0x09,0x00,0x03,0x09,0x0a,0x09,0x0a,0x00,0x01, +0x09,0x0c,0x09,0x0d,0x00,0x01,0x09,0x0f,0x09,0x0f,0x00,0x04,0x09,0x10,0x09,0x11,0x00,0x02,0x09,0x12,0x09,0x14,0x00,0x06,0x09,0x15,0x09,0x16,0x00,0x02,0x09,0x17,0x09,0x1a,0x00,0x01,0x09,0x1b,0x09,0x1e,0x00,0x02,0x09,0x1f,0x09,0x20,0x00,0x07,0x09,0x22,0x09,0x22,0x00,0x02,0x09,0x24,0x09,0x24,0x00,0x01,0x09,0x26,0x09,0x26, +0x00,0x02,0x09,0x28,0x09,0x28,0x00,0x02,0x09,0x29,0x09,0x2b,0x00,0x01,0x09,0x34,0x09,0x34,0x00,0x01,0x09,0x3c,0x09,0x3c,0x00,0x02,0x09,0x3e,0x09,0x3e,0x00,0x02,0x09,0x40,0x09,0x40,0x00,0x02,0x09,0x41,0x09,0x42,0x00,0x06,0x09,0x45,0x09,0x45,0x00,0x01,0x09,0x46,0x09,0x49,0x00,0x08,0x09,0x4a,0x09,0x4a,0x00,0x01,0x09,0x4c, +0x09,0x4c,0x00,0x06,0x09,0x4e,0x09,0x4e,0x00,0x02,0x09,0x5b,0x09,0x5b,0x00,0x02,0x09,0x5c,0x09,0x5c,0x00,0x05,0x09,0x5d,0x09,0x5d,0x00,0x02,0x09,0x5e,0x09,0x5e,0x00,0x01,0x09,0x60,0x09,0x60,0x00,0x02,0x09,0x63,0x09,0x63,0x00,0x02,0x09,0x64,0x09,0x64,0x00,0x04,0x09,0x65,0x09,0x65,0x00,0x0a,0x09,0x67,0x09,0x67,0x00,0x0a, +0x09,0x6c,0x09,0x6d,0x00,0x02,0x09,0x71,0x09,0x71,0x00,0x01,0x09,0x80,0x09,0x80,0x00,0x03,0x09,0x82,0x09,0x82,0x00,0x03,0x09,0x88,0x09,0x8a,0x00,0x01,0x09,0x8c,0x09,0x8c,0x00,0x02,0x09,0x8d,0x09,0x8d,0x00,0x01,0x09,0x8e,0x09,0x8e,0x00,0x02,0x09,0x8f,0x09,0x8f,0x00,0x06,0x09,0x90,0x09,0x90,0x00,0x02,0x09,0x92,0x09,0x92, +0x00,0x02,0x09,0x93,0x09,0x93,0x00,0x05,0x09,0x94,0x09,0x94,0x00,0x02,0x09,0x95,0x09,0x95,0x00,0x05,0x09,0x96,0x09,0x96,0x00,0x02,0x09,0x97,0x09,0x98,0x00,0x06,0x09,0x9b,0x09,0x9b,0x00,0x06,0x09,0x9e,0x09,0x9e,0x00,0x06,0x09,0xa1,0x09,0xa1,0x00,0x06,0x09,0xa4,0x09,0xa4,0x00,0x06,0x09,0xa7,0x09,0xa7,0x00,0x06,0x09,0xaa, +0x09,0xac,0x00,0x02,0x09,0xae,0x09,0xae,0x00,0x02,0x09,0xb2,0x09,0xb2,0x00,0x01,0x09,0xb3,0x09,0xb6,0x00,0x09,0x09,0xb7,0x09,0xbe,0x00,0x01,0x09,0xbf,0x09,0xc3,0x00,0x02,0x09,0xc4,0x09,0xc4,0x00,0x07,0x09,0xc6,0x09,0xc6,0x00,0x02,0x09,0xc8,0x09,0xca,0x00,0x02,0x09,0xcc,0x09,0xcd,0x00,0x02,0x09,0xd2,0x09,0xd3,0x00,0x02, +0x09,0xd7,0x09,0xd8,0x00,0x02,0x09,0xd9,0x09,0xda,0x00,0x08,0x09,0xdb,0x09,0xdb,0x00,0x01,0x09,0xdc,0x09,0xdc,0x00,0x08,0x09,0xdd,0x09,0xdd,0x00,0x01,0x09,0xde,0x09,0xde,0x00,0x08,0x09,0xdf,0x09,0xdf,0x00,0x01,0x09,0xe1,0x09,0xe5,0x00,0x08,0x09,0xe7,0x09,0xea,0x00,0x08,0x09,0xec,0x09,0xec,0x00,0x01,0x09,0xee,0x09,0xee, +0x00,0x01,0x09,0xf0,0x09,0xf0,0x00,0x01,0x09,0xf2,0x09,0xf2,0x00,0x06,0x09,0xf9,0x09,0xf9,0x00,0x05,0x09,0xfa,0x09,0xfa,0x00,0x06,0x09,0xfd,0x09,0xfd,0x00,0x09,0x09,0xfe,0x0a,0x05,0x00,0x01,0x0a,0x07,0x0a,0x07,0x00,0x01,0x0a,0x0a,0x0a,0x0b,0x00,0x01,0x0a,0x0d,0x0a,0x0d,0x00,0x01,0x0a,0x24,0x0a,0x25,0x00,0x01,0x0a,0x26, +0x0a,0x27,0x00,0x02,0x0a,0x28,0x0a,0x28,0x00,0x07,0x0a,0x2a,0x0a,0x2a,0x00,0x02,0x0a,0x3e,0x0a,0x3e,0x00,0x08,0x0a,0x56,0x0a,0x56,0x00,0x01,0x0a,0x58,0x0a,0x58,0x00,0x02,0x0a,0x5a,0x0a,0x5a,0x00,0x02,0x0a,0x63,0x0a,0x63,0x00,0x01,0x0a,0x72,0x0a,0x72,0x00,0x02,0x0a,0x73,0x0a,0x73,0x00,0x06,0x0a,0x74,0x0a,0x74,0x00,0x02, +0x0a,0x76,0x0a,0x76,0x00,0x02,0x0a,0x77,0x0a,0x77,0x00,0x06,0x0a,0x78,0x0a,0x78,0x00,0x02,0x0a,0x79,0x0a,0x79,0x00,0x06,0x0a,0x7a,0x0a,0x7a,0x00,0x02,0x0a,0x7b,0x0a,0x7b,0x00,0x06,0x0a,0x7c,0x0a,0x7c,0x00,0x02,0x0a,0x7d,0x0a,0x7d,0x00,0x06,0x0a,0x7e,0x0a,0x7e,0x00,0x02,0x0a,0x7f,0x0a,0x7f,0x00,0x01,0x0a,0x80,0x0a,0x80, +0x00,0x06,0x0a,0x83,0x0a,0x83,0x00,0x06,0x0a,0x86,0x0a,0x87,0x00,0x02,0x0a,0x88,0x0a,0x8a,0x00,0x01,0x0a,0x8b,0x0a,0x8b,0x00,0x07,0x0a,0x8d,0x0a,0x8d,0x00,0x02,0x0a,0x8f,0x0a,0x8f,0x00,0x07,0x0a,0x91,0x0a,0x91,0x00,0x02,0x0a,0x93,0x0a,0x93,0x00,0x07,0x0a,0x95,0x0a,0x95,0x00,0x02,0x0a,0x9d,0x0a,0x9e,0x00,0x08,0x0a,0xa0, +0x0a,0xa1,0x00,0x08,0x0a,0xa3,0x0a,0xa3,0x00,0x08,0x0a,0xa6,0x0a,0xa9,0x00,0x02,0x0a,0xab,0x0a,0xab,0x00,0x06,0x0a,0xad,0x0a,0xad,0x00,0x01,0x0a,0xaf,0x0a,0xaf,0x00,0x01,0x0a,0xb2,0x0a,0xb2,0x00,0x01,0x0a,0xb4,0x0a,0xb7,0x00,0x01,0x0b,0x19,0x0b,0x19,0x00,0x02,0x0e,0x20,0x0e,0x20,0x00,0x01,0x0e,0x3a,0x0e,0x3a,0x00,0x02, +0x0e,0x3d,0x0e,0x3d,0x00,0x02,0x0e,0x3f,0x0e,0x3f,0x00,0x08,0x0e,0x41,0x0e,0x41,0x00,0x08,0x0e,0x43,0x0e,0x43,0x00,0x08,0x0e,0x47,0x0e,0x47,0x00,0x01,0x0e,0x49,0x0e,0x49,0x00,0x06,0x0e,0x4b,0x0e,0x4b,0x00,0x01,0x0e,0x4d,0x0e,0x4d,0x00,0x06,0x0e,0x4f,0x0e,0x4f,0x00,0x01,0x0e,0x51,0x0e,0x51,0x00,0x06,0x0e,0x5b,0x0e,0x5c, +0x00,0x02,0x0e,0x5f,0x0e,0x5f,0x00,0x02,0x0e,0x6f,0x0e,0x6f,0x00,0x02,0x0e,0x71,0x0e,0x71,0x00,0x02,0x0e,0x76,0x0e,0x76,0x00,0x01,0x0e,0xa3,0x0e,0xa3,0x00,0x02,0x0e,0xac,0x0e,0xac,0x00,0x02,0x0e,0xaf,0x0e,0xaf,0x00,0x02,0x0e,0xd1,0x0e,0xd1,0x00,0x05,0x0e,0xd7,0x0e,0xd7,0x00,0x02,0x0e,0xe7,0x0e,0xe7,0x00,0x06,0x0e,0xe9, +0x0e,0xe9,0x00,0x06,0x0f,0x16,0x0f,0x16,0x00,0x06,0x0f,0x1a,0x0f,0x1a,0x00,0x06,0x0f,0x1e,0x0f,0x1e,0x00,0x01,0x0f,0x20,0x0f,0x20,0x00,0x01,0x0f,0x22,0x0f,0x22,0x00,0x01,0x0f,0x24,0x0f,0x24,0x00,0x06,0x0f,0x28,0x0f,0x28,0x00,0x01,0x0f,0x2a,0x0f,0x2a,0x00,0x01,0x0f,0x2c,0x0f,0x2c,0x00,0x01,0x0f,0x2e,0x0f,0x2e,0x00,0x06, +0x0f,0x30,0x0f,0x30,0x00,0x01,0x0f,0x32,0x0f,0x32,0x00,0x06,0x0f,0x34,0x0f,0x34,0x00,0x01,0x0f,0x36,0x0f,0x36,0x00,0x06,0x0f,0x38,0x0f,0x38,0x00,0x01,0x0f,0x3a,0x0f,0x3a,0x00,0x01,0x0f,0x3c,0x0f,0x3c,0x00,0x0a,0x0f,0x3e,0x0f,0x3e,0x00,0x0a,0x0f,0x40,0x0f,0x40,0x00,0x06,0x0f,0x44,0x0f,0x44,0x00,0x01,0x0f,0x46,0x0f,0x46, +0x00,0x01,0x0f,0x48,0x0f,0x48,0x00,0x01,0x0f,0x4a,0x0f,0x4a,0x00,0x01,0x0f,0x4c,0x0f,0x4c,0x00,0x01,0x0f,0x4e,0x0f,0x4e,0x00,0x08,0x0f,0x6c,0x0f,0x6c,0x00,0x01,0x0f,0x6e,0x0f,0x6e,0x00,0x01,0x0f,0x70,0x0f,0x70,0x00,0x01,0x0f,0x72,0x0f,0x72,0x00,0x01,0x0f,0x74,0x0f,0x74,0x00,0x01,0x0f,0x76,0x0f,0x76,0x00,0x01,0x0f,0x78, +0x0f,0x78,0x00,0x01,0x0f,0x7a,0x0f,0x7a,0x00,0x01,0x0f,0x7c,0x0f,0x7c,0x00,0x01,0x0f,0x7e,0x0f,0x7e,0x00,0x01,0x0f,0x80,0x0f,0x80,0x00,0x01,0x0f,0x82,0x0f,0x82,0x00,0x02,0x0f,0x84,0x0f,0x84,0x00,0x02,0x0f,0x86,0x0f,0x86,0x00,0x02,0x0f,0x88,0x0f,0x88,0x00,0x02,0x0f,0x8a,0x0f,0x8a,0x00,0x02,0x0f,0x8c,0x0f,0x8c,0x00,0x01, +0x0f,0x8e,0x0f,0x8e,0x00,0x01,0x0f,0x90,0x0f,0x90,0x00,0x01,0x0f,0x92,0x0f,0x92,0x00,0x01,0x0f,0x94,0x0f,0x94,0x00,0x06,0x0f,0x96,0x0f,0x96,0x00,0x01,0x0f,0xc0,0x0f,0xc0,0x00,0x01,0x10,0xfe,0x10,0xfe,0x00,0x01,0x11,0x00,0x11,0x00,0x00,0x01,0x11,0x02,0x11,0x02,0x00,0x01,0x11,0x04,0x11,0x04,0x00,0x01,0x11,0x06,0x11,0x06, +0x00,0x01,0x11,0x08,0x11,0x08,0x00,0x01,0x11,0x0a,0x11,0x0a,0x00,0x01,0x11,0x0c,0x11,0x0d,0x00,0x01,0x11,0x0f,0x11,0x0f,0x00,0x01,0x14,0x53,0x14,0x53,0x00,0x07,0x14,0x54,0x14,0x54,0x00,0x01,0x14,0x55,0x14,0x57,0x00,0x02,0x14,0x58,0x14,0x59,0x00,0x01,0x14,0x5a,0x14,0x5b,0x00,0x02,0x14,0x6f,0x14,0x6f,0x00,0x02,0x14,0x72, +0x14,0x72,0x00,0x08,0x14,0x75,0x14,0x75,0x00,0x05,0x14,0x78,0x14,0x78,0x00,0x06,0x14,0x7b,0x14,0x7b,0x00,0x05,0x14,0x80,0x14,0x80,0x00,0x06,0x14,0x83,0x14,0x83,0x00,0x02,0x14,0x97,0x14,0x98,0x00,0x02,0x00,0x01,0x00,0x26,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x1a,0x00,0x20,0x00,0x20,0x00,0x1a,0x00,0x1a,0x00,0x20,0x00,0x20, +0x00,0x1a,0x00,0x01,0x08,0xdd,0xff,0x55,0x00,0x01,0x08,0xdb,0xff,0x55,0x00,0x02,0x00,0x06,0x08,0xd7,0x08,0xd7,0x00,0x00,0x08,0xd9,0x08,0xd9,0x00,0x01,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x04,0x09,0x51,0x09,0x51,0x00,0x05,0x09,0x56,0x09,0x57,0x00,0x06,0x00,0x02,0x00,0x30,0x00,0x04,0x00,0x00,0x00,0x4c, +0x00,0x80,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0xfe,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x00,0xff,0x55,0x00,0x00,0x00,0x02,0x00,0x04,0x08,0xd9,0x08,0xda,0x00,0x00,0x08,0xde,0x08,0xdf,0x00,0x02,0x09,0x51,0x09,0x53,0x00,0x04,0x09,0x55,0x09,0x57, +0x00,0x07,0x00,0x02,0x00,0x08,0x08,0xd9,0x08,0xda,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x01,0x08,0xdf,0x08,0xdf,0x00,0x03,0x09,0x51,0x09,0x52,0x00,0x01,0x09,0x53,0x09,0x53,0x00,0x02,0x09,0x55,0x09,0x55,0x00,0x02,0x09,0x56,0x09,0x56,0x00,0x01,0x09,0x57,0x09,0x57,0x00,0x03,0x00,0x02,0x00,0x0a,0x08,0xd7,0x08,0xd7,0x00,0x01, +0x08,0xdc,0x08,0xdc,0x00,0x01,0x08,0xde,0x08,0xde,0x00,0x02,0x08,0xdf,0x08,0xdf,0x00,0x03,0x08,0xe0,0x08,0xe0,0x00,0x02,0x09,0x4f,0x09,0x4f,0x00,0x01,0x09,0x54,0x09,0x55,0x00,0x01,0x09,0x56,0x09,0x56,0x00,0x02,0x09,0x57,0x09,0x57,0x00,0x03,0x09,0x58,0x09,0x58,0x00,0x02,0x00,0x01,0x10,0xc6,0x00,0x04,0x00,0x00,0x00,0x57, +0x00,0xb8,0x01,0xbe,0x01,0xe4,0x02,0x3e,0x02,0xa8,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x9c,0x07,0x96,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0xa8,0x0d,0x72,0x0e,0x88,0x0e,0xde,0x10,0x88,0x00,0xb8,0x00,0xb8,0x01,0xe4,0x06,0x16,0x0b,0x7a,0x06,0x16,0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x0e,0xde, +0x00,0xb8,0x00,0xb8,0x06,0x16,0x06,0x16,0x06,0x16,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x09,0x0a,0x10,0x88,0x02,0x3e,0x0e,0xde,0x03,0x2a,0x09,0x0a,0x01,0xe4,0x01,0xe4,0x00,0xb8,0x00,0xb8,0x04,0xf0,0x06,0x16,0x08,0x14,0x08,0x14,0x09,0x0a,0x09,0x50,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x10,0x88,0x10,0x88,0x00,0xb8,0x01,0xe4,0x03,0x2a, +0x03,0x2a,0x03,0x2a,0x03,0x70,0x03,0xa6,0x04,0xf0,0x06,0x16,0x06,0x16,0x08,0x14,0x09,0x0a,0x09,0x50,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0b,0x7a,0x0d,0x72,0x0e,0xde,0x00,0xb8,0x06,0x16,0x0d,0x72,0x0d,0x72,0x0d,0x72,0x0e,0xde,0x09,0x0a,0x00,0x41,0x00,0x26,0xff,0xd8,0x00,0x2a,0xff,0xd8,0x00,0x2d,0x00,0x5e,0x00,0x32,0xff,0xd8, +0x00,0x37,0xff,0x6d,0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x74,0x00,0x3a,0xff,0x74,0x00,0x3c,0xff,0x74,0x00,0x3d,0x00,0x3c,0x00,0x59,0xff,0xd8,0x00,0x5a,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x64,0xff,0xd8,0x00,0x67,0xff,0xd8,0x00,0x68,0xff,0xd8,0x00,0x92,0xff,0xd8,0x00,0xaf,0xff,0xd8,0x00,0xb0,0xff,0xd8,0x00,0xba,0xff,0xd8, +0x00,0xbb,0xff,0x74,0x00,0xd0,0xff,0xd8,0x00,0xd1,0xff,0xd8,0x00,0xd2,0xff,0xd8,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3c,0x00,0xea,0xff,0x74,0x00,0xeb,0xff,0xd8,0x00,0xf7,0xff,0xd8,0x00,0xfc,0xff,0xd8,0x00,0xfe,0xff,0xd8,0x01,0x18,0xff,0xd8,0x01,0x20,0xff,0x6d,0x01,0x22,0xff,0x6d, +0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3c,0x01,0x2a,0x00,0x3c,0x01,0x47,0xff,0xd8,0x01,0x51,0xff,0xd8,0x01,0x53,0xff,0xd8,0x01,0x55,0xff,0xd8,0x01,0x63,0x00,0x5e,0x01,0x6e,0xff,0xd8,0x01,0x70,0xff,0xd8,0x01,0x76,0xff,0x6d,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8, +0x01,0x80,0xff,0x74,0x01,0x81,0xff,0xd8,0x01,0x82,0xff,0x74,0x01,0x83,0xff,0xd8,0x01,0x89,0xff,0xd8,0x01,0x8c,0xff,0x74,0x01,0x8d,0xff,0xd8,0x01,0x8e,0xff,0x74,0x01,0x8f,0xff,0xd8,0x01,0x90,0xff,0x74,0x01,0x91,0xff,0xd8,0x01,0x92,0xff,0x74,0x01,0x93,0xff,0xd8,0x00,0x09,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xbe,0x00,0xbb, +0xff,0xbe,0x00,0xea,0xff,0xbe,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xbe,0x01,0x92,0xff,0xbe,0x00,0x16,0x00,0x26,0xff,0xc9,0x00,0x2a,0xff,0xc9,0x00,0x32,0xff,0xc9,0x00,0x64,0xff,0xc9,0x00,0x67,0xff,0xc9,0x00,0x92,0xff,0xc9,0x00,0xaf,0xff,0xc9,0x00,0xb0,0xff,0xc9,0x00,0xd0,0xff,0xc9, +0x00,0xd1,0xff,0xc9,0x00,0xd2,0xff,0xc9,0x00,0xf7,0xff,0xc9,0x00,0xfc,0xff,0xc9,0x00,0xfe,0xff,0xc9,0x01,0x18,0xff,0xc9,0x01,0x47,0xff,0xc9,0x01,0x51,0xff,0xc9,0x01,0x53,0xff,0xc9,0x01,0x55,0xff,0xc9,0x01,0x6e,0xff,0xc9,0x01,0x70,0xff,0xc9,0x01,0x89,0xff,0xc9,0x00,0x1a,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39, +0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xc4,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a, +0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x00,0x20,0x00,0x24,0xff,0x88,0x00,0x2d,0xff,0xbe,0x00,0x44,0xff,0xba,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba, +0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x75,0x00,0x32,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0xba,0x01,0x45,0xff,0x88, +0x01,0x46,0xff,0xba,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x00,0x11,0x00,0x37,0xff,0xcf,0x00,0x39,0xff,0xd8,0x00,0x3a,0xff,0xd8,0x00,0x3b,0xff,0xd8,0x00,0x5c,0xff,0xd8,0x00,0x5d,0xff,0xd8,0x00,0xba,0xff,0xd8,0x00,0xeb, +0xff,0xd8,0x01,0x20,0xff,0xcf,0x01,0x22,0xff,0xcf,0x01,0x76,0xff,0xcf,0x01,0x80,0xff,0xd8,0x01,0x83,0xff,0xd8,0x01,0x8c,0xff,0xd8,0x01,0x8e,0xff,0xd8,0x01,0x90,0xff,0xd8,0x01,0x93,0xff,0xd8,0x00,0x0d,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xb0,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce, +0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xb0,0x01,0x85,0xff,0xce,0x00,0x52,0x00,0x26,0xff,0xa6,0x00,0x2a,0xff,0xa6,0x00,0x2d,0x00,0x5a,0x00,0x32,0xff,0xa6,0x00,0x39,0x00,0x28,0x00,0x3a,0x00,0x28,0x00,0x3b,0x00,0x32,0x00,0x3c,0x00,0x28,0x00,0x3d, +0x00,0x28,0x00,0x46,0xff,0xe5,0x00,0x47,0xff,0xe5,0x00,0x48,0xff,0xe5,0x00,0x4a,0xff,0xe5,0x00,0x52,0xff,0xce,0x00,0x54,0xff,0xce,0x00,0x57,0xff,0xd1,0x00,0x59,0xff,0xba,0x00,0x5a,0xff,0xba,0x00,0x5b,0x00,0x1e,0x00,0x5c,0xff,0xa6,0x00,0x64,0xff,0xa6,0x00,0x67,0xff,0xa6,0x00,0x79,0xff,0xce,0x00,0x7a,0xff,0xce,0x00,0x7b, +0xff,0xce,0x00,0x7c,0xff,0xce,0x00,0x7d,0xff,0xce,0x00,0x92,0xff,0xa6,0x00,0xaf,0xff,0xa6,0x00,0xb0,0xff,0xa6,0x00,0xb1,0xff,0xce,0x00,0xba,0xff,0xa6,0x00,0xbb,0x00,0x28,0x00,0xd0,0xff,0xa6,0x00,0xd1,0xff,0xa6,0x00,0xd2,0xff,0xa6,0x00,0xe5,0x00,0x28,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0xa6,0x00,0xf7,0xff,0xa6,0x00,0xf8, +0xff,0xe5,0x00,0xfc,0xff,0xa6,0x00,0xfd,0xff,0xe5,0x00,0xfe,0xff,0xa6,0x00,0xff,0xff,0xe5,0x01,0x00,0xff,0xe5,0x01,0x08,0xff,0xe5,0x01,0x0b,0xff,0xe5,0x01,0x18,0xff,0xa6,0x01,0x19,0xff,0xce,0x01,0x21,0xff,0xd1,0x01,0x23,0xff,0xd1,0x01,0x28,0x00,0x28,0x01,0x2a,0x00,0x28,0x01,0x47,0xff,0xa6,0x01,0x48,0xff,0xe5,0x01,0x51, +0xff,0xa6,0x01,0x52,0xff,0xe5,0x01,0x53,0xff,0xa6,0x01,0x54,0xff,0xe5,0x01,0x55,0xff,0xa6,0x01,0x56,0xff,0xe5,0x01,0x63,0x00,0x5a,0x01,0x6e,0xff,0xa6,0x01,0x6f,0xff,0xce,0x01,0x70,0xff,0xa6,0x01,0x71,0xff,0xce,0x01,0x77,0xff,0xd1,0x01,0x80,0x00,0x28,0x01,0x81,0xff,0xba,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0xa6,0x01,0x89, +0xff,0xa6,0x01,0x8a,0xff,0xce,0x01,0x8c,0x00,0x28,0x01,0x8d,0xff,0xba,0x01,0x8e,0x00,0x28,0x01,0x8f,0xff,0xba,0x01,0x90,0x00,0x28,0x01,0x91,0xff,0xba,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0xa6,0x00,0x49,0x00,0x24,0x00,0x3c,0x00,0x26,0xff,0xba,0x00,0x2a,0xff,0xbe,0x00,0x2d,0x00,0x64,0x00,0x32,0xff,0xba,0x00,0x37,0xff,0x74, +0x00,0x38,0xff,0xd8,0x00,0x39,0xff,0x88,0x00,0x3a,0xff,0x88,0x00,0x3c,0xff,0x88,0x00,0x3d,0x00,0x3b,0x00,0x57,0xff,0xe5,0x00,0x59,0xff,0x9c,0x00,0x5a,0xff,0x9c,0x00,0x5c,0xff,0x9c,0x00,0x62,0x00,0x3c,0x00,0x63,0x00,0x3c,0x00,0x64,0xff,0xba,0x00,0x68,0xff,0xd8,0x00,0xad,0x00,0x3c,0x00,0xae,0x00,0x3c,0x00,0xba,0xff,0x9c, +0x00,0xbb,0xff,0x88,0x00,0xc7,0x00,0x3c,0x00,0xc9,0x00,0x3c,0x00,0xd3,0xff,0xd8,0x00,0xd4,0xff,0xd8,0x00,0xd5,0xff,0xd8,0x00,0xe5,0x00,0x3b,0x00,0xea,0xff,0x88,0x00,0xeb,0xff,0x9c,0x00,0xf7,0xff,0xbe,0x00,0xfc,0xff,0xba,0x00,0xfe,0xff,0xba,0x01,0x03,0x00,0x3c,0x01,0x05,0x00,0x3c,0x01,0x18,0xff,0xba,0x01,0x20,0xff,0x74, +0x01,0x21,0xff,0xe5,0x01,0x22,0xff,0x74,0x01,0x23,0xff,0xe5,0x01,0x24,0xff,0xd8,0x01,0x26,0xff,0xd8,0x01,0x28,0x00,0x3b,0x01,0x2a,0x00,0x3b,0x01,0x45,0x00,0x3c,0x01,0x47,0xff,0xba,0x01,0x51,0xff,0xbe,0x01,0x53,0xff,0xbe,0x01,0x55,0xff,0xbe,0x01,0x63,0x00,0x64,0x01,0x6e,0xff,0xba,0x01,0x70,0xff,0xba,0x01,0x76,0xff,0x74, +0x01,0x77,0xff,0xe5,0x01,0x78,0xff,0xd8,0x01,0x7a,0xff,0xd8,0x01,0x7c,0xff,0xd8,0x01,0x7e,0xff,0xd8,0x01,0x80,0xff,0x88,0x01,0x81,0xff,0x9c,0x01,0x82,0xff,0x88,0x01,0x83,0xff,0x9c,0x01,0x85,0x00,0x3c,0x01,0x89,0xff,0xba,0x01,0x8c,0xff,0x88,0x01,0x8d,0xff,0x9c,0x01,0x8e,0xff,0x88,0x01,0x8f,0xff,0x9c,0x01,0x90,0xff,0x88, +0x01,0x91,0xff,0x9c,0x01,0x92,0xff,0x88,0x01,0x93,0xff,0x9c,0x00,0x21,0x00,0x24,0xff,0xce,0x00,0x2d,0xff,0xf6,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb, +0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x63,0xff,0xf6,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85, +0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e,0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3e,0x00,0x24,0xff,0x74,0x00,0x2d,0xff,0x7f,0x00,0x3b,0xff,0xce,0x00,0x44,0xff,0xba,0x00,0x46,0xff,0xb4,0x00,0x47,0xff,0xb4,0x00,0x48,0xff,0xb4,0x00,0x4a,0xff,0xb4,0x00,0x52,0xff,0xb4,0x00,0x54,0xff,0xb4,0x00,0x62,0xff,0x74, +0x00,0x63,0xff,0x74,0x00,0x69,0xff,0xba,0x00,0x6a,0xff,0xba,0x00,0x6b,0xff,0xba,0x00,0x6c,0xff,0xba,0x00,0x6d,0xff,0xba,0x00,0x6e,0xff,0xba,0x00,0x6f,0xff,0xb4,0x00,0x70,0xff,0xb4,0x00,0x71,0xff,0xb4,0x00,0x72,0xff,0xb4,0x00,0x73,0xff,0xb4,0x00,0x79,0xff,0xb4,0x00,0x7a,0xff,0xb4,0x00,0x7b,0xff,0xb4,0x00,0x7c,0xff,0xb4, +0x00,0x7d,0xff,0xb4,0x00,0xa0,0xff,0xba,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xb1,0xff,0xb4,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74,0x00,0xf8,0xff,0xb4,0x00,0xfd,0xff,0xb4,0x00,0xff,0xff,0xb4,0x01,0x00,0xff,0xb4,0x01,0x03,0xff,0x74,0x01,0x04,0xff,0xba,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0xba,0x01,0x08,0xff,0xb4, +0x01,0x0b,0xff,0xb4,0x01,0x0d,0xff,0xb4,0x01,0x19,0xff,0xb4,0x01,0x45,0xff,0x74,0x01,0x46,0xff,0xba,0x01,0x48,0xff,0xb4,0x01,0x4c,0xff,0xb4,0x01,0x4e,0xff,0xb4,0x01,0x50,0xff,0xb4,0x01,0x52,0xff,0xb4,0x01,0x54,0xff,0xb4,0x01,0x56,0xff,0xb4,0x01,0x63,0xff,0x7f,0x01,0x6f,0xff,0xb4,0x01,0x71,0xff,0xb4,0x01,0x85,0xff,0x74, +0x01,0x86,0xff,0xba,0x01,0x88,0xff,0xba,0x01,0x8a,0xff,0xb4,0x00,0x1f,0x00,0x24,0xff,0xce,0x00,0x37,0xff,0xa4,0x00,0x39,0xff,0xce,0x00,0x3a,0xff,0xce,0x00,0x3b,0xff,0xce,0x00,0x3c,0xff,0xce,0x00,0x3d,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad,0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xbb,0xff,0xce,0x00,0xc7, +0xff,0xce,0x00,0xc9,0xff,0xce,0x00,0xe5,0xff,0xce,0x00,0xea,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x28,0xff,0xce,0x01,0x2a,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x76,0xff,0xa4,0x01,0x80,0xff,0xce,0x01,0x82,0xff,0xce,0x01,0x85,0xff,0xce,0x01,0x8c,0xff,0xce,0x01,0x8e, +0xff,0xce,0x01,0x90,0xff,0xce,0x01,0x92,0xff,0xce,0x00,0x3d,0x00,0x26,0xff,0xe3,0x00,0x2a,0xff,0xe3,0x00,0x2d,0x00,0x39,0x00,0x32,0xff,0xec,0x00,0x37,0xff,0xa4,0x00,0x3c,0xff,0xd9,0x00,0x46,0xff,0xc4,0x00,0x47,0xff,0xc4,0x00,0x48,0xff,0xc4,0x00,0x4a,0xff,0xc4,0x00,0x52,0xff,0xc4,0x00,0x54,0xff,0xcb,0x00,0x64,0xff,0xe3, +0x00,0x6f,0xff,0xc4,0x00,0x70,0xff,0xc4,0x00,0x71,0xff,0xc4,0x00,0x72,0xff,0xc4,0x00,0x73,0xff,0xc4,0x00,0x79,0xff,0xc4,0x00,0x7a,0xff,0xc4,0x00,0x7b,0xff,0xc4,0x00,0x7c,0xff,0xc4,0x00,0x7d,0xff,0xc4,0x00,0xb1,0xff,0xc4,0x00,0xbb,0xff,0xd9,0x00,0xea,0xff,0xd9,0x00,0xf7,0xff,0xe3,0x00,0xf8,0xff,0xc4,0x00,0xfc,0xff,0xe3, +0x00,0xfd,0xff,0xc4,0x00,0xfe,0xff,0xe3,0x00,0xff,0xff,0xc4,0x01,0x00,0xff,0xc4,0x01,0x08,0xff,0xc4,0x01,0x0b,0xff,0xc4,0x01,0x0d,0xff,0xc4,0x01,0x18,0xff,0xec,0x01,0x19,0xff,0xc4,0x01,0x20,0xff,0xa4,0x01,0x22,0xff,0xa4,0x01,0x47,0xff,0xe3,0x01,0x48,0xff,0xc4,0x01,0x4c,0xff,0xc4,0x01,0x4e,0xff,0xc4,0x01,0x50,0xff,0xc4, +0x01,0x51,0xff,0xe3,0x01,0x52,0xff,0xc4,0x01,0x53,0xff,0xe3,0x01,0x54,0xff,0xc4,0x01,0x55,0xff,0xe3,0x01,0x56,0xff,0xc4,0x01,0x63,0x00,0x39,0x01,0x6e,0xff,0xec,0x01,0x6f,0xff,0xc4,0x01,0x70,0xff,0xec,0x01,0x71,0xff,0xc4,0x01,0x76,0xff,0xa4,0x01,0x82,0xff,0xd9,0x01,0x89,0xff,0xec,0x01,0x8a,0xff,0xc4,0x01,0x92,0xff,0xd9, +0x00,0x11,0x00,0x57,0xff,0xbe,0x00,0x59,0xff,0xce,0x00,0x5a,0xff,0xe2,0x00,0x5b,0xff,0xe2,0x00,0x5c,0xff,0xc4,0x00,0x5d,0xff,0xc4,0x00,0xba,0xff,0xc4,0x00,0xeb,0xff,0xc4,0x01,0x21,0xff,0xbe,0x01,0x23,0xff,0xbe,0x01,0x77,0xff,0xbe,0x01,0x81,0xff,0xe2,0x01,0x83,0xff,0xc4,0x01,0x8d,0xff,0xe2,0x01,0x8f,0xff,0xe2,0x01,0x91, +0xff,0xe2,0x01,0x93,0xff,0xc4,0x00,0x8a,0x00,0x24,0xff,0x74,0x00,0x26,0xff,0xa1,0x00,0x2a,0xff,0xa1,0x00,0x2d,0xff,0x8f,0x00,0x32,0xff,0xa1,0x00,0x36,0xff,0xd8,0x00,0x37,0x00,0x28,0x00,0x39,0x00,0x2b,0x00,0x3a,0x00,0x2b,0x00,0x3c,0x00,0x28,0x00,0x44,0xff,0x1a,0x00,0x46,0xff,0x38,0x00,0x47,0xff,0x38,0x00,0x48,0xff,0x38, +0x00,0x49,0xff,0xa0,0x00,0x4a,0xff,0x38,0x00,0x50,0xff,0x4e,0x00,0x51,0xff,0x4e,0x00,0x52,0xff,0x38,0x00,0x53,0xff,0x4e,0x00,0x54,0xff,0x38,0x00,0x55,0xff,0x4e,0x00,0x56,0xff,0x66,0x00,0x59,0xff,0x9a,0x00,0x5a,0xff,0x8f,0x00,0x5b,0xff,0x4c,0x00,0x5c,0xff,0x8f,0x00,0x5d,0xff,0x8f,0x00,0x62,0xff,0x74,0x00,0x63,0xff,0x74, +0x00,0x64,0xff,0xa1,0x00,0x67,0xff,0xa1,0x00,0x69,0xff,0x1a,0x00,0x6a,0xff,0x1a,0x00,0x6b,0xff,0x1a,0x00,0x6c,0xff,0x38,0x00,0x6d,0xff,0x38,0x00,0x6e,0xff,0x1a,0x00,0x6f,0xff,0x38,0x00,0x70,0xff,0x38,0x00,0x71,0xff,0x38,0x00,0x72,0xff,0x38,0x00,0x73,0xff,0x38,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x32,0x00,0x77,0x00,0x32, +0x00,0x79,0xff,0x38,0x00,0x7a,0xff,0x38,0x00,0x7b,0xff,0x38,0x00,0x7c,0xff,0x38,0x00,0x7d,0xff,0x38,0x00,0x92,0xff,0xa1,0x00,0xa0,0xff,0x1a,0x00,0xad,0xff,0x74,0x00,0xae,0xff,0x74,0x00,0xaf,0xff,0xa1,0x00,0xb0,0xff,0xa1,0x00,0xb1,0xff,0x38,0x00,0xba,0xff,0x8f,0x00,0xbb,0x00,0x28,0x00,0xc7,0xff,0x74,0x00,0xc9,0xff,0x74, +0x00,0xd0,0xff,0xa1,0x00,0xd1,0xff,0xa1,0x00,0xd2,0xff,0xa1,0x00,0xe3,0xff,0xd8,0x00,0xe4,0xff,0x66,0x00,0xea,0x00,0x28,0x00,0xeb,0xff,0x8f,0x00,0xf7,0xff,0xa1,0x00,0xf8,0xff,0x38,0x00,0xfa,0xff,0xd8,0x00,0xfb,0xff,0x66,0x00,0xfc,0xff,0xa1,0x00,0xfd,0xff,0x38,0x00,0xfe,0xff,0xa1,0x00,0xff,0xff,0x38,0x01,0x00,0xff,0x38, +0x01,0x03,0xff,0x74,0x01,0x04,0xff,0x38,0x01,0x05,0xff,0x74,0x01,0x06,0xff,0x1a,0x01,0x08,0xff,0x38,0x01,0x0b,0xff,0x38,0x01,0x0d,0xff,0x38,0x01,0x18,0xff,0xa1,0x01,0x19,0xff,0x38,0x01,0x1b,0xff,0x4e,0x01,0x1d,0xff,0x4e,0x01,0x1e,0xff,0xd8,0x01,0x1f,0xff,0x66,0x01,0x20,0x00,0x28,0x01,0x22,0x00,0x28,0x01,0x45,0xff,0x74, +0x01,0x46,0xff,0x38,0x01,0x47,0xff,0xa1,0x01,0x48,0xff,0x38,0x01,0x4c,0xff,0x38,0x01,0x4e,0xff,0x38,0x01,0x50,0xff,0x38,0x01,0x51,0xff,0xa1,0x01,0x52,0xff,0x38,0x01,0x53,0xff,0xa1,0x01,0x54,0xff,0x38,0x01,0x55,0xff,0xa1,0x01,0x56,0xff,0x38,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0xff,0x8f, +0x01,0x6d,0xff,0x4e,0x01,0x6e,0xff,0xa1,0x01,0x6f,0xff,0x38,0x01,0x70,0xff,0xa1,0x01,0x71,0xff,0x38,0x01,0x73,0xff,0x4e,0x01,0x74,0xff,0xd8,0x01,0x75,0xff,0x66,0x01,0x76,0x00,0x28,0x01,0x80,0x00,0x2b,0x01,0x81,0xff,0x8f,0x01,0x82,0x00,0x28,0x01,0x83,0xff,0x8f,0x01,0x85,0xff,0x74,0x01,0x86,0xff,0x38,0x01,0x88,0xff,0x1a, +0x01,0x89,0xff,0xa1,0x01,0x8a,0xff,0x38,0x01,0x8c,0x00,0x2b,0x01,0x8d,0xff,0x8f,0x01,0x8e,0x00,0x2b,0x01,0x8f,0xff,0x8f,0x01,0x90,0x00,0x2b,0x01,0x91,0xff,0x8f,0x01,0x92,0x00,0x28,0x01,0x93,0xff,0x8f,0x02,0x3d,0xff,0xd8,0x02,0x3e,0xff,0x66,0x00,0x0b,0x00,0x24,0xff,0xce,0x00,0x62,0xff,0xce,0x00,0x63,0xff,0xce,0x00,0xad, +0xff,0xce,0x00,0xae,0xff,0xce,0x00,0xc7,0xff,0xce,0x00,0xc9,0xff,0xce,0x01,0x03,0xff,0xce,0x01,0x05,0xff,0xce,0x01,0x45,0xff,0xce,0x01,0x85,0xff,0xce,0x00,0x72,0x00,0x24,0xff,0x88,0x00,0x26,0xff,0xce,0x00,0x2a,0xff,0xce,0x00,0x2d,0xff,0xba,0x00,0x32,0xff,0xce,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x6a,0x00,0x46,0xff,0x7e, +0x00,0x47,0xff,0x7e,0x00,0x48,0xff,0x7e,0x00,0x4a,0xff,0x7e,0x00,0x50,0xff,0xb0,0x00,0x51,0xff,0xb0,0x00,0x52,0xff,0x7e,0x00,0x53,0xff,0xb4,0x00,0x54,0xff,0x7e,0x00,0x55,0xff,0xb4,0x00,0x56,0xff,0xbe,0x00,0x58,0xff,0xce,0x00,0x62,0xff,0x88,0x00,0x63,0xff,0x88,0x00,0x64,0xff,0xce,0x00,0x67,0xff,0xce,0x00,0x69,0xff,0x6a, +0x00,0x6a,0xff,0x6a,0x00,0x6b,0xff,0x6a,0x00,0x6c,0xff,0x6a,0x00,0x6d,0xff,0x6a,0x00,0x6e,0xff,0x6a,0x00,0x6f,0xff,0x7e,0x00,0x70,0xff,0x7e,0x00,0x71,0xff,0x7e,0x00,0x72,0xff,0x7e,0x00,0x73,0xff,0x7e,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0x7e,0x00,0x7a,0xff,0x7e,0x00,0x7b,0xff,0x7e, +0x00,0x7c,0xff,0x7e,0x00,0x7d,0xff,0x7e,0x00,0x92,0xff,0xce,0x00,0xa0,0xff,0x6a,0x00,0xad,0xff,0x88,0x00,0xae,0xff,0x88,0x00,0xaf,0xff,0xce,0x00,0xb0,0xff,0xce,0x00,0xb1,0xff,0x7e,0x00,0xc7,0xff,0x88,0x00,0xc9,0xff,0x88,0x00,0xd0,0xff,0xce,0x00,0xd1,0xff,0xce,0x00,0xd2,0xff,0xce,0x00,0xe4,0xff,0xbe,0x00,0xf7,0xff,0xce, +0x00,0xf8,0xff,0x7e,0x00,0xfb,0xff,0xbe,0x00,0xfc,0xff,0xce,0x00,0xfd,0xff,0x7e,0x00,0xfe,0xff,0xce,0x00,0xff,0xff,0x7e,0x01,0x00,0xff,0x7e,0x01,0x03,0xff,0x88,0x01,0x04,0xff,0x6a,0x01,0x05,0xff,0x88,0x01,0x06,0xff,0x6a,0x01,0x08,0xff,0x7e,0x01,0x0b,0xff,0x7e,0x01,0x0d,0xff,0x7e,0x01,0x18,0xff,0xce,0x01,0x19,0xff,0x7e, +0x01,0x1b,0xff,0xb4,0x01,0x1d,0xff,0xb4,0x01,0x1f,0xff,0xbe,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x25,0xff,0xce,0x01,0x27,0xff,0xce,0x01,0x45,0xff,0x88,0x01,0x46,0xff,0x6a,0x01,0x47,0xff,0xce,0x01,0x48,0xff,0x7e,0x01,0x4c,0xff,0x7e,0x01,0x4e,0xff,0x7e,0x01,0x50,0xff,0x7e,0x01,0x51,0xff,0xce,0x01,0x52,0xff,0x7e, +0x01,0x53,0xff,0xce,0x01,0x54,0xff,0x7e,0x01,0x55,0xff,0xce,0x01,0x56,0xff,0x7e,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x63,0xff,0xba,0x01,0x6d,0xff,0xb0,0x01,0x6e,0xff,0xce,0x01,0x6f,0xff,0x7e,0x01,0x70,0xff,0xce,0x01,0x71,0xff,0x7e,0x01,0x73,0xff,0xb4,0x01,0x75,0xff,0xbe,0x01,0x76,0x00,0x27, +0x01,0x79,0xff,0xce,0x01,0x7b,0xff,0xce,0x01,0x7d,0xff,0xce,0x01,0x7f,0xff,0xce,0x01,0x85,0xff,0x88,0x01,0x86,0xff,0x6a,0x01,0x88,0xff,0x6a,0x01,0x89,0xff,0xce,0x01,0x8a,0xff,0x7e,0x02,0x3e,0xff,0xbe,0x00,0x45,0x00,0x24,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0xb0,0x00,0x46,0xff,0xb0,0x00,0x47,0xff,0xb0,0x00,0x48, +0xff,0xb0,0x00,0x4a,0xff,0xb0,0x00,0x52,0xff,0xb0,0x00,0x54,0xff,0xb0,0x00,0x62,0xff,0xb0,0x00,0x63,0xff,0xb0,0x00,0x69,0xff,0xb0,0x00,0x6a,0xff,0xb0,0x00,0x6b,0xff,0xb0,0x00,0x6c,0xff,0xb0,0x00,0x6d,0xff,0xb0,0x00,0x6e,0xff,0xb0,0x00,0x6f,0xff,0xb0,0x00,0x70,0xff,0xb0,0x00,0x71,0xff,0xb0,0x00,0x72,0xff,0xb0,0x00,0x73, +0xff,0xb0,0x00,0x75,0x00,0x1e,0x00,0x76,0x00,0x1e,0x00,0x77,0x00,0x3c,0x00,0x79,0xff,0xb0,0x00,0x7a,0xff,0xb0,0x00,0x7b,0xff,0xb0,0x00,0x7c,0xff,0xb0,0x00,0x7d,0xff,0xb0,0x00,0xa0,0xff,0xb0,0x00,0xad,0xff,0xb0,0x00,0xae,0xff,0xb0,0x00,0xb1,0xff,0xb0,0x00,0xc7,0xff,0xb0,0x00,0xc9,0xff,0xb0,0x00,0xf8,0xff,0xb0,0x00,0xfd, +0xff,0xb0,0x00,0xff,0xff,0xb0,0x01,0x00,0xff,0xb0,0x01,0x03,0xff,0xb0,0x01,0x04,0xff,0xb0,0x01,0x05,0xff,0xb0,0x01,0x06,0xff,0xb0,0x01,0x08,0xff,0xb0,0x01,0x0b,0xff,0xb0,0x01,0x0d,0xff,0xb0,0x01,0x19,0xff,0xb0,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x45,0xff,0xb0,0x01,0x46,0xff,0xb0,0x01,0x48,0xff,0xb0,0x01,0x4c, +0xff,0xb0,0x01,0x4e,0xff,0xb0,0x01,0x50,0xff,0xb0,0x01,0x52,0xff,0xb0,0x01,0x54,0xff,0xb0,0x01,0x56,0xff,0xb0,0x01,0x5c,0x00,0x3c,0x01,0x5e,0x00,0x3c,0x01,0x60,0x00,0x3c,0x01,0x6f,0xff,0xb0,0x01,0x71,0xff,0xb0,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0xb0,0x01,0x86,0xff,0xb0,0x01,0x88,0xff,0xb0,0x01,0x8a,0xff,0xb0,0x00,0x15, +0x00,0x26,0xff,0xe9,0x00,0x2a,0xff,0xe9,0x00,0x2d,0x00,0x60,0x00,0x32,0xff,0xe9,0x00,0x37,0x00,0x21,0x00,0x64,0xff,0xe9,0x00,0xf7,0xff,0xe9,0x00,0xfc,0xff,0xe9,0x00,0xfe,0xff,0xe9,0x01,0x18,0xff,0xe9,0x01,0x20,0x00,0x21,0x01,0x22,0x00,0x21,0x01,0x47,0xff,0xe9,0x01,0x51,0xff,0xe9,0x01,0x53,0xff,0xe9,0x01,0x55,0xff,0xe9, +0x01,0x63,0x00,0x60,0x01,0x6e,0xff,0xe9,0x01,0x70,0xff,0xe9,0x01,0x76,0x00,0x21,0x01,0x89,0xff,0xe9,0x00,0x6a,0x00,0x24,0xff,0x60,0x00,0x26,0xff,0xb0,0x00,0x2a,0xff,0xb0,0x00,0x2d,0xff,0xbe,0x00,0x32,0xff,0xb0,0x00,0x37,0x00,0x27,0x00,0x44,0xff,0x4c,0x00,0x46,0xff,0x4c,0x00,0x47,0xff,0x4c,0x00,0x48,0xff,0x4c,0x00,0x49, +0xff,0xe5,0x00,0x4a,0xff,0x4c,0x00,0x50,0xff,0x73,0x00,0x51,0xff,0x73,0x00,0x52,0xff,0x4c,0x00,0x53,0xff,0x74,0x00,0x54,0xff,0x4c,0x00,0x55,0xff,0x73,0x00,0x56,0xff,0x7b,0x00,0x62,0xff,0x60,0x00,0x63,0xff,0x60,0x00,0x64,0xff,0xb0,0x00,0x67,0xff,0xb0,0x00,0x69,0xff,0x4c,0x00,0x6a,0xff,0x4c,0x00,0x6b,0xff,0x4c,0x00,0x6c, +0xff,0x4c,0x00,0x6d,0xff,0x4c,0x00,0x6e,0xff,0x4c,0x00,0x6f,0xff,0x4c,0x00,0x70,0xff,0x4c,0x00,0x71,0xff,0x4c,0x00,0x72,0xff,0x4c,0x00,0x73,0xff,0x4c,0x00,0x77,0x00,0x32,0x00,0x79,0xff,0x4c,0x00,0x7a,0xff,0x4c,0x00,0x7b,0xff,0x4c,0x00,0x7c,0xff,0x4c,0x00,0x7d,0xff,0x4c,0x00,0x92,0xff,0xb0,0x00,0xa0,0xff,0x4c,0x00,0xad, +0xff,0x60,0x00,0xae,0xff,0x60,0x00,0xaf,0xff,0xb0,0x00,0xb0,0xff,0xb0,0x00,0xb1,0xff,0x4c,0x00,0xc7,0xff,0x60,0x00,0xc9,0xff,0x60,0x00,0xd0,0xff,0xb0,0x00,0xd1,0xff,0xb0,0x00,0xd2,0xff,0xb0,0x00,0xe4,0xff,0x7b,0x00,0xf7,0xff,0xb0,0x00,0xf8,0xff,0x4c,0x00,0xfb,0xff,0x7b,0x00,0xfc,0xff,0xb0,0x00,0xfd,0xff,0x4c,0x00,0xfe, +0xff,0xb0,0x00,0xff,0xff,0x4c,0x01,0x00,0xff,0x4c,0x01,0x03,0xff,0x60,0x01,0x04,0xff,0x4c,0x01,0x05,0xff,0x60,0x01,0x06,0xff,0x4c,0x01,0x08,0xff,0x4c,0x01,0x0b,0xff,0x4c,0x01,0x0d,0xff,0x4c,0x01,0x18,0xff,0xb0,0x01,0x19,0xff,0x4c,0x01,0x1b,0xff,0x73,0x01,0x1d,0xff,0x73,0x01,0x1f,0xff,0x7b,0x01,0x20,0x00,0x27,0x01,0x22, +0x00,0x27,0x01,0x45,0xff,0x60,0x01,0x46,0xff,0x4c,0x01,0x47,0xff,0xb0,0x01,0x48,0xff,0x4c,0x01,0x4c,0xff,0x4c,0x01,0x4e,0xff,0x4c,0x01,0x50,0xff,0x4c,0x01,0x51,0xff,0xb0,0x01,0x52,0xff,0x4c,0x01,0x53,0xff,0xb0,0x01,0x54,0xff,0x4c,0x01,0x55,0xff,0xb0,0x01,0x56,0xff,0x4c,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60, +0x00,0x32,0x01,0x63,0xff,0xbe,0x01,0x6d,0xff,0x73,0x01,0x6e,0xff,0xb0,0x01,0x6f,0xff,0x4c,0x01,0x70,0xff,0xb0,0x01,0x71,0xff,0x4c,0x01,0x73,0xff,0x73,0x01,0x75,0xff,0x7b,0x01,0x76,0x00,0x27,0x01,0x85,0xff,0x60,0x01,0x86,0xff,0x4c,0x01,0x88,0xff,0x4c,0x01,0x89,0xff,0xb0,0x01,0x8a,0xff,0x4c,0x02,0x3e,0xff,0x7b,0x00,0x0f, +0x00,0x2d,0x00,0x52,0x00,0x37,0x00,0x27,0x00,0x5c,0xff,0xcb,0x00,0x77,0x00,0x32,0x00,0xba,0xff,0xcb,0x00,0xeb,0xff,0xcb,0x01,0x20,0x00,0x27,0x01,0x22,0x00,0x27,0x01,0x5c,0x00,0x32,0x01,0x5e,0x00,0x32,0x01,0x60,0x00,0x32,0x01,0x63,0x00,0x52,0x01,0x76,0x00,0x27,0x01,0x83,0xff,0xcb,0x01,0x93,0xff,0xcb,0x00,0x02,0x00,0x3b, +0x00,0x24,0x00,0x27,0x00,0x00,0x00,0x29,0x00,0x2a,0x00,0x04,0x00,0x2d,0x00,0x2f,0x00,0x06,0x00,0x32,0x00,0x3d,0x00,0x09,0x00,0x62,0x00,0x64,0x00,0x15,0x00,0x67,0x00,0x68,0x00,0x18,0x00,0x92,0x00,0x92,0x00,0x1a,0x00,0xad,0x00,0xb0,0x00,0x1b,0x00,0xbb,0x00,0xbb,0x00,0x1f,0x00,0xc7,0x00,0xc7,0x00,0x20,0x00,0xc9,0x00,0xc9, +0x00,0x21,0x00,0xd0,0x00,0xd5,0x00,0x22,0x00,0xe3,0x00,0xe3,0x00,0x28,0x00,0xe5,0x00,0xe5,0x00,0x29,0x00,0xe8,0x00,0xe8,0x00,0x2a,0x00,0xea,0x00,0xea,0x00,0x2b,0x00,0xf7,0x00,0xf7,0x00,0x2c,0x00,0xfa,0x00,0xfa,0x00,0x2d,0x00,0xfc,0x00,0xfc,0x00,0x2e,0x00,0xfe,0x00,0xfe,0x00,0x2f,0x01,0x03,0x01,0x03,0x00,0x30,0x01,0x05, +0x01,0x05,0x00,0x31,0x01,0x0e,0x01,0x0e,0x00,0x32,0x01,0x18,0x01,0x18,0x00,0x33,0x01,0x1a,0x01,0x1a,0x00,0x34,0x01,0x1c,0x01,0x1c,0x00,0x35,0x01,0x1e,0x01,0x1e,0x00,0x36,0x01,0x20,0x01,0x20,0x00,0x37,0x01,0x22,0x01,0x22,0x00,0x38,0x01,0x24,0x01,0x24,0x00,0x39,0x01,0x26,0x01,0x26,0x00,0x3a,0x01,0x28,0x01,0x28,0x00,0x3b, +0x01,0x2a,0x01,0x2a,0x00,0x3c,0x01,0x45,0x01,0x45,0x00,0x3d,0x01,0x47,0x01,0x47,0x00,0x3e,0x01,0x51,0x01,0x51,0x00,0x3f,0x01,0x53,0x01,0x53,0x00,0x40,0x01,0x55,0x01,0x55,0x00,0x41,0x01,0x63,0x01,0x63,0x00,0x42,0x01,0x65,0x01,0x65,0x00,0x43,0x01,0x68,0x01,0x68,0x00,0x44,0x01,0x6e,0x01,0x6e,0x00,0x45,0x01,0x70,0x01,0x70, +0x00,0x46,0x01,0x72,0x01,0x72,0x00,0x47,0x01,0x74,0x01,0x74,0x00,0x48,0x01,0x76,0x01,0x76,0x00,0x49,0x01,0x78,0x01,0x78,0x00,0x4a,0x01,0x7a,0x01,0x7a,0x00,0x4b,0x01,0x7c,0x01,0x7c,0x00,0x4c,0x01,0x7e,0x01,0x7e,0x00,0x4d,0x01,0x80,0x01,0x80,0x00,0x4e,0x01,0x82,0x01,0x82,0x00,0x4f,0x01,0x85,0x01,0x85,0x00,0x50,0x01,0x89, +0x01,0x89,0x00,0x51,0x01,0x8c,0x01,0x8c,0x00,0x52,0x01,0x8e,0x01,0x8e,0x00,0x53,0x01,0x90,0x01,0x90,0x00,0x54,0x01,0x92,0x01,0x92,0x00,0x55,0x02,0x3d,0x02,0x3d,0x00,0x56,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x4c,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x62,0x00,0x68,0x00,0x1a,0x00,0x91,0x00,0x92, +0x00,0x21,0x00,0xad,0x00,0xb0,0x00,0x23,0x00,0xbb,0x00,0xbb,0x00,0x27,0x00,0xc7,0x00,0xd5,0x00,0x28,0x00,0xe1,0x00,0xe1,0x00,0x37,0x00,0xe3,0x00,0xe3,0x00,0x38,0x00,0xe5,0x00,0xe5,0x00,0x39,0x00,0xe8,0x00,0xe8,0x00,0x3a,0x00,0xea,0x00,0xea,0x00,0x3b,0x00,0xec,0x00,0xec,0x00,0x3c,0x00,0xf7,0x00,0xf7,0x00,0x3d,0x00,0xf9, +0x00,0xfa,0x00,0x3e,0x00,0xfc,0x00,0xfc,0x00,0x40,0x00,0xfe,0x00,0xfe,0x00,0x41,0x01,0x03,0x01,0x03,0x00,0x42,0x01,0x05,0x01,0x05,0x00,0x43,0x01,0x07,0x01,0x07,0x00,0x44,0x01,0x09,0x01,0x0a,0x00,0x45,0x01,0x0c,0x01,0x0c,0x00,0x47,0x01,0x0e,0x01,0x0e,0x00,0x48,0x01,0x10,0x01,0x10,0x00,0x49,0x01,0x12,0x01,0x12,0x00,0x4a, +0x01,0x14,0x01,0x14,0x00,0x4b,0x01,0x16,0x01,0x16,0x00,0x4c,0x01,0x18,0x01,0x18,0x00,0x4d,0x01,0x1a,0x01,0x1a,0x00,0x4e,0x01,0x1c,0x01,0x1c,0x00,0x4f,0x01,0x1e,0x01,0x1e,0x00,0x50,0x01,0x20,0x01,0x20,0x00,0x51,0x01,0x22,0x01,0x22,0x00,0x52,0x01,0x24,0x01,0x24,0x00,0x53,0x01,0x26,0x01,0x26,0x00,0x54,0x01,0x28,0x01,0x28, +0x00,0x55,0x01,0x2a,0x01,0x2a,0x00,0x56,0x01,0x39,0x01,0x39,0x00,0x57,0x01,0x45,0x01,0x45,0x00,0x58,0x01,0x47,0x01,0x47,0x00,0x59,0x01,0x49,0x01,0x49,0x00,0x5a,0x01,0x4b,0x01,0x4b,0x00,0x5b,0x01,0x4d,0x01,0x4d,0x00,0x5c,0x01,0x4f,0x01,0x4f,0x00,0x5d,0x01,0x51,0x01,0x51,0x00,0x5e,0x01,0x53,0x01,0x53,0x00,0x5f,0x01,0x55, +0x01,0x55,0x00,0x60,0x01,0x57,0x01,0x57,0x00,0x61,0x01,0x59,0x01,0x59,0x00,0x62,0x01,0x5b,0x01,0x5b,0x00,0x63,0x01,0x5d,0x01,0x5d,0x00,0x64,0x01,0x5f,0x01,0x5f,0x00,0x65,0x01,0x61,0x01,0x61,0x00,0x66,0x01,0x63,0x01,0x63,0x00,0x67,0x01,0x65,0x01,0x65,0x00,0x68,0x01,0x68,0x01,0x68,0x00,0x69,0x01,0x6a,0x01,0x6a,0x00,0x6a, +0x01,0x6c,0x01,0x6c,0x00,0x6b,0x01,0x6e,0x01,0x6e,0x00,0x6c,0x01,0x70,0x01,0x70,0x00,0x6d,0x01,0x72,0x01,0x72,0x00,0x6e,0x01,0x74,0x01,0x74,0x00,0x6f,0x01,0x76,0x01,0x76,0x00,0x70,0x01,0x78,0x01,0x78,0x00,0x71,0x01,0x7a,0x01,0x7a,0x00,0x72,0x01,0x7c,0x01,0x7c,0x00,0x73,0x01,0x7e,0x01,0x7e,0x00,0x74,0x01,0x80,0x01,0x80, +0x00,0x75,0x01,0x82,0x01,0x82,0x00,0x76,0x01,0x85,0x01,0x85,0x00,0x77,0x01,0x87,0x01,0x87,0x00,0x78,0x01,0x89,0x01,0x89,0x00,0x79,0x01,0x8c,0x01,0x8c,0x00,0x7a,0x01,0x8e,0x01,0x8e,0x00,0x7b,0x01,0x90,0x01,0x90,0x00,0x7c,0x01,0x92,0x01,0x92,0x00,0x7d,0x0b,0x21,0x0b,0x21,0x00,0x7e,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24, +0x00,0x48,0x00,0x02,0x00,0x02,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x00,0x01,0x00,0x0a,0x00,0x05,0x00,0x24,0x00,0x48,0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x26,0x00,0x02,0x00,0x0f, +0x00,0x8c,0x00,0x8c,0x00,0x6e,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x00,0x8c,0x01,0x96,0x01,0x96,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x6e,0x00,0x02,0x00,0x0b,0x00,0x0b,0x00,0x0c,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x02,0x00,0x3e,0x00,0x3e,0x00,0x03,0x00,0x40,0x00,0x40,0x00,0x04,0x00,0x5e,0x00,0x5e,0x00,0x05, +0x00,0x60,0x00,0x60,0x00,0x06,0x00,0xa2,0x00,0xa2,0x00,0x07,0x00,0xa4,0x00,0xa4,0x00,0x08,0x00,0xaa,0x00,0xab,0x00,0x09,0x00,0xb2,0x00,0xb3,0x00,0x0b,0x00,0xbe,0x00,0xbf,0x00,0x0d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x02,0x00,0x02,0x0f,0x2c,0x0f,0x2d,0x00,0x00, +0x0f,0x30,0x0f,0x31,0x00,0x02,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4b,0x00,0x01,0x00,0x02,0x0a,0x07,0x0a,0x08,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x02, +0x00,0x14,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x0c,0x09,0x0c,0x00,0x03,0x09,0x2a,0x09,0x2b,0x00,0x04,0x09,0x4a,0x09,0x4b,0x00,0x06,0x09,0x8a,0x09,0x8b,0x00,0x08,0x0a,0x05,0x0a,0x08,0x00,0x0a,0x0a,0x0b,0x0a,0x0e,0x00,0x0e,0x0e,0x20,0x0e,0x21,0x00,0x12,0x0e,0x4b, +0x0e,0x4c,0x00,0x14,0x0e,0x4f,0x0e,0x50,0x00,0x16,0x0f,0x2c,0x0f,0x2d,0x00,0x18,0x0f,0x30,0x0f,0x31,0x00,0x1a,0x0f,0x34,0x0f,0x35,0x00,0x1c,0x13,0x1c,0x13,0x1c,0x00,0x1e,0x13,0x1f,0x13,0x20,0x00,0x1f,0x13,0x23,0x13,0x23,0x00,0x21,0x14,0x59,0x14,0x59,0x00,0x22,0x14,0x7e,0x14,0x7e,0x00,0x23,0x00,0x01,0x00,0x01,0x09,0x73, +0x00,0x01,0x03,0x7e,0x00,0x05,0x00,0x00,0x00,0x2e,0x00,0x66,0x00,0xd4,0x01,0x48,0x02,0x04,0x02,0x84,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x02,0x92,0x02,0x92,0x02,0x9a,0x02,0x92,0x02,0xc6,0x03,0x76,0x02,0x84,0x02,0x84,0x01,0x48,0x01,0x48,0x00,0x66,0x01,0x48,0x02,0x84,0x01,0x48,0x01,0x48,0x02,0xc6,0x02,0xc6,0x02,0xc6, +0x02,0xc6,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x66,0x01,0x48,0x02,0x84,0x02,0x84,0x01,0x48,0x02,0x84,0x01,0x48,0x02,0xc6,0x02,0x84,0x01,0x48,0x00,0x66,0x01,0x48,0x01,0x48,0x01,0x48,0x01,0x48,0x00,0x12,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec, +0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec,0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec, +0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec,0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x13,0x0b,0x6b,0xff,0xec,0xff,0xec,0x0b,0x71,0xff,0xec,0xff,0xec,0x0b,0x74,0xff,0xec,0xff,0xec,0x0b,0x7a,0xff,0xec,0xff,0xec,0x0b,0x7f,0xff,0xec,0xff,0xec,0x0b,0x81,0xff,0xec,0xff,0xec,0x0b,0x8a,0xff,0xec,0xff,0xec, +0x0b,0x8b,0xff,0xec,0xff,0xec,0x0b,0x8d,0xff,0xec,0xff,0xec,0x0b,0x8f,0xff,0xec,0xff,0xec,0x0b,0x92,0xff,0xec,0xff,0xec,0x0b,0x97,0xff,0xec,0xff,0xec,0x0b,0x98,0xff,0xec,0xff,0xec,0x0b,0x99,0xff,0xec,0xff,0xec,0x0b,0x9a,0xff,0xec,0xff,0xec,0x0b,0xa0,0xff,0xec,0xff,0xec,0x0b,0xaf,0xff,0xec,0xff,0xec,0x0b,0xb1,0xff,0xec, +0xff,0xec,0x0b,0xbb,0xff,0xec,0xff,0xec,0x00,0x1f,0x0b,0x69,0xff,0xce,0xff,0xce,0x0b,0x6a,0xff,0xce,0xff,0xce,0x0b,0x6c,0xff,0xce,0xff,0xce,0x0b,0x6e,0x00,0x28,0x00,0x28,0x0b,0x6f,0xff,0xce,0xff,0xce,0x0b,0x70,0xff,0xd8,0xff,0xd8,0x0b,0x73,0xff,0xd8,0xff,0xd8,0x0b,0x75,0xff,0xce,0xff,0xce,0x0b,0x76,0xff,0xce,0xff,0xce, +0x0b,0x78,0xff,0xce,0xff,0xce,0x0b,0x79,0xff,0xd8,0xff,0xd8,0x0b,0x7b,0xff,0xce,0xff,0xce,0x0b,0x7c,0xff,0xd8,0xff,0xd8,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xce,0xff,0xce,0x0b,0x90,0xff,0xce,0xff,0xce,0x0b,0x91,0xff,0xd8,0xff,0xd8,0x0b,0x93,0xff,0xce,0xff,0xce,0x0b,0x94,0xff,0xce,0xff,0xce,0x0b,0x95,0xff,0xce, +0xff,0xce,0x0b,0x9f,0xff,0xce,0xff,0xce,0x0b,0xa1,0xff,0xce,0xff,0xce,0x0b,0xa4,0xff,0xd8,0xff,0xd8,0x0b,0xa6,0xff,0xce,0xff,0xce,0x0b,0xa7,0xff,0xd8,0xff,0xd8,0x0b,0xa9,0xff,0xce,0xff,0xce,0x0b,0xab,0xff,0xd8,0xff,0xd8,0x0b,0xac,0xff,0xce,0xff,0xce,0x0b,0xad,0xff,0xd8,0xff,0xd8,0x0b,0xb0,0xff,0xce,0xff,0xce,0x0b,0xb2, +0xff,0xce,0xff,0xce,0x00,0x15,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6e,0x00,0x14,0x00,0x14,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7d,0x00,0x14,0x00,0x14,0x0b,0x82,0xff,0xec, +0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2, +0xff,0xec,0xff,0xec,0x00,0x02,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x00,0x01,0x0b,0x6e,0x00,0x14,0x00,0x14,0x00,0x07,0x0b,0x79,0xff,0xe2,0xff,0xe2,0x0b,0x7c,0xff,0xe2,0xff,0xe2,0x0b,0x91,0xff,0xe2,0xff,0xe2,0x0b,0xa4,0xff,0xe2,0xff,0xe2,0x0b,0xa7,0xff,0xe2,0xff,0xe2,0x0b,0xab,0xff,0xe2,0xff,0xe2, +0x0b,0xad,0xff,0xe2,0xff,0xe2,0x00,0x1d,0x0b,0x69,0xff,0xec,0xff,0xec,0x0b,0x6a,0xff,0xe2,0xff,0xe2,0x0b,0x6c,0xff,0xec,0xff,0xec,0x0b,0x6f,0xff,0xec,0xff,0xec,0x0b,0x70,0xff,0xec,0xff,0xec,0x0b,0x73,0xff,0xec,0xff,0xec,0x0b,0x75,0xff,0xec,0xff,0xec,0x0b,0x76,0xff,0xec,0xff,0xec,0x0b,0x78,0xff,0xec,0xff,0xec,0x0b,0x79, +0xff,0xec,0xff,0xec,0x0b,0x7b,0xff,0xec,0xff,0xec,0x0b,0x7c,0xff,0xec,0xff,0xec,0x0b,0x82,0xff,0xec,0xff,0xec,0x0b,0x90,0xff,0xec,0xff,0xec,0x0b,0x91,0xff,0xec,0xff,0xec,0x0b,0x93,0xff,0xec,0xff,0xec,0x0b,0x94,0xff,0xec,0xff,0xec,0x0b,0x95,0xff,0xec,0xff,0xec,0x0b,0x9f,0xff,0xe2,0xff,0xe2,0x0b,0xa1,0xff,0xec,0xff,0xec, +0x0b,0xa4,0xff,0xec,0xff,0xec,0x0b,0xa6,0xff,0xec,0xff,0xec,0x0b,0xa7,0xff,0xec,0xff,0xec,0x0b,0xa9,0xff,0xec,0xff,0xec,0x0b,0xab,0xff,0xec,0xff,0xec,0x0b,0xac,0xff,0xec,0xff,0xec,0x0b,0xad,0xff,0xec,0xff,0xec,0x0b,0xb0,0xff,0xec,0xff,0xec,0x0b,0xb2,0xff,0xec,0xff,0xec,0x00,0x01,0x0b,0x81,0xff,0xe2,0xff,0xe2,0x00,0x02, +0x00,0x16,0x0b,0x68,0x0b,0x68,0x00,0x00,0x0b,0x6a,0x0b,0x6b,0x00,0x01,0x0b,0x6e,0x0b,0x6e,0x00,0x03,0x0b,0x70,0x0b,0x71,0x00,0x04,0x0b,0x73,0x0b,0x74,0x00,0x06,0x0b,0x79,0x0b,0x7a,0x00,0x08,0x0b,0x7d,0x0b,0x7f,0x00,0x0a,0x0b,0x81,0x0b,0x82,0x00,0x0d,0x0b,0x84,0x0b,0x85,0x00,0x0f,0x0b,0x8a,0x0b,0x8b,0x00,0x11,0x0b,0x8e, +0x0b,0x8f,0x00,0x13,0x0b,0x91,0x0b,0x92,0x00,0x15,0x0b,0x94,0x0b,0x94,0x00,0x17,0x0b,0x97,0x0b,0x9d,0x00,0x18,0x0b,0x9f,0x0b,0xa0,0x00,0x1f,0x0b,0xa4,0x0b,0xa4,0x00,0x21,0x0b,0xa7,0x0b,0xa8,0x00,0x22,0x0b,0xab,0x0b,0xab,0x00,0x24,0x0b,0xb0,0x0b,0xb1,0x00,0x25,0x0b,0xb5,0x0b,0xb5,0x00,0x27,0x0b,0xb7,0x0b,0xb7,0x00,0x28, +0x0b,0xba,0x0b,0xbe,0x00,0x29,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x30,0x00,0x5e,0x00,0x01, +0x00,0x00,0x00,0x4e,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x1c,0x00,0x50,0x00,0x01,0x00,0x00,0x00,0x4e,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9, +0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x5a,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x4e,0x00,0x48,0x00,0x01,0x00,0x00,0x00,0x4f, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x3a,0x00,0x3a,0x00,0x34,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x24,0x00,0x24,0x00,0x24,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x05,0x0b,0x5f, +0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x02,0x02,0x36,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x02,0x02,0x22,0x02,0x38,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x03,0x02,0x0e,0x02,0x2a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xf2,0x00,0x02,0x01,0xf8,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xde,0x00,0x03,0x01,0xe4,0x02,0x00,0x02,0x22,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x01,0x02,0x12,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x03,0x01,0xd8,0x01,0xbc,0x01,0xc2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x04,0x01,0xc2,0x01,0xc2,0x01,0xa6,0x01,0xac,0x00,0x01, +0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x05,0x01,0xaa,0x01,0xaa,0x01,0xaa,0x01,0x8e,0x01,0x94,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x6e,0x00,0x03,0x01,0x90,0x01,0x74,0x01,0x8a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x04,0x01,0x7a, +0x01,0x5e,0x01,0x7a,0x01,0x74,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x04,0x01,0x62,0x01,0x62,0x01,0x46,0x01,0x5c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x28,0x00,0x05,0x01,0x4a,0x01,0x4a,0x01,0x2e,0x01,0x4a,0x01,0x44,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03, +0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x05,0x01,0x30,0x01,0x30,0x01,0x30,0x01,0x14,0x01,0x2a,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf4,0x00,0x06,0x01,0x16,0x01,0x16,0x01,0x16,0x00,0xfa,0x01,0x16,0x01,0x10,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xd8,0x00,0x03,0x00,0xfa, +0x00,0xde,0x01,0x1c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc2,0x00,0x04,0x00,0xe4,0x00,0xc8,0x00,0xe4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x04,0x00,0xcc,0x00,0xcc,0x00,0xb0,0x00,0xee,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01, +0x00,0x92,0x00,0x05,0x00,0xb4,0x00,0xb4,0x00,0x98,0x00,0xb4,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x05,0x00,0x9a,0x00,0x9a,0x00,0x9a,0x00,0x7e,0x00,0xbc,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x06,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x64, +0x00,0x80,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x02,0x00,0x64,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x50,0x00,0x50,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x3a, +0x00,0x3a,0x00,0x3a,0x00,0x62,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x3c,0x00,0x02,0x03,0x42,0x03,0x82,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x03,0x03,0xa8,0x03,0x2e,0x03,0x6e, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x03,0x12,0x00,0x04,0x03,0x92,0x03,0x92,0x03,0x18,0x03,0x58,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x03,0x03,0x00,0x03,0x9c,0x03,0xa2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x04,0x03,0x64, +0x02,0xea,0x03,0x86,0x03,0x8c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xcc,0x00,0x05,0x03,0x4c,0x03,0x4c,0x02,0xd2,0x03,0x6e,0x03,0x74,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x02,0x02,0xb8,0x03,0x6a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01, +0x02,0x9e,0x00,0x03,0x03,0x1e,0x02,0xa4,0x03,0x56,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x88,0x00,0x04,0x03,0x08,0x03,0x08,0x02,0x8e,0x03,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x70,0x00,0x03,0x02,0x76,0x03,0x12,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03, +0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x04,0x02,0xda,0x02,0x60,0x02,0xfc,0x03,0x18,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x05,0x02,0xc2,0x02,0xc2,0x02,0x48,0x02,0xe4,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x03,0x02,0x2e,0x02,0xca,0x02,0xec, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x04,0x02,0x92,0x02,0x18,0x02,0xb4,0x02,0xd6,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xfa,0x00,0x05,0x02,0x7a,0x02,0x7a,0x02,0x00,0x02,0x9c,0x02,0xbe,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xe0, +0x00,0x03,0x01,0xe6,0x02,0x60,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x04,0x02,0x4a,0x01,0xd0,0x02,0x4a,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x05,0x02,0x32,0x02,0x32,0x01,0xb8,0x02,0x32,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x51, +0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x04,0x01,0x9e,0x02,0x18,0x02,0x3a,0x02,0x40,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x05,0x02,0x00,0x01,0x86,0x02,0x00,0x02,0x22,0x02,0x28,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x66,0x00,0x06,0x01,0xe6,0x01,0xe6, +0x01,0x6c,0x01,0xe6,0x02,0x08,0x02,0x0e,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x03,0x01,0x50,0x01,0xca,0x02,0x02,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x04,0x01,0xb4,0x01,0x3a,0x01,0xb4,0x01,0xec,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00, +0x00,0x01,0x01,0x1c,0x00,0x05,0x01,0x9c,0x01,0x9c,0x01,0x22,0x01,0x9c,0x01,0xd4,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x01,0x02,0x00,0x05,0x01,0x08,0x01,0x82,0x01,0xa4,0x01,0xcc,0x01,0xd2,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x06,0x01,0x68,0x00,0xee,0x01,0x68, +0x01,0x8a,0x01,0xb2,0x01,0xb8,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xcc,0x00,0x07,0x01,0x4c,0x01,0x4c,0x00,0xd2,0x01,0x4c,0x01,0x6e,0x01,0x96,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xae,0x00,0x04,0x00,0xb4,0x01,0x2e,0x01,0x50,0x01,0x6c,0x00,0x01,0x00,0x00, +0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x05,0x01,0x16,0x00,0x9c,0x01,0x16,0x01,0x38,0x01,0x54,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x06,0x00,0xfc,0x00,0xfc,0x00,0x82,0x00,0xfc,0x01,0x1e,0x01,0x3a,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x60, +0x00,0x04,0x00,0x66,0x00,0xe0,0x01,0x02,0x01,0x24,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x05,0x00,0xc8,0x00,0x4e,0x00,0xc8,0x00,0xea,0x01,0x0c,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x06,0x00,0xae,0x00,0xae,0x00,0x34,0x00,0xae,0x00,0xd0,0x00,0xf2, +0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x03,0x00,0x01,0x00,0xe8,0x00,0x01,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07, +0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30, +0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68, +0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x61,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1a,0x00,0x01,0x00,0x42, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00, +0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0xf8,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x02,0x01,0x0e,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x03,0x00,0xfa,0x00,0xfa, +0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x01,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xa2,0x00,0x02,0x00,0xd2,0x00,0xf4,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x03,0x00,0xbe,0x00,0xbe,0x00,0xe0,0x00,0x01, +0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x01,0x00,0xd0,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x02,0x00,0x96,0x00,0xbe,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x03,0x00,0x82,0x00,0x82,0x00,0xaa,0x00,0x01,0x00,0x00,0x00,0x53, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x9a,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2a,0x00,0x02,0x00,0x5a,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x46,0x00,0x46,0x00,0x74,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x01,0x00,0x02, +0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd, +0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x01,0x00,0x40,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x2c,0x00,0x01,0x00,0x32,0x00,0x02, +0x00,0x74,0x00,0x7a,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x5e,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88, +0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x03, +0x00,0x02,0x00,0xee,0x00,0xee,0x00,0x01,0x01,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x01,0x08,0x00,0xda,0x00,0xda,0x00,0x01,0x01,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xf2,0x00,0xf2,0x00,0xc4,0x00,0xc4,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55, +0x00,0x03,0x00,0x02,0x00,0xac,0x00,0xda,0x00,0x01,0x00,0xd4,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0xc6,0x00,0x98,0x00,0xc6,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0xb0,0x00,0xb0,0x00,0x82,0x00,0xb0,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x6a,0x00,0xc6,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x03,0x00,0x84,0x00,0x56,0x00,0xb2,0x00,0x01,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x04,0x00,0x6e,0x00,0x6e,0x00,0x40,0x00,0x9c,0x00,0x01,0x00,0x68,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x8a,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x7c,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95, +0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1, +0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x62,0x00,0x01,0x00,0x01,0x11,0x86,0x00,0x01,0x00,0x01,0x0b,0x07,0x00,0x03,0x00,0x03,0x00,0x64,0x00,0x6a,0x00,0x6a,0x00,0x01,0x00,0x92,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x04,0x00,0x4e,0x00,0x54,0x00,0x82,0x00,0x54,0x00,0x01,0x00,0x7c, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x05,0x00,0x36,0x00,0x3c,0x00,0x6a,0x00,0x6a,0x00,0x3c,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x03,0x00,0x06,0x00,0x1c,0x00,0x22,0x00,0x50,0x00,0x50,0x00,0x50,0x00,0x22,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01, +0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61, +0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x03,0x00,0x02,0x06,0x38,0x06,0x3e,0x00,0x01,0x06,0x66,0x00,0x01,0x06,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x22,0x06,0xca,0x06,0x28, +0x00,0x01,0x06,0x50,0x00,0x01,0x06,0x90,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x06,0x0a,0x06,0x10,0x00,0x01,0x06,0x38,0x00,0x02,0x06,0xba,0x06,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0xa2,0x05,0xf2,0x05,0xf8,0x00,0x01,0x06,0x20,0x00,0x01,0x06,0x60,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x06,0x8a,0x06,0x8a,0x05,0xda,0x05,0xe0,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x48,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x06,0x70,0x05,0xc0,0x05,0xc6,0x00,0x01,0x05,0xee,0x00,0x02,0x06,0x70,0x06,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x56,0x06,0x56,0x05,0xa6,0x05,0xac,0x00,0x01, +0x05,0xd4,0x00,0x02,0x06,0x56,0x06,0x14,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x8a,0x06,0x32,0x05,0x90,0x00,0x01,0x05,0xb8,0x00,0x02,0x06,0x3a,0x05,0xf8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x06,0x20,0x05,0x70,0x06,0x18,0x05,0x76,0x00,0x01,0x05,0x9e,0x00,0x01,0x05,0xde,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x05,0x06,0x06,0x06,0x06,0x05,0x56,0x05,0xfe,0x05,0x5c,0x00,0x01,0x05,0x84,0x00,0x01,0x05,0xc4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0xea,0x05,0x3a,0x05,0xe2,0x05,0x40,0x00,0x01,0x05,0x68,0x00,0x02,0x05,0xea,0x05,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x05,0xce, +0x05,0xce,0x05,0x1e,0x05,0xc6,0x05,0x24,0x00,0x01,0x05,0x4c,0x00,0x02,0x05,0xce,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x05,0x00,0x05,0x06,0x00,0x01,0x05,0x2e,0x00,0x02,0x05,0xd2,0x05,0xd8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0xe8,0x05,0x90,0x04,0xee,0x00,0x01,0x05,0x16,0x00,0x02, +0x05,0xba,0x05,0xc0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x04,0xce,0x04,0xd4,0x00,0x01,0x04,0xfc,0x00,0x03,0x05,0x7e,0x05,0xa0,0x05,0xa6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x64,0x04,0xb4,0x04,0xba,0x00,0x01,0x04,0xe2,0x00,0x02,0x05,0x86,0x05,0x8c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x05,0x4a,0x05,0x4a,0x04,0x9a,0x04,0xa0,0x00,0x01,0x04,0xc8,0x00,0x02,0x05,0x6c,0x05,0x72,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x05,0x2e,0x04,0x7e,0x04,0x84,0x00,0x01,0x04,0xac,0x00,0x03,0x05,0x2e,0x05,0x50,0x05,0x56,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x05,0x12,0x05,0x12,0x04,0x62, +0x04,0x68,0x00,0x01,0x04,0x90,0x00,0x03,0x05,0x12,0x05,0x34,0x05,0x3a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x04,0x44,0x04,0xec,0x04,0x4a,0x00,0x01,0x04,0x72,0x00,0x03,0x04,0xf4,0x05,0x16,0x05,0x1c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0xd8,0x04,0x28,0x04,0xd0,0x04,0x2e,0x00,0x01,0x04,0x56, +0x00,0x02,0x04,0xfa,0x05,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0xbc,0x04,0xbc,0x04,0x0c,0x04,0xb4,0x04,0x12,0x00,0x01,0x04,0x3a,0x00,0x02,0x04,0xde,0x04,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x04,0x9e,0x03,0xee,0x04,0x96,0x03,0xf4,0x00,0x01,0x04,0x1c,0x00,0x03,0x04,0x9e,0x04,0xc0, +0x04,0xc6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x04,0x80,0x04,0x80,0x03,0xd0,0x04,0x78,0x03,0xd6,0x00,0x01,0x03,0xfe,0x00,0x03,0x04,0x80,0x04,0xa2,0x04,0xa8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0xb0,0x03,0xb6,0x00,0x01,0x03,0xde,0x00,0x02,0x04,0x82,0x04,0x98,0x00,0x01,0x00,0x00,0x00,0x57, +0x00,0x03,0x00,0x02,0x03,0x98,0x03,0x9e,0x00,0x01,0x03,0xc6,0x00,0x02,0x04,0x6a,0x04,0x86,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x80,0x04,0x28,0x03,0x86,0x00,0x01,0x03,0xae,0x00,0x02,0x04,0x52,0x04,0x68,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x66,0x04,0x0e,0x03,0x6c,0x00,0x01,0x03,0x94, +0x00,0x02,0x04,0x38,0x04,0x54,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x03,0x4c,0x03,0x52,0x00,0x01,0x03,0x7a,0x00,0x03,0x03,0xfc,0x04,0x1e,0x04,0x34,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xe2,0x03,0x32,0x03,0x38,0x00,0x01,0x03,0x60,0x00,0x02,0x04,0x04,0x04,0x1a,0x00,0x01,0x00,0x00,0x00,0x57, +0x00,0x03,0x00,0x04,0x03,0xc8,0x03,0xc8,0x03,0x18,0x03,0x1e,0x00,0x01,0x03,0x46,0x00,0x02,0x03,0xea,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0xac,0x02,0xfc,0x03,0x02,0x00,0x01,0x03,0x2a,0x00,0x03,0x03,0xac,0x03,0xce,0x03,0xe4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x90,0x03,0x90, +0x02,0xe0,0x02,0xe6,0x00,0x01,0x03,0x0e,0x00,0x03,0x03,0x90,0x03,0xb2,0x03,0xc8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0xc2,0x02,0xc8,0x00,0x01,0x02,0xf0,0x00,0x03,0x03,0x72,0x03,0x94,0x03,0xb0,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x58,0x02,0xa8,0x02,0xae,0x00,0x01,0x02,0xd6,0x00,0x02, +0x03,0x7a,0x03,0x96,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x3e,0x03,0x3e,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0xbc,0x00,0x02,0x03,0x60,0x03,0x7c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x03,0x22,0x02,0x72,0x02,0x78,0x00,0x01,0x02,0xa0,0x00,0x03,0x03,0x22,0x03,0x44,0x03,0x60,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x04,0x03,0x06,0x03,0x06,0x02,0x56,0x02,0x5c,0x00,0x01,0x02,0x84,0x00,0x03,0x03,0x06,0x03,0x28,0x03,0x44,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x02,0x38,0x02,0xe0,0x02,0x3e,0x00,0x01,0x02,0x66,0x00,0x03,0x02,0xe8,0x03,0x0a,0x03,0x20,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04, +0x02,0xcc,0x02,0x1c,0x02,0xc4,0x02,0x22,0x00,0x01,0x02,0x4a,0x00,0x02,0x02,0xee,0x03,0x04,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0xb0,0x02,0x00,0x02,0xa8,0x02,0x06,0x00,0x01,0x02,0x2e,0x00,0x02,0x02,0xd2,0x02,0xe8,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x94,0x01,0xe4,0x02,0x8c,0x01,0xea, +0x00,0x01,0x02,0x12,0x00,0x03,0x02,0x94,0x02,0xb6,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x02,0x76,0x02,0x76,0x00,0x01,0x01,0xf4,0x00,0x03,0x02,0x76,0x02,0x98,0x02,0xae,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xac,0x02,0x54,0x01,0xb2,0x00,0x01,0x01,0xda,0x00,0x03,0x02,0x5c,0x02,0x7e, +0x02,0x94,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x40,0x01,0x90,0x02,0x38,0x01,0x96,0x00,0x01,0x01,0xbe,0x00,0x02,0x02,0x62,0x02,0x78,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x02,0x24,0x02,0x24,0x01,0x74,0x02,0x1c,0x01,0x7a,0x00,0x01,0x01,0xa2,0x00,0x02,0x02,0x46,0x02,0x5c,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x04,0x02,0x06,0x01,0x56,0x01,0xfe,0x01,0x5c,0x00,0x01,0x01,0x84,0x00,0x03,0x02,0x06,0x02,0x28,0x02,0x3e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x38,0x01,0x3e,0x00,0x01,0x01,0x66,0x00,0x01,0x02,0x2c,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x22,0x01,0xca,0x01,0x28, +0x00,0x01,0x01,0x50,0x00,0x01,0x02,0x16,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x02,0x01,0x0a,0x01,0x10,0x00,0x01,0x01,0x38,0x00,0x02,0x01,0xba,0x01,0xfe,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0xa2,0x00,0xf2,0x00,0xf8,0x00,0x01,0x01,0x20,0x00,0x01,0x01,0xe6,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03, +0x00,0x04,0x01,0x8a,0x01,0x8a,0x00,0xda,0x00,0xe0,0x00,0x01,0x01,0x08,0x00,0x01,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x01,0x70,0x00,0xc0,0x00,0xc6,0x00,0x01,0x00,0xee,0x00,0x02,0x01,0x70,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x56,0x01,0x56,0x00,0xa6,0x00,0xac,0x00,0x01, +0x00,0xd4,0x00,0x02,0x01,0x56,0x01,0x9a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x03,0x00,0x8a,0x01,0x32,0x00,0x90,0x00,0x01,0x00,0xb8,0x00,0x02,0x01,0x3a,0x01,0x7e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x01,0x20,0x00,0x70,0x01,0x18,0x00,0x76,0x00,0x01,0x00,0x9e,0x00,0x01,0x01,0x64,0x00,0x01,0x00,0x00, +0x00,0x57,0x00,0x03,0x00,0x05,0x01,0x06,0x01,0x06,0x00,0x56,0x00,0xfe,0x00,0x5c,0x00,0x01,0x00,0x84,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x04,0x00,0xea,0x00,0x3a,0x00,0xe2,0x00,0x40,0x00,0x01,0x00,0x68,0x00,0x02,0x00,0xea,0x01,0x2e,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x03,0x00,0x05,0x00,0xce, +0x00,0xce,0x00,0x1e,0x00,0xc6,0x00,0x24,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0xce,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x57,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, +0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08,0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c, +0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a, +0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b, +0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a, +0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x58,0x0b,0x5b,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x04,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x02,0x0b,0x54,0x0b,0x56, +0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x00,0x00,0x5b,0x00,0x03,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x01, +0x00,0x00,0x00,0x5b,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, +0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x88,0x00,0x01,0x00,0x01,0x0b,0x89,0x00,0x03,0x00,0x02,0x00,0x3e,0x00,0x6c,0x00,0x01,0x00,0x72,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x03,0x00,0x66,0x00,0x7c,0x00,0x82,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x94,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01, +0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, +0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x03,0x00,0x02,0x00,0x78,0x00,0xa6,0x00,0x01, +0x00,0xac,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x64,0x00,0xa0,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x92,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x84,0x00,0x01,0x00,0x70,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x76,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x68,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5d,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x58,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x59,0x00,0x01,0x00,0x01,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5b,0x00,0x01,0x00,0x01, +0x0b,0x5d,0x00,0x01,0x00,0x01,0x0b,0xb9,0x00,0x03,0x00,0x02,0x00,0x50,0x00,0x7e,0x00,0x01,0x00,0x84,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x3c,0x00,0x78,0x00,0x01,0x00,0x70,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x28,0x00,0x6a,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x5e,0x00,0x03,0x00,0x02,0x00,0x5c,0x00,0x72,0x00,0x01,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05, +0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1, +0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d, +0x00,0x10,0x00,0x03,0x00,0x01,0x00,0x5c,0x00,0x01,0x00,0x8a,0x00,0x01,0x00,0x90,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x48,0x00,0x01,0x00,0x76,0x00,0x02,0x00,0x48,0x00,0x7c,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x60,0x00,0x03,0x00,0x32,0x00,0x32,0x00,0x66,0x00,0x01, +0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x48,0x00,0x04,0x00,0x1a,0x00,0x1a,0x00,0x1a,0x00,0x4e,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11, +0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x01,0x0b,0x75,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14, +0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01, +0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02, +0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x01,0x14,0x6b,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01, +0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01, +0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x1e,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16, +0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x1c,0x00,0x02,0x00,0x1c,0x00,0x1c,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00, +0x00,0x75,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16, +0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, +0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x16,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x16,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00, +0x00,0x7a,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x18, +0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x1e,0x00,0x1e,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02,0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x02,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x02, +0x00,0x18,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01, +0x0a,0x44,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x03,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x18,0x00,0x01,0x00,0x00, +0x00,0x82,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x44,0x00,0x03,0x00,0x04,0x00,0x18, +0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x47,0x00,0x03,0x00,0x04,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x22,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x85,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x13,0x45,0x00,0x01,0x00,0x0a,0x00,0x03,0x00,0x64,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x03,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0xc8,0x00,0x01,0x00,0x01,0x09,0x73,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x5d, +0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x89,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88, +0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0xd4,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfc,0xb5,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x0c,0x00,0x07,0xfc,0xc8,0xfc,0xc7,0xfd,0xa8,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00, +0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0xe6,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0xcd,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf6,0x8e,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac, +0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfb,0x0b,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01, +0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfe,0x59,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xff,0x82,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05, +0xfd,0x69,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfd,0x2a,0x03,0x4e,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01, +0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08, +0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0xfe,0x59,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xfa,0x8d,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x74,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x05,0xf8,0x35,0xfc,0xb2,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00, +0x00,0x01,0x02,0x1c,0x02,0x32,0x00,0x03,0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x00,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x02,0x4f,0xd6,0x00,0x01,0x4f,0xd6,0x00,0x50,0x4f,0xae,0x4f,0xb4, +0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x14,0x50,0x26,0x50,0x2c,0x50,0x32,0x50,0x38,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4f,0xde,0x50,0x1a,0x50,0x20,0x50,0x56, +0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0x9e,0x50,0xa4,0x50,0xaa,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xd4,0x50,0xda,0x50,0xe0,0x50,0xe6,0x50,0xec,0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04, +0x51,0x0a,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x51,0x76,0x51,0x7c,0x51,0x82,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x56,0x50,0x5c, +0x50,0x62,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x7a,0x50,0x80,0x50,0x86,0x51,0x88,0x51,0x8e,0x51,0x94,0x51,0x9a,0x51,0xa0,0x51,0xa6,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0xac,0x51,0xb2,0x51,0xb8,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x51,0x40, +0x51,0x46,0x51,0x4c,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x52,0x51,0x58,0x51,0x5e,0x4f,0xc0,0x4f,0xc6,0x4f,0xcc,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14, +0x51,0xbe,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x50,0x44,0x50,0x4a,0x50,0x50,0x51,0xbe,0x51,0xc4,0x51,0xca,0x50,0x56,0x50,0x5c,0x50,0x62,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x50,0xb0,0x50,0xb6,0x50,0xbc,0x50,0xc2,0x50,0xc8,0x50,0xce,0x50,0xe6,0x50,0xec, +0x50,0xf2,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x1c,0x51,0x22,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x4f,0xde,0x50,0x1a,0x50,0x20,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0xf8,0x50,0xfe,0x51,0x04,0x51,0x9a, +0x51,0xa0,0x51,0xa6,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x51,0x64,0x51,0x6a,0x51,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85, +0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x4d,0x7c,0x00,0x00,0x4d,0x7c,0x00,0x50,0x4f,0xac,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x4f,0xd0, +0x4e,0xc2,0x4f,0xd6,0x4f,0xdc,0x4f,0xd0,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xee,0x4e,0x68,0x4f,0xf4,0x4f,0xfa,0x50,0x00,0x4e,0xb0,0x50,0x06,0x4e,0xd4,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24,0x50,0x2a,0x50,0x2a,0x50,0x2a,0x4e,0x20,0x4e,0x20,0x4f,0xe8,0x4f,0xe8,0x50,0x30,0x50,0x36,0x4f,0xb2,0x4f,0xc4, +0x4f,0xca,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x50,0x18,0x50,0x24,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x50,0x1e,0x4f,0xb2,0x4f,0xb8,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x3c,0x50,0x42,0x4f,0xdc,0x50,0x3c,0x4e,0x20,0x4f,0xe2,0x4f,0xe8,0x4f,0xee,0x4f,0xf4,0x50,0x48,0x4e,0xb0,0x50,0x06,0x50,0x0c,0x50,0x12,0x50,0x18,0x50,0x1e,0x50,0x24, +0x4f,0xd0,0x4f,0xb8,0x4f,0xe2,0x50,0x06,0x50,0x36,0x4f,0xbe,0x4f,0xc4,0x4f,0xca,0x50,0x24,0x00,0x01,0x00,0x02,0x0b,0x53,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, +0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4c,0x94,0x00,0x50,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, +0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a, +0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x4f,0x6a,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06, +0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4b,0xb2,0x00,0x50,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0, +0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xb2,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xdc,0x4e,0xb2,0x4e,0xe2,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xe8,0x4e,0xfa,0x4f,0x00,0x4e,0xdc,0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4e,0xb2,0x4e,0xb2,0x4e,0xb2,0x4e,0xca,0x4e,0xca,0x4e,0xd6,0x4e,0xd6,0x4e,0xb2, +0x4e,0xee,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xd0,0x4e,0xd6,0x4e,0xbe,0x4e,0xca,0x4f,0x0c,0x4f,0x06,0x4f,0x12,0x4f,0x06,0x4f,0x12,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4f,0x18,0x4e,0xf4,0x4e,0xc4,0x4f,0x18,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4e,0xf4,0x4e,0xe8,0x4f,0x00,0x4e,0xdc, +0x4e,0xca,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4f,0x2a,0x4f,0x30,0x4e,0xd6,0x4f,0x36,0x4f,0x24,0x4f,0x3c,0x4f,0x42,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31, +0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0xd0,0x00,0x0c,0x4e,0x66,0x4e,0x6c,0x4e,0x72,0x4e,0x6c,0x4e,0x6c,0x4e,0x78,0x4e,0x66,0x4e,0x7e,0x4e,0x78,0x4e,0x84,0x4e,0x78,0x4e,0x54,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a, +0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x01,0x5c,0x01,0x72,0x00,0x02,0x00,0x0c,0x00,0x1a,0x00,0x03, +0x00,0x00,0x4a,0x64,0x00,0x00,0x4a,0x64,0x00,0x01,0x4a,0x64,0x00,0x50,0x4e,0x16,0x4e,0x1c,0x4e,0x22,0x4e,0x28,0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4e,0x5e,0x4e,0x64,0x4e,0x8e,0x4e,0x94,0x4e,0x9a, +0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x16,0x4e,0x58,0x4e,0x5e,0x4e,0x64,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xd0,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xe8,0x4e,0xee,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e, +0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x5e,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4e,0x8e,0x4e,0x94,0x4e,0xa6,0x4e,0xac,0x4e,0xa6,0x4e,0xac,0x4e,0x5e,0x4e,0x7c,0x4e,0xd0,0x4e,0xd6,0x4e,0x22,0x4e,0x28,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4e,0xb2,0x4e,0x7c,0x4e,0x8e,0x4e,0x94,0x4f,0x12, +0x4f,0x18,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x06,0x4f,0x0c,0x4f,0x1e,0x4f,0x24,0x4e,0x2e,0x4f,0x2a,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x30,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4e,0x82,0x4e,0x88,0x4f,0x30,0x4f,0x36,0x4e,0x8e,0x4e,0x94,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6, +0x4e,0xac,0x4e,0x16,0x4e,0x58,0x4e,0xb8,0x4e,0xbe,0x4e,0xc4,0x4e,0xca,0x4e,0xdc,0x4e,0xe2,0x4e,0xc4,0x4e,0xca,0x4e,0xf4,0x4e,0xfa,0x4f,0x00,0x4e,0x58,0x4e,0x8e,0x4e,0x94,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4e,0x5e,0x4e,0x64,0x4e,0x2e,0x4e,0x34,0x4f,0x48,0x4e,0xa0,0x4e,0xc4,0x4e,0xca,0x4e,0xa6,0x4e,0xac,0x4e,0x3a, +0x4e,0x40,0x4e,0x46,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4f,0x12,0x4f,0x18,0x00,0x02,0x00,0x03,0x0b,0xc0,0x0b,0xc0,0x00,0x00,0x0b,0xd7,0x0b,0xd7,0x00,0x01,0x0b,0xdc,0x0b,0xdc,0x00,0x02,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, +0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xca,0x00,0x00,0x48,0xca,0x00,0x50,0x4a,0x76,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4b,0xc6,0x4d,0xd0,0x4b,0x8a,0x4d,0xd6,0x4b,0xc6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8, +0x4d,0xee,0x4d,0xf4,0x4b,0xc6,0x4d,0xfa,0x4e,0x00,0x4b,0x1e,0x4e,0x06,0x4e,0x0c,0x4e,0x12,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x49,0x68,0x49,0x68,0x49,0x68,0x4d,0xdc,0x4d,0xdc,0x4d,0xe8,0x4d,0xe8,0x4e,0x30,0x4b,0x1e,0x4d,0xb8,0x4d,0xbe,0x4d,0xca,0x4d,0xe2,0x4d,0xe8,0x4d,0xee,0x4d,0xdc,0x4e,0x2a,0x4e,0x24, +0x4e,0x24,0x4e,0x24,0x4e,0x24,0x4d,0xb8,0x4d,0xbe,0x4d,0xc4,0x4d,0xbe,0x4d,0xca,0x4c,0x2c,0x4e,0x36,0x4d,0xd6,0x4c,0x2c,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x4d,0xf4,0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x4e,0x0c,0x4e,0x18,0x4e,0x1e,0x4d,0xdc,0x4e,0x24,0x4e,0x2a,0x4e,0x3c,0x4e,0x42,0x4e,0x48,0x4e,0x4e,0x4e,0x54,0x4e,0x5a,0x4e,0x42, +0x4e,0x60,0x4e,0x66,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16, +0x00,0x02,0x00,0x00,0x47,0xe2,0x00,0x00,0x47,0xe2,0x00,0x0c,0x4d,0x84,0x4d,0x8a,0x49,0xbe,0x4d,0x8a,0x4d,0x8a,0x4d,0x90,0x4d,0x84,0x48,0xfe,0x4d,0x90,0x4d,0x96,0x4d,0x90,0x4d,0x72,0x00,0x01,0x00,0x02,0x0b,0xc0,0x0b,0xd7,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71, +0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x47,0x70,0x00,0x50,0x49,0x20,0x4c,0x62,0x4c,0x68, +0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0x70,0x4c,0x7a,0x4a,0x34,0x4c,0x80,0x4a,0x70,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x9e,0x4a,0x70,0x4c,0xa4,0x4c,0xaa,0x49,0xc8,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4c,0xc2,0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x48,0x12,0x48,0x12,0x48,0x12,0x4c,0x86,0x4c,0x86,0x4d,0x2e,0x4d,0x2e, +0x4c,0xda,0x49,0xc8,0x4c,0x62,0x4c,0x68,0x4c,0x74,0x4c,0x8c,0x4d,0x2e,0x4c,0x98,0x4c,0x86,0x4c,0xd4,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0xce,0x4c,0x62,0x4c,0x68,0x4c,0x6e,0x4c,0x68,0x4c,0x74,0x4a,0xd6,0x4c,0xe0,0x4c,0x80,0x4a,0xd6,0x4c,0x86,0x4c,0x8c,0x4d,0x2e,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xc2, +0x4c,0xc8,0x4c,0x86,0x4c,0xce,0x4c,0xd4,0x4d,0x34,0x4c,0xec,0x4c,0xf2,0x4c,0xf8,0x4c,0xfe,0x4d,0x04,0x4c,0xec,0x4d,0x0a,0x4d,0x10,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7, +0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x2c,0x00,0x32,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x46,0x8e,0x00,0x0c,0x4c,0x58,0x4c,0x5e,0x4c,0x64,0x4c,0x5e,0x4c,0x5e,0x4c,0x6a,0x4c,0x58,0x4c,0x70,0x4c,0x6a,0x4c,0x76,0x4c,0x6a,0x4c,0x22,0x00,0x01,0x00,0x01,0x0b,0xce,0x00,0x02,0x00,0x09,0x0b,0x6a, +0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0x64,0x00,0xa4,0x00,0x01,0x00,0x0c,0x00,0x4a, +0x00,0x0f,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x00,0x46,0x22,0x00,0x0c, +0x46,0x50,0x4b,0xd8,0x47,0xfa,0x4b,0xd8,0x4b,0xd8,0x4b,0xde,0x46,0x50,0x4b,0xe4,0x4b,0xde,0x4b,0xea,0x4b,0xde,0x4b,0x7e,0x00,0x02,0x00,0x0a,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcc,0x00,0x06,0x0b,0xcf,0x0b,0xcf,0x00,0x07,0x0b,0xd6,0x0b,0xd6,0x00,0x08, +0x0b,0xd9,0x0b,0xda,0x00,0x09,0x0b,0xdd,0x0b,0xdd,0x00,0x0b,0x0b,0xe1,0x0b,0xe1,0x00,0x0c,0x12,0x5c,0x12,0x5d,0x00,0x0d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f,0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07, +0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x45,0x44,0x00,0x00,0x45,0x44,0x00,0x50,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4a,0x3e,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4a,0x3e, +0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x47,0xaa,0x45,0x88,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x46,0x24,0x46,0x24,0x46,0x24,0x4a,0x8c,0x4a,0x8c,0x4b,0x82,0x4b,0x82,0x48,0x04,0x46,0x8a,0x4b,0x4c,0x4b,0x5e,0x4b,0x64,0x4b,0xbe,0x4b,0x82,0x4b,0x88, +0x4b,0xb2,0x47,0xf8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0xb8,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0xc4,0x4b,0x0a,0x4b,0x76,0x4b,0xc4,0x4a,0x8c,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x94,0x47,0xaa,0x4b,0x9a,0x4b,0xa0,0x4b,0xac,0x45,0x9a,0x4b,0xb2,0x4b,0xb8,0x47,0xf8,0x4a,0x3e,0x4b,0x52,0x4b,0x7c,0x4b,0xa0, +0x46,0x8a,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x47,0xf8,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0, +0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x44,0x5c,0x00,0x00,0x44,0x5c,0x00,0x50,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4a,0xfa,0x49,0x92,0x4b,0x00,0x4b,0x06,0x4a,0xfa,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x12,0x4a,0xa6,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x47,0x22,0x4b,0x2a,0x4a,0xbe, +0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x4e,0x4b,0x4e,0x4b,0x0c,0x4b,0x0c,0x46,0x02,0x46,0x02,0x4b,0x54,0x4b,0x5a,0x4a,0xe8,0x44,0xdc,0x4a,0xf4,0x4b,0x60,0x46,0x02,0x4b,0x12,0x4b,0x3c,0x4b,0x48,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4b,0x42,0x4a,0xe8,0x4a,0xee,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x66, +0x4b,0x6c,0x4b,0x06,0x4b,0x66,0x4b,0x0c,0x46,0x14,0x46,0x02,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x47,0x22,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4a,0xfa,0x4a,0xee,0x46,0x14,0x4b,0x2a,0x4b,0x5a,0x46,0xd4,0x44,0xdc,0x4a,0xf4,0x4b,0x48,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43, +0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb8,0x00,0xc0,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x43,0x74,0x00,0x00,0x43,0x74,0x00,0x50,0x4a,0x8a,0x4a,0x90,0x4a,0x96, +0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xa2,0x4a,0xa8,0x4a,0xae,0x4a,0xb4,0x4a,0xa2,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x46,0x16,0x4a,0xc6,0x43,0x82,0x4a,0xcc,0x4a,0xd2,0x45,0xb6,0x4a,0xd8,0x4a,0xde,0x45,0xfe,0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4a,0xfc,0x4a,0xfc,0x4a,0xba,0x4a,0xba,0x46,0x04,0x46,0x04, +0x4b,0x02,0x4b,0x08,0x4a,0x90,0x4a,0x9c,0x46,0x1c,0x4b,0x0e,0x46,0x04,0x46,0x16,0x4a,0xea,0x4a,0xf6,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0xf0,0x4a,0x90,0x4a,0x96,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4b,0x14,0x4a,0x72,0x4a,0xb4,0x4b,0x14,0x4a,0xba,0x4a,0xc0,0x46,0x04,0x46,0x16,0x43,0x82,0x4a,0xcc,0x45,0xb6,0x4a,0xd8,0x45,0xfe, +0x4a,0xe4,0x4a,0xea,0x4a,0xf0,0x4a,0xf6,0x4a,0xa2,0x4a,0x96,0x4a,0xc0,0x4a,0xd8,0x4b,0x08,0x49,0xb8,0x4a,0x9c,0x46,0x1c,0x4a,0xf6,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d, +0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xe0,0x01,0x0e,0x00,0x01,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c, +0x00,0x00,0x42,0x8c,0x00,0x00,0x42,0x8c,0x00,0x50,0x48,0x90,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x1c,0x43,0x80,0x4a,0x34,0x47,0x64,0x48,0xf0,0x48,0xf0,0x4a,0x3a,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76, +0x4a,0x7c,0x4a,0x82,0x4a,0x82,0x4a,0x82,0x43,0x80,0x43,0x80,0x47,0x64,0x47,0x64,0x4a,0x88,0x4a,0x8e,0x43,0xe6,0x4a,0x10,0x4a,0x16,0x4a,0x94,0x47,0x64,0x48,0xf0,0x4a,0x70,0x4a,0x7c,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x4a,0x76,0x43,0xe6,0x4a,0x0a,0x47,0xee,0x4a,0x10,0x4a,0x16,0x47,0x82,0x4a,0x9a,0x4a,0x2e,0x47,0x82,0x43,0x80, +0x4a,0x34,0x47,0x64,0x48,0xf0,0x4a,0x40,0x4a,0x46,0x4a,0x52,0x4a,0x58,0x4a,0x64,0x4a,0x6a,0x4a,0x70,0x4a,0x76,0x4a,0x7c,0x4a,0x1c,0x4a,0x0a,0x4a,0x34,0x4a,0x58,0x4a,0x8e,0x47,0xee,0x4a,0x10,0x4a,0x16,0x4a,0x7c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, +0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c, +0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x41,0x56,0x00,0x00,0x41,0x56,0x00,0x0c,0x49,0x92,0x49,0x98,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x49,0x9e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f, +0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0xf0,0x00,0x00,0x40,0xf0,0x00,0x0c,0x46,0x2c, +0x46,0x2c,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x49,0x3e,0x46,0xf2,0x49,0x3e,0x49,0x3e,0x00,0x01,0x00,0x02,0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04, +0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x30,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x40,0x8a,0x00,0x00,0x40,0x8a,0x00,0x0c,0x46,0x8c,0x46,0x8c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x47,0x1c,0x48,0xde,0x47,0x1c,0x47,0x1c,0x00,0x01,0x00,0x02, +0x0b,0xc8,0x0b,0xdb,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0xf8,0x01,0x32,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12, +0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24, +0x00,0x00,0x40,0x24,0x00,0x00,0x40,0x24,0x00,0x50,0x48,0x3e,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x40,0x88,0x48,0x56,0x48,0x5c,0x48,0x62,0x40,0x88,0x45,0x08,0x41,0x2a,0x42,0x32,0x48,0x68,0x48,0x6e,0x40,0x88,0x42,0x38,0x48,0x74,0x48,0x7a,0x48,0x80,0x46,0x28,0x40,0x76,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00, +0x48,0x92,0x48,0x98,0x48,0x98,0x48,0x98,0x45,0x08,0x45,0x08,0x42,0x32,0x42,0x32,0x47,0xd8,0x48,0x7a,0x48,0x44,0x40,0x28,0x48,0x50,0x41,0x2a,0x42,0x32,0x48,0x68,0x45,0x08,0x48,0x92,0x42,0x56,0x46,0xc4,0x42,0x56,0x46,0xc4,0x48,0x44,0x40,0x28,0x48,0x4a,0x40,0x28,0x48,0x50,0x48,0x9e,0x48,0xa4,0x48,0x62,0x48,0x9e,0x45,0x08, +0x41,0x2a,0x42,0x32,0x48,0x6e,0x42,0x38,0x48,0x74,0x48,0x80,0x46,0x28,0x48,0x86,0x48,0x8c,0x45,0x08,0x47,0x00,0x48,0x92,0x48,0xaa,0x48,0xb0,0x48,0xb6,0x48,0xbc,0x46,0x52,0x48,0xc2,0x48,0xc8,0x48,0xce,0x48,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, +0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d, +0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x3e,0xca,0x00,0x50,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0,0x3f,0xc0, +0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x12,0xf4,0x13,0x46,0x00,0x03,0x00,0x0c,0x01,0xbe,0x00,0x6c,0x00,0x00,0x46,0xe8, +0x00,0x02,0x46,0xee,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xf4,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x00,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x06,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x0c,0x00,0x00,0x47,0x12, +0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x18,0x00,0x00,0x47,0x1e,0x00,0x00,0x47,0x24,0x00,0x01,0x47,0x2a,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x30,0x00,0x02,0x47,0x36,0x00,0x00,0x47,0x3c,0x00,0x02,0x47,0x42,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x48,0x00,0x02,0x47,0x4e, +0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x54,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x5a,0x00,0x02,0x47,0x60,0x00,0x02,0x47,0x66,0x00,0x02,0x47,0x6c,0x00,0x02,0x3d,0xe8, +0x00,0x02,0x47,0x72,0x00,0x02,0x3d,0xe8,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x78,0x00,0x00,0x47,0x00,0x00,0x00,0x47,0x7e,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x3c,0x00,0x02,0x43,0xb2,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0x84,0x00,0x02,0x3d,0xe8,0x00,0x02,0x47,0x8a,0x00,0x00,0x46,0xfa,0x00,0x00,0x46,0xfa,0x00,0x00,0x47,0x90, +0x00,0x02,0x47,0x96,0x00,0x02,0x47,0x9c,0x00,0x00,0x47,0xa2,0x00,0x00,0x47,0xa8,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xae,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c, +0x00,0x00,0x47,0xb4,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0x3c,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xc0,0x00,0x00,0x46,0xfa,0x00,0x02,0x47,0xc6,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x02,0x47,0xcc,0x00,0x00,0x47,0xd2,0x00,0x02,0x47,0xd8,0x00,0x02,0x47,0x5a,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba,0x00,0x00,0x47,0xba, +0x00,0x02,0x47,0xde,0x00,0x00,0x47,0xe4,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xea,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf0,0x00,0x00,0x47,0xf6,0x00,0x00,0x47,0xf6,0x00,0x02,0x47,0xfc,0x00,0x00,0x48,0x02,0x00,0x02,0x48,0x08,0x02,0xde,0x46,0x5c,0x46,0x62,0x46,0x68,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x80,0x46,0x86,0x46,0x8c, +0x46,0x92,0x46,0x98,0x46,0x9e,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xa4,0x46,0xaa,0x46,0xb0,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x46,0xc8,0x46,0xce,0x46,0xd4,0x46,0xda,0x46,0xe0,0x46,0xe6,0x46,0xec,0x46,0xf2,0x46,0xf8,0x46,0xfe,0x47,0x04,0x47,0x0a,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x22,0x47,0x28,0x47,0x2e,0x46,0xb6,0x47,0x34, +0x47,0x3a,0x47,0x40,0x47,0x46,0x47,0x4c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x40,0x47,0x46,0x47,0x5e,0x47,0x52,0x47,0x64,0x46,0x68,0x47,0x6a,0x46,0xaa,0x47,0x70,0x47,0x76,0x47,0x7c,0x47,0x82,0x46,0x92,0x47,0x46,0x47,0x88,0x47,0x8e,0x47,0x46,0x47,0x94,0x47,0x9a,0x47,0xa0,0x47,0xa6,0x47,0xac,0x46,0x98,0x47,0xb2,0x47,0xb8, +0x47,0x04,0x47,0xbe,0x46,0xfe,0x47,0x04,0x47,0xbe,0x47,0xc4,0x47,0xca,0x47,0xd0,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xe8,0x47,0xee,0x47,0xf4,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x47,0xdc,0x47,0x1c,0x48,0x2a,0x48,0x30,0x48,0x36, +0x48,0x3c,0x48,0x30,0x48,0x42,0x47,0xd6,0x48,0x48,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x48,0x54,0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x72,0x48,0x6c,0x48,0x78,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x66,0x48,0x8a,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4, +0x48,0xba,0x47,0xe8,0x48,0xc0,0x47,0x70,0x48,0xc6,0x48,0xcc,0x48,0xd2,0x48,0xd8,0x48,0xde,0x48,0xe4,0x48,0xea,0x48,0xf0,0x48,0xf6,0x48,0xfc,0x48,0x7e,0x49,0x02,0x49,0x08,0x47,0xee,0x49,0x0e,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x14,0x49,0x1a,0x46,0x68,0x46,0x80,0x46,0x86,0x49,0x20,0x49,0x26,0x49,0x2c,0x46,0xb0,0x49,0x32, +0x49,0x38,0x47,0x3a,0x49,0x3e,0x49,0x44,0x47,0x4c,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x5c,0x47,0xd0,0x49,0x62,0x49,0x5c,0x49,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x56,0x49,0x74,0x47,0xd0,0x47,0xe8,0x47,0xee,0x49,0x7a,0x49,0x80,0x49,0x5c,0x47,0xf4, +0x49,0x80,0x49,0x5c,0x47,0xf4,0x49,0x86,0x49,0x5c,0x49,0x8c,0x49,0x92,0x49,0x5c,0x47,0x70,0x48,0x2a,0x49,0x98,0x48,0x36,0x48,0x2a,0x49,0x9e,0x48,0x36,0x49,0xa4,0x49,0xaa,0x48,0x36,0x49,0xb0,0x49,0xaa,0x48,0x36,0x49,0xb6,0x49,0xbc,0x47,0x1c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc2,0x49,0xbc,0x48,0x78,0x49,0xc8,0x49,0xbc, +0x49,0xce,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xd4,0x49,0xbc,0x48,0x78,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0xda,0x49,0xe0,0x47,0x70,0x49,0x80,0x49,0xe0,0x47,0xf4,0x49,0xe6,0x49,0xe0,0x47,0xf4,0x49,0xec,0x49,0xf2,0x49,0xf8,0x49,0xfe,0x4a,0x04,0x4a,0x0a,0x47,0x40,0x49,0x44,0x47,0x4c,0x4a,0x10,0x4a,0x16,0x4a,0x1c,0x48,0x72, +0x49,0xbc,0x48,0x78,0x4a,0x22,0x4a,0x28,0x4a,0x2e,0x4a,0x34,0x49,0x1a,0x46,0x68,0x49,0x14,0x4a,0x3a,0x46,0x68,0x49,0x3e,0x49,0x44,0x47,0x4c,0x4a,0x40,0x4a,0x46,0x4a,0x4c,0x4a,0x52,0x4a,0x58,0x4a,0x5e,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x34,0x49,0x1a,0x46,0x68,0x4a,0x7c,0x4a,0x82,0x4a,0x88, +0x4a,0x34,0x4a,0x8e,0x46,0x68,0x4a,0x94,0x4a,0x9a,0x4a,0x88,0x49,0x26,0x4a,0x82,0x46,0xb0,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x4a,0xac,0x4a,0xa6,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x46,0xe6,0x4a,0xa0,0x4a,0xc4,0x46,0xe6,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xca,0x49,0x50,0x47,0x4c,0x4a,0xd0,0x49,0x50, +0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4a,0xd6,0x4a,0xdc,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x4a,0xe2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x47,0x70,0x4b,0x00,0x4b,0x06,0x48,0xa8,0x4b,0x0c,0x4b,0x12,0x47,0xbe,0x4b,0x18,0x4b,0x1e,0x49,0x0e,0x46,0x92,0x46,0x98,0x46,0x9e,0x4b,0x24, +0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x4b,0x78,0x4b,0x7e,0x4a,0xb2,0x47,0x6a,0x46,0xaa,0x4b,0x84,0x48,0x9c,0x48,0xa2,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x46,0x8c, +0x49,0xda,0x4b,0x1e,0x47,0xf4,0x4b,0x9c,0x4b,0x96,0x4b,0xa2,0x4b,0xa8,0x4b,0x1e,0x4b,0xae,0x47,0xfa,0x48,0x00,0x48,0x06,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4b,0xb4,0x46,0x62,0x4b,0xba,0x47,0xc4,0x47,0xca,0x4b,0xc0,0x4b,0xc6,0x4b,0xcc,0x4b,0xd2,0x47,0xfa,0x48,0x00,0x48,0x06,0x46,0x92,0x46,0x98, +0x46,0x9e,0x46,0xa4,0x46,0xaa,0x4b,0xd8,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4a,0x7c,0x4a,0xfa,0x46,0xb0,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4b,0xe4,0x4b,0xea,0x47,0x1c,0x4b,0xf0,0x4b,0xf6,0x48,0x36,0x47,0x10,0x4b,0xfc,0x47,0x1c,0x48,0x2a,0x4c,0x02,0x48,0x36,0x47,0x10,0x47,0x16,0x47,0x1c,0x48,0x2a,0x48,0x4e,0x48,0x36,0x4b,0x66, +0x4c,0x08,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0xca,0x4c,0x08,0x4c,0x14,0x49,0xc2,0x49,0xbc,0x46,0xb0,0x4a,0xca,0x4c,0x1a,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x2c,0x4c,0x32,0x48,0x36,0x4c,0x20,0x4c,0x26,0x46,0x68,0x4c,0x38,0x4c,0x32,0x48,0x36,0x4c,0x3e,0x4a,0xfa,0x47,0x70, +0x4c,0x38,0x4b,0x06,0x48,0xa8,0x47,0x76,0x47,0x7c,0x4b,0x84,0x48,0xae,0x48,0xb4,0x4c,0x44,0x4a,0xf4,0x4c,0x4a,0x47,0x82,0x4c,0x50,0x4c,0x56,0x48,0xba,0x4b,0xc6,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4c,0x62,0x4c,0x68,0x47,0xbe,0x4c,0x6e,0x4b,0x1e, +0x49,0x0e,0x4c,0x74,0x4c,0x7a,0x47,0x1c,0x4c,0x80,0x4b,0x1e,0x49,0x0e,0x4c,0x86,0x4c,0x8c,0x4c,0x92,0x4c,0x98,0x4c,0x9e,0x4c,0xa4,0x4c,0xaa,0x4c,0xb0,0x4c,0xb6,0x4c,0xbc,0x4a,0x3a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x4c,0xc2,0x4b,0x96,0x4c,0xc8,0x49,0xda,0x4b,0x1e,0x47,0xf4,0x49,0x3e,0x4c,0xce,0x47,0x4c,0x49,0xd4, +0x4b,0x1e,0x48,0x78,0x4c,0xd4,0x4a,0x9a,0x47,0xbe,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4c,0xe0,0x4a,0x9a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0x70,0x4c,0xe6,0x4c,0xec,0x47,0x82,0x49,0xe6,0x49,0x5c,0x47,0xf4,0x4b,0x9c,0x4c,0xf2,0x4b,0xa2,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x32,0x4b,0x6c,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24, +0x46,0xb6,0x46,0xbc,0x4c,0xfe,0x4d,0x04,0x4d,0x0a,0x48,0x24,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x4d,0x16,0x4d,0x1c,0x47,0xb2,0x4d,0x22,0x4d,0x28,0x4d,0x2e,0x4d,0x34,0x4d,0x3a,0x4d,0x40,0x4d,0x46,0x4a,0xbe,0x4a,0xee,0x4d,0x4c,0x49,0xaa,0x48,0x36,0x4d,0x52,0x4a,0xbe,0x46,0xe6,0x4d,0x58,0x49,0xaa,0x48,0x36,0x4d,0x5e,0x4a,0xc4, +0x4a,0xee,0x4d,0x64,0x49,0x9e,0x48,0x36,0x4d,0x6a,0x46,0xe0,0x4d,0x70,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4d,0x7c,0x4d,0x82,0x46,0xf8,0x48,0x3c,0x4d,0x88,0x48,0x42,0x46,0xfe,0x47,0x04,0x4d,0x8e,0x47,0xd6,0x48,0x48,0x4d,0x94,0x4d,0x9a,0x4d,0xa0,0x4d,0xa6,0x47,0x10,0x47,0x16,0x4d,0xac,0x48,0x2a,0x48,0x4e,0x4d,0xb2,0x46,0xb6, +0x47,0x34,0x4c,0xfe,0x48,0x66,0x48,0x6c,0x4d,0x94,0x46,0xb6,0x47,0x34,0x4d,0xb8,0x48,0x66,0x48,0x6c,0x48,0x84,0x4d,0xbe,0x49,0x44,0x47,0x4c,0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x47,0x52,0x47,0x64,0x4d,0xc4,0x48,0x90,0x48,0x96,0x4d,0xca,0x4a,0xf4,0x4a,0xfa,0x47,0x70, +0x4c,0x38,0x4b,0x06,0x48,0xa8,0x4d,0xd0,0x4d,0xd6,0x4d,0xdc,0x4d,0xe2,0x4d,0xe8,0x48,0xba,0x49,0x4a,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4d,0xee,0x49,0x50,0x47,0x88,0x49,0x92,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x46,0x92,0x47,0x46,0x4d,0xf4,0x47,0xe8,0x48,0xc0, +0x4d,0xfa,0x4e,0x00,0x4e,0x06,0x47,0xa6,0x4e,0x0c,0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x49,0x56,0x4a,0x6a,0x4e,0x18,0x4e,0x1e,0x4e,0x24,0x48,0x36,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x2a,0x4e,0x06,0x47,0xa6,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4e,0x36,0x4e,0x06,0x47,0xa6,0x4e,0x3c, +0x4e,0x12,0x48,0xe4,0x4b,0x36,0x4a,0x76,0x47,0xbe,0x4b,0x3c,0x4e,0x42,0x49,0x02,0x47,0x40,0x4e,0x48,0x47,0x4c,0x48,0x72,0x4e,0x4e,0x48,0x78,0x4e,0x54,0x4e,0x5a,0x47,0x88,0x4e,0x60,0x4e,0x66,0x47,0x70,0x4b,0xb4,0x46,0x62,0x4e,0x6c,0x4e,0x72,0x47,0xca,0x4e,0x78,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, +0x47,0xb8,0x46,0xaa,0x4e,0x7e,0x48,0x66,0x47,0xca,0x4e,0x84,0x4a,0xf4,0x4a,0xfa,0x47,0x82,0x49,0x80,0x49,0x5c,0x47,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x49,0xe6,0x4c,0xda,0x47,0xf4,0x4a,0xa0,0x4e,0x8a,0x46,0xe6,0x48,0x2a,0x4e,0x90,0x48,0x36,0x46,0xda,0x46,0xe0,0x4e,0x96,0x48,0x2a,0x48,0x30,0x4e,0x9c,0x47,0x40,0x47,0x46, +0x4e,0xa2,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x4a,0xca,0x4c,0x5c,0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x47,0xb8,0x47,0x04,0x4e,0x7e,0x48,0xfc,0x48,0x7e,0x49,0x02,0x4b,0x36,0x4b,0x12,0x47,0xbe,0x4b,0x3c, +0x4e,0x42,0x49,0x02,0x4a,0x70,0x4a,0x76,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x47,0x76,0x47,0x7c,0x4e,0xba,0x48,0xae,0x48,0xb4,0x4e,0xc0,0x4e,0xc6,0x4e,0xcc,0x4e,0xd2,0x4e,0xd8,0x4e,0xde,0x4e,0xe4,0x46,0xa4,0x46,0xaa,0x4e,0xea,0x48,0x0c,0x47,0xca,0x49,0x7a,0x4b,0xb4,0x46,0x62,0x4e,0xf0,0x47,0xc4,0x47,0xca,0x4e,0xf6, +0x4e,0xfc,0x4f,0x02,0x46,0x7a,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x4f,0x08,0x46,0x74,0x4f,0x0e,0x47,0xd6,0x47,0xdc,0x4f,0x14,0x47,0xb8,0x46,0x74,0x4f,0x1a,0x47,0xd6,0x47,0xdc,0x4f,0x20,0x49,0x14,0x4f,0x26,0x46,0x68,0x47,0xfa,0x48,0x00,0x48,0x06,0x4f,0x2c,0x46,0x98,0x4f,0x32,0x4f,0x38,0x48,0x00,0x4e,0xa8,0x46,0xfe,0x46,0x98, +0x4f,0x3e,0x47,0xd6,0x48,0x00,0x4f,0x44,0x46,0x92,0x46,0x98,0x4f,0x4a,0x47,0xfa,0x48,0x00,0x4f,0x50,0x4f,0x56,0x46,0x98,0x4f,0x5c,0x47,0xd6,0x48,0x00,0x48,0x84,0x47,0x10,0x46,0xaa,0x48,0x84,0x4f,0x62,0x47,0xca,0x4c,0xf8,0x4f,0x08,0x46,0xaa,0x4f,0x68,0x48,0x0c,0x47,0xca,0x4b,0xde,0x4f,0x6e,0x4a,0x82,0x4f,0x74,0x4f,0x7a, +0x4f,0x80,0x48,0x18,0x4f,0x86,0x49,0x38,0x46,0xc2,0x49,0xe6,0x4b,0x72,0x48,0x24,0x4f,0x8c,0x4f,0x92,0x46,0xd4,0x4f,0x98,0x4f,0x9e,0x47,0x1c,0x46,0xc8,0x46,0xce,0x4f,0xa4,0x4f,0xaa,0x47,0xdc,0x4f,0xb0,0x4f,0x8c,0x49,0x38,0x46,0xd4,0x4f,0xb6,0x4f,0xbc,0x47,0x94,0x46,0xc8,0x46,0xce,0x4f,0xc2,0x47,0xd6,0x47,0xdc,0x48,0x84, +0x46,0xc8,0x46,0xce,0x4f,0xc8,0x47,0xd6,0x47,0xdc,0x4f,0xce,0x46,0xda,0x46,0xe0,0x4f,0xd4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x4f,0xda,0x4c,0x68,0x47,0x0a,0x4f,0xe0,0x49,0x2c,0x47,0x1c,0x47,0x8e,0x47,0x04,0x4f,0xe6,0x4f,0xec,0x48,0x48,0x4e,0xb4,0x46,0xfe,0x47,0x04,0x4f,0x3e,0x4f,0xf2,0x48,0x48,0x4f,0xf8,0x47,0x76,0x47,0x16, +0x4e,0xb4,0x48,0x2a,0x48,0x4e,0x4e,0x9c,0x4f,0xfe,0x50,0x04,0x4e,0xb4,0x50,0x0a,0x4b,0xf6,0x4e,0x9c,0x4f,0x08,0x47,0x16,0x4f,0xf8,0x48,0x2a,0x48,0x4e,0x50,0x10,0x50,0x16,0x47,0x16,0x50,0x1c,0x48,0x2a,0x48,0x4e,0x50,0x22,0x50,0x28,0x50,0x2e,0x47,0x2e,0x50,0x34,0x50,0x3a,0x48,0x60,0x50,0x40,0x50,0x46,0x47,0x2e,0x50,0x34, +0x50,0x3a,0x48,0x60,0x47,0x22,0x47,0x28,0x50,0x4c,0x48,0x54,0x48,0x5a,0x50,0x52,0x50,0x58,0x49,0x38,0x50,0x5e,0x49,0xd4,0x49,0xbc,0x46,0xb0,0x50,0x64,0x47,0x34,0x50,0x6a,0x48,0x72,0x48,0x6c,0x4e,0xa8,0x50,0x64,0x47,0x34,0x50,0x70,0x48,0x72,0x48,0x6c,0x50,0x76,0x47,0x40,0x47,0x34,0x50,0x7c,0x48,0x66,0x48,0x6c,0x48,0x84, +0x4c,0x20,0x50,0x82,0x47,0x58,0x4c,0x0e,0x4a,0x6a,0x48,0x84,0x4a,0x94,0x50,0x88,0x4a,0x88,0x50,0x8e,0x4a,0x6a,0x50,0x94,0x50,0x9a,0x50,0xa0,0x46,0xb0,0x50,0xa6,0x4c,0x32,0x48,0x36,0x47,0x52,0x47,0x64,0x50,0xac,0x48,0x90,0x48,0x96,0x4e,0x9c,0x47,0x52,0x47,0x64,0x50,0xb2,0x48,0x90,0x48,0x96,0x50,0x10,0x4c,0x74,0x4a,0x82, +0x50,0xb8,0x4c,0x2c,0x4b,0x06,0x50,0xbe,0x47,0x6a,0x46,0xaa,0x4e,0xb4,0x50,0xc4,0x48,0xa2,0x50,0xca,0x4c,0x3e,0x50,0xd0,0x47,0x70,0x4c,0x38,0x50,0xd6,0x48,0xa8,0x50,0xdc,0x50,0xd0,0x4b,0xae,0x50,0xe2,0x50,0xd6,0x48,0xa8,0x50,0xe8,0x4a,0x82,0x50,0xee,0x4c,0x2c,0x4b,0x06,0x50,0xf4,0x4c,0xe6,0x4a,0x9a,0x47,0x82,0x50,0xfa, +0x4c,0x56,0x48,0xba,0x47,0x76,0x47,0x7c,0x4e,0xb4,0x48,0xae,0x48,0xb4,0x51,0x00,0x47,0x76,0x47,0x7c,0x51,0x06,0x48,0xae,0x48,0xb4,0x51,0x0c,0x47,0x76,0x47,0x7c,0x51,0x12,0x48,0xae,0x48,0xb4,0x51,0x18,0x46,0x92,0x47,0x46,0x4e,0xae,0x51,0x1e,0x48,0xc0,0x51,0x24,0x46,0x92,0x47,0x46,0x4e,0xae,0x47,0xe8,0x48,0xc0,0x4e,0xb4, +0x4f,0x56,0x47,0x46,0x4f,0x5c,0x51,0x2a,0x48,0xc0,0x50,0x1c,0x51,0x30,0x51,0x36,0x47,0x94,0x49,0x62,0x51,0x3c,0x48,0xd2,0x47,0x8e,0x47,0x46,0x4f,0xe6,0x48,0xc6,0x48,0xcc,0x51,0x42,0x51,0x48,0x51,0x4e,0x47,0xa6,0x51,0x54,0x4e,0x12,0x48,0xe4,0x47,0x9a,0x47,0xa0,0x51,0x5a,0x48,0xd8,0x48,0xde,0x51,0x60,0x51,0x66,0x51,0x6c, +0x47,0xb2,0x51,0x72,0x51,0x78,0x48,0xf6,0x51,0x66,0x4f,0x26,0x47,0xb2,0x51,0x72,0x4e,0x42,0x48,0xf6,0x4a,0x70,0x4c,0x7a,0x47,0xbe,0x4a,0x64,0x4e,0x42,0x49,0x02,0x49,0x26,0x4b,0x12,0x46,0xb0,0x4c,0x6e,0x4b,0x1e,0x51,0x7e,0x46,0xfe,0x47,0x04,0x4e,0xa8,0x49,0x08,0x47,0xee,0x51,0x84,0x46,0xfe,0x47,0x04,0x4f,0x1a,0x48,0x90, +0x47,0xee,0x51,0x8a,0x47,0xd6,0x47,0xdc,0x4f,0x44,0x51,0x90,0x51,0x96,0x48,0xba,0x4e,0x30,0x4e,0x12,0x48,0xe4,0x4b,0x3c,0x4a,0x6a,0x49,0x02,0x49,0x56,0x51,0x9c,0x47,0xd0,0x51,0xa2,0x51,0xa8,0x51,0xae,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xc0,0x51,0xc6,0x51,0xcc,0x51,0xd2,0x51,0xd8,0x51,0xde,0x4b,0x54,0x51,0xe4,0x51,0xba, +0x51,0xea,0x51,0xf0,0x51,0xf6,0x4b,0x54,0x51,0xb4,0x51,0xba,0x51,0xfc,0x52,0x02,0x52,0x08,0x52,0x0e,0x52,0x14,0x52,0x1a,0x52,0x20,0x52,0x26,0x4b,0x30,0x52,0x2c,0x52,0x32,0x46,0x9e,0x52,0x38,0x52,0x3e,0x52,0x44,0x52,0x4a,0x52,0x50,0x52,0x56,0x4b,0x54,0x52,0x5c,0x51,0xba,0x52,0x62,0x52,0x68,0x52,0x6e,0x52,0x74,0x52,0x7a, +0x51,0x7e,0x52,0x80,0x52,0x86,0x48,0x78,0x52,0x8c,0x52,0x92,0x52,0x98,0x52,0x9e,0x52,0xa4,0x46,0xc2,0x52,0xaa,0x52,0xb0,0x52,0xb6,0x52,0xbc,0x52,0xc2,0x52,0xc8,0x52,0xce,0x52,0xd4,0x48,0x18,0x52,0xda,0x52,0xe0,0x4a,0xb2,0x52,0xe6,0x52,0xec,0x52,0xf2,0x52,0xf8,0x52,0xfe,0x53,0x04,0x53,0x0a,0x53,0x10,0x53,0x16,0x53,0x1c, +0x53,0x22,0x53,0x04,0x53,0x28,0x53,0x2e,0x53,0x34,0x53,0x3a,0x53,0x40,0x53,0x46,0x53,0x4c,0x53,0x52,0x53,0x58,0x53,0x5e,0x53,0x64,0x53,0x6a,0x53,0x70,0x53,0x76,0x53,0x7c,0x53,0x82,0x53,0x88,0x53,0x8e,0x53,0x94,0x53,0x9a,0x53,0xa0,0x53,0xa6,0x53,0xac,0x4b,0x60,0x53,0xb2,0x53,0xb8,0x53,0xbe,0x47,0x6a,0x46,0xaa,0x47,0x70, +0x48,0x9c,0x48,0xa2,0x48,0xa8,0x53,0xc4,0x53,0xca,0x53,0xd0,0x53,0xd6,0x53,0xdc,0x53,0xe2,0x53,0xe8,0x53,0xee,0x53,0xf4,0x53,0xfa,0x54,0x00,0x54,0x06,0x54,0x0c,0x54,0x12,0x54,0x18,0x53,0xfa,0x54,0x00,0x54,0x1e,0x54,0x24,0x54,0x2a,0x54,0x30,0x54,0x36,0x54,0x3c,0x54,0x42,0x54,0x48,0x54,0x4e,0x54,0x54,0x54,0x5a,0x54,0x60, +0x54,0x66,0x46,0xfe,0x47,0x04,0x47,0xbe,0x49,0x08,0x47,0xee,0x49,0x0e,0x47,0x76,0x47,0x04,0x51,0x12,0x46,0x80,0x46,0xce,0x54,0x6c,0x54,0x72,0x54,0x78,0x54,0x7e,0x54,0x84,0x54,0x8a,0x54,0x90,0x54,0x96,0x54,0x9c,0x54,0xa2,0x54,0xa8,0x54,0xae,0x54,0xb4,0x54,0xba,0x54,0xc0,0x54,0xc6,0x54,0xcc,0x54,0xd2,0x54,0xd8,0x54,0xde, +0x54,0xe4,0x54,0xea,0x54,0xf0,0x54,0xf6,0x54,0xfc,0x55,0x02,0x55,0x08,0x55,0x0e,0x55,0x14,0x55,0x1a,0x55,0x20,0x55,0x26,0x55,0x2c,0x55,0x32,0x55,0x38,0x55,0x3e,0x55,0x44,0x4a,0x34,0x4a,0x8e,0x46,0x68,0x55,0x4a,0x49,0x5c,0x55,0x50,0x4a,0xa0,0x4a,0xa6,0x46,0xe6,0x48,0x2a,0x55,0x56,0x48,0x36,0x4a,0xca,0x4c,0x5c,0x47,0x4c, +0x49,0xc2,0x49,0xbc,0x48,0x78,0x55,0x5c,0x4c,0x5c,0x55,0x62,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x4e,0x72,0x47,0xca,0x52,0x08,0x55,0x68,0x55,0x6e,0x55,0x74,0x55,0x7a,0x55,0x80,0x55,0x86,0x46,0xb6,0x46,0xbc,0x46,0xc2,0x48,0x0c,0x48,0x1e,0x48,0x24,0x55,0x8c,0x4c,0xf2,0x55,0x92,0x4b,0xa8,0x4b,0x72,0x4c,0xf8,0x49,0x26,0x4c,0x68, +0x46,0xb0,0x55,0x98,0x49,0x2c,0x53,0x04,0x47,0x40,0x47,0x46,0x55,0x9e,0x48,0x72,0x48,0x6c,0x55,0xa4,0x4d,0xbe,0x49,0x44,0x55,0x9e,0x49,0xd4,0x49,0xbc,0x55,0xa4,0x55,0xaa,0x4c,0x68,0x4e,0x18,0x55,0xb0,0x4b,0x1e,0x55,0xb6,0x48,0x3c,0x55,0xbc,0x48,0x42,0x55,0xc2,0x55,0xc8,0x55,0xce,0x55,0xd4,0x55,0xda,0x54,0xc6,0x55,0xe0, +0x55,0xe6,0x54,0xd8,0x4b,0x66,0x4c,0xf2,0x46,0xc2,0x49,0x80,0x4b,0x72,0x48,0x24,0x46,0x92,0x55,0xec,0x46,0x9e,0x55,0xf2,0x55,0xf8,0x55,0xfe,0x4b,0x66,0x49,0x38,0x47,0x3a,0x4c,0x0e,0x49,0xbc,0x47,0x1c,0x4a,0x34,0x56,0x04,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0,0x4a,0x34,0x4a,0x3a,0x46,0x68,0x49,0x56,0x49,0x5c,0x47,0xd0, +0x4c,0xe0,0x56,0x0a,0x46,0xb0,0x49,0xda,0x49,0x5c,0x47,0xf4,0x4a,0x7c,0x4a,0x9a,0x4a,0x88,0x49,0xda,0x49,0x5c,0x47,0x70,0x4a,0xa0,0x56,0x10,0x46,0xe6,0x48,0x2a,0x56,0x16,0x48,0x36,0x4a,0xa0,0x4a,0xbe,0x46,0xe6,0x48,0x2a,0x49,0xaa,0x48,0x36,0x4b,0x90,0x49,0x44,0x47,0x4c,0x49,0x80,0x49,0xbc,0x48,0x78,0x4a,0xca,0x49,0x44, +0x47,0x4c,0x49,0xc2,0x49,0xbc,0x48,0x78,0x4a,0xf4,0x4c,0x26,0x46,0xb0,0x4b,0x00,0x4c,0x32,0x48,0x36,0x4c,0x20,0x50,0xa0,0x46,0x68,0x56,0x1c,0x4c,0x32,0x48,0x36,0x4a,0xd0,0x4c,0x5c,0x47,0x88,0x49,0xda,0x49,0xe0,0x47,0x70,0x4a,0xd0,0x49,0x50,0x47,0x88,0x4b,0xa8,0x49,0xe0,0x4b,0xae,0x56,0x22,0x56,0x28,0x56,0x2e,0x56,0x34, +0x56,0x3a,0x56,0x40,0x4d,0x10,0x4c,0x08,0x46,0xd4,0x55,0x98,0x56,0x46,0x47,0x1c,0x56,0x4c,0x56,0x52,0x56,0x58,0x56,0x5e,0x56,0x64,0x56,0x6a,0x56,0x70,0x56,0x76,0x4b,0xae,0x46,0xfe,0x47,0x04,0x56,0x7c,0x49,0x08,0x47,0xee,0x56,0x82,0x49,0x14,0x49,0x1a,0x46,0x68,0x49,0x6e,0x49,0x5c,0x47,0xd0,0x49,0x3e,0x49,0x50,0x47,0x4c, +0x49,0xd4,0x49,0xbc,0x48,0x78,0x4a,0x70,0x4f,0x92,0x47,0xbe,0x4a,0x64,0x4a,0x6a,0x49,0x02,0x56,0x88,0x56,0x8e,0x56,0x94,0x56,0x9a,0x56,0xa0,0x56,0xa6,0x56,0x9a,0x56,0xac,0x56,0xa6,0x56,0xb2,0x56,0xb8,0x56,0xbe,0x56,0xc4,0x56,0xca,0x56,0xd0,0x56,0xd6,0x56,0xca,0x56,0xdc,0x56,0xe2,0x56,0xe8,0x56,0xee,0x56,0xe2,0x56,0xf4, +0x56,0xbe,0x56,0xfa,0x4e,0xde,0x57,0x00,0x57,0x06,0x57,0x0c,0x57,0x12,0x57,0x18,0x57,0x1e,0x57,0x24,0x57,0x2a,0x57,0x1e,0x57,0x30,0x57,0x2a,0x57,0x36,0x57,0x30,0x57,0x3c,0x57,0x42,0x57,0x48,0x57,0x4e,0x57,0x54,0x57,0x5a,0x57,0x60,0x56,0xf4,0x48,0x24,0x48,0x0c,0x48,0x1e,0x48,0x24,0x57,0x66,0x57,0x6c,0x57,0x72,0x57,0x78, +0x57,0x7e,0x57,0x84,0x57,0x8a,0x57,0x90,0x57,0x96,0x57,0x9c,0x57,0xa2,0x57,0xa8,0x57,0xae,0x57,0xb4,0x47,0x1c,0x57,0xae,0x57,0xb4,0x57,0xa8,0x57,0xba,0x57,0xc0,0x57,0xc6,0x57,0xcc,0x57,0xd2,0x48,0x18,0x57,0xd8,0x57,0xde,0x57,0xe4,0x57,0xea,0x57,0xf0,0x57,0xf6,0x57,0xfc,0x58,0x02,0x58,0x08,0x58,0x0e,0x58,0x14,0x58,0x1a, +0x58,0x20,0x58,0x26,0x58,0x2c,0x58,0x32,0x58,0x38,0x4c,0x92,0x58,0x32,0x58,0x38,0x58,0x3e,0x48,0x54,0x48,0x5a,0x58,0x44,0x48,0x66,0x48,0x6c,0x48,0x84,0x48,0x66,0x48,0x6c,0x48,0x84,0x58,0x4a,0x58,0x50,0x46,0xb0,0x58,0x56,0x58,0x5c,0x48,0x78,0x58,0x62,0x58,0x68,0x58,0x6e,0x58,0x74,0x58,0x7a,0x58,0x80,0x58,0x86,0x58,0x8c, +0x58,0x92,0x58,0x98,0x58,0x9e,0x58,0xa4,0x58,0xaa,0x58,0xb0,0x58,0xa4,0x58,0x98,0x58,0x9e,0x58,0xb6,0x58,0xbc,0x48,0x96,0x50,0x22,0x58,0xbc,0x48,0x96,0x57,0x5a,0x58,0xc2,0x58,0xc8,0x58,0xce,0x58,0xd4,0x58,0xda,0x58,0xe0,0x58,0xe6,0x58,0xec,0x58,0xf2,0x58,0xe6,0x58,0xf8,0x58,0xf2,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04, +0x59,0x0a,0x59,0x10,0x59,0x16,0x59,0x1c,0x59,0x22,0x59,0x28,0x59,0x2e,0x59,0x34,0x59,0x3a,0x59,0x40,0x59,0x46,0x59,0x4c,0x59,0x52,0x59,0x58,0x48,0xae,0x48,0xb4,0x59,0x5e,0x59,0x64,0x59,0x6a,0x59,0x70,0x59,0x76,0x59,0x7c,0x59,0x82,0x59,0x88,0x59,0x8e,0x59,0x94,0x59,0x9a,0x59,0xa0,0x48,0xd2,0x59,0xa6,0x59,0xac,0x59,0xb2, +0x59,0xb8,0x59,0xbe,0x58,0xf2,0x59,0xc4,0x59,0xca,0x59,0xd0,0x49,0x08,0x47,0xee,0x59,0xd6,0x49,0x08,0x47,0xee,0x59,0xdc,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe2,0x47,0xee,0x56,0x40,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x57,0xea,0x5a,0x06,0x5a,0x0c,0x5a,0x12,0x5a,0x18,0x48,0x24,0x5a,0x1e,0x5a,0x24, +0x5a,0x2a,0x58,0xe6,0x5a,0x30,0x58,0xf2,0x5a,0x36,0x5a,0x3c,0x5a,0x42,0x5a,0x48,0x5a,0x4e,0x5a,0x54,0x5a,0x5a,0x57,0xa2,0x4d,0x40,0x5a,0x60,0x5a,0x66,0x5a,0x6c,0x5a,0x72,0x5a,0x78,0x5a,0x7e,0x5a,0x84,0x5a,0x8a,0x51,0x7e,0x47,0xd6,0x5a,0x90,0x48,0x84,0x59,0xe8,0x59,0xee,0x59,0xf4,0x59,0xe8,0x59,0xfa,0x5a,0x00,0x5a,0x96, +0x5a,0x9c,0x5a,0xa2,0x5a,0x96,0x5a,0xa8,0x5a,0xae,0x5a,0x96,0x5a,0xb4,0x5a,0xba,0x5a,0xc0,0x5a,0xc6,0x5a,0xcc,0x5a,0xd2,0x5a,0xd8,0x5a,0xde,0x5a,0xe4,0x5a,0xea,0x5a,0xf0,0x5a,0xf6,0x53,0x64,0x5a,0xfc,0x5b,0x02,0x5b,0x08,0x5b,0x0e,0x5b,0x14,0x5b,0x1a,0x5b,0x20,0x5b,0x26,0x5b,0x2c,0x5b,0x32,0x5b,0x38,0x5b,0x2c,0x5b,0x32, +0x5b,0x3e,0x5b,0x44,0x48,0x42,0x5b,0x4a,0x5b,0x44,0x46,0xe6,0x5b,0x50,0x5b,0x56,0x5b,0x5c,0x5b,0x62,0x5b,0x68,0x50,0x22,0x5b,0x6e,0x5b,0x74,0x48,0x84,0x5b,0x7a,0x5b,0x80,0x5b,0x86,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x52,0x62,0x5b,0x8c,0x52,0x6e,0x5b,0x92,0x5b,0x98,0x5b,0x9e,0x5b,0xa4,0x5b,0xaa,0x5b,0xb0,0x5b,0xb6,0x5b,0xbc, +0x5b,0xc2,0x5b,0xc8,0x5b,0xce,0x5b,0xd4,0x5b,0xda,0x5b,0xe0,0x5b,0xe6,0x47,0x10,0x47,0x16,0x47,0x1c,0x5b,0xec,0x5b,0xf2,0x5b,0xf8,0x48,0x9c,0x48,0xa2,0x5b,0xfe,0x49,0x08,0x47,0xee,0x5c,0x04,0x5c,0x0a,0x5c,0x10,0x48,0xd2,0x47,0xd6,0x47,0xdc,0x47,0xe2,0x47,0xfa,0x48,0x00,0x48,0x06,0x48,0x12,0x46,0x80,0x48,0x18,0x48,0x54, +0x48,0x5a,0x48,0x60,0x48,0x66,0x48,0x6c,0x47,0x1c,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x48,0x36,0x5c,0x16,0x5c,0x1c,0x5c,0x22,0x48,0x9c,0x48,0xa2,0x48,0xa8,0x48,0xae,0x48,0xb4,0x48,0xba,0x49,0x08,0x47,0xee,0x49,0x0e,0x5c,0x28,0x5c,0x2e,0x56,0xee,0x5c,0x34,0x5c,0x3a,0x5c,0x40,0x5c,0x46,0x5c,0x4c,0x5c,0x52, +0x5c,0x58,0x5c,0x5e,0x5c,0x64,0x5c,0x6a,0x57,0xde,0x5c,0x70,0x4a,0xd6,0x5c,0x76,0x48,0x36,0x48,0x66,0x48,0x7e,0x48,0x84,0x5c,0x7c,0x5c,0x82,0x5c,0x88,0x59,0x76,0x59,0x7c,0x59,0x82,0x47,0xd6,0x47,0xdc,0x5c,0x8e,0x47,0xfa,0x48,0x00,0x5c,0x94,0x48,0x12,0x46,0x80,0x5c,0x9a,0x48,0x0c,0x48,0x1e,0x48,0x24,0x47,0xd6,0x48,0x48, +0x5c,0xa0,0x48,0x2a,0x48,0x4e,0x4d,0x76,0x48,0x54,0x48,0x5a,0x5c,0xa6,0x48,0x66,0x48,0x6c,0x5c,0xa0,0x48,0x66,0x48,0x7e,0x48,0x84,0x48,0x90,0x48,0x96,0x4d,0x76,0x48,0x9c,0x48,0xa2,0x58,0xfe,0x59,0x04,0x59,0x0a,0x59,0x10,0x48,0xc6,0x48,0xcc,0x5c,0xac,0x48,0xea,0x48,0xf0,0x5c,0xb2,0x49,0x08,0x47,0xee,0x5c,0xb8,0x47,0xc4, +0x47,0xca,0x4b,0xc0,0x48,0x66,0x48,0x8a,0x5c,0xa0,0x47,0xd6,0x5a,0x90,0x5c,0xa0,0x48,0x0c,0x47,0xca,0x4b,0xde,0x57,0x18,0x57,0x1e,0x5c,0xbe,0x57,0x2a,0x57,0x1e,0x5c,0xc4,0x48,0x0c,0x47,0xca,0x47,0xf4,0x48,0x2a,0x48,0x30,0x4d,0x76,0x5c,0xca,0x47,0xee,0x5c,0xd0,0x59,0x04,0x59,0x0a,0x59,0x10,0x47,0xe8,0x48,0xc0,0x4d,0xfa, +0x5c,0xd6,0x5c,0xdc,0x5c,0xe2,0x5c,0xe8,0x5c,0xee,0x5c,0xf4,0x5c,0xfa,0x5d,0x00,0x57,0xe4,0x46,0x6e,0x46,0x74,0x46,0x7a,0x46,0x92,0x47,0x46,0x47,0x88,0x46,0xfe,0x46,0x62,0x47,0x0a,0x46,0xa4,0x46,0xaa,0x5d,0x06,0x5d,0x0c,0x5d,0x12,0x4b,0xde,0x46,0xec,0x46,0xf2,0x46,0xf8,0x48,0x3c,0x48,0x30,0x48,0x42,0x5d,0x18,0x5d,0x1e, +0x5d,0x24,0x5d,0x2a,0x5d,0x30,0x5d,0x36,0x47,0x52,0x47,0x64,0x46,0x68,0x48,0x90,0x48,0x96,0x48,0x36,0x47,0xb8,0x47,0x04,0x47,0xbe,0x48,0xfc,0x48,0x7e,0x49,0x02,0x5d,0x3c,0x5d,0x42,0x5d,0x48,0x47,0x10,0x47,0x16,0x47,0x1c,0x5d,0x4e,0x48,0x4e,0x5d,0x54,0x47,0x10,0x47,0x16,0x47,0x1c,0x47,0x52,0x46,0x74,0x47,0x58,0x47,0x52, +0x47,0x64,0x5d,0x5a,0x5d,0x60,0x5d,0x66,0x4b,0xc0,0x5d,0x6c,0x5d,0x72,0x5d,0x78,0x48,0x66,0x5d,0x7e,0x47,0x1c,0x5d,0x84,0x5d,0x8a,0x5d,0x90,0x4a,0xd6,0x4a,0xdc,0x4d,0x76,0x00,0x02,0x00,0x0d,0x02,0x44,0x02,0x47,0x00,0x00,0x04,0x62,0x04,0x79,0x00,0x04,0x04,0x7b,0x04,0x7f,0x00,0x1c,0x04,0x82,0x04,0x84,0x00,0x21,0x04,0x87, +0x04,0x91,0x00,0x24,0x04,0x97,0x04,0x9d,0x00,0x2f,0x04,0xa0,0x04,0xac,0x00,0x36,0x05,0xfd,0x06,0x00,0x00,0x43,0x06,0x66,0x06,0x72,0x00,0x47,0x07,0x55,0x07,0x5c,0x00,0x54,0x07,0xed,0x07,0xef,0x00,0x5c,0x08,0x4c,0x08,0x4f,0x00,0x5f,0x0a,0xdb,0x0a,0xe3,0x00,0x63,0x00,0x02,0x00,0x36,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44, +0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77, +0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0x5a,0x00,0xff,0x02,0x6f,0x02,0x74,0x01,0x03,0x02,0x7f,0x02,0x86,0x01,0x09,0x02,0x9b,0x02,0x9e,0x01,0x11,0x02,0xa9,0x02,0xb0, +0x01,0x15,0x02,0xcd,0x02,0xce,0x01,0x1d,0x02,0xe1,0x02,0xea,0x01,0x1f,0x02,0xed,0x02,0xf6,0x01,0x29,0x02,0xfb,0x02,0xfe,0x01,0x33,0x03,0x01,0x03,0x10,0x01,0x37,0x03,0x13,0x03,0x2e,0x01,0x47,0x03,0x37,0x03,0x3e,0x01,0x63,0x03,0x41,0x03,0x5a,0x01,0x6b,0x03,0x5f,0x03,0x78,0x01,0x85,0x04,0xb0,0x04,0xe2,0x01,0x9f,0x04,0xe6, +0x04,0xe7,0x01,0xd2,0x04,0xe9,0x04,0xe9,0x01,0xd4,0x04,0xee,0x04,0xfe,0x01,0xd5,0x05,0x07,0x05,0x07,0x01,0xe6,0x05,0x0c,0x05,0x46,0x01,0xe7,0x05,0x4b,0x05,0x4c,0x02,0x22,0x05,0x4f,0x05,0x50,0x02,0x24,0x05,0x56,0x05,0xb2,0x02,0x26,0x06,0xac,0x06,0xad,0x02,0x83,0x07,0x3e,0x07,0x43,0x02,0x85,0x07,0xe1,0x07,0xe2,0x02,0x8b, +0x07,0xe4,0x07,0xeb,0x02,0x8d,0x07,0xf7,0x08,0x05,0x02,0x95,0x08,0x07,0x08,0x26,0x02,0xa4,0x0a,0x43,0x0a,0x43,0x02,0xc4,0x0a,0xbf,0x0a,0xcc,0x02,0xc5,0x0a,0xe5,0x0a,0xe5,0x02,0xd3,0x0a,0xe7,0x0a,0xed,0x02,0xd4,0x0a,0xf4,0x0a,0xf4,0x02,0xdb,0x0a,0xf7,0x0a,0xf7,0x02,0xdc,0x11,0x8c,0x11,0x8c,0x02,0xdd,0x00,0x01,0x00,0x98, +0x00,0xc0,0x00,0x02,0x00,0x0c,0x00,0x2e,0x00,0x08,0x00,0x00,0x4a,0xba,0x00,0x00,0x4a,0xc0,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xcc,0x00,0x01,0x4a,0xc6,0x00,0x00,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x01,0x4a,0xc6,0x00,0x1a,0x4a,0xb0,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc2,0x4a,0xc8,0x4a,0xc8,0x4a,0xce,0x4a,0xce, +0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x40,0xb4,0x40,0xb4,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40,0x4b,0x40,0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x5e,0x4b,0x64,0x4b,0x6a, +0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0x22,0x4b,0x22,0x00,0x02,0x00,0x06,0x02,0x46,0x02,0x47,0x00,0x00,0x04,0x63,0x04,0x64,0x00,0x02,0x04,0x66,0x04,0x66,0x00,0x04,0x04,0x6b,0x04,0x6b,0x00,0x05,0x04,0x6e,0x04,0x6e,0x00,0x06,0x04,0x70,0x04,0x70,0x00,0x07,0x00,0x02,0x00,0x12, +0x01,0xdb,0x01,0xdb,0x00,0x00,0x01,0xe5,0x01,0xe5,0x00,0x01,0x01,0xe7,0x01,0xe7,0x00,0x02,0x01,0xec,0x01,0xec,0x00,0x03,0x01,0xef,0x01,0xf0,0x00,0x04,0x01,0xf5,0x01,0xf5,0x00,0x06,0x01,0xfa,0x01,0xfa,0x00,0x07,0x02,0x02,0x02,0x02,0x00,0x08,0x02,0x04,0x02,0x07,0x00,0x09,0x02,0x0c,0x02,0x0c,0x00,0x0d,0x02,0x0f,0x02,0x10, +0x00,0x0e,0x02,0x15,0x02,0x15,0x00,0x10,0x02,0x1a,0x02,0x1a,0x00,0x11,0x02,0x22,0x02,0x22,0x00,0x12,0x02,0x24,0x02,0x27,0x00,0x13,0x02,0x31,0x02,0x31,0x00,0x17,0x02,0xcd,0x02,0xcd,0x00,0x18,0x05,0x07,0x05,0x07,0x00,0x19,0x00,0x01,0x00,0xd8,0x00,0xde,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x92,0x00,0x62, +0x4a,0x92,0x4a,0x98,0x4a,0x9e,0x4a,0xa4,0x4a,0xaa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x4a,0xc2,0x4a,0xc8,0x4a,0xce,0x4a,0xd4,0x4a,0xda,0x4a,0xe0,0x4a,0xe6,0x4a,0xec,0x4a,0xe6,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x4b,0x10,0x42,0x52,0x4b,0x16,0x4b,0x1c,0x4b,0x22,0x4b,0x28,0x4b,0x2e,0x4b,0x34,0x4b,0x3a,0x4b,0x40, +0x4b,0x46,0x4b,0x4c,0x4b,0x52,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6,0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x22,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x3a,0x4b,0x52,0x4b,0x52, +0x4b,0x52,0x4b,0x52,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x76,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0x9a,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xb2,0x4b,0xd0,0x4b,0xb2,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4b,0x76,0x4c,0x1e,0x4c,0x24, +0x4c,0x2a,0x4c,0x30,0x00,0x01,0x00,0x01,0x06,0x9b,0x00,0x02,0x00,0x16,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x69,0x00,0x6e,0x00,0x34,0x00,0x70,0x00,0x77,0x00,0x3a,0x00,0x79,0x00,0x81,0x00,0x42,0x00,0xa0,0x00,0xa1,0x00,0x4b,0x00,0xb1,0x00,0xb1,0x00,0x4d,0x00,0xba,0x00,0xba,0x00,0x4e,0x00,0xd6, +0x00,0xd6,0x00,0x4f,0x00,0xeb,0x00,0xeb,0x00,0x50,0x05,0x07,0x05,0x07,0x00,0x51,0x05,0x56,0x05,0x58,0x00,0x52,0x05,0x5a,0x05,0x5a,0x00,0x55,0x05,0x5e,0x05,0x5e,0x00,0x56,0x05,0x60,0x05,0x61,0x00,0x57,0x05,0x63,0x05,0x63,0x00,0x59,0x05,0x69,0x05,0x69,0x00,0x5a,0x05,0x6d,0x05,0x6d,0x00,0x5b,0x05,0x6f,0x05,0x6f,0x00,0x5c, +0x05,0x7a,0x05,0x7b,0x00,0x5d,0x05,0x8e,0x05,0x8f,0x00,0x5f,0x05,0x91,0x05,0x91,0x00,0x61,0x00,0x01,0x00,0x9c,0x00,0xa6,0x00,0x01,0x00,0x0c,0x00,0x22,0x00,0x05,0x00,0x00,0x4a,0xd6,0x00,0x00,0x4a,0xd6,0x00,0x00,0x26,0xc4,0x00,0x00,0x4a,0xdc,0x00,0x00,0x4a,0xe2,0x00,0x3c,0x4a,0xd2,0x4a,0xd8,0x4a,0xde,0x4a,0xe4,0x4a,0xea, +0x4a,0xf0,0x4a,0xf6,0x4a,0xfc,0x4b,0x02,0x4b,0x08,0x4b,0x0e,0x4b,0x14,0x4b,0x1a,0x4b,0x20,0x4b,0x26,0x4b,0x2c,0x4b,0x32,0x4b,0x2c,0x4b,0x38,0x4b,0x3e,0x4b,0x44,0x4b,0x4a,0x4b,0x50,0x4b,0x56,0x4b,0x5c,0x4b,0x62,0x4b,0x68,0x4b,0x6e,0x4b,0x74,0x4b,0x7a,0x4b,0x80,0x4b,0x86,0x4b,0x8c,0x4b,0x92,0x4b,0x98,0x4b,0x9e,0x4b,0xa4, +0x4b,0xaa,0x4b,0xb0,0x4b,0xb6,0x4b,0xbc,0x4b,0xc2,0x4b,0xc8,0x4b,0xce,0x4b,0xd4,0x4b,0xda,0x4b,0xe0,0x4b,0xe6,0x4b,0xec,0x4b,0xf2,0x4b,0xf8,0x4b,0xfe,0x4c,0x04,0x4c,0x0a,0x4c,0x10,0x4c,0x16,0x4c,0x1c,0x4c,0x22,0x4c,0x28,0x4c,0x2e,0x00,0x02,0x00,0x01,0x04,0x92,0x04,0x96,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x24,0x00,0x3d, +0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x79,0x00,0x79,0x00,0x34,0x00,0xd0,0x00,0xd0,0x00,0x35,0x00,0xe4,0x00,0xe4,0x00,0x36,0x00,0xe6,0x00,0xe6,0x00,0x37,0x00,0xe9,0x00,0xe9,0x00,0x38,0x05,0x83,0x05,0x83,0x00,0x39,0x05,0x88,0x05,0x88,0x00,0x3a,0x05,0x97,0x05,0x97,0x00,0x3b,0x00,0x01,0x0c,0xf8,0x0d,0x0e,0x00,0x02, +0x00,0x0c,0x00,0x2a,0x00,0x07,0x00,0x00,0x4b,0x64,0x00,0x00,0x4b,0x6a,0x00,0x01,0x2f,0x68,0x00,0x00,0x4b,0x6a,0x00,0x00,0x4b,0x6a,0x00,0x01,0x4b,0x70,0x00,0x01,0x2f,0x8c,0x03,0x33,0x4b,0x58,0x4b,0x5e,0x4b,0x64,0x4b,0x6a,0x4b,0x70,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4b,0x94,0x4b,0x9a,0x4b,0xa0,0x4b,0xa6, +0x4b,0xac,0x4b,0xb2,0x4b,0xb8,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4b,0xd6,0x4b,0xdc,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4b,0xf4,0x4b,0xfa,0x4c,0x00,0x4c,0x06,0x4c,0x0c,0x4c,0x12,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a,0x4c,0x30,0x4c,0x36,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4c,0x4e,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66, +0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4c,0x96,0x4c,0x9c,0x4c,0xa2,0x4c,0xa8,0x4c,0xae,0x4c,0xb4,0x4c,0xba,0x4c,0xc0,0x4c,0xc6,0x4c,0xcc,0x4c,0xd2,0x4c,0xb4,0x4c,0xba,0x4c,0xd8,0x4c,0xde,0x4c,0xe4,0x4c,0xea,0x4c,0xe4,0x4c,0xea,0x4c,0xd8,0x4c,0xde,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02, +0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4c,0x9c,0x4c,0xa2,0x4c,0xb4,0x4c,0xba,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4d,0x2c,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x4d,0x50,0x4d,0x56,0x4d,0x5c,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4b,0x70,0x4b,0x76, +0x4b,0x88,0x4b,0x8e,0x4d,0x86,0x4b,0xfa,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x4c,0xa8,0x4c,0xae,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4c,0xc0,0x4c,0xc6,0x4d,0x98,0x4d,0x9e, +0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x4d,0xb6,0x4d,0xbc,0x4d,0xc2,0x4c,0xd8,0x4c,0xde,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x08,0x4d,0x0e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0x38,0x4d,0x3e,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x4d,0xda,0x4c,0x00,0x4c,0x06, +0x4d,0xe0,0x4d,0xe6,0x4d,0xec,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4d,0x80,0x4b,0x5e,0x4d,0x80,0x4b,0x5e,0x4d,0x8c,0x4c,0x06,0x4e,0x04,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4d,0x68,0x4d,0x6e,0x4c,0x78,0x4c,0x7e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4d,0x80,0x4b,0x5e,0x4e,0x1c,0x4b,0x8e,0x4e,0x1c,0x4b,0x8e,0x4e,0x22,0x4e,0x28, +0x4e,0x2e,0x4e,0x34,0x4e,0x3a,0x4e,0x40,0x4e,0x46,0x4b,0xbe,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x8c,0x4c,0x06,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4d,0x92,0x4c,0x4e,0x4c,0xf0,0x4c,0xf6,0x4b,0xdc,0x4b,0xe2,0x4e,0x4c,0x4e,0x52,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a, +0x4b,0x7c,0x4b,0x82,0x4e,0x64,0x4e,0x6a,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4c,0x0c,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xb8,0x4b,0xbe,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4b,0x70,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4e,0x82,0x4e,0x88, +0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x8e,0x4b,0x82,0x4e,0x94,0x4e,0x9a,0x4b,0x7c,0x4b,0x82,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0xa0,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x4b,0xdc,0x4b,0xe2,0x4e,0xb2,0x4e,0xb8,0x4b,0xdc,0x4b,0xe2, +0x4e,0xbe,0x4e,0xc4,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4e,0xd0,0x4e,0xd6,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4e,0xdc,0x4e,0xe2,0x4e,0xe8,0x4c,0x42, +0x4e,0xee,0x4e,0xf4,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4e,0xfa,0x4f,0x00,0x4f,0x06,0x4f,0x0c,0x4f,0x12,0x4f,0x18,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, +0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4b,0xa0,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde, +0x4f,0x2a,0x4f,0x30,0x4c,0xd8,0x4c,0xde,0x4f,0x36,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4f,0x66,0x4f,0x6c,0x4f,0x72,0x4f,0x78,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4f,0x7e,0x4f,0x84,0x4f,0x4e,0x4f,0x54,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2, +0x4d,0x98,0x4d,0x9e,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4d,0x92,0x4c,0x4e, +0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x8a,0x4f,0x90,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56, +0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0xb4,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xcc,0x4f,0xd2,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, +0x4d,0x80,0x4b,0x5e,0x4f,0xd8,0x4f,0xde,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4f,0xe4,0x4c,0x96,0x4d,0x80,0x4b,0x5e,0x4c,0x90,0x4c,0x96, +0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4f,0xea,0x4f,0xf0,0x4f,0xf6,0x4f,0xfc,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x02,0x50,0x08,0x50,0x0e,0x50,0x14,0x4e,0x1c,0x4b,0x8e,0x50,0x1a,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, +0x4e,0x46,0x4b,0xbe,0x50,0x20,0x50,0x26,0x4b,0xb8,0x4b,0xbe,0x4c,0xe4,0x4c,0xea,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4e,0x82,0x4e,0x88,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x50,0x32,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4f,0x9c,0x4f,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, +0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x50,0x38,0x4f,0xba,0x4f,0xc0,0x4f,0xc6,0x4c,0x78,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, +0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x50,0x3e,0x50,0x44,0x50,0x4a,0x50,0x50,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x58,0x4b,0x5e,0x4c,0x90,0x4c,0x96,0x50,0x56,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4b,0x64,0x4b,0x6a,0x4c,0x9c,0x4c,0xa2,0x4e,0x7c,0x4b,0x76,0x4c,0xa8,0x4c,0xae, +0x4e,0x8e,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4b,0x7c,0x4b,0x82,0x4c,0xb4,0x4c,0xba,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6, +0x4b,0x88,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x50,0x5c,0x4b,0x9a,0x50,0x62,0x4c,0xd2,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x4f,0x1e,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde, +0x4b,0xac,0x4b,0xb2,0x4c,0xd8,0x4c,0xde,0x50,0x68,0x50,0x6e,0x50,0x74,0x50,0x7a,0x50,0x80,0x50,0x86,0x50,0x8c,0x50,0x92,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x4b,0xdc,0x4b,0xe2,0x50,0x9e,0x50,0xa4,0x4e,0xa0,0x4b,0xe2,0x50,0xaa,0x50,0xb0, +0x4b,0xdc,0x4b,0xe2,0x50,0xb6,0x50,0xbc,0x4b,0xdc,0x4b,0xe2,0x4e,0xa6,0x4e,0xac,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x50,0xc2,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4b,0xe8,0x4b,0xee,0x4c,0xfc,0x4d,0x02,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde, +0x4b,0xf4,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x50,0x2c,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x50,0xc8,0x4c,0x12,0x4c,0x9c,0x4c,0xa2,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a, +0x4c,0x24,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4c,0x24,0x4c,0x2a,0x50,0xce,0x50,0xd4,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4c,0x30,0x4c,0x36,0x4d,0x20,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x50,0xda,0x4d,0x26,0x4e,0x58,0x4c,0x36,0x4d,0x20,0x4d,0x26, +0x4e,0xe8,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x50,0xe0,0x50,0xe6,0x4c,0x3c,0x4c,0x42,0x50,0xec,0x50,0xf2,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4c,0x48,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e, +0x4d,0x92,0x4c,0x4e,0x50,0xf8,0x4d,0x3e,0x50,0xfe,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4c,0x54,0x4c,0x5a,0x4d,0x44,0x4d,0x4a,0x4f,0x96,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x4c,0x60,0x4c,0x66,0x4d,0x50,0x4d,0x56,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x51,0x04,0x4c,0x72,0x4d,0x5c,0x4d,0x62,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e, +0x4e,0x5e,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x4c,0xd8,0x4c,0xde,0x4d,0x2c,0x4d,0x32,0x4d,0x50,0x4d,0x56,0x4d,0x68,0x4d,0x6e,0x4c,0x90,0x4c,0x96,0x51,0x0a,0x4f,0x90,0x4c,0x9c,0x4c,0xa2,0x51,0x10,0x51,0x16,0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2, +0x51,0x1c,0x51,0x22,0x4c,0x9c,0x4c,0xa2,0x4e,0x82,0x4e,0x88,0x51,0x28,0x51,0x2e,0x51,0x34,0x51,0x3a,0x4b,0x7c,0x4b,0x82,0x51,0x40,0x51,0x46,0x51,0x4c,0x51,0x52,0x51,0x34,0x51,0x3a,0x51,0x58,0x51,0x5e,0x51,0x64,0x51,0x6a,0x51,0x70,0x51,0x76,0x4b,0x94,0x4b,0x9a,0x51,0x7c,0x51,0x82,0x4c,0x54,0x4c,0x5a,0x51,0x88,0x51,0x8e, +0x51,0x94,0x51,0x9a,0x4d,0xbc,0x4d,0xc2,0x4b,0xd0,0x4b,0xd6,0x4c,0xd8,0x4c,0xde,0x51,0xa0,0x51,0xa6,0x51,0xac,0x51,0xb2,0x51,0xb8,0x51,0xbe,0x51,0x28,0x51,0x2e,0x4c,0xd8,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x51,0xc4,0x51,0xca,0x51,0xd0,0x51,0xd6,0x51,0xdc,0x51,0xe2,0x4c,0x9c,0x4c,0xa2,0x51,0xe8,0x51,0xee,0x51,0xf4,0x51,0xfa, +0x52,0x00,0x52,0x06,0x52,0x0c,0x52,0x12,0x4e,0xbe,0x4e,0xc4,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x4d,0x2c,0x4d,0x32,0x4c,0x3c,0x4c,0x42,0x52,0x18,0x52,0x1e,0x52,0x24,0x52,0x2a,0x52,0x30,0x52,0x36,0x4c,0x78,0x4c,0x7e,0x4c,0x84,0x4c,0x8a,0x4d,0x74,0x4d,0x7a,0x52,0x3c,0x52,0x42,0x52,0x48,0x52,0x4e,0x52,0x54,0x52,0x5a, +0x52,0x60,0x52,0x66,0x52,0x6c,0x52,0x72,0x52,0x78,0x52,0x7e,0x52,0x84,0x52,0x8a,0x52,0x90,0x52,0x96,0x52,0x9c,0x52,0xa2,0x52,0xa8,0x52,0xae,0x52,0xb4,0x52,0xba,0x52,0xc0,0x52,0xc6,0x52,0xcc,0x52,0xd2,0x52,0xd8,0x52,0xde,0x52,0xe4,0x52,0xea,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x52,0xfc,0x53,0x02,0x53,0x08,0x53,0x0e, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x50,0x4a,0x50,0x50,0x53,0x14,0x4d,0xda,0x53,0x1a,0x53,0x20,0x53,0x26,0x53,0x2c,0x53,0x32,0x53,0x38,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x50,0x98,0x4b,0xd6,0x4f,0x24,0x4c,0xde,0x4c,0x00,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06, +0x4d,0x08,0x4d,0x0e,0x53,0x3e,0x52,0x42,0x53,0x44,0x53,0x4a,0x4d,0xbc,0x4d,0xc2,0x53,0x50,0x52,0x8a,0x53,0x56,0x53,0x5c,0x53,0x62,0x53,0x68,0x4e,0x76,0x4b,0xa6,0x4c,0xb4,0x4c,0xba,0x53,0x6e,0x53,0x74,0x53,0x7a,0x53,0x80,0x4d,0x86,0x4b,0xfa,0x4c,0xd8,0x4c,0xde,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6,0x4d,0x80,0x4b,0x5e, +0x52,0xf0,0x52,0xf6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x1c,0x4b,0x8e,0x4c,0xc0,0x4c,0xc6,0x4e,0x46,0x4b,0xbe,0x53,0x86,0x53,0x8c,0x53,0x92,0x53,0x98,0x53,0x9e,0x53,0xa4,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0xca,0x4c,0x2a,0x4d,0x14,0x4d,0x1a,0x4e,0xca,0x4c,0x2a, +0x53,0xaa,0x53,0xb0,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x92,0x4c,0x4e,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x4d,0x4a,0x53,0xb6,0x53,0xbc,0x4f,0x1e,0x4b,0xb2,0x4f,0x24,0x4c,0xde,0x53,0x7a,0x53,0x80,0x51,0x10,0x51,0x16,0x53,0xc2,0x53,0xc8,0x51,0xdc,0x51,0xe2,0x53,0xce,0x53,0xd4,0x4d,0x80,0x4b,0x5e,0x52,0xf0,0x52,0xf6, +0x4d,0x8c,0x4c,0x06,0x4d,0x08,0x4d,0x0e,0x4e,0x70,0x4c,0x7e,0x4d,0x68,0x4d,0x6e,0x4d,0xf8,0x4d,0xfe,0x4c,0xb4,0x4c,0xba,0x4c,0x9c,0x4c,0xa2,0x53,0xda,0x53,0xe0,0x53,0xe6,0x53,0xec,0x53,0xf2,0x53,0xf8,0x53,0xfe,0x54,0x04,0x53,0xfe,0x54,0x04,0x50,0x4a,0x50,0x50,0x54,0x0a,0x54,0x10,0x54,0x16,0x54,0x1c,0x54,0x22,0x54,0x28, +0x54,0x2e,0x54,0x34,0x4c,0x3c,0x4c,0x42,0x54,0x3a,0x54,0x40,0x53,0xfe,0x54,0x04,0x4c,0xb4,0x4c,0xba,0x54,0x46,0x54,0x4c,0x54,0x52,0x54,0x58,0x53,0xce,0x53,0xd4,0x4d,0x38,0x4d,0x3e,0x4c,0xd8,0x4c,0xde,0x4c,0xd8,0x4c,0xde,0x54,0x5e,0x54,0x64,0x54,0x6a,0x54,0x70,0x54,0x76,0x54,0x7c,0x54,0x82,0x54,0x88,0x54,0x22,0x54,0x28, +0x54,0x8e,0x54,0x94,0x54,0x9a,0x54,0xa0,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xfc,0x4d,0x02,0x4c,0xd8,0x4c,0xde,0x54,0xa6,0x54,0xac,0x54,0xb2,0x54,0xb8,0x4d,0x08,0x4d,0x0e,0x54,0xbe,0x54,0xc4,0x54,0xca,0x54,0xd0,0x54,0xd6,0x54,0xdc,0x54,0xe2,0x4f,0x6c,0x54,0xe2,0x4f,0x6c,0x54,0xe8,0x54,0xee,0x4d,0x14,0x4d,0x1a, +0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x55,0x00,0x55,0x06,0x4c,0x90,0x4c,0x96,0x4c,0x90,0x4c,0x96,0x55,0x0c,0x55,0x12,0x55,0x18,0x55,0x1e,0x55,0x24,0x55,0x2a,0x55,0x30,0x55,0x36,0x55,0x3c,0x55,0x42,0x55,0x3c,0x55,0x42,0x4d,0x2c,0x4d,0x32,0x55,0x48,0x55,0x4e,0x51,0xe8,0x51,0xee,0x52,0x78,0x52,0x7e,0x52,0x54,0x52,0x5a, +0x4d,0x50,0x4d,0x56,0x55,0x54,0x55,0x5a,0x55,0x60,0x55,0x66,0x55,0x6c,0x55,0x72,0x55,0x78,0x55,0x7e,0x53,0x44,0x53,0x4a,0x55,0x84,0x55,0x8a,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x55,0xa8,0x55,0xae,0x55,0xb4,0x55,0xba,0x55,0xc0,0x55,0xc6,0x55,0xcc,0x55,0xd2,0x55,0xd8,0x55,0xde,0x4c,0x9c,0x4c,0xa2,0x4d,0x38,0x4d,0x3e, +0x55,0xe4,0x4e,0x40,0x55,0xea,0x55,0xf0,0x55,0xf6,0x55,0xfc,0x53,0xfe,0x54,0x04,0x55,0x90,0x55,0x96,0x55,0x9c,0x55,0xa2,0x56,0x02,0x56,0x08,0x56,0x0e,0x56,0x14,0x56,0x1a,0x56,0x20,0x56,0x26,0x56,0x2c,0x56,0x32,0x56,0x38,0x4c,0x00,0x4c,0x06,0x56,0x3e,0x56,0x44,0x4d,0x08,0x4d,0x0e,0x4c,0x78,0x4c,0x7e,0x56,0x4a,0x56,0x50, +0x55,0xcc,0x55,0xd2,0x4c,0xf0,0x4c,0xf6,0x54,0x5e,0x54,0x64,0x56,0x56,0x56,0x5c,0x55,0xea,0x55,0xf0,0x56,0x62,0x56,0x68,0x55,0x84,0x55,0x8a,0x52,0x78,0x52,0x7e,0x53,0x7a,0x53,0x80,0x56,0x6e,0x56,0x74,0x56,0x6e,0x56,0x74,0x4b,0x58,0x4b,0x5e,0x56,0x7a,0x56,0x80,0x56,0x86,0x56,0x8c,0x4b,0xdc,0x4b,0xe2,0x56,0x92,0x56,0x98, +0x4d,0x20,0x4d,0x26,0x4d,0x74,0x4d,0x7a,0x56,0x9e,0x56,0xa4,0x4c,0x9c,0x4c,0xa2,0x56,0xaa,0x56,0xb0,0x4c,0xcc,0x4c,0xd2,0x52,0xd8,0x52,0xde,0x56,0xb6,0x56,0xbc,0x4c,0x9c,0x4c,0xa2,0x4d,0x14,0x4d,0x1a,0x54,0xf4,0x54,0xfa,0x56,0xc2,0x56,0xc8,0x4d,0x2c,0x4d,0x32,0x4d,0x74,0x4d,0x7a,0x53,0xda,0x53,0xe0,0x56,0xce,0x56,0xd4, +0x56,0xda,0x56,0xe0,0x56,0xe6,0x56,0xec,0x56,0xf2,0x56,0xf8,0x56,0xfe,0x57,0x04,0x4c,0x48,0x4c,0x4e,0x57,0x0a,0x57,0x10,0x57,0x16,0x57,0x1c,0x4c,0x9c,0x4c,0xa2,0x4f,0xa8,0x4f,0xae,0x4c,0xcc,0x4c,0xd2,0x57,0x22,0x57,0x28,0x57,0x2e,0x57,0x34,0x57,0x3a,0x57,0x40,0x57,0x46,0x57,0x4c,0x57,0x52,0x57,0x58,0x4c,0x9c,0x4c,0xa2, +0x4d,0x14,0x4d,0x1a,0x57,0x5e,0x57,0x64,0x57,0x6a,0x57,0x70,0x57,0x76,0x57,0x7c,0x4d,0x5c,0x4d,0x62,0x4d,0x74,0x4d,0x7a,0x57,0x82,0x57,0x88,0x57,0x8e,0x57,0x94,0x53,0xfe,0x54,0x04,0x57,0x9a,0x57,0xa0,0x4c,0x0c,0x4c,0x12,0x57,0xa6,0x57,0xac,0x57,0xb2,0x57,0xb8,0x57,0xbe,0x57,0xc4,0x53,0xe6,0x53,0xec,0x55,0x18,0x55,0x1e, +0x57,0xca,0x57,0xd0,0x53,0x44,0x53,0x4a,0x57,0xd6,0x57,0xdc,0x54,0x16,0x54,0x1c,0x4d,0xec,0x4d,0xf2,0x57,0xe2,0x57,0xe8,0x57,0xee,0x57,0xf4,0x4c,0x3c,0x4c,0x42,0x4b,0x64,0x4b,0x6a,0x55,0x0c,0x55,0x12,0x4b,0xb8,0x4b,0xbe,0x57,0xfa,0x58,0x00,0x53,0x32,0x53,0x38,0x56,0x92,0x56,0x98,0x58,0x06,0x58,0x0c,0x58,0x12,0x58,0x18, +0x51,0xac,0x51,0xb2,0x58,0x1e,0x58,0x24,0x58,0x2a,0x58,0x30,0x58,0x36,0x58,0x3c,0x58,0x42,0x58,0x48,0x51,0xdc,0x51,0xe2,0x56,0x92,0x56,0x98,0x58,0x4e,0x58,0x54,0x58,0x5a,0x58,0x60,0x58,0x66,0x58,0x6c,0x58,0x72,0x58,0x78,0x4c,0xf0,0x4c,0xea,0x00,0x02,0x00,0x03,0x04,0xad,0x04,0xaf,0x00,0x00,0x07,0x5d,0x07,0x5f,0x00,0x03, +0x07,0xf0,0x07,0xf0,0x00,0x06,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f, +0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce, +0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e, +0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31, +0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0xa4,0x00,0xaa,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x8e,0x00,0x48,0x4a,0x8e,0x4a,0x94,0x4a,0x9a,0x4a,0xa0,0x4a,0xa6,0x4a,0xa6,0x4a,0xac,0x4a,0xb2,0x4a,0xb8,0x4a,0xbe,0x4a,0xc4,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x4a,0xe2,0x4a,0xdc,0x4a,0xe8,0x4a,0xee, +0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x3a,0xbc,0x3a,0xbc,0x3a,0xbc,0x4b,0x0c,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x4b,0x24,0x4b,0x2a,0x4b,0x30,0x4b,0x36,0x4b,0x3c,0x4b,0x42,0x4b,0x48,0x4b,0x4e,0x4b,0x54,0x4b,0x5a,0x4b,0x60,0x4b,0x66,0x4b,0x6c,0x4b,0x72,0x4b,0x78,0x4b,0x7e,0x4b,0x84,0x4b,0x8a,0x4b,0x90,0x4b,0x96,0x4b,0x9c, +0x4b,0xa2,0x4b,0x60,0x4b,0x60,0x4b,0x60,0x4b,0x84,0x4b,0x84,0x4a,0xdc,0x4a,0xdc,0x4a,0xdc,0x4a,0xfa,0x4a,0xfa,0x4a,0xfa,0x4b,0x84,0x4a,0xdc,0x4b,0x60,0x4a,0xdc,0x4b,0x60,0x4a,0xfa,0x4b,0x84,0x4a,0xfa,0x4b,0x84,0x00,0x01,0x00,0x01,0x04,0x7a,0x00,0x02,0x00,0x0b,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a, +0x00,0x79,0x00,0x7a,0x00,0x34,0x00,0x7d,0x00,0x7f,0x00,0x36,0x00,0xaf,0x00,0xaf,0x00,0x39,0x00,0xd0,0x00,0xd0,0x00,0x3a,0x00,0xd2,0x00,0xd3,0x00,0x3b,0x00,0xd5,0x00,0xd5,0x00,0x3d,0x01,0x78,0x01,0x79,0x00,0x3e,0x02,0x83,0x02,0x86,0x00,0x40,0x02,0x9b,0x02,0x9e,0x00,0x44,0x00,0x01,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x0c, +0x00,0x12,0x00,0x01,0x00,0x00,0x1e,0xc0,0x00,0x22,0x4a,0xb8,0x4a,0xbe,0x17,0x16,0x2b,0x02,0x19,0xec,0x4a,0xc4,0x18,0x30,0x4a,0xca,0x4a,0xd0,0x4a,0xd6,0x4a,0xdc,0x17,0x70,0x4a,0xe2,0x23,0xb2,0x4a,0xe8,0x4a,0xee,0x4a,0xf4,0x4a,0xfa,0x4b,0x00,0x4b,0x06,0x4b,0x0c,0x21,0x54,0x4b,0x12,0x4b,0x18,0x4b,0x1e,0x32,0xe8,0x4b,0x06, +0x4b,0x06,0x32,0xe8,0x32,0xe8,0x19,0xec,0x4a,0xe2,0x4a,0xe2,0x4b,0x06,0x00,0x01,0x00,0x01,0x04,0x85,0x00,0x02,0x00,0x17,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x26,0x00,0x26,0x00,0x01,0x00,0x28,0x00,0x28,0x00,0x02,0x00,0x2a,0x00,0x2a,0x00,0x03,0x00,0x2c,0x00,0x2c,0x00,0x04,0x00,0x2e,0x00,0x2f,0x00,0x05,0x00,0x31,0x00,0x32, +0x00,0x07,0x00,0x35,0x00,0x38,0x00,0x09,0x00,0x44,0x00,0x44,0x00,0x0d,0x00,0x46,0x00,0x46,0x00,0x0e,0x00,0x48,0x00,0x48,0x00,0x0f,0x00,0x4a,0x00,0x4a,0x00,0x10,0x00,0x4c,0x00,0x4c,0x00,0x11,0x00,0x4e,0x00,0x4f,0x00,0x12,0x00,0x51,0x00,0x52,0x00,0x14,0x00,0x55,0x00,0x58,0x00,0x16,0x00,0x74,0x00,0x74,0x00,0x1a,0x00,0x76, +0x00,0x76,0x00,0x1b,0x00,0x7e,0x00,0x7e,0x00,0x1c,0x00,0x80,0x00,0x80,0x00,0x1d,0x00,0xcd,0x00,0xcd,0x00,0x1e,0x00,0xd3,0x00,0xd4,0x00,0x1f,0x01,0x0f,0x01,0x0f,0x00,0x21,0x00,0x01,0x06,0x78,0x06,0x7e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x4a,0x3e,0x03,0x32,0x4a,0x3e,0x4a,0x44,0x4a,0x4a,0x4a,0x44,0x1d,0x98, +0x4a,0x50,0x4a,0x56,0x4a,0x5c,0x4a,0x50,0x4a,0x62,0x4a,0x68,0x4a,0x6e,0x4a,0x74,0x4a,0x7a,0x4a,0x80,0x4a,0x50,0x4a,0x86,0x4a,0x8c,0x4a,0x92,0x4a,0x98,0x1d,0x98,0x16,0x2a,0x4a,0x9e,0x4a,0x68,0x4a,0xa4,0x4a,0xaa,0x1b,0xfa,0x4a,0xb0,0x4a,0xb6,0x4a,0xbc,0x16,0x7e,0x19,0x24,0x4a,0xc2,0x4a,0xc8,0x4a,0x50,0x4a,0xce,0x4a,0xd4, +0x19,0x12,0x4a,0xda,0x4a,0xc8,0x16,0x7e,0x4a,0xe0,0x4a,0xe6,0x19,0x12,0x4a,0x98,0x4a,0xec,0x4a,0xf2,0x4a,0xf8,0x4a,0xfe,0x4b,0x04,0x4b,0x0a,0x16,0x7e,0x4a,0x3e,0x4a,0x3e,0x4b,0x10,0x1d,0x98,0x4b,0x16,0x4a,0x80,0x1d,0x98,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x1b,0xfa,0x4b,0x1c,0x16,0x7e,0x16,0x7e,0x16,0x7e, +0x16,0x7e,0x19,0x12,0x19,0x12,0x19,0x12,0x19,0x12,0x4a,0xc8,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x16,0x7e,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x4a,0xf2,0x17,0xe0,0x4a,0xda,0x4a,0x80,0x4b,0x22,0x16,0x7e,0x4b,0x28,0x4a,0x3e,0x4a,0x3e,0x4a,0x80,0x4b,0x2e,0x4b,0x34,0x4b,0x0a,0x4a,0xa4,0x4a,0x3e,0x1d,0x98,0x4a,0x3e,0x1d,0x98, +0x1d,0x98,0x4a,0x50,0x19,0x24,0x4a,0x50,0x4b,0x3a,0x4a,0x80,0x4a,0x80,0x4a,0x80,0x1d,0x98,0x1d,0x98,0x1d,0x98,0x19,0x12,0x4a,0x6e,0x4a,0x62,0x4a,0x92,0x4a,0x98,0x4a,0xaa,0x16,0x7e,0x4b,0x40,0x4b,0x46,0x4a,0xa4,0x4b,0x0a,0x19,0x36,0x4b,0x4c,0x4a,0x56,0x4a,0xc2,0x4a,0x50,0x4b,0x52,0x4b,0x58,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a, +0x4a,0xb6,0x4a,0xbc,0x4a,0x3e,0x1b,0xfa,0x4b,0x5e,0x29,0x80,0x4a,0x44,0x4a,0xbc,0x4a,0x44,0x4b,0x64,0x4b,0x6a,0x1d,0x98,0x16,0x7e,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x6e,0x19,0x12,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xc8,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x19,0x12,0x4a,0x92,0x4a,0x98,0x47,0x32, +0x4b,0x70,0x4a,0x98,0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4a,0xaa,0x16,0x7e,0x4a,0xaa,0x16,0x7e,0x4b,0x76,0x4b,0x7c,0x4b,0x82,0x4a,0x3e,0x1b,0xfa,0x4a,0x4a,0x4a,0xb6,0x4a,0x4a,0x4a,0xb6,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4b,0x88,0x4a,0xc2, +0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x4a,0xc8,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x50,0x4b,0x8e,0x2c,0x50,0x4b,0x94,0x4a,0x62,0x4a,0xce,0x4a,0x68,0x1d,0xda,0x16,0x4e,0x4b,0x1c,0x4b,0x9a,0x4a,0x7a,0x4a,0xaa,0x4b,0xa0,0x4b,0xa6,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c,0x4b,0x8e,0x4a,0x92,0x4a,0x98,0x4a,0x98, +0x4a,0xec,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0x64,0x4b,0xac,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x19,0x12,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4a,0xfe,0x4a,0xa4,0x4b,0x0a,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa, +0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x4b,0xb2,0x1c,0x8a,0x4b,0xb8,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e, +0x1c,0x8a,0x4b,0xb8,0x19,0x36,0x19,0x12,0x4b,0xbe,0x4b,0xc4,0x4b,0xca,0x4b,0xd0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xd6,0x4b,0xdc,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4b,0xe2,0x4b,0xe8,0x4b,0xee,0x4a,0xbc, +0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x4b,0xf4,0x4a,0xbc,0x4b,0xfa,0x4c,0x00,0x4a,0xa4,0x4b,0x0a,0x4a,0xa4,0x4b,0x0a,0x4c,0x06,0x4c,0x0c,0x4a,0xf2,0x16,0x2a,0x3e,0x62,0x4c,0x12,0x4a,0x3e,0x4a,0xd4,0x4a,0x44,0x4a,0xb0,0x4c,0x18,0x4c,0x1e,0x4c,0x24,0x4c,0x2a, +0x42,0xa0,0x4c,0x30,0x4a,0x44,0x4a,0xbc,0x4c,0x36,0x4a,0xaa,0x4c,0x3c,0x4c,0x42,0x4c,0x48,0x4a,0xaa,0x4c,0x4e,0x23,0x32,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4c,0x54,0x4c,0x54,0x4c,0x5a,0x4c,0x60,0x4c,0x66,0x4c,0x12,0x19,0x36,0x19,0x24,0x4a,0x56,0x4a,0xc2,0x4a,0x5c,0x4a,0xc8,0x4a,0x5c,0x1e,0x4c,0x4a,0x5c,0x4a,0xc8, +0x4a,0x5c,0x4a,0xc8,0x4c,0x6c,0x4c,0x72,0x4c,0x78,0x4c,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x68,0x4a,0xd4,0x4a,0x68,0x4c,0x84,0x4c,0x8a,0x4c,0x90,0x4a,0xf2,0x4c,0x96,0x4a,0xf2,0x4c,0x9c,0x4c,0xa2,0x29,0xc8,0x4c,0xa8,0x4c,0xae,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4a,0xda,0x4a,0x74,0x4c,0xb4,0x4a,0x7a,0x4a,0xc8,0x4a,0x7a,0x4a,0xaa, +0x4c,0xba,0x28,0xfc,0x22,0xd8,0x4c,0xc0,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x19,0x36,0x4c,0xc6,0x19,0x36,0x4c,0xc6,0x4a,0x8c,0x19,0x12,0x4a,0x8c,0x4b,0x8e,0x4a,0x8c,0x4b,0x8e,0x4c,0xcc,0x4c,0xd2,0x4a,0x92,0x4a,0x98,0x4c,0xd8,0x4c,0xde,0x4a,0x92,0x4a,0x98,0x4a,0x92,0x4a,0x98, +0x4c,0xe4,0x4c,0xea,0x4a,0x98,0x4a,0xec,0x4c,0xf0,0x4c,0xf6,0x4c,0xfc,0x4d,0x02,0x4d,0x08,0x4d,0x0e,0x4d,0x14,0x4d,0x1a,0x4d,0x20,0x4d,0x26,0x4c,0x4e,0x4c,0xa8,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x16,0x2a,0x4a,0xf8,0x4c,0x60,0x33,0x8e,0x4a,0x9e,0x4a,0xfe,0x4a,0x9e,0x4d,0x2c,0x4a,0x68,0x4b,0x04,0x4a,0x68,0x4b,0x04, +0x4a,0xa4,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0x32,0x4d,0x38,0x4d,0x3e,0x4d,0x44,0x28,0xfc,0x4a,0xec,0x4a,0xfe,0x4b,0x0a,0x1b,0xfa,0x19,0x12,0x4a,0xb0,0x4d,0x4a,0x4d,0x50,0x4a,0xb0,0x1b,0xdc,0x4a,0xb0,0x4d,0x56,0x4a,0x4a,0x4d,0x5c,0x4a,0x44,0x1c,0x4e,0x4d,0x62,0x4d,0x68,0x4d,0x6e,0x4d,0x74,0x4d,0x7a,0x4d,0x80,0x4a,0x56, +0x29,0x02,0x4d,0x86,0x4d,0x8c,0x19,0x36,0x4a,0x68,0x4a,0xd4,0x19,0x12,0x4a,0xf2,0x4a,0x74,0x4a,0x7a,0x4d,0x92,0x4a,0x80,0x4d,0x98,0x4d,0x9e,0x4d,0xa4,0x4d,0xaa,0x4d,0xb0,0x1d,0x26,0x4d,0xb6,0x4b,0xb2,0x4d,0xbc,0x4d,0xc2,0x4a,0x98,0x4a,0xec,0x4d,0xc8,0x4d,0xce,0x4d,0xd4,0x17,0xc2,0x4b,0x0a,0x4a,0xaa,0x16,0x7e,0x4d,0xda, +0x4d,0xe0,0x17,0xe6,0x4d,0xe6,0x4d,0xec,0x4b,0x4c,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4e,0x04,0x47,0xaa,0x4b,0x7c,0x4e,0x0a,0x4e,0x10,0x4e,0x16,0x4a,0x3e,0x1b,0xfa,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x1d,0x98,0x4a,0xf2,0x1c,0x0c,0x4e,0x1c,0x4e,0x22,0x4a,0x56,0x4a,0xc2,0x4a,0x56,0x4a,0xc2,0x4a,0x68,0x4a,0xd4,0x4e,0x28, +0x4e,0x2e,0x4e,0x28,0x4e,0x2e,0x4d,0x6e,0x4e,0x34,0x4a,0xce,0x4d,0xf2,0x4d,0xf8,0x4d,0xfe,0x4a,0x56,0x4a,0xc2,0x4e,0x3a,0x4e,0x40,0x4b,0x16,0x4a,0xc8,0x4a,0x3e,0x1b,0xfa,0x4a,0x3e,0x1b,0xfa,0x1d,0x98,0x16,0x7e,0x1d,0x98,0x16,0x7e,0x4a,0x50,0x19,0x12,0x4a,0x50,0x19,0x12,0x4a,0x80,0x16,0x7e,0x4a,0x80,0x16,0x7e,0x4a,0x8c, +0x19,0x12,0x4a,0x8c,0x19,0x12,0x1d,0x98,0x4a,0xf2,0x1d,0x98,0x4a,0xf2,0x29,0x20,0x36,0x4c,0x4a,0x5c,0x4a,0xc8,0x4e,0x46,0x4a,0xb0,0x16,0x7e,0x1a,0xe6,0x4a,0xa4,0x4a,0x3e,0x1b,0xfa,0x4a,0x80,0x16,0x7e,0x4a,0xa4,0x4b,0x0a,0x4e,0x4c,0x4e,0x52,0x1e,0x46,0x4b,0x04,0x4e,0x58,0x1b,0x82,0x4e,0x5e,0x4a,0xbc,0x16,0x2a,0x4e,0x64, +0x15,0xfa,0x4d,0xec,0x4e,0x6a,0x4e,0x70,0x4e,0x76,0x4a,0xc2,0x4a,0xc2,0x1b,0x22,0x4e,0x7c,0x4e,0x82,0x4e,0x88,0x4a,0xc8,0x44,0x56,0x18,0xe2,0x4d,0x8c,0x4e,0x8e,0x4b,0x3a,0x4e,0x94,0x2f,0xf8,0x4e,0x9a,0x4e,0xa0,0x4e,0xa6,0x4e,0xac,0x4a,0xc8,0x4e,0xb2,0x1e,0x9a,0x16,0x7e,0x4e,0xb8,0x4d,0x2c,0x26,0xb0,0x4e,0xbe,0x4e,0xc4, +0x2a,0x4c,0x32,0xc8,0x2f,0xf8,0x19,0x9c,0x4e,0xca,0x4e,0xd0,0x1b,0xee,0x4e,0xd6,0x4e,0xdc,0x4e,0xe2,0x20,0xb0,0x4e,0xe8,0x4e,0xee,0x2f,0xe6,0x4d,0x68,0x1e,0x46,0x4e,0xf4,0x4b,0xb2,0x4e,0x22,0x4b,0xb2,0x4e,0xfa,0x4f,0x00,0x4b,0x04,0x4f,0x06,0x4f,0x0c,0x18,0xd6,0x4f,0x12,0x4f,0x18,0x4f,0x1e,0x4f,0x24,0x17,0xc2,0x1b,0x9a, +0x1a,0xe6,0x1c,0x18,0x4f,0x2a,0x4f,0x30,0x1c,0x0c,0x4f,0x36,0x18,0xd6,0x4f,0x3c,0x4f,0x42,0x4f,0x48,0x4d,0x98,0x4a,0xf2,0x4f,0x4e,0x4f,0x54,0x4f,0x5a,0x4f,0x60,0x4a,0xaa,0x1d,0xe6,0x4f,0x60,0x4a,0xce,0x19,0x12,0x4e,0x16,0x4f,0x66,0x4f,0x6c,0x44,0x6e,0x4f,0x72,0x4e,0x5e,0x4f,0x78,0x4f,0x7e,0x4a,0x3e,0x4a,0x4a,0x4a,0xb6, +0x4a,0x6e,0x4a,0x98,0x4c,0xde,0x4f,0x84,0x4d,0xec,0x4a,0xb0,0x4a,0xbc,0x19,0x24,0x4a,0xda,0x4a,0xc8,0x4a,0xe0,0x19,0x12,0x4b,0x8e,0x4a,0xa4,0x4a,0xec,0x16,0x7e,0x4f,0x8a,0x4f,0x90,0x2f,0x56,0x4f,0x96,0x4f,0x9c,0x1e,0x34,0x4a,0xe0,0x4f,0xa2,0x1e,0x46,0x4f,0xa8,0x4f,0xae,0x27,0x28,0x4a,0xc2,0x4f,0xb4,0x4f,0xba,0x4f,0xc0, +0x4f,0xc6,0x4a,0xe0,0x4f,0xba,0x25,0x72,0x4e,0xdc,0x4f,0xb4,0x4f,0xcc,0x25,0x90,0x4f,0xd2,0x4f,0xd8,0x4f,0xde,0x4f,0xe4,0x4f,0xea,0x4f,0xf0,0x1c,0x0c,0x25,0x78,0x27,0x28,0x21,0xfa,0x4f,0xf6,0x1a,0xe6,0x4f,0xfc,0x50,0x02,0x4a,0x44,0x1d,0x98,0x50,0x08,0x1d,0x98,0x16,0x7e,0x4a,0x62,0x4a,0xce,0x50,0x0e,0x50,0x14,0x4a,0x8c, +0x19,0x12,0x4a,0xa4,0x50,0x1a,0x4a,0xb6,0x4a,0x6e,0x4b,0x3a,0x4a,0x6e,0x4a,0x62,0x4a,0x8c,0x1b,0xfa,0x4a,0xec,0x4d,0xb6,0x50,0x20,0x00,0x01,0x00,0x01,0x04,0x86,0x00,0x02,0x00,0x29,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91,0x00,0x92, +0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0,0x01,0x45, +0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46,0x02,0x3c, +0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf,0x0a,0xcc, +0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x00,0x01,0x00,0x68,0x00,0x70,0x00,0x02,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x48,0xb4,0x00,0x01,0x48,0xba,0x00,0x14,0x48,0xb6,0x48,0xb6,0x48,0xbc,0x48,0xbc,0x48,0xc2,0x48,0xc8,0x48,0xce, +0x48,0xce,0x48,0xd4,0x48,0xda,0x48,0xe0,0x48,0xe0,0x48,0xe6,0x48,0xe6,0x48,0xec,0x48,0xec,0x42,0x9e,0x42,0x9e,0x48,0xf2,0x48,0xf2,0x48,0xf8,0x48,0xe0,0x48,0xfe,0x48,0xfe,0x49,0x04,0x49,0x04,0x49,0x0a,0x49,0x0a,0x49,0x10,0x49,0x10,0x0f,0x62,0x0f,0x62,0x14,0xf0,0x14,0xf0,0x49,0x16,0x49,0x16,0x49,0x1c,0x49,0x22,0x49,0x28, +0x49,0x2e,0x00,0x01,0x00,0x02,0x04,0x80,0x04,0x81,0x00,0x02,0x00,0x05,0x00,0x45,0x00,0x47,0x00,0x00,0x00,0x49,0x00,0x4b,0x00,0x03,0x00,0x4d,0x00,0x51,0x00,0x06,0x00,0x53,0x00,0x5a,0x00,0x0b,0x00,0x5d,0x00,0x5d,0x00,0x13,0x00,0x01,0x0c,0xec,0x0c,0xf6,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x48,0xac,0x00,0x01, +0x48,0xb2,0x00,0x00,0x48,0xb8,0x00,0x01,0x48,0xbe,0x03,0x33,0x48,0xb2,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x48,0xee,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x48,0xfa,0x48,0xb8, +0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x54,0x48,0xb8, +0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8, +0x49,0x8a,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x37,0x00,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8, +0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x54,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0xae,0x48,0xb8,0x49,0xb4,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0xba,0x48,0xb8,0x49,0x78,0x48,0xb8,0x38,0x44,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0xc0,0x48,0xb8,0x49,0xc6,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x37,0x00,0x48,0xb8,0x37,0x00,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x24,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xcc,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8, +0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0xd8,0x48,0xb8, +0x48,0xca,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xde,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0xe4,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0xea,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x42,0x48,0xb8, +0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0xf0,0x48,0xb8,0x49,0xf6,0x48,0xb8,0x49,0xfc,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, +0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8, +0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8, +0x49,0x66,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, +0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8, +0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8, +0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x4a,0x08,0x48,0xb8,0x4a,0x0e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8, +0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x35,0xa4,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8, +0x48,0xb2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8, +0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xca,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x49,0x60,0x48,0xb8, +0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8, +0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8, +0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4a,0x1a,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8, +0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x0c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8, +0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8, +0x49,0x1e,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x49,0x90,0x48,0xb8, +0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x30,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x36,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8, +0x49,0x66,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x49,0x48,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4a,0x26,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x2c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x32,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x48,0xca,0x48,0xb8, +0x4a,0x3e,0x48,0xb8,0x4a,0x44,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4a,0x56,0x48,0xb8,0x48,0xd0,0x48,0xb8,0x4a,0x5c,0x48,0xb8,0x49,0x2a,0x48,0xb8,0x4a,0x62,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x74,0x48,0xb8, +0x4a,0x7a,0x48,0xb8,0x49,0x00,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x4a,0x80,0x48,0xb8,0x4a,0x86,0x48,0xb8,0x4a,0x8c,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4a,0x92,0x48,0xb8,0x49,0x18,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4a,0x98,0x48,0xb8,0x4a,0x9e,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xaa,0x48,0xb8,0x4a,0xa4,0x48,0xb8, +0x4a,0xaa,0x48,0xb8,0x4a,0xb0,0x48,0xb8,0x4a,0xb6,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4a,0xc2,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x38,0x44,0x48,0xb8,0x4a,0xce,0x48,0xb8,0x4a,0xd4,0x48,0xb8,0x4a,0xda,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8,0x4a,0xec,0x48,0xb8, +0x4a,0xf2,0x48,0xb8,0x4a,0xf8,0x48,0xb8,0x4a,0xfe,0x48,0xb8,0x4b,0x04,0x48,0xb8,0x4b,0x0a,0x48,0xb8,0x4b,0x10,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x49,0xb4,0x48,0xb8, +0x4b,0x1c,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x48,0xee,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4a,0xc8,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0xe0,0x48,0xb8,0x4a,0xe6,0x48,0xb8, +0x4a,0xec,0x48,0xb8,0x48,0xd6,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x28,0x48,0xb8,0x4b,0x2e,0x48,0xb8,0x49,0x00,0x48,0xb8,0x49,0x66,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe2,0x48,0xb8, +0x36,0x5e,0x48,0xb8,0x48,0xe2,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x39,0x1c,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x24,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x34,0x48,0xb8, +0x4b,0x3a,0x48,0xb8,0x48,0xdc,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x40,0x48,0xb8,0x49,0x36,0x48,0xb8,0x4b,0x46,0x48,0xb8,0x49,0x42,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x49,0x06,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0x16,0x48,0xb8,0x37,0x36,0x48,0xb8, +0x37,0x36,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x39,0x16,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4b,0x4c,0x48,0xb8,0x4a,0x50,0x48,0xb8,0x4b,0x52,0x48,0xb8,0x36,0x52,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0x58,0x48,0xb8, +0x49,0x90,0x48,0xb8,0x4b,0x5e,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4a,0x6e,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4b,0x70,0x48,0xb8,0x4b,0x76,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4b,0x7c,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x72,0x48,0xb8,0x4b,0x82,0x48,0xb8, +0x4b,0x82,0x48,0xb8,0x49,0x78,0x48,0xb8,0x49,0x78,0x48,0xb8,0x4b,0x88,0x48,0xb8,0x4a,0x14,0x48,0xb8,0x4b,0x8e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0x9a,0x48,0xb8,0x4b,0xa0,0x48,0xb8, +0x4b,0xa6,0x48,0xb8,0x4b,0xac,0x48,0xb8,0x4a,0x68,0x48,0xb8,0x4b,0xb2,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4a,0xa4,0x48,0xb8,0x4b,0xb8,0x48,0xb8,0x4b,0xbe,0x48,0xb8,0x4b,0xc4,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x96,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xca,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4b,0xd0,0x48,0xb8,0x4b,0x22,0x48,0xb8, +0x4b,0x22,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x37,0x36,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4b,0xdc,0x48,0xb8,0x4b,0x58,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4a,0x02,0x48,0xb8,0x4a,0x74,0x48,0xb8,0x4b,0xe2,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4b,0xd6,0x48,0xb8,0x4b,0xd6,0x48,0xb8, +0x4b,0xe8,0x48,0xb8,0x4b,0xee,0x48,0xb8,0x4b,0xf4,0x48,0xb8,0x4a,0x20,0x48,0xb8,0x4b,0xfa,0x48,0xb8,0x4c,0x00,0x48,0xb8,0x4c,0x06,0x48,0xb8,0x48,0xee,0x48,0xb8,0x4a,0xbc,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x4c,0x0c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4b,0x64,0x48,0xb8,0x4c,0x12,0x48,0xb8,0x4c,0x18,0x48,0xb8,0x4c,0x1e,0x48,0xb8, +0x49,0x8a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4a,0x4a,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x4c,0x24,0x48,0xb8,0x48,0xb2,0x48,0xb8,0x48,0xc4,0x48,0xb8,0x49,0x54,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x49,0x1e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x4c,0x2a,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8, +0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x4b,0x94,0x48,0xb8,0x4c,0x30,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x49,0xa8,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x4c,0x36,0x48,0xb8,0x4c,0x3c,0x48,0xb8,0x4c,0x42,0x48,0xb8,0x4b,0x6a,0x48,0xb8,0x4c,0x48,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x4c,0x4e,0x48,0xb8, +0x4b,0xbe,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x60,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x6c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x49,0x72,0x48,0xb8,0x49,0x66,0x48,0xb8,0x49,0x4e,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x84,0x48,0xb8,0x4c,0x54,0x48,0xb8,0x49,0x90,0x48,0xb8,0x49,0x9c,0x48,0xb8,0x49,0xa8,0x48,0xb8, +0x49,0x48,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x4c,0x5a,0x48,0xb8,0x4c,0x60,0x48,0xb8,0x4c,0x66,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4a,0x38,0x48,0xb8,0x4b,0xa6,0x48,0xb8,0x49,0x66,0x48,0xb8,0x4b,0x22,0x48,0xb8,0x4c,0x6c,0x48,0xb8,0x4c,0x72,0x48,0xb8,0x48,0xbe,0x48,0xb8,0x49,0x24,0x48,0xb8, +0x4c,0x78,0x48,0xb8,0x37,0x00,0x48,0xb8,0x38,0x6e,0x48,0xb8,0x48,0xe8,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x4c,0x7e,0x48,0xb8,0x49,0x5a,0x48,0xb8,0x49,0x12,0x48,0xb8,0x49,0x7e,0x48,0xb8,0x49,0x3c,0x48,0xb8,0x49,0xa2,0x48,0xb8,0x4c,0x84,0x48,0xb8,0x48,0xf4,0x48,0xb8,0x4c,0x8a,0x48,0xb8,0x4c,0x90,0x48,0xb8,0x49,0x0c,0x48,0xb8, +0x49,0x12,0x48,0xb8,0x49,0x48,0x48,0xb8,0x49,0x8a,0x48,0xb8,0x4c,0x96,0x48,0xb8,0x4c,0x9c,0x48,0xb8,0x36,0x5e,0x48,0xb8,0x00,0x02,0x00,0x01,0x07,0x3a,0x07,0x3d,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x24,0x00,0x3d,0x00,0x00,0x00,0x44,0x00,0x5d,0x00,0x1a,0x00,0x62,0x00,0x81,0x00,0x34,0x00,0x89,0x00,0x89,0x00,0x54,0x00,0x91, +0x00,0x92,0x00,0x55,0x00,0xa0,0x00,0xa1,0x00,0x57,0x00,0xa7,0x00,0xa7,0x00,0x59,0x00,0xad,0x00,0xb1,0x00,0x5a,0x00,0xba,0x00,0xbb,0x00,0x5f,0x00,0xc7,0x00,0xd6,0x00,0x61,0x00,0xe1,0x00,0xe6,0x00,0x71,0x00,0xe8,0x00,0xed,0x00,0x77,0x00,0xf7,0x01,0x00,0x00,0x7d,0x01,0x03,0x01,0x2b,0x00,0x87,0x01,0x39,0x01,0x3b,0x00,0xb0, +0x01,0x45,0x01,0x84,0x00,0xb3,0x01,0x8c,0x01,0x93,0x00,0xf3,0x02,0x40,0x02,0x43,0x00,0xfb,0x02,0x57,0x02,0xb0,0x00,0xff,0x02,0xcd,0x02,0xce,0x01,0x59,0x02,0xe1,0x03,0x78,0x01,0x5b,0x04,0xb0,0x04,0xe2,0x01,0xf3,0x04,0xe6,0x04,0xe9,0x02,0x26,0x04,0xee,0x04,0xfe,0x02,0x2a,0x05,0x07,0x05,0x07,0x02,0x3b,0x05,0x0c,0x05,0x46, +0x02,0x3c,0x05,0x4b,0x05,0x4c,0x02,0x77,0x05,0x4f,0x05,0x50,0x02,0x79,0x05,0x56,0x05,0xb2,0x02,0x7b,0x06,0xac,0x06,0xad,0x02,0xd8,0x07,0x3e,0x07,0x43,0x02,0xda,0x07,0xe1,0x07,0xe2,0x02,0xe0,0x07,0xe4,0x07,0xeb,0x02,0xe2,0x07,0xf7,0x08,0x05,0x02,0xea,0x08,0x07,0x08,0x26,0x02,0xf9,0x0a,0x43,0x0a,0x43,0x03,0x19,0x0a,0xbf, +0x0a,0xcc,0x03,0x1a,0x0a,0xe5,0x0a,0xe5,0x03,0x28,0x0a,0xe7,0x0a,0xed,0x03,0x29,0x0a,0xf4,0x0a,0xf4,0x03,0x30,0x0a,0xf7,0x0a,0xf7,0x03,0x31,0x11,0x8c,0x11,0x8c,0x03,0x32,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x02,0x47,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x03,0x0a,0x00,0x00, +0x00,0x01,0x02,0x6d,0x00,0x00,0x00,0x01,0x01,0xe7,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x02,0x1c,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x02,0x30,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x01,0x0d,0x00,0x00,0x00,0x01,0x02,0xf2,0x00,0x00,0x00,0x01,0x02,0x23,0x00,0x00,0x00,0x01,0x01,0x61, +0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x02,0xa0,0x00,0x00,0x00,0x01,0x02,0x1a,0x00,0x00,0x00,0x01,0x00,0xf9,0x00,0x00,0x00,0x01,0x00,0x73,0x00,0x00,0x00,0x01,0x01,0x4b,0x00,0x00,0x00,0x01,0x00,0xcf,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x18,0x00,0x00,0x00,0x01, +0x03,0x3a,0x00,0x00,0x00,0x01,0x02,0x9d,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0x02,0x48,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x02,0x4d,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00, +0x00,0x01,0x01,0x2a,0x00,0x00,0x00,0x01,0x03,0x42,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x1f,0x00,0x00,0x00,0x01,0xff,0xb5,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0x01,0xee,0x00,0x00,0x00,0x01,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0xcb,0x00,0x00,0x00,0x01,0x03,0x37, +0x00,0x00,0x00,0x01,0x02,0x9a,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x02,0xe8,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x02,0x85,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0x02,0xcf,0x00,0x00,0x00,0x01,0x02,0x32,0x00,0x00,0x00,0x01, +0x01,0xac,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0x02,0x8e,0x00,0x00,0x00,0x01,0x01,0xf1,0x00,0x00,0x00,0x01,0x01,0x6b,0x00,0x00,0x00,0x01,0x03,0x89,0x00,0x00,0x00,0x01,0x03,0x6b,0x00,0x00,0x00,0x01,0x03,0x61,0x00,0x00,0x00,0x01,0x03,0xe7,0x00,0x00, +0x00,0x01,0x03,0x18,0x00,0x00,0x00,0x01,0x02,0x06,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0x7e,0x00,0x00,0x00,0x01,0x02,0xe1,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x02,0x9b,0x00,0x00,0x00,0x01,0x01,0xfe,0x00,0x00,0x00,0x01,0x01,0x78, +0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x00,0x00,0x01,0x02,0x10,0x00,0x00,0x00,0x01,0x01,0x8a,0x00,0x00,0x00,0x01,0x02,0xc5,0x00,0x00,0x00,0x01,0x02,0x28,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x02,0x34,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01, +0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0xb9,0x00,0x00,0x00,0x01,0x02,0x42,0x00,0x00,0x00,0x01,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0xf7,0x00,0x00,0x00,0x01,0x03,0xbf,0x00,0x00,0x00,0x01,0x03,0xe5,0x00,0x00,0x00,0x01,0x03,0x9a,0x00,0x00,0x00,0x01,0x03,0x0b,0x00,0x00,0x00,0x01,0x03,0x5b,0x00,0x00,0x00,0x01,0x04,0x18,0x00,0x00, +0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x16,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x41,0x00,0x00,0x00,0x01,0x03,0x28,0x00,0x00,0x00,0x01,0x04,0x1d,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x04,0x12,0x00,0x00,0x00,0x01,0x03,0xa1,0x00,0x00,0x00,0x01,0x03,0xaa,0x00,0x00,0x00,0x01,0x03,0x69, +0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x00,0x00,0x01,0x03,0xab,0x00,0x00,0x00,0x01,0x04,0x5e,0x00,0x00,0x00,0x01,0x04,0x59,0x00,0x00,0x00,0x01,0x03,0x76,0x00,0x00,0x00,0x01,0x03,0x88,0x00,0x00,0x00,0x01,0x03,0xa0,0x00,0x00,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xf7,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01, +0xfe,0xfd,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0xb8,0x00,0x00,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00,0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00, +0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98,0x00,0x00,0x00,0x01,0x00,0xc0, +0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01,0x01,0x18,0x00,0x00,0x00,0x01, +0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x00,0x01,0x00,0xa0,0x00,0x00,0x00,0x01,0x00,0x7c,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0xf0,0x00,0x01,0x01,0xa6,0x00,0xf0,0x00,0x01,0x00,0xe4,0x00,0xf0,0x00,0x01,0x01,0x9d,0x00,0xf0,0x00,0x01,0x00,0x8e,0x00,0xf0, +0x00,0x01,0x01,0x47,0x00,0xf0,0x00,0x01,0x00,0x3c,0x00,0xf0,0x00,0x01,0x00,0xf5,0x00,0xf0,0x00,0x01,0x00,0x60,0x00,0xf0,0x00,0x01,0x01,0x19,0x00,0xf0,0x00,0x01,0x01,0x11,0x00,0xf0,0x00,0x01,0x01,0x97,0x00,0xf0,0x00,0x01,0x00,0x84,0x00,0xf0,0x00,0x01,0x01,0x3d,0x00,0xf0,0x00,0x01,0x00,0x6c,0x00,0xf0,0x00,0x01,0x01,0x25, +0x00,0xf0,0x00,0x01,0x01,0x0e,0x00,0xf0,0x00,0x01,0x01,0x90,0x00,0xf0,0x00,0x01,0x00,0xf0,0x00,0xf0,0x00,0x01,0x01,0x72,0x00,0xf0,0x00,0x01,0x00,0x6d,0x00,0xf0,0x00,0x01,0x01,0x26,0x00,0xf0,0x00,0x01,0x00,0x8a,0x00,0xf0,0x00,0x01,0x01,0x43,0x00,0xf0,0x00,0x01,0xff,0x1e,0x00,0xf0,0x00,0x01,0xff,0xd7,0x00,0xf0,0x00,0x01, +0x01,0x04,0x00,0xf0,0x00,0x01,0x00,0x62,0x00,0xf0,0x00,0x01,0x01,0x1b,0x00,0xf0,0x00,0x01,0x00,0xdc,0x00,0xf0,0x00,0x01,0x01,0x68,0x00,0xf0,0x00,0x01,0x00,0xb3,0x00,0xf0,0x00,0x01,0x01,0x6c,0x00,0xf0,0x00,0x01,0x00,0xb2,0x00,0xf0,0x00,0x01,0x01,0x3e,0x00,0xf0,0x00,0x01,0x00,0x64,0x00,0xf0,0x00,0x01,0x01,0x1d,0x00,0xf0, +0x00,0x01,0x00,0xaa,0x00,0xf0,0x00,0x01,0x01,0x63,0x00,0xf0,0x00,0x01,0x01,0x0b,0x00,0xf0,0x00,0x01,0x00,0xbe,0x00,0xf0,0x00,0x01,0x01,0x77,0x00,0xf0,0x00,0x01,0x00,0xf2,0x00,0xf0,0x00,0x01,0x01,0xab,0x00,0xf0,0x00,0x01,0x00,0xe3,0x00,0xf0,0x00,0x01,0x01,0x9c,0x00,0xf0,0x00,0x01,0x01,0x01,0x00,0xf0,0x00,0x01,0x00,0xca, +0x00,0xf0,0x00,0x01,0x01,0x83,0x00,0xf0,0x00,0x01,0x00,0x94,0x00,0xf0,0x00,0x01,0x01,0x4d,0x00,0xf0,0x00,0x01,0xff,0x5e,0x00,0xf0,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01, +0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x02,0x3d,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00, +0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x01,0xa0, +0x00,0xdc,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0x01,0xcf,0x00,0x00,0x00,0x01,0x02,0x38,0x00,0x00,0x00,0x01,0x02,0x15,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x02,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01, +0x02,0x0e,0x00,0x00,0x00,0x01,0x02,0x36,0x00,0x00,0x00,0x01,0x02,0x12,0x00,0x00,0x00,0x01,0x02,0x13,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x01,0xe1,0x00,0x00,0x00,0x01,0x02,0xee,0x00,0x00,0x00,0x01,0x03,0x14,0x00,0x00,0x00,0x01,0x02,0xc3,0x00,0x00, +0x00,0x01,0x02,0x3a,0x00,0x00,0x00,0x01,0x03,0x10,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x44,0x00,0x00,0x00,0x01,0x02,0x52,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x03,0x4c,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0x01,0xf8, +0x00,0x00,0x00,0x01,0x02,0xbb,0x00,0x00,0x00,0x01,0x02,0xd9,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x02,0x98,0x00,0x00,0x00,0x01,0x04,0x05,0x00,0x00,0x00,0x01,0x03,0x8d,0x00,0x00,0x00,0x01,0x02,0x3e,0x00,0x00,0x00,0x01,0x01,0xe6,0x00,0x00,0x00,0x01,0x03,0x7d,0x00,0x00,0x00,0x01,0x03,0xa3,0x00,0x00,0x00,0x01, +0x03,0x52,0x00,0x00,0x00,0x01,0x03,0xd6,0x00,0x00,0x00,0x01,0x02,0x2f,0x00,0x00,0x00,0x01,0x03,0xd4,0x00,0x00,0x00,0x01,0x03,0xd3,0x00,0x00,0x00,0x01,0x02,0x8b,0x00,0x00,0x00,0x01,0x03,0xdb,0x00,0x00,0x00,0x01,0x02,0x87,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x03,0x81,0x00,0x00,0x00,0x01,0x03,0x68,0x00,0x00, +0x00,0x01,0x03,0x27,0x00,0x00,0x00,0x01,0x04,0x2b,0x00,0x00,0x00,0x01,0x04,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x17,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x5e,0x00,0x00,0x00,0x01,0x02,0xcd,0x00,0x00,0x00,0x01,0x02,0x75,0x00,0x00,0x00,0x01,0x02,0xdb, +0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x8c,0x00,0x00,0x00,0x01,0x02,0xb2,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x04,0x57,0x00,0x00,0x00,0x01,0x04,0x56,0x00,0x00,0x00,0x01,0x02,0x9f,0x00,0x00,0x00,0x01,0x03,0x64,0x00,0x00,0x00,0x01, +0x00,0x3b,0x00,0x00,0x00,0x01,0x04,0x53,0x00,0x00,0x00,0x01,0x04,0x04,0x00,0x00,0x00,0x01,0x03,0xeb,0x00,0x00,0x00,0x01,0x01,0x59,0x00,0x00,0x00,0x01,0x05,0x1e,0x00,0x00,0x00,0x01,0x04,0x4f,0x00,0x00,0x00,0x01,0x04,0x9f,0x00,0x00,0x00,0x01,0x04,0x9a,0x00,0x00,0x00,0x01,0x03,0xb7,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00, +0x00,0x01,0x03,0xe1,0x00,0x00,0x00,0x01,0x03,0x50,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x03,0x1a,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x00,0x01,0x03,0x9e,0x00,0x00,0x00,0x01,0x01,0xf7,0x00,0x00,0x00,0x01,0x02,0x7b,0x00,0x00,0x00,0x01,0x03,0x9c,0x00,0x00,0x00,0x01,0x03,0x9b,0x00,0x00,0x00,0x01,0x02,0xa9, +0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x02,0x4f,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x03,0x49,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0xef,0x00,0x00,0x00,0x01,0x04,0x46,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01, +0x03,0xe4,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x03,0x0e,0x00,0x00,0x00,0x01,0x03,0x26,0x00,0x00,0x00,0x01,0x02,0x95,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00, +0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x03,0x67,0x00,0x00,0x00,0x01,0x03,0xaf,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x03,0xb5,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x03,0xbe,0x00,0x00,0x00,0x01,0x03,0xc8,0x00,0x00,0x00,0x01,0x03,0xc6,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xba, +0x00,0x00,0x00,0x01,0x03,0x78,0x00,0x00,0x00,0x01,0x03,0x2d,0x00,0x00,0x00,0x01,0x03,0x65,0x00,0x00,0x00,0x01,0x03,0xb6,0x00,0x00,0x00,0x01,0x03,0xfb,0x00,0x00,0x00,0x01,0x03,0x1e,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x02,0x5f,0x00,0xf0,0x00,0x01,0x02,0xf2,0x00,0xd0,0x00,0x01, +0x02,0xcf,0x00,0xd0,0x00,0x01,0x03,0x4c,0x00,0xd0,0x00,0x01,0x02,0xa7,0x00,0xd0,0x00,0x01,0x02,0xf2,0x00,0xdc,0x00,0x01,0x03,0xb5,0x00,0xd0,0x00,0x01,0x03,0xfb,0x00,0xd0,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64, +0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00,0x03,0xe8,0x00,0x01,0xff,0xc4,0x03,0xe8,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x0f, +0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01, +0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xb2,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e, +0x00,0x01,0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x01,0x53, +0x04,0x06,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x02,0x8c,0x06,0x40,0x00,0x01,0x03,0x93,0x05,0xdc,0x00,0x01,0x02,0x9e,0xff,0xf1,0x00,0x01,0x02,0x1c,0x06,0x40,0x00,0x01,0x03,0xe8,0x05,0xdc,0x00,0x01,0x02,0x1c,0xff,0xf1,0x00,0x01,0x02,0xee,0x06,0x40,0x00,0x01,0x04,0xc4,0x05,0xdc,0x00,0x01,0x02,0xee,0xff,0xe7,0x00,0x01, +0x02,0xbc,0x06,0x40,0x00,0x01,0x04,0xce,0x05,0xdc,0x00,0x01,0x02,0xbc,0xff,0xf1,0x00,0x01,0x02,0x58,0x06,0x40,0x00,0x01,0x03,0xd4,0x05,0xdc,0x00,0x01,0x02,0x58,0xff,0xf1,0x00,0x01,0x03,0x20,0x06,0x40,0x00,0x01,0x05,0x00,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xe7,0x00,0x01,0x02,0xd0,0x06,0x40,0x00,0x01,0x05,0x28,0x05,0xdc, +0x00,0x01,0x02,0xd0,0xff,0xf1,0x00,0x01,0x01,0x09,0x06,0x40,0x00,0x01,0x02,0x08,0x05,0xdc,0x00,0x01,0x01,0x09,0xff,0xf1,0x00,0x01,0x01,0xd6,0x06,0x40,0x00,0x01,0x02,0x58,0x05,0xdc,0x00,0x01,0x01,0x7c,0xff,0xf1,0x00,0x01,0x02,0x8a,0x06,0x40,0x00,0x01,0x04,0xb0,0x05,0xdc,0x00,0x01,0x02,0x8a,0xff,0xf1,0x00,0x01,0x02,0x4e, +0x06,0x40,0x00,0x01,0x03,0x84,0x05,0xdc,0x00,0x01,0x02,0x4e,0xff,0xf1,0x00,0x01,0x03,0x93,0x06,0x40,0x00,0x01,0x06,0xa4,0x05,0xdc,0x00,0x01,0x03,0x93,0xff,0xf1,0x00,0x01,0x05,0x78,0x05,0xdc,0x00,0x01,0x03,0x20,0xff,0xf1,0x00,0x01,0x03,0x02,0x06,0x40,0x00,0x01,0x05,0x14,0x05,0xdc,0x00,0x01,0x03,0x02,0xff,0xe7,0x00,0x01, +0x02,0x62,0x06,0x40,0x00,0x01,0x02,0x62,0xff,0xf1,0x00,0x01,0x03,0x02,0xfe,0xf2,0x00,0x01,0x04,0x10,0x05,0xdc,0x00,0x01,0x02,0x3a,0x06,0x40,0x00,0x01,0x02,0x26,0xff,0xe7,0x00,0x01,0x02,0x26,0x06,0x40,0x00,0x01,0x04,0x4c,0x05,0xdc,0x00,0x01,0x02,0x26,0xff,0xf1,0x00,0x01,0x02,0xbc,0xff,0xe7,0x00,0x01,0x02,0x80,0x06,0x40, +0x00,0x01,0x02,0x80,0xff,0xf1,0x00,0x01,0x03,0xca,0x06,0x40,0x00,0x01,0x07,0x9e,0x05,0xdc,0x00,0x01,0x03,0xca,0xff,0xf1,0x00,0x01,0x02,0x6c,0x06,0x40,0x00,0x01,0x02,0x6c,0xff,0xf1,0x00,0x01,0x02,0x44,0x06,0x40,0x00,0x01,0x02,0x44,0xff,0xf1,0x00,0x01,0x02,0x08,0x05,0x14,0x00,0x01,0x03,0x84,0x04,0xb0,0x00,0x01,0x02,0x08, +0xff,0xe7,0x00,0x01,0x02,0x4e,0x06,0x72,0x00,0x01,0x03,0xca,0x05,0x78,0x00,0x01,0x02,0x6c,0xff,0xe7,0x00,0x01,0x02,0x26,0x05,0x14,0x00,0x01,0x03,0x98,0x04,0xb0,0x00,0x01,0x02,0x3a,0xff,0xe7,0x00,0x01,0x02,0x1c,0x06,0x72,0x00,0x01,0x04,0x4c,0x06,0x40,0x00,0x01,0x02,0x1c,0xff,0xe7,0x00,0x01,0x02,0x3a,0x05,0x14,0x00,0x01, +0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x36,0xff,0xf1,0x00,0x01,0x04,0x38,0x04,0xb0,0x00,0x01,0x02,0x3a,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x0e,0x00,0x01,0x00,0xfa,0xff,0xf1,0x00,0x01,0x00,0xf0,0x06,0x72,0x00,0x01,0x00,0x50,0xfe,0x2a,0x00,0x01,0x03,0x84,0x05,0x78,0x00,0x01,0x01,0x7c,0x06,0x40, +0x00,0x01,0x03,0x7a,0x05,0x14,0x00,0x01,0x06,0x40,0x04,0xb0,0x00,0x01,0x03,0x7a,0xff,0xf1,0x00,0x01,0x02,0x4e,0x05,0x14,0x00,0x01,0x03,0xe8,0x04,0xb0,0x00,0x01,0x02,0x58,0x05,0x14,0x00,0x01,0x02,0x58,0xff,0xe7,0x00,0x01,0x04,0x1a,0x04,0xb0,0x00,0x01,0x02,0x4e,0xfe,0x2a,0x00,0x01,0x04,0x42,0x04,0xb0,0x00,0x01,0x01,0xcc, +0x05,0x14,0x00,0x01,0x02,0xe4,0x04,0xb0,0x00,0x01,0x01,0xae,0x05,0x14,0x00,0x01,0x03,0x02,0x04,0xb0,0x00,0x01,0x01,0xae,0xff,0xe7,0x00,0x01,0x01,0x2c,0x05,0xdc,0x00,0x01,0x01,0xe0,0x05,0x78,0x00,0x01,0x01,0x80,0xff,0xe7,0x00,0x01,0x04,0x06,0x04,0xb0,0x00,0x01,0x01,0xf4,0x05,0x14,0x00,0x01,0x04,0x10,0x04,0xb0,0x00,0x01, +0x01,0xf4,0xff,0xf1,0x00,0x01,0x02,0xf3,0x05,0x14,0x00,0x01,0x05,0xf0,0x04,0xb0,0x00,0x01,0x02,0xf3,0xff,0xf1,0x00,0x01,0x01,0xd6,0x05,0x14,0x00,0x01,0x03,0xca,0x04,0xb0,0x00,0x01,0x01,0xd6,0xff,0xf1,0x00,0x01,0x01,0xf9,0x05,0x14,0x00,0x01,0x01,0xf9,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x05,0x14,0x00,0x01,0x01,0xc2,0xff,0xf1, +0x00,0x01,0x02,0x9e,0x07,0x80,0x00,0x01,0x04,0x33,0x06,0x7c,0x00,0x01,0x02,0xee,0xfe,0x48,0x00,0x01,0x02,0x58,0x07,0xb0,0x00,0x01,0x03,0xd4,0x06,0xa4,0x00,0x01,0x03,0x20,0x07,0x80,0x00,0x01,0x05,0x78,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0x80,0x00,0x01,0x05,0x8c,0x06,0x7c,0x00,0x01,0x02,0xbc,0x07,0x80,0x00,0x01,0x05,0x64, +0x06,0x7c,0x00,0x01,0x02,0x08,0x06,0x54,0x00,0x01,0x03,0xd4,0x05,0x50,0x00,0x01,0x01,0xf4,0x06,0x04,0x00,0x01,0x01,0xf4,0xff,0xe7,0x00,0x01,0x02,0x08,0x06,0x04,0x00,0x01,0x03,0x84,0x05,0x50,0x00,0x01,0x02,0x3a,0xfe,0x48,0x00,0x01,0x02,0x3a,0x06,0x54,0x00,0x01,0x02,0x2b,0x06,0x54,0x00,0x01,0x02,0x2b,0xff,0xe7,0x00,0x01, +0x02,0x26,0x06,0x04,0x00,0x01,0x02,0x44,0x05,0x46,0x00,0x01,0x01,0xf4,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x72,0x00,0x01,0x02,0x44,0x05,0x1e,0x00,0x01,0x00,0xe6,0x06,0x0e,0x00,0x01,0x02,0x4e,0x06,0x04,0x00,0x01,0x04,0x38,0x05,0x50,0x00,0x01,0x02,0x58,0x06,0x54,0x00,0x01,0x02,0x53,0x06,0x54,0x00,0x01,0x02,0x53,0xff,0xe7, +0x00,0x01,0x02,0x58,0x06,0x04,0x00,0x01,0x02,0x26,0x06,0x54,0x00,0x01,0x04,0x56,0x05,0x50,0x00,0x01,0x02,0x3a,0x06,0x04,0x00,0x01,0x02,0x2d,0x06,0xa2,0x00,0x01,0x04,0x5a,0x06,0x02,0x00,0x01,0x02,0x2d,0xff,0xe7,0x00,0x01,0x03,0xe8,0x06,0x40,0x00,0x01,0x06,0xe2,0x05,0xdc,0x00,0x01,0x03,0xe8,0xff,0xf1,0x00,0x01,0x03,0x48, +0x05,0x14,0x00,0x01,0x06,0xa8,0x04,0xb0,0x00,0x01,0x03,0x48,0xff,0xe7,0x00,0x01,0x03,0x02,0x06,0x72,0x00,0x01,0x04,0x00,0x05,0x9a,0x00,0x01,0x01,0x4b,0xfe,0xd4,0x00,0x01,0x02,0x9e,0x07,0xb0,0x00,0x01,0x04,0x83,0x06,0x7c,0x00,0x01,0x04,0x74,0x06,0x40,0x00,0x01,0x07,0x72,0x05,0xdc,0x00,0x01,0x04,0x74,0xff,0xe7,0x00,0x01, +0x03,0xfc,0x05,0x14,0x00,0x01,0x07,0x6c,0x04,0xb0,0x00,0x01,0x03,0xfc,0xff,0xe7,0x00,0x01,0x01,0xf9,0x06,0x04,0x00,0x01,0x04,0x6a,0x05,0x50,0x00,0x01,0x02,0x44,0x07,0x80,0x00,0x01,0x05,0x00,0x06,0x7c,0x00,0x01,0x02,0x30,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0x7c,0x00,0x01,0x02,0x30,0xff,0xf1,0x00,0x01,0x04,0x33,0x06,0xa4, +0x00,0x01,0x02,0x30,0x07,0x80,0x00,0x01,0x04,0x4c,0x06,0x7c,0x00,0x01,0x01,0x09,0x07,0xb0,0x00,0x01,0x02,0x80,0x06,0xa4,0x00,0x01,0x01,0x1d,0x07,0xb0,0x00,0x01,0x01,0x1d,0xff,0xf1,0x00,0x01,0x01,0x09,0x07,0x80,0x00,0x01,0x02,0x80,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x7c,0x00,0x01,0x03,0x02,0x07,0xb0,0x00,0x01,0x02,0xbc, +0x07,0xb0,0x00,0x01,0x00,0xfa,0x04,0xa0,0x00,0x01,0x01,0x7c,0x04,0x50,0x00,0x01,0x01,0x0e,0x06,0x72,0x00,0x01,0x01,0xa4,0x06,0x40,0x00,0x01,0x01,0x0e,0xff,0xf1,0x00,0x01,0x02,0x26,0x07,0xb0,0x00,0x01,0x04,0x24,0x06,0xa4,0x00,0x01,0x01,0x90,0x06,0x54,0x00,0x01,0x03,0x52,0x05,0x50,0x00,0x01,0x02,0x6c,0x07,0xb0,0x00,0x01, +0x05,0x00,0x06,0xa4,0x00,0x01,0x01,0xf4,0x06,0x54,0x00,0x01,0x03,0xe8,0x05,0x50,0x00,0x01,0x02,0x3c,0x06,0x94,0x00,0x01,0x04,0x79,0x05,0xf4,0x00,0x01,0x02,0x3c,0xff,0xe7,0x00,0x01,0x02,0x44,0x07,0xb0,0x00,0x01,0x01,0xf9,0x06,0x54,0x00,0x01,0x02,0x3d,0x06,0x3a,0x00,0x01,0x04,0x7b,0x04,0xfa,0x00,0x01,0x02,0x3d,0xff,0xf1, +0x00,0x01,0x02,0x5a,0x06,0x8c,0x00,0x01,0x04,0xb4,0x05,0x4c,0x00,0x01,0x02,0x5a,0xfe,0x2a,0x00,0x01,0x03,0x20,0x07,0xb0,0x00,0x01,0x05,0x50,0x06,0x7c,0x00,0x01,0x04,0x88,0x05,0x50,0x00,0x01,0x01,0x1d,0x07,0x08,0x00,0x01,0x02,0x21,0x06,0x42,0x00,0x01,0x02,0x26,0xfe,0x48,0x00,0x01,0x01,0xae,0xfe,0x48,0x00,0x01,0x02,0xee, +0x07,0xb0,0x00,0x01,0x05,0x14,0x06,0xa4,0x00,0x01,0x03,0x0c,0x07,0xb0,0x00,0x01,0x03,0x0c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x54,0x00,0x01,0x02,0x44,0xff,0xe7,0x00,0x01,0x02,0x9e,0x06,0x40,0x00,0x01,0x02,0x9e,0xfe,0xa2,0x00,0x01,0x02,0x08,0xfe,0xa2,0x00,0x01,0x02,0xa8,0x07,0xb0,0x00,0x01,0x05,0x1e,0x06,0xa4,0x00,0x01, +0x02,0xa8,0xff,0xf1,0x00,0x01,0x02,0x58,0xfe,0xa2,0x00,0x01,0x02,0x3a,0xfe,0xa2,0x00,0x01,0x02,0x4e,0x07,0xb0,0x00,0x01,0x03,0x84,0x06,0xa4,0x00,0x01,0x00,0xfa,0x08,0x02,0x00,0x01,0x01,0xf4,0x06,0xe0,0x00,0x01,0x03,0xc4,0x05,0xdc,0x00,0x01,0x02,0x75,0x06,0x40,0x00,0x01,0x05,0x78,0x06,0xa4,0x00,0x01,0x02,0x4e,0x06,0x54, +0x00,0x01,0x03,0x02,0xff,0xf1,0x00,0x01,0x05,0x8c,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0xb0,0x00,0x01,0x04,0x60,0x06,0xa4,0x00,0x01,0x01,0xcc,0x06,0x54,0x00,0x01,0x03,0x34,0x05,0x50,0x00,0x01,0x01,0xae,0x06,0x54,0x00,0x01,0x02,0x3a,0x07,0xb0,0x00,0x01,0x01,0x80,0xfe,0x48,0x00,0x01,0x04,0x9c,0x06,0xa4,0x00,0x01,0x01,0x2c, +0x06,0x0e,0x00,0x01,0x02,0x30,0x06,0x18,0x00,0x01,0x05,0x64,0x06,0xa4,0x00,0x01,0x02,0x8a,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0xa4,0x00,0x01,0x01,0xe0,0x06,0x54,0x00,0x01,0x02,0x4e,0x07,0x80,0x00,0x01,0x04,0xb0,0x06,0x7c,0x00,0x01,0x01,0xe0,0x06,0x04,0x00,0x01,0x03,0xf8,0x06,0x3a,0x00,0x01,0x04,0xac,0x06,0x3a,0x00,0x01, +0x03,0x7a,0xff,0xe7,0x00,0x01,0x03,0x0c,0x06,0x79,0x00,0x01,0x03,0xf6,0x06,0x29,0x00,0x01,0x02,0x8a,0xfe,0x2a,0x00,0x01,0x02,0xe8,0x05,0xb2,0x00,0x01,0x04,0x39,0x04,0xb0,0x00,0x01,0x02,0xe8,0xff,0xf1,0x00,0x01,0x02,0x9e,0x07,0x30,0x00,0x01,0x02,0xf8,0x07,0xb0,0x00,0x01,0x02,0xf8,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x7c, +0x00,0x01,0x02,0x44,0x07,0x30,0x00,0x01,0x03,0xfc,0x05,0x50,0x00,0x01,0x02,0x1c,0x07,0xb0,0x00,0x01,0x02,0x26,0x07,0x80,0x00,0x01,0x03,0xd4,0x06,0x40,0x00,0x01,0x05,0x50,0x06,0xa4,0x00,0x01,0x02,0x44,0xfe,0x2a,0x00,0x01,0x03,0x20,0xfe,0x70,0x00,0x01,0x02,0x3a,0x06,0x16,0x00,0x01,0x04,0x66,0x05,0xa0,0x00,0x01,0x02,0xd0, +0x07,0xb0,0x00,0x01,0x02,0x6c,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x18,0x00,0x01,0x02,0xd7,0x06,0x3a,0x00,0x01,0x05,0x5e,0x05,0xea,0x00,0x01,0x02,0xd7,0xff,0xf1,0x00,0x01,0x02,0x43,0x06,0x3c,0x00,0x01,0x04,0x37,0x05,0x4c,0x00,0x01,0x02,0x43,0xff,0xf1,0x00,0x01,0x01,0x0e,0x07,0x80,0x00,0x01,0x00,0xfa,0x06,0x0e,0x00,0x01, +0x01,0x09,0x07,0x30,0x00,0x01,0x00,0xfa,0x05,0xd2,0x00,0x01,0x01,0x0e,0x07,0xb0,0x00,0x01,0x00,0xe1,0x06,0x72,0x00,0x01,0x01,0x0e,0x06,0x40,0x00,0x01,0x01,0x0e,0xfe,0xa2,0x00,0x01,0x00,0xfa,0xfe,0xa2,0x00,0x01,0x01,0xd6,0x07,0xb0,0x00,0x01,0x02,0xd0,0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x6e,0x00,0x01,0x02,0x8a,0xfe,0x70, +0x00,0x01,0x02,0x4e,0xfe,0x70,0x00,0x01,0x01,0xfd,0x04,0xa0,0x00,0x01,0x03,0xfa,0x04,0xa0,0x00,0x01,0x01,0xfd,0xff,0xf1,0x00,0x01,0x02,0x4e,0xfe,0x48,0x00,0x01,0x00,0xfa,0xfe,0x48,0x00,0x01,0x03,0x20,0xfe,0x2a,0x00,0x01,0x03,0x02,0x07,0x30,0x00,0x01,0x02,0x9e,0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x70,0x00,0x01,0x02,0x18, +0x05,0xea,0x00,0x01,0x04,0x81,0x05,0xea,0x00,0x01,0x02,0x18,0xff,0xf1,0x00,0x01,0x01,0x2c,0x05,0x7f,0x00,0x01,0x02,0xb6,0x05,0x2f,0x00,0x01,0x02,0xbc,0x07,0x30,0x00,0x01,0x02,0xbc,0xfe,0xa2,0x00,0x01,0x02,0x26,0xfe,0xa2,0x00,0x01,0x03,0xd4,0x07,0xb0,0x00,0x01,0x07,0x9e,0x06,0x7c,0x00,0x01,0x02,0xf8,0x06,0x54,0x00,0x01, +0x05,0xf0,0x05,0x50,0x00,0x01,0x02,0x08,0xfe,0x2a,0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x02,0x8e,0x06,0x52,0x00,0x01,0x03,0xca,0x07,0xb0,0x00,0x01,0x02,0xf3,0x06,0x54,0x00,0x01,0x03,0xca,0x07,0x80,0x00,0x01,0x02,0xf3,0x06,0x04,0x00,0x01,0x04,0x1a,0x05,0x50,0x00,0x01,0x06,0x1a,0x06,0x7c,0x00,0x01,0x04,0xc7,0x04,0xb0, +0x00,0x01,0x02,0xbc,0x06,0xd6,0x00,0x01,0x05,0xfa,0x06,0x7c,0x00,0x01,0x02,0x26,0x05,0x46,0x00,0x01,0x05,0x04,0x05,0x00,0x00,0x01,0x02,0xb2,0xfe,0xc0,0x00,0x01,0x02,0x12,0x05,0x14,0x00,0x01,0x02,0x12,0xfe,0xc0,0x00,0x01,0x02,0x44,0xfe,0xc0,0x00,0x01,0x02,0x4e,0xfe,0xc0,0x00,0x01,0x02,0x30,0x06,0xc2,0x00,0x01,0x01,0xf4, +0x05,0x82,0x00,0x01,0x01,0x09,0xfe,0xc0,0x00,0x01,0x00,0xfa,0xfe,0xc0,0x00,0x01,0x03,0x02,0xfe,0xc0,0x00,0x01,0x02,0x58,0xfe,0xc0,0x00,0x01,0x02,0xbc,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0xc0,0x00,0x01,0x02,0x26,0xfe,0x84,0x00,0x01,0x01,0x80,0xfe,0x84,0x00,0x01,0x02,0xe2,0x06,0x52,0x00,0x01,0x05,0x74,0x05,0x62,0x00,0x01, +0x02,0xe2,0xff,0xe7,0x00,0x01,0x02,0x03,0x04,0xb8,0x00,0x01,0x03,0xdf,0x03,0xc8,0x00,0x01,0x02,0x03,0xff,0xe7,0x00,0x01,0x02,0x58,0xfe,0x48,0x00,0x01,0x02,0x9e,0xfe,0x02,0x00,0x01,0x02,0x08,0xfe,0x02,0x00,0x01,0x02,0x1c,0x07,0x80,0x00,0x01,0x03,0xe8,0x06,0x7c,0x00,0x01,0x02,0x30,0x06,0x40,0x00,0x01,0x02,0x30,0xfe,0xc0, +0x00,0x01,0x02,0x6c,0xfe,0xc0,0x00,0x01,0x02,0x44,0xff,0x24,0x00,0x01,0x02,0x6c,0xff,0x24,0x00,0x01,0x05,0x1e,0x06,0x7c,0x00,0x01,0x02,0xa8,0x06,0x40,0x00,0x01,0x02,0xa8,0xfe,0xc0,0x00,0x01,0x02,0x58,0x06,0x72,0x00,0x01,0x02,0x8a,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0x24,0x00,0x01,0x02,0xbc,0xfe,0x70,0x00,0x01,0x02,0x1c, +0xfe,0x70,0x00,0x01,0x02,0xb2,0x06,0x40,0x00,0x01,0x02,0xb2,0xfe,0x2a,0x00,0x01,0x02,0x44,0x05,0x14,0x00,0x01,0x02,0x30,0xfe,0xa2,0x00,0x01,0x02,0x12,0x07,0x80,0x00,0x01,0x02,0x12,0xff,0xf1,0x00,0x01,0x01,0xe0,0x07,0x62,0x00,0x01,0x02,0xee,0x06,0xe0,0x00,0x01,0x03,0x20,0x07,0x30,0x00,0x01,0x02,0xd0,0x07,0x80,0x00,0x01, +0x05,0x28,0x06,0x7c,0x00,0x01,0x02,0x4e,0x06,0xd6,0x00,0x01,0x03,0xca,0x06,0x18,0x00,0x01,0x02,0xee,0xfe,0xc0,0x00,0x01,0x02,0x3a,0x06,0x72,0x00,0x01,0x02,0x3a,0xfe,0xc0,0x00,0x01,0x02,0x80,0x07,0xb2,0x00,0x01,0x04,0x1a,0x06,0x54,0x00,0x01,0x02,0xd0,0xfe,0x2a,0x00,0x01,0x02,0xd0,0xfe,0x84,0x00,0x01,0x02,0x4e,0xfe,0x84, +0x00,0x01,0x01,0x09,0xfe,0xa2,0x00,0x01,0x02,0x8a,0x07,0xb0,0x00,0x01,0x02,0x4e,0x07,0xb2,0x00,0x01,0x02,0x80,0xfe,0xc0,0x00,0x01,0x02,0x26,0x06,0x72,0x00,0x01,0x02,0x30,0x06,0x72,0x00,0x01,0x02,0x30,0xff,0x24,0x00,0x01,0x02,0x26,0x07,0x30,0x00,0x01,0x03,0xd4,0x06,0x7c,0x00,0x01,0x00,0xfa,0x07,0x12,0x00,0x01,0x00,0xfa, +0xff,0x24,0x00,0x01,0x02,0x2b,0x06,0x40,0x00,0x01,0x02,0x2b,0xfe,0x2a,0x00,0x01,0x00,0xfa,0xfe,0x2a,0x00,0x01,0x03,0x93,0x07,0xb0,0x00,0x01,0x06,0xa4,0x06,0xa4,0x00,0x01,0x03,0x7a,0x06,0x54,0x00,0x01,0x06,0x40,0x05,0x50,0x00,0x01,0x03,0x5c,0x07,0x80,0x00,0x01,0x06,0xa4,0x06,0x7c,0x00,0x01,0x03,0x5c,0xfe,0xc0,0x00,0x01, +0x03,0x7a,0xfe,0xc0,0x00,0x01,0x02,0xf8,0x07,0x80,0x00,0x01,0x02,0xf8,0xff,0xf1,0x00,0x01,0x02,0xf8,0x06,0x40,0x00,0x01,0x02,0xf8,0xfe,0xc0,0x00,0x01,0x02,0xf8,0xff,0x24,0x00,0x01,0x02,0x58,0xff,0x24,0x00,0x01,0x03,0x02,0xfe,0x2a,0x00,0x01,0x04,0x38,0x06,0xa4,0x00,0x01,0x04,0x38,0x06,0x7c,0x00,0x01,0x02,0x6c,0x06,0x04, +0x00,0x01,0x02,0x6c,0xfe,0x2a,0x00,0x01,0x02,0x58,0x07,0x80,0x00,0x01,0x04,0x60,0x06,0x7c,0x00,0x01,0x01,0x90,0x06,0x04,0x00,0x01,0x02,0x8a,0xfe,0xc0,0x00,0x01,0x02,0x9e,0xff,0x24,0x00,0x01,0x02,0x4e,0xff,0xe7,0x00,0x01,0x01,0xcc,0xff,0xe7,0x00,0x01,0x01,0xc2,0x05,0x14,0x00,0x01,0x01,0xc2,0xfe,0xc0,0x00,0x01,0x04,0x24, +0x07,0x1c,0x00,0x01,0x03,0x52,0x05,0xf0,0x00,0x01,0x02,0x44,0x07,0xd0,0x00,0x01,0x01,0xae,0x06,0xa4,0x00,0x01,0x02,0x62,0x07,0x80,0x00,0x01,0x02,0x62,0xfe,0xc0,0x00,0x01,0x01,0xd6,0xfe,0xc0,0x00,0x01,0x01,0x2c,0x07,0x1c,0x00,0x01,0x01,0x68,0xfe,0xc0,0x00,0x01,0x02,0x26,0xff,0x24,0x00,0x01,0x01,0x80,0xff,0x24,0x00,0x01, +0x02,0x26,0xfe,0x2a,0x00,0x01,0x01,0x68,0xfe,0x2a,0x00,0x01,0x02,0x1c,0x05,0x14,0x00,0x01,0x02,0x1c,0xfe,0xc0,0x00,0x01,0x02,0x2b,0x05,0x14,0x00,0x01,0x02,0x80,0x07,0x80,0x00,0x01,0x05,0x14,0x06,0x7c,0x00,0x01,0x04,0x60,0x05,0x50,0x00,0x01,0x01,0xf4,0xfe,0xc0,0x00,0x01,0x03,0xde,0x07,0x80,0x00,0x01,0x07,0xee,0x06,0x7c, +0x00,0x01,0x02,0xf8,0x06,0x04,0x00,0x01,0x03,0xca,0xfe,0xc0,0x00,0x01,0x02,0xf3,0xfe,0xc0,0x00,0x01,0x02,0x6c,0x07,0x80,0x00,0x01,0x04,0xce,0x06,0x7c,0x00,0x01,0x01,0xd6,0x06,0x24,0x00,0x01,0x03,0xca,0x05,0x50,0x00,0x01,0x01,0xe0,0xff,0xf1,0x00,0x01,0x01,0xe0,0xfe,0xc0,0x00,0x01,0x01,0xcc,0xff,0x24,0x00,0x01,0x01,0x54, +0x07,0x1c,0x00,0x01,0x02,0xd0,0x06,0x18,0x00,0x01,0x03,0xd4,0x05,0x82,0x00,0x01,0x01,0x8b,0x07,0xb2,0x00,0x01,0x02,0x8e,0x06,0x92,0x00,0x01,0x00,0xf7,0xff,0xf1,0x00,0x01,0x04,0x64,0x05,0x4c,0x00,0x01,0x02,0x5a,0xff,0xe7,0x00,0x01,0x02,0x74,0x06,0x3a,0x00,0x01,0x04,0x98,0x05,0x4a,0x00,0x01,0x02,0x74,0xff,0xf1,0x00,0x01, +0x02,0x49,0x06,0x3a,0x00,0x01,0x04,0x93,0x05,0x9a,0x00,0x01,0x02,0x49,0xff,0xe7,0x00,0x01,0x04,0xb4,0x05,0xec,0x00,0x01,0x02,0x4f,0x06,0x52,0x00,0x01,0x04,0x4e,0x05,0x12,0x00,0x01,0x02,0x4f,0xff,0xe7,0x00,0x01,0x02,0x12,0x06,0x52,0x00,0x01,0x04,0xa6,0x05,0x62,0x00,0x01,0x02,0x12,0xff,0xe7,0x00,0x01,0x02,0xfa,0x06,0xd6, +0x00,0x01,0x05,0x96,0x06,0x83,0x00,0x01,0x02,0xfa,0xff,0xe7,0x00,0x01,0x02,0x3c,0x05,0x46,0x00,0x01,0x04,0x5a,0x05,0x25,0x00,0x01,0x02,0xce,0x06,0x3a,0x00,0x01,0x05,0x4c,0x05,0x4a,0x00,0x01,0x03,0x2a,0x06,0x3a,0x00,0x01,0x05,0x9e,0x05,0x4a,0x00,0x01,0x03,0x2a,0xff,0xf1,0x00,0x01,0x02,0x4a,0x06,0x3a,0x00,0x01,0x04,0x44, +0x05,0xea,0x00,0x01,0x02,0x4a,0xff,0xe7,0x00,0x01,0x04,0xb4,0x06,0x3c,0x00,0x01,0x02,0x5e,0x04,0xb8,0x00,0x01,0x04,0x6c,0x03,0xc8,0x00,0x01,0x02,0x5e,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x06,0x3a,0x00,0x01,0x03,0xbe,0x05,0xea,0x00,0x01,0x02,0x58,0x06,0x52,0x00,0x01,0x04,0x04,0x05,0xb2,0x00,0x01,0x02,0x44,0x06,0x3a,0x00,0x01, +0x03,0xe8,0x05,0xea,0x00,0x01,0x01,0x2c,0xfe,0x84,0x00,0x01,0x03,0x20,0x06,0xd6,0x00,0x01,0x05,0xd9,0x06,0x83,0x00,0x01,0x02,0x7c,0x06,0x3a,0x00,0x01,0x05,0x48,0x05,0xea,0x00,0x01,0x02,0x7c,0xfe,0x2a,0x00,0x01,0x03,0x7f,0x06,0x8c,0x00,0x01,0x06,0xae,0x05,0x4c,0x00,0x01,0x03,0x7f,0xff,0xe7,0x00,0x01,0x01,0x36,0x06,0x72, +0x00,0x01,0x01,0xfe,0x05,0xea,0x00,0x01,0x01,0x1d,0x06,0x3a,0x00,0x01,0x02,0x3a,0x05,0xea,0x00,0x01,0x02,0x52,0x06,0x52,0x00,0x01,0x04,0xf4,0x06,0x02,0x00,0x01,0x02,0x52,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0xa2,0x00,0x01,0x03,0xfc,0x06,0xa2,0x00,0x01,0x01,0xfe,0xff,0xf1,0x00,0x01,0x00,0xf8,0x06,0x8c,0x00,0x01,0x01,0xa0, +0x06,0x3c,0x00,0x01,0x00,0xf8,0xff,0xf1,0x00,0x01,0x01,0xfe,0x06,0x8e,0x00,0x01,0x03,0xac,0x05,0x4e,0x00,0x01,0x03,0x91,0x06,0x3a,0x00,0x01,0x06,0xd3,0x05,0xea,0x00,0x01,0x03,0x91,0xff,0xe7,0x00,0x01,0x02,0xfe,0x06,0x3a,0x00,0x01,0x05,0xac,0x05,0xea,0x00,0x01,0x03,0x97,0xff,0xf1,0x00,0x01,0x02,0x4d,0x04,0xb8,0x00,0x01, +0x04,0x4a,0x04,0x18,0x00,0x01,0x02,0x4d,0xfe,0x70,0x00,0x01,0x03,0x04,0x06,0x52,0x00,0x01,0x05,0xb8,0x05,0x62,0x00,0x01,0x03,0x04,0xff,0xe7,0x00,0x01,0x03,0xe0,0x06,0x52,0x00,0x01,0x07,0x48,0x06,0x02,0x00,0x01,0x03,0xe0,0xff,0xe7,0x00,0x01,0x03,0x29,0x04,0xb8,0x00,0x01,0x06,0x02,0x04,0x68,0x00,0x01,0x03,0x29,0xff,0xe7, +0x00,0x01,0x02,0x67,0x06,0x3a,0x00,0x01,0x04,0x7f,0x05,0x9a,0x00,0x01,0x02,0x67,0xff,0xf1,0x00,0x01,0x02,0x5a,0x06,0xa2,0x00,0x01,0x04,0x64,0x05,0x62,0x00,0x01,0x02,0x4e,0x06,0x3a,0x00,0x01,0x04,0x4c,0x04,0xfa,0x00,0x01,0x02,0x4e,0xff,0x51,0x00,0x01,0x02,0x10,0x06,0x3a,0x00,0x01,0x03,0xd1,0x05,0xea,0x00,0x01,0x02,0x10, +0xff,0xf1,0x00,0x01,0x00,0xaa,0x06,0xa2,0x00,0x01,0x02,0x0e,0x05,0xb2,0x00,0x01,0x01,0x6b,0xfe,0x2a,0x00,0x01,0x01,0x5c,0x05,0xcf,0x00,0x01,0x02,0xb8,0x05,0x2f,0x00,0x01,0x01,0x5c,0xfe,0x84,0x00,0x01,0x02,0x19,0x06,0x3a,0x00,0x01,0x04,0x33,0x05,0xea,0x00,0x01,0x02,0x19,0xff,0xf1,0x00,0x01,0x01,0x5c,0x06,0xa2,0x00,0x01, +0x03,0x08,0x06,0x52,0x00,0x01,0x01,0x5c,0xff,0xe7,0x00,0x01,0x02,0x19,0xfe,0x84,0x00,0x01,0x03,0x05,0x06,0x3a,0x00,0x01,0x06,0x0a,0x05,0xea,0x00,0x01,0x03,0x05,0xff,0xe7,0x00,0x01,0x02,0xd9,0x06,0x52,0x00,0x01,0x05,0x12,0x06,0x02,0x00,0x01,0x02,0xd9,0xff,0xe7,0x00,0x01,0x02,0x81,0x06,0x52,0x00,0x01,0x04,0xde,0x06,0x02, +0x00,0x01,0x02,0x81,0xff,0xf1,0x00,0x01,0x02,0x7b,0x05,0x14,0x00,0x01,0x04,0xc3,0x04,0x18,0x00,0x01,0x02,0x7b,0xfe,0x2a,0x00,0x01,0x02,0xee,0xfe,0x2a,0x00,0x01,0x02,0x28,0x06,0x3a,0x00,0x01,0x03,0xb0,0x06,0x3a,0x00,0x01,0x02,0x28,0xff,0xe7,0x00,0x01,0x01,0x85,0x04,0xa0,0x00,0x01,0x02,0xba,0x04,0xa0,0x00,0x01,0x01,0x85, +0xff,0xe7,0x00,0x01,0x02,0x2f,0x04,0xb8,0x00,0x01,0x04,0x5e,0x04,0x18,0x00,0x01,0x01,0x4b,0xfe,0x2a,0x00,0x01,0x07,0xbc,0x07,0xb0,0x00,0x01,0x09,0xe8,0x06,0xa4,0x00,0x01,0x07,0xbc,0xff,0xf1,0x00,0x01,0x07,0x6c,0x06,0x54,0x00,0x01,0x09,0x1c,0x05,0x50,0x00,0x01,0x07,0x6c,0xff,0xf1,0x00,0x01,0x06,0x86,0x06,0x54,0x00,0x01, +0x08,0x33,0x05,0x50,0x00,0x01,0x06,0x86,0xff,0xf1,0x00,0x01,0x05,0xd2,0x06,0x3a,0x00,0x01,0x06,0x89,0x05,0xdc,0x00,0x01,0x05,0x7b,0xff,0xe7,0x00,0x01,0x04,0xc4,0x06,0x79,0x00,0x01,0x05,0x72,0x06,0x0e,0x00,0x01,0x04,0x6e,0xfe,0x2a,0x00,0x01,0x03,0x0c,0x06,0x8c,0x00,0x01,0x03,0xb1,0x06,0x0e,0x00,0x01,0x02,0xa8,0xfe,0x2a, +0x00,0x01,0x07,0x8f,0x06,0x3a,0x00,0x01,0x08,0x44,0x05,0xdc,0x00,0x01,0x07,0x40,0xff,0xe7,0x00,0x01,0x06,0xc2,0x06,0x79,0x00,0x01,0x07,0x6e,0x06,0x0e,0x00,0x01,0x06,0x72,0xfe,0x2a,0x00,0x01,0x05,0x78,0x06,0x79,0x00,0x01,0x06,0x27,0x06,0x0e,0x00,0x01,0x05,0x23,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x06,0x54,0x00,0x01,0x01,0xfe, +0xff,0xe7,0x00,0x01,0x02,0x44,0x05,0x82,0x00,0x01,0x02,0xc6,0x07,0xb0,0x00,0x01,0x02,0xc6,0xff,0xe7,0x00,0x01,0x04,0x92,0x07,0x30,0x00,0x01,0x06,0x92,0x06,0x7c,0x00,0x01,0x04,0x92,0xff,0xf1,0x00,0x01,0x03,0x50,0x06,0x04,0x00,0x01,0x06,0x50,0x05,0x50,0x00,0x01,0x03,0x50,0xff,0xe7,0x00,0x01,0x02,0xda,0x07,0xb0,0x00,0x01, +0x02,0xda,0xff,0xe7,0x00,0x01,0x01,0xfe,0x07,0xb2,0x00,0x01,0x03,0x02,0xfe,0x70,0x00,0x01,0x02,0x58,0xfe,0x70,0x00,0x01,0x02,0x08,0x07,0xb0,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x01,0x7c,0xfe,0x2a,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x07,0xda,0x06,0xe0,0x00,0x01,0x09,0xe8,0x05,0xdc,0x00,0x01,0x07,0xda,0xff,0xf1, +0x00,0x01,0x07,0x6c,0x05,0xb4,0x00,0x01,0x09,0x1c,0x04,0xb0,0x00,0x01,0x06,0x86,0x05,0xb4,0x00,0x01,0x08,0x33,0x04,0xb0,0x00,0x01,0x07,0xae,0x05,0xdc,0x00,0x01,0x02,0xc1,0x06,0x52,0x00,0x01,0x05,0x83,0x05,0xb2,0x00,0x01,0x01,0x62,0xfe,0x2a,0x00,0x01,0x04,0x83,0x06,0xa4,0x00,0x01,0x04,0x4c,0x06,0xa4,0x00,0x01,0x02,0x30, +0x06,0xa4,0x00,0x01,0x01,0xf4,0x05,0x50,0x00,0x01,0x01,0xb8,0x06,0x54,0x00,0x01,0x01,0xb8,0x06,0x52,0x00,0x01,0x03,0xb8,0x05,0x62,0x00,0x01,0x01,0xb8,0xfe,0x2a,0x00,0x01,0x01,0x90,0x04,0xb8,0x00,0x01,0x03,0x20,0x03,0xc8,0x00,0x01,0x01,0x90,0xfe,0x2a,0x00,0x01,0x04,0x1a,0x06,0xa4,0x00,0x01,0x02,0xef,0x06,0x52,0x00,0x01, +0x05,0x3f,0x05,0xb2,0x00,0x01,0x02,0xef,0xfe,0x2a,0x00,0x01,0x02,0x5c,0x06,0x3a,0x00,0x01,0x04,0x68,0x05,0x9a,0x00,0x01,0x02,0x5c,0xff,0xe7,0x00,0x01,0x02,0x44,0x06,0x8c,0x00,0x01,0x04,0x39,0x05,0xec,0x00,0x01,0x02,0x48,0xff,0x24,0x00,0x01,0x01,0xcf,0xff,0x24,0x00,0x01,0x02,0x05,0x04,0xb8,0x00,0x01,0x03,0xba,0x03,0xc8, +0x00,0x01,0x02,0x05,0xff,0xe7,0x00,0x01,0x02,0x79,0x04,0xb8,0x00,0x01,0x04,0xa2,0x04,0x68,0x00,0x01,0x02,0x79,0xff,0xe7,0x00,0x01,0x04,0xa2,0x04,0x18,0x00,0x01,0x02,0x5b,0x06,0xa2,0x00,0x01,0x04,0x66,0x05,0xaa,0x00,0x01,0x02,0x5b,0xff,0xe7,0x00,0x01,0x01,0xab,0x04,0xb8,0x00,0x01,0x03,0x6a,0x03,0xc8,0x00,0x01,0x01,0xab, +0xff,0xe7,0x00,0x01,0x02,0x08,0x04,0xb8,0x00,0x01,0x02,0x08,0xff,0x51,0x00,0x01,0x02,0x5b,0x06,0x8c,0x00,0x01,0x04,0x66,0x05,0xec,0x00,0x01,0x02,0x5b,0xfe,0x2a,0x00,0x01,0x05,0x56,0x06,0x52,0x00,0x01,0x02,0x17,0x04,0xb8,0x00,0x01,0x02,0x17,0xff,0xe7,0x00,0x01,0x01,0xf5,0x04,0xb8,0x00,0x01,0x04,0x96,0x03,0xc8,0x00,0x01, +0x01,0xf5,0xff,0xe7,0x00,0x01,0x01,0xbb,0x04,0xb8,0x00,0x01,0x02,0xfe,0x03,0xc8,0x00,0x01,0x01,0xbb,0xff,0xe7,0x00,0x01,0x01,0x93,0x04,0xb8,0x00,0x01,0x01,0x93,0xff,0xe7,0x00,0x01,0x03,0xa0,0x03,0xc8,0x00,0x01,0x02,0x34,0x04,0xb8,0x00,0x01,0x04,0x18,0x03,0xc8,0x00,0x01,0x02,0x34,0xff,0xe7,0x00,0x01,0x01,0x1c,0x04,0xa0, +0x00,0x01,0x02,0x38,0x04,0x50,0x00,0x01,0x01,0x1c,0xfe,0x2a,0x00,0x01,0x02,0x5b,0x06,0x72,0x00,0x01,0x02,0x1e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0x18,0x00,0x01,0x02,0x1e,0xff,0xe7,0x00,0x01,0x01,0xea,0x04,0xa0,0x00,0x01,0x03,0xd5,0x04,0x50,0x00,0x01,0x01,0xea,0xfe,0x2a,0x00,0x01,0x01,0xd4,0x04,0xb8,0x00,0x01,0x03,0xa8, +0x04,0x68,0x00,0x01,0x01,0xd4,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xe2,0x00,0x01,0x04,0x37,0x04,0x50,0x00,0x01,0x02,0x43,0xfe,0x2a,0x00,0x01,0x02,0x43,0x06,0xa2,0x00,0x01,0x04,0x1a,0x05,0x78,0x00,0x01,0x01,0x0c,0x06,0x29,0x00,0x01,0x01,0xc8,0x05,0x89,0x00,0x01,0x01,0x0c,0xff,0xf1,0x00,0x01,0x00,0xe1,0x04,0xa0,0x00,0x01, +0x01,0xea,0x04,0x50,0x00,0x01,0x01,0x40,0x04,0xa0,0x00,0x01,0x02,0x90,0x04,0x50,0x00,0x01,0x01,0x40,0xff,0xf1,0x00,0x01,0x01,0x18,0x06,0x8c,0x00,0x01,0x02,0x3e,0x05,0x9c,0x00,0x01,0x01,0x18,0xff,0xf1,0x00,0x01,0x01,0x9a,0x06,0x8c,0x00,0x01,0x03,0x02,0x05,0x9c,0x00,0x01,0x01,0x9a,0xff,0xf1,0x00,0x01,0x00,0xf7,0x06,0x8c, +0x00,0x01,0x01,0xee,0x05,0x9c,0x00,0x01,0x01,0x3f,0xfe,0x2a,0x00,0x01,0x02,0xf8,0x06,0x72,0x00,0x01,0x04,0xd3,0x04,0xb0,0x00,0x01,0x02,0xf8,0xfe,0x2a,0x00,0x01,0x03,0x7a,0x04,0xa0,0x00,0x01,0x06,0x94,0x04,0x50,0x00,0x01,0x03,0x7a,0xfe,0x2a,0x00,0x01,0x02,0x11,0xff,0xf1,0x00,0x01,0x02,0x58,0x04,0xa0,0x00,0x01,0x04,0x60, +0x04,0x50,0x00,0x01,0x02,0x58,0x04,0xb8,0x00,0x01,0x04,0x60,0x03,0xc8,0x00,0x01,0x03,0x6b,0x04,0xb6,0x00,0x01,0x05,0x96,0x04,0x66,0x00,0x01,0x03,0x6b,0xff,0xe7,0x00,0x01,0x02,0xdf,0x04,0xb8,0x00,0x01,0x05,0x74,0x03,0xc8,0x00,0x01,0x02,0xdf,0xff,0xe7,0x00,0x01,0x02,0x8d,0x06,0x8c,0x00,0x01,0x04,0xca,0x05,0x4c,0x00,0x01, +0x02,0x8d,0xfe,0x2a,0x00,0x01,0x01,0xd1,0x04,0xa0,0x00,0x01,0x02,0x78,0x04,0x50,0x00,0x01,0x01,0x64,0xff,0xe7,0x00,0x01,0x01,0xd1,0x06,0x8c,0x00,0x01,0x02,0x78,0x06,0x3c,0x00,0x01,0x01,0x64,0xfe,0x2a,0x00,0x01,0x01,0xcc,0x04,0xb2,0x00,0x01,0x01,0x86,0x04,0xb8,0x00,0x01,0x02,0xfe,0x04,0x68,0x00,0x01,0x00,0xe1,0xff,0xf1, +0x00,0x01,0x01,0x18,0x04,0xb8,0x00,0x01,0x02,0x5e,0x04,0x18,0x00,0x01,0x01,0xcc,0xff,0xf1,0x00,0x01,0x01,0xef,0x04,0xa0,0x00,0x01,0x03,0xa2,0x04,0x00,0x00,0x01,0x01,0xef,0xff,0xf1,0x00,0x01,0x03,0xa2,0x04,0x50,0x00,0x01,0x01,0xae,0xfe,0xa2,0x00,0x01,0x01,0x4a,0x06,0xa2,0x00,0x01,0x02,0x9a,0x06,0x52,0x00,0x01,0x00,0xb4, +0xfe,0x2a,0x00,0x01,0x01,0x5e,0x06,0xa2,0x00,0x01,0x02,0xb0,0x06,0x52,0x00,0x01,0x00,0xc8,0xfe,0x2a,0x00,0x01,0x00,0xb4,0x06,0xa2,0x00,0x01,0x01,0xfe,0x05,0xb2,0x00,0x01,0x01,0x4a,0xff,0xe7,0x00,0x01,0x01,0x68,0x06,0xa2,0x00,0x01,0x02,0xe4,0x06,0x52,0x00,0x01,0x00,0xdc,0xfe,0x2a,0x00,0x01,0x01,0x2c,0x04,0xb6,0x00,0x01, +0x02,0x68,0x03,0xc6,0x00,0x01,0x01,0x90,0xfe,0xd4,0x00,0x01,0x01,0x80,0xfe,0x2a,0x00,0x01,0x02,0x65,0x04,0xa0,0x00,0x01,0x04,0x7b,0x04,0x50,0x00,0x01,0x02,0x65,0xff,0xe7,0x00,0x01,0x02,0x61,0x04,0xa0,0x00,0x01,0x04,0xc2,0x04,0x50,0x00,0x01,0x02,0x61,0xff,0xe7,0x00,0x01,0x02,0x3b,0x04,0xb8,0x00,0x01,0x04,0x27,0x04,0x68, +0x00,0x01,0x02,0x3b,0xff,0xe7,0x00,0x01,0x01,0xf4,0x04,0xa0,0x00,0x01,0x03,0x35,0x04,0x50,0x00,0x01,0x02,0xe4,0x04,0xa0,0x00,0x01,0x05,0x28,0x04,0x50,0x00,0x01,0x02,0xe4,0xff,0xf1,0x00,0x01,0x01,0xef,0x06,0x8c,0x00,0x01,0x03,0xdf,0x05,0x9c,0x00,0x01,0x01,0xab,0x04,0xa0,0x00,0x01,0x03,0x56,0x04,0x50,0x00,0x01,0x01,0xab, +0xff,0xf1,0x00,0x01,0x01,0xc2,0xfe,0xd4,0x00,0x01,0x02,0x0c,0xff,0x51,0x00,0x01,0x01,0x90,0x05,0x14,0x00,0x01,0x01,0x76,0x06,0xa2,0x00,0x01,0x03,0x3c,0x05,0xb2,0x00,0x01,0x01,0x2c,0xff,0xf1,0x00,0x01,0x02,0xec,0x05,0xb2,0x00,0x01,0x01,0xa4,0xff,0xf1,0x00,0x01,0x02,0x9c,0x05,0x4c,0x00,0x01,0x01,0x58,0xff,0xe7,0x00,0x01, +0x02,0x3a,0x04,0xb8,0x00,0x01,0x03,0xba,0x04,0x68,0x00,0x01,0x02,0x71,0x06,0xa4,0x00,0x01,0x04,0x74,0x05,0xdc,0x00,0x01,0x02,0x71,0xff,0xe7,0x00,0x01,0x03,0x8f,0x04,0x00,0x00,0x01,0x02,0x31,0x04,0xb8,0x00,0x01,0x04,0x12,0x03,0xc8,0x00,0x01,0x02,0x31,0xff,0xe7,0x00,0x01,0x02,0x8a,0x05,0x46,0x00,0x01,0x04,0xdc,0x04,0xe2, +0x00,0x01,0x02,0x8a,0xff,0xe7,0x00,0x01,0x02,0x43,0x04,0xa0,0x00,0x01,0x01,0x04,0x06,0x79,0x00,0x01,0x01,0x9e,0x05,0x89,0x00,0x01,0x00,0x62,0xfe,0x2a,0x00,0x01,0x01,0xfe,0x04,0xa0,0x00,0x01,0x03,0xac,0x04,0x50,0x00,0x01,0x01,0xfe,0xfe,0x2a,0x00,0x01,0x01,0xe0,0x04,0xa0,0x00,0x01,0x03,0x14,0x03,0xb0,0x00,0x01,0x05,0x56, +0x06,0x02,0x00,0x01,0x05,0xaa,0x06,0x72,0x00,0x01,0x07,0x54,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0xf1,0x00,0x01,0x07,0x98,0x04,0xb0,0x00,0x01,0x05,0xaa,0xfe,0x2a,0x00,0x01,0x07,0x7f,0x04,0xb0,0x00,0x01,0x05,0xaa,0xff,0x51,0x00,0x01,0x03,0x6f,0x05,0x78,0x00,0x01,0x04,0x98,0x04,0xb0,0x00,0x01,0x03,0x6f,0xff,0xf1,0x00,0x01, +0x02,0xaa,0x06,0x52,0x00,0x01,0x04,0x6f,0x06,0x52,0x00,0x01,0x02,0xaa,0xfe,0x2a,0x00,0x01,0x04,0x05,0x05,0x78,0x00,0x01,0x05,0x6e,0x04,0x8f,0x00,0x01,0x04,0x05,0xff,0xe7,0x00,0x01,0x04,0x70,0x06,0x72,0x00,0x01,0x04,0x70,0xfe,0x2a,0x00,0x01,0x03,0x3f,0x06,0x72,0x00,0x01,0x04,0x54,0x04,0xb0,0x00,0x01,0x03,0x3f,0xff,0xe7, +0x00,0x01,0x02,0xee,0x06,0x72,0x00,0x01,0x04,0x8e,0x04,0xb0,0x00,0x01,0x02,0xee,0xff,0xf1,0x00,0x01,0x02,0x08,0x06,0x3a,0x00,0x01,0x04,0x44,0x05,0x9a,0x00,0x01,0x01,0xfa,0xff,0xf1,0x00,0x01,0x01,0xfa,0x06,0x3a,0x00,0x01,0x00,0xf0,0x05,0x14,0x00,0x01,0x01,0xa4,0x04,0xb0,0x00,0x01,0x01,0x09,0x05,0x14,0x00,0x01,0x02,0x1c, +0x06,0x8c,0x00,0x01,0x04,0x87,0x06,0x8c,0x00,0x01,0x02,0x1c,0xfe,0x2a,0x00,0x01,0x00,0xfa,0x06,0x8c,0x00,0x01,0x01,0x96,0x06,0x8c,0x00,0x01,0x02,0x4e,0x04,0xb8,0x00,0x01,0x03,0xec,0x04,0xb8,0x00,0x01,0x01,0x2c,0x05,0xcf,0x00,0x01,0x01,0xe5,0x05,0x7f,0x00,0x01,0x01,0x2c,0xfe,0x2a,0x00,0x01,0x04,0x6c,0x04,0x68,0x00,0x01, +0x03,0xbd,0x06,0x72,0x00,0x01,0x06,0xba,0x05,0x78,0x00,0x01,0x03,0xbd,0xff,0xe7,0x00,0x01,0x03,0xbd,0x05,0x14,0x00,0x01,0x06,0xba,0x04,0xb0,0x00,0x01,0x03,0xbd,0xfe,0x2a,0x00,0x01,0x02,0x8c,0x06,0x90,0x00,0x01,0x03,0x93,0x06,0x7c,0x00,0x01,0x02,0x9e,0xff,0xa1,0x00,0x01,0x02,0xee,0x06,0x90,0x00,0x01,0x04,0x7c,0x06,0x2c, +0x00,0x01,0x02,0xee,0xff,0x97,0x00,0x01,0x02,0x26,0x05,0xb4,0x00,0x01,0x04,0x52,0x04,0xd1,0x00,0x01,0x02,0x3a,0xff,0x97,0x00,0x01,0x02,0x26,0x06,0x90,0x00,0x01,0x04,0x9c,0x06,0x2c,0x00,0x01,0x02,0x26,0xff,0xa1,0x00,0x01,0x01,0xae,0xfe,0x8e,0x00,0x01,0x01,0xc2,0xfe,0x8e,0x00,0x01,0x02,0x0b,0x06,0x7a,0x00,0x01,0x03,0xc6, +0x06,0x02,0x00,0x01,0x01,0x9b,0x05,0x14,0x00,0x01,0x02,0xd6,0x04,0xb0,0x00,0x01,0x00,0xe6,0xff,0xf1,0x00,0x01,0x02,0x5b,0x04,0xb8,0x00,0x01,0x04,0xb6,0x04,0x18,0x00,0x01,0x01,0xd8,0x06,0x3a,0x00,0x01,0x03,0xb1,0x05,0x9a,0x00,0x01,0x01,0xd8,0xff,0xf1,0x00,0x01,0x02,0x4f,0x04,0xa0,0x00,0x01,0x04,0x9f,0x04,0x50,0x00,0x01, +0x02,0x4f,0xfe,0x2a,0x00,0x01,0x05,0x11,0x06,0xc2,0x00,0x01,0x06,0x83,0x05,0x78,0x00,0x01,0x05,0x11,0xff,0xf1,0x00,0x01,0x01,0x48,0x04,0xa0,0x00,0x01,0x01,0x48,0xff,0xf1,0x00,0x01,0x01,0xa4,0x04,0xa0,0x00,0x01,0x02,0x23,0x04,0xa0,0x00,0x01,0x03,0xf6,0x04,0x50,0x00,0x01,0x02,0x23,0xff,0xe7,0x00,0x01,0x02,0x6c,0xfe,0xa2, +0x00,0x01,0x02,0x1c,0xfe,0xa2,0x00,0x01,0x01,0x36,0xfe,0xa2,0x00,0x01,0x02,0x4e,0xfe,0xa2,0x00,0x01,0x03,0x7a,0xfe,0xa2,0x00,0x01,0x01,0xf4,0xfe,0xa2,0x00,0x01,0x01,0xd6,0xfe,0xa2,0x00,0x01,0x01,0xc2,0xfe,0xa2,0x00,0x01,0x01,0xbb,0xfe,0xa2,0x00,0x01,0x01,0x93,0xfe,0xa2,0x00,0x01,0x01,0xdd,0x05,0x14,0x00,0x01,0x01,0xdd, +0xfe,0xa2,0x00,0x01,0x01,0xc4,0x04,0xa0,0x00,0x01,0x03,0x89,0x04,0x50,0x00,0x01,0x01,0xc4,0xfe,0x2a,0x00,0x01,0x02,0x60,0x04,0xee,0x00,0x01,0x04,0x71,0x04,0x4e,0x00,0x01,0x02,0x60,0xff,0xe7,0x00,0x01,0x01,0x7a,0x05,0xd0,0x00,0x01,0x02,0xa4,0x05,0x30,0x00,0x01,0x02,0x58,0xff,0x6a,0x00,0x01,0x02,0x3a,0x05,0x8d,0x00,0x01, +0x04,0x2f,0x05,0x00,0x00,0x01,0x03,0x00,0x06,0x52,0x00,0x01,0x05,0x4d,0x06,0x02,0x00,0x01,0x03,0x00,0xff,0x06,0x00,0x01,0x02,0x5b,0x05,0x14,0x00,0x01,0x04,0x34,0x04,0x68,0x00,0x01,0x02,0x5b,0xff,0x06,0x00,0x01,0x01,0xce,0x04,0xa1,0x00,0x01,0x03,0x20,0x04,0xa1,0x00,0x01,0x01,0xce,0xff,0xf1,0x00,0x01,0x01,0x22,0x06,0x72, +0x00,0x01,0x01,0x22,0xff,0xf1,0x00,0x01,0x02,0x9e,0xfe,0x8e,0x00,0x01,0x02,0x08,0x05,0x8d,0x00,0x01,0x03,0x9a,0x05,0x00,0x00,0x01,0x01,0x2c,0x05,0xea,0x00,0x01,0x02,0x66,0x05,0xc8,0x00,0x01,0x01,0x80,0xff,0x06,0x00,0x01,0x04,0x4c,0x04,0xb0,0x00,0x01,0x02,0xcc,0x04,0xb8,0x00,0x01,0x04,0xb0,0x04,0xb0,0x00,0x01,0x02,0xcc, +0xff,0xe7,0x00,0x01,0x01,0x18,0x04,0xba,0x00,0x01,0x01,0x04,0x04,0xba,0x00,0x01,0x00,0x00,0x04,0xba,0x00,0x01,0xff,0xf6,0x04,0xb0,0x00,0x01,0x02,0x26,0x07,0x33,0x00,0x01,0x02,0x58,0x07,0x62,0x00,0x01,0x02,0x76,0x07,0xa8,0x00,0x01,0x02,0x94,0x06,0x3a,0x00,0x01,0x02,0x06,0x06,0x3a,0x00,0x01,0x02,0xff,0x06,0x3a,0x00,0x01, +0x02,0xee,0x07,0x4a,0x00,0x01,0x03,0x0c,0x07,0xa8,0x00,0x01,0x03,0x04,0x06,0x6a,0x00,0x01,0x03,0x04,0x06,0x3a,0x00,0x01,0x02,0x40,0x06,0x52,0x00,0x01,0x02,0x40,0x06,0x3a,0x00,0x01,0x03,0x22,0x06,0x3a,0x00,0x01,0x02,0x77,0x06,0x6a,0x00,0x01,0x02,0x58,0x06,0x3a,0x00,0x01,0x04,0x13,0x06,0x6a,0x00,0x01,0x03,0xd4,0x06,0x3a, +0x00,0x01,0x02,0x09,0x04,0xd0,0x00,0x01,0x02,0x08,0x04,0xd0,0x00,0x01,0x02,0x17,0x04,0xd0,0x00,0x01,0x02,0x53,0x04,0xa0,0x00,0x01,0x02,0x53,0x04,0xd0,0x00,0x01,0x02,0x3f,0x05,0xee,0x00,0x01,0x02,0x58,0x06,0x5e,0x00,0x01,0x02,0x58,0x04,0xd0,0x00,0x01,0x01,0xef,0x05,0x4a,0x00,0x01,0x01,0xef,0x04,0xd0,0x00,0x01,0x02,0xd6, +0x04,0xa0,0x00,0x01,0x02,0xd0,0x04,0xd0,0x00,0x01,0x01,0xd9,0x04,0xd0,0x00,0x01,0x03,0x40,0x04,0xd0,0x00,0x01,0x03,0x20,0x04,0xd0,0x00,0x01,0x02,0x03,0x04,0xa0,0x00,0x01,0x02,0x03,0x04,0xd0,0x00,0x01,0x02,0x17,0x05,0x9f,0x00,0x01,0x02,0x17,0x06,0x2c,0x00,0x01,0x01,0xdc,0x06,0x19,0x00,0x01,0x01,0xf4,0x06,0x5e,0x00,0x01, +0x02,0xe2,0x06,0x6a,0x00,0x01,0x02,0xe2,0x06,0x3a,0x00,0x01,0x00,0xc8,0x02,0xf8,0x00,0x01,0x03,0x0c,0x05,0x9a,0x00,0x01,0x03,0xc0,0x05,0x22,0x00,0x01,0x04,0x8e,0x05,0x82,0x00,0x01,0x04,0xaf,0x05,0x07,0x00,0x01,0x03,0x94,0x05,0x9a,0x00,0x01,0x03,0x9d,0x05,0x9a,0x00,0x01,0x04,0xcf,0x05,0x40,0x00,0x01,0x04,0xf7,0x05,0x9a, +0x00,0x01,0x01,0xe0,0x05,0x9a,0x00,0x01,0x02,0x2d,0x05,0xa0,0x00,0x01,0x04,0x2c,0x05,0x9a,0x00,0x01,0x01,0x6a,0x05,0x9a,0x00,0x01,0x06,0x6d,0x05,0x9a,0x00,0x01,0x05,0x45,0x05,0x9a,0x00,0x01,0x05,0x51,0x04,0x94,0x00,0x01,0x04,0x03,0x05,0x22,0x00,0x01,0x03,0xf7,0x05,0x22,0x00,0x01,0x03,0xad,0x05,0x82,0x00,0x01,0x04,0x01, +0x05,0x9a,0x00,0x01,0x04,0xd1,0x05,0xa0,0x00,0x01,0x04,0xd1,0x05,0x9a,0x00,0x01,0x07,0x47,0x05,0x9a,0x00,0x01,0x04,0x38,0x05,0x9a,0x00,0x01,0x04,0x4c,0x05,0x9a,0x00,0x01,0x03,0x70,0x03,0x8e,0x00,0x01,0x04,0x0f,0x03,0x92,0x00,0x01,0x03,0x5d,0x03,0xdf,0x00,0x01,0x04,0x08,0x05,0xe9,0x00,0x01,0x03,0x98,0x03,0x8e,0x00,0x01, +0x02,0xa2,0x05,0xf0,0x00,0x01,0x04,0x08,0x03,0xff,0x00,0x01,0x03,0xe2,0x03,0x35,0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4b,0x03,0xf8,0x00,0x01,0x03,0x82,0x04,0x02,0x00,0x01,0x01,0x40,0x05,0xe9,0x00,0x01,0x06,0x40,0x03,0xa0,0x00,0x01,0x03,0xd4,0x03,0xa0,0x00,0x01,0x03,0xfc,0x03,0x8e,0x00,0x01,0x03,0xfc,0x03,0xaf, +0x00,0x01,0x04,0x08,0x04,0x03,0x00,0x01,0x02,0xb3,0x04,0x06,0x00,0x01,0x02,0xe4,0x03,0xfc,0x00,0x01,0x02,0x74,0x03,0xfe,0x00,0x01,0x03,0xde,0x03,0xfc,0x00,0x01,0x03,0xc1,0x04,0x00,0x00,0x01,0x05,0xa0,0x04,0x00,0x00,0x01,0x03,0x66,0x04,0x00,0x00,0x01,0x03,0xc0,0x03,0xfc,0x00,0x01,0x03,0x52,0x04,0x00,0x00,0x01,0x06,0x30, +0x03,0x8e,0x00,0x01,0x04,0x3e,0x03,0x07,0x00,0x01,0x06,0xf4,0x03,0x8e,0x00,0x01,0x01,0x40,0x04,0x06,0x00,0x01,0x03,0x84,0x03,0xb8,0x00,0x01,0x03,0x6e,0x04,0x0c,0x00,0x01,0x04,0x9e,0x04,0x0c,0x00,0x01,0x03,0xd8,0x03,0xf1,0x00,0x01,0x02,0xf1,0x03,0xb8,0x00,0x01,0x03,0x42,0x03,0xe8,0x00,0x01,0x02,0xd6,0x03,0xfc,0x00,0x01, +0x02,0x80,0x03,0xfc,0x00,0x01,0x03,0xde,0x03,0xb8,0x00,0x01,0x03,0x9c,0x04,0x1a,0x00,0x01,0x01,0x61,0x03,0xfc,0x00,0x01,0x02,0x33,0x04,0x00,0x00,0x01,0x05,0x39,0x04,0x08,0x00,0x01,0x04,0x02,0x03,0xfc,0x00,0x01,0x04,0x5c,0x04,0x0f,0x00,0x01,0x02,0x56,0x03,0xfd,0x00,0x01,0x00,0x00,0x02,0x21,0x00,0x01,0x00,0x00,0x02,0x12, +0x00,0x01,0x00,0x00,0x02,0x58,0x00,0x01,0x02,0x94,0x02,0xcd,0x00,0x01,0x02,0x4b,0x02,0xcd,0x00,0x01,0x02,0xde,0x02,0xe5,0x00,0x01,0x02,0xee,0x02,0xcd,0x00,0x01,0x02,0x06,0x02,0xcd,0x00,0x01,0x01,0xf4,0x02,0xcd,0x00,0x01,0x02,0xbe,0x02,0xe5,0x00,0x01,0x02,0xd7,0x02,0xcd,0x00,0x01,0x01,0x10,0x02,0xcd,0x00,0x01,0x01,0xd1, +0x02,0xd9,0x00,0x01,0x00,0xed,0x03,0xeb,0x00,0x01,0x01,0x0e,0x02,0xcd,0x00,0x01,0x03,0xa2,0x03,0x42,0x00,0x01,0x02,0xfe,0x02,0xcd,0x00,0x01,0x03,0x04,0x02,0xe5,0x00,0x01,0x02,0x64,0x03,0xeb,0x00,0x01,0x03,0x04,0x02,0xe2,0x00,0x01,0x02,0x20,0x02,0xe5,0x00,0x01,0x02,0x18,0x02,0xcd,0x00,0x01,0x02,0xbf,0x02,0xd9,0x00,0x01, +0x02,0x7c,0x02,0xcd,0x00,0x01,0x03,0xbc,0x02,0xcd,0x00,0x01,0x02,0x5c,0x02,0xcd,0x00,0x01,0x02,0x36,0x01,0xae,0x00,0x01,0x02,0x48,0x02,0xcd,0x00,0x01,0x02,0x09,0x01,0x41,0x00,0x01,0x02,0x80,0x01,0xce,0x00,0x01,0x02,0x3d,0x02,0x18,0x00,0x01,0x02,0x44,0x02,0x1b,0x00,0x01,0x02,0x35,0x02,0x58,0x00,0x01,0x01,0x40,0x02,0x67, +0x00,0x01,0x02,0x37,0x01,0xfc,0x00,0x01,0x01,0x01,0x04,0x71,0x00,0x01,0x01,0x03,0x02,0x26,0x00,0x01,0x00,0xf8,0x01,0xef,0x00,0x01,0x00,0xfa,0x04,0x25,0x00,0x01,0x00,0xfa,0x02,0xf9,0x00,0x01,0x03,0x72,0x02,0x0c,0x00,0x01,0x02,0x4c,0x02,0x0c,0x00,0x01,0x02,0x53,0x02,0x18,0x00,0x01,0x02,0x7c,0x01,0xef,0x00,0x01,0x02,0x3d, +0x02,0x13,0x00,0x01,0x01,0x01,0x01,0xe5,0x00,0x01,0x01,0xb2,0x02,0x18,0x00,0x01,0x01,0x2c,0x02,0x1b,0x00,0x01,0x02,0x39,0x02,0x0c,0x00,0x01,0x02,0x17,0x02,0x6c,0x00,0x01,0x02,0xe4,0x02,0x00,0x00,0x01,0x01,0xd6,0x02,0x00,0x00,0x01,0x01,0xef,0x02,0x5a,0x00,0x01,0x01,0xcf,0x02,0x00,0x00,0x01,0x02,0x58,0x01,0xd7,0x00,0x01, +0x03,0x04,0x02,0xff,0x00,0x01,0x01,0xb2,0x01,0xd7,0x00,0x01,0x01,0x9d,0x01,0xd0,0x00,0x01,0x02,0x3c,0x01,0xcf,0x00,0x01,0x00,0xe5,0x02,0x0c,0x00,0x01,0x00,0xfd,0x03,0x28,0x00,0x01,0x02,0xf6,0x00,0x6f,0x00,0x01,0x00,0x00,0x05,0xc8,0x00,0x01,0x00,0x00,0x05,0xbe,0x00,0x01,0x00,0x00,0xff,0x6a,0x00,0x01,0x05,0x12,0x07,0x6c, +0x00,0x01,0x05,0x12,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x07,0x6c,0x00,0x01,0x04,0x2f,0xfe,0x5c,0x00,0x01,0x04,0x8c,0x07,0x6c,0x00,0x01,0x04,0x8c,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x07,0x6c,0x00,0x01,0x05,0x3e,0xfe,0x5c,0x00,0x01,0x03,0xb4,0x07,0x6c,0x00,0x01,0x03,0xb4,0xfe,0x5c,0x00,0x01,0x03,0x94,0x07,0x6c,0x00,0x01,0x03,0x94, +0xfe,0x5c,0x00,0x01,0x04,0xec,0x07,0x6c,0x00,0x01,0x04,0xec,0xfe,0x5c,0x00,0x01,0x04,0xf2,0x07,0x6c,0x00,0x01,0x04,0xf2,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x07,0x6c,0x00,0x01,0x01,0xf0,0xfe,0x5c,0x00,0x01,0x02,0x2b,0x07,0x6c,0x00,0x01,0x02,0x2b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x07,0x6c,0x00,0x01,0x04,0xa2,0xfe,0x5c,0x00,0x01, +0x03,0xa4,0x07,0x6c,0x00,0x01,0x03,0xa4,0xfe,0x5c,0x00,0x01,0x06,0x72,0x07,0x6c,0x00,0x01,0x06,0x72,0xfe,0x5c,0x00,0x01,0x05,0x40,0x07,0x6c,0x00,0x01,0x05,0x40,0xfe,0x5c,0x00,0x01,0x05,0xaa,0x07,0x6c,0x00,0x01,0x05,0xaa,0xfe,0x5c,0x00,0x01,0x04,0x29,0x07,0x6c,0x00,0x01,0x04,0x29,0xfe,0x5c,0x00,0x01,0x05,0xcc,0x07,0x6c, +0x00,0x01,0x05,0xcc,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x07,0x6c,0x00,0x01,0x04,0xc0,0xfe,0x5c,0x00,0x01,0x03,0xde,0x07,0x6c,0x00,0x01,0x03,0xde,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x07,0x6c,0x00,0x01,0x04,0x0c,0xfe,0x5c,0x00,0x01,0x04,0xd5,0x07,0x6c,0x00,0x01,0x04,0xd5,0xfe,0x5c,0x00,0x01,0x04,0xe6,0x07,0x6c,0x00,0x01,0x04,0xe6, +0xfe,0x5c,0x00,0x01,0x07,0x60,0x07,0x6c,0x00,0x01,0x07,0x60,0xfe,0x5c,0x00,0x01,0x04,0x9a,0x07,0x6c,0x00,0x01,0x04,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x60,0x07,0x6c,0x00,0x01,0x04,0x60,0xfe,0x5c,0x00,0x01,0x04,0x64,0x07,0x6c,0x00,0x01,0x04,0x64,0xfe,0x5c,0x00,0x01,0x03,0x83,0x07,0x6c,0x00,0x01,0x03,0x83,0xfe,0x5c,0x00,0x01, +0x04,0x54,0x07,0x6c,0x00,0x01,0x04,0x54,0xfe,0x5c,0x00,0x01,0x03,0x62,0x07,0x6c,0x00,0x01,0x03,0x62,0xfe,0x5c,0x00,0x01,0x04,0x10,0x07,0x6c,0x00,0x01,0x04,0x10,0xfe,0x5c,0x00,0x01,0x03,0xdd,0x07,0x6c,0x00,0x01,0x03,0xdd,0xfe,0x5c,0x00,0x01,0x02,0xa0,0x07,0x6c,0x00,0x01,0x02,0xa0,0xfe,0x5c,0x00,0x01,0x03,0xf8,0x07,0x6c, +0x00,0x01,0x03,0xf8,0xfe,0x5c,0x00,0x01,0x01,0x66,0x07,0x6c,0x00,0x01,0x01,0x66,0xfe,0x5c,0x00,0x01,0x01,0x4a,0x07,0x6c,0x00,0x01,0x01,0x4a,0xfe,0x5c,0x00,0x01,0x06,0x54,0x07,0x6c,0x00,0x01,0x06,0x54,0xfe,0x5c,0x00,0x01,0x04,0x50,0x07,0x6c,0x00,0x01,0x04,0x50,0xfe,0x5c,0x00,0x01,0x02,0xbc,0x07,0x6c,0x00,0x01,0x02,0xbc, +0xfe,0x5c,0x00,0x01,0x03,0x0f,0x07,0x6c,0x00,0x01,0x03,0x0f,0xfe,0x5c,0x00,0x01,0x02,0x81,0x07,0x6c,0x00,0x01,0x02,0x81,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x07,0x6c,0x00,0x01,0x03,0xe2,0xfe,0x5c,0x00,0x01,0x03,0xcb,0x07,0x6c,0x00,0x01,0x03,0xcb,0xfe,0x5c,0x00,0x01,0x05,0xb0,0x07,0x6c,0x00,0x01,0x05,0xb0,0xfe,0x5c,0x00,0x01, +0x03,0x92,0x07,0x6c,0x00,0x01,0x03,0x92,0xfe,0x5c,0x00,0x01,0x03,0xd5,0x07,0x6c,0x00,0x01,0x03,0xd5,0xfe,0x5c,0x00,0x01,0x03,0x70,0x07,0x6c,0x00,0x01,0x03,0x70,0xfe,0x5c,0x00,0x01,0x05,0x12,0x08,0x34,0x00,0x01,0x05,0x40,0x08,0x34,0x00,0x01,0x05,0xaa,0x08,0x34,0x00,0x01,0x04,0xd5,0x08,0x34,0x00,0x01,0x01,0xdd,0x07,0x6c, +0x00,0x01,0x01,0xdd,0xfe,0x5c,0x00,0x01,0x01,0x71,0x07,0x6c,0x00,0x01,0x01,0x71,0xfe,0x5c,0x00,0x01,0x02,0x07,0x07,0x6c,0x00,0x01,0x02,0x07,0xfe,0x5c,0x00,0x01,0x02,0x10,0x07,0x6c,0x00,0x01,0x02,0x10,0xfe,0x5c,0x00,0x01,0x04,0x14,0x07,0x6c,0x00,0x01,0x04,0x14,0xfe,0x5c,0x00,0x01,0x06,0x83,0x07,0x6c,0x00,0x01,0x06,0x83, +0xfe,0x5c,0x00,0x01,0x06,0x56,0x07,0x6c,0x00,0x01,0x06,0x56,0xfe,0x5c,0x00,0x01,0x04,0x96,0x07,0x6c,0x00,0x01,0x04,0x96,0xfe,0x5c,0x00,0x01,0x03,0xb8,0x07,0x6c,0x00,0x01,0x03,0xb8,0xfe,0x5c,0x00,0x01,0x07,0x12,0x07,0x6c,0x00,0x01,0x07,0x12,0xfe,0x5c,0x00,0x01,0x07,0x21,0x07,0x6c,0x00,0x01,0x07,0x21,0xfe,0x5c,0x00,0x01, +0x03,0xb4,0x08,0x34,0x00,0x01,0x01,0xfd,0x08,0x34,0x00,0x01,0x01,0xfd,0xfe,0x5c,0x00,0x01,0x02,0x30,0x08,0x34,0x00,0x01,0x02,0x30,0xfe,0x5c,0x00,0x01,0x02,0x38,0x08,0x34,0x00,0x01,0x02,0x38,0xfe,0x5c,0x00,0x01,0x01,0xf0,0x08,0x34,0x00,0x01,0x02,0x12,0x07,0x6c,0x00,0x01,0x02,0x12,0xfe,0x5c,0x00,0x01,0x03,0xde,0x08,0x34, +0x00,0x01,0x04,0x64,0x08,0x34,0x00,0x01,0x04,0x18,0x07,0x6c,0x00,0x01,0x04,0x18,0xfe,0x5c,0x00,0x01,0x04,0x60,0x08,0x34,0x00,0x01,0x04,0xec,0x08,0x34,0x00,0x01,0x04,0x8c,0x08,0x34,0x00,0x01,0x04,0x98,0x07,0x6c,0x00,0x01,0x04,0x98,0xfe,0x5c,0x00,0x01,0x05,0x3e,0x08,0x34,0x00,0x01,0x05,0xb3,0x07,0x6c,0x00,0x01,0x05,0xb3, +0xfe,0x5c,0x00,0x01,0x03,0xa4,0x08,0x34,0x00,0x01,0x02,0x13,0x07,0x6c,0x00,0x01,0x02,0x13,0xfe,0x5c,0x00,0x01,0x02,0xc3,0x07,0x6c,0x00,0x01,0x02,0xc3,0xfe,0x5c,0x00,0x01,0x02,0x87,0x07,0x6c,0x00,0x01,0x02,0x87,0xfe,0x5c,0x00,0x01,0x04,0xc0,0x08,0x34,0x00,0x01,0x02,0xc9,0x07,0x6c,0x00,0x01,0x02,0xc9,0xfe,0x5c,0x00,0x01, +0x02,0x9a,0x07,0x6c,0x00,0x01,0x02,0x9a,0xfe,0x5c,0x00,0x01,0x04,0x0c,0x08,0x34,0x00,0x01,0x03,0xd3,0x07,0x6c,0x00,0x01,0x03,0xd3,0xfe,0x5c,0x00,0x01,0x04,0x4e,0x07,0x6c,0x00,0x01,0x04,0x4e,0xfe,0x5c,0x00,0x01,0x03,0x6c,0x07,0x6c,0x00,0x01,0x03,0x6c,0xfe,0x5c,0x00,0x01,0x04,0x4a,0x07,0x6c,0x00,0x01,0x04,0x4a,0xfe,0x5c, +0x00,0x01,0x04,0xf2,0x08,0x34,0x00,0x01,0x03,0xf8,0x08,0x34,0x00,0x01,0x05,0x92,0x07,0x6c,0x00,0x01,0x05,0x92,0xfe,0x5c,0x00,0x01,0x02,0x51,0x07,0x6c,0x00,0x01,0x02,0x51,0xfe,0x5c,0x00,0x01,0x02,0x2e,0x07,0x6c,0x00,0x01,0x02,0x2e,0xfe,0x5c,0x00,0x01,0x02,0x0f,0x07,0x6c,0x00,0x01,0x02,0x0f,0xfe,0x5c,0x00,0x01,0x01,0xeb, +0x07,0x6c,0x00,0x01,0x01,0xeb,0xfe,0x5c,0x00,0x01,0x02,0x23,0x08,0x34,0x00,0x01,0x02,0x23,0xfe,0x5c,0x00,0x01,0x02,0x00,0x07,0x6c,0x00,0x01,0x02,0x00,0xfe,0x5c,0x00,0x01,0x02,0xf2,0x07,0x6c,0x00,0x01,0x02,0xf2,0xfe,0x5c,0x00,0x01,0x02,0x62,0x07,0x6c,0x00,0x01,0x02,0x62,0xfe,0x5c,0x00,0x01,0x07,0x60,0x08,0x34,0x00,0x01, +0x06,0x3a,0x07,0x6c,0x00,0x01,0x06,0x3a,0xfe,0x5c,0x00,0x01,0x04,0xa9,0x07,0x6c,0x00,0x01,0x04,0xa9,0xfe,0x5c,0x00,0x01,0x05,0xd0,0x07,0x6c,0x00,0x01,0x05,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc7,0x07,0x6c,0x00,0x01,0x04,0xc7,0xfe,0x5c,0x00,0x01,0x04,0x52,0x07,0x6c,0x00,0x01,0x04,0x52,0xfe,0x5c,0x00,0x01,0x03,0xe9,0x07,0x6c, +0x00,0x01,0x03,0xe9,0xfe,0x5c,0x00,0x01,0x03,0x83,0x08,0x34,0x00,0x01,0x04,0x6f,0x08,0x34,0x00,0x01,0x04,0x6f,0xfe,0x5c,0x00,0x01,0x04,0x5a,0x07,0x6c,0x00,0x01,0x04,0x5a,0xfe,0x5c,0x00,0x01,0x04,0x20,0x08,0x34,0x00,0x01,0x04,0x20,0xfe,0x5c,0x00,0x01,0x04,0x32,0x07,0x6c,0x00,0x01,0x04,0x32,0xfe,0x5c,0x00,0x01,0x03,0xdd, +0x08,0x34,0x00,0x01,0x01,0xa1,0x07,0x6c,0x00,0x01,0x01,0xa1,0xfe,0x5c,0x00,0x01,0x04,0x50,0x08,0x34,0x00,0x01,0x06,0x3a,0x08,0x34,0x00,0x01,0x05,0xd0,0x08,0x34,0x00,0x01,0x05,0x66,0x07,0x6c,0x00,0x01,0x05,0x66,0xfe,0x5c,0x00,0x01,0x03,0xcf,0x07,0x6c,0x00,0x01,0x03,0xcf,0xfe,0x5c,0x00,0x01,0x04,0x2f,0x08,0x34,0x00,0x01, +0x03,0x94,0x08,0x34,0x00,0x01,0x02,0xa0,0x08,0x34,0x00,0x01,0x02,0x50,0x07,0x6c,0x00,0x01,0x02,0x50,0xfe,0x5c,0x00,0x01,0x02,0x3a,0x07,0x6c,0x00,0x01,0x02,0x3a,0xfe,0x5c,0x00,0x01,0x02,0x39,0x08,0x34,0x00,0x01,0x02,0x39,0xfe,0x5c,0x00,0x01,0x02,0x1b,0x08,0x34,0x00,0x01,0x02,0x1b,0xfe,0x5c,0x00,0x01,0x04,0xa2,0x08,0x34, +0x00,0x01,0x01,0x5b,0x07,0x6c,0x00,0x01,0x01,0x5b,0xfe,0x5c,0x00,0x01,0x01,0xf6,0x08,0x34,0x00,0x01,0x01,0xf6,0xfe,0x5c,0x00,0x01,0x01,0xf8,0x07,0x6c,0x00,0x01,0x01,0xf8,0xfe,0x5c,0x00,0x01,0x06,0x72,0x08,0x34,0x00,0x01,0x04,0x29,0x08,0x34,0x00,0x01,0x02,0xc7,0x07,0x6c,0x00,0x01,0x02,0xc7,0xfe,0x5c,0x00,0x01,0x03,0x0f, +0x08,0x34,0x00,0x01,0x02,0x95,0x07,0x6c,0x00,0x01,0x02,0x95,0xfe,0x5c,0x00,0x01,0x02,0x86,0x07,0x6c,0x00,0x01,0x02,0x86,0xfe,0x5c,0x00,0x01,0x03,0xe2,0x08,0x34,0x00,0x01,0x04,0xe6,0x08,0x34,0x00,0x01,0x04,0x9a,0x08,0x34,0x00,0x01,0x02,0x62,0x08,0x34,0x00,0x01,0x04,0x81,0x07,0x6c,0x00,0x01,0x04,0x81,0xfe,0x5c,0x00,0x01, +0x04,0x38,0x07,0x6c,0x00,0x01,0x04,0x38,0xfe,0x5c,0x00,0x01,0x05,0x42,0x07,0x6c,0x00,0x01,0x05,0x42,0xfe,0x5c,0x00,0x01,0x04,0x0e,0x07,0x6c,0x00,0x01,0x04,0x0e,0xfe,0x5c,0x00,0x01,0x05,0x90,0x07,0x6c,0x00,0x01,0x05,0x90,0xfe,0x5c,0x00,0x01,0x03,0xd7,0x07,0x6c,0x00,0x01,0x03,0xd7,0xfe,0x5c,0x00,0x01,0x04,0x5c,0x07,0x6c, +0x00,0x01,0x04,0x5c,0xfe,0x5c,0x00,0x01,0x03,0x52,0x07,0x6c,0x00,0x01,0x03,0x52,0xfe,0x5c,0x00,0x01,0x03,0xf4,0x07,0x6c,0x00,0x01,0x03,0xf4,0xfe,0x5c,0x00,0x01,0x05,0x85,0x07,0x6c,0x00,0x01,0x05,0x85,0xfe,0x5c,0x00,0x01,0x06,0x87,0x07,0x6c,0x00,0x01,0x06,0x87,0xfe,0x5c,0x00,0x01,0x02,0x25,0x07,0x6c,0x00,0x01,0x02,0x25, +0xfe,0x5c,0x00,0x01,0x01,0xdb,0x07,0x6c,0x00,0x01,0x01,0xdb,0xfe,0x5c,0x00,0x01,0x03,0xdf,0x07,0x6c,0x00,0x01,0x03,0xdf,0xfe,0x5c,0x00,0x01,0x06,0x66,0x07,0x6c,0x00,0x01,0x06,0x66,0xfe,0x5c,0x00,0x01,0x07,0x04,0x07,0x6c,0x00,0x01,0x07,0x04,0xfe,0x5c,0x00,0x01,0x05,0xac,0x07,0x6c,0x00,0x01,0x05,0xac,0xfe,0x5c,0x00,0x01, +0x04,0x7b,0x07,0x6c,0x00,0x01,0x04,0x7b,0xfe,0x5c,0x00,0x01,0x04,0x62,0x07,0x6c,0x00,0x01,0x04,0x62,0xfe,0x5c,0x00,0x01,0x03,0xc7,0x07,0x6c,0x00,0x01,0x03,0xc7,0xfe,0x5c,0x00,0x01,0x02,0xfd,0x07,0x6c,0x00,0x01,0x02,0xfd,0xfe,0x5c,0x00,0x01,0x03,0xf0,0x07,0x6c,0x00,0x01,0x03,0xf0,0xfe,0x5c,0x00,0x01,0x05,0xa8,0x07,0x6c, +0x00,0x01,0x05,0xa8,0xfe,0x5c,0x00,0x01,0x05,0x54,0x07,0x6c,0x00,0x01,0x05,0x54,0xfe,0x5c,0x00,0x01,0x04,0x7f,0x07,0x6c,0x00,0x01,0x04,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x83,0x07,0x6c,0x00,0x01,0x04,0x83,0xfe,0x5c,0x00,0x01,0x04,0xd7,0x07,0x6c,0x00,0x01,0x04,0xd7,0xfe,0x5c,0x00,0x01,0x03,0xc8,0x07,0x6c,0x00,0x01,0x03,0xc8, +0xfe,0x5c,0x00,0x01,0x02,0xcd,0x07,0x6c,0x00,0x01,0x02,0xcd,0xfe,0x5c,0x00,0x01,0x02,0xe4,0x07,0x6c,0x00,0x01,0x02,0xe4,0xfe,0x5c,0x00,0x01,0x04,0x16,0x07,0x6c,0x00,0x01,0x04,0x16,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x08,0x34,0x00,0x01,0x09,0xbc,0xfe,0x5c,0x00,0x01,0x08,0xef,0x07,0x6c,0x00,0x01,0x08,0xef,0xfe,0x5c,0x00,0x01, +0x08,0x05,0x07,0x6c,0x00,0x01,0x08,0x05,0xfe,0x5c,0x00,0x01,0x06,0x29,0x07,0x6c,0x00,0x01,0x06,0x29,0xfe,0x5c,0x00,0x01,0x05,0x39,0x07,0x6c,0x00,0x01,0x05,0x39,0xfe,0x5c,0x00,0x01,0x03,0x77,0x07,0x6c,0x00,0x01,0x03,0x77,0xfe,0x5c,0x00,0x01,0x07,0xe4,0x07,0x6c,0x00,0x01,0x07,0xe4,0xfe,0x5c,0x00,0x01,0x07,0x34,0x07,0x6c, +0x00,0x01,0x07,0x34,0xfe,0x5c,0x00,0x01,0x05,0xed,0x07,0x6c,0x00,0x01,0x05,0xed,0xfe,0x5c,0x00,0x01,0x03,0x7b,0x07,0x6c,0x00,0x01,0x03,0x7b,0xfe,0x5c,0x00,0x01,0x02,0x29,0x08,0x34,0x00,0x01,0x02,0x29,0xfe,0x5c,0x00,0x01,0x02,0x11,0x07,0x6c,0x00,0x01,0x02,0x11,0xfe,0x5c,0x00,0x01,0x06,0x83,0x08,0x34,0x00,0x01,0x06,0x4e, +0x07,0x6c,0x00,0x01,0x06,0x4e,0xfe,0x5c,0x00,0x01,0x05,0x7d,0x07,0x6c,0x00,0x01,0x05,0x7d,0xfe,0x5c,0x00,0x01,0x04,0xb6,0x07,0x6c,0x00,0x01,0x04,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x83,0x08,0x34,0x00,0x01,0x03,0x68,0x07,0x6c,0x00,0x01,0x03,0x68,0xfe,0x5c,0x00,0x01,0x09,0xbc,0x07,0x6c,0x00,0x01,0x08,0xf0,0x07,0x6c,0x00,0x01, +0x08,0xf0,0xfe,0x5c,0x00,0x01,0x08,0x06,0x07,0x6c,0x00,0x01,0x08,0x06,0xfe,0x5c,0x00,0x01,0x07,0x79,0x07,0x6c,0x00,0x01,0x07,0x79,0xfe,0x5c,0x00,0x01,0x05,0x27,0x07,0x6c,0x00,0x01,0x05,0x27,0xfe,0x5c,0x00,0x01,0x01,0xb6,0x07,0x6c,0x00,0x01,0x01,0xb6,0xfe,0x5c,0x00,0x01,0x02,0x28,0x08,0x34,0x00,0x01,0x02,0x28,0xfe,0x5c, +0x00,0x01,0x02,0x0a,0x07,0x6c,0x00,0x01,0x02,0x0a,0xfe,0x5c,0x00,0x01,0x02,0xca,0x07,0x6c,0x00,0x01,0x02,0xca,0xfe,0x5c,0x00,0x01,0x03,0x3e,0x07,0x6c,0x00,0x01,0x03,0x3e,0xfe,0x5c,0x00,0x01,0x04,0x42,0x07,0x6c,0x00,0x01,0x04,0x42,0xfe,0x5c,0x00,0x01,0x03,0x9e,0x07,0x6c,0x00,0x01,0x03,0x9e,0xfe,0x5c,0x00,0x01,0x04,0x56, +0x07,0x6c,0x00,0x01,0x04,0x56,0xfe,0x5c,0x00,0x01,0x03,0x5a,0x07,0x6c,0x00,0x01,0x03,0x5a,0xfe,0x5c,0x00,0x01,0x03,0xa0,0x07,0x6c,0x00,0x01,0x03,0xa0,0xfe,0x5c,0x00,0x01,0x05,0x21,0x07,0x6c,0x00,0x01,0x05,0x21,0xfe,0x5c,0x00,0x01,0x05,0x16,0x07,0x6c,0x00,0x01,0x05,0x16,0xfe,0x5c,0x00,0x01,0x02,0xf4,0x07,0x6c,0x00,0x01, +0x02,0xf4,0xfe,0x5c,0x00,0x01,0x02,0xee,0x07,0x6c,0x00,0x01,0x02,0xee,0xfe,0x5c,0x00,0x01,0x04,0x35,0x07,0x6c,0x00,0x01,0x04,0x35,0xfe,0x5c,0x00,0x01,0x02,0x1c,0x07,0x6c,0x00,0x01,0x02,0x1c,0xfe,0x5c,0x00,0x01,0x03,0xcd,0x07,0x6c,0x00,0x01,0x03,0xcd,0xfe,0x5c,0x00,0x01,0x03,0xc6,0x07,0x6c,0x00,0x01,0x03,0xc6,0xfe,0x5c, +0x00,0x01,0x02,0x0e,0x07,0x6c,0x00,0x01,0x02,0x0e,0xfe,0x5c,0x00,0x01,0x02,0x2f,0x07,0x6c,0x00,0x01,0x02,0x2f,0xfe,0x5c,0x00,0x01,0x02,0x44,0x07,0x6c,0x00,0x01,0x02,0x44,0xfe,0x5c,0x00,0x01,0x02,0x52,0x07,0x6c,0x00,0x01,0x02,0x52,0xfe,0x5c,0x00,0x01,0x02,0x5a,0x07,0x6c,0x00,0x01,0x02,0x5a,0xfe,0x5c,0x00,0x01,0x04,0xb2, +0x07,0x6c,0x00,0x01,0x04,0xb2,0xfe,0x5c,0x00,0x01,0x05,0x08,0x07,0x6c,0x00,0x01,0x05,0x08,0xfe,0x5c,0x00,0x01,0x04,0x0a,0x07,0x6c,0x00,0x01,0x04,0x0a,0xfe,0x5c,0x00,0x01,0x05,0x60,0x07,0x6c,0x00,0x01,0x05,0x60,0xfe,0x5c,0x00,0x01,0x05,0x64,0x07,0x6c,0x00,0x01,0x05,0x64,0xfe,0x5c,0x00,0x01,0x04,0xba,0x07,0x6c,0x00,0x01, +0x04,0xba,0xfe,0x5c,0x00,0x01,0x02,0x23,0x07,0x6c,0x00,0x01,0x03,0x33,0x07,0x6c,0x00,0x01,0x03,0x33,0xfe,0x5c,0x00,0x01,0x02,0xa2,0x07,0x6c,0x00,0x01,0x02,0xa2,0xfe,0x5c,0x00,0x01,0x02,0x1e,0x07,0x6c,0x00,0x01,0x02,0x1e,0xfe,0x5c,0x00,0x01,0x02,0xdb,0x07,0x6c,0x00,0x01,0x02,0xdb,0xfe,0x5c,0x00,0x01,0x02,0x68,0x07,0x6c, +0x00,0x01,0x02,0x68,0xfe,0x5c,0x00,0x01,0x02,0x72,0x07,0x6c,0x00,0x01,0x02,0x72,0xfe,0x5c,0x00,0x01,0x02,0x48,0x07,0x6c,0x00,0x01,0x02,0x48,0xfe,0x5c,0x00,0x01,0x02,0x8e,0x07,0x6c,0x00,0x01,0x02,0x8e,0xfe,0x5c,0x00,0x01,0x04,0xa4,0x07,0x6c,0x00,0x01,0x04,0xa4,0xfe,0x5c,0x00,0x01,0x03,0xd1,0x07,0x6c,0x00,0x01,0x03,0xd1, +0xfe,0x5c,0x00,0x01,0x03,0x4c,0x07,0x6c,0x00,0x01,0x03,0x4c,0xfe,0x5c,0x00,0x01,0x03,0xfe,0x07,0x6c,0x00,0x01,0x03,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x25,0x07,0x6c,0x00,0x01,0x04,0x25,0xfe,0x5c,0x00,0x01,0x03,0x8c,0x07,0x6c,0x00,0x01,0x03,0x8c,0xfe,0x5c,0x00,0x01,0x02,0xe8,0x07,0x6c,0x00,0x01,0x02,0xe8,0xfe,0x5c,0x00,0x01, +0x02,0xcf,0x07,0x6c,0x00,0x01,0x02,0xcf,0xfe,0x5c,0x00,0x01,0x02,0xcb,0x07,0x6c,0x00,0x01,0x02,0xcb,0xfe,0x5c,0x00,0x01,0x03,0x60,0x07,0x6c,0x00,0x01,0x03,0x60,0xfe,0x5c,0x00,0x01,0x04,0x92,0x07,0x6c,0x00,0x01,0x04,0x92,0xfe,0x5c,0x00,0x01,0x03,0x7f,0x07,0x6c,0x00,0x01,0x03,0x7f,0xfe,0x5c,0x00,0x01,0x04,0x02,0x07,0x6c, +0x00,0x01,0x04,0x02,0xfe,0x5c,0x00,0x01,0x02,0x38,0x07,0x6c,0x00,0x01,0x03,0x56,0x07,0x6c,0x00,0x01,0x03,0x56,0xfe,0x5c,0x00,0x01,0x02,0xf8,0x07,0x6c,0x00,0x01,0x02,0xf8,0xfe,0x5c,0x00,0x01,0x07,0x27,0x07,0x6c,0x00,0x01,0x07,0x27,0xfe,0x5c,0x00,0x01,0x07,0x77,0x07,0x6c,0x00,0x01,0x07,0x77,0xfe,0x5c,0x00,0x01,0x07,0xdb, +0x07,0x6c,0x00,0x01,0x07,0xdb,0xfe,0x5c,0x00,0x01,0x04,0x94,0x07,0x6c,0x00,0x01,0x04,0x94,0xfe,0x5c,0x00,0x01,0x04,0x3e,0x07,0x6c,0x00,0x01,0x04,0x3e,0xfe,0x5c,0x00,0x01,0x05,0xc8,0x07,0x6c,0x00,0x01,0x05,0xc8,0xfe,0x5c,0x00,0x01,0x03,0xc2,0x07,0x6c,0x00,0x01,0x03,0xc2,0xfe,0x5c,0x00,0x01,0x06,0x1c,0x07,0x6c,0x00,0x01, +0x06,0x1c,0xfe,0x5c,0x00,0x01,0x06,0x04,0x07,0x6c,0x00,0x01,0x06,0x04,0xfe,0x5c,0x00,0x01,0x07,0x1a,0x07,0x6c,0x00,0x01,0x07,0x1a,0xfe,0x5c,0x00,0x01,0x04,0xf0,0x07,0x6c,0x00,0x01,0x04,0xf0,0xfe,0x5c,0x00,0x01,0x04,0x0b,0x07,0x6c,0x00,0x01,0x04,0x0b,0xfe,0x5c,0x00,0x01,0x04,0xc9,0x07,0x6c,0x00,0x01,0x04,0xc9,0xfe,0x5c, +0x00,0x01,0x03,0xf6,0x07,0x6c,0x00,0x01,0x03,0xf6,0xfe,0x5c,0x00,0x01,0x04,0xff,0x07,0x6c,0x00,0x01,0x04,0xff,0xfe,0x5c,0x00,0x01,0x04,0xdc,0x07,0x6c,0x00,0x01,0x04,0xdc,0xfe,0x5c,0x00,0x01,0x03,0xac,0x07,0x6c,0x00,0x01,0x03,0xac,0xfe,0x5c,0x00,0x01,0x03,0x37,0x07,0x6c,0x00,0x01,0x03,0x37,0xfe,0x5c,0x00,0x01,0x04,0x3f, +0x07,0x6c,0x00,0x01,0x04,0x3f,0xfe,0x5c,0x00,0x01,0x06,0xae,0x07,0x6c,0x00,0x01,0x06,0xae,0xfe,0x5c,0x00,0x01,0x02,0x46,0x07,0x6c,0x00,0x01,0x02,0x46,0xfe,0x5c,0x00,0x01,0x02,0x08,0x07,0x6c,0x00,0x01,0x02,0x08,0xfe,0x5c,0x00,0x01,0x04,0x24,0x07,0x6c,0x00,0x01,0x04,0x24,0xfe,0x5c,0x00,0x01,0x04,0xae,0x07,0x6c,0x00,0x01, +0x04,0xae,0xfe,0x5c,0x00,0x01,0x05,0xfc,0x07,0x6c,0x00,0x01,0x05,0xfc,0xfe,0x5c,0x00,0x01,0x03,0xf9,0x07,0x6c,0x00,0x01,0x03,0xf9,0xfe,0x5c,0x00,0x01,0x01,0xe3,0x07,0x6c,0x00,0x01,0x01,0xe3,0xfe,0x5c,0x00,0x01,0x06,0xed,0x07,0x6c,0x00,0x01,0x06,0xed,0xfe,0x5c,0x00,0x01,0x04,0x91,0x07,0x6c,0x00,0x01,0x04,0x91,0xfe,0x5c, +0x00,0x01,0x03,0xad,0x07,0x6c,0x00,0x01,0x03,0xad,0xfe,0x5c,0x00,0x01,0x03,0x4b,0x07,0x6c,0x00,0x01,0x03,0x4b,0xfe,0x5c,0x00,0x01,0x04,0x06,0x07,0x6c,0x00,0x01,0x04,0x06,0xfe,0x5c,0x00,0x01,0x04,0x71,0x07,0x6c,0x00,0x01,0x04,0x71,0xfe,0x5c,0x00,0x01,0x04,0xfe,0x07,0x6c,0x00,0x01,0x04,0xfe,0xfe,0x5c,0x00,0x01,0x04,0x84, +0x07,0x6c,0x00,0x01,0x04,0x84,0xfe,0x5c,0x00,0x01,0x03,0x3b,0x07,0x6c,0x00,0x01,0x03,0x3b,0xfe,0x5c,0x00,0x01,0x05,0xe0,0x07,0x6c,0x00,0x01,0x05,0xe0,0xfe,0x5c,0x00,0x01,0x02,0xd1,0x07,0x6c,0x00,0x01,0x02,0xd1,0xfe,0x5c,0x00,0x01,0x04,0xd0,0x07,0x6c,0x00,0x01,0x04,0xd0,0xfe,0x5c,0x00,0x01,0x04,0xc1,0x07,0x6c,0x00,0x01, +0x04,0xc1,0xfe,0x5c,0x00,0x01,0x05,0x7f,0x07,0x6c,0x00,0x01,0x05,0x7f,0xfe,0x5c,0x00,0x01,0x05,0x07,0x07,0x6c,0x00,0x01,0x05,0x07,0xfe,0x5c,0x00,0x01,0x06,0x01,0x07,0x6c,0x00,0x01,0x06,0x01,0xfe,0x5c,0x00,0x01,0x02,0xc8,0x07,0x6c,0x00,0x01,0x02,0xc8,0xfe,0x5c,0x00,0x01,0x04,0x6c,0x07,0x6c,0x00,0x01,0x04,0x6c,0xfe,0x5c, +0x00,0x01,0x03,0x9c,0x07,0x6c,0x00,0x01,0x03,0x9c,0xfe,0x5c,0x00,0x01,0x03,0xc4,0x07,0x6c,0x00,0x01,0x03,0xc4,0xfe,0x5c,0x00,0x01,0x02,0x4a,0x07,0x6c,0x00,0x01,0x02,0x4a,0xfe,0x5c,0x00,0x01,0x04,0x19,0x07,0x6c,0x00,0x01,0x04,0x19,0xfe,0x5c,0x00,0x01,0x04,0x12,0x07,0x6c,0x00,0x01,0x04,0x12,0xfe,0x5c,0x00,0x01,0x02,0xb6, +0x07,0x6c,0x00,0x01,0x02,0xb6,0xfe,0x5c,0x00,0x01,0x04,0x8d,0x07,0x6c,0x00,0x01,0x04,0x8d,0xfe,0x5c,0x00,0x01,0x05,0x98,0x07,0x6c,0x00,0x01,0x05,0x98,0xfe,0x5c,0x00,0x01,0xff,0x9c,0x05,0x14,0x00,0x01,0x03,0x34,0x05,0x9a,0x00,0x01,0x03,0xf6,0x04,0xfa,0x00,0x01,0x04,0x81,0x05,0x79,0x00,0x01,0x04,0xb0,0x04,0xfa,0x00,0x01, +0x03,0x70,0x05,0x9a,0x00,0x01,0x04,0xd4,0x05,0x69,0x00,0x01,0x05,0x0e,0x05,0x9a,0x00,0x01,0x01,0xfe,0x05,0x9a,0x00,0x01,0x02,0x3b,0x05,0x9a,0x00,0x01,0x04,0x04,0x05,0x9a,0x00,0x01,0x01,0x42,0x05,0x9a,0x00,0x01,0x06,0xae,0x05,0x9a,0x00,0x01,0x05,0x5c,0x05,0x9a,0x00,0x01,0x04,0xd8,0x05,0x28,0x00,0x01,0x03,0xdb,0x04,0xfa, +0x00,0x01,0x04,0x29,0x04,0xfa,0x00,0x01,0x03,0xa0,0x05,0x94,0x00,0x01,0x04,0x06,0x05,0xa3,0x00,0x01,0x04,0xda,0x05,0x9f,0x00,0x01,0x04,0xa9,0x05,0x9a,0x00,0x01,0x07,0x58,0x05,0x9a,0x00,0x01,0x03,0x20,0x03,0xf1,0x00,0x01,0x04,0x14,0x03,0xb6,0x00,0x01,0x03,0x59,0x03,0xf1,0x00,0x01,0x04,0x04,0x05,0xf2,0x00,0x01,0x03,0x71, +0x03,0xcd,0x00,0x01,0x02,0x9e,0x06,0x02,0x00,0x01,0x04,0x0d,0x04,0x04,0x00,0x01,0x03,0xd5,0x03,0xaa,0x00,0x01,0x01,0x59,0x04,0x01,0x00,0x01,0x01,0x50,0x04,0x01,0x00,0x01,0x03,0xb4,0x04,0x0b,0x00,0x01,0x01,0x67,0x05,0xf2,0x00,0x01,0x06,0x44,0x03,0x78,0x00,0x01,0x03,0xe7,0x03,0x78,0x00,0x01,0x03,0xde,0x03,0x84,0x00,0x01, +0x04,0x14,0x03,0x87,0x00,0x01,0x04,0x04,0x04,0x03,0x00,0x01,0x02,0xc1,0x04,0x02,0x00,0x01,0x02,0xe0,0x03,0xf3,0x00,0x01,0x02,0x70,0x04,0x03,0x00,0x01,0x03,0xd4,0x03,0xfc,0x00,0x01,0x03,0xb3,0x04,0x00,0x00,0x01,0x05,0xa6,0x04,0x00,0x00,0x01,0x03,0x6f,0x04,0x00,0x00,0x01,0x03,0xb4,0x04,0x0c,0x00,0x01,0x03,0x34,0x04,0x00, +0x00,0x01,0x02,0x94,0xff,0xce,0x00,0x01,0x02,0xde,0xff,0xf1,0x00,0x01,0x02,0x52,0xff,0xce,0x00,0x01,0x02,0xfe,0xff,0xce,0x00,0x01,0x03,0x04,0xff,0xf1,0x00,0x01,0x02,0x64,0xff,0xce,0x00,0x01,0x02,0x20,0xff,0xf1,0x00,0x01,0x02,0xbf,0xff,0xf1,0x00,0x01,0x02,0x3a,0xff,0xf1,0x00,0x01,0x02,0x2b,0xff,0xf1,0x00,0x01,0x02,0x44, +0xfe,0x3e,0x00,0x01,0x00,0xfa,0x00,0x14,0x00,0x01,0x01,0xfd,0xff,0xce,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x02,0x43,0xff,0xce,0x00,0x01,0x00,0xf6,0x00,0x00,0x00,0x01,0x01,0xa8,0xff,0xf1,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x00,0x01,0x04,0x65,0x00,0x00,0x00,0x01,0x02,0x58,0x00,0x00,0x00,0x01, +0x03,0x5c,0xff,0xf1,0x00,0x01,0x00,0xe6,0x00,0x00,0x00,0x01,0x03,0xa7,0x00,0x00,0x00,0x01,0x04,0x4c,0x00,0x00,0x00,0x01,0x00,0xc8,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01,0x02,0xda,0x00,0x00,0x00,0x01,0x05,0xd2,0x00,0x00,0x00,0x01,0x04,0x88,0x00,0x00,0x00,0x01,0x03,0x3e,0xff,0xf1,0x00,0x01,0x03,0x70,0xff,0x4c, +0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x05,0x19,0x00,0x00,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x03,0x8e,0x00,0x00,0x00,0x01,0x02,0xc6,0x00,0x00,0x00,0x01,0x02,0x94,0x00,0x00,0x00,0x01,0x03,0x66,0x00,0x00,0x00,0x01,0x02,0xd2,0xfe,0x70,0x00,0x01,0x03,0x5c, +0x00,0x00,0x00,0x01,0x00,0x32,0xfe,0x5c,0x00,0x01,0x03,0x16,0x00,0x00,0x00,0x01,0x05,0xaa,0x00,0x00,0x00,0x01,0x00,0xaa,0xfe,0x20,0x00,0x01,0x03,0x70,0xfe,0x20,0x00,0x01,0x01,0xb8,0xff,0xf1,0x00,0x01,0x03,0x3e,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x02,0xd0,0x00,0x00,0x00,0x01, +0x00,0xdc,0xfe,0x48,0x00,0x01,0x02,0xf8,0xfe,0x70,0x00,0x01,0x04,0x6a,0x00,0x00,0x00,0x01,0x02,0x44,0xfe,0x70,0x00,0x01,0x05,0x80,0x00,0x27,0x00,0x01,0x00,0xf1,0xff,0x0e,0x00,0x01,0x06,0x4a,0x00,0x00,0x00,0x01,0x05,0xf0,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xf0,0x00,0x1b,0x00,0x01,0x02,0x9a,0x00,0x09, +0x00,0x01,0x00,0xaa,0xfe,0x2a,0x00,0x01,0x02,0x3a,0xfe,0x70,0x00,0x01,0x01,0xcc,0xfe,0x70,0x00,0x01,0x04,0x4c,0xfe,0x84,0x00,0x01,0x02,0xe4,0xfe,0x84,0x00,0x01,0x02,0x76,0xfe,0x84,0x00,0x01,0x01,0xb8,0xfe,0x5c,0x00,0x01,0x02,0xeb,0x00,0x03,0x00,0x01,0x02,0x4e,0xfe,0x5c,0x00,0x01,0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x76, +0xfe,0x99,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x84,0x00,0x01,0x01,0x18,0xfe,0x70,0x00,0x01,0x03,0xd6,0xfe,0x5c,0x00,0x01,0x02,0xa3,0xfe,0x5c,0x00,0x01,0x03,0x66,0xfe,0x84,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x3f,0x00,0x01,0x00,0xfd,0xfe,0xee,0x00,0x01,0x00,0xdc,0xfe,0xdc,0x00,0x01, +0x02,0xed,0xfe,0xec,0x00,0x01,0x02,0x4d,0xfe,0xfb,0x00,0x01,0x02,0xdb,0xfe,0xec,0x00,0x01,0x02,0x44,0xfe,0xf2,0x00,0x01,0x02,0xf6,0xfe,0xf5,0x00,0x01,0x02,0x3b,0xfe,0xf2,0x00,0x01,0x02,0xab,0xfe,0xfb,0x00,0x01,0x02,0x99,0xfe,0xf2,0x00,0x01,0x02,0x0f,0xfe,0xe5,0x00,0x01,0x01,0x00,0xfe,0x67,0x00,0x01,0x01,0x86,0xfe,0x98, +0x00,0x01,0x01,0x18,0xfe,0x98,0x00,0x01,0x02,0x17,0xfe,0x5c,0x00,0x01,0x02,0x08,0xfe,0xd4,0x00,0x01,0x02,0x48,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xff,0x24,0x00,0x01,0x02,0x63,0xff,0x24,0x00,0x01,0x02,0x26,0xfe,0x5c,0x00,0x01,0x02,0x72,0xfe,0xd4,0x00,0x01,0x02,0x60,0xff,0x24,0x00,0x01,0x02,0x3d,0xff,0x24,0x00,0x01,0x02,0x3e, +0xfe,0x92,0x00,0x01,0x02,0x9e,0xfe,0x48,0x00,0x01,0x02,0x35,0xfe,0x48,0x00,0x01,0x02,0x2a,0xfe,0xd4,0x00,0x01,0x02,0x4e,0xfe,0xd4,0x00,0x01,0x02,0x2a,0xfe,0x5c,0x00,0x01,0x02,0xe4,0xfe,0xa2,0x00,0x01,0x02,0x76,0xfe,0xa2,0x00,0x01,0x01,0x22,0xfe,0xd4,0x00,0x01,0x00,0xf0,0xfe,0xd4,0x00,0x01,0x03,0x7a,0x00,0x00,0x00,0x01, +0x04,0x3f,0x00,0x00,0x00,0x01,0x02,0x23,0xff,0x24,0x00,0x01,0x00,0xd2,0xfe,0xd4,0x00,0x01,0x00,0xc8,0xfe,0xd4,0x00,0x01,0x02,0x1c,0xff,0x24,0x00,0x01,0x02,0x17,0xfe,0x48,0x00,0x01,0x00,0xe6,0xfe,0x48,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x02,0xf3,0xff,0x24,0x00,0x01,0x02,0x44,0xfe,0x48,0x00,0x01,0x00,0xb4,0xfe,0x20, +0x00,0x01,0x02,0x84,0xff,0x24,0x00,0x01,0x01,0x9e,0xff,0x24,0x00,0x01,0x01,0xf9,0xfe,0xd4,0x00,0x01,0x01,0x9a,0xfe,0xd4,0x00,0x01,0x02,0x2b,0xfe,0xd4,0x00,0x01,0x01,0xa9,0xfe,0xd4,0x00,0x01,0x01,0xf4,0xfe,0xd4,0x00,0x01,0x01,0x3b,0xfe,0xd4,0x00,0x01,0x01,0xf0,0xff,0x24,0x00,0x01,0x01,0x82,0xff,0x24,0x00,0x01,0x02,0x12, +0xfe,0x48,0x00,0x01,0x01,0x54,0xfe,0x48,0x00,0x01,0x02,0xb2,0xfe,0xac,0x00,0x01,0x02,0x1c,0xfe,0xac,0x00,0x01,0x02,0xb4,0xfe,0xd4,0x00,0x01,0x02,0x4b,0xfe,0xd4,0x00,0x01,0x04,0x1a,0x00,0x00,0x00,0x01,0x02,0x26,0xfe,0xd4,0x00,0x01,0x01,0xae,0xfe,0xd4,0x00,0x01,0x02,0x3a,0xff,0x24,0x00,0x01,0x01,0xc2,0xff,0x24,0x00,0x01, +0x02,0x9c,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x01,0xd7,0xff,0xf1,0x00,0x01,0x02,0x7d,0xff,0xf1,0x00,0x01,0x03,0x54,0x00,0x00,0x00,0x01,0x03,0x74,0x00,0x00,0x00,0x01,0x02,0xe4,0xfe,0x70,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x02,0xca,0x00,0x00,0x00,0x01,0x00,0x5c,0xfe,0xb6,0x00,0x01,0x05,0x00,0x00,0x00, +0x00,0x01,0x01,0x54,0xff,0xf1,0x00,0x01,0x03,0x52,0xfe,0x70,0x00,0x01,0x06,0x72,0x00,0x00,0x00,0x01,0x05,0x0a,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0xb9,0xfe,0x2a,0x00,0x01,0x03,0x98,0xff,0x74,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0xe4,0xfe,0x2a,0x00,0x01,0x01,0x78,0xfe,0xab,0x00,0x01,0x02,0xe8, +0xfe,0x9b,0x00,0x01,0x03,0x39,0xff,0xf1,0x00,0x01,0x02,0xe9,0xff,0xfa,0x00,0x01,0x02,0x58,0xfe,0x3a,0x00,0x01,0x03,0x66,0xfe,0x2f,0x00,0x01,0x01,0x90,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x08,0xde,0x00,0x00,0x00,0x01,0x08,0x20,0x00,0x00,0x00,0x01,0x07,0x30,0x00,0x00,0x00,0x01,0x04,0xce,0x00,0x00,0x00,0x01, +0x06,0x86,0x00,0x00,0x00,0x01,0x05,0xfa,0xfe,0x5c,0x00,0x01,0x04,0xb0,0xfe,0x5c,0x00,0x01,0x05,0xa2,0x00,0x00,0x00,0x01,0x05,0x14,0x00,0x00,0x00,0x01,0x02,0xda,0xfe,0x84,0x00,0x01,0x02,0x3a,0xfe,0x84,0x00,0x01,0x01,0xcc,0xfe,0x48,0x00,0x01,0x06,0x18,0x00,0x00,0x00,0x01,0x00,0xbe,0xfe,0x2a,0x00,0x01,0x04,0x88,0xfe,0x2a, +0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x03,0x70,0x00,0x00,0x00,0x01,0x01,0xa5,0xff,0xf7,0x00,0x01,0x04,0x4c,0xfe,0x2a,0x00,0x01,0x02,0x22,0x00,0x00,0x00,0x01,0x01,0xb6,0x00,0x00,0x00,0x01,0x02,0xc2,0x00,0x00,0x00,0x01,0x00,0x8c,0xfe,0x75,0x00,0x01,0x01,0xd8,0xfe,0x5c,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x03,0x47, +0xfe,0x2a,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x03,0x0c,0xfe,0x48,0x00,0x01,0x05,0xa4,0x00,0x00,0x00,0x01,0x05,0xa4,0xfe,0x2a,0x00,0x01,0x04,0xff,0xfe,0x35,0x00,0x01,0x04,0x3d,0xfe,0x2a,0x00,0x01,0x04,0x9c,0x00,0x00,0x00,0x01,0x01,0x91,0x00,0x00,0x00,0x01,0x01,0x88,0x00,0x00,0x00,0x01, +0x01,0x84,0x00,0x09,0x00,0x01,0x02,0xde,0x00,0x09,0x00,0x01,0x01,0x8d,0xfe,0xe0,0x00,0x01,0x00,0x91,0xfe,0x7e,0x00,0x01,0x00,0x8a,0xfe,0x63,0x00,0x01,0x00,0xa4,0xfe,0x5c,0x00,0x01,0x01,0x5c,0xfe,0xfb,0x00,0x01,0x02,0x76,0x00,0x00,0x00,0x01,0x01,0x6c,0x00,0x09,0x00,0x01,0x03,0x52,0xff,0x06,0x00,0x01,0x01,0xc2,0xfe,0x41, +0x00,0x01,0x01,0xc2,0xfe,0x4a,0x00,0x01,0x01,0x5b,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x02,0x7d,0xfe,0x48,0x00,0x01,0x02,0xa5,0xff,0xfa,0x00,0x01,0x00,0x43,0xfe,0x41,0x00,0x01,0x02,0xbc,0xfe,0x16,0x00,0x01,0x03,0x76,0xfe,0x2a,0x00,0x01,0x01,0x64,0x00,0x00,0x00,0x01,0x06,0x5e,0x00,0x00,0x00,0x01,0x05,0xb4, +0xfe,0x36,0x00,0x01,0x02,0x14,0xfe,0x4a,0x00,0x01,0x04,0xb0,0x00,0x00,0x00,0x01,0x04,0xb0,0xfe,0x48,0x00,0x01,0x03,0x02,0x00,0x00,0x00,0x01,0x01,0xf4,0xfe,0x5c,0x00,0x01,0x04,0x9c,0xfe,0x5c,0x00,0x01,0x03,0x84,0xfe,0x2a,0x00,0x01,0x05,0x82,0x00,0x00,0x00,0x01,0x03,0x7a,0xfe,0x20,0x00,0x01,0x02,0x1f,0xfe,0xd4,0x00,0x01, +0x02,0x9e,0xfe,0x2a,0x00,0x01,0x02,0xd0,0x01,0xf6,0x00,0x01,0x06,0x1a,0x00,0x00,0x00,0x01,0x01,0x22,0x00,0x00,0x00,0x01,0x02,0x6c,0x00,0x00,0x00,0x01,0x02,0xd0,0xfe,0xa2,0x00,0x01,0x03,0x98,0xfe,0xa2,0x00,0x01,0x02,0xee,0xfe,0xa2,0x00,0x01,0x00,0xd2,0xfe,0xa2,0x00,0x01,0x05,0xdc,0xfe,0xa2,0x00,0x01,0x03,0x84,0xfe,0xa2, +0x00,0x01,0x02,0x80,0xfe,0xa2,0x00,0x01,0x03,0xa2,0xfe,0xa2,0x00,0x01,0x04,0x2e,0xfe,0xa2,0x00,0x01,0x04,0x38,0xfe,0xa2,0x00,0x01,0x03,0xb6,0xfe,0xc0,0x00,0x01,0x03,0x52,0xfe,0xa2,0x00,0x01,0x02,0x7f,0x00,0x46,0x00,0x01,0x03,0xfc,0xfe,0xa2,0x00,0x01,0x04,0x21,0x00,0x00,0x00,0x01,0x00,0xe6,0x00,0x8c,0x00,0x01,0x04,0x42, +0x00,0x00,0x00,0x01,0x05,0xbe,0xfe,0xa2,0x00,0x01,0x04,0xba,0xfe,0xa2,0x00,0x01,0x00,0xc8,0xfe,0x48,0x00,0x01,0x03,0xa2,0x00,0x0f,0x00,0x01,0x00,0x8c,0x00,0x1e,0x00,0x01,0xff,0x6a,0x00,0x1e,0x00,0x01,0x03,0x4a,0x00,0x50,0x00,0x01,0x02,0xd5,0x00,0x1a,0x00,0x01,0x03,0xbc,0x00,0x09,0x00,0x01,0x03,0xbc,0x00,0x00,0x00,0x01, +0x01,0x40,0x00,0x00,0x00,0x01,0x03,0x3a,0xfe,0x93,0x00,0x01,0x03,0x48,0xfe,0xc0,0x00,0x01,0x03,0xa8,0x00,0x00,0x00,0x01,0x00,0x83,0xfe,0x89,0x00,0x01,0x03,0x5a,0x00,0x00,0x00,0x01,0x05,0xfc,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x09,0x00,0x01,0x03,0x5c,0x00,0x3f,0x00,0x01,0x03,0xb3,0xfe,0x42,0x00,0x01,0x00,0xf8,0x00,0x00, +0x00,0x01,0x02,0x60,0x00,0x50,0x00,0x01,0x01,0xea,0x00,0x00,0x00,0x01,0x04,0x27,0x00,0x09,0x00,0x01,0x04,0x27,0x00,0x00,0x00,0x01,0x03,0x07,0xff,0xf7,0x00,0x01,0x03,0x07,0x00,0x00,0x00,0x01,0x02,0x58,0x06,0xea,0x00,0x01,0xff,0x6f,0x06,0xea,0x00,0x01,0x00,0xaa,0x06,0x40,0x00,0x01,0xff,0x7e,0x06,0x40,0x00,0x01,0x05,0x29, +0x08,0x34,0x00,0x01,0x00,0x00,0x08,0x34,0x00,0x01,0x04,0x96,0x08,0x34,0x00,0x01,0x04,0xf4,0x08,0x34,0x00,0x01,0x05,0x9c,0x08,0x34,0x00,0x01,0x03,0xe8,0x08,0x34,0x00,0x01,0x05,0x7d,0x08,0x34,0x00,0x01,0x05,0xae,0x08,0x34,0x00,0x01,0x02,0x21,0x08,0x34,0x00,0x01,0x02,0xdb,0x08,0x34,0x00,0x01,0x04,0xa4,0x08,0x34,0x00,0x01, +0x03,0xc4,0x08,0x34,0x00,0x01,0x07,0x2f,0x08,0x34,0x00,0x01,0x05,0xfc,0x08,0x34,0x00,0x01,0x06,0x08,0x08,0x34,0x00,0x01,0x04,0x7b,0x08,0x34,0x00,0x01,0x04,0xc9,0x08,0x34,0x00,0x01,0x04,0x40,0x08,0x34,0x00,0x01,0x04,0x31,0x08,0x34,0x00,0x01,0x05,0x7f,0x08,0x34,0x00,0x01,0x04,0xf8,0x08,0x34,0x00,0x01,0x07,0x79,0x08,0x34, +0x00,0x01,0x04,0xb8,0x08,0x34,0x00,0x01,0x04,0x6c,0x08,0x34,0x00,0x01,0x04,0x90,0x08,0x34,0x00,0x01,0x04,0x12,0x08,0x34,0x00,0x01,0x04,0xb4,0x08,0x34,0x00,0x01,0x03,0xb2,0x08,0x34,0x00,0x01,0x04,0xb6,0x08,0x34,0x00,0x01,0x02,0x81,0x08,0x34,0x00,0x01,0x04,0x87,0x08,0x34,0x00,0x01,0x03,0xfa,0x08,0x34,0x00,0x01,0x06,0xe4, +0x08,0x34,0x00,0x01,0x04,0xb0,0x08,0x34,0x00,0x01,0x02,0xc8,0x08,0x34,0x00,0x01,0x03,0x65,0x08,0x34,0x00,0x01,0x02,0xb6,0x08,0x34,0x00,0x01,0x03,0xd5,0x08,0x34,0x00,0x01,0x05,0xc8,0x08,0x34,0x00,0x01,0x03,0xac,0x08,0x34,0x00,0x01,0x03,0xdf,0x08,0x34,0x00,0x01,0x03,0x9e,0x08,0x34,0x00,0x01,0x04,0x5a,0x08,0x34,0x00,0x01, +0x06,0xe2,0x08,0x34,0x00,0x01,0x06,0xa8,0x08,0x34,0x00,0x01,0x07,0x72,0x08,0x34,0x00,0x01,0x07,0x6c,0x08,0x34,0x00,0x01,0x02,0x31,0x08,0x34,0x00,0x01,0x04,0x79,0x08,0x34,0x00,0x01,0x05,0x65,0x08,0x34,0x00,0x01,0x02,0x75,0x08,0x34,0x00,0x01,0x02,0x85,0x08,0x34,0x00,0x01,0x03,0x85,0x08,0x34,0x00,0x01,0x04,0xfc,0x08,0x34, +0x00,0x01,0x03,0xf6,0x08,0x34,0x00,0x01,0x04,0xd9,0x08,0x34,0x00,0x01,0x01,0xee,0x08,0x34,0x00,0x01,0x06,0x1a,0x08,0x34,0x00,0x01,0x04,0xc7,0x08,0x34,0x00,0x01,0x05,0xc4,0x08,0x34,0x00,0x01,0x06,0x8e,0x08,0x34,0x00,0x01,0x04,0xe8,0x08,0x34,0x00,0x01,0x04,0x93,0x08,0x34,0x00,0x01,0x04,0x9e,0x08,0x34,0x00,0x01,0x04,0xf6, +0x08,0x34,0x00,0x01,0x03,0xba,0x08,0x34,0x00,0x01,0x05,0xee,0x08,0x34,0x00,0x01,0x04,0x94,0x08,0x34,0x00,0x01,0x04,0xbc,0x08,0x34,0x00,0x01,0x04,0x0e,0x08,0x34,0x00,0x01,0x04,0x54,0x08,0x34,0x00,0x01,0x05,0x89,0x08,0x34,0x00,0x01,0x06,0xfe,0x08,0x34,0x00,0x01,0x02,0x4e,0x08,0x34,0x00,0x01,0x02,0x3a,0x08,0x34,0x00,0x01, +0x03,0xfc,0x08,0x34,0x00,0x01,0x07,0x23,0x08,0x34,0x00,0x01,0x07,0xc0,0x08,0x34,0x00,0x01,0x06,0x52,0x08,0x34,0x00,0x01,0x04,0xcf,0x08,0x34,0x00,0x01,0x04,0x9c,0x08,0x34,0x00,0x01,0x04,0x21,0x08,0x34,0x00,0x01,0x02,0x5e,0x08,0x34,0x00,0x01,0x02,0xb8,0x08,0x34,0x00,0x01,0x04,0x33,0x08,0x34,0x00,0x01,0x06,0x0a,0x08,0x34, +0x00,0x01,0x05,0xb2,0x08,0x34,0x00,0x01,0x04,0x8e,0x08,0x34,0x00,0x01,0x04,0x23,0x08,0x34,0x00,0x01,0x04,0xe2,0x08,0x34,0x00,0x01,0x03,0x0a,0x08,0x34,0x00,0x01,0x03,0x27,0x08,0x34,0x00,0x01,0x04,0x5e,0x08,0x34,0x00,0x01,0x09,0xe8,0x08,0x34,0x00,0x01,0x09,0x1c,0x08,0x34,0x00,0x01,0x08,0x33,0x08,0x34,0x00,0x01,0x06,0xd9, +0x08,0x34,0x00,0x01,0x05,0xc2,0x08,0x34,0x00,0x01,0x04,0x01,0x08,0x34,0x00,0x01,0x08,0x94,0x08,0x34,0x00,0x01,0x07,0xbe,0x08,0x34,0x00,0x01,0x06,0x77,0x08,0x34,0x00,0x01,0x04,0x0a,0x08,0x34,0x00,0x01,0x06,0xa0,0x08,0x34,0x00,0x01,0x03,0x89,0x08,0x34,0x00,0x01,0x07,0xfe,0x08,0x34,0x00,0x01,0x05,0x83,0x08,0x34,0x00,0x01, +0x04,0x08,0x08,0x34,0x00,0x01,0x03,0x70,0x08,0x34,0x00,0x01,0x05,0xdf,0x08,0x34,0x00,0x01,0x04,0x89,0x08,0x34,0x00,0x01,0x03,0x4e,0x08,0x34,0x00,0x01,0x04,0x68,0x08,0x34,0x00,0x01,0x04,0x3c,0x08,0x34,0x00,0x01,0x03,0xa8,0x08,0x34,0x00,0x01,0x02,0x18,0x08,0x34,0x00,0x01,0x02,0x90,0x08,0x34,0x00,0x01,0x02,0x3e,0x08,0x34, +0x00,0x01,0x03,0x02,0x08,0x34,0x00,0x01,0x04,0xd3,0x08,0x34,0x00,0x01,0x04,0x72,0x08,0x34,0x00,0x01,0x05,0x96,0x08,0x34,0x00,0x01,0x05,0x1a,0x08,0x34,0x00,0x01,0x02,0xae,0x08,0x34,0x00,0x01,0x03,0xa2,0x08,0x34,0x00,0x01,0x03,0x2f,0x08,0x34,0x00,0x01,0x01,0xfa,0x08,0x34,0x00,0x01,0x02,0x10,0x08,0x34,0x00,0x01,0x02,0x44, +0x08,0x34,0x00,0x01,0x04,0xcb,0x08,0x34,0x00,0x01,0x04,0xc2,0x08,0x34,0x00,0x01,0x04,0x77,0x08,0x34,0x00,0x01,0x03,0x56,0x08,0x34,0x00,0x01,0x04,0x18,0x08,0x34,0x00,0x01,0x02,0xec,0x08,0x34,0x00,0x01,0x04,0x62,0x08,0x34,0x00,0x01,0x03,0x14,0x08,0x34,0x00,0x01,0x07,0x54,0x08,0x34,0x00,0x01,0x07,0x98,0x08,0x34,0x00,0x01, +0x07,0xcf,0x08,0x34,0x00,0x01,0x03,0xcf,0x08,0x34,0x00,0x01,0x05,0xbe,0x08,0x34,0x00,0x01,0x06,0x58,0x08,0x34,0x00,0x01,0x03,0xf4,0x08,0x34,0x00,0x01,0x05,0x27,0x08,0x34,0x00,0x01,0x02,0x60,0x08,0x34,0x00,0x01,0x05,0x0e,0x08,0x34,0x00,0x01,0x07,0x7a,0x08,0x34,0x00,0x01,0x04,0x16,0x08,0x34,0x00,0x01,0x03,0xb5,0x08,0x34, +0x00,0x01,0x03,0xb1,0x08,0x34,0x00,0x01,0x04,0x9f,0x08,0x34,0x00,0x01,0x07,0x3d,0x08,0x34,0x00,0x01,0x02,0x22,0x08,0x34,0x00,0x01,0x04,0x46,0x08,0x34,0x00,0x01,0x03,0x76,0x08,0x34,0x00,0x01,0x03,0x81,0x08,0x34,0x00,0x01,0x03,0x91,0x08,0x34,0x00,0x01,0x05,0xe0,0x08,0x34,0x00,0x01,0x04,0xc1,0x08,0x34,0x00,0x01,0x02,0xf4, +0x08,0x34,0x00,0x01,0x05,0x07,0x08,0x34,0x00,0x01,0x06,0x01,0x08,0x34,0x00,0x01,0x03,0x9c,0x08,0x34,0x00,0x01,0x02,0x4a,0x08,0x34,0x00,0x01,0x04,0x19,0x08,0x34,0x00,0x01,0x04,0x8d,0x08,0x34,0x00,0x01,0x05,0x98,0x08,0x34,0x00,0x01,0x01,0x90,0x01,0xfa,0x00,0x01,0x00,0x0c,0x01,0x0e,0x00,0x40,0x00,0x00,0x2b,0xce,0x00,0x00, +0x2b,0xd4,0x00,0x00,0x2b,0xd4,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xe6,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xec,0x00,0x00,0x2b,0xf2,0x00,0x00,0x2b,0xda,0x00,0x00, +0x2b,0xda,0x00,0x00,0x2b,0xf8,0x00,0x00,0x2b,0xfe,0x00,0x00,0x2c,0x04,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x10,0x00,0x00,0x2b,0xe0,0x00,0x00,0x2c,0x16,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x1c,0x00,0x00,0x2c,0x22,0x00,0x00, +0x2c,0x28,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x2e,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x34,0x00,0x00,0x2c,0x0a,0x00,0x00,0x2c,0x0a,0x00,0x00, +0x2c,0x3a,0x00,0x00,0x2c,0x40,0x00,0x00,0x2b,0xda,0x00,0x00,0x2c,0x46,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x3a,0x00,0x00,0x2c,0x4c,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x52,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x58,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x5e,0x00,0x00,0x2c,0x64,0x00,0x40,0x2b,0x68,0x2b,0x6e, +0x2b,0x74,0x2b,0x7a,0x2b,0x80,0x2b,0x86,0x2b,0x8c,0x2b,0x92,0x2b,0x98,0x2b,0x9e,0x2b,0xa4,0x2b,0xaa,0x2b,0xb0,0x2b,0xaa,0x2b,0xaa,0x2b,0xaa,0x2b,0xb6,0x2b,0x92,0x2b,0xbc,0x2b,0xc2,0x2b,0xc2,0x2b,0xb6,0x2b,0xc8,0x2b,0xce,0x2b,0xd4,0x2b,0xda,0x2b,0xe0,0x2b,0xaa,0x2b,0xe6,0x2b,0xec,0x2b,0xf2,0x2b,0xf8,0x2b,0xfe,0x2c,0x04, +0x2c,0x0a,0x2c,0x0a,0x2c,0x10,0x2c,0x10,0x2c,0x16,0x2c,0x10,0x2c,0x10,0x2c,0x10,0x2c,0x1c,0x2c,0x1c,0x2c,0x10,0x2c,0x10,0x2c,0x22,0x2c,0x10,0x2c,0x10,0x2c,0x28,0x2c,0x2e,0x2b,0xb6,0x2c,0x2e,0x2c,0x34,0x2c,0x3a,0x2c,0x3a,0x2b,0x92,0x2c,0x40,0x2c,0x40,0x2c,0x46,0x2c,0x46,0x2c,0x4c,0x2c,0x4c,0x2c,0x52,0x00,0x02,0x00,0x11, +0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79,0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57, +0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f,0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, +0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, +0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x01,0x12,0x01,0x6a,0x00,0x01,0x00,0x0c,0x00,0xba,0x00,0x2b,0x00,0x00,0x2a,0xf6,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x02,0x00,0x00,0x2b,0x08,0x00,0x00,0x2b,0x0e,0x00,0x00,0x2b,0x14,0x00,0x00,0x2b,0x14,0x00,0x00, +0x2b,0x14,0x00,0x00,0x2b,0x1a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x20,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x26,0x00,0x00,0x2b,0x2c,0x00,0x00,0x2b,0x32,0x00,0x00, +0x2b,0x38,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x3e,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x44,0x00,0x00,0x2b,0x4a,0x00,0x00,0x2a,0xfc,0x00,0x00,0x2b,0x50,0x00,0x00,0x2b,0x56,0x00,0x00,0x2b,0x5c,0x00,0x00,0x2b,0x62,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x68,0x00,0x00,0x2b,0x6e,0x00,0x00,0x2b,0x26,0x00,0x00, +0x2b,0x74,0x00,0x00,0x2b,0x7a,0x00,0x00,0x2b,0x80,0x00,0x2b,0x2a,0xd8,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xde,0x2a,0xde,0x2a,0xe4,0x2a,0xea,0x2a,0xf0,0x2a,0xf6,0x2a,0xe4,0x2a,0xfc,0x2a,0xe4,0x2b,0x02,0x2a,0xde,0x2a,0xde,0x2b,0x08,0x2b,0x0e,0x2b,0x14,0x2b,0x1a,0x2b,0x20,0x2b,0x26,0x2a,0xe4,0x2a,0xe4, +0x2b,0x2c,0x2b,0x14,0x2b,0x32,0x2b,0x38,0x2a,0xfc,0x2a,0xde,0x2a,0xe4,0x2a,0xe4,0x2b,0x3e,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xe4,0x2a,0xde,0x2b,0x44,0x2b,0x4a,0x00,0x02,0x00,0x0e,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87, +0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26,0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x02,0x00,0x0e,0x02,0x45, +0x02,0x45,0x00,0x00,0x04,0x75,0x04,0x78,0x00,0x01,0x04,0x7b,0x04,0x7f,0x00,0x05,0x04,0x82,0x04,0x84,0x00,0x0a,0x04,0x87,0x04,0x91,0x00,0x0d,0x04,0x97,0x04,0x9a,0x00,0x18,0x04,0xa3,0x04,0xa3,0x00,0x1c,0x04,0xa5,0x04,0xa7,0x00,0x1d,0x04,0xab,0x04,0xac,0x00,0x20,0x07,0x58,0x07,0x5b,0x00,0x22,0x07,0xed,0x07,0xee,0x00,0x26, +0x08,0x4e,0x08,0x4e,0x00,0x28,0x0a,0xe1,0x0a,0xe1,0x00,0x29,0x0a,0xe3,0x0a,0xe3,0x00,0x2a,0x00,0x01,0x00,0x18,0x00,0x1e,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x27,0xb4,0x00,0x02,0x2a,0x36,0x2a,0x3c,0x00,0x01,0x00,0x01,0x04,0x64,0x00,0x01,0x00,0x02,0x02,0xcf,0x02,0xd0,0x00,0x01,0x0e,0xec,0x0f,0x62,0x00,0x02, +0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x28,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x34,0x00,0x00,0x2a,0x3a,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x40,0x00,0x00,0x2a,0x46,0x00,0x00,0x2a,0x22,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x01,0x2a,0x58,0x00,0x00,0x2a,0x5e,0x00,0x01, +0x2a,0x64,0x00,0x00,0x2a,0x4c,0x00,0x00,0x2a,0x52,0x00,0x00,0x2a,0x6a,0x00,0x00,0x2a,0x70,0x00,0x00,0x2a,0x76,0x00,0x00,0x2a,0x7c,0x00,0x00,0x2a,0x82,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x8e,0x00,0x01,0x2a,0x94,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0x9a,0x00,0x00,0x2a,0x88,0x00,0x01,0x2a,0xa0,0x00,0x00,0x2a,0xa6,0x00,0x01, +0x2a,0xac,0x00,0x00,0x2a,0xb2,0x00,0x00,0x2a,0xb8,0x00,0x00,0x2a,0xbe,0x00,0x00,0x2a,0xc4,0x00,0x00,0x2a,0xca,0x00,0x01,0x2a,0xd0,0x00,0x00,0x2a,0x3a,0x00,0x00,0x2a,0x88,0x00,0x00,0x2a,0xd6,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe2,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xe8,0x00,0x00,0x2a,0x22,0x00,0x00, +0x2a,0x22,0x00,0x00,0x2a,0x22,0x00,0x01,0x2a,0xee,0x00,0x00,0x2a,0xf4,0x00,0x00,0x2a,0xfa,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x06,0x00,0x00,0x2a,0x22,0x00,0x00,0x2b,0x0c,0x00,0x01,0x2a,0x2e,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x12,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2a,0xdc,0x00,0x00,0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00, +0x2b,0x18,0x00,0x00,0x2b,0x1e,0x00,0x00,0x2b,0x1e,0x00,0x01,0x2b,0x24,0x00,0x01,0x2b,0x24,0x00,0x00,0x2b,0x2a,0x00,0x00,0x2b,0x2a,0x00,0x01,0x2b,0x30,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x3c,0x00,0x01,0x2b,0x42,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x4e,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x5a,0x00,0x01,0x2b,0x60,0x00,0x01, +0x2b,0x66,0x00,0x00,0x2b,0x6c,0x00,0x00,0x2b,0x72,0x00,0x01,0x2b,0x78,0x00,0x00,0x2b,0x7e,0x00,0x00,0x2b,0x54,0x00,0x00,0x2b,0x54,0x00,0x01,0x2b,0x84,0x00,0x00,0x2b,0x48,0x00,0x00,0x2b,0x8a,0x00,0x01,0x2b,0x90,0x00,0x01,0x2b,0x90,0x00,0x00,0x2b,0x36,0x00,0x00,0x2b,0x96,0x00,0x00,0x2b,0x9c,0x00,0x00,0x2b,0x6c,0x00,0x00, +0x2b,0xa2,0x00,0x00,0x2b,0xa8,0x00,0x00,0x2b,0xae,0x00,0x00,0x2b,0xb4,0x00,0x00,0x2b,0xba,0x00,0x00,0x2b,0xc0,0x00,0x00,0x2b,0xc6,0x00,0x01,0x2b,0xcc,0x00,0x00,0x2b,0xd2,0x00,0x00,0x2b,0xd8,0x00,0x00,0x2b,0xde,0x00,0x00,0x2b,0xe4,0x00,0x00,0x2b,0xea,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2b,0xf6,0x00,0x00,0x2b,0xfc,0x00,0x01, +0x2c,0x02,0x03,0x48,0x2a,0x4a,0x2a,0x50,0x2a,0x56,0x2a,0x50,0x2a,0x5c,0x2a,0x50,0x2a,0x4a,0x2a,0x62,0x2a,0x68,0x2a,0x6e,0x2a,0x74,0x2a,0x7a,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0xaa,0x2a,0x98,0x2a,0xb0,0x2a,0xb6,0x2a,0xbc,0x2a,0xb6, +0x2a,0xc2,0x2a,0xc8,0x2a,0xc2,0x2a,0xc8,0x2a,0xce,0x2a,0xd4,0x2a,0xda,0x2a,0xd4,0x2a,0xe0,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x2a,0xf8,0x2a,0xe6,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x0a,0x2b,0x04,0x2b,0x10,0x2b,0x16,0x2b,0x1c,0x2b,0x22,0x2b,0x28,0x2b,0x2e,0x2b,0x34,0x2a,0x7a, +0x2b,0x3a,0x2b,0x40,0x2b,0x46,0x2b,0x4c,0x2b,0x52,0x2b,0x58,0x2a,0x68,0x2b,0x5e,0x2b,0x64,0x2b,0x6a,0x2b,0x70,0x2b,0x58,0x2b,0x64,0x2b,0x76,0x2b,0x7c,0x2a,0x7a,0x2b,0x82,0x2b,0x88,0x2b,0x8e,0x2b,0x94,0x2a,0x5c,0x2b,0x9a,0x2a,0x56,0x2b,0x9a,0x2b,0xa0,0x2b,0xa6,0x2a,0x4a,0x2a,0x62,0x2b,0xac,0x2b,0xb2,0x2a,0x4a,0x2b,0x9a, +0x2b,0xb8,0x2b,0xbe,0x2b,0xc4,0x2b,0xca,0x2b,0xd0,0x2b,0xd6,0x2b,0xdc,0x2b,0xd6,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2b,0xe2,0x2b,0xe8,0x2b,0xee,0x2b,0xe8,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x2c,0x12,0x2c,0x18,0x2c,0x12,0x2c,0x18,0x2c,0x1e,0x2c,0x24, +0x2c,0x1e,0x2c,0x24,0x2c,0x2a,0x2a,0xe6,0x2c,0x30,0x2a,0xe6,0x2c,0x36,0x2c,0x3c,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2c,0x66,0x2c,0x6c,0x2c,0x72,0x2c,0x78,0x2c,0x7e,0x2c,0x84,0x2c,0x8a,0x2b,0xca,0x2c,0x90,0x2b,0xa6,0x2c,0x96,0x2c,0x9c,0x2c,0x96,0x2c,0xa2,0x2a,0x68,0x2a,0x7a,0x2c,0xa8,0x2b,0x04, +0x2c,0xa8,0x2b,0x04,0x2b,0xb8,0x2b,0xd6,0x2b,0x1c,0x2b,0x16,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2c,0xc0,0x2b,0xfa,0x2c,0xc6,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2c,0x96,0x2c,0x9c,0x2b,0x64,0x2b,0x76,0x2a,0x68,0x2b,0x5e, +0x2c,0xde,0x2b,0x58,0x2c,0xe4,0x2b,0xca,0x2c,0x66,0x2c,0x6c,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a,0x2c,0xf6,0x2b,0xe8,0x2c,0xfc,0x2b,0xfa,0x2d,0x02,0x2c,0x84,0x2d,0x08,0x2b,0xca,0x2a,0x68,0x2d,0x0e,0x2d,0x14,0x2d,0x1a,0x2c,0xe4,0x2b,0xca,0x2b,0xc4,0x2b,0xca,0x2d,0x20,0x2d,0x26,0x2d,0x2c,0x2d,0x32,0x2d,0x38,0x2d,0x26, +0x2d,0x3e,0x2d,0x32,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2d,0x50,0x2d,0x56,0x2d,0x5c,0x2c,0x54,0x2d,0x62,0x2b,0x9a,0x2d,0x62,0x2a,0x50,0x2a,0x56,0x2b,0x9a,0x2a,0x56,0x2a,0x50,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2d,0x68,0x2a,0x4a,0x2b,0x9a,0x2a,0x4a,0x2a,0x50,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a, +0x2d,0x80,0x2c,0x9c,0x2d,0x86,0x2b,0x76,0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb0,0x2a,0x98,0x2d,0xb0,0x2a,0x98, +0x2d,0xb6,0x2a,0x9e,0x2d,0xbc,0x2a,0x98,0x2d,0xbc,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2a,0x8c,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba,0x2d,0xc8,0x2a,0x98,0x2d,0xc8,0x2a,0x98,0x2d,0xc2,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, +0x2b,0xe2,0x2d,0xce,0x2b,0xe2,0x2d,0xd4,0x2b,0xee,0x2d,0xd4,0x2b,0xee,0x2b,0xe8,0x2b,0xe2,0x2d,0xd4,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xda,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0x06,0x2d,0xf2, +0x2d,0xf8,0x2d,0xfe,0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x2e,0x2a,0xe6,0x2e,0x34,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48, +0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2a,0xfe,0x2e,0x46,0x2a,0xfe,0x2e,0x46,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x2e,0x4c,0x2d,0x44,0x2c,0x48,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x2e,0x52,0x2c,0x54,0x2e,0x58,0x2c,0x54,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x2c,0xc6,0x2c,0xcc, +0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60,0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x2e,0x8e,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x2c,0xd2,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x2c,0xd2,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x2e,0xac,0x2c,0xcc, +0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c,0x2e,0xb8,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xbe,0x2b,0x22,0x2c,0x66,0x2c,0x6c,0x2e,0xc4,0x2b,0x22,0x2c,0x66,0x2e,0xca,0x2b,0x1c,0x2e,0xd0,0x2e,0xd6,0x2e,0xdc,0x2b,0x34,0x2a,0x6e,0x2e,0xe2,0x2c,0x84,0x2e,0xd6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x2a,0xaa,0x2a,0x98, +0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2c,0xba,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2f,0x1e,0x2f,0x24,0x2f,0x2a,0x2b,0x88,0x2f,0x30,0x2c,0x9c,0x2f,0x36,0x2b,0x76,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6, +0x2f,0x42,0x2f,0x48,0x2f,0x4e,0x2f,0x54,0x2f,0x42,0x2f,0x5a,0x2f,0x4e,0x2f,0x60,0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2c,0x30,0x2a,0xe6,0x2f,0x6c,0x2a,0xe6,0x2a,0xec,0x2f,0x72,0x2a,0xf2,0x2f,0x72,0x2c,0x72,0x2f,0x78,0x2f,0x7e,0x2c,0xcc,0x2f,0x7e,0x2c,0xcc,0x2f,0x84,0x2f,0x8a, +0x2f,0x90,0x2b,0xe8,0x2f,0x96,0x2b,0xe8,0x2d,0xe0,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2f,0x9c,0x2b,0x40,0x2f,0xa2,0x2b,0x4c,0x2f,0xa8,0x2f,0xae,0x2f,0xb4,0x2f,0xba,0x2e,0xb8,0x2b,0x16,0x2e,0xbe,0x2b,0x16,0x2e,0xc4,0x2b,0x16,0x2b,0x1c,0x2e,0xd0,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2f,0xc6,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e, +0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8,0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xaa,0x2a,0x98,0x2a,0xaa,0x2a,0x98,0x2a,0xa4,0x2a,0x9e,0x2a,0x92,0x2a,0x98,0x2a,0x92,0x2a,0x98,0x2a,0x86,0x2c,0xba, +0x2b,0xe2,0x2f,0xe4,0x2b,0xe2,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2f,0xf6,0x2a,0xe6,0x2f,0xfc,0x2a,0xe6,0x2a,0xec,0x2a,0xd4,0x2a,0xf2,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4,0x2e,0x40,0x2a,0xd4,0x30,0x02,0x2a,0xe6,0x30,0x08,0x2a,0xe6,0x2e,0x3a,0x2a,0xd4, +0x2e,0x40,0x2a,0xd4,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x30,0x0e,0x2c,0xa8,0x30,0x0e,0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x4c,0x2c,0xa8,0x30,0x14,0x30,0x1a,0x2c,0xcc,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x30,0x20,0x2c,0xcc,0x2e,0x88,0x2b,0x16,0x2e,0x88,0x2b,0x16,0x2c,0xc6,0x2c,0xae,0x2b,0x10,0x30,0x26,0x2b,0x10,0x30,0x26, +0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e,0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x2e,0xd6,0x30,0x44,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2b,0x1c,0x2b,0x22,0x2b,0x1c,0x2b,0x16,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa, +0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2b,0xf4,0x2b,0xfa,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xfc,0x2b,0xfa,0x2d,0xe0,0x2b,0xfa,0x2b,0xf4,0x2b,0xfa,0x2b,0xf4,0x2d,0xe6,0x2b,0xf4,0x2d,0xec,0x2c,0x00,0x2d,0xe6,0x2c,0x00,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x2c,0xc0,0x2b,0xfa,0x30,0x62,0x2b,0xfa,0x30,0x68,0x30,0x6e, +0x2b,0x64,0x30,0x74,0x2a,0x68,0x2d,0xa4,0x2a,0x68,0x2d,0xa4,0x2b,0xa0,0x2b,0xa6,0x2b,0x7c,0x2a,0x7a,0x2b,0xb8,0x2b,0xbe,0x2a,0x68,0x2a,0x6e,0x2b,0xd0,0x2b,0xd6,0x2a,0x74,0x2a,0x7a,0x2b,0xdc,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2a,0x9e,0x2a,0xa4,0x2a,0x9e,0x30,0x7a,0x2b,0xe8,0x30,0x80,0x2b,0xe8, +0x2c,0x06,0x2c,0x0c,0x2a,0xb0,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x12,0x2c,0x18,0x2a,0xc2,0x2a,0xc8,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x2c,0x24,0x2c,0x1e,0x30,0x86,0x2c,0x1e,0x30,0x86,0x30,0x8c,0x2c,0x9c,0x30,0x92,0x2b,0x76, +0x2a,0x74,0x2b,0x5e,0x2a,0x74,0x2b,0x5e,0x30,0x98,0x2c,0x9c,0x30,0x9e,0x2b,0x76,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e,0x2c,0x42,0x2c,0x48,0x2c,0x4e,0x2c,0x54,0x2c,0x5a,0x2c,0x60,0x2b,0x10,0x2b,0x16,0x2c,0x72,0x2c,0x78,0x2b,0x28,0x2b,0x2e,0x2c,0x7e,0x2c,0x84,0x2b,0x34,0x2a,0x7a,0x30,0xa4,0x2a,0x9e,0x30,0xaa,0x2b,0x40, +0x30,0xb0,0x30,0xb6,0x2c,0x90,0x2b,0xa6,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2a,0x7a,0x2a,0x68,0x2b,0x5e,0x2b,0xb8,0x2b,0xd6,0x2a,0x68,0x2a,0x7a,0x2d,0x5c,0x2c,0x54,0x2c,0xa8,0x2b,0x04,0x2c,0xa8,0x2b,0x04,0x2d,0x6e,0x2b,0xa6,0x2d,0x74,0x2d,0x7a,0x30,0xbc,0x2a,0x7a,0x30,0xbc,0x2a,0x7a,0x2c,0xea,0x2b,0xd6,0x2c,0xf0,0x2a,0x7a, +0x2d,0x8c,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2d,0x98,0x2b,0xd0,0x2d,0x9e,0x2a,0x74,0x2d,0xa4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2c,0xb4,0x2d,0xaa,0x2b,0xd6,0x2a,0x80,0x2a,0x7a,0x2b,0xb8,0x2c,0xae,0x2a,0x68,0x2d,0x98,0x2d,0xb6,0x2a,0x9e,0x2d,0xc2,0x2a,0x9e, +0x2a,0x86,0x2a,0x8c,0x2a,0x86,0x2c,0xba,0x2d,0xc2,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x2a,0x86,0x2c,0xba,0x30,0xc2,0x2b,0xe8,0x30,0x7a,0x2d,0xce,0x30,0x7a,0x2d,0xd4,0x30,0x80,0x2d,0xd4,0x30,0x80,0x2b,0xe8,0x30,0x7a,0x2d,0xd4,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x30,0xc8,0x2b,0xe8,0x2c,0x06,0x2d,0xf2,0x2d,0xf8,0x2d,0xfe, +0x2c,0x06,0x2e,0x04,0x2a,0xb0,0x2e,0x0a,0x2c,0x06,0x2e,0x04,0x2a,0xbc,0x2e,0x0a,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2e,0x16,0x2e,0x1c,0x2c,0x18,0x2e,0x22,0x2a,0xc8,0x2e,0x28,0x2c,0x24,0x2e,0x28,0x30,0x86,0x2e,0x28,0x30,0x86,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x2d,0x44,0x2c,0x48,0x2c,0x42,0x2c,0x48, +0x2d,0x44,0x2c,0x48,0x2e,0x52,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2e,0x58,0x2c,0x54,0x2d,0x4a,0x2b,0x04,0x2d,0x4a,0x2b,0x04,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x5e,0x2e,0x64,0x2e,0x6a,0x2e,0x70,0x30,0xce,0x2c,0xcc,0x2b,0x10,0x2b,0x16,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x82,0x2c,0x60, +0x2e,0x88,0x2b,0x16,0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2d,0x98,0x2c,0xd2,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xd4,0x2c,0xcc,0x2c,0xd8,0x2b,0x16,0x30,0xda,0x2c,0xcc,0x2e,0x94,0x2b,0x16,0x30,0xd4,0x2e,0x9a,0x2c,0xd8,0x2e,0xa0,0x30,0xd4,0x2e,0xa6,0x2c,0xd8,0x2d,0x98,0x30,0xe0,0x2c,0xcc,0x2e,0xb2,0x2b,0x16,0x2c,0x66,0x2c,0x6c, +0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2c,0x6c,0x2c,0x66,0x2e,0xca,0x30,0xe6,0x30,0xec,0x2b,0x34,0x2a,0x6e,0x2d,0x02,0x2c,0x84,0x2e,0xe2,0x2c,0x84,0x2c,0xf0,0x2a,0x7a,0x2c,0xf0,0x2a,0x7a,0x30,0xe6,0x2e,0xe8,0x2b,0x34,0x2d,0xa4,0x2e,0xee,0x2c,0x84,0x30,0xa4,0x2a,0x9e,0x30,0xb0,0x30,0xb6,0x2a,0xa4,0x2c,0xba,0x30,0xf2,0x2d,0x56, +0x30,0xf8,0x2d,0x56,0x2c,0x90,0x2b,0xa6,0x2e,0xf4,0x2e,0xfa,0x2f,0x00,0x2b,0xa6,0x2f,0x06,0x2b,0xa6,0x2f,0x0c,0x2b,0xa6,0x2f,0x00,0x2b,0xa6,0x2f,0x12,0x2b,0xa6,0x2f,0x18,0x2b,0xa6,0x2a,0x68,0x2b,0x5e,0x2f,0x3c,0x2b,0x5e,0x2f,0x12,0x2b,0xa6,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2d,0x98,0x2a,0x68,0x2c,0xb4,0x2a,0x68,0x2c,0xb4, +0x2c,0x06,0x2d,0xf2,0x2a,0xbc,0x2d,0xfe,0x2c,0x12,0x2e,0x10,0x2a,0xc2,0x2f,0x66,0x2b,0xb8,0x2f,0xc0,0x2a,0x68,0x2a,0x6e,0x2b,0xdc,0x2b,0xbe,0x2a,0x80,0x2a,0x6e,0x2b,0xb8,0x2d,0x92,0x2a,0x68,0x2c,0xb4,0x2b,0xd0,0x2d,0x92,0x2a,0x74,0x2c,0xb4,0x2b,0xd0,0x2e,0x9a,0x2b,0x34,0x2f,0xcc,0x2b,0xb8,0x2f,0xd2,0x2a,0x68,0x2f,0xd8, +0x2f,0xde,0x2b,0xd6,0x2f,0x3c,0x2a,0x7a,0x2a,0xa4,0x2a,0x9e,0x2a,0x86,0x2c,0xba,0x30,0xfe,0x2f,0xe4,0x30,0x7a,0x2f,0xea,0x2b,0xf4,0x2b,0xfa,0x2c,0x06,0x2c,0x0c,0x2f,0xf0,0x2a,0xb6,0x2c,0x42,0x2c,0x48,0x2c,0x42,0x2c,0x48,0x31,0x04,0x2c,0xcc,0x31,0x0a,0x2c,0xcc,0x30,0xce,0x2c,0xae,0x30,0x2c,0x2c,0x78,0x30,0x32,0x2b,0x2e, +0x2c,0x72,0x30,0x38,0x2b,0x28,0x30,0x3e,0x30,0xe6,0x31,0x10,0x2b,0x34,0x2b,0x5e,0x30,0x4a,0x2c,0x84,0x30,0x50,0x2a,0x7a,0x30,0x56,0x2c,0x84,0x30,0x5c,0x2a,0x7a,0x2c,0x06,0x2c,0x0c,0x2a,0xbc,0x2a,0xb6,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0x1c,0x2a,0x86,0x31,0x1c,0x2a,0x92,0x31,0x22,0x2a,0x92,0x31,0x22, +0x31,0x28,0x31,0x2e,0x31,0x28,0x31,0x2e,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0x34,0x2a,0xb6,0x31,0x34,0x2a,0xb6,0x31,0x3a,0x2b,0xfa,0x31,0x3a,0x2b,0xfa,0x31,0x40,0x2a,0x98,0x31,0x40,0x2a,0x98,0x31,0x46,0x2a,0x9e,0x31,0x46,0x2a,0x9e,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58,0x31,0x4c,0x31,0x52,0x31,0x4c,0x31,0x58, +0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x31,0x5e,0x2c,0x9c,0x31,0x64,0x2b,0x76,0x31,0x6a,0x2b,0x5e,0x31,0x6a,0x2b,0x5e,0x2f,0x42,0x31,0x70,0x31,0x76,0x31,0x70,0x2a,0x68,0x31,0x7c,0x2a,0x68,0x31,0x7c,0x31,0x82,0x31,0x88,0x31,0x82,0x31,0x88,0x31,0x8e,0x31,0x94,0x31,0x8e,0x31,0x94, +0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x31,0x9a,0x2d,0x26,0x31,0xa0,0x2d,0x32,0x2a,0x92,0x31,0x16,0x2a,0x92,0x31,0x16,0x2a,0x86,0x31,0xa6,0x2a,0x86,0x31,0xa6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xac,0x2a,0xb6,0x31,0xac,0x2a,0xb6,0x2c,0x06,0x2c,0x0c,0x2c,0x06,0x2c,0x0c,0x31,0xb2,0x2a,0xb6,0x31,0xb2,0x2a,0xb6, +0x2e,0x76,0x2c,0x60,0x2e,0x76,0x2c,0x60,0x2e,0x7c,0x2b,0x16,0x2e,0x7c,0x2b,0x16,0x31,0xb8,0x31,0xbe,0x31,0xc4,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xca,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xd6,0x31,0xbe,0x31,0xca,0x31,0xd0,0x31,0xdc,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe2,0x31,0xbe,0x31,0xe8,0x2a,0xd4,0x31,0xe8,0x2a,0xd4, +0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xf4,0x31,0xfa,0x31,0xf4,0x31,0xfa,0x31,0xe8,0x32,0x00,0x31,0xe8,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x32,0x00,0x31,0xee,0x31,0xfa,0x31,0xee,0x31,0xfa,0x32,0x06,0x2a,0xd4,0x32,0x06,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x31,0xee,0x2a,0xd4,0x32,0x0c,0x2a,0xd4,0x32,0x0c,0x2a,0xd4, +0x32,0x12,0x2a,0xd4,0x32,0x12,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x18,0x2a,0xd4,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x2a,0xc8,0x32,0x1e,0x32,0x24,0x32,0x1e,0x32,0x24,0x32,0x2a,0x2a,0xc8,0x32,0x2a,0x2a,0xc8,0x32,0x1e,0x2e,0x16,0x32,0x1e,0x2e,0x16,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c, +0x32,0x42,0x32,0x36,0x32,0x42,0x32,0x3c,0x32,0x48,0x32,0x36,0x32,0x48,0x32,0x3c,0x32,0x4e,0x32,0x36,0x32,0x4e,0x32,0x3c,0x32,0x30,0x32,0x54,0x32,0x30,0x32,0x5a,0x32,0x30,0x32,0x36,0x32,0x30,0x32,0x3c,0x32,0x60,0x32,0x66,0x32,0x6c,0x32,0x66,0x32,0x72,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x60,0x32,0x7e, +0x32,0x60,0x32,0x84,0x32,0x6c,0x32,0x7e,0x32,0x6c,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x78,0x32,0x66,0x32,0x60,0x32,0x66,0x32,0x8a,0x32,0x66,0x32,0x90,0x32,0x66,0x32,0x96,0x32,0x66,0x2b,0x82,0x2b,0x88,0x32,0x9c,0x2b,0x76,0x32,0xa2,0x2b,0x76,0x32,0xa8,0x2b,0x76,0x32,0xae,0x2b,0x76,0x32,0xae,0x32,0xb4,0x2d,0x86,0x2b,0x76, +0x32,0xba,0x2b,0x88,0x2f,0x36,0x2b,0x76,0x31,0x76,0x32,0xc0,0x31,0x64,0x2b,0x76,0x31,0x64,0x2b,0x76,0x31,0x76,0x32,0xc6,0x31,0x76,0x32,0xcc,0x32,0xd2,0x2d,0x32,0x32,0xd2,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x2d,0x3e,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x31,0xa0,0x2d,0x32,0x32,0xae,0x2b,0x76, +0x31,0x76,0x32,0xd8,0x32,0xae,0x32,0xde,0x32,0xe4,0x32,0xea,0x32,0xf0,0x32,0xf6,0x2b,0x52,0x2b,0x58,0x32,0x8a,0x32,0x66,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x32,0xfc,0x33,0x02,0x2a,0x68,0x33,0x08,0x33,0x0e,0x33,0x14,0x33,0x0e,0x33,0x14,0x33,0x1a,0x2a,0x8c,0x33,0x1a,0x2a,0x8c,0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24, +0x33,0x20,0x2c,0x24,0x33,0x20,0x2c,0x24,0x2c,0x42,0x33,0x26,0x33,0x2c,0x33,0x32,0x33,0x2c,0x33,0x32,0x33,0x38,0x33,0x26,0x33,0x3e,0x33,0x44,0x33,0x4a,0x33,0x32,0x33,0x4a,0x33,0x32,0x33,0x3e,0x33,0x44,0x33,0x50,0x33,0x56,0x33,0x5c,0x32,0xea,0x33,0x5c,0x2b,0x16,0x33,0x50,0x33,0x56,0x33,0x62,0x33,0x68,0x33,0x6e,0x2b,0x2e, +0x33,0x6e,0x2b,0x2e,0x33,0x62,0x33,0x68,0x33,0x74,0x33,0x7a,0x33,0x80,0x33,0x86,0x33,0x80,0x33,0x8c,0x33,0x92,0x33,0x98,0x33,0x9e,0x33,0x7a,0x33,0xa4,0x33,0x8c,0x33,0xa4,0x33,0x8c,0x33,0xaa,0x33,0x98,0x33,0xb0,0x33,0xb6,0x33,0xb0,0x33,0xb6,0x2c,0x90,0x33,0xbc,0x2c,0x90,0x33,0xbc,0x33,0xc2,0x33,0xc8,0x33,0xc2,0x33,0xc8, +0x2b,0xd0,0x33,0x02,0x33,0x80,0x33,0x8c,0x33,0x80,0x33,0x8c,0x2b,0xd0,0x33,0x02,0x30,0x7a,0x33,0xce,0x30,0x7a,0x33,0xce,0x2c,0x12,0x33,0xd4,0x2a,0xc2,0x33,0xda,0x2a,0xc2,0x33,0xda,0x2c,0x12,0x33,0xd4,0x2c,0xd2,0x2c,0xcc,0x33,0xe0,0x2b,0x16,0x33,0xe0,0x2b,0x16,0x2c,0xd2,0x2c,0xcc,0x2c,0x90,0x33,0xe6,0x2c,0x90,0x33,0xe6, +0x33,0xec,0x2b,0xfa,0x33,0xec,0x2b,0xfa,0x2c,0x2a,0x2a,0xe6,0x2c,0x5a,0x2c,0xae,0x33,0xf2,0x2b,0xbe,0x33,0xf2,0x2c,0xae,0x33,0xf2,0x2b,0xd6,0x33,0xf8,0x2b,0xfa,0x33,0xfe,0x2c,0xa2,0x2c,0x42,0x2c,0x48,0x2d,0x5c,0x2c,0x54,0x2d,0x02,0x2c,0x84,0x34,0x04,0x27,0x56,0x2a,0xe0,0x2a,0xe6,0x2a,0xda,0x34,0x0a,0x2a,0xce,0x34,0x10, +0x2c,0x5a,0x2c,0xae,0x2b,0x10,0x2e,0xa0,0x2b,0x10,0x2e,0xa0,0x33,0xf2,0x2b,0xbe,0x34,0x16,0x2a,0x6e,0x34,0x16,0x2a,0x6e,0x33,0xf2,0x2c,0xae,0x34,0x16,0x2c,0xb4,0x34,0x16,0x2c,0xb4,0x33,0xf2,0x2b,0xd6,0x34,0x1c,0x2b,0x16,0x34,0x1c,0x2b,0x16,0x33,0xf8,0x2b,0xfa,0x34,0x22,0x2b,0x6a,0x2a,0x80,0x2b,0x5e,0x2a,0x80,0x2b,0x5e, +0x2c,0x42,0x2c,0x48,0x2c,0xa8,0x2e,0x46,0x2c,0xa8,0x2e,0x46,0x2d,0x5c,0x2c,0x54,0x2a,0xfe,0x2b,0x04,0x2a,0xfe,0x2b,0x04,0x2d,0x02,0x2c,0x84,0x27,0x56,0x27,0x56,0x27,0x56,0x27,0x56,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c, +0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44, +0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x25,0x08,0xc7,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe9,0x00,0x10,0x08,0xeb,0x08,0xf7,0x00,0x19,0x08,0xf9,0x08,0xf9,0x00,0x26,0x09,0x02,0x09,0x02,0x00,0x27,0x09,0x07,0x09,0x2b, +0x00,0x28,0x09,0x3b,0x09,0x4e,0x00,0x4d,0x09,0x59,0x09,0x59,0x00,0x61,0x09,0x5b,0x09,0x68,0x00,0x62,0x09,0x6c,0x09,0x6e,0x00,0x70,0x09,0x72,0x09,0x72,0x00,0x73,0x09,0x7c,0x09,0x7c,0x00,0x74,0x09,0x80,0x09,0xf8,0x00,0x75,0x09,0xfa,0x0a,0x0e,0x00,0xee,0x0a,0x24,0x0a,0x2b,0x01,0x03,0x0a,0x2d,0x0a,0x2d,0x01,0x0b,0x0a,0x3e, +0x0a,0x3f,0x01,0x0c,0x0a,0x43,0x0a,0x43,0x01,0x0e,0x0a,0x54,0x0a,0x5b,0x01,0x0f,0x0a,0x5f,0x0a,0x62,0x01,0x17,0x0a,0x72,0x0a,0xb7,0x01,0x1b,0x0b,0x0c,0x0b,0x18,0x01,0x61,0x0e,0x20,0x0e,0x3e,0x01,0x6e,0x0e,0x4b,0x0e,0x61,0x01,0x8d,0x0e,0x6e,0x0e,0x72,0x01,0xa4,0x0e,0x74,0x0e,0xd5,0x01,0xa9,0x0e,0xd7,0x0e,0xea,0x02,0x0b, +0x0e,0xec,0x0f,0x4f,0x02,0x1f,0x0f,0x62,0x0f,0xc3,0x02,0x83,0x13,0x00,0x13,0x29,0x02,0xe5,0x14,0x04,0x14,0x07,0x03,0x0f,0x14,0x09,0x14,0x16,0x03,0x13,0x14,0x53,0x14,0x5c,0x03,0x21,0x14,0x6b,0x14,0x6b,0x03,0x2b,0x14,0x6d,0x14,0x7b,0x03,0x2c,0x14,0x7d,0x14,0x87,0x03,0x3b,0x14,0xad,0x14,0xae,0x03,0x46,0x00,0x01,0x02,0x2c, +0x02,0xa2,0x00,0x02,0x00,0x0c,0x01,0xca,0x00,0x6f,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xe4,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xf0,0x00,0x00,0x19,0xf6,0x00,0x01,0x19,0xea,0x00,0x00,0x19,0xfc,0x00,0x00,0x19,0xfc,0x00,0x00,0x1a,0x02,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x01,0x1a,0x14,0x00,0x00, +0x1a,0x1a,0x00,0x01,0x1a,0x20,0x00,0x00,0x1a,0x08,0x00,0x00,0x1a,0x0e,0x00,0x00,0x1a,0x26,0x00,0x00,0x1a,0x2c,0x00,0x00,0x1a,0x32,0x00,0x00,0x1a,0x38,0x00,0x00,0x1a,0x3e,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x4a,0x00,0x01,0x1a,0x50,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x56,0x00,0x00,0x1a,0x44,0x00,0x01,0x1a,0x5c,0x00,0x00, +0x1a,0x62,0x00,0x01,0x1a,0x68,0x00,0x00,0x1a,0x6e,0x00,0x00,0x1a,0x74,0x00,0x00,0x1a,0x7a,0x00,0x00,0x1a,0x80,0x00,0x00,0x1a,0x86,0x00,0x01,0x1a,0x8c,0x00,0x00,0x19,0xf6,0x00,0x00,0x1a,0x44,0x00,0x00,0x1a,0x92,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x9e,0x00,0x00,0x1a,0xa4,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xa4,0x00,0x00, +0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x00,0x19,0xde,0x00,0x01,0x1a,0xaa,0x00,0x00,0x1a,0xb0,0x00,0x00,0x1a,0xb6,0x00,0x00,0x1a,0xbc,0x00,0x00,0x1a,0xc2,0x00,0x00,0x19,0xde,0x00,0x00,0x1a,0xc8,0x00,0x01,0x19,0xea,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xce,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0x98,0x00,0x00,0x1a,0xd4,0x00,0x00, +0x1a,0xda,0x00,0x00,0x1a,0xd4,0x00,0x00,0x1a,0xda,0x00,0x00,0x1a,0xda,0x00,0x01,0x1a,0xe0,0x00,0x01,0x1a,0xe0,0x00,0x00,0x1a,0xe6,0x00,0x00,0x1a,0xe6,0x00,0x01,0x1a,0xec,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1a,0xf8,0x00,0x01,0x1a,0xfe,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x0a,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x16,0x00,0x01, +0x1b,0x1c,0x00,0x01,0x1b,0x22,0x00,0x00,0x1b,0x28,0x00,0x00,0x1b,0x2e,0x00,0x01,0x1b,0x34,0x00,0x00,0x1b,0x3a,0x00,0x00,0x1b,0x10,0x00,0x00,0x1b,0x10,0x00,0x01,0x1b,0x40,0x00,0x00,0x1b,0x04,0x00,0x00,0x1b,0x46,0x00,0x01,0x1b,0x4c,0x00,0x01,0x1b,0x4c,0x00,0x00,0x1a,0xf2,0x00,0x00,0x1b,0x52,0x00,0x00,0x1b,0x58,0x00,0x00, +0x1b,0x28,0x00,0x00,0x1b,0x5e,0x00,0x00,0x1b,0x64,0x00,0x00,0x1b,0x6a,0x00,0x00,0x1b,0x70,0x00,0x00,0x1b,0x76,0x00,0x00,0x1b,0x7c,0x00,0x00,0x1b,0x82,0x00,0x01,0x1b,0x88,0x00,0x00,0x1b,0x8e,0x00,0x00,0x1b,0x94,0x00,0x00,0x1b,0x9a,0x00,0x00,0x1b,0xa0,0x00,0x00,0x1b,0xa6,0x00,0x00,0x1b,0xac,0x00,0x00,0x1b,0xb2,0x00,0x00, +0x1b,0xb8,0x00,0x01,0x1b,0xbe,0x00,0x05,0x00,0x0c,0x00,0x1a,0x00,0x2c,0x00,0x3e,0x00,0x50,0x00,0x03,0x23,0xd8,0x23,0xde,0x23,0xe4,0x23,0xea,0x1b,0x02,0x1b,0x08,0x00,0x04,0x23,0xe2,0x23,0xe8,0x23,0xca,0x23,0xd0,0x23,0xd6,0x23,0xdc,0x1a,0xf4,0x1a,0xfa,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0xee,0x23,0xf4,0x23,0xfa, +0x1b,0xf6,0x1b,0xfc,0x00,0x04,0x23,0xee,0x23,0xf4,0x23,0xa6,0x23,0xac,0x23,0xb2,0x23,0xb8,0x1a,0xd0,0x1a,0xd6,0x00,0x04,0x23,0xdc,0x23,0xe2,0x23,0xe8,0x23,0x9a,0x23,0xee,0x23,0xa6,0x1a,0xbe,0x1a,0xc4,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77, +0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38, +0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x03,0x09,0x71,0x09,0x71,0x00,0x00,0x0a,0x63,0x0a,0x64,0x00,0x01,0x14,0x97,0x14,0x98,0x00,0x03,0x00,0x01,0x02,0x20,0x02,0xd2,0x00,0x01,0x00,0x0c,0x01,0x6e, +0x00,0x58,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x2c,0x00,0x00,0x17,0x38,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x44,0x00,0x00,0x17,0x4a,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x62,0x00,0x00,0x17,0x50,0x00,0x00,0x17,0x56,0x00,0x00,0x17,0x6e,0x00,0x00,0x17,0x74,0x00,0x00, +0x17,0x7a,0x00,0x00,0x17,0x80,0x00,0x00,0x17,0x86,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x92,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0x9e,0x00,0x00,0x17,0x8c,0x00,0x00,0x17,0xaa,0x00,0x00,0x17,0xb6,0x00,0x00,0x17,0xbc,0x00,0x00,0x17,0xc2,0x00,0x00,0x17,0xc8,0x00,0x00,0x17,0xce,0x00,0x00,0x17,0x3e,0x00,0x00,0x17,0x8c,0x00,0x00, +0x17,0xda,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe6,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xec,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0x26,0x00,0x00,0x17,0xf8,0x00,0x00,0x17,0xfe,0x00,0x00,0x18,0x04,0x00,0x00,0x18,0x0a,0x00,0x00,0x17,0x26,0x00,0x00,0x18,0x10,0x00,0x00,0x17,0xe0,0x00,0x00, +0x18,0x16,0x00,0x00,0x17,0xe0,0x00,0x00,0x17,0xe0,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x1c,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x22,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x2e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x40,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x52,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x70,0x00,0x00, +0x18,0x76,0x00,0x00,0x18,0x82,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x58,0x00,0x00,0x18,0x4c,0x00,0x00,0x18,0x8e,0x00,0x00,0x18,0x3a,0x00,0x00,0x18,0x9a,0x00,0x00,0x18,0xa0,0x00,0x00,0x18,0x70,0x00,0x00,0x18,0xa6,0x00,0x00,0x18,0xac,0x00,0x00,0x18,0xb2,0x00,0x00,0x18,0xb8,0x00,0x00,0x18,0xbe,0x00,0x00,0x18,0xc4,0x00,0x00, +0x18,0xca,0x00,0x00,0x18,0xd6,0x00,0x00,0x18,0xdc,0x00,0x00,0x18,0xe2,0x00,0x00,0x18,0xe8,0x00,0x00,0x18,0xee,0x00,0x00,0x18,0xf4,0x00,0x00,0x18,0xfa,0x00,0x00,0x19,0x00,0x00,0x58,0x21,0xe8,0x21,0xee,0x21,0xf4,0x21,0xfa,0x21,0xe8,0x22,0x00,0x22,0x06,0x22,0x0c,0x22,0x12,0x22,0x18,0x22,0x1e,0x22,0x24,0x22,0x2a,0x22,0x30, +0x22,0x36,0x22,0x3c,0x22,0x42,0x22,0x36,0x22,0x48,0x22,0x4e,0x22,0x06,0x22,0x54,0x22,0x5a,0x22,0x0c,0x22,0x60,0x22,0x66,0x22,0x6c,0x22,0x72,0x22,0x78,0x22,0x7e,0x22,0x84,0x22,0x8a,0x22,0x90,0x22,0x96,0x22,0x90,0x22,0x84,0x22,0x9c,0x22,0xa2,0x22,0x42,0x22,0x42,0x22,0xa8,0x22,0xae,0x22,0xb4,0x22,0xba,0x22,0xc0,0x22,0xc6, +0x22,0x9c,0x22,0xcc,0x22,0xcc,0x22,0x84,0x22,0xd2,0x22,0xd8,0x22,0xde,0x22,0xe4,0x22,0xea,0x22,0xf0,0x22,0xf6,0x22,0xfc,0x23,0x02,0x23,0x08,0x23,0x0e,0x23,0x14,0x23,0x1a,0x23,0x20,0x23,0x26,0x23,0x2c,0x23,0x32,0x23,0x38,0x23,0x3e,0x23,0x44,0x23,0x4a,0x23,0x50,0x23,0x56,0x23,0x5c,0x22,0xe4,0x23,0x62,0x23,0x68,0x23,0x6e, +0x23,0x74,0x23,0x7a,0x23,0x80,0x23,0x86,0x23,0x8c,0x23,0x92,0x23,0x98,0x23,0x9e,0x23,0xa4,0x23,0xaa,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13, +0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62, +0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e,0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b, +0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x02,0x00,0x1d,0x09,0x2c,0x09,0x2d,0x00,0x00,0x09,0x2f,0x09,0x30,0x00,0x02,0x09,0x32,0x09,0x33,0x00,0x04,0x09,0x37,0x09,0x37,0x00,0x06,0x09,0x73,0x09,0x75,0x00,0x07,0x09,0x7e,0x09,0x7e,0x00,0x0a,0x0a,0x0f,0x0a,0x13,0x00,0x0b,0x0a,0x16,0x0a,0x19,0x00,0x10,0x0a,0x1b,0x0a,0x1b,0x00,0x14, +0x0a,0x1e,0x0a,0x1f,0x00,0x15,0x0a,0x22,0x0a,0x22,0x00,0x17,0x0a,0x4b,0x0a,0x4f,0x00,0x18,0x0a,0x51,0x0a,0x53,0x00,0x1d,0x0a,0x65,0x0a,0x69,0x00,0x20,0x0a,0x6c,0x0a,0x6e,0x00,0x25,0x0a,0x70,0x0a,0x71,0x00,0x28,0x0e,0x1a,0x0e,0x1d,0x00,0x2a,0x0e,0x62,0x0e,0x6a,0x00,0x2e,0x13,0x2a,0x13,0x2b,0x00,0x37,0x13,0x2d,0x13,0x2e, +0x00,0x39,0x13,0x30,0x13,0x32,0x00,0x3b,0x13,0x36,0x13,0x37,0x00,0x3e,0x13,0x39,0x13,0x3b,0x00,0x40,0x13,0x3d,0x13,0x3e,0x00,0x43,0x13,0x41,0x13,0x44,0x00,0x45,0x13,0xe9,0x13,0xe9,0x00,0x49,0x14,0x17,0x14,0x17,0x00,0x4a,0x14,0x5d,0x14,0x61,0x00,0x4b,0x14,0x63,0x14,0x6a,0x00,0x50,0x00,0x01,0x00,0x9a,0x01,0x10,0x00,0x01, +0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xae,0x00,0x00,0x13,0xd8,0x00,0x00,0x13,0xe4,0x00,0x00,0x14,0x14,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0x2c,0x00,0x00,0x14,0x50,0x00,0x00,0x14,0x6e,0x00,0x00,0x13,0xae,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xb0,0x00,0x00,0x14,0xc2,0x00,0x00, +0x14,0xda,0x00,0x00,0x14,0xe0,0x00,0x00,0x14,0xe6,0x00,0x00,0x14,0xf8,0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x10,0x00,0x00,0x15,0x4c,0x00,0x00,0x15,0x82,0x00,0x17,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x42,0x21,0x4e,0x21,0x42,0x21,0x54,0x21,0x36,0x21,0x42,0x21,0x5a,0x21,0x60,0x21,0x66, +0x21,0x6c,0x21,0x72,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x8a,0x21,0x90,0x21,0x96,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06, +0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f,0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62, +0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, +0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x01, +0x00,0x32,0x00,0x38,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00,0x11,0x0e,0x00,0x0f,0x20,0x6e,0x20,0x74,0x20,0x7a,0x20,0x80,0x20,0x86,0x20,0x8c,0x20,0x92,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0xb0,0x20,0x7a,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00, +0x0b,0x6f,0x0b,0x6f,0x00,0x01,0x0b,0x75,0x0b,0x75,0x00,0x02,0x0b,0x77,0x0b,0x77,0x00,0x03,0x0b,0x7a,0x0b,0x7a,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x8d,0x0b,0x95,0x00,0x06,0x00,0x01,0x02,0xc8,0x02,0xe4,0x00,0x04,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x02, +0x10,0xa8,0x00,0x00,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x02,0x10,0xa8,0x00,0x01,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x03,0x10,0xa8,0x00,0x50,0x20,0x28,0x20,0x2e,0x20,0x34,0x20,0x3a,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, +0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0xd0,0x20,0xd6,0x20,0xdc,0x20,0xe2,0x20,0xe8,0x20,0xee,0x20,0xf4,0x20,0xfa,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x20,0xb8,0x20,0xbe, +0x20,0xc4,0x20,0xca,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x20,0xc4,0x21,0x78,0x21,0x7e,0x21,0x84,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2, +0x21,0xa8,0x21,0xae,0x21,0xb4,0x21,0xba,0x21,0x72,0x21,0xc0,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x21,0xf0,0x21,0xf6,0x21,0xfc,0x22,0x02,0x22,0x08,0x22,0x0e,0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a, +0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x22,0x6e,0x22,0x74,0x22,0x7a,0x22,0x80,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x18,0x21,0x1e,0x21,0x24,0x21,0x2a,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x48,0x21,0x4e, +0x21,0x54,0x21,0x5a,0x22,0x86,0x22,0x8c,0x22,0x92,0x22,0x98,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x10,0x68,0x22,0xb6,0x20,0x9a,0x22,0xbc,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66, +0x21,0x6c,0x21,0x72,0x22,0x2c,0x22,0x32,0x22,0xc2,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x20,0x40,0x20,0x46,0x20,0x4c,0x20,0x52,0x20,0x58,0x20,0x5e, +0x20,0x64,0x20,0x6a,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x22,0xe0,0x22,0xe6,0x22,0xec,0x20,0xdc,0x21,0x00,0x21,0x06,0x21,0x0c,0x21,0x12,0x22,0xc8,0x22,0xce,0x22,0xd4,0x22,0xda,0x21,0x18,0x21,0x1e, +0x21,0x24,0x21,0x2a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0x48,0x21,0x4e,0x21,0x54,0x21,0x5a,0x21,0x60,0x21,0x66,0x21,0x6c,0x21,0x72,0x21,0x8a,0x21,0x90,0x21,0x42,0x21,0x96,0x21,0x9c,0x21,0xa2,0x21,0xa8,0x21,0xae,0x21,0xc6,0x21,0xa8,0x21,0xcc,0x21,0xd2,0x21,0xd8,0x21,0xde,0x21,0xe4,0x21,0xea,0x22,0x08,0x22,0x0e, +0x21,0xc0,0x20,0x9a,0x22,0x14,0x22,0x1a,0x22,0x20,0x22,0x26,0x22,0x2c,0x22,0x32,0x22,0x38,0x22,0x3e,0x22,0x44,0x22,0x4a,0x22,0x50,0x22,0x3e,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x20,0xb8,0x20,0xbe,0x20,0xc4,0x20,0xca,0x20,0x58,0x20,0x5e,0x20,0x64,0x20,0x6a,0x21,0x30,0x21,0x36,0x21,0x3c,0x21,0x42,0x21,0xd8,0x21,0xde, +0x21,0xe4,0x21,0xea,0x22,0x9e,0x22,0xa4,0x22,0xaa,0x22,0xb0,0x20,0x70,0x20,0x76,0x20,0x7c,0x20,0x82,0x20,0x88,0x20,0x8e,0x20,0x94,0x20,0x9a,0x20,0xa0,0x20,0xa6,0x20,0xac,0x20,0xb2,0x22,0x56,0x22,0x5c,0x22,0x62,0x22,0x68,0x00,0x02,0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9, +0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0xb4,0x00,0xba,0x00,0x01,0x00,0x0c,0x00,0x12,0x00,0x01,0x00,0x00, +0x0d,0x9c,0x00,0x50,0x20,0x1a,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x32,0x20,0x38,0x20,0x3e,0x20,0x44,0x20,0x32,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x5c,0x20,0x32,0x20,0x62,0x1e,0xd6,0x20,0x68,0x20,0x6e,0x1e,0xd6,0x20,0x74,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x32,0x20,0x32, +0x20,0x32,0x20,0x4a,0x20,0x4a,0x20,0x56,0x20,0x56,0x20,0x32,0x20,0x68,0x1d,0x5c,0x20,0x26,0x20,0x2c,0x20,0x50,0x20,0x56,0x20,0x3e,0x20,0x4a,0x20,0x86,0x20,0x80,0x20,0x8c,0x20,0x80,0x20,0x8c,0x1d,0x5c,0x1f,0xba,0x20,0x20,0x20,0x26,0x20,0x2c,0x20,0x92,0x20,0x6e,0x20,0x44,0x20,0x92,0x20,0x4a,0x20,0x50,0x20,0x56,0x20,0x5c, +0x20,0x62,0x1e,0xd6,0x20,0x6e,0x1e,0xd6,0x20,0x7a,0x20,0x5c,0x20,0x4a,0x20,0x80,0x20,0x86,0x20,0x98,0x20,0x9e,0x20,0xa4,0x20,0xaa,0x20,0x56,0x20,0xb0,0x20,0x9e,0x20,0xb6,0x20,0xbc,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f, +0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x04,0xda,0x05,0x14,0x00,0x07,0x00,0x0c,0x00,0x6a,0x00,0x17,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x06,0x0c,0xba, +0x00,0x01,0x0c,0xba,0x00,0x04,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x03,0x0c,0xba,0x00,0x02,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x00,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x05,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x01,0x0c,0xba,0x00,0x51,0x1f,0x88, +0x1f,0x8e,0x1f,0x94,0x1f,0x8e,0x1f,0x9a,0x1f,0xa0,0x1f,0xa6,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x1f,0xca,0x1f,0xd0,0x1f,0xd6,0x1f,0xd0,0x1f,0xdc,0x1f,0xe2,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18, +0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x20,0x42,0x1e,0xf8,0x20,0x48,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x20,0x5a,0x1e,0x92,0x20,0x60,0x1e,0x92,0x20,0x66,0x20,0x6c,0x20,0x24,0x1d,0x78,0x1b,0xc8,0x20,0x72,0x1b,0xc8,0x20,0x78,0x20,0x7e,0x1d,0xf6,0x1f,0x28,0x20,0x84, +0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea, +0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x20,0x42,0x1e,0xf8,0x20,0x9c,0x1e,0xf8,0x20,0x4e,0x20,0x54,0x1f,0xe2,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56, +0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a,0x21,0x80,0x21,0x86,0x21,0x8c,0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xb6,0x21,0xbc,0x21,0xc2,0x21,0xbc,0x21,0xc8,0x1e,0xf2,0x20,0x06, +0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22, +0x22,0x2e,0x21,0x20,0x1c,0x7c,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x20,0x42,0x22,0x34,0x22,0x3a,0x22,0x34,0x22,0x40,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xbc, +0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x22,0x46,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x22,0x4c,0x22,0x52,0x20,0x42,0x22,0x58,0x22,0x5e,0x22,0x58,0x22,0x64,0x20,0x7e,0x1d,0xf6,0x21,0x68,0x21,0x6e,0x21,0x74,0x21,0x6e,0x21,0x7a, +0x21,0x80,0x21,0x86,0x1f,0xac,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x1f,0xc4,0x1f,0xc4,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90,0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2, +0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x20,0xf6,0x20,0xfc,0x21,0x02,0x20,0xfc,0x21,0x08,0x20,0x7e,0x1d,0xf6,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c, +0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x1f,0x34,0x22,0x0a,0x22,0x6a,0x22,0x70,0x22,0x76,0x22,0x1c,0x21,0xe6,0x22,0x7c,0x22,0x0a,0x22,0x10,0x22,0x82,0x22,0x16,0x22,0x88,0x22,0x8e,0x22,0x94,0x1f,0xb2,0x1f,0xb8,0x1f,0xb2,0x1f,0xbe,0x22,0x9a,0x22,0x9a,0x1f,0xca,0x1f,0xd0,0x1f,0xd6, +0x1f,0xd0,0x1f,0xdc,0x22,0xa0,0x1f,0xe2,0x1f,0xe8,0x1f,0xee,0x1f,0xf4,0x1f,0xee,0x1f,0xfa,0x20,0x00,0x20,0x06,0x20,0x0c,0x1f,0xd0,0x20,0x12,0x1f,0xd0,0x20,0x18,0x20,0x1e,0x20,0x1e,0x20,0x24,0x20,0x2a,0x20,0x30,0x20,0x2a,0x20,0x36,0x1c,0x7c,0x20,0x3c,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8, +0x22,0xbe,0x22,0xc4,0x21,0x32,0x22,0xc4,0x1c,0x16,0x1d,0x5a,0x21,0x44,0x1f,0x28,0x20,0x84,0x20,0x8a,0x20,0x84,0x20,0x90,0x20,0x96,0x20,0x7e,0x1e,0xe6,0x1f,0x58,0x22,0xa6,0x1f,0x58,0x22,0xac,0x22,0xb2,0x22,0xb8,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae,0x20,0xb4,0x20,0xb4,0x1e,0xec,0x1d,0x90,0x20,0xba,0x1d,0x90, +0x20,0xc0,0x20,0xc6,0x20,0xc6,0x20,0xcc,0x20,0xd2,0x20,0xd8,0x20,0xde,0x20,0xe4,0x20,0xea,0x20,0xf0,0x1f,0x88,0x21,0x0e,0x21,0x14,0x21,0x0e,0x21,0x1a,0x1c,0x7c,0x21,0x20,0x21,0x26,0x21,0x2c,0x21,0x32,0x21,0x2c,0x21,0x38,0x21,0x3e,0x21,0x44,0x21,0x4a,0x21,0x50,0x21,0x56,0x21,0x50,0x21,0x5c,0x1d,0x1e,0x21,0x62,0x21,0x8c, +0x1c,0x76,0x21,0x92,0x1c,0x76,0x21,0x98,0x1e,0x7a,0x21,0x9e,0x21,0x4a,0x21,0xa4,0x21,0xaa,0x21,0xa4,0x21,0xb0,0x1d,0x1e,0x21,0x62,0x21,0xce,0x21,0xd4,0x21,0xda,0x21,0xd4,0x21,0xe0,0x21,0xe6,0x21,0xec,0x21,0xf2,0x21,0xf8,0x21,0xfe,0x21,0xf8,0x22,0x04,0x1c,0x7c,0x20,0x3c,0x1e,0xbc,0x20,0xa2,0x20,0xa8,0x20,0xa2,0x20,0xae, +0x20,0xb4,0x20,0xb4,0x1f,0x34,0x22,0x0a,0x22,0x10,0x22,0x0a,0x22,0x16,0x22,0x1c,0x21,0xe6,0x1f,0x0a,0x22,0x22,0x22,0x28,0x22,0x22,0x22,0x2e,0x21,0x20,0x1c,0x7c,0x22,0xca,0x20,0xea,0x22,0xd0,0x22,0xd6,0x22,0xdc,0x22,0xe2,0x22,0xe8,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x0c,0x23,0x12, +0x23,0x18,0x23,0x12,0x23,0x1e,0x23,0x24,0x23,0x2a,0x23,0x30,0x23,0x36,0x23,0x3c,0x23,0x36,0x21,0xb0,0x22,0xbe,0x23,0x42,0x20,0xcc,0x23,0x48,0x23,0x4e,0x23,0x54,0x23,0x5a,0x20,0xea,0x20,0xf0,0x23,0x60,0x23,0x66,0x1b,0xc8,0x23,0x66,0x23,0x6c,0x23,0x72,0x1c,0x34,0x23,0x78,0x23,0x7e,0x23,0x84,0x23,0x7e,0x23,0x8a,0x23,0x90, +0x23,0x96,0x22,0xee,0x22,0xf4,0x22,0xfa,0x22,0xf4,0x23,0x00,0x23,0x06,0x1e,0x98,0x23,0x9c,0x23,0xa2,0x23,0xa8,0x23,0xa2,0x20,0x36,0x23,0xae,0x23,0xb4,0x1e,0xec,0x23,0xba,0x23,0xc0,0x23,0xba,0x22,0x2e,0x20,0xc6,0x1c,0x7c,0x00,0x02,0x00,0x09,0x0b,0x61,0x0b,0x61,0x00,0x00,0x0b,0xc0,0x0b,0xc3,0x00,0x01,0x0b,0xc5,0x0b,0xc7, +0x00,0x05,0x0b,0xca,0x0b,0xcf,0x00,0x08,0x0b,0xd6,0x0b,0xd7,0x00,0x0e,0x0b,0xd9,0x0b,0xda,0x00,0x10,0x0b,0xdc,0x0b,0xdd,0x00,0x12,0x0b,0xe1,0x0b,0xe1,0x00,0x14,0x12,0x5c,0x12,0x5d,0x00,0x15,0x00,0x02,0x00,0x07,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a, +0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x0b,0xdf,0x0b,0xdf,0x00,0x4c,0x12,0x5f,0x12,0x62,0x00,0x4d,0x00,0x01,0x01,0x88,0x01,0xbc,0x00,0x02,0x00,0x0c,0x00,0x46,0x00,0x0e,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00, +0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x00,0x07,0x78,0x00,0x50,0x1a,0x70,0x1a,0x7c,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x19,0xda,0x1b,0x30,0x1c,0x1a,0x1e,0xd8,0x16,0xaa,0x1e,0xde, +0x1e,0xe4,0x1e,0xea,0x19,0xda,0x1b,0x30,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x08,0x1b,0xf0,0x1f,0x0e,0x1f,0x14,0x1f,0x1a,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x26,0x1f,0x2c,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x4a,0x1c,0x50,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c, +0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1d,0x16,0x1f,0x80,0x1e,0xf0,0x1e,0xf6,0x1e,0xf0,0x1e,0xf6,0x1e,0xfc,0x1f,0x02,0x1e,0xfc,0x1f,0x02,0x1d,0x3a,0x1f,0x86,0x1f,0x8c,0x1f,0x2c,0x1e,0xa8,0x1e,0xae,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1f,0x92,0x1f,0x98,0x1c,0xaa, +0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x9e,0x1f,0x62,0x1f,0x02,0x1f,0x74,0x1f,0x7a,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1f,0x68,0x1f,0x6e,0x1e,0xa8,0x1e,0xae,0x1e,0xb4,0x1e,0xba,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1a,0x3a,0x1d,0x8e,0x18,0xf0,0x17,0x5e,0x1e,0xe4,0x1e,0xea, +0x1a,0x3a,0x1d,0x8e,0x1e,0xf0,0x1e,0xf6,0x18,0xea,0x1c,0xaa,0x1e,0xfc,0x1f,0x02,0x1b,0xf0,0x1f,0x0e,0x1c,0x0e,0x17,0x5e,0x1c,0x32,0x1f,0x20,0x1f,0x32,0x1f,0x38,0x1f,0x3e,0x1f,0x44,0x1f,0x50,0x1f,0x56,0x1c,0xda,0x1f,0x5c,0x1f,0x62,0x1f,0x02,0x1f,0x68,0x1f,0x6e,0x1f,0x74,0x1f,0x7a,0x19,0xda,0x1b,0x30,0x1e,0xb4,0x1e,0xba, +0x18,0xea,0x1c,0xaa,0x1f,0x3e,0x1f,0x44,0x1f,0x8c,0x1f,0xa4,0x1e,0xc0,0x1e,0xc6,0x1d,0x88,0x1e,0xcc,0x1e,0xd2,0x1b,0x8a,0x1f,0x74,0x1f,0x7a,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd0, +0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0c,0x0b,0xdb,0x0b,0xdb,0x00,0x0d,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62,0x00,0x4c,0x00,0x01,0x00,0x40,0x00,0x56,0x00,0x01, +0x00,0x0c,0x00,0x3a,0x00,0x0b,0x00,0x00,0x05,0x94,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x05,0x94,0x00,0x00,0x18,0x2a,0x00,0x00,0x18,0x2a,0x00,0x00,0x1e,0x06,0x00,0x00,0x1e,0x06,0x00,0x00,0x17,0x46,0x00,0x00,0x1e,0x06,0x00,0x02,0x1d,0xde,0x16,0x70,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b, +0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x01,0x00,0x02,0x0b,0x5f,0x0b,0x67,0x00,0x01,0x00,0xb4,0x00,0xe8,0x00,0x04,0x00,0x0c,0x00,0x42,0x00,0x0d,0x00,0x00,0x05,0x36,0x00,0x00,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x03,0x05,0x36,0x00,0x01,0x05,0x36,0x00,0x01,0x05,0x36, +0x00,0x01,0x1d,0xb4,0x00,0x01,0x05,0x36,0x00,0x02,0x05,0x36,0x00,0x01,0x1d,0xba,0x00,0x01,0x05,0x36,0x00,0x03,0x1d,0xc0,0x00,0x0e,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x17,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x15,0xf2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa2,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xa8,0x1d,0x90,0x1d,0x96,0x1d,0x9c, +0x17,0xa2,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x1d,0xb4,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0x90,0x1d,0xae,0x1d,0x9c,0x1d,0xba,0x1d,0x90,0x1d,0x96,0x1d,0x9c,0x19,0x22,0x1d,0xc0,0x1d,0xae,0x1d,0xc6,0x1d,0x06,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6, +0x1a,0x84,0x1d,0xc0,0x1d,0xcc,0x1d,0xc6,0x1a,0x84,0x00,0x02,0x00,0x08,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc8,0x0b,0xc9,0x00,0x04,0x0b,0xd1,0x0b,0xd5,0x00,0x06,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x0b,0xdb,0x0b,0xdb,0x00,0x0c,0x00,0x02, +0x00,0x04,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x12,0x59,0x12,0x5b,0x00,0x0b,0x00,0x01,0x00,0x78,0x00,0x8e,0x00,0x02,0x00,0x0c,0x00,0x1e,0x00,0x04,0x00,0x00,0x04,0x32,0x00,0x00,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x01,0x04,0x32,0x00,0x16,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2, +0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0xf2,0x1c,0xf8,0x1c,0x98,0x1c,0xfe,0x1c,0xf2,0x1c,0xf8,0x1d,0x04,0x1d,0x0a,0x1d,0x04,0x1d,0x10,0x1d,0x16,0x1d,0x10,0x1d,0x1c,0x1d,0x22,0x1d,0x28,0x1d,0x2e,0x1d,0x28, +0x1d,0x34,0x1d,0x3a,0x1c,0xfe,0x1d,0x40,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x04,0x1d,0x22,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x57,0x0b,0x58,0x00,0x01,0x0b,0x5a,0x0b,0x5a,0x00,0x03,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x67,0x0b,0x67,0x00,0x0a,0x0b,0xb9, +0x0b,0xb9,0x00,0x0b,0x0b,0xbf,0x0b,0xbf,0x00,0x0c,0x0b,0xc4,0x0b,0xc4,0x00,0x0d,0x0b,0xc9,0x0b,0xc9,0x00,0x0e,0x0b,0xd0,0x0b,0xd5,0x00,0x0f,0x0b,0xd8,0x0b,0xd8,0x00,0x15,0x00,0x01,0x00,0x70,0x00,0x9e,0x00,0x02,0x00,0x0c,0x00,0x3e,0x00,0x0c,0x00,0x00,0x1b,0xe8,0x00,0x00,0x03,0x6a,0x00,0x00,0x16,0xf6,0x00,0x00,0x1c,0xa2, +0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa2,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa8,0x00,0x00,0x1c,0xa2,0x00,0x01,0x03,0x6a,0x00,0x00,0x1c,0xae,0x00,0x00,0x1c,0xa2,0x00,0x0c,0x1c,0x82,0x1c,0x52,0x1c,0x88,0x1c,0x2e,0x1c,0x8e,0x1c,0x94,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x10,0x1c,0x8e,0x1c,0x9a,0x14,0x42,0x1c,0xa0,0x1c,0xa6, +0x1c,0xac,0x1c,0x8e,0x1c,0xa0,0x1c,0xb2,0x1c,0xb8,0x14,0x42,0x1c,0xbe,0x1c,0x8e,0x1c,0x9a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b, +0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x7c,0x00,0xb6,0x00,0x01,0x00,0x0c,0x00,0x56,0x00,0x12,0x00,0x00,0x1b,0x1c, +0x00,0x00,0x1a,0x74,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x17,0xf8,0x00,0x00,0x1c,0x2a,0x00,0x00,0x16,0x2a,0x00,0x00,0x1c,0x30,0x00,0x00,0x1b,0xe2,0x00,0x00,0x15,0xac,0x00,0x00,0x02,0x9e,0x00,0x00,0x02,0x9e,0x00,0x00,0x1c,0x2a,0x00,0x00,0x02,0x9e,0x00,0x00,0x1b,0xe2,0x00,0x00,0x1c,0x36,0x00,0x00,0x1b,0x1c, +0x00,0x00,0x1c,0x36,0x00,0x12,0x1b,0x6e,0x1b,0x80,0x1b,0xf2,0x1b,0x38,0x1b,0xf8,0x1b,0xc8,0x1b,0xfe,0x1c,0x04,0x1c,0x0a,0x1c,0x0a,0x1c,0x0a,0x1c,0x10,0x1b,0x6e,0x1b,0x4a,0x1b,0xc8,0x1b,0xfe,0x1b,0x80,0x1b,0xd4,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05, +0x0b,0xcc,0x0b,0xcf,0x00,0x06,0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x02,0x00,0x09,0x0b,0xc1,0x0b,0xc3,0x00,0x00,0x0b,0xc5,0x0b,0xc6,0x00,0x03,0x0b,0xca,0x0b,0xca,0x00,0x05,0x0b,0xcc,0x0b,0xcf,0x00,0x06, +0x0b,0xd6,0x0b,0xd7,0x00,0x0a,0x0b,0xd9,0x0b,0xda,0x00,0x0c,0x0b,0xdd,0x0b,0xdd,0x00,0x0e,0x0b,0xe1,0x0b,0xe1,0x00,0x0f,0x12,0x5c,0x12,0x5d,0x00,0x10,0x00,0x01,0x00,0x1a,0x00,0x22,0x00,0x01,0x00,0x0c,0x00,0x16,0x00,0x02,0x00,0x00,0x01,0xae,0x00,0x00,0x01,0xae,0x00,0x01,0x1b,0x66,0x00,0x01,0x00,0x02,0x0b,0x63,0x0b,0x64, +0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x01,0x04,0x04,0xb0,0x00,0x01,0x01,0x13,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0xb0,0x00,0x01,0x00,0x00,0x05,0x64,0x00,0x01,0xff,0xce,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x88,0x00,0x01,0x00,0x46,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x60,0x00,0x01,0x00,0x00,0x03,0xde,0x00,0x01,0x00,0x00, +0x03,0xe8,0x00,0x01,0x00,0x00,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xec,0x00,0x01,0x00,0x00,0xff,0xec,0x00,0x01,0x00,0x1e,0x04,0xb0,0x00,0x01,0x01,0x93,0x04,0xb0,0x00,0x01,0x01,0xa6,0x04,0xb0,0x00,0x01,0x01,0xa8,0x04,0xb0,0x00,0x01,0x00,0x00,0x04,0x6f,0x00,0x01,0x00,0x00,0x04,0xa6,0x00,0x01,0x00,0x0f,0x04,0x7e,0x00,0x01, +0xff,0xf1,0x04,0x7e,0x00,0x01,0x00,0x00,0x04,0xc4,0x00,0x01,0x01,0xd9,0x04,0xba,0x00,0x01,0x01,0xd9,0x03,0xca,0x00,0x01,0x02,0x07,0x04,0x74,0x00,0x01,0x01,0x53,0x04,0x06,0x00,0x01,0x01,0x18,0x06,0x77,0x00,0x01,0x00,0xe1,0x06,0x08,0x00,0x01,0x01,0x0e,0x06,0x08,0x00,0x01,0x00,0x00,0x06,0x5e,0x00,0x01,0x00,0x00,0x05,0xdc, +0x00,0x01,0x00,0x00,0x05,0x7f,0x00,0x01,0x00,0x00,0x06,0x3c,0x00,0x01,0x00,0x00,0x06,0x0e,0x00,0x01,0x00,0x00,0x05,0xd5,0x00,0x01,0x00,0x00,0x05,0xd7,0x00,0x01,0x00,0x00,0x06,0x6c,0x00,0x01,0x00,0x00,0x06,0x50,0x00,0x01,0x00,0x00,0x06,0x5c,0x00,0x01,0x00,0x00,0x06,0xb8,0x00,0x01,0x00,0x00,0x06,0x73,0x00,0x01,0x00,0x00, +0x05,0xf0,0x00,0x01,0x00,0x00,0x06,0xb5,0x00,0x01,0x00,0x00,0x07,0x6c,0x00,0x01,0x00,0x00,0x07,0x54,0x00,0x01,0x00,0x00,0x01,0x4d,0x00,0x01,0x00,0x00,0x06,0x3a,0x00,0x01,0x00,0x00,0x06,0x40,0x00,0x01,0x00,0x00,0x06,0xc4,0x00,0x01,0x00,0x00,0x07,0xb2,0x00,0x01,0x00,0x00,0x06,0xf0,0x00,0x01,0x01,0x93,0x06,0x22,0x00,0x01, +0x01,0xa6,0x06,0x18,0x00,0x01,0x01,0xa8,0x06,0x4a,0x00,0x01,0x00,0x00,0x06,0xfe,0x00,0x01,0x00,0x00,0x07,0xda,0x00,0x01,0x00,0x00,0x07,0xe4,0x00,0x01,0x00,0x00,0x07,0x80,0x00,0x01,0x00,0x00,0x06,0xa8,0x00,0x01,0x00,0x00,0x06,0x54,0x00,0x01,0x00,0x00,0x06,0xc2,0x00,0x01,0x00,0x00,0x06,0x27,0x00,0x01,0x01,0xd9,0x06,0x5a, +0x00,0x01,0x01,0xd9,0x05,0x80,0x00,0x01,0x02,0x07,0x06,0x22,0x00,0x01,0x01,0x53,0x06,0xc9,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x41,0x00,0x01,0x00,0x0a,0x00,0x41,0x00,0x01,0x00,0x0f,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x41,0x00,0x01,0xff,0xfb,0x00,0x32,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x00,0x00,0xff,0xc9,0x00,0x01,0x00,0x00,0xff,0xe2,0x00,0x01,0xff,0xf1,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0xff,0xa6,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x82,0x00,0x01,0x00,0x00,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x32,0x00,0x01,0x00,0x00,0x00,0x50,0x00,0x01, +0x00,0x00,0x00,0x1e,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x00,0x00,0x64,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x01,0x00,0xd9,0x00,0x82,0x00,0x01,0x02,0x80,0x00,0x82,0x00,0x01,0x01,0x54,0xfe,0xc0,0x00,0x01,0x00,0x00,0xfe,0x48,0x00,0x01,0x00,0x00,0xfe,0x5c,0x00,0x01,0xff,0xfb,0xff,0x4c,0x00,0x01,0x00,0x00,0xfe,0xc0, +0x00,0x01,0x00,0x00,0xfe,0x7a,0x00,0x01,0x00,0x00,0xfe,0x20,0x00,0x01,0x00,0x00,0xfe,0xb6,0x00,0x01,0x00,0x00,0xfe,0x84,0x00,0x01,0x00,0x00,0xff,0x10,0x00,0x01,0x00,0x00,0xfe,0xa2,0x00,0x01,0x00,0x00,0xff,0x56,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x01,0x00,0x00,0xfd,0xf8,0x00,0x01,0x00,0x00,0xfe,0x16,0x00,0x01,0x00,0x00, +0xfe,0x3e,0x00,0x01,0x01,0xa9,0xfe,0xa2,0x00,0x01,0x00,0x00,0xfe,0x0c,0x00,0x01,0x00,0xd9,0xfe,0x02,0x00,0x01,0x02,0x80,0xfe,0x02,0x00,0x01,0x03,0x16,0x06,0x0e,0x00,0x01,0x02,0x67,0x04,0xb0,0x00,0x01,0x01,0x03,0x06,0x7c,0x00,0x01,0x00,0x7e,0x06,0x73,0x00,0x01,0x01,0x03,0xff,0x71,0x00,0x01,0x01,0x03,0x06,0x5e,0x00,0x01, +0x00,0xc4,0x06,0x73,0x00,0x01,0x01,0x03,0x06,0x76,0x00,0x01,0x01,0x03,0x06,0x62,0x00,0x01,0x01,0x03,0x06,0x1d,0x00,0x01,0x00,0xef,0x06,0x71,0x00,0x01,0x00,0xb2,0xff,0x6b,0x00,0x01,0x00,0xf5,0x06,0x7c,0x00,0x01,0x01,0x03,0xff,0x6b,0x00,0x01,0x00,0xe9,0x06,0x1e,0x00,0x01,0x01,0x03,0x06,0x70,0x00,0x01,0x00,0xec,0x06,0x1f, +0x00,0x01,0x01,0x03,0x06,0x8f,0x00,0x01,0x01,0x03,0x06,0x7b,0x00,0x01,0x01,0x03,0x06,0x71,0x00,0x01,0x01,0x1f,0x06,0x65,0x00,0x01,0x00,0xec,0x00,0x05,0x00,0x01,0x01,0x0c,0x06,0x70,0x00,0x01,0x01,0x03,0xff,0xc1,0x00,0x01,0x01,0x03,0x06,0x35,0x00,0x01,0x01,0x1f,0x00,0x34,0x00,0x01,0x00,0xf9,0x06,0x55,0x00,0x01,0x00,0xeb, +0x06,0x55,0x00,0x01,0x01,0x11,0x06,0x1f,0x00,0x01,0x01,0x1c,0x06,0x1f,0x00,0x01,0x00,0xf3,0x06,0x71,0x00,0x01,0x01,0x03,0xff,0x7e,0x00,0x01,0x00,0xf9,0x06,0x7c,0x00,0x01,0x01,0x03,0x05,0x16,0x00,0x01,0x01,0x03,0x05,0x20,0x00,0x01,0x01,0x03,0x05,0x28,0x00,0x01,0x01,0x03,0xff,0x69,0x00,0x01,0x01,0x42,0x06,0x73,0x00,0x01, +0x01,0x03,0x06,0x67,0x00,0x01,0x00,0xf8,0x06,0x1d,0x00,0x01,0x00,0xd7,0x06,0x1f,0x00,0x01,0x00,0xe1,0x06,0x7a,0x00,0x01,0x01,0x03,0x06,0x60,0x00,0x01,0x01,0x03,0x05,0x26,0x00,0x01,0x00,0xfa,0x05,0x26,0x00,0x01,0x01,0x03,0x00,0xc1,0x00,0x01,0x01,0x18,0x06,0x72,0x00,0x01,0x00,0xfa,0xff,0xce,0x00,0x01,0x01,0x40,0x06,0x72, +0x00,0x01,0x01,0x7c,0x06,0x72,0x00,0x01,0x01,0x2c,0xff,0xce,0x00,0x01,0x00,0xc8,0x06,0x72,0x00,0x01,0x01,0x68,0x06,0x72,0x00,0x01,0x00,0xfa,0x06,0x72,0x00,0x01,0x00,0xbe,0xff,0x74,0x00,0x01,0x01,0x5e,0xff,0x74,0x00,0x01,0x00,0xc8,0xff,0x74,0x00,0x01,0x01,0x2c,0x06,0x72,0x00,0x01,0x01,0xe0,0x06,0x72,0x00,0x01,0x01,0x7c, +0xff,0x74,0x00,0x01,0x00,0xdc,0x06,0x72,0x00,0x01,0x01,0x04,0xff,0x74,0x00,0x01,0x00,0xa0,0x06,0x72,0x00,0x01,0x00,0x8c,0xff,0x4c,0x00,0x01,0x02,0x80,0x06,0x72,0x00,0x01,0x01,0x4a,0x06,0x72,0x00,0x01,0x01,0x03,0x03,0xb8,0x00,0x01,0x00,0xfa,0x06,0x5e,0x00,0x01,0x02,0x5a,0x06,0x71,0x00,0x01,0x01,0x05,0x06,0x1f,0x00,0x01, +0x00,0xdd,0x06,0x1e,0x00,0x01,0x00,0xfa,0x06,0x71,0x00,0x01,0x01,0x03,0x05,0xd1,0x00,0x01,0x01,0x03,0xff,0x90,0x00,0x01,0x00,0x1d,0x07,0x1d,0x00,0x01,0xff,0x8e,0x07,0x1d,0x00,0x01,0xff,0x97,0x07,0x1d,0x00,0x01,0xff,0x47,0x07,0x1d,0x00,0x01,0xff,0x79,0x07,0x1d,0x00,0x01,0xff,0xcd,0x07,0x1d,0x00,0x01,0x01,0x7a,0x06,0x71, +0x00,0x01,0x01,0x93,0x06,0x71,0x00,0x01,0xff,0xda,0x00,0x0c,0x00,0x01,0x00,0xfa,0x06,0x1e,0x00,0x01,0x00,0xfa,0xff,0x5c,0x00,0x01,0x00,0xfa,0x08,0x1b,0x00,0x01,0x00,0xfa,0x07,0x62,0x00,0x01,0x00,0xfa,0xfd,0xcc,0x00,0x01,0x00,0xfa,0x04,0x09,0x00,0x01,0x01,0x2c,0xfe,0x42,0x00,0x01,0x01,0x90,0x05,0x48,0x00,0x01,0x00,0xfa, +0xff,0x2a,0x00,0x01,0x01,0x90,0x06,0x2e,0x00,0x01,0x01,0xf4,0x04,0x09,0x00,0x01,0x02,0x26,0xfe,0x42,0x00,0x01,0x02,0x0e,0x04,0x4e,0x00,0x01,0x02,0xa4,0xfd,0xcd,0x00,0x01,0x02,0x26,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0xf7,0x00,0x01,0x02,0x0e,0x05,0x3e,0x00,0x01,0x01,0xc2,0x04,0x3b,0x00,0x01,0x02,0x58,0xff,0x2a,0x00,0x01, +0x01,0x5e,0x04,0x89,0x00,0x01,0x01,0x2c,0x03,0xd2,0x00,0x01,0x02,0xbc,0xff,0x22,0x00,0x01,0x01,0xc2,0x04,0xb6,0x00,0x01,0x01,0xf4,0xff,0x2a,0x00,0x01,0x01,0xf4,0x04,0x8a,0x00,0x01,0x01,0xf5,0x04,0x5d,0x00,0x01,0x02,0x8b,0xfd,0xcd,0x00,0x01,0x01,0xc2,0x05,0x48,0x00,0x01,0x01,0xf4,0x05,0x16,0x00,0x01,0x01,0xf5,0x05,0x65, +0x00,0x01,0x01,0x90,0x05,0x88,0x00,0x01,0x01,0x90,0xff,0x2a,0x00,0x01,0x01,0xc2,0x05,0x88,0x00,0x01,0x00,0xfa,0x05,0x9e,0x00,0x01,0x01,0x5e,0xff,0x2a,0x00,0x01,0x01,0x5e,0x06,0x1e,0x00,0x01,0x01,0x2c,0xff,0x2a,0x00,0x01,0x01,0x4a,0x03,0xdb,0x00,0x01,0x02,0x44,0xfe,0xf8,0x00,0x01,0x01,0x5e,0x05,0x48,0x00,0x01,0x01,0x7f, +0x04,0xe9,0x00,0x01,0x02,0x79,0xff,0x2a,0x00,0x01,0x01,0xc5,0x04,0x50,0x00,0x01,0x03,0x55,0xfd,0xcd,0x00,0x01,0x01,0xff,0x04,0x9f,0x00,0x01,0x02,0x31,0xff,0x2a,0x00,0x01,0x01,0x40,0xfe,0x42,0x00,0x01,0x01,0xc6,0x03,0x3f,0x00,0x01,0x00,0x64,0xfe,0xff,0x00,0x01,0x01,0xff,0x05,0xc8,0x00,0x01,0x01,0xf8,0xfe,0x9e,0x00,0x01, +0x01,0x5e,0x05,0xd4,0x00,0x01,0x01,0xae,0x04,0xb7,0x00,0x01,0x01,0xe0,0xfe,0x9e,0x00,0x01,0x01,0x22,0x03,0x7c,0x00,0x01,0x01,0x81,0xff,0x38,0x00,0x01,0x00,0xfa,0xff,0x9c,0x00,0x01,0x01,0x90,0x05,0xa2,0x00,0x01,0x01,0x90,0xfd,0xcd,0x00,0x01,0x01,0xae,0x05,0x62,0x00,0x01,0x01,0xe0,0xfe,0xf1,0x00,0x01,0x02,0x3b,0x03,0xd7, +0x00,0x01,0x01,0x73,0xff,0x0a,0x00,0x01,0x01,0xa5,0x05,0xc1,0x00,0x01,0x02,0x09,0xff,0x22,0x00,0x01,0x02,0x3b,0x05,0x48,0x00,0x01,0x01,0xd7,0xff,0x22,0x00,0x01,0x01,0x73,0x05,0x02,0x00,0x01,0x01,0x1a,0x04,0x82,0x00,0x01,0x01,0xb0,0xff,0x22,0x00,0x01,0x01,0x1a,0x05,0xc1,0x00,0x01,0x01,0x90,0x03,0x26,0x00,0x01,0x01,0x2c, +0xfd,0xcd,0x00,0x01,0x01,0x90,0x04,0x6b,0x00,0x01,0x02,0x8f,0x03,0xd7,0x00,0x01,0x06,0x13,0xff,0x2b,0x00,0x01,0x02,0x8f,0x03,0xd2,0x00,0x01,0x06,0xdb,0xff,0x2b,0x00,0x01,0x03,0xe8,0x05,0x24,0x00,0x01,0x02,0xee,0xff,0x22,0x00,0x01,0x01,0x91,0x04,0xf2,0x00,0x01,0x01,0x91,0x05,0xf3,0x00,0x01,0x00,0x96,0x02,0x29,0x00,0x01, +0x00,0x96,0xfe,0x62,0x00,0x01,0x02,0x9f,0x04,0x2a,0x00,0x01,0x02,0x3b,0xff,0x22,0x00,0x01,0x01,0x31,0x04,0x79,0x00,0x01,0x02,0xc1,0xfd,0xcd,0x00,0x01,0x02,0x3b,0x05,0x24,0x00,0x01,0x03,0x03,0xff,0x22,0x00,0x01,0x01,0xc7,0x05,0x24,0x00,0x01,0x02,0x8f,0xfe,0x48,0x00,0x01,0x01,0x33,0x03,0x81,0x00,0x01,0x02,0x5f,0xff,0x2b, +0x00,0x01,0x02,0x5d,0x04,0x24,0x00,0x01,0x02,0x8f,0xfd,0xcd,0x00,0x01,0x01,0xa5,0x04,0x96,0x00,0x01,0x01,0xc2,0x03,0xe3,0x00,0x01,0x01,0xc6,0x04,0x15,0x00,0x01,0x01,0xf8,0xfe,0xf1,0x00,0x01,0x00,0x64,0xff,0x27,0x00,0x01,0x01,0x90,0x04,0x5c,0x00,0x01,0x01,0x41,0xff,0x27,0x00,0x01,0x01,0x72,0xfd,0x97,0x00,0x01,0x02,0x26, +0xfd,0x97,0x00,0x01,0x01,0x90,0x05,0x83,0x00,0x01,0x01,0xd7,0x04,0xa4,0x00,0x01,0x03,0x67,0xff,0x22,0x00,0x01,0x01,0xd7,0x05,0x76,0x00,0x01,0x00,0xfa,0x06,0xa2,0x00,0x01,0x01,0xff,0x06,0x7d,0x00,0x01,0x01,0xa5,0x06,0x76,0x00,0x01,0x01,0x73,0x04,0x8d,0x00,0x01,0x01,0x5e,0x06,0x96,0x00,0x01,0x00,0xe8,0x07,0x41,0x00,0x01, +0x01,0x5e,0x06,0x1d,0x00,0x01,0x02,0x5d,0x02,0xed,0x00,0x01,0x01,0xa5,0x04,0xc8,0x00,0x01,0x00,0xfa,0xfd,0xd8,0x00,0x01,0x01,0x5e,0x03,0x2d,0x00,0x01,0x01,0x90,0xfd,0xc8,0x00,0x01,0x01,0x6c,0x03,0xf1,0x00,0x01,0x02,0x66,0xff,0x22,0x00,0x01,0x01,0x6c,0x01,0x2f,0x00,0x01,0x02,0x66,0xfd,0xf6,0x00,0x01,0x01,0x6c,0x05,0xa2, +0x00,0x01,0x01,0x6c,0x03,0xa1,0x00,0x01,0x02,0x9f,0x04,0xf2,0x00,0x01,0x01,0xc2,0x06,0xa0,0x00,0x01,0x01,0x83,0x02,0xe7,0x00,0x01,0x02,0x19,0xff,0x19,0x00,0x01,0x01,0xf9,0x03,0x7f,0x00,0x01,0x00,0xfa,0x08,0x1a,0x00,0x01,0x00,0x96,0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0xa2,0x00,0x01,0x01,0xa9,0x05,0xc7,0x00,0x01,0x01,0x77, +0xfd,0xcd,0x00,0x01,0x01,0xc6,0x04,0x8b,0x00,0x01,0x01,0xc6,0x03,0x4a,0x00,0x01,0x01,0x73,0x04,0x9e,0x00,0x01,0x01,0x73,0xff,0x27,0x00,0x01,0x01,0x5e,0xfd,0x97,0x00,0x01,0x01,0xd7,0xff,0x20,0x00,0x01,0x00,0xfa,0xfe,0xa1,0x00,0x01,0x01,0x41,0x04,0x9e,0x00,0x01,0x02,0x0e,0x05,0xf3,0x00,0x01,0x01,0xf4,0x05,0x7a,0x00,0x01, +0x02,0x0e,0x06,0x56,0x00,0x01,0x01,0xf4,0x05,0xdd,0x00,0x01,0x01,0xdc,0x06,0x56,0x00,0x01,0x01,0xb0,0xfe,0x90,0x00,0x01,0x01,0xb0,0xfe,0x42,0x00,0x01,0x01,0x1a,0x06,0xd9,0x00,0x01,0x01,0x90,0x05,0x13,0x00,0x01,0x01,0x2c,0xfd,0xc9,0x00,0x01,0x01,0x2c,0xfd,0xaf,0x00,0x01,0x06,0x13,0xfe,0x63,0x00,0x01,0x01,0xc2,0x04,0x39, +0x00,0x01,0x01,0xc2,0xff,0x3c,0x00,0x01,0x06,0x13,0xfd,0x97,0x00,0x01,0x01,0x5e,0xff,0x27,0x00,0x01,0x07,0x3f,0xfe,0x63,0x00,0x01,0x02,0x26,0xff,0x0a,0x00,0x01,0x02,0x8f,0x04,0x68,0x00,0x01,0x01,0x2c,0x04,0x68,0x00,0x01,0x03,0xe8,0x06,0x1e,0x00,0x01,0x01,0x91,0x06,0xd9,0x00,0x01,0x01,0xf5,0x06,0x74,0x00,0x01,0x01,0xc2, +0x06,0x60,0x00,0x01,0x01,0xf4,0x06,0x2e,0x00,0x01,0x01,0x90,0xfe,0x42,0x00,0x01,0x01,0xc2,0xfd,0x97,0x00,0x01,0x01,0x95,0x04,0x47,0x00,0x01,0x01,0x63,0x04,0xc9,0x00,0x01,0x01,0xdb,0x04,0x4b,0x00,0x01,0x03,0x6b,0xfe,0xf0,0x00,0x01,0x01,0x5e,0x04,0x7d,0x00,0x01,0x02,0x8a,0xfe,0xf0,0x00,0x01,0x02,0x3b,0x06,0xe5,0x00,0x01, +0x01,0x2c,0x06,0xe5,0x00,0x01,0x01,0xa5,0x07,0x35,0x00,0x01,0x01,0x2c,0x07,0xfd,0x00,0x01,0x01,0xd7,0x05,0x9d,0x00,0x01,0x01,0x2c,0x07,0xf5,0x00,0x01,0x01,0x41,0xff,0x0a,0x00,0x01,0x01,0x5e,0xfe,0x42,0x00,0x01,0x01,0xa5,0xff,0x27,0x00,0x01,0x01,0xd7,0x05,0x6b,0x00,0x01,0x00,0xfa,0x08,0xef,0x00,0x01,0x01,0x90,0x08,0x40, +0x00,0x01,0x01,0x5e,0x07,0x99,0x00,0x01,0x01,0x90,0x08,0xb1,0x00,0x01,0x02,0x8f,0xfd,0x92,0x00,0x01,0x01,0x2c,0xfd,0x97,0x00,0x01,0x02,0x5d,0x05,0x7a,0x00,0x01,0x00,0xcd,0xfe,0xf5,0x00,0x01,0x02,0x5d,0x05,0x72,0x00,0x01,0x00,0xcd,0xfe,0xb9,0x00,0x01,0x02,0x5d,0x05,0x0a,0x00,0x01,0x01,0xc2,0x04,0x48,0x00,0x01,0x01,0x90, +0xfd,0xcc,0x00,0x01,0x01,0xc2,0x05,0x95,0x00,0x01,0x01,0xc2,0x05,0xc7,0x00,0x01,0x01,0xc2,0x05,0xbd,0x00,0x01,0x01,0xc2,0x04,0xdd,0x00,0x01,0x01,0x90,0x05,0xf5,0x00,0x01,0x01,0xc2,0x04,0x15,0x00,0x01,0x01,0xf4,0xfe,0xf1,0x00,0x01,0x01,0xae,0x03,0x3f,0x00,0x01,0x01,0xc6,0x06,0x40,0x00,0x01,0x01,0xc6,0x04,0x90,0x00,0x01, +0x01,0x90,0x05,0xbe,0x00,0x01,0x01,0xc6,0x04,0xdc,0x00,0x01,0x01,0x2c,0xff,0x27,0x00,0x01,0x01,0xc6,0x03,0xe9,0x00,0x01,0x00,0xfa,0xff,0x22,0x00,0x01,0x00,0xc8,0xff,0x27,0x00,0x01,0x00,0xc8,0xff,0x22,0x00,0x01,0x02,0x8a,0xff,0x0a,0x00,0x01,0x01,0xf5,0x05,0x8e,0x00,0x01,0x01,0xf4,0xfe,0x42,0x00,0x01,0x02,0x5f,0xfd,0xcd, +0x00,0x01,0x01,0xd7,0x05,0x41,0x00,0x01,0x02,0x62,0x05,0x16,0x00,0x01,0x02,0x62,0xff,0x92,0x00,0x01,0x01,0x1a,0x06,0x69,0x00,0x01,0x01,0x7e,0x06,0x69,0x00,0x01,0x01,0x7f,0x06,0x40,0x00,0x01,0x01,0xc5,0x05,0xaa,0x00,0x01,0x00,0xe6,0x06,0x40,0x00,0x01,0x01,0xe0,0xff,0x2a,0x00,0x01,0x01,0x18,0x06,0x0e,0x00,0x01,0x02,0x12, +0xfd,0xcd,0x00,0x01,0x01,0x0f,0xff,0x3c,0x00,0x01,0x00,0xfa,0xfe,0x42,0x00,0x01,0x01,0x72,0xfe,0x42,0x00,0x01,0x01,0x41,0xff,0x0d,0x00,0x01,0x01,0x5e,0xfd,0xe1,0x00,0x01,0x02,0x3b,0x05,0xbe,0x00,0x01,0x01,0xb0,0xfd,0x97,0x00,0x01,0x01,0xb0,0xfd,0xe1,0x00,0x01,0x01,0x2c,0x04,0x89,0x00,0x01,0x01,0x91,0x06,0x07,0x00,0x01, +0x01,0xf5,0x05,0x84,0x00,0x01,0x01,0x91,0x06,0xed,0x00,0x01,0x01,0xf5,0x06,0x6a,0x00,0x01,0x01,0xc2,0xfe,0x42,0x00,0x01,0x01,0xf4,0xfd,0x83,0x00,0x01,0x01,0xd7,0x05,0x55,0x00,0x01,0x01,0xd7,0x04,0xdd,0x00,0x01,0x01,0x90,0xfd,0x97,0x00,0x01,0x01,0x01,0x04,0xdd,0x00,0x01,0x01,0x4a,0x04,0xdd,0x00,0x01,0x02,0x5f,0xfe,0x63, +0x00,0x01,0x02,0x44,0xfe,0x42,0x00,0x01,0x00,0x9b,0xfe,0x91,0x00,0x01,0x02,0x5d,0x06,0xc8,0x00,0x01,0x01,0x5e,0x08,0x1e,0x00,0x01,0x02,0x5d,0x05,0xc7,0x00,0x01,0x01,0x90,0x07,0x1d,0x00,0x01,0x01,0x90,0x05,0x20,0x00,0x01,0x01,0xc6,0x04,0x47,0x00,0x01,0x00,0xfa,0xff,0x2b,0x00,0x01,0x00,0xfa,0xfe,0xd6,0x00,0x01,0x01,0x7e, +0x04,0x82,0x00,0x01,0x01,0x7e,0x05,0xc1,0x00,0x01,0x02,0xee,0xff,0x25,0x00,0x01,0x02,0x2a,0x05,0x78,0x00,0x01,0x02,0x2a,0x04,0x2c,0x00,0x01,0x02,0x2a,0x06,0x84,0x00,0x01,0x02,0x2a,0x05,0x58,0x00,0x01,0x01,0x5e,0x04,0xe9,0x00,0x01,0x01,0x7f,0x05,0x1b,0x00,0x01,0x01,0x5e,0x04,0x50,0x00,0x01,0x02,0x26,0xfd,0xcd,0x00,0x01, +0x00,0xfa,0x05,0x70,0x00,0x01,0x01,0x7e,0x07,0x41,0x00,0x01,0x01,0x7e,0x06,0xd9,0x00,0x01,0x02,0x09,0x04,0xa4,0x00,0x01,0x02,0x09,0x05,0x76,0x00,0x01,0x02,0x09,0x05,0x9d,0x00,0x01,0x02,0x09,0x05,0x6b,0x00,0x01,0x02,0x5d,0x05,0x7e,0x00,0x01,0x00,0xcd,0xfe,0xf0,0x00,0x01,0x01,0x83,0x04,0x75,0x00,0x01,0x01,0x83,0x03,0xc0, +0x00,0x01,0x01,0x7e,0x06,0x40,0x00,0x01,0x02,0x09,0x05,0x55,0x00,0x01,0x02,0x09,0x04,0xdd,0x00,0x01,0x00,0x9b,0xfe,0x8c,0x00,0x01,0x02,0xa4,0xfd,0xcc,0x00,0x01,0x02,0x26,0xfd,0xd1,0x00,0x01,0x02,0xa4,0xfd,0xc8,0x00,0x01,0x01,0xf4,0x03,0xd5,0x00,0x01,0x02,0x26,0xfd,0xc8,0x00,0x01,0x01,0x2c,0x05,0xaf,0x00,0x01,0x01,0x90, +0x07,0x3f,0x00,0x01,0x01,0xaa,0x06,0xbe,0x00,0x01,0x01,0xf4,0x06,0x77,0x00,0x01,0x00,0xfa,0x07,0xa0,0x00,0x01,0x01,0x90,0xff,0x9c,0x00,0x01,0x01,0x90,0xff,0x5c,0x00,0x01,0x01,0xc6,0x05,0xee,0x00,0x01,0x01,0xc6,0x05,0x43,0x00,0x01,0x01,0x90,0x06,0x5a,0x00,0x01,0x00,0xc8,0xff,0x08,0x00,0x01,0x01,0xc6,0x03,0xb7,0x00,0x01, +0x00,0xfa,0xfd,0x46,0x00,0x01,0x01,0xd9,0x05,0x27,0x00,0x01,0x02,0x3d,0xfd,0xcd,0x00,0x01,0x01,0xd8,0x05,0x27,0x00,0x01,0x02,0x3c,0xfd,0xcd,0x00,0x01,0x01,0x6c,0x05,0xd2,0x00,0x01,0x01,0x6c,0x03,0xd1,0x00,0x01,0x02,0x26,0xfd,0x46,0x00,0x01,0x01,0x2c,0x04,0xba,0x00,0x01,0x01,0x5e,0x04,0x54,0x00,0x01,0x00,0xc8,0x06,0xf1, +0x00,0x01,0x01,0x2c,0xff,0x2c,0x00,0x01,0x00,0xc8,0x07,0xaa,0x00,0x01,0x00,0xc8,0x05,0x8a,0x00,0x01,0x01,0x2c,0xfd,0xcc,0x00,0x01,0x00,0xc8,0x07,0xa9,0x00,0x01,0x00,0xc8,0x06,0x1b,0x00,0x01,0x00,0xc8,0x07,0x28,0x00,0x01,0x01,0x5e,0x04,0x3b,0x00,0x01,0x00,0xfa,0x04,0x89,0x00,0x01,0x01,0x5e,0x04,0x39,0x00,0x01,0x01,0x5e, +0xff,0x0a,0x00,0x01,0x00,0xfa,0xff,0x27,0x00,0x01,0x01,0x5e,0x05,0x83,0x00,0x01,0x00,0xfa,0x05,0xaf,0x00,0x01,0x00,0xfa,0x04,0xec,0x00,0x01,0x00,0xfa,0x04,0x54,0x00,0x01,0x01,0x2c,0x04,0x36,0x00,0x01,0x01,0x90,0xff,0x0a,0x00,0x01,0x01,0x2c,0x04,0xfe,0x00,0x01,0x00,0xf8,0x06,0x1e,0x00,0x01,0x00,0x94,0xff,0x86,0x00,0x01, +0x00,0xc6,0xff,0x86,0x00,0x01,0x00,0xf8,0x08,0x40,0x00,0x01,0x00,0xf8,0x07,0x99,0x00,0x01,0x00,0xf8,0x08,0xb1,0x00,0x01,0x00,0x94,0xfd,0x97,0x00,0x01,0x00,0xc6,0xfd,0x97,0x00,0x01,0x01,0xc9,0x02,0xd2,0x00,0x01,0x01,0x65,0xfd,0xcd,0x00,0x01,0x01,0xc9,0x04,0x6b,0x00,0x01,0x01,0x97,0x06,0x1d,0x00,0x01,0x01,0xc9,0x05,0x13, +0x00,0x01,0x01,0x65,0xfd,0xc9,0x00,0x01,0x01,0x65,0xfd,0xaf,0x00,0x01,0x01,0xc9,0x05,0x83,0x00,0x01,0x01,0xc9,0x05,0x20,0x00,0x01,0x01,0xc9,0x07,0x3f,0x00,0x01,0x01,0xc6,0x04,0xc2,0x00,0x01,0x01,0xc6,0x04,0x4f,0x00,0x01,0x01,0xc6,0x05,0x67,0x00,0x01,0x01,0xc6,0x03,0x04,0x00,0x01,0x00,0xcc,0xfe,0xcd,0x00,0x01,0x01,0xae, +0x03,0x04,0x00,0x01,0x00,0x9a,0xfe,0xf0,0x00,0x01,0x00,0x9a,0xff,0x08,0x00,0x01,0x01,0xf8,0xff,0x6e,0x00,0x01,0x01,0x6c,0x01,0xc5,0x00,0x01,0x00,0xcc,0xff,0x22,0x00,0x01,0x01,0x30,0xfe,0xa4,0x00,0x01,0x00,0xc8,0x05,0xe2,0x00,0x01,0x00,0xc8,0xff,0x2a,0x00,0x01,0x00,0x64,0x05,0x4c,0x00,0x01,0x00,0xb4,0xff,0x2a,0x00,0x01, +0x02,0x3a,0x03,0xd7,0x00,0x01,0x01,0x40,0xff,0x24,0x00,0x01,0x01,0x86,0xfd,0x8a,0x00,0x01,0x02,0x58,0x05,0x32,0x00,0x01,0x02,0xbc,0xfd,0xcd,0x00,0x01,0x02,0x26,0x05,0x32,0x00,0x01,0x03,0xde,0x05,0x50,0x00,0x01,0x02,0x3a,0xff,0x22,0x00,0x01,0x01,0xe0,0x06,0xc2,0x00,0x01,0x01,0xe0,0xfe,0x52,0x00,0x01,0x02,0x9e,0x04,0x2a, +0x00,0x01,0x01,0x68,0x04,0x47,0x00,0x01,0x02,0xe4,0xfc,0x7c,0x00,0x01,0x01,0xd6,0x05,0xaa,0x00,0x01,0x01,0x68,0x05,0x24,0x00,0x01,0x02,0x8a,0xfe,0x48,0x00,0x01,0x01,0x7c,0x06,0x54,0x00,0x01,0x02,0x9e,0x05,0xfa,0x00,0x01,0x02,0x6c,0xff,0x2b,0x00,0x01,0x02,0x94,0x06,0x0e,0x00,0x01,0x01,0x36,0x05,0x1e,0x00,0x01,0x00,0x6e, +0xff,0x10,0x00,0x01,0x01,0x72,0x05,0x96,0x00,0x01,0x01,0x40,0xfe,0x52,0x00,0x01,0x01,0x4a,0xfe,0x52,0x00,0x01,0x01,0x40,0x04,0xf6,0x00,0x01,0x00,0x64,0xfe,0xd4,0x00,0x01,0x02,0x08,0x05,0x0a,0x00,0x01,0x01,0x72,0x05,0x64,0x00,0x01,0x01,0xf4,0x04,0x38,0x00,0x01,0x01,0x90,0x03,0x20,0x00,0x01,0x00,0xdc,0xfd,0xcd,0x00,0x01, +0x01,0x72,0xfd,0xcd,0x00,0x01,0x01,0xea,0x04,0x10,0x00,0x01,0x02,0x58,0xfe,0x52,0x00,0x01,0x01,0xce,0xfd,0x94,0x00,0x01,0x07,0x43,0xfd,0x6c,0x00,0x01,0x04,0xa4,0xfd,0x6c,0x00,0x01,0x01,0x6b,0x05,0xd8,0x00,0x01,0x01,0xc3,0xfe,0xe2,0x00,0x01,0x01,0x90,0x06,0x40,0x00,0x01,0x02,0x3b,0x04,0xb0,0x00,0x01,0x01,0x90,0x05,0xc3, +0x00,0x01,0x02,0x2a,0x06,0x40,0x00,0x01,0x02,0x32,0x05,0x46,0x00,0x01,0x02,0x8a,0xfd,0x7a,0x00,0x01,0x02,0x26,0xfd,0x7a,0x00,0x01,0x01,0x90,0x05,0xaa,0x00,0x01,0x01,0x5e,0x05,0x91,0x00,0x01,0x02,0x2a,0x04,0x90,0x00,0x01,0x06,0xf4,0x06,0xc2,0x00,0x01,0x06,0xf4,0xff,0x2a,0x00,0x01,0x05,0x0a,0x08,0x7a,0x00,0x01,0x04,0xb0, +0xff,0x2a,0x00,0x01,0x08,0xfc,0x06,0x32,0x00,0x01,0x08,0xfc,0xff,0x9c,0x00,0x01,0x0a,0x0a,0x03,0x26,0x00,0x01,0x09,0xa6,0xfd,0xcd,0x00,0x01,0x07,0xd0,0x03,0xe8,0x00,0x01,0x07,0x62,0xfe,0x3e,0x00,0x01,0x06,0x5e,0x06,0x54,0x00,0x01,0x05,0x46,0xfe,0x70,0x00,0x01,0x09,0x92,0x05,0x88,0x00,0x01,0x09,0x92,0xff,0x2a,0x00,0x01, +0x07,0x08,0x06,0x5e,0x00,0x01,0x04,0xe2,0x05,0xbe,0x00,0x01,0x01,0x03,0x07,0xda,0x00,0x01,0x00,0x7e,0x08,0x52,0x00,0x01,0x01,0x03,0x07,0x26,0x00,0x01,0x00,0xc4,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x2a,0x00,0x01,0x01,0x03,0x07,0x6c,0x00,0x01,0x01,0x03,0x08,0x3e,0x00,0x01,0x01,0x03,0x08,0x98,0x00,0x01,0x00,0xef,0x09,0x24, +0x00,0x01,0x00,0xf5,0x08,0x3e,0x00,0x01,0x01,0x03,0x09,0x38,0x00,0x01,0x00,0xef,0x08,0x5c,0x00,0x01,0x00,0xe9,0x08,0x98,0x00,0x01,0x01,0x03,0x08,0x66,0x00,0x01,0x00,0xec,0x08,0x2a,0x00,0x01,0x01,0x03,0x08,0x16,0x00,0x01,0x01,0x03,0x07,0xf8,0x00,0x01,0x01,0x1f,0x08,0x8e,0x00,0x01,0x01,0x0c,0x08,0x66,0x00,0x01,0x01,0x03, +0x08,0xde,0x00,0x01,0x00,0xf9,0x08,0x34,0x00,0x01,0x00,0xeb,0x08,0x34,0x00,0x01,0x01,0x11,0x08,0x3e,0x00,0x01,0x01,0x1c,0x08,0xd4,0x00,0x01,0x00,0xf3,0x07,0xf8,0x00,0x01,0x00,0xc4,0x08,0x70,0x00,0x01,0x01,0x03,0x08,0x34,0x00,0x01,0x00,0xf9,0x09,0x1a,0x00,0x01,0x01,0x03,0x07,0x30,0x00,0x01,0x01,0x03,0x08,0x48,0x00,0x01, +0x01,0x03,0x07,0xe4,0x00,0x01,0x01,0x03,0x07,0x3a,0x00,0x01,0x01,0x42,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0x7a,0x00,0x01,0x00,0xf8,0x09,0x1a,0x00,0x01,0x00,0xd7,0x08,0xfc,0x00,0x01,0x01,0x03,0x07,0x12,0x00,0x01,0x00,0xe1,0x08,0x34,0x00,0x01,0x01,0x03,0x08,0x52,0x00,0x01,0x01,0x03,0x08,0xb6,0x00,0x01,0x00,0xfa,0x07,0x9e, +0x00,0x01,0x01,0x03,0x08,0xca,0x00,0x01,0x00,0xfa,0x08,0x52,0x00,0x01,0x00,0xfa,0x08,0x98,0x00,0x01,0x01,0x18,0x07,0xd0,0x00,0x01,0x01,0x18,0x08,0x61,0x00,0x01,0x01,0x40,0x08,0x98,0x00,0x01,0x01,0x7c,0x09,0x47,0x00,0x01,0x00,0xc8,0x07,0x78,0x00,0x01,0x01,0x68,0x07,0x78,0x00,0x01,0x00,0xfa,0x08,0x27,0x00,0x01,0x01,0x2c, +0x08,0x98,0x00,0x01,0x01,0xe0,0x08,0x5b,0x00,0x01,0x00,0xdc,0x09,0x2a,0x00,0x01,0x00,0xfa,0x08,0x69,0x00,0x01,0x00,0xfa,0x08,0x2c,0x00,0x01,0x00,0xc8,0x08,0x95,0x00,0x01,0x00,0xa0,0x08,0x95,0x00,0x01,0x01,0x40,0x08,0x95,0x00,0x01,0x02,0x80,0x08,0x95,0x00,0x01,0x01,0x4a,0x08,0x95,0x00,0x01,0x01,0x2c,0x08,0x5b,0x00,0x01, +0x01,0x03,0x06,0xf4,0x00,0x01,0x02,0x5a,0x09,0xc4,0x00,0x01,0x01,0x05,0x08,0x65,0x00,0x01,0x00,0xc9,0x09,0x2a,0x00,0x01,0x00,0xfa,0x09,0x8b,0x00,0x01,0x01,0x03,0x08,0xd9,0x00,0x01,0x00,0x1d,0x0a,0x5b,0x00,0x01,0xff,0x8e,0x09,0xe7,0x00,0x01,0xff,0x97,0x09,0xe7,0x00,0x01,0xff,0x47,0x09,0xff,0x00,0x01,0xff,0x79,0x09,0xa9, +0x00,0x01,0xff,0xcd,0x09,0xa9,0x00,0x01,0x01,0x7a,0x08,0x53,0x00,0x01,0x01,0x93,0x08,0x38,0x00,0x01,0x01,0x03,0xfe,0x0c,0x00,0x01,0x01,0x03,0xfe,0xd4,0x00,0x01,0x00,0xb2,0xfd,0xbc,0x00,0x01,0x01,0x03,0xfd,0xbc,0x00,0x01,0x00,0xec,0xfd,0xc6,0x00,0x01,0x01,0x1f,0xfd,0xc6,0x00,0x01,0x01,0x03,0xfe,0x48,0x00,0x01,0x01,0x03, +0xfe,0x70,0x00,0x01,0x00,0xfa,0xfe,0x53,0x00,0x01,0x01,0x2c,0xfd,0x8b,0x00,0x01,0x00,0xbe,0xfe,0x5c,0x00,0x01,0x01,0x5e,0xfe,0x5c,0x00,0x01,0x00,0xc8,0xfd,0xa5,0x00,0x01,0x01,0x7c,0xfd,0x5e,0x00,0x01,0x01,0x04,0xfd,0xbd,0x00,0x01,0x00,0x8c,0xfd,0x3a,0x00,0x01,0x01,0x03,0xfc,0x8b,0x00,0x01,0x00,0x00,0xfe,0x09,0x00,0x01, +0x02,0x62,0xff,0xe2,0x00,0x01,0x02,0xb7,0x00,0x00,0x00,0x01,0x02,0xc9,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x02,0xad,0x00,0x50,0x00,0x01,0x00,0xdf,0xff,0x44,0x00,0x01,0x02,0xb2,0x00,0x50,0x00,0x01,0x02,0x3a,0xfe,0x42,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x02,0xb8,0x00,0x00,0x00,0x01,0x01,0xa4,0x00,0x00, +0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x01,0x03,0x20,0x00,0x00,0x00,0x01,0x02,0x04,0x00,0x00,0x00,0x01,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0xef,0x00,0x00,0x00,0x01,0x00,0x95,0x00,0x00,0x00,0x01,0x02,0x2a,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0x15,0x00,0x00,0x00,0x01,0x00,0xbb, +0x00,0x00,0x00,0x01,0x01,0xd9,0x00,0x00,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x01,0x00,0xc4,0x00,0x00,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x01,0x50,0x00,0x00,0x00,0x01,0x00,0xc1,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x01,0xff,0xe1,0x00,0x00,0x00,0x01,0x02,0x26,0x00,0x00,0x00,0x01,0x01,0x97,0x00,0x00,0x00,0x01, +0x00,0xdf,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x02,0x5d,0x00,0x00,0x00,0x01,0x01,0xce,0x00,0x00,0x00,0x01,0x01,0x48,0x00,0x00,0x00,0x01,0x00,0xee,0x00,0x00,0x00,0x01,0x00,0xb6,0x00,0x00,0x00,0x01,0x00,0x27,0x00,0x00,0x00,0x01,0xff,0xa1,0x00,0x00,0x00,0x01,0xff,0x47,0x00,0x00,0x00,0x01,0x01,0x3a,0x00,0x00, +0x00,0x01,0x00,0xab,0x00,0x00,0x00,0x01,0xff,0xf3,0x00,0x00,0x00,0x01,0xff,0xcb,0x00,0x00,0x00,0x01,0x02,0x5b,0x00,0x00,0x00,0x01,0x01,0xcc,0x00,0x00,0x00,0x01,0x01,0x46,0x00,0x00,0x00,0x01,0x00,0xec,0x00,0x00,0x00,0x01,0x02,0x5a,0x00,0x00,0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x45,0x00,0x00,0x00,0x01,0x00,0xeb, +0x00,0x00,0x00,0x01,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0xba,0x00,0x00,0x00,0x01,0xff,0xf5,0x00,0x00,0x00,0x01,0xff,0x3b,0x00,0x00,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x53,0x00,0x00,0x00,0x01,0xff,0xf9,0x00,0x00,0x00,0x01,0x01,0x6d,0x00,0x00,0x00,0x01,0x00,0xde,0x00,0x00,0x00,0x01, +0x00,0x58,0x00,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00,0x01,0x02,0x62,0x00,0x00,0x00,0x01,0x01,0xd3,0x00,0x00,0x00,0x01,0x01,0x4d,0x00,0x00,0x00,0x01,0x00,0xf3,0x00,0x00,0x00,0x01,0xfe,0x98,0x00,0x00,0x00,0x01,0xfd,0x91,0x00,0x00,0x00,0x01,0xfc,0xd7,0x00,0x00,0x00,0x01,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x7f,0x00,0x00, +0x00,0x01,0xff,0x9f,0x00,0x00,0x00,0x01,0x02,0x57,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0x42,0x00,0x00,0x00,0x01,0x00,0xe8,0x00,0x00,0x00,0x01,0x02,0x08,0x00,0x00,0x00,0x01,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x99,0x00,0x00,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x00,0x01,0xff,0xa7, +0x00,0x00,0x00,0x01,0x01,0xef,0x00,0x00,0x00,0x01,0x01,0x60,0x00,0x00,0x00,0x01,0x00,0xda,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x00,0x00,0x01,0x00,0xbf,0x00,0x00,0x00,0x01,0xff,0xb6,0x00,0x00,0x00,0x01,0xfe,0xaf,0x00,0x00,0x00,0x01,0xfd,0xf5,0x00,0x00,0x00,0x01,0x01,0xae,0x00,0x00,0x00,0x01,0x01,0x1f,0x00,0x00,0x00,0x01, +0x02,0x53,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x00,0x00,0x01,0x03,0x1b,0x00,0x00,0x00,0x01,0x02,0x8c,0x00,0x00,0x00,0x01,0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x02,0xa3,0x00,0x00,0x00,0x01,0x02,0x14,0x00,0x00,0x00,0x01,0x01,0x8e,0x00,0x00, +0x00,0x01,0x02,0x9e,0x00,0x00,0x00,0x01,0x02,0x0f,0x00,0x00,0x00,0x01,0x01,0x89,0x00,0x00,0x00,0x01,0x01,0x2f,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x00,0xa6,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x3e,0x00,0x00,0x00,0x01,0x00,0xb8, +0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x00,0x01,0x01,0xe5,0x00,0x00,0x00,0x01,0x01,0x56,0x00,0x00,0x00,0x01,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x76,0x00,0x00,0x00,0x01,0x00,0xc5,0x00,0x00,0x00,0x01,0xff,0xe5,0x00,0x00,0x00,0x01,0x01,0xd4,0x00,0x00,0x00,0x01,0x00,0xfc,0x00,0x00,0x00,0x01,0x00,0x6d,0x00,0x00,0x00,0x01, +0xff,0xe7,0x00,0x00,0x00,0x01,0xff,0x8d,0x00,0x00,0x00,0x01,0x01,0x62,0x00,0x00,0x00,0x01,0x00,0xd3,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0xe6,0xff,0x9c,0x00,0x01,0x00,0xca,0x00,0x00,0x00,0x01,0x00,0x8a,0x00,0x00,0x00,0x01,0x01,0x1d,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0x00, +0x00,0x01,0x01,0x10,0x00,0x00,0x00,0x01,0x00,0xf2,0x00,0x00,0x00,0x01,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x01,0xff,0xac,0x00,0x00,0x00,0x01,0x01,0x17,0x00,0x00,0x00,0x01,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0xb5,0x00,0x00,0x00,0x01,0x00,0xbe,0x00,0x00,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x01,0x00,0x98, +0x00,0x00,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x01,0xff,0xb4,0x00,0x00,0x00,0x01,0x01,0x58,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x00,0x01,0xff,0xc4,0x00,0x00,0x00,0x01,0x00,0xd2,0x00,0x00,0x00,0x01, +0x01,0x18,0x00,0x00,0x00,0x01,0x00,0xed,0x00,0x00,0x00,0x01,0x02,0x60,0x00,0x00,0x00,0x01,0x03,0xd5,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x01,0xa6,0x00,0x00,0x00,0x01,0x01,0x98,0x00,0x00,0x00,0x01,0x00,0xe4,0x00,0x00,0x00,0x01,0x02,0xa8,0x00,0x00,0x00,0x01,0x04,0x6c,0x00,0x00,0x00,0x01,0x03,0x7a,0x00,0x00, +0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x00,0x8e,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0x00,0x00,0x01,0x03,0xee,0x00,0x00,0x00,0x01,0x02,0xfc,0x00,0x00,0x00,0x01,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x02,0xf8,0x00,0x00,0x00,0x01,0x02,0x0d,0x00,0x00,0x00,0x01,0x00,0xf5, +0x00,0x00,0x00,0x01,0x01,0x13,0x00,0x00,0x00,0x01,0x00,0x60,0x00,0x00,0x00,0x01,0x03,0xa2,0x00,0x00,0x00,0x01,0x02,0xba,0x00,0x00,0x00,0x01,0x01,0x19,0x00,0x00,0x00,0x01,0x01,0x11,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0x00,0x00,0x01,0x04,0xc1,0x00,0x00,0x00,0x01,0x03,0xcf,0x00,0x00,0x00,0x01,0x01,0xb5,0x00,0x00,0x00,0x01, +0x00,0x84,0x00,0x00,0x00,0x01,0x02,0x3b,0x00,0x00,0x00,0x01,0x01,0x0c,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x6c,0x00,0x00,0x00,0x01,0x02,0xc4,0x00,0x00,0x00,0x01,0x01,0xdc,0x00,0x00,0x00,0x01,0x01,0x25,0x00,0x00,0x00,0x01,0x04,0xbb,0x00,0x00,0x00,0x01,0x03,0xc9,0x00,0x00,0x00,0x01,0x01,0x90,0x00,0x00, +0x00,0x01,0x02,0xc1,0x00,0x00,0x00,0x01,0x05,0x02,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x00,0x00,0x01,0x01,0x72,0x00,0x00,0x00,0x01,0x02,0x3c,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x03,0xce,0x00,0x00,0x00,0x01,0x02,0xdc,0x00,0x00,0x00,0x01,0x01,0x26,0x00,0x00,0x00,0x01,0x03,0xc4,0x00,0x00,0x00,0x01,0x02,0xd2, +0x00,0x00,0x00,0x01,0x01,0x43,0x00,0x00,0x00,0x01,0xff,0x1e,0x00,0x00,0x00,0x01,0x02,0x2b,0x00,0x00,0x00,0x01,0x03,0xec,0x00,0x00,0x00,0x01,0x03,0x38,0x00,0x00,0x00,0x01,0x02,0xe6,0x00,0x00,0x00,0x01,0xff,0xd7,0x00,0x00,0x00,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x00,0x00,0x01,0x02,0xbf,0x00,0x00,0x00,0x01, +0x04,0xe3,0x00,0x00,0x00,0x01,0x03,0xf1,0x00,0x00,0x00,0x01,0x02,0xbe,0x00,0x00,0x00,0x01,0x04,0xe9,0x00,0x00,0x00,0x01,0x03,0xf7,0x00,0x00,0x00,0x01,0x01,0xab,0x00,0x00,0x00,0x01,0x00,0x62,0x00,0x00,0x00,0x01,0x01,0x6a,0x00,0x00,0x00,0x01,0x02,0xec,0x00,0x00,0x00,0x01,0x01,0x96,0x00,0x00,0x00,0x01,0x01,0x1b,0x00,0x00, +0x00,0x01,0x01,0x39,0x00,0x00,0x00,0x01,0x00,0xdc,0x00,0x00,0x00,0x01,0x02,0xb3,0x00,0x00,0x00,0x01,0x04,0xd0,0x00,0x00,0x00,0x01,0x03,0xde,0x00,0x00,0x00,0x01,0x01,0x86,0x00,0x00,0x00,0x01,0x00,0xb3,0x00,0x00,0x00,0x01,0x02,0x71,0x00,0x00,0x00,0x01,0x04,0x2c,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x01,0x6c, +0x00,0x00,0x00,0x01,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0xb2,0x00,0x00,0x00,0x01,0x04,0x3a,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x01,0x5c,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0x00,0x00,0x01,0x04,0x75,0x00,0x00,0x00,0x01,0x03,0x83,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x00,0x01,0x02,0x33,0x00,0x00,0x00,0x01, +0x04,0x04,0x00,0x00,0x00,0x01,0x02,0xd3,0x00,0x00,0x00,0x01,0x00,0xaa,0x00,0x00,0x00,0x01,0x02,0x5e,0x00,0x00,0x00,0x01,0x04,0x26,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x01,0x63,0x00,0x00,0x00,0x01,0x01,0x4f,0x00,0x00,0x00,0x01,0x01,0x0b,0x00,0x00,0x00,0x01,0x02,0xaf,0x00,0x00,0x00,0x01,0x04,0xd3,0x00,0x00, +0x00,0x01,0x03,0xcd,0x00,0x00,0x00,0x01,0x03,0x1f,0x00,0x00,0x00,0x01,0x05,0xd9,0x00,0x00,0x00,0x01,0x04,0xe5,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0x00,0x00,0x01,0x05,0x24,0x00,0x00,0x00,0x01,0x04,0x32,0x00,0x00,0x00,0x01,0x02,0x17,0x00,0x00,0x00,0x01,0x03,0x71,0x00,0x00,0x00,0x01,0x02,0x7f, +0x00,0x00,0x00,0x01,0xff,0x1e,0x01,0x04,0x00,0x01,0xff,0xd7,0x00,0xdc,0x00,0x01,0x00,0x59,0x00,0xf0,0x00,0x01,0x02,0x29,0x00,0x00,0x00,0x01,0x03,0x96,0x00,0x00,0x00,0x01,0x02,0xa4,0x00,0x00,0x00,0x01,0x07,0x17,0x00,0x00,0x00,0x01,0x02,0xf1,0x00,0x00,0x00,0x01,0x05,0xca,0x00,0x00,0x00,0x01,0xff,0x26,0x00,0x00,0x00,0x01, +0x03,0x4e,0x00,0x00,0x00,0x01,0x01,0x77,0x00,0xdc,0x00,0x01,0x00,0x75,0x00,0x00,0x00,0x01,0x00,0xe3,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x01,0x02,0x82,0x00,0x00,0x00,0x01,0x01,0x52,0x00,0x00,0x00,0x01,0x01,0x83,0x00,0x00,0x00,0x01,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x94,0x00,0x00, +0x00,0x01,0x01,0x7f,0x00,0x00,0x00,0x01,0xff,0x7a,0x00,0x00,0x00,0x01,0x02,0xa7,0x00,0x00,0x00,0x01,0x01,0x12,0x00,0xf0,0x00,0x01,0x01,0x5a,0x00,0x00,0x00,0x01,0x01,0x3d,0x00,0xdc,0x00,0x01,0x00,0xc9,0x00,0x00,0x00,0x01,0xff,0x81,0x00,0x00,0x00,0x01,0x01,0xeb,0x00,0xdc,0x00,0x01,0x04,0x54,0x00,0x00,0x00,0x01,0x03,0x07, +0x00,0x00,0x00,0x01,0x00,0x3a,0x00,0x00,0x00,0x01,0xff,0x5e,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0xdc,0x00,0x01,0x04,0x31,0x00,0x00,0x00,0x01,0x02,0xe4,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0xad,0x00,0x00,0x00,0x01,0xff,0xdb,0x00,0x00,0x00,0x01,0x02,0x45,0x00,0xdc,0x00,0x01,0x04,0xae,0x00,0x00,0x00,0x01, +0x01,0x2a,0x00,0x00,0x00,0x01,0x02,0x91,0x00,0x00,0x00,0x01,0x04,0x8a,0x00,0x00,0x00,0x01,0x03,0x39,0x00,0x00,0x00,0x01,0x03,0x98,0x00,0x00,0x00,0x01,0x00,0xd6,0x00,0x00,0x00,0x01,0x01,0xe0,0x00,0x00,0x00,0x01,0x02,0x0b,0x00,0x00,0x00,0x01,0x01,0x7d,0x00,0x00,0x00,0x01,0xff,0x36,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0xdc, +0x00,0x01,0x04,0x09,0x00,0x00,0x00,0x01,0x02,0xbc,0x00,0x00,0x00,0x01,0xff,0xef,0x00,0x00,0x00,0x01,0x00,0x85,0x00,0x00,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x02,0xae,0x00,0xdc,0x00,0x01,0x05,0x17,0x00,0x00,0x00,0x01,0x00,0xfd,0x00,0x00,0x00,0x01,0x01,0x93,0x00,0x00,0x00,0x01,0x02,0xf4,0x00,0xdc,0x00,0x01,0x05,0x5d, +0x00,0x00,0x00,0x01,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x99,0x00,0x00,0x00,0x01,0x02,0x35,0x00,0x00,0x00,0x01,0x03,0x36,0x00,0x00,0x00,0x01,0x01,0xac,0x00,0x00,0x00,0x01,0x02,0x2c,0x00,0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x01,0x02,0xb9,0x00,0x00,0x00,0x01,0x01,0x6f,0x00,0x00,0x00,0x01,0x03,0xca,0x00,0x00,0x00,0x01, +0x02,0xb6,0x00,0x00,0x00,0x01,0x04,0x11,0x00,0x00,0x00,0x01,0x01,0xa5,0x00,0x00,0x00,0x01,0x03,0xb9,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x02,0xdd,0x00,0x00,0x00,0x01,0x03,0xf0,0x00,0x00,0x00,0x01,0x03,0xf8,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x00,0x00,0x01,0x01,0x53,0x00,0x00,0x00,0x01,0x03,0xdf,0x00,0x00, +0x00,0x01,0x02,0x64,0x00,0x00,0x00,0x01,0x03,0x3b,0x00,0x00,0x00,0x01,0x02,0x2d,0x00,0x00,0x00,0x01,0x04,0x25,0x00,0x00,0x00,0x01,0x02,0x4b,0x00,0x00,0x00,0x01,0x03,0x84,0x00,0x00,0x00,0x01,0x00,0xce,0x00,0x00,0x00,0x01,0x02,0x0a,0x00,0x00,0x00,0x01,0x02,0xed,0x00,0x00,0x00,0x01,0x03,0xba,0x00,0x00,0x00,0x01,0x03,0x77, +0x00,0x00,0x00,0x01,0x02,0xff,0x00,0x00,0x00,0x01,0x04,0x51,0x00,0x00,0x00,0x01,0x02,0xfa,0x00,0x00,0x00,0x01,0x04,0x33,0x00,0x00,0x00,0x01,0x02,0x80,0x00,0x00,0x00,0x01,0x02,0xa5,0x00,0x00,0x00,0x01,0x02,0x41,0x00,0x00,0x00,0x01,0x03,0xd0,0x00,0x00,0x00,0x01,0x01,0xb0,0x00,0x00,0x00,0x01,0x03,0xf2,0x00,0x00,0x00,0x01, +0x03,0xb2,0x00,0x00,0x00,0x01,0x02,0x24,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0xac,0x00,0x00,0x00,0x01,0xff,0xce,0x00,0x00,0x00,0x01,0xff,0xd8,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x00,0x00,0x01,0xff,0x74,0x00,0x00,0x00,0x01,0xfe,0xf2,0x00,0x00,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0x02,0x3a,0x00,0x00, +0x00,0x01,0x02,0x44,0x00,0x00,0x00,0x01,0xff,0x06,0x00,0x00,0x00,0x01,0x01,0x9a,0x00,0x00,0x00,0x01,0x02,0x4e,0x00,0x00,0x00,0x01,0xff,0x6a,0x00,0x00,0x00,0x01,0xfe,0xa2,0x00,0x00,0x00,0x01,0xff,0x1a,0x00,0x00,0x00,0x01,0xfe,0xe8,0x00,0x00,0x00,0x01,0xfd,0xd0,0x00,0x00,0x00,0x01,0xfd,0x76,0x00,0x00,0x00,0x01,0xfe,0x34, +0x00,0x00,0x00,0x01,0xfd,0x44,0x00,0x00,0x00,0x01,0xfd,0x1c,0x00,0x00,0x00,0x01,0xfe,0x2a,0x00,0x00,0x00,0x01,0xfe,0x52,0x00,0x00,0x00,0x01,0xfd,0x12,0x00,0x00,0x00,0x01,0xfe,0x66,0x00,0x00,0x00,0x01,0xfd,0x80,0x00,0x00,0x00,0x01,0xfd,0x62,0x00,0x00,0x00,0x01,0xfe,0x3e,0x00,0x00,0x00,0x01,0xfd,0xe4,0x00,0x00,0x00,0x01, +0xfd,0x3a,0x00,0x00,0x00,0x01,0xfe,0x5c,0x00,0x00,0x00,0x01,0xfd,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xc0,0x00,0x00,0x00,0x01,0xfe,0x70,0x00,0x00,0x00,0x01,0xfd,0xda,0x00,0x00,0x00,0x01,0xfd,0xc6,0x00,0x00, +0x00,0x01,0xfe,0x20,0x00,0x00,0x00,0x01,0xfe,0x8e,0x00,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x00,0x01,0xfe,0x16,0x00,0x00,0x00,0x01,0xfd,0xbc,0x00,0x00,0x00,0x01,0xfe,0x02,0x00,0x00,0x00,0x01,0xff,0xe2,0x00,0x00,0x00,0x01,0x00,0xfa,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x00,0x01,0xfd,0xf1,0x00,0x00,0x00,0x01,0xfd,0x8a, +0x00,0x00,0x00,0x01,0xfd,0xa8,0x00,0x00,0x00,0x01,0xfc,0xe0,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x00,0x00,0x01,0x02,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x02,0xbc,0x0a,0x6a,0x00,0x15,0x61,0x72,0x61,0x62,0x00,0x80,0x62,0x6e,0x67,0x32,0x01,0x3c,0x63,0x79,0x72,0x6c,0x01,0x48,0x64,0x65, +0x76,0x32,0x01,0x70,0x67,0x6a,0x72,0x32,0x01,0xa4,0x67,0x72,0x65,0x6b,0x01,0x7c,0x67,0x75,0x72,0x32,0x01,0xb0,0x68,0x65,0x62,0x72,0x01,0xbc,0x6b,0x68,0x6d,0x72,0x01,0xd8,0x6b,0x6e,0x64,0x32,0x01,0xcc,0x6c,0x61,0x6f,0x20,0x01,0xe4,0x6c,0x61,0x74,0x6e,0x01,0xf0,0x6d,0x6c,0x6d,0x32,0x02,0x46,0x6d,0x6f,0x6e,0x67,0x02,0x52, +0x6d,0x79,0x6d,0x72,0x02,0x5e,0x6f,0x72,0x79,0x32,0x02,0x76,0x74,0x61,0x6c,0x75,0x02,0x6a,0x74,0x65,0x6c,0x32,0x02,0x8e,0x74,0x68,0x61,0x69,0x02,0x9a,0x74,0x69,0x62,0x74,0x02,0xa6,0x74,0x6d,0x6c,0x32,0x02,0x82,0x00,0x3c,0x00,0x05,0x41,0x52,0x41,0x20,0x00,0x22,0x4d,0x4c,0x59,0x20,0x00,0x54,0x4d,0x4f,0x52,0x20,0x00,0x6e, +0x53,0x4e,0x44,0x20,0x00,0x88,0x55,0x52,0x44,0x20,0x00,0xa2,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x04,0x00,0x13,0x00,0x0a,0x00,0x28,0x00,0x2e,0x00,0x3d,0x00,0x4b,0x00,0x51,0x00,0x2f,0x00,0x1e,0x00,0x00,0xff,0xff,0x00,0x09,0x00,0x05,0x00,0x14,0x00,0x0b,0x00,0x29,0x00,0x3e,0x00,0x4c,0x00,0x52,0x00,0x30,0x00,0x1f,0x00,0x00, +0xff,0xff,0x00,0x0a,0x00,0x06,0x00,0x15,0x00,0x0c,0x00,0x2a,0x00,0x39,0x00,0x3f,0x00,0x4d,0x00,0x53,0x00,0x31,0x00,0x20,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x07,0x00,0x16,0x00,0x0d,0x00,0x2b,0x00,0x3a,0x00,0x40,0x00,0x4e,0x00,0x54,0x00,0x32,0x00,0x21,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x08,0x00,0x17,0x00,0x0e,0x00,0x2c, +0x00,0x3b,0x00,0x41,0x00,0x4f,0x00,0x55,0x00,0x33,0x00,0x22,0x00,0x00,0xff,0xff,0x00,0x0a,0x00,0x09,0x00,0x18,0x00,0x0f,0x00,0x2d,0x00,0x3c,0x00,0x42,0x00,0x50,0x00,0x56,0x00,0x34,0x00,0x23,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x78,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x19,0x00,0x24, +0x00,0x35,0x00,0x43,0x00,0x47,0x00,0x5c,0x00,0x00,0x00,0x58,0x00,0x60,0x00,0x64,0x00,0x68,0x00,0x6c,0x00,0x70,0x00,0x74,0x00,0x79,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x36,0x00,0x44,0x00,0x48,0x00,0x5d,0x00,0x01,0x00,0x59, +0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x7b,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7c,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7d,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x03,0x00,0x1b,0x00,0x10,0x00,0x57,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01, +0x00,0x7e,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x7f,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x80,0x00,0x0a,0x00,0x01,0x54,0x52,0x4b,0x20,0x00,0x30,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1c,0x00,0x26,0x00,0x11,0x00,0x37,0x00,0x45,0x00,0x49,0x00,0x5e,0x00,0x02,0x00,0x5a,0x00,0x62,0x00,0x66, +0x00,0x6a,0x00,0x6e,0x00,0x72,0x00,0x76,0x00,0x81,0x00,0x00,0xff,0xff,0x00,0x10,0x00,0x1d,0x00,0x27,0x00,0x12,0x00,0x38,0x00,0x46,0x00,0x4a,0x00,0x5f,0x00,0x03,0x00,0x5b,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x82,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x83,0x00,0x04,0x00,0x00, +0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x84,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x85,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x86,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x87,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x88,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff, +0x00,0x01,0x00,0x89,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8a,0x00,0x04,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x01,0x00,0x8b,0x00,0x8c,0x63,0x32,0x73,0x63,0x03,0x4a,0x63,0x32,0x73,0x63,0x03,0x50,0x63,0x32,0x73,0x63,0x03,0x56,0x63,0x32,0x73,0x63,0x03,0x60,0x63,0x61,0x6c,0x74,0x03,0x6a,0x63,0x61,0x6c,0x74, +0x03,0x70,0x63,0x61,0x6c,0x74,0x03,0x76,0x63,0x61,0x6c,0x74,0x03,0x7c,0x63,0x61,0x6c,0x74,0x03,0x82,0x63,0x61,0x6c,0x74,0x03,0x88,0x63,0x63,0x6d,0x70,0x03,0x8e,0x63,0x63,0x6d,0x70,0x03,0x98,0x63,0x63,0x6d,0x70,0x03,0xaa,0x63,0x63,0x6d,0x70,0x03,0xb4,0x63,0x63,0x6d,0x70,0x03,0xbe,0x63,0x63,0x6d,0x70,0x03,0xc8,0x63,0x63, +0x6d,0x70,0x03,0xda,0x63,0x63,0x6d,0x70,0x04,0x0c,0x63,0x63,0x6d,0x70,0x04,0x1a,0x64,0x6c,0x69,0x67,0x04,0x24,0x64,0x6c,0x69,0x67,0x04,0x2a,0x64,0x6c,0x69,0x67,0x04,0x30,0x64,0x6c,0x69,0x67,0x04,0x36,0x64,0x6c,0x69,0x67,0x04,0x3c,0x64,0x6c,0x69,0x67,0x04,0x42,0x64,0x6c,0x69,0x67,0x04,0x48,0x64,0x6c,0x69,0x67,0x04,0x4e, +0x64,0x6c,0x69,0x67,0x04,0x54,0x64,0x6c,0x69,0x67,0x04,0x5a,0x64,0x6c,0x69,0x67,0x04,0x62,0x66,0x69,0x6e,0x61,0x04,0x68,0x66,0x69,0x6e,0x61,0x04,0x6e,0x66,0x69,0x6e,0x61,0x04,0x74,0x66,0x69,0x6e,0x61,0x04,0x7a,0x66,0x69,0x6e,0x61,0x04,0x80,0x66,0x69,0x6e,0x61,0x04,0x86,0x66,0x72,0x61,0x63,0x04,0x8c,0x66,0x72,0x61,0x63, +0x04,0x96,0x66,0x72,0x61,0x63,0x04,0xa0,0x66,0x72,0x61,0x63,0x04,0xaa,0x69,0x6e,0x69,0x74,0x04,0xb4,0x69,0x6e,0x69,0x74,0x04,0xba,0x69,0x6e,0x69,0x74,0x04,0xc0,0x69,0x6e,0x69,0x74,0x04,0xc6,0x69,0x6e,0x69,0x74,0x04,0xcc,0x69,0x6e,0x69,0x74,0x04,0xd2,0x69,0x73,0x6f,0x6c,0x04,0xd8,0x6c,0x69,0x67,0x61,0x04,0xde,0x6c,0x69, +0x67,0x61,0x04,0xe8,0x6c,0x69,0x67,0x61,0x04,0xf2,0x6c,0x69,0x67,0x61,0x04,0xfa,0x6c,0x69,0x67,0x61,0x05,0x04,0x6c,0x69,0x67,0x61,0x05,0x0c,0x6c,0x6e,0x75,0x6d,0x05,0x16,0x6c,0x6e,0x75,0x6d,0x05,0x1e,0x6c,0x6e,0x75,0x6d,0x05,0x26,0x6c,0x6e,0x75,0x6d,0x05,0x2e,0x6c,0x6f,0x63,0x6c,0x05,0x36,0x6c,0x6f,0x63,0x6c,0x05,0x3c, +0x6c,0x6f,0x63,0x6c,0x05,0x42,0x6c,0x6f,0x63,0x6c,0x05,0x48,0x6d,0x65,0x64,0x69,0x05,0x4e,0x6d,0x65,0x64,0x69,0x05,0x54,0x6d,0x65,0x64,0x69,0x05,0x5a,0x6d,0x65,0x64,0x69,0x05,0x60,0x6d,0x65,0x64,0x69,0x05,0x66,0x6d,0x65,0x64,0x69,0x05,0x6c,0x6f,0x6e,0x75,0x6d,0x05,0x72,0x6f,0x6e,0x75,0x6d,0x05,0x7a,0x6f,0x6e,0x75,0x6d, +0x05,0x82,0x6f,0x6e,0x75,0x6d,0x05,0x8a,0x70,0x6e,0x75,0x6d,0x05,0x92,0x70,0x6e,0x75,0x6d,0x05,0x9a,0x70,0x6e,0x75,0x6d,0x05,0xa2,0x70,0x6e,0x75,0x6d,0x05,0xaa,0x72,0x63,0x6c,0x74,0x05,0xb2,0x72,0x63,0x6c,0x74,0x05,0xb8,0x72,0x63,0x6c,0x74,0x05,0xbe,0x72,0x63,0x6c,0x74,0x05,0xc4,0x72,0x63,0x6c,0x74,0x05,0xca,0x72,0x63, +0x6c,0x74,0x05,0xd0,0x72,0x6c,0x69,0x67,0x05,0xd6,0x72,0x6c,0x69,0x67,0x05,0xde,0x72,0x6c,0x69,0x67,0x05,0xe6,0x72,0x6c,0x69,0x67,0x05,0xee,0x72,0x6c,0x69,0x67,0x05,0xf6,0x72,0x6c,0x69,0x67,0x05,0xfe,0x72,0x6c,0x69,0x67,0x06,0x06,0x73,0x61,0x6c,0x74,0x06,0x0c,0x73,0x61,0x6c,0x74,0x06,0x18,0x73,0x61,0x6c,0x74,0x06,0x24, +0x73,0x61,0x6c,0x74,0x06,0x30,0x73,0x6d,0x63,0x70,0x06,0x3c,0x73,0x6d,0x63,0x70,0x06,0x42,0x73,0x6d,0x63,0x70,0x06,0x48,0x73,0x6d,0x63,0x70,0x06,0x54,0x73,0x73,0x30,0x31,0x06,0x60,0x73,0x73,0x30,0x31,0x06,0x66,0x73,0x73,0x30,0x31,0x06,0x6c,0x73,0x73,0x30,0x31,0x06,0x72,0x73,0x73,0x31,0x38,0x06,0x78,0x73,0x73,0x31,0x38, +0x06,0x80,0x73,0x73,0x31,0x38,0x06,0x88,0x73,0x73,0x31,0x38,0x06,0x90,0x73,0x73,0x31,0x39,0x06,0x98,0x73,0x73,0x31,0x39,0x06,0x9e,0x73,0x73,0x31,0x39,0x06,0xa4,0x73,0x73,0x31,0x39,0x06,0xaa,0x73,0x73,0x32,0x30,0x06,0xb0,0x73,0x73,0x32,0x30,0x06,0xba,0x73,0x73,0x32,0x30,0x06,0xc4,0x73,0x73,0x32,0x30,0x06,0xce,0x73,0x75, +0x62,0x73,0x06,0xd8,0x73,0x75,0x62,0x73,0x06,0xde,0x73,0x75,0x62,0x73,0x06,0xe4,0x73,0x75,0x62,0x73,0x06,0xea,0x73,0x75,0x70,0x73,0x06,0xf0,0x73,0x75,0x70,0x73,0x06,0xf6,0x73,0x75,0x70,0x73,0x06,0xfc,0x73,0x75,0x70,0x73,0x07,0x02,0x74,0x6e,0x75,0x6d,0x07,0x08,0x74,0x6e,0x75,0x6d,0x07,0x0e,0x74,0x6e,0x75,0x6d,0x07,0x16, +0x74,0x6e,0x75,0x6d,0x07,0x1c,0x74,0x6e,0x75,0x6d,0x07,0x24,0x74,0x6e,0x75,0x6d,0x07,0x2a,0x74,0x6e,0x75,0x6d,0x07,0x30,0x74,0x6e,0x75,0x6d,0x07,0x36,0x74,0x6e,0x75,0x6d,0x07,0x3c,0x74,0x6e,0x75,0x6d,0x07,0x42,0x74,0x6e,0x75,0x6d,0x07,0x6e,0x74,0x6e,0x75,0x6d,0x07,0x76,0x74,0x6e,0x75,0x6d,0x07,0x7c,0x74,0x6e,0x75,0x6d, +0x07,0x82,0x74,0x6e,0x75,0x6d,0x07,0x8a,0x74,0x6e,0x75,0x6d,0x07,0x90,0x74,0x6e,0x75,0x6d,0x07,0x96,0x74,0x6e,0x75,0x6d,0x07,0x9c,0x74,0x6e,0x75,0x6d,0x07,0xa2,0x74,0x6e,0x75,0x6d,0x07,0xa8,0x00,0x00,0x00,0x01,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x1f,0x00,0x00,0x00,0x03,0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x03, +0x00,0x1d,0x00,0x1f,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a, +0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x08,0x00,0x0c,0x00,0x00,0x00,0x07,0x00,0x05,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x00,0x00,0x17,0x00,0x4e,0x00,0x4f,0x00,0x50, +0x00,0x51,0x00,0x52,0x00,0x53,0x00,0x54,0x00,0x55,0x00,0x56,0x00,0x57,0x00,0x58,0x00,0x59,0x00,0x5a,0x00,0x5b,0x00,0x5c,0x00,0x5d,0x00,0x5e,0x00,0x5f,0x00,0x60,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x64,0x00,0x00,0x00,0x05,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x39,0x00,0x3a,0x00,0x00,0x00,0x03,0x00,0x18,0x00,0x19,0x00,0x1a, +0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x4d,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x26,0x00,0x00, +0x00,0x01,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x0e,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03, +0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x03,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x13, +0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x13,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x03,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f, +0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x02,0x00,0x2f,0x00,0x31,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01, +0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2a,0x00,0x2b,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00, +0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x02,0x00,0x2c,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x17,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11, +0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x02,0x00,0x11,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37, +0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x04,0x00,0x34,0x00,0x35,0x00,0x36,0x00,0x37,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x00,0x00,0x04,0x00,0x1e,0x00,0x20,0x00,0x22,0x00,0x24,0x00,0x00,0x00,0x01, +0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x01,0x00,0x35,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36, +0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x03,0x00,0x34,0x00,0x37,0x00,0x38,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b, +0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x3d,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x3b,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30, +0x00,0x00,0x00,0x01,0x00,0x3e,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x01,0x00,0x45,0x00,0x00,0x00,0x14,0x00,0x2d,0x00,0x30,0x00,0x3b,0x00,0x3c,0x00,0x3d,0x00,0x3e,0x00,0x3f,0x00,0x40,0x00,0x41,0x00,0x42,0x00,0x43,0x00,0x44,0x00,0x45,0x00,0x46,0x00,0x47, +0x00,0x48,0x00,0x49,0x00,0x4a,0x00,0x4b,0x00,0x4c,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x30,0x00,0x00,0x00,0x01,0x00,0x43,0x00,0x00,0x00,0x01,0x00,0x4a,0x00,0x00,0x00,0x02,0x00,0x47,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x00,0x01,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00, +0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x46,0x00,0x84,0x01,0x0a,0x01,0x1a,0x01,0x2a,0x01,0x3a,0x01,0x4a,0x01,0x64,0x01,0x74,0x01,0x84,0x01,0x94,0x01,0xb8,0x01,0xe6,0x02,0x00,0x02,0x1a,0x02,0x2a,0x02,0x44,0x02,0x54,0x02,0x64,0x02,0x74,0x02,0x84,0x02,0x94,0x02,0xa4,0x02,0xb4,0x02,0xc4,0x02,0xd4,0x02,0xf8,0x03,0x08, +0x03,0x18,0x03,0x28,0x03,0x38,0x03,0x48,0x03,0x58,0x03,0x68,0x03,0x78,0x03,0x88,0x03,0x98,0x03,0xa8,0x03,0xb8,0x03,0xc8,0x03,0xd8,0x03,0xe8,0x03,0xf8,0x04,0x08,0x04,0x18,0x04,0x28,0x04,0x38,0x04,0x48,0x04,0x58,0x04,0x68,0x04,0x78,0x04,0x88,0x04,0x98,0x04,0xa8,0x04,0xb8,0x04,0xc8,0x04,0xd8,0x04,0xe8,0x04,0xf8,0x05,0x08, +0x05,0x18,0x05,0x28,0x05,0x38,0x05,0x48,0x05,0x58,0x05,0x68,0x05,0x78,0x05,0x88,0x05,0x98,0x05,0xa8,0x05,0xb8,0x05,0xc8,0x05,0xd8,0x05,0xe8,0x05,0xf8,0x06,0x08,0x06,0x18,0x06,0x28,0x06,0x38,0x06,0x48,0x06,0x58,0x06,0x68,0x06,0x96,0x07,0xbe,0x07,0xce,0x07,0xde,0x07,0xee,0x07,0xfe,0x08,0x0e,0x08,0x1e,0x08,0x2e,0x08,0x3e, +0x08,0x4e,0x08,0x5e,0x08,0x6e,0x08,0x7e,0x08,0x8e,0x09,0x84,0x09,0x94,0x09,0xa4,0x0a,0x72,0x0a,0x82,0x0a,0x92,0x0b,0x06,0x0b,0x98,0x0b,0xa8,0x0b,0xb8,0x0b,0xc8,0x0b,0xd8,0x0b,0xe8,0x0b,0xf8,0x0c,0x08,0x0c,0x18,0x0c,0x28,0x0c,0x38,0x0c,0x48,0x0c,0x58,0x0c,0x68,0x0c,0x78,0x0c,0x88,0x0c,0x98,0x0c,0xa8,0x0c,0xb8,0x0c,0xc8, +0x0c,0xd8,0x0c,0xe8,0x0c,0xf8,0x0d,0x08,0x0d,0x18,0x0d,0x28,0x0d,0x38,0x0d,0x48,0x0d,0x58,0x0d,0x68,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x66,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01, +0x00,0x00,0x0c,0x7e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x0c,0x80,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x92,0x00,0x01,0x00,0x06,0x00,0x00,0x0c,0x98,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x11,0x58,0x00,0x07, +0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x72,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x12,0x82,0x00,0x07,0x00,0x09,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x12,0xd0,0x00,0x01,0x00,0x06,0x00,0x00, +0x12,0xdc,0x00,0x07,0x00,0x09,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x2e,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00, +0x13,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0x74,0x00,0x07,0x00,0x01,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xa2,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xac,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x13,0xde,0x00,0x07,0x00,0x09,0x00,0x02,0x00,0x0a,0x00,0x12,0x00,0x01, +0x00,0x06,0x00,0x00,0x14,0x0e,0x00,0x01,0x00,0x06,0x00,0x00,0x14,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x44,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x19,0x4e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x1d,0x54,0x00,0x07, +0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0x62,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x21,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x00,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x22,0x68,0x00,0x07, +0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x22,0xa2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x23,0xcc,0x00,0x07,0x01,0x01,0x00,0x03,0x00,0x0c,0x00,0x14,0x00,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x24,0x5c,0x00,0x01,0x00,0x06,0x00,0x00,0x27,0x74,0x00,0x01,0x00,0x06,0x00,0x00, +0x27,0x80,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x2f,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x2f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x35,0x5a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x36,0xf2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x06,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x2a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x37,0x94,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x37,0xfe,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0x52,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x38,0xa8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3b,0x78,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x4a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3e,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0x82,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x3e,0x80,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xb0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3e,0xc4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xd8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3e,0xec,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x00,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3f,0x14,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x28,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x3f,0x3c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x3f,0x50,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x3f,0xf6,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x0c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x41,0x62,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x42,0x9a,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x43,0x42,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x40,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0x48,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x43,0xd2,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0x5c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x70,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x84,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0x98,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0xac,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xc0,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xd4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x44,0xe8,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x44,0xfc,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x10,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x24,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x38,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x45,0x4c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x60,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x74,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0x88,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x45,0x9c,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x45,0xb0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xc4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x45,0xcc,0x00,0x07,0x00,0x01,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x26, +0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xd0,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xda,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xe6,0x00,0x01,0x00,0x06,0x00,0x00,0x45,0xf2,0x00,0x07,0x00,0x01,0x00,0x1d,0x00,0x40,0x00,0x48,0x00,0x50,0x00,0x58,0x00,0x60,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0, +0x00,0xa8,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0xc8,0x00,0xd0,0x00,0xd8,0x00,0xe0,0x00,0xe8,0x00,0xf0,0x00,0xf8,0x01,0x00,0x01,0x08,0x01,0x10,0x01,0x18,0x01,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x62,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x72, +0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x84,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x90,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0x9e,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xbc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x46,0xee, +0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x2a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x48,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x58,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x6a, +0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x7c,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0x9a,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xaa,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xcc,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xde,0x00,0x01,0x00,0x06,0x00,0x00,0x47,0xf2, +0x00,0x01,0x00,0x06,0x00,0x00,0x48,0x04,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x48,0xde,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xdc,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x48,0xe8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x49,0x36,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x4a,0xd6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x4b,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x59,0xc8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5a,0x70,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5b,0xe2,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08, +0x00,0x01,0x00,0x04,0x00,0x00,0x5c,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x5c,0x10,0x00,0x07,0x00,0x01,0x00,0x18,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56,0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6, +0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe6,0x00,0xee,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xec,0x00,0x01,0x00,0x06,0x00,0x00,0x5b,0xfa,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x0a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x1c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x2a,0x00,0x01, +0x00,0x06,0x00,0x00,0x5c,0x3a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x4c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x7a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xaa,0x00,0x01, +0x00,0x06,0x00,0x00,0x5c,0xb8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xc8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xea,0x00,0x01,0x00,0x06,0x00,0x00,0x5c,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x10,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x30,0x00,0x01, +0x00,0x06,0x00,0x00,0x5d,0x3e,0x00,0x01,0x00,0x06,0x00,0x00,0x5d,0x4a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x5e,0x3a,0x00,0x07,0x00,0x01,0x00,0x14,0x00,0x2e,0x00,0x36,0x00,0x3e,0x00,0x46,0x00,0x4e,0x00,0x56, +0x00,0x5e,0x00,0x66,0x00,0x6e,0x00,0x76,0x00,0x7e,0x00,0x86,0x00,0x8e,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x34,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x52,0x00,0x01,0x00,0x06, +0x00,0x00,0x5e,0x60,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x70,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x7e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x8e,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0x9c,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xac,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xba,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xca,0x00,0x01,0x00,0x06, +0x00,0x00,0x5e,0xd8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xe8,0x00,0x01,0x00,0x06,0x00,0x00,0x5e,0xf6,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x14,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x24,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x32,0x00,0x01,0x00,0x06,0x00,0x00,0x5f,0x42,0x00,0x07,0x00,0x01, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0x46,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x60,0xc4,0x00,0x07,0x00,0x01,0x00,0x0b,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x44,0x00,0x4c,0x00,0x54,0x00,0x5c,0x00,0x64,0x00,0x6c,0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xec, +0x00,0x01,0x00,0x06,0x00,0x00,0x60,0xfc,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x0c,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x1a,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x28,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x44,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x52,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x60, +0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x6e,0x00,0x01,0x00,0x06,0x00,0x00,0x61,0x7c,0x00,0x07,0x00,0x01,0x00,0x0e,0x00,0x22,0x00,0x2a,0x00,0x32,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x8a,0x00,0x01,0x00,0x06,0x00,0x00,0x62,0x5e,0x00,0x01,0x00,0x06,0x00,0x00, +0x62,0x6a,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x06,0x00,0x01,0x00,0x06,0x00,0x00,0x63,0x2e,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x20,0x00,0x01,0x00,0x06,0x00,0x00,0x64,0x42,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x22,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0x36,0x00,0x01,0x00,0x06,0x00,0x00,0x65,0xee,0x00,0x01,0x00,0x06,0x00,0x00, +0x66,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xb0,0x00,0x01,0x00,0x06,0x00,0x00,0x66,0xe0,0x00,0x01,0x00,0x06,0x00,0x00,0x67,0xd6,0x00,0x01,0x00,0x06,0x00,0x00,0x68,0x00,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x68,0xe2,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x68,0xe0,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x69,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x69,0x50,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6a,0x0c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, +0x6a,0xc8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6b,0x84,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xa8,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6b,0xea,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6c,0x22,0x00,0x07,0x00,0x09,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6c,0xfe,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xc0,0x00,0x07,0x01,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6d,0xda,0x00,0x07,0x02,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6d,0xf4,0x00,0x07,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x08,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00,0x6e,0x1a,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x01,0x00,0x00, +0x6e,0x18,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x16,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x6e,0x2c,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6e,0x34,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00, +0x6e,0xb8,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x02,0x00,0x00,0x6f,0x58,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xb4,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x73,0xc0,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, +0x74,0x38,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0x9e,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xc6,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00,0x74,0xea,0x00,0x07,0x00,0x01,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x00,0x00, +0x75,0x1a,0x00,0x02,0x00,0x0e,0x00,0x04,0x0e,0x19,0x0e,0x1f,0x0e,0x63,0x0e,0x64,0x00,0x02,0x00,0x04,0x08,0xf8,0x08,0xf8,0x00,0x00,0x09,0x05,0x09,0x05,0x00,0x01,0x09,0x2d,0x09,0x2d,0x00,0x02,0x0a,0x68,0x0a,0x68,0x00,0x03,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x3e,0x00,0x01,0x00,0x01,0x09,0xdd,0x00,0x02,0x00,0x0a,0x00,0x02, +0x0e,0x19,0x0e,0x1f,0x00,0x01,0x00,0x02,0x08,0xf8,0x09,0x05,0x00,0x02,0x00,0x0e,0x00,0x04,0x0a,0x3c,0x08,0xdd,0x0a,0x3d,0x0e,0x15,0x00,0x02,0x00,0x03,0x09,0x53,0x09,0x53,0x00,0x00,0x09,0x55,0x09,0x56,0x00,0x01,0x0e,0x14,0x0e,0x14,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x01,0x04,0xd8,0x00,0x00,0x00,0x00,0x00,0x03, +0x00,0x00,0x00,0x01,0x04,0xca,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x02,0x00,0xc9,0x08,0xc7,0x08,0xca,0x00,0x00,0x08,0xcf,0x08,0xcf,0x00,0x04,0x08,0xd1,0x08,0xd1,0x00,0x05,0x08,0xd3,0x08,0xd3,0x00,0x06,0x08,0xe4,0x08,0xe4,0x00,0x07,0x08,0xe7,0x08,0xe7,0x00,0x08,0x08,0xf1,0x08,0xf3,0x00,0x09,0x08,0xf5,0x08,0xf7, +0x00,0x0c,0x08,0xfa,0x08,0xfb,0x00,0x0f,0x08,0xff,0x09,0x00,0x00,0x11,0x09,0x02,0x09,0x02,0x00,0x13,0x09,0x08,0x09,0x20,0x00,0x14,0x09,0x22,0x09,0x2b,0x00,0x2d,0x09,0x34,0x09,0x35,0x00,0x37,0x09,0x3e,0x09,0x3e,0x00,0x39,0x09,0x40,0x09,0x40,0x00,0x3a,0x09,0x42,0x09,0x43,0x00,0x3b,0x09,0x45,0x09,0x46,0x00,0x3d,0x09,0x48, +0x09,0x48,0x00,0x3f,0x09,0x4a,0x09,0x4b,0x00,0x40,0x09,0x4d,0x09,0x4e,0x00,0x42,0x09,0x59,0x09,0x59,0x00,0x44,0x09,0x5b,0x09,0x5b,0x00,0x45,0x09,0x5d,0x09,0x60,0x00,0x46,0x09,0x63,0x09,0x68,0x00,0x4a,0x09,0x6c,0x09,0x6c,0x00,0x50,0x09,0x72,0x09,0x72,0x00,0x51,0x09,0x7c,0x09,0x7c,0x00,0x52,0x09,0x80,0x09,0x8c,0x00,0x53, +0x09,0x8e,0x09,0x8e,0x00,0x60,0x09,0x90,0x09,0x90,0x00,0x61,0x09,0x92,0x09,0x92,0x00,0x62,0x09,0x94,0x09,0x94,0x00,0x63,0x09,0x96,0x09,0x96,0x00,0x64,0x09,0x98,0x09,0x99,0x00,0x65,0x09,0x9b,0x09,0x9c,0x00,0x67,0x09,0x9e,0x09,0x9f,0x00,0x69,0x09,0xa1,0x09,0xa2,0x00,0x6b,0x09,0xa4,0x09,0xa5,0x00,0x6d,0x09,0xa7,0x09,0xa8, +0x00,0x6f,0x09,0xaa,0x09,0xb9,0x00,0x71,0x09,0xbb,0x09,0xbb,0x00,0x81,0x09,0xbd,0x09,0xbd,0x00,0x82,0x09,0xbf,0x09,0xbf,0x00,0x83,0x09,0xc1,0x09,0xc1,0x00,0x84,0x09,0xc3,0x09,0xc5,0x00,0x85,0x09,0xc8,0x09,0xc9,0x00,0x88,0x09,0xcc,0x09,0xcc,0x00,0x8a,0x09,0xcf,0x09,0xcf,0x00,0x8b,0x09,0xd2,0x09,0xd2,0x00,0x8c,0x09,0xd5, +0x09,0xd7,0x00,0x8d,0x09,0xd9,0x09,0xd9,0x00,0x90,0x09,0xdb,0x09,0xdb,0x00,0x91,0x09,0xdd,0x09,0xdd,0x00,0x92,0x09,0xdf,0x09,0xdf,0x00,0x93,0x09,0xe1,0x09,0xe1,0x00,0x94,0x09,0xe3,0x09,0xe3,0x00,0x95,0x09,0xe5,0x09,0xe5,0x00,0x96,0x09,0xe7,0x09,0xe7,0x00,0x97,0x09,0xe9,0x09,0xe9,0x00,0x98,0x09,0xeb,0x09,0xeb,0x00,0x99, +0x09,0xed,0x09,0xed,0x00,0x9a,0x09,0xef,0x09,0xef,0x00,0x9b,0x09,0xf1,0x09,0xf1,0x00,0x9c,0x09,0xf3,0x09,0xf3,0x00,0x9d,0x09,0xf5,0x09,0xf6,0x00,0x9e,0x09,0xf8,0x09,0xf8,0x00,0xa0,0x09,0xfa,0x09,0xfb,0x00,0xa1,0x09,0xfd,0x0a,0x08,0x00,0xa3,0x0a,0x0a,0x0a,0x0e,0x00,0xaf,0x0a,0x24,0x0a,0x24,0x00,0xb4,0x0a,0x26,0x0a,0x26, +0x00,0xb5,0x0a,0x28,0x0a,0x29,0x00,0xb6,0x0a,0x32,0x0a,0x3b,0x00,0xb8,0x0a,0x3e,0x0a,0x3f,0x00,0xc2,0x0a,0x41,0x0a,0x42,0x00,0xc4,0x0a,0x54,0x0a,0x59,0x00,0xc6,0x0a,0x72,0x0a,0x72,0x00,0xcc,0x0a,0x74,0x0a,0x74,0x00,0xcd,0x0a,0x76,0x0a,0x76,0x00,0xce,0x0a,0x78,0x0a,0x78,0x00,0xcf,0x0a,0x7a,0x0a,0x7a,0x00,0xd0,0x0a,0x7c, +0x0a,0x7c,0x00,0xd1,0x0a,0x7e,0x0a,0x7e,0x00,0xd2,0x0a,0x80,0x0a,0x81,0x00,0xd3,0x0a,0x83,0x0a,0x84,0x00,0xd5,0x0a,0x86,0x0a,0x89,0x00,0xd7,0x0a,0x8b,0x0a,0x8c,0x00,0xdb,0x0a,0x8f,0x0a,0x90,0x00,0xdd,0x0a,0x93,0x0a,0x94,0x00,0xdf,0x0a,0x97,0x0a,0x97,0x00,0xe1,0x0a,0x9a,0x0a,0x9a,0x00,0xe2,0x0a,0x9d,0x0a,0x9d,0x00,0xe3, +0x0a,0xa0,0x0a,0xa0,0x00,0xe4,0x0a,0xa3,0x0a,0xa3,0x00,0xe5,0x0a,0xa6,0x0a,0xa6,0x00,0xe6,0x0a,0xa8,0x0a,0xa8,0x00,0xe7,0x0a,0xaa,0x0a,0xaa,0x00,0xe8,0x0a,0xac,0x0a,0xac,0x00,0xe9,0x0a,0xae,0x0a,0xae,0x00,0xea,0x0a,0xb0,0x0a,0xb1,0x00,0xeb,0x0a,0xb4,0x0a,0xb6,0x00,0xed,0x0a,0xb9,0x0a,0xba,0x00,0xf0,0x0b,0x0c,0x0b,0x1a, +0x00,0xf2,0x0e,0x20,0x0e,0x21,0x01,0x01,0x0e,0x24,0x0e,0x24,0x01,0x03,0x0e,0x26,0x0e,0x26,0x01,0x04,0x0e,0x28,0x0e,0x28,0x01,0x05,0x0e,0x2a,0x0e,0x2a,0x01,0x06,0x0e,0x2f,0x0e,0x31,0x01,0x07,0x0e,0x33,0x0e,0x33,0x01,0x0a,0x0e,0x35,0x0e,0x35,0x01,0x0b,0x0e,0x37,0x0e,0x37,0x01,0x0c,0x0e,0x39,0x0e,0x39,0x01,0x0d,0x0e,0x3c, +0x0e,0x3c,0x01,0x0e,0x0e,0x3f,0x0e,0x40,0x01,0x0f,0x0e,0x43,0x0e,0x44,0x01,0x11,0x0e,0x47,0x0e,0x48,0x01,0x13,0x0e,0x4b,0x0e,0x4c,0x01,0x15,0x0e,0x4f,0x0e,0x50,0x01,0x17,0x0e,0x53,0x0e,0x55,0x01,0x19,0x0e,0x57,0x0e,0x57,0x01,0x1c,0x0e,0x59,0x0e,0x59,0x01,0x1d,0x0e,0x5e,0x0e,0x5e,0x01,0x1e,0x0e,0x6e,0x0e,0x6e,0x01,0x1f, +0x0e,0x70,0x0e,0x70,0x01,0x20,0x0e,0x74,0x0e,0x75,0x01,0x21,0x0e,0x78,0x0e,0x78,0x01,0x23,0x0e,0x7a,0x0e,0x7a,0x01,0x24,0x0e,0x7c,0x0e,0x7c,0x01,0x25,0x0e,0x7e,0x0e,0x7e,0x01,0x26,0x0e,0x80,0x0e,0x80,0x01,0x27,0x0e,0x82,0x0e,0x82,0x01,0x28,0x0e,0x84,0x0e,0x84,0x01,0x29,0x0e,0x86,0x0e,0x86,0x01,0x2a,0x0e,0x8f,0x0e,0x98, +0x01,0x2b,0x0e,0x9a,0x0e,0x9a,0x01,0x35,0x0e,0x9c,0x0e,0x9c,0x01,0x36,0x0e,0x9e,0x0e,0x9e,0x01,0x37,0x0e,0xa0,0x0e,0xa0,0x01,0x38,0x0e,0xa2,0x0e,0xa2,0x01,0x39,0x0e,0xa5,0x0e,0xab,0x01,0x3a,0x0e,0xae,0x0e,0xae,0x01,0x41,0x0e,0xb1,0x0e,0xb1,0x01,0x42,0x0e,0xb3,0x0e,0xb3,0x01,0x43,0x0e,0xb5,0x0e,0xb5,0x01,0x44,0x0e,0xb7, +0x0e,0xb7,0x01,0x45,0x0e,0xb9,0x0e,0xb9,0x01,0x46,0x0e,0xbb,0x0e,0xbb,0x01,0x47,0x0e,0xbd,0x0e,0xbd,0x01,0x48,0x0e,0xbf,0x0e,0xbf,0x01,0x49,0x0e,0xc1,0x0e,0xc1,0x01,0x4a,0x0e,0xc3,0x0e,0xc3,0x01,0x4b,0x0e,0xc5,0x0e,0xc5,0x01,0x4c,0x0e,0xc7,0x0e,0xc7,0x01,0x4d,0x0e,0xc9,0x0e,0xcd,0x01,0x4e,0x0e,0xcf,0x0e,0xd0,0x01,0x53, +0x0e,0xd3,0x0e,0xd3,0x01,0x55,0x0e,0xd5,0x0e,0xd5,0x01,0x56,0x0e,0xda,0x0e,0xe3,0x01,0x57,0x0e,0xe6,0x0e,0xe6,0x01,0x61,0x0e,0xec,0x0e,0xec,0x01,0x62,0x0e,0xee,0x0e,0xee,0x01,0x63,0x0e,0xf0,0x0e,0xf0,0x01,0x64,0x0e,0xf2,0x0e,0xf2,0x01,0x65,0x0e,0xf4,0x0e,0xf4,0x01,0x66,0x0e,0xf6,0x0e,0xf6,0x01,0x67,0x0e,0xf8,0x0e,0xf8, +0x01,0x68,0x0e,0xfa,0x0e,0xfa,0x01,0x69,0x0e,0xfc,0x0e,0xfc,0x01,0x6a,0x0f,0x00,0x0f,0x03,0x01,0x6b,0x0f,0x05,0x0f,0x0a,0x01,0x6f,0x0f,0x0c,0x0f,0x0c,0x01,0x75,0x0f,0x0e,0x0f,0x0e,0x01,0x76,0x0f,0x10,0x0f,0x10,0x01,0x77,0x0f,0x12,0x0f,0x12,0x01,0x78,0x0f,0x14,0x0f,0x14,0x01,0x79,0x0f,0x16,0x0f,0x17,0x01,0x7a,0x0f,0x1a, +0x0f,0x1b,0x01,0x7c,0x0f,0x1e,0x0f,0x1f,0x01,0x7e,0x0f,0x22,0x0f,0x25,0x01,0x80,0x0f,0x28,0x0f,0x2d,0x01,0x84,0x0f,0x30,0x0f,0x31,0x01,0x8a,0x0f,0x34,0x0f,0x35,0x01,0x8c,0x0f,0x38,0x0f,0x41,0x01,0x8e,0x0f,0x44,0x0f,0x45,0x01,0x98,0x0f,0x48,0x0f,0x49,0x01,0x9a,0x0f,0x4c,0x0f,0x4d,0x01,0x9c,0x0f,0x62,0x0f,0x6b,0x01,0x9e, +0x0f,0x98,0x0f,0xa4,0x01,0xa8,0x0f,0xa6,0x0f,0xb3,0x01,0xb5,0x0f,0xb5,0x0f,0xbc,0x01,0xc3,0x14,0x55,0x14,0x5c,0x01,0xcb,0x14,0x73,0x14,0x73,0x01,0xd3,0x14,0x76,0x14,0x76,0x01,0xd4,0x14,0x79,0x14,0x79,0x01,0xd5,0x14,0x7d,0x14,0x7e,0x01,0xd6,0x14,0x81,0x14,0x81,0x01,0xd8,0x14,0x84,0x14,0x84,0x01,0xd9,0x14,0x87,0x14,0x87, +0x01,0xda,0x14,0xad,0x14,0xae,0x01,0xdb,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x01,0x01,0x0e,0x00,0x0c,0x00,0x1e,0x00,0x30,0x00,0x42,0x00,0x4c,0x00,0x5e,0x00,0x70,0x00,0x7a,0x00,0xb4,0x00,0xbe,0x00,0xd0,0x00,0xf2,0x01,0x04,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x62,0x00,0x02,0x09,0x32,0x0e,0x69,0x00,0x02,0x09,0x7e,0x00,0x02, +0x00,0x06,0x00,0x0c,0x0a,0x68,0x00,0x02,0x09,0x32,0x0e,0x66,0x00,0x02,0x09,0x7e,0x00,0x01,0x00,0x04,0x0e,0x6b,0x00,0x02,0x09,0x7f,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x65,0x00,0x02,0x09,0x32,0x0e,0x67,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x66,0x00,0x02,0x09,0x32,0x0e,0x68,0x00,0x02,0x09,0x7e,0x00,0x01, +0x00,0x04,0x0e,0x6c,0x00,0x02,0x09,0x7f,0x00,0x07,0x00,0x10,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34,0x0a,0x65,0x00,0x02,0x09,0x2f,0x0a,0x66,0x00,0x02,0x09,0x30,0x0a,0x68,0x00,0x02,0x09,0x2d,0x0e,0x62,0x00,0x02,0x09,0x2c,0x0e,0x64,0x00,0x02,0x0e,0x63,0x0e,0x65,0x00,0x02,0x09,0x73,0x13,0xe9,0x00,0x02, +0x09,0x73,0x00,0x01,0x00,0x04,0x0e,0x6a,0x00,0x02,0x09,0x7e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x65,0x00,0x02,0x09,0x32,0x13,0xe9,0x00,0x02,0x09,0x32,0x00,0x04,0x00,0x0a,0x00,0x10,0x00,0x16,0x00,0x1c,0x0e,0x66,0x00,0x02,0x09,0x2d,0x0e,0x67,0x00,0x02,0x09,0x2f,0x0e,0x68,0x00,0x02,0x09,0x30,0x0e,0x6a,0x00,0x02,0x09,0x33, +0x00,0x02,0x00,0x06,0x00,0x0c,0x0e,0x6b,0x00,0x02,0x09,0x2e,0x0e,0x6c,0x00,0x02,0x09,0x31,0x00,0x01,0x00,0x04,0x0e,0x64,0x00,0x02,0x09,0x32,0x00,0x02,0x00,0x04,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x73,0x09,0x73,0x00,0x08,0x09,0x7e,0x09,0x7f,0x00,0x09,0x0e,0x63,0x0e,0x63,0x00,0x0b,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08, +0x00,0x02,0x00,0x06,0x00,0x0c,0x0a,0x67,0x00,0x02,0x09,0x31,0x0a,0x69,0x00,0x02,0x09,0x2e,0x00,0x01,0x00,0x01,0x09,0x32,0x00,0x01,0x00,0x52,0x00,0x01,0x00,0x08,0x00,0x09,0x00,0x14,0x00,0x1a,0x00,0x20,0x00,0x26,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x11,0x9a,0x00,0x02,0x08,0xd8,0x11,0x9b,0x00,0x02,0x08,0xd9, +0x11,0x9c,0x00,0x02,0x08,0xda,0x11,0x9d,0x00,0x02,0x08,0xdb,0x11,0x9e,0x00,0x02,0x08,0xdc,0x11,0x9f,0x00,0x02,0x08,0xdd,0x11,0xa0,0x00,0x02,0x08,0xde,0x11,0xa1,0x00,0x02,0x08,0xdf,0x11,0xa2,0x00,0x02,0x08,0xe0,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x3c,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x67,0x00,0x03,0x00,0x02,0x00,0x48,0x00,0x52,0x00,0x01,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x03,0x00,0x03,0x00,0x34,0x00,0x34,0x00,0x3e,0x00,0x01,0x00,0x1e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x67,0x00,0x01,0x00,0x02,0x0a,0x14,0x14,0x6b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f, +0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x88,0x14,0x96,0x00,0x00,0x00,0x01,0x00,0x01,0x0a,0x14,0x00,0x03,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x6a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x02,0x00,0x6e,0x00,0x42,0x00,0x01,0x00,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68, +0x00,0x03,0x00,0x03,0x00,0x5a,0x00,0x5a,0x00,0x2e,0x00,0x01,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x03,0x00,0x04,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x18,0x00,0x01,0x00,0x2e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45, +0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x00,0x02,0x00,0x30,0x00,0x3a,0x00,0x01, +0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x01,0x00,0x01,0x0a,0x45,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x01,0x00,0x26,0x00,0x01,0x00,0x2e, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x03,0x00,0x02,0x00,0x32,0x00,0x3c,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6a,0x00,0x01,0x00,0x02,0x0a,0x45,0x0a,0x46,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x01,0x14,0x9e, +0x14,0xac,0x00,0x00,0x00,0x01,0x00,0x01,0x14,0x9a,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x24,0x00,0x01,0x00,0x2c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x02,0x00,0x02,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x53,0x09,0x55,0x00,0x0a,0x00,0x01,0x00,0x02,0x14,0x03,0x14,0x2b,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00, +0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2e,0x00,0x03,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x18,0x00,0x04,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x2e,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x00,0x03,0x0a,0x44, +0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45,0x00,0x02,0x00,0x02,0x00,0x01,0x14,0x9e,0x14,0xac,0x00,0x00,0x00,0x02,0x01,0xc8,0x00,0xe1,0x08,0xf2,0x08,0xc9,0x08,0xc8,0x0e,0x24,0x08,0xca,0x09,0x02,0x08,0xc7,0x0e,0x26,0x08,0xf6,0x0e,0x28,0x0e,0x2a,0x08,0xcf,0x08,0xd1,0x08,0xd3,0x0e,0x2f,0x0e,0x30, +0x0b,0x0c,0x0b,0x0d,0x0e,0x31,0x0e,0x33,0x0e,0x35,0x0e,0x37,0x0e,0x39,0x0e,0x3c,0x08,0xe4,0x08,0xe7,0x0e,0x53,0x0e,0x54,0x0e,0x55,0x09,0x59,0x0e,0x57,0x0e,0x59,0x08,0xf3,0x0e,0x5e,0x08,0xf7,0x08,0xf5,0x0e,0x6e,0x0e,0x82,0x09,0x43,0x0b,0x0e,0x0e,0xb1,0x0e,0xbd,0x09,0x4b,0x09,0x4d,0x0e,0x78,0x0e,0x8f,0x0b,0x0f,0x0e,0xcf, +0x09,0x72,0x0e,0xda,0x0e,0xdb,0x09,0x66,0x09,0x68,0x0e,0xa8,0x0e,0x70,0x09,0x81,0x09,0x83,0x09,0x85,0x09,0x87,0x0e,0x74,0x0e,0x75,0x09,0x8b,0x0e,0x7a,0x0e,0x7c,0x0e,0x7e,0x0e,0x80,0x0e,0x84,0x0e,0x86,0x09,0x99,0x09,0x9c,0x09,0x9f,0x09,0xa2,0x09,0xa5,0x09,0xa8,0x0e,0x90,0x0e,0x91,0x0e,0x92,0x0e,0x93,0x0e,0x94,0x0e,0x95, +0x0e,0x96,0x0e,0x97,0x0b,0x10,0x0b,0x11,0x0b,0x12,0x0b,0x13,0x0b,0x14,0x0b,0x15,0x0b,0x16,0x0e,0x98,0x0e,0x9a,0x0e,0x9c,0x0e,0x9e,0x0e,0xa0,0x0e,0xa2,0x09,0xc5,0x0e,0xa5,0x0e,0xa6,0x0e,0xa7,0x0e,0xa9,0x0e,0xaa,0x0e,0xab,0x0e,0xae,0x0e,0xb3,0x0e,0xb5,0x0e,0xb7,0x0e,0xb9,0x0e,0xbb,0x0e,0xbf,0x0e,0xc1,0x0e,0xc3,0x0e,0xc5, +0x0e,0xc7,0x0e,0xc9,0x0e,0xca,0x0e,0xcb,0x0e,0xcc,0x0e,0xcd,0x0e,0xd0,0x0e,0xd3,0x0e,0xd5,0x09,0xfb,0x0e,0xdc,0x0e,0xdd,0x0e,0xde,0x0e,0xdf,0x0e,0xe0,0x0e,0xe1,0x0e,0xe2,0x0e,0xe3,0x0a,0x06,0x0a,0x08,0x0e,0xe6,0x0a,0x0c,0x0a,0x0e,0x0e,0xec,0x0e,0xee,0x0a,0x29,0x0a,0x3f,0x0a,0x55,0x0a,0x57,0x0a,0x59,0x0e,0xf0,0x0e,0xf2, +0x0e,0xf4,0x0e,0xf6,0x0e,0xf8,0x0e,0xfa,0x0e,0xfc,0x0a,0x81,0x0a,0x84,0x0f,0x00,0x0f,0x01,0x0f,0x02,0x0f,0x03,0x0a,0x8c,0x0a,0x90,0x0a,0x94,0x0f,0x05,0x0f,0x06,0x0f,0x07,0x0f,0x08,0x0f,0x09,0x0f,0x0a,0x0f,0x0c,0x0f,0x0e,0x0f,0x10,0x0f,0x12,0x0a,0xb1,0x0b,0x17,0x0b,0x18,0x0f,0x14,0x0b,0x1a,0x0e,0x21,0x0e,0x40,0x0e,0x44, +0x0e,0x48,0x0e,0x4c,0x0e,0x50,0x0f,0x17,0x0f,0x1b,0x0f,0x1f,0x0f,0x23,0x0f,0x25,0x0f,0x29,0x0f,0x2b,0x0f,0x2d,0x0f,0x31,0x0f,0x35,0x0f,0x39,0x0f,0x3b,0x0f,0x3d,0x0f,0x3f,0x0f,0x41,0x0f,0x45,0x0f,0x49,0x0f,0x4d,0x13,0x00,0x13,0x05,0x13,0x0b,0x13,0x0f,0x13,0x13,0x13,0x17,0x13,0x1b,0x13,0x1f,0x13,0x23,0x13,0x25,0x13,0x27, +0x13,0x29,0x14,0x07,0x14,0x0a,0x14,0x0e,0x14,0x12,0x14,0x14,0x14,0x16,0x14,0x6d,0x14,0x70,0x14,0x73,0x14,0x76,0x14,0x79,0x14,0x7d,0x14,0x7e,0x14,0x81,0x14,0x84,0x14,0x87,0x00,0x02,0x00,0x8d,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x08,0x09,0x20,0x00,0x01,0x09,0x22,0x09,0x2b,0x00,0x1a,0x09,0x3e,0x09,0x3e,0x00,0x24,0x09,0x40, +0x09,0x40,0x00,0x25,0x09,0x42,0x09,0x42,0x00,0x26,0x09,0x45,0x09,0x46,0x00,0x27,0x09,0x48,0x09,0x48,0x00,0x29,0x09,0x4a,0x09,0x4a,0x00,0x2a,0x09,0x4e,0x09,0x4e,0x00,0x2b,0x09,0x5b,0x09,0x5b,0x00,0x2c,0x09,0x5d,0x09,0x60,0x00,0x2d,0x09,0x63,0x09,0x65,0x00,0x31,0x09,0x67,0x09,0x67,0x00,0x34,0x09,0x6c,0x09,0x6c,0x00,0x35, +0x09,0x7c,0x09,0x7c,0x00,0x36,0x09,0x80,0x09,0x80,0x00,0x37,0x09,0x82,0x09,0x82,0x00,0x38,0x09,0x84,0x09,0x84,0x00,0x39,0x09,0x86,0x09,0x86,0x00,0x3a,0x09,0x88,0x09,0x8a,0x00,0x3b,0x09,0x8c,0x09,0x8c,0x00,0x3e,0x09,0x8e,0x09,0x8e,0x00,0x3f,0x09,0x90,0x09,0x90,0x00,0x40,0x09,0x92,0x09,0x92,0x00,0x41,0x09,0x94,0x09,0x94, +0x00,0x42,0x09,0x96,0x09,0x96,0x00,0x43,0x09,0x98,0x09,0x98,0x00,0x44,0x09,0x9b,0x09,0x9b,0x00,0x45,0x09,0x9e,0x09,0x9e,0x00,0x46,0x09,0xa1,0x09,0xa1,0x00,0x47,0x09,0xa4,0x09,0xa4,0x00,0x48,0x09,0xa7,0x09,0xa7,0x00,0x49,0x09,0xaa,0x09,0xb9,0x00,0x4a,0x09,0xbb,0x09,0xbb,0x00,0x5a,0x09,0xbd,0x09,0xbd,0x00,0x5b,0x09,0xbf, +0x09,0xbf,0x00,0x5c,0x09,0xc1,0x09,0xc1,0x00,0x5d,0x09,0xc3,0x09,0xc4,0x00,0x5e,0x09,0xc8,0x09,0xc9,0x00,0x60,0x09,0xcc,0x09,0xcc,0x00,0x62,0x09,0xcf,0x09,0xcf,0x00,0x63,0x09,0xd2,0x09,0xd2,0x00,0x64,0x09,0xd5,0x09,0xd7,0x00,0x65,0x09,0xd9,0x09,0xd9,0x00,0x68,0x09,0xdb,0x09,0xdb,0x00,0x69,0x09,0xdd,0x09,0xdd,0x00,0x6a, +0x09,0xdf,0x09,0xdf,0x00,0x6b,0x09,0xe1,0x09,0xe1,0x00,0x6c,0x09,0xe3,0x09,0xe3,0x00,0x6d,0x09,0xe5,0x09,0xe5,0x00,0x6e,0x09,0xe7,0x09,0xe7,0x00,0x6f,0x09,0xe9,0x09,0xe9,0x00,0x70,0x09,0xeb,0x09,0xeb,0x00,0x71,0x09,0xed,0x09,0xed,0x00,0x72,0x09,0xef,0x09,0xef,0x00,0x73,0x09,0xf1,0x09,0xf1,0x00,0x74,0x09,0xf3,0x09,0xf3, +0x00,0x75,0x09,0xf5,0x09,0xf6,0x00,0x76,0x09,0xf8,0x09,0xf8,0x00,0x78,0x09,0xfa,0x09,0xfa,0x00,0x79,0x09,0xfd,0x0a,0x05,0x00,0x7a,0x0a,0x07,0x0a,0x07,0x00,0x83,0x0a,0x0a,0x0a,0x0b,0x00,0x84,0x0a,0x0d,0x0a,0x0d,0x00,0x86,0x0a,0x24,0x0a,0x24,0x00,0x87,0x0a,0x26,0x0a,0x26,0x00,0x88,0x0a,0x28,0x0a,0x28,0x00,0x89,0x0a,0x3e, +0x0a,0x3e,0x00,0x8a,0x0a,0x54,0x0a,0x54,0x00,0x8b,0x0a,0x56,0x0a,0x56,0x00,0x8c,0x0a,0x58,0x0a,0x58,0x00,0x8d,0x0a,0x72,0x0a,0x72,0x00,0x8e,0x0a,0x74,0x0a,0x74,0x00,0x8f,0x0a,0x76,0x0a,0x76,0x00,0x90,0x0a,0x78,0x0a,0x78,0x00,0x91,0x0a,0x7a,0x0a,0x7a,0x00,0x92,0x0a,0x7c,0x0a,0x7c,0x00,0x93,0x0a,0x7e,0x0a,0x7e,0x00,0x94, +0x0a,0x80,0x0a,0x80,0x00,0x95,0x0a,0x83,0x0a,0x83,0x00,0x96,0x0a,0x86,0x0a,0x89,0x00,0x97,0x0a,0x8b,0x0a,0x8b,0x00,0x9b,0x0a,0x8f,0x0a,0x8f,0x00,0x9c,0x0a,0x93,0x0a,0x93,0x00,0x9d,0x0a,0x97,0x0a,0x97,0x00,0x9e,0x0a,0x9a,0x0a,0x9a,0x00,0x9f,0x0a,0x9d,0x0a,0x9d,0x00,0xa0,0x0a,0xa0,0x0a,0xa0,0x00,0xa1,0x0a,0xa3,0x0a,0xa3, +0x00,0xa2,0x0a,0xa6,0x0a,0xa6,0x00,0xa3,0x0a,0xa8,0x0a,0xa8,0x00,0xa4,0x0a,0xaa,0x0a,0xaa,0x00,0xa5,0x0a,0xac,0x0a,0xac,0x00,0xa6,0x0a,0xae,0x0a,0xae,0x00,0xa7,0x0a,0xb0,0x0a,0xb0,0x00,0xa8,0x0a,0xb4,0x0a,0xb6,0x00,0xa9,0x0b,0x19,0x0b,0x19,0x00,0xac,0x0e,0x20,0x0e,0x20,0x00,0xad,0x0e,0x3f,0x0e,0x3f,0x00,0xae,0x0e,0x43, +0x0e,0x43,0x00,0xaf,0x0e,0x47,0x0e,0x47,0x00,0xb0,0x0e,0x4b,0x0e,0x4b,0x00,0xb1,0x0e,0x4f,0x0e,0x4f,0x00,0xb2,0x0f,0x16,0x0f,0x16,0x00,0xb3,0x0f,0x1a,0x0f,0x1a,0x00,0xb4,0x0f,0x1e,0x0f,0x1e,0x00,0xb5,0x0f,0x22,0x0f,0x22,0x00,0xb6,0x0f,0x24,0x0f,0x24,0x00,0xb7,0x0f,0x28,0x0f,0x28,0x00,0xb8,0x0f,0x2a,0x0f,0x2a,0x00,0xb9, +0x0f,0x2c,0x0f,0x2c,0x00,0xba,0x0f,0x30,0x0f,0x30,0x00,0xbb,0x0f,0x34,0x0f,0x34,0x00,0xbc,0x0f,0x38,0x0f,0x38,0x00,0xbd,0x0f,0x3a,0x0f,0x3a,0x00,0xbe,0x0f,0x3c,0x0f,0x3c,0x00,0xbf,0x0f,0x3e,0x0f,0x3e,0x00,0xc0,0x0f,0x40,0x0f,0x40,0x00,0xc1,0x0f,0x44,0x0f,0x44,0x00,0xc2,0x0f,0x48,0x0f,0x48,0x00,0xc3,0x0f,0x4c,0x0f,0x4c, +0x00,0xc4,0x13,0x02,0x13,0x02,0x00,0xc5,0x13,0x04,0x13,0x04,0x00,0xc6,0x13,0x08,0x13,0x08,0x00,0xc7,0x13,0x0c,0x13,0x0c,0x00,0xc8,0x13,0x10,0x13,0x10,0x00,0xc9,0x13,0x14,0x13,0x14,0x00,0xca,0x13,0x18,0x13,0x18,0x00,0xcb,0x13,0x1c,0x13,0x1c,0x00,0xcc,0x13,0x20,0x13,0x20,0x00,0xcd,0x13,0x24,0x13,0x24,0x00,0xce,0x13,0x26, +0x13,0x26,0x00,0xcf,0x13,0x28,0x13,0x28,0x00,0xd0,0x14,0x04,0x14,0x04,0x00,0xd1,0x14,0x09,0x14,0x09,0x00,0xd2,0x14,0x0b,0x14,0x0b,0x00,0xd3,0x14,0x0f,0x14,0x0f,0x00,0xd4,0x14,0x13,0x14,0x13,0x00,0xd5,0x14,0x15,0x14,0x15,0x00,0xd6,0x14,0x53,0x14,0x5c,0x00,0xd7,0x00,0x02,0x01,0x36,0x00,0x98,0x0e,0xd8,0x0e,0x25,0x0e,0x27, +0x0e,0x29,0x0e,0x2b,0x0e,0x2c,0x0e,0x2d,0x0e,0x2e,0x0e,0x32,0x0e,0x34,0x0e,0x36,0x0e,0x38,0x0e,0x3b,0x0e,0x3e,0x08,0xe3,0x08,0xe6,0x08,0xe9,0x08,0xec,0x0e,0x56,0x09,0x3f,0x0e,0x58,0x0e,0x5a,0x0e,0x5d,0x0e,0x60,0x0e,0x61,0x09,0x3b,0x0e,0x83,0x0e,0x8d,0x0e,0xb2,0x0e,0xbe,0x0e,0xe4,0x0e,0x79,0x09,0x62,0x09,0x6e,0x0e,0x72, +0x0e,0x77,0x0e,0x7b,0x0e,0x7d,0x0e,0x7f,0x0e,0x81,0x0e,0x85,0x0e,0x87,0x0e,0x88,0x0e,0x89,0x0e,0x8a,0x0e,0x8b,0x0e,0x8c,0x0e,0x8e,0x0e,0x99,0x0e,0x9b,0x0e,0x9d,0x0e,0x9f,0x0e,0xa1,0x0e,0xa4,0x09,0xc7,0x09,0x3d,0x09,0xcb,0x09,0xce,0x09,0xd1,0x09,0xd4,0x0e,0xad,0x0e,0xb0,0x0e,0xb4,0x0e,0xb6,0x0e,0xb8,0x0e,0xba,0x0e,0xbc, +0x0e,0xc0,0x0e,0xc2,0x0e,0xc4,0x0e,0xc6,0x0e,0xc8,0x0a,0x5f,0x0a,0x60,0x0a,0x61,0x0a,0x62,0x0e,0xce,0x0e,0xd2,0x0e,0xd4,0x0e,0xd6,0x0e,0xd9,0x0e,0xe5,0x0e,0xe8,0x0e,0xea,0x0e,0xed,0x0e,0xef,0x0a,0x2b,0x0e,0xba,0x0a,0x5b,0x0e,0xf1,0x0e,0xf3,0x0e,0xf5,0x0e,0xf7,0x0e,0xf9,0x0e,0xfb,0x0e,0xfd,0x0e,0xfe,0x0e,0xff,0x0f,0x04, +0x0a,0x8e,0x0a,0x92,0x0a,0x96,0x0a,0x99,0x0a,0x9c,0x0a,0x9f,0x0a,0xa2,0x0a,0xa5,0x0f,0x0b,0x0f,0x0d,0x0f,0x0f,0x0f,0x11,0x0f,0x13,0x0a,0xb3,0x0f,0x15,0x0e,0x23,0x0e,0x42,0x0e,0x46,0x0e,0x4a,0x0e,0x4e,0x0e,0x52,0x0f,0x19,0x0f,0x1d,0x0f,0x21,0x0f,0x27,0x0f,0x2f,0x0f,0x33,0x0f,0x37,0x0f,0x43,0x0f,0x47,0x0f,0x4b,0x0f,0x4f, +0x13,0x01,0x13,0x07,0x13,0x0a,0x13,0x0e,0x13,0x12,0x13,0x16,0x13,0x1a,0x13,0x1e,0x13,0x22,0x14,0x06,0x14,0x0d,0x14,0x11,0x14,0x6e,0x14,0x71,0x14,0x74,0x14,0x77,0x14,0x7a,0x14,0x7f,0x14,0x82,0x14,0x85,0x0e,0x5a,0x00,0x02,0x00,0x7a,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02, +0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42,0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b, +0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90,0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98, +0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30,0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34, +0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9,0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1, +0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef,0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8, +0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x24,0x0a,0x24,0x00,0x54,0x0a,0x26,0x0a,0x26,0x00,0x55,0x0a,0x28,0x0a,0x28,0x00,0x56,0x0a,0x3e,0x0a,0x3e,0x00,0x57,0x0a,0x58,0x0a,0x58,0x00,0x58,0x0a,0x72,0x0a,0x72,0x00,0x59, +0x0a,0x74,0x0a,0x74,0x00,0x5a,0x0a,0x76,0x0a,0x76,0x00,0x5b,0x0a,0x78,0x0a,0x78,0x00,0x5c,0x0a,0x7a,0x0a,0x7a,0x00,0x5d,0x0a,0x7c,0x0a,0x7c,0x00,0x5e,0x0a,0x7e,0x0a,0x7e,0x00,0x5f,0x0a,0x80,0x0a,0x80,0x00,0x60,0x0a,0x83,0x0a,0x83,0x00,0x61,0x0a,0x89,0x0a,0x89,0x00,0x62,0x0a,0x8b,0x0a,0x8b,0x00,0x63,0x0a,0x8f,0x0a,0x8f, +0x00,0x64,0x0a,0x93,0x0a,0x93,0x00,0x65,0x0a,0x97,0x0a,0x97,0x00,0x66,0x0a,0x9a,0x0a,0x9a,0x00,0x67,0x0a,0x9d,0x0a,0x9d,0x00,0x68,0x0a,0xa0,0x0a,0xa0,0x00,0x69,0x0a,0xa3,0x0a,0xa3,0x00,0x6a,0x0a,0xa6,0x0a,0xa6,0x00,0x6b,0x0a,0xa8,0x0a,0xa8,0x00,0x6c,0x0a,0xaa,0x0a,0xaa,0x00,0x6d,0x0a,0xac,0x0a,0xac,0x00,0x6e,0x0a,0xae, +0x0a,0xae,0x00,0x6f,0x0a,0xb0,0x0a,0xb0,0x00,0x70,0x0a,0xb6,0x0a,0xb6,0x00,0x71,0x0e,0x20,0x0e,0x20,0x00,0x72,0x0e,0x3f,0x0e,0x3f,0x00,0x73,0x0e,0x43,0x0e,0x43,0x00,0x74,0x0e,0x47,0x0e,0x47,0x00,0x75,0x0e,0x4b,0x0e,0x4b,0x00,0x76,0x0e,0x4f,0x0e,0x4f,0x00,0x77,0x0f,0x16,0x0f,0x16,0x00,0x78,0x0f,0x1a,0x0f,0x1a,0x00,0x79, +0x0f,0x1e,0x0f,0x1e,0x00,0x7a,0x0f,0x24,0x0f,0x24,0x00,0x7b,0x0f,0x2c,0x0f,0x2c,0x00,0x7c,0x0f,0x30,0x0f,0x30,0x00,0x7d,0x0f,0x34,0x0f,0x34,0x00,0x7e,0x0f,0x40,0x0f,0x40,0x00,0x7f,0x0f,0x44,0x0f,0x44,0x00,0x80,0x0f,0x48,0x0f,0x48,0x00,0x81,0x0f,0x4c,0x0f,0x4c,0x00,0x82,0x13,0x02,0x13,0x02,0x00,0x83,0x13,0x04,0x13,0x04, +0x00,0x84,0x13,0x08,0x13,0x08,0x00,0x85,0x13,0x0c,0x13,0x0c,0x00,0x86,0x13,0x10,0x13,0x10,0x00,0x87,0x13,0x14,0x13,0x14,0x00,0x88,0x13,0x18,0x13,0x18,0x00,0x89,0x13,0x1c,0x13,0x1c,0x00,0x8a,0x13,0x20,0x13,0x20,0x00,0x8b,0x14,0x04,0x14,0x04,0x00,0x8c,0x14,0x0b,0x14,0x0b,0x00,0x8d,0x14,0x0f,0x14,0x0f,0x00,0x8e,0x14,0x53, +0x14,0x57,0x00,0x8f,0x14,0x59,0x14,0x5c,0x00,0x94,0x00,0x02,0x01,0x38,0x00,0x99,0x0e,0xd7,0x08,0xf9,0x08,0xcb,0x08,0xcc,0x08,0xcd,0x08,0xce,0x08,0xd0,0x08,0xd2,0x08,0xd4,0x08,0xd5,0x08,0xd6,0x08,0xe1,0x0e,0x3a,0x0e,0x3d,0x08,0xe2,0x08,0xe5,0x08,0xe8,0x08,0xeb,0x08,0xed,0x08,0xee,0x08,0xef,0x08,0xf0,0x0e,0x5b,0x0e,0x5f, +0x08,0xf4,0x0e,0x6f,0x09,0x41,0x09,0x44,0x09,0x47,0x09,0x49,0x09,0x4c,0x09,0x5c,0x09,0x61,0x09,0x6d,0x0e,0x71,0x0e,0x76,0x09,0x8d,0x09,0x8f,0x09,0x91,0x09,0x93,0x09,0x95,0x09,0x97,0x09,0x9a,0x09,0x9d,0x09,0xa0,0x09,0xa3,0x09,0xa6,0x09,0xa9,0x09,0xba,0x09,0xbc,0x09,0xbe,0x09,0xc0,0x09,0xc2,0x0e,0xa3,0x09,0xc6,0x09,0x3c, +0x09,0xca,0x09,0xcd,0x09,0xd0,0x09,0xd3,0x0e,0xac,0x0e,0xaf,0x09,0xd8,0x09,0xda,0x09,0xdc,0x09,0xde,0x09,0xe0,0x09,0xe2,0x09,0xe4,0x09,0xe6,0x09,0xe8,0x09,0xea,0x09,0xec,0x09,0xee,0x09,0xf0,0x09,0xf2,0x09,0xf4,0x0e,0xd1,0x09,0xf7,0x09,0xf9,0x09,0xfc,0x0a,0x09,0x0e,0xe7,0x0e,0xe9,0x0a,0x10,0x0a,0x25,0x0a,0x27,0x0a,0x2a, +0x09,0xde,0x0a,0x5a,0x0a,0x73,0x0a,0x75,0x0a,0x77,0x0a,0x79,0x0a,0x7b,0x0a,0x7d,0x0a,0x7f,0x0a,0x82,0x0a,0x85,0x0a,0x8a,0x0a,0x8d,0x0a,0x91,0x0a,0x95,0x0a,0x98,0x0a,0x9b,0x0a,0x9e,0x0a,0xa1,0x0a,0xa4,0x0a,0xa7,0x0a,0xa9,0x0a,0xab,0x0a,0xad,0x0a,0xaf,0x0a,0xb2,0x0a,0xb7,0x0e,0x22,0x0e,0x41,0x0e,0x45,0x0e,0x49,0x0e,0x4d, +0x0e,0x51,0x0f,0x18,0x0f,0x1c,0x0f,0x20,0x0f,0x26,0x0f,0x2e,0x0f,0x32,0x0f,0x36,0x0f,0x42,0x0f,0x46,0x0f,0x4a,0x0f,0x4e,0x13,0x03,0x13,0x06,0x13,0x09,0x13,0x0d,0x13,0x11,0x13,0x15,0x13,0x19,0x13,0x1d,0x13,0x21,0x14,0x05,0x14,0x0c,0x14,0x10,0x14,0x6f,0x14,0x72,0x14,0x75,0x14,0x78,0x14,0x7b,0x14,0x80,0x14,0x83,0x14,0x86, +0x08,0xf0,0x00,0x02,0x00,0x7b,0x08,0xf1,0x08,0xf1,0x00,0x00,0x09,0x0c,0x09,0x0c,0x00,0x01,0x09,0x0e,0x09,0x0e,0x00,0x02,0x09,0x10,0x09,0x14,0x00,0x03,0x09,0x19,0x09,0x20,0x00,0x08,0x09,0x22,0x09,0x28,0x00,0x10,0x09,0x2a,0x09,0x2b,0x00,0x17,0x09,0x3e,0x09,0x3e,0x00,0x19,0x09,0x40,0x09,0x40,0x00,0x1a,0x09,0x42,0x09,0x42, +0x00,0x1b,0x09,0x46,0x09,0x46,0x00,0x1c,0x09,0x48,0x09,0x48,0x00,0x1d,0x09,0x4a,0x09,0x4a,0x00,0x1e,0x09,0x5b,0x09,0x5b,0x00,0x1f,0x09,0x60,0x09,0x60,0x00,0x20,0x09,0x6c,0x09,0x6c,0x00,0x21,0x09,0x7c,0x09,0x7c,0x00,0x22,0x09,0x8a,0x09,0x8a,0x00,0x23,0x09,0x8c,0x09,0x8c,0x00,0x24,0x09,0x8e,0x09,0x8e,0x00,0x25,0x09,0x90, +0x09,0x90,0x00,0x26,0x09,0x92,0x09,0x92,0x00,0x27,0x09,0x94,0x09,0x94,0x00,0x28,0x09,0x96,0x09,0x96,0x00,0x29,0x09,0x98,0x09,0x98,0x00,0x2a,0x09,0x9b,0x09,0x9b,0x00,0x2b,0x09,0x9e,0x09,0x9e,0x00,0x2c,0x09,0xa1,0x09,0xa1,0x00,0x2d,0x09,0xa4,0x09,0xa4,0x00,0x2e,0x09,0xa7,0x09,0xa7,0x00,0x2f,0x09,0xb9,0x09,0xb9,0x00,0x30, +0x09,0xbb,0x09,0xbb,0x00,0x31,0x09,0xbd,0x09,0xbd,0x00,0x32,0x09,0xbf,0x09,0xbf,0x00,0x33,0x09,0xc1,0x09,0xc1,0x00,0x34,0x09,0xc3,0x09,0xc4,0x00,0x35,0x09,0xc8,0x09,0xc9,0x00,0x37,0x09,0xcc,0x09,0xcc,0x00,0x39,0x09,0xcf,0x09,0xcf,0x00,0x3a,0x09,0xd2,0x09,0xd2,0x00,0x3b,0x09,0xd5,0x09,0xd7,0x00,0x3c,0x09,0xd9,0x09,0xd9, +0x00,0x3f,0x09,0xdb,0x09,0xdb,0x00,0x40,0x09,0xdd,0x09,0xdd,0x00,0x41,0x09,0xdf,0x09,0xdf,0x00,0x42,0x09,0xe1,0x09,0xe1,0x00,0x43,0x09,0xe3,0x09,0xe3,0x00,0x44,0x09,0xe5,0x09,0xe5,0x00,0x45,0x09,0xe7,0x09,0xe7,0x00,0x46,0x09,0xe9,0x09,0xe9,0x00,0x47,0x09,0xeb,0x09,0xeb,0x00,0x48,0x09,0xed,0x09,0xed,0x00,0x49,0x09,0xef, +0x09,0xef,0x00,0x4a,0x09,0xf1,0x09,0xf1,0x00,0x4b,0x09,0xf3,0x09,0xf3,0x00,0x4c,0x09,0xf5,0x09,0xf6,0x00,0x4d,0x09,0xf8,0x09,0xf8,0x00,0x4f,0x09,0xfa,0x09,0xfa,0x00,0x50,0x0a,0x07,0x0a,0x07,0x00,0x51,0x0a,0x0b,0x0a,0x0b,0x00,0x52,0x0a,0x0d,0x0a,0x0d,0x00,0x53,0x0a,0x10,0x0a,0x10,0x00,0x54,0x0a,0x24,0x0a,0x24,0x00,0x55, +0x0a,0x26,0x0a,0x26,0x00,0x56,0x0a,0x28,0x0a,0x28,0x00,0x57,0x0a,0x3e,0x0a,0x3e,0x00,0x58,0x0a,0x58,0x0a,0x58,0x00,0x59,0x0a,0x72,0x0a,0x72,0x00,0x5a,0x0a,0x74,0x0a,0x74,0x00,0x5b,0x0a,0x76,0x0a,0x76,0x00,0x5c,0x0a,0x78,0x0a,0x78,0x00,0x5d,0x0a,0x7a,0x0a,0x7a,0x00,0x5e,0x0a,0x7c,0x0a,0x7c,0x00,0x5f,0x0a,0x7e,0x0a,0x7e, +0x00,0x60,0x0a,0x80,0x0a,0x80,0x00,0x61,0x0a,0x83,0x0a,0x83,0x00,0x62,0x0a,0x89,0x0a,0x89,0x00,0x63,0x0a,0x8b,0x0a,0x8b,0x00,0x64,0x0a,0x8f,0x0a,0x8f,0x00,0x65,0x0a,0x93,0x0a,0x93,0x00,0x66,0x0a,0x97,0x0a,0x97,0x00,0x67,0x0a,0x9a,0x0a,0x9a,0x00,0x68,0x0a,0x9d,0x0a,0x9d,0x00,0x69,0x0a,0xa0,0x0a,0xa0,0x00,0x6a,0x0a,0xa3, +0x0a,0xa3,0x00,0x6b,0x0a,0xa6,0x0a,0xa6,0x00,0x6c,0x0a,0xa8,0x0a,0xa8,0x00,0x6d,0x0a,0xaa,0x0a,0xaa,0x00,0x6e,0x0a,0xac,0x0a,0xac,0x00,0x6f,0x0a,0xae,0x0a,0xae,0x00,0x70,0x0a,0xb0,0x0a,0xb0,0x00,0x71,0x0a,0xb6,0x0a,0xb6,0x00,0x72,0x0e,0x20,0x0e,0x20,0x00,0x73,0x0e,0x3f,0x0e,0x3f,0x00,0x74,0x0e,0x43,0x0e,0x43,0x00,0x75, +0x0e,0x47,0x0e,0x47,0x00,0x76,0x0e,0x4b,0x0e,0x4b,0x00,0x77,0x0e,0x4f,0x0e,0x4f,0x00,0x78,0x0f,0x16,0x0f,0x16,0x00,0x79,0x0f,0x1a,0x0f,0x1a,0x00,0x7a,0x0f,0x1e,0x0f,0x1e,0x00,0x7b,0x0f,0x24,0x0f,0x24,0x00,0x7c,0x0f,0x2c,0x0f,0x2c,0x00,0x7d,0x0f,0x30,0x0f,0x30,0x00,0x7e,0x0f,0x34,0x0f,0x34,0x00,0x7f,0x0f,0x40,0x0f,0x40, +0x00,0x80,0x0f,0x44,0x0f,0x44,0x00,0x81,0x0f,0x48,0x0f,0x48,0x00,0x82,0x0f,0x4c,0x0f,0x4c,0x00,0x83,0x13,0x02,0x13,0x02,0x00,0x84,0x13,0x04,0x13,0x04,0x00,0x85,0x13,0x08,0x13,0x08,0x00,0x86,0x13,0x0c,0x13,0x0c,0x00,0x87,0x13,0x10,0x13,0x10,0x00,0x88,0x13,0x14,0x13,0x14,0x00,0x89,0x13,0x18,0x13,0x18,0x00,0x8a,0x13,0x1c, +0x13,0x1c,0x00,0x8b,0x13,0x20,0x13,0x20,0x00,0x8c,0x14,0x04,0x14,0x04,0x00,0x8d,0x14,0x0b,0x14,0x0b,0x00,0x8e,0x14,0x0f,0x14,0x0f,0x00,0x8f,0x14,0x53,0x14,0x57,0x00,0x90,0x14,0x59,0x14,0x5c,0x00,0x95,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x46,0x00,0x01,0x00,0x00,0x00,0x6d,0x00,0x02,0x00,0x08,0x08,0xee, +0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0,0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, +0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x02,0x00,0x01,0x0f,0x8c,0x0f,0x97,0x00,0x00,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca, +0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83,0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x01,0x00,0x62,0x00,0x03,0x00,0x0c,0x00,0x2a,0x00,0x44,0x00,0x02,0x00,0x06,0x00,0x14,0x14,0x97,0x00,0x06,0x09,0x3f,0x09,0x3f, +0x09,0x32,0x09,0x73,0x08,0xf3,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x12,0x09,0x71,0x00,0x05,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x09,0x71,0x00,0x03,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x06,0x00,0x14,0x0a,0x63,0x00,0x06,0x08,0xee,0x09,0x3f,0x09,0x32,0x09,0x73,0x08,0xf3,0x0a,0x63, +0x00,0x04,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x01,0x00,0x34,0x00,0x03,0x00,0x0c,0x00,0x1a,0x00,0x26,0x00,0x01,0x00,0x04,0x14,0x97,0x00,0x04,0x09,0x3f,0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x09,0x71,0x00,0x03, +0x09,0x3f,0x09,0x72,0x00,0x01,0x00,0x04,0x0a,0x63,0x00,0x04,0x08,0xee,0x09,0x3f,0x09,0x72,0x00,0x02,0x00,0x03,0x08,0xe8,0x08,0xe8,0x00,0x00,0x08,0xee,0x08,0xee,0x00,0x01,0x09,0x0d,0x09,0x0d,0x00,0x02,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x6f,0x00,0x02,0x00,0x1b,0x08,0xd4, +0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe,0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c, +0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10,0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef, +0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47,0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x15,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b, +0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0e,0x0a,0x0e,0x00,0x07,0x0a,0x57,0x0a,0x57,0x00,0x08,0x0a,0xb5,0x0a,0xb5,0x00,0x09,0x0b,0x0c,0x0b,0x0d,0x00,0x0a,0x0b,0x0f,0x0b,0x17,0x00,0x0c,0x0e,0x48,0x0e,0x48,0x00,0x15,0x0e,0x4c,0x0e,0x4c,0x00,0x16,0x0e,0x50,0x0e,0x50,0x00,0x17,0x0f,0x02, +0x0f,0x02,0x00,0x18,0x0f,0x23,0x0f,0x23,0x00,0x19,0x0f,0x2d,0x0f,0x2d,0x00,0x1a,0x0f,0x31,0x0f,0x31,0x00,0x1b,0x0f,0x35,0x0f,0x35,0x00,0x1c,0x14,0x7d,0x14,0x7e,0x00,0x1d,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x1c,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x00,0x01,0x0f,0x6c,0x0f,0x8b,0x00,0x00,0x00,0x02, +0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06,0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5, +0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23,0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f, +0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x03,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x71,0x00,0x02,0x00,0x7d,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18,0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08, +0x09,0x2e,0x09,0x2e,0x00,0x09,0x09,0x31,0x09,0x31,0x00,0x0a,0x09,0x41,0x09,0x41,0x00,0x0b,0x09,0x44,0x09,0x45,0x00,0x0c,0x09,0x4c,0x09,0x4c,0x00,0x0e,0x09,0x5e,0x09,0x5e,0x00,0x0f,0x09,0x61,0x09,0x62,0x00,0x10,0x09,0x77,0x09,0x77,0x00,0x12,0x09,0x7f,0x09,0x7f,0x00,0x13,0x09,0x84,0x09,0x85,0x00,0x14,0x09,0x88,0x09,0x89, +0x00,0x16,0x09,0x8f,0x09,0x8f,0x00,0x18,0x09,0x91,0x09,0x91,0x00,0x19,0x09,0x97,0x09,0x97,0x00,0x1a,0x09,0xa0,0x09,0xa0,0x00,0x1b,0x09,0xa3,0x09,0xa3,0x00,0x1c,0x09,0xa9,0x09,0xac,0x00,0x1d,0x09,0xae,0x09,0xae,0x00,0x21,0x09,0xb2,0x09,0xb8,0x00,0x22,0x09,0xba,0x09,0xba,0x00,0x29,0x09,0xbc,0x09,0xbc,0x00,0x2a,0x09,0xbe, +0x09,0xbe,0x00,0x2b,0x09,0xc0,0x09,0xc0,0x00,0x2c,0x09,0xca,0x09,0xcb,0x00,0x2d,0x09,0xcd,0x09,0xce,0x00,0x2f,0x09,0xd0,0x09,0xd1,0x00,0x31,0x09,0xe0,0x09,0xe0,0x00,0x33,0x09,0xe6,0x09,0xe6,0x00,0x34,0x09,0xe8,0x09,0xe8,0x00,0x35,0x09,0xf2,0x09,0xf2,0x00,0x36,0x09,0xf4,0x09,0xf4,0x00,0x37,0x09,0xf7,0x09,0xf7,0x00,0x38, +0x09,0xfc,0x0a,0x04,0x00,0x39,0x0a,0x0a,0x0a,0x0a,0x00,0x42,0x0a,0x1a,0x0a,0x1a,0x00,0x43,0x0a,0x21,0x0a,0x21,0x00,0x44,0x0a,0x23,0x0a,0x23,0x00,0x45,0x0a,0x25,0x0a,0x25,0x00,0x46,0x0a,0x27,0x0a,0x27,0x00,0x47,0x0a,0x2a,0x0a,0x2b,0x00,0x48,0x0a,0x50,0x0a,0x50,0x00,0x4a,0x0a,0x56,0x0a,0x57,0x00,0x4b,0x0a,0x5b,0x0a,0x5b, +0x00,0x4d,0x0a,0x62,0x0a,0x62,0x00,0x4e,0x0a,0x6f,0x0a,0x6f,0x00,0x4f,0x0a,0x73,0x0a,0x73,0x00,0x50,0x0a,0x75,0x0a,0x75,0x00,0x51,0x0a,0x77,0x0a,0x77,0x00,0x52,0x0a,0x79,0x0a,0x79,0x00,0x53,0x0a,0x7b,0x0a,0x7b,0x00,0x54,0x0a,0x7d,0x0a,0x7d,0x00,0x55,0x0a,0x85,0x0a,0x88,0x00,0x56,0x0a,0x98,0x0a,0x99,0x00,0x5a,0x0a,0x9b, +0x0a,0x9c,0x00,0x5c,0x0a,0xa4,0x0a,0xa5,0x00,0x5e,0x0a,0xa9,0x0a,0xa9,0x00,0x60,0x0a,0xab,0x0a,0xab,0x00,0x61,0x0a,0xb4,0x0a,0xb5,0x00,0x62,0x0b,0x0c,0x0b,0x18,0x00,0x64,0x0e,0x1e,0x0e,0x1e,0x00,0x71,0x0e,0x22,0x0e,0x23,0x00,0x72,0x0e,0x27,0x0e,0x27,0x00,0x74,0x0e,0x2c,0x0e,0x2c,0x00,0x75,0x0e,0x45,0x0e,0x46,0x00,0x76, +0x0e,0x49,0x0e,0x4a,0x00,0x78,0x0e,0x4d,0x0e,0x4e,0x00,0x7a,0x0e,0x51,0x0e,0x52,0x00,0x7c,0x0e,0x61,0x0e,0x61,0x00,0x7e,0x0e,0x6b,0x0e,0x6c,0x00,0x7f,0x0e,0x74,0x0e,0x75,0x00,0x81,0x0e,0x7d,0x0e,0x7d,0x00,0x83,0x0e,0x7f,0x0e,0x7f,0x00,0x84,0x0e,0x83,0x0e,0x83,0x00,0x85,0x0e,0x87,0x0e,0x87,0x00,0x86,0x0e,0x8a,0x0e,0x8b, +0x00,0x87,0x0e,0x8d,0x0e,0x8e,0x00,0x89,0x0e,0x90,0x0e,0x92,0x00,0x8b,0x0e,0x94,0x0e,0x94,0x00,0x8e,0x0e,0x99,0x0e,0x99,0x00,0x8f,0x0e,0x9b,0x0e,0x9b,0x00,0x90,0x0e,0x9d,0x0e,0x9d,0x00,0x91,0x0e,0x9f,0x0e,0x9f,0x00,0x92,0x0e,0xbc,0x0e,0xbc,0x00,0x93,0x0e,0xc4,0x0e,0xc4,0x00,0x94,0x0e,0xc6,0x0e,0xc6,0x00,0x95,0x0e,0xce, +0x0e,0xce,0x00,0x96,0x0e,0xd4,0x0e,0xd4,0x00,0x97,0x0e,0xd8,0x0e,0xd9,0x00,0x98,0x0e,0xdc,0x0e,0xe4,0x00,0x9a,0x0e,0xe6,0x0e,0xea,0x00,0xa3,0x0e,0xed,0x0e,0xed,0x00,0xa8,0x0e,0xef,0x0e,0xef,0x00,0xa9,0x0e,0xf1,0x0e,0xf1,0x00,0xaa,0x0e,0xf3,0x0e,0xf3,0x00,0xab,0x0e,0xf5,0x0e,0xf5,0x00,0xac,0x0e,0xf7,0x0e,0xf7,0x00,0xad, +0x0e,0xf9,0x0e,0xf9,0x00,0xae,0x0e,0xfb,0x0e,0xfb,0x00,0xaf,0x0e,0xff,0x0f,0x02,0x00,0xb0,0x0f,0x0d,0x0f,0x0d,0x00,0xb4,0x0f,0x0f,0x0f,0x0f,0x00,0xb5,0x0f,0x18,0x0f,0x19,0x00,0xb6,0x0f,0x1c,0x0f,0x1d,0x00,0xb8,0x0f,0x22,0x0f,0x23,0x00,0xba,0x0f,0x2e,0x0f,0x2f,0x00,0xbc,0x0f,0x32,0x0f,0x33,0x00,0xbe,0x0f,0x36,0x0f,0x3b, +0x00,0xc0,0x0f,0x42,0x0f,0x43,0x00,0xc6,0x0f,0x64,0x0f,0x64,0x00,0xc8,0x0f,0x68,0x0f,0x68,0x00,0xc9,0x0f,0x98,0x0f,0xa6,0x00,0xca,0x13,0x2c,0x13,0x2c,0x00,0xd9,0x13,0x2f,0x13,0x2f,0x00,0xda,0x13,0x33,0x13,0x35,0x00,0xdb,0x13,0x38,0x13,0x38,0x00,0xde,0x13,0x3c,0x13,0x3c,0x00,0xdf,0x13,0x3f,0x13,0x40,0x00,0xe0,0x14,0x62, +0x14,0x62,0x00,0xe2,0x14,0x6c,0x14,0x6c,0x00,0xe3,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x03,0x00,0x02,0x00,0x28,0x04,0xfa,0x00,0x01,0x07,0x86,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x03,0x00,0x02,0x00,0x14, +0x07,0x8e,0x00,0x01,0x07,0x72,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x72,0x00,0x02,0x00,0xcd,0x08,0xcb,0x08,0xce,0x00,0x00,0x08,0xd0,0x08,0xd0,0x00,0x04,0x08,0xd2,0x08,0xd2,0x00,0x05,0x08,0xd4,0x08,0xd6,0x00,0x06,0x08,0xe1,0x08,0xe3,0x00,0x09,0x08,0xe5,0x08,0xe6,0x00,0x0c,0x08,0xe8,0x08,0xe9,0x00,0x0e,0x08,0xeb,0x08,0xf0, +0x00,0x10,0x08,0xf4,0x08,0xf4,0x00,0x16,0x08,0xf9,0x08,0xfb,0x00,0x17,0x08,0xff,0x09,0x00,0x00,0x1a,0x09,0x21,0x09,0x21,0x00,0x1c,0x09,0x34,0x09,0x35,0x00,0x1d,0x09,0x3b,0x09,0x3d,0x00,0x1f,0x09,0x3f,0x09,0x3f,0x00,0x22,0x09,0x41,0x09,0x41,0x00,0x23,0x09,0x44,0x09,0x44,0x00,0x24,0x09,0x47,0x09,0x47,0x00,0x25,0x09,0x49, +0x09,0x49,0x00,0x26,0x09,0x4c,0x09,0x4c,0x00,0x27,0x09,0x5c,0x09,0x5c,0x00,0x28,0x09,0x61,0x09,0x62,0x00,0x29,0x09,0x6d,0x09,0x6e,0x00,0x2b,0x09,0x8d,0x09,0x8d,0x00,0x2d,0x09,0x8f,0x09,0x8f,0x00,0x2e,0x09,0x91,0x09,0x91,0x00,0x2f,0x09,0x93,0x09,0x93,0x00,0x30,0x09,0x95,0x09,0x95,0x00,0x31,0x09,0x97,0x09,0x97,0x00,0x32, +0x09,0x9a,0x09,0x9a,0x00,0x33,0x09,0x9d,0x09,0x9d,0x00,0x34,0x09,0xa0,0x09,0xa0,0x00,0x35,0x09,0xa3,0x09,0xa3,0x00,0x36,0x09,0xa6,0x09,0xa6,0x00,0x37,0x09,0xa9,0x09,0xa9,0x00,0x38,0x09,0xba,0x09,0xba,0x00,0x39,0x09,0xbc,0x09,0xbc,0x00,0x3a,0x09,0xbe,0x09,0xbe,0x00,0x3b,0x09,0xc0,0x09,0xc0,0x00,0x3c,0x09,0xc2,0x09,0xc2, +0x00,0x3d,0x09,0xc6,0x09,0xc7,0x00,0x3e,0x09,0xca,0x09,0xcb,0x00,0x40,0x09,0xcd,0x09,0xce,0x00,0x42,0x09,0xd0,0x09,0xd1,0x00,0x44,0x09,0xd3,0x09,0xd4,0x00,0x46,0x09,0xd8,0x09,0xd8,0x00,0x48,0x09,0xda,0x09,0xda,0x00,0x49,0x09,0xdc,0x09,0xdc,0x00,0x4a,0x09,0xde,0x09,0xde,0x00,0x4b,0x09,0xe0,0x09,0xe0,0x00,0x4c,0x09,0xe2, +0x09,0xe2,0x00,0x4d,0x09,0xe4,0x09,0xe4,0x00,0x4e,0x09,0xe6,0x09,0xe6,0x00,0x4f,0x09,0xe8,0x09,0xe8,0x00,0x50,0x09,0xea,0x09,0xea,0x00,0x51,0x09,0xec,0x09,0xec,0x00,0x52,0x09,0xee,0x09,0xee,0x00,0x53,0x09,0xf0,0x09,0xf0,0x00,0x54,0x09,0xf2,0x09,0xf2,0x00,0x55,0x09,0xf4,0x09,0xf4,0x00,0x56,0x09,0xf7,0x09,0xf7,0x00,0x57, +0x09,0xf9,0x09,0xf9,0x00,0x58,0x09,0xfc,0x09,0xfc,0x00,0x59,0x0a,0x09,0x0a,0x09,0x00,0x5a,0x0a,0x10,0x0a,0x10,0x00,0x5b,0x0a,0x25,0x0a,0x25,0x00,0x5c,0x0a,0x27,0x0a,0x27,0x00,0x5d,0x0a,0x2a,0x0a,0x2b,0x00,0x5e,0x0a,0x32,0x0a,0x3b,0x00,0x60,0x0a,0x41,0x0a,0x42,0x00,0x6a,0x0a,0x5a,0x0a,0x5b,0x00,0x6c,0x0a,0x5f,0x0a,0x62, +0x00,0x6e,0x0a,0x73,0x0a,0x73,0x00,0x72,0x0a,0x75,0x0a,0x75,0x00,0x73,0x0a,0x77,0x0a,0x77,0x00,0x74,0x0a,0x79,0x0a,0x79,0x00,0x75,0x0a,0x7b,0x0a,0x7b,0x00,0x76,0x0a,0x7d,0x0a,0x7d,0x00,0x77,0x0a,0x7f,0x0a,0x7f,0x00,0x78,0x0a,0x82,0x0a,0x82,0x00,0x79,0x0a,0x85,0x0a,0x85,0x00,0x7a,0x0a,0x8a,0x0a,0x8a,0x00,0x7b,0x0a,0x8d, +0x0a,0x8e,0x00,0x7c,0x0a,0x91,0x0a,0x92,0x00,0x7e,0x0a,0x95,0x0a,0x96,0x00,0x80,0x0a,0x98,0x0a,0x99,0x00,0x82,0x0a,0x9b,0x0a,0x9c,0x00,0x84,0x0a,0x9e,0x0a,0x9f,0x00,0x86,0x0a,0xa1,0x0a,0xa2,0x00,0x88,0x0a,0xa4,0x0a,0xa5,0x00,0x8a,0x0a,0xa7,0x0a,0xa7,0x00,0x8c,0x0a,0xa9,0x0a,0xa9,0x00,0x8d,0x0a,0xab,0x0a,0xab,0x00,0x8e, +0x0a,0xad,0x0a,0xad,0x00,0x8f,0x0a,0xaf,0x0a,0xaf,0x00,0x90,0x0a,0xb2,0x0a,0xb3,0x00,0x91,0x0a,0xb7,0x0a,0xb7,0x00,0x93,0x0a,0xb9,0x0a,0xba,0x00,0x94,0x0e,0x22,0x0e,0x23,0x00,0x96,0x0e,0x25,0x0e,0x25,0x00,0x98,0x0e,0x27,0x0e,0x27,0x00,0x99,0x0e,0x29,0x0e,0x29,0x00,0x9a,0x0e,0x2b,0x0e,0x2e,0x00,0x9b,0x0e,0x32,0x0e,0x32, +0x00,0x9f,0x0e,0x34,0x0e,0x34,0x00,0xa0,0x0e,0x36,0x0e,0x36,0x00,0xa1,0x0e,0x38,0x0e,0x38,0x00,0xa2,0x0e,0x3a,0x0e,0x3b,0x00,0xa3,0x0e,0x3d,0x0e,0x3e,0x00,0xa5,0x0e,0x41,0x0e,0x42,0x00,0xa7,0x0e,0x45,0x0e,0x46,0x00,0xa9,0x0e,0x49,0x0e,0x4a,0x00,0xab,0x0e,0x4d,0x0e,0x4e,0x00,0xad,0x0e,0x51,0x0e,0x52,0x00,0xaf,0x0e,0x56, +0x0e,0x56,0x00,0xb1,0x0e,0x58,0x0e,0x58,0x00,0xb2,0x0e,0x5a,0x0e,0x5b,0x00,0xb3,0x0e,0x5d,0x0e,0x5d,0x00,0xb5,0x0e,0x5f,0x0e,0x61,0x00,0xb6,0x0e,0x6f,0x0e,0x6f,0x00,0xb9,0x0e,0x71,0x0e,0x72,0x00,0xba,0x0e,0x76,0x0e,0x77,0x00,0xbc,0x0e,0x79,0x0e,0x79,0x00,0xbe,0x0e,0x7b,0x0e,0x7b,0x00,0xbf,0x0e,0x7d,0x0e,0x7d,0x00,0xc0, +0x0e,0x7f,0x0e,0x7f,0x00,0xc1,0x0e,0x81,0x0e,0x81,0x00,0xc2,0x0e,0x83,0x0e,0x83,0x00,0xc3,0x0e,0x85,0x0e,0x85,0x00,0xc4,0x0e,0x87,0x0e,0x8e,0x00,0xc5,0x0e,0x99,0x0e,0x99,0x00,0xcd,0x0e,0x9b,0x0e,0x9b,0x00,0xce,0x0e,0x9d,0x0e,0x9d,0x00,0xcf,0x0e,0x9f,0x0e,0x9f,0x00,0xd0,0x0e,0xa1,0x0e,0xa1,0x00,0xd1,0x0e,0xa3,0x0e,0xa4, +0x00,0xd2,0x0e,0xac,0x0e,0xad,0x00,0xd4,0x0e,0xaf,0x0e,0xb0,0x00,0xd6,0x0e,0xb2,0x0e,0xb2,0x00,0xd8,0x0e,0xb4,0x0e,0xb4,0x00,0xd9,0x0e,0xb6,0x0e,0xb6,0x00,0xda,0x0e,0xb8,0x0e,0xb8,0x00,0xdb,0x0e,0xba,0x0e,0xba,0x00,0xdc,0x0e,0xbc,0x0e,0xbc,0x00,0xdd,0x0e,0xbe,0x0e,0xbe,0x00,0xde,0x0e,0xc0,0x0e,0xc0,0x00,0xdf,0x0e,0xc2, +0x0e,0xc2,0x00,0xe0,0x0e,0xc4,0x0e,0xc4,0x00,0xe1,0x0e,0xc6,0x0e,0xc6,0x00,0xe2,0x0e,0xc8,0x0e,0xc8,0x00,0xe3,0x0e,0xce,0x0e,0xce,0x00,0xe4,0x0e,0xd1,0x0e,0xd2,0x00,0xe5,0x0e,0xd4,0x0e,0xd4,0x00,0xe7,0x0e,0xd6,0x0e,0xd9,0x00,0xe8,0x0e,0xe4,0x0e,0xe5,0x00,0xec,0x0e,0xe7,0x0e,0xea,0x00,0xee,0x0e,0xed,0x0e,0xed,0x00,0xf2, +0x0e,0xef,0x0e,0xef,0x00,0xf3,0x0e,0xf1,0x0e,0xf1,0x00,0xf4,0x0e,0xf3,0x0e,0xf3,0x00,0xf5,0x0e,0xf5,0x0e,0xf5,0x00,0xf6,0x0e,0xf7,0x0e,0xf7,0x00,0xf7,0x0e,0xf9,0x0e,0xf9,0x00,0xf8,0x0e,0xfb,0x0e,0xfb,0x00,0xf9,0x0e,0xfd,0x0e,0xff,0x00,0xfa,0x0f,0x04,0x0f,0x04,0x00,0xfd,0x0f,0x0b,0x0f,0x0b,0x00,0xfe,0x0f,0x0d,0x0f,0x0d, +0x00,0xff,0x0f,0x0f,0x0f,0x0f,0x01,0x00,0x0f,0x11,0x0f,0x11,0x01,0x01,0x0f,0x13,0x0f,0x13,0x01,0x02,0x0f,0x15,0x0f,0x15,0x01,0x03,0x0f,0x18,0x0f,0x19,0x01,0x04,0x0f,0x1c,0x0f,0x1d,0x01,0x06,0x0f,0x20,0x0f,0x21,0x01,0x08,0x0f,0x26,0x0f,0x27,0x01,0x0a,0x0f,0x2e,0x0f,0x2f,0x01,0x0c,0x0f,0x32,0x0f,0x33,0x01,0x0e,0x0f,0x36, +0x0f,0x37,0x01,0x10,0x0f,0x42,0x0f,0x43,0x01,0x12,0x0f,0x46,0x0f,0x47,0x01,0x14,0x0f,0x4a,0x0f,0x4b,0x01,0x16,0x0f,0x4e,0x0f,0x4f,0x01,0x18,0x0f,0x6c,0x0f,0x6c,0x01,0x1a,0x0f,0x6e,0x0f,0x6e,0x01,0x1b,0x0f,0x70,0x0f,0x70,0x01,0x1c,0x0f,0x72,0x0f,0x72,0x01,0x1d,0x0f,0x74,0x0f,0x74,0x01,0x1e,0x0f,0x76,0x0f,0x76,0x01,0x1f, +0x0f,0x78,0x0f,0x78,0x01,0x20,0x0f,0x7a,0x0f,0x7a,0x01,0x21,0x0f,0x7c,0x0f,0x7c,0x01,0x22,0x0f,0x7e,0x0f,0x7e,0x01,0x23,0x0f,0x80,0x0f,0x80,0x01,0x24,0x0f,0x82,0x0f,0x82,0x01,0x25,0x0f,0x84,0x0f,0x84,0x01,0x26,0x0f,0x86,0x0f,0x86,0x01,0x27,0x0f,0x88,0x0f,0x88,0x01,0x28,0x0f,0x8a,0x0f,0x8a,0x01,0x29,0x0f,0x8c,0x0f,0x8c, +0x01,0x2a,0x0f,0x8e,0x0f,0x8e,0x01,0x2b,0x0f,0x90,0x0f,0x90,0x01,0x2c,0x0f,0x92,0x0f,0x92,0x01,0x2d,0x0f,0x94,0x0f,0x94,0x01,0x2e,0x0f,0x96,0x0f,0x96,0x01,0x2f,0x00,0x02,0x00,0x6c,0x08,0xca,0x08,0xcb,0x00,0x00,0x08,0xce,0x08,0xce,0x00,0x02,0x08,0xf4,0x08,0xf4,0x00,0x03,0x09,0x0a,0x09,0x0b,0x00,0x04,0x09,0x17,0x09,0x18, +0x00,0x06,0x09,0x29,0x09,0x29,0x00,0x08,0x09,0x41,0x09,0x41,0x00,0x09,0x09,0x44,0x09,0x45,0x00,0x0a,0x09,0x4c,0x09,0x4c,0x00,0x0c,0x09,0x5e,0x09,0x5e,0x00,0x0d,0x09,0x61,0x09,0x62,0x00,0x0e,0x09,0x77,0x09,0x77,0x00,0x10,0x09,0x7f,0x09,0x7f,0x00,0x11,0x09,0x84,0x09,0x85,0x00,0x12,0x09,0x88,0x09,0x89,0x00,0x14,0x09,0x8f, +0x09,0x8f,0x00,0x16,0x09,0x91,0x09,0x91,0x00,0x17,0x09,0x97,0x09,0x97,0x00,0x18,0x09,0xa0,0x09,0xa0,0x00,0x19,0x09,0xa3,0x09,0xa3,0x00,0x1a,0x09,0xa9,0x09,0xac,0x00,0x1b,0x09,0xae,0x09,0xae,0x00,0x1f,0x09,0xb2,0x09,0xb8,0x00,0x20,0x09,0xba,0x09,0xba,0x00,0x27,0x09,0xbc,0x09,0xbc,0x00,0x28,0x09,0xbe,0x09,0xbe,0x00,0x29, +0x09,0xc0,0x09,0xc0,0x00,0x2a,0x09,0xca,0x09,0xcb,0x00,0x2b,0x09,0xcd,0x09,0xce,0x00,0x2d,0x09,0xd0,0x09,0xd1,0x00,0x2f,0x09,0xe0,0x09,0xe0,0x00,0x31,0x09,0xe6,0x09,0xe6,0x00,0x32,0x09,0xe8,0x09,0xe8,0x00,0x33,0x09,0xf2,0x09,0xf2,0x00,0x34,0x09,0xf4,0x09,0xf4,0x00,0x35,0x09,0xf7,0x09,0xf7,0x00,0x36,0x09,0xfc,0x0a,0x04, +0x00,0x37,0x0a,0x0a,0x0a,0x0a,0x00,0x40,0x0a,0x25,0x0a,0x25,0x00,0x41,0x0a,0x27,0x0a,0x27,0x00,0x42,0x0a,0x2a,0x0a,0x2b,0x00,0x43,0x0a,0x56,0x0a,0x57,0x00,0x45,0x0a,0x5b,0x0a,0x5b,0x00,0x47,0x0a,0x62,0x0a,0x62,0x00,0x48,0x0a,0x73,0x0a,0x73,0x00,0x49,0x0a,0x75,0x0a,0x75,0x00,0x4a,0x0a,0x77,0x0a,0x77,0x00,0x4b,0x0a,0x79, +0x0a,0x79,0x00,0x4c,0x0a,0x7b,0x0a,0x7b,0x00,0x4d,0x0a,0x7d,0x0a,0x7d,0x00,0x4e,0x0a,0x85,0x0a,0x88,0x00,0x4f,0x0a,0x98,0x0a,0x99,0x00,0x53,0x0a,0x9b,0x0a,0x9c,0x00,0x55,0x0a,0xa4,0x0a,0xa5,0x00,0x57,0x0a,0xa9,0x0a,0xa9,0x00,0x59,0x0a,0xab,0x0a,0xab,0x00,0x5a,0x0a,0xb4,0x0a,0xb5,0x00,0x5b,0x0b,0x0c,0x0b,0x18,0x00,0x5d, +0x0e,0x22,0x0e,0x23,0x00,0x6a,0x0e,0x27,0x0e,0x27,0x00,0x6c,0x0e,0x2c,0x0e,0x2c,0x00,0x6d,0x0e,0x45,0x0e,0x46,0x00,0x6e,0x0e,0x49,0x0e,0x4a,0x00,0x70,0x0e,0x4d,0x0e,0x4e,0x00,0x72,0x0e,0x51,0x0e,0x52,0x00,0x74,0x0e,0x61,0x0e,0x61,0x00,0x76,0x0e,0x74,0x0e,0x75,0x00,0x77,0x0e,0x7d,0x0e,0x7d,0x00,0x79,0x0e,0x7f,0x0e,0x7f, +0x00,0x7a,0x0e,0x83,0x0e,0x83,0x00,0x7b,0x0e,0x87,0x0e,0x87,0x00,0x7c,0x0e,0x8a,0x0e,0x8b,0x00,0x7d,0x0e,0x8d,0x0e,0x8e,0x00,0x7f,0x0e,0x90,0x0e,0x92,0x00,0x81,0x0e,0x94,0x0e,0x94,0x00,0x84,0x0e,0x99,0x0e,0x99,0x00,0x85,0x0e,0x9b,0x0e,0x9b,0x00,0x86,0x0e,0x9d,0x0e,0x9d,0x00,0x87,0x0e,0x9f,0x0e,0x9f,0x00,0x88,0x0e,0xbc, +0x0e,0xbc,0x00,0x89,0x0e,0xc4,0x0e,0xc4,0x00,0x8a,0x0e,0xc6,0x0e,0xc6,0x00,0x8b,0x0e,0xce,0x0e,0xce,0x00,0x8c,0x0e,0xd4,0x0e,0xd4,0x00,0x8d,0x0e,0xd8,0x0e,0xd9,0x00,0x8e,0x0e,0xdc,0x0e,0xe4,0x00,0x90,0x0e,0xe6,0x0e,0xea,0x00,0x99,0x0e,0xed,0x0e,0xed,0x00,0x9e,0x0e,0xef,0x0e,0xef,0x00,0x9f,0x0e,0xf1,0x0e,0xf1,0x00,0xa0, +0x0e,0xf3,0x0e,0xf3,0x00,0xa1,0x0e,0xf5,0x0e,0xf5,0x00,0xa2,0x0e,0xf7,0x0e,0xf7,0x00,0xa3,0x0e,0xf9,0x0e,0xf9,0x00,0xa4,0x0e,0xfb,0x0e,0xfb,0x00,0xa5,0x0e,0xff,0x0f,0x02,0x00,0xa6,0x0f,0x0d,0x0f,0x0d,0x00,0xaa,0x0f,0x0f,0x0f,0x0f,0x00,0xab,0x0f,0x18,0x0f,0x19,0x00,0xac,0x0f,0x1c,0x0f,0x1d,0x00,0xae,0x0f,0x22,0x0f,0x23, +0x00,0xb0,0x0f,0x2e,0x0f,0x2f,0x00,0xb2,0x0f,0x32,0x0f,0x33,0x00,0xb4,0x0f,0x36,0x0f,0x3b,0x00,0xb6,0x0f,0x42,0x0f,0x43,0x00,0xbc,0x0f,0x64,0x0f,0x64,0x00,0xbe,0x0f,0x68,0x0f,0x68,0x00,0xbf,0x0f,0x98,0x0f,0xa6,0x00,0xc0,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d, +0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x13,0x09,0x2e,0x09,0x2e,0x00,0x00,0x09,0x31,0x09,0x31,0x00,0x01,0x09,0x77,0x09,0x77,0x00,0x02,0x09,0x7f,0x09,0x7f,0x00,0x03,0x0a,0x1a,0x0a,0x1a,0x00,0x04,0x0a,0x21,0x0a,0x21,0x00,0x05,0x0a,0x23,0x0a,0x23,0x00,0x06,0x0a,0x50,0x0a,0x50,0x00,0x07,0x0a,0x6f,0x0a,0x6f, +0x00,0x08,0x0e,0x1e,0x0e,0x1e,0x00,0x09,0x0e,0x6b,0x0e,0x6c,0x00,0x0a,0x13,0x2c,0x13,0x2c,0x00,0x0c,0x13,0x2f,0x13,0x2f,0x00,0x0d,0x13,0x33,0x13,0x35,0x00,0x0e,0x13,0x38,0x13,0x38,0x00,0x11,0x13,0x3c,0x13,0x3c,0x00,0x12,0x13,0x3f,0x13,0x40,0x00,0x13,0x14,0x62,0x14,0x62,0x00,0x15,0x14,0x6c,0x14,0x6c,0x00,0x16,0x00,0x03, +0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x28,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x02,0x00,0x03,0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x11,0x02,0x44,0x02,0x44,0x00,0x00,0x02,0x46,0x02,0x47,0x00,0x01,0x04,0x62,0x04,0x73,0x00,0x03,0x04,0x79,0x04,0x79, +0x00,0x15,0x04,0x9b,0x04,0x9d,0x00,0x16,0x04,0xa0,0x04,0xa2,0x00,0x19,0x04,0xa4,0x04,0xa4,0x00,0x1c,0x04,0xa8,0x04,0xaa,0x00,0x1d,0x05,0xfd,0x06,0x00,0x00,0x20,0x06,0x66,0x06,0x72,0x00,0x24,0x07,0x55,0x07,0x57,0x00,0x31,0x07,0x5c,0x07,0x5c,0x00,0x34,0x07,0xef,0x07,0xef,0x00,0x35,0x08,0x4c,0x08,0x4d,0x00,0x36,0x08,0x4f, +0x08,0x4f,0x00,0x38,0x0a,0xdb,0x0a,0xe0,0x00,0x39,0x0a,0xe2,0x0a,0xe2,0x00,0x3f,0x00,0x01,0x05,0x6a,0x00,0x05,0x00,0x10,0x01,0x22,0x02,0x34,0x03,0x46,0x04,0x58,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x6a,0x00,0x72,0x00,0x7a,0x00,0x82,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8, +0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xae,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xaf,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xb0,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xb1,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xb2,0x00,0x03,0x06,0xa3, +0x06,0xa2,0x06,0xb3,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xb4,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xb5,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xb6,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xb7,0x00,0x02,0x06,0xa3,0x06,0xb8,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xb9,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xba,0x00,0x03,0x06,0xa4,0x06,0xa4, +0x06,0xbb,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xbc,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xbd,0x00,0x02,0x06,0xa4,0x06,0xbe,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xbf,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xc0,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xc1,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xc2,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xc3, +0x00,0x02,0x06,0xa5,0x06,0xc4,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xc5,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xc6,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xc7,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xc8,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xc9,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62, +0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x98,0x00,0xa0,0x00,0xa8,0x00,0xb0,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xca,0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xcb,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xcc,0x00,0x03, +0x06,0xa2,0x06,0xa4,0x06,0xcd,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xce,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xcf,0x00,0x02,0x06,0xa2,0x06,0xd0,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xd1,0x00,0x03,0x06,0xa3,0x06,0xa4,0x06,0xd2,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xd3,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xd4,0x00,0x03,0x06,0xa4, +0x06,0xa2,0x06,0xd5,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xd6,0x00,0x03,0x06,0xa4,0x06,0xa4,0x06,0xd7,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xd8,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xd9,0x00,0x02,0x06,0xa4,0x06,0xda,0x00,0x03,0x06,0xa5,0x06,0xa2,0x06,0xdb,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xdc,0x00,0x03,0x06,0xa5,0x06,0xa4, +0x06,0xdd,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xde,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xdf,0x00,0x02,0x06,0xa5,0x06,0xe0,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xe1,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xe2,0x00,0x03,0x06,0xa6,0x06,0xa4,0x06,0xe3,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xe4,0x00,0x03,0x06,0xa6,0x06,0xa6,0x06,0xe5, +0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc6,0x00,0xce,0x00,0xd6,0x00,0xde,0x00,0xe4,0x00,0xec,0x00,0xf4,0x00,0xfc,0x01,0x04,0x01,0x0c,0x06,0xe6, +0x00,0x03,0x06,0xa2,0x06,0xa2,0x06,0xe7,0x00,0x03,0x06,0xa2,0x06,0xa3,0x06,0xe8,0x00,0x03,0x06,0xa2,0x06,0xa4,0x06,0xe9,0x00,0x03,0x06,0xa2,0x06,0xa5,0x06,0xea,0x00,0x03,0x06,0xa2,0x06,0xa6,0x06,0xeb,0x00,0x02,0x06,0xa2,0x06,0xeb,0x00,0x03,0x06,0xa3,0x06,0xa2,0x06,0xec,0x00,0x03,0x06,0xa3,0x06,0xa3,0x06,0xed,0x00,0x03, +0x06,0xa3,0x06,0xa4,0x06,0xee,0x00,0x03,0x06,0xa3,0x06,0xa5,0x06,0xef,0x00,0x03,0x06,0xa3,0x06,0xa6,0x06,0xf0,0x00,0x02,0x06,0xa3,0x06,0xf1,0x00,0x03,0x06,0xa4,0x06,0xa2,0x06,0xf2,0x00,0x03,0x06,0xa4,0x06,0xa3,0x06,0xf3,0x00,0x03,0x06,0xa4,0x06,0xa5,0x06,0xf4,0x00,0x03,0x06,0xa4,0x06,0xa6,0x06,0xf5,0x00,0x03,0x06,0xa5, +0x06,0xa2,0x06,0xf6,0x00,0x03,0x06,0xa5,0x06,0xa3,0x06,0xf7,0x00,0x03,0x06,0xa5,0x06,0xa4,0x06,0xf8,0x00,0x03,0x06,0xa5,0x06,0xa5,0x06,0xf9,0x00,0x03,0x06,0xa5,0x06,0xa6,0x06,0xfa,0x00,0x02,0x06,0xa5,0x06,0xfb,0x00,0x03,0x06,0xa6,0x06,0xa2,0x06,0xfc,0x00,0x03,0x06,0xa6,0x06,0xa3,0x06,0xfd,0x00,0x03,0x06,0xa6,0x06,0xa4, +0x06,0xfe,0x00,0x03,0x06,0xa6,0x06,0xa5,0x06,0xff,0x00,0x03,0x06,0xa6,0x06,0xa6,0x07,0x00,0x00,0x02,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc, +0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xea,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x01,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x02,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x03,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x04,0x00,0x03,0x06,0xa2,0x06,0xa5,0x07,0x05,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x06,0x00,0x02,0x06,0xa2,0x07,0x07, +0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x08,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x09,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x0a,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x0b,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x0c,0x00,0x02,0x06,0xa3,0x07,0x0d,0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x0e,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x0f,0x00,0x03, +0x06,0xa4,0x06,0xa4,0x07,0x10,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x11,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x12,0x00,0x02,0x06,0xa4,0x07,0x13,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x14,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x15,0x00,0x03,0x06,0xa5,0x06,0xa4,0x07,0x16,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x1c,0x00,0x02,0x06,0xa6, +0x07,0x17,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x18,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x19,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x1a,0x00,0x03,0x06,0xa6,0x06,0xa5,0x07,0x1b,0x00,0x03,0x06,0xa6,0x06,0xa6,0x00,0x1c,0x00,0x3a,0x00,0x42,0x00,0x4a,0x00,0x52,0x00,0x5a,0x00,0x62,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88, +0x00,0x90,0x00,0x96,0x00,0x9e,0x00,0xa6,0x00,0xae,0x00,0xb6,0x00,0xbe,0x00,0xc4,0x00,0xcc,0x00,0xd4,0x00,0xdc,0x00,0xe4,0x00,0xec,0x00,0xf2,0x00,0xfa,0x01,0x02,0x01,0x0a,0x07,0x1d,0x00,0x03,0x06,0xa2,0x06,0xa2,0x07,0x1e,0x00,0x03,0x06,0xa2,0x06,0xa3,0x07,0x1f,0x00,0x03,0x06,0xa2,0x06,0xa4,0x07,0x20,0x00,0x03,0x06,0xa2, +0x06,0xa5,0x07,0x21,0x00,0x03,0x06,0xa2,0x06,0xa6,0x07,0x22,0x00,0x02,0x06,0xa2,0x07,0x23,0x00,0x03,0x06,0xa3,0x06,0xa2,0x07,0x24,0x00,0x03,0x06,0xa3,0x06,0xa3,0x07,0x25,0x00,0x03,0x06,0xa3,0x06,0xa4,0x07,0x26,0x00,0x03,0x06,0xa3,0x06,0xa5,0x07,0x27,0x00,0x03,0x06,0xa3,0x06,0xa6,0x07,0x28,0x00,0x02,0x06,0xa3,0x07,0x29, +0x00,0x03,0x06,0xa4,0x06,0xa2,0x07,0x2a,0x00,0x03,0x06,0xa4,0x06,0xa3,0x07,0x2b,0x00,0x03,0x06,0xa4,0x06,0xa4,0x07,0x2c,0x00,0x03,0x06,0xa4,0x06,0xa5,0x07,0x2d,0x00,0x03,0x06,0xa4,0x06,0xa6,0x07,0x2e,0x00,0x02,0x06,0xa4,0x07,0x2f,0x00,0x03,0x06,0xa5,0x06,0xa2,0x07,0x30,0x00,0x03,0x06,0xa5,0x06,0xa3,0x07,0x31,0x00,0x03, +0x06,0xa5,0x06,0xa4,0x07,0x32,0x00,0x03,0x06,0xa5,0x06,0xa5,0x07,0x33,0x00,0x03,0x06,0xa5,0x06,0xa6,0x07,0x34,0x00,0x02,0x06,0xa5,0x07,0x35,0x00,0x03,0x06,0xa6,0x06,0xa2,0x07,0x36,0x00,0x03,0x06,0xa6,0x06,0xa3,0x07,0x37,0x00,0x03,0x06,0xa6,0x06,0xa4,0x07,0x38,0x00,0x03,0x06,0xa6,0x06,0xa5,0x00,0x02,0x00,0x01,0x06,0xa2, +0x06,0xa6,0x00,0x00,0x00,0x01,0x01,0x92,0x00,0x03,0x00,0x0c,0x00,0x6e,0x01,0x00,0x00,0x08,0x00,0x12,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x08,0x62,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x63,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x64,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46, +0x08,0x65,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x66,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x67,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x68,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x69,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c, +0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x6a,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x6b,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x6c,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x6d,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x6e,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x6f, +0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x70,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x71,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7a,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7b,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x47,0x08,0x7c,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x7d,0x00,0x04,0x04,0x68, +0x04,0x66,0x02,0x47,0x00,0x0c,0x00,0x1a,0x00,0x24,0x00,0x2e,0x00,0x38,0x00,0x42,0x00,0x4c,0x00,0x56,0x00,0x60,0x00,0x6a,0x00,0x74,0x00,0x7e,0x00,0x88,0x08,0x72,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x46,0x08,0x73,0x00,0x04,0x04,0x64,0x04,0x72,0x02,0x47,0x08,0x74,0x00,0x04,0x04,0x64,0x04,0x73,0x02,0x46,0x08,0x75,0x00,0x04, +0x04,0x64,0x04,0x73,0x02,0x47,0x08,0x76,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x46,0x08,0x77,0x00,0x04,0x04,0x66,0x04,0x72,0x02,0x47,0x08,0x78,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x46,0x08,0x79,0x00,0x04,0x04,0x66,0x04,0x73,0x02,0x47,0x08,0x7e,0x00,0x04,0x04,0x68,0x04,0x64,0x02,0x46,0x08,0x7f,0x00,0x04,0x04,0x68,0x04,0x64, +0x02,0x47,0x08,0x80,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x46,0x08,0x81,0x00,0x04,0x04,0x68,0x04,0x66,0x02,0x47,0x00,0x02,0x00,0x03,0x01,0x2f,0x01,0x2f,0x00,0x00,0x01,0xc9,0x01,0xc9,0x00,0x01,0x01,0xd2,0x01,0xd2,0x00,0x02,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0xa5,0x08,0xa6,0x08,0xa7,0x08,0xa8,0x08,0xa9,0x08,0xaa,0x08,0xab, +0x08,0xac,0x08,0xad,0x08,0xae,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x0c,0x08,0x99,0x08,0x98,0x08,0x96,0x08,0x97,0x08,0x9a,0x08,0x9b,0x08,0x9c,0x08,0x9d,0x08,0x9e,0x08,0x9f,0x08,0x95,0x01,0x37,0x00,0x02,0x00,0x03,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x4c,0x00,0x4c,0x00,0x0a,0x00,0x51, +0x00,0x51,0x00,0x0b,0x00,0x02,0x00,0x64,0x00,0x2f,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6, +0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5,0x0d,0xb6,0x0d,0xb7,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x01,0xdb,0x02,0x06,0x00,0x00,0x02,0x33,0x02,0x33,0x00,0x2c,0x02,0xb5,0x02,0xb6,0x00,0x2d,0x00,0x02, +0x00,0x64,0x00,0x2f,0x0d,0x98,0x0d,0x99,0x0d,0x9a,0x0d,0x9b,0x0d,0x9c,0x0d,0x9d,0x0d,0x9e,0x0d,0x9f,0x0d,0xa0,0x0d,0xa1,0x0d,0xa2,0x0d,0xa3,0x0d,0xa4,0x0d,0xa5,0x0d,0xa6,0x0d,0xa7,0x0d,0xa8,0x0d,0xa9,0x0d,0xaa,0x0d,0xab,0x0d,0xac,0x0d,0xad,0x0d,0xae,0x0d,0xaf,0x0d,0xb0,0x0d,0xb1,0x0d,0xb2,0x0d,0xb3,0x0d,0xb4,0x0d,0xb5, +0x0d,0xb6,0x0d,0xb7,0x0d,0x8a,0x0d,0x8b,0x0d,0x8c,0x0d,0x8d,0x0d,0x8e,0x0d,0x90,0x0d,0x92,0x0d,0x93,0x0d,0x94,0x0d,0x95,0x0d,0x96,0x0d,0x97,0x0d,0xb8,0x0d,0x8f,0x0d,0x91,0x00,0x02,0x00,0x03,0x02,0x07,0x02,0x32,0x00,0x00,0x02,0x34,0x02,0x34,0x00,0x2c,0x02,0xb7,0x02,0xb8,0x00,0x2d,0x00,0x02,0x00,0x48,0x00,0x21,0x0d,0x6c, +0x0d,0x6b,0x0d,0x70,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x69,0x0d,0x6a,0x0d,0x6d,0x0d,0x6e,0x0d,0x6f,0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x78,0x0d,0x79,0x0d,0x7a,0x0d,0x7b,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89, +0x00,0x02,0x00,0x04,0x00,0xa9,0x00,0xa9,0x00,0x00,0x01,0x2c,0x01,0x2e,0x00,0x01,0x01,0xa1,0x01,0xa7,0x00,0x04,0x01,0xa9,0x01,0xbe,0x00,0x0b,0x00,0x02,0x00,0x4a,0x00,0x22,0x0d,0x69,0x0d,0x6c,0x0d,0x6d,0x0d,0x7a,0x0d,0x7b,0x0d,0x7d,0x0d,0x81,0x0d,0x82,0x0d,0x83,0x0d,0x84,0x0d,0x6a,0x0d,0x6b,0x0d,0x6e,0x0d,0x6f,0x0d,0x70, +0x0d,0x71,0x0d,0x72,0x0d,0x73,0x0d,0x74,0x0d,0x75,0x0d,0x76,0x0d,0x77,0x0d,0x79,0x0d,0x7a,0x0d,0x7c,0x0d,0x7e,0x0d,0x7f,0x0d,0x80,0x0d,0x88,0x0d,0x89,0x0d,0x85,0x0d,0x86,0x0d,0x87,0x0d,0x78,0x00,0x02,0x00,0x04,0x01,0x2f,0x01,0x34,0x00,0x00,0x01,0xbf,0x01,0xc2,0x00,0x06,0x01,0xc4,0x01,0xda,0x00,0x0a,0x02,0x37,0x02,0x37, +0x00,0x21,0x00,0x02,0x01,0x08,0x00,0x81,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf3,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6,0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x10, +0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x1b,0x0d,0x20,0x0d,0x24,0x0d,0x05,0x0d,0x08,0x0d,0x0c,0x0d,0x0f,0x0d,0x1f,0x0d,0x06,0x0d,0x61,0x0d,0x0e,0x0d,0x15,0x0d,0x0d,0x0d,0x16,0x0d,0x13,0x0d,0x18,0x0d,0x19,0x0d,0x1a,0x0d,0x17,0x0d,0x1d,0x0d,0x1e,0x0d,0x1c,0x0d,0x22,0x0d,0x23,0x0d,0x21,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a, +0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x3c,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x2d,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43,0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35, +0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45,0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d, +0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x0d,0x0b,0x00,0x02,0x00,0x4e,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x24,0x00,0x3d,0x00,0x01,0x00,0x62,0x00,0x68,0x00,0x1b,0x00,0x91,0x00,0x92,0x00,0x22,0x00,0xad,0x00,0xb0,0x00,0x24,0x00,0xbb,0x00,0xbb,0x00,0x28,0x00,0xc7,0x00,0xd5,0x00,0x29,0x00,0xe1,0x00,0xe1,0x00,0x38,0x00,0xe3, +0x00,0xe3,0x00,0x39,0x00,0xe5,0x00,0xe5,0x00,0x3a,0x00,0xe8,0x00,0xe8,0x00,0x3b,0x00,0xea,0x00,0xea,0x00,0x3c,0x00,0xec,0x00,0xec,0x00,0x3d,0x00,0xf7,0x00,0xf7,0x00,0x3e,0x00,0xf9,0x00,0xfa,0x00,0x3f,0x00,0xfc,0x00,0xfc,0x00,0x41,0x00,0xfe,0x00,0xfe,0x00,0x42,0x01,0x03,0x01,0x03,0x00,0x43,0x01,0x05,0x01,0x05,0x00,0x44, +0x01,0x07,0x01,0x07,0x00,0x45,0x01,0x09,0x01,0x0a,0x00,0x46,0x01,0x0c,0x01,0x0c,0x00,0x48,0x01,0x0e,0x01,0x0e,0x00,0x49,0x01,0x10,0x01,0x10,0x00,0x4a,0x01,0x12,0x01,0x12,0x00,0x4b,0x01,0x14,0x01,0x14,0x00,0x4c,0x01,0x16,0x01,0x16,0x00,0x4d,0x01,0x18,0x01,0x18,0x00,0x4e,0x01,0x1a,0x01,0x1a,0x00,0x4f,0x01,0x1c,0x01,0x1c, +0x00,0x50,0x01,0x1e,0x01,0x1e,0x00,0x51,0x01,0x20,0x01,0x20,0x00,0x52,0x01,0x22,0x01,0x22,0x00,0x53,0x01,0x24,0x01,0x24,0x00,0x54,0x01,0x26,0x01,0x26,0x00,0x55,0x01,0x28,0x01,0x28,0x00,0x56,0x01,0x2a,0x01,0x2a,0x00,0x57,0x01,0x39,0x01,0x39,0x00,0x58,0x01,0x45,0x01,0x45,0x00,0x59,0x01,0x47,0x01,0x47,0x00,0x5a,0x01,0x49, +0x01,0x49,0x00,0x5b,0x01,0x4b,0x01,0x4b,0x00,0x5c,0x01,0x4d,0x01,0x4d,0x00,0x5d,0x01,0x4f,0x01,0x4f,0x00,0x5e,0x01,0x51,0x01,0x51,0x00,0x5f,0x01,0x53,0x01,0x53,0x00,0x60,0x01,0x55,0x01,0x55,0x00,0x61,0x01,0x57,0x01,0x57,0x00,0x62,0x01,0x59,0x01,0x59,0x00,0x63,0x01,0x5b,0x01,0x5b,0x00,0x64,0x01,0x5d,0x01,0x5d,0x00,0x65, +0x01,0x5f,0x01,0x5f,0x00,0x66,0x01,0x61,0x01,0x61,0x00,0x67,0x01,0x63,0x01,0x63,0x00,0x68,0x01,0x65,0x01,0x65,0x00,0x69,0x01,0x68,0x01,0x68,0x00,0x6a,0x01,0x6a,0x01,0x6a,0x00,0x6b,0x01,0x6c,0x01,0x6c,0x00,0x6c,0x01,0x6e,0x01,0x6e,0x00,0x6d,0x01,0x70,0x01,0x70,0x00,0x6e,0x01,0x72,0x01,0x72,0x00,0x6f,0x01,0x74,0x01,0x74, +0x00,0x70,0x01,0x76,0x01,0x76,0x00,0x71,0x01,0x78,0x01,0x78,0x00,0x72,0x01,0x7a,0x01,0x7a,0x00,0x73,0x01,0x7c,0x01,0x7c,0x00,0x74,0x01,0x7e,0x01,0x7e,0x00,0x75,0x01,0x80,0x01,0x80,0x00,0x76,0x01,0x82,0x01,0x82,0x00,0x77,0x01,0x85,0x01,0x85,0x00,0x78,0x01,0x87,0x01,0x87,0x00,0x79,0x01,0x89,0x01,0x89,0x00,0x7a,0x01,0x8c, +0x01,0x8c,0x00,0x7b,0x01,0x8e,0x01,0x8e,0x00,0x7c,0x01,0x90,0x01,0x90,0x00,0x7d,0x01,0x92,0x01,0x92,0x00,0x7e,0x02,0x3d,0x02,0x3d,0x00,0x7f,0x0b,0x21,0x0b,0x21,0x00,0x80,0x00,0x02,0x01,0x06,0x00,0x80,0x0d,0xbe,0x0c,0xeb,0x0c,0xec,0x0c,0xed,0x0c,0xee,0x0c,0xef,0x0c,0xf0,0x0c,0xf1,0x0c,0xf2,0x0c,0xf4,0x0c,0xf5,0x0c,0xf6, +0x0c,0xf7,0x0c,0xf8,0x0c,0xf9,0x0c,0xfa,0x0c,0xfb,0x0c,0xfc,0x0c,0xfd,0x0c,0xfe,0x0c,0xff,0x0d,0x00,0x0d,0x01,0x0d,0x02,0x0d,0x03,0x0d,0x04,0x0d,0x0d,0x0d,0x0c,0x0d,0x0e,0x0d,0x10,0x0d,0x0f,0x0d,0x11,0x0d,0x12,0x0d,0x14,0x0d,0x13,0x0d,0x15,0x0d,0x16,0x0d,0x18,0x0d,0x17,0x0d,0x19,0x0d,0x1a,0x0d,0x1b,0x0d,0x1d,0x0d,0x1c, +0x0d,0x1e,0x0d,0x20,0x0d,0x1f,0x0d,0x22,0x0d,0x21,0x0d,0x23,0x0d,0x24,0x0d,0x0b,0x0d,0x05,0x0d,0x08,0x0d,0x06,0x0d,0x61,0x0c,0xf3,0x0d,0x07,0x0d,0x51,0x0d,0x65,0x0d,0x0a,0x0d,0x25,0x0d,0x09,0x0d,0x33,0x0d,0x50,0x0d,0x29,0x0d,0x2a,0x0d,0x2d,0x0d,0x27,0x0d,0x28,0x0d,0x2c,0x0d,0x31,0x0d,0x32,0x0d,0x40,0x0d,0x42,0x0d,0x43, +0x0d,0x44,0x0d,0x46,0x0d,0x4a,0x0d,0x4b,0x0d,0x4d,0x0d,0x4e,0x0d,0x52,0x0d,0x54,0x0d,0x59,0x0d,0x5a,0x0d,0x63,0x0d,0x64,0x0d,0x3d,0x0d,0x26,0x0d,0xbf,0x0d,0x35,0x0d,0x2e,0x0d,0x2f,0x0d,0x30,0x0d,0xc0,0x0d,0x2b,0x0d,0x34,0x0d,0x36,0x0d,0x37,0x0d,0x38,0x0d,0x39,0x0d,0x3a,0x0d,0x3b,0x0d,0x3e,0x0d,0x3f,0x0d,0x41,0x0d,0x45, +0x0d,0x47,0x0d,0x48,0x0d,0x49,0x0d,0x4c,0x0d,0x4f,0x0d,0x55,0x0d,0x56,0x0d,0x57,0x0d,0x58,0x0d,0x5b,0x0d,0x5c,0x0d,0x60,0x0d,0x66,0x0d,0x67,0x0d,0x68,0x0d,0x5d,0x0d,0x5e,0x0d,0x5f,0x0d,0x62,0x0d,0xc1,0x00,0x02,0x00,0x4f,0x00,0x09,0x00,0x09,0x00,0x00,0x00,0x44,0x00,0x4b,0x00,0x01,0x00,0x4d,0x00,0x5d,0x00,0x09,0x00,0x69, +0x00,0x81,0x00,0x1a,0x00,0x89,0x00,0x89,0x00,0x33,0x00,0xa0,0x00,0xa1,0x00,0x34,0x00,0xb1,0x00,0xb1,0x00,0x36,0x00,0xba,0x00,0xba,0x00,0x37,0x00,0xd6,0x00,0xd6,0x00,0x38,0x00,0xe2,0x00,0xe2,0x00,0x39,0x00,0xe4,0x00,0xe4,0x00,0x3a,0x00,0xe6,0x00,0xe6,0x00,0x3b,0x00,0xe9,0x00,0xe9,0x00,0x3c,0x00,0xeb,0x00,0xeb,0x00,0x3d, +0x00,0xed,0x00,0xed,0x00,0x3e,0x00,0xf8,0x00,0xf8,0x00,0x3f,0x00,0xfb,0x00,0xfb,0x00,0x40,0x00,0xfd,0x00,0xfd,0x00,0x41,0x00,0xff,0x01,0x00,0x00,0x42,0x01,0x04,0x01,0x04,0x00,0x44,0x01,0x06,0x01,0x06,0x00,0x45,0x01,0x08,0x01,0x08,0x00,0x46,0x01,0x0b,0x01,0x0b,0x00,0x47,0x01,0x0d,0x01,0x0d,0x00,0x48,0x01,0x0f,0x01,0x0f, +0x00,0x49,0x01,0x11,0x01,0x11,0x00,0x4a,0x01,0x13,0x01,0x13,0x00,0x4b,0x01,0x15,0x01,0x15,0x00,0x4c,0x01,0x17,0x01,0x17,0x00,0x4d,0x01,0x19,0x01,0x19,0x00,0x4e,0x01,0x1b,0x01,0x1b,0x00,0x4f,0x01,0x1d,0x01,0x1d,0x00,0x50,0x01,0x1f,0x01,0x1f,0x00,0x51,0x01,0x21,0x01,0x21,0x00,0x52,0x01,0x23,0x01,0x23,0x00,0x53,0x01,0x25, +0x01,0x25,0x00,0x54,0x01,0x27,0x01,0x27,0x00,0x55,0x01,0x29,0x01,0x29,0x00,0x56,0x01,0x2b,0x01,0x2b,0x00,0x57,0x01,0x3a,0x01,0x3a,0x00,0x58,0x01,0x46,0x01,0x46,0x00,0x59,0x01,0x48,0x01,0x48,0x00,0x5a,0x01,0x4a,0x01,0x4a,0x00,0x5b,0x01,0x4c,0x01,0x4c,0x00,0x5c,0x01,0x4e,0x01,0x4e,0x00,0x5d,0x01,0x50,0x01,0x50,0x00,0x5e, +0x01,0x52,0x01,0x52,0x00,0x5f,0x01,0x54,0x01,0x54,0x00,0x60,0x01,0x56,0x01,0x56,0x00,0x61,0x01,0x58,0x01,0x58,0x00,0x62,0x01,0x5a,0x01,0x5a,0x00,0x63,0x01,0x5c,0x01,0x5c,0x00,0x64,0x01,0x5e,0x01,0x5e,0x00,0x65,0x01,0x60,0x01,0x60,0x00,0x66,0x01,0x62,0x01,0x62,0x00,0x67,0x01,0x64,0x01,0x64,0x00,0x68,0x01,0x66,0x01,0x66, +0x00,0x69,0x01,0x69,0x01,0x69,0x00,0x6a,0x01,0x6b,0x01,0x6b,0x00,0x6b,0x01,0x6d,0x01,0x6d,0x00,0x6c,0x01,0x6f,0x01,0x6f,0x00,0x6d,0x01,0x71,0x01,0x71,0x00,0x6e,0x01,0x73,0x01,0x73,0x00,0x6f,0x01,0x75,0x01,0x75,0x00,0x70,0x01,0x77,0x01,0x77,0x00,0x71,0x01,0x79,0x01,0x79,0x00,0x72,0x01,0x7b,0x01,0x7b,0x00,0x73,0x01,0x7d, +0x01,0x7d,0x00,0x74,0x01,0x7f,0x01,0x7f,0x00,0x75,0x01,0x81,0x01,0x81,0x00,0x76,0x01,0x83,0x01,0x83,0x00,0x77,0x01,0x86,0x01,0x86,0x00,0x78,0x01,0x88,0x01,0x88,0x00,0x79,0x01,0x8a,0x01,0x8a,0x00,0x7a,0x01,0x8d,0x01,0x8d,0x00,0x7b,0x01,0x8f,0x01,0x8f,0x00,0x7c,0x01,0x91,0x01,0x91,0x00,0x7d,0x01,0x93,0x01,0x93,0x00,0x7e, +0x02,0x3e,0x02,0x3e,0x00,0x7f,0x00,0x02,0x00,0x08,0x00,0x01,0x0c,0xf3,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x02,0x00,0x08,0x00,0x01,0x0d,0x3c,0x00,0x01,0x00,0x01,0x00,0x4c,0x00,0x01,0x00,0x24,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x10,0x00,0x16,0x0d,0xbd,0x00,0x03,0x00,0x49,0x00,0x4f,0x0d,0xbb,0x00,0x02,0x00,0x49, +0x0d,0xba,0x00,0x02,0x00,0x4f,0x00,0x01,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x28,0x00,0x02,0x00,0x0a,0x00,0x1e,0x00,0x02,0x00,0x06,0x00,0x0e,0x0d,0xbc,0x00,0x03,0x00,0x49,0x00,0x4c,0x0d,0xb9,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x04,0x0d,0xbc,0x00,0x02,0x00,0x4c,0x00,0x01,0x00,0x02,0x00,0x49,0x0d,0xbb,0x00,0x02,0x00,0x08, +0x00,0x01,0x00,0xbc,0x00,0x01,0x00,0x01,0x00,0x12,0x00,0x03,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x74,0x00,0x02,0x00,0x02,0x00,0xbc,0x00,0xbc,0x00,0x00,0x0c,0xe1,0x0c,0xea,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x08,0x8d,0x00,0xf0, +0x00,0xf1,0x00,0xf2,0x02,0x38,0x02,0x39,0x08,0x8e,0x02,0x3a,0x02,0x3b,0x08,0x8f,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6,0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02, +0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0,0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01, +0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xcd,0x0c,0xd6,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xb9,0x0c,0xba,0x0c,0xbb,0x0c,0xbc,0x0c,0xbd,0x0c,0xbe,0x0c,0xbf,0x0c,0xc0, +0x0c,0xc1,0x0c,0xc2,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x00,0x02,0x00,0x01,0x0c,0xc3,0x0c,0xcc,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xc3,0x0c,0xc4,0x0c,0xc5,0x0c,0xc6, +0x0c,0xc7,0x0c,0xc8,0x0c,0xc9,0x0c,0xca,0x0c,0xcb,0x0c,0xcc,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x01,0x0c,0xb9,0x0c,0xc2,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x06, +0x00,0x12,0x00,0x38,0x00,0x44,0x00,0x50,0x00,0x6a,0x00,0x76,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1c,0x10,0xb9,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x14,0x10,0xba,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x15,0x10,0xbb,0x00,0x04,0x00,0x39,0x00,0x36,0x00,0x16,0x00,0x01,0x00,0x04,0x08,0xc5,0x00,0x03,0x00,0x35,0x00,0x30,0x00,0x01, +0x00,0x04,0x10,0xbc,0x00,0x03,0x00,0x39,0x00,0x36,0x00,0x02,0x00,0x06,0x00,0x10,0x10,0xfb,0x00,0x04,0x00,0x25,0x00,0x36,0x00,0x33,0x10,0xfd,0x00,0x04,0x00,0x31,0x00,0x25,0x00,0x36,0x00,0x01,0x00,0x04,0x08,0xc6,0x00,0x03,0x00,0x2f,0x00,0x30,0x00,0x03,0x00,0x08,0x00,0x12,0x00,0x1a,0x10,0xfc,0x00,0x04,0x00,0x3a,0x00,0x36, +0x00,0x33,0x08,0xc4,0x00,0x03,0x00,0x3a,0x00,0x2d,0x08,0xc3,0x00,0x04,0x00,0x3a,0x00,0x31,0x00,0x2d,0x00,0x02,0x00,0x04,0x00,0x29,0x00,0x29,0x00,0x00,0x00,0x2f,0x00,0x31,0x00,0x01,0x00,0x35,0x00,0x35,0x00,0x04,0x00,0x3d,0x00,0x3d,0x00,0x05,0x00,0x02,0x00,0x80,0x00,0x3d,0x10,0xe5,0x10,0xbd,0x10,0xbe,0x10,0xbf,0x10,0xe6, +0x10,0xe7,0x10,0xe8,0x10,0xe9,0x10,0xea,0x10,0xeb,0x10,0xec,0x10,0xed,0x10,0xc0,0x10,0xc1,0x10,0xf9,0x10,0xc2,0x10,0xc3,0x10,0xc4,0x10,0xee,0x10,0xef,0x10,0xf0,0x10,0xf1,0x10,0xf2,0x10,0xf3,0x10,0xf4,0x10,0xc5,0x10,0xf5,0x10,0xf6,0x10,0xc6,0x10,0xc7,0x10,0xc8,0x10,0xc9,0x10,0xca,0x10,0xf7,0x10,0xcb,0x10,0xcc,0x10,0xcd, +0x10,0xce,0x10,0xcf,0x10,0xd0,0x10,0xd1,0x10,0xd2,0x10,0xd3,0x10,0xd4,0x10,0xd5,0x10,0xd6,0x10,0xd7,0x10,0xd8,0x10,0xd9,0x10,0xda,0x10,0xdb,0x10,0xdc,0x10,0xdd,0x10,0xde,0x10,0xdf,0x10,0xe0,0x10,0xe1,0x10,0xf8,0x10,0xe2,0x10,0xe3,0x10,0xe4,0x00,0x02,0x00,0x1b,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x07,0x00,0x0a,0x00,0x01, +0x00,0x0d,0x00,0x0d,0x00,0x05,0x00,0x0f,0x00,0x11,0x00,0x06,0x00,0x1d,0x00,0x1e,0x00,0x09,0x00,0x42,0x00,0x42,0x00,0x0b,0x00,0x85,0x00,0x86,0x00,0x0c,0x00,0x8c,0x00,0x8c,0x00,0x0e,0x00,0x97,0x00,0x98,0x00,0x0f,0x00,0x9a,0x00,0x9a,0x00,0x11,0x00,0xaa,0x00,0xab,0x00,0x12,0x00,0xb2,0x00,0xb2,0x00,0x14,0x00,0xb4,0x00,0xb7, +0x00,0x15,0x00,0xbd,0x00,0xbd,0x00,0x19,0x00,0xc4,0x00,0xc5,0x00,0x1a,0x00,0xf3,0x00,0xf6,0x00,0x1c,0x01,0x38,0x01,0x38,0x00,0x20,0x01,0x94,0x01,0x94,0x00,0x21,0x01,0x96,0x01,0x96,0x00,0x22,0x01,0x98,0x01,0x9b,0x00,0x23,0x07,0xd2,0x07,0xd8,0x00,0x27,0x07,0xda,0x07,0xdf,0x00,0x2e,0x08,0x56,0x08,0x59,0x00,0x34,0x08,0x8c, +0x08,0x8c,0x00,0x38,0x08,0xbd,0x08,0xbd,0x00,0x39,0x0a,0x64,0x0a,0x64,0x00,0x3a,0x0b,0x2a,0x0b,0x2b,0x00,0x3b,0x00,0x02,0x00,0x56,0x00,0x28,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4, +0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x0c,0xcd,0x0c,0xce,0x0c,0xcf,0x0c,0xd0,0x0c,0xd1,0x0c,0xd2,0x0c,0xd3,0x0c,0xd4,0x0c,0xd5,0x0c,0xd6,0x00,0x02,0x00,0x02,0x00,0x13,0x00,0x1c,0x00,0x00,0x0c,0xb9,0x0c,0xd6,0x00,0x0a,0x00,0x02,0x00,0xa2, +0x00,0x4e,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0d,0xf2,0x0d,0xf3,0x10,0x9a,0x10,0x9b,0x10,0xa5,0x10,0xaf,0x10,0xb6,0x10,0xac,0x10,0xad,0x10,0xb7,0x10,0xb8,0x10,0xa9,0x10,0xb1,0x10,0x99,0x10,0xa6,0x10,0xa7,0x10,0xab,0x10,0xae,0x10,0xa8,0x10,0x96,0x10,0xb2, +0x10,0xa3,0x10,0xa2,0x10,0x9c,0x10,0x9e,0x10,0x9d,0x10,0xa0,0x10,0x9f,0x10,0xa1,0x10,0xa4,0x10,0xb4,0x10,0xb5,0x10,0xb0,0x10,0xb3,0x10,0x98,0x10,0x97,0x10,0xaa,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc, +0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x0c,0xd7,0x0c,0xd8,0x0c,0xd9,0x0c,0xda,0x0c,0xdb,0x0c,0xdc,0x0c,0xdd,0x0c,0xde,0x0c,0xdf,0x0c,0xe0,0x10,0x95,0x00,0x02,0x00,0x1b,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x2c,0x00,0x2c,0x00,0x0a,0x00,0x34,0x00,0x34,0x00,0x0b,0x00,0xcc,0x00,0xcf,0x00,0x0c,0x00,0xf9,0x00,0xf9,0x00,0x10, +0x01,0x39,0x01,0x39,0x00,0x11,0x01,0x5b,0x01,0x5b,0x00,0x12,0x01,0x5d,0x01,0x5d,0x00,0x13,0x01,0x5f,0x01,0x5f,0x00,0x14,0x01,0x61,0x01,0x61,0x00,0x15,0x01,0xa4,0x01,0xa4,0x00,0x16,0x01,0xae,0x01,0xae,0x00,0x17,0x01,0xbd,0x01,0xbd,0x00,0x18,0x01,0xe0,0x01,0xe0,0x00,0x19,0x02,0x7f,0x02,0x7f,0x00,0x1a,0x02,0x81,0x02,0x81, +0x00,0x1b,0x02,0xb5,0x02,0xb5,0x00,0x1c,0x03,0x0f,0x03,0x0f,0x00,0x1d,0x03,0x11,0x03,0x11,0x00,0x1e,0x03,0xad,0x03,0xb4,0x00,0x1f,0x04,0x3f,0x04,0x42,0x00,0x27,0x04,0xf9,0x04,0xf9,0x00,0x2b,0x05,0x2c,0x05,0x2c,0x00,0x2c,0x05,0x2e,0x05,0x2e,0x00,0x2d,0x06,0x21,0x06,0x21,0x00,0x2e,0x0c,0xb9,0x0c,0xd6,0x00,0x2f,0x0d,0xe4, +0x0d,0xe4,0x00,0x4d,0x00,0x02,0x00,0x42,0x00,0x1e,0x0d,0xf5,0x0d,0xf6,0x0d,0xf7,0x0d,0xf8,0x0d,0xf9,0x0d,0xfa,0x0d,0xfb,0x0d,0xfc,0x0d,0xfd,0x0d,0xfe,0x0d,0xff,0x0e,0x00,0x0e,0x01,0x0e,0x0b,0x0e,0x02,0x0e,0x03,0x0e,0x04,0x0e,0x05,0x0e,0x06,0x0e,0x07,0x0e,0x08,0x0e,0x09,0x0e,0x0a,0x0e,0x0f,0x0e,0x10,0x0e,0x0e,0x0e,0x0c, +0x0e,0x0d,0x0e,0x11,0x0e,0x12,0x00,0x02,0x00,0x13,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x0f,0x00,0x0f,0x00,0x01,0x00,0x1e,0x00,0x1e,0x00,0x02,0x00,0x22,0x00,0x22,0x00,0x03,0x00,0xb4,0x00,0xb7,0x00,0x04,0x00,0xc4,0x00,0xc5,0x00,0x08,0x01,0x08,0x01,0x08,0x00,0x0a,0x01,0x10,0x01,0x11,0x00,0x0b,0x01,0x23,0x01,0x23,0x00,0x0d, +0x01,0x3b,0x01,0x3b,0x00,0x0e,0x01,0x55,0x01,0x56,0x00,0x0f,0x01,0x65,0x01,0x66,0x00,0x11,0x01,0x6a,0x01,0x6b,0x00,0x13,0x01,0x72,0x01,0x73,0x00,0x15,0x01,0x94,0x01,0x94,0x00,0x17,0x01,0x9c,0x01,0x9c,0x00,0x18,0x01,0x9e,0x01,0x9e,0x00,0x19,0x02,0x3d,0x02,0x3e,0x00,0x1a,0x02,0xaf,0x02,0xb0,0x00,0x1c,0x00,0x02,0x00,0x08, +0x00,0x01,0x0d,0xf4,0x00,0x01,0x00,0x01,0x00,0x09,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x11,0x84,0x00,0x02,0x11,0x83,0x00,0x01,0x00,0x01,0x11,0x82,0x00,0x01,0x00,0x8a,0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01, +0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93, +0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x0c,0xcd,0x0c,0xd6,0x00,0x01,0x00,0x01,0x00,0x8a, +0x00,0x0b,0x00,0x1c,0x00,0x26,0x00,0x30,0x00,0x3a,0x00,0x44,0x00,0x4e,0x00,0x58,0x00,0x62,0x00,0x6c,0x00,0x76,0x00,0x80,0x00,0x01,0x00,0x04,0x11,0x8e,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x98,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x8f,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x90,0x00,0x02,0x11,0x8d, +0x00,0x01,0x00,0x04,0x11,0x91,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x92,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x93,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x94,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x95,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04,0x11,0x96,0x00,0x02,0x11,0x8d,0x00,0x01,0x00,0x04, +0x11,0x97,0x00,0x02,0x11,0x8d,0x00,0x02,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x13,0x00,0x1c,0x00,0x01,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xa4,0x11,0xa5,0x11,0xa6,0x11,0xa7,0x11,0xa8,0x11,0xa9,0x11,0xaa,0x11,0xab,0x11,0xac,0x11,0xad,0x00,0x02,0x00,0x01,0x0f,0xd6,0x0f,0xdf,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, +0x11,0xb8,0x11,0xb9,0x11,0xba,0x11,0xbb,0x11,0xbc,0x11,0xbd,0x11,0xbe,0x11,0xbf,0x11,0xc0,0x11,0xc1,0x00,0x02,0x00,0x01,0x0f,0xea,0x0f,0xf3,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xae,0x11,0xaf,0x11,0xb0,0x11,0xb1,0x11,0xb2,0x11,0xb3,0x11,0xb4,0x11,0xb5,0x11,0xb6,0x11,0xb7,0x00,0x02,0x00,0x01,0x0f,0xe0,0x0f,0xe9, +0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xc2,0x11,0xc3,0x11,0xc4,0x11,0xc5,0x11,0xc6,0x11,0xc7,0x11,0xc8,0x11,0xc9,0x11,0xca,0x11,0xcb,0x00,0x02,0x00,0x01,0x0f,0xf4,0x0f,0xfd,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xcc,0x11,0xcd,0x11,0xce,0x11,0xcf,0x11,0xd0,0x11,0xd1,0x11,0xd2,0x11,0xd3,0x11,0xd4,0x11,0xd5, +0x00,0x02,0x00,0x01,0x0f,0xfe,0x10,0x07,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xd6,0x11,0xd7,0x11,0xd8,0x11,0xd9,0x11,0xda,0x11,0xdb,0x11,0xdc,0x11,0xdd,0x11,0xde,0x11,0xdf,0x00,0x02,0x00,0x01,0x10,0x08,0x10,0x11,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xe0,0x11,0xe1,0x11,0xe2,0x11,0xe3,0x11,0xe4,0x11,0xe5, +0x11,0xe6,0x11,0xe7,0x11,0xe8,0x11,0xe9,0x00,0x02,0x00,0x01,0x10,0x12,0x10,0x1b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xea,0x11,0xeb,0x11,0xec,0x11,0xed,0x11,0xee,0x11,0xef,0x11,0xf0,0x11,0xf1,0x11,0xf2,0x11,0xf3,0x00,0x02,0x00,0x01,0x10,0x1c,0x10,0x25,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xf4,0x11,0xf5, +0x11,0xf6,0x11,0xf7,0x11,0xf8,0x11,0xf9,0x11,0xfa,0x11,0xfb,0x11,0xfc,0x11,0xfd,0x00,0x02,0x00,0x01,0x10,0x26,0x10,0x2f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x11,0xfe,0x11,0xff,0x12,0x00,0x12,0x01,0x12,0x02,0x12,0x03,0x12,0x04,0x12,0x05,0x12,0x06,0x12,0x07,0x00,0x02,0x00,0x01,0x10,0x30,0x10,0x39,0x00,0x00,0x00,0x02, +0x00,0x1a,0x00,0x0a,0x12,0x08,0x12,0x09,0x12,0x0a,0x12,0x0b,0x12,0x0c,0x12,0x0d,0x12,0x0e,0x12,0x0f,0x12,0x10,0x12,0x11,0x00,0x02,0x00,0x01,0x10,0x3a,0x10,0x43,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x12,0x12,0x13,0x12,0x14,0x12,0x15,0x12,0x16,0x12,0x17,0x12,0x18,0x12,0x19,0x12,0x1a,0x12,0x1b,0x00,0x02,0x00,0x01, +0x10,0x44,0x10,0x4d,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x1c,0x12,0x1d,0x12,0x1e,0x12,0x1f,0x12,0x20,0x12,0x21,0x12,0x22,0x12,0x23,0x12,0x24,0x12,0x25,0x00,0x02,0x00,0x01,0x10,0x4e,0x10,0x57,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x26,0x12,0x27,0x12,0x28,0x12,0x29,0x12,0x2a,0x12,0x2b,0x12,0x2c,0x12,0x2d, +0x12,0x2e,0x12,0x2f,0x00,0x02,0x00,0x01,0x10,0x58,0x10,0x61,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x30,0x12,0x31,0x12,0x32,0x12,0x33,0x12,0x34,0x12,0x35,0x12,0x36,0x12,0x37,0x12,0x38,0x12,0x39,0x00,0x02,0x00,0x01,0x10,0x62,0x10,0x6b,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x3a,0x12,0x3b,0x12,0x3c,0x12,0x3d, +0x12,0x3e,0x12,0x3f,0x12,0x40,0x12,0x41,0x12,0x42,0x12,0x43,0x00,0x02,0x00,0x01,0x10,0x6c,0x10,0x75,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a,0x12,0x44,0x12,0x45,0x12,0x46,0x12,0x47,0x12,0x48,0x12,0x49,0x12,0x4a,0x12,0x4b,0x12,0x4c,0x12,0x4d,0x00,0x02,0x00,0x01,0x10,0x76,0x10,0x7f,0x00,0x00,0x00,0x02,0x00,0x1a,0x00,0x0a, +0x12,0x4f,0x12,0x50,0x12,0x51,0x12,0x52,0x12,0x53,0x12,0x54,0x12,0x55,0x12,0x56,0x12,0x57,0x12,0x58,0x00,0x02,0x00,0x01,0x10,0x81,0x10,0x8a,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb7,0x00,0x02,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x14,0x00,0x01,0x00,0x08,0x00,0x01, +0x00,0x04,0x0b,0xb7,0x00,0x03,0x08,0xc4,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x01,0x00,0x54,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x02,0x00,0x82,0x00,0x88,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x02, +0x00,0x6e,0x00,0xa2,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x14,0x00,0x02,0x00,0x5a,0x00,0x94,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b, +0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02, +0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x03,0x00,0x02,0x02,0xbc,0x02,0xea,0x00,0x01,0x02,0xf0,0x00,0x01,0x02,0xf6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0xa6, +0x02,0xa6,0x02,0xd4,0x00,0x01,0x02,0xda,0x00,0x01,0x02,0xe0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x02,0x8e,0x02,0xf0,0x02,0xbc,0x00,0x01,0x02,0xc2,0x00,0x01,0x02,0xc8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x02,0x76,0x02,0x76,0x02,0xd8,0x02,0xa4,0x00,0x01,0x02,0xaa,0x00,0x01,0x02,0xb0,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0xc6,0x00,0x01,0x02,0x90,0x00,0x01,0x02,0xcc,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x48,0x02,0xb2,0x00,0x01,0x02,0x7c,0x00,0x01,0x02,0xb8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x9c,0x00,0x01,0x02,0x66,0x00,0x02,0x02,0xdc,0x02,0x32,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x02,0x1c,0x02,0x86,0x00,0x01,0x02,0x50,0x00,0x02,0x02,0xc6,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x6e,0x00,0x01,0x02,0x38,0x00,0x03,0x02,0xae,0x02,0xb4,0x02,0xba,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xec,0x02,0x56,0x00,0x01,0x02,0x20, +0x00,0x03,0x02,0x96,0x02,0x9c,0x02,0xa2,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x3c,0x00,0x01,0x02,0x06,0x00,0x03,0x02,0x7c,0x02,0x82,0x02,0x3c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0xba,0x02,0x24,0x00,0x01,0x01,0xee,0x00,0x03,0x02,0x64,0x02,0x6a,0x02,0x24,0x00,0x01,0x00,0x00,0x00,0x76, +0x00,0x03,0x00,0x01,0x02,0x5c,0x00,0x01,0x01,0xd4,0x00,0x01,0x02,0x10,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x48,0x00,0x01,0x01,0xc0,0x00,0x02,0x02,0x36,0x01,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x32,0x00,0x01,0x01,0xaa,0x00,0x03,0x02,0x20,0x02,0x26,0x01,0xe0,0x00,0x01,0x00,0x00, +0x00,0x76,0x00,0x03,0x00,0x01,0x02,0x1a,0x00,0x01,0x01,0x92,0x00,0x03,0x02,0x08,0x02,0x0e,0x02,0x14,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x46,0x02,0x02,0x00,0x01,0x01,0x7a,0x00,0x01,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x30,0x01,0xec,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0xda, +0x01,0x30,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x01,0x18,0x01,0xd4,0x00,0x01,0x01,0x4c,0x00,0x03,0x01,0xc2,0x01,0xc8,0x01,0x82,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02,0x00,0xfe,0x01,0xba,0x00,0x01,0x01,0x32,0x00,0x03,0x01,0xa8,0x01,0xae,0x01,0xb4,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x02, +0x01,0xa6,0x01,0xac,0x00,0x01,0x01,0x18,0x00,0x01,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x90,0x01,0x84,0x01,0x96,0x00,0x01,0x01,0x02,0x00,0x01,0x01,0x08,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x03,0x01,0x6c,0x01,0x78,0x01,0x7e,0x00,0x01,0x00,0xea,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00, +0x00,0x76,0x00,0x03,0x00,0x03,0x00,0x9e,0x01,0x60,0x01,0x66,0x00,0x01,0x00,0xd2,0x00,0x01,0x00,0xd8,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x86,0x00,0x86,0x01,0x48,0x01,0x4e,0x00,0x01,0x00,0xba,0x00,0x01,0x00,0xc0,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x6c,0x01,0x2e,0x01,0x22,0x01,0x34, +0x00,0x01,0x00,0xa0,0x00,0x01,0x00,0xa6,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x52,0x00,0x52,0x01,0x14,0x01,0x08,0x01,0x1a,0x00,0x01,0x00,0x86,0x00,0x01,0x00,0x8c,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x04,0x00,0x36,0x00,0xec,0x00,0xf8,0x00,0xfe,0x00,0x01,0x00,0x6a,0x00,0x01,0x00,0x70,0x00,0x01, +0x00,0x00,0x00,0x76,0x00,0x03,0x00,0x05,0x00,0x1c,0x00,0x1c,0x00,0xd2,0x00,0xde,0x00,0xe4,0x00,0x01,0x00,0x50,0x00,0x01,0x00,0x56,0x00,0x01,0x00,0x00,0x00,0x76,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd, +0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0x74,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x06,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x68,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1f,0x0b,0x97,0x0b,0x9a,0x00,0x2d,0x0b,0x9d,0x0b,0xb7,0x00,0x31,0x12,0x5f,0x12,0x62, +0x00,0x4c,0x00,0x01,0x00,0x02,0x0b,0x5e,0x0b,0x61,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69,0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0, +0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0x5e,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x01,0x00,0x01,0x0b,0x64,0x00,0x01,0x00,0x01,0x0b,0x81,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd8,0x00,0x01,0x00,0x01,0x0b,0xd0,0x00,0x01,0x00,0x16, +0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x8c,0x00,0x04,0x08,0xc4,0x0b,0x71,0x0b,0x5a,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x2a,0x00,0x03,0x00,0x0c,0x00,0x16,0x00,0x20,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x02,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x02, +0x0b,0x5f,0x00,0x02,0x00,0x01,0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x00,0x30,0x00,0x03,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x01,0x00,0x04,0x12,0x59,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5a,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x01,0x00,0x04,0x12,0x5b,0x00,0x03,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x00,0x01, +0x0b,0x54,0x0b,0x56,0x00,0x00,0x00,0x01,0x01,0xaa,0x00,0x01,0x00,0x08,0x00,0x34,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x88,0x00,0x8e,0x00,0x94,0x00,0x9a,0x00,0xa0,0x00,0xa6,0x00,0xac,0x00,0xb2,0x00,0xb8,0x00,0xbe,0x00,0xc4,0x00,0xca,0x00,0xd0,0x00,0xd6,0x00,0xdc,0x00,0xe2,0x00,0xe8,0x00,0xee,0x00,0xf4, +0x00,0xfa,0x01,0x00,0x01,0x06,0x01,0x0c,0x01,0x12,0x01,0x18,0x01,0x1e,0x01,0x24,0x01,0x2a,0x01,0x30,0x01,0x36,0x01,0x3c,0x01,0x42,0x01,0x48,0x01,0x4e,0x01,0x54,0x01,0x5a,0x01,0x60,0x01,0x66,0x01,0x6c,0x01,0x72,0x01,0x78,0x01,0x7e,0x01,0x84,0x01,0x8a,0x01,0x90,0x01,0x96,0x01,0x9c,0x0b,0x53,0x00,0x02,0x0b,0x53,0x0b,0x54, +0x00,0x02,0x0b,0x54,0x0b,0x55,0x00,0x02,0x0b,0x55,0x0b,0x56,0x00,0x02,0x0b,0x56,0x0b,0x57,0x00,0x02,0x0b,0x57,0x0b,0x58,0x00,0x02,0x0b,0x58,0x0b,0x59,0x00,0x02,0x0b,0x59,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x0b,0x5e,0x00,0x02,0x0b,0x5e, +0x0b,0x5f,0x00,0x02,0x0b,0x5f,0x0b,0x61,0x00,0x02,0x0b,0x61,0x0b,0x66,0x00,0x02,0x0b,0x66,0x0b,0x67,0x00,0x02,0x0b,0x67,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x0b,0xbf,0x00,0x02,0x0b,0xbf,0x0b,0xc0,0x00,0x02,0x0b,0xc0,0x0b,0xc1,0x00,0x02,0x0b,0xc1,0x0b,0xc2,0x00,0x02,0x0b,0xc2,0x0b,0xc3,0x00,0x02,0x0b,0xc3,0x0b,0xc4,0x00,0x02, +0x0b,0xc4,0x0b,0xc5,0x00,0x02,0x0b,0xc5,0x0b,0xc6,0x00,0x02,0x0b,0xc6,0x0b,0xc7,0x00,0x02,0x0b,0xc7,0x0b,0xc8,0x00,0x02,0x0b,0xc8,0x0b,0xc9,0x00,0x02,0x0b,0xc9,0x0b,0xca,0x00,0x02,0x0b,0xca,0x0b,0xcb,0x00,0x02,0x0b,0xcb,0x0b,0xcc,0x00,0x02,0x0b,0xcc,0x0b,0xcd,0x00,0x02,0x0b,0xcd,0x0b,0xce,0x00,0x02,0x0b,0xce,0x0b,0xcf, +0x00,0x02,0x0b,0xcf,0x0b,0xd0,0x00,0x02,0x0b,0xd0,0x0b,0xd1,0x00,0x02,0x0b,0xd1,0x0b,0xd2,0x00,0x02,0x0b,0xd2,0x0b,0xd3,0x00,0x02,0x0b,0xd3,0x0b,0xd4,0x00,0x02,0x0b,0xd4,0x0b,0xd5,0x00,0x02,0x0b,0xd5,0x0b,0xd6,0x00,0x02,0x0b,0xd6,0x0b,0xd7,0x00,0x02,0x0b,0xd7,0x0b,0xd8,0x00,0x02,0x0b,0xd8,0x0b,0xd9,0x00,0x02,0x0b,0xd9, +0x0b,0xda,0x00,0x02,0x0b,0xda,0x0b,0xdb,0x00,0x02,0x0b,0xdb,0x0b,0xdc,0x00,0x02,0x0b,0xdc,0x0b,0xdd,0x00,0x02,0x0b,0xdd,0x0b,0xe1,0x00,0x02,0x0b,0xe1,0x12,0x5c,0x00,0x02,0x12,0x5c,0x12,0x5d,0x00,0x02,0x12,0x5d,0x12,0x5e,0x00,0x02,0x12,0x5e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x12,0x00,0x01, +0x00,0x18,0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x02,0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x1a, +0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xdf,0x00,0x02,0x07,0x39,0x0b,0xdf,0x00,0x02,0x08,0xc4,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x0e,0x76,0x00,0x84,0x01,0x0e,0x01,0x28,0x01,0x42,0x01,0x5c,0x01,0x76,0x01,0x90,0x01,0xaa,0x01,0xc4,0x01,0xde,0x01,0xf8,0x02,0x12,0x02,0x2c,0x02,0x46,0x02,0x60,0x02,0x7a, +0x02,0x94,0x02,0xae,0x02,0xc8,0x02,0xe2,0x02,0xfc,0x03,0x16,0x03,0x30,0x03,0x4a,0x03,0x64,0x03,0x7e,0x03,0x98,0x03,0xb2,0x03,0xcc,0x03,0xe6,0x04,0x00,0x04,0x1a,0x04,0x34,0x04,0x4e,0x04,0x68,0x04,0x82,0x04,0x9c,0x04,0xb6,0x04,0xd0,0x04,0xea,0x05,0x04,0x05,0x1e,0x05,0x38,0x05,0x52,0x05,0x6c,0x05,0x86,0x05,0xa0,0x05,0xba, +0x05,0xd4,0x05,0xee,0x06,0x08,0x06,0x22,0x06,0x3c,0x06,0x56,0x06,0x70,0x06,0x8a,0x06,0xa4,0x06,0xbe,0x06,0xd8,0x06,0xf2,0x07,0x0c,0x07,0x26,0x07,0x40,0x07,0x5a,0x07,0x74,0x07,0x8e,0x07,0xa8,0x07,0xc2,0x07,0xdc,0x07,0xf6,0x08,0x10,0x08,0x2a,0x08,0x44,0x08,0x5e,0x08,0x78,0x08,0x92,0x08,0xac,0x08,0xc6,0x08,0xe0,0x08,0xfa, +0x09,0x14,0x09,0x2e,0x09,0x48,0x09,0x62,0x09,0x7c,0x09,0x96,0x09,0xb0,0x09,0xca,0x09,0xe4,0x09,0xfe,0x0a,0x18,0x0a,0x32,0x0a,0x4c,0x0a,0x66,0x0a,0x80,0x0a,0x9a,0x0a,0xb4,0x0a,0xce,0x0a,0xe8,0x0b,0x02,0x0b,0x1c,0x0b,0x36,0x0b,0x50,0x0b,0x6a,0x0b,0x84,0x0b,0x9e,0x0b,0xb8,0x0b,0xd2,0x0b,0xec,0x0c,0x06,0x0c,0x20,0x0c,0x3a, +0x0c,0x54,0x0c,0x6e,0x0c,0x88,0x0c,0xa2,0x0c,0xbc,0x0c,0xd6,0x0c,0xf0,0x0d,0x0a,0x0d,0x24,0x0d,0x3e,0x0d,0x58,0x0d,0x72,0x0d,0x8c,0x0d,0xa6,0x0d,0xc0,0x0d,0xda,0x0d,0xf4,0x0e,0x0e,0x0e,0x28,0x0e,0x42,0x0e,0x5c,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0a,0x43,0x00,0x02,0x07,0x39,0x0a,0x43,0x00,0x02,0x08,0xc4,0x0a,0x43, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x53,0x00,0x02,0x07,0x39,0x0b,0x53,0x00,0x02,0x08,0xc4,0x0b,0x53,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x54,0x00,0x02,0x07,0x39,0x0b,0x54,0x00,0x02,0x08,0xc4,0x0b,0x54,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x55,0x00,0x02,0x07,0x39,0x0b,0x55,0x00,0x02,0x08,0xc4,0x0b,0x55,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x56,0x00,0x02,0x07,0x39,0x0b,0x56,0x00,0x02,0x08,0xc4,0x0b,0x56,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x57,0x00,0x02,0x07,0x39,0x0b,0x57,0x00,0x02,0x08,0xc4, +0x0b,0x57,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x58,0x00,0x02,0x07,0x39,0x0b,0x58,0x00,0x02,0x08,0xc4,0x0b,0x58,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x59,0x00,0x02,0x07,0x39,0x0b,0x59,0x00,0x02,0x08,0xc4,0x0b,0x59,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0x5a,0x00,0x02,0x07,0x39,0x0b,0x5a,0x00,0x02,0x08,0xc4,0x0b,0x5a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5b,0x00,0x02,0x07,0x39,0x0b,0x5b,0x00,0x02,0x08,0xc4,0x0b,0x5b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5c,0x00,0x02,0x07,0x39,0x0b,0x5c,0x00,0x02, +0x08,0xc4,0x0b,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5d,0x00,0x02,0x07,0x39,0x0b,0x5d,0x00,0x02,0x08,0xc4,0x0b,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x5e,0x00,0x02,0x07,0x39,0x0b,0x5e,0x00,0x02,0x08,0xc4,0x0b,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0x5f,0x00,0x02,0x07,0x39,0x0b,0x5f,0x00,0x02,0x08,0xc4,0x0b,0x5f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x61,0x00,0x02,0x07,0x39,0x0b,0x61,0x00,0x02,0x08,0xc4,0x0b,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x66,0x00,0x02,0x07,0x39,0x0b,0x66, +0x00,0x02,0x08,0xc4,0x0b,0x66,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x67,0x00,0x02,0x07,0x39,0x0b,0x67,0x00,0x02,0x08,0xc4,0x0b,0x67,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x68,0x00,0x02,0x07,0x39,0x0b,0x68,0x00,0x02,0x08,0xc4,0x0b,0x68,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x69,0x00,0x02,0x07,0x39,0x0b,0x69,0x00,0x02,0x08,0xc4,0x0b,0x69,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6a,0x00,0x02,0x07,0x39,0x0b,0x6a,0x00,0x02,0x08,0xc4,0x0b,0x6a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6b,0x00,0x02,0x07,0x39, +0x0b,0x6b,0x00,0x02,0x08,0xc4,0x0b,0x6b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6c,0x00,0x02,0x07,0x39,0x0b,0x6c,0x00,0x02,0x08,0xc4,0x0b,0x6c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6d,0x00,0x02,0x07,0x39,0x0b,0x6d,0x00,0x02,0x08,0xc4,0x0b,0x6d,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6e,0x00,0x02,0x07,0x39,0x0b,0x6e,0x00,0x02,0x08,0xc4,0x0b,0x6e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x6f,0x00,0x02,0x07,0x39,0x0b,0x6f,0x00,0x02,0x08,0xc4,0x0b,0x6f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x70,0x00,0x02, +0x07,0x39,0x0b,0x70,0x00,0x02,0x08,0xc4,0x0b,0x70,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x71,0x00,0x02,0x07,0x39,0x0b,0x71,0x00,0x02,0x08,0xc4,0x0b,0x71,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x72,0x00,0x02,0x07,0x39,0x0b,0x72,0x00,0x02,0x08,0xc4,0x0b,0x72,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x73,0x00,0x02,0x07,0x39,0x0b,0x73,0x00,0x02,0x08,0xc4,0x0b,0x73,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x74,0x00,0x02,0x07,0x39,0x0b,0x74,0x00,0x02,0x08,0xc4,0x0b,0x74,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x75, +0x00,0x02,0x07,0x39,0x0b,0x75,0x00,0x02,0x08,0xc4,0x0b,0x75,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x76,0x00,0x02,0x07,0x39,0x0b,0x76,0x00,0x02,0x08,0xc4,0x0b,0x76,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x77,0x00,0x02,0x07,0x39,0x0b,0x77,0x00,0x02,0x08,0xc4,0x0b,0x77, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x78,0x00,0x02,0x07,0x39,0x0b,0x78,0x00,0x02,0x08,0xc4,0x0b,0x78,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x79,0x00,0x02,0x07,0x39,0x0b,0x79,0x00,0x02,0x08,0xc4,0x0b,0x79,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x7a,0x00,0x02,0x07,0x39,0x0b,0x7a,0x00,0x02,0x08,0xc4,0x0b,0x7a,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7b,0x00,0x02,0x07,0x39,0x0b,0x7b,0x00,0x02,0x08,0xc4,0x0b,0x7b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7c,0x00,0x02,0x07,0x39,0x0b,0x7c,0x00,0x02,0x08,0xc4, +0x0b,0x7c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7d,0x00,0x02,0x07,0x39,0x0b,0x7d,0x00,0x02,0x08,0xc4,0x0b,0x7d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x7e,0x00,0x02,0x07,0x39,0x0b,0x7e,0x00,0x02,0x08,0xc4,0x0b,0x7e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0x7f,0x00,0x02,0x07,0x39,0x0b,0x7f,0x00,0x02,0x08,0xc4,0x0b,0x7f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x80,0x00,0x02,0x07,0x39,0x0b,0x80,0x00,0x02,0x08,0xc4,0x0b,0x80,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x81,0x00,0x02,0x07,0x39,0x0b,0x81,0x00,0x02, +0x08,0xc4,0x0b,0x81,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x82,0x00,0x02,0x07,0x39,0x0b,0x82,0x00,0x02,0x08,0xc4,0x0b,0x82,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x83,0x00,0x02,0x07,0x39,0x0b,0x83,0x00,0x02,0x08,0xc4,0x0b,0x83,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0x84,0x00,0x02,0x07,0x39,0x0b,0x84,0x00,0x02,0x08,0xc4,0x0b,0x84,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x85,0x00,0x02,0x07,0x39,0x0b,0x85,0x00,0x02,0x08,0xc4,0x0b,0x85,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x88,0x00,0x02,0x07,0x39,0x0b,0x88, +0x00,0x02,0x08,0xc4,0x0b,0x88,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x89,0x00,0x02,0x07,0x39,0x0b,0x89,0x00,0x02,0x08,0xc4,0x0b,0x89,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8a,0x00,0x02,0x07,0x39,0x0b,0x8a,0x00,0x02,0x08,0xc4,0x0b,0x8a,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8b,0x00,0x02,0x07,0x39,0x0b,0x8b,0x00,0x02,0x08,0xc4,0x0b,0x8b,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8c,0x00,0x02,0x07,0x39,0x0b,0x8c,0x00,0x02,0x08,0xc4,0x0b,0x8c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8d,0x00,0x02,0x07,0x39, +0x0b,0x8d,0x00,0x02,0x08,0xc4,0x0b,0x8d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8e,0x00,0x02,0x07,0x39,0x0b,0x8e,0x00,0x02,0x08,0xc4,0x0b,0x8e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x8f,0x00,0x02,0x07,0x39,0x0b,0x8f,0x00,0x02,0x08,0xc4,0x0b,0x8f,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x90,0x00,0x02,0x07,0x39,0x0b,0x90,0x00,0x02,0x08,0xc4,0x0b,0x90,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x91,0x00,0x02,0x07,0x39,0x0b,0x91,0x00,0x02,0x08,0xc4,0x0b,0x91,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x92,0x00,0x02, +0x07,0x39,0x0b,0x92,0x00,0x02,0x08,0xc4,0x0b,0x92,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x93,0x00,0x02,0x07,0x39,0x0b,0x93,0x00,0x02,0x08,0xc4,0x0b,0x93,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x94,0x00,0x02,0x07,0x39,0x0b,0x94,0x00,0x02,0x08,0xc4,0x0b,0x94,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x95,0x00,0x02,0x07,0x39,0x0b,0x95,0x00,0x02,0x08,0xc4,0x0b,0x95,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x97,0x00,0x02,0x07,0x39,0x0b,0x97,0x00,0x02,0x08,0xc4,0x0b,0x97,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x98, +0x00,0x02,0x07,0x39,0x0b,0x98,0x00,0x02,0x08,0xc4,0x0b,0x98,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x99,0x00,0x02,0x07,0x39,0x0b,0x99,0x00,0x02,0x08,0xc4,0x0b,0x99,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9a,0x00,0x02,0x07,0x39,0x0b,0x9a,0x00,0x02,0x08,0xc4,0x0b,0x9a, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9d,0x00,0x02,0x07,0x39,0x0b,0x9d,0x00,0x02,0x08,0xc4,0x0b,0x9d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0x9e,0x00,0x02,0x07,0x39,0x0b,0x9e,0x00,0x02,0x08,0xc4,0x0b,0x9e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0x9f,0x00,0x02,0x07,0x39,0x0b,0x9f,0x00,0x02,0x08,0xc4,0x0b,0x9f,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa0,0x00,0x02,0x07,0x39,0x0b,0xa0,0x00,0x02,0x08,0xc4,0x0b,0xa0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa1,0x00,0x02,0x07,0x39,0x0b,0xa1,0x00,0x02,0x08,0xc4, +0x0b,0xa1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa2,0x00,0x02,0x07,0x39,0x0b,0xa2,0x00,0x02,0x08,0xc4,0x0b,0xa2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa3,0x00,0x02,0x07,0x39,0x0b,0xa3,0x00,0x02,0x08,0xc4,0x0b,0xa3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0xa4,0x00,0x02,0x07,0x39,0x0b,0xa4,0x00,0x02,0x08,0xc4,0x0b,0xa4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa5,0x00,0x02,0x07,0x39,0x0b,0xa5,0x00,0x02,0x08,0xc4,0x0b,0xa5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa6,0x00,0x02,0x07,0x39,0x0b,0xa6,0x00,0x02, +0x08,0xc4,0x0b,0xa6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa7,0x00,0x02,0x07,0x39,0x0b,0xa7,0x00,0x02,0x08,0xc4,0x0b,0xa7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xa8,0x00,0x02,0x07,0x39,0x0b,0xa8,0x00,0x02,0x08,0xc4,0x0b,0xa8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0xa9,0x00,0x02,0x07,0x39,0x0b,0xa9,0x00,0x02,0x08,0xc4,0x0b,0xa9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaa,0x00,0x02,0x07,0x39,0x0b,0xaa,0x00,0x02,0x08,0xc4,0x0b,0xaa,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xab,0x00,0x02,0x07,0x39,0x0b,0xab, +0x00,0x02,0x08,0xc4,0x0b,0xab,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xac,0x00,0x02,0x07,0x39,0x0b,0xac,0x00,0x02,0x08,0xc4,0x0b,0xac,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xad,0x00,0x02,0x07,0x39,0x0b,0xad,0x00,0x02,0x08,0xc4,0x0b,0xad,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xae,0x00,0x02,0x07,0x39,0x0b,0xae,0x00,0x02,0x08,0xc4,0x0b,0xae,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xaf,0x00,0x02,0x07,0x39,0x0b,0xaf,0x00,0x02,0x08,0xc4,0x0b,0xaf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb0,0x00,0x02,0x07,0x39, +0x0b,0xb0,0x00,0x02,0x08,0xc4,0x0b,0xb0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb1,0x00,0x02,0x07,0x39,0x0b,0xb1,0x00,0x02,0x08,0xc4,0x0b,0xb1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb2,0x00,0x02,0x07,0x39,0x0b,0xb2,0x00,0x02,0x08,0xc4,0x0b,0xb2,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb3,0x00,0x02,0x07,0x39,0x0b,0xb3,0x00,0x02,0x08,0xc4,0x0b,0xb3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb4,0x00,0x02,0x07,0x39,0x0b,0xb4,0x00,0x02,0x08,0xc4,0x0b,0xb4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb5,0x00,0x02, +0x07,0x39,0x0b,0xb5,0x00,0x02,0x08,0xc4,0x0b,0xb5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb6,0x00,0x02,0x07,0x39,0x0b,0xb6,0x00,0x02,0x08,0xc4,0x0b,0xb6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb7,0x00,0x02,0x07,0x39,0x0b,0xb7,0x00,0x02,0x08,0xc4,0x0b,0xb7,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xb9,0x00,0x02,0x07,0x39,0x0b,0xb9,0x00,0x02,0x08,0xc4,0x0b,0xb9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xbf,0x00,0x02,0x07,0x39,0x0b,0xbf,0x00,0x02,0x08,0xc4,0x0b,0xbf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc0, +0x00,0x02,0x07,0x39,0x0b,0xc0,0x00,0x02,0x08,0xc4,0x0b,0xc0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc1,0x00,0x02,0x07,0x39,0x0b,0xc1,0x00,0x02,0x08,0xc4,0x0b,0xc1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc2,0x00,0x02,0x07,0x39,0x0b,0xc2,0x00,0x02,0x08,0xc4,0x0b,0xc2, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc3,0x00,0x02,0x07,0x39,0x0b,0xc3,0x00,0x02,0x08,0xc4,0x0b,0xc3,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc4,0x00,0x02,0x07,0x39,0x0b,0xc4,0x00,0x02,0x08,0xc4,0x0b,0xc4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x0b,0xc5,0x00,0x02,0x07,0x39,0x0b,0xc5,0x00,0x02,0x08,0xc4,0x0b,0xc5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc6,0x00,0x02,0x07,0x39,0x0b,0xc6,0x00,0x02,0x08,0xc4,0x0b,0xc6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc7,0x00,0x02,0x07,0x39,0x0b,0xc7,0x00,0x02,0x08,0xc4, +0x0b,0xc7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc8,0x00,0x02,0x07,0x39,0x0b,0xc8,0x00,0x02,0x08,0xc4,0x0b,0xc8,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xc9,0x00,0x02,0x07,0x39,0x0b,0xc9,0x00,0x02,0x08,0xc4,0x0b,0xc9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x14,0x0b,0xca,0x00,0x02,0x07,0x39,0x0b,0xca,0x00,0x02,0x08,0xc4,0x0b,0xca,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcb,0x00,0x02,0x07,0x39,0x0b,0xcb,0x00,0x02,0x08,0xc4,0x0b,0xcb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcc,0x00,0x02,0x07,0x39,0x0b,0xcc,0x00,0x02, +0x08,0xc4,0x0b,0xcc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xcd,0x00,0x02,0x07,0x39,0x0b,0xcd,0x00,0x02,0x08,0xc4,0x0b,0xcd,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xce,0x00,0x02,0x07,0x39,0x0b,0xce,0x00,0x02,0x08,0xc4,0x0b,0xce,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08, +0x00,0x0e,0x00,0x14,0x0b,0xcf,0x00,0x02,0x07,0x39,0x0b,0xcf,0x00,0x02,0x08,0xc4,0x0b,0xcf,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd0,0x00,0x02,0x07,0x39,0x0b,0xd0,0x00,0x02,0x08,0xc4,0x0b,0xd0,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd1,0x00,0x02,0x07,0x39,0x0b,0xd1, +0x00,0x02,0x08,0xc4,0x0b,0xd1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd2,0x00,0x02,0x07,0x39,0x0b,0xd2,0x00,0x02,0x08,0xc4,0x0b,0xd2,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd3,0x00,0x02,0x07,0x39,0x0b,0xd3,0x00,0x02,0x08,0xc4,0x0b,0xd3,0x00,0x02,0x08,0xc3,0x00,0x03, +0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd4,0x00,0x02,0x07,0x39,0x0b,0xd4,0x00,0x02,0x08,0xc4,0x0b,0xd4,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd5,0x00,0x02,0x07,0x39,0x0b,0xd5,0x00,0x02,0x08,0xc4,0x0b,0xd5,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd6,0x00,0x02,0x07,0x39, +0x0b,0xd6,0x00,0x02,0x08,0xc4,0x0b,0xd6,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd7,0x00,0x02,0x07,0x39,0x0b,0xd7,0x00,0x02,0x08,0xc4,0x0b,0xd7,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd8,0x00,0x02,0x07,0x39,0x0b,0xd8,0x00,0x02,0x08,0xc4,0x0b,0xd8,0x00,0x02,0x08,0xc3, +0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xd9,0x00,0x02,0x07,0x39,0x0b,0xd9,0x00,0x02,0x08,0xc4,0x0b,0xd9,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xda,0x00,0x02,0x07,0x39,0x0b,0xda,0x00,0x02,0x08,0xc4,0x0b,0xda,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdb,0x00,0x02, +0x07,0x39,0x0b,0xdb,0x00,0x02,0x08,0xc4,0x0b,0xdb,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdc,0x00,0x02,0x07,0x39,0x0b,0xdc,0x00,0x02,0x08,0xc4,0x0b,0xdc,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xdd,0x00,0x02,0x07,0x39,0x0b,0xdd,0x00,0x02,0x08,0xc4,0x0b,0xdd,0x00,0x02, +0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x0b,0xe1,0x00,0x02,0x07,0x39,0x0b,0xe1,0x00,0x02,0x08,0xc4,0x0b,0xe1,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5c,0x00,0x02,0x07,0x39,0x12,0x5c,0x00,0x02,0x08,0xc4,0x12,0x5c,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5d, +0x00,0x02,0x07,0x39,0x12,0x5d,0x00,0x02,0x08,0xc4,0x12,0x5d,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5e,0x00,0x02,0x07,0x39,0x12,0x5e,0x00,0x02,0x08,0xc4,0x12,0x5e,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x5f,0x00,0x02,0x07,0x39,0x12,0x5f,0x00,0x02,0x08,0xc4,0x12,0x5f, +0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x60,0x00,0x02,0x07,0x39,0x12,0x60,0x00,0x02,0x08,0xc4,0x12,0x60,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14,0x12,0x61,0x00,0x02,0x07,0x39,0x12,0x61,0x00,0x02,0x08,0xc4,0x12,0x61,0x00,0x02,0x08,0xc3,0x00,0x03,0x00,0x08,0x00,0x0e,0x00,0x14, +0x12,0x62,0x00,0x02,0x07,0x39,0x12,0x62,0x00,0x02,0x08,0xc4,0x12,0x62,0x00,0x02,0x08,0xc3,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41, +0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0xa2,0x00,0x0d,0x00,0x20,0x00,0x2a,0x00,0x34,0x00,0x3e,0x00,0x48,0x00,0x52,0x00,0x5c,0x00,0x66,0x00,0x70,0x00,0x7a,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0x01,0x00,0x04,0x0b,0x53,0x00,0x02, +0x0b,0x53,0x00,0x01,0x00,0x04,0x0b,0x54,0x00,0x02,0x0b,0x54,0x00,0x01,0x00,0x04,0x0b,0x55,0x00,0x02,0x0b,0x55,0x00,0x01,0x00,0x04,0x0b,0x56,0x00,0x02,0x0b,0x56,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x04,0x0b,0x58,0x00,0x02,0x0b,0x58,0x00,0x01,0x00,0x04,0x0b,0x59,0x00,0x02,0x0b,0x59,0x00,0x01, +0x00,0x04,0x0b,0x5a,0x00,0x02,0x0b,0x5a,0x00,0x01,0x00,0x04,0x0b,0x5b,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x04,0x0b,0x5c,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x5d,0x00,0x02,0x0b,0x5d,0x00,0x01,0x00,0x04,0x0b,0xb9,0x00,0x02,0x0b,0xb9,0x00,0x01,0x00,0x04,0x0b,0xde,0x00,0x02,0x0b,0xde,0x00,0x02,0x00,0x03,0x0b,0x53, +0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x0b,0xde,0x0b,0xde,0x00,0x0c,0x00,0x01,0x01,0x5a,0x00,0x16,0x00,0x32,0x00,0x3c,0x00,0x4e,0x00,0x60,0x00,0x72,0x00,0x84,0x00,0x8e,0x00,0x98,0x00,0xa2,0x00,0xac,0x00,0xb6,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x01,0x0c,0x01,0x16,0x01,0x20,0x01,0x2a, +0x01,0x48,0x00,0x01,0x00,0x04,0x0b,0x9d,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9e,0x00,0x02,0x0b,0x5e,0x0b,0xb4,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x9f,0x00,0x02,0x0b,0x5e,0x12,0x5f,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa0,0x00,0x02,0x0b,0x5e,0x12,0x60,0x00,0x02, +0x0b,0x61,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa1,0x00,0x02,0x0b,0x5e,0x12,0x61,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa2,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa3,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa4,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa5,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04, +0x0b,0xa6,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xa7,0x00,0x02,0x0b,0x5e,0x0b,0xb5,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xa8,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xa9,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaa,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xab,0x00,0x02,0x0b,0x5e, +0x00,0x01,0x00,0x04,0x0b,0xac,0x00,0x02,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xad,0x00,0x02,0x0b,0x5e,0x0b,0xb6,0x00,0x02,0x0b,0x61,0x00,0x01,0x00,0x04,0x0b,0xae,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xaf,0x00,0x02,0x0b,0x5e,0x00,0x01,0x00,0x04,0x0b,0xb0,0x00,0x02,0x0b,0x5e,0x00,0x03,0x00,0x08,0x00,0x0e, +0x00,0x16,0x0b,0xb1,0x00,0x02,0x0b,0x5e,0x0b,0x99,0x00,0x03,0x0b,0x63,0x0b,0x5e,0x0b,0x9a,0x00,0x03,0x0b,0x64,0x0b,0x5e,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0xb2,0x00,0x02,0x0b,0x5e,0x12,0x62,0x00,0x02,0x0b,0x61,0x00,0x02,0x00,0x06,0x0b,0x68,0x0b,0x6e,0x00,0x00,0x0b,0x70,0x0b,0x74,0x00,0x07,0x0b,0x76,0x0b,0x76,0x00,0x0c, +0x0b,0x78,0x0b,0x79,0x00,0x0d,0x0b,0x7b,0x0b,0x7c,0x00,0x0f,0x0b,0x7e,0x0b,0x82,0x00,0x11,0x00,0x01,0x00,0x2e,0x00,0x02,0x00,0x0a,0x00,0x1c,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x97,0x00,0x02,0x0b,0x63,0x0b,0x98,0x00,0x02,0x0b,0x64,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x99,0x00,0x02,0x0b,0x63,0x0b,0x9a,0x00,0x02,0x0b,0x64, +0x00,0x01,0x00,0x02,0x0b,0x81,0x0b,0xb1,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0xb3,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x5c,0x00,0x01,0x00,0x01,0x0b,0xde,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x38,0x02,0x40,0x00,0x01,0x02,0x46,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x24,0x02,0x2c,0x00,0x02,0x02,0x6c,0x02,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x02,0x0e,0x02,0x16,0x00,0x03,0x02,0x56,0x02,0x56,0x02,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xf6,0x01,0xfe,0x00,0x04,0x02,0x3e,0x02,0x3e, +0x02,0x3e,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xdc,0x01,0xe4,0x00,0x02,0x02,0x46,0x02,0x4c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xc6,0x01,0xce,0x00,0x03,0x02,0x0e,0x02,0x30,0x02,0x36,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0xae, +0x01,0xb6,0x00,0x04,0x01,0xf6,0x01,0xf6,0x02,0x18,0x02,0x1e,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x94,0x01,0x9c,0x00,0x05,0x01,0xdc,0x01,0xdc,0x01,0xdc,0x01,0xfe,0x02,0x04,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x78,0x01,0x80,0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00, +0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x64,0x01,0x6c,0x00,0x02,0x01,0xac,0x01,0xe4,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x4e,0x01,0x56,0x00,0x03,0x01,0x96,0x01,0x96,0x01,0xce,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x36,0x01,0x3e,0x00,0x04,0x01,0x7e,0x01,0x7e, +0x01,0x7e,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x1c,0x01,0x24,0x00,0x02,0x01,0x86,0x01,0xa2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x01,0x06,0x01,0x0e,0x00,0x02,0x01,0x70,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xf0,0x00,0xf8, +0x00,0x03,0x01,0x38,0x01,0x5a,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xd8,0x00,0xe0,0x00,0x03,0x01,0x20,0x01,0x42,0x01,0x64,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xc0,0x00,0xc8,0x00,0x04,0x01,0x08,0x01,0x08,0x01,0x2a,0x01,0x46,0x00,0x01,0x00,0x00,0x00,0x78, +0x00,0x03,0x00,0x00,0x00,0x02,0x00,0xa6,0x00,0xae,0x00,0x04,0x00,0xee,0x00,0xee,0x01,0x10,0x01,0x32,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x94,0x00,0x05,0x00,0xd4,0x00,0xd4,0x00,0xd4,0x00,0xf6,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x70,0x00,0x78, +0x00,0x05,0x00,0xb8,0x00,0xb8,0x00,0xb8,0x00,0xda,0x00,0xfc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x54,0x00,0x5c,0x00,0x01,0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x48,0x00,0x02,0x00,0xd8,0x00,0xd2,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00, +0x00,0x02,0x00,0x2a,0x00,0x32,0x00,0x01,0x00,0xf0,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x03,0x00,0x00,0x00,0x02,0x00,0x16,0x00,0x1e,0x00,0x02,0x00,0xae,0x00,0xdc,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x01,0x0b,0x5c,0x00,0x02,0x00,0x09,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x69, +0x0b,0x85,0x00,0x01,0x0b,0x88,0x0b,0x95,0x00,0x1e,0x0b,0x97,0x0b,0x9a,0x00,0x2c,0x0b,0x9d,0x0b,0xa6,0x00,0x30,0x0b,0xa8,0x0b,0xb2,0x00,0x3a,0x0b,0xb4,0x0b,0xb7,0x00,0x45,0x0b,0xe0,0x0b,0xe0,0x00,0x49,0x12,0x5f,0x12,0x62,0x00,0x4a,0x00,0x02,0x00,0x05,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xdd,0x00,0x02,0x0b,0xe1,0x0b,0xe1,0x00,0x21,0x12,0x5c,0x12,0x5d,0x00,0x22,0x00,0x01,0x00,0x01,0x0b,0x68,0x00,0x02,0x00,0x02,0x0b,0x53,0x0b,0x5d,0x00,0x00,0x0b,0xb9,0x0b,0xb9,0x00,0x0b,0x00,0x01,0x00,0x01,0x0b,0x9d,0x00,0x01,0x00,0x01,0x0b,0xb3,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02, +0x00,0x07,0x0b,0x53,0x0b,0x5f,0x00,0x00,0x0b,0x61,0x0b,0x61,0x00,0x0d,0x0b,0x66,0x0b,0x67,0x00,0x0e,0x0b,0xb9,0x0b,0xb9,0x00,0x10,0x0b,0xbf,0x0b,0xdd,0x00,0x11,0x0b,0xe1,0x0b,0xe1,0x00,0x30,0x12,0x5c,0x12,0x5e,0x00,0x31,0x00,0x01,0x00,0x01,0x0b,0xdc,0x00,0x03,0x00,0x02,0x00,0x16,0x00,0x1c,0x00,0x02,0x00,0x22,0x00,0x28, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x79,0x00,0x01,0x00,0x01,0x0b,0x53,0x00,0x01,0x00,0x01,0x0b,0x7e,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x0b,0x57,0x00,0x01,0x00,0x1a,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x0c,0x0b,0x88,0x00,0x02,0x0b,0x53,0x0b,0x89,0x00,0x02,0x0b,0x5b,0x00,0x01,0x00,0x01,0x0b,0x72, +0x00,0x03,0x00,0x02,0x01,0xcc,0x01,0xe8,0x00,0x01,0x01,0xee,0x00,0x02,0x02,0x1c,0x02,0x56,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0xb4,0x01,0xd0,0x00,0x01,0x01,0xd6,0x00,0x01,0x02,0x54,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x9e,0x02,0x66,0x00,0x01,0x01,0xc0,0x00,0x02,0x01,0xee,0x02,0x28, +0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x86,0x02,0x4e,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x70,0x02,0x3e,0x00,0x01,0x01,0x92,0x00,0x02,0x01,0xc0,0x01,0xfa,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x58,0x02,0x26,0x00,0x01,0x01,0x7a, +0x00,0x01,0x01,0xf8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x42,0x02,0x16,0x00,0x01,0x01,0x64,0x00,0x02,0x01,0x92,0x01,0xcc,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x2a,0x01,0xfe,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0xca,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x01,0x14,0x01,0xee, +0x00,0x01,0x01,0x36,0x00,0x02,0x01,0x64,0x01,0x9e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xfc,0x01,0xd6,0x00,0x01,0x01,0x1e,0x00,0x01,0x01,0x9c,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xe6,0x01,0xc6,0x00,0x01,0x01,0x08,0x00,0x02,0x01,0x36,0x01,0x70,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03, +0x00,0x02,0x00,0xce,0x01,0xae,0x00,0x01,0x00,0xf0,0x00,0x01,0x01,0x6e,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xb8,0x01,0x9e,0x00,0x01,0x00,0xda,0x00,0x02,0x01,0x08,0x01,0x42,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0xa0,0x01,0x86,0x00,0x01,0x00,0xc2,0x00,0x01,0x01,0x40,0x00,0x01,0x00,0x00, +0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x8a,0x01,0x76,0x00,0x01,0x00,0xac,0x00,0x02,0x00,0xda,0x01,0x14,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x72,0x01,0x5e,0x00,0x01,0x00,0x94,0x00,0x01,0x01,0x12,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x5c,0x01,0x4e,0x00,0x01,0x00,0x7e,0x00,0x02,0x00,0xac, +0x00,0xe6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x44,0x01,0x36,0x00,0x01,0x00,0x66,0x00,0x01,0x00,0xe4,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x2e,0x01,0x26,0x00,0x01,0x00,0x50,0x00,0x02,0x00,0x7e,0x00,0xb8,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x03,0x00,0x02,0x00,0x16,0x01,0x0e,0x00,0x01, +0x00,0x38,0x00,0x01,0x00,0xb6,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x02,0x00,0x04,0x0b,0x54,0x0b,0x56,0x00,0x00,0x0b,0x58,0x0b,0x5b,0x00,0x03,0x0b,0x5d,0x0b,0x5d,0x00,0x07,0x0b,0xb9,0x0b,0xb9,0x00,0x08,0x00,0x01,0x00,0x01,0x0b,0x6a,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf, +0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6b,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x02,0x0b,0x71,0x0b,0x71,0x00,0x04,0x0b,0x7d,0x0b,0x7d,0x00,0x05,0x0b,0x7f,0x0b,0x80,0x00,0x06,0x0b,0x9f, +0x0b,0xa0,0x00,0x08,0x0b,0xa2,0x0b,0xa3,0x00,0x0a,0x0b,0xa5,0x0b,0xa5,0x00,0x0c,0x0b,0xaf,0x0b,0xb0,0x00,0x0d,0x00,0x02,0x00,0x03,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0xb9,0x0b,0xb9,0x00,0x0a,0x00,0x02,0x00,0x06,0x0b,0x72,0x0b,0x72,0x00,0x00,0x0b,0x77,0x0b,0x77,0x00,0x01,0x0b,0x7b,0x0b,0x7b, +0x00,0x02,0x0b,0x88,0x0b,0x89,0x00,0x03,0x0b,0xa6,0x0b,0xa6,0x00,0x05,0x0b,0xac,0x0b,0xac,0x00,0x06,0x00,0x01,0x00,0x01,0x0b,0x9f,0x00,0x01,0x00,0x01,0x0b,0x6d,0x00,0x01,0x00,0x01,0x0b,0xa2,0x00,0x01,0x00,0x01,0x0b,0x71,0x00,0x01,0x00,0x01,0x0b,0xa5,0x00,0x01,0x00,0x01,0x0b,0x78,0x00,0x01,0x00,0x01,0x0b,0xaa,0x00,0x01, +0x00,0x01,0x0b,0x6e,0x00,0x01,0x00,0x01,0x0b,0xa3,0x00,0x03,0x00,0x02,0x00,0x14,0x00,0x14,0x00,0x01,0x00,0x54,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c, +0x0b,0xbf,0x0b,0xbf,0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67,0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04, +0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x00,0x36,0x00,0x04,0x00,0x0e,0x00,0x16,0x00,0x26,0x00,0x2e,0x00,0x01,0x00,0x04,0x0b,0x67,0x00,0x01,0x00,0x02,0x00,0x06,0x00,0x0c,0x12,0x5d,0x00,0x02,0x04,0x67,0x12,0x5c,0x00,0x01,0x00,0x01, +0x00,0x04,0x12,0x5d,0x00,0x01,0x00,0x01,0x00,0x04,0x12,0x5c,0x00,0x01,0x00,0x02,0x00,0x03,0x02,0x45,0x02,0x45,0x00,0x00,0x04,0x67,0x04,0x68,0x00,0x01,0x0b,0x66,0x0b,0x66,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xf6,0x00,0x04,0x01,0x3c,0x01,0x76,0x01,0x76,0x01,0xb6,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00, +0x00,0x01,0x00,0xde,0x00,0x04,0x01,0x24,0x01,0x5e,0x01,0x5e,0x01,0xa4,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xc6,0x00,0x03,0x01,0x0c,0x01,0x92,0x01,0x86,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0xb0,0x00,0x03,0x00,0xf6,0x01,0x7c,0x01,0x76,0x00,0x01,0x00,0x00,0x00,0x7c, +0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x9a,0x00,0x03,0x00,0xe0,0x01,0x6c,0x01,0x5a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x84,0x00,0x03,0x00,0xca,0x01,0x56,0x01,0x4a,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x03,0x00,0xb4,0x01,0x46,0x01,0x2e,0x00,0x01,0x00,0x00, +0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x58,0x00,0x03,0x00,0x9e,0x01,0x30,0x01,0x1e,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x03,0x00,0x88,0x01,0x20,0x01,0x26,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x2c,0x00,0x03,0x00,0x72,0x01,0x0a,0x01,0x16,0x00,0x01, +0x00,0x00,0x00,0x7c,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x16,0x00,0x03,0x00,0x5c,0x00,0xf4,0x01,0x06,0x00,0x01,0x00,0x00,0x00,0x7c,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a, +0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd,0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x02,0x00,0x09,0x0b,0x6a,0x0b,0x6a,0x00,0x00,0x0b,0x6d,0x0b,0x6e,0x00,0x01,0x0b,0x71,0x0b,0x71,0x00,0x03,0x0b,0x77,0x0b,0x78,0x00,0x04,0x0b,0x9f,0x0b,0x9f, +0x00,0x06,0x0b,0xa2,0x0b,0xa3,0x00,0x07,0x0b,0xa5,0x0b,0xa5,0x00,0x09,0x0b,0xaa,0x0b,0xaa,0x00,0x0a,0x12,0x5f,0x12,0x5f,0x00,0x0b,0x00,0x02,0x00,0x0a,0x0b,0x53,0x0b,0x5b,0x00,0x00,0x0b,0x5d,0x0b,0x5d,0x00,0x09,0x0b,0x5f,0x0b,0x5f,0x00,0x0a,0x0b,0x67,0x0b,0x67,0x00,0x0b,0x0b,0xb9,0x0b,0xb9,0x00,0x0c,0x0b,0xbf,0x0b,0xbf, +0x00,0x0d,0x0b,0xc4,0x0b,0xc4,0x00,0x0e,0x0b,0xc9,0x0b,0xc9,0x00,0x0f,0x0b,0xd0,0x0b,0xd5,0x00,0x10,0x0b,0xd8,0x0b,0xd8,0x00,0x16,0x00,0x01,0x00,0x01,0x0b,0xdb,0x00,0x01,0x00,0x01,0x0b,0xc8,0x00,0x01,0x00,0x01,0x12,0x5b,0x00,0x01,0x00,0x01,0x12,0x59,0x00,0x01,0x00,0x01,0x12,0x5a,0x00,0x01,0x00,0x01,0x0b,0x5f,0x00,0x01, +0x00,0x01,0x0b,0x55,0x00,0x01,0x00,0x01,0x0b,0x54,0x00,0x01,0x00,0x01,0x0b,0x56,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x01,0x00,0x42,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x04,0x00,0x16,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x00,0x01,0x08,0xef, +0x00,0x01,0x00,0x01,0x0e,0x2d,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x2f,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14, +0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a, +0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x76,0x00,0x7c,0x00,0x82,0x00,0x68,0x00,0x88,0x00,0x76,0x00,0x90,0x00,0x68,0x00,0x96,0x00,0x9c,0x00,0x76,0x00,0xa2,0x00,0xa8,0x00,0x68,0x00,0xae,0x00,0x01,0x00,0xb4,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x12,0x00,0x32, +0x00,0x38,0x00,0x3e,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x38,0x00,0x58,0x00,0x46,0x00,0x60,0x00,0x38,0x00,0x66,0x00,0x6c,0x00,0x46,0x00,0x72,0x00,0x78,0x00,0x38,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01, +0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13, +0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, +0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x6a, +0x00,0x70,0x00,0x6a,0x00,0x76,0x00,0x5c,0x00,0x7c,0x00,0x82,0x00,0x6a,0x00,0x8a,0x00,0x90,0x00,0x5c,0x00,0x96,0x00,0x01,0x00,0x9c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x0f,0x00,0x2c,0x00,0x32,0x00,0x38,0x00,0x40,0x00,0x46,0x00,0x40,0x00,0x4c,0x00,0x32,0x00,0x52,0x00,0x58,0x00,0x40,0x00,0x60,0x00,0x66,0x00,0x32,0x00,0x6c, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x02,0x08,0xf7,0x09,0x4b,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x08,0xe2,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x01,0x00,0x01, +0x09,0x29,0x00,0x01,0x00,0x01,0x08,0xd4,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f, +0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c, +0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x3a,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x01,0x00,0x66,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x1e,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0x00,0x01, +0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xc7,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09, +0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c, +0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x07,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x36,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x01,0x00,0x5c,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07, +0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x1c,0x00,0x2e,0x00,0x34,0x00,0x3a,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x01,0x09,0x59,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x08,0xfb,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x02,0x08,0xf3,0x09,0x60,0x00,0x02,0x00,0x13, +0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69, +0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x84, +0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0x9c,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xae,0x00,0xb4,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0xa2,0x00,0xa8,0x00,0xba,0x00,0x7e,0x00,0x01,0x00,0xc0,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x16,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64, +0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x76,0x00,0x7c,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x6a,0x00,0x70,0x00,0x82,0x00,0x46,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01, +0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x09,0x3f,0x00,0x01,0x00,0x01,0x08,0xf3,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01,0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37, +0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16,0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a, +0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f,0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x66,0x00,0x6c,0x00,0x72,0x00,0x78,0x00,0x7e,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90, +0x00,0x96,0x00,0x9c,0x00,0xa2,0x00,0x78,0x00,0x84,0x00,0x8a,0x00,0x90,0x00,0x96,0x00,0xa8,0x00,0x72,0x00,0x01,0x00,0xae,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x13,0x00,0x34,0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x46,0x00,0x52,0x00,0x58,0x00,0x5e, +0x00,0x64,0x00,0x76,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x83,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x01,0x0e,0x32,0x00,0x01,0x00,0x01,0x0e,0x57,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x01,0x0a,0x63,0x00,0x01,0x00,0x01,0x09,0x0d,0x00,0x01,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x01,0x0b,0x0c,0x00,0x01, +0x00,0x01,0x08,0xd0,0x00,0x01,0x00,0x01,0x0e,0x58,0x00,0x01,0x00,0x01,0x0e,0x59,0x00,0x01,0x00,0x01,0x0e,0x61,0x00,0x02,0x00,0x13,0x09,0x2c,0x09,0x33,0x00,0x00,0x09,0x37,0x09,0x37,0x00,0x08,0x09,0x73,0x09,0x75,0x00,0x09,0x09,0x77,0x09,0x77,0x00,0x0c,0x09,0x7e,0x09,0x7f,0x00,0x0d,0x0a,0x0f,0x0a,0x13,0x00,0x0f,0x0a,0x16, +0x0a,0x1b,0x00,0x14,0x0a,0x1e,0x0a,0x1f,0x00,0x1a,0x0a,0x21,0x0a,0x23,0x00,0x1c,0x0a,0x4b,0x0a,0x53,0x00,0x1f,0x0a,0x65,0x0a,0x69,0x00,0x28,0x0a,0x6c,0x0a,0x71,0x00,0x2d,0x0e,0x1a,0x0e,0x1e,0x00,0x33,0x0e,0x62,0x0e,0x6c,0x00,0x38,0x13,0x2a,0x13,0x44,0x00,0x43,0x13,0xe9,0x13,0xe9,0x00,0x5e,0x14,0x17,0x14,0x17,0x00,0x5f, +0x14,0x5d,0x14,0x6a,0x00,0x60,0x14,0x6c,0x14,0x6c,0x00,0x6e,0x00,0x02,0x00,0x08,0x00,0x01,0x0e,0x5c,0x00,0x01,0x00,0x01,0x09,0x28,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x8c,0x14,0x8d,0x14,0x8e,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x88,0x14,0x89,0x14,0x8a,0x14,0x8b,0x14,0x92,0x14,0x93, +0x14,0x94,0x14,0x8f,0x14,0x90,0x14,0x91,0x14,0x95,0x14,0x96,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x02,0x00,0x32,0x00,0x16,0x14,0x9e,0x14,0x9f,0x14,0xa0,0x14,0xa1,0x14,0xa2,0x14,0xa3,0x14,0xa4,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0x9e,0x14,0x9f, +0x14,0xa0,0x14,0xa1,0x14,0xa8,0x14,0xa9,0x14,0xaa,0x14,0xa5,0x14,0xa6,0x14,0xa7,0x14,0xab,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c, +0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3, +0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a,0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a, +0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38, +0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1, +0x00,0x02,0x14,0x9a,0x14,0xa2,0x00,0x02,0x14,0x9a,0x14,0xa3,0x00,0x02,0x14,0x9a,0x14,0xa4,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0x9e,0x00,0x02,0x14,0x9a,0x14,0x9f,0x00,0x02,0x14,0x9a,0x14,0xa0,0x00,0x02,0x14,0x9a,0x14,0xa1,0x00,0x02,0x14,0x9a, +0x14,0xa8,0x00,0x02,0x14,0x9a,0x14,0xa9,0x00,0x02,0x14,0x9a,0x14,0xaa,0x00,0x02,0x14,0x9a,0x14,0xa5,0x00,0x02,0x14,0x9a,0x14,0xa6,0x00,0x02,0x14,0x9a,0x14,0xa7,0x00,0x02,0x14,0x9a,0x14,0xab,0x00,0x02,0x14,0x9a,0x14,0xac,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0,0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d, +0x00,0x14,0x00,0x01,0x00,0xb6,0x00,0x16,0x00,0x32,0x00,0x38,0x00,0x3e,0x00,0x44,0x00,0x4a,0x00,0x50,0x00,0x56,0x00,0x5c,0x00,0x62,0x00,0x68,0x00,0x6e,0x00,0x74,0x00,0x7a,0x00,0x80,0x00,0x86,0x00,0x8c,0x00,0x92,0x00,0x98,0x00,0x9e,0x00,0xa4,0x00,0xaa,0x00,0xb0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8, +0x00,0x02,0x14,0x2b,0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x08,0xdb,0x00,0x02,0x14,0x2b,0x08,0xdc,0x00,0x02,0x14,0x2b,0x08,0xdd,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x08,0xd7,0x00,0x02,0x14,0x2b,0x08,0xd8,0x00,0x02,0x14,0x2b, +0x08,0xd9,0x00,0x02,0x14,0x2b,0x08,0xda,0x00,0x02,0x14,0x2b,0x09,0x53,0x00,0x02,0x14,0x2b,0x09,0x54,0x00,0x02,0x14,0x2b,0x09,0x55,0x00,0x02,0x14,0x2b,0x08,0xde,0x00,0x02,0x14,0x2b,0x08,0xdf,0x00,0x02,0x14,0x2b,0x08,0xe0,0x00,0x02,0x14,0x2b,0x0a,0x3c,0x00,0x02,0x14,0x2b,0x0a,0x3d,0x00,0x02,0x00,0x03,0x08,0xd7,0x08,0xe0, +0x00,0x00,0x09,0x4f,0x09,0x58,0x00,0x0a,0x0a,0x3c,0x0a,0x3d,0x00,0x14,0x00,0x01,0x00,0x1e,0x00,0x03,0x00,0x0c,0x00,0x12,0x00,0x18,0x00,0x02,0x14,0x99,0x0a,0x44,0x00,0x02,0x14,0x9c,0x0a,0x47,0x00,0x02,0x14,0x9d,0x13,0x45,0x00,0x02,0x00,0x03,0x0a,0x44,0x0a,0x44,0x00,0x00,0x0a,0x47,0x0a,0x47,0x00,0x01,0x13,0x45,0x13,0x45, +0x00,0x02,0x00,0x02,0x00,0x1e,0x00,0x0c,0x0f,0x8c,0x0f,0x8d,0x0f,0x8e,0x0f,0x90,0x0f,0x92,0x0f,0x94,0x0f,0x8f,0x0f,0x91,0x0f,0x93,0x0f,0x95,0x0f,0x96,0x0f,0x97,0x00,0x02,0x00,0x08,0x08,0xee,0x08,0xee,0x00,0x00,0x09,0x3f,0x09,0x3f,0x00,0x01,0x09,0xec,0x09,0xec,0x00,0x02,0x09,0xee,0x09,0xee,0x00,0x03,0x09,0xf0,0x09,0xf0, +0x00,0x04,0x09,0xf2,0x09,0xf2,0x00,0x05,0x0a,0x5f,0x0a,0x62,0x00,0x06,0x0a,0xb2,0x0a,0xb3,0x00,0x0a,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0f,0x65,0x0f,0x63,0x0f,0x62,0x0f,0x64,0x0f,0x66,0x0f,0x67,0x0f,0x68,0x0f,0x69,0x0f,0x6a,0x0f,0x6b,0x00,0x02,0x00,0x07,0x08,0xc7,0x08,0xca,0x00,0x00,0x09,0x81,0x09,0x81,0x00,0x04,0x09,0x83, +0x09,0x83,0x00,0x05,0x09,0x85,0x09,0x85,0x00,0x06,0x09,0x87,0x09,0x87,0x00,0x07,0x0f,0x29,0x0f,0x29,0x00,0x08,0x0f,0x2b,0x0f,0x2b,0x00,0x09,0x00,0x02,0x00,0x46,0x00,0x20,0x0f,0x6c,0x0f,0x6e,0x0f,0x82,0x0f,0x84,0x0f,0x70,0x0f,0x72,0x0f,0x74,0x0f,0x86,0x0f,0x88,0x0f,0x76,0x0f,0x8a,0x0f,0x78,0x0f,0x7a,0x0f,0x6d,0x0f,0x6f, +0x0f,0x83,0x0f,0x85,0x0f,0x71,0x0f,0x73,0x0f,0x75,0x0f,0x87,0x0f,0x89,0x0f,0x77,0x0f,0x8b,0x0f,0x79,0x0f,0x7b,0x0f,0x7c,0x0f,0x7d,0x0f,0x7e,0x0f,0x7f,0x0f,0x80,0x0f,0x81,0x00,0x02,0x00,0x1b,0x08,0xd4,0x08,0xd6,0x00,0x00,0x08,0xe1,0x08,0xe1,0x00,0x03,0x09,0xba,0x09,0xba,0x00,0x04,0x09,0xbc,0x09,0xbc,0x00,0x05,0x09,0xbe, +0x09,0xbe,0x00,0x06,0x09,0xc0,0x09,0xc0,0x00,0x07,0x09,0xc2,0x09,0xc2,0x00,0x08,0x0a,0x25,0x0a,0x25,0x00,0x09,0x0a,0x27,0x0a,0x27,0x00,0x0a,0x0a,0x8a,0x0a,0x8a,0x00,0x0b,0x0a,0xb7,0x0a,0xb7,0x00,0x0c,0x0e,0x32,0x0e,0x32,0x00,0x0d,0x0e,0x34,0x0e,0x34,0x00,0x0e,0x0e,0x36,0x0e,0x36,0x00,0x0f,0x0e,0x38,0x0e,0x38,0x00,0x10, +0x0e,0x99,0x0e,0x99,0x00,0x11,0x0e,0x9b,0x0e,0x9b,0x00,0x12,0x0e,0x9d,0x0e,0x9d,0x00,0x13,0x0e,0x9f,0x0e,0x9f,0x00,0x14,0x0e,0xa1,0x0e,0xa1,0x00,0x15,0x0e,0xed,0x0e,0xed,0x00,0x16,0x0e,0xef,0x0e,0xef,0x00,0x17,0x0f,0x04,0x0f,0x04,0x00,0x18,0x0f,0x15,0x0f,0x15,0x00,0x19,0x0f,0x20,0x0f,0x21,0x00,0x1a,0x0f,0x46,0x0f,0x47, +0x00,0x1c,0x0f,0x4a,0x0f,0x4b,0x00,0x1e,0x00,0x02,0x00,0x4a,0x00,0x22,0x0f,0xac,0x0f,0xab,0x0f,0xa7,0x0f,0xbd,0x0f,0xad,0x0f,0xae,0x0f,0xaf,0x0f,0xbe,0x0f,0xb0,0x0f,0xa2,0x0f,0xa5,0x0f,0x98,0x0f,0x99,0x0f,0xc3,0x0f,0x9a,0x0f,0x9b,0x0f,0x9c,0x0f,0x9d,0x0f,0x9e,0x0f,0x9f,0x0f,0xa0,0x0f,0xa1,0x0f,0xa4,0x0f,0xbf,0x0f,0xa8, +0x0f,0xa9,0x0f,0xaa,0x0f,0xa3,0x0f,0xa6,0x0f,0xb1,0x0f,0xb2,0x0f,0xb3,0x14,0xad,0x14,0xae,0x00,0x02,0x00,0x16,0x08,0xf5,0x08,0xf5,0x00,0x00,0x08,0xf7,0x08,0xf7,0x00,0x01,0x09,0x02,0x09,0x02,0x00,0x02,0x09,0x4b,0x09,0x4b,0x00,0x03,0x09,0x8b,0x09,0x8b,0x00,0x04,0x0a,0x06,0x0a,0x06,0x00,0x05,0x0a,0x08,0x0a,0x08,0x00,0x06, +0x0a,0x0c,0x0a,0x0c,0x00,0x07,0x0a,0x0e,0x0a,0x0e,0x00,0x08,0x0a,0x57,0x0a,0x57,0x00,0x09,0x0a,0xb5,0x0a,0xb5,0x00,0x0a,0x0b,0x0c,0x0b,0x17,0x00,0x0b,0x0e,0x21,0x0e,0x21,0x00,0x17,0x0e,0x48,0x0e,0x48,0x00,0x18,0x0e,0x4c,0x0e,0x4c,0x00,0x19,0x0e,0x50,0x0e,0x50,0x00,0x1a,0x0f,0x02,0x0f,0x02,0x00,0x1b,0x0f,0x23,0x0f,0x23, +0x00,0x1c,0x0f,0x2d,0x0f,0x2d,0x00,0x1d,0x0f,0x31,0x0f,0x31,0x00,0x1e,0x0f,0x35,0x0f,0x35,0x00,0x1f,0x14,0x7d,0x14,0x7e,0x00,0x20,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb6,0x0f,0xb8,0x0f,0xba,0x0f,0xbc,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f, +0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x0f,0xb5,0x0f,0xb7,0x0f,0xb9,0x0f,0xbb,0x00,0x02,0x00,0x04,0x09,0x66,0x09,0x66,0x00,0x00,0x09,0x68,0x09,0x68,0x00,0x01,0x0f,0x3d,0x0f,0x3d,0x00,0x02,0x0f,0x3f,0x0f,0x3f,0x00,0x03,0x00,0x02,0x00,0x0e,0x00,0x04,0x00,0xd6,0x06,0xac,0x11,0x8c,0x06,0xad,0x00,0x02,0x00,0x03, +0x00,0x4c,0x00,0x4d,0x00,0x00,0x01,0x62,0x01,0x62,0x00,0x02,0x05,0x6d,0x05,0x6d,0x00,0x03,0x00,0x02,0x00,0x1a,0x00,0x0a,0x0c,0xe1,0x0c,0xe2,0x0c,0xe3,0x0c,0xe4,0x0c,0xe5,0x0c,0xe6,0x0c,0xe7,0x0c,0xe8,0x0c,0xe9,0x0c,0xea,0x00,0x02,0x00,0x01,0x00,0x13,0x00,0x1c,0x00,0x00,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0x8d,0x00,0x01, +0x00,0x01,0x0b,0x7a,0x00,0x02,0x00,0x08,0x00,0x01,0x0b,0xd6,0x00,0x01,0x00,0x01,0x0b,0xc7,0x00,0x02,0x00,0x08,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x1e,0x00,0x02,0x00,0x0a,0x00,0x14,0x00,0x01,0x00,0x04,0x0b,0x8a,0x00,0x02,0x0b,0x5c,0x00,0x01,0x00,0x04,0x0b,0x8b,0x00,0x02,0x0b,0x5c,0x00,0x01, +0x00,0x02,0x0b,0x74,0x0b,0xa8,0x00,0x01,0x00,0x12,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x0b,0x57,0x00,0x02,0x0b,0x57,0x00,0x01,0x00,0x01,0x0a,0x43,0x00,0x01,0x00,0x66,0x00,0x0c,0x00,0x1e,0x00,0x24,0x00,0x2a,0x00,0x30,0x00,0x36,0x00,0x3c,0x00,0x42,0x00,0x48,0x00,0x4e,0x00,0x54,0x00,0x5a,0x00,0x60,0x00,0x02,0x0b,0x5f, +0x0b,0x07,0x00,0x02,0x0b,0x67,0x0b,0x07,0x00,0x02,0x0b,0xbf,0x0b,0x07,0x00,0x02,0x0b,0xc4,0x0b,0x07,0x00,0x02,0x0b,0xc9,0x0b,0x07,0x00,0x02,0x0b,0xd0,0x0b,0x07,0x00,0x02,0x0b,0xd1,0x0b,0x07,0x00,0x02,0x0b,0xd2,0x0b,0x07,0x00,0x02,0x0b,0xd3,0x0b,0x07,0x00,0x02,0x0b,0xd4,0x0b,0x07,0x00,0x02,0x0b,0xd5,0x0b,0x07,0x00,0x02, +0x0b,0xd8,0x0b,0x07,0x00,0x02,0x00,0x07,0x0b,0x5f,0x0b,0x5f,0x00,0x00,0x0b,0x67,0x0b,0x67,0x00,0x01,0x0b,0xbf,0x0b,0xbf,0x00,0x02,0x0b,0xc4,0x0b,0xc4,0x00,0x03,0x0b,0xc9,0x0b,0xc9,0x00,0x04,0x0b,0xd0,0x0b,0xd5,0x00,0x05,0x0b,0xd8,0x0b,0xd8,0x00,0x0b,0x00,0x01,0x00,0x76,0x00,0x0e,0x00,0x22,0x00,0x28,0x00,0x2e,0x00,0x34, +0x00,0x3a,0x00,0x40,0x00,0x46,0x00,0x4c,0x00,0x52,0x00,0x58,0x00,0x5e,0x00,0x64,0x00,0x6a,0x00,0x70,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc4,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02, +0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x00,0x09,0x0b,0x53,0x0b,0x53,0x00,0x00,0x0b,0x5a,0x0b,0x5a,0x00,0x01,0x0b,0x5f,0x0b,0x5f,0x00,0x02,0x0b,0x67, +0x0b,0x67,0x00,0x03,0x0b,0xbf,0x0b,0xbf,0x00,0x04,0x0b,0xc4,0x0b,0xc4,0x00,0x05,0x0b,0xc9,0x0b,0xc9,0x00,0x06,0x0b,0xd0,0x0b,0xd5,0x00,0x07,0x0b,0xd8,0x0b,0xd8,0x00,0x0d,0x00,0x01,0x04,0x26,0x00,0x84,0x01,0x0e,0x01,0x14,0x01,0x1a,0x01,0x20,0x01,0x26,0x01,0x2c,0x01,0x32,0x01,0x38,0x01,0x3e,0x01,0x44,0x01,0x4a,0x01,0x50, +0x01,0x56,0x01,0x5c,0x01,0x62,0x01,0x68,0x01,0x6e,0x01,0x74,0x01,0x7a,0x01,0x80,0x01,0x86,0x01,0x8c,0x01,0x92,0x01,0x98,0x01,0x9e,0x01,0xa4,0x01,0xaa,0x01,0xb0,0x01,0xb6,0x01,0xbc,0x01,0xc2,0x01,0xc8,0x01,0xce,0x01,0xd4,0x01,0xda,0x01,0xe0,0x01,0xe6,0x01,0xec,0x01,0xf2,0x01,0xf8,0x01,0xfe,0x02,0x04,0x02,0x0a,0x02,0x10, +0x02,0x16,0x02,0x1c,0x02,0x22,0x02,0x28,0x02,0x2e,0x02,0x34,0x02,0x3a,0x02,0x40,0x02,0x46,0x02,0x4c,0x02,0x52,0x02,0x58,0x02,0x5e,0x02,0x64,0x02,0x6a,0x02,0x70,0x02,0x76,0x02,0x7c,0x02,0x82,0x02,0x88,0x02,0x8e,0x02,0x94,0x02,0x9a,0x02,0xa0,0x02,0xa6,0x02,0xac,0x02,0xb2,0x02,0xb8,0x02,0xbe,0x02,0xc4,0x02,0xca,0x02,0xd0, +0x02,0xd6,0x02,0xdc,0x02,0xe2,0x02,0xe8,0x02,0xee,0x02,0xf4,0x02,0xfa,0x03,0x00,0x03,0x06,0x03,0x0c,0x03,0x12,0x03,0x18,0x03,0x1e,0x03,0x24,0x03,0x2a,0x03,0x30,0x03,0x36,0x03,0x3c,0x03,0x42,0x03,0x48,0x03,0x4e,0x03,0x54,0x03,0x5a,0x03,0x60,0x03,0x66,0x03,0x6c,0x03,0x72,0x03,0x78,0x03,0x7e,0x03,0x84,0x03,0x8a,0x03,0x90, +0x03,0x96,0x03,0x9c,0x03,0xa2,0x03,0xa8,0x03,0xae,0x03,0xb4,0x03,0xba,0x03,0xc0,0x03,0xc6,0x03,0xcc,0x03,0xd2,0x03,0xd8,0x03,0xde,0x03,0xe4,0x03,0xea,0x03,0xf0,0x03,0xf6,0x03,0xfc,0x04,0x02,0x04,0x08,0x04,0x0e,0x04,0x14,0x04,0x1a,0x04,0x20,0x00,0x02,0x0a,0x43,0x11,0x86,0x00,0x02,0x0b,0x53,0x11,0x86,0x00,0x02,0x0b,0x54, +0x11,0x86,0x00,0x02,0x0b,0x55,0x11,0x86,0x00,0x02,0x0b,0x56,0x11,0x86,0x00,0x02,0x0b,0x57,0x11,0x86,0x00,0x02,0x0b,0x58,0x11,0x86,0x00,0x02,0x0b,0x59,0x11,0x86,0x00,0x02,0x0b,0x5a,0x11,0x86,0x00,0x02,0x0b,0x5b,0x11,0x86,0x00,0x02,0x0b,0x5c,0x11,0x86,0x00,0x02,0x0b,0x5d,0x11,0x86,0x00,0x02,0x0b,0x5e,0x11,0x86,0x00,0x02, +0x0b,0x5f,0x11,0x86,0x00,0x02,0x0b,0x61,0x11,0x86,0x00,0x02,0x0b,0x66,0x11,0x86,0x00,0x02,0x0b,0x67,0x11,0x86,0x00,0x02,0x0b,0x68,0x11,0x86,0x00,0x02,0x0b,0x69,0x11,0x86,0x00,0x02,0x0b,0x6a,0x11,0x86,0x00,0x02,0x0b,0x6b,0x11,0x86,0x00,0x02,0x0b,0x6c,0x11,0x86,0x00,0x02,0x0b,0x6d,0x11,0x86,0x00,0x02,0x0b,0x6e,0x11,0x86, +0x00,0x02,0x0b,0x6f,0x11,0x86,0x00,0x02,0x0b,0x70,0x11,0x86,0x00,0x02,0x0b,0x71,0x11,0x86,0x00,0x02,0x0b,0x72,0x11,0x86,0x00,0x02,0x0b,0x73,0x11,0x86,0x00,0x02,0x0b,0x74,0x11,0x86,0x00,0x02,0x0b,0x75,0x11,0x86,0x00,0x02,0x0b,0x76,0x11,0x86,0x00,0x02,0x0b,0x77,0x11,0x86,0x00,0x02,0x0b,0x78,0x11,0x86,0x00,0x02,0x0b,0x79, +0x11,0x86,0x00,0x02,0x0b,0x7a,0x11,0x86,0x00,0x02,0x0b,0x7b,0x11,0x86,0x00,0x02,0x0b,0x7c,0x11,0x86,0x00,0x02,0x0b,0x7d,0x11,0x86,0x00,0x02,0x0b,0x7e,0x11,0x86,0x00,0x02,0x0b,0x7f,0x11,0x86,0x00,0x02,0x0b,0x80,0x11,0x86,0x00,0x02,0x0b,0x81,0x11,0x86,0x00,0x02,0x0b,0x82,0x11,0x86,0x00,0x02,0x0b,0x83,0x11,0x86,0x00,0x02, +0x0b,0x84,0x11,0x86,0x00,0x02,0x0b,0x85,0x11,0x86,0x00,0x02,0x0b,0x88,0x11,0x86,0x00,0x02,0x0b,0x89,0x11,0x86,0x00,0x02,0x0b,0x8a,0x11,0x86,0x00,0x02,0x0b,0x8b,0x11,0x86,0x00,0x02,0x0b,0x8c,0x11,0x86,0x00,0x02,0x0b,0x8d,0x11,0x86,0x00,0x02,0x0b,0x8e,0x11,0x86,0x00,0x02,0x0b,0x8f,0x11,0x86,0x00,0x02,0x0b,0x90,0x11,0x86, +0x00,0x02,0x0b,0x91,0x11,0x86,0x00,0x02,0x0b,0x92,0x11,0x86,0x00,0x02,0x0b,0x93,0x11,0x86,0x00,0x02,0x0b,0x94,0x11,0x86,0x00,0x02,0x0b,0x95,0x11,0x86,0x00,0x02,0x0b,0x97,0x11,0x86,0x00,0x02,0x0b,0x98,0x11,0x86,0x00,0x02,0x0b,0x99,0x11,0x86,0x00,0x02,0x0b,0x9a,0x11,0x86,0x00,0x02,0x0b,0x9d,0x11,0x86,0x00,0x02,0x0b,0x9e, +0x11,0x86,0x00,0x02,0x0b,0x9f,0x11,0x86,0x00,0x02,0x0b,0xa0,0x11,0x86,0x00,0x02,0x0b,0xa1,0x11,0x86,0x00,0x02,0x0b,0xa2,0x11,0x86,0x00,0x02,0x0b,0xa3,0x11,0x86,0x00,0x02,0x0b,0xa4,0x11,0x86,0x00,0x02,0x0b,0xa5,0x11,0x86,0x00,0x02,0x0b,0xa6,0x11,0x86,0x00,0x02,0x0b,0xa7,0x11,0x86,0x00,0x02,0x0b,0xa8,0x11,0x86,0x00,0x02, +0x0b,0xa9,0x11,0x86,0x00,0x02,0x0b,0xaa,0x11,0x86,0x00,0x02,0x0b,0xab,0x11,0x86,0x00,0x02,0x0b,0xac,0x11,0x86,0x00,0x02,0x0b,0xad,0x11,0x86,0x00,0x02,0x0b,0xae,0x11,0x86,0x00,0x02,0x0b,0xaf,0x11,0x86,0x00,0x02,0x0b,0xb0,0x11,0x86,0x00,0x02,0x0b,0xb1,0x11,0x86,0x00,0x02,0x0b,0xb2,0x11,0x86,0x00,0x02,0x0b,0xb3,0x11,0x86, +0x00,0x02,0x0b,0xb4,0x11,0x86,0x00,0x02,0x0b,0xb5,0x11,0x86,0x00,0x02,0x0b,0xb6,0x11,0x86,0x00,0x02,0x0b,0xb7,0x11,0x86,0x00,0x02,0x0b,0xb9,0x11,0x86,0x00,0x02,0x0b,0xbf,0x11,0x86,0x00,0x02,0x0b,0xc0,0x11,0x86,0x00,0x02,0x0b,0xc1,0x11,0x86,0x00,0x02,0x0b,0xc2,0x11,0x86,0x00,0x02,0x0b,0xc3,0x11,0x86,0x00,0x02,0x0b,0xc4, +0x11,0x86,0x00,0x02,0x0b,0xc5,0x11,0x86,0x00,0x02,0x0b,0xc6,0x11,0x86,0x00,0x02,0x0b,0xc7,0x11,0x86,0x00,0x02,0x0b,0xc8,0x11,0x86,0x00,0x02,0x0b,0xc9,0x11,0x86,0x00,0x02,0x0b,0xca,0x11,0x86,0x00,0x02,0x0b,0xcb,0x11,0x86,0x00,0x02,0x0b,0xcc,0x11,0x86,0x00,0x02,0x0b,0xcd,0x11,0x86,0x00,0x02,0x0b,0xce,0x11,0x86,0x00,0x02, +0x0b,0xcf,0x11,0x86,0x00,0x02,0x0b,0xd0,0x11,0x86,0x00,0x02,0x0b,0xd1,0x11,0x86,0x00,0x02,0x0b,0xd2,0x11,0x86,0x00,0x02,0x0b,0xd3,0x11,0x86,0x00,0x02,0x0b,0xd4,0x11,0x86,0x00,0x02,0x0b,0xd5,0x11,0x86,0x00,0x02,0x0b,0xd6,0x11,0x86,0x00,0x02,0x0b,0xd7,0x11,0x86,0x00,0x02,0x0b,0xd8,0x11,0x86,0x00,0x02,0x0b,0xd9,0x11,0x86, +0x00,0x02,0x0b,0xda,0x11,0x86,0x00,0x02,0x0b,0xdb,0x11,0x86,0x00,0x02,0x0b,0xdc,0x11,0x86,0x00,0x02,0x0b,0xdd,0x11,0x86,0x00,0x02,0x0b,0xe1,0x11,0x86,0x00,0x02,0x12,0x5c,0x11,0x86,0x00,0x02,0x12,0x5d,0x11,0x86,0x00,0x02,0x12,0x5e,0x11,0x86,0x00,0x02,0x12,0x5f,0x11,0x86,0x00,0x02,0x12,0x60,0x11,0x86,0x00,0x02,0x12,0x61, +0x11,0x86,0x00,0x02,0x12,0x62,0x11,0x86,0x00,0x02,0x00,0x0b,0x0a,0x43,0x0a,0x43,0x00,0x00,0x0b,0x53,0x0b,0x5f,0x00,0x01,0x0b,0x61,0x0b,0x61,0x00,0x0e,0x0b,0x66,0x0b,0x85,0x00,0x0f,0x0b,0x88,0x0b,0x95,0x00,0x2f,0x0b,0x97,0x0b,0x9a,0x00,0x3d,0x0b,0x9d,0x0b,0xb7,0x00,0x41,0x0b,0xb9,0x0b,0xb9,0x00,0x5c,0x0b,0xbf,0x0b,0xdd, +0x00,0x5d,0x0b,0xe1,0x0b,0xe1,0x00,0x7c,0x12,0x5c,0x12,0x62,0x00,0x7d,0x00,0x01,0x00,0x16,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xef,0x00,0x04,0x0e,0x2d,0x0e,0x58,0x0e,0x2f,0x00,0x01,0x00,0x01,0x08,0xef,0x00,0x01,0x00,0x82,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x2e,0x00,0x54,0x13,0xf0,0x00,0x12,0x09,0x3f, +0x08,0xf7,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29, +0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x12,0x09,0x3f,0x09,0x4b,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x09,0x60,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x70,0x00,0x01,0x00,0x08,0x00,0x03,0x00,0x08,0x00,0x28, +0x00,0x48,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x08,0xf7,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x08,0xf3,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f, +0x0e,0x57,0x13,0xf0,0x00,0x0f,0x09,0x3f,0x09,0x4b,0x00,0x03,0x0a,0x63,0x00,0x03,0x08,0xe2,0x09,0x3f,0x0e,0x61,0x09,0x60,0x00,0x03,0x09,0x29,0x08,0xd4,0x09,0x3f,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xd6,0x00,0x01,0x00,0x32,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x18,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce, +0x09,0x3f,0x08,0xc7,0x08,0xee,0x08,0xf3,0x13,0xf1,0x00,0x08,0x09,0x59,0x00,0x03,0x08,0xce,0x09,0x3f,0x08,0xc7,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x2e,0x00,0x01,0x00,0x08,0x00,0x02,0x00,0x06,0x00,0x16,0x13,0xf1,0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x08,0xf3,0x13,0xf1, +0x00,0x07,0x09,0x59,0x00,0x03,0x08,0xce,0x08,0xfb,0x08,0xee,0x09,0x60,0x00,0x01,0x00,0x01,0x08,0xce,0x00,0x01,0x00,0x3a,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x16,0x0e,0x32,0x0e,0x57,0x00,0x03,0x09,0x0d,0x08,0xee,0x09,0x3f,0x08,0xf3,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59, +0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x01,0x00,0x34,0x00,0x01,0x00,0x08,0x00,0x01,0x00,0x04,0x13,0xf2,0x00,0x13,0x0e,0x32,0x0e,0x57,0x00,0x03,0x0a,0x63,0x00,0x03,0x09,0x0d,0x08,0xee,0x0b,0x0c,0x08,0xd0,0x0e,0x58,0x0e,0x59,0x00,0x03,0x09,0x0d,0x08,0xee, +0x0b,0x0c,0x08,0xd0,0x0e,0x61,0x0e,0x57,0x00,0x01,0x00,0x01,0x08,0xcb,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x02,0x64,0x6c,0x6e,0x67,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x2c,0x73,0x6c,0x6e,0x67,0x00,0x00,0x00,0x54, +0x00,0x00,0x00,0x2c,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41,0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75,0x4c,0x61,0x74,0x6e,0x2c,0x47,0x72,0x65,0x6b,0x2c,0x43,0x79,0x72,0x6c,0x2c,0x41, +0x72,0x6d,0x6e,0x2c,0x47,0x65,0x6f,0x72,0x2c,0x47,0x65,0x6f,0x6b,0x2c,0x41,0x72,0x61,0x62,0x2c,0x48,0x65,0x62,0x72,0x2c,0x4c,0x69,0x73,0x75, +}; + +read_only global String8 rd_default_main_font_bytes = {rd_default_main_font_bytes__data, sizeof(rd_default_main_font_bytes__data)}; +read_only global U8 rd_default_code_font_bytes__data[] = +{ +0x00,0x01,0x00,0x00,0x00,0x11,0x01,0x00,0x00,0x04,0x00,0x10,0x47,0x44,0x45,0x46,0x14,0xdc,0x05,0x92,0x00,0x03,0xa6,0x14,0x00,0x00,0x02,0x2a,0x47,0x50,0x4f,0x53,0x68,0xe9,0x9a,0x47,0x00,0x03,0xa8,0x40,0x00,0x00,0x23,0x96,0x47,0x53,0x55,0x42,0x28,0xdb,0xc9,0x88,0x00,0x03,0xcb,0xd8,0x00,0x00,0x62,0x14,0x4f,0x53,0x2f,0x32, +0x12,0x35,0x0b,0x84,0x00,0x00,0x01,0x98,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x5a,0x24,0x58,0xda,0x00,0x00,0x1d,0x34,0x00,0x00,0x42,0x6a,0x63,0x76,0x74,0x20,0x27,0x58,0x0f,0x1a,0x00,0x00,0x6e,0x84,0x00,0x00,0x00,0xa8,0x66,0x70,0x67,0x6d,0x62,0x2f,0x03,0x7f,0x00,0x00,0x5f,0xa0,0x00,0x00,0x0e,0x0c,0x67,0x61,0x73,0x70, +0x00,0x00,0x00,0x10,0x00,0x03,0xa6,0x0c,0x00,0x00,0x00,0x08,0x67,0x6c,0x79,0x66,0x6c,0x17,0x21,0x7d,0x00,0x00,0x8a,0x6c,0x00,0x02,0xc9,0x3c,0x68,0x65,0x61,0x64,0x1b,0x2b,0x60,0x84,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x36,0x68,0x68,0x65,0x61,0x00,0x35,0x07,0x57,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x24,0x68,0x6d,0x74,0x78, +0x54,0xf6,0x4a,0x0f,0x00,0x00,0x01,0xf8,0x00,0x00,0x1b,0x3c,0x6c,0x6f,0x63,0x61,0x08,0x34,0x21,0x64,0x00,0x00,0x6f,0x2c,0x00,0x00,0x1b,0x40,0x6d,0x61,0x78,0x70,0x0f,0xc8,0x14,0x44,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0x20,0x6e,0x61,0x6d,0x65,0x94,0x4b,0x4e,0x5d,0x00,0x03,0x53,0xa8,0x00,0x00,0x06,0x2f,0x70,0x6f,0x73,0x74, +0x5d,0x5a,0x9a,0x04,0x00,0x03,0x59,0xd8,0x00,0x00,0x4c,0x33,0x70,0x72,0x65,0x70,0x8a,0xcd,0x9c,0x1e,0x00,0x00,0x6d,0xac,0x00,0x00,0x00,0xd6,0x00,0x01,0x00,0x00,0x00,0x02,0x4d,0xd3,0x13,0x13,0x3d,0xf7,0x5f,0x0f,0x3c,0xf5,0x00,0x0f,0x03,0xe8,0x00,0x00,0x00,0x00,0xdf,0xe8,0x66,0x79,0x00,0x00,0x00,0x00,0xdf,0xe8,0x68,0x84, +0xf9,0x39,0xfe,0x70,0x02,0xfd,0x04,0x60,0x00,0x00,0x00,0x06,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x02,0x58,0xf9,0x39,0xff,0x5b,0x02,0xfd,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x01,0x00,0x00,0x06,0xcf,0x01,0xb8, +0x00,0x6e,0x00,0x87,0x00,0x06,0x00,0x02,0x02,0x94,0x03,0xf6,0x00,0x8d,0x00,0x00,0x05,0x60,0x0e,0x0c,0x00,0x03,0x00,0x01,0x00,0x04,0x02,0x58,0x01,0x90,0x00,0x05,0x00,0x00,0x02,0x8a,0x02,0x58,0x00,0x00,0x00,0x4b,0x02,0x8a,0x02,0x58,0x00,0x00,0x01,0x5e,0x00,0x32,0x01,0x40,0x00,0x00,0x02,0x00,0x00,0x09,0x00,0x00,0x00,0x00, +0x00,0x00,0xa0,0x04,0x02,0xff,0x12,0x00,0xf9,0xfb,0x02,0x00,0x00,0x3c,0x00,0x00,0x00,0x00,0x4a,0x42,0x00,0x00,0x00,0xc0,0x00,0x0d,0xff,0xff,0x03,0xfc,0xfe,0xd4,0x00,0x00,0x03,0xfc,0x01,0x2c,0x20,0x00,0x01,0x9f,0xdf,0xd7,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x00,0x00,0x20,0x00,0x06,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x0a, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x75,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x48, +0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xd4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x61,0x02,0x58,0x00,0x61, +0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x70, +0x02,0x58,0x00,0x70,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36, +0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x22,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xaf,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x06, +0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2e, +0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x35,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x38,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x51,0x02,0x58,0x00,0x59,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x56,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x82, +0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58, +0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x57,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5b,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5c, +0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0x8d,0x02,0x58,0xff,0xb0,0x02,0x58,0xff,0x83,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x23, +0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x67,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x36, +0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x5a, +0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x54,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x5c,0x02,0x58,0x00,0x30,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x1a,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x4a,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x36,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x1e, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x40,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x49, +0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b, +0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b, +0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0x8d,0x02,0x58,0x00,0x86,0x02,0x58,0x00,0x94,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8b,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84, +0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x9a,0x02,0x58,0x00,0x90,0x02,0x58,0x00,0x84,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x8a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05, +0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x89,0x02,0x58,0x00,0x91,0x02,0x58,0x00,0x4c,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0xe1,0x02,0x58,0x00,0x82,0x02,0x58,0x00,0x73, +0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x24,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x87,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xda,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xd9,0x00,0x00,0xff,0x1a, +0x00,0x00,0xff,0x79,0x02,0x58,0x00,0xb9,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x5f,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x87, +0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xd2, +0x02,0x58,0x00,0xdc,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x8f,0x02,0x58,0x00,0xf9,0x02,0x58,0xfe,0x34,0x02,0x58,0xfb,0xdc,0x02,0x58,0xf9,0x4d,0x02,0x58,0xfb,0xa6,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfd,0xfd, +0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfe,0x0c,0x02,0x58,0xf9,0x7f,0x02,0x58,0xf9,0x7f,0x02,0x58,0xfc,0x09,0x02,0x58,0xfe,0x43,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x8e,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfe,0xd4,0x02,0x58,0xfc,0x90,0x02,0x58,0xfc,0x71, +0x02,0x58,0xfe,0x82,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfe,0xd1,0x02,0x58,0xfc,0xc9,0x02,0x58,0xfc,0x44,0x02,0x58,0xfe,0xb3,0x02,0x58,0xfc,0x2c,0x02,0x58,0xfe,0x52,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0x81,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0xbd,0x02,0x58,0xfe,0xc5,0x02,0x58,0xfc,0x68,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5, +0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x90,0x02,0x58,0xfe,0x5c,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfe,0x52,0x02,0x58,0xfb,0x9c,0x02,0x58,0xfd,0xe5,0x02,0x58,0xfd,0xcc,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xe9,0x02,0x58,0xfb,0x91, +0x02,0x58,0xf9,0x39,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfd,0xcb,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x11,0x02,0x58,0xfb,0xa0,0x02,0x58,0xfe,0x16,0x02,0x58,0xfe,0x3e,0x02,0x58,0xfb,0xfa,0x02,0x58,0xfc,0x13,0x02,0x58,0xfe,0x66,0x02,0x58,0xfe,0x66,0x02,0x58,0xfc,0x22,0x02,0x58,0xfd,0xe4, +0x02,0x58,0xfe,0x5c,0x02,0x58,0xfc,0x0e,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x2e,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x00, +0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x13,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x58,0x02,0x58,0x00,0x48,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x1d, +0x02,0x58,0x00,0x9e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xda,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x9b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x1b,0x02,0x58,0x00,0x9f,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6, +0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xe6,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0x97,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x41,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x46,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55, +0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x64, +0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x2b,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x5d,0x02,0x58,0x00,0x9b, +0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0e,0x02,0x58,0xff,0xfb,0x02,0x58,0x00,0x78,0x02,0x58,0x00,0xa0,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xd9,0x02,0x58,0x00,0x23, +0x02,0x58,0x00,0x1e,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x73,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x43,0x02,0x58,0x00,0x1d,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x28, +0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x2f,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e, +0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x6e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x0a, +0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x05,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x0a,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xd8,0x02,0x58,0xff,0xb0,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x02,0x0d,0x02,0x58,0x00,0x00,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x01,0x2c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6, +0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0xb4,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6, +0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x96, +0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x8c,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, +0x02,0x58,0x00,0x4b,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x19, +0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x96,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xc8,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa, +0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0xfa,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x44,0x02,0x58,0x00,0x3c,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x32, +0x02,0x58,0x00,0x32,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x1e, +0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00, +0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x5e,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0xaa,0x02,0x58,0x00,0x7d, +0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x46,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x58,0x02,0x58,0xff,0xf6,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x42,0x02,0x58,0x00,0x1f,0x02,0x58,0x00,0x27, +0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x19,0x02,0x58,0x00,0x41,0x02,0x58,0x00,0x4d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f,0x02,0x58,0x00,0x96,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0xff,0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x46, +0x02,0x58,0x00,0x50,0x02,0x58,0x00,0x1e,0x02,0x58,0x00,0x3c,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x28,0x02,0x58,0x00,0x14,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0xc3,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d, +0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x34,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x3e,0x02,0x58,0x00,0x20,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x51, +0x02,0x58,0x00,0x14,0x02,0x58,0xff,0x5b,0x02,0x58,0xff,0xc9,0x02,0x58,0xff,0xa9,0x02,0x58,0x00,0x0a,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x64,0x02,0x58,0x00,0x00,0x02,0x58,0xff,0xec,0x02,0x58,0x00,0x52,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec,0x02,0x58,0xff,0xec, +0x02,0x58,0x00,0xf5,0x02,0x58,0x00,0x06,0x02,0x58,0x00,0x23,0x02,0x58,0x00,0x2d,0x02,0x58,0xff,0xf6,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x25,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x49,0x02,0x58,0x00,0x2d,0x02,0x58,0x00,0x0f, +0x02,0x58,0x00,0x37,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xc8,0x02,0x58,0xfd,0xda,0x02,0x58,0xfb,0x82,0x02,0x58,0xfd,0xdf,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfd,0xc6,0x02,0x58,0xfb,0x73,0x02,0x58,0xfd,0xd5,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb, +0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0xe3,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xc7,0x02,0x58,0xfa,0xc9,0x02,0x58,0xfc,0xa4,0x02,0x58,0xfc,0xd6,0x02,0x58,0xfe,0xa7,0x02,0x58,0xfb,0xd2,0x02,0x58,0xfe,0xbb,0x02,0x58,0xfe,0x13,0x02,0x58,0xfe,0x20,0x02,0x58,0xfb,0xff,0x02,0x58,0xfd,0xda,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xa0, +0x02,0x58,0xfb,0xa0,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfd,0xfd,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa5,0x02,0x58,0xfb,0xa1,0x02,0x58,0xfe,0x0c,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x61,0x02,0x58,0xfe,0x89,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0xb3,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xb3, +0x02,0x58,0xfb,0xb3,0x02,0x58,0xfc,0x6d,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x89,0x02,0x58,0xfb,0xcd,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0x98,0x02,0x58,0xfc,0x77,0x02,0x58,0xfa,0x7e,0x02,0x58,0xfb,0xe6, +0x02,0x58,0xfe,0x07,0x02,0x58,0xfb,0xbe,0x02,0x58,0xf9,0x43,0x02,0x58,0xfd,0xee,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfe,0xcf,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xf9,0x43,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x34,0x02,0x58,0xfe,0x47,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfb,0xf5, +0x02,0x58,0xfb,0x9b,0x02,0x58,0xfd,0xf3,0x02,0x58,0xfb,0xb4,0x02,0x58,0xfb,0x9b,0x02,0x58,0xfe,0x2a,0x02,0x58,0xfb,0xf5,0x02,0x58,0xfe,0x11,0x02,0x58,0xfd,0xee,0x02,0x58,0xfd,0xee,0x02,0x58,0xfe,0x57,0x02,0x58,0xfb,0x96,0x02,0x58,0xfe,0x39,0x02,0x58,0xfd,0xf8,0x02,0x58,0xfb,0xa0,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x41, +0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xa5,0x02,0x58,0x00,0x37,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xa5,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90,0x00,0x00,0xfe,0x3b,0x00,0x00,0xff,0x60,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c, +0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x18,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75,0x00,0x00,0xfe,0x61,0x00,0x00,0xfd,0x8a,0x00,0x00,0xfd,0xcb,0x00,0x00,0xfe,0x16,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5, +0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xcd,0x02,0x58,0x00,0xb9,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x4a,0x00,0x00,0xfe,0x90, +0x00,0x00,0xfe,0x3b,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x1f,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x5c,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xfd,0xf0,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x7a,0x00,0x00,0xff,0x1b,0x00,0x00,0xfe,0x8d,0x00,0x00,0xfe,0x25,0x00,0x00,0xfe,0x66,0x00,0x00,0xfe,0x75, +0x00,0x00,0xfe,0x61,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x34,0x02,0x58,0x00,0x7d,0x02,0x58,0x00,0xe5,0x02,0x58,0x00,0xa2,0x02,0x58,0x00,0xe8,0x02,0x58,0x00,0x93,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x77,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xb4,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0x8c,0x02,0x58,0x00,0xd2,0x02,0x58,0x00,0xe1, +0x02,0x58,0x00,0x7d,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x2a,0x00,0x00,0xfe,0x34,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x2f,0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20, +0x00,0x00,0xfe,0x20,0x00,0x00,0xfe,0x20,0x02,0x58,0x00,0x5a,0x02,0x58,0x00,0x69,0x02,0x58,0x00,0x32,0x02,0x58,0xff,0xd8,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x00,0x02,0x58,0x00,0x55,0x02,0x58,0x00,0x55,0x00,0x00,0x00,0x00,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x24, +0x00,0x00,0x00,0x04,0x00,0x00,0x0f,0x12,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x03,0x00,0x0a,0x00,0x00,0x0f,0x12,0x00,0x04,0x0e,0xee,0x00,0x00,0x01,0xa8,0x01,0x00,0x00,0x07,0x00,0xa8,0x00,0x0d,0x00,0x2f,0x00,0x39,0x00,0x7e,0x01,0x31,0x01,0x7f,0x01,0x90,0x01,0x92,0x01,0x9b,0x01,0xa1,0x01,0xb0,0x01,0xce,0x01,0xd0, +0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe7,0x01,0xeb,0x01,0xf5,0x01,0xff,0x02,0x1b,0x02,0x33,0x02,0x37,0x02,0x59,0x02,0xba,0x02,0xbc,0x02,0xc7,0x02,0xc9,0x02,0xdd,0x02,0xf3,0x02,0xf7,0x03,0x04,0x03,0x0c,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x28,0x03,0x38,0x03,0x75,0x03,0x7e,0x03,0x8a, +0x03,0x8c,0x03,0x90,0x03,0xa1,0x03,0xa9,0x03,0xb0,0x03,0xc9,0x03,0xcf,0x03,0xd7,0x04,0x0c,0x04,0x1a,0x04,0x23,0x04,0x3a,0x04,0x43,0x04,0x4f,0x04,0x5c,0x04,0x5f,0x04,0x93,0x04,0x9b,0x04,0xa3,0x04,0xb1,0x04,0xb7,0x04,0xbb,0x04,0xd9,0x04,0xdf,0x04,0xe9,0x04,0xf5,0x0a,0xea,0x1e,0x85,0x1e,0x9e,0x1e,0xf9,0x20,0x01,0x20,0x0b, +0x20,0x10,0x20,0x14,0x20,0x16,0x20,0x22,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x34,0x20,0x3a,0x20,0x3f,0x20,0x46,0x20,0x70,0x20,0x79,0x20,0x7a,0x20,0x7c,0x20,0x89,0x20,0xac,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x16,0x21,0x1a,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8b, +0x21,0x99,0x21,0x9e,0x21,0xa0,0x21,0xa3,0x21,0xa7,0x21,0xaa,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd4,0x21,0xdb,0x21,0xdf,0x21,0xe5,0x21,0xe8,0x21,0xea,0x22,0x0c,0x22,0x13,0x22,0x15,0x22,0x1a,0x22,0x1e,0x22,0x25,0x22,0x2b,0x22,0x39,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x49,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57, +0x22,0x65,0x22,0x73,0x22,0x7c,0x22,0x89,0x22,0x99,0x22,0xa5,0x22,0xb4,0x22,0xb8,0x22,0xbd,0x22,0xc4,0x22,0xc6,0x22,0xca,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xf1,0x23,0x05,0x23,0x0b,0x23,0x18,0x23,0x1f,0x23,0x26,0x23,0x28,0x23,0x2b,0x23,0x7a,0x23,0x8b,0x23,0x95,0x23,0xad,0x23,0xce,0x23,0xfe,0x24,0x21,0x24,0x24,0x25,0x94, +0x25,0x9f,0x25,0xa1,0x25,0xab,0x25,0xcc,0x25,0xcf,0x25,0xd5,0x25,0xe6,0x25,0xeb,0x25,0xef,0x25,0xf6,0x26,0x6d,0x26,0x6f,0x26,0x87,0x26,0xa1,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x71,0x27,0x94,0x27,0x9e,0x27,0xc6,0x27,0xdc,0x27,0xeb,0x27,0xf7,0x29,0x16,0x29,0x4a,0x29,0x88,0x2a,0x00,0x2a,0x06,0x2b,0x58,0xe0,0xa2, +0xe0,0xb3,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x00,0x00,0x00,0x0d,0x00,0x20,0x00,0x30,0x00,0x3a,0x00,0xa0,0x01,0x34,0x01,0x8f,0x01,0x92,0x01,0x9b,0x01,0xa0,0x01,0xaf,0x01,0xcd,0x01,0xd0,0x01,0xd2,0x01,0xd4,0x01,0xd6,0x01,0xd8,0x01,0xda,0x01,0xdc,0x01,0xe6,0x01,0xea,0x01,0xf4,0x01,0xfc,0x02,0x18, +0x02,0x32,0x02,0x37,0x02,0x59,0x02,0xb9,0x02,0xbc,0x02,0xc6,0x02,0xc9,0x02,0xd8,0x02,0xf3,0x02,0xf7,0x03,0x00,0x03,0x06,0x03,0x0f,0x03,0x12,0x03,0x1b,0x03,0x23,0x03,0x25,0x03,0x36,0x03,0x74,0x03,0x7e,0x03,0x84,0x03,0x8c,0x03,0x8e,0x03,0x91,0x03,0xa3,0x03,0xaa,0x03,0xb1,0x03,0xca,0x03,0xd5,0x04,0x01,0x04,0x0e,0x04,0x1b, +0x04,0x24,0x04,0x3b,0x04,0x44,0x04,0x51,0x04,0x5e,0x04,0x90,0x04,0x9a,0x04,0xa2,0x04,0xae,0x04,0xb6,0x04,0xba,0x04,0xd8,0x04,0xdc,0x04,0xe4,0x04,0xf4,0x0a,0xea,0x1e,0x80,0x1e,0x9e,0x1e,0xa0,0x20,0x01,0x20,0x0b,0x20,0x10,0x20,0x13,0x20,0x16,0x20,0x18,0x20,0x24,0x20,0x26,0x20,0x30,0x20,0x32,0x20,0x39,0x20,0x3c,0x20,0x44, +0x20,0x70,0x20,0x74,0x20,0x7a,0x20,0x7c,0x20,0x80,0x20,0xab,0x20,0xae,0x20,0xb4,0x20,0xbd,0x20,0xbf,0x21,0x02,0x21,0x0d,0x21,0x13,0x21,0x15,0x21,0x19,0x21,0x1d,0x21,0x22,0x21,0x24,0x21,0x2e,0x21,0x40,0x21,0x8a,0x21,0x90,0x21,0x9d,0x21,0xa0,0x21,0xa2,0x21,0xa5,0x21,0xa9,0x21,0xad,0x21,0xbe,0x21,0xc9,0x21,0xd0,0x21,0xdb, +0x21,0xde,0x21,0xe5,0x21,0xe7,0x21,0xea,0x22,0x00,0x22,0x0e,0x22,0x15,0x22,0x18,0x22,0x1e,0x22,0x23,0x22,0x27,0x22,0x34,0x22,0x3c,0x22,0x3e,0x22,0x43,0x22,0x45,0x22,0x47,0x22,0x4b,0x22,0x4d,0x22,0x54,0x22,0x57,0x22,0x5f,0x22,0x6a,0x22,0x7a,0x22,0x82,0x22,0x8e,0x22,0x9b,0x22,0xb4,0x22,0xb8,0x22,0xbb,0x22,0xc2,0x22,0xc6, +0x22,0xc8,0x22,0xce,0x22,0xd0,0x22,0xe2,0x22,0xee,0x23,0x02,0x23,0x08,0x23,0x18,0x23,0x1c,0x23,0x24,0x23,0x28,0x23,0x2b,0x23,0x36,0x23,0x89,0x23,0x95,0x23,0x9b,0x23,0xce,0x23,0xfb,0x24,0x00,0x24,0x23,0x25,0x00,0x25,0x95,0x25,0xa0,0x25,0xaa,0x25,0xb2,0x25,0xce,0x25,0xd4,0x25,0xe6,0x25,0xe7,0x25,0xef,0x25,0xf6,0x26,0x6d, +0x26,0x6f,0x26,0x87,0x26,0xa0,0x27,0x13,0x27,0x15,0x27,0x17,0x27,0x36,0x27,0x6e,0x27,0x94,0x27,0x9c,0x27,0xc5,0x27,0xdc,0x27,0xe6,0x27,0xf5,0x29,0x16,0x29,0x4a,0x29,0x87,0x2a,0x00,0x2a,0x05,0x2b,0x58,0xe0,0xa0,0xe0,0xb0,0xfe,0x62,0xfe,0xff,0xff,0x5b,0xff,0x5d,0xff,0xfd,0xff,0xff,0x03,0xb3,0x00,0x00,0x02,0xa4,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x36,0xff,0x7a,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x33,0xff,0x53,0xff,0x80,0xff,0x84,0xff,0x7f,0xff,0x7e,0xff,0x7d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe,0xd7,0xfe,0x9a,0x00,0x00,0x03,0xa8,0x03,0xbf,0x03,0x9d,0x00,0x00,0x03,0x10,0x03,0x0d,0x00,0x00,0x00,0x00, +0x03,0x66,0x03,0x64,0x03,0x5c,0x03,0x55,0x03,0x54,0x03,0x47,0x02,0xee,0x00,0x3d,0x00,0x00,0xfe,0xe1,0x00,0x00,0xfe,0xc0,0xfe,0xbf,0x00,0x00,0xfe,0xc4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfd,0xbc,0x00,0x00,0xfd,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x3e,0x00,0x00,0xe1,0xe9,0x00,0x00,0xe3,0xbb,0xe3,0xb2,0xe3,0x4b,0xe3,0x46,0xe3,0x21,0x00,0x00,0xe3,0x17,0xe3,0x07,0xe4,0x09,0x00,0x00,0xe3,0x2e,0x00,0x00,0x00,0x00,0xe2,0x92,0xe2,0x92,0xe3,0xc1,0xe3,0x6a,0xe2,0x64,0xe3,0x1b,0xe3,0x1e,0xe3,0x15,0xe3,0x0d,0xe3,0x03,0xe1,0xa0,0xe1,0x9a, +0xe4,0xae,0x00,0x00,0xe1,0x96,0xe1,0x94,0xe4,0x98,0xe1,0x95,0xe4,0x96,0xe3,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xde,0xe2,0xdd,0xe2,0xdc,0xe2,0xdc,0xe2,0xcf,0xe2,0xc9,0xe2,0xbf,0x00,0x00,0xe2,0xb3,0x00,0x00,0xe2,0x9f,0xe2,0xa8,0xe3,0xf8,0x00,0x00,0x00,0x00,0xe1,0xc8,0x00,0x00,0xe2,0x06,0x00,0x00,0xe1,0xff,0x00,0x00, +0xe2,0x12,0xe1,0xaf,0xe1,0x8d,0xe1,0x92,0x00,0x00,0xe2,0x19,0xe1,0x9b,0xe1,0x81,0xe1,0xf5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xe1,0x54,0xe1,0x44,0x00,0x00,0x00,0x00,0xe1,0x93,0x00,0x00,0xe1,0x0c,0xe1,0x10,0xe1,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xd1,0x00,0x00,0x00,0x00,0xe2,0xbd,0xe2,0xb8, +0x00,0x00,0x00,0x00,0xe1,0xf0,0x00,0x00,0xe2,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xdf,0x17,0xdf,0x28,0xdf,0x20,0x00,0x00,0x00,0x00,0xde,0xe9,0xde,0xdd,0xde,0xe5,0xde,0xcd,0xde,0xc9,0xdf,0xf3,0xdf,0xf2,0xdf,0x24,0xdf,0x0c,0xde,0x9b,0xde,0x9a,0xde,0x99,0xde,0x7b,0x00,0x00,0xdc,0xff,0xdc,0xf8,0x00,0x00,0xdc,0x13, +0x00,0x00,0xdc,0xa2,0xdb,0x2d,0xda,0xa4,0xd9,0xce,0xd9,0xfe,0xd9,0xfa,0xda,0x99,0x26,0x24,0x26,0x17,0x05,0xd8,0x04,0xc2,0x03,0xee,0x03,0xed,0x05,0xf9,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x00,0x01,0xc2,0x02,0x4a,0x03,0x6c,0x04,0x02,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xf8,0x03,0xfa,0x03,0xfc,0x03,0xfe,0x04,0x04,0x04,0x0a,0x00,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x04,0x0a,0x04,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0e,0x00,0x00,0x04,0x18,0x00,0x00, +0x00,0x00,0x04,0x18,0x00,0x00,0x04,0x22,0x04,0x2c,0x04,0x30,0x04,0x46,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x86,0x04,0x9c,0x04,0xb2,0x04,0xb4,0x04,0xba,0x04,0xbc,0x04,0xbe,0x04,0xc4,0x04,0xc6,0x04,0xc8,0x04,0xca,0x04,0xd0,0x04,0xda,0x00,0x00,0x04,0xda,0x00,0x00,0x04,0xe2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x98,0x00,0x00,0x05,0x9a,0x05,0xa0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x80,0x05,0x82,0x05,0x94,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8a,0x05,0xa2,0x00,0x00,0x05,0xaa,0x00,0x00,0x05,0xac,0x00,0x00,0x05,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xac,0x05,0xb8,0x05,0xca, +0x05,0xce,0x05,0xdc,0x05,0xf2,0x00,0x00,0x00,0x00,0x06,0x02,0x06,0x06,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x06,0x0c,0x06,0x12,0x00,0x00,0x06,0x16,0x06,0x1c,0x00,0x00,0x00,0x00,0x06,0x1c,0x06,0xa4,0x00,0x00,0x06,0xa6,0x00,0x00,0x06,0xc8,0x06,0xce,0x07,0x10,0x07,0x12,0x00,0x00,0x00,0x00,0x00,0x00, +0x08,0x34,0x08,0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x50,0x00,0x00,0x00,0x00,0x08,0x52,0x00,0x00,0x08,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xbe,0x03,0x2e,0x03,0x6a,0x03,0x3a,0x03,0xc5,0x04,0x38,0x05,0xb5,0x03,0x6b,0x03,0x43,0x03,0x44,0x03,0x34,0x04,0x15,0x03,0x2a,0x03,0x57,0x03,0x29,0x03,0x3d,0x03,0x2b,0x03,0x2c,0x04,0x1c,0x04,0x19,0x04,0x1b,0x03,0x30,0x05,0xb4,0x00,0x01,0x00,0x1a,0x00,0x1b,0x00,0x21,0x00,0x25, +0x00,0x38,0x00,0x39,0x00,0x40,0x00,0x43,0x00,0x4f,0x00,0x51,0x00,0x53,0x00,0x59,0x00,0x5a,0x00,0x60,0x00,0x7a,0x00,0x7c,0x00,0x7d,0x00,0x81,0x00,0x89,0x00,0x8e,0x00,0xa1,0x00,0xa2,0x00,0xa7,0x00,0xa8,0x00,0xb1,0x03,0x47,0x03,0x3e,0x03,0x48,0x04,0x23,0x03,0x5c,0x06,0x82,0x00,0xbd,0x00,0xd6,0x00,0xd7,0x00,0xdd,0x00,0xe1, +0x00,0xf4,0x00,0xf5,0x00,0xfc,0x00,0xff,0x01,0x0d,0x01,0x10,0x01,0x13,0x01,0x1a,0x01,0x1b,0x01,0x22,0x01,0x3d,0x01,0x3f,0x01,0x40,0x01,0x44,0x01,0x4c,0x01,0x51,0x01,0x69,0x01,0x6a,0x01,0x6f,0x01,0x70,0x01,0x79,0x03,0x45,0x05,0xbe,0x03,0x46,0x04,0x22,0x03,0xbf,0x03,0x2f,0x03,0xc3,0x03,0xcb,0x03,0xc4,0x03,0xcd,0x05,0xbf, +0x05,0xb7,0x06,0x80,0x05,0xb8,0x01,0xc6,0x03,0x65,0x04,0x21,0x03,0x58,0x05,0xb9,0x06,0x8a,0x05,0xbb,0x04,0x1f,0x03,0x04,0x03,0x05,0x06,0x83,0x04,0x30,0x05,0xb6,0x03,0x32,0x06,0x8b,0x03,0x03,0x01,0xc7,0x03,0x66,0x03,0x22,0x03,0x21,0x03,0x23,0x03,0x31,0x00,0x12,0x00,0x02,0x00,0x0a,0x00,0x17,0x00,0x10,0x00,0x16,0x00,0x18, +0x00,0x1e,0x00,0x32,0x00,0x26,0x00,0x29,0x00,0x2f,0x00,0x4a,0x00,0x44,0x00,0x46,0x00,0x47,0x00,0x22,0x00,0x5f,0x00,0x6b,0x00,0x61,0x00,0x63,0x00,0x78,0x00,0x69,0x04,0x17,0x00,0x76,0x00,0x94,0x00,0x8f,0x00,0x91,0x00,0x92,0x00,0xa9,0x00,0x7b,0x01,0x4a,0x00,0xce,0x00,0xbe,0x00,0xc6,0x00,0xd3,0x00,0xcc,0x00,0xd2,0x00,0xd4, +0x00,0xda,0x00,0xee,0x00,0xe2,0x00,0xe5,0x00,0xeb,0x01,0x08,0x01,0x01,0x01,0x04,0x01,0x05,0x00,0xde,0x01,0x21,0x01,0x2e,0x01,0x23,0x01,0x26,0x01,0x3b,0x01,0x2c,0x04,0x18,0x01,0x39,0x01,0x5c,0x01,0x52,0x01,0x55,0x01,0x56,0x01,0x71,0x01,0x3e,0x01,0x73,0x00,0x14,0x00,0xd0,0x00,0x03,0x00,0xbf,0x00,0x15,0x00,0xd1,0x00,0x1c, +0x00,0xd8,0x00,0x1f,0x00,0xdb,0x00,0x20,0x00,0xdc,0x00,0x1d,0x00,0xd9,0x00,0x23,0x00,0xdf,0x00,0x24,0x00,0xe0,0x00,0x34,0x00,0xf0,0x00,0x27,0x00,0xe3,0x00,0x30,0x00,0xec,0x00,0x35,0x00,0xf1,0x00,0x28,0x00,0xe4,0x00,0x3d,0x00,0xf9,0x00,0x3b,0x00,0xf7,0x00,0x3f,0x00,0xfb,0x00,0x3e,0x00,0xfa,0x00,0x42,0x00,0xfe,0x00,0x41, +0x00,0xfd,0x00,0x4e,0x01,0x0c,0x00,0x4c,0x01,0x0a,0x00,0x45,0x01,0x02,0x00,0x4d,0x01,0x0b,0x00,0x48,0x01,0x00,0x00,0x50,0x01,0x0f,0x00,0x52,0x01,0x11,0x01,0x12,0x00,0x54,0x01,0x14,0x00,0x56,0x01,0x17,0x00,0x55,0x01,0x16,0x00,0x57,0x01,0x18,0x00,0x58,0x01,0x19,0x00,0x5b,0x01,0x1c,0x00,0x5d,0x01,0x1f,0x00,0x5c,0x01,0x1e, +0x01,0x1d,0x00,0x5e,0x01,0x20,0x00,0x74,0x01,0x37,0x00,0x62,0x01,0x24,0x00,0x73,0x01,0x36,0x00,0x79,0x01,0x3c,0x00,0x7e,0x01,0x41,0x00,0x80,0x01,0x43,0x00,0x7f,0x01,0x42,0x00,0x82,0x01,0x45,0x00,0x85,0x01,0x48,0x00,0x84,0x01,0x47,0x00,0x83,0x01,0x46,0x00,0x8c,0x01,0x4f,0x00,0x8b,0x01,0x4e,0x00,0x8a,0x01,0x4d,0x00,0xa0, +0x01,0x68,0x00,0x9d,0x01,0x65,0x00,0x90,0x01,0x53,0x00,0x9f,0x01,0x67,0x00,0x9c,0x01,0x64,0x00,0x9e,0x01,0x66,0x00,0xa4,0x01,0x6c,0x00,0xaa,0x01,0x72,0x00,0xab,0x00,0xb2,0x01,0x7a,0x00,0xb4,0x01,0x7c,0x00,0xb3,0x01,0x7b,0x01,0x4b,0x00,0x88,0x00,0x36,0x00,0x6d,0x01,0x30,0x00,0x96,0x01,0x5e,0x00,0x09,0x00,0xc5,0x00,0x3c, +0x00,0xf8,0x00,0x75,0x01,0x38,0x00,0x3a,0x00,0xf6,0x00,0x19,0x00,0xd5,0x00,0x77,0x01,0x3a,0x00,0x86,0x01,0x49,0x00,0x8d,0x01,0x50,0x00,0xaf,0x01,0x77,0x06,0x67,0x06,0x65,0x06,0x87,0x06,0x81,0x06,0x88,0x06,0x8c,0x06,0x89,0x06,0x84,0x06,0x6a,0x06,0x6b,0x06,0x6e,0x06,0x72,0x06,0x73,0x06,0x70,0x06,0x69,0x06,0x68,0x06,0x74, +0x06,0x71,0x06,0x6c,0x06,0x6f,0x06,0xb0,0x06,0xb2,0x02,0x69,0x03,0xba,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6e,0x02,0x6f,0x02,0x90,0x02,0x70,0x02,0x71,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x8e,0x02,0x93,0x02,0x8f,0x02,0x92,0x02,0x94,0x02,0x91,0x02,0x95,0x02,0x72,0x02,0x9a,0x02,0x9b,0x02,0x99,0x01,0xd0,0x01,0xf6,0x01,0xcc, +0x01,0xee,0x01,0xed,0x01,0xf0,0x01,0xf1,0x01,0xf2,0x01,0xeb,0x01,0xec,0x01,0xf3,0x01,0xd6,0x01,0xe0,0x01,0xe7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xce,0x01,0xcf,0x01,0xd1,0x01,0xd2,0x01,0xd3,0x01,0xd4,0x01,0xd5,0x01,0xe1,0x01,0xe2,0x01,0xe4,0x01,0xe3,0x01,0xe5,0x01,0xe6,0x01,0xe9,0x01,0xea,0x01,0xe8,0x01,0xef, +0x01,0xf4,0x01,0xf5,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x12,0x02,0x13,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x25,0x02,0x26,0x02,0x28,0x02,0x27,0x02,0x29,0x02,0x2a,0x02,0x2d,0x02,0x2e,0x02,0x2c,0x02,0x33,0x02,0x38,0x02,0x39,0x02,0x14,0x02,0x3a,0x02,0x10,0x02,0x32,0x02,0x31,0x02,0x34,0x02,0x35, +0x02,0x36,0x02,0x2f,0x02,0x30,0x02,0x37,0x02,0x1a,0x02,0x24,0x02,0x2b,0x01,0xcd,0x02,0x11,0x01,0xf7,0x02,0x3b,0x01,0xf8,0x02,0x3c,0x01,0xf9,0x02,0x3d,0x01,0xfa,0x02,0x3e,0x01,0xfb,0x02,0x3f,0x01,0xfc,0x02,0x40,0x01,0xfd,0x02,0x41,0x01,0xfe,0x02,0x42,0x01,0xff,0x02,0x43,0x02,0x00,0x02,0x44,0x02,0x01,0x02,0x45,0x02,0x02, +0x02,0x46,0x02,0x03,0x02,0x47,0x02,0x04,0x02,0x48,0x00,0xa6,0x01,0x6e,0x00,0xa3,0x01,0x6b,0x00,0xa5,0x01,0x6d,0x00,0x11,0x00,0xcd,0x00,0x13,0x00,0xcf,0x00,0x0b,0x00,0xc7,0x00,0x0d,0x00,0xc9,0x00,0x0e,0x00,0xca,0x00,0x0f,0x00,0xcb,0x00,0x0c,0x00,0xc8,0x00,0x04,0x00,0xc0,0x00,0x06,0x00,0xc2,0x00,0x07,0x00,0xc3,0x00,0x08, +0x00,0xc4,0x00,0x05,0x00,0xc1,0x00,0x31,0x00,0xed,0x00,0x33,0x00,0xef,0x00,0x37,0x00,0xf2,0x00,0x2a,0x00,0xe6,0x00,0x2c,0x00,0xe8,0x00,0x2d,0x00,0xe9,0x00,0x2e,0x00,0xea,0x00,0x2b,0x00,0xe7,0x00,0x4b,0x01,0x09,0x00,0x49,0x01,0x07,0x00,0x6a,0x01,0x2d,0x00,0x6c,0x01,0x2f,0x00,0x64,0x01,0x27,0x00,0x66,0x01,0x29,0x00,0x67, +0x01,0x2a,0x00,0x68,0x01,0x2b,0x00,0x65,0x01,0x28,0x00,0x6e,0x01,0x31,0x00,0x70,0x01,0x33,0x00,0x71,0x01,0x34,0x00,0x72,0x01,0x35,0x00,0x6f,0x01,0x32,0x00,0x93,0x01,0x5b,0x00,0x95,0x01,0x5d,0x00,0x97,0x01,0x5f,0x00,0x99,0x01,0x61,0x00,0x9a,0x01,0x62,0x00,0x9b,0x01,0x63,0x00,0x98,0x01,0x60,0x00,0xad,0x01,0x75,0x00,0xac, +0x01,0x74,0x00,0xae,0x01,0x76,0x00,0xb0,0x01,0x78,0x03,0x61,0x03,0x62,0x03,0x5d,0x03,0x63,0x03,0x5f,0x03,0x60,0x03,0x5e,0x03,0x64,0x05,0xc0,0x05,0xc2,0x03,0x33,0x05,0xbc,0x05,0xbd,0x03,0x69,0x03,0x38,0x03,0x39,0x03,0x3c,0x03,0x3f,0x03,0x20,0x03,0x35,0x03,0x36,0x02,0xad,0x05,0xc3,0x05,0xff,0x05,0xfe,0x04,0x77,0x04,0x71, +0x04,0x73,0x04,0x75,0x04,0x79,0x04,0x7a,0x04,0x78,0x04,0x72,0x04,0x74,0x04,0x76,0x04,0x7b,0x04,0x7d,0x04,0x8c,0x04,0x89,0x04,0x8a,0x04,0x8b,0x04,0x8d,0x05,0xe8,0x05,0xe7,0x04,0x65,0x03,0xd6,0x04,0x2f,0x03,0xea,0x04,0x62,0x04,0x25,0x04,0x2b,0x03,0xeb,0x03,0xe2,0x04,0x0b,0x03,0xe3,0x04,0x5d,0x04,0x0a,0x03,0xe5,0x04,0x2c, +0x03,0xd8,0x04,0x2d,0x04,0x16,0x03,0xf9,0x04,0x4d,0x03,0xd4,0x04,0x2e,0x03,0xdc,0x03,0xde,0x04,0x31,0x04,0x63,0x03,0xd1,0x04,0x40,0x04,0x3e,0x03,0xdf,0x03,0xe9,0x04,0x04,0x04,0x20,0x04,0x09,0x04,0x3f,0x04,0x1a,0x03,0xe7,0x04,0x0f,0x04,0x5a,0x04,0x1e,0x04,0x1d,0x03,0xfb,0x03,0xfa,0x03,0xd2,0x04,0x0c,0x04,0x10,0x04,0x0d, +0x04,0x11,0x04,0x0e,0x03,0xf7,0x03,0xec,0x04,0x3c,0x04,0x5c,0x04,0x3d,0x04,0x5b,0x04,0x5f,0x04,0x13,0x04,0x14,0x04,0x41,0x04,0x42,0x04,0x05,0x04,0x06,0x03,0xfd,0x04,0x55,0x04,0x57,0x04,0x56,0x04,0x58,0x04,0x4f,0x04,0x50,0x04,0x70,0x04,0x6d,0x04,0x6e,0x04,0x6c,0x04,0x6f,0x04,0x69,0x04,0x6b,0x04,0x6a,0x04,0x53,0x04,0x52, +0x04,0x54,0x04,0x51,0x04,0x4b,0x04,0x61,0x04,0x60,0x04,0x67,0x04,0x68,0x04,0x01,0x04,0x07,0x04,0x02,0x04,0x03,0x03,0xdb,0x03,0xd3,0x03,0xf3,0x04,0x47,0x03,0xe4,0x03,0xf8,0x04,0x66,0x03,0xe1,0x05,0xe1,0x05,0xca,0x04,0x91,0x05,0xf4,0x03,0x4f,0x03,0x52,0x03,0x50,0x03,0x53,0x05,0xce,0x05,0xcd,0x05,0xcb,0x05,0xcc,0x04,0x92, +0x05,0xe6,0x05,0xe4,0x05,0x65,0x05,0xa0,0x05,0x8f,0x05,0x8c,0x05,0x8b,0x05,0x91,0x05,0x87,0x05,0x6d,0x05,0x6b,0x05,0x9f,0x05,0x68,0x05,0x97,0x05,0x86,0x05,0x93,0x05,0x90,0x05,0x82,0x05,0x9d,0x05,0x92,0x05,0x96,0x05,0x69,0x05,0x79,0x05,0x72,0x05,0x8e,0x05,0x8a,0x05,0x78,0x05,0xa9,0x05,0x98,0x05,0xa8,0x05,0x71,0x05,0x99, +0x05,0x89,0x05,0xa7,0x05,0x7a,0x05,0x8d,0x05,0x9b,0x05,0x73,0x05,0x75,0x05,0x80,0x05,0x6e,0x05,0xa5,0x05,0x9a,0x05,0x6c,0x05,0x88,0x05,0xa6,0x05,0x70,0x05,0xa1,0x05,0x7f,0x05,0x6a,0x05,0x77,0x05,0x81,0x05,0xa3,0x05,0x7c,0x05,0x6f,0x05,0x74,0x05,0xaa,0x05,0xa2,0x05,0x9e,0x05,0x94,0x05,0x95,0x05,0x76,0x05,0xa4,0x05,0x7d, +0x05,0x9c,0x05,0x83,0x05,0x67,0x05,0x7b,0x05,0x7e,0x05,0x84,0x05,0x66,0x05,0xe0,0x05,0xd5,0x05,0xc7,0x04,0x34,0x04,0x32,0x04,0x33,0x04,0x37,0x04,0x35,0x04,0x36,0x03,0xf6,0x03,0xf4,0x03,0xf5,0x04,0x4a,0x04,0x48,0x04,0x49,0x03,0xf2,0x03,0xf1,0x03,0xf0,0x03,0xd9,0x04,0x46,0x04,0x45,0x04,0x44,0x05,0xef,0x05,0xf0,0x05,0xf2, +0x05,0xf3,0x05,0xee,0x05,0xfa,0x05,0xfb,0x05,0xd7,0x05,0xd8,0x05,0xda,0x05,0xb2,0x05,0xc5,0x05,0xb3,0x05,0xdf,0x05,0xeb,0x06,0x01,0x05,0xdd,0x05,0xc9,0x05,0xf8,0x05,0xf7,0x05,0xcf,0x05,0xd2,0x05,0xd4,0x05,0xd3,0x05,0xd1,0x05,0xec,0x05,0xfd,0x05,0xd9,0x05,0xc8,0x05,0xd6,0x05,0xfc,0x05,0xdb,0x05,0xdc,0x05,0xde,0x05,0xf5, +0x06,0x00,0x05,0xf9,0x05,0xd0,0x05,0xc6,0x05,0xed,0x05,0x2e,0x05,0x08,0x05,0x3b,0x05,0x15,0x05,0x34,0x05,0x0e,0x05,0x35,0x05,0x0f,0x05,0x31,0x05,0x0b,0x05,0x32,0x05,0x0c,0x05,0x2d,0x04,0xfc,0x04,0xf6,0x05,0x07,0x05,0x2c,0x04,0xfa,0x04,0xf4,0x05,0x06,0x05,0x3a,0x05,0x55,0x05,0x4f,0x05,0x14,0x05,0x39,0x05,0x53,0x05,0x4d, +0x05,0x12,0x05,0x3e,0x05,0x61,0x05,0x4e,0x04,0xf7,0x05,0x5e,0x04,0xfd,0x05,0x54,0x05,0x18,0x05,0x3d,0x05,0x60,0x05,0x4c,0x04,0xf5,0x05,0x5d,0x04,0xfb,0x05,0x52,0x05,0x17,0x05,0x2b,0x05,0x1a,0x05,0x40,0x04,0xf9,0x04,0xf3,0x05,0x43,0x05,0x1d,0x05,0x05,0x05,0x38,0x05,0x1b,0x05,0x41,0x05,0x51,0x05,0x4b,0x05,0x44,0x05,0x1e, +0x05,0x11,0x05,0x3c,0x05,0x1c,0x05,0x42,0x05,0x5f,0x05,0x4a,0x04,0xf8,0x05,0x5c,0x05,0x20,0x05,0x46,0x05,0x19,0x05,0x3f,0x04,0xfe,0x05,0x50,0x05,0x45,0x05,0x1f,0x05,0x16,0x05,0x28,0x05,0x02,0x05,0x29,0x05,0x03,0x04,0xe8,0x04,0xec,0x05,0x01,0x04,0xf2,0x04,0xe7,0x05,0x00,0x04,0xf1,0x04,0xe6,0x05,0x58,0x05,0x49,0x04,0xeb, +0x05,0x57,0x05,0x48,0x04,0xea,0x05,0x64,0x05,0x5b,0x04,0xef,0x05,0x63,0x05,0x5a,0x04,0xee,0x04,0xff,0x04,0xf0,0x04,0xe5,0x05,0x56,0x05,0x47,0x04,0xe9,0x05,0x62,0x05,0x59,0x04,0xed,0x05,0x22,0x05,0x21,0x05,0x23,0x05,0x24,0x05,0x27,0x05,0x26,0x05,0x25,0x05,0x2f,0x05,0x36,0x05,0x33,0x05,0x2a,0x05,0x09,0x05,0x10,0x05,0x0d, +0x05,0x04,0x05,0x30,0x05,0x37,0x05,0x0a,0x05,0x13,0x04,0xa2,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xaa,0x04,0xa9,0x04,0xa8,0x04,0xa7,0x04,0xa6,0x04,0xa5,0x04,0xa4,0x04,0xab,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xa3,0x04,0xd1,0x04,0xd5,0x04,0xdd,0x04,0xe1,0x04,0xd2,0x04,0xd6, +0x04,0xde,0x04,0xe2,0x04,0xd9,0x04,0xdb,0x04,0xd3,0x04,0xd7,0x04,0xdf,0x04,0xe3,0x04,0xd4,0x04,0xd8,0x04,0xe0,0x04,0xe4,0x04,0xda,0x04,0xdc,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc1,0x04,0xc7,0x04,0xbb,0x04,0xc0,0x04,0xc2,0x04,0xba,0x03,0x4c,0x03,0x4e,0x03,0x4b,0x03,0x4d,0x03,0x51,0x03,0x54,0x03,0xb6,0x03,0xb9,0x03,0xb4, +0x03,0xb7,0x03,0xb5,0x03,0xb8,0x00,0x0c,0x00,0x00,0x00,0x00,0x33,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x46,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0d,0x00,0x00,0x03,0xc0,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x03,0xbe,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x21,0x00,0x00,0x03,0x2e,0x00,0x00,0x00,0x22,0x00,0x00, +0x00,0x22,0x00,0x00,0x03,0x6a,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x23,0x00,0x00,0x03,0x3a,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x03,0xc5,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x04,0x38,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0x26,0x00,0x00,0x05,0xb5,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x27,0x00,0x00, +0x03,0x6b,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x29,0x00,0x00,0x03,0x43,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x03,0x34,0x00,0x00,0x00,0x2b,0x00,0x00,0x00,0x2b,0x00,0x00,0x04,0x15,0x00,0x00,0x00,0x2c,0x00,0x00,0x00,0x2c,0x00,0x00,0x03,0x2a,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x00,0x00,0x03,0x57,0x00,0x00, +0x00,0x2e,0x00,0x00,0x00,0x2e,0x00,0x00,0x03,0x29,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x2f,0x00,0x00,0x03,0x3d,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x39,0x00,0x00,0x02,0xd4,0x00,0x00,0x00,0x3a,0x00,0x00,0x00,0x3b,0x00,0x00,0x03,0x2b,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x3c,0x00,0x00,0x04,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00, +0x00,0x3d,0x00,0x00,0x04,0x19,0x00,0x00,0x00,0x3e,0x00,0x00,0x00,0x3e,0x00,0x00,0x04,0x1b,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x03,0x30,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x40,0x00,0x00,0x05,0xb4,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x00,0x00,0x43,0x00,0x00, +0x00,0x1a,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x45,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x47,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x49,0x00,0x00,0x00,0x43,0x00,0x00, +0x00,0x4a,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x4b,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x4c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x4d,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x50,0x00,0x00, +0x00,0x50,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x53,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x89,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x8e,0x00,0x00,0x00,0x56,0x00,0x00,0x00,0x57,0x00,0x00, +0x00,0xa1,0x00,0x00,0x00,0x58,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x5b,0x00,0x00,0x03,0x47,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x5c,0x00,0x00,0x03,0x3e,0x00,0x00,0x00,0x5d,0x00,0x00,0x00,0x5d,0x00,0x00,0x03,0x48,0x00,0x00, +0x00,0x5e,0x00,0x00,0x00,0x5e,0x00,0x00,0x04,0x23,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x03,0x5c,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x06,0x82,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x64,0x00,0x00, +0x00,0x64,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x67,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0x69,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x6a,0x00,0x00,0x00,0x6a,0x00,0x00, +0x01,0x0d,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x6b,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x6c,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0x6d,0x00,0x00,0x00,0x6e,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x6f,0x00,0x00,0x00,0x6f,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x00,0x01,0x3d,0x00,0x00, +0x00,0x71,0x00,0x00,0x00,0x72,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x73,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x74,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x78,0x00,0x00, +0x00,0x79,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x7a,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0x7b,0x00,0x00,0x03,0x45,0x00,0x00,0x00,0x7c,0x00,0x00,0x00,0x7c,0x00,0x00,0x05,0xbe,0x00,0x00,0x00,0x7d,0x00,0x00,0x00,0x7d,0x00,0x00,0x03,0x46,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x7e,0x00,0x00, +0x04,0x22,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xa0,0x00,0x00,0x03,0xbf,0x00,0x00,0x00,0xa1,0x00,0x00,0x00,0xa1,0x00,0x00,0x03,0x2f,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xa2,0x00,0x00,0x03,0xc3,0x00,0x00,0x00,0xa3,0x00,0x00,0x00,0xa3,0x00,0x00,0x03,0xcb,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0xa4,0x00,0x00,0x03,0xc4,0x00,0x00, +0x00,0xa5,0x00,0x00,0x00,0xa5,0x00,0x00,0x03,0xcd,0x00,0x00,0x00,0xa6,0x00,0x00,0x00,0xa6,0x00,0x00,0x05,0xbf,0x00,0x00,0x00,0xa7,0x00,0x00,0x00,0xa7,0x00,0x00,0x05,0xb7,0x00,0x00,0x00,0xa8,0x00,0x00,0x00,0xa8,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xa9,0x00,0x00,0x05,0xb8,0x00,0x00,0x00,0xaa,0x00,0x00, +0x00,0xaa,0x00,0x00,0x01,0xc6,0x00,0x00,0x00,0xab,0x00,0x00,0x00,0xab,0x00,0x00,0x03,0x65,0x00,0x00,0x00,0xac,0x00,0x00,0x00,0xac,0x00,0x00,0x04,0x21,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0xad,0x00,0x00,0x03,0x58,0x00,0x00,0x00,0xae,0x00,0x00,0x00,0xae,0x00,0x00,0x05,0xb9,0x00,0x00,0x00,0xaf,0x00,0x00,0x00,0xaf,0x00,0x00, +0x06,0x8a,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0xb0,0x00,0x00,0x05,0xbb,0x00,0x00,0x00,0xb1,0x00,0x00,0x00,0xb1,0x00,0x00,0x04,0x1f,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0xb3,0x00,0x00,0x03,0x04,0x00,0x00,0x00,0xb4,0x00,0x00,0x00,0xb4,0x00,0x00,0x06,0x83,0x00,0x00,0x00,0xb5,0x00,0x00,0x00,0xb5,0x00,0x00,0x04,0x30,0x00,0x00, +0x00,0xb6,0x00,0x00,0x00,0xb6,0x00,0x00,0x05,0xb6,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0xb7,0x00,0x00,0x03,0x32,0x00,0x00,0x00,0xb8,0x00,0x00,0x00,0xb8,0x00,0x00,0x06,0x8b,0x00,0x00,0x00,0xb9,0x00,0x00,0x00,0xb9,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0xba,0x00,0x00,0x00,0xba,0x00,0x00,0x01,0xc7,0x00,0x00,0x00,0xbb,0x00,0x00, +0x00,0xbb,0x00,0x00,0x03,0x66,0x00,0x00,0x00,0xbc,0x00,0x00,0x00,0xbc,0x00,0x00,0x03,0x22,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0xbd,0x00,0x00,0x03,0x21,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xbe,0x00,0x00,0x03,0x23,0x00,0x00,0x00,0xbf,0x00,0x00,0x00,0xbf,0x00,0x00,0x03,0x31,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xc0,0x00,0x00, +0x00,0x12,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0xc1,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0xc3,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0xc4,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0xc5,0x00,0x00,0x00,0x16,0x00,0x00, +0x00,0xc6,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0xc7,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x26,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0xca,0x00,0x00,0x00,0x29,0x00,0x00,0x00,0xcb,0x00,0x00, +0x00,0xcb,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x4a,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0xcd,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xcf,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0xd1,0x00,0x00,0x00,0xd1,0x00,0x00, +0x00,0x5f,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0x63,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0xd6,0x00,0x00,0x00,0x69,0x00,0x00, +0x00,0xd7,0x00,0x00,0x00,0xd7,0x00,0x00,0x04,0x17,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x94,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0xda,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0xdb,0x00,0x00,0x00,0xdc,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0xdd,0x00,0x00, +0x00,0xdd,0x00,0x00,0x00,0xa9,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0x7b,0x00,0x00,0x00,0xdf,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xe1,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xe2,0x00,0x00, +0x00,0xc6,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xe3,0x00,0x00,0x00,0xd3,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xe6,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xe7,0x00,0x00,0x00,0xda,0x00,0x00, +0x00,0xe8,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe9,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xea,0x00,0x00,0x00,0xe5,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0xec,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0xed,0x00,0x00, +0x00,0xed,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xee,0x00,0x00,0x00,0xef,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xde,0x00,0x00,0x00,0xf1,0x00,0x00,0x00,0xf1,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xf2,0x00,0x00,0x00,0xf2,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0xf3,0x00,0x00, +0x01,0x23,0x00,0x00,0x00,0xf4,0x00,0x00,0x00,0xf4,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0xf5,0x00,0x00,0x00,0xf5,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0xf7,0x00,0x00,0x00,0xf7,0x00,0x00,0x04,0x18,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0x39,0x00,0x00, +0x00,0xf9,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0xfa,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x52,0x00,0x00,0x00,0xfb,0x00,0x00,0x00,0xfc,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x3e,0x00,0x00,0x00,0xff,0x00,0x00, +0x00,0xff,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x14,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0xd0,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0xbf,0x00,0x00,0x01,0x04,0x00,0x00,0x01,0x04,0x00,0x00, +0x00,0x15,0x00,0x00,0x01,0x05,0x00,0x00,0x01,0x05,0x00,0x00,0x00,0xd1,0x00,0x00,0x01,0x06,0x00,0x00,0x01,0x06,0x00,0x00,0x00,0x1c,0x00,0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x00,0x00,0x00,0xd8,0x00,0x00,0x01,0x08,0x00,0x00,0x01,0x08,0x00,0x00,0x00,0x1f,0x00,0x00,0x01,0x09,0x00,0x00,0x01,0x09,0x00,0x00,0x00,0xdb,0x00,0x00, +0x01,0x0a,0x00,0x00,0x01,0x0a,0x00,0x00,0x00,0x20,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0xdc,0x00,0x00,0x01,0x0c,0x00,0x00,0x01,0x0c,0x00,0x00,0x00,0x1d,0x00,0x00,0x01,0x0d,0x00,0x00,0x01,0x0d,0x00,0x00,0x00,0xd9,0x00,0x00,0x01,0x0e,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x23,0x00,0x00,0x01,0x0f,0x00,0x00, +0x01,0x0f,0x00,0x00,0x00,0xdf,0x00,0x00,0x01,0x10,0x00,0x00,0x01,0x10,0x00,0x00,0x00,0x24,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x11,0x00,0x00,0x00,0xe0,0x00,0x00,0x01,0x12,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x34,0x00,0x00,0x01,0x13,0x00,0x00,0x01,0x13,0x00,0x00,0x00,0xf0,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x14,0x00,0x00, +0x00,0x27,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0x15,0x00,0x00,0x00,0xe3,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x16,0x00,0x00,0x00,0x30,0x00,0x00,0x01,0x17,0x00,0x00,0x01,0x17,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x18,0x00,0x00,0x00,0x35,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x19,0x00,0x00,0x00,0xf1,0x00,0x00, +0x01,0x1a,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x28,0x00,0x00,0x01,0x1b,0x00,0x00,0x01,0x1b,0x00,0x00,0x00,0xe4,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x1c,0x00,0x00,0x00,0x3d,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x1d,0x00,0x00,0x00,0xf9,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x1e,0x00,0x00,0x00,0x3b,0x00,0x00,0x01,0x1f,0x00,0x00, +0x01,0x1f,0x00,0x00,0x00,0xf7,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x3f,0x00,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x00,0x00,0x00,0xfb,0x00,0x00,0x01,0x22,0x00,0x00,0x01,0x22,0x00,0x00,0x00,0x3e,0x00,0x00,0x01,0x23,0x00,0x00,0x01,0x23,0x00,0x00,0x00,0xfa,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x24,0x00,0x00, +0x00,0x42,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0xfe,0x00,0x00,0x01,0x26,0x00,0x00,0x01,0x26,0x00,0x00,0x00,0x41,0x00,0x00,0x01,0x27,0x00,0x00,0x01,0x27,0x00,0x00,0x00,0xfd,0x00,0x00,0x01,0x28,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x4e,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x29,0x00,0x00,0x01,0x0c,0x00,0x00, +0x01,0x2a,0x00,0x00,0x01,0x2a,0x00,0x00,0x00,0x4c,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x2b,0x00,0x00,0x01,0x0a,0x00,0x00,0x01,0x2c,0x00,0x00,0x01,0x2c,0x00,0x00,0x00,0x45,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x2d,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x2e,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x4d,0x00,0x00,0x01,0x2f,0x00,0x00, +0x01,0x2f,0x00,0x00,0x01,0x0b,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x31,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x34,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x50,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x35,0x00,0x00,0x01,0x0f,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x36,0x00,0x00, +0x00,0x52,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x39,0x00,0x00,0x01,0x39,0x00,0x00,0x00,0x54,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x3a,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x3b,0x00,0x00,0x01,0x3b,0x00,0x00,0x00,0x56,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x17,0x00,0x00, +0x01,0x3d,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x55,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x3e,0x00,0x00,0x01,0x16,0x00,0x00,0x01,0x3f,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x57,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x40,0x00,0x00,0x01,0x18,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x41,0x00,0x00,0x00,0x58,0x00,0x00,0x01,0x42,0x00,0x00, +0x01,0x42,0x00,0x00,0x01,0x19,0x00,0x00,0x01,0x43,0x00,0x00,0x01,0x43,0x00,0x00,0x00,0x5b,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x44,0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x45,0x00,0x00,0x00,0x5d,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x1f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x47,0x00,0x00, +0x00,0x5c,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x1e,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x49,0x00,0x00,0x01,0x1d,0x00,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0x00,0x00,0x00,0x5e,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x20,0x00,0x00,0x01,0x4c,0x00,0x00,0x01,0x4c,0x00,0x00,0x00,0x74,0x00,0x00, +0x01,0x4d,0x00,0x00,0x01,0x4d,0x00,0x00,0x01,0x37,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x62,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x24,0x00,0x00,0x01,0x50,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x73,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x51,0x00,0x00,0x01,0x36,0x00,0x00,0x01,0x52,0x00,0x00, +0x01,0x52,0x00,0x00,0x00,0x79,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x54,0x00,0x00,0x00,0x7e,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x55,0x00,0x00,0x01,0x41,0x00,0x00,0x01,0x56,0x00,0x00,0x01,0x56,0x00,0x00,0x00,0x80,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0x57,0x00,0x00, +0x01,0x43,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0x58,0x00,0x00,0x00,0x7f,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0x42,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0x5a,0x00,0x00,0x00,0x82,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x5b,0x00,0x00,0x01,0x45,0x00,0x00,0x01,0x5c,0x00,0x00,0x01,0x5c,0x00,0x00,0x00,0x85,0x00,0x00, +0x01,0x5d,0x00,0x00,0x01,0x5d,0x00,0x00,0x01,0x48,0x00,0x00,0x01,0x5e,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x84,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x5f,0x00,0x00,0x01,0x47,0x00,0x00,0x01,0x60,0x00,0x00,0x01,0x60,0x00,0x00,0x00,0x83,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0x00,0x00,0x01,0x46,0x00,0x00,0x01,0x62,0x00,0x00, +0x01,0x62,0x00,0x00,0x00,0x8c,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x63,0x00,0x00,0x01,0x4f,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x64,0x00,0x00,0x00,0x8b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x4e,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x66,0x00,0x00,0x00,0x8a,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x67,0x00,0x00, +0x01,0x4d,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x68,0x00,0x00,0x00,0xa0,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x69,0x00,0x00,0x01,0x68,0x00,0x00,0x01,0x6a,0x00,0x00,0x01,0x6a,0x00,0x00,0x00,0x9d,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x6b,0x00,0x00,0x01,0x65,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x6c,0x00,0x00,0x00,0x90,0x00,0x00, +0x01,0x6d,0x00,0x00,0x01,0x6d,0x00,0x00,0x01,0x53,0x00,0x00,0x01,0x6e,0x00,0x00,0x01,0x6e,0x00,0x00,0x00,0x9f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x6f,0x00,0x00,0x01,0x67,0x00,0x00,0x01,0x70,0x00,0x00,0x01,0x70,0x00,0x00,0x00,0x9c,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x71,0x00,0x00,0x01,0x64,0x00,0x00,0x01,0x72,0x00,0x00, +0x01,0x72,0x00,0x00,0x00,0x9e,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x73,0x00,0x00,0x01,0x66,0x00,0x00,0x01,0x74,0x00,0x00,0x01,0x74,0x00,0x00,0x00,0xa4,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x75,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x76,0x00,0x00,0x01,0x76,0x00,0x00,0x00,0xaa,0x00,0x00,0x01,0x77,0x00,0x00,0x01,0x77,0x00,0x00, +0x01,0x72,0x00,0x00,0x01,0x78,0x00,0x00,0x01,0x78,0x00,0x00,0x00,0xab,0x00,0x00,0x01,0x79,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0xb2,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7a,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0xb4,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00,0x01,0x7c,0x00,0x00, +0x01,0x7d,0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0xb3,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7e,0x00,0x00,0x01,0x7b,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x7f,0x00,0x00,0x01,0x4b,0x00,0x00,0x01,0x8f,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x88,0x00,0x00,0x01,0x90,0x00,0x00,0x01,0x90,0x00,0x00,0x00,0x36,0x00,0x00,0x01,0x92,0x00,0x00, +0x01,0x92,0x00,0x00,0x03,0xc8,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x9b,0x00,0x00,0x01,0x15,0x00,0x00,0x01,0xa0,0x00,0x00,0x01,0xa0,0x00,0x00,0x00,0x6d,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0xa1,0x00,0x00,0x01,0x30,0x00,0x00,0x01,0xaf,0x00,0x00,0x01,0xaf,0x00,0x00,0x00,0x96,0x00,0x00,0x01,0xb0,0x00,0x00,0x01,0xb0,0x00,0x00, +0x01,0x5e,0x00,0x00,0x01,0xcd,0x00,0x00,0x01,0xcd,0x00,0x00,0x00,0x09,0x00,0x00,0x01,0xce,0x00,0x00,0x01,0xce,0x00,0x00,0x00,0xc5,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0xd0,0x00,0x00,0x01,0x03,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0xd2,0x00,0x00,0x01,0x25,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0xd4,0x00,0x00,0x01,0x54,0x00,0x00, +0x01,0xd6,0x00,0x00,0x01,0xd6,0x00,0x00,0x01,0x5a,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0xd8,0x00,0x00,0x01,0x57,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0xda,0x00,0x00,0x01,0x58,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0xdc,0x00,0x00,0x01,0x59,0x00,0x00,0x01,0xe6,0x00,0x00,0x01,0xe6,0x00,0x00,0x00,0x3c,0x00,0x00,0x01,0xe7,0x00,0x00, +0x01,0xe7,0x00,0x00,0x00,0xf8,0x00,0x00,0x01,0xea,0x00,0x00,0x01,0xea,0x00,0x00,0x00,0x75,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x00,0x00,0x01,0x38,0x00,0x00,0x01,0xf4,0x00,0x00,0x01,0xf4,0x00,0x00,0x00,0x3a,0x00,0x00,0x01,0xf5,0x00,0x00,0x01,0xf5,0x00,0x00,0x00,0xf6,0x00,0x00,0x01,0xfc,0x00,0x00,0x01,0xfc,0x00,0x00, +0x00,0x19,0x00,0x00,0x01,0xfd,0x00,0x00,0x01,0xfd,0x00,0x00,0x00,0xd5,0x00,0x00,0x01,0xfe,0x00,0x00,0x01,0xfe,0x00,0x00,0x00,0x77,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0xff,0x00,0x00,0x01,0x3a,0x00,0x00,0x02,0x18,0x00,0x00,0x02,0x18,0x00,0x00,0x00,0x86,0x00,0x00,0x02,0x19,0x00,0x00,0x02,0x19,0x00,0x00,0x01,0x49,0x00,0x00, +0x02,0x1a,0x00,0x00,0x02,0x1a,0x00,0x00,0x00,0x8d,0x00,0x00,0x02,0x1b,0x00,0x00,0x02,0x1b,0x00,0x00,0x01,0x50,0x00,0x00,0x02,0x32,0x00,0x00,0x02,0x32,0x00,0x00,0x00,0xaf,0x00,0x00,0x02,0x33,0x00,0x00,0x02,0x33,0x00,0x00,0x01,0x77,0x00,0x00,0x02,0x37,0x00,0x00,0x02,0x37,0x00,0x00,0x01,0x0e,0x00,0x00,0x02,0x59,0x00,0x00, +0x02,0x59,0x00,0x00,0x00,0xf3,0x00,0x00,0x02,0xb9,0x00,0x00,0x02,0xb9,0x00,0x00,0x06,0x67,0x00,0x00,0x02,0xba,0x00,0x00,0x02,0xba,0x00,0x00,0x06,0x65,0x00,0x00,0x02,0xbc,0x00,0x00,0x02,0xbc,0x00,0x00,0x06,0x64,0x00,0x00,0x02,0xc6,0x00,0x00,0x02,0xc7,0x00,0x00,0x06,0x85,0x00,0x00,0x02,0xc9,0x00,0x00,0x02,0xc9,0x00,0x00, +0x06,0x66,0x00,0x00,0x02,0xd8,0x00,0x00,0x02,0xd8,0x00,0x00,0x06,0x87,0x00,0x00,0x02,0xd9,0x00,0x00,0x02,0xd9,0x00,0x00,0x06,0x81,0x00,0x00,0x02,0xda,0x00,0x00,0x02,0xda,0x00,0x00,0x06,0x88,0x00,0x00,0x02,0xdb,0x00,0x00,0x02,0xdb,0x00,0x00,0x06,0x8c,0x00,0x00,0x02,0xdc,0x00,0x00,0x02,0xdc,0x00,0x00,0x06,0x89,0x00,0x00, +0x02,0xdd,0x00,0x00,0x02,0xdd,0x00,0x00,0x06,0x84,0x00,0x00,0x02,0xf3,0x00,0x00,0x02,0xf3,0x00,0x00,0x06,0x03,0x00,0x00,0x02,0xf7,0x00,0x00,0x02,0xf7,0x00,0x00,0x06,0x04,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x01,0x00,0x00,0x06,0x6a,0x00,0x00,0x03,0x02,0x00,0x00,0x03,0x02,0x00,0x00,0x06,0x6e,0x00,0x00,0x03,0x03,0x00,0x00, +0x03,0x04,0x00,0x00,0x06,0x72,0x00,0x00,0x03,0x06,0x00,0x00,0x03,0x06,0x00,0x00,0x06,0x70,0x00,0x00,0x03,0x07,0x00,0x00,0x03,0x07,0x00,0x00,0x06,0x69,0x00,0x00,0x03,0x08,0x00,0x00,0x03,0x08,0x00,0x00,0x06,0x68,0x00,0x00,0x03,0x09,0x00,0x00,0x03,0x09,0x00,0x00,0x06,0x74,0x00,0x00,0x03,0x0a,0x00,0x00,0x03,0x0a,0x00,0x00, +0x06,0x71,0x00,0x00,0x03,0x0b,0x00,0x00,0x03,0x0b,0x00,0x00,0x06,0x6c,0x00,0x00,0x03,0x0c,0x00,0x00,0x03,0x0c,0x00,0x00,0x06,0x6f,0x00,0x00,0x03,0x0f,0x00,0x00,0x03,0x0f,0x00,0x00,0x06,0x75,0x00,0x00,0x03,0x12,0x00,0x00,0x03,0x12,0x00,0x00,0x06,0x76,0x00,0x00,0x03,0x1b,0x00,0x00,0x03,0x1b,0x00,0x00,0x06,0x77,0x00,0x00, +0x03,0x23,0x00,0x00,0x03,0x23,0x00,0x00,0x06,0x78,0x00,0x00,0x03,0x25,0x00,0x00,0x03,0x28,0x00,0x00,0x06,0x79,0x00,0x00,0x03,0x36,0x00,0x00,0x03,0x38,0x00,0x00,0x06,0x7d,0x00,0x00,0x03,0x74,0x00,0x00,0x03,0x75,0x00,0x00,0x06,0x62,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0x7e,0x00,0x00,0x03,0xbb,0x00,0x00,0x03,0x84,0x00,0x00, +0x03,0x84,0x00,0x00,0x06,0xb0,0x00,0x00,0x03,0x85,0x00,0x00,0x03,0x85,0x00,0x00,0x06,0xb2,0x00,0x00,0x03,0x86,0x00,0x00,0x03,0x86,0x00,0x00,0x02,0x69,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0x87,0x00,0x00,0x03,0xba,0x00,0x00,0x03,0x88,0x00,0x00,0x03,0x8a,0x00,0x00,0x02,0x6a,0x00,0x00,0x03,0x8c,0x00,0x00,0x03,0x8c,0x00,0x00, +0x02,0x6d,0x00,0x00,0x03,0x8e,0x00,0x00,0x03,0x8f,0x00,0x00,0x02,0x6e,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0x90,0x00,0x00,0x02,0x90,0x00,0x00,0x03,0x91,0x00,0x00,0x03,0xa1,0x00,0x00,0x02,0x51,0x00,0x00,0x03,0xa3,0x00,0x00,0x03,0xa9,0x00,0x00,0x02,0x62,0x00,0x00,0x03,0xaa,0x00,0x00,0x03,0xab,0x00,0x00,0x02,0x70,0x00,0x00, +0x03,0xac,0x00,0x00,0x03,0xae,0x00,0x00,0x02,0x96,0x00,0x00,0x03,0xaf,0x00,0x00,0x03,0xaf,0x00,0x00,0x02,0x8e,0x00,0x00,0x03,0xb0,0x00,0x00,0x03,0xb0,0x00,0x00,0x02,0x93,0x00,0x00,0x03,0xb1,0x00,0x00,0x03,0xc9,0x00,0x00,0x02,0x75,0x00,0x00,0x03,0xca,0x00,0x00,0x03,0xca,0x00,0x00,0x02,0x8f,0x00,0x00,0x03,0xcb,0x00,0x00, +0x03,0xcb,0x00,0x00,0x02,0x92,0x00,0x00,0x03,0xcc,0x00,0x00,0x03,0xcc,0x00,0x00,0x02,0x94,0x00,0x00,0x03,0xcd,0x00,0x00,0x03,0xcd,0x00,0x00,0x02,0x91,0x00,0x00,0x03,0xce,0x00,0x00,0x03,0xce,0x00,0x00,0x02,0x95,0x00,0x00,0x03,0xcf,0x00,0x00,0x03,0xcf,0x00,0x00,0x02,0x72,0x00,0x00,0x03,0xd5,0x00,0x00,0x03,0xd6,0x00,0x00, +0x02,0x9a,0x00,0x00,0x03,0xd7,0x00,0x00,0x03,0xd7,0x00,0x00,0x02,0x99,0x00,0x00,0x04,0x01,0x00,0x00,0x04,0x01,0x00,0x00,0x01,0xd0,0x00,0x00,0x04,0x02,0x00,0x00,0x04,0x02,0x00,0x00,0x01,0xf6,0x00,0x00,0x04,0x03,0x00,0x00,0x04,0x03,0x00,0x00,0x01,0xcc,0x00,0x00,0x04,0x04,0x00,0x00,0x04,0x04,0x00,0x00,0x01,0xee,0x00,0x00, +0x04,0x05,0x00,0x00,0x04,0x05,0x00,0x00,0x01,0xed,0x00,0x00,0x04,0x06,0x00,0x00,0x04,0x08,0x00,0x00,0x01,0xf0,0x00,0x00,0x04,0x09,0x00,0x00,0x04,0x0a,0x00,0x00,0x01,0xeb,0x00,0x00,0x04,0x0b,0x00,0x00,0x04,0x0b,0x00,0x00,0x01,0xf3,0x00,0x00,0x04,0x0c,0x00,0x00,0x04,0x0c,0x00,0x00,0x01,0xd6,0x00,0x00,0x04,0x0e,0x00,0x00, +0x04,0x0e,0x00,0x00,0x01,0xe0,0x00,0x00,0x04,0x0f,0x00,0x00,0x04,0x0f,0x00,0x00,0x01,0xe7,0x00,0x00,0x04,0x10,0x00,0x00,0x04,0x13,0x00,0x00,0x01,0xc8,0x00,0x00,0x04,0x14,0x00,0x00,0x04,0x15,0x00,0x00,0x01,0xce,0x00,0x00,0x04,0x16,0x00,0x00,0x04,0x1a,0x00,0x00,0x01,0xd1,0x00,0x00,0x04,0x1b,0x00,0x00,0x04,0x23,0x00,0x00, +0x01,0xd7,0x00,0x00,0x04,0x24,0x00,0x00,0x04,0x25,0x00,0x00,0x01,0xe1,0x00,0x00,0x04,0x26,0x00,0x00,0x04,0x26,0x00,0x00,0x01,0xe4,0x00,0x00,0x04,0x27,0x00,0x00,0x04,0x27,0x00,0x00,0x01,0xe3,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x29,0x00,0x00,0x01,0xe5,0x00,0x00,0x04,0x2a,0x00,0x00,0x04,0x2b,0x00,0x00,0x01,0xe9,0x00,0x00, +0x04,0x2c,0x00,0x00,0x04,0x2c,0x00,0x00,0x01,0xe8,0x00,0x00,0x04,0x2d,0x00,0x00,0x04,0x2d,0x00,0x00,0x01,0xef,0x00,0x00,0x04,0x2e,0x00,0x00,0x04,0x2f,0x00,0x00,0x01,0xf4,0x00,0x00,0x04,0x30,0x00,0x00,0x04,0x33,0x00,0x00,0x02,0x0c,0x00,0x00,0x04,0x34,0x00,0x00,0x04,0x35,0x00,0x00,0x02,0x12,0x00,0x00,0x04,0x36,0x00,0x00, +0x04,0x3a,0x00,0x00,0x02,0x15,0x00,0x00,0x04,0x3b,0x00,0x00,0x04,0x43,0x00,0x00,0x02,0x1b,0x00,0x00,0x04,0x44,0x00,0x00,0x04,0x45,0x00,0x00,0x02,0x25,0x00,0x00,0x04,0x46,0x00,0x00,0x04,0x46,0x00,0x00,0x02,0x28,0x00,0x00,0x04,0x47,0x00,0x00,0x04,0x47,0x00,0x00,0x02,0x27,0x00,0x00,0x04,0x48,0x00,0x00,0x04,0x49,0x00,0x00, +0x02,0x29,0x00,0x00,0x04,0x4a,0x00,0x00,0x04,0x4b,0x00,0x00,0x02,0x2d,0x00,0x00,0x04,0x4c,0x00,0x00,0x04,0x4c,0x00,0x00,0x02,0x2c,0x00,0x00,0x04,0x4d,0x00,0x00,0x04,0x4d,0x00,0x00,0x02,0x33,0x00,0x00,0x04,0x4e,0x00,0x00,0x04,0x4f,0x00,0x00,0x02,0x38,0x00,0x00,0x04,0x51,0x00,0x00,0x04,0x51,0x00,0x00,0x02,0x14,0x00,0x00, +0x04,0x52,0x00,0x00,0x04,0x52,0x00,0x00,0x02,0x3a,0x00,0x00,0x04,0x53,0x00,0x00,0x04,0x53,0x00,0x00,0x02,0x10,0x00,0x00,0x04,0x54,0x00,0x00,0x04,0x54,0x00,0x00,0x02,0x32,0x00,0x00,0x04,0x55,0x00,0x00,0x04,0x55,0x00,0x00,0x02,0x31,0x00,0x00,0x04,0x56,0x00,0x00,0x04,0x58,0x00,0x00,0x02,0x34,0x00,0x00,0x04,0x59,0x00,0x00, +0x04,0x5a,0x00,0x00,0x02,0x2f,0x00,0x00,0x04,0x5b,0x00,0x00,0x04,0x5b,0x00,0x00,0x02,0x37,0x00,0x00,0x04,0x5c,0x00,0x00,0x04,0x5c,0x00,0x00,0x02,0x1a,0x00,0x00,0x04,0x5e,0x00,0x00,0x04,0x5e,0x00,0x00,0x02,0x24,0x00,0x00,0x04,0x5f,0x00,0x00,0x04,0x5f,0x00,0x00,0x02,0x2b,0x00,0x00,0x04,0x90,0x00,0x00,0x04,0x90,0x00,0x00, +0x01,0xcd,0x00,0x00,0x04,0x91,0x00,0x00,0x04,0x91,0x00,0x00,0x02,0x11,0x00,0x00,0x04,0x92,0x00,0x00,0x04,0x92,0x00,0x00,0x01,0xf7,0x00,0x00,0x04,0x93,0x00,0x00,0x04,0x93,0x00,0x00,0x02,0x3b,0x00,0x00,0x04,0x9a,0x00,0x00,0x04,0x9a,0x00,0x00,0x01,0xf8,0x00,0x00,0x04,0x9b,0x00,0x00,0x04,0x9b,0x00,0x00,0x02,0x3c,0x00,0x00, +0x04,0xa2,0x00,0x00,0x04,0xa2,0x00,0x00,0x01,0xf9,0x00,0x00,0x04,0xa3,0x00,0x00,0x04,0xa3,0x00,0x00,0x02,0x3d,0x00,0x00,0x04,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x01,0xfa,0x00,0x00,0x04,0xaf,0x00,0x00,0x04,0xaf,0x00,0x00,0x02,0x3e,0x00,0x00,0x04,0xb0,0x00,0x00,0x04,0xb0,0x00,0x00,0x01,0xfb,0x00,0x00,0x04,0xb1,0x00,0x00, +0x04,0xb1,0x00,0x00,0x02,0x3f,0x00,0x00,0x04,0xb6,0x00,0x00,0x04,0xb6,0x00,0x00,0x01,0xfc,0x00,0x00,0x04,0xb7,0x00,0x00,0x04,0xb7,0x00,0x00,0x02,0x40,0x00,0x00,0x04,0xba,0x00,0x00,0x04,0xba,0x00,0x00,0x01,0xfd,0x00,0x00,0x04,0xbb,0x00,0x00,0x04,0xbb,0x00,0x00,0x02,0x41,0x00,0x00,0x04,0xd8,0x00,0x00,0x04,0xd8,0x00,0x00, +0x01,0xfe,0x00,0x00,0x04,0xd9,0x00,0x00,0x04,0xd9,0x00,0x00,0x02,0x42,0x00,0x00,0x04,0xdc,0x00,0x00,0x04,0xdc,0x00,0x00,0x01,0xff,0x00,0x00,0x04,0xdd,0x00,0x00,0x04,0xdd,0x00,0x00,0x02,0x43,0x00,0x00,0x04,0xde,0x00,0x00,0x04,0xde,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0xdf,0x00,0x00,0x04,0xdf,0x00,0x00,0x02,0x44,0x00,0x00, +0x04,0xe4,0x00,0x00,0x04,0xe4,0x00,0x00,0x02,0x01,0x00,0x00,0x04,0xe5,0x00,0x00,0x04,0xe5,0x00,0x00,0x02,0x45,0x00,0x00,0x04,0xe6,0x00,0x00,0x04,0xe6,0x00,0x00,0x02,0x02,0x00,0x00,0x04,0xe7,0x00,0x00,0x04,0xe7,0x00,0x00,0x02,0x46,0x00,0x00,0x04,0xe8,0x00,0x00,0x04,0xe8,0x00,0x00,0x02,0x03,0x00,0x00,0x04,0xe9,0x00,0x00, +0x04,0xe9,0x00,0x00,0x02,0x47,0x00,0x00,0x04,0xf4,0x00,0x00,0x04,0xf4,0x00,0x00,0x02,0x04,0x00,0x00,0x04,0xf5,0x00,0x00,0x04,0xf5,0x00,0x00,0x02,0x48,0x00,0x00,0x0a,0xea,0x00,0x00,0x0a,0xea,0x00,0x00,0x03,0x28,0x00,0x00,0x1e,0x80,0x00,0x00,0x1e,0x80,0x00,0x00,0x00,0xa6,0x00,0x00,0x1e,0x81,0x00,0x00,0x1e,0x81,0x00,0x00, +0x01,0x6e,0x00,0x00,0x1e,0x82,0x00,0x00,0x1e,0x82,0x00,0x00,0x00,0xa3,0x00,0x00,0x1e,0x83,0x00,0x00,0x1e,0x83,0x00,0x00,0x01,0x6b,0x00,0x00,0x1e,0x84,0x00,0x00,0x1e,0x84,0x00,0x00,0x00,0xa5,0x00,0x00,0x1e,0x85,0x00,0x00,0x1e,0x85,0x00,0x00,0x01,0x6d,0x00,0x00,0x1e,0x9e,0x00,0x00,0x1e,0x9e,0x00,0x00,0x00,0x87,0x00,0x00, +0x1e,0xa0,0x00,0x00,0x1e,0xa0,0x00,0x00,0x00,0x11,0x00,0x00,0x1e,0xa1,0x00,0x00,0x1e,0xa1,0x00,0x00,0x00,0xcd,0x00,0x00,0x1e,0xa2,0x00,0x00,0x1e,0xa2,0x00,0x00,0x00,0x13,0x00,0x00,0x1e,0xa3,0x00,0x00,0x1e,0xa3,0x00,0x00,0x00,0xcf,0x00,0x00,0x1e,0xa4,0x00,0x00,0x1e,0xa4,0x00,0x00,0x00,0x0b,0x00,0x00,0x1e,0xa5,0x00,0x00, +0x1e,0xa5,0x00,0x00,0x00,0xc7,0x00,0x00,0x1e,0xa6,0x00,0x00,0x1e,0xa6,0x00,0x00,0x00,0x0d,0x00,0x00,0x1e,0xa7,0x00,0x00,0x1e,0xa7,0x00,0x00,0x00,0xc9,0x00,0x00,0x1e,0xa8,0x00,0x00,0x1e,0xa8,0x00,0x00,0x00,0x0e,0x00,0x00,0x1e,0xa9,0x00,0x00,0x1e,0xa9,0x00,0x00,0x00,0xca,0x00,0x00,0x1e,0xaa,0x00,0x00,0x1e,0xaa,0x00,0x00, +0x00,0x0f,0x00,0x00,0x1e,0xab,0x00,0x00,0x1e,0xab,0x00,0x00,0x00,0xcb,0x00,0x00,0x1e,0xac,0x00,0x00,0x1e,0xac,0x00,0x00,0x00,0x0c,0x00,0x00,0x1e,0xad,0x00,0x00,0x1e,0xad,0x00,0x00,0x00,0xc8,0x00,0x00,0x1e,0xae,0x00,0x00,0x1e,0xae,0x00,0x00,0x00,0x04,0x00,0x00,0x1e,0xaf,0x00,0x00,0x1e,0xaf,0x00,0x00,0x00,0xc0,0x00,0x00, +0x1e,0xb0,0x00,0x00,0x1e,0xb0,0x00,0x00,0x00,0x06,0x00,0x00,0x1e,0xb1,0x00,0x00,0x1e,0xb1,0x00,0x00,0x00,0xc2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x1e,0xb2,0x00,0x00,0x00,0x07,0x00,0x00,0x1e,0xb3,0x00,0x00,0x1e,0xb3,0x00,0x00,0x00,0xc3,0x00,0x00,0x1e,0xb4,0x00,0x00,0x1e,0xb4,0x00,0x00,0x00,0x08,0x00,0x00,0x1e,0xb5,0x00,0x00, +0x1e,0xb5,0x00,0x00,0x00,0xc4,0x00,0x00,0x1e,0xb6,0x00,0x00,0x1e,0xb6,0x00,0x00,0x00,0x05,0x00,0x00,0x1e,0xb7,0x00,0x00,0x1e,0xb7,0x00,0x00,0x00,0xc1,0x00,0x00,0x1e,0xb8,0x00,0x00,0x1e,0xb8,0x00,0x00,0x00,0x31,0x00,0x00,0x1e,0xb9,0x00,0x00,0x1e,0xb9,0x00,0x00,0x00,0xed,0x00,0x00,0x1e,0xba,0x00,0x00,0x1e,0xba,0x00,0x00, +0x00,0x33,0x00,0x00,0x1e,0xbb,0x00,0x00,0x1e,0xbb,0x00,0x00,0x00,0xef,0x00,0x00,0x1e,0xbc,0x00,0x00,0x1e,0xbc,0x00,0x00,0x00,0x37,0x00,0x00,0x1e,0xbd,0x00,0x00,0x1e,0xbd,0x00,0x00,0x00,0xf2,0x00,0x00,0x1e,0xbe,0x00,0x00,0x1e,0xbe,0x00,0x00,0x00,0x2a,0x00,0x00,0x1e,0xbf,0x00,0x00,0x1e,0xbf,0x00,0x00,0x00,0xe6,0x00,0x00, +0x1e,0xc0,0x00,0x00,0x1e,0xc0,0x00,0x00,0x00,0x2c,0x00,0x00,0x1e,0xc1,0x00,0x00,0x1e,0xc1,0x00,0x00,0x00,0xe8,0x00,0x00,0x1e,0xc2,0x00,0x00,0x1e,0xc2,0x00,0x00,0x00,0x2d,0x00,0x00,0x1e,0xc3,0x00,0x00,0x1e,0xc3,0x00,0x00,0x00,0xe9,0x00,0x00,0x1e,0xc4,0x00,0x00,0x1e,0xc4,0x00,0x00,0x00,0x2e,0x00,0x00,0x1e,0xc5,0x00,0x00, +0x1e,0xc5,0x00,0x00,0x00,0xea,0x00,0x00,0x1e,0xc6,0x00,0x00,0x1e,0xc6,0x00,0x00,0x00,0x2b,0x00,0x00,0x1e,0xc7,0x00,0x00,0x1e,0xc7,0x00,0x00,0x00,0xe7,0x00,0x00,0x1e,0xc8,0x00,0x00,0x1e,0xc8,0x00,0x00,0x00,0x4b,0x00,0x00,0x1e,0xc9,0x00,0x00,0x1e,0xc9,0x00,0x00,0x01,0x09,0x00,0x00,0x1e,0xca,0x00,0x00,0x1e,0xca,0x00,0x00, +0x00,0x49,0x00,0x00,0x1e,0xcb,0x00,0x00,0x1e,0xcb,0x00,0x00,0x01,0x07,0x00,0x00,0x1e,0xcc,0x00,0x00,0x1e,0xcc,0x00,0x00,0x00,0x6a,0x00,0x00,0x1e,0xcd,0x00,0x00,0x1e,0xcd,0x00,0x00,0x01,0x2d,0x00,0x00,0x1e,0xce,0x00,0x00,0x1e,0xce,0x00,0x00,0x00,0x6c,0x00,0x00,0x1e,0xcf,0x00,0x00,0x1e,0xcf,0x00,0x00,0x01,0x2f,0x00,0x00, +0x1e,0xd0,0x00,0x00,0x1e,0xd0,0x00,0x00,0x00,0x64,0x00,0x00,0x1e,0xd1,0x00,0x00,0x1e,0xd1,0x00,0x00,0x01,0x27,0x00,0x00,0x1e,0xd2,0x00,0x00,0x1e,0xd2,0x00,0x00,0x00,0x66,0x00,0x00,0x1e,0xd3,0x00,0x00,0x1e,0xd3,0x00,0x00,0x01,0x29,0x00,0x00,0x1e,0xd4,0x00,0x00,0x1e,0xd4,0x00,0x00,0x00,0x67,0x00,0x00,0x1e,0xd5,0x00,0x00, +0x1e,0xd5,0x00,0x00,0x01,0x2a,0x00,0x00,0x1e,0xd6,0x00,0x00,0x1e,0xd6,0x00,0x00,0x00,0x68,0x00,0x00,0x1e,0xd7,0x00,0x00,0x1e,0xd7,0x00,0x00,0x01,0x2b,0x00,0x00,0x1e,0xd8,0x00,0x00,0x1e,0xd8,0x00,0x00,0x00,0x65,0x00,0x00,0x1e,0xd9,0x00,0x00,0x1e,0xd9,0x00,0x00,0x01,0x28,0x00,0x00,0x1e,0xda,0x00,0x00,0x1e,0xda,0x00,0x00, +0x00,0x6e,0x00,0x00,0x1e,0xdb,0x00,0x00,0x1e,0xdb,0x00,0x00,0x01,0x31,0x00,0x00,0x1e,0xdc,0x00,0x00,0x1e,0xdc,0x00,0x00,0x00,0x70,0x00,0x00,0x1e,0xdd,0x00,0x00,0x1e,0xdd,0x00,0x00,0x01,0x33,0x00,0x00,0x1e,0xde,0x00,0x00,0x1e,0xde,0x00,0x00,0x00,0x71,0x00,0x00,0x1e,0xdf,0x00,0x00,0x1e,0xdf,0x00,0x00,0x01,0x34,0x00,0x00, +0x1e,0xe0,0x00,0x00,0x1e,0xe0,0x00,0x00,0x00,0x72,0x00,0x00,0x1e,0xe1,0x00,0x00,0x1e,0xe1,0x00,0x00,0x01,0x35,0x00,0x00,0x1e,0xe2,0x00,0x00,0x1e,0xe2,0x00,0x00,0x00,0x6f,0x00,0x00,0x1e,0xe3,0x00,0x00,0x1e,0xe3,0x00,0x00,0x01,0x32,0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xe4,0x00,0x00,0x00,0x93,0x00,0x00,0x1e,0xe5,0x00,0x00, +0x1e,0xe5,0x00,0x00,0x01,0x5b,0x00,0x00,0x1e,0xe6,0x00,0x00,0x1e,0xe6,0x00,0x00,0x00,0x95,0x00,0x00,0x1e,0xe7,0x00,0x00,0x1e,0xe7,0x00,0x00,0x01,0x5d,0x00,0x00,0x1e,0xe8,0x00,0x00,0x1e,0xe8,0x00,0x00,0x00,0x97,0x00,0x00,0x1e,0xe9,0x00,0x00,0x1e,0xe9,0x00,0x00,0x01,0x5f,0x00,0x00,0x1e,0xea,0x00,0x00,0x1e,0xea,0x00,0x00, +0x00,0x99,0x00,0x00,0x1e,0xeb,0x00,0x00,0x1e,0xeb,0x00,0x00,0x01,0x61,0x00,0x00,0x1e,0xec,0x00,0x00,0x1e,0xec,0x00,0x00,0x00,0x9a,0x00,0x00,0x1e,0xed,0x00,0x00,0x1e,0xed,0x00,0x00,0x01,0x62,0x00,0x00,0x1e,0xee,0x00,0x00,0x1e,0xee,0x00,0x00,0x00,0x9b,0x00,0x00,0x1e,0xef,0x00,0x00,0x1e,0xef,0x00,0x00,0x01,0x63,0x00,0x00, +0x1e,0xf0,0x00,0x00,0x1e,0xf0,0x00,0x00,0x00,0x98,0x00,0x00,0x1e,0xf1,0x00,0x00,0x1e,0xf1,0x00,0x00,0x01,0x60,0x00,0x00,0x1e,0xf2,0x00,0x00,0x1e,0xf2,0x00,0x00,0x00,0xad,0x00,0x00,0x1e,0xf3,0x00,0x00,0x1e,0xf3,0x00,0x00,0x01,0x75,0x00,0x00,0x1e,0xf4,0x00,0x00,0x1e,0xf4,0x00,0x00,0x00,0xac,0x00,0x00,0x1e,0xf5,0x00,0x00, +0x1e,0xf5,0x00,0x00,0x01,0x74,0x00,0x00,0x1e,0xf6,0x00,0x00,0x1e,0xf6,0x00,0x00,0x00,0xae,0x00,0x00,0x1e,0xf7,0x00,0x00,0x1e,0xf7,0x00,0x00,0x01,0x76,0x00,0x00,0x1e,0xf8,0x00,0x00,0x1e,0xf8,0x00,0x00,0x00,0xb0,0x00,0x00,0x1e,0xf9,0x00,0x00,0x1e,0xf9,0x00,0x00,0x01,0x78,0x00,0x00,0x20,0x01,0x00,0x00,0x20,0x01,0x00,0x00, +0x03,0xbc,0x00,0x00,0x20,0x0b,0x00,0x00,0x20,0x0b,0x00,0x00,0x03,0xbd,0x00,0x00,0x20,0x10,0x00,0x00,0x20,0x10,0x00,0x00,0x03,0x5b,0x00,0x00,0x20,0x13,0x00,0x00,0x20,0x14,0x00,0x00,0x03,0x59,0x00,0x00,0x20,0x16,0x00,0x00,0x20,0x16,0x00,0x00,0x03,0x37,0x00,0x00,0x20,0x18,0x00,0x00,0x20,0x19,0x00,0x00,0x03,0x61,0x00,0x00, +0x20,0x1a,0x00,0x00,0x20,0x1a,0x00,0x00,0x03,0x5d,0x00,0x00,0x20,0x1b,0x00,0x00,0x20,0x1b,0x00,0x00,0x03,0x63,0x00,0x00,0x20,0x1c,0x00,0x00,0x20,0x1d,0x00,0x00,0x03,0x5f,0x00,0x00,0x20,0x1e,0x00,0x00,0x20,0x1e,0x00,0x00,0x03,0x5e,0x00,0x00,0x20,0x1f,0x00,0x00,0x20,0x1f,0x00,0x00,0x03,0x64,0x00,0x00,0x20,0x20,0x00,0x00, +0x20,0x20,0x00,0x00,0x05,0xc0,0x00,0x00,0x20,0x21,0x00,0x00,0x20,0x21,0x00,0x00,0x05,0xc2,0x00,0x00,0x20,0x22,0x00,0x00,0x20,0x22,0x00,0x00,0x03,0x33,0x00,0x00,0x20,0x24,0x00,0x00,0x20,0x24,0x00,0x00,0x03,0x3b,0x00,0x00,0x20,0x26,0x00,0x00,0x20,0x26,0x00,0x00,0x03,0x2d,0x00,0x00,0x20,0x30,0x00,0x00,0x20,0x30,0x00,0x00, +0x04,0x39,0x00,0x00,0x20,0x32,0x00,0x00,0x20,0x33,0x00,0x00,0x05,0xbc,0x00,0x00,0x20,0x34,0x00,0x00,0x20,0x34,0x00,0x00,0x03,0x69,0x00,0x00,0x20,0x39,0x00,0x00,0x20,0x3a,0x00,0x00,0x03,0x67,0x00,0x00,0x20,0x3c,0x00,0x00,0x20,0x3d,0x00,0x00,0x03,0x38,0x00,0x00,0x20,0x3e,0x00,0x00,0x20,0x3e,0x00,0x00,0x03,0x3c,0x00,0x00, +0x20,0x3f,0x00,0x00,0x20,0x3f,0x00,0x00,0x03,0x3f,0x00,0x00,0x20,0x44,0x00,0x00,0x20,0x44,0x00,0x00,0x03,0x20,0x00,0x00,0x20,0x45,0x00,0x00,0x20,0x46,0x00,0x00,0x03,0x35,0x00,0x00,0x20,0x70,0x00,0x00,0x20,0x70,0x00,0x00,0x03,0x02,0x00,0x00,0x20,0x74,0x00,0x00,0x20,0x79,0x00,0x00,0x03,0x06,0x00,0x00,0x20,0x7a,0x00,0x00, +0x20,0x7a,0x00,0x00,0x04,0x3b,0x00,0x00,0x20,0x7c,0x00,0x00,0x20,0x7c,0x00,0x00,0x03,0xe6,0x00,0x00,0x20,0x80,0x00,0x00,0x20,0x89,0x00,0x00,0x02,0xe4,0x00,0x00,0x20,0xab,0x00,0x00,0x20,0xac,0x00,0x00,0x03,0xc6,0x00,0x00,0x20,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x03,0xcc,0x00,0x00,0x20,0xb4,0x00,0x00,0x20,0xb4,0x00,0x00, +0x03,0xc9,0x00,0x00,0x20,0xbd,0x00,0x00,0x20,0xbd,0x00,0x00,0x03,0xca,0x00,0x00,0x20,0xbf,0x00,0x00,0x20,0xbf,0x00,0x00,0x03,0xc2,0x00,0x00,0x21,0x02,0x00,0x00,0x21,0x02,0x00,0x00,0x02,0xa2,0x00,0x00,0x21,0x0d,0x00,0x00,0x21,0x0d,0x00,0x00,0x02,0xa7,0x00,0x00,0x21,0x13,0x00,0x00,0x21,0x13,0x00,0x00,0x05,0xc1,0x00,0x00, +0x21,0x15,0x00,0x00,0x21,0x15,0x00,0x00,0x02,0xad,0x00,0x00,0x21,0x16,0x00,0x00,0x21,0x16,0x00,0x00,0x05,0xc3,0x00,0x00,0x21,0x19,0x00,0x00,0x21,0x1a,0x00,0x00,0x02,0xaf,0x00,0x00,0x21,0x1d,0x00,0x00,0x21,0x1d,0x00,0x00,0x02,0xb1,0x00,0x00,0x21,0x22,0x00,0x00,0x21,0x22,0x00,0x00,0x05,0xba,0x00,0x00,0x21,0x24,0x00,0x00, +0x21,0x24,0x00,0x00,0x02,0xb9,0x00,0x00,0x21,0x2e,0x00,0x00,0x21,0x2e,0x00,0x00,0x05,0xc4,0x00,0x00,0x21,0x40,0x00,0x00,0x21,0x40,0x00,0x00,0x04,0x5e,0x00,0x00,0x21,0x8a,0x00,0x00,0x21,0x8a,0x00,0x00,0x05,0xff,0x00,0x00,0x21,0x8b,0x00,0x00,0x21,0x8b,0x00,0x00,0x05,0xfe,0x00,0x00,0x21,0x90,0x00,0x00,0x21,0x90,0x00,0x00, +0x04,0x77,0x00,0x00,0x21,0x91,0x00,0x00,0x21,0x91,0x00,0x00,0x04,0x71,0x00,0x00,0x21,0x92,0x00,0x00,0x21,0x92,0x00,0x00,0x04,0x73,0x00,0x00,0x21,0x93,0x00,0x00,0x21,0x93,0x00,0x00,0x04,0x75,0x00,0x00,0x21,0x94,0x00,0x00,0x21,0x95,0x00,0x00,0x04,0x79,0x00,0x00,0x21,0x96,0x00,0x00,0x21,0x96,0x00,0x00,0x04,0x78,0x00,0x00, +0x21,0x97,0x00,0x00,0x21,0x97,0x00,0x00,0x04,0x72,0x00,0x00,0x21,0x98,0x00,0x00,0x21,0x98,0x00,0x00,0x04,0x74,0x00,0x00,0x21,0x99,0x00,0x00,0x21,0x99,0x00,0x00,0x04,0x76,0x00,0x00,0x21,0x9d,0x00,0x00,0x21,0x9d,0x00,0x00,0x04,0x7b,0x00,0x00,0x21,0x9e,0x00,0x00,0x21,0x9e,0x00,0x00,0x04,0x7d,0x00,0x00,0x21,0xa0,0x00,0x00, +0x21,0xa0,0x00,0x00,0x04,0x7e,0x00,0x00,0x21,0xa2,0x00,0x00,0x21,0xa3,0x00,0x00,0x04,0x7f,0x00,0x00,0x21,0xa5,0x00,0x00,0x21,0xa7,0x00,0x00,0x04,0x81,0x00,0x00,0x21,0xa9,0x00,0x00,0x21,0xaa,0x00,0x00,0x04,0x85,0x00,0x00,0x21,0xad,0x00,0x00,0x21,0xad,0x00,0x00,0x04,0x7c,0x00,0x00,0x21,0xbe,0x00,0x00,0x21,0xbe,0x00,0x00, +0x04,0x87,0x00,0x00,0x21,0xc9,0x00,0x00,0x21,0xc9,0x00,0x00,0x04,0x88,0x00,0x00,0x21,0xd0,0x00,0x00,0x21,0xd0,0x00,0x00,0x04,0x8c,0x00,0x00,0x21,0xd1,0x00,0x00,0x21,0xd3,0x00,0x00,0x04,0x89,0x00,0x00,0x21,0xd4,0x00,0x00,0x21,0xd4,0x00,0x00,0x04,0x8d,0x00,0x00,0x21,0xdb,0x00,0x00,0x21,0xdb,0x00,0x00,0x04,0x8e,0x00,0x00, +0x21,0xde,0x00,0x00,0x21,0xde,0x00,0x00,0x05,0xe8,0x00,0x00,0x21,0xdf,0x00,0x00,0x21,0xdf,0x00,0x00,0x05,0xe7,0x00,0x00,0x21,0xe5,0x00,0x00,0x21,0xe5,0x00,0x00,0x04,0x84,0x00,0x00,0x21,0xe7,0x00,0x00,0x21,0xe8,0x00,0x00,0x04,0x8f,0x00,0x00,0x21,0xea,0x00,0x00,0x21,0xea,0x00,0x00,0x05,0xe2,0x00,0x00,0x22,0x00,0x00,0x00, +0x22,0x00,0x00,0x00,0x04,0x65,0x00,0x00,0x22,0x01,0x00,0x00,0x22,0x01,0x00,0x00,0x03,0xd6,0x00,0x00,0x22,0x02,0x00,0x00,0x22,0x02,0x00,0x00,0x04,0x2f,0x00,0x00,0x22,0x03,0x00,0x00,0x22,0x03,0x00,0x00,0x03,0xea,0x00,0x00,0x22,0x04,0x00,0x00,0x22,0x04,0x00,0x00,0x04,0x62,0x00,0x00,0x22,0x05,0x00,0x00,0x22,0x05,0x00,0x00, +0x04,0x25,0x00,0x00,0x22,0x06,0x00,0x00,0x22,0x06,0x00,0x00,0x04,0x2b,0x00,0x00,0x22,0x07,0x00,0x00,0x22,0x07,0x00,0x00,0x03,0xeb,0x00,0x00,0x22,0x08,0x00,0x00,0x22,0x08,0x00,0x00,0x03,0xe2,0x00,0x00,0x22,0x09,0x00,0x00,0x22,0x09,0x00,0x00,0x04,0x0b,0x00,0x00,0x22,0x0a,0x00,0x00,0x22,0x0a,0x00,0x00,0x03,0xe3,0x00,0x00, +0x22,0x0b,0x00,0x00,0x22,0x0b,0x00,0x00,0x04,0x5d,0x00,0x00,0x22,0x0c,0x00,0x00,0x22,0x0c,0x00,0x00,0x04,0x0a,0x00,0x00,0x22,0x0e,0x00,0x00,0x22,0x0e,0x00,0x00,0x03,0xe5,0x00,0x00,0x22,0x0f,0x00,0x00,0x22,0x0f,0x00,0x00,0x04,0x2c,0x00,0x00,0x22,0x10,0x00,0x00,0x22,0x10,0x00,0x00,0x03,0xd8,0x00,0x00,0x22,0x11,0x00,0x00, +0x22,0x11,0x00,0x00,0x04,0x2d,0x00,0x00,0x22,0x12,0x00,0x00,0x22,0x12,0x00,0x00,0x04,0x16,0x00,0x00,0x22,0x13,0x00,0x00,0x22,0x13,0x00,0x00,0x03,0xf9,0x00,0x00,0x22,0x15,0x00,0x00,0x22,0x15,0x00,0x00,0x03,0xdd,0x00,0x00,0x22,0x18,0x00,0x00,0x22,0x18,0x00,0x00,0x04,0x4d,0x00,0x00,0x22,0x19,0x00,0x00,0x22,0x19,0x00,0x00, +0x03,0xd4,0x00,0x00,0x22,0x1a,0x00,0x00,0x22,0x1a,0x00,0x00,0x04,0x2e,0x00,0x00,0x22,0x1e,0x00,0x00,0x22,0x1e,0x00,0x00,0x04,0x24,0x00,0x00,0x22,0x23,0x00,0x00,0x22,0x23,0x00,0x00,0x03,0xdc,0x00,0x00,0x22,0x24,0x00,0x00,0x22,0x24,0x00,0x00,0x03,0xde,0x00,0x00,0x22,0x25,0x00,0x00,0x22,0x25,0x00,0x00,0x04,0x31,0x00,0x00, +0x22,0x27,0x00,0x00,0x22,0x2b,0x00,0x00,0x04,0x26,0x00,0x00,0x22,0x34,0x00,0x00,0x22,0x34,0x00,0x00,0x04,0x63,0x00,0x00,0x22,0x35,0x00,0x00,0x22,0x35,0x00,0x00,0x03,0xd1,0x00,0x00,0x22,0x36,0x00,0x00,0x22,0x36,0x00,0x00,0x04,0x40,0x00,0x00,0x22,0x37,0x00,0x00,0x22,0x37,0x00,0x00,0x04,0x3e,0x00,0x00,0x22,0x38,0x00,0x00, +0x22,0x38,0x00,0x00,0x03,0xdf,0x00,0x00,0x22,0x39,0x00,0x00,0x22,0x39,0x00,0x00,0x03,0xe9,0x00,0x00,0x22,0x3c,0x00,0x00,0x22,0x3c,0x00,0x00,0x04,0x4e,0x00,0x00,0x22,0x3e,0x00,0x00,0x22,0x3e,0x00,0x00,0x03,0xed,0x00,0x00,0x22,0x43,0x00,0x00,0x22,0x43,0x00,0x00,0x03,0xd0,0x00,0x00,0x22,0x45,0x00,0x00,0x22,0x45,0x00,0x00, +0x03,0xd7,0x00,0x00,0x22,0x47,0x00,0x00,0x22,0x47,0x00,0x00,0x04,0x04,0x00,0x00,0x22,0x48,0x00,0x00,0x22,0x48,0x00,0x00,0x04,0x20,0x00,0x00,0x22,0x49,0x00,0x00,0x22,0x49,0x00,0x00,0x04,0x09,0x00,0x00,0x22,0x4b,0x00,0x00,0x22,0x4b,0x00,0x00,0x04,0x64,0x00,0x00,0x22,0x4d,0x00,0x00,0x22,0x4d,0x00,0x00,0x03,0xe8,0x00,0x00, +0x22,0x54,0x00,0x00,0x22,0x54,0x00,0x00,0x03,0xd5,0x00,0x00,0x22,0x57,0x00,0x00,0x22,0x57,0x00,0x00,0x04,0x4c,0x00,0x00,0x22,0x5f,0x00,0x00,0x22,0x5f,0x00,0x00,0x04,0x3f,0x00,0x00,0x22,0x60,0x00,0x00,0x22,0x60,0x00,0x00,0x04,0x1a,0x00,0x00,0x22,0x61,0x00,0x00,0x22,0x61,0x00,0x00,0x03,0xe7,0x00,0x00,0x22,0x62,0x00,0x00, +0x22,0x62,0x00,0x00,0x04,0x0f,0x00,0x00,0x22,0x63,0x00,0x00,0x22,0x63,0x00,0x00,0x04,0x5a,0x00,0x00,0x22,0x64,0x00,0x00,0x22,0x64,0x00,0x00,0x04,0x1e,0x00,0x00,0x22,0x65,0x00,0x00,0x22,0x65,0x00,0x00,0x04,0x1d,0x00,0x00,0x22,0x6a,0x00,0x00,0x22,0x6a,0x00,0x00,0x03,0xfb,0x00,0x00,0x22,0x6b,0x00,0x00,0x22,0x6b,0x00,0x00, +0x03,0xfa,0x00,0x00,0x22,0x6c,0x00,0x00,0x22,0x6c,0x00,0x00,0x03,0xd2,0x00,0x00,0x22,0x6d,0x00,0x00,0x22,0x6d,0x00,0x00,0x04,0x0c,0x00,0x00,0x22,0x6e,0x00,0x00,0x22,0x6e,0x00,0x00,0x04,0x10,0x00,0x00,0x22,0x6f,0x00,0x00,0x22,0x6f,0x00,0x00,0x04,0x0d,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x70,0x00,0x00,0x04,0x11,0x00,0x00, +0x22,0x71,0x00,0x00,0x22,0x71,0x00,0x00,0x04,0x0e,0x00,0x00,0x22,0x72,0x00,0x00,0x22,0x72,0x00,0x00,0x03,0xf7,0x00,0x00,0x22,0x73,0x00,0x00,0x22,0x73,0x00,0x00,0x03,0xec,0x00,0x00,0x22,0x7a,0x00,0x00,0x22,0x7a,0x00,0x00,0x04,0x3c,0x00,0x00,0x22,0x7b,0x00,0x00,0x22,0x7b,0x00,0x00,0x04,0x5c,0x00,0x00,0x22,0x7c,0x00,0x00, +0x22,0x7c,0x00,0x00,0x04,0x3d,0x00,0x00,0x22,0x82,0x00,0x00,0x22,0x82,0x00,0x00,0x04,0x5b,0x00,0x00,0x22,0x83,0x00,0x00,0x22,0x83,0x00,0x00,0x04,0x5f,0x00,0x00,0x22,0x84,0x00,0x00,0x22,0x85,0x00,0x00,0x04,0x13,0x00,0x00,0x22,0x86,0x00,0x00,0x22,0x87,0x00,0x00,0x04,0x41,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0x89,0x00,0x00, +0x04,0x05,0x00,0x00,0x22,0x8e,0x00,0x00,0x22,0x8e,0x00,0x00,0x03,0xfd,0x00,0x00,0x22,0x8f,0x00,0x00,0x22,0x8f,0x00,0x00,0x04,0x55,0x00,0x00,0x22,0x90,0x00,0x00,0x22,0x90,0x00,0x00,0x04,0x57,0x00,0x00,0x22,0x91,0x00,0x00,0x22,0x91,0x00,0x00,0x04,0x56,0x00,0x00,0x22,0x92,0x00,0x00,0x22,0x92,0x00,0x00,0x04,0x58,0x00,0x00, +0x22,0x93,0x00,0x00,0x22,0x94,0x00,0x00,0x04,0x4f,0x00,0x00,0x22,0x95,0x00,0x00,0x22,0x95,0x00,0x00,0x04,0x70,0x00,0x00,0x22,0x96,0x00,0x00,0x22,0x97,0x00,0x00,0x04,0x6d,0x00,0x00,0x22,0x98,0x00,0x00,0x22,0x98,0x00,0x00,0x04,0x6c,0x00,0x00,0x22,0x99,0x00,0x00,0x22,0x99,0x00,0x00,0x04,0x6f,0x00,0x00,0x22,0x9b,0x00,0x00, +0x22,0x9b,0x00,0x00,0x04,0x69,0x00,0x00,0x22,0x9c,0x00,0x00,0x22,0x9c,0x00,0x00,0x04,0x6b,0x00,0x00,0x22,0x9d,0x00,0x00,0x22,0x9d,0x00,0x00,0x04,0x6a,0x00,0x00,0x22,0x9e,0x00,0x00,0x22,0x9e,0x00,0x00,0x04,0x53,0x00,0x00,0x22,0x9f,0x00,0x00,0x22,0x9f,0x00,0x00,0x04,0x52,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xa0,0x00,0x00, +0x04,0x54,0x00,0x00,0x22,0xa1,0x00,0x00,0x22,0xa1,0x00,0x00,0x04,0x51,0x00,0x00,0x22,0xa2,0x00,0x00,0x22,0xa2,0x00,0x00,0x04,0x4b,0x00,0x00,0x22,0xa3,0x00,0x00,0x22,0xa3,0x00,0x00,0x04,0x61,0x00,0x00,0x22,0xa4,0x00,0x00,0x22,0xa4,0x00,0x00,0x04,0x60,0x00,0x00,0x22,0xa5,0x00,0x00,0x22,0xa5,0x00,0x00,0x04,0x67,0x00,0x00, +0x22,0xb4,0x00,0x00,0x22,0xb4,0x00,0x00,0x04,0x08,0x00,0x00,0x22,0xb8,0x00,0x00,0x22,0xb8,0x00,0x00,0x03,0xfc,0x00,0x00,0x22,0xbb,0x00,0x00,0x22,0xbb,0x00,0x00,0x04,0x68,0x00,0x00,0x22,0xbc,0x00,0x00,0x22,0xbc,0x00,0x00,0x04,0x01,0x00,0x00,0x22,0xbd,0x00,0x00,0x22,0xbd,0x00,0x00,0x04,0x07,0x00,0x00,0x22,0xc2,0x00,0x00, +0x22,0xc3,0x00,0x00,0x04,0x02,0x00,0x00,0x22,0xc4,0x00,0x00,0x22,0xc4,0x00,0x00,0x03,0xdb,0x00,0x00,0x22,0xc6,0x00,0x00,0x22,0xc6,0x00,0x00,0x04,0x59,0x00,0x00,0x22,0xc8,0x00,0x00,0x22,0xc8,0x00,0x00,0x03,0xd3,0x00,0x00,0x22,0xc9,0x00,0x00,0x22,0xc9,0x00,0x00,0x03,0xf3,0x00,0x00,0x22,0xca,0x00,0x00,0x22,0xca,0x00,0x00, +0x04,0x47,0x00,0x00,0x22,0xce,0x00,0x00,0x22,0xce,0x00,0x00,0x03,0xda,0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xd0,0x00,0x00,0x03,0xe0,0x00,0x00,0x22,0xe2,0x00,0x00,0x22,0xe2,0x00,0x00,0x04,0x12,0x00,0x00,0x22,0xee,0x00,0x00,0x22,0xee,0x00,0x00,0x03,0xe4,0x00,0x00,0x22,0xef,0x00,0x00,0x22,0xef,0x00,0x00,0x03,0xf8,0x00,0x00, +0x22,0xf0,0x00,0x00,0x22,0xf0,0x00,0x00,0x04,0x66,0x00,0x00,0x22,0xf1,0x00,0x00,0x22,0xf1,0x00,0x00,0x03,0xe1,0x00,0x00,0x23,0x02,0x00,0x00,0x23,0x02,0x00,0x00,0x05,0xe1,0x00,0x00,0x23,0x03,0x00,0x00,0x23,0x03,0x00,0x00,0x05,0xca,0x00,0x00,0x23,0x04,0x00,0x00,0x23,0x04,0x00,0x00,0x04,0x91,0x00,0x00,0x23,0x05,0x00,0x00, +0x23,0x05,0x00,0x00,0x05,0xf4,0x00,0x00,0x23,0x08,0x00,0x00,0x23,0x08,0x00,0x00,0x03,0x4f,0x00,0x00,0x23,0x09,0x00,0x00,0x23,0x09,0x00,0x00,0x03,0x52,0x00,0x00,0x23,0x0a,0x00,0x00,0x23,0x0a,0x00,0x00,0x03,0x50,0x00,0x00,0x23,0x0b,0x00,0x00,0x23,0x0b,0x00,0x00,0x03,0x53,0x00,0x00,0x23,0x18,0x00,0x00,0x23,0x18,0x00,0x00, +0x05,0xe9,0x00,0x00,0x23,0x1c,0x00,0x00,0x23,0x1c,0x00,0x00,0x05,0xce,0x00,0x00,0x23,0x1d,0x00,0x00,0x23,0x1d,0x00,0x00,0x05,0xcd,0x00,0x00,0x23,0x1e,0x00,0x00,0x23,0x1f,0x00,0x00,0x05,0xcb,0x00,0x00,0x23,0x24,0x00,0x00,0x23,0x24,0x00,0x00,0x04,0x92,0x00,0x00,0x23,0x25,0x00,0x00,0x23,0x25,0x00,0x00,0x05,0xe6,0x00,0x00, +0x23,0x26,0x00,0x00,0x23,0x26,0x00,0x00,0x05,0xe4,0x00,0x00,0x23,0x28,0x00,0x00,0x23,0x28,0x00,0x00,0x05,0xe5,0x00,0x00,0x23,0x2b,0x00,0x00,0x23,0x2b,0x00,0x00,0x05,0xe3,0x00,0x00,0x23,0x36,0x00,0x00,0x23,0x36,0x00,0x00,0x05,0x65,0x00,0x00,0x23,0x37,0x00,0x00,0x23,0x37,0x00,0x00,0x05,0xa0,0x00,0x00,0x23,0x38,0x00,0x00, +0x23,0x38,0x00,0x00,0x05,0x8f,0x00,0x00,0x23,0x39,0x00,0x00,0x23,0x39,0x00,0x00,0x05,0x8c,0x00,0x00,0x23,0x3a,0x00,0x00,0x23,0x3a,0x00,0x00,0x05,0x8b,0x00,0x00,0x23,0x3b,0x00,0x00,0x23,0x3b,0x00,0x00,0x05,0x91,0x00,0x00,0x23,0x3c,0x00,0x00,0x23,0x3c,0x00,0x00,0x05,0x87,0x00,0x00,0x23,0x3d,0x00,0x00,0x23,0x3d,0x00,0x00, +0x05,0x6d,0x00,0x00,0x23,0x3e,0x00,0x00,0x23,0x3e,0x00,0x00,0x05,0x6b,0x00,0x00,0x23,0x3f,0x00,0x00,0x23,0x3f,0x00,0x00,0x05,0x9f,0x00,0x00,0x23,0x40,0x00,0x00,0x23,0x40,0x00,0x00,0x05,0x68,0x00,0x00,0x23,0x41,0x00,0x00,0x23,0x41,0x00,0x00,0x05,0x97,0x00,0x00,0x23,0x42,0x00,0x00,0x23,0x42,0x00,0x00,0x05,0x86,0x00,0x00, +0x23,0x43,0x00,0x00,0x23,0x43,0x00,0x00,0x05,0x93,0x00,0x00,0x23,0x44,0x00,0x00,0x23,0x44,0x00,0x00,0x05,0x90,0x00,0x00,0x23,0x45,0x00,0x00,0x23,0x45,0x00,0x00,0x05,0x82,0x00,0x00,0x23,0x46,0x00,0x00,0x23,0x46,0x00,0x00,0x05,0x9d,0x00,0x00,0x23,0x47,0x00,0x00,0x23,0x47,0x00,0x00,0x05,0x92,0x00,0x00,0x23,0x48,0x00,0x00, +0x23,0x48,0x00,0x00,0x05,0x96,0x00,0x00,0x23,0x49,0x00,0x00,0x23,0x49,0x00,0x00,0x05,0x69,0x00,0x00,0x23,0x4a,0x00,0x00,0x23,0x4a,0x00,0x00,0x05,0x79,0x00,0x00,0x23,0x4b,0x00,0x00,0x23,0x4b,0x00,0x00,0x05,0x72,0x00,0x00,0x23,0x4c,0x00,0x00,0x23,0x4c,0x00,0x00,0x05,0x8e,0x00,0x00,0x23,0x4d,0x00,0x00,0x23,0x4d,0x00,0x00, +0x05,0x8a,0x00,0x00,0x23,0x4e,0x00,0x00,0x23,0x4e,0x00,0x00,0x05,0x78,0x00,0x00,0x23,0x4f,0x00,0x00,0x23,0x4f,0x00,0x00,0x05,0xa9,0x00,0x00,0x23,0x50,0x00,0x00,0x23,0x50,0x00,0x00,0x05,0x98,0x00,0x00,0x23,0x51,0x00,0x00,0x23,0x51,0x00,0x00,0x05,0xa8,0x00,0x00,0x23,0x52,0x00,0x00,0x23,0x52,0x00,0x00,0x05,0x71,0x00,0x00, +0x23,0x53,0x00,0x00,0x23,0x53,0x00,0x00,0x05,0x99,0x00,0x00,0x23,0x54,0x00,0x00,0x23,0x54,0x00,0x00,0x05,0x89,0x00,0x00,0x23,0x55,0x00,0x00,0x23,0x55,0x00,0x00,0x05,0xa7,0x00,0x00,0x23,0x56,0x00,0x00,0x23,0x56,0x00,0x00,0x05,0x7a,0x00,0x00,0x23,0x57,0x00,0x00,0x23,0x57,0x00,0x00,0x05,0x8d,0x00,0x00,0x23,0x58,0x00,0x00, +0x23,0x58,0x00,0x00,0x05,0x9b,0x00,0x00,0x23,0x59,0x00,0x00,0x23,0x59,0x00,0x00,0x05,0x73,0x00,0x00,0x23,0x5a,0x00,0x00,0x23,0x5a,0x00,0x00,0x05,0x75,0x00,0x00,0x23,0x5b,0x00,0x00,0x23,0x5b,0x00,0x00,0x05,0x80,0x00,0x00,0x23,0x5c,0x00,0x00,0x23,0x5c,0x00,0x00,0x05,0x6e,0x00,0x00,0x23,0x5d,0x00,0x00,0x23,0x5d,0x00,0x00, +0x05,0xa5,0x00,0x00,0x23,0x5e,0x00,0x00,0x23,0x5e,0x00,0x00,0x05,0x9a,0x00,0x00,0x23,0x5f,0x00,0x00,0x23,0x5f,0x00,0x00,0x05,0x6c,0x00,0x00,0x23,0x60,0x00,0x00,0x23,0x60,0x00,0x00,0x05,0x88,0x00,0x00,0x23,0x61,0x00,0x00,0x23,0x61,0x00,0x00,0x05,0xa6,0x00,0x00,0x23,0x62,0x00,0x00,0x23,0x62,0x00,0x00,0x05,0x70,0x00,0x00, +0x23,0x63,0x00,0x00,0x23,0x63,0x00,0x00,0x05,0xa1,0x00,0x00,0x23,0x64,0x00,0x00,0x23,0x64,0x00,0x00,0x05,0x7f,0x00,0x00,0x23,0x65,0x00,0x00,0x23,0x65,0x00,0x00,0x05,0x6a,0x00,0x00,0x23,0x66,0x00,0x00,0x23,0x66,0x00,0x00,0x05,0x77,0x00,0x00,0x23,0x67,0x00,0x00,0x23,0x67,0x00,0x00,0x05,0x81,0x00,0x00,0x23,0x68,0x00,0x00, +0x23,0x68,0x00,0x00,0x05,0xa3,0x00,0x00,0x23,0x69,0x00,0x00,0x23,0x69,0x00,0x00,0x05,0x7c,0x00,0x00,0x23,0x6a,0x00,0x00,0x23,0x6a,0x00,0x00,0x05,0x6f,0x00,0x00,0x23,0x6b,0x00,0x00,0x23,0x6b,0x00,0x00,0x05,0x74,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x6c,0x00,0x00,0x05,0xaa,0x00,0x00,0x23,0x6d,0x00,0x00,0x23,0x6d,0x00,0x00, +0x05,0xa2,0x00,0x00,0x23,0x6e,0x00,0x00,0x23,0x6e,0x00,0x00,0x05,0x9e,0x00,0x00,0x23,0x6f,0x00,0x00,0x23,0x70,0x00,0x00,0x05,0x94,0x00,0x00,0x23,0x71,0x00,0x00,0x23,0x71,0x00,0x00,0x05,0x76,0x00,0x00,0x23,0x72,0x00,0x00,0x23,0x72,0x00,0x00,0x05,0xa4,0x00,0x00,0x23,0x73,0x00,0x00,0x23,0x73,0x00,0x00,0x05,0x7d,0x00,0x00, +0x23,0x74,0x00,0x00,0x23,0x74,0x00,0x00,0x05,0x9c,0x00,0x00,0x23,0x75,0x00,0x00,0x23,0x75,0x00,0x00,0x05,0x83,0x00,0x00,0x23,0x76,0x00,0x00,0x23,0x76,0x00,0x00,0x05,0x67,0x00,0x00,0x23,0x77,0x00,0x00,0x23,0x77,0x00,0x00,0x05,0x7b,0x00,0x00,0x23,0x78,0x00,0x00,0x23,0x78,0x00,0x00,0x05,0x7e,0x00,0x00,0x23,0x79,0x00,0x00, +0x23,0x79,0x00,0x00,0x05,0x84,0x00,0x00,0x23,0x7a,0x00,0x00,0x23,0x7a,0x00,0x00,0x05,0x66,0x00,0x00,0x23,0x89,0x00,0x00,0x23,0x89,0x00,0x00,0x05,0xe0,0x00,0x00,0x23,0x8a,0x00,0x00,0x23,0x8a,0x00,0x00,0x05,0xd5,0x00,0x00,0x23,0x8b,0x00,0x00,0x23,0x8b,0x00,0x00,0x05,0xc7,0x00,0x00,0x23,0x95,0x00,0x00,0x23,0x95,0x00,0x00, +0x05,0x85,0x00,0x00,0x23,0x9b,0x00,0x00,0x23,0x9b,0x00,0x00,0x04,0x34,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0x9d,0x00,0x00,0x04,0x32,0x00,0x00,0x23,0x9e,0x00,0x00,0x23,0x9e,0x00,0x00,0x04,0x37,0x00,0x00,0x23,0x9f,0x00,0x00,0x23,0xa0,0x00,0x00,0x04,0x35,0x00,0x00,0x23,0xa1,0x00,0x00,0x23,0xa1,0x00,0x00,0x03,0xf6,0x00,0x00, +0x23,0xa2,0x00,0x00,0x23,0xa3,0x00,0x00,0x03,0xf4,0x00,0x00,0x23,0xa4,0x00,0x00,0x23,0xa4,0x00,0x00,0x04,0x4a,0x00,0x00,0x23,0xa5,0x00,0x00,0x23,0xa6,0x00,0x00,0x04,0x48,0x00,0x00,0x23,0xa7,0x00,0x00,0x23,0xa7,0x00,0x00,0x03,0xf2,0x00,0x00,0x23,0xa8,0x00,0x00,0x23,0xa8,0x00,0x00,0x03,0xf1,0x00,0x00,0x23,0xa9,0x00,0x00, +0x23,0xa9,0x00,0x00,0x03,0xf0,0x00,0x00,0x23,0xaa,0x00,0x00,0x23,0xaa,0x00,0x00,0x03,0xd9,0x00,0x00,0x23,0xab,0x00,0x00,0x23,0xab,0x00,0x00,0x04,0x46,0x00,0x00,0x23,0xac,0x00,0x00,0x23,0xac,0x00,0x00,0x04,0x45,0x00,0x00,0x23,0xad,0x00,0x00,0x23,0xad,0x00,0x00,0x04,0x44,0x00,0x00,0x23,0xce,0x00,0x00,0x23,0xce,0x00,0x00, +0x05,0xea,0x00,0x00,0x23,0xfb,0x00,0x00,0x23,0xfc,0x00,0x00,0x05,0xef,0x00,0x00,0x23,0xfd,0x00,0x00,0x23,0xfe,0x00,0x00,0x05,0xf2,0x00,0x00,0x24,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x05,0xee,0x00,0x00,0x24,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0x05,0xfa,0x00,0x00,0x24,0x03,0x00,0x00,0x24,0x04,0x00,0x00,0x05,0xd7,0x00,0x00, +0x24,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x05,0xda,0x00,0x00,0x24,0x06,0x00,0x00,0x24,0x06,0x00,0x00,0x05,0xb2,0x00,0x00,0x24,0x07,0x00,0x00,0x24,0x07,0x00,0x00,0x05,0xc5,0x00,0x00,0x24,0x08,0x00,0x00,0x24,0x08,0x00,0x00,0x05,0xb3,0x00,0x00,0x24,0x09,0x00,0x00,0x24,0x09,0x00,0x00,0x05,0xdf,0x00,0x00,0x24,0x0a,0x00,0x00, +0x24,0x0a,0x00,0x00,0x05,0xeb,0x00,0x00,0x24,0x0b,0x00,0x00,0x24,0x0b,0x00,0x00,0x06,0x01,0x00,0x00,0x24,0x0c,0x00,0x00,0x24,0x0c,0x00,0x00,0x05,0xdd,0x00,0x00,0x24,0x0d,0x00,0x00,0x24,0x0d,0x00,0x00,0x05,0xc9,0x00,0x00,0x24,0x0e,0x00,0x00,0x24,0x0e,0x00,0x00,0x05,0xf8,0x00,0x00,0x24,0x0f,0x00,0x00,0x24,0x0f,0x00,0x00, +0x05,0xf7,0x00,0x00,0x24,0x10,0x00,0x00,0x24,0x10,0x00,0x00,0x05,0xcf,0x00,0x00,0x24,0x11,0x00,0x00,0x24,0x11,0x00,0x00,0x05,0xd2,0x00,0x00,0x24,0x12,0x00,0x00,0x24,0x12,0x00,0x00,0x05,0xd4,0x00,0x00,0x24,0x13,0x00,0x00,0x24,0x13,0x00,0x00,0x05,0xd3,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0x14,0x00,0x00,0x05,0xd1,0x00,0x00, +0x24,0x15,0x00,0x00,0x24,0x15,0x00,0x00,0x05,0xec,0x00,0x00,0x24,0x16,0x00,0x00,0x24,0x16,0x00,0x00,0x05,0xfd,0x00,0x00,0x24,0x17,0x00,0x00,0x24,0x17,0x00,0x00,0x05,0xd9,0x00,0x00,0x24,0x18,0x00,0x00,0x24,0x18,0x00,0x00,0x05,0xc8,0x00,0x00,0x24,0x19,0x00,0x00,0x24,0x19,0x00,0x00,0x05,0xd6,0x00,0x00,0x24,0x1a,0x00,0x00, +0x24,0x1a,0x00,0x00,0x05,0xfc,0x00,0x00,0x24,0x1b,0x00,0x00,0x24,0x1c,0x00,0x00,0x05,0xdb,0x00,0x00,0x24,0x1d,0x00,0x00,0x24,0x1d,0x00,0x00,0x05,0xde,0x00,0x00,0x24,0x1e,0x00,0x00,0x24,0x1e,0x00,0x00,0x05,0xf5,0x00,0x00,0x24,0x1f,0x00,0x00,0x24,0x1f,0x00,0x00,0x06,0x00,0x00,0x00,0x24,0x20,0x00,0x00,0x24,0x20,0x00,0x00, +0x05,0xf9,0x00,0x00,0x24,0x21,0x00,0x00,0x24,0x21,0x00,0x00,0x05,0xd0,0x00,0x00,0x24,0x23,0x00,0x00,0x24,0x23,0x00,0x00,0x05,0xc6,0x00,0x00,0x24,0x24,0x00,0x00,0x24,0x24,0x00,0x00,0x05,0xed,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x05,0x2e,0x00,0x00,0x25,0x01,0x00,0x00,0x25,0x01,0x00,0x00,0x05,0x08,0x00,0x00, +0x25,0x02,0x00,0x00,0x25,0x02,0x00,0x00,0x05,0x3b,0x00,0x00,0x25,0x03,0x00,0x00,0x25,0x03,0x00,0x00,0x05,0x15,0x00,0x00,0x25,0x04,0x00,0x00,0x25,0x04,0x00,0x00,0x05,0x34,0x00,0x00,0x25,0x05,0x00,0x00,0x25,0x05,0x00,0x00,0x05,0x0e,0x00,0x00,0x25,0x06,0x00,0x00,0x25,0x06,0x00,0x00,0x05,0x35,0x00,0x00,0x25,0x07,0x00,0x00, +0x25,0x07,0x00,0x00,0x05,0x0f,0x00,0x00,0x25,0x08,0x00,0x00,0x25,0x08,0x00,0x00,0x05,0x31,0x00,0x00,0x25,0x09,0x00,0x00,0x25,0x09,0x00,0x00,0x05,0x0b,0x00,0x00,0x25,0x0a,0x00,0x00,0x25,0x0a,0x00,0x00,0x05,0x32,0x00,0x00,0x25,0x0b,0x00,0x00,0x25,0x0b,0x00,0x00,0x05,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00,0x25,0x0c,0x00,0x00, +0x05,0x2d,0x00,0x00,0x25,0x0d,0x00,0x00,0x25,0x0d,0x00,0x00,0x04,0xfc,0x00,0x00,0x25,0x0e,0x00,0x00,0x25,0x0e,0x00,0x00,0x04,0xf6,0x00,0x00,0x25,0x0f,0x00,0x00,0x25,0x0f,0x00,0x00,0x05,0x07,0x00,0x00,0x25,0x10,0x00,0x00,0x25,0x10,0x00,0x00,0x05,0x2c,0x00,0x00,0x25,0x11,0x00,0x00,0x25,0x11,0x00,0x00,0x04,0xfa,0x00,0x00, +0x25,0x12,0x00,0x00,0x25,0x12,0x00,0x00,0x04,0xf4,0x00,0x00,0x25,0x13,0x00,0x00,0x25,0x13,0x00,0x00,0x05,0x06,0x00,0x00,0x25,0x14,0x00,0x00,0x25,0x14,0x00,0x00,0x05,0x3a,0x00,0x00,0x25,0x15,0x00,0x00,0x25,0x15,0x00,0x00,0x05,0x55,0x00,0x00,0x25,0x16,0x00,0x00,0x25,0x16,0x00,0x00,0x05,0x4f,0x00,0x00,0x25,0x17,0x00,0x00, +0x25,0x17,0x00,0x00,0x05,0x14,0x00,0x00,0x25,0x18,0x00,0x00,0x25,0x18,0x00,0x00,0x05,0x39,0x00,0x00,0x25,0x19,0x00,0x00,0x25,0x19,0x00,0x00,0x05,0x53,0x00,0x00,0x25,0x1a,0x00,0x00,0x25,0x1a,0x00,0x00,0x05,0x4d,0x00,0x00,0x25,0x1b,0x00,0x00,0x25,0x1b,0x00,0x00,0x05,0x12,0x00,0x00,0x25,0x1c,0x00,0x00,0x25,0x1c,0x00,0x00, +0x05,0x3e,0x00,0x00,0x25,0x1d,0x00,0x00,0x25,0x1d,0x00,0x00,0x05,0x61,0x00,0x00,0x25,0x1e,0x00,0x00,0x25,0x1e,0x00,0x00,0x05,0x4e,0x00,0x00,0x25,0x1f,0x00,0x00,0x25,0x1f,0x00,0x00,0x04,0xf7,0x00,0x00,0x25,0x20,0x00,0x00,0x25,0x20,0x00,0x00,0x05,0x5e,0x00,0x00,0x25,0x21,0x00,0x00,0x25,0x21,0x00,0x00,0x04,0xfd,0x00,0x00, +0x25,0x22,0x00,0x00,0x25,0x22,0x00,0x00,0x05,0x54,0x00,0x00,0x25,0x23,0x00,0x00,0x25,0x23,0x00,0x00,0x05,0x18,0x00,0x00,0x25,0x24,0x00,0x00,0x25,0x24,0x00,0x00,0x05,0x3d,0x00,0x00,0x25,0x25,0x00,0x00,0x25,0x25,0x00,0x00,0x05,0x60,0x00,0x00,0x25,0x26,0x00,0x00,0x25,0x26,0x00,0x00,0x05,0x4c,0x00,0x00,0x25,0x27,0x00,0x00, +0x25,0x27,0x00,0x00,0x04,0xf5,0x00,0x00,0x25,0x28,0x00,0x00,0x25,0x28,0x00,0x00,0x05,0x5d,0x00,0x00,0x25,0x29,0x00,0x00,0x25,0x29,0x00,0x00,0x04,0xfb,0x00,0x00,0x25,0x2a,0x00,0x00,0x25,0x2a,0x00,0x00,0x05,0x52,0x00,0x00,0x25,0x2b,0x00,0x00,0x25,0x2b,0x00,0x00,0x05,0x17,0x00,0x00,0x25,0x2c,0x00,0x00,0x25,0x2c,0x00,0x00, +0x05,0x2b,0x00,0x00,0x25,0x2d,0x00,0x00,0x25,0x2d,0x00,0x00,0x05,0x1a,0x00,0x00,0x25,0x2e,0x00,0x00,0x25,0x2e,0x00,0x00,0x05,0x40,0x00,0x00,0x25,0x2f,0x00,0x00,0x25,0x2f,0x00,0x00,0x04,0xf9,0x00,0x00,0x25,0x30,0x00,0x00,0x25,0x30,0x00,0x00,0x04,0xf3,0x00,0x00,0x25,0x31,0x00,0x00,0x25,0x31,0x00,0x00,0x05,0x43,0x00,0x00, +0x25,0x32,0x00,0x00,0x25,0x32,0x00,0x00,0x05,0x1d,0x00,0x00,0x25,0x33,0x00,0x00,0x25,0x33,0x00,0x00,0x05,0x05,0x00,0x00,0x25,0x34,0x00,0x00,0x25,0x34,0x00,0x00,0x05,0x38,0x00,0x00,0x25,0x35,0x00,0x00,0x25,0x35,0x00,0x00,0x05,0x1b,0x00,0x00,0x25,0x36,0x00,0x00,0x25,0x36,0x00,0x00,0x05,0x41,0x00,0x00,0x25,0x37,0x00,0x00, +0x25,0x37,0x00,0x00,0x05,0x51,0x00,0x00,0x25,0x38,0x00,0x00,0x25,0x38,0x00,0x00,0x05,0x4b,0x00,0x00,0x25,0x39,0x00,0x00,0x25,0x39,0x00,0x00,0x05,0x44,0x00,0x00,0x25,0x3a,0x00,0x00,0x25,0x3a,0x00,0x00,0x05,0x1e,0x00,0x00,0x25,0x3b,0x00,0x00,0x25,0x3b,0x00,0x00,0x05,0x11,0x00,0x00,0x25,0x3c,0x00,0x00,0x25,0x3c,0x00,0x00, +0x05,0x3c,0x00,0x00,0x25,0x3d,0x00,0x00,0x25,0x3d,0x00,0x00,0x05,0x1c,0x00,0x00,0x25,0x3e,0x00,0x00,0x25,0x3e,0x00,0x00,0x05,0x42,0x00,0x00,0x25,0x3f,0x00,0x00,0x25,0x3f,0x00,0x00,0x05,0x5f,0x00,0x00,0x25,0x40,0x00,0x00,0x25,0x40,0x00,0x00,0x05,0x4a,0x00,0x00,0x25,0x41,0x00,0x00,0x25,0x41,0x00,0x00,0x04,0xf8,0x00,0x00, +0x25,0x42,0x00,0x00,0x25,0x42,0x00,0x00,0x05,0x5c,0x00,0x00,0x25,0x43,0x00,0x00,0x25,0x43,0x00,0x00,0x05,0x20,0x00,0x00,0x25,0x44,0x00,0x00,0x25,0x44,0x00,0x00,0x05,0x46,0x00,0x00,0x25,0x45,0x00,0x00,0x25,0x45,0x00,0x00,0x05,0x19,0x00,0x00,0x25,0x46,0x00,0x00,0x25,0x46,0x00,0x00,0x05,0x3f,0x00,0x00,0x25,0x47,0x00,0x00, +0x25,0x47,0x00,0x00,0x04,0xfe,0x00,0x00,0x25,0x48,0x00,0x00,0x25,0x48,0x00,0x00,0x05,0x50,0x00,0x00,0x25,0x49,0x00,0x00,0x25,0x49,0x00,0x00,0x05,0x45,0x00,0x00,0x25,0x4a,0x00,0x00,0x25,0x4a,0x00,0x00,0x05,0x1f,0x00,0x00,0x25,0x4b,0x00,0x00,0x25,0x4b,0x00,0x00,0x05,0x16,0x00,0x00,0x25,0x4c,0x00,0x00,0x25,0x4c,0x00,0x00, +0x05,0x28,0x00,0x00,0x25,0x4d,0x00,0x00,0x25,0x4d,0x00,0x00,0x05,0x02,0x00,0x00,0x25,0x4e,0x00,0x00,0x25,0x4e,0x00,0x00,0x05,0x29,0x00,0x00,0x25,0x4f,0x00,0x00,0x25,0x4f,0x00,0x00,0x05,0x03,0x00,0x00,0x25,0x50,0x00,0x00,0x25,0x50,0x00,0x00,0x04,0xe8,0x00,0x00,0x25,0x51,0x00,0x00,0x25,0x51,0x00,0x00,0x04,0xec,0x00,0x00, +0x25,0x52,0x00,0x00,0x25,0x52,0x00,0x00,0x05,0x01,0x00,0x00,0x25,0x53,0x00,0x00,0x25,0x53,0x00,0x00,0x04,0xf2,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0x54,0x00,0x00,0x04,0xe7,0x00,0x00,0x25,0x55,0x00,0x00,0x25,0x55,0x00,0x00,0x05,0x00,0x00,0x00,0x25,0x56,0x00,0x00,0x25,0x56,0x00,0x00,0x04,0xf1,0x00,0x00,0x25,0x57,0x00,0x00, +0x25,0x57,0x00,0x00,0x04,0xe6,0x00,0x00,0x25,0x58,0x00,0x00,0x25,0x58,0x00,0x00,0x05,0x58,0x00,0x00,0x25,0x59,0x00,0x00,0x25,0x59,0x00,0x00,0x05,0x49,0x00,0x00,0x25,0x5a,0x00,0x00,0x25,0x5a,0x00,0x00,0x04,0xeb,0x00,0x00,0x25,0x5b,0x00,0x00,0x25,0x5b,0x00,0x00,0x05,0x57,0x00,0x00,0x25,0x5c,0x00,0x00,0x25,0x5c,0x00,0x00, +0x05,0x48,0x00,0x00,0x25,0x5d,0x00,0x00,0x25,0x5d,0x00,0x00,0x04,0xea,0x00,0x00,0x25,0x5e,0x00,0x00,0x25,0x5e,0x00,0x00,0x05,0x64,0x00,0x00,0x25,0x5f,0x00,0x00,0x25,0x5f,0x00,0x00,0x05,0x5b,0x00,0x00,0x25,0x60,0x00,0x00,0x25,0x60,0x00,0x00,0x04,0xef,0x00,0x00,0x25,0x61,0x00,0x00,0x25,0x61,0x00,0x00,0x05,0x63,0x00,0x00, +0x25,0x62,0x00,0x00,0x25,0x62,0x00,0x00,0x05,0x5a,0x00,0x00,0x25,0x63,0x00,0x00,0x25,0x63,0x00,0x00,0x04,0xee,0x00,0x00,0x25,0x64,0x00,0x00,0x25,0x64,0x00,0x00,0x04,0xff,0x00,0x00,0x25,0x65,0x00,0x00,0x25,0x65,0x00,0x00,0x04,0xf0,0x00,0x00,0x25,0x66,0x00,0x00,0x25,0x66,0x00,0x00,0x04,0xe5,0x00,0x00,0x25,0x67,0x00,0x00, +0x25,0x67,0x00,0x00,0x05,0x56,0x00,0x00,0x25,0x68,0x00,0x00,0x25,0x68,0x00,0x00,0x05,0x47,0x00,0x00,0x25,0x69,0x00,0x00,0x25,0x69,0x00,0x00,0x04,0xe9,0x00,0x00,0x25,0x6a,0x00,0x00,0x25,0x6a,0x00,0x00,0x05,0x62,0x00,0x00,0x25,0x6b,0x00,0x00,0x25,0x6b,0x00,0x00,0x05,0x59,0x00,0x00,0x25,0x6c,0x00,0x00,0x25,0x6c,0x00,0x00, +0x04,0xed,0x00,0x00,0x25,0x6d,0x00,0x00,0x25,0x6d,0x00,0x00,0x05,0x22,0x00,0x00,0x25,0x6e,0x00,0x00,0x25,0x6e,0x00,0x00,0x05,0x21,0x00,0x00,0x25,0x6f,0x00,0x00,0x25,0x70,0x00,0x00,0x05,0x23,0x00,0x00,0x25,0x71,0x00,0x00,0x25,0x71,0x00,0x00,0x05,0x27,0x00,0x00,0x25,0x72,0x00,0x00,0x25,0x72,0x00,0x00,0x05,0x26,0x00,0x00, +0x25,0x73,0x00,0x00,0x25,0x73,0x00,0x00,0x05,0x25,0x00,0x00,0x25,0x74,0x00,0x00,0x25,0x74,0x00,0x00,0x05,0x2f,0x00,0x00,0x25,0x75,0x00,0x00,0x25,0x75,0x00,0x00,0x05,0x36,0x00,0x00,0x25,0x76,0x00,0x00,0x25,0x76,0x00,0x00,0x05,0x33,0x00,0x00,0x25,0x77,0x00,0x00,0x25,0x77,0x00,0x00,0x05,0x2a,0x00,0x00,0x25,0x78,0x00,0x00, +0x25,0x78,0x00,0x00,0x05,0x09,0x00,0x00,0x25,0x79,0x00,0x00,0x25,0x79,0x00,0x00,0x05,0x10,0x00,0x00,0x25,0x7a,0x00,0x00,0x25,0x7a,0x00,0x00,0x05,0x0d,0x00,0x00,0x25,0x7b,0x00,0x00,0x25,0x7b,0x00,0x00,0x05,0x04,0x00,0x00,0x25,0x7c,0x00,0x00,0x25,0x7c,0x00,0x00,0x05,0x30,0x00,0x00,0x25,0x7d,0x00,0x00,0x25,0x7d,0x00,0x00, +0x05,0x37,0x00,0x00,0x25,0x7e,0x00,0x00,0x25,0x7e,0x00,0x00,0x05,0x0a,0x00,0x00,0x25,0x7f,0x00,0x00,0x25,0x7f,0x00,0x00,0x05,0x13,0x00,0x00,0x25,0x80,0x00,0x00,0x25,0x80,0x00,0x00,0x04,0xa2,0x00,0x00,0x25,0x81,0x00,0x00,0x25,0x88,0x00,0x00,0x04,0x9a,0x00,0x00,0x25,0x89,0x00,0x00,0x25,0x89,0x00,0x00,0x04,0xaa,0x00,0x00, +0x25,0x8a,0x00,0x00,0x25,0x8a,0x00,0x00,0x04,0xa9,0x00,0x00,0x25,0x8b,0x00,0x00,0x25,0x8b,0x00,0x00,0x04,0xa8,0x00,0x00,0x25,0x8c,0x00,0x00,0x25,0x8c,0x00,0x00,0x04,0xa7,0x00,0x00,0x25,0x8d,0x00,0x00,0x25,0x8d,0x00,0x00,0x04,0xa6,0x00,0x00,0x25,0x8e,0x00,0x00,0x25,0x8e,0x00,0x00,0x04,0xa5,0x00,0x00,0x25,0x8f,0x00,0x00, +0x25,0x8f,0x00,0x00,0x04,0xa4,0x00,0x00,0x25,0x90,0x00,0x00,0x25,0x90,0x00,0x00,0x04,0xab,0x00,0x00,0x25,0x91,0x00,0x00,0x25,0x93,0x00,0x00,0x04,0xb7,0x00,0x00,0x25,0x94,0x00,0x00,0x25,0x94,0x00,0x00,0x04,0xa3,0x00,0x00,0x25,0x95,0x00,0x00,0x25,0x9f,0x00,0x00,0x04,0xac,0x00,0x00,0x25,0xa0,0x00,0x00,0x25,0xa1,0x00,0x00, +0x04,0xc8,0x00,0x00,0x25,0xaa,0x00,0x00,0x25,0xab,0x00,0x00,0x04,0xca,0x00,0x00,0x25,0xb2,0x00,0x00,0x25,0xb2,0x00,0x00,0x04,0xd1,0x00,0x00,0x25,0xb3,0x00,0x00,0x25,0xb3,0x00,0x00,0x04,0xd5,0x00,0x00,0x25,0xb4,0x00,0x00,0x25,0xb4,0x00,0x00,0x04,0xdd,0x00,0x00,0x25,0xb5,0x00,0x00,0x25,0xb5,0x00,0x00,0x04,0xe1,0x00,0x00, +0x25,0xb6,0x00,0x00,0x25,0xb6,0x00,0x00,0x04,0xd2,0x00,0x00,0x25,0xb7,0x00,0x00,0x25,0xb7,0x00,0x00,0x04,0xd6,0x00,0x00,0x25,0xb8,0x00,0x00,0x25,0xb8,0x00,0x00,0x04,0xde,0x00,0x00,0x25,0xb9,0x00,0x00,0x25,0xb9,0x00,0x00,0x04,0xe2,0x00,0x00,0x25,0xba,0x00,0x00,0x25,0xba,0x00,0x00,0x04,0xd9,0x00,0x00,0x25,0xbb,0x00,0x00, +0x25,0xbb,0x00,0x00,0x04,0xdb,0x00,0x00,0x25,0xbc,0x00,0x00,0x25,0xbc,0x00,0x00,0x04,0xd3,0x00,0x00,0x25,0xbd,0x00,0x00,0x25,0xbd,0x00,0x00,0x04,0xd7,0x00,0x00,0x25,0xbe,0x00,0x00,0x25,0xbe,0x00,0x00,0x04,0xdf,0x00,0x00,0x25,0xbf,0x00,0x00,0x25,0xbf,0x00,0x00,0x04,0xe3,0x00,0x00,0x25,0xc0,0x00,0x00,0x25,0xc0,0x00,0x00, +0x04,0xd4,0x00,0x00,0x25,0xc1,0x00,0x00,0x25,0xc1,0x00,0x00,0x04,0xd8,0x00,0x00,0x25,0xc2,0x00,0x00,0x25,0xc2,0x00,0x00,0x04,0xe0,0x00,0x00,0x25,0xc3,0x00,0x00,0x25,0xc3,0x00,0x00,0x04,0xe4,0x00,0x00,0x25,0xc4,0x00,0x00,0x25,0xc4,0x00,0x00,0x04,0xda,0x00,0x00,0x25,0xc5,0x00,0x00,0x25,0xc5,0x00,0x00,0x04,0xdc,0x00,0x00, +0x25,0xc6,0x00,0x00,0x25,0xc8,0x00,0x00,0x04,0xc4,0x00,0x00,0x25,0xc9,0x00,0x00,0x25,0xc9,0x00,0x00,0x04,0xc1,0x00,0x00,0x25,0xca,0x00,0x00,0x25,0xca,0x00,0x00,0x04,0xc7,0x00,0x00,0x25,0xcb,0x00,0x00,0x25,0xcb,0x00,0x00,0x04,0xbb,0x00,0x00,0x25,0xcc,0x00,0x00,0x25,0xcc,0x00,0x00,0x04,0xc0,0x00,0x00,0x25,0xce,0x00,0x00, +0x25,0xce,0x00,0x00,0x04,0xc2,0x00,0x00,0x25,0xcf,0x00,0x00,0x25,0xcf,0x00,0x00,0x04,0xba,0x00,0x00,0x25,0xd4,0x00,0x00,0x25,0xd5,0x00,0x00,0x04,0xbd,0x00,0x00,0x25,0xe6,0x00,0x00,0x25,0xe6,0x00,0x00,0x04,0xc3,0x00,0x00,0x25,0xe7,0x00,0x00,0x25,0xeb,0x00,0x00,0x04,0xcc,0x00,0x00,0x25,0xef,0x00,0x00,0x25,0xef,0x00,0x00, +0x04,0xbc,0x00,0x00,0x25,0xf6,0x00,0x00,0x25,0xf6,0x00,0x00,0x04,0xbf,0x00,0x00,0x26,0x6d,0x00,0x00,0x26,0x6d,0x00,0x00,0x06,0x60,0x00,0x00,0x26,0x6f,0x00,0x00,0x26,0x6f,0x00,0x00,0x06,0x61,0x00,0x00,0x26,0x87,0x00,0x00,0x26,0x87,0x00,0x00,0x05,0xab,0x00,0x00,0x26,0xa0,0x00,0x00,0x26,0xa1,0x00,0x00,0x05,0xac,0x00,0x00, +0x27,0x13,0x00,0x00,0x27,0x13,0x00,0x00,0x05,0xae,0x00,0x00,0x27,0x15,0x00,0x00,0x27,0x15,0x00,0x00,0x05,0xaf,0x00,0x00,0x27,0x17,0x00,0x00,0x27,0x17,0x00,0x00,0x05,0xb0,0x00,0x00,0x27,0x36,0x00,0x00,0x27,0x36,0x00,0x00,0x05,0xb1,0x00,0x00,0x27,0x6e,0x00,0x00,0x27,0x6e,0x00,0x00,0x03,0x4c,0x00,0x00,0x27,0x6f,0x00,0x00, +0x27,0x6f,0x00,0x00,0x03,0x4e,0x00,0x00,0x27,0x70,0x00,0x00,0x27,0x70,0x00,0x00,0x03,0x4b,0x00,0x00,0x27,0x71,0x00,0x00,0x27,0x71,0x00,0x00,0x03,0x4d,0x00,0x00,0x27,0x94,0x00,0x00,0x27,0x94,0x00,0x00,0x04,0x93,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0x9e,0x00,0x00,0x04,0x94,0x00,0x00,0x27,0xc5,0x00,0x00,0x27,0xc5,0x00,0x00, +0x03,0x51,0x00,0x00,0x27,0xc6,0x00,0x00,0x27,0xc6,0x00,0x00,0x03,0x54,0x00,0x00,0x27,0xdc,0x00,0x00,0x27,0xdc,0x00,0x00,0x03,0xef,0x00,0x00,0x27,0xe6,0x00,0x00,0x27,0xe6,0x00,0x00,0x03,0xb6,0x00,0x00,0x27,0xe7,0x00,0x00,0x27,0xe7,0x00,0x00,0x03,0xb9,0x00,0x00,0x27,0xe8,0x00,0x00,0x27,0xe8,0x00,0x00,0x03,0xb4,0x00,0x00, +0x27,0xe9,0x00,0x00,0x27,0xe9,0x00,0x00,0x03,0xb7,0x00,0x00,0x27,0xea,0x00,0x00,0x27,0xea,0x00,0x00,0x03,0xb5,0x00,0x00,0x27,0xeb,0x00,0x00,0x27,0xeb,0x00,0x00,0x03,0xb8,0x00,0x00,0x27,0xf5,0x00,0x00,0x27,0xf7,0x00,0x00,0x04,0x97,0x00,0x00,0x29,0x16,0x00,0x00,0x29,0x16,0x00,0x00,0x04,0x43,0x00,0x00,0x29,0x4a,0x00,0x00, +0x29,0x4a,0x00,0x00,0x03,0xee,0x00,0x00,0x29,0x87,0x00,0x00,0x29,0x88,0x00,0x00,0x03,0x55,0x00,0x00,0x2a,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x03,0xfe,0x00,0x00,0x2a,0x05,0x00,0x00,0x2a,0x06,0x00,0x00,0x03,0xff,0x00,0x00,0x2b,0x58,0x00,0x00,0x2b,0x58,0x00,0x00,0x05,0xf1,0x00,0x00,0xe0,0xa0,0x00,0x00,0xe0,0xa2,0x00,0x00, +0x06,0xc4,0x00,0x00,0xe0,0xb0,0x00,0x00,0xe0,0xb3,0x00,0x00,0x06,0xc7,0x00,0x00,0xfe,0x62,0x00,0x00,0xfe,0x62,0x00,0x00,0x04,0x3a,0x00,0x00,0xfe,0xff,0x00,0x00,0xfe,0xff,0x00,0x00,0x03,0xc1,0x00,0x00,0xff,0x5b,0x00,0x00,0xff,0x5b,0x00,0x00,0x03,0x49,0x00,0x00,0xff,0x5d,0x00,0x00,0xff,0x5d,0x00,0x00,0x03,0x4a,0x00,0x00, +0xff,0xfd,0x00,0x00,0xff,0xfd,0x00,0x00,0x05,0xf6,0x00,0x01,0x69,0x10,0x00,0x01,0x69,0x10,0x00,0x00,0x02,0x9f,0x00,0x01,0xd5,0x38,0x00,0x01,0xd5,0x39,0x00,0x00,0x02,0xa0,0x00,0x01,0xd5,0x3b,0x00,0x01,0xd5,0x3e,0x00,0x00,0x02,0xa3,0x00,0x01,0xd5,0x40,0x00,0x01,0xd5,0x44,0x00,0x00,0x02,0xa8,0x00,0x01,0xd5,0x46,0x00,0x01, +0xd5,0x46,0x00,0x00,0x02,0xae,0x00,0x01,0xd5,0x4a,0x00,0x01,0xd5,0x50,0x00,0x00,0x02,0xb2,0x00,0x01,0xd5,0x52,0x00,0x01,0xd5,0x6b,0x00,0x00,0x02,0xba,0x00,0x00,0xb0,0x00,0x2c,0x20,0xb0,0x00,0x55,0x58,0x45,0x59,0x20,0x20,0x4b,0xb8,0x00,0x0e,0x51,0x4b,0xb0,0x06,0x53,0x5a,0x58,0xb0,0x34,0x1b,0xb0,0x28,0x59,0x60,0x66,0x20, +0x8a,0x55,0x58,0xb0,0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x62,0x1b,0x21,0x21,0xb0,0x00,0x59,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x01,0x2c,0xb0,0x20,0x60,0x66,0x2d,0xb0,0x02,0x2c,0x23,0x21,0x23,0x21,0x2d,0xb0,0x03,0x2c,0x20,0x64,0xb3,0x03,0x14,0x15,0x00,0x42,0x43,0xb0, +0x13,0x43,0x20,0x60,0x60,0x42,0xb1,0x02,0x14,0x43,0x42,0xb1,0x25,0x03,0x43,0xb0,0x02,0x43,0x54,0x78,0x20,0xb0,0x0c,0x23,0xb0,0x02,0x43,0x43,0x61,0x64,0xb0,0x04,0x50,0x78,0xb2,0x02,0x02,0x02,0x43,0x60,0x42,0xb0,0x21,0x65,0x1c,0x21,0xb0,0x02,0x43,0x43,0xb2,0x0e,0x15,0x01,0x42,0x1c,0x20,0xb0,0x02,0x43,0x23,0x42,0xb2,0x13, +0x01,0x13,0x43,0x60,0x42,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb2,0x16,0x01,0x02,0x43,0x60,0x42,0x2d,0xb0,0x04,0x2c,0xb0,0x03,0x2b,0xb0,0x15,0x43,0x58,0x23,0x21,0x23,0x21,0xb0,0x16,0x43,0x43,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x1b,0x20,0x64,0x20,0xb0,0xc0,0x50,0xb0,0x04,0x26,0x5a,0xb2,0x28,0x01,0x0d,0x43,0x45,0x63,0x45, +0xb0,0x06,0x45,0x58,0x21,0xb0,0x03,0x25,0x59,0x52,0x5b,0x58,0x21,0x23,0x21,0x1b,0x8a,0x58,0x20,0xb0,0x50,0x50,0x58,0x21,0xb0,0x40,0x59,0x1b,0x20,0xb0,0x38,0x50,0x58,0x21,0xb0,0x38,0x59,0x59,0x20,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x61,0x64,0xb0,0x28,0x50,0x58,0x21,0xb1,0x01,0x0d,0x43,0x45,0x63,0x45,0x20,0xb0,0x30,0x50, +0x58,0x21,0xb0,0x30,0x59,0x1b,0x20,0xb0,0xc0,0x50,0x58,0x20,0x66,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x0a,0x50,0x58,0x60,0x1b,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x0a,0x60,0x1b,0x20,0xb0,0x36,0x50,0x58,0x21,0xb0,0x36,0x60,0x1b,0x60,0x59,0x59,0x59,0x1b,0xb0,0x02,0x25,0xb0,0x0c,0x43,0x63,0xb0,0x00,0x52,0x58,0xb0,0x00,0x4b,0xb0, +0x0a,0x50,0x58,0x21,0xb0,0x0c,0x43,0x1b,0x4b,0xb0,0x1e,0x50,0x58,0x21,0xb0,0x1e,0x4b,0x61,0xb8,0x10,0x00,0x63,0xb0,0x0c,0x43,0x63,0xb8,0x05,0x00,0x62,0x59,0x59,0x64,0x61,0x59,0xb0,0x01,0x2b,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x59,0x20,0x64,0xb0,0x16,0x43,0x23,0x42,0x59,0x2d,0xb0,0x05,0x2c,0x20,0x45,0x20,0xb0, +0x04,0x25,0x61,0x64,0x20,0xb0,0x07,0x43,0x50,0x58,0xb0,0x07,0x23,0x42,0xb0,0x08,0x23,0x42,0x1b,0x21,0x21,0x59,0xb0,0x01,0x60,0x2d,0xb0,0x06,0x2c,0x23,0x21,0x23,0x21,0xb0,0x03,0x2b,0x20,0x64,0xb1,0x07,0x62,0x42,0x20,0xb0,0x08,0x23,0x42,0xb0,0x06,0x45,0x58,0x1b,0xb1,0x01,0x0d,0x43,0x45,0x63,0xb1,0x01,0x0d,0x43,0xb0,0x05, +0x60,0x45,0x63,0xb0,0x05,0x2a,0x21,0x20,0xb0,0x08,0x43,0x20,0x8a,0x20,0x8a,0xb0,0x01,0x2b,0xb1,0x30,0x05,0x25,0xb0,0x04,0x26,0x51,0x58,0x60,0x50,0x1b,0x61,0x52,0x59,0x58,0x23,0x59,0x21,0x59,0x20,0xb0,0x40,0x53,0x58,0xb0,0x01,0x2b,0x1b,0x21,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0x2d,0xb0,0x07,0x2c,0xb0,0x09, +0x43,0x2b,0xb2,0x00,0x02,0x00,0x43,0x60,0x42,0x2d,0xb0,0x08,0x2c,0xb0,0x09,0x23,0x42,0x23,0x20,0xb0,0x00,0x23,0x42,0x61,0xb0,0x02,0x62,0x66,0xb0,0x01,0x63,0xb0,0x01,0x60,0xb0,0x07,0x2a,0x2d,0xb0,0x09,0x2c,0x20,0x20,0x45,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0, +0x01,0x63,0x60,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0a,0x2c,0xb2,0x09,0x0e,0x00,0x43,0x45,0x42,0x2a,0x21,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0b,0x2c,0xb0,0x00,0x43,0x23,0x44,0xb2,0x00,0x01,0x00,0x43,0x60,0x42,0x2d,0xb0,0x0c,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45, +0x8a,0x23,0x61,0x20,0x64,0x20,0xb0,0x20,0x50,0x58,0x21,0xb0,0x00,0x1b,0xb0,0x30,0x50,0x58,0xb0,0x20,0x1b,0xb0,0x40,0x59,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0d,0x2c,0x20,0x20,0x45,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x00,0x43,0xb0,0x04,0x25,0x60,0x20,0x45,0x8a, +0x23,0x61,0x20,0x64,0xb0,0x24,0x50,0x58,0xb0,0x00,0x1b,0xb0,0x40,0x59,0x23,0xb0,0x00,0x50,0x58,0x65,0x59,0xb0,0x03,0x25,0x23,0x61,0x44,0x44,0xb0,0x01,0x60,0x2d,0xb0,0x0e,0x2c,0x20,0xb0,0x00,0x23,0x42,0xb3,0x0d,0x0c,0x00,0x03,0x45,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x2a,0x21,0x2d,0xb0,0x0f,0x2c,0xb1,0x02,0x02,0x45,0xb0, +0x64,0x61,0x44,0x2d,0xb0,0x10,0x2c,0xb0,0x01,0x60,0x20,0x20,0xb0,0x0f,0x43,0x4a,0xb0,0x00,0x50,0x58,0x20,0xb0,0x0f,0x23,0x42,0x59,0xb0,0x10,0x43,0x4a,0xb0,0x00,0x52,0x58,0x20,0xb0,0x10,0x23,0x42,0x59,0x2d,0xb0,0x11,0x2c,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0x20,0xb8,0x04,0x00,0x63,0x8a,0x23,0x61,0xb0,0x11,0x43,0x60, +0x20,0x8a,0x60,0x20,0xb0,0x11,0x23,0x42,0x23,0x2d,0xb0,0x12,0x2c,0x4b,0x54,0x58,0xb1,0x04,0x64,0x44,0x59,0x24,0xb0,0x0d,0x65,0x23,0x78,0x2d,0xb0,0x13,0x2c,0x4b,0x51,0x58,0x4b,0x53,0x58,0xb1,0x04,0x64,0x44,0x59,0x1b,0x21,0x59,0x24,0xb0,0x13,0x65,0x23,0x78,0x2d,0xb0,0x14,0x2c,0xb1,0x00,0x12,0x43,0x55,0x58,0xb1,0x12,0x12, +0x43,0xb0,0x01,0x61,0x42,0xb0,0x11,0x2b,0x59,0xb0,0x00,0x43,0xb0,0x02,0x25,0x42,0xb1,0x0f,0x02,0x25,0x42,0xb1,0x10,0x02,0x25,0x42,0xb0,0x01,0x16,0x23,0x20,0xb0,0x03,0x25,0x50,0x58,0xb1,0x01,0x00,0x43,0x60,0xb0,0x04,0x25,0x42,0x8a,0x8a,0x20,0x8a,0x23,0x61,0xb0,0x10,0x2a,0x21,0x23,0xb0,0x01,0x61,0x20,0x8a,0x23,0x61,0xb0, +0x10,0x2a,0x21,0x1b,0xb1,0x01,0x00,0x43,0x60,0xb0,0x02,0x25,0x42,0xb0,0x02,0x25,0x61,0xb0,0x10,0x2a,0x21,0x59,0xb0,0x0f,0x43,0x47,0xb0,0x10,0x43,0x47,0x60,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60, +0x59,0x66,0xb0,0x01,0x63,0x60,0xb1,0x00,0x00,0x13,0x23,0x44,0xb0,0x01,0x43,0xb0,0x00,0x3e,0xb2,0x01,0x01,0x01,0x43,0x60,0x42,0x2d,0xb0,0x15,0x2c,0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb7,0x18,0x18,0x01,0x00,0x11,0x00,0x13,0x00, +0x42,0x42,0x42,0x8a,0x60,0x20,0xb0,0x14,0x23,0x42,0xb0,0x01,0x61,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x16,0x2c,0xb1,0x00,0x15,0x2b,0x2d,0xb0,0x17,0x2c,0xb1,0x01,0x15,0x2b,0x2d,0xb0,0x18,0x2c,0xb1,0x02,0x15,0x2b,0x2d,0xb0,0x19,0x2c,0xb1,0x03,0x15,0x2b,0x2d,0xb0,0x1a,0x2c,0xb1,0x04,0x15,0x2b,0x2d, +0xb0,0x1b,0x2c,0xb1,0x05,0x15,0x2b,0x2d,0xb0,0x1c,0x2c,0xb1,0x06,0x15,0x2b,0x2d,0xb0,0x1d,0x2c,0xb1,0x07,0x15,0x2b,0x2d,0xb0,0x1e,0x2c,0xb1,0x08,0x15,0x2b,0x2d,0xb0,0x1f,0x2c,0xb1,0x09,0x15,0x2b,0x2d,0xb0,0x2b,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x06,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x5d, +0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2c,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x16,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x71,0x1b,0x21,0x21,0x59,0x2d,0xb0,0x2d,0x2c,0x23,0x20,0xb0,0x10,0x62,0x66,0xb0,0x01,0x63,0xb0,0x26,0x60,0x4b,0x54,0x58,0x23,0x20,0x2e,0xb0,0x01,0x72,0x1b,0x21,0x21,0x59,0x2d,0xb0, +0x20,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb0,0x12,0x23,0x42,0x20,0x45,0xb0,0x0e,0x23,0x42,0xb0,0x0d,0x23,0xb0,0x05,0x60,0x42,0x20,0x60,0xb0,0x01,0x61,0xb5,0x18,0x18,0x01,0x00,0x11,0x00,0x42,0x42,0x8a,0x60,0xb1,0x14,0x08,0x2b,0xb0,0x8b,0x2b,0x1b,0x22,0x59,0x2d,0xb0,0x21,0x2c,0xb1,0x00,0x20,0x2b,0x2d, +0xb0,0x22,0x2c,0xb1,0x01,0x20,0x2b,0x2d,0xb0,0x23,0x2c,0xb1,0x02,0x20,0x2b,0x2d,0xb0,0x24,0x2c,0xb1,0x03,0x20,0x2b,0x2d,0xb0,0x25,0x2c,0xb1,0x04,0x20,0x2b,0x2d,0xb0,0x26,0x2c,0xb1,0x05,0x20,0x2b,0x2d,0xb0,0x27,0x2c,0xb1,0x06,0x20,0x2b,0x2d,0xb0,0x28,0x2c,0xb1,0x07,0x20,0x2b,0x2d,0xb0,0x29,0x2c,0xb1,0x08,0x20,0x2b,0x2d, +0xb0,0x2a,0x2c,0xb1,0x09,0x20,0x2b,0x2d,0xb0,0x2e,0x2c,0x20,0x3c,0xb0,0x01,0x60,0x2d,0xb0,0x2f,0x2c,0x20,0x60,0xb0,0x18,0x60,0x20,0x43,0x23,0xb0,0x01,0x60,0x43,0xb0,0x02,0x25,0x61,0xb0,0x01,0x60,0xb0,0x2e,0x2a,0x21,0x2d,0xb0,0x30,0x2c,0xb0,0x2f,0x2b,0xb0,0x2f,0x2a,0x2d,0xb0,0x31,0x2c,0x20,0x20,0x47,0x20,0x20,0xb0,0x0e, +0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x23,0x20,0x8a,0x55,0x58,0x20,0x47,0x20,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x61,0x38,0x1b,0x21,0x59,0x2d,0xb0,0x32,0x2c, +0x00,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22,0x59,0x2d,0xb0,0x33,0x2c,0x00,0xb0,0x0f,0x2b,0xb1,0x00,0x02,0x45,0x54,0x58,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x16,0xb0,0x31,0x2a,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x1b,0x22, +0x59,0x2d,0xb0,0x34,0x2c,0x20,0x35,0xb0,0x01,0x60,0x2d,0xb0,0x35,0x2c,0x00,0xb1,0x0e,0x06,0x45,0x42,0xb0,0x01,0x45,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x01,0x2b,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01, +0x63,0xb0,0x01,0x2b,0xb0,0x00,0x16,0xb4,0x00,0x00,0x00,0x00,0x00,0x44,0x3e,0x23,0x38,0xb1,0x34,0x01,0x15,0x2a,0x21,0x2d,0xb0,0x36,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0x38,0x2d,0xb0,0x37,0x2c,0x2e, +0x17,0x3c,0x2d,0xb0,0x38,0x2c,0x20,0x3c,0x20,0x47,0x20,0xb0,0x0e,0x43,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0xb0,0x00,0x43,0x61,0xb0,0x01,0x43,0x63,0x38,0x2d,0xb0,0x39,0x2c,0xb1,0x02,0x00,0x16,0x25,0x20,0x2e,0x20,0x47,0xb0,0x00,0x23,0x42,0xb0,0x02,0x25,0x49,0x8a, +0x8a,0x47,0x23,0x47,0x23,0x61,0x20,0x58,0x62,0x1b,0x21,0x59,0xb0,0x01,0x23,0x42,0xb2,0x38,0x01,0x01,0x15,0x14,0x2a,0x2d,0xb0,0x3a,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x65,0x8a,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0, +0x3b,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58,0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0xb0,0x0a,0x43, +0x20,0x8a,0x23,0x47,0x23,0x47,0x23,0x61,0x23,0x46,0x60,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b,0xb0,0x05,0x43,0x60,0x59,0xb0, +0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0x23,0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x1b,0x23,0xb0,0x0a,0x43,0x46,0xb0,0x02,0x25,0xb0,0x0a,0x43,0x47,0x23,0x47,0x23,0x61,0x60,0x20,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66, +0xb0,0x01,0x63,0x60,0x23,0x20,0xb0,0x01,0x2b,0x23,0xb0,0x06,0x43,0x60,0xb0,0x01,0x2b,0xb0,0x05,0x25,0x61,0xb0,0x05,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0xb0,0x04,0x26,0x61,0x20,0xb0,0x04,0x25,0x60,0x64,0x23,0xb0,0x03,0x25,0x60,0x64,0x50,0x58,0x21,0x1b,0x23,0x21,0x59,0x23, +0x20,0x20,0xb0,0x04,0x26,0x23,0x46,0x61,0x38,0x59,0x2d,0xb0,0x3c,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0x20,0x20,0xb0,0x05,0x26,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x23,0x3c,0x38,0x2d,0xb0,0x3d,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x23,0x42,0x20,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61, +0x38,0x2d,0xb0,0x3e,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0xb0,0x03,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x00,0x54,0x58,0x2e,0x20,0x3c,0x23,0x21,0x1b,0xb0,0x02,0x25,0xb0,0x02,0x25,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x05,0x25,0xb0,0x04,0x25,0x47,0x23,0x47,0x23,0x61,0xb0,0x06,0x25,0xb0,0x05,0x25,0x49,0xb0, +0x02,0x25,0x61,0xb9,0x08,0x00,0x08,0x00,0x63,0x63,0x23,0x20,0x58,0x62,0x1b,0x21,0x59,0x63,0xb8,0x04,0x00,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x23,0x2e,0x23,0x20,0x20,0x3c,0x8a,0x38,0x23,0x21,0x59,0x2d,0xb0,0x3f,0x2c,0xb0,0x00,0x16,0xb0,0x17,0x23,0x42,0x20,0xb0,0x0a,0x43,0x20,0x2e, +0x47,0x23,0x47,0x23,0x61,0x20,0x60,0xb0,0x20,0x60,0x66,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x23,0x20,0x20,0x3c,0x8a,0x38,0x2d,0xb0,0x40,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d, +0xb0,0x41,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x42,0x2c,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43, +0x58,0x52,0x1b,0x50,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x43,0x2c,0xb0,0x3a,0x2b,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x44,0x2c,0xb0,0x3b,0x2b,0x8a,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x8a, +0x38,0x23,0x20,0x2e,0x46,0xb0,0x02,0x25,0x46,0xb0,0x17,0x43,0x58,0x50,0x1b,0x52,0x59,0x58,0x20,0x3c,0x59,0x2e,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x45,0x2c,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x26,0x20,0x20,0x20,0x46,0x23,0x47,0x61,0xb0,0x0c,0x23,0x42,0x2e,0x47,0x23,0x47,0x23,0x61, +0xb0,0x0b,0x43,0x2b,0x23,0x20,0x3c,0x20,0x2e,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x46,0x2c,0xb1,0x0a,0x04,0x25,0x42,0xb0,0x00,0x16,0xb0,0x04,0x25,0xb0,0x04,0x25,0x20,0x2e,0x47,0x23,0x47,0x23,0x61,0x20,0xb0,0x06,0x23,0x42,0xb1,0x0c,0x00,0x42,0xb0,0x0b,0x43,0x2b,0x20,0xb0,0x60,0x50,0x58,0x20,0xb0,0x40,0x51,0x58, +0xb3,0x04,0x20,0x05,0x20,0x1b,0xb3,0x04,0x26,0x05,0x1a,0x59,0x42,0x42,0x23,0x20,0x47,0xb0,0x06,0x43,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x60,0x20,0xb0,0x01,0x2b,0x20,0x8a,0x8a,0x61,0x20,0xb0,0x04,0x43,0x60,0x64,0x23,0xb0,0x05,0x43,0x61,0x64,0x50,0x58,0xb0,0x04,0x43,0x61,0x1b, +0xb0,0x05,0x43,0x60,0x59,0xb0,0x03,0x25,0xb0,0x02,0x62,0x20,0xb0,0x00,0x50,0x58,0xb0,0x40,0x60,0x59,0x66,0xb0,0x01,0x63,0x61,0xb0,0x02,0x25,0x46,0x61,0x38,0x23,0x20,0x3c,0x23,0x38,0x1b,0x21,0x20,0x20,0x46,0x23,0x47,0xb0,0x01,0x2b,0x23,0x61,0x38,0x21,0x59,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x47,0x2c,0xb1,0x00,0x3a,0x2b, +0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x48,0x2c,0xb1,0x00,0x3b,0x2b,0x21,0x23,0x20,0x20,0x3c,0xb0,0x06,0x23,0x42,0x23,0x38,0xb1,0x30,0x01,0x14,0x2b,0xb0,0x06,0x43,0x2e,0xb0,0x30,0x2b,0x2d,0xb0,0x49,0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4a, +0x2c,0xb0,0x00,0x15,0x20,0x47,0xb0,0x00,0x23,0x42,0xb2,0x00,0x01,0x01,0x15,0x14,0x13,0x2e,0xb0,0x36,0x2a,0x2d,0xb0,0x4b,0x2c,0xb1,0x00,0x01,0x14,0x13,0xb0,0x37,0x2a,0x2d,0xb0,0x4c,0x2c,0xb0,0x39,0x2a,0x2d,0xb0,0x4d,0x2c,0xb0,0x00,0x16,0x45,0x23,0x20,0x2e,0x20,0x46,0x8a,0x23,0x61,0x38,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0, +0x4e,0x2c,0xb0,0x0a,0x23,0x42,0xb0,0x4d,0x2b,0x2d,0xb0,0x4f,0x2c,0xb2,0x00,0x00,0x46,0x2b,0x2d,0xb0,0x50,0x2c,0xb2,0x00,0x01,0x46,0x2b,0x2d,0xb0,0x51,0x2c,0xb2,0x01,0x00,0x46,0x2b,0x2d,0xb0,0x52,0x2c,0xb2,0x01,0x01,0x46,0x2b,0x2d,0xb0,0x53,0x2c,0xb2,0x00,0x00,0x47,0x2b,0x2d,0xb0,0x54,0x2c,0xb2,0x00,0x01,0x47,0x2b,0x2d, +0xb0,0x55,0x2c,0xb2,0x01,0x00,0x47,0x2b,0x2d,0xb0,0x56,0x2c,0xb2,0x01,0x01,0x47,0x2b,0x2d,0xb0,0x57,0x2c,0xb3,0x00,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x58,0x2c,0xb3,0x00,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x59,0x2c,0xb3,0x01,0x00,0x00,0x43,0x2b,0x2d,0xb0,0x5a,0x2c,0xb3,0x01,0x01,0x00,0x43,0x2b,0x2d,0xb0,0x5b,0x2c,0xb3,0x00,0x00, +0x01,0x43,0x2b,0x2d,0xb0,0x5c,0x2c,0xb3,0x00,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5d,0x2c,0xb3,0x01,0x00,0x01,0x43,0x2b,0x2d,0xb0,0x5e,0x2c,0xb3,0x01,0x01,0x01,0x43,0x2b,0x2d,0xb0,0x5f,0x2c,0xb2,0x00,0x00,0x45,0x2b,0x2d,0xb0,0x60,0x2c,0xb2,0x00,0x01,0x45,0x2b,0x2d,0xb0,0x61,0x2c,0xb2,0x01,0x00,0x45,0x2b,0x2d,0xb0,0x62,0x2c, +0xb2,0x01,0x01,0x45,0x2b,0x2d,0xb0,0x63,0x2c,0xb2,0x00,0x00,0x48,0x2b,0x2d,0xb0,0x64,0x2c,0xb2,0x00,0x01,0x48,0x2b,0x2d,0xb0,0x65,0x2c,0xb2,0x01,0x00,0x48,0x2b,0x2d,0xb0,0x66,0x2c,0xb2,0x01,0x01,0x48,0x2b,0x2d,0xb0,0x67,0x2c,0xb3,0x00,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x68,0x2c,0xb3,0x00,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x69, +0x2c,0xb3,0x01,0x00,0x00,0x44,0x2b,0x2d,0xb0,0x6a,0x2c,0xb3,0x01,0x01,0x00,0x44,0x2b,0x2d,0xb0,0x6b,0x2c,0xb3,0x00,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6c,0x2c,0xb3,0x00,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6d,0x2c,0xb3,0x01,0x00,0x01,0x44,0x2b,0x2d,0xb0,0x6e,0x2c,0xb3,0x01,0x01,0x01,0x44,0x2b,0x2d,0xb0,0x6f,0x2c,0xb1,0x00,0x3c, +0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x70,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x71,0x2c,0xb1,0x00,0x3c,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x72,0x2c,0xb0,0x00,0x16,0xb1,0x00,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x73,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x74,0x2c,0xb1,0x01,0x3c,0x2b,0xb0,0x41, +0x2b,0x2d,0xb0,0x75,0x2c,0xb0,0x00,0x16,0xb1,0x01,0x3c,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x76,0x2c,0xb1,0x00,0x3d,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x77,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x78,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x79,0x2c,0xb1,0x00,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0, +0x7a,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7b,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x7c,0x2c,0xb1,0x01,0x3d,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x7d,0x2c,0xb1,0x00,0x3e,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x7e,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x7f,0x2c,0xb1,0x00,0x3e,0x2b, +0xb0,0x41,0x2b,0x2d,0xb0,0x80,0x2c,0xb1,0x00,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x81,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x82,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x83,0x2c,0xb1,0x01,0x3e,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x84,0x2c,0xb1,0x00,0x3f,0x2b,0x2e,0xb1,0x30,0x01,0x14,0x2b,0x2d,0xb0,0x85, +0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x86,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x87,0x2c,0xb1,0x00,0x3f,0x2b,0xb0,0x42,0x2b,0x2d,0xb0,0x88,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x40,0x2b,0x2d,0xb0,0x89,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x41,0x2b,0x2d,0xb0,0x8a,0x2c,0xb1,0x01,0x3f,0x2b,0xb0,0x42,0x2b,0x2d, +0xb0,0x8b,0x2c,0xb2,0x0b,0x00,0x03,0x45,0x50,0x58,0xb0,0x06,0x1b,0xb2,0x04,0x02,0x03,0x45,0x58,0x23,0x21,0x1b,0x21,0x59,0x59,0x42,0x2b,0xb0,0x08,0x65,0xb0,0x03,0x24,0x50,0x78,0xb1,0x05,0x01,0x15,0x45,0x58,0x30,0x59,0x2d,0x00,0x4b,0xb8,0x00,0xc8,0x52,0x58,0xb1,0x01,0x01,0x8e,0x59,0xb0,0x01,0xb9,0x08,0x00,0x08,0x00,0x63, +0x70,0xb1,0x00,0x07,0x42,0xb6,0x00,0x00,0x41,0x31,0x21,0x05,0x00,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x4e,0x04,0x46,0x04,0x36,0x08,0x26,0x08,0x18,0x07,0x05,0x0a,0x2a,0xb1,0x00,0x07,0x42,0x40,0x0c,0x52,0x02,0x4a,0x02,0x3e,0x06,0x2e,0x06,0x1f,0x05,0x05,0x0a,0x2a,0xb1,0x00,0x0c,0x42,0xbe,0x13,0xc0,0x11,0xc0,0x0d,0xc0,0x09, +0xc0,0x06,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb1,0x00,0x11,0x42,0xbe,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x05,0x00,0x0b,0x2a,0xb9,0x00,0x03,0x00,0x00,0x44,0xb1,0x24,0x01,0x88,0x51,0x58,0xb0,0x40,0x88,0x58,0xb9,0x00,0x03,0x00,0x64,0x44,0xb1,0x28,0x01,0x88,0x51,0x58,0xb8,0x08,0x00,0x88,0x58,0xb9,0x00,0x03, +0x00,0x00,0x44,0x59,0x1b,0xb1,0x27,0x01,0x88,0x51,0x58,0xba,0x08,0x80,0x00,0x01,0x04,0x40,0x88,0x63,0x54,0x58,0xb9,0x00,0x03,0x00,0x00,0x44,0x59,0x59,0x59,0x59,0x59,0x40,0x0c,0x50,0x02,0x48,0x02,0x38,0x06,0x28,0x06,0x1a,0x05,0x05,0x0e,0x2a,0xb8,0x01,0xff,0x85,0xb0,0x04,0x8d,0xb1,0x02,0x00,0x44,0xb3,0x05,0x64,0x06,0x00, +0x44,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0x26,0x00,0x00, +0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c,0x02,0xe4,0xff,0xf6,0x02,0xe4,0x02,0x2e,0xff,0xf8,0xff,0x4c,0x00,0x5a,0x00,0x5a,0x00,0x50,0x00,0x50,0x02,0xda,0x00,0x00,0x02,0xda,0x02,0x26,0x00,0x00,0xff,0x4c, +0x02,0xe4,0xff,0xf6,0x03,0x09,0x02,0x30,0xff,0xf8,0xff,0x4c,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x01,0x3b,0xff,0x7b,0x01,0x40,0xff,0x76,0x00,0x47,0x00,0x47,0x00,0x40,0x00,0x40,0x03,0x3e,0x01,0x7e,0x03,0x43,0x01,0x79,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xd4,0x00,0x00,0x00,0xec,0x00,0x00,0x01,0x04, +0x00,0x00,0x01,0x1c,0x00,0x00,0x01,0x3c,0x00,0x00,0x01,0x54,0x00,0x00,0x01,0x6c,0x00,0x00,0x01,0x84,0x00,0x00,0x01,0x9c,0x00,0x00,0x01,0xb4,0x00,0x00,0x01,0xcc,0x00,0x00,0x01,0xec,0x00,0x00,0x02,0x04,0x00,0x00,0x02,0x1c,0x00,0x00,0x02,0x34,0x00,0x00,0x02,0x4c,0x00,0x00,0x02,0x64,0x00,0x00,0x02,0x7c,0x00,0x00,0x02,0x94, +0x00,0x00,0x02,0xac,0x00,0x00,0x03,0x78,0x00,0x00,0x03,0x90,0x00,0x00,0x03,0xa8,0x00,0x00,0x04,0x28,0x00,0x00,0x04,0x40,0x00,0x00,0x04,0xe0,0x00,0x00,0x05,0x70,0x00,0x00,0x05,0x88,0x00,0x00,0x05,0xa0,0x00,0x00,0x06,0xb8,0x00,0x00,0x06,0xd0,0x00,0x00,0x06,0xe8,0x00,0x00,0x07,0x58,0x00,0x00,0x07,0xe8,0x00,0x00,0x08,0x00, +0x00,0x00,0x08,0x90,0x00,0x00,0x08,0xec,0x00,0x00,0x09,0x04,0x00,0x00,0x09,0x1c,0x00,0x00,0x09,0x34,0x00,0x00,0x09,0x4c,0x00,0x00,0x09,0x64,0x00,0x00,0x09,0x84,0x00,0x00,0x09,0x9c,0x00,0x00,0x09,0xb4,0x00,0x00,0x09,0xcc,0x00,0x00,0x09,0xe4,0x00,0x00,0x09,0xfc,0x00,0x00,0x0a,0x14,0x00,0x00,0x0a,0x2c,0x00,0x00,0x0a,0x44, +0x00,0x00,0x0a,0x5c,0x00,0x00,0x0b,0x20,0x00,0x00,0x0b,0xf0,0x00,0x00,0x0c,0x08,0x00,0x00,0x0c,0x5c,0x00,0x00,0x0c,0xf4,0x00,0x00,0x0d,0x0c,0x00,0x00,0x0d,0x24,0x00,0x00,0x0d,0x3c,0x00,0x00,0x0d,0x54,0x00,0x00,0x0d,0x6c,0x00,0x00,0x0d,0x84,0x00,0x00,0x0d,0xd8,0x00,0x00,0x0e,0x58,0x00,0x00,0x0e,0x70,0x00,0x00,0x0e,0xc4, +0x00,0x00,0x0e,0xdc,0x00,0x00,0x0e,0xf4,0x00,0x00,0x0f,0x0c,0x00,0x00,0x0f,0x24,0x00,0x00,0x0f,0x3c,0x00,0x00,0x0f,0x54,0x00,0x00,0x0f,0x6c,0x00,0x00,0x0f,0x84,0x00,0x00,0x0f,0x9c,0x00,0x00,0x10,0x50,0x00,0x00,0x10,0x68,0x00,0x00,0x10,0xcc,0x00,0x00,0x10,0xe4,0x00,0x00,0x11,0x44,0x00,0x00,0x11,0x5c,0x00,0x00,0x11,0x98, +0x00,0x00,0x11,0xb0,0x00,0x00,0x11,0xc8,0x00,0x00,0x11,0xe0,0x00,0x00,0x12,0x04,0x00,0x00,0x12,0x64,0x00,0x00,0x12,0xdc,0x00,0x00,0x13,0x40,0x00,0x00,0x13,0x58,0x00,0x00,0x13,0x70,0x00,0x00,0x13,0x88,0x00,0x00,0x14,0x08,0x00,0x00,0x14,0x20,0x00,0x00,0x14,0xa4,0x00,0x00,0x14,0xbc,0x00,0x00,0x14,0xd4,0x00,0x00,0x14,0xec, +0x00,0x00,0x15,0x04,0x00,0x00,0x15,0x24,0x00,0x00,0x15,0x3c,0x00,0x00,0x15,0x54,0x00,0x00,0x15,0x6c,0x00,0x00,0x15,0x84,0x00,0x00,0x15,0x9c,0x00,0x00,0x15,0xb4,0x00,0x00,0x15,0xcc,0x00,0x00,0x16,0x74,0x00,0x00,0x16,0x8c,0x00,0x00,0x16,0xa4,0x00,0x00,0x16,0xbc,0x00,0x00,0x16,0xd4,0x00,0x00,0x16,0xec,0x00,0x00,0x17,0x04, +0x00,0x00,0x17,0x1c,0x00,0x00,0x18,0x00,0x00,0x00,0x18,0xec,0x00,0x00,0x19,0x04,0x00,0x00,0x19,0x1c,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xe8,0x00,0x00,0x1b,0x5c,0x00,0x00,0x1b,0xfc,0x00,0x00,0x1c,0x7c,0x00,0x00,0x1c,0x94,0x00,0x00,0x1c,0xac,0x00,0x00,0x1c,0xc4,0x00,0x00,0x1d,0x78,0x00,0x00,0x1d,0x90,0x00,0x00,0x1d,0xa8, +0x00,0x00,0x1e,0xe4,0x00,0x00,0x1e,0xfc,0x00,0x00,0x1f,0x14,0x00,0x00,0x1f,0xac,0x00,0x00,0x20,0x4c,0x00,0x00,0x20,0x90,0x00,0x00,0x20,0xf4,0x00,0x00,0x21,0x0c,0x00,0x00,0x21,0xc8,0x00,0x00,0x21,0xe0,0x00,0x00,0x22,0x40,0x00,0x00,0x22,0x58,0x00,0x00,0x22,0x70,0x00,0x00,0x22,0x88,0x00,0x00,0x22,0xa0,0x00,0x00,0x22,0xb8, +0x00,0x00,0x22,0xd0,0x00,0x00,0x22,0xe8,0x00,0x00,0x23,0x6c,0x00,0x00,0x23,0x84,0x00,0x00,0x23,0x9c,0x00,0x00,0x23,0xb4,0x00,0x00,0x23,0xcc,0x00,0x00,0x23,0xe4,0x00,0x00,0x23,0xfc,0x00,0x00,0x24,0x14,0x00,0x00,0x24,0xcc,0x00,0x00,0x24,0xe4,0x00,0x00,0x24,0xfc,0x00,0x00,0x25,0x54,0x00,0x00,0x25,0xe8,0x00,0x00,0x26,0x00, +0x00,0x00,0x26,0x18,0x00,0x00,0x26,0x30,0x00,0x00,0x26,0x48,0x00,0x00,0x26,0xc4,0x00,0x00,0x27,0x24,0x00,0x00,0x27,0x3c,0x00,0x00,0x27,0x54,0x00,0x00,0x27,0x6c,0x00,0x00,0x27,0x84,0x00,0x00,0x27,0x9c,0x00,0x00,0x27,0xb4,0x00,0x00,0x27,0xcc,0x00,0x00,0x27,0xe4,0x00,0x00,0x28,0x3c,0x00,0x00,0x28,0x54,0x00,0x00,0x28,0x6c, +0x00,0x00,0x28,0x84,0x00,0x00,0x29,0x10,0x00,0x00,0x29,0x28,0x00,0x00,0x29,0x40,0x00,0x00,0x29,0x58,0x00,0x00,0x29,0x70,0x00,0x00,0x29,0xcc,0x00,0x00,0x29,0xe4,0x00,0x00,0x2a,0x94,0x00,0x00,0x2b,0x88,0x00,0x00,0x2b,0xa0,0x00,0x00,0x2b,0xb8,0x00,0x00,0x2b,0xd0,0x00,0x00,0x2b,0xf0,0x00,0x00,0x2c,0x08,0x00,0x00,0x2c,0x20, +0x00,0x00,0x2c,0x38,0x00,0x00,0x2c,0x50,0x00,0x00,0x2c,0x68,0x00,0x00,0x2c,0x80,0x00,0x00,0x2c,0xa0,0x00,0x00,0x2c,0xb8,0x00,0x00,0x2c,0xd0,0x00,0x00,0x2c,0xe8,0x00,0x00,0x2d,0x00,0x00,0x00,0x2d,0x18,0x00,0x00,0x2d,0x30,0x00,0x00,0x2d,0x48,0x00,0x00,0x2d,0x60,0x00,0x00,0x2e,0xe0,0x00,0x00,0x2e,0xf8,0x00,0x00,0x2f,0x10, +0x00,0x00,0x30,0x6c,0x00,0x00,0x30,0x84,0x00,0x00,0x31,0x54,0x00,0x00,0x31,0xe4,0x00,0x00,0x31,0xfc,0x00,0x00,0x32,0x14,0x00,0x00,0x33,0x2c,0x00,0x00,0x33,0x44,0x00,0x00,0x33,0x5c,0x00,0x00,0x34,0x2c,0x00,0x00,0x35,0x00,0x00,0x00,0x35,0xf8,0x00,0x00,0x36,0xf0,0x00,0x00,0x37,0x94,0x00,0x00,0x37,0xac,0x00,0x00,0x37,0xc4, +0x00,0x00,0x37,0xdc,0x00,0x00,0x37,0xf4,0x00,0x00,0x38,0x0c,0x00,0x00,0x38,0x2c,0x00,0x00,0x38,0x44,0x00,0x00,0x38,0x5c,0x00,0x00,0x38,0x74,0x00,0x00,0x38,0x8c,0x00,0x00,0x38,0xa4,0x00,0x00,0x38,0xbc,0x00,0x00,0x38,0xd4,0x00,0x00,0x38,0xec,0x00,0x00,0x39,0x04,0x00,0x00,0x3a,0x0c,0x00,0x00,0x3a,0x24,0x00,0x00,0x3a,0xc4, +0x00,0x00,0x3b,0x28,0x00,0x00,0x3c,0x10,0x00,0x00,0x3c,0x28,0x00,0x00,0x3c,0x40,0x00,0x00,0x3c,0x58,0x00,0x00,0x3c,0x70,0x00,0x00,0x3c,0x88,0x00,0x00,0x3c,0xa0,0x00,0x00,0x3d,0x10,0x00,0x00,0x3d,0x20,0x00,0x00,0x3d,0x44,0x00,0x00,0x3d,0x5c,0x00,0x00,0x3d,0xa8,0x00,0x00,0x3d,0xc0,0x00,0x00,0x3d,0xd8,0x00,0x00,0x3d,0xf0, +0x00,0x00,0x3e,0x08,0x00,0x00,0x3e,0x20,0x00,0x00,0x3e,0x38,0x00,0x00,0x3e,0x58,0x00,0x00,0x3e,0x70,0x00,0x00,0x3e,0x88,0x00,0x00,0x3e,0xa0,0x00,0x00,0x3f,0xc8,0x00,0x00,0x3f,0xe0,0x00,0x00,0x3f,0xf8,0x00,0x00,0x40,0x50,0x00,0x00,0x40,0x68,0x00,0x00,0x40,0xcc,0x00,0x00,0x40,0xe4,0x00,0x00,0x40,0xf4,0x00,0x00,0x41,0x4c, +0x00,0x00,0x41,0x64,0x00,0x00,0x41,0xe0,0x00,0x00,0x41,0xf8,0x00,0x00,0x42,0x10,0x00,0x00,0x42,0x34,0x00,0x00,0x42,0xa4,0x00,0x00,0x43,0x64,0x00,0x00,0x43,0xf4,0x00,0x00,0x44,0x0c,0x00,0x00,0x44,0x30,0x00,0x00,0x44,0x48,0x00,0x00,0x44,0x60,0x00,0x00,0x45,0x14,0x00,0x00,0x45,0x2c,0x00,0x00,0x45,0xac,0x00,0x00,0x45,0xc4, +0x00,0x00,0x45,0xdc,0x00,0x00,0x45,0xf4,0x00,0x00,0x46,0x0c,0x00,0x00,0x46,0x24,0x00,0x00,0x46,0x44,0x00,0x00,0x46,0x5c,0x00,0x00,0x46,0x74,0x00,0x00,0x46,0x8c,0x00,0x00,0x46,0xa4,0x00,0x00,0x46,0xbc,0x00,0x00,0x46,0xd4,0x00,0x00,0x46,0xec,0x00,0x00,0x47,0xc8,0x00,0x00,0x47,0xe0,0x00,0x00,0x47,0xf8,0x00,0x00,0x48,0x10, +0x00,0x00,0x48,0x28,0x00,0x00,0x48,0x40,0x00,0x00,0x48,0x58,0x00,0x00,0x48,0x70,0x00,0x00,0x49,0x54,0x00,0x00,0x4a,0x18,0x00,0x00,0x4a,0x30,0x00,0x00,0x4a,0x48,0x00,0x00,0x4b,0x50,0x00,0x00,0x4c,0x1c,0x00,0x00,0x4c,0xf0,0x00,0x00,0x4d,0xc0,0x00,0x00,0x4e,0x58,0x00,0x00,0x4e,0x70,0x00,0x00,0x4e,0x88,0x00,0x00,0x4e,0xa0, +0x00,0x00,0x4f,0x50,0x00,0x00,0x4f,0x68,0x00,0x00,0x4f,0x80,0x00,0x00,0x50,0xb4,0x00,0x00,0x50,0xcc,0x00,0x00,0x50,0xe4,0x00,0x00,0x51,0x90,0x00,0x00,0x51,0xdc,0x00,0x00,0x52,0x4c,0x00,0x00,0x52,0xd4,0x00,0x00,0x52,0xf8,0x00,0x00,0x53,0xe8,0x00,0x00,0x54,0x00,0x00,0x00,0x54,0x60,0x00,0x00,0x54,0x78,0x00,0x00,0x54,0x90, +0x00,0x00,0x54,0xa8,0x00,0x00,0x54,0xc0,0x00,0x00,0x54,0xd8,0x00,0x00,0x55,0x04,0x00,0x00,0x55,0x30,0x00,0x00,0x55,0x5c,0x00,0x00,0x55,0x88,0x00,0x00,0x55,0xa0,0x00,0x00,0x55,0xb8,0x00,0x00,0x55,0xd0,0x00,0x00,0x56,0x6c,0x00,0x00,0x56,0x84,0x00,0x00,0x56,0x9c,0x00,0x00,0x56,0xb4,0x00,0x00,0x56,0xcc,0x00,0x00,0x56,0xe4, +0x00,0x00,0x56,0xfc,0x00,0x00,0x57,0x14,0x00,0x00,0x57,0xc8,0x00,0x00,0x57,0xe0,0x00,0x00,0x57,0xf8,0x00,0x00,0x58,0x50,0x00,0x00,0x58,0xe8,0x00,0x00,0x59,0x00,0x00,0x00,0x59,0x18,0x00,0x00,0x59,0x30,0x00,0x00,0x59,0x48,0x00,0x00,0x59,0xc4,0x00,0x00,0x5a,0x24,0x00,0x00,0x5a,0x3c,0x00,0x00,0x5a,0x54,0x00,0x00,0x5a,0x6c, +0x00,0x00,0x5a,0x84,0x00,0x00,0x5a,0x9c,0x00,0x00,0x5a,0xb4,0x00,0x00,0x5a,0xcc,0x00,0x00,0x5a,0xe4,0x00,0x00,0x5b,0x3c,0x00,0x00,0x5b,0x54,0x00,0x00,0x5b,0x6c,0x00,0x00,0x5b,0x84,0x00,0x00,0x5b,0x94,0x00,0x00,0x5b,0xe0,0x00,0x00,0x5b,0xf8,0x00,0x00,0x5c,0x10,0x00,0x00,0x5c,0x28,0x00,0x00,0x5c,0x4c,0x00,0x00,0x5c,0xbc, +0x00,0x00,0x5d,0x48,0x00,0x00,0x5d,0xe8,0x00,0x00,0x5e,0x0c,0x00,0x00,0x5f,0x20,0x00,0x00,0x5f,0x38,0x00,0x00,0x60,0xbc,0x00,0x00,0x60,0xd4,0x00,0x00,0x60,0xec,0x00,0x00,0x61,0x04,0x00,0x00,0x61,0x1c,0x00,0x00,0x61,0x34,0x00,0x00,0x61,0x4c,0x00,0x00,0x61,0x64,0x00,0x00,0x62,0x04,0x00,0x00,0x62,0x1c,0x00,0x00,0x62,0x90, +0x00,0x00,0x62,0xa8,0x00,0x00,0x62,0xc0,0x00,0x00,0x62,0xd8,0x00,0x00,0x63,0x7c,0x00,0x00,0x64,0x04,0x00,0x00,0x64,0xd0,0x00,0x00,0x65,0x5c,0x00,0x00,0x65,0x74,0x00,0x00,0x65,0x8c,0x00,0x00,0x65,0xa4,0x00,0x00,0x65,0xbc,0x00,0x00,0x66,0x1c,0x00,0x00,0x66,0x34,0x00,0x00,0x66,0x44,0x00,0x00,0x66,0xb8,0x00,0x00,0x67,0x64, +0x00,0x00,0x67,0x7c,0x00,0x00,0x67,0x94,0x00,0x00,0x67,0xac,0x00,0x00,0x68,0x1c,0x00,0x00,0x68,0x34,0x00,0x00,0x68,0x4c,0x00,0x00,0x68,0x64,0x00,0x00,0x68,0x7c,0x00,0x00,0x68,0x94,0x00,0x00,0x68,0xac,0x00,0x00,0x68,0xc4,0x00,0x00,0x68,0xdc,0x00,0x00,0x69,0x6c,0x00,0x00,0x6a,0x28,0x00,0x00,0x6b,0x0c,0x00,0x00,0x6b,0xdc, +0x00,0x00,0x6d,0x00,0x00,0x00,0x6d,0xcc,0x00,0x00,0x6e,0x8c,0x00,0x00,0x6f,0x9c,0x00,0x00,0x70,0x80,0x00,0x00,0x70,0x98,0x00,0x00,0x70,0xb0,0x00,0x00,0x70,0xc8,0x00,0x00,0x70,0xe0,0x00,0x00,0x70,0xf8,0x00,0x00,0x71,0xd0,0x00,0x00,0x72,0xb8,0x00,0x00,0x73,0xc0,0x00,0x00,0x74,0xc8,0x00,0x00,0x76,0x48,0x00,0x00,0x76,0xcc, +0x00,0x00,0x77,0x44,0x00,0x00,0x77,0xac,0x00,0x00,0x78,0xa8,0x00,0x00,0x79,0x30,0x00,0x00,0x79,0x40,0x00,0x00,0x79,0xb8,0x00,0x00,0x79,0xc8,0x00,0x00,0x7a,0x08,0x00,0x00,0x7a,0x20,0x00,0x00,0x7a,0x8c,0x00,0x00,0x7b,0x0c,0x00,0x00,0x7b,0x1c,0x00,0x00,0x7b,0x34,0x00,0x00,0x7b,0xb8,0x00,0x00,0x7c,0x88,0x00,0x00,0x7c,0xec, +0x00,0x00,0x7d,0x04,0x00,0x00,0x7d,0x14,0x00,0x00,0x7d,0x2c,0x00,0x00,0x7d,0xb4,0x00,0x00,0x7d,0xc4,0x00,0x00,0x7d,0xd4,0x00,0x00,0x7d,0xe4,0x00,0x00,0x7e,0x28,0x00,0x00,0x7e,0x38,0x00,0x00,0x7e,0x48,0x00,0x00,0x7e,0x58,0x00,0x00,0x7e,0xb4,0x00,0x00,0x7e,0xcc,0x00,0x00,0x7f,0xf0,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x5c, +0x00,0x00,0x80,0xb4,0x00,0x00,0x81,0x08,0x00,0x00,0x81,0x6c,0x00,0x00,0x81,0xe4,0x00,0x00,0x82,0x54,0x00,0x00,0x82,0xd0,0x00,0x00,0x83,0x58,0x00,0x00,0x84,0x28,0x00,0x00,0x84,0xb4,0x00,0x00,0x84,0xc4,0x00,0x00,0x85,0x68,0x00,0x00,0x85,0xfc,0x00,0x00,0x86,0x0c,0x00,0x00,0x86,0x24,0x00,0x00,0x86,0x34,0x00,0x00,0x86,0xb0, +0x00,0x00,0x87,0x8c,0x00,0x00,0x88,0x14,0x00,0x00,0x88,0xac,0x00,0x00,0x89,0x08,0x00,0x00,0x89,0x7c,0x00,0x00,0x89,0xe0,0x00,0x00,0x89,0xf0,0x00,0x00,0x8a,0x68,0x00,0x00,0x8a,0xd4,0x00,0x00,0x8b,0x30,0x00,0x00,0x8b,0xd0,0x00,0x00,0x8b,0xe8,0x00,0x00,0x8c,0x00,0x00,0x00,0x8c,0x18,0x00,0x00,0x8c,0x30,0x00,0x00,0x8c,0xcc, +0x00,0x00,0x8c,0xe4,0x00,0x00,0x8d,0x64,0x00,0x00,0x8d,0x74,0x00,0x00,0x8d,0x8c,0x00,0x00,0x8d,0xfc,0x00,0x00,0x8e,0x70,0x00,0x00,0x8e,0x88,0x00,0x00,0x8f,0x60,0x00,0x00,0x8f,0x70,0x00,0x00,0x90,0x14,0x00,0x00,0x90,0xb4,0x00,0x00,0x90,0xf4,0x00,0x00,0x91,0x0c,0x00,0x00,0x91,0x78,0x00,0x00,0x91,0xf8,0x00,0x00,0x92,0x08, +0x00,0x00,0x92,0x20,0x00,0x00,0x92,0x9c,0x00,0x00,0x93,0x68,0x00,0x00,0x93,0xc8,0x00,0x00,0x93,0xe0,0x00,0x00,0x94,0x3c,0x00,0x00,0x94,0x54,0x00,0x00,0x94,0xdc,0x00,0x00,0x95,0x4c,0x00,0x00,0x95,0x9c,0x00,0x00,0x95,0xac,0x00,0x00,0x95,0xf0,0x00,0x00,0x96,0x00,0x00,0x00,0x96,0x10,0x00,0x00,0x96,0x54,0x00,0x00,0x96,0x64, +0x00,0x00,0x96,0x7c,0x00,0x00,0x97,0x34,0x00,0x00,0x97,0x44,0x00,0x00,0x97,0x9c,0x00,0x00,0x97,0xf4,0x00,0x00,0x98,0x48,0x00,0x00,0x98,0xac,0x00,0x00,0x99,0x24,0x00,0x00,0x99,0x90,0x00,0x00,0x9a,0x04,0x00,0x00,0x9a,0x88,0x00,0x00,0x9b,0x8c,0x00,0x00,0x9c,0x14,0x00,0x00,0x9c,0x24,0x00,0x00,0x9c,0xc8,0x00,0x00,0x9d,0x6c, +0x00,0x00,0x9d,0x84,0x00,0x00,0x9d,0x9c,0x00,0x00,0x9d,0xb4,0x00,0x00,0x9e,0x40,0x00,0x00,0x9f,0x18,0x00,0x00,0x9f,0x98,0x00,0x00,0xa0,0x40,0x00,0x00,0xa0,0x9c,0x00,0x00,0xa1,0x08,0x00,0x00,0xa1,0x68,0x00,0x00,0xa1,0x78,0x00,0x00,0xa1,0xf0,0x00,0x00,0xa2,0x5c,0x00,0x00,0xa2,0xb8,0x00,0x00,0xa3,0x5c,0x00,0x00,0xa3,0x74, +0x00,0x00,0xa3,0x8c,0x00,0x00,0xa3,0xa4,0x00,0x00,0xa3,0xbc,0x00,0x00,0xa4,0x58,0x00,0x00,0xa4,0x70,0x00,0x00,0xa4,0x88,0x00,0x00,0xa5,0x08,0x00,0x00,0xa5,0x64,0x00,0x00,0xa5,0x7c,0x00,0x00,0xa5,0xe8,0x00,0x00,0xa5,0xf8,0x00,0x00,0xa6,0x10,0x00,0x00,0xa6,0xbc,0x00,0x00,0xa6,0xcc,0x00,0x00,0xa6,0xdc,0x00,0x00,0xa6,0xec, +0x00,0x00,0xa7,0x50,0x00,0x00,0xa7,0x60,0x00,0x00,0xa7,0x70,0x00,0x00,0xa7,0x80,0x00,0x00,0xa8,0x20,0x00,0x00,0xa8,0x30,0x00,0x00,0xa8,0x40,0x00,0x00,0xa8,0x90,0x00,0x00,0xa8,0xa0,0x00,0x00,0xa8,0xb0,0x00,0x00,0xa9,0x24,0x00,0x00,0xa9,0x34,0x00,0x00,0xa9,0x44,0x00,0x00,0xa9,0x54,0x00,0x00,0xa9,0xbc,0x00,0x00,0xa9,0xcc, +0x00,0x00,0xa9,0xdc,0x00,0x00,0xa9,0xec,0x00,0x00,0xa9,0xfc,0x00,0x00,0xaa,0x78,0x00,0x00,0xab,0x44,0x00,0x00,0xab,0x5c,0x00,0x00,0xab,0x74,0x00,0x00,0xab,0x8c,0x00,0x00,0xab,0xa4,0x00,0x00,0xab,0xbc,0x00,0x00,0xab,0xd4,0x00,0x00,0xab,0xec,0x00,0x00,0xac,0x04,0x00,0x00,0xac,0x1c,0x00,0x00,0xac,0xac,0x00,0x00,0xac,0xbc, +0x00,0x00,0xad,0x48,0x00,0x00,0xae,0x14,0x00,0x00,0xae,0xe8,0x00,0x00,0xaf,0x48,0x00,0x00,0xaf,0xf4,0x00,0x00,0xb0,0xc4,0x00,0x00,0xb1,0x40,0x00,0x00,0xb1,0x50,0x00,0x00,0xb1,0xec,0x00,0x00,0xb2,0x44,0x00,0x00,0xb2,0x54,0x00,0x00,0xb2,0xb0,0x00,0x00,0xb3,0x54,0x00,0x00,0xb3,0x64,0x00,0x00,0xb4,0x2c,0x00,0x00,0xb4,0x3c, +0x00,0x00,0xb4,0xd4,0x00,0x00,0xb5,0x6c,0x00,0x00,0xb5,0xf0,0x00,0x00,0xb6,0x88,0x00,0x00,0xb6,0xe8,0x00,0x00,0xb6,0xf8,0x00,0x00,0xb7,0xa8,0x00,0x00,0xb7,0xb8,0x00,0x00,0xb8,0x30,0x00,0x00,0xb8,0xe4,0x00,0x00,0xb8,0xfc,0x00,0x00,0xb9,0x14,0x00,0x00,0xb9,0x2c,0x00,0x00,0xb9,0x44,0x00,0x00,0xb9,0x5c,0x00,0x00,0xb9,0x74, +0x00,0x00,0xb9,0x8c,0x00,0x00,0xb9,0xa4,0x00,0x00,0xba,0x9c,0x00,0x00,0xbc,0x6c,0x00,0x00,0xbc,0x84,0x00,0x00,0xbd,0x10,0x00,0x00,0xbd,0x20,0x00,0x00,0xbd,0xe4,0x00,0x00,0xbd,0xf4,0x00,0x00,0xbe,0x6c,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0x20,0x00,0x00,0xbf,0xac,0x00,0x00,0xc0,0x98,0x00,0x00,0xc1,0x48,0x00,0x00,0xc1,0xe8, +0x00,0x00,0xc2,0x58,0x00,0x00,0xc2,0xc0,0x00,0x00,0xc3,0x90,0x00,0x00,0xc4,0x18,0x00,0x00,0xc4,0x7c,0x00,0x00,0xc5,0x0c,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc5,0xf4,0x00,0x00,0xc6,0x9c,0x00,0x00,0xc7,0x1c,0x00,0x00,0xc7,0xd8,0x00,0x00,0xc8,0x78,0x00,0x00,0xc9,0x50,0x00,0x00,0xca,0x20,0x00,0x00,0xcb,0x18,0x00,0x00,0xcb,0x70, +0x00,0x00,0xcb,0xf0,0x00,0x00,0xcc,0x64,0x00,0x00,0xcd,0x3c,0x00,0x00,0xcd,0xb8,0x00,0x00,0xce,0x3c,0x00,0x00,0xce,0xb8,0x00,0x00,0xd0,0x00,0x00,0x00,0xd1,0x24,0x00,0x00,0xd1,0xd0,0x00,0x00,0xd2,0xf0,0x00,0x00,0xd3,0xc4,0x00,0x00,0xd4,0x54,0x00,0x00,0xd5,0x88,0x00,0x00,0xd6,0x24,0x00,0x00,0xd7,0x24,0x00,0x00,0xd8,0x30, +0x00,0x00,0xd8,0xc4,0x00,0x00,0xd9,0x30,0x00,0x00,0xda,0x80,0x00,0x00,0xdb,0x54,0x00,0x00,0xdc,0x0c,0x00,0x00,0xdd,0x28,0x00,0x00,0xde,0x48,0x00,0x00,0xdf,0x14,0x00,0x00,0xe0,0x10,0x00,0x00,0xe0,0xac,0x00,0x00,0xe1,0x2c,0x00,0x00,0xe1,0xa0,0x00,0x00,0xe2,0x80,0x00,0x00,0xe2,0xf4,0x00,0x00,0xe3,0x84,0x00,0x00,0xe3,0xf0, +0x00,0x00,0xe4,0xa8,0x00,0x00,0xe4,0xfc,0x00,0x00,0xe5,0x80,0x00,0x00,0xe6,0x18,0x00,0x00,0xe6,0x78,0x00,0x00,0xe7,0x08,0x00,0x00,0xe7,0xac,0x00,0x00,0xe8,0x28,0x00,0x00,0xe9,0x0c,0x00,0x00,0xe9,0xac,0x00,0x00,0xea,0x50,0x00,0x00,0xea,0xe4,0x00,0x00,0xeb,0xa4,0x00,0x00,0xec,0x68,0x00,0x00,0xed,0x48,0x00,0x00,0xed,0xf8, +0x00,0x00,0xee,0x18,0x00,0x00,0xee,0x38,0x00,0x00,0xee,0x58,0x00,0x00,0xee,0x78,0x00,0x00,0xee,0x98,0x00,0x00,0xee,0xb8,0x00,0x00,0xee,0xd8,0x00,0x00,0xee,0xf8,0x00,0x00,0xef,0x18,0x00,0x00,0xef,0x38,0x00,0x00,0xef,0x58,0x00,0x00,0xef,0x78,0x00,0x00,0xef,0x98,0x00,0x00,0xef,0xb8,0x00,0x00,0xef,0xd8,0x00,0x00,0xef,0xf8, +0x00,0x00,0xf0,0x18,0x00,0x00,0xf0,0x38,0x00,0x00,0xf0,0x58,0x00,0x00,0xf0,0x78,0x00,0x00,0xf0,0x94,0x00,0x00,0xf0,0xb0,0x00,0x00,0xf0,0xcc,0x00,0x00,0xf0,0xe8,0x00,0x00,0xf1,0x04,0x00,0x00,0xf1,0x20,0x00,0x00,0xf1,0x3c,0x00,0x00,0xf1,0x58,0x00,0x00,0xf1,0x74,0x00,0x00,0xf1,0x90,0x00,0x00,0xf2,0x14,0x00,0x00,0xf2,0x68, +0x00,0x00,0xf2,0xf0,0x00,0x00,0xf3,0x84,0x00,0x00,0xf3,0xe4,0x00,0x00,0xf4,0x70,0x00,0x00,0xf5,0x04,0x00,0x00,0xf5,0x80,0x00,0x00,0xf6,0x58,0x00,0x00,0xf6,0xec,0x00,0x00,0xf7,0x0c,0x00,0x00,0xf7,0x2c,0x00,0x00,0xf7,0x4c,0x00,0x00,0xf7,0x6c,0x00,0x00,0xf7,0x8c,0x00,0x00,0xf7,0xac,0x00,0x00,0xf7,0xc8,0x00,0x00,0xf7,0xe4, +0x00,0x00,0xf8,0x00,0x00,0x00,0xf8,0x88,0x00,0x00,0xf9,0x48,0x00,0x00,0xfa,0x04,0x00,0x00,0xfa,0x24,0x00,0x00,0xfa,0x44,0x00,0x00,0xfa,0x60,0x00,0x00,0xfb,0x44,0x00,0x00,0xfb,0x64,0x00,0x00,0xfb,0x80,0x00,0x00,0xfb,0x9c,0x00,0x00,0xfc,0x4c,0x00,0x00,0xfc,0x84,0x00,0x00,0xfd,0x78,0x00,0x00,0xfe,0x44,0x00,0x00,0xff,0x98, +0x00,0x00,0xff,0xb8,0x00,0x00,0xff,0xc8,0x00,0x00,0xff,0xe8,0x00,0x01,0x00,0x70,0x00,0x01,0x01,0x10,0x00,0x01,0x01,0x58,0x00,0x01,0x01,0xa8,0x00,0x01,0x02,0x24,0x00,0x01,0x02,0xb4,0x00,0x01,0x03,0x5c,0x00,0x01,0x03,0xc8,0x00,0x01,0x04,0x38,0x00,0x01,0x05,0x0c,0x00,0x01,0x05,0xe8,0x00,0x01,0x06,0x08,0x00,0x01,0x06,0x54, +0x00,0x01,0x07,0x00,0x00,0x01,0x07,0x5c,0x00,0x01,0x07,0xb4,0x00,0x01,0x07,0xfc,0x00,0x01,0x08,0x14,0x00,0x01,0x08,0xbc,0x00,0x01,0x09,0x60,0x00,0x01,0x09,0x70,0x00,0x01,0x09,0xb0,0x00,0x01,0x09,0xe4,0x00,0x01,0x0a,0x1c,0x00,0x01,0x0a,0x74,0x00,0x01,0x0a,0xf4,0x00,0x01,0x0b,0x14,0x00,0x01,0x0b,0x34,0x00,0x01,0x0b,0x78, +0x00,0x01,0x0b,0xbc,0x00,0x01,0x0c,0x6c,0x00,0x01,0x0d,0x1c,0x00,0x01,0x0d,0x68,0x00,0x01,0x0d,0xb4,0x00,0x01,0x0d,0xc4,0x00,0x01,0x0d,0xd4,0x00,0x01,0x0e,0x14,0x00,0x01,0x0e,0x58,0x00,0x01,0x0e,0x94,0x00,0x01,0x0e,0xd0,0x00,0x01,0x0f,0x14,0x00,0x01,0x0f,0x58,0x00,0x01,0x10,0x24,0x00,0x01,0x10,0x68,0x00,0x01,0x10,0xac, +0x00,0x01,0x11,0x70,0x00,0x01,0x11,0xbc,0x00,0x01,0x12,0x04,0x00,0x01,0x12,0x3c,0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x84,0x00,0x01,0x12,0xbc,0x00,0x01,0x12,0xcc,0x00,0x01,0x13,0x0c,0x00,0x01,0x13,0x7c,0x00,0x01,0x13,0x94,0x00,0x01,0x14,0x20,0x00,0x01,0x14,0x50,0x00,0x01,0x14,0xa4,0x00,0x01,0x14,0xc4,0x00,0x01,0x15,0x14, +0x00,0x01,0x15,0x94,0x00,0x01,0x15,0xfc,0x00,0x01,0x16,0x64,0x00,0x01,0x16,0xac,0x00,0x01,0x16,0xf0,0x00,0x01,0x17,0x30,0x00,0x01,0x17,0x48,0x00,0x01,0x17,0x80,0x00,0x01,0x17,0xd0,0x00,0x01,0x18,0x38,0x00,0x01,0x19,0xa4,0x00,0x01,0x1a,0x04,0x00,0x01,0x1a,0x70,0x00,0x01,0x1a,0xd8,0x00,0x01,0x1b,0x78,0x00,0x01,0x1b,0xd4, +0x00,0x01,0x1c,0x58,0x00,0x01,0x1d,0x1c,0x00,0x01,0x1d,0x34,0x00,0x01,0x1e,0xa8,0x00,0x01,0x20,0x1c,0x00,0x01,0x20,0x3c,0x00,0x01,0x21,0x00,0x00,0x01,0x21,0x18,0x00,0x01,0x21,0x7c,0x00,0x01,0x21,0xa0,0x00,0x01,0x22,0x74,0x00,0x01,0x22,0x8c,0x00,0x01,0x22,0xac,0x00,0x01,0x22,0xd0,0x00,0x01,0x22,0xe8,0x00,0x01,0x23,0x0c, +0x00,0x01,0x23,0x24,0x00,0x01,0x23,0x48,0x00,0x01,0x23,0x7c,0x00,0x01,0x23,0x94,0x00,0x01,0x25,0xa8,0x00,0x01,0x26,0x8c,0x00,0x01,0x26,0xb0,0x00,0x01,0x26,0xd4,0x00,0x01,0x26,0xec,0x00,0x01,0x27,0x10,0x00,0x01,0x27,0x28,0x00,0x01,0x27,0x48,0x00,0x01,0x27,0xc4,0x00,0x01,0x28,0x70,0x00,0x01,0x28,0x88,0x00,0x01,0x28,0xa0, +0x00,0x01,0x28,0xb8,0x00,0x01,0x28,0xd8,0x00,0x01,0x2a,0x04,0x00,0x01,0x2a,0x30,0x00,0x01,0x2a,0x48,0x00,0x01,0x2a,0x6c,0x00,0x01,0x2b,0x50,0x00,0x01,0x2c,0xe8,0x00,0x01,0x2d,0xc0,0x00,0x01,0x2f,0x0c,0x00,0x01,0x30,0x54,0x00,0x01,0x32,0x24,0x00,0x01,0x33,0x30,0x00,0x01,0x34,0xa8,0x00,0x01,0x36,0x88,0x00,0x01,0x37,0xe0, +0x00,0x01,0x38,0x98,0x00,0x01,0x39,0x88,0x00,0x01,0x39,0xac,0x00,0x01,0x39,0xe0,0x00,0x01,0x3a,0x48,0x00,0x01,0x3a,0xb0,0x00,0x01,0x3b,0x1c,0x00,0x01,0x3b,0x34,0x00,0x01,0x3b,0xb8,0x00,0x01,0x3b,0xd8,0x00,0x01,0x3c,0x28,0x00,0x01,0x3c,0x78,0x00,0x01,0x3c,0xe0,0x00,0x01,0x3d,0x18,0x00,0x01,0x3d,0xc0,0x00,0x01,0x3e,0x94, +0x00,0x01,0x3e,0xdc,0x00,0x01,0x3f,0x50,0x00,0x01,0x3f,0xb0,0x00,0x01,0x3f,0xf8,0x00,0x01,0x40,0x5c,0x00,0x01,0x40,0xbc,0x00,0x01,0x40,0xdc,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x40,0xec,0x00,0x01,0x41,0xc4,0x00,0x01,0x42,0x78, +0x00,0x01,0x43,0x68,0x00,0x01,0x44,0x40,0x00,0x01,0x45,0x5c,0x00,0x01,0x46,0x2c,0x00,0x01,0x46,0xa8,0x00,0x01,0x47,0x94,0x00,0x01,0x48,0x30,0x00,0x01,0x48,0xe8,0x00,0x01,0x49,0x68,0x00,0x01,0x4a,0x00,0x00,0x01,0x4a,0xa8,0x00,0x01,0x4b,0x68,0x00,0x01,0x4c,0x48,0x00,0x01,0x4c,0xf0,0x00,0x01,0x4d,0x8c,0x00,0x01,0x4d,0xd4, +0x00,0x01,0x4d,0xf0,0x00,0x01,0x4e,0xa8,0x00,0x01,0x4f,0x74,0x00,0x01,0x50,0x7c,0x00,0x01,0x50,0xd4,0x00,0x01,0x51,0x08,0x00,0x01,0x51,0x64,0x00,0x01,0x51,0x98,0x00,0x01,0x51,0xc8,0x00,0x01,0x51,0xd8,0x00,0x01,0x52,0x34,0x00,0x01,0x52,0xa0,0x00,0x01,0x53,0x5c,0x00,0x01,0x54,0x08,0x00,0x01,0x54,0x94,0x00,0x01,0x55,0x10, +0x00,0x01,0x55,0xbc,0x00,0x01,0x55,0xec,0x00,0x01,0x56,0x44,0x00,0x01,0x56,0xb8,0x00,0x01,0x57,0x5c,0x00,0x01,0x57,0xf8,0x00,0x01,0x58,0x58,0x00,0x01,0x58,0xc0,0x00,0x01,0x59,0xb8,0x00,0x01,0x5a,0x50,0x00,0x01,0x5a,0xa0,0x00,0x01,0x5b,0x2c,0x00,0x01,0x5b,0x7c,0x00,0x01,0x5b,0xf8,0x00,0x01,0x5c,0x48,0x00,0x01,0x5c,0x90, +0x00,0x01,0x5c,0xc4,0x00,0x01,0x5d,0x08,0x00,0x01,0x5d,0x4c,0x00,0x01,0x5e,0x04,0x00,0x01,0x5e,0xa4,0x00,0x01,0x5f,0x04,0x00,0x01,0x5f,0x68,0x00,0x01,0x5f,0xd0,0x00,0x01,0x60,0x60,0x00,0x01,0x61,0x00,0x00,0x01,0x61,0xc4,0x00,0x01,0x62,0x0c,0x00,0x01,0x62,0x58,0x00,0x01,0x62,0xdc,0x00,0x01,0x63,0x40,0x00,0x01,0x63,0xa0, +0x00,0x01,0x64,0xe8,0x00,0x01,0x66,0x2c,0x00,0x01,0x67,0x3c,0x00,0x01,0x67,0xc0,0x00,0x01,0x68,0x30,0x00,0x01,0x69,0xc0,0x00,0x01,0x6a,0xd4,0x00,0x01,0x6b,0xe4,0x00,0x01,0x6c,0xb0,0x00,0x01,0x6d,0x2c,0x00,0x01,0x6e,0x08,0x00,0x01,0x6f,0x24,0x00,0x01,0x6f,0xa8,0x00,0x01,0x70,0x84,0x00,0x01,0x71,0xa8,0x00,0x01,0x72,0x50, +0x00,0x01,0x72,0xfc,0x00,0x01,0x73,0x74,0x00,0x01,0x73,0x84,0x00,0x01,0x73,0xbc,0x00,0x01,0x74,0x58,0x00,0x01,0x74,0xb0,0x00,0x01,0x75,0x2c,0x00,0x01,0x75,0x68,0x00,0x01,0x75,0xa8,0x00,0x01,0x76,0x14,0x00,0x01,0x76,0x84,0x00,0x01,0x77,0x08,0x00,0x01,0x77,0x34,0x00,0x01,0x77,0x98,0x00,0x01,0x78,0x50,0x00,0x01,0x78,0xb0, +0x00,0x01,0x79,0x9c,0x00,0x01,0x7a,0x78,0x00,0x01,0x7a,0xd0,0x00,0x01,0x7b,0x28,0x00,0x01,0x7b,0x8c,0x00,0x01,0x7b,0xec,0x00,0x01,0x7c,0x50,0x00,0x01,0x7c,0x60,0x00,0x01,0x7c,0xb8,0x00,0x01,0x7d,0x28,0x00,0x01,0x7d,0x94,0x00,0x01,0x7e,0x48,0x00,0x01,0x7e,0x58,0x00,0x01,0x7e,0xa0,0x00,0x01,0x7e,0xd4,0x00,0x01,0x7f,0x10, +0x00,0x01,0x7f,0x54,0x00,0x01,0x7f,0x64,0x00,0x01,0x7f,0xa0,0x00,0x01,0x7f,0xdc,0x00,0x01,0x81,0x28,0x00,0x01,0x82,0xd8,0x00,0x01,0x83,0x30,0x00,0x01,0x83,0x88,0x00,0x01,0x83,0xfc,0x00,0x01,0x84,0x94,0x00,0x01,0x85,0x68,0x00,0x01,0x86,0x88,0x00,0x01,0x86,0x98,0x00,0x01,0x87,0x28,0x00,0x01,0x87,0xb4,0x00,0x01,0x88,0x94, +0x00,0x01,0x88,0xe4,0x00,0x01,0x89,0x58,0x00,0x01,0x89,0xa0,0x00,0x01,0x89,0xe4,0x00,0x01,0x89,0xf4,0x00,0x01,0x8a,0x30,0x00,0x01,0x8a,0x6c,0x00,0x01,0x8a,0xb8,0x00,0x01,0x8b,0x70,0x00,0x01,0x8b,0xec,0x00,0x01,0x8b,0xfc,0x00,0x01,0x8c,0x48,0x00,0x01,0x8c,0x90,0x00,0x01,0x8d,0x14,0x00,0x01,0x8d,0x84,0x00,0x01,0x8e,0x00, +0x00,0x01,0x8e,0x98,0x00,0x01,0x8e,0xe4,0x00,0x01,0x8f,0x50,0x00,0x01,0x8f,0x98,0x00,0x01,0x90,0x04,0x00,0x01,0x90,0x48,0x00,0x01,0x90,0xdc,0x00,0x01,0x91,0x4c,0x00,0x01,0x91,0xc0,0x00,0x01,0x92,0x48,0x00,0x01,0x92,0xcc,0x00,0x01,0x93,0x38,0x00,0x01,0x93,0x80,0x00,0x01,0x93,0xc8,0x00,0x01,0x94,0xb8,0x00,0x01,0x95,0x60, +0x00,0x01,0x97,0x44,0x00,0x01,0x97,0xb8,0x00,0x01,0x98,0x68,0x00,0x01,0x98,0xac,0x00,0x01,0x99,0x2c,0x00,0x01,0x9a,0x64,0x00,0x01,0x9b,0x18,0x00,0x01,0x9b,0xec,0x00,0x01,0x9c,0xa0,0x00,0x01,0x9d,0x54,0x00,0x01,0x9e,0x3c,0x00,0x01,0x9f,0x00,0x00,0x01,0x9f,0xd0,0x00,0x01,0xa0,0x24,0x00,0x01,0xa0,0x88,0x00,0x01,0xa0,0xf4, +0x00,0x01,0xa1,0x54,0x00,0x01,0xa1,0xa8,0x00,0x01,0xa2,0x10,0x00,0x01,0xa2,0x74,0x00,0x01,0xa2,0xd4,0x00,0x01,0xa3,0x60,0x00,0x01,0xa3,0xc4,0x00,0x01,0xa4,0xa0,0x00,0x01,0xa5,0x8c,0x00,0x01,0xa6,0x34,0x00,0x01,0xa6,0xd4,0x00,0x01,0xa7,0x6c,0x00,0x01,0xa8,0x00,0x00,0x01,0xa8,0x64,0x00,0x01,0xa8,0xf8,0x00,0x01,0xa9,0x58, +0x00,0x01,0xa9,0xd0,0x00,0x01,0xaa,0x6c,0x00,0x01,0xab,0x00,0x00,0x01,0xab,0x38,0x00,0x01,0xab,0xf0,0x00,0x01,0xac,0x48,0x00,0x01,0xac,0xec,0x00,0x01,0xad,0x38,0x00,0x01,0xad,0xd4,0x00,0x01,0xae,0x98,0x00,0x01,0xaf,0x54,0x00,0x01,0xaf,0xd0,0x00,0x01,0xb0,0x48,0x00,0x01,0xb0,0x70,0x00,0x01,0xb0,0xe8,0x00,0x01,0xb1,0x64, +0x00,0x01,0xb2,0x18,0x00,0x01,0xb2,0x60,0x00,0x01,0xb2,0xa8,0x00,0x01,0xb3,0x30,0x00,0x01,0xb3,0xb8,0x00,0x01,0xb4,0x7c,0x00,0x01,0xb4,0xb4,0x00,0x01,0xb4,0xe8,0x00,0x01,0xb5,0x1c,0x00,0x01,0xb5,0x50,0x00,0x01,0xb5,0x84,0x00,0x01,0xb5,0xb8,0x00,0x01,0xb5,0xec,0x00,0x01,0xb6,0x20,0x00,0x01,0xb6,0x54,0x00,0x01,0xb6,0x8c, +0x00,0x01,0xb6,0xbc,0x00,0x01,0xb6,0xec,0x00,0x01,0xb7,0x1c,0x00,0x01,0xb7,0x50,0x00,0x01,0xb7,0x84,0x00,0x01,0xb7,0xb8,0x00,0x01,0xb7,0xec,0x00,0x01,0xb8,0x20,0x00,0x01,0xb8,0x54,0x00,0x01,0xb8,0x88,0x00,0x01,0xb8,0xbc,0x00,0x01,0xb8,0xf0,0x00,0x01,0xb9,0x30,0x00,0x01,0xb9,0x84,0x00,0x01,0xb9,0xc4,0x00,0x01,0xba,0x04, +0x00,0x01,0xba,0x38,0x00,0x01,0xba,0x90,0x00,0x01,0xba,0xd0,0x00,0x01,0xbd,0x1c,0x00,0x01,0xc1,0xbc,0x00,0x01,0xc4,0x08,0x00,0x01,0xc4,0x58,0x00,0x01,0xc4,0xec,0x00,0x01,0xc5,0x80,0x00,0x01,0xc6,0x1c,0x00,0x01,0xc6,0x98,0x00,0x01,0xc7,0x4c,0x00,0x01,0xc8,0x80,0x00,0x01,0xc9,0x58,0x00,0x01,0xca,0x64,0x00,0x01,0xca,0xe0, +0x00,0x01,0xcb,0x08,0x00,0x01,0xcb,0x40,0x00,0x01,0xcb,0x88,0x00,0x01,0xcc,0x10,0x00,0x01,0xcc,0x40,0x00,0x01,0xcc,0x94,0x00,0x01,0xcc,0xc8,0x00,0x01,0xcd,0x18,0x00,0x01,0xcd,0x6c,0x00,0x01,0xcd,0xc0,0x00,0x01,0xce,0x10,0x00,0x01,0xce,0x64,0x00,0x01,0xce,0xc8,0x00,0x01,0xce,0xf8,0x00,0x01,0xcf,0x18,0x00,0x01,0xcf,0x3c, +0x00,0x01,0xcf,0x60,0x00,0x01,0xcf,0xac,0x00,0x01,0xcf,0xdc,0x00,0x01,0xd0,0x1c,0x00,0x01,0xd0,0x50,0x00,0x01,0xd0,0x70,0x00,0x01,0xd0,0x90,0x00,0x01,0xd0,0xc0,0x00,0x01,0xd0,0xec,0x00,0x01,0xd1,0x1c,0x00,0x01,0xd1,0x3c,0x00,0x01,0xd1,0x64,0x00,0x01,0xd1,0x84,0x00,0x01,0xd1,0xcc,0x00,0x01,0xd1,0xf8,0x00,0x01,0xd2,0x34, +0x00,0x01,0xd2,0x60,0x00,0x01,0xd2,0xe4,0x00,0x01,0xd3,0x50,0x00,0x01,0xd3,0xbc,0x00,0x01,0xd4,0x14,0x00,0x01,0xd4,0x94,0x00,0x01,0xd4,0xfc,0x00,0x01,0xd5,0x64,0x00,0x01,0xd5,0xb0,0x00,0x01,0xd6,0x60,0x00,0x01,0xd6,0xec,0x00,0x01,0xd7,0x74,0x00,0x01,0xd7,0xcc,0x00,0x01,0xd8,0x20,0x00,0x01,0xd8,0x74,0x00,0x01,0xd8,0xc0, +0x00,0x01,0xd9,0x04,0x00,0x01,0xd9,0x5c,0x00,0x01,0xd9,0xa0,0x00,0x01,0xd9,0xf8,0x00,0x01,0xda,0x58,0x00,0x01,0xda,0xa4,0x00,0x01,0xda,0xe8,0x00,0x01,0xdb,0x40,0x00,0x01,0xdb,0x84,0x00,0x01,0xdb,0xdc,0x00,0x01,0xdc,0x3c,0x00,0x01,0xdc,0xa8,0x00,0x01,0xdd,0x00,0x00,0x01,0xdd,0x58,0x00,0x01,0xdd,0xa8,0x00,0x01,0xdd,0xfc, +0x00,0x01,0xde,0x30,0x00,0x01,0xde,0x7c,0x00,0x01,0xde,0xc0,0x00,0x01,0xdf,0x04,0x00,0x01,0xdf,0x3c,0x00,0x01,0xdf,0x74,0x00,0x01,0xdf,0xc0,0x00,0x01,0xe0,0x3c,0x00,0x01,0xe0,0xcc,0x00,0x01,0xe1,0x04,0x00,0x01,0xe1,0x68,0x00,0x01,0xe1,0xdc,0x00,0x01,0xe2,0x10,0x00,0x01,0xe2,0x5c,0x00,0x01,0xe2,0xa0,0x00,0x01,0xe2,0xe4, +0x00,0x01,0xe3,0x28,0x00,0x01,0xe3,0x5c,0x00,0x01,0xe3,0xb8,0x00,0x01,0xe4,0x08,0x00,0x01,0xe4,0x58,0x00,0x01,0xe4,0xc0,0x00,0x01,0xe5,0x18,0x00,0x01,0xe5,0x70,0x00,0x01,0xe5,0xd4,0x00,0x01,0xe6,0x2c,0x00,0x01,0xe6,0x80,0x00,0x01,0xe6,0xe0,0x00,0x01,0xe7,0x48,0x00,0x01,0xe7,0xa0,0x00,0x01,0xe7,0xf8,0x00,0x01,0xe8,0x50, +0x00,0x01,0xe8,0xac,0x00,0x01,0xe9,0x18,0x00,0x01,0xe9,0x58,0x00,0x01,0xe9,0x98,0x00,0x01,0xe9,0xe8,0x00,0x01,0xea,0x3c,0x00,0x01,0xea,0x70,0x00,0x01,0xea,0xbc,0x00,0x01,0xeb,0x00,0x00,0x01,0xeb,0x44,0x00,0x01,0xeb,0x7c,0x00,0x01,0xeb,0xb4,0x00,0x01,0xec,0x00,0x00,0x01,0xec,0x7c,0x00,0x01,0xed,0x0c,0x00,0x01,0xed,0x44, +0x00,0x01,0xed,0xa8,0x00,0x01,0xee,0x1c,0x00,0x01,0xee,0x50,0x00,0x01,0xee,0x94,0x00,0x01,0xee,0xe0,0x00,0x01,0xef,0x24,0x00,0x01,0xef,0x68,0x00,0x01,0xef,0x9c,0x00,0x01,0xef,0xfc,0x00,0x01,0xf0,0x4c,0x00,0x01,0xf0,0x9c,0x00,0x01,0xf1,0x04,0x00,0x01,0xf1,0x5c,0x00,0x01,0xf1,0xb4,0x00,0x01,0xf2,0x18,0x00,0x01,0xf2,0x70, +0x00,0x01,0xf2,0xc4,0x00,0x01,0xf3,0x24,0x00,0x01,0xf3,0x8c,0x00,0x01,0xf3,0xe4,0x00,0x01,0xf4,0x38,0x00,0x01,0xf4,0x8c,0x00,0x01,0xf4,0xec,0x00,0x01,0xf5,0x38,0x00,0x01,0xf5,0x90,0x00,0x01,0xf5,0xd4,0x00,0x01,0xf6,0x2c,0x00,0x01,0xf6,0x70,0x00,0x01,0xf6,0xd0,0x00,0x01,0xf7,0x1c,0x00,0x01,0xf7,0x74,0x00,0x01,0xf7,0xb8, +0x00,0x01,0xf8,0x10,0x00,0x01,0xf8,0x54,0x00,0x01,0xf8,0xbc,0x00,0x01,0xf9,0x14,0x00,0x01,0xf9,0x6c,0x00,0x01,0xf9,0xe4,0x00,0x01,0xfa,0x48,0x00,0x01,0xfa,0xb0,0x00,0x01,0xfb,0x0c,0x00,0x01,0xfb,0x5c,0x00,0x01,0xfb,0xac,0x00,0x01,0xfc,0x0c,0x00,0x01,0xfc,0x5c,0x00,0x01,0xfc,0xac,0x00,0x01,0xfd,0x30,0x00,0x01,0xfd,0x94, +0x00,0x01,0xfd,0xf8,0x00,0x01,0xfe,0x54,0x00,0x01,0xff,0x0c,0x00,0x01,0xff,0xe0,0x00,0x02,0x00,0x40,0x00,0x02,0x00,0x58,0x00,0x02,0x01,0x48,0x00,0x02,0x02,0x3c,0x00,0x02,0x03,0x08,0x00,0x02,0x03,0xac,0x00,0x02,0x04,0x60,0x00,0x02,0x04,0xc0,0x00,0x02,0x05,0x7c,0x00,0x02,0x06,0x04,0x00,0x02,0x06,0x88,0x00,0x02,0x07,0x0c, +0x00,0x02,0x08,0x20,0x00,0x02,0x08,0x84,0x00,0x02,0x08,0x9c,0x00,0x02,0x09,0x14,0x00,0x02,0x09,0xd8,0x00,0x02,0x0a,0x3c,0x00,0x02,0x0a,0x98,0x00,0x02,0x0b,0x84,0x00,0x02,0x0b,0x9c,0x00,0x02,0x0b,0xac,0x00,0x02,0x0c,0x28,0x00,0x02,0x0d,0x00,0x00,0x02,0x0d,0x9c,0x00,0x02,0x0e,0x3c,0x00,0x02,0x0e,0xa8,0x00,0x02,0x0f,0x58, +0x00,0x02,0x10,0x24,0x00,0x02,0x10,0x78,0x00,0x02,0x10,0xe0,0x00,0x02,0x11,0xb0,0x00,0x02,0x12,0x64,0x00,0x02,0x13,0x10,0x00,0x02,0x13,0xc0,0x00,0x02,0x14,0x44,0x00,0x02,0x15,0x1c,0x00,0x02,0x15,0xc8,0x00,0x02,0x16,0x58,0x00,0x02,0x16,0xe8,0x00,0x02,0x17,0x80,0x00,0x02,0x17,0xa0,0x00,0x02,0x18,0x60,0x00,0x02,0x18,0xf4, +0x00,0x02,0x19,0xc4,0x00,0x02,0x1a,0xec,0x00,0x02,0x1b,0xac,0x00,0x02,0x1c,0x20,0x00,0x02,0x1c,0xd0,0x00,0x02,0x1d,0x6c,0x00,0x02,0x1d,0xf0,0x00,0x02,0x1e,0x54,0x00,0x02,0x1e,0xf0,0x00,0x02,0x1f,0x60,0x00,0x02,0x1f,0xf8,0x00,0x02,0x20,0x58,0x00,0x02,0x20,0xa8,0x00,0x02,0x21,0x54,0x00,0x02,0x22,0x4c,0x00,0x02,0x22,0x70, +0x00,0x02,0x22,0x88,0x00,0x02,0x23,0x4c,0x00,0x02,0x23,0xf4,0x00,0x02,0x24,0xbc,0x00,0x02,0x25,0x14,0x00,0x02,0x25,0x74,0x00,0x02,0x26,0x54,0x00,0x02,0x27,0x44,0x00,0x02,0x27,0xdc,0x00,0x02,0x28,0x20,0x00,0x02,0x28,0x4c,0x00,0x02,0x28,0x84,0x00,0x02,0x28,0xbc,0x00,0x02,0x28,0xf4,0x00,0x02,0x29,0xbc,0x00,0x02,0x2a,0xfc, +0x00,0x02,0x2b,0xdc,0x00,0x02,0x2d,0x04,0x00,0x02,0x2d,0x64,0x00,0x02,0x2e,0x78,0x00,0x02,0x2f,0x90,0x00,0x02,0x30,0x98,0x00,0x02,0x31,0x60,0x00,0x02,0x31,0xe8,0x00,0x02,0x32,0x08,0x00,0x02,0x32,0x38,0x00,0x02,0x32,0x68,0x00,0x02,0x32,0xc0,0x00,0x02,0x33,0x18,0x00,0x02,0x33,0xc8,0x00,0x02,0x34,0x40,0x00,0x02,0x35,0x5c, +0x00,0x02,0x36,0x18,0x00,0x02,0x36,0xe0,0x00,0x02,0x37,0x4c,0x00,0x02,0x37,0xfc,0x00,0x02,0x38,0xe4,0x00,0x02,0x39,0xe4,0x00,0x02,0x3a,0x20,0x00,0x02,0x3a,0x5c,0x00,0x02,0x3a,0xa0,0x00,0x02,0x3a,0xdc,0x00,0x02,0x3b,0x20,0x00,0x02,0x3b,0xd8,0x00,0x02,0x3c,0x74,0x00,0x02,0x3d,0x30,0x00,0x02,0x3d,0xe0,0x00,0x02,0x3f,0x0c, +0x00,0x02,0x3f,0xe8,0x00,0x02,0x40,0xc4,0x00,0x02,0x41,0x98,0x00,0x02,0x42,0x64,0x00,0x02,0x42,0xf4,0x00,0x02,0x43,0xd4,0x00,0x02,0x45,0x18,0x00,0x02,0x45,0xf4,0x00,0x02,0x46,0xf0,0x00,0x02,0x47,0x88,0x00,0x02,0x48,0xc0,0x00,0x02,0x49,0x50,0x00,0x02,0x4a,0x34,0x00,0x02,0x4a,0x8c,0x00,0x02,0x4b,0x3c,0x00,0x02,0x4b,0xbc, +0x00,0x02,0x4c,0x3c,0x00,0x02,0x4d,0x3c,0x00,0x02,0x4d,0xa0,0x00,0x02,0x4e,0x20,0x00,0x02,0x4e,0xa4,0x00,0x02,0x50,0x10,0x00,0x02,0x50,0xa8,0x00,0x02,0x51,0x28,0x00,0x02,0x51,0xe0,0x00,0x02,0x52,0x74,0x00,0x02,0x53,0x28,0x00,0x02,0x54,0x00,0x00,0x02,0x54,0xd8,0x00,0x02,0x55,0x74,0x00,0x02,0x55,0xc0,0x00,0x02,0x56,0x28, +0x00,0x02,0x56,0x90,0x00,0x02,0x57,0xb8,0x00,0x02,0x58,0xa8,0x00,0x02,0x59,0xa8,0x00,0x02,0x5a,0xd4,0x00,0x02,0x5b,0xe8,0x00,0x02,0x5c,0xec,0x00,0x02,0x5e,0x14,0x00,0x02,0x5f,0x54,0x00,0x02,0x60,0x64,0x00,0x02,0x61,0x00,0x00,0x02,0x61,0x84,0x00,0x02,0x62,0x88,0x00,0x02,0x63,0x10,0x00,0x02,0x63,0xbc,0x00,0x02,0x63,0xd0, +0x00,0x02,0x64,0x88,0x00,0x02,0x65,0x70,0x00,0x02,0x66,0x5c,0x00,0x02,0x67,0x68,0x00,0x02,0x68,0x80,0x00,0x02,0x6a,0x00,0x00,0x02,0x6a,0xc8,0x00,0x02,0x6b,0xcc,0x00,0x02,0x6d,0x9c,0x00,0x02,0x70,0x14,0x00,0x02,0x71,0x70,0x00,0x02,0x71,0xdc,0x00,0x02,0x72,0x54,0x00,0x02,0x73,0x14,0x00,0x02,0x73,0x78,0x00,0x02,0x73,0x90, +0x00,0x02,0x74,0x18,0x00,0x02,0x74,0x78,0x00,0x02,0x75,0x34,0x00,0x02,0x75,0xd8,0x00,0x02,0x76,0x78,0x00,0x02,0x77,0x00,0x00,0x02,0x77,0x98,0x00,0x02,0x78,0x1c,0x00,0x02,0x79,0x14,0x00,0x02,0x79,0xa8,0x00,0x02,0x7a,0x60,0x00,0x02,0x7a,0xf0,0x00,0x02,0x7b,0xcc,0x00,0x02,0x7c,0xe4,0x00,0x02,0x7d,0xbc,0x00,0x02,0x7e,0x14, +0x00,0x02,0x7e,0x88,0x00,0x02,0x7f,0x40,0x00,0x02,0x7f,0xf8,0x00,0x02,0x80,0xb0,0x00,0x02,0x81,0x4c,0x00,0x02,0x81,0xc8,0x00,0x02,0x82,0x30,0x00,0x02,0x82,0xc0,0x00,0x02,0x82,0xe4,0x00,0x02,0x83,0x08,0x00,0x02,0x83,0x58,0x00,0x02,0x83,0xfc,0x00,0x02,0x84,0x20,0x00,0x02,0x84,0xa0,0x00,0x02,0x85,0x38,0x00,0x02,0x85,0x58, +0x00,0x02,0x85,0xc4,0x00,0x02,0x86,0x30,0x00,0x02,0x86,0x98,0x00,0x02,0x87,0x08,0x00,0x02,0x87,0x78,0x00,0x02,0x87,0x9c,0x00,0x02,0x87,0xc8,0x00,0x02,0x88,0xa4,0x00,0x02,0x88,0xbc,0x00,0x02,0x88,0xdc,0x00,0x02,0x89,0x60,0x00,0x02,0x8a,0x00,0x00,0x02,0x8a,0xbc,0x00,0x02,0x8b,0x60,0x00,0x02,0x8c,0x68,0x00,0x02,0x8d,0x94, +0x00,0x02,0x8e,0x9c,0x00,0x02,0x8f,0x30,0x00,0x02,0x8f,0xf4,0x00,0x02,0x90,0x44,0x00,0x02,0x90,0xc8,0x00,0x02,0x91,0x6c,0x00,0x02,0x92,0x34,0x00,0x02,0x92,0xfc,0x00,0x02,0x93,0x8c,0x00,0x02,0x93,0xe4,0x00,0x02,0x93,0xfc,0x00,0x02,0x94,0x7c,0x00,0x02,0x95,0x14,0x00,0x02,0x95,0x34,0x00,0x02,0x96,0xb8,0x00,0x02,0x98,0x00, +0x00,0x02,0x99,0x80,0x00,0x02,0x9b,0x3c,0x00,0x02,0x9b,0xa8,0x00,0x02,0x9c,0x44,0x00,0x02,0x9d,0x0c,0x00,0x02,0x9e,0xb0,0x00,0x02,0x9f,0xf4,0x00,0x02,0xa0,0xfc,0x00,0x02,0xa2,0xec,0x00,0x02,0xa3,0x74,0x00,0x02,0xa3,0xf8,0x00,0x02,0xa4,0xa8,0x00,0x02,0xa5,0x20,0x00,0x02,0xa5,0xc0,0x00,0x02,0xa5,0xf8,0x00,0x02,0xa6,0x08, +0x00,0x02,0xa6,0x44,0x00,0x02,0xa6,0x9c,0x00,0x02,0xa6,0xb0,0x00,0x02,0xa6,0xec,0x00,0x02,0xa7,0x6c,0x00,0x02,0xa7,0xc0,0x00,0x02,0xa7,0xfc,0x00,0x02,0xa8,0x38,0x00,0x02,0xa8,0x94,0x00,0x02,0xa8,0xc8,0x00,0x02,0xa9,0x14,0x00,0x02,0xa9,0x60,0x00,0x02,0xa9,0xc4,0x00,0x02,0xaa,0x4c,0x00,0x02,0xab,0x04,0x00,0x02,0xab,0x44, +0x00,0x02,0xab,0xc8,0x00,0x02,0xac,0x14,0x00,0x02,0xac,0x50,0x00,0x02,0xac,0xc8,0x00,0x02,0xad,0x1c,0x00,0x02,0xad,0xa0,0x00,0x02,0xad,0xdc,0x00,0x02,0xae,0x50,0x00,0x02,0xae,0xb8,0x00,0x02,0xae,0xf8,0x00,0x02,0xaf,0x38,0x00,0x02,0xaf,0x78,0x00,0x02,0xaf,0x8c,0x00,0x02,0xaf,0xa0,0x00,0x02,0xaf,0xb4,0x00,0x02,0xaf,0xc8, +0x00,0x02,0xaf,0xdc,0x00,0x02,0xaf,0xf0,0x00,0x02,0xb0,0x04,0x00,0x02,0xb0,0x18,0x00,0x02,0xb0,0x2c,0x00,0x02,0xb0,0x40,0x00,0x02,0xb0,0x54,0x00,0x02,0xb0,0x68,0x00,0x02,0xb0,0x7c,0x00,0x02,0xb0,0x8c,0x00,0x02,0xb1,0x04,0x00,0x02,0xb1,0x50,0x00,0x02,0xb1,0x84,0x00,0x02,0xb1,0xb8,0x00,0x02,0xb2,0x0c,0x00,0x02,0xb2,0x50, +0x00,0x02,0xb2,0x94,0x00,0x02,0xb2,0xf0,0x00,0x02,0xb3,0x70,0x00,0x02,0xb4,0x20,0x00,0x02,0xb4,0x58,0x00,0x02,0xb4,0xd4,0x00,0x02,0xb5,0x18,0x00,0x02,0xb5,0x70,0x00,0x02,0xb5,0xac,0x00,0x02,0xb6,0x14,0x00,0x02,0xb6,0x60,0x00,0x02,0xb6,0xd4,0x00,0x02,0xb7,0x08,0x00,0x02,0xb7,0x94,0x00,0x02,0xb8,0x10,0x00,0x02,0xb8,0x6c, +0x00,0x02,0xb8,0xa4,0x00,0x02,0xb8,0xb8,0x00,0x02,0xb8,0xcc,0x00,0x02,0xb8,0xe0,0x00,0x02,0xb8,0xf4,0x00,0x02,0xb9,0x08,0x00,0x02,0xb9,0x1c,0x00,0x02,0xb9,0x30,0x00,0x02,0xb9,0x44,0x00,0x02,0xb9,0x58,0x00,0x02,0xb9,0x6c,0x00,0x02,0xb9,0x80,0x00,0x02,0xb9,0xbc,0x00,0x02,0xb9,0xf0,0x00,0x02,0xba,0xc0,0x00,0x02,0xbb,0x1c, +0x00,0x02,0xbb,0x98,0x00,0x02,0xbc,0x14,0x00,0x02,0xbc,0xe8,0x00,0x02,0xbd,0xec,0x00,0x02,0xbe,0x50,0x00,0x02,0xbe,0xc0,0x00,0x02,0xbf,0x80,0x00,0x02,0xc0,0x74,0x00,0x02,0xc0,0xf4,0x00,0x02,0xc1,0x74,0x00,0x02,0xc2,0x4c,0x00,0x02,0xc3,0x18,0x00,0x02,0xc3,0x7c,0x00,0x02,0xc3,0xec,0x00,0x02,0xc4,0xac,0x00,0x02,0xc5,0x68, +0x00,0x02,0xc5,0xec,0x00,0x02,0xc6,0x9c,0x00,0x02,0xc7,0x70,0x00,0x02,0xc7,0xa8,0x00,0x02,0xc7,0xf0,0x00,0x02,0xc8,0x30,0x00,0x02,0xc8,0x78,0x00,0x02,0xc9,0x24,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x02,0xc9,0x3c,0x00,0x03,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e, +0x09,0x04,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x25,0x01,0x21,0x13,0x21,0x11,0x5a,0x01,0xa4,0xfe,0x8e,0x01,0x2c, +0xfe,0xd4,0x14,0x01,0x2c,0x02,0xda,0xfd,0x26,0x6d,0x02,0x3b,0xfd,0x8a,0x02,0x3b,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x2c,0x40,0x29,0x0d,0x01,0x04,0x00,0x01,0x4c,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x68,0x00,0x00,0x00,0x38,0x4d,0x05,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x09, +0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x5b,0x30,0xdd,0x30,0x42,0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0xc2,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x00,0x27,0x06,0xbc,0x02,0x58, +0x00,0x00,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26,0x03,0xb6,0x00,0x27,0x06,0x95,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbd,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbe,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xbf,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, +0x03,0xb6,0x00,0x27,0x06,0x93,0x02,0x58,0x00,0x00,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x2b,0x02,0x26, +0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xd4,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0x93,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x32,0xff,0x35,0x02,0x49,0x02,0xda,0x00,0x16,0x00,0x1f,0x00,0x65,0x40,0x0a,0x1c,0x01,0x06,0x00,0x13,0x01,0x01,0x04,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1f,0x00,0x06,0x00,0x04,0x01, +0x06,0x04,0x68,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x1c,0x00,0x06,0x00,0x04,0x01,0x06,0x04,0x68,0x00,0x02,0x00,0x03,0x02,0x03,0x63,0x00,0x00,0x00,0x38,0x4d,0x07,0x05,0x02,0x01,0x01,0x39,0x01,0x4e,0x59,0x40,0x10,0x00,0x00,0x18,0x17, +0x00,0x16,0x00,0x16,0x16,0x21,0x25,0x11,0x11,0x08,0x09,0x1b,0x2b,0x33,0x13,0x33,0x13,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x27,0x23,0x07,0x13,0x33,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x32,0xbe,0x79,0xbd,0x11,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x21,0x29,0x30,0xdd,0x30,0x42, +0xb8,0x38,0x10,0x12,0x02,0x02,0x12,0x10,0x02,0xda,0xfd,0x26,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1b,0x36,0x1f,0xc0,0xc2,0x01,0x0e,0xe1,0x40,0x56,0x0d,0x0d,0x56,0x3f,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xe2,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32, +0x00,0x00,0x02,0x26,0x03,0xb1,0x02,0x26,0x00,0x01,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x00,0x02,0x00,0x03,0x08,0x02,0x03,0x67,0x00,0x08,0x00,0x06,0x04,0x08,0x06,0x67,0x09,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38, +0x4d,0x00,0x04,0x04,0x05,0x5f,0x0a,0x07,0x02,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x21,0x35,0x23,0x07,0x13,0x33,0x11,0x23,0x1e,0x91,0x01,0x8b,0xb6,0x9d,0x9d,0xb6,0xfe, +0xf4,0x8d,0x28,0x36,0x7f,0x38,0x02,0xda,0x52,0xe4,0x52,0xff,0x00,0x52,0xcb,0xcb,0x01,0x16,0x01,0x72,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x3a,0x03,0xb6,0x02,0x26,0x00,0x18,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x03,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x10,0x00,0x19,0x00,0x22,0x00,0x39,0x40,0x36, +0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x22,0x20,0x1c,0x1a,0x19,0x17,0x13,0x11,0x00,0x10,0x00,0x0f,0x21,0x07,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5d,0xcf,0x64,0x71,0x47,0x39,0x2b,0x41,0x25,0x73,0x64,0x86,0x76,0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x02,0xda,0x64,0x59,0x38,0x5a,0x0b,0x03,0x05,0x32,0x4d,0x2e,0x5e,0x6d,0x01, +0xa3,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00, +0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b, +0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26, +0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x5d,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x35,0x02,0x0a,0x02,0xe4,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00, +0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09, +0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x34,0x36,0x33, +0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd2,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x53,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x03,0x01,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb, +0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a,0x52,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x43,0x3e,0x61,0x71,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x03,0xb6,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c, +0xff,0xf6,0x02,0x0a,0x03,0xb0,0x02,0x26,0x00,0x1b,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0b,0x00,0x15,0x00,0x27,0x40,0x24,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x15,0x13, +0x0e,0x0c,0x00,0x0b,0x00,0x0a,0x21,0x05,0x09,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x5c,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x02,0xda,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41, +0x4a,0x00,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01,0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10, +0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01, +0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x21,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x00,0x02,0xda,0x00,0x0f,0x00,0x1d,0x00,0x37,0x40,0x34,0x06,0x01, +0x01,0x07,0x01,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x08,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x17,0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x11,0x11,0x09,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x11,0x14, +0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x23,0x15,0x33,0x15,0x23,0x5c,0x52,0x52,0xbd,0x47,0x67,0x39,0x39,0x67,0x47,0x63,0x63,0x42,0x4b,0x4b,0x42,0x63,0x6c,0x6c,0x01,0x4f,0x4b,0x01,0x40,0x36,0x62,0x43,0xfe,0xdd,0x43,0x63,0x36,0x50,0x4a,0x42,0x01,0x23,0x41,0x4a,0xf0,0x4b,0x00,0x00,0x00,0x01,0x00,0x64, +0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21, +0x15,0x21,0x11,0x21,0x15,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0x95,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x71, +0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x27,0x06,0x9e,0x02,0x62,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0xc1,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x30,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xfc,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, +0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb0,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x2b,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb6,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xd4,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0x93,0x02,0x26,0x00,0x25,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x35,0x02,0x0d,0x02,0xda,0x00,0x1b,0x00,0x6e,0x4b,0xb0,0x15,0x50,0x58,0x40,0x29,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f, +0x00,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11, +0x0a,0x09,0x1e,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x21,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x64,0x01,0xa4,0xfe,0xb5,0x01,0x28,0xfe,0xd8,0x01,0x4b,0x2f,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0xda,0x52,0xe2,0x50,0xfe,0xfc,0x52,0x1b,0x2d, +0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0xff,0xf6,0x02,0x24,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00, +0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x16,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x01,0x35,0x48,0x6d,0x3e,0x4e,0x3e,0x34,0x41,0x37,0x61,0x40,0x42,0x65,0x38,0x5a,0x4a,0x3b,0x38,0x46,0x47,0x39,0x57,0x56,0x43,0x53,0x53,0x43,0x41,0x54,0x01,0x5a,0x01,0x3d,0x6b,0x0a,0x35,0x5e,0x3e,0x47,0x67,0x0b,0x03, +0x0d,0x5b,0x3c,0x38,0x55,0x30,0x35,0x5e,0x3f,0x3a,0x48,0x41,0x35,0x36,0x44,0x50,0x4b,0x3c,0x3c,0x4b,0x48,0x3a,0x3e,0x5f,0x35,0x00,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x09, +0x00,0x29,0x40,0x26,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x5f,0x01,0xae,0xfe,0xaa,0x01,0x3c,0xfe,0xc6,0x02,0xda, +0x52,0xf2,0x52,0xfe,0xbc,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x06,0x02,0xe4,0x00,0x1f,0x00,0x3e,0x40,0x3b,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00, +0x1c,0x1b,0x1a,0x19,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x15,0x14,0x06,0x01,0x30,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b, +0x43,0x43,0x3b,0x3b,0x41,0x94,0xee,0x74,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x71,0x61,0x3e,0x43,0x42,0x3e,0xfe,0xb5,0x3e,0x44,0x44,0x3e,0x64,0x52,0xb6,0x61,0x71,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06, +0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb6,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0x10,0x02,0x06,0x02,0xe4,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x5c,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x06,0x03,0xb0,0x02,0x26,0x00,0x39,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x0b,0x00,0x27,0x40,0x24, +0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x5d,0x5a,0xea,0x5a,0x5a,0xea,0x02,0xda,0xfe,0xc8,0x01,0x38,0xfd,0x26,0x01, +0x50,0xfe,0xb0,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x13,0x00,0x17,0x00,0x3b,0x40,0x38,0x05,0x03,0x02,0x01,0x0b,0x06,0x02,0x00,0x0a,0x01,0x00,0x67,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x67,0x04,0x01,0x02,0x02,0x38,0x4d,0x0c,0x09,0x02,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x17,0x16,0x15,0x14,0x00,0x13, +0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x11,0x33,0x35,0x23,0x5d,0x53,0x53,0x5a,0xea,0x5a,0x53,0x53,0x5a,0xea,0xea,0xea,0x02,0x0d,0x4b,0x82,0x82,0x82,0x82,0x4b,0xfd,0xf3,0x01,0x50,0xfe, +0xb0,0x01,0xa2,0x6b,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x03,0xb6,0x02,0x26,0x00,0x40,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05, +0x05,0x39,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00, +0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, +0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb0,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x2b,0x01,0xef,0x02,0xda,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb6,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xd4,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0x93,0x02,0x26,0x00,0x43,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x35,0x01,0xef,0x02,0xda,0x00,0x1b,0x00,0x62,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x4d,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x3d,0x07,0x4e, +0x1b,0x40,0x20,0x00,0x06,0x00,0x07,0x06,0x07,0x63,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x00,0x00,0x05,0x5f,0x09,0x08,0x02,0x05,0x05,0x39,0x05,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x1b,0x00,0x1b,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15, +0x23,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x69,0x95,0x95,0x01,0x86,0x95,0x95,0xa2,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x02,0x36,0x52,0x52,0xfd,0xca,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x69, +0x00,0x00,0x01,0xef,0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x2b,0x40,0x28,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0c, +0x0b,0x08,0x06,0x04,0x03,0x00,0x0f,0x01,0x0f,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x0e,0x69,0x78,0x5a,0x47,0x40,0x40,0x47,0x5a,0x79,0x0a,0x76,0x66,0x43,0x49,0x49,0x43,0x02,0x08,0xfd,0xf8,0x66,0x76,0x00,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x02,0x77, +0x03,0xb6,0x02,0x26,0x00,0x4f,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0xee,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x38,0x4d,0x06,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c, +0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0xbf,0x67,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0x86,0x01,0x51,0xfe,0xaf,0xff,0xff,0x00,0x5c,0xff,0x10,0x02,0x30,0x02,0xda,0x02,0x26,0x00,0x51,0x00,0x00, +0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x82,0x5a,0x01,0x4a,0x02, +0xda,0xfd,0x78,0x52,0xff,0xff,0x00,0x75,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x91,0x01,0xe5,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x00,0x07,0x06,0x6d,0x01,0xf9,0x00,0x00,0xff,0xff,0x00,0x82,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26, +0x00,0x53,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x80,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x53,0x00,0x00,0x01,0x07,0x03,0x29,0x00,0xa5,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x2c,0x40,0x29, +0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x01,0x01,0x02,0x60,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x15,0x15,0x04,0x09,0x18,0x2b,0x33,0x11,0x07,0x35,0x37,0x11,0x33,0x11,0x37,0x15,0x07,0x11,0x21,0x15,0x82,0x6e,0x6e,0x5a,0xaa,0xaa,0x01,0x4a, +0x01,0x30,0x4a,0x50,0x4a,0x01,0x5a,0xfe,0xe3,0x73,0x50,0x73,0xfe,0xe5,0x52,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x0f,0x0c,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00, +0x00,0x13,0x00,0x13,0x16,0x11,0x12,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x11,0x48,0x85,0x5d,0x61,0x85,0x57,0x03,0x06,0x04,0x76,0x4e,0x71,0x08,0x06,0x02,0xda,0xfe,0xc4,0x01,0x3c,0xfd,0x26,0x01,0x59,0x31,0x7f,0x82,0x34,0xfe,0x87,0x01,0x70, +0x4a,0xb0,0x63,0xfe,0xa7,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x33,0x13,0x2e,0x02, +0x35,0x11,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x11,0x5a,0x78,0xdf,0x02,0x05,0x03,0x57,0x78,0xde,0x02,0x04,0x03,0x02,0xda,0xfd,0x8f,0x19,0x49,0x51,0x24,0x01,0x9a,0xfd,0x26,0x02,0x71,0x18,0x49,0x51,0x25,0xfe,0x66,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x91, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x10,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x4c,0x01,0xfe,0x02,0xda,0x00,0x19, +0x00,0x2f,0x40,0x2c,0x0f,0x06,0x05,0x03,0x01,0x02,0x01,0x4c,0x03,0x01,0x02,0x02,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x19,0x00,0x18,0x16,0x11,0x18,0x21,0x06,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x03,0x1e,0x02,0x15,0x11,0x23,0x11,0x33,0x13, +0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0xf0,0x41,0x35,0x3e,0xfc,0x02,0x04,0x03,0x57,0x78,0xdf,0x02,0x05,0x03,0x57,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x62,0x18,0x49,0x51,0x25,0xfe,0x66,0x02,0xda,0xfd,0xdb,0x19,0x49,0x52,0x24,0x01,0x4d,0xfd,0x35,0x58,0x6b,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26, +0x00,0x5a,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08, +0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe, +0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x67,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc0,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x27,0x06,0x9e,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x1c,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc1,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x26,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc2,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xfc,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0xc3,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x00,0x02,0xe4,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xd4,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0xf6,0x02,0x12, +0x03,0x2a,0x00,0x15,0x00,0x23,0x00,0x3e,0x40,0x3b,0x09,0x01,0x04,0x01,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x0d,0x0c,0x08,0x06,0x00,0x15, +0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x36,0x35,0x35,0x33,0x15,0x14,0x07,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x50,0x35,0x16,0x4b,0x30,0x1e,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x0a, +0x72,0x6a,0x01,0x36,0x6a,0x72,0x26,0x07,0x1a,0x4b,0x50,0x3a,0x19,0x33,0x4b,0xfe,0xc9,0x6a,0x72,0x51,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x2b,0x02,0x12, +0x03,0x2a,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb6,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xd4,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x12,0x03,0xb1,0x02,0x26,0x00,0x6d,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0x93,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e, +0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x1c,0x1a,0x0e,0x0c,0x07,0x05,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35, +0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x72,0x72,0x62,0x62,0x72,0x2b,0x27,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0x9d,0x3b,0x3f,0x3f, +0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x3b,0x5a,0x1a,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x12,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00,0x00,0x03,0x00,0x23,0xff,0xd8,0x02,0x35,0x02,0xee,0x00,0x15,0x00,0x1c,0x00,0x23,0x00,0x75,0x40,0x13, +0x09,0x01,0x04,0x00,0x22,0x21,0x18,0x17,0x0c,0x01,0x06,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x01,0x01,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x1b,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x06, +0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x1e,0x1d,0x00,0x00,0x1d,0x23,0x1e,0x23,0x1b,0x19,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07, +0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x27,0x07,0x13,0x11,0x13,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x03,0x16,0x23,0x4c,0x17,0x72,0x62,0x5c,0x38,0x21,0x54,0x46,0x11,0x72,0x62,0x55,0x37,0x29,0x3b,0xe0,0x1f,0x47,0x3a,0x40,0x7a,0x3b,0x3f,0xda,0x20,0x28,0x86,0x2d,0x3d,0x01,0x4a,0x62,0x70,0x31,0x3b,0x7d,0x29,0x35,0xfe, +0xb5,0x62,0x70,0x2b,0x49,0x02,0x3a,0xfe,0xc3,0x01,0x8d,0x31,0x43,0xfd,0xf7,0x43,0x3e,0x01,0x29,0xfe,0x7e,0x28,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0xd8,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0x76,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00, +0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x28,0xff,0xf6,0x02,0x3f,0x02,0xe4,0x00,0x1d,0x00,0x2b,0x00,0xe3,0x4b,0xb0,0x15,0x50,0x58,0x40,0x0a,0x0b,0x01,0x03,0x01,0x19,0x01,0x00,0x06,0x02,0x4c,0x1b,0x40,0x0a,0x0b,0x01,0x03,0x09,0x19,0x01,0x08,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x23,0x00,0x04, +0x00,0x05,0x06,0x04,0x05,0x67,0x09,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x0b,0x08,0x02,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x38,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x01, +0x61,0x02,0x01,0x01,0x01,0x3e,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x04,0x00,0x05,0x06,0x04,0x05,0x67,0x00,0x09,0x09,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d, +0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x1f,0x1e,0x01,0x00,0x26,0x24,0x1e,0x2b,0x1f,0x2b,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1d,0x01,0x1d,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x11, +0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x21,0x35,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0xc3,0x48,0x53,0x53,0x48,0x23,0x2e,0x1a,0x03,0x05,0x01,0x09,0xb1,0x98,0x98,0xb1,0xfe,0xf7,0x05,0x03,0x1a,0x2e,0x0a,0x2a,0x30,0x30, +0x2a,0x2a,0x30,0x30,0x0a,0x66,0x58,0x01,0x72,0x58,0x66,0x1d,0x29,0x14,0x50,0x52,0xe6,0x52,0xfe,0x52,0x50,0x13,0x2a,0x1d,0x50,0x3b,0x33,0x01,0x72,0x33,0x3b,0x3b,0x33,0xfe,0x8e,0x33,0x3b,0x00,0x00,0x00,0x00,0x02,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x03,0x00,0x01,0x02,0x03, +0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xeb,0x66,0x79,0x79,0x66,0x91,0x91,0x3b, +0x47,0x47,0x3b,0x91,0x02,0xda,0x75,0x62,0x62,0x75,0xfe,0xd4,0x01,0x7d,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x67,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x67,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x03,0x03,0x39, +0x03,0x4e,0x00,0x00,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x25,0x21,0x11,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5a,0x5a,0x99,0x42,0x61,0x36,0x76,0x63,0x99,0x99,0x3a,0x42,0x43,0x39,0x99,0x02,0xda,0x96,0x32,0x5a,0x3c,0x5b, +0x6d,0xb4,0x01,0x04,0x41,0x37,0x38,0x40,0x00,0x02,0x00,0x50,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x13,0x00,0x21,0x00,0x38,0x40,0x35,0x12,0x01,0x00,0x03,0x01,0x4c,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x05,0x01,0x02,0x02,0x3d,0x02,0x4e,0x15,0x14,0x00,0x00, +0x1c,0x1a,0x14,0x21,0x15,0x21,0x00,0x13,0x00,0x13,0x25,0x23,0x07,0x09,0x18,0x2b,0x05,0x27,0x22,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x01,0xa6,0x67,0x04,0x0a,0x05,0x65,0x77,0x77,0x65,0x65,0x77,0x3a,0x35, +0x75,0xe2,0x3b,0x47,0x47,0x3b,0x3b,0x47,0x47,0xb4,0xab,0x01,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x43,0x64,0x19,0xc1,0xfa,0x4a,0x3d,0x01,0x40,0x3e,0x49,0x49,0x3e,0xfe,0xc0,0x3d,0x4a,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x04,0x01,0x4c, +0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x03,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x17,0x21,0x07,0x09,0x19,0x2b,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x11,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x5d,0xe1,0x41,0x62,0x36,0x4c,0x3f,0x95,0x63,0x8f,0x79,0x88,0x38,0x44,0x44,0x38,0x88,0x02,0xda,0x35,0x5e,0x3f,0x4a,0x6a,0x15,0xfe,0xc1,0x01,0x36,0xfe,0xca,0x01,0x87,0x47,0x3a,0x3b,0x46,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26,0x00,0x7d,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x00,0x29,0x00,0x3b,0x40,0x38, +0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x1a,0x19,0x16,0x14,0x08,0x06,0x04,0x03,0x00,0x29,0x01,0x29,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16, +0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x01,0x30,0x6a,0x7e,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49, +0x51,0x7a,0x0a,0x70,0x62,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x48, +0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x35,0x02,0x10,0x02,0xe4,0x00,0x3d,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03,0x36,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03, +0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07, +0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3e,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x3d,0x00,0x3c,0x1b,0x22,0x13,0x2c,0x22,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xcd,0x46,0x16,0x1b,0x37,0x32,0x18,0x4f,0x5c,0x5a,0x4e,0x40, +0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x34,0x5e,0x3d,0x3e,0x5f,0x36,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x7a,0x66,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x40,0x0f,0x6b,0x53,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x3a,0x58,0x31,0x31,0x57,0x39,0x32,0x3f,0x3f,0x32, +0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x60,0x72,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0x10,0x02,0x10,0x02,0xe4,0x02,0x26,0x00,0x81,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x20,0x00,0x38,0x40,0x35,0x1a,0x07,0x02,0x01,0x05,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x07,0x06,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x20,0x00,0x20,0x22,0x24,0x21,0x25, +0x12,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x22,0x06,0x15,0x11,0x5c,0x34,0x5f,0x3f,0xe3,0xa2,0x4e,0x5f,0x36,0x60,0x41,0x43,0x39,0x3c,0x46,0x46,0x3c,0x2d,0xa4,0x84,0x37,0x41,0x02,0x0c,0x3e, +0x5d,0x33,0x58,0xdb,0x05,0x70,0x5b,0x40,0x61,0x36,0x52,0x48,0x3d,0x3c,0x46,0x4e,0xe1,0x42,0x3a,0xfd,0xf4,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00, +0x04,0x04,0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11, +0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4a,0x3d,0x3b,0x3a,0x3e,0x5a,0x70,0x62,0x64,0x6e,0x70,0x62,0x3e,0x3a,0xf0,0x3b,0x0a,0x73,0x5f,0xc8,0x83,0x3e,0x43,0x44,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x5f,0x73,0x4b,0x46,0x41,0x82,0x82,0x41,0x46,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x21, +0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x02,0x88,0x52,0x52,0xfd,0x78,0x00,0x00,0x00,0x01,0x00,0x37, +0x00,0x00,0x02,0x21,0x02,0xda,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x05,0x01,0x01,0x06,0x01,0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x23, +0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0xff,0x91,0x91,0xc8,0x01,0xea,0xc8,0x91,0x91,0x01,0x27,0x4b,0x01,0x16,0x52,0x52,0xfe,0xea,0x4b,0xfe,0xd9,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x03,0xb6,0x02,0x26,0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x35,0x02,0x21, +0x02,0xda,0x00,0x19,0x00,0x6f,0x40,0x0b,0x08,0x01,0x05,0x06,0x01,0x4c,0x07,0x01,0x06,0x01,0x4b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x24,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, +0x21,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x04,0x00,0x03,0x04,0x03,0x63,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x21,0x28,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x07,0x1e,0x02, +0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0xff,0xc8,0x01,0xea,0xc8,0x0c,0x1a,0x38,0x26,0x42,0x36,0x55,0x46,0x16,0x1b,0x37,0x32,0x19,0x02,0x88,0x52,0x52,0xfd,0x78,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x37,0x17,0x0d,0x11,0x1a,0x45,0x00,0xff,0xff,0x00,0x37,0xff,0x10,0x02,0x21,0x02,0xda,0x02,0x26, +0x00,0x89,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22, +0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x5a,0x6b,0x0a,0x71,0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0xfd,0xee,0x62,0x70,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x91, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26, +0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0xda,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a, +0xff,0xf6,0x01,0xfe,0x03,0xd4,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0x48,0x00,0x1a,0x00,0x31,0x40,0x2e,0x17,0x01,0x02,0x01,0x01,0x4c,0x00,0x04,0x01,0x04,0x85,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00, +0x4e,0x01,0x00,0x13,0x12,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x11,0x14,0x06,0x01,0x2c,0x66,0x6c,0x5a,0x3b,0x3d,0x3c,0x3c,0x41,0x10,0x13,0x4b,0x2e,0x27,0x6b,0x0a,0x71, +0x61,0x02,0x12,0xfd,0xee,0x3c,0x46,0x46,0x3c,0x02,0x12,0x13,0x10,0x4b,0x50,0x27,0x31,0x06,0xfe,0x2e,0x62,0x70,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x53,0x03,0x48,0x02,0x26,0x00,0x96,0x00,0x00, +0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xb6,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53,0x03,0xd4,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x53, +0x03,0xb1,0x02,0x26,0x00,0x96,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0xb6,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x93,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0xda,0x00,0x20,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x63,0x04,0x01,0x02,0x02, +0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1f,0x1d,0x14,0x13,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x20,0x01,0x20,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15, +0x14,0x16,0x33,0x33,0x15,0x01,0x7b,0x37,0x43,0x38,0x0d,0x62,0x70,0x5a,0x3e,0x3a,0x3b,0x3d,0x5a,0x50,0x1d,0x21,0x1a,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x2e,0x36,0x70,0x62,0x02,0x12,0xfd,0xee,0x3e,0x43,0x43,0x3e,0x02,0x12,0xfd,0xee,0x79,0x36,0x18,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe, +0x03,0xe2,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x96,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xb1,0x02,0x26,0x00,0x8e,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01, +0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xee,0xbc,0x5c,0x7d,0x0d,0x11,0x04,0x04,0x13,0x0d,0x78,0x5d,0xbd,0x02,0xda,0xfe,0x0f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xf0,0xfd,0x26,0x00, +0x00,0x01,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x1e,0x00,0x26,0x40,0x23,0x1a,0x06,0x02,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, +0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x6b,0x57,0x53,0x39,0x04,0x04,0x01,0x02,0x07,0x04,0x48,0x61,0x42,0x04,0x08,0x02,0x02,0x05,0x04,0x3b,0x4f,0x59,0x71,0x42,0x04,0x04,0x02,0x02,0x04,0x05,0x47,0x02,0xda,0xfd,0xe4,0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0xe4, +0x21,0x47,0x15,0x15,0x47,0x21,0x02,0x1c,0xfd,0x26,0x02,0x26,0x22,0x41,0x12,0x12,0x41,0x22,0xfd,0xda,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x93, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb1,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0xb6,0x02,0x26,0x00,0xa2,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x17, +0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, +0x28,0xd2,0xc7,0x68,0x71,0x09,0x13,0x06,0x05,0x13,0x09,0x73,0x63,0xc7,0xd2,0x67,0x7d,0x09,0x13,0x05,0x05,0x13,0x09,0x7e,0x01,0x72,0x01,0x68,0xd8,0x11,0x27,0x0b,0x0b,0x27,0x11,0xd8,0xfe,0x9e,0xfe,0x88,0xe8,0x11,0x27,0x0c,0x0c,0x26,0x11,0xe9,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x0e,0x00,0x23,0x40,0x20, +0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18,0x12,0x04,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0xff,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x01,0x11,0x01, +0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0xfe,0xef,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x2b,0x02,0x35,0x02,0xda,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x9e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb6,0x02,0x26,0x00,0xa8,0x00,0x00, +0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xd4,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x99,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0x93,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, +0x03,0xb1,0x02,0x26,0x00,0xa8,0x00,0x00,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, +0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x55,0x01,0x49,0xfe,0xbc,0x01,0x9f,0xfe,0xb7,0x01,0x53,0x5a,0x02,0x2e,0x52,0x5a,0xfd,0xd2,0x52,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb6,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x03,0xb0,0x02,0x26,0x00,0xb1,0x00,0x00,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x19,0x00,0x00,0x02,0x3f,0x02,0xda,0x00,0x18,0x00,0x2d,0x40,0x2a, +0x17,0x06,0x02,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33, +0x03,0x23,0x03,0x03,0x62,0x49,0x53,0x30,0x03,0x03,0x01,0x02,0x04,0x07,0x4c,0x66,0x45,0x06,0x07,0x01,0x01,0x05,0x03,0x32,0x4f,0x4b,0x73,0x53,0x59,0x02,0xda,0xfd,0xe4,0x21,0x3d,0x15,0x15,0x3c,0x22,0x01,0x90,0xfe,0x70,0x22,0x3c,0x15,0x15,0x3d,0x21,0x02,0x1c,0xfd,0x26,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x00,0xff,0xff,0x00,0x19, +0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x93,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb1,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x8e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x19,0x00,0x00,0x02,0x3f,0x03,0xb6,0x02,0x26,0x00,0xb5,0x00,0x00,0x00,0x07,0x06,0x90,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x38,0x4d,0x05,0x03,0x04,0x03,0x01, +0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xbf,0xf9,0xf9,0x67,0xf0,0xfa,0xfe,0x2d,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x5d,0xff,0x10,0x02,0x30, +0x02,0xda,0x02,0x26,0x00,0xba,0x00,0x00,0x00,0x07,0x06,0xa0,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x4c,0x02,0x00,0x02,0xe4,0x00,0x18,0x00,0x26,0x00,0x3e,0x40,0x3b,0x12,0x04,0x02,0x02,0x03,0x01,0x4c,0x06,0x01,0x03,0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x02,0x02,0x00, +0x60,0x05,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1a,0x19,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x17,0x15,0x0c,0x0a,0x00,0x18,0x01,0x18,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22, +0x06,0x15,0x11,0x14,0x16,0x01,0x8b,0x44,0x52,0x4a,0x53,0x72,0x62,0x62,0x72,0x5e,0x53,0x21,0x1b,0x6e,0xcd,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xb4,0x4f,0x42,0x1e,0x0f,0x6e,0x5a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x60,0x70,0x0a,0x1b,0x1c,0x23,0x52,0xfb,0x43,0x3e,0x01,0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0x00, +0x00,0x02,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x1b,0x00,0x26,0x00,0x84,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x28,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08, +0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x05,0x05,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x26, +0x1d,0x26,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64,0x2e,0x52, +0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x59,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x64,0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb4,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x7a,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb5,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa2,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb6,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb7,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x76,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x27,0x06,0x78, +0x02,0x5d,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x26,0x03,0x84,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x02,0x2b,0x03,0xa2,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43, +0xff,0xf6,0x01,0xfc,0x03,0xa0,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x09,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0x2b,0x01,0xfc,0x02,0x30,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x78, +0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x11,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x39,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0xe9,0x02,0x26, +0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x43,0xff,0x35,0x02,0x31,0x02,0x30,0x00,0x2b,0x00,0x36,0x00,0xea,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x28,0x01,0x08,0x09,0x16,0x01,0x00,0x08,0x02,0x4c,0x1b,0x40,0x0b,0x28,0x01,0x08,0x09,0x01,0x4c,0x16,0x01,0x07,0x01,0x4b,0x59,0x4b,0xb0,0x15,0x50, +0x58,0x40,0x32,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2f,0x00,0x03,0x02, +0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x67,0x00, +0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x1f,0x2d,0x2c,0x01,0x00,0x32,0x30,0x2c,0x36,0x2d,0x36,0x27,0x26,0x21,0x1f,0x1e,0x1c,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x08,0x06,0x00,0x2b, +0x01,0x2b,0x0c,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x35,0x34,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x33,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xfc,0x55,0x64, +0x2e,0x52,0x35,0xaa,0x75,0x34,0x40,0x02,0x5a,0x05,0x6f,0x5c,0x64,0x6b,0x02,0x22,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x0d,0x02,0x08,0x56,0x31,0x42,0x4e,0xa0,0x2c,0x37,0x3d,0x0a,0x5f,0x4d,0x33,0x4c,0x2b,0x2b,0x6b,0x26,0x22,0x41,0x55,0x60,0x56,0xfe,0x86,0x1c,0x2c,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x64, +0x33,0x3b,0x4c,0x40,0x37,0x4d,0x35,0x2c,0x2e,0x35,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x44,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x02,0x26,0x00,0xbd,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x03,0x00,0x1f, +0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x2d,0x00,0x36,0x00,0x41,0x00,0xa9,0x40,0x0a,0x15,0x01,0x03,0x02,0x2b,0x01,0x07,0x08,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x72,0x00,0x08,0x06,0x07,0x07,0x08,0x72,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05, +0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02,0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x35,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x0a,0x01,0x01,0x0d,0x01,0x06,0x08,0x01,0x06,0x67,0x0b,0x01,0x02,0x02,0x04,0x61,0x05,0x01,0x04,0x04,0x41,0x4d,0x0f,0x0c,0x02, +0x07,0x07,0x00,0x62,0x09,0x0e,0x02,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x38,0x37,0x01,0x00,0x3d,0x3b,0x37,0x41,0x38,0x41,0x34,0x32,0x2f,0x2e,0x29,0x27,0x25,0x24,0x22,0x20,0x1d,0x1c,0x19,0x17,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x2d,0x01,0x2d,0x10,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0xb2,0x41,0x52,0x54,0x43,0x51,0x24, +0x20,0x1f,0x26,0x4f,0x4b,0x3c,0x31,0x44,0x05,0x05,0x41,0x2e,0x41,0x50,0xde,0x25,0x20,0x20,0x25,0x54,0x50,0x41,0x2b,0x41,0x08,0x08,0x46,0x75,0x8a,0x25,0x20,0x1f,0x26,0x98,0x21,0x27,0x4f,0x1f,0x26,0x29,0x0a,0x5e,0x4b,0x4a,0x5b,0x4b,0x29,0x2d,0x27,0x20,0x41,0x51,0x31,0x28,0x28,0x31,0x59,0x47,0x90,0x6a,0x28,0x2d,0x28,0x20, +0x41,0x52,0x32,0x28,0x28,0x32,0x01,0x4e,0x4c,0x27,0x2e,0x2e,0x27,0xfe,0xb1,0x2e,0x27,0x6a,0x34,0x2c,0x2b,0x34,0x00,0x00,0xff,0xff,0x00,0x1f,0xff,0xf6,0x02,0x35,0x03,0x11,0x02,0x26,0x00,0xd4,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x5c,0xff,0xf6,0x02,0x01,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b, +0xb6,0x0a,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x01,0x06,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x01, +0x01,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0f,0x0d,0x08,0x07,0x06,0x05,0x00,0x14,0x01,0x14,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x23,0x15,0x23,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06, +0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x4c,0x3e,0x50,0x07,0x01,0x5a,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x71,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0x0a,0x3d,0x36,0x69,0x02,0xda,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x4e,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46, +0x00,0x01,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x00,0x1b,0x00,0x3b,0x40,0x38,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x19,0x18,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08, +0x06,0x00,0x1b,0x01,0x1b,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x34,0x64,0x78,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x0a,0x70,0x62,0x96, +0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x6a,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x60,0x00,0x00, +0x00,0x01,0x00,0x58,0xff,0x35,0x02,0x0b,0x02,0x30,0x00,0x2f,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x05,0x28,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41, +0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x03,0x04,0x06,0x04,0x03,0x06,0x80,0x00,0x06,0x05,0x04,0x06,0x05,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x04,0x04,0x02,0x61,0x00,0x02, +0x02,0x41,0x4d,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00,0x2f,0x00,0x2e,0x12,0x12,0x25,0x22,0x12,0x27,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14, +0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd1,0x46,0x16,0x1b,0x37,0x32,0x18,0x49,0x56,0x78,0x64,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x03,0x02,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x41,0x10,0x6a, +0x52,0x96,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x58,0x66,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x11,0x02,0x26,0x00,0xd7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x60,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x03,0x09,0x02,0x26,0x00,0xd7,0x00,0x00, +0x00,0x07,0x06,0x69,0x02,0x60,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0xf6,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6b,0xb6,0x11,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00, +0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x17,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x08, +0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x63,0x62,0x53,0x3e,0x51,0x08,0x01,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0x0a,0x6e, +0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x3b,0x44,0xa0,0x43,0x3c,0x00,0x02,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0xdf,0x00,0x20,0x00,0x2c,0x00,0x4c,0x40,0x49,0x19,0x18,0x16,0x13,0x12,0x11,0x10,0x07,0x01,0x03,0x01,0x4c,0x17,0x01,0x03,0x4a,0x00,0x02,0x01,0x05,0x01,0x02, +0x05,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x6a,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x22,0x21,0x01,0x00,0x28,0x26,0x21,0x2c,0x22,0x2c,0x15,0x14,0x0c,0x0b,0x09,0x07,0x00,0x20,0x01,0x20,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17, +0x33,0x26,0x26,0x27,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2b,0x44,0x68,0x39,0x35,0x5f,0x3f,0x2c,0x3b,0x0b,0x0e,0x04,0x20,0x1c,0x41,0xa3,0x78,0x48,0x68,0x2c,0x94,0x6a,0x4e,0x2c,0x35,0x3a,0x67,0x46,0x40,0x4d, +0x4d,0x40,0x3e,0x4d,0x4d,0x0a,0x38,0x66,0x43,0x43,0x63,0x37,0x26,0x12,0x0a,0x35,0x25,0x5b,0x4c,0x50,0x38,0x63,0x40,0x45,0x50,0x31,0x71,0x40,0x8e,0x40,0x46,0x69,0x3a,0x50,0x50,0x41,0x41,0x50,0x50,0x41,0x41,0x50,0x00,0x00,0x00,0x03,0x00,0x3f,0xff,0xf6,0x02,0x5c,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x26,0x00,0x81,0xb6,0x11, +0x0a,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x28,0x09,0x01,0x05,0x05,0x02,0x5f,0x04,0x01,0x02,0x02,0x38,0x4d, +0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x39,0x4d,0x0a,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1a,0x19,0x15,0x15,0x01,0x00,0x21,0x1f,0x19,0x26,0x1a,0x26,0x15,0x18,0x15,0x18,0x17,0x16,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x09,0x16,0x2b,0x17, +0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x13,0x37,0x33,0x07,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xe4,0x4c,0x59,0x59,0x4c,0x39,0x47,0x06,0x03,0x02,0x5a,0x5a,0x01,0x06,0x47,0xdc,0x0f,0x54,0x18,0xfe,0xbe,0x32,0x37,0x37,0x32,0x31, +0x38,0x38,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x3e,0x35,0x7d,0xa0,0xfd,0x26,0x69,0x35,0x3e,0x02,0x30,0xb4,0xb4,0xfe,0x1e,0x43,0x3c,0xa0,0x3c,0x43,0x43,0x3c,0xa0,0x3c,0x43,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x83,0xb6,0x19,0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50, +0x58,0x40,0x25,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x07,0x0a,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x29,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x00,0x04,0x04, +0x38,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0b,0x01,0x08,0x08,0x00,0x61,0x0a,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1f,0x1e,0x1d,0x01,0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0c,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0xa6,0xa6,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x0a,0x6e, +0x5e,0x65,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfd,0xc6,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x5a,0x3e,0x46,0x44,0x40,0x5a,0x40,0x44,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06, +0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33, +0x06,0x06,0x03,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x2c,0x61,0x77,0x77,0x61,0x41,0x61,0x36,0xfe,0xa8,0x46,0x3a,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0x01,0x00,0x43,0x3d,0x3d,0x43,0x0a,0x75,0x67,0x82,0x67,0x75,0x34,0x5e,0x40,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0x01,0x4c,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00, +0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x71,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04, +0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x21,0x03,0x84,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x26,0x03,0xa2,0x02,0x26,0x00,0xe1,0x00,0x00, +0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0xa0,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, +0x03,0x09,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x30,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x11,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x39,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xe9,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x25,0x00,0x2e,0x00,0x84, +0x4b,0xb0,0x15,0x50,0x58,0x40,0x30,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x60,0x09,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2d,0x00,0x05,0x03,0x04,0x03,0x05, +0x04,0x80,0x00,0x07,0x00,0x03,0x05,0x07,0x03,0x67,0x00,0x06,0x09,0x01,0x00,0x06,0x00,0x64,0x00,0x08,0x08,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x19,0x01,0x00,0x2c,0x2a,0x27,0x26,0x24,0x22,0x19,0x18,0x17,0x15,0x12,0x11,0x0e,0x0c,0x07,0x05,0x00,0x25,0x01,0x25, +0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x14,0x16,0x33,0x32,0x37,0x33,0x06,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x01,0x75,0x37,0x43,0x3b,0x0a,0x61,0x73,0x73,0x61,0x62,0x72,0xfe, +0xb0,0x3f,0x3d,0x69,0x0f,0x5a,0x05,0x32,0x27,0x10,0x22,0x1e,0x1e,0x19,0x3c,0xfe,0xed,0xf8,0x3e,0x3e,0x3d,0x3f,0xcb,0x35,0x28,0x2f,0x35,0x73,0x5f,0x96,0x5f,0x73,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x2b,0x40,0x13,0x0d,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x02,0x0c,0x1d,0x41,0x46,0x46,0x41,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04, +0x03,0x0c,0x02,0x26,0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x15,0x00,0x1e,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x08,0x01,0x05,0x05, +0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1b,0x1a,0x16,0x1e,0x17,0x1e,0x10,0x0e,0x0c,0x0b,0x0a,0x08,0x05,0x04,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15, +0x14,0x16,0x01,0x2c,0x61,0x71,0x01,0x4c,0x3c,0x3e,0x67,0x0f,0x5a,0x09,0x70,0x57,0x62,0x70,0x70,0x62,0x3e,0x3c,0xf4,0x3d,0x0a,0x73,0x5f,0x61,0x35,0x41,0x45,0x4a,0x45,0x51,0x73,0x5f,0x96,0x5f,0x73,0x4b,0x46,0x41,0x1d,0x1d,0x41,0x46,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2d,0x40,0x2a, +0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0xd7,0xa0, +0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0x89,0x52,0x73,0x41,0x4b,0x52,0x3a,0x73,0x52,0xfe,0x77,0x00,0x02,0x00,0x58,0xff,0x4c,0x01,0xfb,0x02,0x30,0x00,0x1c,0x00,0x2a,0x00,0x6f,0xb6,0x15,0x07,0x02,0x05,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x20,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x06,0x06,0x02, +0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x24,0x08,0x01,0x05,0x00,0x01,0x00,0x05,0x01,0x69,0x00,0x03,0x03,0x3b,0x4d,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x00,0x00,0x04,0x5f,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x15,0x1e,0x1d,0x00, +0x00,0x25,0x23,0x1d,0x2a,0x1e,0x2a,0x00,0x1c,0x00,0x1b,0x14,0x25,0x27,0x21,0x09,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x14,0x06,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xa1,0x9b, +0x2f,0x36,0x02,0x03,0x08,0x4e,0x3b,0x55,0x62,0x62,0x55,0x3b,0x4e,0x08,0x02,0x59,0x67,0x59,0x11,0x38,0x40,0x40,0x38,0x39,0x3f,0x3f,0xb4,0x52,0x35,0x2d,0x32,0x5a,0x31,0x35,0x6c,0x5e,0x74,0x5e,0x6e,0x38,0x31,0x5f,0xfd,0xda,0x53,0x61,0x01,0x25,0x46,0x3e,0x69,0x3e,0x46,0x42,0x38,0x7d,0x38,0x42,0x00,0x00,0xff,0xff,0x00,0x58, +0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x5f,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6f, +0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x11,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x70,0x02,0x26,0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x55,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0x4c,0x01,0xfb,0x03,0x09,0x02,0x26, +0x00,0xf5,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x55,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x14,0x00,0x2d,0x40,0x2a,0x03,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x23, +0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c,0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0xda,0xfe,0xe3,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x63,0x3e,0x43,0x46,0x40,0xfe,0xa2,0x00,0xff,0xff,0x00,0x00, +0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x02,0x37,0x00,0x00,0xff,0xff,0xff,0xd4,0x00,0x00,0x01,0xfe,0x03,0xc5,0x02,0x26,0x00,0xfc,0x00,0x00,0x01,0x07,0x06,0x6e,0x01,0xb5,0x00,0xb4,0x00,0x08,0xb1,0x01,0x01,0xb0,0xb4,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, +0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x01,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33, +0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x55,0xc3,0xaf,0x01,0x09,0xb9,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x71,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x70, +0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x27,0x06,0x69,0x02,0x67,0x00,0x00,0x00,0x07,0x06,0x78, +0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x11,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x39,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x02,0xe9,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x67,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x35,0x02,0x2b,0x03,0x09,0x00,0x0b,0x00,0x25,0x00,0xb6,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0a,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09, +0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x3d,0x08,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x2b,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08, +0x3d,0x08,0x4e,0x1b,0x40,0x28,0x00,0x01,0x0a,0x01,0x00,0x04,0x01,0x00,0x69,0x00,0x07,0x00,0x08,0x07,0x08,0x63,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x05,0x01,0x02,0x02,0x06,0x5f,0x0b,0x09,0x02,0x06,0x06,0x39,0x06,0x4e,0x59,0x59,0x40,0x1f,0x0c,0x0c,0x01,0x00,0x0c,0x25,0x0c,0x25,0x20,0x1e,0x1d,0x1b,0x16,0x15, +0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x01,0x3b,0x21,0x26,0x26,0x21,0x21,0x26, +0x26,0xfe,0xf9,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x52,0x01,0x82,0x52,0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x0c,0x02,0x26, +0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x4c,0x01,0xb3,0x02,0x26,0x00,0x0d,0x00,0x25,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x00,0x00, +0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0c,0x11,0x13,0x21,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x23,0x5a,0x7c,0x3e,0x45,0xfe,0xfc,0x01,0x5e,0x78,0x65,0xb4,0x52,0x44,0x3d,0x01,0xb5,0x52,0xfd,0xf9,0x61,0x72,0x00,0x00,0xff,0xff,0x00,0x55, +0xff,0x4c,0x02,0x31,0x03,0x11,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x61,0x00,0x00,0x02,0x2f,0x02,0xda,0x00,0x0c,0x00,0x31,0x40,0x2e,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x06,0x05,0x02,0x03, +0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x61,0x5a,0x69,0x9a,0x67,0xb1,0xbb,0x69,0xa0,0x6b,0x02,0xda,0xfe,0x69,0xe3,0xfe,0xfa,0xfe,0xe0,0xf5,0xf5,0x00,0x00,0x00,0xff,0xff,0x00,0x61,0xff,0x10,0x02,0x2f, +0x02,0xda,0x02,0x26,0x01,0x10,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04, +0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x7c,0x49,0x57,0xbe,0x01,0x18,0x26,0x20,0xaa,0x55,0x46,0x01,0xed,0x52,0xfd,0xc1,0x22,0x27,0x52,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26, +0x03,0xb6,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xe4,0x00,0x15,0x00,0x2c,0x40,0x29,0x11,0x0b,0x0a,0x08,0x05,0x04,0x03,0x02,0x08,0x01,0x00,0x01,0x4c,0x09,0x01,0x00,0x4a,0x00,0x00,0x00,0x38,0x4d,0x03,0x02,0x02,0x01,0x01,0x39,0x01,0x4e,0x00,0x00, +0x00,0x15,0x00,0x15,0x15,0x16,0x04,0x09,0x18,0x2b,0x33,0x13,0x27,0x07,0x35,0x37,0x27,0x33,0x17,0x37,0x15,0x07,0x13,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc,0x04,0xa0,0x86,0x2c,0x60,0x1b,0xa7,0x8d,0xdd,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0x09,0x50,0x50,0x43,0x71,0x49,0x53,0x50,0x47,0xfd,0xb3, +0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0xff,0xff,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x3a,0x00,0x00,0xff,0xff,0x00,0x1e,0xff,0x10,0x02,0x26,0x02,0xda,0x02,0x26,0x01,0x13,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x0a, +0x00,0x00,0x02,0x75,0x02,0xda,0x00,0x26,0x01,0x13,0xec,0x00,0x01,0x07,0x03,0x29,0x00,0xf7,0x01,0x13,0x00,0x09,0xb1,0x01,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x15,0x00,0x2c,0x40,0x29,0x15,0x0a,0x09,0x08,0x07,0x02,0x01,0x00,0x08,0x02,0x00,0x01,0x4c,0x00,0x00,0x00, +0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x39,0x03,0x4e,0x21,0x27,0x11,0x13,0x04,0x09,0x1a,0x2b,0x37,0x35,0x37,0x11,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x64,0x78,0xbe,0x01,0x18,0xa0,0xa0,0x26,0x20,0xaa,0xaa,0x49,0x57,0xe6,0x50,0x51, +0x01,0x01,0x52,0xfe,0xea,0x6c,0x50,0x6c,0xd9,0x22,0x27,0x52,0x55,0x46,0x9c,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x24,0x00,0x56,0xb6,0x0a,0x03,0x02,0x03,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x16,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x05,0x03,0x03,0x03, +0x39,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x05,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x24,0x00,0x24,0x23,0x13,0x23,0x13,0x25,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x33, +0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x4e,0x02,0x05,0x31,0x26,0x24,0x32,0x0b,0x01,0x07,0x31,0x26,0x35,0x3f,0x54,0x20,0x1c,0x1b,0x20,0x4a,0x20,0x1b,0x1c,0x20,0x02,0x26,0x49,0x25,0x2e,0x2a,0x24,0x24,0x2a,0x4f,0x3f,0xfe,0x5e,0x01, +0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x01,0xa3,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b, +0x40,0x17,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x5c, +0x5a,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x8e,0x01,0x62,0x3f,0x43,0x46,0x40,0xfe,0xa2,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x67,0x00,0x00,0xff,0xff,0xff,0xf6,0x00,0x00,0x01,0xfe, +0x03,0x16,0x02,0x26,0x01,0x1b,0x00,0x00,0x01,0x07,0x06,0x7a,0x01,0x90,0x03,0x75,0x00,0x09,0xb1,0x01,0x01,0xb8,0x03,0x75,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x5d,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0x10,0x01,0xfe,0x02,0x30,0x02,0x26, +0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5e,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x1c,0x00,0x5f,0xb5,0x11,0x01,0x02,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05, +0x05,0x3d,0x05,0x4e,0x1b,0x40,0x20,0x00,0x03,0x03,0x3b,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x1c,0x00,0x1b,0x24,0x11,0x13,0x25,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xf0,0x3f,0x35,0x3e,0x3d,0x36,0x38,0x3f,0x5a,0x5a,0x01,0x06,0x4b,0x3f,0x53,0x60,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x59,0x3b,0x41,0x46,0x40,0xfe,0xa2,0x02,0x26,0x69,0x37,0x3c,0x66,0x58,0xfe,0x9d,0x58,0x6b,0x00, +0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x5d,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x42,0x00, +0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x75,0x74,0x64,0x64,0x74,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a, +0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x73,0x69,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00, +0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x71, +0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xb8,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x27,0x06,0x78,0x02,0x58,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x21,0x03,0x84,0x02,0x26,0x01,0x22,0x00,0x00, +0x00,0x07,0x06,0xb9,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x26,0x03,0xa2,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xba,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0xa0,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0xbb,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04, +0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x04,0x02,0x2e,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x39,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf8,0x02,0x1c,0x02,0x80,0x00,0x17,0x00,0x25,0x00,0x71,0xb5,0x12,0x01,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x02,0x3b,0x4d, +0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x24,0x00,0x03,0x01,0x03,0x85,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40, +0x17,0x19,0x18,0x01,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x0e,0x0d,0x0b,0x09,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, +0x2c,0x63,0x75,0x74,0x64,0x45,0x32,0x0b,0x23,0x4b,0x20,0x1c,0x24,0x75,0x63,0x3b,0x43,0x43,0x3b,0x3a,0x44,0x44,0x08,0x74,0x68,0x7e,0x69,0x73,0x1c,0x23,0x4b,0x50,0x1f,0x2e,0x0a,0x36,0x51,0x7e,0x68,0x74,0x50,0x42,0x40,0x92,0x40,0x42,0x42,0x40,0x92,0x40,0x42,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26, +0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0x2b,0x02,0x1c,0x02,0x80,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x11,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x44,0x00,0x00,0xff,0xff,0x00,0x54, +0xff,0xf8,0x02,0x1c,0x03,0x39,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x1c,0x03,0x0c,0x02,0x26,0x01,0x30,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x6c, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0xe9,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x35,0x02,0x00,0x02,0x30,0x00,0x1e,0x00,0x2c,0x00,0x64,0x4b,0xb0,0x15,0x50,0x58,0x40,0x21,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04, +0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x03,0x03,0x00,0x5f,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x1e,0x00,0x03,0x06,0x01,0x00,0x03,0x00,0x63,0x00,0x05,0x05,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x07,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x17,0x20,0x1f,0x01,0x00,0x27,0x25,0x1f,0x2c, +0x20,0x2c,0x1d,0x1b,0x0f,0x0d,0x08,0x06,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x74,0x37, +0x43,0x19,0x22,0x09,0x62,0x72,0x72,0x62,0x62,0x72,0x2e,0x2b,0x18,0x22,0x1e,0x1e,0x19,0x3c,0x96,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x96,0x62,0x70,0x6f,0x62,0x97,0x3e,0x5b,0x1a,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x01,0x11,0x42,0x40,0x96,0x40,0x42,0x42,0x40,0x96,0x40,0x42,0x00,0x00, +0x00,0x03,0x00,0x23,0xff,0xe2,0x02,0x35,0x02,0x4e,0x00,0x15,0x00,0x1e,0x00,0x27,0x00,0x4a,0x40,0x47,0x09,0x01,0x04,0x00,0x26,0x25,0x19,0x0c,0x01,0x05,0x05,0x04,0x14,0x01,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x41,0x4d,0x07,0x01,0x05,0x05,0x02, +0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x20,0x1f,0x00,0x00,0x1f,0x27,0x20,0x27,0x1c,0x1a,0x00,0x15,0x00,0x15,0x26,0x12,0x26,0x08,0x09,0x19,0x2b,0x17,0x37,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x07,0x37,0x14,0x17,0x13,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35, +0x34,0x27,0x03,0x16,0x23,0x51,0x1c,0x72,0x62,0x4c,0x34,0x2e,0x5b,0x54,0x1f,0x72,0x62,0x50,0x36,0x29,0x30,0x03,0xcc,0x20,0x30,0x3c,0x43,0x7f,0x3c,0x43,0x04,0xd0,0x20,0x1e,0x72,0x31,0x43,0x96,0x62,0x70,0x22,0x40,0x76,0x32,0x47,0x97,0x62,0x70,0x26,0x3a,0xe6,0x11,0x0e,0x01,0x20,0x17,0x44,0x3e,0xfe,0xe8,0x45,0x3d,0x96,0x15, +0x13,0xfe,0xdb,0x1b,0xff,0xff,0x00,0x23,0xff,0xe2,0x02,0x35,0x03,0x11,0x02,0x26,0x01,0x39,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x0c,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x23,0xff,0xf6,0x02,0x35,0x02,0x30,0x00,0x28, +0x00,0x36,0x00,0x3f,0x00,0x59,0x40,0x56,0x0b,0x01,0x09,0x08,0x24,0x01,0x04,0x05,0x02,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x09,0x00,0x03,0x05,0x09,0x03,0x67,0x0a,0x01,0x08,0x08,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x07,0x02,0x04,0x04,0x00,0x61,0x06,0x0b,0x02,0x00,0x00,0x3f,0x00,0x4e,0x2a,0x29,0x01, +0x00,0x3d,0x3b,0x38,0x37,0x31,0x2f,0x29,0x36,0x2a,0x36,0x21,0x1f,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x11,0x0f,0x08,0x06,0x00,0x28,0x01,0x28,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x23,0x22, +0x26,0x26,0x27,0x23,0x0e,0x02,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x13,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0xb4,0x43,0x4e,0x4e,0x43,0x28,0x33,0x1a,0x01,0x04,0x02,0x19,0x33,0x28,0x43,0x4e,0xde,0x24,0x1f,0x1a,0x25,0x04,0x55,0x0a,0x4c,0x38,0x28,0x33,0x19,0x02,0x04,0x01,0x1a,0x33,0x1e, +0x1f,0x24,0x24,0x1f,0x20,0x26,0x26,0xb9,0x89,0x26,0x20,0x1f,0x24,0x0a,0x57,0x49,0xfa,0x4a,0x56,0x1a,0x25,0x11,0x11,0x25,0x1a,0x56,0x4a,0x96,0x64,0x26,0x2d,0x20,0x1a,0x3e,0x49,0x1a,0x25,0x11,0x11,0x25,0x1a,0x4d,0x2d,0x26,0xfa,0x26,0x2d,0x2d,0x26,0xfa,0x26,0x2d,0x01,0x00,0x4d,0x26,0x2d,0x2d,0x26,0x00,0x00,0x02,0x00,0x5c, +0xff,0x4c,0x02,0x01,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x11,0x03,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x00,0x00,0x3b,0x4d, +0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x24,0x11,0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15, +0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5c,0x5a,0x01,0x07,0x50,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x03,0x02,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xb4,0x02,0xda,0x69,0x36,0x3d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x3c,0x43, +0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x02,0x00,0x57,0xff,0x56,0x01,0xfc,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x6c,0xb6,0x12,0x04,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x31,0x50,0x58,0x40,0x21,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f, +0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x59,0x40,0x14,0x16,0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x25,0x25,0x11, +0x08,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x07,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x11,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x57,0x5a,0x02,0x01,0x08,0x51,0x3e,0x53,0x62,0x62,0x53,0x3e,0x50,0x07,0x01,0x78,0x39,0x40,0x40,0x39,0x37,0x41,0x41,0xaa,0x03, +0x84,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5e,0x6e,0x3d,0x36,0xfe,0xed,0xee,0x3c,0x43,0xa0,0x44,0x3b,0x46,0x3e,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x02,0x00,0x57,0xff,0x4c,0x01,0xfc,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x68,0xb6,0x10,0x02,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x05,0x01,0x61, +0x02,0x01,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x06,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x14,0x16, +0x15,0x00,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x00,0x14,0x00,0x14,0x14,0x25,0x25,0x08,0x09,0x19,0x2b,0x05,0x35,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x33,0x11,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xa2,0x02,0x03,0x07,0x50,0x3e,0x53,0x62, +0x63,0x52,0x3e,0x50,0x07,0x01,0x5a,0xd2,0x38,0x40,0x40,0x38,0x39,0x40,0x40,0xb4,0xa0,0x7d,0x35,0x3e,0x6e,0x5f,0xa1,0x5f,0x6d,0x3d,0x36,0x69,0xfd,0x26,0xf8,0x46,0x3e,0x96,0x3e,0x46,0x3a,0x40,0xaa,0x40,0x3a,0x00,0x00,0x00,0x00,0x01,0x00,0x70,0x00,0x00,0x02,0x12,0x02,0x30,0x00,0x13,0x00,0x5a,0xb5,0x03,0x01,0x02,0x03,0x01, +0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x1e,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x04,0x04, +0x39,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x13,0x00,0x13,0x22,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x23,0x22,0x06,0x15,0x11,0x70,0x5a,0x02,0x07,0x4c,0x40,0x56,0x5d,0x5a,0x75,0x3b,0x3e,0x02,0x26,0x69,0x35,0x3e,0x67,0x5f,0x2f,0x2f,0x78,0x44,0x40, +0xfe,0xa2,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x76,0x00,0x00,0xff,0xff,0x00,0x70,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x6c,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x12,0x02,0x30,0x02,0x26, +0x01,0x40,0x00,0x00,0x00,0x07,0x06,0x7a,0x01,0xbd,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x00,0x28,0x00,0x3b,0x40,0x38,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x42,0x00, +0x4e,0x01,0x00,0x1e,0x1b,0x19,0x18,0x16,0x13,0x09,0x06,0x04,0x03,0x00,0x28,0x01,0x27,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06,0x23,0x01,0x16, +0x5c,0x65,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x08,0x53,0x4c,0x26,0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x00,0x00,0xff,0xff,0x00,0x55, +0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x03,0x02,0x2e,0x00,0x3a,0x00,0x95,0x40,0x0a,0x09,0x01,0x07,0x03, +0x33,0x01,0x01,0x07,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x72,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x4d,0x00,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08, +0x3d,0x08,0x4e,0x1b,0x40,0x34,0x00,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x02,0x03,0x06,0x02,0x03,0x7e,0x00,0x01,0x07,0x00,0x07,0x01,0x00,0x80,0x00,0x00,0x09,0x01,0x08,0x00,0x08,0x63,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x03,0x03,0x07,0x61,0x00,0x07,0x07,0x42,0x07,0x4e,0x59,0x40,0x11,0x00,0x00,0x00, +0x3a,0x00,0x39,0x29,0x32,0x12,0x3a,0x32,0x14,0x14,0x21,0x0a,0x09,0x1e,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x15,0x14,0x06, +0x23,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xd7,0x46,0x16,0x1b,0x37,0x32,0x17,0x50,0x57,0x5a,0x36,0x31,0x2c,0x32,0x37,0x41,0x98,0x38,0x3e,0x63,0x57,0x2c,0x50,0x65,0x04,0x5b,0x02,0x33,0x29,0x2c,0x2e,0x34,0x35,0x8e,0x8c,0x65,0x5c,0x0d,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x3e,0x06,0x51,0x47,0x26, +0x2b,0x2c,0x28,0x47,0x09,0x16,0x08,0x4d,0x3f,0x48,0x52,0x4f,0x40,0x1d,0x26,0x2a,0x24,0x3a,0x08,0x14,0x14,0x90,0x4d,0x55,0x1b,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x03,0x11,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x10,0x02,0x03, +0x02,0x2e,0x02,0x26,0x01,0x44,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x02,0x18,0x02,0xe4,0x00,0x2a,0x00,0x37,0x40,0x34,0x0c,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x69,0x00,0x05,0x05,0x00,0x61,0x00,0x00,0x00,0x3e,0x4d,0x00,0x02,0x02,0x01,0x61,0x07,0x06,0x02, +0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x24,0x21,0x24,0x21,0x2d,0x24,0x08,0x09,0x1c,0x2b,0x33,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11, +0x5c,0x35,0x5f,0x3f,0x3f,0x5e,0x35,0x41,0x34,0x3e,0x4e,0x38,0x63,0x42,0x3a,0x30,0x3e,0x4d,0x48,0x3a,0x39,0x2e,0x35,0x43,0x43,0x35,0x36,0x43,0x02,0x16,0x3d,0x5d,0x34,0x2f,0x52,0x37,0x3b,0x5a,0x0d,0x03,0x0b,0x68,0x48,0x3c,0x5c,0x34,0x52,0x48,0x3a,0x3a,0x48,0x50,0x42,0x35,0x35,0x42,0x46,0x38,0xfd,0xea,0x00,0x01,0x00,0xa5, +0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x21,0x23,0x04,0x09,0x18,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x11,0xa5,0x5d,0x4c,0xb0,0xb0,0x23,0x2c,0x02,0x3b,0x47,0x58, +0x50,0x2c,0x24,0xfd,0xc6,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0xc1,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x60,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07, +0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x63,0x44,0x52,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x4f,0x42,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08, +0x02,0xc1,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00,0x0b,0x0a,0x02,0x07,0x08,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x09,0x60,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x18,0x16,0x23,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x35,0x55,0x78,0x9e,0x9e,0x5a,0xe1,0xe1,0xb4,0xb4,0x21,0x1b,0xa0,0xa0,0x44,0x52,0xef,0x4b,0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x5e,0x1c,0x23,0x52,0x4f,0x42,0x5e,0x00, +0xff,0xff,0x00,0x2f,0x00,0x00,0x02,0x08,0x03,0x21,0x02,0x26,0x01,0x4c,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0x35,0x02,0x08,0x02,0xc1,0x00,0x25,0x00,0x87,0x40,0x0a,0x09,0x01,0x08,0x07,0x1e,0x01,0x01,0x08,0x02,0x4c,0x4b,0xb0, +0x15,0x50,0x58,0x40,0x2f,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00,0x08,0x01,0x00,0x80,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x4d,0x00,0x00,0x00,0x09,0x5f,0x0a,0x01,0x09,0x09,0x3d,0x09,0x4e,0x1b,0x40,0x2c,0x00,0x04,0x03,0x04,0x85,0x00,0x01,0x08,0x00, +0x08,0x01,0x00,0x80,0x00,0x00,0x0a,0x01,0x09,0x00,0x09,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x24,0x11,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0b,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x1c,0x30,0x36,0x9e,0x9e,0x5a,0xe1,0xe1,0x21,0x1b,0xa0,0x99,0x0c,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x4b,0x0d,0x49, +0x35,0x01,0x43,0x52,0x9b,0x9b,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x23,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0xff,0xff,0x00,0x2f,0xff,0x10,0x02,0x08,0x02,0xc1,0x02,0x26,0x01,0x4c,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x00,0x11,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x01, +0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x05,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x01,0x2b,0x5f,0x72,0x5a,0x40,0x37,0x38,0x41,0x5a,0x74,0x0a,0x71,0x61,0x01,0x5e, +0xfe,0xa2,0x3c,0x47,0x47,0x3c,0x01,0x5e,0xfe,0xa2,0x61,0x71,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a, +0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x68, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6b,0x02,0x62,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00, +0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6f,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xf4,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x6a,0x02,0x4e,0x00,0xe3,0x00,0x08,0xb1,0x03, +0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0xcc,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x27,0x06,0x68,0x02,0x58,0x00,0x00,0x01,0x07,0x06,0x73,0x02,0x58,0x00,0xe3,0x00,0x08,0xb1,0x03,0x01,0xb0,0xe3,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x01,0xfe,0x02,0x26,0x02,0x26, +0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x39,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a, +0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x19,0x00,0x4e,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1c,0x00,0x03,0x00,0x00,0x03,0x70,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x00,0x03,0x85,0x00,0x04,0x04,0x00,0x61,0x02,0x01,0x00,0x00,0x3b,0x4d, +0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x09,0x23,0x13,0x12,0x23,0x23,0x11,0x06,0x09,0x1c,0x2b,0x37,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x14,0x06,0x23,0x22,0x26,0x5a,0x5a,0x40,0x37,0x38,0x41,0x46,0x23,0x4b,0x2b,0x2f,0x74,0x5f,0x5f, +0x72,0xc8,0x01,0x5e,0xfe,0xa2,0x3e,0x45,0x45,0x3e,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0xe3,0x61,0x71,0x71,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0x5e,0x00,0x00, +0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58, +0x03,0x0c,0x02,0x26,0x01,0x5e,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x6c,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe9,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00, +0x00,0x01,0x00,0x5a,0xff,0x35,0x01,0xfe,0x02,0x26,0x00,0x1f,0x00,0x56,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x05,0x05,0x00,0x60,0x06,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x19,0x00,0x05,0x06,0x01,0x00,0x05,0x00,0x64,0x04,0x01,0x02,0x02, +0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x13,0x01,0x00,0x1e,0x1c,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x07,0x07,0x06,0x06,0x15,0x14, +0x16,0x33,0x33,0x15,0x01,0x74,0x37,0x43,0x19,0x22,0x09,0x62,0x70,0x5a,0x78,0x78,0x5a,0x57,0x18,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x16,0x2f,0x1f,0x70,0x62,0x01,0x5e,0xfe,0xa2,0x82,0x82,0x01,0x5e,0xfe,0xa2,0x7f,0x34,0x14,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x44,0x02,0x26, +0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x0c,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x00,0x0c,0x00,0x21,0x40,0x1e,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d, +0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xf1,0xbb,0x61,0x78,0x0b,0x10,0x04,0x05,0x0e,0x0a,0x78,0x5f,0xbb,0x02,0x26,0xfe,0x8e,0x21,0x3d,0x11,0x11,0x3d,0x21,0x01,0x72,0xfd,0xda,0x00,0x00,0x01,0x00,0x1f, +0x00,0x00,0x02,0x39,0x02,0x26,0x00,0x1e,0x00,0x27,0x40,0x24,0x1a,0x0f,0x06,0x03,0x03,0x00,0x01,0x4c,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x1e,0x00,0x1e,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16, +0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x79,0x5a,0x4e,0x38,0x03,0x06,0x01,0x02,0x05,0x04,0x45,0x5a,0x45,0x04,0x07,0x01,0x02,0x06,0x03,0x3a,0x4a,0x5e,0x63,0x3f,0x04,0x07,0x02,0x01,0x08,0x05,0x42,0x02,0x26,0xfe,0x7c,0x16,0x35,0x11,0x11,0x35,0x16,0x01,0x84,0xfe,0x7c,0x16,0x35,0x11, +0x11,0x35,0x16,0x01,0x84,0xfd,0xda,0x01,0x7c,0x1c,0x3f,0x11,0x11,0x3f,0x1c,0xfe,0x84,0x00,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x09,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x1f,0x00,0x00,0x02,0x39,0x03,0x11,0x02,0x26,0x01,0x6a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x17, +0x00,0x26,0x40,0x23,0x13,0x0d,0x07,0x01,0x04,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x04,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x18,0x12,0x05,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x13,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07, +0x32,0xc3,0xb7,0x6a,0x6d,0x07,0x0d,0x04,0x03,0x0d,0x07,0x6d,0x6a,0xb7,0xc2,0x6a,0x76,0x07,0x0d,0x05,0x04,0x0f,0x08,0x76,0x01,0x1b,0x01,0x0b,0xaa,0x0b,0x1a,0x08,0x08,0x1a,0x0b,0xaa,0xfe,0xf4,0xfe,0xe6,0xb4,0x0b,0x1d,0x09,0x09,0x1d,0x0b,0xb4,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x0d,0x00,0x22,0x40,0x1f, +0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x3b,0x4d,0x03,0x01,0x02,0x02,0x3d,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x09,0x18,0x2b,0x17,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x01,0xb2,0x51,0xcd,0x61,0x82,0x08,0x0e,0x03,0x03,0x0e,0x07,0x79,0x5f,0xfe,0xee,0xb4,0xd6,0x02, +0x04,0xfe,0xac,0x14,0x2c,0x10,0x10,0x2c,0x14,0x01,0x54,0xfd,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x09,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00, +0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, +0x03,0x0c,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0x26,0x00,0x09,0x00,0x2c,0x40,0x29,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00, +0x09,0x00,0x09,0x12,0x11,0x12,0x05,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x5a,0x01,0x34,0xfe,0xd4,0x01,0x91,0xfe,0xc6,0x01,0x45,0x5a,0x01,0x7a,0x52,0x5a,0xfe,0x86,0x52,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x79,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x1c,0x02,0xda,0x02,0x06,0x00,0x87,0x00,0x00, +0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x09,0x00,0x27,0x40,0x24,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x41, +0xc8,0xb4,0x01,0x0e,0xc8,0x52,0x02,0x36,0x52,0xfd,0x78,0x52,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x53,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x26,0x01,0x7e,0x00,0x00,0x00,0x07,0x06,0x6d,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x41, +0xff,0x10,0x02,0x2b,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06,0x01,0x7e,0x00,0x00,0xff,0xff,0x00,0x41,0x00,0x00,0x02,0xa7,0x02,0xda,0x00,0x27,0x03,0x29,0x01,0x29,0x01,0x13,0x03,0x06,0x01,0x7e,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x2b, +0x02,0xda,0x00,0x11,0x00,0x34,0x40,0x31,0x0e,0x0d,0x0c,0x0b,0x06,0x05,0x04,0x03,0x08,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x15,0x11,0x15,0x11,0x06,0x09,0x1a,0x2b,0x33,0x35,0x33,0x35,0x07,0x35, +0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x11,0x33,0x15,0x41,0xc8,0x8c,0x8c,0xb4,0x01,0x0e,0x8c,0x8c,0xc8,0x52,0xf3,0x5f,0x50,0x5f,0xf3,0x52,0xfe,0xf7,0x5f,0x50,0x5f,0xfe,0xd1,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x19,0x00,0x3f,0x40,0x3c,0x00,0x03,0x02,0x03,0x85,0x00,0x07,0x01, +0x06,0x01,0x07,0x06,0x80,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x12,0x10,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x19,0x01,0x19,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15, +0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x70,0x54,0x63,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x0a,0x62,0x54,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0xf6,0x02,0x24,0x02,0xc1,0x00,0x21, +0x00,0x48,0x40,0x45,0x00,0x03,0x02,0x03,0x85,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x06,0x01,0x00,0x0c,0x0b,0x02,0x07,0x09,0x00,0x07,0x67,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x1e,0x1c,0x19,0x17,0x23,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x55,0x64,0x96,0x96,0x5a,0xe1,0xe1,0xc8,0xc8,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x54,0x63,0xef,0x4b, +0x9a,0x52,0x9b,0x9b,0x52,0x9a,0x4b,0x43,0x2f,0x37,0x37,0x2f,0x03,0x03,0x54,0x62,0x62,0x54,0x43,0x00,0xff,0xff,0x00,0x23,0xff,0xf6,0x02,0x24,0x03,0x21,0x02,0x26,0x01,0x84,0x00,0x00,0x01,0x07,0x06,0x6d,0x02,0x12,0x00,0x47,0x00,0x08,0xb1,0x01,0x01,0xb0,0x47,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0x23,0xff,0x35,0x02,0x24, +0x02,0xc1,0x00,0x2d,0x00,0x98,0x40,0x0a,0x09,0x01,0x09,0x07,0x26,0x01,0x01,0x09,0x02,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x36,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x72,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61,0x00,0x09, +0x09,0x3f,0x4d,0x00,0x00,0x00,0x0a,0x5f,0x0b,0x01,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x34,0x00,0x04,0x03,0x04,0x85,0x00,0x08,0x02,0x07,0x02,0x08,0x07,0x80,0x00,0x01,0x09,0x00,0x09,0x01,0x00,0x80,0x00,0x00,0x0b,0x01,0x0a,0x00,0x0a,0x63,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3b,0x4d,0x00,0x07,0x07,0x09,0x61, +0x00,0x09,0x09,0x3f,0x09,0x4e,0x59,0x40,0x14,0x00,0x00,0x00,0x2d,0x00,0x2c,0x25,0x22,0x22,0x23,0x11,0x11,0x11,0x11,0x15,0x14,0x21,0x0c,0x09,0x1f,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x26,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14, +0x06,0x23,0x22,0x23,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0x01,0x09,0x46,0x16,0x1b,0x37,0x32,0x19,0x38,0x3f,0x96,0x96,0x5a,0xe1,0xe1,0x32,0x2b,0x2b,0x31,0x58,0x61,0x53,0x05,0x04,0x09,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x44,0x10,0x5a,0x43,0x01,0x28,0x52,0x9b,0x9b,0x52,0xfe,0xd8,0x2f,0x37,0x37,0x2f,0x03, +0x03,0x54,0x62,0x19,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0xff,0xff,0x00,0x23,0xff,0x10,0x02,0x24,0x02,0xc1,0x02,0x26,0x01,0x84,0x00,0x00,0x00,0x07,0x06,0x7a,0x02,0x94,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x42,0x02,0x46,0x02,0x30,0x00,0x26,0x00,0x32,0x00,0x40,0x00,0xd1,0x40,0x0a,0x08,0x01,0x04,0x06,0x07,0x01,0x09,0x05, +0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x07,0x01,0x03,0x03,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x31,0x50,0x58,0x40,0x32,0x0b,0x01,0x06,0x00,0x04, +0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09,0x67,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x0c,0x01,0x08,0x08,0x00,0x5f,0x0a,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x2f,0x0b,0x01,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x05,0x00,0x09,0x08,0x05,0x09, +0x67,0x0c,0x01,0x08,0x0a,0x01,0x00,0x08,0x00,0x63,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x3b,0x03,0x4e,0x59,0x59,0x40,0x23,0x35,0x33,0x28,0x27,0x01,0x00,0x3c,0x39,0x33,0x40,0x35,0x40,0x2e,0x2c,0x27,0x32,0x28,0x32,0x1f,0x1d,0x1b,0x19,0x13,0x12,0x11,0x10,0x0f,0x0d,0x00, +0x26,0x01,0x25,0x0d,0x09,0x16,0x2b,0x17,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x33,0x15,0x23,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x23,0x15,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0xe2,0x33,0x50,0x2d,0x51,0x40,0x34,0x3a,0x6e,0x5e,0x2e,0x19,0xde,0xb9,0x29,0x33,0x6c,0x5c,0x09,0x08,0x77,0x34,0x4f,0x2e,0x2e,0x4f,0x34,0x66,0x38,0x40,0x40,0x38,0x38,0x42,0x42,0x07,0xa6,0x26,0x31,0x31,0x26,0xa6,0x25,0x32,0x32,0xbe,0x29,0x49,0x30,0x42,0x57,0x0a,0x5f,0x13,0x50,0x39, +0x50,0x5e,0x0a,0x4a,0x01,0x05,0x2d,0x30,0x4b,0x57,0x4e,0x2a,0x4a,0x31,0x30,0x49,0x29,0x01,0xdc,0x36,0x2e,0x2e,0x36,0x36,0x2e,0x2e,0x36,0xfe,0x72,0x30,0x27,0x27,0x30,0x30,0x27,0x27,0x30,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00, +0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x11,0x02,0x26,0x01,0x89,0x00,0x00, +0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x70,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x76,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x32,0xff,0x42,0x02,0x46,0x03,0x09,0x02,0x26,0x01,0x89,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe, +0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x42,0x01,0xee,0x02,0x26,0x00,0x15,0x00,0x58,0x4b,0xb0,0x31,0x50,0x58,0x40,0x1e,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00, +0x3d,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x02,0x05,0x01,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x3b,0x03,0x4e,0x59,0x40,0x11,0x01,0x00,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x06,0x05,0x00,0x15,0x01,0x15,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x16, +0x33,0x32,0x36,0x35,0x11,0x21,0x35,0x21,0x11,0x14,0x06,0x06,0x01,0x24,0x3c,0x5b,0x33,0x5a,0x3f,0x31,0x32,0x3e,0xfe,0xf3,0x01,0x67,0x33,0x5b,0xbe,0x32,0x58,0x3a,0x4a,0x4a,0x34,0x40,0x40,0x34,0x01,0xce,0x52,0xfd,0xe0,0x3a,0x58,0x32,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x02,0x6c,0x03,0x11,0x02,0x26,0x01,0x91,0x00,0x00, +0x00,0x07,0x06,0x6e,0x02,0xe3,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x13,0x00,0x32,0x40,0x2f,0x00,0x04,0x01,0x03,0x01,0x04,0x03,0x80,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04, +0x00,0x13,0x01,0x13,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x60,0x58,0x67,0xa6,0x01,0x00,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x00,0x00,0x00,0xff,0xff,0xff,0xfb, +0xff,0xf6,0x02,0x1f,0x03,0xb6,0x02,0x26,0x01,0x93,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x30,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x6d,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x93,0x00,0x00,0xff,0xff,0xff,0xfb,0xff,0x10,0x02,0x1f,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x5d,0x00,0x00,0x02,0x06, +0x01,0x93,0x00,0x00,0x00,0x02,0xff,0xfb,0xff,0xf6,0x02,0x4d,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x04,0x05,0x03,0x05,0x04,0x03,0x80,0x00,0x06,0x08,0x01,0x05,0x04,0x06,0x05,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x15,0x14,0x01, +0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x61,0x58,0x68,0xa6,0x01,0x00,0x37,0x2f, +0x2f,0x37,0x5a,0x67,0x41,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x66,0x57,0x01,0xd5,0x52,0xfd,0xd9,0x31,0x3a,0x3a,0x31,0x29,0x29,0x57,0x66,0x01,0x23,0x2c,0x23,0x25,0x2e,0x2e,0x25,0x23,0x2c,0x00,0x00,0x00,0x01,0xff,0xfb,0xff,0xf6,0x02,0x1f,0x02,0xda,0x00,0x1b,0x00,0x38,0x40,0x35,0x1b,0x0a,0x09,0x08,0x07,0x02,0x01,0x07, +0x03,0x00,0x00,0x01,0x02,0x03,0x02,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x23,0x13,0x27,0x11,0x13,0x05,0x09,0x1b,0x2b,0x37,0x35,0x37,0x35,0x23,0x35,0x21,0x11,0x37,0x15,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x35, +0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x7e,0xa6,0x01,0x00,0x9a,0x9a,0x36,0x2f,0x2f,0x36,0x5a,0x66,0x59,0x58,0x67,0xe6,0x50,0x55,0xfd,0x52,0xfe,0xee,0x68,0x50,0x68,0xc5,0x31,0x3c,0x3c,0x31,0x4b,0x4b,0x57,0x66,0x66,0x57,0x88,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x30,0x00,0x23,0x00,0x64,0xb6,0x0a, +0x03,0x02,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x06,0x01,0x04,0x04,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x21,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x00,0x3b,0x4d,0x06,0x01,0x04,0x04,0x01,0x61, +0x02,0x01,0x01,0x01,0x41,0x4d,0x08,0x07,0x02,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x24,0x24,0x11,0x09,0x09,0x1d,0x2b,0x33,0x11,0x33,0x17,0x33,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x11,0x3c,0x51,0x02,0x01,0x05,0x2e,0x25,0x24,0x32,0x0b,0x07,0x31,0x26,0x35,0x40,0x56,0x1d,0x1a,0x1b,0x20,0x50,0x1f,0x1a,0x1a,0x1f,0x02,0x26,0x49,0x26,0x2d,0x29,0x23,0x23,0x29,0x4f,0x3f,0xfe,0x5e,0x01,0xa3,0x21,0x27,0x26,0x21,0xcd,0xcc,0x21,0x27,0x26,0x21,0xfe,0x5c,0x00,0x00,0x00,0x01,0x00,0x22, +0x00,0x00,0x02,0x36,0x02,0x26,0x00,0x18,0x00,0x2e,0x40,0x2b,0x17,0x0f,0x06,0x03,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x11,0x18,0x18,0x11,0x06,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36, +0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x03,0x03,0x6c,0x4a,0x52,0x2f,0x03,0x06,0x01,0x02,0x08,0x06,0x45,0x58,0x43,0x05,0x0c,0x01,0x02,0x06,0x03,0x2e,0x4e,0x4b,0x67,0x57,0x5a,0x02,0x26,0xfe,0x84,0x16,0x39,0x0b,0x0b,0x39,0x16,0x01,0x0f,0xfe,0xf1,0x16,0x37,0x0c,0x0c,0x37,0x16,0x01,0x7c, +0xfd,0xda,0x01,0x5f,0xfe,0xa1,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36, +0x03,0x09,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x02,0x36,0x03,0x11,0x02,0x26,0x01,0x9a,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x2f,0x40,0x2c,0x08,0x05,0x02,0x01,0x02,0x01, +0x4c,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x33,0x11,0x33,0x11,0x21,0x03,0x13,0x33,0x03,0x13,0x64,0x5a,0x01,0x04,0xf6,0xe6,0x71,0xe5,0xf9,0x02,0xda,0xfd,0x26,0x01,0x22, +0x01,0x04,0xfe,0xfd,0xfe,0xdd,0x00,0x00,0xff,0xff,0x00,0x64,0xff,0x10,0x02,0x37,0x02,0xda,0x00,0x27,0x06,0x7a,0x02,0x58,0x00,0x00,0x02,0x06,0x01,0x9f,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09,0x02,0xda,0x00,0x16,0x00,0x35,0x40,0x32, +0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15, +0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x39,0x50,0x75,0x41,0x49,0x50,0x3a,0x75,0x50,0xfe,0xc7,0x52,0x00,0x01,0x00,0x46,0x00,0x00,0x02,0x23,0x02,0x27,0x00,0x14,0x00,0x6e,0x4b,0xb0,0x1e,0x50,0x58,0xb5,0x07,0x01,0x00,0x01,0x01,0x4c,0x1b,0xb5, +0x07,0x01,0x00,0x04,0x01,0x4c,0x59,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x19,0x04,0x01,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x40,0x23,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d,0x00,0x04,0x04,0x02,0x5f,0x03,0x01,0x02,0x02,0x3b,0x4d, +0x05,0x01,0x00,0x00,0x06,0x5f,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x59,0x40,0x0f,0x00,0x00,0x00,0x14,0x00,0x14,0x13,0x21,0x24,0x11,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x15,0x33,0x36,0x36,0x37,0x37,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x46,0x91,0x87,0xda,0x01,0x0d,0x4e,0x39,0x64,0x63,0x42, +0x4d,0xd3,0x52,0x01,0x82,0x52,0x88,0x3e,0x49,0x01,0x01,0x5b,0x43,0x3a,0xfd,0x52,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6b,0x02,0x76,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0xff,0xff,0x00,0x46,0x00,0x00,0x02,0x23,0x03,0x11,0x00,0x27,0x06,0x6f,0x02,0x6c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00, +0xff,0xff,0x00,0x46,0xff,0x10,0x02,0x23,0x02,0x27,0x00,0x27,0x06,0x7a,0x02,0x1c,0x00,0x00,0x02,0x06,0x01,0xa3,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x15,0x00,0x22,0x40,0x1f,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x60,0x00,0x03,0x03,0x3d,0x03,0x4e, +0x23,0x18,0x14,0x20,0x04,0x09,0x1a,0x2b,0x17,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x23,0x42,0x66,0x19,0x25,0x0b,0x12,0xcd,0x61,0x82,0x07,0x0f,0x03,0x03,0x0e,0x07,0x79,0x5f,0xdb,0x13,0x4c,0x31,0x75,0x61,0x1e,0x19,0x2a,0x02,0x26,0xfe,0x8a,0x14,0x2c,0x10,0x10, +0x2c,0x14,0x01,0x76,0xfd,0x9a,0x37,0x3d,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22, +0x03,0x09,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x2b,0x02,0x22,0x02,0x26,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0xf8,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x39,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0xe9,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x0c,0x02,0x26,0x01,0xa7,0x00,0x00, +0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x02,0x26,0x00,0x14,0x00,0x4c,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x13,0x05,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x17,0x05,0x04,0x02,0x02,0x02,0x3b, +0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x06,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63, +0x5a,0x3f,0x36,0x38,0x41,0x02,0x26,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x14,0x00,0x18,0x00,0x6a,0xb5,0x03,0x01,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06, +0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x39,0x00,0x4e,0x1b,0x40,0x22,0x00,0x05,0x06,0x05,0x85,0x08,0x01,0x06,0x02,0x06,0x85,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x00,0x00,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x40,0x15,0x15,0x15,0x00,0x00, +0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x23,0x13,0x24,0x11,0x09,0x09,0x1a,0x2b,0x01,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x27,0x37,0x33,0x07,0x01,0xfc,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xb0,0x6a,0x61,0x6f,0x02,0x26,0xfd, +0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x5f,0x8c,0x8c,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x0d,0x00,0x22,0x00,0x7a,0xb5,0x11,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00, +0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x62,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x62,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x1d, +0x0e,0x0e,0x01,0x00,0x0e,0x22,0x0e,0x22,0x1f,0x1d,0x1a,0x19,0x16,0x14,0x10,0x0f,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35, +0x11,0x01,0x2c,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x88,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x5a,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x11,0x00,0x06,0x00,0x1b,0x00,0x75,0x40,0x0a,0x05,0x01,0x01,0x00,0x0a,0x01,0x06,0x05,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x62,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x23,0x00,0x00,0x01, +0x00,0x85,0x08,0x02,0x02,0x01,0x05,0x01,0x85,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x62,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x40,0x19,0x07,0x07,0x00,0x00,0x07,0x1b,0x07,0x1b,0x18,0x16,0x13,0x12,0x0f,0x0d,0x09,0x08,0x00,0x06,0x00,0x06,0x11,0x11,0x0a,0x09,0x18,0x2b,0x13,0x37,0x33, +0x17,0x23,0x27,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x77,0x8b,0x53,0x8c,0x63,0x52,0x50,0x01,0x20,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e, +0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0xa2,0xb5,0x1b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x21,0x0a,0x02,0x09,0x03,0x00,0x00,0x01,0x61,0x03,0x01,0x01,0x01,0x40,0x4d,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07, +0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x03,0x01,0x01,0x0a,0x02,0x09,0x03,0x00,0x06,0x01,0x00,0x69,0x0b, +0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, +0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x01,0x22,0x5a,0x01,0x07,0x4c, +0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x63,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x02,0x00,0x5a,0xff,0x2b,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x20,0x00,0x68,0xb5,0x0f,0x01,0x05, +0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1b,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x1f,0x00,0x01,0x07,0x01,0x00,0x01,0x00,0x65,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03, +0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x19,0x0c,0x0c,0x01,0x00,0x0c,0x20,0x0c,0x20,0x1d,0x1b,0x18,0x17,0x14,0x12,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16, +0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xaf,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x02,0xfb,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x11,0x00,0x03,0x00,0x18,0x00,0x6d,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04,0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x62,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x04, +0x01,0x85,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x62,0x00,0x03,0x03,0x3f,0x03,0x4e,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x17,0x11,0x23,0x35,0x23,0x06,0x06, +0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x0b,0x73,0x64,0x6e,0x92,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc, +0x03,0x39,0x00,0x0e,0x00,0x23,0x00,0xa6,0xb5,0x12,0x01,0x06,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x23,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x72,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40, +0x24,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d,0x00,0x06,0x06,0x03,0x61,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x28,0x08,0x01,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x09,0x07,0x02,0x05,0x05,0x3b,0x4d, +0x00,0x03,0x03,0x39,0x4d,0x00,0x06,0x06,0x04,0x61,0x00,0x04,0x04,0x3f,0x04,0x4e,0x59,0x59,0x40,0x19,0x0f,0x0f,0x00,0x00,0x0f,0x23,0x0f,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x0a,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x17,0x11,0x23, +0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x02,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0xa5,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72, +0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x01,0x00,0x5a,0xff,0xf6,0x02,0x58,0x02,0x94,0x00,0x1c,0x00,0x8f,0xb5,0x19,0x01,0x02,0x05,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1e,0x00,0x04,0x01,0x01,0x04,0x70,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f, +0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x07,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x04,0x01,0x04,0x85,0x00,0x05,0x05,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00, +0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x18,0x17,0x16,0x15,0x12,0x11,0x0f,0x0d,0x0a,0x08,0x05,0x04,0x00,0x1c,0x01,0x1c,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x11,0x23,0x35,0x23, +0x06,0x06,0x01,0x0f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x48,0x23,0x4b,0x2d,0x2f,0x5a,0x01,0x07,0x4c,0x0a,0x66,0x58,0x01,0x72,0xfe,0x98,0x3a,0x40,0x44,0x40,0x01,0x5e,0x23,0x4b,0x50,0x2b,0x34,0xfe,0x1b,0x69,0x37,0x3c,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6b, +0x02,0x62,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x2b,0x02,0x58,0x02,0x94,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x57,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x11,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x6a,0x02,0x4e,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x39,0x02,0x26, +0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x74,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x02,0x58,0x03,0x0c,0x02,0x26,0x01,0xb8,0x00,0x00,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x02,0x10,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x1c,0x00,0x77,0xb5,0x0b,0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18, +0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x23,0x02,0x01,0x00,0x0a,0x03,0x09,0x03,0x01,0x06,0x00,0x01,0x67,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07, +0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x20,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x1c,0x08,0x1c,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x05,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35, +0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x46,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x01,0x12,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x5f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a, +0xff,0xf6,0x01,0xfc,0x02,0xe9,0x00,0x03,0x00,0x18,0x00,0x96,0xb5,0x07,0x01,0x05,0x04,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x05,0x05,0x02,0x61,0x03,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x22, +0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3f,0x03,0x4e,0x1b,0x40,0x20,0x00,0x00,0x07,0x01,0x01,0x04,0x00,0x01,0x67,0x08,0x06,0x02,0x04,0x04,0x3b,0x4d,0x00,0x02,0x02,0x39,0x4d,0x00,0x05,0x05,0x03,0x61,0x00, +0x03,0x03,0x3f,0x03,0x4e,0x59,0x59,0x40,0x18,0x04,0x04,0x00,0x00,0x04,0x18,0x04,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x8c,0x01,0x40,0x30,0x5a, +0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x9e,0x4b,0x4b,0x78,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x35,0x02,0x20,0x02,0x26,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x01, +0x03,0x02,0x4c,0x1b,0x40,0x0a,0x07,0x01,0x03,0x02,0x06,0x01,0x05,0x03,0x02,0x4c,0x59,0x4b,0xb0,0x15,0x50,0x58,0x40,0x1d,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x4d,0x00,0x06,0x06,0x00,0x5f,0x07,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x00,0x06,0x07, +0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x03,0x03,0x01,0x61,0x05,0x01,0x01,0x01,0x3f,0x01,0x4e,0x1b,0x40,0x1e,0x00,0x06,0x07,0x01,0x00,0x06,0x00,0x63,0x04,0x01,0x02,0x02,0x3b,0x4d,0x00,0x05,0x05,0x39,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3f,0x01,0x4e,0x59,0x59,0x40,0x15,0x01,0x00,0x22,0x20, +0x1b,0x1a,0x19,0x18,0x15,0x13,0x10,0x0f,0x0c,0x0a,0x00,0x23,0x01,0x23,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0xd2,0x37,0x43,0x21,0x29,0x01,0x07,0x4c,0x3f, +0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x10,0x21,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1b,0x37,0x1e,0x67,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0xfd,0xda,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x2c,0x00,0x84,0xb5,0x1b, +0x01,0x07,0x06,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x25,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x07,0x07,0x04,0x61,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09, +0x01,0x00,0x06,0x02,0x00,0x69,0x0b,0x08,0x02,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x39,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x2c,0x18,0x2c,0x29,0x27,0x24,0x23,0x20,0x1e,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09, +0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21, +0xeb,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x6f,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfc,0x03,0x0c,0x00,0x19, +0x00,0x2e,0x00,0xfc,0xb5,0x1d,0x01,0x09,0x08,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2a,0x00,0x01,0x01,0x03,0x61,0x05,0x01,0x03,0x03,0x40,0x4d,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x18, +0x50,0x58,0x40,0x28,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x02,0x0b,0x02,0x00,0x00,0x04,0x61,0x00,0x04,0x04,0x38,0x4d,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x09,0x09,0x06,0x61,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2a,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, +0x0b,0x02,0x00,0x08,0x04,0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x38,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0b,0x01,0x00,0x08,0x04, +0x00,0x6a,0x0c,0x0a,0x02,0x08,0x08,0x3b,0x4d,0x00,0x06,0x06,0x39,0x4d,0x00,0x09,0x09,0x07,0x61,0x00,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x59,0x40,0x21,0x1a,0x1a,0x01,0x00,0x1a,0x2e,0x1a,0x2e,0x2b,0x29,0x26,0x25,0x22,0x20,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0d,0x09,0x16,0x2b, +0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x17,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31, +0x61,0x5a,0x01,0x07,0x4c,0x3f,0x52,0x63,0x5a,0x3f,0x36,0x38,0x41,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x64,0xfd,0xda,0x69,0x37,0x3c,0x66,0x58,0x01,0x72,0xfe,0x9e,0x3f,0x43,0x46,0x40,0x01,0x5e,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x2e,0x02,0xe4,0x00,0x17, +0x00,0x3d,0x40,0x3a,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x07,0x01,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3e,0x4d,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x04,0x03,0x00,0x17,0x01,0x17,0x09,0x09,0x16,0x2b,0x01, +0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x01,0x75,0x53,0x66,0x58,0x36,0x2b,0x2b,0x37,0xe1,0xe1,0x5a,0x96,0x96,0x68,0x02,0xe4,0x62,0x54,0x2f,0x37,0x37,0x2f,0x8f,0x52,0xfe,0xb3,0x01,0x4d,0x52,0x8f,0x54,0x62,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x09, +0x02,0xda,0x00,0x16,0x00,0x37,0x40,0x34,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x07,0x01,0x00,0x00,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x11,0x11,0x12,0x21,0x23,0x11,0x11,0x11,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x33, +0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x41,0x9b,0x9b,0x9b,0x52,0x48,0x93,0x93,0x40,0xd3,0xd3,0xd3,0x52,0x01,0x84,0x50,0x2a,0x41,0x49,0x50,0x3a,0x2a,0x50,0xfe,0x7c,0x52,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x12,0x00,0x2f,0x40,0x2c, +0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x05,0x01,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x01,0x3b,0x4d,0x07,0x01,0x06,0x06,0x39,0x06,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x12,0x21,0x23,0x11,0x11,0x08,0x09,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11, +0xd7,0xa0,0xa0,0x52,0x48,0xa1,0xa1,0x40,0xe1,0xe1,0x01,0xd4,0x52,0x28,0x41,0x4b,0x52,0x3a,0x28,0x52,0xfe,0x2c,0x00,0x00,0x00,0x02,0x00,0xaf,0x01,0xc2,0x01,0xa4,0x02,0xe4,0x00,0x1b,0x00,0x25,0x00,0x8f,0xb5,0x18,0x01,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x04, +0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x00,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x05,0x08,0x02,0x00,0x06,0x00,0x51,0x1b,0x40,0x33,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x05,0x06,0x00,0x06,0x05,0x00,0x80,0x00,0x04,0x00,0x02,0x03,0x04,0x02,0x69,0x00,0x01,0x00, +0x07,0x06,0x01,0x07,0x67,0x09,0x01,0x06,0x05,0x00,0x06,0x59,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x06,0x00,0x51,0x59,0x40,0x1b,0x1d,0x1c,0x01,0x00,0x22,0x20,0x1c,0x25,0x1d,0x25,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1b,0x01,0x1b,0x0a,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x22,0x15,0x14,0x16,0x01,0x12,0x2d,0x36,0x38,0x31,0x5a,0x23,0x1e,0x1a,0x24,0x03,0x32,0x05,0x3d,0x31,0x35,0x3e,0x2f,0x03,0x0a,0x33,0x16,0x27,0x2c,0x5a,0x37,0x22,0x01,0xc2,0x2f,0x27,0x27,0x2e,0x1d, +0x17,0x1b,0x16,0x12,0x26,0x2a,0x30,0x2a,0xc3,0x37,0x1c,0x20,0x26,0x24,0x1f,0x1a,0x2d,0x16,0x1a,0x00,0x00,0x02,0x00,0xb9,0x01,0xbd,0x01,0x9f,0x02,0xdf,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, +0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x34,0x3f,0x3f,0x34,0x34,0x3f,0x3f,0x34,0x1d,0x24,0x24,0x1d,0x1d, +0x24,0x24,0x01,0xbd,0x3a,0x2f,0x50,0x2f,0x3a,0x3a,0x2f,0x50,0x2f,0x3a,0x28,0x24,0x1d,0x50,0x1d,0x24,0x24,0x1d,0x50,0x1d,0x24,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02, +0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34, +0x26,0x23,0x23,0x5e,0x01,0x96,0xfe,0xc4,0x79,0x68,0x79,0x79,0x68,0x79,0x79,0x3e,0x46,0x46,0x3e,0x79,0x02,0xda,0x52,0xd8,0x76,0x62,0x61,0x77,0x52,0x49,0x3d,0x3e,0x48,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12,0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x05, +0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x82,0x01,0xa9,0xfe,0xb1,0x02,0xda,0x52,0xfd,0x78,0x00,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0xb6,0x02,0x26, +0x01,0xcb,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x76,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x2b,0x03,0x39,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85, +0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x54,0x55,0xfe,0xb1,0x02,0xda,0x5f,0xb1,0xfd,0x78,0x00,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0x74,0x02,0x3f, +0x02,0xda,0x00,0x0e,0x00,0x15,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x14,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x36,0x36, +0x37,0x13,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x03,0x06,0x06,0x19,0x2d,0x11,0x24,0x01,0x07,0x01,0x76,0x46,0x50,0xfe,0x7a,0x3b,0xfb,0xc6,0x05,0x01,0x20,0x8c,0xd9,0x1e,0x79,0x46,0x01,0xb0,0xfd,0x73,0xd9,0x8c,0x8c,0xd9,0x02,0x3d,0xfe,0xa0,0x4d,0x76,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08, +0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x08,0x03,0xb1,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x00,0x02,0x52,0x02,0xda,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06, +0x67,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x13,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x23,0x03,0x23,0x11,0x23,0x11,0x23,0x03,0x06,0x86,0x7c,0x5e,0x6a,0x2e, +0x4c,0x30,0x68,0x5e,0x7d,0x87,0x5d,0x75,0x2e,0x4c,0x30,0x74,0x01,0x7b,0x01,0x5f,0xfe,0xc1,0x01,0x3f,0xfe,0xc1,0x01,0x3f,0xfe,0xa0,0xfe,0x86,0x01,0x57,0xfe,0xa9,0x01,0x57,0xfe,0xa9,0x00,0x01,0x00,0x34,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06, +0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x1f,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x20,0x1e,0x1b,0x1a,0x18,0x16,0x12,0x10,0x0f,0x0d,0x09,0x07,0x05,0x04,0x00,0x2d,0x01,0x2d,0x09,0x07,0x16,0x2b, +0x05,0x22,0x26,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x23,0x46,0x6b,0x3d,0x01,0x5a,0x02,0x53,0x41,0x43,0x53,0x53,0x43,0x56,0x57,0x39,0x47, +0x46,0x38,0x3b,0x4a,0x5a,0x39,0x64,0x42,0x40,0x61,0x37,0x41,0x34,0x3e,0x4e,0x3d,0x6e,0x0a,0x35,0x5f,0x3e,0x3a,0x48,0x4b,0x3c,0x3c,0x4b,0x50,0x44,0x36,0x35,0x41,0x48,0x3a,0x3f,0x5e,0x35,0x30,0x55,0x38,0x3c,0x5b,0x0d,0x03,0x0b,0x67,0x47,0x3e,0x5e,0x35,0x00,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x11, +0x00,0x24,0x40,0x21,0x10,0x07,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x36,0x37,0x03,0x5a,0x57,0x03,0x04,0x02,0xde,0x78,0x57, +0x03,0x05,0x02,0xdf,0x02,0xda,0xfe,0x66,0x24,0x51,0x49,0x19,0x02,0x71,0xfd,0x26,0x01,0x9a,0x25,0x51,0x49,0x18,0xfd,0x8f,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb6,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00, +0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x03,0xb6,0x02,0x26,0x00,0x51,0x00,0x00,0x00,0x07,0x06,0x91,0x02,0x62,0x00,0x00,0x00,0x01,0x00,0x14,0xff,0xfb,0x01,0xfa,0x02,0xda,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02, +0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x03, +0x06,0x06,0x23,0x14,0x12,0x2c,0x27,0x01,0x08,0x01,0x78,0x5a,0xc5,0x07,0x02,0x51,0x56,0x05,0x54,0x4f,0x60,0x01,0xdc,0xfd,0x26,0x02,0x88,0xfe,0x76,0x86,0x7d,0x00,0xff,0xff,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00, +0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0x00,0x01,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33, +0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5e,0x01,0x9c,0x5a,0xe8,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00,0xff,0xff,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x02,0x06,0x00,0x1b,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06, +0x00,0x89,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x07,0x01,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1a,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x18,0x12,0x04,0x07,0x18,0x2b,0x33,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13, +0x33,0x01,0xbf,0x4a,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e,0x0b,0x73,0x62,0xfe,0xf9,0xbd,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x26,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x01,0xdf,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x2e,0xff,0xe7,0x02,0x2a, +0x03,0x02,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0xb2,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2c,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x4b,0xb0, +0x11,0x50,0x58,0x40,0x2b,0x00,0x02,0x01,0x01,0x02,0x70,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x1b,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x05,0x00,0x05,0x86,0x03,0x01, +0x01,0x09,0x01,0x06,0x07,0x01,0x06,0x6a,0x08,0x0b,0x02,0x07,0x00,0x00,0x07,0x59,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x07,0x00,0x51,0x59,0x59,0x40,0x1a,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x22,0x26, +0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x35,0x33,0x15,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3c,0x5e,0x37,0x36,0x5f,0x3c,0x5a,0x3d,0x5e,0x36,0x37,0x5e,0x3c,0x56,0x38,0x49,0x49,0x8a,0x38,0x49,0x49,0x38,0x19,0x50,0x34,0x5d,0x3f, +0xdb,0x41,0x5f,0x35,0x4b,0x4b,0x35,0x5f,0x41,0xdb,0x3f,0x5d,0x34,0x50,0x9c,0x01,0xe8,0x49,0x40,0xdb,0x3d,0x47,0x47,0x3d,0xdb,0x40,0x49,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x02,0x00,0x00, +0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1a,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9f,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe, +0xe9,0x30,0x34,0x01,0x7b,0xfd,0x26,0x00,0x00,0x01,0x00,0x5e,0xff,0x74,0x02,0x35,0x02,0xda,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1a,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, +0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xe5,0xfe,0x79,0x5a,0xd8,0x5a,0x4b,0x8c,0x8c,0x02,0xda,0xfd,0x76,0x02,0x8a,0xfd,0x76,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1a,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, +0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0xda,0x00,0x0f, +0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1a,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, +0x03,0xfe,0x39,0x51,0x78,0x46,0x78,0x51,0x3f,0x8c,0x8c,0x02,0xda,0xfd,0x74,0x02,0x8c,0xfd,0x74,0x02,0x8c,0xfd,0x74,0xda,0x00,0x01,0x00,0x5e,0xff,0x83,0x01,0xfa,0x02,0xda,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, +0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1a,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, +0xa1,0x5a,0xe8,0x5a,0xa1,0x7d,0x7d,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd,0x26,0x7d,0x00,0x02,0x00,0x5e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1a,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x15,0x13,0x0f, +0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5e,0x5a,0x92,0x42,0x63,0x37,0x37,0x63,0x42,0x92,0x8d,0x3b,0x49,0x49,0x3b,0x8d,0x02,0xda,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49, +0x00,0x02,0xff,0xfb,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x17,0x15,0x11,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x11,0x11,0x07,0x07,0x19, +0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x87,0x8c,0xe6,0x69,0x42,0x63,0x37,0x37,0x63,0x42,0x69,0x64,0x3b,0x49,0x49,0x3b,0x64,0x02,0x88,0x52,0xfe,0xd4,0x36,0x60,0x41,0x40,0x61,0x36,0x52,0x49,0x3c,0x3c,0x49,0x00,0x00,0x00,0x03,0x00,0x3c, +0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x19,0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1a,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0c,0x0c,0x00,0x00,0x19,0x17,0x12,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0a,0x21,0x11, +0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x2e,0x5a,0x6a,0x6a,0x5a,0x01,0x0a,0x54,0xfe,0x74,0x2e,0x33,0x3d,0x3d,0x33,0x2e,0x02,0xda,0xfe,0xd4,0x66,0x58,0x33,0x57,0x66,0x02,0xda,0xfd,0x26,0x4f,0x3c,0x33, +0x32,0x33,0x3c,0x00,0x00,0x02,0xff,0xfb,0xff,0xfb,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x21,0x00,0x6a,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x2a,0x00,0x02, +0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x06,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x06,0x01,0x00,0x00,0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x07,0x35, +0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x05,0x12,0x1d,0x1a,0x01,0x05,0x01,0x1e,0x3c,0x48,0x58,0x58,0x48,0x8c,0x7b,0x04,0x01,0x46,0x48,0x01,0x5e,0x3c,0x24,0x28,0x28,0x24,0x3c,0x05,0x50,0x39,0x3e,0x02, +0x18,0xfe,0xd4,0x55,0x46,0x78,0x46,0x55,0x02,0x8f,0xfe,0x33,0x68,0x5f,0x50,0x2c,0x24,0x78,0x24,0x2c,0x00,0x02,0x00,0x35,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1a,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04, +0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x50,0x93,0x50,0x3c,0x4a,0x56,0x56,0x4a,0x8c,0x93, +0xe3,0x3c,0x26,0x2a,0x2a,0x26,0x3c,0x02,0xda,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0x54,0x47,0x78,0x47,0x54,0x01,0x63,0xfe,0x9d,0x4b,0x2b,0x25,0x78,0x26,0x2a,0x00,0x00,0xff,0xff,0x00,0x48,0xff,0xf6,0x02,0x10,0x02,0xe4,0x02,0x06,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x1f,0x00,0x48,0x40,0x45, +0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x1f,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f, +0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62,0x01,0x4a, +0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x6f,0x52,0x89,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x4e,0xff,0xf6,0x01,0xfc,0x02,0xe4,0x00,0x1f,0x00,0x3b,0x40,0x38,0x00,0x05,0x04,0x03,0x04,0x05,0x03,0x80,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x04,0x04,0x06, +0x61,0x00,0x06,0x06,0x1f,0x4d,0x00,0x01,0x01,0x07,0x61,0x00,0x07,0x07,0x20,0x07,0x4e,0x25,0x22,0x12,0x23,0x11,0x13,0x22,0x10,0x08,0x07,0x1e,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x4e,0x5a,0x42, +0x3a,0x3b,0x43,0xdf,0xdf,0x43,0x3b,0x3a,0x42,0x5a,0x74,0x62,0x64,0x74,0x74,0x64,0x62,0x74,0xc8,0x3e,0x43,0x43,0x3e,0x89,0x52,0x6f,0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0x71,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef, +0x03,0xb1,0x02,0x26,0x00,0x43,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x2d,0xff,0xf6,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x16,0x00,0x34,0x40,0x31,0x15,0x07,0x02,0x04,0x05,0x01,0x4c,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x02, +0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1a,0x4d,0x07,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x16,0x00,0x16,0x22,0x13,0x23,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x6e,0x6e,0x01,0x40,0x78,0x10,0x4c, +0x57,0x47,0x55,0x5a,0x57,0x31,0x3a,0x33,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xbf,0x01,0x2d,0x77,0x3d,0x36,0xfe,0xcf,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x3a,0x02,0xe4,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50,0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61, +0x05,0x01,0x03,0x03,0x1a,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1a,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x1f,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e, +0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x11,0x23,0x11,0x33,0x11,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15, +0x11,0x14,0x16,0x01,0x90,0x4b,0x58,0x5e,0x53,0x53,0x5e,0x58,0x4b,0x4e,0x5c,0x5c,0x4e,0x29,0x2e,0x2e,0x29,0x29,0x2e,0x2e,0x0a,0x64,0x55,0xa2,0xfe,0xaf,0x02,0xda,0xfe,0xc7,0x8a,0x56,0x63,0x63,0x56,0xfe,0x84,0x55,0x64,0x4a,0x3a,0x35,0x01,0x7c,0x35,0x3a,0x3a,0x35,0xfe,0x84,0x35,0x3a,0x00,0x02,0x00,0x38,0x00,0x00,0x01,0xf9, +0x02,0xda,0x00,0x0e,0x00,0x17,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1a,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x10,0x0f,0x00,0x00,0x13,0x11,0x0f,0x17,0x10,0x17,0x00,0x0e,0x00,0x0e,0x11,0x11,0x27,0x08,0x07,0x19,0x2b, +0x33,0x13,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x11,0x23,0x11,0x23,0x03,0x13,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x38,0x96,0x42,0x4c,0x36,0x62,0x41,0xe0,0x5a,0x74,0x8b,0x79,0x86,0x86,0x37,0x45,0x44,0x01,0x40,0x14,0x6a,0x4a,0x3f,0x5e,0x35,0xfd,0x26,0x01,0x36,0xfe,0xca,0x01,0x86,0x01,0x04,0x47,0x3b,0x3a,0x48,0x00, +0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1e,0x00,0x3e,0x40,0x3b,0x14,0x0b,0x02,0x02,0x01,0x01,0x4c,0x00,0x06,0x00,0x01,0x02,0x06,0x01,0x69,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x07,0x61,0x08,0x01,0x07,0x07,0x1e,0x07,0x4e,0x00,0x00,0x00,0x1e,0x00, +0x1d,0x23,0x11,0x11,0x11,0x13,0x24,0x21,0x09,0x07,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x23,0x22,0x07,0x07,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x04,0x46,0x35,0x3e,0x57,0x31,0x3a,0x33,0x5a,0x6e,0x01,0x40,0x78,0x10,0x4c,0x57,0x47,0x55,0x70,0x5d, +0xb4,0x52,0x3d,0x34,0x01,0x1e,0x77,0x3d,0x36,0xfe,0xcf,0x02,0x8b,0x4f,0x4f,0xfa,0x11,0x52,0x61,0x52,0xfe,0xce,0x58,0x6b,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05,0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1a,0x4d,0x07,0x01,0x06,0x06, +0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x11,0x82,0x64,0x64,0x01,0xa9,0xfe,0xb1,0xa0,0xa0,0x01,0x46,0x50,0x01,0x44,0x52,0xf2,0x50,0xfe,0xba,0x00,0x01,0x00,0x51,0xff,0x74,0x02,0x49,0x02,0xda,0x00,0x10, +0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03, +0x13,0x33,0x15,0x23,0x35,0x23,0x03,0x23,0x11,0x51,0x5a,0x6c,0xa2,0x62,0xb5,0x97,0x4c,0x50,0x3b,0xaa,0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xd6,0xdc,0x8c,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0x00,0x01,0x00,0x59,0xff,0x74,0x02,0x26,0x02,0xda,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67, +0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1a,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x11,0x23,0x11,0x59,0x5a,0xea,0x5a,0x2f,0x50,0x39,0xea,0x02,0xda, +0xfe,0xc8,0x01,0x38,0xfd,0x76,0xdc,0x8c,0x01,0x50,0xfe,0xb0,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02,0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01, +0x01,0x1a,0x4d,0x00,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x37,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xdc,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xdc,0x82,0x82,0x5a,0xc6, +0x4b,0x01,0xc9,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x37,0x4b,0xc6,0xc6,0x00,0x00,0x00,0x01,0x00,0x41,0xff,0x74,0x02,0x1e,0x02,0xda,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1a,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e, +0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x11,0x23,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x2f,0x50,0x01,0x0f,0x60,0x54,0x01,0x17,0xfe,0xe9,0x30,0x34,0x01,0x7b,0xfd,0x76,0xdc,0x8c, +0x00,0x01,0x00,0x5f,0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1a,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23, +0x11,0x23,0x11,0xb9,0x8c,0x5e,0x6a,0x5a,0x3f,0x39,0x82,0x5a,0x02,0xda,0xfe,0xf1,0x60,0x54,0xfe,0xe9,0x01,0x17,0x30,0x34,0xfe,0x85,0x02,0xda,0x00,0x02,0x00,0x54,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x16,0x00,0x1f,0x00,0x43,0x40,0x40,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x67,0x00,0x02, +0x02,0x04,0x61,0x00,0x04,0x04,0x1f,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x11,0x0f,0x0d,0x0c,0x0a,0x08,0x05,0x04,0x00,0x16,0x01,0x16,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x21,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33, +0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x29,0x62,0x73,0x01,0x50,0x42,0x39,0x39,0x42,0x5a,0x73,0x62,0x62,0x73,0x73,0x62,0x39,0x42,0xf6,0x42,0x0a,0x71,0x61,0xd1,0x7a,0x3b,0x46,0x46,0x3c,0x61,0x71,0x71,0x61,0xfe,0xb6,0x61,0x71,0x50,0x46,0x3c,0x7f,0x7f,0x3c,0x46,0xff,0xff,0x00,0x06, +0x00,0x00,0x02,0x52,0x03,0xb1,0x02,0x26,0x01,0xd1,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x34,0xff,0xf6,0x02,0x16,0x03,0xb1,0x02,0x26,0x01,0xd2,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x03,0xb1,0x02,0x26,0x01,0xd3,0x00,0x00,0x00,0x07,0x06,0x8e, +0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x03,0xb1,0x02,0x26,0x00,0x60,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xe4,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x1f,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32, +0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x70,0x62,0x62,0x70,0x70,0xdb,0xf2,0x3e,0x3b,0x3b,0x3e,0x79,0x3b,0x3e,0xf2,0x3f,0x0a,0x71,0x62,0x01,0x49,0x62,0x70,0x70,0x62,0xfe,0xb7,0x61,0x72,0x01,0xa8,0x74,0x40,0x43,0x43,0x40,0xfe,0x33,0x44,0x40,0x85,0x85,0x40,0x44,0x00,0xff,0xff,0x00,0x4b,0x00,0x00,0x01,0xf9, +0x03,0xb1,0x02,0x26,0x01,0xe3,0x00,0x00,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x38,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c, +0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf1,0x8b,0x8b,0x53,0x88,0x92,0xfd,0xbc,0x92,0x88,0x54,0x8a,0x8b,0x9f,0x4c,0x01,0x7c,0x01,0x5e,0xfe,0xa2, +0xfe,0x84,0x01,0x7e,0x01,0x5c,0xfe,0xa2,0xfe,0x84,0x02,0xda,0xfd,0x26,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x03,0xb6,0x00,0x27,0x06,0x91,0x02,0x62,0x00,0x00,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x47, +0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x38,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x11,0x22,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33, +0x03,0x13,0x35,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xba,0xf9,0xf9,0x67,0xf0,0xc6,0x50,0x50,0xfe,0x61,0x5a,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xd3,0x01,0xdc,0x8c,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x28,0x40,0x25,0x0b,0x05,0x02,0x00,0x01,0x01,0x4c,0x02, +0x01,0x01,0x01,0x38,0x4d,0x00,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x14,0x00,0x13,0x18,0x13,0x21,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x32,0x37,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x06,0x06,0x23,0x42,0x6a,0x33,0x16,0x14,0xd7,0x62,0x83,0x0d,0x10,0x02,0x02,0x0e, +0x0b,0x73,0x62,0xda,0x13,0x4d,0x31,0x53,0x37,0x33,0x02,0x1d,0xfe,0x9b,0x22,0x3d,0x0f,0x0f,0x3d,0x22,0x01,0x65,0xfd,0x9a,0x37,0x3d,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb6,0x02,0x26,0x02,0x09,0x00,0x00,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03, +0x00,0x1f,0x00,0x77,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x08,0x01,0x01,0x02,0x01,0x63,0x00,0x03,0x03,0x06,0x5f,0x00,0x06,0x06,0x3b,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06, +0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x59,0x40,0x1a,0x05,0x04,0x00,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01, +0x32,0x36,0x35,0x23,0x14,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x33,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x02,0x58,0xfe,0xdc,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x62,0x64,0x74,0x74,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x71,0x61,0x3e,0x43,0x43,0x3e,0x01,0x4a, +0x3e,0x43,0x43,0x3e,0x61,0x71,0x70,0x62,0xfe,0xb6,0x62,0x70,0xff,0xff,0x00,0x43,0xff,0xf6,0x01,0xfc,0x02,0x30,0x02,0x06,0x00,0xbd,0x00,0x00,0x00,0x02,0x00,0x56,0xff,0xf6,0x02,0x02,0x02,0xe4,0x00,0x16,0x00,0x24,0x00,0x36,0x40,0x33,0x0d,0x01,0x02,0x03,0x01,0x4c,0x09,0x08,0x02,0x01,0x4a,0x00,0x01,0x00,0x03,0x02,0x01,0x03, +0x69,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x11,0x0f,0x00,0x16,0x01,0x16,0x06,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x37,0x15,0x07,0x06,0x15,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x63,0x73,0x6d,0x6a,0xb6,0xa8,0x9a,0x0c,0x51,0x3e,0x5f,0x67,0x73,0x63,0x3a,0x42,0x42,0x3a,0x3a,0x42,0x42,0x0a,0x74,0x63,0xfd,0x79,0x86,0x0a,0x11,0x59,0x0f,0x0e,0xa4,0x2d,0x30,0x37,0x74,0x61,0x62,0x63,0x74,0x50,0x49,0x3e,0x62,0x3e,0x49,0x49,0x3e,0x62,0x3e,0x49,0x00,0x00,0x00, +0x00,0x03,0x00,0x5c,0x00,0x00,0x02,0x0d,0x02,0x26,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x39,0x40,0x36,0x08,0x01,0x05,0x02,0x01,0x4c,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x00,0x04,0x04,0x01,0x5f,0x06,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x18,0x16, +0x12,0x10,0x00,0x0f,0x00,0x0e,0x21,0x07,0x07,0x17,0x2b,0x33,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x5c,0xf1,0x53,0x60,0x3f,0x32,0x3c,0x42,0x66,0x57,0x9c,0x99,0x2a,0x30,0x30,0x2a,0x99,0x9c,0x2f, +0x35,0x35,0x2f,0x9c,0x02,0x26,0x4a,0x40,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x47,0x54,0x01,0x40,0x28,0x24,0x23,0x28,0xfe,0x78,0x2c,0x28,0x27,0x2c,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x05,0x00,0x1f,0x40,0x1c,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x03,0x01,0x02,0x02,0x1b,0x02, +0x4e,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x07,0x18,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x87,0x01,0x8b,0xfe,0xcf,0x02,0x26,0x52,0xfe,0x2c,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x00,0x00,0x02,0x12,0x03,0x11,0x02,0x26,0x02,0x0f,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x80,0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x00,0x02,0x0d, +0x02,0x8f,0x00,0x07,0x00,0x47,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x59,0x40,0x0c, +0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x35,0x33,0x15,0x21,0x11,0x82,0x01,0x36,0x55,0xfe,0xcf,0x02,0x26,0x69,0xbb,0xfe,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x1b,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0f,0x00,0x17,0x00,0x33,0x40,0x30,0x08,0x05,0x02,0x03,0x00,0x03,0x53,0x00,0x07,0x07, +0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x02,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x13,0x12,0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x15,0x11,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x3e,0x02,0x37,0x37,0x21,0x11,0x33,0x15,0x23,0x35,0x21,0x15,0x37,0x33,0x11,0x23,0x07,0x0e,0x02,0x1b,0x2a,0x0d, +0x19,0x12,0x01,0x04,0x01,0x6d,0x4b,0x50,0xfe,0x81,0x34,0xf6,0xbe,0x02,0x01,0x10,0x17,0x8c,0xdc,0x0c,0x31,0x58,0x48,0xf9,0xfe,0x2a,0xdc,0x8c,0x8c,0xdc,0x01,0x88,0xad,0x47,0x58,0x31,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x02,0x06,0x00,0xe1,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf6,0x02,0x04,0x03,0x09,0x02,0x26, +0x00,0xe1,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x26,0x00,0x15,0x00,0x36,0x40,0x33,0x0c,0x01,0x02,0x06,0x01,0x01,0x4c,0x03,0x01,0x01,0x08,0x01,0x06,0x05,0x01,0x06,0x67,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x0a,0x09,0x07,0x03,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00, +0x15,0x00,0x15,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x11,0x12,0x0b,0x07,0x1f,0x2b,0x33,0x13,0x03,0x33,0x17,0x33,0x35,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x23,0x35,0x23,0x07,0x0f,0x7b,0x73,0x56,0x65,0x35,0x4a,0x33,0x68,0x55,0x73,0x7b,0x59,0x69,0x36,0x4a,0x36,0x6a,0x01,0x1c,0x01,0x0a,0xed,0xed,0xed,0xed, +0xfe,0xf9,0xfe,0xe1,0xfb,0xfb,0xfb,0xfb,0x00,0x01,0x00,0x46,0xff,0xf9,0x02,0x0d,0x02,0x2d,0x00,0x2d,0x00,0x4e,0x40,0x4b,0x26,0x01,0x03,0x04,0x01,0x4c,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d, +0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x22,0x00,0x4e,0x01,0x00,0x21,0x1e,0x1c,0x1b,0x19,0x16,0x12,0x10,0x0f,0x0d,0x09,0x06,0x04,0x03,0x00,0x2d,0x01,0x2c,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x07, +0x23,0x36,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x23,0x01,0x0a,0x5a,0x6a,0x5a,0x39,0x31,0x35,0x34,0x3c,0x3c,0x34,0x78,0x75,0x2f,0x37,0x36,0x2f,0x2f,0x2c,0x35,0x02,0x5a,0x02,0x66,0x55,0x2f,0x5a,0x69,0x3f,0x32,0x3c,0x42,0x6f,0x5f,0x07,0x55,0x49,0x23,0x2a,0x2d,0x27,0x29,0x2f,0x4e,0x2a, +0x24,0x23,0x29,0x22,0x1d,0x41,0x4d,0x4a,0x45,0x2e,0x3f,0x04,0x04,0x04,0x4c,0x3c,0x4b,0x59,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x24,0x40,0x21,0x0e,0x06,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11, +0x15,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33,0x11,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x56,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfd,0xda,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc,0x03,0x11,0x02,0x26, +0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x01,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x00,0x0c,0x00,0x2d,0x40,0x2a,0x07,0x01,0x04,0x01,0x01,0x4c,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x12, +0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x15,0x67,0x5a,0x6b,0x98,0x67,0xb2,0xbc,0x69,0x9f,0x6c,0x02,0x26,0xe3,0xe3,0xfe,0xf8,0xfe,0xe2,0xf1,0xf1,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x03,0x11,0x02,0x26,0x02,0x19,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x65,0x00,0x00, +0x00,0x01,0x00,0x19,0xff,0xf9,0x01,0xfc,0x02,0x26,0x00,0x0f,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x17,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x02,0x61,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x1b,0x40,0x1b,0x00,0x03,0x03,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00, +0x00,0x04,0x61,0x05,0x01,0x04,0x04,0x22,0x04,0x4e,0x59,0x40,0x0d,0x00,0x00,0x00,0x0f,0x00,0x0e,0x11,0x11,0x13,0x21,0x06,0x07,0x1a,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x11,0x23,0x11,0x23,0x07,0x06,0x06,0x23,0x19,0x0f,0x2e,0x25,0x01,0x06,0x01,0x7a,0x5a,0xc7,0x05,0x03,0x4e,0x58,0x07,0x54,0x48,0x5d,0x01,0x34,0xfd, +0xda,0x01,0xd4,0xe6,0x83,0x72,0x00,0x00,0x00,0x01,0x00,0x48,0x00,0x00,0x02,0x10,0x02,0x26,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0e,0x0b,0x03,0x03,0x03,0x00,0x01,0x4c,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x01,0x01,0x00,0x00,0x1c,0x4d,0x05,0x04,0x02,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x00,0x12,0x00,0x12,0x15,0x11,0x12,0x11, +0x06,0x07,0x1a,0x2b,0x33,0x11,0x33,0x13,0x13,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x03,0x23,0x03,0x16,0x16,0x15,0x15,0x48,0x76,0x6c,0x6d,0x79,0x56,0x03,0x0a,0x75,0x52,0x6e,0x09,0x03,0x02,0x26,0xfe,0xf3,0x01,0x0d,0xfd,0xda,0x55,0x8f,0xd0,0x46,0xfe,0xdd,0x01,0x13,0x3e,0xc0,0x97,0x55,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc, +0x02,0x26,0x00,0x0b,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x02,0x01,0x00,0x00,0x1c,0x4d,0x06,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x5c,0x5a,0xec,0x5a,0x5a,0xec,0x02, +0x26,0xe3,0xe3,0xfd,0xda,0xf1,0xf1,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x5c,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x04,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x23,0x11,0x5c,0x01,0xa0,0x5a,0xec,0x02,0x26,0xfd,0xda,0x01,0xd4,0xfe,0x2c,0xff,0xff,0x00,0x5c,0xff,0x4c,0x02,0x01,0x02,0x30,0x02,0x06,0x01,0x3d,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x0b,0x02,0x30,0x02,0x06,0x00,0xd7,0x00,0x00,0x00,0x01,0x00,0x37, +0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x07,0x00,0x21,0x40,0x1e,0x02,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x04,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x07,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xc8,0x01,0xea,0xc8,0x01,0xd4,0x52,0x52,0xfe,0x2c,0x00,0x00, +0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x70,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0x70,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x30,0xff,0x4c,0x02,0x28,0x02,0xda,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x42,0x40,0x3f,0x00,0x02,0x02,0x1a, +0x4d,0x09,0x01,0x06,0x06,0x01,0x61,0x03,0x01,0x01,0x01,0x1c,0x4d,0x08,0x0b,0x02,0x07,0x07,0x00,0x61,0x04,0x01,0x00,0x00,0x1b,0x4d,0x0a,0x01,0x05,0x05,0x1e,0x05,0x4e,0x18,0x18,0x00,0x00,0x27,0x26,0x21,0x20,0x18,0x1f,0x18,0x1f,0x1a,0x19,0x00,0x17,0x00,0x17,0x17,0x11,0x11,0x17,0x11,0x0c,0x07,0x1b,0x2b,0x17,0x35,0x2e,0x02, +0x35,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x07,0x15,0x27,0x11,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0xff,0x3d,0x5e,0x34,0x34,0x5e,0x3d,0x5a,0x3e,0x5d,0x34,0x34,0x5d,0x3e,0x53,0x3c,0x45,0x45,0x88,0x3c,0x45,0x45,0x3c,0xb4,0xb4,0x02,0x36,0x5f,0x3d,0x80, +0x3d,0x5e,0x36,0x01,0xb4,0xb4,0x01,0x36,0x5e,0x3d,0x80,0x3d,0x5f,0x36,0x02,0xb4,0xfb,0x01,0x98,0x46,0x3b,0x94,0x3c,0x47,0x47,0x3c,0x94,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x4e,0x00,0x00,0x01,0xf4,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22, +0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x03,0x01,0x01,0x01,0x1c,0x4d,0x05,0x01,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x01,0x9a,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0xbf,0x5a,0x4c, +0xc1,0xc1,0x27,0x2e,0x01,0x16,0xfd,0xda,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x29,0x40,0x26,0x06,0x01,0x05,0x02,0x05,0x54,0x03,0x01,0x01,0x01,0x1c,0x4d,0x04,0x01,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x05, +0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0xea,0xfe,0x72,0x5a,0xdf,0x5a,0x4b,0x8c,0x8c,0x02,0x26,0xfe,0x2a,0x01,0xd6,0xfe,0x2a,0xdc,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0b,0x00,0x25,0x40,0x22,0x04,0x02,0x02,0x00,0x00,0x1c,0x4d,0x03,0x01,0x01,0x01,0x05,0x60,0x06,0x01,0x05, +0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x33,0x03,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x3e,0x02,0x55,0x77,0x4a,0x76,0x54,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfd,0xda,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x74,0x02,0x53,0x02,0x26,0x00,0x0f, +0x00,0x2d,0x40,0x2a,0x08,0x01,0x07,0x02,0x07,0x54,0x05,0x03,0x02,0x01,0x01,0x1c,0x4d,0x06,0x04,0x02,0x02,0x02,0x00,0x60,0x00,0x00,0x00,0x1b,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x02, +0x03,0xfe,0x39,0x51,0x76,0x46,0x76,0x51,0x43,0x8c,0x8c,0x02,0x26,0xfe,0x26,0x01,0xda,0xfe,0x26,0x01,0xda,0xfe,0x26,0xd8,0x00,0x01,0x00,0x5c,0xff,0x83,0x01,0xfc,0x02,0x26,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x19,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04, +0x01,0x00,0x00,0x1b,0x00,0x4e,0x1b,0x40,0x18,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x01,0x1c,0x4d,0x00,0x02,0x02,0x00,0x60,0x04,0x01,0x00,0x00,0x1b,0x00,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x07,0x1b,0x2b,0x17,0x35,0x23,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x15,0xff, +0xa3,0x5a,0xec,0x5a,0xa3,0x7d,0x7d,0x02,0x26,0xfe,0x2c,0x01,0xd4,0xfd,0xda,0x7d,0x00,0x02,0x00,0x69,0x00,0x00,0x02,0x28,0x02,0x26,0x00,0x0a,0x00,0x13,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x00,0x00,0x1c,0x4d,0x00,0x03,0x03,0x02,0x60,0x05,0x01,0x02,0x02,0x1b,0x02,0x4e,0x00,0x00,0x13,0x11,0x0d, +0x0b,0x00,0x0a,0x00,0x09,0x21,0x11,0x06,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x69,0x5a,0x9d,0x5d,0x6b,0x6c,0x5c,0x9d,0x9d,0x34,0x37,0x37,0x34,0x9d,0x02,0x26,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x19, +0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0c,0x00,0x15,0x00,0x31,0x40,0x2e,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x1b,0x03,0x4e,0x00,0x00,0x15,0x13,0x0f,0x0d,0x00,0x0c,0x00,0x0b,0x21,0x11,0x11,0x07,0x07,0x19,0x2b,0x33,0x11,0x23, +0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xa5,0x8c,0xe6,0x73,0x5d,0x6b,0x6c,0x5c,0x73,0x73,0x34,0x37,0x37,0x34,0x73,0x01,0xd6,0x50,0xca,0x5d,0x51,0x50,0x5e,0x52,0x2f,0x2d,0x2d,0x2f,0x00,0x00,0x03,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x26,0x00,0x0a,0x00,0x0e,0x00,0x17, +0x00,0x36,0x40,0x33,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x03,0x01,0x00,0x00,0x1c,0x4d,0x00,0x05,0x05,0x02,0x60,0x08,0x04,0x07,0x03,0x02,0x02,0x1b,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x17,0x15,0x11,0x0f,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x09,0x21,0x11,0x09,0x07,0x18,0x2b,0x33,0x11,0x33,0x15,0x33,0x32,0x16,0x15, +0x14,0x06,0x23,0x21,0x11,0x33,0x11,0x25,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x3c,0x54,0x37,0x59,0x67,0x67,0x59,0x01,0x01,0x54,0xfe,0x74,0x37,0x34,0x3c,0x3c,0x34,0x37,0x02,0x26,0xca,0x5e,0x50,0x50,0x5e,0x02,0x26,0xfd,0xda,0x48,0x37,0x2f,0x2f,0x37,0x00,0x00,0x00,0x02,0x00,0x05,0xff,0xfb,0x02,0x42,0x02,0x26,0x00,0x17, +0x00,0x21,0x00,0x9c,0x4b,0xb0,0x27,0x50,0x58,0x40,0x20,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x06,0x01,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2b,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f, +0x00,0x01,0x01,0x1c,0x4d,0x00,0x00,0x00,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x4d,0x00,0x06,0x06,0x03,0x61,0x08,0x05,0x02,0x03,0x03,0x1b,0x03,0x4e,0x1b,0x40,0x28,0x00,0x02,0x00,0x07,0x00,0x02,0x07,0x69,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x1c,0x4d,0x00,0x06,0x06,0x03,0x5f,0x00,0x03,0x03,0x1b,0x4d,0x00,0x00,0x00, +0x05,0x61,0x08,0x01,0x05,0x05,0x22,0x05,0x4e,0x59,0x59,0x40,0x12,0x00,0x00,0x21,0x1f,0x1a,0x18,0x00,0x17,0x00,0x16,0x11,0x25,0x21,0x13,0x21,0x09,0x07,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x13,0x21,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x03,0x06,0x06,0x23,0x25,0x33,0x32,0x36,0x35,0x35,0x34,0x26, +0x23,0x23,0x05,0x12,0x19,0x1e,0x01,0x04,0x01,0x11,0x3e,0x48,0x58,0x58,0x48,0x8b,0x71,0x03,0x01,0x4d,0x41,0x01,0x50,0x3e,0x24,0x27,0x27,0x24,0x3e,0x05,0x55,0x3e,0x34,0x01,0x64,0xc8,0x55,0x45,0x2a,0x45,0x55,0x01,0xd9,0xfe,0xe9,0x5b,0x6c,0x4f,0x2c,0x24,0x2a,0x24,0x2c,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x42, +0x02,0x26,0x00,0x13,0x00,0x1d,0x00,0x33,0x40,0x30,0x03,0x01,0x01,0x08,0x01,0x05,0x07,0x01,0x05,0x69,0x02,0x01,0x00,0x00,0x1c,0x4d,0x00,0x07,0x07,0x04,0x60,0x09,0x06,0x02,0x04,0x04,0x1b,0x04,0x4e,0x00,0x00,0x1d,0x1b,0x16,0x14,0x00,0x13,0x00,0x13,0x11,0x25,0x21,0x11,0x11,0x11,0x0a,0x07,0x1c,0x2b,0x33,0x11,0x33,0x15,0x33, +0x35,0x33,0x15,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x23,0x11,0x23,0x11,0x37,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x3e,0x53,0x8b,0x49,0x3d,0x48,0x58,0x58,0x48,0x86,0x8b,0xd4,0x3d,0x24,0x29,0x29,0x24,0x3d,0x02,0x26,0xc8,0xc8,0xc8,0x55,0x46,0x28,0x46,0x55,0x01,0x13,0xfe,0xed,0x4b,0x2c,0x24,0x28,0x24,0x2c,0x00, +0xff,0xff,0x00,0x55,0xff,0xf8,0x02,0x03,0x02,0x2e,0x02,0x06,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x57,0xff,0xf6,0x02,0x08,0x02,0x30,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x21,0x4d,0x00,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1d,0x1c,0x1a,0x18,0x15,0x14,0x13,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33, +0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x32,0x64,0x77,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x38,0x41,0x03,0x5a,0x03,0x74,0x0a,0x70,0x62,0x96,0x62,0x70,0x65,0x54,0x31,0x38,0x44,0x3e,0x1e,0x50,0x29,0x3d,0x44,0x39,0x31,0x55,0x65,0x00,0x01,0x00,0x50,0xff,0xf6,0x02,0x01,0x02,0x30,0x00,0x1f, +0x00,0x48,0x40,0x45,0x00,0x06,0x05,0x04,0x05,0x06,0x04,0x80,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x03,0x01,0x04,0x03,0x67,0x00,0x05,0x05,0x07,0x61,0x00,0x07,0x07,0x21,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x01,0x00,0x1a,0x18,0x16,0x15,0x13,0x11,0x0e,0x0d,0x0c,0x0b,0x08,0x06, +0x04,0x03,0x00,0x1f,0x01,0x1f,0x09,0x07,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x23,0x35,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x5f,0x74,0x03,0x5a,0x03,0x42,0x37,0x3b,0x46,0xb7,0xb7,0x46,0x3b,0x37,0x42,0x03,0x5a,0x03,0x74,0x5f, +0x64,0x77,0x77,0x0a,0x65,0x55,0x31,0x39,0x44,0x3d,0x29,0x50,0x1e,0x3e,0x44,0x38,0x31,0x54,0x65,0x70,0x62,0x96,0x62,0x70,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x2b,0x03,0x09,0x02,0x26,0x01,0x00,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x67,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x4c,0x01,0xc3,0x03,0x09,0x02,0x26,0x01,0x0e,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xa8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x39,0x40,0x36,0x09,0x01,0x05,0x06,0x01,0x4c,0x02,0x01,0x00,0x09,0x08,0x02,0x03,0x04,0x00,0x03, +0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x01,0x01,0x1a,0x4d,0x07,0x01,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x13,0x23,0x13,0x24,0x11,0x11,0x11,0x11,0x0a,0x07,0x1e,0x2b,0x11,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06, +0x15,0x11,0x23,0x11,0x5c,0x5a,0xa8,0xa8,0x01,0x07,0x4c,0x3f,0x53,0x62,0x5a,0x3f,0x36,0x38,0x41,0x5a,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xca,0x01,0x2c,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x30,0x02,0x30,0x00,0x15,0x00,0x23,0x00,0x73,0x4b,0xb0,0x18,0x50, +0x58,0x40,0x21,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x07,0x07,0x03,0x61,0x05,0x01,0x03,0x03,0x1c,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x02,0x08,0x02,0x00,0x00,0x20,0x00,0x4e,0x1b,0x40,0x29,0x00,0x04,0x00,0x01,0x06,0x04,0x01,0x67,0x00,0x03,0x03,0x1c,0x4d,0x00,0x07,0x07,0x05,0x61,0x00,0x05,0x05,0x21,0x4d,0x00,0x02, +0x02,0x1b,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x20,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x15,0x01,0x15,0x0a,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x15,0x23,0x11,0x33,0x15,0x33,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x8b,0x47,0x53,0x62,0x53,0x53,0x62,0x53,0x47,0x4c,0x59,0x59,0x4b,0x26,0x2b,0x2b,0x26,0x25,0x2a,0x2a,0x0a,0x5c,0x4e,0x53,0xf3,0x02,0x26,0xeb,0x4b,0x4e,0x5c,0x5c,0x4e,0xe6,0x4e,0x5c,0x46,0x36,0x2e,0xe6,0x2e,0x36,0x36,0x2e, +0xe6,0x2e,0x36,0x00,0x00,0x02,0x00,0x3f,0x00,0x00,0x01,0xfc,0x02,0x26,0x00,0x0d,0x00,0x16,0x00,0x38,0x40,0x35,0x01,0x01,0x02,0x04,0x01,0x4c,0x07,0x01,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x1c,0x4d,0x06,0x03,0x02,0x01,0x01,0x1b,0x01,0x4e,0x0f,0x0e,0x00,0x00,0x12,0x10,0x0e,0x16,0x0f, +0x16,0x00,0x0d,0x00,0x0d,0x11,0x11,0x26,0x08,0x07,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x11,0x23,0x35,0x23,0x07,0x13,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x3f,0x8d,0x3a,0x46,0x6c,0x5c,0xe8,0x5a,0x74,0x82,0x68,0x8e,0x8e,0x31,0x3b,0x3b,0xd6,0x0e,0x59,0x3d,0x50,0x5c,0xfd,0xda,0xd0,0xd0,0x01,0x1e,0xb9, +0x31,0x2c,0x2b,0x31,0x00,0x01,0x00,0x00,0xff,0x4c,0x01,0xfc,0x02,0xda,0x00,0x24,0x00,0x43,0x40,0x40,0x19,0x01,0x02,0x01,0x01,0x4c,0x06,0x01,0x04,0x07,0x01,0x03,0x08,0x04,0x03,0x67,0x00,0x08,0x00,0x01,0x02,0x08,0x01,0x69,0x00,0x05,0x05,0x1a,0x4d,0x00,0x02,0x02,0x1b,0x4d,0x00,0x00,0x00,0x09,0x61,0x0a,0x01,0x09,0x09,0x1e, +0x09,0x4e,0x00,0x00,0x00,0x24,0x00,0x23,0x24,0x11,0x11,0x11,0x11,0x11,0x13,0x25,0x21,0x0b,0x07,0x1f,0x2b,0x17,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0xfa,0x25,0x3e,0x45,0x3d,0x36, +0x38,0x3f,0x5a,0x5e,0x5e,0x5a,0xa6,0xa6,0x01,0x06,0x4b,0x3f,0x53,0x60,0x78,0x65,0xb4,0x53,0x43,0x3d,0x01,0x0d,0x3b,0x41,0x46,0x40,0xfe,0xde,0x02,0x3a,0x4b,0x55,0x55,0x4b,0xb9,0x37,0x3c,0x66,0x58,0xfe,0xe9,0x61,0x72,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x21,0x02,0x26,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x04,0x01,0x01,0x05, +0x01,0x00,0x06,0x01,0x00,0x67,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x1c,0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x07,0x1c,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x21,0x15,0x21,0x15,0x33,0x15,0x23,0x15,0x96,0x64,0x64,0x01,0x8b,0xfe,0xcf,0xaf,0xaf,0xeb,0x52, +0xe9,0x52,0x97,0x52,0xeb,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x10,0x00,0x36,0x40,0x33,0x07,0x01,0x06,0x01,0x01,0x4c,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x10,0x00, +0x10,0x11,0x11,0x11,0x12,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x37,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x23,0x27,0x23,0x15,0x5c,0x5a,0x62,0xa0,0x67,0xb9,0x88,0x4c,0x50,0x31,0xa0,0x63,0x02,0x26,0xe3,0xe3,0xfe,0xfa,0xd0,0xdc,0x8c,0xf5,0xf5,0x00,0x01,0x00,0x5b,0xff,0x74,0x02,0x26,0x02,0x26,0x00,0x0f, +0x00,0x30,0x40,0x2d,0x00,0x01,0x00,0x06,0x03,0x01,0x06,0x67,0x00,0x03,0x00,0x04,0x03,0x04,0x63,0x02,0x01,0x00,0x00,0x1c,0x4d,0x08,0x07,0x02,0x05,0x05,0x1b,0x05,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x07,0x1d,0x2b,0x33,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x33,0x15,0x23,0x35,0x23,0x35, +0x23,0x15,0x5b,0x5a,0xe8,0x5a,0x2f,0x50,0x39,0xe8,0x02,0x26,0xe5,0xe5,0xfe,0x2a,0xdc,0x8c,0xef,0xef,0xff,0xff,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x02,0x06,0x02,0x77,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x14,0x00,0x2f,0x40,0x2c,0x08,0x01,0x00,0x01,0x01,0x4c,0x03,0x01,0x00,0x07,0x06,0x02, +0x04,0x05,0x00,0x04,0x68,0x02,0x01,0x01,0x01,0x1c,0x4d,0x00,0x05,0x05,0x1e,0x05,0x4e,0x00,0x00,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x18,0x11,0x11,0x08,0x07,0x1c,0x2b,0x17,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x23,0x35,0x7d,0x82,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09, +0x0b,0x79,0x5c,0xc3,0x82,0x82,0x5a,0x4b,0x4b,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0x4b,0x69,0x69,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0x74,0x02,0x1c,0x02,0x26,0x00,0x13,0x00,0x2e,0x40,0x2b,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x00,0x05,0x04,0x05,0x63,0x03,0x01,0x01,0x01,0x1c, +0x4d,0x07,0x01,0x06,0x06,0x1b,0x06,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x23,0x13,0x21,0x08,0x07,0x1c,0x2b,0x21,0x35,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x35,0x01,0x95,0x93,0x55,0x64,0x5a,0x35,0x2d,0x90,0x5a,0x2d,0x50,0xbf,0x5a,0x4c,0xc1,0xc1,0x27,0x2e,0x01, +0x16,0xfe,0x2a,0xdc,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x64,0x00,0x00,0x02,0x0a,0x02,0x26,0x00,0x0f,0x00,0x25,0x40,0x22,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x67,0x05,0x01,0x04,0x04,0x1c,0x4d,0x03,0x01,0x01,0x01,0x1b,0x01,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x23,0x13,0x21,0x06,0x07,0x1a,0x2b,0x13,0x15,0x33,0x32,0x16, +0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x23,0x11,0x23,0x11,0xbe,0x93,0x56,0x63,0x5a,0x35,0x2d,0x90,0x5a,0x02,0x26,0xbf,0x59,0x4d,0xc1,0xc1,0x27,0x2e,0xfe,0xea,0x02,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0x30,0x00,0x17,0x00,0x20,0x00,0x3e,0x40,0x3b,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x02, +0x00,0x05,0x06,0x02,0x05,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x00,0x21,0x4d,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x20,0x01,0x4e,0x01,0x00,0x1e,0x1c,0x19,0x18,0x15,0x14,0x12,0x10,0x0d,0x0c,0x08,0x06,0x00,0x17,0x01,0x17,0x08,0x07,0x16,0x2b,0x01,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x26,0x35,0x35,0x21, +0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x13,0x21,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x01,0x2c,0x62,0x76,0x76,0x62,0x41,0x61,0x36,0x01,0x58,0x45,0x3b,0x32,0x41,0x07,0x5a,0x09,0x74,0xd7,0xff,0x00,0x43,0x3d,0x3d,0x43,0x02,0x30,0x75,0x67,0x82,0x67,0x75,0x34,0x5f,0x3f,0x62,0x34,0x3d,0x47,0x27,0x21,0x45,0x51,0xfe, +0xb4,0x1c,0x41,0x47,0x47,0x41,0x00,0x00,0xff,0xff,0x00,0x0f,0x00,0x00,0x02,0x49,0x03,0x09,0x02,0x26,0x02,0x15,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x46,0xff,0xf9,0x02,0x0d,0x03,0x09,0x02,0x26,0x02,0x16,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfc, +0x03,0x09,0x02,0x26,0x02,0x17,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x09,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x30,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05, +0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x21,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x20,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00,0x0d,0x01,0x0d,0x08,0x07,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14, +0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x61,0x71,0x71,0x61,0x60,0x72,0x72,0xda,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x72,0x61,0x95,0x62,0x70,0x72,0x5f,0x96,0x61,0x72,0x01,0x45,0x23,0x3f,0x44,0x44,0x3f,0xfe,0xe7,0x44,0x40,0x27,0x27,0x40, +0x44,0x00,0x00,0x00,0xff,0xff,0x00,0x4e,0x00,0x00,0x01,0xf4,0x03,0x09,0x02,0x26,0x02,0x27,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0x42,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x91,0x00,0x00,0x00,0x07,0x06,0x69,0x02,0xe3,0x00,0x00,0x00,0x03,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0x26,0x00,0x05, +0x00,0x0b,0x00,0x0f,0x00,0x38,0x40,0x35,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x04,0x02,0x02,0x00,0x00,0x3b,0x4d,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x39,0x01,0x4e,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x09,0x09,0x17,0x2b,0x21,0x03, +0x13,0x33,0x03,0x13,0x21,0x13,0x03,0x33,0x13,0x03,0x33,0x11,0x33,0x11,0x01,0xf7,0x97,0x87,0x53,0x86,0x9a,0xfd,0xbc,0x9a,0x86,0x53,0x87,0x97,0xa5,0x4c,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x01,0x1b,0x01,0x0b,0xfe,0xf4,0xfe,0xe6,0x02,0x26,0xfd,0xda,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x00,0x05, +0x00,0x09,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x3b,0x4d,0x05,0x03,0x04,0x03,0x01,0x01,0x39,0x01,0x4e,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5,0xf9, +0xfe,0x2d,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xfe,0xe5,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x03,0x11,0x02,0x26,0x02,0x4b,0x00,0x00,0x00,0x07,0x06,0x6b,0x02,0x62,0x00,0x00,0x00,0x02,0x00,0x64,0xff,0x74,0x02,0x3a,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x34,0x40,0x31,0x04,0x01,0x02,0x01,0x00,0x01, +0x4c,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x04,0x01,0x00,0x00,0x3b,0x4d,0x07,0x05,0x06,0x03,0x03,0x03,0x39,0x03,0x4e,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x12,0x12,0x08,0x09,0x19,0x2b,0x21,0x03,0x13,0x33,0x03,0x17,0x33,0x15,0x23,0x35,0x21,0x11,0x33,0x11,0x01,0xc2,0xf6,0xe6,0x71,0xe5, +0xb3,0x49,0x50,0xfe,0x7a,0x5a,0x01,0x1a,0x01,0x0c,0xfe,0xf5,0xcb,0xdc,0x8c,0x02,0x26,0xfd,0xda,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0xa7,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0x4c,0x02,0x22,0x03,0x11,0x02,0x26,0x01,0xa7,0x00,0x00,0x00,0x07,0x06,0x70,0x02,0x58,0x00,0x00,0x00,0x02,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1f,0x00,0x48,0x40,0x45,0x00,0x00,0x00,0x07,0x05,0x00,0x07,0x69,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x67,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x01,0x01,0x02,0x59,0x09,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x05,0x04,0x00,0x00,0x1a,0x18,0x16, +0x15,0x13,0x11,0x0c,0x0a,0x08,0x07,0x04,0x1f,0x05,0x1f,0x00,0x03,0x00,0x03,0x11,0x0a,0x09,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x32,0x36,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x02,0x58,0xfe,0xdc,0x5f,0x75,0x03,0x5a,0x03,0x42,0x38,0x3b, +0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x75,0x5f,0x64,0x78,0x78,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x01,0x22,0x66,0x58,0x34,0x3a,0x44,0x3e,0x97,0x3e,0x43,0x39,0x35,0x58,0x66,0x70,0x62,0x96,0x62,0x70,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x01,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x12, +0x02,0xda,0x02,0x06,0x00,0x1a,0x00,0x00,0xff,0xff,0x00,0x82,0x00,0x00,0x02,0x2b,0x02,0xda,0x02,0x06,0x01,0xcb,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x26,0x40,0x23,0x0a,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x01,0x60,0x03,0x01,0x01,0x01,0x29,0x01, +0x4e,0x00,0x00,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x04,0x08,0x17,0x2b,0x33,0x13,0x33,0x13,0x01,0x03,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x32,0xbe,0x79,0xbd,0xfe,0xe2,0x66,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x02,0xda,0xfd,0x26,0x01,0xf0,0xfe,0x60,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x00,0x00,0x00,0xff,0xff,0x00,0x64, +0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x06,0x00,0x25,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xda,0x02,0x06,0x00,0xb1,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x01,0xfb,0x02,0xda,0x02,0x06,0x00,0x40,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1b,0x00,0x1f,0x00,0x3e,0x40,0x3b, +0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x1c,0x1c,0x0f,0x0e,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x08,0x16,0x2b,0x05,0x22,0x26,0x35, +0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x27,0x35,0x33,0x15,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0x62,0x3b,0x3f,0x3f,0x3b,0x3a,0x40,0x40,0x20,0xb4,0x0a,0x70,0x62,0x01,0x4a,0x62,0x70,0x6f,0x62,0xfe,0xb5,0x62,0x70,0x51,0x43,0x3e,0x01, +0x4a,0x3e,0x43,0x43,0x3e,0xfe,0xb6,0x3e,0x43,0xfe,0x52,0x52,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x02,0xda,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0x51,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0c,0x00,0x1b,0x40,0x18,0x00,0x00,0x00,0x28, +0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x08,0x18,0x2b,0x33,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x31,0x30,0x06,0x07,0x03,0x32,0xbe,0x79,0xbd,0x5b,0x7b,0x11,0x13,0x13,0x11,0x7a,0x02,0xda,0xfd,0x26,0x01,0xef,0x47,0x5e,0x5d,0x47,0xfe,0x10,0x00,0x00,0x00,0xff,0xff,0x00,0x48, +0x00,0x00,0x02,0x10,0x02,0xda,0x02,0x06,0x00,0x59,0x00,0x00,0xff,0xff,0x00,0x5a,0x00,0x00,0x01,0xfe,0x02,0xda,0x02,0x06,0x00,0x5a,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00, +0x00,0x00,0x28,0x4d,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x05,0x29,0x05,0x4e,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x01,0x35,0x21,0x15,0x50,0x01,0xb8,0xfe,0x66,0x01,0x7c,0xfe,0x66, +0x01,0xb8,0x02,0x88,0x52,0x52,0xfe,0xc1,0x52,0x52,0xfe,0xb7,0x52,0x52,0x00,0x00,0xff,0xff,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0x00,0x5e,0x00,0x00,0x01,0xfa,0x02,0xda,0x02,0x06,0x01,0xdb,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x00,0x7a,0x00,0x00, +0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0b,0x00,0x34,0x40,0x31,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01,0x02,0x02,0x4b,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x28,0x4d,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x03,0x29,0x03,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x08, +0x19,0x2b,0x33,0x35,0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x4b,0xe8,0xe8,0x01,0xdb,0xfe,0x8f,0xeb,0xec,0x01,0x72,0x50,0x01,0x23,0x01,0x17,0x50,0x50,0xfe,0xed,0xfe,0xd9,0x50,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x21,0x02,0xda,0x02,0x06,0x00,0x89,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35, +0x02,0xda,0x02,0x06,0x00,0xa8,0x00,0x00,0xff,0xff,0x00,0x2e,0xff,0xe7,0x02,0x2a,0x03,0x02,0x02,0x06,0x01,0xe1,0x00,0x00,0xff,0xff,0x00,0x28,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xa7,0x00,0x00,0x00,0x01,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x19,0x00,0x2b,0x40,0x28,0x04,0x01,0x02,0x06,0x01,0x00,0x07,0x02, +0x00,0x6a,0x05,0x03,0x02,0x01,0x01,0x28,0x4d,0x08,0x01,0x07,0x07,0x29,0x07,0x4e,0x00,0x00,0x00,0x19,0x00,0x19,0x14,0x13,0x11,0x11,0x13,0x14,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x15,0xff,0x3c,0x5a,0x33,0x54, +0x43,0x38,0x4e,0x38,0x43,0x54,0x32,0x5b,0x3c,0xaa,0x34,0x5d,0x3f,0x01,0x60,0xfe,0xa0,0x3d,0x45,0x01,0xe2,0xfe,0x1e,0x45,0x3d,0x01,0x60,0xfe,0xa0,0x3f,0x5d,0x34,0xaa,0x00,0x00,0x00,0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x27,0x02,0xe4,0x00,0x27,0x00,0x5f,0x4b,0xb0,0x2a,0x50,0x58,0x40,0x20,0x06,0x01,0x04,0x05,0x00,0x00,0x04, +0x72,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x1b,0x40,0x21,0x06,0x01,0x04,0x05,0x00,0x05,0x04,0x00,0x80,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x2e,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x08,0x07,0x02,0x03,0x03,0x29,0x03,0x4e,0x59,0x40,0x10, +0x00,0x00,0x00,0x27,0x00,0x27,0x15,0x25,0x11,0x11,0x27,0x28,0x11,0x09,0x08,0x1d,0x2b,0x33,0x35,0x33,0x35,0x2e,0x02,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x07,0x15,0x33,0x15,0x23,0x35,0x32,0x36,0x35,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x15,0x32,0x91,0x18,0x36,0x25,0x77,0x65,0x65, +0x77,0x25,0x35,0x19,0x92,0xd3,0x28,0x32,0x47,0x3b,0x3b,0x47,0x32,0x28,0x50,0x05,0x03,0x23,0x45,0x35,0x01,0x18,0x62,0x75,0x75,0x62,0xfe,0xe8,0x35,0x44,0x23,0x03,0x06,0x50,0x6e,0x49,0x39,0x01,0x1d,0x3e,0x49,0x49,0x3e,0xfe,0xe3,0x39,0x49,0x6e,0xff,0xff,0x00,0x0a,0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x26,0x00,0x01,0x00,0x00, +0x00,0x07,0x06,0xb1,0xff,0x29,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x02,0x08,0x02,0xda,0x02,0x26,0x00,0x25,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xac,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xfb,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x40,0x00,0x00,0xff,0xff,0xff,0x8d,0x00,0x00,0x01,0xef, +0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xac,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0xff,0xb0,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x27,0x06,0xb1,0xfe,0xcf,0x00,0x00,0x02,0x06,0x00,0x60,0x00,0x00,0xff,0xff,0xff,0x83,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x27,0x06,0xb1,0xfe,0xa2,0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00, +0xff,0xff,0xff,0xb0,0x00,0x00,0x02,0x27,0x02,0xe4,0x02,0x26,0x02,0x68,0x00,0x00,0x00,0x07,0x06,0xb1,0xfe,0xcf,0x00,0x00,0xff,0xff,0x00,0x69,0x00,0x00,0x01,0xef,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58,0x00,0x00,0x02,0x06,0x00,0x43,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x02,0x35,0x03,0xb1,0x00,0x27,0x06,0x8e,0x02,0x58, +0x00,0x00,0x02,0x06,0x00,0xa8,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x17,0x00,0x42,0x40,0x3f,0x07,0x01,0x07,0x01,0x01,0x4c,0x00,0x03,0x07,0x06,0x07,0x03,0x06,0x80,0x00,0x01,0x00,0x07,0x03,0x01,0x07,0x67,0x02,0x01,0x00,0x00,0x28,0x4d,0x09,0x08,0x02,0x06,0x06,0x29,0x4d,0x00,0x05,0x05,0x04,0x61, +0x00,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x12,0x21,0x23,0x12,0x11,0x11,0x11,0x0a,0x08,0x1e,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x03,0x23,0x11,0x5c,0x5a,0x6c,0xa2,0x62,0xb5,0x9b,0x38,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x25,0xaa, +0x69,0x02,0xda,0xfe,0xc6,0x01,0x3a,0xfe,0xa0,0xfe,0xcd,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x51,0xfe,0xaf,0x00,0x00,0x00,0xff,0xff,0x00,0x5d,0x00,0x00,0x02,0x30,0x02,0xda,0x02,0x06,0x00,0xba,0x00,0x00,0x00,0x02,0x00,0x5d,0xff,0x4c,0x02,0x44,0x02,0xda,0x00,0x10,0x00,0x14,0x00,0x40,0x40,0x3d,0x0a,0x07,0x02,0x03,0x02,0x01, +0x4c,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x05,0x01,0x02,0x02,0x38,0x4d,0x08,0x06,0x02,0x01,0x01,0x39,0x4d,0x00,0x00,0x00,0x04,0x61,0x07,0x01,0x04,0x04,0x3d,0x04,0x4e,0x11,0x11,0x00,0x00,0x11,0x14,0x11,0x14,0x13,0x12,0x00,0x10,0x00,0x0f,0x12,0x12,0x12,0x21,0x09,0x09,0x1a,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x23,0x03, +0x13,0x33,0x03,0x13,0x33,0x15,0x14,0x06,0x23,0x25,0x11,0x33,0x11,0x01,0x6c,0x1d,0x2d,0x38,0x2f,0xf9,0xf9,0x67,0xf0,0xcb,0x43,0x5f,0x5c,0xfe,0xd4,0x5a,0xb4,0x4f,0x37,0x2e,0x01,0x7c,0x01,0x5e,0xfe,0xa2,0xfe,0xcb,0x47,0x58,0x5c,0xb4,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x01,0xfc,0x02,0x30,0x00,0x13, +0x00,0x21,0x00,0x67,0xb6,0x10,0x0a,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x19,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x31,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x03,0x06,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1b,0x40,0x21,0x00,0x02,0x02,0x2b,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x31,0x4d,0x00,0x03, +0x03,0x29,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x59,0x40,0x17,0x15,0x14,0x01,0x00,0x1c,0x1a,0x14,0x21,0x15,0x21,0x0f,0x0e,0x0d,0x0c,0x08,0x06,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27, +0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x0c,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x0a,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46,0x44,0x40,0x96,0x40,0x44,0x00,0x00, +0x00,0x02,0x00,0x5c,0xff,0x4c,0x02,0x1a,0x02,0xe4,0x00,0x1b,0x00,0x31,0x00,0x48,0x40,0x45,0x0c,0x01,0x04,0x05,0x18,0x01,0x03,0x04,0x02,0x4c,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x69,0x00,0x06,0x06,0x00,0x61,0x00,0x00,0x00,0x2e,0x4d,0x08,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x07,0x01,0x02,0x02,0x2d,0x02,0x4e, +0x1d,0x1c,0x00,0x00,0x2c,0x2a,0x26,0x24,0x23,0x21,0x1c,0x31,0x1d,0x31,0x00,0x1b,0x00,0x1b,0x2e,0x24,0x09,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x5c,0x34,0x5e,0x3d,0x3d,0x5b,0x34,0x40,0x33,0x2d,0x43,0x26,0x35,0x60,0x3f,0x3c,0x4d,0x07,0x03,0x03,0x86,0x3a,0x48,0x48,0x3b,0x37,0x27,0x34,0x40,0x40,0x34,0x34,0x41,0x4b,0xb4,0x02,0xc5,0x3f,0x5f,0x35,0x2d,0x51,0x35,0x38,0x56,0x0d,0x03,0x06,0x36,0x53,0x33,0x41,0x63,0x37,0x3c, +0x34,0x7a,0xa0,0xfc,0x4f,0x3f,0x3f,0x4f,0x4c,0x3f,0x33,0x33,0x3f,0x48,0x3b,0xfe,0xc5,0x3f,0x4f,0x00,0x00,0x01,0x00,0x3c,0xff,0x4c,0x02,0x1c,0x02,0x26,0x00,0x0e,0x00,0x23,0x40,0x20,0x0d,0x07,0x01,0x03,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x00,0x2b,0x4d,0x03,0x01,0x02,0x02,0x2d,0x02,0x4e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x18, +0x12,0x04,0x08,0x18,0x2b,0x17,0x35,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0xff,0xc3,0x5f,0x7c,0x0c,0x0a,0x03,0x03,0x09,0x0b,0x79,0x5c,0xc3,0xb4,0xb4,0x02,0x26,0xfe,0x93,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x02,0x00,0x54,0xff,0xf6,0x02,0x04,0x02,0xda,0x00,0x16, +0x00,0x24,0x00,0x3f,0x40,0x3c,0x0c,0x01,0x01,0x03,0x01,0x4c,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1f,0x1d,0x17,0x24,0x18,0x24,0x10,0x0f,0x0e,0x0d,0x08,0x07,0x00,0x16,0x01,0x16,0x08, +0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x26,0x26,0x27,0x35,0x21,0x15,0x21,0x1e,0x02,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x61,0x77,0x31,0x58,0x3a,0x06,0x22,0x57,0x38,0x01,0x89,0xfe,0xdc,0x61,0x89,0x49,0x76,0x62,0x39,0x43,0x1b,0x23,0x3f, +0x37,0x46,0x45,0x0a,0x73,0x64,0x61,0x3f,0x5e,0x35,0x1c,0x42,0x2a,0x52,0x4b,0x43,0x78,0x86,0x59,0x82,0x7d,0x50,0x51,0x5e,0x3f,0x58,0x29,0x4b,0x3c,0x61,0x40,0x47,0x00,0x01,0x00,0x4b,0xff,0xf9,0x02,0x12,0x02,0x2d,0x00,0x2d,0x00,0x52,0x40,0x4f,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80, +0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x09,0x01,0x00,0x00,0x32,0x00,0x4e,0x02,0x00,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0a,0x08,0x16,0x2b, +0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36, +0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a,0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x47,0x02,0x30,0x02,0xda,0x00,0x1e,0x00,0x18,0x40,0x15, +0x12,0x01,0x02,0x00,0x49,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x28,0x00,0x4e,0x11,0x1e,0x02,0x08,0x18,0x2b,0x05,0x27,0x37,0x36,0x35,0x34,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x21,0x15,0x07,0x06,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x15,0x14,0x07,0x01,0xe4,0x46,0x2e,0x0a,0x22,0x84,0x65,0x62,0x62,0x6d, +0x86,0xfe,0xba,0x01,0xb3,0xba,0x5a,0x52,0x89,0x81,0x2f,0x32,0x1b,0xb9,0x2a,0x49,0x10,0x0e,0x1a,0x0b,0x26,0x1d,0x62,0x49,0x43,0x8d,0x5c,0x71,0x52,0x5a,0xa6,0x50,0x6f,0x2f,0x4d,0x28,0x25,0x0d,0x3c,0x26,0x27,0x29,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x02,0x30,0x02,0x06,0x01,0x1b,0x00,0x00,0x00,0x03,0x00,0x58, +0xff,0xf6,0x02,0x00,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x28,0x4d,0x07,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x2f,0x00,0x4e,0x18,0x17,0x01,0x00,0x1c,0x1b,0x17,0x1f,0x18,0x1f,0x14,0x12,0x0f,0x0e,0x08,0x06,0x00, +0x0d,0x01,0x0d,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x13,0x32,0x36,0x35,0x35,0x23,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72,0x72,0xdc,0xf4,0x3f,0x3b,0x3a,0x40,0x7a,0x3b,0x3f,0xf4,0x40,0x0a,0x70,0x62,0x01,0x40, +0x62,0x70,0x6f,0x62,0xfe,0xbf,0x62,0x70,0x01,0x9d,0x75,0x40,0x42,0x42,0x40,0xfe,0x3e,0x42,0x40,0x7d,0x7d,0x40,0x42,0x00,0x00,0x01,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x28,0x40,0x25,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00, +0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x05,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x9a,0x49,0x57,0xc3,0x01,0x1d,0x26,0x20,0x8c,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xff,0xff,0x00,0x67,0x00,0x00,0x02,0x35,0x02,0x26,0x02,0x06,0x02,0x19,0x00,0x00, +0x00,0x01,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0d,0x00,0x22,0x40,0x1f,0x09,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x00,0x28,0x4d,0x03,0x02,0x02,0x01,0x01,0x29,0x01,0x4e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x04,0x08,0x18,0x2b,0x33,0x13,0x27,0x33,0x01,0x23,0x03,0x26,0x26,0x27,0x14,0x06,0x07,0x03,0x32,0xcc, +0x4a,0x60,0x01,0x12,0x60,0x83,0x0d,0x0c,0x05,0x08,0x0c,0x7e,0x02,0x1d,0xbd,0xfd,0x26,0x01,0x65,0x23,0x36,0x0f,0x0f,0x36,0x23,0xfe,0x9b,0x00,0x00,0x01,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x00,0x18,0x00,0x57,0xb5,0x0e,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x01, +0x01,0x03,0x61,0x04,0x01,0x03,0x03,0x29,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x1b,0x40,0x1c,0x02,0x01,0x00,0x00,0x2b,0x4d,0x00,0x03,0x03,0x29,0x4d,0x00,0x01,0x01,0x04,0x61,0x00,0x04,0x04,0x2f,0x4d,0x06,0x01,0x05,0x05,0x2d,0x05,0x4e,0x59,0x40,0x0e,0x00,0x00,0x00,0x18,0x00,0x18,0x24,0x11,0x13,0x23,0x11,0x07,0x08,0x1b, +0x2b,0x17,0x11,0x33,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x5d,0x5a,0x3c,0x37,0x38,0x3f,0x5a,0x58,0x03,0x03,0x36,0x3e,0x3e,0x30,0x03,0x03,0x02,0xb4,0x02,0xda,0xfe,0xa2,0x3e,0x46,0x46,0x3e,0x01,0x5e,0xfd,0xda,0x69,0x35,0x3e,0x3e,0x35,0x7d,0xa0,0x00, +0xff,0xff,0x00,0x36,0x00,0x00,0x02,0x22,0x02,0x26,0x02,0x06,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x47,0x02,0x1f,0x02,0xe4,0x00,0x2e,0x00,0x3a,0x40,0x37,0x1f,0x01,0x02,0x01,0x01,0x4c,0x14,0x13,0x02,0x02,0x49,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x80,0x00,0x01,0x00,0x02,0x01,0x02,0x63,0x05,0x01,0x00,0x00,0x03,0x61, +0x00,0x03,0x03,0x2e,0x00,0x4e,0x01,0x00,0x2c,0x2b,0x28,0x26,0x0a,0x08,0x07,0x05,0x00,0x2e,0x01,0x2e,0x06,0x08,0x16,0x2b,0x01,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x16,0x16,0x07,0x07,0x27,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x16,0x16,0x17,0x23,0x26,0x26,0x01,0x45,0x37,0x44,0x44,0x37,0x92,0x8e,0x42,0x53,0x74,0x8f,0x4a,0x1e,0x2a,0x29,0x46,0x2b,0x0e,0x0a,0x1c,0x8b,0x5e,0x5b,0x4e,0x3e,0x34,0x41,0x37,0x62,0x40,0x40,0x5e,0x36,0x02,0x5a,0x04,0x40,0x02,0x92,0x42,0x32,0x31,0x39,0x50,0x46,0x38,0x4e,0x23,0x2c,0x17,0x65,0x44,0x42,0x27,0x46,0x18, +0x24,0x09,0x2c,0x1e,0x5e,0x45,0x42,0x60,0x0b,0x03,0x0d,0x51,0x39,0x35,0x53,0x2f,0x2d,0x4e,0x33,0x29,0x33,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x02,0x2e,0x02,0x06,0x01,0x22,0x00,0x00,0x00,0x01,0x00,0x19,0xff,0xfb,0x02,0x2b,0x02,0x26,0x00,0x13,0x00,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x19,0x05,0x03,0x02, +0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x06,0x06,0x00,0x61,0x02,0x07,0x02,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x1d,0x05,0x03,0x02,0x01,0x01,0x04,0x5f,0x00,0x04,0x04,0x2b,0x4d,0x00,0x02,0x02,0x29,0x4d,0x00,0x06,0x06,0x00,0x61,0x07,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x40,0x15,0x01,0x00,0x12,0x10,0x0d,0x0c,0x0b, +0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x13,0x01,0x13,0x08,0x08,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x02,0x18,0x4c,0x5b,0xad,0x57,0x54,0x02,0x11,0x63,0x29,0x23,0x18,0x05,0x60,0x4f,0x01,0x2c,0xfe,0x2a,0x01,0xd6,0x50,0x50,0xfe,0xce,0x29,0x2c,0x54, +0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x38,0x40,0x35,0x0e,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x31,0x4d,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x2f,0x4d,0x05,0x01,0x02,0x02,0x2d,0x02,0x4e,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11, +0x00,0x11,0x25,0x23,0x07,0x08,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f,0xb4,0x02,0x18,0x5f, +0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x5a,0xff,0x47,0x02,0x0b,0x02,0x30,0x00,0x1f,0x00,0x1d,0x40,0x1a,0x1f,0x01,0x01,0x49,0x00,0x01,0x02,0x01,0x86,0x00,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x31,0x02,0x4e,0x22,0x12,0x2b,0x03, +0x08,0x19,0x2b,0x05,0x37,0x36,0x26,0x27,0x27,0x26,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x07,0x07,0x01,0x59,0x2b,0x0e,0x0a,0x1c,0x76,0x4a,0x52,0x77,0x64,0x5f,0x74,0x03,0x5a,0x03,0x41,0x38,0x3b,0x46,0x31,0x2b,0x7a,0x4a,0x1e,0x2a,0x29,0x92,0x46, +0x18,0x24,0x09,0x25,0x17,0x63,0x44,0x82,0x62,0x70,0x66,0x58,0x35,0x39,0x43,0x3e,0x83,0x25,0x3a,0x0e,0x26,0x17,0x65,0x44,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x3a,0x02,0x26,0x00,0x14,0x00,0x22,0x00,0x30,0x40,0x2d,0x04,0x01,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x2b,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05, +0x01,0x00,0x00,0x2f,0x00,0x4e,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x0c,0x0b,0x0a,0x08,0x00,0x14,0x01,0x14,0x07,0x08,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x23,0x15,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01, +0x29,0x40,0x5f,0x35,0x35,0x5f,0x40,0x01,0x11,0xa9,0x32,0x3a,0x35,0x5f,0x40,0x39,0x41,0x41,0x39,0x39,0x41,0x41,0x0a,0x35,0x5e,0x3f,0x8c,0x3f,0x5f,0x34,0x52,0x03,0x04,0x43,0x36,0x8c,0x3f,0x5e,0x35,0x50,0x46,0x3c,0x8c,0x3c,0x46,0x46,0x3c,0x8c,0x3c,0x46,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x08,0x02,0x26,0x00,0x0f, +0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x00,0x04,0x04,0x00,0x5f,0x05,0x01,0x00,0x00,0x29,0x00,0x4e,0x01,0x00,0x0e,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0f,0x01,0x0f,0x06,0x08,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x16,0x33,0x33,0x15,0x01,0x6d,0x44, +0x52,0xa8,0x01,0xd9,0xd7,0x21,0x1b,0x96,0x4f,0x42,0x01,0x43,0x52,0x52,0xfe,0xbd,0x1c,0x23,0x52,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0x26,0x02,0x06,0x01,0x51,0x00,0x00,0x00,0x02,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x2b,0x00,0x1e,0x00,0x27,0x00,0x3b,0x40,0x38,0x0b,0x01,0x01,0x06,0x01,0x4c,0x0a,0x01,0x02,0x4a, +0x00,0x06,0x06,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x05,0x01,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x00,0x29,0x4d,0x07,0x01,0x04,0x04,0x2d,0x04,0x4e,0x00,0x00,0x26,0x25,0x20,0x1f,0x00,0x1e,0x00,0x1e,0x17,0x21,0x1f,0x11,0x08,0x08,0x1a,0x2b,0x17,0x35,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x07,0x06, +0x16,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x15,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0xff,0x3b,0x5b,0x33,0x22,0x3e,0x28,0x16,0x1d,0x01,0x01,0x46,0x38,0x50,0x3c,0x5b,0x34,0x33,0x5a,0x3c,0x08,0x38,0x45,0x42,0x35,0x06,0xb4,0xb4,0x34,0x5e,0x3d,0x92,0x34,0x56,0x39,0x07,0x5f,0x05,0x3b,0x26,0x9c, +0x3a,0x49,0x01,0xdf,0x32,0x58,0x3b,0x92,0x3d,0x5e,0x34,0xb4,0xfb,0x49,0x3a,0x9c,0x36,0x44,0x00,0x00,0xff,0xff,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0x4c,0x02,0x22,0x02,0x26,0x00,0x17,0x00,0x2d,0x40,0x2a,0x05,0x03,0x02,0x01,0x01,0x2b,0x4d,0x04,0x01,0x02,0x02,0x00, +0x62,0x06,0x01,0x00,0x00,0x29,0x4d,0x08,0x01,0x07,0x07,0x2d,0x07,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x13,0x13,0x11,0x11,0x13,0x13,0x11,0x09,0x08,0x1d,0x2b,0x17,0x35,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x33,0x11,0x33,0x11,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x15,0xff,0x5c,0x6d,0x54,0x3e,0x3d,0x4e,0x3d,0x3e, +0x54,0x6d,0x5c,0xb4,0xb4,0x6c,0x5e,0x01,0x5c,0xfe,0xa4,0x3d,0x44,0x01,0xdd,0xfe,0x23,0x44,0x3d,0x01,0x5c,0xfe,0xa4,0x5e,0x6c,0xb4,0x00,0x00,0x00,0x01,0x00,0x36,0xff,0xf6,0x02,0x22,0x02,0x30,0x00,0x2d,0x00,0x34,0x40,0x31,0x2a,0x01,0x01,0x02,0x01,0x4c,0x20,0x1f,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01, +0x01,0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x00,0x2f,0x00,0x4e,0x01,0x00,0x28,0x26,0x19,0x17,0x14,0x13,0x10,0x0e,0x00,0x2d,0x01,0x2d,0x06,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x27,0x35,0x16, +0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x06,0x06,0xb5,0x3a,0x45,0x4c,0x41,0x19,0x1f,0x22,0x1c,0x1c,0x20,0x4e,0x20,0x1c,0x1d,0x21,0x21,0x1c,0x44,0x4e,0x44,0x3b,0x31,0x41,0x05,0x02,0x04,0x40,0x0a,0x5c,0x4f,0xbb,0x57,0x73,0x0a,0x5f,0x05,0x3c,0x2e,0xc7,0x29,0x30,0x30,0x29,0xbe,0xbe,0x29,0x30,0x30,0x29,0xc7,0x2b, +0x39,0x06,0x5f,0x0a,0x70,0x55,0xbb,0x4f,0x5c,0x3f,0x35,0x35,0x3f,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x11,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb0,0x19,0x00,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x09,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x07,0x06,0x68,0x02,0x53,0x00,0x00, +0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x03,0x84,0x02,0x26,0x02,0x7d,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x09,0x02,0x26,0x01,0x51,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x03,0x84,0x02,0x26,0x01,0x51,0x00,0x00,0x00,0x06,0x06,0xb2,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x54,0xff,0xf8,0x02,0x04,0x03,0x11,0x02,0x26,0x01,0x22,0x00,0x00,0x00,0x06,0x06,0xb0,0x1e,0x00,0x00,0x00,0xff,0xff,0x00,0x36,0xff,0xf6,0x02,0x22, +0x03,0x11,0x02,0x26,0x02,0x8d,0x00,0x00,0x00,0x06,0x06,0xb0,0x14,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0xff,0xf6,0x01,0xfc,0x03,0x11,0x00,0x03,0x00,0x17,0x00,0x25,0x00,0x84,0xb6,0x14,0x0e,0x02,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x07,0x07,0x03, +0x61,0x04,0x01,0x03,0x03,0x31,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x05,0x09,0x02,0x02,0x02,0x2f,0x02,0x4e,0x1b,0x40,0x2c,0x00,0x00,0x01,0x00,0x85,0x08,0x01,0x01,0x03,0x01,0x85,0x00,0x04,0x04,0x2b,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x31,0x4d,0x00,0x05,0x05,0x29,0x4d,0x0a,0x01,0x06,0x06,0x02,0x61,0x09,0x01,0x02, +0x02,0x2f,0x02,0x4e,0x59,0x40,0x1e,0x19,0x18,0x05,0x04,0x00,0x00,0x20,0x1e,0x18,0x25,0x19,0x25,0x13,0x12,0x11,0x10,0x0c,0x0a,0x04,0x17,0x05,0x17,0x00,0x03,0x00,0x03,0x11,0x0b,0x08,0x17,0x2b,0x13,0x37,0x33,0x07,0x03,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x33,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32, +0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xea,0x6a,0x64,0x6f,0x3d,0x52,0x65,0x64,0x53,0x3e,0x50,0x07,0x03,0x02,0x5a,0x5a,0x01,0x07,0x50,0x20,0x38,0x40,0x40,0x38,0x39,0x42,0x42,0x02,0x85,0x8c,0x8c,0xfd,0x71,0x6e,0x5e,0xa1,0x5f,0x6e,0x3e,0x35,0x69,0xfd,0xda,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x96,0x3e,0x46, +0x44,0x40,0x96,0x40,0x44,0x00,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf9,0x02,0x12,0x03,0x11,0x00,0x2d,0x00,0x31,0x01,0x43,0x4b,0xb0,0x13,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07, +0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x14,0x50,0x58,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01, +0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x4b,0xb0,0x15,0x50,0x58,0x40,0x40,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03,0x04,0x05,0x04, +0x03,0x72,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x1b,0x40,0x41,0x00,0x09,0x0a,0x09,0x85,0x0c,0x01,0x0a,0x02,0x0a,0x85,0x00,0x03, +0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x01,0x05,0x06,0x05,0x01,0x06,0x80,0x00,0x08,0x06,0x07,0x06,0x08,0x07,0x80,0x00,0x05,0x00,0x06,0x08,0x05,0x06,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x31,0x4d,0x00,0x07,0x07,0x00,0x62,0x0b,0x01,0x00,0x00,0x32,0x00,0x4e,0x59,0x59,0x59,0x40,0x21,0x2e,0x2e,0x02,0x00,0x2e,0x31,0x2e, +0x31,0x30,0x2f,0x2b,0x2a,0x28,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x15,0x13,0x12,0x10,0x0d,0x07,0x06,0x00,0x2d,0x02,0x2d,0x0d,0x08,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14, +0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x03,0x37,0x33,0x07,0x01,0x4e,0x35,0x5f,0x6f,0x42,0x3c,0x32,0x3f,0x69,0x5a,0x2f,0x56,0x66,0x01,0x5a,0x01,0x36,0x2c,0x2f,0x2e,0x37,0x37,0x2f,0x75,0x78,0x34,0x3c,0x3c,0x34,0x35,0x31,0x39,0x5a,0x6a,0xb8,0x6a,0x64,0x6f,0x07,0x59,0x4b,0x3c,0x4c,0x04,0x04,0x04,0x3f,0x2e,0x45,0x4a, +0x4d,0x41,0x1d,0x22,0x29,0x23,0x24,0x2a,0x4e,0x2f,0x29,0x27,0x2d,0x2a,0x23,0x49,0x55,0x02,0x8c,0x8c,0x8c,0x00,0x00,0x00,0xff,0xff,0x00,0x5c,0x00,0x00,0x01,0xfe,0x03,0x11,0x02,0x26,0x01,0x1b,0x00,0x00,0x00,0x06,0x06,0xb0,0x23,0x00,0x00,0x00,0x00,0x01,0x00,0x5c,0xff,0x4c,0x02,0x26,0x02,0x26,0x00,0x1a,0x00,0x39,0x40,0x36, +0x19,0x06,0x02,0x02,0x00,0x01,0x4c,0x00,0x02,0x00,0x05,0x00,0x02,0x05,0x80,0x01,0x01,0x00,0x00,0x2b,0x4d,0x07,0x06,0x02,0x05,0x05,0x29,0x4d,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x2d,0x03,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x12,0x21,0x23,0x11,0x15,0x11,0x08,0x08,0x1c,0x2b,0x33,0x11,0x33,0x11,0x14,0x06,0x07,0x13,0x33, +0x11,0x33,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x23,0x11,0x34,0x36,0x37,0x03,0x5c,0x56,0x03,0x08,0xe5,0x70,0x2a,0x5f,0x5c,0x1d,0x1d,0x2d,0x38,0x2a,0x03,0x08,0xe5,0x02,0x26,0xfe,0xd8,0x2b,0x5c,0x1d,0x01,0xcc,0xfe,0x21,0x47,0x58,0x5c,0x4f,0x37,0x2e,0x01,0x29,0x2c,0x5c,0x1d,0xfe,0x32,0x00,0xff,0xff,0x00,0x30, +0xff,0x4c,0x02,0x28,0x02,0xda,0x02,0x06,0x02,0x25,0x00,0x00,0x00,0x02,0x00,0x0f,0xff,0xf6,0x02,0x49,0x02,0x26,0x00,0x18,0x00,0x2c,0x00,0x49,0x40,0x46,0x16,0x01,0x05,0x06,0x01,0x4c,0x00,0x06,0x01,0x05,0x01,0x06,0x05,0x80,0x08,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x2b,0x4d,0x07,0x0a,0x02,0x05,0x05,0x00,0x61,0x04, +0x09,0x02,0x00,0x00,0x2f,0x00,0x4e,0x1a,0x19,0x01,0x00,0x29,0x26,0x23,0x21,0x1e,0x1d,0x19,0x2c,0x1a,0x2c,0x14,0x12,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x18,0x01,0x18,0x0b,0x08,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x23,0x35,0x21,0x15,0x23,0x16,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32, +0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x23,0x23,0x22,0x15,0x15,0x14,0xb5,0x3a,0x44,0x27,0x24,0x73,0x02,0x3a,0x73,0x24,0x27,0x43,0x3b,0x31,0x3e,0x08,0x07,0x3e,0x1e,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x3d,0xc6,0x3d,0x0a,0x56,0x4b,0xbc,0x2e,0x42,0x11,0x52,0x52,0x11,0x42,0x2e,0xbc,0x4b,0x56,0x39,0x32,0x32, +0x39,0x4c,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xea,0x54,0x54,0xea,0x54,0x00,0x00,0xff,0xff,0x00,0x64,0x00,0x00,0x02,0x37,0x02,0x26,0x02,0x06,0x02,0x4b,0x00,0x00,0x00,0x01,0x00,0x1a,0xff,0x4c,0x02,0x21,0x02,0x2a,0x00,0x15,0x00,0x29,0x40,0x26,0x14,0x0e,0x01,0x03,0x03,0x00,0x01,0x4c,0x00,0x00,0x00,0x01,0x61,0x02,0x01,0x01, +0x01,0x3b,0x4d,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x21,0x23,0x05,0x09,0x19,0x2b,0x05,0x35,0x03,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x17,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x15,0x01,0x09,0x8b,0x11,0x35,0x1e,0x1e,0x3a,0x51,0x10,0x4e,0x0b,0x09,0x03,0x03,0x0b,0x0b,0x74,0x5c, +0xbe,0xb4,0xb4,0x01,0xa7,0x31,0x52,0x36,0x35,0xfe,0xfa,0x22,0x35,0x11,0x11,0x35,0x22,0x01,0x6d,0xfd,0xda,0xb4,0x00,0x00,0x00,0x01,0x00,0x2f,0xff,0xfb,0x02,0x44,0x02,0xdf,0x00,0x1a,0x00,0x59,0xb6,0x0d,0x07,0x02,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x17,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00, +0x04,0x04,0x00,0x61,0x01,0x05,0x02,0x00,0x00,0x42,0x00,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x01,0x01,0x39,0x4d,0x00,0x04,0x04,0x00,0x61,0x05,0x01,0x00,0x00,0x42,0x00,0x4e,0x59,0x40,0x11,0x01,0x00,0x19,0x17,0x14,0x12,0x11,0x0f,0x0c,0x0b,0x00,0x1a,0x01,0x1a,0x06,0x09,0x16,0x2b,0x05, +0x22,0x26,0x27,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x23,0x13,0x27,0x26,0x23,0x23,0x35,0x33,0x32,0x17,0x13,0x16,0x33,0x33,0x15,0x02,0x1c,0x3a,0x50,0x11,0x48,0x07,0x0b,0x03,0x03,0x0c,0x08,0x7d,0x61,0xca,0x23,0x12,0x30,0x3c,0x4b,0x66,0x24,0xa9,0x11,0x35,0x28,0x05,0x37,0x34,0xea,0x19,0x2b,0x10,0x10,0x2c,0x14,0xfe,0xac, +0x02,0x04,0x5b,0x2d,0x53,0x6a,0xfe,0x09,0x31,0x52,0x00,0x00,0x00,0x03,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x14,0x00,0x3a,0x40,0x37,0x11,0x01,0x06,0x05,0x01,0x4c,0x00,0x06,0x00,0x02,0x04,0x06,0x02,0x67,0x00,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x01,0x5f,0x07,0x03,0x02, +0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x33,0x13,0x33,0x13,0x23,0x27,0x23,0x07,0x25,0x33,0x03,0x23,0x03,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x2e,0xaa,0xa8,0xaa,0x98,0x32,0xd4,0x32,0x01,0x5c,0x3e,0x98,0x3d,0x8a,0xc1,0x43,0x0c,0x0e,0x02, +0x02,0x10,0x0c,0x02,0xda,0xfd,0x26,0xd5,0xd5,0x28,0x02,0x8a,0xfe,0x4b,0x01,0x29,0x37,0x46,0x0d,0x0b,0x49,0x36,0x00,0x00,0x00,0x06,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x0e,0x00,0x12,0x00,0x1c,0x00,0x23,0x00,0x2b,0x00,0x32,0x00,0x4d,0x40,0x4a,0x23,0x1d,0x18,0x17,0x04,0x04,0x03,0x08,0x01,0x07,0x04,0x32,0x2c,0x28, +0x27,0x04,0x02,0x07,0x03,0x4c,0x00,0x04,0x00,0x07,0x02,0x04,0x07,0x67,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x2b,0x29,0x26,0x24,0x1c,0x1a,0x15,0x13,0x12,0x11,0x10,0x0f,0x00,0x0e,0x00,0x0d,0x21,0x09,0x09,0x17,0x2b,0x33,0x11,0x33, +0x32,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x4b,0xf2,0x5c,0x6c,0x3c,0x35,0x3e,0x45,0x74,0x63,0xcb,0x3c,0x3c,0x66,0x67,0x0d, +0x18,0x0a,0x0a,0x18,0x0d,0x67,0xbf,0x1f,0x22,0x22,0x1f,0xbf,0x6a,0x19,0x13,0x13,0x19,0x6a,0xbf,0x27,0x2c,0x2c,0x27,0x02,0xda,0x64,0x56,0x43,0x58,0x0e,0x0d,0x5c,0x47,0x5b,0x6c,0x28,0x02,0x8a,0xfe,0xd9,0x03,0x02,0x01,0x1d,0x02,0x03,0xfe,0xef,0x12,0x41,0x2b,0x2b,0x40,0x12,0xfd,0x8c,0x04,0x01,0x33,0x04,0xfe,0xd6,0x13,0x48, +0x32,0x32,0x47,0x13,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x19,0x00,0x21,0x00,0x4a,0x40,0x47,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00, +0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16, +0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79,0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x56,0x62,0x2a,0x79,0xe5,0x1c,0x20,0x20,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x61,0x53,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x09, +0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x36,0x40,0x33,0x1f,0x18,0x13,0x12,0x04,0x02,0x03,0x01,0x4c,0x05,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x04,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x17,0x15,0x10,0x0e,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x08,0x21,0x07,0x09,0x17,0x2b,0x33,0x11, +0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x23,0x13,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x4b,0xdb,0x6b,0x7d,0x7d,0x6b,0xb1,0x3c,0x3c,0x66,0x4b,0x19,0x2c,0x13,0x13,0x2c,0x19,0x4b,0xcd,0x1d,0x1f,0x1f,0x1d,0x02,0xda,0x77,0x65,0xfe,0xde,0x65,0x77,0x28,0x02,0x8a, +0xfd,0x76,0x09,0x07,0x02,0x6a,0x08,0x08,0xfd,0x9f,0x17,0x47,0x2d,0x01,0x22,0x2d,0x47,0x17,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x35,0x40,0x32,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x07,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x06,0x01,0x04,0x04,0x05,0x5f,0x08, +0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x55,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x01,0x2b,0xfe,0x6e,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0xbf, +0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x5a,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x33,0x40,0x30,0x00,0x02,0x00,0x03,0x05,0x02,0x03,0x67,0x06,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x05,0x05,0x04,0x5f,0x07,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x08,0x09,0x1a,0x2b,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x5a,0x01,0xbd,0xfe,0xd5,0x01,0x08,0xfe,0xf8,0x67,0x3c,0x3c,0x02,0xda,0x28,0xfe,0xdf,0x28,0xfe,0x97,0x28,0x02,0x8a,0x00,0x03,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x1c,0x00,0x24,0x00,0x2a,0x00,0x4f,0x40,0x4c, +0x1e,0x10,0x02,0x02,0x03,0x25,0x1d,0x15,0x11,0x04,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x06,0x03,0x02,0x06,0x80,0x00,0x06,0x07,0x01,0x05,0x04,0x06,0x05,0x67,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x04,0x04,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x2a,0x29,0x19,0x18,0x17,0x16,0x14,0x12,0x0f, +0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1c,0x01,0x1c,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x37,0x11,0x23,0x35,0x33,0x15,0x14,0x06,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x23,0x01,0x2c,0x67,0x7b,0x7b,0x67,0x69,0x79, +0x2a,0x62,0x56,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x50,0xe0,0x7a,0xe4,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0x53,0x61,0x0f,0xfd,0x80,0x0f,0x0f,0x01,0x1d,0x28,0xa0,0x65,0x77,0x4f,0x02,0x50,0x18,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x18,0x18,0x47,0x2e,0x78,0x00,0x00,0x00,0x03,0x00,0x4b, +0x00,0x00,0x02,0x0d,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x3f,0x40,0x3c,0x02,0x01,0x00,0x09,0x01,0x07,0x01,0x00,0x07,0x67,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x08,0x01,0x06,0x03,0x03,0x06,0x57,0x08,0x01,0x06,0x06,0x03,0x5f,0x0a,0x05,0x02,0x03,0x06,0x03,0x4f,0x00,0x00,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c, +0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x23,0x11,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x23,0x4b,0x90,0xa2,0x90,0x90,0xa2,0x66,0x3c,0x3c,0x01,0x32,0x3c,0x3c,0x02,0xda,0xfe,0xb5,0x01,0x4b,0xfd,0x26,0x01,0x67,0xfe,0x99,0x28,0x02,0x8a,0xfd,0x76,0x02, +0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x07,0x03,0x02,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x04,0x02,0x00,0x00,0x05,0x5f,0x08,0x01,0x05,0x05,0x39,0x05,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09, +0x09,0x1b,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x50,0x95,0x95,0x01,0xb8,0x93,0x93,0xf9,0x3c,0x3c,0x28,0x02,0x8a,0x28,0x28,0xfd,0x76,0x28,0x28,0x02,0x8a,0x00,0x02,0x00,0x1b,0xff,0xf6,0x02,0x49,0x02,0xda,0x00,0x12,0x00,0x18,0x00,0x3f,0x40,0x3c,0x13,0x09,0x02,0x02,0x01,0x01, +0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x06,0x05,0x02,0x03,0x03,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x18,0x17,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x12,0x01,0x12,0x08,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, +0x37,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x14,0x06,0x37,0x36,0x36,0x35,0x11,0x23,0xff,0x69,0x7b,0x2a,0x65,0x55,0x30,0x24,0xa1,0x01,0x97,0x66,0x7b,0x15,0x1d,0x1f,0x3c,0x0a,0x77,0x65,0x53,0x61,0x0f,0x02,0x85,0x28,0x28,0xfe,0x20,0x65,0x77,0x50,0x17,0x47,0x2e,0x01,0xe0,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x45, +0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x43,0x40,0x40,0x13,0x07,0x02,0x01,0x07,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06,0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d, +0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x13,0x33,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x3a,0xe3,0x33,0xa1,0xbb,0xa0,0x7e,0x4c,0x66,0x3c,0x3c,0x01,0x50,0x42,0x99,0x29,0x02,0xda,0xfe,0xad,0x01,0x53,0xf0,0xfe,0x16,0x01,0x5f,0xfe, +0xa1,0x28,0x02,0x8a,0xfd,0x76,0x01,0x98,0x3d,0x00,0x00,0x00,0x00,0x02,0x00,0x64,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x29,0x40,0x26,0x00,0x04,0x04,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x03,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x09,0x08,0x07,0x06,0x00,0x05,0x00,0x05,0x11, +0x11,0x06,0x09,0x18,0x2b,0x33,0x11,0x33,0x11,0x21,0x15,0x25,0x33,0x11,0x23,0x64,0x90,0x01,0x32,0xfe,0x68,0x3c,0x3c,0x02,0xda,0xfd,0x4e,0x28,0x28,0x02,0x8a,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1c,0x00,0x43,0x40,0x40,0x0f,0x0c,0x02,0x05,0x00,0x16,0x03,0x02,0x03,0x05,0x02,0x4c, +0x00,0x03,0x05,0x06,0x05,0x03,0x06,0x80,0x07,0x01,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x00,0x14,0x00,0x14,0x16,0x11,0x12,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x17,0x37,0x33,0x11,0x23,0x11,0x34,0x36, +0x36,0x37,0x03,0x23,0x03,0x1e,0x02,0x15,0x11,0x13,0x37,0x27,0x23,0x01,0x33,0x11,0x23,0x32,0xad,0x50,0x4f,0xa8,0x90,0x02,0x02,0x01,0x88,0x32,0x8b,0x02,0x02,0x02,0x9f,0x20,0x57,0x40,0x01,0x3c,0x3c,0x3c,0x02,0xda,0xdf,0xdf,0xfd,0x26,0x01,0xb8,0x33,0x65,0x56,0x1b,0xfe,0x84,0x01,0x7c,0x1b,0x56,0x65,0x33,0xfe,0x48,0x01,0x68, +0x59,0xf1,0xfd,0x76,0x02,0x8a,0x00,0x00,0x00,0x02,0x00,0x5f,0x00,0x00,0x01,0xf9,0x02,0xda,0x00,0x0f,0x00,0x13,0x00,0x35,0x40,0x32,0x0b,0x03,0x02,0x04,0x05,0x01,0x4c,0x01,0x01,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x02,0x02,0x04,0x57,0x00,0x04,0x04,0x02,0x5f,0x06,0x03,0x02,0x02,0x04,0x02,0x4f,0x00,0x00,0x13,0x12, +0x11,0x10,0x00,0x0f,0x00,0x0f,0x11,0x15,0x11,0x07,0x06,0x19,0x2b,0x33,0x11,0x33,0x13,0x26,0x26,0x35,0x11,0x33,0x11,0x23,0x03,0x16,0x16,0x15,0x11,0x25,0x33,0x01,0x23,0x5f,0x7c,0xf9,0x03,0x02,0x2a,0x7e,0xf7,0x02,0x02,0x01,0x10,0x43,0xfe,0xe4,0x42,0x02,0xda,0xfd,0xc7,0x20,0x50,0x1b,0x01,0xae,0xfd,0x26,0x02,0x3a,0x21,0x4f, +0x1c,0xfe,0x52,0x27,0x02,0x8c,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xe4,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f, +0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12,0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0x2c, +0x68,0x7a,0x7a,0x68,0x68,0x7a,0x7a,0x68,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0x0a,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x65,0x77,0x28,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x27,0x02,0x50,0x17,0x48,0x2e,0xfe,0xca,0x2e,0x48,0x17,0x17,0x48,0x2e,0x01,0x36,0x2e, +0x48,0x17,0x00,0x00,0x00,0x04,0x00,0x4b,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x16,0x00,0x1b,0x00,0x41,0x40,0x3e,0x1b,0x17,0x13,0x12,0x04,0x05,0x04,0x01,0x4c,0x00,0x00,0x06,0x01,0x04,0x05,0x00,0x04,0x67,0x00,0x05,0x00,0x01,0x03,0x05,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x07, +0x01,0x02,0x03,0x02,0x4f,0x00,0x00,0x16,0x14,0x11,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x0a,0x00,0x0a,0x24,0x21,0x08,0x06,0x18,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x13,0x36,0x35,0x34,0x27,0x4b,0x01,0x09,0x60,0x72,0x73,0x5f,0x79,0x66,0x3c,0x3c, +0x66,0x79,0x1e,0x16,0x16,0x1e,0x79,0xd7,0x42,0x42,0x02,0xda,0x6e,0x5c,0x5c,0x6e,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x07,0x01,0x36,0x07,0xfe,0xd6,0x2c,0x5c,0x5e,0x2a,0x00,0x00,0x00,0x00,0x04,0x00,0x4a,0xff,0x4c,0x02,0x0e,0x02,0xe4,0x00,0x12,0x00,0x1c,0x00,0x24,0x00,0x2c,0x00,0x47,0x40,0x44,0x2c,0x25,0x1e,0x1d,0x1b,0x1a, +0x16,0x15,0x08,0x03,0x04,0x11,0x01,0x00,0x03,0x02,0x4c,0x05,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x00,0x00,0x03,0x00,0x51,0x14,0x13,0x00,0x00,0x19,0x17,0x13,0x1c,0x14,0x1c,0x00,0x12,0x00,0x12,0x25,0x22,0x07,0x06,0x18,0x2b,0x05, +0x27,0x06,0x23,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x17,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x11,0x14,0x16,0x05,0x36,0x36,0x35,0x11,0x34,0x26,0x27,0x01,0xc1,0x6a,0x13,0x18,0x67,0x7b,0x7b,0x67,0x67,0x7b,0x43,0x3e,0x71,0xd2,0x2e,0x24,0x24,0x2e,0x2e, +0x24,0x24,0x4e,0x1c,0x20,0x20,0x01,0x14,0x1d,0x1f,0x1f,0x1d,0xb4,0xad,0x03,0x77,0x65,0x01,0x36,0x65,0x77,0x77,0x65,0xfe,0xca,0x4b,0x6a,0x17,0xba,0xd2,0x0f,0x02,0x80,0x0f,0x0f,0xfd,0x80,0x0f,0x28,0x02,0x4e,0x17,0x47,0x2e,0xfe,0xca,0x2e,0x47,0x17,0x17,0x47,0x2e,0x01,0x36,0x2e,0x47,0x17,0x00,0x00,0x00,0x00,0x05,0x00,0x4b, +0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x11,0x00,0x19,0x00,0x20,0x00,0x26,0x00,0x4e,0x40,0x4b,0x1e,0x1d,0x16,0x15,0x04,0x06,0x05,0x08,0x01,0x02,0x06,0x02,0x4c,0x00,0x00,0x07,0x01,0x05,0x06,0x00,0x05,0x67,0x00,0x06,0x09,0x01,0x02,0x04,0x06,0x02,0x69,0x08,0x01,0x04,0x01,0x01,0x04,0x57,0x08,0x01,0x04,0x04,0x01,0x5f, +0x0a,0x03,0x02,0x01,0x04,0x01,0x4f,0x00,0x00,0x26,0x24,0x22,0x21,0x19,0x17,0x14,0x12,0x11,0x10,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0b,0x06,0x19,0x2b,0x33,0x11,0x21,0x32,0x16,0x15,0x14,0x06,0x07,0x13,0x23,0x03,0x23,0x11,0x27,0x33,0x11,0x23,0x13,0x33,0x32,0x37,0x11,0x26,0x23,0x23,0x05,0x34,0x26,0x27,0x11,0x36, +0x36,0x03,0x33,0x03,0x06,0x23,0x23,0x4b,0x01,0x04,0x60,0x72,0x4e,0x44,0xab,0xa7,0x9e,0x1a,0x66,0x3c,0x3c,0x66,0x74,0x1e,0x1a,0x1a,0x1e,0x74,0x01,0x1c,0x25,0x21,0x20,0x26,0x46,0x43,0x8f,0x0b,0x0b,0x2d,0x02,0xda,0x6e,0x5c,0x4c,0x66,0x11,0xfe,0xb3,0x01,0x46,0xfe,0xba,0x28,0x02,0x8a,0xfe,0xbc,0x08,0x01,0x34,0x08,0xa2,0x2d, +0x45,0x15,0xfe,0xf2,0x15,0x46,0xfe,0x44,0x01,0x1f,0x01,0x00,0x00,0x02,0x00,0x41,0xff,0xf6,0x02,0x17,0x02,0xe4,0x00,0x27,0x00,0x41,0x00,0x3a,0x40,0x37,0x3f,0x01,0x03,0x04,0x32,0x01,0x01,0x00,0x02,0x4c,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e, +0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05,0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14, +0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x41,0x2a,0x61,0x52,0x3a,0x44,0x31,0x2b,0x6d,0x3e,0x49,0x81,0x6d,0x5c,0x6b,0x2a,0x57,0x4a,0x37,0x40,0x32,0x2b,0x6e,0x41,0x4c,0x86,0x73,0x66,0x77,0x35,0x3b,0x33,0x6d,0x36,0x3f,0x23,0x1f,0x31,0x39,0x3f, +0x35,0x6c,0x38,0x41,0x27,0x20,0x2f,0x37,0xc0,0x4a,0x57,0x4c,0x40,0x24,0x40,0x13,0x31,0x1c,0x67,0x3d,0x60,0x71,0x65,0x56,0x44,0x4f,0x3f,0x36,0x1f,0x39,0x13,0x31,0x1d,0x72,0x46,0x67,0x79,0x6d,0x01,0xb5,0x31,0x55,0x17,0x32,0x19,0x53,0x2f,0x2b,0x4a,0x14,0x12,0x5e,0x3e,0x3a,0x5f,0x17,0x30,0x19,0x4e,0x2a,0x29,0x3d,0x0b,0x0b, +0x54,0x00,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x2b,0x40,0x28,0x05,0x02,0x02,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x00,0x04,0x04,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x07,0x09,0x19,0x2b,0x33, +0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0xe5,0xb3,0x01,0xf4,0xb1,0x66,0x3c,0x3c,0x02,0xb2,0x28,0x28,0xfd,0x4e,0x28,0x02,0x8a,0x00,0x02,0x00,0x4a,0xff,0xf6,0x02,0x0e,0x02,0xda,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d, +0x00,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2c,0x67,0x7b,0x90,0x24,0x2e,0x56,0x62,0x2a,0x7a, +0xe4,0x3c,0x20,0x0a,0x77,0x65,0x02,0x08,0xfd,0x53,0x0f,0x61,0x53,0x02,0x08,0xfd,0xf8,0x65,0x77,0x4f,0x02,0x6d,0xfe,0x20,0x2e,0x47,0x00,0x00,0x00,0x02,0x00,0x2e,0x00,0x00,0x02,0x2a,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00, +0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdd,0xaf,0x98,0x7f,0x0d,0x0e,0x01,0x02,0x0f,0x0d,0x7f,0x2c,0xaf,0x7b,0x3d,0x9a,0x3e,0x02,0xda,0xfd, +0xe4,0x37,0x42,0x11,0x11,0x43,0x36,0x02,0x1c,0xfd,0x26,0x28,0x02,0x8a,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x1f,0x00,0x23,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x29,0x1a,0x0f,0x06,0x05,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x38,0x4d,0x07,0x01,0x05,0x05,0x03,0x60, +0x08,0x04,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x11,0x18,0x18,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x35,0x23,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23, +0x01,0x33,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x59,0x59,0x92,0x45,0x04,0x01,0x03,0x05,0x04,0x04,0x56,0x38,0x5f,0x05,0x04,0x03,0x04,0x02,0x03,0x40,0x2a,0x5d,0x8e,0x28,0x08,0x0d,0x02,0x02,0x0b,0x08,0x30,0x69,0x3c,0x51,0x3c,0x01,0x5f,0x3e,0x59,0x07,0x09,0x04,0x04,0x0b,0x05,0x08,0x02,0xda,0xfd,0xe4,0x1b,0x25,0x22,0x22, +0x25,0x1b,0x02,0x1c,0xfd,0xe4,0x1b,0x25,0x22,0x22,0x25,0x1b,0x02,0x1c,0xfd,0x26,0xd5,0x2e,0x65,0x21,0x28,0x66,0x26,0xd5,0x27,0x02,0x8c,0xfd,0x74,0x01,0xeb,0x27,0x46,0x1e,0x1c,0x48,0x27,0x3b,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07,0x04,0x01,0x04,0x04, +0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x13,0x03,0x33,0x13,0x13,0x33,0x03,0x13,0x23,0x03,0x03,0x25,0x33,0x01,0x23,0x22,0xcb,0xcf,0xa9, +0x85,0xa2,0x31,0xbd,0xd8,0xa9,0x8e,0xb1,0x01,0x5c,0x46,0xfe,0xb6,0x45,0x01,0x43,0x01,0x97,0xfe,0xfb,0x01,0x05,0xfe,0xcf,0xfe,0x57,0x01,0x17,0xfe,0xe9,0x28,0x02,0x8a,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x02,0xda,0x00,0x0e,0x00,0x14,0x00,0x33,0x40,0x30,0x14,0x11,0x0d,0x07,0x01,0x05,0x03,0x04,0x01,0x4c, +0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x5f,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x13,0x12,0x10,0x0f,0x00,0x0e,0x00,0x0e,0x18,0x12,0x06,0x09,0x18,0x2b,0x33,0x11,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x11,0x27,0x33,0x35,0x03,0x23,0x13,0xe6,0xd2,0xa2,0x92, +0x0a,0x0f,0x03,0x03,0x12,0x0a,0x92,0x2f,0xce,0x66,0x3c,0xb4,0x42,0xba,0x01,0x04,0x01,0xd6,0xfe,0xba,0x16,0x2a,0x0a,0x0b,0x2c,0x16,0x01,0x43,0xfe,0x45,0xfe,0xe1,0x28,0xf7,0x01,0x93,0xfe,0x60,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x09,0x00,0x0d,0x00,0x3c,0x40,0x39,0x06,0x01,0x02,0x02,0x00,0x01, +0x4c,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x67,0x07,0x05,0x02,0x02,0x03,0x03,0x02,0x57,0x07,0x05,0x02,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x0d,0x0a,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x08,0x06,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x01, +0x23,0x01,0x46,0x01,0x2e,0xfe,0xdc,0x01,0xbd,0xfe,0xd2,0x01,0x33,0xfe,0xa0,0x01,0x30,0x41,0xfe,0xd0,0x2c,0x02,0x86,0x28,0x2c,0xfd,0x7a,0x28,0x28,0x02,0x8a,0xfd,0x76,0x00,0x00,0x00,0x00,0x04,0x00,0x36,0xff,0xf6,0x02,0x10,0x02,0x30,0x00,0x1a,0x00,0x23,0x00,0x2d,0x00,0x32,0x00,0xb2,0x4b,0xb0,0x18,0x50,0x58,0x40,0x11,0x20, +0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x00,0x06,0x03,0x4c,0x1b,0x40,0x11,0x20,0x01,0x02,0x04,0x2f,0x2e,0x2b,0x18,0x04,0x06,0x08,0x2c,0x01,0x07,0x06,0x03,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x29,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04, +0x61,0x00,0x04,0x04,0x41,0x4d,0x0a,0x07,0x02,0x06,0x06,0x00,0x61,0x05,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x02,0x01,0x02,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x06,0x01,0x08,0x67,0x00,0x02,0x02,0x04,0x61,0x00,0x04,0x04,0x41,0x4d,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x39,0x4d,0x0a,0x01,0x07,0x07, +0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x25,0x24,0x01,0x00,0x2a,0x28,0x24,0x2d,0x25,0x2d,0x1c,0x1b,0x17,0x16,0x13,0x11,0x0f,0x0e,0x0c,0x0a,0x07,0x05,0x00,0x1a,0x01,0x1a,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x36,0x36,0x33,0x32,0x16,0x15, +0x11,0x23,0x35,0x06,0x06,0x37,0x33,0x11,0x34,0x26,0x27,0x16,0x16,0x15,0x03,0x32,0x36,0x35,0x35,0x23,0x22,0x07,0x15,0x16,0x27,0x35,0x06,0x15,0x14,0xe7,0x52,0x5f,0x5e,0x52,0x9a,0x44,0x3b,0x39,0x49,0x03,0x2a,0x03,0x68,0x67,0x73,0x79,0x90,0x10,0x50,0x8a,0x3c,0x4a,0x44,0x26,0x2c,0xc0,0x45,0x51,0x9a,0x11,0x0f,0x11,0x3b,0x3c, +0x0a,0x5a,0x4d,0x4b,0x57,0x38,0x44,0x4a,0x45,0x3a,0x4a,0x60,0x5f,0x5a,0xfe,0x89,0x53,0x2b,0x32,0x32,0x01,0x4f,0x3e,0x4e,0x0a,0x10,0x51,0x35,0xfe,0xa7,0x4a,0x3f,0x70,0x03,0xf3,0x03,0x11,0xd8,0x20,0x4a,0x4e,0x00,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0xf6,0x02,0x17,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e, +0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x2a,0x24,0x1a,0x08,0x03,0x05,0x04,0x07,0x19,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03, +0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x01,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x01,0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59, +0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x15,0x23,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x25,0x33,0x11,0x23,0x13,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06,0x15,0x15, +0x14,0x16,0x37,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x6e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0xfe,0xb9,0x3c,0x3c,0xef,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0x8c,0x3c,0x1f,0x1d,0x0a,0x30,0x2a,0x50,0x02,0xda,0xfe,0xfc,0x2a,0x30,0x6c,0x5c,0xab,0x5b,0x6c,0x32,0x02,0x8a,0xfd,0x6c,0x02,0x02,0x01,0xe2, +0x02,0x02,0x56,0x4a,0xab,0x49,0x56,0x16,0x29,0x60,0xab,0x2f,0x47,0x14,0x00,0x00,0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x21,0x00,0x47,0x40,0x44,0x1b,0x10,0x02,0x02,0x03,0x1a,0x11,0x02,0x04,0x05,0x02,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x03,0x03, +0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x12,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x33,0x32,0x36,0x35,0x33,0x14, +0x06,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2f,0x69,0x7b,0x7b,0x69,0x66,0x78,0x2a,0x61,0x53,0x2f,0x25,0x25,0x2f,0x53,0x61,0x2a,0x78,0xe4,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x4e,0x5c,0x0e,0xfe,0x32,0x0e,0x5b,0x4e,0x60,0x71,0x4d,0x01,0x9f,0x16,0x43,0x2b,0x97,0x2b,0x42,0x00,0x00,0x04,0x00,0x41, +0xff,0xf6,0x02,0x0d,0x02,0xda,0x00,0x11,0x00,0x15,0x00,0x23,0x00,0x2a,0x00,0x9e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0e,0x25,0x24,0x20,0x0f,0x0a,0x05,0x04,0x07,0x21,0x01,0x06,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x05, +0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x09,0x06,0x02,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03, +0x39,0x4d,0x09,0x01,0x06,0x06,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1b,0x17,0x16,0x01,0x00,0x1e,0x1c,0x16,0x23,0x17,0x23,0x15,0x14,0x13,0x12,0x0e,0x0d,0x0c,0x0b,0x08,0x06,0x00,0x11,0x01,0x11,0x0a,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x23,0x35,0x06,0x06, +0x37,0x33,0x11,0x23,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0xea,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0x90,0x10,0x4c,0x86,0x3c,0x3c,0xb3,0x3f,0x4a,0x4a,0x3f,0x09,0x12,0x08,0x08,0x12,0x44,0x1c,0x20,0x0a,0x6c,0x5b,0xab,0x5c,0x6c,0x30,0x2a,0x01,0x04,0xfd, +0x26,0x50,0x2a,0x30,0x32,0x02,0x8a,0xfd,0x6c,0x56,0x49,0xab,0x4a,0x56,0x02,0x02,0xfe,0x1e,0x02,0x02,0x16,0x01,0xbe,0x14,0x47,0x2f,0xab,0x60,0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x15,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x4f,0x40,0x4c,0x24,0x22,0x1c,0x18,0x04,0x05,0x06,0x23,0x0d,0x02,0x03,0x04,0x02,0x4c, +0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x07,0x01,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x06,0x06,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1e,0x1d,0x1b,0x19,0x17,0x16,0x13,0x12,0x10,0x0e,0x0c,0x0b,0x08,0x06,0x00,0x15,0x01,0x15,0x09,0x09,0x16,0x2b,0x05, +0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x21,0x15,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x33,0x35,0x26,0x23,0x22,0x07,0x17,0x33,0x35,0x34,0x26,0x27,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x01,0x2e,0x6b,0x7d,0x7d,0x6b,0x69,0x7b,0xfe,0xc4,0x26,0x32,0x53,0x64,0x03,0x2a,0x03,0x7b,0xbe,0xac,0x25,0x2f, +0x32,0x26,0xd6,0x3c,0x1f,0x1d,0xff,0x00,0x1c,0x20,0x20,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x5a,0xd7,0x0f,0x56,0x49,0x5b,0x6c,0x01,0x36,0xce,0x0e,0x0f,0xcd,0x32,0x2b,0x43,0x16,0xfe,0x62,0x01,0x9d,0x16,0x42,0x2b,0x97,0x2b,0x42,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x14,0x00,0x1a,0x00,0x40, +0x40,0x3d,0x17,0x01,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x06,0x01,0x01,0x01,0x02,0x5f,0x05,0x01,0x02,0x02,0x3b,0x4d,0x09,0x07,0x02,0x00,0x00,0x08,0x5f,0x0a,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x16,0x15,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x23,0x11,0x11,0x11,0x0b,0x09,0x1e,0x2b, +0x33,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x25,0x33,0x11,0x06,0x06,0x15,0x41,0x8d,0x8d,0x8d,0x3d,0x3d,0xca,0xb4,0xb4,0xb4,0xb4,0xfe,0xe6,0x3c,0x1d,0x1f,0x28,0x01,0xd6,0x28,0x37,0x3b,0x42,0x28,0x8c,0x28,0xfe,0x2a,0x28,0x28,0x02,0x89,0x04,0x2f,0x21,0x00,0x00, +0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x19,0x00,0x25,0x00,0x2a,0x00,0x32,0x00,0x9f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x2c,0x2b,0x24,0x23,0x13,0x06,0x06,0x05,0x06,0x26,0x01,0x00,0x01,0x02,0x4c,0x1b,0x40,0x12,0x23,0x01,0x07,0x06,0x2c,0x2b,0x24,0x13,0x06,0x05,0x05,0x07,0x26,0x01,0x00,0x01,0x03,0x4c,0x59, +0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x06,0x06,0x02,0x61,0x03,0x01,0x02,0x02,0x41,0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x1b,0x40,0x2b,0x00,0x06,0x06,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x07,0x07,0x03,0x5f,0x00,0x03,0x03,0x3b, +0x4d,0x09,0x01,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x3f,0x4d,0x00,0x00,0x00,0x04,0x5f,0x08,0x01,0x04,0x04,0x3d,0x04,0x4e,0x59,0x40,0x17,0x1b,0x1a,0x00,0x00,0x2a,0x29,0x22,0x20,0x1a,0x25,0x1b,0x25,0x00,0x19,0x00,0x18,0x13,0x25,0x24,0x31,0x0a,0x09,0x1a,0x2b,0x17,0x35,0x33,0x32,0x32,0x37,0x35,0x06,0x06,0x23,0x22,0x26,0x35, +0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x14,0x06,0x23,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x07,0x11,0x16,0x17,0x36,0x35,0x11,0x23,0x01,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x6d,0xfd,0x05,0x0a,0x04,0x10,0x4a,0x37,0x4f,0x5c,0x5c,0x4f,0x37,0x4a,0x10,0x90,0x58,0x4b,0x74,0x40,0x47,0x47,0x40,0x15,0x10,0x10, +0xc6,0x3c,0x3c,0xff,0x00,0x1c,0x20,0x20,0xb4,0x28,0x01,0xd8,0x29,0x2e,0x6c,0x5b,0xab,0x5c,0x6c,0x2e,0x29,0x4d,0xfd,0xcb,0x4c,0x59,0xd2,0x56,0x49,0xab,0x4a,0x56,0x04,0xfe,0x1e,0x04,0x9c,0x1e,0x51,0x02,0x0d,0xfe,0x37,0x01,0xbc,0x14,0x46,0x2f,0xab,0x2f,0x45,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0xda,0x00,0x12, +0x00,0x16,0x00,0x1b,0x00,0x40,0x40,0x3d,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13, +0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x11,0x36,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0xda,0xfe,0xfe,0x2a,0x2e,0x6c,0x5c,0xfe,0x98,0x02, +0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x02,0x8a,0xfd,0x76,0x01,0x40,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0x00,0x00,0x02,0x26,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x25,0x00,0x8b,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2d,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x0a, +0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d,0x01,0x08,0x08,0x39,0x08,0x4e,0x1b,0x40,0x2b,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0c,0x01,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x0a,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x09,0x07,0x02,0x04,0x04,0x08,0x5f,0x0d, +0x01,0x08,0x08,0x39,0x08,0x4e,0x59,0x40,0x25,0x18,0x18,0x0d,0x0c,0x01,0x00,0x25,0x24,0x23,0x22,0x18,0x21,0x18,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0e,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x25,0x33,0x11,0x23,0x01,0x3b,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xe3,0xb3,0x9a,0x01,0x2a,0xa2,0xfe,0xf8,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24,0x2a,0x23,0x18,0x13,0x14,0x17,0x17, +0x14,0x13,0x18,0xfd,0x60,0x28,0x01,0xd6,0x28,0xfe,0x02,0x28,0x28,0x01,0xd6,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x01,0xbd,0x03,0x19,0x00,0x0b,0x00,0x17,0x00,0x24,0x00,0x29,0x00,0x8b,0xb6,0x25,0x1c,0x02,0x04,0x05,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x2b,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x03,0x03, +0x01,0x61,0x00,0x01,0x01,0x40,0x4d,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04,0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x1b,0x40,0x29,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x0a,0x01,0x02,0x09,0x01,0x00,0x06,0x02,0x00,0x69,0x08,0x01,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3b,0x4d,0x00,0x04, +0x04,0x07,0x5f,0x0b,0x01,0x07,0x07,0x3d,0x07,0x4e,0x59,0x40,0x21,0x18,0x18,0x0d,0x0c,0x01,0x00,0x29,0x28,0x18,0x24,0x18,0x23,0x20,0x1f,0x1e,0x1d,0x1b,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x35,0x33,0x32,0x37,0x11,0x23,0x35,0x21,0x11,0x14,0x06,0x23,0x37,0x36,0x35,0x11,0x23,0x01,0x63,0x29,0x31,0x31,0x29,0x29,0x31,0x31,0x29,0x17,0x1b,0x1b,0x17,0x17,0x1b,0x1b,0xfe,0xff,0x9f,0x1c,0x16,0xbd,0x01,0x4d,0x66,0x5c,0x5c,0x3c,0x3c,0x02,0x7d,0x2a,0x24,0x24,0x2a,0x2a,0x24,0x24, +0x2a,0x23,0x18,0x13,0x14,0x17,0x17,0x14,0x13,0x18,0xfc,0xac,0x28,0x06,0x02,0x84,0x28,0xfd,0xe4,0x59,0x65,0x40,0x26,0x58,0x01,0xf4,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x32,0x02,0xda,0x00,0x0c,0x00,0x10,0x00,0x14,0x00,0x47,0x40,0x44,0x13,0x07,0x02,0x01,0x02,0x14,0x01,0x04,0x01,0x02,0x4c,0x00,0x01,0x00,0x04,0x06, +0x01,0x04,0x67,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x02,0x02,0x3b,0x4d,0x08,0x01,0x06,0x06,0x03,0x60,0x09,0x05,0x02,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x33,0x11,0x33,0x11,0x33,0x37,0x33,0x07,0x13,0x23,0x03, +0x23,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x03,0x07,0x4b,0x90,0x37,0xd6,0x3e,0x99,0xa5,0xa8,0x67,0x48,0x66,0x3c,0x3c,0x01,0x36,0x44,0x82,0x2a,0x02,0xda,0xfe,0x51,0xfb,0xaf,0xfe,0x89,0x01,0x03,0xfe,0xfd,0x28,0x02,0x8a,0xfd,0x76,0x01,0x2a,0x2f,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x0f,0x00,0x31, +0x40,0x2e,0x0b,0x01,0x03,0x01,0x01,0x4c,0x04,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x03,0x03,0x00,0x5f,0x05,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x0d,0x0c,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x0a,0x01,0x0a,0x06,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x27,0x11,0x23,0x11, +0x14,0x01,0x6a,0x43,0x49,0xac,0x01,0x3d,0xb7,0xe1,0x3c,0x47,0x40,0x02,0x26,0x2d,0xfd,0x53,0x2d,0x30,0x02,0x7d,0xfd,0xda,0x48,0x00,0x00,0x00,0x00,0x04,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0x30,0x00,0x1c,0x00,0x22,0x00,0x28,0x00,0x2c,0x00,0xc1,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x0e,0x28,0x22,0x09,0x03,0x04,0x07,0x05,0x01,0x4c, +0x12,0x01,0x05,0x01,0x4b,0x1b,0x40,0x11,0x28,0x22,0x02,0x0a,0x05,0x09,0x03,0x02,0x07,0x0a,0x02,0x4c,0x12,0x01,0x05,0x01,0x4b,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1d,0x0a,0x01,0x05,0x05,0x00,0x61,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x4b, +0xb0,0x1a,0x50,0x58,0x40,0x27,0x0a,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x25,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x00,0x0a,0x0a,0x00,0x5f, +0x00,0x00,0x00,0x3b,0x4d,0x09,0x08,0x02,0x07,0x07,0x03,0x60,0x0b,0x06,0x04,0x03,0x03,0x03,0x39,0x03,0x4e,0x59,0x59,0x40,0x17,0x00,0x00,0x2c,0x2b,0x2a,0x29,0x24,0x23,0x1e,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x15,0x13,0x24,0x23,0x11,0x0c,0x09,0x1c,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16, +0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x23,0x11,0x06,0x06,0x15,0x11,0x25,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x34,0x26,0x27,0x03,0x33,0x11,0x23,0x0f,0x8c,0x07,0x34,0x29,0x26,0x38,0x0a,0x06,0x39,0x2d,0x36,0x40,0x8e,0x24,0x2a,0x82,0x24,0x2a,0x01,0x46,0x3c,0x20,0x1c,0xd0,0x32,0x1b,0x17,0xda,0x3c,0x3c,0x02,0x26,0x42, +0x23,0x29,0x2a,0x24,0x24,0x2a,0x46,0x3b,0xfe,0x51,0x02,0x07,0x04,0x32,0x28,0xfe,0x57,0x02,0x08,0x02,0x34,0x29,0xfe,0x57,0x28,0x01,0x81,0x23,0x31,0x07,0xfe,0x24,0x01,0x81,0x21,0x2e,0x0a,0xfe,0x26,0x01,0xd6,0x00,0x00,0x00,0x00,0x03,0x00,0x4b,0x00,0x00,0x02,0x10,0x02,0x30,0x00,0x12,0x00,0x16,0x00,0x1b,0x00,0x7a,0x4b,0xb0, +0x18,0x50,0x58,0xb7,0x1b,0x0c,0x03,0x03,0x05,0x03,0x01,0x4c,0x1b,0x40,0x0b,0x0c,0x01,0x06,0x03,0x1b,0x03,0x02,0x05,0x06,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1a,0x06,0x01,0x03,0x03,0x00,0x61,0x01,0x01,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x22,0x00, +0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x06,0x06,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x02,0x5f,0x08,0x04,0x02,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x13,0x00,0x00,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x12,0x00,0x12,0x22,0x13,0x23,0x11,0x09,0x09,0x1a,0x2b,0x33,0x11,0x33,0x15,0x36,0x36,0x33,0x32, +0x16,0x15,0x11,0x23,0x11,0x26,0x23,0x22,0x06,0x15,0x11,0x27,0x33,0x11,0x23,0x01,0x33,0x11,0x34,0x27,0x4b,0x90,0x11,0x48,0x34,0x4d,0x5b,0x90,0x0f,0x13,0x3d,0x46,0x66,0x3c,0x3c,0x01,0x35,0x3c,0x3c,0x02,0x26,0x4b,0x29,0x2c,0x6c,0x5c,0xfe,0x98,0x02,0x04,0x04,0x56,0x4a,0xfe,0x98,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x40,0x60,0x29, +0x00,0x04,0x00,0x46,0xff,0xf6,0x02,0x12,0x02,0x30,0x00,0x0d,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x3a,0x40,0x37,0x27,0x20,0x19,0x18,0x16,0x15,0x11,0x10,0x08,0x02,0x03,0x01,0x4c,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x14,0x12, +0x0e,0x17,0x0f,0x17,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x37,0x11,0x26,0x23,0x22,0x07,0x11,0x16,0x27,0x11,0x06,0x06,0x15,0x15,0x14,0x16,0x05,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x01,0x2c,0x6a,0x7c,0x7c,0x6a,0x6a,0x7c,0x7c,0x6a, +0x31,0x25,0x25,0x31,0x30,0x26,0x26,0x50,0x1c,0x20,0x20,0x01,0x1c,0x1d,0x1f,0x1f,0x1d,0x0a,0x71,0x60,0x97,0x61,0x71,0x71,0x61,0x97,0x60,0x71,0x28,0x0f,0x01,0xcc,0x0f,0x0f,0xfe,0x34,0x0f,0x26,0x01,0x9e,0x16,0x43,0x2b,0x97,0x2b,0x42,0x16,0x16,0x42,0x2b,0x97,0x2b,0x43,0x16,0x00,0x00,0x00,0x04,0x00,0x4b,0xff,0x4c,0x02,0x17, +0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x2a,0x24,0x16,0x15,0x10,0x03,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x16,0x01,0x07,0x05,0x2a,0x24,0x15,0x10,0x03,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x00,0x61,0x01,0x01,0x00, +0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x07,0x07,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x09,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3f,0x4d,0x00,0x06,0x06,0x03, +0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x11,0x0a,0x09,0x19,0x2b,0x17,0x11,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x37,0x32,0x36,0x37,0x11,0x26,0x26,0x23,0x22,0x06, +0x15,0x15,0x14,0x16,0x07,0x33,0x11,0x23,0x01,0x36,0x36,0x35,0x35,0x34,0x27,0x4b,0x90,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x89,0x09,0x12,0x08,0x08,0x12,0x09,0x3f,0x4a,0x4a,0xb0,0x3c,0x3c,0x01,0x3c,0x1d,0x1f,0x3c,0xb4,0x02,0xda,0x50,0x2a,0x30,0x6b,0x5c,0xab,0x5c,0x6c,0x30,0x2a,0xfe,0xfc,0xd2,0x02,0x02,0x01, +0xe2,0x02,0x02,0x55,0x4a,0xab,0x49,0x57,0xaa,0x02,0x8a,0xfe,0x36,0x14,0x47,0x2f,0xab,0x60,0x29,0x00,0x00,0x04,0x00,0x41,0xff,0x4c,0x02,0x0d,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x23,0x00,0x2a,0x00,0x98,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0b,0x25,0x24,0x1d,0x1c,0x0e,0x01,0x06,0x04,0x05,0x01,0x4c,0x1b,0x40,0x0e,0x1c,0x01,0x07, +0x05,0x25,0x24,0x1d,0x0e,0x01,0x05,0x04,0x07,0x02,0x4c,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x07,0x01,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x41,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x2b,0x00,0x05,0x05,0x01,0x61,0x00,0x01, +0x01,0x41,0x4d,0x00,0x07,0x07,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x09,0x01,0x04,0x04,0x00,0x61,0x00,0x00,0x00,0x3f,0x4d,0x00,0x06,0x06,0x03,0x5f,0x08,0x01,0x03,0x03,0x3d,0x03,0x4e,0x59,0x40,0x18,0x13,0x12,0x00,0x00,0x23,0x22,0x21,0x20,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x00,0x11,0x00,0x11,0x13,0x25,0x23,0x0a,0x09,0x19,0x2b, +0x05,0x11,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x35,0x33,0x11,0x25,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x11,0x16,0x16,0x17,0x33,0x11,0x23,0x01,0x11,0x06,0x15,0x15,0x14,0x16,0x01,0x7d,0x10,0x4c,0x37,0x4e,0x5b,0x5b,0x4e,0x37,0x4c,0x10,0x90,0xfe,0xe7,0x3f,0x4a,0x4a,0x3f,0x09,0x12, +0x08,0x08,0x12,0xbc,0x3c,0x3c,0xff,0x00,0x3c,0x20,0xb4,0x01,0x04,0x2a,0x30,0x6c,0x5c,0xab,0x5c,0x6b,0x30,0x2a,0x50,0xfd,0x26,0xd2,0x57,0x49,0xab,0x4a,0x55,0x02,0x02,0xfe,0x1e,0x02,0x02,0xaa,0x02,0x8a,0xfe,0x36,0x01,0xbe,0x29,0x60,0xab,0x2f,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0x30,0x00,0x19, +0x00,0x1d,0x00,0x77,0xb5,0x07,0x01,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x23,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80,0x09,0x05,0x02,0x01,0x01,0x02,0x61,0x03,0x01,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x2b,0x00,0x04,0x01,0x00,0x01,0x04,0x00,0x80, +0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x41,0x4d,0x09,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x08,0x06,0x02,0x00,0x00,0x07,0x5f,0x0a,0x01,0x07,0x07,0x39,0x07,0x4e,0x59,0x40,0x14,0x00,0x00,0x1d,0x1c,0x1b,0x1a,0x00,0x19,0x00,0x19,0x13,0x23,0x13,0x23,0x11,0x11,0x11,0x0b,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23, +0x35,0x33,0x15,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x33,0x15,0x27,0x33,0x11,0x23,0x2d,0x5f,0x5f,0xef,0x0f,0x40,0x2f,0x4e,0x48,0x2a,0x35,0x3f,0x3b,0x3b,0x78,0xde,0x3c,0x3c,0x28,0x01,0xd6,0x28,0x48,0x27,0x2b,0x6c,0x5c,0x23,0x23,0x4a,0x56,0x56,0x4a,0xfe,0xc0,0x28,0x28,0x01,0xd6, +0x00,0x02,0x00,0x4b,0xff,0xf6,0x02,0x0d,0x02,0x30,0x00,0x27,0x00,0x41,0x00,0x3b,0x40,0x38,0x3f,0x01,0x04,0x02,0x01,0x4c,0x32,0x01,0x01,0x01,0x4b,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x00,0x01,0x04,0x00,0x01,0x7e,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x41,0x4d,0x00,0x01,0x01,0x05,0x61,0x00,0x05,0x05,0x3f,0x05, +0x4e,0x2b,0x22,0x12,0x2b,0x22,0x10,0x06,0x09,0x1c,0x2b,0x37,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x13,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x36,0x36, +0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x06,0x06,0x4b,0x2a,0x05,0x5b,0x48,0x34,0x3c,0x22,0x1d,0x8f,0x33,0x3b,0x77,0x65,0x56,0x6f,0x0a,0x2a,0x09,0x4f,0x39,0x34,0x3c,0x1e,0x19,0x86,0x3b,0x44,0x7c,0x6b,0x60,0x76,0x2b,0x2b,0x25,0x90,0x2b,0x31,0x1d,0x17,0x2c,0x34,0x35,0x2d,0x85,0x27,0x2e,0x21,0x1a,0x2e,0x39, +0x8f,0x34,0x3c,0x2d,0x26,0x1c,0x2a,0x09,0x2b,0x0f,0x52,0x37,0x50,0x5c,0x4b,0x41,0x2f,0x35,0x2d,0x26,0x18,0x25,0x08,0x27,0x11,0x5c,0x3d,0x4e,0x5b,0x53,0x01,0x42,0x2b,0x3f,0x0b,0x2b,0x0d,0x3c,0x26,0x1f,0x32,0x0c,0x09,0x42,0x2f,0x30,0x49,0x0d,0x27,0x0b,0x37,0x24,0x1d,0x34,0x0d,0x0a,0x44,0x00,0x00,0x00,0x00,0x03,0x00,0x37, +0x00,0x00,0x02,0x12,0x02,0xc1,0x00,0x10,0x00,0x14,0x00,0x1a,0x00,0x46,0x40,0x43,0x15,0x01,0x06,0x01,0x01,0x4c,0x00,0x03,0x00,0x08,0x02,0x03,0x08,0x67,0x09,0x05,0x02,0x01,0x01,0x02,0x5f,0x07,0x04,0x02,0x02,0x02,0x3b,0x4d,0x00,0x06,0x06,0x00,0x5f,0x0a,0x01,0x00,0x00,0x39,0x00,0x4e,0x01,0x00,0x17,0x16,0x14,0x13,0x12,0x11, +0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x10,0x01,0x10,0x0b,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x33,0x35,0x23,0x13,0x11,0x23,0x11,0x14,0x16,0x01,0x3b,0x3f,0x3b,0x8a,0x8a,0x90,0xc1,0xc1,0xbc,0xfe,0xde,0x3c,0x3c,0x3c,0x3c,0x1f, +0x40,0x3d,0x01,0x81,0x28,0x9b,0x9b,0x28,0xfe,0x2a,0x28,0x02,0x26,0x73,0xfd,0x91,0x01,0xd4,0xfe,0x7f,0x22,0x2c,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0x26,0x00,0x10,0x00,0x16,0x00,0x32,0x40,0x2f,0x11,0x06,0x02,0x02,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f,0x03,0x01,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x00, +0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x13,0x12,0x0d,0x0c,0x09,0x07,0x05,0x04,0x00,0x10,0x01,0x10,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x16,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x27,0x11,0x23,0x11,0x14,0x16,0x01,0x2d,0x66,0x77,0x90,0x24,0x29,0x52,0x5f,0x2a,0x76,0xdc,0x3c,0x20,0x0a, +0x77,0x65,0x01,0x54,0xfe,0x06,0x0e,0x61,0x53,0x01,0x54,0xfe,0xac,0x65,0x77,0x4e,0x01,0xba,0xfe,0xd4,0x2e,0x49,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x26,0x00,0x0c,0x00,0x10,0x00,0x2f,0x40,0x2c,0x06,0x01,0x03,0x04,0x01,0x4c,0x00,0x04,0x04,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x03,0x03,0x02,0x5f, +0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x18,0x11,0x06,0x09,0x18,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x27,0x33,0x03,0x23,0xdc,0xaf,0x99,0x76,0x11,0x14,0x02,0x02,0x15,0x10,0x75,0x2c,0xae,0x81,0x3e,0x94,0x3f,0x02,0x26,0xfe,0x8e,0x35,0x48,0x0b, +0x0b,0x49,0x34,0x01,0x72,0xfd,0xda,0x28,0x01,0xd6,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x26,0x00,0x21,0x00,0x25,0x00,0x30,0x00,0x39,0x40,0x36,0x30,0x2b,0x10,0x06,0x04,0x05,0x06,0x01,0x4c,0x00,0x06,0x06,0x00,0x5f,0x02,0x01,0x02,0x00,0x00,0x3b,0x4d,0x07,0x01,0x05,0x05,0x03,0x60,0x08,0x04,0x02,0x03,0x03, +0x39,0x03,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x00,0x21,0x00,0x21,0x11,0x1a,0x19,0x11,0x09,0x09,0x1a,0x2b,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x3e,0x02,0x37,0x13,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x26,0x36,0x37,0x13,0x33,0x03,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x27,0x33,0x03,0x23,0x01,0x33,0x03,0x26, +0x26,0x27,0x23,0x06,0x06,0x07,0x07,0x62,0x62,0x92,0x49,0x04,0x05,0x02,0x01,0x03,0x06,0x04,0x4c,0x34,0x5f,0x05,0x06,0x02,0x03,0x01,0x02,0x01,0x03,0x44,0x2e,0x61,0x98,0x24,0x04,0x0b,0x02,0x01,0x09,0x05,0x20,0x75,0x3d,0x55,0x3d,0x01,0x50,0x3d,0x50,0x06,0x0b,0x02,0x02,0x02,0x0c,0x05,0x0b,0x02,0x26,0xfe,0x71,0x16,0x21,0x15, +0x0e,0x10,0x17,0x16,0x01,0x90,0xfe,0x70,0x16,0x20,0x15,0x14,0x10,0x09,0x0e,0x11,0x01,0x8f,0xfd,0xda,0xa2,0x12,0x41,0x1e,0x16,0x43,0x18,0xa2,0x28,0x01,0xd6,0xfe,0x2a,0x01,0x5f,0x1b,0x43,0x16,0x16,0x43,0x1b,0x3a,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x3a,0x02,0x26,0x00,0x0b,0x00,0x0f,0x00,0x34,0x40,0x31,0x0a,0x07, +0x04,0x01,0x04,0x04,0x05,0x01,0x4c,0x00,0x05,0x05,0x00,0x5f,0x01,0x01,0x00,0x00,0x3b,0x4d,0x00,0x04,0x04,0x02,0x60,0x06,0x03,0x02,0x02,0x02,0x39,0x02,0x4e,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x07,0x09,0x19,0x2b,0x33,0x37,0x03,0x33,0x17,0x37,0x33,0x07,0x13,0x23,0x27,0x07,0x25,0x33,0x01,0x23, +0x3a,0xb2,0xce,0xb2,0x7e,0x8b,0x35,0xa9,0xd5,0xb2,0x84,0x94,0x01,0x30,0x4a,0xfe,0xcc,0x48,0xed,0x01,0x39,0xbf,0xbf,0xe3,0xfe,0xbd,0xc8,0xc8,0x28,0x01,0xd6,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x2b,0x02,0x26,0x00,0x0f,0x00,0x19,0x00,0x31,0x40,0x2e,0x13,0x10,0x09,0x06,0x04,0x00,0x04,0x01,0x4c,0x00,0x04,0x04,0x01,0x5f, +0x02,0x01,0x01,0x01,0x3b,0x4d,0x00,0x00,0x00,0x03,0x61,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x00,0x00,0x15,0x14,0x00,0x0f,0x00,0x0e,0x12,0x14,0x21,0x06,0x09,0x19,0x2b,0x17,0x35,0x33,0x32,0x36,0x37,0x37,0x03,0x33,0x13,0x13,0x33,0x01,0x06,0x06,0x23,0x37,0x36,0x36,0x37,0x03,0x23,0x13,0x1e,0x02,0x4f,0x2b,0x2f,0x3d,0x13,0x1e, +0xea,0x9f,0x99,0x98,0x2e,0xfe,0xf1,0x18,0x54,0x36,0xb4,0x05,0x10,0x0a,0x9e,0x42,0x8e,0x08,0x14,0x13,0xb4,0x28,0x31,0x2b,0x44,0x02,0x12,0xfe,0xa5,0x01,0x5b,0xfd,0x9b,0x36,0x3f,0xf9,0x0c,0x2c,0x18,0x01,0x69,0xfe,0xb7,0x12,0x2c,0x27,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0x26,0x00,0x09,0x00,0x0d,0x00,0x32, +0x40,0x2f,0x06,0x01,0x02,0x02,0x00,0x01,0x4c,0x05,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x3b,0x4d,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x0d,0x0c,0x0b,0x0a,0x00,0x09,0x00,0x09,0x12,0x11,0x12,0x07,0x09,0x19,0x2b,0x33,0x35,0x01,0x21,0x35,0x21,0x15,0x01,0x21,0x15,0x25,0x33,0x01,0x23, +0x46,0x01,0x1e,0xfe,0xeb,0x01,0xb6,0xfe,0xe4,0x01,0x29,0xfe,0x62,0x47,0x01,0x1d,0x46,0x29,0x01,0xd5,0x28,0x2a,0xfe,0x2c,0x28,0x28,0x01,0xd6,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x1c,0x00,0x28,0x00,0x3e,0x40,0x3b,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01, +0x01,0x3e,0x4d,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1e,0x1d,0x10,0x0f,0x01,0x00,0x24,0x22,0x1d,0x28,0x1e,0x28,0x17,0x15,0x0f,0x1c,0x10,0x1c,0x08,0x06,0x00,0x0e,0x01,0x0e,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x11, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0x43,0x3c,0x49,0x49,0x3c,0x3c,0x49,0x49,0x3c,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x4d,0x4d,0x3d, +0x01,0x40,0x3d,0x4d,0x4d,0x3d,0xfe,0xc0,0x3d,0x4d,0xf3,0x1e,0x1c,0x1b,0x1d,0x1d,0x1b,0x1c,0x1e,0x00,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x1c,0x02,0xda,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x38,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00, +0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x09,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x5a,0xc6,0xc6,0xa5,0x7b,0xa2,0x52,0x02,0x3a,0x94,0x67,0x7b,0xfd,0x78,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x4c,0x00,0x00,0x02,0x0f,0x02,0xe4,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01, +0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x33,0x35,0x13,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07, +0x07,0x21,0x15,0x56,0xf3,0x35,0x2c,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0x01,0x4c,0x53,0x01,0x04,0x38,0x58,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x72,0x62,0x34,0x74,0x48,0xce,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x46,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03, +0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04,0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x05,0x22,0x26, +0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x21,0x35,0x21,0x15,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x01,0x21,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0xfe,0xd4,0x01,0x92,0xb0,0x5a,0x68,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f, +0x5b,0x32,0x61,0x71,0x00,0x01,0x00,0x46,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x0b,0x00,0x30,0x40,0x2d,0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x38,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x09, +0x1a,0x2b,0x21,0x35,0x21,0x35,0x01,0x33,0x01,0x15,0x33,0x35,0x33,0x11,0x01,0x90,0xfe,0xb6,0x01,0x0a,0x66,0xfe,0xea,0xf0,0x5a,0xa0,0x8d,0x01,0xad,0xfe,0x3f,0x27,0xb2,0xfe,0x5c,0x00,0x00,0x01,0x00,0x4b,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03, +0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x16,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x23, +0x11,0x21,0x15,0x21,0x17,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x26,0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x44,0x3a,0xc7,0x01,0x85,0xfe,0xcf,0x02,0x76,0x65,0x6e,0x77,0x0a,0x71,0x61,0x3c,0x46,0x46,0x3c,0x2d,0x3c,0x46,0x01,0x63,0x52,0xbf,0x6f,0x65,0x2d,0x61,0x71,0x00,0x02,0x00,0x40,0xff,0xf6,0x02,0x18,0x02,0xda,0x00,0x15, +0x00,0x21,0x00,0x38,0x40,0x35,0x0a,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x3f,0x00,0x4e,0x17,0x16,0x01,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x0f,0x0d,0x09,0x08,0x00,0x15,0x01,0x15,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x26, +0x35,0x34,0x36,0x37,0x13,0x33,0x03,0x17,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2d,0x46,0x6b,0x3c,0x24,0x1f,0xa9,0x64,0xb4,0x03,0x0d,0x34,0x1f,0x41,0x61,0x37,0x3c,0x69,0x47,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x0a,0x3b,0x69,0x45,0x30,0x65,0x37, +0x01,0x2f,0xfe,0xc7,0x02,0x11,0x12,0x39,0x64,0x42,0x46,0x6b,0x3c,0x50,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x01,0x00,0x52,0x00,0x00,0x02,0x22,0x02,0xda,0x00,0x08,0x00,0x52,0xb5,0x07,0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f, +0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x33,0x01,0x21,0x15,0x23,0x35,0x21,0x15, +0x01,0xbe,0x01,0x04,0xfe,0xea,0x5a,0x01,0xd0,0xfe,0xfe,0x02,0x88,0x76,0xc8,0x54,0xfd,0x7a,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe4,0x00,0x1d,0x00,0x29,0x00,0x35,0x00,0x45,0x40,0x42,0x16,0x07,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x3e,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x1f,0x1e,0x01,0x00,0x31,0x2f,0x2a,0x35,0x2b,0x35,0x25,0x23,0x1e,0x29,0x1f,0x29,0x10,0x0e,0x00,0x1d,0x01,0x1d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14, +0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x45,0x6a,0x3b,0x4f,0x42,0x39,0x44,0x36,0x61,0x3f,0x40,0x60,0x36,0x44,0x39,0x42,0x4f,0x3b,0x69,0x46,0x38,0x44,0x44,0x38,0x37,0x45,0x45,0x37,0x40, +0x50,0x50,0x40,0x40,0x50,0x50,0x0a,0x36,0x61,0x3f,0x45,0x64,0x0b,0x03,0x0d,0x59,0x3a,0x39,0x57,0x31,0x31,0x57,0x39,0x3a,0x59,0x0d,0x03,0x0b,0x64,0x45,0x3f,0x61,0x36,0x01,0xb0,0x42,0x35,0x35,0x42,0x42,0x35,0x35,0x42,0xfe,0xa1,0x4b,0x3c,0x3d,0x4b,0x4b,0x3d,0x3c,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x02,0x18, +0x02,0xe4,0x00,0x15,0x00,0x21,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x02,0x02,0x39,0x02,0x4e,0x17,0x16,0x00,0x00,0x1d,0x1b,0x16,0x21,0x17,0x21,0x00,0x15,0x00,0x15,0x26,0x24,0x07,0x09,0x18,0x2b,0x33,0x13, +0x27,0x06,0x06,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x03,0x11,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xc3,0xb4,0x03,0x0a,0x36,0x20,0x3f,0x5f,0x36,0x3c,0x6a,0x45,0x47,0x6a,0x3c,0x24,0x1f,0xa9,0x41,0x51,0x51,0x41,0x41,0x51,0x51,0x01,0x39,0x02,0x10,0x13,0x39,0x64, +0x42,0x47,0x6a,0x3c,0x3b,0x69,0x45,0x30,0x65,0x37,0xfe,0xd1,0x01,0x5e,0x56,0x45,0x45,0x56,0x56,0x45,0x45,0x56,0x00,0x00,0x00,0x03,0x00,0x50,0xff,0xf6,0x02,0x08,0x02,0xe4,0x00,0x0e,0x00,0x16,0x00,0x1e,0x00,0x36,0x40,0x33,0x1c,0x1b,0x11,0x10,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05, +0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x18,0x17,0x01,0x00,0x17,0x1e,0x18,0x1e,0x15,0x13,0x08,0x06,0x00,0x0e,0x01,0x0e,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x06,0x03,0x11,0x01,0x26,0x26,0x23,0x22,0x06,0x13,0x32,0x36,0x35,0x11,0x01,0x16,0x16,0x01, +0x2c,0x65,0x77,0x77,0x65,0x65,0x77,0x36,0x63,0xc8,0x01,0x05,0x0b,0x44,0x31,0x3c,0x49,0x85,0x3c,0x49,0xfe,0xfb,0x0b,0x44,0x0a,0x75,0x62,0x01,0x40,0x62,0x75,0x75,0x62,0xfe,0xc0,0x41,0x61,0x35,0x02,0x17,0xfe,0xec,0x01,0x3c,0x2d,0x35,0x4d,0xfd,0xf9,0x4d,0x3d,0x01,0x14,0xfe,0xc4,0x2d,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x58, +0x00,0x00,0x02,0x13,0x02,0xe4,0x00,0x22,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x39,0x04,0x4e,0x00,0x00,0x00,0x22,0x00,0x22,0x1b,0x23,0x12,0x2b,0x06,0x09,0x1a,0x2b,0x33,0x35,0x34,0x36,0x36,0x37,0x37,0x36, +0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x15,0x21,0x15,0x59,0x2b,0x4a,0x2d,0x64,0x28,0x2f,0x48,0x3a,0x3a,0x48,0x5a,0x02,0x39,0x62,0x3f,0x42,0x64,0x38,0x4a,0x40,0x66,0x2b,0x44,0x01,0x60,0x80,0x34,0x57,0x42,0x13,0x2b,0x11,0x48,0x29,0x3c,0x4b,0x4b, +0x3c,0x40,0x60,0x37,0x37,0x60,0x40,0x44,0x72,0x1c,0x2c,0x13,0x4c,0x35,0x29,0x52,0x00,0x02,0x00,0x55,0xff,0xf6,0x02,0x11,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01, +0x3e,0x4d,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x34,0x67,0x78,0x76,0x65,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0b,0x4f,0x3d,0x5e,0x6d,0x77,0x67,0x3d,0x47,0x47,0x3d,0x3d,0x47,0x47,0x0a,0x74,0x63,0x01,0x40,0x63,0x74,0x59,0x47,0x22,0x2e,0x49,0x3e,0xa5,0x30,0x37, +0x74,0x63,0x2b,0x63,0x74,0x50,0x49,0x3e,0x2b,0x3e,0x49,0x49,0x3e,0x2b,0x3e,0x49,0x00,0x02,0x00,0x49,0xff,0xf6,0x02,0x03,0x02,0xe4,0x00,0x1b,0x00,0x29,0x00,0x49,0x40,0x46,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x06,0x06,0x04,0x61,0x00,0x04, +0x04,0x3e,0x4d,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x06,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x28,0x5b,0x72,0x07,0x5a,0x05,0x43,0x33,0x3b,0x45,0x0a,0x4e,0x3e,0x5e,0x6c,0x76,0x66,0x67,0x77,0x76,0x67,0x3d,0x46,0x46,0x3d,0x3d,0x46,0x46,0x0a,0x5b,0x4a,0x25,0x30,0x49,0x3e,0xb8,0x32,0x39,0x74,0x63,0x1c,0x63,0x74,0x74, +0x63,0xfe,0xc0,0x63,0x74,0x01,0x74,0x49,0x3e,0x1c,0x3e,0x49,0x49,0x3e,0x1c,0x3e,0x49,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0xff,0xf6,0x02,0x16,0x02,0xe5,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x36,0x40,0x33,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x05,0x01,0x03,0x03,0x00, +0x61,0x04,0x01,0x00,0x00,0x3f,0x00,0x4e,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26, +0x23,0x22,0x06,0x15,0x14,0x16,0x13,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x46,0x6a,0x3a,0x4f,0x42,0x41,0x40,0x39,0x62,0x3f,0x3f,0x63,0x38,0x40,0x41,0x42,0x4f,0x3a,0x69,0x64,0x1d,0x19,0x2f,0x3a,0x48,0x3a,0x3a,0x48,0x38,0x4a,0x42,0x50,0x36,0x31,0x2b,0x2e,0x30,0x34,0x50,0x0a,0x31,0x57, +0x39,0x3e,0x6b,0x1e,0x20,0x59,0x33,0x37,0x54,0x30,0x30,0x54,0x37,0x32,0x59,0x21,0x1e,0x6b,0x3e,0x39,0x57,0x31,0x01,0xb5,0x0b,0x0a,0x12,0x43,0x28,0x31,0x3d,0x3e,0x30,0x29,0x42,0xfe,0x8a,0x45,0x38,0x2c,0x47,0x13,0x11,0x12,0x13,0x47,0x2b,0x38,0x45,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xf6,0x02,0x03,0x02,0xda,0x00,0x20, +0x00,0x4d,0x40,0x4a,0x17,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x06,0x06,0x05,0x5f,0x00,0x05,0x05,0x38,0x4d,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x1b,0x19,0x16,0x15,0x14,0x13,0x12, +0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x20,0x01,0x20,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x21,0x17,0x36,0x36,0x33,0x36,0x16,0x15,0x15,0x14,0x06,0x01,0x2a,0x5b,0x73,0x07,0x5a,0x05,0x43,0x34,0x3a,0x44,0x44,0x3a,0x27,0x39,0x0d, +0x5a,0x01,0x85,0xfe,0xcf,0x02,0x0d,0x48,0x35,0x5b,0x64,0x75,0x0a,0x5c,0x4e,0x29,0x31,0x46,0x3c,0x47,0x3c,0x46,0x28,0x1e,0x01,0x8f,0x52,0xf5,0x24,0x29,0x01,0x6f,0x63,0x47,0x61,0x71,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0xff,0x7b,0x01,0xe0,0x01,0x3b,0x03,0x07,0x03,0x03,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0xff,0x7b,0x01,0xc9,0x01,0x40,0x03,0x07,0x03,0x04,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x76,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x05,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0xff,0x7b,0x01,0xbd,0x01,0x3b,0x03,0x07,0x03,0x06,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0x76,0x01,0xcf,0x01,0x3b,0x03,0x07,0x03,0x07,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0x76,0x01,0xd2,0x01,0x3b,0x03,0x07,0x03,0x08,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0xff,0x7b,0x01,0xce,0x01,0x3b,0x03,0x07,0x03,0x09,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x0a,0x00,0x00,0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0x7b,0x01,0xcd,0x01,0x40,0x03,0x07,0x03,0x0b,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xfb,0x01,0xcf,0x01,0xc5,0x03,0x07,0x03,0x02,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x96,0x00,0x00,0x01,0xe0,0x01,0xc0,0x03,0x07,0x03,0x03,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x00,0x00,0x01,0xc9,0x01,0xc5,0x03,0x07,0x03,0x04,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0xff,0xfb,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x05,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8f,0x00,0x00,0x01,0xbd,0x01,0xc0,0x03,0x07,0x03,0x06,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8d,0xff,0xfb,0x01,0xcf,0x01,0xc0,0x03,0x07,0x03,0x07,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x86,0xff,0xfb,0x01,0xd2,0x01,0xc0,0x03,0x07,0x03,0x08,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x94,0x00,0x00,0x01,0xce,0x01,0xc0,0x03,0x07,0x03,0x09,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x0a,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35, +0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8b,0x00,0x00,0x01,0xcd,0x01,0xc5,0x03,0x07,0x03,0x0b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x15,0x01,0xcf,0x02,0xdf,0x03,0x06,0x03,0x02,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00, +0xff,0xff,0x00,0x96,0x01,0x1a,0x01,0xe0,0x02,0xda,0x03,0x06,0x03,0x03,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x93,0x01,0x1a,0x01,0xc9,0x02,0xdf,0x03,0x06,0x03,0x04,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x15,0x01,0xce, +0x02,0xda,0x03,0x06,0x03,0x05,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0x1a,0x01,0xbd,0x02,0xda,0x03,0x06,0x03,0x06,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8d,0x01,0x15,0x01,0xcf,0x02,0xda,0x03,0x06,0x03,0x07,0x00,0x9c, +0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x86,0x01,0x15,0x01,0xd2,0x02,0xda,0x03,0x06,0x03,0x08,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x94,0x01,0x1a,0x01,0xce,0x02,0xda,0x03,0x06,0x03,0x09,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c, +0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x87,0x01,0x15,0x01,0xd1,0x02,0xdf,0x03,0x06,0x03,0x0a,0x00,0x9c,0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8b,0x01,0x1a,0x01,0xcd,0x02,0xdf,0x03,0x06,0x03,0x0b,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x02,0x00,0x89, +0x01,0x79,0x01,0xcf,0x03,0x43,0x00,0x0d,0x00,0x1b,0x00,0x2d,0x40,0x2a,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x00,0x53,0x00,0x4e,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36, +0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x49,0x5a,0x5a,0x49,0x49,0x5a,0x5a,0x49,0x29,0x33,0x33,0x29,0x29,0x33,0x33,0x01,0x79,0x5c,0x49,0x81,0x49,0x5b,0x5b,0x49,0x81,0x49,0x5c,0x40,0x38,0x2d,0x81,0x2c,0x38,0x38,0x2c,0x81,0x2d,0x38,0x00,0x00,0x00, +0x00,0x01,0x00,0x96,0x01,0x7e,0x01,0xe0,0x03,0x3e,0x00,0x0a,0x00,0x29,0x40,0x26,0x05,0x04,0x03,0x03,0x00,0x01,0x01,0x4c,0x00,0x01,0x01,0x50,0x4d,0x02,0x01,0x00,0x00,0x03,0x60,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x14,0x11,0x05,0x0b,0x19,0x2b,0x13,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x11, +0x33,0x15,0x96,0x90,0x8d,0x74,0x60,0x73,0x01,0x7e,0x41,0x01,0x44,0x55,0x49,0x47,0xfe,0x81,0x41,0x00,0x00,0x01,0x00,0x93,0x01,0x7e,0x01,0xc9,0x03,0x43,0x00,0x1a,0x00,0x34,0x40,0x31,0x01,0x01,0x03,0x01,0x01,0x4c,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x52,0x4d,0x00,0x03,0x03,0x04, +0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x1a,0x00,0x1a,0x17,0x23,0x12,0x27,0x06,0x0b,0x1a,0x2b,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x3e,0x02,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x9c,0xb7,0x14,0x18,0x2f,0x23,0x22,0x31,0x47,0x02,0x2a,0x45,0x29,0x2c,0x45,0x29, +0x2a,0x24,0x8c,0xdc,0x01,0x7e,0x4d,0x9e,0x11,0x25,0x16,0x23,0x2b,0x2c,0x24,0x2b,0x40,0x25,0x23,0x3f,0x2a,0x24,0x3e,0x1f,0x77,0x41,0x00,0x00,0x00,0x01,0x00,0x8b,0x01,0x79,0x01,0xce,0x03,0x3e,0x00,0x1a,0x00,0x43,0x40,0x40,0x15,0x14,0x0f,0x03,0x03,0x04,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x02,0x04, +0x01,0x02,0x7e,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x05,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35, +0x21,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x01,0x2c,0x47,0x5a,0x47,0x32,0x28,0x28,0x32,0x32,0x28,0x29,0x73,0xd5,0x01,0x1d,0x75,0x3c,0x49,0x5a,0x01,0x79,0x52,0x42,0x25,0x2f,0x2f,0x25,0x25,0x2e,0x45,0x58,0x41,0x48,0x5c,0x07,0x4c,0x3a,0x42,0x52,0x00,0x01,0x00,0x8f,0x01,0x7e,0x01,0xbd,0x03,0x3e,0x00,0x0b,0x00,0x30,0x40,0x2d, +0x06,0x03,0x02,0x02,0x03,0x01,0x4c,0x00,0x02,0x00,0x00,0x04,0x02,0x00,0x68,0x00,0x01,0x01,0x50,0x4d,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x51,0x04,0x4e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x12,0x12,0x11,0x06,0x0b,0x1a,0x2b,0x01,0x35,0x23,0x35,0x37,0x33,0x03,0x15,0x33,0x35,0x33,0x11,0x01,0x76,0xe7,0xae,0x50,0xb8, +0xa1,0x47,0x01,0x7e,0x69,0x5d,0xfa,0xfe,0xf6,0x0d,0x72,0xfe,0xe5,0x00,0x00,0x00,0x00,0x01,0x00,0x8d,0x01,0x79,0x01,0xcf,0x03,0x3e,0x00,0x19,0x00,0x3e,0x40,0x3b,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x06,0x00,0x03,0x01,0x06,0x03,0x67,0x00,0x05,0x05,0x04,0x5f,0x00,0x04,0x04,0x50,0x4d,0x00,0x02,0x02,0x00,0x61,0x07, +0x01,0x00,0x00,0x53,0x00,0x4e,0x01,0x00,0x15,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x19,0x01,0x19,0x08,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2f,0x49,0x59,0x46,0x32,0x2a,0x28,0x30,0x30, +0x28,0x8b,0x01,0x1a,0xd7,0x48,0x4a,0x56,0x58,0x01,0x79,0x50,0x44,0x28,0x2c,0x2f,0x25,0x26,0x2e,0xdd,0x3f,0x62,0x4e,0x42,0x42,0x52,0x00,0x00,0x00,0x02,0x00,0x86,0x01,0x79,0x01,0xd2,0x03,0x3e,0x00,0x10,0x00,0x1c,0x00,0x38,0x40,0x35,0x08,0x01,0x04,0x02,0x01,0x4c,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x6a,0x00,0x01,0x01,0x50, +0x4d,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x00,0x53,0x00,0x4e,0x12,0x11,0x01,0x00,0x18,0x16,0x11,0x1c,0x12,0x1c,0x0c,0x0a,0x07,0x06,0x00,0x10,0x01,0x10,0x07,0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x37,0x37,0x33,0x07,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14, +0x16,0x01,0x2d,0x4b,0x5c,0x24,0x7e,0x4d,0x81,0x04,0x1b,0x31,0x40,0x4e,0x5b,0x4b,0x2a,0x34,0x34,0x2a,0x29,0x35,0x34,0x01,0x79,0x55,0x43,0x32,0x39,0xc2,0xc5,0x25,0x4e,0x3f,0x43,0x55,0x40,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x01,0x00,0x94,0x01,0x7e,0x01,0xce,0x03,0x3e,0x00,0x08,0x00,0x52,0xb5,0x07, +0x01,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x18,0x00,0x01,0x00,0x03,0x00,0x01,0x72,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e,0x1b,0x40,0x19,0x00,0x01,0x00,0x03,0x00,0x01,0x03,0x80,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x02,0x50,0x4d,0x04,0x01,0x03,0x03,0x51,0x03,0x4e, +0x59,0x40,0x0c,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x11,0x05,0x0b,0x19,0x2b,0x13,0x13,0x23,0x15,0x23,0x35,0x21,0x15,0x03,0xd8,0xb1,0xaf,0x46,0x01,0x3a,0xa8,0x01,0x7e,0x01,0x80,0x4e,0x8e,0x4c,0xfe,0x8c,0x00,0x00,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x19,0x00,0x25,0x00,0x31,0x00,0x45,0x40,0x42, +0x13,0x06,0x02,0x05,0x02,0x01,0x4c,0x07,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x08,0x01,0x04,0x04,0x00,0x61,0x06,0x01,0x00,0x00,0x53,0x00,0x4e,0x27,0x26,0x1b,0x1a,0x01,0x00,0x2d,0x2b,0x26,0x31,0x27,0x31,0x21,0x1f,0x1a,0x25,0x1b,0x25,0x0e,0x0c,0x00,0x19,0x01,0x19,0x09, +0x0b,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x15,0x16,0x16,0x15,0x14,0x06,0x03,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x3a,0x2e,0x2a,0x33,0x55,0x45,0x46, +0x56,0x34,0x2c,0x2f,0x3a,0x5b,0x4a,0x27,0x30,0x30,0x27,0x26,0x2f,0x2f,0x26,0x2a,0x36,0x36,0x2a,0x2a,0x36,0x36,0x01,0x79,0x49,0x3a,0x2e,0x3d,0x04,0x04,0x08,0x34,0x22,0x35,0x41,0x41,0x35,0x22,0x34,0x08,0x04,0x04,0x3d,0x2e,0x3a,0x49,0x01,0x0b,0x24,0x1d,0x1d,0x25,0x25,0x1d,0x1d,0x24,0xce,0x29,0x21,0x21,0x29,0x29,0x21,0x21, +0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x8b,0x01,0x7e,0x01,0xcd,0x03,0x43,0x00,0x12,0x00,0x1e,0x00,0x36,0x40,0x33,0x01,0x01,0x00,0x03,0x01,0x4c,0x06,0x01,0x03,0x00,0x00,0x02,0x03,0x00,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x52,0x4d,0x05,0x01,0x02,0x02,0x51,0x02,0x4e,0x14,0x13,0x00,0x00,0x1a,0x18,0x13,0x1e,0x14,0x1e, +0x00,0x12,0x00,0x12,0x24,0x24,0x07,0x0b,0x18,0x2b,0x13,0x37,0x23,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xe7,0x7e,0x04,0x0a,0x26,0x1d,0x3f,0x4a,0x57,0x49,0x4a,0x58,0x16,0x16,0x6d,0x08,0x26,0x33,0x30,0x29,0x29,0x30,0x30, +0x01,0x7e,0xc5,0x10,0x15,0x4f,0x3e,0x44,0x54,0x54,0x44,0x21,0x3c,0x23,0xad,0xd5,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0xff,0xff,0x00,0x9a,0xff,0x7b,0x01,0xce,0x01,0x40,0x03,0x07,0x03,0x15,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0x76,0x01,0xd4, +0x01,0x40,0x03,0x07,0x03,0x16,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0x76,0x01,0xc8,0x01,0x40,0x03,0x07,0x03,0x17,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x00,0x00,0x01,0xce, +0x01,0xc5,0x03,0x07,0x03,0x15,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x90,0xff,0xfb,0x01,0xd4,0x01,0xc5,0x03,0x07,0x03,0x16,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x84,0xff,0xfb,0x01,0xc8, +0x01,0xc5,0x03,0x07,0x03,0x17,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x9a,0x01,0x1a,0x01,0xce,0x02,0xdf,0x03,0x06,0x03,0x15,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x90,0x01,0x15,0x01,0xd4,0x02,0xdf,0x03,0x06, +0x03,0x16,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x84,0x01,0x15,0x01,0xc8,0x02,0xdf,0x03,0x06,0x03,0x17,0x00,0x9c,0x00,0x09,0xb1,0x00,0x02,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x9a,0x01,0x7e,0x01,0xce,0x03,0x43,0x00,0x1e,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03, +0x00,0x01,0x03,0x80,0x00,0x02,0x00,0x00,0x01,0x02,0x00,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x1e,0x00,0x1e,0x19,0x22,0x12,0x2a,0x06,0x09,0x1a,0x2b,0x13,0x35,0x34,0x3e,0x04,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x0e, +0x04,0x15,0x33,0x15,0xa0,0x21,0x35,0x3a,0x35,0x21,0x2d,0x23,0x26,0x2e,0x48,0x56,0x46,0x43,0x55,0x22,0x34,0x3c,0x34,0x22,0xe7,0x01,0x7e,0x39,0x2f,0x3b,0x26,0x1b,0x1a,0x24,0x1c,0x20,0x27,0x2d,0x23,0x40,0x50,0x4a,0x3d,0x29,0x34,0x22,0x1a,0x1c,0x28,0x20,0x41,0x00,0x00,0x02,0x00,0x90,0x01,0x79,0x01,0xd4,0x03,0x43,0x00,0x1a, +0x00,0x26,0x00,0x4d,0x40,0x4a,0x12,0x01,0x05,0x06,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x00,0x05,0x59,0x08,0x01,0x05,0x05,0x00,0x61,0x07,0x01,0x00,0x05,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c, +0x26,0x16,0x14,0x0f,0x0d,0x0b,0x0a,0x08,0x06,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x32,0x49,0x59,0x56,0x4c,0x44,0x56, +0x04,0x45,0x04,0x31,0x24,0x2b,0x32,0x01,0x16,0x54,0x41,0x53,0x59,0x49,0x29,0x32,0x32,0x2a,0x2a,0x32,0x33,0x01,0x79,0x54,0x43,0x94,0x4a,0x55,0x45,0x37,0x1b,0x23,0x34,0x2d,0x50,0x4c,0x4f,0x41,0x43,0x54,0x3f,0x31,0x27,0x27,0x31,0x31,0x27,0x27,0x31,0x00,0x00,0x00,0x00,0x02,0x00,0x84,0x01,0x79,0x01,0xc8,0x03,0x43,0x00,0x1a, +0x00,0x26,0x00,0x4c,0x40,0x49,0x0b,0x01,0x05,0x06,0x01,0x4c,0x00,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x69,0x08,0x01,0x05,0x00,0x03,0x01,0x05,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x07,0x01,0x00,0x02,0x00,0x51,0x1c,0x1b,0x01,0x00,0x22,0x20,0x1b,0x26,0x1c,0x26, +0x15,0x13,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x31,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x26,0x43,0x57,0x04,0x45,0x05,0x30,0x24, +0x2c,0x31,0x16,0x55,0x41,0x53,0x59,0x49,0x49,0x59,0x56,0x4b,0x2a,0x32,0x33,0x2a,0x29,0x32,0x32,0x01,0x79,0x44,0x34,0x18,0x21,0x34,0x2c,0x55,0x4c,0x4e,0x40,0x42,0x52,0x52,0x42,0x97,0x49,0x56,0xe0,0x2f,0x27,0x26,0x30,0x30,0x26,0x26,0x30,0x00,0xff,0xff,0x00,0x87,0xff,0x6c,0x01,0xd1,0x01,0x36,0x03,0x07,0x03,0x1b,0x00,0x00, +0xfd,0xf3,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfd,0xf3,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0xff,0xfb,0x01,0xd1,0x01,0xc5,0x03,0x07,0x03,0x1b,0x00,0x00,0xfe,0x82,0x00,0x09,0xb1,0x00,0x03,0xb8,0xfe,0x82,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x87,0x01,0x10,0x01,0xd1,0x02,0xda,0x03,0x06,0x03,0x1b,0x00,0x97, +0x00,0x09,0xb1,0x00,0x03,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x03,0x00,0x87,0x01,0x79,0x01,0xd1,0x03,0x43,0x00,0x1b,0x00,0x29,0x00,0x37,0x00,0x3a,0x40,0x37,0x31,0x1d,0x15,0x07,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03,0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01, +0x00,0x03,0x00,0x51,0x2b,0x2a,0x01,0x00,0x2a,0x37,0x2b,0x37,0x25,0x23,0x0f,0x0d,0x00,0x1b,0x01,0x1b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x03,0x17,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x17,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x07,0x06,0x06,0x15,0x14,0x16,0x01,0x2c,0x49,0x5c,0x28,0x20,0x26,0x1a,0x1f,0x2a,0x56,0x44,0x44,0x56,0x25,0x1d,0x1c,0x20,0x22,0x27,0x5b,0x72,0x2a,0x2b,0x11,0x17,0x2f,0x26,0x25,0x30,0x1a,0x3b,0x2b,0x35,0x19,0x14,0x31,0x35,0x14,0x19,0x35,0x01,0x79,0x49,0x3a,0x1f,0x2d,0x0e, +0x10,0x0c,0x0e,0x2f,0x1b,0x36,0x43,0x43,0x36,0x1e,0x2e,0x0d,0x0c,0x0f,0x0f,0x2d,0x1e,0x3a,0x49,0x01,0x19,0x13,0x12,0x08,0x1c,0x13,0x1c,0x23,0x23,0x1c,0x12,0x1b,0xe4,0x25,0x1e,0x14,0x1e,0x09,0x17,0x17,0x08,0x1e,0x14,0x1e,0x26,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0xff,0x76,0x01,0xcc,0x01,0x3b,0x03,0x07,0x03,0x1f,0x00,0x00, +0xfd,0xfd,0x00,0x09,0xb1,0x00,0x01,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x8a,0x01,0x15,0x01,0xcc,0x02,0xda,0x03,0x06,0x03,0x1f,0x00,0x9c,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0x9c,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8a,0x01,0x10,0x01,0xcc,0x02,0xd5,0x03,0x06,0x03,0x1f,0x00,0x97,0x00,0x09,0xb1,0x00, +0x01,0xb8,0xff,0x97,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x8a,0x01,0x79,0x01,0xcc,0x03,0x3e,0x00,0x1e,0x00,0x50,0x40,0x4d,0x16,0x01,0x03,0x07,0x01,0x4c,0x00,0x04,0x03,0x01,0x03,0x04,0x01,0x80,0x00,0x01,0x02,0x03,0x01,0x02,0x7e,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x03,0x04,0x07,0x03,0x69,0x00,0x02,0x00, +0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x1a,0x18,0x15,0x14,0x13,0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1e,0x01,0x1e,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x07,0x23,0x11,0x21,0x15,0x23,0x15,0x36,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x01,0x2a,0x40,0x59,0x07,0x48,0x05,0x31,0x22,0x28,0x32,0x32,0x28,0x1b,0x29,0x0b,0x41,0x01,0x1c,0xd9,0x0d,0x34,0x22,0x3e,0x4e,0x5a,0x01,0x79,0x43,0x35,0x19,0x1f,0x33,0x25,0x26,0x32,0x1a,0x12,0x01,0x01,0x40,0x88,0x14,0x1a,0x53,0x40,0x42,0x56,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x02,0x53, +0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x38,0x4d,0x02,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x33,0x01,0x33,0x01,0x05,0x01,0xf9,0x55,0xfe,0x07,0x02,0xda,0xfd,0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x2e,0x00,0x6a, +0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02,0x28,0x14,0x02,0x09,0x07,0x29,0x01,0x05,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x06,0x09,0x06,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x08,0x01,0x00,0x68,0x00,0x08,0x00,0x06,0x07,0x08,0x06,0x69,0x00,0x09,0x05,0x05,0x09,0x57,0x00,0x09,0x09,0x05, +0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00,0x00,0x13,0x2e,0x13,0x2e,0x2d,0x2b,0x22,0x20,0x1e,0x1d,0x1b,0x19,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x33,0x35,0x37, +0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x15,0x36,0x36,0x33,0x33,0x15,0x05,0x01,0x18,0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x6b,0xc3,0x55,0xfe,0x07,0xe1,0x78,0x46,0x24,0x1d,0x1d,0x24,0x3c,0x02,0x45,0x36,0x38,0x45,0x2d,0x29,0x5d,0x0b,0x2a,0x16,0x6d,0x01,0x95,0x32, +0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x07,0x01,0x1a,0xfd,0x26,0x40,0x45,0x28,0x2b,0x1d,0x23,0x23,0x1d,0x34,0x3e,0x3e,0x32,0x1f,0x3c,0x17,0x34,0x0a,0x02,0x06,0x32,0x00,0x00,0x00,0x02,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x12,0x00,0x1e,0x00,0x6a,0xb1,0x06,0x64,0x44,0x40,0x5f,0x0a,0x09,0x05,0x03,0x01,0x02, +0x0f,0x01,0x00,0x01,0x19,0x16,0x02,0x08,0x09,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85,0x00,0x07,0x00,0x09,0x00,0x07,0x09,0x80,0x03,0x01,0x01,0x00,0x00,0x07,0x01,0x00,0x68,0x00,0x09,0x08,0x05,0x09,0x57,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x68,0x00,0x09,0x09,0x05,0x5f,0x0c,0x0a,0x0b,0x03,0x05,0x09,0x05,0x4f,0x13,0x13,0x00, +0x00,0x13,0x1e,0x13,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x15,0x14,0x00,0x12,0x00,0x12,0x12,0x11,0x17,0x11,0x11,0x0d,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x33,0x01,0x23,0x35,0x33,0x35,0x06,0x06,0x07,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x13,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x05,0x01,0x18, +0xff,0x76,0x04,0x12,0x0b,0x3e,0x46,0x55,0x61,0xcd,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x95,0x32,0xec,0x07,0x15,0x0a,0x36,0x46,0x3d,0xfe,0xed,0x15,0x01,0x28,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59,0xd1,0x00,0x00,0x00,0x00,0x03,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x1e,0x00,0x2a, +0x00,0xd3,0xb1,0x06,0x64,0x44,0x40,0x0d,0x15,0x14,0x0f,0x03,0x03,0x04,0x25,0x22,0x02,0x0a,0x0b,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x42,0x00,0x03,0x04,0x01,0x04,0x03,0x72,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57,0x00,0x02,0x0d,0x01,0x00,0x09, +0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x1b,0x40,0x43,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x09,0x00,0x0b,0x00,0x09,0x0b,0x80,0x06,0x01,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x01,0x02,0x07,0x01,0x57, +0x00,0x02,0x0d,0x01,0x00,0x09,0x02,0x00,0x69,0x00,0x0b,0x0a,0x07,0x0b,0x57,0x00,0x0a,0x00,0x08,0x07,0x0a,0x08,0x68,0x00,0x0b,0x0b,0x07,0x60,0x0f,0x0c,0x0e,0x03,0x07,0x0b,0x07,0x50,0x59,0x40,0x29,0x1f,0x1f,0x1b,0x1b,0x01,0x00,0x1f,0x2a,0x1f,0x2a,0x29,0x28,0x27,0x26,0x24,0x23,0x21,0x20,0x1b,0x1e,0x1b,0x1e,0x1d,0x1c,0x13, +0x12,0x11,0x10,0x0e,0x0c,0x08,0x06,0x04,0x03,0x00,0x1a,0x01,0x1a,0x10,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x21,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15, +0x9a,0x3a,0x46,0x3c,0x25,0x1f,0x1e,0x25,0x25,0x1d,0x1e,0x51,0x9c,0xd7,0x55,0x2d,0x38,0x46,0xce,0x01,0xf9,0x55,0xfe,0x07,0x01,0x86,0xaf,0x7e,0x45,0x87,0x73,0x3c,0x01,0x90,0x3a,0x2f,0x19,0x1e,0x1e,0x19,0x19,0x1e,0x39,0x3f,0x32,0x37,0x42,0x06,0x38,0x2a,0x2f,0x3a,0xfe,0x70,0x02,0xda,0xfd,0x26,0x46,0x50,0xaf,0xbd,0x10,0x59, +0xd1,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0x76,0x01,0xcf,0x01,0x40,0x03,0x07,0x03,0x02,0x00,0x00,0xfd,0xfd,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfd,0xfd,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x89,0x01,0x79,0x01,0xcf,0x03,0x43,0x02,0x06,0x03,0x02,0x00,0x00,0xff,0xff,0x00,0x89,0xff,0xe4,0x01,0xcf,0x01,0xae,0x03,0x07, +0x03,0x02,0x00,0x00,0xfe,0x6b,0x00,0x09,0xb1,0x00,0x02,0xb8,0xfe,0x6b,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x02,0x00,0x91,0x01,0x8b,0x01,0xc7,0x03,0x48,0x00,0x0d,0x00,0x1b,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00, +0x51,0x0f,0x0e,0x01,0x00,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x48,0x53,0x53,0x48,0x48,0x53,0x53,0x48,0x28,0x2d,0x2d,0x28,0x28, +0x2d,0x2d,0x01,0x8b,0x4f,0x46,0x94,0x45,0x4f,0x4f,0x45,0x94,0x46,0x4f,0x3f,0x2e,0x28,0x94,0x28,0x2d,0x2d,0x28,0x94,0x28,0x2e,0x00,0x00,0x00,0x00,0x02,0x00,0x4c,0xff,0xf6,0x02,0x0c,0x02,0x8a,0x00,0x15,0x00,0x22,0x00,0x32,0x40,0x2f,0x1f,0x0e,0x0b,0x08,0x04,0x03,0x01,0x01,0x4c,0x02,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x00, +0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x1a,0x18,0x0d,0x0c,0x0a,0x09,0x00,0x15,0x01,0x15,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x27,0x33,0x17,0x37,0x33,0x07,0x17,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x27,0x27,0x07,0x06, +0x06,0x01,0x2c,0x43,0x63,0x36,0x2b,0x22,0x5b,0xac,0x68,0x79,0x79,0x66,0xac,0x5d,0x23,0x28,0x36,0x62,0xc6,0x46,0x3c,0x3c,0x46,0x30,0x52,0x53,0x16,0x19,0x0a,0x32,0x56,0x34,0x2e,0x51,0x28,0x69,0xc8,0x8b,0x8b,0xc7,0x6b,0x29,0x51,0x2c,0x34,0x56,0x32,0xc4,0x30,0x44,0x44,0x30,0x37,0x36,0x60,0x60,0x19,0x37,0x00,0x01,0x00,0xda, +0xff,0xf6,0x01,0x7e,0x00,0x98,0x00,0x0b,0x00,0x1a,0x40,0x17,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2d,0x2d,0x25,0x25,0x2d,0x2d,0x0a,0x2c,0x23,0x25,0x2e,0x2e,0x25, +0x23,0x2c,0x00,0x00,0x00,0x01,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x00,0x03,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x03, +0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x13,0x33,0x03,0xd2,0x37,0x6c,0x46,0xa0,0x01,0x32,0xfe,0xce,0x00,0x02,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x3f,0x02,0x4e,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x29,0x2a,0x2a,0x01,0x9c,0x28,0x22,0x22,0x28, +0x28,0x22,0x22,0x28,0xfe,0x5a,0x28,0x22,0x22,0x28,0x28,0x22,0x22,0x28,0x00,0x00,0x00,0x02,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x00,0x0d,0x00,0x11,0x00,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40, +0x14,0x00,0x02,0x05,0x01,0x03,0x02,0x03,0x63,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x13,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x01,0x22, +0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x69,0x37,0x6c,0x46,0x01,0x9a,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x32,0xfe,0xce,0x00,0x00,0x00,0x00,0x03,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x00,0xaa,0x00,0x0d,0x00,0x1b,0x00,0x29,0x00,0x30,0x40,0x2d,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06, +0x05,0x00,0x00,0x3f,0x00,0x4e,0x1d,0x1c,0x0f,0x0e,0x01,0x00,0x24,0x22,0x1c,0x29,0x1d,0x29,0x16,0x14,0x0e,0x1b,0x0f,0x1b,0x08,0x06,0x00,0x0d,0x01,0x0d,0x09,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x33,0x22, +0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0xea,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xfe,0x6d,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0xa7,0x16,0x1c,0x1c,0x16,0x17,0x1b,0x1b,0x0a,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e,0x1e,0x19,0x46,0x19,0x1e, +0x1e,0x19,0x46,0x19,0x1e,0x00,0x00,0x00,0x00,0x02,0x00,0xe1,0xff,0xfb,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x11,0x00,0x2c,0x40,0x29,0x04,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x02,0x42,0x02,0x4e,0x05,0x04,0x00,0x00,0x0c,0x09,0x04,0x11,0x05,0x10,0x00,0x03,0x00,0x03,0x11, +0x06,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x01,0x03,0x0c,0x6a,0x0c,0x38,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0xe1,0xff,0x4c,0x01,0x77,0x02,0x2b,0x00,0x0d, +0x00,0x11,0x00,0x2d,0x40,0x2a,0x04,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x03,0x3d,0x03,0x4e,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03, +0x13,0x33,0x13,0x01,0x1d,0x1a,0x22,0x22,0x1a,0x1e,0x1a,0x22,0x1f,0x1d,0x44,0x0c,0x52,0x0c,0x01,0xb3,0x22,0x1a,0x1a,0x22,0x23,0x1a,0x19,0x22,0xfd,0x99,0x02,0x03,0xfd,0xfd,0x00,0x00,0x00,0x02,0x00,0x82,0xff,0xfb,0x01,0xe5,0x02,0xda,0x00,0x14,0x00,0x22,0x00,0x70,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x07,0x01,0x04,0x03,0x06, +0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x1b,0x40,0x27,0x07,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00, +0x06,0x06,0x05,0x61,0x08,0x01,0x05,0x05,0x42,0x05,0x4e,0x59,0x40,0x15,0x16,0x15,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x09,0x09,0x1a,0x2b,0x37,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33, +0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xce,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xdc,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x73,0xff,0x4c,0x01,0xd6, +0x02,0x2b,0x00,0x0d,0x00,0x22,0x00,0x74,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x26,0x00,0x04,0x00,0x03,0x03,0x04,0x72,0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x1b,0x40,0x27,0x00,0x04,0x00,0x03,0x00,0x04,0x03,0x80, +0x00,0x03,0x00,0x05,0x06,0x03,0x05,0x6a,0x07,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x3b,0x4d,0x00,0x06,0x06,0x02,0x5f,0x08,0x01,0x02,0x02,0x3d,0x02,0x4e,0x59,0x40,0x19,0x0f,0x0e,0x01,0x00,0x21,0x1f,0x1b,0x19,0x18,0x17,0x16,0x15,0x0e,0x22,0x0f,0x22,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35, +0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x4f,0x1c,0x20,0x22,0x1a,0x1e,0x1a,0x22,0x22,0x1a,0x14,0x46,0x67,0x39,0x30,0x55,0x38,0x5a,0x32,0x40,0x4b,0x4c,0x40,0x7d,0x01,0xb3,0x22,0x19,0x1a,0x23,0x22,0x1a, +0x1a,0x22,0xfd,0x99,0x35,0x61,0x41,0x3a,0x5a,0x36,0x03,0x5f,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x04,0x01,0x7e,0x01,0xa6,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x0e,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x0e,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b, +0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0xf5,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x00, +0x00,0x01,0x00,0x24,0x00,0x67,0x02,0x34,0x02,0x6c,0x00,0x2c,0x00,0x1b,0x40,0x18,0x29,0x25,0x24,0x20,0x1c,0x1b,0x17,0x0e,0x0a,0x09,0x05,0x01,0x0c,0x00,0x49,0x00,0x00,0x00,0x76,0x13,0x12,0x01,0x09,0x16,0x2b,0x37,0x27,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x37,0x17,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x33,0x15,0x14,0x06, +0x07,0x36,0x36,0x37,0x37,0x17,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x07,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0xb1,0x45,0x41,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x6b,0x1c,0x6c,0x11,0x38,0x17,0x05,0x05,0x54,0x06,0x05,0x18,0x37,0x12,0x6c,0x1c,0x6b,0x12,0x3e,0x1c,0x14,0x2e,0x0c,0x41,0x45,0x41,0x0c,0x22,0x0c,0x0c,0x22,0x0c,0x67, +0x31,0x5d,0x12,0x34,0x14,0x04,0x10,0x07,0x28,0x4f,0x28,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x7d,0x7d,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x28,0x4f,0x28,0x07,0x10,0x04,0x14,0x35,0x11,0x5d,0x31,0x5e,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x00,0x00,0x01, +0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x06,0x01,0x05,0x04,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x9b,0x96,0x6e,0x03, +0xac,0x50,0xfe,0xb1,0x50,0xfe,0x93,0x50,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x09, +0x1c,0x2b,0x05,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x01,0x8b,0xf0,0x96,0x9b,0x9b,0x9b,0xf5,0x6e,0x50,0x01,0x6d,0x50,0x01,0x4f,0x50,0x00,0x00,0x00,0x02,0x00,0x7d,0xff,0x92,0x01,0xdb,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04, +0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x7d,0x5a,0xaa,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0x00,0x69,0xff,0xfb,0x01,0xef,0x02,0xda,0x00,0x26,0x03,0x2e,0x88,0x00,0x00,0x06,0x03,0x2e,0x78,0x00,0x00,0x00, +0x00,0x02,0x00,0x87,0xff,0xfb,0x01,0xea,0x02,0xda,0x00,0x16,0x00,0x24,0x00,0x3f,0x40,0x3c,0x15,0x05,0x02,0x03,0x00,0x01,0x4c,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x06,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x00,0x3b,0x4d,0x00,0x05,0x05,0x04,0x61,0x07,0x01,0x04,0x04,0x42,0x04,0x4e,0x18,0x17,0x00,0x00,0x1f,0x1c, +0x17,0x24,0x18,0x23,0x00,0x16,0x00,0x16,0x21,0x27,0x12,0x08,0x09,0x19,0x2b,0x37,0x27,0x35,0x33,0x15,0x07,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xdf,0x0d,0x5a,0x03,0x30,0x37,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39, +0x6a,0x5b,0x06,0x2f,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xcd,0xf5,0x64,0x64,0x3e,0x0a,0x43,0x32,0x3b,0x47,0x55,0x35,0x60,0x42,0x57,0x6e,0x07,0x6a,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x47,0x40,0x44,0x07,0x05,0x02,0x03,0x0f,0x08, +0x02,0x02,0x01,0x03,0x02,0x68,0x0e,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x10,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x00,0x00,0x1f,0x1e,0x1d,0x1c,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x1f,0x2b,0x33, +0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x53,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2, +0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xff,0xff,0x00,0xda,0xff,0xf6,0x01,0x7e,0x00,0x98,0x02,0x06,0x03,0x29,0x00,0x00,0x00,0x01,0xff,0xf6,0x02,0xee,0x02,0x62,0x03,0x3e,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, +0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x21,0x15,0x0a,0x02,0x6c,0x02,0xee,0x50,0x50,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17, +0x2b,0x17,0x01,0x33,0x01,0x4b,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0x54,0x00,0x01,0x00,0x4b,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x01,0x01,0xae,0xfe,0x9d,0x5f,0x01,0x63, +0x6e,0x03,0xac,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0xff,0x4c,0x02,0x4e,0x00,0x00,0x00,0x0f,0x00,0x24,0x40,0x21,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x5f,0x04,0x01,0x00,0x00,0x3d,0x00,0x4e,0x01,0x00,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x05,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x33,0x14, +0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xb4,0x4e,0x5c,0x5a,0x31,0x29,0xdc,0x29,0x31,0x5a,0x5c,0x4e,0xb4,0x61,0x53,0x2e,0x36,0x36,0x2e,0x53,0x61,0x00,0x00,0x02,0x00,0xd9,0x00,0x46,0x01,0x7f,0x02,0x80,0x00,0x0b,0x00,0x17,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x02,0x02,0x03, +0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03,0x02,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d, +0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xea,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0xff,0xff,0xff,0x1a,0x01,0x09,0xff,0xbe,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x40,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00, +0xff,0xff,0xff,0x79,0x01,0x09,0x00,0x1d,0x01,0xab,0x01,0x07,0x03,0x29,0xfe,0x9f,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8,0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xb9,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x07,0x00,0x01,0x32,0x2b,0x05,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x0e,0x02,0x15, +0x15,0x14,0x16,0x16,0x17,0x01,0xe5,0x8f,0x9d,0x9d,0x8f,0x40,0x5f,0x33,0x33,0x5f,0x40,0x78,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x20,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x00,0x00,0x01,0x00,0x73,0xff,0x88,0x01,0x9f,0x03,0x48,0x00,0x11,0x00,0x06,0xb3,0x0b,0x00,0x01,0x32,0x2b,0x17,0x35,0x3e,0x02,0x35,0x35,0x34,0x26, +0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14,0x06,0x73,0x41,0x5e,0x33,0x33,0x5e,0x41,0x8f,0x9d,0x9d,0x78,0x57,0x0f,0x54,0x7e,0x4e,0xb4,0x4f,0x7d,0x54,0x0f,0x57,0x20,0xcc,0x9a,0xb4,0x9a,0xcc,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x00,0x24,0x00,0x3d,0x40,0x3a,0x1b,0x01,0x01,0x02,0x01,0x4c,0x00,0x03, +0x00,0x04,0x02,0x03,0x04,0x69,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x59,0x00,0x05,0x05,0x00,0x61,0x06,0x01,0x00,0x05,0x00,0x51,0x01,0x00,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x07,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36, +0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0xcc,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x6e,0x57,0x4f,0xa4,0x35, +0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x26,0x00,0x38,0x40,0x35,0x09,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x69,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00, +0x05,0x05,0x00,0x59,0x00,0x00,0x00,0x05,0x61,0x06,0x01,0x05,0x00,0x05,0x51,0x00,0x00,0x00,0x26,0x00,0x25,0x21,0x26,0x21,0x2c,0x21,0x07,0x09,0x1b,0x2b,0x17,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17, +0x17,0x16,0x06,0x06,0x23,0x5f,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f, +0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x00,0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x11, +0x33,0x15,0x23,0x11,0x33,0x15,0xcd,0xf5,0x9b,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00, +0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x96,0x9b,0x9b,0xf5,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x00,0x00,0x00,0xff,0xff,0x00,0x4b,0xff,0x92,0x01,0xf9,0x03,0x3e,0x02,0x06,0x03,0x45,0x00,0x00,0xff,0xff,0x00,0x5f,0xff,0x92,0x02,0x0d,0x03,0x3e,0x02,0x06,0x03,0x46,0x00,0x00, +0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xef,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x33,0x03,0x13,0x33,0x03,0x13,0xf3,0x85,0x85,0xfc,0x85,0x85,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe,0x93, +0x00,0x01,0x00,0x96,0x00,0x00,0x01,0xc5,0x02,0xda,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x21,0x03,0x13,0x33,0x03,0x13,0x01,0x1d,0x87,0x87,0xa8,0x87,0x87,0x01,0x6b,0x01,0x6f,0xfe,0x93,0xfe, +0x93,0x00,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x00,0x01,0xea,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x65,0xfc,0x85,0x85,0xfc,0x85,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00, +0x00,0x01,0x00,0x93,0x00,0x00,0x01,0xc2,0x02,0xda,0x00,0x05,0x00,0x18,0x40,0x15,0x05,0x02,0x02,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x12,0x10,0x02,0x06,0x18,0x2b,0x21,0x23,0x13,0x03,0x33,0x13,0x01,0x3b,0xa8,0x87,0x87,0xa8,0x87,0x01,0x6d,0x01,0x6d,0xfe,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0xcd, +0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x15,0x23,0x11,0xcd,0xf5,0x9b,0x6e,0x03,0xac,0x50,0xfc,0xa4,0x00,0x00,0x00, +0x00,0x01,0x00,0xcd,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xcd,0x5a,0x9b,0x6e,0x03,0xac,0xfc,0xa4, +0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x92,0x01,0xea,0x03,0x48,0x00,0x26,0x00,0x5c,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x20,0x05,0x01,0x04,0x03,0x01,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x1b,0x40,0x21,0x05,0x01,0x04,0x03, +0x01,0x03,0x04,0x01,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x59,0x40,0x0d,0x00,0x00,0x00,0x26,0x00,0x26,0x2c,0x21,0x2b,0x23,0x06,0x06,0x1a,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x14,0x16,0x33, +0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x36,0x37,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0xb9,0x54,0x46,0x45,0x52,0x22,0x14,0x79,0x36,0x24,0x41,0x37,0x87,0x87,0x5f,0x73,0x09,0x21,0x25,0x85,0x21,0x14,0x1e,0x1f,0x1c,0x24,0x02,0x9c,0x1b,0x42,0x4f,0x4e,0x41,0x2b,0x53,0x21,0xca,0x5a,0x6e,0x25,0x3c,0x45,0x50, +0x70,0x5f,0x10,0x43,0x61,0x3b,0xd6,0x35,0x49,0x13,0x1a,0x27,0x24,0x1d,0x1b,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x05,0x11,0x23,0x35,0x33,0x11,0x01,0x31,0x9b,0xf5,0x6e,0x03,0x5c,0x50,0xfc,0x54,0x00,0x00,0x00,0x01,0x00,0x96,0xff,0x92,0x01,0x8b,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05, +0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x96,0x9b,0x5a,0x6e,0x50,0x03,0x5c,0xfc,0x54,0x00,0x00,0x00,0x00,0x01,0x00,0x78,0xff,0x92,0x01,0xdb,0x03,0x48,0x00,0x26,0x00,0x54,0x4b,0xb0,0x0e,0x50,0x58,0x40,0x1f,0x00,0x00,0x01,0x03,0x01,0x00,0x72,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02, +0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x1b,0x40,0x20,0x00,0x00,0x01,0x03,0x01,0x00,0x03,0x80,0x00,0x04,0x00,0x01,0x00,0x04,0x01,0x69,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x59,0xb7,0x2b,0x21,0x2c,0x23,0x10,0x05,0x06,0x1b,0x2b,0x01,0x23,0x35,0x34,0x26,0x23, +0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x1e,0x02,0x15,0x14,0x06,0x23,0x23,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x01,0xa9,0x5a,0x23,0x1d,0x1f,0x1e,0x14,0x21,0x85,0x25,0x21,0x09,0x73,0x5f,0x87,0x87,0x37,0x41,0x24,0x36,0x79,0x14,0x22,0x52,0x45,0x46,0x54,0x02,0x9c,0x1b,0x1d, +0x24,0x27,0x1a,0x13,0x49,0x35,0xd6,0x3b,0x61,0x43,0x10,0x5f,0x70,0x50,0x45,0x3c,0x25,0x6e,0x5a,0xca,0x21,0x53,0x2b,0x41,0x4e,0x4f,0x42,0x00,0x00,0x02,0x00,0xa0,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x0b,0x0a,0x09,0x00,0x02,0x32,0x2b,0x05,0x2e,0x02,0x35,0x35,0x34,0x36,0x36,0x37,0x03,0x11,0x06, +0x06,0x15,0x15,0x14,0x16,0x01,0xe5,0x62,0x93,0x50,0x50,0x93,0x62,0x55,0x46,0x50,0x50,0x78,0x10,0x6b,0xa5,0x66,0xb4,0x67,0xa4,0x6b,0x10,0xfc,0xb3,0x02,0xde,0x24,0x92,0x61,0xb4,0x5f,0x91,0x00,0x00,0x00,0x00,0x02,0x00,0x73,0xff,0x88,0x01,0xb8,0x03,0x48,0x00,0x09,0x00,0x11,0x00,0x08,0xb5,0x11,0x0a,0x01,0x00,0x02,0x32,0x2b, +0x17,0x11,0x1e,0x02,0x15,0x15,0x14,0x06,0x06,0x27,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x73,0x63,0x92,0x50,0x50,0x92,0x0e,0x46,0x50,0x50,0x46,0x78,0x03,0xc0,0x10,0x6b,0xa4,0x67,0xb4,0x66,0xa5,0x6b,0x63,0x23,0x91,0x5f,0xb4,0x61,0x92,0x24,0x00,0x00,0x01,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x8c,0x01,0x40,0x01,0x22,0x50,0x50,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x50,0x01,0x22,0x02,0x08, +0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x50,0x01,0xb8,0x01,0x22,0x50,0x50,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x02,0x58,0x01,0x72,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x01,0x22,0x50,0x50,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x9c,0x02,0x1c, +0xff,0xe7,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x17,0x35,0x21,0x15,0x3c,0x01,0xe0,0x64,0x4b,0x4b,0x00,0x00,0x00,0x01,0x00,0xdc,0xff,0x60,0x01,0x86, +0x00,0x91,0x00,0x0f,0x00,0x35,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x3d,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x17,0x37,0x36,0x36,0x35, +0x34,0x26,0x27,0x33,0x16,0x16,0x15,0x14,0x06,0x07,0x07,0xdc,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0xa0,0x7b,0x14,0x2a,0x0f,0x1d,0x39,0x13,0x14,0x38,0x1d,0x14,0x38,0x19,0x63,0x00,0x00,0xff,0xff,0x00,0x69,0xff,0x60,0x02,0x05,0x00,0x91,0x00,0x26,0x03,0x5d,0x8d,0x00,0x00,0x06,0x03,0x5d,0x7f,0x00,0x00,0x00, +0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xed,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x24,0x40,0x21,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x01,0x38,0x00,0x4e,0x10,0x10,0x00,0x00,0x10,0x1f,0x10,0x1f,0x18,0x17,0x00,0x0f,0x00,0x0f,0x17,0x06,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35, +0x34,0x36,0x37,0x37,0x23,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0xed,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x76,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d,0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x7b,0x13,0x2b, +0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0x00,0xff,0xff,0x00,0x69,0x01,0xaf,0x01,0xef,0x02,0xe0,0x00,0x27,0x03,0x5d,0xff,0x8d,0x02,0x4f,0x01,0x07,0x03,0x5d,0x00,0x69,0x02,0x4f,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x4f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xd2, +0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x19,0x40,0x16,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x01,0x38,0x00,0x4e,0x00,0x00,0x00,0x0f,0x00,0x0f,0x17,0x03,0x09,0x17,0x2b,0x01,0x07,0x06,0x06,0x15,0x14,0x16,0x17,0x23,0x26,0x26,0x35,0x34,0x36,0x37,0x37,0x01,0x7c,0x38,0x09,0x0a,0x1c,0x19,0x65,0x16,0x19,0x0e,0x0b,0x2d, +0x02,0xda,0x7b,0x13,0x2b,0x0f,0x1d,0x39,0x13,0x14,0x39,0x1c,0x14,0x38,0x19,0x63,0xff,0xff,0x00,0xdc,0x01,0xa9,0x01,0x86,0x02,0xda,0x03,0x07,0x03,0x5d,0x00,0x00,0x02,0x49,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x49,0xb0,0x35,0x2b,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x01,0xa9,0x01,0x7c,0x02,0xda,0x00,0x0f,0x00,0x13,0x40,0x10, +0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x01,0x38,0x00,0x4e,0x17,0x10,0x02,0x09,0x18,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0x7c,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, +0x00,0x02,0x00,0x69,0x01,0xa9,0x01,0xef,0x02,0xda,0x00,0x0f,0x00,0x1f,0x00,0x17,0x40,0x14,0x02,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x00,0x4e,0x17,0x17,0x17,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x23,0x27,0x26,0x26,0x35,0x34,0x36,0x37, +0x33,0x06,0x06,0x15,0x14,0x16,0x17,0x01,0xef,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0xa4,0x64,0x2d,0x0b,0x0e,0x19,0x16,0x65,0x19,0x1c,0x0a,0x09,0x01,0xa9,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x7b,0x63,0x19,0x38,0x14,0x1d,0x38,0x14,0x13,0x39,0x1d,0x0f,0x2a,0x14,0x00,0x00,0x00, +0x00,0x02,0x00,0x1e,0x00,0x28,0x02,0x33,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06, +0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x21,0x27,0x37,0x33,0x07,0x17,0x01,0xcc,0xc0,0xbf,0x68,0xc4,0xc4,0xfe,0xab,0xc0,0xbf,0x6a,0xc4,0xc4,0x28,0xf0,0xf0,0xee,0xf2,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x28,0x02,0x3a,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x33,0x40,0x30,0x0a,0x07,0x04,0x01,0x04,0x01, +0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x09,0x08,0x00,0x05,0x00,0x05,0x12,0x06,0x09,0x17,0x2b,0x25,0x37,0x27,0x33,0x17,0x07,0x21,0x37,0x27,0x33,0x17,0x07,0x01,0x12,0xc0,0xc1,0x69,0xc0,0xbf,0xfe,0xab, +0xc0,0xc1,0x67,0xc0,0xbf,0x28,0xf1,0xef,0xf0,0xf0,0xf1,0xef,0xf0,0xf0,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03, +0x09,0x17,0x2b,0x25,0x27,0x37,0x33,0x07,0x17,0x01,0x5d,0xca,0xca,0x66,0xcc,0xcf,0x28,0xf0,0xf0,0xee,0xf2,0x00,0x00,0x00,0x00,0x01,0x00,0x93,0x00,0x28,0x01,0xc6,0x02,0x08,0x00,0x05,0x00,0x25,0x40,0x22,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f, +0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x09,0x17,0x2b,0x37,0x37,0x27,0x33,0x17,0x07,0x96,0xcc,0xcf,0x69,0xca,0xca,0x28,0xee,0xf2,0xf0,0xf0,0xff,0xff,0x00,0x14,0x01,0xa3,0x02,0x44,0x02,0xd5,0x00,0x27,0x03,0x2a,0xff,0x42,0x02,0x43,0x00,0x27,0x03,0x2a,0x00,0x09,0x02,0x43,0x01,0x07,0x03,0x2a,0x00,0xcf,0x02,0x43,0x00,0x1b, +0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x8f,0x01,0xae,0x01,0xc9,0x02,0xda,0x00,0x26,0x03,0x6b,0x96,0x00,0x00,0x06,0x03,0x6b,0x6a,0x00,0x00,0x00,0x00,0x01,0x00,0xf9,0x01,0xae,0x01,0x5f,0x02,0xda,0x00,0x03, +0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x03,0x33,0x03,0x01,0x01,0x08,0x66,0x07,0x01,0xae,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x02,0xfe,0x34,0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01, +0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x2d,0x01,0x9f,0xfc,0x68,0x01,0x9f,0x01,0x22,0x50,0x50,0x50,0x50,0x00,0x00,0x03,0xfb,0xdc, +0x01,0x22,0x01,0xcc,0x01,0x72,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11, +0x09,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x0f,0x01,0xbd,0xfa,0x10,0x01,0xbd,0x5f,0x01,0xb8,0x01,0x22,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x02,0xf9,0x4d,0xff,0x74,0x01,0xf4,0x03,0x20,0x00,0x29,0x00,0x50,0x00,0x84,0xb5,0x33,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, +0x40,0x24,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08,0x01,0x00,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x65,0x09,0x01,0x03,0x03,0x04,0x61,0x0a,0x01,0x04,0x04,0x40,0x03,0x4e,0x1b,0x40,0x2b,0x0a,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x69,0x0b,0x05,0x02,0x02,0x0c,0x06,0x02,0x01,0x00,0x02,0x01,0x67,0x08, +0x01,0x00,0x07,0x07,0x00,0x59,0x08,0x01,0x00,0x00,0x07,0x61,0x0f,0x0d,0x0e,0x03,0x07,0x00,0x07,0x51,0x59,0x40,0x20,0x2a,0x2a,0x00,0x00,0x2a,0x50,0x2a,0x4f,0x49,0x47,0x46,0x44,0x3e,0x3c,0x3b,0x39,0x2d,0x2b,0x00,0x29,0x00,0x28,0x21,0x26,0x21,0x26,0x11,0x16,0x21,0x10,0x09,0x1d,0x2b,0x05,0x35,0x33,0x32,0x36,0x27,0x27,0x26, +0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0x21,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15, +0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x06,0x23,0xfe,0x34,0x2d,0x2f,0x37,0x07,0x19,0x04,0x0c,0x0f,0xfa,0x8f,0x05,0x75,0x11,0x0f,0x05,0x19,0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x01,0xe5,0x2d,0x2f,0x37,0x07,0x19,0x09,0x3a,0x33,0x33,0x3a,0x09,0x19, +0x07,0x37,0x2f,0x2d,0x2d,0x3b,0x59,0x2d,0x08,0x19,0x08,0x2b,0x41,0x7d,0x7d,0x40,0x2c,0x08,0x19,0x08,0x2d,0x59,0x3b,0x8c,0x50,0x2b,0x2b,0xa4,0x1e,0x33,0x13,0x50,0x11,0x33,0x20,0xa4,0x2b,0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x50,0x2b,0x2b,0xa4,0x39,0x4f,0x09,0x08,0x46,0x39,0xa4,0x2b, +0x2b,0x50,0x27,0x4a,0x35,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x34,0x4b,0x27,0x00,0x00,0x01,0xfb,0xa6,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50, +0x11,0x13,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x08,0x08,0xfa,0x1c,0x05,0xe4,0x0a,0x0a,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x0a,0x06,0x50,0x08,0x0c,0x00,0x00,0x01,0xfe,0x5c,0xff,0xab,0x01,0x59,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0, +0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x03,0x03,0x02,0x5f,0x00,0x02,0x02,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11, +0x11,0x05,0x09,0x19,0x2b,0x17,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xff,0xfd,0x5d,0x02,0xa3,0x5a,0x55,0x01,0x77,0x50,0x01,0x7c,0xfc,0xbd,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x2a,0x40,0x27,0x02,0x01,0x02,0x03,0x01,0x4c,0x00,0x00,0x03,0x00,0x85,0x00,0x01,0x02,0x01,0x86,0x00,0x03,0x02,0x02, +0x03,0x57,0x00,0x03,0x03,0x02,0x60,0x00,0x02,0x03,0x02,0x50,0x11,0x23,0x12,0x10,0x04,0x09,0x1a,0x2b,0x13,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0xbc,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfc,0x76,0x03,0x8a,0x04,0x08,0x05,0x02,0x71,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0x50,0x05,0x0a, +0x05,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0e,0x00,0x1a,0x00,0x3c,0x40,0x39,0x19,0x13,0x0d,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x68,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0f,0x0f,0x00,0x00,0x0f, +0x1a,0x0f,0x1a,0x18,0x17,0x00,0x0e,0x00,0x0e,0x14,0x11,0x23,0x08,0x09,0x19,0x2b,0x27,0x37,0x36,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0xbe,0x03,0x07,0x03,0xfb,0x4a,0x04,0xb6,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05, +0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0xef,0x04,0x08,0x04,0x50,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x2e,0x40,0x2b,0x08,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x03,0x02,0x57, +0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x25,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x01,0x8a,0xc8,0xfd,0x3b,0x02,0xc5,0xc9,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb, +0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0a,0x00,0x12,0x00,0x3c,0x40,0x39,0x10,0x0c,0x08,0x03,0x00,0x01,0x01,0x4c,0x04,0x01,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x0b,0x0b,0x00,0x00,0x0b,0x12,0x0b,0x12,0x0e, +0x0d,0x00,0x0a,0x00,0x0a,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x37,0x27,0x21,0x35,0x21,0x37,0x33,0x07,0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x5e,0xc8,0xfc,0x0f,0x03,0xf1,0xc9,0x69,0xbe,0x2e,0x32,0xba,0xc2,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0xff,0x50,0xff,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef, +0x37,0x3d,0xeb,0x00,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xef,0x01,0xb8,0x00,0x1d,0x00,0x6e,0x4b,0xb0,0x11,0x50,0x58,0x40,0x22,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x05,0x07,0x02,0x00,0x03,0x00,0x51,0x1b,0x40,0x29,0x00,0x05, +0x01,0x00,0x01,0x05,0x00,0x80,0x00,0x04,0x00,0x06,0x03,0x04,0x06,0x69,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x19,0x17,0x14,0x13,0x10,0x0e,0x0a,0x08,0x05,0x04,0x03,0x02,0x00,0x1d,0x01,0x1d,0x08,0x09,0x16,0x2b, +0x37,0x22,0x27,0x21,0x35,0x21,0x15,0x14,0x16,0x33,0x32,0x3e,0x03,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x0e,0x03,0x64,0x62,0x27,0xfe,0x36,0x02,0x0d,0x27,0x1f,0x1a,0x27,0x23,0x29,0x39,0x2a,0x46,0x55,0x55,0x26,0x20,0x1b,0x27,0x24,0x29,0x38,0xdc,0x46,0x50,0x05,0x22,0x24,0x1d,0x2b,0x2c,0x1d,0x50,0x41,0x3c, +0x3c,0x20,0x26,0x1d,0x2b,0x2c,0x1d,0x00,0xff,0xff,0xfe,0x0c,0xff,0x92,0x01,0xcc,0x03,0x3e,0x00,0x27,0x03,0x45,0xfd,0xc1,0x00,0x00,0x00,0x06,0x03,0x45,0xd3,0x00,0x00,0x03,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x24,0x00,0x4a,0x00,0x4f,0x00,0x8d,0xb7,0x4e,0x4d,0x1b,0x03,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58, +0x40,0x24,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d,0x01,0x05,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x65,0x0a,0x01,0x04,0x04,0x03,0x61,0x09,0x01,0x03,0x03,0x40,0x04,0x4e,0x1b,0x40,0x2b,0x09,0x01,0x03,0x0a,0x01,0x04,0x02,0x03,0x04,0x69,0x0b,0x08,0x02,0x02,0x0c,0x07,0x02,0x01,0x05,0x02,0x01,0x67,0x0d, +0x01,0x05,0x00,0x00,0x05,0x59,0x0d,0x01,0x05,0x05,0x00,0x61,0x0f,0x06,0x0e,0x03,0x00,0x05,0x00,0x51,0x59,0x40,0x27,0x26,0x25,0x01,0x00,0x49,0x47,0x42,0x41,0x40,0x3f,0x3a,0x38,0x37,0x35,0x30,0x2e,0x2d,0x2b,0x25,0x4a,0x26,0x4a,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x10,0x09,0x16,0x2b,0x05, +0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x21,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21, +0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x16,0x17,0x35,0x06,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x05,0x42,0x4b,0x4b,0x42,0x05,0x0f,0x04,0x34,0x2f,0x2d,0x01,0xe8,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05, +0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x05,0x5f,0xfa,0xa3,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0xfe,0xfb,0x17,0x14,0x14,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x3b,0x47,0x07,0x07,0x4e,0x3a,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f, +0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0xd9,0x02,0x06,0x0f,0x05,0x00,0x05,0xf9,0x7f,0xff,0x74,0x02,0x03,0x03,0x20,0x00,0x25,0x00,0x29,0x00,0x2d,0x00,0x32,0x00,0x40,0x00,0xaf,0xb6,0x30,0x2e,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x36,0x0a,0x05,0x02,0x02,0x10,0x0b,0x06, +0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x00,0x04,0x04,0x03,0x61,0x00,0x03,0x03,0x40,0x4d,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x1b,0x40,0x34,0x00,0x03,0x00,0x04,0x02,0x03,0x04,0x69,0x0a,0x05,0x02,0x02,0x10,0x0b, +0x06,0x03,0x01,0x09,0x02,0x01,0x67,0x00,0x07,0x0e,0x01,0x00,0x07,0x00,0x65,0x0f,0x01,0x09,0x09,0x08,0x5f,0x00,0x08,0x08,0x38,0x4d,0x00,0x0d,0x0d,0x0c,0x61,0x11,0x01,0x0c,0x0c,0x42,0x0c,0x4e,0x59,0x40,0x2f,0x34,0x33,0x2a,0x2a,0x26,0x26,0x01,0x00,0x3b,0x38,0x33,0x40,0x34,0x3f,0x2a,0x2d,0x2a,0x2d,0x2c,0x2b,0x26,0x29,0x26, +0x29,0x28,0x27,0x24,0x22,0x1d,0x1c,0x1b,0x1a,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x25,0x01,0x25,0x12,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x07,0x21,0x15,0x21,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01, +0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x25,0x16,0x17,0x35,0x06,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfb,0x00,0x58,0x68,0x07,0x0f,0x05,0x28,0x41,0x73,0x73,0x41,0x28,0x05,0x0f,0x07,0x68,0x58,0x2d,0x2d,0x2f,0x34,0x04,0x0f,0x06,0x27,0x01,0x25,0xfe,0xdd,0x25,0x06,0x0f,0x04,0x34,0x2f,0x2d,0x01, +0x28,0x0c,0x6a,0x0c,0x9d,0x04,0xbf,0xf8,0x25,0x0e,0x0c,0x0c,0x02,0x39,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x8c,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x41,0x23,0x50,0x25,0x3f,0xa4,0x2b,0x2b,0x50,0x01,0x63,0x02,0x03,0xfd,0xfd,0x4b,0x50,0x50,0x2b,0x01,0x03,0x08,0x02,0xfe,0xac, +0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0xff,0xff,0xfc,0x09,0xff,0x92,0x01,0x40,0x03,0x3e,0x00,0x27,0x03,0x45,0xfb,0xbe,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0xf3,0x00,0x00,0x00,0x06,0x03,0x2e,0xc9,0x00,0x00,0x02,0xfe,0x43,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x48,0x40,0x45,0x1b,0x01,0x01,0x02,0x01,0x4c, +0x06,0x01,0x03,0x00,0x04,0x02,0x03,0x04,0x67,0x00,0x02,0x00,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x09,0x07,0x08,0x03,0x00,0x05,0x00,0x4f,0x25,0x25,0x01,0x00,0x25,0x28,0x25,0x28,0x27,0x26,0x23,0x21,0x15,0x13,0x12,0x10,0x0b,0x09,0x08,0x06,0x00,0x24,0x01,0x24,0x0a,0x09,0x16,0x2b, +0x07,0x22,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x33,0x11,0x33,0x11,0x3c,0x58,0x65,0x04,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x41,0x26,0x03,0x0a,0x04,0x65,0x58,0x73,0x73,0x2f,0x32,0x02,0x0a, +0x03,0x35,0x32,0x31,0x36,0x03,0x0a,0x02,0x32,0x2f,0x73,0xb4,0x5a,0x6e,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x03,0xac,0xfc,0x54,0x00,0xff,0xff,0xfe,0x34,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x27,0x03,0x46,0xfd,0xd5,0x00,0x00,0x00,0x06, +0x03,0x46,0xe7,0x00,0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x33,0x11,0x33,0x11,0xfe,0xbb,0x01,0x81,0xfe,0xd9,0x01,0x27,0xaf,0x5a,0x6e,0x03,0xac,0x50,0xfc,0xf4,0x50,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0x8e,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x47,0xfd,0xc1,0x00,0x00,0x01,0x06,0x04,0x1c,0x9c,0x0f, +0x00,0x08,0xb1,0x01,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0x00,0x03,0xfe,0x3e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x04,0x00,0x03,0x06,0x04,0x03,0x67,0x09,0x07,0x02,0x05,0x13,0x10,0x02,0x0a,0x0b,0x05,0x0a,0x68,0x12,0x11,0x02,0x0b,0x0e,0x0c,0x02,0x00,0x0d,0x0b,0x00,0x67, +0x00,0x02,0x00,0x01,0x02,0x01,0x63,0x08,0x01,0x06,0x06,0x38,0x4d,0x14,0x0f,0x02,0x0d,0x0d,0x39,0x0d,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x15,0x09,0x1f,0x2b,0x33,0x37,0x21,0x11, +0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x11,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x21,0x15,0x21,0x33,0x33,0x37,0x23,0x53,0x27,0xfe,0xb9,0xf5,0x9b,0x9b,0xf5,0x01,0x7f,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x0e, +0xfe,0x8c,0x01,0x52,0x46,0xa0,0x22,0xa0,0xd2,0xfe,0xc0,0x50,0x03,0x0c,0x50,0xfe,0xca,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xc7,0xb4,0xb4,0x00,0xff,0xff,0xfe,0xd4,0xff,0xf6,0x01,0x2e,0x00,0x98,0x00,0x27,0x03,0x29,0xfd,0xfa,0x00,0x00,0x00,0x06,0x03,0x29,0xb0,0x00,0xff,0xff,0xfc,0x90,0xff,0xf6,0x01,0x1a, +0x00,0x98,0x00,0x27,0x03,0x29,0xfb,0xb6,0x00,0x00,0x00,0x27,0x03,0x29,0xfd,0xa9,0x00,0x00,0x00,0x06,0x03,0x29,0x9c,0x00,0xff,0xff,0xfc,0x71,0xff,0xf6,0x01,0x45,0x02,0x53,0x00,0x27,0x04,0x1c,0xff,0x42,0x00,0x00,0x00,0x27,0x03,0x29,0xfb,0x97,0x00,0x00,0x00,0x07,0x03,0x29,0xfd,0x4d,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x82, +0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x27,0x03,0x29,0xfd,0xa8,0x00,0x00,0x00,0x06,0x03,0x30,0x9c,0x00,0xff,0xff,0xfe,0x5c,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x27,0x03,0x33,0xfd,0xa8,0xff,0xdd,0x03,0x06,0x04,0x19,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xdd,0xb0,0x35,0x2b,0x00,0xff,0xff,0xfe,0xd1,0xff,0xf6,0x01,0x2f, +0x02,0x30,0x00,0x27,0x03,0x2b,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2b,0xb0,0x00,0xff,0xff,0xfc,0xc9,0xff,0xf6,0x00,0xdf,0x02,0x30,0x00,0x27,0x03,0x2b,0xfb,0xf0,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x00,0x00,0x07,0x03,0x2b,0xff,0x60,0x00,0x00,0x00,0x00,0xff,0xff,0xfc,0x44,0x00,0x2d,0x01,0x81,0x02,0x67,0x00,0x27, +0x03,0x2b,0xfb,0x6b,0x00,0x37,0x00,0x27,0x03,0x2b,0xfd,0x2f,0x00,0x37,0x01,0x07,0x04,0x19,0xff,0x7e,0x00,0x00,0x00,0x10,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xb1,0x02,0x02,0xb0,0x37,0xb0,0x35,0x2b,0xff,0xff,0xfe,0xb3,0xff,0xf6,0x01,0x81,0x02,0xda,0x00,0x26,0x03,0x30,0x9c,0x00,0x00,0x07,0x03,0x2b,0xfd,0xda,0x00,0x00, +0x00,0x05,0xfc,0x2c,0xff,0xf6,0x01,0xae,0x02,0xda,0x00,0x14,0x00,0x21,0x00,0x2f,0x00,0x3d,0x00,0x4b,0x01,0x3b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e,0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x07,0x0a,0x06,0x4c,0x1b,0x40,0x1b,0x1f,0x01,0x06,0x01,0x1e, +0x01,0x05,0x06,0x20,0x1a,0x02,0x03,0x00,0x21,0x01,0x04,0x03,0x16,0x01,0x08,0x04,0x15,0x01,0x09,0x0a,0x06,0x4c,0x59,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x40,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x72,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06, +0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x41,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38, +0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x08,0x08,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x4d,0x00,0x0a,0x0a,0x07,0x61,0x0e,0x09,0x0d,0x03,0x07,0x07,0x3f,0x07,0x4e,0x1b,0x40,0x3d,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x01,0x01,0x02,0x5f, +0x00,0x02,0x02,0x38,0x4d,0x0c,0x01,0x05,0x05,0x06,0x61,0x00,0x06,0x06,0x41,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x4d,0x00,0x08,0x08,0x07,0x61,0x0d,0x01,0x07,0x07,0x3f,0x07,0x4e,0x59,0x59,0x40,0x25,0x3f,0x3e,0x31,0x30,0x23,0x22,0x00,0x00,0x46,0x43,0x3e,0x4b,0x3f,0x4a,0x38,0x35,0x30,0x3d,0x31,0x3c,0x2a, +0x27,0x22,0x2f,0x23,0x2e,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06, +0x23,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x09,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x9d,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfa,0xc9,0x21,0x2a,0x2b,0x20, +0x14,0x20,0x2b,0x2a,0x21,0x14,0x21,0x2a,0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x01,0x9b,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0x96,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0xd7,0x64,0x82,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfe, +0x5c,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0x05,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x04,0xfe,0x52,0x00,0x64,0x01,0xd6,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x7b,0x4b,0xb0,0x18,0x50,0x58,0x40,0x24,0x00,0x02,0x00,0x00,0x02,0x57,0x0b,0x01,0x07,0x04,0x05,0x07,0x57,0x06,0x01,0x05,0x0a, +0x01,0x04,0x05,0x04,0x65,0x09,0x03,0x08,0x03,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x26,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x0a,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x23,0x1c, +0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37, +0x35,0x21,0x15,0xfe,0xa2,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0xfc,0xcc,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xea,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x50,0x00,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x9f, +0x02,0x67,0x00,0x26,0x04,0x1b,0x9c,0x00,0x01,0x07,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x81,0x00,0x2d,0x01,0x77,0x02,0x67,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x07,0x04,0x1c,0xff,0x74,0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x37,0xb0,0x35,0x2b, +0xff,0xff,0xfe,0xc5,0xff,0x60,0x01,0x31,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xf8,0x00,0x00,0x00,0x06,0x03,0x2c,0xb0,0x00,0xff,0xff,0xfc,0xbd,0xff,0x60,0x00,0xe1,0x02,0x30,0x00,0x27,0x03,0x2c,0xfd,0xa8,0x00,0x00,0x00,0x27,0x03,0x2c,0xff,0x60,0x00,0x00,0x00,0x07,0x03,0x2c,0xfb,0xf0,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0xc5, +0xff,0xfb,0x01,0x3b,0x02,0xda,0x00,0x27,0x03,0x2e,0xfd,0xe4,0x00,0x00,0x00,0x06,0x03,0x2e,0xc4,0x00,0xff,0xff,0xfc,0x68,0xff,0x92,0x01,0x9f,0x03,0x3e,0x00,0x27,0x03,0x2e,0xfb,0x87,0x00,0x00,0x00,0x27,0x03,0x2e,0xfd,0x5d,0x00,0x00,0x00,0x06,0x03,0x46,0x92,0x00,0x00,0x01,0xfd,0xf8,0x00,0x00,0x02,0x08,0x02,0x99,0x00,0x13, +0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x23,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21, +0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x98,0x3e,0xfe,0x52,0x01,0xcc,0x3a,0xfd,0xfa,0x02,0x24,0x40,0x46,0x40,0x01,0xa6,0xfe,0x3c,0x3a,0x01,0xfe,0xfd,0xe4,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x00,0x01,0xfb,0xa5,0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x1b,0x00,0x4f,0x40,0x4c, +0x00,0x06,0x05,0x06,0x85,0x0e,0x01,0x0d,0x00,0x0d,0x86,0x07,0x01,0x05,0x08,0x01,0x04,0x03,0x05,0x04,0x68,0x09,0x01,0x03,0x0a,0x01,0x02,0x01,0x03,0x02,0x67,0x0b,0x01,0x01,0x00,0x00,0x01,0x57,0x0b,0x01,0x01,0x01,0x00,0x5f,0x0c,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x05,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x1f,0x44,0xfd,0x42,0x02,0xda,0x34,0xfc,0xf2,0x03,0x29,0x34,0xfc,0xa3,0x03,0x79,0x5a,0x46,0x5a,0x02,0x9f,0xfd, +0x45,0x34,0x02,0xef,0xfc,0xf6,0x34,0x03,0x3e,0xfc,0xa6,0x44,0x6e,0xba,0x4c,0x8c,0x4c,0x8c,0x4c,0xf6,0xf6,0x4c,0x8c,0x4c,0x8c,0x4c,0xba,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x2d,0x02,0xda,0x00,0x27,0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x29,0xaf,0x00,0xff,0xff,0xfe,0x90,0xff,0xf6,0x01,0x4d,0x02,0xda,0x00,0x27, +0x03,0x30,0xfe,0x0e,0x00,0x00,0x00,0x06,0x03,0x2b,0xce,0x00,0xff,0xff,0xfe,0x5c,0xff,0xfb,0x01,0xb8,0x02,0xda,0x00,0x27,0x03,0x30,0xfd,0xda,0x00,0x00,0x00,0x06,0x03,0x30,0xd3,0x00,0xff,0xff,0xfb,0xfa,0xff,0xfb,0x01,0xbd,0x02,0xda,0x00,0x27,0x03,0x30,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x30,0xfd,0xa8,0x00,0x00,0x00,0x06, +0x03,0x30,0xd8,0x00,0x00,0x04,0xfe,0x52,0xff,0xfb,0x01,0xcc,0x02,0xda,0x00,0x14,0x00,0x18,0x00,0x1e,0x00,0x2c,0x00,0xa5,0xb5,0x1a,0x01,0x04,0x07,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x32,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x08,0x0b,0x03,0x04,0x0a,0x07, +0x04,0x67,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x1b,0x40,0x39,0x0b,0x01,0x04,0x07,0x08,0x07,0x04,0x08,0x80,0x00,0x05,0x0c,0x01,0x06,0x00,0x05,0x06,0x67,0x00,0x00,0x00,0x03,0x07,0x00,0x03,0x69,0x00,0x07,0x0d,0x01,0x08,0x0a,0x07,0x08,0x67,0x00,0x01, +0x01,0x02,0x5f,0x00,0x02,0x02,0x38,0x4d,0x00,0x0a,0x0a,0x09,0x61,0x0e,0x01,0x09,0x09,0x42,0x09,0x4e,0x59,0x40,0x25,0x20,0x1f,0x19,0x19,0x15,0x15,0x00,0x00,0x27,0x24,0x1f,0x2c,0x20,0x2b,0x19,0x1e,0x19,0x1e,0x1d,0x1c,0x15,0x18,0x15,0x18,0x17,0x16,0x00,0x14,0x00,0x14,0x16,0x21,0x24,0x21,0x0f,0x09,0x1a,0x2b,0x25,0x35,0x33, +0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x25,0x35,0x21,0x15,0x05,0x35,0x36,0x37,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0x9e,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x01,0x1c,0x01,0xb8,0xfd,0xa8,0x27, +0x09,0x02,0x28,0xfc,0xef,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0xaa,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x5f,0xe6,0x50,0x50,0xf0,0x24,0x13,0x19,0x50,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfb,0x9c,0x00,0x67,0x02,0x0c,0x03,0x0c,0x00,0x27,0x03,0x34,0xfb,0x78, +0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0xa0,0x01,0x06,0x03,0x34,0xd8,0x00,0x00,0x08,0xb1,0x01,0x01,0xb0,0xa0,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfd,0xe5,0x00,0x41,0x02,0x12,0x02,0x6c,0x00,0x26,0x04,0x1b,0x0f,0x00,0x00,0x07,0x03,0x34,0xfd,0xc1,0x00,0x00,0xff,0xff,0xfd,0xcc,0xff,0x92,0x02,0x0d,0x03,0x3e,0x00,0x27, +0x03,0x34,0xfd,0xa8,0xff,0xb0,0x03,0x06,0x03,0x3d,0x00,0x00,0x00,0x09,0xb1,0x00,0x01,0xb8,0xff,0xb0,0xb0,0x35,0x2b,0x00,0x00,0x03,0xfd,0xcb,0xff,0x88,0x01,0xe5,0x03,0x48,0x00,0x27,0x00,0x2d,0x00,0x31,0x00,0x4c,0x40,0x49,0x1e,0x1d,0x02,0x08,0x4a,0x27,0x00,0x02,0x01,0x49,0x0b,0x09,0x02,0x07,0x0f,0x0d,0x02,0x06,0x05,0x07, +0x06,0x68,0x0e,0x0c,0x02,0x05,0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x31,0x30,0x2f,0x2e,0x2d,0x2a,0x29,0x28,0x1a,0x19,0x18,0x17,0x16,0x15,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x10,0x09,0x1f,0x2b,0x05,0x26,0x26,0x27,0x21,0x07,0x23,0x37,0x23,0x07, +0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x01,0x21,0x35,0x34,0x35,0x21,0x05,0x33,0x37,0x23,0x01,0xe5,0x81,0x99,0x0f,0xfe,0x92,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, +0x27,0x01,0x38,0x10,0x99,0x7e,0x40,0x5f,0x33,0x33,0x5f,0x40,0xfd,0x74,0x01,0x60,0xfe,0xc2,0xfe,0xf8,0xa0,0x22,0xa0,0x78,0x1d,0xac,0x81,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x7d,0xa7,0x1c,0x57,0x0f,0x54,0x7d,0x4f,0xb4,0x4e,0x7e,0x54,0x0f,0x01,0x34,0xaf,0x03,0x02,0xb4,0xb4,0x00,0x00,0x00,0x03,0xfd,0xcb, +0xff,0x92,0x02,0x03,0x03,0x3e,0x00,0x33,0x00,0x3f,0x00,0x43,0x00,0xd3,0xb5,0x26,0x01,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x44,0x00,0x0f,0x13,0x12,0x07,0x0f,0x72,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00,0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15, +0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x1b,0x40,0x45,0x00,0x0f,0x13,0x12,0x13,0x0f,0x12,0x80,0x00,0x0d,0x00,0x0e,0x09,0x0d,0x0e,0x69,0x0c,0x0a,0x02,0x08,0x16,0x14,0x02,0x07,0x13,0x08,0x07,0x68,0x00, +0x13,0x00,0x12,0x06,0x13,0x12,0x67,0x15,0x11,0x02,0x06,0x05,0x03,0x02,0x01,0x02,0x06,0x01,0x67,0x00,0x10,0x17,0x01,0x00,0x10,0x00,0x65,0x0b,0x01,0x09,0x09,0x38,0x4d,0x04,0x01,0x02,0x02,0x39,0x02,0x4e,0x59,0x40,0x35,0x01,0x00,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3c,0x3a,0x39,0x37,0x35,0x34,0x32,0x30,0x29,0x28,0x23,0x21,0x20, +0x1e,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x33,0x01,0x33,0x18,0x09,0x16,0x2b,0x05,0x22,0x26,0x37,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x27,0x26,0x36, +0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x07,0x15,0x16,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x01,0x21,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x37,0x21,0x05,0x33,0x37,0x23,0x01,0xd6,0x58,0x65,0x04,0x09,0xfe,0x28,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0x01,0xa0,0x09,0x05,0x66,0x58,0x2d,0x2d,0x2f,0x33,0x03,0x0a,0x04,0x3c,0x3b,0x3c,0x3a,0x03,0x0a,0x02,0x32,0x2f,0x2d,0xfd,0x56,0x01,0xcb,0x06,0x2c,0x2f,0x4b,0x4b,0x2e,0x2d,0x06,0xfe,0x57,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x57,0x4f,0x9a,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x90,0x4f,0x57,0x50,0x2b,0x2b,0x9f, +0x37,0x4f,0x02,0x05,0x02,0x52,0x37,0xa9,0x2b,0x2b,0x50,0x01,0x81,0x1a,0x18,0x50,0x18,0x1a,0xb4,0xb4,0x00,0x03,0xfd,0xcb,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x5e,0x40,0x5b,0x00,0x0c,0x00,0x0d,0x08,0x0c,0x0d,0x67,0x0b,0x09,0x02,0x07,0x13,0x11,0x02,0x06,0x05,0x07,0x06,0x68,0x12,0x10,0x02,0x05, +0x04,0x02,0x02,0x00,0x01,0x05,0x00,0x67,0x00,0x0e,0x14,0x01,0x0f,0x0e,0x0f,0x63,0x0a,0x01,0x08,0x08,0x38,0x4d,0x03,0x01,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x00,0x1f,0x00,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x15,0x09,0x1f,0x2b,0x17,0x11,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x11,0x33,0x15,0x23,0x11,0x33,0x15,0x01,0x21,0x35,0x21,0x05,0x33,0x37,0x23,0xcd,0xfe,0x81,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27, +0x46,0x27,0x01,0x47,0xf5,0x9b,0x9b,0xfd,0x97,0x01,0x74,0xfe,0xae,0xfe,0xf8,0xa0,0x22,0xa0,0x6e,0x01,0x40,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x36,0x50,0xfc,0xf4,0x50,0x01,0x81,0xb4,0xb4,0xb4,0x00,0x00,0x04,0xfd,0xcb,0x00,0x00,0x01,0x7c,0x02,0xda,0x00,0x1b,0x00,0x27,0x00,0x2b,0x00,0x37,0x00,0xab, +0x4b,0xb0,0x11,0x50,0x58,0x40,0x37,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x01,0x0f,0x0e,0x69,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x57,0x13,0x10,0x09,0x03,0x01,0x16,0x01,0x12,0x0b,0x01,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40, +0x38,0x07,0x05,0x02,0x03,0x11,0x08,0x02,0x02,0x0e,0x03,0x02,0x68,0x00,0x0f,0x15,0x01,0x0e,0x13,0x0f,0x0e,0x69,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x12,0x01,0x00,0x67,0x00,0x13,0x16,0x01,0x12,0x0b,0x13,0x12,0x69,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x40,0x2e,0x2d,0x2c,0x1d,0x1c, +0x00,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x2b,0x2a,0x29,0x28,0x23,0x21,0x1c,0x27,0x1d,0x27,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33, +0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0xeb,0x24,0x2c, +0x2c,0x24,0x24,0x2c,0x2c,0xfd,0x23,0xa0,0x22,0xa0,0x02,0x97,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0xae,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x9b,0xb4,0xfe,0xbb,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x00,0x00,0x04,0xfd,0xcb,0xff,0xfb,0x01,0x8b, +0x02,0xda,0x00,0x03,0x00,0x1f,0x00,0x23,0x00,0x31,0x00,0xaf,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x30,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x14,0x04,0x01,0x13,0x03,0x01,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x00,0x13,0x13,0x0d,0x5f,0x16,0x12,0x15,0x0f,0x04,0x0d,0x0d, +0x39,0x0d,0x4e,0x1b,0x40,0x3b,0x14,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x09,0x07,0x02,0x05,0x11,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x10,0x0b,0x02,0x03,0x0e,0x0c,0x02,0x02,0x13,0x03,0x02,0x67,0x08,0x06,0x02,0x00,0x00,0x38,0x4d,0x15,0x0f,0x02,0x0d,0x0d,0x39,0x4d,0x00,0x13,0x13,0x12,0x61,0x16,0x01,0x12,0x12,0x42,0x12, +0x4e,0x59,0x40,0x36,0x25,0x24,0x04,0x04,0x00,0x00,0x2c,0x29,0x24,0x31,0x25,0x30,0x23,0x22,0x21,0x20,0x04,0x1f,0x04,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x17,0x09,0x17,0x2b,0x37,0x13,0x33,0x03,0x05, +0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x37,0x36,0x36,0x33,0x33,0x32,0x16,0x07,0x06,0x06,0x23,0xc9,0x58,0x6a,0x70,0xfc,0xe0,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x23,0x1a,0x1b,0x05,0x05,0x28,0x1a,0x1e,0x1d,0x19,0x05,0x05,0x29,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xd7,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xfe,0x34,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00, +0x00,0x03,0xfd,0xcb,0xff,0xfb,0x02,0x08,0x02,0xe4,0x00,0x34,0x00,0x38,0x00,0x46,0x01,0x0e,0x4b,0xb0,0x18,0x50,0x58,0x40,0x3c,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x00,0x0c,0x0c,0x04,0x5f,0x08, +0x06,0x02,0x04,0x04,0x38,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x40,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01,0x11,0x0f,0x0a,0x03,0x00,0x16,0x01,0x00,0x67,0x06,0x01, +0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x00,0x16,0x16,0x10,0x5f,0x18,0x15,0x17,0x12,0x04,0x10,0x10,0x39,0x10,0x4e,0x1b,0x40,0x4b,0x00,0x0a,0x00,0x16,0x00,0x0a,0x16,0x80,0x07,0x05,0x02,0x03,0x14,0x0d,0x02,0x02,0x0b,0x03,0x02,0x68,0x00,0x0b,0x00,0x09,0x01,0x0b,0x09,0x69,0x13,0x0e,0x02,0x01, +0x11,0x0f,0x02,0x00,0x0a,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x00,0x0c,0x0c,0x08,0x61,0x00,0x08,0x08,0x3e,0x4d,0x17,0x12,0x02,0x10,0x10,0x39,0x4d,0x00,0x16,0x16,0x15,0x61,0x18,0x01,0x15,0x15,0x42,0x15,0x4e,0x59,0x59,0x40,0x30,0x3a,0x39,0x00,0x00,0x41,0x3e,0x39,0x46,0x3a,0x45,0x38,0x37,0x36,0x35,0x00,0x34,0x00, +0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x27,0x25,0x21,0x1f,0x1e,0x1d,0x1c,0x1b,0x24,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x21,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xa2,0x3d,0x6c,0x47,0x49,0x6c,0x3b,0x67,0x56,0x5a, +0x32,0x41,0x48,0x50,0x44,0x45,0x51,0xfe,0xf9,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0x02,0x7e,0x1d,0x24,0x24,0x1d,0x14,0x1d,0x24,0x24,0x1d,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x01,0x41,0x63,0x37,0x36,0x63,0x43,0x5b,0x76,0x06,0x64,0xaf,0x4a,0x42,0x41,0x4b,0x4b,0x41,0x41,0xb4,0x41,0xd2,0xd2,0xd2, +0x01,0x13,0xb4,0xfe,0x34,0x1f,0x1c,0x1b,0x22,0x22,0x1b,0x1b,0x20,0x00,0x00,0x00,0x00,0x04,0xfd,0xe9,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x6b,0x40,0x68,0x0b,0x09,0x07,0x05,0x04,0x03,0x1b,0x19,0x17,0x0c,0x04,0x02,0x01,0x03,0x02,0x68,0x1a,0x18,0x16,0x0d,0x04,0x01,0x14,0x12,0x10,0x0e, +0x04,0x00,0x0f,0x01,0x00,0x67,0x0a,0x08,0x06,0x03,0x04,0x04,0x38,0x4d,0x1c,0x15,0x13,0x11,0x04,0x0f,0x0f,0x39,0x0f,0x4e,0x00,0x00,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x00,0x2b,0x00,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15, +0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1d,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17, +0x33,0x37,0x23,0x05,0x33,0x37,0x23,0xfe,0x19,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xf0,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0xf0,0x22,0xf0,0x01,0x14,0xa0,0x22,0xa0,0xd2,0x41,0xb4, +0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x00,0x06,0xfb,0x91,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x8f,0x40,0x8c,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x06,0x03,0x27,0x25, +0x23,0x21,0x1f,0x10,0x06,0x02,0x01,0x03,0x02,0x68,0x26,0x24,0x22,0x20,0x1e,0x11,0x06,0x01,0x1c,0x1a,0x18,0x16,0x14,0x12,0x06,0x00,0x13,0x01,0x00,0x67,0x0e,0x0c,0x0a,0x08,0x06,0x05,0x04,0x04,0x38,0x4d,0x28,0x1d,0x1b,0x19,0x17,0x15,0x06,0x13,0x13,0x39,0x13,0x4e,0x00,0x00,0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x46, +0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x00,0x3b,0x00,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x29, +0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13, +0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xfb,0xc1,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x0e,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27, +0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xf2,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x0e,0x22,0xfe,0xf2,0x01,0x32,0xa0,0x22,0xa0,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2, +0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x00,0x08,0xf9,0x39,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0xb3,0x40,0xb0,0x13,0x11,0x0f,0x0d,0x0b,0x09,0x07,0x05,0x08,0x03,0x33,0x31,0x2f,0x2d, +0x2b,0x29,0x27,0x14,0x08,0x02,0x01,0x03,0x02,0x68,0x32,0x30,0x2e,0x2c,0x2a,0x28,0x26,0x15,0x08,0x01,0x24,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x08,0x00,0x17,0x01,0x00,0x67,0x12,0x10,0x0e,0x0c,0x0a,0x08,0x06,0x07,0x04,0x04,0x38,0x4d,0x34,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x08,0x17,0x17,0x39,0x17,0x4e,0x00,0x00,0x67,0x66, +0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x51,0x50,0x4f,0x4e,0x4d,0x4c,0x00,0x4b,0x00,0x4b,0x4a,0x49,0x48,0x47,0x46,0x45,0x44,0x43,0x42,0x41,0x40,0x3f,0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29, +0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x35,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33, +0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x23,0x37,0x21,0x07,0x23,0x37,0x23,0x07,0x13,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05, +0x33,0x37,0x23,0x17,0x21,0x37,0x21,0x05,0x33,0x37,0x23,0xf9,0x69,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x01,0x18,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46, +0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0xfe,0xe8,0x27,0x46,0x27,0xa0,0x27,0x32,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xc4,0x01,0x18,0x22,0xfe,0xe8,0x01,0x3c,0xa0,0x22,0xa0,0xd2, +0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x01,0x13,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x00,0x04,0xfd,0xcb,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1b, +0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xdf,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2c,0x0e,0x07,0x05,0x03,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x12,0x10,0x09,0x03,0x01,0x16,0x13,0x0c,0x0a,0x04,0x00,0x0b,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x4b,0xb0,0x2e,0x50, +0x58,0x40,0x36,0x00,0x0e,0x03,0x02,0x0e,0x57,0x07,0x05,0x02,0x03,0x11,0x15,0x0f,0x08,0x04,0x02,0x01,0x03,0x02,0x68,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x57,0x12,0x10,0x09,0x03,0x01,0x16,0x01,0x13,0x0b,0x01,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x1b,0x40,0x38,0x07,0x05,0x02,0x03, +0x11,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x00,0x0e,0x15,0x01,0x0f,0x12,0x0e,0x0f,0x67,0x10,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x13,0x01,0x00,0x67,0x00,0x12,0x16,0x01,0x13,0x0b,0x12,0x13,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x14,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x59,0x59,0x40,0x2e,0x24,0x24,0x1c,0x1c,0x00,0x00,0x24,0x27, +0x24,0x27,0x26,0x25,0x23,0x22,0x21,0x20,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x17,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23, +0x37,0x23,0x07,0x01,0x35,0x21,0x15,0x05,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfd,0xfb,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x02,0x0f,0x01,0xb8,0xfc,0x6b,0xa0,0x22,0xa0,0x01,0xbb,0x01,0xb8,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41, +0xd2,0xd2,0xd2,0x01,0xc2,0x50,0x50,0xaf,0xb4,0xff,0x50,0x50,0x00,0x02,0xfd,0xcb,0xff,0x9c,0x02,0x1c,0x02,0xda,0x00,0x1d,0x00,0x21,0x00,0x4f,0x40,0x4c,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63,0x08,0x01, +0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x21,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33, +0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x01,0x33,0x37,0x23,0xfe,0xce,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x02,0xfa,0xfc,0x57,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x4b,0x01,0x77, +0xb4,0x00,0x00,0x00,0x00,0x02,0xfb,0x73,0xff,0x9c,0x01,0xdb,0x03,0x43,0x00,0x2f,0x00,0x33,0x00,0x59,0x40,0x56,0x2e,0x01,0x0d,0x01,0x4b,0x25,0x24,0x02,0x06,0x4a,0x09,0x07,0x02,0x05,0x10,0x0a,0x02,0x04,0x03,0x05,0x04,0x68,0x0f,0x0b,0x02,0x03,0x0c,0x02,0x02,0x00,0x01,0x03,0x00,0x67,0x00,0x0d,0x11,0x01,0x0e,0x0d,0x0e,0x63, +0x08,0x01,0x06,0x06,0x38,0x4d,0x00,0x01,0x01,0x39,0x01,0x4e,0x00,0x00,0x33,0x32,0x31,0x30,0x00,0x2f,0x00,0x2f,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x09,0x1f,0x2b,0x05,0x13,0x23,0x07,0x23,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33, +0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x21,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x37,0x15,0x0e,0x02,0x15,0x15,0x14,0x16,0x16,0x17,0x15,0x01,0x33,0x37,0x23,0xfc,0x76,0x3a,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x2c,0x04,0x73,0x42,0x4c,0x49,0x87,0x5c, +0x40,0x5e,0x34,0x32,0x5d,0x3f,0xfa,0x44,0xa0,0x22,0xa0,0x64,0x01,0x36,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xeb,0x2a,0x9f,0x63,0xaa,0x62,0x9f,0x6e,0x17,0x55,0x0f,0x55,0x7e,0x4f,0xaa,0x4c,0x7c,0x54,0x10,0x4b,0x01,0x77,0xb4,0x00,0x00,0x00,0xff,0xff,0xfd,0xf3,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27, +0x03,0x3d,0xfd,0xa8,0x00,0x00,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x08,0xb1,0x01,0x01,0xb0,0x82,0xb0,0x35,0x2b,0xff,0xff,0xfb,0x9b,0xff,0x92,0x02,0x34,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0x50,0x00,0x00,0x00,0x27,0x03,0x34,0xfd,0xa8,0x00,0x82,0x03,0x07,0x03,0x34,0x00,0x00,0x00,0x82,0x00,0x10,0xb1,0x01,0x01,0xb0, +0x82,0xb0,0x35,0x2b,0xb1,0x02,0x01,0xb0,0x82,0xb0,0x35,0x2b,0x00,0x01,0xfe,0x11,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00, +0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0xfe,0x11,0x01,0x63,0x5f,0x80,0x02,0x97,0xfd,0x4a,0x3c,0x02,0xf2,0xfc,0xf0,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfb,0xa0,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x0b, +0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15, +0x21,0x03,0xfb,0xa0,0x01,0x63,0x5f,0x80,0x05,0x08,0xfa,0xd9,0x3c,0x05,0x63,0xfa,0x7f,0x6a,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x00,0x01,0xfe,0x16,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0f,0x0b,0x07,0x06,0x05,0x04,0x03,0x07,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x11,0x03,0x09,0x17,0x2b,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfe,0x16,0x01,0x63,0x5f,0x41,0x02,0x3f,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x21,0x12,0xfe,0x1d,0xfe,0xfa,0x6e,0x03,0xac,0xad,0xfe,0xeb,0x64,0xd7,0x5a,0x97,0x09,0x0b, +0x02,0x02,0x0b,0x09,0xe9,0xfd,0x4b,0x00,0xff,0xff,0xfe,0x3e,0xff,0x92,0x01,0xc2,0x03,0x3e,0x00,0x26,0x03,0x3d,0xb5,0x00,0x00,0x07,0x03,0x3d,0xfd,0xf3,0x00,0x00,0x00,0x02,0xfb,0xfa,0xff,0x92,0x01,0xd6,0x03,0x3e,0x00,0x0b,0x00,0x0f,0x00,0x3f,0x40,0x3c,0x06,0x01,0x00,0x01,0x00,0x85,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x86, +0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x01,0x33,0x03,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x03,0x21,0x01,0x33,0x01,0xfd, +0xbd,0x01,0x63,0x5f,0x80,0x02,0xd7,0xfd,0x0a,0x3c,0x03,0x32,0xfc,0xb0,0x6a,0xfd,0xde,0x01,0x63,0x5f,0xfe,0x9d,0x6e,0x03,0xac,0xfe,0xac,0x50,0xa0,0x50,0xfe,0xe8,0x03,0xac,0xfc,0x54,0xff,0xff,0xfc,0x13,0xff,0x92,0x01,0x95,0x03,0x3e,0x00,0x27,0x03,0x3d,0xfb,0xc8,0x00,0x00,0x00,0x27,0x03,0x3d,0xfd,0xa8,0x00,0x00,0x00,0x06, +0x03,0x3d,0x88,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x06,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x11,0x11,0x04,0x09,0x18,0x2b,0x05,0x01,0x33,0x01,0x23,0x01,0x27,0x07,0x01,0xfe,0x66,0x01,0x63,0x6e,0x01, +0x63,0x5f,0xfe,0xdc,0x17,0x16,0xfe,0xdc,0x6e,0x03,0xac,0xfc,0x54,0x03,0x0a,0x44,0x44,0xfc,0xf6,0x00,0x00,0x01,0xfe,0x66,0xff,0x92,0x01,0x9a,0x03,0x3e,0x00,0x08,0x00,0x1f,0x40,0x1c,0x04,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x08,0x00,0x08,0x14,0x11,0x04,0x09,0x18, +0x2b,0x07,0x01,0x33,0x01,0x17,0x37,0x01,0x33,0x01,0x37,0xfe,0x9d,0x5f,0x01,0x24,0x17,0x16,0x01,0x24,0x60,0xfe,0x9d,0x6e,0x03,0xac,0xfc,0xf6,0x44,0x44,0x03,0x0a,0xfc,0x54,0x00,0x00,0x00,0x01,0xfc,0x22,0xff,0x9c,0x01,0x86,0x02,0xee,0x00,0x07,0x00,0x41,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x02,0x01,0x00,0x04,0x01,0x03,0x00, +0x03,0x63,0x00,0x01,0x01,0x38,0x01,0x4e,0x1b,0x40,0x18,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfc,0x22,0x02,0x85,0x5a, +0x02,0x85,0x64,0x4b,0x03,0x07,0xfc,0xf9,0x4b,0x00,0x00,0x00,0x00,0x01,0xfd,0xe4,0xff,0x9c,0x02,0x1c,0xff,0xe7,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x35,0x21,0x15,0xfd,0xe4,0x04,0x38, +0x64,0x4b,0x4b,0x00,0x00,0x04,0xfe,0x5c,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x19,0x00,0x4e,0x40,0x4b,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x07,0x04,0x05,0x67,0x08,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x07,0x07,0x06,0x61,0x0b,0x01,0x06,0x06, +0x42,0x06,0x4e,0x0d,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x11,0x0c,0x19,0x0d,0x18,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0xfe,0x7e,0x0c,0x6a,0x0c,0xcc,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfd,0x08,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0xf0,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x06,0xfc,0x0e,0xff,0xfb,0x01,0x90,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, +0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06,0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00, +0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x22,0x26,0x35, +0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x30,0x0c,0x6a,0x0c,0xcc,0x01,0xe5,0x78,0x01,0xe5,0xfb,0xbe,0x01,0xe5,0x78,0x01,0xe5,0xfa,0xba,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00, +0x00,0x01,0x00,0x7d,0xff,0x8d,0x01,0xe5,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x02,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x13,0x03,0x06,0x17,0x2b,0x05,0x03,0x35,0x13,0x33,0x01,0x01,0x01,0x79,0xfc,0xfc,0x66,0xfe,0xe8,0x01,0x1e,0x73,0x01,0x95, +0x7a,0x01,0x93,0xfe,0x2d,0xfe,0x31,0x00,0x00,0x02,0x00,0x64,0xff,0x92,0x02,0x2a,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x2d,0x40,0x2a,0x0c,0x09,0x08,0x05,0x02,0x01,0x06,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x07,0x07,0x00,0x00,0x07,0x0d,0x07,0x0d,0x0b,0x0a,0x00,0x06,0x00,0x06, +0x13,0x06,0x06,0x17,0x2b,0x05,0x01,0x35,0x01,0x33,0x01,0x01,0x33,0x01,0x35,0x01,0x33,0x01,0x01,0x01,0x75,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x47,0xfe,0xef,0x01,0x11,0x37,0xfe,0xe2,0x01,0x1e,0x6e,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x01,0xbc,0x33,0x01,0xbd,0xfe,0x2a,0xfe,0x2a,0x00,0x00,0x02,0x00,0xa0, +0xff,0x92,0x01,0xef,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x01,0x06,0x05,0x02,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b,0x12,0x11,0x11,0x11,0x10,0x07,0x06,0x1b,0x2b,0x05,0x21,0x11,0x21,0x15,0x23,0x11, +0x33,0x01,0x11,0x33,0x11,0x01,0xef,0xfe,0xb1,0x01,0x4f,0xaf,0xaf,0xfe,0xe3,0x3c,0x6e,0x03,0xac,0x2d,0xfc,0xae,0x03,0x52,0xfc,0xae,0x03,0x52,0x00,0x01,0x00,0x73,0xff,0x8d,0x01,0xdb,0x03,0x2f,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x04,0x01,0x03,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x06,0x00,0x06,0x12,0x03,0x06,0x17,0x2b,0x17,0x01,0x01,0x33,0x13,0x15,0x03,0x73,0x01,0x1e,0xfe,0xe8,0x66,0xfc,0xfc,0x73,0x01,0xcf,0x01,0xd3,0xfe,0x6d,0x7a,0xfe,0x6b,0x00,0x00,0x00,0x02,0x00,0x2e,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x06,0x00,0x0d,0x00,0x20,0x40,0x1d,0x0d,0x0c,0x09,0x06,0x05,0x02,0x06,0x00,0x01,0x01, +0x4c,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x12,0x13,0x12,0x10,0x04,0x06,0x1a,0x2b,0x17,0x23,0x01,0x01,0x33,0x01,0x15,0x01,0x23,0x01,0x01,0x33,0x01,0x15,0xe3,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0xfe,0x71,0x37,0x01,0x1e,0xfe,0xe2,0x37,0x01,0x11,0x6e,0x01,0xd6,0x01,0xd6,0xfe,0x43,0x33,0xfe,0x44,0x01, +0xd6,0x01,0xd6,0xfe,0x43,0x33,0x00,0x00,0x00,0x02,0x00,0x69,0xff,0x92,0x01,0xb8,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x04,0x01,0x01,0x00,0x02,0x01,0x67,0x05,0x01,0x00,0x03,0x03,0x00,0x57,0x05,0x01,0x00,0x00,0x03,0x5f,0x06,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x0b,0x0a,0x09,0x08,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x07,0x06,0x19,0x2b,0x17,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x03,0x23,0x11,0x33,0x69,0xaf,0xaf,0x01,0x4f,0x32,0x3c,0x3c,0x6e,0x2d,0x03,0x52,0x2d,0xfc,0x54,0x03,0x7f,0xfc,0xae,0x00,0x00,0xff,0xff,0x00,0xda,0x01,0x09,0x01,0x7e,0x01,0xab,0x03,0x07,0x03,0x29,0x00,0x00,0x01,0x13,0x00,0x09,0xb1,0x00,0x01,0xb8, +0x01,0x13,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0xcd,0xff,0x60,0x01,0x81,0x02,0x30,0x02,0x06,0x03,0x2c,0x00,0x00,0x00,0x03,0x00,0x5d,0xff,0x74,0x02,0x12,0x03,0x67,0x00,0x1c,0x00,0x25,0x00,0x2e,0x00,0x55,0x40,0x52,0x0b,0x01,0x09,0x01,0x11,0x01,0x0b,0x08,0x17,0x01,0x00,0x0a,0x03,0x4c,0x04,0x01,0x02,0x01,0x02,0x85, +0x0c,0x07,0x02,0x05,0x00,0x05,0x86,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x09,0x09,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x00,0x0a,0x0a,0x00,0x5f,0x06,0x01,0x00,0x00,0x39,0x00,0x4e,0x00,0x00,0x2e,0x2c,0x28,0x26,0x25,0x23,0x1f,0x1d,0x00,0x1c,0x00,0x1c,0x11,0x1e,0x11,0x11,0x11,0x11,0x11,0x0d,0x09,0x1d,0x2b,0x17, +0x35,0x23,0x11,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x16,0x16,0x15,0x14,0x06,0x07,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x23,0x15,0x03,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xb3,0x56,0x56,0x3c,0x46,0x3c,0x44,0x4c,0x3a,0x34,0x3b,0x44,0x55,0x4c,0x3c,0x46,0x3a,0x76, +0x3a,0x43,0x42,0x3a,0x77,0x7c,0x3f,0x49,0x49,0x3f,0x7c,0x8c,0x8c,0x02,0xda,0x8d,0x8d,0x8d,0x94,0x10,0x5e,0x48,0x3b,0x52,0x0e,0x10,0x60,0x47,0x50,0x68,0x0e,0x91,0x8c,0x8c,0x02,0x2f,0x3e,0x35,0x35,0x3e,0xfd,0xc8,0x43,0x3a,0x3c,0x4b,0x00,0x00,0x00,0x02,0x00,0x58,0xff,0x74,0x02,0x0b,0x02,0xb2,0x00,0x1b,0x00,0x23,0x00,0x3f, +0x40,0x3c,0x20,0x12,0x0b,0x08,0x04,0x01,0x00,0x1f,0x1a,0x13,0x01,0x04,0x03,0x02,0x02,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x80,0x00,0x02,0x03,0x00,0x02,0x03,0x7e,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1b,0x17,0x14,0x19,0x05,0x09,0x19,0x2b,0x05, +0x35,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x11,0x06,0x06,0x15,0x01,0x11,0x55,0x64,0x64,0x55,0x3c,0x55,0x66,0x03,0x5a,0x03,0x34,0x2d,0x2d,0x34,0x03,0x5a,0x03,0x66,0x55,0x9b,0x33,0x2c,0x2c,0x33,0x8c,0x84,0x0a, +0x6d,0x59,0x96,0x59,0x6d,0x0a,0x84,0x83,0x07,0x64,0x52,0x2e,0x38,0x06,0xfe,0x6a,0x06,0x38,0x2e,0x52,0x64,0x07,0x83,0x01,0x54,0x34,0x41,0x0a,0x01,0x94,0x0a,0x40,0x34,0x00,0x00,0x00,0x00,0x02,0x00,0x2b,0x00,0x71,0x02,0x2e,0x02,0x7b,0x00,0x1c,0x00,0x2a,0x00,0x6a,0x40,0x20,0x15,0x13,0x0f,0x0d,0x04,0x03,0x01,0x1b,0x16,0x0c, +0x08,0x04,0x02,0x03,0x1c,0x07,0x05,0x01,0x04,0x00,0x02,0x03,0x4c,0x14,0x0e,0x02,0x01,0x4a,0x06,0x01,0x00,0x49,0x4b,0xb0,0x21,0x50,0x58,0x40,0x13,0x04,0x01,0x02,0x00,0x00,0x02,0x00,0x65,0x00,0x03,0x03,0x01,0x61,0x00,0x01,0x01,0x41,0x03,0x4e,0x1b,0x40,0x1a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x04,0x01,0x02,0x00,0x00, +0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x02,0x00,0x51,0x59,0x40,0x0d,0x1e,0x1d,0x24,0x22,0x1d,0x2a,0x1e,0x2a,0x2c,0x22,0x05,0x09,0x18,0x2b,0x25,0x27,0x06,0x23,0x22,0x27,0x07,0x27,0x37,0x26,0x35,0x34,0x37,0x27,0x37,0x17,0x36,0x33,0x32,0x17,0x37,0x17,0x07,0x16,0x15,0x14,0x06,0x07,0x17,0x25,0x32,0x36,0x35,0x34, +0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0xef,0x57,0x2e,0x3d,0x3e,0x2f,0x55,0x3e,0x53,0x21,0x22,0x56,0x3f,0x58,0x30,0x3b,0x3f,0x30,0x54,0x3d,0x53,0x1f,0x11,0x0f,0x55,0xfe,0xff,0x38,0x4a,0x4a,0x38,0x25,0x3c,0x23,0x23,0x3c,0x71,0x57,0x1d,0x1d,0x55,0x3e,0x54,0x31,0x3f,0x40,0x31,0x56,0x3f,0x58,0x1c,0x1f,0x54,0x3d, +0x53,0x32,0x3d,0x1f,0x39,0x18,0x55,0x40,0x4c,0x39,0x39,0x4c,0x23,0x3c,0x26,0x26,0x3c,0x23,0x00,0x00,0x00,0x03,0x00,0x48,0xff,0x74,0x02,0x10,0x03,0x66,0x00,0x23,0x00,0x2a,0x00,0x32,0x00,0x3a,0x40,0x37,0x28,0x1a,0x13,0x10,0x04,0x02,0x01,0x32,0x27,0x1b,0x09,0x04,0x00,0x02,0x2b,0x22,0x08,0x01,0x04,0x03,0x00,0x03,0x4c,0x00, +0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x02,0x85,0x00,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x23,0x00,0x23,0x14,0x1c,0x14,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15, +0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x13,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x53,0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83,0x08,0x69,0x56,0x31,0x3e,0x07,0x01, +0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00,0x00,0x03,0x00,0x5a,0xff,0xb0,0x02,0x58,0x02,0xda,0x00,0x1c,0x00,0x2a,0x00,0x2e,0x00,0x9a,0xb6,0x19, +0x0a,0x02,0x08,0x09,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2e,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x00,0x00,0x08,0x59,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x07,0x0c,0x02,0x00,0x00,0x04,0x5f,0x00,0x04,0x04,0x38,0x04,0x4e,0x1b,0x40,0x2f,0x05,0x01, +0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x09,0x08,0x01,0x09,0x69,0x0d,0x01,0x08,0x0c,0x01,0x00,0x0a,0x08,0x00,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x0a,0x0b,0x63,0x00,0x07,0x07,0x04,0x5f,0x00,0x04,0x04,0x38,0x07,0x4e,0x59,0x40,0x27,0x2b,0x2b,0x1e,0x1d,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x25,0x23,0x1d,0x2a, +0x1e,0x2a,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x08,0x06,0x00,0x1c,0x01,0x1c,0x0f,0x09,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x27,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x23,0x35,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15, +0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x01,0x0c,0x52,0x60,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x74,0x74,0x5a,0x5e,0x5e,0x5a,0x01,0x07,0x4e,0x20,0x38,0x3e,0x3e,0x38,0x39,0x3d,0x3d,0x97,0x01,0xa4,0x32,0x6e,0x5e,0x29,0x5f,0x6e,0x3e,0x35,0x7d,0x3c,0x4b,0x55,0x55,0x4b,0xfe,0x02,0x69,0x36,0x3d,0x4e,0x46,0x3e,0x1e,0x3e,0x46,0x44, +0x40,0x1e,0x40,0x44,0xd0,0x50,0x50,0x00,0x00,0x01,0x00,0x13,0xff,0xf6,0x02,0x0a,0x02,0xe4,0x00,0x2b,0x00,0x60,0x40,0x5d,0x00,0x06,0x07,0x04,0x07,0x06,0x04,0x80,0x00,0x0d,0x01,0x0c,0x01,0x0d,0x0c,0x80,0x08,0x01,0x04,0x09,0x01,0x03,0x02,0x04,0x03,0x67,0x0a,0x01,0x02,0x0b,0x01,0x01,0x0d,0x02,0x01,0x67,0x00,0x07,0x07,0x05, +0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x0c,0x0c,0x00,0x61,0x0e,0x01,0x00,0x00,0x3f,0x00,0x4e,0x01,0x00,0x29,0x28,0x26,0x24,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x17,0x15,0x13,0x12,0x10,0x0e,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x2b,0x01,0x2b,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x23,0x35,0x33,0x35,0x23, +0x35,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x34,0x64,0x74,0x49,0x49,0x49,0x49,0x74,0x64,0x62,0x74,0x5a,0x41,0x3b,0x3b,0x43,0xad,0xad,0xad,0xad,0x43,0x3b,0x3b,0x41,0x5a,0x74,0x0a,0x70,0x62, +0x2d,0x41,0x64,0x41,0x37,0x62,0x70,0x71,0x61,0x3e,0x43,0x43,0x3e,0x37,0x41,0x64,0x41,0x2d,0x3e,0x43,0x43,0x3e,0x61,0x71,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x1a,0x00,0x33,0x40,0x30,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x03,0x38,0x4d,0x00,0x00,0x00,0x07, +0x5f,0x08,0x01,0x07,0x07,0x3d,0x07,0x4e,0x00,0x00,0x00,0x1a,0x00,0x19,0x11,0x12,0x21,0x23,0x11,0x13,0x21,0x09,0x09,0x1d,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x23,0x35,0x33,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x15,0x33,0x15,0x23,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0xa0,0xa0,0x51,0x49,0xa1,0xa1,0x40,0xe1,0xe1, +0x70,0x5d,0xb4,0x52,0x3d,0x34,0x01,0x2a,0x52,0xc4,0x42,0x49,0x50,0x3c,0xc3,0x52,0xfe,0xd6,0x58,0x6b,0x00,0x02,0x00,0x32,0xff,0xf6,0x02,0x26,0x02,0xe4,0x00,0x19,0x00,0x31,0x00,0x5a,0x40,0x57,0x00,0x02,0x01,0x00,0x01,0x02,0x00,0x80,0x00,0x09,0x07,0x08,0x07,0x09,0x08,0x80,0x04,0x01,0x00,0x0c,0x01,0x05,0x06,0x00,0x05,0x67, +0x00,0x06,0x0d,0x0b,0x02,0x07,0x09,0x06,0x07,0x67,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x03,0x3e,0x4d,0x00,0x08,0x08,0x0a,0x61,0x00,0x0a,0x0a,0x3f,0x0a,0x4e,0x1a,0x1a,0x00,0x00,0x1a,0x31,0x1a,0x31,0x2d,0x2b,0x29,0x28,0x26,0x24,0x1e,0x1d,0x1c,0x1b,0x00,0x19,0x00,0x19,0x16,0x22,0x12,0x26,0x11,0x0e,0x09,0x1b,0x2b,0x13,0x35, +0x21,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x05,0x35,0x21,0x15,0x21,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x37,0x32,0x01,0x17,0x25,0x15,0x1c,0x38,0x31,0x38,0x41,0x59,0x02,0x6e,0x61,0x59,0x69, +0x25,0x1e,0x09,0x7b,0xfe,0x0c,0x01,0xf4,0xfe,0xd2,0x10,0x16,0x1b,0x3b,0x31,0x38,0x44,0x59,0x01,0x72,0x61,0x59,0x6c,0x33,0x01,0x8e,0x46,0x20,0x12,0x2b,0x18,0x26,0x27,0x35,0x31,0x55,0x5f,0x4e,0x48,0x22,0x35,0x1b,0x08,0x46,0x92,0x46,0x46,0x0c,0x10,0x2d,0x18,0x25,0x32,0x3f,0x31,0x55,0x69,0x58,0x48,0x3b,0x2b,0x00,0x00,0x00, +0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x18,0x00,0x21,0x00,0x3d,0x40,0x3a,0x09,0x01,0x03,0x05,0x01,0x02,0x01,0x03,0x02,0x67,0x06,0x01,0x01,0x07,0x01,0x00,0x08,0x01,0x00,0x67,0x00,0x0a,0x0a,0x04,0x5f,0x00,0x04,0x04,0x38,0x4d,0x0b,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x21,0x1f,0x1b,0x19,0x00,0x18,0x00, +0x18,0x11,0x11,0x26,0x21,0x11,0x11,0x11,0x11,0x0c,0x09,0x1e,0x2b,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x15,0x33,0x15,0x23,0x15,0x11,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x6e,0x50,0x50,0x50,0x50,0xdf,0x42,0x61,0x36,0x36,0x61,0x42,0x85,0xe6,0xe6,0x85,0x39, +0x43,0x43,0x39,0x85,0x9b,0x50,0x55,0x50,0x01,0x4a,0x33,0x5c,0x3e,0x3d,0x5d,0x33,0x55,0x50,0x9b,0x01,0x90,0x44,0x39,0x39,0x44,0x00,0x00,0x00,0x00,0x01,0x00,0x4b,0x00,0x00,0x02,0x17,0x02,0xe4,0x00,0x2a,0x00,0x42,0x40,0x3f,0x01,0x01,0x07,0x00,0x01,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x05,0x01,0x01,0x06,0x01,0x00, +0x07,0x01,0x00,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x08,0x5f,0x09,0x01,0x08,0x08,0x39,0x08,0x4e,0x00,0x00,0x00,0x2a,0x00,0x2a,0x16,0x11,0x16,0x22,0x12,0x26,0x11,0x17,0x0a,0x09,0x1e,0x2b,0x33,0x35,0x3e,0x02,0x35,0x34,0x27,0x23,0x35,0x33,0x2e,0x02,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x23, +0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x16,0x17,0x33,0x15,0x23,0x16,0x15,0x14,0x06,0x06,0x07,0x21,0x15,0x4b,0x18,0x32,0x23,0x05,0x68,0x4b,0x0e,0x1e,0x14,0x74,0x62,0x63,0x73,0x01,0x5f,0x42,0x37,0x3a,0x40,0x18,0x22,0x0f,0xb9,0xa3,0x03,0x23,0x33,0x18,0x01,0x72,0x64,0x13,0x35,0x39,0x19,0x1b,0x18,0x50,0x1a,0x31,0x39,0x26, +0x55,0x64,0x65,0x59,0x32,0x3c,0x39,0x35,0x23,0x33,0x30,0x1f,0x50,0x14,0x16,0x2b,0x49,0x35,0x0e,0x50,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0xda,0x00,0x17,0x00,0x36,0x40,0x33,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x10,0x03,0x00,0x01,0x4c,0x02,0x01,0x00,0x00,0x01,0x5f,0x00, +0x01,0x01,0x38,0x4d,0x04,0x01,0x03,0x03,0x39,0x03,0x4e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x05,0x09,0x19,0x2b,0x21,0x35,0x07,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x01,0x00,0xb0,0xb0,0xb0,0xb0,0xd3,0x01,0xfe,0xd3,0xb0,0xb0,0xb0,0xb0,0xb7,0x30, +0x4b,0x30,0x64,0x30,0x4b,0x30,0xda,0x4f,0x4f,0xc2,0x30,0x4b,0x30,0x64,0x30,0x4b,0x30,0xcf,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x00,0x02,0x35,0x02,0xda,0x00,0x1c,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x02,0x03,0x01,0x4c,0x05,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x68,0x07,0x01,0x00,0x0b,0x0a,0x02,0x08,0x09,0x00,0x08,0x67,0x04, +0x01,0x03,0x03,0x38,0x4d,0x00,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x1c,0x00,0x1c,0x1b,0x1a,0x11,0x11,0x11,0x11,0x18,0x11,0x11,0x11,0x11,0x0c,0x09,0x1f,0x2b,0x37,0x35,0x33,0x35,0x23,0x35,0x33,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x3c,0xc3,0xc3, +0xa0,0xb9,0x60,0x8e,0x0c,0x0e,0x02,0x02,0x0f,0x0c,0x8e,0x5d,0xb9,0xa0,0xc3,0xc3,0xc3,0x5a,0x78,0x4b,0x4b,0x4b,0x01,0x81,0xfe,0xd4,0x19,0x23,0x08,0x08,0x23,0x19,0x01,0x2c,0xfe,0x7f,0x4b,0x4b,0x4b,0x78,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x58,0xff,0x4c,0x02,0x0b,0x02,0xda,0x00,0x21,0x00,0x42,0x40,0x3f,0x0b,0x08,0x02,0x02, +0x00,0x20,0x01,0x02,0x05,0x03,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x03,0x02,0x04,0x03,0x7e,0x00,0x02,0x02,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x03,0x03,0x05,0x5f,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x21,0x00,0x21,0x12,0x25,0x22,0x14,0x19,0x07,0x09,0x1b,0x2b,0x05,0x35,0x26,0x26, +0x35,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x07,0x15,0x01,0x02,0x4e,0x5c,0x5c,0x4e,0x5a,0x4e,0x5e,0x03,0x5a,0x03,0x42,0x38,0x3b,0x47,0x47,0x3b,0x38,0x42,0x03,0x5a,0x03,0x5e,0x4e,0xb4,0xae,0x0d,0x6c,0x55,0x96,0x55,0x6c,0x0d, +0xae,0xad,0x0a,0x63,0x4e,0x35,0x39,0x43,0x3e,0x97,0x3e,0x44,0x3a,0x34,0x4e,0x63,0x0a,0xad,0x00,0x00,0x00,0x01,0x00,0x48,0xff,0x4c,0x02,0x10,0x03,0x84,0x00,0x2d,0x00,0x3a,0x40,0x37,0x2d,0x02,0x02,0x02,0x00,0x19,0x16,0x02,0x03,0x05,0x02,0x4c,0x00,0x01,0x02,0x04,0x02,0x01,0x04,0x80,0x00,0x04,0x05,0x02,0x04,0x05,0x7e,0x00, +0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x05,0x03,0x5f,0x00,0x03,0x03,0x3d,0x03,0x4e,0x22,0x14,0x1d,0x22,0x14,0x10,0x06,0x09,0x1c,0x2b,0x01,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35, +0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x01,0x05,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x49,0x51,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x2f,0x2c,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x6f,0x4c,0x54,0x6e,0x0c,0xae,0xad, +0x0b,0x6c,0x58,0x3d,0x45,0x48,0x3a,0x2c,0x41,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0xaa,0x02,0x12,0x02,0x39,0x00,0x1b,0x00,0x1f,0x00,0x86,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x08,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00, +0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x1b,0x40,0x32,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x08,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00, +0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x59,0x40,0x16,0x1c,0x1c,0x00,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0a,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22, +0x15,0x15,0x07,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0x01,0x71,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xc7,0x50,0x50,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b, +0x00,0x17,0x00,0x23,0x00,0x3b,0x40,0x38,0x03,0x01,0x01,0x07,0x02,0x06,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16, +0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x64,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0, +0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0x46,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x02,0x00,0x9e,0xff,0xc9,0x01,0xc6,0x02,0x5d,0x00,0x21,0x00,0x2f,0x00,0x08,0xb5,0x2c,0x25,0x0d,0x00,0x02,0x32,0x2b,0x17,0x35,0x36,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x37,0x26, +0x27,0x35,0x16,0x17,0x36,0x37,0x15,0x06,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x07,0x16,0x17,0x15,0x26,0x27,0x06,0x03,0x14,0x16,0x17,0x36,0x36,0x35,0x35,0x34,0x26,0x27,0x06,0x06,0x15,0xa8,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x50,0x34,0x29,0x38,0x2f,0x2f,0x38,0x29,0x34,0x50,0x3a,0x3a,0x28,0x2b,0x37,0x37, +0x2b,0x2b,0x37,0x37,0x2b,0x37,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x0e,0x2d,0x0b,0x12,0x2d,0x7e,0x4b,0x14,0x4b,0x7e,0x2d,0x12,0x0b,0x2d,0x0e,0x1f,0x1f,0x01,0x32,0x43,0x71,0x28,0x28,0x71,0x43,0x14,0x43,0x71,0x28,0x28,0x71,0x43,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x32,0x02,0x58, +0x02,0x9b,0x00,0x05,0x00,0x08,0x00,0x0b,0x00,0x0a,0xb7,0x0b,0x09,0x07,0x06,0x01,0x00,0x03,0x32,0x2b,0x35,0x11,0x01,0x01,0x11,0x01,0x17,0x11,0x07,0x05,0x37,0x27,0x01,0x2c,0x01,0x2c,0xfe,0xd3,0xfb,0xd6,0xfe,0xe2,0xd5,0xd5,0x32,0x02,0x69,0xfe,0xef,0x01,0x11,0xfd,0x97,0x01,0x13,0xa0,0x01,0x86,0xc3,0xc5,0xc4,0xc2,0x00,0x00, +0xff,0xff,0x00,0xda,0x00,0xf0,0x01,0x7e,0x01,0x92,0x03,0x07,0x03,0x29,0x00,0x00,0x00,0xfa,0x00,0x08,0xb1,0x00,0x01,0xb0,0xfa,0xb0,0x35,0x2b,0x00,0x04,0x00,0x00,0x00,0x64,0x02,0x58,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x02,0x09,0x01,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x08,0x01,0x00, +0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x04,0x05,0x59,0x00,0x06,0x0b,0x01,0x07,0x04,0x06,0x07,0x67,0x00,0x05,0x05,0x04,0x61,0x0a,0x01,0x04,0x05,0x04,0x51,0x1c,0x1c,0x11,0x10,0x0c,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06, +0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x50,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0xfd,0xf8,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x86,0x01,0x5e,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c, +0x24,0x25,0x2b,0x0a,0x50,0x50,0xfe,0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x00,0x00,0x01,0x00,0x9b,0xff,0xf6,0x01,0xc7,0x02,0x30,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x26,0x00,0x02,0x03,0x05,0x03,0x02,0x72,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04, +0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x1b,0x40,0x28,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x1c, +0x1b,0x18,0x16,0x11,0x0f,0x0c,0x0b,0x08,0x06,0x00,0x1f,0x01,0x1f,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x23,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x31,0x44,0x52,0x52,0x44,0x44,0x52,0x5a,0x21,0x1b,0x1b,0x21,0x21,0x1b, +0x1b,0x21,0x5a,0x52,0x0a,0x52,0x44,0x01,0x0e,0x44,0x52,0x52,0x44,0x28,0x32,0x1b,0x21,0x21,0x1b,0xfe,0xde,0x1b,0x21,0x21,0x1b,0x32,0x28,0x44,0x52,0x00,0x00,0x00,0x00,0x03,0x00,0x46,0x00,0x4c,0x02,0x12,0x02,0x9e,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0xa0,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x39,0x00,0x02,0x00,0x04,0x01,0x02,0x72, +0x0a,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x1b,0x40,0x3b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x0a,0x01,0x05, +0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x0b,0x01,0x07,0x08,0x06,0x07,0x67,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0c,0x01,0x09,0x08,0x09,0x4f,0x59,0x40,0x1e,0x20,0x20,0x1c,0x1c,0x00,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x1c, +0x1f,0x1c,0x1f,0x1e,0x1d,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x0d,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25, +0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x01,0xcc,0xfe,0x34,0x01,0xcc,0x01,0xd6,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0xb2,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02, +0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x28,0x41,0x5a,0xd2,0x5a,0x41,0xb4,0x52,0x03,0x3c,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x52,0x00, +0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x1b,0x00,0x00,0x02,0x3c,0x02,0x2a,0x00,0x14, +0x00,0x13,0x40,0x10,0x14,0x10,0x0c,0x0b,0x00,0x05,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x0e,0x02,0x15,0x15,0x23,0x35,0x34,0x26,0x26,0x27,0x35,0x1e,0x02,0x17,0x3e,0x02,0x37,0x02,0x3c,0x44,0x66,0x37,0x64,0x36,0x63,0x43,0x4d,0x76,0x45,0x06,0x07,0x47,0x78,0x4d,0x01,0xd0,0x08,0x63,0xa2,0x69,0x5a,0x5a, +0x69,0xa2,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x00,0x00,0x00,0x00,0x02,0x00,0x9f,0x00,0xbe,0x01,0xb9,0x01,0xd8,0x00,0x03,0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x27,0x37,0x17,0x07,0x37,0x27,0x07,0x01,0x2c,0x8d,0x8d,0x8d,0x8d,0x54,0x54,0x54,0xbe,0x8d,0x8d,0x8d,0x54,0x54,0x54, +0x54,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0x00,0x00,0x01,0x59,0x02,0xda,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x33,0x11,0xff,0x5a,0x02,0xda,0xfd,0x26,0x00,0xff,0xff,0x00,0x05,0x00,0x00,0x02,0x53,0x02,0xda,0x02,0x06, +0x03,0x20,0x00,0x00,0x00,0x01,0x00,0x7d,0x00,0x00,0x01,0xdb,0x02,0xda,0x00,0x0b,0x00,0x2c,0x40,0x29,0x0a,0x07,0x04,0x01,0x04,0x03,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x02,0x03,0x85,0x00,0x02,0x02,0x76,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x12,0x12,0x05,0x06,0x19,0x2b,0x37,0x37, +0x11,0x33,0x15,0x37,0x33,0x07,0x11,0x23,0x35,0x07,0x7d,0x82,0x5a,0x3c,0x46,0x82,0x5a,0x3c,0x8c,0xd1,0x01,0x7d,0xec,0x60,0xd1,0xfe,0x83,0xec,0x60,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0xaa,0x01,0xcc,0x01,0xea,0x00,0x0b,0x00,0x0f,0x00,0x30,0x40,0x2d,0x00,0x01,0x04,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x03,0x03,0x02, +0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x0c,0x0c,0x01,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xc6,0x01,0x40,0x01,0x54,0x29,0x22, +0x22,0x29,0x29,0x22,0x22,0x29,0xaa,0x50,0x50,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x46,0x02,0x35,0x02,0x8a,0x00,0x15,0x00,0x29,0x00,0x48,0x40,0x45,0x00,0x01,0x00,0x02,0x05,0x01,0x02,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x09,0x01,0x04,0x03,0x07,0x04,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03, +0x00,0x5f,0x08,0x01,0x00,0x03,0x00,0x4f,0x17,0x16,0x01,0x00,0x28,0x26,0x21,0x1f,0x1e,0x1c,0x16,0x29,0x17,0x29,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x0a,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x27,0x22,0x26,0x35,0x35,0x34, +0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x18,0x4a,0x6f,0x3c,0x3c,0x6f,0x4a,0x01,0x1d,0xfe,0xe3,0x4b,0x5a,0x5a,0x4b,0x01,0x1d,0xf4,0x38,0x40,0x40,0x38,0xf4,0xea,0x17,0x1b,0x1b,0x17,0xea,0x46,0x3c,0x6c,0x48,0x64,0x49,0x6b,0x3c,0x46,0x5d,0x4d,0x64,0x4d,0x5d,0x46,0x9b,0x3d,0x36,0x28,0x36, +0x3d,0x46,0x1b,0x17,0x1e,0x17,0x1b,0x46,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19, +0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d, +0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b, +0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x1a,0x18,0x14,0x13,0x12,0x11,0x0d,0x0b,0x0a,0x08,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34, +0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x06,0x15,0x15,0x21,0x15,0x21,0x15,0x14,0x16,0x16,0x33,0x21,0x15,0x01,0x09,0x3e,0x69,0x3f,0x3f,0x69,0x3e,0x01,0x31,0xfe,0xcf,0x27,0x40,0x25,0x01,0xbd,0xfe,0x43,0x25,0x40,0x27,0x01,0x31,0x46,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50, +0x00,0x01,0x00,0xa5,0x00,0xb6,0x01,0xbd,0x01,0xe2,0x00,0x17,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x05,0x00,0x00,0x05,0x57,0x00,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x05,0x00,0x4f,0x01,0x00,0x16,0x14,0x11,0x10,0x0f,0x0e,0x0b,0x09,0x08,0x06,0x00,0x17,0x01, +0x17,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x15,0x33,0x15,0x23,0x15,0x14,0x16,0x33,0x33,0x15,0x01,0x1a,0x36,0x3f,0x3f,0x36,0xa3,0xa3,0x1f,0x24,0xe6,0xe6,0x24,0x1f,0xa3,0xb6,0x3f,0x36,0x42,0x36,0x3f,0x2d,0x24,0x1f,0x11,0x2a,0x11,0x1f,0x24,0x2d,0x00,0x00,0x03,0x00,0xe6, +0x00,0x19,0x01,0x73,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00,0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13, +0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27, +0x20,0x20,0x26,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x33,0x11,0x21,0x11,0x78,0x01,0x68,0x01,0xfe,0xfe,0x02,0x00,0x02,0x00,0x97,0x01,0xd2,0x01,0xc4,0x02,0xb2,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01, +0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x0b,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x97,0x01,0x2d,0xfe,0xd3,0x01,0x2d,0x02,0x7a,0x38,0x38,0xa8,0x38,0x38,0x00,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06, +0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0x2d,0x00,0x73,0x02,0x2b,0x02,0x21,0x00,0x0f,0x00,0x1f,0x00,0x44,0x40,0x41,0x03,0x01,0x01,0x02,0x01,0x85,0x09,0x07,0x02,0x05, +0x06,0x05,0x86,0x00,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x10,0x10,0x01,0x00,0x10,0x1f,0x10,0x1f,0x1d,0x1a,0x18,0x17,0x15,0x12,0x0c,0x0b,0x09,0x06,0x04,0x03,0x00,0x0f,0x01,0x0e,0x0a,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x33,0x14,0x16,0x33, +0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0x01,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0xf5,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x5a,0x6c,0x5c,0xfe,0xca,0x6c,0x5c,0x6e,0x5c,0x6c,0x5a,0x3b,0x33,0x6e,0x33,0x3b,0x01,0x77,0x5c,0x4e,0x29,0x31,0x31,0x29,0x4e,0x5c,0xfe,0xfc,0x4e,0x5c,0x5c, +0x4e,0x29,0x31,0x31,0x29,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x69,0x02,0x58,0x02,0x2b,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11, +0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x35,0x21,0x15,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x08,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c, +0xfd,0xd4,0x01,0x5e,0xaa,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0x01,0x95,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x73,0x50,0x50,0xb9,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x01,0x00,0x50,0x00,0x00,0x01,0xf4,0x02,0xda,0x00,0x0b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01, +0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x21,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x50,0x01,0x4a,0xfe,0xd9,0x01,0x27,0xfe,0xb6,0x01,0xa4,0x52,0x01,0x02,0x52,0xe2, +0x52,0xfd,0x26,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x03,0x00,0x0c,0x00,0x2a,0x40,0x27,0x08,0x01,0x01,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x04,0x04,0x04,0x0c,0x04,0x0c,0x11,0x10,0x04,0x06,0x18,0x2b,0x13,0x21, +0x03,0x23,0x03,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x32,0x01,0xf4,0xbd,0x7b,0x4c,0x69,0x0d,0x11,0x04,0x04,0x13,0x0d,0x65,0x02,0xda,0xfd,0x26,0x02,0x8a,0xfe,0x5f,0x34,0x58,0x17,0x17,0x59,0x34,0x01,0xa0,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0xff,0xfb,0x02,0x08,0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x7d,0x40,0x0a,0x0c,0x0b, +0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x4b,0xb0,0x11,0x50,0x58,0x40,0x27,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x06,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00,0x02,0x04, +0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x13,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07,0x06,0x16,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26, +0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x4d,0x47,0x3b,0x23,0x30,0x26,0x23,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x31,0x25,0x24,0x15, +0x16,0x19,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x14,0x3b,0x47,0x18,0x20,0x18,0x19,0x16,0x1c,0x00,0x00,0x01,0x00,0x23,0x00,0xb5,0x02,0x34,0x01,0xdf,0x00,0x25,0x00,0x2b,0x40,0x28,0x04,0x01,0x01,0x06,0x01,0x03,0x02,0x01,0x03,0x69,0x07,0x01, +0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x14,0x24,0x24,0x11,0x14,0x24,0x24,0x10,0x08,0x06,0x1e,0x2b,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x17,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x35,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x27,0x26,0x23,0x22,0x06,0x15, +0x14,0x16,0x33,0xb1,0x43,0x4b,0x4a,0x43,0x35,0x4d,0x13,0x16,0x16,0x36,0x20,0x22,0x23,0x20,0x44,0x4a,0x49,0x44,0x37,0x50,0x12,0x17,0x14,0x33,0x1f,0x23,0x23,0x20,0xb5,0x4e,0x46,0x47,0x4f,0x39,0x34,0x3d,0x3d,0x2b,0x28,0x26,0x2a,0x44,0x4d,0x47,0x47,0x4f,0x3a,0x34,0x42,0x38,0x2c,0x28,0x26,0x2a,0x00,0x00,0x00,0x01,0xff,0xb0, +0x00,0x71,0x02,0xa8,0x02,0x24,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x60,0x00,0x00,0x02,0x00,0x50,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x25,0x37,0x21,0x37,0x33,0x07,0x21,0x07,0x01,0x7f,0xbd,0xfd, +0x74,0xe9,0x40,0xbd,0x02,0x8c,0xe9,0x71,0xc3,0xf0,0xc3,0xf0,0x00,0x02,0x00,0x0a,0x00,0xeb,0x02,0x44,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x34,0x40,0x31,0x00,0x02,0x00,0x05,0x03,0x02,0x05,0x69,0x00,0x03,0x00,0x00,0x04,0x03,0x00,0x67,0x06,0x01,0x04,0x01,0x01,0x04,0x59,0x06,0x01,0x04,0x04,0x01,0x61,0x00,0x01,0x04,0x01,0x51, +0x10,0x0f,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x12,0x24,0x22,0x10,0x07,0x06,0x1a,0x2b,0x01,0x21,0x06,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x21,0x05,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x02,0x44,0xfe,0x82,0x07,0x33,0x23,0x28,0x37,0x37,0x28,0x23,0x33,0x07,0x01,0x7e,0xfe,0x25,0x18,0x1f,0x1f, +0x18,0x18,0x1f,0x1f,0x01,0x35,0x21,0x29,0x37,0x28,0x29,0x36,0x29,0x21,0x4c,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xe5,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00, +0x09,0x07,0x05,0x04,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x33,0x11,0x14,0x33,0x33,0x15,0x01,0xb8,0x58,0x61,0x5a,0x5f,0x2d,0x6e,0x57,0x4f,0x03,0xc4,0xfc,0x3c,0x56,0x50,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x16,0x00,0x30,0x40,0x2d,0x12,0x01,0x00,0x01,0x01,0x4c,0x00,0x02, +0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x14,0x21,0x24,0x05,0x06,0x19,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x16,0x16,0x15,0x11,0xff,0x0e,0x2b, +0x2b,0x6e,0x6e,0x2c,0x2a,0x0e,0x5a,0x33,0x32,0x31,0x34,0xfe,0xd4,0x02,0x08,0x24,0x2c,0x14,0x50,0x14,0x2d,0x23,0x02,0x08,0xfd,0xf8,0x39,0x4a,0x09,0x09,0x4a,0x39,0xfd,0xf8,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xe5,0x03,0x3e,0x00,0x0a,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59, +0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0a,0x00,0x0a,0x21,0x23,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0xff,0x61,0x58,0x2d,0x2d,0x5f,0xfe,0xd4,0x03,0xc4,0x4f,0x57,0x50,0x56,0xfc,0x3c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08, +0x00,0x0b,0x00,0x08,0xb5,0x0b,0x09,0x04,0x03,0x02,0x32,0x2b,0x25,0x07,0x25,0x01,0x11,0x01,0x25,0x17,0x05,0x05,0x37,0x27,0x02,0x58,0x22,0xfe,0xf5,0xfe,0xd5,0x01,0x2c,0x01,0x0b,0x21,0xfe,0xf8,0xfe,0xe2,0xd5,0xd5,0x75,0x26,0xf6,0xfe,0xed,0x02,0x69,0xfe,0xef,0xf2,0x24,0xf0,0xc5,0xc4,0xc2,0x00,0x00,0x00,0x00,0x01,0x00,0xff, +0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0xf4,0x03,0xfc,0x00,0x05,0x00,0x24,0x40,0x21, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x17,0x11,0x33,0x11,0x33,0x15,0xff,0x5a,0x9b,0x6e,0x04,0x6a,0xfb,0xe6,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0xf4,0x03,0x3e,0x00,0x05, +0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x15,0x23,0x11,0xff,0xf5,0x9b,0xfe,0xd4,0x04,0x6a,0x50,0xfb,0xe6,0x00,0x00,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17, +0x02,0xd0,0x00,0x0c,0x00,0x28,0x00,0x3b,0x40,0x38,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x01,0x04,0x03,0x01,0x59,0x02,0x01,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x0d,0x0d,0x0d,0x28,0x0d,0x28,0x25,0x23,0x20,0x1e,0x1b,0x1a,0x17,0x15,0x12,0x10,0x07, +0x06,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x3e,0x47,0x3b,0x23,0x39, +0x32,0x2c,0x16,0x16,0x19,0x55,0x47,0x3b,0x23,0x3a,0x31,0x2d,0x15,0x16,0x19,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x0f,0x3b,0x47,0x15,0x1c,0x15,0x19,0x16,0x17,0x00,0x03,0xff,0xf6,0x01,0x08,0x02,0x62,0x01,0x94,0x00,0x0b,0x00,0x17,0x00,0x23, +0x00,0x37,0x40,0x34,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x59,0x05,0x03,0x02,0x01,0x01,0x00,0x61,0x08,0x04,0x07,0x02,0x06,0x05,0x00,0x01,0x00,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x3d,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xd0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xcf,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0x08,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27, +0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x01,0x00,0x41,0xff,0xec,0x02,0x17,0x02,0x26,0x00,0x0f,0x00,0x2f,0x40,0x2c,0x00,0x04,0x03,0x04,0x86,0x00,0x00,0x07,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03, +0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x13,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x23,0x46,0x01,0xcc,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x02,0x26,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08, +0xb5,0x17,0x0d,0x0a,0x00,0x02,0x32,0x2b,0x25,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x05,0x35,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x35,0x05,0x15,0x01,0x0e,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0xfd,0xa8,0xd2,0x11,0x21,0x0a,0x0a,0x21,0x11,0xd2,0x01,0x4a,0x41,0x53,0x96,0x0c,0x11,0x04, +0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0xe4,0x53,0x96,0x0c,0x11,0x04,0x04,0x14,0x0b,0x8f,0x56,0xe0,0x4e,0x00,0x02,0x00,0x00,0x00,0x41,0x02,0x58,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x08,0xb5,0x10,0x0d,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x05,0x25,0x35,0x25,0x15,0x07,0x06, +0x06,0x07,0x16,0x16,0x17,0x17,0x02,0x58,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0xfe,0xf2,0xfe,0xb6,0x01,0x4a,0xd2,0x10,0x22,0x0a,0x0a,0x21,0x11,0xd2,0x41,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x53,0xe4,0x4e,0xe0,0x56,0x8f,0x0b,0x14,0x04,0x04,0x11,0x0c,0x96,0x00,0x02,0x00,0x14, +0x00,0xeb,0x02,0x4e,0x01,0xa9,0x00,0x0e,0x00,0x1a,0x00,0x3a,0x40,0x37,0x00,0x01,0x00,0x05,0x00,0x01,0x05,0x69,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x07,0x01,0x04,0x02,0x02,0x04,0x59,0x07,0x01,0x04,0x04,0x02,0x61,0x00,0x02,0x04,0x02,0x51,0x10,0x0f,0x00,0x00,0x16,0x14,0x0f,0x1a,0x10,0x1a,0x00,0x0e,0x00,0x0e,0x24, +0x22,0x11,0x08,0x06,0x19,0x2b,0x13,0x35,0x21,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x14,0x01,0x7e,0x07,0x33,0x23,0x29,0x36,0x36,0x29,0x23,0x33,0x07,0x5d,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x1f,0x01,0x35,0x2a,0x21,0x29,0x36,0x29,0x28,0x37,0x29, +0x21,0x22,0x1f,0x18,0x18,0x1f,0x1f,0x18,0x18,0x1f,0x00,0x00,0x00,0x02,0x00,0x46,0x00,0x00,0x02,0x12,0x02,0xda,0x00,0x13,0x00,0x1f,0x00,0x43,0x40,0x40,0x02,0x01,0x00,0x06,0x00,0x85,0x00,0x06,0x05,0x06,0x85,0x0a,0x01,0x09,0x04,0x01,0x04,0x09,0x01,0x80,0x07,0x01,0x05,0x08,0x01,0x04,0x09,0x05,0x04,0x67,0x00,0x01,0x03,0x03, +0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x14,0x14,0x14,0x1f,0x14,0x1f,0x11,0x11,0x11,0x11,0x14,0x33,0x13,0x33,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x17,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x46, +0x32,0x51,0x4a,0x32,0x4a,0x51,0x32,0x68,0x63,0x36,0x63,0x68,0xd2,0x78,0x78,0x28,0x78,0x78,0x02,0xda,0xfd,0xee,0x4a,0x51,0x51,0x4a,0x02,0x12,0xfd,0xee,0x61,0x67,0x67,0x61,0x73,0x79,0x26,0x79,0x79,0x26,0x79,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f, +0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b, +0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a, +0x4a,0x76,0x44,0x44,0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x07,0x00,0x20,0x40,0x1d, +0x03,0x01,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x11,0x23,0x11,0x21,0x11,0x23,0x2b,0x02,0x02,0x5a,0xfe,0xb2,0x5a,0x02,0xda,0xfd,0x26,0x02,0x88,0xfd,0x78,0x00,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, +0x02,0xda,0x00,0x07,0x00,0x26,0x40,0x23,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x04,0x01,0x03,0x01,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x2b,0x5a,0x01,0x4e,0x5a,0x02,0xda,0xfd,0x78,0x02,0x88,0xfd, +0x26,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0c,0x01,0x03,0x02,0x01,0x4c,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x06,0x04,0x02,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04, +0x10,0x04,0x10,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x2d,0x01,0xfe,0xfe,0x11,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f, +0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00,0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36, +0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01, +0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44,0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44, +0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x46,0xff,0x9c,0x02,0x12,0x03,0x0c,0x00,0x2f,0x00,0xc6,0x40,0x0a,0x17,0x01,0x07,0x03,0x07,0x01,0x04,0x07,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x46,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x07,0x08,0x72,0x00,0x04,0x07,0x09,0x03,0x04,0x72, +0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x1b,0x40,0x48,0x00,0x06,0x05,0x06,0x85,0x00,0x08,0x05,0x03,0x05, +0x08,0x03,0x80,0x00,0x04,0x07,0x09,0x07,0x04,0x09,0x80,0x00,0x0e,0x0d,0x0e,0x86,0x00,0x05,0x00,0x03,0x07,0x05,0x03,0x69,0x00,0x07,0x00,0x09,0x02,0x07,0x09,0x6a,0x0a,0x01,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x0d,0x0d,0x00,0x57,0x0c,0x01,0x00,0x00,0x0d,0x5f,0x10,0x0f,0x02,0x0d,0x00,0x0d,0x4f,0x59,0x40, +0x1e,0x00,0x00,0x00,0x2f,0x00,0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x23,0x21,0x12,0x11,0x14,0x23,0x12,0x24,0x11,0x11,0x11,0x11,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x17,0x37,0x33,0x07,0x36,0x35,0x35,0x33,0x15,0x14, +0x06,0x23,0x22,0x27,0x07,0x33,0x15,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x46,0x87,0x2f,0xb6,0xd0,0x29,0x1a,0x22,0x21,0x18,0x2f,0x55,0x47,0x3b,0x2b,0x35,0x23,0x0f,0x47,0x3f,0x51,0x2e,0x55,0x47,0x3b,0x0e,0x0c,0x21,0xbd,0xd7,0x2f,0x01,0x06,0xfe,0xe0,0x3b,0x3f,0x3b,0x4c,0x4c,0x8c,0x4c,0x7a,0x13,0x31,0x25,0x37,0x46,0x46, +0x3b,0x47,0x21,0x2f,0x13,0xd1,0xf0,0x01,0x36,0x46,0x46,0x3a,0x48,0x02,0x63,0x4c,0x8c,0x4c,0xb0,0xb0,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x1d,0x00,0x26,0x00,0xcc,0x40,0x0a,0x21,0x01,0x06,0x05,0x05,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x32,0x00,0x03,0x02,0x02,0x03,0x70,0x0c,0x01,0x0a, +0x00,0x00,0x0a,0x71,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x00,0x0a,0x71,0x04,0x01,0x02, +0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06,0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x1b,0x40,0x30,0x00,0x03,0x02,0x03,0x85,0x0c,0x01,0x0a,0x00,0x0a,0x86,0x04,0x01,0x02,0x0b,0x01,0x05,0x06,0x02,0x05,0x68,0x00,0x06,0x00,0x07,0x01,0x06, +0x07,0x67,0x08,0x01,0x01,0x00,0x00,0x01,0x57,0x08,0x01,0x01,0x01,0x00,0x5f,0x09,0x01,0x00,0x01,0x00,0x4f,0x59,0x59,0x40,0x16,0x00,0x00,0x24,0x22,0x00,0x1d,0x00,0x1d,0x1c,0x1b,0x11,0x11,0x11,0x11,0x11,0x11,0x28,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37, +0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x03,0x14,0x16,0x17,0x13,0x23,0x22,0x06,0x15,0x66,0x28,0x5c,0x7a,0x2d,0x53,0x63,0x3a,0x67,0x45,0x7f,0x37,0x46,0x37,0x6c,0x8a,0x74,0xfe,0xfe,0xe4,0x2c,0x01,0x48,0xfe,0x9a,0x28,0x2f,0x3f,0x3a,0x74,0x61,0x43,0x49,0x6e,0x6e,0x52,0x7a,0x0d,0x73,0x56,0x2c, +0x42,0x62,0x36,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x02,0x12,0x3d,0x47,0x05,0x01,0x3b,0x48,0x42,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x35,0x03,0x3e,0x00,0x21,0x00,0x29,0x00,0x91,0x40,0x0a,0x11,0x01,0x03,0x04,0x24,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85, +0x00,0x09,0x08,0x08,0x09,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x09,0x08,0x09,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03, +0x67,0x0b,0x01,0x02,0x06,0x01,0x01,0x00,0x02,0x01,0x69,0x07,0x01,0x00,0x08,0x08,0x00,0x57,0x07,0x01,0x00,0x00,0x08,0x5f,0x0c,0x0a,0x02,0x08,0x00,0x08,0x4f,0x59,0x40,0x16,0x00,0x00,0x27,0x25,0x00,0x21,0x00,0x21,0x20,0x1f,0x11,0x11,0x28,0x12,0x21,0x22,0x11,0x11,0x11,0x0d,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x35,0x33, +0x13,0x26,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0x8e,0x2c,0xba,0xd8,0x73,0x0c,0x0e,0xfe,0xcf,0x01,0x31,0x1d,0x1a,0x39,0x46,0x40,0x34,0x3c,0x3a,0x67,0x45,0x31,0x2c,0x01,0x34,0xfe,0xae,0x28, +0x46,0x28,0x01,0x4d,0x34,0x6b,0x13,0x43,0x49,0x52,0x76,0x52,0x01,0x3a,0x02,0x52,0x05,0x9b,0xb0,0x1a,0x63,0x43,0x2c,0x41,0x63,0x36,0x76,0x52,0x6e,0x6e,0x01,0xcc,0x4f,0x23,0xfe,0xdc,0x48,0x42,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x50,0x02,0x2b,0x02,0xf0,0x00,0x03,0x00,0x10,0x00,0x3c,0x40,0x39,0x0a,0x01,0x04,0x02,0x01,0x4c, +0x03,0x01,0x02,0x01,0x04,0x01,0x02,0x04,0x80,0x06,0x01,0x04,0x04,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x05,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x10,0x04,0x10,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x03,0x33,0x13,0x16,0x16,0x17,0x36, +0x36,0x37,0x13,0x33,0x03,0x2d,0x01,0xfe,0xfe,0xc4,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0x02,0xa5,0x4b,0x4b,0xfd,0xab,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x03,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x03,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25, +0x09,0x05,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x03,0x11,0x07,0x06,0x06,0x07,0x16,0x16,0x17,0x03,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0x4c,0xea,0x13, +0x21,0x08,0x09,0x22,0x11,0x78,0x01,0xae,0xbe,0xd7,0x64,0xd7,0xfe,0x6f,0x01,0x13,0x72,0x09,0x0c,0x02,0x02,0x0e,0x08,0xfe,0x4f,0x50,0x50,0x00,0x00,0x01,0x00,0x46,0xff,0xc4,0x02,0x12,0x03,0x0c,0x00,0x3f,0x00,0xe4,0x40,0x18,0x15,0x01,0x01,0x06,0x18,0x01,0x05,0x01,0x26,0x07,0x02,0x02,0x05,0x27,0x06,0x02,0x0c,0x09,0x37,0x01, +0x08,0x0c,0x05,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x4f,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x05,0x06,0x72,0x00,0x02,0x05,0x07,0x01,0x02,0x72,0x00,0x09,0x00,0x0c,0x08,0x09,0x72,0x0e,0x01,0x0d,0x08,0x0a,0x0c,0x0d,0x72,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05, +0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x1b,0x40,0x53,0x00,0x04,0x03,0x04,0x85,0x00,0x06,0x03,0x01,0x03,0x06,0x01,0x80,0x00,0x02,0x05,0x07,0x05,0x02,0x07,0x80,0x00,0x09,0x00,0x0c,0x00,0x09,0x0c,0x80,0x0e,0x01,0x0d,0x08,0x0a,0x08, +0x0d,0x0a,0x80,0x00,0x0b,0x0a,0x0b,0x86,0x00,0x03,0x00,0x01,0x05,0x03,0x01,0x69,0x00,0x05,0x00,0x07,0x00,0x05,0x07,0x6a,0x00,0x00,0x00,0x0c,0x08,0x00,0x0c,0x69,0x00,0x08,0x0d,0x0a,0x08,0x59,0x00,0x08,0x08,0x0a,0x62,0x00,0x0a,0x08,0x0a,0x52,0x59,0x40,0x1a,0x00,0x00,0x00,0x3f,0x00,0x3f,0x3d,0x3b,0x39,0x38,0x34,0x32,0x2f, +0x2e,0x26,0x23,0x12,0x23,0x13,0x23,0x12,0x24,0x23,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x34,0x36,0x33,0x32,0x17,0x37,0x26,0x26,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x13,0x33,0x03,0x16,0x16,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x07,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06, +0x23,0x22,0x26,0x26,0x27,0x07,0x23,0x13,0x26,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x1a,0x16,0x25,0x15,0x23,0x1b,0x2f,0x55,0x48,0x3a,0x2c,0x36,0x12,0x65,0x3f,0x78,0x08,0x13,0x0b,0x2f,0x55,0x47,0x3b,0x14,0x21,0x0d,0x23,0x13,0x1d,0x1e,0x15,0x2f,0x55,0x47,0x3b,0x24,0x30,0x21,0x0e,0x56,0x3f,0x67,0x0a,0x0b,0x2f,0x6e,0x46,0x3b, +0x47,0x08,0x6a,0x1a,0x2e,0x37,0x46,0x46,0x3b,0x47,0x25,0x17,0x01,0x1d,0xfe,0xad,0x07,0x09,0x37,0x46,0x46,0x3a,0x48,0x09,0x07,0x61,0x13,0x29,0x1d,0x37,0x46,0x46,0x3a,0x48,0x18,0x25,0x12,0xf4,0x01,0x22,0x05,0x37,0x46,0x00,0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1c,0x00,0x22,0x00,0x2a,0x00,0x92,0x40,0x0a, +0x10,0x01,0x03,0x04,0x20,0x01,0x02,0x03,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x31,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x06,0x07,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00, +0x06,0x4f,0x1b,0x40,0x30,0x00,0x05,0x04,0x05,0x85,0x00,0x07,0x06,0x07,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x09,0x01,0x02,0x0a,0x01,0x01,0x00,0x02,0x01,0x67,0x0b,0x01,0x00,0x06,0x06,0x00,0x57,0x0b,0x01,0x00,0x00,0x06,0x5f,0x0c,0x08,0x02,0x06,0x00,0x06,0x4f,0x59,0x40,0x17,0x00,0x00,0x27,0x25,0x24,0x23,0x22,0x21, +0x00,0x1c,0x00,0x1c,0x11,0x28,0x12,0x21,0x21,0x11,0x11,0x11,0x0d,0x06,0x1e,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x26,0x27,0x07,0x33,0x15,0x23,0x07,0x33,0x32,0x36,0x36,0x35,0x23,0x9f,0x3c,0xdb,0xf8, +0x3c,0x03,0xfe,0xcf,0x01,0x31,0x0f,0x0f,0x2f,0x3f,0x34,0x3e,0x50,0x3f,0x68,0x3f,0x6f,0x2e,0x3f,0x2e,0x01,0x3a,0x2c,0x23,0x37,0x86,0xa3,0x3c,0x53,0x28,0x3f,0x25,0x46,0x50,0xaa,0x50,0xaa,0x50,0x02,0x84,0x92,0x19,0x6b,0x46,0x90,0x3e,0x63,0x39,0x82,0x82,0x01,0x68,0x28,0x45,0x11,0x9c,0x50,0xaa,0x27,0x40,0x25,0x00,0x00,0x00, +0x00,0x03,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x1d,0x00,0x25,0x00,0x2b,0x00,0x90,0x40,0x0a,0x29,0x01,0x06,0x05,0x01,0x01,0x07,0x06,0x02,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x30,0x00,0x01,0x00,0x00,0x01,0x70,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01, +0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x1b,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x0c,0x01,0x08,0x07,0x08,0x86,0x02,0x01,0x00,0x0a,0x01,0x03,0x04,0x00,0x03,0x68,0x09,0x01,0x04,0x0b,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06, +0x07,0x5f,0x00,0x07,0x06,0x07,0x4f,0x59,0x40,0x17,0x00,0x00,0x2b,0x2a,0x22,0x20,0x1f,0x1e,0x00,0x1d,0x00,0x1d,0x21,0x31,0x11,0x11,0x11,0x11,0x11,0x28,0x0d,0x06,0x1e,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x32,0x33,0x21,0x15,0x21,0x22,0x27,0x07, +0x03,0x33,0x37,0x23,0x22,0x06,0x06,0x15,0x15,0x14,0x16,0x17,0x37,0x23,0x78,0x34,0x3c,0x4d,0x3f,0x69,0x3e,0x6a,0x2e,0x3f,0x2e,0x88,0xa4,0x3c,0xe0,0xfd,0x3c,0x04,0x04,0x01,0x31,0xfe,0xcf,0x12,0x11,0x2f,0x3a,0x9e,0x3c,0x4e,0x27,0x40,0x25,0x29,0x22,0x36,0x81,0x3c,0x94,0x19,0x6a,0x45,0x90,0x3e,0x63,0x39,0x82,0x82,0x50,0xaa, +0x50,0xaa,0x50,0x03,0x85,0x01,0xcc,0xaa,0x27,0x40,0x25,0x8c,0x27,0x43,0x12,0x9a,0x00,0x01,0x00,0x2d,0x00,0x00,0x02,0x2b,0x02,0x99,0x00,0x29,0x00,0x57,0x40,0x54,0x11,0x01,0x03,0x02,0x26,0x01,0x08,0x09,0x02,0x4c,0x00,0x04,0x02,0x04,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x0c,0x0b,0x02,0x08,0x09,0x0a,0x09,0x08,0x0a,0x80,0x00, +0x0a,0x0a,0x84,0x00,0x03,0x06,0x01,0x01,0x00,0x03,0x01,0x69,0x07,0x01,0x00,0x09,0x09,0x00,0x59,0x07,0x01,0x00,0x00,0x09,0x61,0x00,0x09,0x00,0x09,0x51,0x00,0x00,0x00,0x29,0x00,0x29,0x25,0x24,0x23,0x21,0x12,0x22,0x12,0x14,0x11,0x22,0x12,0x22,0x12,0x0d,0x06,0x1f,0x2b,0x37,0x34,0x36,0x33,0x33,0x37,0x23,0x22,0x26,0x35,0x33, +0x14,0x16,0x33,0x33,0x37,0x33,0x07,0x36,0x36,0x35,0x33,0x14,0x06,0x23,0x23,0x07,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x23,0x07,0x23,0x37,0x06,0x06,0x15,0x2d,0x6c,0x5c,0x04,0x21,0x25,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4d,0x46,0x4c,0x27,0x2c,0x5a,0x6c,0x5c,0x03,0x21,0x24,0x5c,0x6c,0x5a,0x3b,0x33,0x42,0x4b,0x46,0x4b,0x28, +0x2c,0x73,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xd2,0xd0,0x06,0x2e,0x24,0x4e,0x5c,0x5a,0x5c,0x4e,0x29,0x31,0xcd,0xcb,0x06,0x2e,0x24,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x23,0x40,0x20,0x16,0x12,0x11,0x0f,0x0b,0x0a,0x09,0x06,0x05,0x04,0x03,0x01,0x00,0x0d,0x01,0x00,0x01,0x4c, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x17,0x02,0x06,0x18,0x2b,0x37,0x35,0x37,0x37,0x27,0x35,0x17,0x37,0x33,0x03,0x17,0x15,0x07,0x07,0x23,0x37,0x37,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x87,0x41,0xc8,0xe2,0x56,0x3f,0x5f,0x96,0xff,0x4d,0x3f,0x40,0xd3,0x38,0x2b,0x63,0x13,0x21,0x08,0x09,0x22,0x41,0x57, +0x42,0xbc,0x63,0x5a,0x71,0xf8,0xfe,0xed,0x4b,0x64,0x7f,0xdf,0xb8,0xee,0x1c,0x7d,0x31,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x0f,0x0e,0x0d,0x0a,0x09,0x08,0x07,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50, +0x58,0x40,0x1f,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03, +0x00,0x03,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x15,0x19,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x07,0x35,0x37,0x37,0x27,0x35,0x05,0x37,0x33,0x07,0x17,0x15,0x07,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x27,0x07,0x37,0x36,0x36,0x37,0x26,0x26,0x55,0x63,0x40,0xa3,0xc5,0x2d,0xf2,0x01,0x0c,0x40, +0x3f,0x49,0x6c,0xc0,0x4c,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0xee,0x0e,0x18,0x26,0x13,0x21,0x08,0x09,0x22,0x52,0xbe,0x51,0x57,0x60,0x89,0x78,0x5a,0x86,0xc1,0xdc,0x36,0x64,0x60,0xe4,0x52,0x6e,0x6e,0x01,0xde,0x07,0x4a,0x13,0x09,0x0d,0x02,0x02,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x02,0xd9,0x00,0x1b, +0x00,0xca,0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x4b,0xb0, +0x0a,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x0c,0x0b,0x0b,0x0c,0x71,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85, +0x00,0x0c,0x0b,0x0c,0x86,0x06,0x01,0x04,0x07,0x01,0x03,0x02,0x04,0x03,0x68,0x08,0x01,0x02,0x09,0x01,0x01,0x00,0x02,0x01,0x67,0x0a,0x01,0x00,0x0b,0x0b,0x00,0x57,0x0a,0x01,0x00,0x00,0x0b,0x5f,0x0e,0x0d,0x02,0x0b,0x00,0x0b,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x37,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x21,0x07,0x23,0x37,0x55,0x7c,0x2e,0xaa,0xc2,0x2e,0xf0,0x01,0x09,0x2f,0x3f,0x2f,0x66,0x7f,0x2e,0xad,0xc5,0x2e,0xf3,0xfe,0xf4,0x2c,0x3f,0x2c, +0x4c,0x4c,0x8c,0x4c,0x8c,0x4c,0x91,0x91,0x4c,0x8c,0x4c,0x8c,0x4c,0x88,0x88,0x00,0x00,0x02,0x00,0x55,0xff,0xba,0x02,0x03,0x02,0xda,0x00,0x0f,0x00,0x18,0x00,0x29,0x40,0x26,0x16,0x12,0x11,0x0e,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x03,0x02,0x01,0x0d,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x0f,0x00,0x0f,0x15,0x03,0x06,0x17,0x2b,0x17,0x13,0x27,0x35,0x37,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x03,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x78,0x62,0x85,0xe7,0x51,0x3f,0x44,0x7b,0x9f,0x3a,0xd9,0xf3,0x59,0x16,0x27,0x24,0x4b,0x13,0x21,0x08,0x09,0x22,0x46,0x01,0x1b,0x43,0x64,0x73,0xeb,0xc5, +0x3e,0x57,0x4e,0xa8,0x6b,0x5a,0x7a,0xfe,0xff,0x01,0x7a,0x13,0x68,0x25,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x02,0x00,0x55,0xff,0x92,0x02,0x03,0x03,0x0c,0x00,0x17,0x00,0x20,0x00,0x6d,0x40,0x12,0x1e,0x1a,0x19,0x10,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x05,0x04,0x03,0x0d,0x00,0x01,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x1f,0x00, +0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x03,0x04,0x71,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x1b,0x40,0x1e,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x59, +0x40,0x0e,0x00,0x00,0x00,0x17,0x00,0x17,0x11,0x11,0x19,0x15,0x11,0x07,0x06,0x1b,0x2b,0x33,0x35,0x33,0x37,0x27,0x35,0x25,0x37,0x33,0x07,0x37,0x15,0x07,0x07,0x17,0x15,0x27,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x13,0x17,0x37,0x07,0x06,0x06,0x07,0x16,0x16,0x55,0x63,0x4e,0xb1,0x01,0x20,0x2c,0x3f,0x1f,0x42,0x64,0x49,0xad,0xc7, +0x45,0x01,0x0c,0xfe,0xd9,0x25,0x3f,0x25,0x30,0x53,0x33,0x86,0x13,0x21,0x08,0x09,0x22,0x52,0xea,0x59,0x64,0x90,0x83,0x5d,0x21,0x57,0x31,0xda,0x56,0x5a,0x63,0xcf,0x52,0x6e,0x6e,0x01,0xb1,0x29,0x9b,0x42,0x09,0x0d,0x02,0x02,0x0d,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x17,0x00,0x1b,0x00,0xca, +0x4b,0xb0,0x09,0x50,0x58,0x40,0x34,0x00,0x03,0x02,0x02,0x03,0x70,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x4b,0xb0,0x0c,0x50, +0x58,0x40,0x33,0x00,0x03,0x02,0x03,0x85,0x00,0x0a,0x09,0x09,0x0a,0x71,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x1b,0x40,0x32,0x00,0x03,0x02,0x03,0x85,0x00,0x0a, +0x09,0x0a,0x86,0x04,0x01,0x02,0x0d,0x01,0x05,0x06,0x02,0x05,0x68,0x0c,0x01,0x06,0x07,0x01,0x01,0x00,0x06,0x01,0x67,0x08,0x01,0x00,0x09,0x09,0x00,0x57,0x08,0x01,0x00,0x00,0x09,0x5f,0x0e,0x0b,0x02,0x09,0x00,0x09,0x4f,0x59,0x59,0x40,0x1a,0x00,0x00,0x1b,0x1a,0x19,0x18,0x00,0x17,0x00,0x17,0x16,0x15,0x14,0x13,0x11,0x11,0x11, +0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x37,0x23,0x11,0x21,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x33,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0x23,0x37,0x03,0x33,0x13,0x23,0x23,0x88,0x2c,0xb4,0x01,0x64,0x37,0x46,0x37,0x6d,0x8b,0x74,0xff,0xfe,0xe3,0x2c,0x01,0x49,0xfe,0x99,0x28,0x46,0x28,0x10,0x78,0x74, +0xec,0x52,0x76,0x01,0xe0,0x96,0x96,0x52,0xfe,0xc4,0x52,0x76,0x52,0x6e,0x6e,0x01,0x1a,0x01,0x3c,0x00,0x00,0x02,0x00,0x23,0xff,0xc4,0x02,0x3a,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x43,0x40,0x40,0x1a,0x01,0x04,0x03,0x01,0x01,0x05,0x04,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x08,0x01,0x06,0x05,0x06,0x86,0x02,0x01,0x00,0x07,0x01, +0x03,0x04,0x00,0x03,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x00,0x00,0x1d,0x1b,0x00,0x17,0x00,0x17,0x21,0x11,0x11,0x11,0x11,0x28,0x09,0x06,0x1c,0x2b,0x17,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x03,0x21,0x15,0x21,0x22,0x27,0x07,0x03, +0x14,0x17,0x13,0x23,0x22,0x06,0x15,0x78,0x43,0x46,0x52,0x3a,0x67,0x45,0x58,0x40,0x3f,0x40,0x9a,0xb7,0x6f,0x01,0x26,0xfe,0xcf,0x09,0x09,0x40,0x3a,0x5a,0x6d,0x3b,0x43,0x49,0x3c,0xbe,0x14,0x6e,0x4e,0x2c,0x42,0x62,0x36,0xb4,0xb4,0x52,0xfe,0xc4,0x52,0x01,0xb5,0x01,0x90,0x6b,0x19,0x01,0x36,0x48,0x42,0x00,0x00,0x02,0x00,0x1e, +0xff,0xc4,0x02,0x35,0x03,0x0c,0x00,0x17,0x00,0x1f,0x00,0x44,0x40,0x41,0x0b,0x01,0x01,0x02,0x1a,0x01,0x00,0x01,0x02,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x05,0x04,0x05,0x86,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x07,0x01,0x00,0x04,0x04,0x00,0x59,0x07,0x01,0x00,0x00,0x04,0x5f,0x08,0x06,0x02,0x04,0x00,0x04,0x4f,0x00,0x00, +0x1d,0x1b,0x00,0x17,0x00,0x17,0x11,0x28,0x12,0x21,0x11,0x11,0x09,0x06,0x1c,0x2b,0x37,0x35,0x33,0x13,0x21,0x35,0x21,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x01,0x34,0x27,0x03,0x33,0x32,0x36,0x35,0x1e,0xb7,0x6f,0xfe,0xda,0x01,0x31,0x09,0x09,0x40,0x3f,0x43,0x46,0x52,0x3a,0x67, +0x45,0x58,0x40,0x3f,0x40,0x01,0x23,0x5a,0x6d,0x3b,0x43,0x49,0x78,0x52,0x01,0x3c,0x52,0x01,0xb5,0xbe,0x14,0x6e,0x4e,0x2c,0x41,0x63,0x36,0xb4,0xb4,0x01,0x04,0x6b,0x19,0xfe,0xca,0x48,0x42,0x00,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x5f,0x02,0x17,0x02,0x35,0x00,0x0b,0x00,0x4d,0x4b,0xb0,0x21,0x50,0x58,0x40,0x16,0x03,0x01,0x01, +0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x05,0x05,0x02,0x5f,0x00,0x02,0x02,0x3b,0x05,0x4e,0x1b,0x40,0x1b,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07, +0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x00,0xbf,0xbf,0x58,0xbf,0xbf,0x5f,0xc3,0x50,0xc3,0xc3,0x50,0xc3,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x01,0x22,0x01,0xcc,0x01,0x72,0x02,0x06,0x03,0x57,0x00,0x00,0x00,0x01,0x00,0x69,0x00,0x88,0x01,0xee,0x02,0x0e,0x00,0x0b,0x00,0x06,0xb3,0x06, +0x00,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x9c,0x33,0x8d,0x8d,0x33,0x8e,0x91,0x33,0x91,0x8e,0x34,0x8d,0x88,0x34,0x8d,0x8e,0x33,0x8d,0x91,0x34,0x91,0x8d,0x34,0x8e,0x00,0x03,0x00,0x64,0x00,0x37,0x01,0xf4,0x02,0x62,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01, +0x00,0x02,0x01,0x00,0x69,0x00,0x02,0x07,0x01,0x03,0x05,0x02,0x03,0x67,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x11,0x10,0x0c,0x0c,0x01,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xee,0x01,0x90,0xc8,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x01,0xcc,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xa5,0x4b,0x4b,0xf0,0x29,0x22,0x22,0x29,0x29,0x22,0x22, +0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0xaa,0x02,0x03,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06, +0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0xc4,0x02,0x03,0x03,0x0c,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02, +0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x17,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x78,0x51,0x74,0x91,0x38, +0xc9,0xe5,0x67,0x3f,0x67,0x8a,0xa6,0x38,0xde,0xfb,0x51,0x3c,0xe6,0x50,0xa0,0x50,0x01,0x22,0xfe,0xde,0x50,0xa0,0x50,0xe6,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x0a,0x00,0x01,0x32,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09, +0x22,0x11,0xfe,0xca,0x01,0xae,0x41,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x01,0x00,0x55,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x0c,0x00,0x06,0xb3,0x03,0x00,0x01,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, +0x09,0x22,0x11,0x01,0x36,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x0b,0x0a,0x09,0x05,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01, +0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x37,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x21,0x15,0x55,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0xfe,0x52,0x01,0xae,0xbe,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0xfe,0x6b,0x50,0x50,0x00, +0x00,0x02,0x00,0x55,0x00,0x00,0x02,0x03,0x02,0xd0,0x00,0x0c,0x00,0x10,0x00,0x28,0x40,0x25,0x0c,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x0d,0x0d,0x0d,0x10,0x0d,0x10,0x1e,0x03,0x06,0x17,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, +0x07,0x16,0x16,0x17,0x05,0x01,0x35,0x21,0x15,0x02,0x03,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0xfe,0x52,0x01,0xae,0xbe,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0xfe,0xe8,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0x3a,0x00,0x0f,0x00,0x56,0x4b,0xb0, +0x18,0x50,0x58,0x40,0x1c,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x00,0x03,0x03,0x3b,0x4d,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e,0x1b,0x40,0x1c,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x00,0x07,0x60,0x08,0x01,0x07,0x07,0x39,0x07,0x4e, +0x59,0x40,0x10,0x00,0x00,0x00,0x0f,0x00,0x0f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x46,0xba,0xbf,0xbf,0x58,0xbf,0xbf,0xba,0x46,0xe1,0x50,0xc3,0xc3,0x50,0xe1,0x46,0xff,0xff,0x00,0x46,0x00,0x69,0x02,0x12,0x02,0x2b,0x02,0x26, +0x04,0x22,0x00,0x64,0x01,0x07,0x04,0x22,0x00,0x00,0xff,0x6f,0x00,0x11,0xb1,0x00,0x01,0xb0,0x64,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0xff,0x6f,0xb0,0x35,0x2b,0x00,0x00,0x01,0x00,0x64,0x00,0xb9,0x01,0xf4,0x01,0x8b,0x00,0x05,0x00,0x46,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00, +0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x09,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x15,0x01,0x9f,0xfe,0xc5,0x01,0x90, +0xb9,0x82,0x50,0xd2,0x00,0x01,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x00,0x1b,0x00,0x68,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x02,0x01,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x06,0x05,0x02,0x03,0x01,0x03,0x52,0x1b,0x40,0x29,0x00,0x02,0x00,0x04,0x00, +0x02,0x04,0x80,0x06,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x05,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x62,0x00,0x03,0x01,0x03,0x52,0x59,0x40,0x0e,0x00,0x00,0x00,0x1b,0x00,0x1b,0x24,0x23,0x12,0x24,0x23,0x07,0x09,0x1b,0x2b,0xb1,0x06,0x00,0x44,0x37,0x35,0x34,0x36,0x33,0x32, +0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x46,0x48,0x3a,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0xff,0x46,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x37,0x46,0x46,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x37,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x50, +0x01,0x54,0x02,0x08,0x02,0xda,0x00,0x0c,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x50,0xb3, +0x54,0xb1,0x51,0x70,0x08,0x0d,0x03,0x04,0x0e,0x09,0x73,0x01,0x54,0x01,0x86,0xfe,0x7a,0x01,0x02,0x14,0x25,0x0a,0x0a,0x25,0x14,0xfe,0xfe,0x00,0x00,0x03,0x00,0x23,0x00,0xa0,0x02,0x35,0x01,0xf9,0x00,0x1b,0x00,0x2a,0x00,0x39,0x00,0x4b,0x40,0x48,0x17,0x09,0x02,0x04,0x05,0x01,0x4c,0x02,0x01,0x01,0x07,0x01,0x05,0x04,0x01,0x05, +0x69,0x0a,0x06,0x09,0x03,0x04,0x00,0x00,0x04,0x59,0x0a,0x06,0x09,0x03,0x04,0x04,0x00,0x61,0x03,0x08,0x02,0x00,0x04,0x00,0x51,0x2c,0x2b,0x1d,0x1c,0x01,0x00,0x33,0x31,0x2b,0x39,0x2c,0x39,0x25,0x23,0x1c,0x2a,0x1d,0x2a,0x16,0x14,0x0f,0x0d,0x08,0x06,0x00,0x1b,0x01,0x1b,0x0b,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x35,0x34,0x36, +0x33,0x32,0x17,0x33,0x3e,0x02,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x27,0x23,0x0e,0x02,0x27,0x32,0x3e,0x02,0x37,0x27,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x0e,0x02,0x07,0x17,0x16,0xa6,0x3b,0x48,0x4c,0x3d,0x66,0x24,0x03,0x05,0x1d,0x33,0x24,0x3b,0x48,0x4b,0x3e,0x66, +0x24,0x03,0x04,0x1e,0x32,0x1c,0x1d,0x24,0x15,0x0a,0x01,0x1f,0x16,0x2c,0x1f,0x27,0x27,0x01,0x19,0x20,0x26,0x26,0x20,0x1c,0x25,0x15,0x0a,0x01,0x1f,0x16,0xa0,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x16,0x2d,0x20,0x4a,0x3d,0x4b,0x3d,0x4a,0x63,0x15,0x2e,0x20,0x3c,0x17,0x20,0x1c,0x06,0x54,0x34,0x29,0x22,0x4b,0x22,0x29,0x29,0x22,0x4b, +0x22,0x29,0x17,0x20,0x1c,0x06,0x54,0x34,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x18,0x00,0x22,0x00,0x2c,0x00,0x4f,0x40,0x4c,0x0d,0x0a,0x02,0x04,0x00,0x2b,0x2a,0x1d,0x1c,0x04,0x05,0x04,0x17,0x01,0x02,0x02,0x05,0x03,0x4c,0x00,0x01,0x00,0x01,0x85,0x06,0x01,0x03,0x02,0x03,0x86,0x00,0x00,0x00,0x04,0x05,0x00, +0x04,0x69,0x07,0x01,0x05,0x02,0x02,0x05,0x59,0x07,0x01,0x05,0x05,0x02,0x61,0x00,0x02,0x05,0x02,0x51,0x24,0x23,0x00,0x00,0x23,0x2c,0x24,0x2c,0x20,0x1e,0x00,0x18,0x00,0x18,0x27,0x12,0x27,0x08,0x06,0x19,0x2b,0x33,0x37,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x17,0x37,0x33,0x07,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x22,0x26, +0x27,0x07,0x03,0x14,0x16,0x17,0x13,0x26,0x23,0x22,0x06,0x06,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x27,0x03,0x16,0x14,0x50,0x33,0x3b,0x51,0x8d,0x58,0x4f,0x43,0x3f,0x47,0x54,0x35,0x3d,0x51,0x8c,0x59,0x2a,0x4c,0x21,0x3a,0x0b,0x24,0x20,0xfc,0x2e,0x36,0x3f,0x63,0x3a,0xdc,0x3f,0x63,0x3a,0x27,0x21,0xfd,0x30,0x77,0x2a,0x7d,0x4a, +0x59,0x8c,0x51,0x22,0x5e,0x7e,0x2a,0x7e,0x4c,0x58,0x8d,0x51,0x13,0x12,0x57,0x01,0x68,0x33,0x57,0x1f,0x01,0x78,0x17,0x3c,0x68,0xfe,0xd8,0x3c,0x69,0x41,0x35,0x59,0x1f,0xfe,0x87,0x1a,0x00,0x01,0x00,0x3c,0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x08,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03, +0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x11,0x11,0x04,0x06,0x18,0x2b,0x37,0x13,0x33,0x13,0x23,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x3c,0xb3,0x7a,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x32,0x01,0xf4,0xfe,0x0c,0x01,0x40,0x20,0x3f,0x10,0x10,0x3f,0x20,0xfe,0xc0,0x00,0x00,0x00,0x01,0x00,0x3c, +0x00,0x32,0x02,0x1c,0x02,0x26,0x00,0x0c,0x00,0x1f,0x40,0x1c,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x0c,0x00,0x0c,0x18,0x11,0x04,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b, +0x72,0x5b,0xb3,0x32,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0x00,0x00,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d,0x02,0xda,0x00,0x13,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x13,0x00, +0x13,0x33,0x13,0x33,0x05,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x11,0x2b,0x75,0x6f,0x3a,0x6f,0x75,0x5a,0x48,0x44,0x36,0x44,0x48,0x01,0xfe,0x6b,0x71,0x71,0x6b,0xfe,0x02,0x01,0xfe,0x44,0x48,0x48,0x44,0xfe,0x02,0x00,0x01,0x00,0x2b,0x00,0x00,0x02,0x2d, +0x02,0xda,0x00,0x13,0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x33,0x13,0x33,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x2b,0x5a,0x48,0x44,0x36,0x44, +0x48,0x5a,0x75,0x6f,0x3a,0x6f,0x75,0x02,0xda,0xfe,0x02,0x44,0x48,0x48,0x44,0x01,0xfe,0xfe,0x02,0x6b,0x71,0x71,0x6b,0x00,0x00,0x01,0x00,0x00,0xff,0x4c,0x02,0x17,0x02,0xda,0x00,0x12,0x00,0x28,0x40,0x25,0x00,0x01,0x00,0x02,0x00,0x01,0x02,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03, +0x4f,0x00,0x00,0x00,0x12,0x00,0x11,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x15,0x35,0x33,0x32,0x36,0x35,0x11,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x15,0x11,0x14,0x06,0x23,0x69,0x35,0x3e,0x51,0x49,0xa1,0xa1,0x40,0x70,0x5d,0xb4,0x52,0x3d,0x34,0x02,0x40,0x42,0x49,0x50,0x3c,0xfd,0xc1,0x58,0x6b,0x00,0x00,0x00,0xff,0xff,0x00,0x32, +0x00,0x00,0x02,0x26,0x02,0xda,0x02,0x06,0x02,0x54,0x00,0x00,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x02,0xda,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11, +0x07,0x06,0x1b,0x2b,0x17,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x6e,0x46,0x02,0x08,0x46,0x5a,0xc8,0xb4,0x03,0x3c,0x52,0x52,0xfc,0xc4,0x03,0x3c,0xfc,0xc4,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b,0x00,0x37,0x40,0x34,0x08,0x02,0x02,0x02,0x01,0x01,0x4c,0x03,0x01,0x01,0x01,0x01, +0x02,0x02,0x4b,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x05,0x06,0x19,0x2b,0x17,0x35,0x01,0x01,0x35,0x21,0x15,0x21,0x01,0x01,0x21,0x15,0x37,0x01,0x13,0xfe,0xed,0x01,0xe5,0xfe,0x89,0x01,0x12, +0xfe,0xec,0x01,0x79,0xb4,0x52,0x01,0x75,0x01,0x75,0x52,0x52,0xfe,0x8b,0xfe,0x8b,0x52,0x00,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0f,0x00,0x2e,0x40,0x2b,0x00,0x03,0x01,0x03,0x85,0x00,0x01,0x00,0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x05,0x01,0x04,0x02, +0x04,0x4f,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x14,0x11,0x11,0x06,0x06,0x1a,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x16,0x16,0x07,0x33,0x26,0x36,0x37,0x13,0x33,0x03,0x01,0x0c,0x7f,0x6f,0xaf,0x63,0x08,0x06,0x01,0x09,0x01,0x07,0x09,0xa0,0x54,0xd4,0x01,0xd6,0x50,0xfe,0x7b,0x22,0x33,0x0b,0x0b,0x34,0x21,0x02,0x39,0xfd,0x26,0x00, +0x00,0x02,0x00,0x5a,0xff,0xf6,0x01,0xfe,0x02,0xda,0x00,0x1b,0x00,0x29,0x00,0x3f,0x40,0x3c,0x0c,0x0a,0x02,0x03,0x04,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x05,0x01,0x00,0x03,0x00,0x51,0x1d,0x1c,0x01,0x00,0x24,0x22,0x1c, +0x29,0x1d,0x29,0x12,0x11,0x08,0x06,0x00,0x1b,0x01,0x1b,0x07,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x2e,0x02,0x27,0x33,0x30,0x1e,0x03,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x70,0x61,0x57,0x3e,0x4b,0x07,0x02, +0x31,0x4e,0x5a,0x2a,0x87,0x2b,0x40,0x40,0x2b,0x70,0x62,0x3a,0x3e,0x3d,0x3b,0x3a,0x3e,0x3e,0x0a,0x73,0x64,0x50,0x62,0x70,0x37,0x32,0x19,0x36,0x62,0x52,0x3e,0x13,0x1b,0x36,0x4e,0x67,0x3f,0xc8,0x64,0x73,0x50,0x46,0x41,0x50,0x42,0x45,0x46,0x41,0x50,0x41,0x46,0x00,0xff,0xff,0x00,0x5d,0xff,0x4c,0x01,0xfb,0x02,0x26,0x02,0x06, +0x02,0x80,0x00,0x00,0x00,0x02,0x00,0x9b,0x00,0x00,0x01,0xbd,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x63, +0x5a,0xfe,0xde,0x5a,0x02,0xda,0xfd,0x26,0x02,0xda,0xfd,0x26,0x00,0x01,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xff,0x5a,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00, +0x00,0x01,0x00,0xff,0xff,0x88,0x02,0x2b,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x0a,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x05,0x2e,0x02,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x02,0x2b,0x5d,0x86,0x49,0x5a,0x71,0x61,0x78,0x17,0x6e,0xa0,0x61,0x02,0xee,0xfd,0x12,0x75,0xa2,0x17,0x00,0x01,0x00,0xff, +0xfe,0xd4,0x02,0x2b,0x03,0x48,0x00,0x0a,0x00,0x16,0x40,0x13,0x06,0x05,0x02,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x0a,0x00,0x0a,0x02,0x06,0x16,0x2b,0x13,0x11,0x34,0x36,0x36,0x37,0x15,0x06,0x06,0x15,0x11,0xff,0x49,0x86,0x5d,0x61,0x71,0xfe,0xd4,0x02,0xee,0x62,0x9f,0x6e,0x17,0x58,0x17,0xa2,0x75,0xfd,0x12,0x00, +0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x04,0x32,0x00,0x00,0x00,0x01,0x00,0x2d,0xff,0x88,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x10,0x40,0x0d,0x01,0x00,0x02,0x00,0x49,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x17,0x35,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x2d,0x62,0x70,0x5a,0x48,0x87,0x78, +0x58,0x17,0xa2,0x75,0x02,0xee,0xfd,0x12,0x61,0xa0,0x6e,0x00,0x00,0x01,0x00,0x2d,0xfe,0xd4,0x01,0x59,0x03,0x48,0x00,0x0a,0x00,0x10,0x40,0x0d,0x06,0x05,0x02,0x00,0x4a,0x00,0x00,0x00,0x76,0x10,0x01,0x06,0x17,0x2b,0x01,0x23,0x11,0x34,0x26,0x27,0x35,0x1e,0x02,0x15,0x01,0x59,0x5a,0x70,0x62,0x5d,0x87,0x48,0xfe,0xd4,0x02,0xee, +0x75,0xa2,0x17,0x58,0x17,0x6e,0x9f,0x62,0x00,0x05,0x00,0x0e,0xff,0xfb,0x02,0x4a,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x2d,0x00,0x3b,0x00,0x99,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x2c,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01, +0x38,0x4d,0x0e,0x01,0x08,0x08,0x03,0x61,0x0d,0x06,0x0b,0x03,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x34,0x0c,0x01,0x04,0x0a,0x01,0x00,0x07,0x04,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0b,0x01,0x03,0x03,0x39,0x4d,0x0e,0x01,0x08,0x08,0x06, +0x61,0x0d,0x01,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x2b,0x2f,0x2e,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x36,0x34,0x2e,0x3b,0x2f,0x3b,0x28,0x26,0x20,0x2d,0x21,0x2d,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0f,0x09,0x16,0x2b,0x13,0x22,0x26,0x37,0x35,0x26,0x36,0x33,0x32, +0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x22,0x26,0x35,0x35,0x26,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x99,0x40,0x4b,0x01,0x01,0x4b,0x40,0x40,0x4b,0x01,0x4b,0xcc,0x01, +0xf2,0x4a,0xfe,0x0e,0x42,0x1e,0x23,0x23,0x1e,0x1e,0x23,0x23,0x01,0x42,0x40,0x4b,0x01,0x4c,0x40,0x40,0x4b,0x4b,0x40,0x1e,0x23,0x23,0x1f,0x1d,0x23,0x01,0x23,0x01,0x90,0x49,0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0xfe,0x70,0x02,0xda,0xfd,0x26,0x01,0xd4,0x24,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x24,0xfe,0x27,0x49, +0x3e,0x41,0x3e,0x49,0x49,0x3e,0x41,0x3e,0x49,0x45,0x23,0x1f,0x41,0x1f,0x24,0x24,0x1f,0x41,0x1f,0x23,0x00,0x06,0xff,0xfb,0xff,0xfb,0x02,0x72,0x02,0xdf,0x00,0x0d,0x00,0x11,0x00,0x1f,0x00,0x39,0x00,0x47,0x00,0x55,0x00,0xb7,0xb6,0x37,0x2a,0x02,0x0a,0x0b,0x01,0x4c,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x31,0x10,0x01,0x04,0x0e,0x01, +0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a,0x07,0x0b,0x6a,0x00,0x05,0x05,0x01,0x61,0x02,0x01,0x01,0x01,0x38,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x03,0x61,0x09,0x11,0x06,0x0f,0x04,0x03,0x03,0x39,0x03,0x4e,0x1b,0x40,0x39,0x10,0x01,0x04,0x0e,0x01,0x00,0x07,0x04,0x00,0x69,0x08,0x01,0x07,0x0d,0x01,0x0b,0x0a, +0x07,0x0b,0x6a,0x00,0x02,0x02,0x38,0x4d,0x00,0x05,0x05,0x01,0x61,0x00,0x01,0x01,0x38,0x4d,0x0f,0x01,0x03,0x03,0x39,0x4d,0x13,0x0c,0x12,0x03,0x0a,0x0a,0x06,0x61,0x09,0x11,0x02,0x06,0x06,0x42,0x06,0x4e,0x59,0x40,0x37,0x49,0x48,0x3b,0x3a,0x21,0x20,0x13,0x12,0x0e,0x0e,0x01,0x00,0x50,0x4e,0x48,0x55,0x49,0x55,0x42,0x40,0x3a, +0x47,0x3b,0x47,0x35,0x33,0x2e,0x2c,0x28,0x26,0x20,0x39,0x21,0x39,0x1a,0x18,0x12,0x1f,0x13,0x1f,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x14,0x09,0x16,0x2b,0x13,0x22,0x26,0x27,0x35,0x26,0x36,0x33,0x32,0x16,0x17,0x15,0x14,0x06,0x03,0x01,0x33,0x01,0x13,0x32,0x36,0x35,0x35,0x26,0x26,0x23,0x22,0x06,0x15, +0x15,0x14,0x16,0x13,0x22,0x26,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x27,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x33,0x32,0x36,0x37,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x06,0x16,0x7d,0x37,0x40,0x01,0x01,0x41,0x37, +0x37,0x41,0x01,0x40,0xba,0x01,0xb6,0x43,0xfe,0x4a,0x3f,0x1a,0x1f,0x01,0x1e,0x1a,0x1a,0x1f,0x1f,0xf6,0x32,0x3b,0x01,0x3b,0x31,0x26,0x2e,0x02,0x03,0x2f,0x25,0x32,0x3a,0x3a,0x32,0x26,0x2e,0x02,0x04,0x2f,0x1f,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0xbb,0x17,0x1b,0x01,0x1c,0x17,0x17,0x1c,0x01,0x1c,0x01,0xb8,0x3e,0x35, +0x41,0x35,0x3e,0x3e,0x35,0x41,0x35,0x3e,0xfe,0x48,0x02,0xda,0xfd,0x26,0x01,0xf3,0x1f,0x19,0x41,0x1a,0x1e,0x1e,0x1a,0x41,0x19,0x1f,0xfe,0x08,0x40,0x37,0x38,0x38,0x40,0x26,0x20,0x20,0x26,0x40,0x38,0x38,0x37,0x40,0x26,0x20,0x20,0x26,0x35,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f,0x38,0x1f,0x23,0x23,0x1f,0x38,0x1f,0x24,0x24,0x1f, +0x38,0x1f,0x23,0x00,0x00,0x01,0x00,0x78,0x00,0x00,0x01,0xe0,0x01,0x65,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b, +0x2b,0x21,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x07,0x8f,0x8f,0x4a,0x8f,0x8f,0x93,0x40,0x92,0x92,0x40,0x93,0x00,0x00,0x00,0x01,0x00,0xa0,0x01,0x31,0x01,0xb8,0x02,0x49,0x00,0x0b,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, +0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x0b,0x1b,0x2b,0x01,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x01,0x04,0x64,0x64,0x50,0x64,0x64,0x01,0x31,0x69,0x46,0x69,0x69,0x46,0x69,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0x00,0x37,0x02,0x08,0x02,0x58,0x00,0x12, +0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x02,0x85,0x00,0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x03,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x06,0x06,0x1a,0x2b,0x25,0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e, +0x02,0x07,0x1e,0x02,0x17,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x37,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0x00,0x02,0x00,0x37,0x00,0x00,0x02,0x08,0x02,0xd5,0x00,0x12,0x00,0x16,0x00,0x47,0x40,0x44,0x00,0x02,0x01,0x02,0x85,0x00, +0x03,0x01,0x00,0x01,0x03,0x00,0x80,0x07,0x01,0x04,0x00,0x05,0x00,0x04,0x05,0x80,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x13,0x13,0x00,0x00,0x13,0x16,0x13,0x16,0x15,0x14,0x00,0x12,0x00,0x12,0x13,0x13,0x11,0x13,0x09,0x06,0x1a,0x2b,0x25, +0x2e,0x02,0x23,0x35,0x32,0x36,0x36,0x37,0x33,0x0e,0x02,0x07,0x1e,0x02,0x17,0x05,0x35,0x21,0x15,0x01,0xae,0x08,0x63,0xa3,0x69,0x69,0xa3,0x63,0x08,0x5a,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0xfe,0x2f,0x01,0xcc,0xb4,0x45,0x65,0x37,0x64,0x36,0x63,0x43,0x4c,0x73,0x45,0x05,0x07,0x48,0x7a,0x4f,0xb4,0x50,0x50,0x00,0x00,0x00, +0x00,0x04,0x00,0x37,0xff,0xf6,0x02,0x20,0x01,0xfe,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x47,0x40,0x44,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x07,0x01,0x05,0x04,0x04,0x05,0x59,0x07,0x01,0x05,0x05,0x04,0x61,0x0b,0x06,0x0a,0x03,0x04,0x05,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b, +0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0xce,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0xfe,0x97,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x21,0x24,0x2e,0x2e,0x24,0x24,0x2e,0x2e,0x01,0x5c,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d, +0xfe,0x9a,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x2d,0x24,0x24,0x2d,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x03,0x17,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0xaa,0x4b,0xb0,0x24,0x50,0x58,0x40,0x3b,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x72,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00, +0x00,0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x1b,0x40,0x3c,0x0b,0x01,0x04,0x03,0x06,0x03,0x04,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00, +0x00,0x03,0x04,0x00,0x03,0x69,0x00,0x06,0x0c,0x01,0x05,0x07,0x06,0x05,0x69,0x00,0x07,0x0d,0x01,0x08,0x09,0x07,0x08,0x67,0x00,0x09,0x0a,0x0a,0x09,0x57,0x00,0x09,0x09,0x0a,0x5f,0x0e,0x01,0x0a,0x09,0x0a,0x4f,0x59,0x40,0x25,0x24,0x24,0x20,0x20,0x15,0x14,0x00,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21, +0x1b,0x19,0x14,0x1f,0x15,0x1f,0x00,0x13,0x00,0x13,0x24,0x21,0x24,0x21,0x0f,0x06,0x1a,0x2b,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xff,0x49,0x18,0x1d,0x1d,0x18, +0x86,0x87,0x33,0x3d,0x3d,0x33,0x13,0x1c,0x12,0x15,0x15,0x12,0x12,0x15,0x15,0xd7,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x21,0x55,0x1d,0x18,0x18,0x1d,0x37,0x3a,0x32,0x2f,0x38,0x23,0x73,0x14,0x10,0x11,0x13,0x13,0x11,0x10,0x14,0x8a,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0xff,0xff,0x00,0xd9,0xff,0xf6,0x01,0x7f,0x02,0x30,0x02,0x06, +0x03,0x2b,0x00,0x00,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x3c,0x40,0x39,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x01,0x00,0x16,0x19,0x16,0x19, +0x18,0x17,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0xfd,0xf8,0x02,0x08, +0xc8,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x15,0x00,0x19,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04, +0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x16,0x16,0x00,0x00,0x16,0x19,0x16,0x19,0x18,0x17,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x05,0x35,0x21,0x15,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf, +0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0xfe,0xcf,0x02,0x08,0xc8,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x01,0xdb,0x00,0x31,0x00,0x4c,0x40,0x49,0x14,0x09,0x02,0x01,0x00,0x2c,0x21,0x1a,0x13,0x08,0x01,0x06,0x06,0x01,0x2b,0x20, +0x02,0x05,0x06,0x03,0x4c,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x0a,0x09,0x07,0x03,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x00,0x00,0x00,0x31,0x00,0x31,0x27,0x11,0x27,0x12,0x17,0x21,0x17,0x21,0x12,0x0b,0x06,0x1f,0x2b,0x27,0x37,0x27,0x33,0x17,0x33, +0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x07,0x50,0x9f,0x9f,0x6a,0x7d,0x88,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x7d,0x18,0x11,0x28,0x0d,0x07, +0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x18,0x7d,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0x88,0x7d,0x4b,0xc8,0xc8,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xa0,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0xa0,0x00, +0x00,0x01,0x00,0x73,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x0a,0x00,0x26,0x40,0x23,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x03,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x06,0x04,0x02,0x00,0x0a,0x01,0x0a,0x04,0x06,0x16,0x2b,0x17,0x23,0x35,0x33,0x32,0x35,0x11,0x33,0x11,0x14,0x06,0xa0, +0x2d,0x2d,0x5f,0x5a,0x60,0x6e,0x50,0x56,0x03,0xc4,0xfc,0x3c,0x4f,0x57,0x00,0x00,0x00,0x01,0x00,0xff,0xfe,0xd4,0x02,0x2b,0x03,0xfc,0x00,0x16,0x00,0x2a,0x40,0x27,0x05,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f, +0x21,0x24,0x18,0x10,0x04,0x06,0x1a,0x2b,0x01,0x23,0x11,0x34,0x36,0x37,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x01,0x59,0x5a,0x34,0x31,0x32,0x33,0x5a,0x0e,0x2b,0x2b,0x6e,0x6e,0x2b,0x2b,0x0e,0xfe,0xd4,0x02,0x08,0x39,0x4a,0x09,0x09,0x4a,0x39,0x02,0x08,0xfd,0xf8,0x23,0x2d,0x14, +0x50,0x14,0x2c,0x24,0x00,0x01,0x00,0x73,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x0a,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x59,0x00,0x02,0x02,0x01,0x61,0x00,0x01,0x02,0x01,0x51,0x21,0x22,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x01,0x59,0x5a,0x5f,0x2d, +0x2d,0x59,0x60,0xfe,0xd4,0x03,0xc4,0x56,0x50,0x57,0x4f,0x00,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x58,0x02,0x9b,0x00,0x08,0x00,0x0b,0x00,0x08,0xb5,0x0a,0x09,0x04,0x03,0x02,0x32,0x2b,0x11,0x37,0x05,0x01,0x11,0x01,0x05,0x27,0x25,0x05,0x11,0x07,0x23,0x01,0x09,0x01,0x2c,0xfe,0xd3,0xfe,0xf7,0x22,0x01,0x07,0x01,0x1f,0xd6,0x02, +0x58,0x25,0xf3,0x01,0x11,0xfd,0x97,0x01,0x13,0xf1,0x23,0xf0,0xc2,0x01,0x86,0xc3,0xff,0xff,0x00,0xff,0xfe,0xd4,0x01,0x59,0x03,0xfc,0x02,0x06,0x03,0xf4,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0x92,0x01,0x59,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f, +0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x05,0x23,0x35,0x33,0x11,0x33,0x01,0x59,0xf5,0x9b,0x5a,0x6e,0x50,0x04,0x1a,0x00,0x00,0x01,0x00,0x64,0xfe,0xd4,0x01,0x59,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01, +0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x11,0x23,0x35,0x33,0x01,0x59,0x5a,0x9b,0xf5,0xfe,0xd4,0x04,0x1a,0x50,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, +0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x31,0x11,0x33,0x15,0x21,0x15,0x21,0x11,0x5a,0x01,0xfe,0xfe,0x02,0x02,0x58,0xff,0x50,0xfe,0xf7,0x00,0x00,0x04,0x00,0x55,0x00,0x4c,0x02,0x03,0x02,0xd1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x52,0x40,0x4f,0x00,0x01,0x00,0x03,0x02,0x01, +0x03,0x69,0x09,0x01,0x02,0x08,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x1c,0x1c,0x18,0x18,0x0d,0x0c,0x01,0x00,0x1c,0x1f,0x1c,0x1f,0x1e,0x1d,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17, +0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x01,0x2c,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0xbc,0x01,0xae,0xfe,0x52, +0x01,0xae,0x01,0xed,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0xfe,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x00,0x02,0x00,0xb4,0x00,0xd2,0x01,0xa4,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, +0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, +0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12,0x01,0xc7,0x02,0x06,0x04,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00, +0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x00,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x21,0x11,0x23,0x11,0x21,0x11,0x3c,0x01,0xe0,0x5a,0xfe,0xd4,0x02,0x17,0xfd,0xe9,0x01,0xc5,0xfe,0x3b,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0x17,0x00,0x07, +0x00,0x20,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x5f,0x00,0x03,0x01,0x03,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x3c,0x5a,0x01,0x2c,0x5a,0xfe,0x20,0x02,0x17,0xfe,0x3b,0x01,0xc5,0xfd,0xe9,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x07,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x09,0x08,0x00,0x00,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04, +0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xce,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00, +0x00,0x03,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3b,0x40,0x38,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x07,0x01,0x05,0x02,0x04,0x05,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, +0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x21,0x15,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x5a,0x01,0x40,0x1e,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0xde,0x50,0x50,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x06,0x00,0x09, +0x00,0x0c,0x00,0x0f,0x00,0x33,0x40,0x30,0x0c,0x0b,0x09,0x08,0x04,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0f,0x0e,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x37,0x21, +0x17,0x17,0x11,0x05,0x27,0x11,0x37,0x07,0x21,0x02,0x58,0xfe,0xd2,0xc2,0xfe,0x7a,0xf7,0xc9,0xfe,0xd0,0xc4,0xf8,0xcb,0x01,0x94,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x64,0xc2,0xf6,0xc7,0x01,0x90,0xc9,0xc6,0xfe,0x76,0x91,0xcb,0x00,0x00,0x05,0x00,0x00,0x00,0x1e,0x02,0x58,0x02,0x76,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13, +0x00,0x4e,0x40,0x4b,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x04,0x0b,0x02,0x03,0x09,0x01,0x06,0x07,0x03,0x06,0x67,0x08,0x0c,0x02,0x07,0x01,0x01,0x07,0x57,0x08,0x0c,0x02,0x07,0x07,0x01,0x5f,0x0a,0x01,0x01,0x07,0x01,0x4f,0x0c,0x0c,0x04,0x04,0x00,0x00,0x13,0x12,0x11,0x10,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x0b,0x0a,0x09, +0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0d,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x01,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x13,0x35,0x23,0x15,0x21,0x33,0x35,0x23,0x02,0x58,0xfe,0xa8,0xce,0x01,0x26,0xce,0xce,0xce,0xce,0xfe,0xda,0xce,0xce,0x1e,0x02,0x58,0xfd,0xa8,0x01,0x54,0xd2,0xd2,0xd2,0xfe,0x0c,0xd2, +0xd2,0xd2,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x5a,0x02,0x3a,0x02,0x3a,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11, +0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0x5a,0x01,0xe0,0x52,0xfe,0xc4,0x52,0x00,0x02,0x00,0x23,0x00,0x00,0x02,0x3a,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x06,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01, +0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x11,0x21,0x15,0x21,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x23,0x02,0x17,0xfe,0x43,0x01,0xbd,0xfd,0xe9,0x02,0x17,0xc8,0x01,0xe0,0x52,0xfe,0xc4,0x52,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0x1e, +0x00,0x5a,0x02,0x35,0x02,0x3a,0x00,0x07,0x00,0x22,0x40,0x1f,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x25,0x21,0x35,0x21,0x11,0x21,0x35,0x21,0x02,0x35,0xfd,0xe9,0x01,0xbd,0xfe,0x43,0x02,0x17,0x5a,0x52, +0x01,0x3c,0x52,0x00,0x00,0x02,0x00,0x1e,0x00,0x00,0x02,0x35,0x02,0xa8,0x00,0x07,0x00,0x0b,0x00,0x39,0x40,0x36,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b, +0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x37,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x05,0x35,0x21,0x15,0x1e,0x01,0xbd,0xfe,0x43,0x02,0x17,0xfd,0xe9,0x02,0x17,0xc8,0x52,0x01,0x3c,0x52,0xfe,0x20,0xc8,0x52,0x52,0x00,0x00,0x00,0x01,0x00,0xb4,0x00,0xda,0x01,0xa4,0x01,0xd0,0x00,0x09,0x00,0x18,0x40,0x15, +0x04,0x01,0x00,0x4a,0x09,0x08,0x07,0x01,0x04,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x12,0x12,0x02,0x06,0x18,0x2b,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0xe3,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0xda,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x00,0x00,0x04,0x00,0x55,0x00,0x54,0x02,0x03,0x02,0x40,0x00,0x03, +0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f, +0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x55,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0xfe,0x52,0x01,0xae,0x02,0x04,0x3c,0x3c,0x90,0x3c,0x3c,0x90, +0x3c,0x3c,0x90,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x00,0x78,0x02,0x3a,0x02,0x58,0x00,0x15,0x00,0x2b,0x40,0x28,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x03,0x00,0x4f,0x01,0x00,0x14,0x12,0x0d,0x0b,0x0a,0x08,0x00,0x15,0x01,0x15,0x05,0x06,0x16, +0x2b,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x21,0x15,0x01,0x09,0x45,0x67,0x3a,0x3a,0x67,0x45,0x01,0x31,0xfe,0xcf,0x43,0x49,0x49,0x43,0x01,0x31,0x78,0x36,0x63,0x41,0x2c,0x42,0x62,0x36,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x00,0x01,0x00,0x50,0x00,0x37,0x02,0x21, +0x02,0x58,0x00,0x12,0x00,0x33,0x40,0x30,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x02,0x03,0x02,0x00,0x03,0x80,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x00,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x00,0x00,0x00,0x12,0x00,0x12,0x11,0x13,0x13,0x14,0x06,0x06,0x1a,0x2b,0x37,0x3e,0x02,0x37,0x2e,0x02,0x27, +0x33,0x1e,0x02,0x33,0x15,0x22,0x06,0x06,0x07,0x50,0x09,0x56,0x8f,0x5c,0x5c,0x8f,0x56,0x09,0x5a,0x09,0x62,0xa3,0x69,0x69,0xa3,0x62,0x09,0x37,0x4f,0x7a,0x48,0x07,0x05,0x45,0x73,0x4c,0x43,0x63,0x36,0x64,0x37,0x65,0x45,0x00,0x00,0x01,0x00,0x23,0x00,0x46,0x02,0x3a,0x02,0x8a,0x00,0x1b,0x00,0x32,0x40,0x2f,0x00,0x04,0x00,0x03, +0x02,0x04,0x03,0x67,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x1b,0x00,0x1a,0x21,0x24,0x11,0x14,0x21,0x07,0x06,0x1b,0x2b,0x37,0x35,0x21,0x32,0x36,0x36,0x35,0x35,0x21,0x35,0x21,0x35,0x34,0x26,0x26,0x23,0x21,0x35,0x21,0x32, +0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x23,0x23,0x01,0x31,0x28,0x3f,0x25,0xfe,0x43,0x01,0xbd,0x25,0x3f,0x28,0xfe,0xcf,0x01,0x31,0x3f,0x68,0x3f,0x3f,0x68,0x3f,0x46,0x50,0x27,0x40,0x25,0x1e,0x50,0x1e,0x25,0x40,0x27,0x50,0x39,0x63,0x3e,0x90,0x3e,0x63,0x39,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x4c,0x02,0x1c,0x02,0xda,0x00,0x0b, +0x00,0x11,0x00,0x3a,0x40,0x37,0x11,0x0e,0x08,0x03,0x02,0x01,0x06,0x02,0x01,0x01,0x4c,0x00,0x00,0x05,0x01,0x01,0x02,0x00,0x01,0x67,0x04,0x01,0x02,0x03,0x03,0x02,0x57,0x04,0x01,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x12,0x11,0x14,0x07,0x06,0x19,0x2b,0x17,0x35, +0x13,0x03,0x35,0x21,0x15,0x21,0x13,0x03,0x21,0x15,0x25,0x33,0x13,0x03,0x23,0x13,0x37,0xfa,0xfa,0x01,0xe5,0xfe,0xb4,0xfa,0xfa,0x01,0x4c,0xfe,0x46,0x41,0xfd,0xfd,0x41,0xfc,0xb4,0x32,0x01,0x94,0x01,0x96,0x32,0x2e,0xfe,0x62,0xfe,0x6c,0x2e,0x2e,0x01,0x98,0x01,0x9a,0xfe,0x66,0x00,0x00,0x00,0x01,0x00,0x1e,0x00,0x78,0x02,0x35, +0x02,0x58,0x00,0x15,0x00,0x28,0x40,0x25,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x15,0x00,0x14,0x21,0x25,0x21,0x05,0x06,0x19,0x2b,0x37,0x35,0x21,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x21,0x35,0x21,0x32,0x16,0x16,0x15,0x15, +0x14,0x06,0x06,0x23,0x1e,0x01,0x31,0x43,0x49,0x49,0x43,0xfe,0xcf,0x01,0x31,0x45,0x67,0x3a,0x3a,0x67,0x45,0x78,0x52,0x48,0x42,0x28,0x42,0x48,0x52,0x36,0x62,0x42,0x2c,0x41,0x63,0x36,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57, +0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x33,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xff,0xff,0x02,0x58,0xff,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x24,0x40,0x21,0x00,0x03,0x02,0x03, +0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x10,0x04,0x06,0x1a,0x2b,0x21,0x23,0x11,0x21,0x35,0x21,0x35,0x33,0x02,0x58,0x5a,0xfe,0x02,0x01,0xfe,0x5a,0x01,0x09,0x50,0xff,0x00,0x00,0x00,0x03,0x00,0x43,0xff,0x92,0x01,0xf4,0x03,0x3e,0x00,0x13, +0x00,0x16,0x00,0x1a,0x00,0x96,0xb5,0x15,0x01,0x02,0x03,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x33,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x07,0x08,0x71,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f, +0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x1b,0x40,0x32,0x00,0x05,0x04,0x05,0x85,0x00,0x08,0x07,0x08,0x86,0x06,0x01,0x04,0x00,0x03,0x02,0x04,0x03,0x67,0x0e,0x0a,0x02,0x02,0x0b,0x01,0x01,0x00,0x02,0x01,0x67,0x0c,0x01,0x00,0x07,0x07,0x00,0x57,0x0c,0x01,0x00,0x00,0x07,0x5f,0x0d,0x09,0x02,0x07,0x00,0x07,0x4f,0x59,0x40,0x1c,0x14, +0x14,0x00,0x00,0x1a,0x19,0x18,0x17,0x14,0x16,0x14,0x16,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x06,0x1f,0x2b,0x33,0x35,0x33,0x13,0x23,0x35,0x33,0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x33,0x11,0x21,0x07,0x23,0x37,0x01,0x35,0x07,0x17,0x23,0x03,0x33,0x50,0x39,0x5f,0x75,0x93,0x53,0xfe,0xf7,0x01, +0x27,0x25,0x46,0x25,0x37,0xfe,0xbd,0x28,0x46,0x28,0x01,0x2f,0x4e,0x4e,0x6c,0x5f,0xcb,0x52,0x01,0x02,0x52,0xe2,0x52,0x64,0x64,0xfd,0x26,0x6e,0x6e,0x01,0xa6,0xd4,0xd4,0x52,0xfe,0xfe,0x00,0x03,0x00,0x1d,0xff,0xf6,0x02,0x3b,0x02,0x30,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x3c,0x40,0x39,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, +0x69,0x05,0x01,0x03,0x02,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x61,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22, +0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xe9,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0x6f,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x01,0xb0,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0xfe,0x46,0x23,0x1e,0x1d,0x22, +0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x00,0x03,0x00,0x41,0x00,0x26,0x02,0x17,0x02,0x6f,0x00,0x1b,0x00,0x37,0x00,0x53,0x01,0x0c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x65,0x00,0x02,0x00,0x04,0x01,0x02,0x72,0x12,0x01,0x05,0x01,0x03,0x04,0x05,0x72,0x00,0x08,0x06,0x0a,0x07,0x08,0x72,0x13,0x01,0x0b,0x07,0x09, +0x0a,0x0b,0x72,0x00,0x0e,0x0c,0x10,0x0d,0x0e,0x72,0x14,0x01,0x11,0x0d,0x0f,0x10,0x11,0x72,0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59, +0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x1b,0x40,0x6b,0x00,0x02,0x00,0x04,0x00,0x02,0x04,0x80,0x12,0x01,0x05,0x01,0x03,0x01,0x05,0x03,0x80,0x00,0x08,0x06,0x0a,0x06,0x08,0x0a,0x80,0x13,0x01,0x0b,0x07,0x09,0x07,0x0b,0x09,0x80,0x00,0x0e,0x0c,0x10,0x0c,0x0e,0x10,0x80,0x14,0x01,0x11,0x0d,0x0f,0x0d,0x11,0x0f,0x80, +0x00,0x00,0x00,0x04,0x01,0x00,0x04,0x69,0x00,0x01,0x00,0x03,0x06,0x01,0x03,0x6a,0x00,0x06,0x00,0x0a,0x07,0x06,0x0a,0x69,0x00,0x07,0x00,0x09,0x0c,0x07,0x09,0x6a,0x00,0x0c,0x00,0x10,0x0d,0x0c,0x10,0x69,0x00,0x0d,0x11,0x0f,0x0d,0x59,0x00,0x0d,0x0d,0x0f,0x62,0x00,0x0f,0x0d,0x0f,0x52,0x59,0x40,0x2e,0x38,0x38,0x1c,0x1c,0x00, +0x00,0x38,0x53,0x38,0x53,0x50,0x4e,0x4b,0x49,0x46,0x45,0x42,0x40,0x3d,0x3b,0x1c,0x37,0x1c,0x37,0x34,0x32,0x2f,0x2d,0x2a,0x29,0x26,0x24,0x21,0x1f,0x00,0x1b,0x00,0x1b,0x23,0x23,0x13,0x23,0x23,0x15,0x06,0x1b,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x07,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x41,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18, +0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2e,0x2b,0x18,0x16,0x19,0x55,0x46,0x3c,0x26,0x39,0x2f,0x2b,0x17,0x16,0x19,0x01,0xd9,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f, +0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0xd7,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x18,0x20,0x18,0x18,0x15,0x1e,0x00,0x00,0x00,0x02,0x00,0x32,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x33, +0x40,0x30,0x0b,0x01,0x03,0x04,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x01,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x06,0x06,0x19,0x2b,0x33,0x03,0x33,0x17,0x33,0x37,0x33,0x03,0x27,0x16,0x16,0x17,0x36, +0x36,0x37,0x37,0x23,0xef,0xbd,0x5b,0x32,0xd9,0x32,0x5c,0xbe,0x60,0x0d,0x13,0x04,0x05,0x12,0x0d,0x36,0xb4,0x02,0xda,0xca,0xca,0xfd,0x26,0xeb,0x34,0x5a,0x17,0x17,0x59,0x34,0xda,0x00,0x00,0x03,0xff,0xf6,0x00,0x19,0x02,0x62,0x02,0x83,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x06,0x01,0x00,0x03,0x01,0x00, +0x69,0x00,0x03,0x07,0x01,0x02,0x05,0x03,0x02,0x69,0x00,0x05,0x04,0x04,0x05,0x59,0x00,0x05,0x05,0x04,0x61,0x08,0x01,0x04,0x05,0x04,0x51,0x19,0x18,0x0d,0x0c,0x01,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16, +0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x1c,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf1,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0xfe,0xf0,0x20,0x27,0x27,0x20,0x20,0x26,0x26,0x01,0xf7,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27, +0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0xef,0x27,0x1f,0x20,0x26,0x26,0x20,0x1f,0x27,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x21,0x40,0x1e,0x00,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x10,0x04, +0x06,0x1a,0x2b,0x13,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0xff,0x5a,0xff,0xfd,0xa8,0xff,0x02,0x58,0xfd,0xf8,0x50,0x50,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xbc,0x00,0x0c,0x00,0x10,0x00,0x39,0x40,0x36,0x06,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x05,0x01,0x02,0x03,0x02,0x85,0x00,0x03,0x04,0x04, +0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x00,0x0c,0x00,0x0c,0x18,0x11,0x07,0x06,0x18,0x2b,0x37,0x03,0x33,0x13,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x33,0x03,0x05,0x35,0x21,0x15,0xef,0xb3,0x5c,0x75,0x0c,0x11,0x04,0x04,0x12,0x0b,0x72,0x5b,0xb3,0xfe, +0xec,0x01,0xae,0xc8,0x01,0xf4,0xfe,0xc0,0x20,0x3e,0x11,0x11,0x3e,0x20,0x01,0x40,0xfe,0x0c,0xc8,0x50,0x50,0x00,0x00,0x00,0x00,0x06,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1a,0x00,0x25,0x00,0x32,0x00,0x3f,0x00,0x4b,0x00,0x40,0x40,0x3d,0x4a,0x46,0x42,0x3e,0x3a,0x36,0x30,0x2c,0x27,0x25,0x22,0x1e,0x1a,0x17, +0x13,0x0f,0x02,0x01,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x04,0x01,0x02,0x00,0x00,0x02,0x59,0x04,0x01,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x41,0x40,0x01,0x00,0x40,0x4b,0x41,0x4b,0x09,0x07,0x00,0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06, +0x03,0x16,0x16,0x17,0x26,0x26,0x35,0x35,0x06,0x06,0x07,0x25,0x14,0x06,0x07,0x36,0x36,0x37,0x37,0x26,0x26,0x27,0x13,0x17,0x36,0x36,0x35,0x34,0x27,0x07,0x06,0x06,0x07,0x16,0x16,0x25,0x14,0x16,0x17,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x06,0x01,0x32,0x37,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x16,0x01,0x2c,0x58,0x8d, +0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xd9,0x11,0x38,0x17,0x05,0x05,0x3c,0x60,0x1c,0x01,0x0c,0x06,0x05,0x18,0x37,0x12,0x62,0x1c,0x60,0x3c,0x55,0x3b,0x23,0x27,0x05,0x62,0x12,0x3e,0x1c,0x14,0x2e,0xfe,0x89,0x27,0x23,0x3b,0x0d,0x2d,0x14,0x1c,0x3e,0x12,0x62,0x05,0x01,0x04,0x3f,0x36,0x3b,0x0c,0x22,0x0c,0x0c,0x22,0x0c, +0x3b,0x36,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x96,0x06,0x1a,0x0e,0x1a,0x37,0x13,0x6b,0x09,0x42,0x32,0x12,0x13,0x37,0x1a,0x0e,0x1a,0x06,0x24,0x32,0x42,0x09,0xfe,0x9b,0x55,0x23,0x5f,0x37,0x1b,0x1b,0x25,0x07,0x10,0x04,0x14,0x35,0x53,0x37,0x5f,0x23,0x55,0x12,0x34,0x14,0x04,0x10,0x07,0x25, +0x1b,0xfe,0xe1,0x1a,0x56,0x11,0x3c,0x1a,0x1a,0x3b,0x12,0x56,0x1a,0x00,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x18,0x00,0x21,0x00,0x42,0x40,0x3f,0x00,0x01,0x07,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x08,0x01,0x04,0x00,0x00,0x04,0x59,0x08,0x01,0x04,0x04, +0x00,0x61,0x06,0x01,0x00,0x04,0x00,0x51,0x1a,0x19,0x11,0x10,0x01,0x00,0x1e,0x1d,0x19,0x21,0x1a,0x21,0x15,0x14,0x10,0x18,0x11,0x18,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x21,0x2e,0x02,0x03,0x32,0x36,0x36, +0x37,0x21,0x1e,0x02,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x43,0x6e,0x47,0x09,0x02,0x02,0x09,0x47,0x6e,0x43,0x43,0x6e,0x47,0x09,0xfd,0xfe,0x09,0x47,0x6e,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x39,0x63,0x40,0x40,0x63,0x39,0xfd,0xf8,0x39,0x63,0x40,0x40, +0x63,0x39,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x16,0x00,0x20,0x00,0x27,0x00,0x4e,0x40,0x4b,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x69,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x0a,0x01,0x06,0x00,0x00,0x06,0x59,0x0a,0x01,0x06,0x06,0x00,0x61, +0x08,0x01,0x00,0x06,0x00,0x51,0x22,0x21,0x11,0x10,0x01,0x00,0x25,0x24,0x21,0x27,0x22,0x27,0x1f,0x1e,0x1a,0x19,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26,0x26,0x01,0x14,0x17, +0x21,0x36,0x35,0x34,0x27,0x21,0x06,0x01,0x32,0x36,0x37,0x21,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4b,0x78,0x20,0x01,0xc6,0x20,0x78,0xfe,0xb1,0x04,0x02,0x00,0x04,0x04,0xfe,0x00,0x04,0x01,0x04,0x4b,0x78,0x20,0xfe,0x3a,0x20,0x78,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59, +0x58,0x8d,0x51,0x02,0x3a,0x47,0x3b,0x3b,0x47,0xfe,0xfc,0x1a,0x18,0x18,0x1a,0x1a,0x18,0x18,0xfe,0xe2,0x47,0x3b,0x3b,0x47,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x19,0x00,0x23,0x00,0x3a,0x40,0x37,0x22,0x21,0x14,0x13,0x04,0x03,0x02,0x01,0x4c,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x69,0x05,0x01,0x03, +0x00,0x00,0x03,0x59,0x05,0x01,0x03,0x03,0x00,0x61,0x04,0x01,0x00,0x03,0x00,0x51,0x1b,0x1a,0x01,0x00,0x1a,0x23,0x1b,0x23,0x17,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x17,0x01,0x26,0x23,0x22,0x06,0x06,0x01,0x32, +0x36,0x36,0x35,0x34,0x26,0x27,0x01,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x2f,0x28,0x01,0x21,0x36,0x3e,0x4a,0x76,0x44,0x01,0x04,0x4a,0x76,0x44,0x33,0x2b,0xfe,0xde,0x39,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x3c,0x66,0x23,0x01,0xaf,0x1a,0x44, +0x76,0xfe,0xb2,0x44,0x76,0x4a,0x3f,0x69,0x23,0xfe,0x4f,0x1e,0x00,0x03,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x08,0x01,0x05,0x02,0x04,0x05,0x67,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01, +0x00,0x02,0x00,0x51,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16, +0x27,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x56,0x01,0x40,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xdc,0x50,0x50,0x00,0x00,0x00, +0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x17,0x00,0x1f,0x00,0x27,0x00,0x2f,0x00,0x46,0x40,0x43,0x2d,0x2c,0x2b,0x25,0x24,0x23,0x1f,0x19,0x15,0x14,0x13,0x0b,0x03,0x02,0x01,0x4c,0x00,0x01,0x05,0x01,0x02,0x03,0x01,0x02,0x69,0x06,0x01,0x03,0x00,0x00,0x03,0x59,0x06,0x01,0x03,0x03,0x00,0x61,0x04,0x01, +0x00,0x03,0x00,0x51,0x29,0x28,0x11,0x10,0x01,0x00,0x28,0x2f,0x29,0x2f,0x10,0x17,0x11,0x17,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x17,0x37,0x26,0x26,0x13,0x17,0x36,0x36,0x35,0x34,0x26,0x27,0x05,0x14,0x16,0x17, +0x37,0x27,0x06,0x06,0x01,0x32,0x36,0x37,0x27,0x07,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x2e,0x51,0x21,0x9e,0x9f,0x20,0x50,0x04,0x9f,0x19,0x1b,0x1b,0x18,0xfe,0x2b,0x1a,0x18,0x9c,0x9c,0x18,0x1a,0x01,0x04,0x2d,0x4f,0x20,0x9e,0x9d,0x21,0x50,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51, +0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x1b,0x19,0x9d,0x9f,0x18,0x1a,0xfe,0xfb,0x9e,0x20,0x51,0x2e,0x2e,0x50,0x21,0x9f,0x2d,0x50,0x20,0x9c,0x9d,0x20,0x4f,0xfe,0xcf,0x1a,0x17,0x9f,0x9d,0x18,0x1b,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0x6c,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x42,0x40,0x3f,0x00,0x01,0x00,0x03, +0x05,0x01,0x03,0x69,0x00,0x05,0x08,0x01,0x04,0x02,0x05,0x04,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x21,0x22,0x26,0x26, +0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, +0x76,0x4a,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xcc,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x05,0xff,0xf6,0x00,0x14,0x02,0x62,0x02,0x80,0x00,0x0f,0x00,0x15,0x00,0x1b,0x00,0x21,0x00,0x27, +0x00,0x4b,0x40,0x48,0x17,0x15,0x02,0x02,0x01,0x27,0x1d,0x02,0x00,0x04,0x02,0x4c,0x00,0x01,0x02,0x01,0x85,0x06,0x01,0x00,0x04,0x00,0x86,0x07,0x03,0x02,0x02,0x04,0x04,0x02,0x57,0x07,0x03,0x02,0x02,0x02,0x04,0x5f,0x05,0x08,0x02,0x04,0x02,0x04,0x4f,0x1c,0x1c,0x16,0x16,0x01,0x00,0x23,0x22,0x1c,0x21,0x1c,0x21,0x16,0x1b,0x16, +0x1b,0x11,0x10,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x33,0x2e,0x02,0x27,0x07,0x35,0x0e,0x02,0x07,0x05,0x15,0x3e,0x02,0x37,0x21,0x23,0x1e,0x02,0x17,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x2d,0xd5, +0x08,0x3a,0x5b,0x38,0x58,0x38,0x5b,0x3a,0x08,0x01,0x2d,0x38,0x5b,0x3a,0x08,0xfe,0xd3,0xd5,0x08,0x3a,0x5b,0x38,0x14,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x5e,0x39,0x5b,0x3c,0x09,0xd9,0xd9,0x09,0x3c,0x5b,0x39,0x50,0xd9,0x09,0x3c,0x5b,0x39,0x39,0x5b,0x3c,0x09,0x00,0x00,0x00,0x00,0x01,0x00,0x28, +0x00,0x00,0x02,0x30,0x02,0xe4,0x00,0x0e,0x00,0x15,0x40,0x12,0x0e,0x0d,0x0c,0x0b,0x07,0x04,0x00,0x07,0x00,0x4a,0x00,0x00,0x00,0x76,0x15,0x01,0x06,0x17,0x2b,0x01,0x27,0x26,0x26,0x27,0x11,0x23,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x02,0x30,0xb4,0x10,0x16,0x02,0x50,0x04,0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0x01,0x99,0xa0, +0x0e,0x1c,0x07,0xfd,0x96,0x02,0x6a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0xed,0x02,0x1c,0x02,0xda,0x00,0x0e,0x00,0x26,0x40,0x23,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0c,0x11, +0x03,0x06,0x17,0x2b,0x13,0x37,0x21,0x11,0x07,0x11,0x34,0x36,0x37,0x01,0x27,0x01,0x06,0x06,0x23,0x4c,0x4f,0x01,0x81,0x53,0x05,0x05,0xfe,0x95,0x39,0x01,0x6e,0x0a,0x24,0x14,0x02,0x8b,0x4f,0xfe,0x7b,0x53,0x01,0x1a,0x10,0x22,0x0b,0xfe,0x94,0x39,0x01,0x6e,0x07,0x02,0x00,0x01,0x00,0x14,0x00,0x32,0x02,0x4e,0x02,0x62,0x00,0x0d, +0x00,0x30,0x40,0x2d,0x0c,0x01,0x00,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x11,0x13,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x37,0x21,0x35,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03, +0x01,0x0a,0x9e,0x1a,0x1a,0xfe,0x38,0x01,0xc3,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x32,0xc9,0x22,0x05,0x50,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0x00,0x00,0x00,0x00,0x01,0x00,0x2f,0x00,0x00,0x02,0x1c,0x01,0xed,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x37,0x21,0x32,0x16,0x17,0x01,0x37,0x01,0x26,0x26,0x35,0x11,0x17,0x11,0x21,0x4c,0x01,0x0f,0x14,0x24,0x0a,0xfe,0x92,0x39,0x01,0x6b,0x05,0x05,0x53,0xfe,0x7f,0x4f,0x02,0x07,0x01,0x6e,0x39,0xfe,0x94,0x0b,0x22,0x10,0x01,0x1a,0x53,0xfe,0x7b,0x00,0x00,0x00, +0x00,0x01,0x00,0x28,0xff,0xf6,0x02,0x30,0x02,0xda,0x00,0x0e,0x00,0x15,0x40,0x12,0x0b,0x08,0x04,0x03,0x02,0x01,0x00,0x07,0x00,0x49,0x00,0x00,0x00,0x76,0x19,0x01,0x06,0x17,0x2b,0x01,0x15,0x05,0x25,0x35,0x17,0x16,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x37,0x02,0x30,0xfe,0xfb,0xfe,0xfd,0xb6,0x0e,0x14,0x04,0x50,0x02,0x16,0x10, +0x01,0x41,0x6a,0xe1,0xe2,0x6b,0xa2,0x0c,0x1c,0x09,0x02,0x6a,0xfd,0x96,0x08,0x1b,0x0e,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0x00,0x02,0x29,0x01,0xed,0x00,0x0e,0x00,0x27,0x40,0x24,0x0a,0x09,0x08,0x04,0x03,0x05,0x01,0x4a,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, +0x00,0x0e,0x00,0x0c,0x11,0x03,0x06,0x17,0x2b,0x25,0x07,0x21,0x11,0x37,0x11,0x14,0x06,0x07,0x01,0x17,0x01,0x36,0x36,0x33,0x02,0x0c,0x4f,0xfe,0x7f,0x53,0x05,0x05,0x01,0x6b,0x39,0xfe,0x92,0x0b,0x23,0x14,0x4f,0x4f,0x01,0x85,0x53,0xfe,0xe6,0x10,0x22,0x0b,0x01,0x6c,0x39,0xfe,0x92,0x07,0x02,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, +0x00,0x32,0x02,0x44,0x02,0x62,0x00,0x0d,0x00,0x2a,0x40,0x27,0x02,0x01,0x03,0x02,0x01,0x4c,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x03,0x00,0x86,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x11,0x14,0x12,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21, +0x16,0x17,0x01,0x4e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x01,0xc3,0xfe,0x38,0x1a,0x1a,0x32,0x01,0x19,0x01,0x17,0xca,0x0d,0x14,0x05,0x50,0x05,0x22,0x00,0x00,0x00,0x01,0x00,0x3c,0x00,0xed,0x02,0x29,0x02,0xda,0x00,0x0e,0x00,0x20,0x40,0x1d,0x0c,0x0b,0x07,0x06,0x05,0x05,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01, +0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1a,0x30,0x02,0x06,0x18,0x2b,0x01,0x21,0x22,0x26,0x27,0x01,0x07,0x01,0x16,0x16,0x15,0x11,0x27,0x11,0x21,0x02,0x0c,0xfe,0xf1,0x14,0x23,0x0b,0x01,0x6e,0x39,0xfe,0x95,0x05,0x05,0x53,0x01,0x81,0x02,0x8b,0x02,0x07,0xfe,0x92,0x39,0x01,0x6c,0x0b,0x22,0x10,0xfe,0xe6,0x53,0x01,0x85,0x00, +0x00,0x01,0xff,0xb0,0x00,0x32,0x02,0xa8,0x02,0x62,0x00,0x17,0x00,0x35,0x40,0x32,0x12,0x05,0x02,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x17,0x00,0x17,0x12,0x14,0x14,0x12,0x13,0x07, +0x06,0x1b,0x2b,0x13,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x37,0x22,0x1a,0x1a,0x9e,0x68,0xdc,0xdb,0x69,0x9e,0x0a,0x19,0x0c,0x02,0x0a,0x0c,0x19,0x0a,0x9e,0x69,0xdb,0xdc,0x68,0x9e,0x1a,0x1a,0x01,0x22,0x05,0x22,0xc9,0x01,0x19,0x01,0x17,0xca,0x0d,0x14, +0x05,0x05,0x14,0x0d,0xca,0xfe,0xe9,0xfe,0xe7,0xc9,0x22,0x05,0x00,0x01,0x00,0x28,0xff,0x56,0x02,0x30,0x03,0x84,0x00,0x19,0x00,0x06,0xb3,0x19,0x0c,0x01,0x32,0x2b,0x37,0x35,0x17,0x16,0x16,0x17,0x11,0x06,0x06,0x07,0x07,0x35,0x25,0x05,0x15,0x27,0x26,0x26,0x27,0x11,0x36,0x36,0x37,0x37,0x15,0x05,0x28,0xb6,0x0e,0x14,0x04,0x04, +0x14,0x0e,0xb6,0x01,0x03,0x01,0x05,0xb4,0x10,0x16,0x02,0x02,0x16,0x10,0xb4,0xfe,0xfb,0x38,0x6b,0xa2,0x0c,0x1c,0x09,0x03,0x3a,0x09,0x1c,0x0c,0xa2,0x6b,0xe2,0xe1,0x6a,0xa0,0x0e,0x1c,0x07,0xfc,0xc6,0x08,0x1b,0x0e,0xa0,0x6a,0xe1,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0xa0,0x02,0x4e,0x01,0xbd,0x00,0x21,0x00,0x7d,0x40,0x0a, +0x11,0x01,0x02,0x03,0x14,0x01,0x06,0x00,0x02,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x08,0x01,0x07,0x01,0x04,0x06,0x07,0x72,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x1b,0x40,0x2a,0x08,0x01,0x07, +0x01,0x04,0x01,0x07,0x04,0x80,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x00,0x00,0x06,0x01,0x00,0x06,0x69,0x00,0x01,0x07,0x04,0x01,0x59,0x00,0x01,0x01,0x04,0x61,0x05,0x01,0x04,0x01,0x04,0x51,0x59,0x40,0x10,0x00,0x00,0x00,0x21,0x00,0x21,0x24,0x23,0x12,0x11,0x12,0x24,0x23,0x09,0x06,0x1d,0x2b,0x37,0x35,0x34,0x36,0x33, +0x32,0x1e,0x03,0x33,0x32,0x37,0x37,0x23,0x35,0x33,0x17,0x15,0x23,0x35,0x07,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x0a,0x4c,0x3a,0x23,0x2c,0x1d,0x15,0x17,0x11,0x1d,0x1c,0x55,0x8c,0xcd,0x46,0x50,0x4d,0x33,0x47,0x22,0x2c,0x1c,0x16,0x18,0x12,0x14,0x1f,0xa5,0x31,0x3d,0x4b,0x17,0x21,0x21,0x17,0x21,0x60,0x4e,0x46, +0xd7,0xa1,0x60,0x41,0x17,0x21,0x21,0x17,0x20,0x1a,0x31,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x25,0x00,0x7f,0x40,0x0c,0x14,0x02,0x02,0x01,0x07,0x15,0x01,0x02,0x06,0x01,0x02,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x29,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x06,0x05,0x71,0x00,0x02,0x00, +0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06,0x01,0x06,0x52,0x1b,0x40,0x28,0x04,0x01,0x00,0x02,0x00,0x85,0x0a,0x09,0x02,0x05,0x06,0x05,0x86,0x00,0x02,0x00,0x07,0x01,0x02,0x07,0x69,0x03,0x01,0x01,0x06,0x06,0x01,0x59,0x03,0x01,0x01,0x01,0x06,0x62,0x08,0x01,0x06, +0x01,0x06,0x52,0x59,0x40,0x12,0x00,0x00,0x00,0x25,0x00,0x25,0x23,0x23,0x21,0x13,0x11,0x23,0x23,0x21,0x13,0x0b,0x06,0x1f,0x2b,0x37,0x27,0x35,0x37,0x33,0x07,0x33,0x32,0x3e,0x02,0x33,0x32,0x1e,0x02,0x33,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x23,0x22,0x2e,0x02,0x23,0x22,0x0e,0x02,0x23,0x23,0x17,0x8d,0x83,0x83,0x5e,0x98, +0x34,0x11,0x1e,0x22,0x2b,0x1f,0x1f,0x2b,0x22,0x1e,0x11,0x47,0x98,0x69,0x79,0x79,0x68,0x6e,0x1e,0x24,0x2b,0x1c,0x1b,0x15,0x15,0x1b,0x1b,0x29,0x23,0x0d,0x6e,0x5f,0x91,0x46,0x91,0xa5,0x20,0x2b,0x20,0x20,0x2b,0x20,0xa5,0x91,0x46,0x91,0x74,0x20,0x29,0x20,0x20,0x29,0x20,0x74,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e, +0x01,0xc7,0x00,0x11,0x00,0x68,0xb6,0x04,0x03,0x02,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x22,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x06,0x01,0x00,0x05,0x05,0x00,0x71,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x1b,0x40,0x20,0x03,0x01,0x01,0x02,0x01,0x85, +0x06,0x01,0x00,0x05,0x00,0x86,0x04,0x01,0x02,0x05,0x05,0x02,0x57,0x04,0x01,0x02,0x02,0x05,0x60,0x08,0x07,0x02,0x05,0x02,0x05,0x50,0x59,0x40,0x10,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x11,0x11,0x11,0x13,0x11,0x09,0x06,0x1d,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x21,0x15,0x21,0x17,0x23,0x27, +0x69,0x82,0x5e,0x83,0x83,0x5f,0x83,0x81,0x81,0x61,0x88,0x01,0x0a,0xfe,0xf5,0x88,0x60,0x81,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x8c,0x50,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x11,0x00,0x61,0xb6,0x0f,0x0e,0x02,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x21,0x06,0x01,0x04, +0x03,0x03,0x04,0x70,0x07,0x01,0x01,0x00,0x00,0x01,0x71,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50,0x1b,0x40,0x1f,0x06,0x01,0x04,0x03,0x04,0x85,0x07,0x01,0x01,0x00,0x01,0x86,0x05,0x01,0x03,0x00,0x00,0x03,0x57,0x05,0x01,0x03,0x03,0x00,0x60,0x02,0x01,0x00,0x03,0x00,0x50, +0x59,0x40,0x0b,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x08,0x06,0x1e,0x2b,0x25,0x23,0x07,0x23,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x33,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0x81,0x81,0x60,0x88,0xfe,0xf5,0x01,0x0a,0x88,0x61,0x81,0x81,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0x8c,0x50,0x8c,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00, +0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x61,0xb7,0x0b,0x04,0x03,0x03,0x05,0x02,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x03,0x01,0x01,0x02,0x02,0x01,0x70,0x04,0x01,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x1b,0x40,0x1d, +0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x06,0x01,0x05,0x02,0x05,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0e,0x00,0x0e,0x12,0x11,0x11,0x13,0x11,0x07,0x06,0x1b,0x2b,0x37,0x17,0x23,0x27,0x35,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0x17,0x23,0x27,0x69,0x82, +0x5e,0x83,0x83,0x5f,0x83,0x01,0x00,0x7d,0x68,0x9c,0x9c,0x67,0x7d,0xeb,0x8c,0x91,0x46,0x91,0x8c,0x8c,0xb3,0xb5,0x8c,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0e,0x00,0x5a,0xb7,0x0c,0x0b,0x04,0x03,0x00,0x03,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1e,0x04,0x01,0x02,0x03,0x03,0x02,0x70,0x05,0x01,0x01, +0x00,0x00,0x01,0x71,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x1b,0x40,0x1c,0x04,0x01,0x02,0x03,0x02,0x85,0x05,0x01,0x01,0x00,0x01,0x86,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x60,0x00,0x00,0x03,0x00,0x50,0x59,0x40,0x09,0x13,0x11,0x11,0x12,0x11,0x10,0x06,0x06,0x1c,0x2b, +0x25,0x21,0x07,0x23,0x37,0x27,0x33,0x17,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x01,0xef,0xfe,0xff,0x7d,0x67,0x9c,0x9c,0x68,0x7d,0x01,0x00,0x83,0x5f,0x83,0x83,0x5e,0xeb,0x8c,0xb5,0xb3,0x8c,0x8c,0x91,0x46,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x32,0x40,0x2f,0x0a,0x09,0x08,0x05, +0x04,0x03,0x06,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x14,0x14,0x11,0x05,0x06,0x19,0x2b,0x33,0x35,0x33,0x11,0x07,0x35,0x37,0x33,0x17,0x15,0x27,0x11,0x33,0x15,0x6e,0x92,0x92,0x9c,0x46,0x9a, +0x92,0x92,0x50,0x01,0x6a,0x84,0x65,0x8b,0x8a,0x66,0x83,0xfe,0x97,0x50,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x5f,0x02,0x4e,0x01,0xc7,0x00,0x0d,0x00,0x60,0xb6,0x08,0x07,0x02,0x04,0x01,0x01,0x4c,0x4b,0xb0,0x09,0x50,0x58,0x40,0x1f,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x06,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x04,0x04, +0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x1b,0x40,0x1d,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x13,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x37,0x11, +0x33,0x15,0x21,0x27,0x33,0x17,0x15,0x07,0x23,0x37,0x21,0x15,0x0a,0x52,0x01,0x93,0x83,0x5f,0x83,0x83,0x5e,0x82,0xfe,0x6d,0x5f,0x01,0x68,0x8c,0x8c,0x91,0x46,0x91,0x8c,0x8c,0x00,0x00,0x00,0x01,0x00,0x6e,0x00,0x00,0x01,0xea,0x02,0x26,0x00,0x0d,0x00,0x2b,0x40,0x28,0x0b,0x0a,0x09,0x06,0x05,0x04,0x06,0x02,0x01,0x01,0x4c,0x00, +0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x14,0x14,0x11,0x10,0x04,0x06,0x1a,0x2b,0x13,0x21,0x15,0x23,0x11,0x37,0x15,0x07,0x23,0x27,0x35,0x17,0x11,0x23,0x6e,0x01,0x7c,0x92,0x92,0x9a,0x46,0x9c,0x92,0x92,0x02,0x26,0x50,0xfe,0x97,0x83,0x66,0x8a,0x8b,0x65,0x84, +0x01,0x6a,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x82,0x02,0x44,0x02,0x12,0x00,0x03,0x00,0x12,0x00,0x2e,0x40,0x2b,0x0b,0x01,0x05,0x02,0x01,0x4c,0x03,0x01,0x01,0x02,0x01,0x85,0x04,0x01,0x00,0x05,0x00,0x86,0x00,0x02,0x05,0x05,0x02,0x57,0x00,0x02,0x02,0x05,0x60,0x00,0x05,0x02,0x05,0x50,0x14,0x12,0x14,0x11,0x11,0x10,0x06,0x06, +0x1c,0x2b,0x25,0x23,0x11,0x33,0x05,0x21,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x21,0x02,0x44,0x55,0x55,0xfd,0xbc,0x01,0x57,0x05,0x15,0x0b,0x65,0x61,0xa0,0xa0,0x61,0x66,0x08,0x14,0x08,0xfe,0xa9,0x82,0x01,0x90,0xa0,0x02,0x14,0x0d,0x7d,0xc8,0xc8,0x80,0x0a,0x12,0x04,0x00,0x00,0x00,0x00,0x01,0x00,0x0a, +0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x3d,0x40,0x3a,0x01,0x01,0x04,0x01,0x01,0x4c,0x00,0x00,0x02,0x01,0x02,0x00,0x01,0x80,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x69,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x1e,0x00,0x1e,0x26,0x21, +0x24,0x33,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x23,0x16,0x16,0x17,0x17,0xaa,0xa0,0xa0,0x61,0x65,0x0a,0x16,0x05,0xcb,0x4b,0x5d,0x5d,0x4b,0x1e,0x1e,0x4d,0x74,0x41,0x41,0x74,0x4d,0xcb,0x08,0x14,0x08,0x66, +0x6e,0xc8,0xc8,0x7d,0x0d,0x14,0x02,0x50,0x46,0x45,0x51,0x50,0x3f,0x69,0x3e,0x46,0x68,0x38,0x04,0x12,0x0a,0x80,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x6e,0x02,0x4e,0x02,0xda,0x00,0x1e,0x00,0x37,0x40,0x34,0x1e,0x01,0x01,0x04,0x01,0x4c,0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x00,0x03,0x05, +0x02,0x03,0x69,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x60,0x00,0x01,0x04,0x01,0x50,0x14,0x24,0x21,0x26,0x24,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x23,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0xae,0x61,0x66, +0x08,0x14,0x08,0xcb,0x4c,0x75,0x41,0x41,0x75,0x4c,0x1e,0x1e,0x4b,0x5d,0x5d,0x4b,0xcb,0x05,0x15,0x0b,0x65,0x61,0xa0,0x6e,0x80,0x0a,0x12,0x04,0x38,0x68,0x46,0x3e,0x69,0x3f,0x50,0x51,0x45,0x46,0x50,0x02,0x14,0x0d,0x7d,0xc8,0x00,0x01,0x00,0xff,0xff,0x4c,0x01,0xf4,0x03,0x47,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x03,0x02,0x01, +0x04,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x02,0x06,0x16,0x2b,0x17,0x11,0x17,0x15,0x27,0x11,0xff,0xf5,0xc3,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x00,0x00,0x01,0x00,0x0a,0xff,0xd9,0x02,0x4e,0x02,0x52,0x00,0x11,0x00,0x77,0x40,0x11,0x0d,0x0c,0x02,0x02,0x03,0x0e,0x05,0x02,0x01,0x02,0x10,0x0f, +0x02,0x00,0x01,0x03,0x4c,0x4b,0xb0,0x0b,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00, +0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x11,0x00,0x11,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x05,0x37,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x27,0x33,0x17,0x15,0x07,0x17,0x15,0x07,0x01,0x8b,0x62,0xfe,0x1d, +0x01,0xe3,0x62,0x62,0xfe,0x1d,0x01,0xe3,0x62,0x62,0x61,0x61,0x61,0x61,0x27,0x77,0x50,0x77,0x74,0x50,0x77,0x7d,0x44,0x7a,0x7d,0x44,0x7d,0x00,0x00,0x02,0xff,0xf6,0xff,0x4c,0x02,0x62,0x03,0x47,0x00,0x05,0x00,0x0b,0x00,0x24,0x40,0x21,0x0a,0x09,0x08,0x07,0x04,0x03,0x02,0x01,0x08,0x00,0x4a,0x03,0x01,0x02,0x03,0x00,0x00,0x76, +0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x00,0x05,0x00,0x05,0x04,0x06,0x16,0x2b,0x05,0x11,0x17,0x15,0x27,0x11,0x23,0x11,0x07,0x35,0x37,0x11,0x01,0x6d,0xf5,0xc3,0xe6,0xc3,0xf5,0xb4,0x03,0xfb,0xee,0x41,0xbd,0xfc,0x77,0x03,0x89,0xbd,0x41,0xee,0xfc,0x05,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d, +0x00,0x6c,0xb6,0x0c,0x05,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, +0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x12,0x11,0x11,0x07,0x06,0x1b,0x2b,0x25,0x37,0x21,0x35,0x21,0x37,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x01,0x07,0x6a,0xfe, +0x8f,0x01,0xb0,0x3f,0x3f,0xfe,0x50,0x01,0x71,0x6a,0x69,0xe8,0xe7,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xff,0xf6,0xff,0x42,0x02,0x62,0x03,0x3d,0x00,0x05,0x00,0x0b,0x00,0x18,0x40,0x15,0x0b,0x0a,0x09,0x08,0x05,0x04,0x03,0x02,0x08,0x00,0x49,0x01,0x01,0x00,0x00,0x76,0x15,0x10,0x02,0x06,0x18,0x2b, +0x01,0x33,0x11,0x37,0x15,0x07,0x03,0x33,0x11,0x27,0x35,0x17,0x01,0x6d,0x32,0xc3,0xf5,0xb4,0x32,0xf5,0xc3,0x03,0x3d,0xfc,0x77,0xbd,0x41,0xee,0x03,0xfb,0xfc,0x05,0xee,0x41,0xbd,0x00,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x0d,0x00,0x65,0xb6,0x09,0x02,0x02,0x04,0x03,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40, +0x24,0x00,0x01,0x02,0x02,0x01,0x70,0x00,0x00,0x05,0x05,0x00,0x71,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x1b,0x40,0x22,0x00,0x01,0x02,0x01,0x85,0x00,0x00,0x05,0x00,0x86,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x68,0x00,0x04,0x05,0x05,0x04,0x57, +0x00,0x04,0x04,0x05,0x5f,0x00,0x05,0x04,0x05,0x4f,0x59,0x40,0x09,0x11,0x12,0x11,0x11,0x12,0x10,0x06,0x06,0x1c,0x2b,0x25,0x23,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x01,0x51,0x6a,0xe7,0xe8,0x69,0x6a,0x01,0x71,0xfe,0x50,0x3f,0x3f,0x01,0xb0,0xfe,0x8f,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x50,0x50,0x50, +0x00,0x02,0xff,0xb0,0x00,0x23,0x02,0xa8,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, +0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12, +0x11,0x11,0x12,0x09,0x06,0x1b,0x2b,0x37,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0x97,0xe7,0xe8,0x69,0x6a,0x01,0x2a,0x6a,0x69,0xe8,0xe7,0x6a,0x6a,0xfe,0xd6,0x6a,0xa9,0x01,0xa8,0x3f,0x3f,0xfe,0x58,0x3f,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87, +0xd7,0x50,0x50,0x50,0x00,0x01,0x00,0x00,0x00,0x23,0x02,0x58,0x02,0x71,0x00,0x10,0x00,0x7d,0xb5,0x0d,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x2d,0x00,0x05,0x04,0x04,0x05,0x70,0x00,0x06,0x07,0x07,0x06,0x71,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07, +0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x1b,0x40,0x2b,0x00,0x05,0x04,0x05,0x85,0x00,0x06,0x07,0x06,0x86,0x00,0x04,0x00,0x03,0x02,0x04,0x03,0x68,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x07,0x07,0x00,0x57,0x00,0x00,0x00,0x07,0x5f,0x08,0x01,0x07,0x00,0x07,0x4f,0x59,0x40,0x10,0x00,0x00, +0x00,0x10,0x00,0x10,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1d,0x2b,0x35,0x35,0x21,0x37,0x21,0x35,0x21,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x01,0x87,0x49,0xfe,0x30,0x01,0xd0,0x49,0xfe,0x79,0x01,0x4a,0x43,0x69,0xe8,0xe7,0x6a,0x43,0x78,0x4e,0x5d,0x4e,0x5d,0x4e,0x55,0xfe,0xd9,0xfe,0xd9,0x55,0x00,0x00, +0x00,0x02,0x00,0x14,0x00,0x00,0x02,0x44,0x03,0x16,0x00,0x0c,0x00,0x13,0x00,0x31,0x40,0x2e,0x0e,0x0c,0x02,0x03,0x4a,0x06,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x00,0x01,0x04,0x01,0x4f,0x0d,0x0d,0x0d,0x13,0x0d,0x13,0x11,0x14,0x13,0x33,0x10,0x07,0x06,0x1b, +0x2b,0x01,0x23,0x11,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x11,0x23,0x01,0x13,0x27,0x07,0x33,0x11,0x33,0x11,0x02,0x44,0x9b,0x21,0x1b,0x82,0x1b,0x21,0x9b,0x01,0x18,0xc0,0xbf,0xbf,0x70,0x9c,0x01,0xe5,0xfe,0x57,0x1b,0x21,0x21,0x1b,0x01,0xa9,0x01,0x31,0xfe,0xf4,0xcf,0xcf,0xfe,0x21,0x01,0xdf,0x00,0x00,0x00,0x00,0x02,0x00,0x00, +0x00,0x32,0x02,0x58,0x02,0x6c,0x00,0x0c,0x00,0x13,0x00,0x33,0x40,0x30,0x0e,0x0c,0x02,0x03,0x02,0x01,0x4c,0x0f,0x0b,0x02,0x01,0x4a,0x0d,0x00,0x02,0x00,0x49,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x11,0x16,0x25,0x21,0x04,0x06,0x1a,0x2b,0x25, +0x35,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x35,0x01,0x05,0x37,0x27,0x15,0x21,0x15,0x21,0x01,0x27,0xeb,0x1b,0x21,0x21,0x1b,0xeb,0x01,0x31,0xfe,0xfb,0xc7,0xc7,0xfe,0xdc,0x01,0x24,0x32,0xa4,0x21,0x1b,0x7a,0x1b,0x21,0xa4,0xfe,0xe3,0xbb,0xbb,0xba,0x6c,0x9c,0x00,0x01,0x00,0x0a,0xff,0xf6,0x02,0x4e,0x01,0x56,0x00,0x05, +0x00,0x06,0xb3,0x04,0x00,0x01,0x32,0x2b,0x05,0x25,0x35,0x05,0x25,0x15,0x01,0x2b,0xfe,0xdf,0x01,0x27,0x01,0x1d,0x0a,0xf6,0x69,0xf9,0xfa,0x69,0x00,0x03,0xff,0xf6,0x01,0xae,0x02,0x62,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x3e,0x40,0x3b,0x0c,0x01,0x04,0x01,0x01,0x4c,0x09,0x01,0x00,0x4a,0x07,0x05,0x02,0x04,0x01,0x04, +0x86,0x03,0x01,0x00,0x01,0x01,0x00,0x57,0x03,0x01,0x00,0x00,0x01,0x5f,0x02,0x06,0x02,0x01,0x00,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x33,0x15,0x21,0x23,0x35,0x33,0x01,0x13,0x13,0x23,0x27,0x07,0x0a,0xb4,0x01,0xb8,0xb4,0xb4, +0xfd,0xd5,0xf5,0xf5,0x5f,0x96,0x96,0x02,0x8a,0x50,0x50,0x50,0xfe,0xd4,0x01,0x2c,0xfe,0xd4,0xb9,0xb9,0x00,0x01,0x00,0x0a,0x00,0x78,0x02,0x4e,0x02,0x1c,0x00,0x16,0x00,0x2f,0x40,0x2c,0x16,0x01,0x01,0x02,0x01,0x4c,0x05,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00, +0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x16,0x31,0x27,0x10,0x04,0x06,0x1a,0x2b,0x25,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x01,0x9e,0x95,0x56,0x0c,0x1c,0x0c,0x13,0x26,0x0b,0xfe,0xbb,0x01,0x41,0x1a,0x26,0x06,0x05,0x18,0x10,0x57,0x91,0xb0,0x78, +0x68,0x0f,0x1c,0x08,0x04,0x01,0x03,0x6e,0x01,0x02,0x04,0x05,0x19,0x13,0x69,0xd2,0x00,0x01,0x00,0x05,0x00,0x64,0x02,0x4e,0x02,0x30,0x00,0x27,0x00,0x39,0x40,0x36,0x25,0x18,0x02,0x01,0x02,0x01,0x4c,0x09,0x01,0x01,0x01,0x4b,0x00,0x03,0x02,0x03,0x85,0x04,0x01,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02, +0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x01,0x00,0x23,0x21,0x17,0x13,0x0f,0x0c,0x00,0x27,0x01,0x27,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x37,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x17,0x17,0x07,0x06,0x01, +0x75,0x17,0x22,0x0e,0x08,0x1a,0x26,0x06,0x13,0x28,0x11,0xfe,0xf5,0x19,0x23,0x23,0x19,0x01,0x07,0x1a,0x2a,0x0c,0x0a,0x23,0x14,0x11,0x0d,0x22,0x17,0x1d,0x11,0xae,0xad,0x10,0x64,0x22,0x17,0x14,0x10,0x09,0x1e,0x27,0x04,0x04,0x01,0x03,0x20,0x17,0x17,0x20,0x02,0x02,0x04,0x09,0x23,0x15,0x13,0x10,0x14,0x17,0x20,0x19,0xcd,0xcf, +0x17,0x00,0x00,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b,0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01, +0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xbe,0x46,0xbe,0xe1,0x00,0x00,0x01,0x00,0x0a,0x00,0x69,0x02,0x4e,0x02,0x2b,0x00,0x06,0x00,0x26,0x40,0x23,0x06,0x01,0x00,0x01,0x01,0x4c,0x05,0x01,0x01,0x4a,0x00,0x01,0x00,0x49,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x11,0x11,0x02,0x06,0x18,0x2b, +0x25,0x35,0x21,0x35,0x21,0x35,0x17,0x01,0x8f,0xfe,0x7b,0x01,0x85,0xbf,0x69,0xaa,0x6e,0xaa,0xe1,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x07,0x01,0x01,0x00,0x11,0x08,0x01,0x03,0x02,0x01,0x12,0x01,0x03,0x02,0x03,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00, +0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x21,0x36,0x12,0x05,0x06,0x19,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x21,0x15,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0xa7,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0xe0, +0xfe,0x20,0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x50,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x00,0x01,0xff,0xd8,0x00,0x4b,0x02,0x80,0x02,0x49,0x00,0x16,0x00,0x3a,0x40,0x37,0x0f,0x01,0x01,0x02,0x15,0x0e,0x05,0x03,0x00,0x01,0x04,0x01,0x03,0x00,0x03,0x4c,0x00,0x02,0x01,0x02, +0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x17,0x21,0x27,0x05,0x06,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x35,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x01,0x4b,0x86,0x0a,0x1a, +0x09,0x0d,0x28,0x11,0xfe,0x20,0x01,0xe0,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x4b,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x50,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0x00,0x01,0xff,0xb0,0x00,0x4b,0x02,0xa8,0x02,0x49,0x00,0x29,0x00,0x43,0x40,0x40,0x10,0x07,0x02,0x01,0x00,0x24,0x1d,0x16,0x0f,0x08,0x01,0x06, +0x04,0x01,0x25,0x1c,0x02,0x03,0x04,0x03,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x5f,0x00,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x29,0x00,0x29,0x37,0x12,0x17,0x46,0x12,0x07,0x06,0x1b,0x2b,0x37,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36, +0x33,0x21,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x21,0x22,0x26,0x27,0x15,0x16,0x16,0x17,0x17,0x7f,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x29,0x10,0x01,0x68,0x11,0x28,0x0d,0x07,0x19,0x0d,0x89,0x69,0xcf,0xce,0x67,0x86,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xfe,0x98, +0x10,0x29,0x0d,0x07,0x19,0x0d,0x89,0x4b,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x02,0x02,0x03,0x02,0x09,0x06,0x1a,0x0f,0xa4,0xff,0xff,0xa5,0x0c,0x1a,0x07,0x09,0x01,0x03,0x04,0x01,0x09,0x06,0x1a,0x0f,0xa4,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0xff,0x79,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0xfe,0xd4,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0x1e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, +0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x01,0x4a,0xfe,0xb6,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x00,0xc3,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe, +0xd4,0x01,0xef,0xfe,0x11,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x02,0x0d,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0x39,0xfc,0xc7,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x02,0xb2,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x03,0xde,0xfc,0x22,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0x57,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0x04,0x83,0xfb,0x7d,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21, +0x11,0x02,0x58,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x58,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00, +0x00,0x01,0x00,0x00,0x03,0x57,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x35,0x21,0x15,0x02,0x58,0x03,0x57,0xa5,0xa5,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x4b, +0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0x96,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33,0x11,0x96,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x00,0xc8,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x33, +0x11,0xc8,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x01,0x77,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x77,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0xc2,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0xc2,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x0d,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x02,0x0d,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21, +0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00,0x01,0x02,0x0d,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x02,0x0d,0x4b,0xfe,0xd4,0x05,0x28,0xfa,0xd8,0x00,0x00, +0x00,0x01,0x00,0x00,0xfe,0xd4,0x01,0x2c,0x01,0x68,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x01,0x2c,0xfe,0xd4,0x02,0x58,0x01,0x68,0x00,0x03, +0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0xfd,0x6c,0x00,0x00,0x01,0x00,0x00,0x01,0x68,0x01,0x2c,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x11,0x11,0x21,0x11,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00, +0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01, +0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x11,0x11,0x21,0x19,0x02,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, +0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x01,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x02,0x58,0xfe,0xd4,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a, +0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x01,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0xfe,0xca,0x02,0x62,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x01,0x01,0x2c,0x01,0x68,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0x00,0x00,0x02,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01, +0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfd,0xa8,0x01,0x2c,0x01,0x68,0x02,0x94,0xfd,0x6c,0xfd,0x6c,0x02,0x94,0xfd,0x6c,0x00,0x00,0x00,0x01,0x00,0x00, +0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1d,0x40,0x1a,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x11,0x11,0x21,0x11,0x21,0x11,0x01,0x2c,0x01,0x2c,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x00,0x37,0x00,0x3c, +0xff,0x10,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b,0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73, +0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb,0x00,0x00,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35, +0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x02,0x1c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0xfd,0xe4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x6e,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1b,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x2b,0x00,0x2f,0x00,0x33,0x00,0x37,0x00,0x3b,0x00,0x3f,0x00,0x43,0x00,0x47,0x00,0x4b,0x00,0x4f,0x00,0x53,0x00,0x57,0x00,0x5b, +0x00,0x5f,0x00,0x63,0x00,0x67,0x00,0x6b,0x00,0x6f,0x00,0x73,0x00,0x77,0x00,0x7b,0x00,0x7f,0x00,0x83,0x00,0x87,0x00,0x8b,0x00,0x8f,0x00,0x93,0x00,0x97,0x00,0x9b,0x00,0x9f,0x00,0xa3,0x00,0xa7,0x00,0xab,0x00,0xaf,0x00,0xb3,0x00,0xb7,0x00,0xbb,0x00,0xbf,0x00,0xc3,0x00,0xc7,0x00,0xcb,0x00,0xcf,0x00,0xd3,0x00,0xd7,0x00,0xdb, +0x00,0xdf,0x00,0xe3,0x00,0xe7,0x00,0xeb,0x00,0xef,0x00,0xf3,0x00,0xf7,0x00,0xfb,0x00,0xff,0x01,0x03,0x01,0x07,0x01,0x0b,0x01,0x0f,0x01,0x13,0x01,0x17,0x01,0x1b,0x01,0x1f,0x01,0x23,0x01,0x27,0x01,0x2b,0x01,0x2f,0x01,0x33,0x01,0x37,0x01,0x3b,0x01,0x3f,0x01,0x43,0x01,0x47,0x01,0x4b,0x01,0x4f,0x01,0x53,0x01,0x57,0x01,0x5b, +0x01,0x5f,0x01,0x63,0x01,0x67,0x01,0x6b,0x01,0x6f,0x01,0x73,0x01,0x77,0x01,0x7b,0x01,0x7f,0x01,0x83,0x01,0x87,0x01,0x8b,0x01,0x8f,0x01,0x93,0x01,0x97,0x01,0x9b,0x01,0x9f,0x01,0xa3,0x01,0xa7,0x01,0xab,0x01,0xaf,0x01,0xb3,0x01,0xb7,0x00,0x00,0x01,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, +0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15, +0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15, +0x21,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x05,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x07,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x05,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x17,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x23,0x35,0x33,0x15,0x02,0x1c,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0xe0, +0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xf0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c, +0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0xf0,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xfe,0x20,0x3c,0x01,0xa4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0x3c,0x3c,0xfe,0x5c,0x3c,0x3c,0x3c,0x01,0x2c,0x3c,0xf0,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0x01,0x2c, +0x3c,0xb4,0x3c,0x78,0x3c,0xfe,0xd4,0x3c,0x01,0x2c,0x3c,0xfe,0xd4,0x3c,0xfe,0xd4,0x3c,0x01,0x68,0x3c,0xfe,0xd4,0x3c,0x3c,0x3c,0xb4,0x3c,0xfd,0xe4,0x3c,0x01,0x68,0x3c,0xfd,0xe4,0x3c,0xb4,0x3c,0x3c,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0x01,0x2c,0x3c,0x78,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c, +0xb4,0x3c,0x01,0x68,0x3c,0xb4,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0x78,0x3c,0x01,0x2c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x01,0xe0,0x3c,0xfe,0x5c,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0x78,0x3c,0xb4,0x3c,0xb4,0x3c,0xfe,0xd4,0x3c,0xb4,0x3c,0x03,0xc0,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x29,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x3d,0x00,0x41,0x00,0x45,0x00,0x49,0x00,0x4d,0x00,0x51,0x00,0x55, +0x00,0x59,0x00,0x5d,0x00,0x61,0x00,0x65,0x00,0x69,0x00,0x6d,0x00,0x71,0x00,0x75,0x00,0x79,0x00,0x7d,0x00,0x81,0x00,0x85,0x00,0x89,0x00,0x8d,0x00,0x91,0x00,0x95,0x00,0x99,0x00,0x9d,0x00,0xa1,0x00,0xa5,0x00,0xa9,0x00,0xad,0x00,0xb1,0x00,0xb5,0x00,0xb9,0x00,0xbd,0x00,0xc1,0x00,0xc5,0x00,0xc9,0x00,0xcd,0x00,0xd1,0x00,0xd5, +0x00,0xd9,0x00,0xdd,0x00,0x00,0x11,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15, +0x33,0x35,0x33,0x11,0x03,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23, +0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23, +0x07,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x15,0x33,0x35,0x23,0x05,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x07,0x33,0x35,0x23,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0xf0,0x3c,0x3c,0x78, +0x3c,0x3c,0x3c,0x3c,0xf0,0x3c,0x3c,0x78,0x3c,0x3c,0xf0,0x3c,0x3c,0xfe,0x98,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0x3c,0x3c,0x01,0x68,0x3c,0x3c,0x78,0x3c,0x3c,0x78,0x3c,0x3c,0xfe,0xd4, +0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xfa,0xd8,0x04,0x74,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, +0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0xb4,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, +0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x09,0x07,0x00,0x0f,0x01,0x0f,0x03,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, +0x59,0x58,0x8d,0x51,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, +0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51, +0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04, +0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d, +0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x3b,0x40,0x38,0x00,0x03, +0x04,0x02,0x04,0x03,0x02,0x80,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x69,0x06,0x01,0x02,0x00,0x00,0x02,0x59,0x06,0x01,0x02,0x02,0x00,0x61,0x05,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x17,0x16,0x15,0x14,0x10,0x1d,0x11,0x1d,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33, +0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x21,0x11,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0xfe,0xfc,0x4a,0x76,0x44,0x44,0x76,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x01,0x04, +0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x15,0x00,0x2f,0x40,0x2c,0x00,0x02,0x03,0x00,0x03,0x02,0x00,0x80,0x04,0x01,0x00,0x00,0x84,0x00,0x01,0x03,0x03,0x01,0x59,0x00,0x01,0x01,0x03,0x61,0x00,0x03,0x01,0x03,0x51,0x01,0x00,0x13,0x12,0x11,0x10,0x09,0x07,0x00, +0x0f,0x01,0x0f,0x05,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x21,0x11,0x22,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0xfe,0xa3,0x01,0x04,0x4a,0x76,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36, +0x01,0x04,0x44,0x76,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1d,0x00,0x23,0x00,0x3e,0x40,0x3b,0x1f,0x14,0x02,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x04,0x04,0x02,0x57,0x00,0x02,0x02,0x04,0x5f,0x06,0x01,0x04,0x02,0x04,0x4f,0x1e,0x1e, +0x01,0x00,0x1e,0x23,0x1e,0x23,0x1b,0x19,0x16,0x15,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x14,0x16,0x16,0x17,0x11,0x21,0x2e,0x02,0x23,0x22,0x06,0x06,0x05,0x15,0x3e,0x02,0x37,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c, +0x51,0x51,0x8c,0xfe,0xa3,0x3d,0x6a,0x44,0x01,0x1c,0x06,0x46,0x71,0x46,0x4a,0x76,0x44,0x01,0x1d,0x40,0x65,0x3f,0x06,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x01,0x36,0x46,0x71,0x46,0x06,0x01,0x1c,0x44,0x6a,0x3d,0x44,0x76,0x63,0xea,0x06,0x3f,0x65,0x40,0x00,0x00,0x08,0xff,0xf6,0x00,0x32,0x02,0x62, +0x02,0x9e,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x35,0x00,0x3b,0x00,0x47,0x00,0x48,0x40,0x45,0x13,0x0e,0x04,0x03,0x01,0x00,0x43,0x3d,0x39,0x38,0x33,0x31,0x2f,0x2b,0x2a,0x22,0x21,0x1b,0x1a,0x16,0x15,0x11,0x0f,0x0b,0x05,0x13,0x02,0x01,0x44,0x3b,0x34,0x03,0x03,0x02,0x03,0x4c,0x00,0x00,0x00,0x01,0x02,0x00, +0x01,0x69,0x00,0x02,0x03,0x03,0x02,0x59,0x00,0x02,0x02,0x03,0x61,0x00,0x03,0x02,0x03,0x51,0x47,0x45,0x41,0x3f,0x24,0x21,0x04,0x06,0x18,0x2b,0x13,0x36,0x33,0x32,0x17,0x07,0x26,0x26,0x23,0x22,0x06,0x07,0x07,0x36,0x37,0x17,0x06,0x07,0x25,0x37,0x16,0x17,0x07,0x26,0x05,0x34,0x37,0x17,0x06,0x06,0x15,0x14,0x16,0x17,0x07,0x26, +0x05,0x36,0x36,0x35,0x34,0x26,0x27,0x37,0x16,0x15,0x14,0x07,0x05,0x37,0x16,0x17,0x07,0x26,0x25,0x36,0x37,0x17,0x06,0x07,0x07,0x37,0x16,0x16,0x33,0x32,0x36,0x37,0x17,0x06,0x23,0x22,0xdb,0x25,0x2c,0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0xcb,0x29,0x4a,0x19,0x3d,0x23,0x01,0x66,0x19,0x4a,0x29,0x2c,0x23,0xfe,0x0a,0x0a, +0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x02,0x32,0x04,0x04,0x04,0x04,0x30,0x0a,0x0a,0xfd,0xc5,0x2c,0x23,0x3d,0x19,0x4a,0x01,0x69,0x3d,0x23,0x2c,0x29,0x4a,0xed,0x0d,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x02,0x94,0x0a,0x0a,0x30,0x04,0x04,0x04,0x04,0x60,0x4a,0x29,0x2c,0x23,0x3d,0x60,0x2c,0x29,0x4a,0x19,0x3d,0xc0, +0x2c,0x25,0x0d,0x10,0x22,0x12,0x12,0x21,0x11,0x0d,0x25,0x18,0x11,0x21,0x12,0x12,0x22,0x10,0x0d,0x25,0x2c,0x2c,0x25,0x4b,0x19,0x3d,0x23,0x2c,0x29,0x03,0x23,0x3d,0x19,0x4a,0x29,0x1d,0x30,0x04,0x04,0x04,0x04,0x30,0x0a,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x49,0x40,0x46, +0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x21,0x20,0x11,0x10,0x01,0x00,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00, +0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59, +0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, +0x37,0x59,0x35,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2f,0x00,0x3f,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00, +0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x31,0x30,0x21,0x20,0x11,0x10,0x01,0x00,0x39,0x37,0x30,0x3f,0x31,0x3f,0x29,0x27,0x20,0x2f,0x21,0x2f,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a, +0x76,0x44,0x44,0x76,0x4a,0x37,0x59,0x35,0x35,0x59,0x37,0x39,0x59,0x33,0x35,0x59,0x37,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x3f,0x35,0x59,0x37,0x37,0x59,0x35,0x33,0x59,0x39, +0x37,0x59,0x35,0x2f,0x27,0x44,0x2b,0x2b,0x44,0x27,0x27,0x44,0x2b,0x2b,0x44,0x27,0x00,0x02,0x00,0xb4,0x00,0xf5,0x01,0xa4,0x01,0xe5,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0xf5,0x44,0x34,0x35,0x43,0x43, +0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x09,0x02,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03, +0x00,0x07,0x00,0x08,0xb5,0x06,0x04,0x02,0x00,0x02,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x00,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0a,0xb7,0x0a, +0x08,0x06,0x04,0x02,0x00,0x03,0x32,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x17,0x27,0x37,0x17,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0xe8,0x8d,0x8d,0x8d,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0x8d,0x8d,0x8d,0x8d,0x00,0x00,0x02,0x00,0x3c,0x00,0x00,0x02,0x1c,0x02,0xd0,0x00,0x07, +0x00,0x1b,0x00,0x25,0x40,0x22,0x18,0x17,0x12,0x0e,0x0d,0x06,0x05,0x02,0x01,0x09,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x13,0x03,0x06,0x17,0x2b,0x33,0x03,0x35,0x13,0x33,0x13,0x15,0x03,0x27,0x33,0x36,0x36,0x37,0x37,0x35,0x27,0x26,0x26,0x27,0x23,0x06,0x06,0x07, +0x07,0x15,0x17,0x16,0x16,0xf0,0xb4,0xb4,0x7e,0xae,0xae,0x43,0x04,0x07,0x1b,0x0f,0x62,0x62,0x0f,0x1b,0x07,0x04,0x07,0x1c,0x0f,0x63,0x63,0x10,0x1b,0x01,0x44,0x47,0x01,0x45,0xfe,0xbb,0x47,0xfe,0xbc,0x3c,0x0e,0x36,0x1d,0xbb,0x1f,0xbc,0x1d,0x36,0x0e,0x0e,0x36,0x1d,0xbc,0x1f,0xbb,0x1e,0x35,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x02,0x58,0x3c,0x02,0x58,0xfd,0xa8,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00, +0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00, +0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x96,0x01,0x2c,0xd2,0x01,0x2c,0xfe,0xd4,0x00,0x00,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x03, +0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x37,0x11,0x21,0x11,0x27,0x33,0x35,0x23,0x96,0x01,0x2c,0xfa,0xc8,0xc8,0xd2,0x01,0x2c,0xfe, +0xd4,0x32,0xc8,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x29,0x40,0x26,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x00,0x00,0x03,0x57,0x04,0x01,0x03,0x03,0x00,0x5f,0x00,0x00,0x03,0x00,0x4f,0x04,0x04,0x04,0x07,0x04,0x07,0x12,0x11,0x10,0x05,0x06,0x19,0x2b,0x25,0x21,0x11, +0x21,0x03,0x11,0x21,0x11,0x02,0x58,0xfd,0xa8,0x02,0x58,0x32,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01, +0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0x04,0xfe,0xfc,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2b,0x40,0x28,0x06,0x01, +0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x03,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x21,0x11,0x02,0x58,0xfd,0xda,0x01,0xf4,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0x00,0x02,0x00,0x00, +0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x06,0x00,0x2c,0x40,0x29,0x06,0x01,0x00,0x02,0x01,0x4c,0x00,0x00,0x02,0x00,0x86,0x03,0x01,0x01,0x02,0x02,0x01,0x57,0x03,0x01,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x04,0x06,0x17,0x2b,0x01,0x11,0x21,0x11,0x05,0x21,0x11,0x02, +0x58,0xfd,0xa8,0x02,0x26,0xfe,0x0c,0x02,0x94,0xfd,0xa8,0x02,0x58,0x32,0xfe,0x0c,0x00,0x03,0x00,0x00,0x00,0x3c,0x02,0x58,0x02,0x94,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x31,0x40,0x2e,0x00,0x00,0x04,0x01,0x03,0x02,0x00,0x03,0x67,0x05,0x01,0x02,0x01,0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f, +0x00,0x00,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x35,0x11,0x21,0x11,0x25,0x33,0x11,0x23,0x21,0x23,0x11,0x33,0x02,0x58,0xfd,0xda,0xe1,0xe1,0x01,0xf4,0xe1,0xe1,0x3c,0x02,0x58,0xfd,0xa8,0x32,0x01,0xf4,0xfe,0x0c,0x00,0x00,0x01,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02, +0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x27,0x01,0x01,0x0a,0x01,0x36,0x01,0x36,0x3c,0x02,0x62,0xfd,0x9e,0x00,0x01,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x01,0x02,0x62,0x32,0x02,0x6c, +0xfe,0xca,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x0a,0xb7,0x00,0x00,0x00,0x76,0x11,0x01,0x06,0x17,0x2b,0x25,0x01,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0x32,0x02,0x62,0x00,0x01,0xff,0xf6,0x00,0x31,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x25,0x01,0x01,0x02, +0x58,0xfd,0x9e,0x02,0x62,0x31,0x01,0x37,0x01,0x36,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x3c,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x24,0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b, +0x27,0x01,0x01,0x25,0x21,0x03,0x0a,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x3c,0x02,0x62,0xfd,0x9e,0x32,0x01,0xbf,0x00,0x02,0x00,0x00,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x01,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0xc0,0xfe,0x40,0x32,0x02, +0x6c,0xfe,0xca,0xe3,0xe3,0xe3,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x94,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x01,0x21,0x01,0x13,0x21,0x01,0x2c,0xfe,0xca,0x02,0x6c,0xfe,0xca,0xe3,0xfe, +0x3a,0x32,0x02,0x62,0xfe,0x0f,0x01,0xbf,0x00,0x02,0xff,0xf6,0x00,0x32,0x02,0x58,0x02,0x9e,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x25,0x01,0x01,0x03,0x11,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x40,0x32,0x01,0x36,0x01,0x36,0xfd,0xe7,0x01,0xc6,0xe3,0x00,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x35,0x11,0x05,0x02,0x62,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x00,0x01,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x02,0x00,0x01,0x32,0x2b,0x2d,0x02,0x02,0x58,0xfd,0x9e,0x02,0x62,0xd2,0x96,0x96,0x00,0x00,0x02,0x00,0x00, +0x00,0xd2,0x02,0x62,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x35,0x11,0x05,0x05,0x25,0x25,0x02,0x62,0xfd,0xd0,0x01,0x8e,0xfe,0x72,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x00,0x00,0x00,0x02,0xff,0xf6,0x00,0xd2,0x02,0x58,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02, +0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x05,0x02,0x58,0xfd,0x9e,0x02,0x62,0x32,0xfe,0x72,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x15,0x40,0x12,0x01,0x01,0x00,0x4a,0x01,0x01,0x00,0x00,0x76,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x06,0x16,0x2b,0x37,0x13,0x13,0x96,0x96, +0x96,0xd2,0x01,0x36,0xfe,0xca,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xd2,0x01,0xcc,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x37,0x11,0x05,0x96,0x01,0x36,0xd2,0x01,0x2c,0x96,0x00,0x00,0x00,0x01,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x0f,0x40,0x0c,0x02,0x01,0x00,0x49,0x00,0x00,0x00,0x76, +0x10,0x01,0x06,0x17,0x2b,0x13,0x21,0x03,0x96,0x01,0x2c,0x96,0x01,0xfe,0xfe,0xca,0x00,0x01,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x06,0xb3,0x01,0x00,0x01,0x32,0x2b,0x01,0x11,0x25,0x01,0xc2,0xfe,0xca,0x01,0xfe,0xfe,0xd4,0x96,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xc2,0x02,0x08,0x00,0x02,0x00,0x05,0x00,0x24, +0x40,0x21,0x05,0x01,0x02,0x01,0x4a,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x04,0x03,0x00,0x02,0x00,0x02,0x03,0x06,0x16,0x2b,0x37,0x13,0x13,0x27,0x33,0x27,0x96,0x96,0x96,0xec,0xac,0x56,0xd2,0x01,0x36,0xfe,0xca,0x28,0xb2,0x00,0x00,0x02,0x00,0x96,0x00,0xd2,0x01,0xcc, +0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x05,0x03,0x01,0x00,0x02,0x32,0x2b,0x37,0x11,0x05,0x05,0x37,0x27,0x96,0x01,0x36,0xfe,0xf2,0xb2,0xb2,0xd2,0x01,0x2c,0x96,0x56,0x56,0x56,0x00,0x02,0x00,0x96,0x00,0xc8,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x18,0x40,0x15,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, +0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x25,0x03,0x21,0x07,0x37,0x23,0x01,0x2c,0x96,0x01,0x2c,0x96,0x56,0xac,0xc8,0x01,0x36,0xda,0xb2,0x00,0x00,0x02,0x00,0x8c,0x00,0xd2,0x01,0xc2,0x01,0xfe,0x00,0x02,0x00,0x05,0x00,0x08,0xb5,0x04,0x03,0x02,0x00,0x02,0x32,0x2b,0x2d,0x02,0x07,0x35,0x07,0x01,0xc2,0xfe, +0xca,0x01,0x36,0x28,0xb2,0xd2,0x96,0x96,0xec,0xac,0x56,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x45,0x40,0x42,0x0a,0x07,0x09,0x03,0x04,0x03,0x04,0x86,0x00,0x00,0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x06,0x01,0x02,0x03,0x03,0x02,0x57,0x06,0x01,0x02,0x02,0x03,0x5f,0x05,0x01, +0x03,0x02,0x03,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0x02,0x80,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e, +0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x03,0x02,0x86,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x00,0x03,0x04, +0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x01,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0xfe,0x8e,0x01,0xd6,0xfe,0xd4,0xaa,0x01,0x0e,0xfe,0x70,0x03,0x34,0x64,0xfc,0x68,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x02,0x00,0x96, +0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x07,0x05,0x06,0x03,0x02,0x04,0x02,0x86,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11, +0x08,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0x96,0x01,0xd6,0xfe,0x8e,0x64,0x01,0x0e,0xaa,0xfe,0x70,0x03,0x98,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, +0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x02,0x80,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x64,0xc8,0x64,0x64,0x00,0x00,0x00, +0x00,0x03,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x0f,0x00,0x43,0x40,0x40,0x04,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x09,0x05,0x08,0x03,0x02,0x06,0x01,0x02,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x06,0x06,0x00,0x00,0x0c,0x0f,0x0c, +0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x21,0x35,0x33,0x11,0x33,0x11,0x05,0x35,0x21,0x15,0x01,0x5e,0x64,0xaa,0xfd,0x80,0xaa,0x64,0xfe,0xf2,0x02,0x80,0x01,0xa4,0x02,0xbc,0xfd,0xa8,0x64,0x64,0x02,0x58,0xfd,0x44,0xc8,0x64,0x64, +0x00,0x02,0xff,0xec,0x00,0xdc,0x01,0xc2,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x04,0x01,0x01,0x03,0x01,0x85,0x00,0x03,0x07,0x01,0x05,0x00,0x03,0x05,0x67,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x06,0x01,0x02,0x00,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05, +0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x27,0x35,0x21,0x11,0x33,0x11,0x25,0x35,0x33,0x11,0x33,0x11,0x14,0x01,0x72,0x64,0xfe,0x2a,0xaa,0x64,0xdc,0x64,0x03,0x20,0xfc,0x7c,0xc8,0x64,0x02,0x58,0xfd,0x44,0x00,0x02,0x00,0x96,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x38,0x40,0x35,0x03,0x01,0x00,0x04,0x00,0x85, +0x00,0x04,0x07,0x01,0x05,0x01,0x04,0x05,0x67,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x06,0x01,0x02,0x01,0x02,0x4f,0x06,0x06,0x00,0x00,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x08,0x06,0x18,0x2b,0x37,0x11,0x33,0x11,0x21,0x15,0x25,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x01,0x72, +0xfe,0xf2,0x64,0xaa,0xdc,0x03,0x84,0xfc,0xe0,0x64,0xc8,0x02,0xbc,0xfd,0xa8,0x64,0x00,0x02,0x00,0x96,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x07,0x00,0x22,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06, +0x17,0x2b,0x01,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x04,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x0b,0x00,0x11,0x00,0x17,0x00,0x59,0x40,0x56,0x03,0x01,0x01,0x00,0x01,0x85,0x0f,0x0b,0x0e,0x03,0x08,0x07,0x08,0x86, +0x04,0x01,0x00,0x0d,0x05,0x0c,0x03,0x02,0x06,0x00,0x02,0x67,0x0a,0x01,0x06,0x07,0x07,0x06,0x57,0x0a,0x01,0x06,0x06,0x07,0x5f,0x09,0x01,0x07,0x06,0x07,0x4f,0x12,0x12,0x0c,0x0c,0x06,0x06,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x0c,0x11,0x0c,0x11,0x10,0x0f,0x0e,0x0d,0x06,0x0b,0x06,0x0b,0x0a,0x09,0x08,0x07,0x00, +0x05,0x00,0x05,0x11,0x11,0x10,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15,0x23,0x11,0x21,0x11,0x23,0x35,0x21,0x11,0x14,0xaa,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0xd4,0xaa,0x01,0x0e,0x01,0xa4,0x64,0x02,0x58,0xfd,0x44,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02, +0xd0,0x64,0xfd,0x94,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x03,0x01,0x00,0x02,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x05,0x01,0x86,0x00,0x02,0x09,0x01,0x04,0x06,0x02,0x04,0x67,0x00,0x06,0x05,0x05,0x06,0x57,0x00,0x06,0x06, +0x05,0x5f,0x00,0x05,0x06,0x05,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x01,0x11,0x33,0x11,0x01,0x35,0x33,0x11,0x33,0x11,0x03,0x11,0x23,0x35,0x21,0x11,0x01,0x5e,0x64,0xfe,0x2a,0xaa,0x64,0x64,0xaa,0x01, +0x0e,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x64,0x02,0x58,0xfd,0x44,0xfc,0xcc,0x02,0x6c,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x03,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x03,0x00,0x09,0x00,0x0f,0x00,0x48,0x40,0x45,0x02,0x01,0x00,0x03,0x00,0x85,0x0a,0x07,0x08,0x03,0x01,0x06,0x01,0x86,0x00,0x03,0x09,0x01,0x04,0x05, +0x03,0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x0a,0x0a,0x04,0x04,0x00,0x00,0x0a,0x0f,0x0a,0x0f,0x0e,0x0d,0x0c,0x0b,0x04,0x09,0x04,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x13,0x11,0x33,0x11,0x33,0x15,0x01,0x11,0x21,0x15, +0x23,0x11,0x96,0x64,0x64,0x64,0xaa,0xfe,0xf2,0x01,0x0e,0xaa,0xfe,0x70,0x05,0xf0,0xfa,0x10,0x03,0x34,0x02,0xbc,0xfd,0xa8,0x64,0xfc,0xcc,0x02,0xd0,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0b,0x00,0x2a,0x40,0x27,0x06,0x05,0x02,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01, +0x00,0x5f,0x04,0x02,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x02,0x80,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0xc2, +0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0x01,0xd6,0x64,0x64,0xfe,0x70, +0x02,0xd0,0x64,0xfc,0xcc,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x09,0x00,0x28,0x40,0x25,0x05,0x04,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06, +0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0x01,0xd6,0xaa,0x64,0x64,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00, +0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00, +0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x03,0xfc,0x00,0x09,0x00,0x2d,0x40,0x2a, +0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0xd0,0x64, +0x02,0x58,0xfd,0xa8,0xfc,0xcc,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11, +0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, +0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd, +0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11, +0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f, +0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfc,0xae,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29, +0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x03,0x52, +0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x03,0x00,0x0b,0x00,0x39,0x40,0x36,0x07,0x01,0x05,0x02,0x05,0x86, +0x00,0x00,0x06,0x01,0x01,0x03,0x00,0x01,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x04,0x01,0x02,0x03,0x02,0x4f,0x04,0x04,0x00,0x00,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x01,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x14,0x02,0x80, +0xfe,0x8e,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0x01,0xa4,0x64,0x64,0xfc,0xcc,0x02,0x6c,0x64,0x64,0xfd,0x94,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01, +0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0xfc,0x68,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x02,0x08,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03, +0x04,0x86,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x03,0x98,0x64, +0x64,0x64,0xfd,0x94,0x00,0x02,0x00,0x4b,0x01,0x0e,0x02,0x0d,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x77,0x96,0xfe,0x3e,0x96,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x02,0x00,0xc8,0xff,0x6f,0x01,0x90,0x03,0x69,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, +0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0x01,0xcc,0x01,0x9d,0xfe,0x63,0xfd,0xa3,0x01,0x9f,0xfe,0x61,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, +0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0x02,0x80,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, +0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0xc8,0xdc,0x01,0xa4,0xfe,0x70,0x02,0x9e,0xc8,0xfc,0x9a,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x11,0xc8,0x01,0xa4,0xdc,0xfe,0x70,0x03,0x66,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00, +0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x15,0x21,0x15,0x21,0x15,0x14,0x01,0x72,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x32,0x64,0x32,0x00,0x00,0x04,0x00,0x19,0x01,0x0e,0x02,0x3f,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, +0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, +0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x00,0x00,0x04,0x00,0xc8,0xff,0x3d,0x01,0x90,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, +0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, +0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x0e,0x02,0x6c, +0x01,0xd6,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x0e,0xc8,0xc8,0x00,0x00,0x03,0x00,0x25,0x01,0x0e,0x02,0x33,0x01,0xd6,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x0e,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x00,0x03,0x00,0xc8,0xff,0x25,0x01,0x90,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, +0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0x02,0x64,0x01,0x46,0xfe,0xba,0xfe,0x52,0x01,0x65,0xfe, +0x9b,0xfe,0x6f,0x01,0x46,0xfe,0xba,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x0e,0xc8, +0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11, +0x14,0xdc,0xc8,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x11,0x33,0x11,0x23, +0x11,0xfa,0x32,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x01,0x00,0xc8,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xc8,0xc8,0xfe, +0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, +0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd, +0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x03,0x01,0x01,0x04,0x00,0x01,0x57,0x00,0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11, +0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00, +0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8, +0x32,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, +0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00, +0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30, +0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x35, +0x33,0x35,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x01,0xa4,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f, +0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0xc8,0xdc,0xdc,0xc8,0xdc,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02, +0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc, +0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x02,0x01,0x02,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x05,0x01,0x00,0x01,0x00,0x4f, +0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xdc,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x0d, +0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11,0x34,0x26,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x16,0x15,0x11,0xfa,0x3a,0x69,0x48,0x23,0x23,0x66,0x96,0x53,0xfe,0x70,0x01, +0xe0,0x49,0x6c,0x3b,0x64,0x54,0x99,0x67,0xfe,0x20,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x0d,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x59,0x00,0x00,0x00,0x01,0x61,0x00,0x01,0x00,0x01,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x21,0x24,0x04,0x06,0x18,0x2b,0x13,0x11, +0x34,0x36,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x06,0x15,0x11,0xfa,0x53,0x97,0x65,0x23,0x23,0x47,0x6a,0x3a,0xfe,0x70,0x01,0xe0,0x67,0x99,0x54,0x64,0x3b,0x6c,0x49,0xfe,0x20,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x0d,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00, +0x00,0x00,0x02,0x61,0x03,0x01,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0c,0x14,0x21,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x06,0x23,0x14,0x23,0x48,0x69,0x3a,0x64,0x53,0x96,0x66,0x01,0x40,0x64,0x3b,0x6c,0x49,0x01,0xcc,0xfe,0x34,0x67,0x99,0x54,0x00,0x00,0x00,0x01,0x00,0xfa, +0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x26,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x03,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0c,0x0a,0x06,0x05,0x00,0x0d,0x01,0x0d,0x04,0x06,0x16,0x2b,0x01,0x22,0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x16,0x33,0x33,0x15,0x02,0x49, +0x65,0x97,0x53,0x64,0x3a,0x6a,0x47,0x23,0x01,0x40,0x54,0x99,0x67,0x01,0xcc,0xfe,0x34,0x49,0x6c,0x3b,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x0f,0x00,0x28,0x40,0x25,0x0e,0x0b,0x0a,0x09,0x06,0x03,0x02,0x01,0x08,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x04,0x03,0x02,0x02,0x02, +0x76,0x00,0x00,0x00,0x0f,0x00,0x0f,0x14,0x12,0x14,0x05,0x06,0x19,0x2b,0x07,0x35,0x01,0x01,0x35,0x33,0x13,0x13,0x33,0x15,0x01,0x01,0x15,0x23,0x03,0x03,0x14,0x01,0x0d,0xfe,0xf3,0x50,0xf0,0xf0,0x50,0xfe,0xf3,0x01,0x0d,0x50,0xf0,0xf0,0xa0,0x28,0x01,0xe0,0x01,0xe0,0x28,0xfe,0x57,0x01,0xa9,0x28,0xfe,0x20,0xfe,0x20,0x28,0x01, +0xa9,0xfe,0x57,0x00,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x05,0x01,0x35,0x33,0x01,0x15,0x02,0x1c,0xfd,0xd0,0x50,0x02,0x30,0xa0,0x03,0xe8, +0x28,0xfc,0x18,0x28,0x00,0x01,0xff,0xec,0xff,0x60,0x02,0x6c,0x03,0x70,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x07,0x35,0x01,0x33,0x15,0x01,0x14,0x02,0x30,0x50,0xfd,0xd0,0xa0,0x28,0x03,0xe8, +0x28,0xfc,0x18,0x00,0x00,0x02,0x00,0x46,0x01,0x40,0x02,0x12,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x01,0x35, +0x33,0x15,0x21,0x35,0x33,0x15,0x01,0x72,0xa0,0xfe,0x34,0xa0,0x01,0x40,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x02,0x00,0xfa,0xff,0x5b,0x01,0x5e,0x03,0x7d,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x05,0x01,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04, +0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x01,0xb8,0x01,0xc5,0xfe,0x3b,0xfd,0xa3,0x01,0xc7,0xfe,0x39,0x00,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe,0x70,0x03,0x34,0xfc,0xcc,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x07,0x00,0x26,0x40,0x23,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00, +0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x02,0x80,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01, +0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x72,0xfe,0x70,0x02,0xd0,0x64,0xfc,0xcc,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x01,0xa4,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01, +0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x21,0x11,0xfa,0x01,0x72,0xfe,0xf2,0xfe,0x70,0x03,0x34,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b, +0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x02,0x80,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x03,0x35,0x21,0x15,0x14,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x01,0xd6,0x00,0x07,0x00,0x28,0x40,0x25,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02, +0x02,0x03,0x5f,0x04,0x01,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x35,0x21,0x35,0x21,0x35,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0x01,0x0e,0x32,0x64,0x32,0xc8,0x00,0x00,0x04,0x00,0x19,0x01,0x40,0x02,0x3f,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x42, +0x40,0x3f,0x06,0x04,0x02,0x03,0x00,0x01,0x01,0x00,0x57,0x06,0x04,0x02,0x03,0x00,0x00,0x01,0x5f,0x0b,0x07,0x0a,0x05,0x09,0x03,0x08,0x07,0x01,0x00,0x01,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06, +0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x33,0x35,0x33,0x15,0x01,0xdb,0x64,0xfd,0xda,0x64,0x32,0x64,0x32,0x64,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x00,0x00,0x04,0x00,0xfa,0xff,0x3d,0x01,0x5e,0x03,0xa7,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x51,0x40,0x4e,0x00,0x00, +0x08,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x09,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x0a,0x01,0x05,0x06,0x04,0x05,0x67,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07,0x5f,0x0b,0x01,0x07,0x06,0x07,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07, +0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x06,0x17,0x2b,0x13,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0x03,0x35,0x33,0x15,0xfa,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x02,0xd0,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0xfe,0xcf,0xd7,0xd7,0x00,0x00,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c, +0x01,0xa4,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0xfa,0x01,0x72,0x01,0x40,0x64,0x64,0x00,0x00,0x03,0x00,0x25,0x01,0x40,0x02,0x33,0x01,0xa4,0x00,0x03,0x00,0x07,0x00,0x0b, +0x00,0x36,0x40,0x33,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x01,0x35,0x33,0x15,0x21,0x35,0x33,0x15, +0x33,0x35,0x33,0x15,0x01,0xb5,0x7e,0xfd,0xf2,0x7e,0x4a,0x7e,0x01,0x40,0x64,0x64,0x64,0x64,0x64,0x64,0x00,0x03,0x00,0xfa,0xff,0x25,0x01,0x5e,0x03,0xaa,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x3d,0x40,0x3a,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x03,0x02,0x85,0x07,0x01,0x03,0x04,0x03,0x85,0x00,0x04, +0x05,0x04,0x85,0x08,0x01,0x05,0x05,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xfa,0x64,0x64,0x64,0x64,0x64,0x02,0x58,0x01,0x52,0xfe,0xae,0xfe,0x69,0x01,0x4e,0xfe, +0xb2,0xfe,0x64,0x01,0x51,0xfe,0xaf,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0x01,0x40,0x03,0x20,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0xc8, +0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x07,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0xc8,0x32,0x64,0x32,0xfe,0x70,0x03,0x34,0x02,0xbc,0xfd,0x44,0xfc,0xcc,0x00, +0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e, +0x64,0x01,0x0e,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35, +0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x01,0x00,0xfa,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06, +0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x06,0x17,0x2b,0x13,0x11,0x33,0x11,0xfa,0x64,0xfe, +0x70,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11, +0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03, +0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70, +0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x37,0x40,0x34,0x00,0x03,0x02,0x03,0x85,0x07,0x01,0x06,0x05,0x06,0x86,0x04,0x01,0x02,0x01,0x05,0x02,0x57,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x05,0x5f,0x00,0x05,0x02,0x05,0x4f,0x00,0x00,0x00, +0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x33,0x35,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0xdc,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x32,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b, +0x05,0x01,0x04,0x03,0x04,0x86,0x00,0x02,0x01,0x03,0x02,0x57,0x00,0x01,0x00,0x00,0x03,0x01,0x00,0x67,0x00,0x02,0x02,0x03,0x5f,0x00,0x03,0x02,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x01,0x72,0xfe,0xf2,0xfe, +0x70,0x02,0xd0,0x64,0x32,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x01,0x04,0x03,0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11, +0x06,0x06,0x1a,0x2b,0x13,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0x01,0x0e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x02,0x03,0x02,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x03,0x01,0x04,0x03, +0x57,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd, +0x76,0xc8,0xfd,0x62,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x01,0xd6,0x00,0x09,0x00,0x2e,0x40,0x2b,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x02,0x00,0x01,0x57,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b, +0x13,0x11,0x23,0x35,0x21,0x15,0x33,0x15,0x23,0x11,0xc8,0xdc,0x01,0xa4,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x32,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x04,0x00,0x57,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00, +0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x14,0xdc,0xc8,0xdc,0xdc,0x01,0x0e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0x32,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31, +0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x01,0x03,0x00,0x01,0x57,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc, +0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x44,0x64,0xfd,0x30,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0d,0x00,0x36,0x40,0x33,0x00,0x03,0x04,0x03,0x85,0x07,0x01,0x06,0x00,0x06,0x86,0x00,0x04,0x02,0x00,0x04,0x57,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x04,0x04,0x00,0x5f,0x05,0x01, +0x00,0x04,0x00,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x11,0x11,0x11,0x11,0x11,0x08,0x06,0x1c,0x2b,0x13,0x11,0x23,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21,0x11,0xfa,0x32,0xdc,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0x32,0x64,0x02,0xbc,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c, +0x04,0x60,0x00,0x0b,0x00,0x2c,0x40,0x29,0x03,0x01,0x01,0x00,0x01,0x85,0x04,0x02,0x02,0x00,0x05,0x05,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xaa, +0x64,0x64,0x64,0xaa,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x01,0xff,0xec,0x01,0x40,0x01,0xc2,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x04,0x04,0x00,0x57,0x02,0x01,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11, +0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x14,0xaa,0x64,0x64,0x64,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfc,0xe0,0x00,0x00,0x00,0x00,0x01,0x00,0x96,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x29,0x40,0x26,0x02,0x01,0x00,0x01,0x00,0x85,0x03,0x01,0x01,0x04,0x04,0x01, +0x57,0x03,0x01,0x01,0x01,0x04,0x5f,0x05,0x01,0x04,0x01,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x96,0x64,0x64,0x64,0xaa,0x01,0x40,0x03,0x20,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c, +0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x21, +0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, +0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x14,0xdc,0xc8,0xdc,0x01,0x40,0x64,0x02,0xbc,0xfd,0x44,0x64,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x03,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x21,0x35,0x33,0x11,0x33,0x11,0x23,0x11,0xfa,0xfe,0xf2,0xdc,0xc8,0x32,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfc,0xe0,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x40,0x01,0x90,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f,0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x33,0x11,0x33,0x11,0x14,0xdc,0xc8,0x01,0x40,0x64,0x02,0xbc,0xfc,0xe0,0x00,0x00, +0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2c,0x40,0x29,0x00,0x01,0x02,0x01,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x02,0x00,0x00,0x02,0x57,0x00,0x02,0x02,0x00,0x5f,0x03,0x01,0x00,0x02,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x23,0x11,0x33,0x11, +0x33,0x15,0x21,0x11,0xfa,0x32,0xc8,0xdc,0xfe,0xf2,0xfe,0x70,0x02,0xd0,0x03,0x20,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0x01,0x40,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00, +0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0xc8,0xc8,0xdc,0x01,0x40,0x03,0x20,0xfd,0x44,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, +0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x00,0x01,0xff,0xec, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x27,0x40,0x24,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0x01, +0x0e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06, +0x06,0x1a,0x2b,0x13,0x11,0x23,0x35,0x21,0x11,0x33,0x11,0x33,0x11,0xc8,0xdc,0x01,0x0e,0x64,0x32,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xfc,0x9a,0x00,0x00,0x00,0x01,0xff,0xec,0x01,0x0e,0x01,0x5e,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x57,0x00,0x00,0x00,0x02,0x5f, +0x03,0x01,0x02,0x00,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0x64,0x01,0x0e,0xc8,0x02,0x8a,0xfc,0xae,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2d,0x40,0x2a,0x00,0x01,0x00,0x01,0x85,0x05,0x01,0x04,0x03,0x04,0x86,0x02, +0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x00,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x13,0x11,0x33,0x11,0x33,0x11,0x21,0x15,0x23,0x11,0xc8,0x32,0x64,0x01,0x0e,0xdc,0xfe,0x70,0x03,0x66,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x00,0x01,0x00,0xfa, +0x01,0x0e,0x02,0x6c,0x04,0x60,0x00,0x05,0x00,0x24,0x40,0x21,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x03,0x01,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0xfa,0x64,0x01,0x0e,0x01,0x0e,0x03,0x52,0xfd,0x76,0xc8,0x00, +0x00,0x02,0xff,0xec,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07, +0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x03,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x05,0x35,0x21,0x15,0x14,0x01,0x0e,0x64,0x01,0x0e,0xfd,0x80,0x02,0x80,0x01,0xa4,0x64,0x02,0x58,0xfd,0xa8,0x64,0xc8,0x64,0x64,0x00,0x01,0xff,0xec,0x00,0xdc,0x01,0x5e,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x03,0x02,0x03,0x85,0x00,0x02,0x00, +0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x04,0x04,0x00,0x57,0x00,0x00,0x00,0x04,0x5f,0x05,0x01,0x04,0x00,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x27,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x14,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xdc,0x64,0x64,0x64,0x02,0x58,0xfc,0x7c,0x00,0x00, +0x00,0x01,0x00,0xfa,0x00,0xdc,0x02,0x6c,0x04,0x60,0x00,0x09,0x00,0x2e,0x40,0x2b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x06,0x06,0x1a,0x2b,0x37,0x11,0x33,0x11, +0x21,0x15,0x21,0x15,0x21,0x15,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xdc,0x03,0x84,0xfd,0xa8,0x64,0x64,0x64,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x02,0x85,0x0a,0x09,0x02,0x07,0x00,0x07,0x86,0x05,0x03,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x03,0x02, +0x01,0x01,0x00,0x5f,0x08,0x06,0x02,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0x23,0x11,0x23,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xaa,0xaa,0x64,0x64,0xfe,0x70,0x02,0xd0, +0x64,0x02,0xbc,0xfd,0x44,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x02,0xd0,0xfd,0x30,0x00,0x02,0xff,0xec,0xfe,0x70,0x01,0xc2,0x04,0x60,0x00,0x07,0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x02,0x01,0x02,0x85,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f, +0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x11,0x33,0x11,0x96,0xaa,0xaa,0x64,0x64,0x64,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfa,0x10,0x05,0xf0,0xfa,0x10,0x00,0x02,0x00,0x96,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07, +0x00,0x0b,0x00,0x35,0x40,0x32,0x04,0x01,0x00,0x01,0x00,0x85,0x07,0x05,0x06,0x03,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x01,0x11,0x33,0x11,0x33,0x15,0x23, +0x11,0x21,0x11,0x33,0x11,0x01,0x5e,0x64,0xaa,0xaa,0xfe,0xd4,0x64,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x05,0xf0,0xfa,0x10,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01, +0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xdc,0xdc,0xc8,0xdc,0xdc,0xfe,0x70,0x02,0xd0,0x64,0x02,0xbc,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x90, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0xc8,0xdc,0xdc,0xc8,0xfe,0x70,0x02,0xd0, +0x64,0x02,0xbc,0xfa,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc8,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, +0x13,0x11,0x33,0x11,0x33,0x15,0x23,0x11,0xc8,0xc8,0xdc,0xdc,0xfe,0x70,0x05,0xf0,0xfd,0x44,0x64,0xfd,0x30,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f, +0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x9e,0xc8,0x02,0x8a,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e, +0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70, +0x02,0x9e,0xc8,0x02,0x8a,0xfa,0x10,0x00,0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b, +0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0x76,0xc8,0xfd,0x62,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x13,0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01, +0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x06,0x1f,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e, +0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0xfe,0x70,0x01,0x5e,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x67,0x00, +0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x11,0x21,0x35,0x21,0x35,0x21,0x35,0x21,0x11,0x33,0x11,0xfa,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0x64,0xfe,0x70,0x02,0x6c,0x64,0x64,0x64,0x02,0x58,0xfa,0x10,0x00, +0x00,0x01,0x00,0xfa,0xfe,0x70,0x02,0x6c,0x04,0x60,0x00,0x0b,0x00,0x34,0x40,0x31,0x00,0x00,0x01,0x00,0x85,0x06,0x01,0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06, +0x1b,0x2b,0x13,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0xfa,0x64,0x01,0x0e,0xfe,0xf2,0x01,0x0e,0xfe,0xf2,0xfe,0x70,0x05,0xf0,0xfd,0xa8,0x64,0x64,0x64,0xfd,0x94,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x00,0x02,0x03,0x01,0x01,0x00,0x02,0x01,0x67,0x04,0x01,0x00, +0x05,0x05,0x00,0x57,0x04,0x01,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x31,0x35,0x21,0x11,0x21,0x35,0x21,0x15,0x21,0x11,0x21,0x15,0x01,0x13,0xfe,0xed,0x02,0x58,0xfe,0xed,0x01,0x13,0x2d,0x02,0x80,0x2d,0x2d,0xfd,0x80,0x2d,0x00,0x00,0x00, +0x00,0x02,0x00,0x44,0xff,0xf5,0x02,0x2e,0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x4d,0x40,0x4a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x07,0x01,0x04,0x03,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x61,0x06, +0x01,0x00,0x04,0x00,0x51,0x16,0x15,0x01,0x00,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x08,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16, +0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34,0x3c,0x3c,0x34,0xbf,0x34,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x44,0xff,0x5b,0x02,0x2e, +0x02,0x30,0x00,0x14,0x00,0x22,0x00,0x26,0x00,0x5d,0x40,0x5a,0x11,0x0e,0x0a,0x03,0x04,0x05,0x01,0x4c,0x00,0x02,0x01,0x05,0x01,0x02,0x05,0x80,0x00,0x03,0x04,0x00,0x04,0x03,0x00,0x80,0x00,0x01,0x00,0x05,0x04,0x01,0x05,0x69,0x09,0x01,0x04,0x08,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x07,0x07,0x06,0x57,0x00,0x06,0x06,0x07, +0x5f,0x0a,0x01,0x07,0x06,0x07,0x4f,0x23,0x23,0x16,0x15,0x01,0x00,0x23,0x26,0x23,0x26,0x25,0x24,0x1d,0x1b,0x15,0x22,0x16,0x22,0x10,0x0f,0x0d,0x0c,0x08,0x06,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x37,0x33,0x03,0x13,0x23,0x27,0x23,0x06,0x06,0x27,0x32,0x36,0x35, +0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x07,0x35,0x21,0x15,0xf9,0x50,0x65,0x65,0x50,0x45,0x59,0x05,0x02,0x36,0x53,0x65,0x6c,0x55,0x3c,0x01,0x06,0x59,0x3f,0x2c,0x34,0x34,0x2c,0x2c,0x34,0x34,0x87,0x01,0xe0,0x0b,0x67,0x57,0xbf,0x57,0x67,0x58,0x48,0x96,0xfe,0xf5,0xfe,0xe5,0xa6,0x50,0x61,0x4e,0x3c,0x34,0xbf,0x34, +0x3c,0x3c,0x34,0xbf,0x34,0x3c,0xe8,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x01,0x00,0x01,0x85,0x00,0x04,0x03,0x04,0x86,0x02,0x01,0x00,0x03,0x03,0x00,0x57,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b, +0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x13,0x35,0x33,0x03,0x33,0x13,0x33,0x15,0x23,0x13,0x23,0x03,0x3c,0xbd,0xae,0x5f,0xae,0xc4,0xa6,0x97,0x5f,0x97,0x01,0x22,0x50,0x01,0xcc,0xfe,0x34,0x50,0xfe,0x70,0x01,0x90,0x00,0xff,0xff,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x02,0x26,0x03,0x3e,0x00,0x00,0x00,0x06,0x04,0xbb, +0x00,0x00,0x00,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x27,0x00,0x37,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04, +0x51,0x29,0x28,0x19,0x18,0x0d,0x0c,0x01,0x00,0x31,0x2f,0x28,0x37,0x29,0x37,0x21,0x1f,0x18,0x27,0x19,0x27,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26, +0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76, +0x4a,0x4a,0x76,0x44,0x44,0x76,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x01,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x00,0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f, +0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x53,0x40,0x50,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01,0x06,0x0a,0x01,0x04,0x02,0x06,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21,0x20,0x11,0x10,0x01,0x00,0x33, +0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x36,0x49,0x49,0x36,0x36,0x49,0x49,0x36,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x2f,0x32,0x51,0x8d,0x58, +0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x85,0x49,0x36,0x36,0x49,0x49,0x36,0x36,0x49,0x2e,0x2f,0x22,0x23,0x2e,0x2e,0x23,0x22,0x2f,0x00,0x03,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x29,0x00,0x4b,0x40,0x48,0x24,0x01,0x04,0x03, +0x29,0x28,0x27,0x21,0x04,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x11,0x10,0x01,0x00,0x26,0x25,0x23,0x22,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01, +0x0f,0x08,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44, +0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x01,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x95,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43,0x00,0x03,0xff,0xf6,0xff,0x92,0x02,0x62,0x03,0x3e,0x00,0x15, +0x00,0x1e,0x00,0x27,0x00,0x24,0x40,0x21,0x24,0x23,0x1b,0x1a,0x14,0x0c,0x09,0x01,0x08,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x15,0x00,0x15,0x1a,0x03,0x06,0x17,0x2b,0x05,0x35,0x2e,0x02,0x35,0x34,0x36,0x36,0x37,0x35,0x33,0x15,0x1e,0x02,0x15,0x14,0x06,0x06,0x07,0x15,0x01,0x14, +0x16,0x16,0x17,0x11,0x0e,0x02,0x05,0x34,0x26,0x26,0x27,0x11,0x3e,0x02,0x01,0x13,0x52,0x81,0x4a,0x4a,0x81,0x52,0x32,0x52,0x81,0x4a,0x4a,0x81,0x52,0xfe,0xe3,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x02,0x08,0x3d,0x6a,0x44,0x44,0x6a,0x3d,0x6e,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53,0x06,0xa1,0xa1,0x06,0x53,0x88,0x54,0x54,0x88,0x53, +0x06,0xa1,0x01,0xd6,0x46,0x71,0x46,0x06,0x02,0x06,0x06,0x46,0x71,0x46,0x46,0x71,0x46,0x06,0xfd,0xfa,0x06,0x46,0x71,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x23,0x00,0x41,0x40,0x3e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04, +0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x20,0x20,0x11,0x10,0x01,0x00,0x20,0x23,0x20,0x23,0x22,0x21,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x09,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35, +0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xce,0x02,0x30,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44, +0x76,0x4a,0x4a,0x76,0x44,0xfe,0xf7,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x8c,0x00,0x68,0x01,0xcc,0x02,0x26,0x00,0x03,0x00,0x07,0x00,0x33,0x40,0x30,0x00,0x02,0x01,0x03,0x01,0x02,0x03,0x80,0x05,0x01,0x03,0x03,0x84,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04,0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00, +0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x01,0x13,0x33,0x03,0x8c,0x01,0x40,0xfe,0xd9,0x50,0x82,0x82,0x01,0xdb,0x4b,0x4b,0xfe,0x8d,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0x00,0x04,0x00,0x32,0x00,0x00,0x02,0x26,0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x24,0x00,0x42, +0x40,0x3f,0x09,0x01,0x05,0x06,0x05,0x86,0x03,0x01,0x01,0x08,0x02,0x07,0x03,0x00,0x04,0x01,0x00,0x69,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x00,0x06,0x04,0x06,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x21,0x20,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x06, +0x16,0x2b,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x33,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36,0x37,0x13,0x21,0x13,0x16,0x16,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xc1,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xca,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d, +0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfc,0xcf,0x02,0xda,0xfd,0x26,0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11,0x00,0x42,0x40,0x3f,0x0f,0x0c,0x02,0x00, +0x06,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x00,0x06,0x05,0x06,0x00,0x05,0x80,0x08,0x01,0x05,0x05,0x84,0x03,0x01,0x01,0x06,0x06,0x01,0x57,0x03,0x01,0x01,0x01,0x06,0x5f,0x07,0x01,0x06,0x01,0x06,0x4f,0x00,0x00,0x11,0x10,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06,0x1b,0x2b,0x05,0x35,0x23,0x03, +0x33,0x35,0x33,0x15,0x33,0x03,0x23,0x15,0x03,0x03,0x23,0x13,0x13,0x23,0x01,0x13,0x25,0xbc,0xe1,0x32,0xe1,0xbd,0x24,0x2d,0x04,0x72,0xa2,0x72,0x72,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0x01,0x21,0x01,0xd7,0xfe,0x29,0x01,0xd7,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0x92,0x02,0x26,0x03,0x3e,0x00,0x0b,0x00,0x0e,0x00,0x11, +0x00,0x40,0x40,0x3d,0x11,0x0e,0x02,0x06,0x01,0x01,0x4c,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x06,0x01,0x85,0x08,0x01,0x05,0x00,0x05,0x86,0x07,0x01,0x06,0x00,0x00,0x06,0x57,0x07,0x01,0x06,0x06,0x00,0x5f,0x04,0x01,0x00,0x06,0x00,0x4f,0x00,0x00,0x10,0x0f,0x0d,0x0c,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x09,0x06, +0x1b,0x2b,0x05,0x35,0x23,0x13,0x33,0x35,0x33,0x15,0x33,0x13,0x23,0x15,0x27,0x33,0x11,0x13,0x33,0x03,0x01,0x13,0xe1,0xbe,0x23,0x32,0x24,0xbd,0xe1,0xa3,0x72,0x30,0x73,0x73,0x6e,0x6e,0x02,0xda,0x64,0x64,0xfd,0x26,0x6e,0xbe,0x01,0xd3,0xfe,0x2d,0x01,0xd2,0x00,0x00,0x00,0x03,0x00,0x2d,0xff,0x5b,0x02,0x2b,0x02,0xda,0x00,0x03, +0x00,0x0c,0x00,0x10,0x00,0x3c,0x40,0x39,0x09,0x01,0x02,0x00,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x05,0x01,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x06,0x01,0x04,0x03,0x04,0x4f,0x0d,0x0d,0x00,0x00,0x0d,0x10,0x0d,0x10,0x0f,0x0e,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x07,0x06, +0x17,0x2b,0x33,0x13,0x33,0x13,0x25,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x35,0x21,0x15,0x32,0xbe,0x79,0xbd,0xfe,0x7c,0x01,0x15,0x67,0x0d,0x12,0x05,0x04,0x13,0x0d,0xdb,0x01,0xfe,0x02,0xda,0xfd,0x26,0x50,0x01,0x9f,0x34,0x5a,0x17,0x16,0x5a,0x34,0xfd,0x6b,0x4b,0x4b,0x00,0x00,0x00,0x03,0x00,0x32,0x00,0x00,0x02,0x26, +0x03,0xb1,0x00,0x19,0x00,0x1d,0x00,0x26,0x00,0x97,0x4b,0xb0,0x14,0x50,0x58,0x40,0x35,0x00,0x05,0x03,0x01,0x04,0x05,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08, +0x5f,0x00,0x08,0x06,0x08,0x4f,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x0a,0x01,0x07,0x08,0x07,0x86,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x09,0x01,0x00,0x06,0x04,0x00,0x6a,0x00,0x06,0x08,0x08,0x06,0x57,0x00,0x06,0x06,0x08,0x5f,0x00,0x08,0x06,0x08,0x4f, +0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x23,0x22,0x1a,0x1d,0x1a,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x06,0x16,0x2b,0x01,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x03,0x03,0x21,0x03,0x27,0x36,0x36, +0x37,0x13,0x21,0x13,0x16,0x16,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xad,0xbc,0x01,0xf4,0xbd,0x3c,0x04,0x13,0x0d,0x65,0xfe,0xec,0x69,0x0d,0x11,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0xfc,0xd1,0x02,0xda,0xfd,0x26, +0x46,0x17,0x59,0x34,0x01,0xa0,0xfe,0x5f,0x34,0x58,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0x5b,0x02,0x62,0x02,0x9f,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x27,0x40,0x24,0x07,0x06,0x05,0x03,0x02,0x01,0x06,0x00,0x4a,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x08,0x08,0x08,0x0b,0x08,0x0b, +0x19,0x03,0x06,0x17,0x2b,0x25,0x09,0x02,0x05,0x37,0x27,0x07,0x03,0x35,0x21,0x15,0x01,0x2c,0xfe,0xca,0x01,0x36,0x01,0x36,0xfe,0xca,0xe8,0xe8,0xe8,0x30,0x02,0x30,0x32,0x01,0x36,0x01,0x37,0xfe,0xc9,0xe8,0xe8,0xe9,0xe9,0xfd,0xf3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58, +0x00,0x00,0x02,0x06,0x04,0x27,0x00,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x17,0x00,0x28,0x40,0x25,0x16,0x0d,0x0a,0x01,0x04,0x03,0x00,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x03,0x00,0x85,0x04,0x01,0x03,0x03,0x76,0x00,0x00,0x00,0x17,0x00,0x17,0x15,0x15,0x15,0x05,0x06,0x19,0x2b,0x05,0x35, +0x26,0x26,0x35,0x11,0x33,0x11,0x14,0x16,0x17,0x11,0x33,0x11,0x36,0x36,0x35,0x11,0x33,0x11,0x14,0x06,0x07,0x15,0x01,0x13,0x5a,0x69,0x32,0x4e,0x43,0x32,0x43,0x4e,0x32,0x69,0x5a,0x6e,0xc9,0x08,0x75,0x5e,0x01,0x40,0xfe,0xbb,0x47,0x5a,0x08,0x02,0xb6,0xfd,0x4a,0x08,0x5a,0x47,0x01,0x45,0xfe,0xc0,0x5e,0x75,0x08,0xc9,0x00,0x00, +0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x4b,0x40,0x48,0x00,0x00,0x01,0x00,0x85,0x07,0x01,0x01,0x0b,0x0c,0x02,0x08,0x09,0x01,0x08,0x69,0x0d,0x0a,0x02,0x09,0x06,0x01,0x02,0x03,0x09,0x02,0x69,0x05,0x01,0x03,0x04,0x04,0x03,0x57,0x05,0x01,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04, +0x4f,0x24,0x23,0x1b,0x1a,0x29,0x28,0x23,0x2b,0x24,0x2b,0x20,0x1f,0x1a,0x22,0x1b,0x22,0x14,0x21,0x11,0x11,0x12,0x14,0x21,0x10,0x0e,0x06,0x1e,0x2b,0x13,0x33,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x15,0x21,0x35,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x07,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x35, +0x17,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0xff,0x5a,0x05,0x35,0x43,0x43,0x35,0x05,0xff,0xfd,0xa8,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0x05,0x23,0x2d,0x2d,0x23,0x05,0x5f,0x23,0x2d,0x2d,0x23,0x05,0x02,0x58,0x91,0x43,0x35,0x34,0x44,0x87,0x50,0x50,0x87,0x44,0x34,0x35,0x43,0x28,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23, +0x2d,0xa0,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x5b,0x02,0x58,0x02,0x58,0x00,0x07,0x00,0x0b,0x00,0x37,0x40,0x34,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09, +0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x31,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x05,0x35,0x21,0x15,0xff,0x5a,0xff,0xfd,0xa8,0x02,0x58,0x50,0x02,0x08,0xfd,0xf8,0x50,0xa5,0x4b,0x4b,0x00,0x00,0x01,0x00,0x00,0xff,0xf6,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x2b,0x40,0x28,0x00,0x03,0x02,0x03,0x85,0x06,0x01,0x00, +0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x05,0x27,0x33,0x35,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x15,0x33,0x01,0x2d,0xc9,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x0a,0xa9,0xa6,0x50,0x01,0x45, +0xfe,0xbb,0x50,0xa6,0x00,0x02,0x00,0x50,0xff,0x5b,0x02,0x17,0x02,0x2d,0x00,0x2c,0x00,0x30,0x00,0x62,0x40,0x5f,0x07,0x01,0x05,0x04,0x01,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x07,0x05,0x06,0x05,0x07,0x06,0x80,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x05,0x07,0x04,0x05,0x67,0x00,0x06,0x0a,0x01, +0x00,0x08,0x06,0x00,0x69,0x00,0x08,0x09,0x09,0x08,0x57,0x00,0x08,0x08,0x09,0x5f,0x0b,0x01,0x09,0x08,0x09,0x4f,0x2d,0x2d,0x02,0x00,0x2d,0x30,0x2d,0x30,0x2f,0x2e,0x2a,0x29,0x27,0x24,0x20,0x1e,0x1d,0x1b,0x18,0x15,0x13,0x12,0x10,0x0d,0x00,0x2c,0x02,0x2c,0x0c,0x06,0x16,0x2b,0x05,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26, +0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x05,0x35,0x21,0x15,0x01,0x4b,0x34,0x5b,0x6c,0x41,0x46,0x3a,0x3b,0x64,0x58,0x2e,0x53,0x6b,0x09,0x5f,0x05,0x38,0x2b,0x2e,0x5d,0x30,0x2e,0x7b,0x83, +0x33,0x35,0x37,0x31,0x34,0x2e,0x3b,0x04,0x5f,0x0a,0x6d,0xfe,0xc2,0x01,0x9e,0x07,0x58,0x49,0x3e,0x47,0x05,0x04,0x04,0x3a,0x31,0x47,0x4f,0x4c,0x42,0x1d,0x21,0x4b,0x24,0x2a,0x4e,0x30,0x28,0x25,0x30,0x1f,0x1a,0x40,0x49,0x9e,0x4b,0x4b,0x00,0x00,0xff,0xff,0x00,0x55,0x00,0x41,0x02,0x03,0x03,0x09,0x02,0x26,0x04,0x1b,0x00,0x00, +0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0xff,0xff,0x00,0x37,0x00,0x00,0x02,0x26,0x02,0x26,0x02,0x06,0x02,0x7d,0x00,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x26,0x02,0x26,0x00,0x0d,0x00,0x11,0x00,0x3c,0x40,0x39,0x00,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x06,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x05,0x05,0x04, +0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0e,0x0e,0x01,0x00,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x0c,0x0a,0x07,0x06,0x05,0x04,0x00,0x0d,0x01,0x0d,0x08,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x11,0x23,0x35,0x21,0x11,0x14,0x16,0x33,0x33,0x15,0x05,0x35,0x21,0x15,0x01,0x9f,0x49,0x57,0xc8,0x01,0x22,0x26,0x20,0x87, +0xfe,0x16,0x01,0xea,0x55,0x46,0x01,0x39,0x52,0xfe,0x75,0x22,0x27,0x52,0xa5,0x4b,0x4b,0x00,0x00,0x00,0x00,0x04,0x00,0x7d,0x00,0xd2,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x23,0x00,0x2f,0x00,0x4d,0x40,0x4a,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0b,0x01, +0x06,0x04,0x04,0x06,0x59,0x0b,0x01,0x06,0x06,0x04,0x61,0x0a,0x01,0x04,0x06,0x04,0x51,0x25,0x24,0x19,0x18,0x0d,0x0c,0x01,0x00,0x2b,0x29,0x24,0x2f,0x25,0x2f,0x1f,0x1d,0x18,0x23,0x19,0x23,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0c,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x52,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23, +0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xa3,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x01,0xc2,0x00,0x0b,0x00,0x17,0x00,0x1b,0x00,0x41,0x40,0x3e, +0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x07,0x01,0x02,0x06,0x01,0x00,0x04,0x02,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x09,0x06,0x16,0x2b,0x25, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x03,0x35,0x21,0x15,0x01,0x2c,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x7d,0x01,0x40,0xd2,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23, +0x2d,0xfe,0x61,0x4b,0x4b,0x00,0x00,0x00,0x00,0x02,0x00,0x1e,0xff,0x92,0x02,0x3a,0x03,0x3e,0x00,0x14,0x00,0x1d,0x00,0x45,0x40,0x42,0x00,0x02,0x01,0x02,0x85,0x0a,0x01,0x07,0x00,0x07,0x86,0x03,0x01,0x01,0x09,0x01,0x04,0x05,0x01,0x04,0x69,0x0b,0x08,0x02,0x05,0x00,0x00,0x05,0x59,0x0b,0x08,0x02,0x05,0x05,0x00,0x61,0x06,0x01, +0x00,0x05,0x00,0x51,0x16,0x15,0x00,0x00,0x19,0x17,0x15,0x1d,0x16,0x1d,0x00,0x14,0x00,0x14,0x11,0x11,0x11,0x11,0x11,0x24,0x21,0x0c,0x06,0x1d,0x2b,0x05,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x11,0x03,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2a,0x30,0x65,0x77, +0x77,0x65,0x30,0x32,0xde,0xde,0xde,0xde,0x67,0x35,0x35,0x4c,0x59,0x59,0x6e,0x01,0x04,0x75,0x62,0x62,0x75,0xfa,0xfa,0x2d,0xfe,0xac,0x2d,0xfe,0xfc,0x01,0x31,0x01,0x54,0x5c,0x4e,0x4e,0x5c,0x00,0x00,0x00,0x00,0x01,0xff,0xec,0x00,0x00,0x02,0x58,0x02,0xda,0x00,0x0e,0x00,0x37,0x40,0x34,0x06,0x01,0x02,0x03,0x05,0x01,0x01,0x02, +0x04,0x01,0x00,0x01,0x03,0x4c,0x00,0x03,0x02,0x03,0x85,0x00,0x00,0x01,0x00,0x86,0x04,0x01,0x02,0x01,0x01,0x02,0x57,0x04,0x01,0x02,0x02,0x01,0x5f,0x05,0x01,0x01,0x02,0x01,0x4f,0x11,0x11,0x11,0x14,0x11,0x10,0x06,0x06,0x1c,0x2b,0x21,0x23,0x11,0x23,0x15,0x27,0x37,0x15,0x33,0x11,0x33,0x11,0x33,0x15,0x23,0x01,0x59,0x5a,0x77, +0x9c,0x9c,0x77,0x5a,0xff,0xff,0x01,0x45,0xa0,0xc8,0xc8,0xa0,0x01,0x45,0xfe,0xbb,0x50,0x00,0x00,0x00,0x00,0x01,0x00,0x37,0xff,0xf6,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x3a,0x40,0x37,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01, +0x01,0x00,0x61,0x04,0x05,0x02,0x00,0x01,0x00,0x51,0x01,0x00,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x06,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15,0x15,0x14, +0x06,0x23,0x22,0x26,0x27,0x06,0x06,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37,0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39, +0x32,0x32,0x39,0x00,0x00,0x02,0x00,0x37,0xff,0x5b,0x02,0x21,0x02,0x30,0x00,0x2a,0x00,0x2e,0x00,0x4a,0x40,0x47,0x28,0x01,0x01,0x02,0x01,0x4c,0x1e,0x1d,0x08,0x07,0x04,0x02,0x4a,0x00,0x02,0x01,0x02,0x85,0x03,0x01,0x01,0x04,0x07,0x02,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01, +0x06,0x05,0x06,0x4f,0x2b,0x2b,0x01,0x00,0x2b,0x2e,0x2b,0x2e,0x2d,0x2c,0x26,0x24,0x18,0x16,0x13,0x12,0x0f,0x0d,0x00,0x2a,0x01,0x2a,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x15,0x06,0x06,0x15,0x15,0x14,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x35,0x35,0x34,0x26,0x27,0x35,0x16,0x16,0x15, +0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x06,0x06,0x07,0x35,0x21,0x15,0xb5,0x3a,0x44,0x4b,0x41,0x1a,0x1d,0x3d,0x1d,0x21,0x4a,0x21,0x1d,0x3d,0x1f,0x1d,0x44,0x4d,0x43,0x3b,0x31,0x3f,0x07,0x07,0x3f,0xaf,0x01,0xea,0x0a,0x56,0x4b,0xcf,0x53,0x6d,0x0a,0x5f,0x05,0x3a,0x2c,0xd0,0x54,0x2c,0x28,0xc3,0xc3,0x28,0x2c,0x54,0xd0,0x29,0x37, +0x06,0x5f,0x0a,0x6a,0x51,0xcf,0x4b,0x56,0x39,0x32,0x32,0x39,0x9b,0x4b,0x4b,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05, +0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x31,0x40,0x2e,0x09,0x06,0x02,0x03,0x02,0x01,0x4c,0x00, +0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x08,0x07,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x21,0x01,0x05,0x21,0x01,0x02,0x58,0x32,0xfe,0x2a,0x01,0xd6,0xfe,0x0c,0x01,0xd8,0xfe,0x28,0x6f,0x03, +0xad,0xfc,0x53,0x03,0x80,0xfc,0xda,0x2d,0x03,0x29,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0c,0x00,0x1c,0x00,0x25,0x00,0x55,0x40,0x52,0x25,0x1f,0x0a,0x07,0x04,0x04,0x05,0x01,0x4c,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x09,0x01,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x0a,0x01,0x04,0x00, +0x07,0x06,0x04,0x07,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01,0x01,0x06,0x01,0x4f,0x0e,0x0d,0x05,0x04,0x00,0x00,0x23,0x21,0x1e,0x1d,0x16,0x14,0x0d,0x1c,0x0e,0x1c,0x09,0x08,0x04,0x0c,0x05,0x0c,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x32,0x16,0x17,0x35,0x21,0x15, +0x36,0x36,0x13,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x07,0x21,0x35,0x06,0x06,0x23,0x22,0x26,0x27,0x02,0x58,0xfe,0xd4,0x50,0x83,0x27,0xfe,0x0c,0x28,0x82,0x50,0x48,0x71,0x41,0x41,0x71,0x48,0x47,0x71,0x42,0x42,0x71,0xb3,0x01,0xf4,0x27,0x83,0x50,0x50,0x82,0x28,0x6f,0x03,0xad,0xfc,0x53, +0x03,0x04,0x46,0x3b,0xfd,0xfd,0x3c,0x45,0xfd,0xd9,0x42,0x71,0x47,0x47,0x71,0x42,0x42,0x71,0x47,0x47,0x71,0x42,0xb0,0xfe,0x3b,0x46,0x45,0x3c,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13,0x00,0x1f,0x00,0x4c,0x40,0x49,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x09,0x01,0x04,0x07, +0x05,0x04,0x69,0x00,0x07,0x0a,0x01,0x06,0x02,0x07,0x06,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x15,0x14,0x09,0x08,0x00,0x00,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x0f,0x0d,0x08,0x13,0x09,0x13,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0b,0x06,0x17,0x2b,0x15,0x11,0x21,0x11, +0x25,0x21,0x11,0x21,0x13,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x26,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0xde,0x29,0x22, +0x22,0x29,0x29,0x22,0x22,0x29,0xfe,0x5c,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x4c,0x40,0x49,0x0d,0x0a,0x02,0x06,0x02,0x01,0x4c,0x00,0x05,0x06,0x04,0x06,0x05,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02, +0x00,0x06,0x05,0x02,0x06,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x07,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00,0x13,0x12,0x0c,0x0b,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x21,0x35,0x01,0x21,0x11,0x03,0x23,0x03,0x13,0x36, +0x36,0x37,0x13,0x21,0x13,0x16,0x16,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xbd,0x79,0xbe,0xfe,0x05,0x0f,0x0e,0x70,0xfe,0xd9,0x6f,0x0e,0x14,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x37,0x37,0xfc,0xad,0x02,0xf7,0xfd,0x4b,0x02,0xb6,0xfd,0x90,0x17,0x5a,0x34,0x01,0x9f,0xfe,0x60,0x34,0x59,0x00,0x00,0x00,0x04,0x00,0x00, +0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x16,0x00,0x50,0x40,0x4d,0x0f,0x01,0x04,0x02,0x08,0x05,0x02,0x06,0x04,0x02,0x4c,0x00,0x02,0x03,0x04,0x03,0x02,0x04,0x80,0x00,0x00,0x08,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x04,0x00,0x06,0x05,0x04,0x06,0x67,0x00,0x05,0x01,0x01,0x05,0x57,0x00,0x05,0x05,0x01, +0x5f,0x07,0x01,0x01,0x05,0x01,0x4f,0x04,0x04,0x00,0x00,0x16,0x15,0x14,0x13,0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x13,0x33,0x13,0x11,0x01,0x21,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x21,0x35,0x21,0x02,0x58,0xfd,0xda,0xbe,0x79,0xbd,0xfe,0x73, +0x01,0x27,0x70,0x0d,0x12,0x05,0x04,0x12,0x0e,0xd6,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfd,0x14,0x02,0xb5,0xfd,0x4b,0x02,0xec,0xfd,0x3f,0x01,0x9f,0x34,0x5b,0x16,0x16,0x5a,0x34,0xfd,0xce,0x42,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x08,0x00,0x0c,0x00,0x11,0x00,0x37, +0x40,0x34,0x11,0x10,0x0f,0x0c,0x0b,0x0a,0x08,0x05,0x08,0x03,0x02,0x01,0x4c,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x0e,0x0d,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x17,0x11,0x21,0x11, +0x13,0x37,0x27,0x07,0x03,0x21,0x11,0x07,0x27,0x02,0x58,0xfe,0xd4,0xfa,0xfe,0x0c,0xfa,0xe8,0xe8,0xe8,0x12,0x01,0xf4,0xfa,0xfa,0x6f,0x03,0xad,0xfc,0x53,0x03,0x0e,0xfb,0x01,0x6d,0xfe,0x93,0xfe,0xdc,0xe8,0xe9,0xe9,0xfe,0x56,0x01,0x6e,0xfa,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x13, +0x00,0x17,0x00,0x23,0x00,0x5d,0x40,0x5a,0x00,0x00,0x0b,0x01,0x03,0x05,0x00,0x03,0x67,0x00,0x05,0x0c,0x01,0x04,0x02,0x05,0x04,0x69,0x00,0x02,0x00,0x07,0x09,0x02,0x07,0x67,0x00,0x09,0x0d,0x01,0x08,0x06,0x09,0x08,0x69,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x0a,0x01,0x01,0x06,0x01,0x4f,0x19,0x18,0x09,0x08, +0x04,0x04,0x00,0x00,0x1f,0x1d,0x18,0x23,0x19,0x23,0x17,0x16,0x15,0x14,0x0f,0x0d,0x08,0x13,0x09,0x13,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x21,0x11,0x21,0x17,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0xfe,0xe0,0x01,0xf4,0xfe,0x0c,0xfa,0x25,0x2e,0x2e,0x25,0x26,0x2d,0x2d,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x7c,0x01,0x84,0xfe,0xd4,0x29,0x22,0x22,0x29,0x29,0x22,0x22,0x29,0xfd,0xd9,0x01,0x84,0xf2,0x29,0x22,0x22, +0x29,0x29,0x22,0x22,0x29,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x47,0x40,0x44,0x14,0x13,0x11,0x10,0x04,0x04,0x03,0x12,0x01,0x02,0x04,0x02,0x4c,0x05,0x01,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00,0x06,0x01,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00, +0x02,0x02,0x01,0x60,0x07,0x01,0x01,0x02,0x01,0x50,0x00,0x00,0x1e,0x1d,0x19,0x18,0x0c,0x0b,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x11,0x14,0x06,0x07,0x33,0x36,0x36,0x37,0x37,0x15,0x07,0x27,0x35,0x17,0x16,0x16,0x17,0x33,0x26,0x26,0x35,0x11,0x23,0x02,0x58, +0xfd,0xda,0x01,0xf4,0xcd,0x03,0x02,0x0a,0x05,0x1b,0x16,0x60,0xc7,0xc9,0x5f,0x16,0x1d,0x04,0x0a,0x01,0x04,0xcd,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xc1,0x16,0x2d,0x0d,0x06,0x1d,0x12,0x51,0x69,0xa9,0xa9,0x69,0x50,0x12,0x1d,0x07,0x0d,0x2d,0x16,0x02,0x3f,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03, +0x00,0x0e,0x00,0x14,0x00,0x3e,0x40,0x3b,0x14,0x11,0x0e,0x0b,0x07,0x05,0x04,0x02,0x01,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x00,0x00,0x02,0x04,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x05,0x01,0x01,0x03,0x01,0x4f,0x00,0x00,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x00,0x03,0x00,0x03,0x11, +0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x16,0x16,0x17,0x36,0x36,0x37,0x13,0x35,0x21,0x15,0x11,0x21,0x11,0x03,0x23,0x03,0x02,0x58,0xfe,0xb4,0x0b,0x12,0x04,0x05,0x13,0x0a,0xd7,0xfe,0x0c,0x01,0xf4,0xdb,0x3e,0xdb,0x6f,0x03,0xad,0xfc,0x53,0xf0,0x1c,0x3a,0x11,0x11,0x3b,0x1b,0x02,0x49,0x47,0x3c,0xfc,0xe9,0x02,0x8f,0xfd, +0xa8,0x02,0x58,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x47,0x40,0x44,0x00,0x00,0x09,0x01,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x67,0x00,0x06,0x01,0x01,0x06,0x57,0x00,0x06,0x06,0x01,0x5f,0x08,0x01, +0x01,0x06,0x01,0x4f,0x04,0x04,0x00,0x00,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0a,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x21,0x11,0x01,0x21,0x35,0x21,0x11,0x21,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x01,0xf4,0xfe,0x0c,0x6f, +0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0xf7,0x01,0x09,0xfe,0x07,0xa0,0xfe,0x06,0x01,0x0a,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00, +0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x15,0x05,0x11,0x03,0x25,0x11,0x25,0x36,0x36,0x37,0x26,0x26,0x01,0x21,0x11,0x05,0x02,0x58,0xfd,0xda,0x01,0xf4,0x78,0xfe, +0x84,0x01,0x7c,0x13,0x21,0x08,0x09,0x22,0xfe,0x73,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0x7c,0xfa,0x01,0x76,0xfe,0x6e,0xbc,0xfe,0x59,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x47,0x01,0x79,0xfa,0x00,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x02,0x26,0x04,0x4d,0x00,0x28,0x01,0x06,0x05,0x85, +0x00,0x00,0x00,0x08,0xb1,0x00,0x02,0xb0,0x28,0xb0,0x35,0x2b,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x17,0x01,0x06,0x05,0x18,0x11,0x0a,0x03,0x03,0x06,0x0b,0x01,0x04,0x03,0x03,0x4c,0x00,0x05,0x07,0x06,0x07,0x05,0x06,0x80,0x00,0x04,0x03,0x02,0x03,0x04,0x02,0x80,0x00,0x00, +0x00,0x07,0x05,0x00,0x07,0x67,0x00,0x06,0x00,0x03,0x04,0x06,0x03,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1a,0x13,0x12,0x10,0x0f,0x08,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x23,0x22,0x26, +0x27,0x15,0x16,0x16,0x17,0x17,0x23,0x27,0x37,0x33,0x07,0x06,0x06,0x07,0x15,0x36,0x36,0x33,0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0x01,0xf4,0xf4,0x10,0x29,0x0d,0x09,0x1a,0x0a,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0d,0x19,0x07,0x0d,0x29,0x10,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x01,0x82,0x03,0x01,0x09,0x07,0x19,0x0d,0x6e, +0xc8,0xc8,0x6d,0x10,0x19,0x06,0x09,0x02,0x03,0x01,0x81,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x3b,0x40,0x38,0x14,0x13,0x0e,0x0a,0x09,0x06,0x05,0x07,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x00,0x03,0x01,0x01,0x03,0x57,0x00,0x03,0x03, +0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x04,0x04,0x00,0x00,0x12,0x11,0x04,0x07,0x04,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x25,0x35,0x01,0x05,0x11,0x05,0x06,0x06,0x07,0x16,0x16,0x03,0x21,0x35,0x25,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x84,0x01,0x7c,0xfe,0x84,0x13,0x21,0x08,0x09, +0x22,0x67,0x01,0xf4,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80,0xfe,0x89,0xfa,0x7d,0xfe,0x41,0xbc,0x01,0xa7,0xbb,0x09,0x0d,0x02,0x02,0x0e,0xfe,0x64,0x7e,0xfa,0x00,0x05,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1b,0x00,0x67,0x40,0x64,0x0f,0x01,0x05,0x03,0x02,0x03,0x05,0x02, +0x80,0x00,0x0c,0x0b,0x0a,0x0b,0x0c,0x0a,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x04,0x01,0x02,0x09,0x01,0x07,0x06,0x02,0x07,0x67,0x08,0x01,0x06,0x0d,0x01,0x0b,0x0c,0x06,0x0b,0x67,0x00,0x0a,0x01,0x01,0x0a,0x57,0x00,0x0a,0x0a,0x01,0x5f,0x0e,0x01,0x01,0x0a,0x01,0x4f,0x04,0x04,0x00,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16, +0x15,0x14,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x04,0x0b,0x04,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x10,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x03,0x07,0x33,0x11,0x21,0x11,0x21,0x37,0x01,0x33,0x37,0x23,0x05,0x33,0x35,0x23,0x01,0x21,0x11,0x21,0x07,0x23,0x37,0x23,0x02,0x58,0x8e,0x40,0x9c,0xfe,0x0c, +0x01,0x12,0x40,0xfe,0xae,0xba,0x3a,0xf4,0x01,0x00,0xf4,0xba,0xfe,0xc6,0x01,0xf4,0xfe,0xee,0x3e,0x46,0x3e,0x9c,0x6f,0x03,0xad,0xfc,0x53,0x03,0x26,0xaf,0x01,0x09,0xfe,0xf7,0xaf,0xfe,0x61,0xa0,0xa0,0xa0,0xfe,0x06,0x01,0x0a,0xaa,0xaa,0x00,0x00,0x00,0x04,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x1c, +0x00,0x2a,0x00,0xa7,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x3a,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x72,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b, +0x01,0x01,0x02,0x01,0x4f,0x1b,0x40,0x3b,0x0c,0x01,0x08,0x07,0x0a,0x07,0x08,0x0a,0x80,0x00,0x00,0x00,0x03,0x06,0x00,0x03,0x67,0x00,0x06,0x00,0x05,0x04,0x06,0x05,0x67,0x00,0x04,0x00,0x07,0x08,0x04,0x07,0x69,0x00,0x0a,0x0d,0x01,0x09,0x02,0x0a,0x09,0x69,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x0b,0x01,0x01, +0x02,0x01,0x4f,0x59,0x40,0x24,0x1e,0x1d,0x08,0x08,0x00,0x00,0x25,0x22,0x1d,0x2a,0x1e,0x29,0x08,0x1c,0x08,0x1c,0x1b,0x1a,0x14,0x12,0x11,0x0f,0x0b,0x09,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x0e,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x33,0x32, +0x16,0x16,0x15,0x14,0x06,0x06,0x07,0x15,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0x95,0x32,0x40,0x4b,0x4b,0x41,0x7d,0x7d,0x46,0x67,0x39,0x30,0x55,0x38,0x3d,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfd,0xbc, +0xb4,0x47,0x3b,0x3b,0x47,0x55,0x35,0x60,0x42,0x39,0x5b,0x36,0x03,0x69,0xd2,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x5a,0x40,0x57,0x0d,0x01,0x04,0x05,0x1a,0x13,0x0c,0x03,0x07,0x04,0x19,0x01,0x06,0x07,0x03,0x4c,0x00,0x05,0x03,0x04,0x03,0x05, +0x04,0x80,0x00,0x06,0x07,0x02,0x07,0x06,0x02,0x80,0x00,0x00,0x00,0x03,0x05,0x00,0x03,0x67,0x00,0x04,0x00,0x07,0x06,0x04,0x07,0x68,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x08,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1c,0x15,0x14,0x12,0x11,0x0a,0x08,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x09,0x06, +0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x11,0x33,0x32,0x16,0x17,0x35,0x26,0x26,0x27,0x27,0x33,0x17,0x07,0x23,0x37,0x36,0x36,0x37,0x35,0x06,0x06,0x23,0x23,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xf4,0x11,0x28,0x0d,0x07,0x19,0x0d,0x57,0x6a,0x9c,0x9c,0x6a,0x57,0x0a,0x1a,0x09,0x0d,0x28,0x11,0xf4,0x6f,0x03,0xad, +0xfc,0x53,0x2d,0x03,0x53,0xfe,0x7f,0x03,0x02,0x09,0x06,0x19,0x10,0x6d,0xc8,0xc8,0x6e,0x0d,0x19,0x07,0x09,0x01,0x03,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x06,0x00,0x09,0x00,0x3c,0x40,0x39,0x08,0x05,0x02,0x03,0x02,0x01,0x4c,0x00,0x00,0x05,0x01,0x02,0x03,0x00,0x02,0x67,0x06,0x01,0x03,0x01, +0x01,0x03,0x57,0x06,0x01,0x03,0x03,0x01,0x5f,0x04,0x01,0x01,0x03,0x01,0x4f,0x07,0x07,0x04,0x04,0x00,0x00,0x07,0x09,0x07,0x09,0x04,0x06,0x04,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x11,0x01,0x13,0x11,0x01,0x02,0x58,0xfd,0xda,0x01,0xd8,0x1c,0xfe,0x28,0x6f,0x03,0xad,0xfc,0x53,0x03,0x80, +0xfc,0xd6,0x03,0x2a,0xfc,0xad,0x03,0x29,0xfc,0xd7,0x00,0x00,0x00,0x02,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x1e,0x00,0x48,0x40,0x45,0x10,0x01,0x03,0x06,0x12,0x11,0x0f,0x0e,0x04,0x02,0x03,0x02,0x4c,0x04,0x01,0x03,0x06,0x02,0x06,0x03,0x02,0x80,0x00,0x00,0x00,0x06,0x03,0x00,0x06,0x67,0x05,0x01,0x02,0x01, +0x01,0x02,0x57,0x05,0x01,0x02,0x02,0x01,0x5f,0x07,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x1e,0x1d,0x1c,0x1b,0x17,0x16,0x0a,0x09,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x33,0x11,0x34,0x36,0x37,0x23,0x06,0x06,0x07,0x07,0x35,0x37,0x17,0x15,0x27,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11, +0x33,0x11,0x21,0x02,0x58,0xfd,0xda,0xcd,0x04,0x01,0x0a,0x04,0x1d,0x16,0x5f,0xc9,0xc7,0x60,0x16,0x1b,0x05,0x0a,0x02,0x03,0xcd,0xfe,0x0c,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x02,0x40,0x16,0x2d,0x0d,0x07,0x1d,0x12,0x50,0x69,0xa9,0xa9,0x69,0x51,0x12,0x1d,0x06,0x0d,0x2d,0x16,0xfd,0xc0,0x03,0x53,0x00,0x00,0x00,0x00,0x03,0x00,0x00, +0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x09,0x00,0x14,0x00,0x43,0x40,0x40,0x14,0x10,0x0c,0x08,0x05,0x05,0x04,0x03,0x01,0x4c,0x06,0x01,0x03,0x02,0x04,0x02,0x03,0x04,0x80,0x00,0x00,0x00,0x02,0x03,0x00,0x02,0x67,0x00,0x04,0x01,0x01,0x04,0x57,0x00,0x04,0x04,0x01,0x5f,0x05,0x01,0x01,0x04,0x01,0x4f,0x04,0x04,0x00,0x00, +0x0b,0x0a,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x07,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x01,0x13,0x11,0x21,0x11,0x13,0x03,0x21,0x35,0x03,0x26,0x26,0x27,0x06,0x06,0x07,0x03,0x02,0x58,0xfe,0xf3,0xdb,0xfe,0x0c,0xdb,0xdb,0x01,0xf4,0xd9,0x0a,0x13,0x05,0x04,0x12,0x0b,0xd8,0x6f,0x03,0xad,0xfc,0x53,0x03,0x49, +0xfd,0xa8,0x02,0x8f,0xfd,0x71,0x02,0x58,0xfc,0xe4,0x42,0x02,0x4e,0x1b,0x3b,0x11,0x11,0x3a,0x1c,0xfd,0xb2,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0xff,0x91,0x02,0x58,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x49,0x40,0x46,0x0c,0x09,0x02,0x05,0x04,0x01,0x4c,0x00,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x07,0x01,0x05,0x02,0x03, +0x05,0x02,0x7e,0x00,0x00,0x00,0x03,0x04,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x06,0x01,0x01,0x02,0x01,0x4f,0x08,0x08,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0b,0x0a,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x08,0x06,0x17,0x2b,0x15,0x11,0x21,0x11,0x25,0x21,0x11,0x21,0x13,0x27,0x35,0x33,0x15, +0x07,0x02,0x58,0xfd,0xda,0x01,0xf4,0xfe,0x0c,0xd6,0x0c,0x60,0x0b,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0xfe,0x9d,0x96,0x96,0x96,0x96,0x00,0x00,0x02,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xda,0x00,0x05,0x00,0x09,0x00,0x38,0x40,0x35,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x01,0x02,0x01,0x85, +0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x06,0x06,0x00,0x00,0x06,0x09,0x06,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x12,0x06,0x06,0x17,0x2b,0x01,0x27,0x35,0x33,0x15,0x07,0x03,0x35,0x21,0x15,0x01,0x08,0x0c,0x60,0x0b,0xc5,0x01,0x40,0x01,0xae,0x96,0x96,0x96,0x96,0xfd,0xad,0x4b,0x4b, +0x00,0x02,0x00,0x5e,0xff,0x4c,0x01,0xfe,0x02,0x30,0x00,0x11,0x00,0x1f,0x00,0x3c,0x40,0x39,0x0e,0x01,0x03,0x04,0x01,0x4c,0x05,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x00,0x04,0x03,0x00,0x04,0x69,0x06,0x01,0x03,0x01,0x01,0x03,0x59,0x06,0x01,0x03,0x03,0x01,0x61,0x00,0x01,0x03,0x01,0x51,0x13,0x12,0x00,0x00,0x1a,0x18,0x12,0x1f, +0x13,0x1f,0x00,0x11,0x00,0x11,0x25,0x23,0x07,0x06,0x18,0x2b,0x17,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x23,0x17,0x15,0x37,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x5e,0x70,0x61,0x61,0x6e,0x5f,0x53,0x3e,0x4e,0x07,0x03,0x02,0x76,0x39,0x3d,0x3d,0x39,0x39,0x3d,0x3f, +0xb4,0x02,0x18,0x5f,0x6d,0x6d,0x5f,0xa1,0x5f,0x6e,0x3e,0x35,0x7d,0xa0,0xf8,0x44,0x40,0x96,0x40,0x44,0x44,0x40,0x96,0x3e,0x46,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x6c,0x02,0xda,0x00,0x0e,0x00,0x3d,0x40,0x3a,0x09,0x01,0x01,0x02,0x0a,0x01,0x00,0x01,0x0b,0x01,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x02,0x85,0x06, +0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x14,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x33,0x11,0x23,0x35,0x33,0x11,0x33,0x11,0x33,0x35,0x17,0x07,0x35,0x23,0x11,0xff,0xff,0xff,0x5a,0x77,0x9c,0x9c,0x77,0x01,0x45, +0x50,0x01,0x45,0xfe,0xbb,0xa0,0xc8,0xc8,0xa0,0xfe,0xbb,0x00,0x00,0x03,0x00,0x8c,0xff,0x5b,0x01,0xcc,0x02,0xe4,0x00,0x0d,0x00,0x11,0x00,0x15,0x00,0x48,0x40,0x45,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x07,0x01,0x03,0x04,0x00,0x03,0x04,0x7e,0x00,0x01,0x06,0x01,0x00,0x02,0x01,0x00,0x69,0x00,0x04,0x05,0x05,0x04,0x57,0x00, +0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x12,0x12,0x0e,0x0e,0x01,0x00,0x12,0x15,0x12,0x15,0x14,0x13,0x0e,0x11,0x0e,0x11,0x10,0x0f,0x08,0x05,0x00,0x0d,0x01,0x0c,0x09,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x03,0x13,0x33,0x03,0x07,0x35,0x21,0x15,0x01,0x22,0x21,0x2a, +0x2b,0x20,0x14,0x20,0x2b,0x2a,0x21,0x8c,0x50,0x82,0x82,0x6e,0x01,0x40,0x02,0x4e,0x2a,0x21,0x20,0x2b,0x2b,0x20,0x21,0x2a,0xfd,0xc6,0x01,0x37,0xfe,0xc9,0xb9,0x4b,0x4b,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xff,0x92,0x02,0x1c,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03, +0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1b,0x2b,0x17,0x13,0x23,0x35,0x33,0x13,0x33,0x03,0x33,0x15,0x23,0x03,0x4b,0x97,0xa6,0xc4,0xae,0x5f,0xae,0xbd,0xdb,0x97,0x6e,0x01,0x90,0x50,0x01,0xcc,0xfe,0x34,0x50, +0xfe,0x70,0x00,0x00,0x00,0x02,0x00,0xaa,0xff,0x91,0x01,0xae,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x04,0x01,0x01,0x02,0x01,0x4f,0x00,0x00,0x07,0x06,0x05,0x04,0x00,0x03,0x00,0x03,0x11,0x05,0x06,0x17,0x2b,0x17,0x11, +0x21,0x11,0x27,0x33,0x11,0x23,0xaa,0x01,0x04,0xd2,0xa0,0xa0,0x6f,0x03,0xad,0xfc,0x53,0x2d,0x03,0x53,0x00,0x03,0x00,0x7d,0x00,0xda,0x01,0xdb,0x02,0xaf,0x00,0x0b,0x00,0x17,0x00,0x21,0x00,0x42,0x40,0x3f,0x1c,0x01,0x04,0x00,0x01,0x4c,0x21,0x20,0x1f,0x19,0x04,0x04,0x49,0x05,0x01,0x04,0x00,0x04,0x86,0x03,0x01,0x01,0x00,0x00, +0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x07,0x02,0x06,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x1e,0x1d,0x1b,0x1a,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x08,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06, +0x13,0x37,0x27,0x33,0x37,0x17,0x33,0x07,0x17,0x27,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x09,0x1e,0x4d,0x5b,0x1d,0x1d,0x5b,0x4d,0x1e,0x49,0x02,0x2f,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfe,0xab,0x63,0x36,0x5d,0x5d,0x36,0x63,0x43, +0x00,0x01,0x00,0x41,0xff,0x92,0x02,0x17,0x03,0x3e,0x00,0x23,0x00,0x90,0x40,0x0c,0x0a,0x07,0x02,0x06,0x03,0x1c,0x19,0x02,0x07,0x02,0x02,0x4c,0x4b,0xb0,0x11,0x50,0x58,0x40,0x31,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x02,0x03,0x72,0x08,0x01,0x07,0x02,0x04,0x06,0x07,0x72,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06, +0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59,0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x1b,0x40,0x33,0x00,0x01,0x00,0x01,0x85,0x00,0x03,0x00,0x06,0x00,0x03,0x06,0x80,0x08,0x01,0x07,0x02,0x04,0x02,0x07,0x04,0x80,0x00,0x05,0x04,0x05,0x86,0x00,0x00,0x00,0x06,0x02,0x00,0x06,0x69,0x00,0x02,0x07,0x04,0x02,0x59, +0x00,0x02,0x02,0x04,0x62,0x00,0x04,0x02,0x04,0x52,0x59,0x40,0x10,0x00,0x00,0x00,0x23,0x00,0x23,0x23,0x13,0x23,0x13,0x23,0x13,0x23,0x09,0x06,0x1d,0x2b,0x13,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x11,0x33,0x11,0x16,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x26,0x27,0x11,0x23,0x11,0x26,0x26,0x23,0x22,0x06, +0x15,0x15,0x41,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x25,0x15,0x16,0x19,0x55,0x46,0x3c,0x17,0x28,0x11,0x32,0x14,0x26,0x14,0x16,0x19,0x01,0x02,0x0f,0x3e,0x49,0x0b,0x08,0x01,0xb9,0xfe,0x2a,0x0d,0x13,0x18,0x15,0x1e,0x0f,0x3e,0x49,0x0a,0x08,0xfe,0x83,0x01,0x9a,0x0d,0x14,0x18,0x15,0x1e,0xff,0xff,0x00,0x46,0x00,0xfa,0x02,0x12, +0x02,0xaf,0x02,0x26,0x04,0x22,0x00,0x00,0x01,0x07,0x06,0x68,0x02,0x58,0xff,0xa6,0x00,0x09,0xb1,0x01,0x02,0xb8,0xff,0xa6,0xb0,0x35,0x2b,0x00,0xff,0xff,0x00,0x3c,0x00,0x32,0x02,0x1c,0x03,0x0c,0x00,0x27,0x06,0x72,0x02,0x58,0x00,0x00,0x02,0x06,0x04,0x26,0x00,0x00,0x00,0x03,0x00,0x50,0x00,0x00,0x02,0x08,0x02,0x30,0x00,0x11, +0x00,0x1d,0x00,0x29,0x00,0x49,0x40,0x46,0x08,0x03,0x02,0x01,0x04,0x01,0x86,0x00,0x00,0x00,0x02,0x05,0x00,0x02,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x0a,0x01,0x06,0x04,0x04,0x06,0x59,0x0a,0x01,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x1f,0x1e,0x13,0x12,0x00,0x00,0x25,0x23,0x1e,0x29,0x1f,0x29,0x19,0x17, +0x12,0x1d,0x13,0x1d,0x00,0x11,0x00,0x11,0x23,0x13,0x23,0x0b,0x06,0x19,0x2b,0x33,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x23,0x11,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x50,0x77,0x65,0x65,0x77,0x32,0x5c, +0x4e,0x4e,0x5c,0xaa,0x34,0x44,0x44,0x34,0x35,0x43,0x43,0x35,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x2d,0x01,0x54,0x65,0x77,0x77,0x65,0xfe,0xac,0x01,0x59,0x4e,0x5c,0x5c,0x4e,0xfe,0xa7,0xe6,0x44,0x34,0x35,0x43,0x43,0x35,0x34,0x44,0x28,0x2d,0x23,0x23,0x2d,0x2d,0x23,0x23,0x2d,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58, +0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x1f,0x00,0x45,0x40,0x42,0x0a,0x01,0x07,0x04,0x07,0x86,0x03,0x01,0x01,0x09,0x02,0x08,0x03,0x00,0x05,0x01,0x00,0x69,0x00,0x05,0x04,0x04,0x05,0x57,0x00,0x05,0x05,0x04,0x5f,0x06,0x01,0x04,0x05,0x04,0x4f,0x18,0x18,0x0d,0x0c,0x01,0x00,0x18,0x1f,0x18,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x13, +0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0b,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x01,0x9b,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23, +0x25,0xff,0x02,0x58,0xff,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0xfd,0x77,0x02,0x08,0x50,0x50,0xfd,0xf8,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0x58,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x52,0x40,0x4f,0x0c,0x01,0x07,0x00,0x07,0x86,0x00,0x03,0x04,0x01,0x02,0x01, +0x03,0x02,0x67,0x05,0x01,0x01,0x0e,0x0b,0x02,0x08,0x09,0x01,0x08,0x69,0x0a,0x0d,0x02,0x09,0x00,0x00,0x09,0x59,0x0a,0x0d,0x02,0x09,0x09,0x00,0x61,0x06,0x01,0x00,0x09,0x00,0x51,0x23,0x23,0x1a,0x1a,0x00,0x00,0x23,0x2b,0x23,0x2b,0x27,0x25,0x1a,0x22,0x1a,0x22,0x1e,0x1c,0x00,0x19,0x00,0x19,0x14,0x21,0x11,0x11,0x12,0x14,0x21, +0x0f,0x06,0x1d,0x2b,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x27,0x33,0x35,0x23,0x22,0x06,0x15,0x14,0x16,0x37,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0xff,0x05,0x34,0x44,0x44,0x34,0x05,0xff,0x02,0x58,0xff,0x05,0x35,0x43,0x43,0x35, +0x05,0x5f,0x05,0x05,0x23,0x2d,0x2d,0x87,0x05,0x05,0x23,0x2d,0x2d,0x91,0x44,0x34,0x35,0x43,0x87,0x50,0x50,0x87,0x43,0x35,0x34,0x44,0x91,0xb9,0xa0,0x2d,0x23,0x23,0x2d,0xa0,0xa0,0x2d,0x23,0x23,0x2d,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xfd,0x00,0x07,0x00,0x0b,0x00,0x2a,0x40,0x27,0x00,0x02,0x01,0x02,0x86,0x00, +0x04,0x00,0x05,0x00,0x04,0x05,0x67,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x11,0x11,0x11,0x11,0x11,0x10,0x06,0x06,0x1c,0x2b,0x11,0x21,0x15,0x23,0x11,0x23,0x11,0x23,0x35,0x21,0x15,0x21,0x02,0x58,0xff,0x5a,0xff,0x02,0x58,0xfd,0xa8,0x02,0x58,0x50,0xfd,0xf8,0x02,0x08,0xf5,0x4b, +0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0e,0x00,0x2b,0x40,0x28,0x06,0x01,0x00,0x01,0x00,0x85,0x00,0x03,0x02,0x03,0x86,0x05,0x01,0x01,0x02,0x02,0x01,0x57,0x05,0x01,0x01,0x01,0x02,0x5f,0x04,0x01,0x02,0x01,0x02,0x4f,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x06,0x1d,0x2b,0x01,0x17,0x23,0x15,0x33,0x15,0x23, +0x11,0x23,0x11,0x23,0x35,0x33,0x35,0x23,0x01,0x2d,0xc7,0x9b,0xff,0xff,0x5a,0xff,0xff,0x9b,0x02,0xe4,0xa9,0xa6,0x50,0xfe,0xbb,0x01,0x45,0x50,0xa6,0x00,0x00,0x00,0x00,0x03,0x00,0x58,0xff,0xf6,0x02,0x00,0x02,0xe4,0x00,0x0d,0x00,0x1e,0x00,0x2f,0x00,0x58,0x40,0x55,0x1d,0x01,0x07,0x02,0x23,0x01,0x06,0x03,0x02,0x4c,0x00,0x01, +0x00,0x04,0x02,0x01,0x04,0x69,0x09,0x01,0x02,0x00,0x07,0x03,0x02,0x07,0x69,0x00,0x03,0x00,0x06,0x05,0x03,0x06,0x69,0x0a,0x01,0x05,0x00,0x00,0x05,0x59,0x0a,0x01,0x05,0x05,0x00,0x61,0x08,0x01,0x00,0x05,0x00,0x51,0x20,0x1f,0x0f,0x0e,0x01,0x00,0x2b,0x29,0x26,0x24,0x1f,0x2f,0x20,0x2f,0x1a,0x18,0x14,0x12,0x0e,0x1e,0x0f,0x1e, +0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x03,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x36,0x13,0x32,0x36,0x35,0x35,0x06,0x23,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x14,0x16,0x01,0x2c,0x62,0x72,0x72,0x62,0x62,0x72, +0x72,0x9a,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x3f,0x3b,0x3a,0x40,0x0e,0x6c,0x3b,0x3f,0x0e,0x34,0x1a,0x23,0x1b,0x1e,0x14,0x28,0x40,0x0a,0x72,0x6a,0x01,0x36,0x6a,0x72,0x72,0x69,0xfe,0xc9,0x6a,0x72,0x01,0xd3,0x1d,0x25,0x1d,0x2d,0x7b,0x3e,0x43,0x43,0x3e,0x8c,0x43,0xfe,0x7e,0x43,0x3e,0x9a,0x43,0x1d,0x25,0x1d,0x2d,0x89,0x3e,0x43, +0x00,0x04,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x1f,0x00,0x2b,0x00,0x37,0x00,0x4d,0x40,0x4a,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x05,0x0b,0x06,0x0a,0x03,0x04,0x02,0x05,0x04,0x69,0x09,0x01,0x02,0x00,0x00,0x02,0x59,0x09,0x01,0x02,0x02,0x00,0x61,0x08,0x01,0x00,0x02,0x00,0x51,0x2d,0x2c,0x21, +0x20,0x11,0x10,0x01,0x00,0x33,0x31,0x2c,0x37,0x2d,0x37,0x27,0x25,0x20,0x2b,0x21,0x2b,0x19,0x17,0x10,0x1f,0x11,0x1f,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0c,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16, +0x16,0x37,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x21,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0xda,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0xfe,0xc8,0x18,0x20,0x20,0x18, +0x18,0x20,0x20,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x32,0x44,0x76,0x4a,0x4a,0x76,0x44,0x44,0x76,0x4a,0x4a,0x76,0x44,0xd1,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x20,0x18,0x18,0x20,0x00,0x00,0x00,0x03,0xff,0xf6,0x00,0x00,0x02,0x62,0x02,0xe4,0x00,0x0e,0x00,0x14,0x00,0x1c, +0x00,0x3d,0x40,0x3a,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x69,0x07,0x01,0x04,0x00,0x00,0x04,0x59,0x07,0x01,0x04,0x04,0x00,0x5f,0x06,0x01,0x00,0x04,0x00,0x4f,0x16,0x15,0x01,0x00,0x1a,0x18,0x15,0x1c,0x16,0x1c,0x13,0x12,0x10,0x0f,0x08,0x06,0x00,0x0e,0x01,0x0d,0x08,0x06,0x16,0x2b,0x33, +0x22,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x15,0x14,0x23,0x25,0x33,0x13,0x35,0x23,0x15,0x13,0x32,0x35,0x34,0x23,0x22,0x15,0x14,0x3b,0x45,0x13,0xf2,0x10,0x21,0x21,0x10,0xf1,0x14,0x45,0xfe,0xf6,0x31,0x0a,0x44,0x21,0x2c,0x2c,0x2c,0x38,0x1a,0x2e,0x02,0x3e,0x26,0x26,0xfd,0xc2,0x2e,0x1a,0x38,0xc8,0x01,0x17,0x47, +0x47,0xfe,0x5e,0x2a,0x2a,0x2a,0x2a,0x00,0x00,0x01,0x00,0x14,0xff,0x92,0x02,0x44,0x03,0x48,0x00,0x05,0x00,0x1c,0x40,0x19,0x03,0x01,0x01,0x49,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x12,0x11,0x02,0x06,0x18,0x2b,0x01,0x03,0x21,0x01,0x13,0x21,0x01,0xd6,0xb4,0x01,0x22,0xfd,0xee,0xf5, +0xfe,0xed,0x03,0x48,0xfe,0x70,0xfd,0xda,0x01,0xa4,0x00,0x00,0x00,0x01,0x00,0x25,0x00,0x73,0x02,0x34,0x02,0x6e,0x00,0x05,0x00,0x06,0xb3,0x05,0x03,0x01,0x32,0x2b,0x13,0x37,0x17,0x13,0x17,0x01,0x25,0x3f,0x90,0xfb,0x45,0xfe,0xc9,0x01,0x48,0x42,0x8e,0x01,0x72,0x30,0xfe,0x35,0x00,0x00,0x00,0x01,0x00,0x42,0x00,0x64,0x02,0x16, +0x02,0x38,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x7b,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x65,0x38,0xb0,0xb1,0x3a,0xb1,0xb0,0x38,0xb0,0xb1,0x3a,0xb1,0x00,0x01,0x00,0x1f,0x00,0x5b,0x02,0x39,0x02,0x75,0x00,0x0b,0x00,0x06,0xb3,0x0a, +0x04,0x01,0x32,0x2b,0x37,0x27,0x37,0x27,0x37,0x17,0x37,0x17,0x07,0x17,0x07,0x27,0x59,0x39,0xd3,0xd4,0x3a,0xd4,0xd2,0x39,0xd3,0xd4,0x3a,0xd4,0x5c,0x39,0xd2,0xd4,0x3a,0xd4,0xd3,0x39,0xd2,0xd4,0x3a,0xd4,0x00,0x01,0x00,0x27,0x00,0x3c,0x02,0x30,0x02,0x94,0x00,0x0b,0x00,0x06,0xb3,0x0a,0x04,0x01,0x32,0x2b,0x37,0x37,0x27,0x17, +0x37,0x17,0x37,0x07,0x17,0x27,0x07,0x27,0x27,0xab,0xaa,0xd7,0x2d,0x2c,0xd7,0xaa,0xab,0xd7,0x2d,0x2d,0xd2,0x96,0x96,0x49,0xdf,0xde,0x48,0x96,0x96,0x49,0xdf,0xdf,0x00,0x03,0x00,0x0f,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x07,0x00,0x10,0x00,0x1d,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x02,0x18,0x01,0x09,0x06,0x02,0x4c,0x00,0x02, +0x04,0x02,0x85,0x0b,0x03,0x02,0x01,0x00,0x05,0x00,0x01,0x05,0x80,0x07,0x01,0x05,0x06,0x00,0x05,0x06,0x7e,0x0c,0x0a,0x02,0x08,0x09,0x08,0x86,0x00,0x04,0x00,0x00,0x01,0x04,0x00,0x67,0x00,0x06,0x09,0x09,0x06,0x57,0x00,0x06,0x06,0x09,0x5f,0x00,0x09,0x06,0x09,0x4f,0x11,0x11,0x00,0x00,0x11,0x1d,0x11,0x1d,0x1c,0x1b,0x1a,0x19, +0x17,0x16,0x15,0x14,0x13,0x12,0x10,0x0f,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0d,0x06,0x19,0x2b,0x01,0x27,0x23,0x07,0x23,0x13,0x33,0x13,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x33,0x03,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x01,0x3c,0x1c,0xb0,0x1b,0x46,0x94,0x4a,0x94,0x9e,0x08,0x12,0x02,0x02,0x12, +0x08,0x22,0x7d,0x11,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x41,0x41,0x01,0x4f,0xfe,0xb1,0xce,0x13,0x2a,0x0d,0x0d,0x2a,0x13,0x52,0xfd,0xf9,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x04,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x4b,0x00,0x6c,0x40,0x69,0x07,0x01, +0x05,0x02,0x01,0x4c,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x0c,0x01,0x01,0x09,0x04,0x01,0x67,0x00,0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d, +0x01,0x06,0x08,0x06,0x51,0x21,0x20,0x00,0x00,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0e,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15, +0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14, +0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13, +0x19,0xdb,0x19,0x13,0x13,0x17,0xfd,0xe1,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0xff,0x4c,0x02,0x30,0x02,0xe4,0x00,0x27,0x00,0x35,0x00,0x4b,0x40,0x48,0x19,0x01,0x07,0x03,0x01,0x4c, +0x00,0x03,0x00,0x07,0x06,0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x05,0x05,0x00,0x5f,0x08,0x01,0x00,0x00,0x3d,0x00,0x4e,0x29,0x28,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a, +0x09,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x03,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0x45,0x55,0x7e,0x45,0x90,0x7e, +0x72,0x83,0x56,0x4a,0x49,0x57,0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x23,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xb4,0x47,0x83,0x58,0x01,0x54,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55,0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x01,0x2e,0x31,0x2b,0x75,0x2c, +0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x02,0x00,0x19,0xff,0xf7,0x02,0x67,0x02,0xe4,0x00,0x24,0x00,0x30,0x00,0x9b,0x40,0x09,0x28,0x21,0x1e,0x1b,0x04,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x34,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00, +0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x06,0x09,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x31,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x01,0x00,0x08,0x07,0x01,0x08,0x69,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f, +0x00,0x06,0x06,0x39,0x4d,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x1d,0x26,0x25,0x01,0x00,0x2b,0x29,0x25,0x30,0x26,0x30,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x0b,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36, +0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd7,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53, +0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x00,0x02,0x00,0x41,0xff,0x4c,0x01,0xf9,0x02,0xda,0x00,0x0a,0x00,0x0e,0x00,0x2a, +0x40,0x27,0x00,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x01,0x38,0x4d,0x06,0x04,0x05,0x03,0x02,0x02,0x3d,0x02,0x4e,0x0b,0x0b,0x00,0x00,0x0b,0x0e,0x0b,0x0e,0x0d,0x0c,0x00,0x0a,0x00,0x0a,0x25,0x11,0x07,0x09,0x18,0x2b,0x17,0x11,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x33,0x11,0x33,0x11,0x33,0x11,0xff,0x55,0x69,0x69,0x55,0x50,0x5a, +0x50,0xb4,0x01,0xea,0x5e,0x4c,0x50,0x4d,0x5d,0xfc,0x72,0x03,0x8e,0xfc,0x72,0x00,0x00,0x02,0x00,0x4d,0xff,0x66,0x02,0x0b,0x02,0xe4,0x00,0x3b,0x00,0x49,0x00,0x47,0x40,0x44,0x16,0x01,0x06,0x04,0x01,0x4c,0x00,0x04,0x05,0x06,0x05,0x04,0x06,0x80,0x00,0x06,0x01,0x05,0x06,0x01,0x7e,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x02, +0x07,0x01,0x00,0x02,0x00,0x65,0x00,0x05,0x05,0x03,0x61,0x00,0x03,0x03,0x3e,0x05,0x4e,0x01,0x00,0x33,0x32,0x27,0x24,0x22,0x21,0x1f,0x1c,0x09,0x06,0x04,0x03,0x00,0x3b,0x01,0x3a,0x08,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x2e,0x02,0x35,0x34,0x36,0x37,0x35,0x26,0x26, +0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x1e,0x02,0x15,0x14,0x06,0x23,0x13,0x16,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x06,0x15,0x14,0x16,0x17,0x01,0x13,0x5b,0x6b,0x5f,0x38,0x2f,0x32,0x32,0x39,0x33,0x32,0x5c,0x2e,0x44,0x26,0x3b, +0x34,0x34,0x38,0x66,0x57,0x32,0x4f,0x66,0x07,0x5f,0x04,0x32,0x27,0x32,0x2e,0x35,0x24,0x20,0x78,0x47,0x51,0x44,0x2f,0x15,0x37,0x2a,0x6a,0x5c,0x05,0x2c,0x38,0x2c,0x23,0x4a,0x2c,0x38,0x2b,0x22,0x9a,0x53,0x47,0x22,0x28,0x2e,0x28,0x24,0x33,0x08,0x0f,0x08,0x34,0x4a,0x28,0x3a,0x48,0x07,0x02,0x0c,0x4c,0x38,0x4a,0x57,0x4e,0x43, +0x1e,0x23,0x2c,0x26,0x21,0x2e,0x06,0x17,0x0d,0x62,0x3d,0x3a,0x45,0x03,0x02,0x02,0x21,0x41,0x33,0x4e,0x5b,0x01,0x55,0x07,0x42,0x35,0x23,0x36,0x06,0x0d,0x08,0x40,0x33,0x26,0x38,0x06,0x00,0x03,0x00,0x2d,0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x3f,0x00,0x69,0xb1,0x06,0x64,0x44,0x40,0x5e,0x00,0x06,0x07,0x09, +0x07,0x06,0x09,0x80,0x00,0x09,0x08,0x07,0x09,0x08,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x00,0x05,0x00,0x07,0x06,0x05,0x07,0x69,0x00,0x08,0x0c,0x01,0x04,0x02,0x08,0x04,0x69,0x0b,0x01,0x02,0x00,0x00,0x02,0x59,0x0b,0x01,0x02,0x02,0x00,0x62,0x0a,0x01,0x00,0x02,0x00,0x52,0x25,0x24,0x13,0x12,0x01,0x00,0x3d,0x3c,0x3a, +0x38,0x33,0x31,0x2f,0x2e,0x2c,0x2a,0x24,0x3f,0x25,0x3f,0x1c,0x1a,0x12,0x23,0x13,0x23,0x0a,0x08,0x00,0x11,0x01,0x11,0x0d,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x14,0x06,0x06,0x27,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x15, +0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0x4d,0x3c,0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x32,0x5a,0x41,0x38,0x45,0x45,0x38,0x38,0x44,0x41, +0x21,0x1a,0x1b,0x21,0x21,0x1b,0x1a,0x21,0x41,0x44,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x32,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0x96,0x39,0x56,0x2f,0x55,0x3f,0x34,0x82,0x34,0x3f,0x3f,0x34,0x1b,0x21,0x21,0x1b,0x82,0x1b,0x21,0x21,0x1b,0x34,0x3f,0x00,0x00,0x04,0x00,0x2d, +0x00,0x6e,0x02,0x2b,0x02,0xe4,0x00,0x11,0x00,0x23,0x00,0x30,0x00,0x39,0x00,0x63,0xb1,0x06,0x64,0x44,0x40,0x58,0x2b,0x01,0x06,0x08,0x01,0x4c,0x0b,0x07,0x02,0x05,0x06,0x02,0x06,0x05,0x02,0x80,0x00,0x01,0x00,0x03,0x04,0x01,0x03,0x69,0x00,0x04,0x00,0x09,0x08,0x04,0x09,0x69,0x00,0x08,0x00,0x06,0x05,0x08,0x06,0x67,0x00,0x02, +0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x24,0x24,0x01,0x00,0x39,0x37,0x33,0x31,0x24,0x30,0x24,0x30,0x2f,0x2e,0x2d,0x2c,0x27,0x25,0x20,0x1e,0x17,0x15,0x0a,0x08,0x00,0x11,0x01,0x11,0x0c,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x25,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16, +0x15,0x15,0x14,0x06,0x06,0x25,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x17,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x2c,0x4c,0x73,0x40,0x40,0x73,0x4c,0x4d,0x72,0x40,0x40,0x72,0xfe,0xeb,0x32,0x5a,0x3c,0x3c, +0x5a,0x32,0x32,0x5a,0x3c,0x3c,0x5a,0x32,0x5a,0x72,0x36,0x3f,0x3c,0x42,0x40,0x3b,0x36,0x36,0x1a,0x1e,0x1e,0x1a,0x36,0x6e,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0x3c,0x6c,0x48,0x96,0x48,0x6c,0x3c,0xf0,0x39,0x56,0x2f,0x2f,0x56,0x39,0x96,0x39,0x55,0x30,0x30,0x55,0x39,0xfa,0x01,0x5e,0x39,0x30,0x45,0x1a,0x96,0x8c,0x8c,0xbe,0x1d, +0x1a,0x1a,0x1d,0x00,0x00,0x02,0x00,0x0f,0x01,0x72,0x02,0x35,0x02,0xda,0x00,0x07,0x00,0x26,0x00,0x4d,0x40,0x4a,0x22,0x19,0x02,0x00,0x01,0x0e,0x01,0x07,0x00,0x02,0x4c,0x00,0x07,0x00,0x03,0x00,0x07,0x03,0x80,0x0a,0x08,0x06,0x09,0x04,0x03,0x03,0x84,0x05,0x04,0x02,0x01,0x00,0x00,0x01,0x57,0x05,0x04,0x02,0x01,0x01,0x00,0x5f, +0x02,0x01,0x00,0x01,0x00,0x4f,0x08,0x08,0x00,0x00,0x08,0x26,0x08,0x26,0x1e,0x1d,0x15,0x14,0x13,0x12,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x0b,0x06,0x19,0x2b,0x13,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x33,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x06,0x06,0x07,0x07,0x23, +0x27,0x26,0x26,0x27,0x16,0x16,0x15,0x15,0x73,0x64,0x01,0x04,0x64,0x87,0x50,0x22,0x05,0x09,0x02,0x02,0x07,0x05,0x21,0x4e,0x37,0x05,0x02,0x06,0x0e,0x03,0x1e,0x33,0x21,0x03,0x0e,0x06,0x02,0x06,0x01,0x72,0x01,0x36,0x32,0x32,0xfe,0xca,0x01,0x68,0x66,0x0e,0x2b,0x0e,0x0e,0x2b,0x0e,0x66,0xfe,0x98,0xdd,0x1c,0x3e,0x13,0x14,0x33, +0x09,0x67,0x68,0x09,0x32,0x14,0x13,0x3e,0x1c,0xdd,0x00,0x00,0x00,0x02,0x00,0x96,0x01,0xc2,0x01,0xc2,0x02,0xe4,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01, +0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x2c,0x43,0x53,0x53,0x43,0x43,0x53,0x53,0x43,0x26,0x2f,0x2f,0x26,0x25,0x30,0x30,0x01,0xc2, +0x51,0x40,0x41,0x50,0x50,0x41,0x40,0x51,0x38,0x31,0x28,0x28,0x32,0x32,0x28,0x28,0x31,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0x01,0xa3,0x01,0x75,0x02,0xd5,0x03,0x07,0x03,0x2a,0x00,0x00,0x02,0x43,0x00,0x09,0xb1,0x00,0x01,0xb8,0x02,0x43,0xb0,0x35,0x2b,0x00,0x00,0x00,0xff,0xff,0x00,0x69,0x01,0xa4,0x01,0xef,0x02,0xd6,0x00,0x27, +0x03,0x2a,0xff,0x97,0x02,0x44,0x01,0x07,0x03,0x2a,0x00,0x7a,0x02,0x44,0x00,0x12,0xb1,0x00,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0xb1,0x01,0x01,0xb8,0x02,0x44,0xb0,0x35,0x2b,0x00,0x00,0x00,0x01,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0xff,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x00,0x02,0x00,0xff,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f, +0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x33,0x11,0xff,0x5a,0x5a,0x5a,0x01,0xc2,0x01,0x7c,0xfe,0x84,0xfd,0xd0,0x01,0x7c,0xfe,0x84,0x00,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x0b,0x00,0x2f,0x40,0x2c,0x00,0x02,0x01,0x02, +0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x04,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x17,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0xff,0xaf,0xaf,0x5a,0xaf,0xaf,0x6e,0x02,0x76,0x50,0xe6, +0xe6,0x50,0xfd,0x8a,0x00,0x02,0x00,0x46,0x00,0x00,0x01,0xf4,0x02,0xe4,0x00,0x1e,0x00,0x28,0x00,0x38,0x40,0x35,0x20,0x1b,0x1a,0x13,0x07,0x06,0x05,0x04,0x08,0x02,0x03,0x01,0x4c,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x27,0x25, +0x18,0x16,0x0c,0x0a,0x00,0x1e,0x01,0x1e,0x05,0x06,0x16,0x2b,0x21,0x22,0x26,0x35,0x35,0x07,0x27,0x37,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x07,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x17,0x0e,0x02,0x03,0x15,0x37,0x36,0x35,0x35,0x34,0x23,0x22,0x06,0x01,0x51,0x4d,0x5a,0x46,0x1e,0x64,0x58,0x48,0x49,0x57,0x4f, +0x46,0x51,0x29,0x24,0x22,0x32,0x0b,0x44,0x09,0x2d,0x42,0x78,0x35,0x57,0x46,0x21,0x25,0x57,0x49,0x4a,0x1b,0x51,0x25,0x01,0x04,0x46,0x55,0x54,0x47,0x55,0x43,0x6c,0x1a,0x1f,0x6c,0x25,0x29,0x2a,0x13,0x2a,0x15,0x2f,0x21,0x02,0x49,0xe3,0x13,0x21,0x5a,0x55,0x49,0x26,0x00,0x01,0x00,0x50,0xff,0x92,0x02,0x08,0x03,0x3e,0x00,0x13, +0x00,0x3d,0x40,0x3a,0x00,0x04,0x03,0x04,0x85,0x0a,0x01,0x09,0x00,0x09,0x86,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x67,0x07,0x01,0x01,0x00,0x00,0x01,0x57,0x07,0x01,0x01,0x01,0x00,0x5f,0x08,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x17, +0x35,0x23,0x35,0x33,0x11,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x11,0x33,0x15,0x23,0x15,0xff,0xaf,0xaf,0xaf,0xaf,0x5a,0xaf,0xaf,0xaf,0xaf,0x6e,0xfa,0x50,0x01,0x22,0x50,0xf0,0xf0,0x50,0xfe,0xde,0x50,0xfa,0x00,0x00,0x00,0x03,0x00,0x1e,0x00,0x00,0x02,0x58,0x02,0xe4,0x00,0x0d,0x00,0x27,0x00,0x35,0x00,0x79,0x40,0x0a, +0x22,0x01,0x06,0x07,0x15,0x01,0x04,0x00,0x02,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1e,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x00,0x07,0x07,0x01,0x5f,0x03,0x02,0x02,0x01,0x01,0x38,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x1b,0x40,0x22,0x0a,0x01,0x06,0x08,0x01,0x00,0x04,0x06,0x00,0x69,0x03,0x01,0x02,0x02, +0x38,0x4d,0x00,0x07,0x07,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x09,0x05,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x1f,0x29,0x28,0x0e,0x0e,0x01,0x00,0x30,0x2e,0x28,0x35,0x29,0x35,0x0e,0x27,0x0e,0x27,0x1d,0x1c,0x1b,0x1a,0x10,0x0f,0x08,0x06,0x00,0x0d,0x01,0x0d,0x0b,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32, +0x16,0x15,0x15,0x14,0x06,0x01,0x11,0x33,0x13,0x1e,0x02,0x17,0x2e,0x02,0x35,0x11,0x33,0x11,0x23,0x03,0x2e,0x02,0x27,0x1e,0x02,0x15,0x11,0x01,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x01,0xf9,0x28,0x37,0x37,0x28,0x29,0x36,0x36,0xfd,0xfc,0x5f,0x75,0x06,0x10,0x11,0x06,0x02,0x06,0x04,0x46,0x5f,0x72, +0x05,0x11,0x11,0x07,0x02,0x05,0x03,0x01,0x95,0x0e,0x15,0x15,0x0e,0x0d,0x16,0x16,0x01,0x2c,0x3a,0x2f,0xe6,0x2f,0x3a,0x3a,0x2f,0xe6,0x2f,0x3a,0xfe,0xd4,0x02,0xda,0xfe,0x3b,0x15,0x44,0x4a,0x1d,0x1d,0x4c,0x4b,0x19,0x01,0xb8,0xfd,0x26,0x01,0xc6,0x17,0x44,0x49,0x1c,0x1c,0x4b,0x4b,0x1c,0xfe,0x48,0x01,0x63,0x12,0x16,0xfa,0x12, +0x16,0x16,0x12,0xfa,0x16,0x12,0x00,0x00,0x00,0x02,0x00,0x3c,0xff,0xf6,0x02,0x1c,0x02,0xe4,0x00,0x1a,0x00,0x23,0x00,0x4c,0x40,0x49,0x1e,0x1b,0x02,0x05,0x06,0x10,0x01,0x03,0x04,0x02,0x4c,0x00,0x04,0x02,0x03,0x02,0x04,0x03,0x80,0x00,0x01,0x00,0x06,0x05,0x01,0x06,0x69,0x00,0x05,0x00,0x02,0x04,0x05,0x02,0x67,0x00,0x03,0x00, +0x00,0x03,0x59,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x01,0x00,0x22,0x20,0x1d,0x1c,0x17,0x16,0x14,0x12,0x0f,0x0e,0x0a,0x08,0x00,0x1a,0x01,0x1a,0x08,0x06,0x16,0x2b,0x05,0x22,0x26,0x26,0x35,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x21,0x11,0x16,0x16,0x33,0x32,0x36,0x37,0x33,0x0e,0x02,0x03,0x15, +0x21,0x35,0x26,0x26,0x23,0x22,0x06,0x01,0x2c,0x47,0x6d,0x3c,0x3c,0x6d,0x47,0x49,0x6b,0x3c,0xfe,0x84,0x0c,0x49,0x37,0x3b,0x62,0x14,0x32,0x10,0x44,0x5b,0xc0,0x01,0x18,0x0c,0x48,0x38,0x37,0x49,0x0a,0x41,0x76,0x4d,0xe6,0x4e,0x75,0x41,0x41,0x74,0x4f,0x79,0xfe,0xfd,0x15,0x2c,0x3d,0x31,0x2e,0x46,0x27,0x02,0x80,0xdd,0xdd,0x15, +0x2c,0x2c,0x00,0x00,0x00,0x04,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x1f,0x00,0x25,0x00,0x57,0x40,0x54,0x07,0x01,0x05,0x02,0x01,0x4c,0x00,0x06,0x01,0x07,0x01,0x06,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x00,0x05,0x04,0x02,0x05,0x67,0x00,0x04,0x09,0x01,0x01,0x06,0x04,0x01, +0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x20,0x20,0x00,0x00,0x20,0x25,0x20,0x25,0x24,0x23,0x22,0x21,0x1f,0x1d,0x19,0x17,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0c,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32, +0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19, +0xdb,0x19,0x13,0x13,0x17,0xfd,0xe5,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x01,0x00,0x28,0xff,0x4c,0x02,0x30,0x00,0x00,0x00,0x07,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x18,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x1b,0x40,0x17,0x02,0x01,0x00,0x01, +0x00,0x85,0x00,0x01,0x03,0x03,0x01,0x57,0x00,0x01,0x01,0x03,0x60,0x04,0x01,0x03,0x01,0x03,0x50,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x06,0x19,0x2b,0x17,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x28,0x5a,0x01,0x54,0x5a,0xb4,0xb4,0x64,0x64,0xb4,0x00,0x00,0x00,0x00,0x02,0x00,0x14,0x00,0x56,0x02,0x4e, +0x02,0x89,0x00,0x06,0x00,0x20,0x00,0x47,0x40,0x44,0x05,0x02,0x01,0x03,0x02,0x04,0x06,0x01,0x03,0x02,0x02,0x4c,0x00,0x00,0x05,0x00,0x85,0x00,0x02,0x04,0x03,0x04,0x02,0x03,0x80,0x00,0x05,0x00,0x04,0x02,0x05,0x04,0x69,0x00,0x03,0x01,0x01,0x03,0x59,0x00,0x03,0x03,0x01,0x61,0x06,0x01,0x01,0x03,0x01,0x51,0x08,0x07,0x1a,0x19, +0x18,0x17,0x11,0x0f,0x0c,0x0b,0x07,0x20,0x08,0x20,0x13,0x07,0x06,0x17,0x2b,0x01,0x27,0x07,0x35,0x33,0x07,0x17,0x07,0x22,0x26,0x26,0x35,0x33,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x35,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x01,0x55,0xe1,0x60,0xf9,0x65,0xe2,0x4f,0x4e,0x7d,0x48,0x4e,0x33,0x5a,0x38,0x39, +0x59,0x33,0x33,0x59,0x39,0x4f,0x7c,0x48,0x48,0x7c,0x01,0x18,0xd8,0x60,0xf9,0x65,0xd8,0xf6,0x47,0x7c,0x4d,0x39,0x5a,0x35,0x35,0x5a,0x39,0x39,0x5b,0x34,0x47,0x47,0x7a,0x4e,0x4d,0x7c,0x47,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x00,0x00,0x02,0x2b,0x02,0xdf,0x00,0x1b,0x00,0x2d,0x00,0x60,0x40,0x5d,0x28,0x1f,0x02,0x08,0x06,0x01, +0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x61,0x0a,0x01,0x00,0x04,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x2d,0x1c,0x2d, +0x27,0x26,0x25,0x24,0x1e,0x1d,0x19,0x18,0x16,0x14,0x10,0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03, +0x1e,0x02,0x15,0x15,0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, +0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x03,0x00,0x20,0x00,0x00,0x02,0x3f,0x02,0xdf,0x00,0x1b,0x00,0x29,0x00,0x32,0x00,0x6b,0x40,0x68,0x24,0x01,0x08,0x0a,0x01,0x4c,0x00,0x02,0x03,0x05,0x03,0x02,0x05,0x80,0x00,0x05,0x04,0x03,0x05,0x04,0x7e,0x0d,0x09,0x02,0x07,0x08,0x07,0x86, +0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x00,0x04,0x0c,0x01,0x00,0x06,0x04,0x00,0x69,0x00,0x06,0x00,0x0b,0x0a,0x06,0x0b,0x68,0x00,0x0a,0x08,0x08,0x0a,0x57,0x00,0x0a,0x0a,0x08,0x5f,0x00,0x08,0x0a,0x08,0x4f,0x1c,0x1c,0x01,0x00,0x32,0x30,0x2c,0x2a,0x1c,0x29,0x1c,0x29,0x28,0x27,0x26,0x25,0x1f,0x1d,0x19,0x18,0x16,0x14,0x10, +0x0e,0x0c,0x0b,0x09,0x07,0x00,0x1b,0x01,0x1b,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x03,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23, +0xcf,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a,0x13,0xc6,0x38,0x44,0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x86,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0xfe,0x7a,0x01,0x4f, +0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15,0x16,0x1c,0x00,0x00,0x00,0x00,0x01,0x00,0x23,0x01,0xd6,0x02,0x35,0x02,0xe4,0x00,0x05,0x00,0x18,0x40,0x15,0x04,0x01,0x02,0x00,0x4a,0x02,0x01,0x02,0x00,0x00,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x13,0x01,0x01,0x23,0x27,0x07,0x23,0x01,0x09,0x01, +0x09,0x6e,0x9a,0x9e,0x01,0xd6,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x01,0x00,0xc3,0xff,0x92,0x01,0xef,0x00,0xbe,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x01,0x02,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x37,0x33,0x15,0x33,0x15,0x21,0xc3,0x5a, +0xd2,0xfe,0xd4,0xbe,0xdc,0x50,0x00,0x00,0x00,0x01,0x00,0x69,0xff,0x92,0x01,0x95,0x00,0xbe,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x85,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x25,0x11,0x21,0x35,0x33,0x35, +0x01,0x95,0xfe,0xd4,0xd2,0xbe,0xfe,0xd4,0x50,0xdc,0x00,0x00,0x00,0x01,0x00,0x69,0x02,0x12,0x01,0x95,0x03,0x3e,0x00,0x05,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x00,0x86,0x00,0x02,0x01,0x01,0x02,0x57,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x02,0x01,0x4f,0x11,0x11,0x10,0x03,0x06,0x19,0x2b,0x01,0x23,0x35,0x23,0x35,0x21,0x01,0x95, +0x5a,0xd2,0x01,0x2c,0x02,0x12,0xdc,0x50,0x00,0x01,0x00,0xc3,0x02,0x12,0x01,0xef,0x03,0x3e,0x00,0x05,0x00,0x24,0x40,0x21,0x03,0x01,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x00,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x11,0x04,0x06,0x18,0x2b,0x13,0x11,0x21,0x15,0x23,0x15, +0xc3,0x01,0x2c,0xd2,0x02,0x12,0x01,0x2c,0x50,0xdc,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x26,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x54,0x40,0x51,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x00,0x08,0x09,0x07,0x08, +0x67,0x0b,0x01,0x09,0x04,0x04,0x09,0x57,0x0b,0x01,0x09,0x09,0x04,0x5f,0x00,0x04,0x09,0x04,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32, +0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0xb7,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x9a,0x3a,0x01,0x4f,0x3a,0x56, +0x2f,0x56,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x19,0x00,0x45,0x40,0x42,0x00,0x04,0x01,0x05,0x01,0x04,0x05,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x07,0x01,0x01,0x04,0x02,0x01,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x08,0x01,0x06,0x05, +0x06,0x4f,0x14,0x14,0x00,0x00,0x14,0x19,0x14,0x19,0x18,0x17,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x09,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d, +0x3e,0x3e,0x2d,0x54,0xab,0x42,0xde,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x0e,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1f,0x00,0x58,0x40,0x55,0x1a,0x17,0x02,0x06,0x07,0x01,0x4c,0x00,0x05,0x01,0x07,0x01, +0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x05,0x02,0x01,0x67,0x00,0x07,0x06,0x08,0x07,0x57,0x00,0x06,0x00,0x04,0x08,0x06,0x04,0x67,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01,0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1e,0x1d,0x1c,0x1b,0x19,0x18,0x16,0x15,0x13,0x11,0x0d, +0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x35,0x23,0x35,0x37,0x33,0x07,0x15,0x33,0x35,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x01,0x5f,0xcd,0xa3,0x4e,0xb2,0x8e, +0x40,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60,0x42,0x59,0xb4,0xc7,0x0a,0x63,0xe1,0x00,0x00,0x00,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x1e,0x00,0x51,0x40,0x4e,0x19,0x18,0x17,0x03,0x04,0x05,0x01,0x4c,0x00,0x05,0x01,0x04,0x01,0x05,0x04,0x80, +0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x08,0x01,0x01,0x05,0x02,0x01,0x67,0x06,0x01,0x04,0x07,0x07,0x04,0x57,0x06,0x01,0x04,0x04,0x07,0x5f,0x09,0x01,0x07,0x04,0x07,0x4f,0x14,0x14,0x00,0x00,0x14,0x1e,0x14,0x1e,0x1d,0x1c,0x1b,0x1a,0x16,0x15,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0a,0x06,0x17,0x2b,0x13, +0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x33,0x35,0x07,0x35,0x37,0x33,0x11,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x94,0x83,0x7a,0x61,0x5b,0x68,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31, +0x31,0x3d,0xfd,0x60,0x3c,0xd8,0x57,0x4b,0x47,0xfe,0xed,0x3c,0x00,0x03,0x00,0x2d,0xff,0xfb,0x02,0x15,0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2e,0x00,0xa6,0xb7,0x29,0x28,0x23,0x03,0x07,0x08,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x38,0x00,0x07,0x08,0x05,0x08,0x07,0x72,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03, +0x02,0x00,0x03,0x67,0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x1b,0x40,0x39,0x00,0x07,0x08,0x05,0x08,0x07,0x05,0x80,0x00,0x05,0x06,0x08,0x05,0x06,0x7e,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67, +0x00,0x02,0x0a,0x01,0x01,0x09,0x02,0x01,0x67,0x00,0x09,0x00,0x08,0x07,0x09,0x08,0x67,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x59,0x40,0x1e,0x15,0x14,0x00,0x00,0x27,0x26,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x14,0x2e,0x15,0x2e,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21, +0x0c,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x35,0x37,0x23,0x35,0x33,0x15,0x07,0x16,0x16,0x15,0x14,0x06,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e, +0x2d,0x54,0x01,0x11,0x42,0x52,0x42,0x2d,0x25,0x25,0x2e,0x2d,0x25,0x1e,0x56,0xba,0xfa,0x4c,0x2f,0x39,0x53,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x5b,0x4a,0x3a,0x21,0x29,0x20,0x19,0x19,0x1e,0x35,0x39,0x3c,0x46,0x34,0x08,0x37,0x28,0x32,0x41,0x00,0x03,0x00,0x2d,0x00,0x00,0x02,0x22, +0x02,0xda,0x00,0x0a,0x00,0x13,0x00,0x2c,0x00,0x57,0x40,0x54,0x15,0x01,0x07,0x05,0x01,0x4c,0x00,0x05,0x04,0x07,0x04,0x05,0x07,0x80,0x00,0x00,0x00,0x03,0x02,0x00,0x03,0x67,0x00,0x02,0x09,0x01,0x01,0x06,0x02,0x01,0x67,0x00,0x06,0x00,0x04,0x05,0x06,0x04,0x69,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x0a,0x01, +0x08,0x07,0x08,0x4f,0x14,0x14,0x00,0x00,0x14,0x2c,0x14,0x2c,0x2b,0x2a,0x24,0x22,0x20,0x1f,0x1d,0x1b,0x13,0x11,0x0d,0x0b,0x00,0x0a,0x00,0x09,0x21,0x0b,0x06,0x17,0x2b,0x13,0x11,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x13,0x35,0x37,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06, +0x15,0x23,0x36,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x07,0x07,0x33,0x15,0x2d,0x96,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x54,0x54,0x2d,0x3e,0x3e,0x2d,0x54,0x9b,0x9a,0x17,0x1c,0x26,0x23,0x25,0x2c,0x42,0x03,0x50,0x40,0x41,0x4a,0x2c,0x24,0x54,0xad,0x01,0x8b,0x01,0x4f,0x2b,0x4b,0x32,0x31,0x4b,0x2b,0x39,0x3d,0x31,0x31,0x3d,0xfd,0x60, +0x3e,0x5b,0x0e,0x20,0x11,0x1e,0x23,0x2a,0x24,0x3f,0x4a,0x42,0x38,0x23,0x3a,0x14,0x2d,0x3c,0x00,0x00,0x00,0x05,0xff,0xf6,0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x16,0x00,0x1f,0x00,0x26,0x00,0x2d,0x00,0x40,0x40,0x3d,0x2c,0x2b,0x23,0x22,0x04,0x00,0x04,0x01,0x4c,0x05,0x01,0x00,0x04,0x00,0x86,0x00,0x01,0x06,0x01,0x02, +0x03,0x01,0x02,0x69,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x11,0x10,0x01,0x00,0x1c,0x1b,0x14,0x13,0x10,0x16,0x11,0x16,0x09,0x07,0x00,0x0f,0x01,0x0f,0x07,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x07,0x21,0x26, +0x26,0x03,0x36,0x36,0x37,0x37,0x21,0x17,0x16,0x16,0x25,0x34,0x27,0x03,0x3e,0x02,0x25,0x14,0x16,0x16,0x17,0x03,0x06,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x45,0x70,0x23,0x01,0xb0,0x23,0x70,0x45,0x0c,0x1b,0x0d,0x88,0xfe,0x89,0x88,0x0d,0x1a,0x01,0x10,0x14,0xd6,0x43,0x6a,0x3d,0xfd,0xf8,0x3c, +0x68,0x42,0xd3,0x13,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x58,0x8d,0x51,0x02,0x3a,0x3c,0x33,0x33,0x3c,0xfe,0x20,0x17,0x2f,0x16,0xe8,0xe8,0x16,0x2f,0xc5,0x37,0x30,0xfe,0x96,0x06,0x47,0x70,0x46,0x45,0x70,0x46,0x07,0x01,0x67,0x2f,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x25,0x00,0x5f, +0x40,0x5c,0x20,0x1d,0x12,0x03,0x09,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x09,0x00,0x06,0x09,0x80,0x00,0x09,0x08,0x00,0x09,0x08,0x7e,0x0c,0x0a,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0b,0x01,0x05,0x00,0x00,0x05,0x57,0x0b,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05, +0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x25,0x0c,0x25,0x1f,0x1e,0x19,0x18,0x17,0x16,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0d,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x11,0x23,0x35,0x34,0x36,0x37,0x07,0x23,0x27, +0x1e,0x02,0x15,0x15,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x5b,0x37,0x0a,0x0b,0x04,0x04,0x0c,0x0a,0x35,0x5a,0x40,0x04,0x0a,0x56,0x43,0x58,0x05,0x07,0x04,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x7b,0x16,0x1b,0x11,0x11,0x1a,0x18,0x7a,0xfe,0xb1,0x5f,0x44,0x61,0x26,0xca,0xc7,0x19,0x35, +0x46,0x34,0x5f,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x23,0x00,0x57,0x40,0x54,0x1f,0x19,0x13,0x0d,0x04,0x08,0x06,0x01,0x4c,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01, +0x05,0x00,0x00,0x05,0x57,0x0a,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x05,0x00,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x23,0x0c,0x23,0x1b,0x1a,0x18,0x17,0x0f,0x0e,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36, +0x36,0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x70,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d,0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0xa9,0xa6,0x56,0x10,0x18, +0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56,0x00,0x00,0x02,0x00,0x34,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4d,0x40,0x4a,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0a,0x01,0x05,0x00,0x00,0x07,0x05,0x00, +0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x23,0x35,0x21,0x15,0x23, +0x11,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0xf9,0x98,0x01,0x72,0x98,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x04,0x00,0x34,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x19,0x00,0x22,0x00,0x2b,0x00,0x61,0x40,0x5e,0x13,0x01,0x0b,0x08,0x01,0x4c,0x00,0x01,0x00,0x02, +0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x06,0x05,0x00,0x67,0x00,0x06,0x00,0x09,0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x0c,0x0c,0x00,0x00,0x2b,0x29,0x25,0x23,0x22,0x20, +0x1c,0x1a,0x0c,0x19,0x0c,0x18,0x0f,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23, +0x23,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x7f,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14,0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x3b,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17, +0x00,0x02,0x00,0x34,0xff,0xc6,0x02,0x46,0x02,0xda,0x00,0x0b,0x00,0x2f,0x00,0xb7,0x40,0x0c,0x29,0x1b,0x1a,0x03,0x09,0x0a,0x2e,0x01,0x06,0x09,0x02,0x4c,0x4b,0xb0,0x12,0x50,0x58,0x40,0x3e,0x00,0x0a,0x08,0x09,0x09,0x0a,0x72,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04, +0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x1b,0x40,0x3f,0x00,0x0a,0x08,0x09,0x08,0x0a,0x09,0x80,0x00,0x0b,0x06,0x0b,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05, +0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07,0x00,0x08,0x0a,0x07,0x08,0x69,0x00,0x09,0x06,0x06,0x09,0x59,0x00,0x09,0x09,0x06,0x62,0x0d,0x01,0x06,0x09,0x06,0x52,0x59,0x40,0x1e,0x0d,0x0c,0x00,0x00,0x2d,0x2c,0x2b,0x2a,0x28,0x26,0x22,0x20,0x15,0x13,0x0c,0x2f,0x0d,0x2f,0x00,0x0b,0x00,0x0b,0x11,0x11, +0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x07,0x27,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x37,0x27,0x33,0x17,0x23,0x27,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca, +0x01,0x1a,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x21,0x2d,0x05,0x05,0x3e,0x2d,0x2d,0x3e,0x3e,0x2d,0x0a,0x09,0x36,0x4b,0x8e,0x4b,0x30,0x1c,0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x3a,0x2e,0x36,0x0b,0x1a,0x0d,0x31,0x41,0x41,0x31,0x31,0x41,0x02,0x46,0xb7, +0x3e,0x09,0x00,0x00,0x00,0x02,0x00,0x34,0xff,0xfb,0x02,0x3a,0x02,0xda,0x00,0x0b,0x00,0x27,0x00,0x62,0x40,0x5f,0x00,0x08,0x09,0x0b,0x09,0x08,0x0b,0x80,0x00,0x0b,0x0a,0x09,0x0b,0x0a,0x7e,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x0c,0x01,0x05,0x00,0x00,0x07,0x05,0x00,0x67,0x00,0x07, +0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x0a,0x06,0x06,0x0a,0x59,0x00,0x0a,0x0a,0x06,0x61,0x0d,0x01,0x06,0x0a,0x06,0x51,0x0d,0x0c,0x00,0x00,0x25,0x24,0x22,0x20,0x1c,0x1a,0x18,0x17,0x15,0x13,0x0c,0x27,0x0d,0x27,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0e,0x06,0x1b,0x2b,0x01,0x15,0x21,0x11,0x21,0x15,0x23,0x15,0x33,0x15, +0x23,0x15,0x01,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x33,0x06,0x06,0x01,0x5e,0xfe,0xd6,0x01,0x2a,0xe8,0xca,0xca,0x01,0x21,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x39,0x5a,0x10,0x44,0x0b,0x35,0x1f,0x2e,0x3d,0x3d,0x2e,0x1f,0x35,0x0b,0x44,0x10,0x5a, +0x01,0xc5,0x3a,0x01,0x4f,0x3a,0x56,0x2f,0x56,0xfe,0x36,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x3e,0x32,0x18,0x1e,0x41,0x32,0x31,0x41,0x1e,0x18,0x31,0x3f,0x00,0x00,0x00,0x00,0x02,0x00,0x3e,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x09,0x00,0x35,0x00,0x61,0x40,0x5e,0x0b,0x01,0x04,0x03,0x08,0x03,0x04,0x08,0x80,0x00,0x09,0x0a,0x06,0x0a, +0x09,0x06,0x80,0x00,0x06,0x07,0x0a,0x06,0x07,0x7e,0x00,0x00,0x00,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x08,0x00,0x0a,0x09,0x08,0x0a,0x69,0x00,0x07,0x05,0x05,0x07,0x59,0x00,0x07,0x07,0x05,0x61,0x0c,0x01,0x05,0x07,0x05,0x51,0x0b,0x0a,0x00,0x00,0x29,0x26,0x24,0x23,0x21,0x1e,0x13,0x10,0x0e, +0x0d,0x0a,0x35,0x0b,0x34,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0d,0x06,0x1a,0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17, +0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x01,0x04,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x71,0x3a,0x31,0x16,0x1b, +0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x3e,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x09,0x00,0x13,0x00,0x55,0x40,0x52,0x0a,0x01,0x04,0x03,0x05,0x03,0x04,0x05,0x80,0x0b,0x01,0x09,0x08,0x09,0x86,0x00,0x00,0x00, +0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x00,0x03,0x04,0x02,0x03,0x67,0x00,0x05,0x00,0x06,0x07,0x05,0x06,0x67,0x00,0x07,0x08,0x08,0x07,0x57,0x00,0x07,0x07,0x08,0x5f,0x00,0x08,0x07,0x08,0x4f,0x0a,0x0a,0x00,0x00,0x0a,0x13,0x0a,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x0c,0x0b,0x00,0x09,0x00,0x09,0x11,0x11,0x11,0x11,0x0c,0x06,0x1a, +0x2b,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x13,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x3e,0x01,0x2a,0xe8,0xca,0xca,0x86,0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0x3a,0x56,0x3a,0x85,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0xff,0xfc,0x02,0x2f,0x02,0xdf,0x00,0x1f, +0x00,0x4b,0x00,0x65,0x40,0x62,0x00,0x01,0x02,0x05,0x02,0x01,0x05,0x80,0x00,0x0b,0x0c,0x08,0x0c,0x0b,0x08,0x80,0x00,0x08,0x09,0x0c,0x08,0x09,0x7e,0x00,0x00,0x00,0x02,0x01,0x00,0x02,0x69,0x00,0x05,0x00,0x04,0x03,0x05,0x04,0x67,0x00,0x03,0x00,0x06,0x0a,0x03,0x06,0x69,0x00,0x0a,0x00,0x0c,0x0b,0x0a,0x0c,0x69,0x00,0x09,0x07, +0x07,0x09,0x59,0x00,0x09,0x09,0x07,0x61,0x0d,0x01,0x07,0x09,0x07,0x51,0x21,0x20,0x3f,0x3c,0x3a,0x39,0x37,0x34,0x29,0x26,0x24,0x23,0x20,0x4b,0x21,0x4a,0x24,0x11,0x12,0x24,0x22,0x12,0x23,0x0e,0x06,0x1d,0x2b,0x13,0x34,0x36,0x36,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x37,0x23,0x35, +0x33,0x15,0x14,0x06,0x06,0x23,0x22,0x26,0x26,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x20,0x2e,0x4f,0x32,0x39,0x59,0x10,0x44,0x0b,0x34,0x1f, +0x2e,0x3d,0x3d,0x2e,0x20,0x36,0x0d,0x63,0xa7,0x2c,0x4b,0x30,0x32,0x4f,0x2e,0x01,0x64,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x02,0x32,0x32,0x4e,0x2d,0x3d,0x2d,0x14,0x1c,0x41,0x32,0x31, +0x41,0x20,0x27,0x39,0x0e,0x33,0x4d,0x2c,0x2d,0x4e,0xfd,0xfb,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0b,0x00,0x13,0x00,0x4c,0x40,0x49,0x02,0x01, +0x00,0x01,0x00,0x85,0x0a,0x05,0x02,0x03,0x04,0x07,0x04,0x03,0x07,0x80,0x0b,0x01,0x09,0x06,0x09,0x86,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x67,0x00,0x07,0x06,0x06,0x07,0x57,0x00,0x07,0x07,0x06,0x5f,0x08,0x01,0x06,0x07,0x06,0x4f,0x0c,0x0c,0x00,0x00,0x0c,0x13,0x0c,0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11, +0x11,0x11,0x11,0x11,0x0c,0x06,0x1b,0x2b,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35,0x23,0x15,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0x2d,0x42,0xb2,0x42,0x42,0xb2,0x01,0x00,0x98,0x01,0x72,0x98,0x01,0x8b,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0xfe,0x75,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x00,0x04,0xff,0xf6, +0x00,0x32,0x02,0x62,0x02,0x9e,0x00,0x0f,0x00,0x21,0x00,0x27,0x00,0x2d,0x00,0x50,0x40,0x4d,0x2c,0x23,0x19,0x03,0x00,0x05,0x01,0x4c,0x07,0x01,0x00,0x05,0x00,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x69,0x04,0x01,0x03,0x05,0x05,0x03,0x57,0x04,0x01,0x03,0x03,0x05,0x5f,0x0a,0x06,0x09,0x03,0x05,0x03,0x05,0x4f,0x28,0x28, +0x22,0x22,0x11,0x10,0x01,0x00,0x28,0x2d,0x28,0x2d,0x22,0x27,0x22,0x27,0x1e,0x1d,0x15,0x14,0x10,0x21,0x11,0x21,0x09,0x07,0x00,0x0f,0x01,0x0f,0x0b,0x06,0x16,0x2b,0x25,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x14,0x06,0x06,0x03,0x22,0x06,0x06,0x07,0x33,0x17,0x16,0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x2e, +0x02,0x13,0x07,0x3e,0x02,0x37,0x21,0x1e,0x02,0x17,0x27,0x01,0x2c,0x58,0x8d,0x51,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c,0x59,0x46,0x71,0x47,0x05,0x77,0x59,0x0e,0x19,0x0c,0x0c,0x1b,0x0d,0x59,0x76,0x05,0x47,0x71,0x60,0x8c,0x40,0x66,0x3e,0x05,0xfd,0xfa,0x05,0x3d,0x64,0x3f,0x8b,0x32,0x51,0x8d,0x58,0x59,0x8c,0x51,0x51,0x8c, +0x59,0x58,0x8d,0x51,0x02,0x3a,0x3e,0x6b,0x44,0x97,0x16,0x2f,0x17,0x17,0x2f,0x16,0x97,0x44,0x6b,0x3e,0xfe,0xe6,0xed,0x06,0x40,0x67,0x40,0x40,0x66,0x40,0x06,0xec,0x00,0x02,0x00,0x51,0x00,0x00,0x02,0x07,0x02,0x30,0x00,0x04,0x00,0x09,0x00,0x28,0x40,0x25,0x09,0x08,0x07,0x03,0x02,0x01,0x06,0x01,0x4a,0x00,0x01,0x00,0x00,0x01, +0x57,0x00,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x00,0x00,0x06,0x05,0x00,0x04,0x00,0x04,0x03,0x06,0x16,0x2b,0x33,0x11,0x37,0x17,0x11,0x25,0x21,0x11,0x27,0x07,0x51,0xdb,0xdb,0xfe,0x7c,0x01,0x52,0xa9,0xa9,0x01,0x5b,0xd5,0xd5,0xfe,0xa5,0x32,0x01,0x11,0xa5,0xa5,0x00,0x00,0x00,0x04,0x00,0x14,0x00,0x00,0x02,0x44, +0x03,0x16,0x00,0x06,0x00,0x0d,0x00,0x17,0x00,0x1b,0x00,0x53,0x40,0x50,0x08,0x06,0x02,0x03,0x4a,0x0a,0x05,0x02,0x03,0x02,0x01,0x00,0x04,0x03,0x00,0x67,0x00,0x04,0x00,0x01,0x07,0x04,0x01,0x67,0x0b,0x01,0x07,0x0c,0x01,0x09,0x08,0x07,0x09,0x67,0x00,0x08,0x06,0x06,0x08,0x57,0x00,0x08,0x08,0x06,0x5f,0x00,0x06,0x08,0x06,0x4f, +0x18,0x18,0x0e,0x0e,0x07,0x07,0x18,0x1b,0x18,0x1b,0x1a,0x19,0x0e,0x17,0x0e,0x17,0x14,0x11,0x07,0x0d,0x07,0x0d,0x11,0x14,0x11,0x11,0x10,0x0d,0x06,0x1b,0x2b,0x01,0x23,0x15,0x23,0x35,0x23,0x01,0x13,0x27,0x07,0x33,0x15,0x33,0x35,0x13,0x15,0x14,0x06,0x23,0x23,0x22,0x26,0x35,0x35,0x17,0x15,0x33,0x35,0x02,0x44,0x9b,0xfa,0x9b, +0x01,0x18,0xba,0xba,0xba,0x6c,0x9c,0x2f,0x21,0x1b,0x82,0x1b,0x21,0x2f,0x9c,0x01,0xe5,0xd6,0xd6,0x01,0x31,0xfe,0xf5,0xcd,0xcd,0xd6,0xd6,0xfe,0xb4,0x83,0x1b,0x21,0x21,0x1b,0x83,0x26,0x71,0x71,0x00,0x00,0x00,0x02,0xff,0x5b,0x00,0x41,0x02,0x8f,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, +0x10,0x0f,0x0e,0x0d,0x0c,0x02,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x05,0x03,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x25,0x21,0x01,0x01,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x27,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x07,0x17,0x37,0x17,0x02,0x2e,0xfe,0x5c,0xfe,0xd1,0x01,0x33, +0x01,0xa0,0x2c,0x35,0x35,0x17,0x9e,0x9b,0x43,0x9b,0x9a,0x48,0x9c,0x99,0x45,0x98,0x9b,0x41,0x01,0x2c,0x01,0x36,0x36,0x2c,0xfe,0x62,0x2b,0x37,0x96,0x9c,0x9c,0x43,0x9b,0x9b,0x47,0x9c,0x99,0x44,0x99,0x9b,0x00,0x02,0xff,0xc9,0x00,0x41,0x02,0xfd,0x02,0xa3,0x00,0x0a,0x00,0x16,0x00,0x29,0x40,0x26,0x16,0x15,0x14,0x13,0x12,0x11, +0x10,0x0f,0x0e,0x0d,0x0c,0x09,0x0c,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0a,0x01,0x0a,0x03,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x01,0x01,0x25,0x17,0x37,0x17,0x37,0x27,0x37,0x27,0x07,0x27,0x07,0x17,0x2a,0x2b,0x36,0x36,0x2b,0x01,0xa0,0x01, +0x33,0xfe,0xd1,0xfe,0x47,0x48,0x9b,0x98,0x45,0x99,0x9c,0x48,0x9a,0x9b,0x43,0x9b,0x41,0x37,0x2b,0x01,0x9e,0x2c,0x36,0xfe,0xca,0xfe,0xd4,0x96,0x47,0x9b,0x99,0x44,0x99,0x9c,0x47,0x9b,0x9b,0x43,0x9c,0x00,0x00,0x09,0xff,0xa9,0x00,0x41,0x02,0xaf,0x02,0xa3,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x1d,0x00,0x21,0x00,0x25,0x00,0x29, +0x00,0x2d,0x00,0x31,0x00,0x64,0x40,0x61,0x00,0x01,0x0a,0x07,0x05,0x03,0x03,0x02,0x01,0x03,0x67,0x09,0x08,0x04,0x03,0x02,0x10,0x0e,0x02,0x0c,0x06,0x02,0x0c,0x67,0x0f,0x0d,0x0b,0x03,0x06,0x00,0x12,0x11,0x06,0x12,0x67,0x00,0x11,0x00,0x00,0x11,0x57,0x00,0x11,0x11,0x00,0x60,0x13,0x01,0x00,0x11,0x00,0x50,0x01,0x00,0x31,0x30, +0x2f,0x2e,0x2d,0x2c,0x2b,0x2a,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x09,0x06,0x00,0x0f,0x01,0x0e,0x14,0x06,0x16,0x2b,0x37,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x21,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x23,0x17,0x33, +0x35,0x23,0x01,0x33,0x11,0x23,0x15,0x33,0x23,0x33,0x35,0x23,0x03,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x17,0x33,0x35,0x23,0x01,0x21,0x35,0x21,0x14,0x2f,0x3c,0x36,0x2b,0x02,0x44,0x2c,0x35,0x35,0x2c,0xfd,0x9f,0x6c,0x6c,0x98,0x6c,0x6c,0x01,0x7a,0x6c,0xb6,0x4a,0xe2,0x6c,0x6c,0xe6,0x6c,0x6c,0x98,0x6c,0x6c,0x98,0x6c,0x6c,0xfe, +0x86,0x01,0xe6,0xfe,0x1a,0x41,0x3c,0x2f,0x01,0x95,0x2c,0x36,0x36,0x2c,0xfe,0x61,0x2b,0x36,0x01,0x9e,0x80,0x80,0x80,0xfe,0xd4,0x01,0x2c,0x80,0x80,0xfe,0xd4,0x80,0x80,0x80,0x80,0x80,0xfe,0xd4,0x80,0x00,0x00,0x02,0x00,0x0a,0x00,0x00,0x02,0x4e,0x02,0xda,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x01,0x07,0x05,0x02, +0x00,0x02,0x01,0x00,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x06,0x01,0x03,0x02,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x06,0x19,0x2b,0x21,0x03,0x23,0x35,0x33,0x13,0x33,0x15,0x03,0x35,0x33,0x15,0x01,0x69,0xbc,0xa3,0xe5,0xbd,0xa2,0xcc,0xcc, +0x02,0x8a,0x50,0xfd,0x76,0x50,0x02,0x8a,0x50,0x50,0x00,0x00,0x00,0x01,0x00,0x64,0xff,0xe2,0x01,0xf4,0x02,0xdb,0x00,0x16,0x00,0x3f,0x40,0x3c,0x12,0x01,0x08,0x49,0x00,0x03,0x02,0x03,0x85,0x09,0x01,0x08,0x07,0x08,0x86,0x04,0x01,0x02,0x05,0x01,0x01,0x00,0x02,0x01,0x67,0x06,0x01,0x00,0x07,0x07,0x00,0x57,0x06,0x01,0x00,0x00, +0x07,0x5f,0x0a,0x01,0x07,0x00,0x07,0x4f,0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x10,0x0b,0x06,0x1f,0x2b,0x13,0x33,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x07,0x27,0x33,0x35,0x23,0x6e,0x93,0x93,0x93,0x56,0x93,0x93,0x93,0x93,0x9d,0xc2,0xce,0x9d,0x93,0x01,0x94, +0x59,0x50,0x9e,0x9e,0x50,0x59,0x50,0x7e,0xe4,0xe4,0x7e,0x00,0x00,0x01,0x00,0x64,0xff,0xff,0x01,0xf4,0x02,0xf8,0x00,0x16,0x00,0x44,0x40,0x41,0x05,0x01,0x01,0x4a,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x07,0x06,0x07,0x86,0x03,0x01,0x00,0x0b,0x0a,0x02,0x04,0x05,0x00,0x04,0x67,0x09,0x01,0x05,0x06,0x06,0x05,0x57,0x09,0x01,0x05, +0x05,0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x00,0x00,0x00,0x16,0x00,0x16,0x15,0x14,0x11,0x11,0x11,0x11,0x11,0x11,0x12,0x11,0x11,0x0c,0x06,0x1f,0x2b,0x13,0x35,0x33,0x35,0x23,0x37,0x17,0x23,0x15,0x33,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x23,0x35,0x33,0x35,0x6e,0x93,0x9d,0xce,0xc2,0x9d,0x93,0x93,0x93,0x93,0x56, +0x93,0x93,0x01,0x46,0x50,0x7e,0xe4,0xe4,0x7e,0x50,0x59,0x50,0x9e,0x9e,0x50,0x59,0x00,0x06,0x00,0x00,0x00,0x48,0x02,0x58,0x02,0x9c,0x00,0x0a,0x00,0x0e,0x00,0x19,0x00,0x24,0x00,0x2f,0x00,0x5f,0x00,0x6e,0x40,0x6b,0x0f,0x01,0x0d,0x05,0x01,0x01,0x00,0x0d,0x01,0x69,0x0e,0x14,0x04,0x03,0x00,0x10,0x0c,0x02,0x03,0x02,0x00,0x03, +0x69,0x11,0x0b,0x02,0x02,0x13,0x08,0x15,0x03,0x06,0x07,0x02,0x06,0x69,0x09,0x01,0x07,0x0a,0x0a,0x07,0x59,0x09,0x01,0x07,0x07,0x0a,0x61,0x12,0x16,0x02,0x0a,0x07,0x0a,0x51,0x31,0x30,0x1b,0x1a,0x10,0x0f,0x5c,0x5b,0x58,0x56,0x52,0x50,0x4f,0x4d,0x49,0x47,0x44,0x43,0x40,0x3e,0x3a,0x38,0x37,0x35,0x30,0x5f,0x31,0x5f,0x2e,0x2c, +0x28,0x26,0x20,0x1e,0x1a,0x24,0x1b,0x24,0x15,0x13,0x0f,0x19,0x10,0x19,0x11,0x12,0x24,0x21,0x17,0x06,0x1a,0x2b,0x01,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x03,0x33,0x35,0x23,0x27,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x05,0x23,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x05,0x35,0x23,0x22,0x06, +0x15,0x14,0x16,0x33,0x32,0x36,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x35,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x33,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x23,0x15,0x14,0x06,0x01,0x9c,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xa6, +0x6c,0x6c,0x7b,0x41,0x25,0x1c,0x1c,0x25,0x25,0x01,0x7e,0x41,0x25,0x1c,0x1c,0x25,0x25,0xfe,0xc3,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x34,0x47,0x47,0x34,0x41,0x41,0x34,0x47,0x47,0x34,0x35,0x46,0x6c,0x47,0x34,0x35,0x46,0x46,0x35,0x41,0x41,0x35,0x46,0x46,0x35,0x34,0x47,0x6c,0x46,0x02,0x24,0x41,0x25,0x1c,0x1c,0x25,0x25, +0xfe,0xf8,0x74,0x37,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0xe2,0x41,0x1c,0x25,0x25,0x1c,0x1c,0x25,0x41,0x41,0x25,0x1c,0x1c,0x25,0x25,0x5c,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x44,0x34,0x34,0x44,0x74,0x44,0x34,0x34,0x44,0x44,0x34,0x41,0x41,0x34,0x44,0x00,0x00,0x00,0x00,0x02,0xff,0xec, +0x00,0x32,0x02,0x67,0x02,0xda,0x00,0x11,0x00,0x1a,0x00,0x3d,0x40,0x3a,0x19,0x02,0x02,0x00,0x04,0x1a,0x01,0x02,0x03,0x05,0x02,0x4c,0x12,0x00,0x02,0x02,0x49,0x00,0x01,0x00,0x04,0x00,0x01,0x04,0x67,0x00,0x00,0x00,0x05,0x03,0x00,0x05,0x67,0x00,0x03,0x02,0x02,0x03,0x57,0x00,0x03,0x03,0x02,0x5f,0x00,0x02,0x03,0x02,0x4f,0x11, +0x11,0x12,0x25,0x33,0x13,0x06,0x06,0x1c,0x2b,0x25,0x01,0x01,0x15,0x33,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x21,0x07,0x35,0x21,0x11,0x23,0x11,0x23,0x35,0x07,0x01,0x1d,0xfe,0xcf,0x01,0x31,0x4c,0x21,0x1b,0x86,0x1b,0x21,0x21,0x1b,0xfe,0xf2,0x2c,0x01,0x47,0xa0,0xa7,0xc5,0x32,0x01,0x1d,0x01,0x1d,0xa5, +0xd7,0x1b,0x21,0x21,0x1b,0xfe,0x76,0x1b,0x21,0x40,0x6b,0x01,0xaa,0xfe,0xee,0x6c,0xb8,0x00,0x00,0x00,0x00,0x02,0x00,0x52,0x00,0x00,0x02,0x30,0x02,0xda,0x00,0x05,0x00,0x0f,0x00,0x48,0x40,0x45,0x00,0x00,0x01,0x00,0x85,0x09,0x01,0x07,0x06,0x07,0x86,0x00,0x01,0x08,0x01,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03, +0x04,0x67,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x05,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x0f,0x06,0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0a,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x21,0x15,0x23,0x15,0x33,0x15,0x23,0x15,0x52,0x42,0xde,0x6c, +0x01,0x2a,0xe8,0xca,0xca,0x01,0x8b,0x01,0x4f,0xfe,0xed,0x3c,0xfe,0x75,0x01,0x4f,0x3a,0x56,0x3a,0x85,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x1e,0x00,0x54,0x40,0x51,0x0c,0x03,0x02,0x02,0x00,0x19,0x01,0x08,0x05,0x02,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x0a,0x03,0x02,0x02,0x04,0x02,0x85,0x06,0x01, +0x04,0x05,0x04,0x85,0x0b,0x09,0x02,0x07,0x08,0x07,0x86,0x00,0x05,0x08,0x08,0x05,0x57,0x00,0x05,0x05,0x08,0x5f,0x00,0x08,0x05,0x08,0x4f,0x12,0x12,0x00,0x00,0x12,0x1e,0x12,0x1e,0x1d,0x1c,0x1b,0x1a,0x18,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0c,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35, +0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x15,0x33,0x37,0x33,0x07,0x17,0x23,0x27,0x23,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x87,0x42,0x4f,0x60,0x4a,0x71,0x7b,0x4e,0x66,0x4f,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe, +0x75,0x01,0x4f,0x86,0x86,0xa1,0xae,0x8f,0x8f,0x00,0x00,0x00,0x00,0x02,0x00,0x2d,0x00,0x00,0x02,0x3a,0x02,0xda,0x00,0x11,0x00,0x17,0x00,0x43,0x40,0x40,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x07,0x03,0x02,0x02,0x04,0x02,0x85,0x00,0x04,0x05,0x04,0x85,0x00,0x05,0x06,0x06,0x05,0x57,0x00,0x05,0x05, +0x06,0x5f,0x08,0x01,0x06,0x05,0x06,0x4f,0x12,0x12,0x00,0x00,0x12,0x17,0x12,0x17,0x16,0x15,0x14,0x13,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x09,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0x13,0x11,0x33,0x11,0x33,0x15,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05, +0x02,0xac,0x42,0xde,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0xfe,0x75,0x01,0x4f,0xfe,0xed,0x3c,0x00,0x00,0x02,0x00,0x2d,0xff,0xf6,0x02,0x2b,0x02,0xda,0x00,0x11,0x00,0x23,0x00,0x46,0x40,0x43,0x0c,0x03,0x02,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x08, +0x03,0x02,0x02,0x05,0x02,0x85,0x07,0x01,0x05,0x06,0x05,0x85,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x00,0x00,0x20,0x1f,0x1c,0x1a,0x17,0x16,0x12,0x23,0x13,0x23,0x00,0x11,0x00,0x11,0x11,0x16,0x11,0x0a,0x06,0x19,0x2b,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11, +0x23,0x03,0x1e,0x02,0x15,0x15,0x01,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x2d,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x22,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x01,0x8b,0x01,0x4f,0xfe,0xf7,0x1e,0x25,0x31,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26, +0x31,0x2d,0x69,0xfe,0x6b,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0x00,0x00,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0xd5,0x00,0x0d,0x00,0x37,0x00,0x32,0x40,0x2f,0x00,0x01,0x00,0x01,0x85,0x04,0x01,0x00,0x03,0x00,0x85,0x00,0x03,0x02,0x02,0x03,0x59,0x00,0x03,0x03,0x02,0x61,0x05,0x01,0x02,0x03, +0x02,0x51,0x0f,0x0e,0x01,0x00,0x24,0x22,0x0e,0x37,0x0f,0x37,0x08,0x06,0x00,0x0d,0x01,0x0d,0x06,0x06,0x16,0x2b,0x25,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x07,0x22,0x2e,0x02,0x35,0x34,0x36,0x37,0x36,0x36,0x17,0x16,0x06,0x07,0x06,0x06,0x15,0x14,0x16,0x16,0x33,0x32,0x36,0x36,0x35,0x34,0x26,0x27, +0x26,0x26,0x37,0x36,0x16,0x17,0x16,0x16,0x15,0x14,0x0e,0x02,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x17,0x43,0x74,0x58,0x31,0x32,0x2a,0x15,0x33,0x10,0x10,0x07,0x14,0x19,0x1d,0x34,0x5d,0x3c,0x3c,0x5d,0x34,0x1c,0x1a,0x14,0x07,0x10,0x11,0x32,0x15,0x2b,0x31,0x31,0x58,0x74,0xe1,0x23,0x19,0x01,0x7c,0x19,0x23,0x23,0x19, +0xfe,0x84,0x19,0x23,0xeb,0x30,0x57,0x72,0x42,0x41,0x72,0x2b,0x16,0x07,0x11,0x10,0x30,0x17,0x1c,0x4b,0x2c,0x3d,0x5f,0x36,0x36,0x5f,0x3d,0x2c,0x4b,0x1c,0x17,0x30,0x10,0x11,0x07,0x16,0x2a,0x73,0x41,0x42,0x72,0x57,0x30,0x00,0x00,0x03,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x00,0x49,0x40,0x46, +0x00,0x05,0x03,0x04,0x03,0x05,0x04,0x80,0x08,0x01,0x04,0x02,0x03,0x04,0x02,0x7e,0x00,0x01,0x00,0x03,0x05,0x01,0x03,0x69,0x07,0x01,0x02,0x00,0x00,0x02,0x59,0x07,0x01,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x02,0x00,0x51,0x25,0x24,0x15,0x14,0x01,0x00,0x2c,0x2a,0x24,0x31,0x25,0x31,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00, +0x13,0x01,0x13,0x09,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x37,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43, +0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a,0x3a,0x61,0x3c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x46,0x23,0x19,0xb4,0x19,0x23,0x23,0x19, +0xb4,0x19,0x23,0x00,0x00,0x02,0xff,0xec,0xff,0xf6,0x02,0x6c,0x02,0x6c,0x00,0x13,0x00,0x23,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x15,0x14,0x01,0x00,0x1d,0x1b,0x14,0x23,0x15,0x23,0x0b,0x09,0x00,0x13,0x01, +0x13,0x06,0x06,0x16,0x2b,0x05,0x22,0x2e,0x02,0x35,0x34,0x3e,0x02,0x33,0x32,0x1e,0x02,0x15,0x14,0x0e,0x02,0x27,0x32,0x36,0x36,0x35,0x34,0x26,0x26,0x23,0x22,0x06,0x06,0x15,0x14,0x16,0x16,0x01,0x2c,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x43,0x74,0x58,0x31,0x31,0x58,0x74,0x43,0x3c,0x62,0x39,0x39,0x62,0x3c,0x3c,0x61,0x3a, +0x3a,0x61,0x0a,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x30,0x57,0x72,0x42,0x42,0x72,0x57,0x30,0x5f,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x3b,0x64,0x3d,0x3d,0x64,0x3b,0x00,0x01,0x00,0xf5,0xff,0xfb,0x01,0x63,0x02,0x67,0x00,0x0d,0x00,0x18,0x40,0x15,0x00,0x01,0x00,0x01,0x85,0x02,0x01,0x00,0x00,0x76,0x01,0x00,0x08,0x06,0x00,0x0d, +0x01,0x0d,0x03,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x01,0x2c,0x16,0x21,0x21,0x16,0x17,0x20,0x20,0x05,0x23,0x19,0x01,0xf4,0x19,0x23,0x23,0x19,0xfe,0x0c,0x19,0x23,0x00,0x00,0x00,0x01,0x00,0x06,0xff,0xf7,0x02,0x66,0x02,0x57,0x00,0x15,0x00,0x16,0x40,0x13,0x0f,0x07,0x02,0x00, +0x4a,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x01,0x76,0x15,0x1d,0x02,0x06,0x18,0x2b,0x37,0x26,0x26,0x36,0x36,0x37,0x36,0x37,0x06,0x06,0x16,0x17,0x16,0x16,0x36,0x37,0x06,0x07,0x0e,0x02,0x26,0x64,0x2f,0x2f,0x01,0x30,0x30,0x27,0x2b,0x1e,0x05,0x2e,0x2e,0x2f,0x82,0x89,0x3a,0x16,0x27,0x30,0x75,0x7c,0x75,0x55,0x2f,0x75,0x7c,0x75, +0x30,0x27,0x16,0x39,0x8a,0x82,0x2e,0x2f,0x2e,0x05,0x1e,0x2b,0x27,0x30,0x30,0x01,0x2f,0x00,0x00,0x00,0x00,0x02,0x00,0x23,0x01,0x4a,0x02,0x35,0x02,0xda,0x00,0x03,0x00,0x09,0x00,0x34,0x40,0x31,0x08,0x05,0x02,0x02,0x01,0x01,0x4c,0x05,0x03,0x02,0x02,0x01,0x02,0x86,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x04, +0x01,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x06,0x06,0x17,0x2b,0x13,0x35,0x21,0x15,0x09,0x02,0x23,0x27,0x07,0x37,0x01,0xea,0xfe,0x02,0x01,0x09,0x01,0x09,0x6e,0x9a,0x9e,0x02,0x8a,0x50,0x50,0xfe,0xc0,0x01,0x0e,0xfe,0xf2,0xa2,0xa2,0x00,0x00,0x00,0x00,0x03,0x00,0x2d, +0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x0d,0x00,0x16,0x00,0x42,0x00,0x6b,0x40,0x68,0x08,0x01,0x02,0x04,0x01,0x4c,0x0c,0x03,0x02,0x01,0x02,0x09,0x02,0x01,0x09,0x80,0x00,0x0a,0x0b,0x07,0x0b,0x0a,0x07,0x80,0x00,0x07,0x08,0x0b,0x07,0x08,0x7e,0x00,0x00,0x00,0x05,0x04,0x00,0x05,0x67,0x00,0x04,0x00,0x02,0x01,0x04,0x02,0x67,0x00, +0x09,0x00,0x0b,0x0a,0x09,0x0b,0x69,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0d,0x01,0x06,0x08,0x06,0x51,0x18,0x17,0x00,0x00,0x36,0x33,0x31,0x30,0x2e,0x2b,0x20,0x1d,0x1b,0x1a,0x17,0x42,0x18,0x41,0x16,0x14,0x10,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x16,0x21,0x0e,0x06,0x19,0x2b,0x13,0x11,0x33,0x32,0x16,0x15,0x14, +0x06,0x07,0x17,0x23,0x27,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x01,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x2d,0xc6,0x38,0x44, +0x34,0x2b,0x67,0x50,0x64,0x54,0x85,0x19,0x1f,0x1e,0x19,0x86,0x01,0x15,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x01,0x8b,0x01,0x4f,0x3d,0x2f,0x28,0x32,0x06,0x83,0x81,0x81,0xb3,0x1b,0x15, +0x16,0x1c,0xfd,0x5c,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x00,0x03,0xff,0xf6,0xff,0xf5,0x02,0x62,0x02,0xe4,0x00,0x14,0x00,0x27,0x00,0x35,0x00,0x53,0x40,0x50,0x00,0x03,0x06,0x02,0x06,0x03,0x02,0x80, +0x00,0x01,0x00,0x04,0x05,0x01,0x04,0x69,0x00,0x05,0x00,0x06,0x03,0x05,0x06,0x69,0x00,0x02,0x00,0x08,0x07,0x02,0x08,0x69,0x0a,0x01,0x07,0x00,0x00,0x07,0x59,0x0a,0x01,0x07,0x07,0x00,0x61,0x09,0x01,0x00,0x07,0x00,0x51,0x2a,0x28,0x01,0x00,0x31,0x2e,0x28,0x35,0x2a,0x35,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x18,0x17,0x16,0x15,0x0b, +0x09,0x00,0x14,0x01,0x14,0x0b,0x06,0x16,0x2b,0x05,0x22,0x27,0x03,0x26,0x35,0x34,0x37,0x13,0x36,0x33,0x32,0x17,0x13,0x16,0x16,0x15,0x14,0x07,0x03,0x06,0x03,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x17,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x01, +0x2c,0x23,0x23,0xd4,0x1c,0x1b,0xd5,0x23,0x23,0x23,0x23,0xd5,0x0e,0x0d,0x1c,0xd4,0x22,0x48,0x35,0x2c,0x33,0x3e,0x35,0x3f,0x3f,0x1c,0x21,0x21,0x1c,0x21,0x13,0x12,0x0e,0x11,0x11,0x0e,0x12,0x0d,0x11,0x11,0x0b,0x2a,0x01,0x03,0x23,0x23,0x24,0x22,0x01,0x0b,0x2b,0x2b,0xfe,0xf5,0x11,0x24,0x11,0x23,0x23,0xfe,0xfd,0x2a,0x01,0x20, +0x35,0x02,0x38,0x2d,0x32,0x3a,0x32,0x20,0x1d,0x1c,0x23,0xc5,0x13,0x0d,0x0e,0x12,0x12,0x0e,0x0d,0x13,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2e,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c, +0x01,0x00,0x08,0x02,0x00,0x69,0x00,0x08,0x09,0x01,0x07,0x06,0x08,0x07,0x67,0x0a,0x01,0x06,0x0b,0x0b,0x06,0x57,0x0a,0x01,0x06,0x06,0x0b,0x5f,0x0d,0x01,0x0b,0x06,0x0b,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b, +0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x35,0x33,0x35,0x23,0x35,0x21,0x15,0x23,0x15,0x33,0x15,0xbc,0x40, +0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x1d,0x7d,0x7d,0x01,0x3c,0x7d,0x7d,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11, +0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x3c,0xd7,0x3c,0x3c,0xd7,0x3c,0x00,0x00,0x00,0x00,0x03,0x00,0x25,0xff,0xfb,0x02,0x3f,0x02,0xde,0x00,0x2b,0x00,0x3b,0x00,0x47,0x00,0x61,0x40,0x5e,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, +0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x0c,0x01,0x08,0x06,0x06,0x08,0x59,0x0c,0x01,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x3d,0x3c,0x2d,0x2c,0x01,0x00,0x43,0x41,0x3c,0x47,0x3d,0x47,0x35,0x33,0x2c,0x3b,0x2d,0x3b,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00, +0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x22,0x26,0x26,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15, +0x14,0x06,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0xbb,0x32,0x4f,0x2e,0x2e,0x4f,0x32,0x32,0x4f,0x2e,0x2e,0x4f,0x32, +0x2d,0x3e,0x3e,0x2d,0x2d,0x3e,0x3e,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x74,0x2d,0x4e,0x31,0x32,0x4e,0x2d,0x2d,0x4e,0x32,0x31,0x4e,0x2d,0x3a,0x41,0x31,0x31,0x42,0x42,0x31,0x31,0x41,0x00,0x00, +0x00,0x03,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x36,0x00,0x3f,0x00,0x62,0x40,0x5f,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x0c,0x01,0x08,0x07,0x08,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0b,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x0a,0x09,0x06, +0x0a,0x67,0x00,0x09,0x07,0x07,0x09,0x57,0x00,0x09,0x09,0x07,0x5f,0x00,0x07,0x09,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x3f,0x3d,0x39,0x37,0x2c,0x36,0x2c,0x36,0x35,0x33,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0d,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35, +0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x23,0x15,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c, +0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x2a,0xbf,0x38,0x44,0x44,0x38,0x7d,0x7e,0x19,0x1f,0x1e,0x19,0x7f,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a, +0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x3f,0x2f,0x2e,0x3e,0x75,0xaf,0x1d,0x15,0x16,0x1e,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x37,0x00,0x66,0x40,0x63,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x08,0x01,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0d,0x0b, +0x02,0x09,0x0a,0x09,0x86,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x07,0x0a,0x0a,0x07,0x57,0x00,0x07,0x07,0x0a,0x5f,0x00,0x0a,0x07,0x0a,0x4f,0x2c,0x2c,0x01,0x00,0x2c,0x37,0x2c,0x37,0x36,0x35,0x34,0x33,0x32,0x31,0x30,0x2f,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, +0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x15,0x33,0x35,0x33,0x11,0x23,0x35, +0x23,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x42,0xb2,0x42,0x42,0xb2,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11, +0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x84,0x84,0xfe,0xb1,0x8f,0x8f,0x00,0x00,0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x43,0x00,0x62,0x40,0x5f,0x3f,0x39,0x33,0x2d,0x04,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01, +0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x43,0x2c,0x43,0x3b,0x3a,0x38,0x37,0x2f,0x2e,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06, +0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x37,0x27,0x33,0x17,0x16,0x16,0x17,0x36,0x36, +0x37,0x37,0x33,0x07,0x17,0x23,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x11,0x7e,0x7d,0x4e,0x42,0x0d,0x08,0x07,0x05,0x09,0x0c,0x40,0x4d,0x7d, +0x7d,0x4f,0x41,0x0d,0x0a,0x06,0x05,0x06,0x0d,0x42,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0xa9,0xa6,0x56,0x10,0x18,0x0e,0x0e,0x18,0x10,0x56,0xa8,0xa7,0x55,0x11,0x1a,0x0d,0x0d,0x19,0x11,0x56, +0x00,0x04,0x00,0x25,0x00,0x00,0x02,0x3a,0x02,0xde,0x00,0x2b,0x00,0x39,0x00,0x42,0x00,0x4b,0x00,0x6d,0x40,0x6a,0x33,0x01,0x0b,0x08,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00,0x02,0x0c,0x01,0x00,0x06,0x02,0x00,0x69,0x00,0x06,0x00,0x09, +0x08,0x06,0x09,0x67,0x00,0x08,0x00,0x0b,0x0a,0x08,0x0b,0x67,0x00,0x0a,0x07,0x07,0x0a,0x57,0x00,0x0a,0x0a,0x07,0x5f,0x0d,0x01,0x07,0x0a,0x07,0x4f,0x2c,0x2c,0x01,0x00,0x4b,0x49,0x45,0x43,0x42,0x40,0x3c,0x3a,0x2c,0x39,0x2c,0x38,0x2f,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0e,0x06,0x16, +0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x32,0x16,0x15,0x14,0x07,0x16,0x16,0x15,0x14,0x06,0x23,0x27,0x33,0x32,0x36,0x35, +0x34,0x26,0x23,0x23,0x15,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x23,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0xc2,0x33,0x3f,0x37,0x21,0x27,0x40,0x34,0x8f,0x81,0x14,0x1a,0x19,0x14, +0x82,0x8c,0x17,0x1d,0x1d,0x17,0x8c,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f,0x2e,0x26,0x39,0x14,0x08,0x2b,0x1e,0x29,0x34,0xbf,0x17,0x13,0x13,0x19,0xdb,0x19,0x13,0x13,0x17,0x00,0x00, +0x00,0x02,0x00,0x25,0x00,0x00,0x02,0x2b,0x02,0xde,0x00,0x2b,0x00,0x3d,0x00,0x60,0x40,0x5d,0x38,0x2f,0x02,0x08,0x06,0x01,0x4c,0x00,0x04,0x05,0x01,0x05,0x04,0x01,0x80,0x00,0x01,0x02,0x05,0x01,0x02,0x7e,0x07,0x01,0x06,0x00,0x08,0x00,0x06,0x08,0x80,0x0b,0x09,0x02,0x08,0x08,0x84,0x00,0x03,0x00,0x05,0x04,0x03,0x05,0x69,0x00, +0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x0a,0x01,0x00,0x02,0x00,0x51,0x2c,0x2c,0x01,0x00,0x2c,0x3d,0x2c,0x3d,0x37,0x36,0x35,0x34,0x2e,0x2d,0x1f,0x1c,0x1a,0x19,0x17,0x14,0x09,0x06,0x04,0x03,0x00,0x2b,0x01,0x2a,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27, +0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0x13,0x11,0x33,0x13,0x2e,0x02,0x35,0x35,0x33,0x11,0x23,0x03,0x1e,0x02,0x15,0x15,0xbc,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d, +0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16,0x58,0x33,0x3b,0x4e,0x44,0x20,0x50,0xb2,0x05,0x06,0x02,0x41,0x50,0xb2,0x06,0x05,0x02,0x01,0x87,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0xfe,0x79,0x01,0x4f, +0xfe,0xf7,0x1e,0x26,0x30,0x2c,0x69,0xfe,0xb1,0x01,0x09,0x1c,0x26,0x31,0x2d,0x69,0x00,0x01,0x00,0x5a,0x00,0x00,0x02,0x12,0x02,0xe4,0x00,0x1c,0x00,0x43,0x40,0x40,0x16,0x15,0x10,0x03,0x04,0x03,0x01,0x4c,0x00,0x01,0x02,0x03,0x02,0x01,0x03,0x80,0x00,0x03,0x04,0x02,0x03,0x04,0x7e,0x00,0x02,0x02,0x00,0x61,0x06,0x01,0x00,0x00, +0x3e,0x4d,0x00,0x04,0x04,0x05,0x60,0x00,0x05,0x05,0x39,0x05,0x4e,0x01,0x00,0x14,0x13,0x12,0x11,0x0f,0x0d,0x08,0x06,0x04,0x03,0x00,0x1c,0x01,0x1c,0x07,0x09,0x16,0x2b,0x01,0x32,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x33,0x33,0x15,0x07,0x21,0x15,0x21,0x35,0x37,0x26,0x26,0x35,0x35,0x34,0x36,0x01,0x37, +0x65,0x76,0x5a,0x46,0x3c,0x3c,0x46,0x46,0x3c,0x4f,0xb3,0x01,0x2c,0xfe,0x6e,0xb0,0x5a,0x68,0x77,0x02,0xe4,0x71,0x61,0x3c,0x46,0x46,0x3c,0x32,0x3c,0x46,0x4e,0xbe,0x52,0x54,0xbb,0x07,0x6f,0x5b,0x32,0x61,0x71,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0xff,0xf6,0x02,0x0c,0x02,0xda,0x00,0x18,0x00,0x34,0x40,0x31,0x01,0x01,0x01,0x03, +0x01,0x4c,0x00,0x01,0x03,0x00,0x03,0x01,0x00,0x80,0x00,0x03,0x03,0x04,0x5f,0x05,0x01,0x04,0x04,0x38,0x4d,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x02,0x3f,0x02,0x4e,0x00,0x00,0x00,0x18,0x00,0x18,0x16,0x22,0x12,0x27,0x06,0x09,0x1a,0x2b,0x01,0x15,0x03,0x06,0x06,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x06,0x06,0x23,0x22,0x26, +0x35,0x34,0x36,0x37,0x37,0x21,0x35,0x02,0x02,0xf3,0x34,0x2d,0x45,0x3b,0x3d,0x47,0x5a,0x03,0x78,0x63,0x65,0x77,0x39,0x45,0xc5,0xfe,0xb4,0x02,0xda,0x53,0xfe,0xfc,0x37,0x59,0x2a,0x3c,0x47,0x49,0x3e,0x63,0x74,0x73,0x61,0x35,0x73,0x48,0xce,0x52,0x00,0x02,0x00,0x2d,0xff,0xfc,0x02,0x2f,0x02,0xda,0x00,0x11,0x00,0x3d,0x00,0x59, +0x40,0x56,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x08,0x09,0x05,0x09,0x08,0x05,0x80,0x00,0x05,0x06,0x09,0x05,0x06,0x7e,0x00,0x02,0x0a,0x01,0x00,0x07,0x02,0x00,0x69,0x00,0x07,0x00,0x09,0x08,0x07,0x09,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x0b,0x01,0x04,0x06,0x04,0x51,0x13,0x12,0x01,0x00,0x31,0x2e,0x2c, +0x2b,0x29,0x26,0x1b,0x18,0x16,0x15,0x12,0x3d,0x13,0x3c,0x0e,0x0d,0x0a,0x08,0x05,0x04,0x00,0x11,0x01,0x11,0x0c,0x06,0x16,0x2b,0x13,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x16,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x13,0x22,0x26,0x27,0x33,0x16,0x16,0x33,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36, +0x33,0x33,0x32,0x16,0x17,0x23,0x26,0x26,0x23,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x23,0xc8,0x45,0x56,0x42,0x31,0x28,0x28,0x31,0x42,0x56,0x77,0x40,0x52,0x05,0x42,0x03,0x2e,0x24,0x19,0x25,0x2b,0x1c,0x19,0x58,0x31,0x39,0x4a,0x3f,0x19,0x3d,0x4e,0x07,0x42,0x04,0x2b,0x21,0x19,0x21,0x26,0x1b,0x16, +0x58,0x33,0x3b,0x4e,0x44,0x01,0x81,0x53,0x47,0xbf,0xbf,0x2c,0x32,0x32,0x2c,0xbf,0xbf,0x47,0x53,0xfe,0x7b,0x3a,0x31,0x16,0x1b,0x18,0x14,0x10,0x16,0x03,0x0a,0x05,0x32,0x25,0x2d,0x35,0x33,0x2c,0x11,0x14,0x13,0x11,0x0f,0x14,0x02,0x0a,0x06,0x34,0x26,0x31,0x39,0x00,0x00,0x02,0x00,0x0f,0x00,0x00,0x02,0x49,0x02,0xda,0x00,0x0c, +0x00,0x14,0x00,0x3a,0x40,0x37,0x03,0x01,0x01,0x00,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x00,0x01,0x04,0x01,0x85,0x07,0x01,0x06,0x03,0x06,0x86,0x00,0x04,0x03,0x03,0x04,0x57,0x00,0x04,0x04,0x03,0x5f,0x05,0x01,0x03,0x04,0x03,0x4f,0x0d,0x0d,0x0d,0x14,0x0d,0x14,0x11,0x11,0x12,0x11,0x11,0x17,0x08,0x06,0x1c,0x2b,0x13,0x16, +0x16,0x17,0x36,0x36,0x37,0x37,0x33,0x03,0x23,0x03,0x33,0x01,0x11,0x23,0x35,0x21,0x15,0x23,0x11,0xad,0x08,0x12,0x02,0x02,0x10,0x07,0x57,0x48,0x94,0x4a,0x94,0x45,0x01,0x1b,0x98,0x01,0x72,0x98,0x02,0x0c,0x13,0x29,0x0e,0x0e,0x29,0x13,0xce,0xfe,0xb1,0x01,0x4f,0xfd,0x26,0x01,0x13,0x3c,0x3c,0xfe,0xed,0x00,0x00,0x02,0x00,0x37, +0x00,0x00,0x02,0x53,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x42,0x40,0x3f,0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x05,0x03,0x04,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x08,0x01,0x05,0x05,0x00,0x5f,0x07,0x01,0x00,0x00,0x39,0x00,0x4e,0x1c,0x1b,0x01,0x00,0x1f,0x1d,0x1b,0x23,0x1c,0x23,0x19,0x18, +0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x09,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x17,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e, +0x3f,0x36,0x01,0x3c,0x73,0xca,0x70,0x70,0x3c,0x47,0x47,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0xff,0x06,0x01,0xa4,0xff,0xce,0x00,0x07,0x06,0x79,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x8c, +0xff,0x2e,0x01,0xcc,0xff,0xb0,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04, +0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23, +0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x01,0x72,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0xd2,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x13,0xff,0x4c,0x01,0xf9,0x03,0x84,0x00,0x36, +0x00,0x41,0x40,0x3e,0x36,0x02,0x02,0x01,0x00,0x0c,0x06,0x05,0x03,0x03,0x01,0x08,0x01,0x04,0x03,0x22,0x1f,0x07,0x03,0x02,0x04,0x04,0x4c,0x00,0x03,0x01,0x04,0x01,0x03,0x04,0x80,0x00,0x00,0x00,0x01,0x03,0x00,0x01,0x69,0x00,0x04,0x04,0x02,0x5f,0x00,0x02,0x02,0x3d,0x02,0x4e,0x2a,0x28,0x26,0x25,0x21,0x20,0x13,0x11,0x10,0x05, +0x09,0x17,0x2b,0x01,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x23,0x35,0x26,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0xfe,0xd0,0x5a,0x40,0x41,0x02, +0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x4c,0x49,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5f,0x52,0x5a,0x57,0x66,0x5a,0x4e,0x40,0x3e,0x4a,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x03,0x84,0xa4,0x0b,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x0a,0x2a,0x3f,0x32,0x28,0x39,0x0b, +0x20,0x14,0x71,0x4d,0x52,0x6d,0x0c,0xae,0xad,0x0b,0x6c,0x58,0x3d,0x45,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0x00,0x00,0x00,0x01,0xfe,0x07,0xff,0x4c,0x02,0x01,0x03,0x84,0x00,0x36,0x00,0x48,0x40,0x45,0x21,0x1e,0x02,0x04,0x02,0x06,0x01,0x03,0x04,0x0b,0x07,0x05,0x04,0x04,0x01,0x03,0x35,0x01,0x00,0x01, +0x04,0x4c,0x00,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x00,0x02,0x00,0x04,0x03,0x02,0x04,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x4d,0x06,0x01,0x05,0x05,0x3d,0x05,0x4e,0x00,0x00,0x00,0x36,0x00,0x36,0x22,0x14,0x1d,0x2e,0x11,0x07,0x09,0x1b,0x2b,0x17,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16, +0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xf6,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x48,0x54,0x31,0x2a, +0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x47,0x56,0x5a,0x44,0x35,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5e,0x53,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x45,0x3a,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0f,0x65,0x48,0x32,0x3f,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71, +0x4d,0x50,0x6a,0x0f,0xb0,0x00,0x00,0x00,0x00,0x01,0xfb,0xc8,0xff,0x4c,0x01,0xe0,0x03,0x84,0x00,0x40,0x00,0x42,0x40,0x3f,0x21,0x1e,0x02,0x03,0x02,0x2b,0x27,0x25,0x24,0x0b,0x07,0x06,0x05,0x04,0x09,0x01,0x03,0x3f,0x26,0x02,0x00,0x01,0x03,0x4c,0x00,0x02,0x00,0x03,0x01,0x02,0x03,0x69,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00, +0x42,0x4d,0x05,0x01,0x04,0x04,0x3d,0x04,0x4e,0x00,0x00,0x00,0x40,0x00,0x40,0x33,0x31,0x1d,0x2e,0x11,0x06,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x33,0x32,0x36,0x35,0x34,0x26,0x27,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35, +0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0xfe,0xb7,0x6d,0x90,0xfe,0x0e,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0x9b,0x8e,0x65,0x4d,0x4f,0x31,0x2a,0x6f,0x45,0x4f,0x5e,0x4d,0x5a,0x3f,0x42,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13, +0x20,0x08,0x09,0x21,0x11,0xfe,0x08,0x26,0x4c,0x23,0x35,0x42,0x2b,0x27,0x72,0x47,0x53,0x5c,0x55,0xb4,0xab,0x06,0x3f,0xdc,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0a,0x08,0xb3,0x3e,0x47,0x38,0x2d,0x43,0x0c,0x1f,0x14,0x67,0x46,0x4e,0x68,0x0b,0xa2,0xa5,0x0a,0x23,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09, +0x01,0x0a,0x14,0x16,0x3f,0x32,0x28,0x39,0x0b,0x20,0x14,0x71,0x4d,0x4f,0x6b,0x0f,0xb0,0x00,0x00,0x00,0x00,0x03,0xfd,0xda,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x32,0x00,0x3b,0x00,0x44,0x00,0x5c,0x40,0x59,0x0e,0x01,0x01,0x05,0x01,0x4c,0x08,0x01,0x05,0x0d,0x0b,0x09,0x03,0x01,0x0a,0x05,0x01,0x67,0x07,0x01,0x04,0x04,0x03,0x5f, +0x06,0x01,0x03,0x03,0x38,0x4d,0x10,0x0c,0x0f,0x03,0x0a,0x0a,0x00,0x5f,0x02,0x0e,0x02,0x00,0x00,0x39,0x00,0x4e,0x3d,0x3c,0x34,0x33,0x01,0x00,0x40,0x3e,0x3c,0x44,0x3d,0x44,0x37,0x35,0x33,0x3b,0x34,0x3b,0x31,0x30,0x2f,0x2d,0x29,0x27,0x26,0x24,0x1f,0x1d,0x19,0x17,0x16,0x14,0x09,0x07,0x06,0x05,0x00,0x32,0x01,0x32,0x11,0x09, +0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23,0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33, +0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfc,0xcb,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e, +0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x00,0x00,0x00,0x04,0xfb,0x82,0x00,0x00,0x02,0x62,0x02,0xda,0x00,0x4a,0x00,0x53,0x00,0x5c,0x00,0x65,0x00,0x76, +0x40,0x73,0x16,0x01,0x01,0x07,0x01,0x4c,0x0d,0x0a,0x02,0x07,0x14,0x12,0x10,0x0e,0x03,0x05,0x01,0x0f,0x07,0x01,0x67,0x0c,0x09,0x02,0x06,0x06,0x05,0x5f,0x0b,0x08,0x02,0x05,0x05,0x38,0x4d,0x18,0x13,0x17,0x11,0x16,0x05,0x0f,0x0f,0x00,0x5f,0x04,0x02,0x15,0x03,0x00,0x00,0x39,0x00,0x4e,0x5e,0x5d,0x55,0x54,0x4c,0x4b,0x01,0x00, +0x61,0x5f,0x5d,0x65,0x5e,0x65,0x58,0x56,0x54,0x5c,0x55,0x5c,0x4f,0x4d,0x4b,0x53,0x4c,0x53,0x49,0x48,0x47,0x45,0x41,0x3f,0x3e,0x3c,0x37,0x35,0x31,0x2f,0x2e,0x2c,0x27,0x25,0x21,0x1f,0x1e,0x1c,0x11,0x0f,0x0e,0x0d,0x09,0x07,0x06,0x05,0x00,0x4a,0x01,0x4a,0x19,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22, +0x26,0x35,0x34,0x37,0x23,0x11,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x23, +0x11,0x25,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x21,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x01,0x12,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x40,0xdc,0xdc,0x67,0x79,0x51,0x40,0x39,0x47,0x6f,0x5e,0xaa,0xaa,0x35,0x3e,0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e, +0x41,0x34,0x01,0xcd,0x20,0x24,0x6f,0x5e,0xb4,0xb4,0x35,0x3e,0x41,0x34,0x01,0x50,0x74,0xfa,0x73,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x02,0x94,0x83,0x83,0x3c,0x47,0x47,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x54,0x31,0xfe,0xac,0x6e,0x61,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x59,0x63,0x50,0x3b,0x38, +0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x15,0x3e,0x27,0x59,0x63,0x50,0x3b,0x38,0x36,0x3d,0x50,0xfe,0xac,0x50,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x01,0x04,0x44,0x3e,0x3e,0x44,0x00,0x03,0xfd,0xdf,0x00,0x00,0x02,0x08,0x02,0xda,0x00,0x1a,0x00,0x23,0x00,0x27,0x00,0x53,0x40,0x50, +0x06,0x01,0x04,0x03,0x01,0x4c,0x00,0x03,0x06,0x01,0x04,0x07,0x03,0x04,0x67,0x00,0x07,0x0b,0x01,0x08,0x05,0x07,0x08,0x67,0x00,0x02,0x02,0x01,0x5f,0x00,0x01,0x01,0x38,0x4d,0x0a,0x01,0x05,0x05,0x00,0x5f,0x09,0x01,0x00,0x00,0x39,0x00,0x4e,0x24,0x24,0x1c,0x1b,0x01,0x00,0x24,0x27,0x24,0x27,0x26,0x25,0x1f,0x1d,0x1b,0x23,0x1c, +0x23,0x19,0x18,0x17,0x15,0x11,0x0f,0x0e,0x0c,0x00,0x1a,0x01,0x1a,0x0c,0x09,0x16,0x2b,0x21,0x22,0x26,0x35,0x34,0x36,0x37,0x35,0x26,0x26,0x35,0x34,0x36,0x33,0x33,0x15,0x23,0x22,0x06,0x15,0x14,0x16,0x33,0x21,0x15,0x21,0x11,0x27,0x33,0x11,0x23,0x22,0x06,0x15,0x14,0x16,0x25,0x35,0x21,0x15,0xfe,0xbf,0x67,0x79,0x51,0x40,0x39, +0x47,0x6f,0x5e,0xad,0xad,0x35,0x3e,0x3f,0x36,0x03,0x49,0xfd,0x80,0xca,0x70,0x70,0x3c,0x47,0x47,0x01,0xab,0x01,0xdb,0x70,0x5f,0x45,0x61,0x08,0x03,0x0b,0x59,0x3a,0x56,0x66,0x52,0x3d,0x35,0x34,0x3e,0x50,0xfe,0xac,0x52,0x01,0x02,0x46,0x3b,0x3b,0x46,0x12,0x50,0x50,0x00,0x02,0xfd,0xd5,0xff,0x9c,0x02,0x1c,0x02,0xe4,0x00,0x27, +0x00,0x31,0x00,0x7a,0xb5,0x19,0x01,0x07,0x03,0x01,0x4c,0x4b,0xb0,0x21,0x50,0x58,0x40,0x26,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x4d,0x00,0x07,0x07,0x03,0x61,0x00,0x03,0x03,0x3b,0x07,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x07,0x06, +0x03,0x07,0x69,0x09,0x01,0x06,0x00,0x02,0x05,0x06,0x02,0x69,0x00,0x05,0x08,0x01,0x00,0x05,0x00,0x63,0x00,0x04,0x04,0x01,0x61,0x00,0x01,0x01,0x3e,0x04,0x4e,0x59,0x40,0x1b,0x29,0x28,0x01,0x00,0x2e,0x2c,0x28,0x31,0x29,0x31,0x26,0x24,0x1f,0x1d,0x17,0x15,0x10,0x0e,0x09,0x07,0x00,0x27,0x01,0x27,0x0a,0x09,0x16,0x2b,0x05,0x22, +0x26,0x26,0x35,0x11,0x34,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x21,0x15,0x01,0x32,0x35,0x35,0x34,0x23,0x22,0x15,0x15,0x14,0xfe,0xed,0x55,0x7e,0x45,0x90,0x7e,0x75,0x80,0x56,0x4a,0x49,0x57,0x46,0x40,0x29, +0x36,0x09,0x02,0x56,0x4f,0x5a,0x64,0x6b,0x5d,0x03,0x2f,0xfd,0x1c,0x50,0x50,0x50,0x64,0x47,0x83,0x58,0x01,0x04,0x87,0x9b,0x7d,0x73,0xe2,0x4e,0x5b,0x56,0x49,0x74,0x4a,0x51,0x20,0x1c,0x23,0x4d,0x53,0x74,0x68,0xfe,0xfc,0x64,0x73,0x4b,0x01,0x10,0x5c,0x75,0x5b,0x5c,0x74,0x5c,0x00,0x00,0x00,0x04,0xfd,0xc6,0xff,0xf7,0x02,0x62, +0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x51,0x00,0x5d,0x00,0xcc,0x40,0x0b,0x55,0x49,0x42,0x21,0x1e,0x1b,0x06,0x0d,0x0e,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x41,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02,0x02,0x3e,0x4d,0x00, +0x05,0x05,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x0c,0x12,0x07,0x06,0x11,0x05,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3b,0x0a,0x01,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x08,0x01,0x01,0x10,0x01,0x0e,0x0d,0x01,0x0e,0x69,0x0b,0x01,0x04,0x04,0x02,0x61,0x09,0x01,0x02, +0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x0c,0x01,0x06,0x06,0x39,0x4d,0x14,0x0f,0x13,0x03,0x0d,0x0d,0x00,0x61,0x12,0x07,0x11,0x03,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x35,0x53,0x52,0x47,0x46,0x26,0x25,0x01,0x00,0x58,0x56,0x52,0x5d,0x53,0x5d,0x4c,0x4a,0x46,0x51,0x47,0x51,0x41,0x40,0x3b,0x39,0x37,0x36,0x33,0x31,0x2c,0x2b, +0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x15,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26, +0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xd2,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37, +0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63,0x61,0x2b,0x22,0x53,0xfd,0x86,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x28,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0xfd,0xe3,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b, +0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, +0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x00,0x06,0xfb,0x73,0xff,0xf7,0x02,0x5d,0x02,0xe4,0x00,0x24,0x00,0x45,0x00,0x66,0x00,0x72,0x00,0x7e,0x00,0x8a,0x00,0xfd,0x40,0x0d,0x82,0x76,0x6a,0x63,0x42,0x21,0x1e,0x1b,0x08,0x13,0x14,0x01,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x4e,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80, +0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00,0x00,0x3f,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00,0x61,0x12,0x1b,0x0d,0x0c,0x1a,0x07,0x06,0x19,0x08,0x00, +0x00,0x3f,0x00,0x4e,0x1b,0x40,0x45,0x10,0x0a,0x02,0x03,0x04,0x01,0x04,0x03,0x01,0x80,0x0e,0x08,0x02,0x01,0x18,0x16,0x02,0x14,0x13,0x01,0x14,0x69,0x11,0x0b,0x02,0x04,0x04,0x02,0x61,0x0f,0x09,0x02,0x02,0x02,0x3e,0x4d,0x00,0x05,0x05,0x06,0x5f,0x12,0x0c,0x02,0x06,0x06,0x39,0x4d,0x1e,0x17,0x1d,0x15,0x1c,0x05,0x13,0x13,0x00, +0x61,0x1b,0x0d,0x1a,0x07,0x19,0x05,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x4d,0x80,0x7f,0x74,0x73,0x68,0x67,0x47,0x46,0x26,0x25,0x01,0x00,0x85,0x83,0x7f,0x8a,0x80,0x8a,0x79,0x77,0x73,0x7e,0x74,0x7e,0x6d,0x6b,0x67,0x72,0x68,0x72,0x62,0x61,0x5c,0x5a,0x58,0x57,0x54,0x52,0x4d,0x4c,0x46,0x66,0x47,0x66,0x41,0x40,0x3b,0x39,0x37, +0x36,0x33,0x31,0x2c,0x2b,0x25,0x45,0x26,0x45,0x20,0x1f,0x1d,0x1c,0x16,0x14,0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x24,0x01,0x24,0x1f,0x09,0x16,0x2b,0x17,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x33,0x07,0x17,0x23,0x27,0x07, +0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23,0x27,0x07,0x06,0x06,0x21,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x01,0x23, +0x27,0x07,0x06,0x06,0x25,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x21,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0xcd,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0x5b,0x64,0x8f,0x91,0x63, +0x61,0x2b,0x22,0x53,0xfb,0x38,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0x02,0x22,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0x01,0x84,0x63,0x61,0x2b,0x22,0x53,0xfd,0x8c,0x39,0x28,0x34,0x7d,0x1e,0x2f, +0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x02,0x7f,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0x72,0xb0,0xbd,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, +0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55,0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfe,0x09,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b, +0x00,0x03,0xfd,0xd5,0xff,0xf7,0x02,0x1c,0x02,0xe4,0x00,0x26,0x00,0x32,0x00,0x36,0x00,0xbc,0x40,0x0f,0x1b,0x01,0x0a,0x09,0x2a,0x20,0x02,0x0b,0x0a,0x23,0x01,0x08,0x0b,0x03,0x4c,0x4b,0xb0,0x1a,0x50,0x58,0x40,0x39,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01, +0x09,0x69,0x00,0x0a,0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x07,0x0c,0x02,0x00,0x00,0x3f,0x00,0x4e,0x1b,0x40,0x3d,0x00,0x03,0x04,0x05,0x04,0x03,0x05,0x80,0x00,0x05,0x00,0x06,0x09,0x05,0x06,0x67,0x00,0x01,0x00,0x09,0x0a,0x01,0x09,0x69,0x00,0x0a, +0x0e,0x01,0x0b,0x08,0x0a,0x0b,0x67,0x00,0x04,0x04,0x02,0x61,0x00,0x02,0x02,0x3e,0x4d,0x00,0x07,0x07,0x39,0x4d,0x0d,0x01,0x08,0x08,0x00,0x61,0x0c,0x01,0x00,0x00,0x3f,0x00,0x4e,0x59,0x40,0x27,0x33,0x33,0x28,0x27,0x01,0x00,0x33,0x36,0x33,0x36,0x35,0x34,0x2d,0x2b,0x27,0x32,0x28,0x32,0x22,0x21,0x1f,0x1e,0x1d,0x1c,0x16,0x14, +0x12,0x11,0x0e,0x0c,0x07,0x06,0x00,0x26,0x01,0x26,0x0f,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x35,0x34,0x36,0x37,0x27,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x16,0x15,0x23,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x17,0x17,0x37,0x21,0x15,0x21,0x07,0x17,0x23,0x27,0x07,0x06,0x06,0x27,0x32,0x37,0x37,0x27,0x23,0x22,0x06,0x15,0x15,0x14, +0x16,0x25,0x35,0x21,0x15,0xfe,0x93,0x58,0x66,0x5a,0x4c,0x1c,0x36,0x60,0x4d,0x37,0x53,0x2f,0x58,0x35,0x2c,0x25,0x2f,0x1d,0xc3,0xbf,0x01,0xfb,0xfe,0x2a,0xb4,0x91,0x63,0x61,0x2b,0x22,0x53,0x26,0x39,0x28,0x34,0x7d,0x1e,0x2f,0x37,0x3b,0x01,0xd9,0x01,0xdb,0x09,0x67,0x58,0x39,0x50,0x60,0x04,0x24,0x47,0x37,0x47,0x58,0x30,0x55, +0x39,0x32,0x3f,0x2e,0x26,0x27,0x25,0xfc,0xef,0x50,0xdd,0xbd,0x80,0x36,0x2a,0x29,0x51,0x33,0x42,0xa0,0x3b,0x33,0x39,0x33,0x3b,0x62,0x50,0x50,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x07,0x00,0x47,0x4b,0xb0,0x18,0x50,0x58,0x40,0x14,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x03,0x03,0x00,0x5f,0x00, +0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x19,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x59,0x40,0x0c,0x00,0x00,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x05,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d, +0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89,0x00,0x01,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x12,0x00,0x33,0x40,0x30,0x0a,0x01,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00,0x12, +0x23,0x12,0x14,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x15,0xfb,0xd2,0x5a,0x05,0x5b,0x04,0x08,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfa,0xa5,0x23,0x02,0x4e,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff, +0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0xbd,0x03,0x3e,0x00,0x24,0x00,0x28,0x00,0x43,0x40,0x40,0x09,0x01,0x04,0x03,0x01,0x4c,0x06,0x01,0x02,0x00,0x01,0x03,0x02,0x01,0x67,0x00,0x03,0x00,0x04,0x00,0x03,0x04,0x67,0x00,0x00,0x05,0x05,0x00,0x57,0x00,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x25,0x25,0x00,0x00, +0x25,0x28,0x25,0x28,0x27,0x26,0x00,0x24,0x00,0x23,0x21,0x25,0x21,0x2c,0x21,0x0a,0x09,0x1b,0x2b,0x07,0x35,0x33,0x32,0x36,0x27,0x27,0x26,0x36,0x37,0x26,0x26,0x37,0x37,0x36,0x26,0x23,0x23,0x35,0x33,0x32,0x16,0x07,0x07,0x06,0x16,0x33,0x33,0x15,0x23,0x22,0x06,0x17,0x17,0x16,0x06,0x23,0x21,0x11,0x33,0x11,0x37,0x73,0x2f,0x32, +0x02,0x0a,0x03,0x36,0x31,0x32,0x35,0x03,0x0a,0x02,0x32,0x2f,0x73,0x73,0x59,0x65,0x05,0x0a,0x03,0x26,0x41,0x6e,0x6e,0x40,0x27,0x03,0x0a,0x05,0x65,0x59,0xfe,0x7f,0x5a,0x6e,0x50,0x2b,0x2b,0xa4,0x39,0x4a,0x09,0x09,0x4a,0x39,0xa4,0x2b,0x2b,0x50,0x57,0x4f,0xa4,0x35,0x2f,0x50,0x2f,0x35,0xa4,0x4f,0x57,0x03,0xac,0xfc,0x54,0x00, +0x00,0x02,0xfe,0xbb,0xff,0x92,0x01,0x45,0x03,0x3e,0x00,0x07,0x00,0x0b,0x00,0x33,0x40,0x30,0x04,0x01,0x02,0x00,0x01,0x00,0x02,0x01,0x67,0x00,0x00,0x03,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08, +0x09,0x19,0x2b,0x07,0x35,0x21,0x11,0x21,0x35,0x21,0x11,0x21,0x11,0x33,0x11,0x3c,0x01,0x27,0xfe,0xd9,0x01,0x81,0xfd,0x76,0x5a,0x6e,0x50,0x03,0x0c,0x50,0xfc,0x54,0x03,0xac,0xfc,0x54,0xff,0xff,0xfe,0xe3,0xff,0x92,0x01,0x1d,0x03,0x3e,0x00,0x26,0x05,0xbe,0xc4,0x00,0x00,0x07,0x05,0xbe,0xfd,0xe4,0x00,0x00,0x00,0x02,0xfc,0xa4, +0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x07,0x00,0x0b,0x00,0x56,0x4b,0xb0,0x18,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x07,0x05,0x06,0x03,0x03,0x03,0x00,0x5f,0x04,0x01,0x00,0x00,0x38,0x03,0x4e,0x1b,0x40,0x1d,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00, +0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x59,0x40,0x14,0x08,0x08,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x00,0x07,0x00,0x07,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x11,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0x84,0x50,0xfe,0x89, +0x03,0x43,0xfc,0xbd,0x00,0x03,0xfc,0xc7,0xff,0x92,0x00,0xe1,0x03,0x3e,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x2d,0x40,0x2a,0x04,0x02,0x02,0x00,0x01,0x00,0x85,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x76,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09, +0x06,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x87,0x5a,0xfb,0xe6,0x5a,0x01,0x86,0x5a,0x6e,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x03,0xac,0xfc,0x54,0x00,0x04,0xfa,0xc9,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f,0x40,0x0a,0x16,0x12,0x0e,0x0c,0x0b,0x05, +0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01,0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04, +0x00,0x00,0x08,0x0d,0x08,0x0d,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0x77,0x5a,0xfd,0xf8,0x5a,0x03,0x02,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a, +0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x02,0xfc,0xa4,0xff,0xab,0x01,0x72,0x02,0xee,0x00,0x0b,0x00,0x0f,0x00,0x68,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1f,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00, +0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x09,0x07,0x08,0x03,0x05,0x05,0x00,0x5f,0x06,0x01,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x25,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x59,0x40, +0x16,0x0c,0x0c,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x11,0x33,0x11,0xfe,0x52,0x5a,0x02,0xc6,0xfd,0x3a,0x02,0xc6,0xfd,0x3a,0xfd,0xf8,0x5a,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x03, +0x43,0xfc,0xbd,0x00,0x00,0x03,0xfc,0xd6,0xff,0xab,0x01,0x31,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x12,0x0e,0x0a,0x08,0x07,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01, +0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x21,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfc,0xd6,0x5a,0x01,0x54,0x5a,0x02, +0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e,0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x01,0xfe,0xa7,0xff,0xab,0x01,0xa4,0x02,0xee,0x00,0x0b,0x00,0x59,0x4b,0xb0,0x18,0x50,0x58,0x40,0x1c,0x00,0x01,0x00,0x02,0x03,0x01,0x02, +0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x05,0x05,0x00,0x5f,0x00,0x00,0x00,0x38,0x05,0x4e,0x1b,0x40,0x21,0x00,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x00,0x00,0x00,0x05,0x5f,0x06,0x01,0x05,0x00,0x05,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0b, +0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x05,0x11,0x33,0x11,0x21,0x15,0x21,0x15,0x21,0x15,0x21,0x15,0xfe,0xa7,0x5a,0x02,0xa3,0xfd,0x5d,0x02,0xa3,0xfd,0x5d,0x55,0x03,0x43,0xfe,0xfc,0x50,0xa0,0x50,0xff,0x00,0x00,0x02,0xfb,0xd2,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0c,0x00,0x17,0x00,0x40,0x40,0x3d,0x12,0x07, +0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x17,0x16,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x12,0x11,0x11,0x11,0x09,0x09,0x1b,0x2b,0x25,0x11,0x33,0x15, +0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x15,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0xfb,0xd2,0x5a,0x04,0xfb,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x05,0x05,0x3b,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0xc6,0x23,0x02,0x4e,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19, +0x14,0x00,0x00,0x00,0x00,0x02,0xfe,0xbb,0xff,0xab,0x01,0x68,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0e,0x0a,0x06,0x04,0x03,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01, +0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x01,0x15,0x01,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0xfe,0xbb,0x5a,0x02,0x53,0xfd,0xad,0x01,0xbd,0x16,0x27,0x0a,0x0a,0x27,0x16,0xfe,0x43,0x55,0x03,0x43,0xfe,0x8e,0x64,0xfe,0x93,0x68,0x01,0x0e, +0x0e,0x15,0x04,0x05,0x17,0x0d,0x01,0x12,0x00,0x03,0xfe,0x13,0xff,0x74,0x01,0xf9,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x36,0x40,0x33,0x3c,0x32,0x31,0x25,0x24,0x1d,0x17,0x16,0x13,0x10,0x09,0x0b,0x00,0x01,0x35,0x2c,0x19,0x18,0x08,0x01,0x06,0x02,0x00,0x02,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x03, +0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x2d,0x00,0x2d,0x1c,0x14,0x04,0x09,0x18,0x2b,0x05,0x35,0x26,0x26,0x27,0x33,0x14,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14, +0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xde,0x5e,0x6b,0x02,0x5a,0x3b,0x36,0x1b,0x4b,0x51,0x63,0x54,0x3c,0x44,0x4d,0x02,0x4e,0xfe,0x61,0x01,0x27,0x13,0x20,0x08,0x09,0x21,0x11,0xfe,0x0d,0x26,0x35,0x19,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x2f,0x2c,0x0c,0x8c,0x83, +0x08,0x69,0x56,0x31,0x3e,0x07,0x01,0x06,0x08,0x17,0x6c,0x49,0x50,0x68,0x08,0x84,0x84,0x08,0x28,0xfe,0xca,0x64,0xd7,0x5a,0x97,0x0a,0x0d,0x02,0x02,0x0a,0x09,0x01,0x08,0x14,0x14,0x02,0xf8,0x0d,0x17,0x6e,0x4a,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00, +0x00,0x01,0xfe,0x20,0x00,0x5f,0x01,0xe0,0x02,0x35,0x00,0x13,0x00,0x5a,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1a,0x05,0x03,0x02,0x01,0x08,0x06,0x02,0x00,0x07,0x01,0x00,0x67,0x0a,0x09,0x02,0x07,0x07,0x02,0x5f,0x04,0x01,0x02,0x02,0x3b,0x07,0x4e,0x1b,0x40,0x20,0x04,0x01,0x02,0x01,0x07,0x02,0x57,0x05,0x03,0x02,0x01,0x08,0x06,0x02, +0x00,0x07,0x01,0x00,0x67,0x04,0x01,0x02,0x02,0x07,0x5f,0x0a,0x09,0x02,0x07,0x02,0x07,0x4f,0x59,0x40,0x12,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0xfe,0xdf,0xbf,0xbf, +0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0x00,0x01,0xfb,0xff,0x00,0x5f,0x01,0xa9,0x02,0x35,0x00,0x1b,0x00,0x6b,0x4b,0xb0,0x21,0x50,0x58,0x40,0x1e,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x0e,0x0d,0x0b,0x03,0x09,0x09,0x02,0x5f,0x06, +0x04,0x02,0x02,0x02,0x3b,0x09,0x4e,0x1b,0x40,0x25,0x06,0x04,0x02,0x02,0x01,0x09,0x02,0x57,0x07,0x05,0x03,0x03,0x01,0x0c,0x0a,0x08,0x03,0x00,0x09,0x01,0x00,0x67,0x06,0x04,0x02,0x02,0x02,0x09,0x5f,0x0e,0x0d,0x0b,0x03,0x09,0x02,0x09,0x4f,0x59,0x40,0x1a,0x00,0x00,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17,0x16,0x15,0x14,0x13, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0f,0x09,0x1f,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x21,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x23,0x35,0x21,0x15,0x23,0x35,0x21,0x15,0xfc,0xbe,0xbf,0xbf,0x58,0x01,0x92,0x58,0x01,0x92,0x58,0xbf,0xbf,0x58,0xfe,0x6e,0x58,0xfe,0x6e,0x5f,0xc3,0x50,0xc3, +0xc3,0xc3,0xc3,0xc3,0xc3,0x50,0xc3,0xc3,0xc3,0xc3,0xc3,0x00,0x00,0x02,0xfd,0xda,0x00,0x2d,0x02,0x12,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x17,0x16,0x15,0x03,0x01,0x02,0x11,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67, +0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xcb,0xf1,0xf1,0x58,0xf1,0xf1,0x01,0x41,0x01,0x36,0x13,0x21, +0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x04,0xfe,0x2a,0x00,0x64,0x01,0xae,0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x1b,0x00,0x1f,0x00,0x6f,0x4b,0xb0,0x18,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x00,0x03,0x57,0x00,0x06,0x04, +0x05,0x06,0x57,0x07,0x01,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x02,0x08,0x02,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01,0x4e,0x1b,0x40,0x24,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x67,0x00,0x07,0x00,0x06,0x04,0x07,0x06,0x67,0x00,0x05,0x09,0x01,0x04,0x05,0x04,0x65,0x08,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e, +0x59,0x40,0x1b,0x11,0x10,0x01,0x00,0x1f,0x1e,0x1d,0x1c,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0f,0x0e,0x0d,0x0c,0x07,0x05,0x00,0x0b,0x01,0x0b,0x0a,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x21,0x35,0x21,0x01, +0x5e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x0e,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfe,0xce,0xfd,0xda,0x02,0x26,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0xfe,0x7a,0x2c,0x25,0x24,0x2b,0x2b,0x24,0x25,0x2c,0x46,0x50,0x00,0x00,0x00,0x00,0x06,0xfb,0xa0,0x00,0x64,0x02,0x08, +0x02,0x30,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x1f,0x00,0x23,0x00,0x27,0x00,0x97,0x4b,0xb0,0x18,0x50,0x58,0x40,0x2a,0x04,0x01,0x02,0x00,0x00,0x02,0x57,0x11,0x0b,0x10,0x03,0x09,0x06,0x07,0x09,0x57,0x0a,0x08,0x02,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x01, +0x4e,0x1b,0x40,0x2c,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x00,0x02,0x03,0x67,0x0a,0x01,0x08,0x11,0x0b,0x10,0x03,0x09,0x06,0x08,0x09,0x67,0x00,0x07,0x0f,0x01,0x06,0x07,0x06,0x65,0x0c,0x01,0x00,0x00,0x01,0x61,0x00,0x01,0x01,0x41,0x00,0x4e,0x59,0x40,0x33,0x24,0x24,0x20,0x20,0x15,0x14,0x10,0x10,0x0c,0x0c,0x01,0x00,0x24, +0x27,0x24,0x27,0x26,0x25,0x20,0x23,0x20,0x23,0x22,0x21,0x1b,0x19,0x14,0x1f,0x15,0x1f,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x07,0x05,0x00,0x0b,0x01,0x0b,0x12,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x01,0x22,0x26,0x35,0x34, +0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x25,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0xfe,0xd4,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xef,0x02,0x21,0xf9,0x98,0x02,0x21,0x01,0x13,0x24,0x2c,0x2c,0x24,0x24,0x2c,0x2c,0xfc,0xa8,0x02,0x21,0x02,0x26,0x02,0x21,0x01,0x90,0x2b,0x25,0x24,0x2c,0x2c,0x24,0x25,0x2b,0x0a,0x50,0x50,0x50,0x50,0xfe, +0xca,0x2c,0x24,0x25,0x2b,0x2b,0x25,0x24,0x2c,0x46,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x06,0xfb,0xa0,0xff,0xfb,0x02,0x08,0x02,0xda,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x21,0x00,0x64,0x40,0x61,0x04,0x01,0x02,0x0e,0x05,0x0d,0x03,0x03,0x06,0x02,0x03,0x67,0x08,0x01,0x06,0x10,0x09,0x0f,0x03,0x07,0x0b,0x06, +0x07,0x67,0x0c,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x0b,0x0b,0x0a,0x61,0x11,0x01,0x0a,0x0a,0x42,0x0a,0x4e,0x15,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x1c,0x19,0x14,0x21,0x15,0x20,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04, +0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x37,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfe,0xab,0x0c,0x6a,0x0c,0xea,0x02,0x21,0xf9,0x98,0x02,0x21,0xfd,0xdf,0x02,0x21,0x02,0x26, +0x02,0x21,0xfc,0xbd,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xc3,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0xaf,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0x00,0x00,0x02,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x2f,0x40,0x2c,0x00,0x00,0x04,0x01,0x01,0x02, +0x00,0x01,0x67,0x00,0x02,0x03,0x03,0x02,0x57,0x00,0x02,0x02,0x03,0x5f,0x05,0x01,0x03,0x02,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfd,0xf8,0x04,0x10,0xfb,0xf0,0x04,0x10,0x01,0x9a,0x50,0x50,0xf0,0x50,0x50,0x00,0x00, +0x00,0x03,0xfb,0xa5,0x00,0x4c,0x02,0x03,0x02,0x48,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x40,0x40,0x3d,0x00,0x00,0x06,0x01,0x01,0x02,0x00,0x01,0x67,0x00,0x02,0x07,0x01,0x03,0x04,0x02,0x03,0x67,0x00,0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x08,0x01,0x05,0x04,0x05,0x4f,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0b,0x08, +0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0xfb,0xa5,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0xf9,0xa2,0x06,0x5e,0x01,0xfc,0x4c,0x4c,0xd8,0x4c,0x4c,0xd8,0x4c,0x4c,0x00,0x01,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13, +0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01, +0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33, +0x13,0x03,0xbc,0x6b,0xfa,0x7e,0x05,0xc2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfa,0x3f,0x05,0x82,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x01,0xfd,0xfd,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x6c,0xb6,0x12,0x08,0x02,0x01,0x02, +0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x04,0x03,0x03,0x04,0x70,0x06,0x01,0x05,0x00,0x00,0x05,0x71,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x23,0x00,0x04,0x03,0x04,0x85,0x06,0x01,0x05,0x00,0x05,0x86,0x00,0x03,0x00,0x02, +0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x37,0x21,0x35,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0xbc,0x6b,0xfc,0xd6,0x03,0x6a, +0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfc,0x97,0x03,0x2a,0x6b,0x6a,0xe7,0xe8,0x23,0x87,0x50,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x13,0x00,0x1f,0x00,0x47,0x40,0x44,0x1e,0x18,0x12,0x08,0x04,0x01,0x02,0x01,0x4c,0x06, +0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03,0x00,0x02,0x01,0x03,0x02,0x68,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x14,0x14,0x00,0x00,0x14,0x1f,0x14,0x1f,0x1d,0x1c,0x00,0x13,0x00,0x13,0x11,0x11,0x18,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x27,0x37,0x21,0x35,0x21, +0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x35,0x21,0x27,0x33,0x13,0x03,0x33,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x70,0x6b,0xfb,0xaa,0x04,0x96,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x6b,0x04,0x56,0x6b,0x6a,0xe7,0xe8,0xc3,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xe7,0xe8,0x23,0x87,0x50, +0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x87,0xfe,0xd9,0xfe,0xd9,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x02,0xfb,0xa5,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0f,0x00,0x17,0x00,0x47,0x40,0x44,0x15,0x11,0x0d,0x05,0x04,0x01,0x02,0x01,0x4c,0x06,0x01,0x04,0x03,0x05,0x04,0x57,0x00,0x03, +0x00,0x02,0x01,0x03,0x02,0x67,0x00,0x01,0x00,0x00,0x05,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x04,0x05,0x4f,0x10,0x10,0x00,0x00,0x10,0x17,0x10,0x17,0x13,0x12,0x00,0x0f,0x00,0x0f,0x11,0x11,0x12,0x11,0x11,0x0a,0x09,0x1b,0x2b,0x37,0x27,0x21,0x35,0x21,0x27,0x37,0x21,0x35,0x21,0x37,0x33,0x07, +0x07,0x17,0x17,0x33,0x03,0x13,0x33,0x07,0x07,0x17,0x17,0x72,0x6a,0xfb,0x9d,0x04,0x25,0x3f,0x3f,0xfb,0xdb,0x04,0x64,0x6a,0x69,0xbe,0x2e,0x32,0xba,0xae,0xe7,0xe8,0x69,0xbe,0x2e,0x32,0xba,0x23,0x87,0x50,0x50,0x50,0x50,0x87,0xef,0x37,0x3d,0xeb,0x01,0x27,0x01,0x27,0xef,0x37,0x3d,0xeb,0x00,0x01,0xfb,0xa1,0x00,0x00,0x02,0x09, +0x02,0x99,0x00,0x13,0x00,0x35,0x40,0x32,0x00,0x04,0x03,0x04,0x85,0x05,0x01,0x03,0x06,0x01,0x02,0x01,0x03,0x02,0x68,0x07,0x01,0x01,0x08,0x01,0x00,0x09,0x01,0x00,0x67,0x0a,0x01,0x09,0x09,0x39,0x09,0x4e,0x00,0x00,0x00,0x13,0x00,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x0b,0x09,0x1f,0x2b,0x21,0x37,0x21,0x35,0x21, +0x37,0x21,0x35,0x21,0x37,0x33,0x07,0x21,0x15,0x21,0x07,0x21,0x15,0x21,0x07,0xfe,0x53,0x3e,0xfd,0x10,0x03,0x0e,0x3a,0xfc,0xb8,0x03,0x66,0x40,0x48,0x40,0x02,0xba,0xfd,0x28,0x3a,0x03,0x12,0xfc,0xd0,0x3e,0xaa,0x50,0xa0,0x50,0xaf,0xaf,0x50,0xa0,0x50,0xaa,0x00,0x00,0x00,0x01,0xfe,0x0c,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e, +0x00,0x2e,0x40,0x2b,0x04,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x11,0x18,0x05,0x09,0x19,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x15,0x21,0x07,0xfe, +0x0c,0xbe,0x13,0x1a,0x05,0x05,0x1c,0x15,0xba,0x6a,0xc8,0x02,0xc5,0xfd,0x3b,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1f,0x19,0xeb,0xff,0x50,0xff,0x00,0x01,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x19,0x00,0x34,0x40,0x31,0x11,0x04,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01, +0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x19,0x00,0x19,0x23,0x12,0x14,0x11,0x18,0x07,0x09,0x1b,0x2b,0x25,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x33,0x17,0x21,0x26,0x26,0x27,0x27,0x33,0x13,0x03,0x23,0x37,0x36,0x36,0x37,0x21,0x07,0xfb,0xb3,0xbe,0x13,0x1a,0x05,0x05,0x1d, +0x14,0xba,0x6a,0xc8,0x04,0xa1,0x04,0x07,0x05,0xba,0x6a,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0xfb,0x5e,0xc9,0x23,0xef,0x17,0x1c,0x04,0x05,0x1e,0x1a,0xeb,0xff,0x05,0x0a,0x05,0xeb,0xfe,0xd9,0xfe,0xd9,0xef,0x04,0x08,0x04,0xff,0xff,0xff,0xfe,0x61,0xff,0x92,0x01,0x59,0x03,0x3e,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x0f,0x01,0x06, +0x03,0x48,0xce,0x00,0x00,0x08,0xb1,0x00,0x01,0xb0,0x0f,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1b,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d, +0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x0b,0x00,0x02,0x32,0x2b,0x25,0x35,0x25,0x36,0x36,0x37,0x35,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x01,0x35,0x25,0x15,0xfe,0xcf,0x01,0xea,0x11,0x1f,0x07,0x07,0x1f,0x11,0xfe,0x16,0x02,0x62,0xfd,0x9e,0x02,0x62,0x96,0x5a,0xa8,0x06,0x06,0x01,0x07,0x01,0x06,0x06,0xab,0x58,0xe1,0x64,0xfe,0x3f, +0x5a,0xe1,0x5a,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x19,0x00,0x42,0x40,0x3f,0x19,0x13,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03, +0x00,0x03,0x4f,0x00,0x00,0x18,0x17,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x07,0x37,0x21,0x37,0x36,0x36,0x37,0x26,0x26,0x27,0x27,0x21,0x17,0xfb,0xb3,0xeb,0xeb,0x6a,0x6a,0x04,0xa0,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5f, +0x6a,0xa9,0x04,0xa2,0x13,0x13,0x1a,0x05,0x05,0x1c,0x15,0x10,0xfb,0x5f,0x3f,0x23,0x01,0x26,0x01,0x28,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x18,0x17,0x1c,0x04,0x05,0x1f,0x19,0x14,0x50,0x00,0x00,0xff,0xff,0xfe,0x2a,0x00,0x40,0x01,0xd7,0x02,0x53,0x00,0x26,0x04,0x1b,0xd4,0x00,0x01,0x07,0x04,0x1b,0xfd,0xd5,0xff,0xff, +0x00,0x09,0xb1,0x01,0x01,0xb8,0xff,0xff,0xb0,0x35,0x2b,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01,0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03, +0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0xc8,0x03,0xf2,0xfc,0x0e,0xc9,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0xff,0x50, +0xff,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x00,0x00,0x02,0xfb,0xb3,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03,0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x67,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01, +0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25,0x13,0x03,0x33,0x17,0x21,0x15,0x21,0x17,0x07,0x21,0x15,0x21,0x07,0x21,0x13,0x03,0x33,0x13,0x03,0xfc,0xdf,0xeb,0xeb,0x6a,0x6a,0x04,0x50,0xfb, +0xee,0x3f,0x3f,0x04,0x12,0xfb,0xaf,0x6a,0xfe,0x6b,0xeb,0xeb,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x01,0x28,0x87,0x50,0x50,0x50,0x50,0x87,0x01,0x26,0x01,0x28,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0xff,0xff,0xfc,0x6d,0x00,0x41,0x02,0x03,0x02,0x53,0x00,0x27,0x04,0x1b,0xfc,0x18,0x00,0x00,0x00,0x27,0x04,0x1b,0xfe,0x0c,0x00,0x00,0x02,0x06, +0x04,0x1b,0x00,0x00,0x00,0x01,0xfd,0xf3,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d,0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09, +0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfe,0xda,0xe7,0xe8,0x69,0xbe,0x03,0x07,0x03,0x03,0x7b,0xfc,0x86,0x04,0x08,0x04,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x50,0x04,0x0b,0x05,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0e,0x00,0x30,0x40,0x2d, +0x01,0x01,0x02,0x01,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x04,0x01,0x03,0x02,0x03,0x86,0x00,0x01,0x02,0x02,0x01,0x57,0x00,0x01,0x01,0x02,0x60,0x00,0x02,0x01,0x02,0x50,0x00,0x00,0x00,0x0e,0x00,0x0e,0x11,0x23,0x12,0x05,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x06,0x06,0x07,0x21,0x15,0x21,0x16,0x16,0x17,0x17,0xfc,0x82,0xe7, +0xe8,0x69,0xbe,0x03,0x07,0x03,0x05,0xe2,0xfa,0x1a,0x05,0x0a,0x06,0xba,0x23,0x01,0x27,0x01,0x27,0xef,0x04,0x08,0x04,0x4b,0x05,0x0d,0x07,0xeb,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x33,0x40,0x30,0x09,0x01,0x02,0x05,0x01,0x4c,0x04,0x01,0x00,0x05,0x01,0x00,0x57,0x06,0x01,0x05,0x00,0x02,0x01,0x05, +0x02,0x68,0x04,0x01,0x00,0x00,0x01,0x5f,0x03,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x0c,0x00,0x0c,0x12,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x01,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x23,0x03,0x13,0x33,0x07,0x01,0x7c,0x5a,0x5a,0xfa,0xa6,0xca,0x6a,0xe7,0xe8,0x69,0xcb,0x01,0x72,0xff,0xfd,0xb2,0xff,0xff,0x01,0x27,0x01, +0x27,0xff,0x00,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x35,0x40,0x32,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x00,0x85,0x06,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x04,0x04,0x01,0x57,0x00,0x01,0x01,0x04,0x60,0x00,0x04,0x01,0x04,0x50,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12, +0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x05,0x66,0xcb,0x6a,0xe7,0xe8,0x69,0xcb,0xfa,0x9b,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xd9,0xfe,0xd9,0xff,0xff,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d, +0x00,0x34,0x40,0x31,0x08,0x01,0x02,0x04,0x01,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x04,0x03,0x01,0x04,0x68,0x02,0x01,0x00,0x00,0x03,0x5f,0x06,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x37,0x33,0x03,0x13, +0x23,0x27,0x21,0x17,0xfc,0x82,0xe7,0xe8,0x69,0xcb,0x04,0xa1,0xc9,0x69,0xe7,0xe7,0x6a,0xc8,0xfb,0x60,0xca,0x23,0x01,0x27,0x01,0x27,0xff,0xff,0xfe,0xda,0xfe,0xd8,0xff,0xff,0x00,0x00,0xff,0xff,0xfe,0x89,0x00,0x2d,0x01,0x7f,0x02,0x67,0x00,0x27,0x04,0x1c,0xfe,0x34,0x00,0x00,0x03,0x06,0x03,0x2b,0x00,0x37,0x00,0x08,0xb1,0x01, +0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0xff,0xff,0xfb,0xcd,0x00,0x2d,0x01,0xa9,0x02,0x67,0x00,0x27,0x04,0x1c,0xfb,0x78,0x00,0x00,0x00,0x27,0x03,0x2b,0xfd,0xa8,0x00,0x37,0x01,0x06,0x04,0x1c,0xa6,0x00,0x00,0x08,0xb1,0x01,0x02,0xb0,0x37,0xb0,0x35,0x2b,0x00,0x00,0x00,0x04,0xf9,0x43,0xff,0xfb,0x02,0x03,0x02,0xda,0x00,0x03, +0x00,0x10,0x00,0x14,0x00,0x22,0x00,0x62,0x40,0x5f,0x05,0x01,0x04,0x03,0x01,0x4c,0x00,0x02,0x00,0x03,0x00,0x02,0x03,0x80,0x0b,0x01,0x05,0x09,0x08,0x09,0x05,0x08,0x80,0x06,0x01,0x03,0x0c,0x07,0x02,0x04,0x01,0x03,0x04,0x68,0x0a,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x4d,0x00,0x09,0x09,0x08,0x61,0x0d,0x01,0x08,0x08, +0x42,0x08,0x4e,0x16,0x15,0x11,0x11,0x04,0x04,0x00,0x00,0x1d,0x1a,0x15,0x22,0x16,0x21,0x11,0x14,0x11,0x14,0x13,0x12,0x04,0x10,0x04,0x10,0x0d,0x0c,0x0b,0x0a,0x07,0x06,0x00,0x03,0x00,0x03,0x11,0x0e,0x09,0x17,0x2b,0x25,0x03,0x33,0x03,0x05,0x03,0x13,0x33,0x07,0x06,0x07,0x21,0x15,0x21,0x16,0x17,0x17,0x25,0x35,0x21,0x15,0x01, +0x22,0x26,0x35,0x34,0x36,0x33,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0xfc,0x53,0x0c,0x6a,0x0c,0xfd,0x85,0xe7,0xe8,0x69,0xbe,0x07,0x06,0x01,0xeb,0xfe,0x16,0x08,0x08,0xba,0x02,0xb0,0x04,0xbf,0xfa,0x6a,0x1a,0x22,0x22,0x1a,0x1e,0x1d,0x1f,0x22,0x1a,0xd7,0x02,0x03,0xfd,0xfd,0xb4,0x01,0x27,0x01,0x27,0xef,0x08,0x08,0x50,0x0a,0x0a, +0xeb,0xff,0x50,0x50,0xfe,0xd9,0x22,0x1a,0x1a,0x22,0x21,0x1a,0x1a,0x23,0x00,0x00,0xff,0xff,0xfd,0xee,0x00,0x41,0x02,0x20,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfd,0x99,0x00,0x00,0x00,0x06,0x03,0x34,0xec,0x00,0xff,0xff,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x6c,0x00,0x27,0x04,0x1c,0xfb,0x5f,0x00,0x00,0x00,0x26,0x04,0x1b,0xf1,0x00, +0x00,0x07,0x03,0x34,0xfd,0xa8,0x00,0x00,0x00,0x02,0xfe,0x98,0xff,0xab,0x01,0x45,0x02,0xee,0x00,0x05,0x00,0x0e,0x00,0x41,0x40,0x0a,0x0b,0x07,0x06,0x02,0x01,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0c,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x11,0x00,0x00,0x01,0x01,0x00,0x57, +0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x59,0x40,0x0a,0x00,0x00,0x00,0x05,0x00,0x05,0x13,0x03,0x09,0x17,0x2b,0x17,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0xeb,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68, +0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfc,0x77,0xff,0xab,0x00,0xd2,0x02,0xee,0x00,0x03,0x00,0x09,0x00,0x12,0x00,0x50,0x40,0x0a,0x0f,0x0b,0x0a,0x06,0x05,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x0f,0x05,0x03,0x04,0x03,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x00,0x38,0x01,0x4e, +0x1b,0x40,0x15,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x59,0x40,0x12,0x04,0x04,0x00,0x00,0x04,0x09,0x04,0x09,0x08,0x07,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16, +0x17,0x78,0x5a,0xfd,0xf8,0xfd,0xad,0x02,0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x04,0xfa,0x7e,0xff,0xab,0x00,0x87,0x02,0xee,0x00,0x03,0x00,0x07,0x00,0x0d,0x00,0x16,0x00,0x5f, +0x40,0x0a,0x13,0x0f,0x0e,0x0a,0x09,0x05,0x01,0x00,0x01,0x4c,0x4b,0xb0,0x18,0x50,0x58,0x40,0x12,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x01,0x00,0x5f,0x04,0x02,0x02,0x00,0x00,0x38,0x01,0x4e,0x1b,0x40,0x19,0x04,0x02,0x02,0x00,0x01,0x01,0x00,0x57,0x04,0x02,0x02,0x00,0x00,0x01,0x5f,0x08,0x05,0x07,0x03,0x06,0x05,0x01,0x00,0x01, +0x4f,0x59,0x40,0x1a,0x08,0x08,0x04,0x04,0x00,0x00,0x08,0x0d,0x08,0x0d,0x0c,0x0b,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x09,0x09,0x17,0x2b,0x17,0x11,0x33,0x11,0x21,0x11,0x33,0x11,0x21,0x01,0x35,0x01,0x33,0x11,0x27,0x11,0x01,0x06,0x06,0x07,0x16,0x16,0x17,0x2d,0x5a,0xfd,0xf8,0x5a,0xfd,0xf8,0xfd,0xad,0x02, +0x53,0x5a,0x5a,0xfe,0x43,0x16,0x27,0x0a,0x0a,0x27,0x16,0x55,0x03,0x43,0xfc,0xbd,0x03,0x43,0xfc,0xbd,0x01,0x6d,0x64,0x01,0x72,0xfc,0xbd,0x68,0x02,0x70,0xfe,0xee,0x0d,0x17,0x05,0x04,0x15,0x0e,0x00,0x00,0x00,0x03,0xfb,0xe6,0xff,0x92,0x01,0xc2,0x03,0x0c,0x00,0x03,0x00,0x10,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1d,0x19,0x15,0x14, +0x13,0x12,0x11,0x10,0x0f,0x0e,0x0d,0x09,0x05,0x04,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x11,0x33,0x11,0x37,0x35,0x01,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x35,0x01,0x15,0x01,0x01,0x35,0x01,0x15,0x01,0x06,0x06,0x07,0x16,0x16, +0x17,0x01,0xfe,0xa7,0x5a,0x6e,0x01,0xbd,0x14,0x27,0x0a,0x0a,0x27,0x14,0xfe,0x43,0x02,0x53,0xfc,0x77,0xfd,0xad,0x02,0x53,0xfe,0x43,0x13,0x26,0x0b,0x0b,0x26,0x13,0x01,0xbd,0x6e,0x03,0x7a,0xfc,0x86,0x18,0x6b,0x01,0x10,0x0c,0x15,0x04,0x05,0x16,0x0c,0x01,0x16,0x67,0xfe,0x8e,0x64,0xfe,0x91,0x01,0x6f,0x64,0x01,0x72,0x6b,0xfe, +0xeb,0x0c,0x16,0x05,0x05,0x15,0x0b,0xfe,0xee,0x00,0x00,0x00,0x00,0x03,0xfe,0x07,0xff,0x74,0x02,0x01,0x03,0x66,0x00,0x2d,0x00,0x34,0x00,0x3c,0x00,0x49,0x40,0x46,0x32,0x24,0x1d,0x1a,0x06,0x05,0x03,0x02,0x3c,0x31,0x25,0x13,0x0b,0x07,0x05,0x04,0x08,0x01,0x03,0x2c,0x01,0x04,0x00,0x03,0x4c,0x35,0x01,0x01,0x01,0x4b,0x00,0x02, +0x03,0x02,0x85,0x00,0x03,0x01,0x03,0x85,0x05,0x01,0x04,0x00,0x04,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x2d,0x00,0x2d,0x14,0x19,0x1f,0x11,0x06,0x09,0x1a,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16,0x17,0x11,0x27,0x26,0x26,0x35,0x34, +0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x23,0x34,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0x01,0x04,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x53, +0x64,0x01,0x5a,0x31,0x2d,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03,0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x17,0x6b,0x4a,0x50,0x68,0x08,0x84,0x83,0x08,0x68,0x52,0x2f,0x3b,0x07,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c, +0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x42,0x0d,0x04,0x00,0x00,0x03,0xfb,0xbe,0xff,0x74,0x01,0xea,0x03,0x66,0x00,0x37,0x00,0x3e,0x00,0x46,0x00,0x48,0x40,0x45,0x46,0x3c,0x3b,0x2f,0x2e,0x28,0x24,0x22,0x21,0x1d,0x1a,0x13,0x0b,0x07,0x06,0x05,0x04,0x11,0x01,0x02,0x23,0x01,0x00,0x01, +0x36,0x01,0x03,0x00,0x03,0x4c,0x3f,0x01,0x01,0x01,0x4b,0x00,0x02,0x01,0x02,0x85,0x04,0x01,0x03,0x00,0x03,0x86,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x00,0x42,0x00,0x4e,0x00,0x00,0x00,0x37,0x00,0x37,0x19,0x1f,0x11,0x05,0x09,0x19,0x2b,0x05,0x35,0x26,0x27,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x16,0x16, +0x17,0x11,0x27,0x26,0x26,0x35,0x34,0x36,0x37,0x35,0x33,0x15,0x16,0x16,0x17,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x01,0x26,0x27,0x15,0x17,0x16,0x16,0x15,0x14,0x06,0x07,0x15,0x03,0x14,0x16,0x17,0x35,0x06,0x06,0x13,0x36,0x36,0x35,0x34,0x26,0x27,0x27,0xfe,0xbb,0x79,0x69,0xfd,0xe5,0x01,0xae,0xfe,0xca,0x13, +0x21,0x08,0x09,0x21,0x12,0x01,0xc5,0x2c,0x5d,0x37,0x1b,0x4a,0x52,0x63,0x54,0x3c,0x23,0x50,0x25,0x02,0x5b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfd,0xf8,0x3f,0x34,0x28,0x49,0x50,0x69,0x58,0x99,0x30,0x2d,0x2c,0x31,0x99,0x31,0x36,0x30,0x2b,0x0c,0x8c,0x83,0x04,0x2f,0xee,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x03, +0x0c,0x08,0xc4,0x13,0x15,0x02,0x01,0x07,0x08,0x16,0x6c,0x4a,0x50,0x67,0x08,0x85,0x85,0x04,0x19,0x13,0xfe,0xcb,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x01,0x0a,0x20,0x08,0xf8,0x0d,0x17,0x6d,0x4b,0x52,0x6c,0x09,0x83,0x02,0xb6,0x2d,0x42,0x0e,0xe5,0x07,0x36,0xfd,0xf3,0x08,0x3c,0x30,0x2c,0x41,0x0e,0x04,0x00,0x00, +0x00,0x04,0xf9,0x43,0x00,0x00,0x02,0x03,0x02,0xda,0x00,0x1b,0x00,0x24,0x00,0x28,0x00,0x2c,0x00,0x7d,0x40,0x7a,0x1d,0x01,0x10,0x0f,0x01,0x4c,0x00,0x0e,0x04,0x03,0x04,0x0e,0x03,0x80,0x17,0x01,0x11,0x00,0x0b,0x00,0x11,0x0b,0x80,0x07,0x05,0x02,0x03,0x13,0x08,0x02,0x02,0x0f,0x03,0x02,0x68,0x14,0x01,0x0f,0x18,0x15,0x02,0x10, +0x01,0x0f,0x10,0x68,0x12,0x09,0x02,0x01,0x0c,0x0a,0x02,0x00,0x11,0x01,0x00,0x67,0x06,0x01,0x04,0x04,0x38,0x4d,0x16,0x0d,0x02,0x0b,0x0b,0x39,0x0b,0x4e,0x29,0x29,0x1c,0x1c,0x00,0x00,0x29,0x2c,0x29,0x2c,0x2b,0x2a,0x28,0x27,0x26,0x25,0x1c,0x24,0x1c,0x24,0x23,0x22,0x21,0x20,0x1f,0x1e,0x00,0x1b,0x00,0x1b,0x1a,0x19,0x18,0x17, +0x16,0x15,0x14,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x19,0x09,0x1f,0x2b,0x21,0x37,0x23,0x35,0x33,0x37,0x23,0x35,0x33,0x37,0x33,0x07,0x33,0x37,0x33,0x07,0x33,0x15,0x23,0x07,0x33,0x15,0x23,0x07,0x23,0x37,0x23,0x07,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x17,0x25,0x33,0x37,0x23,0x05,0x35,0x21,0x15,0xfb,0xa3, +0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0x46,0x27,0x57,0x62,0x22,0x61,0x6c,0x27,0x46,0x27,0xa0,0x27,0xfe,0x41,0xe7,0xe8,0x69,0xcb,0x01,0x69,0xfe,0x98,0xca,0x01,0x87,0xa0,0x22,0xa0,0x01,0x93,0x04,0x33,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0xd2,0x41,0xb4,0x41,0xd2,0xd2,0xd2,0x23,0x01,0x27,0x01,0x27,0xff,0x50, +0xff,0xf0,0xb4,0xa5,0x50,0x50,0x00,0x00,0x00,0x02,0xfd,0xee,0x00,0x2d,0x02,0x26,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x3e,0x40,0x3b,0x10,0x0f,0x0e,0x03,0x01,0x02,0x14,0x01,0x00,0x01,0x18,0x0d,0x0c,0x03,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05, +0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x37,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0xdd,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x67,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08, +0x09,0x22,0x11,0x01,0x36,0x2d,0xf5,0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x2d,0x01,0xf4,0x02,0x67,0x00,0x0b,0x00,0x18,0x00,0x25,0x00,0x45,0x40,0x42,0x24,0x23,0x22,0x10,0x0f,0x0e,0x06,0x01,0x02,0x1e,0x14,0x02,0x00,0x01,0x25,0x1a, +0x19,0x18,0x0d,0x0c,0x06,0x05,0x00,0x03,0x4c,0x00,0x02,0x01,0x05,0x02,0x57,0x03,0x01,0x01,0x04,0x01,0x00,0x05,0x01,0x00,0x67,0x00,0x02,0x02,0x05,0x5f,0x06,0x01,0x05,0x02,0x05,0x4f,0x00,0x00,0x00,0x0b,0x00,0x0b,0x11,0x11,0x11,0x11,0x11,0x07,0x09,0x1b,0x2b,0x25,0x35,0x23,0x35,0x33,0x35,0x33,0x15,0x33,0x15,0x23,0x15,0x25, +0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0xfe,0xa8,0xf1,0xf1,0x58,0xf1,0xf1,0xfe,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca,0x01,0xae,0x2d,0xf5, +0x50,0xf5,0xf5,0x50,0xf5,0x14,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09,0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x00,0x00,0x02,0xfe,0xcf,0xff,0xb6,0x01,0x31,0x02,0xbc,0x00,0x0d,0x00,0x11,0x00,0x08,0xb5,0x10,0x0e,0x03,0x00,0x02,0x32,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06, +0x07,0x15,0x32,0x16,0x17,0x05,0x11,0x25,0x35,0x05,0x01,0x31,0xfd,0x9e,0x02,0x62,0xfe,0x16,0x11,0x1e,0x08,0x08,0x1e,0x11,0x01,0xea,0xfd,0x9e,0x02,0x62,0x96,0xe1,0x64,0xe1,0x5a,0xa8,0x06,0x06,0x01,0x07,0x06,0x06,0xab,0xfe,0xc7,0xe2,0x58,0xe2,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xd6,0x02,0x71,0x00,0x0c,0x00,0x11,0x00,0x40, +0x40,0x3d,0x11,0x01,0x02,0x06,0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x10,0x0f,0x0e,0x0d,0x00,0x0c,0x00,0x0c,0x11,0x11,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b, +0x25,0x03,0x13,0x33,0x07,0x21,0x35,0x33,0x11,0x23,0x35,0x21,0x17,0x27,0x21,0x35,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xfb,0x5a,0x5a,0xfb,0x05,0x6b,0xaa,0x05,0x3a,0xfa,0xc5,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfd,0xb2,0x87,0x87,0xd7,0xa0,0x4f,0x00,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x0d, +0x00,0x6c,0xb6,0x08,0x01,0x02,0x03,0x02,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x25,0x00,0x00,0x01,0x01,0x00,0x70,0x06,0x01,0x05,0x04,0x04,0x05,0x71,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x1b,0x40,0x23,0x00,0x00,0x01,0x00,0x85,0x06,0x01, +0x05,0x04,0x05,0x86,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x04,0x04,0x03,0x57,0x00,0x03,0x03,0x04,0x5f,0x00,0x04,0x03,0x04,0x4f,0x59,0x40,0x0e,0x00,0x00,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x07,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0xfc,0x82,0xe7,0xe8, +0x69,0x6b,0x05,0x82,0xfa,0x3e,0x3d,0x3e,0x05,0xc1,0xfa,0x7e,0x6b,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x00,0x02,0xf9,0x43,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, +0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00, +0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfa,0x2a,0xe7,0xe8,0x69,0x6b,0x06,0xfe,0x6b,0x6a,0xe7,0xe8,0x69, +0x6b,0xf9,0x02,0x6b,0xaa,0x07,0x7d,0x41,0x42,0xf8,0x83,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x77,0x40,0x09,0x13,0x10,0x08,0x01,0x04,0x06,0x07,0x01,0x4c,0x4b,0xb0,0x0a,0x50,0x58, +0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x70,0x08,0x05,0x02,0x03,0x04,0x04,0x03,0x71,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x1b,0x40,0x25,0x02,0x01,0x00,0x01,0x00,0x85,0x08,0x05,0x02,0x03,0x04,0x03,0x86,0x00,0x01,0x00,0x07,0x06,0x01,0x07, +0x68,0x00,0x06,0x04,0x04,0x06,0x57,0x00,0x06,0x06,0x04,0x5f,0x00,0x04,0x06,0x04,0x4f,0x59,0x40,0x12,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x27,0x33,0x13,0x03,0x23,0x37,0x21,0x17,0x27,0x21,0x37,0x27,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69, +0x6b,0x04,0xa6,0x6b,0x6a,0xe7,0xe8,0x69,0x6b,0xfb,0x5a,0x6b,0xaa,0x05,0x25,0x41,0x42,0xfa,0xdb,0x3e,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xd9,0xfe,0xd9,0x87,0x87,0xd7,0x4f,0x51,0x4f,0x00,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xf4,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x42,0x40,0x3f,0x13,0x10,0x08,0x01,0x04,0x06, +0x07,0x01,0x4c,0x02,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x07,0x06,0x01,0x07,0x68,0x00,0x06,0x00,0x04,0x03,0x06,0x04,0x67,0x02,0x01,0x00,0x00,0x03,0x5f,0x08,0x05,0x02,0x03,0x00,0x03,0x4f,0x00,0x00,0x12,0x11,0x0f,0x0e,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x09,0x09,0x1b,0x2b,0x25,0x03,0x13,0x33,0x07,0x21, +0x37,0x33,0x03,0x13,0x23,0x27,0x21,0x17,0x27,0x21,0x27,0x37,0x21,0x07,0xfc,0x82,0xe7,0xe8,0x69,0x6b,0x04,0xa0,0x6a,0x69,0xe8,0xe8,0x6a,0x6a,0xfb,0x61,0x6b,0xaa,0x04,0xa0,0x3f,0x3f,0xfb,0x5f,0x3d,0x23,0x01,0x27,0x01,0x27,0x87,0x87,0xfe,0xda,0xfe,0xd8,0x87,0x87,0xd7,0x50,0x50,0x4f,0x00,0x02,0xfe,0x34,0x00,0x28,0x01,0xcc, +0x02,0x6c,0x00,0x05,0x00,0x13,0x00,0x08,0xb5,0x0e,0x06,0x03,0x00,0x02,0x32,0x2b,0x35,0x25,0x35,0x25,0x05,0x15,0x05,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x05,0x06,0x07,0x16,0x17,0xfe,0x34,0x01,0xcc,0x01,0xcc,0xfe,0x38,0x01,0x4e,0x14,0x17,0x04,0x04,0x18,0x11,0xfe,0xab,0xfe,0xb7,0x25,0x0c,0x0c,0x25,0x28,0xf0,0x64,0xf0, +0xf0,0x64,0x91,0xaa,0x0a,0x0c,0x02,0x02,0x0a,0x09,0xb0,0xac,0x13,0x03,0x03,0x13,0xff,0xff,0xfe,0x47,0x00,0x41,0x01,0xd6,0x02,0x53,0x00,0x27,0x04,0x1c,0xfd,0xf2,0x00,0x00,0x00,0x06,0x04,0x1c,0xd3,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x03,0x02,0x71,0x00,0x08,0x00,0x0e,0x00,0x3c,0x40,0x39,0x0d,0x0a,0x01,0x03,0x02,0x01, +0x01,0x4c,0x04,0x01,0x00,0x01,0x03,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x04,0x01,0x00,0x00,0x03,0x5f,0x07,0x05,0x06,0x03,0x03,0x00,0x03,0x4f,0x09,0x09,0x00,0x00,0x09,0x0e,0x09,0x0e,0x0c,0x0b,0x00,0x08,0x00,0x08,0x11,0x11,0x12,0x08,0x09,0x19,0x2b,0x25,0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x13,0x21,0x03,0x13, +0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0xcb,0x04,0xb6,0xfb,0x46,0xcf,0xfe,0x6a,0xe7,0xe8,0x69,0xea,0xea,0x23,0x01,0x27,0x01,0x27,0xff,0x4b,0xfe,0xfc,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x01,0xdb,0x02,0x71,0x00,0x0d,0x00,0x13,0x00,0x47,0x40,0x44,0x12,0x0f,0x08,0x01,0x04,0x03, +0x02,0x01,0x4c,0x06,0x01,0x00,0x01,0x05,0x00,0x57,0x00,0x01,0x00,0x02,0x03,0x01,0x02,0x68,0x00,0x03,0x00,0x04,0x05,0x03,0x04,0x67,0x06,0x01,0x00,0x00,0x05,0x5f,0x09,0x07,0x08,0x03,0x05,0x00,0x05,0x4f,0x0e,0x0e,0x00,0x00,0x0e,0x13,0x0e,0x13,0x11,0x10,0x00,0x0d,0x00,0x0d,0x11,0x12,0x11,0x11,0x12,0x0a,0x09,0x1b,0x2b,0x25, +0x03,0x13,0x33,0x07,0x21,0x15,0x21,0x07,0x17,0x21,0x15,0x21,0x17,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x6b,0x04,0x2e,0xfb,0x92,0x3f,0x40,0x04,0x6d,0xfb,0xd2,0x6b,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0x87,0x50,0x4f,0x51,0x50,0x87,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x00, +0xff,0xff,0xfb,0xf5,0x00,0x41,0x01,0xbd,0x02,0x53,0x00,0x27,0x04,0x1c,0xfb,0xa0,0x00,0x00,0x00,0x27,0x04,0x1c,0xfd,0xad,0x00,0x00,0x00,0x06,0x04,0x1c,0xba,0x00,0x00,0x02,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x4c,0x00,0x52,0x00,0xa6,0x40,0x09,0x51,0x4e,0x4b,0x01,0x04,0x02,0x09,0x01,0x4c,0x4b,0xb0,0x0d,0x50,0x58, +0x40,0x34,0x00,0x07,0x01,0x09,0x02,0x07,0x72,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x1b,0x40,0x35,0x00,0x07,0x01,0x09,0x01,0x07,0x09, +0x80,0x0f,0x01,0x00,0x01,0x0e,0x00,0x57,0x05,0x03,0x02,0x01,0x0d,0x0b,0x02,0x09,0x02,0x01,0x09,0x6a,0x06,0x04,0x02,0x02,0x0c,0x0a,0x02,0x08,0x0e,0x02,0x08,0x6a,0x0f,0x01,0x00,0x00,0x0e,0x5f,0x12,0x10,0x11,0x03,0x0e,0x00,0x0e,0x4f,0x59,0x40,0x24,0x4d,0x4d,0x00,0x00,0x4d,0x52,0x4d,0x52,0x50,0x4f,0x00,0x4c,0x00,0x4c,0x4a, +0x48,0x44,0x42,0x3e,0x3c,0x38,0x36,0x32,0x30,0x23,0x12,0x24,0x24,0x24,0x24,0x24,0x21,0x12,0x13,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x07,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23, +0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x23,0x07,0x13,0x21,0x03,0x13,0x33,0x03,0x13,0xfd,0xae,0xe7,0xe8,0x69,0x98,0x1e,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32, +0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x5a,0x16,0xea,0xfe,0x6a,0xe7,0xe8,0x69,0xe9,0xe9,0x23,0x01,0x27,0x01,0x27,0xbf,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, +0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1c,0xfe,0xd8,0x01,0x27,0x01,0x27,0xfe,0xda,0xfe,0xd8,0x00,0x01,0xfd,0xf3,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x3c,0x01,0x07,0x03,0x01,0x4c,0x01,0x01,0x01,0x01,0x4b,0x4b, +0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x03,0x06,0x72,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x1b,0x40,0x38, +0x00,0x00,0x02,0x00,0x85,0x00,0x06,0x02,0x08,0x02,0x06,0x08,0x80,0x00,0x01,0x08,0x03,0x08,0x01,0x03,0x80,0x0c,0x01,0x0b,0x07,0x0b,0x86,0x04,0x01,0x02,0x0a,0x01,0x08,0x01,0x02,0x08,0x6a,0x05,0x01,0x03,0x07,0x07,0x03,0x59,0x05,0x01,0x03,0x03,0x07,0x62,0x09,0x01,0x07,0x03,0x07,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00, +0x3d,0x38,0x36,0x32,0x30,0x24,0x23,0x12,0x24,0x24,0x24,0x24,0x21,0x12,0x0d,0x09,0x1f,0x2b,0x25,0x03,0x13,0x33,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x02,0x07, +0x17,0xfe,0xda,0xe7,0xe8,0x69,0xeb,0x0d,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x17,0x22,0x20,0x29,0x1e,0xb6,0x23,0x01,0x27,0x01, +0x27,0xfe,0xd9,0x15,0x1f,0x1f,0x15,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x38,0x28,0x28,0x3a,0x49,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x17,0x21,0x1f,0x07,0xe6,0x00,0x00,0x00,0x00,0x03,0xfb,0xb4,0x00,0x41,0x01,0xf4,0x02,0x53,0x00,0x0c,0x00,0x19,0x00,0x4d,0x00,0xa4,0x40,0x1f, +0x18,0x02,0x02,0x01,0x07,0x12,0x08,0x02,0x04,0x01,0x19,0x01,0x02,0x02,0x04,0x03,0x4c,0x17,0x16,0x04,0x03,0x04,0x03,0x4a,0x0e,0x0d,0x0c,0x00,0x04,0x00,0x49,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00,0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, +0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00, +0x04,0x00,0x52,0x59,0x40,0x1b,0x1b,0x1a,0x49,0x47,0x43,0x41,0x3e,0x3d,0x3b,0x39,0x35,0x33,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1a,0x4d,0x1b,0x4d,0x0b,0x09,0x16,0x2b,0x25,0x25,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x35,0x05,0x15,0x05,0x22,0x2e,0x03, +0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfd,0x62,0xfe,0x52,0x01,0xae,0xfe,0xca,0x13,0x21,0x08,0x09,0x22,0x11,0x01,0x36,0x02,0xe4,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0xca, +0x01,0xae,0xfc,0x81,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x31,0x41,0xd7,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0x99,0x5a,0x57,0x98,0x09, +0x0d,0x02,0x02,0x0e,0x08,0x99,0x5a,0xd7,0x64,0x33,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x9b,0x00,0x23,0x02,0x12,0x02,0x71,0x00,0x66,0x00,0xb3,0x40,0x0b,0x12,0x01,0x0a,0x04, +0x0f,0x06,0x02,0x03,0x0c,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x03,0x0a,0x72,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11, +0x04,0x00,0x03,0x00,0x52,0x1b,0x40,0x38,0x00,0x02,0x04,0x02,0x85,0x00,0x0a,0x04,0x0c,0x04,0x0a,0x0c,0x80,0x00,0x01,0x00,0x01,0x86,0x08,0x06,0x02,0x04,0x10,0x0e,0x02,0x0c,0x03,0x04,0x0c,0x69,0x09,0x07,0x05,0x03,0x03,0x00,0x00,0x03,0x59,0x09,0x07,0x05,0x03,0x03,0x03,0x00,0x62,0x0f,0x0d,0x0b,0x11,0x04,0x00,0x03,0x00,0x52, +0x59,0x40,0x29,0x01,0x00,0x62,0x60,0x5c,0x5a,0x56,0x54,0x50,0x4e,0x4a,0x48,0x44,0x42,0x3f,0x3e,0x3c,0x3a,0x36,0x34,0x30,0x2e,0x2a,0x28,0x24,0x22,0x1e,0x1c,0x18,0x16,0x11,0x10,0x0e,0x0d,0x00,0x66,0x01,0x66,0x12,0x09,0x16,0x2b,0x25,0x22,0x2e,0x03,0x27,0x06,0x06,0x07,0x16,0x16,0x17,0x17,0x23,0x03,0x13,0x33,0x07,0x1e,0x03, +0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0xfc,0xd6,0x24,0x30,0x22,0x1b,0x1b,0x13, +0x09,0x0c,0x02,0x04,0x19,0x15,0xba,0x6a,0xe7,0xe8,0x69,0xa2,0x1a,0x23,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x32,0x25,0x25,0x34,0x24,0x1d,0x1f,0x14,0x15,0x1f,0x1d,0x24,0x33,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15,0x15, +0x1f,0x1e,0x24,0x33,0x26,0x25,0x33,0x24,0x1d,0x1f,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0xe5,0x18,0x24,0x26,0x1c,0x03,0x0b,0x0d,0x03,0x04,0x1f,0x1a,0xeb,0x01,0x27,0x01,0x27,0xcc,0x0c,0x27,0x27,0x1b,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27, +0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x00,0x01,0xfe,0x2a,0xff,0x92,0x01,0xea,0x03,0x3e,0x00,0x10,0x00,0x23,0x40,0x20,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x07, +0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x10,0x00,0x10,0x1e,0x03,0x09,0x17,0x2b,0x17,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x01,0x28,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0xfe,0x9d,0x6e, +0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xfc,0x54,0x00,0x00,0x00,0x01,0xfb,0xf5,0xff,0x92,0x01,0xb3,0x03,0x3e,0x00,0x1d,0x00,0x2a,0x40,0x27,0x1c,0x18,0x14,0x13,0x12,0x11,0x10,0x0d,0x09,0x05,0x04,0x03,0x02,0x01,0x0e,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01, +0x76,0x00,0x00,0x00,0x1d,0x00,0x1d,0x1e,0x03,0x09,0x17,0x2b,0x05,0x37,0x01,0x35,0x25,0x15,0x05,0x06,0x06,0x07,0x16,0x16,0x17,0x05,0x01,0x33,0x07,0x01,0x15,0x05,0x35,0x25,0x36,0x36,0x37,0x26,0x26,0x27,0x25,0x01,0xfd,0xf3,0x2b,0xfd,0xd7,0x01,0xae,0xfe,0xca,0x11,0x1c,0x07,0x07,0x1c,0x11,0x01,0xcd,0x01,0x1c,0x5f,0x3d,0x02, +0x3b,0xfe,0x52,0x01,0x36,0x13,0x21,0x08,0x09,0x22,0x11,0xfe,0x20,0xfe,0xf7,0x6e,0x71,0x01,0x15,0x64,0xd7,0x5a,0x97,0x09,0x0c,0x02,0x02,0x0c,0x09,0xe6,0x02,0xf0,0xa3,0xfe,0xe1,0x64,0xd7,0x57,0x98,0x09,0x0d,0x02,0x02,0x0d,0x09,0xf0,0xfd,0x42,0x00,0x01,0xfe,0x11,0x00,0xdc,0x01,0xf4,0x01,0xb8,0x00,0x1e,0x00,0x6e,0x4b,0xb0, +0x11,0x50,0x58,0x40,0x22,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59,0x00,0x05,0x00,0x06,0x00,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x02,0x07,0x02,0x00,0x04,0x00,0x51,0x1b,0x40,0x29,0x00,0x02,0x06,0x00,0x06,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x06,0x00,0x04,0x59, +0x00,0x05,0x00,0x06,0x02,0x05,0x06,0x67,0x00,0x04,0x04,0x00,0x61,0x07,0x01,0x00,0x04,0x00,0x51,0x59,0x40,0x15,0x01,0x00,0x1c,0x1b,0x1a,0x18,0x16,0x14,0x10,0x0e,0x0b,0x0a,0x07,0x05,0x00,0x1e,0x01,0x1e,0x08,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36, +0x35,0x35,0x21,0x15,0x21,0x06,0x06,0x64,0x29,0x38,0x29,0x24,0x27,0x1b,0x1f,0x27,0x55,0x55,0x46,0x2a,0x39,0x29,0x23,0x27,0x1a,0x20,0x26,0x02,0x12,0xfe,0x2f,0x13,0x46,0xdc,0x1d,0x2b,0x2c,0x1d,0x26,0x20,0x3c,0x3c,0x41,0x50,0x1d,0x2b,0x2c,0x1d,0x28,0x1e,0x05,0x50,0x21,0x25,0x00,0x00,0x00,0x02,0xfd,0xee,0xff,0x4c,0x02,0x30, +0x02,0xe4,0x00,0x44,0x00,0x52,0x00,0xcb,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x00,0x04,0x02,0x4c,0x1b,0x40,0x0b,0x2e,0x19,0x02,0x0c,0x03,0x42,0x01,0x02,0x04,0x02,0x4c,0x59,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x38,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69, +0x00,0x04,0x02,0x0d,0x02,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x1b,0x40,0x3f,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x07,0x00,0x0c,0x01,0x07,0x0c,0x69,0x00,0x03,0x00,0x01,0x04, +0x03,0x01,0x69,0x00,0x04,0x0d,0x01,0x00,0x0b,0x04,0x00,0x69,0x0e,0x01,0x0b,0x00,0x06,0x09,0x0b,0x06,0x69,0x00,0x08,0x08,0x05,0x61,0x00,0x05,0x05,0x3e,0x4d,0x00,0x09,0x09,0x0a,0x5f,0x00,0x0a,0x0a,0x3d,0x0a,0x4e,0x59,0x40,0x25,0x46,0x45,0x01,0x00,0x4d,0x4b,0x45,0x52,0x46,0x52,0x3e,0x3c,0x3b,0x39,0x34,0x32,0x2c,0x2a,0x25, +0x23,0x1e,0x1c,0x17,0x15,0x11,0x0f,0x0b,0x0a,0x07,0x05,0x00,0x44,0x01,0x44,0x0f,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x36,0x33,0x32,0x1e,0x03,0x33,0x32,0x36,0x37,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x22,0x26,0x35,0x35,0x34,0x36,0x33,0x32,0x16,0x17,0x33,0x35, +0x34,0x26,0x23,0x22,0x06,0x15,0x11,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x26,0x35,0x35,0x06,0x06,0x05,0x32,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x15,0x14,0x16,0x62,0x31,0x45,0x32,0x29,0x2a,0x1a,0x1e,0x28,0x55,0x28,0x46,0x2b,0x2c,0x3c,0x2e,0x2a,0x33,0x24,0x39,0x4c,0x0a,0x90,0x7e,0x72,0x83,0x56,0x4a,0x49,0x57, +0x46,0x40,0x29,0x36,0x09,0x02,0x55,0x50,0x5a,0x64,0x6b,0x5d,0x6e,0x6e,0x55,0x7e,0x45,0x19,0x49,0x01,0xc5,0x26,0x2a,0x2a,0x26,0x26,0x2a,0x2a,0xfa,0x1a,0x27,0x27,0x1a,0x25,0x1c,0x3c,0x3c,0x28,0x3f,0x25,0x1a,0x27,0x27,0x1a,0x3e,0x33,0x0c,0x87,0x9b,0x83,0x72,0xfe,0xf1,0x4e,0x5b,0x58,0x47,0x74,0x4a,0x51,0x20,0x1c,0x46,0x55, +0x5a,0x74,0x68,0xfe,0xac,0x64,0x73,0x4b,0x47,0x83,0x58,0xcf,0x20,0x23,0x80,0x31,0x2b,0x75,0x2c,0x2f,0x30,0x2c,0x74,0x2b,0x31,0x00,0x00,0x00,0x00,0x01,0xfd,0xee,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x3d,0x00,0xa0,0x40,0x0b,0x01,0x01,0x01,0x05,0x01,0x4c,0x3c,0x01,0x09,0x01,0x4b,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x37,0x00,0x0a, +0x06,0x0a,0x85,0x00,0x04,0x06,0x00,0x05,0x04,0x72,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x1b,0x40,0x38,0x00,0x0a,0x06,0x0a,0x85,0x00,0x04,0x06, +0x00,0x06,0x04,0x00,0x80,0x00,0x09,0x00,0x05,0x00,0x09,0x05,0x80,0x0c,0x01,0x0b,0x01,0x0b,0x86,0x08,0x01,0x06,0x02,0x01,0x00,0x09,0x06,0x00,0x6a,0x07,0x01,0x05,0x01,0x01,0x05,0x59,0x07,0x01,0x05,0x05,0x01,0x62,0x03,0x01,0x01,0x05,0x01,0x52,0x59,0x40,0x16,0x00,0x00,0x00,0x3d,0x00,0x3d,0x3b,0x3a,0x39,0x37,0x24,0x24,0x24, +0x22,0x13,0x24,0x24,0x24,0x25,0x0d,0x09,0x1f,0x2b,0x37,0x37,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x33,0x03,0x33,0x13,0x03,0xbc,0xb6,0x1e,0x29,0x20,0x22,0x17,0x15, +0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x33,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x10,0xee,0x6a,0xe7,0xe8,0x23,0xe5,0x08,0x1e,0x22,0x17,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a, +0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x15,0x1f,0x1f,0x15,0x01,0x27,0xfe,0xd9,0xfe,0xd9,0x00,0x00,0x01,0xfe,0x57,0x00,0xe6,0x01,0xae,0x01,0xb3,0x00,0x33,0x00,0x83,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x2c,0x00,0x07,0x03,0x01,0x04,0x07,0x72,0x00,0x02,0x04,0x00, +0x01,0x02,0x72,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01,0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x2e,0x00,0x07,0x03,0x01,0x03,0x07,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x05,0x01,0x03,0x09,0x01,0x01,0x04,0x03,0x01,0x69,0x06,0x01, +0x04,0x02,0x00,0x04,0x59,0x06,0x01,0x04,0x04,0x00,0x62,0x08,0x0a,0x02,0x00,0x04,0x00,0x52,0x59,0x40,0x1b,0x01,0x00,0x2f,0x2d,0x29,0x27,0x24,0x23,0x21,0x1f,0x1b,0x19,0x15,0x13,0x0f,0x0d,0x0a,0x09,0x07,0x05,0x00,0x33,0x01,0x33,0x0b,0x09,0x16,0x2b,0x27,0x22,0x2e,0x03,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e, +0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x5f,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x48,0x3a,0x25,0x31,0x22,0x1b,0x1e,0x15,0x15,0x1d,0x1b,0x21,0x32,0x25,0x25,0x32,0x22,0x1b,0x1e,0x14,0x2f,0x55,0x47,0x3b,0x25,0x32,0x21,0x1b,0x1e,0x15, +0x15,0x1d,0x1b,0x21,0x31,0xe6,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3b,0x47,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x37,0x28,0x28,0x3a,0x48,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x00,0x01,0xfb,0x96,0x00,0x23,0x02,0x0d,0x02,0x71,0x00,0x61,0x00,0xf7,0x40,0x0b,0x5d,0x01,0x08,0x0a,0x60,0x01,0x02,0x09, +0x00,0x02,0x4c,0x4b,0xb0,0x0d,0x50,0x58,0x40,0x38,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x09,0x08,0x72,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01,0x09, +0x01,0x52,0x1b,0x4b,0xb0,0x17,0x50,0x58,0x40,0x39,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x00,0x0a,0x08,0x00,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x03,0x00,0x09,0x0a,0x00,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05,0x03,0x03,0x01, +0x09,0x01,0x52,0x1b,0x40,0x40,0x00,0x10,0x0a,0x10,0x85,0x00,0x08,0x0a,0x02,0x0a,0x08,0x02,0x80,0x00,0x00,0x02,0x09,0x02,0x00,0x09,0x80,0x12,0x01,0x11,0x01,0x11,0x86,0x0e,0x0c,0x02,0x0a,0x06,0x04,0x02,0x02,0x00,0x0a,0x02,0x69,0x0f,0x0d,0x0b,0x03,0x09,0x01,0x01,0x09,0x59,0x0f,0x0d,0x0b,0x03,0x09,0x09,0x01,0x62,0x07,0x05, +0x03,0x03,0x01,0x09,0x01,0x52,0x59,0x59,0x40,0x22,0x00,0x00,0x00,0x61,0x00,0x61,0x5f,0x5e,0x59,0x57,0x53,0x51,0x4d,0x4b,0x47,0x45,0x41,0x3f,0x3b,0x39,0x35,0x33,0x13,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x12,0x13,0x09,0x1f,0x2b,0x37,0x13,0x27,0x0e,0x04,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22, +0x0e,0x03,0x23,0x22,0x2e,0x03,0x23,0x22,0x0e,0x03,0x23,0x22,0x26,0x35,0x35,0x33,0x15,0x14,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x03,0x33,0x32,0x1e,0x03,0x33,0x32,0x3e,0x02,0x37,0x27,0x33,0x13,0x03,0xbc,0xee,0x12,0x14,0x1e,0x1b,0x22,0x32,0x25,0x25,0x32,0x22,0x1c, +0x1e,0x15,0x15,0x1e,0x1c,0x22,0x31,0x26,0x25,0x32,0x22,0x1c,0x1e,0x15,0x15,0x1f,0x1d,0x24,0x32,0x26,0x25,0x34,0x24,0x1e,0x1f,0x15,0x15,0x1e,0x1b,0x21,0x31,0x26,0x3a,0x48,0x55,0x2f,0x14,0x1e,0x1b,0x22,0x32,0x25,0x26,0x32,0x24,0x1d,0x1f,0x15,0x14,0x1f,0x1d,0x24,0x34,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x15,0x1e,0x1c,0x22, +0x32,0x25,0x26,0x31,0x22,0x1c,0x1e,0x15,0x16,0x1e,0x1d,0x24,0x1c,0xa7,0x6a,0xe7,0xe8,0x23,0x01,0x26,0x14,0x01,0x18,0x24,0x23,0x18,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x48,0x3a,0x28,0x28,0x37,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a, +0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x27,0x27,0x1a,0x1a,0x25,0x25,0x0a,0xd3,0xfe,0xd9,0xfe,0xd9,0x00,0x02,0xfe,0x39,0x00,0xaa,0x01,0x9f,0x02,0xf8,0x00,0x0e,0x00,0x12,0x00,0x3d,0x40,0x3a,0x0a,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x06,0x03,0x02,0x02,0x04,0x01,0x02,0x67,0x00, +0x04,0x05,0x05,0x04,0x57,0x00,0x04,0x04,0x05,0x5f,0x07,0x01,0x05,0x04,0x05,0x4f,0x0f,0x0f,0x00,0x00,0x0f,0x12,0x0f,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x11,0x11,0x11,0x08,0x09,0x19,0x2b,0x01,0x13,0x33,0x13,0x21,0x15,0x21,0x27,0x26,0x26,0x27,0x06,0x06,0x07,0x07,0x05,0x35,0x21,0x15,0xfe,0x39,0xc8,0x54,0x9b,0x01,0xaf,0xfe, +0x1b,0x77,0x0a,0x0b,0x02,0x02,0x0d,0x0b,0x7c,0x01,0x24,0x01,0xe5,0x01,0x9a,0x01,0x5e,0xfe,0xf2,0x50,0xe1,0x14,0x1e,0x07,0x07,0x1e,0x14,0xe1,0xf0,0x50,0x50,0x00,0x00,0x04,0xfd,0xf8,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x46,0x40,0x43,0x02,0x01,0x00,0x09,0x03,0x08,0x03,0x01,0x04,0x00, +0x01,0x67,0x06,0x01,0x04,0x05,0x05,0x04,0x57,0x06,0x01,0x04,0x04,0x05,0x5f,0x0b,0x07,0x0a,0x03,0x05,0x04,0x05,0x4f,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x0c,0x0f,0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x0c,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0x33,0x35, +0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0xfd,0xf8,0x01,0xcc,0x78,0x01,0xcc,0xfb,0xf0,0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x00,0x00,0x06,0xfb,0xa0,0x00,0xaa,0x02,0x08,0x01,0xea,0x00,0x03,0x00,0x07,0x00,0x0b,0x00,0x0f,0x00,0x13,0x00,0x17,0x00,0x5d,0x40,0x5a,0x04,0x02, +0x02,0x00,0x0e,0x05,0x0d,0x03,0x0c,0x05,0x01,0x06,0x00,0x01,0x67,0x0a,0x08,0x02,0x06,0x07,0x07,0x06,0x57,0x0a,0x08,0x02,0x06,0x06,0x07,0x5f,0x11,0x0b,0x10,0x09,0x0f,0x05,0x07,0x06,0x07,0x4f,0x14,0x14,0x10,0x10,0x0c,0x0c,0x08,0x08,0x04,0x04,0x00,0x00,0x14,0x17,0x14,0x17,0x16,0x15,0x10,0x13,0x10,0x13,0x12,0x11,0x0c,0x0f, +0x0c,0x0f,0x0e,0x0d,0x08,0x0b,0x08,0x0b,0x0a,0x09,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x12,0x09,0x17,0x2b,0x13,0x35,0x21,0x15,0x21,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x05,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x33,0x35,0x21,0x15,0x3c,0x01,0xcc,0xf9,0x98,0x01,0xcc,0x8c,0x01,0xcc,0xfb,0xdc,0x01,0xcc,0x8c, +0x01,0xcc,0x78,0x01,0xcc,0x01,0x9a,0x50,0x50,0x50,0x50,0x50,0x50,0xf0,0x50,0x50,0x50,0x50,0x50,0x50,0x00,0x02,0x00,0x8c,0xff,0xf6,0x01,0xcc,0x02,0xda,0x00,0x0e,0x00,0x1a,0x00,0x24,0x40,0x21,0x0f,0x03,0x00,0x03,0x02,0x49,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x02,0x02,0x01,0x59,0x00,0x01,0x01,0x02,0x61,0x00,0x02,0x01,0x02, +0x51,0x2e,0x24,0x11,0x03,0x06,0x19,0x2b,0x17,0x11,0x33,0x11,0x33,0x36,0x36,0x33,0x32,0x16,0x15,0x15,0x14,0x06,0x07,0x27,0x37,0x36,0x36,0x35,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x8c,0x5a,0x01,0x06,0x36,0x29,0x3a,0x46,0x4f,0x46,0x51,0x35,0x29,0x2e,0x25,0x21,0x21,0x25,0x0a,0x02,0xe4,0xfe,0xc0,0x27,0x2f,0x54,0x47,0x55,0x43, +0x6c,0x1a,0x3a,0x14,0x10,0x40,0x2b,0x55,0x23,0x26,0x26,0x23,0x00,0x02,0x00,0x41,0x00,0x00,0x02,0x17,0x02,0xda,0x00,0x1b,0x00,0x1f,0x00,0x40,0x40,0x3d,0x0e,0x01,0x00,0x01,0x1f,0x1e,0x1d,0x1c,0x1b,0x18,0x17,0x14,0x13,0x12,0x11,0x10,0x0f,0x0d,0x0a,0x09,0x06,0x05,0x04,0x03,0x02,0x01,0x16,0x02,0x00,0x00,0x01,0x03,0x02,0x03, +0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x03,0x02,0x85,0x00,0x03,0x03,0x76,0x13,0x19,0x13,0x17,0x04,0x06,0x1a,0x2b,0x37,0x35,0x37,0x35,0x07,0x35,0x37,0x35,0x33,0x15,0x37,0x35,0x33,0x15,0x37,0x15,0x07,0x15,0x37,0x15,0x07,0x15,0x23,0x35,0x07,0x15,0x23,0x35,0x13,0x15,0x37,0x35,0x41,0x69,0x69,0x69, +0x3c,0x8c,0x3c,0x69,0x69,0x69,0x69,0x3c,0x8c,0x3c,0x3c,0x8c,0x50,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x37,0x41,0x37,0xc1,0x37,0x41,0x37,0xb6,0x96,0x49,0xa7,0x87,0x01,0x22,0xc1,0x49,0xc1,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x00, +0x01,0x86,0x00,0x00,0x00,0x28,0x00,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x00,0xff,0xff,0x00,0xd2,0xff,0x60,0x01,0x75,0x00,0x92,0x02,0x06,0x03,0x2a,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0xd1,0x01,0x77,0x03,0x08,0x00,0x03, +0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0xd1,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0x00,0x37,0x01,0x99,0x02,0x1c,0x02,0xd0,0x00,0x03,0x00,0x07,0x00,0x2a, +0xb1,0x06,0x64,0x44,0x40,0x1f,0x02,0x01,0x00,0x01,0x00,0x85,0x05,0x03,0x04,0x03,0x01,0x01,0x76,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x13,0x33,0x03,0x21,0x13,0x33,0x03,0x01,0x4a,0x50,0x82,0x82,0xfe,0x9d,0x50,0x82,0x82,0x01,0x99,0x01,0x37, +0xfe,0xc9,0x01,0x37,0xfe,0xc9,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x01,0x9a,0x01,0x77,0x02,0xd1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03, +0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x13,0x33,0x03,0xa5,0x50,0x82,0x82,0x01,0x9a,0x01,0x37,0xfe,0xc9,0x00,0x00,0x02,0xfe,0x25,0x02,0x89,0xff,0x83,0x03,0x09,0x00,0x0b,0x00,0x17,0x00,0x33,0xb1,0x06,0x64,0x44,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00, +0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d, +0x1d,0x23,0x23,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x02,0x89,0xff,0x1b,0x03,0x09,0x00,0x0b,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07, +0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x02,0x89,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x01,0xfe,0x4a,0x02,0x85,0xff,0x1c,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x02,0x85,0xff,0x5b,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00, +0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x02,0x85,0xff,0xb8,0x03,0x11,0x00,0x03,0x00,0x07,0x00,0x32,0xb1,0x06,0x64,0x44,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00, +0x57,0x02,0x01,0x00,0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x02,0x85,0x8c,0x8c,0x8c,0x8c,0x00,0x00, +0x00,0x01,0xff,0x60,0x02,0x26,0xff,0xc3,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0xa0,0x0f,0x54,0x18,0x02,0x26,0xb4,0xb4,0x00,0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06, +0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x02,0x85,0x8c,0x8c,0x4e,0x4e,0x00,0x00, +0x00,0x01,0xfe,0x1f,0x02,0x85,0xff,0x89,0x03,0x11,0x00,0x06,0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63, +0x52,0x50,0x65,0x8b,0x02,0x85,0x8c,0x4e,0x4e,0x8c,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x31,0xb1,0x06,0x64,0x44,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00, +0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0x60,0xff,0x4c,0x03,0x44,0x00,0x0b,0x00,0x17,0x00,0x39, +0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x01,0x22,0x26,0x35,0x34,0x36,0x33, +0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b,0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0x60,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x02,0x8a,0xff,0x74, +0x03,0x0c,0x00,0x19,0x00,0x6d,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00, +0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33, +0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x02,0x8a,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x02,0x9e,0xff,0x74,0x02,0xe9,0x00,0x03,0x00,0x26,0xb1,0x06, +0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0x02,0x9e,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x38,0x03,0x39,0x00,0x0e,0x00,0x4e,0xb1,0x06, +0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e, +0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x32,0x0e,0x20,0x50,0x69,0x26,0x2f,0x11,0x28,0x02,0x85,0x3f,0x13,0x0d,0x14,0x41,0x27,0x23,0x20,0x16,0x34,0x00,0x00,0x00,0x02,0xfd,0xf0,0x02,0x85,0xff,0x6d,0x03,0x11,0x00,0x03, +0x00,0x07,0x00,0x25,0xb1,0x06,0x64,0x44,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0xb1,0x06,0x00,0x44,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x02,0x85,0x8c,0x8c,0x8c, +0x00,0x01,0xfe,0x7a,0x02,0x85,0xff,0x47,0x03,0x70,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x02,0x01,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x03,0x07,0x23,0x37,0xb9,0x50,0x7d,0x82,0x03,0x70,0xeb,0xeb,0x00,0x00,0x00,0x00,0x01,0xff,0x18, +0x01,0xe5,0xff,0xa0,0x02,0x94,0x00,0x0a,0x00,0x4e,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x00,0x01,0x00,0x00,0x01,0x70,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03,0x01,0x02,0x00,0x02,0x52,0x1b,0x40,0x16,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x62,0x03, +0x01,0x02,0x00,0x02,0x52,0x59,0x40,0x0b,0x00,0x00,0x00,0x0a,0x00,0x09,0x12,0x21,0x04,0x09,0x18,0x2b,0xb1,0x06,0x00,0x44,0x03,0x35,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe8,0x1a,0x23,0x4b,0x3a,0x2f,0x01,0xe5,0x41,0x23,0x4b,0x50,0x2b,0x34,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b, +0x00,0x27,0xb1,0x06,0x64,0x44,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0xd5,0x22, +0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x5c,0xff,0x06,0xff,0x4c,0xff,0xce,0x00,0x0b,0x00,0x17,0x00,0x39,0xb1,0x06,0x64,0x44,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c, +0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x37,0x1c,0x21,0x20,0x1d,0x1a,0x21,0x21,0xfa,0x37,0x2d,0x2d,0x37,0x37, +0x2d,0x2d,0x37,0x33,0x1b,0x16,0x1a,0x18,0x1b,0x17,0x16,0x1b,0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f, +0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12,0x00,0x36,0xb1,0x06,0x64,0x44,0x40,0x2b,0x0b,0x01,0x01,0x02,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f,0x00,0x00,0x00,0x12,0x00, +0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0xb1,0x06,0x00,0x44,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00,0x00,0x01,0xfe,0x61, +0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x2e,0xb1,0x06,0x64,0x44,0x40,0x23,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0xb1,0x06,0x00,0x44,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33, +0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfd,0x8a,0x01,0x22,0x00,0x1e,0x01,0x68,0x00,0x03,0x00,0x26,0xb1,0x06,0x64,0x44,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00, +0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x35,0x21,0x15,0xfd,0x8a,0x02,0x94,0x01,0x22,0x46,0x46,0x00,0x01,0xfd,0xcb,0xff,0xe2,0xff,0xdd,0x02,0x4e,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfd,0xcb,0x01,0xb7,0x5b,0xfe,0x48,0x1e,0x02,0x6c,0xfd,0x94,0x00,0x00,0x00,0x00,0x01,0xfe,0x16,0xff,0x92,0xff,0x92,0x02,0x94,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01, +0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0xb1,0x06,0x00,0x44,0x05,0x01,0x33,0x01,0xfe,0x16,0x01,0x3d,0x3f,0xfe,0xc3,0x6e,0x03,0x02,0xfc,0xfe,0x00,0x00,0x00,0xff,0xff,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x09,0x00,0x07,0x06,0x68,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x02,0x89,0x01,0x73, +0x03,0x09,0x00,0x07,0x06,0x69,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x02,0x85,0x01,0x74,0x03,0x11,0x00,0x07,0x06,0x6a,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x02,0x85,0x01,0xb3,0x03,0x11,0x00,0x07,0x06,0x6b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x02,0x85,0x02,0x10,0x03,0x11,0x00,0x07, +0x06,0x6c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x02,0x85,0x01,0xe1,0x03,0x11,0x00,0x07,0x06,0x6f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x80,0x01,0xcc,0x03,0x11,0x00,0x07,0x06,0x70,0x02,0x58, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0x60,0x01,0xa4,0x03,0x44,0x00,0x07,0x06,0x71,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x8a,0x01,0xcc,0x03,0x0c,0x00,0x07,0x06,0x72,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x02,0x9e,0x01,0xcc,0x02,0xe9,0x00,0x07,0x06,0x73,0x02,0x58,0x00,0x00,0x00,0x00, +0xff,0xff,0x00,0xcd,0xff,0x35,0x01,0x9a,0x00,0x1a,0x00,0x07,0x06,0x7b,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb9,0xff,0x35,0x01,0x81,0x00,0x0a,0x00,0x07,0x06,0x7c,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x02,0x06,0x06,0x7a,0x00,0x00,0x00,0x02,0xfe,0x25,0x03,0x31,0xff,0x83, +0x03,0xb1,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x03,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23, +0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x31,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x00,0x00,0x01,0xfe,0x8d,0x03,0x30,0xff,0x1b,0x03,0xb0,0x00,0x0b,0x00,0x1f,0x40,0x1c, +0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21,0x26,0x26,0x03,0x30,0x23,0x1d,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x00,0x01,0xfe,0x4a, +0x03,0x2a,0xff,0x1c,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0xfe,0xbd,0x73,0x64,0x6e,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x90,0x03,0x2a,0xff,0x5b,0x03,0xb6,0x00,0x03,0x00,0x17,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0xfe,0x90,0x6a,0x61,0x6f,0x03,0x2a,0x8c,0x8c,0x00,0x00,0x00,0x02,0xfe,0x3b,0x03,0x2a,0xff,0xb8,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x2a,0x40,0x27,0x02,0x01,0x00,0x01,0x01,0x00,0x57,0x02,0x01,0x00, +0x00,0x01,0x5f,0x05,0x03,0x04,0x03,0x01,0x00,0x01,0x4f,0x04,0x04,0x00,0x00,0x04,0x07,0x04,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x06,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x21,0x37,0x33,0x07,0xfe,0xee,0x6e,0x5c,0x73,0xfe,0xf6,0x6e,0x5c,0x73,0x03,0x2a,0x8c,0x8c,0x8c,0x8c,0x00,0x00,0x00,0x01,0xfe,0x1f,0x03,0x2a,0xff,0x89, +0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x05,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x03,0x02,0x02,0x01,0x01,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x11,0x11,0x04,0x09,0x18,0x2b,0x01,0x37,0x33,0x17,0x23,0x27,0x07,0xfe,0x1f,0x8b,0x53,0x8c,0x63,0x52,0x50,0x03,0x2a,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x01,0xfe,0x1f, +0x03,0x2a,0xff,0x89,0x03,0xb6,0x00,0x06,0x00,0x1f,0x40,0x1c,0x03,0x01,0x02,0x00,0x01,0x4c,0x01,0x01,0x00,0x02,0x00,0x85,0x03,0x01,0x02,0x02,0x76,0x00,0x00,0x00,0x06,0x00,0x06,0x12,0x11,0x04,0x09,0x18,0x2b,0x01,0x27,0x33,0x17,0x37,0x33,0x07,0xfe,0xab,0x8c,0x63,0x52,0x50,0x65,0x8b,0x03,0x2a,0x8c,0x4e,0x4e,0x8c,0x00,0x00, +0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32, +0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x03,0x25,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x5c,0x02,0xfe,0xff,0x4c,0x03,0xe2,0x00,0x0b,0x00,0x17,0x00,0x31,0x40,0x2e,0x00,0x01,0x00,0x03,0x02,0x01,0x03,0x69,0x05,0x01,0x02,0x00,0x00,0x02,0x59,0x05,0x01,0x02, +0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00,0x0b,0x01,0x0b,0x06,0x09,0x16,0x2b,0x01,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x27,0x32,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0xfe,0xd4,0x36,0x42,0x42,0x36,0x36,0x42,0x42,0x36,0x1b, +0x21,0x21,0x1b,0x1b,0x21,0x21,0x02,0xfe,0x3f,0x33,0x33,0x3f,0x3f,0x33,0x33,0x3f,0x35,0x21,0x1c,0x1c,0x22,0x22,0x1c,0x1c,0x21,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0x03,0x2f,0xff,0x74,0x03,0xb1,0x00,0x19,0x00,0x65,0x4b,0xb0,0x2e,0x50,0x58,0x40,0x1b,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59, +0x00,0x04,0x04,0x00,0x62,0x02,0x06,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x29,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x06,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x13,0x01,0x00,0x16,0x15,0x13, +0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x07,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0xe6,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x32,0x28,0x1e,0x26,0x1a,0x18,0x11,0x1e,0x41,0x31,0x03,0x2f,0x15,0x1c,0x15,0x23,0x1e, +0x1e,0x2d,0x32,0x15,0x1c,0x15,0x23,0x1e,0x1e,0x2d,0x32,0x00,0x00,0x01,0xfe,0x34,0x03,0x48,0xff,0x74,0x03,0x93,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x01,0x35,0x21,0x15,0xfe,0x34,0x01,0x40, +0x03,0x48,0x4b,0x4b,0x00,0x01,0xfe,0x7a,0x03,0x20,0xff,0x33,0x03,0xd4,0x00,0x0e,0x00,0x46,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x17,0x03,0x01,0x02,0x00,0x00,0x02,0x71,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x1b,0x40,0x16,0x03,0x01,0x02,0x00,0x02,0x86,0x00,0x01,0x00,0x00,0x01,0x57,0x00, +0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x59,0x40,0x0b,0x00,0x00,0x00,0x0e,0x00,0x0e,0x21,0x24,0x04,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0xfe,0xaa,0x2d,0x0e,0x20,0x4b,0x50,0x2f,0x3a,0x11,0x23,0x03,0x20,0x3f,0x14,0x0c,0x14,0x41,0x29,0x22,0x1c,0x19,0x34,0x00,0x00, +0x00,0x02,0xfd,0xf0,0x03,0x2a,0xff,0x6d,0x03,0xb6,0x00,0x03,0x00,0x07,0x00,0x1d,0x40,0x1a,0x03,0x01,0x01,0x00,0x00,0x01,0x57,0x03,0x01,0x01,0x01,0x00,0x5f,0x02,0x01,0x00,0x01,0x00,0x4f,0x11,0x11,0x11,0x10,0x04,0x09,0x1a,0x2b,0x01,0x23,0x27,0x33,0x05,0x23,0x27,0x33,0xfe,0xba,0x57,0x73,0x5c,0x01,0x21,0x57,0x73,0x5c,0x03, +0x2a,0x8c,0x8c,0x8c,0x00,0x01,0xfe,0x34,0x03,0x25,0xff,0x74,0x03,0xb6,0x00,0x0d,0x00,0x26,0x40,0x23,0x04,0x03,0x02,0x01,0x02,0x01,0x86,0x00,0x00,0x02,0x02,0x00,0x59,0x00,0x00,0x00,0x02,0x61,0x00,0x02,0x00,0x02,0x51,0x00,0x00,0x00,0x0d,0x00,0x0d,0x22,0x12,0x22,0x05,0x06,0x19,0x2b,0x01,0x34,0x36,0x33,0x32,0x16,0x15,0x23, +0x34,0x26,0x23,0x22,0x06,0x15,0xfe,0x34,0x58,0x48,0x48,0x58,0x47,0x31,0x29,0x28,0x30,0x03,0x25,0x41,0x50,0x50,0x41,0x27,0x30,0x30,0x27,0x00,0x00,0x01,0xfe,0x7a,0x03,0x2a,0xff,0x38,0x03,0xfc,0x00,0x03,0x00,0x1f,0x40,0x1c,0x02,0x01,0x01,0x00,0x00,0x01,0x57,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00,0x01,0x00,0x4f,0x00,0x00, +0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x03,0x07,0x23,0x37,0xc8,0x41,0x7d,0x73,0x03,0xfc,0xd2,0xd2,0x00,0x00,0x00,0x00,0x01,0xff,0x1b,0x02,0x99,0xff,0xa6,0x03,0x48,0x00,0x0b,0x00,0x3c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x12,0x00,0x01,0x00,0x00,0x01,0x70,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x1b, +0x40,0x11,0x00,0x01,0x00,0x01,0x85,0x03,0x01,0x02,0x02,0x00,0x61,0x00,0x00,0x00,0x38,0x02,0x4e,0x59,0x40,0x0b,0x00,0x00,0x00,0x0b,0x00,0x0a,0x13,0x21,0x04,0x09,0x18,0x2b,0x03,0x35,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x23,0xe5,0x1d,0x10,0x13,0x4b,0x39,0x30,0x02,0x99,0x41,0x13,0x10,0x4b,0x50,0x2b,0x34,0x00,0x00, +0x00,0x01,0xfe,0x8d,0xff,0x2b,0xff,0x1b,0xff,0xab,0x00,0x0b,0x00,0x1f,0x40,0x1c,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x02,0x01,0x00,0x01,0x00,0x51,0x01,0x00,0x07,0x05,0x00,0x0b,0x01,0x0b,0x03,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xfe,0xd4,0x21,0x26,0x26,0x21,0x21, +0x26,0x26,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x02,0xfe,0x25,0xff,0x2b,0xff,0x83,0xff,0xab,0x00,0x0b,0x00,0x17,0x00,0x2b,0x40,0x28,0x03,0x01,0x01,0x00,0x00,0x01,0x59,0x03,0x01,0x01,0x01,0x00,0x61,0x05,0x02,0x04,0x03,0x00,0x01,0x00,0x51,0x0d,0x0c,0x01,0x00,0x13,0x11,0x0c,0x17,0x0d,0x17,0x07,0x05,0x00, +0x0b,0x01,0x0b,0x06,0x06,0x16,0x2b,0x07,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0xbd,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xd5,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22, +0x00,0x01,0xfe,0x66,0xff,0x10,0xff,0x2e,0xff,0xa1,0x00,0x03,0x00,0x17,0x40,0x14,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x05,0x37,0x33,0x07,0xfe,0x66,0x5f,0x69,0x69,0xf0,0x91,0x91,0x00,0x00,0x00,0x00,0x01,0xfe,0x75,0xff,0x35,0xff,0x42,0x00,0x1a,0x00,0x12, +0x00,0x4e,0xb5,0x0b,0x01,0x01,0x02,0x01,0x4c,0x4b,0xb0,0x15,0x50,0x58,0x40,0x14,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x03,0x3d,0x03,0x4e,0x1b,0x40,0x19,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x00,0x03,0x03,0x00,0x59,0x00,0x00,0x00,0x03,0x5f,0x04,0x01,0x03,0x00,0x03,0x4f, +0x59,0x40,0x0c,0x00,0x00,0x00,0x12,0x00,0x11,0x11,0x14,0x21,0x05,0x09,0x19,0x2b,0x05,0x35,0x33,0x32,0x36,0x35,0x34,0x26,0x23,0x37,0x33,0x07,0x1e,0x02,0x15,0x14,0x06,0x23,0xfe,0x75,0x46,0x16,0x1b,0x37,0x32,0x23,0x39,0x15,0x1a,0x38,0x26,0x42,0x36,0xcb,0x37,0x17,0x0d,0x11,0x1a,0x5f,0x3d,0x03,0x14,0x24,0x1a,0x22,0x31,0x00, +0x00,0x01,0xfe,0x61,0xff,0x35,0xff,0x29,0x00,0x0a,0x00,0x10,0x00,0x42,0x4b,0xb0,0x15,0x50,0x58,0x40,0x11,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x00,0x3d,0x00,0x4e,0x1b,0x40,0x16,0x00,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x60,0x03,0x01,0x00,0x02,0x00,0x50,0x59, +0x40,0x0d,0x01,0x00,0x0f,0x0d,0x07,0x06,0x00,0x10,0x01,0x10,0x04,0x09,0x16,0x2b,0x05,0x22,0x26,0x35,0x34,0x36,0x37,0x33,0x07,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0xfe,0xdb,0x37,0x43,0x26,0x2f,0x4b,0x0b,0x22,0x1e,0x1e,0x19,0x3c,0xcb,0x35,0x28,0x1d,0x3a,0x21,0x09,0x1c,0x2d,0x15,0x16,0x1c,0x3c,0x00,0x00,0x01,0xfe,0x34, +0xff,0x10,0xff,0x74,0xff,0xa1,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02,0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x05,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14, +0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0xf0,0x50,0x41,0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x00,0x01,0xfe,0x34,0xff,0x3d,0xff,0x74,0xff,0x88,0x00,0x03,0x00,0x1e,0x40,0x1b,0x00,0x00,0x01,0x01,0x00,0x57,0x00,0x00,0x00,0x01,0x5f,0x02,0x01,0x01,0x00,0x01,0x4f,0x00,0x00,0x00,0x03,0x00,0x03,0x11, +0x03,0x06,0x17,0x2b,0x05,0x35,0x21,0x15,0xfe,0x34,0x01,0x40,0xc3,0x4b,0x4b,0x00,0xff,0xff,0x00,0x7d,0x03,0x31,0x01,0xdb,0x03,0xb1,0x00,0x07,0x06,0x8e,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe5,0x03,0x30,0x01,0x73,0x03,0xb0,0x00,0x07,0x06,0x8f,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xa2,0x03,0x2a,0x01,0x74, +0x03,0xb6,0x00,0x07,0x06,0x90,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xe8,0x03,0x2a,0x01,0xb3,0x03,0xb6,0x00,0x07,0x06,0x91,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x93,0x03,0x2a,0x02,0x10,0x03,0xb6,0x00,0x07,0x06,0x92,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07, +0x06,0x93,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x77,0x03,0x2a,0x01,0xe1,0x03,0xb6,0x00,0x07,0x06,0x94,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x25,0x01,0xcc,0x03,0xb6,0x00,0x07,0x06,0x95,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0xb4,0x02,0xfe,0x01,0xa4,0x03,0xe2,0x00,0x07,0x06,0x96,0x02,0x58, +0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x2f,0x01,0xcc,0x03,0xb1,0x00,0x07,0x06,0x97,0x02,0x58,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x8c,0x03,0x48,0x01,0xcc,0x03,0x93,0x00,0x07,0x06,0x98,0x02,0x58,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xd2,0x02,0x85,0x01,0xa0,0x03,0x11,0x00,0x03,0x00,0x1f,0xb1,0x06,0x64,0x44,0x40,0x14, +0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x13,0x37,0x33,0x07,0xd2,0x6a,0x64,0x6f,0x02,0x85,0x8c,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0xe1,0x02,0x3a,0x01,0x77,0x02,0xda,0x00,0x03,0x00,0x19,0x40,0x16,0x02,0x01,0x01,0x01,0x00,0x5f,0x00,0x00, +0x00,0x38,0x01,0x4e,0x00,0x00,0x00,0x03,0x00,0x03,0x11,0x03,0x09,0x17,0x2b,0x13,0x37,0x33,0x07,0xe1,0x38,0x5e,0x40,0x02,0x3a,0xa0,0xa0,0x00,0x00,0x03,0x00,0x7d,0x02,0x89,0x01,0xdb,0x03,0x84,0x00,0x03,0x00,0x0f,0x00,0x1b,0x00,0x77,0xb1,0x06,0x64,0x44,0x4b,0xb0,0x0a,0x50,0x58,0x40,0x24,0x00,0x00,0x03,0x03,0x00,0x70,0x06, +0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02,0x03,0x02,0x52,0x1b,0x40,0x23,0x00,0x00,0x03,0x00,0x85,0x06,0x01,0x01,0x03,0x02,0x03,0x01,0x02,0x80,0x05,0x01,0x03,0x01,0x02,0x03,0x59,0x05,0x01,0x03,0x03,0x02,0x62,0x08,0x04,0x07,0x03,0x02, +0x03,0x02,0x52,0x59,0x40,0x1a,0x11,0x10,0x05,0x04,0x00,0x00,0x17,0x15,0x10,0x1b,0x11,0x1b,0x0b,0x09,0x04,0x0f,0x05,0x0f,0x00,0x03,0x00,0x03,0x11,0x09,0x08,0x17,0x2b,0xb1,0x06,0x00,0x44,0x01,0x37,0x33,0x07,0x17,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14,0x06,0x23,0x22,0x26,0x35,0x34,0x36,0x33,0x32,0x16,0x15,0x14, +0x06,0x01,0x03,0x4e,0x50,0x58,0x52,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0xfb,0x1d,0x23,0x23,0x1d,0x1d,0x23,0x23,0x03,0x01,0x83,0x83,0x78,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x22,0x1d,0x1e,0x23,0x23,0x1e,0x1d,0x22,0x00,0x00,0x01,0xfe,0x34,0x02,0x80,0xff,0x74,0x03,0x11,0x00,0x0d,0x00,0x29,0x40,0x26,0x03,0x01,0x01,0x02, +0x01,0x85,0x00,0x02,0x00,0x00,0x02,0x59,0x00,0x02,0x02,0x00,0x61,0x04,0x01,0x00,0x02,0x00,0x51,0x01,0x00,0x0b,0x0a,0x08,0x06,0x04,0x03,0x00,0x0d,0x01,0x0d,0x05,0x06,0x16,0x2b,0x01,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xd4,0x48,0x58,0x47,0x30,0x28,0x29,0x31,0x47,0x58,0x02,0x80,0x50,0x41, +0x27,0x30,0x30,0x27,0x41,0x50,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00, +0x0f,0x0e,0x0c,0x0a,0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0x95,0x73,0x60,0x78,0x1c,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a, +0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0x7a,0x00,0x03,0x00,0x11,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01,0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x0f,0x0e,0x0c,0x0a, +0x08,0x07,0x04,0x11,0x05,0x11,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xb8,0x78,0x60,0x73,0x3f,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x82,0x82,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00, +0x00,0x02,0xfe,0x2a,0x02,0x80,0xff,0x7e,0x03,0xa2,0x00,0x0f,0x00,0x1d,0x00,0x78,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51, +0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x69,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1b,0x1a,0x18,0x16,0x14,0x13,0x10,0x1d,0x11,0x1d,0x00,0x0f, +0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xfe,0xa5,0x2d,0x09,0x1b,0x37,0x41,0x2b,0x33,0x09,0x08,0x23,0x20,0x4c,0x5e,0x46,0x37,0x2d,0x2d,0x37,0x46,0x5d,0x02,0xf8,0x3d,0x0c,0x0d, +0x18,0x3c,0x27,0x20,0x0d,0x19,0x0b,0x32,0x78,0x48,0x3a,0x1f,0x27,0x27,0x1f,0x3a,0x48,0x00,0x00,0x00,0x00,0x02,0xfe,0x34,0x02,0x85,0xff,0x74,0x03,0xa0,0x00,0x19,0x00,0x27,0x00,0x95,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x2d,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02, +0x0a,0x02,0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x1b,0x40,0x3b,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02,0x04,0x00,0x04,0x02,0x00,0x80,0x09,0x01,0x07,0x00,0x08,0x00,0x07,0x08,0x80,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x0a,0x01, +0x00,0x07,0x04,0x00,0x6a,0x00,0x08,0x06,0x06,0x08,0x59,0x00,0x08,0x08,0x06,0x61,0x0b,0x01,0x06,0x08,0x06,0x51,0x59,0x40,0x1f,0x1b,0x1a,0x01,0x00,0x25,0x24,0x22,0x20,0x1e,0x1d,0x1a,0x27,0x1b,0x27,0x16,0x15,0x13,0x11,0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0c,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15, +0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0x6c,0x48,0x58,0x41,0x34,0x2a,0x2b,0x35,0x41,0x58,0x03,0x2c,0x13,0x19,0x13, +0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x48,0x3a,0x1f,0x28,0x28,0x1f,0x3a,0x48,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0x00,0x19,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85, +0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xbe,0x73,0x64,0x78,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20, +0x02,0x85,0xff,0xc9,0x03,0x84,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07, +0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0x96,0x82,0x64,0x7d,0xfe,0x57,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x8c,0x8c,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0xce,0x03,0xa2,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04, +0x02,0x01,0x4c,0x4b,0xb0,0x0c,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02, +0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07, +0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb1,0x2d,0x09,0x20,0x32,0x37,0x2e,0x36,0x11,0x23,0xfe,0x86,0x8a,0x54,0x8b,0x65,0x50,0x51,0x02,0xf8,0x3d,0x0e,0x0a,0x19,0x3c,0x28,0x23,0x15,0x18,0x32,0x73,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x02,0x85,0xff,0x89,0x03,0xa0,0x00,0x19,0x00,0x20,0x00,0x92,0xb5,0x1f,0x01,0x07, +0x06,0x01,0x4c,0x4b,0xb0,0x1e,0x50,0x58,0x40,0x29,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x05,0x01,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x00,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x02,0x09,0x02,0x00,0x04,0x00,0x52,0x1b,0x40,0x37,0x00,0x05,0x03,0x01,0x03,0x05,0x01,0x80,0x00,0x02, +0x04,0x00,0x04,0x02,0x00,0x80,0x00,0x06,0x00,0x07,0x00,0x06,0x07,0x80,0x0a,0x08,0x02,0x07,0x07,0x84,0x00,0x03,0x00,0x01,0x04,0x03,0x01,0x69,0x00,0x04,0x02,0x00,0x04,0x59,0x00,0x04,0x04,0x00,0x62,0x09,0x01,0x00,0x04,0x00,0x52,0x59,0x40,0x1d,0x1a,0x1a,0x01,0x00,0x1a,0x20,0x1a,0x20,0x1e,0x1d,0x1c,0x1b,0x16,0x15,0x13,0x11, +0x0e,0x0c,0x09,0x08,0x06,0x04,0x00,0x19,0x01,0x19,0x0b,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xea,0x1f,0x25,0x18,0x16,0x11,0x1e,0x41,0x34,0x2a,0x20,0x25,0x17,0x16,0x11,0x1e,0x41,0x34,0xfe, +0xe0,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x2c,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0x13,0x19,0x13,0x1e,0x19,0x14,0x28,0x30,0xa7,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, +0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x37,0x33,0x07,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, +0x95,0x69,0x60,0x6e,0x35,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x03,0x00,0x13,0x00,0x3b,0x40,0x38,0x00,0x00,0x03,0x00,0x85,0x05,0x01,0x03,0x01,0x03,0x85,0x06,0x01,0x01, +0x04,0x01,0x85,0x00,0x04,0x02,0x02,0x04,0x59,0x00,0x04,0x04,0x02,0x62,0x07,0x01,0x02,0x04,0x02,0x52,0x05,0x04,0x00,0x00,0x10,0x0f,0x0d,0x0a,0x08,0x07,0x04,0x13,0x05,0x12,0x00,0x03,0x00,0x03,0x11,0x08,0x09,0x17,0x2b,0x01,0x27,0x33,0x17,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33,0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe, +0xb8,0x64,0x60,0x5f,0x58,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x84,0x78,0x78,0x78,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79,0x03,0xfc,0x00,0x0f,0x00,0x1f,0x00,0x78,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x29,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80, +0x07,0x01,0x02,0x05,0x00,0x02,0x70,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03,0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x1b,0x40,0x2a,0x06,0x01,0x04,0x00,0x02,0x00,0x04,0x02,0x80,0x07,0x01,0x02,0x05,0x00,0x02,0x05,0x7e,0x00,0x01,0x00,0x00,0x04,0x01,0x00,0x67,0x00,0x05,0x03,0x03, +0x05,0x59,0x00,0x05,0x05,0x03,0x61,0x08,0x01,0x03,0x05,0x03,0x51,0x59,0x40,0x17,0x11,0x10,0x00,0x00,0x1c,0x1b,0x19,0x16,0x14,0x13,0x10,0x1f,0x11,0x1e,0x00,0x0f,0x00,0x0f,0x21,0x24,0x09,0x09,0x18,0x2b,0x01,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x06,0x0f,0x02,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, +0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xfe,0xa6,0x2f,0x07,0x0a,0x49,0x61,0x1a,0x1d,0x08,0x08,0x20,0x36,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x70,0x38,0x08,0x08,0x08,0x3c,0x19,0x17,0x0d,0x1c,0x0b,0x28,0x64,0x46,0x3c,0x20,0x26,0x26,0x20,0x3c,0x46,0x00,0x00,0x00,0x00,0x02,0xfe,0x2f,0x03,0x0c,0xff,0x79, +0x03,0xfc,0x00,0x1b,0x00,0x2b,0x00,0x55,0x40,0x52,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x02,0x4c,0x07,0x01,0x05,0x00,0x06,0x00,0x05,0x06,0x80,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x08,0x01,0x00,0x05,0x03,0x00,0x69,0x00,0x06,0x04,0x04,0x06,0x59,0x00,0x06,0x06,0x04,0x61,0x09,0x01,0x04,0x06,0x04, +0x51,0x1d,0x1c,0x01,0x00,0x28,0x27,0x25,0x22,0x20,0x1f,0x1c,0x2b,0x1d,0x2a,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x0a,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23,0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x07,0x22,0x26,0x35,0x33,0x14,0x16,0x33,0x33, +0x32,0x36,0x35,0x33,0x14,0x06,0x23,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0x8f,0x40,0x4c,0x46,0x26,0x20,0x31,0x21,0x26,0x46,0x4c,0x41,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07,0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x3c,0x3c,0x20,0x1c, +0x1c,0x20,0x3c,0x3c,0x00,0x02,0xfe,0x20,0x03,0x0c,0x00,0x0f,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x33,0x40,0x30,0x09,0x01,0x03,0x01,0x01,0x4c,0x00,0x00,0x02,0x00,0x85,0x00,0x02,0x01,0x02,0x85,0x05,0x01,0x01,0x03,0x01,0x85,0x06,0x04,0x02,0x03,0x03,0x76,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03, +0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x37,0x33,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xc0,0x69,0x66,0x6e,0xfe,0x7f,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xc4,0x03,0xfc,0x00,0x03,0x00,0x0a,0x00,0x3f,0x40,0x3c,0x09,0x01,0x03,0x01,0x01,0x4c, +0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x80,0x05,0x01,0x01,0x03,0x00,0x01,0x03,0x7e,0x00,0x00,0x02,0x03,0x00,0x57,0x00,0x00,0x00,0x03,0x5f,0x06,0x04,0x02,0x03,0x00,0x03,0x4f,0x04,0x04,0x00,0x00,0x04,0x0a,0x04,0x0a,0x08,0x07,0x06,0x05,0x00,0x03,0x00,0x03,0x11,0x07,0x09,0x17,0x2b,0x03,0x27,0x33,0x17,0x05,0x37,0x33,0x17,0x23, +0x27,0x07,0x9b,0x78,0x64,0x73,0xfe,0x5c,0x8a,0x54,0x8b,0x65,0x50,0x51,0x03,0x84,0x78,0x78,0x78,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0xce,0x03,0xfc,0x00,0x0e,0x00,0x15,0x00,0x75,0xb5,0x14,0x01,0x04,0x02,0x01,0x4c,0x4b,0xb0,0x0f,0x50,0x58,0x40,0x25,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01, +0x02,0x04,0x00,0x02,0x70,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00,0x00,0x01,0x00,0x51,0x1b,0x40,0x26,0x00,0x03,0x00,0x02,0x00,0x03,0x02,0x80,0x06,0x01,0x02,0x04,0x00,0x02,0x04,0x7e,0x07,0x05,0x02,0x04,0x04,0x84,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x01,0x00,0x61,0x00, +0x00,0x01,0x00,0x51,0x59,0x40,0x15,0x0f,0x0f,0x00,0x00,0x0f,0x15,0x0f,0x15,0x13,0x12,0x11,0x10,0x00,0x0e,0x00,0x0e,0x21,0x24,0x08,0x09,0x18,0x2b,0x03,0x37,0x36,0x35,0x34,0x23,0x23,0x35,0x33,0x32,0x16,0x15,0x14,0x07,0x07,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xb4,0x30,0x08,0x0f,0x42,0x55,0x20,0x26,0x10,0x24,0xfe,0x86,0x8a, +0x54,0x8b,0x65,0x50,0x51,0x03,0x70,0x2f,0x08,0x0b,0x10,0x3a,0x22,0x1c,0x1c,0x10,0x22,0x64,0x8c,0x8c,0x4e,0x4e,0x00,0x00,0x00,0x02,0xfe,0x20,0x03,0x0c,0xff,0x88,0x03,0xfc,0x00,0x1b,0x00,0x22,0x00,0x53,0x40,0x50,0x18,0x16,0x02,0x03,0x02,0x0a,0x08,0x02,0x00,0x01,0x21,0x01,0x05,0x04,0x03,0x4c,0x00,0x04,0x00,0x05,0x00,0x04, +0x05,0x80,0x08,0x06,0x02,0x05,0x05,0x84,0x00,0x03,0x01,0x00,0x03,0x59,0x00,0x02,0x00,0x01,0x00,0x02,0x01,0x69,0x00,0x03,0x03,0x00,0x61,0x07,0x01,0x00,0x03,0x00,0x51,0x1c,0x1c,0x01,0x00,0x1c,0x22,0x1c,0x22,0x20,0x1f,0x1e,0x1d,0x14,0x12,0x0f,0x0d,0x06,0x04,0x00,0x1b,0x01,0x1b,0x09,0x09,0x16,0x2b,0x03,0x22,0x2e,0x02,0x23, +0x22,0x06,0x15,0x15,0x23,0x35,0x34,0x36,0x33,0x32,0x1e,0x02,0x33,0x32,0x36,0x35,0x35,0x33,0x15,0x14,0x06,0x05,0x37,0x33,0x17,0x23,0x27,0x07,0xdf,0x1f,0x2a,0x1e,0x1b,0x11,0x0d,0x11,0x41,0x31,0x29,0x20,0x29,0x1d,0x1a,0x11,0x0e,0x10,0x41,0x2f,0xfe,0xd6,0x74,0x80,0x74,0x65,0x4f,0x51,0x03,0x98,0x0e,0x13,0x0e,0x10,0x0e,0x07, +0x07,0x26,0x2d,0x0e,0x13,0x0e,0x11,0x0d,0x07,0x07,0x26,0x2d,0x8c,0x6e,0x6e,0x49,0x49,0x00,0x00,0x00,0x00,0x02,0x00,0x5a,0xfe,0xf2,0x02,0x58,0x03,0xca,0x00,0x03,0x00,0x1a,0x00,0x2a,0x40,0x27,0x0f,0x01,0x01,0x00,0x03,0x00,0x02,0x03,0x01,0x02,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x03,0x01,0x85,0x04,0x01,0x03,0x03, +0x76,0x04,0x04,0x04,0x1a,0x04,0x1a,0x12,0x1b,0x11,0x05,0x06,0x19,0x2b,0x13,0x11,0x33,0x11,0x03,0x11,0x34,0x36,0x37,0x37,0x36,0x36,0x35,0x35,0x23,0x37,0x17,0x23,0x15,0x14,0x06,0x07,0x07,0x06,0x06,0x15,0x11,0x5a,0x78,0x78,0x2c,0x25,0x91,0x19,0x1d,0x6e,0xaa,0xaa,0x6e,0x28,0x20,0x9b,0x19,0x1c,0x01,0x6c,0x02,0x5e,0xfd,0xfb, +0xfd,0x2d,0x01,0x7d,0x2c,0x59,0x1b,0x6c,0x12,0x2d,0x13,0xaa,0xaa,0xaa,0xb4,0x25,0x4b,0x18,0x73,0x13,0x34,0x1d,0xfe,0x8e,0x00,0x02,0x00,0x69,0xff,0x42,0x01,0xef,0x03,0x7a,0x00,0x05,0x00,0x1e,0x00,0x47,0x40,0x44,0x00,0x00,0x01,0x00,0x85,0x00,0x01,0x09,0x01,0x02,0x03,0x01,0x02,0x67,0x05,0x01,0x03,0x00,0x07,0x04,0x03,0x07, +0x67,0x00,0x04,0x06,0x06,0x04,0x57,0x00,0x04,0x04,0x06,0x5f,0x0a,0x08,0x02,0x06,0x04,0x06,0x4f,0x06,0x06,0x00,0x00,0x06,0x1e,0x06,0x1e,0x1a,0x19,0x15,0x14,0x13,0x12,0x0d,0x0c,0x08,0x07,0x00,0x05,0x00,0x05,0x11,0x11,0x0b,0x06,0x18,0x2b,0x13,0x11,0x33,0x11,0x33,0x15,0x03,0x11,0x33,0x13,0x16,0x16,0x17,0x33,0x32,0x26,0x26, +0x35,0x11,0x33,0x11,0x23,0x03,0x26,0x26,0x27,0x23,0x16,0x16,0x15,0x11,0x69,0x50,0xdd,0xf1,0x5d,0x81,0x0c,0x15,0x05,0x0a,0x01,0x08,0x08,0x4b,0x5c,0x80,0x0c,0x17,0x06,0x0a,0x05,0x0b,0x01,0x90,0x01,0xea,0xfe,0x61,0x4b,0xfd,0xb2,0x01,0xea,0xfe,0xdb,0x1c,0x47,0x17,0x30,0x41,0x1b,0x01,0x13,0xfe,0x16,0x01,0x25,0x1c,0x47,0x17, +0x1b,0x51,0x20,0xfe,0xed,0x00,0x00,0x00,0x00,0x03,0x00,0x32,0xff,0xb0,0x02,0x26,0x03,0x6b,0x00,0x1a,0x00,0x23,0x00,0x32,0x00,0x44,0x40,0x41,0x32,0x26,0x02,0x06,0x07,0x01,0x4c,0x00,0x02,0x00,0x05,0x01,0x02,0x05,0x69,0x04,0x03,0x02,0x01,0x00,0x07,0x06,0x01,0x07,0x69,0x00,0x06,0x00,0x00,0x06,0x57,0x00,0x06,0x06,0x00,0x5f, +0x08,0x01,0x00,0x06,0x00,0x4f,0x01,0x00,0x2d,0x2b,0x25,0x24,0x21,0x1f,0x1c,0x1b,0x14,0x12,0x0e,0x0c,0x08,0x06,0x00,0x1a,0x01,0x19,0x09,0x06,0x16,0x2b,0x17,0x22,0x26,0x35,0x11,0x34,0x36,0x33,0x33,0x35,0x34,0x36,0x36,0x33,0x32,0x16,0x16,0x15,0x15,0x33,0x32,0x16,0x15,0x11,0x14,0x06,0x23,0x01,0x33,0x35,0x34,0x26,0x23,0x22, +0x06,0x15,0x13,0x33,0x35,0x36,0x36,0x35,0x34,0x26,0x23,0x22,0x06,0x15,0x14,0x16,0x17,0x6e,0x19,0x23,0x23,0x19,0x0a,0x30,0x51,0x33,0x35,0x51,0x2e,0x0a,0x19,0x23,0x23,0x19,0xfe,0xde,0xc8,0x37,0x2d,0x2d,0x37,0x37,0x59,0x12,0x26,0x37,0x2d,0x2d,0x37,0x25,0x12,0x50,0x23,0x19,0x01,0xb2,0x19,0x23,0xe7,0x33,0x4d,0x2a,0x2c,0x4c, +0x32,0xe7,0x23,0x19,0xfe,0x4e,0x19,0x23,0x02,0x2b,0xe6,0x2d,0x37,0x37,0x2d,0xfd,0x71,0xa0,0x07,0x28,0x22,0x28,0x31,0x31,0x28,0x22,0x28,0x07,0x00,0x01,0xff,0xd8,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x04,0x00,0x17,0x40,0x14,0x04,0x01,0x00,0x01,0x01,0x4c,0x00,0x01,0x00,0x01,0x85,0x00,0x00,0x00,0x76,0x11,0x10,0x02,0x06,0x18, +0x2b,0x13,0x23,0x11,0x33,0x01,0x0a,0x32,0x32,0x02,0x4e,0xfe,0xd4,0x05,0x28,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b, +0x11,0x01,0x01,0x33,0x01,0x01,0x01,0xe2,0xfe,0x24,0x70,0x01,0xe2,0xfe,0x1e,0xfe,0xd4,0x02,0x92,0x02,0x96,0xfd,0x6c,0xfd,0x6c,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x80,0x03,0xfc,0x00,0x04,0x00,0x1d,0x40,0x1a,0x01,0x01,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00,0x04, +0x00,0x04,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x11,0x02,0x4e,0xfd,0xb2,0x02,0x4e,0x32,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfa,0xd8,0x00,0x00,0x00,0x01,0x00,0x00,0xfe,0xd4,0x02,0x58,0x03,0xfc,0x00,0x05,0x00,0x1e,0x40,0x1b,0x04,0x01,0x02,0x01,0x00,0x01,0x4c,0x00,0x00,0x01,0x00,0x85,0x02,0x01,0x01,0x01,0x76,0x00,0x00,0x00, +0x05,0x00,0x05,0x12,0x03,0x06,0x17,0x2b,0x09,0x02,0x33,0x01,0x01,0x01,0xe2,0xfe,0x1e,0x01,0xe2,0x70,0xfe,0x24,0x01,0xe2,0xfe,0xd4,0x02,0x94,0x02,0x94,0xfd,0x6a,0xfd,0x6e,0x00,0x00,0x00,0x01,0x00,0x55,0xff,0x35,0x02,0x2b,0x02,0x26,0x00,0x19,0x00,0x5f,0x4b,0xb0,0x15,0x50,0x58,0x40,0x22,0x00,0x01,0x01,0x02,0x5f,0x00,0x02, +0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x4d,0x00,0x05,0x05,0x06,0x5f,0x00,0x06,0x06,0x3d,0x06,0x4e,0x1b,0x40,0x1f,0x00,0x05,0x00,0x06,0x05,0x06,0x63,0x00,0x01,0x01,0x02,0x5f,0x00,0x02,0x02,0x3b,0x4d,0x03,0x01,0x00,0x00,0x04,0x5f,0x08,0x07,0x02,0x04,0x04,0x39,0x04,0x4e,0x59,0x40,0x10, +0x00,0x00,0x00,0x19,0x00,0x19,0x21,0x25,0x11,0x11,0x11,0x11,0x11,0x09,0x09,0x1d,0x2b,0x33,0x35,0x33,0x11,0x23,0x35,0x21,0x11,0x33,0x15,0x23,0x06,0x06,0x15,0x14,0x16,0x33,0x33,0x15,0x23,0x22,0x26,0x35,0x34,0x36,0x37,0x55,0xc3,0xaf,0x01,0x09,0xb9,0xcf,0x21,0x1e,0x1e,0x19,0x3c,0x4e,0x37,0x43,0x20,0x27,0x52,0x01,0x82,0x52, +0xfe,0x2c,0x52,0x1b,0x2d,0x15,0x16,0x1c,0x3c,0x35,0x28,0x1a,0x36,0x1e,0x00,0x00,0xff,0xff,0x00,0x55,0xff,0x2b,0x02,0x2b,0x02,0x26,0x02,0x26,0x01,0x00,0x00,0x00,0x00,0x07,0x06,0x78,0x02,0x67,0x00,0x00,0x00,0x00,0x00,0x16,0x01,0x0e,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00, +0x01,0x01,0x00,0x13,0x00,0x14,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x17,0x00,0x27,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x0b,0x00,0x3e,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x00,0x00,0xbc,0x00,0x49,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x01,0x00,0x1c,0x01,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x02,0x00,0x0e, +0x01,0x21,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x03,0x00,0x3c,0x01,0x2f,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x04,0x00,0x2c,0x01,0x6b,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x05,0x00,0x54,0x01,0x97,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x06,0x00,0x2a,0x01,0xeb,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x07,0x00,0x62,0x02,0x15,0x00,0x03, +0x00,0x01,0x04,0x09,0x00,0x08,0x00,0x12,0x02,0x77,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x09,0x00,0x4a,0x02,0x89,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0b,0x00,0x32,0x02,0xd3,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0c,0x00,0x32,0x03,0x05,0x00,0x03,0x00,0x01,0x04,0x09,0x00,0x0d,0x01,0x22,0x03,0x37,0x00,0x03,0x00,0x01,0x04,0x09, +0x00,0x0e,0x00,0x36,0x04,0x59,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x00,0x00,0x28,0x04,0x8f,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x01,0x00,0x26,0x04,0xb7,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x02,0x00,0x2e,0x04,0xdd,0x00,0x03,0x00,0x01,0x04,0x09,0x01,0x03,0x00,0x16,0x05,0x0b,0x43,0x6c,0x61,0x73,0x73,0x69,0x63,0x20,0x63,0x6f, +0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x43,0x6c,0x6f,0x73,0x65,0x64,0x20,0x63,0x6f,0x6e,0x73,0x74,0x72,0x75,0x63,0x74,0x69,0x6f,0x6e,0x42,0x72,0x6f,0x6b,0x65,0x6e,0x20,0x65,0x71,0x75,0x61,0x6c,0x73,0x20,0x6c,0x69,0x67,0x61,0x74,0x75,0x72,0x65,0x73,0x52,0x61,0x73,0x65,0x64,0x20,0x62,0x61,0x72,0x20,0x66,0x00, +0x43,0x00,0x6f,0x00,0x70,0x00,0x79,0x00,0x72,0x00,0x69,0x00,0x67,0x00,0x68,0x00,0x74,0x00,0x20,0x00,0x32,0x00,0x30,0x00,0x32,0x00,0x30,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x65,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00, +0x6f,0x00,0x20,0x00,0x50,0x00,0x72,0x00,0x6f,0x00,0x6a,0x00,0x65,0x00,0x63,0x00,0x74,0x00,0x20,0x00,0x41,0x00,0x75,0x00,0x74,0x00,0x68,0x00,0x6f,0x00,0x72,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x67,0x00,0x69,0x00,0x74,0x00,0x68,0x00,0x75,0x00, +0x62,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2f,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x29,0x00,0x4a,0x00,0x65,0x00, +0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x4a,0x00,0x42,0x00,0x3b,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00, +0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00, +0x52,0x00,0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x32,0x00,0x2e,0x00,0x33,0x00,0x30,0x00,0x34,0x00,0x3b,0x00,0x20,0x00,0x74,0x00,0x74,0x00,0x66,0x00,0x61,0x00,0x75,0x00,0x74,0x00,0x6f,0x00,0x68,0x00,0x69,0x00,0x6e,0x00, +0x74,0x00,0x20,0x00,0x28,0x00,0x76,0x00,0x31,0x00,0x2e,0x00,0x38,0x00,0x2e,0x00,0x34,0x00,0x2e,0x00,0x37,0x00,0x2d,0x00,0x35,0x00,0x64,0x00,0x35,0x00,0x62,0x00,0x29,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x2d,0x00,0x52,0x00, +0x65,0x00,0x67,0x00,0x75,0x00,0x6c,0x00,0x61,0x00,0x72,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x4d,0x00,0x6f,0x00,0x6e,0x00,0x6f,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x74,0x00,0x72,0x00,0x61,0x00,0x64,0x00,0x65,0x00,0x6d,0x00, +0x61,0x00,0x72,0x00,0x6b,0x00,0x20,0x00,0x6f,0x00,0x66,0x00,0x20,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x20,0x00,0x73,0x00,0x2e,0x00,0x72,0x00,0x2e,0x00,0x6f,0x00,0x2e,0x00,0x4a,0x00,0x65,0x00,0x74,0x00,0x42,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00, +0x50,0x00,0x68,0x00,0x69,0x00,0x6c,0x00,0x69,0x00,0x70,0x00,0x70,0x00,0x20,0x00,0x4e,0x00,0x75,0x00,0x72,0x00,0x75,0x00,0x6c,0x00,0x6c,0x00,0x69,0x00,0x6e,0x00,0x2c,0x00,0x20,0x00,0x4b,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x61,0x00,0x6e,0x00,0x74,0x00,0x69,0x00,0x6e,0x00,0x20,0x00,0x42,0x00,0x75,0x00,0x6c,0x00, +0x65,0x00,0x6e,0x00,0x6b,0x00,0x6f,0x00,0x76,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x68,0x00,0x74,0x00, +0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x77,0x00,0x77,0x00,0x77,0x00,0x2e,0x00,0x6a,0x00,0x65,0x00,0x74,0x00,0x62,0x00,0x72,0x00,0x61,0x00,0x69,0x00,0x6e,0x00,0x73,0x00,0x2e,0x00,0x63,0x00,0x6f,0x00,0x6d,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00, +0x20,0x00,0x53,0x00,0x6f,0x00,0x66,0x00,0x74,0x00,0x77,0x00,0x61,0x00,0x72,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x75,0x00,0x6e,0x00,0x64,0x00,0x65,0x00,0x72,0x00,0x20,0x00,0x74,0x00,0x68,0x00,0x65,0x00,0x20,0x00, +0x53,0x00,0x49,0x00,0x4c,0x00,0x20,0x00,0x4f,0x00,0x70,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x46,0x00,0x6f,0x00,0x6e,0x00,0x74,0x00,0x20,0x00,0x4c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x2c,0x00,0x20,0x00,0x56,0x00,0x65,0x00,0x72,0x00,0x73,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x20,0x00,0x31,0x00, +0x2e,0x00,0x31,0x00,0x2e,0x00,0x20,0x00,0x54,0x00,0x68,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x63,0x00,0x65,0x00,0x6e,0x00,0x73,0x00,0x65,0x00,0x20,0x00,0x69,0x00,0x73,0x00,0x20,0x00,0x61,0x00,0x76,0x00,0x61,0x00,0x69,0x00,0x6c,0x00,0x61,0x00,0x62,0x00,0x6c,0x00,0x65,0x00,0x20,0x00,0x77,0x00,0x69,0x00, +0x74,0x00,0x68,0x00,0x20,0x00,0x61,0x00,0x20,0x00,0x46,0x00,0x41,0x00,0x51,0x00,0x20,0x00,0x61,0x00,0x74,0x00,0x3a,0x00,0x20,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00, +0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00,0x4f,0x00,0x46,0x00,0x4c,0x00,0x68,0x00,0x74,0x00,0x74,0x00,0x70,0x00,0x73,0x00,0x3a,0x00,0x2f,0x00,0x2f,0x00,0x73,0x00,0x63,0x00,0x72,0x00,0x69,0x00,0x70,0x00,0x74,0x00,0x73,0x00,0x2e,0x00,0x73,0x00,0x69,0x00,0x6c,0x00,0x2e,0x00,0x6f,0x00,0x72,0x00,0x67,0x00,0x2f,0x00, +0x4f,0x00,0x46,0x00,0x4c,0x00,0x43,0x00,0x6c,0x00,0x61,0x00,0x73,0x00,0x73,0x00,0x69,0x00,0x63,0x00,0x20,0x00,0x63,0x00,0x6f,0x00,0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x43,0x00,0x6c,0x00,0x6f,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x63,0x00,0x6f,0x00, +0x6e,0x00,0x73,0x00,0x74,0x00,0x72,0x00,0x75,0x00,0x63,0x00,0x74,0x00,0x69,0x00,0x6f,0x00,0x6e,0x00,0x42,0x00,0x72,0x00,0x6f,0x00,0x6b,0x00,0x65,0x00,0x6e,0x00,0x20,0x00,0x65,0x00,0x71,0x00,0x75,0x00,0x61,0x00,0x6c,0x00,0x73,0x00,0x20,0x00,0x6c,0x00,0x69,0x00,0x67,0x00,0x61,0x00,0x74,0x00,0x75,0x00,0x72,0x00,0x65,0x00, +0x73,0x00,0x52,0x00,0x61,0x00,0x73,0x00,0x65,0x00,0x64,0x00,0x20,0x00,0x62,0x00,0x61,0x00,0x72,0x00,0x20,0x00,0x66,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x65,0x00,0x32,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xcf,0x00,0x00,0x00,0x24,0x00,0xc9, +0x01,0x02,0x01,0x03,0x01,0x04,0x01,0x05,0x01,0x06,0x01,0x07,0x01,0x08,0x00,0xc7,0x01,0x09,0x01,0x0a,0x01,0x0b,0x01,0x0c,0x01,0x0d,0x00,0x62,0x01,0x0e,0x00,0xad,0x01,0x0f,0x01,0x10,0x01,0x11,0x00,0x63,0x00,0xae,0x00,0x90,0x01,0x12,0x00,0x25,0x00,0x26,0x00,0xfd,0x00,0xff,0x00,0x64,0x01,0x13,0x01,0x14,0x00,0x27,0x00,0xe9, +0x01,0x15,0x01,0x16,0x00,0x28,0x00,0x65,0x01,0x17,0x01,0x18,0x00,0xc8,0x01,0x19,0x01,0x1a,0x01,0x1b,0x01,0x1c,0x01,0x1d,0x00,0xca,0x01,0x1e,0x01,0x1f,0x00,0xcb,0x01,0x20,0x01,0x21,0x01,0x22,0x01,0x23,0x01,0x24,0x00,0x29,0x00,0x2a,0x01,0x25,0x00,0xf8,0x01,0x26,0x01,0x27,0x01,0x28,0x01,0x29,0x00,0x2b,0x01,0x2a,0x01,0x2b, +0x00,0x2c,0x00,0xcc,0x01,0x2c,0x00,0xcd,0x00,0xce,0x00,0xfa,0x01,0x2d,0x00,0xcf,0x01,0x2e,0x01,0x2f,0x01,0x30,0x01,0x31,0x00,0x2d,0x01,0x32,0x00,0x2e,0x01,0x33,0x00,0x2f,0x01,0x34,0x01,0x35,0x01,0x36,0x01,0x37,0x00,0xe2,0x00,0x30,0x00,0x31,0x01,0x38,0x01,0x39,0x01,0x3a,0x01,0x3b,0x00,0x66,0x00,0x32,0x00,0xd0,0x01,0x3c, +0x00,0xd1,0x01,0x3d,0x01,0x3e,0x01,0x3f,0x01,0x40,0x01,0x41,0x00,0x67,0x01,0x42,0x00,0xd3,0x01,0x43,0x01,0x44,0x01,0x45,0x01,0x46,0x01,0x47,0x01,0x48,0x01,0x49,0x01,0x4a,0x01,0x4b,0x01,0x4c,0x00,0x91,0x01,0x4d,0x00,0xaf,0x00,0xb0,0x00,0x33,0x00,0xed,0x00,0x34,0x00,0x35,0x01,0x4e,0x01,0x4f,0x01,0x50,0x00,0x36,0x01,0x51, +0x00,0xe4,0x00,0xfb,0x01,0x52,0x01,0x53,0x01,0x54,0x01,0x55,0x00,0x37,0x01,0x56,0x01,0x57,0x01,0x58,0x01,0x59,0x00,0x38,0x00,0xd4,0x01,0x5a,0x00,0xd5,0x00,0x68,0x01,0x5b,0x00,0xd6,0x01,0x5c,0x01,0x5d,0x01,0x5e,0x01,0x5f,0x01,0x60,0x01,0x61,0x01,0x62,0x01,0x63,0x01,0x64,0x01,0x65,0x01,0x66,0x01,0x67,0x00,0x39,0x00,0x3a, +0x01,0x68,0x01,0x69,0x01,0x6a,0x01,0x6b,0x00,0x3b,0x00,0x3c,0x00,0xeb,0x01,0x6c,0x00,0xbb,0x01,0x6d,0x01,0x6e,0x01,0x6f,0x01,0x70,0x01,0x71,0x00,0x3d,0x01,0x72,0x00,0xe6,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0x79,0x01,0x7a,0x01,0x7b,0x00,0x44,0x00,0x69,0x01,0x7c,0x01,0x7d,0x01,0x7e,0x01,0x7f, +0x01,0x80,0x01,0x81,0x01,0x82,0x00,0x6b,0x01,0x83,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x00,0x6c,0x01,0x88,0x00,0x6a,0x01,0x89,0x01,0x8a,0x01,0x8b,0x00,0x6e,0x00,0x6d,0x00,0xa0,0x01,0x8c,0x00,0x45,0x00,0x46,0x00,0xfe,0x01,0x00,0x00,0x6f,0x01,0x8d,0x01,0x8e,0x00,0x47,0x00,0xea,0x01,0x8f,0x01,0x01,0x00,0x48,0x00,0x70, +0x01,0x90,0x01,0x91,0x00,0x72,0x01,0x92,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x00,0x73,0x01,0x97,0x01,0x98,0x00,0x71,0x01,0x99,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x00,0x49,0x00,0x4a,0x01,0x9e,0x00,0xf9,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0xa2,0x00,0x4b,0x01,0xa3,0x01,0xa4,0x00,0x4c,0x00,0xd7,0x00,0x74,0x01,0xa5, +0x01,0xa6,0x00,0x76,0x00,0x77,0x01,0xa7,0x01,0xa8,0x00,0x75,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x4d,0x01,0xad,0x01,0xae,0x00,0x4e,0x01,0xaf,0x01,0xb0,0x00,0x4f,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4,0x01,0xb5,0x00,0xe3,0x00,0x50,0x00,0x51,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x00,0x78,0x00,0x52, +0x00,0x79,0x01,0xbb,0x01,0xbc,0x00,0x7b,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x00,0x7c,0x01,0xc2,0x00,0x7a,0x01,0xc3,0x01,0xc4,0x01,0xc5,0x01,0xc6,0x01,0xc7,0x01,0xc8,0x01,0xc9,0x01,0xca,0x01,0xcb,0x01,0xcc,0x00,0xa1,0x01,0xcd,0x00,0x7d,0x00,0xb1,0x00,0x53,0x00,0xee,0x00,0x54,0x00,0x55,0x01,0xce,0x01,0xcf, +0x01,0xd0,0x00,0x56,0x01,0xd1,0x00,0xe5,0x00,0xfc,0x01,0xd2,0x01,0xd3,0x00,0x89,0x01,0xd4,0x00,0x57,0x01,0xd5,0x01,0xd6,0x01,0xd7,0x01,0xd8,0x00,0x58,0x00,0x7e,0x01,0xd9,0x01,0xda,0x00,0x80,0x00,0x81,0x01,0xdb,0x01,0xdc,0x01,0xdd,0x01,0xde,0x01,0xdf,0x00,0x7f,0x01,0xe0,0x01,0xe1,0x01,0xe2,0x01,0xe3,0x01,0xe4,0x01,0xe5, +0x01,0xe6,0x01,0xe7,0x01,0xe8,0x01,0xe9,0x01,0xea,0x01,0xeb,0x00,0x59,0x00,0x5a,0x01,0xec,0x01,0xed,0x01,0xee,0x01,0xef,0x00,0x5b,0x00,0x5c,0x00,0xec,0x01,0xf0,0x00,0xba,0x01,0xf1,0x01,0xf2,0x01,0xf3,0x01,0xf4,0x01,0xf5,0x00,0x5d,0x01,0xf6,0x00,0xe7,0x01,0xf7,0x01,0xf8,0x01,0xf9,0x01,0xfa,0x01,0xfb,0x01,0xfc,0x01,0xfd, +0x01,0xfe,0x01,0xff,0x02,0x00,0x02,0x01,0x02,0x02,0x02,0x03,0x02,0x04,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x09,0x02,0x0a,0x02,0x0b,0x02,0x0c,0x02,0x0d,0x02,0x0e,0x02,0x0f,0x02,0x10,0x02,0x11,0x02,0x12,0x02,0x13,0x02,0x14,0x02,0x15,0x02,0x16,0x02,0x17,0x02,0x18,0x02,0x19,0x02,0x1a,0x02,0x1b,0x02,0x1c,0x02,0x1d, +0x02,0x1e,0x02,0x1f,0x02,0x20,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x24,0x02,0x25,0x02,0x26,0x02,0x27,0x02,0x28,0x02,0x29,0x02,0x2a,0x02,0x2b,0x02,0x2c,0x02,0x2d,0x02,0x2e,0x02,0x2f,0x02,0x30,0x02,0x31,0x02,0x32,0x02,0x33,0x02,0x34,0x02,0x35,0x02,0x36,0x02,0x37,0x02,0x38,0x02,0x39,0x02,0x3a,0x02,0x3b,0x02,0x3c,0x02,0x3d, +0x02,0x3e,0x02,0x3f,0x02,0x40,0x00,0x9d,0x00,0x9e,0x02,0x41,0x02,0x42,0x02,0x43,0x02,0x44,0x02,0x45,0x02,0x46,0x02,0x47,0x02,0x48,0x02,0x49,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x4e,0x02,0x4f,0x02,0x50,0x02,0x51,0x02,0x52,0x02,0x53,0x02,0x54,0x02,0x55,0x02,0x56,0x02,0x57,0x02,0x58,0x02,0x59,0x02,0x5a,0x02,0x5b, +0x02,0x5c,0x02,0x5d,0x02,0x5e,0x02,0x5f,0x02,0x60,0x02,0x61,0x02,0x62,0x02,0x63,0x02,0x64,0x02,0x65,0x02,0x66,0x02,0x67,0x02,0x68,0x02,0x69,0x02,0x6a,0x02,0x6b,0x02,0x6c,0x02,0x6d,0x02,0x6e,0x02,0x6f,0x02,0x70,0x02,0x71,0x02,0x72,0x02,0x73,0x02,0x74,0x02,0x75,0x02,0x76,0x02,0x77,0x02,0x78,0x02,0x79,0x02,0x7a,0x02,0x7b, +0x02,0x7c,0x02,0x7d,0x02,0x7e,0x02,0x7f,0x02,0x80,0x02,0x81,0x02,0x82,0x02,0x83,0x02,0x84,0x02,0x85,0x02,0x86,0x02,0x87,0x02,0x88,0x02,0x89,0x02,0x8a,0x02,0x8b,0x02,0x8c,0x02,0x8d,0x02,0x8e,0x02,0x8f,0x02,0x90,0x02,0x91,0x02,0x92,0x02,0x93,0x02,0x94,0x02,0x95,0x02,0x96,0x02,0x97,0x02,0x98,0x02,0x99,0x02,0x9a,0x02,0x9b, +0x02,0x9c,0x02,0x9d,0x02,0x9e,0x02,0x9f,0x02,0xa0,0x02,0xa1,0x02,0xa2,0x02,0xa3,0x02,0xa4,0x02,0xa5,0x02,0xa6,0x02,0xa7,0x02,0xa8,0x02,0xa9,0x02,0xaa,0x02,0xab,0x02,0xac,0x02,0xad,0x02,0xae,0x02,0xaf,0x02,0xb0,0x02,0xb1,0x02,0xb2,0x02,0xb3,0x02,0xb4,0x02,0xb5,0x02,0xb6,0x02,0xb7,0x02,0xb8,0x02,0xb9,0x02,0xba,0x02,0xbb, +0x02,0xbc,0x02,0xbd,0x02,0xbe,0x02,0xbf,0x02,0xc0,0x02,0xc1,0x02,0xc2,0x02,0xc3,0x02,0xc4,0x02,0xc5,0x02,0xc6,0x02,0xc7,0x02,0xc8,0x02,0xc9,0x02,0xca,0x02,0xcb,0x02,0xcc,0x02,0xcd,0x02,0xce,0x02,0xcf,0x02,0xd0,0x02,0xd1,0x02,0xd2,0x02,0xd3,0x02,0xd4,0x02,0xd5,0x02,0xd6,0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb, +0x02,0xdc,0x02,0xdd,0x02,0xde,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x02,0xe2,0x02,0xe3,0x02,0xe4,0x02,0xe5,0x02,0xe6,0x02,0xe7,0x02,0xe8,0x02,0xe9,0x02,0xea,0x02,0xeb,0x02,0xec,0x02,0xed,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x02,0xf8,0x02,0xf9,0x02,0xfa,0x02,0xfb, +0x02,0xfc,0x00,0x9b,0x02,0xfd,0x02,0xfe,0x02,0xff,0x03,0x00,0x03,0x01,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09,0x03,0x0a,0x03,0x0b,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10,0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x19,0x03,0x1a, +0x03,0x1b,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x03,0x20,0x03,0x21,0x03,0x22,0x03,0x23,0x03,0x24,0x03,0x25,0x03,0x26,0x03,0x27,0x03,0x28,0x03,0x29,0x03,0x2a,0x03,0x2b,0x03,0x2c,0x03,0x2d,0x03,0x2e,0x03,0x2f,0x03,0x30,0x03,0x31,0x03,0x32,0x03,0x33,0x03,0x34,0x03,0x35,0x03,0x36,0x03,0x37,0x03,0x38,0x03,0x39,0x03,0x3a, +0x03,0x3b,0x03,0x3c,0x03,0x3d,0x03,0x3e,0x03,0x3f,0x03,0x40,0x03,0x41,0x03,0x42,0x03,0x43,0x03,0x44,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x49,0x03,0x4a,0x03,0x4b,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x1b,0x00,0x1c,0x03,0x4c,0x03,0x4d,0x03,0x4e,0x03,0x4f,0x03,0x50, +0x03,0x51,0x03,0x52,0x03,0x53,0x03,0x54,0x03,0x55,0x03,0x56,0x03,0x57,0x03,0x58,0x03,0x59,0x03,0x5a,0x03,0x5b,0x03,0x5c,0x03,0x5d,0x03,0x5e,0x03,0x5f,0x03,0x60,0x03,0x61,0x03,0x62,0x03,0x63,0x03,0x64,0x03,0x65,0x03,0x66,0x03,0x67,0x03,0x68,0x03,0x69,0x03,0x6a,0x03,0x6b,0x03,0x6c,0x03,0x6d,0x03,0x6e,0x03,0x6f,0x03,0x70, +0x03,0x71,0x03,0x72,0x03,0x73,0x03,0x74,0x03,0x75,0x03,0x76,0x03,0x77,0x03,0x78,0x03,0x79,0x03,0x7a,0x03,0x7b,0x03,0x7c,0x03,0x7d,0x03,0x7e,0x03,0x7f,0x03,0x80,0x03,0x81,0x03,0x82,0x03,0x83,0x03,0x84,0x03,0x85,0x03,0x86,0x03,0x87,0x03,0x88,0x03,0x89,0x03,0x8a,0x03,0x8b,0x03,0x8c,0x03,0x8d,0x00,0xbc,0x00,0xf4,0x00,0xf5, +0x00,0xf6,0x03,0x8e,0x03,0x8f,0x03,0x90,0x03,0x91,0x03,0x92,0x00,0x11,0x00,0x0f,0x00,0x1d,0x00,0x1e,0x00,0xab,0x00,0x04,0x00,0xa3,0x00,0x22,0x00,0xa2,0x00,0xc3,0x00,0x87,0x00,0x0d,0x03,0x93,0x03,0x94,0x03,0x95,0x03,0x96,0x03,0x97,0x00,0x06,0x03,0x98,0x03,0x99,0x00,0x12,0x00,0x3f,0x03,0x9a,0x03,0x9b,0x03,0x9c,0x03,0x9d, +0x00,0x0b,0x00,0x0c,0x00,0x5e,0x00,0x60,0x00,0x3e,0x00,0x40,0x03,0x9e,0x03,0x9f,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x03,0xa3,0x03,0xa4,0x03,0xa5,0x03,0xa6,0x03,0xa7,0x03,0xa8,0x03,0xa9,0x03,0xaa,0x03,0xab,0x00,0x10,0x03,0xac,0x00,0xb2,0x00,0xb3,0x03,0xad,0x00,0x42,0x00,0xc4,0x00,0xc5,0x00,0xb4,0x00,0xb5,0x00,0xb6,0x00,0xb7, +0x03,0xae,0x03,0xaf,0x00,0xa9,0x00,0xaa,0x00,0xbe,0x00,0xbf,0x03,0xb0,0x00,0x05,0x00,0x0a,0x03,0xb1,0x03,0xb2,0x03,0xb3,0x03,0xb4,0x03,0xb5,0x03,0xb6,0x03,0xb7,0x03,0xb8,0x03,0xb9,0x03,0xba,0x03,0xbb,0x03,0xbc,0x03,0xbd,0x03,0xbe,0x03,0xbf,0x03,0xc0,0x03,0xc1,0x03,0xc2,0x03,0xc3,0x03,0xc4,0x03,0xc5,0x03,0xc6,0x03,0xc7, +0x03,0xc8,0x03,0xc9,0x03,0xca,0x03,0xcb,0x03,0xcc,0x03,0xcd,0x03,0xce,0x03,0xcf,0x03,0xd0,0x03,0xd1,0x03,0xd2,0x03,0xd3,0x03,0xd4,0x03,0xd5,0x03,0xd6,0x03,0xd7,0x03,0xd8,0x03,0xd9,0x03,0xda,0x03,0xdb,0x03,0xdc,0x03,0xdd,0x03,0xde,0x03,0xdf,0x03,0xe0,0x03,0xe1,0x03,0xe2,0x03,0xe3,0x03,0xe4,0x03,0xe5,0x03,0xe6,0x03,0xe7, +0x03,0xe8,0x03,0xe9,0x03,0xea,0x03,0xeb,0x03,0xec,0x03,0xed,0x03,0xee,0x03,0xef,0x03,0xf0,0x03,0xf1,0x03,0xf2,0x03,0xf3,0x03,0xf4,0x03,0xf5,0x03,0xf6,0x03,0xf7,0x03,0xf8,0x03,0xf9,0x03,0xfa,0x03,0xfb,0x03,0xfc,0x03,0xfd,0x03,0xfe,0x03,0xff,0x04,0x00,0x04,0x01,0x04,0x02,0x00,0x03,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x06, +0x00,0x84,0x00,0xbd,0x00,0x07,0x04,0x07,0x04,0x08,0x00,0xa6,0x04,0x09,0x04,0x0a,0x00,0x85,0x04,0x0b,0x00,0x96,0x04,0x0c,0x04,0x0d,0x04,0x0e,0x04,0x0f,0x04,0x10,0x04,0x11,0x04,0x12,0x04,0x13,0x04,0x14,0x04,0x15,0x04,0x16,0x04,0x17,0x04,0x18,0x04,0x19,0x04,0x1a,0x04,0x1b,0x04,0x1c,0x04,0x1d,0x04,0x1e,0x04,0x1f,0x04,0x20, +0x04,0x21,0x04,0x22,0x04,0x23,0x04,0x24,0x04,0x25,0x04,0x26,0x04,0x27,0x04,0x28,0x04,0x29,0x04,0x2a,0x04,0x2b,0x04,0x2c,0x04,0x2d,0x04,0x2e,0x04,0x2f,0x04,0x30,0x04,0x31,0x04,0x32,0x04,0x33,0x04,0x34,0x04,0x35,0x04,0x36,0x04,0x37,0x04,0x38,0x04,0x39,0x04,0x3a,0x04,0x3b,0x04,0x3c,0x04,0x3d,0x04,0x3e,0x04,0x3f,0x04,0x40, +0x04,0x41,0x04,0x42,0x04,0x43,0x04,0x44,0x04,0x45,0x04,0x46,0x04,0x47,0x04,0x48,0x04,0x49,0x04,0x4a,0x04,0x4b,0x04,0x4c,0x04,0x4d,0x04,0x4e,0x04,0x4f,0x04,0x50,0x04,0x51,0x04,0x52,0x00,0x0e,0x00,0xef,0x00,0xf0,0x00,0xb8,0x00,0x20,0x00,0x8f,0x00,0x21,0x00,0x1f,0x00,0x95,0x00,0x94,0x00,0x93,0x00,0xa7,0x00,0xa4,0x00,0x61, +0x00,0x41,0x00,0x92,0x04,0x53,0x04,0x54,0x04,0x55,0x04,0x56,0x04,0x57,0x00,0x9c,0x04,0x58,0x00,0x9a,0x00,0x99,0x00,0xa5,0x00,0x98,0x04,0x59,0x04,0x5a,0x04,0x5b,0x04,0x5c,0x04,0x5d,0x04,0x5e,0x04,0x5f,0x04,0x60,0x00,0x08,0x00,0xc6,0x04,0x61,0x04,0x62,0x04,0x63,0x04,0x64,0x04,0x65,0x04,0x66,0x04,0x67,0x04,0x68,0x04,0x69, +0x04,0x6a,0x04,0x6b,0x04,0x6c,0x04,0x6d,0x04,0x6e,0x04,0x6f,0x04,0x70,0x04,0x71,0x04,0x72,0x04,0x73,0x04,0x74,0x04,0x75,0x04,0x76,0x04,0x77,0x04,0x78,0x04,0x79,0x04,0x7a,0x04,0x7b,0x04,0x7c,0x04,0x7d,0x04,0x7e,0x04,0x7f,0x04,0x80,0x04,0x81,0x04,0x82,0x04,0x83,0x04,0x84,0x04,0x85,0x04,0x86,0x04,0x87,0x04,0x88,0x04,0x89, +0x04,0x8a,0x04,0x8b,0x04,0x8c,0x04,0x8d,0x04,0x8e,0x04,0x8f,0x04,0x90,0x04,0x91,0x04,0x92,0x04,0x93,0x04,0x94,0x04,0x95,0x04,0x96,0x04,0x97,0x04,0x98,0x04,0x99,0x04,0x9a,0x04,0x9b,0x04,0x9c,0x04,0x9d,0x04,0x9e,0x04,0x9f,0x04,0xa0,0x04,0xa1,0x04,0xa2,0x04,0xa3,0x04,0xa4,0x04,0xa5,0x04,0xa6,0x04,0xa7,0x04,0xa8,0x04,0xa9, +0x04,0xaa,0x04,0xab,0x04,0xac,0x04,0xad,0x04,0xae,0x04,0xaf,0x04,0xb0,0x04,0xb1,0x04,0xb2,0x04,0xb3,0x04,0xb4,0x04,0xb5,0x04,0xb6,0x04,0xb7,0x04,0xb8,0x04,0xb9,0x04,0xba,0x04,0xbb,0x04,0xbc,0x04,0xbd,0x04,0xbe,0x04,0xbf,0x04,0xc0,0x04,0xc1,0x04,0xc2,0x04,0xc3,0x04,0xc4,0x04,0xc5,0x04,0xc6,0x04,0xc7,0x04,0xc8,0x04,0xc9, +0x04,0xca,0x04,0xcb,0x04,0xcc,0x04,0xcd,0x04,0xce,0x04,0xcf,0x04,0xd0,0x04,0xd1,0x04,0xd2,0x04,0xd3,0x04,0xd4,0x04,0xd5,0x04,0xd6,0x04,0xd7,0x04,0xd8,0x04,0xd9,0x04,0xda,0x04,0xdb,0x04,0xdc,0x04,0xdd,0x04,0xde,0x04,0xdf,0x04,0xe0,0x04,0xe1,0x04,0xe2,0x04,0xe3,0x04,0xe4,0x04,0xe5,0x04,0xe6,0x04,0xe7,0x04,0xe8,0x04,0xe9, +0x04,0xea,0x04,0xeb,0x04,0xec,0x04,0xed,0x00,0xb9,0x04,0xee,0x04,0xef,0x04,0xf0,0x04,0xf1,0x04,0xf2,0x04,0xf3,0x04,0xf4,0x04,0xf5,0x04,0xf6,0x04,0xf7,0x04,0xf8,0x04,0xf9,0x04,0xfa,0x04,0xfb,0x04,0xfc,0x04,0xfd,0x04,0xfe,0x04,0xff,0x05,0x00,0x05,0x01,0x05,0x02,0x05,0x03,0x05,0x04,0x05,0x05,0x05,0x06,0x05,0x07,0x05,0x08, +0x05,0x09,0x05,0x0a,0x05,0x0b,0x05,0x0c,0x05,0x0d,0x05,0x0e,0x05,0x0f,0x05,0x10,0x05,0x11,0x05,0x12,0x05,0x13,0x05,0x14,0x05,0x15,0x05,0x16,0x05,0x17,0x05,0x18,0x05,0x19,0x05,0x1a,0x05,0x1b,0x05,0x1c,0x05,0x1d,0x05,0x1e,0x05,0x1f,0x05,0x20,0x05,0x21,0x05,0x22,0x05,0x23,0x05,0x24,0x05,0x25,0x05,0x26,0x05,0x27,0x05,0x28, +0x05,0x29,0x05,0x2a,0x05,0x2b,0x05,0x2c,0x05,0x2d,0x05,0x2e,0x05,0x2f,0x05,0x30,0x05,0x31,0x05,0x32,0x05,0x33,0x05,0x34,0x05,0x35,0x05,0x36,0x05,0x37,0x05,0x38,0x05,0x39,0x05,0x3a,0x05,0x3b,0x05,0x3c,0x05,0x3d,0x05,0x3e,0x05,0x3f,0x05,0x40,0x05,0x41,0x05,0x42,0x05,0x43,0x05,0x44,0x05,0x45,0x05,0x46,0x05,0x47,0x05,0x48, +0x05,0x49,0x05,0x4a,0x05,0x4b,0x05,0x4c,0x05,0x4d,0x05,0x4e,0x05,0x4f,0x05,0x50,0x05,0x51,0x05,0x52,0x05,0x53,0x05,0x54,0x05,0x55,0x05,0x56,0x05,0x57,0x05,0x58,0x05,0x59,0x05,0x5a,0x05,0x5b,0x05,0x5c,0x05,0x5d,0x05,0x5e,0x05,0x5f,0x05,0x60,0x05,0x61,0x05,0x62,0x05,0x63,0x05,0x64,0x05,0x65,0x05,0x66,0x05,0x67,0x05,0x68, +0x05,0x69,0x05,0x6a,0x05,0x6b,0x05,0x6c,0x05,0x6d,0x05,0x6e,0x05,0x6f,0x05,0x70,0x05,0x71,0x05,0x72,0x05,0x73,0x05,0x74,0x05,0x75,0x05,0x76,0x05,0x77,0x05,0x78,0x05,0x79,0x05,0x7a,0x05,0x7b,0x05,0x7c,0x05,0x7d,0x05,0x7e,0x05,0x7f,0x05,0x80,0x05,0x81,0x05,0x82,0x05,0x83,0x05,0x84,0x05,0x85,0x05,0x86,0x05,0x87,0x05,0x88, +0x05,0x89,0x05,0x8a,0x05,0x8b,0x05,0x8c,0x05,0x8d,0x05,0x8e,0x05,0x8f,0x05,0x90,0x05,0x91,0x05,0x92,0x05,0x93,0x05,0x94,0x05,0x95,0x05,0x96,0x05,0x97,0x05,0x98,0x05,0x99,0x05,0x9a,0x05,0x9b,0x05,0x9c,0x05,0x9d,0x05,0x9e,0x05,0x9f,0x05,0xa0,0x05,0xa1,0x05,0xa2,0x05,0xa3,0x05,0xa4,0x05,0xa5,0x05,0xa6,0x05,0xa7,0x05,0xa8, +0x05,0xa9,0x05,0xaa,0x05,0xab,0x05,0xac,0x05,0xad,0x05,0xae,0x05,0xaf,0x05,0xb0,0x05,0xb1,0x05,0xb2,0x05,0xb3,0x05,0xb4,0x05,0xb5,0x05,0xb6,0x05,0xb7,0x05,0xb8,0x05,0xb9,0x05,0xba,0x05,0xbb,0x05,0xbc,0x05,0xbd,0x05,0xbe,0x05,0xbf,0x05,0xc0,0x05,0xc1,0x05,0xc2,0x05,0xc3,0x05,0xc4,0x05,0xc5,0x05,0xc6,0x05,0xc7,0x05,0xc8, +0x05,0xc9,0x05,0xca,0x05,0xcb,0x05,0xcc,0x05,0xcd,0x05,0xce,0x05,0xcf,0x05,0xd0,0x05,0xd1,0x05,0xd2,0x05,0xd3,0x05,0xd4,0x05,0xd5,0x05,0xd6,0x05,0xd7,0x05,0xd8,0x05,0xd9,0x00,0x23,0x00,0x09,0x00,0x88,0x00,0x86,0x00,0x8b,0x00,0x8a,0x00,0x8c,0x00,0x83,0x05,0xda,0x05,0xdb,0x00,0x5f,0x00,0xe8,0x00,0x82,0x05,0xdc,0x00,0xc2, +0x05,0xdd,0x05,0xde,0x05,0xdf,0x05,0xe0,0x05,0xe1,0x05,0xe2,0x05,0xe3,0x05,0xe4,0x05,0xe5,0x05,0xe6,0x05,0xe7,0x05,0xe8,0x05,0xe9,0x05,0xea,0x05,0xeb,0x05,0xec,0x05,0xed,0x05,0xee,0x05,0xef,0x05,0xf0,0x05,0xf1,0x05,0xf2,0x05,0xf3,0x05,0xf4,0x05,0xf5,0x05,0xf6,0x05,0xf7,0x05,0xf8,0x05,0xf9,0x05,0xfa,0x05,0xfb,0x05,0xfc, +0x05,0xfd,0x05,0xfe,0x05,0xff,0x06,0x00,0x06,0x01,0x06,0x02,0x06,0x03,0x06,0x04,0x06,0x05,0x06,0x06,0x06,0x07,0x06,0x08,0x06,0x09,0x06,0x0a,0x06,0x0b,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x06,0x0f,0x06,0x10,0x06,0x11,0x06,0x12,0x06,0x13,0x06,0x14,0x06,0x15,0x06,0x16,0x06,0x17,0x06,0x18,0x06,0x19,0x06,0x1a,0x06,0x1b,0x06,0x1c, +0x06,0x1d,0x06,0x1e,0x06,0x1f,0x06,0x20,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x28,0x06,0x29,0x06,0x2a,0x06,0x2b,0x06,0x2c,0x06,0x2d,0x06,0x2e,0x06,0x2f,0x06,0x30,0x06,0x31,0x06,0x32,0x06,0x33,0x06,0x34,0x06,0x35,0x06,0x36,0x06,0x37,0x06,0x38,0x06,0x39,0x06,0x3a,0x06,0x3b,0x06,0x3c, +0x06,0x3d,0x06,0x3e,0x06,0x3f,0x06,0x40,0x06,0x41,0x06,0x42,0x06,0x43,0x06,0x44,0x06,0x45,0x06,0x46,0x06,0x47,0x06,0x48,0x06,0x49,0x06,0x4a,0x06,0x4b,0x06,0x4c,0x06,0x4d,0x06,0x4e,0x06,0x4f,0x06,0x50,0x06,0x51,0x06,0x52,0x06,0x53,0x06,0x54,0x06,0x55,0x06,0x56,0x06,0x57,0x06,0x58,0x06,0x59,0x06,0x5a,0x06,0x5b,0x06,0x5c, +0x06,0x5d,0x06,0x5e,0x06,0x5f,0x06,0x60,0x06,0x61,0x06,0x62,0x06,0x63,0x06,0x64,0x06,0x65,0x06,0x66,0x06,0x67,0x06,0x68,0x06,0x69,0x06,0x6a,0x06,0x6b,0x06,0x6c,0x06,0x6d,0x06,0x6e,0x06,0x6f,0x06,0x70,0x06,0x71,0x06,0x72,0x06,0x73,0x06,0x74,0x06,0x75,0x06,0x76,0x06,0x77,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x7c, +0x06,0x7d,0x06,0x7e,0x06,0x7f,0x06,0x80,0x06,0x81,0x06,0x82,0x06,0x83,0x06,0x84,0x06,0x85,0x06,0x86,0x06,0x87,0x06,0x88,0x06,0x89,0x06,0x8a,0x06,0x8b,0x06,0x8c,0x06,0x8d,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x00,0x8e,0x00,0xdc,0x00,0x43, +0x00,0x8d,0x00,0xdf,0x00,0xd8,0x00,0xe1,0x00,0xdb,0x00,0xdd,0x00,0xd9,0x00,0xda,0x00,0xde,0x00,0xe0,0x06,0x9a,0x06,0x9b,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa3,0x06,0xa4,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf, +0x06,0xb0,0x06,0xb1,0x06,0xb2,0x06,0xb3,0x06,0xb4,0x06,0xb5,0x06,0xb6,0x06,0xb7,0x06,0xb8,0x06,0xb9,0x06,0xba,0x06,0xbb,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x06,0xc4,0x06,0xc5,0x06,0xc6,0x06,0xc7,0x06,0xc8,0x06,0xc9,0x06,0xca,0x06,0xcb,0x06,0xcc,0x06,0xcd,0x06,0xce,0x06,0xcf, +0x06,0xd0,0x06,0xd1,0x06,0xd2,0x06,0xd3,0x06,0xd4,0x06,0xd5,0x06,0xd6,0x06,0xd7,0x06,0xd8,0x06,0xd9,0x06,0xda,0x06,0xdb,0x06,0x41,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x32,0x07, +0x75,0x6e,0x69,0x31,0x45,0x42,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x30,0x07, +0x75,0x6e,0x69,0x31,0x45,0x41,0x32,0x07,0x41,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x41,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x41,0x45,0x61,0x63,0x75,0x74,0x65,0x0b,0x43,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x43,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x44,0x63,0x61,0x72,0x6f,0x6e,0x06,0x44,0x63, +0x72,0x6f,0x61,0x74,0x06,0x45,0x62,0x72,0x65,0x76,0x65,0x06,0x45,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x34,0x0a,0x45,0x64,0x6f,0x74,0x61, +0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x41,0x07,0x45,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x45,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x34,0x06,0x47,0x63, +0x61,0x72,0x6f,0x6e,0x0b,0x47,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x32,0x0a,0x47,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x48,0x62,0x61,0x72,0x0b,0x48,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x49,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31, +0x45,0x43,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x38,0x07,0x49,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x49,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x49,0x74,0x69,0x6c,0x64,0x65,0x0b,0x4a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x36,0x06,0x4c,0x61,0x63,0x75,0x74,0x65,0x06,0x4c,0x63, +0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x42,0x04,0x4c,0x64,0x6f,0x74,0x06,0x4e,0x61,0x63,0x75,0x74,0x65,0x06,0x4e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x35,0x03,0x45,0x6e,0x67,0x06,0x4f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x30,0x07,0x75,0x6e,0x69,0x31,0x45, +0x44,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x45,0x05,0x4f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x32, +0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x30,0x0d,0x4f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x4f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x41,0x0b,0x4f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75, +0x74,0x65,0x06,0x52,0x61,0x63,0x75,0x74,0x65,0x06,0x52,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x36,0x06,0x53,0x61,0x63,0x75,0x74,0x65,0x0b,0x53,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x39,0x45,0x07,0x75,0x6e,0x69,0x30, +0x31,0x38,0x46,0x04,0x54,0x62,0x61,0x72,0x06,0x54,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x36,0x32,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x41,0x06,0x55,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x34,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x36,0x05,0x55,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69, +0x31,0x45,0x45,0x38,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x30,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x41,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x43,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x45,0x0d,0x55,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x55,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x55,0x6f,0x67,0x6f,0x6e, +0x65,0x6b,0x05,0x55,0x72,0x69,0x6e,0x67,0x06,0x55,0x74,0x69,0x6c,0x64,0x65,0x06,0x57,0x61,0x63,0x75,0x74,0x65,0x0b,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x06,0x57,0x67,0x72,0x61,0x76,0x65,0x0b,0x59,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07, +0x75,0x6e,0x69,0x31,0x45,0x46,0x34,0x06,0x59,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x36,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x38,0x06,0x5a,0x61,0x63,0x75,0x74,0x65,0x0a,0x5a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x57,0x2e,0x63,0x76,0x30,0x37,0x0b, +0x57,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x57,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x37,0x0e,0x57,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x57,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x4b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75, +0x6e,0x69,0x30,0x31,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x06,0x51,0x2e,0x63,0x76,0x31,0x36,0x06,0x61,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x42, +0x35,0x07,0x75,0x6e,0x69,0x30,0x31,0x43,0x45,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x41,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x41, +0x33,0x07,0x61,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x61,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x61,0x65,0x61,0x63,0x75,0x74,0x65,0x0b,0x63,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x0a,0x63,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x06,0x64,0x63,0x61,0x72,0x6f,0x6e,0x06,0x65,0x62,0x72,0x65,0x76,0x65,0x06,0x65, +0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x35,0x0a,0x65,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x39, +0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x42,0x07,0x65,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x65,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x07,0x75,0x6e,0x69,0x31,0x45,0x42,0x44,0x07,0x75,0x6e,0x69,0x30,0x32,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x06,0x67,0x63,0x61,0x72,0x6f,0x6e,0x0b,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66, +0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x0a,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x04,0x68,0x62,0x61,0x72,0x0b,0x68,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x06,0x69,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x30,0x09,0x69,0x2e,0x6c,0x6f,0x63,0x6c,0x54,0x52,0x4b, +0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x39,0x07,0x69,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x06,0x69,0x74,0x69,0x6c,0x64,0x65,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x0b,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30, +0x31,0x33,0x37,0x0c,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x06,0x6c,0x61,0x63,0x75,0x74,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x39,0x42,0x06,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x04,0x6c,0x64,0x6f,0x74,0x06,0x6e,0x61,0x63,0x75,0x74,0x65,0x0b,0x6e,0x61,0x70,0x6f,0x73, +0x74,0x72,0x6f,0x70,0x68,0x65,0x06,0x6e,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x34,0x36,0x03,0x65,0x6e,0x67,0x06,0x6f,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x32,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x33, +0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x37,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x43,0x46,0x05,0x6f,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x44,0x44,0x07,0x75, +0x6e,0x69,0x31,0x45,0x44,0x46,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x31,0x0d,0x6f,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x6f,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x45,0x42,0x0b,0x6f,0x73,0x6c,0x61,0x73,0x68,0x61,0x63,0x75,0x74,0x65,0x06,0x72,0x61,0x63,0x75,0x74,0x65,0x06, +0x72,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x06,0x73,0x61,0x63,0x75,0x74,0x65,0x0b,0x73,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x39,0x05,0x6c,0x6f,0x6e,0x67,0x73,0x04,0x74,0x62,0x61,0x72,0x06,0x74,0x63,0x61,0x72,0x6f,0x6e,0x07,0x75,0x6e,0x69,0x30, +0x31,0x36,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x06,0x75,0x62,0x72,0x65,0x76,0x65,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x34,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x41,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x31,0x44,0x36,0x07,0x75,0x6e,0x69,0x31,0x45, +0x45,0x35,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x05,0x75,0x68,0x6f,0x72,0x6e,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x07,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x0d,0x75,0x68,0x75,0x6e,0x67,0x61,0x72, +0x75,0x6d,0x6c,0x61,0x75,0x74,0x07,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x07,0x75,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x05,0x75,0x72,0x69,0x6e,0x67,0x06,0x75,0x74,0x69,0x6c,0x64,0x65,0x06,0x77,0x61,0x63,0x75,0x74,0x65,0x0b,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x09,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73, +0x06,0x77,0x67,0x72,0x61,0x76,0x65,0x0b,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x06,0x79,0x67,0x72,0x61,0x76,0x65,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x07,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x07,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x06,0x7a,0x61,0x63,0x75,0x74, +0x65,0x0a,0x7a,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x0f,0x67,0x65,0x72,0x6d,0x61,0x6e,0x64,0x62,0x6c,0x73,0x2e,0x63,0x61,0x6c,0x74,0x06,0x6c,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x31,0x0c,0x75,0x6e,0x69,0x30, +0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x31,0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x31,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x31,0x06,0x74,0x2e,0x63,0x76,0x30,0x32,0x09,0x74,0x62,0x61,0x72,0x2e,0x63,0x76,0x30,0x32,0x0b,0x74,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30, +0x31,0x36,0x33,0x2e,0x63,0x76,0x30,0x32,0x0c,0x75,0x6e,0x69,0x30,0x32,0x31,0x42,0x2e,0x63,0x76,0x30,0x32,0x06,0x67,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x46,0x35,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x76,0x30,0x33,0x0b,0x67,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30, +0x33,0x10,0x67,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x33,0x0c,0x75,0x6e,0x69,0x30,0x31,0x32,0x33,0x2e,0x63,0x76,0x30,0x33,0x0f,0x67,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x30,0x33,0x06,0x6a,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x37,0x2e,0x63, +0x76,0x30,0x34,0x10,0x6a,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30,0x34,0x06,0x6c,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x30,0x35,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x43,0x2e,0x63,0x76,0x30,0x35, +0x09,0x6c,0x64,0x6f,0x74,0x2e,0x63,0x76,0x30,0x35,0x0b,0x6c,0x73,0x6c,0x61,0x73,0x68,0x2e,0x63,0x76,0x30,0x35,0x06,0x6d,0x2e,0x63,0x76,0x30,0x36,0x06,0x77,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x30,0x37,0x10,0x77,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x30, +0x37,0x0e,0x77,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x30,0x37,0x0b,0x77,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x30,0x37,0x06,0x6b,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x31,0x33,0x37,0x2e,0x63,0x76,0x30,0x38,0x11,0x6b,0x67,0x72,0x65,0x65,0x6e,0x6c,0x61,0x6e,0x64,0x69,0x63,0x2e,0x63,0x76, +0x30,0x38,0x06,0x66,0x2e,0x63,0x76,0x30,0x39,0x06,0x72,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x30,0x0b,0x72,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x30,0x0c,0x75,0x6e,0x69,0x30,0x31,0x35,0x37,0x2e,0x63,0x76,0x31,0x30,0x06,0x79,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x61,0x63, +0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x31,0x10,0x79,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x31,0x0e,0x79,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x35,0x2e,0x63,0x76,0x31,0x31,0x0b,0x79,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31, +0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x37,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x32,0x33,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x39,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x62,0x72,0x65, +0x76,0x65,0x2e,0x63,0x76,0x31,0x32,0x10,0x75,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x76,0x31,0x32,0x0e,0x75,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x35,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x76,0x31,0x32, +0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x37,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x68,0x6f,0x72,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x39,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x46,0x31,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x42,0x2e,0x63,0x76,0x31,0x32,0x0c, +0x75,0x6e,0x69,0x31,0x45,0x45,0x44,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6e,0x69,0x31,0x45,0x45,0x46,0x2e,0x63,0x76,0x31,0x32,0x12,0x75,0x68,0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x76,0x31,0x32,0x0c,0x75,0x6f,0x67,0x6f,0x6e,0x65, +0x6b,0x2e,0x63,0x76,0x31,0x32,0x0a,0x75,0x72,0x69,0x6e,0x67,0x2e,0x63,0x76,0x31,0x32,0x0b,0x75,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x76,0x31,0x32,0x06,0x66,0x2e,0x63,0x76,0x31,0x37,0x0b,0x66,0x2e,0x63,0x76,0x30,0x39,0x2e,0x73,0x73,0x32,0x30,0x06,0x66,0x2e,0x73,0x73,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x30,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x31,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x43,0x07, +0x75,0x6e,0x69,0x30,0x34,0x31,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x31,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x07, +0x75,0x6e,0x69,0x30,0x34,0x32,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x43,0x07, +0x75,0x6e,0x69,0x30,0x34,0x32,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x36,0x07, +0x75,0x6e,0x69,0x30,0x34,0x30,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x32,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x07, +0x75,0x6e,0x69,0x30,0x34,0x41,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x45,0x07, +0x75,0x6e,0x69,0x30,0x34,0x45,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x31,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30, +0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x30,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x32,0x31,0x2e,0x63,0x76,0x39,0x39,0x07,0x75,0x6e,0x69,0x30,0x34, +0x33,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x35,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x42,0x07,0x75,0x6e,0x69,0x30,0x34, +0x33,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x44,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x33,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x30,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x46,0x07,0x75,0x6e,0x69,0x30,0x34, +0x34,0x43,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x41,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x34,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, +0x35,0x36,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x45,0x07,0x75,0x6e,0x69,0x30,0x34,0x34,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x35,0x32,0x07,0x75,0x6e,0x69,0x30,0x34,0x39,0x33,0x07,0x75,0x6e,0x69,0x30,0x34, +0x39,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x33,0x07,0x75,0x6e,0x69,0x30,0x34,0x41,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x31,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x42,0x42,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x44,0x44,0x07,0x75,0x6e,0x69,0x30,0x34, +0x44,0x46,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x35,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x37,0x07,0x75,0x6e,0x69,0x30,0x34,0x45,0x39,0x07,0x75,0x6e,0x69,0x30,0x34,0x46,0x35,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x38,0x2e,0x63,0x76,0x30,0x34,0x0c,0x75,0x6e,0x69,0x30,0x34,0x33,0x36,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69, +0x30,0x34,0x33,0x41,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x43,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x39,0x42,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x34,0x34,0x33,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e,0x69,0x30,0x34,0x35,0x45,0x2e,0x63,0x76,0x31,0x31,0x0c,0x75,0x6e, +0x69,0x30,0x34,0x34,0x31,0x2e,0x63,0x76,0x39,0x39,0x05,0x41,0x6c,0x70,0x68,0x61,0x04,0x42,0x65,0x74,0x61,0x05,0x47,0x61,0x6d,0x6d,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x39,0x34,0x07,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x5a,0x65,0x74,0x61,0x03,0x45,0x74,0x61,0x05,0x54,0x68,0x65,0x74,0x61,0x04,0x49,0x6f,0x74,0x61,0x05, +0x4b,0x61,0x70,0x70,0x61,0x06,0x4c,0x61,0x6d,0x62,0x64,0x61,0x02,0x4d,0x75,0x02,0x4e,0x75,0x02,0x58,0x69,0x07,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x02,0x50,0x69,0x03,0x52,0x68,0x6f,0x05,0x53,0x69,0x67,0x6d,0x61,0x03,0x54,0x61,0x75,0x07,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x50,0x68,0x69,0x03,0x43,0x68,0x69,0x03,0x50, +0x73,0x69,0x07,0x75,0x6e,0x69,0x30,0x33,0x41,0x39,0x0a,0x41,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x45,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x45,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x09,0x49,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x4f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x74,0x6f,0x6e, +0x6f,0x73,0x0c,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x4f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x49,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x0f,0x55,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x0a, +0x4b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0c,0x75,0x6e,0x69,0x30,0x33,0x43,0x46,0x2e,0x63,0x76,0x30,0x38,0x05,0x61,0x6c,0x70,0x68,0x61,0x04,0x62,0x65,0x74,0x61,0x05,0x67,0x61,0x6d,0x6d,0x61,0x05,0x64,0x65,0x6c,0x74,0x61,0x07,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x04,0x7a,0x65,0x74,0x61,0x03,0x65,0x74,0x61,0x05, +0x74,0x68,0x65,0x74,0x61,0x04,0x69,0x6f,0x74,0x61,0x05,0x6b,0x61,0x70,0x70,0x61,0x06,0x6c,0x61,0x6d,0x62,0x64,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x42,0x43,0x02,0x6e,0x75,0x02,0x78,0x69,0x07,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e,0x03,0x72,0x68,0x6f,0x07,0x75,0x6e,0x69,0x30,0x33,0x43,0x32,0x05,0x73,0x69,0x67,0x6d,0x61,0x03, +0x74,0x61,0x75,0x07,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x03,0x70,0x68,0x69,0x03,0x63,0x68,0x69,0x03,0x70,0x73,0x69,0x05,0x6f,0x6d,0x65,0x67,0x61,0x09,0x69,0x6f,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x11,0x69,0x6f,0x74,0x61,0x64,0x69,0x65,0x72,0x65,0x73,0x69, +0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x0f,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x14,0x75,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x6f,0x6d,0x69,0x63,0x72,0x6f,0x6e, +0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x6f,0x6d,0x65,0x67,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x61,0x6c,0x70,0x68,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x0c,0x65,0x70,0x73,0x69,0x6c,0x6f,0x6e,0x74,0x6f,0x6e,0x6f,0x73,0x08,0x65,0x74,0x61,0x74,0x6f,0x6e,0x6f,0x73,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x44, +0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x44,0x36,0x0a,0x6b,0x61,0x70,0x70,0x61,0x2e,0x63,0x76,0x30,0x38,0x0a,0x67,0x61,0x6d,0x6d,0x61,0x2e,0x63,0x76,0x31,0x31,0x0b,0x6c,0x61,0x6d,0x62,0x64,0x61,0x2e,0x63,0x76,0x31,0x31,0x06,0x75,0x31,0x36,0x39,0x31,0x30,0x06,0x75,0x31,0x44,0x35,0x33,0x38,0x06,0x75,0x31,0x44,0x35,0x33,0x39, +0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x32,0x06,0x75,0x31,0x44,0x35,0x33,0x42,0x06,0x75,0x31,0x44,0x35,0x33,0x43,0x06,0x75,0x31,0x44,0x35,0x33,0x44,0x06,0x75,0x31,0x44,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x30,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x30,0x06,0x75,0x31,0x44,0x35,0x34,0x31,0x06,0x75,0x31,0x44,0x35,0x34, +0x32,0x06,0x75,0x31,0x44,0x35,0x34,0x33,0x06,0x75,0x31,0x44,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x35,0x06,0x75,0x31,0x44,0x35,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x41,0x06,0x75,0x31, +0x44,0x35,0x34,0x42,0x06,0x75,0x31,0x44,0x35,0x34,0x43,0x06,0x75,0x31,0x44,0x35,0x34,0x44,0x06,0x75,0x31,0x44,0x35,0x34,0x45,0x06,0x75,0x31,0x44,0x35,0x34,0x46,0x06,0x75,0x31,0x44,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x32,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x32,0x06,0x75,0x31,0x44,0x35,0x35,0x33,0x06,0x75,0x31, +0x44,0x35,0x35,0x34,0x06,0x75,0x31,0x44,0x35,0x35,0x35,0x06,0x75,0x31,0x44,0x35,0x35,0x36,0x06,0x75,0x31,0x44,0x35,0x35,0x37,0x06,0x75,0x31,0x44,0x35,0x35,0x38,0x06,0x75,0x31,0x44,0x35,0x35,0x39,0x06,0x75,0x31,0x44,0x35,0x35,0x41,0x06,0x75,0x31,0x44,0x35,0x35,0x42,0x06,0x75,0x31,0x44,0x35,0x35,0x43,0x06,0x75,0x31,0x44, +0x35,0x35,0x44,0x06,0x75,0x31,0x44,0x35,0x35,0x45,0x06,0x75,0x31,0x44,0x35,0x35,0x46,0x06,0x75,0x31,0x44,0x35,0x36,0x30,0x06,0x75,0x31,0x44,0x35,0x36,0x31,0x06,0x75,0x31,0x44,0x35,0x36,0x32,0x06,0x75,0x31,0x44,0x35,0x36,0x33,0x06,0x75,0x31,0x44,0x35,0x36,0x34,0x06,0x75,0x31,0x44,0x35,0x36,0x35,0x06,0x75,0x31,0x44,0x35, +0x36,0x36,0x06,0x75,0x31,0x44,0x35,0x36,0x37,0x06,0x75,0x31,0x44,0x35,0x36,0x38,0x06,0x75,0x31,0x44,0x35,0x36,0x39,0x06,0x75,0x31,0x44,0x35,0x36,0x41,0x06,0x75,0x31,0x44,0x35,0x36,0x42,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x7a,0x65,0x72,0x6f,0x08,0x74,0x77,0x6f,0x2e,0x63,0x76,0x31,0x38,0x08,0x73,0x69,0x78,0x2e,0x63,0x76,0x31, +0x38,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x63,0x76,0x31,0x38,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x63,0x76,0x31,0x39,0x09,0x66,0x69,0x76,0x65,0x2e,0x63,0x76,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x33, +0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x6f,0x6e,0x65,0x2e,0x64, +0x6e,0x6f,0x6d,0x08,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x6f,0x75,0x72,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x08,0x73,0x69,0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x64,0x6e,0x6f,0x6d,0x0a, +0x65,0x69,0x67,0x68,0x74,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x09,0x7a,0x65,0x72,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x6f,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x74,0x68,0x72,0x65,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x6f,0x75,0x72, +0x2e,0x6e,0x75,0x6d,0x72,0x09,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x08,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x73,0x65,0x76,0x65,0x6e,0x2e,0x6e,0x75,0x6d,0x72,0x0a,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x09,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x30, +0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x38, +0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x39,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69, +0x78,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x38,0x0d,0x74,0x77,0x6f,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0d,0x73,0x69,0x78,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x38,0x0e,0x6e,0x69,0x6e,0x65,0x2e,0x6e,0x75,0x6d,0x72, +0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x30,0x30,0x42,0x32,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x36,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x39,0x2e,0x63,0x76,0x31,0x38,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x38,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e, +0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76,0x31,0x39,0x0f,0x65,0x69,0x67,0x68,0x74,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x38,0x2e,0x63,0x76,0x31,0x39,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x35,0x2e,0x63,0x76,0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x63,0x76, +0x32,0x30,0x0e,0x66,0x69,0x76,0x65,0x2e,0x6e,0x75,0x6d,0x72,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x35,0x2e,0x63,0x76,0x32,0x30,0x0c,0x75,0x6e,0x69,0x32,0x30,0x38,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e,0x64,0x6e,0x6f,0x6d,0x2e,0x7a,0x65,0x72,0x6f,0x0e,0x7a,0x65,0x72,0x6f,0x2e, +0x6e,0x75,0x6d,0x72,0x2e,0x7a,0x65,0x72,0x6f,0x0c,0x75,0x6e,0x69,0x32,0x30,0x37,0x30,0x2e,0x7a,0x65,0x72,0x6f,0x07,0x75,0x6e,0x69,0x30,0x41,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x30,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x36,0x09,0x65,0x78,0x63,0x6c,0x61,0x6d,0x64,0x62,0x6c, +0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x44,0x0e,0x6f,0x6e,0x65,0x64,0x6f,0x74,0x65,0x6e,0x6c,0x65,0x61,0x64,0x65,0x72,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x33,0x46,0x0a,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x1b,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65, +0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x2e,0x63,0x61,0x73,0x65,0x16,0x70,0x65,0x72,0x69,0x6f,0x64,0x63,0x65,0x6e,0x74,0x65,0x72,0x65,0x64,0x2e,0x6c,0x6f,0x63,0x6c,0x43,0x41,0x54,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x42,0x07,0x75,0x6e,0x69,0x46,0x46,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x30,0x07,0x75,0x6e, +0x69,0x32,0x37,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x37,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x42,0x07,0x75,0x6e, +0x69,0x32,0x37,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x39,0x38,0x38,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x30,0x0d,0x71,0x75,0x6f,0x74,0x65,0x72,0x65,0x76,0x65,0x72,0x73,0x65,0x64,0x07,0x75,0x6e,0x69,0x32,0x30,0x31,0x46,0x07,0x75,0x6e,0x69,0x32, +0x30,0x33,0x34,0x12,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x19,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x28,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62, +0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x13,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73, +0x2e,0x6c,0x69,0x67,0x61,0x15,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61, +0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x26,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x23,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63, +0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61, +0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65, +0x66,0x74,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x19,0x70,0x65,0x72, +0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x17,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x14,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c, +0x69,0x67,0x61,0x11,0x70,0x65,0x72,0x69,0x6f,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x63,0x6f, +0x6c,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x10,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x12,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x18,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c, +0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x22,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x73,0x65,0x6d,0x69,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c, +0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x11,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65, +0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x70,0x65,0x72,0x69,0x6f,0x64,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x71,0x75,0x65,0x73,0x74,0x69,0x6f, +0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x13,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c, +0x69,0x67,0x61,0x1f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x15,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x61,0x73,0x74,0x65,0x72,0x69, +0x73,0x6b,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x65,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67, +0x61,0x1b,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65, +0x78,0x63,0x6c,0x61,0x6d,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x71,0x75,0x65,0x73,0x74,0x69,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x25,0x6e, +0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x30,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65, +0x72,0x73,0x69,0x67,0x6e,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72, +0x65,0x2e,0x6c,0x69,0x67,0x61,0x24,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x70,0x61,0x72,0x65,0x6e,0x6c,0x65,0x66,0x74,0x2e,0x6c,0x69,0x67,0x61,0x13,0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1c, +0x73,0x6c,0x61,0x73,0x68,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e, +0x6c,0x69,0x67,0x61,0x12,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x16,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16, +0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x73,0x6c,0x61,0x73,0x68,0x5f,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x63,0x6b,0x73,0x6c,0x61,0x73,0x68,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61, +0x1e,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x62,0x61,0x72,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x78,0x63,0x6c,0x61, +0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1c,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x41,0x07,0x75, +0x6e,0x69,0x32,0x37,0x45,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x42,0x07,0x75,0x6e,0x69,0x32,0x37,0x45,0x37,0x09,0x61,0x6e,0x6f,0x74,0x65,0x6c,0x65,0x69,0x61,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x45,0x06,0x45,0x4d,0x71,0x75,0x61,0x64,0x0e,0x5a,0x45,0x52,0x4f,0x57,0x49,0x44,0x54, +0x48,0x53,0x50,0x41,0x43,0x45,0x07,0x75,0x6e,0x69,0x30,0x30,0x41,0x30,0x02,0x43,0x52,0x07,0x75,0x6e,0x69,0x46,0x45,0x46,0x46,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x46,0x04,0x64,0x6f,0x6e,0x67,0x04,0x45,0x75,0x72,0x6f,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x30,0x42,0x44,0x07,0x75,0x6e,0x69,0x32, +0x30,0x41,0x45,0x09,0x63,0x65,0x6e,0x74,0x2e,0x63,0x76,0x31,0x34,0x0b,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x63,0x76,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x31, +0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x31,0x09,0x63,0x6f,0x6e,0x67,0x72,0x75,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x34,0x07,0x75,0x6e,0x69,0x32, +0x32,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x44,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x31,0x07,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x41,0x07,0x75,0x6e,0x69,0x32, +0x32,0x45,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x43,0x0b,0x65,0x71,0x75,0x69,0x76,0x61,0x6c,0x65,0x6e,0x63,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x39,0x0b,0x65,0x78,0x69,0x73,0x74,0x65,0x6e,0x74,0x69,0x61,0x6c,0x08,0x67,0x72,0x61,0x64, +0x69,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x39,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x37,0x44,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x37,0x07,0x75,0x6e,0x69, +0x32,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x42,0x07,0x75,0x6e,0x69, +0x32,0x32,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x41,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x32,0x07,0x75,0x6e,0x69, +0x32,0x32,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x38,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x43,0x0a,0x6e,0x6f,0x74, +0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x45,0x32,0x09, +0x6e,0x6f,0x74,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x35,0x08,0x65,0x6d,0x70,0x74,0x79,0x73,0x65,0x74,0x0a,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x61,0x6e,0x64,0x09,0x6c,0x6f,0x67,0x69,0x63,0x61,0x6c,0x6f,0x72,0x0c,0x69,0x6e,0x74,0x65,0x72,0x73,0x65,0x63,0x74,0x69,0x6f,0x6e,0x05,0x75,0x6e,0x69, +0x6f,0x6e,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x36,0x07,0x75,0x6e,0x69,0x30,0x30,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x33, +0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x45,0x07,0x75,0x6e,0x69,0x46,0x45,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x30,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x32, +0x33,0x36,0x0c,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x62,0x73,0x65,0x74,0x0e,0x72,0x65,0x66,0x6c,0x65,0x78,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x39,0x31,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x42,0x07,0x75, +0x6e,0x69,0x32,0x32,0x43,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x32,0x31,0x38,0x07,0x73,0x69,0x6d,0x69,0x6c,0x61,0x72,0x07,0x75, +0x6e,0x69,0x32,0x32,0x39,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x31,0x07,0x75, +0x6e,0x69,0x32,0x32,0x39,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x32,0x07,0x75,0x6e,0x69,0x32,0x32,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x32,0x36,0x33,0x0c,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x62,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x37,0x42,0x08,0x73,0x75,0x63,0x68,0x74,0x68,0x61,0x74,0x07,0x75,0x6e,0x69, +0x32,0x31,0x34,0x30,0x0e,0x70,0x72,0x6f,0x70,0x65,0x72,0x73,0x75,0x70,0x65,0x72,0x73,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x34,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x32,0x30,0x34,0x09,0x74,0x68,0x65,0x72,0x65,0x66,0x6f,0x72,0x65,0x07,0x75,0x6e,0x69,0x32,0x32,0x34,0x42,0x09,0x75,0x6e, +0x69,0x76,0x65,0x72,0x73,0x61,0x6c,0x07,0x75,0x6e,0x69,0x32,0x32,0x46,0x30,0x07,0x75,0x6e,0x69,0x32,0x32,0x41,0x35,0x07,0x75,0x6e,0x69,0x32,0x32,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x38,0x07, +0x75,0x6e,0x69,0x32,0x32,0x39,0x36,0x0e,0x63,0x69,0x72,0x63,0x6c,0x65,0x6d,0x75,0x6c,0x74,0x69,0x70,0x6c,0x79,0x07,0x75,0x6e,0x69,0x32,0x32,0x39,0x39,0x0a,0x63,0x69,0x72,0x63,0x6c,0x65,0x70,0x6c,0x75,0x73,0x07,0x61,0x72,0x72,0x6f,0x77,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x37,0x0a,0x61,0x72,0x72,0x6f,0x77,0x72, +0x69,0x67,0x68,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x38,0x09,0x61,0x72,0x72,0x6f,0x77,0x64,0x6f,0x77,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x39,0x09,0x61,0x72,0x72,0x6f,0x77,0x6c,0x65,0x66,0x74,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x36,0x09,0x61,0x72,0x72,0x6f,0x77,0x62,0x6f,0x74,0x68,0x09,0x61,0x72,0x72,0x6f,0x77, +0x75,0x70,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x44,0x07,0x75,0x6e,0x69,0x32,0x31,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x32,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x35,0x07,0x75,0x6e,0x69, +0x32,0x31,0x41,0x36,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x39,0x07,0x75,0x6e,0x69,0x32,0x31,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x31,0x42,0x45,0x07,0x75,0x6e,0x69,0x32,0x31,0x43,0x39,0x0a,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x75,0x70,0x0d, +0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x72,0x69,0x67,0x68,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x64,0x6f,0x77,0x6e,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x6c,0x65,0x66,0x74,0x0c,0x61,0x72,0x72,0x6f,0x77,0x64,0x62,0x6c,0x62,0x6f,0x74,0x68,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x42,0x07,0x75,0x6e,0x69, +0x32,0x31,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x37,0x39,0x45,0x07,0x75,0x6e,0x69, +0x32,0x37,0x46,0x35,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x36,0x07,0x75,0x6e,0x69,0x32,0x37,0x46,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x33,0x07,0x64,0x6e,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x35,0x07,0x75,0x6e,0x69, +0x32,0x35,0x38,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x37,0x05,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x70,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x44,0x07,0x6c,0x66,0x62,0x6c,0x6f, +0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x38,0x39,0x07,0x72,0x74,0x62,0x6c,0x6f,0x63,0x6b,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x37,0x07,0x75,0x6e,0x69,0x32,0x35, +0x39,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x39,0x46,0x07,0x6c,0x74,0x73,0x68,0x61, +0x64,0x65,0x05,0x73,0x68,0x61,0x64,0x65,0x07,0x64,0x6b,0x73,0x68,0x61,0x64,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x46,0x06,0x63,0x69,0x72,0x63,0x6c,0x65,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x44,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x46,0x36,0x07, +0x75,0x6e,0x69,0x32,0x35,0x43,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x45,0x0a,0x6f,0x70,0x65,0x6e,0x62,0x75,0x6c,0x6c,0x65,0x74,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x38,0x09,0x66,0x69,0x6c,0x6c,0x65, +0x64,0x62,0x6f,0x78,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x41,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x45,0x41,0x07,0x75,0x6e,0x69, +0x32,0x35,0x45,0x42,0x07,0x74,0x72,0x69,0x61,0x67,0x75,0x70,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x36,0x07,0x74,0x72,0x69,0x61,0x67,0x64,0x6e,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x44,0x07,0x75,0x6e,0x69, +0x32,0x35,0x43,0x31,0x07,0x74,0x72,0x69,0x61,0x67,0x72,0x74,0x07,0x74,0x72,0x69,0x61,0x67,0x6c,0x66,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x45,0x07,0x75,0x6e,0x69, +0x32,0x35,0x43,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x42,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x43,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x30,0x07,0x75,0x6e,0x69, +0x32,0x35,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x30,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x37,0x07,0x75,0x6e,0x69, +0x32,0x35,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x42,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x41,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x31,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x34,0x07,0x75,0x6e,0x69, +0x32,0x35,0x37,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x37,0x44,0x07,0x75,0x6e,0x69, +0x32,0x35,0x33,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x30,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x36,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x38,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x36,0x07,0x75,0x6e,0x69, +0x32,0x35,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x42,0x07,0x75,0x6e,0x69, +0x32,0x35,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x35,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x35,0x32,0x30,0x07,0x75,0x6e,0x69,0x32,0x35,0x33,0x46,0x07,0x75,0x6e,0x69, +0x32,0x35,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x35,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x41,0x07,0x75,0x6e,0x69,0x32,0x35,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x35,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x36,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x41,0x07,0x75,0x6e,0x69, +0x32,0x33,0x36,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x36,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x34,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x39,0x35,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x43,0x07,0x75,0x6e,0x69, +0x32,0x33,0x36,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x39,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x43,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x38,0x07,0x75,0x6e,0x69, +0x32,0x33,0x34,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x31,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x30,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x33,0x46,0x07,0x75,0x6e,0x69, +0x32,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x37,0x32,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x35,0x35,0x07,0x75,0x6e,0x69, +0x32,0x33,0x35,0x31,0x07,0x75,0x6e,0x69,0x32,0x33,0x34,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x36,0x43,0x07,0x75,0x6e,0x69,0x32,0x36,0x38,0x37,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x30,0x07,0x75,0x6e,0x69,0x32,0x36,0x41,0x31,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x37,0x31,0x35,0x07,0x75,0x6e,0x69, +0x32,0x37,0x31,0x37,0x07,0x75,0x6e,0x69,0x32,0x37,0x33,0x36,0x12,0x61,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x62,0x61,0x63,0x6b,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x06,0x6d,0x69,0x6e,0x75,0x74,0x65,0x06,0x73,0x65,0x63,0x6f,0x6e,0x64,0x07,0x75, +0x6e,0x69,0x32,0x31,0x31,0x33,0x07,0x75,0x6e,0x69,0x32,0x31,0x31,0x36,0x09,0x65,0x73,0x74,0x69,0x6d,0x61,0x74,0x65,0x64,0x0b,0x62,0x65,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x34,0x32,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x42,0x0d,0x63,0x61,0x6e,0x63,0x65,0x6c,0x63,0x6f,0x6e,0x74,0x72, +0x6f,0x6c,0x15,0x63,0x61,0x72,0x72,0x69,0x61,0x67,0x65,0x52,0x65,0x74,0x75,0x72,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x33,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x46,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x43, +0x15,0x64,0x61,0x74,0x61,0x4c,0x69,0x6e,0x6b,0x45,0x73,0x63,0x61,0x70,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x64,0x65,0x6c,0x65,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x46,0x6f,0x75,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65, +0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x4f,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x68,0x72,0x65,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x17,0x64,0x65,0x76,0x69,0x63,0x65,0x43,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x54,0x77,0x6f, +0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x41,0x12,0x65,0x6e,0x64,0x4f,0x66,0x4d,0x65,0x64,0x69,0x75,0x6d,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x10,0x65,0x6e,0x64,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x18,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69, +0x73,0x73,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x1d,0x65,0x6e,0x64,0x4f,0x66,0x54,0x72,0x61,0x6e,0x73,0x6d,0x69,0x73,0x73,0x69,0x6f,0x6e,0x42,0x6c,0x6f,0x63,0x6b,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x65,0x6e,0x71,0x75,0x69,0x72,0x79,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0d,0x65,0x73,0x63,0x61,0x70,0x65, +0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x14,0x66,0x69,0x6c,0x65,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x66,0x6f,0x72,0x6d,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x67,0x72,0x6f,0x75,0x70,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72, +0x6f,0x6c,0x1b,0x68,0x6f,0x72,0x69,0x7a,0x6f,0x6e,0x74,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74,0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33,0x38,0x39,0x05,0x68,0x6f,0x75,0x73,0x65,0x07,0x75,0x6e,0x69,0x32,0x31,0x45,0x41,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x42,0x07,0x75,0x6e,0x69, +0x32,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x46,0x07,0x75,0x6e,0x69,0x32,0x31,0x44,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x31,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x43,0x45,0x0f,0x6c,0x69,0x6e,0x65,0x46,0x65,0x65,0x64,0x63,0x6f,0x6e, +0x74,0x72,0x6f,0x6c,0x1a,0x6e,0x65,0x67,0x61,0x74,0x69,0x76,0x65,0x41,0x63,0x6b,0x6e,0x6f,0x77,0x6c,0x65,0x64,0x67,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x6e,0x65,0x77,0x6c,0x69,0x6e,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0b,0x6e,0x75,0x6c,0x6c,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x33, +0x46,0x42,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x43,0x07,0x75,0x6e,0x69,0x32,0x42,0x35,0x38,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x44,0x07,0x75,0x6e,0x69,0x32,0x33,0x46,0x45,0x07,0x75,0x6e,0x69,0x32,0x33,0x30,0x35,0x16,0x72,0x65,0x63,0x6f,0x72,0x64,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f, +0x6c,0x0b,0x72,0x65,0x70,0x6c,0x61,0x63,0x65,0x6d,0x65,0x6e,0x74,0x0e,0x73,0x68,0x69,0x66,0x74,0x49,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0f,0x73,0x68,0x69,0x66,0x74,0x4f,0x75,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0c,0x73,0x70,0x61,0x63,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x15,0x73,0x74,0x61,0x72,0x74,0x4f, +0x66,0x48,0x65,0x61,0x64,0x69,0x6e,0x67,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x12,0x73,0x74,0x61,0x72,0x74,0x4f,0x66,0x54,0x65,0x78,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x11,0x73,0x75,0x62,0x73,0x74,0x69,0x74,0x75,0x74,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x16,0x73,0x79,0x6e,0x63,0x68,0x72,0x6f,0x6e,0x6f,0x75,0x73, +0x49,0x64,0x6c,0x65,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x42,0x07,0x75,0x6e,0x69,0x32,0x31,0x38,0x41,0x14,0x75,0x6e,0x69,0x74,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x19,0x76,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x54,0x61,0x62,0x75,0x6c,0x61,0x74, +0x69,0x6f,0x6e,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x0e,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x63,0x76,0x31,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x33,0x07,0x75,0x6e,0x69,0x30,0x32,0x46,0x37,0x18,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76, +0x31,0x34,0x15,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x34,0x1d,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64, +0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x27,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x19,0x61,0x6d,0x70, +0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x63,0x76,0x31,0x35,0x12,0x61,0x74,0x5f,0x75,0x6e,0x64,0x65,0x72,0x73,0x63,0x6f,0x72,0x65,0x2e,0x6c,0x69,0x67,0x61,0x18,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69, +0x67,0x61,0x22,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x2e,0x6c,0x69,0x67,0x61,0x14,0x61,0x6d,0x70,0x65,0x72,0x73,0x61,0x6e,0x64,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x62,0x61,0x72,0x5f,0x68, +0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x65,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x15,0x62,0x61,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b, +0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x0c,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x62, +0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x12,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x14,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e, +0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x62,0x61,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x13,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72, +0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x13,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10, +0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x17,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x10, +0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x18,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61, +0x12,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c, +0x69,0x67,0x61,0x16,0x65,0x71,0x75,0x61,0x6c,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72, +0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x19,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0x72,0x69,0x67,0x68,0x74,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f, +0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1b,0x67,0x72,0x65,0x61,0x74, +0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1c,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65, +0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70, +0x68,0x65,0x6e,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73, +0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x63,0x6f,0x6c,0x6f,0x6e,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x1e,0x6c,0x65,0x73,0x73,0x5f,0x65,0x78,0x63,0x6c,0x61,0x6d,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12, +0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x74,0x65,0x72,0x69,0x73,0x6b,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0d,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73, +0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x62,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x10,0x6c,0x65,0x73,0x73,0x5f,0x64, +0x6f,0x6c,0x6c,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x18,0x6c,0x65,0x73,0x73,0x5f,0x64,0x6f,0x6c,0x6c,0x61,0x72,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x22,0x6c,0x65,0x73,0x73,0x5f,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0x69,0x67,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x5f,0x68,0x79,0x70,0x68,0x65, +0x6e,0x2e,0x6c,0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x2e,0x6c,0x69,0x67,0x61,0x16,0x6c,0x65,0x73,0x73,0x5f,0x70,0x6c,0x75,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65,0x73, +0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x62,0x61,0x72,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x1d,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e, +0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x11,0x6c,0x65,0x73,0x73,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c, +0x69,0x67,0x61,0x0e,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x15,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x13,0x6c,0x65, +0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x2e,0x6c,0x69,0x67,0x61,0x19,0x6c,0x65,0x73,0x73,0x5f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x14,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61, +0x1c,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1f,0x6c,0x65,0x73,0x73,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69,0x67,0x61,0x0f,0x6c,0x65, +0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x2e,0x6c,0x69,0x67,0x61,0x17,0x6c,0x65,0x73,0x73,0x5f,0x73,0x6c,0x61,0x73,0x68,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x68,0x79,0x70,0x68,0x65,0x6e,0x2e,0x6c,0x69,0x67,0x61,0x12,0x61,0x73,0x63, +0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x74,0x2e,0x6c,0x69,0x67,0x61,0x17,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x1a,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x2e,0x6c,0x69, +0x67,0x61,0x22,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x61,0x73,0x63,0x69,0x69,0x74,0x69,0x6c,0x64,0x65,0x5f,0x67,0x72,0x65,0x61,0x74,0x65,0x72,0x2e,0x6c,0x69,0x67,0x61,0x16,0x61,0x73,0x63,0x69,0x69,0x63,0x69,0x72,0x63,0x75,0x6d,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x15,0x65,0x71,0x75, +0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x1b,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x5f,0x65,0x71,0x75,0x61,0x6c,0x2e,0x6c,0x69,0x67,0x61,0x2e,0x73,0x73,0x31,0x39,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x44,0x07,0x75,0x6e,0x69,0x32,0x36,0x36,0x46,0x07,0x75, +0x6e,0x69,0x30,0x33,0x37,0x34,0x07,0x75,0x6e,0x69,0x30,0x33,0x37,0x35,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x43,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x41,0x07,0x75,0x6e,0x69,0x30,0x32,0x43,0x39,0x07,0x75,0x6e,0x69,0x30,0x32,0x42,0x39,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x09,0x67, +0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x09,0x61,0x63,0x75,0x74,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x61,0x6c,0x74,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x07,0x75, +0x6e,0x69,0x30,0x33,0x30,0x41,0x09,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x0d,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x07,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x0c,0x64, +0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x35,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x07,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x36,0x07,0x75,0x6e,0x69,0x30,0x33,0x33,0x37,0x07,0x75,0x6e,0x69,0x30, +0x33,0x33,0x38,0x0b,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x61,0x6c,0x74,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x37,0x2e,0x63,0x61,0x73,0x65,0x0e,0x67,0x72,0x61,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0e,0x61,0x63,0x75,0x74,0x65,0x63,0x6f, +0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x42,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x43,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30, +0x33,0x30,0x41,0x2e,0x63,0x61,0x73,0x65,0x0e,0x74,0x69,0x6c,0x64,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x34,0x2e,0x63,0x61,0x73,0x65,0x12,0x68,0x6f,0x6f,0x6b,0x61,0x62,0x6f,0x76,0x65,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x30,0x46,0x2e, +0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x31,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x32,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x31,0x42,0x2e,0x63,0x61,0x73,0x65,0x11,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x63,0x6f,0x6d,0x62,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e, +0x69,0x30,0x33,0x32,0x34,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x36,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x37,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x38,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75,0x6e,0x69,0x30,0x33,0x32,0x45,0x2e,0x63,0x61,0x73,0x65,0x0c,0x75, +0x6e,0x69,0x30,0x33,0x33,0x31,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x2e,0x63,0x61,0x73,0x65,0x0e,0x64,0x6f,0x74,0x61,0x63,0x63,0x65,0x6e,0x74,0x2e,0x63,0x61,0x73,0x65,0x0a,0x67,0x72,0x61,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x0a,0x61,0x63,0x75,0x74,0x65,0x2e,0x63,0x61,0x73,0x65,0x11,0x68, +0x75,0x6e,0x67,0x61,0x72,0x75,0x6d,0x6c,0x61,0x75,0x74,0x2e,0x63,0x61,0x73,0x65,0x0f,0x63,0x69,0x72,0x63,0x75,0x6d,0x66,0x6c,0x65,0x78,0x2e,0x63,0x61,0x73,0x65,0x0a,0x63,0x61,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x0a,0x62,0x72,0x65,0x76,0x65,0x2e,0x63,0x61,0x73,0x65,0x09,0x72,0x69,0x6e,0x67,0x2e,0x63,0x61,0x73,0x65, +0x0a,0x74,0x69,0x6c,0x64,0x65,0x2e,0x63,0x61,0x73,0x65,0x0b,0x6d,0x61,0x63,0x72,0x6f,0x6e,0x2e,0x63,0x61,0x73,0x65,0x05,0x74,0x6f,0x6e,0x6f,0x73,0x0a,0x74,0x6f,0x6e,0x6f,0x73,0x2e,0x63,0x61,0x73,0x65,0x0d,0x64,0x69,0x65,0x72,0x65,0x73,0x69,0x73,0x74,0x6f,0x6e,0x6f,0x73,0x0b,0x62,0x72,0x65,0x76,0x65,0x63,0x6f,0x6d,0x62, +0x63,0x79,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x0b,0x75, +0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x30,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x0b,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x30,0x2e, +0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x36,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x31,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30, +0x33,0x30,0x30,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x39,0x2e,0x63,0x61,0x73,0x65,0x10,0x75,0x6e,0x69,0x30,0x33,0x30,0x32,0x30,0x33,0x30,0x33,0x2e,0x63,0x61,0x73,0x65,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x41,0x31,0x07,0x75,0x6e,0x69,0x45,0x30, +0x41,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x30,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x31,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x32,0x07,0x75,0x6e,0x69,0x45,0x30,0x42,0x33,0x0e,0x69,0x6f,0x67,0x6f,0x6e,0x65,0x6b,0x64,0x6f,0x74,0x6c,0x65,0x73,0x73,0x10,0x69,0x64,0x6f,0x74,0x62,0x65,0x6c,0x6f,0x77,0x64,0x6f,0x74,0x6c,0x65, +0x73,0x73,0x04,0x4e,0x55,0x4c,0x4c,0x03,0x53,0x50,0x43,0x00,0x00,0x01,0x00,0x01,0xff,0xff,0x00,0x0f,0x00,0x01,0x00,0x02,0x00,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xe0,0x00,0x02,0x00,0x4d,0x00,0x01,0x00,0x5d,0x00,0x01,0x00,0x5f,0x00,0x78,0x00,0x01,0x00,0x7a,0x00,0x7a,0x00,0x01,0x00,0x7c,0x00,0x86,0x00,0x01,0x00,0x89, +0x00,0xdd,0x00,0x01,0x00,0xe1,0x00,0xf2,0x00,0x01,0x00,0xf4,0x00,0xfc,0x00,0x01,0x00,0xfe,0x01,0x14,0x00,0x01,0x01,0x16,0x01,0x1f,0x00,0x01,0x01,0x21,0x01,0x3b,0x00,0x01,0x01,0x3d,0x01,0x49,0x00,0x01,0x01,0x4c,0x01,0x7c,0x00,0x01,0x01,0x7e,0x01,0xc2,0x00,0x01,0x01,0xc4,0x01,0xc5,0x00,0x01,0x01,0xc8,0x01,0xc8,0x00,0x01, +0x01,0xca,0x01,0xcc,0x00,0x01,0x01,0xcf,0x01,0xd6,0x00,0x01,0x01,0xd8,0x01,0xda,0x00,0x01,0x01,0xdc,0x01,0xe0,0x00,0x01,0x01,0xe2,0x01,0xe3,0x00,0x01,0x01,0xe9,0x01,0xea,0x00,0x01,0x01,0xed,0x01,0xf2,0x00,0x01,0x01,0xf4,0x01,0xf5,0x00,0x01,0x01,0xf7,0x01,0xfd,0x00,0x01,0x01,0xff,0x02,0x02,0x00,0x01,0x02,0x04,0x02,0x04, +0x00,0x01,0x02,0x06,0x02,0x0a,0x00,0x01,0x02,0x0c,0x02,0x0c,0x00,0x01,0x02,0x0f,0x02,0x10,0x00,0x01,0x02,0x13,0x02,0x1a,0x00,0x01,0x02,0x1e,0x02,0x1e,0x00,0x01,0x02,0x20,0x02,0x24,0x00,0x01,0x02,0x26,0x02,0x27,0x00,0x01,0x02,0x2e,0x02,0x2e,0x00,0x01,0x02,0x31,0x02,0x36,0x00,0x01,0x02,0x38,0x02,0x39,0x00,0x01,0x02,0x3b, +0x02,0x3b,0x00,0x01,0x02,0x3d,0x02,0x3d,0x00,0x01,0x02,0x40,0x02,0x46,0x00,0x01,0x02,0x48,0x02,0x49,0x00,0x01,0x02,0x4b,0x02,0x4f,0x00,0x01,0x02,0x51,0x02,0x53,0x00,0x01,0x02,0x55,0x02,0x57,0x00,0x01,0x02,0x59,0x02,0x5a,0x00,0x01,0x02,0x5c,0x02,0x5d,0x00,0x01,0x02,0x5f,0x02,0x5f,0x00,0x01,0x02,0x61,0x02,0x61,0x00,0x01, +0x02,0x63,0x02,0x64,0x00,0x01,0x02,0x66,0x02,0x66,0x00,0x01,0x02,0x69,0x02,0x6e,0x00,0x01,0x02,0x70,0x02,0x75,0x00,0x01,0x02,0x79,0x02,0x79,0x00,0x01,0x02,0x7b,0x02,0x7b,0x00,0x01,0x02,0x7d,0x02,0x7e,0x00,0x01,0x02,0x81,0x02,0x81,0x00,0x01,0x02,0x83,0x02,0x83,0x00,0x01,0x02,0x89,0x02,0x89,0x00,0x01,0x02,0x8b,0x02,0x8b, +0x00,0x01,0x02,0x8e,0x02,0x94,0x00,0x01,0x02,0x96,0x02,0x99,0x00,0x01,0x02,0x9c,0x02,0x9c,0x00,0x01,0x02,0xb0,0x02,0xb0,0x00,0x01,0x02,0xcc,0x02,0xcc,0x00,0x01,0x03,0xc3,0x03,0xc3,0x00,0x01,0x03,0xc7,0x03,0xc7,0x00,0x01,0x03,0xcd,0x03,0xcf,0x00,0x01,0x05,0x7d,0x05,0x7e,0x00,0x01,0x05,0xaa,0x05,0xaa,0x00,0x01,0x05,0xc5, +0x05,0xc5,0x00,0x01,0x05,0xd0,0x05,0xd0,0x00,0x01,0x05,0xeb,0x05,0xeb,0x00,0x01,0x05,0xed,0x05,0xed,0x00,0x01,0x06,0x05,0x06,0x06,0x00,0x02,0x06,0x68,0x06,0x7f,0x00,0x03,0x06,0x8d,0x06,0xa4,0x00,0x03,0x06,0xb3,0x06,0xc3,0x00,0x03,0x06,0xcb,0x06,0xcc,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2a, +0x00,0x00,0x00,0x40,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3,0x00,0x1e,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x16,0x00,0x24,0x00,0x0a,0x00,0x05,0x00,0x2c,0x00,0x34,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,0x02,0x44,0x46,0x4c,0x54,0x00,0x1c,0x6c,0x61,0x74,0x6e,0x00,0x60,0x00,0x02,0x6d,0x61,0x72,0x6b,0x00,0x40,0x6d,0x6b,0x6d,0x6b,0x00,0x48,0x00,0x78,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x7e,0x00,0x04, +0x00,0x00,0x00,0x01,0x00,0x82,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x86,0x00,0x00,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x88,0x00,0x01,0x00,0x06,0x00,0x10,0x00,0x01,0x00,0x8a,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x34,0x00,0x08,0x41,0x5a,0x45,0x20,0x00,0x34, +0x43,0x41,0x54,0x20,0x00,0x34,0x43,0x52,0x54,0x20,0x00,0x34,0x4b,0x41,0x5a,0x20,0x00,0x34,0x4d,0x4f,0x4c,0x20,0x00,0x34,0x52,0x4f,0x4d,0x20,0x00,0x34,0x54,0x41,0x54,0x20,0x00,0x34,0x54,0x52,0x4b,0x20,0x00,0x34,0x00,0x00,0xff,0xff,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x42,0x01,0x66,0x00,0x01,0x00,0x54,0x02,0xca, +0x00,0x01,0x00,0x56,0x04,0xc6,0x00,0x05,0x03,0xc0,0x06,0x68,0x00,0x01,0x00,0x8e,0x00,0x8e,0x00,0x01,0x00,0xc4,0x00,0x76,0x00,0x01,0x00,0x54,0x00,0x9c,0x00,0x01,0x01,0xe8,0x00,0xe6,0x00,0x01,0x00,0x12,0x00,0x1c,0x00,0x01,0x00,0x24,0x00,0x0c,0x00,0x02,0x1d,0x1e,0x1d,0x24,0x00,0x01,0x00,0x03,0x06,0x6d,0x06,0x77,0x06,0x9d, +0x00,0x01,0x00,0x02,0x06,0x77,0x06,0x9d,0x00,0x03,0x00,0x00,0x1d,0x12,0x00,0x00,0x1d,0x18,0x00,0x00,0x1d,0x1e,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x7f,0x00,0x00,0x06,0x8d,0x06,0xa4,0x00,0x18,0x06,0xb3,0x06,0xc3,0x00,0x30,0x00,0x02,0x00,0x03,0x06,0x68,0x06,0x76,0x00,0x00,0x06,0x8e,0x06,0x9c,0x00,0x0f,0x06,0xb3,0x06,0xc3, +0x00,0x1e,0x00,0x0b,0x1c,0xf0,0x1c,0xea,0x1c,0xf6,0x1c,0xfc,0x1c,0xf6,0x1c,0xf0,0x1c,0xf0,0x1c,0xf6,0x1c,0xfc,0x1d,0x02,0x1d,0x08,0x00,0x01,0x00,0x0b,0x06,0x78,0x06,0x79,0x06,0x7a,0x06,0x7b,0x06,0x8d,0x06,0x9e,0x06,0x9f,0x06,0xa0,0x06,0xa1,0x06,0xa3,0x06,0xa4,0x00,0x02,0x00,0x04,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e, +0x06,0x76,0x00,0x05,0x06,0x8e,0x06,0x9c,0x00,0x0e,0x06,0xb4,0x06,0xc3,0x00,0x1d,0x00,0x0b,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc0,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x00,0x1c,0xc6,0x00,0x2d, +0x1c,0x9e,0x1c,0x9e,0x1c,0xa4,0x1c,0xaa,0x1c,0xb0,0x1c,0xb6,0x1c,0xb6,0x1c,0xb6,0x1c,0xbc,0x1c,0xc2,0x1c,0xc8,0x1c,0xce,0x1c,0xd4,0x1c,0xda,0x1c,0xfe,0x1c,0xe0,0x1c,0xe6,0x1c,0xec,0x1c,0xf2,0x1d,0x16,0x1d,0x16,0x1d,0x16,0x1c,0xf8,0x1c,0xfe,0x1d,0x04,0x1d,0x0a,0x1d,0x10,0x1d,0x16,0x1d,0x1c,0x1d,0x22,0x1d,0x22,0x1d,0x28, +0x1d,0x40,0x1d,0x2e,0x1d,0x34,0x1d,0x3a,0x1d,0x40,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x58,0x1d,0x46,0x1d,0x4c,0x1d,0x52,0x1d,0x58,0x00,0x02,0x00,0x1b,0x00,0x60,0x00,0x74,0x00,0x00,0x00,0x78,0x00,0x78,0x00,0x15,0x00,0x8e,0x00,0x9d,0x00,0x16,0x00,0x9f,0x00,0xa0,0x00,0x26,0x00,0xbc,0x00,0xbc,0x00,0x28,0x00,0xdd,0x00,0xdd, +0x00,0x29,0x01,0x22,0x01,0x37,0x00,0x2a,0x01,0x3b,0x01,0x3b,0x00,0x40,0x01,0x4c,0x01,0x5d,0x00,0x41,0x01,0x64,0x01,0x65,0x00,0x53,0x01,0x67,0x01,0x68,0x00,0x55,0x01,0x84,0x01,0x88,0x00,0x57,0x01,0xb0,0x01,0xc2,0x00,0x5c,0x01,0xda,0x01,0xda,0x00,0x6f,0x02,0x02,0x02,0x02,0x00,0x70,0x02,0x1e,0x02,0x1e,0x00,0x71,0x02,0x46, +0x02,0x46,0x00,0x72,0x02,0x5f,0x02,0x5f,0x00,0x73,0x02,0x6d,0x02,0x6d,0x00,0x74,0x02,0x83,0x02,0x83,0x00,0x75,0x02,0x89,0x02,0x89,0x00,0x76,0x02,0x91,0x02,0x94,0x00,0x77,0x05,0xaa,0x05,0xaa,0x00,0x7b,0x05,0xc5,0x05,0xc5,0x00,0x7c,0x05,0xd0,0x05,0xd0,0x00,0x7d,0x05,0xeb,0x05,0xeb,0x00,0x7e,0x05,0xed,0x05,0xed,0x00,0x7f, +0x00,0x2f,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x68,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00, +0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x6e,0x00,0x00,0x1c,0x74,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x7a,0x00,0x00, +0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x7a,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x00,0x1c,0x80,0x00,0x80, +0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4, +0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, +0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xc8,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce, +0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xd4,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xce,0x1b,0xd4,0x1b,0xe0,0x1b,0xe0,0x1b,0xda,0x1b,0xe0, +0x00,0x41,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0x9c,0x00,0x00,0x1a,0xa2,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xa8,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x01, +0x1a,0xe4,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x04,0x1a,0xea,0x00,0x04,0x1a,0xf0,0x00,0x04,0x1a,0xf6,0x00,0x02,0x19,0xd0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xae,0x00,0x00,0x1a,0xb4,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, +0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x01,0x1a,0xc0,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x03,0x19,0xd6,0x00,0x02,0x19,0xd6,0x00,0x02, +0x19,0xd6,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xba,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x00, +0x1a,0xc0,0x00,0x00,0x1a,0xc0,0x00,0x02,0x00,0x45,0x00,0x01,0x00,0x5d,0x00,0x00,0x00,0x5f,0x00,0x78,0x00,0x5d,0x00,0x7a,0x00,0x7a,0x00,0x77,0x00,0x7c,0x00,0x86,0x00,0x78,0x00,0x89,0x00,0xdd,0x00,0x83,0x00,0xe1,0x00,0xf2,0x00,0xd8,0x00,0xf4,0x00,0xfc,0x00,0xea,0x00,0xfe,0x01,0x14,0x00,0xf3,0x01,0x16,0x01,0x1f,0x01,0x0a, +0x01,0x21,0x01,0x3b,0x01,0x14,0x01,0x3d,0x01,0x49,0x01,0x2f,0x01,0x4c,0x01,0x7c,0x01,0x3c,0x01,0x7e,0x01,0xc2,0x01,0x6d,0x01,0xc4,0x01,0xc5,0x01,0xb2,0x01,0xc8,0x01,0xc8,0x01,0xb4,0x01,0xca,0x01,0xcc,0x01,0xb5,0x01,0xcf,0x01,0xd6,0x01,0xb8,0x01,0xd8,0x01,0xda,0x01,0xc0,0x01,0xdc,0x01,0xe0,0x01,0xc3,0x01,0xe2,0x01,0xe3, +0x01,0xc8,0x01,0xe9,0x01,0xea,0x01,0xca,0x01,0xed,0x01,0xf2,0x01,0xcc,0x01,0xf4,0x01,0xf5,0x01,0xd2,0x01,0xf7,0x01,0xfd,0x01,0xd4,0x01,0xff,0x02,0x02,0x01,0xdb,0x02,0x04,0x02,0x04,0x01,0xdf,0x02,0x06,0x02,0x0a,0x01,0xe0,0x02,0x0c,0x02,0x0c,0x01,0xe5,0x02,0x0f,0x02,0x10,0x01,0xe6,0x02,0x13,0x02,0x1a,0x01,0xe8,0x02,0x1e, +0x02,0x1e,0x01,0xf0,0x02,0x20,0x02,0x21,0x01,0xf1,0x02,0x23,0x02,0x24,0x01,0xf3,0x02,0x26,0x02,0x27,0x01,0xf5,0x02,0x2e,0x02,0x2e,0x01,0xf7,0x02,0x31,0x02,0x36,0x01,0xf8,0x02,0x38,0x02,0x39,0x01,0xfe,0x02,0x3b,0x02,0x3b,0x02,0x00,0x02,0x40,0x02,0x46,0x02,0x01,0x02,0x48,0x02,0x49,0x02,0x08,0x02,0x4b,0x02,0x4f,0x02,0x0a, +0x02,0x51,0x02,0x53,0x02,0x0f,0x02,0x55,0x02,0x57,0x02,0x12,0x02,0x59,0x02,0x5a,0x02,0x15,0x02,0x5c,0x02,0x5d,0x02,0x17,0x02,0x5f,0x02,0x5f,0x02,0x19,0x02,0x61,0x02,0x61,0x02,0x1a,0x02,0x63,0x02,0x64,0x02,0x1b,0x02,0x66,0x02,0x66,0x02,0x1d,0x02,0x69,0x02,0x6e,0x02,0x1e,0x02,0x70,0x02,0x75,0x02,0x24,0x02,0x79,0x02,0x79, +0x02,0x2a,0x02,0x7b,0x02,0x7b,0x02,0x2b,0x02,0x7d,0x02,0x7e,0x02,0x2c,0x02,0x81,0x02,0x81,0x02,0x2e,0x02,0x83,0x02,0x83,0x02,0x2f,0x02,0x89,0x02,0x89,0x02,0x30,0x02,0x8b,0x02,0x8b,0x02,0x31,0x02,0x8e,0x02,0x94,0x02,0x32,0x02,0x96,0x02,0x99,0x02,0x39,0x02,0x9c,0x02,0x9c,0x02,0x3d,0x02,0xb0,0x02,0xb0,0x02,0x3e,0x02,0xcc, +0x02,0xcc,0x02,0x3f,0x03,0xc3,0x03,0xc3,0x02,0x40,0x03,0xc7,0x03,0xc7,0x02,0x41,0x03,0xcd,0x03,0xcf,0x02,0x42,0x05,0x7d,0x05,0x7e,0x02,0x45,0x05,0xaa,0x05,0xaa,0x02,0x47,0x06,0xcb,0x06,0xcc,0x02,0x48,0x02,0x4a,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66, +0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44, +0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xd2,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0x66,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x18,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xde,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x18,0xe4,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00, +0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x1b,0xba,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x19,0x08,0x00,0x00, +0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x54,0x00,0x00,0x1c,0x1a,0x00,0x00, +0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x5a,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x18,0x60,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66, +0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x66,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x1b,0xc6, +0x1b,0xcc,0x00,0x00,0x18,0x6c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x72,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x78,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x7e,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x84,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00, +0x18,0x8a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x18,0x90,0x1b,0xcc,0x00,0x00,0x18,0x96,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0x9c,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x18,0xa2,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00, +0x00,0x00,0x1b,0x66,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x18,0xa8,0x00,0x00,0x00,0x00,0x19,0x20,0x00,0x00,0x18,0xae,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x20,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8, +0x1b,0xd2,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x18,0xb4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xba,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00, +0x18,0xc0,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x18,0xc6,0x00,0x00,0x18,0xcc,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x54,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xd2, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x66,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xde,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xe4,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x1a,0xe8, +0x1c,0x4a,0x1c,0x50,0x19,0x26,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x14,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xea,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0x4e,0x1c,0x3e,0x1a,0xe8,0x1c,0x4a,0x1c,0x50,0x18,0xf0,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50, +0x18,0xf6,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x18,0xfc,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x02,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x19,0x1a,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x1c,0x3e,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1b,0xb4,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x1b,0xb4, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x1c,0x50,0x1c,0x38,0x19,0x0e,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x66,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00, +0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x54,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x19,0x26,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x14,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x02,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x19,0x1a,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x19,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x08,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xd8,0x19,0x0e,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xe8,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x14,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x19,0x1a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0x20,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x26,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x19,0x56,0x1b,0x6c, +0x00,0x00,0x19,0x2c,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x32,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x38,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x0a, +0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x3e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x44,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x4a,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x50,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x19,0x56,0x1b,0x6c,0x00,0x00,0x19,0x5c,0x00,0x00,0x1c,0x1a, +0x1b,0x6c,0x00,0x00,0x19,0x62,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x68,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x19,0x6e,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x74,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x7a,0x00,0x00, +0x1c,0x26,0x00,0x00,0x00,0x00,0x19,0x80,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x16,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0x1c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x22,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x28,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea, +0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0x86,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x8c,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00, +0x19,0x92,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x98,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0x9e,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x19,0xa4,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x19,0xaa,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1b,0x84,0x00,0x00,0x1c,0x44,0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00, +0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb0,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xb6,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, +0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x19,0xbc,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc2,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xc8,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x19,0xce,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a, +0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xd4,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x19,0xda,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0xf8,0x00,0x00,0x1b,0xd2, +0x00,0x00,0x1c,0x50,0x19,0xe0,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x19,0xf8,0x00,0x00,0x19,0xe6,0x00,0x00,0x1c,0x50,0x19,0xec,0x00,0x00,0x1c,0x44,0x00,0x00,0x19,0xf2,0x19,0xf8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x1c,0x50,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x19,0xfe,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0x04,0x00,0x00,0x00,0x00,0x1a,0x0a,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1a,0x10,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6, +0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x16,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xae,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a, +0x1b,0xfc,0x1a,0x1c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x22,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x28,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0xf4,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0xfa, +0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x2e,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x34,0x1b,0xf6,0x1a,0xe8,0x1c,0x4a,0x1b,0xfc,0x1a,0x3a,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x40,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1a,0x46,0x1b,0xf6,0x1c,0x44, +0x1c,0x4a,0x1b,0xfc,0x1b,0x06,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0x0c,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf6,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x1b,0xf6,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc, +0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0x4c,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, +0x1a,0x52,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xbe,0x00,0x00, +0x00,0x00,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x82,0x00,0x00,0x1b,0xfc,0x1a,0x58,0x00,0x00,0x1a,0x88,0x00,0x00,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xa8, +0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x5e,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x64,0x1b,0xf0,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1a,0x6a,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0x70,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00, +0x1b,0xa8,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xee,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1b,0x00,0x00,0x00,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x0c,0x1b,0xf0, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x1b,0xfc,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x76,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00, +0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x1a,0x7c,0x00,0x00,0x1b,0xc6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00, +0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x82,0x00,0x00,0x1a,0x8e,0x00,0x00,0x00,0x00,0x1a,0x88,0x00,0x00,0x1a,0x8e,0x1c,0x32,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00, +0x00,0x00,0x1b,0xae,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1a,0x94,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1a,0x9a,0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa0,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xa6,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1a,0xb8, +0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xac,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1a,0xb2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1a,0xb8,0x00,0x00,0x1b,0xd2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1a,0xbe,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xc4,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xca,0x00,0x00,0x1a,0xd0,0x00,0x00,0x00,0x00,0x1a,0xd6,0x00,0x00, +0x1a,0xdc,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1a,0xe2,0x00,0x00,0x00,0x00,0x1a,0xf4,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1a,0xfa,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x0c,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x18,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xae, +0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xe8,0x1b,0x1e,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0xa8,0x1b,0xf0,0x1b,0x00, +0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1a,0xee,0x1c,0x4a,0x00,0x00,0x1a,0xf4,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1a,0xfa,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1b,0x00,0x1c,0x4a,0x00,0x00,0x1b,0x06,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x0c,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00, +0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x12,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1b,0x18,0x1b,0xf0,0x1c,0x44,0x1b,0x1e,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1b,0x2a,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1b,0x5a,0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0x30,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x36,0x00,0x00, +0x1b,0x3c,0x00,0x00,0x00,0x00,0x1b,0x42,0x00,0x00,0x1c,0x0e,0x00,0x00,0x1b,0x48,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xd8,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1b,0xd8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x54,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0x5a, +0x00,0x00,0x1b,0x60,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x1a,0x1b,0x6c,0x00,0x00,0x1b,0x72,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44, +0x1c,0x4a,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x1b,0x7e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00, +0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68, +0x00,0x00,0x1b,0x84,0x00,0x00,0x1c,0x56,0x1c,0x68,0x00,0x00,0x1b,0x8a,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x32,0x1b,0x96,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xea,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xea,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1b,0xea,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x1b,0x9c,0x00,0x00,0x1b,0xa2,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xa8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xae,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xb4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00, +0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00, +0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xba,0x00,0x00,0x1b,0xc0,0x00,0x00,0x1b,0xc6,0x1b,0xcc,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1c,0x38, +0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x1b,0xd2,0x00,0x00,0x1b,0xd8,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44, +0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00, +0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xe4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x1b,0xf0, +0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1b,0xea,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf0,0x1c,0x44,0x1c,0x4a,0x00,0x00,0x1c,0x32,0x1b,0xf6,0x1c,0x44,0x1c,0x4a,0x1b,0xfc,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x02,0x00,0x00,0x1c,0x44,0x00,0x00, +0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x08,0x00,0x00,0x1c,0x0e,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x14,0x00,0x00,0x1c,0x1a,0x00,0x00,0x00,0x00,0x1c,0x38, +0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x20,0x00,0x00,0x1c,0x26,0x00,0x00,0x00,0x00,0x1c,0x38,0x00,0x00,0x1c,0x44,0x00,0x00,0x00,0x00,0x1c,0x2c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x32,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x38,0x1c,0x3e,0x1c,0x44,0x1c,0x4a,0x1c,0x50,0x1c,0x5c,0x00,0x00,0x1c,0x56, +0x1c,0x68,0x00,0x00,0x1c,0x5c,0x00,0x00,0x1c,0x62,0x1c,0x68,0x00,0x00,0x00,0x01,0xff,0xb4,0x02,0x94,0x00,0x01,0xff,0xba,0x03,0x48,0x00,0x01,0xff,0x51,0x02,0x26,0x00,0x01,0xff,0x04,0x02,0x26,0x00,0x01,0xff,0x07,0x02,0xda,0x00,0x01,0xfe,0xd4,0xff,0x06,0x00,0x01,0xfe,0xd4,0xff,0x2b,0x00,0x01,0xfe,0xca,0xff,0x10,0x00,0x01, +0xfe,0xdb,0xff,0x35,0x00,0x01,0xfe,0xd4,0xff,0x10,0x00,0x01,0xfe,0xd4,0xff,0x3d,0x00,0x01,0xfe,0xca,0x00,0x00,0x00,0x01,0xfe,0xd4,0x00,0x00,0x00,0x01,0xfe,0xd4,0x03,0x09,0x00,0x01,0xfe,0xb3,0x03,0x11,0x00,0x01,0xfe,0xf5,0x03,0x11,0x00,0x01,0xfe,0xf9,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x11,0x00,0x01,0xfe,0xd4,0x03,0x44, +0x00,0x01,0xfe,0xd4,0x03,0x0c,0x00,0x01,0xfe,0xd4,0x02,0xe9,0x00,0x01,0xfe,0xd9,0x03,0x39,0x00,0x01,0xfe,0xae,0x03,0x11,0x00,0x01,0xfe,0xe0,0x03,0x70,0x00,0x01,0xfe,0xd4,0x03,0xb0,0x00,0x01,0xfe,0xb3,0x03,0xb6,0x00,0x01,0xfe,0xf5,0x03,0xb6,0x00,0x01,0xfe,0xf9,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xe2,0x00,0x01,0xfe,0xd4, +0x03,0xb1,0x00,0x01,0xfe,0xd4,0x03,0x93,0x00,0x01,0xfe,0xd6,0x03,0xd4,0x00,0x01,0xfe,0xae,0x03,0xb6,0x00,0x01,0xfe,0xd4,0x03,0xb6,0x00,0x01,0xfe,0xd9,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0x7a,0x00,0x01,0xfe,0xd4,0x03,0xa2,0x00,0x01,0xff,0x1c,0x03,0x84,0x00,0x01,0xfe,0xf4,0x03,0x84,0x00,0x01,0xfe,0xf7,0x03,0xa2,0x00,0x01, +0xfe,0xd4,0x03,0xa0,0x00,0x01,0xff,0x17,0x03,0xfc,0x00,0x01,0xfe,0xf2,0x03,0xfc,0x00,0x01,0xfe,0xf7,0x03,0xfc,0x00,0x01,0xfe,0xd4,0x03,0xfc,0x00,0x01,0xfe,0xde,0x02,0x26,0x00,0x01,0xfe,0xca,0x02,0x26,0x00,0x01,0xfe,0xb6,0x02,0xda,0x00,0x01,0xfe,0xde,0x02,0xda,0x00,0x01,0xfe,0xca,0x02,0xda,0x00,0x01,0xfe,0xd4,0x02,0x26, +0x00,0x01,0xfe,0xd4,0x02,0xda,0x00,0x01,0x01,0x63,0x02,0x6d,0x00,0x01,0x02,0x44,0x02,0x26,0x00,0x01,0x02,0x44,0x02,0xda,0x00,0x01,0x02,0x44,0x04,0x65,0x00,0x01,0x03,0x0c,0x02,0xda,0x00,0x01,0xfe,0xec,0x02,0x26,0x00,0x01,0xfe,0xd4,0x01,0x45,0x00,0x01,0xfe,0xd4,0x01,0x18,0x00,0x01,0xfe,0xd4,0x01,0x13,0x00,0x01,0x01,0x5c, +0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0xb0,0x00,0x01,0x01,0x61,0x03,0xb6,0x00,0x01,0x01,0x79,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb6,0x00,0x01,0x01,0x54,0x03,0xfc,0x00,0x01,0x01,0x59,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xfc,0x00,0x01,0x01,0x36,0x03,0xb0,0x00,0x01,0x01,0x36,0xff,0x2b,0x00,0x01, +0x01,0x0b,0x03,0xb6,0x00,0x01,0x01,0x38,0x03,0xd4,0x00,0x01,0x01,0x36,0x03,0x93,0x00,0x01,0x01,0x26,0xff,0x10,0x00,0x01,0x01,0x30,0x00,0x00,0x00,0x01,0x01,0xc2,0x03,0xb6,0x00,0x01,0x00,0xda,0x03,0xb6,0x00,0x01,0x01,0x4a,0xff,0x10,0x00,0x01,0x00,0xaf,0x02,0xda,0x00,0x01,0x01,0x54,0x00,0x00,0x00,0x01,0x01,0x6f,0x03,0xfc, +0x00,0x01,0x01,0x4a,0x03,0xfc,0x00,0x01,0x01,0x4f,0x03,0xfc,0x00,0x01,0x01,0x2c,0x03,0xfc,0x00,0x01,0x01,0x4d,0x03,0xb6,0x00,0x01,0x00,0xf7,0x03,0xb6,0x00,0x01,0x01,0x24,0x03,0xd4,0x00,0x01,0x01,0x22,0x03,0xb1,0x00,0x01,0x01,0x51,0x03,0xb6,0x00,0x01,0x01,0x2c,0x03,0xe2,0x00,0x01,0x01,0x81,0x02,0xda,0x00,0x01,0x01,0x2e, +0x03,0xd4,0x00,0x01,0x01,0x2c,0x03,0x93,0x00,0x01,0x01,0x2c,0x03,0xb0,0x00,0x01,0x01,0x01,0x03,0xb6,0x00,0x01,0x01,0x31,0x03,0x7a,0x00,0x01,0x01,0x31,0x03,0xa2,0x00,0x01,0x01,0x79,0x03,0x84,0x00,0x01,0x01,0x51,0x03,0x84,0x00,0x01,0x01,0x54,0x03,0xa2,0x00,0x01,0x01,0x31,0x03,0xa0,0x00,0x01,0x01,0x31,0x03,0x09,0x00,0x01, +0x01,0x31,0xff,0x2b,0x00,0x01,0x01,0x06,0x03,0x11,0x00,0x01,0x01,0x36,0x03,0x39,0x00,0x01,0x01,0x31,0x02,0xe9,0x00,0x01,0x01,0x31,0x03,0x44,0x00,0x01,0x01,0x5f,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x11,0x00,0x01,0x01,0x34,0x03,0x09,0x00,0x01,0x01,0x29,0x02,0x26,0x00,0x01,0x01,0x54,0x03,0x11,0x00,0x01,0x01,0x29,0x03,0x11, +0x00,0x01,0x01,0x35,0x03,0x70,0x00,0x01,0x01,0x29,0x03,0x09,0x00,0x01,0x00,0x89,0x02,0xda,0x00,0x01,0x00,0x89,0x03,0xc5,0x00,0x01,0x01,0x66,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x11,0x00,0x01,0x01,0x10,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x39,0x00,0x01,0x01,0x3b,0x02,0xe9,0x00,0x01,0x01,0x3b,0x03,0x0c,0x00,0x01,0x01,0x7c, +0x02,0x26,0x00,0x01,0x01,0x7c,0x03,0x11,0x00,0x01,0x01,0x1b,0x03,0xb6,0x00,0x01,0x01,0x36,0xff,0x10,0x00,0x01,0x00,0xdc,0x02,0xda,0x00,0x01,0x01,0x18,0x01,0x6d,0x00,0x01,0x00,0xf0,0x02,0xda,0x00,0x01,0x01,0x5c,0x03,0x11,0x00,0x01,0x00,0x5a,0x02,0x85,0x00,0x01,0x01,0x31,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x0c,0x00,0x01, +0x01,0x74,0x03,0x84,0x00,0x01,0x01,0x4c,0x03,0x84,0x00,0x01,0x01,0x4f,0x03,0xa2,0x00,0x01,0x01,0x2c,0x03,0xa0,0x00,0x01,0x01,0x4d,0x03,0x11,0x00,0x01,0x01,0x22,0x02,0x26,0x00,0x01,0x00,0xf7,0x03,0x11,0x00,0x01,0x01,0x27,0x03,0x39,0x00,0x01,0x01,0x22,0x03,0x0c,0x00,0x01,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x87,0xff,0x10, +0x00,0x01,0x00,0xfa,0x02,0xc1,0x00,0x01,0x01,0x57,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xf4,0x00,0x01,0x01,0x01,0x03,0xf4,0x00,0x01,0x01,0x2c,0x03,0xcc,0x00,0x01,0x01,0x48,0x03,0xb6,0x00,0x01,0x01,0x1d,0x02,0xda,0x00,0x01,0x01,0x68,0x00,0x00,0x00,0x01,0x01,0x5e,0xff,0x10,0x00,0x01,0x01,0x13,0x01,0x13,0x00,0x01,0x01,0x38, +0x03,0x70,0x00,0x01,0x01,0x2c,0xfe,0xf2,0x00,0x01,0x01,0xb7,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x11,0x00,0x01,0x01,0x25,0x03,0xb6,0x00,0x01,0x01,0x27,0xff,0x10,0x00,0x01,0x00,0xfa,0x02,0xda,0x00,0x01,0x01,0x22,0xff,0x10,0x00,0x01,0x01,0x6b,0x03,0x11,0x00,0x01,0x01,0x40,0x03,0x11,0x00,0x01,0x00,0xf5,0x00,0x00,0x00,0x01, +0x01,0x40,0x02,0x26,0x00,0x01,0x00,0xe6,0xff,0x10,0x00,0x01,0x01,0xcc,0xff,0x2b,0x00,0x01,0x01,0x2c,0xff,0x2b,0x00,0x01,0x01,0x2b,0xff,0x2b,0x00,0x01,0x01,0x01,0x03,0x11,0x00,0x01,0x01,0x31,0x03,0x39,0x00,0x01,0x01,0x2b,0x00,0x00,0x00,0x01,0x01,0x51,0x03,0x11,0x00,0x01,0x01,0x2c,0x02,0xe9,0x00,0x01,0x01,0x2c,0x03,0x44, +0x00,0x01,0x01,0x2c,0x03,0x0c,0x00,0x01,0x01,0xcd,0x00,0x00,0x00,0x01,0x01,0x6b,0x03,0xb6,0x00,0x01,0x01,0x36,0x03,0xb1,0x00,0x01,0x01,0xc2,0x02,0xda,0x00,0x01,0x01,0x21,0x02,0xda,0x00,0x01,0x01,0x21,0x00,0x00,0x00,0x01,0x01,0x28,0x02,0xda,0x00,0x01,0x01,0x28,0x01,0x6d,0x00,0x01,0x01,0x22,0x02,0xda,0x00,0x01,0x01,0x57, +0x03,0xb6,0x00,0x01,0x01,0x27,0x02,0xda,0x00,0x01,0x01,0x27,0x00,0x00,0x00,0x01,0x01,0x2c,0x03,0xb6,0x00,0x01,0x01,0xd1,0x00,0x00,0x00,0x01,0x01,0x4a,0x02,0x26,0x00,0x01,0x01,0x75,0x03,0x11,0x00,0x01,0x01,0x5a,0x03,0x11,0x00,0x01,0x01,0x3b,0x03,0x09,0x00,0x01,0x01,0x7c,0x03,0x09,0x00,0x01,0x01,0x4f,0x02,0x26,0x00,0x01, +0x00,0xfa,0x02,0x26,0x00,0x01,0x01,0xb7,0x03,0x09,0x00,0x01,0x01,0x27,0xfe,0xf2,0x00,0x01,0x01,0x57,0x03,0x11,0x00,0x01,0x01,0x2c,0x03,0x11,0x00,0x01,0x01,0x40,0x02,0xda,0x00,0x01,0x01,0xf4,0x00,0x00,0x00,0x01,0x01,0x36,0x02,0xda,0x00,0x01,0x01,0x36,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0x40,0x00,0x00, +0x00,0x01,0x01,0x2c,0x03,0xb1,0x00,0x01,0x01,0x2f,0x02,0x26,0x00,0x01,0x01,0x27,0x03,0x09,0x00,0x01,0x01,0x2c,0x03,0x09,0x00,0x01,0x01,0xa4,0x02,0x26,0x00,0x01,0x01,0x4c,0x02,0x26,0x00,0x01,0x01,0x2c,0x01,0x13,0x00,0x01,0x01,0x31,0x02,0x26,0x00,0x01,0x01,0x28,0x02,0x26,0x00,0x01,0x01,0x28,0x00,0x00,0x00,0x01,0x01,0x31, +0x02,0xda,0x00,0x01,0x01,0x31,0x00,0x00,0x00,0x01,0x01,0x34,0x02,0x26,0x00,0x01,0x01,0x34,0x00,0x00,0x00,0x01,0x01,0x27,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0x26,0x00,0x01,0x01,0x2c,0x02,0xda,0x00,0x01,0x01,0x40,0x02,0xbc,0x00,0x01,0x01,0x2c,0x00,0x00,0x00,0x01,0x01,0x5e,0x00,0x00,0x00,0x01,0x01,0x2c,0x01,0x6d,0x00,0x01, +0x01,0x3b,0x00,0x00,0x00,0x01,0x01,0x3b,0x02,0x26,0x00,0x01,0x01,0x3b,0xff,0x2b,0x00,0x01,0x01,0x4a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0a,0x00,0x18,0x01,0x1c,0x00,0x02,0x44,0x46,0x4c,0x54,0x04,0xac,0x6c,0x61,0x74,0x6e,0x04,0xb0,0x00,0x2b,0x61,0x61,0x6c,0x74,0x05,0xb4,0x63,0x61,0x6c,0x74,0x05,0xe4,0x63,0x61, +0x73,0x65,0x04,0xd6,0x63,0x63,0x6d,0x70,0x05,0xc4,0x63,0x63,0x6d,0x70,0x05,0xd8,0x63,0x76,0x30,0x31,0x04,0xdc,0x63,0x76,0x30,0x32,0x04,0xe2,0x63,0x76,0x30,0x33,0x04,0xe8,0x63,0x76,0x30,0x34,0x04,0xee,0x63,0x76,0x30,0x35,0x04,0xf4,0x63,0x76,0x30,0x36,0x04,0xfa,0x63,0x76,0x30,0x37,0x05,0x00,0x63,0x76,0x30,0x38,0x05,0x06, +0x63,0x76,0x30,0x39,0x05,0x0c,0x63,0x76,0x31,0x30,0x05,0x12,0x63,0x76,0x31,0x31,0x05,0x18,0x63,0x76,0x31,0x32,0x05,0x1e,0x63,0x76,0x31,0x34,0x05,0x24,0x63,0x76,0x31,0x35,0x05,0x2a,0x63,0x76,0x31,0x36,0x05,0x30,0x63,0x76,0x31,0x37,0x05,0x36,0x63,0x76,0x31,0x38,0x05,0x3c,0x63,0x76,0x31,0x39,0x05,0x42,0x63,0x76,0x32,0x30, +0x05,0x48,0x63,0x76,0x39,0x39,0x05,0x4e,0x66,0x72,0x61,0x63,0x05,0xce,0x6c,0x6f,0x63,0x6c,0x05,0x54,0x6c,0x6f,0x63,0x6c,0x05,0x5a,0x6c,0x6f,0x63,0x6c,0x05,0x60,0x6c,0x6f,0x63,0x6c,0x05,0x66,0x6c,0x6f,0x63,0x6c,0x05,0x6c,0x6c,0x6f,0x63,0x6c,0x05,0x72,0x6c,0x6f,0x63,0x6c,0x05,0x78,0x6c,0x6f,0x63,0x6c,0x05,0x7e,0x6f,0x72, +0x64,0x6e,0x05,0xbc,0x73,0x69,0x6e,0x66,0x05,0x84,0x73,0x73,0x30,0x31,0x05,0x8a,0x73,0x73,0x30,0x32,0x05,0x90,0x73,0x73,0x31,0x39,0x05,0x96,0x73,0x73,0x32,0x30,0x05,0x9c,0x73,0x75,0x62,0x73,0x05,0xa2,0x73,0x75,0x70,0x73,0x05,0xa8,0x7a,0x65,0x72,0x6f,0x05,0xae,0x01,0xcc,0x06,0x18,0x06,0x20,0x06,0x28,0x06,0x30,0x06,0x38, +0x06,0x40,0x06,0x40,0x06,0x48,0x06,0x50,0x06,0x58,0x06,0x60,0x06,0x68,0x06,0x70,0x06,0x78,0x06,0x80,0x06,0x88,0x06,0x90,0x06,0x98,0x06,0xa0,0x06,0xa8,0x06,0xb0,0x0a,0x90,0x06,0xb8,0x06,0xc0,0x0a,0x90,0x06,0xc8,0x06,0xd0,0x0c,0x60,0x06,0xd8,0x06,0xe0,0x06,0xe8,0x06,0xf0,0x06,0xf8,0x07,0x00,0x07,0x28,0x07,0x08,0x07,0x10, +0x07,0x28,0x07,0x28,0x07,0x18,0x07,0x20,0x07,0x28,0x07,0x28,0x07,0x28,0x07,0x30,0x07,0x38,0x07,0x40,0x07,0x48,0x07,0x50,0x07,0x58,0x07,0x60,0x07,0x68,0x07,0x70,0x07,0x78,0x11,0xb0,0x07,0x80,0x11,0xba,0x07,0x88,0x07,0x90,0x07,0x98,0x07,0xd0,0x07,0xa0,0x07,0xa8,0x07,0xd0,0x07,0xd0,0x07,0xb0,0x07,0xb8,0x07,0xc0,0x07,0xc8, +0x07,0xd0,0x07,0xd8,0x07,0xe0,0x0d,0x70,0x07,0xe8,0x07,0xf0,0x07,0xf8,0x08,0x00,0x08,0x28,0x08,0x08,0x08,0x10,0x08,0x18,0x08,0x20,0x08,0x28,0x08,0x28,0x08,0x30,0x08,0x38,0x08,0x50,0x08,0x40,0x08,0x48,0x08,0x50,0x08,0x50,0x08,0x58,0x08,0x60,0x08,0x68,0x08,0x70,0x08,0x98,0x08,0x78,0x08,0x80,0x08,0x98,0x08,0x98,0x08,0x88, +0x08,0x90,0x08,0x98,0x08,0xa0,0x08,0xa8,0x0c,0x60,0x08,0xb0,0x08,0xb8,0x0e,0x40,0x08,0xc0,0x08,0xc8,0x08,0xd0,0x08,0xd8,0x0c,0x60,0x08,0xe0,0x08,0xe8,0x08,0xf0,0x08,0xf8,0x09,0x00,0x09,0x08,0x0e,0x40,0x09,0x10,0x09,0x18,0x0e,0x40,0x09,0x20,0x09,0x28,0x0e,0x40,0x0e,0x40,0x09,0x30,0x09,0x38,0x0e,0x40,0x09,0x40,0x09,0x48, +0x09,0x50,0x09,0x58,0x09,0x60,0x09,0x68,0x0c,0x28,0x0c,0x28,0x09,0x70,0x09,0x78,0x0c,0x28,0x09,0x80,0x09,0x88,0x09,0x90,0x09,0x98,0x09,0xa0,0x09,0xa8,0x0d,0xd8,0x09,0xb0,0x09,0xb8,0x0c,0x60,0x09,0xc0,0x09,0xc8,0x09,0xd0,0x09,0xd8,0x0d,0xd8,0x09,0xe0,0x09,0xe8,0x0d,0xd8,0x0d,0xd8,0x09,0xf0,0x09,0xf8,0x0a,0x00,0x0a,0x08, +0x0a,0x10,0x0a,0x18,0x0a,0x20,0x0a,0x28,0x0a,0x30,0x0a,0x38,0x0e,0x40,0x0a,0x40,0x0a,0x48,0x0d,0x70,0x0a,0x50,0x0a,0x58,0x0a,0x60,0x0a,0x68,0x0d,0x18,0x0a,0x70,0x0a,0x78,0x0a,0x80,0x0a,0x88,0x0a,0x90,0x0a,0x98,0x0a,0xa0,0x0d,0x70,0x0a,0xa8,0x0a,0xb0,0x0d,0x70,0x0a,0xb8,0x0a,0xc0,0x0a,0xc8,0x0a,0xd0,0x0d,0x70,0x0a,0xd8, +0x0a,0xe0,0x0d,0x70,0x0d,0x70,0x0a,0xe8,0x0a,0xf0,0x0d,0x70,0x0a,0xf8,0x0b,0x00,0x0b,0x08,0x0b,0x10,0x0b,0x18,0x0b,0x20,0x0b,0x28,0x0b,0x30,0x0b,0xa0,0x0b,0x38,0x0b,0x40,0x0b,0x58,0x0b,0x48,0x0b,0x50,0x0b,0x58,0x0b,0x58,0x0b,0x60,0x0b,0x68,0x0b,0xa0,0x0b,0xa0,0x0b,0x70,0x0b,0x78,0x0b,0x80,0x0b,0x88,0x0b,0x90,0x0b,0x98, +0x0b,0xa0,0x0b,0xa8,0x0b,0xb0,0x0c,0x28,0x0c,0x28,0x0b,0xb8,0x0b,0xc0,0x0c,0x28,0x0b,0xc8,0x0b,0xd0,0x0b,0xd8,0x0b,0xe0,0x0c,0x28,0x0b,0xe8,0x0b,0xf0,0x0c,0x28,0x0b,0xf8,0x0c,0x00,0x0c,0x08,0x0c,0x10,0x0c,0x18,0x0c,0x20,0x0c,0x28,0x0c,0x30,0x0c,0x38,0x0c,0x60,0x0c,0x40,0x0c,0x48,0x0c,0x60,0x0c,0x50,0x0c,0x58,0x0c,0x60, +0x0c,0x60,0x0c,0x68,0x0c,0x70,0x0c,0x88,0x0c,0x78,0x0c,0x80,0x0c,0x88,0x0c,0x88,0x0c,0x90,0x0c,0x98,0x0c,0xa0,0x0c,0xa8,0x0c,0xb0,0x0c,0xb8,0x0c,0xc0,0x0c,0xc8,0x0c,0xf0,0x0c,0xd0,0x0c,0xd8,0x0c,0xe0,0x0c,0xe8,0x0c,0xf0,0x0c,0xf0,0x0c,0xf8,0x0d,0x00,0x0d,0x08,0x0d,0x10,0x0d,0x18,0x0d,0x20,0x0d,0x28,0x0d,0x70,0x0d,0x30, +0x0d,0x38,0x0e,0x40,0x0d,0x40,0x0d,0x48,0x0e,0x40,0x0d,0x50,0x0d,0x58,0x0d,0x70,0x0d,0x60,0x0d,0x68,0x0d,0x70,0x0d,0x78,0x0d,0x80,0x0d,0xd8,0x0d,0x88,0x0d,0x90,0x0d,0xd8,0x0d,0x98,0x0d,0xa0,0x0d,0xd8,0x0d,0xa8,0x0d,0xb0,0x0d,0xd8,0x0d,0xb8,0x0d,0xc0,0x0d,0xc8,0x0d,0xd0,0x0d,0xd8,0x0d,0xe0,0x0d,0xe8,0x0d,0xf0,0x0d,0xf8, +0x0e,0xb8,0x0e,0x00,0x0e,0x08,0x0e,0x10,0x0e,0x18,0x0e,0x20,0x0e,0x28,0x0e,0x40,0x0e,0x30,0x0e,0x38,0x0e,0x40,0x0e,0x48,0x0e,0x50,0x0e,0x58,0x0e,0x60,0x0e,0x68,0x0e,0x70,0x0e,0x78,0x0e,0x80,0x0e,0x88,0x0e,0x90,0x0e,0xb8,0x0e,0x98,0x0e,0xa0,0x0e,0xa8,0x0e,0xb0,0x0e,0xb8,0x0e,0xc0,0x0e,0xc8,0x0e,0xd0,0x0e,0xd8,0x0e,0xe0, +0x0e,0xe8,0x0e,0xf0,0x0e,0xf8,0x0f,0x00,0x0f,0x08,0x0f,0x10,0x0f,0x18,0x0f,0x20,0x0f,0x28,0x0f,0x30,0x0f,0x38,0x0f,0x40,0x0f,0x48,0x0f,0x50,0x0f,0x58,0x0f,0x60,0x0f,0x68,0x0f,0x70,0x0f,0x78,0x0f,0x80,0x0f,0x88,0x0f,0x90,0x0f,0x98,0x0f,0xa0,0x0f,0xa8,0x0f,0xb0,0x0f,0xb8,0x0f,0xc0,0x0f,0xc8,0x0f,0xd0,0x0f,0xd8,0x0f,0xe0, +0x0f,0xe8,0x0f,0xf0,0x0f,0xf8,0x10,0x00,0x10,0x08,0x10,0x10,0x10,0x18,0x10,0x20,0x10,0x28,0x10,0x30,0x10,0x38,0x10,0x40,0x10,0x48,0x10,0x50,0x10,0x58,0x11,0xd8,0x10,0x60,0x10,0x60,0x10,0x68,0x10,0x70,0x10,0x70,0x10,0x78,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x88,0x10,0x88,0x10,0x90,0x10,0xa0,0x10,0x98, +0x10,0xa0,0x10,0xa0,0x10,0xa8,0x10,0xa8,0x10,0xb0,0x10,0xb8,0x10,0xc0,0x11,0xc4,0x10,0xc8,0x10,0xc8,0x11,0xce,0x10,0xd0,0x10,0xd8,0x10,0xe0,0x10,0xe8,0x10,0xf0,0x10,0xf8,0x11,0x00,0x11,0x08,0x11,0x10,0x11,0x18,0x11,0x20,0x11,0x28,0x11,0x30,0x11,0x38,0x11,0x40,0x11,0x48,0x11,0x50,0x11,0x58,0x11,0x60,0x11,0x68,0x11,0x70, +0x11,0x78,0x11,0x80,0x11,0x88,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x0e,0x4c,0x00,0x00,0x0e,0x92,0x00,0x08,0x41,0x5a,0x45,0x20,0x0e,0xdc,0x43,0x41,0x54,0x20,0x0f,0x28,0x43,0x52,0x54,0x20,0x0f,0x74,0x4b,0x41,0x5a,0x20,0x0f,0xc0,0x4d,0x4f,0x4c,0x20,0x10,0x0c,0x52,0x4f,0x4d,0x20,0x10,0x58,0x54,0x41,0x54,0x20,0x10,0xa4, +0x54,0x52,0x4b,0x20,0x10,0xf0,0x00,0x00,0x00,0x01,0x01,0xb2,0x00,0x00,0x00,0x01,0x01,0xb8,0x00,0x00,0x00,0x01,0x01,0xb9,0x00,0x00,0x00,0x01,0x01,0xba,0x00,0x00,0x00,0x01,0x01,0xbb,0x00,0x00,0x00,0x01,0x01,0xbc,0x00,0x00,0x00,0x01,0x01,0xbd,0x00,0x00,0x00,0x01,0x01,0xbe,0x00,0x00,0x00,0x01,0x01,0xbf,0x00,0x00,0x00,0x01, +0x01,0xc0,0x00,0x00,0x00,0x01,0x01,0xc1,0x00,0x00,0x00,0x01,0x01,0xc2,0x00,0x00,0x00,0x01,0x01,0xc3,0x00,0x00,0x00,0x01,0x01,0xc4,0x00,0x00,0x00,0x01,0x01,0xc5,0x00,0x00,0x00,0x01,0x01,0xc6,0x00,0x00,0x00,0x01,0x01,0xc7,0x00,0x00,0x00,0x01,0x01,0xc8,0x00,0x00,0x00,0x01,0x01,0xc9,0x00,0x00,0x00,0x01,0x01,0xca,0x00,0x00, +0x00,0x01,0x01,0xcb,0x00,0x00,0x00,0x01,0x01,0x9b,0x00,0x00,0x00,0x01,0x01,0xa2,0x00,0x00,0x00,0x01,0x01,0x9c,0x00,0x00,0x00,0x01,0x01,0x9d,0x00,0x00,0x00,0x01,0x01,0xa1,0x00,0x00,0x00,0x01,0x01,0xa0,0x00,0x00,0x00,0x01,0x01,0x9e,0x00,0x00,0x00,0x01,0x01,0x9f,0x00,0x00,0x00,0x01,0x01,0xa8,0x10,0x54,0x00,0x01,0x01,0xb4, +0x10,0x52,0x00,0x01,0x01,0xb5,0x10,0x50,0x00,0x01,0x01,0xb6,0x10,0x4e,0x00,0x01,0x01,0xb7,0x00,0x00,0x00,0x01,0x01,0xa7,0x00,0x00,0x00,0x01,0x01,0xa9,0x00,0x00,0x00,0x01,0x01,0xb3,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x01,0xaf,0x01,0xb1,0x00,0x00,0x00,0x03,0x01,0x94,0x01,0x97,0x01,0x9a,0x00,0x00, +0x00,0x03,0x01,0xaa,0x01,0xab,0x01,0xac,0x00,0x00,0x00,0x04,0x01,0x94,0x01,0x97,0x01,0x9a,0x01,0x9a,0x00,0x00,0x00,0x9a,0x00,0x02,0x00,0x04,0x00,0x07,0x00,0x0a,0x00,0x0d,0x00,0x10,0x00,0x13,0x00,0x16,0x00,0x19,0x00,0x1c,0x00,0x1e,0x00,0x20,0x00,0x23,0x00,0x27,0x00,0x2c,0x00,0x2e,0x00,0x30,0x00,0x32,0x00,0x34,0x00,0x36, +0x00,0x38,0x00,0x3a,0x00,0x3d,0x00,0x41,0x00,0x43,0x00,0x46,0x00,0x49,0x00,0x4b,0x00,0x4e,0x00,0x50,0x00,0x54,0x00,0x57,0x00,0x5b,0x00,0x5d,0x00,0x60,0x00,0x64,0x00,0x67,0x00,0x6a,0x00,0x6d,0x00,0x6f,0x00,0x72,0x00,0x74,0x00,0x76,0x00,0x79,0x00,0x7c,0x00,0x80,0x00,0x83,0x00,0x85,0x00,0x87,0x00,0x8b,0x00,0x8e,0x00,0x90, +0x00,0x92,0x00,0x95,0x00,0x98,0x00,0x9a,0x00,0x9d,0x00,0xa1,0x00,0xa3,0x00,0xa5,0x00,0xa7,0x00,0xa9,0x00,0xac,0x00,0xaf,0x00,0xb1,0x00,0xb4,0x00,0xb6,0x00,0xb9,0x00,0xbc,0x00,0xbf,0x00,0xc1,0x00,0xc4,0x00,0xc8,0x00,0xcb,0x00,0xcd,0x00,0xcf,0x00,0xd1,0x00,0xd4,0x00,0xd7,0x00,0xdb,0x00,0xdf,0x00,0xe1,0x00,0xe3,0x00,0xe6, +0x00,0xea,0x00,0xed,0x00,0xef,0x00,0xf2,0x00,0xf5,0x00,0xf7,0x00,0xf9,0x00,0xfc,0x00,0xff,0x01,0x02,0x01,0x06,0x01,0x09,0x01,0x0d,0x01,0x0f,0x01,0x11,0x01,0x13,0x01,0x16,0x01,0x18,0x01,0x1c,0x01,0x1e,0x01,0x21,0x01,0x24,0x01,0x27,0x01,0x2a,0x01,0x2d,0x01,0x30,0x01,0x33,0x01,0x36,0x01,0x39,0x01,0x3c,0x01,0x3e,0x01,0x41, +0x01,0x43,0x01,0x46,0x01,0x48,0x01,0x4a,0x01,0x4d,0x01,0x50,0x01,0x52,0x01,0x54,0x01,0x56,0x01,0x58,0x01,0x5b,0x01,0x5d,0x01,0x60,0x01,0x62,0x01,0x64,0x01,0x66,0x01,0x68,0x01,0x6a,0x01,0x6c,0x01,0x6e,0x01,0x70,0x01,0x72,0x01,0x74,0x01,0x76,0x01,0x78,0x01,0x7a,0x01,0x7c,0x01,0x7e,0x01,0x80,0x01,0x82,0x01,0x84,0x01,0x86, +0x01,0x88,0x01,0x8a,0x01,0x8c,0x01,0x8e,0x01,0x90,0x01,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x1d,0xcc,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xba,0x00,0x06,0x00,0x00,0x00,0x01,0x1b,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xb0,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa6,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0xa4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x98,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x26,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x2a,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x2c,0x00,0x06,0x00,0x00, +0x00,0x01,0x18,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x18,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x20,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x0e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0e,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xf6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xfc,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xfe,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x02,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0x04,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x8e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x84,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xe8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xf4,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0xa2,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x0c,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x8a,0x00,0x01,0x00,0x00, +0x00,0x01,0x0d,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0x00,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xb6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0e,0x62,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xdc,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x9a,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x17,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x17,0x10,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x19,0x28,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x82,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xf8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x76,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x7a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x7e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x50,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0xca,0x00,0x01,0x00,0x00,0x00,0x01,0x0c,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x62,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0x9c,0x00,0x01,0x00,0x00, +0x00,0x01,0x16,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x16,0xa4,0x00,0x01,0x00,0x00,0x00,0x01,0x16,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x5c,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x9c,0x00,0x06,0x00,0x00,0x00,0x01,0x0d,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x0b,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x44,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x46,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x50,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x15,0xbc,0x00,0x01,0x00,0x00,0x00,0x01,0x15,0xc0,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x4c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x4e,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x82,0x00,0x01,0x00,0x00, +0x00,0x01,0x0a,0xf8,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x3e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x42,0x00,0x06,0x00,0x00, +0x00,0x01,0x0c,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xbc,0x00,0x06,0x00,0x00,0x00,0x01,0x0c,0x3a,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0xb2,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2a,0x00,0x06,0x00,0x00, +0x00,0x01,0x10,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x2e,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x32,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x68,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x5e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0b,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x52,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0xd2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x48,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x14,0xa4,0x00,0x01,0x00,0x00, +0x00,0x01,0x14,0xa8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x0a,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xde,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe2,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0xe4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xe6,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xe8,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xea,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xee,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xf0,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf2,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0xf6,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0b,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x90,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0xd0,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0xd2,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xfa,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x74,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xe2,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x60,0x00,0x01,0x00,0x00, +0x00,0x01,0x09,0x5e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x96,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x98,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x9e,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0xa2,0x00,0x01,0x00,0x00, +0x00,0x01,0x09,0x24,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x90,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x92,0x00,0x06,0x00,0x00,0x00,0x01,0x0a,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x0a,0x00,0x01,0x00,0x00,0x00,0x01,0x09,0x08,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x7c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x7e,0x00,0x06,0x00,0x00, +0x00,0x01,0x0a,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xee,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0xec,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0xec,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x9a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x60,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x62,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x64,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x66,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x68,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x6c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x6e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x74,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x76,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x70,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x72,0x00,0x06,0x00,0x00,0x00,0x01,0x09,0x8a,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x54,0x00,0x01,0x00,0x00, +0x00,0x01,0x12,0x58,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x56,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x5c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x5e,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0xdc,0x00,0x06,0x00,0x00, +0x00,0x01,0x12,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x28,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x30,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x34,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x38,0x00,0x06,0x00,0x00,0x00,0x01,0x12,0x3c,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x40,0x00,0x06,0x00,0x00, +0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x01,0x00,0x00,0x00,0x01,0x07,0x6a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xcc,0x00,0x01,0x00,0x00, +0x00,0x01,0x11,0xd0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0xb4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xb8,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x9c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xa0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0x88,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x04,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x06,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x08,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x0a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x0c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x0e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x10,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x12,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x14,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x16,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1a,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00, +0x00,0x01,0x0f,0x1e,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x20,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x22,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x24,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x26,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x28,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x2a,0x00,0x06,0x00,0x00,0x00,0x01,0x10,0xec,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xf0,0x00,0x06,0x00,0x00,0x00,0x01,0x0f,0x1c,0x00,0x01,0x00,0x00,0x00,0x01,0x0f,0x1e,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xd8,0x00,0x06,0x00,0x00,0x00,0x01,0x11,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x1c,0x00,0x04,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0xa8,0x00,0x01,0x00,0x00, +0x00,0x01,0x10,0xca,0x00,0x06,0x00,0x00,0x00,0x01,0x06,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x96,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x94,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x92,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x86,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x88,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x86,0x00,0x01,0x00,0x00, +0x00,0x01,0x05,0x84,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x90,0x00,0x04,0x00,0x00,0x00,0x01,0x06,0xb2,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x6a,0x00,0x01,0x00,0x00,0x00,0x01,0x14,0xac,0x00,0x01,0x00,0x00,0x00,0x01,0x13,0x42,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x6e,0x00,0x01,0x00,0x00, +0x00,0x01,0x0e,0x78,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xea,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x40,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x3e,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x54,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0xdc,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x2c,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xc8,0x00,0x01,0x00,0x00, +0x00,0x01,0x12,0x52,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x1a,0x00,0x01,0x00,0x00,0x00,0x01,0x05,0x18,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xf2,0x00,0x01,0x00,0x00,0x00,0x01,0x12,0x58,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x48,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x12,0x00,0x01,0x00,0x00,0x00,0x01,0x04,0xf6,0x00,0x01,0x00,0x00, +0x00,0x01,0x04,0xf4,0x00,0x01,0x00,0x00,0x00,0x01,0x11,0xe6,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x30,0x00,0x01,0x00,0x00,0x00,0x01,0x10,0x38,0x00,0x01,0x00,0x00,0x00,0x01,0x0d,0xe2,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xca,0x10,0xe0,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0xec,0x11,0x02,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x6e, +0x10,0x80,0x00,0x06,0x00,0x00,0x00,0x02,0x10,0x88,0x10,0x9a,0x00,0x06,0x00,0x00,0x00,0x04,0x10,0xfa,0x11,0x4a,0x11,0x0c,0x11,0x1e,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10, +0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x22,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b, +0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06, +0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1a,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23, +0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1b,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27, +0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1c, +0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14, +0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1d,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e, +0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1e,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08, +0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x1f,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01, +0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x20,0x00,0x22,0x00,0x23,0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29, +0x00,0x2a,0x00,0x00,0xff,0xff,0x00,0x23,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x06,0x00,0x07,0x00,0x08,0x00,0x09,0x00,0x0a,0x00,0x0b,0x00,0x0c,0x00,0x0d,0x00,0x0e,0x00,0x0f,0x00,0x10,0x00,0x11,0x00,0x12,0x00,0x13,0x00,0x14,0x00,0x15,0x00,0x16,0x00,0x17,0x00,0x18,0x00,0x19,0x00,0x21,0x00,0x22,0x00,0x23, +0x00,0x24,0x00,0x25,0x00,0x26,0x00,0x27,0x00,0x28,0x00,0x29,0x00,0x2a,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x02,0x00,0x00,0x01,0x03,0x00,0x01,0x12,0x42,0x00,0x15,0x00,0x01,0x12,0x36,0x00,0x33,0x00,0x01,0x11,0xc0,0x00,0x31,0x00,0x01,0x11,0xba,0x03,0x89,0x00,0x01,0x11,0xba,0x00,0x35,0x00,0x01,0x11,0xb4, +0x03,0x88,0x00,0x01,0x11,0xb4,0x00,0x66,0x00,0x01,0x11,0xae,0x00,0x67,0x00,0x01,0x11,0xa8,0x00,0x68,0x00,0x01,0x11,0xa2,0x03,0x94,0x00,0x01,0x12,0x0c,0x00,0x6e,0x00,0x01,0x12,0x06,0x00,0x70,0x00,0x01,0x12,0x00,0x03,0x91,0x00,0x01,0x11,0x90,0x00,0x63,0x00,0x01,0x11,0x8a,0x03,0x9a,0x00,0x01,0x11,0x8a,0x02,0x08,0x00,0x01, +0x11,0x84,0x02,0x09,0x00,0x01,0x11,0x7e,0x02,0xb9,0x00,0x01,0x11,0x7e,0x00,0x56,0x00,0x01,0x11,0x78,0x00,0x57,0x00,0x01,0x11,0x72,0x03,0xa5,0x00,0x01,0x11,0x72,0x02,0x32,0x00,0x01,0x11,0x6c,0x02,0x35,0x00,0x01,0x11,0x6c,0x02,0x15,0x00,0x01,0x11,0x66,0x02,0x18,0x00,0x01,0x11,0x66,0x00,0x60,0x00,0x01,0x11,0x60,0x03,0xa0, +0x00,0x01,0x11,0x60,0x02,0x0a,0x00,0x01,0x11,0x5a,0x02,0x0b,0x00,0x01,0x11,0x94,0x00,0x59,0x00,0x01,0x11,0x54,0x00,0x60,0x00,0x01,0x11,0x4e,0x00,0x61,0x00,0x01,0x11,0x48,0x03,0xa2,0x00,0x01,0x11,0x7c,0x00,0x5a,0x00,0x01,0x11,0x76,0x03,0xa3,0x00,0x01,0x11,0x3c,0x00,0x55,0x00,0x01,0x11,0x36,0x01,0x10,0x00,0x01,0x11,0x36, +0x00,0x15,0x00,0x01,0x11,0x30,0x00,0x16,0x00,0x01,0x11,0x2a,0x03,0x77,0x00,0x01,0x11,0x2a,0x00,0x64,0x00,0x01,0x11,0x24,0x00,0x65,0x00,0x01,0x11,0x1e,0x03,0x9e,0x00,0x01,0x11,0x1e,0x00,0x57,0x00,0x01,0x11,0x18,0x00,0x58,0x00,0x01,0x11,0x12,0x01,0x19,0x00,0x01,0x11,0x12,0x00,0x55,0x00,0x01,0x11,0x0c,0x03,0x72,0x00,0x01, +0x10,0xe2,0x02,0xb5,0x00,0x01,0x10,0xd0,0x02,0xb3,0x00,0x01,0x11,0x00,0x02,0x39,0x00,0x01,0x10,0xbe,0x02,0xb2,0x00,0x01,0x10,0xf4,0x02,0xac,0x00,0x01,0x10,0x70,0x00,0x07,0x00,0x01,0x10,0xee,0x00,0x0f,0x00,0x01,0x10,0xe8,0x00,0x10,0x00,0x01,0x13,0x50,0x00,0x10,0x00,0x01,0x10,0xf2,0xff,0xe3,0x00,0x01,0x13,0x44,0x00,0x24, +0x00,0x01,0x13,0x34,0xff,0xf6,0x00,0x01,0x10,0x4c,0x00,0x0a,0x00,0x01,0x12,0x30,0x00,0x38,0x00,0x01,0x12,0x34,0x00,0x94,0x00,0x01,0x10,0x40,0x00,0x7f,0x00,0x01,0x10,0x46,0x00,0xae,0x00,0x01,0x12,0x2c,0x00,0x63,0x00,0x01,0x10,0x34,0x00,0x40,0x00,0x01,0x10,0x34,0x00,0xcf,0x00,0x01,0x10,0x34,0x00,0x01,0x13,0x12,0x00,0x01, +0x10,0x32,0x00,0x01,0x13,0x14,0x00,0x01,0x10,0x30,0x00,0x01,0x13,0x16,0x00,0x01,0x10,0x28,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x20,0x00,0x01,0x18,0xee,0x00,0x01,0x10,0x88,0x00,0x01,0x16,0x72,0x00,0x01,0x10,0x80,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x0e,0x00,0x01,0x16,0x7a,0x00,0x01,0x10,0x0c,0x00,0x01,0x12,0xf0,0x00,0x01, +0x10,0x04,0x00,0x01,0x16,0x76,0x00,0x01,0x10,0x02,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x7e,0x00,0x01,0x0f,0xf8,0x00,0x01,0x1b,0x08,0x00,0x01,0x0f,0xf0,0x00,0x01,0x16,0x7a,0x00,0x01,0x0f,0xee,0x00,0x01,0x1b,0x0a,0x00,0x01,0x0f,0xe6,0x00,0x01,0x16,0x76,0x00,0x01,0x0f,0xe4,0x00,0x01,0x18,0x9c,0x00,0x01, +0x0f,0xe2,0x00,0x01,0x1a,0x4a,0x00,0x01,0x0f,0xda,0x00,0x01,0x1a,0xfc,0x00,0x01,0x10,0x12,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xd0,0x00,0x01,0x12,0x9a,0x00,0x01,0x0f,0xc8,0x00,0x01,0x16,0x5e,0x00,0x01,0x0f,0xfa,0x00,0x01,0x16,0x62,0x00,0x01,0x0f,0xbe,0x00,0x01,0x18,0x72,0x00,0x01,0x0f,0xbc,0x00,0x01,0x1a,0x22,0x00,0x01, +0x0f,0xb4,0x00,0x01,0x18,0x70,0x00,0x01,0x0f,0xb2,0x00,0x01,0x12,0x74,0x00,0x01,0x0f,0xaa,0x00,0x01,0x16,0x46,0x00,0x01,0x0f,0xa8,0x00,0x01,0x12,0x6e,0x00,0x01,0x0f,0xa0,0x00,0x01,0x16,0x42,0x00,0x01,0x0f,0x9e,0x00,0x01,0x12,0x68,0x00,0x01,0x0f,0x9c,0x00,0x01,0x18,0x4e,0x00,0x01,0x0f,0x9a,0x00,0x01,0x12,0x62,0x00,0x01, +0x21,0xd0,0x00,0x01,0x0f,0x98,0x00,0x01,0x12,0x6c,0x00,0x02,0x12,0x5c,0x12,0x64,0x00,0x02,0x12,0x62,0x00,0x02,0x06,0xce,0x03,0x77,0x00,0x02,0x12,0x58,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x12,0x56,0x00,0x02,0x10,0xf6,0x16,0x08,0x00,0x02,0x12,0x4c,0x00,0x02,0x03,0x6e,0x06,0xce,0x00,0x02,0x12,0x42,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x12,0x48,0x00,0x02,0x10,0xde,0x12,0x40,0x00,0x02,0x12,0x3e,0x00,0x02,0x03,0x79,0x06,0xce,0x00,0x01,0x12,0x3c,0x00,0x02,0x15,0xe0,0x0f,0x56,0x00,0x02,0x12,0x32,0x00,0x02,0x06,0xce,0x03,0x8f,0x00,0x01,0x13,0x08,0x00,0x02,0x0f,0x46,0x15,0xd6,0x00,0x02,0x12,0xfe,0x00,0x02,0x06,0x20,0x06,0xce,0x00,0x01, +0x12,0x24,0x00,0x02,0x0f,0x36,0x12,0x1c,0x00,0x02,0x12,0x1a,0x00,0x02,0x06,0x0b,0x06,0xce,0x00,0x01,0x12,0x20,0x00,0x02,0x0f,0x26,0x12,0x18,0x00,0x02,0x12,0x16,0x00,0x02,0x06,0x11,0x06,0xce,0x00,0x01,0x12,0x14,0x00,0x02,0x10,0x80,0x0f,0x16,0x00,0x02,0x12,0x0a,0x00,0x02,0x06,0xce,0x03,0x7c,0x00,0x01,0x12,0x08,0x00,0x02, +0x0f,0x06,0x10,0x72,0x00,0x02,0x11,0xfe,0x00,0x02,0x06,0x12,0x06,0xce,0x00,0x01,0x11,0xfc,0x00,0x02,0x1a,0x28,0x0e,0xf6,0x00,0x02,0x11,0xf2,0x00,0x02,0x06,0xce,0x03,0x7d,0x00,0x01,0x11,0xf8,0x00,0x02,0x11,0xf0,0x0e,0xe6,0x00,0x02,0x11,0xee,0x00,0x02,0x06,0xce,0x03,0x7a,0x00,0x02,0x11,0xec,0x00,0x02,0x03,0xaf,0x06,0xce, +0x00,0x02,0x11,0xe2,0x00,0x02,0x06,0xce,0x03,0xae,0x00,0x01,0x12,0xd0,0x00,0x02,0x15,0x40,0x0e,0xc2,0x00,0x02,0x12,0xc6,0x00,0x02,0x06,0xce,0x03,0xa8,0x00,0x01,0x12,0xbc,0x00,0x02,0x17,0x2c,0x0e,0xb2,0x00,0x02,0x12,0xb2,0x00,0x02,0x06,0xce,0x03,0xac,0x00,0x01,0x12,0xa8,0x00,0x02,0x11,0xb8,0x10,0x00,0x00,0x02,0x12,0x9e, +0x00,0x02,0x06,0xce,0x03,0xa9,0x00,0x01,0x11,0xac,0x00,0x02,0x0e,0x8e,0x18,0xa2,0x00,0x02,0x11,0xa2,0x00,0x02,0x03,0xa6,0x06,0xce,0x00,0x01,0x11,0x98,0x00,0x02,0x0f,0xde,0x18,0x9c,0x00,0x02,0x11,0x8e,0x00,0x02,0x03,0xa7,0x06,0xce,0x00,0x01,0x11,0x84,0x00,0x02,0x18,0x96,0x0e,0x6a,0x00,0x02,0x11,0x7a,0x00,0x02,0x06,0xce, +0x03,0x99,0x00,0x01,0x12,0x38,0x00,0x02,0x11,0x78,0x0e,0x5a,0x00,0x02,0x12,0x2e,0x00,0x02,0x06,0xce,0x03,0x82,0x00,0x01,0x11,0x6c,0x00,0x02,0x14,0xbe,0x0e,0x4a,0x00,0x02,0x11,0x62,0x00,0x02,0x06,0xce,0x03,0x81,0x00,0x01,0x13,0xd0,0x00,0x02,0x0e,0x3a,0x14,0xb4,0x00,0x02,0x13,0xc6,0x00,0x02,0x06,0x4f,0x06,0xce,0x00,0x02, +0x13,0xbc,0x00,0x02,0x06,0x34,0x06,0xce,0x00,0x01,0x11,0x4a,0x00,0x02,0x0e,0x20,0x11,0x42,0x00,0x02,0x11,0x40,0x00,0x02,0x06,0x4d,0x06,0xce,0x00,0x01,0x11,0x8e,0x00,0x02,0x0e,0x10,0x14,0x8c,0x00,0x02,0x11,0x84,0x00,0x02,0x06,0x39,0x06,0xce,0x00,0x01,0x11,0x7a,0x00,0x02,0x0e,0x00,0x14,0x82,0x00,0x02,0x11,0x70,0x00,0x02, +0x06,0xce,0x06,0x3a,0x00,0x01,0x11,0xfe,0x00,0x02,0x14,0x78,0x0d,0xf0,0x00,0x02,0x11,0xf4,0x00,0x02,0x06,0xce,0x06,0x52,0x00,0x01,0x11,0x12,0x00,0x02,0x11,0x02,0x11,0x0a,0x00,0x02,0x11,0x08,0x00,0x02,0x06,0xce,0x06,0x40,0x00,0x01,0x10,0xfe,0x00,0x02,0x14,0x5a,0x0f,0x12,0x00,0x02,0x10,0xf4,0x00,0x02,0x06,0xce,0x06,0x3f, +0x00,0x01,0x10,0xea,0x00,0x02,0x14,0x50,0x0d,0xb8,0x00,0x02,0x10,0xe0,0x00,0x02,0x06,0xce,0x06,0x3e,0x00,0x01,0x11,0x36,0x00,0x02,0x14,0x46,0x0d,0xa8,0x00,0x02,0x11,0x2c,0x00,0x02,0x06,0xce,0x03,0x70,0x00,0x01,0x11,0x82,0x00,0x02,0x10,0xca,0x0e,0xdc,0x00,0x02,0x11,0x78,0x00,0x02,0x06,0xce,0x03,0x72,0x00,0x01,0x11,0x6e, +0x00,0x02,0x15,0xda,0x0d,0x84,0x00,0x02,0x11,0x64,0x00,0x02,0x06,0xce,0x03,0x6f,0x00,0x01,0x11,0x5a,0x00,0x02,0x18,0x04,0x0d,0x74,0x00,0x02,0x11,0x50,0x00,0x02,0x06,0xce,0x03,0x71,0x00,0x01,0x11,0x3e,0x00,0x02,0x0d,0x64,0x15,0xbe,0x00,0x02,0x11,0x34,0x00,0x02,0x06,0x2e,0x06,0xce,0x00,0x01,0x10,0xaa,0x00,0x02,0x0d,0x54, +0x10,0x82,0x00,0x02,0x10,0xa0,0x00,0x02,0x06,0x2d,0x06,0xce,0x00,0x01,0x10,0x76,0x00,0x02,0x0d,0x44,0x18,0x3c,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0x2c,0x06,0xce,0x00,0x01,0x11,0x1a,0x00,0x02,0x0d,0x34,0x17,0x32,0x00,0x02,0x11,0x10,0x00,0x02,0x06,0x47,0x06,0xce,0x00,0x01,0x11,0x06,0x00,0x02,0x0d,0x24,0x13,0xb0,0x00,0x02, +0x10,0xfc,0x00,0x02,0x06,0x50,0x06,0xce,0x00,0x01,0x10,0xf2,0x00,0x02,0x0e,0x42,0x15,0x66,0x00,0x02,0x10,0xe8,0x00,0x02,0x06,0x49,0x06,0xce,0x00,0x01,0x10,0x2e,0x00,0x02,0x13,0x92,0x0d,0x00,0x00,0x02,0x10,0x24,0x00,0x02,0x03,0xb0,0x06,0xce,0x00,0x01,0x10,0x22,0x00,0x02,0x16,0xf0,0x0c,0xf0,0x00,0x02,0x10,0x18,0x00,0x02, +0x06,0xce,0x03,0x90,0x00,0x01,0x10,0x0e,0x00,0x02,0x15,0x36,0x0e,0x0c,0x00,0x02,0x10,0x04,0x00,0x02,0x06,0xce,0x03,0x91,0x00,0x01,0x0f,0xfa,0x00,0x02,0x0c,0xcc,0x15,0x2e,0x00,0x02,0x0f,0xf0,0x00,0x02,0x06,0xce,0x06,0x22,0x00,0x01,0x10,0x76,0x00,0x02,0x17,0xd0,0x0c,0xbc,0x00,0x02,0x10,0x6c,0x00,0x02,0x06,0xce,0x06,0x26, +0x00,0x01,0x0f,0xf2,0x00,0x02,0x0c,0xac,0x15,0x12,0x00,0x02,0x0f,0xe8,0x00,0x02,0x06,0xce,0x06,0x21,0x00,0x01,0x0f,0xde,0x00,0x02,0x13,0x24,0x0c,0x9c,0x00,0x02,0x0f,0xd4,0x00,0x02,0x06,0xce,0x03,0x89,0x00,0x01,0x0f,0xba,0x00,0x02,0x0f,0xb2,0x0c,0x8c,0x00,0x02,0x0f,0xb0,0x00,0x02,0x06,0xce,0x03,0x8a,0x00,0x01,0x0f,0xae, +0x00,0x02,0x13,0x06,0x0c,0x7c,0x00,0x02,0x0f,0xa4,0x00,0x02,0x06,0xce,0x03,0x8b,0x00,0x01,0x0f,0xd2,0x00,0x02,0x12,0xfc,0x0c,0x6c,0x00,0x02,0x0f,0xc8,0x00,0x02,0x06,0xce,0x03,0x87,0x00,0x01,0x0f,0x8e,0x00,0x02,0x12,0xf2,0x0c,0x5c,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x86,0x00,0x01,0x0f,0x8a,0x00,0x02,0x0c,0x4c, +0x14,0xa6,0x00,0x02,0x0f,0x80,0x00,0x02,0x06,0x16,0x06,0xce,0x00,0x01,0x0f,0x76,0x00,0x02,0x0c,0x3c,0x14,0x9e,0x00,0x02,0x0f,0x6c,0x00,0x02,0x06,0x18,0x06,0xce,0x00,0x01,0x0f,0x62,0x00,0x02,0x0c,0x2c,0x0f,0x5a,0x00,0x02,0x0f,0x58,0x00,0x02,0x06,0x1b,0x06,0xce,0x00,0x01,0x0f,0x56,0x00,0x02,0x0c,0x1c,0x12,0xac,0x00,0x02, +0x0f,0x4c,0x00,0x02,0x06,0x14,0x06,0xce,0x00,0x01,0x0f,0x4a,0x00,0x02,0x0c,0x0c,0x12,0xa2,0x00,0x02,0x0f,0x40,0x00,0x02,0x06,0x17,0x06,0xce,0x00,0x01,0x0f,0x2e,0x00,0x02,0x0b,0xfc,0x12,0x98,0x00,0x02,0x0f,0x24,0x00,0x02,0x06,0x0f,0x06,0xce,0x00,0x01,0x0f,0x22,0x00,0x02,0x0b,0xec,0x12,0x8e,0x00,0x02,0x0f,0x18,0x00,0x02, +0x06,0x19,0x06,0xce,0x00,0x01,0x10,0xf6,0x00,0x02,0x0c,0xd2,0x0f,0x16,0x00,0x02,0x10,0xec,0x00,0x02,0x06,0x35,0x06,0xce,0x00,0x01,0x0f,0x0a,0x00,0x02,0x0b,0xc8,0x12,0x70,0x00,0x02,0x0f,0x00,0x00,0x02,0x03,0x93,0x06,0xce,0x00,0x01,0x0e,0xfe,0x00,0x02,0x16,0x6e,0x0b,0xb8,0x00,0x02,0x0e,0xf4,0x00,0x02,0x06,0xce,0x03,0x96, +0x00,0x01,0x0e,0xfa,0x00,0x02,0x0b,0xa8,0x0e,0xf2,0x00,0x02,0x0e,0xf0,0x00,0x02,0x03,0x92,0x06,0xce,0x00,0x01,0x0e,0xee,0x00,0x02,0x0b,0x98,0x12,0x3e,0x00,0x02,0x0e,0xe4,0x00,0x02,0x06,0x0e,0x06,0xce,0x00,0x01,0x0e,0xea,0x00,0x02,0x0e,0xe2,0x0b,0x88,0x00,0x02,0x0e,0xe0,0x00,0x02,0x06,0xce,0x03,0x83,0x00,0x01,0x0e,0xde, +0x00,0x02,0x0b,0x78,0x13,0xba,0x00,0x02,0x0e,0xd4,0x00,0x02,0x06,0xce,0x06,0x29,0x00,0x01,0x10,0x6a,0x00,0x02,0x0b,0x68,0x12,0x0c,0x00,0x02,0x10,0x60,0x00,0x02,0x06,0xce,0x06,0x38,0x00,0x01,0x0e,0xd6,0x00,0x02,0x0b,0x58,0x13,0x9e,0x00,0x02,0x0e,0xcc,0x00,0x02,0x06,0xce,0x06,0x4c,0x00,0x01,0x0e,0xaa,0x00,0x02,0x15,0x6c, +0x0b,0x48,0x00,0x02,0x0e,0xa0,0x00,0x02,0x06,0xce,0x06,0x25,0x00,0x01,0x0e,0x96,0x00,0x02,0x11,0xda,0x0c,0x10,0x00,0x02,0x0e,0x8c,0x00,0x02,0x06,0xce,0x06,0x27,0x00,0x01,0x0e,0x82,0x00,0x02,0x0b,0x24,0x11,0xd0,0x00,0x02,0x0e,0x78,0x00,0x02,0x06,0xce,0x06,0x2f,0x00,0x01,0x0e,0x6e,0x00,0x02,0x0b,0x14,0x11,0xc6,0x00,0x02, +0x0e,0x64,0x00,0x02,0x06,0x32,0x06,0xce,0x00,0x01,0x0e,0x62,0x00,0x02,0x0b,0x04,0x11,0xbc,0x00,0x02,0x0e,0x58,0x00,0x02,0x06,0x31,0x06,0xce,0x00,0x01,0x0e,0x4e,0x00,0x02,0x0a,0xf4,0x13,0x32,0x00,0x02,0x0e,0x44,0x00,0x02,0x06,0x2a,0x06,0xce,0x00,0x01,0x0e,0x3a,0x00,0x02,0x0a,0xe4,0x11,0x9e,0x00,0x02,0x0e,0x30,0x00,0x02, +0x06,0xce,0x06,0x2b,0x00,0x01,0x0e,0x3e,0x00,0x02,0x11,0x94,0x0a,0xd4,0x00,0x02,0x0e,0x34,0x00,0x02,0x06,0xce,0x06,0x53,0x00,0x01,0x0f,0xa2,0x00,0x02,0x13,0x02,0x0a,0xc4,0x00,0x02,0x0f,0x98,0x00,0x02,0x06,0xce,0x03,0x73,0x00,0x01,0x0f,0x8e,0x00,0x02,0x0e,0x06,0x0b,0x76,0x00,0x02,0x0f,0x84,0x00,0x02,0x06,0xce,0x03,0x74, +0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x62,0x0b,0x68,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x06,0x28,0x00,0x01,0x0d,0xee,0x00,0x02,0x11,0x58,0x0b,0x5a,0x00,0x02,0x0d,0xe4,0x00,0x02,0x06,0xce,0x06,0x55,0x00,0x01,0x0d,0xfa,0x00,0x02,0x11,0x4e,0x0a,0x78,0x00,0x02,0x0d,0xf0,0x00,0x02,0x06,0xce,0x03,0x75,0x00,0x01,0x0d,0xd6, +0x00,0x02,0x0a,0x68,0x11,0x44,0x00,0x02,0x0d,0xcc,0x00,0x02,0x06,0x5c,0x06,0xce,0x00,0x01,0x0d,0xc2,0x00,0x02,0x0a,0x58,0x0d,0xba,0x00,0x02,0x0d,0xb8,0x00,0x02,0x06,0x5a,0x06,0xce,0x00,0x01,0x0d,0xbe,0x00,0x02,0x0a,0x48,0x0d,0xb6,0x00,0x02,0x0d,0xb4,0x00,0x02,0x06,0x58,0x06,0xce,0x00,0x01,0x0d,0xba,0x00,0x02,0x0d,0xb2, +0x0a,0x38,0x00,0x02,0x0d,0xb0,0x00,0x02,0x06,0xce,0x06,0x59,0x00,0x01,0x0d,0xb6,0x00,0x02,0x0a,0x28,0x0d,0xae,0x00,0x02,0x0d,0xac,0x00,0x02,0x06,0x5d,0x06,0xce,0x00,0x01,0x0d,0xb2,0x00,0x02,0x0a,0x18,0x0d,0xaa,0x00,0x02,0x0d,0xa8,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x01,0x0d,0xae,0x00,0x02,0x0d,0xa6,0x0a,0x08,0x00,0x02, +0x0d,0xa4,0x00,0x02,0x06,0xce,0x06,0x1c,0x00,0x01,0x0d,0xaa,0x00,0x02,0x09,0xf8,0x0d,0xa2,0x00,0x02,0x0d,0xa0,0x00,0x02,0x06,0x45,0x06,0xce,0x00,0x01,0x0d,0xa6,0x00,0x02,0x0d,0x9e,0x09,0xe8,0x00,0x02,0x0d,0x9c,0x00,0x02,0x06,0xce,0x06,0x1f,0x00,0x01,0x0d,0xa2,0x00,0x02,0x09,0xd8,0x0d,0x9a,0x00,0x02,0x0d,0x98,0x00,0x02, +0x06,0x3c,0x06,0xce,0x00,0x01,0x0d,0x9e,0x00,0x02,0x0d,0x96,0x09,0xc8,0x00,0x02,0x0d,0x94,0x00,0x02,0x06,0xce,0x03,0x98,0x00,0x01,0x0d,0x9a,0x00,0x02,0x09,0xb8,0x0d,0x92,0x00,0x02,0x0d,0x90,0x00,0x02,0x06,0x56,0x06,0xce,0x00,0x01,0x0d,0x96,0x00,0x02,0x0d,0x8e,0x09,0xa8,0x00,0x02,0x0d,0x8c,0x00,0x02,0x06,0xce,0x03,0xaa, +0x00,0x01,0x0d,0x92,0x00,0x02,0x0d,0x8a,0x09,0x98,0x00,0x02,0x0d,0x88,0x00,0x02,0x06,0xce,0x03,0x9b,0x00,0x01,0x0d,0x8e,0x00,0x02,0x0d,0x86,0x09,0x88,0x00,0x02,0x0d,0x84,0x00,0x02,0x06,0xce,0x03,0x9c,0x00,0x01,0x0d,0x8a,0x00,0x02,0x0d,0x82,0x09,0x78,0x00,0x02,0x0d,0x80,0x00,0x02,0x06,0xce,0x03,0x9a,0x00,0x01,0x0d,0x86, +0x00,0x02,0x09,0x68,0x0d,0x7e,0x00,0x02,0x0d,0x7c,0x00,0x02,0x03,0x9f,0x06,0xce,0x00,0x01,0x0d,0x7a,0x00,0x02,0x0f,0xfa,0x09,0x58,0x00,0x02,0x0d,0x70,0x00,0x02,0x06,0xce,0x03,0xa4,0x00,0x01,0x0d,0x76,0x00,0x02,0x09,0x48,0x0d,0x6e,0x00,0x02,0x0d,0x6c,0x00,0x02,0x03,0x9e,0x06,0xce,0x00,0x01,0x0d,0x72,0x00,0x02,0x09,0x38, +0x0d,0x6a,0x00,0x02,0x0d,0x68,0x00,0x02,0x03,0x9d,0x06,0xce,0x00,0x01,0x0d,0x6e,0x00,0x02,0x0d,0x66,0x09,0x28,0x00,0x02,0x0d,0x64,0x00,0x02,0x06,0xce,0x03,0xa3,0x00,0x01,0x0d,0x6a,0x00,0x02,0x09,0x18,0x0d,0x62,0x00,0x02,0x0d,0x60,0x00,0x02,0x03,0x7e,0x06,0xce,0x00,0x02,0x0d,0x5e,0x00,0x02,0x01,0xc5,0x01,0xc4,0x00,0x02, +0x0d,0x5c,0x00,0x02,0x02,0x0b,0x02,0x50,0x00,0x01,0x10,0xde,0x00,0x03,0x09,0x6c,0x0f,0x8c,0x0d,0x5a,0x00,0x02,0x10,0xd2,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x78,0x00,0x01,0x10,0xda,0x00,0x03,0x09,0x58,0x0d,0x48,0x10,0xd0,0x00,0x02,0x10,0xce,0x00,0x03,0x06,0xce,0x06,0x3b,0x06,0xce,0x00,0x01,0x10,0xcc,0x00,0x03,0x09,0x44, +0x0d,0x36,0x0f,0x64,0x00,0x02,0x10,0xc0,0x00,0x03,0x06,0xce,0x06,0x44,0x06,0xce,0x00,0x01,0x10,0xf0,0x00,0x03,0x09,0x30,0x09,0x34,0x10,0xbe,0x00,0x02,0x10,0xe4,0x00,0x03,0x06,0xce,0x06,0x4b,0x06,0xce,0x00,0x01,0x10,0xb0,0x00,0x03,0x09,0x20,0x09,0x24,0x0f,0x3c,0x00,0x02,0x10,0xa4,0x00,0x03,0x06,0xce,0x06,0x37,0x06,0xce, +0x00,0x01,0x10,0xa2,0x00,0x03,0x09,0x10,0x0f,0x2c,0x09,0x14,0x00,0x02,0x10,0x96,0x00,0x03,0x06,0x41,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x94,0x00,0x03,0x0f,0x1c,0x09,0x00,0x09,0x04,0x00,0x02,0x10,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x03,0x88,0x00,0x01,0x10,0x90,0x00,0x03,0x0c,0xc4,0x08,0xf0,0x10,0x86,0x00,0x02,0x10,0x84, +0x00,0x03,0x06,0xce,0x06,0x4a,0x06,0xce,0x00,0x01,0x10,0x82,0x00,0x03,0x08,0xdc,0x0e,0xf4,0x08,0xe0,0x00,0x02,0x10,0x76,0x00,0x03,0x06,0x54,0x06,0xce,0x06,0xce,0x00,0x01,0x10,0x74,0x00,0x03,0x08,0xcc,0x0e,0xe4,0x08,0xd0,0x00,0x02,0x10,0x68,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x36,0x00,0x01,0x10,0x70,0x00,0x03,0x08,0xbc, +0x10,0x66,0x08,0xc0,0x00,0x02,0x10,0x64,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0x48,0x00,0x01,0x10,0x62,0x00,0x03,0x08,0xac,0x08,0xb0,0x0e,0xbc,0x00,0x02,0x10,0x56,0x00,0x03,0x06,0xce,0x06,0x1a,0x06,0xce,0x00,0x01,0x10,0x54,0x00,0x03,0x08,0x9c,0x08,0xa0,0x0e,0xac,0x00,0x02,0x10,0x48,0x00,0x03,0x06,0xce,0x06,0x10,0x06,0xce, +0x00,0x01,0x10,0x46,0x00,0x03,0x08,0x8c,0x08,0x90,0x0e,0x9c,0x00,0x02,0x10,0x3a,0x00,0x03,0x06,0xce,0x06,0x43,0x06,0xce,0x00,0x01,0x10,0x38,0x00,0x03,0x08,0x7c,0x08,0x80,0x0e,0x8c,0x00,0x02,0x10,0x2c,0x00,0x03,0x06,0xce,0x06,0x46,0x06,0xce,0x00,0x01,0x10,0x2a,0x00,0x03,0x08,0x6c,0x08,0x70,0x0e,0x7c,0x00,0x02,0x10,0x1e, +0x00,0x03,0x06,0xce,0x06,0x3d,0x06,0xce,0x00,0x01,0x10,0x1c,0x00,0x03,0x08,0x5c,0x08,0x60,0x0e,0x6c,0x00,0x02,0x10,0x10,0x00,0x03,0x06,0xce,0x06,0x57,0x06,0xce,0x00,0x01,0x10,0x0e,0x00,0x03,0x0e,0x5c,0x08,0x4c,0x08,0x50,0x00,0x02,0x10,0x02,0x00,0x03,0x06,0xce,0x03,0xa5,0x06,0xce,0x00,0x01,0x20,0x08,0x00,0x04,0x10,0x76, +0x10,0x80,0x10,0x8a,0x10,0x94,0x00,0x02,0x10,0xee,0x00,0x04,0x00,0x86,0x00,0x8d,0x01,0x49,0x01,0x50,0x00,0x02,0x10,0xec,0x00,0x04,0x01,0xc6,0x01,0xc7,0x01,0xc6,0x01,0xc7,0x00,0x02,0x10,0xea,0x00,0x04,0x03,0xb2,0x03,0xb3,0x06,0x5e,0x06,0x5f,0x00,0x02,0x10,0xe8,0x00,0x04,0x01,0x90,0x01,0x91,0x01,0x92,0x02,0x49,0x00,0x02, +0x10,0xe6,0x00,0x04,0x06,0x02,0x06,0x08,0x06,0x09,0x06,0x0a,0x00,0x02,0x05,0x8e,0x12,0x4c,0x10,0x4a,0x12,0x4c,0x00,0x02,0x0b,0x76,0x0f,0xac,0x00,0x02,0x12,0xb4,0x12,0x8c,0x12,0x64,0x12,0x8c,0x00,0x02,0x0b,0x66,0x0f,0xa2,0x00,0x02,0x11,0x24,0x00,0x05,0x03,0xce,0x03,0xcf,0x06,0x05,0x06,0x06,0x06,0x07,0x00,0x02,0x11,0x22, +0x00,0x05,0x02,0xe2,0x03,0x18,0x03,0x19,0x03,0x1a,0x03,0x1b,0x00,0x02,0x11,0x20,0x00,0x05,0x02,0xe3,0x03,0x1c,0x03,0x1d,0x03,0x1e,0x03,0x1f,0x00,0x02,0x0b,0x1e,0x11,0x34,0x11,0x44,0x11,0xda,0x00,0x03,0x0b,0x26,0x11,0x64,0x0f,0x68,0x00,0x02,0x11,0x42,0x00,0x06,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83, +0x00,0x02,0x11,0x30,0x00,0x06,0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x00,0x03,0x00,0x01,0x12,0x8e,0x00,0x01,0x05,0x0e,0x00,0x01,0x12,0x8e,0x00,0x01,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x01,0x10,0x4a,0x00,0x01,0x07,0x4e,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xad,0x00,0x03,0x00,0x01,0x10,0xc2,0x00,0x01, +0x07,0x3c,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xae,0x00,0x03,0x00,0x01,0x07,0x34,0x00,0x01,0x10,0x62,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x01,0x07,0x22,0x00,0x01,0x10,0x58,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xb0,0x00,0x03,0x00,0x02,0x10,0x96,0x10,0xe6,0x00,0x01,0x04,0xb8,0x00,0x01,0x10,0xe6,0x00,0x01, +0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x01,0x10,0xd0,0x00,0x01,0x10,0x86,0x00,0x02,0x04,0xa2,0x10,0xd0,0x00,0x01,0x00,0x00,0x00,0x37,0x00,0x03,0x00,0x02,0x10,0x6a,0x10,0xba,0x00,0x01,0x10,0x70,0x00,0x01,0x10,0xba,0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x01,0x10,0xa4,0x00,0x01,0x04,0x76,0x00,0x02,0x10,0x5a,0x10,0xa4, +0x00,0x01,0x00,0x00,0x00,0x39,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0xcc,0x00,0x01,0x10,0x9c,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x78,0x00,0x01,0x11,0x78,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x95,0x00,0x03,0x00,0x01,0x11,0x8e,0x00,0x01,0x11,0x66,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x76, +0x00,0x0a,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x00,0x03,0x00,0x00,0x00,0x01,0x10,0x7c,0x00,0x02,0x10,0x6c,0x10,0x4c,0x00,0x01,0x00,0x00,0x01,0x96,0x00,0x02,0x10,0x7c,0x00,0x0b,0x03,0x02,0x03,0x03,0x03,0x04,0x03,0x05,0x03,0x06,0x03,0x07,0x03,0x08,0x03,0x09, +0x03,0x0a,0x03,0x0b,0x04,0x3b,0x00,0x02,0x11,0x9e,0x00,0x0f,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e,0x00,0x02,0x11,0x9c,0x00,0x0f,0x02,0xdf,0x02,0xe0,0x02,0xe1,0x03,0x0c,0x03,0x0d,0x03,0x0e,0x03,0x0f,0x03,0x10, +0x03,0x11,0x03,0x12,0x03,0x13,0x03,0x14,0x03,0x15,0x03,0x16,0x03,0x17,0x00,0x02,0x11,0x9a,0x00,0x10,0x00,0xba,0x00,0xbb,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c,0x02,0x4d,0x02,0x73,0x02,0x74,0x02,0x9c,0x00,0x02,0x11,0x1a,0x00,0x13,0x01,0xb0,0x01,0xb1,0x01,0xb2, +0x01,0xb3,0x01,0xb4,0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x00,0x01,0x13,0xd6,0x00,0x24,0x11,0xf8,0x11,0x90,0x11,0x98,0x11,0xa0,0x11,0xa8,0x11,0xb0,0x11,0xb8,0x11,0xc0,0x11,0xc8,0x11,0xd0,0x12,0x02,0x12,0x7e,0x11,0xd8, +0x12,0x0c,0x12,0x52,0x11,0x6c,0x12,0x16,0x12,0x22,0x12,0x6e,0x11,0x72,0x11,0x78,0x11,0xe0,0x12,0x2e,0x11,0x7e,0x11,0xe8,0x12,0xc2,0x12,0x3a,0x11,0x84,0x12,0x46,0x12,0xe2,0x13,0x4a,0x12,0xa8,0x12,0x60,0x11,0x8a,0x11,0xf0,0x12,0x92,0x00,0x02,0x13,0x42,0x00,0x26,0x00,0xb5,0x00,0xb6,0x00,0xb7,0x00,0xb8,0x00,0xb9,0x01,0xc3, +0x01,0x93,0x01,0x94,0x01,0x95,0x01,0x96,0x01,0x97,0x01,0x98,0x01,0x99,0x01,0x84,0x01,0x85,0x01,0x86,0x01,0x87,0x01,0x88,0x01,0x9a,0x01,0x9b,0x01,0x9c,0x01,0x9d,0x01,0x9e,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x09,0x02,0x0a,0x02,0x4e,0x02,0x4f,0x02,0x9d,0x02,0x9e, +0x00,0x02,0x0f,0xd0,0x00,0x27,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae, +0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0x22,0x00,0x29,0x03,0x40,0x03,0x41,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0, +0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xd6,0x00,0x2f,0x01,0x00,0x06,0xcc,0x06,0xcb,0x01,0x0e,0x01,0x91,0x01,0x00,0x01,0x0e, +0x01,0x91,0x06,0x8e,0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1, +0x06,0xbc,0x06,0xbd,0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x02,0x12,0xca,0x00,0x3b,0x00,0xba,0x00,0xbb,0x01,0xa2,0x01,0x9f,0x01,0xa0,0x01,0xa1,0x01,0x7e,0x01,0x7f,0x01,0x80,0x01,0x81,0x01,0x82,0x01,0x83,0x01,0xa3,0x01,0xa4,0x01,0xa5,0x01,0xa6,0x01,0xb0,0x01,0xb1,0x01,0xb2,0x01,0xb3,0x01,0xb4, +0x01,0xb5,0x01,0xb6,0x01,0xb7,0x01,0xb8,0x01,0xb9,0x01,0xba,0x01,0xbb,0x01,0xbc,0x01,0xbd,0x01,0xbe,0x01,0xbf,0x01,0xc0,0x01,0xc1,0x01,0xc2,0x01,0xa7,0x01,0xa8,0x01,0xa9,0x01,0xaa,0x01,0xab,0x01,0xac,0x01,0xad,0x01,0xae,0x01,0xaf,0x02,0x05,0x02,0x06,0x02,0x07,0x02,0x09,0x02,0x0a,0x02,0x08,0x02,0x4a,0x02,0x4b,0x02,0x4c, +0x02,0x4e,0x02,0x4f,0x02,0x4d,0x02,0x9d,0x02,0x9c,0x02,0x9e,0x00,0x02,0x12,0xc4,0x00,0x3d,0x01,0xc6,0x01,0xc7,0x00,0x86,0x00,0x8d,0x01,0xc6,0x01,0x06,0x01,0xc7,0x01,0x49,0x01,0x7d,0x01,0x50,0x02,0xee,0x02,0xef,0x02,0xf0,0x02,0xf1,0x02,0xf2,0x02,0xf3,0x02,0xf4,0x02,0xf5,0x02,0xf6,0x02,0xf7,0x03,0x41,0x06,0xce,0x06,0x8e, +0x06,0x8f,0x06,0x90,0x06,0x91,0x06,0x92,0x06,0x93,0x06,0x94,0x06,0x95,0x06,0x96,0x06,0x97,0x06,0x98,0x06,0x99,0x06,0x9a,0x06,0x9c,0x06,0x9d,0x06,0x9e,0x06,0xa0,0x06,0xa1,0x06,0xa2,0x06,0xa5,0x06,0xa6,0x06,0xa7,0x06,0xa8,0x06,0xa9,0x06,0xaa,0x06,0xab,0x06,0xac,0x06,0xad,0x06,0xae,0x06,0xaf,0x06,0xb1,0x06,0xbc,0x06,0xbd, +0x06,0xbe,0x06,0xbf,0x06,0xc0,0x06,0xc1,0x06,0xc2,0x06,0xc3,0x00,0x01,0x00,0x01,0x00,0xff,0x00,0x01,0x00,0x01,0x02,0xd4,0x00,0x01,0x00,0x01,0x01,0x1a,0x00,0x01,0x00,0x01,0x00,0x7c,0x00,0x01,0x00,0x01,0x00,0xf4,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, +0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01, +0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x32,0x00,0x01,0x12,0x30,0x00,0x01,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0x24,0x00,0x01,0x12,0x2e,0x00,0x01,0x12,0x38,0x00,0x01,0x12,0x42, +0x00,0x01,0x12,0x4c,0x00,0x01,0x12,0x56,0x00,0x01,0x12,0x60,0x00,0x01,0x12,0x6a,0x00,0x01,0x15,0x74,0x00,0x01,0x12,0x70,0x00,0x01,0x12,0x7a,0x00,0x01,0x12,0x84,0x00,0x01,0x15,0x74,0x00,0x01,0x15,0x80,0x00,0x01,0x12,0x86,0x00,0x01,0x12,0x90,0x00,0x01,0x15,0x84,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0x92,0x00,0x01,0x12,0x9c, +0x00,0x01,0x15,0x94,0x00,0x01,0x12,0xa2,0x00,0x01,0x12,0xac,0x00,0x01,0x12,0xb6,0x00,0x01,0x12,0xc0,0x00,0x01,0x12,0xca,0x00,0x01,0x12,0xd4,0x00,0x01,0x15,0x88,0x00,0x01,0x12,0xda,0x00,0x01,0x15,0x90,0x00,0x01,0x12,0xe0,0x00,0x01,0x15,0x98,0x00,0x01,0x12,0xe6,0x00,0x01,0x12,0xf0,0x00,0x01,0x12,0xfa,0x00,0x01,0x13,0x04, +0x00,0x01,0x15,0x94,0x00,0x01,0x19,0xc4,0x00,0x01,0x15,0x9c,0x00,0x01,0x13,0x02,0x00,0x01,0x15,0xa4,0x00,0x01,0x15,0xb0,0x00,0x01,0x13,0x04,0x00,0x01,0x13,0x0e,0x00,0x01,0x13,0x18,0x00,0x01,0x13,0x22,0x00,0x01,0x13,0x2c,0x00,0x01,0x13,0x36,0x00,0x01,0x13,0x40,0x00,0x01,0x15,0xa0,0x00,0x01,0x15,0xac,0x00,0x01,0x15,0xb8, +0x00,0x01,0x15,0xc4,0x00,0x01,0x15,0xd0,0x00,0x01,0x15,0xdc,0x00,0x01,0x15,0xe8,0x00,0x01,0x13,0x2e,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x34,0x00,0x01,0x13,0x3e,0x00,0x01,0x13,0x48,0x00,0x01,0x15,0xf0,0x00,0x01,0x13,0x4e,0x00,0x01,0x13,0x58,0x00,0x01,0x13,0x62,0x00,0x01,0x13,0x6c,0x00,0x01,0x13,0x76,0x00,0x01,0x13,0x80, +0x00,0x01,0x13,0x8a,0x00,0x01,0x13,0x94,0x00,0x01,0x13,0x9e,0x00,0x01,0x13,0xa8,0x00,0x01,0x13,0xb2,0x00,0x01,0x13,0xbc,0x00,0x01,0x13,0xc6,0x00,0x01,0x13,0xd0,0x00,0x01,0x13,0xda,0x00,0x01,0x13,0xe4,0x00,0x01,0x13,0xee,0x00,0x01,0x13,0xf8,0x00,0x01,0x14,0x02,0x00,0x01,0x14,0x0c,0x00,0x01,0x14,0x16,0x00,0x02,0x00,0x01, +0x01,0x4c,0x01,0x50,0x00,0x00,0x00,0x02,0x00,0x01,0x00,0xf5,0x00,0xfb,0x00,0x00,0x00,0x02,0x00,0x01,0x01,0x40,0x01,0x43,0x00,0x00,0x00,0x02,0x20,0xe0,0x20,0xf2,0x00,0x02,0x18,0xfa,0x19,0x0a,0x00,0x02,0x13,0xf6,0x15,0x7e,0x00,0x02,0x13,0xfc,0x15,0x86,0x00,0x02,0x19,0x08,0x19,0x18,0x00,0x02,0x19,0x22,0x19,0x32,0x00,0x02, +0x19,0x3c,0x19,0x4c,0x00,0x02,0x19,0x56,0x19,0x66,0x00,0x02,0x19,0x70,0x19,0x80,0x00,0x02,0x19,0x8a,0x19,0x9a,0x00,0x02,0x19,0xa4,0x19,0xb4,0x00,0x02,0x19,0xbe,0x19,0xce,0x00,0x02,0x19,0xd8,0x19,0xe8,0x00,0x02,0x19,0xf2,0x1a,0x02,0x00,0x02,0x1a,0x0c,0x1a,0x1c,0x00,0x01,0x20,0xaa,0x00,0x01,0x20,0xb8,0x00,0x01,0x20,0xc6, +0x00,0x01,0x1a,0x1a,0x00,0x01,0x1a,0x26,0x00,0x01,0x1a,0x32,0x00,0x01,0x1a,0x3e,0x00,0x01,0x1a,0x4a,0x00,0x01,0x1a,0x56,0x00,0x01,0x1a,0x62,0x00,0x01,0x1a,0x6e,0x00,0x01,0x1a,0x7a,0x00,0x01,0x1a,0x86,0x00,0x01,0x1a,0x92,0x00,0x01,0x1a,0x9e,0x00,0x01,0x1a,0xaa,0x00,0x01,0x1a,0xb6,0x00,0x01,0x1a,0xc2,0x00,0x01,0x1a,0xce, +0x00,0x01,0x1a,0xda,0x00,0x01,0x1a,0xe6,0x00,0x01,0x1a,0xf2,0x00,0x01,0x1a,0xfe,0x00,0x01,0x1b,0x0a,0x00,0x01,0x1b,0x16,0x00,0x01,0x1b,0x22,0x00,0x01,0x1b,0x2e,0x00,0x01,0x1b,0x3a,0x00,0x01,0x1b,0x46,0x00,0x01,0x1b,0x52,0x00,0x01,0x1b,0x5e,0x00,0x01,0x1b,0x6a,0x00,0x02,0x00,0x01,0x02,0xf8,0x03,0x01,0x00,0x00,0x00,0x02, +0x00,0x01,0x02,0xd4,0x02,0xdd,0x00,0x00,0x00,0x04,0x14,0xb8,0x14,0xc4,0x1b,0x62,0x1b,0x70,0x00,0x04,0x14,0xc6,0x14,0xd2,0x1b,0x74,0x1b,0x82,0x00,0x04,0x14,0xd4,0x16,0xcc,0x1b,0x86,0x1b,0x94,0x00,0x04,0x14,0xd6,0x16,0x0e,0x1b,0x98,0x1b,0xa6,0x00,0x04,0x14,0xd8,0x14,0xe4,0x1b,0xaa,0x1b,0xb8,0x00,0x04,0x14,0xe6,0x16,0xc6, +0x1b,0xbc,0x1b,0xca,0x00,0x04,0x14,0xe8,0x14,0xf4,0x1b,0xce,0x1b,0xdc,0x00,0x04,0x14,0xf6,0x16,0xca,0x1b,0xe0,0x1b,0xee,0x00,0x04,0x1f,0xfc,0x20,0x0c,0x20,0x1c,0x20,0x2c,0x00,0x03,0x20,0x32,0x26,0xa4,0x26,0xb6,0x00,0x03,0x20,0x3a,0x26,0xc0,0x26,0xd2,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x46, +0x03,0x57,0x00,0x03,0x1b,0xc8,0x1b,0xd6,0x20,0x32,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x03,0x14,0xb6,0x16,0x7e,0x1b,0xcc,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xb4,0x00,0x03,0x14,0xb2,0x14,0xbe,0x1b,0xca,0x00,0x01,0x00,0x02,0x03,0x46,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47, +0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x48,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x47,0x04,0x1c,0x00,0x03,0x14,0xa2,0x16,0x5e,0x1b,0xb0,0x00,0x01,0x00,0x02,0x03,0x45,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3e,0x00,0x03,0x1b,0xa6,0x1e,0xf6,0x1f,0xda,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x03,0x14,0x86,0x16,0x06, +0x1b,0xa4,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x03,0x14,0x82,0x16,0xf2,0x1b,0xa2,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1c,0x00,0x03,0x1f,0xba,0x1f,0xca,0x26,0x34,0x00,0x03,0x26,0x3e,0x26,0x50,0x26,0x62,0x00,0x01,0x00,0x02,0x04,0x1c,0x05,0xbe,0x00,0x03,0x1b,0x88,0x1e,0x00,0x1f,0xc2,0x00,0x03,0x14,0x5e,0x15,0xd2, +0x1b,0x8e,0x00,0x01,0x00,0x02,0x03,0x48,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x5c,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x03,0x14,0x4a,0x16,0xa2,0x1b,0x7c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x03,0x16,0x76,0x16,0x82, +0x1b,0x6a,0x00,0x01,0x00,0x02,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x03,0x1b,0x58,0x1d,0xd8,0x1f,0x6a,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x30,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x19,0x00,0x03,0x13,0xfe,0x15,0x42,0x1b,0x4e,0x00,0x01,0x00,0x02,0x03,0x29, +0x03,0x30,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xb5,0x00,0x03,0x13,0xf2,0x16,0x1a,0x1b,0x44,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x03,0x1b,0x2a,0x1d,0x4e,0x1f,0x22,0x00,0x01,0x00,0x02,0x04,0x19, +0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x03,0x13,0xbe,0x15,0xf2,0x1b,0x20,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x22,0x00,0x03,0x13,0xba,0x15,0x22,0x1b,0x1e,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x22,0x00,0x03,0x13,0xb6,0x13,0xc2,0x1b,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x05,0xb4,0x00,0x03,0x13,0xbe,0x15,0xaa, +0x1b,0x1a,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x23,0x00,0x03,0x13,0xba,0x13,0xc6,0x1b,0x18,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1c,0x00,0x03,0x13,0xc2,0x15,0xa2,0x1b,0x16,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x03,0x13,0xbe,0x13,0xca,0x1b,0x14,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1c,0x00,0x03,0x15,0x5e,0x15,0x82, +0x1b,0x12,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x03,0x13,0xb6,0x14,0xbe,0x1b,0x10,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1c,0x00,0x03,0x13,0xb2,0x15,0x62,0x1b,0x0e,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x03,0x13,0xae,0x14,0xaa,0x1b,0x0c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1c,0x00,0x03,0x15,0x12,0x15,0x42, +0x1b,0x0a,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1b,0x08,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x45,0x00,0x03,0x13,0xa2,0x13,0xae,0x1b,0x06,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x47,0x00,0x03,0x13,0xaa,0x13,0xb6,0x1b,0x04,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x43,0x00,0x03,0x13,0xb2,0x14,0x06, +0x1b,0x02,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x5c,0x00,0x03,0x13,0xa6,0x14,0x12,0x1a,0xf8,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x3a,0x00,0x03,0x13,0xa2,0x13,0xea,0x1a,0xf6,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x3a,0x00,0x03,0x13,0x9e,0x14,0xb2,0x1a,0xf4,0x00,0x01,0x00,0x02,0x03,0x3a, +0x04,0x19,0x00,0x03,0x13,0x9a,0x13,0xa6,0x1a,0xf2,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x48,0x00,0x01,0x00,0x02,0x00,0xf4,0x01,0xa2,0x00,0x01,0x00,0x02,0x01,0xdd,0x02,0x21,0x00,0x02,0x24,0x34,0x24,0x46,0x00,0x02,0x24,0x52,0x24,0x64,0x00,0x02,0x24,0x70,0x24,0x82,0x00,0x02,0x24,0x8e,0x24,0xa0,0x00,0x01,0x00,0x02,0x03,0x57, +0x04,0x1c,0x00,0x00,0x00,0x05,0x1d,0xa0,0x1d,0xae,0x24,0xa2,0x24,0xb2,0x24,0xc2,0x00,0x05,0x1c,0x2c,0x13,0xc4,0x1a,0xb2,0x1d,0xb0,0x1d,0xbe,0x00,0x05,0x1d,0xc0,0x1d,0xce,0x24,0xba,0x24,0xca,0x24,0xda,0x00,0x05,0x23,0x1c,0x23,0x2a,0x24,0xde,0x24,0xee,0x24,0xfe,0x00,0x05,0x1d,0xc4,0x1d,0xd2,0x25,0x02,0x25,0x12,0x25,0x22, +0x00,0x05,0x1a,0x8e,0x13,0x34,0x1a,0x9a,0x1d,0xd4,0x1d,0xe2,0x00,0x05,0x1d,0xe4,0x1d,0xf2,0x25,0x1a,0x25,0x2a,0x25,0x3a,0x00,0x05,0x1d,0xf4,0x1b,0x68,0x25,0x3e,0x25,0x4e,0x25,0x5e,0x00,0x05,0x1d,0xf6,0x1b,0x4e,0x25,0x62,0x25,0x72,0x25,0x82,0x00,0x05,0x1a,0x76,0x13,0x1c,0x1b,0x2a,0x1d,0xf8,0x1e,0x06,0x00,0x05,0x1e,0x08, +0x1e,0x16,0x25,0x7a,0x25,0x8a,0x25,0x9a,0x00,0x05,0x1e,0x18,0x1e,0x26,0x25,0x9e,0x25,0xae,0x25,0xbe,0x00,0x05,0x1e,0x28,0x1e,0x36,0x25,0xc2,0x25,0xd2,0x25,0xe2,0x00,0x05,0x1e,0x38,0x1e,0x46,0x25,0xe6,0x25,0xf6,0x26,0x06,0x00,0x04,0x26,0x0a,0x26,0x1a,0x2b,0xfa,0x2c,0x0c,0x00,0x04,0x1e,0x3e,0x1e,0x4c,0x26,0x20,0x26,0x30, +0x00,0x04,0x1a,0x32,0x12,0xcc,0x1a,0xda,0x1e,0x50,0x00,0x04,0x1a,0x34,0x1b,0x7e,0x13,0x9a,0x1e,0x54,0x00,0x04,0x1e,0x58,0x1e,0x66,0x26,0x22,0x26,0x32,0x00,0x04,0x1e,0x6a,0x1e,0x78,0x26,0x38,0x26,0x48,0x00,0x04,0x1a,0x22,0x1a,0x2e,0x12,0xa4,0x1e,0x7c,0x00,0x04,0x1e,0x80,0x1e,0x8e,0x26,0x44,0x26,0x54,0x00,0x04,0x1e,0x92, +0x1e,0xa0,0x26,0x5a,0x26,0x6a,0x00,0x04,0x1e,0xa4,0x1e,0xc0,0x1e,0xb2,0x26,0x70,0x00,0x04,0x1a,0x2a,0x1e,0xb6,0x1a,0x12,0x1e,0xc4,0x00,0x04,0x1a,0x14,0x1a,0x20,0x12,0x96,0x1e,0xc8,0x00,0x04,0x1e,0xcc,0x1e,0xda,0x26,0x62,0x26,0x72,0x00,0x04,0x1e,0xde,0x1e,0xec,0x26,0x78,0x26,0x88,0x00,0x04,0x1b,0x10,0x1a,0x0e,0x13,0x2c, +0x1e,0xf0,0x00,0x04,0x1a,0x10,0x1b,0x12,0x1b,0x2c,0x1e,0xf4,0x00,0x04,0x1a,0x12,0x12,0x34,0x1a,0x1e,0x1e,0xf8,0x00,0x04,0x1e,0xfc,0x21,0xa0,0x26,0x70,0x26,0x80,0x00,0x04,0x26,0x86,0x1f,0x00,0x26,0x96,0x26,0xa6,0x00,0x04,0x26,0xac,0x1f,0x04,0x26,0xbc,0x26,0xcc,0x00,0x04,0x1a,0x02,0x12,0x48,0x1a,0xb0,0x1f,0x08,0x00,0x04, +0x1a,0x04,0x1a,0xb2,0x12,0xe6,0x1f,0x0c,0x00,0x04,0x1a,0x06,0x12,0x04,0x1a,0x12,0x1f,0x10,0x00,0x04,0x1a,0x14,0x12,0xd2,0x1a,0x9e,0x1f,0x14,0x00,0x04,0x1f,0x18,0x1f,0x26,0x26,0xaa,0x26,0xba,0x00,0x04,0x1f,0x2a,0x26,0xc0,0x1a,0x0c,0x26,0xd0,0x00,0x04,0x1f,0x2e,0x21,0xc8,0x26,0xd6,0x26,0xe6,0x00,0x04,0x1f,0x32,0x1f,0x40, +0x26,0xec,0x26,0xfc,0x00,0x04,0x1f,0x44,0x1f,0x52,0x27,0x02,0x27,0x12,0x00,0x04,0x1f,0x56,0x21,0x0e,0x27,0x18,0x27,0x28,0x00,0x04,0x1a,0x28,0x1a,0x34,0x1a,0x40,0x1f,0x5a,0x00,0x04,0x1f,0x5e,0x27,0x24,0x19,0xde,0x27,0x34,0x00,0x04,0x1f,0x62,0x1f,0x70,0x1f,0x7e,0x27,0x3a,0x00,0x04,0x19,0xd8,0x1a,0x16,0x1a,0x22,0x1f,0x82, +0x00,0x04,0x1f,0x86,0x1f,0xda,0x27,0x36,0x27,0x46,0x00,0x04,0x19,0xd0,0x11,0x8e,0x19,0xdc,0x1f,0x8a,0x00,0x03,0x27,0x42,0x29,0x66,0x2a,0xb6,0x00,0x03,0x27,0x4a,0x27,0x5a,0x2a,0xc0,0x00,0x03,0x1f,0x7e,0x20,0xb8,0x27,0x62,0x00,0x03,0x20,0xd8,0x20,0xe6,0x27,0x6a,0x00,0x03,0x1f,0x7c,0x1f,0x8a,0x27,0x72,0x00,0x03,0x1f,0x90, +0x1f,0x9e,0x27,0x7a,0x00,0x03,0x1f,0xa4,0x1f,0xb2,0x27,0x82,0x00,0x03,0x1f,0xb8,0x21,0x2c,0x27,0x8a,0x00,0x03,0x1f,0xbe,0x20,0x88,0x27,0x92,0x00,0x03,0x1f,0xc4,0x1f,0xd2,0x27,0x9a,0x00,0x03,0x1f,0xd8,0x1f,0xe6,0x27,0xa2,0x00,0x03,0x1f,0xec,0x1f,0xfa,0x27,0xaa,0x00,0x03,0x20,0x00,0x20,0x0e,0x27,0xb2,0x00,0x03,0x20,0x14, +0x20,0x22,0x27,0xba,0x00,0x06,0x2a,0x6a,0x2a,0x7a,0x2d,0xde,0x2d,0xf0,0x2e,0x02,0x2e,0x14,0x00,0x06,0x20,0x1a,0x27,0xb4,0x2a,0x7c,0x11,0x12,0x27,0xc2,0x27,0xd0,0x00,0x06,0x20,0x18,0x11,0x10,0x0c,0xfc,0x20,0x24,0x27,0xd0,0x27,0xde,0x00,0x06,0x2a,0x70,0x27,0xde,0x19,0x44,0x2a,0x80,0x2a,0x90,0x2a,0xa0,0x00,0x06,0x20,0x14, +0x19,0x44,0x19,0x50,0x19,0x5c,0x27,0xde,0x27,0xec,0x00,0x05,0x27,0xec,0x28,0x5c,0x28,0x6a,0x2a,0x94,0x2a,0xa4,0x00,0x05,0x29,0x16,0x27,0xee,0x20,0x06,0x2a,0xa8,0x2a,0xb8,0x00,0x05,0x20,0x08,0x11,0x82,0x19,0x4e,0x20,0x7e,0x27,0xf0,0x00,0x05,0x29,0x9c,0x2d,0x0c,0x19,0x72,0x29,0xaa,0x2a,0xb0,0x00,0x05,0x27,0xe6,0x2d,0x00, +0x2d,0xb0,0x19,0x66,0x2a,0xb4,0x00,0x05,0x27,0xe8,0x2a,0xb8,0x27,0xf6,0x2a,0xc8,0x2a,0xd8,0x00,0x05,0x27,0xf8,0x2a,0xdc,0x1f,0xe4,0x2a,0xec,0x2a,0xfc,0x00,0x05,0x2b,0x00,0x2b,0x10,0x2d,0x9e,0x2d,0xb0,0x2d,0xc2,0x00,0x05,0x27,0xee,0x1f,0xda,0x1f,0xe8,0x2b,0x14,0x2b,0x24,0x00,0x05,0x27,0xf0,0x2b,0x28,0x27,0xfe,0x2b,0x38, +0x2b,0x48,0x00,0x05,0x28,0x00,0x2b,0x4c,0x28,0x0e,0x2b,0x5c,0x2b,0x6c,0x00,0x05,0x1f,0xd2,0x10,0x6e,0x18,0xd6,0x1f,0xde,0x28,0x10,0x00,0x05,0x20,0x12,0x18,0xfa,0x1f,0xde,0x19,0x14,0x28,0x12,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x45,0x03,0x57,0x00,0x04,0x2b,0x4e,0x2d,0x82,0x28,0x0a,0x2d,0x94,0x00,0x01,0x00,0x03,0x03,0x2e, +0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x04,0x1c,0x00,0x04,0x27,0xfc,0x2c,0x88,0x1f,0xea,0x2b,0x40,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x30,0x04,0x1b,0x00,0x04,0x2b,0x28,0x2d,0x60,0x2b,0x38,0x2d,0x72, +0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x05,0xbe,0x00,0x04,0x27,0xba,0x2b,0x20,0x27,0xc8,0x2b,0x30,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x05,0xbe,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03, +0x03,0x57,0x04,0x1b,0x05,0xbe,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x43,0x03,0x5c,0x00,0x02,0x2a,0xe6,0x27,0x7c,0x00,0x02, +0x27,0x84,0x27,0x92,0x00,0x01,0x27,0x9a,0x00,0x07,0x18,0x00,0x2d,0x02,0x2b,0x72,0x10,0x1c,0x17,0xe8,0x2a,0xe6,0x2a,0xf4,0x00,0x07,0x27,0x94,0x2e,0x02,0x27,0xa2,0x27,0xae,0x0f,0x64,0x2a,0xf2,0x2b,0x00,0x00,0x06,0x27,0xaa,0x27,0xb6,0x0f,0x60,0x27,0xc2,0x27,0xce,0x2a,0xfe,0x00,0x06,0x2a,0xfe,0x1e,0xce,0x1e,0xdc,0x2b,0x0c, +0x2b,0x1a,0x2c,0xc4,0x00,0x06,0x27,0xbe,0x17,0xb8,0x27,0xca,0x0f,0x50,0x27,0xd6,0x2b,0x1a,0x00,0x06,0x1e,0xce,0x27,0xd4,0x27,0xe0,0x2b,0x28,0x0f,0xd2,0x2b,0x1a,0x00,0x06,0x27,0xde,0x2b,0x1a,0x2c,0xaa,0x17,0xa8,0x0f,0xc4,0x2b,0x28,0x00,0x04,0x0f,0x32,0x0f,0x38,0x0f,0x3e,0x0f,0x44,0x00,0x04,0x0f,0x40,0x0f,0x46,0x0f,0x4c, +0x0f,0x52,0x00,0x04,0x0f,0x4e,0x0f,0x54,0x0f,0x5a,0x0f,0x60,0x00,0x04,0x0f,0x5c,0x0f,0x62,0x0f,0x68,0x0f,0x6e,0x00,0x01,0x01,0x4a,0x00,0x01,0x00,0x01,0x00,0x08,0x17,0x76,0x1e,0x8e,0x2a,0xf8,0x17,0x90,0x2b,0x48,0x2b,0x04,0x2c,0x7c,0x2c,0x8a,0x00,0x08,0x2b,0x5a,0x0f,0x8c,0x2b,0x66,0x2a,0xfe,0x2b,0x4e,0x0f,0x5c,0x2c,0x86, +0x2c,0x94,0x00,0x08,0x2c,0x90,0x2a,0xf8,0x27,0x88,0x17,0x5e,0x27,0x96,0x2d,0x6a,0x2d,0x7a,0x2d,0x8a,0x00,0x07,0x2b,0x1e,0x2a,0xf6,0x2b,0x36,0x0f,0x5c,0x0f,0x68,0x0f,0x44,0x2c,0x8c,0x00,0x07,0x2c,0x8a,0x2c,0x98,0x2d,0xd0,0x2a,0xf2,0x1e,0x54,0x2d,0x78,0x2d,0x88,0x00,0x01,0x00,0x04,0x00,0x84,0x00,0x8c,0x01,0x47,0x01,0x4f, +0x00,0x01,0x00,0x04,0x00,0x01,0x00,0x60,0x00,0xbd,0x01,0x22,0x00,0x01,0x00,0x04,0x03,0x90,0x03,0x91,0x06,0x23,0x06,0x24,0x00,0x01,0x00,0x04,0x01,0x0d,0x01,0x0e,0x01,0x0f,0x02,0x36,0x00,0x01,0x00,0x04,0x05,0xb5,0x06,0x0c,0x06,0x0d,0x06,0x0e,0x00,0x01,0x00,0x01,0x03,0x20,0x00,0x08,0x2c,0x54,0x16,0xf8,0x2c,0x60,0x2c,0x6c, +0x2c,0x78,0x2c,0x84,0x2a,0xb0,0x2d,0x46,0x00,0x08,0x2c,0x7e,0x2c,0x8a,0x2c,0x96,0x2c,0xa2,0x2c,0xae,0x2c,0xba,0x0a,0x20,0x2d,0x42,0x00,0x08,0x2c,0xb4,0x0e,0xca,0x2d,0x6c,0x2d,0x7c,0x2d,0x8c,0x2d,0x9c,0x2d,0x3e,0x2d,0x4c,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0xbd,0x00,0x01,0x00,0x02,0x00,0x60,0x01,0x22,0x00,0x09,0x2a,0x76, +0x2a,0x82,0x2a,0x8e,0x0e,0xb4,0x2d,0xa6,0x2d,0x8a,0x2a,0x9a,0x0e,0xc0,0x2d,0x98,0x00,0x01,0x00,0x05,0x03,0xc3,0x03,0xc5,0x06,0x1c,0x06,0x42,0x06,0x43,0x00,0x01,0x00,0x05,0x02,0xdc,0x02,0xec,0x02,0xf6,0x03,0x00,0x03,0x0a,0x00,0x01,0x00,0x05,0x02,0xd9,0x02,0xe9,0x02,0xf3,0x02,0xfd,0x03,0x07,0x00,0x02,0x00,0x01,0x02,0xee, +0x02,0xf7,0x00,0x00,0x00,0x01,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3e,0x00,0x02,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x06,0xce,0x06,0xce,0x00,0x02,0x00,0x02,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x01,0x00,0x06,0x01,0x13,0x01,0x14,0x01,0x16,0x01,0x17,0x01,0x18,0x01,0x19, +0x00,0x09,0x2d,0x32,0x2d,0x3e,0x2d,0x6e,0x2d,0x8a,0x2d,0x9a,0x2d,0x4a,0x2d,0x56,0x2d,0x62,0x2d,0x7c,0x00,0x01,0x00,0x05,0x03,0x29,0x03,0x32,0x03,0x33,0x03,0xbe,0x05,0xc6,0x00,0x02,0x00,0x02,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x76,0x00,0x05,0x00,0x02,0x00,0x02,0x00,0xa2,0x00,0xa6,0x00,0x00,0x01,0x6a,0x01,0x6e, +0x00,0x05,0x00,0x02,0x00,0x02,0x06,0x77,0x06,0x79,0x00,0x00,0x06,0x7b,0x06,0x7f,0x00,0x03,0x00,0x01,0x00,0x08,0x00,0xff,0x01,0x07,0x01,0x0b,0x01,0x0d,0x01,0x90,0x02,0x34,0x02,0x36,0x02,0x49,0x00,0x02,0x00,0x02,0x02,0xd4,0x02,0xdd,0x00,0x00,0x04,0x15,0x04,0x15,0x00,0x0a,0x00,0x02,0x00,0x05,0x02,0xd4,0x02,0xde,0x00,0x01, +0x03,0x57,0x03,0x57,0x00,0x03,0x04,0x1b,0x04,0x1b,0x00,0x04,0x04,0x1c,0x04,0x1c,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x05,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc,0x00,0x01,0x01,0xc8,0x01,0xfe,0x00,0x01,0x02,0x03,0x02,0x03,0x00,0x01,0x02,0x05,0x02,0x0a,0x00,0x01,0x02,0x51,0x02,0x74,0x00,0x01,0x02,0xa0,0x02,0xb9,0x00,0x01, +0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x01,0x06,0x6e,0x06,0x78,0x00,0x01,0x06,0x7a,0x06,0x7c,0x00,0x01,0x06,0x80,0x06,0x8a,0x00,0x01,0x06,0xb0,0x06,0xb0,0x00,0x01,0x06,0xb4,0x06,0xbb,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x8e,0x06,0x9a,0x00,0x01,0x06,0x9c,0x06,0x9e,0x00,0x01,0x06,0xa0,0x06,0xa2,0x00,0x01,0x06,0xa5, +0x06,0xaf,0x00,0x01,0x06,0xb1,0x06,0xb1,0x00,0x01,0x06,0xbc,0x06,0xc3,0x00,0x01,0x00,0x02,0x00,0x06,0x06,0x68,0x06,0x6c,0x00,0x00,0x06,0x6e,0x06,0x78,0x00,0x05,0x06,0x7a,0x06,0x7c,0x00,0x10,0x06,0x80,0x06,0x8a,0x00,0x13,0x06,0xb0,0x06,0xb0,0x00,0x1e,0x06,0xb4,0x06,0xbb,0x00,0x1f,0x00,0x02,0x00,0x06,0x00,0x01,0x00,0xbc, +0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74,0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x00,0x02,0x00,0x07,0x00,0x01,0x00,0xbc,0x00,0x00,0x01,0xc8,0x01,0xfe,0x00,0xbc,0x02,0x03,0x02,0x03,0x00,0xf3,0x02,0x05,0x02,0x0a,0x00,0xf4,0x02,0x51,0x02,0x74, +0x00,0xfa,0x02,0xa0,0x02,0xb9,0x01,0x1e,0x02,0xd4,0x02,0xde,0x01,0x38,0x00,0x02,0x00,0x03,0x01,0x51,0x01,0x53,0x00,0x00,0x01,0x55,0x01,0x56,0x00,0x03,0x01,0x5b,0x01,0x68,0x00,0x05,0x00,0x01,0x00,0x0f,0x01,0x70,0x01,0x71,0x01,0x72,0x01,0x73,0x01,0x74,0x01,0x75,0x01,0x76,0x01,0x77,0x01,0x78,0x01,0xdf,0x01,0xe0,0x02,0x23, +0x02,0x24,0x02,0x77,0x02,0x7f,0x00,0x01,0x00,0x0f,0x02,0xd6,0x02,0xda,0x02,0xdd,0x02,0xe6,0x02,0xea,0x02,0xed,0x02,0xf0,0x02,0xf4,0x02,0xf7,0x02,0xfa,0x02,0xfe,0x03,0x01,0x03,0x04,0x03,0x08,0x03,0x0b,0x00,0x01,0x00,0x10,0x00,0x51,0x00,0x52,0x01,0x10,0x01,0x11,0x01,0x12,0x01,0xd1,0x01,0xd5,0x01,0xd6,0x01,0xf8,0x02,0x15, +0x02,0x19,0x02,0x1a,0x02,0x3c,0x02,0x5a,0x02,0x72,0x02,0x7e,0x00,0x02,0x03,0x41,0x03,0x42,0x00,0x02,0x03,0xae,0x06,0xce,0x00,0x02,0x03,0x9a,0x03,0xa5,0x00,0x02,0x03,0x9c,0x06,0xce,0x00,0x02,0x06,0x42,0x06,0xce,0x00,0x02,0x06,0x59,0x06,0xce,0x00,0x03,0x02,0xe5,0x02,0xf9,0x03,0x03,0x00,0x03,0x02,0xe6,0x02,0xfa,0x03,0x04, +0x00,0x03,0x02,0xe7,0x02,0xfb,0x03,0x05,0x00,0x03,0x02,0xe8,0x02,0xfc,0x03,0x06,0x00,0x03,0x02,0xe9,0x02,0xfd,0x03,0x07,0x00,0x03,0x02,0xea,0x02,0xfe,0x03,0x08,0x00,0x03,0x02,0xeb,0x02,0xff,0x03,0x09,0x00,0x03,0x02,0xec,0x03,0x00,0x03,0x0a,0x00,0x03,0x02,0xed,0x03,0x01,0x03,0x0b,0x00,0x03,0x03,0x8c,0x03,0x8d,0x06,0xce, +0x00,0x03,0x03,0x76,0x03,0x9b,0x06,0xce,0x00,0x03,0x06,0x12,0x06,0x2c,0x06,0xce,0x00,0x03,0x06,0x0c,0x06,0x0d,0x06,0xce,0x00,0x04,0x02,0xde,0x02,0xe4,0x02,0xf8,0x03,0x02,0x00,0x04,0x03,0x7f,0x03,0x80,0x03,0x92,0x06,0xce,0x00,0x04,0x03,0x79,0x03,0x8e,0x03,0x9e,0x06,0xce,0x00,0x05,0x03,0x97,0x03,0xa6,0x03,0xa7,0x06,0x3c, +0x06,0xce,0x00,0x05,0x03,0x7e,0x03,0xa0,0x03,0xa1,0x03,0xa2,0x06,0xce,0x00,0x05,0x03,0x6e,0x03,0x7b,0x03,0x8f,0x06,0x11,0x06,0xce,0x00,0x05,0x03,0xa4,0x03,0xb0,0x03,0xb1,0x06,0x0b,0x06,0xce,0x00,0x05,0x04,0x3b,0x06,0x1d,0x06,0x1e,0x06,0x45,0x06,0xce,0x00,0x06,0x03,0x82,0x03,0x87,0x03,0x94,0x03,0x95,0x03,0x9f,0x06,0xce, +0x00,0x06,0x03,0x75,0x06,0x52,0x06,0x53,0x06,0x55,0x06,0x5b,0x06,0xce,0x00,0x07,0x03,0x20,0x03,0x99,0x03,0xab,0x03,0xad,0x03,0xaf,0x06,0x56,0x06,0xce,0x00,0x09,0x03,0x40,0x03,0x84,0x03,0x85,0x03,0x93,0x03,0x9d,0x06,0x20,0x06,0x2d,0x06,0x39,0x06,0xce,0x00,0x0a,0x03,0x70,0x03,0x7a,0x03,0x7c,0x06,0x13,0x06,0x36,0x06,0x3e, +0x06,0x3f,0x06,0x40,0x06,0x48,0x06,0xce,0x00,0x0c,0x03,0x73,0x03,0x74,0x03,0x7d,0x03,0x81,0x03,0x8b,0x06,0x28,0x06,0x38,0x06,0x3a,0x06,0x4c,0x06,0x4e,0x06,0x51,0x06,0xce,0x00,0x0f,0x03,0x6c,0x03,0x6d,0x03,0x77,0x03,0x78,0x06,0x0f,0x06,0x14,0x06,0x2a,0x06,0x31,0x06,0x34,0x06,0x35,0x06,0x3b,0x06,0x44,0x06,0x4f,0x06,0x58, +0x06,0xce,0x00,0x19,0x03,0x83,0x03,0x86,0x03,0x89,0x03,0x90,0x03,0x91,0x03,0x96,0x03,0xa3,0x03,0xa8,0x03,0xa9,0x03,0xac,0x06,0x0e,0x06,0x17,0x06,0x19,0x06,0x21,0x06,0x22,0x06,0x23,0x06,0x24,0x06,0x29,0x06,0x2e,0x06,0x32,0x06,0x47,0x06,0x49,0x06,0x50,0x06,0x5d,0x06,0xce,0x00,0x02,0x00,0x08,0x03,0x2b,0x03,0x2b,0x00,0x00, +0x03,0x42,0x03,0x42,0x00,0x01,0x06,0x68,0x06,0x6c,0x00,0x02,0x06,0x6e,0x06,0x78,0x00,0x07,0x06,0x7a,0x06,0x7c,0x00,0x12,0x06,0x80,0x06,0x8a,0x00,0x15,0x06,0xb0,0x06,0xb0,0x00,0x20,0x06,0xb4,0x06,0xbb,0x00,0x21,0x00,0x22,0x03,0x6f,0x03,0x71,0x03,0x72,0x03,0x88,0x03,0x8a,0x03,0x98,0x03,0xaa,0x06,0x10,0x06,0x16,0x06,0x18, +0x06,0x1a,0x06,0x1b,0x06,0x1c,0x06,0x1f,0x06,0x25,0x06,0x26,0x06,0x27,0x06,0x2b,0x06,0x2f,0x06,0x30,0x06,0x33,0x06,0x37,0x06,0x3d,0x06,0x41,0x06,0x43,0x06,0x46,0x06,0x4a,0x06,0x4b,0x06,0x4d,0x06,0x54,0x06,0x57,0x06,0x5a,0x06,0x5c,0x06,0xce,0x00,0x02,0x00,0x0b,0x00,0xa2,0x00,0xa6,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x05, +0x01,0x13,0x01,0x14,0x00,0x06,0x01,0x16,0x01,0x1a,0x00,0x08,0x01,0x4c,0x01,0x50,0x00,0x0d,0x01,0x6a,0x01,0x6e,0x00,0x12,0x01,0x70,0x01,0x78,0x00,0x17,0x01,0xdf,0x01,0xe0,0x00,0x20,0x02,0x23,0x02,0x24,0x00,0x22,0x02,0x77,0x02,0x77,0x00,0x24,0x02,0x7f,0x02,0x7f,0x00,0x25,0x00,0x01,0x00,0x24,0x02,0xd4,0x02,0xd5,0x02,0xd6, +0x02,0xd7,0x02,0xd8,0x02,0xd9,0x02,0xda,0x02,0xdb,0x02,0xdc,0x02,0xdd,0x03,0x29,0x03,0x2b,0x03,0x2c,0x03,0x2e,0x03,0x30,0x03,0x32,0x03,0x34,0x03,0x3a,0x03,0x3d,0x03,0x3e,0x03,0x43,0x03,0x45,0x03,0x46,0x03,0x47,0x03,0x48,0x03,0x57,0x03,0x5c,0x03,0xc5,0x04,0x15,0x04,0x19,0x04,0x1b,0x04,0x1c,0x04,0x22,0x05,0xb4,0x05,0xb5, +0x05,0xbe,0x00,0x02,0x00,0x0e,0x00,0xff,0x00,0xff,0x00,0x00,0x01,0x07,0x01,0x07,0x00,0x01,0x01,0x0b,0x01,0x0b,0x00,0x02,0x01,0x0d,0x01,0x0d,0x00,0x03,0x01,0x90,0x01,0x90,0x00,0x04,0x02,0x34,0x02,0x34,0x00,0x05,0x02,0x36,0x02,0x36,0x00,0x06,0x02,0x49,0x02,0x49,0x00,0x07,0x06,0x68,0x06,0x6c,0x00,0x08,0x06,0x6e,0x06,0x78, +0x00,0x0d,0x06,0x7a,0x06,0x7c,0x00,0x18,0x06,0x80,0x06,0x8a,0x00,0x1b,0x06,0xb0,0x06,0xb0,0x00,0x26,0x06,0xb4,0x06,0xbb,0x00,0x27,0x00,0x02,0x00,0x13,0x00,0x51,0x00,0x52,0x00,0x00,0x00,0xf4,0x00,0xf4,0x00,0x02,0x01,0x10,0x01,0x14,0x00,0x03,0x01,0x16,0x01,0x19,0x00,0x08,0x01,0x40,0x01,0x43,0x00,0x0c,0x01,0x51,0x01,0x53, +0x00,0x10,0x01,0x55,0x01,0x56,0x00,0x13,0x01,0x5b,0x01,0x68,0x00,0x15,0x01,0x70,0x01,0x78,0x00,0x23,0x01,0xd1,0x01,0xd1,0x00,0x2c,0x01,0xd5,0x01,0xd6,0x00,0x2d,0x01,0xdf,0x01,0xe0,0x00,0x2f,0x01,0xf8,0x01,0xf8,0x00,0x31,0x02,0x15,0x02,0x15,0x00,0x32,0x02,0x19,0x02,0x1a,0x00,0x33,0x02,0x23,0x02,0x24,0x00,0x35,0x02,0x3c, +0x02,0x3c,0x00,0x37,0x02,0x77,0x02,0x77,0x00,0x38,0x02,0x7e,0x02,0x7f,0x00,0x39,0x00,0x02,0x00,0x13,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x01,0x00,0x84,0x00,0x84,0x00,0x02,0x00,0x8c,0x00,0x8c,0x00,0x03,0x00,0xbd,0x00,0xbd,0x00,0x04,0x00,0xff,0x00,0xff,0x00,0x05,0x01,0x22,0x01,0x22,0x00,0x06,0x01,0x47, +0x01,0x47,0x00,0x07,0x01,0x4a,0x01,0x4a,0x00,0x08,0x01,0x4f,0x01,0x4f,0x00,0x09,0x02,0xf8,0x03,0x01,0x00,0x0a,0x03,0x42,0x03,0x42,0x00,0x14,0x04,0x23,0x04,0x23,0x00,0x15,0x06,0x68,0x06,0x6c,0x00,0x16,0x06,0x6e,0x06,0x78,0x00,0x1b,0x06,0x7a,0x06,0x7c,0x00,0x26,0x06,0x80,0x06,0x8a,0x00,0x29,0x06,0xb0,0x06,0xb0,0x00,0x34, +0x06,0xb4,0x06,0xbb,0x00,0x35,0x05,0xc3,0x00,0x03,0x01,0x22,0x03,0x29,0x00,0x01,0x00,0x01,0x00,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2d,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x00,0xa2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd0, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x42,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00, +0x01,0x79,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8d, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x93,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x48,0x03,0x48,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x17,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x00,0x77,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01, +0x00,0x00,0x00,0xbd,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0xf0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x01,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x3a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x2f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0x31, +0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x01,0x04,0x15, +0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5, +0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x46,0x00,0x00,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00, +0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x01,0x03,0x29, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb4,0x05,0xb4,0x00,0x00,0x00,0x01,0x04,0x23,0x00,0x01,0x00,0x01, +0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x03,0xc5,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x00, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x45,0x03,0x45,0x00,0x00,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x47,0x03,0x47,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01, +0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x06,0xb8,0x00,0x02,0x06,0x6b,0x06,0xb9,0x00,0x02,0x06,0x6a,0x06,0xba,0x00,0x02,0x06,0x74,0x06,0xbb,0x00,0x02,0x06,0x72,0x06,0xb4,0x00,0x02,0x06,0x6b,0x06,0xb5, +0x00,0x02,0x06,0x6a,0x06,0xb6,0x00,0x02,0x06,0x74,0x06,0xb7,0x00,0x02,0x06,0x72,0x06,0xc0,0x00,0x02,0x06,0x91,0x06,0xc1,0x00,0x02,0x06,0x90,0x06,0xc2,0x00,0x02,0x06,0x99,0x06,0xc3,0x00,0x02,0x06,0x97,0x06,0xbc,0x00,0x02,0x06,0x91,0x06,0xbd,0x00,0x02,0x06,0x90,0x06,0xbe,0x00,0x02,0x06,0x99,0x06,0xbf,0x00,0x02,0x06,0x97, +0x00,0x01,0x00,0x04,0x06,0x6e,0x06,0x70,0x06,0x93,0x06,0x95,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x14,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x48,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4d,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8d,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x93,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x94,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xae,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbb,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x32,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4f,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x5a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01, +0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce, +0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45, +0x00,0x01,0x00,0x00,0x00,0x09,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x0c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x21,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x22,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x56,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd5,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd6,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x01,0x07,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x08,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x14,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x15,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x1f,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x20,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x2e,0x03,0x2e,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00, +0x00,0x2d,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x35,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0x5c,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x73,0x00,0x01,0x03,0x57,0x00,0x01, +0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xa4,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xce,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xee,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x01,0x12,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x1d,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x61,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x01,0x00,0x00,0x01,0x63,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xb4,0x00,0x01,0x00,0x00,0x01,0x65,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x67,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x00,0x01,0x6b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6d,0x00,0x00, +0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x01,0x71,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x73,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x01,0x77,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x79,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01, +0x00,0x00,0x01,0x7d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x00,0x01,0x81,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x00,0x01,0x83,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x00,0x01,0x85,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x87,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x01,0x8b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x8d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x00, +0x01,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x01, +0x03,0x3d,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x01,0x05,0xbe,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x04,0x1b,0x04,0x1b,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3d, +0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00, +0x00,0x68,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x01,0x01,0x13,0x00,0x01,0x00,0x00,0x01,0xa3,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x01,0x00,0x53,0x00,0x01,0x00,0x00,0x01,0xa4,0x00,0x01,0x01,0x7e,0x00,0x01,0x00,0x01,0x01,0x7e,0x00,0x01, +0x00,0x00,0x01,0xa5,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x01,0x01,0x93,0x00,0x01,0x00,0x00,0x01,0xa6,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x03,0x03,0x57,0x03,0x45,0x03,0x45,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x2e,0x00,0x01, +0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x47,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01, +0x00,0x00,0x00,0x93,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4b,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00, +0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3b,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3c,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x03,0x3d,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x02, +0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x15,0x04,0x15,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x5e,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x5f,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x03,0x03,0x29,0x03,0x29,0x03,0x29,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xd2,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01, +0x00,0x00,0x00,0xd3,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2c,0x03,0x2c,0x03,0x2c,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x03,0x2b,0x03,0x2b,0x00,0x00,0x00,0x01,0x03,0x30, +0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x30,0x03,0x30,0x03,0x30,0x00,0x00,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xb5,0x05,0xb5,0x05,0xb5,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46, +0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x1d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x42,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, +0x03,0x29,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0x75,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x00, +0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe, +0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8f,0x00,0x00,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x91,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1c,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01, +0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x5c,0x03,0x5c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xcc,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01, +0x00,0x00,0x00,0xd0,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x00,0xe0,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf6,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x00,0x01,0x0e,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x17,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03, +0x04,0x1b,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x1b,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x42, +0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22, +0x00,0x01,0x00,0x00,0x01,0x5c,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x5c,0x00,0x01,0x00,0x00,0x01,0x89,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x2b,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x03,0x03,0x30,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x22,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x05,0xbe, +0x05,0xbe,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0xc5,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c, +0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x15,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x5c,0x03,0x43,0x03,0x43,0x00,0x00,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x01, +0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2b,0x04,0x19, +0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01, +0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19, +0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x45,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0e,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x88,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01, +0x00,0x00,0x00,0x89,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0x8a,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1b,0x00,0x03,0x06,0xce,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x69,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00, +0x00,0x71,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x24,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x26,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x3e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x3d, +0x00,0x01,0x00,0x00,0x00,0x40,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x51,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x53,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x58,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x15,0x00,0x01,0x00,0x00,0x00,0x5a,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x29, +0x00,0x01,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x03,0x29,0x00,0x01,0x00,0x00,0x00,0x63,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7d,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c, +0x00,0x01,0x00,0x00,0x00,0x7f,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x9e,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9f,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xa0,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0xd8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xd9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2c,0x03,0x2c,0x00,0x01,0x00,0x00,0x00,0xda,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xdc,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x2b, +0x00,0x01,0x00,0x00,0x00,0xdd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x03,0x2b,0x00,0x01,0x00,0x00,0x00,0xde,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x0a,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x00,0x01,0x0b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x03,0x30, +0x00,0x01,0x00,0x00,0x01,0x0c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x19,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1a,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xb5,0x05,0xb5,0x00,0x01,0x00,0x00,0x01,0x1b,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x03,0x03,0x57, +0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x57,0x03,0x46,0x03,0x46,0x03,0x46,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x18,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1c, +0x00,0x01,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x29,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x66,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6b,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x6c,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00, +0x00,0x01,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x78,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x81,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x01,0x00,0x00,0x00,0x82,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x05,0xbe, +0x00,0x01,0x00,0x00,0x00,0x8c,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xaa,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xab,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb2,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x5c, +0x00,0x01,0x00,0x00,0x00,0xb3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe4,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xe5,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57, +0x00,0x01,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xf1,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xf3,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x19, +0x00,0x01,0x00,0x00,0x00,0xf4,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x25,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x26,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x31,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x34,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x35,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x37,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19, +0x00,0x01,0x00,0x00,0x01,0x38,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3a,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3b,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x3f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x40,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x4e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x59,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x5e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x5f,0x00,0x01,0x03,0x45,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x57, +0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x86,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xb0,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x30,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe2,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x22,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x47,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x51,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x55,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x57,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0xc5,0x04,0x1b, +0x00,0x01,0x00,0x00,0x01,0x69,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x15,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x6f,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x75,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x7b,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x5c,0x03,0x43, +0x00,0x01,0x00,0x00,0x01,0x91,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xb7,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x00,0x00,0xb8,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfa,0x00,0x00, +0x00,0x01,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x00,0x00,0xfb,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x44,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x22,0x00,0x01,0x00,0x00,0x01,0x45,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x3d, +0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa2,0x00,0x01,0x03,0x2e,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x03,0x03,0x2e,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3d,0x04,0x19,0x04,0x19, +0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x3d,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x49,0x00,0x00,0x00,0x01,0x00,0x04, +0x03,0x2e,0x03,0x57,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x05,0xbe,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00, +0x00,0x06,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x98,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x99,0x00,0x01,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01, +0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x29, +0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x01,0x03,0x29,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01, +0x03,0x2e,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x57, +0x03,0x46,0x03,0x46,0x00,0x01,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x70,0x00,0x01,0x03,0x3a,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x04,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x00,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x2e,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x03,0x03,0x57,0x03,0x57,0x04,0x1b,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x03,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x01,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0x45,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x96,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x57,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x97,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xad,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xba,0x00,0x02, +0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xbd,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2e,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xbe,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x02, +0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc9,0x00,0x00,0x00,0x01,0x00,0x02,0x03,0x2b,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xca,0x00,0x01,0x05,0xbe,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x01, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xeb,0x00,0x00,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xec,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x22,0x00,0x00, +0x00,0x01,0x00,0x02,0x03,0x3d,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x23,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x28,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1c,0x00,0x01,0x00,0x00,0x01,0x29,0x00,0x01, +0x04,0x1c,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x84,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x04,0x19,0x04,0x19,0x04,0x1b,0x04,0x1b,0x00,0x00,0x00,0x02, +0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x05,0xbe,0x00,0x01,0x00,0x00,0x01,0x53,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x05,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc2,0x00,0x00,0x00,0x01, +0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc3,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xfd,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4a,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x02,0x03,0x34,0x03,0x34, +0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x3d,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x34,0x03,0x34,0x03,0x29,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x00,0x00,0x4f,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xa8,0x00,0x02,0x03,0x30,0x03,0x43, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xb5,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x22,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x03,0x57,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43, +0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x57,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01, +0x04,0x19,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1b,0x04,0x19,0x00,0x00,0x00,0x03,0x06,0xce,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x28,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x01,0x03,0x3a, +0x00,0x01,0x00,0x00,0x00,0x29,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x3a,0x03,0x3a,0x03,0x3a,0x00,0x01,0x00,0x00,0x00,0x2b,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x02,0x06,0xce, +0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x02,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe8,0x00,0x00,0x00,0x01,0x00,0x03,0x05,0xbe,0x05,0xbe,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xe9,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57, +0x03,0x57,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x03,0x2e,0x03,0x57,0x03,0x57,0x00,0x01,0x00,0x00,0x00,0x68,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2b,0x00,0x00,0x00,0x01,0x00,0x02, +0x03,0x34,0x03,0x34,0x00,0x01,0x00,0x00,0x00,0x4c,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x7a,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x7b,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01, +0x00,0x00,0x00,0x9b,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x9c,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0x99,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x04,0x19, +0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x47,0x00,0x01,0x00,0x01,0x04,0x1c,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x04,0x15,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0x34,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x1c,0x03,0xc5,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02, +0x04,0x1c,0x03,0x3d,0x00,0x00,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x04,0x15,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x34,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0xc5,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x3d,0x00,0x01,0x00,0x01,0x03,0x48, +0x00,0x00,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x00,0x00,0x01,0x03,0x30,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x00,0x00,0x04,0x03,0x2e,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x03,0x57,0x00,0x00,0x00,0x02,0x06,0xce,0x06,0xce,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xc5,0x00,0x01,0x06,0xce, +0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc6,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x19,0x00,0x01,0x00,0x00,0x00,0xc7,0x00,0x01,0x06,0xce,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2e,0x00,0x00,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x01,0x00,0x00,0x01,0x2f,0x00,0x00,0x00,0x01, +0x00,0x01,0x04,0x1c,0x00,0x01,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x01,0x00,0x01,0x03,0x48,0x00,0x01,0x00,0x00,0x00,0xa6,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x02,0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x19,0x00,0x01,0x00,0x00,0x01,0x10,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x02, +0x04,0x19,0x04,0x1b,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2b,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x03,0x2e,0x04,0x19,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19,0x04,0x1c,0x04,0x1c,0x00,0x00,0x00,0x01,0x03,0x43,0x00,0x01,0x00,0x03,0x04,0x19, +0x03,0x3d,0x04,0x19,0x00,0x00,0x00,0x02,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x01,0x00,0x00,0x00,0xc0,0x00,0x03,0x04,0x1c,0x03,0x30,0x03,0x43,0x00,0x01,0x00,0x01,0x04,0x1b,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x03,0x00,0x00,0x00,0x00, +0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x03,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01, +0x00,0x01,0x00,0x03,0x00,0x01,0x00,0x00,0x00,0x6e,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x04,0x00,0x00, +}; + +read_only global String8 rd_default_code_font_bytes = {rd_default_code_font_bytes__data, sizeof(rd_default_code_font_bytes__data)}; +read_only global U8 rd_icon_file_bytes__data[] = +{ +0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x02,0x1e,0x00,0x00,0x16,0x00,0x00,0x00,0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x00,0x00,0x5c,0x72,0xa8,0x66,0x00,0x00,0x1d,0xc9,0x49,0x44,0x41,0x54,0x78, +0x9c,0xed,0xdd,0x7b,0x7c,0x14,0xe5,0xbd,0xc7,0xf1,0xcf,0x6e,0xb2,0x9b,0x04,0x12,0x20,0x10,0xae,0xe2,0x25,0x52,0x06,0x05,0xe5,0x12,0x14,0x6f,0xc7,0x56,0x99,0x5a,0xd4,0xaa,0xd5,0xda,0x8b,0xb7,0xa2,0x55,0x4f,0x6d,0x6b,0xab,0xb5,0xf6,0x72,0x7a,0xb1,0xb5,0x1e,0x41,0xce,0xd1,0xb6,0x5a,0x4f,0xeb,0xa9,0x56,0x8b,0x37,0xb4,0x5a, +0xfb,0xaa,0x56,0x5a,0xa4,0x1d,0xb5,0x20,0x2d,0x95,0x8a,0x8a,0xf5,0xa0,0x83,0x8a,0x37,0x10,0x08,0x90,0x70,0x0b,0xe4,0xb6,0x7b,0xfe,0x98,0x8d,0x44,0x48,0x42,0x36,0xf3,0xcc,0xfc,0x66,0x77,0x7e,0xef,0xd7,0x8b,0x57,0xbc,0x24,0xcf,0xf3,0xcb,0x32,0xcf,0x77,0x9f,0x99,0x9d,0x79,0x1e,0x50,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5, +0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x54,0xe1,0x4a,0x48,0x17,0xa0,0x82,0xe5,0x58,0x54,0x01,0xd5,0xc0,0xa0,0x4e,0x5f,0x3b,0xff,0x33,0x40,0x23,0xd0,0x90,0xfb,0xda,0xf9,0x9f,0x1b,0x6c,0x97,0x6d,0x61,0xd7,0xac,0xc2,0xa3,0x01,0x50,0xa0,0x1c,0x8b,0xa1,0xc0,0x54,0x60,0x0a,0x70,0x30,0x7b, +0x0f,0xec,0x6a,0x60,0x20,0x50,0xe2,0xb3,0xab,0x76,0x60,0x0b,0x9d,0x42,0x81,0xdd,0x41,0xf1,0x06,0xf0,0x3c,0xf0,0x9c,0xed,0x52,0xef,0xb3,0x1f,0x25,0x40,0x03,0xa0,0x00,0x38,0x16,0xfb,0x03,0x75,0x78,0x83,0xbd,0x2e,0xf7,0x67,0x3f,0xd1,0xa2,0xf6,0xb6,0x06,0x58,0xde,0xf9,0x8f,0xed,0xf2,0xae,0x6c,0x49,0x6a,0x5f,0x34,0x00,0x22, +0xc4,0xb1,0x48,0xe0,0xbd,0x9b,0xd7,0x75,0xfa,0x33,0x05,0x18,0x2a,0x59,0x97,0x0f,0xf5,0x78,0x33,0x84,0xce,0xa1,0xf0,0xba,0x6c,0x49,0xaa,0x33,0x0d,0x80,0x88,0x70,0x2c,0x7e,0x0f,0x9c,0x80,0x37,0x6d,0x2f,0x66,0x5b,0x80,0xa7,0x6d,0x97,0x33,0xa5,0x0b,0x51,0x1a,0x00,0x91,0xe0,0x58,0xd4,0xe2,0x9d,0x4f,0xc7,0x49,0xad,0xed,0xf2, +0xa6,0x74,0x11,0x71,0x97,0x94,0x2e,0x40,0x01,0x30,0x5d,0xba,0x00,0x01,0x71,0xfc,0x9d,0x23,0x47,0x03,0x20,0x1a,0xe2,0x38,0x18,0xe2,0xf8,0x3b,0x47,0x8e,0x06,0x40,0x34,0x9c,0x28,0x5d,0x80,0x80,0x38,0xfe,0xce,0x91,0xa3,0x01,0x20,0xcc,0xb1,0x38,0x04,0x18,0x29,0x5d,0x87,0x80,0x51,0x8e,0xc5,0x38,0xe9,0x22,0xe2,0x4e,0x03,0x40, +0x5e,0x9c,0xa7,0xc2,0x71,0xfe,0xdd,0x23,0x41,0x03,0x40,0x5e,0x9c,0x07,0x41,0x9c,0x7f,0xf7,0x48,0xd0,0x8f,0x01,0x05,0xe5,0x6e,0xfc,0xa9,0x07,0x86,0x48,0xd7,0x22,0x64,0x23,0x30,0xcc,0x76,0xc9,0x4a,0x17,0x12,0x57,0x3a,0x03,0x90,0x35,0x91,0xf8,0x0e,0x7e,0x80,0x1a,0xe0,0x70,0xe9,0x22,0xe2,0x4c,0x03,0x40,0x96,0x4e,0x81,0xf5, +0x35,0x10,0xa5,0x01,0x20,0x4b,0x0f,0x7e,0x7d,0x0d,0x44,0xe9,0x35,0x00,0x21,0x8e,0x45,0x09,0xb0,0x19,0x18,0x20,0x5d,0x8b,0xb0,0x2d,0xc0,0x10,0xdb,0xa5,0x5d,0xba,0x90,0x38,0xd2,0x19,0x80,0x9c,0xa9,0xe8,0xe0,0x07,0xef,0xe1,0xa7,0x3a,0xe9,0x22,0xe2,0x4a,0x03,0x40,0x8e,0x4e,0x7d,0x77,0xd3,0xd7,0x42,0x88,0x06,0x80,0x1c,0x3d, +0xe8,0x77,0xd3,0xd7,0x42,0x88,0x5e,0x03,0x10,0xe0,0x58,0xa4,0xf1,0x96,0xd6,0xea,0x27,0x5d,0x4b,0x44,0x34,0x01,0x83,0x6c,0x97,0x56,0xe9,0x42,0xe2,0x46,0x67,0x00,0x32,0x8e,0x42,0x07,0x7f,0x67,0xfd,0xf0,0x5e,0x13,0x15,0x32,0x0d,0x00,0x19,0x3a,0xe5,0xdd,0x9b,0xbe,0x26,0x02,0x34,0x00,0x64,0xe8,0xc1,0xbe,0x37,0x7d,0x4d,0x04, +0xe8,0x35,0x80,0x90,0x39,0x16,0x15,0x78,0x4b,0x6a,0xa7,0xa5,0x6b,0x89,0x98,0x66,0xa0,0xda,0x76,0xd9,0x29,0x5d,0x48,0x9c,0xe8,0x0c,0x20,0x7c,0xc7,0xa1,0x83,0xbf,0x2b,0x65,0xc0,0xb1,0xd2,0x45,0xc4,0x8d,0x06,0x40,0xf8,0x74,0xaa,0xdb,0x3d,0x7d,0x6d,0x42,0xa6,0x01,0x10,0x3e,0x3d,0xc8,0xbb,0xa7,0xaf,0x4d,0xc8,0xf4,0x1a,0x40, +0x88,0x1c,0x8b,0x01,0x78,0xf7,0xff,0xfb,0xdd,0xae,0xab,0x58,0xb5,0x01,0x83,0x75,0x3f,0xc2,0xf0,0xe8,0x0c,0x20,0x5c,0xc7,0xa3,0x83,0xbf,0x27,0xa5,0x78,0xaf,0x91,0x0a,0x89,0xce,0x00,0x42,0xe0,0x58,0x94,0x03,0x5f,0x00,0xbe,0x0d,0x8c,0x12,0x2e,0x27,0xea,0xd6,0x02,0x73,0x80,0x3b,0x6c,0x97,0x5d,0xd2,0xc5,0x14,0x3b,0x0d,0x80, +0x00,0xe5,0x3e,0xf2,0xfb,0x22,0xf0,0x2d,0x60,0x84,0x70,0x39,0x85,0xe6,0x3d,0xe0,0x46,0xe0,0x7f,0xf5,0xa3,0xc1,0xe0,0x68,0x00,0x04,0xc0,0xb1,0xe8,0x0f,0x7c,0x19,0xb8,0x1a,0x18,0x2e,0x5c,0x4e,0xa1,0x5b,0x0f,0xdc,0x04,0xdc,0x66,0xbb,0xec,0x90,0x2e,0xa6,0xd8,0x68,0x00,0x18,0xe4,0x58,0x54,0x02,0x5f,0x01,0xbe,0x4e,0xe1,0xee, +0xe8,0x1b,0x55,0xf5,0xc0,0x4f,0x80,0xff,0xb1,0x5d,0xb6,0x4b,0x17,0x53,0x2c,0x34,0x00,0x0c,0xc8,0x5d,0xdd,0xbf,0x02,0xf8,0x1a,0xf1,0x5e,0xe4,0x33,0x0c,0x9b,0x80,0x9b,0x81,0x9f,0xd9,0x2e,0x5b,0xa5,0x8b,0x29,0x74,0x05,0x15,0x00,0x8e,0x45,0x12,0xf8,0x11,0xb0,0x1a,0x58,0x60,0xbb,0xac,0x15,0xae,0x27,0x0d,0x7c,0x13,0xf8,0x06, +0x30,0x48,0xb2,0x96,0x18,0x6a,0x00,0x7e,0x0c,0xdc,0x68,0xbb,0xb4,0x48,0x16,0xe2,0x58,0x8c,0x02,0x4e,0x06,0x0e,0x02,0xae,0xb5,0x5d,0x32,0x92,0xf5,0xe4,0xa3,0xd0,0x02,0xe0,0x66,0xe0,0xca,0x4e,0xff,0xe9,0x5f,0xc0,0x02,0xe0,0x09,0x60,0xb1,0xed,0xd2,0x1c,0x62,0x2d,0x75,0xc0,0x5c,0x74,0x59,0x6b,0x69,0x2f,0x01,0x17,0xda,0x2e, +0xcf,0x87,0xd5,0xa1,0x63,0x51,0x86,0xf7,0x71,0xe5,0x0c,0xbc,0x81,0x7f,0x58,0xa7,0xff,0x7d,0xb3,0xed,0x72,0x55,0x58,0xb5,0xf8,0x55,0x30,0x01,0xe0,0x58,0x5c,0x89,0x37,0xf5,0xeb,0x4e,0x13,0xf0,0x34,0xb9,0x40,0xb0,0x5d,0xdc,0x80,0xea,0x48,0x01,0xd7,0x00,0xdf,0xc1,0xfb,0xdc,0x5a,0xc9,0x6b,0x03,0x6e,0x00,0xfe,0x33,0xa8,0x45, +0x45,0x1c,0x0b,0x8b,0xdd,0x03,0xfe,0x04,0x7a,0x5e,0xcf,0xe1,0x4a,0xdb,0xe5,0x67,0x41,0xd4,0x61,0x5a,0x41,0x04,0x80,0x63,0x71,0x26,0xf0,0x08,0xf9,0xdd,0xb8,0xb4,0x1a,0x6f,0x66,0xb0,0x00,0x78,0xd2,0xc4,0xdd,0x65,0x8e,0xc5,0x14,0xbc,0x77,0xfd,0x89,0x7e,0xdb,0x52,0x81,0x58,0x01,0x5c,0x64,0x62,0x36,0xe0,0x58,0x54,0x01,0x36, +0xde,0xa0,0x9f,0x01,0xd4,0xe6,0xf1,0xe3,0x19,0xe0,0x93,0xb6,0xcb,0xa3,0x7e,0xeb,0x08,0x5a,0xe4,0x03,0xc0,0xb1,0x98,0x86,0xf7,0xce,0x5e,0xe1,0xa3,0x99,0x56,0xe0,0x6f,0xec,0x0e,0x84,0x17,0xf2,0xd9,0x8e,0x2a,0xf7,0xae,0xff,0x7d,0xe0,0xbb,0xe8,0xbb,0x7e,0xd4,0xb5,0x02,0xb3,0x81,0x59,0xf9,0xcc,0x06,0x72,0xdb,0xb4,0x4d,0x61, +0xf7,0xbb,0xfc,0x31,0x40,0xca,0x47,0x1d,0x4d,0xc0,0x09,0xb6,0xcb,0x32,0x1f,0x6d,0x04,0x2e,0xd2,0x01,0xe0,0x58,0xd4,0x02,0x4b,0x81,0x61,0x86,0x9b,0x5e,0x0f,0x2c,0xc4,0x0b,0x84,0x85,0xb6,0x4b,0x7d,0x0f,0x35,0x4c,0xc6,0x7b,0xd7,0x9f,0x64,0xb8,0x06,0x15,0xac,0x17,0xf1,0xae,0x0d,0xbc,0xd8,0xdd,0x37,0x38,0x16,0x43,0x81,0x8f, +0xe1,0x0d,0xf8,0x93,0x30,0x7f,0xcf,0xc6,0x06,0xe0,0x68,0xdb,0x65,0xb5,0xe1,0x76,0x8d,0x89,0x6c,0x00,0x38,0x16,0xd5,0x78,0xef,0xda,0x87,0x04,0xdc,0x55,0x16,0x58,0xce,0xee,0xd9,0xc1,0xdf,0x6d,0x97,0xb6,0xdc,0xbb,0xfe,0xf7,0xf0,0xde,0xf5,0xfd,0xbc,0x13,0x28,0x39,0xad,0xc0,0x2c,0x60,0xb6,0xed,0xd2,0xea,0x58,0x94,0xe2,0xbd, +0xb3,0x9f,0x8c,0xf7,0x4e,0x5f,0x47,0xf0,0x63,0xe0,0x15,0xe0,0x58,0xdb,0xa5,0x21,0xe0,0x7e,0xfa,0x24,0x92,0x01,0x90,0xbb,0xca,0xba,0x10,0xf8,0xb0,0x40,0xf7,0x5b,0x01,0x07,0xef,0x9c,0x6f,0xb2,0x40,0xff,0xca,0xbc,0x17,0xf0,0xae,0x09,0xd9,0xc8,0x6c,0xc6,0xb2,0x08,0x38,0x49,0xfa,0xe3,0xca,0xae,0x44,0x2e,0x00,0x72,0xe7,0x62, +0xf7,0x03,0xe7,0x4a,0xd7,0xa2,0x94,0x41,0xf3,0x80,0x0b,0xa2,0xb6,0x15,0x7a,0x14,0x1f,0x07,0xbe,0x1e,0x1d,0xfc,0xaa,0xf8,0x9c,0x07,0xfc,0xa7,0x74,0x11,0x7b,0x8a,0xd4,0x0c,0xc0,0xb1,0xb8,0x14,0xb8,0x43,0xba,0x0e,0xa5,0x02,0x74,0xa9,0xed,0x72,0xa7,0x74,0x11,0x1d,0x22,0x13,0x00,0x8e,0xc5,0x47,0x81,0x3f,0xa1,0x1f,0xb3,0xa9, +0xe2,0xd6,0x06,0x9c,0x62,0xbb,0xfc,0x45,0xba,0x10,0x88,0x48,0x00,0xe4,0xae,0xf8,0xbf,0x0c,0x8c,0x94,0xae,0x45,0xa9,0x10,0xbc,0x07,0x4c,0x88,0xc2,0x27,0x03,0x51,0xb9,0x06,0xf0,0x33,0x74,0xf0,0xab,0xf8,0x18,0x09,0xdc,0x22,0x5d,0x04,0x44,0x60,0x06,0xe0,0x58,0x9c,0x0e,0x3c,0x26,0x5d,0x87,0x52,0x02,0x4e,0xb7,0x5d,0x1e,0x97, +0x2c,0x40,0x34,0x00,0x74,0xea,0xaf,0x62,0x4e,0xfc,0x54,0x40,0xfa,0x14,0xe0,0x16,0x74,0xf0,0xab,0xf8,0x1a,0x49,0xcf,0x4f,0xb8,0x06,0x4e,0x6c,0x06,0xa0,0x53,0x7f,0xa5,0xde,0x27,0x76,0x2a,0x20,0x12,0x00,0x3a,0xf5,0x57,0xea,0x03,0xd6,0xe2,0x9d,0x0a,0x34,0x86,0xdd,0xb1,0xd4,0x29,0x80,0x4e,0xfd,0x95,0xda,0x6d,0x14,0x42,0x9f, +0x0a,0x84,0x3e,0x03,0xd0,0xa9,0xbf,0x52,0xdd,0x0a,0xfd,0x54,0x20,0xd4,0x00,0xd0,0xa9,0xbf,0x52,0x3d,0x0a,0xfd,0x54,0x20,0xec,0x53,0x00,0x9d,0xfa,0x2b,0xd5,0xbd,0xd0,0x4f,0x05,0x42,0x9b,0x01,0x38,0x16,0xa7,0x01,0x7f,0x08,0xab,0x3f,0xa5,0x0a,0x58,0x68,0xa7,0x02,0xa1,0x04,0x40,0x6e,0x81,0x8f,0x55,0xc0,0xfe,0x61,0xf4,0xa7, +0x54,0x81,0x7b,0x07,0xf8,0x50,0x18,0x0b,0x88,0x84,0x75,0x0a,0x70,0x09,0x3a,0xf8,0x95,0xea,0xad,0xfd,0xf1,0xc6,0x4c,0xe0,0x02,0x9f,0x01,0xe4,0x76,0xcf,0x79,0x0d,0x0d,0x00,0xa5,0xf2,0xf1,0x36,0x30,0x36,0xe8,0x59,0x40,0x18,0x33,0x80,0xcf,0xa3,0x83,0x5f,0xa9,0x7c,0x1d,0x00,0x5c,0x14,0x74,0x27,0x81,0xce,0x00,0x72,0x2b,0xeb, +0xae,0x02,0x0e,0x0c,0xb2,0x1f,0xa5,0x8a,0xd4,0x5b,0x78,0xb3,0x80,0x40,0x76,0x3b,0x82,0xe0,0x67,0x00,0x17,0xa2,0x83,0x5f,0xa9,0xbe,0x3a,0x10,0x98,0x19,0x64,0x07,0x81,0xcd,0x00,0x72,0x6b,0xb0,0xbb,0xe4,0xb7,0xa5,0x92,0x52,0xea,0x83,0x56,0x03,0x96,0xed,0xd2,0x16,0x44,0xe3,0x41,0xce,0x00,0x66,0xa2,0x83,0x5f,0x29,0xbf,0x6a, +0x81,0xcf,0x05,0xd5,0x78,0x20,0x33,0x80,0xdc,0xbb,0xff,0xab,0xc0,0xc1,0x41,0xb4,0xaf,0x54,0xcc,0xbc,0x0e,0x8c,0xb3,0x5d,0xda,0x4d,0x37,0x1c,0xd4,0x0c,0xe0,0x7c,0x74,0xf0,0x2b,0x65,0xca,0x18,0xbc,0x31,0x65,0x9c,0xf1,0x19,0x80,0x63,0x51,0x82,0xb7,0x1f,0xda,0x87,0x4c,0xb7,0xad,0x54,0x8c,0xad,0x02,0x0e,0x35,0x3d,0x0b,0x08, +0x62,0x0d,0xfe,0xf3,0xd0,0xc1,0xdf,0xa3,0x64,0x2a,0xcd,0x90,0xe9,0xa7,0x33,0xea,0xd3,0x97,0x52,0x7d,0xe4,0x47,0x00,0xc8,0x66,0xb3,0x40,0x16,0x32,0x19,0xef,0x9f,0x73,0x7f,0xb2,0xd9,0xcc,0xfb,0xff,0x4c,0x36,0x4b,0x36,0x93,0xf1,0xbe,0x2f,0x9b,0xf5,0xbe,0xaf,0xf3,0xf7,0x93,0xfb,0xff,0xdd,0xfc,0x7c,0xc7,0xf7,0x43,0x76,0xf7, +0xcf,0x7c,0xa0,0xbf,0x3d,0xfa,0xee,0xa2,0x2f,0xb2,0x59,0xb2,0x74,0xf5,0xb3,0xbd,0xab,0xb5,0xf3,0xcf,0xaf,0x7b,0xf4,0x3e,0x36,0x3e,0xa9,0x4f,0x86,0xf7,0xd2,0x58,0xbc,0x1d,0xb3,0xee,0x33,0xd9,0xa8,0xd1,0x19,0x80,0x63,0x91,0x04,0x56,0x02,0x96,0xc9,0x76,0x8b,0x59,0xbf,0x03,0xc7,0x32,0xf2,0x33,0x97,0x32,0xf2,0xac,0x8b,0x48, +0x0f,0x31,0xbd,0x0b,0x7a,0xb4,0x65,0xdb,0x5a,0x59,0xf1,0xc5,0x33,0xd8,0xb4,0x78,0x81,0x74,0x29,0x85,0xe2,0x55,0x60,0xbc,0xed,0x92,0x31,0xd5,0xa0,0xe9,0x00,0x38,0x07,0x78,0xc0,0x64,0x9b,0x71,0x91,0x4c,0xa5,0x19,0x72,0xe2,0x69,0x1c,0x70,0xf1,0x37,0x18,0x38,0xe5,0x18,0xe9,0x72,0x42,0x93,0x69,0xde,0xc5,0x8b,0x97,0x9e,0x42, +0xc3,0xb3,0x4f,0x4b,0x97,0x52,0x28,0xce,0xb5,0x5d,0x1e,0x34,0xd5,0x98,0xe9,0x8b,0x80,0xa1,0x3c,0xc0,0x50,0x8c,0x32,0xad,0x2d,0xd4,0x2f,0xfc,0x1d,0xcb,0xcf,0x3f,0x9e,0x55,0x37,0x7c,0x9d,0x4c,0xf3,0x2e,0xe9,0x92,0x42,0x91,0x2c,0x2b,0x67,0xe2,0xed,0x8f,0x33,0x60,0xf2,0xd1,0xd2,0xa5,0x14,0x8a,0x8b,0x4d,0x36,0x66,0x6c,0x06, +0xe0,0x58,0x0c,0xc3,0x5b,0xd1,0xa4,0xc4,0x54,0x9b,0x71,0xd6,0xef,0xe0,0x43,0x18,0x3f,0x67,0x2e,0x03,0x26,0x1d,0x25,0x5d,0x4a,0x28,0xda,0xb6,0x36,0xb2,0x7c,0xe6,0x89,0x6c,0x5f,0xf9,0x82,0x74,0x29,0x51,0xd7,0x0e,0x8c,0xb4,0x5d,0xea,0x4d,0x34,0x66,0x72,0x06,0xf0,0x69,0x74,0xf0,0x1b,0xd3,0xf4,0xc6,0x2b,0x3c,0x77,0xee,0xbf, +0xf1,0xfa,0x8f,0xbf,0x43,0xa6,0x35,0xf0,0xc7,0xc2,0xc5,0x95,0x0e,0x18,0xc4,0x94,0x5f,0xff,0x99,0xfe,0x1f,0x1a,0x2f,0x5d,0x4a,0xd4,0x95,0xe0,0x8d,0x35,0x23,0x4c,0x06,0xc0,0x39,0x06,0xdb,0x52,0x40,0xb6,0xbd,0x8d,0xb7,0x6e,0x9f,0xc3,0xb2,0xb3,0xa6,0xd2,0xb4,0xfa,0x55,0xe9,0x72,0x02,0x97,0xaa,0xae,0x61,0xca,0xdc,0xbf,0x50, +0x71,0xc0,0x18,0xe9,0x52,0xa2,0xce,0xd8,0x58,0x33,0x72,0x0a,0xe0,0x58,0x8c,0xc6,0x7b,0x7e,0x59,0x7c,0xaf,0xc1,0x62,0x55,0x36,0x7c,0x3f,0xea,0xe6,0x2d,0xa6,0x62,0x74,0xf1,0xdf,0x5d,0xbd,0x6b,0xed,0x5b,0x2c,0x3f,0xff,0xc3,0xec,0x5a,0xfb,0xb6,0x74,0x29,0x51,0x95,0x05,0xf6,0xb7,0x5d,0xd6,0xf8,0x6d,0xc8,0x54,0x00,0x5c,0x0d, +0xdc,0x64,0xa2,0xad,0x42,0x52,0x5a,0x99,0xa0,0xfa,0xb0,0x34,0xe5,0x43,0x4b,0x28,0xab,0x4e,0x92,0xae,0x4e,0x52,0x36,0x38,0x49,0x32,0x95,0xa0,0x79,0x73,0x86,0x96,0xcd,0x19,0x9a,0x1b,0xda,0x69,0xde,0x94,0xa1,0x71,0x65,0x2b,0xbb,0xea,0xfd,0xdd,0xc3,0x51,0x31,0xba,0x96,0xba,0x79,0x8b,0x29,0x1b,0xbe,0x9f,0xa1,0xdf,0x20,0xba, +0x9a,0xde,0x5a,0xc5,0xf2,0xf3,0x3e,0x4c,0xcb,0xc6,0x75,0xd2,0xa5,0x44,0xd5,0xd5,0xb6,0xcb,0x4f,0xfc,0x36,0x62,0x2a,0x00,0x96,0x01,0x47,0x98,0x68,0x2b,0xea,0xca,0x6b,0x4a,0xa8,0x99,0x96,0x66,0xe8,0xb4,0x32,0x06,0x8d,0x4f,0x93,0xc8,0xe3,0xaa,0xc7,0xf6,0xd5,0x6d,0xd4,0x3f,0xdb,0x4c,0xfd,0xb2,0x66,0xb6,0xbf,0xd9,0xe6,0xe5, +0x78,0x9e,0xfa,0xd5,0x8e,0xa3,0xee,0xfe,0x45,0xb1,0xb8,0x67,0x60,0xc7,0xaa,0x97,0x59,0xfe,0xb9,0x13,0x68,0x6d,0xd8,0x28,0x5d,0x4a,0x14,0x2d,0xb3,0x5d,0xa6,0xf9,0x6d,0xc4,0x77,0x00,0x38,0x16,0x63,0xf0,0x96,0xfc,0x2a,0x6a,0xfd,0x46,0x95,0x30,0xe6,0x82,0x4a,0x86,0x1e,0x55,0x66,0xa4,0xbd,0x6d,0xaf,0xb7,0xf1,0xda,0xbd,0xdb, +0x69,0x78,0x29,0xff,0x0b,0x7c,0x95,0xe3,0x26,0x52,0x77,0xdf,0xd3,0x94,0x0e,0xa8,0x36,0x52,0x4b,0x94,0x6d,0x7b,0x79,0x39,0xcf,0x5f,0x38,0x9d,0xb6,0x6d,0x5b,0xa4,0x4b,0x89,0xa2,0x31,0xb6,0xcb,0x1b,0x7e,0x1a,0x30,0x71,0x11,0xb0,0xa8,0x2f,0xfe,0xa5,0xab,0x93,0x8c,0xbb,0xac,0x8a,0xa3,0x6e,0x19,0x62,0x6c,0xf0,0x03,0x54,0x8d, +0x29,0x65,0xca,0xb5,0x83,0x98,0x7c,0xcd,0x20,0x2a,0x0f,0xca,0xef,0x8e,0xec,0xed,0xaf,0xae,0xe0,0x85,0x4b,0x4e,0x8e,0xc5,0xbd,0x02,0x55,0x13,0xea,0x98,0x74,0xc7,0x1f,0x29,0xe9,0x57,0x29,0x5d,0x4a,0x14,0xf9,0x1e,0x7b,0xbe,0x3f,0xb6,0xbb,0x70,0x08,0xbf,0x00,0x8a,0x72,0x3e,0x3a,0xfc,0xdf,0xca,0x99,0x72,0xed,0x20,0x06,0x8e, +0x4b,0x91,0x08,0xe8,0xf2,0x66,0xc5,0x88,0x12,0xf6,0xfb,0x58,0x05,0xc9,0x74,0x82,0xc6,0x7f,0xb5,0xf4,0xfa,0xb4,0xa0,0x79,0xfd,0x1a,0x48,0x24,0xa8,0x3e,0x7a,0x7a,0x30,0x85,0x45,0x48,0xf9,0xc8,0xfd,0x19,0x38,0xf9,0x68,0x36,0x2c,0x78,0x98,0x6c,0x5b,0x20,0xeb,0x62,0x14,0xaa,0x61,0xf7,0x6c,0xe2,0x36,0x3f,0x0d,0xf8,0x3a,0xac, +0x1d,0x8b,0x09,0xc0,0xbf,0xfc,0xb4,0x11,0x45,0x89,0x04,0xd4,0x9e,0xdb,0x9f,0x83,0xce,0xee,0x1f,0x6a,0xbf,0x9b,0x9e,0x6b,0xe1,0xe5,0x9f,0x6e,0xa1,0x6d,0x67,0xef,0x52,0x20,0x99,0x2e,0x63,0xda,0xe3,0x2f,0xd1,0xef,0xc0,0xb1,0x01,0x57,0x16,0x0d,0x9b,0xfe,0xfa,0x47,0x5e,0xba,0xfc,0xac,0x58,0xdc,0x17,0x91,0x87,0x09,0xb6,0xcb, +0xff,0xf5,0xf5,0x87,0xfd,0x9e,0x02,0x14,0xdd,0xf4,0xbf,0xa4,0x3c,0xc1,0x61,0xdf,0x1a,0x18,0xfa,0xe0,0x07,0x18,0x32,0x35,0xcd,0xd4,0x39,0xd5,0x54,0x0c,0xef,0xdd,0xc4,0x2c,0xd3,0xd2,0x8c,0x7b,0xdd,0x57,0x02,0xae,0x2a,0x3a,0x86,0x7c,0xe4,0x54,0xc6,0xff,0xf8,0x7e,0x12,0x25,0x41,0x3c,0xc4,0x5a,0xb0,0x7c,0x8d,0x41,0xbf,0x01, +0xf0,0x59,0x9f,0x3f,0x1f,0x29,0x89,0x12,0x98,0xf8,0x9d,0x81,0x0c,0x9d,0x66,0xee,0x5c,0x3f,0x5f,0xfd,0x47,0x97,0x52,0x77,0x7d,0x35,0x65,0x83,0x7b,0xf7,0x57,0xb3,0xf9,0x99,0x85,0x6c,0x58,0xf0,0x70,0xc0,0x55,0x45,0xc7,0xb0,0x19,0x9f,0xe2,0xd0,0x1b,0xee,0x22,0x91,0x94,0xda,0xd9,0x3e,0x72,0x7c,0x8d,0xc1,0x3e,0xbf,0x8a,0x8e, +0x45,0x1d,0xde,0x33,0xca,0x45,0xc3,0xba,0xa4,0x8a,0xea,0xc3,0xd2,0xd2,0x65,0x50,0x36,0x38,0xc9,0xe1,0xdf,0x1e,0x48,0x32,0xdd,0xbb,0x33,0xb4,0x55,0xb3,0xaf,0xa2,0xbd,0x69,0x7b,0xc0,0x55,0x45,0xc7,0x88,0x4f,0x7c,0x0e,0xeb,0x07,0x3f,0x27,0xb0,0x0b,0x33,0x85,0xc5,0xca,0x8d,0xc5,0x3e,0xe9,0xf3,0x45,0xc0,0x0b,0x87,0xd0,0x04, +0x9c,0x08,0x8c,0xee,0x6b,0x1b,0x51,0xb2,0xdf,0xc9,0x15,0xd4,0x7e,0x26,0xfc,0x69,0x7f,0x77,0xca,0x06,0x97,0x50,0x31,0xbc,0x84,0xfa,0x7f,0x34,0xef,0xf3,0x7b,0xdb,0x77,0x6c,0xa3,0x75,0xd3,0x06,0x4a,0xaa,0x06,0xd0,0xb2,0x61,0x2d,0xad,0x9b,0xd6,0xd3,0xda,0xb0,0x91,0xb6,0xad,0x0d,0xb4,0x6d,0xdf,0x4a,0x66,0xe7,0x0e,0x32,0xcd, +0xbb,0xc8,0xb6,0xb5,0x92,0xcd,0x64,0x48,0x24,0x13,0x05,0xff,0x0e,0x3a,0xe0,0xf0,0x23,0x28,0xe9,0x5f,0xc5,0xe6,0x25,0x7f,0x96,0x2e,0x45,0xda,0x52,0xe0,0xd6,0x7b,0x36,0xb1,0xef,0x03,0xa5,0x0b,0x7e,0x2f,0x02,0x0e,0x00,0xfe,0x04,0x1c,0xeb,0xa7,0x1d,0x69,0x03,0xac,0x14,0x53,0x67,0x55,0x93,0x88,0xe0,0x98,0x58,0x75,0xd7,0x76, +0xde,0x99,0xdf,0x64,0xbc,0xdd,0x44,0x32,0x49,0xa2,0x34,0x45,0x22,0x95,0x26,0x99,0x4a,0xbf,0xff,0x35,0x99,0x4a,0x93,0x48,0x7f,0xf0,0xbf,0x75,0xf7,0x3d,0x89,0xd2,0xd4,0xee,0x7f,0xcf,0x7d,0x4d,0x0d,0x1a,0xc2,0x7e,0xe7,0x5f,0x4e,0xa2,0x24,0x9c,0xe7,0xc2,0x56,0x7c,0xf1,0x74,0x36,0x3e,0x15,0xca,0x46,0xba,0x51,0xb4,0x04,0x38, +0xc5,0x76,0xd9,0xd6,0xd7,0x06,0x7c,0x5d,0x4d,0xb1,0x5d,0xb6,0x3a,0x16,0x33,0x80,0xf9,0xc0,0x87,0xfd,0xb4,0x25,0x26,0x01,0x63,0x2f,0xaa,0x8c,0xe4,0xe0,0x07,0xa8,0x3d,0xa7,0x3f,0xeb,0x16,0xed,0xa2,0x75,0x9b,0xb1,0x45,0x60,0x00,0xc8,0x66,0x32,0x64,0x5b,0x9a,0xa1,0xa5,0xd9,0xd8,0x22,0x73,0x65,0xc3,0x46,0x31,0xe9,0xf6,0xf9, +0xa1,0x0d,0xfe,0x77,0xef,0xbd,0x95,0x8d,0x4f,0xcf,0x0f,0xa5,0xaf,0x08,0xfa,0x2b,0x70,0x9a,0xed,0xe2,0xeb,0xdc,0xcf,0xf7,0x61,0x9f,0x2b,0xe0,0x14,0xe0,0x49,0xbf,0x6d,0x49,0x18,0x3a,0xad,0x8c,0x81,0xe3,0x52,0xd2,0x65,0x74,0xab,0xb4,0x5f,0x82,0x03,0xcf,0xee,0x27,0x5d,0xc6,0x3e,0xf5,0x1f,0x7b,0x18,0x53,0x1f,0x5a,0x4a,0xe5, +0xa1,0x93,0x43,0xe9,0xef,0xdd,0x7b,0x6f,0xc5,0x9d,0x75,0x65,0x6e,0x2d,0xc4,0xd8,0x71,0x80,0x53,0xfd,0x0e,0x7e,0x30,0xf4,0x38,0xb0,0xed,0xd2,0x04,0x9c,0x06,0x2c,0x34,0xd1,0x5e,0x58,0x12,0x25,0x30,0xe6,0x82,0xe8,0xdf,0x61,0x36,0xfa,0x94,0x0a,0xca,0x87,0x45,0x77,0xa9,0x85,0xea,0x63,0x6c,0xa6,0x3e,0xb8,0x84,0xf2,0x91,0xe1, +0xec,0x01,0x1b,0xf3,0xc1,0xff,0x04,0x70,0x7a,0x6e,0xcc,0xf9,0x66,0x6c,0xe2,0x6b,0xbb,0xec,0x04,0xce,0x00,0xfe,0x68,0xaa,0xcd,0xa0,0x0d,0x3f,0xbe,0x9c,0x7e,0xa3,0xa2,0x3b,0xb0,0x3a,0x24,0x4b,0x13,0x1c,0xf4,0xc9,0x68,0xce,0x02,0x46,0x9c,0x39,0x93,0xc9,0x77,0x2e,0xa0,0xb4,0x72,0x40,0x28,0xfd,0xc5,0x7c,0xf0,0xcf,0x07,0x3e, +0x91,0x1b,0x6b,0x46,0x18,0x3d,0xf3,0xb5,0x5d,0x9a,0x81,0xb3,0x80,0x82,0x58,0xeb,0x79,0xd8,0x31,0x72,0x9f,0xf7,0xe7,0x6b,0xe8,0xd1,0x65,0x79,0x3d,0x79,0x18,0xb8,0x44,0x82,0xda,0xcb,0x7f,0xc0,0xf8,0xff,0xba,0x3b,0xb4,0x1b,0x73,0x62,0x3e,0xf8,0x1f,0x05,0x3e,0x99,0x1b,0x63,0xc6,0x18,0xbf,0xf4,0x65,0xbb,0xb4,0x00,0x9f,0x02, +0x1e,0x31,0xdd,0xb6,0x49,0x25,0xe5,0x09,0x06,0x4f,0x92,0xff,0xcc,0xbf,0xb7,0x52,0x55,0xc9,0xc8,0x5c,0xab,0x48,0x94,0xa6,0x38,0x74,0xd6,0x9d,0xd4,0x5e,0xf1,0xa3,0xd0,0xfa,0x8c,0xf9,0xe0,0x7f,0x04,0xf8,0x74,0x6e,0x6c,0x19,0x15,0xc8,0xb5,0xef,0xdc,0x7e,0xe6,0xe7,0x00,0x0f,0x05,0xd1,0xbe,0x09,0x83,0x27,0xa7,0x49,0xa6,0x0a, +0xeb,0x46,0x12,0xc9,0x3b,0x14,0x3b,0x94,0x56,0x0e,0x60,0xd2,0xed,0xf3,0x19,0x79,0xf6,0xe7,0x43,0xeb,0x33,0xe6,0x83,0xff,0x37,0xc0,0x39,0xb9,0x31,0x65,0x5c,0x60,0x1f,0x7e,0xe5,0xb6,0x33,0x3e,0x0f,0xb8,0x3f,0xa8,0x3e,0xfc,0xa8,0x39,0x52,0x7e,0x30,0xe5,0xab,0x46,0x38,0x00,0xca,0x46,0x8c,0xa6,0x6e,0xde,0x62,0x06,0x1f,0x77, +0x52,0x68,0x7d,0xc6,0x7c,0xf0,0xdf,0x07,0x9c,0x1f,0xd4,0xd6,0xe0,0x10,0xec,0xf6,0xe0,0xe4,0xf6,0x31,0x9b,0x09,0xcc,0x0d,0xb2,0x9f,0xbe,0xa8,0xdc,0xbf,0xf0,0x1e,0x28,0xa9,0x18,0x5e,0xd2,0xeb,0xdb,0x83,0x4d,0xab,0x1c,0x37,0x91,0x23,0x1e,0x5a,0x4a,0xe5,0xb8,0x89,0xa1,0xf5,0x19,0xf3,0xc1,0xff,0x6b,0xe0,0xc2,0x20,0x76,0x04, +0xee,0x2c,0xf0,0xdb,0x5f,0x72,0xdb,0x18,0x5d,0x0c,0xdc,0x11,0x74,0x5f,0xf9,0xe8,0xed,0xc3,0x36,0x51,0x53,0x56,0x1d,0x7e,0xdd,0x83,0x8f,0x3b,0x89,0xa9,0x0f,0x3c,0x13,0xea,0x5a,0x84,0x31,0x1f,0xfc,0x77,0x00,0x97,0x98,0xdc,0x02,0xac,0x3b,0xa1,0x1c,0x4d,0xb6,0x4b,0x16,0xb8,0x0c,0xf8,0x45,0x18,0xfd,0xed,0x4b,0xa2,0x04,0x52, +0x83,0x0a,0x34,0x00,0x42,0x0e,0xae,0x91,0x67,0x7f,0xde,0x5b,0x91,0xa7,0x7f,0x55,0x68,0x7d,0xc6,0x7c,0xf0,0xff,0x02,0xb8,0x2c,0x37,0x66,0x02,0x17,0xda,0x3c,0x38,0xf7,0x0b,0x5d,0xee,0x58,0xb4,0x02,0x57,0x86,0xd5,0x6f,0x57,0xd2,0x03,0x93,0x05,0xfb,0x20,0x59,0x3a,0xac,0x19,0x40,0x22,0x41,0xed,0x57,0xaf,0xa5,0xf6,0xf2,0x1f, +0x84,0xd3,0x5f,0x4e,0xcc,0x07,0xff,0xcd,0xb6,0xcb,0x55,0x61,0x76,0x18,0xfa,0xdb,0xa0,0xed,0xf2,0x35,0x84,0x97,0x10,0x4f,0x55,0x15,0xe6,0xbb,0x3f,0x40,0x6a,0x40,0xf0,0xb5,0x27,0x53,0x69,0xc6,0xcf,0x99,0xab,0x83,0x3f,0x5c,0x37,0x86,0x3d,0xf8,0x41,0x20,0x00,0x00,0x6c,0x97,0x6f,0x02,0x37,0x48,0xf4,0x0d,0x18,0x7f,0xb0,0x26, +0x4c,0xad,0x5b,0x83,0xad,0xbd,0xb4,0x6a,0x20,0x93,0x7e,0xf5,0x27,0x46,0x9c,0x39,0x33,0xd0,0x7e,0xf6,0x14,0xf3,0xc1,0x3f,0xdb,0x76,0xf9,0x96,0x44,0xc7,0x62,0x6f,0x85,0xb6,0xcb,0x77,0x81,0xeb,0x24,0xfa,0x6e,0xd9,0x92,0xe9,0xd3,0x9a,0xfc,0x51,0xd0,0xd2,0x10,0x5c,0x00,0x94,0x8f,0xdc,0x9f,0xa9,0x0f,0x3c,0x13,0xfa,0x42,0xa3, +0x31,0x1f,0xfc,0x3f,0xb2,0x5d,0xbe,0x27,0xd5,0xb9,0xe8,0x5c,0xd8,0x76,0xf9,0x21,0x70,0x4d,0xd8,0xfd,0x66,0xdb,0x73,0x21,0x50,0x80,0x9a,0x03,0x0a,0x80,0xca,0x43,0x27,0x33,0xf5,0xa1,0xa5,0xf4,0x1f,0x7b,0x58,0x20,0xed,0x77,0x27,0xe6,0x83,0xff,0xfb,0xb6,0xcb,0xb5,0x92,0x05,0x88,0x9f,0x0c,0xdb,0x2e,0xd7,0x03,0xb7,0x84,0xdd, +0x6f,0xf3,0xe6,0xc2,0x0c,0x80,0x20,0x66,0x00,0x43,0x8e,0x3f,0x99,0xa9,0xf3,0x16,0x53,0x36,0x6c,0x94,0xf1,0xb6,0x7b,0x12,0xf3,0xc1,0x7f,0xb3,0xed,0x32,0x4b,0xba,0x08,0xf1,0x00,0xc8,0x79,0x27,0xec,0x0e,0x77,0xbc,0x5b,0x78,0xeb,0xcb,0xef,0xda,0xd0,0x4e,0x7b,0xb3,0xd9,0xc1,0x32,0xea,0xd3,0x97,0x32,0xf1,0x97,0x8f,0x87,0xbe, +0xf1,0x46,0xcc,0x07,0x3f,0x08,0x1c,0xf3,0x5d,0x89,0x4a,0x00,0x0c,0x0a,0xbb,0xc3,0x8d,0xcb,0x8c,0x3e,0x54,0x15,0x8a,0x8d,0xcb,0x0c,0x3e,0x0b,0x92,0x48,0x70,0xf0,0xd7,0xae,0xe7,0x90,0xeb,0xef,0x08,0x6d,0x05,0x9f,0x0e,0x3a,0xf8,0x01,0x81,0x63,0xbe,0x2b,0x51,0xb9,0x1f,0x36,0xf4,0x4d,0xee,0x36,0x3d,0xdf,0x42,0xa6,0x2d,0x4b, +0xb2,0xb4,0x70,0x6e,0x08,0xa8,0x7f,0xd6,0x4c,0x68,0x25,0x53,0x69,0x0e,0x99,0x7d,0x27,0x23,0xce,0xb8,0xc0,0x48,0x7b,0xf9,0xd0,0xc1,0xff,0xbe,0x48,0x6c,0xec,0x18,0x95,0x19,0x40,0xe8,0x2f,0x46,0xfb,0xce,0x2c,0x0d,0x2b,0x02,0x79,0xc0,0x2a,0x10,0x6d,0xdb,0xb3,0x34,0xae,0xf4,0x3f,0x03,0x28,0x1d,0x30,0x88,0x49,0x77,0x2e,0xd0, +0xc1,0x2f,0x4f,0x03,0xa0,0x13,0x91,0x17,0x63,0xc3,0xdf,0x0b,0x67,0x73,0xcd,0xfa,0x67,0x9b,0xc9,0xfa,0x7c,0x2c,0xa4,0x7c,0xd4,0x81,0x4c,0x7d,0x60,0x09,0xd5,0x47,0x9d,0x68,0xa6,0xa8,0x3c,0xe8,0xe0,0xdf,0x8b,0x06,0x40,0x27,0x22,0xe7,0x43,0xeb,0x17,0x35,0xb3,0x73,0x5d,0xa0,0x0f,0x5b,0x19,0x91,0x6d,0x87,0x37,0x7f,0xbb,0xc3, +0x57,0x1b,0x55,0x13,0xea,0x38,0xe2,0xe1,0xa5,0xf4,0xff,0xd0,0x78,0x43,0x55,0xf5,0x9e,0x0e,0xfe,0x2e,0x45,0xe2,0x1a,0x40,0x54,0x02,0x40,0x24,0x0d,0x33,0x6d,0x59,0x5e,0xbf,0x3f,0xfa,0x3b,0xea,0xac,0x59,0xb0,0x93,0x9d,0xeb,0xfb,0x1e,0x54,0x43,0x3e,0x72,0x2a,0x75,0xf7,0x2f,0x22,0x5d,0x33,0xc2,0x60,0x55,0xbd,0xa3,0x83,0xbf, +0x5b,0x3a,0x03,0xe8,0x44,0xec,0xc5,0xd8,0xf0,0xf7,0x66,0xb6,0xbe,0x16,0xdd,0x6b,0x01,0xed,0x3b,0xb3,0xac,0xf6,0xf1,0xee,0x3f,0xea,0xb3,0x5f,0x60,0xe2,0x6d,0x8f,0x51,0x52,0x11,0xfe,0xae,0x47,0x3a,0xf8,0x7b,0xa4,0x01,0xd0,0x89,0xdc,0x74,0x28,0x0b,0xaf,0xcd,0xdd,0x1e,0xd9,0x63,0x74,0xf5,0xc3,0x3b,0xfa,0x74,0xff,0x7f,0x22, +0x99,0x64,0xcc,0xd7,0x67,0x73,0xc8,0x75,0xbf,0x0c,0xfd,0x63,0x3e,0xd0,0xc1,0xdf,0x0b,0x1a,0x00,0x00,0x8e,0x45,0x05,0x20,0xba,0xd6,0x55,0xe3,0xca,0x56,0x5e,0x9b,0x1b,0xbd,0x53,0x81,0x0d,0x7f,0x6f,0xe6,0x9d,0xc7,0xf2,0x5f,0xfe,0x3d,0x99,0x2e,0x63,0xfc,0x8d,0xf7,0x71,0xe0,0x65,0xdf,0x09,0xa0,0xaa,0x7d,0xd3,0xc1,0xdf,0x2b, +0x65,0x8e,0x45,0xb9,0x74,0x11,0xe2,0x01,0x40,0x44,0x92,0xf0,0x9d,0xf9,0x4d,0xbc,0xf7,0x64,0x74,0x3e,0x15,0xd8,0xb6,0xba,0x8d,0x95,0xb7,0x6e,0xcd,0x7b,0x0c,0xa5,0x06,0x0e,0x66,0xf2,0x5d,0x0b,0x19,0x7e,0xda,0xb9,0xc1,0x14,0xb6,0x0f,0x3a,0xf8,0xf3,0x22,0x7e,0xec,0x6b,0x00,0x74,0xc8,0xc2,0xab,0xb7,0x6f,0xa3,0x71,0xa5,0xfc, +0xf5,0x80,0x96,0xc6,0x0c,0x2f,0xcd,0xd9,0x92,0xf7,0x6d,0xbf,0x15,0xa3,0x6b,0x99,0xfa,0xe0,0x12,0x06,0x1d,0x29,0xb3,0x4d,0xa3,0x0e,0xfe,0xbc,0x89,0x1f,0xfb,0x51,0x08,0x80,0xc8,0xc8,0xb4,0x66,0x59,0x31,0xbb,0x91,0x4d,0xcb,0x8d,0x2f,0xbf,0xde,0x6b,0x4d,0xef,0xb5,0xb3,0xfc,0x07,0x0d,0xec,0xda,0x98,0xdf,0x55,0xff,0xaa,0xc3, +0x8e,0x60,0xea,0x43,0x4b,0xe9,0x77,0xf0,0x21,0x01,0x55,0xd6,0x33,0x1d,0xfc,0x85,0x29,0x0a,0x01,0xd0,0x20,0x5d,0x40,0x67,0x6d,0x4d,0x59,0x56,0xdc,0xd0,0xc8,0xdb,0x7d,0x38,0xf7,0xf6,0x6b,0xf3,0x8b,0x2d,0xfc,0xf3,0x3f,0x36,0xd3,0xb4,0x26,0xbf,0xc1,0x5f,0x33,0xfd,0x74,0xea,0xee,0xfb,0x2b,0xe9,0x21,0xc3,0x02,0xaa,0xac,0x67, +0x3a,0xf8,0xfb,0x4c,0xfc,0xd8,0xd7,0x00,0xe8,0x42,0x36,0x03,0xaf,0xdd,0xbd,0x9d,0x95,0xff,0xb3,0x95,0x4c,0x6b,0x38,0x07,0xf5,0x3b,0xf3,0x9b,0x78,0x71,0x56,0x23,0x6d,0xdb,0xf3,0xeb,0x6f,0xbf,0xf3,0xbe,0xcc,0xe1,0x3f,0xff,0x3d,0x25,0x15,0x32,0x7b,0x07,0xae,0xfb,0xfd,0x3d,0x3a,0xf8,0xfb,0x4e,0xfc,0xd8,0x8f,0xc4,0x93,0x30, +0x8e,0xc5,0x2e,0x84,0x3f,0x09,0xe8,0x4e,0x79,0x4d,0x09,0xb5,0xe7,0xf4,0x67,0xe4,0x09,0xe5,0x81,0xbc,0x5a,0x8d,0x2f,0xb7,0xf2,0xda,0xbd,0xdb,0xd9,0xba,0x2a,0xbf,0x6b,0x0f,0x89,0x64,0x92,0x31,0x57,0xcf,0xe1,0x80,0x4b,0xbf,0x69,0xbe,0xa8,0x3c,0xb4,0x6c,0x5c,0xc7,0xf2,0xcf,0x9d,0x48,0xd3,0x1b,0xaf,0x88,0xd6,0x51,0x80,0x9a, +0x6d,0x57,0xfe,0x53,0x80,0xa8,0x04,0xc0,0x3a,0x60,0xb8,0x74,0x1d,0x3d,0xa9,0x3c,0xb0,0x94,0x31,0x17,0x54,0x32,0xa4,0xce,0xcc,0x7e,0x82,0x3b,0xde,0x6e,0xe3,0xb5,0x7b,0xb7,0xb3,0xe9,0xf9,0x96,0xbc,0x97,0x27,0x4b,0x96,0x95,0x33,0xfe,0xbf,0xee,0x66,0xd8,0x29,0x9f,0x31,0x52,0x8b,0x5f,0x1a,0x02,0x7d,0xb2,0xce,0x76,0x19,0x29, +0x5d,0x44,0x54,0x02,0x60,0x25,0x20,0x73,0xf5,0x2a,0x4f,0xfd,0x46,0x95,0x50,0x73,0x64,0x19,0x43,0xa7,0x95,0x79,0x9b,0x75,0xe6,0xf1,0x0a,0x36,0xad,0x69,0xa7,0xfe,0xd9,0x66,0xea,0x9f,0x6d,0x66,0xdb,0xaa,0xd6,0x3e,0xcd,0x9a,0x4b,0xab,0x06,0x32,0xf1,0xb6,0xc7,0xc4,0xae,0xf4,0x77,0x47,0x43,0x20,0x6f,0x2b,0x6d,0x97,0xf0,0x1f, +0xcc,0xd8,0x43,0x54,0x02,0xe0,0x6f,0xc0,0x31,0xd2,0x75,0xe4,0x2b,0x3d,0x28,0xc9,0xe0,0x89,0x69,0xca,0x6a,0x92,0x94,0x0d,0x2e,0xa1,0xac,0x3a,0x49,0xba,0x3a,0x49,0x32,0x95,0xa0,0x79,0x73,0x3b,0x2d,0x0d,0x19,0x9a,0x37,0x67,0x68,0x6e,0xc8,0xd0,0xf8,0x72,0x0b,0x4d,0x6b,0xfd,0x3d,0x78,0x94,0xaa,0xae,0x61,0xf2,0x9d,0x4f,0x50, +0x35,0xa1,0xce,0xd0,0x6f,0x60,0x96,0x86,0x40,0x5e,0xfe,0x66,0xbb,0x1c,0x27,0x5d,0x44,0x54,0x16,0x04,0x69,0x94,0x2e,0xa0,0x2f,0x5a,0x1a,0x33,0xac,0x5b,0x14,0xce,0xcd,0x43,0x65,0xc3,0x46,0x31,0xf9,0xd7,0x7f,0x16,0x79,0x9a,0xaf,0xb7,0xd2,0x35,0x23,0xa8,0xbb,0xf7,0x29,0x0d,0x81,0xde,0x89,0xc4,0x31,0x1f,0x85,0x4f,0x01,0x20, +0x02,0x57,0x43,0xa3,0xac,0x62,0x74,0x2d,0x75,0xf3,0x16,0x47,0x7a,0xf0,0x77,0xe8,0x08,0x01,0xa9,0xfb,0x11,0x0a,0x48,0x24,0x8e,0x79,0x0d,0x80,0x28,0x4b,0x24,0x18,0x7e,0xea,0x67,0x39,0xe2,0x91,0x65,0x54,0xec,0x7f,0xb0,0x74,0x35,0xbd,0xa6,0x21,0xd0,0x2b,0x91,0x38,0xe6,0x35,0x00,0x22,0x2a,0x35,0x78,0x28,0x87,0xdd,0xf2,0x10, +0x13,0x7e,0xfa,0x20,0xa9,0x41,0x43,0xa4,0xcb,0xc9,0x9b,0x86,0xc0,0x3e,0x45,0xe2,0x98,0x8f,0x4a,0x00,0x44,0xe2,0x7c,0x28,0x2a,0x86,0xce,0x38,0x9b,0xa3,0xe7,0xbf,0xcc,0xb0,0x19,0x9f,0x92,0x2e,0xc5,0x17,0x0d,0x81,0x1e,0x45,0xe2,0x98,0x8f,0x4a,0x00,0xec,0x2f,0x5d,0x80,0xb4,0x44,0x32,0x49,0xcd,0xf4,0x33,0xa8,0x9b,0xb7,0x98, +0xc3,0x7f,0xf6,0x5b,0x52,0x83,0x87,0x4a,0x97,0x64,0x84,0x86,0x40,0xb7,0x22,0x71,0xcc,0x8b,0x7f,0x0c,0xe8,0x58,0x5c,0x83,0xd0,0x1e,0x81,0x51,0x90,0x2c,0x2b,0x67,0xc4,0x99,0x33,0x39,0xe0,0xe2,0xab,0xe9,0x77,0x90,0x25,0x5d,0x4e,0x60,0xf4,0x23,0xc2,0x2e,0x5d,0x93,0xdb,0x19,0x4b,0x8c,0x68,0x00,0x38,0x16,0xd7,0x21,0xb0,0x37, +0xa0,0xb4,0x54,0x75,0x0d,0xd5,0x47,0x9d,0xc8,0xe0,0x63,0x3f,0x4a,0xcd,0x47,0xcf,0x14,0x7b,0x88,0x27,0x6c,0x1a,0x02,0x5d,0xba,0x2e,0xb7,0x47,0xa6,0x08,0xb1,0x00,0x70,0x2c,0x66,0x03,0x32,0x4b,0xd6,0x98,0x92,0x48,0xf4,0xfa,0x21,0x98,0x44,0x49,0x09,0x55,0xe3,0xeb,0xa8,0x3e,0xf6,0xa3,0x54,0x1d,0x3a,0xd9,0xfb,0xd9,0x8e,0x36, +0xf6,0xfc,0xde,0xae,0xfe,0x5a,0xba,0xf8,0x3e,0x12,0x09,0x12,0x25,0x25,0x24,0x52,0x69,0x92,0xa5,0x29,0xef,0x6b,0x2a,0x9d,0xfb,0xba,0xc7,0xbf,0xef,0xf1,0xff,0x25,0x96,0x09,0x03,0x0d,0x81,0x6e,0xcc,0x96,0xda,0x21,0x58,0x24,0x00,0x1c,0x8b,0x9b,0x80,0xab,0x25,0xfa,0x56,0x9e,0x44,0x32,0x49,0xa2,0x53,0x28,0x54,0x1f,0x3d,0x9d, +0x09,0x3f,0x99,0x47,0xa2,0x24,0xf8,0x7b,0xc3,0x34,0x04,0xba,0x74,0x93,0xed,0x12,0xfa,0x93,0x5d,0xa1,0x07,0x80,0x63,0x71,0x0b,0x70,0x45,0xd8,0xfd,0xaa,0x7d,0xab,0xb1,0x3f,0xc1,0xe1,0xb7,0xfe,0x56,0x43,0x40,0xce,0x2d,0xb6,0xcb,0xd7,0xc2,0xec,0x30,0xb4,0x00,0x70,0x2c,0x12,0xc0,0xcf,0x81,0x2f,0x85,0xd5,0xa7,0xca,0x9f,0x86, +0x80,0xb8,0x5f,0x00,0x5f,0xb1,0xdd,0x7c,0x9f,0x11,0xed,0x9b,0x50,0x02,0xc0,0xb1,0x48,0x02,0xbf,0x04,0x2e,0x0d,0xa3,0x3f,0xe5,0x8f,0x86,0x80,0xb8,0x3b,0x80,0xcb,0xc2,0x08,0x81,0xc0,0x03,0x20,0x37,0xf8,0xef,0x02,0x2e,0x0c,0xba,0x2f,0x65,0x8e,0x86,0x80,0xb8,0xb9,0xc0,0x25,0xb6,0x4b,0xfe,0x9b,0x42,0xe4,0x21,0xd0,0x00,0x70, +0x2c,0x4a,0x80,0xbb,0x81,0xf3,0x83,0xec,0x47,0x05,0x43,0x43,0x40,0xdc,0xfd,0xc0,0x85,0xb6,0x4b,0x60,0x1b,0x58,0x06,0x16,0x00,0x8e,0x45,0x29,0xde,0x2f,0x10,0x8d,0x65,0x6b,0x54,0x9f,0x68,0x08,0x88,0xfb,0x0d,0x70,0x81,0xed,0xd2,0x16,0x44,0xe3,0x81,0x04,0x80,0x63,0x91,0x02,0x1e,0x04,0x3e,0x19,0x44,0xfb,0x2a,0x5c,0x1a,0x02, +0xe2,0x1e,0x01,0xce,0xb5,0x5d,0x8c,0x6f,0x5a,0x61,0x3c,0x00,0x1c,0x8b,0x34,0xf0,0x30,0x70,0x86,0xe9,0xb6,0x95,0x1c,0x0d,0x01,0x71,0x8f,0x02,0x9f,0xb1,0x5d,0x8c,0x6e,0x5a,0x61,0x34,0x00,0x1c,0x8b,0x32,0xe0,0x77,0xc0,0xa9,0x26,0xdb,0x55,0xd1,0xa0,0x21,0x20,0x6e,0x3e,0x70,0xb6,0xed,0xd2,0x6c,0xaa,0x41,0x63,0x01,0x90,0xdb, +0xe4,0xf3,0xf7,0xc0,0xc7,0x4c,0xb5,0xa9,0xa2,0x47,0x43,0x40,0xdc,0x42,0xe0,0x4c,0xdb,0x65,0xa7,0x89,0xc6,0x8c,0x04,0x80,0x63,0xd1,0x0f,0xf8,0x03,0x30,0xdd,0x44,0x7b,0x2a,0xda,0x34,0x04,0xc4,0x3d,0x09,0x9c,0x6e,0xbb,0xf8,0xde,0xbe,0xca,0x77,0x00,0x38,0x16,0x95,0x78,0x53,0x93,0x68,0xad,0x53,0xad,0x02,0xa5,0x21,0x20,0x6e, +0x11,0xf0,0x71,0xdb,0xc5,0xd7,0xbe,0xf6,0xbe,0x02,0xc0,0xb1,0x18,0x00,0xfc,0x09,0x38,0xd6,0x4f,0x3b,0xaa,0x30,0x69,0x08,0x88,0x5b,0x02,0x9c,0x62,0xbb,0x6c,0xeb,0x6b,0x03,0x7d,0x0e,0x00,0xc7,0x62,0x20,0xf0,0x04,0x70,0x54,0x5f,0xdb,0x50,0x85,0x4f,0x43,0x40,0xdc,0x3f,0x80,0x19,0xb6,0xcb,0x96,0xbe,0xfc,0xb0,0x9f,0x25,0xc1, +0xc6,0xa0,0x83,0x3f,0xf6,0x36,0x3a,0x8f,0xf2,0xd2,0x57,0x3f,0x45,0xb6,0x3d,0x90,0xfb,0x54,0x3e,0x40,0x97,0x17,0xeb,0xd2,0x51,0x78,0x63,0xb1,0x4f,0xfc,0x9e,0x02,0xb8,0xc0,0x58,0x3f,0x6d,0xa8,0xe2,0xa0,0x33,0x01,0x31,0xae,0xed,0x32,0xae,0xaf,0x3f,0xec,0x77,0x51,0xd0,0xdf,0xf8,0xfc,0x79,0x55,0x24,0x74,0x26,0x20,0xc6,0xd7, +0x18,0xf4,0x1b,0x00,0x0f,0xf8,0xfc,0x79,0x55,0x44,0x34,0x04,0x44,0xf8,0x1a,0x83,0xbe,0x02,0xc0,0x76,0xf9,0x3f,0xe0,0x5f,0x7e,0xda,0x50,0xc5,0x25,0xec,0x10,0x18,0x79,0x56,0xac,0x9f,0x32,0x7f,0xc9,0x76,0x59,0xe9,0xa7,0x01,0x13,0xfb,0x02,0x3c,0x68,0xa0,0x0d,0x55,0x44,0xc2,0x0c,0x81,0x4c,0xab,0xd1,0x5b,0xe3,0x0b,0x8d,0xef, +0xb1,0xa7,0x01,0xa0,0x02,0x11,0x56,0x08,0x64,0x35,0x00,0x7c,0xf1,0x1d,0x00,0xb6,0xcb,0xeb,0xc0,0x3f,0xfd,0xb6,0xa3,0x8a,0x4f,0x18,0x21,0x10,0xe3,0x19,0xc0,0x32,0xdb,0xe5,0x0d,0xbf,0x8d,0x98,0xda,0x1a,0x4c,0x67,0x01,0xaa,0x4b,0x41,0x87,0x40,0xb6,0xd5,0xf8,0x23,0xf2,0x85,0xc2,0xc8,0x98,0x33,0x15,0x00,0xbf,0x81,0x70,0x56, +0x31,0x55,0x85,0x27,0xc8,0x10,0x88,0xe9,0x0c,0x20,0x8b,0xa1,0x8f,0xe0,0x8d,0x04,0x80,0xed,0xf2,0x2e,0xde,0x7d,0xc9,0x4a,0x75,0x29,0xa8,0x10,0x88,0xe9,0x35,0x80,0x67,0x6c,0x97,0x35,0x26,0x1a,0x32,0xb9,0x3b,0xb0,0x9e,0x06,0xa8,0x1e,0x05,0x11,0x02,0x31,0x9d,0x01,0x18,0x1b,0x6b,0x26,0x03,0xe0,0x61,0x08,0x6e,0xf5,0x52,0x55, +0x1c,0x4c,0x87,0x40,0xb6,0x2d,0x76,0xd7,0x00,0xda,0xf1,0xc6,0x9a,0x11,0xc6,0x02,0xc0,0x76,0xd9,0x00,0x3c,0x65,0xaa,0x3d,0x55,0xbc,0x4c,0x86,0x40,0x0c,0x67,0x00,0x4f,0xda,0x2e,0xf5,0xa6,0x1a,0x33,0x39,0x03,0x00,0xb8,0xd3,0x70,0x7b,0xaa,0x48,0x99,0x0a,0x81,0x18,0x5e,0x03,0xb8,0xcb,0x64,0x63,0xa6,0x03,0xe0,0x21,0xe0,0x55, +0xc3,0x6d,0xaa,0x22,0x65,0x22,0x04,0x32,0x2d,0xb1,0x0a,0x80,0x57,0xf1,0xc6,0x98,0x31,0x46,0x03,0x20,0xb7,0x8d,0xd1,0x2c,0x93,0x6d,0xaa,0xe2,0xe6,0x37,0x04,0x62,0x76,0x0d,0xe0,0x7a,0xd3,0x5b,0x85,0x99,0x9e,0x01,0x00,0xcc,0x03,0x56,0x05,0xd0,0xae,0x2a,0x52,0x7e,0x42,0x20,0x46,0xa7,0x00,0xab,0x08,0xe0,0xe9,0x5b,0xe3,0x01, +0x90,0xdb,0xc7,0x4c,0x67,0x01,0x2a,0x2f,0x7d,0x0d,0x81,0x18,0x5d,0x04,0xbc,0x3e,0x88,0x3d,0x02,0x83,0x98,0x01,0x80,0xb7,0x27,0xe0,0xeb,0x01,0xb5,0xad,0x8a,0x54,0x5f,0x42,0x20,0x26,0x01,0xf0,0x3a,0xde,0x98,0x32,0x2e,0x90,0x00,0xc8,0x6d,0x64,0x38,0x3b,0x88,0xb6,0x55,0x71,0xcb,0x37,0x04,0x62,0x72,0x0a,0x30,0x2b,0xa8,0x1d, +0x82,0x83,0x9a,0x01,0x00,0xdc,0x03,0xac,0x0e,0xb0,0x7d,0x55,0xa4,0xf2,0x09,0x81,0x18,0x3c,0x0c,0xf4,0x06,0x70,0x6f,0x50,0x8d,0x07,0x16,0x00,0x3a,0x0b,0x50,0x7e,0xf4,0x36,0x04,0x62,0x70,0x0a,0x30,0x3b,0xa8,0xad,0xc1,0x21,0xd8,0x19,0x00,0xc0,0xdd,0xc0,0x5b,0x01,0xf7,0xa1,0x8a,0x54,0x6f,0x42,0xa0,0xc8,0x03,0xe0,0x4d,0xbc, +0x99,0x74,0x60,0x02,0x0d,0x80,0xdc,0x7e,0xe6,0x37,0x04,0xd9,0x87,0x2a,0x6e,0xfb,0x0a,0x81,0x22,0xbf,0x06,0x70,0x43,0x6e,0x0c,0x05,0x26,0xe8,0x19,0x00,0xc0,0xaf,0x81,0x77,0x42,0xe8,0x47,0x15,0xa9,0x9e,0x42,0xa0,0x88,0x6f,0x04,0x7a,0x1b,0x6f,0xec,0x04,0x2a,0xf0,0x00,0xb0,0x5d,0x5a,0x80,0x39,0x41,0xf7,0xa3,0x8a,0x5b,0x77, +0x21,0x50,0xc4,0xa7,0x00,0x73,0x82,0x7e,0xf7,0x87,0x70,0x66,0x00,0xe0,0x3d,0x24,0xa4,0xb3,0x00,0xe5,0x4b,0x57,0x21,0x50,0xa4,0x33,0x80,0x77,0x08,0xe9,0xc1,0xba,0x50,0x02,0xc0,0x76,0x69,0x06,0xbe,0x1c,0x46,0x5f,0xaa,0xb8,0x75,0x0e,0x81,0x6c,0x7b,0x3b,0xd9,0xf6,0xa2,0x5c,0x82,0xe2,0x4b,0xb9,0x99,0x73,0xe0,0xc2,0x9a,0x01, +0x60,0xbb,0x3c,0x4e,0x80,0x9f,0x67,0xaa,0xf8,0xe8,0x08,0x81,0xf6,0x9d,0x3b,0xa4,0x4b,0x09,0xc2,0x3d,0xb6,0xcb,0xfc,0xb0,0x3a,0xf3,0xb5,0x39,0x68,0xbe,0x1c,0x8b,0x6a,0xe0,0x65,0x60,0x64,0x98,0xfd,0xaa,0xe2,0x34,0xf8,0xb8,0x93,0xd8,0xbc,0xe4,0xcf,0xd2,0x65,0x98,0xb4,0x16,0x98,0x60,0xbb,0x34,0x86,0xd5,0x61,0xa8,0x01,0x00, +0xe0,0x58,0x9c,0x06,0xfc,0x21,0xec,0x7e,0x95,0x2a,0x00,0xa7,0xe7,0x66,0xca,0xa1,0x09,0xed,0x14,0xa0,0x83,0x9e,0x0a,0x28,0xd5,0xa5,0x7b,0xc2,0x1e,0xfc,0x20,0x10,0x00,0x39,0x57,0x02,0xef,0x09,0xf5,0xad,0x54,0xd4,0xac,0xc5,0x1b,0x13,0xa1,0x13,0x09,0x00,0xdb,0xa5,0x01,0xf8,0x82,0x44,0xdf,0x4a,0x45,0xd0,0x65,0x61,0x9e,0xf7, +0x77,0x26,0x35,0x03,0xd0,0x53,0x01,0xa5,0x3c,0x22,0x53,0xff,0x0e,0x62,0x01,0x90,0xa3,0xa7,0x02,0x2a,0xce,0xc4,0xa6,0xfe,0x1d,0x44,0x03,0x20,0x77,0x2a,0x70,0x99,0x64,0x0d,0x4a,0x09,0x12,0x9b,0xfa,0x77,0x90,0x9e,0x01,0x60,0xbb,0xfc,0x01,0xb8,0x4f,0xba,0x0e,0xa5,0x42,0x76,0xaf,0xe4,0xd4,0xbf,0x83,0x78,0x00,0xe4,0x5c,0x81, +0x9e,0x0a,0xa8,0xf8,0x78,0x0f,0xe1,0xa9,0x7f,0x87,0x48,0x04,0x40,0xee,0x54,0x60,0x26,0x04,0xb7,0xf2,0x89,0x52,0x11,0xd1,0x06,0xcc,0xcc,0x1d,0xf3,0xe2,0x22,0x11,0x00,0x00,0xb6,0xcb,0x5f,0x80,0x2f,0x49,0xd7,0xa1,0x54,0xc0,0xbe,0x98,0x3b,0xd6,0x23,0x21,0x32,0x01,0x00,0x60,0xbb,0xfc,0x0a,0x5d,0x47,0x50,0x15,0xaf,0x59,0xb6, +0x1b,0xad,0xfd,0x33,0x23,0x15,0x00,0x39,0xdf,0xc7,0xdb,0x5d,0x48,0xa9,0x62,0x72,0xbf,0xed,0xf2,0x7d,0xe9,0x22,0xf6,0x14,0xb9,0x00,0xb0,0x5d,0xb2,0xc0,0xc5,0xc0,0x22,0xa1,0x12,0xb6,0x00,0xbf,0x03,0x5e,0x10,0xea,0x5f,0x99,0xf7,0x02,0xde,0xdf,0xe9,0x16,0xa1,0xfe,0xff,0x8a,0x77,0x4c,0x47,0x4e,0xe4,0x02,0x00,0xde,0x5f,0x40, +0xe4,0x4c,0xe0,0x95,0x10,0xba,0xcb,0x02,0xff,0xc4,0xdb,0xce,0xec,0x78,0xa0,0xc6,0x76,0x39,0x1b,0x98,0x06,0x5c,0x0b,0xc1,0x2f,0xcb,0xa4,0x02,0xd3,0x0a,0xfc,0x10,0x38,0x32,0xf7,0x77,0x5a,0x83,0xf7,0x77,0x3c,0x0b,0xef,0xef,0x3c,0x1b,0x42,0x0d,0xaf,0x00,0x67,0x85,0xb5,0xc0,0x47,0xbe,0x42,0x7f,0x1c,0x38,0x1f,0x8e,0x45,0x2d, +0xb0,0x14,0x18,0x66,0xb8,0xe9,0xf5,0xc0,0x13,0xb9,0x3f,0x0b,0x6d,0x97,0x8d,0x3d,0xd4,0x30,0x19,0x98,0x0b,0x4c,0x32,0x5c,0x83,0x0a,0xd6,0x0b,0xc0,0x45,0xb6,0xcb,0x8b,0xdd,0x7d,0x83,0x63,0x31,0x14,0x38,0x09,0x38,0x19,0xf8,0x18,0x30,0xdc,0x70,0x0d,0xeb,0x81,0xa3,0x6d,0x97,0x37,0x0d,0xb7,0x6b,0x4c,0xa4,0x03,0x00,0xc0,0xb1, +0x98,0x06,0x3c,0x05,0xf4,0xf3,0xd1,0x4c,0x2b,0xb0,0x04,0x6f,0xc0,0x2f,0x00,0x5e,0xcc,0x9d,0x6a,0xf4,0xb6,0x86,0x14,0xf0,0x3d,0xe0,0xbb,0x40,0xca,0x47,0x1d,0x2a,0x78,0xad,0x78,0xef,0xf0,0xb3,0xf3,0x59,0x54,0xd3,0xb1,0x48,0x00,0x93,0x81,0x19,0x78,0x81,0x70,0x2c,0xfe,0xfe,0xae,0x9b,0x80,0x13,0x6c,0x97,0x65,0x3e,0xda,0x08, +0x5c,0xe4,0x03,0x00,0xc0,0xb1,0xf8,0x04,0xde,0x39,0x5c,0x3e,0xa7,0x2c,0x6f,0xb0,0x7b,0xc0,0x3f,0x65,0xbb,0x6c,0x33,0x50,0xc7,0x64,0xbc,0xcd,0x4e,0x26,0xfa,0x6d,0x4b,0x05,0xe2,0x45,0xbc,0x77,0x7d,0xdf,0xd7,0x6f,0x1c,0x8b,0x2a,0x60,0x3a,0x5e,0x20,0xcc,0x00,0x0e,0xce,0xe3,0xc7,0x33,0x78,0xd3,0xfe,0xc7,0xfc,0xd6,0x11,0xb4, +0x82,0x08,0x00,0x00,0xc7,0xe2,0x4a,0xe0,0xe6,0x1e,0xbe,0x65,0x07,0xf0,0x34,0xde,0x80,0x7f,0xc2,0x76,0x59,0x15,0x50,0x1d,0x29,0xbc,0x4f,0x2a,0xbe,0x0b,0x94,0x06,0xd1,0x87,0xca,0x5b,0xc7,0x36,0x74,0xd7,0x07,0xb5,0x94,0xb6,0x63,0x31,0x96,0xdd,0xb3,0x83,0x13,0x80,0xfe,0x3d,0x7c,0xfb,0x15,0xb6,0xcb,0xad,0x41,0xd4,0x61,0x5a, +0xc1,0x04,0x00,0x80,0x63,0x71,0x33,0x1f,0xbc,0x85,0xf2,0x25,0x72,0x03,0x1e,0x58,0x1c,0xe6,0x85,0x16,0xc7,0xa2,0x0e,0xef,0xda,0xc0,0xe1,0x61,0xf5,0xa9,0xba,0xb4,0x02,0xef,0x5d,0xff,0xf9,0xb0,0x3a,0x74,0x2c,0xd2,0x78,0x17,0x13,0x3b,0x02,0xa1,0xf3,0x31,0x70,0xb3,0xed,0x72,0x55,0x58,0xb5,0xf8,0x55,0x68,0x01,0x90,0xc4,0xbb, +0x32,0xbf,0x1a,0xef,0x5d,0x7e,0xad,0x70,0x3d,0x69,0xe0,0x9b,0xc0,0xd5,0x40,0xb5,0x64,0x2d,0x31,0xd4,0x00,0xdc,0x04,0xdc,0x18,0xc6,0x06,0x1a,0x3d,0x71,0x2c,0x46,0xe1,0x85,0x41,0x2d,0x70,0xad,0xed,0x92,0x91,0xac,0x27,0x1f,0x05,0x15,0x00,0x51,0xe5,0x58,0x0c,0x00,0xbe,0x0a,0x5c,0x05,0x0c,0x11,0x2e,0xa7,0xd8,0x6d,0x02,0x7e, +0x0a,0xdc,0x6a,0xbb,0x6c,0x95,0x2e,0xa6,0xd0,0x69,0x00,0x18,0xe4,0x58,0x54,0x02,0x97,0xe3,0xcd,0x08,0x86,0x0a,0x97,0x53,0x6c,0xea,0x81,0x1f,0x03,0x3f,0xb7,0x5d,0xb6,0x4b,0x17,0x53,0x2c,0x34,0x00,0x02,0xe0,0x58,0xf4,0xc7,0x7b,0xb0,0xe9,0x1b,0x98,0xff,0x6c,0x39,0x6e,0xd6,0x03,0x37,0x02,0xb7,0xd9,0x2e,0x4d,0xd2,0xc5,0x14, +0x1b,0x0d,0x80,0x00,0x39,0x16,0x15,0x78,0x2b,0x1e,0x7d,0x0b,0xdd,0x0c,0x25,0x5f,0xef,0x01,0xff,0x0d,0xfc,0xd2,0x76,0xd9,0x29,0x5d,0x4c,0xb1,0xd2,0x00,0x08,0x81,0x63,0x51,0x0e,0xfc,0x3b,0xf0,0x6d,0x60,0x3f,0xe1,0x72,0xa2,0x6e,0x0d,0xde,0x6e,0xd2,0xbf,0xb2,0x5d,0x76,0x49,0x17,0x53,0xec,0x34,0x00,0x42,0xe4,0x58,0x7c,0x1c, +0xe4,0x97,0x81,0x8a,0xb8,0x8f,0xdb,0x2e,0x7f,0x94,0x2e,0x22,0x2e,0x22,0xf9,0x30,0x50,0x11,0x5b,0x84,0xae,0x7a,0xd4,0x93,0x36,0x60,0xb1,0x74,0x11,0x71,0xa2,0x01,0x10,0xa2,0xdc,0xed,0xc8,0xcf,0x49,0xd7,0x11,0x61,0xff,0x34,0x71,0xcb,0xb6,0xea,0x3d,0x0d,0x80,0xf0,0x3d,0x29,0x5d,0x40,0x84,0xe9,0x6b,0x13,0x32,0x0d,0x80,0xf0, +0xe9,0x41,0xde,0x3d,0x7d,0x6d,0x42,0xa6,0x01,0x10,0xbe,0x25,0x10,0xcd,0xc5,0x21,0x84,0x35,0x03,0x7f,0x93,0x2e,0x22,0x6e,0x34,0x00,0x42,0x96,0xfb,0x4c,0x7b,0xa9,0x74,0x1d,0x11,0xb4,0x54,0x3f,0xef,0x0f,0x9f,0x06,0x80,0x0c,0x9d,0xea,0xee,0x4d,0x5f,0x13,0x01,0x1a,0x00,0x32,0xf4,0x60,0xdf,0x9b,0xbe,0x26,0x02,0x34,0x00,0x64, +0xfc,0x03,0xf4,0xbe,0xf6,0x4e,0x9a,0xf0,0x5e,0x13,0x15,0x32,0x0d,0x00,0x01,0xb9,0x85,0x4b,0x96,0x48,0xd7,0x11,0x21,0xcf,0x48,0x3f,0xd3,0x1f,0x57,0x1a,0x00,0x72,0x74,0xca,0xbb,0x9b,0xbe,0x16,0x42,0x34,0x00,0xe4,0xe8,0x41,0xbf,0x9b,0xbe,0x16,0x42,0x34,0x00,0xe4,0x3c,0x07,0xba,0xa2,0x0d,0xde,0x6e,0x3d,0xcb,0xa5,0x8b,0x88, +0x2b,0x0d,0x00,0x21,0xb6,0x4b,0x3b,0x72,0xdb,0x9f,0x45,0xc9,0xa2,0xdc,0x6b,0xa1,0x04,0x68,0x00,0xc8,0xd2,0xa9,0xaf,0xbe,0x06,0xa2,0x34,0x00,0x64,0xe9,0xc1,0xaf,0xaf,0x81,0x28,0x0d,0x00,0x59,0x2b,0xf0,0x56,0xb9,0x8d,0xab,0x8d,0x78,0x7b,0x3b,0x28,0x21,0x1a,0x00,0x82,0x72,0xfb,0x13,0x3e,0x2d,0x5d,0x87,0xa0,0xa7,0xf3,0xd9, +0xa3,0x51,0x99,0xa7,0x01,0x20,0x2f,0xce,0x53,0xe0,0x38,0xff,0xee,0x91,0xa0,0x01,0x20,0x2f,0xce,0x83,0x20,0xce,0xbf,0x7b,0x24,0xe8,0xa2,0xa0,0x11,0xe0,0x58,0xac,0x25,0x7e,0xcb,0x86,0xaf,0xb5,0x5d,0x5d,0x21,0x59,0x9a,0xce,0x00,0xa2,0xe1,0x29,0xe9,0x02,0x04,0xc4,0xf1,0x77,0x8e,0x1c,0x0d,0x80,0x68,0x88,0xe3,0x54,0x38,0x8e, +0xbf,0x73,0xe4,0x68,0x00,0x44,0x43,0x1c,0x07,0x83,0x23,0x5d,0x80,0xd2,0x00,0x88,0x04,0xdb,0x65,0x35,0xf0,0x28,0xde,0x7d,0xf1,0xc5,0xae,0x11,0x78,0xd4,0x76,0x79,0x4b,0xba,0x10,0xa5,0x17,0x01,0x23,0xc5,0xb1,0x48,0xe0,0xed,0x31,0x5f,0xb7,0xc7,0x9f,0x42,0xdd,0x69,0x78,0x03,0xf0,0x3c,0xde,0xc3,0x3e,0xcb,0x81,0xe5,0xb6,0xcb, +0x1b,0xb2,0x25,0xa9,0xce,0x34,0x00,0x0a,0x80,0x63,0x31,0x1a,0x2f,0x08,0xa6,0xb0,0x3b,0x14,0x46,0x8b,0x16,0xb5,0xb7,0x77,0xe9,0x34,0xd0,0xf1,0x06,0xfb,0x1a,0xd9,0x92,0xd4,0xbe,0x68,0x00,0x14,0x28,0xc7,0x62,0x28,0xbb,0xc3,0xa0,0x16,0x18,0x94,0xfb,0x53,0xdd,0xe9,0xeb,0x40,0xa0,0xd4,0x67,0x57,0x6d,0x78,0xa7,0x26,0x0d,0x78, +0xd3,0xf7,0x8e,0xaf,0x8d,0xc0,0x6a,0x76,0x0f,0xf6,0x7a,0x9f,0xfd,0x28,0x01,0x1a,0x00,0x45,0xce,0xb1,0xa8,0xe4,0x83,0xa1,0xb0,0x67,0x50,0xc0,0xde,0x03,0xfb,0xfd,0xc1,0x6e,0xbb,0x6c,0x0f,0xbb,0x66,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29,0xa5,0x94,0x52,0x4a,0x29, +0xd5,0x1b,0xff,0x0f,0x5c,0x56,0xd9,0x0b,0x64,0x90,0x3b,0x82,0x00,0x00,0x00,0x00,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82, +}; + +read_only global String8 rd_icon_file_bytes = {rd_icon_file_bytes__data, sizeof(rd_icon_file_bytes__data)}; + +C_LINKAGE_END + +#endif // RADDBG_META_H diff --git a/src/raddbg/raddbg.mdesk b/src/raddbg/raddbg.mdesk index c1023ed2..ff696199 100644 --- a/src/raddbg/raddbg.mdesk +++ b/src/raddbg/raddbg.mdesk @@ -119,7 +119,6 @@ RD_VocabTable: {panel _ "Panel" _ Null } {tab _ "Tab" _ Null } {recent_project _ "Recent Project" _ Briefcase } - {recent_file _ "Recent File" _ FileOutline } {src _ "Source" _ Null } {dst _ "Destination" _ Null } {source _ "Source" _ Null } @@ -141,6 +140,7 @@ RD_VocabTable: {vtx _ "Vertex Buffer" _ Null } {vtx_size _ "Vertex Buffer Size" _ Null } {label _ "Label" _ Null } + {name _ "Name" _ Null } {thread _ "Thread" _ Thread } {threads "" "Threads" "" Threads } {process processes "Process" "Processes" Scheduler } @@ -200,6 +200,8 @@ RD_VocabTable: {rgba "" "RGBA" "" Palette } {path "" "Path" "" FileOutline } {guid "" "GUID" "" Null } + {peek_type _ "Peek Type" _ Null } + {output_label _ "Output Label" _ List } } @struct RD_VocabInfo: @@ -223,12 +225,12 @@ RD_VocabTable: //////////////////////////////// //~ rjf: Schemas -@table(name schema) RD_SchemaTable: +@table(name is_view schema) RD_SchemaTable: { - //- rjf: users / projects + //- rjf: @schema user { - user - ``` + user, 0, + ``` @expand_commands(edit_user_theme) x: { //- rjf: animations @@ -252,7 +254,11 @@ RD_VocabTable: @description("The user's theme, which describes all colors used throughout the UI.") 'theme': string, @no_expand @display_name('User Theme') - 'theme_colors': query, + 'theme_colors': set, + + //- rjf: auto eval + @display_name('Show Auto Watches In Source / Disassembly') @description("Enables the display of auto watch expressions inline in source and disassembly views.") @default(1) + 'show_autos_in_src_and_disasm': bool, //- rjf: autocompletion @display_name('Autocompletion Lister') @description("Enables the autocompletion lister while typing expressions.") @default(1) @@ -263,6 +269,12 @@ RD_VocabTable: //- rjf: scope decorations @default(1) @display_name('Cursor Scope Lines') @description("Controls whether or not scopes containing the cursor in text views are drawn.") 'cursor_scope_lines': bool, + @default(1) @display_name('Cursor Scope End Annotations') @description("Controls whether or not ending annotations for scopes containing the cursor are drawn.") + 'cursor_scope_end_annotations': bool, + + //- rjf: cursor decorations + @default(1) @display_name('Cursor Trail') @description("Controls whether or not a movement trail of the cursor is drawn.") + 'cursor_trail': bool, //- rjf: thread & breakpoint decorations @default(1) @display_name('Thread Lines') @description("Controls whether or not a long horizontal line is drawn before the next line or instruction that the selected thread will execute in source and disassembly views.") @@ -296,21 +308,43 @@ RD_VocabTable: //- rjf: native filesystem dialogues @default(0) @display_name('Use Native File System Dialog') @description("Uses the operating system's file system dialog box, rather than the debugger's built-in UI.") 'use_native_file_system_dialog': bool, + + //- rjf: transient tabs + @default(1) @display_name('Transient Tabs') @description("When snapping to source code locations, opens new files in a 'transient' tab if they are not already open. Transient tabs are replaced on subsequent snaps automatically.") + 'transient_tabs': bool, + + //- rjf: auto-load last project + @default(0) @display_name('Auto Load Last Project') @description("Enables loading the most recently opened project, if one is not specified from the command line.") + 'auto_load_last_project': bool, + + //- rjf: symbol server + @default(0) @display_name('Auto Download Debug Info') @description("Automatically tries to download missing debug info from symbol server(s).") + 'auto_download_debug_info': bool, + + //- rjf: update check + @default(1) @display_name('Check For Updates') @description("Enables a small network request to check if there is a newer release version available.") + 'check_for_updates': bool, } ``` } - // TODO(rjf): the control codes could be fed from the CTRL_ExceptionCodeKindTable, but + //- rjf: @schema project + // + // TODO(rjf): the control codes could be fed from the D_ExceptionCodeKindTable, but // we do not support that in this generator - we'd need a way to form a table-generated // string and put it into a table cell... + // { - project - ``` + project, 0, + ``` @expand_commands(edit_project_theme) x: { + @display_name('Project Name') 'name': string, @default(2) @display_name('Project Tab Width') 'tab_width': @range[1, 32] u64, //- rjf: visualizers + @display_name('Display Pointer Addresses Before Contents') @description("When visualizing pointers, always shows the address first, before showing contents at the pointer's address.") + @default(0) display_pointer_addresses_before_contents: bool, @display_name('Use Default C++ STL Type Visualizers') @description("Enables the built-in type views for C++ STL types.") @default(1) use_default_stl_type_views: bool, @display_name('Use Default Unreal Engine Type Visualizers') @description("Enables the built-in type views for Unreal Engine types.") @@ -320,7 +354,7 @@ RD_VocabTable: @default("None") @display_name('Project Theme') @description("The project's theme, which describes all colors used throughout the UI, and can override the user's theme.") 'theme': string, @no_expand @display_name('Project Theme') @description("The project's theme, which describes all colors used throughout the UI, and can override the user's theme.") - 'theme_colors': query, + 'theme_colors': set, //- rjf: exception settings @default(1) @display_name("Break On Win32 Control-C Exceptions") @description("Code: 0x40010005") @@ -401,9 +435,9 @@ RD_VocabTable: ``` } - //- rjf: theme colors + //- rjf: @schema theme_color { - theme_color, + theme_color, 0, ``` @collection_commands(add_theme_color, fork_theme, save_theme, save_and_set_theme) @row_commands(duplicate_cfg, remove_cfg) @@ -415,9 +449,9 @@ RD_VocabTable: ``` } - //- rjf: windows + //- rjf: @schema window { - window, + window, 0, ``` x: { @@ -446,9 +480,9 @@ RD_VocabTable: ``` } - //- rjf: tabs + //- rjf: @schema tab { - tab, + tab, 0, ``` @row_commands(@file copy_tab_full_path, @file show_file_in_explorer, duplicate_tab, close_tab) x: @@ -459,23 +493,51 @@ RD_VocabTable: ``` } - //- rjf: views + //- rjf: @schema bin + {bin 1 ```x:{ @description('An expression to which the 2-radix display should apply.') 'expression': expr_string }```} + + //- rjf: @schema oct + {oct 1 ```x:{ @description('An expression to which the 8-radix display should apply.') 'expression': expr_string }```} + + //- rjf: @schema hex + {hex 1 ```x:{ @description('An expression to which the 16-radix display should apply.') 'expression': expr_string }```} + + //- rjf: @schema digits + {digits 1 ```x:{ @description('An expression to which the digit display should apply.') 'expression': expr_string, @description('The minimum number of digits to display.') 'digit_count': u64 }```} + + //- rjf: @schema no_string + {no_string 1 ```x:{ @description('The expression for which string visualization should be disabled.') 'expression': expr_string}```} + + //- rjf: @schema no_char + {no_char 1 ```x:{ @description('The expression for which character visualization should be disabled.') 'expression': expr_string}```} + + //- rjf: @schema no_addr + {no_addr 1 ```x:{ @description('The expression for which address visualization should be disabled.') 'expression': expr_string}```} + + //- rjf: @schema sequence + {sequence 1 ```x:{ @description('The number of expansions to generate.') 'count': expr_string}```} + + //- rjf: @schema rows + {rows 1 ```x:{ @description('The expression for which rows should be generated.') 'expression': expr_string, @description('A list of expressions which will be used to generate rows.') '...'}```} + + //- rjf: @schema columns + {columns 1 ```x:{ @description('The expression for whose expansions columns should be generated.') 'expression': expr_string, @description('A list of expressions which will be used to generate columns for each expansion from `expression`.') '...'}```} + + //- rjf: @schema omit + {omit 1 ```x:{ @description('The expression for which certain members should be omitted.') 'expression': expr_string, @description('A list of member names to omit from the expansion.') '...'}```} + + //- rjf: @schema range1 + {range1 1 ```x:{ @description('The expression which should be bounded by `min` and `max`.') 'expression': expr_string, @description('The lower bound.') min, @description('The upper bound.') max}```} + + //- rjf: @schema array + {array 1 ```x:{ @description('An expression of the base address of the array.') 'base_address': expr_string, @description('The number of elements in the array.') count}```} + + //- rjf: @schema slice + {slice 1 ```x:{ @description('An expression of a structure that is to be interpreted as a slice.') 'expression': expr_string}```} + + //- rjf: @schema list { - watch, - ``` - @inherit(tab) x: - { - @override @display_name('Tab Row Height') @description("Controls the tab's row height, in multiples of the font size.") - 'row_height': @range[1.75f, 5.f] f32, - 'label': code_string, - @description("The root expression which is evaluated to produce the watch window.") - 'expression': expr_string, - @no_expand 'watches': query, - } - ``` - } - { - list, + list, 1, ``` x: { @@ -486,16 +548,34 @@ RD_VocabTable: } ``` } + + //- rjf: @schema watch { - text, + watch, 0, + ``` + @inherit(tab) x: + { + @override @display_name('Tab Row Height') @description("Controls the tab's row height, in multiples of the font size.") + 'row_height': @range[1.75f, 5.f] f32, + 'label': code_string, + @description("The root expression which is evaluated to produce the watch window.") + 'expression': expr_string, + @no_expand 'watches': set, + } + ``` + } + + //- rjf: @schema text + { + text, 1, ``` @inherit(tab) @expand_commands(@output clear_output) x: { @description("An expression to describe data which should be viewed as text or code.") 'expression': expr_string, - @description("The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.") + @optional @description("The language that the text should be interpreted as being within. Used for syntax highlighting and other parsing features.") 'lang': code_string, - @default(1) @description("Controls whether or not line numbers are shown.") + @no_callee_helper @default(1) @description("Controls whether or not line numbers are shown.") 'show_line_numbers':bool, @no_callee_helper @default(1) @display_name('Line Wrapping') @description("Splits textual lines into multiple visual lines, so that all text is within the visible area.") 'line_wrapping': bool, @@ -506,16 +586,21 @@ RD_VocabTable: } ``` } + + //- rjf: @schema disasm { - disasm, + disasm, 1, ``` @inherit(tab) x: { @description("An expression to describe the base address or offset of the disassembly.") 'expression': expr_string, - 'arch': code_string, - 'syntax': code_string, - 'size': expr_string, + @optional @description("The maximum number of bytes to disassemble.") + 'size': expr_string, + @optional @description("The architecture to interpret the data as when disassembling.") + 'arch': code_string, + @optional @description("The syntax style to use when displaying the disassembly textually.") + 'syntax': code_string, @no_callee_helper @default(1) @description("Controls whether or not addresses are shown in the disassembly text.") 'show_addresses': bool, @no_callee_helper @default(0) @description("Controls whether or not code bytes are shown in the disassembly text.") @@ -526,32 +611,49 @@ RD_VocabTable: 'show_symbol_names': bool, @no_callee_helper @default(1) @description("Controls whether or not line numbers are shown.") 'show_line_numbers': bool, - } ``` } + + //- rjf: @schema memory { - memory, + memory, 1, ``` @inherit(tab) x: { - @description("An expression which refers to the base address of data which should be viewed as memory.") + @display_name("Base Address") @description("An expression which refers to the base address of data which should be viewed as memory.") 'expression': expr_string, - @display_name("Address Range Size") @description("The number of bytes of the viewed memory range.") + @no_callee_helper @display_name("Zoom") @description("The zoom level for displaying bytes in the memory view.") + @default(1.0) 'zoom': @range[0.5, 2] f32, + @optional @display_name("Address Range Size") @description("The number of bytes of the viewed memory range.") 'size': expr_string, - @display_name("Cursor Address") @description("The address of the cursor.") + @no_callee_helper @display_name("Cursor Address") @description("The address of the cursor.") 'cursor': expr_string, - @display_name("Cursor Size") @description("The size, in bytes, of the cursor.") + @no_callee_helper @default(1) @display_name("Cursor Size") @description("The size, in bytes, of the cursor.") 'cursor_size': @range[1, 16] u64, - @default(16) @description("The number of columns to build before building new rows.") + @optional @expand_if("!$.auto_columns") @default(16) @description("The number of columns to build before building new rows.") 'num_columns': @range[1, 64] u64, - @default(1) @display_name("Track Mark To Cursor") @description("Ensures that the mark always follows the cursor, if the cursor value is updated.") + @optional @default(16) @display_name("Default Radix") @description("The default radix with which numeric values should be displayed, when peeking.") + @or(2, 8, 10, 16) + 'default_radix': u64, + @no_callee_helper @default(1) @display_name("Track Mark To Cursor") @description("Ensures that the mark always follows the cursor, if the cursor value is updated.") 'track_mark_to_cursor': bool, + @no_callee_helper @default(1) @display_name("Allow Mutation") @description("Allows operations which mutate memory.") + 'allow_mutation': bool, + @no_callee_helper @default(0) @display_name("Automatically Size Columns") @description("Determines the number of columns based on the available space.") + 'auto_columns': bool, + @no_callee_helper @default(1) @display_name("Peek As Unsigned") 'peek_as_unsigned': bool, + @no_callee_helper @default(1) @display_name("Peek As Signed") 'peek_as_signed': bool, + @no_callee_helper @default(1) @display_name("Peek As Float") 'peek_as_float': bool, + @no_callee_helper @display_name("Extra Peek Types") @description("A list of types as which to interpret selected memory.") + 'peek_types': set, } ``` } + + //- rjf: @schema bitmap { - bitmap, + bitmap, 1, ``` @inherit(tab) x: { @@ -564,8 +666,10 @@ RD_VocabTable: } ``` } + + //- rjf: @schema color { - color, + color, 1, ``` @inherit(tab) x: { @@ -574,8 +678,10 @@ RD_VocabTable: } ``` } + + //- rjf: @schema geo3d { - geo3d, + geo3d, 1, ``` @inherit(tab) x: { @@ -591,9 +697,9 @@ RD_VocabTable: ``` } - //- rjf: getting started + //- rjf: @schema getting_started { - getting_started, + getting_started, 0, ``` @inherit(tab) x: { @@ -601,9 +707,9 @@ RD_VocabTable: ``` } - //- rjf: targets + //- rjf: @schema target { - target, + target, 0, ``` @row_commands(@cmd_line save_cfg_to_project, enable_cfg, launch_and_run, launch_and_step_into, duplicate_cfg, remove_cfg) @collection_commands(add_target) @@ -614,19 +720,20 @@ RD_VocabTable: 'arguments': string, 'working_directory': path, 'entry_point': expr_string, + @default("output") 'output_label': code_string, 'stdout_path': @no_relativize path, 'stderr_path': @no_relativize path, 'stdin_path': @no_relativize path, - 'environment': query, + 'environment': set, 'debug_subprocesses': bool, @no_revert @no_expand @default(0) 'enabled': bool, } ```, } - //- rjf: breakpoints + //- rjf: @schema breakpoint { - breakpoint, + breakpoint, 0, ``` @row_commands(enable_cfg, duplicate_cfg, remove_cfg) @collection_commands(toggle_breakpoint, add_breakpoint, add_address_breakpoint, add_function_breakpoint, clear_breakpoints) @@ -646,9 +753,9 @@ RD_VocabTable: ```, } - //- rjf: watch pins + //- rjf: @schema watch_pin { - watch_pin, + watch_pin, 0, ``` @row_commands(duplicate_cfg, remove_cfg) @collection_commands(add_watch_pin, toggle_watch_pin) @@ -661,73 +768,74 @@ RD_VocabTable: ```, } - //- rjf: debug infos + //- rjf: @schema debug_info { - debug_info, + debug_info, 0, ``` @row_commands(enable_cfg, duplicate_cfg, remove_cfg) @collection_commands(load_debug_info) x: { 'path': @no_relativize path, - @query 'guid': string, @no_revert @no_expand @default(1) 'enabled': bool, + @query 'guid': string, } ```, } - //- rjf: file path maps + //- rjf: @schema file_path_map { - file_path_map, + file_path_map, 0, ```@collection_commands(add_file_path_map) @row_commands(remove_cfg) x:{'source': @no_relativize path, 'dest': @no_relativize path}```, } - //- rjf: type views + //- rjf: @schema type_view { - type_view, + type_view, 0, ```@collection_commands(add_type_view) @row_commands(remove_cfg) x:{'type':expr_string, 'expr':expr_string}```, } - //- rjf: recent projects + //- rjf: @schema recent_project { - recent_project, - ```x:{'path':path}```, + recent_project, 0, + ```x:{'path':path, 'name':string}```, } - //- rjf: recent files + //- rjf: @schema machine { - recent_file, - ```x:{'path':path}```, + machine, 0, + ```x:{'label':code_string, @no_expand 'active':bool, 'unattached_processes':set, 'processes':set}```, } - //- rjf: control entities + //- rjf: @schema process { - machine, - ```x:{'label':code_string, @no_expand 'active':bool, 'unattached_processes':query, 'processes':query}```, + process, 0, + ```x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'modules':set, 'threads':set, @query @no_expand 'memory':address_space}```, } + + //- rjf: @schema module { - process, - ```x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'modules':query, 'threads':query}```, - } - { - module, + module, 0, ```x:{'exe':path, 'dbg':path, 'vaddr_range':vaddr_range}```, } + + //- rjf: @schema thread { - thread, - ```x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':query}```, + thread, 0, + ```x:{'label':code_string, 'id':u64, @no_expand 'active':bool, 'call_stack':set}```, } } @struct RD_NameSchemaInfo: { `String8 name`; + `B32 is_view`; `String8 schema`; } @data(RD_NameSchemaInfo) rd_name_schema_info_table: { - @expand(RD_SchemaTable a) `{str8_lit_comp("$(a.name)"), str8_lit_comp("$(a.schema)")}` + @expand(RD_SchemaTable a) `{str8_lit_comp("$(a.name)"), $(a.is_view), str8_lit_comp("$(a.schema)")}` } //////////////////////////////// @@ -737,66 +845,71 @@ RD_VocabTable: RD_RegTable: { // rjf: ctrl entities - {CTRL_Handle machine Machine } - {CTRL_Handle module Module } - {CTRL_Handle process Process } - {CTRL_Handle thread Thread } - {CTRL_Handle ctrl_entity CtrlEntity } + {D_Handle machine Machine } + {D_Handle module Module } + {D_Handle process Process } + {D_Handle thread Thread } + {D_Handle ctrl_entity CtrlEntity } // rjf: cfgs - {CFG_ID window Window } - {CFG_ID panel Panel } - {CFG_ID tab Tab } - {CFG_ID view View } - {CFG_ID prev_tab PrevTab } - {CFG_ID dst_panel DstPanel } - {CFG_ID cfg Cfg } - {CFG_IDList cfg_list CfgList } + {CFG_ID window Window } + {CFG_ID panel Panel } + {CFG_ID tab Tab } + {CFG_ID view View } + {CFG_ID prev_tab PrevTab } + {CFG_ID dst_panel DstPanel } + {CFG_ID cfg Cfg } + {CFG_IDList cfg_list CfgList } // rjf: evaluation space - {E_Space eval_space EvalSpace } + {E_Space eval_space EvalSpace } // rjf: frame selection - {U64 unwind_count UnwindCount } - {U64 inline_depth InlineDepth } + {U64 unwind_count UnwindCount } + {U64 inline_depth InlineDepth } // rjf: code / address location info - {String8 file_path FilePath } - {TxtPt cursor Cursor } - {TxtPt mark Mark } - {C_Key text_key TextKey } - {TXT_LangKind lang_kind LangKind } - {D_LineList lines Lines } - {DI_Key dbgi_key DbgiKey } - {U64 vaddr Vaddr } - {U64 voff Voff } - {Rng1U64 vaddr_range VaddrRange } - {Rng1U64 voff_range VoffRange } + {String8 file_path FilePath } + {TxtPt cursor Cursor } + {TxtPt mark Mark } + {C_Key text_key TextKey } + {TXT_LangKind lang_kind LangKind } + {D_LineList lines Lines } + {DI_Key dbgi_key DbgiKey } + {U64 vaddr Vaddr } + {U64 voff Voff } + {Rng1U64 vaddr_range VaddrRange } + {Rng1U64 voff_range VoffRange } // rjf: evaluation - {String8 expr Expr } + {String8 expr Expr } // rjf: ui context - {UI_Key ui_key UIKey } - {UI_Key src_ui_key SrcUIKey } - {Vec2F32 off_px OffPx } - {RD_RegSlot reg_slot RegSlot } + {UI_Key ui_key UIKey } + {UI_Key src_ui_key SrcUIKey } + {Vec2F32 off_px OffPx } + {RD_RegSlot reg_slot RegSlot } + {String8 ctx_expr CtxExpr } // rjf: general parameters - {U32 pid PID } - {B32 force_confirm ForceConfirm } - {B32 force_focus ForceFocus } - {B32 prefer_disasm PreferDisasm } - {B32 no_rich_tooltip NoRichTooltip } - {B32 do_implicit_root DoImplicitRoot} - {B32 do_lister DoLister } - {B32 do_big_rows DoBigRows } - {B32 all_windows AllWindows } - {B32 non_graphical NonGraphical } - {Dir2 dir2 Dir2 } - {String8 string String } - {String8 cmd_name CmdName } - {`OS_Event *` os_event OSEvent } + {U32 pid PID } + {B32 force_confirm ForceConfirm } + {B32 force_focus ForceFocus } + {B32 prefer_disasm PreferDisasm } + {B32 no_rich_tooltip NoRichTooltip } + {B32 do_implicit_root DoImplicitRoot } + {B32 do_lister DoLister } + {B32 do_big_rows DoBigRows } + {B32 all_windows AllWindows } + {B32 non_graphical NonGraphical } + {B32 prefer_new_tab PreferNewTab } + {B32 activate_with_single_click ActivateWithSingleClick } + {B32 disable_addresses DisableAddresses } + {B32 small_size SmallSize } + {Dir2 dir2 Dir2 } + {String8 string String } + {String8 cmd_name CmdName } + {`WM_Event *` wm_event WMEvent } } @enum RD_RegSlot: @@ -833,292 +946,302 @@ RD_RegTable: //////////////////////////////// //~ rjf: Command Table -@table(name ui_vis ipc_docs_vis text_pt_vis text_rng_vis q_expr q_slot q_view q_ent_kind q_ctrl_ent_kind q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_floating q_required canonical_icon string display_name desc search_tags ctx_filter) -// / | | | | | \___ __________________________/ | | | | | | -// / | | | | | \ / | | | | | | -RD_CmdTable: // | | | | | | | | | | | | | +@table(name ui_vis ipc_docs_vis q_expr q_slot q_allow_files q_allow_folders q_keep_oi q_select_oi q_is_code q_floating q_required canonical_icon string display_name desc search_tags filter_tags) +// / | | | \___ _________________________________________________/ | | | | | | +// / | | | \ / | | | | | | +RD_CmdTable: // | | | | | | | | | | | { //- rjf: exiting - {Exit 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 X "exit" "Exit" "Exits the debugger." "quit,close,abort" "" } + {Exit 1 1 "" Null 0 0 0 0 0 0 0 X "exit" "Exit" "Exits the debugger." "quit,close,abort" "" } //- rjf: palette - {OpenPalette 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 List "open_palette" "Open Palette" "Opens the palette." "help,cmd,lister" "" } + {OpenPalette 1 1 "" Null 0 0 0 0 0 0 0 List "open_palette" "Open Palette" "Opens the palette." "help,cmd,lister" "" } - //- rjf: command runners - {RunCommand 1 1 0 0 "query:commands" CmdName commands Nil Null 0 0 0 0 0 1 1 Null "run_command" "Run Command" "Runs a command from the command palette." "help,cmd" "" } - {RunExternalDriverTextCommand 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 1 1 Null "run_ext_driver_text_command" "Run External Driver Text Command" "" "" "" } + //- rjf: command fast-path + {RunCommand 0 0 "query:commands" CmdName 0 0 0 0 0 1 1 Null "run_command" "Run Command" "Runs a command from the command palette." "help,cmd" "" } + + //- rjf: external drivers + {RunExternalDriverTextCommand 0 0 "" Null 0 0 0 0 0 0 0 Null "run_ext_driver_text_command" "Run External Driver Text Command" "" "" "" } + {State 0 1 "" Null 0 0 0 0 0 0 0 Null "state" "State" "" "" "" } + {Eval 0 1 "" Expr 0 0 0 0 0 0 0 Null "eval" "Eval" "" "" "" } + {LineFromVAddr 0 1 "" Vaddr 0 0 0 0 0 0 0 Null "line_from_vaddr" "Line From Virtual Address" "" "" "" } //- rjf: os event passthrough - {OSEvent 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "os_event" "OS Event" "" "" "" } + {WMEvent 0 0 "" Null 0 0 0 0 0 0 0 Null "wm_event" "OS Event" "" "" "" } //- rjf: thread/frame selection - {SelectThread 1 1 0 0 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Thread "select_thread" "Select Thread" "Selects a thread." "" "" } - {SelectUnwind 0 1 0 0 "query:call_stack" Null null Nil Null 0 0 0 0 0 0 0 Null "select_unwind" "Select Unwind" "Selects an unwind frame number for the selected thread." "" "" } - {UpOneFrame 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 UpArrow "up_one_frame" "Up One Frame" "Selects the call stack frame above the currently selected." "" "" } - {DownOneFrame 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 DownArrow "down_one_frame" "Down One Frame" "Selects the call stack frame below the currently selected." "callstack,unwind" "" } - {SelectEntity 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RadioHollow "select_entity" "Select" "Selects a control entity." "" "" } - {DeselectEntity 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RadioFilled "deselect_entity" "Deselect" "Deselects a control entity." "" "" } + {SelectThread 1 1 "query:threads" Thread 0 0 0 0 0 1 1 Thread "select_thread" "Select Thread" "Selects a thread." "" "" } + {SelectUnwind 0 1 "query:call_stack" Null 0 0 0 0 0 0 0 Null "select_unwind" "Select Unwind" "Selects an unwind frame number for the selected thread." "" "" } + {UpOneFrame 1 1 "" Null 0 0 0 0 0 0 0 UpArrow "up_one_frame" "Up One Frame" "Selects the call stack frame above the currently selected." "" "" } + {DownOneFrame 1 1 "" Null 0 0 0 0 0 0 0 DownArrow "down_one_frame" "Down One Frame" "Selects the call stack frame below the currently selected." "callstack,unwind" "" } + {SelectEntity 0 0 "" Null 0 0 0 0 0 0 0 RadioHollow "select_entity" "Select" "Selects a control entity." "" "" } + {DeselectEntity 0 0 "" Null 0 0 0 0 0 0 0 RadioFilled "deselect_entity" "Deselect" "Deselects a control entity." "" "" } //- rjf: font sizes - {IncWindowFontSize 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "inc_window_font_size" "Increase Window Font Size" "Increases the window's font size by one point." "" "" } - {DecWindowFontSize 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "dec_window_font_size" "Decrease Window Font Size" "Decreases the window's font size by one point." "" "" } - {IncViewFontSize 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "inc_view_font_size" "Increase View Font Size" "Increases the view's font size by one point." "" "" } - {DecViewFontSize 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "dec_view_font_size" "Decrease View Font Size" "Decreases the view's font size by one point." "" "" } + {IncWindowFontSize 1 1 "" Null 0 0 0 0 0 0 0 Null "inc_window_font_size" "Increase Window Font Size" "Increases the window's font size by one point." "" "" } + {DecWindowFontSize 1 1 "" Null 0 0 0 0 0 0 0 Null "dec_window_font_size" "Decrease Window Font Size" "Decreases the window's font size by one point." "" "" } + {IncViewFontSize 1 1 "" Null 0 0 0 0 0 0 0 Null "inc_view_font_size" "Increase View Font Size" "Increases the view's font size by one point." "" "" } + {DecViewFontSize 1 1 "" Null 0 0 0 0 0 0 0 Null "dec_view_font_size" "Decrease View Font Size" "Decreases the view's font size by one point." "" "" } //- rjf: windows - {OpenWindow 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "open_window" "Open New Window" "Opens a new window." "" "" } - {WindowSettings 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Gear "window_settings" "Window Settings" "Opens settings for a window." "" "" } - {CloseWindow 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "close_window" "Close Window" "Closes an opened window." "" "" } - {ToggleFullscreen 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "toggle_fullscreen" "Toggle Fullscreen" "Toggles fullscreen view on the active window." "" "" } - {BringToFront 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "bring_to_front" "Bring To Front" "Brings all windows to the front, and focuses the most recently focused window." "top" "" } + {OpenWindow 1 1 "" Null 0 0 0 0 0 0 0 Window "open_window" "Open New Window" "Opens a new window." "" "" } + {WindowSettings 1 1 "" Null 0 0 0 0 0 0 0 Gear "window_settings" "Window Settings" "Opens settings for a window." "" "" } + {CloseWindow 1 1 "" Null 0 0 0 0 0 0 0 Window "close_window" "Close Window" "Closes an opened window." "" "" } + {ToggleFullscreen 1 1 "" Null 0 0 0 0 0 0 0 Window "toggle_fullscreen" "Toggle Fullscreen" "Toggles fullscreen view on the active window." "" "" } + {BringToFront 0 1 "" Null 0 0 0 0 0 0 0 Window "bring_to_front" "Bring To Front" "Brings all windows to the front, and focuses the most recently focused window." "top" "" } //- rjf: popups - {PopupAccept 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "popup_accept" "Popup Accept" "Accepts the active popup prompt." "" "" } - {PopupCancel 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "popup_cancel" "Popup Cancel" "Cancels the active popup prompt." "" "" } + {PopupAccept 0 1 "" Null 0 0 0 0 0 0 0 Null "popup_accept" "Popup Accept" "Accepts the active popup prompt." "" "" } + {PopupCancel 0 1 "" Null 0 0 0 0 0 0 0 Null "popup_cancel" "Popup Cancel" "Cancels the active popup prompt." "" "" } //- rjf: keybindings - {ResetToDefaultBindings 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "reset_to_default_bindings" "Reset To Default Bindings" "Resets all keybindings to their defaults." "" "" } + {ResetToDefaultBindings 1 1 "" Null 0 0 0 0 0 0 0 Null "reset_to_default_bindings" "Reset To Default Bindings" "Resets all keybindings to their defaults." "" "" } //- rjf: panel splitting - {ResetToDefaultPanels 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "reset_to_default_panels" "Reset To Default Panel Layout" "Resets the window to the default panel layout." "panel" "" } - {ResetToCompactPanels 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "reset_to_compact_panels" "Reset To Compact Panel Layout" "Resets the window to the compact panel layout." "panel" "" } - {ResetToSimplePanels 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Window "reset_to_simple_panels" "Reset To Simple Panel Layout" "Resets the window to the simple panel layout." "panel" "" } - {NewPanelLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 XSplit "new_panel_left" "Split Panel Left" "Creates a new panel to the left of the active panel." "panel" "" } - {NewPanelUp 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 YSplit "new_panel_up" "Split Panel Up" "Creates a new panel at the top of the active panel." "panel" "" } - {NewPanelRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 XSplit "new_panel_right" "Split Panel Right" "Creates a new panel to the right of the active panel." "panel" "" } - {NewPanelDown 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 YSplit "new_panel_down" "Split Panel Down" "Creates a new panel at the bottom of the active panel." "panel" "" } - {SplitPanel 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "split_panel" "Split Panel" "Creates a new panel in a given direction, and moves a tab to it, if specified." "" "" } + {ResetToDefaultPanels 1 1 "" Null 0 0 0 0 0 0 0 Window "reset_to_default_panels" "Reset To Default Panel Layout" "Resets the window to the default panel layout." "panel" "" } + {ResetToCompactPanels 1 1 "" Null 0 0 0 0 0 0 0 Window "reset_to_compact_panels" "Reset To Compact Panel Layout" "Resets the window to the compact panel layout." "panel" "" } + {ResetToSimplePanels 1 1 "" Null 0 0 0 0 0 0 0 Window "reset_to_simple_panels" "Reset To Simple Panel Layout" "Resets the window to the simple panel layout." "panel" "" } + {NewPanelLeft 1 1 "" Null 0 0 0 0 0 0 0 XSplit "new_panel_left" "Split Panel Left" "Creates a new panel to the left of the active panel." "panel" "" } + {NewPanelUp 1 1 "" Null 0 0 0 0 0 0 0 YSplit "new_panel_up" "Split Panel Up" "Creates a new panel at the top of the active panel." "panel" "" } + {NewPanelRight 1 1 "" Null 0 0 0 0 0 0 0 XSplit "new_panel_right" "Split Panel Right" "Creates a new panel to the right of the active panel." "panel" "" } + {NewPanelDown 1 1 "" Null 0 0 0 0 0 0 0 YSplit "new_panel_down" "Split Panel Down" "Creates a new panel at the bottom of the active panel." "panel" "" } + {SplitPanel 0 0 "" Null 0 0 0 0 0 0 0 Null "split_panel" "Split Panel" "Creates a new panel in a given direction, and moves a tab to it, if specified." "" "" } //- rjf: panel rotation - {RotatePanelColumns 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "rotate_panel_columns" "Rotate Panel Columns" "Rotates all panels at the closest column level of the panel hierarchy." "" "" } + {RotatePanelColumns 1 1 "" Null 0 0 0 0 0 0 0 Null "rotate_panel_columns" "Rotate Panel Columns" "Rotates all panels at the closest column level of the panel hierarchy." "" "" } //- rjf: focused panel changing - {NextPanel 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "next_panel" "Focus Next Panel" "Cycles the active panel forward." "" "" } - {PrevPanel 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "prev_panel" "Focus Previous Panel" "Cycles the active panel backwards." "" "" } - {FocusPanel 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "focus_panel" "Focus Panel" "Focuses a new panel." "" "" } - {FocusPanelRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "focus_panel_right" "Focus Panel Right" "Focuses a panel rightward of the currently focused panel." "" "" } - {FocusPanelLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "focus_panel_left" "Focus Panel Left" "Focuses a panel leftward of the currently focused panel." "" "" } - {FocusPanelUp 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 UpArrow "focus_panel_up" "Focus Panel Up" "Focuses a panel upward of the currently focused panel." "" "" } - {FocusPanelDown 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 DownArrow "focus_panel_down" "Focus Panel Down" "Focuses a panel downward of the currently focused panel." "" "" } + {NextPanel 1 1 "" Null 0 0 0 0 0 0 0 RightArrow "next_panel" "Focus Next Panel" "Cycles the active panel forward." "" "" } + {PrevPanel 1 1 "" Null 0 0 0 0 0 0 0 LeftArrow "prev_panel" "Focus Previous Panel" "Cycles the active panel backwards." "" "" } + {FocusPanel 0 0 "" Null 0 0 0 0 0 0 0 Null "focus_panel" "Focus Panel" "Focuses a new panel." "" "" } + {FocusPanelRight 1 1 "" Null 0 0 0 0 0 0 0 RightArrow "focus_panel_right" "Focus Panel Right" "Focuses a panel rightward of the currently focused panel." "" "" } + {FocusPanelLeft 1 1 "" Null 0 0 0 0 0 0 0 LeftArrow "focus_panel_left" "Focus Panel Left" "Focuses a panel leftward of the currently focused panel." "" "" } + {FocusPanelUp 1 1 "" Null 0 0 0 0 0 0 0 UpArrow "focus_panel_up" "Focus Panel Up" "Focuses a panel upward of the currently focused panel." "" "" } + {FocusPanelDown 1 1 "" Null 0 0 0 0 0 0 0 DownArrow "focus_panel_down" "Focus Panel Down" "Focuses a panel downward of the currently focused panel." "" "" } //- rjf: undo/redo - {Undo 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Undo "undo" "Undo" "Undoes the previous action." "" "" } - {Redo 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Redo "redo" "Redo" "Redoes the first previously undone action." "" "" } + {Undo 0 0 "" Null 0 0 0 0 0 0 0 Undo "undo" "Undo" "Undoes the previous action." "" "" } + {Redo 0 0 "" Null 0 0 0 0 0 0 0 Redo "redo" "Redo" "Redoes the first previously undone action." "" "" } //- rjf: focus history - {GoBack 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "go_back" "Go Back" "Returns to the previously selected panel and tab in recorded history." "" "" } - {GoForward 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "go_forward" "Go Forward" "Returns to the next selected panel and tab in recorded history." "" "" } + {GoBack 0 0 "" Null 0 0 0 0 0 0 0 LeftArrow "go_back" "Go Back" "Returns to the previously selected panel and tab in recorded history." "" "" } + {GoForward 0 0 "" Null 0 0 0 0 0 0 0 RightArrow "go_forward" "Go Forward" "Returns to the next selected panel and tab in recorded history." "" "" } //- rjf: panel removal - {ClosePanel 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 ClosePanel "close_panel" "Close Panel" "Closes the currently active panel." "" "" } + {ClosePanel 1 1 "" Null 0 0 0 0 0 0 0 ClosePanel "close_panel" "Close Panel" "Closes the currently active panel." "" "" } //- rjf: panel tab - {FocusTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "focus_tab" "Focus Tab" "Focuses the passed tab within its containing panel." "" "" } - {NextTab 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "next_tab" "Focus Next Tab" "Focuses the next tab on the active panel." "" "" } - {PrevTab 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "prev_tab" "Focus Previous Tab" "Focuses the previous tab on the active panel." "" "" } - {MoveTabRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "move_tab_right" "Move Tab Right" "Moves the selected tab right one slot." "" "$tab," } - {MoveTabLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 LeftArrow "move_tab_left" "Move Tab Left" "Moves the selected tab left one slot." "" "$tab," } - {OpenTab 1 1 0 0 "query:tab_commands" CmdName commands Nil Null 0 0 0 0 0 1 1 Null "open_tab" "Open New Tab" "Opens a new tab." "" "" } - {BuildTab 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "build_tab" "Build Tab" "Opens a new tab with the parameterized view specification." "" "" } - {DuplicateTab 1 1 0 0 "" Tab null Nil Null 0 0 0 0 0 0 0 Duplicate "duplicate_tab" "Duplicate Tab" "Duplicates a tab." "" "$tab," } - {CopyTabFullPath 0 0 0 0 "" Tab null Nil Null 0 0 0 0 0 0 0 Clipboard "copy_tab_full_path" "Copy Full Path" "Copies the full path of the file being viewed by this tab." "" "$tab," } - {CloseTab 1 1 0 0 "" Tab null Nil Null 0 0 0 0 0 0 0 X "close_tab" "Close Tab" "Closes the currently opened tab." "" "$tab," } - {MoveView 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_view" "Move View" "Moves a view to a new panel." "" "" } - {TabBarTop 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 UpArrow "tab_bar_top" "Anchor Tab Bar To Top" "Anchors a panel's tab bar to the top of the panel." "" "$tab," } - {TabBarBottom 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 DownArrow "tab_bar_bottom" "Anchor Tab Bar To Bottom" "Anchors a panel's tab bar to the bottom of the panel." "" "$tab," } - {TabSettings 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Gear "tab_settings" "Tab Settings" "Opens settings for a tab." "" "" } + {FocusTab 0 0 "" Null 0 0 0 0 0 0 0 Null "focus_tab" "Focus Tab" "Focuses the passed tab within its containing panel." "" "" } + {NextTab 1 1 "" Null 0 0 0 0 0 0 0 RightArrow "next_tab" "Focus Next Tab" "Focuses the next tab on the active panel." "" "" } + {PrevTab 1 1 "" Null 0 0 0 0 0 0 0 LeftArrow "prev_tab" "Focus Previous Tab" "Focuses the previous tab on the active panel." "" "" } + {MoveTabRight 1 1 "" Null 0 0 0 0 0 0 0 RightArrow "move_tab_right" "Move Tab Right" "Moves the selected tab right one slot." "" "" } + {MoveTabLeft 1 1 "" Null 0 0 0 0 0 0 0 LeftArrow "move_tab_left" "Move Tab Left" "Moves the selected tab left one slot." "" "" } + {OpenTab 1 1 "query:tab_commands" CmdName 0 0 0 0 0 1 1 Null "open_tab" "Open New Tab" "Opens a new tab." "" "" } + {BuildTab 0 0 "" Null 0 0 0 0 0 0 0 Null "build_tab" "Build Tab" "Opens a new tab with the parameterized view specification." "" "" } + {DuplicateTab 1 1 "" Tab 0 0 0 0 0 0 0 Duplicate "duplicate_tab" "Duplicate Tab" "Duplicates a tab." "" "" } + {CopyTabFullPath 0 0 "" Tab 0 0 0 0 0 0 0 Clipboard "copy_tab_full_path" "Copy Full Path" "Copies the full path of the file being viewed by this tab." "" "" } + {CloseTab 1 1 "" Tab 0 0 0 0 0 0 0 X "close_tab" "Close Tab" "Closes the currently opened tab." "" "" } + {MoveView 0 0 "" Null 0 0 0 0 0 0 0 Null "move_view" "Move View" "Moves a view to a new panel." "" "" } + {TabBarTop 1 1 "" Null 0 0 0 0 0 0 0 UpArrow "tab_bar_top" "Anchor Tab Bar To Top" "Anchors a panel's tab bar to the top of the panel." "" "" } + {TabBarBottom 1 1 "" Null 0 0 0 0 0 0 0 DownArrow "tab_bar_bottom" "Anchor Tab Bar To Bottom" "Anchors a panel's tab bar to the bottom of the panel." "" "" } + {TabSettings 1 1 "" Null 0 0 0 0 0 0 0 Gear "tab_settings" "Selected Tab Settings" "Opens settings for a tab." "view,options" "" } //- rjf: files - {SetCurrentPath 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "set_current_path" "Set Current Path" "Sets the debugger's current path, which is used as a starting point when browsing for files." "" "" } - {Open 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 FileOutline "open" "Open" "Opens a file." "code,source,file" "" } - {Switch 1 0 0 0 "query:recent_files, query:source_files" Cfg null RecentFile Null 0 0 0 0 0 1 1 FileOutline "switch" "Switch" "Switches to a recent file." "code,source,file" "" } - {SwitchToPartnerFile 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "switch_to_partner_file" "Switch To Partner File" "Switches to the focused file's partner; or from header to implementation or vice versa." "code,source,file" "" } - {RecordFileInProject 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "record_file_in_project" "Record File In Project" "Records the passed file path as a recent file in the currently loaded project." "" "" } - {ShowFileInExplorer 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FolderClosedFilled "show_file_in_explorer" "Show File In Explorer" "Opens the operating system's file explorer and shows the selected file." "" "$file," } + {SetCurrentPath 0 1 "" Null 0 0 0 0 0 0 0 FileOutline "set_current_path" "Set Current Path" "Sets the debugger's current path, which is used as a starting point when browsing for files." "" "" } + {Open 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 FileOutline "open" "Open" "Opens a file." "code,source,file" "" } + {OpenSourceFileFromDebugInfo 1 0 "query:source_files" Cfg 0 0 0 0 0 1 1 FileOutline "open_source_file_from_debug_info" "Open Source File From Debug Info" "Opens a source file found within loaded debug info." "code,source,file" "" } + {SwitchToPartnerFile 1 1 "" Null 0 0 0 0 0 0 0 FileOutline "switch_to_partner_file" "Switch To Partner File" "Switches to the focused file's partner; or from header to implementation or vice versa." "code,source,file" "" } + {ShowFileInExplorer 1 1 "" Null 0 0 0 0 0 0 0 FolderClosedFilled "show_file_in_explorer" "Show File In Explorer" "Opens the operating system's file explorer and shows the selected file." "" "" } //- rjf: source <-> disasm - {GoToDisassembly 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 Glasses "go_to_disassembly" "Go To Disassembly" "Goes to the disassembly, if any, for a given source code line." "code,source,disassembly,disasm" "$text_pt," } - {GoToSource 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "go_to_source" "Go To Source" "Goes to the source code, if any, for a given disassembly line." "code,source,disassembly,disasm" "" } + {GoToDisassembly 1 1 "" Null 0 0 0 0 0 0 0 Glasses "go_to_disassembly" "Go To Disassembly" "Goes to the disassembly, if any, for a given source code line." "code,source,disassembly,disasm" "{text_pt_commands}" } + {GoToSource 1 1 "" Null 0 0 0 0 0 0 0 FileOutline "go_to_source" "Go To Source" "Goes to the source code, if any, for a given disassembly line." "code,source,disassembly,disasm" "{disasm_pt_commands}" } //- rjf: override file links - {SetFileReplacementPath 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "set_file_replacement_path" "Set File Replacement Path" "Sets the path which should be used as the replacement for the passed file." "" "" } + {SetFileReplacementPath 0 0 "" Null 0 0 0 0 0 0 0 Null "set_file_replacement_path" "Set File Replacement Path" "Sets the path which should be used as the replacement for the passed file." "" "" } //- rjf: setting config paths - {NewUser 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Add "new_user" "New User" "Creates a new user file, and sets the current user path as that file's path." "new,user,project,layout" "" } - {NewProject 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Add "new_project" "New Project" "Creates a new project file, and sets the current project path as that file's path." "new,user,project,layout" "" } - {OpenUser 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Person "open_user" "Open User" "Opens a user file path, immediately loading it, and begins autosaving to it." "load,user,project,layout" "" } - {OpenProject 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Briefcase "open_project" "Open Project" "Opens a project file path, immediately loading it, and begins autosaving to it." "project,project,session" "" } - {OpenRecentProject 1 1 0 0 "query:recent_projects" Cfg null RecentProject Null 0 0 0 0 0 1 1 Briefcase "open_recent_project" "Open Recent Project" "Opens a recently used project file." "project,project,session" "" } - {SaveUser 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Save "save_user" "Save User" "Saves user data to a file, and sets the current user path as that path." "load,user,project,layout" "" } - {SaveProject 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Save "save_project" "Save Project" "Saves project data to a file, and sets the current project path as that path." "project,project,session" "" } - {RecordUserAsLastOpened 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "record_user_as_last_opened" "Record User As Last Opened" "Records a file path as the last opened user." "" "" } - {RecordProjectInUser 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "record_project_in_user" "Records Project In User" "Records a file path as a recent project in user data." "" "" } + {NewUser 1 1 "" Null 1 0 0 0 0 1 0 Add "new_user" "New User" "Creates a new user file, and sets the current user path as that file's path." "new,user,project,layout" "" } + {NewProject 1 1 "" Null 1 0 0 0 0 1 0 Add "new_project" "New Project" "Creates a new project file, and sets the current project path as that file's path." "new,user,project,layout" "" } + {OpenUser 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Person "open_user" "Open User" "Opens a user file path, immediately loading it, and begins autosaving to it." "load,user,project,layout" "" } + {OpenProject 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Briefcase "open_project" "Open Project" "Opens a project file path, immediately loading it, and begins autosaving to it." "project,project,session" "" } + {OpenRecentProject 1 1 "query:recent_projects" Cfg 0 0 0 0 0 1 1 Briefcase "open_recent_project" "Open Recent Project" "Opens a recently used project file." "project,project,session" "" } + {SaveUser 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Save "save_user" "Save User" "Saves user data to a file, and sets the current user path as that path." "load,user,project,layout" "" } + {SaveProject 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Save "save_project" "Save Project" "Saves project data to a file, and sets the current project path as that path." "project,project,session" "" } + {RecordUserAsLastOpened 0 0 "" Null 0 0 0 0 0 0 0 Null "record_user_as_last_opened" "Record User As Last Opened" "Records a file path as the last opened user." "" "" } + {RecordProjectInUser 0 0 "" Null 0 0 0 0 0 0 0 Null "record_project_in_user" "Records Project In User" "Records a file path as a recent project in user data." "" "" } //- rjf: writing config changes - {WriteUserData 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "write_user_data" "Write User Data" "Writes user data to the active user file." "" "" } - {WriteProjectData 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "write_project_data" "Write Project Data" "Writes project data to the active project file." "" "" } + {WriteUserData 0 1 "" Null 0 0 0 0 0 0 0 Null "write_user_data" "Write User Data" "Writes user data to the active user file." "" "" } + {WriteProjectData 0 1 "" Null 0 0 0 0 0 0 0 Null "write_project_data" "Write Project Data" "Writes project data to the active project file." "" "" } //- rjf: opening user/project settings - {UserSettings 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Gear "user_settings" "User Settings" "Opens user settings." "" "" } - {ProjectSettings 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Gear "project_settings" "Project Settings" "Opens project settings." "" "" } + {UserSettings 1 1 "" Null 0 0 0 0 0 0 0 Gear "user_settings" "User Settings" "Opens user settings." "" "" } + {ProjectSettings 1 1 "" Null 0 0 0 0 0 0 0 Gear "project_settings" "Project Settings" "Opens project settings." "" "" } //- rjf: meta controls - {Edit 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Pencil "edit" "Edit" "Edits the current selection." "" "" } - {Accept 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 CheckFilled "accept" "Accept" "Accepts current changes, or answers prompts in the affirmative." "" "" } - {Cancel 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 X "cancel" "Cancel" "Rejects current changes, exits temporary menus, or answers prompts in the negative." "" "" } + {Edit 1 1 "" Null 0 0 0 0 0 0 0 Pencil "edit" "Edit" "Edits the current selection." "" "" } + {Accept 1 1 "" Null 0 0 0 0 0 0 0 CheckFilled "accept" "Accept" "Accepts current changes, or answers prompts in the affirmative." "" "" } + {Cancel 1 1 "" Null 0 0 0 0 0 0 0 X "cancel" "Cancel" "Rejects current changes, exits temporary menus, or answers prompts in the negative." "" "" } + {FocusMenu 1 1 "" Null 0 0 0 0 0 0 0 List "focus_menu" "Focus Menu" "Focuses the menu for the selected interface, if there is one." "" "" } //- rjf: directional movement & text controls - {MoveLeft 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_left" "Move Left" "Moves the cursor or selection left." "" "" } - {MoveRight 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_right" "Move Right" "Moves the cursor or selection right." "" "" } - {MoveUp 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up" "Move Up" "Moves the cursor or selection up." "" "" } - {MoveDown 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down" "Move Down" "Moves the cursor or selection down." "" "" } - {MoveLeftSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_left_select" "Move Left Select" "Moves the cursor or selection left, while selecting." "" "" } - {MoveRightSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_right_select" "Move Right Select" "Moves the cursor or selection right, while selecting." "" "" } - {MoveUpSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_select" "Move Up Select" "Moves the cursor or selection up, while selecting." "" "" } - {MoveDownSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_select" "Move Down Select" "Moves the cursor or selection down, while selecting." "" "" } - {MoveLeftChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_left_chunk" "Move Left Chunk" "Moves the cursor or selection left one chunk." "" "" } - {MoveRightChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_right_chunk" "Move Right Chunk" "Moves the cursor or selection right one chunk." "" "" } - {MoveUpChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_chunk" "Move Up Chunk" "Moves the cursor or selection up one chunk." "" "" } - {MoveDownChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_chunk" "Move Down Chunk" "Moves the cursor or selection down one chunk." "" "" } - {MoveUpPage 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_page" "Move Up Page" "Moves the cursor or selection up one page." "" "" } - {MoveDownPage 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_page" "Move Down Page" "Moves the cursor or selection down one page." "" "" } - {MoveUpWhole 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_whole" "Move Up Whole" "Moves the cursor or selection to the beginning of the relevant content." "" "" } - {MoveDownWhole 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_whole" "Move Down Whole" "Moves the cursor or selection to the end of the relevant content." "" "" } - {MoveLeftChunkSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_left_chunk_select" "Move Left Chunk Select" "Moves the cursor or selection left one chunk." "" "" } - {MoveRightChunkSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_right_chunk_select" "Move Right Chunk Select" "Moves the cursor or selection right one chunk." "" "" } - {MoveUpChunkSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_chunk_select" "Move Up Chunk Select" "Moves the cursor or selection up one chunk." "" "" } - {MoveDownChunkSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_chunk_select" "Move Down Chunk Select" "Moves the cursor or selection down one chunk." "" "" } - {MoveUpPageSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_page_select" "Move Up Page Select" "Moves the cursor or selection up one page, while selecting." "" "" } - {MoveDownPageSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_page_select" "Move Down Page Select" "Moves the cursor or selection down one page, while selecting." "" "" } - {MoveUpWholeSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_whole_select" "Move Up Whole Select" "Moves the cursor or selection to the beginning of the relevant content, while selecting." "" "" } - {MoveDownWholeSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_whole_select" "Move Down Whole Select" "Moves the cursor or selection to the end of the relevant content, while selecting." "" "" } - {MoveUpReorder 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_up_reorder" "Move Up Reorder" "Moves the cursor or selection up, while swapping the currently selected element with that upward." "" "" } - {MoveDownReorder 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_down_reorder" "Move Down Reorder" "Moves the cursor or selection down, while swapping the currently selected element with that downward." "" "" } - {MoveHome 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_home" "Move Home" "Moves the cursor to the beginning of the line." "" "" } - {MoveEnd 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_end" "Move End" "Moves the cursor to the end of the line." "" "" } - {MoveHomeSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_home_select" "Move Home Select" "Moves the cursor to the beginning of the line, while selecting." "" "" } - {MoveEndSelect 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_end_select" "Move End Select" "Moves the cursor to the end of the line, while selecting." "" "" } - {SelectAll 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "select_all" "Select All" "Selects everything possible." "" "" } - {DeleteSingle 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "delete_single" "Delete Single" "Deletes a single element to the right of the cursor, or the active selection." "" "" } - {DeleteChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "delete_chunk" "Delete Chunk" "Deletes a chunk to the right of the cursor, or the active selection." "" "" } - {BackspaceSingle 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "backspace_single" "Backspace Single" "Deletes a single element to the left of the cursor, or the active selection." "" "" } - {BackspaceChunk 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "backspace_chunk" "Backspace Chunk" "Deletes a chunk to the left of the cursor, or the active selection." "" "" } - {Copy 1 1 0 1 "" Null null Nil Null 0 0 0 0 0 0 0 Clipboard "copy" "Copy" "Copies the active selection to the clipboard." "" "$text_rng," } - {Cut 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Clipboard "cut" "Cut" "Copies the active selection to the clipboard, then deletes it." "" "" } - {Paste 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Clipboard "paste" "Paste" "Pastes the current contents of the clipboard." "" "" } - {InsertText 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "insert_text" "Insert Text" "Inserts the text that was used to cause this command." "" "" } + {MoveLeft 1 1 "" Null 0 0 0 0 0 0 0 Null "move_left" "Move Left" "Moves the cursor or selection left." "" "" } + {MoveRight 1 1 "" Null 0 0 0 0 0 0 0 Null "move_right" "Move Right" "Moves the cursor or selection right." "" "" } + {MoveUp 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up" "Move Up" "Moves the cursor or selection up." "" "" } + {MoveDown 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down" "Move Down" "Moves the cursor or selection down." "" "" } + {MoveLeftSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_left_select" "Move Left Select" "Moves the cursor or selection left, while selecting." "" "" } + {MoveRightSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_right_select" "Move Right Select" "Moves the cursor or selection right, while selecting." "" "" } + {MoveUpSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_select" "Move Up Select" "Moves the cursor or selection up, while selecting." "" "" } + {MoveDownSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_select" "Move Down Select" "Moves the cursor or selection down, while selecting." "" "" } + {MoveLeftChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "move_left_chunk" "Move Left Chunk" "Moves the cursor or selection left one chunk." "" "" } + {MoveRightChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "move_right_chunk" "Move Right Chunk" "Moves the cursor or selection right one chunk." "" "" } + {MoveUpChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_chunk" "Move Up Chunk" "Moves the cursor or selection up one chunk." "" "" } + {MoveDownChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_chunk" "Move Down Chunk" "Moves the cursor or selection down one chunk." "" "" } + {MoveUpPage 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_page" "Move Up Page" "Moves the cursor or selection up one page." "" "" } + {MoveDownPage 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_page" "Move Down Page" "Moves the cursor or selection down one page." "" "" } + {MoveUpWhole 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_whole" "Move Up Whole" "Moves the cursor or selection to the beginning of the relevant content." "" "" } + {MoveDownWhole 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_whole" "Move Down Whole" "Moves the cursor or selection to the end of the relevant content." "" "" } + {MoveLeftChunkSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_left_chunk_select" "Move Left Chunk Select" "Moves the cursor or selection left one chunk." "" "" } + {MoveRightChunkSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_right_chunk_select" "Move Right Chunk Select" "Moves the cursor or selection right one chunk." "" "" } + {MoveUpChunkSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_chunk_select" "Move Up Chunk Select" "Moves the cursor or selection up one chunk." "" "" } + {MoveDownChunkSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_chunk_select" "Move Down Chunk Select" "Moves the cursor or selection down one chunk." "" "" } + {MoveUpPageSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_page_select" "Move Up Page Select" "Moves the cursor or selection up one page, while selecting." "" "" } + {MoveDownPageSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_page_select" "Move Down Page Select" "Moves the cursor or selection down one page, while selecting." "" "" } + {MoveUpWholeSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_whole_select" "Move Up Whole Select" "Moves the cursor or selection to the beginning of the relevant content, while selecting." "" "" } + {MoveDownWholeSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_whole_select" "Move Down Whole Select" "Moves the cursor or selection to the end of the relevant content, while selecting." "" "" } + {MoveUpReorder 1 1 "" Null 0 0 0 0 0 0 0 Null "move_up_reorder" "Move Up Reorder" "Moves the cursor or selection up, while swapping the currently selected element with that upward." "" "" } + {MoveDownReorder 1 1 "" Null 0 0 0 0 0 0 0 Null "move_down_reorder" "Move Down Reorder" "Moves the cursor or selection down, while swapping the currently selected element with that downward." "" "" } + {MoveHome 1 1 "" Null 0 0 0 0 0 0 0 Null "move_home" "Move Home" "Moves the cursor to the beginning of the line." "" "" } + {MoveEnd 1 1 "" Null 0 0 0 0 0 0 0 Null "move_end" "Move End" "Moves the cursor to the end of the line." "" "" } + {MoveHomeSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_home_select" "Move Home Select" "Moves the cursor to the beginning of the line, while selecting." "" "" } + {MoveEndSelect 1 1 "" Null 0 0 0 0 0 0 0 Null "move_end_select" "Move End Select" "Moves the cursor to the end of the line, while selecting." "" "" } + {SelectAll 1 1 "" Null 0 0 0 0 0 0 0 Null "select_all" "Select All" "Selects everything possible." "" "" } + {DeleteSingle 1 1 "" Null 0 0 0 0 0 0 0 Null "delete_single" "Delete Single" "Deletes a single element to the right of the cursor, or the active selection." "" "" } + {DeleteChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "delete_chunk" "Delete Chunk" "Deletes a chunk to the right of the cursor, or the active selection." "" "" } + {BackspaceSingle 1 1 "" Null 0 0 0 0 0 0 0 Null "backspace_single" "Backspace Single" "Deletes a single element to the left of the cursor, or the active selection." "" "" } + {BackspaceChunk 1 1 "" Null 0 0 0 0 0 0 0 Null "backspace_chunk" "Backspace Chunk" "Deletes a chunk to the left of the cursor, or the active selection." "" "" } + {Copy 1 1 "" Null 0 0 0 0 0 0 0 Clipboard "copy" "Copy" "Copies the active selection to the clipboard." "" "{text_range_commands}{disasm_range_commands}" } + {Cut 1 1 "" Null 0 0 0 0 0 0 0 Clipboard "cut" "Cut" "Copies the active selection to the clipboard, then deletes it." "" "" } + {Paste 1 1 "" Null 0 0 0 0 0 0 0 Clipboard "paste" "Paste" "Pastes the current contents of the clipboard." "" "" } + {InsertText 0 1 "" Null 0 0 0 0 0 0 0 Null "insert_text" "Insert Text" "Inserts the text that was used to cause this command." "" "" } //- rjf: directionless navigation - {MoveNext 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_next" "Move Next" "Moves the cursor or selection to the next element." "" "" } - {MovePrev 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "move_prev" "Move Previous" "Moves the cursor or selection to the previous element." "" "" } + {MoveNext 1 1 "" Null 0 0 0 0 0 0 0 Null "move_next" "Move Next" "Moves the cursor or selection to the next element." "" "" } + {MovePrev 1 1 "" Null 0 0 0 0 0 0 0 Null "move_prev" "Move Previous" "Moves the cursor or selection to the previous element." "" "" } //- rjf: code navigation - {GoToLine 1 1 0 0 "" Cursor null Nil Null 0 0 0 0 1 0 1 Null "goto_line" "Go To Line" "Jumps to a line number in the current code file." "" "" } - {GoToAddress 1 1 0 0 "" Vaddr null Nil Null 0 0 0 0 1 0 1 Null "goto_address" "Go To Address" "Jumps to an address in the current memory or disassembly view." "" "" } - {CenterCursor 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "center_cursor" "Center Cursor" "Snaps the current code view to center the cursor." "" "" } - {ContainCursor 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "contain_cursor" "Contain Cursor" "Snaps the current code view to contain the cursor." "" "" } - {FindNext 1 1 0 0 "" Null null Nil Null 0 0 1 0 0 0 0 Find "find_next" "Find Next" "Searches the current code file forward (from the cursor) for the last searched string." "" "" } - {FindPrev 1 1 0 0 "" Null null Nil Null 0 0 1 0 0 0 0 Find "find_prev" "Find Previous" "Searches the current code file backwards (from the cursor) for the last searched string." "" "" } + {GoToLine 1 1 "" Cursor 0 0 0 0 1 0 1 Null "goto_line" "Go To Line" "Jumps to a line number in the current code file." "" "" } + {GoToAddress 1 1 "" Vaddr 0 0 0 0 1 0 1 Null "goto_address" "Go To Address" "Jumps to an address in the current memory or disassembly view." "" "" } + {CenterCursor 1 1 "" Null 0 0 0 0 0 0 0 Null "center_cursor" "Center Cursor" "Snaps the current code view to center the cursor." "" "" } + {ContainCursor 1 1 "" Null 0 0 0 0 0 0 0 Null "contain_cursor" "Contain Cursor" "Snaps the current code view to contain the cursor." "" "" } + {FindNext 1 1 "" Null 0 0 1 0 0 0 0 Find "find_next" "Find Next" "Searches the current code file forward (from the cursor) for the last searched string." "" "" } + {FindPrev 1 1 "" Null 0 0 1 0 0 0 0 Find "find_prev" "Find Previous" "Searches the current code file backwards (from the cursor) for the last searched string." "" "" } //- rjf: thread finding - {FindThread 1 1 0 0 "query:threads" Thread null Nil Thread 0 0 0 0 0 1 1 Find "find_thread" "Find Thread" "Jumps to the passed thread in either source code, disassembly, or both if they're already open." "" "" } - {FindSelectedThread 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Find "find_selected_thread" "Find Selected Thread" "Jumps to the selected thread in either source code, disassembly, or both if they're already open." "" "" } + {FindThread 1 1 "query:threads" Thread 0 0 0 0 0 1 1 Find "find_thread" "Find Thread" "Jumps to the passed thread in either source code, disassembly, or both if they're already open." "" "" } + {FindSelectedThread 1 1 "" Null 0 0 0 0 0 0 0 Find "find_selected_thread" "Find Selected Thread" "Jumps to the selected thread in either source code, disassembly, or both if they're already open." "current,instruction" "{text_pt_commands}{text_range_commands}{disasm_pt_commands}{disasm_range_commands}" } //- rjf: name finding - {GoToName 1 1 0 0 "query:procedures" String symbol_lister Nil Null 0 0 0 0 1 1 1 Null "goto_name" "Go To Name" "Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible." "" "$text_pt," } - {GoToNameAtCursor 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "goto_name_at_cursor" "Go To Name At Cursor" "Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible." "" "" } + {GoToName 1 1 "query:procedures" String 0 0 0 0 1 1 1 Null "goto_name" "Go To Name" "Searches for the passed string as a file, a symbol in debug info, and more, then jumps to it if possible." "" "" } + {GoToNameAtCursor 1 1 "" Null 0 0 0 0 0 0 0 Null "goto_name_at_cursor" "Go To Name At Cursor" "Searches for the text at the cursor as a file, a symbol in debug info, and more, then jumps to it if possible." "" "{text_pt_commands}{disasm_pt_commands}" } //- rjf: watch expressions - {ToggleWatchExpression 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr" "Toggle Watch Expression" "Adds or removes an expression to an opened watch view." "" "$text_pt," } - {ToggleWatchExpressionAtCursor 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr_at_cursor" "Toggle Watch Expression At Cursor" "Adds or removes the expression that the cursor or selection is currently over to an opened watch view." "" "" } - {ToggleWatchExpressionAtMouse 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr_at_mouse" "Toggle Watch Expression At Mouse" "Adds or removes the expression that the mouse is currently over to an opened watch view." "" "" } + {ToggleWatchExpression 1 1 "" Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr" "Toggle Watch Expression" "Adds or removes an expression to an opened watch view." "" "" } + {ToggleWatchExpressionAtCursor 1 1 "" Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr_at_cursor" "Toggle Watch Expression At Cursor" "Adds or removes the expression that the cursor or selection is currently over to an opened watch view." "" "{text_pt_commands}{disasm_pt_commands}" } + {ToggleWatchExpressionAtMouse 1 1 "" Null 0 0 0 0 0 0 0 Binoculars "toggle_watch_expr_at_mouse" "Toggle Watch Expression At Mouse" "Adds or removes the expression that the mouse is currently over to an opened watch view." "" "" } //- rjf: general config operations - {EnableCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 CheckHollow "enable_cfg" "Enable" "Enables a config tree." "" "" } - {DisableCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 CheckFilled "disable_cfg" "Disable" "Disables a config tree." "" "" } - {SelectCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RadioHollow "select_cfg" "Select" "Selects a config tree, disabling all others of the same kind." "" "" } - {DeselectCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 RadioFilled "deselect_cfg" "Deselect" "Deselects a config tree." "" "" } - {RemoveCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Trash "remove_cfg" "Remove" "Removes a config tree." "" "" } - {NameCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "name_cfg" "Name" "Equips a config tree with a label." "" "" } - {ConditionCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "condition_cfg" "Condition" "Equips a config tree with a condition string." "" "" } - {DuplicateCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Duplicate "duplicate_cfg" "Duplicate" "Duplicates a config tree." "" "" } - {RelocateCfg 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "relocate_cfg" "Relocate" "Relocates a config tree." "" "" } - {SaveToProject 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Briefcase "save_cfg_to_project" "Save To Project" "Saves the config tree to the project." "" "" } + {EnableCfg 0 0 "" Null 0 0 0 0 0 0 0 CheckHollow "enable_cfg" "Enable" "Enables a config tree." "" "" } + {DisableCfg 0 0 "" Null 0 0 0 0 0 0 0 CheckFilled "disable_cfg" "Disable" "Disables a config tree." "" "" } + {SelectCfg 0 0 "" Null 0 0 0 0 0 0 0 RadioHollow "select_cfg" "Select" "Selects a config tree, disabling all others of the same kind." "" "" } + {DeselectCfg 0 0 "" Null 0 0 0 0 0 0 0 RadioFilled "deselect_cfg" "Deselect" "Deselects a config tree." "" "" } + {RemoveCfg 0 0 "" Null 0 0 0 0 0 0 0 Trash "remove_cfg" "Remove" "Removes a config tree." "" "" } + {NameCfg 0 0 "" Null 0 0 0 0 0 0 0 Null "name_cfg" "Name" "Equips a config tree with a label." "" "" } + {ConditionCfg 0 0 "" Null 0 0 0 0 0 0 0 Null "condition_cfg" "Condition" "Equips a config tree with a condition string." "" "" } + {DuplicateCfg 0 0 "" Null 0 0 0 0 0 0 0 Duplicate "duplicate_cfg" "Duplicate" "Duplicates a config tree." "" "" } + {RelocateCfg 0 0 "" Null 0 0 0 0 0 0 0 Null "relocate_cfg" "Relocate" "Relocates a config tree." "" "" } + {SaveToProject 0 0 "" Null 0 0 0 0 0 0 0 Briefcase "save_cfg_to_project" "Save To Project" "Saves the config tree to the project." "" "" } //- rjf: breakpoints - {AddBreakpoint 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 CircleFilled "add_breakpoint" "Add Line Breakpoint" "Places a breakpoint at a given location (file path and line number, address, or symbol name)." "" "" } - {AddAddressBreakpoint 1 0 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 CircleFilled "add_address_breakpoint" "Add Address Breakpoint" "Places a breakpoint on the specified address." "" "$breakpoints," } - {AddFunctionBreakpoint 1 0 0 0 "query:procedures" String null Nil Null 0 0 0 0 1 1 1 CircleFilled "add_function_breakpoint" "Add Function Breakpoint" "Places a breakpoint on the first address of the specified function." "" "$breakpoints," } - {ToggleBreakpoint 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 CircleFilled "toggle_breakpoint" "Toggle Line Breakpoint" "Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)." "" "$text_pt," } - {RemoveBreakpoint 1 0 0 0 "query:breakpoints" Cfg null Nil Null 0 0 0 0 1 1 1 Trash "remove_breakpoint" "Remove Breakpoint" "Removes an existing breakpoint." "delete" "$breakpoints," } - {EnableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckFilled "enable_breakpoint" "Enable Breakpoint" "Enables a breakpoint." "" "" } - {DisableBreakpoint 1 1 0 0 "query:breakpoints" Cfg null Breakpoint Null 0 0 0 0 1 1 1 CheckHollow "disable_breakpoint" "Disable Breakpoint" "Disables a breakpoint." "" "" } - {ClearBreakpoints 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Trash "clear_breakpoints" "Clear Breakpoints" "Removes all breakpoints." "" "" } - {ListBreakpoints 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "list_breakpoints" "List Breakpoints" "Lists all breakpoints." "" "" } + {AddBreakpoint 1 1 "" Null 0 0 0 0 0 0 0 CircleFilled "add_breakpoint" "Add Line Breakpoint" "Places a breakpoint at a given location (file path and line number, address, or symbol name)." "" "" } + {AddAddressBreakpoint 1 0 "" Expr 0 0 0 0 1 1 1 CircleFilled "add_address_breakpoint" "Add Address Breakpoint" "Places a breakpoint on the specified address." "" "" } + {AddFunctionBreakpoint 1 0 "query:procedures" String 0 0 0 0 1 1 1 CircleFilled "add_function_breakpoint" "Add Function Breakpoint" "Places a breakpoint on the first address of the specified function." "" "" } + {ToggleBreakpoint 1 1 "" Null 0 0 0 0 0 0 0 CircleFilled "toggle_breakpoint" "Toggle Line Breakpoint" "Places or removes a breakpoint at a given location (file path and line number, address, or symbol name)." "" "{text_pt_commands}{disasm_pt_commands}" } + {RemoveBreakpoint 1 0 "query:breakpoints" Cfg 0 0 0 0 1 1 1 Trash "remove_breakpoint" "Remove Breakpoint" "Removes an existing breakpoint." "delete" "" } + {EnableBreakpoint 1 1 "query:breakpoints" Cfg 0 0 0 0 1 1 1 CheckFilled "enable_breakpoint" "Enable Breakpoint" "Enables a breakpoint." "" "" } + {DisableBreakpoint 1 1 "query:breakpoints" Cfg 0 0 0 0 1 1 1 CheckHollow "disable_breakpoint" "Disable Breakpoint" "Disables a breakpoint." "" "" } + {ClearBreakpoints 1 1 "" Null 0 0 0 0 0 0 0 Trash "clear_breakpoints" "Clear Breakpoints" "Removes all breakpoints." "" "" } //- rjf: output - {ClearOutput 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "clear_output" "Clear Output" "Clears all output." "" "" } + {ClearOutput 1 1 "" Null 0 0 0 0 0 0 0 Null "clear_output" "Clear Output" "Clears all output." "" "" } //- rjf: watch pins - {AddWatchPin 1 1 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 Pin "add_watch_pin" "Add Watch Pin" "Places a watch pin at a given location (file path and line number or address)." "" "$watch_pins," } - {ToggleWatchPin 1 0 0 0 "" Expr null Nil Null 0 0 0 0 1 1 1 Pin "toggle_watch_pin" "Toggle Watch Pin" "Places or removes a watch pin at a given location (file path and line number or address)." "" "" } + {AddWatchPin 1 1 "" Expr 0 0 0 0 1 1 1 Pin "add_watch_pin" "Add Watch Pin" "Places a watch pin at a given location (file path and line number or address)." "" "" } + {ToggleWatchPin 1 0 "" Expr 0 0 0 0 1 1 1 Pin "toggle_watch_pin" "Toggle Watch Pin" "Places or removes a watch pin at a given location (file path and line number or address)." "" "" } //- rjf: debug infos - {LoadDebugInfo 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Module "load_debug_info" "Load Debug Info" "Loads a debug info file." "" "$debug_infos," } - {UnloadDebugInfo 1 1 0 0 "query:debug_infos" Cfg null Nil Null 0 0 0 0 1 1 1 Module "unload_debug_info" "Unload Debug Info" "Unloads a debug info file." "" "$debug_infos," } + {LoadDebugInfo 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Module "load_debug_info" "Load Debug Info" "Loads a debug info file." "" "" } + {UnloadDebugInfo 1 1 "query:debug_infos" Cfg 0 0 0 0 1 1 1 Module "unload_debug_info" "Unload Debug Info" "Unloads a debug info file." "" "" } //- rjf: type views - {AddTypeView 0 0 0 0 "" String null Nil Null 0 0 0 0 0 0 0 Binoculars "add_type_view" "Add Type View" "Adds a new type view." "" "" } + {AddTypeView 0 0 "" String 0 0 0 0 0 0 0 Binoculars "add_type_view" "Add Type View" "Adds a new type view." "" "" } //- rjf: file path maps - {AddFilePathMap 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 FileOutline "add_file_path_map" "Add File Path Map" "Adds a new file path map." "" "" } + {AddFilePathMap 0 0 "" Null 0 0 0 0 0 0 0 FileOutline "add_file_path_map" "Add File Path Map" "Adds a new file path map." "" "" } //- rjf: themes - {EditUserTheme 0 0 0 0 "query:themes" String null Nil Null 0 0 0 0 0 0 0 Palette "edit_user_theme" "Edit User Theme" "Edits the current user's theme." "color" "" } - {EditProjectTheme 0 0 0 0 "query:themes" String null Nil Null 0 0 0 0 0 0 0 Palette "edit_project_theme" "Edit Project Theme" "Edits the current project's theme." "color" "" } - {AddThemeColor 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "add_theme_color" "Add Theme Color" "Adds a new theme color." "" "" } - {ForkTheme 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Palette "fork_theme" "Fork Theme" "Imports all colors from the current theme so they can be individually edited." "" "" } - {SaveTheme 0 0 0 0 "" String null Nil Null 1 0 0 0 0 1 1 Save "save_theme" "Save Theme" "Saves all theme colors to a new theme file." "" "" } - {SaveAndSetTheme 0 0 0 0 "" String null Nil Null 1 0 0 0 0 1 1 Save "save_and_set_theme" "Save And Set Theme" "Saves all theme colors to a new theme file, and then sets that theme as the selected theme." "" "" } + {EditUserTheme 0 0 "query:themes" String 0 0 0 0 0 0 0 Palette "edit_user_theme" "Edit User Theme" "Edits the current user's theme." "color" "" } + {EditProjectTheme 0 0 "query:themes" String 0 0 0 0 0 0 0 Palette "edit_project_theme" "Edit Project Theme" "Edits the current project's theme." "color" "" } + {AddThemeColor 0 0 "" Null 0 0 0 0 0 0 0 Palette "add_theme_color" "Add Theme Color" "Adds a new theme color." "" "" } + {ForkTheme 0 0 "" Null 0 0 0 0 0 0 0 Palette "fork_theme" "Fork Theme" "Imports all colors from the current theme so they can be individually edited." "" "" } + {SaveTheme 0 0 "" String 1 0 0 0 0 1 1 Save "save_theme" "Save Theme" "Saves all theme colors to a new theme file." "" "" } + {SaveAndSetTheme 0 0 "" String 1 0 0 0 0 1 1 Save "save_and_set_theme" "Save And Set Theme" "Saves all theme colors to a new theme file, and then sets that theme as the selected theme." "" "" } //- rjf: line operations - {SetNextStatement 1 1 1 0 "" Null null Nil Null 0 0 0 0 0 0 0 RightArrow "set_next_statement" "Set Next Statement" "Sets the selected thread's instruction pointer to the cursor's position." "" "$text_pt," } + {SetNextStatement 1 1 "" Null 0 0 0 0 0 0 0 RightArrow "set_next_statement" "Set Next Statement" "Sets the selected thread's instruction pointer to the cursor's position." "" "{text_pt_commands}{disasm_pt_commands}" } //- rjf: targets - {AddTarget 1 1 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 Target "add_target" "Add Target" "Adds a new target." "application,executable,debug" "$targets," } - {SelectTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Target "select_target" "Select Target" "Selects a target." "" "" } - {EnableTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 CheckFilled "enable_target" "Enable Target" "Enables a target, in addition to all targets currently enabled." "" "" } - {DisableTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 CheckHollow "disable_target" "Disable Target" "Disables a target." "" "" } - {RemoveTarget 1 1 0 0 "query:targets" Cfg null Target Null 0 0 0 0 0 1 1 Trash "remove_target" "Remove Target" "Removes a target." "delete" "" } + {AddTarget 1 1 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 Target "add_target" "Add Target" "Adds a new target." "application,executable,debug" "" } + {SelectTarget 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 Target "select_target" "Select Target" "Selects a target." "" "" } + {EnableTarget 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 CheckFilled "enable_target" "Enable Target" "Enables a target, in addition to all targets currently enabled." "" "" } + {DisableTarget 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 CheckHollow "disable_target" "Disable Target" "Disables a target." "" "" } + {RemoveTarget 1 1 "query:targets" Cfg 0 0 0 0 0 1 1 Trash "remove_target" "Remove Target" "Removes a target." "delete" "" } //- rjf: attaching - {RegisterAsJITDebugger 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "register_as_jit_debugger" "Register As Just-In-Time (JIT) Debugger" "Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system." "" "" } + {RegisterAsJITDebugger 1 1 "" Null 0 0 0 0 0 0 0 Null "register_as_jit_debugger" "Register As Just-In-Time (JIT) Debugger" "Registers the RAD debugger as the just-in-time (JIT) debugger used by the operating system." "" "" } //- rjf: snap-to-code-location - {FindCodeLocation 0 1 0 0 "" FilePath null Nil Null 0 0 0 0 0 1 1 FileOutline "find_code_location" "Find Code Location" "Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary." "" "" } + {FindCodeLocation 0 1 "" FilePath 0 0 0 0 0 1 1 FileOutline "find_code_location" "Find Code Location" "Finds a specific source code location given file, line, and column coordinates. Opens the file if necessary." "" "" } + + //- rjf: snap-to-memory-location + {GoToMemory 0 1 "" Expr 0 0 0 0 1 1 0 Grid "go_to_memory" "Go To Memory" "Finds the specified expression in the memory view. Opens the memory view if necessary." "" "{memory_eval_commands}" } + + //- rjf: break-when-value-changes + {BreakWhenValueChanges 0 1 "" Expr 0 0 0 0 1 1 0 CircleFilled "break_when_value_changes" "Break When Value Changes" "Adds a new write data breakpoint for this variable's range." "" "{memory_eval_commands}" } //- rjf: searching - {Search 1 1 0 0 "" String null Nil Null 0 0 1 1 1 0 1 Find "search" "Search" "Begins searching within the active interface." "sort,search,filter,find" "" } - {SearchBackwards 1 1 0 0 "" String null Nil Null 0 0 1 1 1 0 1 Find "search_backwards" "Search Backwards" "Begins searching backwards within the active interface." "sort,search,filter,find" "" } + {Search 1 1 "" String 0 0 1 1 1 0 1 Find "search" "Search" "Begins searching within the active interface." "sort,search,filter,find" "" } + {SearchBackwards 1 1 "" String 0 0 1 1 1 0 1 Find "search_backwards" "Search Backwards" "Begins searching backwards within the active interface." "sort,search,filter,find" "" } //- rjf: queries - {PickFile 0 0 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 0 0 0 0 1 1 FileOutline "pick_file" "Pick File" "Opens the file browser to pick a file." "" "" } - {PickFolder 0 0 0 0 `folder:\\"$input\\"` FilePath null Nil Null 0 1 0 0 0 1 1 FolderOpenFilled "pick_folder" "Pick Folder" "Opens the file browser to pick a folder." "" "" } - {PickFileOrFolder 0 0 0 0 `folder:\\"$input\\"` FilePath null Nil Null 1 1 0 0 0 1 1 FileOutline "pick_file_or_folder" "Pick File/Folder" "Opens the file browser to pick a file or folder." "" "" } + {PickFile 0 0 `folder:\\"$input\\"` FilePath 1 0 0 0 0 1 1 FileOutline "pick_file" "Pick File" "Opens the file browser to pick a file." "" "" } + {PickFolder 0 0 `folder:\\"$input\\"` FilePath 0 1 0 0 0 1 1 FolderOpenFilled "pick_folder" "Pick Folder" "Opens the file browser to pick a folder." "" "" } + {PickFileOrFolder 0 0 `folder:\\"$input\\"` FilePath 1 1 0 0 0 1 1 FileOutline "pick_file_or_folder" "Pick File/Folder" "Opens the file browser to pick a file or folder." "" "" } //- rjf: query stack - {PushQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "push_query" "Push Query" "Opens a new temporary query interface." "" "" } - {CompleteQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "complete_query" "Complete Query" "Completes and closes a query." "" "" } - {CancelQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "cancel_query" "Cancel Query" "Closes a query." "" "" } - {UpdateQuery 0 0 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "update_query" "Update Query" "Updates a query input." "" "" } + {PushQuery 0 0 "" Null 0 0 0 0 0 0 0 Null "push_query" "Push Query" "Opens a new temporary query interface." "" "" } + {CompleteQuery 0 0 "" Null 0 0 0 0 0 0 0 Null "complete_query" "Complete Query" "Completes and closes a query." "" "" } + {CancelQuery 0 0 "" Null 0 0 0 0 0 0 0 Null "cancel_query" "Cancel Query" "Closes a query." "" "" } + {UpdateQuery 0 0 "" Null 0 0 0 0 0 0 0 Null "update_query" "Update Query" "Updates a query input." "" "" } //- rjf: event buffers - {OpenEventBuffer 0 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "open_event_buffer" "Open Event Buffer" "Opens a new event buffer, to which debugger events will be written, for external processing." "" "" } - {CloseEventBuffer 0 1 0 0 "" Cfg null Nil Null 0 0 0 0 0 0 0 Null "close_event_buffer" "Close Event Buffer" "Closes an existing event buffer." "" "" } + {OpenEventBuffer 0 1 "" Null 0 0 0 0 0 0 0 Null "open_event_buffer" "Open Event Buffer" "Opens a new event buffer, to which debugger events will be written, for external processing." "" "" } + {CloseEventBuffer 0 1 "" Cfg 0 0 0 0 0 0 0 Null "close_event_buffer" "Close Event Buffer" "Closes an existing event buffer." "" "" } //- rjf: developer commands - {ToggleDevMenu 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "toggle_dev_menu" "Toggle Developer Menu" "Opens and closes the developer menu." "" "" } - {LogMarker 1 1 0 0 "" Null null Nil Null 0 0 0 0 0 0 0 Null "log_marker" "Log Marker" "Logs a marker in the application log, to denote specific points in time within the log." "" "" } + {ToggleDevMenu 1 1 "" Null 0 0 0 0 0 0 0 Null "toggle_dev_menu" "Toggle Developer Menu" "Opens and closes the developer menu." "" "" } + {LogMarker 1 1 "" Null 0 0 0 0 0 0 0 Null "log_marker" "Log Marker" "Logs a marker in the application log, to denote specific points in time within the log." "" "" } } @enum RD_CmdKind: @@ -1138,8 +1261,6 @@ RD_CmdTable: // | | | | `RD_QueryFlags flags`; `RD_RegSlot slot`; `String8 expr`; - `String8 view_name`; - `CTRL_EntityKind ctrl_entity_kind`; } @struct RD_CmdKindInfo: @@ -1147,7 +1268,7 @@ RD_CmdTable: // | | | | `String8 string`; `String8 description`; `String8 search_tags`; - `String8 ctx_filter`; + `String8 filter_tags`; `RD_CmdKindFlags flags`; `RD_Query query`; }; @@ -1156,13 +1277,13 @@ RD_CmdTable: // | | | | { `{0}`, @expand(D_CmdTable, a) - ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.ctx_filter)"), (RD_CmdKindFlag_ListInUI*$(a.ui_vis))|(RD_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis))|(RD_CmdKindFlag_ListInTextPt*$(a.text_pt_vis))|(RD_CmdKindFlag_ListInTextRng*$(a.text_rng_vis)), {(RD_QueryFlag_AllowFiles*$(a.q_allow_files))|(RD_QueryFlag_AllowFolders*$(a.q_allow_folders))|(RD_QueryFlag_CodeInput*$(a.q_is_code))|(RD_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(RD_QueryFlag_SelectOldInput*$(a.q_select_oi))|(RD_QueryFlag_Floating*$(a.q_floating))|(RD_QueryFlag_Required*$(a.q_required)), RD_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_expr)"), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), CTRL_EntityKind_$(a.q_ctrl_ent_kind)}}```; + ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.filter_tags)"), (RD_CmdKindFlag_ListInUI*$(a.ui_vis))|(RD_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(RD_QueryFlag_AllowFiles*$(a.q_allow_files))|(RD_QueryFlag_AllowFolders*$(a.q_allow_folders))|(RD_QueryFlag_CodeInput*$(a.q_is_code))|(RD_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(RD_QueryFlag_SelectOldInput*$(a.q_select_oi))|(RD_QueryFlag_Floating*$(a.q_floating))|(RD_QueryFlag_Required*$(a.q_required)), RD_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_expr)")}}```; @expand(RD_CmdTable, a) - ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.ctx_filter)"), (RD_CmdKindFlag_ListInUI*$(a.ui_vis))|(RD_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis))|(RD_CmdKindFlag_ListInTextPt*$(a.text_pt_vis))|(RD_CmdKindFlag_ListInTextRng*$(a.text_rng_vis)), {(RD_QueryFlag_AllowFiles*$(a.q_allow_files))|(RD_QueryFlag_AllowFolders*$(a.q_allow_folders))|(RD_QueryFlag_CodeInput*$(a.q_is_code))|(RD_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(RD_QueryFlag_SelectOldInput*$(a.q_select_oi))|(RD_QueryFlag_Floating*$(a.q_floating))|(RD_QueryFlag_Required*$(a.q_required)), RD_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_expr)"), str8_lit_comp("$(a.q_view != 'null' -> a.q_view)"), CTRL_EntityKind_$(a.q_ctrl_ent_kind)}}```; + ```{ str8_lit_comp("$(a.string)"), str8_lit_comp("$(a.desc)"), str8_lit_comp("$(a.search_tags)"), str8_lit_comp("$(a.filter_tags)"), (RD_CmdKindFlag_ListInUI*$(a.ui_vis))|(RD_CmdKindFlag_ListInIPCDocs*$(a.ipc_docs_vis)), {(RD_QueryFlag_AllowFiles*$(a.q_allow_files))|(RD_QueryFlag_AllowFolders*$(a.q_allow_folders))|(RD_QueryFlag_CodeInput*$(a.q_is_code))|(RD_QueryFlag_KeepOldInput*$(a.q_keep_oi))|(RD_QueryFlag_SelectOldInput*$(a.q_select_oi))|(RD_QueryFlag_Floating*$(a.q_floating))|(RD_QueryFlag_Required*$(a.q_required)), RD_RegSlot_$(a.q_slot), str8_lit_comp("$(a.q_expr)")}}```; @expand(RD_WatchTabFastPathTable, a) - ```{ str8_lit_comp("$(a.name_lower)"), str8_lit_comp("Opens a $(a.display_name) tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}```; + ```{ str8_lit_comp("$(a.name_lower)"), str8_lit_comp("Opens a $(a.display_name) tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}```; @expand(RD_ViewTabFastPathTable, a) - ```{ str8_lit_comp("$(a.name_lower)"), str8_lit_comp("Opens a $(a.display_name) tab."), {0}, {0}, RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs|RD_CmdKindFlag_ListInTab}```; + ```{ str8_lit_comp("$(a.name_lower)"), str8_lit_comp("Opens a $(a.display_name) tab."), {0}, str8_lit_comp("{tab_commands}"), RD_CmdKindFlag_ListInUI|RD_CmdKindFlag_ListInIPCDocs}```; } //////////////////////////////// @@ -1172,173 +1293,173 @@ RD_CmdTable: // | | | | RD_DefaultBindingTable: { //- rjf: low-level target control operations - { "kill_all" F5 0 shift 0 } - { "step_into_inst" F11 0 0 alt } - { "step_over_inst" F10 0 0 alt } - { "step_out" F11 0 shift 0 } - { "halt" X ctrl shift 0 } - { "halt" Pause 0 0 0 } + { "kill_all" F5 0 shift 0 } + { "step_into_inst" F11 0 0 alt } + { "step_over_inst" F10 0 0 alt } + { "step_out" F11 0 shift 0 } + { "halt" X ctrl shift 0 } + { "halt" Pause 0 0 0 } //- rjf: high-level composite target control operations - { "run" F5 0 0 0 } - { "restart" F5 ctrl shift 0 } - { "step_into" F11 0 0 0 } - { "step_over" F10 0 0 0 } - { "run_to_line" F10 ctrl 0 0 } - { "set_next_statement" F10 ctrl shift 0 } + { "run" F5 0 0 0 } + { "restart" F5 ctrl shift 0 } + { "step_into" F11 0 0 0 } + { "step_over" F10 0 0 0 } + { "run_to_line" F10 ctrl 0 0 } + { "set_next_statement" F10 ctrl shift 0 } //- rjf: font sizes - { "inc_window_font_size" Equal 0 0 alt } - { "dec_window_font_size" Minus 0 0 alt } + { "inc_window_font_size" Equal 0 0 alt } + { "dec_window_font_size" Minus 0 0 alt } //- rjf: windows - { "window" N ctrl shift 0 } - { "toggle_fullscreen" Return ctrl 0 0 } + { "toggle_fullscreen" Return ctrl 0 0 } //- rjf: panel splitting - { "new_panel_right" P ctrl 0 0 } - { "new_panel_down" Minus ctrl 0 0 } + { "new_panel_right" P ctrl 0 0 } + { "new_panel_down" Minus ctrl 0 0 } //- rjf: panel rotation - { "rotate_panel_columns" 2 ctrl 0 0 } + { "rotate_panel_columns" 2 ctrl 0 0 } //- rjf: focused panel changing - { "next_panel" Comma ctrl 0 0 } - { "prev_panel" Comma ctrl shift 0 } - { "focus_panel_right" Right ctrl 0 alt } - { "focus_panel_left" Left ctrl 0 alt } - { "focus_panel_up" Up ctrl 0 alt } - { "focus_panel_down" Down ctrl 0 alt } + { "next_panel" Comma ctrl 0 0 } + { "prev_panel" Comma ctrl shift 0 } + { "focus_panel_right" Right ctrl 0 alt } + { "focus_panel_left" Left ctrl 0 alt } + { "focus_panel_up" Up ctrl 0 alt } + { "focus_panel_down" Down ctrl 0 alt } //- rjf: undo/redo - { "undo" Z ctrl 0 0 } - { "redo" Y ctrl 0 0 } + { "undo" Z ctrl 0 0 } + { "redo" Y ctrl 0 0 } //- rjf: focus history - { "go_back" Left 0 0 alt } - { "go_forward" Right 0 0 alt } + { "go_back" Left 0 0 alt } + { "go_forward" Right 0 0 alt } //- rjf: panel removal - { "close_panel" P ctrl shift alt } + { "close_panel" P ctrl shift alt } //- rjf: panel tab - { "next_tab" PageDown ctrl 0 0 } - { "prev_tab" PageUp ctrl 0 0 } - { "next_tab" Tab ctrl 0 0 } - { "prev_tab" Tab ctrl shift 0 } - { "move_tab_right" PageDown ctrl shift 0 } - { "move_tab_left" PageUp ctrl shift 0 } - { "close_tab" W ctrl 0 0 } - { "tab_bar_top" Up ctrl shift alt } - { "tab_bar_bottom" Down ctrl shift alt } - { "open_tab" T ctrl 0 0 } + { "next_tab" PageDown ctrl 0 0 } + { "prev_tab" PageUp ctrl 0 0 } + { "next_tab" Tab ctrl 0 0 } + { "prev_tab" Tab ctrl shift 0 } + { "move_tab_right" PageDown ctrl shift 0 } + { "move_tab_left" PageUp ctrl shift 0 } + { "close_tab" W ctrl 0 0 } + { "tab_bar_top" Up ctrl shift alt } + { "tab_bar_bottom" Down ctrl shift alt } + { "open_tab" T ctrl 0 0 } + { "tab_settings" T ctrl 0 alt } //- rjf: files - { "open" O ctrl 0 0 } - { "switch" I ctrl 0 0 } - { "switch_to_partner_file" O 0 0 alt } + { "open" O ctrl 0 0 } + { "open_source_file_from_debug_info" I ctrl 0 0 } + { "switch_to_partner_file" O 0 0 alt } //- rjf: setting config paths - { "open_user" N ctrl shift alt } - { "open_project" N ctrl 0 alt } - { "open_user" O ctrl shift alt } - { "open_project" O ctrl 0 alt } - { "save_user" S ctrl shift alt } - { "save_project" S ctrl shift 0 } + { "new_project" N ctrl shift 0 } + { "open_project" O ctrl shift 0 } + { "save_project" S ctrl shift 0 } //- rjf: meta controls - { "edit" F2 0 0 0 } - { "accept" Return 0 0 0 } - { "accept" Space 0 0 0 } - { "cancel" Esc 0 0 0 } + { "edit" F2 0 0 0 } + { "accept" Return 0 0 0 } + { "accept" Space 0 0 0 } + { "cancel" Esc 0 0 0 } + { "focus_menu" D 0 0 alt } //- rjf: directional movement & text controls - { "move_left" Left 0 0 0 } - { "move_right" Right 0 0 0 } - { "move_up" Up 0 0 0 } - { "move_down" Down 0 0 0 } - { "move_left_select" Left 0 shift 0 } - { "move_right_select" Right 0 shift 0 } - { "move_up_select" Up 0 shift 0 } - { "move_down_select" Down 0 shift 0 } - { "move_left_chunk" Left ctrl 0 0 } - { "move_right_chunk" Right ctrl 0 0 } - { "move_up_chunk" Up ctrl 0 0 } - { "move_down_chunk" Down ctrl 0 0 } - { "move_up_page" PageUp 0 0 0 } - { "move_down_page" PageDown 0 0 0 } - { "move_up_whole" Home ctrl 0 0 } - { "move_down_whole" End ctrl 0 0 } - { "move_left_chunk_select" Left ctrl shift 0 } - { "move_right_chunk_select" Right ctrl shift 0 } - { "move_up_chunk_select" Up ctrl shift 0 } - { "move_down_chunk_select" Down ctrl shift 0 } - { "move_up_page_select" PageUp 0 shift 0 } - { "move_down_page_select" PageDown 0 shift 0 } - { "move_up_whole_select" Home ctrl shift 0 } - { "move_down_whole_select" End ctrl shift 0 } - { "move_up_reorder" Up 0 0 alt } - { "move_down_reorder" Down 0 0 alt } - { "move_home" Home 0 0 0 } - { "move_end" End 0 0 0 } - { "move_home_select" Home 0 shift 0 } - { "move_end_select" End 0 shift 0 } - { "select_all" A ctrl 0 0 } - { "delete_single" Delete 0 0 0 } - { "delete_chunk" Delete ctrl 0 0 } - { "backspace_single" Backspace 0 0 0 } - { "backspace_chunk" Backspace ctrl 0 0 } - { "copy" C ctrl 0 0 } - { "copy" Insert ctrl 0 0 } - { "cut" X ctrl 0 0 } - { "paste" V ctrl 0 0 } - { "paste" Insert 0 shift 0 } - { "insert_text" Null 0 0 0 } + { "move_left" Left 0 0 0 } + { "move_right" Right 0 0 0 } + { "move_up" Up 0 0 0 } + { "move_down" Down 0 0 0 } + { "move_left_select" Left 0 shift 0 } + { "move_right_select" Right 0 shift 0 } + { "move_up_select" Up 0 shift 0 } + { "move_down_select" Down 0 shift 0 } + { "move_left_chunk" Left ctrl 0 0 } + { "move_right_chunk" Right ctrl 0 0 } + { "move_up_chunk" Up ctrl 0 0 } + { "move_down_chunk" Down ctrl 0 0 } + { "move_up_page" PageUp 0 0 0 } + { "move_down_page" PageDown 0 0 0 } + { "move_up_whole" Home ctrl 0 0 } + { "move_down_whole" End ctrl 0 0 } + { "move_left_chunk_select" Left ctrl shift 0 } + { "move_right_chunk_select" Right ctrl shift 0 } + { "move_up_chunk_select" Up ctrl shift 0 } + { "move_down_chunk_select" Down ctrl shift 0 } + { "move_up_page_select" PageUp 0 shift 0 } + { "move_down_page_select" PageDown 0 shift 0 } + { "move_up_whole_select" Home ctrl shift 0 } + { "move_down_whole_select" End ctrl shift 0 } + { "move_up_reorder" Up 0 0 alt } + { "move_down_reorder" Down 0 0 alt } + { "move_home" Home 0 0 0 } + { "move_end" End 0 0 0 } + { "move_home_select" Home 0 shift 0 } + { "move_end_select" End 0 shift 0 } + { "select_all" A ctrl 0 0 } + { "delete_single" Delete 0 0 0 } + { "delete_chunk" Delete ctrl 0 0 } + { "backspace_single" Backspace 0 0 0 } + { "backspace_chunk" Backspace ctrl 0 0 } + { "copy" C ctrl 0 0 } + { "copy" Insert ctrl 0 0 } + { "cut" X ctrl 0 0 } + { "paste" V ctrl 0 0 } + { "paste" Insert 0 shift 0 } + { "insert_text" Null 0 0 0 } //- rjf: secondary navigation - { "move_next" Tab 0 0 0 } - { "move_prev" Tab 0 shift 0 } + { "move_next" Tab 0 0 0 } + { "move_prev" Tab 0 shift 0 } //- rjf: code navigation - { "goto_line" G ctrl 0 0 } - { "goto_address" G 0 0 alt } - { "search" F ctrl 0 0 } - { "search_backwards" R ctrl 0 0 } - { "find_next" F3 0 0 0 } - { "find_prev" F3 shift 0 0 } + { "goto_line" G ctrl 0 0 } + { "goto_address" G 0 0 alt } + { "search" F ctrl 0 0 } + { "search" Slash 0 0 0 } + { "search_backwards" R ctrl 0 0 } + { "search_backwards" Slash ctrl 0 0 } + { "find_next" F3 0 0 0 } + { "find_prev" F3 shift 0 0 } //- rjf: thread finding - { "find_selected_thread" F4 0 0 0 } + { "find_selected_thread" F4 0 0 0 } //- rjf: name finding - { "goto_name" J ctrl 0 0 } - { "goto_name_at_cursor" F12 0 0 0 } + { "goto_name" J ctrl 0 0 } + { "goto_name_at_cursor" F12 0 0 0 } //- rjf: watch expressions - { "toggle_watch_expr_at_cursor" W 0 0 alt } - { "toggle_watch_expr_at_mouse" D ctrl 0 0 } - { "toggle_watch_pin" F9 ctrl 0 0 } + { "toggle_watch_expr_at_cursor" W 0 0 alt } + { "toggle_watch_expr_at_mouse" D ctrl 0 0 } + { "toggle_watch_pin" F9 ctrl 0 0 } //- rjf: breakpoints - { "toggle_breakpoint" F9 0 0 0 } - { "add_address_breakpoint" F9 0 shift 0 } - { "add_function_breakpoint" F9 ctrl shift 0 } + { "toggle_breakpoint" F9 0 0 0 } + { "add_address_breakpoint" F9 0 shift 0 } + { "add_function_breakpoint" F9 ctrl shift 0 } //- rjf: attaching - { "attach" F6 0 shift 0 } + { "attach" F6 0 shift 0 } //- rjf: command lister - { "open_palette" F1 0 0 0 } - { "open_palette" P ctrl shift 0 } + { "open_palette" F1 0 0 0 } + { "open_palette" P ctrl shift 0 } //- rjf: developer commands - { "log_marker" M ctrl shift alt } - { "toggle_dev_menu" D ctrl shift alt } + { "log_marker" M ctrl shift alt } + { "toggle_dev_menu" D ctrl shift alt } } @data(`struct {String8 string; CFG_Binding binding;}`) @c_file rd_default_binding_table: { - @expand(RD_DefaultBindingTable a) ```{str8_lit_comp("$(a.name)"), {OS_Key_$(a.key), 0 $(a.ctrl != 0 -> `|OS_Modifier_Ctrl`) $(a.shift != 0 -> `|OS_Modifier_Shift`) $(a.alt != 0 -> `|OS_Modifier_Alt`)}}```; + @expand(RD_DefaultBindingTable a) ```{str8_lit_comp("$(a.name)"), {WM_Key_$(a.key), 0 $(a.ctrl != 0 -> `|WM_Modifier_Ctrl`) $(a.shift != 0 -> `|WM_Modifier_Shift`) $(a.alt != 0 -> `|WM_Modifier_Alt`)}}```; } //////////////////////////////// @@ -1355,6 +1476,7 @@ RD_BindingVersionRemapTable: {"address_breakpoint" "add_address_breakpoint"} {"function_breakpoint" "add_function_breakpoint"} {"toggle_breakpoint_cursor" "toggle_breakpoint"} + {"switch" "open_source_file_from_debug_info"} } @data(String8) rd_binding_version_remap_old_name_table: @@ -1472,85 +1594,75 @@ RD_ThemePresetTable: DefaultDark default_dark "Default (Dark)", ```theme: { - theme_color: {tags:"background", value: 0x1b1b1bff } - theme_color: {tags:"alt background", value: 0x222222ff } - theme_color: {tags:"pop background", value: 0x355b6eff } - theme_color: {tags:"fresh background", value: 0x31393dff } - theme_color: {tags:"match background", value: 0x31393dff } - theme_color: {tags:"border", value: 0x404040ff } - theme_color: {tags:"text", value: 0xe5e5e5ff } - theme_color: {tags:"weak text", value: 0xa4a4a4ff } - theme_color: {tags:"good text", value: 0x32a852ff } - theme_color: {tags:"neutral text", value: 0x3a90bbff } - theme_color: {tags:"bad text", value: 0xcf5242ff } - theme_color: {tags:"hover", value: 0xffffffff } - theme_color: {tags:"focus overlay", value: 0xfda20012 } - theme_color: {tags:"focus border", value: 0xfda200ff } - theme_color: {tags:"cursor", value: 0x8aff00ff } - theme_color: {tags:"selection", value: 0x99ccff0f } - theme_color: {tags:"inactive background", value: 0x0000002f } - theme_color: {tags:"drop_shadow", value: 0x0000007f } - theme_color: {tags:"good_pop background", value: 0x2c5b36ff } - theme_color: {tags:"good_pop border", value: 0x568761ff } - theme_color: {tags:"good_pop hover", value: 0xe3f5d3ff } - theme_color: {tags:"good_pop weak text", value: 0xe3f5d3ff } - theme_color: {tags:"bad_pop background", value: 0x803425ff } - theme_color: {tags:"bad_pop hover", value: 0xff825cff } - theme_color: {tags:"code_default", value: 0xcbcbcbff } - theme_color: {tags:"code_symbol", value: 0x42a2cfff } - theme_color: {tags:"code_type", value: 0xfec746ff } - theme_color: {tags:"code_local", value: 0x98bc80ff } - theme_color: {tags:"code_register", value: 0xb7afd5ff } - theme_color: {tags:"code_keyword", value: 0xb38d4cff } - theme_color: {tags:"code_delimiter_or_operator", value: 0x767676ff } - theme_color: {tags:"code_numeric", value: 0x98abb1ff } - theme_color: {tags:"code_numeric_alt_digit_group", value: 0x738287ff } - theme_color: {tags:"code_string", value: 0x98abb1ff } - theme_color: {tags:"code_meta", value: 0xd96759ff } - theme_color: {tags:"code_comment", value: 0x717171ff } - theme_color: {tags:"line_info_0", value: 0x4f3022ff } - theme_color: {tags:"line_info_1", value: 0x4f3e15ff } - theme_color: {tags:"line_info_2", value: 0x434e2aff } - theme_color: {tags:"line_info_3", value: 0x36241fff } - theme_color: {tags:"line_info_4", value: 0x4f3022ff } - theme_color: {tags:"line_info_5", value: 0x4f3e15ff } - theme_color: {tags:"line_info_6", value: 0x434e2aff } - theme_color: {tags:"line_info_7", value: 0x36241fff } - theme_color: {tags:"thread_0", value: 0xffcb7fff } - theme_color: {tags:"thread_1", value: 0xb2ff65ff } - theme_color: {tags:"thread_2", value: 0xff99e5ff } - theme_color: {tags:"thread_3", value: 0x6598ffff } - theme_color: {tags:"thread_4", value: 0x65ffcbff } - theme_color: {tags:"thread_5", value: 0xff9819ff } - theme_color: {tags:"thread_6", value: 0x9932ffff } - theme_color: {tags:"thread_7", value: 0x65ff4cff } - theme_color: {tags:"thread_unwound", value: 0xb2ccd8ff } - theme_color: {tags:"thread_error", value: 0xb23219ff } - theme_color: {tags:"breakpoint", value: 0xa72911ff } - theme_color: {tags:"floating background", value: 0x1b1b1baf } - theme_color: {tags:"floating background alt", value: 0x0000005f } - theme_color: {tags:"floating background fresh", value: 0x31393d5f } - theme_color: {tags:"floating border", value: 0xbfbfbf1f } - theme_color: {tags:"floating scroll_bar background", value: 0x3b3b3b5f } - theme_color: {tags:"floating scroll_bar border", value: 0x5f5f5f5f } - theme_color: {tags:"menu_bar background", value: 0x2b3740ff } - theme_color: {tags:"menu_bar border", value: 0x3e4c57ff } - theme_color: {tags:"scroll_bar background", value: 0x2b2b2bff } - theme_color: {tags:"scroll_bar border", value: 0x3f3f3fff } - theme_color: {tags:"implicit background", value: 0x00000000 } - theme_color: {tags:"implicit border", value: 0x00000000 } - theme_color: {tags:"hollow background", value: 0x00000000 } - theme_color: {tags:"hollow border", value: 0xffffff1f } - theme_color: {tags:"tab background", value: 0x6f5135ff } - theme_color: {tags:"tab border", value: 0x8a6e54ff } - theme_color: {tags:"tab inactive background", value: 0x2b3740ff } - theme_color: {tags:"tab inactive border", value: 0x3e4c57ff } - theme_color: {tags:"tab auto background", value: 0x693847ff } - theme_color: {tags:"tab auto border", value: 0x9e6274ff } - theme_color: {tags:"tab auto inactive background", value: 0x2f2633ff } - theme_color: {tags:"tab auto inactive border", value: 0x685073ff } - theme_color: {tags:"drop_site background", value: 0xffffff05 } - theme_color: {tags:"drop_site border", value: 0xffffff0f } + theme_color:{tags: background, value: 0x1f1f1fff} + theme_color:{tags: "alt background", value: 0x222222ff} + theme_color:{tags: "pop background", value: 0x675331ff} + theme_color:{tags: "fresh background", value: 0x3d3631ff} + theme_color:{tags: "match background", value: 0x31393dff} + theme_color:{tags: border, value: 0x404040ff} + theme_color:{tags: text, value: 0xe5e5e5ff} + theme_color:{tags: "weak text", value: 0xa4a4a4ff} + theme_color:{tags: "good text", value: 0x32a852ff} + theme_color:{tags: "neutral text", value: 0x3a90bbff} + theme_color:{tags: "bad text", value: 0xcf5242ff} + theme_color:{tags: hover, value: 0xabdeffff} + theme_color:{tags: "focus overlay", value: 0x2292eb14} + theme_color:{tags: "focus border", value: 0x2392ebff} + theme_color:{tags: cursor, value: 0x8aff00ff} + theme_color:{tags: selection, value: 0x99ccff0f} + theme_color:{tags: "inactive background", value: 0x16} + theme_color:{tags: drop_shadow, value: 0x0000007f} + theme_color:{tags: "good_pop background", value: 0x2c5b36ff} + theme_color:{tags: "good_pop border", value: 0x568761ff} + theme_color:{tags: "good_pop hover", value: 0xe3f5d3ff} + theme_color:{tags: "good_pop weak text", value: 0xe3f5d3ff} + theme_color:{tags: "bad_pop background", value: 0x803425ff} + theme_color:{tags: "bad_pop hover", value: 0xff825cff} + theme_color:{tags: code_default, value: 0xecececff} + theme_color:{tags: code_symbol, value: 0xceaf64ff} + theme_color:{tags: code_type, value: 0xceaf64ff} + theme_color:{tags: code_local, value: 0xa7dae8ff} + theme_color:{tags: code_register, value: 0xb7afd5ff} + theme_color:{tags: code_keyword, value: 0x838b8fff} + theme_color:{tags: code_delimiter_or_operator, value: 0x838b8fff} + theme_color:{tags: code_numeric, value: 0x9cb198ff} + theme_color:{tags: code_numeric_alt_digit_group, value: 0x6d8e67ff} + theme_color:{tags: code_string, value: 0x9cb198ff} + theme_color:{tags: code_meta, value: 0xb9819aff} + theme_color:{tags: code_comment, value: 0x627b5eff} + theme_color:{tags: line_info_0, value: 0x3c2d25ff} + theme_color:{tags: line_info_1, value: 0x3c3925ff} + theme_color:{tags: line_info_2, value: 0x2e4837ff} + theme_color:{tags: line_info_3, value: 0x2e3d48ff} + theme_color:{tags: line_info_4, value: 0x3c2d25ff} + theme_color:{tags: line_info_5, value: 0x3c3925ff} + theme_color:{tags: line_info_6, value: 0x2e4837ff} + theme_color:{tags: line_info_7, value: 0x2e3d48ff} + theme_color:{tags: thread_0, value: 0xebb624ff} + theme_color:{tags: thread_1, value: 0x26d0d2ff} + theme_color:{tags: thread_unwound, value: 0xb2ccd8ff} + theme_color:{tags: thread_error, value: 0xb23219ff} + theme_color:{tags: breakpoint, value: 0xa72911ff} + theme_color:{tags: "floating background", value: 0x1b1b1baf} + theme_color:{tags: "floating background alt", value: 0x0000005f} + theme_color:{tags: "floating background fresh", value: 0x31393d5f} + theme_color:{tags: "floating border", value: 0xbfbfbf1f} + theme_color:{tags: "floating scroll_bar background", value: 0x3b3b3b5f} + theme_color:{tags: "floating scroll_bar border", value: 0x5f5f5f5f} + theme_color:{tags: "scroll_bar background", value: 0x2b2b2bff} + theme_color:{tags: "scroll_bar border", value: 0x3f3f3fff} + theme_color:{tags: "implicit background", value: 0x00000000} + theme_color:{tags: "implicit border", value: 0x00000000} + theme_color:{tags: "hollow background", value: 0x00000000} + theme_color:{tags: "hollow border", value: 0xffffff1f} + theme_color:{tags: "tab background", value: 0x333333ff} + theme_color:{tags: "tab border", value: 0x2392ebff} + theme_color:{tags: "tab inactive background", value: 0} + theme_color:{tags: "tab inactive border", value: 0x42494eff} + theme_color:{tags: "tab auto background", value: 0x3e4d6eff} + theme_color:{tags: "tab auto inactive background", value: 0x3e4d6e39} + theme_color:{tags: "drop_site background", value: 0xffffff05} + theme_color:{tags: "drop_site border", value: 0xffffff0f} } ``` } @@ -1559,95 +1671,76 @@ RD_ThemePresetTable: { DefaultLight default_light "Default (Light)", ```theme: { - theme_color:{ tags: background , value: 0xffffffff } - theme_color:{ tags: "alt background" , value: 0xf8f8f8ff } - theme_color:{ tags: "pop background" , value: 0xcbe4f2ff } - theme_color:{ tags: "menu_bar pop background" , value: 0x5aabd9ff } - theme_color:{ tags: "fresh background" , value: 0xeaddceff } - theme_color:{ tags: "match background" , value: 0xc1e9c4ff } - theme_color:{ tags: border , value: 0xcbcbcbff } - theme_color:{ tags: text , value: 0xff } - theme_color:{ tags: "weak text" , value: 0x727272ff } - theme_color:{ tags: "good text" , value: 0x217538ff } - theme_color:{ tags: "neutral text" , value: 0x1a5b7cff } - theme_color:{ tags: "bad text" , value: 0x972717ff } - theme_color:{ tags: hover , value: 0xff } - theme_color:{ tags: "focus overlay" , value: 0x67ff4b } - theme_color:{ tags: "focus border" , value: 0x67ffff } - theme_color:{ tags: cursor , value: 0xff } - theme_color:{ tags: selection , value: 0x283d5166 } - theme_color:{ tags: "inactive background" , value: 0x8 } - theme_color:{ tags: drop_shadow , value: 0xb } - theme_color:{ tags: "good_pop background" , value: 0x90c09aff } - theme_color:{ tags: "good_pop border" , value: 0x1e7231ff } - theme_color:{ tags: "good_pop hover" , value: 0xe3f5d3ff } - theme_color:{ tags: "good_pop weak text" , value: 0xe3f5d3ff } - theme_color:{ tags: "good_pop text" , value: 0xe3f5d3ff } - theme_color:{ tags: "bad_pop background" , value: 0xa93620ff } - theme_color:{ tags: "bad_pop text" , value: 0xffffffff } - theme_color:{ tags: "bad_pop text weak" , value: 0xffffffff } - theme_color:{ tags: "menu_bar bad_pop background" , value: 0xff2a00ff } - theme_color:{ tags: "menu_bar bad_pop text" , value: 0xffffffff } - theme_color:{ tags: "bad_pop hover" , value: 0xff825cff } - theme_color:{ tags: code_default , value: 0x80808ff } - theme_color:{ tags: code_symbol , value: 0x4ac3ff } - theme_color:{ tags: code_type , value: 0xf46200ff } - theme_color:{ tags: code_local , value: 0x317c00ff } - theme_color:{ tags: code_register , value: 0x9a00ffff } - theme_color:{ tags: code_keyword , value: 0xff0600ff } - theme_color:{ tags: code_delimiter_or_operator , value: 0x8a8a8aff } - theme_color:{ tags: code_numeric , value: 0x7d49ff } - theme_color:{ tags: code_numeric_alt_digit_group , value: 0xb56aff } - theme_color:{ tags: code_string , value: 0x63549fff } - theme_color:{ tags: code_meta , value: 0xd96759ff } - theme_color:{ tags: code_comment , value: 0x717171ff } - theme_color:{ tags: line_info_0 , value: 0xe6d5cdff } - theme_color:{ tags: line_info_1 , value: 0xdbcfb2ff } - theme_color:{ tags: line_info_2 , value: 0xddeac1ff } - theme_color:{ tags: line_info_3 , value: 0xddc4bdff } - theme_color:{ tags: line_info_4 , value: 0xba917eff } - theme_color:{ tags: thread_0 , value: 0xffa700ff } - theme_color:{ tags: thread_1 , value: 0xb41fff } - theme_color:{ tags: thread_2 , value: 0xff99e5ff } - theme_color:{ tags: thread_3 , value: 0x6598ffff } - theme_color:{ tags: thread_4 , value: 0x65ffcbff } - theme_color:{ tags: thread_5 , value: 0xff9819ff } - theme_color:{ tags: thread_6 , value: 0x9932ffff } - theme_color:{ tags: thread_7 , value: 0x65ff4cff } - theme_color:{ tags: thread_unwound , value: 0xb2ccd8ff } - theme_color:{ tags: thread_error , value: 0xb23219ff } - theme_color:{ tags: breakpoint , value: 0xff2800ff } - theme_color:{ tags: "floating background" , value: 0xffffffc7 } - theme_color:{ tags: "floating background alt" , value: 0x23 } - theme_color:{ tags: "floating background fresh" , value: 0xeaddceff } - theme_color:{ tags: "floating border" , value: 0x88888884 } - theme_color:{ tags: "scroll_bar background" , value: 0xe9e9e9ff } - theme_color:{ tags: "scroll_bar border" , value: 0x5f5f5f5f } - theme_color:{ tags: "floating scroll_bar background" , value: 0xe9e9e9ff } - theme_color:{ tags: "floating scroll_bar border" , value: 0x5f5f5f5f } - theme_color:{ tags: "menu_bar background" , value: 0x2b6b9aff } - theme_color:{ tags: "menu_bar border" , value: 0x4d } - theme_color:{ tags: "menu_bar text" , value: 0xffffffff } - theme_color:{ tags: "menu_bar text weak" , value: 0xffffffff } - theme_color:{ tags: "good menu_bar text" , value: 0x70db8dff } - theme_color:{ tags: "bad menu_bar text" , value: 0xffa79bff } - theme_color:{ tags: "neutral menu_bar text" , value: 0xc4dbe7ff } - theme_color:{ tags: "implicit background" , value: 0x00000000 } - theme_color:{ tags: "implicit border" , value: 0x00000000 } - theme_color:{ tags: "hollow background" , value: 0x00000000 } - theme_color:{ tags: "hollow border" , value: 0xffffff1f } - theme_color:{ tags: "tab text" , value: 0xffffffff } - theme_color:{ tags: "tab text weak" , value: 0xffffffff } - theme_color:{ tags: "tab background" , value: 0xb67e48ff } - theme_color:{ tags: "tab border" , value: 0x875b31ff } - theme_color:{ tags: "tab inactive background" , value: 0xcacacaff } - theme_color:{ tags: "tab inactive border" , value: 0xb5b5b5ff } - theme_color:{ tags: "tab auto background" , value: 0xc41c69ff } - theme_color:{ tags: "tab auto border" , value: 0x981039ff } - theme_color:{ tags: "tab auto inactive background" , value: 0x9b88a3ff } - theme_color:{ tags: "tab auto inactive border" , value: 0x373737ff } - theme_color:{ tags: "drop_site background" , value: 0xffffff05 } - theme_color:{ tags: "drop_site border" , value: 0xffffff0f } + theme_color:{tags: background , value: 0xf4f4f4ff} + theme_color:{tags: "alt background" , value: 0xe7e7e7ff} + theme_color:{tags: "pop background" , value: 0xe7b96bff} + theme_color:{tags: "fresh background" , value: 0xe7d7d0ff} + theme_color:{tags: "match background" , value: 0xcbd8deff} + theme_color:{tags: border , value: 0xb9b9b9ff} + theme_color:{tags: text , value: 0xff} + theme_color:{tags: "weak text" , value: 0x4d4d4dff} + theme_color:{tags: "good text" , value: 0x32a852ff} + theme_color:{tags: "neutral text" , value: 0x3a90bbff} + theme_color:{tags: "bad text" , value: 0xcf5242ff} + theme_color:{tags: hover , value: 0xff} + theme_color:{tags: "focus overlay" , value: 0x2192eb49} + theme_color:{tags: "focus border" , value: 0x2392ebff} + theme_color:{tags: cursor , value: 0xff} + theme_color:{tags: selection , value: 0x2170be51} + theme_color:{tags: "inactive background" , value: 0xb} + theme_color:{tags: drop_shadow , value: 0x183d8a53} + theme_color:{tags: "good_pop background" , value: 0x5c9368ff} + theme_color:{tags: "good_pop border" , value: 0x6616ff} + theme_color:{tags: "good_pop hover" , value: 0xe3f5d3ff} + theme_color:{tags: "good_pop weak text" , value: 0xe3f5d3ff} + theme_color:{tags: "bad_pop background" , value: 0xbd5946ff} + theme_color:{tags: "bad_pop hover" , value: 0xff825cff} + theme_color:{tags: code_default , value: 0xff} + theme_color:{tags: code_symbol , value: 0x976b00ff} + theme_color:{tags: code_type , value: 0x976b00ff} + theme_color:{tags: code_local , value: 0x7fa2ff} + theme_color:{tags: code_register , value: 0x6a50caff} + theme_color:{tags: code_keyword , value: 0x1f4253ff} + theme_color:{tags: code_delimiter_or_operator , value: 0x424b4fff} + theme_color:{tags: code_numeric , value: 0xb4500ff} + theme_color:{tags: code_numeric_alt_digit_group , value: 0x3c852fff} + theme_color:{tags: code_string , value: 0xb4500ff} + theme_color:{tags: code_meta , value: 0xe3609aff} + theme_color:{tags: code_comment , value: 0x648e5dff} + theme_color:{tags: line_info_0 , value: 0xcdb3a5ff} + theme_color:{tags: line_info_1 , value: 0xcac5a4ff} + theme_color:{tags: line_info_2 , value: 0xafcebaff} + theme_color:{tags: line_info_3 , value: 0xacc5d7ff} + theme_color:{tags: line_info_4 , value: 0x3c2d25ff} + theme_color:{tags: line_info_5 , value: 0x3c3925ff} + theme_color:{tags: line_info_6 , value: 0x2e4837ff} + theme_color:{tags: line_info_7 , value: 0x2e3d48ff} + theme_color:{tags: thread_0 , value: 0xde8e2aff} + theme_color:{tags: thread_1 , value: 0x7affff} + theme_color:{tags: thread_unwound , value: 0xb2ccd8ff} + theme_color:{tags: thread_error , value: 0xb23219ff} + theme_color:{tags: breakpoint , value: 0xa72911ff} + theme_color:{tags: "floating background" , value: 0xffffffff} + theme_color:{tags: "floating background alt" , value: 0xefefefff} + theme_color:{tags: "floating background fresh" , value: 0x31393d5f} + theme_color:{tags: "floating border" , value: 0xaeaeaeff} + theme_color:{tags: "floating scroll_bar background" , value: 0x3b3b3b5f} + theme_color:{tags: "floating scroll_bar border" , value: 0x5f5f5f5f} + theme_color:{tags: "scroll_bar background" , value: 0xefefefff} + theme_color:{tags: "scroll_bar border" , value: 0xb9b9b9ff} + theme_color:{tags: "implicit background" , value: 0x00000000} + theme_color:{tags: "implicit border" , value: 0x00000000} + theme_color:{tags: "hollow background" , value: 0x00000000} + theme_color:{tags: "hollow border" , value: 0x1f} + theme_color:{tags: "tab background" , value: 0xffffffff} + theme_color:{tags: "tab border" , value: 0x2392ebff} + theme_color:{tags: "tab inactive background" , value: 0} + theme_color:{tags: "tab inactive border" , value: 0x42494eff} + theme_color:{tags: "tab auto background" , value: 0xb9d0ffff} + theme_color:{tags: "tab auto inactive background" , value: 0xc4cde0ff} + theme_color:{tags: "drop_site background" , value: 0xffffff05} + theme_color:{tags: "drop_site border" , value: 0xffffff0f} + theme_color:{tags: "bad_pop weak text" , value: 0xffffffff} } ``` } @@ -2527,7 +2620,7 @@ raddbg_readme: @p "`range1(expr, min, max)`: Expresses that `expr` is a bounded numeric value between `min` and `max`. Interpreted by the debugger to build slider UI for an evaluation."; @p "`array(expr, count)`: Expresses that `expr` points to `count` values, rather than 1, or the fixed size implied by a static array. When expanded, displays only that many values."; @p "`slice(expr)`: Expresses that `expr` evaluates to a structure type which bundles a base pointer and a count (encoding how many elements to which the base pointer points). This count can be expressed either as an integer, or as an 'end pointer'. When expanded, displays that many elements following that base pointer."; - @p "`table(expr, ...)`: Expresses that `expr` should be expanded normally, but interprets all post-`expr` arguments as expressions which should be used to form cells for rows which are generated by this expression's expansions. This replaces the normal cells which are generated for an expansion in a Watch table."; + @p "`columns(expr, ...)`: Expresses that `expr` should be expanded normally, but interprets all post-`expr` arguments as expressions which should be used to form cells for rows which are generated by this expression's expansions. This replaces the normal cells which are generated for an expansion in a Watch table."; @p "`text(expr, [lang = ...])`: Generates a text visualizer, interpreting `expr` as (being or pointing to) text."; @p "`disasm(expr, [size = ...]`: Generates a disassembly visualizer, interpreting `expr` as (being or pointing to) machine code."; @p "`memory(expr, [size = ...])`: Generates a memory visualizer, interpreting `expr` as (being or pointing to) raw bytes."; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 171689c4..9fec8814 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -152,7 +152,7 @@ internal B32 rd_cfg_is_project_filtered(CFG_Node *cfg) { CFG_Node *project = cfg_node_child_from_string(cfg, str8_lit("project")); - B32 result = (project != &cfg_nil_node && !path_match_normalized(rd_state->project_path, project->first->string)); + B32 result = (project != &cfg_nil_node && project->first->string.size != 0 && !path_match_normalized(rd_state->project_path, project->first->string)); return result; } @@ -227,6 +227,14 @@ rd_location_from_cfg(CFG_Node *cfg) return dst_loc; } +internal String8 +rd_name_from_cfg(CFG_Node *cfg) +{ + CFG_Node *name_root = cfg_node_child_from_string(cfg, str8_lit("name")); + String8 result = name_root->first->string; + return result; +} + internal String8 rd_label_from_cfg(CFG_Node *cfg) { @@ -262,6 +270,7 @@ rd_target_from_cfg(Arena *arena, CFG_Node *cfg) target.stdout_path = cfg_node_child_from_string(cfg, str8_lit("stdout_path"))->first->string; target.stderr_path = cfg_node_child_from_string(cfg, str8_lit("stderr_path"))->first->string; target.stdin_path = cfg_node_child_from_string(cfg, str8_lit("stdin_path"))->first->string; + target.msg_id = cfg->id; target.debug_subprocesses = !!e_value_from_string(cfg_node_child_from_string(cfg, str8_lit("debug_subprocesses"))->first->string).u64; for(CFG_Node *child = cfg->first; child != &cfg_nil_node; child = child->next) { @@ -322,6 +331,7 @@ rd_setting_from_name(String8 name) CfgSeedTask panel_task = {0, &cfg_nil_node, 1}; if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_from_id(rd_regs()->panel); } if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_from_id(rd_regs()->window); } + if(panel_task.cfg == &cfg_nil_node) { panel_task.cfg = cfg_node_child_from_string(cfg_node_root(), s("user")); } CfgSeedTask view_task = {&panel_task, view_cfg, 1}; CfgSeedTask *first_task = &view_task; CfgSeedTask *last_task = &panel_task; @@ -517,13 +527,13 @@ rd_mapped_from_file_path(Arena *arena, String8 file_path) } if(best_map_dst.size != 0) { + PathStyle dst_path_style = path_style_from_str8(best_map_dst); String8List best_map_dst_parts = str8_split_path(scratch.arena, best_map_dst); for(String8Node *n = best_map_remaining_suffix_first; n != 0; n = n->next) { str8_list_push(scratch.arena, &best_map_dst_parts, n->string); } - StringJoin join = {.sep = str8_lit("/")}; - file_path = str8_list_join(scratch.arena, &best_map_dst_parts, &join); + file_path = str8_path_list_join_by_style(scratch.arena, &best_map_dst_parts, dst_path_style); } } String8 result = push_str8_copy(arena, file_path); @@ -551,6 +561,21 @@ rd_possible_overrides_from_file_path(Arena *arena, String8 file_path) Temp scratch = scratch_begin(&arena, 1); PathStyle pth_style = PathStyle_Relative; String8List pth_parts = path_normalized_list_from_string(scratch.arena, file_path, &pth_style); + + //- rjf: push possible overrides for relativized-according-to-debug-info-and-module path + { + String8 module_folder = str8_chop_last_slash(e_base_ctx->primary_module->name); + String8 path_relative_to_module = path_relative_dst_from_absolute_dst_src(arena, file_path, module_folder); + String8 debug_info_folder = str8_chop_last_slash(e_base_ctx->primary_dbg_info->name); + str8_list_push(arena, &result, path_relative_to_module); + if(!path_match_normalized(debug_info_folder, module_folder)) + { + String8 path_relative_to_debug_info = path_relative_dst_from_absolute_dst_src(arena, file_path, debug_info_folder); + str8_list_push(arena, &result, path_relative_to_debug_info); + } + } + + //- rjf: push possible overrides from file path map rules { CFG_NodePtrList links = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("file_path_map")); for(CFG_NodePtrNode *n = links.first; n != 0; n = n->next) @@ -593,9 +618,7 @@ rd_possible_overrides_from_file_path(Arena *arena, String8 file_path) { str8_list_push(scratch.arena, &candidate_parts, p->string); } - StringJoin join = {0}; - join.sep = str8_lit("/"); - String8 candidate_path = str8_list_join(arena, &candidate_parts, &join); + String8 candidate_path = str8_path_list_join_by_style(arena, &candidate_parts, src_style); str8_list_push(arena, &result, candidate_path); } } @@ -609,7 +632,7 @@ rd_possible_overrides_from_file_path(Arena *arena, String8 file_path) //~ rjf: Control Entity Info Extraction internal Vec4F32 -rd_color_from_ctrl_entity(CTRL_Entity *entity) +rd_color_from_ctrl_entity(D_Entity *entity) { Vec4F32 result = {0}; if(entity->rgba != 0) @@ -619,10 +642,10 @@ rd_color_from_ctrl_entity(CTRL_Entity *entity) if(entity->rgba == 0) switch(entity->kind) { default:{}break; - case CTRL_EntityKind_Thread: + case D_EntityKind_Thread: { - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity, CTRL_EntityKind_Process); - CTRL_Entity *main_thread = ctrl_entity_child_from_kind(process, CTRL_EntityKind_Thread); + D_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); + D_Entity *main_thread = d_entity_child_from_kind(process, D_EntityKind_Thread); if(main_thread != entity) { result = ui_color_from_name(str8_lit("thread_1")); @@ -637,14 +660,14 @@ rd_color_from_ctrl_entity(CTRL_Entity *entity) } internal String8 -rd_name_from_ctrl_entity(Arena *arena, CTRL_Entity *entity) +rd_name_from_ctrl_entity(Arena *arena, D_Entity *entity) { String8 string = entity->string; if(string.size == 0) { string = str8_lit("unnamed"); } - if(entity->kind == CTRL_EntityKind_Module) + if(entity->kind == D_EntityKind_Module || entity->kind == D_EntityKind_Process) { string = str8_skip_last_slash(string); } @@ -678,28 +701,34 @@ rd_eval_space_from_cfg(CFG_Node *cfg) //- rjf: ctrl entity <-> eval space -internal CTRL_Entity * +internal D_Entity * rd_ctrl_entity_from_eval_space(E_Space space) { - CTRL_Entity *entity = &ctrl_entity_nil; - if(space.kind == CTRL_EvalSpaceKind_Entity || + D_Entity *entity = &d_entity_nil; + if(space.kind == D_EvalSpaceKind_Entity || space.kind == RD_EvalSpaceKind_MetaCtrlEntity || + space.kind == RD_EvalSpaceKind_MetaCallStack || space.kind == RD_EvalSpaceKind_MetaUnattachedProcess) { - CTRL_Handle handle; - handle.machine_id = space.u64s[0]; - handle.dmn_handle.u64[0] = space.u64s[1]; - entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, handle); + D_Handle handle; + handle.machine_id = (U32)((space.u64s[0] & 0xffffffff00000000ull) >> 32); + handle.controller_kind = (U32)((space.u64s[0] & 0x00000000ffffffffull) >> 0); + handle.entity_id = space.u64s[1]; + entity = d_entity_from_handle(handle); } return entity; } internal E_Space -rd_eval_space_from_ctrl_entity(CTRL_Entity *entity, E_SpaceKind kind) +rd_eval_space_from_ctrl_entity(D_Entity *entity, E_SpaceKind kind) { - E_Space space = e_space_make(kind); - space.u64s[0] = entity->handle.machine_id; - space.u64s[1] = entity->handle.dmn_handle.u64[0]; + E_Space space = {0}; + if(entity != &d_entity_nil) + { + space = e_space_make(kind); + space.u64s[0] = (((U64)entity->handle.machine_id) << 32) | (((U64)entity->handle.controller_kind) << 0); + space.u64s[1] = entity->handle.entity_id; + } return space; } @@ -726,7 +755,7 @@ rd_eval_space_gen(E_Space space) { default: { - result = ctrl_eval_space_gen(space); + result = d_ctrl_eval_space_gen(space); }break; case RD_EvalSpaceKind_MetaCfg: case RD_EvalSpaceKind_MetaQuery: @@ -738,7 +767,7 @@ rd_eval_space_gen(E_Space space) } internal B32 -rd_eval_space_read(E_Space space, void *out, Rng1U64 range) +rd_eval_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 range) { Temp scratch = scratch_begin(0, 0); B32 result = 0; @@ -746,39 +775,66 @@ rd_eval_space_read(E_Space space, void *out, Rng1U64 range) { default: { - result = ctrl_eval_space_read(space, out, range); + result = d_ctrl_eval_space_read(space, out, out_range_info, range); }break; //- rjf: interior control entity reads (inside process address space or thread register block) - case CTRL_EvalSpaceKind_Entity: + case D_EvalSpaceKind_Entity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); switch(entity->kind) { default:{}break; - case CTRL_EntityKind_Process: + case D_EntityKind_Process: { - CTRL_ProcessMemorySlice slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, entity->handle, range, 0, rd_state->frame_eval_memread_endt_us); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, entity->handle, range, 0, rd_state->frame_eval_memread_endt_us); String8 data = slice.data; if(data.size == dim_1u64(range)) { result = 1; MemoryCopy(out, data.str, data.size); + if(out_range_info != 0 && out_range_info->byte_bad_flags) + { + MemoryCopy(out_range_info->byte_bad_flags, slice.byte_bad_flags, sizeof(U64) * (dim_1u64(range)+63)/64); + } + if(out_range_info != 0 && out_range_info->byte_changed_flags) + { + MemoryCopy(out_range_info->byte_changed_flags, slice.byte_changed_flags, sizeof(U64) * ((dim_1u64(range)+63)/64)); + } + if(out_range_info != 0) + { + out_range_info->flags |= E_SpaceRangeFlag_Stale*!!slice.stale; + out_range_info->flags |= E_SpaceRangeFlag_AnyByteChanged*!!slice.any_byte_changed; + out_range_info->flags |= E_SpaceRangeFlag_AnyByteBad*!!slice.any_byte_bad; + } } }break; - case CTRL_EntityKind_Thread: + case D_EntityKind_Thread: { Access *access = access_open(); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, entity->handle, 1, rd_state->frame_eval_memread_endt_us); - U64 concrete_frame_idx = e_interpret_ctx->reg_unwind_count; - if(concrete_frame_idx < call_stack.concrete_frames_count) + void *regs_block = 0; + if(e_interpret_ctx->reg_unwind_count == 0) { - CTRL_CallStackFrame *f = call_stack.concrete_frames[concrete_frame_idx]; - U64 regs_size = regs_block_size_from_arch(e_interpret_ctx->reg_arch); + regs_block = d_cached_reg_block_from_thread(scratch.arena, entity->handle); + } + else + { + D_CallStack call_stack = d_call_stack_from_thread(access, entity->handle, 1, rd_state->frame_eval_memread_endt_us); + U64 concrete_frame_idx = e_interpret_ctx->reg_unwind_count; + if(concrete_frame_idx < call_stack.concrete_frames_count) + { + D_CallStackFrame *f = call_stack.concrete_frames[concrete_frame_idx]; + regs_block = f->regs; + } + } + if(regs_block != 0) + { + ARCH_Info *arch_info = arch_info_from_arch(entity->arch); + U64 regs_size = arch_info->reg_block_size; Rng1U64 legal_range = r1u64(0, regs_size); Rng1U64 read_range = intersect_1u64(legal_range, range); U64 read_size = dim_1u64(read_range); - MemoryCopy(out, (U8 *)f->regs + read_range.min, read_size); + MemoryCopy(out, (U8 *)regs_block + read_range.min, read_size); result = (read_size == dim_1u64(range)); } access_close(access); @@ -928,14 +984,14 @@ rd_eval_space_read(E_Space space, void *out, Rng1U64 range) case RD_EvalSpaceKind_MetaCtrlEntity: { // rjf: unpack cfg - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); String8 child_key = e_string_from_id(space.u64s[2]); // rjf: determine data to read from, depending on child name in schema String8 read_data = {0}; if(child_key.size != 0) { - MD_NodePtrList schemas = cfg_schemas_from_name(scratch.arena, rd_state->cfg_schema_table, ctrl_entity_kind_code_name_table[entity->kind]); + MD_NodePtrList schemas = cfg_schemas_from_name(scratch.arena, rd_state->cfg_schema_table, d_entity_kind_code_name_table[entity->kind]); MD_Node *child_schema = &md_nil_node; for(MD_NodePtrNode *n = schemas.first; n != 0 && child_schema == &md_nil_node; n = n->next) { @@ -948,7 +1004,7 @@ rd_eval_space_read(E_Space space, void *out, Rng1U64 range) } else if(str8_match(child_schema->string, str8_lit("dbg"), 0)) { - read_data = ctrl_entity_child_from_kind(entity, CTRL_EntityKind_DebugInfoPath)->string; + read_data = d_entity_child_from_kind(entity, D_EntityKind_DebugInfoPath)->string; } else if(str8_match(child_schema->string, str8_lit("vaddr_range"), 0)) { @@ -960,7 +1016,7 @@ rd_eval_space_read(E_Space space, void *out, Rng1U64 range) } else if(str8_match(child_schema->string, str8_lit("active"), 0)) { - B32 is_frozen = ctrl_entity_tree_is_frozen(entity); + B32 is_frozen = d_entity_tree_is_frozen(entity); B32 is_active = !is_frozen; read_data = push_str8_copy(scratch.arena, str8_struct(&is_active)); } @@ -990,26 +1046,47 @@ rd_eval_space_write(E_Space space, void *in, Rng1U64 range) //- rjf: interior control entity writes (inside process address space or // thread register block) - case CTRL_EvalSpaceKind_Entity: + case D_EvalSpaceKind_Entity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); switch(entity->kind) { default:{}break; - case CTRL_EntityKind_Process: + case D_EntityKind_Process: { - result = ctrl_process_write(entity->handle, range, in); + result = d_process_write(entity->handle, range, in); + + //- rjf: success -> wait for cache updates, for small regions - prefer relatively seamless + // writes within calling frame's "view" of the memory, at the expense of a small amount of + // time. + if(result) + { + U64 endt_us = now_time_us()+10000; + U64 page_size = get_system_info()->page_size; // TODO(rjf): @page_size_from_process + Rng1U64 page_range = r1u64(range.min/page_size, (range.max+page_size-1)/page_size); + for EachInRange(page_idx, page_range) + { + Temp scratch = scratch_begin(0, 0); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, entity->handle, r1u64(page_idx*page_size, (page_idx+1)*page_size), 1, endt_us); + scratch_end(scratch); + if(!slice.stale || now_time_us() >= endt_us) + { + break; + } + } + } }break; - case CTRL_EntityKind_Thread: + case D_EntityKind_Thread: { Temp scratch = scratch_begin(0, 0); - U64 regs_size = regs_block_size_from_arch(entity->arch); + ARCH_Info *arch_info = arch_info_from_arch(entity->arch); + U64 regs_size = arch_info->reg_block_size; Rng1U64 legal_range = r1u64(0, regs_size); Rng1U64 write_range = intersect_1u64(legal_range, range); U64 write_size = dim_1u64(write_range); - void *new_regs = ctrl_reg_block_from_thread(scratch.arena, &d_state->ctrl_entity_store->ctx, entity->handle); + void *new_regs = d_cached_reg_block_from_thread(scratch.arena, entity->handle); MemoryCopy((U8 *)new_regs + write_range.min, in, write_size); - result = ctrl_thread_write_reg_block(entity->handle, new_regs); + result = d_thread_write_reg_block(entity->handle, new_regs); scratch_end(scratch); }break; } @@ -1075,13 +1152,13 @@ rd_eval_space_write(E_Space space, void *in, Rng1U64 range) String8 write_string = str8_cstring_capped(in, (U8 *)in + dim_1u64(range)); // rjf: unpack cfg - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); String8 child_key = e_string_from_id(space.u64s[2]); // rjf: perform write, based on child name in schema if(child_key.size != 0) { - MD_NodePtrList schemas = cfg_schemas_from_name(scratch.arena, rd_state->cfg_schema_table, ctrl_entity_kind_code_name_table[entity->kind]); + MD_NodePtrList schemas = cfg_schemas_from_name(scratch.arena, rd_state->cfg_schema_table, d_entity_kind_code_name_table[entity->kind]); MD_Node *child_schema = &md_nil_node; for(MD_NodePtrNode *n = schemas.first; n != 0 && child_schema == &md_nil_node; n = n->next) { @@ -1090,7 +1167,7 @@ rd_eval_space_write(E_Space space, void *in, Rng1U64 range) if(str8_match(child_schema->string, str8_lit("label"), 0)) { result = 1; - ctrl_entity_equip_string(d_state->ctrl_entity_store, entity, write_string); + d_entity_equip_string(d_user_state->ctrl_entity_store, entity, write_string); rd_cmd(D_CmdKind_SetEntityName, .ctrl_entity = entity->handle, .string = write_string); } else if(str8_match(child_schema->string, str8_lit("dbg"), 0)) @@ -1139,12 +1216,12 @@ rd_key_from_eval_space_range(E_Space space, Rng1U64 range, B32 zero_terminated) String8 file_path = e_string_from_id(file_path_string_id); result = fs_key_from_path_range(file_path, range, 0); }break; - case CTRL_EvalSpaceKind_Entity: + case D_EvalSpaceKind_Entity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); - if(entity->kind == CTRL_EntityKind_Process) + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); + if(entity->kind == D_EntityKind_Process) { - result = ctrl_key_from_process_vaddr_range(entity->handle, range, zero_terminated, 0, 0, 0); + result = d_key_from_process_vaddr_range(entity->handle, range, zero_terminated, 0, 0, 0); } }break; } @@ -1176,13 +1253,13 @@ rd_whole_range_from_eval_space(E_Space space) { U64 file_path_string_id = space.u64_0; String8 file_path = e_string_from_id(file_path_string_id); - FileProperties props = os_properties_from_file_path(file_path); + FileProperties props = properties_from_file_path(file_path); result = r1u64(0, props.size); }break; - case CTRL_EvalSpaceKind_Entity: + case D_EvalSpaceKind_Entity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(space); - if(entity->kind == CTRL_EntityKind_Process) + D_Entity *entity = rd_ctrl_entity_from_eval_space(space); + if(entity->kind == D_EntityKind_Process) { result = r1u64(0, 0x7FFFFFFFFFFFull); } @@ -1237,10 +1314,18 @@ rd_commit_eval_value_string(E_Eval dst_eval, String8 string) commit_data.size = Min(commit_data.size, e_type_byte_size_from_key(type_key)); } + //- rjf: determine if commit string is quoted + B32 is_quoted = 0; + if(string.size >= 1 && string.str[0] == '"') + { + string = str8_skip(string, 1); + is_quoted = 1; + } + //- rjf: pointer or array to characters/integers? -> try to treat // new value string as textual data if(!got_commit_data && - ((type_kind == E_TypeKind_Ptr || type_kind == E_TypeKind_Array) && + (((is_quoted && type_kind == E_TypeKind_Ptr) || type_kind == E_TypeKind_Array) && (direct_type_kind == E_TypeKind_Char8 || direct_type_kind == E_TypeKind_Char16 || direct_type_kind == E_TypeKind_Char32 || @@ -1250,12 +1335,6 @@ rd_commit_eval_value_string(E_Eval dst_eval, String8 string) e_type_kind_is_integer(direct_type_kind)))) { got_commit_data = 1; - B32 is_quoted = 0; - if(string.size >= 1 && string.str[0] == '"') - { - string = str8_skip(string, 1); - is_quoted = 1; - } if(string.size >= 1 && string.str[string.size-1] == '"') { string = str8_chop(string, 1); @@ -1306,9 +1385,9 @@ rd_commit_eval_value_string(E_Eval dst_eval, String8 string) src_eval_value.irtree.mode == E_Mode_Value) { got_commit_data = 1; - commit_data = push_str8_copy(scratch.arena, str8_struct(&src_eval.value)); - commit_data.size = Min(commit_data.size, e_type_byte_size_from_key(src_eval.irtree.type_key)); - commit_data.size = Min(commit_data.size, e_type_byte_size_from_key(type_key)); + commit_data = str8_copy(scratch.arena, str8_struct(&src_eval.value)); + commit_data.size = Max(commit_data.size, e_type_byte_size_from_key(src_eval.irtree.type_key)); + commit_data.size = Max(commit_data.size, e_type_byte_size_from_key(type_key)); } } } @@ -1343,11 +1422,11 @@ rd_file_path_from_eval(Arena *arena, E_Eval eval) default:{}break; case E_SpaceKind_File: { - result = push_str8_copy(arena, e_string_from_id(eval.space.u64_0)); + result = str8_copy(arena, e_string_from_id(eval.space.u64_0)); }break; case E_SpaceKind_FileSystem: { - result = push_str8_copy(arena, e_string_from_id(eval.value.u64)); + result = str8_copy(arena, e_string_from_id(eval.value.u64)); }break; } return result; @@ -1608,33 +1687,47 @@ rd_view_ui(Rng2F32 rect) //- rjf: build container UI_Box *search_row = &ui_nil_box; - UI_PrefHeight(ui_px(search_row_height, 1.f)) + UI_PrefHeight(ui_px(search_row_height, 1.f)) // UI_TagF("focus") { - search_row = ui_build_box_from_stringf(UI_BoxFlag_DrawSideBottom|UI_BoxFlag_DrawDropShadow, "###search"); + if(!vs->contents_are_focused) + { + ui_set_next_border_color(ui_color_from_name(s("border"))); + } + search_row = ui_build_box_from_stringf(UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawDropShadow, "###search"); } //- rjf: build contents UI_Parent(search_row) UI_WidthFill UI_HeightFill UI_Focus(vs->query_is_open && !vs->contents_are_focused ? UI_FocusKind_On : UI_FocusKind_Off) RD_Font(cmd_kind_info->query.flags & RD_QueryFlag_CodeInput ? RD_FontSlot_Code : RD_FontSlot_Main) + UI_Flags(UI_BoxFlag_DisableFocusOverlay|UI_BoxFlag_DisableFocusBorder) { - if(cmd_name.size != 0) + UI_TagF("weak") { - UI_TextAlignment(UI_TextAlign_Center) + if(cmd_name.size != 0) + { + ui_spacer(ui_em(0.5f, 1.f)); + UI_TextAlignment(UI_TextAlign_Center) + UI_Transparency(1-search_row_open_t) + UI_PrefWidth(ui_em(3.f, 1.f)) + RD_Font(RD_FontSlot_Icons) + ui_label(rd_icon_kind_text_table[icon == RD_IconKind_Null ? RD_IconKind_Find : icon]); UI_Transparency(1-search_row_open_t) - UI_PrefWidth(ui_em(2.5f, 1.f)) - UI_TagF("weak") - RD_Font(RD_FontSlot_Icons) - ui_label(rd_icon_kind_text_table[icon == RD_IconKind_Null ? RD_IconKind_Find : icon]); - UI_Transparency(1-search_row_open_t) - RD_Font(RD_FontSlot_Main) UI_PrefWidth(ui_text_dim(1, 1)) - ui_label(rd_display_from_code_name(cmd_name)); - ui_spacer(ui_em(0.5f, 1.f)); + RD_Font(RD_FontSlot_Main) UI_PrefWidth(ui_text_dim(1, 1)) + UI_FontSize(ui_top_font_size()*0.85f) + ui_label(rd_display_from_code_name(cmd_name)); + } + else + { + ui_spacer(ui_em(0.5f, 1.f)); + UI_TextAlignment(UI_TextAlign_Center) RD_Font(RD_FontSlot_Icons) UI_PrefWidth(ui_em(2.f, 1.f)) + ui_label(rd_icon_kind_text_table[RD_IconKind_Find]); + } } UI_Key line_edit_key = {0}; RD_CellParams params = {0}; { params.flags |= !!(cmd_kind_info->query.flags & RD_QueryFlag_CodeInput) * RD_CellFlag_CodeContents; - params.flags |= RD_CellFlag_Border; + params.flags |= RD_CellFlag_NoBackground; params.cursor = &vs->query_cursor; params.mark = &vs->query_mark; params.edit_buffer = vs->query_buffer; @@ -1701,7 +1794,7 @@ rd_view_ui(Rng2F32 rect) UI_Padding(ui_pct(1, 0)) UI_Focus(UI_FocusKind_Null) { CFG_NodePtrList targets = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("target")); - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); //- rjf: icon & info UI_Padding(ui_em(2.f, 1.f)) UI_TagF("weak") @@ -1810,7 +1903,7 @@ rd_view_ui(Rng2F32 rect) UI_Padding(ui_pct(1, 0)) { ui_labelf("use"); - UI_TextAlignment(UI_TextAlign_Center) rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string, str8_zero(), 1); + UI_TextAlignment(UI_TextAlign_Center) rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string, s(""), 1, 0); ui_labelf("to search for commands and options"); } } @@ -1948,7 +2041,7 @@ rd_view_ui(Rng2F32 rect) { if(expr_string.size == 0) { - expr_string = push_str8f(scratch.arena, "query:config.$%I64x.watches", rd_regs()->view); + expr_string = str8f(scratch.arena, "query:config.$%I64x.watches", rd_regs()->view); } E_Eval eval = e_eval_from_string(expr_string); RD_WatchViewState *ewv = rd_view_state(RD_WatchViewState); @@ -1966,11 +2059,16 @@ rd_view_ui(Rng2F32 rect) ////////////////////////////// //- rjf: unpack arguments // + B32 is_autocomplete = cfg_node_child_from_string(view, str8_lit("autocomplete")) != &cfg_nil_node; EV_View *eval_view = rd_view_eval_view(); F32 row_height_px = ui_top_px_height(); S64 num_possible_visible_rows = (S64)(dim_2f32(rect).y/row_height_px); F32 row_string_max_size_px = dim_2f32(rect).x; - EV_StringFlags string_flags = EV_StringFlag_ReadOnlyDisplayRules; + EV_StringFlags string_flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags; + if(is_autocomplete) + { + string_flags |= EV_StringFlag_DisablePrettyNames; + } String8 filter = rd_view_query_input(); Vec4F32 pop_background_rgba = {0}; UI_TagF("pop") pop_background_rgba = ui_color_from_name(str8_lit("background")); @@ -1998,6 +2096,16 @@ rd_view_ui(Rng2F32 rect) // B32 implicit_root = (cfg_node_child_from_string(cfg_node_from_id(rd_regs()->view), str8_lit("explicit_root")) == &cfg_nil_node); + ////////////////////////////// + //- rjf: get root contextual expression + // + String8 ctx_expr = cfg_node_child_from_string(cfg_node_from_id(rd_regs()->view), s("context_expression"))->first->string; + + ////////////////////////////// + //- rjf: decide single-click-to-activate preference + // + B32 prefer_single_click_to_activate = (cfg_node_child_from_string(cfg_node_from_id(rd_regs()->view), str8_lit("activate_with_single_click")) != &cfg_nil_node); + ////////////////////////////// //- rjf: determine autocompletion string // @@ -2257,13 +2365,13 @@ rd_view_ui(Rng2F32 rect) { U64 voff = 0; DI_Key dbgi_key = {0}; - if(eval.space.kind == CTRL_EvalSpaceKind_Entity) + if(eval.space.kind == D_EvalSpaceKind_Entity) { U64 vaddr = eval.value.u64; - CTRL_Entity *process = rd_ctrl_entity_from_eval_space(eval.space); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, vaddr); - dbgi_key = ctrl_dbgi_key_from_module(module); - voff = ctrl_voff_from_vaddr(module, vaddr); + D_Entity *process = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + dbgi_key = d_dbgi_key_from_module(module); + voff = d_voff_from_vaddr(module, vaddr); } else { @@ -2277,12 +2385,12 @@ rd_view_ui(Rng2F32 rect) String8 name = {0}; if(name.size == 0) { - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff); name.str = rdi_name_from_procedure(rdi, procedure, &name.size); } if(name.size == 0) { - RDI_GlobalVariable *gvar = rdi_global_variable_from_voff(rdi, voff); + RDI_Symbol *gvar = rdi_global_variable_from_voff(rdi, voff); name.str = rdi_string_from_idx(rdi, gvar->name_string_idx, &name.size); } if(name.size != 0) @@ -2314,14 +2422,14 @@ rd_view_ui(Rng2F32 rect) }break; case RD_EvalSpaceKind_MetaCtrlEntity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); RD_RegsScope(.ctrl_entity = entity->handle) { if(0){} - else if(entity->kind == CTRL_EntityKind_Thread) { rd_regs()->thread = entity->handle; } - else if(entity->kind == CTRL_EntityKind_Module) { rd_regs()->module = entity->handle; } - else if(entity->kind == CTRL_EntityKind_Process) { rd_regs()->process = entity->handle; } - else if(entity->kind == CTRL_EntityKind_Machine) { rd_regs()->machine = entity->handle; } + else if(entity->kind == D_EntityKind_Thread) { rd_regs()->thread = entity->handle; } + else if(entity->kind == D_EntityKind_Module) { rd_regs()->module = entity->handle; } + else if(entity->kind == D_EntityKind_Process) { rd_regs()->process = entity->handle; } + else if(entity->kind == D_EntityKind_Machine) { rd_regs()->machine = entity->handle; } rd_cmd(RD_CmdKind_CompleteQuery); } }break; @@ -2351,30 +2459,46 @@ rd_view_ui(Rng2F32 rect) { default: { - String8 name = {0}; + // rjf: unpack voff / dbgi key from evaluation + U64 voff = 0; + DI_Key dbgi_key = {0}; + if(eval.space.kind == D_EvalSpaceKind_Entity) { U64 vaddr = eval.value.u64; - CTRL_Entity *process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - U64 voff = ctrl_voff_from_vaddr(module, vaddr); - { - Access *access = access_open(); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); - if(name.size == 0) - { - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); - name.str = rdi_name_from_procedure(rdi, procedure, &name.size); - } - if(name.size == 0) - { - RDI_GlobalVariable *gvar = rdi_global_variable_from_voff(rdi, voff); - name.str = rdi_string_from_idx(rdi, gvar->name_string_idx, &name.size); - } - access_close(access); - } + D_Entity *process = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + dbgi_key = d_dbgi_key_from_module(module); + voff = d_voff_from_vaddr(module, vaddr); } - if(name.size != 0) + else + { + voff = eval.value.u64; + E_DbgInfo *dbg_info = e_dbg_info_from_type_key(eval.irtree.type_key); + dbgi_key = dbg_info->dbgi_key; + } + + // rjf: map voff / dbgi key to name + String8 name = {0}; + B32 nav_to_name = 0; + { + Access *access = access_open(); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 1, 0); + if(name.size == 0) + { + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff); + name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure); + nav_to_name = (name.size != 0); + } + if(name.size == 0) + { + RDI_Symbol *gvar = rdi_global_variable_from_voff(rdi, voff); + name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, gvar); + } + access_close(access); + } + + // rjf: go to name if we can, otherwise just evaluate it in a sub-query + if(name.size != 0 && nav_to_name) { rd_cmd(RD_CmdKind_GoToName, .string = name); } @@ -2392,11 +2516,7 @@ rd_view_ui(Rng2F32 rect) case RD_EvalSpaceKind_MetaCfg: { CFG_Node *cfg = rd_cfg_from_eval_space(eval.space); - if(str8_match(cfg->string, str8_lit("recent_file"), 0)) - { - rd_cmd(RD_CmdKind_Switch, .cfg = cfg->id); - } - else if(str8_match(cfg->string, str8_lit("recent_project"), 0)) + if(str8_match(cfg->string, str8_lit("recent_project"), 0)) { rd_cmd(RD_CmdKind_OpenRecentProject, .cfg = cfg->id); } @@ -2420,12 +2540,24 @@ rd_view_ui(Rng2F32 rect) case RD_EvalSpaceKind_MetaCmd: { String8 cmd_name = rd_cmd_name_from_eval(eval); - rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_name); + RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_name); + RD_RegsScope() + { + RD_RegSlot ctx_filled_reg_slot = rd_regs_fill_slot_from_cell_ctx(ctx_expr, row); + if(ctx_filled_reg_slot == cmd_kind_info->query.slot || !(cmd_kind_info->query.flags & RD_QueryFlag_Required)) + { + rd_push_cmd(cmd_name, rd_regs()); + } + else + { + rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_name); + } + } }break; case RD_EvalSpaceKind_MetaCtrlEntity: { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); - rd_cmd(RD_CmdKind_PushQuery, .expr = push_str8f(scratch.arena, "query:control.%S", ctrl_string_from_handle(scratch.arena, entity->handle))); + D_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); + rd_cmd(RD_CmdKind_PushQuery, .expr = push_str8f(scratch.arena, "query:control.%S", d_string_from_handle(scratch.arena, entity->handle))); }break; } if(did_cmd) @@ -2546,7 +2678,7 @@ rd_view_ui(Rng2F32 rect) } }break; case RD_WatchViewRowKind_PrettyEntityControls: - if((!rd_entity_is_nil(row_info.collection_entity) || row_info.collection_ctrl_entity != &ctrl_entity_nil) && selection_tbl.min.x == 1 && selection_tbl.max.x == 1) + if((!rd_entity_is_nil(row_info.collection_entity) || row_info.collection_ctrl_entity != &d_entity_nil) && selection_tbl.min.x == 1 && selection_tbl.max.x == 1) { kind = OpKind_DoExpand; }break; @@ -2606,7 +2738,7 @@ rd_view_ui(Rng2F32 rect) // rjf: copy if(op.flags & UI_TxtOpFlag_Copy && selection_tbl.min.x == selection_tbl.max.x && selection_tbl.min.y == selection_tbl.max.y) { - os_set_clipboard_text(op.copy); + wm_set_clipboard_text(op.copy); } // rjf: any valid *additive* op & autocomplete hint? -> perform autocomplete first, then re-compute op @@ -2757,7 +2889,7 @@ rd_view_ui(Rng2F32 rect) } } String8 string = str8_list_join(scratch.arena, &strs, 0); - os_set_clipboard_text(string); + wm_set_clipboard_text(string); } ////////////////////////// @@ -3060,8 +3192,7 @@ rd_view_ui(Rng2F32 rect) ////////////////////////////// //- rjf: autocomplete watches -> feed autocompletion info forward // - if(rd_watch_pt_match(ewv->cursor, ewv->mark) && - cfg_node_child_from_string(view, str8_lit("autocomplete")) != &cfg_nil_node) + if(rd_watch_pt_match(ewv->cursor, ewv->mark) && is_autocomplete) { U64 row_num = ev_num_from_key(&block_ranges, ewv->cursor.key); EV_Row *row = ev_row_from_num(scratch.arena, rd_view_eval_view(), &block_ranges, row_num); @@ -3069,7 +3200,7 @@ rd_view_ui(Rng2F32 rect) RD_WatchCell *cell = row_info.cells.first; if(cell != 0) { - RD_WatchRowCellInfo cell_info = rd_info_from_watch_row_cell(scratch.arena, row, 0, &row_info, cell, ui_top_font(), ui_top_font_size(), dim_2f32(rect).y); + RD_WatchRowCellInfo cell_info = rd_info_from_watch_row_cell(scratch.arena, row, string_flags, &row_info, cell, ui_top_font(), ui_top_font_size(), dim_2f32(rect).y); String8 string = dr_string_from_fstrs(ui_build_arena(), &cell_info.eval_fstrs); if(string.size != 0) { @@ -3081,6 +3212,7 @@ rd_view_ui(Rng2F32 rect) ////////////////////////////// //- rjf: build ui // + E_Eval selected_eval = {0}; B32 pressed = 0; ProfScope("build ui") { @@ -3202,7 +3334,7 @@ rd_view_ui(Rng2F32 rect) boundary_start_idx*row_height_px, next_cell_x_px + ui_top_font_size()*0.4f, idx*row_height_px); - UI_Rect(rect) UI_HoverCursor(OS_Cursor_LeftRight) + UI_Rect(rect) UI_HoverCursor(WM_Cursor_LeftRight) { UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_Clickable|UI_BoxFlag_Floating, "boundary_%I64x_%I64x", row_hash, cell_id); UI_Signal sig = ui_signal_from_box(box); @@ -3532,10 +3664,10 @@ rd_view_ui(Rng2F32 rect) //////////////////// //- rjf: draw start of cache lines in expansions // - if(row->eval.space.kind == CTRL_EvalSpaceKind_Entity && row_info->view_ui_rule == &rd_nil_view_ui_rule) + if(row->eval.space.kind == D_EvalSpaceKind_Entity && row_info->view_ui_rule == &rd_nil_view_ui_rule) { - CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(row->eval.space); - if(space_entity->kind == CTRL_EntityKind_Process) + D_Entity *space_entity = rd_ctrl_entity_from_eval_space(row->eval.space); + if(space_entity->kind == D_EntityKind_Process) { U64 row_offset = row->eval.value.u64; if((row->eval.irtree.mode == E_Mode_Offset || row->eval.irtree.mode == E_Mode_Null) && @@ -3553,10 +3685,10 @@ rd_view_ui(Rng2F32 rect) ////////////// //- rjf: draw mid-row cache line boundaries in expansions // - if(row->eval.space.kind == CTRL_EvalSpaceKind_Entity && row_info->view_ui_rule == &rd_nil_view_ui_rule) + if(row->eval.space.kind == D_EvalSpaceKind_Entity && row_info->view_ui_rule == &rd_nil_view_ui_rule) { - CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(row->eval.space); - if(space_entity->kind == CTRL_EntityKind_Process && + D_Entity *space_entity = rd_ctrl_entity_from_eval_space(row->eval.space); + if(space_entity->kind == D_EntityKind_Process && (row->eval.irtree.mode == E_Mode_Offset || row->eval.irtree.mode == E_Mode_Null) && row->eval.value.u64%64 != 0 && row_depth > 0 && @@ -3610,6 +3742,14 @@ rd_view_ui(Rng2F32 rect) B32 cell_toggled = (cell_value_eval.value.u64 != 0); B32 next_cell_toggled = cell_toggled; + //////////////////////// + //- rjf: get selected eval from selected cell + // + if(cell_selected) + { + selected_eval = cell->eval; + } + //////////////////////// //- rjf: determine if cell evaluation's data is fresh and/or bad // @@ -3634,10 +3774,10 @@ rd_view_ui(Rng2F32 rect) Rng1U64 intersection = intersect_1u64(cell_vaddr_rng, rd_get_hover_regs()->vaddr_range); cell_is_rich_hovered = (intersection.max > intersection.min); } - CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(cell->eval.space); - if(cell->eval.space.kind == CTRL_EvalSpaceKind_Entity && space_entity->kind == CTRL_EntityKind_Process) + D_Entity *space_entity = rd_ctrl_entity_from_eval_space(cell->eval.space); + if(cell->eval.space.kind == D_EvalSpaceKind_Entity && space_entity->kind == D_EntityKind_Process) { - CTRL_ProcessMemorySlice slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, space_entity->handle, cell_vaddr_rng, 0, rd_state->frame_eval_memread_endt_us); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, space_entity->handle, cell_vaddr_rng, 0, rd_state->frame_eval_memread_endt_us); for(U64 idx = 0; idx < (slice.data.size+63)/64; idx += 1) { if(slice.byte_changed_flags[idx] != 0) @@ -3712,10 +3852,10 @@ rd_view_ui(Rng2F32 rect) rgba.w *= ui_anim(ui_key_from_stringf(ui_key_zero(), "###cfg_hover_t_%p", cfg), 1.f, .rate = entity_hover_t_rate); cell_background_color_override = rgba; } - else if(ctrl_handle_match(cell_info.entity->handle, rd_get_hover_regs()->ctrl_entity) && + else if(d_handle_match(cell_info.entity->handle, rd_get_hover_regs()->ctrl_entity) && rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity) { - CTRL_Entity *entity = cell_info.entity; + D_Entity *entity = cell_info.entity; Vec4F32 rgba = rd_color_from_ctrl_entity(entity); rgba.w *= 0.05f; if(rgba.w == 0) @@ -3847,7 +3987,7 @@ rd_view_ui(Rng2F32 rect) { UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_Clickable, "###%I64x_%I64x", cell_id, row_hash); sig = ui_signal_from_box(box); - if(ctrl_handle_match(row_info->callstack_thread->handle, rd_base_regs()->thread) && + if(d_handle_match(row_info->callstack_thread->handle, rd_base_regs()->thread) && row_info->callstack_unwind_index == rd_base_regs()->unwind_count && row_info->callstack_inline_depth == rd_base_regs()->inline_depth) { @@ -4028,8 +4168,13 @@ rd_view_ui(Rng2F32 rect) // rjf: apply bindings if(cell->px == 0 && cell->eval.space.kind == RD_EvalSpaceKind_MetaCmd) { - cell_params.flags |= RD_CellFlag_Bindings; - cell_params.bindings_name = rd_cmd_name_from_eval(cell->eval); + String8 cmd_name = rd_cmd_name_from_eval(cell->eval); + RD_CmdKindInfo *info = rd_cmd_kind_info_from_string(cmd_name); + if(info->flags & RD_CmdKindFlag_ListInUI) + { + cell_params.flags |= RD_CellFlag_Bindings; + cell_params.bindings_name = cmd_name; + } } // rjf: apply background override @@ -4042,8 +4187,8 @@ rd_view_ui(Rng2F32 rect) if(!(cell_info.flags & RD_WatchCellFlag_NoEval) && e_type_kind_from_key(cell->eval.irtree.type_key) != E_TypeKind_Null && (cell->eval.space.kind == E_SpaceKind_Null || - cell->eval.space.kind == CTRL_EvalSpaceKind_Entity) && - row_info->callstack_thread == &ctrl_entity_nil && + cell->eval.space.kind == D_EvalSpaceKind_Entity) && + row_info->callstack_thread == &d_entity_nil && e_type_kind_from_key(cell->eval.irtree.type_key) != E_TypeKind_Function) UI_FontSize(ui_top_font_size()*0.9f) { @@ -4126,7 +4271,7 @@ rd_view_ui(Rng2F32 rect) } // rjf: hover -> rich hover entities - else if(ui_hovering(sig) && cell_info.entity != &ctrl_entity_nil) + else if(ui_hovering(sig) && cell_info.entity != &d_entity_nil) { RD_RegsScope(.ctrl_entity = cell_info.entity->handle, .no_rich_tooltip = 1) rd_set_hover_regs(RD_RegSlot_CtrlEntity); } @@ -4156,18 +4301,18 @@ rd_view_ui(Rng2F32 rect) { RD_RegsScope(.cfg = cell_info.cfg->id) rd_drag_begin(RD_RegSlot_Cfg); } - else if(cell_info.entity != &ctrl_entity_nil) + else if(cell_info.entity != &d_entity_nil) { RD_RegsScope(.ctrl_entity = cell_info.entity->handle) switch(cell_info.entity->kind) { default:{rd_drag_begin(RD_RegSlot_CtrlEntity);}break; - case CTRL_EntityKind_Machine:{RD_RegsScope(.machine = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Machine);}break; - case CTRL_EntityKind_Process:{RD_RegsScope(.process = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Process);}break; - case CTRL_EntityKind_Module:{RD_RegsScope(.module = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Module);}break; - case CTRL_EntityKind_Thread:{RD_RegsScope(.thread = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Thread);}break; + case D_EntityKind_Machine:{RD_RegsScope(.machine = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Machine);}break; + case D_EntityKind_Process:{RD_RegsScope(.process = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Process);}break; + case D_EntityKind_Module:{RD_RegsScope(.module = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Module);}break; + case D_EntityKind_Thread:{RD_RegsScope(.thread = cell_info.entity->handle) rd_drag_begin(RD_RegSlot_Thread);}break; } } - else if(cell->eval.space.kind == CTRL_EvalSpaceKind_Entity || + else if(cell->eval.space.kind == D_EvalSpaceKind_Entity || cell->eval.space.kind == E_SpaceKind_FileSystem || cell->eval.space.kind == E_SpaceKind_File || cell->eval.space.kind == E_SpaceKind_Null) @@ -4190,6 +4335,36 @@ rd_view_ui(Rng2F32 rect) pressed = 1; } + // rjf: right-click -> move selection here, open query + if(ui_right_clicked(sig)) + { + selected_eval = cell->eval; + ewv->next_cursor = ewv->next_mark = cell_pt; + pressed = 1; + D_Entity *entity = rd_ctrl_entity_from_eval_space(cell->eval.space); + if(cell->eval.space.kind == D_EvalSpaceKind_Entity) + { + rd_cmd(RD_CmdKind_PushQuery, + .expr = s("query:memory_eval_commands"), + .do_implicit_root = 1, + .do_lister = 1, + .activate_with_single_click = 1, + .small_size = 1, + .ui_key = cell_box->key); + } + else if(cell->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity && entity->kind == D_EntityKind_Module) + { + rd_cmd(RD_CmdKind_PushQuery, + .expr = s("query:module_commands"), + .do_implicit_root = 1, + .do_lister = 1, + .activate_with_single_click = 1, + .small_size = 1, + .ui_key = cell_box->key, + .ctx_expr = cell->eval.string); + } + } + // rjf: reversion if(revert_cell && cell->eval.space.kind == RD_EvalSpaceKind_MetaCfg) { @@ -4201,6 +4376,7 @@ rd_view_ui(Rng2F32 rect) // rjf: activation (double-click normally, or single-clicks with special buttons) if((!(cell_info.flags & RD_WatchCellFlag_ActivateWithSingleClick) && ui_double_clicked(sig)) || ((cell_info.flags & RD_WatchCellFlag_ActivateWithSingleClick) && ui_clicked(sig)) || + (prefer_single_click_to_activate && ui_pressed(sig)) || sig.f & UI_SignalFlag_KeyboardPressed) { // rjf: kill if a double-clickable cell @@ -4259,13 +4435,28 @@ rd_view_ui(Rng2F32 rect) { String8 cmd_name = cell_info.cmd_name; RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_name); - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(row->eval.space); + RD_RegsScope() + { + RD_RegSlot ctx_filled_reg_slot = rd_regs_fill_slot_from_cell_ctx(ctx_expr, row); + if(ctx_filled_reg_slot == cmd_kind_info->query.slot || !(cmd_kind_info->query.flags & RD_QueryFlag_Required)) + { + rd_push_cmd(cmd_name, rd_regs()); + } + else + { + rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_name); + } + } +#if 0 + String8 cmd_name = cell_info.cmd_name; + RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_name); + D_Entity *entity = rd_ctrl_entity_from_eval_space(row->eval.space); CFG_Node *cfg = rd_cfg_from_eval_space(row->eval.space); if(cfg == &cfg_nil_node) { cfg = rd_cfg_from_eval_space(row->block->eval.space); } - if(entity == &ctrl_entity_nil) + if(entity == &d_entity_nil) { entity = rd_ctrl_entity_from_eval_space(row->eval.space); } @@ -4282,7 +4473,7 @@ rd_view_ui(Rng2F32 rect) } if(!(cmd_kind_info->query.flags & RD_QueryFlag_Required) || (cmd_kind_info->query.slot == RD_RegSlot_Cfg && cfg != &cfg_nil_node) || - (cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &ctrl_entity_nil)) + (cmd_kind_info->query.slot == RD_RegSlot_CtrlEntity && entity != &d_entity_nil)) { rd_push_cmd(cell_info.cmd_name, rd_regs()); } @@ -4291,10 +4482,11 @@ rd_view_ui(Rng2F32 rect) rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_name); } } +#endif } // rjf: row has callstack info? -> select unwind - else if(row_info->callstack_thread != &ctrl_entity_nil) + else if(row_info->callstack_thread != &d_entity_nil) { rd_cmd(RD_CmdKind_SelectThread, .thread = row_info->callstack_thread->handle); rd_cmd(RD_CmdKind_SelectUnwind, @@ -4320,30 +4512,46 @@ rd_view_ui(Rng2F32 rect) next_row_expanded = !row_expanded; } - // rjf: can't edit, but has address info? -> go to address - else if(cell->eval.space.kind == CTRL_EvalSpaceKind_Entity) + // rjf: can't edit, but evaluates w/ a type in debug info? -> go to voff + else if(e_type_key_unwrap(cell->eval.irtree.type_key, E_TypeUnwrapFlag_All).kind == E_TypeKeyKind_Ext || + cell->eval.space.kind == D_EvalSpaceKind_Entity) { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(cell->eval.space); - CTRL_Entity *process = ctrl_process_from_entity(entity); - if(process != &ctrl_entity_nil) + // rjf: try to unpack debug info from type + E_TypeKey type_key = e_type_key_unwrap(cell->eval.irtree.type_key, E_TypeUnwrapFlag_All); + DI_Key dbgi_key = {0}; + String8 base_folder = {0}; { - U64 vaddr = cell->eval.value.u64; - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - U64 voff = ctrl_voff_from_vaddr(module, vaddr); - D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, voff); - String8 file_path = {0}; - TxtPt pt = {0}; - if(lines.first != 0) - { - file_path = lines.first->v.file_path; - pt = lines.first->v.pt; - rd_cmd(RD_CmdKind_FindCodeLocation, - .process = process->handle, - .vaddr = vaddr, - .file_path = file_path, - .cursor = pt); - } + E_DbgInfo *dbg_info = e_dbg_info_from_type_key(type_key); + dbgi_key = dbg_info->dbgi_key; + base_folder = str8_chop_last_slash(dbg_info->name); + } + + // rjf: if this is a vaddr evaluation, then unpack voff/vaddr & switch to module's debug info + U64 vaddr = 0; + U64 voff = cell->eval.value.u64; + D_Entity *process = rd_ctrl_entity_from_eval_space(cell->eval.space); + D_Entity *module = &d_entity_nil; + if(process->kind == D_EntityKind_Process) + { + vaddr = cell->eval.value.u64; + module = d_module_from_process_vaddr(process, vaddr); + voff = d_voff_from_vaddr(module, vaddr); + dbgi_key = d_dbgi_key_from_module(module); + base_folder = str8_chop_last_slash(module->string); + } + + // rjf: voff * debug info -> lines + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, voff); + + // rjf: snap to line + if(lines.first != 0) + { + String8 file_path = lines.first->v.file_path; + TxtPt pt = lines.first->v.pt; + rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = file_path, .cursor = pt, .vaddr = vaddr, + .process = process->handle, + .module = module->handle, + .dbgi_key = dbgi_key); } } @@ -4361,7 +4569,7 @@ rd_view_ui(Rng2F32 rect) U64 value = e_value_from_string(loc.expr).u64; rd_cmd(RD_CmdKind_FindCodeLocation, .vaddr = value); } - else if(str8_match(cfg->string, str8_lit("target"), 0) && sig.event_flags & OS_Modifier_Ctrl) + else if(str8_match(cfg->string, str8_lit("target"), 0) && sig.event_flags & WM_Modifier_Ctrl) { rd_cmd(RD_CmdKind_EnableCfg, .cfg = cfg->id); } @@ -4372,16 +4580,22 @@ rd_view_ui(Rng2F32 rect) } // rjf: can't edit, but has thread? -> select - else if(cell_info.entity->kind == CTRL_EntityKind_Thread) + else if(cell_info.entity->kind == D_EntityKind_Thread) { rd_cmd(RD_CmdKind_SelectThread, .thread = cell_info.entity->handle); } // rjf: other cases, but this watch window is floating, and this has a cfg/entity? -> push query - else if(view_is_floating && (cell_info.entity != &ctrl_entity_nil || cell_info.cfg != &cfg_nil_node)) + else if(view_is_floating && (cell_info.entity != &d_entity_nil || cell_info.cfg != &cfg_nil_node)) { rd_cmd(RD_CmdKind_PushQuery, .expr = e_full_expr_string_from_key(scratch.arena, cell->eval.key)); } + + // rjf: is file eval? -> switch to file + else if(cell_info.file_path.size != 0) + { + rd_cmd(RD_CmdKind_FindCodeLocation, .cfg = 0, .file_path = cell_info.file_path, .cursor = txt_pt(0, 0)); + } } // rjf: hovering with inheritance string -> show tooltip @@ -4465,6 +4679,14 @@ rd_view_ui(Rng2F32 rect) } } + //////////////////////// + //- rjf: fill registers + // + if(cfg_node_child_from_string(view, str8_lit("lister")) == &cfg_nil_node) + { + rd_regs()->expr = e_full_expr_string_from_key(rd_frame_arena(), selected_eval.key); + } + ////////////////////////////// //- rjf: general table-wide press logic // @@ -4668,6 +4890,30 @@ rd_view_setting_f32_from_name(String8 name) return result; } +internal U64 +rd_view_setting_addr_from_name(String8 name) +{ + U64 result = 0; + String8 string = rd_view_setting_from_name(name); + E_Eval eval = e_eval_from_string(string); + E_TypeKey type_key = e_type_key_unwrap(eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative); + E_TypeKind type_kind = e_type_kind_from_key(type_key); + if(eval.irtree.mode == E_Mode_Offset && e_space_match(e_base_ctx->thread_reg_space, eval.space)) + { + E_Eval value_eval = e_value_eval_from_eval(eval); + result = value_eval.value.u64; + } + else if(eval.irtree.mode == E_Mode_Offset && !e_type_kind_is_pointer_or_ref(type_kind)) + { + result = eval.value.u64; + } + else + { + result = e_value_eval_from_eval(eval).value.u64; + } + return result; +} + //- rjf: evaluation & tag (a view's 'call') parameter extraction internal Rng1U64 @@ -4700,11 +4946,11 @@ internal Arch rd_arch_from_eval(E_Eval eval) { // rjf: try implicitly from either `eval` itself, or from context - CTRL_Entity *ctrl_entity = rd_ctrl_entity_from_eval_space(eval.space); - CTRL_Entity *process = ctrl_process_from_entity(ctrl_entity); - if(process == &ctrl_entity_nil) + D_Entity *ctrl_entity = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *process = d_process_from_entity(ctrl_entity); + if(process == &d_entity_nil) { - process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process); + process = d_entity_from_handle(rd_regs()->process); } Arch arch = process->arch; if(arch == Arch_Null) @@ -4821,7 +5067,17 @@ rd_store_view_paramf(String8 key, char *fmt, ...) internal String8 rd_push_window_title(Arena *arena) { - String8 result = push_str8f(arena, "%S - %s", str8_skip_last_slash(rd_state->project_path), BUILD_TITLE " (" BUILD_VERSION_STRING_LITERAL " " BUILD_RELEASE_PHASE_STRING_LITERAL ")"); + CFG_Node *root = cfg_node_root(); + CFG_Node *project = cfg_node_child_from_string(root, str8_lit("project")); + CFG_Node *name = cfg_node_child_from_string(project, str8_lit("name")); + String8 project_name = name->first->string; + if(project_name.size == 0) + { + String8 prof_path = rd_state->project_path; + prof_path = str8_chop_last_dot(prof_path); + project_name = str8_skip_last_slash(prof_path); + } + String8 result = push_str8f(arena, "%S%s%s", project_name, project_name.size != 0 ? " - " : "", BUILD_TITLE " (" BUILD_VERSION_STRING_LITERAL " " BUILD_RELEASE_PHASE_STRING_LITERAL ")"); return result; } @@ -4879,7 +5135,7 @@ rd_window_state_from_cfg(CFG_Node *cfg) B32 has_pos = 0; Vec2F32 pos = {0}; Vec2F32 size = {0}; - OS_Handle preferred_monitor = {0}; + WM_Monitor preferred_monitor = {0}; { CFG_Node *pos_cfg = cfg_node_child_from_string(window_cfg, str8_lit("pos")); has_pos = (pos_cfg != &cfg_nil_node); @@ -4889,10 +5145,10 @@ rd_window_state_from_cfg(CFG_Node *cfg) pos.y = (F32)f64_from_str8(pos_cfg->first->next->string); size.x = (F32)f64_from_str8(size_cfg->first->string); size.y = (F32)f64_from_str8(size_cfg->first->next->string); - OS_HandleArray monitors = os_push_monitors_array(scratch.arena); + WM_MonitorArray monitors = wm_push_monitors_array(scratch.arena); for EachIndex(idx, monitors.count) { - String8 monitor_name = os_name_from_monitor(scratch.arena, monitors.v[idx]); + String8 monitor_name = wm_name_from_monitor(scratch.arena, monitors.v[idx]); if(str8_match(monitor_name, monitor_cfg->first->string, StringMatchFlag_CaseInsensitive)) { preferred_monitor = monitors.v[idx]; @@ -4918,7 +5174,7 @@ rd_window_state_from_cfg(CFG_Node *cfg) ws->arena = arena_alloc(); { String8 title = rd_push_window_title(scratch.arena); - ws->os = os_window_open(r2f32p(pos.x, pos.y, pos.x+size.x, pos.y+size.y), (!has_pos*OS_WindowFlag_UseDefaultPosition)|OS_WindowFlag_CustomBorder, title); + ws->os = wm_window_open(r2f32p(pos.x, pos.y, pos.x+size.x, pos.y+size.y), (!has_pos*WM_WindowFlag_UseDefaultPosition)|WM_WindowFlag_CustomBorder, title); } ws->r = r_window_equip(ws->os); ws->ui = ui_state_alloc(); @@ -4926,19 +5182,19 @@ rd_window_state_from_cfg(CFG_Node *cfg) ws->query_arena = arena_alloc(); ws->hover_eval_arena = arena_alloc(); ws->autocomp_arena = arena_alloc(); - ws->last_dpi = os_dpi_from_window(ws->os); - OS_Handle zero_monitor = {0}; - if(!os_handle_match(zero_monitor, preferred_monitor)) + ws->last_dpi = wm_dpi_from_window(ws->os); + WM_Monitor zero_monitor = {0}; + if(!wm_monitor_match(zero_monitor, preferred_monitor)) { - os_window_set_monitor(ws->os, preferred_monitor); + wm_window_set_monitor(ws->os, preferred_monitor); } if(cfg_node_child_from_string(window_cfg, str8_lit("fullscreen")) != &cfg_nil_node) { - os_window_set_fullscreen(ws->os, 1); + wm_window_set_fullscreen(ws->os, 1); } if(cfg_node_child_from_string(window_cfg, str8_lit("maximized")) != &cfg_nil_node) { - os_window_set_maximized(ws->os, 1); + wm_window_set_maximized(ws->os, 1); } // rjf: hook up window links @@ -4963,7 +5219,7 @@ rd_window_state_from_cfg(CFG_Node *cfg) } internal RD_WindowState * -rd_window_state_from_os_handle(OS_Handle os) +rd_window_state_from_os_handle(WM_Window os) { RD_WindowState *ws = &rd_nil_window_state; { @@ -4971,7 +5227,7 @@ rd_window_state_from_os_handle(OS_Handle os) w != &rd_nil_window_state; w = w->order_next) { - if(os_handle_match(w->os, os)) + if(wm_window_match(w->os, os)) { ws = w; break; @@ -4997,7 +5253,7 @@ rd_window_frame(void) CFG_Node *window = cfg_node_from_id(rd_regs()->window); RD_WindowState *ws = rd_window_state_from_cfg(cfg_node_from_id(rd_regs()->window)); CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, window); - B32 window_is_focused = (os_window_is_focused(ws->os) || ws->window_temporarily_focused_ipc); + B32 window_is_focused = (wm_window_is_focused(ws->os) || ws->window_temporarily_focused_ipc); B32 popup_is_open = (rd_state->popup_active); B32 query_is_open = (ws->query_is_active); U64 hover_eval_open_delay_us = 400000; @@ -5009,6 +5265,7 @@ rd_window_frame(void) if(!window_is_focused || popup_is_open) { ws->menu_bar_key_held = 0; + ws->menu_bar_focus_press_started = 0; } ws->window_temporarily_focused_ipc = 0; ui_select_state(ws->ui); @@ -5200,9 +5457,9 @@ rd_window_frame(void) // { Temp scratch = scratch_begin(0, 0); - B32 is_fullscreen = os_window_is_fullscreen(ws->os); - B32 is_maximized = os_window_is_maximized(ws->os); - B32 is_minimized = os_window_is_minimized(ws->os); + B32 is_fullscreen = wm_window_is_fullscreen(ws->os); + B32 is_maximized = wm_window_is_maximized(ws->os); + B32 is_minimized = wm_window_is_minimized(ws->os); if(is_fullscreen) { cfg_node_child_from_string_or_alloc(rd_state->cfg, window, str8_lit("fullscreen")); @@ -5221,7 +5478,7 @@ rd_window_frame(void) } //- rjf: DPI changes -> xform font size / window size - F32 dpi = os_dpi_from_window(ws->os); + F32 dpi = wm_dpi_from_window(ws->os); if(dpi != ws->last_dpi) { fnt_reset(); @@ -5234,7 +5491,7 @@ rd_window_frame(void) } //- rjf: commit position - Rng2F32 window_rect = os_rect_from_window(ws->os); + Rng2F32 window_rect = wm_rect_from_window(ws->os); if(!is_fullscreen && !is_maximized && !is_minimized) { Vec2F32 pos = window_rect.p0; @@ -5287,8 +5544,8 @@ rd_window_frame(void) //- rjf: commit monitor if(!is_minimized) { - OS_Handle monitor = os_monitor_from_window(ws->os); - String8 monitor_name = os_name_from_monitor(scratch.arena, monitor); + WM_Monitor monitor = wm_monitor_from_window(ws->os); + String8 monitor_name = wm_name_from_monitor(scratch.arena, monitor); CFG_Node *monitor_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, window, str8_lit("monitor")); if(!str8_match(monitor_root->first->string, monitor_name, 0)) { @@ -5364,13 +5621,13 @@ rd_window_frame(void) //////////////////////////// //- rjf: @window_ui_part calculate top-level rectangles/sizes // - Rng2F32 window_rect = os_client_rect_from_window(ws->os); + Rng2F32 window_rect = wm_client_rect_from_window(ws->os); Vec2F32 window_rect_dim = dim_2f32(window_rect); F32 top_bar_dim_px = floor_f32(ui_top_font_size()*3.f); Rng2F32 top_bar_rect = r2f32p(window_rect.x0, window_rect.y0, window_rect.x0+window_rect_dim.x+1, window_rect.y0+top_bar_dim_px); Rng2F32 bottom_bar_rect = r2f32p(window_rect.x0, window_rect_dim.y - top_bar_dim_px, window_rect.x0+window_rect_dim.x, window_rect.y0+window_rect_dim.y); Rng2F32 content_rect = r2f32p(window_rect.x0, top_bar_rect.y1, window_rect.x0+window_rect_dim.x, bottom_bar_rect.y0); - F32 window_edge_px = os_dpi_from_window(ws->os)*0.035f; + F32 window_edge_px = wm_dpi_from_window(ws->os)*0.035f; content_rect = pad_2f32(content_rect, -window_edge_px); //////////////////////////// @@ -5393,7 +5650,7 @@ rd_window_frame(void) Temp scratch = scratch_begin(0, 0); RD_RegSlot slot = ((rd_state->drag_drop_regs_slot != RD_RegSlot_Null && rd_drag_is_active()) ? rd_state->drag_drop_regs_slot : rd_state->hover_regs_slot); RD_Regs *regs = (((rd_state->drag_drop_regs_slot != RD_RegSlot_Null && rd_drag_is_active()) ? rd_state->drag_drop_regs : rd_state->hover_regs)); - CTRL_Entity *ctrl_entity = &ctrl_entity_nil; + D_Entity *ctrl_entity = &d_entity_nil; ui_state->tooltip_anchor_key = regs->ui_key; ui_state->tooltip_can_overflow_window = rd_drag_is_active(); switch(slot) @@ -5412,7 +5669,7 @@ rd_window_frame(void) { UI_Box *box = ui_build_box_from_key(UI_BoxFlag_DrawText, ui_key_zero()); ui_box_equip_display_fstrs(box, &fstrs); - rd_cmd_binding_buttons(cmd_name, str8_zero(), 0); + rd_cmd_binding_buttons(cmd_name, str8_zero(), 4, RD_CmdBindingButtonFlag_NoEdit); } }break; @@ -5422,7 +5679,7 @@ rd_window_frame(void) case RD_RegSlot_FilePath: UI_Tooltip { - FileProperties props = os_properties_from_file_path(regs->file_path); + FileProperties props = properties_from_file_path(regs->file_path); ui_set_next_pref_width(ui_children_sum(1)); UI_Row { @@ -5452,11 +5709,11 @@ rd_window_frame(void) //////////////////////// //- rjf: control entity tooltips // - case RD_RegSlot_Machine: {ctrl_entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, regs->machine); }goto ctrl_entity_tooltip; - case RD_RegSlot_Process: {ctrl_entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, regs->process); }goto ctrl_entity_tooltip; - case RD_RegSlot_Module: {ctrl_entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, regs->module); }goto ctrl_entity_tooltip; - case RD_RegSlot_Thread: {ctrl_entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, regs->thread); }goto ctrl_entity_tooltip; - case RD_RegSlot_CtrlEntity:{ctrl_entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, regs->ctrl_entity); }goto ctrl_entity_tooltip; + case RD_RegSlot_Machine: {ctrl_entity = d_entity_from_handle(regs->machine); }goto ctrl_entity_tooltip; + case RD_RegSlot_Process: {ctrl_entity = d_entity_from_handle(regs->process); }goto ctrl_entity_tooltip; + case RD_RegSlot_Module: {ctrl_entity = d_entity_from_handle(regs->module); }goto ctrl_entity_tooltip; + case RD_RegSlot_Thread: {ctrl_entity = d_entity_from_handle(regs->thread); }goto ctrl_entity_tooltip; + case RD_RegSlot_CtrlEntity:{ctrl_entity = d_entity_from_handle(regs->ctrl_entity); }goto ctrl_entity_tooltip; ctrl_entity_tooltip:; UI_Tooltip { @@ -5476,8 +5733,8 @@ rd_window_frame(void) { UI_TagF("weak") UI_FlagsAdd(UI_BoxFlag_DrawBorder) ui_label(arch_str); ui_spacer(ui_em(0.5f, 1.f)); - if(ctrl_entity->kind == CTRL_EntityKind_Thread || - ctrl_entity->kind == CTRL_EntityKind_Process) + if(ctrl_entity->kind == D_EntityKind_Thread || + ctrl_entity->kind == D_EntityKind_Process) { UI_TagF("weak") UI_FlagsAdd(UI_BoxFlag_DrawBorder) ui_labelf("ID: %i", (U32)ctrl_entity->id); } @@ -5485,11 +5742,11 @@ rd_window_frame(void) } // rjf: debug info status - if(ctrl_entity->kind == CTRL_EntityKind_Module) UI_TagF("weak") + if(ctrl_entity->kind == D_EntityKind_Module) UI_TagF("weak") { Access *access = access_open(); - CTRL_Entity *dbg_info_entity = ctrl_entity_child_from_kind(ctrl_entity, CTRL_EntityKind_DebugInfoPath); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(ctrl_entity); + D_Entity *dbg_info_entity = d_entity_child_from_kind(ctrl_entity, D_EntityKind_DebugInfoPath); + DI_Key dbgi_key = d_dbgi_key_from_module(ctrl_entity); RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); if(rdi->raw_data_size != 0) { @@ -5497,33 +5754,33 @@ rd_window_frame(void) } else if(dbg_info_entity->string.size != 0) { - ui_labelf("Debug information not found at %S", dbg_info_entity->string); + ui_labelf("Debug info not found at %S", dbg_info_entity->string); } else if(dbg_info_entity->string.size == 0) { - ui_labelf("Debug information location not found in module file"); + ui_labelf("Debug info location not found in module file"); } access_close(access); } // rjf: unwind - if(ctrl_entity->kind == CTRL_EntityKind_Thread) RD_Font(RD_FontSlot_Code) + if(ctrl_entity->kind == D_EntityKind_Thread) RD_Font(RD_FontSlot_Code) { Access *access = access_open(); Vec4F32 code_color = ui_color_from_name(str8_lit("code_default")); Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(ctrl_entity, CTRL_EntityKind_Process); - B32 call_stack_high_priority = ctrl_handle_match(ctrl_entity->handle, rd_base_regs()->thread); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, ctrl_entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + D_Entity *process = d_entity_ancestor_from_kind(ctrl_entity, D_EntityKind_Process); + B32 call_stack_high_priority = d_handle_match(ctrl_entity->handle, rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(access, ctrl_entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); if(call_stack.frames_count != 0) { ui_spacer(ui_em(1.5f, 1.f)); } - EV_StringParams string_params = {EV_StringFlag_ReadOnlyDisplayRules, .radix = 16}; - String8 thread_handle_string = ctrl_string_from_handle(scratch.arena, ctrl_entity->handle); + EV_StringParams string_params = {EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 16}; + String8 thread_handle_string = d_string_from_handle(scratch.arena, ctrl_entity->handle); for(U64 idx = 0; idx < 16; idx += 1) { - E_Eval rip_eval = e_eval_from_stringf("query:control.%S.call_stack[%I64u]", thread_handle_string, idx); + E_Eval rip_eval = e_eval_from_stringf("query:control.%S.call_stack[%I64u].address", thread_handle_string, idx); if(rip_eval.irtree.mode != E_Mode_Value) { break; @@ -5549,7 +5806,7 @@ rd_window_frame(void) E_Eval eval = e_eval_from_string(rd_state->drag_drop_regs->expr); if(eval.irtree.mode != E_Mode_Null) { - EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10}; + EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 10}; String8 value_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, ui_top_font(), ui_top_font_size(), ui_top_font_size()*20.f, eval); if(value_string.size != 0) { @@ -5678,13 +5935,14 @@ rd_window_frame(void) ID(panel); ID(view); #undef ID -#define Handle(name) ui_labelf("%s: [0x%I64x, 0x%I64x]", #name, (regs->name).machine_id, (regs->name).dmn_handle.u64[0]) +#define Handle(name) ui_labelf("%s: [0x%x, 0x%x, 0x%I64x]", #name, (regs->name).machine_id, (regs->name).controller_kind, (regs->name).entity_id) Handle(machine); Handle(process); Handle(module); Handle(thread); #undef Handle ui_labelf("file_path: \"%S\"", regs->file_path); + ui_labelf("expr: \"%S\"", regs->expr); ui_labelf("cursor: (L:%I64d, C:%I64d)", regs->cursor.line, regs->cursor.column); ui_labelf("mark: (L:%I64d, C:%I64d)", regs->mark.line, regs->mark.column); ui_labelf("unwind_count: %I64u", regs->unwind_count); @@ -5693,6 +5951,7 @@ rd_window_frame(void) ui_labelf("lang_kind: '%S'", txt_extension_from_lang_kind(regs->lang_kind)); ui_labelf("vaddr_range: [0x%I64x, 0x%I64x)", regs->vaddr_range.min, regs->vaddr_range.max); ui_labelf("voff_range: [0x%I64x, 0x%I64x)", regs->voff_range.min, regs->voff_range.max); + ui_labelf("prefer_disasm: %i", regs->prefer_disasm); } ui_divider(ui_em(1.f, 1.f)); @@ -5721,8 +5980,8 @@ rd_window_frame(void) avg_ui_hash_chain_length = chain_length_sum / chain_count; } ui_labelf("Target Hz: %.2f", 1.f/rd_state->frame_dt); - ui_labelf("Ctrl Run Index: %I64u", ctrl_run_gen()); - ui_labelf("Ctrl Mem Gen Index: %I64u", ctrl_mem_gen()); + ui_labelf("Ctrl Run Index: %I64u", d_run_gen()); + ui_labelf("Ctrl Mem Gen Index: %I64u", d_mem_gen()); ui_labelf("Window %p", w); ui_set_next_pref_width(ui_children_sum(1)); ui_set_next_pref_height(ui_children_sum(1)); @@ -5942,7 +6201,13 @@ rd_window_frame(void) } first = 0; UI_Key arg_key = ui_key_from_stringf(ui_active_seed_key(), "###arg_%p", child); - DR_FStrList arg_fstrs = rd_fstrs_from_code_string(scratch.arena, 1.f, 0, code_default, child->string); + String8 arg_string = child->string; + B32 is_optional = md_node_has_tag(child, str8_lit("optional"), 0); + if(is_optional) + { + arg_string = str8f(scratch.arena, "[%S=...]", child->string); + } + DR_FStrList arg_fstrs = rd_fstrs_from_code_string(scratch.arena, 1.f, 0, code_default, arg_string); if(child == ws->autocomp_cursor_info.arg_schema) { ui_set_next_flags(UI_BoxFlag_DrawSideBottom); @@ -5967,8 +6232,13 @@ rd_window_frame(void) ui_spacer(ui_em(0.5f, 1.f)); UI_TagF("weak") ui_label(display_name); } + if(is_optional) + { + ui_spacer(ui_em(0.5f, 1.f)); + UI_TagF("weak") ui_labelf("(Optional)"); + } } - UI_TagF("weak") ui_label(desc); + UI_TagF("weak") rd_label(desc); } } } @@ -6067,6 +6337,12 @@ rd_window_frame(void) { B32 build_hover_eval = (hover_eval_is_open && !rd_drag_is_active()); + // rjf: reset hover eval timer if it's "open" but we aren't going to build it + if(!build_hover_eval && hover_eval_is_open) + { + ws->hover_eval_firstt_us = rd_state->time_in_us; + } + // rjf: disable hover eval if hovered view is actively scrolling if(hover_eval_is_open) { @@ -6108,8 +6384,8 @@ rd_window_frame(void) build_hover_eval = 0; } else if((hover_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity || - hover_eval.space.kind == CTRL_EvalSpaceKind_Entity) && - rd_ctrl_entity_from_eval_space(hover_eval.space) == &ctrl_entity_nil) + hover_eval.space.kind == D_EvalSpaceKind_Entity) && + rd_ctrl_entity_from_eval_space(hover_eval.space) == &d_entity_nil) { build_hover_eval = 0; } @@ -6209,8 +6485,8 @@ rd_window_frame(void) rd_cmd(RD_CmdKind_CancelQuery); } else if((eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity || - eval.space.kind == CTRL_EvalSpaceKind_Entity) && - rd_ctrl_entity_from_eval_space(eval.space) == &ctrl_entity_nil) + eval.space.kind == D_EvalSpaceKind_Entity) && + rd_ctrl_entity_from_eval_space(eval.space) == &d_entity_nil) { query_is_open = 0; rd_cmd(RD_CmdKind_CancelQuery); @@ -6225,6 +6501,7 @@ rd_window_frame(void) CFG_Node *view = cfg_node_child_from_string_or_alloc(rd_state->cfg, root, str8_lit("watch")); CFG_Node *query = cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("query")); B32 is_lister = (cfg_node_child_from_string(view, str8_lit("lister")) != &cfg_nil_node); + B32 is_small = (cfg_node_child_from_string(view, str8_lit("small")) != &cfg_nil_node); B32 root_is_explicit = (cfg_node_child_from_string(view, str8_lit("explicit_root")) != &cfg_nil_node); RD_ViewState *vs = rd_view_state_from_cfg(view); @@ -6295,6 +6572,16 @@ rd_window_frame(void) EV_BlockTree predicted_block_tree = ev_block_tree_from_eval(scratch.arena, rd_view_eval_view(), rd_view_query_input(), query_eval); F32 query_width_px = floor_f32(content_rect_dim.x * 0.35f); F32 max_query_height_px = content_rect_dim.y*0.8f; + if(is_small) + { + query_width_px = floor_f32(content_rect_dim.x * 0.15f); + max_query_height_px = content_rect_dim.y*0.3f; + } + if(!ui_key_match(ui_key_zero(), ws->query_regs->ui_key)) + { + query_width_px = is_small ? (ui_top_font_size()*30.f) : (ui_top_font_size()*60.f); + max_query_height_px = is_small ? (ui_top_font_size()*40.f) : (ui_top_font_size()*80.f); + } F32 query_height_px = max_query_height_px; if(size_query_by_expr_eval) { @@ -6317,7 +6604,7 @@ rd_window_frame(void) { rect.x0 = anchor_box->rect.x0 + ws->query_regs->off_px.x; rect.y0 = anchor_box->rect.y1 + ws->query_regs->off_px.y; - rect.x1 = rect.x0 + ui_top_font_size()*60.f; + rect.x1 = rect.x0 + query_width_px; rect.y1 = rect.y0 + query_height_px; } } @@ -6353,10 +6640,11 @@ rd_window_frame(void) for(FloatingViewTask *t = first_floating_view_task; t != 0; t = t->next) { // rjf: unpack - CFG_Node *view = t->view; + CFG_Node *view = t->view; Rng2F32 rect = t->rect; B32 is_focused = t->is_focused; B32 is_anchored = t->is_anchored; + B32 is_lister = (cfg_node_child_from_string(view, str8_lit("lister")) != &cfg_nil_node); B32 only_secondary_navigation = t->only_secondary_navigation; F32 open_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "floating_view_open_%p", view), 1.f, .rate = is_anchored ? fast_open_rate : slow_open_rate, @@ -6367,7 +6655,7 @@ rd_window_frame(void) if(t->force_inside_window_x || t->force_inside_window_y) { B32 axis_mask[] = {t->force_inside_window_x, t->force_inside_window_y}; - Rng2F32 window_rect = os_client_rect_from_window(ws->os); + Rng2F32 window_rect = wm_client_rect_from_window(ws->os); for EachEnumVal(Axis2, axis) { if(!axis_mask[axis]) { continue; } @@ -6405,12 +6693,15 @@ rd_window_frame(void) UI_PermissionFlag_KeyboardSecondary|UI_PermissionFlag_Clicks|UI_PermissionFlag_ScrollX|UI_PermissionFlag_ScrollY : UI_PermissionFlag_All) { + B32 has_footer = (is_lister && !is_anchored); + F32 container_corner_radius_px = has_footer ? ui_top_font_size()*1.f : ui_top_font_size()*0.15f; + // rjf: build top-level container box UI_Box *container = &ui_nil_box; UI_Rect(rect) UI_ChildLayoutAxis(Axis2_Y) UI_Squish(0.1f-0.1f*open_t) UI_Transparency(1.f-open_t) - UI_CornerRadius(ui_top_font_size()*0.25f) + UI_CornerRadius(container_corner_radius_px) { container = ui_build_box_from_stringf(UI_BoxFlag_Clickable| UI_BoxFlag_DrawBorder| @@ -6428,7 +6719,7 @@ rd_window_frame(void) for(UI_Event *evt = 0; ui_next_event(&evt);) { if(evt->kind == UI_EventKind_Press && - evt->key == OS_Key_LeftMouseButton) + evt->key == WM_Key_LeftMouseButton) { if(contains_2f32(container->rect, evt->pos)) { @@ -6450,18 +6741,52 @@ rd_window_frame(void) } // rjf: build contents + F32 total_height_px = dim_2f32(rect).y; + F32 footer_height_px = 0; + if(has_footer) + { + footer_height_px = ui_top_font_size()*4.f; + } UI_Parent(container) UI_Focus(is_focused ? UI_FocusKind_Null : UI_FocusKind_Off) { ui_set_next_pref_width(ui_pct(1, 0)); - ui_set_next_pref_height(ui_pct(1, 0)); + ui_set_next_pref_height(ui_px(total_height_px - footer_height_px, 1)); ui_set_next_child_layout_axis(Axis2_Y); - UI_Box *view_contents_container = ui_build_box_from_stringf(UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_Clip, "###view_contents_container"); + UI_Box *view_contents_container = ui_build_box_from_stringf(UI_BoxFlag_Clip, "###view_contents_container"); UI_Parent(view_contents_container) UI_WidthFill { rd_view_ui(rect); } } + // rjf: build footer + if(is_lister && !is_anchored) UI_Parent(container) UI_WidthFill UI_HeightFill UI_Focus(UI_FocusKind_Off) + { + ui_set_next_flags(UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBorder); + UI_Column UI_Padding(ui_em(1, 1)) + { + UI_Row UI_Padding(ui_pct(1, 0)) RD_Font(RD_FontSlot_Main) UI_FontSize(ui_top_font_size()*0.8f) UI_TagF("alt") + UI_PrefWidth(ui_text_dim(1, 1)) UI_TextAlignment(UI_TextAlign_Center) + { + rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_MoveUp].string, s(""), 1, RD_CmdBindingButtonFlag_NoEdit); + ui_spacer(ui_em(1.f, 1.f)); + ui_label(s("/")); + rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_MoveDown].string, s(""), 1, RD_CmdBindingButtonFlag_NoEdit); + ui_label(s("to navigate")); + + ui_spacer(ui_em(1, 1)); + + rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_Accept].string, s(""), 1, RD_CmdBindingButtonFlag_NoEdit); + ui_label(s("to use")); + + ui_spacer(ui_em(1, 1)); + + rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_Cancel].string, s(""), 1, RD_CmdBindingButtonFlag_NoEdit); + ui_label(s("to cancel")); + } + } + } + // rjf: build loading overlay { RD_ViewState *vs = rd_view_state_from_cfg(view); @@ -6576,9 +6901,9 @@ rd_window_frame(void) // ProfScope("build top bar") { - os_window_clear_custom_border_data(ws->os); - os_window_push_custom_edges(ws->os, window_edge_px); - os_window_push_custom_title_bar(ws->os, dim_2f32(top_bar_rect).y); + wm_window_clear_custom_border_data(ws->os); + wm_window_push_custom_edges(ws->os, window_edge_px); + wm_window_push_custom_title_bar(ws->os, dim_2f32(top_bar_rect).y); ui_set_next_flags(UI_BoxFlag_DefaultFocusNav|UI_BoxFlag_DisableFocusOverlay); UI_Focus((ws->menu_bar_focused && window_is_focused && !ui_any_ctx_menu_is_open()) ? UI_FocusKind_On : UI_FocusKind_Null) UI_TagF("menu_bar") @@ -6621,33 +6946,37 @@ rd_window_frame(void) String8 cmds[] = { rd_cmd_kind_info_table[RD_CmdKind_Open].string, - rd_cmd_kind_info_table[RD_CmdKind_Switch].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string, - rd_cmd_kind_info_table[RD_CmdKind_NewUser].string, + rd_cmd_kind_info_table[RD_CmdKind_OpenSourceFileFromDebugInfo].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_NewProject].string, - rd_cmd_kind_info_table[RD_CmdKind_OpenUser].string, rd_cmd_kind_info_table[RD_CmdKind_OpenProject].string, rd_cmd_kind_info_table[RD_CmdKind_OpenRecentProject].string, - rd_cmd_kind_info_table[RD_CmdKind_SaveUser].string, rd_cmd_kind_info_table[RD_CmdKind_SaveProject].string, - rd_cmd_kind_info_table[RD_CmdKind_UserSettings].string, rd_cmd_kind_info_table[RD_CmdKind_ProjectSettings].string, + {0},//- + rd_cmd_kind_info_table[RD_CmdKind_NewUser].string, + rd_cmd_kind_info_table[RD_CmdKind_OpenUser].string, + rd_cmd_kind_info_table[RD_CmdKind_SaveUser].string, + rd_cmd_kind_info_table[RD_CmdKind_UserSettings].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_Exit].string, }; U32 codepoints[] = { 'o', 'i', - 'n', - 'w', + 0,//- 'j', - 'u', 'p', 'r', - 's', 'a', - 'e', 't', + 0,//- + 'w', + 'u', + 's', + 'e', + 0,//- 'x', }; Assert(ArrayCount(codepoints) == ArrayCount(cmds)); @@ -6663,6 +6992,7 @@ rd_window_frame(void) rd_cmd_kind_info_table[RD_CmdKind_OpenWindow].string, rd_cmd_kind_info_table[RD_CmdKind_CloseWindow].string, rd_cmd_kind_info_table[RD_CmdKind_ToggleFullscreen].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_WindowSettings].string, }; U32 codepoints[] = @@ -6670,6 +7000,7 @@ rd_window_frame(void) 'w', 'c', 'f', + 0,//- 's', }; Assert(ArrayCount(codepoints) == ArrayCount(cmds)); @@ -6687,11 +7018,13 @@ rd_window_frame(void) rd_cmd_kind_info_table[RD_CmdKind_NewPanelRight].string, rd_cmd_kind_info_table[RD_CmdKind_NewPanelLeft].string, rd_cmd_kind_info_table[RD_CmdKind_ClosePanel].string, - rd_cmd_kind_info_table[RD_CmdKind_RotatePanelColumns].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_NextPanel].string, rd_cmd_kind_info_table[RD_CmdKind_PrevPanel].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_TabBarTop].string, rd_cmd_kind_info_table[RD_CmdKind_TabBarBottom].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_ResetToDefaultPanels].string, rd_cmd_kind_info_table[RD_CmdKind_ResetToCompactPanels].string, rd_cmd_kind_info_table[RD_CmdKind_ResetToSimplePanels].string, @@ -6702,12 +7035,14 @@ rd_window_frame(void) 'd', 'r', 'l', - 'x', - 'c', + 'o', + 0,//- 'n', 'p', + 0,//- 0, 0, + 0,//- 0, 0, 0, @@ -6725,10 +7060,13 @@ rd_window_frame(void) rd_cmd_kind_info_table[RD_CmdKind_OpenTab].string, rd_cmd_kind_info_table[RD_CmdKind_CloseTab].string, rd_cmd_kind_info_table[RD_CmdKind_DuplicateTab].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_MoveTabLeft].string, rd_cmd_kind_info_table[RD_CmdKind_MoveTabRight].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_NextTab].string, rd_cmd_kind_info_table[RD_CmdKind_PrevTab].string, + {0},//- rd_cmd_kind_info_table[RD_CmdKind_TabSettings].string, }; U32 codepoints[] = @@ -6736,10 +7074,13 @@ rd_window_frame(void) 'o', 'c', 'd', + 0,//- 'l', 'r', + 0,//- 'n', 'p', + 0,//- 's', }; Assert(ArrayCount(codepoints) == ArrayCount(cmds)); @@ -6778,9 +7119,11 @@ rd_window_frame(void) rd_cmd_kind_info_table[D_CmdKind_KillAll].string, rd_cmd_kind_info_table[D_CmdKind_Restart].string, rd_cmd_kind_info_table[D_CmdKind_Halt].string, + {0},//- rd_cmd_kind_info_table[D_CmdKind_StepInto].string, rd_cmd_kind_info_table[D_CmdKind_StepOver].string, rd_cmd_kind_info_table[D_CmdKind_StepOut].string, + {0},//- rd_cmd_kind_info_table[D_CmdKind_Attach].string, rd_cmd_kind_info_table[D_CmdKind_Detach].string, }; @@ -6790,9 +7133,11 @@ rd_window_frame(void) 'k', 's', 'h', + 0,//- 'i', 'o', 't', + 0,//- 'a', 'd', }; @@ -6816,26 +7161,47 @@ rd_window_frame(void) ui_image(texture, R_Tex2DSampleKind_Linear, r2f32p(0, 0, texture_dim.x, texture_dim.y), v4f32(1, 1, 1, 1), 0, str8_lit("")); } ui_spacer(ui_em(1.f, 1.f)); - UI_Row - UI_PrefWidth(ui_text_dim(10, 1)) + CFG_KeyMapNodePtrList key_map_nodes = cfg_key_map_node_ptr_list_from_name(scratch.arena, rd_state->key_map, rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string); + CFG_Binding binding = {0}; + String8 binding_str = {0}; + if(key_map_nodes.first != 0) + { + binding = key_map_nodes.first->v->binding; + binding_str = wm_string_from_modifiers_key(scratch.arena, binding.modifiers, binding.key); + } + UI_TagF(".") + UI_Row UI_TextAlignment(UI_TextAlign_Center) UI_Padding(ui_pct(1, 0)) { - ui_labelf("Search for commands and options by pressing "); - UI_Flags(UI_BoxFlag_DrawBorder) - UI_TextAlignment(UI_TextAlign_Center) - rd_cmd_binding_buttons(rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string, str8_zero(), 1); + UI_Signal sig = {0}; + UI_PrefWidth(ui_children_sum(1)) + UI_Flags(UI_BoxFlag_DrawBorder) + UI_CornerRadius(ui_top_font_size()*0.5f) + sig = ui_buttonf("###open_palette"); + UI_Parent(sig.box) UI_PrefWidth(ui_text_dim(ui_top_font_size()*2.f, 1)) + { + ui_labelf("Search for commands & settings"); + if(binding_str.size != 0) + { + UI_TagF("weak") ui_labelf("(%S)", binding_str); + } + } + if(ui_clicked(sig)) + { + rd_cmd(RD_CmdKind_RunCommand, .cmd_name = rd_cmd_kind_info_table[RD_CmdKind_OpenPalette].string); + } } ui_spacer(ui_em(1.f, 1.f)); UI_TagF("pop") - UI_Row UI_Padding(ui_pct(1, 0)) UI_TextAlignment(UI_TextAlign_Center) UI_PrefWidth(ui_text_dim(10, 1)) + UI_Row UI_Padding(ui_pct(1, 0)) UI_TextAlignment(UI_TextAlign_Center) UI_PrefWidth(ui_text_dim(ui_top_font_size()*2.f, 1)) UI_CornerRadius(ui_top_font_size()*0.5f) { String8 url = str8_lit("https://github.com/EpicGamesExt/raddebugger/issues"); - UI_Signal sig = ui_button(str8_lit("Submit Request, Issue, or Bug Report")); + UI_Signal sig = ui_button(str8_lit("Submit request, issue, or bug report")); if(ui_clicked(sig)) { - os_open_in_browser(url); + wm_open_in_browser(url); } } ui_spacer(ui_em(0.5f, 1.f)); @@ -6849,18 +7215,18 @@ rd_window_frame(void) { String8 name; U32 codepoint; - OS_Key key; + WM_Key key; UI_Key menu_key; } items[] = { - {str8_lit("File"), 'f', OS_Key_F, file_menu_key}, - {str8_lit("Window"), 'w', OS_Key_W, window_menu_key}, - {str8_lit("Panel"), 'p', OS_Key_P, panel_menu_key}, - {str8_lit("Tab"), 'b', OS_Key_V, tab_menu_key}, - {str8_lit("Targets"), 't', OS_Key_T, targets_menu_key}, - {str8_lit("Control"), 'c', OS_Key_C, ctrl_menu_key}, - {str8_lit("Help"), 'h', OS_Key_H, help_menu_key}, + {str8_lit("File"), 'f', WM_Key_F, file_menu_key}, + {str8_lit("Window"), 'w', WM_Key_W, window_menu_key}, + {str8_lit("Panel"), 'p', WM_Key_P, panel_menu_key}, + {str8_lit("Tab"), 'b', WM_Key_V, tab_menu_key}, + {str8_lit("Targets"), 't', WM_Key_T, targets_menu_key}, + {str8_lit("Control"), 'c', WM_Key_C, ctrl_menu_key}, + {str8_lit("Help"), 'h', WM_Key_H, help_menu_key}, }; // rjf: determine if one of the menus is already open @@ -6906,7 +7272,7 @@ rd_window_frame(void) { ui_set_next_fastpath_codepoint(items[idx].codepoint); B32 alt_fastpath_key = 0; - if(rd_setting_b32_from_name(str8_lit("focus_menu_bar_with_alt")) && ui_key_press(OS_Modifier_Alt, items[idx].key)) + if(rd_setting_b32_from_name(str8_lit("focus_menu_bar_with_alt")) && ui_key_press(WM_Modifier_Alt, items[idx].key)) { alt_fastpath_key = 1; } @@ -6915,7 +7281,7 @@ rd_window_frame(void) ui_set_next_flags(UI_BoxFlag_DrawTextFastpathCodepoint); } UI_Signal sig = rd_menu_bar_button(items[idx].name); - os_window_push_custom_title_bar_client_area(ws->os, sig.box->rect); + wm_window_push_custom_title_bar_client_area(ws->os, sig.box->rect); if(menu_open) { if((ui_hovering(sig) && !ui_ctx_menu_is_open(items[idx].menu_key)) || (open_menu_idx_prime == idx && open_menu_idx_prime != open_menu_idx)) @@ -6950,7 +7316,7 @@ rd_window_frame(void) { Temp scratch = scratch_begin(0, 0); CFG_NodePtrList targets = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("target")); - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); B32 can_send_signal = !d_ctrl_targets_running(); typedef struct CenterButtonTask CenterButtonTask; struct CenterButtonTask @@ -6976,7 +7342,7 @@ rd_window_frame(void) { String8 cmd_name = center_button_tasks[idx].cmd_name; UI_Signal sig = ui_button(rd_icon_kind_text_table[rd_icon_kind_from_code_name(cmd_name)]); - os_window_push_custom_title_bar_client_area(ws->os, sig.box->rect); + wm_window_push_custom_title_bar_client_area(ws->os, sig.box->rect); if(ui_hovering(sig)) { RD_RegsScope(.cmd_name = cmd_name, .ui_key = sig.box->key) rd_set_hover_regs(RD_RegSlot_CmdName); @@ -6997,40 +7363,43 @@ rd_window_frame(void) ui_spacer(ui_pct(1, 0)); // rjf: loaded user viz - if(do_user_prof) UI_TagF("pop") + if(0) { - ui_set_next_pref_width(ui_children_sum(1)); - ui_set_next_child_layout_axis(Axis2_X); - UI_Box *user_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable| - UI_BoxFlag_DrawBorder| - UI_BoxFlag_DrawBackground| - UI_BoxFlag_DrawHotEffects| - UI_BoxFlag_DrawActiveEffects, - "###loaded_user_button"); - os_window_push_custom_title_bar_client_area(ws->os, user_box->rect); - UI_Parent(user_box) UI_PrefWidth(ui_text_dim(10, 0)) UI_TextAlignment(UI_TextAlign_Center) + if(do_user_prof) UI_TagF("pop") { - String8 user_path = rd_state->user_path; - user_path = str8_chop_last_dot(user_path); - RD_Font(RD_FontSlot_Icons) - UI_TextRasterFlags(rd_raster_flags_from_slot(RD_FontSlot_Icons)) - ui_label(rd_icon_kind_text_table[RD_IconKind_Person]); - ui_label(str8_skip_last_slash(user_path)); + ui_set_next_pref_width(ui_children_sum(1)); + ui_set_next_child_layout_axis(Axis2_X); + UI_Box *user_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable| + UI_BoxFlag_DrawBorder| + UI_BoxFlag_DrawBackground| + UI_BoxFlag_DrawHotEffects| + UI_BoxFlag_DrawActiveEffects, + "###loaded_user_button"); + wm_window_push_custom_title_bar_client_area(ws->os, user_box->rect); + UI_Parent(user_box) UI_PrefWidth(ui_text_dim(10, 0)) UI_TextAlignment(UI_TextAlign_Center) + { + String8 user_path = rd_state->user_path; + user_path = str8_chop_last_dot(user_path); + RD_Font(RD_FontSlot_Icons) + UI_TextRasterFlags(rd_raster_flags_from_slot(RD_FontSlot_Icons)) + ui_label(rd_icon_kind_text_table[RD_IconKind_Person]); + ui_label(str8_skip_last_slash(user_path)); + } + UI_Signal user_sig = ui_signal_from_box(user_box); + if(ui_clicked(user_sig)) + { + rd_cmd(RD_CmdKind_RunCommand, .cmd_name = rd_cmd_kind_info_table[RD_CmdKind_OpenUser].string); + } } - UI_Signal user_sig = ui_signal_from_box(user_box); - if(ui_clicked(user_sig)) + + if(do_user_prof) { - rd_cmd(RD_CmdKind_RunCommand, .cmd_name = rd_cmd_kind_info_table[RD_CmdKind_OpenUser].string); + ui_spacer(ui_em(0.75f, 0)); } } - if(do_user_prof) - { - ui_spacer(ui_em(0.75f, 0)); - } - // rjf: loaded project viz - if(do_user_prof) UI_TagF("pop") + if(do_user_prof) { ui_set_next_pref_width(ui_children_sum(1)); ui_set_next_child_layout_axis(Axis2_X); @@ -7040,14 +7409,26 @@ rd_window_frame(void) UI_BoxFlag_DrawHotEffects| UI_BoxFlag_DrawActiveEffects, "###loaded_project_button"); - os_window_push_custom_title_bar_client_area(ws->os, prof_box->rect); - UI_Parent(prof_box) UI_PrefWidth(ui_text_dim(10, 0)) UI_TextAlignment(UI_TextAlign_Center) + wm_window_push_custom_title_bar_client_area(ws->os, prof_box->rect); + UI_Parent(prof_box) UI_PrefWidth(ui_text_dim(10, 0)) UI_TextAlignment(UI_TextAlign_Center) UI_Padding(ui_em(0.5f, 1.f)) { - String8 prof_path = rd_state->project_path; - prof_path = str8_chop_last_dot(prof_path); + CFG_Node *root = cfg_node_root(); + CFG_Node *project = cfg_node_child_from_string(root, str8_lit("project")); + CFG_Node *name = cfg_node_child_from_string(project, str8_lit("name")); + String8 project_name = name->first->string; + if(project_name.size == 0) + { + String8 prof_path = rd_state->project_path; + prof_path = str8_chop_last_dot(prof_path); + project_name = str8_skip_last_slash(prof_path); + } + if(project_name.size == 0) + { + project_name = str8_lit("Untitled Project"); + } RD_Font(RD_FontSlot_Icons) ui_label(rd_icon_kind_text_table[RD_IconKind_Briefcase]); - ui_label(str8_skip_last_slash(prof_path)); + ui_label(project_name); } UI_Signal prof_sig = ui_signal_from_box(prof_box); if(ui_clicked(prof_sig)) @@ -7058,7 +7439,7 @@ rd_window_frame(void) if(do_user_prof) { - ui_spacer(ui_em(0.75f, 0)); + // ui_spacer(ui_em(2.f, 0)); } // rjf: close dropdown @@ -7086,7 +7467,7 @@ rd_window_frame(void) UI_FontSize(ui_top_font_size()*0.75f) { min_sig = rd_icon_buttonf(RD_IconKind_WindowMinimize, 0, "##minimize"); - max_sig = rd_icon_buttonf(os_window_is_maximized(ws->os) ? RD_IconKind_WindowRestore : RD_IconKind_Window, 0, "##maximize"); + max_sig = rd_icon_buttonf(wm_window_is_maximized(ws->os) ? RD_IconKind_WindowRestore : RD_IconKind_Window, 0, "##maximize"); } UI_PrefWidth(ui_px(button_dim, 1.f)) UI_TagF("bad_pop") @@ -7095,11 +7476,11 @@ rd_window_frame(void) } if(ui_clicked(min_sig)) { - os_window_set_minimized(ws->os, 1); + wm_window_set_minimized(ws->os, 1); } if(ui_clicked(max_sig)) { - os_window_set_maximized(ws->os, !os_window_is_maximized(ws->os)); + wm_window_set_maximized(ws->os, !wm_window_is_maximized(ws->os)); } if(ui_clicked(cls_sig)) { @@ -7113,9 +7494,9 @@ rd_window_frame(void) rd_cmd(RD_CmdKind_Exit); } } - os_window_push_custom_title_bar_client_area(ws->os, min_sig.box->rect); - os_window_push_custom_title_bar_client_area(ws->os, max_sig.box->rect); - os_window_push_custom_title_bar_client_area(ws->os, pad_2f32(cls_sig.box->rect, 2.f)); + wm_window_push_custom_title_bar_client_area(ws->os, min_sig.box->rect); + wm_window_push_custom_title_bar_client_area(ws->os, max_sig.box->rect); + wm_window_push_custom_title_bar_client_area(ws->os, pad_2f32(cls_sig.box->rect, 2.f)); } } } @@ -7128,7 +7509,7 @@ rd_window_frame(void) { //- rjf: unpack status info B32 is_running = d_ctrl_targets_running() && d_ctrl_last_run_frame_idx() < d_frame_index(); - CTRL_Event stop_event = d_ctrl_last_stop_event(); + D_Event stop_event = d_ctrl_last_stop_event(); String8 tag = str8_lit("pop"); CFG_NodePtrList tasks = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("conversion_task")); CFG_NodePtrList long_running_tasks = {0}; @@ -7155,14 +7536,14 @@ rd_window_frame(void) switch(stop_event.cause) { default: - case CTRL_EventCause_Finished: + case D_EventCause_Finished: { tag = str8_lit("good_pop"); }break; - case CTRL_EventCause_UserBreakpoint: - case CTRL_EventCause_InterruptedByException: - case CTRL_EventCause_InterruptedByTrap: - case CTRL_EventCause_InterruptedByHalt: + case D_EventCause_UserBreakpoint: + case D_EventCause_InterruptedByException: + case D_EventCause_InterruptedByTrap: + case D_EventCause_InterruptedByHalt: { tag = str8_lit("bad_pop"); }break; @@ -7255,6 +7636,29 @@ rd_window_frame(void) ui_label(str8_lit(BUILD_TITLE_STRING_LITERAL)); } + // rjf: update available? + if(rd_state->newer_update_available) + UI_FontSize(ui_top_font_size()*0.85f) + UI_PrefWidth(ui_text_dim(10, 1)) + UI_TextAlignment(UI_TextAlign_Center) + { + DR_FStrList fstrs = {0}; + ui_set_next_hover_cursor(WM_Cursor_HandPoint); + UI_Box *label = ui_build_box_from_stringf(UI_BoxFlag_Clickable|UI_BoxFlag_DrawText, "##update"); + UI_Signal sig = ui_signal_from_box(label); + DR_FStrParams p = {ui_top_font(), ui_top_text_raster_flags(), ui_color_from_name(s("text")), ui_top_font_size()}; + if(ui_key_match(ui_hot_key(), label->key)) + { + p.underline_thickness = ui_top_font_size()*0.2f; + } + dr_fstrs_push_new(scratch.arena, &fstrs, &p, s("Update Available")); + ui_box_equip_display_fstrs(label, &fstrs); + if(ui_clicked(sig)) + { + wm_open_in_browser(s("https://github.com/EpicGamesExt/raddebugger/releases/latest")); + } + } + scratch_end(scratch); } } @@ -7508,7 +7912,7 @@ rd_window_frame(void) UI_Rect(boundary_rect) { - ui_set_next_hover_cursor(split_axis == Axis2_X ? OS_Cursor_LeftRight : OS_Cursor_UpDown); + ui_set_next_hover_cursor(split_axis == Axis2_X ? WM_Cursor_LeftRight : WM_Cursor_UpDown); UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_Clickable, "###%p_%p", min_child->cfg, max_child->cfg); UI_Signal sig = ui_signal_from_box(box); if(ui_double_clicked(sig)) @@ -7592,6 +7996,7 @@ rd_window_frame(void) // if(content_rect.x1 > content_rect.x0 && content_rect.y1 > content_rect.y0) { + B32 any_disasm_open = 0; ProfScope("leaf panel UI") for(CFG_PanelNode *panel = panel_tree.root; panel != &cfg_nil_panel_node; @@ -7606,6 +8011,10 @@ rd_window_frame(void) panel_tree.focused == panel); CFG_Node *selected_tab = panel->selected_tab; RD_ViewState *selected_tab_view_state = rd_view_state_from_cfg(selected_tab); + if(str8_match(selected_tab->string, s("disasm"), 0)) + { + any_disasm_open = 1; + } ProfScope("leaf panel UI work - %.*s: %.*s", str8_varg(selected_tab->string), str8_varg(rd_expr_from_cfg(selected_tab))) UI_Focus(panel_is_focused ? UI_FocusKind_Null : UI_FocusKind_Off) { @@ -7963,7 +8372,7 @@ rd_window_frame(void) //- rjf: pop interaction registers; commit if this is the selected view RD_Regs *view_regs = rd_pop_regs(); - if(panel_is_focused) + if(panel_tree.focused == panel) { MemoryCopyStruct(rd_regs(), view_regs); } @@ -8025,6 +8434,11 @@ rd_window_frame(void) t->tab = tab; t->fstrs = rd_title_fstrs_from_cfg(scratch.arena, tab, 0); F32 tab_width_target = dr_dim_from_fstrs(ui_top_tab_size(), &t->fstrs).x + tab_close_width_px + ui_top_font_size()*1.f; + B32 tab_is_selected = (tab == panel->selected_tab); + if(tab_is_selected && panel_tree.focused == panel) + { + tab_width_target += tab_close_width_px; + } tab_width_target = Min(max_tab_width_px, tab_width_target); t->tab_width = floor_f32(ui_anim(ui_key_from_stringf(ui_key_zero(), "tab_width_%p", tab), tab_width_target, .initial = reset ? tab_width_target : 0, .rate = rd_state->menu_animation_rate)); SLLQueuePush(first_tab_task, last_tab_task, t); @@ -8168,6 +8582,38 @@ rd_window_frame(void) ui_box_equip_display_fstrs(name_box, &tab_fstrs); } } + if(tab_is_selected && panel_tree.focused == panel) + { + UI_PrefWidth(ui_px(tab_close_width_px, 1.f)) UI_TextAlignment(UI_TextAlign_Center) + RD_Font(RD_FontSlot_Icons) + UI_FontSize(ui_top_font_size()*0.75f) + UI_TagF(".") UI_TagF("tab") UI_TagF("weak") UI_TagF("implicit") + UI_CornerRadius(0) + { + UI_Box *edit_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable| + UI_BoxFlag_DrawBorder| + UI_BoxFlag_DrawBackground| + UI_BoxFlag_DrawText| + UI_BoxFlag_DrawHotEffects| + UI_BoxFlag_DrawActiveEffects, + "%S###edit_view_%p", rd_icon_kind_text_table[RD_IconKind_Gear], tab); + UI_Signal sig = ui_signal_from_box(edit_box); + if(ui_pressed(sig)) + { + if(ws->query_is_active && + ui_key_match(sig.box->key, ws->query_regs->ui_key)) + { + rd_cmd(RD_CmdKind_CancelQuery); + } + else + { + rd_cmd(RD_CmdKind_PushQuery, + .ui_key = sig.box->key, + .expr = push_str8f(scratch.arena, "query:config.$%I64x", tab->id)); + } + } + } + } UI_PrefWidth(ui_px(tab_close_width_px, 1.f)) UI_TextAlignment(UI_TextAlign_Center) RD_Font(RD_FontSlot_Icons) UI_FontSize(ui_top_font_size()*0.75f) @@ -8313,7 +8759,9 @@ rd_window_frame(void) .expr = str8_lit("query:tab_commands"), .panel = panel->cfg->id, .do_implicit_root = 1, + .small_size = 1, .do_lister = 1, + .activate_with_single_click = 1, .ui_key = add_new_box->key); } } @@ -8395,6 +8843,10 @@ rd_window_frame(void) } } } + if(!any_disasm_open && rd_regs()->prefer_disasm) + { + rd_regs()->prefer_disasm = 0; + } } //////////////////////////// @@ -8411,7 +8863,7 @@ rd_window_frame(void) // for(UI_Event *evt = 0; ui_next_event(&evt);) { - if(evt->kind == UI_EventKind_Scroll && evt->modifiers == OS_Modifier_Ctrl) + if(evt->kind == UI_EventKind_Scroll && evt->modifiers == WM_Modifier_Ctrl) { ui_eat_event(evt); if(evt->delta_2f32.y < 0) @@ -8456,15 +8908,14 @@ rd_window_frame(void) { Temp scratch = scratch_begin(0, 0); F32 box_squish_epsilon = 0.001f; - Rng2F32 window_rect = os_client_rect_from_window(ws->os); + Rng2F32 window_rect = wm_client_rect_from_window(ws->os); //- rjf: unpack settings F32 rounded_corner_amount = rd_setting_f32_from_name(str8_lit("rounded_corner_amount")); F32 border_softness = 1.f; B32 do_background_blur = rd_setting_b32_from_name(str8_lit("background_blur")); B32 force_opaque_floating_backgrounds = rd_setting_b32_from_name(str8_lit("opaque_backgrounds")); - B32 do_drop_shadows = - rd_setting_b32_from_name(str8_lit("drop_shadows")); + B32 do_drop_shadows = rd_setting_b32_from_name(str8_lit("drop_shadows")); Vec4F32 base_background_color = ui_color_from_name(str8_lit("background")); Vec4F32 base_border_color = ui_color_from_name(str8_lit("border")); Vec4F32 drop_shadow_color = ui_color_from_name(str8_lit("drop_shadow")); @@ -8476,7 +8927,7 @@ rd_window_frame(void) U64 heatmap_bucket_count = 0; if(DEV_draw_ui_box_heatmap) { - Rng2F32 rect = os_client_rect_from_window(ws->os); + Rng2F32 rect = wm_client_rect_from_window(ws->os); Vec2F32 size = dim_2f32(rect); Vec2S32 buckets_dim = {(S32)(size.x/heatmap_bucket_size), (S32)(size.y/heatmap_bucket_size)}; heatmap_bucket_pitch = buckets_dim.x; @@ -8486,12 +8937,12 @@ rd_window_frame(void) //- rjf: draw background color { - dr_rect(os_client_rect_from_window(ws->os), base_background_color, 0, 0, 0); + dr_rect(wm_client_rect_from_window(ws->os), base_background_color, 0, 0, 0); } //- rjf: draw window border { - dr_rect(os_client_rect_from_window(ws->os), base_border_color, 0, 1.f, border_softness*0.5f); + dr_rect(wm_client_rect_from_window(ws->os), base_border_color, 0, 1.f, border_softness*0.5f); } //- rjf: recurse & draw @@ -8610,16 +9061,15 @@ rd_window_frame(void) Vec4F32 hover_color = ui_color_from_tags_key_name(box->tags_key, str8_lit("hover")); // rjf: brighten + if(is_hot) { Vec4F32 color = hover_color; - color.w *= 0.05f; - if(!is_hot) - { - color.w *= t; - } + color.w *= 0.015f; R_Rect2DInst *inst = dr_rect(pad_2f32(box->rect, 1.f), v4f32(0, 0, 0, 0), 0, 0, border_softness*1.f); inst->colors[Corner_00] = color; inst->colors[Corner_10] = color; + inst->colors[Corner_01] = color; + inst->colors[Corner_11] = color; MemoryCopyArray(inst->corner_radii, box_corner_radii); } @@ -8627,7 +9077,7 @@ rd_window_frame(void) if(box->hot_t > 0.01f) DR_ClipScope(intersect_2f32(box->rect, dr_top_clip())) { Vec4F32 color = hover_color; - color.w *= 0.02f; + color.w *= 0.025f; if(!is_hot) { color.w *= t; @@ -8635,7 +9085,7 @@ rd_window_frame(void) Vec2F32 center = ui_mouse(); Vec2F32 box_dim = dim_2f32(box->rect); F32 max_dim = Max(box_dim.x, box_dim.y); - F32 radius = box->font_size*12.f; + F32 radius = box->font_size*24.f; radius = Min(max_dim, radius); dr_rect(pad_2f32(r2f32(center, center), radius), color, radius, 0, radius/3.f); } @@ -8830,13 +9280,51 @@ rd_window_frame(void) { color.w *= b->hot_t; } + color.w *= 0.01f; R_Rect2DInst *inst = dr_rect(b_border_rect, color, 0, 1.f, 1.f); - inst->colors[Corner_01].w *= 0.2f; - inst->colors[Corner_11].w *= 0.2f; MemoryCopyArray(inst->corner_radii, b_corner_radii); } } + // rjf: draw scroll fade + if(b->flags & (UI_BoxFlag_DrawFadeTop|UI_BoxFlag_DrawFadeBottom|UI_BoxFlag_DrawFadeLeft|UI_BoxFlag_DrawFadeRight)) + { + Vec2F32 fade_dim = scale_2f32(dim_2f32(b->rect), 0.05f); + Vec4F32 fade_color = drop_shadow_color; + if(b->flags & UI_BoxFlag_DrawFadeTop) + { + F32 t = ui_anim(ui_key_from_string(b->key, s("fade_top")), 1.f, .rate = rd_state->catchall_animation_rate); + Rng2F32 rect = r2f32p(b->rect.x0, b->rect.y0, b->rect.x1, b->rect.y0 + fade_dim.y*t); + R_Rect2DInst *r = dr_rect(rect, fade_color, 0, 0, 0); + MemoryCopyArray(r->corner_radii, b_corner_radii); + r->colors[Corner_01] = r->colors[Corner_11] = v4f32(0, 0, 0, 0); + } + if(b->flags & UI_BoxFlag_DrawFadeBottom) + { + F32 t = ui_anim(ui_key_from_string(b->key, s("fade_bottom")), 1.f, .rate = rd_state->catchall_animation_rate); + Rng2F32 rect = r2f32p(b->rect.x0, b->rect.y1 - fade_dim.y*t, b->rect.x1, b->rect.y1); + R_Rect2DInst *r = dr_rect(rect, fade_color, 0, 0, 0); + MemoryCopyArray(r->corner_radii, b_corner_radii); + r->colors[Corner_00] = r->colors[Corner_10] = v4f32(0, 0, 0, 0); + } + if(b->flags & UI_BoxFlag_DrawFadeLeft) + { + F32 t = ui_anim(ui_key_from_string(b->key, s("fade_left")), 1.f, .rate = rd_state->catchall_animation_rate); + Rng2F32 rect = r2f32p(b->rect.x0, b->rect.y0, b->rect.x1+fade_dim.x*t, b->rect.y1); + R_Rect2DInst *r = dr_rect(rect, fade_color, 0, 0, 0); + MemoryCopyArray(r->corner_radii, b_corner_radii); + r->colors[Corner_11] = r->colors[Corner_10] = v4f32(0, 0, 0, 0); + } + if(b->flags & UI_BoxFlag_DrawFadeRight) + { + F32 t = ui_anim(ui_key_from_string(b->key, s("fade_right")), 1.f, .rate = rd_state->catchall_animation_rate); + Rng2F32 rect = r2f32p(b->rect.x1 - fade_dim.x*t, b->rect.y0, b->rect.x1, b->rect.y1); + R_Rect2DInst *r = dr_rect(rect, fade_color, 0, 0, 0); + MemoryCopyArray(r->corner_radii, b_corner_radii); + r->colors[Corner_00] = r->colors[Corner_01] = v4f32(0, 0, 0, 0); + } + } + // rjf: debug border rendering if(b->flags & UI_BoxFlag_Debug) { @@ -8949,6 +9437,8 @@ rd_window_frame(void) FNT_Tag font = rd_font_from_slot(RD_FontSlot_Code); Vec2F32 p = ui_mouse(); dr_rect(hover_debug_box->rect, v4f32(1, 1, 1, 0.2f), 0, 0, 0); + R_Rect2DInst *border = dr_rect(hover_debug_box->rect, v4f32(1, 0, 0, 1.f), 0, 0, 0); + MemoryCopyArray(border->corner_radii, hover_debug_box->corner_radii); dr_text(font, 12.f, 0, 0, FNT_RasterFlag_Hinted, p, v4f32(1, 1, 1, 1), push_str8f(scratch.arena, "key: 0x%I64x", hover_debug_box->key.u64[0])); p.y += 20.f; dr_text(font, 12.f, 0, 0, FNT_RasterFlag_Hinted, p, v4f32(1, 1, 1, 1), push_str8f(scratch.arena, "string: '%S'", hover_debug_box->string)); @@ -8960,7 +9450,7 @@ rd_window_frame(void) { Vec4F32 color = ui_color_from_name(str8_lit("text")); color.w *= ws->error_t; - Rng2F32 rect = os_client_rect_from_window(ws->os); + Rng2F32 rect = wm_client_rect_from_window(ws->os); dr_rect(pad_2f32(rect, 24.f), color, 0, 16.f, 12.f); dr_rect(rect, v4f32(color.x, color.y, color.z, color.w*0.025f), 0, 0, 0); } @@ -8969,7 +9459,7 @@ rd_window_frame(void) if(rd_state->bind_change_active) UI_TagF("pop") { Vec4F32 color = ui_color_from_name(str8_lit("background")); - Rng2F32 rect = os_client_rect_from_window(ws->os); + Rng2F32 rect = wm_client_rect_from_window(ws->os); dr_rect(pad_2f32(rect, 24.f), color, 0, 16.f, 12.f); dr_rect(rect, v4f32(color.x, color.y, color.z, color.w*0.025f), 0, 0, 0); } @@ -8981,7 +9471,7 @@ rd_window_frame(void) //- rjf: @window_frame_part update per-window frame counters/info // ws->frames_alive += 1; - ws->last_window_rect = os_client_rect_from_window(ws->os); + ws->last_window_rect = wm_client_rect_from_window(ws->os); ProfEnd(); scratch_end(scratch); @@ -9071,7 +9561,7 @@ rd_set_autocomp_regs_(E_Eval dst_eval, RD_Regs *regs) // rjf: calculate most general list expression, given the dst_eval space B32 force_allow = 0; B32 expr_based_replace = 1; - String8 list_expr = str8_lit("query:locals, query:globals, query:thread_locals, query:procedures, query:types, query:constants"); + String8 list_expr = str8_lit("query:locals, query:views, query:globals, query:thread_locals, query:procedures, query:types, query:constants"); { E_TypeKey maybe_enum_type = e_type_key_unwrap(dst_eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative & ~E_TypeUnwrapFlag_Enums); if(dst_eval.space.kind == RD_EvalSpaceKind_MetaCfg) @@ -9211,7 +9701,7 @@ rd_set_autocomp_regs_(E_Eval dst_eval, RD_Regs *regs) MD_Node *arg_schema = &md_nil_node; if(callee_expr.size != 0) { - E_Eval callee_eval = e_eval_from_string(callee_expr); + E_Eval callee_eval = e_eval_from_stringf("view:%S", callee_expr); E_Type *callee_type = e_type_from_key(callee_eval.irtree.type_key); if(callee_type->kind == E_TypeKind_LensSpec) { @@ -9241,7 +9731,7 @@ rd_set_autocomp_regs_(E_Eval dst_eval, RD_Regs *regs) cursor_info.list_expr = push_str8_copy(ws->autocomp_arena, list_expr); cursor_info.filter = push_str8_copy(ws->autocomp_arena, filter); cursor_info.replaced_range = replaced_range; - cursor_info.callee_expr = push_str8_copy(ws->autocomp_arena, callee_expr); + cursor_info.callee_expr = str8f(ws->autocomp_arena, "view:%S", callee_expr); cursor_info.arg_schema = arg_schema; scratch_end(scratch); @@ -9279,11 +9769,11 @@ rd_theme_tree_from_name(Arena *arena, Access *access, String8 theme_name) } if(theme_tree == &md_nil_node) { - String8 path = push_str8f(scratch.arena, "%S/raddbg/themes/%S", os_get_process_info()->user_program_data_path, theme_name); - U64 endt_us = os_now_microseconds()+100; + String8 path = str8f(scratch.arena, "%S/raddbg/themes/%S", get_process_info()->user_program_config_data_path, theme_name); + U64 endt_us = now_time_us()+100; if(rd_state->frame_index <= 5) { - endt_us = os_now_microseconds()+50000; + endt_us = now_time_us()+50000; } U128 hash = fs_hash_from_path_range(path, r1u64(0, max_U64), endt_us); String8 data = c_data_from_hash(access, hash); @@ -9320,7 +9810,7 @@ rd_code_color_slot_from_txt_token_kind(TXT_TokenKind kind) } internal RD_CodeColorSlot -rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 string) +rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 string, B32 allow_macros, B32 is_called) { RD_CodeColorSlot color = RD_CodeColorSlot_CodeDefault; if(kind == TXT_TokenKind_Identifier || kind == TXT_TokenKind_Keyword) @@ -9360,21 +9850,21 @@ rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 } } - // rjf: try to map as register alias - if(!mapped) + // rjf: try to map as macro + if((!mapped || is_called) && allow_macros) { - U64 alias_num = e_num_from_string(e_ir_ctx->reg_alias_map, string); - if(alias_num != 0) + E_Expr *expr = e_string2expr_map_lookup(e_ir_ctx->macro_map, string); + if(expr != &e_expr_nil) { mapped = 1; - color = RD_CodeColorSlot_CodeRegister; + color = RD_CodeColorSlot_CodeMeta; } } // rjf: try to map using asynchronous matching system if(!mapped && kind == TXT_TokenKind_Identifier) { - DI_Match match = di_match_from_string(string, 0, di_key_zero(), 0); + DI_Match match = di_match_from_string(string, 0, 0, 1, di_key_zero(), 0); RDI_SectionKind section_kind = match.section_kind; mapped = 1; switch(section_kind) @@ -9429,11 +9919,11 @@ internal String8 rd_string_from_exception_code(U32 code) { String8 string = {0}; - for EachNonZeroEnumVal(CTRL_ExceptionCodeKind, k) + for EachNonZeroEnumVal(D_ExceptionCodeKind, k) { - if(code == ctrl_exception_code_kind_code_table[k]) + if(code == d_exception_code_kind_code_table[k]) { - string = ctrl_exception_code_kind_display_string_table[k]; + string = d_exception_code_kind_display_string_table[k]; break; } } @@ -9441,9 +9931,9 @@ rd_string_from_exception_code(U32 code) } internal DR_FStrList -rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) +rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, D_Event *event) { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, event->entity); + D_Entity *thread = d_entity_from_handle(event->entity); DR_FStrList thread_fstrs = rd_title_fstrs_from_ctrl_entity(arena, thread, 0); DR_FStrList fstrs = {0}; DR_FStrParams params = {ui_top_font(), ui_top_text_raster_flags(), ui_color_from_name(str8_lit("text")), ui_top_font_size()}; @@ -9455,9 +9945,9 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: finished operation; if active thread, completed thread, otherwise we're just stopped - case CTRL_EventCause_Finished: + case D_EventCause_Finished: { - if(thread != &ctrl_entity_nil) + if(thread != &d_entity_nil) { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" completed step")); @@ -9469,9 +9959,9 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: stopped at entry point - case CTRL_EventCause_EntryPoint: + case D_EventCause_EntryPoint: { - if(thread != &ctrl_entity_nil) + if(thread != &d_entity_nil) { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" stopped at entry point")); @@ -9483,9 +9973,9 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: user breakpoint - case CTRL_EventCause_UserBreakpoint: + case D_EventCause_UserBreakpoint: { - if(thread != &ctrl_entity_nil) + if(thread != &d_entity_nil) { dr_fstrs_push_new(arena, &fstrs, ¶ms, rd_icon_kind_text_table[RD_IconKind_CircleFilled], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons)); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9503,9 +9993,9 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: exception - case CTRL_EventCause_InterruptedByException: + case D_EventCause_InterruptedByException: { - if(thread != &ctrl_entity_nil) + if(thread != &d_entity_nil) { dr_fstrs_push_new(arena, &fstrs, ¶ms, rd_icon_kind_text_table[RD_IconKind_WarningBig], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons)); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9525,7 +10015,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) exception_explanation_string.size != 0 ? ")" : ""); dr_fstrs_push_new(arena, &fstrs, ¶ms, exception_info_string); }break; - case CTRL_ExceptionKind_CppThrow: + case D_ExceptionKind_CppThrow: { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9533,7 +10023,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) String8 exception_code_string = str8_from_u64(arena, event->exception_code, 16, 0, 0); dr_fstrs_push_new(arena, &fstrs, ¶ms, exception_code_string); }break; - case CTRL_ExceptionKind_MemoryRead: + case D_ExceptionKind_MemoryRead: { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9541,7 +10031,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) String8 exception_info_string = push_str8f(arena, "Access violation reading from address 0x%I64x", event->vaddr_rng.min); dr_fstrs_push_new(arena, &fstrs, ¶ms, exception_info_string); }break; - case CTRL_ExceptionKind_MemoryWrite: + case D_ExceptionKind_MemoryWrite: { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9549,7 +10039,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) String8 exception_info_string = push_str8f(arena, "Access violation writing to address 0x%I64x", event->vaddr_rng.min); dr_fstrs_push_new(arena, &fstrs, ¶ms, exception_info_string); }break; - case CTRL_ExceptionKind_MemoryExecute: + case D_ExceptionKind_MemoryExecute: { dr_fstrs_concat_in_place(&fstrs, &thread_fstrs); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9576,7 +10066,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: trap - case CTRL_EventCause_InterruptedByTrap: + case D_EventCause_InterruptedByTrap: { dr_fstrs_push_new(arena, &fstrs, ¶ms, rd_icon_kind_text_table[RD_IconKind_WarningBig], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons)); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); @@ -9585,7 +10075,7 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) }break; //- rjf: halt - case CTRL_EventCause_InterruptedByHalt: + case D_EventCause_InterruptedByHalt: { dr_fstrs_push_new(arena, &fstrs, ¶ms, rd_icon_kind_text_table[RD_IconKind_Pause], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons)); dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" Halted")); @@ -9594,6 +10084,122 @@ rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event) return fstrs; } +//////////////////////////////// +//~ rjf: Source File Checksum Calculations + +internal AC_Artifact +rd_md5_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) +{ + AC_Artifact result = {0}; + { + Access *access = access_open(); + U128 hash = {0}; + str8_deserial_read_struct(key, 0, &hash); + String8 data = c_data_from_hash(access, hash); + MD5 md5 = md5_from_data(data); + StaticAssert(sizeof(result) >= sizeof(md5), artifact_size_check); + MemoryCopy(&result, &md5, Min(sizeof(result), sizeof(md5))); + access_close(access); + } + return result; +} + +internal AC_Artifact +rd_sha1_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) +{ + AC_Artifact result = {0}; + { + Access *access = access_open(); + U128 hash = {0}; + str8_deserial_read_struct(key, 0, &hash); + String8 data = c_data_from_hash(access, hash); + SHA1 sha1 = sha1_from_data(data); + StaticAssert(sizeof(result) >= sizeof(sha1), artifact_size_check); + MemoryCopy(&result, &sha1, Min(sizeof(result), sizeof(sha1))); + access_close(access); + } + return result; +} + +internal AC_Artifact +rd_sha256_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) +{ + AC_Artifact result = {0}; + { + Access *access = access_open(); + U128 hash = {0}; + str8_deserial_read_struct(key, 0, &hash); + String8 data = c_data_from_hash(access, hash); + SHA256 sha256 = sha256_from_data(data); + StaticAssert(sizeof(result) >= sizeof(sha256), artifact_size_check); + MemoryCopy(&result, &sha256, Min(sizeof(result), sizeof(sha256))); + access_close(access); + } + return result; +} + +internal MD5 +rd_md5_from_hash(U128 hash) +{ + Access *access = access_open(); + AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_md5_artifact_create, 0, 0); + MD5 md5 = {0}; + MemoryCopy(&md5, &artifact, Min(sizeof(md5), sizeof(artifact))); + access_close(access); + return md5; +} + +internal SHA1 +rd_sha1_from_hash(U128 hash) +{ + Access *access = access_open(); + AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_sha1_artifact_create, 0, 0); + SHA1 sha1 = {0}; + MemoryCopy(&sha1, &artifact, Min(sizeof(sha1), sizeof(artifact))); + access_close(access); + return sha1; +} + +internal SHA256 +rd_sha256_from_hash(U128 hash) +{ + Access *access = access_open(); + AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_sha256_artifact_create, 0, 0); + SHA256 sha256 = {0}; + MemoryCopy(&sha256, &artifact, Min(sizeof(sha256), sizeof(artifact))); + access_close(access); + return sha256; +} + +internal String8 +rd_checksum_value_from_hash_kind(Arena *arena, U128 hash, RDI_ChecksumKind k) +{ + String8 result = {0}; + switch(k) + { + default:{}break; + case RDI_ChecksumKind_MD5: + { + MD5 md5 = rd_md5_from_hash(hash); + String8 md5_string = str8_struct(&md5); + result = str8_copy(arena, md5_string); + }break; + case RDI_ChecksumKind_SHA1: + { + SHA1 sha1 = rd_sha1_from_hash(hash); + String8 sha1_string = str8_struct(&sha1); + result = str8_copy(arena, sha1_string); + }break; + case RDI_ChecksumKind_SHA256: + { + SHA256 sha256 = rd_sha256_from_hash(hash); + String8 sha256_string = str8_struct(&sha256); + result = str8_copy(arena, sha256_string); + }break; + } + return result; +} + //////////////////////////////// //~ rjf: Vocab Info Lookups @@ -9641,6 +10247,182 @@ rd_vocab_info_from_code_name_plural(String8 code_name_plural) return result; } +//////////////////////////////// +//~ rjf: Auto Watch Computation + +internal String8Array +rd_gather_auto_exprs(Arena *arena) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List auto_exprs = {0}; + ProfScope("compute all autos") + { + Access *access = access_open(); + U64 seen_expr_slots_count = 16; + String8Node **seen_expr_slots = push_array(scratch.arena, String8Node *, seen_expr_slots_count); + D_Handle thread_handle = rd_regs()->thread; + D_Entity *thread = d_entity_from_handle(thread_handle); + D_CallStack call_stack = d_call_stack_from_thread(access, thread->handle, 0, 0); + if(call_stack.frames_count != 0) + { + //- rjf: unpack thread / module / debug info / lines + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + U64 thread_ip_vaddr = d_cached_ip_from_thread(thread_handle); + D_Entity *module = d_module_from_process_vaddr(process, thread_ip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + U64 thread_ip_voff = d_voff_from_vaddr(module, thread_ip_vaddr); + D_LineList thread_ip_lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, thread_ip_voff); + + //- rjf: gather all relevant code vaddr ranges + Rng1U64List code_vaddr_ranges = {0}; + { + U64 line_range_limit = 0; + for EachNode(n, D_LineNode, thread_ip_lines.first) + { + Rng1U64 line_voff_range = n->v.voff_range; + Rng1U64 line_vaddr_range = d_vaddr_range_from_voff_range(module, line_voff_range); + rng1u64_list_push(scratch.arena, &code_vaddr_ranges, line_vaddr_range); + line_range_limit += 1; + if(line_range_limit >= 16) + { + break; + } + } + rng1u64_list_push(scratch.arena, &code_vaddr_ranges, rd_state->autos_determining_vaddr_range); + } + + //- rjf: for each code vaddr range -> disassemble, look at src/dest of instructions, + // map back to location info, & gather expressions for affected symbols + for EachNode(n, Rng1U64Node, code_vaddr_ranges.first) + { + Rng1U64 vaddr_range = n->v; + vaddr_range.max = Min(vaddr_range.min+64, vaddr_range.max); + D_ProcessMemorySlice slice = d_process_memory_slice_from_vaddr_range(scratch.arena, process->handle, vaddr_range, 0, 0); + for(U64 off = 0, next_off = 0; off < slice.data.size; off = next_off) + { + next_off = slice.data.size; + + // rjf: disassemble next instruction + DASM_Inst inst = dasm_inst_from_code(scratch.arena, thread->arch, vaddr_range.min + off, str8_skip(slice.data, off), DASM_Syntax_Intel); + next_off = off + inst.size; + + // rjf: gather locations from instruction + struct + { + ARCH_RegCode reg_code; + U64 reg_off; + } + inst_locations[] = + { + {inst.dst_reg_code, inst.dst_reg_off}, + {inst.src_reg_code, inst.src_reg_off}, + }; + + // rjf: for each location -> map to symbols, gather + for EachElement(location_idx, inst_locations) + { + if(inst_locations[location_idx].reg_code != 0) + { + U64 reg_value = 0; + void *regs = call_stack.frames[0].regs; + Rng1U16 reg_rng = arch_info->reg_code_rng_table[inst_locations[location_idx].reg_code]; + reg_rng.max = Min(reg_rng.max, reg_rng.min + sizeof(reg_value)); + if(arch_reg_block_read_range(arch_info, regs, reg_rng, ®_value)) + { + U64 affected_vaddr = reg_value + inst_locations[location_idx].reg_off; + + // rjf: compare against locals + { + E_String2NumMap *locals_map = e_ir_ctx->locals_map; + for(E_String2NumMapNode *n = locals_map->first; n != 0; n = n->order_next) + { + U64 local_num = n->num; + if(local_num != 0) + { + U64 local_idx = local_num-1; + RDI_Symbol *local = rdi_element_from_name_idx(rdi, LocalVariables, local_idx); + if(rdi_kind_from_location(local->location) == RDI_LocationKind_AddrBytecodeStream || + rdi_kind_from_location(local->location) == RDI_LocationKind_AddrRegPlusOff || + rdi_kind_from_location(local->location) == RDI_LocationKind_AddrAddrRegPlusOff) + { + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, local->type_idx); + E_OpList local_ops = e_oplist_from_location(scratch.arena, rdi, local->location); + String8 local_bytecode = e_bytecode_from_oplist(scratch.arena, &local_ops); + E_Interpretation local_addr_interpret = e_interpret(local_bytecode); + U64 local_vaddr = local_addr_interpret.value.u64; + Rng1U64 local_vaddr_range = r1u64(local_vaddr, local_vaddr+type_node->byte_size); + if(contains_1u64(local_vaddr_range, affected_vaddr)) + { + String8 local_name = str8_from_rdi_string_idx(rdi, local->name_string_idx); + U64 hash = u64_hash_from_str8(local_name); + U64 slot_idx = hash%seen_expr_slots_count; + B32 already_seen = 0; + for(String8Node *n = seen_expr_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, local_name, 0)) + { + already_seen = 1; + break; + } + } + if(!already_seen) + { + str8_list_push(scratch.arena, &auto_exprs, local_name); + String8Node *n = push_array(scratch.arena, String8Node, 1); + SLLStackPush(seen_expr_slots[slot_idx], n); + n->string = local_name; + } + } + } + } + } + } + + // rjf: compare against global variables + { + D_Entity *affected_module = d_module_from_process_vaddr(process, affected_vaddr); + U64 affected_voff = d_voff_from_vaddr(affected_module, affected_vaddr); + DI_Key affected_dbgi_key = d_dbgi_key_from_module(affected_module); + RDI_Parsed *affected_rdi = di_rdi_from_key(access, affected_dbgi_key, 0, 0); + RDI_Symbol *affected_gvar = rdi_global_variable_from_voff(affected_rdi, affected_voff); + if(affected_gvar->name_string_idx != 0) + { + String8 gvar_name = fully_qualified_str8_from_rdi_symbol(arena, affected_rdi, affected_gvar); + U64 hash = u64_hash_from_str8(gvar_name); + U64 slot_idx = hash%seen_expr_slots_count; + B32 already_seen = 0; + for(String8Node *n = seen_expr_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, gvar_name, 0)) + { + already_seen = 1; + break; + } + } + if(!already_seen) + { + str8_list_push(scratch.arena, &auto_exprs, gvar_name); + String8Node *n = push_array(scratch.arena, String8Node, 1); + SLLStackPush(seen_expr_slots[slot_idx], n); + n->string = gvar_name; + } + } + } + } + } + } + } + } + } + access_close(access); + } + String8Array result = str8_array_from_list(arena, &auto_exprs); + scratch_end(scratch); + return result; +} + //////////////////////////////// //~ rjf: Continuous Frame Requests @@ -9823,6 +10605,35 @@ rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 strin } } +internal RD_RegSlot +rd_regs_fill_slot_from_ctx_eval(E_Eval eval) +{ + RD_RegSlot slot = RD_RegSlot_Null; + { + D_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); + CFG_Node *cfg = rd_cfg_from_eval_space(eval.space); + if(entity != &d_entity_nil) + { + rd_regs()->ctrl_entity = entity->handle; + slot = RD_RegSlot_CtrlEntity; + } + if(cfg != &cfg_nil_node) + { + rd_regs()->cfg = cfg->id; + slot = RD_RegSlot_Cfg; + Temp scratch = scratch_begin(0, 0); + CFG_PanelTree panels = cfg_panel_tree_from_cfg(scratch.arena, cfg); + CFG_PanelNode *parent_panel_node = cfg_panel_node_from_tree_cfg(panels.root, cfg->parent); + if(parent_panel_node != &cfg_nil_panel_node) + { + rd_regs()->tab = rd_regs()->view = cfg->id; + } + scratch_end(scratch); + } + } + return slot; +} + //////////////////////////////// //~ rjf: Commands @@ -9913,12 +10724,14 @@ rd_next_view_cmd(RD_Cmd **cmd) internal void rd_init(CmdLine *cmdln) { + Temp scratch = scratch_begin(0, 0); ProfBeginFunction(); Arena *arena = arena_alloc(); rd_state = push_array(arena, RD_State, 1); rd_state->arena = arena; rd_state->quit_after_success = (cmd_line_has_flag(cmdln, str8_lit("quit_after_success")) || cmd_line_has_flag(cmdln, str8_lit("q"))); + rd_state->override_focus_on_stop = (cmd_line_has_flag(cmdln, s("no_focus_on_stop"))); rd_state->user_path_arena = arena_alloc(); rd_state->project_path_arena = arena_alloc(); rd_state->theme_path_arena = arena_alloc(); @@ -9934,11 +10747,8 @@ rd_init(CmdLine *cmdln) log_select(rd_state->log); { Temp scratch = scratch_begin(0, 0); - String8 user_program_data_path = os_get_process_info()->user_program_data_path; - String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_data_path); - rd_state->log_path = push_str8f(rd_state->arena, "%S/ui_thread.raddbg_log", user_data_folder); - os_make_directory(user_data_folder); - os_write_data_to_file_path(rd_state->log_path, str8_zero()); + rd_state->log_path = push_str8f(rd_state->arena, "%S/ui_thread.raddbg_log", g_logs_folder); + write_data_to_file_path(rd_state->log_path, str8_zero()); scratch_end(scratch); } rd_state->num_frames_requested = 2; @@ -9957,6 +10767,12 @@ rd_init(CmdLine *cmdln) rd_state->drag_drop_regs = push_array(rd_state->drag_drop_arena, RD_Regs, 1); rd_state->top_regs = &rd_state->base_regs; + // rjf: set up update check http ring & send request + { + rd_state->update_check_arena = arena_alloc(); + rd_state->update_check_http_ring = guarded_ring_alloc(rd_state->update_check_arena, KB(8)); + } + // rjf: set up schemas { rd_state->cfg_schema_table = push_array(rd_state->arena, CFG_SchemaTable, 1); @@ -10035,7 +10851,7 @@ rd_init(CmdLine *cmdln) String8 implicit_user_arg = {0}; String8 implicit_project_arg = {0}; { - Temp scratch = scratch_begin(0, 0); + Temp scratch2 = scratch_begin(&scratch.arena, 1); String8List target_args = {0}; { B32 after_first_non_flag = 0; @@ -10048,28 +10864,28 @@ rd_init(CmdLine *cmdln) B32 is_cfg = 0; if(!is_flag && !after_first_non_flag) { - OS_Handle file = os_file_open(OS_AccessFlag_Read|OS_AccessFlag_ShareRead, arg); + File file = file_open(AccessFlag_Read|AccessFlag_ShareRead, arg); U8 raddbg_cfg_magic[] = "// raddbg "; U8 file_magic_maybe[ArrayCount(raddbg_cfg_magic)] = {0}; - os_file_read(file, r1u64(0, 10), file_magic_maybe); + file_read(file, r1u64(0, 10), file_magic_maybe); if(MemoryMatchArray(raddbg_cfg_magic, file_magic_maybe)) { is_cfg = 1; U8 header_suffix_buffer[256] = {0}; String8 header_suffix = {0}; header_suffix.str = header_suffix_buffer; - header_suffix.size = os_file_read(file, r1u64(10, 10+256), header_suffix_buffer); + header_suffix.size = file_read(file, r1u64(10, 10+256), header_suffix_buffer); String8 header_type_suffix = str8_skip(header_suffix, str8_find_needle(header_suffix, 0, str8_lit(" "), 0)+1); if(str8_match(header_type_suffix, str8_lit("user"), StringMatchFlag_RightSideSloppy)) { - implicit_user_arg = arg; + implicit_user_arg = path_absolute_dst_from_relative_dst_src(scratch.arena, arg, get_process_info()->initial_path); } else if(str8_match(header_type_suffix, str8_lit("project"), StringMatchFlag_RightSideSloppy)) { - implicit_project_arg = arg; + implicit_project_arg = path_absolute_dst_from_relative_dst_src(scratch.arena, arg, get_process_info()->initial_path); } } - os_file_close(file); + file_close(file); } if(!is_flag) { @@ -10077,7 +10893,7 @@ rd_init(CmdLine *cmdln) } if(after_first_non_flag && !is_cfg) { - str8_list_push(scratch.arena, &target_args, arg); + str8_list_push(scratch2.arena, &target_args, arg); } } } @@ -10095,16 +10911,16 @@ rd_init(CmdLine *cmdln) PathStyle style = path_style_from_str8(exe_name); if(style == PathStyle_Relative) { - String8 current_path = os_get_current_path(scratch.arena); - exe_name = push_str8f(scratch.arena, "%S/%S", current_path, exe_name); - exe_name = path_normalized_from_string(scratch.arena, exe_name); + String8 current_path = get_current_path(scratch2.arena); + exe_name = push_str8f(scratch2.arena, "%S/%S", current_path, exe_name); + exe_name = path_normalized_from_string(scratch2.arena, exe_name); } executable_name_string = exe_name; } // rjf: get current directory, use as working directory { - working_directory_string = path_normalized_from_string(scratch.arena, os_get_current_path(scratch.arena)); + working_directory_string = path_normalized_from_string(scratch2.arena, get_current_path(scratch2.arena)); } // rjf: unpack arguments @@ -10113,15 +10929,15 @@ rd_init(CmdLine *cmdln) { if(str8_find_needle(n->string, 0, str8_lit(" "), 0) < n->string.size) { - str8_list_pushf(scratch.arena, &passthrough_args_list, "\"%S\"", n->string); + str8_list_pushf(scratch2.arena, &passthrough_args_list, "\"%S\"", n->string); } else { - str8_list_push(scratch.arena, &passthrough_args_list, n->string); + str8_list_push(scratch2.arena, &passthrough_args_list, n->string); } } StringJoin join = {str8_lit(""), str8_lit(" "), str8_lit("")}; - arguments_string = str8_list_join(scratch.arena, &passthrough_args_list, &join); + arguments_string = str8_list_join(scratch2.arena, &passthrough_args_list, &join); } //- rjf: build config tree @@ -10135,12 +10951,12 @@ rd_init(CmdLine *cmdln) cfg_node_new(rd_state->cfg, wdir, working_directory_string); rd_cmd(RD_CmdKind_SelectTarget, .cfg = target->id); } - scratch_end(scratch); + scratch_end(scratch2); } // rjf: set up user / project paths { - Temp scratch = scratch_begin(0, 0); + Temp scratch2 = scratch_begin(&scratch.arena, 1); // rjf: unpack command line arguments String8 user_path = cmd_line_string(cmdln, str8_lit("user")); @@ -10148,29 +10964,29 @@ rd_init(CmdLine *cmdln) { if(user_path.size != 0) { - user_path = path_absolute_dst_from_relative_dst_src(scratch.arena, user_path, os_get_process_info()->initial_path); + user_path = path_absolute_dst_from_relative_dst_src(scratch2.arena, user_path, get_process_info()->initial_path); } if(project_path.size != 0) { - project_path = path_absolute_dst_from_relative_dst_src(scratch.arena, project_path, os_get_process_info()->initial_path); + project_path = path_absolute_dst_from_relative_dst_src(scratch2.arena, project_path, get_process_info()->initial_path); } } { - String8 user_program_data_path = os_get_process_info()->user_program_data_path; - String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg", user_program_data_path); - os_make_directory(user_data_folder); + String8 user_program_config_data_path = get_process_info()->user_program_config_data_path; + String8 user_data_folder = str8f(scratch2.arena, "%S/raddbg", user_program_config_data_path); + make_directory(user_data_folder); if(user_path.size == 0) { user_path = implicit_user_arg; } if(user_path.size == 0) { - String8 last_user_path = push_str8f(scratch.arena, "%S/last_user", user_data_folder); - user_path = os_data_from_file_path(scratch.arena, last_user_path); + String8 last_user_path = str8f(scratch2.arena, "%S/last_user", user_data_folder); + user_path = data_from_file_path(scratch2.arena, last_user_path); } if(user_path.size == 0) { - user_path = push_str8f(scratch.arena, "%S/default.raddbg_user", user_data_folder); + user_path = str8f(scratch2.arena, "%S/default.raddbg_user", user_data_folder); } } if(project_path.size == 0) @@ -10183,14 +10999,14 @@ rd_init(CmdLine *cmdln) rd_state->project_path = push_str8_copy(rd_state->project_path_arena, project_path); } - // rjf: do initial load of user (project will be loaded by the initial user load if not specified) - rd_cmd(RD_CmdKind_OpenUser, .file_path = user_path); + // rjf: do initial load of user/project + rd_cmd(RD_CmdKind_OpenUser, .file_path = user_path, .non_graphical = 1); if(project_path.size != 0) { rd_cmd(RD_CmdKind_OpenProject, .file_path = project_path); } - scratch_end(scratch); + scratch_end(scratch2); } // rjf: unpack icon image data @@ -10289,6 +11105,7 @@ rd_init(CmdLine *cmdln) } ProfEnd(); + scratch_end(scratch); } internal void @@ -10331,9 +11148,14 @@ rd_frame(void) ////////////////////////////// //- rjf: do per-frame resets // - arena_clear(rd_frame_arena()); - rd_state->top_regs = &rd_state->base_regs; - rd_regs_copy_contents(rd_frame_arena(), &rd_state->top_regs->v, &rd_state->top_regs->v); + { + Temp scratch = scratch_begin(0, 0); + rd_state->top_regs = &rd_state->base_regs; + rd_regs_copy_contents(scratch.arena, &rd_state->top_regs->v, &rd_state->top_regs->v); + arena_clear(rd_frame_arena()); + rd_regs_copy_contents(rd_frame_arena(), &rd_state->top_regs->v, &rd_state->top_regs->v); + scratch_end(scratch); + } if(rd_state->next_hover_regs != 0) { rd_state->hover_regs = rd_regs_copy(rd_frame_arena(), rd_state->next_hover_regs); @@ -10366,6 +11188,7 @@ rd_frame(void) CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, window); for(CFG_PanelNode *p = panel_tree.root; p != &cfg_nil_panel_node; p = cfg_panel_node_rec__depth_first_pre(panel_tree.root, p).next) { + CFG_Node *first_unfiltered_tab = &cfg_nil_node; for(CFG_NodePtrNode *n = p->tabs.first; n != 0; n = n->next) { CFG_Node *tab = n->v; @@ -10373,8 +11196,16 @@ rd_frame(void) { continue; } + if(first_unfiltered_tab == &cfg_nil_node) + { + first_unfiltered_tab = tab; + } rd_view_state_from_cfg(tab); } + if(p->selected_tab == &cfg_nil_node && first_unfiltered_tab != &cfg_nil_node) + { + rd_cmd(RD_CmdKind_FocusTab, .panel = p->cfg->id, .tab = first_unfiltered_tab->id); + } } } scratch_end(scratch); @@ -10383,6 +11214,8 @@ rd_frame(void) ////////////////////////////// //- rjf: apply debug info config trees -> loaded debug info cache // + di_set_auto_downloads(rd_state->auto_download_debug_info); + ProfScope("apply debug info config trees -> loaded debug info cache") { U64 current_update_tick_idx = update_tick_idx(); @@ -10390,6 +11223,12 @@ rd_frame(void) CFG_NodePtrList dbg_infos = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("debug_info")); for EachNode(n, CFG_NodePtrNode, dbg_infos.first) { + // rjf: skip debug infos for other projects + if(rd_cfg_is_project_filtered(n->v)) + { + continue; + } + // rjf: unpack debug info config CFG_Node *di = n->v; String8 path = rd_path_from_cfg(di); @@ -10550,7 +11389,7 @@ rd_frame(void) B32 any_window_is_focused = 0; for(RD_WindowState *w = rd_state->first_window_state; w != &rd_nil_window_state; w = w->order_next) { - if(os_window_is_focused(w->os)) + if(wm_window_is_focused(w->os)) { any_window_is_focused = 1; break; @@ -10600,10 +11439,10 @@ rd_frame(void) ////////////////////////////// //- rjf: get events from the OS // - OS_EventList events = {0}; + WM_EventList events = {0}; if(rd_state->frame_depth == 1) { - events = os_get_events(scratch.arena, rd_state->num_frames_requested == 0 && !DEV_always_refresh); + events = wm_get_events(scratch.arena, rd_state->num_frames_requested == 0 && !DEV_always_refresh); } ////////////////////////////// @@ -10637,7 +11476,7 @@ rd_frame(void) // // TODO(rjf): maximize target, given all windows and their monitors // - F32 target_hz = os_get_gfx_info()->default_refresh_rate; + F32 target_hz = wm_get_system_info()->default_refresh_rate; if(rd_state->frame_index > 32) { F32 possible_alternate_hz_targets[] = {target_hz, 60.f, 75.f, 120.f, 144.f, 165.f, 240.f, 360.f}; @@ -10671,7 +11510,7 @@ rd_frame(void) if(frame_time_history_avg_us < frame_time_target_cap_us) { U64 spare_time = (frame_time_target_cap_us - frame_time_history_avg_us) + 4000; - rd_state->frame_eval_memread_endt_us = os_now_microseconds() + spare_time; + rd_state->frame_eval_memread_endt_us = now_time_us() + spare_time; } } @@ -10683,37 +11522,37 @@ rd_frame(void) ////////////////////////////// //- rjf: begin measuring actual per-frame work // - U64 begin_time_us = os_now_microseconds(); + U64 begin_time_us = now_time_us(); ////////////////////////////// //- rjf: bind change // if(!rd_state->popup_active && rd_state->bind_change_active) { - if(os_key_press(&events, os_handle_zero(), 0, OS_Key_Esc)) + if(wm_key_press(&events, wm_window_zero(), 0, WM_Key_Esc)) { rd_request_frame(); rd_state->bind_change_active = 0; } - if(os_key_press(&events, os_handle_zero(), 0, OS_Key_Delete)) + if(wm_key_press(&events, wm_window_zero(), 0, WM_Key_Delete)) { rd_request_frame(); cfg_node_release(rd_state->cfg, cfg_node_from_id(rd_state->bind_change_binding_id)); rd_state->bind_change_active = 0; } - for(OS_Event *event = events.first, *next = 0; event != 0; event = next) + for(WM_Event *event = events.first, *next = 0; event != 0; event = next) { - if(event->kind == OS_EventKind_Press && - event->key != OS_Key_Esc && - event->key != OS_Key_Return && - event->key != OS_Key_Backspace && - event->key != OS_Key_Delete && - event->key != OS_Key_LeftMouseButton && - event->key != OS_Key_RightMouseButton && - event->key != OS_Key_MiddleMouseButton && - event->key != OS_Key_Ctrl && - event->key != OS_Key_Alt && - event->key != OS_Key_Shift) + if(event->kind == WM_EventKind_Press && + event->key != WM_Key_Esc && + event->key != WM_Key_Return && + event->key != WM_Key_Backspace && + event->key != WM_Key_Delete && + event->key != WM_Key_LeftMouseButton && + event->key != WM_Key_RightMouseButton && + event->key != WM_Key_MiddleMouseButton && + event->key != WM_Key_Ctrl && + event->key != WM_Key_Alt && + event->key != WM_Key_Shift) { rd_state->bind_change_active = 0; CFG_Node *binding = cfg_node_from_id(rd_state->bind_change_binding_id); @@ -10725,13 +11564,13 @@ rd_frame(void) } cfg_node_release_all_children(rd_state->cfg, binding); cfg_node_new(rd_state->cfg, binding, rd_state->bind_change_cmd_name); - cfg_node_new(rd_state->cfg, binding, os_g_key_cfg_string_table[event->key]); - if(event->modifiers & OS_Modifier_Ctrl) { cfg_node_new(rd_state->cfg, binding, str8_lit("ctrl")); } - if(event->modifiers & OS_Modifier_Shift) { cfg_node_new(rd_state->cfg, binding, str8_lit("shift")); } - if(event->modifiers & OS_Modifier_Alt) { cfg_node_new(rd_state->cfg, binding, str8_lit("alt")); } - U32 codepoint = os_codepoint_from_modifiers_and_key(event->modifiers, event->key); - os_text(&events, event->window, codepoint); - os_eat_event(&events, event); + cfg_node_new(rd_state->cfg, binding, wm_key_cfg_name_table[event->key]); + if(event->modifiers & WM_Modifier_Ctrl) { cfg_node_new(rd_state->cfg, binding, str8_lit("ctrl")); } + if(event->modifiers & WM_Modifier_Shift) { cfg_node_new(rd_state->cfg, binding, str8_lit("shift")); } + if(event->modifiers & WM_Modifier_Alt) { cfg_node_new(rd_state->cfg, binding, str8_lit("alt")); } + U32 codepoint = wm_codepoint_from_modifiers_and_key(event->modifiers, event->key); + wm_text(&events, event->window, codepoint); + wm_eat_event(&events, event); rd_request_frame(); break; } @@ -10771,7 +11610,7 @@ rd_frame(void) // ProfScope("consume events") { - for(OS_Event *event = events.first, *next = 0; + for(WM_Event *event = events.first, *next = 0; event != 0; event = next) RD_RegsScope() @@ -10791,22 +11630,22 @@ rd_frame(void) B32 take = 0; //- rjf: try drag/drop drop-kickoff - if(rd_drag_is_active() && event->kind == OS_EventKind_Release && event->key == OS_Key_LeftMouseButton) + if(rd_drag_is_active() && event->kind == WM_EventKind_Release && event->key == WM_Key_LeftMouseButton) { rd_state->drag_drop_state = RD_DragDropState_Dropping; } //- rjf: try window close - if(!take && event->kind == OS_EventKind_WindowClose && ws != 0) + if(!take && event->kind == WM_EventKind_WindowClose && ws != 0) { take = 1; rd_cmd(RD_CmdKind_Exit); } //- rjf: try menu bar operations - if(rd_state->alt_menu_bar_enabled) + if(rd_state->alt_menu_bar_enabled && wm_window_is_focused(ws->os)) { - if(!take && event->kind == OS_EventKind_Press && event->key == OS_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) + if(!take && event->kind == WM_EventKind_Press && event->key == WM_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) { take = 1; rd_request_frame(); @@ -10814,26 +11653,26 @@ rd_frame(void) ws->menu_bar_key_held = 1; ws->menu_bar_focus_press_started = 1; } - if(!take && event->kind == OS_EventKind_Release && event->key == OS_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) + if(!take && event->kind == WM_EventKind_Release && event->key == WM_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) { take = 1; rd_request_frame(); ws->menu_bar_key_held = 0; } - if(ws->menu_bar_focused && event->kind == OS_EventKind_Press && event->key == OS_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) + if(ws->menu_bar_focused && event->kind == WM_EventKind_Press && event->key == WM_Key_Alt && event->modifiers == 0 && event->is_repeat == 0) { take = 1; rd_request_frame(); ws->menu_bar_focused = 0; } - else if(ws->menu_bar_focus_press_started && !ws->menu_bar_focused && event->kind == OS_EventKind_Release && event->modifiers == 0 && event->key == OS_Key_Alt && event->is_repeat == 0) + else if(ws->menu_bar_focus_press_started && !ws->menu_bar_focused && event->kind == WM_EventKind_Release && event->modifiers == 0 && event->key == WM_Key_Alt && event->is_repeat == 0) { take = 1; rd_request_frame(); ws->menu_bar_focused = !ws->menu_bar_focused_on_press; ws->menu_bar_focus_press_started = 0; } - else if(event->kind == OS_EventKind_Press && event->key == OS_Key_Esc && ws->menu_bar_focused && !ui_any_ctx_menu_is_open()) + else if(event->kind == WM_EventKind_Press && event->key == WM_Key_Esc && ws->menu_bar_focused && !ui_any_ctx_menu_is_open()) { take = 1; rd_request_frame(); @@ -10842,13 +11681,13 @@ rd_frame(void) } //- rjf: try hotkey presses - if(!take && event->kind == OS_EventKind_Press) + if(!take && event->kind == WM_EventKind_Press) { CFG_Binding binding = {event->key, event->modifiers}; CFG_KeyMapNodePtrList key_map_nodes = cfg_key_map_node_ptr_list_from_binding(scratch.arena, rd_state->key_map, binding); if(key_map_nodes.first != 0) { - U32 hit_char = os_codepoint_from_modifiers_and_key(event->modifiers, event->key); + U32 hit_char = wm_codepoint_from_modifiers_and_key(event->modifiers, event->key); if(hit_char == 0 || allow_text_hotkeys) { String8 cmd_name = key_map_nodes.first->v->name; @@ -10862,17 +11701,17 @@ rd_frame(void) rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_name); if(allow_text_hotkeys) { - os_text(&events, event->window, hit_char); + wm_text(&events, event->window, hit_char); next = event->next; } take = 1; - if(event->modifiers & OS_Modifier_Alt) + if(event->modifiers & WM_Modifier_Alt) { ws->menu_bar_focus_press_started = 0; } } } - else if(OS_Key_F1 <= event->key && event->key <= OS_Key_F19) + else if(WM_Key_F1 <= event->key && event->key <= WM_Key_F19) { ws->menu_bar_focus_press_started = 0; } @@ -10880,14 +11719,14 @@ rd_frame(void) } //- rjf: try text events - if(!take && event->kind == OS_EventKind_Text) + if(!take && event->kind == WM_EventKind_Text) { String32 insertion32 = str32(&event->character, 1); String8 insertion8 = str8_from_32(scratch.arena, insertion32); rd_cmd(RD_CmdKind_InsertText, .string = insertion8); rd_request_frame(); take = 1; - if(event->modifiers & OS_Modifier_Alt) + if(event->modifiers & WM_Modifier_Alt) { ws->menu_bar_focus_press_started = 0; } @@ -10897,13 +11736,13 @@ rd_frame(void) if(!take) { take = 1; - rd_cmd(RD_CmdKind_OSEvent, .os_event = event); + rd_cmd(RD_CmdKind_WMEvent, .wm_event = event); } //- rjf: take if(take) { - os_eat_event(&events, event); + wm_eat_event(&events, event); } } } @@ -10911,7 +11750,7 @@ rd_frame(void) ////////////////////////////// //- rjf: loop - consume events in core, tick engine, and repeat // - CTRL_Handle find_thread_retry = {0}; + D_Handle find_thread_retry = {0}; RD_Cmd *cmd = 0; ProfScope("loop - consume events in core, tick engine, and repeat") for(U64 cmd_process_loop_idx = 0; cmd_process_loop_idx < 3; cmd_process_loop_idx += 1) { @@ -10925,6 +11764,7 @@ rd_frame(void) DbgInfoNode *order_next; DI_Key key; U64 idx; + String8 path; }; U64 dbg_info_slots_count = 4096; DbgInfoNode **dbg_info_slots = push_array(scratch.arena, DbgInfoNode *, dbg_info_slots_count); @@ -10936,6 +11776,7 @@ rd_frame(void) for EachNode(n, CFG_NodePtrNode, dbg_infos.first) { CFG_Node *di = n->v; + if(rd_cfg_is_project_filtered(di)) { continue; } String8 path = rd_path_from_cfg(di); CFG_Node *timestamp_node = cfg_node_child_from_string(di, str8_lit("timestamp")); U64 timestamp = 0; @@ -10959,6 +11800,7 @@ rd_frame(void) SLLQueuePush_N(first_dbg_info, last_dbg_info, node, order_next); node->key = key; node->idx = dbg_infos_count; + node->path = path; dbg_infos_count += 1; } } @@ -10968,14 +11810,15 @@ rd_frame(void) //- rjf: unpack basic evaluation context // ProfBegin("unpack eval-dependent info"); - CTRL_Entity *process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process); - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); + D_Entity *process = d_entity_from_handle(rd_regs()->process); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); Arch arch = thread->arch; + E_Space primary_space = rd_eval_space_from_ctrl_entity(process, D_EvalSpaceKind_Entity); U64 unwind_count = rd_regs()->unwind_count; U64 rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); - U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); - U64 tls_root_vaddr = ctrl_tls_root_vaddr_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); + D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); + U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); + U64 tls_root_vaddr = thread->tls_root_vaddr; ProfEnd(); //////////////////////////// @@ -10984,6 +11827,8 @@ rd_frame(void) U64 eval_dbg_infos_count = Max(1, dbg_infos_count); E_DbgInfo *eval_dbg_infos = push_array(scratch.arena, E_DbgInfo, eval_dbg_infos_count); E_DbgInfo *eval_dbg_infos_primary = &eval_dbg_infos[0]; + E_String2NumMap *eval_dbg_info_from_name_map = push_array(scratch.arena, E_String2NumMap, 1); + eval_dbg_info_from_name_map[0] = e_string2num_map_make(scratch.arena, eval_dbg_infos_count*2); MemoryCopyStruct(eval_dbg_infos_primary, &e_dbg_info_nil); { U64 idx = 0; @@ -10991,6 +11836,9 @@ rd_frame(void) { eval_dbg_infos[idx].dbgi_key = n->key; eval_dbg_infos[idx].rdi = di_rdi_from_key(rd_state->frame_access, n->key, 0, 0); + eval_dbg_infos[idx].name = n->path; + e_string2num_map_insert(scratch.arena, eval_dbg_info_from_name_map, n->path, idx+1); + e_string2num_map_insert(scratch.arena, eval_dbg_info_from_name_map, str8_skip_last_slash(n->path), idx+1); idx += 1; } } @@ -10998,17 +11846,18 @@ rd_frame(void) //////////////////////////// //- rjf: produce all eval modules // - CTRL_EntityArray all_modules = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Module); + D_EntityArray all_modules = d_entity_array_from_kind(D_EntityKind_Module); U64 eval_modules_count = Max(1, all_modules.count); E_Module *eval_modules = push_array(scratch.arena, E_Module, eval_modules_count); - E_Module *eval_modules_primary = &eval_modules[0]; - eval_modules_primary->vaddr_range = r1u64(0, max_U64); + E_Module *eval_modules_primary = &e_module_nil; + E_String2NumMap *eval_module_from_name_map = push_array(scratch.arena, E_String2NumMap, 1); + eval_module_from_name_map[0] = e_string2num_map_make(scratch.arena, eval_modules_count*2); ProfScope("produce all eval modules") { for EachIndex(eval_module_idx, all_modules.count) { - CTRL_Entity *m = all_modules.v[eval_module_idx]; - DI_Key dbgi_key = ctrl_dbgi_key_from_module(m); + D_Entity *m = all_modules.v[eval_module_idx]; + DI_Key dbgi_key = d_dbgi_key_from_module(m); // rjf: dbgi key -> eval dbg info num U32 dbg_info_num = 0; @@ -11029,12 +11878,15 @@ rd_frame(void) eval_modules[eval_module_idx].vaddr_range = m->vaddr_range; eval_modules[eval_module_idx].arch = m->arch; eval_modules[eval_module_idx].dbg_info_num = dbg_info_num; - eval_modules[eval_module_idx].space = rd_eval_space_from_ctrl_entity(ctrl_entity_ancestor_from_kind(m, CTRL_EntityKind_Process), CTRL_EvalSpaceKind_Entity); + eval_modules[eval_module_idx].space = rd_eval_space_from_ctrl_entity(d_entity_ancestor_from_kind(m, D_EntityKind_Process), D_EvalSpaceKind_Entity); + eval_modules[eval_module_idx].name = m->string; if(module == m) { eval_modules_primary = &eval_modules[eval_module_idx]; eval_dbg_infos_primary = (0 < dbg_info_num && dbg_info_num <= eval_dbg_infos_count) ? &eval_dbg_infos[dbg_info_num-1] : &e_dbg_info_nil; } + e_string2num_map_insert(scratch.arena, eval_module_from_name_map, m->string, eval_module_idx+1); + e_string2num_map_insert(scratch.arena, eval_module_from_name_map, str8_skip_last_slash(m->string), eval_module_idx+1); } } @@ -11051,21 +11903,23 @@ rd_frame(void) E_BaseCtx *ctx = eval_base_ctx; //- rjf: fill instruction pointer info - ctx->thread_ip_vaddr = rip_vaddr; ctx->thread_ip_voff = rip_voff; - ctx->thread_reg_space = rd_eval_space_from_ctrl_entity(thread, CTRL_EvalSpaceKind_Entity); + ctx->thread_reg_space = rd_eval_space_from_ctrl_entity(thread, D_EvalSpaceKind_Entity); + ctx->thread_process_space= rd_eval_space_from_ctrl_entity(process, D_EvalSpaceKind_Entity); ctx->thread_arch = thread->arch; ctx->thread_unwind_count = unwind_count; //- rjf: fill debug infos - ctx->dbg_infos = eval_dbg_infos; - ctx->dbg_infos_count = eval_dbg_infos_count; - ctx->primary_dbg_info = eval_dbg_infos_primary; + ctx->dbg_infos = eval_dbg_infos; + ctx->dbg_infos_count = eval_dbg_infos_count; + ctx->primary_dbg_info = eval_dbg_infos_primary; + ctx->dbg_info_from_name_map = eval_dbg_info_from_name_map; //- rjf: fill modules - ctx->modules = eval_modules; - ctx->modules_count = eval_modules_count; - ctx->primary_module = eval_modules_primary; + ctx->modules = eval_modules; + ctx->modules_count = eval_modules_count; + ctx->primary_module = eval_modules_primary; + ctx->module_from_name_map = eval_module_from_name_map; //- rjf: fill space hooks ctx->space_gen = rd_eval_space_gen; @@ -11091,10 +11945,13 @@ rd_frame(void) { String8 names[] = { - str8_lit("commands"), - str8_lit("tab_commands"), - str8_lit("text_pt_commands"), - str8_lit("text_range_commands"), + s("commands"), + s("tab_commands"), + s("text_pt_commands"), + s("disasm_pt_commands"), + s("text_range_commands"), + s("memory_eval_commands"), + s("module_commands"), }; for EachElement(idx, names) { @@ -11140,6 +11997,31 @@ rd_frame(void) } } + //- rjf: add macro for views + { + String8 names[] = + { + str8_lit("views"), + }; + for EachElement(idx, names) + { + String8 name = names[idx]; + E_TypeKey type_key = e_type_key_cons(.kind = E_TypeKind_Set, + .flags = E_TypeFlag_StubSingleLineExpansion, + .name = name, + .access = E_TYPE_ACCESS_FUNCTION_NAME(views), + .expand = + { + .info = E_TYPE_EXPAND_INFO_FUNCTION_NAME(views), + .range = E_TYPE_EXPAND_RANGE_FUNCTION_NAME(views), + }); + E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); + expr->type_key = type_key; + expr->space = e_space_make(RD_EvalSpaceKind_MetaQuery); + e_string2expr_map_insert(scratch.arena, macro_map, name, expr); + } + } + //- rjf: build schema types & cache (name -> type) mapping for EachElement(idx, rd_name_schema_info_table) { @@ -11192,7 +12074,6 @@ rd_frame(void) str8_lit("file_path_map"), str8_lit("type_view"), str8_lit("recent_project"), - str8_lit("recent_file"), }; for EachElement(cfg_name_idx, evallable_cfg_names) { @@ -11298,6 +12179,10 @@ rd_frame(void) CFG_Node *watch_tab = n->v; for(CFG_Node *child = watch_tab->first; child != &cfg_nil_node; child = child->next) { + if(rd_cfg_is_project_filtered(child)) + { + continue; + } if(str8_match(child->string, str8_lit("watch"), 0)) { CFG_Node *watch = child; @@ -11378,12 +12263,12 @@ rd_frame(void) for EachElement(idx, evallable_ctrl_names) { String8 name = evallable_ctrl_names[idx]; - CTRL_EntityKind kind = ctrl_entity_kind_from_string(name); - CTRL_EntityArray array = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, kind); + D_EntityKind kind = d_entity_kind_from_string(name); + D_EntityArray array = d_entity_array_from_kind(kind); E_TypeKey type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, name); for EachIndex(idx, array.count) { - CTRL_Entity *entity = array.v[idx]; + D_Entity *entity = array.v[idx]; E_Space space = rd_eval_space_from_ctrl_entity(entity, RD_EvalSpaceKind_MetaCtrlEntity); E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); expr->space = space; @@ -11393,19 +12278,19 @@ rd_frame(void) { e_string2expr_map_insert(scratch.arena, macro_map, entity->string, expr); } - if(kind == CTRL_EntityKind_Machine && entity->handle.machine_id == CTRL_MachineID_Local) + if(kind == D_EntityKind_Machine && entity->handle.machine_id == D_MachineID_Local) { e_string2expr_map_insert(scratch.arena, macro_map, str8_lit("local_machine"), expr); } - if(kind == CTRL_EntityKind_Thread && ctrl_handle_match(rd_base_regs()->thread, entity->handle)) + if(kind == D_EntityKind_Thread && d_handle_match(rd_base_regs()->thread, entity->handle)) { e_string2expr_map_insert(scratch.arena, macro_map, str8_lit("current_thread"), expr); } - if(kind == CTRL_EntityKind_Process && ctrl_handle_match(rd_base_regs()->process, entity->handle)) + if(kind == D_EntityKind_Process && d_handle_match(rd_base_regs()->process, entity->handle)) { e_string2expr_map_insert(scratch.arena, macro_map, str8_lit("current_process"), expr); } - if(kind == CTRL_EntityKind_Module && ctrl_handle_match(rd_base_regs()->module, entity->handle)) + if(kind == D_EntityKind_Module && d_handle_match(rd_base_regs()->module, entity->handle)) { e_string2expr_map_insert(scratch.arena, macro_map, str8_lit("current_module"), expr); } @@ -11438,7 +12323,7 @@ rd_frame(void) String8 collection_name = str8_lit("call_stack_tree"); E_TypeKey collection_type_key = e_type_key_cons(.kind = E_TypeKind_Set, .name = collection_name, - .flags = E_TypeFlag_StubSingleLineExpansion, + .flags = E_TypeFlag_StubSingleLineExpansion|E_TypeFlag_ArrayLikeExpansion, .access = E_TYPE_ACCESS_FUNCTION_NAME(call_stack_tree), .expand = { @@ -11468,7 +12353,7 @@ rd_frame(void) }); E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); expr->type_key = collection_type_key; - expr->space = e_space_make(RD_EvalSpaceKind_MetaCtrlEntity); + expr->space = e_space_make(RD_EvalSpaceKind_MetaQuery); e_string2expr_map_insert(scratch.arena, macro_map, collection_name, expr); e_string2typekey_map_insert(rd_frame_arena(), rd_state->meta_name2type_map, collection_name, collection_type_key); } @@ -11480,7 +12365,7 @@ rd_frame(void) } - //- rjf: add types for queries + //- rjf: add types for sets { e_string2typekey_map_insert(rd_frame_arena(), rd_state->meta_name2type_map, str8_lit("environment"), e_type_key_cons(.kind = E_TypeKind_Set, @@ -11507,6 +12392,31 @@ rd_frame(void) .id_from_num = E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches), .num_from_id = E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_NAME(watches), })); + e_string2typekey_map_insert(rd_frame_arena(), rd_state->meta_name2type_map, str8_lit("peek_types"), + e_type_key_cons(.kind = E_TypeKind_Set, + .flags = E_TypeFlag_EditableChildren, + .name = str8_lit("peek_types"), + .irext = E_TYPE_IREXT_FUNCTION_NAME(peek_types), + .access = E_TYPE_ACCESS_FUNCTION_NAME(peek_types), + .expand = + { + .info = E_TYPE_EXPAND_INFO_FUNCTION_NAME(peek_types), + .range = E_TYPE_EXPAND_RANGE_FUNCTION_NAME(peek_types), + .id_from_num = E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(peek_types), + .num_from_id = E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_NAME(peek_types), + })); + e_string2typekey_map_insert(rd_frame_arena(), + rd_state->meta_name2type_map, + str8_lit("call_stack_frame"), + e_type_key_cons(.kind = E_TypeKind_Set, + .name = str8_lit("call_stack_frame"), + .irext = E_TYPE_IREXT_FUNCTION_NAME(call_stack_frame), + .access = E_TYPE_ACCESS_FUNCTION_NAME(call_stack_frame), + .expand = + { + .info = E_TYPE_EXPAND_INFO_FUNCTION_NAME(call_stack_frame), + .range = E_TYPE_EXPAND_RANGE_FUNCTION_NAME(call_stack_frame), + })); e_string2typekey_map_insert(rd_frame_arena(), rd_state->meta_name2type_map, str8_lit("call_stack"), @@ -11531,18 +12441,6 @@ rd_frame(void) .id_from_num = E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice), .num_from_id = E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_NAME(cfgs_slice), })); - e_string2typekey_map_insert(rd_frame_arena(), rd_state->meta_name2type_map, str8_lit("environment"), - e_type_key_cons(.kind = E_TypeKind_Set, - .name = str8_lit("environment"), - .irext = E_TYPE_IREXT_FUNCTION_NAME(environment), - .access = E_TYPE_ACCESS_FUNCTION_NAME(environment), - .expand = - { - .info = E_TYPE_EXPAND_INFO_FUNCTION_NAME(environment), - .range = E_TYPE_EXPAND_RANGE_FUNCTION_NAME(environment), - .id_from_num = E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment), - .num_from_id = E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_NAME(environment), - })); } //- rjf: add macro for collections with specific lookup rules (but no unique id rules) @@ -11550,15 +12448,19 @@ rd_frame(void) struct { String8 name; + E_TypeIRExtFunctionType *irext; E_TypeExpandInfoFunctionType *info; E_TypeExpandRangeFunctionType *range; } collection_infos[] = { -#define Collection(name) {str8_lit_comp(#name), E_TYPE_EXPAND_INFO_FUNCTION_NAME(name), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(name)} - Collection(locals), - Collection(registers), -#undef Collection +#define Collection1(name) {str8_lit_comp(#name), 0, E_TYPE_EXPAND_INFO_FUNCTION_NAME(name), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(name)} +#define Collection2(name) {str8_lit_comp(#name), E_TYPE_IREXT_FUNCTION_NAME(name), E_TYPE_EXPAND_INFO_FUNCTION_NAME(name), E_TYPE_EXPAND_RANGE_FUNCTION_NAME(name)} + Collection1(locals), + Collection1(registers), + Collection2(autos), +#undef Collection1 +#undef Collection2 }; for EachElement(idx, collection_infos) { @@ -11566,6 +12468,7 @@ rd_frame(void) E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); expr->type_key = e_type_key_cons(.kind = E_TypeKind_Set, .name = collection_name, + .irext = collection_infos[idx].irext, .expand = { .info = collection_infos[idx].info, @@ -11604,21 +12507,37 @@ rd_frame(void) e_string2expr_map_insert(scratch.arena, macro_map, name, expr); } - //- rjf: add macro for output log + //- rjf: add macro for output logs { - Access *access = access_open(); - C_Key key = d_state->output_log_key; - U128 hash = c_hash_from_key(key, 0); - String8 data = c_data_from_hash(access, hash); - E_Space space = e_space_make(E_SpaceKind_HashStoreKey); - space.u64_0 = key.root.u64[0]; - space.u128 = key.id.u128[0]; - E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); - expr->space = space; - expr->mode = E_Mode_Offset; - expr->type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), data.size, 0); - e_string2expr_map_insert(scratch.arena, macro_map, str8_lit("output"), expr); - access_close(access); + CFG_NodePtrList targets = cfg_node_top_level_list_from_string(scratch.arena, s("target")); + for EachNode(n, CFG_NodePtrNode, targets.first) + { + Access *access = access_open(); + CFG_Node *target = n->v; + CFG_Node *output_label = cfg_node_child_from_string(target, s("output_label")); + String8 output_label_string = output_label->first->string; + if(output_label_string.size == 0) + { + output_label_string = rd_default_setting_from_names(s("target"), s("output_label")); + } + C_ID id = {u128_hash_from_str8(output_label_string)}; + C_Key key = c_key_make(d_user_state->output_log_root, id); + U128 hash = c_hash_from_key(key, 0); + if(u128_match(hash, u128_zero())) + { + c_submit_data(key, 0, s("")); + } + String8 data = c_data_from_hash(access, hash); + E_Space space = e_space_make(E_SpaceKind_HashStoreKey); + space.u64_0 = key.root.u64[0]; + space.u128 = key.id.u128[0]; + E_Expr *expr = e_push_expr(scratch.arena, E_ExprKind_LeafOffset, r1u64(0, 0)); + expr->space = space; + expr->mode = E_Mode_Offset; + expr->type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), data.size, 0); + e_string2expr_map_insert(scratch.arena, macro_map, output_label_string, expr); + access_close(access); + } } //- rjf: (DEBUG) add macro for cfg strings @@ -11744,13 +12663,15 @@ rd_frame(void) //- rjf: gather config from loaded modules // CFG_NodePtrList immediate_type_views = {0}; - CTRL_EntityArray modules = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Module); + D_EntityArray modules = d_entity_array_from_kind(D_EntityKind_Module); ProfScope("gather config from loaded modules") { for EachIndex(idx, modules.count) { - CTRL_Entity *module = modules.v[idx]; - String8 raddbg_data = ctrl_raddbg_data_from_module(scratch.arena, module->handle); + Access *access = access_open(); + D_Entity *module = modules.v[idx]; + D_ModuleInfo *module_info = d_info_from_module(access, module->handle); + String8 raddbg_data = module_info->raddbg_data; U8 split_char = 0; String8List raddbg_data_text_parts = str8_split(scratch.arena, raddbg_data, &split_char, 1, 0); U64 cfg_idx = 0; @@ -11758,7 +12679,7 @@ rd_frame(void) { String8 text = text_n->string; CFG_NodePtrList cfgs = cfg_node_ptr_list_from_string(scratch.arena, rd_state->cfg, rd_state->cfg_schema_table, str8_zero(), text); - String8 module_name = ctrl_string_from_handle(scratch.arena, module->handle); + String8 module_name = d_string_from_handle(scratch.arena, module->handle); for(CFG_NodePtrNode *n = cfgs.first; n != 0; n = n->next, cfg_idx += 1) { CFG_Node *immediate_root = rd_immediate_cfg_from_keyf("module_%S_cfg_%I64x", module_name, cfg_idx); @@ -11767,6 +12688,7 @@ rd_frame(void) cfg_node_ptr_list_push(scratch.arena, &immediate_type_views, n->v); } } + access_close(access); } } @@ -11848,8 +12770,7 @@ rd_frame(void) E_IRCtx *ir_ctx = push_array(scratch.arena, E_IRCtx, 1); { E_IRCtx *ctx = ir_ctx; - ctx->regs_map = ctrl_string2reg_from_arch(eval_base_ctx->primary_module->arch); - ctx->reg_alias_map = ctrl_string2alias_from_arch(eval_base_ctx->primary_module->arch); + ctx->regs_map = d_string2reg_from_arch(arch); ctx->locals_map = d_query_cached_locals_map_from_dbgi_key_voff(eval_base_ctx->primary_dbg_info->dbgi_key, rip_voff); ctx->member_map = d_query_cached_member_map_from_dbgi_key_voff(eval_base_ctx->primary_dbg_info->dbgi_key, rip_voff); ctx->macro_map = macro_map; @@ -11863,15 +12784,16 @@ rd_frame(void) E_InterpretCtx *interpret_ctx = push_array(scratch.arena, E_InterpretCtx, 1); { E_InterpretCtx *ctx = interpret_ctx; - ctx->primary_space = eval_modules_primary->space; - ctx->reg_arch = eval_modules_primary->arch; - ctx->reg_space = rd_eval_space_from_ctrl_entity(thread, CTRL_EvalSpaceKind_Entity); - ctx->reg_unwind_count = unwind_count; - ctx->module_base = push_array(scratch.arena, U64, 1); - ctx->module_base[0] = module->vaddr_range.min; - ctx->frame_base = push_array(scratch.arena, U64, 1); - ctx->tls_base = push_array(scratch.arena, U64, 1); - ctx->tls_base[0] = d_query_cached_tls_base_vaddr_from_process_root_rip(process, tls_root_vaddr, rip_vaddr); + ctx->primary_space = primary_space; + ctx->reg_arch = arch; + ctx->reg_space = rd_eval_space_from_ctrl_entity(thread, D_EvalSpaceKind_Entity); + ctx->reg_unwind_count = unwind_count; + ctx->module_base = push_array(scratch.arena, U64, 1); + ctx->module_base[0] = module->vaddr_range.min; + ctx->frame_base = push_array(scratch.arena, U64, 1); + ctx->tls_base = push_array(scratch.arena, U64, 1); + ctx->tls_base[0] = d_cached_tls_vaddr_from_thread_module(thread->handle, module->handle, rd_state->frame_eval_memread_endt_us, 0); + ctx->cfa = d_query_cached_cfa_from_thread_unwind(thread, unwind_count); } e_select_interpret_ctx(interpret_ctx, eval_dbg_infos_primary->rdi, rip_voff); @@ -11879,9 +12801,104 @@ rd_frame(void) //- rjf: evaluate unpacked settings (must be used earlier than this point in the frame, // but cannot evaluate before this point, so we need to prep for next frame // - rd_state->alt_menu_bar_enabled = rd_setting_b32_from_name(str8_lit("focus_menu_bar_with_alt")); - rd_state->use_default_stl_type_views = rd_setting_b32_from_name(str8_lit("use_default_stl_type_views")); - rd_state->use_default_ue_type_views = rd_setting_b32_from_name(str8_lit("use_default_ue_type_views")); + rd_state->alt_menu_bar_enabled = rd_setting_b32_from_name(s("focus_menu_bar_with_alt")); + rd_state->use_default_stl_type_views = rd_setting_b32_from_name(s("use_default_stl_type_views")); + rd_state->use_default_ue_type_views = rd_setting_b32_from_name(s("use_default_ue_type_views")); + rd_state->auto_download_debug_info = rd_setting_b32_from_name(s("auto_download_debug_info")); + rd_state->eval_viz_base_string_flags = 0; + if(rd_setting_b32_from_name(s("display_pointer_addresses_before_contents"))) + { + rd_state->eval_viz_base_string_flags |= EV_StringFlag_AddressesBeforeContent; + } + if(!d_user_state->ctrl_is_running) + { + rd_state->eval_viz_base_string_flags |= EV_StringFlag_DisplayAddressUnmappedStatus; + } + + //////////////////////////// + //- rjf: send update check if needed + // + if(!rd_state->sent_update_check && !rd_state->got_update_check && rd_setting_b32_from_name(s("check_for_updates"))) + { + rd_state->sent_update_check = 1; + Temp scratch = scratch_begin(0, 0); + String8 cached_version_check_path = str8f(scratch.arena, "%S/raddbg/last_version_check", get_process_info()->user_program_config_data_path); + String8 cached_version_check_data = data_from_file_path(scratch.arena, cached_version_check_path); + MD_Node *root = md_tree_from_string(scratch.arena, cached_version_check_data)->first; + U64 cached_dense_time = u64_from_str8(root->string, 10); + DateTime cached_date_time = date_time_from_dense_time(cached_dense_time); + DateTime now_date_time = now_time_universal(); + B32 should_rerequest = 0; + if(now_date_time.day != cached_date_time.day || + now_date_time.month != cached_date_time.month || + now_date_time.year != cached_date_time.year) + { + should_rerequest = 1; + } + if(should_rerequest) + { + HTTP_RequestParams p = + { + .id = 1, + .method = HTTP_Method_Get, + .url = s("https://api.github.com/repos/EpicGamesExt/raddebugger/releases/latest"), + .user_agent = s("raddebugger"), + }; + http_push_request(rd_state->update_check_http_ring, &p, 0); + } + else + { + rd_state->got_update_check = 1; + rd_state->newer_update_available = (B32)u64_from_str8(root->first->string, 10); + } + scratch_end(scratch); + } + + ////////////////////////////// + //- rjf: check for updates + // + if(rd_state->sent_update_check && !rd_state->got_update_check) + { + // rjf: pop all responses that we can + B32 done = 0; + for(HTTP_Response response = {0}; http_pop_response(rd_state->update_check_arena, rd_state->update_check_http_ring, &response, 0);) + { + str8_list_push(rd_state->update_check_arena, &rd_state->update_check_response_body_pieces, response.body); + if(!response.has_more) + { + done = 1; + } + } + + // rjf: if we're done -> parse response & determine if there is a new version + if(done) + { + rd_state->got_update_check = 1; + Temp scratch = scratch_begin(0, 0); + String8 response_body = str8_list_join(rd_state->update_check_arena, &rd_state->update_check_response_body_pieces, 0); + MD_Node *root = md_tree_from_string(scratch.arena, response_body)->first; + MD_Node *html_url = md_child_from_string(root, s("html_url"), 0); + String8 newest_release_url = html_url->first->string; + U64 tag_pos = str8_find_needle(newest_release_url, 0, s("tag/v"), 0); + String8 tag_name = str8_skip(newest_release_url, tag_pos); + U64 suffix_pos = str8_find_needle(tag_name, 0, s("-"), 0); + String8 version_name = str8_prefix(tag_name, suffix_pos); + U64 release_version = version_from_str8(version_name); + U64 current_version = Version(BUILD_VERSION_MAJOR, BUILD_VERSION_MINOR, BUILD_VERSION_PATCH); + if(current_version < release_version) + { + rd_state->newer_update_available = 1; + } + String8 cached_version_check_path = str8f(scratch.arena, "%S/raddbg/last_version_check", get_process_info()->user_program_config_data_path); + write_data_to_file_path(cached_version_check_path, str8f(scratch.arena, "%I64u: %i", dense_time_from_date_time(now_time_universal()), !!rd_state->newer_update_available)); + guarded_ring_release(rd_state->update_check_http_ring); + arena_release(rd_state->update_check_arena); + rd_state->update_check_arena = 0; + rd_state->update_check_http_ring = 0; + MemoryZeroStruct(&rd_state->update_check_response_body_pieces); + scratch_end(scratch); + } + } //////////////////////////// //- rjf: autosave if needed @@ -11930,12 +12947,13 @@ rd_frame(void) case RD_CmdKind_Restart: { // rjf: reset hit counts - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); if(processes.count == 0 || kind == RD_CmdKind_Restart) { CFG_NodePtrList bps = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); for(CFG_NodePtrNode *n = bps.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } CFG_Node *hit_count = cfg_node_child_from_string_or_alloc(rd_state->cfg, n->v, str8_lit("hit_count")); cfg_node_new_replace(rd_state->cfg, hit_count, str8_lit("0")); } @@ -11957,7 +12975,7 @@ rd_frame(void) // rjf: run -> refocus pre-stop focused window if(kind == RD_CmdKind_Run) { - os_focus_external_window(rd_state->prestop_focused_window); + wm_focus_external_window(rd_state->prestop_focused_window); } // rjf: run -> no active targets, no processes, but we only have one target? -> just launch it, then select it @@ -12049,7 +13067,6 @@ rd_frame(void) } str8_list_pushf(scratch.arena, &exprs, "query:targets"); str8_list_pushf(scratch.arena, &exprs, "query:breakpoints"); - str8_list_pushf(scratch.arena, &exprs, "query:recent_files"); str8_list_pushf(scratch.arena, &exprs, "query:recent_projects"); str8_list_pushf(scratch.arena, &exprs, "query:machines"); str8_list_pushf(scratch.arena, &exprs, "query:processes"); @@ -12087,9 +13104,9 @@ rd_frame(void) String8 current_path_string = current_path->first->string; if(current_path_string.size == 0) { - current_path_string = path_normalized_from_string(scratch.arena, os_get_current_path(scratch.arena)); + current_path_string = path_normalized_from_string(scratch.arena, get_current_path(scratch.arena)); } - String8 file_path = os_graphical_pick_file(scratch.arena, current_path_string); + String8 file_path = wm_graphical_pick_file(scratch.arena, current_path_string); file_path = path_normalized_from_string(scratch.arena, file_path); if(file_path.size != 0) { @@ -12103,15 +13120,17 @@ rd_frame(void) { rd_cmd(RD_CmdKind_PushQuery, .do_implicit_root = 1, - .do_lister = info->query.expr.size != 0); + .do_lister = (info->query.expr.size != 0), + .expr = info->query.expr); } }break; - //- rjf: external driver textual commands + //- rjf: external drivers case RD_CmdKind_RunExternalDriverTextCommand: { String8 msg = rd_regs()->string; String8List msg_parts = str8_split(scratch.arena, msg, (U8 *)" ", 1, 0); + str8_list_push_front(scratch.arena, &msg_parts, s("ipc_command")); CmdLine msg_cmd_line = cmd_line_from_string_list(scratch.arena, msg_parts); String8 cmd_kind_name = str8_list_first(&msg_cmd_line.inputs); RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_kind_name); @@ -12120,7 +13139,7 @@ rd_frame(void) for EachNonZeroEnumVal(RD_RegSlot, s) { String8 reg_slot_name = rd_reg_slot_code_name_table[s]; - String8 value = cmd_line_string(&msg_cmd_line, reg_slot_name); + String8 value = cmd_line_string(&msg_cmd_line, reg_slot_name); if(value.size != 0) { rd_regs_fill_slot_from_string(s, cmd_kind_info->query.expr, value); @@ -12137,6 +13156,7 @@ rd_frame(void) primary_args_string = str8_list_join(scratch.arena, &primary_args_strings, &(StringJoin){.sep = str8_lit(" ")}); } rd_regs_fill_slot_from_string(cmd_kind_info->query.slot, cmd_kind_info->query.expr, primary_args_string); + rd_regs()->disable_addresses = 1; rd_push_cmd(cmd_kind_name, rd_regs()); } else @@ -12144,13 +13164,186 @@ rd_frame(void) log_user_errorf("`%S` is not a command.", cmd_kind_name); } }break; + case RD_CmdKind_State: + { + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "state:\n{\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " running: %i\n", d_ctrl_targets_running()); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " run_gen: %I64u\n", d_run_gen()); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " stop_count: %I64u\n", d_stop_count()); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip: 0x%I64x\n", d_ctrl_last_stop_event().rip_vaddr); + { + Access *access = access_open(); + D_Event evt = d_ctrl_last_stop_event(); + U64 vaddr = evt.rip_vaddr; + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff); + String8 name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure); + name = escaped_from_raw_str8(scratch.arena, name); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_module: \"%S\"\n", str8_skip_last_slash(module->string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff: 0x%I64x\n", voff); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff_symbol: \"%S\"\n", name); + access_close(access); + } + { + D_Event evt = d_ctrl_last_stop_event(); + DR_FStrList explanation_fstrs = rd_stop_explanation_fstrs_from_ctrl_event(scratch.arena, &evt); + String8 explanation_string = dr_string_from_fstrs(scratch.arena, &explanation_fstrs); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " stop_event:\n {\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " arch: %S\n", string_from_arch(evt.arch)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " vaddr_range: [0x%I64x, 0x%I64x)\n", evt.vaddr_rng.min, evt.vaddr_rng.max); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_vaddr: 0x%I64x\n", evt.rip_vaddr); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " stack_base: 0x%I64x\n", evt.stack_base); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " tls_root: 0x%I64x\n", evt.tls_root); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " tls_index: 0x%I64x\n", evt.tls_index); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " timestamp: 0x%I64x\n", evt.timestamp); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " exception_code: 0x%I64x\n", (U64)evt.exception_code); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " bp_flags: 0x%I64x\n", (U64)evt.bp_flags); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " string: \"%S\"\n", escaped_from_raw_str8(scratch.arena, evt.string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " explanation: \"%S\"\n", escaped_from_raw_str8(scratch.arena, explanation_string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + { + Access *access = access_open(); + D_Event evt = d_ctrl_last_stop_event(); + U64 vaddr = evt.rip_vaddr; + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + E_String2NumMap *locals_map = e_push_locals_map_from_rdi_voff(scratch.arena, rdi, voff); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " locals:\n {\n"); + for(E_String2NumMapNode *n = locals_map->first; n != 0; n = n->order_next) + { + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " %S\n", n->string); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + access_close(access); + } + { + D_Event evt = d_ctrl_last_stop_event(); + U64 vaddr = evt.rip_vaddr; + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, voff); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " lines:\n {\n"); + for EachNode(n, D_LineNode, lines.first) + { + D_Line line = n->v; + String8 line_file_name = str8_skip_last_slash(line.file_path); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " {\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " file_name: \"%S\"\n", line_file_name); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " line_num: %I64d\n", line.pt.line); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " column_num: %I64d\n", line.pt.column); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " voff_range: [0x%I64x, 0x%I64x)\n", line.voff_range.min, line.voff_range.max); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + { + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " threads:\n {\n"); + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + for EachIndex(idx, threads.count) + { + D_Entity *thread = threads.v[idx]; + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " {\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " name: \"%S\"\n", escaped_from_raw_str8(scratch.arena, thread->string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " id: %I64u\n", thread->id); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip: 0x%I64x\n", d_query_cached_rip_from_thread(thread)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + { + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " modules:\n {\n"); + D_EntityArray modules = d_entity_array_from_kind(D_EntityKind_Module); + for EachIndex(idx, modules.count) + { + D_Entity *module = modules.v[idx]; + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " {\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " name: \"%S\"\n", escaped_from_raw_str8(scratch.arena, module->string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " vaddr_range: [0x%I64x, 0x%I64x)\n", module->vaddr_range.min, module->vaddr_range.max); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "}\n"); + }break; + case RD_CmdKind_Eval: + { + // TODO(rjf): to use this for evaluation testing, we need some way to temporarily + // call the eval system with ctrl-thread-like evaluation rules (e.g. waiting for + // memory, never accepting stale results, not looking into caches, etc.). currently + // we'd only be able to do that by setting up an entirely new evaluation context, + // which is currently a ton of code & laborious & duplicative, so we need to tighten + // that up first. @eval_regressions + String8 expr = rd_regs()->expr; + E_Eval eval = e_eval_from_string(expr); + E_Eval type_eval = e_eval_from_stringf("typeof(%S)", expr); + EV_StringParams string_params = + { + .flags = EV_StringFlag_ReadOnlyDisplayRules | rd_state->eval_viz_base_string_flags, + .radix = 10, + }; + if(rd_regs()->disable_addresses) + { + string_params.flags |= EV_StringFlag_DisableAddresses; + } + String8 value_string = ev_value_string_from_eval(scratch.arena, &string_params, eval, 512); + String8 type_value_string = ev_value_string_from_eval(scratch.arena, &string_params, type_eval, 512); + String8List msgs_strings = {0}; + for EachNode(msg, E_Msg, eval.msgs.first) + { + str8_list_push(scratch.arena, &msgs_strings, msg->text); + } + StringJoin join = {.sep = s(". ")}; + String8 msgs_string = str8_list_join(scratch.arena, &msgs_strings, &join); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "eval:\n{\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " expr: %S\n", expr); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " value: \"%S\"\n", escaped_from_raw_str8(scratch.arena, value_string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " type: \"%S\"\n", escaped_from_raw_str8(scratch.arena, type_value_string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " msgs: \"%S\"\n", escaped_from_raw_str8(scratch.arena, msgs_string)); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "}\n"); + }break; + case RD_CmdKind_LineFromVAddr: + { + U64 vaddr = rd_regs()->vaddr; + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, voff); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "lines:\n{\n"); + for EachNode(n, D_LineNode, lines.first) + { + D_Line line = n->v; + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " {\n"); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " file_path: \"%S\"\n", line.file_path); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " line_num: %I64d\n", line.pt.line); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " column_num: %I64d\n", line.pt.column); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " voff_range_min: 0x%I64x\n", line.voff_range.min); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " voff_range_max: 0x%I64x\n", line.voff_range.max); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " }\n"); + } + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "}\n"); + }break; //- rjf: exiting case RD_CmdKind_Exit: { // rjf: if control processes are live, but this is not force-confirmed, then // get confirmation from user - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); UI_Key key = ui_key_from_string(ui_key_zero(), str8_lit("lossy_exit_confirmation")); if(processes.count != 0 && !rd_regs()->force_confirm && !ui_key_match(rd_state->popup_key, key)) { @@ -12229,7 +13422,7 @@ rd_frame(void) RD_WindowState *ws = rd_window_state_from_cfg(wcfg); if(ws != &rd_nil_window_state) { - os_window_set_fullscreen(ws->os, !os_window_is_fullscreen(ws->os)); + wm_window_set_fullscreen(ws->os, !wm_window_is_fullscreen(ws->os)); } }break; case RD_CmdKind_BringToFront: @@ -12242,8 +13435,8 @@ rd_frame(void) } if(last_focused_ws != &rd_nil_window_state) { - os_window_set_minimized(last_focused_ws->os, 0); - os_window_focus(last_focused_ws->os); + wm_window_set_minimized(last_focused_ws->os, 0); + wm_window_focus(last_focused_ws->os); } }break; @@ -12279,10 +13472,10 @@ rd_frame(void) CFG_Binding binding = rd_default_binding_table[idx].binding; CFG_Node *binding_root = cfg_node_new(rd_state->cfg, keybindings, str8_zero()); cfg_node_new(rd_state->cfg, binding_root, name); - cfg_node_new(rd_state->cfg, binding_root, os_g_key_cfg_string_table[binding.key]); - if(binding.modifiers & OS_Modifier_Ctrl) {cfg_node_newf(rd_state->cfg, binding_root, "ctrl");} - if(binding.modifiers & OS_Modifier_Shift) {cfg_node_newf(rd_state->cfg, binding_root, "shift");} - if(binding.modifiers & OS_Modifier_Alt) {cfg_node_newf(rd_state->cfg, binding_root, "alt");} + cfg_node_new(rd_state->cfg, binding_root, wm_key_cfg_name_table[binding.key]); + if(binding.modifiers & WM_Modifier_Ctrl) {cfg_node_newf(rd_state->cfg, binding_root, "ctrl");} + if(binding.modifiers & WM_Modifier_Shift) {cfg_node_newf(rd_state->cfg, binding_root, "shift");} + if(binding.modifiers & WM_Modifier_Alt) {cfg_node_newf(rd_state->cfg, binding_root, "alt");} } }break; @@ -12307,8 +13500,8 @@ rd_frame(void) //- rjf: load the new file's data String8 file_path = rd_regs()->file_path; - String8 file_data = os_data_from_file_path(scratch.arena, file_path); - FileProperties file_props = os_properties_from_file_path(file_path); + String8 file_data = data_from_file_path(scratch.arena, file_path); + FileProperties file_props = properties_from_file_path(file_path); //- rjf: determine if the file is good B32 file_is_okay = 0; @@ -12369,12 +13562,12 @@ rd_frame(void) case RD_CmdKind_OpenUser: { arena_clear(rd_state->user_path_arena); - rd_state->user_path = push_str8_copy(rd_state->user_path_arena, file_path); + rd_state->user_path = str8_copy(rd_state->user_path_arena, file_path); }break; case RD_CmdKind_OpenProject: { arena_clear(rd_state->project_path_arena); - rd_state->project_path = push_str8_copy(rd_state->project_path_arena, file_path); + rd_state->project_path = str8_copy(rd_state->project_path_arena, file_path); }break; } } @@ -12394,10 +13587,10 @@ rd_frame(void) CFG_NodePtrList all_user_windows = cfg_node_child_list_from_string(scratch.arena, file_root, str8_lit("window")); if(all_user_windows.count == 0) { - OS_Handle monitor = os_primary_monitor(); - String8 monitor_name = os_name_from_monitor(scratch.arena, monitor); - Vec2F32 monitor_dim = os_dim_from_monitor(monitor); - F32 monitor_dpi = os_dpi_from_monitor(monitor); + WM_Monitor monitor = wm_primary_monitor(); + String8 monitor_name = wm_name_from_monitor(scratch.arena, monitor); + Vec2F32 monitor_dim = wm_dim_from_monitor(monitor); + F32 monitor_dpi = wm_dpi_from_monitor(monitor); Vec2F32 window_dim = v2f32(monitor_dim.x*4/5, monitor_dim.y*4/5); if(window_dim.x == 0 || window_dim.y == 0) { @@ -12431,7 +13624,7 @@ rd_frame(void) } //- rjf: record last-opened user in config directory - if(file_is_okay && kind == RD_CmdKind_OpenUser) + if(file_is_okay && kind == RD_CmdKind_OpenUser && !rd_regs()->non_graphical) { rd_cmd(RD_CmdKind_RecordUserAsLastOpened); } @@ -12453,86 +13646,57 @@ rd_frame(void) { if(rd_cfg_is_project_filtered(panel->selected_tab)) { + CFG_Node *fallback_tab = &cfg_nil_node; for(CFG_NodePtrNode *tab_n = panel->tabs.first; tab_n != 0; tab_n = tab_n->next) { CFG_Node *tab = tab_n->v; if(!rd_cfg_is_project_filtered(tab)) { - rd_cmd(RD_CmdKind_FocusTab, .tab = tab->id); + fallback_tab = tab; break; } } + rd_cmd(RD_CmdKind_FocusTab, .panel = panel->cfg->id, .tab = fallback_tab->id); } } } } - //- rjf: if we've just loaded the user, and we do not have a project path, - // then we should try to look at the user's data for recent projects and - // load one of those, *or* just the default. - if(file_is_okay && kind == RD_CmdKind_OpenUser && rd_state->project_path.size == 0) + //- rjf: if just opened project -> set new current path + if(kind == RD_CmdKind_OpenProject) { - CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); - CFG_Node *recent_project = cfg_node_child_from_string(user, str8_lit("recent_project")); - String8 project_path = rd_path_from_cfg(recent_project); - if(project_path.size == 0) + String8 new_current_dir = str8_chop_last_slash(rd_regs()->file_path); + if(new_current_dir.size != 0) { - String8 user_program_data_path = os_get_process_info()->user_program_data_path; - String8 user_data_folder = push_str8f(scratch.arena, "%S/%S", user_program_data_path, str8_lit("raddbg")); - os_make_directory(user_data_folder); - project_path = push_str8f(scratch.arena, "%S/default.raddbg_project", user_data_folder); + rd_cmd(RD_CmdKind_SetCurrentPath, .file_path = new_current_dir); } - rd_cmd(RD_CmdKind_OpenProject, .file_path = project_path); } - //- rjf: update all window titles - if(file_is_okay) + //- rjf: if just opened user -> load last project, if enabled + if(kind == RD_CmdKind_OpenUser && rd_setting_b32_from_name(s("auto_load_last_project")) && rd_state->project_path.size == 0) { - String8 window_title = rd_push_window_title(scratch.arena); - for(RD_WindowState *ws = rd_state->first_window_state; ws != &rd_nil_window_state; ws = ws->order_next) + CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), s("user")); + CFG_NodePtrList recent_projects = cfg_node_child_list_from_string(scratch.arena, user, s("recent_project")); + CFG_Node *recent_project = cfg_node_ptr_list_first(&recent_projects); + if(recent_project != &cfg_nil_node) { - os_window_set_title(ws->os, window_title); + rd_cmd(RD_CmdKind_OpenRecentProject, .cfg = recent_project->id); } } }break; case RD_CmdKind_NewUser: + { + rd_cmd(RD_CmdKind_OpenUser, .file_path = str8_zero()); + }break; case RD_CmdKind_NewProject: { - String8 new_path = rd_regs()->file_path; - B32 file_will_be_overwritten = (os_properties_from_file_path(new_path).created != 0); - UI_Key key = ui_key_from_string(ui_key_zero(), str8_lit("new_config_overwrite_confirm")); - if(file_will_be_overwritten && !rd_regs()->force_confirm && !ui_key_match(rd_state->popup_key, key)) - { - rd_state->popup_key = key; - rd_state->popup_active = 1; - arena_clear(rd_state->popup_arena); - MemoryZeroStruct(&rd_state->popup_cmds); - rd_state->popup_title = push_str8f(rd_state->popup_arena, "Are you sure you want to save to this path?"); - rd_state->popup_desc = push_str8f(rd_state->popup_arena, "The existing file at '%S' will be overwritten.", new_path); - RD_Regs *regs = rd_regs_copy(rd_frame_arena(), rd_regs()); - regs->force_confirm = 1; - rd_cmd_list_push_new(rd_state->popup_arena, &rd_state->popup_cmds, rd_cmd_kind_info_table[kind].string, regs); - } - else switch(kind) - { - default:{}break; - case RD_CmdKind_NewUser: - { - os_delete_file_at_path(new_path); - rd_cmd(RD_CmdKind_OpenUser, .file_path = new_path); - }break; - case RD_CmdKind_NewProject: - { - os_delete_file_at_path(new_path); - rd_cmd(RD_CmdKind_OpenProject, .file_path = new_path); - }break; - } + rd_cmd(RD_CmdKind_OpenProject, .file_path = str8_zero()); }break; case RD_CmdKind_SaveUser: case RD_CmdKind_SaveProject: { String8 new_path = rd_regs()->file_path; - B32 file_will_be_overwritten = (os_properties_from_file_path(new_path).created != 0); + B32 file_will_be_overwritten = (properties_from_file_path(new_path).created != 0); UI_Key key = ui_key_from_string(ui_key_zero(), str8_lit("save_config_overwrite_confirm")); if(file_will_be_overwritten && !rd_regs()->force_confirm && !ui_key_match(rd_state->popup_key, key)) { @@ -12566,6 +13730,7 @@ rd_frame(void) } }break; case RD_CmdKind_RecordProjectInUser: + if(rd_regs()->file_path.size != 0) { String8 file_path = rd_regs()->file_path; CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); @@ -12585,6 +13750,13 @@ rd_frame(void) CFG_Node *path_root = cfg_node_new(rd_state->cfg, recent_project, str8_lit("path")); cfg_node_new(rd_state->cfg, path_root, file_path); } + { + CFG_Node *root = cfg_node_root(); + CFG_Node *project = cfg_node_child_from_string(root, s("project")); + CFG_Node *name = cfg_node_child_from_string(project, s("name")); + CFG_Node *recent_project_name_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, recent_project, s("name")); + cfg_node_new_replace(rd_state->cfg, recent_project_name_root, name->first->string); + } cfg_node_unhook(rd_state->cfg, user, recent_project); cfg_node_insert_child(rd_state->cfg, user, &cfg_nil_node, recent_project); recent_projects = cfg_node_child_list_from_string(scratch.arena, user, str8_lit("recent_project")); @@ -12596,16 +13768,17 @@ rd_frame(void) case RD_CmdKind_RecordUserAsLastOpened: { String8 file_path = rd_regs()->file_path; - String8 last_user_path = push_str8f(scratch.arena, "%S/raddbg/last_user", os_get_process_info()->user_program_data_path); - os_write_data_to_file_path(last_user_path, file_path); + String8 last_user_path = str8f(scratch.arena, "%S/raddbg/last_user", get_process_info()->user_program_config_data_path); + write_data_to_file_path(last_user_path, file_path); }break; //- rjf: writing config changes case RD_CmdKind_WriteUserData: dst_path = rd_state->user_path; bucket_name = str8_lit("user"); goto write; case RD_CmdKind_WriteProjectData: dst_path = rd_state->project_path; bucket_name = str8_lit("project"); goto write; write:; + if(dst_path.size != 0) { - B32 dst_exists = (os_properties_from_file_path(dst_path).created != 0); + B32 dst_exists = (properties_from_file_path(dst_path).created != 0); String8 temp_path = push_str8f(scratch.arena, "%S.temp", dst_path); String8 overwritten_path = push_str8f(scratch.arena, "%S.old", dst_path); CFG_Node *tree_root = cfg_node_child_from_string(cfg_node_root(), bucket_name); @@ -12616,17 +13789,17 @@ rd_frame(void) str8_list_push(scratch.arena, &strings, cfg_string_from_tree(scratch.arena, rd_state->cfg_schema_table, str8_chop_last_slash(dst_path), child)); } String8 data = str8_list_join(scratch.arena, &strings, 0); - B32 temp_write_good = os_write_data_to_file_path(temp_path, data); - B32 old_del_good = (temp_write_good && os_delete_file_at_path(overwritten_path)); - B32 old_move_good = (temp_write_good && (!dst_exists || os_move_file_path(overwritten_path, dst_path))); - B32 new_move_good = (old_move_good && os_move_file_path(dst_path, temp_path)); + B32 temp_write_good = write_data_to_file_path(temp_path, data); + B32 old_del_good = (temp_write_good && delete_file_at_path(overwritten_path)); + B32 old_move_good = (temp_write_good && (!dst_exists || move_file_path(overwritten_path, dst_path))); + B32 new_move_good = (old_move_good && move_file_path(dst_path, temp_path)); if(new_move_good && dst_exists) { - os_delete_file_at_path(overwritten_path); + delete_file_at_path(overwritten_path); } else if(!new_move_good && old_move_good && dst_exists) { - os_move_file_path(dst_path, overwritten_path); + move_file_path(dst_path, overwritten_path); } }break; @@ -13012,6 +14185,8 @@ rd_frame(void) //- rjf: unpack String8 src_path = rd_regs()->string; String8 dst_path = rd_regs()->file_path; + PathStyle src_style = path_style_from_str8(src_path); + PathStyle dst_style = path_style_from_str8(dst_path); String8List src_path_parts = str8_split_path(scratch.arena, src_path); String8List dst_path_parts = str8_split_path(scratch.arena, dst_path); @@ -13054,9 +14229,8 @@ rd_frame(void) { str8_list_push_front(scratch.arena, &map_dst_parts, n->string); } - StringJoin map_join = {.sep = str8_lit("/")}; - String8 map_src = str8_list_join(scratch.arena, &map_src_parts, &map_join); - String8 map_dst = str8_list_join(scratch.arena, &map_dst_parts, &map_join); + String8 map_src = str8_path_list_join_by_style(scratch.arena, &map_src_parts, src_style); + String8 map_dst = str8_path_list_join_by_style(scratch.arena, &map_dst_parts, dst_style); //- rjf: store as file path map cfg CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); @@ -13212,6 +14386,10 @@ rd_frame(void) { CFG_Node *tab = cfg_node_from_id(rd_regs()->tab); CFG_Node *panel = tab->parent; + if(panel == &cfg_nil_node) + { + panel = cfg_node_from_id(rd_regs()->panel); + } CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, panel); CFG_PanelNode *panel_node = cfg_panel_node_from_tree_cfg(panel_tree.root, panel); CFG_Node *selection_cfg = &cfg_nil_node; @@ -13221,6 +14399,7 @@ rd_frame(void) if(selection_cfg == &cfg_nil_node) { selection_cfg = tab_selection_cfg; + cfg_node_unhook(rd_state->cfg, n->v, selection_cfg); } else for(CFG_Node *s = tab_selection_cfg; s != &cfg_nil_node; s = cfg_node_child_from_string(n->v, str8_lit("selected"))) { @@ -13232,7 +14411,14 @@ rd_frame(void) selection_cfg = cfg_node_alloc(rd_state->cfg); cfg_node_equip_string(rd_state->cfg, selection_cfg, str8_lit("selected")); } - cfg_node_insert_child(rd_state->cfg, tab, &cfg_nil_node, selection_cfg); + if(tab != &cfg_nil_node) + { + cfg_node_insert_child(rd_state->cfg, tab, &cfg_nil_node, selection_cfg); + } + else + { + cfg_node_release(rd_state->cfg, selection_cfg); + } }break; case RD_CmdKind_NextTab: { @@ -13367,7 +14553,7 @@ rd_frame(void) CFG_Node *tab = cfg_node_from_id(rd_regs()->tab); String8 expr = rd_expr_from_cfg(tab); String8 full_path = rd_file_path_from_eval_string(scratch.arena, expr); - os_set_clipboard_text(full_path); + wm_set_clipboard_text(full_path); }break; case RD_CmdKind_CloseTab: { @@ -13450,11 +14636,10 @@ rd_frame(void) //- rjf: files case RD_CmdKind_Open: { - String8 path = path_absolute_dst_from_relative_dst_src(scratch.arena, rd_regs()->file_path, os_get_current_path(scratch.arena)); - FileProperties props = os_properties_from_file_path(path); + String8 path = path_absolute_dst_from_relative_dst_src(scratch.arena, rd_regs()->file_path, get_current_path(scratch.arena)); + FileProperties props = properties_from_file_path(path); if(props.created != 0) { - rd_cmd(RD_CmdKind_RecordFileInProject); rd_cmd(RD_CmdKind_BuildTab, .string = str8_lit("pending"), .expr = rd_eval_string_from_file_path(scratch.arena, path)); } else @@ -13462,20 +14647,10 @@ rd_frame(void) log_user_errorf("Couldn't open file at \"%S\".", path); } }break; - case RD_CmdKind_Switch: + case RD_CmdKind_OpenSourceFileFromDebugInfo: { - String8 path = {0}; - if(path.size == 0) - { - CFG_Node *recent_file = cfg_node_from_id(rd_regs()->cfg); - CFG_Node *path_root = cfg_node_child_from_string(recent_file, str8_lit("path")); - path = path_root->first->string; - } - if(path.size == 0) - { - path = rd_regs()->file_path; - } - rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1); + String8 path = rd_regs()->file_path; + rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = path, .cursor = txt_pt(0, 0), .vaddr = 0, .force_focus = 1, .prefer_new_tab = 1); }break; case RD_CmdKind_SwitchToPartnerFile: { @@ -13497,69 +14672,40 @@ rd_frame(void) { if(!str8_match(partner_ext_candidates[idx], file_ext, StringMatchFlag_CaseInsensitive)) { - String8 candidate = push_str8f(scratch.arena, "%S.%S", file_name, partner_ext_candidates[idx]); - String8 candidate_path = push_str8f(scratch.arena, "%S/%S", file_folder, candidate); - FileProperties candidate_props = os_properties_from_file_path(candidate_path); + String8 candidate = str8f(scratch.arena, "%S.%S", file_name, partner_ext_candidates[idx]); + String8 candidate_path = str8f(scratch.arena, "%S/%S", file_folder, candidate); + FileProperties candidate_props = properties_from_file_path(candidate_path); if(candidate_props.modified != 0) { - rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = candidate_path, .cursor = txt_pt(0, 0), .vaddr = 0); + rd_cmd(RD_CmdKind_FindCodeLocation, .file_path = candidate_path, .cursor = txt_pt(0, 0), .vaddr = 0, .prefer_new_tab = 1); break; } } } }break; - case RD_CmdKind_RecordFileInProject: - if(rd_regs()->file_path.size != 0) - { - String8 path = rd_regs()->file_path; - CFG_Node *project = cfg_node_child_from_string(cfg_node_root(), str8_lit("project")); - CFG_NodePtrList recent_files = cfg_node_child_list_from_string(scratch.arena, project, str8_lit("recent_file")); - CFG_Node *recent_file = &cfg_nil_node; - for(CFG_NodePtrNode *n = recent_files.first; n != 0; n = n->next) - { - if(path_match_normalized(rd_path_from_cfg(n->v), path)) - { - recent_file = n->v; - break; - } - } - if(recent_file == &cfg_nil_node) - { - recent_file = cfg_node_new(rd_state->cfg, project, str8_lit("recent_file")); - CFG_Node *path_root = cfg_node_new(rd_state->cfg, recent_file, str8_lit("path")); - cfg_node_new(rd_state->cfg, path_root, path); - } - cfg_node_unhook(rd_state->cfg, project, recent_file); - cfg_node_insert_child(rd_state->cfg, project, &cfg_nil_node, recent_file); - recent_files = cfg_node_child_list_from_string(scratch.arena, project, str8_lit("recent_file")); - if(recent_files.count > 256) - { - cfg_node_release(rd_state->cfg, recent_files.last->v); - } - }break; case RD_CmdKind_ShowFileInExplorer: if(rd_regs()->file_path.size != 0) { String8 full_path = rd_regs()->file_path; - os_show_in_filesystem_ui(full_path); + wm_show_in_filesystem_ui(full_path); }break; //- rjf: source <-> disasm case RD_CmdKind_GoToDisassembly: { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); U64 vaddr = 0; for(D_LineNode *n = rd_regs()->lines.first; n != 0; n = n->next) { - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, n->v.dbgi_key); - CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); - if(module != &ctrl_entity_nil) + D_EntityList modules = d_modules_from_dbgi_key(scratch.arena, n->v.dbgi_key); + D_Entity *module = d_module_from_thread_candidates(thread, &modules); + if(module != &d_entity_nil) { - vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); + vaddr = d_vaddr_from_voff(module, n->v.voff_range.min); break; } } - rd_cmd(RD_CmdKind_FindCodeLocation, .process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process)->handle, .vaddr = vaddr, .prefer_disasm = 1); + rd_cmd(RD_CmdKind_FindCodeLocation, .process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process)->handle, .vaddr = vaddr, .prefer_disasm = 1); }break; case RD_CmdKind_GoToSource: { @@ -13569,7 +14715,7 @@ rd_frame(void) .file_path = rd_regs()->lines.first->v.file_path, .cursor = rd_regs()->lines.first->v.pt, .vaddr = 0, - .process = ctrl_handle_zero(), + .process = d_handle_zero(), .prefer_disasm = 0); } }break; @@ -13835,15 +14981,15 @@ rd_frame(void) Access *access = access_open(); //- rjf: unpack thread info - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); U64 unwind_index = rd_regs()->unwind_count; U64 inline_depth = rd_regs()->inline_depth; U64 rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_index); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); + U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, rip_voff); D_Line line = {0}; { @@ -13861,7 +15007,7 @@ rd_frame(void) B32 dbgi_missing = (di_key_match(di_key_zero(), dbgi_key)); B32 dbgi_pending = !dbgi_missing && rdi == &rdi_parsed_nil; B32 has_line_info = (line.voff_range.max != 0); - B32 has_module = (module != &ctrl_entity_nil); + B32 has_module = (module != &d_entity_nil); B32 has_dbg_info = has_module && !dbgi_missing; //- rjf: find-code-location on each affected window @@ -13899,7 +15045,7 @@ rd_frame(void) }break; case RD_CmdKind_FindSelectedThread: { - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_base_regs()->thread); + D_Entity *selected_thread = d_entity_from_handle(rd_base_regs()->thread); rd_cmd(RD_CmdKind_FindThread, .thread = selected_thread->handle, .unwind_count = rd_base_regs()->unwind_count, @@ -13928,11 +15074,11 @@ rd_frame(void) DI_Match match = {0}; if(match.idx == 0) { - match = di_match_from_string(name, 0, e_base_ctx->primary_dbg_info->dbgi_key, rd_state->frame_eval_memread_endt_us); + match = di_match_from_string(name, 0, 0, 1, e_base_ctx->primary_dbg_info->dbgi_key, rd_state->frame_eval_memread_endt_us); } if(match.idx == 0) { - match = di_match_from_string(name, 0, di_key_zero(), rd_state->frame_eval_memread_endt_us); + match = di_match_from_string(name, 0, 0, 1, di_key_zero(), rd_state->frame_eval_memread_endt_us); } if(match.section_kind == RDI_SectionKind_Procedures) { @@ -13940,7 +15086,7 @@ rd_frame(void) { name_resolved = 1; RDI_Parsed *rdi = di_rdi_from_key(access, match.key, 0, 0); - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, match.idx); + RDI_Symbol *procedure = rdi_element_from_name_idx(rdi, Procedures, match.idx); voff = rdi_first_voff_from_procedure(rdi, procedure); voff_dbgi_key = match.key; } @@ -13984,7 +15130,7 @@ rd_frame(void) str8_list_push(temp.arena, &try_path_parts, try_n->string); } String8 try_path = str8_list_join(temp.arena, &try_path_parts, &(StringJoin){.sep = str8_lit("/")}); - FileProperties try_props = os_properties_from_file_path(try_path); + FileProperties try_props = properties_from_file_path(try_path); if(try_props.modified != 0) { name_resolved = 1; @@ -14006,12 +15152,12 @@ rd_frame(void) D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, voff_dbgi_key, voff); if(lines.first != 0) { - CTRL_Entity *process = &ctrl_entity_nil; + D_Entity *process = &d_entity_nil; U64 vaddr = 0; - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, voff_dbgi_key); - CTRL_Entity *module = ctrl_entity_list_first(&modules); - process = ctrl_entity_ancestor_from_kind(module, CTRL_EntityKind_Process); - if(process != &ctrl_entity_nil) + D_EntityList modules = d_modules_from_dbgi_key(scratch.arena, voff_dbgi_key); + D_Entity *module = d_entity_list_first(&modules); + process = d_entity_ancestor_from_kind(module, D_EntityKind_Process); + if(process != &d_entity_nil) { vaddr = module->vaddr_range.min + lines.first->v.voff_range.min; } @@ -14080,32 +15226,48 @@ rd_frame(void) //- rjf: grab things to find. path * point, process * address, etc. String8 file_path = {0}; TxtPt point = {0}; - CTRL_Entity *thread = &ctrl_entity_nil; - CTRL_Entity *process = &ctrl_entity_nil; + D_Entity *thread = &d_entity_nil; + D_Entity *process = &d_entity_nil; U64 vaddr = 0; B32 require_disasm_snap = 0; + B32 prefer_new_tab = 0; { - file_path = rd_mapped_from_file_path(scratch.arena, rd_regs()->file_path); - point = rd_regs()->cursor; - thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process); - vaddr = rd_regs()->vaddr; + file_path = rd_mapped_from_file_path(scratch.arena, rd_regs()->file_path); + point = rd_regs()->cursor; + thread = d_entity_from_handle(rd_regs()->thread); + process = d_entity_from_handle(rd_regs()->process); + vaddr = rd_regs()->vaddr; + prefer_new_tab = rd_regs()->prefer_new_tab; if(file_path.size == 0) { require_disasm_snap = 1; } } + //- rjf: absolutify file path + { + String8 base_folder = {0}; + if(base_folder.size == 0) { base_folder = str8_chop_last_slash(e_base_ctx->primary_dbg_info->name); } + if(base_folder.size == 0) { base_folder = str8_chop_last_slash(e_base_ctx->primary_module->name); } + file_path = path_absolute_dst_from_relative_dst_src(scratch.arena, file_path, base_folder); + } + + //- rjf: if transient tabs are turned off, always prefer new tab + if(!rd_setting_b32_from_name(str8_lit("transient_tabs"))) + { + prefer_new_tab = 1; + } + //- rjf: given a src code location, if no vaddr is specified, // try to map the src coordinates to a vaddr via line info if(vaddr == 0 && file_path.size != 0) { - D_LineList lines = d_lines_from_file_path_line_num(scratch.arena, file_path, point.line); + D_LineList lines = d_lines_from_file_path_line_num(scratch.arena, file_path, point.line, max_U64); for(D_LineNode *n = lines.first; n != 0; n = n->next) { - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, n->v.dbgi_key); - CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); - vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); + D_EntityList modules = d_modules_from_dbgi_key(scratch.arena, n->v.dbgi_key); + D_Entity *module = d_module_from_thread_candidates(thread, &modules); + vaddr = d_vaddr_from_voff(module, n->v.voff_range.min); break; } } @@ -14196,25 +15358,28 @@ rd_frame(void) // rjf: try to find panel/view pair that has any *auto* source code tab open info->panel_w_auto = &cfg_nil_panel_node; info->view_w_auto = &cfg_nil_node; - for(CFG_PanelNode *panel = panel_tree.root; - panel != &cfg_nil_panel_node; - panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next) + if(!prefer_new_tab) { - if(panel->first != &cfg_nil_panel_node) + for(CFG_PanelNode *panel = panel_tree.root; + panel != &cfg_nil_panel_node; + panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next) { - continue; - } - for(CFG_NodePtrNode *tab_n = panel->tabs.first; tab_n != 0; tab_n = tab_n->next) - { - CFG_Node *tab = tab_n->v; - if(rd_cfg_is_project_filtered(tab)) { continue; } - RD_RegsScope(.tab = tab->id, .view = tab->id) + if(panel->first != &cfg_nil_panel_node) { - if(str8_match(tab->string, str8_lit("text"), 0) && - rd_view_setting_b32_from_name(str8_lit("auto"))) + continue; + } + for(CFG_NodePtrNode *tab_n = panel->tabs.first; tab_n != 0; tab_n = tab_n->next) + { + CFG_Node *tab = tab_n->v; + if(rd_cfg_is_project_filtered(tab)) { continue; } + RD_RegsScope(.tab = tab->id, .view = tab->id) { - info->panel_w_auto = panel; - info->view_w_auto = tab; + if(str8_match(tab->string, str8_lit("text"), 0) && + rd_view_setting_b32_from_name(str8_lit("auto"))) + { + info->panel_w_auto = panel; + info->view_w_auto = tab; + } } } } @@ -14369,6 +15534,8 @@ rd_frame(void) }; FindCodeLocTask *first_task = 0; FindCodeLocTask *last_task = 0; + CFG_PanelNode *did_src_code_panel = &cfg_nil_panel_node; + CFG_PanelNode *did_disasm_panel = &cfg_nil_panel_node; B32 did_src_code_snap = 0; B32 did_disasm_snap = 0; for(WindowInfo *info = first_window_info; info != 0; info = info->next) @@ -14401,8 +15568,8 @@ rd_frame(void) t->view_w_auto = info->view_w_auto; t->panel_w_disasm = info->panel_w_disasm; t->view_w_disasm = info->view_w_disasm; - if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; } - if(disasm_dst_panel != &cfg_nil_panel_node) { did_disasm_snap = 1; } + if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; did_src_code_panel = src_code_dst_panel; } + if(disasm_dst_panel != &cfg_nil_panel_node) { did_disasm_snap = 1; did_disasm_panel = disasm_dst_panel; } } } @@ -14439,8 +15606,8 @@ rd_frame(void) t->view_w_auto = info->view_w_auto; t->panel_w_disasm = info->panel_w_disasm; t->view_w_disasm = info->view_w_disasm; - if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; } - if(disasm_dst_panel != &cfg_nil_panel_node) { did_disasm_snap = 1; } + if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; did_src_code_panel = src_code_dst_panel; } + if(disasm_dst_panel != &cfg_nil_panel_node) { did_disasm_snap = 1; did_disasm_panel = disasm_dst_panel; } } } @@ -14468,7 +15635,7 @@ rd_frame(void) t->view_w_auto = info->view_w_auto; t->panel_w_disasm = info->panel_w_disasm; t->view_w_disasm = info->view_w_disasm; - if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; } + if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; did_src_code_panel = src_code_dst_panel; } } } @@ -14511,6 +15678,8 @@ rd_frame(void) t->view_w_auto = info->view_w_auto; t->panel_w_disasm = info->panel_w_disasm; t->view_w_disasm = info->view_w_disasm; + if(src_code_dst_panel != &cfg_nil_panel_node) { did_src_code_snap = 1; did_src_code_panel = src_code_dst_panel; } + if(disasm_dst_panel != &cfg_nil_panel_node) { did_disasm_snap = 1; did_disasm_panel = disasm_dst_panel; } } } @@ -14523,16 +15692,13 @@ rd_frame(void) // rjf: if disasm and source code match: // if disasm preferred, cancel source // if source preferred, cancel disasm - if(disasm_dst_panel == src_code_dst_panel) + if(disasm_dst_panel == did_src_code_panel && !rd_regs()->prefer_disasm) { - if(rd_regs()->prefer_disasm) - { - src_code_dst_panel = &cfg_nil_panel_node; - } - else - { - disasm_dst_panel = &cfg_nil_panel_node; - } + disasm_dst_panel = &cfg_nil_panel_node; + } + if(src_code_dst_panel == did_disasm_panel && rd_regs()->prefer_disasm) + { + src_code_dst_panel = &cfg_nil_panel_node; } // rjf: if disasm is not preferred, and we have no disassembly view @@ -14570,14 +15736,19 @@ rd_frame(void) cfg_node_new_replace(rd_state->cfg, cfg_node_child_from_string_or_alloc(rd_state->cfg, dst_tab, str8_lit("cursor_column")), str8_lit("1")); cfg_node_new_replace(rd_state->cfg, cfg_node_child_from_string_or_alloc(rd_state->cfg, dst_tab, str8_lit("mark_line")), str8_lit("1")); cfg_node_new_replace(rd_state->cfg, cfg_node_child_from_string_or_alloc(rd_state->cfg, dst_tab, str8_lit("mark_column")), str8_lit("1")); + cfg_node_new_replace(rd_state->cfg, cfg_node_child_from_string_or_alloc(rd_state->cfg, dst_tab, str8_lit("project")), rd_state->project_path); } else if(dst_panel != &cfg_nil_panel_node && dst_tab == &cfg_nil_node) { dst_tab = cfg_node_new(rd_state->cfg, dst_panel->cfg, str8_lit("text")); CFG_Node *expr = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("expression")); cfg_node_new(rd_state->cfg, expr, rd_eval_string_from_file_path(scratch.arena, file_path)); - CFG_Node *auto_root = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("auto")); - cfg_node_new(rd_state->cfg, auto_root, str8_lit("1")); + if(!prefer_new_tab) + { + CFG_Node *auto_root = cfg_node_new(rd_state->cfg, dst_tab, str8_lit("auto")); + cfg_node_new(rd_state->cfg, auto_root, str8_lit("1")); + } + cfg_node_new_replace(rd_state->cfg, cfg_node_child_from_string_or_alloc(rd_state->cfg, dst_tab, str8_lit("project")), rd_state->project_path); } // rjf: determine if we need a contain or center @@ -14604,13 +15775,10 @@ rd_frame(void) } rd_cmd(cursor_snap_kind); } - - // rjf: record - rd_cmd(RD_CmdKind_RecordFileInProject, .file_path = file_path); } // rjf: snap to disasm - if(process != &ctrl_entity_nil && vaddr != 0 && disasm_dst_panel != &cfg_nil_panel_node) + if(process != &d_entity_nil && vaddr != 0 && disasm_dst_panel != &cfg_nil_panel_node) { CFG_PanelNode *dst_panel = disasm_dst_panel; @@ -14642,12 +15810,128 @@ rd_frame(void) } }break; + //- rjf: snap-to-memory-location + case RD_CmdKind_GoToMemory: + { + // rjf: unpack expr + String8 expr = rd_regs()->expr; + E_Eval eval = e_eval_from_string(expr); + String8 memory_view_expr = {0}; // TODO(rjf): qualify by process when possible + String8 memory_view_cursor_expr = expr; + + // rjf: find existing memory view + CFG_Node *memory_view = &cfg_nil_node; + for(RD_WindowState *ws = rd_state->first_window_state; ws != &rd_nil_window_state; ws = ws->order_next) + { + CFG_Node *window = cfg_node_from_id(ws->cfg_id); + CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, window); + for(CFG_PanelNode *panel = panel_tree.root; + panel != &cfg_nil_panel_node; + panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next) + { + if(panel->first != &cfg_nil_panel_node) { continue; } + for(CFG_NodePtrNode *tab_n = panel->tabs.first; tab_n != 0; tab_n = tab_n->next) + { + CFG_Node *tab = tab_n->v; + if(str8_match(tab->string, s("memory"), 0)) + { + memory_view = tab; + } + } + } + if(memory_view != &cfg_nil_node && window->id == rd_regs()->window) + { + break; + } + } + + // rjf: create memory view if it didn't exist + if(memory_view == &cfg_nil_node) + { + // rjf: find biggest panel in active window + CFG_Node *window = cfg_node_from_id(rd_regs()->window); + CFG_PanelTree panel_tree = cfg_panel_tree_from_cfg(scratch.arena, window); + CFG_PanelNode *biggest_panel = &cfg_nil_panel_node; + { + Rng2F32 root_rect = r2f32(v2f32(0, 0), v2f32(1000, 1000)); + F32 best_panel_area = 0; + for(CFG_PanelNode *panel = panel_tree.root; + panel != &cfg_nil_panel_node; + panel = cfg_panel_node_rec__depth_first_pre(panel_tree.root, panel).next) + { + if(panel->first != &cfg_nil_panel_node) + { + continue; + } + Rng2F32 panel_rect = cfg_target_rect_from_panel_node(root_rect, panel_tree.root, panel); + Vec2F32 panel_rect_dim = dim_2f32(panel_rect); + F32 panel_area = panel_rect_dim.x*panel_rect_dim.y; + if((best_panel_area == 0 || panel_area > best_panel_area)) + { + best_panel_area = panel_area; + biggest_panel = panel; + } + } + } + + // rjf: open new tab on that panel + if(biggest_panel != &cfg_nil_panel_node) + { + memory_view = cfg_node_new(rd_state->cfg, biggest_panel->cfg, s("memory")); + } + } + + // rjf: parameterize memory view, select memory view, snap to cursor + if(memory_view != &cfg_nil_node) + { + CFG_Node *expr_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, memory_view, s("expression")); + cfg_node_new_replace(rd_state->cfg, expr_root, memory_view_expr); + CFG_Node *cursor_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, memory_view, s("cursor")); + cfg_node_new_replace(rd_state->cfg, cursor_root, memory_view_cursor_expr); + CFG_Node *mark_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, memory_view, s("mark")); + cfg_node_new_replace(rd_state->cfg, mark_root, memory_view_cursor_expr); + rd_cmd(RD_CmdKind_FocusPanel, .panel = memory_view->parent->id); + rd_cmd(RD_CmdKind_FocusTab, .tab = memory_view->id); + rd_cmd(RD_CmdKind_CenterCursor, .view = memory_view->id); + } + }break; + + //- rjf: break-when-value-changes + case RD_CmdKind_BreakWhenValueChanges: + { + E_Eval eval = e_eval_from_string(rd_regs()->expr); + U64 size = e_type_byte_size_from_key(eval.irtree.type_key); + U64 bp_range_size = 1; + if(size > bp_range_size) {bp_range_size = 2;} + if(size > bp_range_size) {bp_range_size = 4;} + if(size > bp_range_size) {bp_range_size = 8;} + CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), s("user")); + CFG_Node *bp = cfg_node_new(rd_state->cfg, user, s("breakpoint")); + CFG_Node *project = cfg_node_new(rd_state->cfg, bp, s("project")); + cfg_node_new(rd_state->cfg, project, rd_state->project_path); + CFG_Node *addr_loc = cfg_node_new(rd_state->cfg, bp, s("address_location")); + cfg_node_new(rd_state->cfg, addr_loc, rd_regs()->expr); + CFG_Node *rng = cfg_node_new(rd_state->cfg, bp, s("address_range_size")); + cfg_node_newf(rd_state->cfg, rng, "%I64u", bp_range_size); + CFG_Node *brk = cfg_node_new(rd_state->cfg, bp, s("break_on_write")); + cfg_node_new(rd_state->cfg, brk, s("1")); + str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, "$%I64x", bp->id); + }break; + //- rjf: queries case RD_CmdKind_PushQuery: { String8 cmd_name = rd_regs()->cmd_name; RD_CmdKindInfo *cmd_kind_info = rd_cmd_kind_info_from_string(cmd_name); + // rjf: close existing context menus + { + CFG_Node *window = cfg_node_from_id(rd_regs()->window); + RD_WindowState *ws = rd_window_state_from_cfg(window); + ui_ctx_menu_close(); + ws->menu_bar_focused = 0; + } + // rjf: floating queries -> set up window to build immediate-mode top-level query CFG_Node *view = &cfg_nil_node; B32 is_floating = (cmd_name.size == 0 || cmd_kind_info->query.flags & RD_QueryFlag_Floating); @@ -14666,6 +15950,8 @@ rd_frame(void) view = cfg_node_child_from_string_or_alloc(rd_state->cfg, window_query, str8_lit("watch")); CFG_Node *expr = cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("expression")); cfg_node_new_replace(rd_state->cfg, expr, rd_regs()->expr); + CFG_Node *ctx_expr = cfg_node_child_from_string_or_alloc(rd_state->cfg, view, s("context_expression")); + cfg_node_new_replace(rd_state->cfg, ctx_expr, rd_regs()->ctx_expr); } // rjf: non-floating -> embed in view @@ -14702,6 +15988,22 @@ rd_frame(void) { cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("lister")); } + if(!rd_regs()->small_size) + { + cfg_node_release(rd_state->cfg, cfg_node_child_from_string(view, str8_lit("small"))); + } + else + { + cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("small")); + } + if(!rd_regs()->activate_with_single_click) + { + cfg_node_release(rd_state->cfg, cfg_node_child_from_string(view, str8_lit("activate_with_single_click"))); + } + else + { + cfg_node_child_from_string_or_alloc(rd_state->cfg, view, str8_lit("activate_with_single_click")); + } } // rjf: choose initial input string @@ -14715,7 +16017,7 @@ rd_frame(void) String8 current_path_string = current_path->first->string; if(current_path_string.size == 0) { - current_path_string = path_normalized_from_string(scratch.arena, os_get_current_path(scratch.arena)); + current_path_string = path_normalized_from_string(scratch.arena, get_current_path(scratch.arena)); } initial_input = current_path_string; initial_input = push_str8f(scratch.arena, "%S/", initial_input); @@ -14965,6 +16267,7 @@ rd_frame(void) CFG_NodePtrList bps = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); for(CFG_NodePtrNode *n = bps.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } CFG_Node *bp = n->v; CFG_Node *cnd = cfg_node_child_from_string(bp, str8_lit("condition")); RD_Location loc = rd_location_from_cfg(bp); @@ -14982,8 +16285,10 @@ rd_frame(void) } if(!already_exists) { - CFG_Node *project = cfg_node_child_from_string(cfg_node_root(), str8_lit("project")); - CFG_Node *bp = cfg_node_new(rd_state->cfg, project, str8_lit("breakpoint")); + CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); + CFG_Node *bp = cfg_node_new(rd_state->cfg, user, str8_lit("breakpoint")); + CFG_Node *project = cfg_node_new(rd_state->cfg, bp, str8_lit("project")); + cfg_node_new(rd_state->cfg, project, rd_state->project_path); rd_cmd(RD_CmdKind_RelocateCfg, .cfg = bp->id); if(rd_regs()->do_lister && !rd_regs()->non_graphical) { @@ -15006,24 +16311,24 @@ rd_frame(void) CFG_NodePtrList bps = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); for(CFG_NodePtrNode *n = bps.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } cfg_node_release(rd_state->cfg, n->v); } }break; - case RD_CmdKind_ListBreakpoints: - { - CFG_NodePtrList list = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); - for(CFG_NodePtrNode *n = list.first; n != 0; n = n->next) - { - String8 string = cfg_string_from_tree(rd_state->cmd_output_arena, rd_state->cfg_schema_table, str8_zero(), n->v); - str8_list_push(rd_state->cmd_output_arena, &rd_state->cmd_outputs, string); - } - }break; //- rjf: output case RD_CmdKind_ClearOutput: { + // rjf: get output label + String8 output_label = rd_regs()->string; + + // rjf: output label -> key + C_ID id = {u128_hash_from_str8(output_label)}; + C_Key key = c_key_make(d_user_state->output_log_root, id); + + // rjf: clear MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("")}; - mtx_push_op(d_state->output_log_key, op); + mtx_push_op(key, op); }break; //- rjf: watch pins @@ -15065,10 +16370,12 @@ rd_frame(void) //- rjf: debug infos case RD_CmdKind_LoadDebugInfo: { - CFG_Node *project = cfg_node_child_from_string(cfg_node_root(), str8_lit("project")); - CFG_Node *di = cfg_node_new(rd_state->cfg, project, str8_lit("debug_info")); + CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); + CFG_Node *di = cfg_node_new(rd_state->cfg, user, str8_lit("debug_info")); CFG_Node *path = cfg_node_new(rd_state->cfg, di, str8_lit("path")); cfg_node_new(rd_state->cfg, path, rd_regs()->file_path); + CFG_Node *project = cfg_node_new(rd_state->cfg, di, str8_lit("project")); + cfg_node_new(rd_state->cfg, project, rd_state->project_path); }break; case RD_CmdKind_UnloadDebugInfo: { @@ -15154,8 +16461,8 @@ rd_frame(void) String8 name = rd_regs()->string; if(name.size != 0) { - String8 themes_folder = push_str8f(scratch.arena, "%S/raddbg/themes", os_get_process_info()->user_program_data_path); - if(os_make_directory(themes_folder)) + String8 themes_folder = str8f(scratch.arena, "%S/raddbg/themes", get_process_info()->user_program_config_data_path); + if(make_directory(themes_folder)) { String8 dst_path = push_str8f(scratch.arena, "%S/%S", themes_folder, name); CFG_Node *parent = cfg_node_from_id(rd_regs()->cfg); @@ -15166,7 +16473,7 @@ rd_frame(void) str8_list_push(scratch.arena, &strings, cfg_string_from_tree(scratch.arena, rd_state->cfg_schema_table, str8_chop_last_slash(dst_path), n->v)); } String8 data = str8_list_join(scratch.arena, &strings, 0); - if(os_write_data_to_file_path(dst_path, data)) + if(write_data_to_file_path(dst_path, data)) { if(kind == RD_CmdKind_SaveAndSetTheme) { @@ -15234,6 +16541,10 @@ rd_frame(void) CFG_Node *existing_watch = &cfg_nil_node; for(CFG_Node *child = watch_tab->first; child != &cfg_nil_node; child = child->next) { + if(rd_cfg_is_project_filtered(child)) + { + continue; + } if(str8_match(child->string, str8_lit("watch"), 0) && str8_match(child->first->string, rd_regs()->string, 0)) { existing_watch = child; @@ -15285,7 +16596,7 @@ rd_frame(void) }break; case RD_CmdKind_SetNextStatement: { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); String8 file_path = rd_regs()->file_path; U64 new_rip_vaddr = rd_regs()->vaddr_range.min; if(file_path.size != 0) @@ -15293,11 +16604,11 @@ rd_frame(void) D_LineList *lines = &rd_regs()->lines; for(D_LineNode *n = lines->first; n != 0; n = n->next) { - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, n->v.dbgi_key); - CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); - if(module != &ctrl_entity_nil) + D_EntityList modules = d_modules_from_dbgi_key(scratch.arena, n->v.dbgi_key); + D_Entity *module = d_module_from_thread_candidates(thread, &modules); + if(module != &d_entity_nil) { - new_rip_vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); + new_rip_vaddr = d_vaddr_from_voff(module, n->v.voff_range.min); break; } } @@ -15371,34 +16682,34 @@ rd_frame(void) }break; //- rjf: os event passthrough - case RD_CmdKind_OSEvent: + case RD_CmdKind_WMEvent: { - OS_Event *os_event = rd_regs()->os_event; - RD_WindowState *ws = rd_window_state_from_os_handle(os_event->window); - if(os_event != 0 && ws != &rd_nil_window_state) + WM_Event *wm_event = rd_regs()->wm_event; + RD_WindowState *ws = rd_window_state_from_os_handle(wm_event->window); + if(wm_event != 0 && ws != &rd_nil_window_state) { UI_Event ui_event = zero_struct; UI_EventKind kind = UI_EventKind_Null; { - switch(os_event->kind) + switch(wm_event->kind) { default:{}break; - case OS_EventKind_Press: {kind = UI_EventKind_Press;}break; - case OS_EventKind_Release: {kind = UI_EventKind_Release;}break; - case OS_EventKind_MouseMove: {kind = UI_EventKind_MouseMove;}break; - case OS_EventKind_Text: {kind = UI_EventKind_Text;}break; - case OS_EventKind_Scroll: {kind = UI_EventKind_Scroll;}break; - case OS_EventKind_FileDrop: {kind = UI_EventKind_FileDrop;}break; + case WM_EventKind_Press: {kind = UI_EventKind_Press;}break; + case WM_EventKind_Release: {kind = UI_EventKind_Release;}break; + case WM_EventKind_MouseMove: {kind = UI_EventKind_MouseMove;}break; + case WM_EventKind_Text: {kind = UI_EventKind_Text;}break; + case WM_EventKind_Scroll: {kind = UI_EventKind_Scroll;}break; + case WM_EventKind_FileDrop: {kind = UI_EventKind_FileDrop;}break; } } ui_event.kind = kind; - ui_event.key = os_event->key; - ui_event.modifiers = os_event->modifiers; - ui_event.string = os_event->character ? str8_from_32(ui_build_arena(), str32(&os_event->character, 1)) : str8_zero(); - ui_event.paths = str8_list_copy(ui_build_arena(), &os_event->strings); - ui_event.pos = os_event->pos; - ui_event.delta_2f32 = os_event->delta; - ui_event.timestamp_us = os_event->timestamp_us; + ui_event.key = wm_event->key; + ui_event.modifiers = wm_event->modifiers; + ui_event.string = wm_event->character ? str8_from_32(ui_build_arena(), str32(&wm_event->character, 1)) : str8_zero(); + ui_event.paths = str8_list_copy(ui_build_arena(), &wm_event->strings); + ui_event.pos = wm_event->pos; + ui_event.delta_2f32 = wm_event->delta; + ui_event.timestamp_us = wm_event->timestamp_us; ui_event_list_push(scratch.arena, &ws->ui_events, &ui_event); } }break; @@ -15410,10 +16721,10 @@ rd_frame(void) }break; case RD_CmdKind_SelectThread: { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle)); - CTRL_Entity *machine = ctrl_entity_ancestor_from_kind(process, CTRL_EntityKind_Machine); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, d_cached_ip_from_thread(thread->handle)); + D_Entity *machine = d_entity_ancestor_from_kind(process, D_EntityKind_Machine); rd_state->base_regs.v.unwind_count = 0; rd_state->base_regs.v.inline_depth = 0; rd_state->base_regs.v.thread = thread->handle; @@ -15425,12 +16736,12 @@ rd_frame(void) case RD_CmdKind_SelectUnwind: { Access *access = access_open(); - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_base_regs()->thread); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, thread->handle, 1, os_now_microseconds()+10000); - CTRL_CallStackFrame *frame = ctrl_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, rd_regs()->inline_depth); + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(access, thread->handle, 1, now_time_us()+10000); + D_CallStackFrame *frame = d_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, rd_regs()->inline_depth); if(frame == 0) { - frame = ctrl_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, 0); + frame = d_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, 0); } if(frame) { @@ -15444,10 +16755,10 @@ rd_frame(void) case RD_CmdKind_DownOneFrame: { Access *access = access_open(); - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_base_regs()->thread); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, thread->handle, 1, os_now_microseconds()+10000); - CTRL_CallStackFrame *current_frame = ctrl_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, rd_regs()->inline_depth); - CTRL_CallStackFrame *next_frame = current_frame; + D_Entity *thread = d_entity_from_handle(rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(access, thread->handle, 1, now_time_us()+10000); + D_CallStackFrame *current_frame = d_call_stack_frame_from_unwind_and_inline_depth(&call_stack, rd_regs()->unwind_count, rd_regs()->inline_depth); + D_CallStackFrame *next_frame = current_frame; if(current_frame != 0) switch(kind) { default:{}break; @@ -15464,7 +16775,7 @@ rd_frame(void) } if(next_frame != 0) { - CTRL_CallStackFrame *next_base_frame = next_frame + next_frame->inline_depth; + D_CallStackFrame *next_base_frame = next_frame + next_frame->inline_depth; rd_cmd(RD_CmdKind_SelectUnwind, .unwind_count = next_frame->unwind_count, .inline_depth = next_frame->inline_depth); @@ -15500,6 +16811,15 @@ rd_frame(void) evt.slot = UI_EventActionSlot_Cancel; ui_event_list_push(scratch.arena, &ws->ui_events, &evt); }break; + case RD_CmdKind_FocusMenu: + { + CFG_Node *window = cfg_node_from_id(rd_regs()->window); + RD_WindowState *ws = rd_window_state_from_cfg(window); + UI_Event evt = zero_struct; + evt.kind = UI_EventKind_Press; + evt.slot = UI_EventActionSlot_FocusMenu; + ui_event_list_push(scratch.arena, &ws->ui_events, &evt); + }break; //- rjf: directional movement & text controls // @@ -15919,7 +17239,8 @@ rd_frame(void) RD_WindowState *ws = rd_window_state_from_cfg(window); UI_Event evt = zero_struct; evt.kind = UI_EventKind_Text; - evt.string = os_get_clipboard_text(scratch.arena); + evt.flags = UI_EventFlag_Paste; + evt.string = wm_get_clipboard_text(scratch.arena); ui_event_list_push(scratch.arena, &ws->ui_events, &evt); }break; case RD_CmdKind_InsertText: @@ -15995,6 +17316,7 @@ rd_frame(void) U64 idx = 0; for(CFG_NodePtrNode *n = bp_cfgs.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } CFG_Node *src_bp = n->v; B32 src_bp_is_disabled = rd_disabled_from_cfg(src_bp); if(src_bp_is_disabled) @@ -16132,13 +17454,13 @@ rd_frame(void) } //////////////////////////// - //- rjf: gather exception code filters + //- rjf: gather debug engine settings // - U64 exception_code_filters[(CTRL_ExceptionCodeKind_COUNT+63)/64] = {0}; + U64 exception_code_filters[(D_ExceptionCodeKind_COUNT+63)/64] = {0}; { - for EachNonZeroEnumVal(CTRL_ExceptionCodeKind, k) + for EachNonZeroEnumVal(D_ExceptionCodeKind, k) { - String8 name = ctrl_exception_code_kind_lowercase_code_string_table[k]; + String8 name = d_exception_code_kind_lowercase_code_string_table[k]; B32 setting = rd_setting_b32_from_name(name); if(setting) { @@ -16150,24 +17472,75 @@ rd_frame(void) //////////////////////////// //- rjf: tick debug engine // + U64 process_count_pre_tick = 0; + { + D_EntityArray all_processes = d_entity_array_from_kind(D_EntityKind_Process); + process_count_pre_tick = all_processes.count; + } U64 cmd_count_pre_tick = rd_state->cmds[0].count; - D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps, exception_code_filters); + B32 soft_halt_issued = d_user_state->ctrl_soft_halt_issued; + D_EventList engine_events = d_tick(scratch.arena, &targets, &breakpoints, &path_maps, exception_code_filters, rd_state->auto_download_debug_info); //////////////////////////// //- rjf: process debug engine events // + B32 did_session_start = 0; for(D_EventNode *n = engine_events.first; n != 0; n = n->next) { D_Event *evt = &n->v; switch(evt->kind) { default:{}break; - case D_EventKind_ModuleLoad: + case D_EventKind_NewProc: { - CTRL_Entity *module = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, evt->module); - CTRL_Entity *debug_info_path = ctrl_entity_child_from_kind(module, CTRL_EntityKind_DebugInfoPath); + D_EntityArray all_processes = d_entity_array_from_kind(D_EntityKind_Process); + + // rjf: no processes before this one -> new session + if(process_count_pre_tick == 0 && all_processes.count != 0 && !did_session_start) + { + did_session_start = 1; + D_Entity *process = all_processes.v[0]; + CFG_Node *target = cfg_node_from_id(process->src_msg_id); + + // rjf: target -> output label + String8 output_label = cfg_node_child_from_string(target, s("output_label"))->first->string; + if(output_label.size == 0) + { + output_label = rd_default_setting_from_names(s("target"), s("output_label")); + } + + // rjf: output label -> key + C_ID id = {u128_hash_from_str8(output_label)}; + C_Key key = c_key_make(d_user_state->output_log_root, id); + + // rjf: reset output log for associated target + { + MTX_Op op = {r1u64(0, 0xffffffffffffffffull), str8_lit("[new session]\n")}; + mtx_push_op(key, op); + } + + // rjf: reset external window + MemoryZeroStruct(&rd_state->prestop_focused_window); + + // rjf: eliminate all previously loaded debug infos + CFG_NodePtrList dbg_infos = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("debug_info")); + for EachNode(n, CFG_NodePtrNode, dbg_infos.first) + { + if(rd_cfg_is_project_filtered(n->v)) + { + continue; + } + cfg_node_release(rd_state->cfg, n->v); + } + } + }break; + case D_EventKind_ModuleDebugInfoPathChange: + { + D_Entity *module = d_entity_from_handle(evt->entity); + D_Entity *debug_info_path = d_entity_child_from_kind(module, D_EntityKind_DebugInfoPath); String8 new_path = debug_info_path->string; - if(new_path.size != 0 && os_file_path_exists(new_path)) + B32 file_exists = 1; // file_path_exists(new_path); + if(new_path.size != 0 && file_exists) { CFG_NodePtrList dbg_infos = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("debug_info")); B32 path_found = 0; @@ -16175,6 +17548,10 @@ rd_frame(void) for EachNode(n, CFG_NodePtrNode, dbg_infos.first) { CFG_Node *di = n->v; + if(rd_cfg_is_project_filtered(di)) + { + continue; + } String8 path = rd_path_from_cfg(di); if(str8_match(path, new_path, 0)) { @@ -16185,12 +17562,14 @@ rd_frame(void) } if(!path_found) { - CFG_Node *project = cfg_node_child_from_string(cfg_node_root(), str8_lit("project")); - CFG_Node *di = cfg_node_new(rd_state->cfg, project, str8_lit("debug_info")); + CFG_Node *user = cfg_node_child_from_string(cfg_node_root(), str8_lit("user")); + CFG_Node *di = cfg_node_new(rd_state->cfg, user, str8_lit("debug_info")); CFG_Node *path_root = cfg_node_new(rd_state->cfg, di, str8_lit("path")); CFG_Node *timestamp_root = cfg_node_new(rd_state->cfg, di, str8_lit("timestamp")); + CFG_Node *project_root = cfg_node_new(rd_state->cfg, di, str8_lit("project")); cfg_node_new(rd_state->cfg, path_root, new_path); cfg_node_newf(rd_state->cfg, timestamp_root, "%I64u", debug_info_path->timestamp); + cfg_node_new(rd_state->cfg, project_root, rd_state->project_path); } else { @@ -16199,54 +17578,54 @@ rd_frame(void) } } }break; - case D_EventKind_ProcessEnd: + case D_EventKind_EndProc: if(rd_state->quit_after_success) { - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); - if(evt->code == 0 && processes.count == 0) + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); + if(evt->u64_code == 0 && processes.count == 0) { rd_cmd(RD_CmdKind_Exit); } - else if(evt->code != 0) + else if(evt->u64_code != 0) { rd_state->quit_after_success = 0; } }break; - case D_EventKind_Stop: + case D_EventKind_Stopped: { - B32 need_refocus = (evt->cause != D_EventCause_SoftHalt); - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, evt->thread); - U64 vaddr = evt->vaddr; - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, vaddr); - U64 voff = ctrl_voff_from_vaddr(module, vaddr); - U64 test_cached_vaddr = ctrl_rip_from_thread(&d_state->ctrl_entity_store->ctx, thread->handle); + B32 need_refocus = (evt->cause != D_EventCause_InterruptedByHalt || !soft_halt_issued); + D_Entity *thread = d_entity_from_handle(evt->entity); + U64 vaddr = evt->rip_vaddr; + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); + U64 test_cached_vaddr = d_cached_ip_from_thread(thread->handle); // rjf: valid stop thread? -> select & snap - if(need_refocus && thread != &ctrl_entity_nil && evt->cause != D_EventCause_Halt) + if(need_refocus && thread->kind == D_EntityKind_Thread && evt->cause != D_EventCause_InterruptedByHalt) { rd_cmd(RD_CmdKind_SelectThread, .thread = thread->handle); } // rjf: no stop-causing thread, but have selected thread? -> snap to selected - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_base_regs()->thread); - if(need_refocus && (evt->cause == D_EventCause_Halt || thread == &ctrl_entity_nil) && selected_thread != &ctrl_entity_nil) + D_Entity *selected_thread = d_entity_from_handle(rd_base_regs()->thread); + if(need_refocus && (evt->cause == D_EventCause_InterruptedByHalt || thread->kind != D_EntityKind_Thread) && selected_thread != &d_entity_nil) { rd_cmd(RD_CmdKind_SelectThread, .thread = selected_thread->handle); } // rjf: no stop-causing thread, but don't have selected thread? -> snap to first available thread - if(need_refocus && thread == &ctrl_entity_nil && selected_thread == &ctrl_entity_nil) + if(need_refocus && thread->kind != D_EntityKind_Thread && selected_thread == &d_entity_nil) { - CTRL_EntityArray threads = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Thread); - CTRL_Entity *first_available_thread = ctrl_entity_array_first(&threads); + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); + D_Entity *first_available_thread = d_entity_array_first(&threads); rd_cmd(RD_CmdKind_SelectThread, .thread = first_available_thread->handle); } // rjf: increment breakpoint hit counts if(evt->cause == D_EventCause_UserBreakpoint) { - CFG_Node *bp = cfg_node_from_id(evt->id); + CFG_Node *bp = cfg_node_from_id(evt->u64_code); if(bp != &cfg_nil_node) { CFG_Node *hit_count_root = cfg_node_child_from_string_or_alloc(rd_state->cfg, bp, str8_lit("hit_count")); @@ -16258,12 +17637,12 @@ rd_frame(void) } // rjf: focus window if none focused, and if we have a thread to snap to - if(need_refocus && (selected_thread != &ctrl_entity_nil || thread != &ctrl_entity_nil)) + if(!rd_state->override_focus_on_stop && need_refocus && (selected_thread != &d_entity_nil || thread != &d_entity_nil)) { B32 any_window_is_focused = 0; for(RD_WindowState *ws = rd_state->first_window_state; ws != &rd_nil_window_state; ws = ws->order_next) { - if(os_window_is_focused(ws->os)) + if(wm_window_is_focused(ws->os)) { any_window_is_focused = 1; break; @@ -16279,13 +17658,55 @@ rd_frame(void) } if(ws != &rd_nil_window_state) { - rd_state->prestop_focused_window = os_focused_external_window(); - os_window_set_minimized(ws->os, 0); - os_window_bring_to_front(ws->os); - os_window_focus(ws->os); + rd_state->prestop_focused_window = wm_focused_external_window(); + wm_window_set_minimized(ws->os, 0); + wm_window_bring_to_front(ws->os); + wm_window_focus(ws->os); } } } + + // rjf: update the autos-determining code range + { + D_Handle new_thread_handle = thread->handle; + U64 new_sp = d_cached_sp_from_thread(new_thread_handle); + if(thread == &d_entity_nil) + { + new_thread_handle = selected_thread->handle; + } + if(d_handle_match(new_thread_handle, rd_state->last_stop_selected_thread) && + new_sp == rd_state->last_stop_selected_thread_sp) + { + rd_state->autos_determining_vaddr_range = r1u64(rd_state->last_stop_selected_thread_ip, vaddr); + } + else + { + MemoryZeroStruct(&rd_state->autos_determining_vaddr_range); + } + rd_state->last_stop_selected_thread = new_thread_handle; + rd_state->last_stop_selected_thread_ip = vaddr; + rd_state->last_stop_selected_thread_sp = new_sp; + } + }break; + case D_EventKind_DebugString: + { + // rjf: process -> src target's output label + D_Entity *process = d_entity_from_handle(evt->parent); + D_MsgID src_msg_id = process->src_msg_id; + CFG_Node *target = cfg_node_from_id(src_msg_id); + String8 output_label = cfg_node_child_from_string(target, s("output_label"))->first->string; + if(output_label.size == 0) + { + output_label = rd_default_setting_from_names(s("target"), s("output_label")); + } + + // rjf: output label -> key + C_ID id = {u128_hash_from_str8(output_label)}; + C_Key key = c_key_make(d_user_state->output_log_root, id); + + // rjf: push to keyed output + MTX_Op op = {r1u64(max_U64, max_U64), evt->string}; + mtx_push_op(key, op); }break; } } @@ -16302,11 +17723,29 @@ rd_frame(void) ////////////////////////////// //- rjf: retry find-thread // - if(!ctrl_handle_match(ctrl_handle_zero(), find_thread_retry)) + if(!d_handle_match(d_handle_zero(), find_thread_retry)) { rd_cmd(RD_CmdKind_FindThread, .thread = find_thread_retry); } + ////////////////////////////// + //- rjf: update window titles + // + if(rd_state->frame_depth == 1) + { + Temp scratch = scratch_begin(0, 0); + String8 window_title = rd_push_window_title(scratch.arena); + if(!str8_match(window_title, rd_state->last_window_title, 0)) + { + for(RD_WindowState *ws = rd_state->first_window_state; ws != &rd_nil_window_state; ws = ws->order_next) + { + wm_window_set_title(ws->os, window_title); + } + } + rd_state->last_window_title = str8_copy(rd_frame_arena(), window_title); + scratch_end(scratch); + } + //////////////////////////// //- rjf: rotate command slots, bump command gen counter // @@ -16451,7 +17890,7 @@ rd_frame(void) { CFG_Node *window = n->v; RD_WindowState *w = rd_window_state_from_cfg(window); - B32 window_is_focused = os_window_is_focused(w->os); + B32 window_is_focused = wm_window_is_focused(w->os); if(window_is_focused) { rd_state->last_focused_window = w->cfg_id; @@ -16482,7 +17921,7 @@ rd_frame(void) { ui_state_release(ws->ui); r_window_unequip(ws->os, ws->r); - os_window_close(ws->os); + wm_window_close(ws->os); arena_release(ws->drop_completion_arena); arena_release(ws->query_arena); arena_release(ws->hover_eval_arena); @@ -16501,7 +17940,7 @@ rd_frame(void) // if(DEV_simulate_lag) { - os_sleep_milliseconds(300); + sleep_ms(300); } ////////////////////////////// @@ -16562,14 +18001,14 @@ rd_frame(void) { CFG_Node *window = cfg_node_from_id(n->v); RD_WindowState *ws = rd_window_state_from_cfg(window); - os_window_first_paint(ws->os); + wm_window_first_paint(ws->os); } } ////////////////////////////// //- rjf: determine frame time, record into history // - U64 end_time_us = os_now_microseconds(); + U64 end_time_us = now_time_us(); U64 frame_time_us = end_time_us-begin_time_us; rd_state->frame_time_us_history[rd_state->frame_index%ArrayCount(rd_state->frame_time_us_history)] = frame_time_us; @@ -16607,7 +18046,7 @@ rd_frame(void) ProfScope("collect logs") { LogScopeResult log = log_scope_end(scratch.arena); - os_append_data_to_file_path(rd_state->log_path, log.strings[LogMsgKind_Info]); + append_data_to_file_path(rd_state->log_path, log.strings[LogMsgKind_Info]); if(log.strings[LogMsgKind_UserError].size != 0) { String8 error_log = log.strings[LogMsgKind_UserError]; diff --git a/src/raddbg/raddbg_core.h b/src/raddbg/raddbg_core.h index 56f5b803..b7994c02 100644 --- a/src/raddbg/raddbg_core.h +++ b/src/raddbg/raddbg_core.h @@ -10,11 +10,13 @@ typedef U64 RD_EvalSpaceKind; enum { - RD_EvalSpaceKind_MetaQuery = CTRL_EvalSpaceKind_FirstUserDefined, + RD_EvalSpaceKind_MetaQuery = D_EvalSpaceKind_FirstUserDefined, RD_EvalSpaceKind_MetaCfg, RD_EvalSpaceKind_MetaCmd, RD_EvalSpaceKind_MetaTheme, + RD_EvalSpaceKind_MetaView, RD_EvalSpaceKind_MetaCtrlEntity, + RD_EvalSpaceKind_MetaCallStack, RD_EvalSpaceKind_MetaUnattachedProcess, RD_EvalSpaceKind_MetaCallStackTree, }; @@ -85,11 +87,8 @@ enum typedef U32 RD_CmdKindFlags; enum { - RD_CmdKindFlag_ListInUI = (1<<0), - RD_CmdKindFlag_ListInIPCDocs = (1<<1), - RD_CmdKindFlag_ListInTab = (1<<2), - RD_CmdKindFlag_ListInTextPt = (1<<3), - RD_CmdKindFlag_ListInTextRng = (1<<4), + RD_CmdKindFlag_ListInUI = (1<<0), + RD_CmdKindFlag_ListInIPCDocs = (1<<1), }; //////////////////////////////// @@ -282,7 +281,7 @@ struct RD_WindowState // rjf: top-level info & handles Arena *arena; - OS_Handle os; + WM_Window os; R_Handle r; UI_State *ui; F32 last_dpi; @@ -387,9 +386,18 @@ struct RD_State Arena *arena; B32 quit; B32 quit_after_success; + B32 override_focus_on_stop; S32 frame_depth; U64 frame_eval_memread_endt_us; + // rjf: update checker + B32 sent_update_check; + B32 got_update_check; + B32 newer_update_available; + Arena *update_check_arena; + String8List update_check_response_body_pieces; + GuardedRing *update_check_http_ring; + // rjf: config bucket paths Arena *user_path_arena; String8 user_path; @@ -403,6 +411,8 @@ struct RD_State B32 alt_menu_bar_enabled; B32 use_default_stl_type_views; B32 use_default_ue_type_views; + B32 auto_download_debug_info; + EV_StringFlags eval_viz_base_string_flags; // rjf: animation rates F32 catchall_animation_rate; @@ -440,8 +450,9 @@ struct RD_State // rjf: frame parameters F32 frame_dt; Access *frame_access; + String8 last_window_title; - // rjf: evaluation cache + // rjf: evaluation caches E_Cache *eval_cache; // rjf: ambiguous path table (constructed from-scratch each frame) @@ -492,6 +503,19 @@ struct RD_State RD_Regs *next_hover_regs; RD_RegSlot next_hover_regs_slot; + // rjf: autos-determining code range + // + // NOTE(rjf): this includes only instructions that we've observed the + // selected thread passed. autos are *also* computed from disassembling + // the line at which any thread sits, but we only want to collect autos + // from larger ranges of instructions when we directly observer this + // on a particular selected thread within a single function. + // + D_Handle last_stop_selected_thread; + U64 last_stop_selected_thread_ip; + U64 last_stop_selected_thread_sp; + Rng1U64 autos_determining_vaddr_range; + // rjf: icon texture R_Handle icon_texture; @@ -540,7 +564,7 @@ struct RD_State String8 bind_change_cmd_name; // rjf: pre-stop focused window - OS_Handle prestop_focused_window; + WM_ExtWindow prestop_focused_window; }; //////////////////////////////// @@ -615,6 +639,7 @@ internal Vec4F32 rd_color_from_cfg(CFG_Node *cfg); internal B32 rd_disabled_from_cfg(CFG_Node *cfg); internal RD_Location rd_location_from_cfg(CFG_Node *cfg); +internal String8 rd_name_from_cfg(CFG_Node *cfg); internal String8 rd_label_from_cfg(CFG_Node *cfg); internal String8 rd_expr_from_cfg(CFG_Node *cfg); internal String8 rd_path_from_cfg(CFG_Node *cfg); @@ -636,8 +661,8 @@ internal String8List rd_possible_overrides_from_file_path(Arena *arena, String8 //////////////////////////////// //~ rjf: Control Entity Info Extraction -internal Vec4F32 rd_color_from_ctrl_entity(CTRL_Entity *entity); -internal String8 rd_name_from_ctrl_entity(Arena *arena, CTRL_Entity *entity); +internal Vec4F32 rd_color_from_ctrl_entity(D_Entity *entity); +internal String8 rd_name_from_ctrl_entity(Arena *arena, D_Entity *entity); //////////////////////////////// //~ rjf: Evaluation Spaces @@ -647,15 +672,15 @@ internal CFG_Node *rd_cfg_from_eval_space(E_Space space); internal E_Space rd_eval_space_from_cfg(CFG_Node *cfg); //- rjf: ctrl entity <-> eval space -internal CTRL_Entity *rd_ctrl_entity_from_eval_space(E_Space space); -internal E_Space rd_eval_space_from_ctrl_entity(CTRL_Entity *entity, E_SpaceKind kind); +internal D_Entity *rd_ctrl_entity_from_eval_space(E_Space space); +internal E_Space rd_eval_space_from_ctrl_entity(D_Entity *entity, E_SpaceKind kind); //- rjf: command name <-> eval space internal String8 rd_cmd_name_from_eval(E_Eval eval); //- rjf: eval space reads/writes internal U64 rd_eval_space_gen(E_Space space); -internal B32 rd_eval_space_read(E_Space space, void *out, Rng1U64 range); +internal B32 rd_eval_space_read(E_Space space, void *out, E_SpaceRangeInfo *out_range_info, Rng1U64 range); internal B32 rd_eval_space_write(E_Space space, void *in, Rng1U64 range); //- rjf: asynchronous streamed reads -> hashes from spaces @@ -699,6 +724,7 @@ internal E_Value rd_view_setting_value_from_name(String8 string); internal B32 rd_view_setting_b32_from_name(String8 string); internal U64 rd_view_setting_u64_from_name(String8 string); internal F32 rd_view_setting_f32_from_name(String8 string); +internal U64 rd_view_setting_addr_from_name(String8 string); //- rjf: evaluation & tag (a view's 'call') parameter extraction internal Rng1U64 rd_space_range_from_eval(E_Eval eval); @@ -726,7 +752,7 @@ internal void rd_store_view_paramf(String8 key, char *fmt, ...); internal String8 rd_push_window_title(Arena *arena); internal CFG_Node *rd_window_from_cfg(CFG_Node *cfg); internal RD_WindowState *rd_window_state_from_cfg(CFG_Node *cfg); -internal RD_WindowState *rd_window_state_from_os_handle(OS_Handle os); +internal RD_WindowState *rd_window_state_from_os_handle(WM_Window os); internal void rd_window_frame(void); //////////////////////////////// @@ -752,7 +778,7 @@ internal void rd_set_autocomp_regs_(E_Eval dst_eval, RD_Regs *regs); internal MD_Node *rd_theme_tree_from_name(Arena *arena, Access *access, String8 theme_name); internal Vec4F32 rd_rgba_from_code_color_slot(RD_CodeColorSlot slot); internal RD_CodeColorSlot rd_code_color_slot_from_txt_token_kind(TXT_TokenKind kind); -internal RD_CodeColorSlot rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 string); +internal RD_CodeColorSlot rd_code_color_slot_from_txt_token_kind_lookup_string(TXT_TokenKind kind, String8 string, B32 allow_macros, B32 is_called); //- rjf: fonts internal F32 rd_font_size(void); @@ -763,7 +789,18 @@ internal FNT_RasterFlags rd_raster_flags_from_slot(RD_FontSlot slot); //~ rjf: Process Control Info Stringification internal String8 rd_string_from_exception_code(U32 code); -internal DR_FStrList rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, CTRL_Event *event); +internal DR_FStrList rd_stop_explanation_fstrs_from_ctrl_event(Arena *arena, D_Event *event); + +//////////////////////////////// +//~ rjf: Source File Checksum Calculations + +internal AC_Artifact rd_md5_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out); +internal AC_Artifact rd_sha1_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out); +internal AC_Artifact rd_sha256_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out); +internal MD5 rd_md5_from_hash(U128 hash); +internal SHA1 rd_sha1_from_hash(U128 hash); +internal SHA256 rd_sha256_from_hash(U128 hash); +internal String8 rd_checksum_value_from_hash_kind(Arena *arena, U128 hash, RDI_ChecksumKind k); //////////////////////////////// //~ rjf: Vocab Info Lookups @@ -776,6 +813,11 @@ internal RD_VocabInfo *rd_vocab_info_from_code_name_plural(String8 code_name_plu #define rd_icon_kind_from_code_name(code_name) (rd_vocab_info_from_code_name(code_name)->icon_kind) #define rd_singular_from_code_name_plural(code_name_plural) (rd_vocab_info_from_code_name_plural(code_name_plural)->code_name) +//////////////////////////////// +//~ rjf: Auto Watch Computation + +internal String8Array rd_gather_auto_exprs(Arena *arena); + //////////////////////////////// //~ rjf: Continuous Frame Requests @@ -797,6 +839,7 @@ internal RD_Regs *rd_push_regs_(RD_Regs *regs); internal RD_Regs *rd_pop_regs(void); #define RD_RegsScope(...) DeferLoop(rd_push_regs(__VA_ARGS__), rd_pop_regs()) internal void rd_regs_fill_slot_from_string(RD_RegSlot slot, String8 query_expr, String8 string); +internal RD_RegSlot rd_regs_fill_slot_from_ctx_eval(E_Eval eval); //////////////////////////////// //~ rjf: Commands diff --git a/src/raddbg/raddbg_eval.c b/src/raddbg/raddbg_eval.c index 7d8237b0..f5fc95ca 100644 --- a/src/raddbg/raddbg_eval.c +++ b/src/raddbg/raddbg_eval.c @@ -27,13 +27,14 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(commands) Temp scratch = scratch_begin(&arena, 1); String8List cmd_names = {0}; E_Type *type = e_type_from_key(eval.irtree.type_key); + String8 collection_name = type->name; + String8 collection_filter_tag = str8f(scratch.arena, "{%S}", collection_name); for EachNonZeroEnumVal(RD_CmdKind, k) { RD_CmdKindInfo *info = &rd_cmd_kind_info_table[k]; - if(info->flags & RD_CmdKindFlag_ListInUI && - (!str8_match(type->name, str8_lit("text_pt_commands"), 0) || info->flags & RD_CmdKindFlag_ListInTextPt) && - (!str8_match(type->name, str8_lit("text_range_commands"), 0) || info->flags & RD_CmdKindFlag_ListInTextRng) && - (!str8_match(type->name, str8_lit("tab_commands"), 0) || info->flags & RD_CmdKindFlag_ListInTab)) + B32 show = ((str8_match(type->name, s("commands"), 0) && info->flags & RD_CmdKindFlag_ListInUI) || + (str8_find_needle(info->filter_tags, 0, collection_filter_tag, 0) < info->filter_tags.size)); + if(show) { String8 code_name = info->string; String8 description = info->description; @@ -46,7 +47,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(commands) CFG_KeyMapNodePtrList bindings = cfg_key_map_node_ptr_list_from_name(scratch.arena, rd_state->key_map, code_name); for(CFG_KeyMapNodePtr *n = bindings.first; n != 0; n = n->next) { - String8 binding_text = os_string_from_modifiers_key(scratch.arena, n->v->binding.modifiers, n->v->binding.key); + String8 binding_text = wm_string_from_modifiers_key(scratch.arena, n->v->binding.modifiers, n->v->binding.key); FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, filter, binding_text); if(matches.count == matches.needle_part_count) { @@ -122,18 +123,18 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(themes) //- rjf: gather theme files { - String8 theme_folder = push_str8f(scratch.arena, "%S/raddbg/themes", os_get_process_info()->user_program_data_path); - OS_FileIter *it = os_file_iter_begin(scratch.arena, theme_folder, OS_FileIterFlag_SkipFolders); - for(OS_FileInfo info = {0}; os_file_iter_next(scratch.arena, it, &info);) + String8 theme_folder = push_str8f(scratch.arena, "%S/raddbg/themes", get_process_info()->user_program_config_data_path); + FileIter *it = file_iter_begin(scratch.arena, theme_folder, FileIterFlag_SkipFolders); + for(FileInfo info = {0}; file_iter_next(scratch.arena, it, &info);) { String8 name = info.name; FuzzyMatchRangeList name_matches = fuzzy_match_find(scratch.arena, filter, name); if(name_matches.count == name_matches.needle_part_count) { - str8_list_push(scratch.arena, &names, push_str8_copy(arena, name)); + str8_list_push(scratch.arena, &names, str8_copy(arena, name)); } } - os_file_iter_end(it); + file_iter_end(it); } //- rjf: flatten & build accelerator @@ -157,6 +158,68 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(themes) } } +//////////////////////////////// +//~ rjf: `views` Type Hooks + +E_TYPE_ACCESS_FUNCTION_DEF(views) +{ + E_IRTreeAndType result = {&e_irnode_nil}; + if(expr->kind == E_ExprKind_ArrayIndex && + expr->first->next->kind == E_ExprKind_LeafStringLiteral) + { + Temp scratch = scratch_begin(&arena, 1); + String8 view_name = expr->first->next->string; + E_TypeKey view_type = e_type_key_cons(.kind = E_TypeKind_U64, .name = str8_lit("view")); + result.type_key = view_type; + result.mode = E_Mode_Null; + result.root = e_irtree_set_space(arena, e_space_make(RD_EvalSpaceKind_MetaView), e_irtree_const_u(arena, e_id_from_string(view_name))); + scratch_end(scratch); + } + return result; +} + +E_TYPE_EXPAND_INFO_FUNCTION_DEF(views) +{ + E_TypeExpandInfo result = {0}; + { + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: gather cfgs + String8List names = {0}; + for EachElement(idx, rd_name_schema_info_table) + { + if(rd_name_schema_info_table[idx].is_view) + { + String8 name = rd_name_schema_info_table[idx].name; + FuzzyMatchRangeList name_matches = fuzzy_match_find(scratch.arena, filter, name); + if(name_matches.count == name_matches.needle_part_count) + { + str8_list_push(scratch.arena, &names, name); + } + } + } + + //- rjf: flatten & build accelerator + String8Array *accel = push_array(arena, String8Array, 1); + *accel = str8_array_from_list(arena, &names); + result.user_data = accel; + result.expr_count = accel->count; + scratch_end(scratch); + } + return result; +} + +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(views) +{ + U64 out_idx = 0; + String8Array *accel = (String8Array *)user_data; + for(U64 idx = idx_range.min; idx < idx_range.max; idx += 1, out_idx += 1) + { + String8 name = accel->v[idx]; + evals_out[out_idx] = e_eval_from_string(name); + } +} + //////////////////////////////// //~ rjf: `locals` Type Hooks @@ -205,13 +268,18 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(locals) E_TYPE_EXPAND_INFO_FUNCTION_DEF(registers) { Temp scratch = scratch_begin(&arena, 1); - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); Arch arch = thread->arch; - U64 reg_count = regs_reg_code_count_from_arch(arch); - String8 *reg_strings = regs_reg_code_string_table_from_arch(arch); + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 reg_count = arch_info->reg_code_count; + String8 *reg_strings = arch_info->reg_code_name_table; String8List exprs_list = {0}; for(U64 idx = 1; idx < reg_count; idx += 1) { + if(arch_info->reg_code_base_table[idx] != 0) + { + continue; + } FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, filter, reg_strings[idx]); if(matches.count == matches.needle_part_count) { @@ -239,6 +307,49 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(registers) } } +//////////////////////////////// +//~ rjf: `autos` Type Hooks + +typedef struct RD_AutosAccel RD_AutosAccel; +struct RD_AutosAccel +{ + String8Array exprs; +}; + +E_TYPE_IREXT_FUNCTION_DEF(autos) +{ + E_IRExt irext = {0}; + { + RD_AutosAccel *accel = push_array(arena, RD_AutosAccel, 1); + accel->exprs = rd_gather_auto_exprs(arena); + irext.user_data = accel; + } + return irext; +} + +E_TYPE_EXPAND_INFO_FUNCTION_DEF(autos) +{ + E_TypeExpandInfo info = {0}; + RD_AutosAccel *accel = (RD_AutosAccel *)eval.irtree.user_data; + if(accel != 0) + { + info.expr_count = accel->exprs.count; + } + return info; +} + +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(autos) +{ + RD_AutosAccel *accel = (RD_AutosAccel *)eval.irtree.user_data; + if(accel != 0) + { + for EachInRange(idx, idx_range) + { + evals_out[idx - idx_range.min] = e_eval_from_string(accel->exprs.v[idx]); + } + } +} + //////////////////////////////// //~ rjf: Schema Type Hooks @@ -246,7 +357,7 @@ typedef struct RD_SchemaIRExt RD_SchemaIRExt; struct RD_SchemaIRExt { CFG_Node *cfg; - CTRL_Entity *entity; + D_Entity *entity; MD_NodePtrList schemas; }; @@ -290,26 +401,28 @@ E_TYPE_ACCESS_FUNCTION_DEF(schema) if(child_schema != &md_nil_node) { CFG_Node *cfg = ext->cfg; - CTRL_Entity *entity = ext->entity; + D_Entity *entity = ext->entity; CFG_Node *child = cfg_node_child_from_string(cfg, child_schema->string); E_TypeKey child_type_key = zero_struct; B32 wrap_child_w_meta_expr = 0; B32 is_query_child = md_node_has_tag(child_schema, str8_lit("query"), 0); E_TypeFlags type_flags = (!!is_query_child * E_TypeFlag_IsNotEditable); + B32 is_meta_eval = 1; + E_Mode child_mode = E_Mode_Offset; if(0){} //- rjf: ctrl entity members - else if(entity != &ctrl_entity_nil && str8_match(child_schema->string, str8_lit("label"), 0)) + else if(entity != &d_entity_nil && str8_match(child_schema->string, str8_lit("label"), 0)) { child_type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), entity->string.size, type_flags|E_TypeFlag_IsCodeText); } - else if(entity != &ctrl_entity_nil && str8_match(child_schema->string, str8_lit("exe"), 0)) + else if(entity != &d_entity_nil && str8_match(child_schema->string, str8_lit("exe"), 0)) { child_type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), entity->string.size, type_flags|E_TypeFlag_IsPathText); } - else if(entity != &ctrl_entity_nil && str8_match(child_schema->string, str8_lit("dbg"), 0)) + else if(entity != &d_entity_nil && str8_match(child_schema->string, str8_lit("dbg"), 0)) { - CTRL_Entity *dbg = ctrl_entity_child_from_kind(entity, CTRL_EntityKind_DebugInfoPath); + D_Entity *dbg = d_entity_child_from_kind(entity, D_EntityKind_DebugInfoPath); child_type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), dbg->string.size, type_flags|E_TypeFlag_IsPathText); } @@ -361,10 +474,17 @@ E_TYPE_ACCESS_FUNCTION_DEF(schema) child_type_key = e_type_key_cons(.kind = E_TypeKind_Struct, .name = str8_lit("vaddr_range"), .count = vaddr_range_members.count, .members = vaddr_range_members.v); scratch_end(scratch); } - else if(str8_match(child_schema->first->string, str8_lit("query"), 0)) + else if(str8_match(child_schema->first->string, str8_lit("set"), 0)) { child_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, child_schema->string); } + else if(entity != &d_entity_nil && str8_match(child_schema->first->string, s("address_space"), 0)) + { + D_Entity *process = entity; + child_type_key = e_type_key_cons_ptr(process->arch, e_type_key_basic(E_TypeKind_Void), 1, type_flags|E_TypeFlag_StubSingleLineExpansion|E_TypeFlag_ArrayLikeExpansion); + child_mode = E_Mode_Value; + is_meta_eval = 0; + } //- rjf: extend child type with meta-expression information if(wrap_child_w_meta_expr) @@ -463,14 +583,18 @@ E_TYPE_ACCESS_FUNCTION_DEF(schema) child_eval_space.u64s[0] = cfg->id; child_eval_space.u64s[1] = e_id_from_string(child_schema->string); } - else + else if(is_meta_eval && entity != &d_entity_nil) { child_eval_space = rd_eval_space_from_ctrl_entity(entity, RD_EvalSpaceKind_MetaCtrlEntity); child_eval_space.u64s[2] = e_id_from_string(child_schema->string); } + else if(entity != &d_entity_nil) + { + child_eval_space = rd_eval_space_from_ctrl_entity(entity, D_EvalSpaceKind_Entity); + } irtree.root = e_irtree_set_space(arena, child_eval_space, e_push_irnode(arena, RDI_EvalOp_ConstU64)); irtree.type_key = child_type_key; - irtree.mode = E_Mode_Offset; + irtree.mode = child_mode; } } return irtree; @@ -658,11 +782,11 @@ E_TYPE_ACCESS_FUNCTION_DEF(control) if(rhs->kind == E_ExprKind_LeafIdentifier && str8_match(str8_prefix(rhs->string, 1), str8_lit("$"), 0)) { - CTRL_Handle handle = ctrl_handle_from_string(rhs->string); - CTRL_Entity *entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, handle); + D_Handle handle = d_handle_from_string(rhs->string); + D_Entity *entity = d_entity_from_handle(handle); E_Space space = rd_eval_space_from_ctrl_entity(entity, RD_EvalSpaceKind_MetaCtrlEntity); result.root = e_irtree_set_space(arena, space, e_irtree_const_u(arena, 0)); - result.type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, ctrl_entity_kind_code_name_table[entity->kind]); + result.type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, d_entity_kind_code_name_table[entity->kind]); result.mode = E_Mode_Offset; } return result; @@ -693,7 +817,18 @@ E_TYPE_IREXT_FUNCTION_DEF(cfgs_slice) String8 cfg_name = rd_singular_from_code_name_plural(type->name); //- rjf: gather cfgs - CFG_NodePtrList cfgs_list = cfg_node_top_level_list_from_string(scratch.arena, cfg_name); + CFG_NodePtrList cfgs_list = {0}; + { + CFG_NodePtrList cfgs_list__all = cfg_node_top_level_list_from_string(scratch.arena, cfg_name); + for EachNode(n, CFG_NodePtrNode, cfgs_list__all.first) + { + if(rd_cfg_is_project_filtered(n->v)) + { + continue; + } + cfg_node_ptr_list_push(scratch.arena, &cfgs_list, n->v); + } + } //- rjf: gather commands String8List cmds_list = {0}; @@ -784,6 +919,10 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(cfgs_slice) for EachIndex(idx, ext->cfgs.count) { CFG_Node *cfg = ext->cfgs.v[idx]; + if(rd_cfg_is_project_filtered(cfg)) + { + continue; + } DR_FStrList fstrs = rd_title_fstrs_from_cfg(scratch.arena, cfg, 1); String8 string = dr_string_from_fstrs(scratch.arena, &fstrs); FuzzyMatchRangeList fuzzy_matches = fuzzy_match_find(scratch.arena, filter, string); @@ -935,15 +1074,133 @@ E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(cfgs_slice) return num; } +//////////////////////////////// +//~ rjf: `call_stack_frame` Type Hooks + +typedef struct RD_CallStackFrameAccel RD_CallStackFrameAccel; +struct RD_CallStackFrameAccel +{ + Arch arch; + D_Handle thread; + D_Handle process; + U64 frame_index; + D_CallStackFrame *call_stack_frame; +}; + +E_TYPE_IREXT_FUNCTION_DEF(call_stack_frame) +{ + RD_CallStackFrameAccel *accel = push_array(arena, RD_CallStackFrameAccel, 1); + { + Temp scratch = scratch_begin(&arena, 1); + E_OpList oplist = e_oplist_from_irtree(scratch.arena, irtree->root); + String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); + E_Interpretation interp = e_interpret(bytecode); + D_Entity *entity = rd_ctrl_entity_from_eval_space(interp.space); + U64 frame_index = interp.value.u64; + if(entity->kind == D_EntityKind_Thread) + { + B32 call_stack_high_priority = d_handle_match(entity->handle, rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(rd_state->frame_access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + accel->arch = entity->arch; + accel->thread = entity->handle; + accel->process = d_process_from_entity(entity)->handle; + accel->frame_index = frame_index; + if(frame_index < call_stack.frames_count) + { + accel->call_stack_frame = &call_stack.frames[frame_index]; + } + } + scratch_end(scratch); + } + E_IRExt result = {accel}; + return result; +} + +E_TYPE_ACCESS_FUNCTION_DEF(call_stack_frame) +{ + E_IRTreeAndType result = {&e_irnode_nil}; + if(expr->kind == E_ExprKind_MemberAccess) + { + RD_CallStackFrameAccel *accel = (RD_CallStackFrameAccel *)lhs_irtree->user_data; + if(accel->call_stack_frame != 0) + { + if(str8_match(expr->first->next->string, s("address"), 0)) + { + ARCH_Info *arch_info = arch_info_from_arch(accel->arch); + D_CallStackFrame *f = accel->call_stack_frame; + D_Entity *process = d_entity_from_handle(accel->process); + result.root = e_irtree_set_space(arena, rd_eval_space_from_ctrl_entity(process, D_EvalSpaceKind_Entity), e_irtree_const_u(arena, arch_ip_from_reg_block(arch_info, f->regs))); + result.type_key = e_type_key_cons(.arch = process->arch, .kind = E_TypeKind_Ptr, .direct_key = e_type_key_basic(E_TypeKind_Function), .count = 1, .depth = f->inline_depth); + result.mode = E_Mode_Value; + } + else if(str8_match(expr->first->next->string, s("locals"), 0)) + { + D_Entity *thread = d_entity_from_handle(accel->thread); + result.root = e_irtree_set_space(arena, rd_eval_space_from_ctrl_entity(thread, RD_EvalSpaceKind_MetaCallStack), e_irtree_const_u(arena, 0)); + result.type_key = e_type_key_cons(.kind = E_TypeKind_Set, .name = s("locals")); + result.mode = E_Mode_Value; + } + } + } + return result; +} + +typedef struct RD_CallStackFrameExpandAccel RD_CallStackFrameExpandAccel; +struct RD_CallStackFrameExpandAccel +{ + String8Array names; +}; + +E_TYPE_EXPAND_INFO_FUNCTION_DEF(call_stack_frame) +{ + RD_CallStackFrameExpandAccel *accel = push_array(arena, RD_CallStackFrameExpandAccel, 1); + { + Temp scratch = scratch_begin(&arena, 1); + String8List members_filtered = {0}; + String8 members[] = + { + s("address"), + s("locals"), + }; + for EachElement(idx, members) + { + FuzzyMatchRangeList fuzzy_match_ranges = fuzzy_match_find(scratch.arena, filter, members[idx]); + if(fuzzy_match_ranges.count == fuzzy_match_ranges.needle_part_count) + { + str8_list_push(scratch.arena, &members_filtered, members[idx]); + } + } + accel->names = str8_array_from_list(arena, &members_filtered); + scratch_end(scratch); + } + E_TypeExpandInfo info = {accel, accel->names.count}; + return info; +} + +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(call_stack_frame) +{ + RD_CallStackFrameExpandAccel *accel = (RD_CallStackFrameExpandAccel *)user_data; + Rng1U64 legal_idx_range = r1u64(0, accel->names.count); + Rng1U64 read_range = intersect_1u64(idx_range, legal_idx_range); + U64 read_range_count = dim_1u64(read_range); + for(U64 idx = 0; idx < read_range_count; idx += 1) + { + U64 name_idx = read_range.min + idx; + if(name_idx < accel->names.count) + { + evals_out[idx] = e_eval_wrapf(eval, "$.%S", accel->names.v[name_idx]); + } + } +} + //////////////////////////////// //~ rjf: `call_stack` Type Hooks typedef struct RD_CallStackAccel RD_CallStackAccel; struct RD_CallStackAccel { - Arch arch; - CTRL_Handle process; - CTRL_CallStack call_stack; + D_Handle thread; + D_CallStack call_stack; }; E_TYPE_IREXT_FUNCTION_DEF(call_stack) @@ -954,13 +1211,12 @@ E_TYPE_IREXT_FUNCTION_DEF(call_stack) E_OpList oplist = e_oplist_from_irtree(scratch.arena, irtree->root); String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); E_Interpretation interp = e_interpret(bytecode); - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(interp.space); - if(entity->kind == CTRL_EntityKind_Thread) + D_Entity *entity = rd_ctrl_entity_from_eval_space(interp.space); + if(entity->kind == D_EntityKind_Thread) { - B32 call_stack_high_priority = ctrl_handle_match(entity->handle, rd_base_regs()->thread); - accel->arch = entity->arch; - accel->process = ctrl_process_from_entity(entity)->handle; - accel->call_stack = ctrl_call_stack_from_thread(rd_state->frame_access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + B32 call_stack_high_priority = d_handle_match(entity->handle, rd_base_regs()->thread); + accel->thread = entity->handle; + accel->call_stack = d_call_stack_from_thread(rd_state->frame_access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); } scratch_end(scratch); } @@ -975,13 +1231,12 @@ E_TYPE_ACCESS_FUNCTION_DEF(call_stack) { RD_CallStackAccel *accel = (RD_CallStackAccel *)lhs_irtree->user_data; E_Value rhs_value = e_value_from_expr(expr->first->next); - CTRL_CallStack *call_stack = &accel->call_stack; + D_CallStack *call_stack = &accel->call_stack; if(0 <= rhs_value.u64 && rhs_value.u64 < call_stack->frames_count) { - CTRL_Entity *process = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, accel->process); - CTRL_CallStackFrame *f = &call_stack->frames[rhs_value.u64]; - result.root = e_irtree_set_space(arena, rd_eval_space_from_ctrl_entity(process, CTRL_EvalSpaceKind_Entity), e_irtree_const_u(arena, regs_rip_from_arch_block(accel->arch, f->regs))); - result.type_key = e_type_key_cons(.arch = process->arch, .kind = E_TypeKind_Ptr, .direct_key = e_type_key_basic(E_TypeKind_Function), .count = 1, .depth = f->inline_depth); + D_Entity *thread = d_entity_from_handle(accel->thread); + result.root = e_irtree_set_space(arena, rd_eval_space_from_ctrl_entity(thread, RD_EvalSpaceKind_MetaCallStack), e_irtree_const_u(arena, rhs_value.u64)); + result.type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, s("call_stack_frame")); result.mode = E_Mode_Value; } } @@ -1130,15 +1385,16 @@ E_TYPE_IREXT_FUNCTION_DEF(watches) E_Interpretation interpret = e_interpret(bytecode); E_Space space = interpret.space; CFG_Node *target = rd_cfg_from_eval_space(space); - CFG_NodePtrList env_strings = {0}; + CFG_NodePtrList cfgs = {0}; for(CFG_Node *child = target->first; child != &cfg_nil_node; child = child->next) { + if(rd_cfg_is_project_filtered(child)) {continue;} if(str8_match(child->string, str8_lit("watch"), 0)) { - cfg_node_ptr_list_push(scratch.arena, &env_strings, child); + cfg_node_ptr_list_push(scratch.arena, &cfgs, child); } } - accel->cfgs = cfg_node_ptr_array_from_list(arena, &env_strings); + accel->cfgs = cfg_node_ptr_array_from_list(arena, &cfgs); scratch_end(scratch); } E_IRExt result = {accel}; @@ -1248,6 +1504,120 @@ E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(watches) return num; } +//////////////////////////////// +//~ rjf: `peek_types` Type Hooks + +typedef struct RD_PeekTypesAccel RD_PeekTypesAccel; +struct RD_PeekTypesAccel +{ + CFG_NodePtrArray cfgs; +}; + +E_TYPE_IREXT_FUNCTION_DEF(peek_types) +{ + RD_PeekTypesAccel *accel = push_array(arena, RD_PeekTypesAccel, 1); + { + Temp scratch = scratch_begin(&arena, 1); + E_OpList oplist = e_oplist_from_irtree(scratch.arena, irtree->root); + String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); + E_Interpretation interpret = e_interpret(bytecode); + E_Space space = interpret.space; + CFG_Node *target = rd_cfg_from_eval_space(space); + CFG_NodePtrList env_strings = {0}; + for(CFG_Node *child = target->first; child != &cfg_nil_node; child = child->next) + { + if(str8_match(child->string, str8_lit("peek_type"), 0)) + { + cfg_node_ptr_list_push(scratch.arena, &env_strings, child); + } + } + accel->cfgs = cfg_node_ptr_array_from_list(arena, &env_strings); + scratch_end(scratch); + } + E_IRExt result = {accel}; + return result; +} + +E_TYPE_ACCESS_FUNCTION_DEF(peek_types) +{ + E_IRTreeAndType result = {&e_irnode_nil}; + if(expr->kind == E_ExprKind_ArrayIndex) + { + RD_PeekTypesAccel *accel = (RD_PeekTypesAccel *)lhs_irtree->user_data; + CFG_NodePtrArray *cfgs = &accel->cfgs; + E_Value rhs_value = e_value_from_expr(expr->first->next); + if(0 <= rhs_value.u64 && rhs_value.u64 < cfgs->count) + { + CFG_Node *cfg = cfgs->v[rhs_value.u64]; + result.root = e_irtree_set_space(arena, rd_eval_space_from_cfg(cfg), e_irtree_const_u(arena, 0)); + result.type_key = e_type_key_cons_array(e_type_key_basic(E_TypeKind_U8), cfg->first->string.size, E_TypeFlag_IsCodeText); + result.mode = E_Mode_Offset; + } + } + return result; +} + +E_TYPE_EXPAND_INFO_FUNCTION_DEF(peek_types) +{ + RD_PeekTypesAccel *accel = (RD_PeekTypesAccel *)eval.irtree.user_data; + E_TypeExpandInfo result = {accel, accel->cfgs.count + 1}; + return result; +} + +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(peek_types) +{ + RD_PeekTypesAccel *accel = (RD_PeekTypesAccel *)user_data; + Rng1U64 legal_idx_range = r1u64(0, accel->cfgs.count); + Rng1U64 read_range = intersect_1u64(idx_range, legal_idx_range); + U64 read_range_count = dim_1u64(read_range); + for(U64 idx = 0; idx < read_range_count; idx += 1) + { + U64 cfg_idx = read_range.min + idx; + if(cfg_idx < accel->cfgs.count) + { + evals_out[idx] = e_eval_wrapf(eval, "$[%I64u]", cfg_idx); + } + } +} + +E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_DEF(peek_types) +{ + U64 id = 0; + RD_PeekTypesAccel *accel = (RD_PeekTypesAccel *)user_data; + if(1 <= num && num <= accel->cfgs.count) + { + U64 idx = (num-1); + id = accel->cfgs.v[idx]->id; + } + else if(num == accel->cfgs.count+1) + { + id = max_U64; + } + return id; +} + +E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(peek_types) +{ + U64 num = 0; + RD_PeekTypesAccel *accel = (RD_PeekTypesAccel *)user_data; + if(id != 0 && id != max_U64) + { + for EachIndex(idx, accel->cfgs.count) + { + if(accel->cfgs.v[idx]->id == id) + { + num = idx+1; + break; + } + } + } + else if(id == max_U64) + { + num = accel->cfgs.count + 1; + } + return num; +} + //////////////////////////////// //~ rjf: `unattached_processes` Type Hooks @@ -1255,7 +1625,7 @@ typedef struct RD_UnattachedProcessesAccel RD_UnattachedProcessesAccel; struct RD_UnattachedProcessesAccel { DMN_ProcessInfo *infos; - CTRL_Entity **machines; + D_Entity **machines; U64 infos_count; }; @@ -1287,10 +1657,10 @@ E_TYPE_ACCESS_FUNCTION_DEF(unattached_processes) E_OpList oplist = e_oplist_from_irtree(scratch.arena, lhs_irtree->root); String8 bytecode = e_bytecode_from_oplist(scratch.arena, &oplist); E_Interpretation interpret = e_interpret(bytecode); - CTRL_Entity *machine = rd_ctrl_entity_from_eval_space(interpret.space); + D_Entity *machine = rd_ctrl_entity_from_eval_space(interpret.space); // rjf: build evaluation for this unattached process - if(machine != &ctrl_entity_nil) + if(machine != &d_entity_nil) { E_IRNode *value_irnode = e_push_irnode(arena, RDI_EvalOp_ConstU128); value_irnode->value.u128.u64[0] = pid; @@ -1313,18 +1683,18 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(unattached_processes) Temp scratch = scratch_begin(&arena, 1); //- rjf: evaluate lhs machine, if we have one - CTRL_Entity *lhs_entity = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *lhs_entity = rd_ctrl_entity_from_eval_space(eval.space); //- rjf: gather all machines we're searching through - CTRL_EntityArray machines = {0}; - if(lhs_entity->kind == CTRL_EntityKind_Machine) + D_EntityArray machines = {0}; + if(lhs_entity->kind == D_EntityKind_Machine) { machines.v = &lhs_entity; machines.count = 1; } else { - machines = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Machine); + machines = d_entity_array_from_kind(D_EntityKind_Machine); } //- rjf: gather system processes from this machine @@ -1332,7 +1702,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(unattached_processes) struct Node { Node *next; - CTRL_Entity *machine; + D_Entity *machine; DMN_ProcessInfo info; }; Node *first = 0; @@ -1340,7 +1710,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(unattached_processes) U64 count = 0; for EachIndex(idx, machines.count) { - CTRL_Entity *machine = machines.v[idx]; + D_Entity *machine = machines.v[idx]; DMN_ProcessIter iter = {0}; dmn_process_iter_begin(&iter); for(DMN_ProcessInfo info = {0}; dmn_process_iter_next(scratch.arena, &iter, &info);) @@ -1371,7 +1741,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(unattached_processes) //- rjf: list -> array U64 infos_count = count; DMN_ProcessInfo *infos = push_array(arena, DMN_ProcessInfo, infos_count); - CTRL_Entity **infos_machines = push_array(arena, CTRL_Entity *, infos_count); + D_Entity **infos_machines = push_array(arena, D_Entity *, infos_count); { U64 idx = 0; for(Node *n = first; n != 0; n = n->next, idx += 1) @@ -1401,8 +1771,8 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(unattached_processes) E_TypeKey unattached_process_type = e_type_key_cons(.kind = E_TypeKind_U128, .name = str8_lit("unattached_process")); for(U64 idx = idx_range.min; idx < idx_range.max; idx += 1, out_idx += 1) { - CTRL_Entity *machine = accel->machines[idx]; - String8 string = ctrl_string_from_handle(arena, machine->handle); + D_Entity *machine = accel->machines[idx]; + String8 string = d_string_from_handle(arena, machine->handle); evals_out[out_idx] = e_eval_wrapf(eval, "query:control.%S.unattached_processes.$%I64x$%I64x", string, accel->infos[idx].pid, e_id_from_string(accel->infos[idx].name)); } } @@ -1414,32 +1784,32 @@ E_TYPE_ACCESS_FUNCTION_DEF(ctrl_entities) { E_IRTreeAndType result = {&e_irnode_nil}; { - CTRL_Entity *entity = &ctrl_entity_nil; + D_Entity *entity = &d_entity_nil; switch(expr->kind) { case E_ExprKind_MemberAccess: { String8 rhs_name = expr->first->next->string; - CTRL_Handle handle = ctrl_handle_from_string(rhs_name); - entity = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, handle); + D_Handle handle = d_handle_from_string(rhs_name); + entity = d_entity_from_handle(handle); }break; case E_ExprKind_ArrayIndex: { E_Type *type = e_type_from_key(lhs_irtree->type_key); - CTRL_EntityKind kind = ctrl_entity_kind_from_string(rd_singular_from_code_name_plural(type->name)); + D_EntityKind kind = d_entity_kind_from_string(rd_singular_from_code_name_plural(type->name)); E_Value rhs_value = e_value_from_expr(expr->first->next); U64 rhs_idx = rhs_value.u64; - CTRL_EntityArray entities = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, kind); + D_EntityArray entities = d_entity_array_from_kind(kind); if(0 <= rhs_idx && rhs_idx < entities.count) { entity = entities.v[rhs_idx]; } }break; } - if(entity != &ctrl_entity_nil) + if(entity != &d_entity_nil) { E_Space space = rd_eval_space_from_ctrl_entity(entity, RD_EvalSpaceKind_MetaCtrlEntity); - String8 name = ctrl_entity_kind_code_name_table[entity->kind]; + String8 name = d_entity_kind_code_name_table[entity->kind]; E_TypeKey type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, name); result.root = e_irtree_set_space(arena, space, e_irtree_const_u(arena, 0)); result.type_key = type_key; @@ -1455,7 +1825,7 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(ctrl_entities) Temp scratch = scratch_begin(&arena, 1); { //- rjf: determine which entity we're looking under - CTRL_Entity *scoping_entity = &ctrl_entity_nil; + D_Entity *scoping_entity = &d_entity_nil; if(eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity) { scoping_entity = rd_ctrl_entity_from_eval_space(eval.space); @@ -1465,48 +1835,48 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(ctrl_entities) E_TypeKey lhs_type_key = eval.irtree.type_key; E_Type *lhs_type = e_type_from_key(lhs_type_key); String8 name = rd_singular_from_code_name_plural(lhs_type->name); - CTRL_EntityKind entity_kind = ctrl_entity_kind_from_string(name); + D_EntityKind entity_kind = d_entity_kind_from_string(name); //- rjf: gather array of all entities which fit the bill - CTRL_EntityArray array = {0}; - if(scoping_entity == &ctrl_entity_nil) + D_EntityArray array = {0}; + if(scoping_entity == &d_entity_nil) { - array = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, entity_kind); + array = d_entity_array_from_kind(entity_kind); } else { - CTRL_EntityList list = {0}; - for(CTRL_Entity *child = scoping_entity->first; child != &ctrl_entity_nil; child = child->next) + D_EntityList list = {0}; + for(D_Entity *child = scoping_entity->first; child != &d_entity_nil; child = child->next) { if(child->kind == entity_kind) { - ctrl_entity_list_push(scratch.arena, &list, child); + d_entity_list_push(scratch.arena, &list, child); } } - array = ctrl_entity_array_from_list(arena, &list); + array = d_entity_array_from_list(arena, &list); } //- rjf: filter the array - CTRL_EntityArray array__filtered = array; + D_EntityArray array__filtered = array; if(filter.size != 0) { - CTRL_EntityList list__filtered = {0}; + D_EntityList list__filtered = {0}; for EachIndex(idx, array.count) { - CTRL_Entity *entity = array.v[idx]; + D_Entity *entity = array.v[idx]; DR_FStrList fstrs = rd_title_fstrs_from_ctrl_entity(scratch.arena, entity, 1); String8 title_string = dr_string_from_fstrs(scratch.arena, &fstrs); FuzzyMatchRangeList matches = fuzzy_match_find(scratch.arena, filter, title_string); if(matches.count == matches.needle_part_count) { - ctrl_entity_list_push(scratch.arena, &list__filtered, entity); + d_entity_list_push(scratch.arena, &list__filtered, entity); } } - array__filtered = ctrl_entity_array_from_list(arena, &list__filtered); + array__filtered = d_entity_array_from_list(arena, &list__filtered); } //- rjf: list -> array & fill - CTRL_EntityArray *accel = push_array(arena, CTRL_EntityArray, 1); + D_EntityArray *accel = push_array(arena, D_EntityArray, 1); *accel = array__filtered; result.user_data = accel; result.expr_count = accel->count; @@ -1517,15 +1887,15 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(ctrl_entities) E_TYPE_EXPAND_RANGE_FUNCTION_DEF(ctrl_entities) { - CTRL_EntityArray *entities = (CTRL_EntityArray *)user_data; + D_EntityArray *entities = (D_EntityArray *)user_data; Rng1U64 legal_range = r1u64(0, entities->count); Rng1U64 read_range = intersect_1u64(legal_range, idx_range); U64 read_count = dim_1u64(read_range); for(U64 out_idx = 0; out_idx < read_count; out_idx += 1) { Temp scratch = scratch_begin(&arena, 1); - CTRL_Entity *entity = entities->v[out_idx + read_range.min]; - evals_out[out_idx] = e_eval_from_stringf("query:control.%S", ctrl_string_from_handle(scratch.arena, entity->handle)); + D_Entity *entity = entities->v[out_idx + read_range.min]; + evals_out[out_idx] = e_eval_from_stringf("query:control.%S", d_string_from_handle(scratch.arena, entity->handle)); scratch_end(scratch); } } @@ -1553,22 +1923,22 @@ E_TYPE_ACCESS_FUNCTION_DEF(call_stack_tree) typedef struct RD_CallStackTreeExpandAccel RD_CallStackTreeExpandAccel; struct RD_CallStackTreeExpandAccel { - CTRL_CallStackTreeNode *node; - CTRL_CallStackTreeNode **children; - CTRL_HandleArray threads; + D_CallStackTreeNode *node; + D_CallStackTreeNode **children; + D_HandleArray threads; }; E_TYPE_EXPAND_INFO_FUNCTION_DEF(call_stack_tree) { Access *access = access_open(); - CTRL_CallStackTree call_stack_tree = ctrl_call_stack_tree(access, 0); + D_CallStackTree call_stack_tree = d_call_stack_tree(access, 0); access_close(access); RD_CallStackTreeExpandAccel *accel = push_array(arena, RD_CallStackTreeExpandAccel, 1); - accel->node = &ctrl_call_stack_tree_node_nil; + accel->node = &d_call_stack_tree_node_nil; U64 id = e_value_eval_from_eval(eval).value.u64; if(call_stack_tree.slots_count != 0) { - for(CTRL_CallStackTreeNode *n = call_stack_tree.slots[id%call_stack_tree.slots_count]; + for(D_CallStackTreeNode *n = call_stack_tree.slots[id%call_stack_tree.slots_count]; n != 0; n = n->hash_next) { @@ -1579,17 +1949,17 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(call_stack_tree) } } } - accel->children = push_array(arena, CTRL_CallStackTreeNode *, accel->node->child_count); + accel->children = push_array(arena, D_CallStackTreeNode *, accel->node->child_count); { U64 idx = 0; - for(CTRL_CallStackTreeNode *n = accel->node->first; - n != &ctrl_call_stack_tree_node_nil; + for(D_CallStackTreeNode *n = accel->node->first; + n != &d_call_stack_tree_node_nil; n = n->next, idx += 1) { accel->children[idx] = n; } } - accel->threads = ctrl_handle_array_from_list(arena, &accel->node->threads); + accel->threads = d_handle_array_from_list(arena, &accel->node->threads); E_TypeExpandInfo result = {accel}; result.expr_count = accel->node->child_count + accel->threads.count; return result; @@ -1599,7 +1969,7 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(call_stack_tree) { Temp scratch = scratch_begin(&arena, 1); RD_CallStackTreeExpandAccel *accel = (RD_CallStackTreeExpandAccel *)user_data; - CTRL_CallStackTreeNode *node = accel->node; + D_CallStackTreeNode *node = accel->node; U64 needed_row_count = dim_1u64(idx_range); for EachIndex(idx, needed_row_count) { @@ -1610,7 +1980,7 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(call_stack_tree) } else if(node->child_count <= idx && idx < node->child_count + accel->threads.count) { - eval = e_eval_from_stringf("query:control.%S", ctrl_string_from_handle(scratch.arena, accel->threads.v[idx - node->child_count])); + eval = e_eval_from_stringf("query:control.%S", d_string_from_handle(scratch.arena, accel->threads.v[idx - node->child_count])); } evals_out[idx] = eval; } @@ -1693,40 +2063,17 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(debug_info_table) { default:{}break; case RDI_SectionKind_Procedures: - { - RDI_Procedure *procedure = rdi_element_from_name_idx(rdi, Procedures, element_idx); - String8 symbol_name = {0}; - symbol_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &symbol_name.size); - item_string = symbol_name; - }break; case RDI_SectionKind_GlobalVariables: - { - RDI_GlobalVariable *gvar = rdi_element_from_name_idx(rdi, GlobalVariables, element_idx); - String8 symbol_name = {0}; - symbol_name.str = rdi_string_from_idx(rdi, gvar->name_string_idx, &symbol_name.size); - item_string = symbol_name; - }break; case RDI_SectionKind_ThreadVariables: - { - RDI_ThreadVariable *tvar = rdi_element_from_name_idx(rdi, ThreadVariables, element_idx); - String8 symbol_name = {0}; - symbol_name.str = rdi_string_from_idx(rdi, tvar->name_string_idx, &symbol_name.size); - item_string = symbol_name; - }break; case RDI_SectionKind_Constants: { - RDI_Constant *cnst = rdi_element_from_name_idx(rdi, Constants, element_idx); - String8 symbol_name = {0}; - symbol_name.str = rdi_string_from_idx(rdi, cnst->name_string_idx, &symbol_name.size); - item_string = symbol_name; + RDI_Symbol *symbol = (RDI_Symbol *)rdi_section_raw_element_from_kind_idx(rdi, accel->section, element_idx); + item_string = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, symbol); }break; case RDI_SectionKind_UDTs: { RDI_UDT *udt = rdi_element_from_name_idx(rdi, UDTs, element_idx); - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, udt->self_type_idx); - String8 name = {0}; - name.str = rdi_string_from_idx(rdi, type_node->user_defined.name_string_idx, &name.size); - item_string = name; + item_string = fully_qualified_str8_from_rdi_udt(scratch.arena, rdi, udt); }break; case RDI_SectionKind_SourceFiles: { diff --git a/src/raddbg/raddbg_eval.h b/src/raddbg/raddbg_eval.h index b2269be9..9ae517dc 100644 --- a/src/raddbg/raddbg_eval.h +++ b/src/raddbg/raddbg_eval.h @@ -18,6 +18,13 @@ E_TYPE_ACCESS_FUNCTION_DEF(themes); E_TYPE_EXPAND_INFO_FUNCTION_DEF(themes); E_TYPE_EXPAND_RANGE_FUNCTION_DEF(themes); +//////////////////////////////// +//~ rjf: `views` Type Hooks + +E_TYPE_ACCESS_FUNCTION_DEF(views); +E_TYPE_EXPAND_INFO_FUNCTION_DEF(views); +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(views); + //////////////////////////////// //~ rjf: `locals` Type Hooks @@ -30,6 +37,13 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(locals); E_TYPE_EXPAND_INFO_FUNCTION_DEF(registers); E_TYPE_EXPAND_RANGE_FUNCTION_DEF(registers); +//////////////////////////////// +//~ rjf: `autos` Type Hooks + +E_TYPE_IREXT_FUNCTION_DEF(autos); +E_TYPE_EXPAND_INFO_FUNCTION_DEF(autos); +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(autos); + //////////////////////////////// //~ rjf: Schema Type Hooks @@ -59,6 +73,14 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(cfgs_slice); E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_DEF(cfgs_slice); E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(cfgs_slice); +//////////////////////////////// +//~ rjf: `call_stack_frame` Type Hooks + +E_TYPE_IREXT_FUNCTION_DEF(call_stack_frame); +E_TYPE_ACCESS_FUNCTION_DEF(call_stack_frame); +E_TYPE_EXPAND_INFO_FUNCTION_DEF(call_stack_frame); +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(call_stack_frame); + //////////////////////////////// //~ rjf: `call_stack` Type Hooks @@ -86,6 +108,16 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(watches); E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_DEF(watches); E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(watches); +//////////////////////////////// +//~ rjf: `peek_types` Type Hooks + +E_TYPE_IREXT_FUNCTION_DEF(peek_types); +E_TYPE_ACCESS_FUNCTION_DEF(peek_types); +E_TYPE_EXPAND_INFO_FUNCTION_DEF(peek_types); +E_TYPE_EXPAND_RANGE_FUNCTION_DEF(peek_types); +E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_DEF(peek_types); +E_TYPE_EXPAND_NUM_FROM_ID_FUNCTION_DEF(peek_types); + //////////////////////////////// //~ rjf: `unattached_processes` Type Hooks diff --git a/src/raddbg/raddbg_legacy_config.c b/src/raddbg/raddbg_legacy_config.c index abf6f692..07b85df6 100644 --- a/src/raddbg/raddbg_legacy_config.c +++ b/src/raddbg/raddbg_legacy_config.c @@ -43,8 +43,7 @@ rd_cfg_tree_list_from_string__pre_0_9_16(Arena *arena, String8 file_path, String } //- rjf: recent files / projects - if(str8_match(tln->string, str8_lit("recent_file"), 0) || - str8_match(tln->string, str8_lit("recent_project"), 0)) + if(str8_match(tln->string, str8_lit("recent_project"), 0)) { CFG_Node *dst_root = cfg_node_new(rd_state->cfg, &cfg_nil_node, tln->string); cfg_node_ptr_list_push(arena, &result, dst_root); diff --git a/src/raddbg/raddbg_main.c b/src/raddbg/raddbg_main.c index f633614c..35313923 100644 --- a/src/raddbg/raddbg_main.c +++ b/src/raddbg/raddbg_main.c @@ -2,14 +2,122 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) //////////////////////////////// -//~ rjf: post-0.9.20 TODO notes +//~ rjf: evaluation system pass TODO notes +// +// The first pass of the debugger's evaluation engine has some significant +// problems, and sooner rather than later we need to do a pass which addresses +// them. It's a complicated thing, so I am gathering unstructured notes & +// comments here: +// +// - coupling of some evaluation things to running on the UI thread - for some +// things we don't care, e.g. I don't care to evaluate theme colors literally +// anywhere except for the UI thread. but, for something like a thread's +// call stack, that should pretty unambiguously be accessible via the control +// thread (and thus in conditional breakpoints etc.). +// +// - whether something is available on the control thread or not, we should be +// able to *know* that from the UI thread, so that we can display it clearly. +// +// - there is an uncomfortable bifurcation between establishing evaluation +// context on the UI thread vs. the control thread. ideally, the common +// things (like debug entities) are just common, and there is ~0 extra code. +// +// - currently we lump all sorts of "context" things into the same mechanism. +// the problem is that a lot of this stuff needs to change *mid-expression*. +// for example: +// +// thread.call_stack[1].locals.foo + other_thread.call_stack[2].locals.bar +// +// this requires changing all sorts of things about the context for different +// portions of expression bytecode! currently, the only context that we +// support changing like this is the 'space'. but there is a lot more +// 'volatile context' than just the space. so I think instead of "set space" +// opcodes, we need (also, or to replace? unclear) a "set context" opcode. +// +// this is all completely distinct from "base context", or whatever we want +// to call it, which includes unchanging things, like the set of loaded debug +// infos, modules, etc. +// +// - we need to be able to disambiguate between *processes* too in expressions. +// we can *sort of do this* with addresses, now that we can do +// process.memory + 0x1000. but for example if we had a foo.dll in two +// processes, we can't disambiguate between the two in identifier resolution. +// we can currently do foo.dll!bar, but we'd need to be able to do +// `!foo.dll!bar` too or something. +// +// - there are ambiguous cases in the expression language that we need to shake +// out, notably because of type views. this is because "$" is overloaded. the +// idea was to make it a *chain* of parent expressions, but this seems to be +// confusing and/or not working in some cases - the example that found this +// was `array(...)` used inside of `rows(...)`, e.g. this: +// +// array(cast(char*)$.data, $.size) +// +// working, but this: +// +// rows($, array(cast(char*)$.data, $.size), some_other_member) +// +// not. +// +// - the expression parser, to support C-style syntax, needs identifier +// resolution. I took this out before, but that was a mistake, because people +// just need to be able to do `(foo)&bar` and have it work. to a dumb +// parser without identifier resolution, there is no way to disambiguate that +// from a bitwise &. but that is why we need identifier resolution. + +//////////////////////////////// +//~ rjf: post-0.9.27 TODO notes +// +// [ ] debug info loading retry mechanism, in cases where the load failed, but settings/filesystem state changes - +// e.g. turn on automatic downloads, already tried to load symbol server cache file that doesn't exist -> +// need to retry +// [ ] wassim memory bug +// +// [ ] core dump saving/loading +// +// [ ] memory_size(...) view for quickly evaluating memory sizes +// [ ] value coloring view in watch window, so you can quickly scroll & see values outside of a threshold +// +// [ ] more things should move to user data, but project-tagged - like +// recent files, watches?, etc. +// +// [ ] linux/dwarf fixes +// [ ] excessive CPU usage on async threads - barrier impl? +// [ ] type views for `MyByte *` example do not match correctly +// +// [ ] many threads hitting conditional breakpoints -> causes 0x8000003 exception! +// [ ] string conditional breakpoints -> size != 0 check seems to fail, can test w/ "rd_init" subprogram type gen in d2r2 +// +// [ ] PDB -> RDI conversion memory usage +// +//- evaluation space coverage pass +// [ ] need concrete ways of referring into a space at any offset - e.g. `process.memory + 0x1234`, `file:"foo".data + 0x1234`, `thread.regs + 0x80`, etc. +// [ ] memory view needs to take advantage of above when peeking; ensure peeking works on files etc. +// [ ] need to eliminate accelerators from evaluation context, and build them on the fly instead - +// this is necessary because, for instance, the correct locals_map varies by expression, if we +// want to (we do) support features like "look up call stack to find local" +// +//- memory view pass +// [ ] toggleable ascii column +// [ ] toggleable annotation tree column +// [ ] horizontal scrolling +// +//- fabian complaints / reports +// [ ] simplified default layout +// [ ] memory view deserves larger spot, in default layout +// [ ] ambiguous parsing cases - need to re-introduce identifier resolution into eval parse. (foo *)&bar +// [ ] broadly, view discoverability / docs +// [ ] signify empty watch window "expression" slot more as a text field? +// +//- jeff notes +// [ ] focus changing on f10/f11? may be related to auto_run/auto_step - look at a bin/jeffr +// auto_step, launching terminal, terminal steals focus from debugger... // //- urgent fixes // [ ] (use msvc assert as an example) show fastfail exception info (code, name, etc.) - comes from ExceptionInformation @fastfail // [ ] stepping w/ spoofs & shadow stack enabled - writing spoof will send a stack buffer overrun event @shadow_stack_step -// [ ] hardware breakpoints regression (global eval in ctrl) // [ ] native filesystem dialog, resizing raddbg window -> crash! -// [ ] stdout/stderr path target setting is now busted >:( +// [ ] stdout/stderr path target setting is now busted >:( (i think this is because of path confusion? check working dir) // [ ] target ui entry point should override built-in entry point // [ ] list of all tabs in palette // [ ] u64 + (ptr - ptr) seems to produce unexpected results - double check with C rules? @@ -18,14 +126,11 @@ // [ ] "skip breakpoint, run to source", when stopped at a non-source location // [ ] adjust menu bar rendering when not focused // [ ] treat int 0x29 similarly to int3 -// [ ] auto_step, launching terminal, terminal steals focus from debugger... // //- memory view // [ ] have smaller visible range than entire memory space, within some bounds (e.g. 64KB) // [ ] dynamically expand memory space, based on scrolling -// [ ] fix clicking through occluded panels etc. // [ ] disambiguate . character in ASCII columns -// [ ] fix type intepretations of cursor in bottom pane // //- watch improvements // [ ] *ALL* expressions in watch windows need to be editable. @@ -40,8 +145,6 @@ // a way we can defer to the underlying shell in a non-horrible way...? // //- stepping or breakpoint oddness/fixes -// [ ] halting during a spoof-ridden step leaves the spoofs in place!!! -// (repro via LOTS of code on one line & halting) // [ ] stepping-onto a line with a conditional breakpoint, which fails, causes a // single step over the first instruction of that line, even if the thread // would've stopped at the first instruction due to the step, were that bp not @@ -137,13 +240,11 @@ // //- control improvements // [ ] debug info overrides (both path-based AND module-based) -// [ ] symbol server // [ ] can it ignore stepping into _RTC_CheckStackVars generated functions? // [ ] jump table thunks, on code w/o /INCREMENTAL:NO // [ ] investigate /DEBUG:FASTLINK - can we somehow alert that we do not // support it? // [ ] just-in-time debugging -// [ ] step-out-of-loop // //- late-conversion performance improvements // [ ] live++ investigations - ctrl+alt+f11 in UE? @@ -152,7 +253,6 @@ // [ ] search-in-all-files // [ ] automatically snap to search matches when searching source files // [ ] memory view -// [ ] memory view mutation controls // [ ] memory view user-made annotations // [ ] memory view searching // [ ] disasm view @@ -160,13 +260,12 @@ // //- longer-term future features // [ ] long-term future notes from martins -// [ ] core dump saving/loading -// [ ] parallel call stacks view -// [ ] parallel watch view -// [ ] mixed native/interpreted/jit debugging -// - it seems python has a top-level linked list of interpreter states, -// which should allow the debugger to map native callstacks to python -// code +// [ ] parallel call stacks view +// [ ] parallel watch view +// [ ] mixed native/interpreted/jit debugging +// - it seems python has a top-level linked list of interpreter states, +// which should allow the debugger to map native callstacks to python +// code // //- code cleanup // [ ] eliminate explicit font parameters in the various ui paths (e.g. @@ -174,6 +273,79 @@ // [ ] font cache eviction (both for font tags, closing fp handles, and // rasterizations) +//////////////////////////////// +//~ rjf: Recently Completed +// +// [x] fix for-loop stepping oddities, likely single-line for-loop stepping +// [x] `foo, x` needs to correctly match `hex(foo)`, e.g. in application to expansions +// [x] eval: pointer casts of register space should promote to process space +// [x] more control over string visualization; specifically, when *not* to do it, even when using e.g. char *s +// [x] sign bits should not display on unsigned integers? +// [x] source/disasm ctx menu should include options for e.g. "go to selected thread" +// [x] correct type interpretations; togglable interpretations +// [x] make address editable; specialized version of the cursor address editor in tab right-click menu +// [x] broadly, need to complete memory view & fix issues +// [x] dumb panel click-through thing +// [x] cursor info at bottom? # of selected bytes, address range, cursor hierarchical location? +// [x] clean up tooltip? it's a bit big/noisy (maybe remove it after above?) +// [x] missing call stack frames? +// [x] scroll bar +// +// [x] fix type intepretations of cursor in bottom pane +// [x] fix clicking through occluded panels etc. +// [x] hardware breakpoints regression (global eval in ctrl) +// [x] RDI_Local, RDI_GlobalVariable, RDI_ThreadVariable -> RDI_Variable +// [x] RDI_Variable gets RDI_ContainerFlags, and a container_idx +// [x] RDI_Namespace can be a container, same as types/procedures +// [x] If procedure-contained, then index goes to scope now, not procedure +// [x] Location sections -> split by location kind, fixed tables for simple locations, one catch-all table for bytecode. +// [x] Location kind -> can be thread-local offset, or module virtual offset, to enclose globals/tlocals cases +// [x] Referring to one location -> kind * index +// [x] Referring to many locations, based on scope offsets -> kind = BlockList; BlockList encodes a first/opl pair into Block table, each Block has scope_off_first/opl, location_kind, location_idx - but a block's location kind CANNOT BE BlockList +// [x] RDI_Variable has location_kind, location_idx +// +// [x] we keep flat tables of symbols, *but*, "sort" by containing unit. unit -> [f, opl) of procedures, globals, threadvars, constants, etc. +// [x] container can also be a unit, so you can also go from procedure/global/tvar -> unit +// [x] *OR*, because we can guarantee that the units themselves will be sorted from lowest -> highest in all symbol tables, we can simply binary search the unit table (small) with a symbol's index to find its corresponding unit. that way, no need to duplicate e.g. namespaces and so on across units. and actually, we have to do this, because containers can be types, and those cannot be unit-locked. +// +// [x] symbols only store their *partly-qualified name*, e.g. `x` for A::B::C::x +// [x] default name maps look up *partly-qualified names* +// [x] to match a *fully qualified name*, there needs to be a second kind of different lookup - instead of string-matching, we need to match against the *fully qualified names*. the maps must be built by hashing the *fully qualified name*, but redirecting to the symbol with the *partially qualified name*. this is to allow fully-qualified lookups, but avoid storing fully-qualified names. +// +// [x] option to turn off transient tabs altogether +// [x] step out of scopes / loops +// [x] asan pass +// [x] codebase-internal barrier impl (win7/linux support) +// [x] policy for closing debug info which is no longer relevant? +// [x] killing/restarting thread performance (#780) +// [x] rd_frame has no type info, should be (void -> void) - type should be generated but it +// is not being hooked up correctly +// [x] project/user file improvements +// [x] "default" -> "untitled" +// [x] should clear default project data every time the program starts +// [x] new project / user should not require picking a path; should just +// by default go to "untitled" in default user path +// [x] memory view mutation controls +// [x] step-over/step-into doesn't step successfully in many cases, just causes a continue +// [x] eval space reads/writes -> needs staleness/badness info - replace ctrl layer, to apply to all spaces +// [x] no selected thread -> causing evaluation failures, e.g. with go-to-definition +// [x] single-line viz for pointers w/ bad (unmapped) addresses +// [x] option to prefer addresses first with string ptrs +// [x] external window focusing bugs +// [x] "autos" collection, which can be evaluated +// [x] show "autos" inline in source code near thread? +// [x] switch off spoofs for step-over +// [x] jeff stepping bug +// [x] unwinding crash - f5 on bp in w32_http_status_callback to repro +// [x] unwinding in jit page - fail +// [x] test concepts -> base +// [x] debugger, d2r, p2r exemplar / determinism testing +// [x] halting during a spoof-ridden step leaves the spoofs in place!!! +// (repro via LOTS of code on one line & halting) +// [x] unit / module name qualification +// [x] step-out-of-loop +// [x] symbol server + //////////////////////////////// //~ rjf: Build Options @@ -181,25 +353,33 @@ #define OS_FEATURE_GRAPHICAL 1 #define DMN_INIT_MANUAL 1 -#define CTRL_INIT_MANUAL 1 -#define OS_GFX_INIT_MANUAL 1 +#define D_INIT_MANUAL 1 +#define WM_INIT_MANUAL 1 #define FP_INIT_MANUAL 1 #define R_INIT_MANUAL 1 #define FNT_INIT_MANUAL 1 -#define D_INIT_MANUAL 1 #define RD_INIT_MANUAL 1 +#define ARENA_TABLE_DEBUG BUILD_DEBUG + //////////////////////////////// //~ rjf: Includes //- rjf: [h] #include "base/base_inc.h" +#include "x64/x64.h" +#include "win32/win32_inc.h" #include "linker/hash_table.h" -#include "os/os_inc.h" +#include "linker/base_ext/base_bit_array.h" #include "artifact_cache/artifact_cache.h" #include "rdi/rdi_local.h" #include "rdi_make/rdi_make_local.h" +#include "minidump/minidump.h" +#include "minidump/minidump_parse.h" #include "mdesk/mdesk.h" +#include "window_manager/window_manager_inc.h" +#include "http/http_inc.h" +#include "symbol_server/symbol_server_inc.h" #include "config/config_inc.h" #include "content/content.h" #include "file_stream/file_stream.h" @@ -209,7 +389,10 @@ #include "coff/coff_parse.h" #include "pe/pe.h" #include "elf/elf.h" +#include "gnu/gnu.h" +#include "gnu/gnu_parse.h" #include "elf/elf_parse.h" +#include "elf/elf_dump.h" #include "codeview/codeview.h" #include "codeview/codeview_parse.h" #include "msf/msf.h" @@ -217,37 +400,47 @@ #include "pdb/pdb.h" #include "pdb/pdb_parse.h" #include "pdb/pdb_stringize.h" -#include "eh/eh_frame.h" #include "dwarf/dwarf_inc.h" +#include "eh_frame/eh_frame.h" +#include "eh_frame/eh_frame_dump.h" +#include "unwind/unwind_inc.h" #include "rdi_from_coff/rdi_from_coff.h" #include "rdi_from_elf/rdi_from_elf.h" +#include "rdi_from_codeview/rdi_from_codeview.h" #include "rdi_from_pdb/rdi_from_pdb.h" #include "rdi_from_dwarf/rdi_from_dwarf.h" #include "radbin/radbin.h" -#include "regs/regs.h" -#include "regs/rdi/regs_rdi.h" +#include "arch/arch_inc.h" #include "dbg_info/dbg_info.h" -#include "disasm/disasm.h" +#include "disasm/disasm_inc.h" +#include "stap/stap_parse.h" #include "demon/demon_inc.h" #include "eval/eval_inc.h" +#include "eval2/eval2.h" +#include "dbg_engine/dbg_engine_inc.h" #include "eval_visualization/eval_visualization_inc.h" -#include "ctrl/ctrl_inc.h" #include "font_provider/font_provider_inc.h" #include "render/render_inc.h" #include "font_cache/font_cache.h" #include "draw/draw.h" #include "ui/ui_inc.h" -#include "dbg_engine/dbg_engine_inc.h" #include "raddbg/raddbg_inc.h" //- rjf: [c] #include "base/base_inc.c" +#include "x64/x64.c" +#include "win32/win32_inc.c" #include "linker/hash_table.c" -#include "os/os_inc.c" +#include "linker/base_ext/base_bit_array.c" #include "artifact_cache/artifact_cache.c" #include "rdi/rdi_local.c" #include "rdi_make/rdi_make_local.c" +#include "minidump/minidump.c" +#include "minidump/minidump_parse.c" #include "mdesk/mdesk.c" +#include "window_manager/window_manager_inc.c" +#include "http/http_inc.c" +#include "symbol_server/symbol_server_inc.c" #include "config/config_inc.c" #include "content/content.c" #include "file_stream/file_stream.c" @@ -257,7 +450,10 @@ #include "coff/coff_parse.c" #include "pe/pe.c" #include "elf/elf.c" +#include "gnu/gnu.c" +#include "gnu/gnu_parse.c" #include "elf/elf_parse.c" +#include "elf/elf_dump.c" #include "codeview/codeview.c" #include "codeview/codeview_parse.c" #include "msf/msf.c" @@ -265,27 +461,30 @@ #include "pdb/pdb.c" #include "pdb/pdb_parse.c" #include "pdb/pdb_stringize.c" -#include "eh/eh_frame.c" #include "dwarf/dwarf_inc.c" +#include "eh_frame/eh_frame.c" +#include "eh_frame/eh_frame_dump.c" +#include "unwind/unwind_inc.c" #include "rdi_from_coff/rdi_from_coff.c" #include "rdi_from_elf/rdi_from_elf.c" +#include "rdi_from_codeview/rdi_from_codeview.c" #include "rdi_from_pdb/rdi_from_pdb.c" #include "rdi_from_dwarf/rdi_from_dwarf.c" #include "radbin/radbin.c" -#include "regs/regs.c" -#include "regs/rdi/regs_rdi.c" +#include "arch/arch_inc.c" #include "dbg_info/dbg_info.c" -#include "disasm/disasm.c" +#include "disasm/disasm_inc.c" +#include "stap/stap_parse.c" #include "demon/demon_inc.c" #include "eval/eval_inc.c" +#include "eval2/eval2.c" +#include "dbg_engine/dbg_engine_inc.c" #include "eval_visualization/eval_visualization_inc.c" -#include "ctrl/ctrl_inc.c" #include "font_provider/font_provider_inc.c" #include "render/render_inc.c" #include "font_cache/font_cache.c" #include "draw/draw.c" #include "ui/ui_inc.c" -#include "dbg_engine/dbg_engine_inc.c" #include "raddbg/raddbg_inc.c" //////////////////////////////// @@ -310,7 +509,7 @@ struct IPCInfo //~ rjf: Globals //- rjf: IPC resources -#define IPC_SHARED_MEMORY_BUFFER_SIZE MB(4) +#define IPC_SHARED_MEMORY_BUFFER_SIZE KB(64) StaticAssert(IPC_SHARED_MEMORY_BUFFER_SIZE > sizeof(IPCInfo), ipc_buffer_size_requirement); global Semaphore ipc_sender2main_signal_semaphore = {0}; global Semaphore ipc_sender2main_lock_semaphore = {0}; @@ -318,7 +517,7 @@ global U8 *ipc_sender2main_shared_memory_base = 0; global Semaphore ipc_main2sender_signal_semaphore = {0}; global Semaphore ipc_main2sender_lock_semaphore = {0}; global U8 *ipc_main2sender_shared_memory_base = 0; -global U8 ipc_s2m_ring_buffer[MB(4)] = {0}; +global U8 ipc_s2m_ring_buffer[KB(64)] = {0}; global U64 ipc_s2m_ring_write_pos = 0; global U64 ipc_s2m_ring_read_pos = 0; global Mutex ipc_s2m_ring_mutex = {0}; @@ -333,9 +532,9 @@ ipc_signaler_thread__entry_point(void *p) ThreadNameF("rd_ipc_signaler_thread"); for(;;) { - if(os_semaphore_take(ipc_sender2main_signal_semaphore, max_U64)) + if(semaphore_take(ipc_sender2main_signal_semaphore, max_U64)) { - if(os_semaphore_take(ipc_sender2main_lock_semaphore, max_U64)) + if(semaphore_take(ipc_sender2main_lock_semaphore, max_U64)) { IPCInfo *ipc_info = (IPCInfo *)ipc_sender2main_shared_memory_base; String8 msg = str8((U8 *)(ipc_info+1), ipc_info->msg_size); @@ -346,16 +545,16 @@ ipc_signaler_thread__entry_point(void *p) U64 available_size = (sizeof(ipc_s2m_ring_buffer) - unconsumed_size); if(available_size >= sizeof(U64)+sizeof(msg.size)) { - ipc_s2m_ring_write_pos += ring_write_struct(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_write_pos, &msg.size); - ipc_s2m_ring_write_pos += ring_write(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_write_pos, msg.str, msg.size); + ipc_s2m_ring_write_pos += wrapped_write_struct(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_write_pos, &msg.size); + ipc_s2m_ring_write_pos += wrapped_write(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_write_pos, msg.str, msg.size); break; } cond_var_wait(ipc_s2m_ring_cv, ipc_s2m_ring_mutex, max_U64); } cond_var_broadcast(ipc_s2m_ring_cv); - os_send_wakeup_event(); + wm_send_wakeup_event(); ipc_info->msg_size = 0; - os_semaphore_drop(ipc_sender2main_lock_semaphore); + semaphore_drop(ipc_sender2main_lock_semaphore); } } } @@ -364,9 +563,9 @@ ipc_signaler_thread__entry_point(void *p) //////////////////////////////// //~ rjf: Ctrl -> Main Thread Wakeup Hook -internal CTRL_WAKEUP_FUNCTION_DEF(wakeup_hook_ctrl) +internal D_WAKEUP_FUNCTION_DEF(wakeup_hook_ctrl) { - os_send_wakeup_event(); + wm_send_wakeup_event(); } //////////////////////////////// @@ -387,6 +586,16 @@ entry_point(CmdLine *cmd_line) { Temp scratch = scratch_begin(0, 0); + //- rjf: re-open stdout handles if cli +#if OS_WINDOWS + if(cmd_line_has_flag(cmd_line, s("cli"))) + { + AttachConsole(ATTACH_PARENT_PROCESS); + freopen("CONOUT$", "wt", stdout); + freopen("CONOUT$", "wt", stderr); + } +#endif + //- rjf: unpack command line arguments ExecMode exec_mode = ExecMode_Normal; B32 auto_run = 0; @@ -420,6 +629,15 @@ entry_point(CmdLine *cmd_line) jit_attach = (jit_addr != 0); } + // init log + g_logs_folder = cmd_line_string(cmd_line, str8_lit("logs")); + if(g_logs_folder.size == 0) + { + String8 user_program_logs_data_path = get_process_info()->user_program_logs_data_path; + g_logs_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_logs_data_path); + } + make_directory(g_logs_folder); + //- rjf: dispatch to top-level codepath based on execution mode switch(exec_mode) { @@ -466,36 +684,35 @@ entry_point(CmdLine *cmd_line) //- rjf: manual layer initialization { dmn_init(); - ctrl_init(); - os_gfx_init(); + d_init(); + wm_init(); fp_init(); r_init(cmd_line); fnt_init(); - d_init(); rd_init(cmd_line); - ctrl_set_wakeup_hook(wakeup_hook_ctrl); + d_set_wakeup_hook(wakeup_hook_ctrl); } //- rjf: set up shared resources for ipc to this instance; launch IPC signaler thread { Temp scratch = scratch_begin(0, 0); - U32 instance_pid = os_get_process_info()->pid; + U32 instance_pid = get_process_info()->pid; // rjf: set up cross-process sender -> main ring buffer - String8 ipc_sender2main_shared_memory_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_shared_memory_%i_", instance_pid); - String8 ipc_sender2main_signal_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_signal_semaphore_%i_", instance_pid); - String8 ipc_sender2main_lock_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_lock_semaphore_%i_", instance_pid); - OS_Handle ipc_sender2main_shared_memory = os_shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_sender2main_shared_memory_name); - ipc_sender2main_shared_memory_base = (U8 *)os_shared_memory_view_open(ipc_sender2main_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); + String8 ipc_sender2main_shared_memory_name = str8f(scratch.arena, "_raddbg_ipc_sender2main_shared_memory_%i_", instance_pid); + String8 ipc_sender2main_signal_semaphore_name = str8f(scratch.arena, "_raddbg_ipc_sender2main_signal_semaphore_%i_", instance_pid); + String8 ipc_sender2main_lock_semaphore_name = str8f(scratch.arena, "_raddbg_ipc_sender2main_lock_semaphore_%i_", instance_pid); + SharedMemory ipc_sender2main_shared_memory = shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_sender2main_shared_memory_name); + ipc_sender2main_shared_memory_base = (U8 *)shared_memory_view_open(ipc_sender2main_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); ipc_sender2main_signal_semaphore = semaphore_alloc(0, 1, ipc_sender2main_signal_semaphore_name); ipc_sender2main_lock_semaphore = semaphore_alloc(1, 1, ipc_sender2main_lock_semaphore_name); // rjf: set up cross-process main -> sender ring buffer - String8 ipc_main2sender_shared_memory_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_shared_memory_%i_", instance_pid); - String8 ipc_main2sender_signal_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_signal_semaphore_%i_", instance_pid); - String8 ipc_main2sender_lock_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_lock_semaphore_%i_", instance_pid); - OS_Handle ipc_main2sender_shared_memory = os_shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_main2sender_shared_memory_name); - ipc_main2sender_shared_memory_base = (U8 *)os_shared_memory_view_open(ipc_main2sender_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); + String8 ipc_main2sender_shared_memory_name = str8f(scratch.arena, "_raddbg_ipc_main2sender_shared_memory_%i_", instance_pid); + String8 ipc_main2sender_signal_semaphore_name = str8f(scratch.arena, "_raddbg_ipc_main2sender_signal_semaphore_%i_", instance_pid); + String8 ipc_main2sender_lock_semaphore_name = str8f(scratch.arena, "_raddbg_ipc_main2sender_lock_semaphore_%i_", instance_pid); + SharedMemory ipc_main2sender_shared_memory = shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_main2sender_shared_memory_name); + ipc_main2sender_shared_memory_base = (U8 *)shared_memory_view_open(ipc_main2sender_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); ipc_main2sender_signal_semaphore = semaphore_alloc(0, 1, ipc_main2sender_signal_semaphore_name); ipc_main2sender_lock_semaphore = semaphore_alloc(1, 1, ipc_main2sender_lock_semaphore_name); @@ -529,10 +746,10 @@ entry_point(CmdLine *cmd_line) { consumed = 1; ipc_command_frame = 1; - ipc_s2m_ring_read_pos += ring_read_struct(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_read_pos, &msg.size); + ipc_s2m_ring_read_pos += wrapped_read_struct(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_read_pos, &msg.size); msg.size = Min(msg.size, unconsumed_size); msg.str = push_array(scratch.arena, U8, msg.size); - ipc_s2m_ring_read_pos += ring_read(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_read_pos, msg.str, msg.size); + ipc_s2m_ring_read_pos += wrapped_read(ipc_s2m_ring_buffer, sizeof(ipc_s2m_ring_buffer), ipc_s2m_ring_read_pos, msg.str, msg.size); } } if(consumed) @@ -542,10 +759,11 @@ entry_point(CmdLine *cmd_line) if(msg.size != 0) { log_infof("ipc_msg: \"%S\"", msg); + String8List cmd_parts_of_msg = str8_split(scratch.arena, msg, (U8 *)";", 1, 0); RD_WindowState *dst_ws = rd_state->first_window_state; for(RD_WindowState *ws = dst_ws; ws != &rd_nil_window_state; ws = ws->order_next) { - if(os_window_is_focused(ws->os)) + if(wm_window_is_focused(ws->os)) { dst_ws = ws; break; @@ -566,7 +784,10 @@ entry_point(CmdLine *cmd_line) rd_regs()->view = panel_tree.focused->selected_tab->id; scratch_end(scratch); } - rd_cmd(RD_CmdKind_RunExternalDriverTextCommand, .string = msg); + for EachNode(n, String8Node, cmd_parts_of_msg.first) + { + rd_cmd(RD_CmdKind_RunExternalDriverTextCommand, .string = n->string); + } rd_request_frame(); } } @@ -602,7 +823,7 @@ entry_point(CmdLine *cmd_line) if(ipc_command_frame) { if(ipc_main2sender_shared_memory_base != 0 && - os_semaphore_take(ipc_main2sender_lock_semaphore, os_now_microseconds()+5000000)) + semaphore_take(ipc_main2sender_lock_semaphore, now_time_us()+5000000)) { IPCInfo *ipc_info = (IPCInfo *)ipc_main2sender_shared_memory_base; U8 *buffer = (U8 *)(ipc_info+1); @@ -611,8 +832,8 @@ entry_point(CmdLine *cmd_line) String8 msg = str8_list_join(scratch.arena, &rd_state->cmd_outputs, &join); ipc_info->msg_size = Min(buffer_max, msg.size); MemoryCopy(buffer, msg.str, ipc_info->msg_size); - os_semaphore_drop(ipc_main2sender_signal_semaphore); - os_semaphore_drop(ipc_main2sender_lock_semaphore); + semaphore_drop(ipc_main2sender_signal_semaphore); + semaphore_drop(ipc_main2sender_lock_semaphore); } } } @@ -641,7 +862,7 @@ entry_point(CmdLine *cmd_line) //- rjf: no explicit PID? -> find PID to send message to, by looking for other raddbg instances if(dst_pid == 0) { - U32 this_pid = os_get_process_info()->pid; + U32 this_pid = get_process_info()->pid; DMN_ProcessIter it = {0}; dmn_process_iter_begin(&it); for(DMN_ProcessInfo info = {0}; dmn_process_iter_next(scratch.arena, &it, &info);) @@ -660,23 +881,23 @@ entry_point(CmdLine *cmd_line) String8 ipc_sender2main_shared_memory_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_shared_memory_%i_", dst_pid); String8 ipc_sender2main_signal_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_signal_semaphore_%i_", dst_pid); String8 ipc_sender2main_lock_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_sender2main_lock_semaphore_%i_", dst_pid); - OS_Handle ipc_sender2main_shared_memory = os_shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_sender2main_shared_memory_name); - ipc_sender2main_shared_memory_base = (U8 *)os_shared_memory_view_open(ipc_sender2main_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); - ipc_sender2main_signal_semaphore = os_semaphore_alloc(0, 1, ipc_sender2main_signal_semaphore_name); - ipc_sender2main_lock_semaphore = os_semaphore_alloc(1, 1, ipc_sender2main_lock_semaphore_name); + SharedMemory ipc_sender2main_shared_memory = shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_sender2main_shared_memory_name); + ipc_sender2main_shared_memory_base = (U8 *)shared_memory_view_open(ipc_sender2main_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); + ipc_sender2main_signal_semaphore = semaphore_alloc(0, 1, ipc_sender2main_signal_semaphore_name); + ipc_sender2main_lock_semaphore = semaphore_alloc(1, 1, ipc_sender2main_lock_semaphore_name); String8 ipc_main2sender_shared_memory_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_shared_memory_%i_", dst_pid); String8 ipc_main2sender_signal_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_signal_semaphore_%i_", dst_pid); String8 ipc_main2sender_lock_semaphore_name = push_str8f(scratch.arena, "_raddbg_ipc_main2sender_lock_semaphore_%i_", dst_pid); - OS_Handle ipc_main2sender_shared_memory = os_shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_main2sender_shared_memory_name); - ipc_main2sender_shared_memory_base = (U8 *)os_shared_memory_view_open(ipc_main2sender_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); - ipc_main2sender_signal_semaphore = os_semaphore_alloc(0, 1, ipc_main2sender_signal_semaphore_name); - ipc_main2sender_lock_semaphore = os_semaphore_alloc(1, 1, ipc_main2sender_lock_semaphore_name); + SharedMemory ipc_main2sender_shared_memory = shared_memory_alloc(IPC_SHARED_MEMORY_BUFFER_SIZE, ipc_main2sender_shared_memory_name); + ipc_main2sender_shared_memory_base = (U8 *)shared_memory_view_open(ipc_main2sender_shared_memory, r1u64(0, IPC_SHARED_MEMORY_BUFFER_SIZE)); + ipc_main2sender_signal_semaphore = semaphore_alloc(0, 1, ipc_main2sender_signal_semaphore_name); + ipc_main2sender_lock_semaphore = semaphore_alloc(1, 1, ipc_main2sender_lock_semaphore_name); //- rjf: got resources -> write message B32 wrote_message = 0; if(dst_pid != 0 && ipc_sender2main_shared_memory_base != 0 && - os_semaphore_take(ipc_sender2main_lock_semaphore, max_U64)) + semaphore_take(ipc_sender2main_lock_semaphore, max_U64)) { wrote_message = 1; IPCInfo *ipc_info = (IPCInfo *)ipc_sender2main_shared_memory_base; @@ -693,24 +914,24 @@ entry_point(CmdLine *cmd_line) String8 msg = str8_list_join(scratch.arena, &parts, &join); ipc_info->msg_size = Min(buffer_max, msg.size); MemoryCopy(buffer, msg.str, ipc_info->msg_size); - os_semaphore_drop(ipc_sender2main_signal_semaphore); - os_semaphore_drop(ipc_sender2main_lock_semaphore); + semaphore_drop(ipc_sender2main_signal_semaphore); + semaphore_drop(ipc_sender2main_lock_semaphore); } //- rjf: wrote message -> wait for outputs, read outputs String8List outputs = {0}; if(wrote_message && ipc_main2sender_shared_memory_base != 0 && - os_semaphore_take(ipc_main2sender_signal_semaphore, os_now_microseconds()+10000000)) + semaphore_take(ipc_main2sender_signal_semaphore, now_time_us()+10000000)) { - if(os_semaphore_take(ipc_main2sender_lock_semaphore, max_U64)) + if(semaphore_take(ipc_main2sender_lock_semaphore, max_U64)) { IPCInfo *ipc_info = (IPCInfo *)ipc_main2sender_shared_memory_base; String8 msg = str8((U8 *)(ipc_info+1), ipc_info->msg_size); msg.size = Min(msg.size, IPC_SHARED_MEMORY_BUFFER_SIZE - sizeof(IPCInfo)); U8 split_char = 0; outputs = str8_split(scratch.arena, msg, &split_char, 1, 0); - os_semaphore_drop(ipc_main2sender_lock_semaphore); + semaphore_drop(ipc_main2sender_lock_semaphore); } } @@ -734,7 +955,7 @@ entry_point(CmdLine *cmd_line) //- rjf: help message box case ExecMode_Help: { - os_graphical_message(0, + wm_graphical_message(0, str8_lit("The RAD Debugger - Help"), str8_lit("The following options may be used when starting the RAD Debugger from the command line:\n\n" "--user:\n" @@ -748,7 +969,12 @@ entry_point(CmdLine *cmd_line) "--quit_after_success (or -q)\n" "This will close the debugger automatically after all processes exit, if they all exited successfully (with code 0), and ran with no interruptions.\n\n" "--ipc \n" - "This will launch the debugger in the non-graphical IPC mode, which is used to communicate with another running instance of the debugger. The debugger instance will launch, send the specified command, then immediately terminate. This may be used by editors or other programs to control the debugger.\n\n")); + "This will launch the debugger in the non-graphical IPC mode, which is used to communicate with another running instance of the debugger. The debugger instance will launch, send the specified command, then immediately terminate. This may be used by editors or other programs to control the debugger.\n\n" + "--gen_crash_dump\n" + "Generate mini dump on crash.\n\n" + "--logs:\n" + "Overrides default path to the folder with logs.\n" + )); }break; } diff --git a/src/raddbg/raddbg_views.c b/src/raddbg/raddbg_views.c index eca984d4..f7b7f018 100644 --- a/src/raddbg/raddbg_views.c +++ b/src/raddbg/raddbg_views.c @@ -19,8 +19,8 @@ rd_code_view_init(RD_CodeViewState *cv) ProfEnd(); } -internal RD_CodeViewBuildResult -rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags flags, Rng2F32 rect, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key) +internal void +rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags flags, Rng2F32 rect, U128 text_hash, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key) { ProfBeginFunction(); Temp scratch = scratch_begin(&arena, 1); @@ -44,8 +44,8 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla F32 scroll_bar_dim = floor_f32(main_font_size*1.5f); Vec2F32 code_area_dim = v2f32(panel_box_dim.x - scroll_bar_dim, panel_box_dim.y - scroll_bar_dim); S64 num_possible_visible_lines = (S64)(code_area_dim.y/code_line_height)+1; - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); + D_Entity *thread = d_entity_from_handle(rd_regs()->thread); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); B32 do_line_numbers = rd_setting_b32_from_name(str8_lit("show_line_numbers")); ////////////////////////////// @@ -78,24 +78,24 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla case RD_CmdKind_Search: { arena_clear(cv->find_text_arena); - cv->find_text_fwd = push_str8_copy(cv->find_text_arena, cmd->regs->string); + cv->find_text_fwd = str8_copy(cv->find_text_arena, cmd->regs->string); }break; case RD_CmdKind_SearchBackwards: { arena_clear(cv->find_text_arena); - cv->find_text_bwd = push_str8_copy(cv->find_text_arena, cmd->regs->string); + cv->find_text_bwd = str8_copy(cv->find_text_arena, cmd->regs->string); }break; case RD_CmdKind_FindNext: { String8 string = rd_view_query_input(); arena_clear(cv->find_text_arena); - cv->find_text_fwd = push_str8_copy(cv->find_text_arena, string); + cv->find_text_fwd = str8_copy(cv->find_text_arena, string); }break; case RD_CmdKind_FindPrev: { String8 string = rd_view_query_input(); arena_clear(cv->find_text_arena); - cv->find_text_bwd = push_str8_copy(cv->find_text_arena, string); + cv->find_text_bwd = str8_copy(cv->find_text_arena, string); }break; case RD_CmdKind_ToggleWatchExpressionAtMouse: { @@ -218,7 +218,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla code_slice_params.line_ranges = push_array(scratch.arena, Rng1U64, visible_line_count); code_slice_params.line_tokens = push_array(scratch.arena, TXT_TokenArray, visible_line_count); code_slice_params.line_bps = push_array(scratch.arena, CFG_NodePtrList, visible_line_count); - code_slice_params.line_ips = push_array(scratch.arena, CTRL_EntityList, visible_line_count); + code_slice_params.line_ips = push_array(scratch.arena, D_EntityList, visible_line_count); code_slice_params.line_pins = push_array(scratch.arena, CFG_NodePtrList, visible_line_count); code_slice_params.line_vaddrs = push_array(scratch.arena, U64, visible_line_count); code_slice_params.line_infos = push_array(scratch.arena, D_LineList, visible_line_count); @@ -255,6 +255,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla CFG_NodePtrList bps = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); for(CFG_NodePtrNode *n = bps.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } CFG_Node *bp = n->v; RD_Location loc = rd_location_from_cfg(bp); if(visible_line_num_range.min <= loc.pt.line && loc.pt.line <= visible_line_num_range.max) @@ -277,35 +278,51 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla // rjf: find live threads mapping to source code if(!dasm_lines) ProfScope("find live threads mapping to this file") { - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_EntityArray threads = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Thread); + D_Entity *selected_thread = d_entity_from_handle(rd_regs()->thread); + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); for EachIndex(idx, threads.count) { - CTRL_Entity *thread = threads.v[idx]; - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); + D_Entity *thread = threads.v[idx]; + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); U64 unwind_count = (thread == selected_thread) ? rd_regs()->unwind_count : 0; U64 inline_depth = (thread == selected_thread) ? rd_regs()->inline_depth : 0; U64 rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); U64 last_inst_on_unwound_rip_vaddr = rip_vaddr - !!unwind_count; - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, last_inst_on_unwound_rip_vaddr); - U64 rip_voff = ctrl_voff_from_vaddr(module, last_inst_on_unwound_rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); + D_Entity *module = d_module_from_process_vaddr(process, last_inst_on_unwound_rip_vaddr); + U64 rip_voff = d_voff_from_vaddr(module, last_inst_on_unwound_rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); D_LineList lines = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, rip_voff); + String8 file_checksums[RDI_ChecksumKind_COUNT] = {0}; for(D_LineNode *n = lines.first; n != 0; n = n->next) { if(visible_line_num_range.min <= n->v.pt.line && n->v.pt.line <= visible_line_num_range.max) { - for(String8Node *override_n = file_path_possible_overrides.first; - override_n != 0; - override_n = override_n->next) + B32 matches_file = 0; + if(!matches_file) + { + if(file_checksums[n->v.checksum_kind].size == 0) + { + file_checksums[n->v.checksum_kind] = rd_checksum_value_from_hash_kind(scratch.arena, text_hash, n->v.checksum_kind); + } + String8 file_checksum = file_checksums[n->v.checksum_kind]; + String8 file_checksum_expected = n->v.checksum_value; + matches_file = str8_match(file_checksum, file_checksum_expected, 0); + } + if(!matches_file) for(String8Node *override_n = file_path_possible_overrides.first; + override_n != 0; + override_n = override_n->next) { if(path_match_normalized(n->v.file_path, override_n->string)) { - U64 slice_line_idx = n->v.pt.line-visible_line_num_range.min; - ctrl_entity_list_push(scratch.arena, &code_slice_params.line_ips[slice_line_idx], thread); + matches_file = 1; break; } } + if(matches_file) + { + U64 slice_line_idx = n->v.pt.line-visible_line_num_range.min; + d_entity_list_push(scratch.arena, &code_slice_params.line_ips[slice_line_idx], thread); + } } } } @@ -340,9 +357,9 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla if(!dasm_lines) ProfScope("find all src -> dasm info for source code") { String8 file_path = rd_regs()->file_path; - CTRL_Entity *module = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->module); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - D_LineListArray lines_array = d_lines_array_from_dbgi_key_file_path_line_range(scratch.arena, dbgi_key, file_path, visible_line_num_range); + D_Entity *module = d_entity_from_handle(rd_regs()->module); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + D_LineListArray lines_array = d_lines_array_from_dbgi_key_file_path_line_range(scratch.arena, dbgi_key, file_path, visible_line_num_range, 8); if(lines_array.count != 0) { MemoryCopy(code_slice_params.line_infos, lines_array.v, sizeof(D_LineList)*lines_array.count); @@ -353,21 +370,21 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla // rjf: find live threads mapping to disasm if(dasm_lines) ProfScope("find live threads mapping to this disassembly") { - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_EntityArray threads = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Thread); + D_Entity *selected_thread = d_entity_from_handle(rd_regs()->thread); + D_EntityArray threads = d_entity_array_from_kind(D_EntityKind_Thread); for EachIndex(idx, threads.count) { - CTRL_Entity *thread = threads.v[idx]; + D_Entity *thread = threads.v[idx]; U64 unwind_count = (thread == selected_thread) ? rd_regs()->unwind_count : 0; U64 rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); - if(ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process) == process && contains_1u64(dasm_vaddr_range, rip_vaddr)) + if(d_entity_ancestor_from_kind(thread, D_EntityKind_Process) == process && contains_1u64(dasm_vaddr_range, rip_vaddr)) { U64 rip_off = rip_vaddr - dasm_vaddr_range.min; S64 line_num = dasm_line_array_idx_from_code_off__linear_scan(dasm_lines, rip_off)+1; if(contains_1s64(visible_line_num_range, line_num)) { U64 slice_line_idx = (line_num-visible_line_num_range.min); - ctrl_entity_list_push(scratch.arena, &code_slice_params.line_ips[slice_line_idx], thread); + d_entity_list_push(scratch.arena, &code_slice_params.line_ips[slice_line_idx], thread); } } } @@ -379,6 +396,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla CFG_NodePtrList bps = cfg_node_top_level_list_from_string(scratch.arena, str8_lit("breakpoint")); for(CFG_NodePtrNode *n = bps.first; n != 0; n = n->next) { + if(rd_cfg_is_project_filtered(n->v)){ continue; } CFG_Node *bp = n->v; RD_Location loc = rd_location_from_cfg(bp); E_Value loc_value = e_value_from_string(loc.expr); @@ -422,12 +440,12 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla // rjf: fill dasm -> src info if(dasm_lines) { - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, dasm_vaddr_range.min); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); + D_Entity *module = d_module_from_process_vaddr(process, dasm_vaddr_range.min); + DI_Key dbgi_key = d_dbgi_key_from_module(module); for(S64 line_num = visible_line_num_range.min; line_num < visible_line_num_range.max; line_num += 1) { U64 vaddr = dasm_vaddr_range.min + dasm_line_array_code_off_from_idx(dasm_lines, line_num-1); - U64 voff = ctrl_voff_from_vaddr(module, vaddr); + U64 voff = d_voff_from_vaddr(module, vaddr); U64 slice_idx = line_num-visible_line_num_range.min; code_slice_params.line_vaddrs[slice_idx] = vaddr; code_slice_params.line_infos[slice_idx] = d_lines_from_dbgi_key_voff(scratch.arena, dbgi_key, voff); @@ -641,7 +659,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla } //- rjf: ctrl+pressed? -> go to name - if(ui_pressed(sig.base) && sig.base.event_flags & OS_Modifier_Ctrl) + if(ui_pressed(sig.base) && sig.base.event_flags & WM_Modifier_Ctrl) { ui_kill_action(); rd_cmd(RD_CmdKind_GoToName, .string = txt_string_from_info_data_txt_rng(text_info, text_data, sig.mouse_expr_rng)); @@ -792,7 +810,7 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla { for(UI_Event *evt = 0; ui_next_event(&evt);) { - if(evt->kind == UI_EventKind_Scroll && evt->modifiers & OS_Modifier_Ctrl && evt->modifiers & OS_Modifier_Shift) + if(evt->kind == UI_EventKind_Scroll && evt->modifiers & WM_Modifier_Ctrl && evt->modifiers & WM_Modifier_Shift) { ui_eat_event(evt); if(evt->delta_2f32.y < 0) @@ -808,17 +826,6 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla } } - ////////////////////////////// - //- rjf: build result - // - RD_CodeViewBuildResult result = {0}; - { - for(DI_KeyNode *n = code_slice_params.relevant_dbgi_keys.first; n != 0; n = n->next) - { - di_key_list_push(arena, &result.dbgi_keys, n->v); - } - } - ////////////////////////////// //- rjf: store state // @@ -827,7 +834,6 @@ rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags fla scratch_end(scratch); ProfEnd(); - return result; } //////////////////////////////// @@ -940,12 +946,12 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) { RD_WatchRowInfo info = { - .module = &ctrl_entity_nil, + .module = &d_entity_nil, .can_expand = ev_row_is_expandable(row), .group_cfg_parent = &cfg_nil_node, .group_cfg_child = &cfg_nil_node, - .group_entity = &ctrl_entity_nil, - .callstack_thread = &ctrl_entity_nil, + .group_entity = &d_entity_nil, + .callstack_thread = &d_entity_nil, .view_ui_rule = &rd_nil_view_ui_rule, }; { @@ -963,7 +969,7 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) E_TypeKind block_type_kind = e_type_kind_from_key(block_type_key); E_Type *block_type = e_type_from_key(block_type_key); CFG_Node *evalled_cfg = rd_cfg_from_eval_space(row->eval.space); - CTRL_Entity *evalled_entity = (row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ? rd_ctrl_entity_from_eval_space(row->eval.space) : &ctrl_entity_nil); + D_Entity *evalled_entity = (row->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity ? rd_ctrl_entity_from_eval_space(row->eval.space) : &d_entity_nil); //////////////////////////// //- rjf: determine if this cfg/entity evaluation is top-level - e.g. if we @@ -975,9 +981,9 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, evalled_cfg->string); is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key)); } - if(evalled_entity != &ctrl_entity_nil) + if(evalled_entity != &d_entity_nil) { - String8 top_level_name = ctrl_entity_kind_code_name_table[evalled_entity->kind]; + String8 top_level_name = d_entity_kind_code_name_table[evalled_entity->kind]; E_TypeKey top_level_type_key = e_string2typekey_map_lookup(rd_state->meta_name2type_map, top_level_name); is_top_level = (row->eval.value.u64 == 0 && e_type_key_match(top_level_type_key, row->eval.irtree.type_key)); } @@ -993,22 +999,22 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) //////////////////////////// //- rjf: fill row's module // - if(row->eval.space.kind == CTRL_EvalSpaceKind_Entity) + if(row->eval.space.kind == D_EvalSpaceKind_Entity) { - CTRL_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row->eval.space); + D_Entity *row_ctrl_entity = rd_ctrl_entity_from_eval_space(row->eval.space); switch(row_ctrl_entity->kind) { default: - case CTRL_EntityKind_Process: + case D_EntityKind_Process: if(row->eval.irtree.mode == E_Mode_Offset) { - info.module = ctrl_module_from_process_vaddr(row_ctrl_entity, row->eval.value.u64); + info.module = d_module_from_process_vaddr(row_ctrl_entity, row->eval.value.u64); }break; - case CTRL_EntityKind_Thread: + case D_EntityKind_Thread: if(row->eval.irtree.mode == E_Mode_Value) { - CTRL_Entity *process = ctrl_process_from_entity(row_ctrl_entity); - info.module = ctrl_module_from_process_vaddr(process, d_query_cached_rip_from_thread(row_ctrl_entity)); + D_Entity *process = d_process_from_entity(row_ctrl_entity); + info.module = d_module_from_process_vaddr(process, d_query_cached_rip_from_thread(row_ctrl_entity)); }break; } } @@ -1018,20 +1024,21 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) // if(block_eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity && str8_match(str8_lit("call_stack"), block_type->name, 0)) { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(block_eval.space); - if(entity->kind == CTRL_EntityKind_Thread) + D_Entity *entity = rd_ctrl_entity_from_eval_space(block_eval.space); + if(entity->kind == D_EntityKind_Thread) { Access *access = access_open(); info.callstack_thread = entity; U64 frame_num = ev_block_num_from_id(block, key.child_id); - B32 call_stack_high_priority = ctrl_handle_match(entity->handle, rd_base_regs()->thread); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + B32 call_stack_high_priority = d_handle_match(entity->handle, rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); if(1 <= frame_num && frame_num <= call_stack.frames_count) { - CTRL_CallStackFrame *f = &call_stack.frames[frame_num-1]; + ARCH_Info *arch_info = arch_info_from_arch(entity->arch); + D_CallStackFrame *f = &call_stack.frames[frame_num-1]; info.callstack_unwind_index = f->unwind_count; info.callstack_inline_depth = f->inline_depth; - info.callstack_vaddr = regs_rip_from_arch_block(entity->arch, f->regs); + info.callstack_vaddr = arch_ip_from_reg_block(arch_info, f->regs); } access_close(access); } @@ -1085,9 +1092,11 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) // if(!block_is_root) { + // TODO(rjf): @hack special-casing these specific hook checks... not good if(info.group_cfg_name.size != 0 && (block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(cfgs_slice) || block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(watches) || - block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment))) + block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(environment) || + block_type->expand.id_from_num == E_TYPE_EXPAND_ID_FROM_NUM_FUNCTION_NAME(peek_types))) { CFG_ID id = row->key.child_id; info.group_cfg_child = cfg_node_from_id(id); @@ -1295,23 +1304,23 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) //////////////////////////// //- rjf: @watch_row_build_cells ctrl entity evaluations // - else if(is_top_level && evalled_entity != &ctrl_entity_nil) + else if(is_top_level && evalled_entity != &d_entity_nil) { - CTRL_Entity *entity = evalled_entity; + D_Entity *entity = evalled_entity; rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .flags = RD_WatchCellFlag_Expr|RD_WatchCellFlag_NoEval|RD_WatchCellFlag_Indented|RD_WatchCellFlag_Button, .pct = 1.f); - if(entity->kind == CTRL_EntityKind_Machine || - entity->kind == CTRL_EntityKind_Process || - entity->kind == CTRL_EntityKind_Thread) + if(entity->kind == D_EntityKind_Machine || + entity->kind == D_EntityKind_Process || + entity->kind == D_EntityKind_Thread) { rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_wrapf(row->eval, "active"), .px = floor_f32(ui_top_font_size()*5.5f)); } - if(entity->kind == CTRL_EntityKind_Thread) + if(entity->kind == D_EntityKind_Thread) { RD_CmdKind cmd_kind = RD_CmdKind_SelectEntity; - if(ctrl_handle_match(entity->handle, rd_base_regs()->thread)) + if(d_handle_match(entity->handle, rd_base_regs()->thread)) { cmd_kind = RD_CmdKind_DeselectEntity; } @@ -1403,20 +1412,20 @@ rd_watch_row_info_from_row(Arena *arena, EV_Row *row) //////////////////////////// //- rjf: @watch_row_build_cells call stack frames // - else if(info.callstack_thread != &ctrl_entity_nil) + else if(info.callstack_thread != &d_entity_nil) { info.cell_style_key = str8_lit("call_stack_frame"); - CTRL_Entity *process = ctrl_process_from_entity(info.callstack_thread); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, info.callstack_vaddr); - E_Eval module_eval = e_eval_from_stringf("query:control.%S", ctrl_string_from_handle(scratch.arena, module->handle)); + D_Entity *process = d_process_from_entity(info.callstack_thread); + D_Entity *module = d_module_from_process_vaddr(process, info.callstack_vaddr); + E_Eval module_eval = e_eval_from_stringf("query:control.%S", d_string_from_handle(scratch.arena, module->handle)); CFG_Node *view = cfg_node_from_id(rd_regs()->view); CFG_Node *style = cfg_node_child_from_string(view, info.cell_style_key); CFG_Node *w_cfg = style->first; F32 next_pct = 0; #define take_pct() (next_pct = (F32)f64_from_str8(w_cfg->string), w_cfg = w_cfg->next, next_pct) rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_CallStackFrame, row->eval, .default_pct = 0.05f, .pct = take_pct()); - rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, row->eval, .default_pct = 0.75f, .pct = take_pct()); - rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, (module == &ctrl_entity_nil ? (E_Eval)zero_struct : module_eval), + rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, e_eval_wrapf(row->eval, "$.address"), .default_pct = 0.75f, .pct = take_pct()); + rd_watch_cell_list_push_new(arena, &info.cells, RD_WatchCellKind_Eval, (module == &d_entity_nil ? (E_Eval)zero_struct : module_eval), .default_pct = 0.20f, .pct = take_pct()); #undef take_pct } @@ -1485,7 +1494,7 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla .flags = cell->flags, .view_ui_rule = &rd_nil_view_ui_rule, .cfg = &cfg_nil_node, - .entity = &ctrl_entity_nil, + .entity = &d_entity_nil, }; ////////////////////////////// @@ -1598,7 +1607,7 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla } //- rjf: entity evaluation -> button for entity - else if(result.entity != &ctrl_entity_nil) + else if(result.entity != &d_entity_nil) { result.expr_fstrs = rd_title_fstrs_from_ctrl_entity(arena, result.entity, 1); result.flags |= RD_WatchCellFlag_Button; @@ -1631,7 +1640,8 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla //- rjf: files -> button for file else if(result.file_path.size != 0) { - result.expr_fstrs = rd_title_fstrs_from_file_path(arena, result.file_path); + B32 need_folder = !str8_match(row_info->group_cfg_name, str8_lit("folder"), 0); + result.expr_fstrs = rd_title_fstrs_from_file_path(arena, result.file_path, need_folder); result.flags |= RD_WatchCellFlag_Button; } @@ -1646,7 +1656,7 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla String8 expr_string = {0}; // rjf: if this cell has a meta-display-name, then use that - if(expr_string.size == 0) + if(expr_string.size == 0 && !(string_flags & EV_StringFlag_DisablePrettyNames)) { for(E_Type *t = e_type_from_key(cell->eval.irtree.type_key); t != &e_type_nil; @@ -1731,10 +1741,11 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla // do a code-string of ".member_name" String8 member_name = notable_expr->first->next->string; String8 fancy_name = {0}; - if(cell->eval.space.kind == RD_EvalSpaceKind_MetaCfg || - cell->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity || - cell->eval.space.kind == E_SpaceKind_File || - cell->eval.space.kind == E_SpaceKind_FileSystem) + if(!(string_flags & EV_StringFlag_DisablePrettyNames) && + (cell->eval.space.kind == RD_EvalSpaceKind_MetaCfg || + cell->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity || + cell->eval.space.kind == E_SpaceKind_File || + cell->eval.space.kind == E_SpaceKind_FileSystem)) { fancy_name = rd_display_from_code_name(member_name); } @@ -1778,12 +1789,12 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla string_params.flags |= EV_StringFlag_DisableStringQuotes|EV_StringFlag_DisableAddresses; } if(cell->eval.space.kind == RD_EvalSpaceKind_MetaCtrlEntity && - rd_ctrl_entity_from_eval_space(cell->eval.space)->kind == CTRL_EntityKind_Module) + rd_ctrl_entity_from_eval_space(cell->eval.space)->kind == D_EntityKind_Module) { string_params.radix = 16; } - if(cell->eval.space.kind == CTRL_EvalSpaceKind_Entity && - rd_ctrl_entity_from_eval_space(cell->eval.space)->kind == CTRL_EntityKind_Thread) + if(cell->eval.space.kind == D_EvalSpaceKind_Entity && + rd_ctrl_entity_from_eval_space(cell->eval.space)->kind == D_EntityKind_Thread) { string_params.radix = 16; } @@ -1811,6 +1822,65 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla dr_fstrs_push_new(arena, &eval_fstrs, ¶ms, string); result.flags |= RD_WatchCellFlag_IsNonCode; } + + // rjf: equip line info for functions + { + E_TypeKey undecorated_type_key = e_type_key_unwrap(cell->eval.irtree.type_key, E_TypeUnwrapFlag_AllDecorative); + E_TypeKey direct_type_key = e_type_key_unwrap(undecorated_type_key, E_TypeUnwrapFlag_All); + E_TypeKey fn_type_key = {0}; + if(e_type_kind_from_key(undecorated_type_key) == E_TypeKind_Function) + { + fn_type_key = undecorated_type_key; + } + else if(e_type_kind_from_key(undecorated_type_key) == E_TypeKind_Ptr && + e_type_kind_from_key(direct_type_key) == E_TypeKind_Function) + { + fn_type_key = direct_type_key; + } + if(e_type_kind_from_key(fn_type_key) == E_TypeKind_Function) + { + Access *access = access_open(); + + // rjf: eval -> voff / dbgi key + E_Eval eval = cell->eval; + U64 voff = 0; + DI_Key dbgi_key = {0}; + if(eval.space.kind == D_EvalSpaceKind_Entity) + { + U64 vaddr = eval.value.u64; + D_Entity *process = rd_ctrl_entity_from_eval_space(eval.space); + D_Entity *module = d_module_from_process_vaddr(process, vaddr); + dbgi_key = d_dbgi_key_from_module(module); + voff = d_voff_from_vaddr(module, vaddr); + } + else + { + voff = eval.value.u64; + E_DbgInfo *dbg_info = e_dbg_info_from_type_key(eval.irtree.type_key); + dbgi_key = dbg_info->dbgi_key; + } + + // rjf: dbgi key -> rdi + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + + // rjf: voff -> line + RDI_Line line = rdi_line_from_voff(rdi, voff); + RDI_SourceFile *src_file = rdi_element_from_name_idx(rdi, SourceFiles, line.file_idx); + RDI_FilePathNode *path_node = rdi_element_from_name_idx(rdi, FilePathNodes, src_file->file_path_node_idx); + String8 file_name = str8_from_rdi_string_idx(rdi, path_node->name_string_idx); + + // rjf: push line location + if(line.file_idx != 0) UI_TagF("weak") + { + String8 loc = str8f(arena, "%S:%i", file_name, line.line_num); + DR_FStrParams params = {rd_font_from_slot(RD_FontSlot_Main), rd_raster_flags_from_slot(RD_FontSlot_Main), ui_color_from_name(str8_lit("text")), font_size*0.85f, 0, 0}; + dr_fstrs_push_new(arena, &eval_fstrs, ¶ms, str8_lit(" @ ")); + dr_fstrs_push_new(arena, &eval_fstrs, ¶ms, loc); + } + + access_close(access); + } + } } //- rjf: if we have only the expression, then use the expression as the value @@ -1903,6 +1973,25 @@ rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_fla return result; } +//- rjf: cell -> fill registers via context + +internal RD_RegSlot +rd_regs_fill_slot_from_cell_ctx(String8 root_ctx_expr, EV_Row *row) +{ + RD_RegSlot ctx_filled_reg_slot = RD_RegSlot_Null; + if(ctx_filled_reg_slot == RD_RegSlot_Null) { ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(row->eval); } + for(EV_Block *block = row->block; block != &ev_nil_block && ctx_filled_reg_slot == RD_RegSlot_Null; block = block->parent) + { + ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(block->eval); + } + if(ctx_filled_reg_slot == RD_RegSlot_Null) + { + E_Eval root_ctx_eval = e_eval_from_string(root_ctx_expr); + ctx_filled_reg_slot = rd_regs_fill_slot_from_ctx_eval(root_ctx_eval); + } + return ctx_filled_reg_slot; +} + //- rjf: table coordinates -> text edit state internal RD_WatchViewTextEditState * @@ -1933,90 +2022,6 @@ RD_VIEW_UI_FUNCTION_DEF(null) {} //////////////////////////////// //~ rjf: text @view_hook_impl -internal AC_Artifact -rd_md5_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) -{ - AC_Artifact result = {0}; - { - Access *access = access_open(); - U128 hash = {0}; - str8_deserial_read_struct(key, 0, &hash); - String8 data = c_data_from_hash(access, hash); - MD5 md5 = md5_from_data(data); - StaticAssert(sizeof(result) >= sizeof(md5), artifact_size_check); - MemoryCopy(&result, &md5, Min(sizeof(result), sizeof(md5))); - access_close(access); - } - return result; -} - -internal AC_Artifact -rd_sha1_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) -{ - AC_Artifact result = {0}; - { - Access *access = access_open(); - U128 hash = {0}; - str8_deserial_read_struct(key, 0, &hash); - String8 data = c_data_from_hash(access, hash); - SHA1 sha1 = sha1_from_data(data); - StaticAssert(sizeof(result) >= sizeof(sha1), artifact_size_check); - MemoryCopy(&result, &sha1, Min(sizeof(result), sizeof(sha1))); - access_close(access); - } - return result; -} - -internal AC_Artifact -rd_sha256_artifact_create(String8 key, B32 *cancel_out, B32 *retry_out, U64 *gen_out) -{ - AC_Artifact result = {0}; - { - Access *access = access_open(); - U128 hash = {0}; - str8_deserial_read_struct(key, 0, &hash); - String8 data = c_data_from_hash(access, hash); - SHA256 sha256 = sha256_from_data(data); - StaticAssert(sizeof(result) >= sizeof(sha256), artifact_size_check); - MemoryCopy(&result, &sha256, Min(sizeof(result), sizeof(sha256))); - access_close(access); - } - return result; -} - -internal MD5 -rd_md5_from_hash(U128 hash) -{ - Access *access = access_open(); - AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_md5_artifact_create, 0, 0); - MD5 md5 = {0}; - MemoryCopy(&md5, &artifact, Min(sizeof(md5), sizeof(artifact))); - access_close(access); - return md5; -} - -internal SHA1 -rd_sha1_from_hash(U128 hash) -{ - Access *access = access_open(); - AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_sha1_artifact_create, 0, 0); - SHA1 sha1 = {0}; - MemoryCopy(&sha1, &artifact, Min(sizeof(sha1), sizeof(artifact))); - access_close(access); - return sha1; -} - -internal SHA256 -rd_sha256_from_hash(U128 hash) -{ - Access *access = access_open(); - AC_Artifact artifact = ac_artifact_from_key(access, str8_struct(&hash), rd_sha256_artifact_create, 0, 0); - SHA256 sha256 = {0}; - MemoryCopy(&sha256, &artifact, Min(sizeof(sha256), sizeof(artifact))); - access_close(access); - return sha256; -} - EV_EXPAND_RULE_INFO_FUNCTION_DEF(text) { EV_ExpandInfo info = {0}; @@ -2097,8 +2102,8 @@ RD_VIEW_UI_FUNCTION_DEF(text) if(rd_regs()->lang_kind == TXT_LangKind_Null) { Access *access = access_open(); - CTRL_Entity *module = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->module); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); + D_Entity *module = d_entity_from_handle(rd_regs()->module); + DI_Key dbgi_key = d_dbgi_key_from_module(module); RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); if(rdi != &rdi_parsed_nil) { @@ -2146,7 +2151,7 @@ RD_VIEW_UI_FUNCTION_DEF(text) U128 hash = {0}; TXT_TextInfo info = txt_text_info_from_key_lang(access, rd_regs()->text_key, rd_regs()->lang_kind, &hash); String8 data = c_data_from_hash(access, hash); - B32 file_is_missing = (rd_regs()->file_path.size != 0 && os_properties_from_file_path(rd_regs()->file_path).modified == 0); + B32 file_is_missing = (rd_regs()->file_path.size != 0 && properties_from_file_path(rd_regs()->file_path).modified == 0); B32 key_has_data = !u128_match(hash, u128_zero()) && info.lines_count; ProfEnd(); @@ -2196,7 +2201,8 @@ RD_VIEW_UI_FUNCTION_DEF(text) ////////////////////////////// //- rjf: code is not missing, but not ready -> equip loading info to this view // - if(!file_is_missing && info.lines_count == 0 && eval.msgs.max_kind == E_MsgKind_Null) + B32 is_loading = (!file_is_missing && info.lines_count == 0 && eval.msgs.max_kind == E_MsgKind_Null && eval.space.kind != E_SpaceKind_Null); + if(is_loading) { rd_store_view_loading_info(1, info.bytes_processed, info.bytes_to_process); } @@ -2204,16 +2210,14 @@ RD_VIEW_UI_FUNCTION_DEF(text) ////////////////////////////// //- rjf: build code contents // - DI_KeyList dbgi_keys = {0}; - if(!file_is_missing) + if(!file_is_missing && eval.space.kind != E_SpaceKind_Null) { RD_CodeViewBuildFlags flags = RD_CodeViewBuildFlag_All; if(rd_regs()->file_path.size == 0) { flags &= ~RD_CodeViewBuildFlag_Margins; } - RD_CodeViewBuildResult result = rd_code_view_build(scratch.arena, cv, flags, code_area_rect, data, &info, 0, r1u64(0, 0), di_key_zero()); - dbgi_keys = result.dbgi_keys; + rd_code_view_build(scratch.arena, cv, flags, code_area_rect, hash, data, &info, 0, r1u64(0, 0), di_key_zero()); } ////////////////////////////// @@ -2221,9 +2225,9 @@ RD_VIEW_UI_FUNCTION_DEF(text) // if(rd_regs()->file_path.size != 0) { - CTRL_Entity *module = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->module); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - rd_regs()->lines = d_lines_from_dbgi_key_file_path_line_num(rd_frame_arena(), dbgi_key, rd_regs()->file_path, rd_regs()->cursor.line); + D_Entity *module = d_entity_from_handle(rd_regs()->module); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + rd_regs()->lines = d_lines_from_dbgi_key_file_path_line_num(rd_frame_arena(), dbgi_key, rd_regs()->file_path, rd_regs()->cursor.line, 8); } ////////////////////////////// @@ -2233,22 +2237,22 @@ RD_VIEW_UI_FUNCTION_DEF(text) { Temp scratch = scratch_begin(0, 0); - // rjf: determine checksum in relevant debug infos + // rjf: determine checksum in selected debug info + E_DbgInfo *dbg_info = e_base_ctx->primary_dbg_info; + DI_Key dbgi_key = dbg_info->dbgi_key; RDI_ChecksumKind checksum_kind = RDI_ChecksumKind_NULL; String8 checksum_expected = {0}; - for(DI_KeyNode *n = dbgi_keys.first; n != 0 && checksum_kind == RDI_ChecksumKind_NULL; n = n->next) { Access *access = access_open(); // rjf: unpack RDI - DI_Key key = n->v; - RDI_Parsed *rdi = di_rdi_from_key(access, key, 0, 0); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); // rjf: file_path_normalized * rdi -> src_id for EachNode(override_n, String8Node, overrides.first) { String8 file_path = override_n->string; - String8 file_path_normalized = lower_from_str8(scratch.arena, path_normalized_from_string(scratch.arena, file_path)); + String8 file_path_normalized = rdim_normalized_from_path(scratch.arena, file_path); B32 good_src_id = 0; U32 src_id = 0; if(rdi != &rdi_parsed_nil) @@ -2282,28 +2286,14 @@ RD_VIEW_UI_FUNCTION_DEF(text) // rjf: if we got a checksum, compute it locally - check if they match. switch(checksum_kind) { - default:{}break; - case RDI_ChecksumKind_MD5: + default: { - MD5 md5 = rd_md5_from_hash(hash); - String8 md5_string = str8_struct(&md5); - file_is_out_of_date = !MemoryIsZeroStruct(&md5) && !str8_match(md5_string, checksum_expected, 0); - }break; - case RDI_ChecksumKind_SHA1: - { - SHA1 sha1 = rd_sha1_from_hash(hash); - String8 sha1_string = str8_struct(&sha1); - file_is_out_of_date = !MemoryIsZeroStruct(&sha1) && !str8_match(sha1_string, checksum_expected, 0); - }break; - case RDI_ChecksumKind_SHA256: - { - SHA256 sha256 = rd_sha256_from_hash(hash); - String8 sha256_string = str8_struct(&sha256); - file_is_out_of_date = !MemoryIsZeroStruct(&sha256) && !str8_match(sha256_string, checksum_expected, 0); + String8 checksum_value = rd_checksum_value_from_hash_kind(scratch.arena, hash, checksum_kind); + file_is_out_of_date = checksum_expected.size != 0 && !memory_is_zero(checksum_value.str, checksum_value.size) && !str8_match(checksum_value, checksum_expected, 0); }break; case RDI_ChecksumKind_Timestamp: { - FileProperties props = os_properties_from_file_path(rd_regs()->file_path); + FileProperties props = properties_from_file_path(rd_regs()->file_path); String8 timestamp_string = str8_struct(&props.modified); file_is_out_of_date = !MemoryIsZeroStruct(&props.modified) && !str8_match(timestamp_string, checksum_expected, 0); }break; @@ -2379,7 +2369,7 @@ struct RD_DisasmViewState B32 initialized; TxtPt cursor; TxtPt mark; - CTRL_Handle temp_look_process; + D_Handle temp_look_process; U64 temp_look_vaddr; U64 temp_look_run_gen; U64 goto_vaddr; @@ -2428,16 +2418,16 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) E_Space auto_space = {0}; if(eval.expr == &e_expr_nil) { - if(dv->temp_look_vaddr != 0 && dv->temp_look_run_gen == ctrl_run_gen()) + if(dv->temp_look_vaddr != 0 && dv->temp_look_run_gen == d_run_gen()) { auto_selected = 1; - auto_space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, dv->temp_look_process), CTRL_EvalSpaceKind_Entity); + auto_space = rd_eval_space_from_ctrl_entity(d_entity_from_handle(dv->temp_look_process), D_EvalSpaceKind_Entity); eval = e_eval_from_stringf("(0x%I64x & (~(0x4000 - 1)))", dv->temp_look_vaddr); } else { auto_selected = 1; - auto_space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process), CTRL_EvalSpaceKind_Entity); + auto_space = rd_eval_space_from_ctrl_entity(d_entity_from_handle(rd_regs()->process), D_EvalSpaceKind_Entity); eval = e_eval_from_stringf("(reg:rip & (~(0x4000 - 1)))"); } } @@ -2466,7 +2456,7 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) { dv->temp_look_process = cmd->regs->process; dv->temp_look_vaddr = cmd->regs->vaddr; - dv->temp_look_run_gen = ctrl_run_gen(); + dv->temp_look_run_gen = d_run_gen(); dv->goto_vaddr = cmd->regs->vaddr; }break; } @@ -2482,18 +2472,18 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) } Rng1U64 range = rd_space_range_from_eval(eval); Arch arch = rd_arch_from_eval(eval); - CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(space); - CTRL_Entity *dasm_module = &ctrl_entity_nil; + D_Entity *space_entity = rd_ctrl_entity_from_eval_space(space); + D_Entity *dasm_module = &d_entity_nil; DI_Key dbgi_key = {0}; U64 base_vaddr = 0; switch(space_entity->kind) { default:{}break; - case CTRL_EntityKind_Process: + case D_EntityKind_Process: { if(arch == Arch_Null) { arch = space_entity->arch; } - dasm_module = ctrl_module_from_process_vaddr(space_entity, range.min); - dbgi_key = ctrl_dbgi_key_from_module(dasm_module); + dasm_module = d_module_from_process_vaddr(space_entity, range.min); + dbgi_key = d_dbgi_key_from_module(dasm_module); base_vaddr = dasm_module->vaddr_range.min; }break; } @@ -2539,7 +2529,7 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) U128 dasm_text_hash = {0}; TXT_TextInfo dasm_text_info = txt_text_info_from_key_lang(access, rd_regs()->text_key, rd_regs()->lang_kind, &dasm_text_hash); String8 dasm_text_data = c_data_from_hash(access, dasm_text_hash); - B32 is_loading = (dasm_text_info.lines_count == 0 && dim_1u64(range) != 0 && eval.msgs.max_kind == E_MsgKind_Null && (space.kind != CTRL_EvalSpaceKind_Entity || space_entity != &ctrl_entity_nil)); + B32 is_loading = (dasm_text_info.lines_count == 0 && dim_1u64(range) != 0 && eval.msgs.max_kind == E_MsgKind_Null && (space.kind != D_EvalSpaceKind_Entity || space_entity != &d_entity_nil)); B32 has_disasm = (dasm_text_info.lines_count != 0 && dasm_info.lines.count != 0); ////////////////////////////// @@ -2570,19 +2560,19 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) // if(!is_loading && has_disasm) { - rd_code_view_build(scratch.arena, cv, RD_CodeViewBuildFlag_All, code_area_rect, dasm_text_data, &dasm_text_info, &dasm_info.lines, range, dbgi_key); + rd_code_view_build(scratch.arena, cv, RD_CodeViewBuildFlag_All, code_area_rect, dasm_text_hash, dasm_text_data, &dasm_text_info, &dasm_info.lines, range, dbgi_key); } ////////////////////////////// - //- rjf: unpack cursor info + //- rjf: unpack cursor info / fill regs // + rd_regs()->prefer_disasm = 1; if(!is_loading && has_disasm) { U64 off = dasm_line_array_code_off_from_idx(&dasm_info.lines, rd_regs()->cursor.line-1); - rd_regs()->prefer_disasm = 1; rd_regs()->vaddr = range.min+off; rd_regs()->vaddr_range = r1u64(range.min+off, range.min+off); - rd_regs()->voff_range = ctrl_voff_range_from_vaddr_range(dasm_module, rd_regs()->vaddr_range); + rd_regs()->voff_range = d_voff_range_from_vaddr_range(dasm_module, rd_regs()->vaddr_range); rd_regs()->lines = d_lines_from_dbgi_key_voff(rd_frame_arena(), dbgi_key, rd_regs()->voff_range.min); } @@ -2600,7 +2590,7 @@ RD_VIEW_UI_FUNCTION_DEF(disasm) RD_Font(RD_FontSlot_Code) { U64 cursor_vaddr = (1 <= rd_regs()->cursor.line && rd_regs()->cursor.line <= dasm_info.lines.count) ? (range.min+dasm_info.lines.v[rd_regs()->cursor.line-1].code_off) : 0; - if(dasm_module != &ctrl_entity_nil) + if(dasm_module != &d_entity_nil) { ui_labelf("%S", dasm_module->string); ui_spacer(ui_em(1.5f, 1)); @@ -2637,6 +2627,13 @@ struct RD_MemoryViewState B32 center_cursor; B32 contain_cursor; B32 snap_scroll; + B32 cell_value_edit_in_progress; + U8 cell_value_edit_first_digit; + TxtPt addrbar_cursor; + TxtPt addrbar_mark; + U8 addrbar_buffer[1024]; + U64 addrbar_string_size; + B32 addrbar_is_focused; }; EV_EXPAND_RULE_INFO_FUNCTION_DEF(memory) @@ -2652,6 +2649,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); RD_MemoryViewState *mv = rd_view_state(RD_MemoryViewState); + B32 allow_edits = rd_view_setting_b32_from_name(str8_lit("allow_mutation")); ////////////////////////////// //- rjf: if memory views are parameterized by a register-space evaluation, @@ -2670,10 +2668,25 @@ RD_VIEW_UI_FUNCTION_DEF(memory) Rng1U64 view_range = rd_space_range_from_eval(eval); if(eval.space.kind == 0) { - eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->process), CTRL_EvalSpaceKind_Entity); + eval.space = rd_eval_space_from_ctrl_entity(d_entity_from_handle(rd_regs()->process), D_EvalSpaceKind_Entity); view_range = rd_whole_range_from_eval_space(eval.space); } + ////////////////////////////// + //- rjf: unpack visual params + // + FNT_Tag font = rd_font_from_slot(RD_FontSlot_Code); + FNT_RasterFlags font_raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Code); + F32 tab_font_size = ui_top_font_size(); + F32 zoom_target = rd_view_setting_f32_from_name(str8_lit("zoom")); + zoom_target = Clamp(0.5f, zoom_target, 2.f); + F32 zoom = ui_anim(ui_key_from_stringf(ui_key_zero(), "%I64x_zoom", rd_regs()->view), zoom_target, .initial = zoom_target); + F32 cell_font_size = tab_font_size * zoom; + F32 cell_big_glyph_advance = fnt_dim_from_tag_size_string(font, cell_font_size, 0, 0, str8_lit("H")).x; + F32 row_height_px = floor_f32(cell_font_size*2.f); + F32 cell_width_px = floor_f32(cell_font_size*2.f); + F32 address_margin_width_px = cell_big_glyph_advance*20.f; + ////////////////////////////// //- rjf: unpack parameterization info // @@ -2681,19 +2694,26 @@ RD_VIEW_UI_FUNCTION_DEF(memory) Vec4F32 main_bg_color_hsva = hsva_from_rgba(main_bg_color_rgba); Vec4F32 main_tx_color_rgba = ui_color_from_name(str8_lit("text")); Vec4F32 main_tx_color_hsva = hsva_from_rgba(main_tx_color_rgba); - F32 main_font_size = ui_bottom_font_size(); - U64 cursor_base_vaddr = rd_view_setting_u64_from_name(str8_lit("cursor")); - U64 mark_base_vaddr = rd_view_setting_u64_from_name(str8_lit("mark")); + U64 cursor_base_vaddr = rd_view_setting_addr_from_name(str8_lit("cursor")); + U64 mark_base_vaddr = rd_view_setting_addr_from_name(str8_lit("mark")); U64 cursor_size = rd_view_setting_u64_from_name(str8_lit("cursor_size")); cursor_size = ClampBot(1, cursor_size); U64 initial_cursor_base_vaddr = cursor_base_vaddr; U64 initial_mark_base_vaddr = mark_base_vaddr; U64 num_columns = rd_view_setting_u64_from_name(str8_lit("num_columns")); B32 track_mark_to_cursor = rd_view_setting_b32_from_name(str8_lit("track_mark_to_cursor")); + B32 auto_columns = rd_view_setting_b32_from_name(str8_lit("auto_columns")); if(num_columns == 0) { num_columns = 16; } + if(auto_columns) + { + F32 num_columns_f = ((dim_2f32(rect).x - address_margin_width_px - cell_big_glyph_advance*4.f) / (cell_width_px + cell_big_glyph_advance)); + num_columns_f = ClampBot(1.f, num_columns_f); + num_columns = (U64)num_columns_f; + num_columns = ClampTop(128, num_columns); + } num_columns = ClampBot(1, num_columns); UI_ScrollPt2 scroll_pos = rd_view_scroll_pos(); Vec4F32 selection_color = ui_color_from_name(str8_lit("selection")); @@ -2736,31 +2756,23 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } - ////////////////////////////// - //- rjf: unpack visual params - // - FNT_Tag font = rd_font_from_slot(RD_FontSlot_Code); - FNT_RasterFlags font_raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Code); - F32 font_size = ui_top_font_size(); - F32 big_glyph_advance = fnt_dim_from_tag_size_string(font, font_size, 0, 0, str8_lit("H")).x; - F32 row_height_px = floor_f32(font_size*2.f); - F32 cell_width_px = floor_f32(font_size*2.f); - ////////////////////////////// //- rjf: calculate rectangles // - F32 scroll_bar_dim = floor_f32(main_font_size*1.5f); + F32 scroll_bar_dim = floor_f32(ui_bottom_font_size()*1.5f); Vec2F32 panel_dim = dim_2f32(rect); - F32 footer_dim = floor_f32(main_font_size*10.f); - Rng2F32 header_rect = r2f32p(0, 0, panel_dim.x, row_height_px); + F32 footer_dim = floor_f32(tab_font_size*3.f); + Rng2F32 addrbar_rect = r2f32p(0, 0, panel_dim.x, tab_font_size*3.f); + Rng2F32 peekbar_rect = r2f32p(0, addrbar_rect.y1, panel_dim.x, addrbar_rect.y1 + tab_font_size*3.f); + Rng2F32 header_rect = r2f32p(0, peekbar_rect.y1, panel_dim.x, peekbar_rect.y1 + row_height_px); Rng2F32 footer_rect = r2f32p(0, panel_dim.y-footer_dim, panel_dim.x-scroll_bar_dim, panel_dim.y); - Rng2F32 content_rect = r2f32p(0, row_height_px, panel_dim.x-scroll_bar_dim, panel_dim.y); + Rng2F32 content_rect = r2f32p(0, header_rect.y1, panel_dim.x-scroll_bar_dim, panel_dim.y); ////////////////////////////// //- rjf: determine visible range of rows (occluded & non-occluded) // - S64 num_possible_visible_rows = num_possible_visible_rows = dim_2f32(rect).y/row_height_px;; - S64 num_possible_nonoccluded_visible_rows = (dim_2f32(content_rect).y - dim_2f32(footer_rect).y) / row_height_px; + S64 num_possible_visible_rows = dim_2f32(rect).y/row_height_px; + S64 num_possible_nonoccluded_visible_rows = (dim_2f32(content_rect).y - dim_2f32(header_rect).y - dim_2f32(footer_rect).y) / row_height_px - 1; ////////////////////////////// //- rjf: determine legal scroll range @@ -2781,7 +2793,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) (mv->last_cursor_range.min != cursor_range.min || mv->last_cursor_range.max != cursor_range.max)) { - mv->contain_cursor = 1; + mv->center_cursor = 1; if(track_mark_to_cursor) { mark_base_vaddr = cursor_base_vaddr; @@ -2803,6 +2815,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ////////////////////////////// //- rjf: loop: compute boundaries, take events, repeat // + B32 focus_addrbar = 0; B32 need_update = 1; Rng1U64 cursor_valid_rng = {0}; for(;;) @@ -2815,22 +2828,158 @@ RD_VIEW_UI_FUNCTION_DEF(memory) need_update = 0; //- rjf: take keyboard controls - UI_Focus(UI_FocusKind_On) if(ui_is_focus_active()) + UI_Focus(!mv->addrbar_is_focused ? UI_FocusKind_On : UI_FocusKind_Off) if(ui_is_focus_active()) { U64 next_cursor_base_vaddr = cursor_base_vaddr; U64 next_mark_base_vaddr = mark_base_vaddr; for(UI_Event *evt = 0; ui_next_event(&evt);) { + B32 good_action = 0; Vec2S64 cell_delta = {0}; - switch(evt->delta_unit) + B32 allow_cell_movement = 1; + + // rjf: menu bar focuses + if(evt->slot == UI_EventActionSlot_FocusMenu) + { + good_action = 1; + focus_addrbar = 1; + } + + // rjf: copies + if(evt->flags & UI_EventFlag_Copy) + { + Rng1U64 range = union_1u64(r1u64(cursor_base_vaddr, cursor_base_vaddr+cursor_size), + r1u64(mark_base_vaddr, mark_base_vaddr+cursor_size)); + range.max = Min(range.max, range.min+MB(1)); + String8 data = {0}; + data.size = dim_1u64(range); + data.str = push_array(scratch.arena, U8, data.size); + if(!e_space_read(eval.space, data.str, 0, range)) + { + log_user_errorf("Could not successfully read memory."); + } + else + { + String8List data_textified_parts = {0}; + U64 column_num = 1 + (range.min - view_range.min) % num_columns; + for EachIndex(idx, data.size) + { + str8_list_pushf(scratch.arena, &data_textified_parts, "%02x%s", (U8)data.str[idx], + idx+1 >= data.size ? "" : + column_num+1 <= num_columns ? " " : + "\n"); + column_num += 1; + if(column_num > num_columns) + { + column_num = 1; + } + } + String8 data_textified = str8_list_join(scratch.arena, &data_textified_parts, 0); + wm_set_clipboard_text(data_textified); + } + good_action = 1; + } + + // rjf: pastes + if(allow_edits && evt->flags & UI_EventFlag_Paste) + { + String8 data_textified = evt->string; + U8 split_chars[] = {' ', '\n', '\r'}; + String8List byte_pieces = str8_split(scratch.arena, data_textified, split_chars, ArrayCount(split_chars), 0); + String8 data = {0}; + data.size = Min(byte_pieces.node_count, MB(1)); + data.str = push_array(scratch.arena, U8, data.size); + Rng1U64 range = union_1u64(r1u64(cursor_base_vaddr, cursor_base_vaddr+cursor_size), + r1u64(mark_base_vaddr, mark_base_vaddr+cursor_size)); + U64 byte_idx = 0; + for EachNode(n, String8Node, byte_pieces.first) + { + if(byte_idx > data.size) + { + break; + } + String8 byte_textified = n->string; + U8 byte_value = (U8)u64_from_str8(byte_textified, 16); + data.str[byte_idx] = byte_value; + byte_idx += 1; + } + if(!e_space_write(eval.space, data.str, r1u64(range.min, range.min + data.size))) + { + log_user_errorf("Could not successfully write to memory."); + } + good_action = 1; + cell_delta.x = data.size; + } + + // rjf: cell-granularity deletions + if(allow_edits && !mv->cell_value_edit_in_progress && evt->flags & UI_EventFlag_Delete) + { + Rng1U64 range = union_1u64(r1u64(cursor_base_vaddr, cursor_base_vaddr+cursor_size), + r1u64(mark_base_vaddr, mark_base_vaddr+cursor_size)); + U8 *data = push_array(scratch.arena, U8, dim_1u64(range)); + if(!e_space_write(eval.space, data, range)) + { + log_user_errorf("Could not successfully write to memory."); + } + good_action = 1; + if(cursor_base_vaddr != mark_base_vaddr) + { + allow_cell_movement = 0; + } + } + + // rjf: in-progress cell value edit deletions -> delete existing cell half-byte + if(allow_edits && mv->cell_value_edit_in_progress && evt->flags & UI_EventFlag_Delete) + { + mv->cell_value_edit_in_progress = 0; + allow_cell_movement = 0; + good_action = 1; + } + + // rjf: byte digit -> cell value insertion. if first digit, store, if 2nd, commit + if(allow_edits && evt->string.size != 0 && evt->kind == UI_EventKind_Text && !(evt->flags & UI_EventFlag_Paste)) + { + good_action = 1; + if(!mv->cell_value_edit_in_progress) + { + mv->cell_value_edit_in_progress = 1; + mv->cell_value_edit_first_digit = evt->string.str[0]; + } + else + { + U8 digits[] = {mv->cell_value_edit_first_digit, evt->string.str[0]}; + String8 byte_string = str8(digits, 2); + U8 byte_value = (U8)u64_from_str8(byte_string, 16); + if(!e_space_write(eval.space, &byte_value, r1u64(cursor_base_vaddr, cursor_base_vaddr+1))) + { + log_user_errorf("Could not successfully write to memory."); + } + cell_delta.x = 1; + mv->cell_value_edit_in_progress = 0; + } + } + + // rjf: determine cell movement delta from cell-granularity operations + if(allow_cell_movement) switch(evt->delta_unit) { default:{}break; case UI_EventDeltaUnit_Char: { - cell_delta.x = (S64)evt->delta_2s32.x; + cell_delta.x = (S64)evt->delta_2s32.x * cursor_size; cell_delta.y = (S64)evt->delta_2s32.y; }break; case UI_EventDeltaUnit_Word: + { + if(evt->delta_2s32.x < 0) + { + cell_delta.x = -cursor_size; + } + else if(evt->delta_2s32.x > 0) + { + cell_delta.x = +cursor_size; + } + }break; + case UI_EventDeltaUnit_Line: case UI_EventDeltaUnit_Page: { if(evt->delta_2s32.x < 0) @@ -2851,37 +3000,48 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } }break; } - B32 good_action = 0; - if(evt->delta_2s32.x != 0 || evt->delta_2s32.y != 0) + + // rjf: apply movements { - good_action = 1; - } - if(good_action && evt->flags & UI_EventFlag_ZeroDeltaOnSelect && cursor_base_vaddr != mark_base_vaddr) - { - MemoryZeroStruct(&cell_delta); - } - if(good_action) - { - cell_delta.x = ClampBot(cell_delta.x, (S64)-next_cursor_base_vaddr); - cell_delta.y = ClampBot(cell_delta.y, (S64)-(next_cursor_base_vaddr/num_columns)); - next_cursor_base_vaddr += cell_delta.x; - next_cursor_base_vaddr += cell_delta.y*num_columns; - } - if(good_action && evt->flags & UI_EventFlag_PickSelectSide && cursor_base_vaddr != mark_base_vaddr) - { - if(evt->delta_2s32.x < 0 || evt->delta_2s32.y < 0) + if(evt->delta_2s32.x != 0 || evt->delta_2s32.y != 0) { - next_cursor_base_vaddr = Min(cursor_base_vaddr, mark_base_vaddr); + good_action = 1; } - else + if(good_action && evt->flags & UI_EventFlag_ZeroDeltaOnSelect && cursor_base_vaddr != mark_base_vaddr) { - next_cursor_base_vaddr = Max(cursor_base_vaddr, mark_base_vaddr); + MemoryZeroStruct(&cell_delta); + } + if(good_action) + { + cell_delta.x = ClampBot(cell_delta.x, (S64)-next_cursor_base_vaddr); + cell_delta.y = ClampBot(cell_delta.y, (S64)-(next_cursor_base_vaddr/num_columns)); + next_cursor_base_vaddr += cell_delta.x; + next_cursor_base_vaddr += cell_delta.y*num_columns; + } + if(allow_cell_movement && good_action && evt->flags & UI_EventFlag_PickSelectSide && cursor_base_vaddr != mark_base_vaddr) + { + if(evt->delta_2s32.x < 0 || evt->delta_2s32.y < 0) + { + next_cursor_base_vaddr = Min(cursor_base_vaddr, mark_base_vaddr); + } + else + { + next_cursor_base_vaddr = Max(cursor_base_vaddr, mark_base_vaddr); + } + } + if(allow_cell_movement && good_action && !(evt->flags & UI_EventFlag_KeepMark)) + { + next_mark_base_vaddr = next_cursor_base_vaddr; } } - if(good_action && !(evt->flags & UI_EventFlag_KeepMark)) + + // rjf: abort cell editing on address changes + if(next_cursor_base_vaddr != cursor_base_vaddr) { - next_mark_base_vaddr = next_cursor_base_vaddr; + mv->cell_value_edit_in_progress = 0; } + + // rjf: take event if(good_action) { need_update = 1; @@ -2933,7 +3093,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { mv->contain_cursor = 0; Rng1S64 viz_range_nonoccluded_rows = {0}; - viz_range_nonoccluded_rows.min = scroll_pos.y.idx + (S64)(content_rect.y0 / row_height_px); + viz_range_nonoccluded_rows.min = scroll_pos.y.idx + (S64)((content_rect.y0 - header_rect.y0) / row_height_px); viz_range_nonoccluded_rows.max = viz_range_nonoccluded_rows.min + num_possible_nonoccluded_visible_rows; viz_range_nonoccluded_rows.min = clamp_1s64(scroll_idx_rng, viz_range_nonoccluded_rows.min); viz_range_nonoccluded_rows.max = clamp_1s64(scroll_idx_rng, viz_range_nonoccluded_rows.max); @@ -2997,14 +3157,26 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ////////////////////////////// //- rjf: produce fancy strings for all possible byte values in all cells // + DR_FStrList unmapped_byte_fstrs = {0}; DR_FStrList byte_fstrs[256] = {0}; DR_FStrList byte_fstrs_selected[256] = {0}; + DR_FStrList byte_fstrs_changed[256] = {0}; { Vec4F32 selected_color = ui_color_from_name(str8_lit("text")); + if(!allow_edits) UI_TagF("weak") + { + selected_color = ui_color_from_name(str8_lit("text")); + } Vec4F32 full_color = {0}; UI_TagF("neutral") full_color = ui_color_from_name(str8_lit("text")); Vec4F32 zero_color = full_color; UI_TagF("weak") zero_color = ui_color_from_name(str8_lit("text")); + Vec4F32 changed_color = full_color; + UI_TagF("neutral") changed_color = ui_color_from_name(str8_lit("text")); + { + DR_FStr fstr = {str8_lit("x"), {font, font_raster_flags, zero_color, cell_font_size, 0, 0}}; + dr_fstrs_push(scratch.arena, &unmapped_byte_fstrs, &fstr); + } for(U64 idx = 0; idx < ArrayCount(byte_fstrs); idx += 1) { U8 byte = (U8)idx; @@ -3015,13 +3187,17 @@ RD_VIEW_UI_FUNCTION_DEF(memory) text_color.w *= 0.5f; } { - DR_FStr fstr = {push_str8f(scratch.arena, "%02x", byte), {font, font_raster_flags, text_color, font_size, 0, 0}}; + DR_FStr fstr = {push_str8f(scratch.arena, "%02x", byte), {font, font_raster_flags, text_color, cell_font_size, 0, 0}}; dr_fstrs_push(scratch.arena, &byte_fstrs[idx], &fstr); } { - DR_FStr fstr = {push_str8f(scratch.arena, "%02x", byte), {font, font_raster_flags, selected_color, font_size, 0, 0}}; + DR_FStr fstr = {push_str8f(scratch.arena, "%02x", byte), {font, font_raster_flags, selected_color, cell_font_size, 0, 0}}; dr_fstrs_push(scratch.arena, &byte_fstrs_selected[idx], &fstr); } + { + DR_FStr fstr = {push_str8f(scratch.arena, "%02x", byte), {font, font_raster_flags, changed_color, cell_font_size, 0, 0}}; + dr_fstrs_push(scratch.arena, &byte_fstrs_changed[idx], &fstr); + } } } @@ -3033,17 +3209,8 @@ RD_VIEW_UI_FUNCTION_DEF(memory) U64 *visible_memory_change_flags = push_array(scratch.arena, U64, (visible_memory_size+63)/64); U64 *visible_memory_bad_flags = push_array(scratch.arena, U64, (visible_memory_size+63)/64); { - e_space_read(eval.space, visible_memory, viz_range_bytes); - } - if(eval.space.kind == CTRL_EvalSpaceKind_Entity) - { - CTRL_Entity *entity = rd_ctrl_entity_from_eval_space(eval.space); - if(entity->kind == CTRL_EntityKind_Process) - { - CTRL_ProcessMemorySlice slice = ctrl_process_memory_slice_from_vaddr_range(scratch.arena, entity->handle, viz_range_bytes, 0, 0); - visible_memory_change_flags = slice.byte_changed_flags; - visible_memory_bad_flags = slice.byte_bad_flags; - } + E_SpaceRangeInfo range_info = {visible_memory_bad_flags, visible_memory_change_flags}; + e_space_read(eval.space, visible_memory, &range_info, viz_range_bytes); } ////////////////////////////// @@ -3053,15 +3220,17 @@ RD_VIEW_UI_FUNCTION_DEF(memory) struct Annotation { String8 name_string; - String8 kind_string; - String8 type_string; - Vec4F32 color; + Vec4F32 bg_color; + Vec4F32 txt_color; Rng1U64 vaddr_range; + B32 dot_access; + E_TypeKey type_key; }; typedef struct AnnotationNode AnnotationNode; struct AnnotationNode { AnnotationNode *next; + AnnotationNode *prev; Annotation *v; }; typedef struct AnnotationList AnnotationList; @@ -3073,83 +3242,208 @@ RD_VIEW_UI_FUNCTION_DEF(memory) AnnotationList *visible_memory_annotations = push_array(scratch.arena, AnnotationList, visible_memory_size); { Access *access = access_open(); - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_Entity *selected_process = ctrl_entity_ancestor_from_kind(selected_thread, CTRL_EntityKind_Process); - CTRL_CallStack selected_call_stack = ctrl_call_stack_from_thread(access, selected_thread->handle, 1, 0); - CTRL_Entity *eval_process = &ctrl_entity_nil; - if(eval.space.kind == CTRL_EvalSpaceKind_Entity) + D_Entity *selected_thread = d_entity_from_handle(rd_regs()->thread); + D_Entity *selected_process = d_entity_ancestor_from_kind(selected_thread, D_EntityKind_Process); + D_CallStack selected_call_stack = d_call_stack_from_thread(access, selected_thread->handle, 1, 0); + D_Entity *eval_process = &d_entity_nil; + if(eval.space.kind == D_EvalSpaceKind_Entity) { eval_process = rd_ctrl_entity_from_eval_space(eval.space); } - - //- rjf: fill unwind frame annotations - if(selected_call_stack.concrete_frames_count != 0) UI_Tag(str8_lit("weak")) - { - U64 last_stack_top = regs_rsp_from_arch_block(selected_thread->arch, selected_call_stack.concrete_frames[0]->regs); - for(U64 idx = 1; idx < selected_call_stack.concrete_frames_count; idx += 1) - { - CTRL_CallStackFrame *f = selected_call_stack.concrete_frames[idx]; - U64 f_stack_top = regs_rsp_from_arch_block(selected_thread->arch, f->regs); - Rng1U64 frame_vaddr_range = r1u64(last_stack_top, f_stack_top); - Rng1U64 frame_vaddr_range_in_viz = intersect_1u64(frame_vaddr_range, viz_range_bytes); - last_stack_top = f_stack_top; - if(dim_1u64(frame_vaddr_range_in_viz) != 0) - { - Access *access = access_open(); - U64 f_rip_vaddr = regs_rip_from_arch_block(selected_thread->arch, f->regs); - CTRL_Entity *module = ctrl_module_from_process_vaddr(selected_process, f_rip_vaddr); - U64 f_rip_voff = ctrl_voff_from_vaddr(module, f_rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, f_rip_voff); - String8 procedure_name = {0}; - procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); - access_close(access); - if(procedure_name.size != 0) - { - Annotation *annotation = push_array(scratch.arena, Annotation, 1); - annotation->name_string = push_str8_copy(scratch.arena, procedure_name); - annotation->kind_string = str8_lit("Call Stack Frame"); - annotation->color = v4f32(0, 0, 0, 0); - annotation->vaddr_range = frame_vaddr_range; - for(U64 vaddr = frame_vaddr_range_in_viz.min; vaddr < frame_vaddr_range_in_viz.max; vaddr += 1) - { - U64 visible_byte_idx = vaddr - viz_range_bytes.min; - AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); - n->v = annotation; - SLLQueuePush(visible_memory_annotations[visible_byte_idx].first, visible_memory_annotations[visible_byte_idx].last, n); - } - } - } - } - } + AnnotationList variable_annotations = {0}; //- rjf: fill selected thread stack range annotation if(selected_call_stack.concrete_frames_count > 0) { + ARCH_Info *arch_info = arch_info_from_arch(selected_thread->arch); U64 stack_base_vaddr = selected_thread->stack_base; - U64 stack_top_vaddr = regs_rsp_from_arch_block(selected_thread->arch, selected_call_stack.concrete_frames[0]->regs); + U64 stack_top_vaddr = arch_sp_from_reg_block(arch_info, selected_call_stack.concrete_frames[0]->regs); Rng1U64 stack_vaddr_range = r1u64(stack_base_vaddr, stack_top_vaddr); Rng1U64 stack_vaddr_range_in_viz = intersect_1u64(stack_vaddr_range, viz_range_bytes); if(dim_1u64(stack_vaddr_range_in_viz) != 0) { Annotation *annotation = push_array(scratch.arena, Annotation, 1); annotation->name_string = selected_thread->string.size ? selected_thread->string : push_str8f(scratch.arena, "TID: %I64u", selected_thread->id); - annotation->kind_string = str8_lit("Stack"); - annotation->color = rd_color_from_ctrl_entity(selected_thread); + annotation->txt_color = rd_color_from_ctrl_entity(selected_thread); annotation->vaddr_range = stack_vaddr_range; for(U64 vaddr = stack_vaddr_range_in_viz.min; vaddr < stack_vaddr_range_in_viz.max; vaddr += 1) { U64 visible_byte_idx = vaddr - viz_range_bytes.min; AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); n->v = annotation; - SLLQueuePush(visible_memory_annotations[visible_byte_idx].first, visible_memory_annotations[visible_byte_idx].last, n); + DLLPushBack(visible_memory_annotations[visible_byte_idx].first, visible_memory_annotations[visible_byte_idx].last, n); } } } + //- rjf: fill unwind frame annotations + if(selected_call_stack.concrete_frames_count != 0) UI_Tag(str8_lit("weak")) + { + ARCH_Info *arch_info = arch_info_from_arch(selected_thread->arch); + Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); + U64 last_rip = arch_ip_from_reg_block(arch_info, selected_call_stack.concrete_frames[0]->regs); + U64 last_stack_top = arch_sp_from_reg_block(arch_info, selected_call_stack.concrete_frames[0]->regs); + for(U64 idx = 1; idx < selected_call_stack.concrete_frames_count; idx += 1) + { + D_CallStackFrame *f = selected_call_stack.concrete_frames[idx]; + U64 f_stack_top = arch_sp_from_reg_block(arch_info, f->regs); + Rng1U64 frame_vaddr_range = r1u64(last_stack_top, f_stack_top); + Rng1U64 frame_vaddr_range_in_viz = intersect_1u64(frame_vaddr_range, viz_range_bytes); + last_stack_top = f_stack_top; + if(dim_1u64(frame_vaddr_range_in_viz) != 0) + { + Access *access = access_open(); + U64 f_rip_vaddr = last_rip; + last_rip = arch_ip_from_reg_block(arch_info, f->regs); + D_Entity *module = d_module_from_process_vaddr(selected_process, f_rip_vaddr); + U64 f_rip_voff = d_voff_from_vaddr(module, f_rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, f_rip_voff); + String8 procedure_name = {0}; + procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); + access_close(access); + if(procedure_name.size != 0) + { + Annotation *annotation = push_array(scratch.arena, Annotation, 1); + annotation->name_string = str8_copy(scratch.arena, procedure_name); + annotation->txt_color = symbol_color; + annotation->vaddr_range = frame_vaddr_range; + for(U64 vaddr = frame_vaddr_range_in_viz.min; vaddr < frame_vaddr_range_in_viz.max; vaddr += 1) + { + U64 visible_byte_idx = vaddr - viz_range_bytes.min; + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = annotation; + DLLPushBack(visible_memory_annotations[visible_byte_idx].first, visible_memory_annotations[visible_byte_idx].last, n); + } + } + } + } + } + + //- rjf: fill procedures annotations + if(eval_process != &d_entity_nil) + { + Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); + Vec4F32 color_gen_table[] = + { + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.2f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.4f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.6f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.8f), + }; + for(U64 vaddr = viz_range_bytes.min, next_vaddr = 0; + viz_range_bytes.min <= vaddr && vaddr <= viz_range_bytes.max; + vaddr = next_vaddr) + { + next_vaddr = vaddr+1; + Access *access = access_open(); + D_Entity *module = d_module_from_process_vaddr(eval_process, vaddr); + if(module != &d_entity_nil) + { + U64 voff = d_voff_from_vaddr(module, vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff); + RDI_Scope *root_scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); + if(procedure->root_scope_idx != 0) + { + Rng1U64 voff_range = r1u64(rdi_first_voff_from_scope(rdi, root_scope), + rdi_opl_voff_from_scope(rdi, root_scope)); + Rng1U64 vaddr_range = d_vaddr_range_from_voff_range(module, voff_range); + next_vaddr = vaddr_range.max; + next_vaddr = Max(next_vaddr, vaddr+1); + Rng1U64 vaddr_range_in_visible = intersect_1u64(vaddr_range, viz_range_bytes); + if(vaddr_range_in_visible.min < vaddr_range_in_visible.max) + { + String8 procedure_name = {0}; + procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); + Annotation *annotation = push_array(scratch.arena, Annotation, 1); + { + annotation->name_string = push_str8_copy(scratch.arena, procedure_name); + annotation->bg_color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; + annotation->txt_color = symbol_color; + annotation->vaddr_range = vaddr_range; + } + for(U64 vaddr = vaddr_range_in_visible.min; vaddr < vaddr_range_in_visible.max; vaddr += 1) + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = annotation; + DLLPushBack(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); + } + } + } + } + access_close(access); + } + } + + //- rjf: fill globals annotations + if(eval_process != &d_entity_nil) + { + Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); + Vec4F32 color_gen_table[] = + { + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.2f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.4f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.6f), + mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.8f), + }; + for(U64 vaddr = viz_range_bytes.min, next_vaddr = 0; + viz_range_bytes.min <= vaddr && vaddr <= viz_range_bytes.max; + vaddr = next_vaddr) + { + next_vaddr = vaddr+1; + Access *access = access_open(); + E_Module *module = e_base_ctx->primary_module; + if(module != &e_module_nil) + { + U64 voff = (vaddr - module->vaddr_range.min); + E_DbgInfo *dbg_info = e_dbg_info_from_module(module); + DI_Key dbgi_key = dbg_info->dbgi_key; + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + RDI_Symbol *gvar = rdi_global_variable_from_voff(rdi, voff); + U64 gvar_voff = rdi_voff_from_location(gvar->location); + if(gvar_voff != 0) + { + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, gvar->type_idx); + Rng1U64 voff_range = r1u64(gvar_voff, gvar_voff + type_node->byte_size); + Rng1U64 vaddr_range = r1u64(voff_range.min + module->vaddr_range.min, voff_range.max + module->vaddr_range.min); + next_vaddr = vaddr_range.max; + next_vaddr = Max(next_vaddr, vaddr+1); + Rng1U64 vaddr_range_in_visible = intersect_1u64(vaddr_range, viz_range_bytes); + if(vaddr_range_in_visible.min < vaddr_range_in_visible.max) + { + String8 gvar_name = {0}; + gvar_name.str = rdi_string_from_idx(rdi, gvar->name_string_idx, &gvar_name.size); + Annotation *annotation = push_array(scratch.arena, Annotation, 1); + { + annotation->name_string = push_str8_copy(scratch.arena, gvar_name); + annotation->bg_color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; + annotation->txt_color = symbol_color; + annotation->vaddr_range = vaddr_range; + annotation->type_key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), gvar->type_idx, module->dbg_info_num); + } + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = annotation; + DLLPushBack(variable_annotations.first, variable_annotations.last, n); + } + for(U64 vaddr = vaddr_range_in_visible.min; vaddr < vaddr_range_in_visible.max; vaddr += 1) + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = annotation; + DLLPushBack(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); + } + } + } + } + access_close(access); + } + } + //- rjf: fill local variable annotations - if(e_space_match(rd_eval_space_from_ctrl_entity(selected_process, CTRL_EvalSpaceKind_Entity), eval.space)) + if(e_space_match(rd_eval_space_from_ctrl_entity(selected_process, D_EvalSpaceKind_Entity), eval.space)) { Vec4F32 local_color = ui_color_from_name(str8_lit("code_local")); Vec4F32 color_gen_table[] = @@ -3174,139 +3468,32 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { Annotation *annotation = push_array(scratch.arena, Annotation, 1); { - annotation->name_string = push_str8_copy(scratch.arena, local_name); - annotation->kind_string = str8_lit("Local"); - annotation->type_string = e_type_string_from_key(scratch.arena, local_eval.irtree.type_key); - annotation->color = color_gen_table[(vaddr_rng.min/7)%ArrayCount(color_gen_table)]; + annotation->name_string = str8_copy(scratch.arena, local_name); + annotation->bg_color = color_gen_table[(vaddr_rng.min/7)%ArrayCount(color_gen_table)]; + annotation->txt_color = local_color; annotation->vaddr_range = vaddr_rng; + annotation->type_key = local_eval.irtree.type_key; + } + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = annotation; + DLLPushBack(variable_annotations.first, variable_annotations.last, n); } for(U64 vaddr = vaddr_rng_in_visible.min; vaddr < vaddr_rng_in_visible.max; vaddr += 1) { AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); n->v = annotation; - SLLQueuePushFront(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); + DLLPushBack(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); } } } } } - //- rjf: fill procedures annotations - if(eval_process != &ctrl_entity_nil) - { - Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); - Vec4F32 color_gen_table[] = - { - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.2f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.4f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.6f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.8f), - }; - for(U64 vaddr = viz_range_bytes.min, next_vaddr = 0; - viz_range_bytes.min <= vaddr && vaddr <= viz_range_bytes.max; - vaddr = next_vaddr) - { - next_vaddr = vaddr+1; - Access *access = access_open(); - CTRL_Entity *module = ctrl_module_from_process_vaddr(eval_process, vaddr); - if(module != &ctrl_entity_nil) - { - U64 voff = ctrl_voff_from_vaddr(module, vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, voff); - RDI_Scope *root_scope = rdi_element_from_name_idx(rdi, Scopes, procedure->root_scope_idx); - if(procedure->root_scope_idx != 0) - { - Rng1U64 voff_range = r1u64(rdi_first_voff_from_scope(rdi, root_scope), - rdi_opl_voff_from_scope(rdi, root_scope)); - Rng1U64 vaddr_range = ctrl_vaddr_range_from_voff_range(module, voff_range); - next_vaddr = vaddr_range.max; - next_vaddr = Max(next_vaddr, vaddr+1); - Rng1U64 vaddr_range_in_visible = intersect_1u64(vaddr_range, viz_range_bytes); - if(vaddr_range_in_visible.min < vaddr_range_in_visible.max) - { - String8 procedure_name = {0}; - procedure_name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &procedure_name.size); - Annotation *annotation = push_array(scratch.arena, Annotation, 1); - { - annotation->name_string = push_str8_copy(scratch.arena, procedure_name); - annotation->kind_string = str8_lit("Procedure"); - annotation->color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; - annotation->vaddr_range = vaddr_range; - } - for(U64 vaddr = vaddr_range_in_visible.min; vaddr < vaddr_range_in_visible.max; vaddr += 1) - { - AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); - n->v = annotation; - SLLQueuePushFront(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); - } - } - } - } - access_close(access); - } - } - - //- rjf: fill globals annotations - if(eval_process != &ctrl_entity_nil) - { - Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); - Vec4F32 color_gen_table[] = - { - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.2f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.4f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.6f), - mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.8f), - }; - for(U64 vaddr = viz_range_bytes.min, next_vaddr = 0; - viz_range_bytes.min <= vaddr && vaddr <= viz_range_bytes.max; - vaddr = next_vaddr) - { - next_vaddr = vaddr+1; - Access *access = access_open(); - CTRL_Entity *module = ctrl_module_from_process_vaddr(eval_process, vaddr); - if(module != &ctrl_entity_nil) - { - U64 voff = ctrl_voff_from_vaddr(module, vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - RDI_GlobalVariable *gvar = rdi_global_variable_from_voff(rdi, voff); - if(gvar->voff != 0) - { - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, gvar->type_idx); - Rng1U64 voff_range = r1u64(gvar->voff, gvar->voff + type_node->byte_size); - Rng1U64 vaddr_range = ctrl_vaddr_range_from_voff_range(module, voff_range); - next_vaddr = vaddr_range.max; - next_vaddr = Max(next_vaddr, vaddr+1); - Rng1U64 vaddr_range_in_visible = intersect_1u64(vaddr_range, viz_range_bytes); - if(vaddr_range_in_visible.min < vaddr_range_in_visible.max) - { - String8 gvar_name = {0}; - gvar_name.str = rdi_string_from_idx(rdi, gvar->name_string_idx, &gvar_name.size); - Annotation *annotation = push_array(scratch.arena, Annotation, 1); - { - annotation->name_string = push_str8_copy(scratch.arena, gvar_name); - annotation->kind_string = str8_lit("Global"); - annotation->color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; - annotation->vaddr_range = vaddr_range; - } - for(U64 vaddr = vaddr_range_in_visible.min; vaddr < vaddr_range_in_visible.max; vaddr += 1) - { - AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); - n->v = annotation; - SLLQueuePushFront(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); - } - } - } - } - access_close(access); - } - } - //- rjf: fill debuggee-specified annotations - if(eval_process != &ctrl_entity_nil) UI_TagF(".") UI_TagF("pop") + if(eval_process != &d_entity_nil) UI_TagF(".") UI_TagF("pop") { + Vec4F32 text_color = ui_color_from_name(str8_lit("text")); Vec4F32 symbol_color = ui_color_from_name(str8_lit("background")); Vec4F32 color_gen_table[] = { @@ -3315,9 +3502,9 @@ RD_VIEW_UI_FUNCTION_DEF(memory) mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.10f), mix_4f32(symbol_color, v4f32(0, 0, 0, 1), 0.15f), }; - for(CTRL_Entity *child = eval_process->first; child != &ctrl_entity_nil; child = child->next) + for(D_Entity *child = eval_process->first; child != &d_entity_nil; child = child->next) { - if(child->kind != CTRL_EntityKind_AddressRangeAnnotation) + if(child->kind != D_EntityKind_AddressRangeAnnotation) { continue; } @@ -3329,20 +3516,98 @@ RD_VIEW_UI_FUNCTION_DEF(memory) Annotation *annotation = push_array(scratch.arena, Annotation, 1); { annotation->name_string = push_str8_copy(scratch.arena, name); - annotation->kind_string = str8_lit("Annotation"); - annotation->color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; + annotation->bg_color = color_gen_table[(vaddr_range.min/7)%ArrayCount(color_gen_table)]; + annotation->txt_color = text_color; annotation->vaddr_range = vaddr_range; } for(U64 vaddr = vaddr_range_in_visible.min; vaddr < vaddr_range_in_visible.max; vaddr += 1) { AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); n->v = annotation; - SLLQueuePushFront(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); + DLLPushBack(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); } } } } + //- rjf: for any variable annotations, unpack type info, create additional annotations for + // structure members + for(AnnotationNode *n = variable_annotations.first; n != 0; n = n->next) + { + Annotation *a = n->v; + E_TypeKey type_key = a->type_key; + E_TypeKind type_kind = e_type_kind_from_key(type_key); + if(type_kind == E_TypeKind_Struct || type_kind == E_TypeKind_Class) + { + E_Type *type = e_type_from_key(type_key); + for EachIndex(member_idx, type->count) + { + E_Member *member = &type->members[member_idx]; + if(member->kind != E_MemberKind_DataField) + { + continue; + } + E_TypeKey member_type_key = member->type_key; + E_TypeKind member_type_kind = e_type_kind_from_key(member_type_key); + U64 member_size = e_type_byte_size_from_key(member_type_key); + Rng1U64 member_vaddr_range = r1u64(a->vaddr_range.min + member->off, a->vaddr_range.min + member->off + member_size); + Rng1U64 member_vaddr_range_in_visible = intersect_1u64(member_vaddr_range, viz_range_bytes); + if(member_vaddr_range_in_visible.max > member_vaddr_range_in_visible.min) + { + // rjf: create annotation for member + Annotation *member_annotation = push_array(scratch.arena, Annotation, 1); + { + member_annotation->name_string = member->name; + member_annotation->txt_color = a->txt_color; + member_annotation->bg_color = a->bg_color; + member_annotation->vaddr_range = member_vaddr_range; + member_annotation->dot_access = 1; + member_annotation->type_key = member_type_key; + } + + // rjf: push member annotation to associated bytes + { + for EachInRange(vaddr, member_vaddr_range_in_visible) + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = member_annotation; + DLLPushBack(visible_memory_annotations[vaddr-viz_range_bytes.min].first, visible_memory_annotations[vaddr-viz_range_bytes.min].last, n); + } + } + + // rjf: push this member onto the variable annotations list + if(member_type_kind == E_TypeKind_Struct || member_type_kind == E_TypeKind_Class) + { + AnnotationNode *n = push_array(scratch.arena, AnnotationNode, 1); + n->v = member_annotation; + DLLPushBack(variable_annotations.first, variable_annotations.last, n); + } + } + } + } + } + + //- rjf: fill unmapped annotations + { + Annotation *bad_annotation = push_array(scratch.arena, Annotation, 1); + AnnotationNode *bad_annotation_node = push_array(scratch.arena, AnnotationNode, 1); + bad_annotation_node->v = bad_annotation; + UI_TagF("bad") + { + bad_annotation->name_string = s("(unmapped address)"); + bad_annotation->txt_color = ui_color_from_name(s("text")); + } + for(U64 vaddr = viz_range_bytes.min; vaddr < viz_range_bytes.max; vaddr += 1) + { + U64 visible_byte_idx = vaddr - viz_range_bytes.min; + B32 byte_is_bad = !!(visible_memory_bad_flags[visible_byte_idx/64] & (1ull<<(visible_byte_idx%64))); + if(byte_is_bad) + { + visible_memory_annotations[visible_byte_idx].first = visible_memory_annotations[visible_byte_idx].last = bad_annotation_node; + } + } + } + access_close(access); } @@ -3361,12 +3626,12 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ////////////////////////////// //- rjf: build scroll bar // - UI_Parent(container_box) UI_FontSize(main_font_size) + UI_Parent(container_box) UI_FontSize(ui_bottom_font_size()) { ui_set_next_fixed_x(content_rect.x1); - ui_set_next_fixed_y(0); + ui_set_next_fixed_y(header_rect.y0); ui_set_next_fixed_width(scroll_bar_dim); - ui_set_next_fixed_height(dim_2f32(rect).y); + ui_set_next_fixed_height(dim_2f32(rect).y - dim_2f32(addrbar_rect).y - dim_2f32(peekbar_rect).y); { scroll_pos.y = ui_scroll_bar(Axis2_Y, ui_px(scroll_bar_dim, 1.f), @@ -3376,79 +3641,359 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } + ////////////////////////////// + //- rjf: build address bar + // + B32 commit_addrbar = 0; + UI_Box *addrbar_box = &ui_nil_box; + UI_Parent(container_box) UI_TagF("floating") + { + CFG_Node *view = cfg_node_from_id(rd_regs()->view); + RD_ViewState *view_state = rd_view_state_from_cfg(view); + B32 query_is_open = view_state->query_is_open; + CFG_Node *cursor_addr = cfg_node_child_from_string(view, str8_lit("cursor")); + UI_Signal cell_sig = {0}; + UI_Rect(addrbar_rect) + addrbar_box = ui_build_box_from_stringf(UI_BoxFlag_DrawSideBottom| + UI_BoxFlag_DrawBackground| + UI_BoxFlag_DrawDropShadow| + UI_BoxFlag_DrawBackgroundBlur| + UI_BoxFlag_Floating| + UI_BoxFlag_Clickable, "addrbar_box"); + UI_Parent(addrbar_box) + RD_Font(RD_FontSlot_Code) + UI_FontSize(tab_font_size) + { + UI_Flags(UI_BoxFlag_DrawSideRight) + UI_TextAlignment(UI_TextAlign_Center) + UI_PrefWidth(ui_text_dim(10, 1)) + UI_TagF("weak") + ui_labelf("Cursor Address"); + UI_Focus(!query_is_open && mv->addrbar_is_focused ? UI_FocusKind_On : UI_FocusKind_Off) + { + UI_Key addrbar_edit_key = {0}; + RD_CellParams cell_params = {0}; + { + String8 value_string = cursor_addr->first->string; + DR_FStrList value_fstrs = {0}; + { + DR_FStr value_fstr = + { + value_string, + { + ui_top_font(), + ui_top_text_raster_flags(), + ui_color_from_name(str8_lit("text")), + ui_top_font_size(), + } + }; + dr_fstrs_push(scratch.arena, &value_fstrs, &value_fstr); + } + cell_params.flags = RD_CellFlag_NoBackground|RD_CellFlag_CodeContents|RD_CellFlag_Bindings; + cell_params.pre_edit_value = value_string; + cell_params.value_fstrs = value_fstrs; + cell_params.cursor = &mv->addrbar_cursor; + cell_params.mark = &mv->addrbar_mark; + cell_params.edit_buffer = mv->addrbar_buffer; + cell_params.edit_buffer_size = sizeof(mv->addrbar_buffer); + cell_params.edit_string_size_out = &mv->addrbar_string_size; + cell_params.line_edit_key_out = &addrbar_edit_key; + cell_params.bindings_name = rd_cmd_kind_info_table[RD_CmdKind_FocusMenu].string; + } + cell_sig = rd_cellf(&cell_params, "%S###cursor_addr", cursor_addr->first->string); + if(ui_is_focus_active()) + { + rd_set_autocomp_regs(e_eval_nil, .ui_key = addrbar_edit_key, .string = str8(mv->addrbar_buffer, mv->addrbar_string_size), .cursor = mv->addrbar_cursor); + if(ui_slot_press(UI_EventActionSlot_Cancel)) + { + mv->addrbar_is_focused = 0; + } + if(ui_slot_press(UI_EventActionSlot_Accept)) + { + commit_addrbar = 1; + } + } + } + } + UI_Signal addrbar_sig = ui_signal_from_box(addrbar_box); + if(ui_pressed(addrbar_sig) || ui_pressed(cell_sig)) + { + rd_cmd(RD_CmdKind_FocusPanel); + if(!mv->addrbar_is_focused) + { + ui_kill_action(); + focus_addrbar = 1; + } + } + } + + ////////////////////////////// + //- rjf: build peekbar + // + UI_Box *peekbar_box = &ui_nil_box; + UI_Parent(container_box) UI_FontSize(tab_font_size) UI_TagF("floating") + { + ui_set_next_fixed_x(peekbar_rect.x0); + ui_set_next_fixed_y(peekbar_rect.y0); + ui_set_next_fixed_width(dim_2f32(peekbar_rect).x); + ui_set_next_fixed_height(dim_2f32(peekbar_rect).y); + ui_set_next_child_layout_axis(Axis2_Y); + peekbar_box = ui_build_box_from_stringf(UI_BoxFlag_AllowOverflowX|UI_BoxFlag_ViewClampX|UI_BoxFlag_ViewScrollX|UI_BoxFlag_Clickable|UI_BoxFlag_Clip, "peekbar"); + UI_Parent(peekbar_box) RD_Font(RD_FontSlot_Code) UI_TextAlignment(UI_TextAlign_Center) + { + CFG_Node *view = cfg_node_from_id(rd_regs()->view); + CFG_NodePtrList extra_peek_types = cfg_node_child_list_from_string(scratch.arena, view, str8_lit("peek_type")); + String8List peek_type_list = {0}; + if(rd_view_setting_b32_from_name(str8_lit("peek_as_unsigned"))) + { + str8_list_pushf(scratch.arena, &peek_type_list, "uint8"); + str8_list_pushf(scratch.arena, &peek_type_list, "uint16"); + str8_list_pushf(scratch.arena, &peek_type_list, "uint32"); + str8_list_pushf(scratch.arena, &peek_type_list, "uint64"); + } + if(rd_view_setting_b32_from_name(str8_lit("peek_as_signed"))) + { + str8_list_pushf(scratch.arena, &peek_type_list, "int8"); + str8_list_pushf(scratch.arena, &peek_type_list, "int16"); + str8_list_pushf(scratch.arena, &peek_type_list, "int32"); + str8_list_pushf(scratch.arena, &peek_type_list, "int64"); + } + if(rd_view_setting_b32_from_name(str8_lit("peek_as_float"))) + { + str8_list_pushf(scratch.arena, &peek_type_list, "float32"); + str8_list_pushf(scratch.arena, &peek_type_list, "float64"); + } + for EachNode(n, CFG_NodePtrNode, extra_peek_types.first) + { + str8_list_push(scratch.arena, &peek_type_list, n->v->first->string); + } + ui_set_next_pref_width(ui_children_sum(1)); + ui_row_begin(); + F32 x_off_px = 0; + F32 x_max_px = dim_2f32(rect).x - scroll_bar_dim; + for EachNode(n, String8Node, peek_type_list.first) + { + String8 type_string = n->string; + E_Eval type_eval = e_eval_from_string(type_string); + if(type_eval.msgs.max_kind == E_MsgKind_Null) + { + String8 casted_expr = str8f(scratch.arena, "*(((%S) *)((((uint8 *)(&(%S)) + 0x%I64x))))", + type_string, + eval.string.size ? eval.string : str8_lit("0"), + selection.min - view_range.min); + E_Eval peek_eval = e_eval_from_string(casted_expr); + if(peek_eval.msgs.max_kind == E_MsgKind_Null) + { + EV_StringParams params = + { + .flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, + .radix = rd_view_setting_u64_from_name(str8_lit("default_radix")), + }; + String8 value_string = rd_value_string_from_eval(scratch.arena, str8_zero(), ¶ms, ui_top_font(), ui_top_font_size(), ui_top_font_size()*40.f, peek_eval); + F32 type_string_width_px = fnt_dim_from_tag_size_string(ui_top_font(), ui_top_font_size(), 0, 0, type_string).x + ui_top_font_size()*0.5f; + F32 value_string_width_px = fnt_dim_from_tag_size_string(ui_top_font(), ui_top_font_size(), 0, 0, value_string).x + ui_top_font_size()*0.5f; + type_string_width_px = Min(type_string_width_px, ui_top_font_size()*10.f); + value_string_width_px = Min(value_string_width_px, ui_top_font_size()*20.f); + F32 padding_px = ui_top_font_size()*0.5f; + x_off_px += type_string_width_px + value_string_width_px + padding_px*2.f; + if(0 && x_off_px >= x_max_px) + { + x_off_px = 0; + ui_row_end(); + ui_row_begin(); + } + UI_PrefWidth(ui_children_sum(1)) UI_TagF(".") UI_TagF("implicit") + { + UI_Box *peek_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable| + UI_BoxFlag_DrawBackground| + UI_BoxFlag_DrawHotEffects| + UI_BoxFlag_DrawActiveEffects, + "peek_type_%I64x", u64_hash_from_str8(type_string)); + UI_Parent(peek_box) UI_Padding(ui_px(padding_px, 1)) UI_Flags(UI_BoxFlag_DisableTruncatedHover) + { + UI_PrefWidth(ui_px(type_string_width_px, 1)) rd_code_label(1.f, 0, ui_color_from_name(str8_lit("text")), type_string); + UI_PrefWidth(ui_px(value_string_width_px, 1)) rd_code_label(1.f, 0, ui_color_from_name(str8_lit("text")), value_string); + } + UI_Signal peek_sig = ui_signal_from_box(peek_box); + if(ui_hovering(peek_sig)) + { + rd_set_hover_eval(v2f32(peek_box->rect.x0, peek_box->rect.y1-2.f), casted_expr); + } + if(ui_clicked(peek_sig)) + { + rd_cmd(RD_CmdKind_PushQuery, .expr = casted_expr); + } + } + } + } + } + ui_row_end(); + } + UI_Signal sig = ui_signal_from_box(peekbar_box); + if(ui_pressed(sig)) + { + rd_cmd(RD_CmdKind_FocusPanel); + commit_addrbar = mv->addrbar_is_focused; + mv->addrbar_is_focused = 0; + } + } + ////////////////////////////// //- rjf: build header // UI_Box *header_box = &ui_nil_box; UI_Parent(container_box) UI_TagF("floating") { - UI_Rect(r2f32p(0, 0, dim_2f32(rect).x - scroll_bar_dim, row_height_px)) + UI_Rect(header_rect) header_box = ui_build_box_from_stringf(UI_BoxFlag_DrawSideBottom| + UI_BoxFlag_DrawSideTop| UI_BoxFlag_DrawBackground| UI_BoxFlag_DrawDropShadow| UI_BoxFlag_DrawBackgroundBlur| - UI_BoxFlag_Floating, "table_header"); + UI_BoxFlag_Floating| + UI_BoxFlag_Clickable, "table_header"); UI_Parent(header_box) RD_Font(RD_FontSlot_Code) - UI_FontSize(font_size) + UI_FontSize(cell_font_size) { - UI_PrefWidth(ui_px(big_glyph_advance*20.f, 1.f)) ui_labelf("Address"); + UI_PrefWidth(ui_px(address_margin_width_px, 1.f)) ui_labelf("Address"); UI_PrefWidth(ui_px(cell_width_px, 1.f)) UI_TextAlignment(UI_TextAlign_Center) { - Rng1U64 col_selection_rng = r1u64(cursor_base_vaddr%num_columns, mark_base_vaddr%num_columns); + Rng1U64 col_selection_rng = r1u64((cursor_base_vaddr - view_range.min) % num_columns, + (mark_base_vaddr - view_range.min) % num_columns); for(U64 row_off = 0; row_off < num_columns; row_off += 1) { - B32 column_is_selected = (selection.min%num_columns <= row_off && row_off <= selection.max%num_columns); + B32 column_is_selected = ((selection.min - view_range.min) % num_columns <= row_off && row_off <= (selection.max - view_range.min) % num_columns); UI_TagF(column_is_selected ? "" : "weak") ui_labelf("%I64X", row_off); } } - ui_spacer(ui_px(big_glyph_advance*1.5f, 1.f)); + ui_spacer(ui_px(cell_big_glyph_advance*1.5f, 1.f)); UI_WidthFill ui_labelf("ASCII"); } + UI_Signal sig = ui_signal_from_box(header_box); + if(ui_pressed(sig)) + { + rd_cmd(RD_CmdKind_FocusPanel); + commit_addrbar = mv->addrbar_is_focused; + mv->addrbar_is_focused = 0; + } } ////////////////////////////// //- rjf: build footer // UI_Box *footer_box = &ui_nil_box; - UI_Parent(container_box) UI_FontSize(main_font_size) UI_TagF("floating") + UI_Parent(container_box) UI_FontSize(tab_font_size) UI_TagF("floating") { ui_set_next_fixed_x(footer_rect.x0); ui_set_next_fixed_y(footer_rect.y0); ui_set_next_fixed_width(dim_2f32(footer_rect).x); ui_set_next_fixed_height(dim_2f32(footer_rect).y); - footer_box = ui_build_box_from_stringf(UI_BoxFlag_DrawSideTop|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow, "footer"); + footer_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable|UI_BoxFlag_DrawSideTop|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow, "footer"); UI_Parent(footer_box) RD_Font(RD_FontSlot_Code) { - UI_PrefWidth(ui_em(7.5f, 1.f)) UI_HeightFill UI_Column UI_TagF("weak") - UI_PrefHeight(ui_em(2.f, 0.f)) + //- rjf: annotations for cursor position + if(contains_1u64(viz_range_bytes, cursor_base_vaddr)) UI_PrefWidth(ui_text_dim(2, 1)) UI_TextAlignment(UI_TextAlign_Center) { - ui_labelf("Address:"); - ui_labelf("U8:"); - ui_labelf("U16:"); - ui_labelf("U32:"); - ui_labelf("U64:"); - } - UI_PrefWidth(ui_em(45.f, 1.f)) UI_HeightFill UI_Column - UI_PrefHeight(ui_em(2.f, 0.f)) - { - ui_labelf("%016I64X", cursor_base_vaddr); + U64 cursor_vaddr_visible_byte_idx = cursor_base_vaddr - viz_range_bytes.min; + AnnotationList cursor_byte_annotations = visible_memory_annotations[cursor_vaddr_visible_byte_idx]; + Vec4F32 divider_color = {0}; + UI_TagF("weak") divider_color = ui_color_from_name(str8_lit("text")); + + // rjf: build fstrs for . accessed annotations + DR_FStrList annotation_dot_accessed_fstrs = {0}; + AnnotationNode *first_non_dot_annotation = cursor_byte_annotations.last; { - U64 as_u8 = 0; - U64 as_u16 = 0; - U64 as_u32 = 0; - U64 as_u64 = 0; - e_space_read(eval.space, &as_u64, r1u64(cursor_base_vaddr, cursor_base_vaddr+1)); - as_u32 = *(U32 *)&as_u64; - as_u16 = *(U16 *)&as_u64; - as_u8 = *(U8 *)&as_u64; - ui_labelf("%02X (%I64u)", as_u8, as_u8); - ui_labelf("%04X (%I64u)", as_u16, as_u16); - ui_labelf("%08X (%I64u)", as_u32, as_u32); - ui_labelf("%016I64X (%I64u)", as_u64, as_u64); + for(AnnotationNode *n = cursor_byte_annotations.last; n != 0; n = n->prev) + { + Annotation *a = n->v; + if(!a->dot_access) {break;} + first_non_dot_annotation = n->prev; + DR_FStr a_fstr = + { + a->name_string, + { + ui_top_font(), + ui_top_text_raster_flags(), + a->txt_color, + ui_top_font_size(), + }, + }; + dr_fstrs_push_front(scratch.arena, &annotation_dot_accessed_fstrs, &a_fstr); + DR_FStr dot_fstr = + { + str8_lit("."), + { + ui_top_font(), + ui_top_text_raster_flags(), + divider_color, + ui_top_font_size(), + }, + }; + dr_fstrs_push_front(scratch.arena, &annotation_dot_accessed_fstrs, &dot_fstr); + } } + + // rjf: build fstrs for / 'accessed' annotations + DR_FStrList annotation_fstrs = {0}; + { + for(AnnotationNode *n = first_non_dot_annotation; n != 0; n = n->prev) + { + Annotation *a = n->v; + DR_FStr a_fstr = + { + a->name_string, + { + ui_top_font(), + ui_top_text_raster_flags(), + a->txt_color, + ui_top_font_size(), + }, + }; + dr_fstrs_push(scratch.arena, &annotation_fstrs, &a_fstr); + if(annotation_dot_accessed_fstrs.node_count != 0) + { + dr_fstrs_concat_in_place(&annotation_fstrs, &annotation_dot_accessed_fstrs); + } + if(n->prev != 0) + { + DR_FStr slash_fstr = + { + str8_lit(" / "), + { + ui_top_font(), + ui_top_text_raster_flags(), + divider_color, + ui_top_font_size(), + }, + }; + dr_fstrs_push(scratch.arena, &annotation_fstrs, &slash_fstr); + } + } + } + + // rjf: build annotation label + UI_Box *a_box = ui_build_box_from_key(UI_BoxFlag_DrawText, ui_key_zero()); + ui_box_equip_display_fstrs(a_box, &annotation_fstrs); } + + ui_spacer(ui_pct(1, 0)); + + //- rjf: selection size + UI_PrefWidth(ui_text_dim(2, 1)) + { + U64 selection_size = dim_1u64(selection) + 1; + String8 selection_size_string = str8_from_memory_size(scratch.arena, selection_size); + ui_labelf("%S selected", selection_size_string); + } + } + UI_Signal sig = ui_signal_from_box(footer_box); + if(ui_pressed(sig)) + { + rd_cmd(RD_CmdKind_FocusPanel); + commit_addrbar = mv->addrbar_is_focused; + mv->addrbar_is_focused = 0; } } @@ -3489,8 +4034,10 @@ RD_VIEW_UI_FUNCTION_DEF(memory) //- rjf: interact with row container // U64 mouse_hover_byte_num = 0; + B32 dragging_is_active = 0; { UI_Signal sig = ui_signal_from_box(row_container_box); + dragging_is_active = ui_dragging(sig); // rjf: calculate hovered byte if(ui_hovering(sig) || ui_dragging(sig)) @@ -3501,7 +4048,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) // rjf: try from cells if(mouse_hover_byte_num == 0) { - U64 col_idx = ClampBot(mouse_rel.x-big_glyph_advance*20.f, 0)/cell_width_px; + U64 col_idx = ClampBot(mouse_rel.x-cell_big_glyph_advance*20.f, 0)/cell_width_px; if(col_idx < num_columns) { mouse_hover_byte_num = viz_range_bytes.min + row_idx*num_columns + col_idx + 1; @@ -3511,7 +4058,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) // rjf: try from ascii if(mouse_hover_byte_num == 0) { - U64 col_idx = ClampBot(mouse_rel.x - (big_glyph_advance*20.f + cell_width_px*num_columns + big_glyph_advance*1.5f), 0)/big_glyph_advance; + U64 col_idx = ClampBot(mouse_rel.x - (cell_big_glyph_advance*20.f + cell_width_px*num_columns + cell_big_glyph_advance*1.5f), 0)/cell_big_glyph_advance; col_idx = ClampTop(col_idx, num_columns-1); mouse_hover_byte_num = viz_range_bytes.min + row_idx*num_columns + col_idx + 1; } @@ -3523,10 +4070,12 @@ RD_VIEW_UI_FUNCTION_DEF(memory) if(ui_pressed(sig)) { rd_cmd(RD_CmdKind_FocusPanel); + commit_addrbar = mv->addrbar_is_focused; + mv->addrbar_is_focused = 0; } // rjf: click & drag -> select - if(ui_dragging(sig) && mouse_hover_byte_num != 0) + if((ui_dragging(sig) || ui_right_clicked(sig)) && mouse_hover_byte_num != 0) { if(!contains_2f32(sig.box->rect, ui_mouse())) { @@ -3539,21 +4088,32 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } + // rjf: right-click -> push query + if(ui_right_clicked(sig)) + { + rd_cmd(RD_CmdKind_PushQuery, + .expr = s("query:memory_commands"), + .do_implicit_root = 1, + .do_lister = 1, + .activate_with_single_click = 1, + .ui_key = sig.box->key); + } + // rjf: ctrl+scroll -> change font size if(ui_hovering(sig)) { for(UI_Event *evt = 0; ui_next_event(&evt);) { - if(evt->kind == UI_EventKind_Scroll && evt->modifiers & OS_Modifier_Ctrl) + if(evt->kind == UI_EventKind_Scroll && evt->modifiers & WM_Modifier_Ctrl) { ui_eat_event(evt); if(evt->delta_2f32.y < 0) { - rd_cmd(RD_CmdKind_IncViewFontSize); + zoom_target += 0.1f; } else if(evt->delta_2f32.y > 0) { - rd_cmd(RD_CmdKind_DecViewFontSize); + zoom_target -= 0.1f; } } } @@ -3575,7 +4135,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ////////////////////////////// //- rjf: build rows // - UI_Parent(row_container_box) RD_Font(RD_FontSlot_Code) UI_FontSize(font_size) + UI_Parent(row_container_box) RD_Font(RD_FontSlot_Code) UI_FontSize(cell_font_size) { U8 *row_ascii_buffer = push_array(scratch.arena, U8, num_columns); UI_WidthFill UI_PrefHeight(ui_px(row_height_px, 1.f)) @@ -3590,7 +4150,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) UI_Box *row = ui_build_box_from_stringf(row_flags, "row_%I64x", row_range_bytes.min); UI_Parent(row) { - UI_PrefWidth(ui_px(big_glyph_advance*20.f, 1.f)) + UI_PrefWidth(ui_px(cell_big_glyph_advance*20.f, 1.f)) { if(!(selection.max >= row_range_bytes.min && selection.min < row_range_bytes.max)) { @@ -3623,12 +4183,16 @@ RD_VIEW_UI_FUNCTION_DEF(memory) U8 byte_value = visible_memory[visible_byte_idx]; B32 byte_is_bad = !!(visible_memory_bad_flags[visible_byte_idx/64] & (1ull<<(visible_byte_idx%64))); B32 byte_is_changed = !!(visible_memory_change_flags[visible_byte_idx/64] & (1ull<<(visible_byte_idx%64))); - AnnotationNode *annotation_node = visible_memory_annotations[visible_byte_idx].first; + AnnotationNode *annotation_node = visible_memory_annotations[visible_byte_idx].last; // rjf: unpack visual cell info UI_BoxFlags cell_flags = 0; Vec4F32 cell_bg_rgba = {0}; Vec4F32 cell_bd_rgba = ui_color_from_name(str8_lit("text")); + if(!allow_edits) UI_TagF("weak") + { + cell_bd_rgba = ui_color_from_name(str8_lit("text")); + } if(global_byte_num == mouse_hover_byte_num) { cell_flags |= UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawDropShadow; @@ -3636,7 +4200,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) if(annotation_node != 0) { cell_flags |= UI_BoxFlag_DrawBackground; - Vec4F32 cell_bg_color_rgba = annotation_node->v->color; + Vec4F32 cell_bg_color_rgba = annotation_node->v->bg_color; Vec4F32 cell_bg_color_hsva = hsva_from_rgba(cell_bg_color_rgba); cell_bg_rgba = mix_4f32(cell_bg_color_rgba, main_bg_color_rgba, clamp_1f32(r1f32(0, 1), 1.f - abs_f32(cell_bg_color_hsva.z - main_tx_color_hsva.z)*0.5f)); } @@ -3676,25 +4240,45 @@ RD_VIEW_UI_FUNCTION_DEF(memory) if(cell_bd_rgba.w != 0) { ui_set_next_border_color(cell_bd_rgba); } if(cell_bg_rgba.w != 0) { ui_set_next_background_color(cell_bg_rgba); } UI_Box *cell_box = ui_build_box_from_key(UI_BoxFlag_DrawText|cell_flags, ui_key_zero()); - if(byte_is_selected || byte_is_changed) + if(global_byte_idx == cursor_base_vaddr && mv->cell_value_edit_in_progress) + { + Vec4F32 color = {0}; + UI_TagF("bad") color = ui_color_from_name(str8_lit("text")); + DR_FStrList fstrs = {0}; + DR_FStr fstr = {str8f(scratch.arena, "%c", mv->cell_value_edit_first_digit), {font, font_raster_flags, color, cell_font_size, 0, 0}}; + dr_fstrs_push(scratch.arena, &fstrs, &fstr); + ui_box_equip_display_fstrs(cell_box, &fstrs); + } + else if(byte_is_bad) + { + ui_box_equip_display_fstrs(cell_box, &unmapped_byte_fstrs); + } + else if(byte_is_selected) { ui_box_equip_display_fstrs(cell_box, &byte_fstrs_selected[byte_value]); } + else if(byte_is_changed) + { + ui_box_equip_display_fstrs(cell_box, &byte_fstrs_changed[byte_value]); + } else { ui_box_equip_display_fstrs(cell_box, &byte_fstrs[byte_value]); } { - for(AnnotationNode *a_n = annotation_node; a_n != 0; a_n = a_n->next) + B32 did_opener = 0; + B32 did_closer = 0; + for(AnnotationNode *a_n = annotation_node; a_n != 0 && (!did_opener || !did_closer); a_n = a_n->next) { Annotation *a = a_n->v; - if(global_byte_idx == a->vaddr_range.min) UI_Parent(row_overlay_box) + if(!did_opener && global_byte_idx == a->vaddr_range.min) UI_Parent(row_overlay_box) { + did_opener = 1; F32 size = cell_width_px/4.f + cell_width_px/8.f*ui_anim(ui_key_from_stringf(ui_active_seed_key(), "###annotation_hovered_%I64x_%I64x", a->vaddr_range.min, a->vaddr_range.max), (F32)!!(a->vaddr_range.min+1 <= mouse_hover_byte_num && mouse_hover_byte_num <= a->vaddr_range.max)); - ui_set_next_border_color(a->color); - ui_set_next_fixed_x(big_glyph_advance*20.f + col_idx*cell_width_px + -size*0.5f); - ui_set_next_fixed_y((row_idx-viz_range_rows.min)*row_height_px + -size*0.5f); + ui_set_next_border_color(a->bg_color); + ui_set_next_fixed_x(cell_big_glyph_advance*20.f + col_idx*cell_width_px + -size*0.125f); + ui_set_next_fixed_y((row_idx-viz_range_rows.min)*row_height_px + -size*0.125f); ui_set_next_fixed_width(size); ui_set_next_fixed_height(size); ui_set_next_corner_radius_00(cell_width_px/8.f); @@ -3703,13 +4287,14 @@ RD_VIEW_UI_FUNCTION_DEF(memory) ui_set_next_corner_radius_11(cell_width_px/8.f); ui_build_box_from_key(UI_BoxFlag_Floating|UI_BoxFlag_DrawSideLeft|UI_BoxFlag_DrawSideTop|UI_BoxFlag_DrawDropShadow, ui_key_zero()); } - if(global_byte_idx+1 == a->vaddr_range.max) UI_Parent(row_overlay_box) + if(0 && !did_closer && global_byte_idx+1 == a->vaddr_range.max) UI_Parent(row_overlay_box) { + did_closer = 1; F32 size = cell_width_px/4.f + cell_width_px/8.f*ui_anim(ui_key_from_stringf(ui_active_seed_key(), "###annotation_hovered_%I64x_%I64x", a->vaddr_range.min, a->vaddr_range.max), (F32)!!(a->vaddr_range.min+1 <= mouse_hover_byte_num && mouse_hover_byte_num <= a->vaddr_range.max)); - ui_set_next_border_color(a->color); - ui_set_next_fixed_x(big_glyph_advance*20.f + (col_idx+1)*cell_width_px + -size*0.5f); - ui_set_next_fixed_y((row_idx-viz_range_rows.min)*row_height_px + row_height_px + -size*0.5f); + ui_set_next_border_color(a->bg_color); + ui_set_next_fixed_x(cell_big_glyph_advance*20.f + (col_idx+1)*cell_width_px + -size*0.125f); + ui_set_next_fixed_y((row_idx-viz_range_rows.min)*row_height_px + row_height_px + -size*0.125f); ui_set_next_fixed_width(size); ui_set_next_fixed_height(size); ui_set_next_corner_radius_00(cell_width_px/8.f); @@ -3720,9 +4305,10 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } } - if(annotation_node != 0 && mouse_hover_byte_num == global_byte_num) +#if 0 + if(annotation_node != 0 && mouse_hover_byte_num == global_byte_num && !dragging_is_active) { - UI_Tooltip UI_FontSize(ui_top_font_size()) UI_PrefHeight(ui_px(ui_top_font_size()*1.75f, 1.f)) + UI_Tooltip UI_PrefHeight(ui_px(ui_top_font_size()*1.75f, 1.f)) { for(AnnotationNode *a_n = annotation_node; a_n != 0; a_n = a_n->next) { @@ -3744,11 +4330,12 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } } +#endif } } } - ui_spacer(ui_px(big_glyph_advance*1.5f, 1.f)); - UI_WidthFill + ui_spacer(ui_px(cell_big_glyph_advance*1.5f, 1.f)); + UI_WidthFill UI_TextPadding(0) { MemoryZero(row_ascii_buffer, num_columns); U64 num_bytes_this_row = 0; @@ -3776,9 +4363,9 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { Vec2F32 text_pos = ui_box_text_position(ascii_box); Vec4F32 color = selection_color; - dr_rect(r2f32p(text_pos.x + fnt_dim_from_tag_size_string(font, font_size, 0, 0, str8_prefix(ascii_text, selection_in_row.min+0-row_range_bytes.min)).x - font_size/8.f, + dr_rect(r2f32p(text_pos.x + fnt_dim_from_tag_size_string(font, cell_font_size, 0, 0, str8_prefix(ascii_text, selection_in_row.min+0-row_range_bytes.min)).x - cell_font_size/8.f, ascii_box->rect.y0, - text_pos.x + fnt_dim_from_tag_size_string(font, font_size, 0, 0, str8_prefix(ascii_text, selection_in_row.max+1-row_range_bytes.min)).x + font_size/4.f, + text_pos.x + fnt_dim_from_tag_size_string(font, cell_font_size, 0, 0, str8_prefix(ascii_text, selection_in_row.max+1-row_range_bytes.min)).x + cell_font_size/4.f, ascii_box->rect.y1), color, 0, 0, 1.f); @@ -3792,9 +4379,9 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { Vec2F32 text_pos = ui_box_text_position(ascii_box); Vec4F32 color = border_color; - dr_rect(r2f32p(text_pos.x + fnt_dim_from_tag_size_string(font, font_size, 0, 0, str8_prefix(ascii_text, mouse_hover_byte_num-1-row_range_bytes.min)).x - font_size/8.f, + dr_rect(r2f32p(text_pos.x + fnt_dim_from_tag_size_string(font, cell_font_size, 0, 0, str8_prefix(ascii_text, mouse_hover_byte_num-1-row_range_bytes.min)).x - cell_font_size/8.f, ascii_box->rect.y0, - text_pos.x + fnt_dim_from_tag_size_string(font, font_size, 0, 0, str8_prefix(ascii_text, mouse_hover_byte_num+0-row_range_bytes.min)).x + font_size/4.f, + text_pos.x + fnt_dim_from_tag_size_string(font, cell_font_size, 0, 0, str8_prefix(ascii_text, mouse_hover_byte_num+0-row_range_bytes.min)).x + cell_font_size/4.f, ascii_box->rect.y1), color, 1.f, 3.f, 1.f); @@ -3806,6 +4393,26 @@ RD_VIEW_UI_FUNCTION_DEF(memory) } } + ////////////////////////////// + //- rjf: commit addrbar changes + // + if(focus_addrbar) + { + CFG_Node *view = cfg_node_from_id(rd_regs()->view); + CFG_Node *cursor_addr = cfg_node_child_from_string(view, str8_lit("cursor")); + mv->addrbar_is_focused = 1; + mv->addrbar_string_size = Min(sizeof(mv->addrbar_buffer), cursor_addr->first->string.size); + MemoryCopy(mv->addrbar_buffer, cursor_addr->first->string.str, mv->addrbar_string_size); + mv->addrbar_cursor = txt_pt(1, mv->addrbar_string_size+1); + mv->addrbar_mark = txt_pt(1, 1); + } + if(commit_addrbar) + { + String8 string = str8(mv->addrbar_buffer, mv->addrbar_string_size); + rd_store_view_param(str8_lit("cursor"), string); + mv->addrbar_is_focused = 0; + } + ////////////////////////////// //- rjf: scroll // @@ -3831,6 +4438,12 @@ RD_VIEW_UI_FUNCTION_DEF(memory) mark_base_vaddr = clamp_1u64(cursor_valid_rng, mark_base_vaddr); } + ////////////////////////////// + //- rjf: fill registers + // + rd_regs()->eval_space = eval.space; + rd_regs()->vaddr_range = selection; + ////////////////////////////// //- rjf: save parameters // @@ -3844,6 +4457,7 @@ RD_VIEW_UI_FUNCTION_DEF(memory) { rd_store_view_param_u64(str8_lit("mark"), mark_base_vaddr); } + rd_store_view_param_f32(str8_lit("zoom"), zoom_target); rd_store_view_scroll_pos(scroll_pos); scratch_end(scratch); diff --git a/src/raddbg/raddbg_views.h b/src/raddbg/raddbg_views.h index fd497d98..530d07b5 100644 --- a/src/raddbg/raddbg_views.h +++ b/src/raddbg/raddbg_views.h @@ -64,12 +64,6 @@ struct RD_CodeViewState U64 wrap_total_vline_count; }; -typedef struct RD_CodeViewBuildResult RD_CodeViewBuildResult; -struct RD_CodeViewBuildResult -{ - DI_KeyList dbgi_keys; -}; - //////////////////////////////// //~ rjf: Watch View Types @@ -120,14 +114,14 @@ struct RD_WatchCellList typedef struct RD_WatchRowInfo RD_WatchRowInfo; struct RD_WatchRowInfo { - CTRL_Entity *module; + D_Entity *module; B32 can_expand; B32 expr_is_editable; String8 group_cfg_name; CFG_Node *group_cfg_parent; CFG_Node *group_cfg_child; - CTRL_Entity *group_entity; - CTRL_Entity *callstack_thread; + D_Entity *group_entity; + D_Entity *callstack_thread; U64 callstack_unwind_index; U64 callstack_inline_depth; U64 callstack_vaddr; @@ -141,7 +135,7 @@ struct RD_WatchRowCellInfo { RD_WatchCellFlags flags; CFG_Node *cfg; - CTRL_Entity *entity; + D_Entity *entity; String8 cmd_name; String8 file_path; DR_FStrList expr_fstrs; @@ -200,7 +194,7 @@ struct RD_WatchViewState //~ rjf: Code View Functions internal void rd_code_view_init(RD_CodeViewState *cv); -internal RD_CodeViewBuildResult rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags flags, Rng2F32 rect, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key); +internal void rd_code_view_build(Arena *arena, RD_CodeViewState *cv, RD_CodeViewBuildFlags flags, Rng2F32 rect, U128 text_hash, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key); //////////////////////////////// //~ rjf: Watch View Functions @@ -221,6 +215,9 @@ internal RD_WatchRowInfo rd_watch_row_info_from_row(Arena *arena, EV_Row *row); //- rjf: row * cell -> info internal RD_WatchRowCellInfo rd_info_from_watch_row_cell(Arena *arena, EV_Row *row, EV_StringFlags string_flags, RD_WatchRowInfo *row_info, RD_WatchCell *cell, FNT_Tag font, F32 font_size, F32 max_size_px); +//- rjf: cell -> fill registers via context +internal RD_RegSlot rd_regs_fill_slot_from_cell_ctx(String8 root_ctx_expr, EV_Row *row); + //- rjf: table coordinates -> text edit state internal RD_WatchViewTextEditState *rd_watch_view_text_edit_state_from_pt(RD_WatchViewState *wv, RD_WatchPt pt); diff --git a/src/raddbg/raddbg_widgets.c b/src/raddbg/raddbg_widgets.c index 4d039d03..4db60f77 100644 --- a/src/raddbg/raddbg_widgets.c +++ b/src/raddbg/raddbg_widgets.c @@ -15,6 +15,7 @@ rd_title_fstrs_from_cfg(Arena *arena, CFG_Node *cfg, B32 include_extras) B32 is_disabled = rd_disabled_from_cfg(cfg); RD_Location loc = rd_location_from_cfg(cfg); D_Target target = rd_target_from_cfg(scratch.arena, cfg); + String8 name_string = rd_name_from_cfg(cfg); String8 label_string = rd_label_from_cfg(cfg); String8 expr_string = rd_expr_from_cfg(cfg); String8 collection_name = {0}; @@ -102,13 +103,13 @@ rd_title_fstrs_from_cfg(Arena *arena, CFG_Node *cfg, B32 include_extras) //- rjf: [breakpoints] push hit marker if(str8_match(cfg->string, str8_lit("breakpoint"), 0)) { - CTRL_Event stop_event = d_ctrl_last_stop_event(); - if(stop_event.cause == CTRL_EventCause_UserBreakpoint) + D_Event stop_event = d_ctrl_last_stop_event(); + if(stop_event.cause == D_EventCause_UserBreakpoint) { CFG_Node *bp = cfg_node_from_id(stop_event.u64_code); if(bp == cfg) { - CTRL_Entity *thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, stop_event.entity); + D_Entity *thread = d_entity_from_handle(stop_event.entity); Vec4F32 thread_color = rd_color_from_ctrl_entity(thread); if(thread_color.w == 0) { @@ -163,6 +164,14 @@ rd_title_fstrs_from_cfg(Arena *arena, CFG_Node *cfg, B32 include_extras) } } + //- rjf: push name + if(name_string.size != 0) + { + dr_fstrs_push_new(arena, &result, ¶ms, name_string); + dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); + start_secondary(); + } + //- rjf: push label if(label_string.size != 0) { @@ -445,7 +454,7 @@ rd_title_fstrs_from_cfg(Arena *arena, CFG_Node *cfg, B32 include_extras) } internal DR_FStrList -rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_extras) +rd_title_fstrs_from_ctrl_entity(Arena *arena, D_Entity *entity, B32 include_extras) { DR_FStrList result = {0}; @@ -467,10 +476,10 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e switch(entity->kind) { default:{}break; - case CTRL_EntityKind_Machine: {icon_kind = RD_IconKind_Machine;}break; - case CTRL_EntityKind_Process: {icon_kind = RD_IconKind_Threads;}break; - case CTRL_EntityKind_Thread: {icon_kind = RD_IconKind_Thread; name_is_code = 1;}break; - case CTRL_EntityKind_Module: {icon_kind = RD_IconKind_Module;}break; + case D_EntityKind_Machine: {icon_kind = RD_IconKind_Machine;}break; + case D_EntityKind_Process: {icon_kind = RD_IconKind_Threads;}break; + case D_EntityKind_Thread: {icon_kind = RD_IconKind_Thread; name_is_code = 1;}break; + case D_EntityKind_Module: {icon_kind = RD_IconKind_Module;}break; } //- rjf: set up drawing params @@ -484,10 +493,10 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e } //- rjf: push frozen icon, if frozen - if((entity->kind == CTRL_EntityKind_Machine || - entity->kind == CTRL_EntityKind_Process || - entity->kind == CTRL_EntityKind_Thread) && - ctrl_entity_tree_is_frozen(entity)) + if((entity->kind == D_EntityKind_Machine || + entity->kind == D_EntityKind_Process || + entity->kind == D_EntityKind_Thread) && + d_entity_tree_is_frozen(entity)) UI_TagF("bad") { dr_fstrs_push_new(arena, &result, ¶ms, rd_icon_kind_text_table[RD_IconKind_Locked], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons), .color = ui_color_from_name(str8_lit("text"))); @@ -495,9 +504,9 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e } //- rjf: push selected icon, if selected thread - if(entity->kind == CTRL_EntityKind_Thread) + if(entity->kind == D_EntityKind_Thread) { - B32 is_selected = ctrl_handle_match(entity->handle, rd_base_regs()->thread); + B32 is_selected = d_handle_match(entity->handle, rd_base_regs()->thread); if(is_selected) { dr_fstrs_push_new(arena, &result, ¶ms, rd_icon_kind_text_table[RD_IconKind_RightArrow], .font = rd_font_from_slot(RD_FontSlot_Icons), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Icons), .color = color); @@ -506,13 +515,13 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e } //- rjf: push containing process prefix - if(entity->kind == CTRL_EntityKind_Thread || - entity->kind == CTRL_EntityKind_Module) + if(entity->kind == D_EntityKind_Thread || + entity->kind == D_EntityKind_Module) { - CTRL_EntityArray processes = ctrl_entity_array_from_kind(&d_state->ctrl_entity_store->ctx, CTRL_EntityKind_Process); + D_EntityArray processes = d_entity_array_from_kind(D_EntityKind_Process); if(processes.count > 1) { - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity, CTRL_EntityKind_Process); + D_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); String8 process_name = rd_name_from_ctrl_entity(arena, process); Vec4F32 process_color = rd_color_from_ctrl_entity(process); if(process_color.w == 0) @@ -536,55 +545,67 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e .color = color); //- rjf: push PID - if(entity->kind == CTRL_EntityKind_Process) + if(entity->kind == D_EntityKind_Process && entity->id != 0) { dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); dr_fstrs_push_new(arena, &result, ¶ms, push_str8f(arena, " (PID: %I64u)", entity->id), .font = rd_font_from_slot(RD_FontSlot_Main), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Main), .color = secondary_color, .size = ui_top_font_size()*0.85f); } //- rjf: threads get callstack extras - if(entity->kind == CTRL_EntityKind_Thread && include_extras) + if(entity->kind == D_EntityKind_Thread && include_extras) { Vec4F32 symbol_color = ui_color_from_name(str8_lit("code_symbol")); dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); Access *access = access_open(); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(entity, CTRL_EntityKind_Process); + D_Entity *process = d_entity_ancestor_from_kind(entity, D_EntityKind_Process); Arch arch = entity->arch; - B32 call_stack_high_priority = ctrl_handle_match(entity->handle, rd_base_regs()->thread); - CTRL_CallStack call_stack = ctrl_call_stack_from_thread(access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + ARCH_Info *arch_info = arch_info_from_arch(entity->arch); + B32 call_stack_high_priority = d_handle_match(entity->handle, rd_base_regs()->thread); + D_CallStack call_stack = d_call_stack_from_thread(access, entity->handle, call_stack_high_priority, call_stack_high_priority ? rd_state->frame_eval_memread_endt_us : 0); + B32 did_first_in_main_module = 0; B32 did_first_known = 0; + U64 num_pushed = 0; + D_Entity *first_module = d_entity_child_from_kind(process, D_EntityKind_Module); for(U64 idx = 0, limit = 10; - idx < call_stack.frames_count && idx < limit; + idx < call_stack.frames_count && num_pushed < limit; idx += 1) { - CTRL_CallStackFrame *f = &call_stack.frames[call_stack.frames_count - 1 - idx]; - U64 rip_vaddr = regs_rip_from_arch_block(arch, f->regs); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, rip_vaddr); - U64 rip_voff = ctrl_voff_from_vaddr(module, rip_vaddr); - String8 name = {0}; + D_CallStackFrame *f = &call_stack.frames[call_stack.frames_count - 1 - idx]; + if(f->inline_depth == 0) { - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); - if(rdi != &rdi_parsed_nil) + U64 rip_vaddr = arch_ip_from_reg_block(arch_info, f->regs); + D_Entity *module = d_module_from_process_vaddr(process, rip_vaddr); + if(did_first_in_main_module || module == first_module) { - RDI_Procedure *procedure = rdi_procedure_from_voff(rdi, rip_voff); - name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); - name = push_str8_copy(arena, name); - } - if(name.size == 0 && did_first_known) - { - name = str8_lit("???"); - } - if(name.size != 0) - { - did_first_known = 1; - dr_fstrs_push_new(arena, &result, ¶ms, name, .size = extras_size, .color = symbol_color); - if(idx+1 < call_stack.frames_count) + did_first_in_main_module = 1; + U64 rip_voff = d_voff_from_vaddr(module, rip_vaddr); + String8 name = {0}; { - dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" > "), .color = secondary_color, .size = extras_size); - if(idx+1 == limit) + DI_Key dbgi_key = d_dbgi_key_from_module(module); + RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); + if(rdi != &rdi_parsed_nil) { - dr_fstrs_push_new(arena, &result, ¶ms, str8_lit("..."), .color = secondary_color, .size = extras_size); + RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, rip_voff); + name.str = rdi_string_from_idx(rdi, procedure->name_string_idx, &name.size); + name = push_str8_copy(arena, name); + } + if(name.size == 0 && did_first_known) + { + name = str8_lit("???"); + } + if(name.size != 0) + { + did_first_known = 1; + num_pushed += 1; + dr_fstrs_push_new(arena, &result, ¶ms, name, .size = extras_size, .color = symbol_color); + if(idx+1 < call_stack.frames_count) + { + dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" > "), .color = secondary_color, .size = extras_size); + if(num_pushed+1 == limit) + { + dr_fstrs_push_new(arena, &result, ¶ms, str8_lit("..."), .color = secondary_color, .size = extras_size); + } + } } } } @@ -594,15 +615,15 @@ rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_e } //- rjf: modules get debug info status extras - if(entity->kind == CTRL_EntityKind_Module && include_extras) + if(entity->kind == D_EntityKind_Module && include_extras) { Access *access = access_open(); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(entity); + DI_Key dbgi_key = d_dbgi_key_from_module(entity); RDI_Parsed *rdi = di_rdi_from_key(access, dbgi_key, 0, 0); if(rdi->raw_data_size == 0) { dr_fstrs_push_new(arena, &result, ¶ms, str8_lit(" ")); - dr_fstrs_push_new(arena, &result, ¶ms, str8_lit("(Debug information not loaded)"), .font = rd_font_from_slot(RD_FontSlot_Main), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Main), .size = extras_size, .color = secondary_color); + dr_fstrs_push_new(arena, &result, ¶ms, str8_lit("(Debug info not loaded)"), .font = rd_font_from_slot(RD_FontSlot_Main), .raster_flags = rd_raster_flags_from_slot(RD_FontSlot_Main), .size = extras_size, .color = secondary_color); } access_close(access); } @@ -649,11 +670,11 @@ rd_title_fstrs_from_code_name(Arena *arena, String8 code_name) } internal DR_FStrList -rd_title_fstrs_from_file_path(Arena *arena, String8 file_path) +rd_title_fstrs_from_file_path(Arena *arena, String8 file_path, B32 include_folder) { DR_FStrList fstrs = {0}; String8 file_name = str8_skip_last_slash(file_path); - FileProperties props = os_properties_from_file_path(file_path); + FileProperties props = properties_from_file_path(file_path); RD_IconKind icon_kind = RD_IconKind_FileOutline; if(props.flags & FilePropertyFlag_IsFolder) { @@ -675,6 +696,17 @@ rd_title_fstrs_from_file_path(Arena *arena, String8 file_path) } dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); dr_fstrs_push_new(arena, &fstrs, ¶ms, file_name); + if(include_folder) + { + dr_fstrs_push_new(arena, &fstrs, ¶ms, str8_lit(" ")); + UI_TagF("weak") + { + dr_fstrs_push_new(arena, &fstrs, ¶ms, + str8_chop_last_slash(file_path), + .size = params.size*0.9f, + .color = ui_color_from_name(str8_lit("text"))); + } + } return fstrs; } @@ -751,14 +783,16 @@ rd_loading_overlay(Rng2F32 rect, F32 loading_t, U64 progress_v, U64 progress_v_t //~ rjf: UI Widgets: Fancy Buttons internal void -rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new) +rd_cmd_binding_buttons(String8 name, String8 filter, U64 limit, RD_CmdBindingButtonFlags flags) { Temp scratch = scratch_begin(0, 0); CFG_KeyMapNodePtrList key_map_nodes = cfg_key_map_node_ptr_list_from_name(scratch.arena, rd_state->key_map, name); //- rjf: build buttons for each binding - UI_CornerRadius(ui_top_font_size()*0.5f) for(CFG_KeyMapNodePtr *n = key_map_nodes.first; n != 0; n = n->next) + U64 key_map_idx = 0; + UI_CornerRadius(ui_top_font_size()*0.5f) for(CFG_KeyMapNodePtr *n = key_map_nodes.first; n != 0; n = n->next, key_map_idx += 1) { + if(key_map_idx >= limit) { break; } ui_spacer(ui_em(1.f, 1.f)); CFG_Binding binding = n->v->binding; B32 rebinding_active_for_this_binding = (rd_state->bind_change_active && @@ -782,9 +816,9 @@ rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new) //- rjf: form binding string String8 keybinding_str = {0}; { - if(binding.key != OS_Key_Null) + if(binding.key != WM_Key_Null) { - keybinding_str = os_string_from_modifiers_key(scratch.arena, binding.modifiers, binding.key); + keybinding_str = wm_string_from_modifiers_key(scratch.arena, binding.modifiers, binding.key); } else { @@ -805,7 +839,7 @@ rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new) ui_set_next_group_key(ui_key_zero()); ui_set_next_pref_width(ui_text_dim(ui_top_font_size()*1.f, 1)); UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_DrawText| - UI_BoxFlag_Clickable| + (!(flags & RD_CmdBindingButtonFlag_NoEdit) * UI_BoxFlag_Clickable)| UI_BoxFlag_DrawActiveEffects| UI_BoxFlag_DrawHotEffects| UI_BoxFlag_DrawBorder| @@ -819,7 +853,7 @@ rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new) // rjf: click => toggle activity if(!rd_state->bind_change_active && ui_clicked(sig)) { - if((binding.key == OS_Key_Esc || binding.key == OS_Key_Delete) && binding.modifiers == 0) + if((binding.key == WM_Key_Esc || binding.key == WM_Key_Delete) && binding.modifiers == 0) { log_user_error(str8_lit("Cannot rebind; this command uses a reserved keybinding.")); } @@ -867,7 +901,7 @@ rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new) } //- rjf: build "add new binding" button - if(add_new) + if(flags & RD_CmdBindingButtonFlag_AddNew) { B32 adding_new_binding = (rd_state->bind_change_active && str8_match(rd_state->bind_change_cmd_name, name, 0) && @@ -952,7 +986,7 @@ rd_cmd_spec_button(String8 name) UI_TagF("weak") UI_FastpathCodepoint(0) { - rd_cmd_binding_buttons(name, str8_zero(), 1); + rd_cmd_binding_buttons(name, str8_zero(), max_U64, RD_CmdBindingButtonFlag_AddNew); } } } @@ -964,17 +998,24 @@ internal void rd_cmd_list_menu_buttons(U64 count, String8 *cmd_names, U32 *fastpath_codepoints) { Temp scratch = scratch_begin(0, 0); - for(U64 idx = 0; idx < count; idx += 1) + for EachIndex(idx, count) { - ui_set_next_fastpath_codepoint(fastpath_codepoints[idx]); - UI_Signal sig = rd_cmd_spec_button(cmd_names[idx]); - if(ui_clicked(sig)) + if(cmd_names[idx].size == 0) { - rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_names[idx]); - ui_ctx_menu_close(); - CFG_Node *window = cfg_node_from_id(rd_regs()->window); - RD_WindowState *ws = rd_window_state_from_cfg(window); - ws->menu_bar_focused = 0; + UI_TagF("floating") ui_divider(ui_em(1.f, 1.f)); + } + else + { + ui_set_next_fastpath_codepoint(fastpath_codepoints[idx]); + UI_Signal sig = rd_cmd_spec_button(cmd_names[idx]); + if(ui_clicked(sig)) + { + rd_cmd(RD_CmdKind_RunCommand, .cmd_name = cmd_names[idx]); + ui_ctx_menu_close(); + CFG_Node *window = cfg_node_from_id(rd_regs()->window); + RD_WindowState *ws = rd_window_state_from_cfg(window); + ws->menu_bar_focused = 0; + } } } scratch_end(scratch); @@ -1247,38 +1288,41 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe RD_CodeSliceSignal result = {0}; ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); - CTRL_Entity *selected_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_regs()->thread); - CTRL_Entity *selected_thread_process = ctrl_entity_ancestor_from_kind(selected_thread, CTRL_EntityKind_Process); + D_Entity *selected_thread = d_entity_from_handle(rd_regs()->thread); + D_Entity *selected_thread_process = d_entity_ancestor_from_kind(selected_thread, D_EntityKind_Process); U64 selected_thread_rip_unwind_vaddr = d_query_cached_rip_from_thread_unwind(selected_thread, rd_regs()->unwind_count); - CTRL_Entity *selected_thread_module = ctrl_module_from_process_vaddr(selected_thread_process, selected_thread_rip_unwind_vaddr); - CTRL_Event stop_event = d_ctrl_last_stop_event(); - CTRL_Entity *stopper_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, stop_event.entity); + D_Entity *selected_thread_module = d_module_from_process_vaddr(selected_thread_process, selected_thread_rip_unwind_vaddr); + D_Event stop_event = d_ctrl_last_stop_event(); + D_Entity *stopper_thread = d_entity_from_handle(stop_event.entity); B32 is_focused = ui_is_focus_active(); - B32 ctrlified = (os_get_modifiers() & OS_Modifier_Ctrl); + B32 ctrlified = (wm_get_modifiers() & WM_Modifier_Ctrl); Vec4F32 code_line_bgs[] = { - ui_color_from_name(str8_lit("line_info_0")), - ui_color_from_name(str8_lit("line_info_1")), - ui_color_from_name(str8_lit("line_info_2")), - ui_color_from_name(str8_lit("line_info_3")), + ui_color_from_name(s("line_info_0")), + ui_color_from_name(s("line_info_1")), + ui_color_from_name(s("line_info_2")), + ui_color_from_name(s("line_info_3")), }; F32 line_num_padding_px = ui_top_font_size()*1.f; F32 entity_alive_t_rate = rd_state->entity_alive_animation_rate; F32 entity_hover_t_rate = rd_state->rich_hover_animation_rate; - B32 do_thread_lines = rd_setting_b32_from_name(str8_lit("thread_lines")); - B32 do_thread_glow = rd_setting_b32_from_name(str8_lit("thread_glow")); - B32 do_bp_lines = rd_setting_b32_from_name(str8_lit("breakpoint_lines")); - B32 do_bp_glow = rd_setting_b32_from_name(str8_lit("breakpoint_glow")); - B32 do_scope_lines = rd_setting_b32_from_name(str8_lit("cursor_scope_lines")); + B32 do_thread_lines = rd_setting_b32_from_name(s("thread_lines")); + B32 do_thread_glow = rd_setting_b32_from_name(s("thread_glow")); + B32 do_bp_lines = rd_setting_b32_from_name(s("breakpoint_lines")); + B32 do_bp_glow = rd_setting_b32_from_name(s("breakpoint_glow")); + B32 do_scope_lines = rd_setting_b32_from_name(s("cursor_scope_lines")); + B32 do_scope_end_annotations = rd_setting_b32_from_name(s("cursor_scope_end_annotations")); + B32 do_cursor_trail = rd_setting_b32_from_name(s("cursor_trail")); + B32 do_autos = rd_setting_b32_from_name(s("show_autos_in_src_and_disasm")); Vec4F32 pop_color = {0}; UI_TagF("pop") { - pop_color = ui_color_from_name(str8_lit("background")); + pop_color = ui_color_from_name(s("background")); } Vec4F32 highlight_color = {0}; UI_TagF("focus") { - highlight_color = ui_color_from_name(str8_lit("border")); + highlight_color = ui_color_from_name(s("border")); } ////////////////////////////// @@ -1306,7 +1350,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe // B32 drop_can_hit_lines = 0; CFG_Node *drop_cfg = &cfg_nil_node; - CTRL_Entity *drop_thread = &ctrl_entity_nil; + D_Entity *drop_thread = &d_entity_nil; String8 drop_expr = {0}; Vec4F32 drop_color = pop_color; UI_Key drop_site_key = ui_key_from_stringf(top_container_box->key, "drop_site"); @@ -1314,8 +1358,8 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { CFG_Node *cfg = cfg_node_from_id(rd_state->drag_drop_regs->cfg); if(rd_state->drag_drop_regs_slot == RD_RegSlot_Cfg && - (str8_match(cfg->string, str8_lit("breakpoint"), 0) || - str8_match(cfg->string, str8_lit("watch_pin"), 0))) + (str8_match(cfg->string, s("breakpoint"), 0) || + str8_match(cfg->string, s("watch_pin"), 0))) { drop_can_hit_lines = 1; drop_cfg = cfg; @@ -1328,7 +1372,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe if(rd_state->drag_drop_regs_slot == RD_RegSlot_Thread) { drop_can_hit_lines = 1; - drop_thread = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, rd_state->drag_drop_regs->thread); + drop_thread = d_entity_from_handle(rd_state->drag_drop_regs->thread); drop_color = rd_color_from_ctrl_entity(drop_thread); if(drop_color.w == 0) { @@ -1360,12 +1404,12 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe line_num < params->line_num_range.max; line_num += 1, line_idx += 1) { - CTRL_EntityList threads = params->line_ips[line_idx]; - for(CTRL_EntityNode *n = threads.first; n != 0; n = n->next) + D_EntityList threads = params->line_ips[line_idx]; + for(D_EntityNode *n = threads.first; n != 0; n = n->next) { - if(n->v == stopper_thread && (stop_event.cause == CTRL_EventCause_InterruptedByTrap || stop_event.cause == CTRL_EventCause_InterruptedByException)) + if(n->v == stopper_thread && (stop_event.cause == D_EventCause_InterruptedByTrap || stop_event.cause == D_EventCause_InterruptedByException)) { - line_bg_colors[line_idx] = ui_color_from_name(str8_lit("background")); + line_bg_colors[line_idx] = ui_color_from_name(s("background")); } } } @@ -1388,7 +1432,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe ui_set_next_pref_width(ui_px(params->priority_margin_width_px, 1)); ui_set_next_pref_height(ui_px(params->line_height_px*(dim_1s64(params->line_num_range)+1), 1.f)); ui_set_next_child_layout_axis(Axis2_Y); - priority_margin_container_box = ui_build_box_from_string(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), str8_lit("priority_margin_container")); + priority_margin_container_box = ui_build_box_from_string(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), s("priority_margin_container")); UI_Parent(priority_margin_container_box) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) { U64 line_idx = 0; @@ -1396,44 +1440,43 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe line_num <= params->line_num_range.max; line_num += 1, line_idx += 1) { - CTRL_EntityList line_ips = params->line_ips[line_idx]; - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + D_EntityList line_ips = params->line_ips[line_idx]; UI_Box *line_margin_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawActiveEffects, "line_margin_%I64x", line_num); UI_Parent(line_margin_box) { //- rjf: build margin thread ip ui - for(CTRL_EntityNode *n = line_ips.first; n != 0; n = n->next) + for(D_EntityNode *n = line_ips.first; n != 0; n = n->next) { // rjf: unpack thread - CTRL_Entity *thread = n->v; + D_Entity *thread = n->v; if(thread != selected_thread) { continue; } U64 unwind_count = (thread == selected_thread) ? rd_regs()->unwind_count : 0; U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, thread_rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + U64 thread_rip_voff = d_voff_from_vaddr(module, thread_rip_vaddr); // rjf: thread info => color Vec4F32 color = rd_color_from_ctrl_entity(thread); { if(color.w == 0) { - color = ui_color_from_name(str8_lit("thread_1")); + color = ui_color_from_name(s("thread_1")); } if(unwind_count != 0) { - color = ui_color_from_name(str8_lit("thread_unwound")); + color = ui_color_from_name(s("thread_unwound")); } else if(thread == stopper_thread && - (stop_event.cause == CTRL_EventCause_InterruptedByHalt || - stop_event.cause == CTRL_EventCause_InterruptedByTrap || - stop_event.cause == CTRL_EventCause_InterruptedByException)) + (stop_event.cause == D_EventCause_InterruptedByHalt || + stop_event.cause == D_EventCause_InterruptedByTrap || + stop_event.cause == D_EventCause_InterruptedByException)) { - color = ui_color_from_name(str8_lit("thread_error")); + color = ui_color_from_name(s("thread_error")); } if(d_ctrl_targets_running() && d_ctrl_last_run_frame_idx() < d_frame_index()) { @@ -1446,7 +1489,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe } // rjf: build thread box - ui_set_next_hover_cursor(OS_Cursor_UpDownLeftRight); + ui_set_next_hover_cursor(WM_Cursor_UpDownLeftRight); ui_set_next_font(rd_font_from_slot(RD_FontSlot_Icons)); ui_set_next_font_size(params->font_size); ui_set_next_text_raster_flags(FNT_RasterFlag_Smooth); @@ -1465,7 +1508,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe // rjf: custom draw { RD_Regs *hover_regs = rd_get_hover_regs(); - B32 is_hovering = (ctrl_handle_match(hover_regs->ctrl_entity, thread->handle) && + B32 is_hovering = (d_handle_match(hover_regs->ctrl_entity, thread->handle) && rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity); RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1); u->thread_color = color; @@ -1512,7 +1555,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { rd_cmd(RD_CmdKind_PushQuery, .ui_key = thread_box->key, - .expr = push_str8f(scratch.arena, "query:control.%S", ctrl_string_from_handle(scratch.arena, thread->handle))); + .expr = push_str8f(scratch.arena, "query:control.%S", d_string_from_handle(scratch.arena, thread->handle))); } if(ui_dragging(thread_sig) && !contains_2f32(thread_box->rect, ui_mouse())) { @@ -1541,7 +1584,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe ui_set_next_pref_width(ui_px(params->catchall_margin_width_px, 1)); ui_set_next_pref_height(ui_px(params->line_height_px*(dim_1s64(params->line_num_range)+1), 1.f)); ui_set_next_child_layout_axis(Axis2_Y); - catchall_margin_container_box = ui_build_box_from_string(UI_BoxFlag_DrawSideRight|UI_BoxFlag_DrawSideLeft|UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), str8_lit("catchall_margin_container")); + catchall_margin_container_box = ui_build_box_from_string(UI_BoxFlag_DrawSideRight|UI_BoxFlag_DrawSideLeft|UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), s("catchall_margin_container")); UI_Parent(catchall_margin_container_box) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) { U64 line_idx = 0; @@ -1549,47 +1592,47 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe line_num <= params->line_num_range.max; line_num += 1, line_idx += 1) { - CTRL_EntityList line_ips = params->line_ips[line_idx]; + D_EntityList line_ips = params->line_ips[line_idx]; CFG_NodePtrList line_bps = params->line_bps[line_idx]; CFG_NodePtrList line_pins = params->line_pins[line_idx]; - ui_set_next_hover_cursor(OS_Cursor_HandPoint); ui_set_next_background_color(v4f32(0, 0, 0, 0)); - UI_Box *line_margin_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawActiveEffects, "line_margin_%I64x", line_num); + ui_set_next_text_alignment(UI_TextAlign_Center); + UI_Box *line_margin_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawText|UI_BoxFlag_DrawActiveEffects, "###line_margin_%I64x", line_num); UI_Parent(line_margin_box) { //- rjf: build margin thread ip ui - for(CTRL_EntityNode *n = line_ips.first; n != 0; n = n->next) + for(D_EntityNode *n = line_ips.first; n != 0; n = n->next) { // rjf: unpack thread - CTRL_Entity *thread = n->v; + D_Entity *thread = n->v; if(thread == selected_thread) { continue; } U64 unwind_count = (thread == selected_thread) ? rd_regs()->unwind_count : 0; U64 thread_rip_vaddr = d_query_cached_rip_from_thread_unwind(thread, unwind_count); - CTRL_Entity *process = ctrl_entity_ancestor_from_kind(thread, CTRL_EntityKind_Process); - CTRL_Entity *module = ctrl_module_from_process_vaddr(process, thread_rip_vaddr); - DI_Key dbgi_key = ctrl_dbgi_key_from_module(module); - U64 thread_rip_voff = ctrl_voff_from_vaddr(module, thread_rip_vaddr); + D_Entity *process = d_entity_ancestor_from_kind(thread, D_EntityKind_Process); + D_Entity *module = d_module_from_process_vaddr(process, thread_rip_vaddr); + DI_Key dbgi_key = d_dbgi_key_from_module(module); + U64 thread_rip_voff = d_voff_from_vaddr(module, thread_rip_vaddr); // rjf: thread info => color Vec4F32 color = rd_color_from_ctrl_entity(thread); { if(color.w == 0) { - color = ui_color_from_name(str8_lit("thread_1")); + color = ui_color_from_name(s("thread_1")); } if(unwind_count != 0) { - color = ui_color_from_name(str8_lit("thread_unwound")); + color = ui_color_from_name(s("thread_unwound")); } else if(thread == stopper_thread && - (stop_event.cause == CTRL_EventCause_InterruptedByHalt || - stop_event.cause == CTRL_EventCause_InterruptedByTrap || - stop_event.cause == CTRL_EventCause_InterruptedByException)) + (stop_event.cause == D_EventCause_InterruptedByHalt || + stop_event.cause == D_EventCause_InterruptedByTrap || + stop_event.cause == D_EventCause_InterruptedByException)) { - color = ui_color_from_name(str8_lit("thread_error")); + color = ui_color_from_name(s("thread_error")); } if(d_ctrl_targets_running() && d_ctrl_last_run_frame_idx() < d_frame_index()) { @@ -1602,7 +1645,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe } // rjf: build thread box - ui_set_next_hover_cursor(OS_Cursor_UpDownLeftRight); + ui_set_next_hover_cursor(WM_Cursor_UpDownLeftRight); ui_set_next_font(rd_font_from_slot(RD_FontSlot_Icons)); ui_set_next_font_size(params->font_size); ui_set_next_text_raster_flags(FNT_RasterFlag_Smooth); @@ -1621,7 +1664,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe // rjf: custom draw { RD_Regs *hover_regs = rd_get_hover_regs(); - B32 is_hovering = (ctrl_handle_match(hover_regs->ctrl_entity, thread->handle) && + B32 is_hovering = (d_handle_match(hover_regs->ctrl_entity, thread->handle) && rd_state->hover_regs_slot == RD_RegSlot_CtrlEntity); RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1); u->thread_color = color; @@ -1666,7 +1709,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { rd_cmd(RD_CmdKind_PushQuery, .ui_key = thread_box->key, - .expr = push_str8f(scratch.arena, "query:control.%S", ctrl_string_from_handle(scratch.arena, thread->handle))); + .expr = push_str8f(scratch.arena, "query:control.%S", d_string_from_handle(scratch.arena, thread->handle))); } if(ui_dragging(thread_sig) && !contains_2f32(thread_box->rect, ui_mouse())) { @@ -1686,7 +1729,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe Vec4F32 bp_rgba = rd_color_from_cfg(bp); if(bp_rgba.w == 0) { - bp_rgba = ui_color_from_name(str8_lit("breakpoint")); + bp_rgba = ui_color_from_name(s("breakpoint")); } B32 bp_is_disabled = rd_disabled_from_cfg(bp); if(bp_is_disabled) @@ -1705,7 +1748,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe bp_draw->do_lines = do_bp_lines; bp_draw->do_glow = do_bp_glow; bp_draw->is_disabled = bp_is_disabled; - bp_draw->is_conditioned = (cfg_node_child_from_string(bp, str8_lit("condition"))->first->string.size != 0); + bp_draw->is_conditioned = (cfg_node_child_from_string(bp, s("condition"))->first->string.size != 0); if(params->line_vaddrs[line_idx] == 0) { D_LineList *lines = ¶ms->line_infos[line_idx]; @@ -1751,7 +1794,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe } // rjf: shift+click => enable breakpoint - if(ui_clicked(bp_sig) && bp_sig.event_flags & OS_Modifier_Shift) + if(ui_clicked(bp_sig) && bp_sig.event_flags & WM_Modifier_Shift) { rd_cmd(bp_is_disabled ? RD_CmdKind_EnableCfg : RD_CmdKind_DisableCfg, .cfg = bp->id); } @@ -1776,7 +1819,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe Vec4F32 color = rd_color_from_cfg(pin); if(color.w == 0) { - color = ui_color_from_name(str8_lit("code_default")); + color = ui_color_from_name(s("code_default")); } // rjf: build box for watch @@ -1823,12 +1866,22 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe // rjf: empty margin interaction UI_Signal line_margin_sig = ui_signal_from_box(line_margin_box); + if(ui_hovering(line_margin_sig)) + { + DR_FStrList fstrs = {0}; + Vec4F32 color = ui_color_from_name(s("breakpoint")); + color.w *= 0.2f; + DR_FStrParams p = {rd_font_from_slot(RD_FontSlot_Icons), rd_raster_flags_from_slot(RD_FontSlot_Icons), color, ui_top_font_size()}; + dr_fstrs_push_new(scratch.arena, &fstrs, &p, rd_icon_kind_text_table[RD_IconKind_CircleFilled]); + ui_box_equip_display_fstrs(line_margin_box, &fstrs); + } if(ui_clicked(line_margin_sig)) { rd_cmd(RD_CmdKind_AddBreakpoint, .file_path = params->line_vaddrs[line_idx] ? str8_zero() : rd_regs()->file_path, .cursor = params->line_vaddrs[line_idx] ? txt_pt(0, 0) : txt_pt(line_num, 1), - .vaddr = params->line_vaddrs[line_idx]); + .vaddr = params->line_vaddrs[line_idx], + .expr = s("")); } } } @@ -1905,9 +1958,9 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe UI_Box *text_container_box = &ui_nil_box; UI_Parent(top_container_box) UI_Focus(UI_FocusKind_Off) { - ui_set_next_hover_cursor(ctrlified ? OS_Cursor_HandPoint : OS_Cursor_IBar); + ui_set_next_hover_cursor(ctrlified ? WM_Cursor_HandPoint : WM_Cursor_IBar); ui_set_next_pref_height(ui_px(params->line_height_px*(dim_1s64(params->line_num_range)+1), 1.f)); - text_container_box = ui_build_box_from_string(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), str8_lit("text_container")); + text_container_box = ui_build_box_from_string(UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable), s("text_container")); } ////////////////////////////// @@ -1972,177 +2025,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe mouse_line_rng = txt_rng(txt_pt(mouse_pt.line, 1), txt_pt(mouse_pt.line, 1+(line_range.max-line_range.min))); } - ////////////////////////////// - //- rjf: determine starting offset for each at line, at which we can begin placing extra info to the right - // - F32 *line_extras_off = push_array(scratch.arena, F32, dim_1s64(params->line_num_range)+1); - { - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num <= params->line_num_range.max; - line_num += 1, line_idx += 1) - { - F32 line_text_dim = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, params->line_text[line_idx]).x + params->line_num_width_px + params->catchall_margin_width_px + params->priority_margin_width_px; - line_extras_off[line_idx] = Max(line_text_dim, params->font_size*30); - } - } - - ////////////////////////////// - //- rjf: produce per-line extra annotation containers - // - UI_Box **line_extras_boxes = push_array(scratch.arena, UI_Box *, dim_1s64(params->line_num_range)+1); - UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) UI_Parent(text_container_box) UI_Focus(UI_FocusKind_Off) - { - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num < params->line_num_range.max; - line_num += 1, line_idx += 1) - { - ui_set_next_fixed_x(line_extras_off[line_idx]); - ui_set_next_fixed_y(line_idx*params->line_height_px); - line_extras_boxes[line_idx] = ui_build_box_from_stringf(0, "###extras_%I64x", line_idx); - } - } - - ////////////////////////////// - //- rjf: build watch pin annotations - // - UI_Focus(UI_FocusKind_Off) - { - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num < params->line_num_range.max; - line_num += 1, line_idx += 1) - { - CFG_NodePtrList immediate_pins = {0}; - String8 line_text = params->line_text[line_idx]; - for(U64 off = 0, next_off = line_text.size; - off < line_text.size; - off = next_off) - { - // rjf: find next opener - String8 markup_opener = str8_lit("raddbg_pin("); - next_off = str8_find_needle(line_text, off, markup_opener, 0); - next_off += markup_opener.size; - - // rjf: extract contents of markup - String8 contents = {0}; - S32 nest = 1; - for(U64 off2 = next_off; off2 < line_text.size; off2 += 1) - { - if(line_text.str[off2] == '(') - { - nest += 1; - } - else if(line_text.str[off2] == ')') - { - nest -= 1; - if(nest == 0) - { - contents = str8_substr(line_text, r1u64(next_off, off2)); - break; - } - } - } - - // rjf: gather arguments - String8List args = {0}; - { - S32 nest = 0; - U64 arg_start_off = 0; - for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1) - { - if(nest == 0 && (contents_off == contents.size || contents.str[contents_off] == ',')) - { - String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off)); - arg = str8_skip_chop_whitespace(arg); - str8_list_push(scratch.arena, &args, arg); - arg_start_off = contents_off+1; - } - if(contents_off < contents.size) - { - if(contents.str[contents_off] == '(') - { - nest += 1; - } - else if(contents.str[contents_off] == ')') - { - nest -= 1; - } - } - } - } - - // rjf: extract fixed arguments - String8 expr_string = {0}; - if(args.first != 0) - { - expr_string = args.first->string; - } - - // rjf: build immediate pin for this markup - if(expr_string.size != 0) - { - CFG_Node *immediate_root = rd_immediate_cfg_from_keyf("markup_pin_%I64x_%I64x", line_num, off); - CFG_Node *pin = cfg_node_child_from_string_or_alloc(rd_state->cfg, immediate_root, str8_lit("watch_pin")); - CFG_Node *expr = cfg_node_child_from_string_or_alloc(rd_state->cfg, pin, str8_lit("expression")); - cfg_node_new_replace(rd_state->cfg, expr, expr_string); - cfg_node_ptr_list_push(scratch.arena, &immediate_pins, pin); - } - } - CFG_NodePtrList pin_lists[] = - { - params->line_pins[line_idx], - immediate_pins, - }; - E_ParentKey(e_key_zero()) for EachElement(list_idx, pin_lists) - { - CFG_NodePtrList pins = pin_lists[list_idx]; - if(pins.count != 0) UI_Parent(line_extras_boxes[line_idx]) - RD_Font(RD_FontSlot_Code) - UI_FontSize(params->font_size) - UI_PrefHeight(ui_px(params->line_height_px, 1.f)) - { - for(CFG_NodePtrNode *n = pins.first; n != 0; n = n->next) - { - CFG_Node *pin = n->v; - String8 pin_expr = rd_expr_from_cfg(pin); - E_Eval eval = e_eval_from_string(pin_expr); - String8 eval_string = {0}; - if(!e_type_key_match(e_type_key_zero(), eval.irtree.type_key)) - { - EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules, .radix = 10}; - eval_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, params->font, params->font_size, params->font_size*60.f, eval); - } - ui_spacer(ui_em(1.5f, 1.f)); - ui_set_next_pref_width(ui_children_sum(1)); - UI_Key pin_box_key = ui_key_from_stringf(ui_key_zero(), "###pin_%p", pin); - UI_Box *pin_box = ui_build_box_from_key(UI_BoxFlag_AnimatePos| - UI_BoxFlag_Clickable*!!(params->flags & RD_CodeSliceFlag_Clickable)| - UI_BoxFlag_DrawHotEffects| - UI_BoxFlag_DrawBorder, pin_box_key); - UI_Parent(pin_box) UI_PrefWidth(ui_text_dim(10, 1)) - { - Vec4F32 pin_color = rd_color_from_cfg(pin); - if(pin_color.w == 0) - { - pin_color = ui_color_from_name(str8_lit("text")); - } - Vec4F32 default_code_color = ui_color_from_name(str8_lit("code_default")); - rd_code_label(0.8f, 1, default_code_color, pin_expr); - rd_code_label(0.6f, 1, default_code_color, eval_string); - } - UI_Signal pin_sig = ui_signal_from_box(pin_box); - if(ui_key_match(pin_box_key, ui_hot_key())) - { - rd_set_hover_eval(v2f32(pin_box->rect.x0, pin_box->rect.y1-2.f), pin_expr); - } - } - } - } - } - } - ////////////////////////////// //- rjf: interact with margin box & text box // @@ -2213,11 +2095,21 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe vaddr = params->line_vaddrs[cursor->line - params->line_num_range.min]; lines = params->line_infos[cursor->line - params->line_num_range.min]; } + String8 commands_expr; + if(vaddr != 0) + { + commands_expr = txt_pt_match(*cursor, *mark) ? s("query:disasm_pt_commands") : s("query:disasm_range_commands"); + } + else + { + commands_expr = txt_pt_match(*cursor, *mark) ? s("query:text_pt_commands") : s("query:text_range_commands"); + } rd_cmd(RD_CmdKind_FocusPanel); rd_cmd(RD_CmdKind_PushQuery, - .expr = txt_pt_match(*cursor, *mark) ? str8_lit("query:text_pt_commands") : str8_lit("query:text_range_commands"), + .expr = commands_expr, .do_implicit_root = 1, .do_lister = 1, + .activate_with_single_click = 1, .ui_key = ui_get_selected_state()->root->key, .off_px = ui_mouse(), .cursor = *cursor, @@ -2251,23 +2143,23 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe .cursor = line_vaddr == 0 ? txt_pt(line_num, 1) : txt_pt(0, 0), .vaddr = line_vaddr); } - if(drop_thread != &ctrl_entity_nil) + if(drop_thread != &d_entity_nil) { S64 line_num = mouse_pt.line; U64 line_idx = line_num - params->line_num_range.min; U64 line_vaddr = params->line_vaddrs[line_idx]; - CTRL_Entity *thread = drop_thread; + D_Entity *thread = drop_thread; U64 new_rip_vaddr = line_vaddr; if(params->line_vaddrs[line_idx] == 0) { D_LineList *lines = ¶ms->line_infos[line_idx]; for(D_LineNode *n = lines->first; n != 0; n = n->next) { - CTRL_EntityList modules = ctrl_modules_from_dbgi_key(scratch.arena, &d_state->ctrl_entity_store->ctx, n->v.dbgi_key); - CTRL_Entity *module = ctrl_module_from_thread_candidates(&d_state->ctrl_entity_store->ctx, thread, &modules); - if(module != &ctrl_entity_nil) + D_EntityList modules = d_modules_from_dbgi_key(scratch.arena, n->v.dbgi_key); + D_Entity *module = d_module_from_thread_candidates(thread, &modules); + if(module != &d_entity_nil) { - new_rip_vaddr = ctrl_vaddr_from_voff(module, n->v.voff_range.min); + new_rip_vaddr = d_vaddr_from_voff(module, n->v.voff_range.min); break; } } @@ -2289,84 +2181,6 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe cursor_scope_node = txt_scope_node_from_info_pt(params->text_info, rd_regs()->cursor); } - ////////////////////////////// - //- rjf: produce fancy strings for each line - // - DR_FStrList *lines_fstrs = push_array(scratch.arena, DR_FStrList, dim_1s64(params->line_num_range)+1); - { - DR_FStrParams fstr_params = - { - params->font, - rd_raster_flags_from_slot(RD_FontSlot_Code), - rd_rgba_from_code_color_slot(RD_CodeColorSlot_CodeDefault), - params->font_size, - }; - U64 line_idx = 0; - for(S64 line_num = params->line_num_range.min; - line_num <= params->line_num_range.max; - line_num += 1, line_idx += 1) - { - String8 line_string = params->line_text[line_idx]; - Rng1U64 line_range = params->line_ranges[line_idx]; - TXT_TokenArray *line_tokens = ¶ms->line_tokens[line_idx]; - DR_FStrList fstrs = {0}; - if(line_tokens->count == 0) - { - dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, line_string); - } - else - { - TXT_Token *line_tokens_first = line_tokens->v; - TXT_Token *line_tokens_opl = line_tokens->v + line_tokens->count; - for(TXT_Token *token = line_tokens_first; token < line_tokens_opl; token += 1) - { - // rjf: token -> token string - String8 token_string = {0}; - { - Rng1U64 token_range = r1u64(0, line_string.size); - if(token->range.min > line_range.min) - { - token_range.min += token->range.min-line_range.min; - } - if(token->range.max < line_range.max) - { - token_range.max = token->range.max-line_range.min; - } - token_string = str8_substr(line_string, token_range); - } - - // rjf: token -> token color - RD_CodeColorSlot token_color_slot = rd_code_color_slot_from_txt_token_kind(token->kind); - RD_CodeColorSlot lookup_color_slot = rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string); - Vec4F32 token_color = rd_rgba_from_code_color_slot(token_color_slot); - if(lookup_color_slot != RD_CodeColorSlot_CodeDefault) - { - Vec4F32 lookup_color = rd_rgba_from_code_color_slot(lookup_color_slot); - F32 lookup_color_mix_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%S_lookup", token_string), 1.f); - token_color = mix_4f32(token_color, lookup_color, lookup_color_mix_t); - } - - // rjf: scope endpoints enclosing cursor -> highlight - for(TXT_ScopeNode *scope_n = cursor_scope_node; - scope_n != &txt_scope_node_nil; - scope_n = txt_scope_node_from_info_num(params->text_info, scope_n->parent_num)) - { - if(params->text_info->tokens.v[scope_n->token_idx_range.min].range.min == token->range.min || - params->text_info->tokens.v[scope_n->token_idx_range.max].range.min == token->range.min) - { - token_color = highlight_color; - break; - } - } - - // rjf: push fancy string - dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, token_string, .color = token_color); - } - } - lines_fstrs[line_idx] = fstrs; - } - } - ////////////////////////////// //- rjf: equip cursor scope rendering info // @@ -2458,11 +2272,316 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe dr_rect(scope_rect, scope_line_color, params->font_size*0.1f, scope_line_thickness, 1.f); } } + + //- rjf: scope ending annotations + if(do_scope_end_annotations && txt_range.min.line != txt_range.max.line && contains_1s64(params->line_num_range, txt_range.max.line)) UI_TagF("weak") + { + String8 opener_line = str8_skip_chop_whitespace(txt_string_from_info_data_line_num(params->text_info, params->text_data, txt_range.min.line)); + String8 scope_title_string = opener_line; + if(str8_match(opener_line, s("{"), 0) || + str8_match(opener_line, s("["), 0) || + str8_match(opener_line, s("("), 0)) + { + scope_title_string = str8_skip_chop_whitespace(txt_string_from_info_data_line_num(params->text_info, params->text_data, txt_range.min.line-1)); + } + if(!str8_match(scope_title_string, s("{"), 0) && + !str8_match(scope_title_string, s("["), 0) && + !str8_match(scope_title_string, s("("), 0)) + { + F32 t = ui_anim(ui_key_from_stringf(text_container_box->key, "###scope_end_annotation_%I64x_%I64x", scope_n->token_idx_range.min, scope_n->token_idx_range.max), 1.f, .rate = rd_state->catchall_animation_rate); + String8 closer_line = txt_string_from_info_data_line_num(params->text_info, params->text_data, txt_range.max.line); + F32 closer_line_px = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, closer_line).x; + Vec4F32 color = ui_color_from_name(s("text")); + color.w *= 0.5f*t; + dr_text(params->font, params->font_size * 0.85f, 0, 0, ui_top_text_raster_flags(), + v2f32(text_base_pos.x + closer_line_px + ui_top_font_size()*0.5f*t, + text_base_pos.y + (txt_range.max.line - params->line_num_range.min) * params->line_height_px + params->line_height_px*0.7f), + color, scope_title_string); + } + } } } ui_box_equip_draw_bucket(text_container_box, bucket); } + ////////////////////////////// + //- rjf: produce fancy strings for each line + // + DR_FStrList *lines_fstrs = push_array(scratch.arena, DR_FStrList, dim_1s64(params->line_num_range)+1); + { + DR_FStrParams fstr_params = + { + params->font, + rd_raster_flags_from_slot(RD_FontSlot_Code), + rd_rgba_from_code_color_slot(RD_CodeColorSlot_CodeDefault), + params->font_size, + }; + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num <= params->line_num_range.max; + line_num += 1, line_idx += 1) + { + String8 line_string = params->line_text[line_idx]; + Rng1U64 line_range = params->line_ranges[line_idx]; + TXT_TokenArray *line_tokens = ¶ms->line_tokens[line_idx]; + DR_FStrList fstrs = {0}; + if(line_tokens->count == 0) + { + dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, line_string); + } + else + { + TXT_Token *line_tokens_first = line_tokens->v; + TXT_Token *line_tokens_opl = line_tokens->v + line_tokens->count; + B32 preceded_by_dot = 0; + for(TXT_Token *token = line_tokens_first; token < line_tokens_opl; token += 1) + { + // rjf: token -> token string + String8 token_string = {0}; + { + Rng1U64 token_range = r1u64(0, line_string.size); + if(token->range.min > line_range.min) + { + token_range.min += token->range.min-line_range.min; + } + if(token->range.max < line_range.max) + { + token_range.max = token->range.max-line_range.min; + } + token_string = str8_substr(line_string, token_range); + } + + // rjf: token -> token color + RD_CodeColorSlot token_color_slot = rd_code_color_slot_from_txt_token_kind(token->kind); + RD_CodeColorSlot lookup_color_slot = preceded_by_dot ? token_color_slot : rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string, 0, 0); + Vec4F32 token_color = rd_rgba_from_code_color_slot(token_color_slot); + if(lookup_color_slot != RD_CodeColorSlot_CodeDefault) + { + Vec4F32 lookup_color = rd_rgba_from_code_color_slot(lookup_color_slot); + F32 lookup_color_mix_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%S_lookup", token_string), 1.f); + token_color = mix_4f32(token_color, lookup_color, lookup_color_mix_t); + } + + // rjf: scope endpoints enclosing cursor -> highlight + for(TXT_ScopeNode *scope_n = cursor_scope_node; + scope_n != &txt_scope_node_nil; + scope_n = txt_scope_node_from_info_num(params->text_info, scope_n->parent_num)) + { + if(params->text_info->tokens.v[scope_n->token_idx_range.min].range.min == token->range.min || + params->text_info->tokens.v[scope_n->token_idx_range.max].range.min == token->range.min) + { + token_color = highlight_color; + break; + } + } + + // rjf: push fancy string + dr_fstrs_push_new(scratch.arena, &fstrs, &fstr_params, token_string, .color = token_color); + + // rjf: . -> mark next token as preceded by dot + preceded_by_dot = (token->kind == TXT_TokenKind_Symbol && str8_match(token_string, s("."), 0)); + } + } + lines_fstrs[line_idx] = fstrs; + } + } + + ////////////////////////////// + //- rjf: determine starting offset for each at line, at which we can begin placing extra info to the right + // + F32 *line_extras_off = push_array(scratch.arena, F32, dim_1s64(params->line_num_range)+1); + { + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num <= params->line_num_range.max; + line_num += 1, line_idx += 1) + { + F32 line_text_dim = fnt_dim_from_tag_size_string(params->font, params->font_size, 0, params->tab_size, params->line_text[line_idx]).x + params->line_num_width_px + params->catchall_margin_width_px + params->priority_margin_width_px; + line_extras_off[line_idx] = Max(line_text_dim, params->font_size*30); + } + } + + ////////////////////////////// + //- rjf: produce per-line extra annotation containers + // + UI_Box **line_extras_boxes = push_array(scratch.arena, UI_Box *, dim_1s64(params->line_num_range)+1); + UI_PrefWidth(ui_children_sum(1)) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) UI_Parent(text_container_box) UI_Focus(UI_FocusKind_Off) + { + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num < params->line_num_range.max; + line_num += 1, line_idx += 1) + { + ui_set_next_fixed_x(line_extras_off[line_idx]); + ui_set_next_fixed_y(line_idx*params->line_height_px); + line_extras_boxes[line_idx] = ui_build_box_from_stringf(0, "###extras_%I64x", line_idx); + } + } + + ////////////////////////////// + //- rjf: build watch pin / auto annotations + // + UI_Focus(UI_FocusKind_Off) + { + String8Array auto_exprs = {0}; + if(do_autos) + { + auto_exprs = rd_gather_auto_exprs(scratch.arena); + } + U64 line_idx = 0; + for(S64 line_num = params->line_num_range.min; + line_num < params->line_num_range.max; + line_num += 1, line_idx += 1) + { + //- rjf: gather pins from autos + CFG_NodePtrList immediate_pins = {0}; + if(do_autos) + { + D_EntityList line_ips = params->line_ips[line_idx]; + if(line_ips.count > 0 && d_handle_match(line_ips.first->v->handle, rd_regs()->thread)) + { + for EachIndex(idx, auto_exprs.count) + { + String8 auto_expr = auto_exprs.v[idx]; + CFG_Node *immediate_root = rd_immediate_cfg_from_keyf("auto_pin_%I64x_%S", ui_active_seed_key().u64[0], auto_expr); + CFG_Node *pin = cfg_node_child_from_string_or_alloc(rd_state->cfg, immediate_root, s("watch_pin")); + CFG_Node *expr = cfg_node_child_from_string_or_alloc(rd_state->cfg, pin, s("expression")); + cfg_node_new_replace(rd_state->cfg, expr, auto_expr); + cfg_node_ptr_list_push(scratch.arena, &immediate_pins, pin); + } + } + } + + //- rjf: gather pins from source + String8 line_text = params->line_text[line_idx]; + for(U64 off = 0, next_off = line_text.size; + off < line_text.size; + off = next_off) + { + // rjf: find next opener + String8 markup_opener = s("raddbg_pin("); + next_off = str8_find_needle(line_text, off, markup_opener, 0); + next_off += markup_opener.size; + + // rjf: extract contents of markup + String8 contents = {0}; + S32 nest = 1; + for(U64 off2 = next_off; off2 < line_text.size; off2 += 1) + { + if(line_text.str[off2] == '(') + { + nest += 1; + } + else if(line_text.str[off2] == ')') + { + nest -= 1; + if(nest == 0) + { + contents = str8_substr(line_text, r1u64(next_off, off2)); + break; + } + } + } + + // rjf: gather arguments + String8List args = {0}; + { + S32 nest = 0; + U64 arg_start_off = 0; + for(U64 contents_off = 0; contents_off <= contents.size; contents_off += 1) + { + if(nest == 0 && (contents_off == contents.size || contents.str[contents_off] == ',')) + { + String8 arg = str8_substr(contents, r1u64(arg_start_off, contents_off)); + arg = str8_skip_chop_whitespace(arg); + str8_list_push(scratch.arena, &args, arg); + arg_start_off = contents_off+1; + } + if(contents_off < contents.size) + { + if(contents.str[contents_off] == '(') + { + nest += 1; + } + else if(contents.str[contents_off] == ')') + { + nest -= 1; + } + } + } + } + + // rjf: extract fixed arguments + String8 expr_string = {0}; + if(args.first != 0) + { + expr_string = args.first->string; + } + + // rjf: build immediate pin for this markup + if(expr_string.size != 0) + { + CFG_Node *immediate_root = rd_immediate_cfg_from_keyf("markup_pin_%I64x_%I64x", line_num, off); + CFG_Node *pin = cfg_node_child_from_string_or_alloc(rd_state->cfg, immediate_root, s("watch_pin")); + CFG_Node *expr = cfg_node_child_from_string_or_alloc(rd_state->cfg, pin, s("expression")); + cfg_node_new_replace(rd_state->cfg, expr, expr_string); + cfg_node_ptr_list_push(scratch.arena, &immediate_pins, pin); + } + } + + //- rjf: build pin ui + CFG_NodePtrList pin_lists[] = + { + params->line_pins[line_idx], + immediate_pins, + }; + E_ParentKey(e_key_zero()) for EachElement(list_idx, pin_lists) + { + CFG_NodePtrList pins = pin_lists[list_idx]; + if(pins.count != 0) UI_Parent(line_extras_boxes[line_idx]) + RD_Font(RD_FontSlot_Code) + UI_FontSize(params->font_size) + UI_PrefHeight(ui_px(params->line_height_px, 1.f)) + { + F32 pin_value_string_max_width_px = params->font_size * (80.f / pins.count); + for(CFG_NodePtrNode *n = pins.first; n != 0; n = n->next) + { + CFG_Node *pin = n->v; + String8 pin_expr = rd_expr_from_cfg(pin); + E_Eval eval = e_eval_from_string(pin_expr); + String8 eval_string = {0}; + if(!e_type_key_match(e_type_key_zero(), eval.irtree.type_key)) + { + EV_StringParams string_params = {.flags = EV_StringFlag_ReadOnlyDisplayRules|rd_state->eval_viz_base_string_flags, .radix = 10}; + eval_string = rd_value_string_from_eval(scratch.arena, str8_zero(), &string_params, params->font, params->font_size, pin_value_string_max_width_px, eval); + } + ui_spacer(ui_em(1.5f, 1.f)); + ui_set_next_pref_width(ui_children_sum(1)); + UI_Key pin_box_key = ui_key_from_stringf(ui_key_zero(), "###pin_%p", pin); + UI_Box *pin_box = ui_build_box_from_key(0, pin_box_key); + F32 pin_t = ui_anim(pin_box_key, 1.f, .rate = rd_state->catchall_animation_rate); + UI_Parent(pin_box) UI_PrefWidth(ui_text_dim(1, 1)) + { + Vec4F32 pin_color = rd_color_from_cfg(pin); + if(pin_color.w == 0) + { + pin_color = ui_color_from_name(s("text")); + } + Vec4F32 default_code_color = ui_color_from_name(s("code_default")); + rd_code_label(pin_t*0.6f, 0, default_code_color, pin_expr); + rd_code_label(pin_t*0.6f, 0, default_code_color, str8_lit("=")); + rd_code_label(pin_t*0.6f, 0, default_code_color, eval_string); + } + if(ui_hovering(text_container_sig) && contains_2f32(pin_box->rect, ui_mouse())) + { + rd_set_hover_eval(v2f32(pin_box->rect.x0, pin_box->rect.y1-2.f), pin_expr); + } + } + } + } + } + } + ////////////////////////////// //- rjf: build exception annotations // @@ -2473,13 +2592,13 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe line_num < params->line_num_range.max; line_num += 1, line_idx += 1) { - CTRL_EntityList threads = params->line_ips[line_idx]; - for(CTRL_EntityNode *n = threads.first; n != 0; n = n->next) + D_EntityList threads = params->line_ips[line_idx]; + for(D_EntityNode *n = threads.first; n != 0; n = n->next) { - CTRL_Entity *thread = n->v; + D_Entity *thread = n->v; if(thread == stopper_thread && - (stop_event.cause == CTRL_EventCause_InterruptedByException || - stop_event.cause == CTRL_EventCause_InterruptedByTrap)) + (stop_event.cause == D_EventCause_InterruptedByException || + stop_event.cause == D_EventCause_InterruptedByTrap)) { DR_FStrList explanation_fstrs = rd_stop_explanation_fstrs_from_ctrl_event(scratch.arena, &stop_event); UI_Parent(line_extras_boxes[line_idx]) UI_PrefWidth(ui_text_dim(10, 1)) UI_TextAlignment(UI_TextAlign_Center) UI_PrefHeight(ui_px(params->line_height_px, 1.f)) @@ -2545,7 +2664,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe if(lines->first != 0 && (params->line_vaddrs[line_slice_idx] != 0 || lines->first->v.pt.line == mouse_pt.line)) { RD_RegsScope(.process = selected_thread_process->handle, - .vaddr_range = ctrl_vaddr_range_from_voff_range(selected_thread_module, lines->first->v.voff_range), + .vaddr_range = d_vaddr_range_from_voff_range(selected_thread_module, lines->first->v.voff_range), .module = selected_thread_module->handle, .dbgi_key = lines->first->v.dbgi_key, .voff_range = lines->first->v.voff_range) @@ -2558,11 +2677,11 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe ////////////////////////////// //- rjf: hover eval // - if(!ui_dragging(text_container_sig) && text_container_sig.event_flags == 0 && mouse_expr.size != 0) + if(!ui_dragging(text_container_sig) && text_container_sig.event_flags == 0 && mouse_expr.size != 0) E_ParentKey(e_key_zero()) { E_Eval eval = e_eval_from_string(mouse_expr); B32 eval_implicit_hover = (eval.irtree.mode != E_Mode_Null && - eval.space.kind == CTRL_EvalSpaceKind_Entity); + eval.space.kind == D_EvalSpaceKind_Entity); if(eval.msgs.max_kind == E_MsgKind_Null && (eval_implicit_hover || mouse_expr_is_explicit)) { U64 line_vaddr = 0; @@ -2612,16 +2731,16 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { TxtRngColorPairNode *n = push_array(scratch.arena, TxtRngColorPairNode, 1); n->rng = txt_rng(*cursor, *mark); - n->color = ui_color_from_name(str8_lit("selection")); + n->color = ui_color_from_name(s("selection")); SLLQueuePush(first_txt_rng_color_pair, last_txt_rng_color_pair, n); } // rjf: push for ctrlified mouse expr - if(ctrlified && !txt_pt_match(result.mouse_expr_rng.max, result.mouse_expr_rng.min)) UI_Tag(str8_lit("pop")) + if(ctrlified && !txt_pt_match(result.mouse_expr_rng.max, result.mouse_expr_rng.min)) UI_Tag(s("pop")) { TxtRngColorPairNode *n = push_array(scratch.arena, TxtRngColorPairNode, 1); n->rng = result.mouse_expr_rng; - n->color = ui_color_from_name(str8_lit("background")); + n->color = ui_color_from_name(s("background")); n->color.w *= 0.2f; SLLQueuePush(first_txt_rng_color_pair, last_txt_rng_color_pair, n); } @@ -2646,8 +2765,8 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe Rng1U64 hover_voff_range = hover_regs->voff_range; if(hover_voff_range.min == 0 && hover_voff_range.max == 0) { - CTRL_Entity *module = ctrl_entity_from_handle(&d_state->ctrl_entity_store->ctx, hover_regs->module); - hover_voff_range = ctrl_voff_range_from_vaddr_range(module, hover_regs->vaddr_range); + D_Entity *module = d_entity_from_handle(hover_regs->module); + hover_voff_range = d_voff_range_from_vaddr_range(module, hover_regs->vaddr_range); } ui_set_next_pref_height(ui_px(params->line_height_px*(dim_1s64(params->line_num_range)+1), 1.f)); UI_WidthFill @@ -2768,7 +2887,10 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe { S64 column = cursor->column; Vec2F32 advance = fnt_dim_from_tag_size_string(line_box->font, line_box->font_size, 0, params->tab_size, str8_prefix(line_string, column-1)); + F32 cursor_y = line_box->rect.y0-params->font_size*0.125f; + F32 cursor_y__animated = ui_anim(ui_key_from_stringf(text_container_box->key, "cursor_y_px"), cursor_y); F32 cursor_off_pixels = advance.x; + F32 cursor_off_pixels__animated = ui_anim(ui_key_from_stringf(text_container_box->key, "cursor_off_px"), cursor_off_pixels); F32 cursor_thickness = ClampBot(1.f, floor_f32(line_box->font_size/10.f)); Rng2F32 cursor_rect = { @@ -2777,12 +2899,39 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe ui_box_text_position(line_box).x+cursor_off_pixels+cursor_thickness, line_box->rect.y1+params->font_size*0.125f, }; - Vec4F32 cursor_color = ui_color_from_name(str8_lit("cursor")); + Rng1F32 trail_off_span = r1f32(cursor_off_pixels__animated, cursor_off_pixels); + Rng2F32 trail_rect = + { + ui_box_text_position(line_box).x+trail_off_span.min, + line_box->rect.y0-params->font_size*0.125f, + ui_box_text_position(line_box).x+trail_off_span.max, + line_box->rect.y1+params->font_size*0.125f, + }; + Vec4F32 cursor_color = ui_color_from_name(s("cursor")); + Vec4F32 trail_color = cursor_color; if(!is_focused) { cursor_color.w *= 0.5f; } + trail_color.w *= 0.25f; dr_rect(cursor_rect, cursor_color, 1.f, 0, 0.f); + if(do_cursor_trail && !ui_key_match(ui_active_key(UI_MouseButtonKind_Left), text_container_box->key)) + { + R_Rect2DInst *trail_inst = dr_rect(trail_rect, trail_color, ui_top_font_size()*0.2f, 0, 1.f); + trail_inst->shear = cursor_y - cursor_y__animated; + if(cursor_off_pixels > cursor_off_pixels__animated) + { + trail_inst->dst = shift_2f32(trail_inst->dst, v2f32(0, -trail_inst->shear)); + trail_inst->colors[Corner_00].w *= 0.1f; + trail_inst->colors[Corner_01].w *= 0.1f; + } + else + { + trail_inst->shear *= -1; + trail_inst->colors[Corner_10].w *= 0.1f; + trail_inst->colors[Corner_11].w *= 0.1f; + } + } } // rjf: extra rendering for lines with line-info that match the hovered @@ -3005,7 +3154,7 @@ rd_do_txt_controls(TXT_TextInfo *info, String8 data, U64 line_count_per_page, Tx if(evt->flags & UI_EventFlag_Copy) { String8 text = txt_string_from_info_data_txt_rng(info, data, txt_rng(*cursor, *mark)); - os_set_clipboard_text(text); + wm_set_clipboard_text(text); taken = 1; } @@ -3151,11 +3300,11 @@ rd_fstrs_from_code_string(Arena *arena, F32 alpha, B32 indirection_size_change, TXT_Token *tokens_opl = tokens.v+tokens.count; S32 indirection_counter = 0; indirection_size_change = 0; + B32 preceded_by_dot = 0; for(TXT_Token *token = tokens.v; token < tokens_opl; token += 1) { RD_CodeColorSlot token_color_slot = rd_code_color_slot_from_txt_token_kind(token->kind); Vec4F32 token_color_rgba = rd_rgba_from_code_color_slot(token_color_slot); - token_color_rgba.w *= alpha; String8 token_string = str8_substr(string, token->range); if(str8_match(token_string, str8_lit("{"), 0)) { indirection_counter += 1; } if(str8_match(token_string, str8_lit("["), 0)) { indirection_counter += 1; } @@ -3164,6 +3313,7 @@ rd_fstrs_from_code_string(Arena *arena, F32 alpha, B32 indirection_size_change, { default: { + token_color_rgba.w *= alpha; DR_FStr fstr = { token_string, @@ -3179,13 +3329,19 @@ rd_fstrs_from_code_string(Arena *arena, F32 alpha, B32 indirection_size_change, case TXT_TokenKind_Identifier: case TXT_TokenKind_Keyword: { - RD_CodeColorSlot lookup_theme_color_slot = rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string); + RD_CodeColorSlot lookup_theme_color_slot = RD_CodeColorSlot_CodeDefault; + B32 is_called = (token+1 < tokens_opl && token[1].kind == TXT_TokenKind_Symbol && str8_match(str8_substr(string, token[1].range), str8_lit("("), 0)); + if(!preceded_by_dot) + { + lookup_theme_color_slot = rd_code_color_slot_from_txt_token_kind_lookup_string(token->kind, token_string, 1, is_called); + } if(lookup_theme_color_slot != RD_CodeColorSlot_CodeDefault) { Vec4F32 lookup_color = rd_rgba_from_code_color_slot(lookup_theme_color_slot); F32 lookup_color_mix_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "%S_lookup", token_string), 1.f); token_color_rgba = mix_4f32(token_color_rgba, lookup_color, lookup_color_mix_t); } + token_color_rgba.w *= alpha; DR_FStr fstr = { token_string, @@ -3200,6 +3356,7 @@ rd_fstrs_from_code_string(Arena *arena, F32 alpha, B32 indirection_size_change, }break; case TXT_TokenKind_Numeric: { + token_color_rgba.w *= alpha; Vec4F32 token_color_rgba_alt = rd_rgba_from_code_color_slot(RD_CodeColorSlot_CodeNumericAltDigitGroup); token_color_rgba_alt.w *= alpha; F32 font_size = ui_top_font_size() * (1.f - !!indirection_size_change*(indirection_counter/10.f)); @@ -3307,6 +3464,14 @@ rd_fstrs_from_code_string(Arena *arena, F32 alpha, B32 indirection_size_change, }break; } + if(token->kind == TXT_TokenKind_Symbol && str8_match(token_string, str8_lit("."), 0)) + { + preceded_by_dot = 1; + } + else + { + preceded_by_dot = 0; + } if(str8_match(token_string, str8_lit("}"), 0)) { indirection_counter -= 1; } if(str8_match(token_string, str8_lit("]"), 0)) { indirection_counter -= 1; } indirection_counter = ClampBot(0, indirection_counter); @@ -3335,6 +3500,7 @@ rd_cell(RD_CellParams *params, String8 string) { ProfBeginFunction(); Temp scratch = scratch_begin(0, 0); + B32 do_cursor_trail = rd_setting_b32_from_name(str8_lit("cursor_trail")); ////////////////////////////// //- rjf: unpack visual metrics @@ -3388,7 +3554,7 @@ rd_cell(RD_CellParams *params, String8 string) // if(is_focus_active || is_focus_active_disabled) { - ui_set_next_hover_cursor(OS_Cursor_IBar); + ui_set_next_hover_cursor(WM_Cursor_IBar); } UI_Box *box = ui_build_box_from_key(UI_BoxFlag_MouseClickable| (!!build_lhs_name_desc*UI_BoxFlag_DisableFocusBorder)| @@ -3616,6 +3782,11 @@ rd_cell(RD_CellParams *params, String8 string) UI_BoxFlag_Clickable, "%S##revert", rd_icon_kind_text_table[RD_IconKind_Undo]); UI_Signal sig = ui_signal_from_box(revert_box); + if(ui_hovering(sig)) UI_Tooltip RD_Font(RD_FontSlot_Main) + { + ui_state->tooltip_anchor_key = revert_box->key; + ui_label(str8_lit("Revert To Default")); + } if(ui_pressed(sig) && params->revert_out) { params->revert_out[0] = 1; @@ -3743,7 +3914,7 @@ rd_cell(RD_CellParams *params, String8 string) { F32 extratoggler_padding_px = floor_f32(ui_top_font_size()*0.35f); F32 toggler_size_px = ceil_f32(height_px - extratoggler_padding_px*2.f) - 1.f; - ui_set_next_hover_cursor(OS_Cursor_LeftRight); + ui_set_next_hover_cursor(WM_Cursor_LeftRight); UI_Box *slider_box = ui_build_box_from_stringf(UI_BoxFlag_DrawHotEffects|UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_Clickable, "slider"); UI_Parent(slider_box) UI_TagF("pop") { @@ -3795,7 +3966,7 @@ rd_cell(RD_CellParams *params, String8 string) { UI_PrefWidth(ui_children_sum(1)) UI_Row UI_Padding(ui_em(1.f, 1.f)) { - rd_cmd_binding_buttons(params->bindings_name, params->search_needle, 1); + rd_cmd_binding_buttons(params->bindings_name, params->search_needle, max_U64, RD_CmdBindingButtonFlag_AddNew); } } } @@ -3819,7 +3990,7 @@ rd_cell(RD_CellParams *params, String8 string) { if(evt->flags & UI_EventFlag_Copy) { - os_set_clipboard_text(params->pre_edit_value); + wm_set_clipboard_text(params->pre_edit_value); } if(evt->flags & UI_EventFlag_Delete) { @@ -3939,7 +4110,7 @@ rd_cell(RD_CellParams *params, String8 string) // rjf: perform copy if(op.flags & UI_TxtOpFlag_Copy) { - os_set_clipboard_text(op.copy); + wm_set_clipboard_text(op.copy); } // rjf: commit op's changed cursor & mark to caller-provided state @@ -4112,6 +4283,7 @@ rd_cell(RD_CellParams *params, String8 string) draw_data->edited_string = push_str8_copy(ui_build_arena(), edit_string); draw_data->cursor = params->cursor[0]; draw_data->mark = params->mark[0]; + draw_data->trail = do_cursor_trail && !ui_dragging(sig); ui_box_equip_custom_draw(text_box, ui_line_edit_draw, draw_data); Vec2F32 text2mouse = sub_2f32(ui_mouse(), ui_box_text_position(text_box)); FNT_Tag font = ui_top_font(); diff --git a/src/raddbg/raddbg_widgets.h b/src/raddbg/raddbg_widgets.h index 66055279..6811c1f0 100644 --- a/src/raddbg/raddbg_widgets.h +++ b/src/raddbg/raddbg_widgets.h @@ -102,7 +102,7 @@ struct RD_CodeSliceParams Rng1U64 *line_ranges; TXT_TokenArray *line_tokens; CFG_NodePtrList *line_bps; - CTRL_EntityList *line_ips; + D_EntityList *line_ips; CFG_NodePtrList *line_pins; U64 *line_vaddrs; D_LineList *line_infos; @@ -140,9 +140,9 @@ struct RD_CodeSliceSignal //~ rjf: UI Widgets: Fancy Title Strings internal DR_FStrList rd_title_fstrs_from_cfg(Arena *arena, CFG_Node *cfg, B32 include_extras); -internal DR_FStrList rd_title_fstrs_from_ctrl_entity(Arena *arena, CTRL_Entity *entity, B32 include_extras); +internal DR_FStrList rd_title_fstrs_from_ctrl_entity(Arena *arena, D_Entity *entity, B32 include_extras); internal DR_FStrList rd_title_fstrs_from_code_name(Arena *arena, String8 code_name); -internal DR_FStrList rd_title_fstrs_from_file_path(Arena *arena, String8 file_path); +internal DR_FStrList rd_title_fstrs_from_file_path(Arena *arena, String8 file_path, B32 include_folder); //////////////////////////////// //~ rjf: UI Widgets: Loading Overlay @@ -152,7 +152,13 @@ internal void rd_loading_overlay(Rng2F32 rect, F32 loading_t, U64 progress_v, U6 //////////////////////////////// //~ rjf: UI Widgets: Fancy Buttons -internal void rd_cmd_binding_buttons(String8 name, String8 filter, B32 add_new); +typedef U32 RD_CmdBindingButtonFlags; +enum +{ + RD_CmdBindingButtonFlag_AddNew = (1<<0), + RD_CmdBindingButtonFlag_NoEdit = (1<<1), +}; +internal void rd_cmd_binding_buttons(String8 name, String8 filter, U64 limit, RD_CmdBindingButtonFlags flags); internal UI_Signal rd_menu_bar_button(String8 string); internal UI_Signal rd_cmd_spec_button(String8 name); internal void rd_cmd_list_menu_buttons(U64 count, String8 *cmd_names, U32 *fastpath_codepoints); diff --git a/src/raddbg/tests/raddbg_tests.c b/src/raddbg/tests/raddbg_tests.c new file mode 100644 index 00000000..231eb0a2 --- /dev/null +++ b/src/raddbg/tests/raddbg_tests.c @@ -0,0 +1,1588 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Debugger Testing IPC Driving Helpers + +internal String8 +rd_test__raddbg_path(Arena *arena, CmdLine *cmdline) +{ + String8 raddbg_exe_name = cmd_line_has_flag(cmdline, s("gui")) ? s("raddbg") : s("raddbg_non_graphical"); + String8 raddbg_exe_filename = str8f(arena, "%S/%S%S", get_process_info()->binary_path, raddbg_exe_name, program_ext_postfix_from_os(OperatingSystem_CURRENT, 0)); + return raddbg_exe_filename; +} + +internal Process +rd_test__open_debugger(TestCtx *ctx, String8 target_cmd_line) +{ + Temp scratch = scratch_begin(0, 0); + String8 raddbg_path = rd_test__raddbg_path(scratch.arena, ctx->cmdline); + String8 user_file_path = str8f(scratch.arena, "%S/test.raddbg_user", ctx->artifacts_path); + delete_file_at_path(user_file_path); + Process process = launch_cmd_linef("%S --gen_crash_dump --no_focus_on_stop --user:%S --logs:logs %S", raddbg_path, user_file_path, target_cmd_line); + scratch_end(scratch); + return process; +} + +internal void +rd_test__close_debugger(Process process) +{ + process_kill(process); +} + +internal String8 +rd_test__ipc_cmd(Arena *arena, TestCtx *ctx, U64 debugger_pid, String8 string) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 raddbg_path = rd_test__raddbg_path(scratch.arena, ctx->cmdline); + String8 stdout_path = str8f(scratch.arena, "%S/ipc_output", ctx->artifacts_path); + Process process = launch_cmd_linef("%S --ipc --pid:%I64u %S > %S", raddbg_path, debugger_pid, string, stdout_path); + process_join(process, max_U64, 0); + String8 response = data_from_file_path(arena, stdout_path); + delete_file_at_path(stdout_path); + scratch_end(scratch); + return response; +} + +//////////////////////////////// +//~ rjf: Exemplar Test Helpers + +internal void +rd_test__exemplar_test_finish(Arena *arena, TestCtx *ctx, String8List test_log_strings) +{ + Temp scratch = scratch_begin(&arena, 1); + + // rjf: combine all current test log output; write to 'current' data + String8 test_log_current = str8_list_join(scratch.arena, &test_log_strings, 0); + String8 test_log_current_path = str8f(scratch.arena, "%S/current", ctx->artifacts_path); + write_data_to_file_path(test_log_current_path, test_log_current); + + // rjf: load test log exemplar + make_directory(ctx->exemplars_path); + String8 exemplar_path = str8f(scratch.arena, "%S/exemplar_%S", ctx->exemplars_path, lower_from_str8(scratch.arena, string_from_operating_system(OperatingSystem_CURRENT))); + String8 exemplar_data = data_from_file_path(scratch.arena, exemplar_path); + String8List exemplar_data_lines = str8_split(scratch.arena, exemplar_data, (U8 *)"\n", 1, StringSplitFlag_KeepEmpties); + String8List exemplar_data_lines_sanitized = {0}; + for EachNode(n, String8Node, exemplar_data_lines.first) + { + String8 line_trimmed = n->string; + if(line_trimmed.size != 0 && line_trimmed.str[line_trimmed.size-1] == '\r') + { + line_trimmed.size -= 1; + } + str8_list_push(scratch.arena, &exemplar_data_lines_sanitized, line_trimmed); + } + exemplar_data = str8_list_join(scratch.arena, &exemplar_data_lines_sanitized, &(StringJoin){.sep = s("\n")}); + + // rjf: if exemplar data is empty -> just save our output as the new exemplar + if(exemplar_data.size == 0) + { + copy_file_path(exemplar_path, test_log_current_path); + } + + // rjf: if we have exemplar data, then we need to check that it matches + if(exemplar_data.size != 0) + { + B32 current_matches_exemplar = str8_match(str8_skip_chop_whitespace(test_log_current), str8_skip_chop_whitespace(exemplar_data), 0); + if(!current_matches_exemplar) + { + String8 diff_cmd = str8f(scratch.arena, "diff %S %S", + path_normalized_from_string(scratch.arena, exemplar_path), + path_normalized_from_string(scratch.arena, test_log_current_path)); + test_outf("Current log does not match exemplar; run `%S`\n", diff_cmd); + } + TestCheck(current_matches_exemplar); + } + + scratch_end(scratch); +} + +//////////////////////////////// +//~ rjf: Test Helpers + +internal void +rd_test__stepping_regressions(Arena *arena, TestCtx *ctx, String8 target_binary, String8 start_symbol, B32 step_over_on_even) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List test_log_strings = {0}; + + // rjf: get binary path + String8 binary_path = test_input_exe_path(arena, ctx, str8f(scratch.arena, "%S/%S", target_binary, target_binary)); + B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0); + + // rjf: if binary does not exist -> skip this test, + if(!binary_exists_locally) + { + TestSkip(); + } + + // rjf: otherwise run + else + { + // rjf: start debugger + Process debugger = rd_test__open_debugger(ctx, binary_path); + U64 debugger_pid = pid_from_process(debugger); + + // rjf: step & gather info + { + U64 last_stop_count = max_U64; + B32 ready_for_next_operation = 0; + String8 next_step_cmd = {0}; + for(U64 cmd_idx = 0;;) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + // rjf: need next operation -> do op + if(ready_for_next_operation) + { + ready_for_next_operation = 0; + String8 step_cmd = s("step_into"); + if(cmd_idx == 0) + { + step_cmd = str8f(scratch2.arena, "run_to_name %S", start_symbol); + } + else if((cmd_idx % 2 == 0 && step_over_on_even) || (cmd_idx % 2 == 1 && !step_over_on_even)) + { + step_cmd = s("step_over"); + } + if(next_step_cmd.size != 0) + { + step_cmd = next_step_cmd; + MemoryZeroStruct(&next_step_cmd); + } + String8 step_response = rd_test__ipc_cmd(scratch2.arena, ctx, debugger_pid, step_cmd); + (void)step_response; + cmd_idx += 1; + } + + // rjf: query state, parse + String8 state_response = rd_test__ipc_cmd(scratch2.arena, ctx, debugger_pid, s("state")); + MD_Node *state_response_tree = md_tree_from_string(scratch2.arena, state_response); + MD_Node *state = md_child_from_string(state_response_tree, s("state"), 0); + + // rjf: we are only ready for next step command when the stop count has changed + { + U64 stop_count = 0; + try_u64_from_str8_c_rules(md_child_from_string(state, s("stop_count"), 0)->first->string, &stop_count); + if(stop_count != last_stop_count) + { + ready_for_next_operation = 1; + last_stop_count = stop_count; + } + } + + // rjf: if we are ready for the next operation, then accumulate deterministic log info + if(ready_for_next_operation) + { + MD_Node *ip_module = md_child_from_string(state, s("ip_module"), 0); + String8 ip_module_name = ip_module->first->string; + if(str8_match(str8_chop_last_dot(ip_module_name), target_binary, 0)) + { + MD_Node *lines = md_child_from_string(state, s("lines"), 0); + MD_Node *ip_voff = md_child_from_string(state, s("ip_voff"), 0); + MD_Node *ip_voff_symbol = md_child_from_string(state, s("ip_voff_symbol"), 0); + String8 lines_dump = md_string_from_tree(scratch.arena, lines); + String8 ip_voff_dump = md_string_from_tree(scratch.arena, ip_voff); + String8 ip_voff_symbol_dump = md_string_from_tree(scratch.arena, ip_voff_symbol); + str8_list_push(scratch.arena, &test_log_strings, lines_dump); + str8_list_push(scratch.arena, &test_log_strings, ip_voff_dump); + str8_list_push(scratch.arena, &test_log_strings, ip_voff_symbol_dump); + } + } + + // rjf: are we without line info? -> step out + if(ready_for_next_operation) + { + U64 ip_vaddr = 0; + try_u64_from_str8_c_rules(md_child_from_string(state, s("ip"), 0)->first->string, &ip_vaddr); + if(ip_vaddr != 0 && md_child_from_string(state, s("lines"), 0)->first == &md_nil_node) + { + next_step_cmd = s("step_out"); + } + } + + scratch_end(scratch2); + if(cmd_idx >= 100) + { + break; + } + } + } + + // rjf: end exemplar test + rd_test__exemplar_test_finish(arena, ctx, test_log_strings); + + // rjf: close debugger + rd_test__close_debugger(debugger); + } + + scratch_end(scratch); +} + +internal void +rd_test__eval_regressions(Arena *arena, TestCtx *ctx, String8 target_binary, String8 target_line) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List test_log_strings = {0}; + + // rjf: get binary path + String8 binary_path = test_input_exe_path(arena, ctx, str8f(scratch.arena, "%S/%S", target_binary, target_binary)); + B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0); + + // rjf: if binary does not exist -> skip this test, + if(!binary_exists_locally) + { + TestSkip(); + } + + // rjf: otherwise run + else + { + // rjf: start debugger + Process debugger = rd_test__open_debugger(ctx, binary_path); + U64 debugger_pid = pid_from_process(debugger); + + // rjf: query state + U64 initial_stop_count = 0; + { + String8 response = rd_test__ipc_cmd(scratch.arena, ctx, debugger_pid, s("state")); + MD_Node *state = md_child_from_string(md_tree_from_string(scratch.arena, response), s("state"), 0); + MD_Node *stop_count = md_child_from_string(state, s("stop_count"), 0); + try_u64_from_str8_c_rules(stop_count->first->string, &initial_stop_count); + } + + // rjf: run to target line + rd_test__ipc_cmd(scratch.arena, ctx, debugger_pid, str8f(scratch.arena, "run_to_line %S", target_line)); + + // rjf: wait for stop, collect locals + String8List locals = {0}; + for(;;) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + String8 response = rd_test__ipc_cmd(scratch.arena, ctx, debugger_pid, s("state")); + MD_Node *state = md_child_from_string(md_tree_from_string(scratch.arena, response), s("state"), 0); + MD_Node *stop_count = md_child_from_string(state, s("stop_count"), 0); + U64 new_stop_count = 0; + try_u64_from_str8_c_rules(stop_count->first->string, &new_stop_count); + scratch_end(scratch2); + if(new_stop_count != initial_stop_count) + { + MD_Node *locals_root = md_child_from_string(state, s("locals"), 0); + for MD_EachNode(c, locals_root->first) + { + str8_list_push(scratch.arena, &locals, c->string); + } + break; + } + } + + // rjf: evaluate all locals + String8List eval_cmd_strings = {0}; + for EachNode(n, String8Node, locals.first) + { + str8_list_pushf(scratch.arena, &eval_cmd_strings, "eval %S", n->string); + } + StringJoin join = {.sep = s(" ; ")}; + String8 eval_msg = str8_list_join(scratch.arena, &eval_cmd_strings, &join); + String8 response = rd_test__ipc_cmd(scratch.arena, ctx, debugger_pid, eval_msg); + MD_Node *response_tree = md_tree_from_string(scratch.arena, response); + for MD_EachNode(n, response_tree->first) + { + if(str8_match(n->string, s("eval"), 0)) + { + String8 eval_dump = md_string_from_tree(scratch.arena, n); + str8_list_push(scratch.arena, &test_log_strings, eval_dump); + } + } + + // rjf: end exemplar test + rd_test__exemplar_test_finish(arena, ctx, test_log_strings); + + // rjf: close debugger + rd_test__close_debugger(debugger); + } + + scratch_end(scratch); +} + +//////////////////////////////// +//~ rjf: Tests + +Test(mule_main_9ff1e58f_step_regressions_0) +{ + rd_test__stepping_regressions(arena, ctx, s("mule_main_9ff1e58f"), s("mule_main"), 0); +} + +Test(mule_main_9ff1e58f_step_regressions_1) +{ + rd_test__stepping_regressions(arena, ctx, s("mule_main_9ff1e58f"), s("mule_main"), 1); +} + +Test(mule_main_9ff1e58f_control_flow_step_regressions) +{ + rd_test__stepping_regressions(arena, ctx, s("mule_main_9ff1e58f"), s("control_flow_stepping_tests"), 0); +} + +SkippedTest(mule_main_9ff1e58f_type_coverage_eval_regressions) +{ + // TODO(rjf): see @eval_regressions + rd_test__eval_regressions(arena, ctx, s("mule_main_9ff1e58f"), s("C:/devel/raddebugger/src/mule/mule_main.cpp:723")); +} + +#if 0 +//////////////////////////////// +// IPC Controller + +typedef struct +{ + B32 running; + U64 run_gen; + U64 ip; + Arch arch; + U64 vaddr_min; + U64 vaddr_max; + U64 ip_vaddr; + U64 sp_base; + U64 tls_root; + U64 tls_index; + U64 tls_offset; + U64 timestamp; + U64 exception_code; + U64 bp_flags; + String8 string; + OperatingSystem target_os; + U64 tls_model; + String8 stop_cause; +} T_DbgState; + +typedef struct +{ + String8 file_path; + TxtPt pt; + Rng1U64 voff_range; +} T_DbgLine; + +typedef struct +{ + U64 count; + T_DbgLine *v; +} T_DbgLineArray; + +typedef struct +{ + String8 expr; + String8 value; + String8 type; + String8 error; +} T_Eval; + +//////////////////////////////// +// Dbg Script + +#define T_DbgScriptCmdKind_XList \ +X(Breakpoint, "bp") \ +X(ClearBreakpoints, "bp_clear") \ +X(Halt, "halt") \ +X(Run, "run") \ +X(RunToLine, "run_to_line") \ +X(StepOver, "step_over") \ +X(StepInto, "step_into") \ +X(StepOut, "step_out") \ +X(StepOverInst, "step_over_inst") \ +X(StepIntoInst, "step_over_inst") \ +X(StepOverLine, "step_over_line") \ +X(StepIntoLine, "step_into_line") \ +X(KillAll, "kll_all") \ +X(At, "at") \ +X(Eval, "eval") + +typedef enum +{ + T_DbgScriptCmdKind_Null, +#define X(n,...) T_DbgScriptCmdKind_##n, + T_DbgScriptCmdKind_XList +#undef X + T_DbgScriptCmdKind_Count +} T_DbgScriptCmdKind; + +#define T_DbgScriptDirectiveKind_XList \ +X(Compile, "compile") \ +X(Link, "link") \ +X(Launch, "launch") \ +X(Skip, "skip") + +typedef enum +{ + T_DbgScriptDirectiveKind_Null, +#define X(q,w) T_DbgScriptDirectiveKind_##q, + T_DbgScriptDirectiveKind_XList +#undef X + T_DbgScriptDirectiveKind_Count, +} T_DbgScriptDirectiveKind; + +typedef struct T_DbgScriptFile +{ + struct T_DbgScriptFile *next; + String8 path; + String8 source; + TxtPt pt; +} T_DbgScriptFile; + +typedef struct +{ + U64 count; + T_DbgScriptFile *first; + T_DbgScriptFile *last; +} T_DbgScriptFileList; + +typedef struct T_DbgScriptCmd +{ + struct T_DbgScriptCmd *next; + T_DbgScriptCmdKind kind; + TxtPt pt; + S64 at_delta; +} T_DbgScriptCmd; + +typedef struct T_DbgScriptProgram +{ + TxtPt pt; + U64 order; + OperatingSystem os; + T_DbgScriptFile *file; + U64 count; + T_DbgScriptCmd *first; + T_DbgScriptCmd *last; + struct T_DbgScriptProgram *next; +} T_DbgScriptProgram; + +typedef struct +{ + U64 count; + T_DbgScriptProgram *first; + T_DbgScriptProgram *last; +} T_DbgScriptProgramList; + +typedef struct T_DbgScriptDirective +{ + struct T_DbgScriptDirective *next; + T_DbgScriptDirectiveKind kind; + TxtPt pt; + String8 args; + union { + struct { + Compiler cc; + } compile; + }; +} T_DbgScriptDirective; + +typedef struct +{ + U64 count; + T_DbgScriptDirective *first; + T_DbgScriptDirective *last; +} T_DbgScriptDirectiveList; + +typedef struct +{ + String8 file_path; + T_DbgScriptDirectiveList directives[OperatingSystem_COUNT][T_DbgScriptDirectiveKind_Count]; + T_DbgScriptFileList files; + U64 program_count; + T_DbgScriptProgram **programs; + B32 skip; +} T_DbgScript; + + +//////////////////////////////// +// IPC Controller + +// error helper +internal void t_errorf_md(String8 file_name, String8 source, MD_Node *n, char *fmt, ...); + +// reply parse helpers +internal B32 t_ipc_parse_string(MD_Node *node, String8 child_name, String8 *out); +internal B32 t_ipc_parse_u32(MD_Node *node, String8 child_name, U32 *out); +internal B32 t_ipc_parse_int_(MD_Node *node, String8 child_name, U64 out_size, void *out); +internal B32 t_ipc_parse_b32(MD_Node *node, String8 child_name, B32 *out); +#define t_ipc_parse_int(n, c, ptr) t_ipc_parse_int_(n, c, sizeof(*ptr), ptr) + +// debugger commands +internal B32 t_dbg_send_cmd(String8 cmd, U64 timeout_us, Arena *reply_arena, MD_ParseResult *reply_out); +internal B32 t_dbg_send_cmdf(U64 timeout_us, Arena *reply_arena, MD_ParseResult *reply_out, char *fmt, ...); +internal T_DbgState * t_dbg_state(Arena *arena, U64 timeout_us); +internal B32 t_dbg_src_line(Arena *arena, U64 vaddr, T_DbgLineArray *lines_out, U64 timeout_us); +internal String8 t_dbg_value_from_expr(Arena *arena, String8 expr); +internal String8 t_dbg_value_from_exprf(Arena *arena, char *fmt, ...); +internal B32 t_dbg_send_cmd_and_wait_stop(String8 cmd, U64 timeout_us); +internal B32 t_dbg_ping(U64 timeout_us); +internal B32 t_dbg_bp_add_line(String8 file, U64 line); +internal B32 t_dbg_bp_add_func(String8 func_name); +internal B32 t_dbg_bp_add_addr(U64 addr); +internal B32 t_dbg_launch(String8 cmdline, U64 timeout_us); +internal B32 t_dbg_eval(Arena *arena, String8 expr, T_Eval *eval_out); + +//////////////////////////////// +// Dbg Script + +internal String8 t_string_from_dbg_script_cmd_kind(T_DbgScriptCmdKind v); +internal T_DbgScriptCmdKind t_dbg_script_cmd_kind_from_string(String8 cmd); +internal B32 t_dbg_parse_script(Arena *arena, String8 file_path, String8 source, T_DbgScript *script_out); +internal B32 t_dbg_script_invoke(T_DbgScript *script, U64 timeout_us); +internal void t_dbg_register_script_tests(Arena *arena, String8 folder_path); + + +#define T_Dbg_DefaultTimeout TIMEOUT_SEC(5) + +extern B32 g_stop_on_first_fail_or_crash; +extern B32 g_build_only; + +//////////////////////////////// + +internal void +t_errorf_md(String8 file_name, String8 source, MD_Node *n, char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 result = push_str8fv(scratch.arena, fmt, args); + TxtPt pt = mg_txt_pt_from_string_off(source, n->src_offset); + t_errorf("ERROR: %S:%llu%llu: %S\n", file_name, (unsigned long long)pt.line, (unsigned long long)pt.column, result); + va_end(args); + scratch_end(scratch); +} + +//////////////////////////////// +// IPC Controller + +internal U32 g_dbg_pid; + +internal B32 +t_ipc_parse_string(MD_Node *node, String8 child_name, String8 *out) +{ + MD_Node *child = md_child_from_string(node, child_name, 0); + if (!md_node_is_nil(child) && !md_node_is_nil(child->first)) + { + if (out) { *out = child->first->string; } + return 1; + } + return 0; +} + +internal B32 +t_ipc_parse_u32(MD_Node *node, String8 child_name, U32 *out) +{ + String8 value = {0}; + if (t_ipc_parse_string(node, child_name, &value)) + { + U64 v64 = 0; + if (try_u64_from_str8_c_rules(value, &v64)) + { + if (out) { *out = safe_cast_u32(v64); } + return 1; + } + } + return 0; +} + +internal B32 +t_ipc_parse_int_(MD_Node *node, String8 child_name, U64 out_size, void *out) +{ + String8 value = {0}; + if (t_ipc_parse_string(node, child_name, &value)) + { + U64 v64 = 0; + if (try_u64_from_str8_c_rules(value, &v64)) + { + if (out) { MemoryCopy(out, &v64, out_size); } + return 1; + } + } + return 0; +} + +internal B32 +t_ipc_parse_b32(MD_Node *node, String8 child_name, B32 *out) +{ + B32 is_ok = 0; + String8 s = {0}; + U64 value = 0; + if (t_ipc_parse_string(node, child_name, &s)) + { + if (str8_matchi(s, str8_lit("true"))) { value = 1; is_ok = 1; } + else if (str8_matchi(s, str8_lit("false"))) { value = 0; is_ok = 1; } + else + { + is_ok = try_u64_from_str8_c_rules(s, &value); + value = !!value; + } + } + if (is_ok && out) { *out = value; } + return is_ok; +} + +internal B32 +t_dbg_send_cmd(String8 cmd, U64 timeout_us, Arena *reply_arena, MD_ParseResult *reply_out) +{ + Temp scratch = scratch_begin(&reply_arena, 1); + B32 is_sent = 0; + + // send command + String8 cmdline = str8f(scratch.arena, "--gen_crash_dump --ipc --pid:%u %S", g_dbg_pid, cmd); + if (t_invoke(t_raddbg_path(), cmdline, timeout_us) == 0) { goto exit; } + + B32 has_reply = 1; + + char *no_reply_cmds[] = { + "add_breakpoint", + "add_function_breakpoint", + "add_address_breakpoint", + "clear_breakpoints", + }; + for EachElement(i, no_reply_cmds) { + if (str8_match_wildcard(cmd, str8f(scratch.arena, "%s*", no_reply_cmds[i]), 0)) { + has_reply = 0; + break; + } + } + + if (has_reply) { + // parse reply + Arena *a = reply_arena ? reply_arena : scratch.arena; + String8 reply_text = str8_copy(a, g_output); + + t_infof("IPC-Reply: \"%S\"\n", reply_text); + MD_ParseResult reply = md_parse_from_text(a, str8_lit("ipc_reply"), reply_text); + + // validate reply + if (reply.msgs.worst_message_kind >= MD_MsgKind_Error) { goto exit; } + if (md_node_is_nil(reply.root)) { goto exit; } + + if (reply_arena && reply_out) { *reply_out = reply; } + } + + is_sent = 1; + exit:; + scratch_end(scratch); + return is_sent; +} + +internal B32 +t_dbg_send_cmdf(U64 timeout_us, Arena *reply_arena, MD_ParseResult *reply_out, char *fmt, ...) +{ + Temp scratch = scratch_begin(&reply_arena, 1); + va_list args; + va_start(args, fmt); + String8 cmd = str8fv(scratch.arena, fmt, args); + B32 is_ok = t_dbg_send_cmd(cmd, timeout_us, reply_arena, reply_out); + va_end(args); + scratch_end(scratch); + return is_ok; +} + +internal T_DbgState * +t_dbg_state(Arena *arena, U64 timeout_us) +{ + Temp scratch = scratch_begin(&arena, 1); + + T_DbgState *result = 0; + + // send status request + MD_ParseResult reply = {0}; + if ( ! t_dbg_send_cmd(str8_lit("state"), timeout_us, arena, &reply)) { goto exit; } + + // parse reply + MD_Node *state_md = md_child_from_string(reply.root, str8_lit("state"), 0); + MD_Node *stop_event_md = md_child_from_string(state_md, str8_lit("stop_event"), 0); + MD_Node *threads_md = md_child_from_string(state_md, str8_lit("threads"), 0); + MD_Node *modules_md = md_child_from_string(state_md, str8_lit("modules"), 0); + T_DbgState v = {0}; + if (!t_ipc_parse_int(state_md, str8_lit("running"), &v.running)) { t_infof("INFO: 'state' is missing 'running'\n"); goto exit; } + if (!t_ipc_parse_int(state_md, str8_lit("run_gen"), &v.run_gen)) { t_infof("INFO: 'state' is missing 'run_gen'\n"); goto exit; } + if (!t_ipc_parse_int(state_md, str8_lit("ip"), &v.ip)) { t_infof("INFO: 'state' is missing 'ip'\n"); goto exit; } + + result = push_array(arena, T_DbgState, 1); + *result = v; + exit:; + return result; +} + +internal B32 +t_dbg_src_line(Arena *arena, U64 vaddr, T_DbgLineArray *lines_out, U64 timeout_us) +{ + Temp scratch = scratch_begin(&arena, 1); + + B32 is_ok = 0; + + // send line map request + MD_ParseResult reply = {0}; + if(!t_dbg_send_cmdf(timeout_us, arena, &reply, "line_from_vaddr 0x%llx", vaddr)) { goto exit; } + + // parse reply + MD_Node *lines_md = md_child_from_string(reply.root, str8_lit("lines"), 0); + + typedef struct Node { struct Node *next; T_DbgLine v; } Node; + Node *first_line = 0, *last_line = 0; + U64 line_count = 0; + + for MD_EachNode(n, lines_md->first) { + T_DbgLine line = {0}; + if ( ! t_ipc_parse_string(n, str8_lit("file_path"), &line.file_path)) { t_infof("INFO: 'lines' is missing 'file_path'\n"); goto exit; } + if ( ! t_ipc_parse_int (n, str8_lit("line_num"), &line.pt.line)) { t_infof("INFO: 'lines' is missing 'line_num'\n"); goto exit; } + if ( ! t_ipc_parse_int (n, str8_lit("column_num"), &line.pt.column)) { t_infof("INFO: 'lines' is missing 'column_num'\n"); goto exit; } + if ( ! t_ipc_parse_int (n, str8_lit("voff_range_min"), &line.voff_range.min)) { t_infof("INFO: 'lines' is missing 'voff_range_min'\n"); goto exit; } + if ( ! t_ipc_parse_int (n, str8_lit("voff_range_max"), &line.voff_range.max)) { t_infof("INFO: 'lines' is missing 'voff_range_max'\n"); goto exit; } + + Node *n = push_array(scratch.arena, Node, 1); + n->v = line; + SLLQueuePush(first_line, last_line, n); + line_count += 1; + } + + if (lines_out && line_count > 0) { + lines_out->count = 0; + lines_out->v = push_array(arena, T_DbgLine, line_count); + for EachNode(n, Node, first_line) { + lines_out->v[lines_out->count++] = n->v; + } + } + + is_ok = 1; + exit:; + scratch_end(scratch); + return is_ok; +} + +internal String8 +t_dbg_value_from_expr(Arena *arena, String8 expr) +{ + T_Eval eval = {0}; + if ( ! t_dbg_eval(arena, expr, &eval)) { AssertAlways("failed on eval"); } + return eval.value; +} + +internal String8 +t_dbg_value_from_exprf(Arena *arena, char *fmt, ...) +{ + Temp scratch = scratch_begin(&arena, 1); + va_list args; + va_start(args, fmt); + String8 expr = push_str8fv(scratch.arena, fmt, args); + String8 result = t_dbg_value_from_expr(arena, expr); + va_end(args); + scratch_end(scratch); + return result; +} + +internal B32 +t_dbg_send_cmd_and_wait_stop(String8 cmd, U64 timeout_us) +{ + Temp scratch = scratch_begin(0,0); + B32 is_stopped = 0; + + // snapshot state + T_DbgState *state_before = t_dbg_state(scratch.arena, max_U64); + if (state_before == 0) { + t_errorf("ERROR: failed to snapshot state\n"); + goto exit; + } + + // send command + if (t_dbg_send_cmd(cmd, max_U64, 0, 0) == 0) { + t_errorf("ERROR: failed to send command \"%S\"", cmd); + goto exit; + } + + // wait for debugger to stop + U64 t = ENDT_US(timeout_us); + for (;;) { + // query debugger state + T_DbgState *state = t_dbg_state(scratch.arena, t); + if (state == 0) { + t_errorf("ERROR: failed to fetch debugger state\n"); + goto exit; + } + + // did state change? -> break + if (!state->running && state->run_gen != state_before->run_gen) { + is_stopped = 1; + break; + } + + // "solve" the wait problem + if (now_time_us() >= t) { + t_errorf("ERROR: command \"%S\" hit timeout\n", cmd); + goto exit; + } + sleep_ms(10); + } + + //--- state --------------------- + if (0 && is_stopped) { + T_DbgState *state = t_dbg_state(scratch.arena, T_Dbg_DefaultTimeout); + + String8 process_id = str8_skip(str8_chop(t_dbg_value_from_exprf(scratch.arena, "query:current_process.id"), 2), 2); + String8 process_label = str8_chop(str8_skip(t_dbg_value_from_exprf(scratch.arena, "query:current_process.label"), 2), 2); + String8 process_active = t_dbg_value_from_exprf(scratch.arena, "query:current_process.active"); + String8 thread_id = t_dbg_value_from_exprf(scratch.arena, "query:current_thread.id"); + String8 thread_active = t_dbg_value_from_exprf(scratch.arena, "query:current_thread.active"); + String8 thread_label = str8_skip(str8_chop(t_dbg_value_from_exprf(scratch.arena, "query:current_thread.label"), 2), 2); + String8 ip = t_dbg_value_from_exprf(scratch.arena, "hex(reg:rip)"); + String8 sp = t_dbg_value_from_exprf(scratch.arena, "hex(reg:rsp)"); + + T_DbgState *last_stop = t_dbg_state(scratch.arena, T_Dbg_DefaultTimeout); + if ( ! last_stop) { + t_errorf("ERROR: debugger state fetch failed\n"); + goto exit; + } + + T_DbgLineArray lines = {0}; + if ( ! t_dbg_src_line(scratch.arena, last_stop->ip_vaddr, &lines, T_Dbg_DefaultTimeout)) { + t_errorf("ERROR: failed t map IP(0x%llx) to a source location\n", last_stop->ip_vaddr); + goto exit; + } + + t_infof("------------------------------------------------------------------------------------------------------------------------\n"); + t_infof(" Process: %.*s [%.*s] (Active: %.*s)\n", str8_varg(process_id), str8_varg(process_label), str8_varg(process_active)); + t_infof(" Thread: %.*s [%.*s] (Active: %.*s)\n", str8_varg(thread_id), str8_varg(thread_label), str8_varg(thread_active)); + t_infof(" IP: %.*s\n", str8_varg(ip)); + t_infof(" SP: %.*s\n", str8_varg(sp)); + t_infof(" Run Gen: %llu\n", (unsigned long long)state->run_gen); + t_infof(" Stop Cause: \"%.*s\"\n", str8_varg(last_stop->stop_cause)); + for EachIndex(i, lines.count) { + t_infof(" {\n"); + t_infof(" File Path: %.*s\n", str8_varg(lines.v[i].file_path)); + t_infof(" Line: %lld\n", (long long)lines.v[i].pt.line); + t_infof(" Column: %lld\n", (long long)lines.v[i].pt.column); + t_infof(" }\n"); + } + fflush(stdout); + } + //-------------------------------- + + exit:; + scratch_end(scratch); + return is_stopped; +} + +internal B32 +t_dbg_ping(U64 timeout_us) +{ + Temp scratch = scratch_begin(0,0); + T_DbgState *state = t_dbg_state(scratch.arena, timeout_us); + scratch_end(scratch); + return state != 0; +} + +internal B32 +t_dbg_bp_add_line(String8 file, U64 line) +{ + return t_dbg_send_cmdf(0,0,0, "add_breakpoint \"%S\":%llu", file, line); +} + +internal B32 +t_dbg_bp_add_func(String8 func_name) +{ + return t_dbg_send_cmdf(0,0,0, "add_function_breakpoint %S", func_name); +} + +internal B32 +t_dbg_bp_add_addr(U64 addr) +{ + return t_dbg_send_cmdf(0,0,0, "add_address_breakpoint 0x%llx", addr); +} + +internal B32 +t_dbg_launch(String8 cmdline, U64 timeout_us) +{ + Temp scratch = scratch_begin(0, 0); + B32 dbg_ready = 0; + + String8 user_path = t_make_file_path(scratch.arena, str8_lit("test.raddbg_user")); + String8 project_path = t_make_file_path(scratch.arena, str8_lit("test.raddbg_project")); + cmdline = str8f(scratch.arena, "%S --gen_crash_dump --user:\"%S\" --project:\"%S\" --logs:\"%S\" %S", t_raddbg_path(), user_path, project_path, g_wdir, cmdline); + + // launch debugger + ProcessLaunchParams launch_opts = { + .path = g_wdir, + .inherit_env = 1, + .consoleless = 1, + .cmd_line = lnk_arg_list_parse_windows_rules(scratch.arena, cmdline), + }; + Process dbg_handle = process_launch(&launch_opts); + if (process_match(dbg_handle, process_zero())) { + t_errorf("ERROR: failed to launch debugger with this CMDL: %S\n", cmdline); + goto exit; + } + +#if OS_WINDOWS + // cache debugger PID + g_dbg_pid = GetProcessId((HANDLE)dbg_handle.u64[0]); +#elif OS_LINUX + g_dbg_pid = (int)dbg_handle.u64[0]; +#else +# error NotImplemented +#endif + + // close debugger handle + process_detach(dbg_handle); + + // now wait for debugger to init + U64 t = ENDT_US(timeout_us); + for (;;) { + // time the ping + dbg_ready = t_dbg_ping(t); + if (dbg_ready) { break; } + + // "solve" the wait problem + if (now_time_us() >= t) { + t_errorf("ERROR: failed to launch debugger, because operation timed out\n"); + break; + } + sleep_ms(10); + } + + exit:; + scratch_end(scratch); + return dbg_ready; +} + +internal B32 +t_dbg_eval(Arena *arena, String8 expr, T_Eval *eval_out) +{ + Temp scratch = scratch_begin(&arena, 1); + + MD_ParseResult reply = {0}; + String8 cmd = str8f(scratch.arena, "eval %llu %S", /* value char cap: */ 10000, expr); + B32 is_ok = t_dbg_send_cmd(cmd, T_Dbg_DefaultTimeout, arena, &reply); + + T_Eval e = {0}; + if ( ! t_ipc_parse_string(reply.root, str8_lit("expr"), &e.expr)) { t_errorf_md(str8_lit("IPC"), str8_zero(), reply.root, "ERROR: failed to parse reply member: expr\n"); goto exit; } + if ( ! t_ipc_parse_string(reply.root, str8_lit("value"), &e.value)) { t_errorf_md(str8_lit("IPC"), str8_zero(), reply.root, "ERROR: failed to parse reply member: value\n"); goto exit; } + if ( ! t_ipc_parse_string(reply.root, str8_lit("type"), &e.type)) { t_errorf_md(str8_lit("IPC"), str8_zero(), reply.root, "ERROR: failed to parse reply member: type\n"); goto exit; } + if ( ! t_ipc_parse_string(reply.root, str8_lit("error"), &e.error)) { t_errorf_md(str8_lit("IPC"), str8_zero(), reply.root, "ERROR: failed to parse reply member: error\n"); goto exit; } + if (eval_out) { *eval_out = e; } + + exit:; + scratch_end(scratch); + return is_ok; +} + +//////////////////////////////// +// Dbg Script + +force_inline int +t_dbg_script_program_compar(const void *raw_a, const void *raw_b) +{ + T_DbgScriptProgram * const *a = raw_a, * const *b = raw_b; + return u64_compar(&(*a)->order, &(*b)->order); +} + +force_inline int +t_dbg_script_program_is_before(void *raw_a, void *raw_b) +{ + return t_dbg_script_program_compar(raw_a, raw_b) < 0; +} + +internal String8 +t_string_from_dbg_script_cmd_kind(T_DbgScriptCmdKind v) +{ + switch (v) { +#define X(n,v) case T_DbgScriptCmdKind_##n: return str8_lit(v); + T_DbgScriptCmdKind_XList +#undef X + case T_DbgScriptCmdKind_Null: return str8_zero(); + default: InvalidPath; break; + } + return str8_zero(); +} + +internal T_DbgScriptCmdKind +t_dbg_script_cmd_kind_from_string(String8 cmd) +{ + for EachIndex(i, T_DbgScriptCmdKind_Count) { + if (str8_matchi(t_string_from_dbg_script_cmd_kind(i), cmd)) { return i; } + } + return T_DbgScriptCmdKind_Null; +} + +internal B32 +t_dbg_parse_script(Arena *arena, String8 file_path, String8 source, T_DbgScript *script_out) +{ + Temp scratch = scratch_begin(&arena, 1); + + B32 is_ok = 0; + + T_DbgScript script = { .file_path = push_str8_copy(arena, file_path) }; + + // parse out mdesk out of the comments + MD_TokenizeResult source_tokens = md_tokenize_from_text(scratch.arena, source); + MD_TokenChunkList annot_chunks = {0}; + for EachIndex(token_idx, source_tokens.tokens.count) { + MD_Token source_token = source_tokens.tokens.v[token_idx]; + + // skip non-comment tokens + if (~source_token.flags & MD_TokenFlag_Comment) { continue; } + + // read token string + String8 source_token_string = str8_substr(source, source_token.range); + + if (str8_match_wildcard(source_token_string, str8_lit("*///*"), 0)) { + + // drop comment prefix + String8 raw_annots = str8_skip(str8_skip_chop_whitespace(source_token_string), 3); + + // parse annotations + MD_TokenizeResult annot_parse = md_tokenize_from_text(scratch.arena, raw_annots); + + for EachIndex(i, annot_parse.tokens.count) { + MD_Token annot_token = annot_parse.tokens.v[i]; + + // adjust token range so they point back into the source file + annot_token.range = shift_1u64(annot_token.range, (U64)(raw_annots.str - source.str)); + + // append annotation token + md_token_chunk_list_push(scratch.arena, &annot_chunks, 4096, annot_token); + } + + // append new line token + MD_Token newline_token = md_token_make(r1u64(source_token.range.max, source_token.range.max), MD_TokenFlag_Newline); + md_token_chunk_list_push(scratch.arena, &annot_chunks, 4096, newline_token); + } + } + + // script annotations -> mdesk tree + MD_TokenArray annot_tokens = md_token_array_from_chunk_list(scratch.arena, &annot_chunks); + MD_ParseResult script_parse = md_parse_from_text_tokens(scratch.arena, file_path, source, annot_tokens); + + // was parse ok? -> error + if (script_parse.msgs.worst_message_kind >= MD_MsgKind_Error) { + t_errorf("ERROR: cannot tokenize mdesk file: \"%S\"\n", file_path); + for EachNode(msg, MD_Msg, script_parse.msgs.first) { + String8 msg_kind_string = {0}; + switch(msg->kind) + { + default:{}break; + case MD_MsgKind_Note: {msg_kind_string = str8_lit("note");}break; + case MD_MsgKind_Warning: {msg_kind_string = str8_lit("warning");}break; + case MD_MsgKind_Error: {msg_kind_string = str8_lit("error");}break; + case MD_MsgKind_FatalError: {msg_kind_string = str8_lit("fatal error");}break; + } + TxtPt pt = mg_txt_pt_from_string_off(source, msg->node->src_offset); + String8 loc = push_str8f(scratch.arena, "%S:%I64d:%I64d", file_path, pt.line, pt.column); + t_errorf(" [%S] %S: %S\n", msg_kind_string, loc, msg->string); + } + goto exit; + } + + // @test: + { + // first child node of the root must be a test header + MD_Node *test = script_parse.root->first; + + // is node test? -> error + if ( ! str8_matchi(test->string, str8_lit("test"))) { + t_errorf("ERROR: %S: missing test header\n", file_path); + goto exit; + } + + for MD_EachNode(n, test->first) { + OperatingSystem os = operating_system_from_string(n->string); + + // is OS string correct? -> error + if (os == OperatingSystem_Null && n->string.size > 0) { + t_errorf_md(file_path, source, n, "test is defined for unknown os: \"%S\"\n", n->string); + goto exit; + } + + for MD_EachNode(field, n->first) { + // define table for mapping string to a directive kind + struct { + T_DbgScriptDirectiveKind kind; + String8 string; + } dir_string_map[] = { +#define X(q,w) { T_DbgScriptDirectiveKind_##q, str8_lit(w) }, + T_DbgScriptDirectiveKind_XList +#undef X + }; + + // string -> directive + T_DbgScriptDirectiveKind kind = T_DbgScriptDirectiveKind_Null; + for EachElement(i, dir_string_map) { + if (str8_matchi(field->string, dir_string_map[i].string)) { + kind = dir_string_map[i].kind; + break; + } + } + + // was directive found? -> error + if (kind == T_DbgScriptDirectiveKind_Null) { + t_errorf_md(file_path, source, n, "unknown field in test header \"%S\"\n", field->string); + goto exit; + } + + // alloc directive node + T_DbgScriptDirective *dir = push_array(arena, T_DbgScriptDirective, 1); + dir->kind = kind; + dir->pt = mg_txt_pt_from_string_off(source, field->src_offset); + + // TODO: collapse + if (field->flags & MD_NodeFlag_HasBraceLeft) { + // walk each sub-field of the MD node, and find nodes for the directive + if (kind == T_DbgScriptDirectiveKind_Compile) { + for MD_EachNode(sub_field, field->first) { + // compiler override + if (str8_matchi(sub_field->string, str8_lit("cc"))) { + MD_Node *cc = sub_field->first; + if (~cc->flags & MD_NodeFlag_StringLiteral) { + t_errorf_md(file_path, source, sub_field, "value of CC must be a string literal e.g. CC: \"clang\"\n"); + goto exit; + } + + if (str8_matchi(cc->string, str8_lit("clang"))) { dir->compile.cc = Compiler_clang; } + else if (str8_matchi(cc->string, str8_lit("cl"))) { dir->compile.cc = Compiler_msvc; } + else { + t_errorf_md(file_path, source, cc, "unknown compiler name: \"%S\"\n", sub_field->string); + goto exit; + } + } + // commnad line for the compiler + else if (str8_matchi(sub_field->string, str8_lit("args"))) { + MD_Node *args = sub_field->first; + if (~args->flags & MD_NodeFlag_StringLiteral) { + t_errorf_md(file_path, source, args, "value of ARGS must be a string literal\n"); + goto exit; + } + dir->args = str8_copy(arena, args->string); + } + // unknown field + else { + t_errorf_md(file_path, source, sub_field, "unknown field \"%S\"\n", sub_field->string); + goto exit; + } + } + } + } + // MD node is a string + else { + // is value present? -> error + if (md_node_is_nil(field->first)) { + t_errorf_md(file_path, source, field, "missing value on field %S\n", field->string); + goto exit; + } + + // more than one node? -> error + if ( ! md_node_is_nil(field->first->next)) { + t_errorf_md(file_path, source, field, "field %S accepts only one value\n", field->string); + goto exit; + } + + // node is not a string literal? -> error + if (~field->first->flags & MD_NodeFlag_StringLiteral) { + t_errorf_md(file_path, source, field, "field %S accepts only strings\n", field->string); + goto exit; + } + + // copy string from MD node + dir->args = str8_copy(arena, field->first->string); + } + + // append new directive + T_DbgScriptDirectiveList *list = &script.directives[os][kind]; + SLLQueuePush(list->first, list->last, dir); + list->count += 1; + } + } + } + + // @file: + { + // collect file nodes + MD_NodePtrList files = {0}; + for MD_EachNode(n, script_parse.root->first->next) { + if (str8_matchi(n->string, str8_lit("file"))) { + + // is file value a string? -> error + if ( ! md_node_is_nil(n->first->next) || ! (n->first->flags & MD_NodeFlag_StringLiteral)) { + t_errorf_md(file_path, source, n, "value of the 'file' must be a string, (e.g. file: \"main.c\")\n"); + goto exit; + } + + // append file node + md_node_ptr_list_push(scratch.arena, &files, n); + } + } + + // no nodes? -> treat whole file as a script + if (files.count == 0) { + MD_Node *whole_file = push_array(scratch.arena, MD_Node, 1); + whole_file->first = push_array(scratch.arena, MD_Node, 1); + whole_file->first->next = push_array(scratch.arena, MD_Node, 1); + whole_file->src_offset = 0; + whole_file->first->string = str8_skip_last_slash(file_path); + md_node_ptr_list_push(scratch.arena, &files, whole_file); + } + + HashMap files_hm = {0}; + for EachNode(n_ptr, MD_NodePtrNode, files.first) { + MD_Node *n = n_ptr->v; + + // get file name + String8 file_name = n->first->string; + + // was file seen? -> error + MD_Node *is_declared = hash_map_search_string_raw(&files_hm, file_name); + if (is_declared) { + TxtPt pt = mg_txt_pt_from_string_off(source, is_declared->src_offset); + t_errorf_md(file_path, source, n, "file %S is already declared at line %llu", file_name, pt.line); + goto exit; + } + hash_map_push_string_raw(scratch.arena, &files_hm, file_name, n); + + // file ends at EOF or before the next file directive + U64 src_opl = source.size; + if (n_ptr->next) { + src_opl = n_ptr->next->v->src_offset; + } + + // sub-string the source file + String8 sub_source = str8_substr(source, r1u64(n->src_offset, src_opl)); + U64 file_min = str8_find_needle(sub_source, 0, str8_lit("\n"), 0) + 1; + U64 file_max = str8_find_needle_reverse(sub_source, 0, str8_lit("\n"), 0); + sub_source = str8_substr(sub_source, r1u64(file_min, file_max)); + + // append new file node + T_DbgScriptFile *file = push_array(arena, T_DbgScriptFile, 1); + file->path = t_make_file_path(arena, file_name); + file->source = sub_source; + file->pt = mg_txt_pt_from_string_off(source, n->src_offset); + SLLQueuePush(script.files.first, script.files.last, file); + script.files.count += 1; + } + } + + // @program: + { + HashMap hm = {0}; // (U64, T_DbgScriptProgram) + for MD_EachNode(n, script_parse.root->first->next) { + // find order number nodes + U64 order = 0; + if ( ! try_u64_from_str8_c_rules(n->string, &order)) { + continue; + } + + // correlate MD node to the script file + T_DbgScriptFile *file = 0; + for (file = script.files.first; file != 0; file = file->next) { + if (file->source.str <= n->string.str && n->string.str < (file->source.str + file->source.size)) { + break; + } + } + + // found file? -> error + if (file == 0) { + t_errorf_md(file_path, source, n, "failed to correlate MD node to the script source file\n"); + goto exit; + } + + // is order number unique? -> error + T_DbgScriptProgram *p = hash_map_search_u64_raw(&hm, order); + if (p) { + t_errorf_md(file_path, source, n, "duplicate order number %llu found, previous defined at %llu\n", order, p->pt.line); + goto exit; + } + + // alloc & fill out program + p = push_array(arena, T_DbgScriptProgram, 1); + p->pt = mg_txt_pt_from_string_off(source, n->src_offset); + p->order = order; + p->os = OperatingSystem_CURRENT; + p->file = file; + hash_map_push_u64_raw(scratch.arena, &hm, order, p); + + for MD_EachNode(cmd_n, n->first) { + // alloc & fill out command + T_DbgScriptCmd *cmd = push_array(arena, T_DbgScriptCmd, 1); + cmd->kind = t_dbg_script_cmd_kind_from_string(cmd_n->string); + cmd->pt = mg_txt_pt_from_string_off(source, n->src_offset); + SLLQueuePush(p->first, p->last, cmd); + p->count += 1; + + // parse cmd args + MD_Node *cmd_arg = cmd_n->first; + + if (md_node_is_nil(cmd_arg)) { continue; } + + if (cmd->kind == T_DbgScriptCmdKind_At) { + if ( ! try_s64_from_str8_c_rules(cmd_arg->string, &cmd->at_delta)) { + t_errorf_md(file_path, source, cmd_arg, "failed to parse \"%S\"", cmd_arg->string); + goto exit; + } + } else if (cmd->kind == T_DbgScriptCmdKind_Eval) { + t_errorf_md(file_path, source, cmd_arg, "TODO: Eval\n"); + } else if (cmd->kind == T_DbgScriptCmdKind_Breakpoint) { + t_errorf_md(file_path, source, cmd_arg, "TODO: Breakpoint\n"); + } + } + } + + // extract commands and sort based on order number + script.program_count = hm.count; + script.programs = values_from_hash_map_raw(arena, &hm); + radsort(script.programs, script.program_count, t_dbg_script_program_is_before); + } + + is_ok = 1; + exit:; + if (script_out) { *script_out = script; } + scratch_end(scratch); + return is_ok; +} + +internal B32 +t_dbg_script_invoke(T_DbgScript *script, U64 timeout_us) +{ + Temp scratch = scratch_begin(0,0); + + B32 is_ok = 0; + + for EachIndex(i, script->program_count) { + T_DbgScriptProgram *program = script->programs[i]; + + if (program->os == OperatingSystem_CURRENT) { + for EachNode(cmd, T_DbgScriptCmd, program->first) { + t_infof("[%llu] Command: %S:%llu %S\n", program->order, script->file_path, cmd->pt.line, t_string_from_dbg_script_cmd_kind(cmd->kind)); + + switch (cmd->kind) { + case T_DbgScriptCmdKind_Null: break; + case T_DbgScriptCmdKind_Halt: t_dbg_send_cmd_and_wait_stop(str8_lit("halt"), timeout_us); break; // NOTE: does not auto-magically select main thread on stop + case T_DbgScriptCmdKind_StepOver: t_dbg_send_cmd_and_wait_stop(str8_lit("step_over"), timeout_us); break; + case T_DbgScriptCmdKind_StepInto: t_dbg_send_cmd_and_wait_stop(str8_lit("step_into"), timeout_us); break; + case T_DbgScriptCmdKind_StepOut: t_dbg_send_cmd_and_wait_stop(str8_lit("step_out"), timeout_us); break; + case T_DbgScriptCmdKind_StepOverInst: t_dbg_send_cmd_and_wait_stop(str8_lit("step_over_inst"), timeout_us); break; + case T_DbgScriptCmdKind_StepIntoInst: t_dbg_send_cmd_and_wait_stop(str8_lit("step_into_inst"), timeout_us); break; + case T_DbgScriptCmdKind_StepOverLine: t_dbg_send_cmd_and_wait_stop(str8_lit("step_over_line"), timeout_us); break; + case T_DbgScriptCmdKind_StepIntoLine: t_dbg_send_cmd_and_wait_stop(str8_lit("step_into_line"), timeout_us); break; + case T_DbgScriptCmdKind_KillAll: t_dbg_send_cmd_and_wait_stop(str8_lit("kill_all"), timeout_us); break; + case T_DbgScriptCmdKind_Breakpoint: NotImplemented; break; + case T_DbgScriptCmdKind_ClearBreakpoints: t_dbg_send_cmdf(0,0,0, "clear_breakpoints"); break; + case T_DbgScriptCmdKind_Run: t_dbg_send_cmd(str8_lit("run"), timeout_us, 0, 0); break; + case T_DbgScriptCmdKind_RunToLine: { + U64 line = cmd->pt.line - program->file->pt.line; + t_dbg_send_cmd_and_wait_stop(str8f(scratch.arena, "run_to_line \"%S:%llu\"", program->file->path, line), timeout_us); + } break; + case T_DbgScriptCmdKind_At: { + // TODO: debugger does not populate eval cache with registers before first frame -- for now use lower level option +#if 0 + U64 ip = u64_from_str8(t_dbg_value_from_exprf(scratch.arena, "reg:rip"), 10); + if (ip == 0) { + fprintf(stderr, "ERROR: invalid IP address: 0x%llx\n", (unsigned long long)ip); + goto exit; + } +#else + T_DbgState *temp_status = t_dbg_state(scratch.arena, T_Dbg_DefaultTimeout); + if (temp_status == 0) { + t_errorf("ERROR: %S:%llu: failed to query IP\n", script->file_path, cmd->pt.line); + goto exit; + } + U64 ip = temp_status->ip; +#endif + + // map IP -> source location + T_DbgLineArray lines = {0}; + if (t_dbg_src_line(scratch.arena, ip, &lines, T_Dbg_DefaultTimeout) == 0) { + t_errorf("ERROR: %S:%llu: IP (0x%llx) does not map to a source line\n", script->file_path, cmd->pt.line, ip); + goto exit; + } + + // compute line where debugger must be + S64 at_line_s64 = (S64)(program->pt.line - program->file->pt.line) + cmd->at_delta; + U64 at_line_u64 = at_line_s64 >= 0 ? (U64)at_line_s64 : 0; + AssertAlways(at_line_u64 > 0); + + if (lines.count == 0) { + t_errorf("ERROR: %S:%llu:%llu: no source location maps for vaddr: 0x%llx\n", script->file_path, cmd->pt.line, cmd->pt.column, ip); + goto exit; + } + + // match expected vs current debugger locations + for EachIndex(i, lines.count) { + B32 mismatch = lines.v[i].pt.line != at_line_u64 || + !str8_match(lines.v[i].file_path, program->file->path, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive); + if (mismatch) { + t_errorf("ERROR: %S:%llu: location check did not pass:\n", script->file_path, cmd->pt.line); + t_errorf(" Expected: %S:%llu\n", program->file->path, at_line_u64); + t_errorf(" Got : %S:%llu\n", lines.v[i].file_path, lines.v[i].pt.line); + t_errorf(" IP : 0x%llx\n", ip); + goto exit; + } + } + } break; + case T_DbgScriptCmdKind_Eval: NotImplemented; break; + default: { InvalidPath; } + } + } + } + + is_ok = (i+1 == script->program_count); + } + + exit:; + scratch_end(scratch); + return is_ok; +} + +internal TEST_FUNCTION_DEF(dbg_script_runner) +{ + // read source file + String8 source = data_from_file_path(arena, user_data); + if (source.size == 0) { + t_errorf("ERROR: failed to read script: \"%S\"\n", user_data); + T_Ok(0); + } + + // source -> script + T_DbgScript script = {0}; + if ( ! t_dbg_parse_script(arena, user_data, source, &script)) { + result_out->status = TestStatus_Fail; + goto exit; + } + + // write source files to test folder + for EachNode(file, T_DbgScriptFile, script.files.first) { + if (write_data_to_file_path(file->path, file->source) == 0) { + t_errorf("ERROR: %S:%llu: failed to write: \"%S\"\n", user_data, file->pt.line, file->path); + T_Ok(0); + } + } + + // compiler vars + HashTable *script_vars = hash_table_init(arena, 1000); + hash_table_push_path_string(arena, script_vars, str8_lit("FILE"), user_data); + hash_table_push_path_string(arena, script_vars, str8_lit("CWD"), g_wdir); + hash_table_push_path_string(arena, script_vars, str8_lit("SRC"), t_src_path()); + + // run compilers + for EachNode(directive, T_DbgScriptDirective, script.directives[OperatingSystem_CURRENT][T_DbgScriptDirectiveKind_Compile].first) { + Compiler compiler = directive->compile.cc; + + // pick default compiler if none selected + if (directive->compile.cc == Compiler_Null) { + switch (OperatingSystem_CURRENT) { + case OperatingSystem_Windows: { compiler = Compiler_msvc; } break; + case OperatingSystem_Linux: { compiler = Compiler_clang; } break; + } + } + + // get compiler path + String8 compiler_path = {0}; + switch (compiler) { + case Compiler_Null: break; + case Compiler_msvc: compiler_path = t_cl_path(); break; + case Compiler_clang: compiler_path = t_clang_path(); break; + case Compiler_gcc: compiler_path = t_gcc_path(); break; + } + + // invoke compiler with arguments from directive + String8 expanded_args = lnk_expand_env_vars_windows(arena, script_vars, directive->args); + + if (compiler == Compiler_msvc) { expanded_args = str8f(arena, "/nologo %S", expanded_args); } + + if (t_invoke(compiler_path, expanded_args, max_U64) == 0) { + t_errorf("ERROR: failed to launch compiler: \"%S %S\"\n", compiler_path, expanded_args); + T_Ok(0); + } + + if (compiler == Compiler_msvc) { g_output = str8_skip(g_output, str8_chop_line(&g_output).size); } // file name print + + if (g_last_exit_code) { + t_errorf("ERROR: %S:%llu: %S\n", script.file_path, (unsigned long long)directive->pt.line, g_errors); + if (g_stop_on_first_fail_or_crash) { + T_Ok(0); + } + } + } + + // run linkers + String8 linker_path = t_radlink_path(); + for EachNode(directive, T_DbgScriptDirective, script.directives[OperatingSystem_CURRENT][T_DbgScriptDirectiveKind_Link].first) { + String8 expanded_args = lnk_expand_env_vars_windows(arena, script_vars, directive->args); + if (t_invoke(linker_path, expanded_args, max_U64) == 0) { + t_errorf("ERROR: failed to launch linker: \"%S %S\"\n", linker_path, expanded_args); + T_Ok(0); + } + if (g_last_exit_code != 0) { + t_errorf("ERROR: %S:%llu: %S\n", script.file_path, (unsigned long long)directive->pt.line, g_errors); + T_Ok(0); + } + } + + // is skip flag set? -> exit + if (g_build_only || script.directives[OperatingSystem_CURRENT][T_DbgScriptDirectiveKind_Skip].count) { + result_out->status = TestStatus_Skip; + goto exit; + } + + // launch targets + for EachNode(directive, T_DbgScriptDirective, script.directives[OperatingSystem_CURRENT][T_DbgScriptDirectiveKind_Launch].first) { + String8 expanded_args = lnk_expand_env_vars_windows(arena, script_vars, directive->args); + String8 cmdl = str8f(arena, "--user:%S.raddbg_user %S", t_make_file_path(arena, str8_lit("temp")), expanded_args); + if (t_dbg_launch(cmdl, T_Dbg_DefaultTimeout) == 0) { + t_errorf("ERROR: failed to launch debugger with command line \"%S %S\"; work dir \"%S\"\n", t_raddbg_path(), cmdl, g_wdir); + T_Ok(0); + } + } + + // debugger is ready -- now invoke script + if (t_dbg_script_invoke(&script, T_Dbg_DefaultTimeout) == 0) { + t_errorf("ERROR: %S: failed to run to completion\n", user_data); + T_Ok(0); + } + + // clean up +#if OS_WINDOWS + HANDLE dbg_handle = OpenProcess(PROCESS_ALL_ACCESS, 0, g_dbg_pid); + if (dbg_handle != 0) { + TerminateProcess(dbg_handle, 1); + CloseHandle(dbg_handle); + } +#else + kill(g_dbg_pid, SIGKILL); +#endif + + exit:; + g_dbg_pid = 0; +} + +internal void +t_dbg_register_script_tests(Arena *arena, String8 folder_path) +{ + Temp scratch = scratch_begin(&arena, 1); + + if ( ! folder_path_exists(folder_path)) { + t_errorf("ERROR: this folder does not exists: %S\n", folder_path); + return; + } + + // gather file paths in a folder + String8List paths = t_file_paths_from_dir(arena, folder_path); + + // register a test for each file + for EachNode(n, String8Node, paths.first) { + String8 file_path = n->string; + + // test files may contain dots for extensions we have to escape them when creating output folder for a test + String8List file_name_parts = str8_split_by_string_chars(scratch.arena, str8_skip_last_slash(file_path), str8_lit("."), 0); + String8 file_name_escaped = str8_list_join(arena, &file_name_parts, &(StringJoin){.sep=str8_lit("-"), .post = str8_lit("\0") }); + + g_torture_tests_[g_torture_test_count++] = (T_Test){ + .file = "raddbg", + .label = (char*)file_name_escaped.str, + .r = t_dbg_script_runner, + .user_data = str8_copy(arena, file_path), + }; + } + + scratch_end(scratch); +} + +#endif diff --git a/src/raddump/raddump.c b/src/raddump/raddump.c index 04192a6d..06e87e4d 100644 --- a/src/raddump/raddump.c +++ b/src/raddump/raddump.c @@ -2468,7 +2468,7 @@ cv_format_debug_sections(Arena *arena, String8List *out, String8 indent, String8 String8 raw_sect = str8_substr(raw_image, sect_frange); if (str8_match_lit(".debug$S", sect_name, 0)) { Temp scratch = scratch_begin(&arena, 1); - CV_DebugS debug_s = cv_parse_debug_s(scratch.arena, raw_sect); + CV_DebugS debug_s = cv_debug_s_from_data(scratch.arena, raw_sect); for (String8Node *string_n = debug_s.data_list[CV_C13SubSectionIdxKind_Symbols].first; string_n != 0 && keep_parsing; string_n = string_n->next) { Temp temp = temp_begin(scratch.arena); @@ -4064,7 +4064,7 @@ pe_print(Arena *arena, String8List *out, String8 indent, String8 raw_data, RD_Op } if (opts & RD_Option_Dwarf) { - DW_Input dwarf_input = dw_input_from_coff_section_table(scratch.arena, raw_data, raw_string_table, file_header->section_count, sections); + DW_Raw dwarf_input = dw_raw_from_coff_section_table(scratch.arena, raw_data, raw_string_table, file_header->section_count, sections); dw_format(arena, out, indent, opts, &dwarf_input, arch, ExecutableImageKind_CoffPe); } @@ -4080,12 +4080,12 @@ elf_print_dwarf_expressions(Arena *arena, String8List *out, String8 indent, Stri ELF_Bin bin = elf_bin_from_data(raw_data); Arch arch = arch_from_elf_machine(bin.hdr.e_machine); - DW_Input dwarf_input = dw_input_from_elf_bin(scratch.arena, raw_data, &bin); + DW_Raw dwarf_input = dw_raw_from_elf_bin(scratch.arena, raw_data, &bin); ELF_Class elf_class = bin.hdr.e_ident[ELF_Identifier_Class]; ExecutableImageKind image_type = elf_class == ELF_Class_32 ? ExecutableImageKind_Elf32 : elf_class == ELF_Class_64 ? ExecutableImageKind_Elf64 : ELF_Class_None; B32 relaxed = 1; Rng1U64List cu_ranges = dw_unit_ranges_from_data(scratch.arena, dwarf_input.sec[DW_Section_Info].data); - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, &dwarf_input); + DW_ListUnitInput lu_input = dw_list_unit_input_from_raw(scratch.arena, &dwarf_input); if (bin.hdr.e_type == ELF_Type_Exec || bin.hdr.e_type == ELF_Type_Dyn) { U64 cu_idx = 0; diff --git a/src/rdi/rdi.mdesk b/src/rdi/rdi.mdesk index db7ca4be..36509832 100644 --- a/src/rdi/rdi.mdesk +++ b/src/rdi/rdi.mdesk @@ -77,7 +77,7 @@ ""; "// \"raddbg\\0\\0\""; "#define RDI_MAGIC_CONSTANT 0x0000676264646172"; - "#define RDI_ENCODING_VERSION 17"; + "#define RDI_ENCODING_VERSION 23"; ""; "////////////////////////////////////////////////////////////////"; "//~ Format Types & Functions"; @@ -135,50 +135,80 @@ RDI_HeaderMemberTable: @table(name name_lower element_type value index_base_type desc) RDI_SectionTable: { - {NULL null RDI_U8 0x0000 - ""} - {TopLevelInfo top_level_info RDI_TopLevelInfo 0x0001 - ""} - {StringData string_data RDI_U8 0x0002 - ""} - {StringTable string_table RDI_U32 0x0003 U32 ""} - {IndexRuns index_runs RDI_U32 0x0004 U32 ""} - {BinarySections binary_sections RDI_BinarySection 0x0005 U32 ""} - {FilePathNodes file_path_nodes RDI_FilePathNode 0x0006 U32 ""} - {SourceFiles source_files RDI_SourceFile 0x0007 U32 ""} - {LineTables line_tables RDI_LineTable 0x0008 U32 ""} - {LineInfoVOffs line_info_voffs RDI_U64 0x0009 U32 ""} - {LineInfoLines line_info_lines RDI_Line 0x000A U32 ""} - {LineInfoColumns line_info_columns RDI_Column 0x000B U32 ""} - {SourceLineMaps source_line_maps RDI_SourceLineMap 0x000C U32 ""} - {SourceLineMapNumbers source_line_map_numbers RDI_U32 0x000D U32 ""} - {SourceLineMapRanges source_line_map_ranges RDI_U32 0x000E U32 ""} - {SourceLineMapVOffs source_line_map_voffs RDI_U64 0x000F U32 ""} - {Units units RDI_Unit 0x0010 U32 ""} - {UnitVMap unit_vmap RDI_VMapEntry 0x0011 - ""} - {TypeNodes type_nodes RDI_TypeNode 0x0012 U32 ""} - {UDTs udts RDI_UDT 0x0013 U32 ""} - {Members members RDI_Member 0x0014 U32 ""} - {EnumMembers enum_members RDI_EnumMember 0x0015 U32 ""} - {GlobalVariables global_variables RDI_GlobalVariable 0x0016 U32 ""} - {GlobalVMap global_vmap RDI_VMapEntry 0x0017 - ""} - {ThreadVariables thread_variables RDI_ThreadVariable 0x0018 U32 ""} - {Constants constants RDI_Constant 0x0019 U32 ""} - {Procedures procedures RDI_Procedure 0x001A U32 ""} - {Scopes scopes RDI_Scope 0x001B U32 ""} - {ScopeVOffData scope_voff_data RDI_U64 0x001C U32 ""} - {ScopeVMap scope_vmap RDI_VMapEntry 0x001D - ""} - {InlineSites inline_sites RDI_InlineSite 0x001E U32 ""} - {Locals locals RDI_Local 0x001F U32 ""} - {LocationBlocks location_blocks RDI_LocationBlock 0x0020 U32 ""} - {LocationData location_data RDI_U8 0x0021 U32 ""} - {ConstantValueData constant_value_data RDI_U8 0x0022 U32 ""} - {ConstantValueTable constant_value_table RDI_U32 0x0023 U32 ""} - {MD5Checksums md5_checksums RDI_MD5 0x0024 U32 ""} - {SHA1Checksums sha1_checksums RDI_SHA1 0x0025 U32 ""} - {SHA256Checksums sha256_checksums RDI_SHA256 0x0026 U32 ""} - {Timestamps timestamps RDI_U64 0x0027 U32 ""} - {NameMaps name_maps RDI_NameMap 0x0028 U32 ""} - {NameMapBuckets name_map_buckets RDI_NameMapBucket 0x0029 U32 ""} - {NameMapNodes name_map_nodes RDI_NameMapNode 0x002A U32 ""} - {COUNT count RDI_U8 0x002B - ""} + {NULL null RDI_U8 0x0000 - ""} + + //- rjf: top-level-info + {TopLevelInfo top_level_info RDI_TopLevelInfo 0x0001 - ""} + + //- rjf: strings + {StringData string_data RDI_U8 0x0002 - ""} + {StringTable string_table RDI_U32 0x0003 U32 ""} + + //- rjf: index runs + {IndexRuns index_runs RDI_U32 0x0004 U32 ""} + + //- rjf: binary sections + {BinarySections binary_sections RDI_BinarySection 0x0005 U32 ""} + + //- rjf: filesystem / source files + {FilePathNodes file_path_nodes RDI_FilePathNode 0x0006 U32 ""} + {SourceFiles source_files RDI_SourceFile 0x0007 U32 ""} + + //- rjf: voff -> line info + {LineTables line_tables RDI_LineTable 0x0008 U32 ""} + {LineInfoVOffs line_info_voffs RDI_U64 0x0009 U32 ""} + {LineInfoLines line_info_lines RDI_Line 0x000A U32 ""} + {LineInfoColumns line_info_columns RDI_Column 0x000B U32 ""} + + //- rjf: line -> voff info + {SourceLineMaps source_line_maps RDI_SourceLineMap 0x000C U32 ""} + {SourceLineMapNumbers source_line_map_numbers RDI_U32 0x000D U32 ""} + {SourceLineMapRanges source_line_map_ranges RDI_U32 0x000E U32 ""} + {SourceLineMapVOffs source_line_map_voffs RDI_U64 0x000F U32 ""} + + //- rjf: units + {Units units RDI_Unit 0x0010 U32 ""} + {UnitVMap unit_vmap RDI_VMapEntry 0x0011 - ""} + + //- rjf: namespaces + {Namespaces namespaces RDI_Namespace 0x0012 U32 ""} + + //- rjf: type info + {TypeNodes type_nodes RDI_TypeNode 0x0013 U32 ""} + {UDTs udts RDI_UDT 0x0014 U32 ""} + {Members members RDI_Member 0x0015 U32 ""} + {EnumMembers enum_members RDI_EnumMember 0x0016 U32 ""} + + //- rjf: scope info + {Scopes scopes RDI_Scope 0x0017 U32 ""} + {ScopeVOffData scope_voff_data RDI_U64 0x0018 U32 ""} + {ScopeVMap scope_vmap RDI_VMapEntry 0x0019 - ""} + {InlineSites inline_sites RDI_InlineSite 0x001A U32 ""} + + //- rjf: symbols + {GlobalVariables global_variables RDI_Symbol 0x001B U32 ""} + {GlobalVMap global_vmap RDI_VMapEntry 0x001C - ""} + {ThreadVariables thread_variables RDI_Symbol 0x001D U32 ""} + {Constants constants RDI_Symbol 0x001E U32 ""} + {Procedures procedures RDI_Symbol 0x001F U32 ""} + {LocalVariables local_variables RDI_Symbol 0x0020 U32 ""} + + //- rjf: locations + {LocationsBytecodeData locations_bytecode_data RDI_U8 0x0021 U32 ""} + {LocationsConstantData locations_constant_data RDI_U8 0x0022 U32 ""} + {LocationsSetElements locations_set_elements RDI_LocationSetElement 0x0023 U32 ""} + + //- rjf: checksums / timestamps + {MD5Checksums md5_checksums RDI_MD5 0x0024 U32 ""} + {SHA1Checksums sha1_checksums RDI_SHA1 0x0025 U32 ""} + {SHA256Checksums sha256_checksums RDI_SHA256 0x0026 U32 ""} + {Timestamps timestamps RDI_U64 0x0027 U32 ""} + + //- rjf: name maps + {NameMaps name_maps RDI_NameMap 0x0028 U32 ""} + {NameMapBuckets name_map_buckets RDI_NameMapBucket 0x0029 U32 ""} + {NameMapNodes name_map_nodes RDI_NameMapNode 0x002A U32 ""} + {COUNT count RDI_U8 0x002B - ""} } @table(name value) @@ -278,74 +308,8 @@ RDI_VMapEntryMemberTable: RDI_ArchTable: { {NULL 0 0} - {X86 1 4} - {X64 2 8} -} - -@table(name value) -RDI_RegCodeX86Table: -{ - {nil 0} - {eax 1} - {ecx 2} - {edx 3} - {ebx 4} - {esp 5} - {ebp 6} - {esi 7} - {edi 8} - {fsbase 9} - {gsbase 10} - {eflags 11} - {eip 12} - {dr0 13} - {dr1 14} - {dr2 15} - {dr3 16} - {dr4 17} - {dr5 18} - {dr6 19} - {dr7 20} - {fpr0 21} - {fpr1 22} - {fpr2 23} - {fpr3 24} - {fpr4 25} - {fpr5 26} - {fpr6 27} - {fpr7 28} - {st0 29} - {st1 30} - {st2 31} - {st3 32} - {st4 33} - {st5 34} - {st6 35} - {st7 36} - {fcw 37} - {fsw 38} - {ftw 39} - {fop 40} - {fcs 41} - {fds 42} - {fip 43} - {fdp 44} - {mxcsr 45} - {mxcsr_mask 46} - {ss 47} - {cs 48} - {ds 49} - {es 50} - {fs 51} - {gs 52} - {ymm0 53} - {ymm1 54} - {ymm2 55} - {ymm3 56} - {ymm4 57} - {ymm5 58} - {ymm6 59} - {ymm7 60} + {X64 1 8} + {X86 2 4} } @table(name value) @@ -392,68 +356,60 @@ RDI_RegCodeX64Table: {st5 38} {st6 39} {st7 40} - {fpr0 41} - {fpr1 42} - {fpr2 43} - {fpr3 44} - {fpr4 45} - {fpr5 46} - {fpr6 47} - {fpr7 48} - {zmm0 49} - {zmm1 50} - {zmm2 51} - {zmm3 52} - {zmm4 53} - {zmm5 54} - {zmm6 55} - {zmm7 56} - {zmm8 57} - {zmm9 58} - {zmm10 59} - {zmm11 60} - {zmm12 61} - {zmm13 62} - {zmm14 63} - {zmm15 64} - {zmm16 65} - {zmm17 66} - {zmm18 67} - {zmm19 68} - {zmm20 69} - {zmm21 70} - {zmm22 71} - {zmm23 72} - {zmm24 73} - {zmm25 74} - {zmm26 75} - {zmm27 76} - {zmm28 77} - {zmm29 78} - {zmm30 79} - {zmm31 80} - {k0 81} - {k1 82} - {k2 83} - {k3 84} - {k4 85} - {k5 86} - {k6 87} - {k7 88} - {mxcsr 89} - {fsbase 90} - {gsbase 91} - {fcw 92} - {fsw 93} - {ftw 94} - {fop 95} - {fcs 96} - {fds 97} - {fip 98} - {fdp 99} - {mxcsr_mask 100} - {cetmsr 101} - {cetssp 102} + {zmm0 41} + {zmm1 42} + {zmm2 43} + {zmm3 44} + {zmm4 45} + {zmm5 46} + {zmm6 47} + {zmm7 48} + {zmm8 49} + {zmm9 50} + {zmm10 51} + {zmm11 52} + {zmm12 53} + {zmm13 54} + {zmm14 55} + {zmm15 56} + {zmm16 57} + {zmm17 58} + {zmm18 59} + {zmm19 60} + {zmm20 61} + {zmm21 62} + {zmm22 63} + {zmm23 64} + {zmm24 65} + {zmm25 66} + {zmm26 67} + {zmm27 68} + {zmm28 69} + {zmm29 70} + {zmm30 71} + {zmm31 72} + {k0 73} + {k1 74} + {k2 75} + {k3 76} + {k4 77} + {k5 78} + {k6 79} + {k7 80} + {mxcsr 81} + {fsbase 82} + {gsbase 83} + {fcw 84} + {fsw 85} + {ftw 86} + {fop 87} + {fcs 88} + {fds 89} + {fip 90} + {fdp 91} + {mxcsr_mask 92} + {cetmsr 93} + {cetssp 94} } @enum(RDI_U32) RDI_Arch: @@ -468,21 +424,11 @@ RDI_RegCodeX64Table: @enum(RDI_U8) RDI_RegCode: {nil} -@enum(RDI_U8) RDI_RegCodeX86: -{ - @expand(RDI_RegCodeX86Table a) `$(a.name .. =>10) = $(a.value)` -} - @enum(RDI_U8) RDI_RegCodeX64: { @expand(RDI_RegCodeX64Table a) `$(a.name .. =>10) = $(a.value)` } -@xlist RDI_RegCodeX86_XList: -{ - @expand(RDI_RegCodeX86Table a) `$(a.name), $(a.value)` -} - @xlist RDI_RegCodeX64_XList: { @expand(RDI_RegCodeX64Table a) `$(a.name), $(a.value)` @@ -639,6 +585,14 @@ RDI_UnitMemberTable: {build_path_node RDI_U32 ""} {language RDI_Language ""} {line_table_idx RDI_U32 ""} + {procedures_first_idx RDI_U32 ""} + {procedures_count RDI_U32 ""} + {global_variables_first_idx RDI_U32 ""} + {global_variables_count RDI_U32 ""} + {thread_variables_first_idx RDI_U32 ""} + {thread_variables_count RDI_U32 ""} + {constants_first_idx RDI_U32 ""} + {constants_count RDI_U32 ""} } @xlist RDI_Unit_XList: @@ -764,8 +718,6 @@ RDI_LanguageTable: @table(name value size bookend1 bookend2) RDI_TypeKindTable: { - {NULL 0x0000 0 } - //- {Void 0x0001 0 FirstBuiltIn } {Handle 0x0002 0xFFFFFFFF } {HResult 0x0003 4 } @@ -790,17 +742,23 @@ RDI_TypeKindTable: {S256 0x0016 32 } {S512 0x0017 64 } {Bool 0x0018 1 } - {F16 0x0019 2 } - {F32 0x001A 4 } - {F32PP 0x001B 4 } - {F48 0x001C 6 } - {F64 0x001D 8 } - {F80 0x001E 10 } - {F128 0x001F 16 } - {ComplexF32 0x0020 8 } - {ComplexF64 0x0021 16 } - {ComplexF80 0x0022 20 } - {ComplexF128 0x0023 32 LastBuiltIn } + {BF16 0x0019 2 } + {F16 0x001A 2 } + {F32 0x001B 4 } + {F32PP 0x001C 4 } + {F48 0x001D 6 } + {F64 0x001E 8 } + {F80 0x001F 10 } + {F96 0x0020 12 } + {F128 0x0021 16 } + {ComplexF32 0x0022 8 } + {ComplexF64 0x0023 16 } + {ComplexF80 0x0024 20 } + {ComplexF128 0x0025 32 } + {Decimal32 0x0026 4 } + {Decimal64 0x0027 8 } + {Decimal128 0x0028 16 } + {Variadic 0x0029 0 LastBuiltIn } //- {Modifier 0x1000 0 FirstConstructed } {Ptr 0x1001 0 } @@ -822,8 +780,6 @@ RDI_TypeKindTable: {IncompleteEnum 0x2008 0 LastIncomplete LastUserDefined} //- {Bitfield 0xF000 0 } - {Variadic 0xF001 0 } - {Count 0xF002 0 } } @table(name value) @@ -851,13 +807,16 @@ RDI_UDTFlagTable: @table(name type desc) RDI_UDTMemberTable: { - {self_type_idx RDI_U32 ""} - {flags RDI_UDTFlags ""} - {member_first RDI_U32 ""} - {member_count RDI_U32 ""} - {file_idx RDI_U32 ""} - {line RDI_U32 ""} - {col RDI_U32 ""} + {self_type_idx RDI_U32 ""} + {flags RDI_UDTFlags ""} + {container_flags RDI_ContainerFlags ""} + {reserved_0 RDI_U16 ""} + {member_first RDI_U32 ""} + {member_count RDI_U32 ""} + {file_idx RDI_U32 ""} + {line RDI_U32 ""} + {col RDI_U32 ""} + {container_idx RDI_U32 ""} } @table(name value) @@ -895,9 +854,11 @@ RDI_EnumMemberTable: @enum(RDI_U16) RDI_TypeKind: { + `Null`, @expand(RDI_TypeKindTable a) `$(a.name .. =>20) = $(a.value)`; @expand(RDI_TypeKindTable a) `$(a.bookend1 != "" -> a.bookend1 .. =>20 .. " = RDI_TypeKind_" .. a.name)`; @expand(RDI_TypeKindTable a) `$(a.bookend2 != "" -> a.bookend2 .. =>20 .. " = RDI_TypeKind_" .. a.name)`; + `COUNT`; } @enum(RDI_U16) RDI_TypeModifierFlags: @@ -968,7 +929,7 @@ RDI_EnumMemberTable: ``` } -@enum(RDI_U32) RDI_UDTFlags: +@enum(RDI_U8) RDI_UDTFlags: { @expand(RDI_UDTFlagTable a) `$(a.name .. =>20) = $(a.value)` } @@ -1024,19 +985,19 @@ RDI_EnumMemberTable: //- rjf: tables @table(name value) -RDI_LinkFlagTable: +RDI_ContainerKindTable: { - {External `1<<0`} - {TypeScoped `1<<1`} - {ProcScoped `1<<2`} + {NULL 0x0} + {Type 0x1} + {Scope 0x2} + {Namespace 0x3} } @table(name value) -RDI_LocalKindTable: +RDI_ContainerFlagTable: { - {NULL 0x0} - {Parameter 0x1} - {Variable 0x2} + {External `1u<<7`} + {KindMask `0x7f`} } @table(name value) @@ -1045,50 +1006,44 @@ RDI_LocationKindTable: {NULL 0x0} {AddrBytecodeStream 0x1} {ValBytecodeStream 0x2} - {AddrRegPlusU16 0x3} - {AddrAddrRegPlusU16 0x4} + {AddrRegPlusOff 0x3} + {AddrAddrRegPlusOff 0x4} {ValReg 0x5} + {ModuleOff 0x6} + {TLSOff 0x7} + {ConstantDataOff 0x8} + {Set 0x9} +} + +@table(name value) +RDI_SymbolFlagTable: +{ + {IsParam 0x1} + {IsThunk 0x2} } @table(name type desc) -RDI_GlobalVariableMemberTable: +RDI_NamespaceMemberTable: { {name_string_idx RDI_U32 ""} - {link_flags RDI_LinkFlags ""} - {voff RDI_U64 ""} - {type_idx RDI_U32 ""} + {container_flags RDI_ContainerFlags ""} + {padding_0 RDI_U8 ""} + {padding_1 RDI_U16 ""} {container_idx RDI_U32 ""} } @table(name type desc) -RDI_ThreadVariableMemberTable: +RDI_SymbolMemberTable: { - {name_string_idx RDI_U32 ""} - {link_flags RDI_LinkFlags ""} - {tls_off RDI_U32 ""} - {type_idx RDI_U32 ""} - {container_idx RDI_U32 ""} -} - -@table(name type desc) -RDI_ConstantMemberTable: -{ - {name_string_idx RDI_U32 ""} - {type_idx RDI_U32 ""} - {constant_value_idx RDI_U32 ""} -} - -@table(name type desc) -RDI_ProcedureMemberTable: -{ - {name_string_idx RDI_U32 ""} - {link_name_string_idx RDI_U32 ""} - {link_flags RDI_LinkFlags ""} - {type_idx RDI_U32 ""} - {root_scope_idx RDI_U32 ""} - {container_idx RDI_U32 ""} - {frame_base_location_first RDI_U32 ""} - {frame_base_location_opl RDI_U32 ""} + {name_string_idx RDI_U32 ""} + {symbol_flags RDI_SymbolFlags ""} + {container_flags RDI_ContainerFlags ""} + {reserved_0 RDI_U16 ""} + {location RDI_Location ""} + {container_idx RDI_U32 ""} + {type_idx RDI_U32 ""} + {root_scope_idx RDI_U32 ""} + {link_name_string_idx RDI_U32 ""} } @table(name type desc) @@ -1115,56 +1070,28 @@ RDI_InlineSiteMemberTable: } @table(name type desc) -RDI_LocalMemberTable: +RDI_LocationSetElementMemberTable: { - {kind RDI_LocalKind ""} - {name_string_idx RDI_U32 ""} - {type_idx RDI_U32 ""} - {pad RDI_U32 ""} - {location_first RDI_U32 ""} - {location_opl RDI_U32 ""} -} - -@table(name type desc) -RDI_LocationBlockMemberTable: -{ - {scope_off_first RDI_U32 } - {scope_off_opl RDI_U32 } - {location_data_off RDI_U32 } -} - -@table(name type desc) -RDI_LocationBytecodeStreamMemberTable: -{ - {kind RDI_LocationKind ""} - // [... 0] null terminated byte sequence RDI_EvalBytecodeStream -} - -@table(name type desc) -RDI_LocationRegPlusU16MemberTable: -{ - {kind RDI_LocationKind } - {reg_code RDI_RegCode } - {offset RDI_U16 } -} - -@table(name type desc) -RDI_LocationRegMemberTable: -{ - {kind RDI_LocationKind } - {reg_code RDI_RegCode } + {voff_first RDI_U64 ""} + {voff_opl RDI_U64 ""} + {location RDI_Location ""} } //- rjf: enums -@enum(RDI_U32) RDI_LinkFlags: +@enum(RDI_U8) RDI_ContainerKind: { - @expand(RDI_LinkFlagTable a) `$(a.name .. =>20) = $(a.value)` + @expand(RDI_ContainerKindTable a) `$(a.name .. =>20) = $(a.value)` } -@enum(RDI_U32) RDI_LocalKind: +@enum(RDI_U8) RDI_ContainerFlags: { - @expand(RDI_LocalKindTable a) `$(a.name .. =>20) = $(a.value)` + @expand(RDI_ContainerFlagTable a) `$(a.name .. =>20) = $(a.value)`, +} + +@enum(RDI_U8) RDI_SymbolFlags: +{ + @expand(RDI_SymbolFlagTable a) `$(a.name .. =>20) = $(a.value)` } @enum(RDI_U8) RDI_LocationKind: @@ -1172,6 +1099,37 @@ RDI_LocationRegMemberTable: @expand(RDI_LocationKindTable a) `$(a.name .. =>20) = $(a.value)` } +@gen(enums) +{ + `typedef RDI_U64 RDI_Location;`; + `#define RDI_Location_KindMask 0xff00000000000000ull`; + `#define RDI_Location_KindShift 56`; + `#define RDI_Location_OffMask 0x00ffffffffffffffull`; + `#define RDI_Location_OffShift 0`; + `#define RDI_Location_SetFirstIndexMask 0x00000000ffffffffull`; + `#define RDI_Location_SetFirstIndexShift 0`; + `#define RDI_Location_SetCountMask 0x00ffffff00000000ull`; + `#define RDI_Location_SetCountShift 32`; + `#define RDI_Location_RegCodeMask 0x00ff000000000000ull`; + `#define RDI_Location_RegCodeShift 48`; + `#define RDI_Location_RegOffMask 0x0000ffff00000000ull`; + `#define RDI_Location_RegOffShift 32`; + `#define rdi_kind_from_location(l) ((((l) & RDI_Location_KindMask) >> RDI_Location_KindShift))`; + `#define rdi_regcode_from_location(l) ((rdi_kind_from_location(l) == RDI_LocationKind_AddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_AddrAddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_ValReg) ? (((l) & RDI_Location_RegCodeMask) >> RDI_Location_RegCodeShift) : 0)`; + `#define rdi_regoff_from_location(l) (RDI_S64)(RDI_S32)(RDI_S16)((rdi_kind_from_location(l) == RDI_LocationKind_AddrRegPlusOff || rdi_kind_from_location(l) == RDI_LocationKind_AddrAddrRegPlusOff) ? (((l) & RDI_Location_RegOffMask) >> RDI_Location_RegOffShift) : 0)`; + `#define rdi_voff_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_ModuleOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0)`; + `#define rdi_toff_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_TLSOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0)`; + `#define rdi_constant_data_off_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_ConstantDataOff ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0)`; + `#define rdi_bytecode_data_off_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_AddrBytecodeStream || rdi_kind_from_location(l) == RDI_LocationKind_ValBytecodeStream ? (((l) & RDI_Location_OffMask) >> RDI_Location_OffShift) : 0)`; + `#define rdi_set_first_index_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_Set ? (((l) & RDI_Location_SetFirstIndexMask) >> RDI_Location_SetFirstIndexShift) : 0)`; + `#define rdi_set_count_from_location(l) (rdi_kind_from_location(l) == RDI_LocationKind_Set ? (((l) & RDI_Location_SetCountMask) >> RDI_Location_SetCountShift) : 0)`; + `#define rdi_location_voff(voff) ((((RDI_U64)RDI_LocationKind_ModuleOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((voff) & ~RDI_Location_KindMask))`; + `#define rdi_location_toff(toff) ((((RDI_U64)RDI_LocationKind_TLSOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((toff) & ~RDI_Location_KindMask))`; + `#define rdi_location_constant_data_off(off) ((((RDI_U64)RDI_LocationKind_ConstantDataOff << RDI_Location_KindShift) & RDI_Location_KindMask) | ((off) & ~RDI_Location_KindMask))`; + `#define rdi_location_reg(kind, reg, off) ((((RDI_U64)(kind) << RDI_Location_KindShift) & RDI_Location_KindMask) | (((RDI_U64)(reg) << RDI_Location_RegCodeShift) & RDI_Location_RegCodeMask) | (((RDI_U64)(off) << RDI_Location_RegOffShift) & RDI_Location_RegOffMask))`; + `#define rdi_location_bytecode(kind, off) ((((RDI_U64)(kind) << RDI_Location_KindShift) & RDI_Location_KindMask) | (((RDI_U64)(off) << RDI_Location_OffShift) & RDI_Location_OffMask))`; +} + //- rjf: xlists @xlist RDI_LinkFlags_XList: @@ -1179,29 +1137,19 @@ RDI_LocationRegMemberTable: @expand(RDI_LinkFlagTable a) `$(a.name != COUNT -> a.name)`; } -@xlist RDI_LocalKind_XList: -{ - @expand(RDI_LocalKindTable a) `$(a.name != COUNT -> a.name)`; -} - @xlist RDI_LocationKind_XList: { @expand(RDI_LocationKindTable a) `$(a.name != COUNT -> a.name)`; } -@xlist RDI_GlobalVariable_XList: +@xlist RDI_Namespace_XList: { - @expand(RDI_GlobalVariableMemberTable a) `$(a.type), $(a.name)` + @expand(RDI_NamespaceMemberTable a) `$(a.type), $(a.name)` } -@xlist RDI_ThreadVariable_XList: +@xlist RDI_Symbol_XList: { - @expand(RDI_ThreadVariableMemberTable a) `$(type), $(a.name)` -} - -@xlist RDI_Procedure_XList: -{ - @expand(RDI_ProcedureMemberTable a) `$(a.type), $(a.name)` + @expand(RDI_SymbolMemberTable a) `$(a.type), $(a.name)` } @xlist RDI_Scope_XList: @@ -1214,51 +1162,16 @@ RDI_LocationRegMemberTable: @expand(RDI_InlineSiteMemberTable a) `$(a.type), $(a.name)` } -@xlist RDI_Local_XList: -{ - @expand(RDI_LocalMemberTable a) `$(a.type), $(a.name)` -} - -@xlist RDI_LocationBlock_XList: -{ - @expand(RDI_LocationBlockMemberTable a) `$(a.type), $(a.name)` -} - -@xlist RDI_LocationBytecodeStream_XList: -{ - @expand(RDI_LocationBytecodeStreamMemberTable a) `$(a.type), $(a.name)` -} - -@xlist RDI_LocationRegPlusU16_XList: -{ - @expand(RDI_LocationRegPlusU16MemberTable a) `$(a.type), $(a.name)` -} - -@xlist RDI_LocationReg_XList: -{ - @expand(RDI_LocationRegMemberTable a) `$(a.type), $(a.name)` -} - //- rjf: structs -@struct RDI_GlobalVariable: +@struct RDI_Namespace: { - @expand(RDI_GlobalVariableMemberTable a) `$(a.type) $(a.name)` + @expand(RDI_NamespaceMemberTable a) `$(a.type) $(a.name)` } -@struct RDI_ThreadVariable: +@struct RDI_Symbol: { - @expand(RDI_ThreadVariableMemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_Constant: -{ - @expand(RDI_ConstantMemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_Procedure: -{ - @expand(RDI_ProcedureMemberTable a) `$(a.type) $(a.name)` + @expand(RDI_SymbolMemberTable a) `$(a.type) $(a.name)` } @struct RDI_Scope: @@ -1271,103 +1184,86 @@ RDI_LocationRegMemberTable: @expand(RDI_InlineSiteMemberTable a) `$(a.type) $(a.name)` } -@struct RDI_Local: +@struct RDI_LocationSetElement: { - @expand(RDI_LocalMemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_LocationBlock: -{ - @expand(RDI_LocationBlockMemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_LocationBytecodeStream: -{ - @expand(RDI_LocationBytecodeStreamMemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_LocationRegPlusU16: -{ - @expand(RDI_LocationRegPlusU16MemberTable a) `$(a.type) $(a.name)` -} - -@struct RDI_LocationReg: -{ - @expand(RDI_LocationRegMemberTable a) `$(a.type) $(a.name)` + @expand(RDI_LocationSetElementMemberTable a) `$(a.type) $(a.name)` } //////////////////////////////// //~ rjf: Evaluation Bytecode Tables -@table(name value num_decodes num_pops num_pushes) +@table(name value num_decodes num_pops num_pushes bookend) RDI_EvalOpTable: { {Stop 0 0 0 0} {Noop 1 0 0 0} - {Cond 2 1 1 0} + {Cond 2 2 1 0} {Skip 3 2 0 0} {MemRead 4 1 1 1} {RegRead 5 4 0 1} - {RegReadDyn 6 0 1 1} - {FrameOff 7 8 0 1} - {ModuleOff 8 4 0 1} - {TLSOff 9 4 0 1} - {ObjectOff 10 0 0 0} - {CFA 11 0 0 0} - {ConstU8 12 1 0 1} - {ConstU16 13 2 0 1} - {ConstU32 14 4 0 1} - {ConstU64 15 8 0 1} - {ConstU128 16 16 0 1} - {ConstString 17 1 0 1} - {Abs 18 1 1 1} - {Neg 19 1 1 1} - {Add 20 1 2 1} - {Sub 21 1 2 1} - {Mul 22 1 2 1} - {Div 23 1 2 1} - {Mod 24 1 2 1} - {LShift 25 2 2 1} - {RShift 26 2 2 1} - {BitAnd 27 1 2 1} - {BitOr 28 1 2 1} - {BitXor 29 1 2 1} - {BitNot 30 1 1 1} - {LogAnd 31 1 2 1} - {LogOr 32 1 2 1} - {LogNot 33 1 1 1} - {EqEq 34 1 2 1} - {NtEq 35 1 2 1} - {LsEq 36 1 2 1} - {GrEq 37 1 2 1} - {Less 38 1 2 1} - {Grtr 39 1 2 1} - {Trunc 40 1 1 1} - {TruncSigned 41 1 1 1} - {Convert 42 2 1 1} - {Pick 43 1 0 1} - {Pop 44 0 1 0} - {Insert 45 1 0 0} + {FrameOff 6 8 0 1} + {ModuleOff 7 4 0 1} + {TLSOff 8 4 0 1} + {ObjectOff 9 0 0 0} + {CFA 10 0 0 0} + {ConstU8 11 1 0 1} + {ConstU16 12 2 0 1} + {ConstU32 13 4 0 1} + {ConstU64 14 8 0 1} + {ConstU128 15 16 0 1} + {ConstU256 16 32 0 1} + {ConstU512 17 64 0 1} + {ConstString 18 1 0 1} + {Abs 19 2 1 1} + {Neg 20 2 1 1} + {Add 21 2 2 1} + {Sub 22 2 2 1} + {Mul 23 2 2 1} + {Div 24 2 2 1} + {Mod 25 2 2 1} + {LShift 26 2 2 1} + {RShift 27 2 2 1} + {BitAnd 28 2 2 1} + {BitOr 29 2 2 1} + {BitXor 30 2 2 1} + {BitNot 31 2 1 1} + {LogAnd 32 1 2 1 FirstLogical} + {LogOr 33 1 2 1} + {LogNot 34 1 1 1} + {EqEq 35 1 2 1} + {NtEq 36 1 2 1} + {LsEq 37 1 2 1} + {GrEq 38 1 2 1} + {Less 39 1 2 1} + {Grtr 40 1 2 1 LastLogical} + {Trunc 41 1 1 1} + {TruncSigned 42 1 1 1} + {Convert 43 2 1 1} + {Pick 44 1 0 1} + {Pop 45 0 1 0} {ValueRead 46 1 2 1} {ByteSwap 47 1 1 1} {CallSiteValue 48 4 0 0} {PartialValue 49 4 0 0} {PartialValueBit 50 8 0 0} {Swap 51 0 2 2} // swaps the top two entries on the stack - {COUNT 52 0 0 0} + {PushCfa 52 0 0 1} // push canonical frame address on the stack + {COUNT 53 0 0 0} } // NOTE(rjf): "ck" -> "conversion kind, when converted to type group", used in square matrix form // e.g. x:0, y:0 means other -> other, x:3, y:1 means uint -> f32, etc. -@table(name value ck0 ck1 ck2 ck3 ck4) +@table(name value ck0 ck1 ck2 ck3 ck4 ck5 ck6) RDI_EvalTypeGroupTable: { - {Other 0 OtherToOther FromOther FromOther FromOther FromOther } - {U 1 ToOther Noop Noop Legal Legal } - {S 2 ToOther Noop Noop Legal Legal } - {F32 3 ToOther Legal Legal Noop Legal } - {F64 4 ToOther Legal Legal Legal Noop } - {COUNT 5 Noop Noop Noop Noop Noop } + {Other 0 OtherToOther FromOther FromOther FromOther FromOther FromOther FromOther} + {U 1 ToOther Noop Noop Legal Legal Legal Legal } + {S 2 ToOther Noop Noop Legal Legal Legal Legal } + {F32 3 ToOther Legal Legal Noop Legal Legal Legal } + {F64 4 ToOther Legal Legal Legal Noop Legal Legal } + {F80 5 ToOther Legal Legal Legal Legal Noop Legal } + {F128 6 ToOther Legal Legal Legal Legal Legal Noop } + {COUNT 7 Noop Noop Noop Noop Noop Noop Noop } } @table(name value error_string) @@ -1383,7 +1279,8 @@ RDI_EvalConversionKindTable: @enum(RDI_U8) RDI_EvalOp: { - @expand(RDI_EvalOpTable a) `$(a.name .. =>20) = $(a.value)` + @expand(RDI_EvalOpTable a) `$(a.name .. =>20) = $(a.value)`, + @expand(RDI_EvalOpTable a) `$(a.bookend != "" -> a.bookend .. " = RDI_EvalOp_" .. a.name)`, } @enum(RDI_U8) RDI_EvalTypeGroup: @@ -1451,7 +1348,8 @@ RDI_NameMapKindTable: {Types 5} {LinkNameProcedures 6} {NormalSourcePaths 7} - {COUNT 8} + {Units 8} + {COUNT 9} } @table(name type desc) diff --git a/src/rdi/rdi_local.c b/src/rdi/rdi_local.c index 5d46eccd..6e2fc0f6 100644 --- a/src/rdi/rdi_local.c +++ b/src/rdi/rdi_local.c @@ -3,6 +3,9 @@ #include "lib_rdi/rdi.c" #include "lib_rdi/rdi_parse.c" +#if defined(X64_H) +# include "rdi/x64/rdi_x64.c" +#endif //////////////////////////////// //~ rjf: RDI Enum <=> Base Enum @@ -20,6 +23,22 @@ arch_from_rdi_arch(RDI_Arch arch) return result; } +internal RDI_Arch +rdi_arch_from_arch(Arch arch) +{ + RDI_Arch result = RDI_Arch_NULL; + switch(arch) + { + case Arch_COUNT: + case Arch_Null:{}break; + case Arch_x86:{result = RDI_Arch_X86;}break; + case Arch_x64:{result = RDI_Arch_X64;}break; + case Arch_arm64:{}break; + case Arch_arm32:{}break; + } + return result; +} + //////////////////////////////// //~ rjf: Lookup Helpers @@ -31,6 +50,79 @@ str8_from_rdi_string_idx(RDI_Parsed *rdi, U32 idx) return result; } +internal String8 +str8_from_rdi_path_node_idx(Arena *arena, RDI_Parsed *rdi, PathStyle path_style, U32 path_node_idx) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List path_parts = {0}; + for(RDI_FilePathNode *fpn = rdi_element_from_name_idx(rdi, FilePathNodes, path_node_idx); + fpn != rdi_element_from_name_idx(rdi, FilePathNodes, 0); + fpn = rdi_element_from_name_idx(rdi, FilePathNodes, fpn->parent_path_node)) + { + String8 path_part = {0}; + path_part.str = rdi_string_from_idx(rdi, fpn->name_string_idx, &path_part.size); + String8List s = str8_split_path(scratch.arena, path_part); + str8_list_concat_in_place(&s, &path_parts); + path_parts = s; + } + String8 path = str8_path_list_join_by_style(arena, &path_parts, path_style); + scratch_end(scratch); + return path; +} + +internal String8 +fully_qualified_from_rdi_string_and_container(Arena *arena, RDI_Parsed *rdi, U32 name_string_idx, U32 start_container_idx, RDI_ContainerFlags start_container_flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List parts = {0}; + { + str8_list_push(scratch.arena, &parts, str8_from_rdi_string_idx(rdi, name_string_idx)); + RDI_ContainerFlags container_flags = start_container_flags; + RDI_ContainerFlags next_container_flags = 0; + for(U32 container_idx = start_container_idx, next_container_idx = 0; + container_idx != 0; + container_idx = next_container_idx, container_flags = next_container_flags) + { + next_container_idx = 0; + next_container_flags = 0; + switch(container_flags & RDI_ContainerFlag_KindMask) + { + default:{}break; + case RDI_ContainerKind_Type: + { + RDI_UDT *udt = rdi_element_from_name_idx(rdi, UDTs, container_idx); + RDI_TypeNode *type = rdi_element_from_name_idx(rdi, TypeNodes, udt->self_type_idx); + String8 type_name = str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx); + str8_list_push_front(scratch.arena, &parts, type_name); + next_container_idx = udt->container_idx; + next_container_flags = udt->container_flags; + }break; + case RDI_ContainerKind_Scope: + { + RDI_Scope *scope = rdi_element_from_name_idx(rdi, Scopes, container_idx); + RDI_Symbol *symbol = rdi_procedure_from_scope(rdi, scope); + String8 name = str8_from_rdi_string_idx(rdi, symbol->name_string_idx); + str8_list_push_front(scratch.arena, &parts, name); + next_container_idx = symbol->container_idx; + next_container_flags = symbol->container_flags; + }break; + case RDI_ContainerKind_Namespace: + { + RDI_Namespace *ns = rdi_element_from_name_idx(rdi, Namespaces, container_idx); + String8 name = str8_from_rdi_string_idx(rdi, ns->name_string_idx); + str8_list_push_front(scratch.arena, &parts, name); + next_container_idx = ns->container_idx; + next_container_flags = ns->container_flags; + }break; + } + } + } + StringJoin join = {.sep = str8_lit("::")}; + String8 result = str8_list_join(arena, &parts, &join); + scratch_end(scratch); + return result; +} + //////////////////////////////// //~ rjf: String <=> Enum @@ -76,20 +168,6 @@ rdi_string_from_language(Arena *arena, RDI_Language v) return result; } -internal String8 -rdi_string_from_local_kind(Arena *arena, RDI_LocalKind v) -{ - String8 result = {0}; - switch(v) - { - default:{result = push_str8f(arena, "", v);}break; -#define X(name) case RDI_LocalKind_##name:{result = str8_lit(#name);}break; - RDI_LocalKind_XList -#undef X - } - return result; -} - #if 0 internal String8 rdi_string_from_type_kind(Arena *arena, RDI_TypeKind v) @@ -134,20 +212,6 @@ rdi_string_from_name_map_kind(RDI_NameMapKind kind) return result; } -internal String8 -rdi_string_from_reg_code_x86(U64 reg_code) -{ - String8 result = {0}; - switch(reg_code) - { - default:{}break; -#define X(name, value) case RDI_RegCodeX86_##name:{result = str8_lit(#name);}break; - RDI_RegCodeX86_XList -#undef X - } - return result; -} - internal String8 rdi_string_from_reg_code_x64(U64 reg_code) { @@ -170,7 +234,6 @@ rdi_string_from_reg_code(Arena *arena, RDI_Arch arch, U64 reg_code) { default: case RDI_Arch_NULL: {result = push_str8f(arena, "??? (%llu)", reg_code);}break; - case RDI_Arch_X86: {result = rdi_string_from_reg_code_x86(reg_code);}break; case RDI_Arch_X64: {result = rdi_string_from_reg_code_x64(reg_code);}break; } return result; @@ -249,21 +312,6 @@ rdi_string_from_udt_flags(Arena *arena, RDI_UDTFlags flags) return result; } -internal String8 -rdi_string_from_link_flags(Arena *arena, RDI_LinkFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; -#define X(name) if (flags & RDI_LinkFlag_##name) { flags &= ~RDI_LinkFlag_##name; str8_list_push(scratch.arena, &list, str8_lit(#name)); } - RDI_LinkFlags_XList; -#undef X - StringJoin join = {.sep = str8_lit("|")}; - String8 result = str8_list_join(arena, &list, &join); - if(result.size == 0) { result = str8_lit("None"); } - scratch_end(scratch); - return result; -} - internal String8 rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) { @@ -303,7 +351,6 @@ rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) String8 reg_str = rdi_string_from_reg_code(scratch.arena, arch, reg_code); imm_fmt = push_str8f(scratch.arena, "%S+%I64u, Size: %u", reg_str, byte_off, byte_size); } break; - case RDI_EvalOp_RegReadDyn: break; case RDI_EvalOp_FrameOff: { imm_fmt = push_str8f(scratch.arena, "%+lld", *(S64 *)imm.str); } break; @@ -378,10 +425,6 @@ rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) imm_fmt = push_str8f(scratch.arena, "%u", pick); } break; case RDI_EvalOp_Pop: break; - case RDI_EvalOp_Insert: { - U8 insert = *(U8 *)imm.str; - imm_fmt = push_str8f(scratch.arena, "%u", insert); - } break; case RDI_EvalOp_ValueRead: { U8 bytes_to_read = *(U8 *)imm.str; imm_fmt = push_str8f(scratch.arena, "%u", bytes_to_read); @@ -425,103 +468,6 @@ rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc) return result; } -internal String8List -rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range) -{ - String8List strings = {0}; - Temp scratch = scratch_begin(&arena, 1); - U64 location_block_count = 0; - U64 location_data_size = 0; - RDI_LocationBlock *location_block_array = rdi_table_from_name(rdi, LocationBlocks, &location_block_count); - RDI_U8 *location_data = rdi_table_from_name(rdi, LocationData, &location_data_size); - Rng1U64 location_block_range_clamped = r1u64(ClampTop(location_block_range.min, location_block_count), - ClampTop(location_block_range.max, location_block_count)); - for(U64 block_idx = location_block_range_clamped.min; - block_idx < location_block_range_clamped.max; - block_idx +=1) - { - String8 qualifier = {0}; - String8 location_info = {0}; - RDI_LocationBlock *block_ptr = &location_block_array[block_idx]; - if(block_ptr->scope_off_first == 0 && block_ptr->scope_off_opl == max_U32) - { - qualifier = str8_lit("*always*"); - } - else - { - qualifier = push_str8f(scratch.arena, "[%#08x, %#08x): ", block_ptr->scope_off_first, block_ptr->scope_off_opl); - } - if(block_ptr->location_data_off >= location_data_size) - { - location_info = push_str8f(scratch.arena, "", block_ptr->location_data_off); - } - else - { - U8 *loc_data_opl = location_data + location_data_size; - U8 *loc_base_ptr = location_data + block_ptr->location_data_off; - RDI_LocationKind kind = *(RDI_LocationKind *)loc_base_ptr; - switch(kind) - { - default: - { - location_info = push_str8f(scratch.arena, "\?\?\? (%u)", kind); - }break; - case RDI_LocationKind_AddrBytecodeStream: - { - String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); - String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); - location_info = push_str8f(scratch.arena, "AddrBytecodeStream(%S)", bc_str); - }break; - case RDI_LocationKind_ValBytecodeStream: - { - String8 bc = str8_range(loc_base_ptr + 1, loc_data_opl); - String8 bc_str = rdi_string_from_bytecode(scratch.arena, arch, bc); - location_info = push_str8f(scratch.arena, "ValBytecodeStream(%S)", bc_str); - }break; - case RDI_LocationKind_AddrRegPlusU16: - { - if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "AddrRegPlusU16(\?\?\?)"); - } - else - { - RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16*)loc_base_ptr; - location_info = push_str8f(scratch.arena, "AddrRegPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); - } - }break; - case RDI_LocationKind_AddrAddrRegPlusU16: - { - if(loc_base_ptr + sizeof(RDI_LocationRegPlusU16) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "AddrAddrRegPlusU16(\?\?\?)"); - } - else - { - RDI_LocationRegPlusU16 *loc = (RDI_LocationRegPlusU16 *)loc_base_ptr; - location_info = push_str8f(scratch.arena, "AddrAddrRegisterPlusU16(reg: %S, off: %u)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code), loc->offset); - } - }break; - case RDI_LocationKind_ValReg: - { - if(loc_base_ptr + sizeof(RDI_LocationReg) > loc_data_opl) - { - location_info = push_str8f(scratch.arena, "ValReg(\?\?\?)"); - } - else - { - RDI_LocationReg *loc = (RDI_LocationReg*)loc_base_ptr; - location_info = push_str8f(scratch.arena, "ValReg(reg: %S)", rdi_string_from_reg_code(scratch.arena, arch, loc->reg_code)); - } - } break; - } - } - str8_list_pushf(arena, &strings, "%S: %S", qualifier, location_info); - } - scratch_end(scratch); - return strings; -} - //////////////////////////////// //~ rjf: RDI Dumping @@ -548,17 +494,18 @@ rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags fla String8List *strings = 0; #define dump(str) str8_list_push(arena, strings, (str)) #define dumpf(...) str8_list_pushf(arena, strings, __VA_ARGS__) -#define DumpSubset(name) \ +#define DumpSubsetKind(kind) \ if(lane_idx() == 0)\ {\ DumpSubsetOutputNode *n = push_array(scratch.arena, DumpSubsetOutputNode, 1);\ SLLQueuePush(first_output_node, last_output_node, n);\ -n->subset = RDI_DumpSubset_##name;\ +n->subset = (kind);\ n->lane_strings = push_array(scratch.arena, String8List, lane_count());\ }\ lane_sync();\ strings = &last_output_node->lane_strings[lane_idx()];\ -lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) +lane_sync(); if(flags & (1ull<<(kind))) ProfScope((char *)rdi_name_title_from_dump_subset_table[kind].str) +#define DumpSubset(name) DumpSubsetKind(RDI_DumpSubset_##name) ////////////////////////////// //- rjf: dump data sections @@ -606,7 +553,7 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) { if(lane_idx() == 0) { - dumpf("\n // %-16s %-16s %-12s %-12s %-12s %s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); + dumpf("\n // %-32s %-16s %-12s %-12s %-12s %s\n", "name", "flags", "voff_first", "voff_opl", "foff_first", "foff_opl"); } U64 count = 0; RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); @@ -617,7 +564,7 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) RDI_BinarySection *bin_section = &v[idx]; String8 name = str8_from_rdi_string_idx(rdi, bin_section->name_string_idx); String8 flags = rdi_string_from_binary_section_flags(scratch.arena, bin_section->flags); - dumpf(" { %-16S %-16S 0x%-10I64x 0x%-10I64x 0x%-10I64x 0x%-10I64x } // binary_section[%I64u]\n", + dumpf(" { %-32S %-16S 0x%-10I64x 0x%-10I64x 0x%-10I64x 0x%-10I64x } // binary_section[%I64u]\n", push_str8f(scratch.arena, "'%S'", name), push_str8f(scratch.arena, "`%S`", flags), bin_section->voff_first, @@ -718,7 +665,7 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) StringJoin join = {0}; join.sep = str8_lit(", "); String8 checksum_val_string = str8_list_join(arena, &checksum_vals, &join); - dumpf("\n { file_path_node_idx: %4u, source_line_map: %4u, checksum_kind: %10S, checksum_value: %192S, path: %-192S } // source_file[%I64u]", + dumpf("\n { file_path_node_idx: %4u, source_line_map: %4u, checksum_kind: %10S, checksum_value: %32S, path: %-64S } // source_file[%I64u]", source_file->file_path_node_idx, source_file->source_line_map_idx, checksum_kind_name, @@ -744,12 +691,16 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) dumpf("\n // unit[%I64u]\n {\n", idx); dumpf(" unit_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->unit_name_string_idx)); dumpf(" compiler_name: '%S'\n", str8_from_rdi_string_idx(rdi, unit->compiler_name_string_idx)); - dumpf(" source_file_path: %u\n", unit->source_file_path_node); - dumpf(" object_file_path: %u\n", unit->object_file_path_node); - dumpf(" archive_file_path: %u\n", unit->archive_file_path_node); - dumpf(" build_path: %u\n", unit->build_path_node); - dumpf(" language: %S\n", rdi_string_from_language(scratch.arena, unit->language)); - dumpf(" line_table_idx: %u\n", unit->line_table_idx); + dumpf(" source_file_path: %u\n", unit->source_file_path_node); + dumpf(" object_file_path: %u\n", unit->object_file_path_node); + dumpf(" archive_file_path: %u\n", unit->archive_file_path_node); + dumpf(" build_path: %u\n", unit->build_path_node); + dumpf(" language: %S\n", rdi_string_from_language(scratch.arena, unit->language)); + dumpf(" line_table_idx: %u\n", unit->line_table_idx); + dumpf(" procedures_idx_range: [%u, %u)\n", unit->procedures_first_idx, unit->procedures_first_idx + unit->procedures_count); + dumpf(" global_variables_idx_range: [%u, %u)\n", unit->global_variables_first_idx, unit->global_variables_first_idx + unit->global_variables_count); + dumpf(" thread_variables_idx_range: [%u, %u)\n", unit->thread_variables_first_idx, unit->thread_variables_first_idx + unit->thread_variables_count); + dumpf(" constants_idx_range: [%u, %u)\n", unit->constants_first_idx, unit->constants_first_idx + unit->constants_count); dumpf(" }\n"); scratch_end(scratch); } @@ -914,7 +865,8 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) } else if(RDI_TypeKind_FirstUserDefined <= type->kind && type->kind <= RDI_TypeKind_LastUserDefined) { - dumpf(" name: '%S'\n", str8_from_rdi_string_idx(rdi, type->user_defined.name_string_idx)); + String8 fully_qualified_name = fully_qualified_str8_from_rdi_type(scratch.arena, rdi, type); + dumpf(" name: '%S'\n", fully_qualified_name); dumpf(" user_defined__direct_type: %u\n", type->user_defined.direct_type_idx); dumpf(" user_defined__udt: %u\n", type->user_defined.udt_idx); } @@ -944,9 +896,22 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) { RDI_UDT *udt = &v[idx]; Temp scratch = scratch_begin(&arena, 1); - dumpf("\n // udt[%I64u]\n {\n", idx); + String8 fully_qualified_name = fully_qualified_str8_from_rdi_udt(scratch.arena, rdi, udt); + dumpf("\n // udt[%I64u]\n '%S':\n {\n", idx, fully_qualified_name); dumpf(" self_type: %u\n", udt->self_type_idx); dumpf(" flags: `%S`\n", rdi_string_from_udt_flags(scratch.arena, udt->flags)); + if(udt->container_idx != 0 && (udt->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Type) + { + dumpf(" container_udt_idx: %u\n", udt->container_idx); + } + if(udt->container_idx != 0 && (udt->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Scope) + { + dumpf(" container_scope_idx: %u\n", udt->container_idx); + } + if(udt->container_idx != 0 && (udt->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Namespace) + { + dumpf(" container_namespace_idx: %u\n", udt->container_idx); + } if(udt->file_idx != 0) { dumpf(" loc: {file: %u, line: %u, col: %u}\n", udt->file_idx, udt->line, udt->col); @@ -990,28 +955,6 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) } } - ////////////////////////////// - //- rjf: dump global variables - // - DumpSubset(GlobalVariables) - { - U64 count = 0; - RDI_GlobalVariable *v = rdi_table_from_name(rdi, GlobalVariables, &count); - Rng1U64 range = lane_range(count); - for EachInRange(idx, range) - { - RDI_GlobalVariable *gvar = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("\n '%S': // global_variable[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, gvar->name_string_idx), idx); - dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, gvar->link_flags)); - dumpf(" voff: %#08x\n", gvar->voff); - dumpf(" type_idx: %u\n", gvar->type_idx); - dumpf(" container_idx: %u\n", gvar->container_idx); - dumpf(" }\n"); - scratch_end(scratch); - } - } - ////////////////////////////// //- rjf: dump global variables vmap // @@ -1028,76 +971,155 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) } ////////////////////////////// - //- rjf: dump thread variables + //- rjf: dump symbols // - DumpSubset(ThreadVariables) + struct { - U64 count = 0; - RDI_ThreadVariable *v = rdi_table_from_name(rdi, ThreadVariables, &count); - Rng1U64 range = lane_range(count); - for EachInRange(idx, range) - { - RDI_ThreadVariable *tvar = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("\n '%S': // thread_variable[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, tvar->name_string_idx), idx); - dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, tvar->link_flags)); - dumpf(" tls_off: %#08x\n", tvar->tls_off); - dumpf(" type_idx: %u\n", tvar->type_idx); - dumpf(" container_idx: %u\n", tvar->container_idx); - dumpf(" }\n"); - scratch_end(scratch); - } + RDI_DumpSubset subset; + RDI_SectionKind section; } - - ////////////////////////////// - //- rjf: dump constants - // - DumpSubset(Constants) + symbol_tables[] = { - U64 count = 0; - RDI_Constant *v = rdi_table_from_name(rdi, Constants, &count); - Rng1U64 range = lane_range(count); - for EachInRange(idx, range) - { - RDI_Constant *cnst = &v[idx]; - dumpf("\n '%S': // constant[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, cnst->name_string_idx), idx); - dumpf(" type_idx: %u\n", cnst->type_idx); - dumpf(" }\n"); - } - } - - ////////////////////////////// - //- rjf: dump procedures - // - DumpSubset(Procedures) + {RDI_DumpSubset_Procedures, RDI_SectionKind_Procedures}, + {RDI_DumpSubset_GlobalVariables, RDI_SectionKind_GlobalVariables}, + {RDI_DumpSubset_ThreadVariables, RDI_SectionKind_ThreadVariables}, + {RDI_DumpSubset_LocalVariables, RDI_SectionKind_LocalVariables}, + {RDI_DumpSubset_Constants, RDI_SectionKind_Constants}, + {RDI_DumpSubset_LocalVariables, RDI_SectionKind_LocalVariables}, + }; + for EachElement(symbol_table_idx, symbol_tables) { - RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); - U64 count = 0; - RDI_Procedure *v = rdi_table_from_name(rdi, Procedures, &count); - Rng1U64 range = lane_range(count); - for EachInRange(idx, range) + U64 all_bytecode_size = 0; + RDI_U8 *all_bytecode = rdi_table_from_name(rdi, LocationsBytecodeData, &all_bytecode_size); + DumpSubsetKind(symbol_tables[symbol_table_idx].subset) { - RDI_Procedure *proc = &v[idx]; - Temp scratch = scratch_begin(&arena, 1); - dumpf("\n '%S': // procedure[%I64u]\n {\n", str8_from_rdi_string_idx(rdi, proc->name_string_idx), idx); - dumpf(" link_name: '%S'\n", str8_from_rdi_string_idx(rdi, proc->link_name_string_idx)); - dumpf(" link_flags: `%S`\n", rdi_string_from_link_flags(scratch.arena, proc->link_flags)); - dumpf(" type_idx: %u\n", proc->type_idx); - dumpf(" root_scope_idx: %u\n", proc->root_scope_idx); - dumpf(" container_idx: %u\n", proc->container_idx); - if(proc->frame_base_location_first != 0) + String8 table_name = rdi_name_lowercase_from_dump_subset_table[symbol_tables[symbol_table_idx].subset]; + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + U64 count = 0; + RDI_Symbol *v = (RDI_Symbol *)rdi_section_raw_table_from_kind(rdi, symbol_tables[symbol_table_idx].section, &count); + Rng1U64 range = lane_range(count); + for EachInRange(idx, range) { - String8List frame_base_location_strings = rdi_strings_from_locations(scratch.arena, rdi, tli->arch, r1u64(proc->frame_base_location_first, proc->frame_base_location_opl)); - dumpf(" frame_base: // (first: %u, opl: %u)\n", proc->frame_base_location_first, proc->frame_base_location_opl); - dumpf(" {\n"); - for(String8Node *n = frame_base_location_strings.first; n != 0; n = n->next) + RDI_Symbol *symbol = &v[idx]; + Temp scratch = scratch_begin(&arena, 1); + String8 fully_qualified_name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, symbol); + dumpf("\n '%S': // %S[%I64u]\n {\n", fully_qualified_name, table_name, idx); + dumpf(" type_idx: %u\n", symbol->type_idx); + if(symbol->link_name_string_idx != 0) { - dumpf(" %S\n", n->string); + dumpf(" link_name: '%S'\n", str8_from_rdi_string_idx(rdi, symbol->link_name_string_idx)); } - dumpf(" }\n"); + if(symbol->root_scope_idx != 0) + { + dumpf(" root_scope_idx: %u\n", symbol->root_scope_idx); + } + if(symbol->container_idx != 0 && (symbol->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Type) + { + dumpf(" container_udt_idx: %u\n", symbol->container_idx); + } + if(symbol->container_idx != 0 && (symbol->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Scope) + { + dumpf(" container_scope_idx: %u\n", symbol->container_idx); + } + if(symbol->container_idx != 0 && (symbol->container_flags & RDI_ContainerFlag_KindMask) == RDI_ContainerKind_Namespace) + { + dumpf(" container_namespace_idx: %u\n", symbol->container_idx); + } + if(rdi_kind_from_location(symbol->location) != RDI_LocationKind_NULL) + { + RDI_Location *locations = &symbol->location; + RDI_LocationSetElement *locations_set_elements = 0; + U64 locations_count = 1; + U64 stride = sizeof(RDI_LocationSetElement); + if(rdi_kind_from_location(symbol->location) == RDI_LocationKind_Set) + { + U64 set_element_first_idx = rdi_set_first_index_from_location(symbol->location); + U64 set_element_count = rdi_set_count_from_location(symbol->location); + locations_set_elements = rdi_element_from_name_idx(rdi, LocationsSetElements, set_element_first_idx); + locations = &locations_set_elements[0].location; + locations_count = set_element_count; + } + for EachIndex(location_idx, locations_count) + { + RDI_Location location = *(RDI_Location *)((RDI_U8 *)locations + stride*location_idx); + Rng1U64 location_vaddr_range = r1u64(0, max_U64); + if(locations_set_elements) + { + location_vaddr_range = r1u64(locations_set_elements[location_idx].voff_first, locations_set_elements[location_idx].voff_opl); + } + String8 location_kind_string = {0}; + if(0){} +#define X(n) else if(rdi_kind_from_location(location) == RDI_LocationKind_##n) { location_kind_string = str8_lit(#n); } + RDI_LocationKind_XList +#undef X + dumpf(" location:\n"); + dumpf(" {\n"); + dumpf(" kind: %S\n", location_kind_string); + if(location_vaddr_range.min == 0 && location_vaddr_range.max == max_U64) + { + dumpf(" range: *always*\n"); + } + else + { + dumpf(" range: [0x%I64x, 0x%I64x)\n", location_vaddr_range.min, location_vaddr_range.max); + } + switch((RDI_LocationKindEnum)rdi_kind_from_location(location)) + { + case RDI_LocationKind_NULL: + { + dumpf(" *invalid* // null location kind\n"); + }break; + case RDI_LocationKind_Set: + { + dumpf(" *invalid* // set inside of set\n"); + }break; + case RDI_LocationKind_AddrBytecodeStream: + case RDI_LocationKind_ValBytecodeStream: + { + U64 bytecode_data_off = rdi_bytecode_data_off_from_location(location); + U64 bytecode_data_opl = all_bytecode_size; + RDI_U8 *bytecode_ptr = rdi_element_from_name_idx(rdi, LocationsBytecodeData, bytecode_data_off); + String8 bytecode = str8(bytecode_ptr, bytecode_data_opl - bytecode_data_off); + String8 bytecode_stringification = rdi_string_from_bytecode(scratch.arena, tli->arch, bytecode); + dumpf(" bytecode: { %S }\n", bytecode_stringification); + }break; + case RDI_LocationKind_AddrRegPlusOff: + case RDI_LocationKind_AddrAddrRegPlusOff: + { + RDI_RegCode reg_code = rdi_regcode_from_location(location); + S64 reg_off = rdi_regoff_from_location(location); + String8 reg_code_string = rdi_string_from_reg_code(scratch.arena, tli->arch, reg_code); + dumpf(" reg: %S\n", reg_code_string); + dumpf(" reg_off: %I64d (0x%x)\n", reg_off, (U16)reg_off); + }break; + case RDI_LocationKind_ValReg: + { + RDI_RegCode reg_code = rdi_regcode_from_location(location); + String8 reg_code_string = rdi_string_from_reg_code(scratch.arena, tli->arch, reg_code); + dumpf(" reg: %S\n", reg_code_string); + }break; + case RDI_LocationKind_ModuleOff: + { + U64 off = rdi_voff_from_location(location); + dumpf(" voff: 0x%I64x\n", off); + }break; + case RDI_LocationKind_TLSOff: + { + U64 off = rdi_toff_from_location(location); + dumpf(" toff: 0x%I64x\n", off); + }break; + case RDI_LocationKind_ConstantDataOff: + { + U64 off = rdi_constant_data_off_from_location(location); + dumpf(" constant_data_off: 0x%I64x\n", off); + }break; + } + dumpf(" }\n"); + } + } + dumpf(" }\n"); + scratch_end(scratch); } - dumpf(" }\n"); - scratch_end(scratch); } } @@ -1111,7 +1133,7 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) U64 scope_voffs_count = 0; U64 *scope_voffs = rdi_table_from_name(rdi, ScopeVOffData, &scope_voffs_count); U64 locals_count = 0; - RDI_Local *locals = rdi_table_from_name(rdi, Locals, &locals_count); + RDI_Symbol *locals = rdi_table_from_name(rdi, LocalVariables, &locals_count); U64 count = 0; RDI_Scope *v = rdi_table_from_name(rdi, Scopes, &count); RDI_Scope *nil = &v[0]; @@ -1175,23 +1197,8 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) for(U32 local_idx = local_lo; local_idx < local_hi; local_idx += 1) { Temp scratch = scratch_begin(&arena, 1); - RDI_Local *local_ptr = &locals[local_idx]; - dumpf("%.*s '%S': // local[%u]\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx), local_idx); - dumpf("%.*s {\n", depth*2, indent.str); - dumpf("%.*s kind: %S\n", depth*2, indent.str, rdi_string_from_local_kind(scratch.arena, local_ptr->kind)); - dumpf("%.*s type_idx: %u\n", depth*2, indent.str, local_ptr->type_idx); - dumpf("%.*s locations:\n", depth*2, indent.str); - dumpf("%.*s {\n", depth*2, indent.str); - if(local_ptr->location_first < local_ptr->location_opl) - { - String8List locations_strings = rdi_strings_from_locations(arena, rdi, tli->arch, r1u64(local_ptr->location_first, local_ptr->location_opl)); - for(String8Node *n = locations_strings.first; n != 0; n = n->next) - { - dumpf("%.*s %S\n", depth*2, indent.str, n->string); - } - } - dumpf("%.*s }\n", depth*2, indent.str); - dumpf("%.*s }\n", depth*2, indent.str); + RDI_Symbol *local_ptr = &locals[local_idx]; + dumpf("%.*s '%S': {type_idx: %u} // local_variable #%u\n", depth*2, indent.str, str8_from_rdi_string_idx(rdi, local_ptr->name_string_idx), local_ptr->type_idx, local_idx); scratch_end(scratch); } } @@ -1315,6 +1322,42 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) scratch_end(scratch); } + ////////////////////////////// + //- rjf: dump namespaces + // + DumpSubset(Namespaces) + { + U64 count = 0; + RDI_Namespace *v = rdi_table_from_name(rdi, Namespaces, &count); + Rng1U64 range = lane_range(count); + for EachInRange(idx, range) + { + Temp scratch = scratch_begin(&arena, 1); + RDI_Namespace *ns = &v[idx]; + String8 container_kind_name = str8_lit("container_idx"); + switch(ns->container_flags & RDI_ContainerFlag_KindMask) + { + default:{}break; + case RDI_ContainerKind_Type: + { + container_kind_name = str8_lit("container_udt_idx"); + }break; + case RDI_ContainerKind_Namespace: + { + container_kind_name = str8_lit("container_namespace_idx"); + }break; + case RDI_ContainerKind_Scope: + { + container_kind_name = str8_lit("container_scope_idx"); + }break; + } + String8 fully_qualified_name = fully_qualified_str8_from_rdi_namespace(scratch.arena, rdi, ns); + dumpf("\n '%S': {%S: %u} // namespaces[%I64u]", fully_qualified_name, container_kind_name, ns->container_idx, idx); + scratch_end(scratch); + } + if(lane_idx() == lane_count()-1) { dumpf("\n"); } + } + ////////////////////////////// //- rjf: dump strings // @@ -1353,6 +1396,7 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) } lane_sync(); +#undef DumpSubsetKind #undef DumpSubset #undef dumpf #undef dump @@ -1360,3 +1404,93 @@ lane_sync(); if(flags & RDI_DumpSubsetFlag_##name) ProfScope(#name) ProfEnd(); return result_strings; } + +#if SUBPROGRAM_CONVERSION_TEST +internal String8 +rdi_string_from_type(Arena *arena, RDI_Parsed *rdi, RDI_Symbol *proc, RDI_TypeNode *type) +{ + Temp scratch = scratch_begin(&arena, 1); + + String8List fmt = {0}; + String8List arr_fmt = {0}; + + for (RDI_TypeNode *i = type, *n = 0; i != 0; i = n, n = 0) { + if (RDI_TypeKind_FirstConstructed <= i->kind && i->kind <= RDI_TypeKind_LastConstructed) { + n = rdi_element_from_name_idx(rdi, TypeNodes, i->constructed.direct_type_idx); + } + + if (i->kind == RDI_TypeKind_Variadic) { + str8_list_push_frontf(scratch.arena, &fmt, "..."); + } else if (RDI_TypeKind_FirstBuiltIn <= i->kind && i->kind <= RDI_TypeKind_LastBuiltIn) { + String8 built_in_name = str8_from_rdi_string_idx(rdi, i->built_in.name_string_idx); + str8_list_push_front(scratch.arena, &fmt, built_in_name); + } else if (i->kind == RDI_TypeKind_Alias) { + String8 alias_name = str8_from_rdi_string_idx(rdi, i->user_defined.name_string_idx); + str8_list_push_front(scratch.arena, &fmt, alias_name); + } else if (i->kind == RDI_TypeKind_Modifier) { + for EachBit(f, i->flags) { + str8_list_push_front(scratch.arena, &fmt, rdi_string_from_type_modifier_flags(scratch.arena, f)); + } + } else if (i->kind == RDI_TypeKind_Ptr) { + str8_list_push_front(scratch.arena, &fmt, str8_lit("*")); + } else if (i->kind == RDI_TypeKind_LRef) { + str8_list_push_front(scratch.arena, &fmt, str8_lit("&")); + } else if (i->kind == RDI_TypeKind_RRef) { + str8_list_push_front(scratch.arena, &fmt, str8_lit("&&")); + } else if (i->kind == RDI_TypeKind_Array) { + str8_list_push_frontf(scratch.arena, &arr_fmt, "[%llu]", i->constructed.count); + } else if (i->kind == RDI_TypeKind_Function) { + String8 *param_names = 0; + String8 proc_name = {0}; + if (proc) { + RDI_TypeNode *proc_type = rdi_element_from_name_idx(rdi, TypeNodes, proc->type_idx); + if (proc_type == i) { + proc_name = str8_from_rdi_string_idx(rdi, proc->name_string_idx); + param_names = push_array(scratch.arena, String8, i->constructed.count); + RDI_Scope *root_scope = rdi_element_from_name_idx(rdi, Scopes, proc->root_scope_idx); + U64 param_idx = 0; + for (U64 local_idx = root_scope->local_first; local_idx < root_scope->local_first + root_scope->local_count; local_idx += 1) { + RDI_Local *local = rdi_element_from_name_idx(rdi, Locals, local_idx); + if (local->kind == RDI_LocalKind_Parameter) { + AssertAlways(param_idx < i->constructed.count); + param_names[param_idx++] = str8_from_rdi_string_idx(rdi, local->name_string_idx); + } + } + } + } + + // format parameters + String8List params_fmt = {0}; + U32 check_count = 0; + U32 *idx_run = rdi_idx_run_from_first_count(rdi, i->constructed.param_idx_run_first, i->constructed.count, &check_count); + if (check_count == type->constructed.count) { + for EachIndex(param_idx, i->constructed.count) { + RDI_TypeNode *param_type = rdi_element_from_name_idx(rdi, TypeNodes, idx_run[param_idx]); + String8 param_string = rdi_string_from_type(scratch.arena, rdi, 0, param_type); + if (param_names) { + str8_list_pushf(scratch.arena, ¶ms_fmt, "%S %S", param_string, param_names[param_idx]); + } else { + str8_list_push(scratch.arena, ¶ms_fmt, param_string); + } + } + } else { + str8_list_pushf(scratch.arena, ¶ms_fmt, "???"); + } + + // format signature + String8 params = str8_list_join(scratch.arena, ¶ms_fmt, &(StringJoin){.sep=str8_lit(", ")}); + str8_list_pushf(scratch.arena, &fmt, "(* %S)(%S)", proc_name, params); + } + + if (arr_fmt.node_count && i->kind != RDI_TypeKind_Array) { + str8_list_push_frontf(scratch.arena, &fmt, "("); + str8_list_concat_in_place(&fmt, &arr_fmt); + str8_list_pushf(scratch.arena, &fmt, ")"); + } + } + + String8 result = str8_list_join(arena, &fmt, 0); + scratch_end(scratch); + return result; +} +#endif diff --git a/src/rdi/rdi_local.h b/src/rdi/rdi_local.h index ea69cc8b..c7ef8f78 100644 --- a/src/rdi/rdi_local.h +++ b/src/rdi/rdi_local.h @@ -6,6 +6,9 @@ #include "lib_rdi/rdi.h" #include "lib_rdi/rdi_parse.h" +#if defined(X64_H) +# include "rdi/x64/rdi_x64.h" +#endif //////////////////////////////// //~ rjf: RDI Dumping Flags @@ -25,12 +28,14 @@ X(UserDefinedTypes, user_defined_types, "USER DEFINED TYPES")\ X(GlobalVariables, global_variables, "GLOBAL VARIABLES")\ X(GlobalVariablesVMap, global_variables_vmap, "GLOBAL VARIABLE VMAP")\ X(ThreadVariables, thread_variables, "THREAD VARIABLES")\ +X(LocalVariables, local_variables, "LOCAL VARIABLES")\ X(Constants, constants, "CONSTANTS")\ X(Procedures, procedures, "PROCEDURES")\ X(Scopes, scopes, "SCOPES")\ X(ScopeVMap, scope_vmap, "SCOPE VMAP")\ X(InlineSites, inline_sites, "INLINE SITES")\ X(NameMaps, name_maps, "NAME MAPS")\ +X(Namespaces, namespaces, "NAMESPACES")\ X(Strings, strings, "STRINGS")\ typedef enum RDI_DumpSubset @@ -68,11 +73,18 @@ read_only global String8 rdi_name_title_from_dump_subset_table[] = //~ rjf: RDI Enum <=> Base Enum internal Arch arch_from_rdi_arch(RDI_Arch arch); +internal RDI_Arch rdi_arch_from_arch(Arch arch); //////////////////////////////// //~ rjf: Lookup Helpers internal String8 str8_from_rdi_string_idx(RDI_Parsed *rdi, U32 idx); +internal String8 str8_from_rdi_path_node_idx(Arena *arena, RDI_Parsed *rdi, PathStyle path_style, U32 path_node_idx); +internal String8 fully_qualified_from_rdi_string_and_container(Arena *arena, RDI_Parsed *rdi, U32 name_string_idx, U32 start_container_idx, RDI_ContainerFlags start_container_flags); +#define fully_qualified_str8_from_rdi_symbol(arena, rdi, symbol) fully_qualified_from_rdi_string_and_container((arena), (rdi), (symbol)->name_string_idx, (symbol)->container_idx, (symbol)->container_flags) +#define fully_qualified_str8_from_rdi_udt(arena, rdi, udt) fully_qualified_from_rdi_string_and_container((arena), (rdi), rdi_element_from_name_idx((rdi), TypeNodes, (udt)->self_type_idx)->user_defined.name_string_idx, (udt)->container_idx, (udt)->container_flags) +#define fully_qualified_str8_from_rdi_type(arena, rdi, type) fully_qualified_from_rdi_string_and_container((arena), (rdi), (type)->user_defined.name_string_idx, rdi_element_from_name_idx((rdi), UDTs, (type)->user_defined.udt_idx)->container_idx, rdi_element_from_name_idx((rdi), UDTs, (type)->user_defined.udt_idx)->container_flags) +#define fully_qualified_str8_from_rdi_namespace(arena, rdi, ns) fully_qualified_from_rdi_string_and_container((arena), (rdi), (ns)->name_string_idx, (ns)->container_idx, (ns)->container_flags) //////////////////////////////// //~ rjf: String <=> Enum @@ -80,7 +92,6 @@ internal String8 str8_from_rdi_string_idx(RDI_Parsed *rdi, U32 idx); internal String8 rdi_string_from_data_section_kind(Arena *arena, RDI_SectionKind v); internal String8 rdi_string_from_arch (Arena *arena, RDI_Arch v); internal String8 rdi_string_from_language (Arena *arena, RDI_Language v); -internal String8 rdi_string_from_local_kind (Arena *arena, RDI_LocalKind v); #if 0 // TODO(rjf): conflicts with RDI... internal String8 rdi_string_from_type_kind (Arena *arena, RDI_TypeKind v); #endif @@ -88,15 +99,18 @@ internal String8 rdi_string_from_member_kind (Arena *arena, RDI_MemberKind internal String8 rdi_string_from_name_map_kind(RDI_NameMapKind kind); internal String8 rdi_string_from_binary_section_flags(Arena *arena, RDI_BinarySectionFlags flags); -internal String8 rdi_string_from_type_modifier (Arena *arena, RDI_TypeModifierFlags flags); +internal String8 rdi_string_from_type_modifier_flags (Arena *arena, RDI_TypeModifierFlags flags); internal String8 rdi_string_from_udt_flags (Arena *arena, RDI_UDTFlags flags); -internal String8 rdi_string_from_link_flags (Arena *arena, RDI_LinkFlags flags); internal String8 rdi_string_from_bytecode(Arena *arena, RDI_Arch arch, String8 bc); -internal String8List rdi_strings_from_locations(Arena *arena, RDI_Parsed *rdi, RDI_Arch arch, Rng1U64 location_block_range); //////////////////////////////// //~ rjf: RDI Dumping internal String8List rdi_dump_list_from_parsed(Arena *arena, RDI_Parsed *rdi, RDI_DumpSubsetFlags flags); +//////////////////////////////// +//~ Type Formatter + +internal String8 rdi_string_from_type(Arena *arena, RDI_Parsed *rdi, RDI_Symbol *proc, RDI_TypeNode *type); + #endif // RDI_FORMAT_LOCAL_H diff --git a/src/rdi/x64/generated/rdi_x64.meta.c b/src/rdi/x64/generated/rdi_x64.meta.c new file mode 100644 index 00000000..68f9269f --- /dev/null +++ b/src/rdi/x64/generated/rdi_x64.meta.c @@ -0,0 +1,201 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +U8 rdi_reg_code_from_x64_table[189] = +{ +RDI_RegCodeX64_nil, +RDI_RegCodeX64_rax, +RDI_RegCodeX64_rcx, +RDI_RegCodeX64_rdx, +RDI_RegCodeX64_rbx, +RDI_RegCodeX64_rsp, +RDI_RegCodeX64_rbp, +RDI_RegCodeX64_rsi, +RDI_RegCodeX64_rdi, +RDI_RegCodeX64_r8, +RDI_RegCodeX64_r9, +RDI_RegCodeX64_r10, +RDI_RegCodeX64_r11, +RDI_RegCodeX64_r12, +RDI_RegCodeX64_r13, +RDI_RegCodeX64_r14, +RDI_RegCodeX64_r15, +RDI_RegCodeX64_fsbase, +RDI_RegCodeX64_gsbase, +RDI_RegCodeX64_rip, +RDI_RegCodeX64_rflags, +RDI_RegCodeX64_dr0, +RDI_RegCodeX64_dr1, +RDI_RegCodeX64_dr2, +RDI_RegCodeX64_dr3, +RDI_RegCodeX64_dr4, +RDI_RegCodeX64_dr5, +RDI_RegCodeX64_dr6, +RDI_RegCodeX64_dr7, +RDI_RegCodeX64_st0, +RDI_RegCodeX64_st1, +RDI_RegCodeX64_st2, +RDI_RegCodeX64_st3, +RDI_RegCodeX64_st4, +RDI_RegCodeX64_st5, +RDI_RegCodeX64_st6, +RDI_RegCodeX64_st7, +RDI_RegCodeX64_fcw, +RDI_RegCodeX64_fsw, +RDI_RegCodeX64_ftw, +RDI_RegCodeX64_fop, +RDI_RegCodeX64_fcs, +RDI_RegCodeX64_fds, +RDI_RegCodeX64_fip, +RDI_RegCodeX64_fdp, +RDI_RegCodeX64_mxcsr, +RDI_RegCodeX64_mxcsr_mask, +RDI_RegCodeX64_ss, +RDI_RegCodeX64_cs, +RDI_RegCodeX64_ds, +RDI_RegCodeX64_es, +RDI_RegCodeX64_fs, +RDI_RegCodeX64_gs, +RDI_RegCodeX64_zmm0, +RDI_RegCodeX64_zmm1, +RDI_RegCodeX64_zmm2, +RDI_RegCodeX64_zmm3, +RDI_RegCodeX64_zmm4, +RDI_RegCodeX64_zmm5, +RDI_RegCodeX64_zmm6, +RDI_RegCodeX64_zmm7, +RDI_RegCodeX64_zmm8, +RDI_RegCodeX64_zmm9, +RDI_RegCodeX64_zmm10, +RDI_RegCodeX64_zmm11, +RDI_RegCodeX64_zmm12, +RDI_RegCodeX64_zmm13, +RDI_RegCodeX64_zmm14, +RDI_RegCodeX64_zmm15, +RDI_RegCodeX64_zmm16, +RDI_RegCodeX64_zmm17, +RDI_RegCodeX64_zmm18, +RDI_RegCodeX64_zmm19, +RDI_RegCodeX64_zmm20, +RDI_RegCodeX64_zmm21, +RDI_RegCodeX64_zmm22, +RDI_RegCodeX64_zmm23, +RDI_RegCodeX64_zmm24, +RDI_RegCodeX64_zmm25, +RDI_RegCodeX64_zmm26, +RDI_RegCodeX64_zmm27, +RDI_RegCodeX64_zmm28, +RDI_RegCodeX64_zmm29, +RDI_RegCodeX64_zmm30, +RDI_RegCodeX64_zmm31, +RDI_RegCodeX64_k0, +RDI_RegCodeX64_k1, +RDI_RegCodeX64_k2, +RDI_RegCodeX64_k3, +RDI_RegCodeX64_k4, +RDI_RegCodeX64_k5, +RDI_RegCodeX64_k6, +RDI_RegCodeX64_k7, +RDI_RegCodeX64_cetmsr, +RDI_RegCodeX64_cetssp, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +}; + +C_LINKAGE_END + diff --git a/src/rdi/x64/generated/rdi_x64.meta.h b/src/rdi/x64/generated/rdi_x64.meta.h new file mode 100644 index 00000000..82c9e28f --- /dev/null +++ b/src/rdi/x64/generated/rdi_x64.meta.h @@ -0,0 +1,14 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RDI_X64_META_H +#define RDI_X64_META_H + +C_LINKAGE_BEGIN +extern U8 rdi_reg_code_from_x64_table[189]; + +C_LINKAGE_END + +#endif // RDI_X64_META_H diff --git a/src/linker/rdi/rdi_coff.h b/src/rdi/x64/rdi_x64.c similarity index 55% rename from src/linker/rdi/rdi_coff.h rename to src/rdi/x64/rdi_x64.c index caefb833..1a7ce768 100644 --- a/src/linker/rdi/rdi_coff.h +++ b/src/rdi/x64/rdi_x64.c @@ -1,7 +1,4 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -#pragma once - -internal RDI_Arch rdi_arch_from_coff_machine(COFF_MachineType machine); - +#include "rdi/x64/generated/rdi_x64.meta.c" diff --git a/src/rdi/x64/rdi_x64.h b/src/rdi/x64/rdi_x64.h new file mode 100644 index 00000000..46cb0858 --- /dev/null +++ b/src/rdi/x64/rdi_x64.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef RDI_X64_H +#define RDI_X64_H + +#include "rdi/x64/generated/rdi_x64.meta.h" + +#endif // RDI_X64_H diff --git a/src/rdi/x64/rdi_x64.mdesk b/src/rdi/x64/rdi_x64.mdesk new file mode 100644 index 00000000..e244f037 --- /dev/null +++ b/src/rdi/x64/rdi_x64.mdesk @@ -0,0 +1,7 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@data(U8) rdi_reg_code_from_x64_table: +{ + @expand(X64_RegTable a) `$(a.has_rdi == 'x' -> "RDI_RegCodeX64_" .. a.name)$(a.has_rdi != 'x' -> 0)` +} diff --git a/src/rdi_from_codeview/rdi_from_codeview.c b/src/rdi_from_codeview/rdi_from_codeview.c new file mode 100644 index 00000000..0fceeffc --- /dev/null +++ b/src/rdi_from_codeview/rdi_from_codeview.c @@ -0,0 +1,5112 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +// TODO(rjf): eliminate redundant null checks, just always allocate +// empty results, and have nulls gracefully fall through +// +// (search for != 0 instances, inserted to prevent prior crashes) + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal U64 +cv2r_end_of_cplusplus_container_name(String8 str) +{ + // NOTE: This finds the index one past the last "::" contained in str. + // if no "::" is contained in str, then the returned index is 0. + // The intent is that [0,clamp_bot(0,result - 2)) gives the + // "container name" and [result,str.size) gives the leaf name. + U64 result = 0; + if(str.size >= 2) + { + S64 template_nest_depth = 0; + for(U64 i = str.size; i >= 2; i -= 1) + { + if(template_nest_depth == 0 && str.str[i - 2] == ':' && str.str[i - 1] == ':') + { + result = i; + break; + } + if(str.str[i-1] == '>') + { + template_nest_depth += 1; + } + else if(str.str[i-1] == '<') + { + template_nest_depth -= 1; + template_nest_depth = ClampBot(template_nest_depth, 0); + } + } + } + return result; +} + +internal U64 +cv2r_hash_from_voff(U64 voff) +{ + U64 hash = (voff >> 3) ^ ((7 & voff) << 6); + return hash; +} + +internal int +cv2r_namespace_node_is_before(void *raw_a, void *raw_b) +{ + CV2R_NamespaceNode **a = (CV2R_NamespaceNode **)raw_a, **b = (CV2R_NamespaceNode **)raw_b; + return (str8_compar(a[0]->string, b[0]->string, 0) < 0); +} + +internal U64 +cv2r_voff_from_soff(CV2R_Section *sections, U64 sections_count, U64 sec_num, U64 soff) +{ + U64 result = 0; + if(0 < sec_num && sec_num <= sections_count) + { + result = sections[sec_num-1].voff + soff; + } + return result; +} + +//////////////////////////////// +//~ rjf: String Table Functions + +internal String8 +cv2r_string_from_off(CV2R_StringTable *strtbl, U64 off) +{ + U32 strblock_max = strtbl->strblock_max; + U32 full_off_raw = strtbl->strblock_min + off; + U32 full_off = ClampTop(full_off_raw, strblock_max); + String8 result = str8_cstring_capped((char*)(strtbl->data.str + full_off), + (char*)(strtbl->data.str + strblock_max)); + return result; +} + +//////////////////////////////// +//~ rjf: Compilation Unit Contribution Functions + +internal CV2R_CompUnitContribution * +cv2r_comp_unit_contribution_from_voff__binary_search(CV2R_CompUnitContribution *contributions, U64 contributions_count, U64 voff) +{ + CV2R_CompUnitContribution *result = 0; + if(contributions_count != 0) + { + U64 first_idx = 0; + U64 last_idx = contributions_count-1; + for(;first_idx < last_idx;) + { + U64 mid_idx = (last_idx + first_idx) / 2; + U64 mid_voff_first = contributions[mid_idx].voff_first; + U64 mid_voff_opl = contributions[mid_idx].voff_opl; + if(voff < mid_voff_first) + { + last_idx = mid_idx; + } + else if(mid_voff_opl <= voff) + { + first_idx = mid_idx+1; + } + else + { + result = &contributions[mid_idx]; + break; + } + } + } + return result; +} + +//////////////////////////////// +//~ rjf: TPI Hash Table Functions + +internal U32 +cv2r_tpi_hash_from_data(String8 string) +{ + U32 result = 0; + U8 *ptr = string.str; + for(U8 *opl = ptr + (string.size & (~3)); ptr < opl; ptr += 4) + { + result ^= memory_read32(ptr); + } + if((string.size & 2) != 0) + { + result ^= memory_read16(ptr); ptr += 2; + } + if((string.size & 1) != 0) + { + result ^= memory_read8(ptr); + } + result |= 0x20202020; + result ^= (result >> 11); + result ^= (result >> 16); + return result; +} + +internal CV_TypeIdArray +cv2r_itypes_from_name(Arena *arena, CV2R_TPIHash *tpi_hash, CV_LeafParsed *leaf, String8 name, B32 compare_unique_name, U32 output_cap) +{ + CV_TypeIdArray result = {0}; + if(tpi_hash->bucket_count != 0) + { + Temp scratch = scratch_begin(&arena, 1); + U32 hash = cv2r_tpi_hash_from_data(name); + U32 bucket_idx = ((tpi_hash->bucket_mask != 0) ? + hash&tpi_hash->bucket_mask : + hash%tpi_hash->bucket_count); + CV_TypeId itype_first = leaf->itype_first; + CV_TypeId itype_opl = leaf->itype_opl; + String8 data = leaf->data; + struct Chain + { + struct Chain *next; + CV_TypeId itype; + }; + struct Chain *first = 0; + struct Chain *last = 0; + U32 count = 0; + + for(CV2R_TPIHashBlock *block = tpi_hash->buckets[bucket_idx]; + block != 0; + block = block->next) + { + U32 local_count = block->local_count; + CV_TypeId *itype_ptr = block->itypes; + for (U32 i = 0; i < local_count; i += 1, itype_ptr += 1){ + + String8 extracted_name = {0}; + + CV_TypeId itype = *itype_ptr; + if (itype_first <= itype && itype < itype_opl){ + CV_RecRange *range = &leaf->leaf_ranges.ranges[itype - leaf->itype_first]; + if (range->off + range->hdr.size <= data.size){ + U8 *first = data.str + range->off + 2; + U64 cap = range->hdr.size - 2; + + switch (range->hdr.kind){ + default:break; + + case CV_LeafKind_CLASS: + case CV_LeafKind_STRUCTURE: + { + if (sizeof(CV_LeafStruct) <= cap){ + CV_LeafStruct *lf_struct = (CV_LeafStruct*)first; + + if (!(lf_struct->props & CV_TypeProp_FwdRef)){ + // size + U8 *numeric_ptr = (U8*)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, first + cap); + + // name + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped((char*)name_ptr, (char *)(first + cap)); + + // unique name + if (compare_unique_name){ + if (lf_struct->props & CV_TypeProp_HasUniqueName) { + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped((char*)unique_name_ptr, (char *)(first + cap)); + extracted_name = unique_name; + } + } + else{ + extracted_name = name; + } + } + } + }break; + + case CV_LeafKind_CLASS2: + case CV_LeafKind_STRUCT2: + { + if (sizeof(CV_LeafStruct2) <= cap){ + CV_LeafStruct2 *lf_struct = (CV_LeafStruct2*)first; + + if (!(lf_struct->props & CV_TypeProp_FwdRef)){ + // size + U8 *numeric_ptr = (U8*)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, first + cap); + + // name + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped((char*)name_ptr, (char *)(first + cap)); + + // unique name + if (compare_unique_name){ + if (lf_struct->props & CV_TypeProp_HasUniqueName) { + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped((char*)unique_name_ptr, (char *)(first + cap)); + extracted_name = unique_name; + } + } + else{ + extracted_name = name; + } + } + } + }break; + + case CV_LeafKind_UNION: + { + if (sizeof(CV_LeafUnion) <= cap){ + CV_LeafUnion *lf_union = (CV_LeafUnion*)first; + + if (!(lf_union->props & CV_TypeProp_FwdRef)){ + // size + U8 *numeric_ptr = (U8*)(lf_union + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, first + cap); + + // name + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped((char*)name_ptr, (char *)(first + cap)); + + // unique name + if (compare_unique_name){ + if (lf_union->props & CV_TypeProp_HasUniqueName) { + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped((char*)unique_name_ptr, (char *)(first + cap)); + extracted_name = unique_name; + } + } + else{ + extracted_name = name; + } + } + } + }break; + + case CV_LeafKind_ENUM: + { + if (sizeof(CV_LeafEnum) <= cap){ + CV_LeafEnum *lf_enum = (CV_LeafEnum*)first; + + if (!(lf_enum->props & CV_TypeProp_FwdRef)){ + // name + U8 *name_ptr = (U8*)(lf_enum + 1); + String8 name = str8_cstring_capped((char*)name_ptr, (char *)(first + cap)); + + // unique name + if (compare_unique_name){ + if (lf_enum->props & CV_TypeProp_HasUniqueName) { + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped((char*)unique_name_ptr, (char *)(first + cap)); + extracted_name = unique_name; + } + } + else{ + extracted_name = name; + } + } + } + }break; + } + } + } + + if (str8_match(extracted_name, name, 0)){ + struct Chain *chain = push_array(scratch.arena, struct Chain, 1); + SLLQueuePush(first, last, chain); + count += 1; + chain->itype = itype; + if (count == output_cap){ + goto dblbreak; + } + } + } + } + + dblbreak:; + + + // assemble result + CV_TypeId *itypes = push_array_aligned(arena, CV_TypeId, count, 8); + { + CV_TypeId *itype_ptr = itypes; + for (struct Chain *node = first; + node != 0; + node = node->next, itype_ptr += 1){ + *itype_ptr = node->itype; + } + } + result.itypes = itypes; + result.count = count; + + scratch_end(scratch); + } + return result; +} + +internal CV_TypeId +cv2r_first_itype_from_name(CV2R_TPIHash *tpi_hash, CV_LeafParsed *tpi_leaf, String8 name, B32 compare_unique_name) +{ + Temp scratch = scratch_begin(0, 0); + CV_TypeIdArray array = cv2r_itypes_from_name(scratch.arena, tpi_hash, tpi_leaf, name, compare_unique_name, 1); + CV_TypeId result = 0; + if(array.count > 0) + { + result = array.itypes[0]; + } + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: CodeView => RDI Canonical Conversions + +internal RDI_Arch +cv2r_rdi_arch_from_cv_arch(CV_Arch arch) +{ + RDI_Arch result = 0; + switch(arch) + { + case CV_Arch_8086:{}break; + case CV_Arch_X64:{result = RDI_Arch_X64;}break; + //case CV_Arch_8080: break; + //case CV_Arch_80286: break; + //case CV_Arch_80386: break; + //case CV_Arch_80486: break; + //case CV_Arch_PENTIUM: break; + //case CV_Arch_PENTIUMII: break; + //case CV_Arch_PENTIUMIII: break; + //case CV_Arch_MIPS: break; + //case CV_Arch_MIPS16: break; + //case CV_Arch_MIPS32: break; + //case CV_Arch_MIPS64: break; + //case CV_Arch_MIPSI: break; + //case CV_Arch_MIPSII: break; + //case CV_Arch_MIPSIII: break; + //case CV_Arch_MIPSIV: break; + //case CV_Arch_MIPSV: break; + //case CV_Arch_M68000: break; + //case CV_Arch_M68010: break; + //case CV_Arch_M68020: break; + //case CV_Arch_M68030: break; + //case CV_Arch_M68040: break; + //case CV_Arch_ALPHA: break; + //case CV_Arch_ALPHA_21164: break; + //case CV_Arch_ALPHA_21164A: break; + //case CV_Arch_ALPHA_21264: break; + //case CV_Arch_ALPHA_21364: break; + //case CV_Arch_PPC601: break; + //case CV_Arch_PPC603: break; + //case CV_Arch_PPC604: break; + //case CV_Arch_PPC620: break; + //case CV_Arch_PPCFP: break; + //case CV_Arch_PPCBE: break; + //case CV_Arch_SH3: break; + //case CV_Arch_SH3E: break; + //case CV_Arch_SH3DSP: break; + //case CV_Arch_SH4: break; + //case CV_Arch_SHMEDIA: break; + //case CV_Arch_ARM3: break; + //case CV_Arch_ARM4: break; + //case CV_Arch_ARM4T: break; + //case CV_Arch_ARM5: break; + //case CV_Arch_ARM5T: break; + //case CV_Arch_ARM6: break; + //case CV_Arch_ARM_XMAC: break; + //case CV_Arch_ARM_WMMX: break; + //case CV_Arch_ARM7: break; + //case CV_Arch_OMNI: break; + //case CV_Arch_IA64_1: break; + //case CV_Arch_IA64_2: break; + //case CV_Arch_CEE: break; + //case CV_Arch_AM33: break; + //case CV_Arch_M32R: break; + //case CV_Arch_TRICORE: break; + //case CV_Arch_EBC: break; + //case CV_Arch_THUMB: break; + //case CV_Arch_ARMNT: break; + //case CV_Arch_ARM64: break; + //case CV_Arch_D3D11_SHADER: break; + } + return result; +} + +internal RDI_RegCode +cv2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code) +{ + RDI_RegCode result = 0; + switch(arch) + { + case RDI_Arch_X64: + { + switch(reg_code) + { +#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX64_##RDN; break; + CV_Reg_X64_XList(X) +#undef X + } + }break; + } + return(result); +} + +internal RDI_Language +cv2r_rdi_language_from_cv_language(CV_Language language) +{ + RDI_Language result = 0; + switch(language) + { + case CV_Language_C: result = RDI_Language_C; break; + case CV_Language_CXX: result = RDI_Language_CPlusPlus; break; + //case CV_Language_FORTRAN: result = ; break; + //case CV_Language_MASM: result = ; break; + //case CV_Language_PASCAL: result = ; break; + //case CV_Language_BASIC: result = ; break; + //case CV_Language_COBOL: result = ; break; + //case CV_Language_LINK: result = ; break; + //case CV_Language_CVTRES: result = ; break; + //case CV_Language_CVTPGD: result = ; break; + //case CV_Language_CSHARP: result = ; break; + //case CV_Language_VB: result = ; break; + //case CV_Language_ILASM: result = ; break; + //case CV_Language_JAVA: result = ; break; + //case CV_Language_JSCRIPT: result = ; break; + //case CV_Language_MSIL: result = ; break; + //case CV_Language_HLSL: result = ; break; + } + return(result); +} + +internal RDI_TypeKind +cv2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type) +{ + RDI_TypeKind result = RDI_TypeKind_Null; + switch(basic_type) + { + case CV_BasicType_VOID: {result = RDI_TypeKind_Void;}break; + case CV_BasicType_HRESULT: {result = RDI_TypeKind_HResult;}break; + + case CV_BasicType_RCHAR: + case CV_BasicType_CHAR: + case CV_BasicType_CHAR8: + {result = RDI_TypeKind_Char8;}break; + + case CV_BasicType_UCHAR: {result = RDI_TypeKind_UChar8;}break; + case CV_BasicType_WCHAR: {result = RDI_TypeKind_UChar16;}break; + case CV_BasicType_CHAR16: {result = RDI_TypeKind_Char16;}break; + case CV_BasicType_CHAR32: {result = RDI_TypeKind_Char32;}break; + + case CV_BasicType_BOOL8: + case CV_BasicType_INT8: + {result = RDI_TypeKind_S8;}break; + + case CV_BasicType_BOOL16: + case CV_BasicType_INT16: + case CV_BasicType_SHORT: + {result = RDI_TypeKind_S16;}break; + + case CV_BasicType_BOOL32: + case CV_BasicType_INT32: + case CV_BasicType_LONG: + {result = RDI_TypeKind_S32;}break; + + case CV_BasicType_BOOL64: + case CV_BasicType_INT64: + case CV_BasicType_QUAD: + {result = RDI_TypeKind_S64;}break; + + case CV_BasicType_INT128: + case CV_BasicType_OCT: + {result = RDI_TypeKind_S128;}break; + + case CV_BasicType_UINT8: {result = RDI_TypeKind_U8;}break; + + case CV_BasicType_UINT16: + case CV_BasicType_USHORT: + {result = RDI_TypeKind_U16;}break; + + case CV_BasicType_UINT32: + case CV_BasicType_ULONG: + {result = RDI_TypeKind_U32;}break; + + case CV_BasicType_UINT64: + case CV_BasicType_UQUAD: + {result = RDI_TypeKind_U64;}break; + + case CV_BasicType_UINT128: + case CV_BasicType_UOCT: + {result = RDI_TypeKind_U128;}break; + + case CV_BasicType_FLOAT16:{result = RDI_TypeKind_F16;}break; + case CV_BasicType_FLOAT32:{result = RDI_TypeKind_F32;}break; + case CV_BasicType_FLOAT32PP:{result = RDI_TypeKind_F32PP;}break; + case CV_BasicType_FLOAT48:{result = RDI_TypeKind_F48;}break; + case CV_BasicType_FLOAT64:{result = RDI_TypeKind_F64;}break; + case CV_BasicType_FLOAT80:{result = RDI_TypeKind_F80;}break; + case CV_BasicType_FLOAT128:{result = RDI_TypeKind_F128;}break; + case CV_BasicType_COMPLEX32:{result = RDI_TypeKind_ComplexF32;}break; + case CV_BasicType_COMPLEX64:{result = RDI_TypeKind_ComplexF64;}break; + case CV_BasicType_COMPLEX80:{result = RDI_TypeKind_ComplexF80;}break; + case CV_BasicType_COMPLEX128:{result = RDI_TypeKind_ComplexF128;}break; + case CV_BasicType_PTR:{result = RDI_TypeKind_Handle;}break; + } + return result; +} + +internal RDI_ChecksumKind +cv2r_rdi_from_cv_c13_checksum_kind(CV_C13ChecksumKind k) +{ + RDI_ChecksumKind result = RDI_ChecksumKind_NULL; + switch((CV_C13ChecksumKindEnum)k) + { + case CV_C13ChecksumKind_Null: {result = RDI_ChecksumKind_NULL;}break; + case CV_C13ChecksumKind_MD5: {result = RDI_ChecksumKind_MD5;}break; + case CV_C13ChecksumKind_SHA1: {result = RDI_ChecksumKind_SHA1;}break; + case CV_C13ChecksumKind_SHA256:{result = RDI_ChecksumKind_SHA256;}break; + } + return result; +} + +//////////////////////////////// +//~ rjf: Location Info Building Helpers + +internal RDI_RegCode +cv2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg) +{ + RDI_RegCode result = 0; + switch(arch) + { + case RDI_Arch_X64: + { + switch(encoded_reg) + { + case CV_EncodedFramePtrReg_StackPtr: + { + result = RDI_RegCodeX64_rsp; + }break; + case CV_EncodedFramePtrReg_FramePtr: + { + result = RDI_RegCodeX64_rbp; + }break; + case CV_EncodedFramePtrReg_BasePtr: + { + result = RDI_RegCodeX64_r13; + }break; + } + }break; + } + return result; +} + +internal RDIM_Location +cv2r_location_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection) +{ + RDIM_Location result = {0}; + if(0 <= offset && offset <= (S64)max_U16) + { + if(extra_indirection) + { + result.kind = RDI_LocationKind_AddrAddrRegPlusOff; + result.reg_code = reg_code; + result.offset = offset; + } + else + { + result.kind = RDI_LocationKind_AddrRegPlusOff; + result.reg_code = reg_code; + result.offset = offset; + } + } + else + { + RDIM_EvalBytecode bytecode = {0}; + U32 regread_param = RDI_EncodeRegReadParam(reg_code, reg_byte_size, reg_byte_pos); + rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_RegRead, regread_param); + rdim_bytecode_push_sconst(arena, &bytecode, offset); + rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_Add, 0); + if(extra_indirection) + { + U64 addr_size = rdi_addr_size_from_arch(arch); + rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_MemRead, addr_size); + } + result.kind = RDI_LocationKind_AddrBytecodeStream; + result.bytecode = bytecode; + } + return result; +} + +internal void +cv2r_location_case_list_push_over_lvar_addr_range(Arena *arena, RDIM_LocationCaseList *loc_cases, RDIM_Location loc, Rng1U64 voff_range, CV_LvarAddrGap *gaps, U64 gap_count) +{ + //- rjf: emit location for ranges not coverd by gaps + CV_LvarAddrGap *gap_ptr = gaps; + U64 voff_cursor = voff_range.min; + for(U64 i = 0; i < gap_count; i += 1, gap_ptr += 1) + { + U64 voff_gap_first = voff_range.min + gap_ptr->off; + U64 voff_gap_opl = voff_gap_first + gap_ptr->len; + if(voff_cursor < voff_gap_first) + { + RDIM_Rng1U64 truncated_voff_range = {voff_cursor, voff_gap_first}; + rdim_location_case_list_push(arena, loc_cases, loc, truncated_voff_range); + } + voff_cursor = voff_gap_opl; + } + + //- rjf: emit remaining range + if(voff_cursor < voff_range.max) + { + RDIM_Rng1U64 remaining_voff_range = {voff_cursor, voff_range.max}; + rdim_location_case_list_push(arena, loc_cases, loc, remaining_voff_range); + } +} + +//////////////////////////////// +//~ rjf: Top-Level Conversion Entry Point + +internal RDIM_BakeParams +cv2r_convert(Arena *arena, CV2R_ConvertParams *params) +{ + Temp scratch = scratch_begin(&arena, 1); + + ////////////////////////////////////////////////////////////// + //- rjf: unpack params + // + U64 comp_units_count = params->comp_units_count; + CV2R_CompUnit *comp_units = params->comp_units; + U64 sections_count = params->sections_count; + CV2R_Section *sections = params->sections; + CV2R_StringTable *strtbl = params->strtbl; + CV_LeafParsed *tpi_leaf = params->tpi_leaf; + CV_LeafParsed *ipi_leaf = params->ipi_leaf; + CV2R_TPIHash *tpi_hash = params->tpi_hash; + CV2R_TPIHash *ipi_hash = params->ipi_hash; + + ////////////////////////////////////////////////////////////// + //- rjf: hash EXE + // + U64 exe_hash = 0; + if(lane_idx() == lane_from_task_idx(0)) ProfScope("hash EXE") + { + exe_hash = rdi_hash(params->exe_data.str, params->exe_data.size); + } + lane_sync_u64(&exe_hash, 0); + + ////////////////////////////////////////////////////////////// + //- rjf: calculate EXE's max voff + // + U64 exe_voff_max = 0; + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + // rjf: set up + U64 *lane_voff_maxes = 0; + if(lane_idx() == 0) + { + lane_voff_maxes = push_array(scratch2.arena, U64, lane_count()); + } + lane_sync_u64(&lane_voff_maxes, 0); + + // rjf: compute each lane's max + { + U64 lane_voff_max = 0; + Rng1U64 range = lane_range(sections_count); + for EachInRange(idx, range) + { + lane_voff_max = Max(lane_voff_max, sections[idx].voff + sections[idx].vsize); + } + lane_voff_maxes[lane_idx()] = lane_voff_max; + } + lane_sync(); + + // rjf: find max from all lanes + U64 exe_voff_max = 0; + for EachIndex(l_idx, lane_count()) + { + exe_voff_max = Max(exe_voff_max, lane_voff_maxes[l_idx]); + } + lane_sync(); + + scratch_end(scratch2); + } + + ////////////////////////////////////////////////////////////// + //- rjf: determine architecture + // + RDI_Arch arch = RDI_Arch_NULL; + U64 arch_addr_size = 0; + { + for EachIndex(idx, comp_units_count) + { + arch = cv2r_rdi_arch_from_cv_arch(comp_units[idx].sym->info.arch); + if(arch != RDI_Arch_NULL) + { + break; + } + } + arch_addr_size = rdi_addr_size_from_arch(arch); + } + + ////////////////////////////////////////////////////////////// + //- rjf: predict total symbol count + // + U64 symbol_count_prediction = 0; + { + U64 *symbol_count_prediction_ptr = &symbol_count_prediction; + lane_sync_u64(&symbol_count_prediction_ptr, 0); + U64 lane_sym_count = 0; + Rng1U64 range = lane_range(comp_units_count); + for EachInRange(idx, range) + { + lane_sym_count += comp_units[idx].sym->sym_ranges.count; + } + ins_atomic_u64_add_eval(symbol_count_prediction_ptr, lane_sym_count); + lane_sync(); + symbol_count_prediction = *symbol_count_prediction_ptr; + } + + ////////////////////////////////////////////////////////////// + //- rjf: build link name map + // + CV2R_LinkNameMap *link_name_map = 0; + ProfScope("build link name map") if(comp_units_count != 0 && lane_idx() == 0) + { + // rjf: set up + { + link_name_map = push_array(scratch.arena, CV2R_LinkNameMap, 1); + link_name_map->buckets_count = Max(1, symbol_count_prediction); + link_name_map->buckets = push_array(scratch.arena, CV2R_LinkNameNode *, link_name_map->buckets_count); + } + + // rjf: fill + if(params->subset_flags & RDIM_SubsetFlag_Procedures) + { + CV_SymParsed *sym = comp_units[0].sym; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + case CV_SymKind_PUB32: + { + // rjf: unpack sym + CV_SymPub32 *pub32 = (CV_SymPub32 *)iter.struct_base; + String8 name = str8_cstring_capped(pub32+1, iter.opl); + U64 voff = cv2r_voff_from_soff(sections, sections_count, pub32->sec, pub32->off); + + // rjf: commit to link name map + U64 hash = cv2r_hash_from_voff(voff); + U64 bucket_idx = hash%link_name_map->buckets_count; + CV2R_LinkNameNode *node = push_array(scratch.arena, CV2R_LinkNameNode, 1); + SLLStackPush(link_name_map->buckets[bucket_idx], node); + node->voff = voff; + node->name = name; + }break; + } + } + } + } + lane_sync_u64(&link_name_map, 0); + + ////////////////////////////////////////////////////////////// + //- rjf: gather all file paths + // + CV2R_SrcFileStubArray *unit_file_stubs = 0; + U64Array *unit_file_paths_hashes = 0; + ProfScope("gather all file paths") + { + //- rjf: prep outputs + ProfScope("prep outputs") if(lane_idx() == 0) + { + unit_file_stubs = push_array(scratch.arena, CV2R_SrcFileStubArray, comp_units_count); + unit_file_paths_hashes = push_array(scratch.arena, U64Array, comp_units_count); + } + lane_sync_u64(&unit_file_stubs, 0); + lane_sync_u64(&unit_file_paths_hashes, 0); + + //- rjf: do wide gather + ProfScope("do wide gather") + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + //- rjf: build local hash table to dedup files within this lane + U64 hit_path_slots_count = 4096; + String8Node **hit_path_slots = push_array(scratch2.arena, String8Node *, hit_path_slots_count); + + //- rjf: take units across lanes, find all file paths + U64 *sym_take_counter = lane_idx() == 0 ? push_array(scratch.arena, U64, 1) : 0; + lane_sync_u64(&sym_take_counter, 0); + ProfScope("take units across lanes, find all file paths") + for(;;) + { + //- rjf: take next unit + U64 unit_idx = ins_atomic_u64_inc_eval(sym_take_counter) - 1; + if(unit_idx >= comp_units_count) + { + break; + } + + //- rjf: unpack unit + CV_SymParsed *sym = comp_units[unit_idx].sym; + CV_C13Parsed *c13 = comp_units[unit_idx].c13; + String8 obj_name = comp_units[unit_idx].obj_name; + String8 obj_folder_path = backslashed_from_str8(scratch2.arena, str8_chop_last_slash(obj_name)); + + //- rjf: find all inline site symbols & gather file stubs + CV2R_SrcFileStubNode *first_src_file_stub = 0; + CV2R_SrcFileStubNode *last_src_file_stub = 0; + U64 src_file_stub_count = 0; + U64 base_voff = 0; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + + //- rjf: LPROC32/GPROC32 (gather base address) + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + { + CV_SymProc32 *proc32 = (CV_SymProc32 *)iter.struct_base; + base_voff = cv2r_voff_from_soff(sections, sections_count, proc32->sec, proc32->off); + }break; + + //- rjf: INLINESITE + case CV_SymKind_INLINESITE: + { + // rjf: unpack sym + CV_SymInlineSite *sym = (CV_SymInlineSite *)iter.struct_base; + String8 binary_annots = str8((U8 *)(sym+1), (U64)((U8 *)iter.opl - (U8 *)(sym+1))); + + // rjf: map inlinee -> parsed cv c13 inlinee line info + CV_C13InlineeLinesParsed *inlinee_lines_parsed = 0; + { + U64 hash = cv_hash_from_item_id(sym->inlinee); + U64 slot_idx = hash%c13->inlinee_lines_parsed_slots_count; + for(CV_C13InlineeLinesParsedNode *n = c13->inlinee_lines_parsed_slots[slot_idx]; n != 0; n = n->hash_next) + { + if(n->v.inlinee == sym->inlinee) + { + inlinee_lines_parsed = &n->v; + break; + } + } + } + + // rjf: build line table, fill with parsed binary annotations + if(inlinee_lines_parsed != 0) + { + // rjf: grab checksums sub-section + CV_C13SubSectionNode *file_chksms = c13->file_chksms_sub_section; + + // rjf: gathered lines + U32 last_file_off = max_U32; + U32 curr_file_off = max_U32; + U64 line_count = 0; + CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(inlinee_lines_parsed->file_off, inlinee_lines_parsed->first_source_ln, base_voff); + for(;;) + { + // rjf: step & update + CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); + if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitFile) + { + last_file_off = curr_file_off; + curr_file_off = step.file_off; + } + if(step.flags == 0 && line_count > 0) + { + last_file_off = curr_file_off; + curr_file_off = max_U32; + } + + // rjf: file updated -> gather new file name + if(last_file_off != max_U32 && last_file_off != curr_file_off) + { + String8 seq_file_name = {0}; + CV_C13ChecksumKind checksum_kind = CV_C13ChecksumKind_Null; + String8 checksum_value = {0}; + if(last_file_off + sizeof(CV_C13Checksum) <= file_chksms->size) + { + CV_C13Checksum *checksum = (CV_C13Checksum *)(c13->data.str + file_chksms->off + last_file_off); + U32 name_off = checksum->name_off; + seq_file_name = cv2r_string_from_off(strtbl, name_off); + checksum_kind = checksum->kind; + checksum_value = str8_skip(c13->data, file_chksms->off + last_file_off + sizeof(*checksum)); + checksum_value.size = Min(checksum->len, checksum_value.size); + } + + // rjf: file name -> sanitized file path + String8 file_path = seq_file_name; + String8 file_path_sanitized = str8_copy(scratch2.arena, str8_skip_chop_whitespace(file_path)); + { + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch2.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) + { + String8List obj_folder_path_parts = str8_split_path(scratch2.arena, obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); + } + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch2.arena, &file_path_sanitized_parts, file_path_sanitized_style); + } + + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 hit_path_slot = file_path_sanitized_hash%hit_path_slots_count; + String8Node *hit_path_node = 0; + for(String8Node *n = hit_path_slots[hit_path_slot]; n != 0; n = n->next) + { + if(str8_match(n->string, file_path_sanitized, 0)) + { + hit_path_node = n; + break; + } + } + if(hit_path_node == 0) + { + hit_path_node = push_array(scratch2.arena, String8Node, 1); + SLLStackPush(hit_path_slots[hit_path_slot], hit_path_node); + hit_path_node->string = file_path_sanitized; + CV2R_SrcFileStubNode *stub_n = push_array(scratch2.arena, CV2R_SrcFileStubNode, 1); + SLLQueuePush(first_src_file_stub, last_src_file_stub, stub_n); + src_file_stub_count += 1; + stub_n->v.file_path = str8_copy(scratch.arena, file_path_sanitized); + stub_n->v.checksum_kind = checksum_kind; + stub_n->v.checksum = str8_copy(scratch.arena, checksum_value); + } + line_count = 0; + } + + // rjf: count lines + if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitLine) + { + line_count += 1; + } + + // rjf: no more flags -> done + if(step.flags == 0) + { + break; + } + } + } + }break; + } + } + + // rjf: find all files in this unit's (non-inline) line info + if(c13 != 0) + { + ProfScope("find all files in this unit's (non-inline) line info") + for(CV_C13SubSectionNode *node = c13->first_sub_section; + node != 0; + node = node->next) + { + if(node->kind == CV_C13SubSectionKind_Lines) + { + for(CV_C13LinesParsedNode *lines_n = node->lines_first; + lines_n != 0; + lines_n = lines_n->next) + { + // rjf: file name -> sanitized file path + String8 file_path = lines_n->v.file_name; + String8 file_path_sanitized = str8_copy(scratch2.arena, str8_skip_chop_whitespace(file_path)); + { + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch2.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) + { + String8List obj_folder_path_parts = str8_split_path(scratch2.arena, obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); + } + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch2.arena, &file_path_sanitized_parts, file_path_sanitized_style); + } + + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 hit_path_slot = file_path_sanitized_hash%hit_path_slots_count; + String8Node *hit_path_node = 0; + for(String8Node *n = hit_path_slots[hit_path_slot]; n != 0; n = n->next) + { + if(str8_match(n->string, file_path_sanitized, 0)) + { + hit_path_node = n; + break; + } + } + if(hit_path_node == 0) + { + hit_path_node = push_array(scratch2.arena, String8Node, 1); + SLLStackPush(hit_path_slots[hit_path_slot], hit_path_node); + hit_path_node->string = file_path_sanitized; + CV2R_SrcFileStubNode *stub_n = push_array(scratch2.arena, CV2R_SrcFileStubNode, 1); + SLLQueuePush(first_src_file_stub, last_src_file_stub, stub_n); + src_file_stub_count += 1; + stub_n->v.file_path = str8_copy(scratch.arena, file_path_sanitized); + stub_n->v.checksum_kind = lines_n->v.checksum_kind; + stub_n->v.checksum = str8_copy(scratch.arena, lines_n->v.checksum); + } + } + } + } + } + + //- rjf: merge into array for this unit + unit_file_stubs[unit_idx].count = src_file_stub_count; + unit_file_stubs[unit_idx].v = push_array_no_zero(scratch.arena, CV2R_SrcFileStub, unit_file_stubs[unit_idx].count); + { + U64 idx = 0; + for EachNode(n, CV2R_SrcFileStubNode, first_src_file_stub) + { + unit_file_stubs[unit_idx].v[idx] = n->v; + idx += 1; + } + } + + //- rjf: hash this unit's file paths + U64Array hashes = {0}; + hashes.count = unit_file_stubs[unit_idx].count; + hashes.v = push_array(scratch.arena, U64, hashes.count); + for EachIndex(idx, unit_file_stubs[unit_idx].count) + { + hashes.v[idx] = rdi_hash(unit_file_stubs[unit_idx].v[idx].file_path.str, unit_file_stubs[unit_idx].v[idx].file_path.size); + } + unit_file_paths_hashes[unit_idx] = hashes; + } + lane_sync(); + + scratch_end(scratch2); + } + } + + ////////////////////////////////////////////////////////////// + //- rjf: build unified collection & map for source files + // + RDIM_SrcFileChunkList *all_src_files__sequenceless = 0; + CV2R_SrcFileMap *src_file_map = 0; + if(lane_idx() == 0 && params->subset_flags & (RDIM_SubsetFlag_NormalSourcePathNameMap| + RDIM_SubsetFlag_LineInfo| + RDIM_SubsetFlag_InlineLineInfo)) + { + //- rjf: set up table + U64 total_path_count = 0; + ProfScope("set up table") + { + all_src_files__sequenceless = push_array(scratch.arena, RDIM_SrcFileChunkList, 1); + src_file_map = push_array(scratch.arena, CV2R_SrcFileMap, 1); + for EachIndex(idx, comp_units_count) + { + total_path_count += unit_file_stubs[idx].count; + } + src_file_map->slots_count = total_path_count + total_path_count/2 + 1; + src_file_map->slots = push_array(scratch.arena, CV2R_SrcFileNode *, src_file_map->slots_count); + } + + //- rjf: fill table + ProfScope("fill table") + { + for EachIndex(idx, comp_units_count) + { + CV2R_SrcFileStubArray stubs = unit_file_stubs[idx]; + U64Array hashes = unit_file_paths_hashes[idx]; + for EachIndex(stub_idx, stubs.count) + { + String8 file_path_sanitized = stubs.v[stub_idx].file_path; + CV_C13ChecksumKind c13_checksum_kind = stubs.v[stub_idx].checksum_kind; + String8 checksum = stubs.v[stub_idx].checksum; + U64 file_path_sanitized_hash = hashes.v[stub_idx]; + U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; + CV2R_SrcFileNode *src_file_node = 0; + for(CV2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) + { + if(str8_match(n->src_file->path, file_path_sanitized, 0)) + { + src_file_node = n; + break; + } + } + if(src_file_node == 0) + { + src_file_node = push_array(arena, CV2R_SrcFileNode, 1); + SLLStackPush(src_file_map->slots[src_file_slot], src_file_node); + src_file_node->src_file = rdim_src_file_chunk_list_push(arena, all_src_files__sequenceless, total_path_count); + src_file_node->src_file->path = str8_copy(arena, file_path_sanitized); + src_file_node->src_file->checksum_kind = cv2r_rdi_from_cv_c13_checksum_kind(c13_checksum_kind); + src_file_node->src_file->checksum = str8_copy(arena, checksum); + } + } + } + } + } + lane_sync_u64(&all_src_files__sequenceless, 0); + lane_sync_u64(&src_file_map, 0); + + ////////////////////////////////////////////////////////////// + //- rjf: convert unit header info + // + RDIM_UnitChunkList *all_units_ptr = 0; + RDIM_LineTableChunkList *units_line_tables = 0; + RDIM_LineTable **units_first_inline_site_line_tables = 0; + ProfScope("convert unit header info") + { + //- rjf: set up outputs + ProfScope("set up outputs") if(lane_idx() == 0) + { + all_units_ptr = push_array(scratch.arena, RDIM_UnitChunkList, 1); + if(params->subset_flags & RDIM_SubsetFlag_Units) + { + for EachIndex(idx, comp_units_count) + { + rdim_unit_chunk_list_push(arena, all_units_ptr, comp_units_count); + } + } + units_line_tables = push_array(scratch.arena, RDIM_LineTableChunkList, comp_units_count); + units_first_inline_site_line_tables = push_array(scratch.arena, RDIM_LineTable *, comp_units_count); + } + lane_sync_u64(&all_units_ptr, 0); + lane_sync_u64(&units_line_tables, 0); + lane_sync_u64(&units_first_inline_site_line_tables, 0); + RDIM_Unit *units = all_units_ptr->first ? all_units_ptr->first->v : 0; + U64 units_count = all_units_ptr->first ? all_units_ptr->first->count : 0; + + //- rjf: do per-lane work + if(params->subset_flags & (RDIM_SubsetFlag_Units| + RDIM_SubsetFlag_NormalSourcePathNameMap| + RDIM_SubsetFlag_LineInfo| + RDIM_SubsetFlag_InlineLineInfo)) + { + U64 *sym_take_counter = lane_idx() == 0 ? push_array(scratch.arena, U64, 1) : 0; + lane_sync_u64(&sym_take_counter, 0); + ProfScope("wide fill") for(;;) + { + //- rjf: take next unit + U64 unit_idx = ins_atomic_u64_inc_eval(sym_take_counter) - 1; + if(unit_idx >= units_count) + { + break; + } + Temp scratch = scratch_begin(&arena, 1); + RDIM_LineTableChunkList *dst_line_tables = &units_line_tables[unit_idx]; + CV2R_CompUnit *src_unit = &comp_units[unit_idx]; + CV_SymParsed *src_unit_sym = comp_units[unit_idx].sym; + CV_C13Parsed *src_unit_c13 = comp_units[unit_idx].c13; + RDIM_Unit *dst_unit = 0; + if(params->subset_flags & RDIM_SubsetFlag_Units) { dst_unit = &units[unit_idx]; } + + // rjf: extract unit ranges + RDIM_Rng1U64ChunkList unit_ranges = {0}; + if(src_unit != 0) + { + unit_ranges = src_unit->ranges; + } + + // rjf: extract unit name + String8 unit_name = {0}; + if(src_unit != 0) + { + unit_name = src_unit->obj_name; + if(unit_name.size != 0) + { + String8 unit_name_past_last_slash = str8_skip_last_slash(unit_name); + if(unit_name_past_last_slash.size != 0) + { + unit_name = unit_name_past_last_slash; + } + } + } + else + { + unit_name = str8_lit("*global*"); + } + + // rjf: produce obj name/path + String8 obj_name = {0}; + if(src_unit != 0) + { + obj_name = src_unit->obj_name; + if(str8_match(obj_name, str8_lit("* Linker *"), 0) || + str8_match(obj_name, str8_lit("Import:"), StringMatchFlag_RightSideSloppy)) + { + MemoryZeroStruct(&obj_name); + } + } + String8 obj_folder_path = backslashed_from_str8(scratch.arena, str8_chop_last_slash(obj_name)); + + // rjf: extract unit group name + String8 group_name = {0}; + if(src_unit != 0) + { + group_name = src_unit->group_name; + } + + //- rjf: main unit line table conversion + RDIM_LineTable *line_table = 0; + if(params->subset_flags & RDIM_SubsetFlag_LineInfo && src_unit_c13 != 0) ProfScope("main unit line table conversion") + { + for(CV_C13SubSectionNode *node = src_unit_c13->first_sub_section; + node != 0; + node = node->next) + { + if(node->kind == CV_C13SubSectionKind_Lines) + { + for(CV_C13LinesParsedNode *lines_n = node->lines_first; + lines_n != 0; + lines_n = lines_n->next) + { + CV_C13LinesParsed *lines = &lines_n->v; + + // rjf: file name -> sanitized file path + String8 file_path = lines->file_name; + String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); + { + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) + { + String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); + } + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); + } + + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; + CV2R_SrcFileNode *src_file_node = 0; + if(lines->line_count != 0) + { + for(CV2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) + { + if(str8_match(n->src_file->path, file_path_sanitized, 0)) + { + src_file_node = n; + break; + } + } + } + + // rjf: push sequence into both line table & source file's line map + if(src_file_node != 0) + { + if(line_table == 0) + { + line_table = rdim_line_table_chunk_list_push(arena, dst_line_tables, 256); + } + RDIM_LineSequence *seq = rdim_line_table_push_sequence(arena, dst_line_tables, line_table, src_file_node->src_file, lines->voffs, lines->line_nums, lines->col_nums, lines->line_count); + } + } + } + } + } + + //- rjf: fill unit + if(dst_unit != 0) + { + dst_unit->unit_name = unit_name; + dst_unit->compiler_name = src_unit_sym->info.compiler_name; + dst_unit->object_file = obj_name; + dst_unit->archive_file = group_name; + dst_unit->language = cv2r_rdi_language_from_cv_language(src_unit_sym->info.language); + dst_unit->line_table = line_table; + dst_unit->voff_ranges = unit_ranges; + } + + //- rjf: build per-inline-site line tables + if(params->subset_flags & RDIM_SubsetFlag_InlineLineInfo) ProfScope("build per-inline-site line tables") + { + U64 base_voff = 0; + for(CV_RecIter iter = {0}; cv_rec_next(src_unit_sym->data, &src_unit_sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + + //- rjf: LPROC32/GPROC32 (gather base address) + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + { + CV_SymProc32 *proc32 = (CV_SymProc32 *)iter.struct_base; + base_voff = cv2r_voff_from_soff(sections, sections_count, proc32->sec, proc32->off); + }break; + + //- rjf: INLINESITE + case CV_SymKind_INLINESITE: + { + // rjf: unpack sym + CV_SymInlineSite *sym = (CV_SymInlineSite *)iter.struct_base; + String8 binary_annots = str8((U8 *)(sym+1), (U64)((U8 *)iter.opl - (U8 *)(sym+1))); + + // rjf: map inlinee -> parsed cv c13 inlinee line info + CV_C13InlineeLinesParsed *inlinee_lines_parsed = 0; + { + U64 hash = cv_hash_from_item_id(sym->inlinee); + U64 slot_idx = hash%src_unit_c13->inlinee_lines_parsed_slots_count; + for(CV_C13InlineeLinesParsedNode *n = src_unit_c13->inlinee_lines_parsed_slots[slot_idx]; n != 0; n = n->hash_next) + { + if(n->v.inlinee == sym->inlinee) + { + inlinee_lines_parsed = &n->v; + break; + } + } + } + + // rjf: build line table, fill with parsed binary annotations + if(inlinee_lines_parsed != 0) + { + // rjf: grab checksums sub-section + CV_C13SubSectionNode *file_chksms = src_unit_c13->file_chksms_sub_section; + + // rjf: gathered lines + typedef struct LineChunk LineChunk; + struct LineChunk + { + LineChunk *next; + U64 cap; + U64 count; + U64 *voffs; // [line_count + 1] (sorted) + U32 *line_nums; // [line_count] + U16 *col_nums; // [2*line_count] + }; + LineChunk *first_line_chunk = 0; + LineChunk *last_line_chunk = 0; + U64 total_line_chunk_line_count = 0; + U32 last_file_off = max_U32; + U32 curr_file_off = max_U32; + RDIM_LineTable* line_table = 0; + + CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(inlinee_lines_parsed->file_off, inlinee_lines_parsed->first_source_ln, base_voff); + for(;;) + { + // rjf: step & update + CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); + if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitFile) + { + last_file_off = curr_file_off; + curr_file_off = step.file_off; + } + if(step.flags == 0 && total_line_chunk_line_count > 0) + { + last_file_off = curr_file_off; + curr_file_off = max_U32; + } + + // rjf: file updated -> push line chunks gathered for this file + if(last_file_off != max_U32 && last_file_off != curr_file_off) + { + String8 seq_file_name = {0}; + if(last_file_off + sizeof(CV_C13Checksum) <= file_chksms->size) + { + CV_C13Checksum *checksum = (CV_C13Checksum*)(src_unit_c13->data.str + file_chksms->off + last_file_off); + U32 name_off = checksum->name_off; + seq_file_name = cv2r_string_from_off(strtbl, name_off); + } + + // rjf: file name -> sanitized file path + String8 file_path = seq_file_name; + String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); + { + PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); + String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); + if(file_path_sanitized_style == PathStyle_Relative) + { + String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); + str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); + file_path_sanitized_parts = obj_folder_path_parts; + file_path_sanitized_style = path_style_from_str8(obj_folder_path); + } + str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); + file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); + } + + // rjf: sanitized file path -> source file node + U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); + U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; + CV2R_SrcFileNode *src_file_node = 0; + for(CV2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) + { + if(str8_match(n->src_file->path, file_path_sanitized, 0)) + { + src_file_node = n; + break; + } + } + + // rjf: gather all lines + RDI_U64 *voffs = 0; + RDI_U32 *line_nums = 0; + RDI_U64 line_count = 0; + if(src_file_node != 0) + { + voffs = push_array_no_zero(arena, RDI_U64, total_line_chunk_line_count+1); + line_nums = push_array_no_zero(arena, RDI_U32, total_line_chunk_line_count); + line_count = total_line_chunk_line_count; + U64 dst_idx = 0; + for(LineChunk *chunk = first_line_chunk; chunk != 0; chunk = chunk->next) + { + MemoryCopy(voffs+dst_idx, chunk->voffs, sizeof(U64)*(chunk->count+1)); + MemoryCopy(line_nums+dst_idx, chunk->line_nums, sizeof(U32)*chunk->count); + dst_idx += chunk->count; + } + } + + // rjf: push + if(line_count != 0) + { + if(line_table == 0) + { + line_table = rdim_line_table_chunk_list_push(arena, dst_line_tables, 256); + if(units_first_inline_site_line_tables[unit_idx] == 0) + { + units_first_inline_site_line_tables[unit_idx] = line_table; + } + } + rdim_line_table_push_sequence(arena, dst_line_tables, line_table, src_file_node->src_file, voffs, line_nums, 0, line_count); + } + + // rjf: clear line chunks for subsequent sequences + first_line_chunk = last_line_chunk = 0; + total_line_chunk_line_count = 0; + } + + // rjf: new line -> emit to chunk + if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitLine) + { + LineChunk *chunk = last_line_chunk; + if(chunk == 0 || chunk->count+1 >= chunk->cap) + { + chunk = push_array(scratch.arena, LineChunk, 1); + SLLQueuePush(first_line_chunk, last_line_chunk, chunk); + chunk->cap = 8; + chunk->voffs = push_array_no_zero(scratch.arena, U64, chunk->cap); + chunk->line_nums = push_array_no_zero(scratch.arena, U32, chunk->cap); + } + chunk->voffs[chunk->count] = step.line_voff; + chunk->voffs[chunk->count+1] = step.line_voff_end; + chunk->line_nums[chunk->count] = step.ln; + chunk->count += 1; + total_line_chunk_line_count += 1; + } + + // rjf: no more flags -> done + if(step.flags == 0) + { + break; + } + } + } + }break; + } + } + } + + scratch_end(scratch); + } + } + } + lane_sync(); + RDIM_UnitChunkList all_units = *all_units_ptr; + + ////////////////////////////////////////////////////////////// + //- rjf: join all line tables + // + RDIM_LineTableChunkList all_line_tables = {0}; + RDIM_LineTableChunkList *all_line_tables_ptr = &all_line_tables; + ProfScope("join all line tables") if(lane_idx() == 0) + { + for EachIndex(idx, comp_units_count) + { + rdim_line_table_chunk_list_concat_in_place(&all_line_tables, &units_line_tables[idx]); + } + } + lane_sync_u64(&all_line_tables_ptr, 0); + all_line_tables = *all_line_tables_ptr; + + ////////////////////////////////////////////////////////////// + //- rjf: equip source files with line sequences + // + ProfScope("equip source files with line sequences") if(lane_idx() == 0) + { + for(RDIM_LineTableChunkNode *line_table_chunk_n = all_line_tables.first; + line_table_chunk_n != 0; + line_table_chunk_n = line_table_chunk_n->next) + { + for EachIndex(chunk_line_table_idx, line_table_chunk_n->count) + { + RDIM_LineTable *line_table = &line_table_chunk_n->v[chunk_line_table_idx]; + for(RDIM_LineSequenceNode *s = line_table->first_seq; s != 0; s = s->next) + { + rdim_src_file_push_line_sequence(arena, all_src_files__sequenceless, s->v.src_file, &s->v); + } + } + } + } + lane_sync(); + RDIM_SrcFileChunkList all_src_files = *all_src_files__sequenceless; + + ////////////////////////////////////////////////////////////// + //- rjf: types pass 1: produce type forward resolution map + // + // this map is used to resolve usage of "incomplete structs" in codeview's + // type info. this often happens when e.g. "struct Foo" is used to refer to + // a later-defined "Foo", which actually contains members and so on. we want + // to hook types up to their actual destination complete types wherever + // possible, and so this map can be used to do that in subsequent stages. + // + CV_TypeId *itype_fwd_map = 0; + CV_TypeId itype_first = 0; + CV_TypeId itype_opl = 0; + ProfScope("types pass 1: produce type forward resolution map") + { + //- rjf: allocate forward resolution map + if(lane_idx() == 0) + { + itype_first = tpi_leaf->itype_first; + itype_opl = tpi_leaf->itype_opl; + itype_fwd_map = push_array(scratch.arena, CV_TypeId, (U64)itype_opl); + } + lane_sync_u64(&itype_first, 0); + lane_sync_u64(&itype_opl, 0); + lane_sync_u64(&itype_fwd_map, 0); + + //- rjf: do wide fill + if(params->subset_flags & RDIM_SubsetFlag_Types) + { + Rng1U64 range = lane_range(itype_opl); + for EachInRange(idx, range) + { + CV_TypeId itype = (CV_TypeId)idx; + if(itype < itype_first) { continue; } + + //- rjf: determine if this itype resolves to another + CV_TypeId itype_fwd = 0; + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; + CV_LeafKind kind = range->hdr.kind; + U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); + if(range->off+range->hdr.size <= tpi_leaf->data.size && + range->off+2+header_struct_size <= tpi_leaf->data.size && + range->hdr.size >= 2) + { + U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; + U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; + switch(kind) + { + default:{}break; + + //- rjf: CLASS/STRUCTURE + case CV_LeafKind_CLASS: + case CV_LeafKind_STRUCTURE: + { + // rjf: unpack leaf header + CV_LeafStruct *lf_struct = (CV_LeafStruct *)itype_leaf_first; + + // rjf: has fwd ref flag -> lookup itype that this itype resolves to + if(lf_struct->props & CV_TypeProp_FwdRef) + { + // rjf: unpack rest of leaf + U8 *numeric_ptr = (U8 *)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); + + // rjf: lookup + B32 do_unique_name_lookup = (((lf_struct->props & CV_TypeProp_Scoped) != 0) && + ((lf_struct->props & CV_TypeProp_HasUniqueName) != 0)); + itype_fwd = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); + } + }break; + + //- rjf: CLASS2/STRUCT2 + case CV_LeafKind_CLASS2: + case CV_LeafKind_STRUCT2: + { + // rjf: unpack leaf header + CV_LeafStruct2 *lf_struct = (CV_LeafStruct2 *)itype_leaf_first; + + // rjf: has fwd ref flag -> lookup itype that this itype resolves to + if(lf_struct->props & CV_TypeProp_FwdRef) + { + // rjf: unpack rest of leaf + U8 *numeric_ptr = (U8 *)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = (U8 *)numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); + + // rjf: lookup + B32 do_unique_name_lookup = (((lf_struct->props & CV_TypeProp_Scoped) != 0) && + ((lf_struct->props & CV_TypeProp_HasUniqueName) != 0)); + itype_fwd = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); + } + }break; + + //- rjf: UNION + case CV_LeafKind_UNION: + { + // rjf: unpack leaf + CV_LeafUnion *lf_union = (CV_LeafUnion *)itype_leaf_first; + U8 *numeric_ptr = (U8 *)(lf_union + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); + + // rjf: has fwd ref flag -> lookup itype that this itype resolves tos + if(lf_union->props & CV_TypeProp_FwdRef) + { + B32 do_unique_name_lookup = (((lf_union->props & CV_TypeProp_Scoped) != 0) && + ((lf_union->props & CV_TypeProp_HasUniqueName) != 0)); + itype_fwd = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); + } + }break; + + //- rjf: ENUM + case CV_LeafKind_ENUM: + { + // rjf: unpack leaf + CV_LeafEnum *lf_enum = (CV_LeafEnum*)itype_leaf_first; + U8 *name_ptr = (U8 *)(lf_enum + 1); + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + U8 *unique_name_ptr = name_ptr + name.size + 1; + String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); + + // rjf: has fwd ref flag -> lookup itype that this itype resolves to + if(lf_enum->props & CV_TypeProp_FwdRef) + { + B32 do_unique_name_lookup = (((lf_enum->props & CV_TypeProp_Scoped) != 0) && + ((lf_enum->props & CV_TypeProp_HasUniqueName) != 0)); + itype_fwd = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); + } + }break; + } + } + + //- rjf: if the forwarded itype is nonzero & in TPI range -> save to map + if(itype_fwd != 0 && itype_fwd < tpi_leaf->itype_opl) + { + itype_fwd_map[itype] = itype_fwd; + } + } + } + } + lane_sync(); + + + ////////////////////////////////////////////////////////////// + //- rjf: types pass 2: produce per-itype itype chain + // + // this pass is to ensure that subsequent passes always produce types for + // dependent itypes first - guaranteeing rdi's "only reference backward" + // rule (which eliminates cycles). each itype slot gets a list of itypes, + // starting with the deepest dependency - when types are produced per-itype, + // this chain is walked, so that deeper dependencies are built first, and + // as such, always show up *earlier* in the actually built types. + // + CV2R_TypeIdChain **itype_chains = 0; + ProfScope("types pass 2: produce per-itype itype chain (for producing dependent types first)") + { + //- rjf: allocate itype chain table + if(lane_idx() == 0) + { + itype_chains = push_array(scratch.arena, CV2R_TypeIdChain *, (U64)itype_opl); + } + lane_sync_u64(&itype_chains, 0); + + //- rjf: do wide fill + if(params->subset_flags & RDIM_SubsetFlag_Types) + { + Rng1U64 range = lane_range(itype_opl); + for EachInRange(idx, range) + { + CV_TypeId itype = (CV_TypeId)idx; + + //- rjf: push initial itype - should be final-visited-itype for this itype + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = itype; + SLLStackPush(itype_chains[itype], c); + } + + //- rjf: skip basic types for dependency walk + if(itype < tpi_leaf->itype_first) + { + continue; + } + + //- rjf: walk dependent types, push to chain + Temp scratch2 = scratch_begin(&scratch.arena, 1); + CV2R_TypeIdChain start_walk_task = {0, itype}; + CV2R_TypeIdChain *first_walk_task = &start_walk_task; + CV2R_TypeIdChain *last_walk_task = &start_walk_task; + for(CV2R_TypeIdChain *walk_task = first_walk_task; + walk_task != 0; + walk_task = walk_task->next) + { + CV_TypeId walk_itype = itype_fwd_map[walk_task->itype] ? itype_fwd_map[walk_task->itype] : walk_task->itype; + if(walk_itype < tpi_leaf->itype_first || tpi_leaf->itype_opl <= walk_itype) + { + continue; + } + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[walk_itype-tpi_leaf->itype_first]; + CV_LeafKind kind = range->hdr.kind; + U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); + if(range->off+range->hdr.size <= tpi_leaf->data.size && + range->off+2+header_struct_size <= tpi_leaf->data.size && + range->hdr.size >= 2) + { + U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; + U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; + switch(kind) + { + default:{}break; + + //- rjf: MODIFIER + case CV_LeafKind_MODIFIER: + { + CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; + + // rjf: push dependent itype to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itype + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: POINTER + case CV_LeafKind_POINTER: + { + CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; + + // rjf: push dependent itype to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itype + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: PROCEDURE + case CV_LeafKind_PROCEDURE: + { + CV_LeafProcedure *lf = (CV_LeafProcedure *)itype_leaf_first; + + // rjf: push return itypes to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->ret_itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk return itype + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->ret_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + + // rjf: unpack arglist range + CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; + if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || + arglist_range->hdr.size<2 || + arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) + { + break; + } + U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; + U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; + if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) + { + break; + } + + // rjf: unpack arglist info + CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; + CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); + U32 arglist_itypes_count = arglist->count; + + // rjf: push arg types to chain + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = arglist_itypes_base[idx]; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk arg types + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = arglist_itypes_base[idx]; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: MFUNCTION + case CV_LeafKind_MFUNCTION: + { + CV_LeafMFunction *lf = (CV_LeafMFunction *)itype_leaf_first; + + // rjf: push dependent itypes to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->ret_itype; + SLLStackPush(itype_chains[itype], c); + } + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->arg_itype; + SLLStackPush(itype_chains[itype], c); + } + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->this_itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itypes + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->ret_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->arg_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->this_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + + // rjf: unpack arglist range + CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; + if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || + arglist_range->hdr.size<2 || + arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) + { + break; + } + U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; + U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; + if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) + { + break; + } + + // rjf: unpack arglist info + CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; + CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); + U32 arglist_itypes_count = arglist->count; + + // rjf: push arg types to chain + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = arglist_itypes_base[idx]; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk arg types + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = arglist_itypes_base[idx]; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: BITFIELD + case CV_LeafKind_BITFIELD: + { + CV_LeafBitField *lf = (CV_LeafBitField *)itype_leaf_first; + + // rjf: push dependent itype to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itype + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: ARRAY + case CV_LeafKind_ARRAY: + { + CV_LeafArray *lf = (CV_LeafArray *)itype_leaf_first; + + // rjf: push dependent itypes to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->entry_itype; + SLLStackPush(itype_chains[itype], c); + } + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->index_itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itypes + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->entry_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->index_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + + //- rjf: ENUM + case CV_LeafKind_ENUM: + { + CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; + + // rjf: push dependent itypes to chain + { + CV2R_TypeIdChain *c = push_array(scratch.arena, CV2R_TypeIdChain, 1); + c->itype = lf->base_itype; + SLLStackPush(itype_chains[itype], c); + } + + // rjf: push task to walk dependency itypes + { + CV2R_TypeIdChain *c = push_array(scratch2.arena, CV2R_TypeIdChain, 1); + c->itype = lf->base_itype; + SLLQueuePush(first_walk_task, last_walk_task, c); + } + }break; + } + } + } + scratch_end(scratch2); + } + } + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: types pass 3: gather all unique namespaces from types + // + CV2R_NamespaceNode **all_namespace_slots = 0; + U64 all_namespace_slots_count = 0; + ProfScope("gather all unique namespaces from types") + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + //- rjf: find all unique namespaces on this lane + U64 namespace_slots_count = (U64)itype_opl / lane_count(); + namespace_slots_count = Max(1, namespace_slots_count); + String8Node **namespace_slots = push_array(scratch2.arena, String8Node *, namespace_slots_count); + U64 namespace_count = 0; + Rng1U64 range = lane_range(itype_opl); + for EachInRange(idx, range) + { + CV_TypeId itype = (CV_TypeId)idx; + if(itype < itype_first) { continue; } + + // rjf: unpack itype info + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; + CV_LeafKind kind = range->hdr.kind; + U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); + + // rjf: gather names from types + String8 name = {0}; + if(range->off+range->hdr.size <= tpi_leaf->data.size && + range->off+2+header_struct_size <= tpi_leaf->data.size && + range->hdr.size >= 2) + { + U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; + U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; + switch(kind) + { + default:{}break; + + //- rjf: CLASS/STRUCT + case CV_LeafKind_CLASS: + case CV_LeafKind_STRUCTURE: + { + CV_LeafStruct *lf_struct = (CV_LeafStruct *)itype_leaf_first; + U8 *numeric_ptr = (U8 *)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = (U8 *)numeric_ptr + size.encoded_size; + name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }break; + + //- rjf: CLASS2/STRUCT2 + case CV_LeafKind_CLASS2: + case CV_LeafKind_STRUCT2: + { + CV_LeafStruct2 *lf_struct = (CV_LeafStruct2 *)itype_leaf_first; + U8 *numeric_ptr = (U8 *)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = (U8 *)numeric_ptr + size.encoded_size; + name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }break; + + //- rjf: UNION + case CV_LeafKind_UNION: + { + CV_LeafUnion *lf_struct = (CV_LeafUnion *)itype_leaf_first; + U8 *numeric_ptr = (U8 *)(lf_struct + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = (U8 *)numeric_ptr + size.encoded_size; + name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }break; + + //- rjf: ENUM + case CV_LeafKind_ENUM: + { + CV_LeafEnum *lf_enum = (CV_LeafEnum *)itype_leaf_first; + U8 *name_ptr = (U8 *)(lf_enum+1); + name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }break; + + //- rjf: ALIAS + case CV_LeafKind_ALIAS: + { + CV_LeafAlias *lf = (CV_LeafAlias *)itype_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }break; + } + } + + // rjf: add namespaces from strings + String8 name_before_templates = str8_prefix(name, str8_find_needle(name, 0, str8_lit("<"), 0)); + for(U64 scope_resolution_operator_pos = 0; + scope_resolution_operator_pos < name_before_templates.size; + scope_resolution_operator_pos = str8_find_needle(name_before_templates, scope_resolution_operator_pos+1, str8_lit("::"), 0)) + { + String8 namespace_fully_qualified_name = str8_substr(name_before_templates, r1u64(0, scope_resolution_operator_pos)); + if(namespace_fully_qualified_name.size != 0) + { + namespace_count += 1; + U64 hash = u64_hash_from_str8(namespace_fully_qualified_name); + U64 slot_idx = hash%namespace_slots_count; + B32 already_exists = 0; + for(String8Node *n = namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, namespace_fully_qualified_name, 0)) + { + already_exists = 1; + break; + } + } + if(!already_exists) + { + String8Node *node = push_array(scratch2.arena, String8Node, 1); + SLLStackPush(namespace_slots[slot_idx], node); + node->string = namespace_fully_qualified_name; + } + } + } + } + + //- rjf: on lane 0 -> combine all unique namespaces to singular map + { + // rjf: gather lane maps + typedef struct LaneNamespaceTable LaneNamespaceTable; + struct LaneNamespaceTable + { + String8Node **slots; + U64 slots_count; + }; + U64 total_namespace_count = 0; + U64 *total_namespace_count_ptr = &total_namespace_count; + LaneNamespaceTable *lane_namespace_tables = 0; + if(lane_idx() == 0) + { + lane_namespace_tables = push_array(scratch2.arena, LaneNamespaceTable, lane_count()); + } + lane_sync_u64(&total_namespace_count_ptr, 0); + lane_sync_u64(&lane_namespace_tables, 0); + lane_namespace_tables[lane_idx()].slots = namespace_slots; + lane_namespace_tables[lane_idx()].slots_count = namespace_slots_count; + ins_atomic_u64_add_eval(total_namespace_count_ptr, namespace_count); + lane_sync(); + + // rjf: combine + if(lane_idx() == 0) + { + all_namespace_slots_count = *total_namespace_count_ptr / 3; + all_namespace_slots_count = Max(all_namespace_slots_count, 1); + all_namespace_slots = push_array(scratch.arena, CV2R_NamespaceNode *, all_namespace_slots_count); + for EachIndex(l_idx, lane_count()) + { + LaneNamespaceTable *tbl = &lane_namespace_tables[l_idx]; + for EachIndex(slot_idx, tbl->slots_count) + { + for(String8Node *n = tbl->slots[slot_idx]; n != 0; n = n->next) + { + U64 hash = u64_hash_from_str8(n->string); + U64 dst_slot_idx = hash%all_namespace_slots_count; + B32 already_exists = 0; + for(CV2R_NamespaceNode *dst_n = all_namespace_slots[dst_slot_idx]; dst_n != 0; dst_n = dst_n->next) + { + if(str8_match(dst_n->string, n->string, 0)) + { + already_exists = 1; + break; + } + } + if(!already_exists) + { + CV2R_NamespaceNode *dst_n = push_array(scratch.arena, CV2R_NamespaceNode, 1); + dst_n->string = n->string; + SLLStackPush(all_namespace_slots[dst_slot_idx], dst_n); + } + } + } + } + } + lane_sync_u64(&all_namespace_slots_count, 0); + lane_sync_u64(&all_namespace_slots, 0); + } + scratch_end(scratch2); + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: types pass 4: construct all types from TPI + // + // this doesn't gather struct/class/union/enum members, which is done by + // subsequent passes, to build RDI "UDT" information, which is distinct + // from regular type info. + // + RDIM_TypeChunkList all_types__pre_typedefs = {0}; + RDIM_TypeChunkList *all_types__pre_typedefs_ptr = &all_types__pre_typedefs; + RDIM_Type **itype_type_ptrs = 0; + RDIM_Type **basic_type_ptrs = 0; + if(lane_idx() == 0) ProfScope("types pass 4: construct all root/stub types from TPI") + { +#define p2r_builtin_type_ptr_from_kind(kind) ((basic_type_ptrs && RDI_TypeKind_FirstBuiltIn <= (kind) && (kind) <= RDI_TypeKind_LastBuiltIn) ? (basic_type_ptrs[(kind) - RDI_TypeKind_FirstBuiltIn]) : 0) +#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) + itype_type_ptrs = push_array(scratch.arena, RDIM_Type *, (U64)(itype_opl)); + basic_type_ptrs = push_array(scratch.arena, RDIM_Type *, (RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn + 1)); + + //////////////////////////// + //- rjf: build basic types + // + if(params->subset_flags & RDIM_SubsetFlag_Types) + { + for(RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; + type_kind <= RDI_TypeKind_LastBuiltIn; + type_kind += 1) + { + RDIM_Type *type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, 512); + type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); + type->kind = type_kind; + type->byte_size = rdi_size_from_basic_type_kind(type_kind); + basic_type_ptrs[type_kind - RDI_TypeKind_FirstBuiltIn] = type; + } + } + + //////////////////////////// + //- rjf: build basic type aliases + // + if(params->subset_flags & RDIM_SubsetFlag_Types) + { + RDIM_DataModel data_model = rdim_data_model_from_os_arch(OperatingSystem_Windows, arch); + RDI_TypeKind short_type = rdim_short_type_kind_from_data_model(data_model); + RDI_TypeKind ushort_type = rdim_unsigned_short_type_kind_from_data_model(data_model); + RDI_TypeKind long_type = rdim_long_type_kind_from_data_model(data_model); + RDI_TypeKind ulong_type = rdim_unsigned_long_type_kind_from_data_model(data_model); + RDI_TypeKind long_long_type = rdim_long_long_type_kind_from_data_model(data_model); + RDI_TypeKind ulong_long_type = rdim_unsigned_long_long_type_kind_from_data_model(data_model); + RDI_TypeKind ptr_type = rdim_pointer_size_t_type_kind_from_data_model(data_model); + struct + { + char * name; + RDI_TypeKind kind_rdi; + CV_LeafKind kind_cv; + } + table[] = + { + { "signed char" , RDI_TypeKind_Char8 , CV_BasicType_CHAR }, + { "short" , short_type , CV_BasicType_SHORT }, + { "long" , long_type , CV_BasicType_LONG }, + { "long long" , long_long_type , CV_BasicType_QUAD }, + { "__int128" , RDI_TypeKind_S128 , CV_BasicType_OCT }, // Clang type + { "unsigned char" , RDI_TypeKind_UChar8 , CV_BasicType_UCHAR }, + { "unsigned short" , ushort_type , CV_BasicType_USHORT }, + { "unsigned long" , ulong_type , CV_BasicType_ULONG }, + { "unsigned long long" , ulong_long_type , CV_BasicType_UQUAD }, + { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UOCT }, // Clang type + { "bool" , RDI_TypeKind_S8 , CV_BasicType_BOOL8 }, + { "__bool16" , RDI_TypeKind_S16 , CV_BasicType_BOOL16 }, // not real C type + { "__bool32" , RDI_TypeKind_S32 , CV_BasicType_BOOL32 }, // not real C type + { "float" , RDI_TypeKind_F32 , CV_BasicType_FLOAT32 }, + { "double" , RDI_TypeKind_F64 , CV_BasicType_FLOAT64 }, + { "long double" , RDI_TypeKind_F80 , CV_BasicType_FLOAT80 }, + { "__float128" , RDI_TypeKind_F128 , CV_BasicType_FLOAT128 }, // Clang type + { "__float48" , RDI_TypeKind_F48 , CV_BasicType_FLOAT48 }, // not real C type + { "__float32pp" , RDI_TypeKind_F32PP , CV_BasicType_FLOAT32PP }, // not real C type + { "__float16" , RDI_TypeKind_F16 , CV_BasicType_FLOAT16 }, + { "_Complex float" , RDI_TypeKind_ComplexF32 , CV_BasicType_COMPLEX32 }, + { "_Complex double" , RDI_TypeKind_ComplexF64 , CV_BasicType_COMPLEX64 }, + { "_Complex long double" , RDI_TypeKind_ComplexF80 , CV_BasicType_COMPLEX80 }, + { "_Complex __float128" , RDI_TypeKind_ComplexF128, CV_BasicType_COMPLEX128 }, + { "__int8" , RDI_TypeKind_S8 , CV_BasicType_INT8 }, + { "__uint8" , RDI_TypeKind_U8 , CV_BasicType_UINT8 }, + { "__int16" , RDI_TypeKind_S16 , CV_BasicType_INT16 }, + { "__uint16" , RDI_TypeKind_U16 , CV_BasicType_UINT16 }, + { "int" , RDI_TypeKind_S32 , CV_BasicType_INT32 }, + { "int32" , RDI_TypeKind_S32 , CV_BasicType_INT32 }, + { "uint32" , RDI_TypeKind_U32 , CV_BasicType_UINT32 }, + { "__int64" , RDI_TypeKind_S64 , CV_BasicType_INT64 }, + { "__uint64" , RDI_TypeKind_U64 , CV_BasicType_UINT64 }, + { "__int128" , RDI_TypeKind_S128 , CV_BasicType_INT128 }, + { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UINT128 }, + { "char" , RDI_TypeKind_Char8 , CV_BasicType_RCHAR }, // always ASCII + { "wchar_t" , RDI_TypeKind_UChar16 , CV_BasicType_WCHAR }, // on windows always UTF-16 + { "char8_t" , RDI_TypeKind_Char8 , CV_BasicType_CHAR8 }, // always UTF-8 + { "char16_t" , RDI_TypeKind_Char16 , CV_BasicType_CHAR16 }, // always UTF-16 + { "char32_t" , RDI_TypeKind_Char32 , CV_BasicType_CHAR32 }, // always UTF-32 + { "__pointer" , ptr_type , CV_BasicType_PTR } + }; + for EachElement(idx, table) + { + RDIM_Type *builtin_alias = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, tpi_leaf->itype_opl); + builtin_alias->kind = RDI_TypeKind_Alias; + builtin_alias->name = str8_cstring(table[idx].name); + builtin_alias->direct_type = p2r_builtin_type_ptr_from_kind(table[idx].kind_rdi); + builtin_alias->byte_size = rdi_size_from_basic_type_kind(table[idx].kind_rdi); + itype_type_ptrs[table[idx].kind_cv] = builtin_alias; + } + itype_type_ptrs[CV_BasicType_HRESULT] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_FirstBuiltIn]; + itype_type_ptrs[CV_BasicType_VOID] = basic_type_ptrs[RDI_TypeKind_Void - RDI_TypeKind_FirstBuiltIn]; + } + + //////////////////////////// + //- rjf: build types from TPI + // + if(params->subset_flags & RDIM_SubsetFlag_Types) + { + for(CV_TypeId root_itype = 0; root_itype < itype_opl; root_itype += 1) + { + for(CV2R_TypeIdChain *itype_chain = itype_chains[root_itype]; + itype_chain != 0; + itype_chain = itype_chain->next) + { + CV_TypeId itype = (root_itype != itype_chain->itype && itype_chain->itype < itype_opl && itype_fwd_map[itype_chain->itype]) ? itype_fwd_map[itype_chain->itype] : itype_chain->itype; + B32 itype_is_basic = (itype < tpi_leaf->itype_first); + + ////////////////////////// + //- rjf: skip forward-reference itypes - all future resolutions will + // reference whatever this itype resolves to, and so there is no point + // in filling out this slot + // + if(itype_fwd_map[root_itype] != 0) + { + continue; + } + + ////////////////////////// + //- rjf: skip already produced dependencies + // + if(itype_type_ptrs[itype] != 0) + { + continue; + } + + ////////////////////////// + //- rjf: build basic type + // + if(itype_is_basic) + { + RDIM_Type *dst_type = 0; + + // rjf: unpack itype + CV_BasicPointerKind cv_basic_ptr_kind = CV_BasicPointerKindFromTypeId(itype); + CV_BasicType cv_basic_type_code = CV_BasicTypeFromTypeId(itype); + + // rjf: get basic type slot, fill if unfilled + RDIM_Type *basic_type = itype_type_ptrs[cv_basic_type_code]; + if(basic_type == 0) + { + RDI_TypeKind type_kind = cv2r_rdi_type_kind_from_cv_basic_type(cv_basic_type_code); + U32 byte_size = rdi_size_from_basic_type_kind(type_kind); + basic_type = dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + if(byte_size == 0xffffffff) + { + byte_size = arch_addr_size; + } + basic_type->kind = type_kind; + basic_type->name = cv_type_name_from_basic_type(cv_basic_type_code); + basic_type->byte_size = byte_size; + } + + // rjf: nonzero ptr kind -> form ptr type to basic tpye + if(cv_basic_ptr_kind != 0) + { + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Ptr; + dst_type->byte_size = arch_addr_size; + dst_type->direct_type = basic_type; + } + + // rjf: fill this itype's slot with the finished type + itype_type_ptrs[itype] = dst_type; + } + + ////////////////////////// + //- rjf: build non-basic type + // + if(!itype_is_basic && itype >= itype_first) + { + RDIM_Type *dst_type = 0; + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-itype_first]; + CV_LeafKind kind = range->hdr.kind; + U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); + if(range->off+range->hdr.size <= tpi_leaf->data.size && + range->off+2+header_struct_size <= tpi_leaf->data.size && + range->hdr.size >= 2) + { + U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; + U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; + switch(kind) + { + //- rjf: MODIFIER + case CV_LeafKind_MODIFIER: + { + // rjf: unpack leaf + CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; + + // rjf: cv -> rdi flags + RDI_TypeModifierFlags flags = 0; + if(lf->flags & CV_ModifierFlag_Const) {flags |= RDI_TypeModifierFlag_Const;} + if(lf->flags & CV_ModifierFlag_Volatile) {flags |= RDI_TypeModifierFlag_Volatile;} + + // rjf: fill type + if(flags == 0) + { + dst_type = p2r_type_ptr_from_itype(lf->itype); + } + else + { + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Modifier; + dst_type->flags = flags; + dst_type->direct_type = p2r_type_ptr_from_itype(lf->itype); + dst_type->byte_size = dst_type->direct_type ? dst_type->direct_type->byte_size : 0; + } + }break; + + //- rjf: POINTER + case CV_LeafKind_POINTER: + { + // TODO(rjf): if ptr_mode in {PtrMem, PtrMethod} then output a member pointer instead + + // rjf: unpack leaf + CV_LeafPointer *lf = (CV_LeafPointer *)itype_leaf_first; + RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); + CV_PointerKind ptr_kind = CV_PointerAttribs_Extract_Kind(lf->attribs); + CV_PointerMode ptr_mode = CV_PointerAttribs_Extract_Mode(lf->attribs); + U32 ptr_size = CV_PointerAttribs_Extract_Size(lf->attribs); + + // rjf: cv -> rdi modifier flags + RDI_TypeModifierFlags modifier_flags = 0; + if(lf->attribs & CV_PointerAttrib_Const) {modifier_flags |= RDI_TypeModifierFlag_Const;} + if(lf->attribs & CV_PointerAttrib_Volatile) {modifier_flags |= RDI_TypeModifierFlag_Volatile;} + if(lf->attribs & CV_PointerAttrib_Restricted) {modifier_flags |= RDI_TypeModifierFlag_Restrict;} + + // rjf: cv info -> rdi pointer type kind + RDI_TypeKind type_kind = RDI_TypeKind_Ptr; + { + if(lf->attribs & CV_PointerAttrib_LRef) + { + type_kind = RDI_TypeKind_LRef; + } + else if(lf->attribs & CV_PointerAttrib_RRef) + { + type_kind = RDI_TypeKind_RRef; + } + if(ptr_mode == CV_PointerMode_LRef) + { + type_kind = RDI_TypeKind_LRef; + } + else if(ptr_mode == CV_PointerMode_RRef) + { + type_kind = RDI_TypeKind_RRef; + } + } + + // rjf: fill type + if(modifier_flags != 0) + { + RDIM_Type *pointer_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Modifier; + dst_type->flags = modifier_flags; + dst_type->direct_type = pointer_type; + dst_type->byte_size = arch_addr_size; + pointer_type->kind = type_kind; + pointer_type->byte_size = arch_addr_size; + pointer_type->direct_type = direct_type; + } + else + { + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = type_kind; + dst_type->byte_size = arch_addr_size; + dst_type->direct_type = direct_type; + } + }break; + + //- rjf: PROCEDURE + case CV_LeafKind_PROCEDURE: + { + // TODO(rjf): handle call_kind & attribs + + // rjf: unpack leaf + CV_LeafProcedure *lf = (CV_LeafProcedure *)itype_leaf_first; + RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); + + // rjf: fill type's basics + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Function; + dst_type->byte_size = arch_addr_size; + dst_type->direct_type = ret_type; + + // rjf: unpack arglist range + CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-itype_first]; + if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || + arglist_range->hdr.size<2 || + arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) + { + break; + } + U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; + U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; + if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) + { + break; + } + + // rjf: unpack arglist info + CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; + CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); + U32 arglist_itypes_count = arglist->count; + + // rjf: count non-zero arguments + U32 arglist_itypes_nonzero_count = 0; + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + if(arglist_itypes_base[idx] != 0) + { + arglist_itypes_nonzero_count += 1; + } + } + + // rjf: build param type array + RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_nonzero_count); + { + U64 dst_idx = 0; + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + if(arglist_itypes_base[idx] != 0) + { + params[dst_idx] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); + dst_idx += 1; + } + } + } + + // rjf: fill dst type + dst_type->count = arglist_itypes_nonzero_count; + dst_type->param_types = params; + }break; + + //- rjf: MFUNCTION + case CV_LeafKind_MFUNCTION: + { + // TODO(rjf): handle call_kind & attribs + // TODO(rjf): preserve "this_adjust" + + // rjf: unpack leaf + CV_LeafMFunction *lf = (CV_LeafMFunction *)itype_leaf_first; + RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = (lf->this_itype != 0) ? RDI_TypeKind_Method : RDI_TypeKind_Function; + dst_type->byte_size = arch_addr_size; + dst_type->direct_type = ret_type; + + // rjf: unpack arglist range + CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-itype_first]; + if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || + arglist_range->hdr.size<2 || + arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) + { + break; + } + U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; + U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; + if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) + { + break; + } + + // rjf: unpack arglist info + CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; + CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); + U32 arglist_itypes_count = arglist->count; + + // rjf: build param type array + U64 num_this_extras = 1; + if(lf->this_itype == 0) + { + num_this_extras = 0; + } + RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_count+num_this_extras); + for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) + { + params[idx+num_this_extras] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); + } + if(lf->this_itype != 0) + { + params[0] = p2r_type_ptr_from_itype(lf->this_itype); + } + + // rjf: fill dst type + dst_type->count = arglist_itypes_count+num_this_extras; + dst_type->param_types = params; + }break; + + //- rjf: BITFIELD + case CV_LeafKind_BITFIELD: + { + // rjf: unpack leaf + CV_LeafBitField *lf = (CV_LeafBitField *)itype_leaf_first; + RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Bitfield; + dst_type->off = lf->pos; + dst_type->count = lf->len; + dst_type->byte_size = direct_type?direct_type->byte_size:0; + dst_type->direct_type = direct_type; + }break; + + //- rjf: ARRAY + case CV_LeafKind_ARRAY: + { + // rjf: unpack leaf + CV_LeafArray *lf = (CV_LeafArray *)itype_leaf_first; + RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->entry_itype); + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed array_count = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U64 full_size = cv_u64_from_numeric(&array_count); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Array; + dst_type->direct_type = direct_type; + dst_type->byte_size = full_size; + dst_type->count = (direct_type && direct_type->byte_size) ? (dst_type->byte_size/direct_type->byte_size) : 0; + }break; + + //- rjf: CLASS/STRUCTURE + case CV_LeafKind_CLASS: + case CV_LeafKind_STRUCTURE: + { + // TODO(rjf): handle props + + // rjf: unpack leaf + CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U64 size_u64 = cv_u64_from_numeric(&size); + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + if(lf->props & CV_TypeProp_FwdRef) + { + dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); + dst_type->name = name; + } + else + { + dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_Class : RDI_TypeKind_Struct); + dst_type->byte_size = (U32)size_u64; + dst_type->name = name; + } + }break; + + //- rjf: CLASS2/STRUCT2 + case CV_LeafKind_CLASS2: + case CV_LeafKind_STRUCT2: + { + // TODO(rjf): handle props + + // rjf: unpack leaf + CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U64 size_u64 = cv_u64_from_numeric(&size); + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + if(lf->props & CV_TypeProp_FwdRef) + { + dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); + dst_type->name = name; + } + else + { + dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_Class : RDI_TypeKind_Struct); + dst_type->byte_size = (U32)size_u64; + dst_type->name = name; + } + }break; + + //- rjf: alias + case CV_LeafKind_ALIAS: + { + // rjf: unpack leaf + CV_LeafAlias *lf = (CV_LeafAlias *)itype_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + dst_type->kind = RDI_TypeKind_Alias; + dst_type->name = name; + dst_type->direct_type = p2r_type_ptr_from_itype(lf->itype); + if(dst_type->direct_type != 0) + { + dst_type->byte_size = dst_type->direct_type->byte_size; + } + }break; + + //- rjf: UNION + case CV_LeafKind_UNION: + { + // TODO(rjf): handle props + + // rjf: unpack leaf + CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U64 size_u64 = cv_u64_from_numeric(&size); + U8 *name_ptr = numeric_ptr + size.encoded_size; + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + if(lf->props & CV_TypeProp_FwdRef) + { + dst_type->kind = RDI_TypeKind_IncompleteUnion; + dst_type->name = name; + } + else + { + dst_type->kind = RDI_TypeKind_Union; + dst_type->byte_size = (U32)size_u64; + dst_type->name = name; + } + }break; + + //- rjf: ENUM + case CV_LeafKind_ENUM: + { + // TODO(rjf): handle props + + // rjf: unpack leaf + CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; + RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->base_itype); + U8 *name_ptr = (U8 *)(lf + 1); + String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); + + // rjf: fill type + dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); + if(lf->props & CV_TypeProp_FwdRef) + { + dst_type->kind = RDI_TypeKind_IncompleteEnum; + dst_type->name = name; + } + else + { + dst_type->kind = RDI_TypeKind_Enum; + dst_type->direct_type = direct_type; + dst_type->byte_size = direct_type ? direct_type->byte_size : 0; + dst_type->name = name; + } + }break; + } + } + + //- rjf: store finalized type to this itype's slot + itype_type_ptrs[itype] = dst_type; + } + } + } + } +#undef p2r_type_ptr_from_itype +#undef p2r_builtin_type_ptr_from_kind + } + lane_sync_u64(&itype_type_ptrs, 0); + lane_sync_u64(&basic_type_ptrs, 0); + lane_sync_u64(&all_types__pre_typedefs_ptr, 0); + all_types__pre_typedefs = *all_types__pre_typedefs_ptr; + + ////////////////////////////////////////////////////////////// + //- rjf: set bit in all namespace nodes that correspond to scopes + // + if(params->subset_flags & (RDIM_SubsetFlag_Procedures| + RDIM_SubsetFlag_GlobalVariables| + RDIM_SubsetFlag_ThreadVariables| + RDIM_SubsetFlag_Scopes| + RDIM_SubsetFlag_Locals| + RDIM_SubsetFlag_GlobalVariableNameMap| + RDIM_SubsetFlag_ThreadVariableNameMap| + RDIM_SubsetFlag_ProcedureNameMap| + RDIM_SubsetFlag_ConstantNameMap| + RDIM_SubsetFlag_LinkNameProcedureNameMap| + RDIM_SubsetFlag_Types)) + ProfScope("determine which namespace nodes correspond to scopes") + { + U64 *sym_take_counter = lane_idx() == 0 ? push_array(scratch.arena, U64, 1) : 0; + lane_sync_u64(&sym_take_counter, 0); + for(;;) + { + U64 sym_idx = ins_atomic_u64_inc_eval(sym_take_counter) - 1; + if(sym_idx >= comp_units_count) + { + break; + } + CV_SymParsed *sym = comp_units[sym_idx].sym; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + { + CV_SymProc32 *proc32 = (CV_SymProc32 *)iter.struct_base; + String8 name = str8_cstring_capped(proc32+1, iter.opl); + U64 hash = u64_hash_from_str8(name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, name, 0)) + { + ins_atomic_u32_eval_assign(&n->corresponds_to_scope, 1); + break; + } + } + }break; + } + } + } + } + + ////////////////////////////////////////////////////////////// + //- rjf: gather all namespaces which are only encoded in symbols (not found in types) + // + if(params->subset_flags & (RDIM_SubsetFlag_Procedures| + RDIM_SubsetFlag_GlobalVariables| + RDIM_SubsetFlag_ThreadVariables| + RDIM_SubsetFlag_Scopes| + RDIM_SubsetFlag_Locals| + RDIM_SubsetFlag_GlobalVariableNameMap| + RDIM_SubsetFlag_ThreadVariableNameMap| + RDIM_SubsetFlag_ProcedureNameMap| + RDIM_SubsetFlag_ConstantNameMap| + RDIM_SubsetFlag_LinkNameProcedureNameMap| + RDIM_SubsetFlag_Types)) + ProfScope("gather all namespaces which are only encoded in symbols (not found in types)") + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + U64 lane_namespace_slots_count = 4096; + String8Node **lane_namespace_slots = push_array(scratch2.arena, String8Node *, lane_namespace_slots_count); + + //- rjf: gather from syms + U64 *sym_take_counter = lane_idx() == 0 ? push_array(scratch2.arena, U64, 1) : 0; + lane_sync_u64(&sym_take_counter, 0); + for(;;) + { + U64 sym_idx = ins_atomic_u64_inc_eval(sym_take_counter) - 1; + if(sym_idx >= comp_units_count) + { + break; + } + CV_SymParsed *sym = comp_units[sym_idx].sym; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + // rjf: get global symbol name + String8 symbol_name = {0}; + switch(iter.kind) + { + default:{}break; + case CV_SymKind_GDATA32: + { + CV_SymData32 *data32 = (CV_SymData32 *)iter.struct_base; + symbol_name = str8_cstring_capped(data32+1, iter.opl); + }break; + case CV_SymKind_GPROC32: + { + CV_SymProc32 *proc32 = (CV_SymProc32 *)iter.struct_base; + symbol_name = str8_cstring_capped(proc32+1, iter.opl); + }break; + case CV_SymKind_GTHREAD32: + { + CV_SymThread32 *thread32 = (CV_SymThread32 *)iter.struct_base; + symbol_name = str8_cstring_capped(thread32+1, iter.opl); + }break; + } + + // rjf: symbol name -> container name + String8 container_name = str8_chop(str8_prefix(symbol_name, cv2r_end_of_cplusplus_container_name(symbol_name)), 2); + + // rjf: non-empty container name -> gather + if(container_name.size != 0) + { + U64 container_name_hash = u64_hash_from_str8(container_name); + + // rjf: first, check if this container already showed up from type info + B32 already_exists = 0; + if(!already_exists) + { + U64 slot_idx = container_name_hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, container_name, 0)) + { + already_exists = 1; + break; + } + } + } + + // rjf: next, check if we've already gathered this namespace for this lane + if(!already_exists) + { + U64 slot_idx = container_name_hash%lane_namespace_slots_count; + for(String8Node *n = lane_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, container_name, 0)) + { + already_exists = 1; + break; + } + } + } + + // rjf: if we didn't find this namespace in either those from types, or already found in this lane, then gather + if(!already_exists) + { + U64 slot_idx = container_name_hash%lane_namespace_slots_count; + String8Node *n = push_array(scratch2.arena, String8Node, 1); + SLLStackPush(lane_namespace_slots[slot_idx], n); + n->string = container_name; + } + } + } + } + lane_sync(); + + //- rjf: combine + fold into the all_namespaces table + { + // rjf: gather lane maps + typedef struct LaneNamespaceTable LaneNamespaceTable; + struct LaneNamespaceTable + { + String8Node **slots; + U64 slots_count; + }; + LaneNamespaceTable *lane_namespace_tables = 0; + if(lane_idx() == 0) + { + lane_namespace_tables = push_array(scratch2.arena, LaneNamespaceTable, lane_count()); + } + lane_sync_u64(&lane_namespace_tables, 0); + lane_namespace_tables[lane_idx()].slots = lane_namespace_slots; + lane_namespace_tables[lane_idx()].slots_count = lane_namespace_slots_count; + lane_sync(); + + // rjf: combine + if(lane_idx() == 0) + { + for EachIndex(l_idx, lane_count()) + { + LaneNamespaceTable *tbl = &lane_namespace_tables[l_idx]; + for EachIndex(slot_idx, tbl->slots_count) + { + for(String8Node *n = tbl->slots[slot_idx]; n != 0; n = n->next) + { + U64 hash = u64_hash_from_str8(n->string); + U64 dst_slot_idx = hash%all_namespace_slots_count; + B32 already_exists = 0; + for(CV2R_NamespaceNode *dst_n = all_namespace_slots[dst_slot_idx]; dst_n != 0; dst_n = dst_n->next) + { + if(str8_match(dst_n->string, n->string, 0)) + { + already_exists = 1; + break; + } + } + if(!already_exists) + { + CV2R_NamespaceNode *dst_n = push_array(scratch.arena, CV2R_NamespaceNode, 1); + dst_n->string = n->string; + SLLStackPush(all_namespace_slots[dst_slot_idx], dst_n); + } + } + } + } + } + } + lane_sync(); + scratch_end(scratch2); + } + + ////////////////////////////////////////////////////////////// + //- rjf: upgrade namespace nodes with type info, if they match a type + // + ProfScope("upgrade namespace nodes with type info, if they match a type") + { +#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < tpi_leaf->itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) + Rng1U64 range = lane_range(all_namespace_slots_count); + for EachInRange(slot_idx, range) + { + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + String8 container_string = n->string; + CV_TypeId container_type_id = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, container_string, 0); + if(container_type_id != 0) + { + n->type = p2r_type_ptr_from_itype(container_type_id); + } + } + } +#undef p2r_type_ptr_from_itype + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: build namespaces, that are not scopes, nor types + // + RDIM_NamespaceChunkList all_namespaces = {0}; + { + // rjf: gather all per-lane namespaces + RDIM_NamespaceChunkList lane_namespaces = {0}; + Rng1U64 range = lane_range(all_namespace_slots_count); + for EachInRange(slot_idx, range) + { + Temp scratch = scratch_begin(&arena, 1); + + // rjf: gather nodes, sort + U64 node_count = 0; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) { node_count += 1; } + CV2R_NamespaceNode **nodes = push_array(scratch.arena, CV2R_NamespaceNode *, node_count); + { + U64 idx = 0; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next, idx += 1) + { + nodes[idx] = n; + } + } + radsort(nodes, node_count, cv2r_namespace_node_is_before); + + // rjf: build namespaces for this slot + for EachIndex(node_in_slot_idx, node_count) + { + CV2R_NamespaceNode *n = nodes[node_in_slot_idx]; + if(n->corresponds_to_scope || n->scope != 0 || n->type != 0) { continue; } + String8 string = n->string; + RDIM_Namespace *ns = rdim_namespace_chunk_list_push(arena, &lane_namespaces, 32); + ns->name = string; + n->ns = ns; + } + + scratch_end(scratch); + } + + // rjf: combine all per-lane namespaces + RDIM_NamespaceChunkList *lanes_namespaces = 0; + if(lane_idx() == 0) + { + lanes_namespaces = push_array(scratch.arena, RDIM_NamespaceChunkList, lane_count()); + } + lane_sync_u64(&lanes_namespaces, 0); + lanes_namespaces[lane_idx()] = lane_namespaces; + lane_sync(); + + // rjf: join all per-lane namespaces + RDIM_NamespaceChunkList *all_namespaces_ptr = &all_namespaces; + lane_sync_u64(&all_namespaces_ptr, 0); + if(lane_idx() == 0) + { + for EachIndex(l_idx, lane_count()) + { + rdim_namespace_chunk_list_concat_in_place(all_namespaces_ptr, &lanes_namespaces[l_idx]); + } + } + lane_sync(); + all_namespaces = *all_namespaces_ptr; + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: convert symbols from all units + // + typedef struct ScopeNamespaceNode ScopeNamespaceNode; + struct ScopeNamespaceNode + { + ScopeNamespaceNode *next; + String8 string; + RDIM_Scope *scope; + }; + typedef struct ScopeNamespaceList ScopeNamespaceList; + struct ScopeNamespaceList + { + ScopeNamespaceNode *first; + ScopeNamespaceNode *last; + }; + RDIM_TypeChunkList *syms_typedefs = 0; + ScopeNamespaceList *syms_scopes_that_are_namespaces = 0; + ProfScope("produce symbols from all streams") + { +#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) + + //////////////////////////// + //- rjf: set up + // + if(lane_idx() == 0) + { + syms_typedefs = push_array(arena, RDIM_TypeChunkList, comp_units_count); + syms_scopes_that_are_namespaces = push_array(arena, ScopeNamespaceList, comp_units_count); + } + lane_sync_u64(&syms_typedefs, 0); + lane_sync_u64(&syms_scopes_that_are_namespaces, 0); + + //////////////////////////// + //- rjf: fill outputs for all unit sym blocks in this lane + // + if(params->subset_flags & (RDIM_SubsetFlag_Procedures| + RDIM_SubsetFlag_GlobalVariables| + RDIM_SubsetFlag_ThreadVariables| + RDIM_SubsetFlag_Scopes| + RDIM_SubsetFlag_Locals| + RDIM_SubsetFlag_GlobalVariableNameMap| + RDIM_SubsetFlag_ThreadVariableNameMap| + RDIM_SubsetFlag_ProcedureNameMap| + RDIM_SubsetFlag_ConstantNameMap| + RDIM_SubsetFlag_LinkNameProcedureNameMap| + RDIM_SubsetFlag_Types)) + { + U64 *sym_take_counter = lane_idx() == 0 ? push_array(scratch.arena, U64, 1) : 0; + lane_sync_u64(&sym_take_counter, 0); + for(;;) + { + //- rjf: take next sym + U64 sym_idx = ins_atomic_u64_inc_eval(sym_take_counter) - 1; + if(sym_idx >= comp_units_count) + { + break; + } + + //- rjf: unpack sym + Temp scratch = scratch_begin(&arena, 1); + CV_SymParsed *sym = comp_units[sym_idx].sym; + RDIM_Unit *sym_unit = &all_units_ptr->first->v[sym_idx]; + RDIM_SymbolChunkList *sym_procedures = &sym_unit->procedures; + RDIM_SymbolChunkList *sym_global_variables = &sym_unit->global_variables; + RDIM_SymbolChunkList *sym_thread_variables = &sym_unit->thread_variables; + RDIM_SymbolChunkList *sym_constants = &sym_unit->constants; + RDIM_ScopeChunkList *sym_scopes = &sym_unit->scopes; + RDIM_InlineSiteChunkList *sym_inline_sites = &sym_unit->inline_sites; + RDIM_TypeChunkList *typedefs = &syms_typedefs[sym_idx]; + + ////////////////////////// + //- rjf: symbols pass 0: predict symbol chunk counts by record kinds + // + U64 sym_procedures_chunk_cap = sym->sym_ranges.count/4 + 1; + U64 sym_global_variables_chunk_cap = sym->sym_ranges.count/12 + 1; + U64 sym_thread_variables_chunk_cap = sym->sym_ranges.count/12 + 1; + U64 sym_constants_chunk_cap = sym->sym_ranges.count/6 + 1; + U64 sym_scopes_chunk_cap = sym->sym_ranges.count/4 + 1; + U64 sym_inline_sites_chunk_cap = sym->sym_ranges.count/6 + 1; + ProfScope("symbols pass 0: predict symbol chunk counts by record kinds") + { + U64 procedure_record_count = 0; + U64 global_variable_record_count = 0; + U64 thread_variable_record_count = 0; + U64 constant_record_count = 0; + U64 scope_record_count = 0; + U64 inline_site_record_count = 0; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + case CV_SymKind_THUNK32: + { + procedure_record_count += 1; + scope_record_count += 1; + }break; + case CV_SymKind_BLOCK32: + { + scope_record_count += 1; + }break; + case CV_SymKind_INLINESITE: + { + scope_record_count += 1; + inline_site_record_count += 1; + }break; + case CV_SymKind_LDATA32: + case CV_SymKind_GDATA32: + { + global_variable_record_count += 1; + }break; + case CV_SymKind_CONSTANT: + { + constant_record_count += 1; + }break; + case CV_SymKind_LTHREAD32: + case CV_SymKind_GTHREAD32: + { + thread_variable_record_count += 1; + }break; + } + } + sym_procedures_chunk_cap = Max(1, procedure_record_count); + sym_global_variables_chunk_cap = Max(1, global_variable_record_count); + sym_thread_variables_chunk_cap = Max(1, thread_variable_record_count); + sym_constants_chunk_cap = Max(1, constant_record_count); + sym_scopes_chunk_cap = Max(1, scope_record_count); + sym_inline_sites_chunk_cap = Max(1, inline_site_record_count); + } + + ////////////////////////// + //- rjf: symbols pass 1: produce procedure frame info map (procedure -> frame info) + // + U64 procedure_frameprocs_count = 0; + U64 procedure_frameprocs_cap = sym->sym_ranges.count; + CV_SymFrameproc **procedure_frameprocs = push_array_no_zero(scratch.arena, CV_SymFrameproc *, procedure_frameprocs_cap); + ProfScope("symbols pass 1: produce procedure frame info map (procedure -> frame info)") + { + U64 procedure_num = 0; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + + //- rjf: FRAMEPROC + case CV_SymKind_FRAMEPROC: + { + if(procedure_num == 0) { break; } + if(procedure_num > procedure_frameprocs_cap) { break; } + CV_SymFrameproc *frameproc = (CV_SymFrameproc *)iter.struct_base; + procedure_frameprocs[procedure_num-1] = frameproc; + procedure_frameprocs_count = Max(procedure_frameprocs_count, procedure_num); + }break; + + //- rjf: LPROC32/GPROC32 + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + { + procedure_num += 1; + }break; + } + } + U64 scratch_overkill = sizeof(procedure_frameprocs[0])*(procedure_frameprocs_cap-procedure_frameprocs_count); + arena_pop(scratch.arena, scratch_overkill); + } + + ////////////////////////// + //- rjf: symbols pass 2: construct all symbols, given procedure frame info map + // + ProfScope("symbols pass 2: construct all symbols, given procedure frame info map") + { + RDIM_Symbol *defrange_target = 0; + U64 procedure_num = 0; + U64 procedure_base_voff = 0; + CV_ProcFlags proc_flags = 0; + U64 regrel_idx = 0; + RDIM_Symbol *curr_proc_symbol = 0; + typedef struct CV2R_ScopeNode CV2R_ScopeNode; + struct CV2R_ScopeNode + { + CV2R_ScopeNode *next; + RDIM_Scope *scope; + }; + CV2R_ScopeNode *top_scope_node = 0; + CV2R_ScopeNode *free_scope_node = 0; + RDIM_LineTable *inline_site_line_table = sym_idx > 0 ? units_first_inline_site_line_tables[sym_idx-1] : 0; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + switch(iter.kind) + { + default:{}break; + + //- rjf: END + case CV_SymKind_END: + { + CV2R_ScopeNode *n = top_scope_node; + if(n != 0) + { + SLLStackPop(top_scope_node); + SLLStackPush(free_scope_node, n); + } + defrange_target = 0; + }break; + + //- rjf: BLOCK32 + case CV_SymKind_BLOCK32: + { + // rjf: unpack sym + CV_SymBlock32 *block32 = (CV_SymBlock32 *)iter.struct_base; + + // rjf: build scope, insert into current parent scope + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); + { + if(top_scope_node == 0) + { + // TODO(rjf): log + } + if(top_scope_node != 0) + { + RDIM_Scope *top_scope = top_scope_node->scope; + SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); + scope->parent_scope = top_scope; + scope->symbol = top_scope->symbol; + } + U64 voff_first = cv2r_voff_from_soff(sections, sections_count, block32->sec, block32->off); + if(voff_first != 0) + { + U64 voff_last = voff_first + block32->len; + RDIM_Rng1U64 voff_range = {voff_first, voff_last}; + rdim_scope_push_voff_range(arena, sym_scopes, scope, voff_range); + } + } + + // rjf: push this scope to scope stack + { + CV2R_ScopeNode *node = free_scope_node; + if(node != 0) { SLLStackPop(free_scope_node); } + else { node = push_array_no_zero(scratch.arena, CV2R_ScopeNode, 1); } + node->scope = scope; + SLLStackPush(top_scope_node, node); + } + }break; + + //- rjf: LDATA32/GDATA32 + case CV_SymKind_LDATA32: + case CV_SymKind_GDATA32: + { + // rjf: unpack sym + CV_SymData32 *data32 = (CV_SymData32 *)iter.struct_base; + String8 name = str8_cstring_capped(data32+1, iter.opl); + U64 voff = cv2r_voff_from_soff(sections, sections_count, data32->sec, data32->off); + + // rjf: determine if this is an exact duplicate global + // + // PDB likes to have duplicates of these spread across different + // symbol streams so we deduplicate across the entire translation + // context. + // + B32 is_duplicate = 0; + { + // TODO(rjf): @important global symbol dedup + } + + // rjf: is not duplicate -> push new global + if(!is_duplicate) + { + // rjf: unpack global variable's type + RDIM_Type *type = p2r_type_ptr_from_itype(data32->itype); + + // rjf: unpack global's container type + B32 got_container = 0; + RDIM_Type *container_type = 0; + U64 container_name_opl = cv2r_end_of_cplusplus_container_name(name); + String8 container_name = str8_chop(str8_prefix(name, container_name_opl), 2); + if(!got_container && container_name.size != 0) + { + CV_TypeId cv_type_id = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); + container_type = p2r_type_ptr_from_itype(cv_type_id); + got_container = (container_type != 0); + } + + // rjf: unpack global's container scope + RDIM_Scope *container_scope = 0; + if(!got_container && top_scope_node != 0 && iter.kind == CV_SymKind_LDATA32) + { + container_scope = top_scope_node->scope; + got_container = (container_scope != 0); + } + + // rjf: unpack global's container namespace + RDIM_Namespace *container_namespace = 0; + if(!got_container && container_name.size != 0) + { + U64 hash = u64_hash_from_str8(container_name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(container_name, n->string, 0) && + n->ns != 0) + { + container_namespace = n->ns; + break; + } + } + } + + // rjf: un-namespaceify the symbol name + String8 name__maybe_partially_qualified = name; + if(got_container) + { + name__maybe_partially_qualified = str8_skip(name, container_name_opl); + } + + // rjf: build symbol + RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, sym_global_variables, sym_global_variables_chunk_cap); + symbol->is_extern = (iter.kind == CV_SymKind_GDATA32); + symbol->name = name__maybe_partially_qualified; + symbol->type = type; + symbol->container_scope = container_scope; + symbol->container_type = container_type; + symbol->container_namespace = container_namespace; + RDIM_Location loc = {.kind = RDI_LocationKind_ModuleOff, .offset = voff}; + RDIM_Rng1U64 range = {0, 0xffffffffffffffffull}; + rdim_location_case_list_push(arena, &symbol->location_cases, loc, range); + } + }break; + + //- rjf: UDT (typedefs) + case CV_SymKind_UDT: + if(sym == comp_units[0].sym && top_scope_node == 0) + { + if(params->subset_flags & (RDIM_SubsetFlag_Types|RDIM_SubsetFlag_UDTs|RDIM_SubsetFlag_TypeNameMap)) + { + CV_SymUDT *udt = (CV_SymUDT *)iter.struct_base; + String8 name = str8_cstring_capped(udt+1, iter.opl); + RDIM_Type *type = rdim_type_chunk_list_push(arena, typedefs, 4096); + type->kind = RDI_TypeKind_Alias; + type->name = name; + type->direct_type = p2r_type_ptr_from_itype(udt->itype); + if(type->direct_type != 0) + { + type->byte_size = type->direct_type->byte_size; + } + } + }break; + + //- rjf: LPROC32/GPROC32 + case CV_SymKind_LPROC32: + case CV_SymKind_GPROC32: + { + // rjf: unpack sym + CV_SymProc32 *proc32 = (CV_SymProc32 *)iter.struct_base; + String8 name = str8_cstring_capped(proc32+1, iter.opl); + RDIM_Type *type = p2r_type_ptr_from_itype(proc32->itype); + + // rjf: unpack proc's container type + B32 got_container = 0; + RDIM_Type *container_type = 0; + U64 container_name_opl = cv2r_end_of_cplusplus_container_name(name); + String8 container_name = str8_chop(str8_prefix(name, container_name_opl), 2); + if(!got_container && container_name.size != 0 && tpi_hash != 0 && tpi_leaf != 0) + { + CV_TypeId cv_type_id = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); + container_type = p2r_type_ptr_from_itype(cv_type_id); + got_container = (container_type != 0); + } + + // rjf: unpack proc's container scope + RDIM_Scope *container_scope = 0; + if(!got_container && top_scope_node != 0) + { + container_scope = top_scope_node->scope; + got_container = 1; + } + + // rjf: unpack proc's container namespace + RDIM_Namespace *container_namespace = 0; + if(!got_container && container_name.size != 0) + { + U64 hash = u64_hash_from_str8(container_name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(container_name, n->string, 0) && + n->ns != 0) + { + container_namespace = n->ns; + break; + } + } + } + + // rjf: build procedure's root scope + // + // NOTE: even if there could be a containing scope at this point (which should be + // illegal in C/C++ but not necessarily in another language) we would not use + // it here because these scopes refer to the ranges of code that make up a + // procedure *not* the namespaces, so a procedure's root scope always has + // no parent. + RDIM_Scope *procedure_root_scope = 0; + if(params->subset_flags & RDIM_SubsetFlag_Scopes) + { + procedure_root_scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); + U64 voff_first = cv2r_voff_from_soff(sections, sections_count, proc32->sec, proc32->off); + if(voff_first != 0) + { + U64 voff_last = voff_first + proc32->len; + RDIM_Rng1U64 voff_range = {voff_first, voff_last}; + rdim_scope_push_voff_range(arena, sym_scopes, procedure_root_scope, voff_range); + procedure_base_voff = voff_first; + } + } + + // rjf: root scope voff minimum range -> link name + String8 link_name = {0}; + if(procedure_root_scope && procedure_root_scope->voff_ranges.min != 0) + { + U64 voff = procedure_root_scope->voff_ranges.min; + U64 hash = cv2r_hash_from_voff(voff); + U64 bucket_idx = hash%link_name_map->buckets_count; + CV2R_LinkNameNode *node = 0; + for(CV2R_LinkNameNode *n = link_name_map->buckets[bucket_idx]; n != 0; n = n->next) + { + if(n->voff == voff) + { + link_name = n->name; + ins_atomic_u64_inc_eval(&n->referencing_symbol_count); + break; + } + } + } + + // rjf: un-namespaceify the symbol name + String8 name__maybe_partially_qualified = name; + if(got_container) + { + name__maybe_partially_qualified = str8_skip(name, container_name_opl); + } + + // rjf: build procedure symbol + if(params->subset_flags & (RDIM_SubsetFlag_Procedures|RDIM_SubsetFlag_ProcedureNameMap)) + { + curr_proc_symbol = rdim_symbol_chunk_list_push(arena, sym_procedures, sym_procedures_chunk_cap); + curr_proc_symbol->is_extern = (iter.kind == CV_SymKind_GPROC32); + curr_proc_symbol->name = name__maybe_partially_qualified; + curr_proc_symbol->link_name = link_name; + curr_proc_symbol->type = type; + curr_proc_symbol->container_scope = container_scope; + curr_proc_symbol->container_type = container_type; + curr_proc_symbol->root_scope = procedure_root_scope; + if(procedure_root_scope != 0) + { + procedure_root_scope->symbol = curr_proc_symbol; + } + } + + // rjf: push scope to scope stack + if(procedure_root_scope) + { + CV2R_ScopeNode *node = free_scope_node; + if(node != 0) { SLLStackPop(free_scope_node); } + else { node = push_array_no_zero(scratch.arena, CV2R_ScopeNode, 1); } + node->scope = procedure_root_scope; + SLLStackPush(top_scope_node, node); + } + + // rjf: determine if this procedure is a namespace used for types; if so, gather + if(procedure_root_scope != 0) + { + U64 hash = u64_hash_from_str8(name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, name, 0)) + { + ScopeNamespaceNode *node = push_array(arena, ScopeNamespaceNode, 1); + node->scope = procedure_root_scope; + node->string = name; + SLLQueuePush(syms_scopes_that_are_namespaces[sym_idx].first, + syms_scopes_that_are_namespaces[sym_idx].last, + node); + break; + } + } + } + + // rjf: increment procedure counter + procedure_num += 1; + + // reset S_REGREL32 index + regrel_idx = 0; + + proc_flags = proc32->flags; + }break; + + //- rjf: THUNK32 + case CV_SymKind_THUNK32: + { + // rjf: unpack record + CV_SymThunk32 *thunk32 = (CV_SymThunk32 *)iter.struct_base; + String8 name = str8_cstring_capped(thunk32+1, iter.opl); + U64 voff_first = cv2r_voff_from_soff(sections, sections_count, thunk32->sec, thunk32->off); + U64 voff_opl = voff_first + thunk32->len; + + // rjf: build symbol / scope + RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, sym_procedures, sym_procedures_chunk_cap); + symbol->name = name; + symbol->is_thunk = 1; + if(voff_first != voff_opl) + { + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); + RDIM_Rng1U64 range = {voff_first, voff_opl}; + rdim_scope_push_voff_range(arena, sym_scopes, scope, range); + scope->symbol = symbol; + symbol->root_scope = scope; + } + }break; + + //- rjf: REGREL32 + case CV_SymKind_REGREL32: + { + if(params->subset_flags & RDIM_SubsetFlag_Locals && !(proc_flags & CV_ProcFlag_OptDbgInfo)) + { + // TODO(rjf): apparently some of the information here may end up being + // redundant with "better" information from CV_SymKind_LOCAL record. + // we don't currently handle this, but if those cases arise then it + // will obviously be better to prefer the better information from both + // records. + + // rjf: no containing scope? -> malformed data; locals cannot be produced + // outside of a containing scope + if(top_scope_node == 0) + { + break; + } + + // rjf: unpack sym + CV_SymRegrel32 *regrel32 = (CV_SymRegrel32 *)iter.struct_base; + String8 name = str8_cstring_capped(regrel32+1, iter.opl); + RDIM_Type *type = p2r_type_ptr_from_itype(regrel32->itype); + CV_Reg cv_reg = regrel32->reg; + U32 var_off = regrel32->reg_off; + + // rjf: determine if this is a parameter + B32 is_param = (regrel_idx < curr_proc_symbol->type->count); + + // rjf: determine if we need an extra indirection to the value + B32 extra_indirection_to_value = 0; + if(type != 0) + { + switch(arch) + { + case RDI_Arch_X64: + { + extra_indirection_to_value = (is_param && (type->byte_size > 8 || !IsPow2OrZero(type->byte_size))); + }break; + } + } + + // If the return local does not fit in a register MSVC does not assign it a type. + // So we infer the return type from the signature. + // + // rjf: redirect type, if 0, and if outside frame, to the return type of the + // containing procedure + { + B32 is_stack_reg = 0; + switch(arch) + { + default:{}break; + case RDI_Arch_X64:{is_stack_reg = (cv_reg == CV_Regx64_RSP || cv_reg == CV_Regx64_RBP);}break; + } + if(is_stack_reg) + { + if(procedure_num != 0 && procedure_frameprocs[procedure_num-1] != 0 && procedure_num <= procedure_frameprocs_count) + { + CV_SymFrameproc *frameproc = procedure_frameprocs[procedure_num-1]; + if(var_off > frameproc->frame_size && regrel32->itype == 0 && + top_scope_node->scope->symbol != 0 && + top_scope_node->scope->symbol->type != 0) + { + type = top_scope_node->scope->symbol->type->direct_type; + extra_indirection_to_value = 1; + } + } + } + } + + // rjf: build local + { + RDIM_Scope *scope = top_scope_node->scope; + RDIM_Symbol *local = rdim_symbol_chunk_list_push(arena, &scope->locals, 8); + local->container_scope = scope; + local->is_param = is_param; + local->name = name; + local->type = type; + + // rjf: equip location info + { + // rjf: get raddbg register code + RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); + // TODO(rjf): real byte_size & byte_pos from cv_reg goes here + U32 byte_size = 8; + U32 byte_pos = 0; + + // rjf: build location + RDIM_Location loc = cv2r_location_from_addr_reg_off(arena, arch, reg_code, byte_size, byte_pos, (S64)(S32)var_off, extra_indirection_to_value); + RDIM_Rng1U64 voff_range = {0, max_U64}; + rdim_location_case_list_push(arena, &local->location_cases, loc, voff_range); + } + } + } + + regrel_idx += 1; + }break; + + //- rjf: LTHREAD32/GTHREAD32 + case CV_SymKind_LTHREAD32: + case CV_SymKind_GTHREAD32: + if(params->subset_flags & (RDIM_SubsetFlag_ThreadVariables|RDIM_SubsetFlag_ThreadVariableNameMap)) + { + // rjf: unpack sym + CV_SymThread32 *thread32 = (CV_SymThread32 *)iter.struct_base; + String8 name = str8_cstring_capped(thread32+1, iter.opl); + U32 tls_off = thread32->tls_off; + RDIM_Type *type = p2r_type_ptr_from_itype(thread32->itype); + + // rjf: unpack thread variable's container type + B32 got_container = 0; + RDIM_Type *container_type = 0; + U64 container_name_opl = cv2r_end_of_cplusplus_container_name(name); + String8 container_name = str8_chop(str8_prefix(name, container_name_opl), 2); + if(!got_container && container_name.size != 0) + { + CV_TypeId cv_type_id = cv2r_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); + container_type = p2r_type_ptr_from_itype(cv_type_id); + got_container = (container_type != 0); + } + + // rjf: unpack thread variable's container symbol + RDIM_Scope *container_scope = 0; + if(!got_container && top_scope_node != 0) + { + got_container = 1; + container_scope = top_scope_node->scope; + } + + // rjf: unpack proc's container namespace + RDIM_Namespace *container_namespace = 0; + if(!got_container && container_name.size != 0) + { + U64 hash = u64_hash_from_str8(container_name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(container_name, n->string, 0) && + n->ns != 0) + { + container_namespace = n->ns; + break; + } + } + } + + // rjf: un-namespaceify the symbol name + String8 name__maybe_partially_qualified = name; + if(got_container) + { + name__maybe_partially_qualified = str8_skip(name, container_name_opl); + } + + // rjf: build symbol + RDIM_Symbol *tvar = rdim_symbol_chunk_list_push(arena, sym_thread_variables, sym_thread_variables_chunk_cap); + tvar->name = name__maybe_partially_qualified; + tvar->type = type; + tvar->is_extern = (iter.kind == CV_SymKind_GTHREAD32); + tvar->container_type = container_type; + tvar->container_scope = container_scope; + tvar->container_namespace = container_namespace; + RDIM_Location loc = {.kind = RDI_LocationKind_TLSOff, .offset = tls_off}; + RDIM_Rng1U64 range = {0, 0xffffffffffffffffull}; + rdim_location_case_list_push(arena, &tvar->location_cases, loc, range); + }break; + + //- rjf: LOCAL + case CV_SymKind_LOCAL: + if(params->subset_flags & (RDIM_SubsetFlag_Locals)) + { + // rjf: no containing scope? -> malformed data; locals cannot be produced + // outside of a containing scope + if(top_scope_node == 0) + { + break; + } + + // rjf: unpack sym + CV_SymLocal *slocal = (CV_SymLocal *)iter.struct_base; + String8 name = str8_cstring_capped(slocal+1, iter.opl); + RDIM_Type *type = p2r_type_ptr_from_itype(slocal->itype); + + // rjf: determine if this symbol encodes the beginning of a global modification + B32 is_global_modification = 0; + if((slocal->flags & CV_LocalFlag_Global) || + (slocal->flags & CV_LocalFlag_Static)) + { + is_global_modification = 1; + } + + // rjf: is global modification -> emit global modification symbol + if(is_global_modification) + { + // TODO(rjf): add global modification symbols + defrange_target = 0; + } + + // rjf: is not a global modification -> emit a local variable + if(!is_global_modification) + { + // rjf: build local + RDIM_Scope *scope = top_scope_node->scope; + RDIM_Symbol *local = rdim_symbol_chunk_list_push(arena, &scope->locals, 8); + { + local->container_scope = scope; + local->is_param = !!(slocal->flags & CV_LocalFlag_Param); + local->name = name; + local->type = type; + } + + // rjf: save defrange target, for subsequent defrange symbols + defrange_target = local; + } + }break; + + //- rjf: DEFRANGE_REGISTER + case CV_SymKind_DEFRANGE_REGISTER: + { + // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing + // a local - break immediately + if(defrange_target == 0) + { + break; + } + + // rjf: unpack sym + CV_SymDefrangeRegister *defrange_register = (CV_SymDefrangeRegister*)iter.struct_base; + CV_Reg cv_reg = defrange_register->reg; + CV_LvarAddrRange *range = &defrange_register->range; + U64 range_voff_first = cv2r_voff_from_soff(sections, sections_count, range->sec, range->off); + U64 range_voff_opl = range_voff_first + range->len; + Rng1U64 voff_range = r1u64(range_voff_first, range_voff_opl); + CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register+1); + U64 gap_count = ((U8*)iter.opl - (U8*)gaps) / sizeof(*gaps); + RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); + + // rjf: build location + RDIM_Location loc = {RDI_LocationKind_ValReg, reg_code}; + + // rjf: emit locations over ranges + cv2r_location_case_list_push_over_lvar_addr_range(arena, &defrange_target->location_cases, loc, voff_range, gaps, gap_count); + }break; + + //- rjf: DEFRANGE_FRAMEPOINTER_REL + case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL: + { + // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing + // a local - break immediately + if(defrange_target == 0) + { + break; + } + + // rjf: find current procedure's frameproc + CV_SymFrameproc *frameproc = 0; + if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) + { + frameproc = procedure_frameprocs[procedure_num-1]; + } + + // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange + // without having an actually active procedure - break + if(frameproc == 0) + { + break; + } + + // rjf: unpack sym + CV_SymDefrangeFramepointerRel *defrange_fprel = (CV_SymDefrangeFramepointerRel*)iter.struct_base; + CV_LvarAddrRange *range = &defrange_fprel->range; + U64 range_voff_first = cv2r_voff_from_soff(sections, sections_count, range->sec, range->off); + U64 range_voff_opl = range_voff_first + range->len; + Rng1U64 voff_range = r1u64(range_voff_first, range_voff_opl); + CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_fprel + 1); + U64 gap_count = ((U8*)iter.opl - (U8*)gaps) / sizeof(*gaps); + + // rjf: select frame pointer register + CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target->is_param); + RDI_RegCode fp_register_code = cv2r_reg_code_from_arch_encoded_fp_reg(arch, encoded_fp_reg); + + // rjf: build location + B32 extra_indirection = 0; + U32 byte_size = rdi_addr_size_from_arch(arch); + U32 byte_pos = 0; + S64 var_off = (S64)defrange_fprel->off; + RDIM_Location location = cv2r_location_from_addr_reg_off(arena, arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); + + // rjf: emit locations over ranges + cv2r_location_case_list_push_over_lvar_addr_range(arena, &defrange_target->location_cases, location, voff_range, gaps, gap_count); + }break; + + //- rjf: DEFRANGE_SUBFIELD_REGISTER + case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER: + { + // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing + // a local - break immediately + if(defrange_target == 0) + { + break; + } + + // rjf: unpack sym + CV_SymDefrangeSubfieldRegister *defrange_subfield_register = (CV_SymDefrangeSubfieldRegister*)iter.struct_base; + CV_Reg cv_reg = defrange_subfield_register->reg; + CV_LvarAddrRange *range = &defrange_subfield_register->range; + U64 range_voff_first = cv2r_voff_from_soff(sections, sections_count, range->sec, range->off); + U64 range_voff_opl = range_voff_first + range->len; + Rng1U64 voff_range = r1u64(range_voff_first, range_voff_opl); + CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_subfield_register + 1); + U64 gap_count = ((U8*)iter.opl - (U8*)gaps) / sizeof(*gaps); + RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); + + // rjf: skip "subfield" location info - currently not supported + if(defrange_subfield_register->field_offset != 0) + { + break; + } + + // rjf: build location + RDIM_Location loc = {RDI_LocationKind_ValReg, reg_code}; + + // rjf: emit locations over ranges + cv2r_location_case_list_push_over_lvar_addr_range(arena, &defrange_target->location_cases, loc, voff_range, gaps, gap_count); + }break; + + //- rjf: DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE + case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE: + { + // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing + // a local - break immediately + if(defrange_target == 0) + { + break; + } + + // rjf: find current procedure's frameproc + CV_SymFrameproc *frameproc = 0; + if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) + { + frameproc = procedure_frameprocs[procedure_num-1]; + } + + // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange + // without having an actually active procedure - break + if(frameproc == 0) + { + break; + } + + // rjf: unpack sym + CV_SymDefrangeFramepointerRelFullScope *defrange_fprel_full_scope = (CV_SymDefrangeFramepointerRelFullScope*)iter.struct_base; + CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target->is_param); + RDI_RegCode fp_register_code = cv2r_reg_code_from_arch_encoded_fp_reg(arch, encoded_fp_reg); + + // rjf: build location + B32 extra_indirection = 0; + U32 byte_size = rdi_addr_size_from_arch(arch); + U32 byte_pos = 0; + S64 var_off = (S64)defrange_fprel_full_scope->off; + RDIM_Location loc = cv2r_location_from_addr_reg_off(arena, arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); + + // rjf: emit location over ranges + RDIM_Rng1U64 voff_range = {0, max_U64}; + rdim_location_case_list_push(arena, &defrange_target->location_cases, loc, voff_range); + }break; + + //- rjf: DEFRANGE_REGISTER_REL + case CV_SymKind_DEFRANGE_REGISTER_REL: + { + // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing + // a local - break immediately + if(defrange_target == 0) + { + break; + } + + // rjf: unpack sym + CV_SymDefrangeRegisterRel *defrange_register_rel = (CV_SymDefrangeRegisterRel*)iter.struct_base; + CV_Reg cv_reg = defrange_register_rel->reg; + RDI_RegCode reg_code = cv2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); + CV_LvarAddrRange *range = &defrange_register_rel->range; + U64 range_voff_first = cv2r_voff_from_soff(sections, sections_count, range->sec, range->off); + U64 range_voff_opl = range_voff_first + range->len; + Rng1U64 voff_range = r1u64(range_voff_first, range_voff_opl); + CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register_rel + 1); + U64 gap_count = ((U8*)iter.opl - (U8*)gaps) / sizeof(*gaps); + + // rjf: build location + // TODO(rjf): offset & size from cv_reg code + U32 byte_size = rdi_addr_size_from_arch(arch); + U32 byte_pos = 0; + B32 extra_indirection_to_value = 0; + S64 var_off = defrange_register_rel->reg_off; + RDIM_Location loc = cv2r_location_from_addr_reg_off(arena, arch, reg_code, byte_size, byte_pos, var_off, extra_indirection_to_value); + + // rjf: emit locations over ranges + cv2r_location_case_list_push_over_lvar_addr_range(arena, &defrange_target->location_cases, loc, voff_range, gaps, gap_count); + }break; + + //- rjf: FILESTATIC + case CV_SymKind_FILESTATIC: + { + CV_SymFileStatic *file_static = (CV_SymFileStatic*)iter.struct_base; + String8 name = str8_cstring_capped(file_static+1, iter.opl); + RDIM_Type *type = p2r_type_ptr_from_itype(file_static->itype); + // TODO(rjf): emit a global modifier symbol + defrange_target = 0; + }break; + + //- rjf: INLINESITE + case CV_SymKind_INLINESITE: + if(params->subset_flags & (RDIM_SubsetFlag_Scopes)) + { + // rjf: unpack sym + CV_SymInlineSite *sym = (CV_SymInlineSite *)iter.struct_base; + String8 binary_annots = str8((U8 *)(sym+1), (U64)((U8 *)iter.opl - (U8 *)(sym+1))); + + // rjf: extract external info about inline site + String8 name = {0}; + RDIM_Type *type = 0; + RDIM_Type *owner = 0; + if(ipi_leaf != 0 && ipi_leaf->itype_first <= sym->inlinee && sym->inlinee < ipi_leaf->itype_opl) + { + CV_RecRange rec_range = ipi_leaf->leaf_ranges.ranges[sym->inlinee - ipi_leaf->itype_first]; + String8 rec_data = str8_substr(ipi_leaf->data, rng_1u64(rec_range.off, rec_range.off + rec_range.hdr.size)); + void *raw_leaf = rec_data.str + sizeof(U16); + + // rjf: extract method inline info + if(rec_range.hdr.kind == CV_LeafKind_MFUNC_ID && + rec_range.hdr.size >= sizeof(CV_LeafMFuncId)) + { + CV_LeafMFuncId *mfunc_id = (CV_LeafMFuncId*)raw_leaf; + name = str8_cstring_capped(mfunc_id + 1, rec_data.str + rec_data.size); + type = p2r_type_ptr_from_itype(mfunc_id->itype); + owner = mfunc_id->owner_itype != 0 ? p2r_type_ptr_from_itype(mfunc_id->owner_itype) : 0; + } + + // rjf: extract non-method function inline info + else if(rec_range.hdr.kind == CV_LeafKind_FUNC_ID && + rec_range.hdr.size >= sizeof(CV_LeafFuncId)) + { + CV_LeafFuncId *func_id = (CV_LeafFuncId*)raw_leaf; + name = str8_cstring_capped(func_id + 1, rec_data.str + rec_data.size); + type = p2r_type_ptr_from_itype(func_id->itype); + owner = func_id->scope_string_id != 0 ? p2r_type_ptr_from_itype(func_id->scope_string_id) : 0; + } + } + + // rjf: build inline site + RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, sym_inline_sites, sym_inline_sites_chunk_cap); + inline_site->name = name; + inline_site->type = type; + inline_site->owner = owner; + inline_site->line_table = inline_site_line_table; + + // rjf: increment to next inline site line table in this unit + if(inline_site_line_table != 0 && inline_site_line_table->chunk != 0) + { + RDIM_LineTableChunkNode *chunk = inline_site_line_table->chunk; + U64 current_idx = (U64)(inline_site_line_table - chunk->v); + if(current_idx+1 < chunk->count) + { + inline_site_line_table += 1; + } + else + { + chunk = chunk->next; + inline_site_line_table = 0; + if(chunk != 0) + { + inline_site_line_table = chunk->v; + } + } + } + + // rjf: build scope + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); + scope->inline_site = inline_site; + if(top_scope_node == 0) + { + // TODO(rjf): log + } + if(top_scope_node != 0) + { + RDIM_Scope *top_scope = top_scope_node->scope; + SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); + scope->parent_scope = top_scope; + scope->symbol = top_scope->symbol; + } + + // rjf: push this scope to scope stack + { + CV2R_ScopeNode *node = free_scope_node; + if(node != 0) { SLLStackPop(free_scope_node); } + else { node = push_array_no_zero(scratch.arena, CV2R_ScopeNode, 1); } + node->scope = scope; + SLLStackPush(top_scope_node, node); + } + + // rjf: parse offset ranges of this inline site - attach to scope + { + CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(0, 0, procedure_base_voff); + for(;;) + { + CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); + + if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitRange) + { + // rjf: build new range & add to scope + RDIM_Rng1U64 voff_range = { step.range.min, step.range.max }; + rdim_scope_push_voff_range(arena, sym_scopes, scope, voff_range); + } + + if(step.flags & CV_C13InlineSiteDecoderStepFlag_ExtendLastRange) + { + if(scope->voff_ranges.last != 0) + { + scope->voff_ranges.last->v.max = step.range.max; + } + } + + if(step.flags == 0) + { + break; + } + } + } + }break; + + //- rjf: INLINESITE_END + case CV_SymKind_INLINESITE_END: + { + CV2R_ScopeNode *n = top_scope_node; + if(n != 0) + { + SLLStackPop(top_scope_node); + SLLStackPush(free_scope_node, n); + } + defrange_target = 0; + }break; + + //- rjf: CONSTANT + case CV_SymKind_CONSTANT: + if(params->subset_flags & RDIM_SubsetFlag_Constants) + { + // rjf: unpack + CV_SymConstant *sym = (CV_SymConstant *)iter.struct_base; + RDIM_Type *type = p2r_type_ptr_from_itype(sym->itype); + U8 *val_ptr = (U8 *)(sym+1); + CV_NumericParsed val = cv_numeric_from_data_range(val_ptr, iter.opl); + U64 val64 = cv_u64_from_numeric(&val); + U8 *name_ptr = val_ptr + val.encoded_size; + String8 name = str8_cstring_capped(name_ptr, iter.opl); + String8 val_data = str8_struct(&val64); + U64 container_name_opl = 0; + if(type != 0) + { + container_name_opl = cv2r_end_of_cplusplus_container_name(type->name); + } + String8 name_qualified = name; + if(container_name_opl != 0) + { + name_qualified = push_str8f(arena, "%S%S", str8_prefix(type->name, container_name_opl), name); + } + + // rjf: build constant symbol + if(name_qualified.size != 0) + { + RDIM_Symbol *cnst = rdim_symbol_chunk_list_push(arena, sym_constants, sym_constants_chunk_cap); + cnst->name = name_qualified; + cnst->type = type; + RDIM_Location loc = {.kind = RDI_LocationKind_ConstantDataOff, .value_data = str8_copy(arena, val_data)}; + RDIM_Rng1U64 range = {0, 0xffffffffffffffffull}; + rdim_location_case_list_push(arena, &cnst->location_cases, loc, range); + } + }break; + } + } + } + + scratch_end(scratch); + } + } +#undef p2r_type_ptr_from_itype + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: produce stub procedures from all pub32 symbols + // + if(lane_idx() == 0) + { + CV_SymParsed *sym = comp_units[0].sym; + for(CV_RecIter iter = {0}; cv_rec_next(sym->data, &sym->sym_ranges, 0, &iter);) + { + RDIM_Unit *sym_unit = &all_units_ptr->first->v[0]; + RDIM_SymbolChunkList *sym_procedures = &sym_unit->procedures; + RDIM_SymbolChunkList *sym_global_variables = &sym_unit->global_variables; + RDIM_ScopeChunkList *sym_scopes = &sym_unit->scopes; + switch(iter.kind) + { + default:{}break; + case CV_SymKind_PUB32: + { + // rjf: unpack record + CV_SymPub32 *pub32 = (CV_SymPub32 *)iter.struct_base; + String8 name = str8_cstring_capped(pub32+1, iter.opl); + U64 voff = cv2r_voff_from_soff(sections, sections_count, pub32->sec, pub32->off); + + // rjf: determine if this pub32 was covered by another symbol record + B32 was_in_other_record = 0; + { + U64 hash = cv2r_hash_from_voff(voff); + U64 slot_idx = hash%link_name_map->buckets_count; + for(CV2R_LinkNameNode *n = link_name_map->buckets[slot_idx]; n != 0; n = n->next) + { + if(n->voff == voff) + { + was_in_other_record = (n->referencing_symbol_count != 0); + break; + } + } + } + + // rjf: find compilation unit contribution to determine pub32's size + U64 voff_opl = voff+1; + if(!was_in_other_record) + { + CV2R_CompUnitContribution *contrib = cv2r_comp_unit_contribution_from_voff__binary_search(params->comp_unit_contributions, params->comp_unit_contributions_count, voff); + if(contrib != 0) + { + voff_opl = contrib->voff_opl; + } + } + + // rjf: if this pub32 was *not* covered by another symbol record, build a symbol for it + if(!was_in_other_record) + { + B32 is_procedure = (pub32->flags & (CV_Pub32Flag_Code|CV_Pub32Flag_Function)); + RDIM_SymbolChunkList *symbols = is_procedure ? sym_procedures : sym_global_variables; + RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, symbols, 64); + symbol->name = name; + symbol->link_name = name; + if(is_procedure) + { + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, 64); + scope->symbol = symbol; + RDIM_Rng1U64 range = {voff, voff_opl}; + rdim_scope_push_voff_range(arena, sym_scopes, scope, range); + symbol->root_scope = scope; + } + } + }break; + } + } + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: upgrade namespace nodes with scopes info, if they match a scope + // + if(lane_idx() == 0) + { + for EachIndex(sym_idx, comp_units_count) + { + ScopeNamespaceList *scopes_that_are_namespaces = &syms_scopes_that_are_namespaces[sym_idx]; + for(ScopeNamespaceNode *scope_n = scopes_that_are_namespaces->first; scope_n != 0; scope_n = scope_n->next) + { + U64 hash = u64_hash_from_str8(scope_n->string); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + n->scope = scope_n->scope; + } + } + } + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: upgrade namespaces with container info; trim off container names + // + for EachNode(n, RDIM_NamespaceChunkNode, all_namespaces.first) + { + Rng1U64 range = lane_range(n->count); + for EachInRange(n_idx, range) + { + RDIM_Namespace *ns = &n->v[n_idx]; + U64 container_name_opl = cv2r_end_of_cplusplus_container_name(ns->name); + String8 container_name = str8_chop(str8_prefix(ns->name, container_name_opl), 2); + if(container_name.size != 0) + { + String8 leaf_name = str8_skip(ns->name, container_name_opl); + U64 hash = u64_hash_from_str8(container_name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *ns_n = all_namespace_slots[slot_idx]; ns_n != 0; ns_n = ns_n->next) + { + if(str8_match(ns_n->string, container_name, 0)) + { + ns->parent_scope = ns_n->scope; + ns->parent_type = ns_n->type; + ns->parent_namespace = ns_n->ns; + break; + } + } + ns->name = leaf_name; + } + } + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: join extra types from units + // + RDIM_TypeChunkList all_types = {0}; + { + RDIM_TypeChunkList *all_types_ptr = 0; + if(lane_idx() == 0) + { + all_types_ptr = push_array(scratch.arena, RDIM_TypeChunkList, 1); + } + lane_sync_u64(&all_types_ptr, 0); + if(lane_idx() == lane_from_task_idx(7)) ProfScope("join typedefs") + { + for EachIndex(idx, comp_units_count) + { + rdim_type_chunk_list_concat_in_place(all_types__pre_typedefs_ptr, &syms_typedefs[idx]); + } + *all_types_ptr = *all_types__pre_typedefs_ptr; + } + lane_sync(); + all_types = *all_types_ptr; + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: build UDTs + // + RDIM_UDTChunkList *lanes_udts = 0; + ProfScope("build UDTs") + { +#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < tpi_leaf->itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) + + //- rjf: gather this lane's UDTs + RDIM_UDTChunkList lane_udts = {0}; + if(params->subset_flags & RDIM_SubsetFlag_Types && + params->subset_flags & RDIM_SubsetFlag_UDTs) + { + U64 udts_chunk_cap = 4096; + RDIM_UDTChunkList *udts = &lane_udts; + Rng1U64 range = lane_range(itype_opl); + for EachInRange(idx, range) + { + //- rjf: skip basics + CV_TypeId itype = (CV_TypeId)idx; + if(itype < itype_first) { continue; } + + //- rjf: grab type for this itype - skip if empty + RDIM_Type *dst_type = itype_type_ptrs[itype]; + if(dst_type == 0) { continue; } + + //- rjf: unpack itype leaf range - skip if out-of-range + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; + CV_LeafKind kind = range->hdr.kind; + U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); + U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; + U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; + if(range->off+range->hdr.size > tpi_leaf->data.size || + range->off+2+header_struct_size > tpi_leaf->data.size || + range->hdr.size < 2) + { + continue; + } + + //- rjf: build UDT + String8 udt_name = {0}; + CV_TypeId field_itype = 0; + switch(kind) + { + default:{}break; + + //////////////////////// + //- rjf: structs/unions/classes -> equip members + // + case CV_LeafKind_CLASS: + case CV_LeafKind_STRUCTURE: + { + CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; + if(lf->props & CV_TypeProp_FwdRef) + { + break; + } + field_itype = lf->field_itype; + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = numeric_ptr + size.encoded_size; + udt_name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }goto equip_members; + case CV_LeafKind_UNION: + { + CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; + if(lf->props & CV_TypeProp_FwdRef) + { + break; + } + field_itype = lf->field_itype; + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = numeric_ptr + size.encoded_size; + udt_name = str8_cstring_capped(name_ptr, itype_leaf_opl); + }goto equip_members; + case CV_LeafKind_CLASS2: + case CV_LeafKind_STRUCT2: + { + CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; + if(lf->props & CV_TypeProp_FwdRef) + { + break; + } + U8 *numeric_ptr = (U8*)(lf + 1); + CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); + U8 *name_ptr = numeric_ptr + size.encoded_size; + udt_name = str8_cstring_capped(name_ptr, itype_leaf_opl); + field_itype = lf->field_itype; + }goto equip_members; + equip_members: + { + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: grab UDT info + RDIM_UDT *dst_udt = dst_type->udt; + if(dst_udt == 0) + { + dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); + dst_udt->self_type = dst_type; + } + + //- rjf: gather all fields + typedef struct FieldListTask FieldListTask; + struct FieldListTask + { + FieldListTask *next; + CV_TypeId itype; + }; + FieldListTask start_fl_task = {0, field_itype}; + FieldListTask *fl_todo_stack = &start_fl_task; + FieldListTask *fl_done_stack = 0; + for(;fl_todo_stack != 0;) + { + //- rjf: take & unpack task + FieldListTask *fl_task = fl_todo_stack; + SLLStackPop(fl_todo_stack); + SLLStackPush(fl_done_stack, fl_task); + CV_TypeId field_list_itype = fl_task->itype; + + //- rjf: skip bad itypes + if(field_list_itype < tpi_leaf->itype_first || tpi_leaf->itype_opl <= field_list_itype) + { + continue; + } + + //- rjf: field list itype -> range + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[field_list_itype-tpi_leaf->itype_first]; + + //- rjf: skip bad headers + if(range->off+range->hdr.size > tpi_leaf->data.size || + range->hdr.size < 2 || + range->hdr.kind != CV_LeafKind_FIELDLIST) + { + continue; + } + + //- rjf: loop over all fields + { + U8 *field_list_first = tpi_leaf->data.str+range->off+2; + U8 *field_list_opl = field_list_first+range->hdr.size-2; + for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; + read_ptr < field_list_opl; + read_ptr = next_read_ptr) + { + // rjf: unpack field + CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; + U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); + U8 *field_leaf_first = read_ptr+2; + U8 *field_leaf_opl = field_list_opl; + next_read_ptr = field_leaf_opl; + + // rjf: skip out-of-bounds fields + if(field_leaf_first+field_leaf_header_size > field_list_opl) + { + continue; + } + + // rjf: process field + switch(field_kind) + { + //- rjf: unhandled/invalid cases + default: + { + // TODO(rjf): log + }break; + + //- rjf: INDEX + case CV_LeafKind_INDEX: + { + // rjf: unpack leaf + CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; + CV_TypeId new_itype = lf->itype; + + // rjf: bump next read pointer past header + next_read_ptr = (U8 *)(lf+1); + + // rjf: determine if index itype is new + B32 is_new = 1; + for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) + { + if(t->itype == new_itype) + { + is_new = 0; + break; + } + } + + // rjf: if new -> push task to follow new itype + if(is_new) + { + FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); + SLLStackPush(fl_todo_stack, new_task); + new_task->itype = new_itype; + } + }break; + + //- rjf: MEMBER + case CV_LeafKind_MEMBER: + { + // TODO(rjf): log on bad offset + + // rjf: unpack leaf + CV_LeafMember *lf = (CV_LeafMember *)field_leaf_first; + U8 *offset_ptr = (U8 *)(lf+1); + CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); + U64 offset64 = cv_u64_from_numeric(&offset); + U8 *name_ptr = offset_ptr + offset.encoded_size; + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_DataField; + mem->name = name; + mem->type = p2r_type_ptr_from_itype(lf->itype); + mem->off = (U32)offset64; + }break; + + //- rjf: STMEMBER + case CV_LeafKind_STMEMBER: + { + // TODO(rjf): handle attribs + + // rjf: unpack leaf + CV_LeafStMember *lf = (CV_LeafStMember *)field_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_StaticData; + mem->name = name; + mem->type = p2r_type_ptr_from_itype(lf->itype); + }break; + + //- rjf: METHOD + case CV_LeafKind_METHOD: + { + // rjf: unpack leaf + CV_LeafMethod *lf = (CV_LeafMethod *)field_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + //- rjf: method list itype -> range + CV_RecRange *method_list_range = &tpi_leaf->leaf_ranges.ranges[lf->list_itype-tpi_leaf->itype_first]; + + //- rjf: skip bad method lists + if(method_list_range->off+method_list_range->hdr.size > tpi_leaf->data.size || + method_list_range->hdr.size < 2 || + method_list_range->hdr.kind != CV_LeafKind_METHODLIST) + { + break; + } + + //- rjf: loop through all methods & emit members + U8 *method_list_first = tpi_leaf->data.str + method_list_range->off + 2; + U8 *method_list_opl = method_list_first + method_list_range->hdr.size-2; + for(U8 *method_read_ptr = method_list_first, *next_method_read_ptr = method_list_opl; + method_read_ptr < method_list_opl; + method_read_ptr = next_method_read_ptr) + { + CV_LeafMethodListMember *method = (CV_LeafMethodListMember*)method_read_ptr; + CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(method->attribs); + RDIM_Type *method_type = p2r_type_ptr_from_itype(method->itype); + next_method_read_ptr = (U8 *)(method+1); + + // TODO(allen): PROBLEM + // We only get offsets for virtual functions (the "vbaseoff") from + // "Intro" and "PureIntro". In C++ inheritance, when we have a chain + // of inheritance (let's just talk single inheritance for now) the + // first class in the chain that introduces a new virtual function + // has this "Intro" method. If a later class in the chain redefines + // the virtual function it only has a "Virtual" method which does + // not update the offset. There is a "Virtual" and "PureVirtual" + // variant of "Virtual". The "Pure" in either case means there + // is no concrete procedure. When there is no "Pure" the method + // should have a corresponding procedure symbol id. + // + // The issue is we will want to mark all of our virtual methods as + // virtual and give them an offset, but that means we have to do + // some extra figuring to propogate offsets from "Intro" methods + // to "Virtual" methods in inheritance trees. That is - IF we want + // to start preserving the offsets of virtuals. There is room in + // the method struct to make this work, but for now I've just + // decided to drop this information. It is not urgently useful to + // us and greatly complicates matters. + + // rjf: read vbaseoff + U32 vbaseoff = 0; + if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) + { + if(next_method_read_ptr+4 <= method_list_opl) + { + vbaseoff = *(U32 *)next_method_read_ptr; + } + next_method_read_ptr += 4; + } + + // rjf: emit method + switch(prop) + { + default: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_Method; + mem->name = name; + mem->type = method_type; + }break; + case CV_MethodProp_Static: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_StaticMethod; + mem->name = name; + mem->type = method_type; + }break; + case CV_MethodProp_Virtual: + case CV_MethodProp_PureVirtual: + case CV_MethodProp_Intro: + case CV_MethodProp_PureIntro: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_VirtualMethod; + mem->name = name; + mem->type = method_type; + }break; + } + } + + }break; + + //- rjf: ONEMETHOD + case CV_LeafKind_ONEMETHOD: + { + // TODO(rjf): handle attribs + + // rjf: unpack leaf + CV_LeafOneMethod *lf = (CV_LeafOneMethod *)field_leaf_first; + CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(lf->attribs); + U8 *vbaseoff_ptr = (U8 *)(lf+1); + U8 *vbaseoff_opl_ptr = vbaseoff_ptr; + U32 vbaseoff = 0; + if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) + { + vbaseoff = *(U32 *)(vbaseoff_ptr); + vbaseoff_opl_ptr += sizeof(U32); + } + U8 *name_ptr = vbaseoff_opl_ptr; + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + RDIM_Type *method_type = p2r_type_ptr_from_itype(lf->itype); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit method + switch(prop) + { + default: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_Method; + mem->name = name; + mem->type = method_type; + }break; + case CV_MethodProp_Static: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_StaticMethod; + mem->name = name; + mem->type = method_type; + }break; + case CV_MethodProp_Virtual: + case CV_MethodProp_PureVirtual: + case CV_MethodProp_Intro: + case CV_MethodProp_PureIntro: + { + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_VirtualMethod; + mem->name = name; + mem->type = method_type; + }break; + } + }break; + + //- rjf: NESTTYPE + case CV_LeafKind_NESTTYPE: + { + // rjf: unpack leaf + CV_LeafNestType *lf = (CV_LeafNestType *)field_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_NestedType; + mem->name = name; + mem->type = p2r_type_ptr_from_itype(lf->itype); + }break; + + //- rjf: NESTTYPEEX + case CV_LeafKind_NESTTYPEEX: + { + // TODO(rjf): handle attribs + + // rjf: unpack leaf + CV_LeafNestTypeEx *lf = (CV_LeafNestTypeEx *)field_leaf_first; + U8 *name_ptr = (U8 *)(lf+1); + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_NestedType; + mem->name = name; + mem->type = p2r_type_ptr_from_itype(lf->itype); + }break; + + //- rjf: BCLASS + case CV_LeafKind_BCLASS: + { + // TODO(rjf): log on bad offset + + // rjf: unpack leaf + CV_LeafBClass *lf = (CV_LeafBClass *)field_leaf_first; + U8 *offset_ptr = (U8 *)(lf+1); + CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); + U64 offset64 = cv_u64_from_numeric(&offset); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = offset_ptr+offset.encoded_size; + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_Base; + mem->type = p2r_type_ptr_from_itype(lf->itype); + mem->off = (U32)offset64; + }break; + + //- rjf: VBCLASS/IVBCLASS + case CV_LeafKind_VBCLASS: + case CV_LeafKind_IVBCLASS: + { + // TODO(rjf): log on bad offsets + // TODO(rjf): handle attribs + // TODO(rjf): offsets? + + // rjf: unpack leaf + CV_LeafVBClass *lf = (CV_LeafVBClass *)field_leaf_first; + U8 *num1_ptr = (U8 *)(lf+1); + CV_NumericParsed num1 = cv_numeric_from_data_range(num1_ptr, field_leaf_opl); + U8 *num2_ptr = num1_ptr + num1.encoded_size; + CV_NumericParsed num2 = cv_numeric_from_data_range(num2_ptr, field_leaf_opl); + + // rjf: bump next read pointer past header + next_read_ptr = (U8 *)(lf+1); + + // rjf: emit member + RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); + mem->kind = RDI_MemberKind_VirtualBase; + mem->type = p2r_type_ptr_from_itype(lf->itype); + }break; + + //- rjf: VFUNCTAB + case CV_LeafKind_VFUNCTAB: + { + CV_LeafVFuncTab *lf = (CV_LeafVFuncTab *)field_leaf_first; + + // rjf: bump next read pointer past header + next_read_ptr = (U8 *)(lf+1); + + // NOTE(rjf): currently no-op this case + (void)lf; + }break; + } + + // rjf: align-up next field + next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); + } + } + } + + scratch_end(scratch); + }break; + + //////////////////////// + //- rjf: enums -> equip enumerates + // + case CV_LeafKind_ENUM: + { + CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; + if(lf->props & CV_TypeProp_FwdRef) + { + break; + } + U8 *name_ptr = (U8 *)(lf + 1); + udt_name = str8_cstring_capped(name_ptr, itype_leaf_opl); + field_itype = lf->field_itype; + }goto equip_enum_vals; + equip_enum_vals:; + { + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: grab UDT info + RDIM_UDT *dst_udt = dst_type->udt; + if(dst_udt == 0) + { + dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); + dst_udt->self_type = dst_type; + } + + //- rjf: gather all fields + typedef struct FieldListTask FieldListTask; + struct FieldListTask + { + FieldListTask *next; + CV_TypeId itype; + }; + FieldListTask start_fl_task = {0, field_itype}; + FieldListTask *fl_todo_stack = &start_fl_task; + FieldListTask *fl_done_stack = 0; + for(;fl_todo_stack != 0;) + { + //- rjf: take & unpack task + FieldListTask *fl_task = fl_todo_stack; + SLLStackPop(fl_todo_stack); + SLLStackPush(fl_done_stack, fl_task); + CV_TypeId field_list_itype = fl_task->itype; + + //- rjf: skip bad itypes + if(field_list_itype < tpi_leaf->itype_first || tpi_leaf->itype_opl <= field_list_itype) + { + continue; + } + + //- rjf: field list itype -> range + CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[field_list_itype-tpi_leaf->itype_first]; + + //- rjf: skip bad headers + if(range->off+range->hdr.size > tpi_leaf->data.size || + range->hdr.size < 2 || + range->hdr.kind != CV_LeafKind_FIELDLIST) + { + continue; + } + + //- rjf: loop over all fields + { + U8 *field_list_first = tpi_leaf->data.str+range->off+2; + U8 *field_list_opl = field_list_first+range->hdr.size-2; + for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; + read_ptr < field_list_opl; + read_ptr = next_read_ptr) + { + // rjf: unpack field + CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; + U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); + U8 *field_leaf_first = read_ptr+2; + U8 *field_leaf_opl = field_leaf_first+range->hdr.size-2; + next_read_ptr = field_leaf_opl; + + // rjf: skip out-of-bounds fields + if(field_leaf_first+field_leaf_header_size > field_list_opl) + { + continue; + } + + // rjf: process field + switch(field_kind) + { + //- rjf: unhandled/invalid cases + default: + { + // TODO(rjf): log + }break; + + //- rjf: INDEX + case CV_LeafKind_INDEX: + { + // rjf: unpack leaf + CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; + CV_TypeId new_itype = lf->itype; + + // rjf: determine if index itype is new + B32 is_new = 1; + for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) + { + if(t->itype == new_itype) + { + is_new = 0; + break; + } + } + + // rjf: if new -> push task to follow new itype + if(is_new) + { + FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); + SLLStackPush(fl_todo_stack, new_task); + new_task->itype = new_itype; + } + }break; + + //- rjf: ENUMERATE + case CV_LeafKind_ENUMERATE: + { + // TODO(rjf): attribs + + // rjf: unpack leaf + CV_LeafEnumerate *lf = (CV_LeafEnumerate *)field_leaf_first; + U8 *val_ptr = (U8 *)(lf+1); + CV_NumericParsed val = cv_numeric_from_data_range(val_ptr, field_leaf_opl); + U64 val64 = cv_u64_from_numeric(&val); + U8 *name_ptr = val_ptr + val.encoded_size; + String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); + + // rjf: bump next read pointer past variable length parts + next_read_ptr = name.str+name.size+1; + + // rjf: emit member + RDIM_UDTEnumVal *enum_val = rdim_udt_push_enum_val(arena, udts, dst_udt); + enum_val->name = name; + enum_val->val = val64; + }break; + } + + // rjf: align-up next field + next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); + } + } + } + + scratch_end(scratch); + }break; + } + + //- rjf: find container, given name's namespaces + if(dst_type != 0 && dst_type->udt != 0 && udt_name.size != 0) + { + // rjf: unpack fully qualified namespace from udt name + U64 container_name_opl = cv2r_end_of_cplusplus_container_name(udt_name); + String8 container_name = str8_chop(str8_prefix(udt_name, container_name_opl), 2); + String8 leaf_name = str8_skip(udt_name, container_name_opl); + + // rjf: look up namespace node associated with namespace + CV2R_NamespaceNode *ns_node = 0; + { + U64 hash = u64_hash_from_str8(container_name); + U64 slot_idx = hash%all_namespace_slots_count; + for(CV2R_NamespaceNode *n = all_namespace_slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->string, container_name, 0)) + { + ns_node = n; + break; + } + } + } + + // rjf: equip container info to udt, equip partial name to type + if(ns_node != 0) + { + RDIM_UDT *udt = dst_type->udt; + if(ns_node->scope != 0) + { + udt->container_scope = ns_node->scope; + } + else if(ns_node->ns != 0) + { + udt->container_namespace = ns_node->ns; + } + else if(ns_node->type != 0) + { + udt->container_type = ns_node->type; + } + dst_type->name = leaf_name; + } + } + } + } + + //- rjf: collect all lanes + if(lane_idx() == 0) + { + lanes_udts = push_array(scratch.arena, RDIM_UDTChunkList, lane_count()); + } + lane_sync_u64(&lanes_udts, 0); + lanes_udts[lane_idx()] = lane_udts; +#undef p2r_type_ptr_from_itype + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: join all UDTs + // + RDIM_UDTChunkList all_udts = {0}; + ProfScope("join all UDTs") if(lane_idx() == 0) + { + for EachIndex(idx, lane_count()) + { + rdim_udt_chunk_list_concat_in_place(&all_udts, &lanes_udts[idx]); + } + } + lane_sync(); + RDIM_UDTChunkList *all_udts_ptr = &all_udts; + lane_sync_u64(&all_udts_ptr, 0); + all_udts = *all_udts_ptr; + + ////////////////////////////////////////////////////////////// + //- rjf: bundle all outputs + // + RDIM_BakeParams result = {0}; + { + //- rjf: produce top-level-info + RDIM_TopLevelInfo top_level_info = {0}; + { + top_level_info.arch = arch; + top_level_info.exe_name = str8_skip_last_slash(params->exe_name); + top_level_info.exe_hash = exe_hash; + top_level_info.voff_max = exe_voff_max; + if(!params->deterministic) + { + MemoryCopy(&top_level_info.guid, ¶ms->guid, Min(sizeof top_level_info.guid, sizeof params->guid)); + top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL); + } + } + + //- rjf: build binary sections list + RDIM_BinarySectionList binary_sections = {0}; + if(params->subset_flags & RDIM_SubsetFlag_BinarySections) ProfScope("build binary section list") + { + for EachIndex(idx, sections_count) + { + CV2R_Section *src_sec = §ions[idx]; + RDIM_BinarySection *sec = rdim_binary_section_list_push(arena, &binary_sections); + sec->name = src_sec->name; + sec->flags = src_sec->flags; + sec->voff_first = src_sec->voff; + sec->voff_opl = src_sec->voff+src_sec->vsize; + sec->foff_first = src_sec->foff; + sec->foff_opl = src_sec->foff+src_sec->fsize; + } + } + + //- rjf: fill + result.subset_flags = params->subset_flags; + result.top_level_info = top_level_info; + result.binary_sections = binary_sections; + result.units = all_units; + result.namespaces = all_namespaces; + result.types = all_types; + result.udts = all_udts; + result.src_files = all_src_files; + result.line_tables = all_line_tables; + } + + lane_sync(); + scratch_end(scratch); + return result; +} diff --git a/src/rdi_from_codeview/rdi_from_codeview.h b/src/rdi_from_codeview/rdi_from_codeview.h new file mode 100644 index 00000000..85e49df6 --- /dev/null +++ b/src/rdi_from_codeview/rdi_from_codeview.h @@ -0,0 +1,220 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef RDI_FROM_CODEVIEW_H +#define RDI_FROM_CODEVIEW_H + +//////////////////////////////// +//~ rjf: Conversion Parameters + +typedef struct CV2R_CompUnit CV2R_CompUnit; +struct CV2R_CompUnit +{ + String8 obj_name; + String8 group_name; + RDIM_Rng1U64ChunkList ranges; + CV_SymParsed *sym; + CV_C13Parsed *c13; +}; + +typedef struct CV2R_Section CV2R_Section; +struct CV2R_Section +{ + String8 name; + RDI_BinarySectionFlags flags; + U64 voff; + U64 vsize; + U64 foff; + U64 fsize; +}; + +typedef struct CV2R_StringTable CV2R_StringTable; +struct CV2R_StringTable +{ + String8 data; + U32 bucket_count; + U32 strblock_min; + U32 strblock_max; + U32 buckets_min; + U32 buckets_max; +}; + +typedef struct CV2R_TPIHashBlock CV2R_TPIHashBlock; +struct CV2R_TPIHashBlock +{ + CV2R_TPIHashBlock *next; + U32 local_count; + CV_TypeId itypes[13]; // 13 = (64 - 12)/4 +}; + +typedef struct CV2R_TPIHash CV2R_TPIHash; +struct CV2R_TPIHash +{ + String8 data; + CV2R_TPIHashBlock **buckets; + U32 bucket_count; + U32 bucket_mask; +}; + +typedef struct CV2R_CompUnitContribution CV2R_CompUnitContribution; +struct CV2R_CompUnitContribution +{ + U32 mod; + U64 voff_first; + U64 voff_opl; +}; + +typedef struct CV2R_ConvertParams CV2R_ConvertParams; +struct CV2R_ConvertParams +{ + // rjf: info extracted from either linker / pdb + String8 exe_name; + String8 exe_data; + Guid guid; + U64 comp_units_count; + CV2R_CompUnit *comp_units; + U64 comp_unit_contributions_count; + CV2R_CompUnitContribution *comp_unit_contributions; + U64 sections_count; + CV2R_Section *sections; + CV2R_StringTable *strtbl; + CV_LeafParsed *tpi_leaf; + CV_LeafParsed *ipi_leaf; + CV2R_TPIHash *tpi_hash; + CV2R_TPIHash *ipi_hash; + + // rjf: generation params + RDIM_SubsetFlags subset_flags; + B32 deterministic; +}; + +//////////////////////////////// +//~ rjf: Conversion Helper Types + +//- rjf: link name map (voff -> string) + +typedef struct CV2R_LinkNameNode CV2R_LinkNameNode; +struct CV2R_LinkNameNode +{ + CV2R_LinkNameNode *next; + U64 voff; + String8 name; + U64 referencing_symbol_count; +}; + +typedef struct CV2R_LinkNameMap CV2R_LinkNameMap; +struct CV2R_LinkNameMap +{ + CV2R_LinkNameNode **buckets; + U64 buckets_count; + U64 bucket_collision_count; + U64 link_name_count; +}; + +//- rjf: deduplicated namespace map type + +typedef struct CV2R_NamespaceNode CV2R_NamespaceNode; +struct CV2R_NamespaceNode +{ + CV2R_NamespaceNode *next; + String8 string; + B32 corresponds_to_scope; + RDIM_Scope *scope; + RDIM_Type *type; + RDIM_Namespace *ns; +}; + +//- rjf: normalized file path -> source file map + +typedef struct CV2R_SrcFileStub CV2R_SrcFileStub; +struct CV2R_SrcFileStub +{ + String8 file_path; + CV_C13ChecksumKind checksum_kind; + String8 checksum; +}; + +typedef struct CV2R_SrcFileStubArray CV2R_SrcFileStubArray; +struct CV2R_SrcFileStubArray +{ + CV2R_SrcFileStub *v; + U64 count; +}; + +typedef struct CV2R_SrcFileStubNode CV2R_SrcFileStubNode; +struct CV2R_SrcFileStubNode +{ + CV2R_SrcFileStubNode *next; + CV2R_SrcFileStub v; +}; + +typedef struct CV2R_SrcFileNode CV2R_SrcFileNode; +struct CV2R_SrcFileNode +{ + CV2R_SrcFileNode *next; + RDIM_SrcFile *src_file; +}; + +typedef struct CV2R_SrcFileMap CV2R_SrcFileMap; +struct CV2R_SrcFileMap +{ + CV2R_SrcFileNode **slots; + U64 slots_count; +}; + +//- rjf: itype chains + +typedef struct CV2R_TypeIdChain CV2R_TypeIdChain; +struct CV2R_TypeIdChain +{ + CV2R_TypeIdChain *next; + CV_TypeId itype; +}; + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal U64 cv2r_end_of_cplusplus_container_name(String8 str); +internal U64 cv2r_hash_from_voff(U64 voff); +internal int cv2r_namespace_node_is_before(void *raw_a, void *raw_b); +internal U64 cv2r_voff_from_soff(CV2R_Section *sections, U64 sections_count, U64 sec_idx, U64 soff); + +//////////////////////////////// +//~ rjf: String Table Functions + +internal String8 cv2r_string_from_off(CV2R_StringTable *strtbl, U64 off); + +//////////////////////////////// +//~ rjf: Compilation Unit Contribution Functions + +internal CV2R_CompUnitContribution *cv2r_comp_unit_contribution_from_voff__binary_search(CV2R_CompUnitContribution *contributions, U64 contributions_count, U64 voff); + +//////////////////////////////// +//~ rjf: TPI Hash Table Functions + +internal U32 cv2r_tpi_hash_from_data(String8 string); +internal CV_TypeIdArray cv2r_itypes_from_name(Arena *arena, CV2R_TPIHash *tpi_hash, CV_LeafParsed *leaf, String8 name, B32 compare_unique_name, U32 output_cap); +internal CV_TypeId cv2r_first_itype_from_name(CV2R_TPIHash *tpi_hash, CV_LeafParsed *tpi_leaf, String8 name, B32 compare_unique_name); + +//////////////////////////////// +//~ rjf: CodeView => RDI Canonical Conversions + +internal RDI_Arch cv2r_rdi_arch_from_cv_arch(CV_Arch arch); +internal RDI_RegCode cv2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code); +internal RDI_Language cv2r_rdi_language_from_cv_language(CV_Language language); +internal RDI_TypeKind cv2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type); +internal RDI_ChecksumKind cv2r_rdi_from_cv_c13_checksum_kind(CV_C13ChecksumKind k); + +//////////////////////////////// +//~ rjf: Location Info Building Helpers + +internal RDI_RegCode cv2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg); +internal RDIM_Location cv2r_location_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection); +internal void cv2r_location_case_list_push_over_lvar_addr_range(Arena *arena, RDIM_LocationCaseList *loc_cases, RDIM_Location loc, Rng1U64 voff_range, CV_LvarAddrGap *gaps, U64 gap_count); + +//////////////////////////////// +//~ rjf: Top-Level Conversion Entry Point + +internal RDIM_BakeParams cv2r_convert(Arena *arena, CV2R_ConvertParams *params); + +#endif // RDI_FROM_CODEVIEW_H diff --git a/src/rdi_from_coff/rdi_from_coff.c b/src/rdi_from_coff/rdi_from_coff.c index d10d1b25..bf165afc 100644 --- a/src/rdi_from_coff/rdi_from_coff.c +++ b/src/rdi_from_coff/rdi_from_coff.c @@ -5,9 +5,9 @@ internal RDI_Arch c2r_rdi_arch_from_coff_machine(COFF_MachineType machine) { switch (machine) { - case COFF_MachineType_X86: return RDI_Arch_X86; case COFF_MachineType_X64: return RDI_Arch_X64; + case COFF_MachineType_X86: case COFF_MachineType_Unknown: case COFF_MachineType_Am33: case COFF_MachineType_Arm: @@ -58,14 +58,11 @@ c2r_rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags) internal RDIM_BinarySectionList c2r_rdi_binary_sections_from_coff_sections(Arena *arena, String8 image_data, String8 string_table, U64 sectab_count, COFF_SectionHeader *sectab) { - ProfBeginFunction(); - RDIM_BinarySectionList binary_sections = {0}; - - for (U64 isec = 0; isec < sectab_count; ++isec) { - COFF_SectionHeader *coff_sec = §ab[isec]; - RDIM_BinarySection *sec = rdim_binary_section_list_push(arena, &binary_sections); - + for EachIndex(idx, sectab_count) + { + COFF_SectionHeader *coff_sec = §ab[idx]; + RDIM_BinarySection *sec = rdim_binary_section_list_push(arena, &binary_sections); sec->name = coff_name_from_section_header(string_table, coff_sec); sec->flags = c2r_rdi_binary_section_flags_from_coff_section_flags(coff_sec->flags); sec->voff_first = coff_sec->voff; @@ -73,7 +70,5 @@ c2r_rdi_binary_sections_from_coff_sections(Arena *arena, String8 image_data, Str sec->foff_first = coff_sec->foff; sec->foff_opl = coff_sec->foff + coff_sec->fsize; } - - ProfEnd(); return binary_sections; } diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index f8a067f0..c8f88b84 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -1,2869 +1,4502 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -// TODO: -// -// [ ] Currently converter relies on clang's -gdwarf-aranges to generate compile unit ranges, -// however it is optional and in case it is missing converter has to generate the ranges from scopes. -// [ ] Error handling - //////////////////////////////// +//~ rjf: Helpers -static const U64 UNIT_CHUNK_CAP = 256; -static const U64 UDT_CHUNK_CAP = 256; -static const U64 TYPE_CHUNK_CAP = 256; -static const U64 SRC_FILE_CAP = 256; -static const U64 LINE_TABLE_CAP = 256; -static const U64 LOCATIONS_CAP = 256; -static const U64 GVAR_CHUNK_CAP = 256; -static const U64 TVAR_CHUNK_CAP = 256; -static const U64 PROC_CHUNK_CAP = 256; -static const U64 SCOPE_CHUNK_CAP = 256; -static const U64 INLINE_SITE_CHUNK_CAP = 256; - -RDIM_TopLevelInfo top_level_info = {0}; -RDIM_BinarySectionList binary_sections = {0}; -RDIM_UnitChunkList units = {0}; -RDIM_UDTChunkList udts = {0}; -RDIM_TypeChunkList types = {0}; -RDIM_SrcFileChunkList src_files = {0}; -RDIM_LineTableChunkList line_tables = {0}; -RDIM_LocationChunkList locations = {0}; -RDIM_SymbolChunkList gvars = {0}; -RDIM_SymbolChunkList tvars = {0}; -RDIM_SymbolChunkList procs = {0}; -RDIM_ScopeChunkList scopes = {0}; -RDIM_InlineSiteChunkList inline_sites = {0}; - -//////////////////////////////// -//~ rjf: Enum Conversion Helpers - -internal RDI_Language -d2r_rdi_language_from_dw_language(DW_Language v) +internal int +d2r_unique_tag_node_is_less_than(D2R_UniqueTagNode **l, D2R_UniqueTagNode **r) { - RDI_Language result = RDI_Language_NULL; - switch(v) - { - default:{}break; - - case DW_Language_C89: - case DW_Language_C99: - case DW_Language_C11: - case DW_Language_C: - { - result = RDI_Language_C; - }break; - - case DW_Language_CPlusPlus03: - case DW_Language_CPlusPlus11: - case DW_Language_CPlusPlus14: - case DW_Language_CPlusPlus: - { - result = RDI_Language_CPlusPlus; - }break; - } - return result; -} - -internal RDI_RegCodeX86 -d2r_rdi_reg_code_from_dw_reg_x86(DW_RegX86 v) -{ - RDI_RegCodeX86 result = RDI_RegCode_nil; - switch(v) - { - default:{}break; -#define X(reg_dw, val_dw, reg_rdi, ...) case DW_RegX86_##reg_dw: result = RDI_RegCodeX86_##reg_rdi; break; - DW_Regs_X86_XList(X) -#undef X - } - return result; -} - -internal RDI_RegCodeX64 -d2r_rdi_reg_code_from_dw_reg_x64(DW_RegX64 v) -{ - RDI_RegCodeX64 result = RDI_RegCode_nil; - switch(v) - { - default:{}break; -#define X(reg_dw, val_dw, reg_rdi, off, size) case DW_RegX64_##reg_dw:{result = RDI_RegCodeX64_##reg_rdi;}break; - DW_Regs_X64_XList(X) -#undef X - } - return result; -} - -internal RDI_RegCode -d2r_rdi_reg_code_from_dw_reg(Arch arch, DW_Reg v) -{ - RDI_RegCode result = RDI_RegCode_nil; - switch(arch) - { - default: - case Arch_Null: - case Arch_x86:{result = d2r_rdi_reg_code_from_dw_reg_x86(v);}break; - case Arch_x64:{result = d2r_rdi_reg_code_from_dw_reg_x64(v);}break; - } - return result; + int is_less_than = (l[0]->hash < r[0]->hash); + return is_less_than; } //////////////////////////////// -//~ rjf: Type Conversion Helpers - -internal RDIM_Type * -d2r_create_type(Arena *arena, D2R_TypeTable *type_table) -{ - RDIM_Type *type = rdim_type_chunk_list_push(arena, type_table->types, type_table->type_chunk_cap); - return type; -} - -internal RDIM_Type * -d2r_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off) -{ - RDIM_Type *type = d2r_create_type(arena, type_table); - Assert(hash_table_search_u64_raw(type_table->ht, info_off) == 0); - hash_table_push_u64_raw(arena, type_table->ht, info_off, type); - return type; -} - -internal RDIM_Type * -d2r_type_from_offset(D2R_TypeTable *type_table, U64 info_off) -{ - RDIM_Type *type = hash_table_search_u64_raw(type_table->ht, info_off); - if (type == 0) { - type = type_table->builtin_types[RDI_TypeKind_NULL]; - } - return type; -} - -internal RDIM_Type * -d2r_type_from_attrib(D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind) -{ - RDIM_Type *type = type_table->builtin_types[RDI_TypeKind_Void]; - - // find attrib - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - - // does tag have this attribute? - if (attrib->attrib_kind == kind) { - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - - if (value_class == DW_AttribClass_Reference) { - // resolve reference - DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); - - // TODO: support for external compile unit references - AssertAlways(ref.cu == cu); - - // find type - type = d2r_type_from_offset(type_table, ref.info_off); - } else { - Assert(!"unexpected attrib class"); - } - } - - return type; -} - -internal Rng1U64List -d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag) -{ - // collect non-contiguous range - Rng1U64List raw_ranges = dw_rnglist_from_tag_attrib_kind(arena, input, cu, tag, DW_AttribKind_Ranges); - - // exclude invalid ranges caused by linker optimizations - Rng1U64List ranges = {0}; - for (Rng1U64Node *n = raw_ranges.first, *next = 0; n != 0; n = next) { - next = n->next; - if (n->v.min < image_base || n->v.min > n->v.max) { - continue; - } - rng1u64_list_push_node(&ranges, n); - } - - // debase ranges - for EachNode(r, Rng1U64Node, ranges.first) { - r->v.min -= image_base; - r->v.max -= image_base; - } - - // collect contiguous range - { - DW_Attrib *lo_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_LowPc); - DW_Attrib *hi_pc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_HighPc); - if (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) { - U64 lo_pc = dw_address_from_attrib(input, cu, lo_pc_attrib); - - U64 hi_pc = 0; - DW_AttribClass hi_pc_class = dw_value_class_from_attrib(cu, hi_pc_attrib); - if (hi_pc_class == DW_AttribClass_Address) { - hi_pc = dw_address_from_attrib(input, cu, hi_pc_attrib); - } else if (hi_pc_class == DW_AttribClass_Const) { - hi_pc = dw_const_u64_from_attrib(input, cu, hi_pc_attrib); - hi_pc += lo_pc; - } else { - AssertAlways(!"unexpected attribute encoding"); - } - - if (lo_pc >= image_base && hi_pc >= image_base) { - if (lo_pc < hi_pc) { - rng1u64_list_push(arena, &ranges, rng_1u64(lo_pc - image_base, hi_pc - image_base)); - } else { - // TODO: error handling - } - } else { - // invalid low and hi PC are likely are caused by an optimization pass during linking - } - } else if ((lo_pc_attrib->attrib_kind == DW_AttribKind_Null && hi_pc_attrib->attrib_kind != DW_AttribKind_Null) || - (lo_pc_attrib->attrib_kind != DW_AttribKind_Null && hi_pc_attrib->attrib_kind == DW_AttribKind_Null)) { - // TODO: error handling - } - } - - return ranges; -} - -internal RDIM_Type ** -d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out) -{ - Temp scratch = scratch_begin(&arena, 1); - - RDIM_TypeList list = {0}; - B32 has_vargs = 0; - for (DW_TagNode *i = cur_node->first_child; i != 0; i = i->sibling) { - if (i->tag.kind == DW_TagKind_FormalParameter) { - RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = d2r_type_from_attrib(type_table, input, cu, i->tag, DW_AttribKind_Type); - SLLQueuePush(list.first, list.last, n); - ++list.count; - } else if (i->tag.kind == DW_TagKind_UnspecifiedParameters) { - has_vargs = 1; - } - } - - if (has_vargs) { - RDIM_TypeNode *n = push_array(scratch.arena, RDIM_TypeNode, 1); - n->v = type_table->builtin_types[RDI_TypeKind_Variadic]; - SLLQueuePush(list.first, list.last, n); - ++list.count; - } - - // collect params - *param_count_out = list.count; - RDIM_Type **params = rdim_array_from_type_list(arena, list); - - scratch_end(scratch); - return params; -} - -//////////////////////////////// - -internal B32 -rdim_is_eval_bytecode_static(RDIM_EvalBytecode bc) -{ - B32 is_static = 1; - RDI_EvalOp dynamic_ops[] = { RDI_EvalOp_MemRead, RDI_EvalOp_RegRead, RDI_EvalOp_RegReadDyn, RDI_EvalOp_CFA }; - for EachNode(n, RDIM_EvalBytecodeOp, bc.first_op) { - for EachIndex(i, ArrayCount(dynamic_ops)) { - if (dynamic_ops[i] == n->op) { - is_static = 0; - goto exit; - } - } - } - exit:; - return is_static; -} - -internal U64 -rdim_virt_off_from_eval_bytecode(RDIM_EvalBytecode bc, U64 image_base) -{ - Temp scratch = scratch_begin(0,0); - - typedef union { U16 u16; U32 u32; U64 u64; S64 s64; F32 f32; F64 f64; } Value; - U64 stack_cap = 128, stack_count = 0; - Value *stack = push_array(scratch.arena, Value, stack_cap); - - for EachNode(opcode_n, RDIM_EvalBytecodeOp, bc.first_op) { - // pop values from stack - Value *svals = 0; - { - U32 pop_count = RDI_POPN_FROM_CTRLBITS(rdi_eval_op_ctrlbits_table[opcode_n->op]); - if (pop_count > stack_count) { - // TODO: report error - Assert(!"malformed byte code"); - break; - } - stack_count -= pop_count; - svals = stack + stack_count; - } - - Value imm = { .u64 = opcode_n->p }; - Value nval = {0}; - switch (opcode_n->op) { - case RDI_EvalOp_Stop: { opcode_n = bc.last_op; } break; - case RDI_EvalOp_Noop: {} break; - case RDI_EvalOp_Cond: { NotImplemented; } break; - case RDI_EvalOp_Skip: { - NotImplemented; - } break; - case RDI_EvalOp_MemRead: { InvalidPath; } break; - case RDI_EvalOp_RegRead: { NotImplemented; } break; - case RDI_EvalOp_RegReadDyn: { NotImplemented; } break; - case RDI_EvalOp_FrameOff: { NotImplemented; } break; - case RDI_EvalOp_ModuleOff: { - nval.u64 = image_base + imm.u64; - } break; - case RDI_EvalOp_TLSOff: { - nval.u64 = image_base; - } break; - case RDI_EvalOp_ConstU8: - case RDI_EvalOp_ConstU16: - case RDI_EvalOp_ConstU32: - case RDI_EvalOp_ConstU64: - case RDI_EvalOp_ConstU128: { - nval = imm; - } break; - case RDI_EvalOp_ConstString: { NotImplemented; } break; - case RDI_EvalOp_Abs: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: - case RDI_EvalTypeGroup_S: { nval.s64 = abs_s64(svals[0].s64); } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = abs_f32(svals[0].f32); } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = abs_f64(svals[0].f64); } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Neg: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: - case RDI_EvalTypeGroup_S: { nval.u64 = ~svals[0].u64 + 1; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = -svals[0].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = -svals[0].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Add: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 + svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 + svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 + svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 + svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Sub: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 - svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[1].s64 - svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 - svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 - svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Mul: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 * svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 * svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 * svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 * svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Div: { - B32 is_div_by_zero = 0; - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { is_div_by_zero = svals[1].u64 == 0; } break; - case RDI_EvalTypeGroup_S: { is_div_by_zero = svals[1].s64 == 0; } break; - case RDI_EvalTypeGroup_F32: { is_div_by_zero = svals[1].f32 == 0.0f; } break; - case RDI_EvalTypeGroup_F64: { is_div_by_zero = svals[1].f64 == 0.0; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - - // TODO: report error - AssertAlways(!is_div_by_zero); - - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 / svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 / svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 / svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 / svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Mod: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 % svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 % svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 MOD is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 MOD is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_LShift: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 << svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 << svals[1].u64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 LShift is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 LShift is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_RShift: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 >> svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[1].s64 >> svals[1].u64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 RShift is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 RShift is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_BitAnd: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 | svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 | svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 bitwise AND is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 bitwise AND is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_BitXor: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 ^ svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 ^ svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 XOR is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 XOR is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_BitNot: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = ~svals[0].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = ~svals[0].u64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 bitwise NOT is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 bitwise NOT is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_LogAnd: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 && svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 && svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 AND is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 AND is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_LogOr: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 || svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].u64 || svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 OR is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 OR is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_LogNot: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = !svals[0].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = !svals[0].u64; } break; - case RDI_EvalTypeGroup_F32: { AssertAlways(!"F32 NOT is not supported"); } break; // TODO: report error - case RDI_EvalTypeGroup_F64: { AssertAlways(!"F64 NOT is not supported"); } break; // TODO: report error - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_EqEq: { - nval.u64 = !!MemoryMatch(&svals[0], &svals[1], sizeof(*svals)); - } break; - case RDI_EvalOp_NtEq: { - nval.u64 = !MemoryMatch(&svals[0], &svals[1], sizeof(*svals)); - } break; - case RDI_EvalOp_LsEq: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 <= svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 <= svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 <= svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 <= svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_GrEq: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 >= svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 >= svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 >= svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 >= svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Less: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 < svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 < svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 < svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 < svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Grtr: { - switch (imm.u64) { - case RDI_EvalTypeGroup_Other: {} break; - case RDI_EvalTypeGroup_U: { nval.u64 = svals[0].u64 > svals[1].u64; } break; - case RDI_EvalTypeGroup_S: { nval.s64 = svals[0].s64 > svals[1].s64; } break; - case RDI_EvalTypeGroup_F32: { nval.f32 = svals[0].f32 > svals[1].f32; } break; - case RDI_EvalTypeGroup_F64: { nval.f64 = svals[0].f64 > svals[1].f64; } break; - default: { AssertAlways(!"unexpected eval type group"); } break; // report error - } - } break; - case RDI_EvalOp_Trunc: { - if (0 < imm.u64 && imm.u64 < 64) { - U64 mask = max_U64 >> (64 - imm.u64); - nval.u64 = svals[0].u64 & (max_U64 >> (64 - imm.u64)); - } else if (imm.u64 > 64) { - // TODO: report error - AssertAlways(!"malformed bytecode"); - } - } break; - case RDI_EvalOp_TruncSigned: { - if (0 < imm.u64 && imm.u64 < 64) { - U64 mask = max_U64 >> (64 - imm.u64); - nval.u64 = svals[0].u64 & (max_U64 >> (64 - imm.u64)); - U64 high = 0; - if (svals[0].u64 & (1 << (imm.u64 - 1))) { - high = ~mask; - } - nval.u64 = high | (svals[0].u64 & mask); - } else if (imm.u64 > 64) { - // TODO: report error - AssertAlways(!"malformed bytecode"); - } - } break; - case RDI_EvalOp_Convert: { - U32 in = imm.u64 & 0xff; - U32 out = (imm.u64 >> 8) & 0xff; - if (in != out) { - switch (in + out*RDI_EvalTypeGroup_COUNT) { - case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_U*RDI_EvalTypeGroup_COUNT: { nval.u64 = (U64)svals[0].f32; } break; - case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_U*RDI_EvalTypeGroup_COUNT: { nval.u64 = (U64)svals[0].f64; } break; - case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_S*RDI_EvalTypeGroup_COUNT: { nval.s64 = (S64)svals[0].f32; } break; - case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_S*RDI_EvalTypeGroup_COUNT: { nval.s64 = (S64)svals[0].f64; } break; - case RDI_EvalTypeGroup_U + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].u64; } break; - case RDI_EvalTypeGroup_S + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].s64; } break; - case RDI_EvalTypeGroup_F64 + RDI_EvalTypeGroup_F32*RDI_EvalTypeGroup_COUNT: { nval.f32 = (F32)svals[0].f64; } break; - case RDI_EvalTypeGroup_U + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].u64; } break; - case RDI_EvalTypeGroup_S + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].s64; } break; - case RDI_EvalTypeGroup_F32 + RDI_EvalTypeGroup_F64*RDI_EvalTypeGroup_COUNT: { nval.f64 = (F64)svals[0].f32; } break; - default: { Assert(!"unexpected conversion case"); } break; // report error - } - } - } break; - case RDI_EvalOp_Pick: { - if (stack_count > imm.u64) { - nval = stack[stack_count - imm.u64 - 1]; - } else { - // TODO: report error - AssertAlways(!"malformed bytecode"); - } - } break; - case RDI_EvalOp_Pop: {} break; - case RDI_EvalOp_Insert: { - if (stack_count > imm.u64) { - Value tval = stack[stack_count-1]; - Value *dst = stack + stack_count - 1 - imm.u64; - Value *shift = dst + 1; - MemoryCopy(shift, dst, imm.u64 * sizeof(Value)); - *dst = tval; - } else { - // TODO: report error - AssertAlways(!"malformed bytecode"); - } - } break; - case RDI_EvalOp_ValueRead: { - U64 bytes_to_read = imm.u64; - U64 offset = svals[0].u64; - if (offset + bytes_to_read <= sizeof(Value)) { - Value src_val = svals[1]; - MemoryCopy(&nval, (U8 *)&src_val + offset, bytes_to_read); - } - } break; - case RDI_EvalOp_ByteSwap: { - switch (imm.u64) { - case 0: {} break; - case 1: {} break; - case 2: { nval.u16 = bswap_u16(svals[0].u16); } break; - case 4: { nval.u32 = bswap_u16(svals[0].u32); } break; - case 8: { nval.u64 = bswap_u16(svals[0].u64); } break; - default: { AssertAlways(!"malformed bytecode"); } break; // TODO: report error - } - } break; - case RDI_EvalOp_Swap: { - NotImplemented; - } break; - default: { Assert(!"unknown op type"); } break; - } - - // push computed value to the stack - { - U64 push_count = RDI_PUSHN_FROM_CTRLBITS(rdi_eval_op_ctrlbits_table[opcode_n->op]); - if (push_count == 1) { - if (stack_count < stack_cap) { - stack[stack_count] = nval; - stack_count += 1; - } else { - AssertAlways(!"stack overflow"); // TODO: report error - } - } - } - } - - U64 result = 0; - if (stack_count >= 1) { - result = stack[0].u64 - image_base; - } - - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Bytecode Conversion Helpers - -internal D2R_ValueTypeNode * -d2r_value_type_stack_push(Arena *arena, D2R_ValueTypeStack *stack, D2R_ValueType type) -{ - D2R_ValueTypeNode *n; - if (stack->free_list) { - n = stack->free_list; - SLLStackPop(stack->free_list); - } else { - n = push_array(arena, D2R_ValueTypeNode, 1); - } - n->type = type; - SLLStackPush(stack->top, n); - stack->count += 1; - return n; -} - -internal D2R_ValueType -d2r_value_type_stack_pop(D2R_ValueTypeStack *stack) -{ - D2R_ValueType result = D2R_ValueType_Generic; - if (stack->top) { - D2R_ValueTypeNode *n = stack->top; - result = n->type; - SLLStackPop(stack->top); - SLLStackPush(stack->free_list, n); - stack->count -= 1; - } - return result; -} - -internal D2R_ValueType -d2r_value_type_stack_peek(D2R_ValueTypeStack *stack) -{ - return stack->top ? stack->top->type : D2R_ValueType_Generic; -} - -internal D2R_ValueType -d2r_unsigned_value_type_from_bit_size(U64 bit_size) -{ - switch (bit_size) { - case 8: return D2R_ValueType_U8; - case 16: return D2R_ValueType_U16; - case 32: return D2R_ValueType_U32; - case 64: return D2R_ValueType_U64; - case 128: return D2R_ValueType_U128; - case 256: return D2R_ValueType_U256; - case 512: return D2R_ValueType_U512; - } - AssertAlways(!"no suitable unsigned type was found for the specified size"); - return D2R_ValueType_Generic; -} - -internal D2R_ValueType -d2r_signed_value_type_from_bit_size(U64 bit_size) -{ - switch (bit_size) { - case 8: return D2R_ValueType_S8; - case 16: return D2R_ValueType_S16; - case 32: return D2R_ValueType_S32; - case 64: return D2R_ValueType_S64; - case 128: return D2R_ValueType_S128; - case 256: return D2R_ValueType_S256; - case 512: return D2R_ValueType_S512; - } - AssertAlways(!"no suitable signed type was found for the specified size"); - return D2R_ValueType_Generic; -} - -internal D2R_ValueType -d2r_float_type_from_bit_size(U64 bit_size) -{ - switch (bit_size) { - case 4: return D2R_ValueType_F32; - case 8: return D2R_ValueType_F64; - } - AssertAlways(!"no suitable type was found for the specified size"); - return D2R_ValueType_Generic; -} - -internal RDI_EvalTypeGroup -d2r_value_type_to_rdi(D2R_ValueType v) -{ - RDI_EvalTypeGroup result = RDI_EvalTypeGroup_Other; - switch(v) - { - case D2R_ValueType_Generic: - {result = RDI_EvalTypeGroup_Other;}break; - case D2R_ValueType_U8: - case D2R_ValueType_U16: - case D2R_ValueType_U32: - case D2R_ValueType_U64: - {result = RDI_EvalTypeGroup_U;}break; - case D2R_ValueType_S8: - case D2R_ValueType_S16: - case D2R_ValueType_S32: - case D2R_ValueType_S64: - {result = RDI_EvalTypeGroup_S;}break; - case D2R_ValueType_F32: - {result = RDI_EvalTypeGroup_F32;}break; - case D2R_ValueType_F64: - {result = RDI_EvalTypeGroup_F64;}break; - case D2R_ValueType_Address: - {result = RDI_EvalTypeGroup_U;}break; - default: - case D2R_ValueType_ImplicitValue: - {AssertAlways(!"unable to convert value type to RDI equivalent");}break; - } - return result; -} - -internal U64 -d2r_size_from_value_type(U64 addr_size, D2R_ValueType value_type) -{ - switch (value_type) { - case D2R_ValueType_Address: return addr_size; - case D2R_ValueType_U8: return 1; - case D2R_ValueType_U16: return 2; - case D2R_ValueType_U32: return 4; - case D2R_ValueType_U64: return 8; - case D2R_ValueType_U128: return 16; - case D2R_ValueType_U256: return 32; - case D2R_ValueType_U512: return 64; - case D2R_ValueType_S8: return 1; - case D2R_ValueType_S16: return 2; - case D2R_ValueType_S32: return 4; - case D2R_ValueType_S64: return 8; - case D2R_ValueType_S128: return 16; - case D2R_ValueType_S256: return 32; - case D2R_ValueType_S512: return 64; - case D2R_ValueType_F32: return 4; - case D2R_ValueType_F64: return 8; - default: return 0; - } -} - -internal D2R_ValueType -d2r_pick_common_value_type(D2R_ValueType lhs, D2R_ValueType rhs) -{ - if (lhs == rhs) { - return lhs; - } - // unsigned vs unsigned - else if (D2R_ValueType_IsUnsigned(lhs) && D2R_ValueType_IsUnsigned(rhs)) { - return Max(lhs, rhs); - } - // signed vs signed - else if (D2R_ValueType_IsSigned(lhs) && D2R_ValueType_IsSigned(rhs)) { - return Max(lhs, rhs); - } - // (unsigned vs signed) || (signed vs unsigned) - else if ((D2R_ValueType_IsUnsigned(lhs) && D2R_ValueType_IsSigned(rhs)) || - (D2R_ValueType_IsSigned(lhs) && D2R_ValueType_IsUnsigned(rhs))) { - U64 lhs_size = d2r_size_from_value_type(0, lhs); - U64 rhs_size = d2r_size_from_value_type(0, rhs); - if (lhs_size < rhs_size) { - return rhs; - } else if (lhs > rhs_size) { - return lhs; - } else { - return d2r_unsigned_value_type_from_bit_size(lhs_size * 8); - } - } - // float vs int - else if (D2R_ValueType_IsFloat(lhs) && D2R_ValueType_IsInt(rhs)) { - return lhs; - } - // int vs float - else if (D2R_ValueType_IsInt(lhs) && D2R_ValueType_IsFloat(rhs)) { - return rhs; - } - // float vs float - else if (D2R_ValueType_IsFloat(lhs) && D2R_ValueType_IsFloat(rhs)) { - return Max(lhs, rhs); - } - // address vs int - else if (lhs == D2R_ValueType_Address && D2R_ValueType_IsInt(rhs)) { - return D2R_ValueType_Address; - } - // int vs address - else if (D2R_ValueType_IsInt(lhs) && rhs == D2R_ValueType_Address) { - return D2R_ValueType_Address; - } - // address vs float - else if (lhs == D2R_ValueType_Address && D2R_ValueType_IsFloat(rhs)) { - return D2R_ValueType_Generic; - } - // float vs address - else if (D2R_ValueType_IsFloat(lhs) && rhs == D2R_ValueType_Address) { - return D2R_ValueType_Generic; - } - // no conversion for implicit value - else if (lhs == D2R_ValueType_ImplicitValue || rhs == D2R_ValueType_ImplicitValue) { - return D2R_ValueType_Generic; - } - AssertAlways(!"undefined conversion case"); - return D2R_ValueType_Generic; -} - -internal D2R_ValueType -d2r_apply_usual_arithmetic_conversions(Arena *arena, D2R_ValueType lhs, D2R_ValueType rhs, RDIM_EvalBytecode *bc) -{ - D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); - if (rhs != common_type) { - rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(rhs), d2r_value_type_to_rdi(common_type)); - } - if (lhs != common_type) { - rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); - rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(lhs), d2r_value_type_to_rdi(common_type)); - } - return common_type; -} - -internal void -d2r_push_arithmetic_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op) -{ - D2R_ValueType rhs = d2r_value_type_stack_pop(stack); - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - D2R_ValueType common_type = d2r_apply_usual_arithmetic_conversions(arena, lhs, rhs, bc); - rdim_bytecode_push_op(arena, bc, op, d2r_value_type_to_rdi(common_type)); - d2r_value_type_stack_push(0, stack, common_type); -} - -internal void -d2r_push_relational_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op) -{ - D2R_ValueType rhs = d2r_value_type_stack_pop(stack); - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - D2R_ValueType common_type; - if (D2R_ValueType_IsInt(lhs) && rhs == D2R_ValueType_Address) { - rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); - rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(lhs), RDI_EvalTypeGroup_U); - rdim_bytecode_push_op(arena, bc, RDI_EvalOp_Swap, 0); - common_type = D2R_ValueType_Address; - } else if (lhs == D2R_ValueType_Address && D2R_ValueType_IsInt(rhs)) { - rdim_bytecode_push_convert(arena, bc, d2r_value_type_to_rdi(rhs), RDI_EvalTypeGroup_U); - common_type = D2R_ValueType_Address; - } else { - common_type = d2r_apply_usual_arithmetic_conversions(arena, lhs, rhs, bc); - } - rdim_bytecode_push_op(arena, bc, RDI_EvalOp_EqEq, d2r_value_type_to_rdi(common_type)); - d2r_value_type_stack_push(0, stack, D2R_ValueType_Bool); -} - -internal RDIM_EvalBytecode -d2r_bytecode_from_expression(Arena *arena, - DW_Input *input, - U64 image_base, - U64 address_size, - Arch arch, - DW_ListUnit *addr_lu, - String8 raw_expr, - DW_CompUnit *cu, - D2R_ValueType *result_type_out) -{ - Temp scratch = scratch_begin(&arena, 1); - Temp arena_restore_point = temp_begin(arena); - - RDIM_EvalBytecode bc = {0}; - - DW_Expr expr = dw_expr_from_data(scratch.arena, cu->format, address_size, raw_expr); - D2R_ValueTypeStack *stack = push_array(scratch.arena, D2R_ValueTypeStack, 1); - RDIM_EvalBytecodeOp **converted_insts = push_array(scratch.arena, RDIM_EvalBytecodeOp *, expr.count); - B32 is_ok = 1; - U64 inst_idx = 0; - for EachNode(inst, DW_ExprInst, expr.first) { - RDIM_EvalBytecodeOp *last_op = bc.last_op; - - U64 pop_count = dw_pop_count_from_expr_op(inst->opcode); - if (pop_count > stack->count) { - // TODO: report error - Assert(!"not enough values on the stack to evaluate instruction"); - is_ok = 0; - break; - } - - switch (inst->opcode) { - case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: - case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: - case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: - case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: - case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: - case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: - case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: - case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: - case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: - case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: - case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: { - U64 lit = inst->opcode - DW_ExprOp_Lit0; - rdim_bytecode_push_uconst(arena, &bc, lit); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U8); - } break; - case DW_ExprOp_Const1U: { - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u8); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U8); - } break; - case DW_ExprOp_Const2U: { - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u16); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U16); - } break; - case DW_ExprOp_Const4U: { - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u32); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U32); - } break; - case DW_ExprOp_Const8U: { - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u32); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U64); - } break; - case DW_ExprOp_Const1S: { - rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s8); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S8); - } break; - case DW_ExprOp_Const2S: { - rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s16); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S16); - } break; - case DW_ExprOp_Const4S: { - rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s32); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S32); - } break; - case DW_ExprOp_Const8S: { - rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s64); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S64); - } break; - case DW_ExprOp_ConstU: { - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u64); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_U64); - } break; - case DW_ExprOp_ConstS: { - rdim_bytecode_push_sconst(arena, &bc, inst->operands[0].s64); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_S64); - } break; - case DW_ExprOp_Addr: { - if (inst->operands[0].u64 >= image_base) { - U64 voff = inst->operands[0].u64 - image_base; - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } else { - is_ok = 0; - } - } break; - case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: - case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: - case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: - case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: - case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: - case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: - case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: - case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: - case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: - case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: - case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: { - U64 reg_code_dw = inst->opcode - DW_ExprOp_Reg0; - U64 reg_size = dw_reg_size_from_code(arch, reg_code_dw); - U64 reg_pos = dw_reg_pos_from_code(arch, reg_code_dw); - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); - U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); - d2r_value_type_stack_push(scratch.arena, stack, d2r_unsigned_value_type_from_bit_size(reg_size)); - } break; - case DW_ExprOp_RegX: { - U64 reg_size = dw_reg_size_from_code(arch, inst->operands[0].u64); - U64 reg_pos = dw_reg_pos_from_code(arch, inst->operands[0].u64); - RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, inst->operands[0].u64); - U32 regread_param = RDI_EncodeRegReadParam(reg_code_rdi, reg_size, reg_pos); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, regread_param); - d2r_value_type_stack_push(scratch.arena, stack, d2r_unsigned_value_type_from_bit_size(reg_size)); - } break; - case DW_ExprOp_ImplicitValue: { - if (inst->operands[0].block.size <= sizeof(U64)) { - U64 implicit_value; - MemoryCopyStr8(&implicit_value, inst->operands[0].block); - rdim_bytecode_push_uconst(arena, &bc, implicit_value); - d2r_value_type_stack_push(scratch.arena, stack, d2r_unsigned_value_type_from_bit_size(inst->operands[0].block.size * 8)); - } else { - // TODO: currenlty no way to encode string in RDIM_EvalBytecodeOp - NotImplemented; - } - } break; - case DW_ExprOp_Piece: { - U64 partial_value_size32 = safe_cast_u32(inst->operands[0].u64); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValue, partial_value_size32); - } break; - case DW_ExprOp_BitPiece: { - U32 piece_bit_size32 = safe_cast_u32(inst->operands[0].u64); - U32 piece_bit_off32 = safe_cast_u32(inst->operands[1].u64); - U64 partial_value = Compose64Bit(piece_bit_size32, piece_bit_off32); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_PartialValueBit, partial_value); - } break; - case DW_ExprOp_Pick: { - U64 idx = 0; - D2R_ValueTypeNode *n; - for (n = stack->top; n != 0 || idx == inst->operands[0].u64; n = n->next, idx += 1) { } - if (idx == inst->operands[0].u64) { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, inst->operands[0].u64); - d2r_value_type_stack_push(scratch.arena, stack, n->type); - } else { - // TODO: report error - AssertAlways(!"out of bounds pick"); - } - } break; - case DW_ExprOp_Over: { - if (stack->top && stack->top->next) { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, 1); - d2r_value_type_stack_push(scratch.arena, stack, stack->top->next->type); - } else { - // TODO: report error - AssertAlways(!"out of bounds over"); - } - } break; - case DW_ExprOp_PlusUConst: { - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - D2R_ValueType common_type = d2r_pick_common_value_type(lhs, D2R_ValueType_U64); - rdim_bytecode_push_uconst(arena, &bc, inst->operands[0].u64); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, d2r_value_type_to_rdi(common_type)); - d2r_value_type_stack_push(scratch.arena, stack, common_type); - } break; - case DW_ExprOp_Skip: { - B32 skip_fwd = inst->operands[0].s16 >= 0; - U16 delta = abs_s64(inst->operands[0].s16); - U16 cursor = 0; - U64 inst_count = 0; - for (DW_ExprInst *i = skip_fwd ? inst : inst->prev; i != 0 && cursor < delta; i = skip_fwd ? inst->next : inst->prev) { - cursor += inst->size; - inst_count += 1; - } - - // TODO: report error (skip does not land on first byte of an instruction) - AssertAlways(cursor == delta); - // TODO: report overflow - AssertAlways(inst_count <= min_S16); - AssertAlways(inst_idx <= max_U32); - - U64 imm = Compose64Bit(inst_idx, skip_fwd ? (S16)inst_count : -(S16)inst_count); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Skip, imm); - } break; - case DW_ExprOp_Bra: { - NotImplemented; - } break; - case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: - case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: - case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: - case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: - case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: - case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: - case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: - case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: - case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: - case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: - case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: { - U64 reg_code_dw = inst->opcode - DW_ExprOp_BReg0; - S64 reg_off = inst->operands[0].s64; - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegRead, reg_code_rdi); - if (reg_off > 0) { - rdim_bytecode_push_sconst(arena, &bc, reg_off); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); - } - - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } break; - case DW_ExprOp_BRegX: { - U64 reg_code_dw = inst->operands[0].u64; - S64 reg_off = inst->operands[1].s64; - - RDI_RegCode reg_code_rdi = d2r_rdi_reg_code_from_dw_reg(arch, reg_code_dw); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RegReadDyn, reg_code_rdi); - if (reg_off > 0) { - rdim_bytecode_push_sconst(arena, &bc, reg_off); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); - } - - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } break; - case DW_ExprOp_FBReg: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_FrameOff, inst->operands[0].s64); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } break; - case DW_ExprOp_Deref: { - D2R_ValueType address_type = d2r_value_type_stack_pop(stack); - if (address_type != D2R_ValueType_Address && !D2R_ValueType_IsInt(address_type)) { - // TODO: report error - Assert(!"value must be of integral type"); - break; - } - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, address_size); - d2r_value_type_stack_push(scratch.arena, stack, address_type); - } break; - case DW_ExprOp_DerefSize: { - D2R_ValueType address_type = d2r_value_type_stack_pop(stack); - if (!D2R_ValueType_IsInt(address_type) && address_type != D2R_ValueType_Address ) { - // TODO: report error - Assert(!"value must be of integral type"); - break; - } - U8 deref_size_in_bytes = inst->operands[0].u64; - if (0 < deref_size_in_bytes && deref_size_in_bytes <= address_size) { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_MemRead, deref_size_in_bytes); - } else { - // TODO: error handling - AssertAlways(!"ill formed expression"); - } - d2r_value_type_stack_push(scratch.arena, stack, address_type); - } break; - case DW_ExprOp_XDeref: { - // TODO: error handling - AssertAlways(!"multiple address spaces are not supported"); - } break; - // TODO: error handling - case DW_ExprOp_XDerefSize: { AssertAlways(!"no suitable conversion"); } break; - case DW_ExprOp_Call2: - case DW_ExprOp_Call4: - case DW_ExprOp_CallRef: { - // TODO: error handling - AssertAlways(!"calls are not supported"); - } break; - case DW_ExprOp_ImplicitPointer: - case DW_ExprOp_GNU_ImplicitPointer: { - // TODO: - AssertAlways(!"sample"); - } break; - case DW_ExprOp_Convert: - case DW_ExprOp_GNU_Convert: { - D2R_ValueType out = D2R_ValueType_Generic; - if (inst->operands[0].u64 == 0) { - // - // 2.5.1 - // Instead of a base type, elements can have a generic type, - // which is an integral type that has the size of an address - // on the target machine and unspecified signedness. - // - out = D2R_ValueType_Generic; - } else { - // find ref tag - DW_TagNode *tag_node = dw_tag_node_from_info_off(cu, inst->operands[0].u64); - DW_Tag tag = tag_node->tag; - if (tag.kind == DW_TagKind_BaseType) { - // extract encoding attribute - DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); - - // DW_ATE -> RDI_EvalTypeGroup - switch (encoding) { - case DW_ATE_Null: { - out = D2R_ValueType_Generic; - } break; - case DW_ATE_Address: { - out = D2R_ValueType_Address; - } break; - case DW_ATE_Boolean: { - out = D2R_ValueType_S8; - } break; - case DW_ATE_SignedChar: - case DW_ATE_Signed: { - U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); - out = d2r_signed_value_type_from_bit_size(byte_size * 8); - } break; - case DW_ATE_UnsignedChar: - case DW_ATE_Unsigned: { - U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); - out = d2r_unsigned_value_type_from_bit_size(byte_size * 8); - } break; - case DW_ATE_Float: { - U64 byte_size = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ByteSize); - out = d2r_float_type_from_bit_size(byte_size * 8); - } break; - default: InvalidPath; break; - } - } else { - AssertAlways(!"unexpected tag"); // TODO: error handling - } - } - - D2R_ValueType in = d2r_value_type_stack_pop(stack); - d2r_value_type_stack_push(scratch.arena, stack, out); - rdim_bytecode_push_convert(arena, &bc, d2r_value_type_to_rdi(in), d2r_value_type_to_rdi(out)); - } break; - // TODO: - case DW_ExprOp_GNU_ParameterRef: { AssertAlways(!"sample"); } break; - // TODO: - case DW_ExprOp_DerefType: - case DW_ExprOp_GNU_DerefType: { AssertAlways(!"sample"); } break; - // TODO: - case DW_ExprOp_ConstType: - case DW_ExprOp_GNU_ConstType: { AssertAlways(!"sample"); } break; - // TODO: - case DW_ExprOp_RegvalType: { AssertAlways(!"sample"); } break; - case DW_ExprOp_EntryValue: - case DW_ExprOp_GNU_EntryValue: { - D2R_ValueType call_site_result_type = 0; - RDIM_EvalBytecode call_site_bc = d2r_bytecode_from_expression(arena, input, image_base, address_size, arch, addr_lu, inst->operands[0].block, cu, &call_site_result_type); - - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_CallSiteValue, safe_cast_u32(call_site_bc.encoded_size)); - rdim_bytecode_concat_in_place(&bc, &call_site_bc); - - d2r_value_type_stack_push(scratch.arena, stack, call_site_result_type); - } break; - case DW_ExprOp_Addrx: { - U64 addr = dw_addr_from_list_unit(addr_lu, inst->operands[0].u64); - if (addr != max_U64) { - if (addr >= image_base) { - U64 voff = addr - image_base; - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_ModuleOff, voff); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } else { - // TODO: error handling - AssertAlways(!"unable to relocate address"); - } - } else { - // TODO: error handling - AssertAlways(!"out of bounds index"); - } - } break; - case DW_ExprOp_CallFrameCfa: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_FrameOff, 0); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } break; - case DW_ExprOp_FormTlsAddress: { - // TODO: - AssertAlways(!"RDI_EvalOp_TLSOff accepts immediate"); - } break; - case DW_ExprOp_PushObjectAddress: { - AssertAlways(!"sample"); - } break; - case DW_ExprOp_Nop: {} break; - case DW_ExprOp_Eq: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_EqEq); } break; - case DW_ExprOp_Ge: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_GrEq); } break; - case DW_ExprOp_Gt: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_Grtr); } break; - case DW_ExprOp_Le: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_LsEq); } break; - case DW_ExprOp_Lt: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_Less); } break; - case DW_ExprOp_Ne: { d2r_push_relational_op(arena, stack, &bc, RDI_EvalOp_NtEq); } break; - case DW_ExprOp_Div: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Div); } break; - case DW_ExprOp_Minus: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Sub); } break; - case DW_ExprOp_Mul: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Mul); } break; - case DW_ExprOp_Plus: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_Add); } break; - case DW_ExprOp_Xor: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitXor); } break; - case DW_ExprOp_And: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitAnd); } break; - case DW_ExprOp_Or: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_BitOr); } break; - case DW_ExprOp_Shl: { d2r_push_arithmetic_op(arena, stack, &bc, RDI_EvalOp_LShift); } break; - case DW_ExprOp_Shr: { - D2R_ValueType rhs = d2r_value_type_stack_pop(stack); - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - if (D2R_ValueType_IsInt(rhs) && D2R_ValueType_IsInt(lhs)) { - D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); - D2R_ValueType result_type = d2r_unsigned_value_type_from_bit_size(d2r_size_from_value_type((address_size), common_type) * 8); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, d2r_value_type_to_rdi(result_type)); - d2r_value_type_stack_push(scratch.arena, stack, result_type); - } else { - // TODO: report error - AssertAlways(!"operands must be of integral type"); - } - } break; - case DW_ExprOp_Shra: { - D2R_ValueType rhs = d2r_value_type_stack_pop(stack); - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - if (D2R_ValueType_IsInt(lhs) && D2R_ValueType_IsInt(rhs)) { - D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); - D2R_ValueType result_type = d2r_signed_value_type_from_bit_size(d2r_size_from_value_type((address_size), common_type) * 8); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_RShift, d2r_value_type_to_rdi(result_type)); - d2r_value_type_stack_push(scratch.arena, stack, result_type); - } else { - // TODO: report error - AssertAlways(!"operands must be of integral type"); - } - } break; - case DW_ExprOp_Mod: { - D2R_ValueType rhs = d2r_value_type_stack_pop(stack); - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - if (!D2R_ValueType_IsInt(rhs) || !D2R_ValueType_IsInt(lhs)) { - // TODO: report error - AssertAlways(!"operands must be of integral type"); - is_ok = 0; - break; - } - D2R_ValueType common_type = d2r_pick_common_value_type(lhs, rhs); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Mod, d2r_value_type_to_rdi(common_type)); - d2r_value_type_stack_push(scratch.arena, stack, common_type); - } break; - case DW_ExprOp_Abs: { - if (!D2R_ValueType_IsInt(d2r_value_type_stack_peek(stack)) && !D2R_ValueType_IsFloat(d2r_value_type_stack_peek(stack))) { - // TODO: report error - AssertAlways(!"operand must be of integral type or float"); - is_ok = 0; - break; - } - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Abs, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); - } break; - case DW_ExprOp_Neg: { - if (!D2R_ValueType_IsInt(d2r_value_type_stack_peek(stack))) { - // TODO: report error - AssertAlways(!"operand must be of integral type"); - is_ok = 0; - break; - } - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Neg, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); - } break; - case DW_ExprOp_Not: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_BitNot, d2r_value_type_to_rdi(d2r_value_type_stack_peek(stack))); - } break; - case DW_ExprOp_Dup: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Pick, 0); - d2r_value_type_stack_push(scratch.arena, stack, d2r_value_type_stack_peek(stack)); - } break; - case DW_ExprOp_Rot: { AssertAlways(!"no suitable conversion"); } break; - case DW_ExprOp_Swap: { AssertAlways(!"no suitable conversion"); } break; - case DW_ExprOp_Drop: { AssertAlways(!"no suitable conversion"); } break; - case DW_ExprOp_StackValue: { - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Stop, 0); - if (stack->top->type == D2R_ValueType_Address) { - stack->top->type = d2r_unsigned_value_type_from_bit_size(address_size * 8); - } - } break; - case DW_ExprOp_GNU_PushTlsAddress: { - D2R_ValueType lhs = d2r_value_type_stack_pop(stack); - if (!D2R_ValueType_IsInt(lhs)) { - // TODO: report error - AssertAlways(!"lhs must be of integral type"); - } - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_TLSOff, 0); - rdim_bytecode_push_op(arena, &bc, RDI_EvalOp_Add, d2r_value_type_to_rdi(lhs)); - d2r_value_type_stack_push(scratch.arena, stack, D2R_ValueType_Address); - } break; - - default: InvalidPath; break; - } - if (!is_ok) { break; } - - // store converted instruction - if (last_op != bc.last_op) { - RDIM_EvalBytecodeOp *first_converted_op = last_op ? last_op->next : bc.first_op; - converted_insts[inst_idx] = first_converted_op; - } - - inst_idx += 1; - } - - if (is_ok) { - // fixup bytecode - for EachNode(op, RDIM_EvalBytecodeOp, bc.first_op) { - if (op->op == RDI_EvalOp_Skip) { - // unpack skip info - U32 inst_idx = Extract32(op->p, 0); - S16 skip_count_signed = (S16)Extract32(op->p, 1); - U16 skip_count = abs_s64(skip_count_signed); - B32 skip_fwd = skip_count_signed > 0; - - // setup being/end links - RDIM_EvalBytecodeOp *begin = 0, *end = 0; - if (skip_fwd) { - if (inst_idx + skip_count <= expr.count) { - begin = converted_insts[inst_idx]; - end = (inst_idx + skip_count) < expr.count ? converted_insts[inst_idx + skip_count] : 0; - } else { - // TODO: report error - AssertAlways(!"out of bounds skip"); - } - } else { - if (skip_count <= inst_idx) { - begin = converted_insts[inst_idx - skip_count]; - end = converted_insts[inst_idx]; - } else { - // TODO: report error - AssertAlways(!"out of bounds skip"); - } - } - - // compute skip delta - U64 skip_delta = 0; - for (RDIM_EvalBytecodeOp *n = begin; n != end; n = n->next) { - skip_delta += n->p_size; - } - - // rewrite skip operand with byte delta - AssertAlways(skip_delta <= max_S16); - op->p = skip_fwd ? (S16)skip_delta : -(S16)skip_delta; - } - } - - if (result_type_out) { - *result_type_out = d2r_value_type_stack_peek(stack); - } - } else { - MemoryZeroStruct(&bc); - temp_end(arena_restore_point); - } - - scratch_end(scratch); - return bc; -} - -internal RDIM_Location * -d2r_transpile_expression(Arena *arena, RDIM_LocationChunkList *locations, DW_Input *input, U64 image_base, U64 address_size, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr) -{ - RDIM_Location *loc = 0; - if (expr.size) { - D2R_ValueType result_type = 0; - RDIM_EvalBytecode bytecode = d2r_bytecode_from_expression(arena, input, image_base, address_size, arch, addr_lu, expr, cu, &result_type); - - RDIM_LocationInfo *loc_info = push_array(arena, RDIM_LocationInfo, 1); - loc_info->kind = result_type == D2R_ValueType_Address ? RDI_LocationKind_AddrBytecodeStream : RDI_LocationKind_ValBytecodeStream; - loc_info->bytecode = bytecode; - - loc = rdim_location_chunk_list_push_new(arena, locations, LOCATIONS_CAP, loc_info); - } - return loc; -} - -internal RDIM_Location * -d2r_location_from_attrib(Arena *arena, RDIM_LocationChunkList *locations, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind) -{ - String8 expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, kind); - RDIM_Location *location = d2r_transpile_expression(arena, locations, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); - return location; -} - -internal RDIM_LocationCaseList -d2r_locset_from_attrib(Arena *arena, - RDIM_ScopeChunkList *scopes, - RDIM_Scope *curr_scope, - RDIM_LocationChunkList *locations, - DW_Input *input, - DW_CompUnit *cu, - U64 image_base, - Arch arch, - DW_Tag tag, - DW_AttribKind kind) -{ - RDIM_LocationCaseList locset = {0}; - - // extract attrib from tag - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - DW_AttribClass attrib_class = dw_value_class_from_attrib(cu, attrib); - - if (attrib_class == DW_AttribClass_LocList || attrib_class == DW_AttribClass_LocListPtr) { - Temp scratch = scratch_begin(&arena, 1); - - // extract location list from attrib - DW_LocList loclist = dw_loclist_from_attrib(scratch.arena, input, cu, attrib); - - // convert location list to RDIM location set - for EachNode(loc_n, DW_LocNode, loclist.first) { - RDIM_Location *location = d2r_transpile_expression(arena, locations, input, image_base, cu->address_size, arch, cu->addr_lu, cu, loc_n->v.expr); - RDIM_Rng1U64 voff_range = { .min = loc_n->v.range.min - image_base, .max = loc_n->v.range.max - image_base }; - rdim_push_location_case(arena, scopes, &locset, location, voff_range); - } - - scratch_end(scratch); - } else if (attrib_class == DW_AttribClass_ExprLoc) { - // extract expression from attrib - String8 expr = dw_exprloc_from_attrib(input, cu, attrib); - - // convert expression and inherit life-time ranges from enclosed scope - RDIM_Location *location = d2r_transpile_expression(arena, locations, input, image_base, cu->address_size, arch, cu->addr_lu, cu, expr); - for EachNode(range_n, RDIM_Rng1U64Node, curr_scope->voff_ranges.first) { - rdim_push_location_case(arena, scopes, &locset, location, range_n->v); - } - } else if (attrib_class != DW_AttribClass_Null) { - AssertAlways(!"unexpected attrib class"); - } - - return locset; -} - -internal RDIM_LocationCaseList -d2r_var_locset_from_tag(Arena *arena, - RDIM_ScopeChunkList *scopes, - RDIM_Scope *curr_scope, - RDIM_LocationChunkList *locations, - DW_Input *input, - DW_CompUnit *cu, - U64 image_base, - Arch arch, - DW_Tag tag) -{ - RDIM_LocationCaseList locset = {0}; - - B32 has_const_value = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ConstValue); - B32 has_location = dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Location); - - if (has_const_value && has_location) { - // TODO: error handling - AssertAlways(!"unexpected variable encoding"); - } - - if (has_const_value) { - // extract const value - U64 const_value = dw_u64_from_attrib(input, cu, tag, DW_AttribKind_ConstValue); - - // make value byte code - RDIM_EvalBytecode bc = {0}; - rdim_bytecode_push_uconst(arena, &bc, const_value); - - // fill out location - RDIM_LocationInfo *loc_info = push_array(arena, RDIM_LocationInfo, 1); - loc_info->kind = RDI_LocationKind_ValBytecodeStream; - loc_info->bytecode = bc; - RDIM_Location *loc = rdim_location_chunk_list_push_new(arena, locations, LOCATIONS_CAP, loc_info); - - // push location cases - for EachNode(range_n, RDIM_Rng1U64Node, curr_scope->voff_ranges.first) { - rdim_push_location_case(arena, scopes, &locset, loc, range_n->v); - } - } else if (has_location) { - locset = d2r_locset_from_attrib(arena, scopes, curr_scope, locations, input, cu, image_base, arch, tag, DW_AttribKind_Location); - } - - return locset; -} - -internal D2R_CompUnitContribMap -d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Input *input, U64 image_base) -{ - Temp scratch = scratch_begin(&arena, 1); - - String8 aranges_data = input->sec[DW_Section_ARanges].data; - Rng1U64List unit_range_list = dw_unit_ranges_from_data(scratch.arena, aranges_data); - - D2R_CompUnitContribMap cm = {0}; - cm.count = 0; - cm.info_off_arr = push_array(arena, U64, unit_range_list.count); - cm.voff_range_arr = push_array(arena, RDIM_Rng1U64ChunkList, unit_range_list.count); - - for EachNode(range_n, Rng1U64Node, unit_range_list.first) { - String8 unit_data = str8_substr(aranges_data, range_n->v); - U64 unit_cursor = 0; - - U64 unit_length = 0; - U64 unit_length_size = str8_deserial_read_dwarf_packed_size(unit_data, unit_cursor, &unit_length); - if (unit_length_size == 0) { continue; } - unit_cursor += unit_length_size; - - DW_Version version = 0; - U64 version_size = str8_deserial_read_struct(unit_data, unit_cursor, &version); - if (version_size == 0) { continue; } - unit_cursor += version; - - if (version != DW_Version_2) { - AssertAlways(!"unknown .debug_aranges version"); - continue; - } - - DW_Format unit_format = DW_FormatFromSize(unit_length); - U64 cu_info_off = 0; - U64 cu_info_off_size = str8_deserial_read_dwarf_uint(unit_data, unit_cursor, unit_format, &cu_info_off); - if (cu_info_off_size == 0) { continue; } - unit_cursor += cu_info_off_size; - - U8 address_size = 0; - U64 address_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &address_size); - if (address_size_size == 0) { continue; } - unit_cursor += address_size_size; - - U8 segment_selector_size = 0; - U64 segment_selector_size_size = str8_deserial_read_struct(unit_data, unit_cursor, &segment_selector_size); - if (segment_selector_size_size == 0) { continue; } - unit_cursor += segment_selector_size_size; - - U64 tuple_size = address_size * 2 + segment_selector_size; - U64 bytes_too_far_past_boundary = unit_cursor % tuple_size; - if (bytes_too_far_past_boundary > 0) { - unit_cursor += tuple_size - bytes_too_far_past_boundary; - } - - RDIM_Rng1U64ChunkList voff_ranges = {0}; - if (segment_selector_size == 0) { - while (unit_cursor + address_size * 2 <= unit_data.size) { - U64 address = 0; - U64 length = 0; - unit_cursor += str8_deserial_read(unit_data, unit_cursor, &address, address_size, address_size); - unit_cursor += str8_deserial_read(unit_data, unit_cursor, &length, address_size, address_size); - - if (address == 0 && length == 0) { break; } - if (address == 0) { continue; } - - // TODO: error handling - AssertAlways(address >= image_base); - - U64 min = address - image_base; - U64 max = min + length; - rdim_rng1u64_chunk_list_push(arena, &voff_ranges, 256, (RDIM_Rng1U64){.min = min, .max = max}); - } - } else { - // TODO: segment relative addressing - NotImplemented; - } - - U64 map_idx = cm.count++; - cm.info_off_arr[map_idx] = cu_info_off; - cm.voff_range_arr[map_idx] = voff_ranges; - } - - scratch_end(scratch); - return cm; -} - -//////////////////////////////// -//~ rjf: Compilation Unit / Scope Conversion Helpers - -internal RDIM_Rng1U64ChunkList -d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off) -{ - RDIM_Rng1U64ChunkList voff_ranges = {0}; - U64 voff_list_idx = u64_array_bsearch(map.info_off_arr, map.count, info_off); - if (voff_list_idx < map.count) { - voff_ranges = map.voff_range_arr[voff_list_idx]; - } - return voff_ranges; -} - -internal RDIM_Scope * -d2r_push_scope(Arena *arena, RDIM_ScopeChunkList *scopes, U64 scope_chunk_cap, D2R_TagFrame *tag_stack, Rng1U64List ranges) -{ - // fill out scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, scopes, scope_chunk_cap); - - // push ranges - for EachNode(i, Rng1U64Node, ranges.first) { - rdim_scope_push_voff_range(arena, scopes, scope, (RDIM_Rng1U64){.min = i->v.min, i->v.max}); - } - - // associate scope with tag - tag_stack->scope = scope; - - // update scope hierarchy - DW_TagKind parent_tag_kind = tag_stack->next->node->tag.kind; - if (parent_tag_kind == DW_TagKind_SubProgram || parent_tag_kind == DW_TagKind_InlinedSubroutine || parent_tag_kind == DW_TagKind_LexicalBlock) { - RDIM_Scope *parent = tag_stack->next->scope; - - scope->parent_scope = parent; - scope->symbol = parent->symbol; - - if (parent->last_child) { - parent->last_child->next_sibling = scope; - } - SLLQueuePush_N(parent->first_child, parent->last_child, scope, next_sibling); - } - - return scope; -} - -//////////////////////////////// -//~ rjf: Main Conversion Entry Point - -internal D2R_TagIterator * -d2r_tag_iterator_init(Arena *arena, DW_TagNode *root) -{ - D2R_TagIterator *iter = push_array(arena, D2R_TagIterator, 1); - iter->free_list = 0; - iter->stack = push_array(arena, D2R_TagFrame, 1); - iter->stack->node = push_array(arena, DW_TagNode, 1); - if(root != 0) - { - *iter->stack->node = *root; - } - iter->stack->node->sibling = 0; - iter->visit_children = 1; - iter->tag_node = root; - return iter; -} - -internal void -d2r_tag_iterator_next(Arena *arena, D2R_TagIterator *iter) -{ - // descend to first child - if (iter->visit_children) { - if (iter->stack->node->first_child) { - D2R_TagFrame *f = iter->free_list; - if (f) { SLLStackPop(iter->free_list); MemoryZeroStruct(f); } - else { f = push_array(arena, D2R_TagFrame, 1); } - f->node = iter->stack->node->first_child; - SLLStackPush(iter->stack, f); - goto exit; - } - } - - while (iter->stack) { - // go to sibling - iter->stack->node = iter->stack->node->sibling; - if (iter->stack->node) { break; } - - // no more siblings, go up - D2R_TagFrame *f = iter->stack; - SLLStackPop(iter->stack); - SLLStackPush(iter->free_list, f); - } - - exit:; - // update iterator - iter->visit_children = 1; - iter->tag_node = iter->stack ? iter->stack->node : 0; -} - -internal void -d2r_tag_iterator_skip_children(D2R_TagIterator *iter) -{ - iter->visit_children = 0; -} - -internal DW_TagNode * -d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter) -{ - return iter->stack->next->node; -} - -internal DW_Tag -d2r_tag_iterator_parent_tag(D2R_TagIterator *iter) -{ - DW_TagNode *tag_node = d2r_tag_iterator_parent_tag_node(iter); - return tag_node->tag; -} - -internal void -d2r_flag_converted_tag(DW_TagNode *tag_node) -{ - tag_node->tag.v[0] = 1; -} - -internal B8 -d2r_is_tag_converted(DW_TagNode *tag_node) -{ - return tag_node->tag.v[0]; -} - -internal RDIM_Type * -d2r_find_or_convert_type(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Language cu_lang, U64 arch_addr_size, DW_Tag tag, DW_AttribKind kind) -{ - RDIM_Type *type = type_table->builtin_types[RDI_TypeKind_Void]; - - // find attrib - DW_Attrib *attrib = dw_attrib_from_tag(input, cu, tag, kind); - - // does tag have this attribute? - if (attrib->attrib_kind == kind) { - DW_AttribClass value_class = dw_value_class_from_attrib(cu, attrib); - - if (value_class == DW_AttribClass_Reference) { - // resolve reference - DW_Reference ref = dw_ref_from_attrib(input, cu, attrib); - - // TODO: support for external compile unit references - AssertAlways(ref.cu == cu); - - // find type - type = d2r_type_from_offset(type_table, ref.info_off); - - // was type converted? - if (type == 0) { - // issue type conversion - DW_TagNode *ref_node = dw_tag_node_from_info_off(cu, ref.info_off); - d2r_convert_types(arena, type_table, input, cu, cu_lang, arch_addr_size, ref_node); - - // if we do not have a converted type at this point then debug info is malformed - type = d2r_type_from_offset(type_table, ref.info_off); - if(type == 0) - { - type = type_table->builtin_types[RDI_TypeKind_NULL]; - } - } - } else { - Assert(!"unexpected attrib class"); - } - } - - return type; -} - -internal void -d2r_convert_types(Arena *arena, - D2R_TypeTable *type_table, - DW_Input *input, - DW_CompUnit *cu, - DW_Language cu_lang, - U64 arch_addr_size, - DW_TagNode *root) -{ - Temp scratch = scratch_begin(&arena, 1); - for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { - DW_TagNode *tag_node = it->tag_node; - DW_Tag tag = tag_node->tag; - - // skip converted tags - if (d2r_is_tag_converted(tag_node)) { - d2r_tag_iterator_skip_children(it); - continue; - } - // mark the tag as converted here, because during conversion we may recurse on the same tag - d2r_flag_converted_tag(tag_node); - - switch (tag.kind) { - case DW_TagKind_ClassType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_IncompleteClass; - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - Assert(!tag_node->first_child); - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_Class; - type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); - type->direct_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - } - } break; - case DW_TagKind_StructureType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_IncompleteStruct; - - // TODO: error handling - Assert(!tag_node->first_child); - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_Struct; - type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); - } - } break; - case DW_TagKind_UnionType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_IncompleteUnion; - - // TODO: error handling - Assert(!tag_node->first_child); - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_Union; - type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); - } - } break; - case DW_TagKind_EnumerationType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_IncompleteEnum; - // TODO: error handling - Assert(!tag_node->first_child); - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *enum_base_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->kind = RDI_TypeKind_Enum; - type->byte_size = dw_byte_size_32_from_tag(input, cu, tag); - type->direct_type = enum_base_type; - } - } break; - case DW_TagKind_SubroutineType: { - RDIM_Type *ret_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - - // collect parameters - RDIM_TypeList param_list = {0}; - for (DW_TagNode *n = tag_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind == DW_TagKind_FormalParameter) { - RDIM_Type *param_type = d2r_type_from_attrib(type_table, input, cu, n->tag, DW_AttribKind_Type); - rdim_type_list_push(scratch.arena, ¶m_list, param_type); - } else if (n->tag.kind == DW_TagKind_UnspecifiedParameters) { - rdim_type_list_push(scratch.arena, ¶m_list, type_table->builtin_types[RDI_TypeKind_Variadic]); - } else { - // TODO: error handling - AssertAlways(!"unexpected tag"); - } - } - - // init proceudre type - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Function; - type->byte_size = arch_addr_size; - type->direct_type = ret_type; - type->count = param_list.count; - type->param_types = rdim_array_from_type_list(arena, param_list); - - d2r_tag_iterator_skip_children(it); - } break; - case DW_TagKind_Typedef: { - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->direct_type = direct_type; - for (RDIM_Type *n = direct_type; n != 0; n = n->direct_type) { - if (n->byte_size) { - type->byte_size = n->byte_size; - break; - } - } - } break; - case DW_TagKind_BaseType: { - DW_ATE encoding = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Encoding); - U64 byte_size = dw_byte_size_from_tag(input, cu, tag); - - // convert base type encoding to RDI version - RDI_TypeKind kind = RDI_TypeKind_NULL; - switch (encoding) { - case DW_ATE_Null: kind = RDI_TypeKind_NULL; break; - case DW_ATE_Address: kind = RDI_TypeKind_Void; break; - case DW_ATE_Boolean: kind = RDI_TypeKind_Bool; break; - case DW_ATE_ComplexFloat: { - switch (byte_size) { - case 4: kind = RDI_TypeKind_ComplexF32; break; - case 8: kind = RDI_TypeKind_ComplexF64; break; - case 10: kind = RDI_TypeKind_ComplexF80; break; - case 16: kind = RDI_TypeKind_ComplexF128; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Float: { - switch (byte_size) { - case 2: kind = RDI_TypeKind_F16; break; - case 4: kind = RDI_TypeKind_F32; break; - case 6: kind = RDI_TypeKind_F48; break; - case 8: kind = RDI_TypeKind_F64; break; - case 16: kind = RDI_TypeKind_F128; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Signed: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_S8; break; - case 2: kind = RDI_TypeKind_S16; break; - case 4: kind = RDI_TypeKind_S32; break; - case 8: kind = RDI_TypeKind_S64; break; - case 16: kind = RDI_TypeKind_S128; break; - case 32: kind = RDI_TypeKind_S256; break; - case 64: kind = RDI_TypeKind_S512; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_SignedChar: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_Char8; break; - case 2: kind = RDI_TypeKind_Char16; break; - case 4: kind = RDI_TypeKind_Char32; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_Unsigned: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_U8; break; - case 2: kind = RDI_TypeKind_U16; break; - case 4: kind = RDI_TypeKind_U32; break; - case 8: kind = RDI_TypeKind_U64; break; - case 16: kind = RDI_TypeKind_U128; break; - case 32: kind = RDI_TypeKind_U256; break; - case 64: kind = RDI_TypeKind_U512; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_UnsignedChar: { - switch (byte_size) { - case 1: kind = RDI_TypeKind_UChar8; break; - case 2: kind = RDI_TypeKind_UChar16; break; - case 4: kind = RDI_TypeKind_UChar32; break; - default: AssertAlways(!"unexpected size"); break; // TODO: error handling - } - } break; - case DW_ATE_ImaginaryFloat: { - NotImplemented; - } break; - case DW_ATE_PackedDecimal: { - NotImplemented; - } break; - case DW_ATE_NumericString: { - NotImplemented; - } break; - case DW_ATE_Edited: { - NotImplemented; - } break; - case DW_ATE_SignedFixed: { - NotImplemented; - } break; - case DW_ATE_UnsignedFixed: { - NotImplemented; - } break; - case DW_ATE_DecimalFloat: { - NotImplemented; - } break; - case DW_ATE_Utf: { - NotImplemented; - } break; - case DW_ATE_Ucs: { - NotImplemented; - } break; - case DW_ATE_Ascii: { - NotImplemented; - } break; - default: AssertAlways(!"unexpected base type encoding"); break; // TODO: error handling - } - - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Alias; - type->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - type->direct_type = type_table->builtin_types[kind]; - type->byte_size = byte_size; - } break; - case DW_TagKind_PointerType: { - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - - // TODO: - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Allocated)); - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Associated)); - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)); - // TODO(rjf): this is not an invalid case; it shows up in `mule_main` pointer types - // Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)); - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_AddressClass)); - - U64 byte_size = arch_addr_size; - if (cu->version == DW_Version_5 || cu->relaxed) { - dw_try_byte_size_from_tag(input, cu, tag, &byte_size); - } - - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Ptr; - type->byte_size = byte_size; - type->direct_type = direct_type; - } break; - case DW_TagKind_RestrictType: { - // TODO: - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)); - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)); - - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Restrict; - type->direct_type = direct_type; - } break; - case DW_TagKind_VolatileType: { - // TODO: - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)); - - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Volatile; - type->direct_type = direct_type; - } break; - case DW_TagKind_ConstType: { - // TODO: - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Name)); - Assert(!dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Alignment)); - - RDIM_Type *direct_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *type = d2r_create_type_from_offset(arena, type_table, tag.info_off); - type->kind = RDI_TypeKind_Modifier; - type->byte_size = arch_addr_size; - type->flags = RDI_TypeModifierFlag_Const; - type->direct_type = direct_type; - } break; - case DW_TagKind_ArrayType: { - // * DWARF vs RDI Array Type Graph * - // - // For example lets take following decl: - // - // int (*foo[2])[3]; - // - // This compiles to in DWARF: - // - // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] - // \ - // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] - // \ - // -> (B1) DW_TAG_BaseType (int) - // - // RDI expects: - // - // foo -> Array[2] -> Pointer -> Array[3] -> int - // - // Note that DWARF forks the graph on DW_TAG_ArrayType to describe array ranges in branch A and - // in branch B describes array type which might be a struct, pointer, base type, or any other type tag. - // However, in RDI we have a simple list of type nodes and to convert we need to append type nodes from - // B to A. - struct SubrangeNode { struct SubrangeNode *next; U64 count; }; - struct SubrangeNode *subrange_stack = 0; - for (DW_TagNode *n = tag_node->first_child; n != 0; n = n->sibling) { - if (n->tag.kind != DW_TagKind_SubrangeType) { - // TODO: error handling - AssertAlways(!"unexpected tag"); - continue; - } - - // resolve lower bound - U64 lower_bound = 0; - if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_LowerBound)) { - lower_bound = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_LowerBound); - } else { - lower_bound = dw_pick_default_lower_bound(cu_lang); - } - - // resolve upper bound - U64 upper_bound = 0; - if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_Count)) { - U64 count = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_Count); - upper_bound = lower_bound + count; - } else if (dw_tag_has_attrib(input, cu, n->tag, DW_AttribKind_UpperBound)) { - upper_bound = dw_u64_from_attrib(input, cu, n->tag, DW_AttribKind_UpperBound); - // turn upper bound into exclusive range - upper_bound += 1; - } else { - // zero sized array - } - - struct SubrangeNode *s = push_array(scratch.arena, struct SubrangeNode, 1); - s->count = upper_bound - lower_bound; - SLLStackPush(subrange_stack, s); - } - - RDIM_Type *array_base_type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_Type *direct_type = array_base_type; - U64 size_cursor = array_base_type->byte_size; - for EachNode(s, struct SubrangeNode, subrange_stack) { - size_cursor *= s->count; - - RDIM_Type *t; - if (s->next) { t = d2r_create_type(arena, type_table); } - else { t = d2r_create_type_from_offset(arena, type_table, tag.info_off); } - - t->kind = RDI_TypeKind_Array; - t->direct_type = direct_type; - t->byte_size = size_cursor; - t->count = s->count; - - direct_type = t; - } - - d2r_tag_iterator_skip_children(it); - } break; - case DW_TagKind_SubrangeType: { - // TODO: error handling - AssertAlways(!"unexpected tag"); - } break; - case DW_TagKind_Inheritance: { - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind != DW_TagKind_StructureType && parent_tag.kind != DW_TagKind_ClassType) { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - - RDIM_Type *parent = d2r_type_from_offset(type_table, parent_tag.info_off); - if(parent->udt != 0) - { - RDIM_Type *type = d2r_find_or_convert_type(arena, type_table, input, cu, cu_lang, arch_addr_size, tag, DW_AttribKind_Type); - RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, parent->udt); - member->kind = RDI_MemberKind_Base; - member->type = type; - member->off = safe_cast_u32(dw_const_u32_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_DataMemberLocation)); - } - } break; - } - } - scratch_end(scratch); -} - -internal void -d2r_convert_udts(Arena *arena, - D2R_TypeTable *type_table, - DW_Input *input, - DW_CompUnit *cu, - DW_Language cu_lang, - U64 arch_addr_size, - DW_TagNode *root) -{ - Temp scratch = scratch_begin(&arena, 1); - for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { - DW_TagNode *tag_node = it->tag_node; - DW_Tag tag = tag_node->tag; - switch (tag.kind) { - case DW_TagKind_ClassType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - type->udt = udt; - } - } break; - case DW_TagKind_StructureType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - type->udt = udt; - } - } break; - case DW_TagKind_UnionType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - type->udt = udt; - } - } break; - case DW_TagKind_EnumerationType: { - B32 is_decl = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Declaration); - if (is_decl) { - d2r_tag_iterator_skip_children(it); - } else { - RDIM_Type *type = d2r_type_from_offset(type_table, tag.info_off); - RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &udts, UDT_CHUNK_CAP); - udt->self_type = type; - type->udt = udt; - } - } break; - case DW_TagKind_Member: { - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - B32 is_parent_udt = parent_tag.kind == DW_TagKind_StructureType || - parent_tag.kind == DW_TagKind_ClassType || - parent_tag.kind == DW_TagKind_UnionType; - if (is_parent_udt) { - DW_Attrib *data_member_location = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_DataMemberLocation); - DW_AttribClass data_member_location_class = dw_value_class_from_attrib(cu, data_member_location); - if (data_member_location_class == DW_AttribClass_LocList) { - AssertAlways(!"UDT member with multiple locations are not supported"); - } - - RDIM_Type *parent_type = d2r_type_from_offset(type_table, parent_tag.info_off); - RDIM_UDTMember *udt_member = rdim_udt_push_member(arena, &udts, parent_type->udt); - udt_member->kind = RDI_MemberKind_DataField; - udt_member->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - udt_member->type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - udt_member->off = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_DataMemberLocation); - } else { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - } break; - case DW_TagKind_Enumerator: { - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind == DW_TagKind_EnumerationType) { - RDIM_Type *parent_type = d2r_type_from_offset(type_table, parent_tag.info_off); - RDIM_UDTEnumVal *udt_member = rdim_udt_push_enum_val(arena, &udts, parent_type->udt); - udt_member->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - udt_member->val = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_ConstValue); - } else { - // TODO: error handling - AssertAlways(!"unexpected parent tag"); - } - } break; - } - } - scratch_end(scratch); -} - -internal void -d2r_convert_symbols(Arena *arena, - D2R_TypeTable *type_table, - RDIM_Scope *global_scope, - DW_Input *input, - DW_CompUnit *cu, - DW_Language cu_lang, - U64 arch_addr_size, - U64 image_base, - Arch arch, - DW_TagNode *root) -{ - Temp scratch = scratch_begin(&arena, 1); - for (D2R_TagIterator *it = d2r_tag_iterator_init(scratch.arena, root); it->tag_node != 0; d2r_tag_iterator_next(scratch.arena, it)) { - DW_TagNode *tag_node = it->tag_node; - DW_Tag tag = tag_node->tag; - switch (tag.kind) { - case DW_TagKind_Null: { InvalidPath; } break; - case DW_TagKind_ClassType: - case DW_TagKind_StructureType: - case DW_TagKind_UnionType: { - // visit children to collect methods and variables - } break; - case DW_TagKind_EnumerationType: - case DW_TagKind_SubroutineType: - case DW_TagKind_Typedef: - case DW_TagKind_BaseType: - case DW_TagKind_PointerType: - case DW_TagKind_RestrictType: - case DW_TagKind_VolatileType: - case DW_TagKind_ConstType: - case DW_TagKind_ArrayType: - case DW_TagKind_SubrangeType: - case DW_TagKind_Inheritance: - case DW_TagKind_Enumerator: - case DW_TagKind_Member: { - d2r_tag_iterator_skip_children(it); - } break; - case DW_TagKind_SubProgram: { - DW_InlKind inl = DW_Inl_NotInlined; - if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_Inline)) { inl = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Inline); } - - switch (inl) { - case DW_Inl_NotInlined: { - U64 param_count = 0; - RDIM_Type **params = d2r_collect_proc_params(arena, type_table, input, cu, tag_node, ¶m_count); - - // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - - // fill out proc type - RDIM_Type *proc_type = d2r_create_type(arena, type_table); - proc_type->kind = RDI_TypeKind_Function; - proc_type->byte_size = arch_addr_size; - proc_type->direct_type = ret_type; - proc_type->count = param_count; - proc_type->param_types = params; - - // get container type - RDIM_Type *container_type = 0; - if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ContainingType)) { - container_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_ContainingType); - } - - // get frame base expression - String8 frame_base_expr = dw_exprloc_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_FrameBase); - - // get proc container symbol - RDIM_Symbol *proc = rdim_symbol_chunk_list_push(arena, &procs, PROC_CHUNK_CAP); - - // make scope - Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); - RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, it->stack, ranges); - root_scope->symbol = proc; - - // fill out proc - proc->is_extern = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_External); - proc->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - proc->link_name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_LinkageName); - proc->type = proc_type; - proc->container_symbol = 0; - proc->container_type = container_type; - proc->root_scope = root_scope; - proc->location_cases = d2r_locset_from_attrib(arena, &scopes, root_scope, &locations, input, cu, image_base, arch, tag, DW_AttribKind_FrameBase); - - // sub program with user-defined parent tag is a method - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind == DW_TagKind_ClassType || parent_tag.kind == DW_TagKind_StructureType) { - RDI_MemberKind member_kind = RDI_MemberKind_NULL; - DW_VirtualityKind virtuality = dw_const_u64_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Virtuality); - switch (virtuality) { - case DW_VirtualityKind_None: member_kind = RDI_MemberKind_Method; break; - case DW_VirtualityKind_Virtual: member_kind = RDI_MemberKind_VirtualMethod; break; - case DW_VirtualityKind_PureVirtual: member_kind = RDI_MemberKind_VirtualMethod; break; // TODO: create kind for pure virutal - //default: InvalidPath; break; - } - - RDIM_Type *type = d2r_type_from_offset(type_table, parent_tag.info_off); - RDIM_UDTMember *member = rdim_udt_push_member(arena, &udts, type->udt); - member->kind = member_kind; - member->type = type; - member->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - } else if (parent_tag.kind != DW_TagKind_CompileUnit) { - //AssertAlways(!"unexpected tag"); - } - - it->stack->scope = root_scope; - } break; - case DW_Inl_DeclaredNotInlined: - case DW_Inl_DeclaredInlined: - case DW_Inl_Inlined: { - d2r_tag_iterator_skip_children(it); - } break; - default: InvalidPath; break; - } - } break; - case DW_TagKind_InlinedSubroutine: { - U64 param_count = 0; - RDIM_Type **params = d2r_collect_proc_params(arena, type_table, input, cu, tag_node, ¶m_count); - - // get return type - RDIM_Type *ret_type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - - // fill out proc type - RDIM_Type *proc_type = d2r_create_type(arena, type_table); - proc_type->kind = RDI_TypeKind_Function; - proc_type->byte_size = arch_addr_size; - proc_type->direct_type = ret_type; - proc_type->count = param_count; - proc_type->param_types = params; - - // get container type - RDIM_Type *owner = 0; - if (dw_tag_has_attrib(input, cu, tag, DW_AttribKind_ContainingType)) { - owner = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_ContainingType); - } - - // fill out inline site - RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, &inline_sites, INLINE_SITE_CHUNK_CAP); - inline_site->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - inline_site->type = proc_type; - inline_site->owner = owner; - inline_site->line_table = 0; - - // make scope - Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); - RDIM_Scope *root_scope = d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, it->stack, ranges); - root_scope->inline_site = inline_site; - } break; - case DW_TagKind_Variable: { - String8 name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - RDIM_Type *type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind == DW_TagKind_SubProgram || - parent_tag.kind == DW_TagKind_InlinedSubroutine || - parent_tag.kind == DW_TagKind_LexicalBlock) { - RDIM_Scope *scope = it->stack->next->scope; - RDIM_Local *local = rdim_scope_push_local(arena, &scopes, scope); - local->kind = RDI_LocalKind_Variable; - local->name = name; - local->type = type; - local->location_cases = d2r_var_locset_from_tag(arena, &scopes, scope, &locations, input, cu, image_base, arch, tag); - } else { - - // NOTE: due to a bug in clang in stb_sprint.h local variables - // are declared in global scope without a name - if (name.size == 0) { break; } - - U64 voff = max_U64; - B32 is_thread_var = 0; - { - DW_Attrib *loc_attrib = dw_attrib_from_tag(input, cu, tag, DW_AttribKind_Location); - DW_AttribClass loc_class = dw_value_class_from_attrib(cu, loc_attrib); - if (loc_class == DW_AttribClass_ExprLoc) { - Temp temp = temp_begin(scratch.arena); - - String8 expr = dw_exprloc_from_attrib(input, cu, loc_attrib); - D2R_ValueType expr_type = 0; - RDIM_EvalBytecode bc = d2r_bytecode_from_expression(temp.arena, input, image_base, arch_addr_size, arch, cu->addr_lu, expr, cu, &expr_type); - - // evaluate bytecode to virutal offset if possible - if (expr_type == D2R_ValueType_Address) { - B32 is_static = rdim_is_eval_bytecode_static(bc); - if (is_static) { - voff = rdim_virt_off_from_eval_bytecode(bc, image_base); - } - } - - // is this a thread variable? - is_thread_var = rdim_is_bytecode_tls_dependent(bc); - - temp_end(temp); - } - } - - RDIM_SymbolChunkList *var_chunks; U64 var_chunks_cap; - if (is_thread_var) { var_chunks = &tvars; var_chunks_cap = TVAR_CHUNK_CAP; } - else { var_chunks = &gvars; var_chunks_cap = GVAR_CHUNK_CAP; } - - RDIM_Symbol *var = rdim_symbol_chunk_list_push(arena, var_chunks, var_chunks_cap); - var->is_extern = dw_flag_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_External); - var->name = name; - var->link_name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_LinkageName); - var->type = type; - var->offset = voff; - var->container_symbol = 0; - var->container_type = 0; // TODO: NotImplemented; - } - } break; - case DW_TagKind_FormalParameter: { - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind == DW_TagKind_SubProgram || parent_tag.kind == DW_TagKind_InlinedSubroutine) { - RDIM_Scope *scope = it->stack->next->scope; - RDIM_Local *param = rdim_scope_push_local(arena, &scopes, scope); - param->kind = RDI_LocalKind_Parameter; - param->name = dw_string_from_tag_attrib_kind(input, cu, tag, DW_AttribKind_Name); - param->type = d2r_type_from_attrib(type_table, input, cu, tag, DW_AttribKind_Type); - param->location_cases = d2r_var_locset_from_tag(arena, &scopes, scope, &locations, input, cu, image_base, arch, tag); - } else { - // TODO: error handling - AssertAlways(!"this is a local variable"); - } - } break; - case DW_TagKind_LexicalBlock: { - DW_Tag parent_tag = d2r_tag_iterator_parent_tag(it); - if (parent_tag.kind == DW_TagKind_SubProgram || - parent_tag.kind == DW_TagKind_InlinedSubroutine || - parent_tag.kind == DW_TagKind_LexicalBlock) { - Rng1U64List ranges = d2r_range_list_from_tag(scratch.arena, input, cu, image_base, tag); - d2r_push_scope(arena, &scopes, SCOPE_CHUNK_CAP, it->stack, ranges); - } - } break; - case DW_TagKind_CallSite: { - // TODO - } break; - case DW_TagKind_CallSiteParameter: { - // TODO - } break; - case DW_TagKind_Label: - case DW_TagKind_CompileUnit: - case DW_TagKind_UnspecifiedParameters: - case DW_TagKind_Namespace: - case DW_TagKind_ImportedDeclaration: - case DW_TagKind_PtrToMemberType: - case DW_TagKind_TemplateTypeParameter: - case DW_TagKind_ReferenceType: { - // TODO: - } break; - default: - { - // NotImplemented; - }break; - } - } - scratch_end(scratch); -} +//~ rjf: Main Conversion Entry Point (New) internal RDIM_BakeParams d2r_convert(Arena *arena, D2R_ConvertParams *params) { Temp scratch = scratch_begin(&arena, 1); - if (lane_idx() == 0) { - //////////////////////////////// - - ProfBegin("compute exe hash"); - U64 exe_hash = rdi_hash(params->exe_data.str, params->exe_data.size); - ProfEnd(); - - //////////////////////////////// - - Arch arch = Arch_Null; - U64 image_base = 0; - DW_Input input = {0}; - - switch(params->exe_kind) { - default:{}break; - case ExecutableImageKind_CoffPe: { - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, params->exe_data); - String8 raw_sections = str8_substr(params->exe_data, pe.section_table_range); - COFF_SectionHeader *section_table = str8_deserial_get_raw_ptr(raw_sections, 0, sizeof(COFF_SectionHeader) * pe.section_count); - String8 string_table = str8_substr(params->exe_data, pe.string_table_range); - arch = pe.arch; - image_base = pe.image_base; - binary_sections = c2r_rdi_binary_sections_from_coff_sections(arena, params->exe_data, string_table, pe.section_count, section_table); - input = dw_input_from_coff_section_table(scratch.arena, params->exe_data, string_table, pe.section_count, section_table); - } break; - case ExecutableImageKind_Elf32: - case ExecutableImageKind_Elf64: { - ELF_Bin bin = elf_bin_from_data(scratch.arena, params->dbg_data); - arch = arch_from_elf_machine(bin.hdr.e_machine); - image_base = elf_base_addr_from_bin(&bin); - binary_sections = e2r_rdi_binary_sections_from_elf_section_table(arena, bin.shdrs); - input = dw_input_from_elf_bin(scratch.arena, params->dbg_data, &bin); - } break; + DW_Raw *raw = ¶ms->raw; + RDIM_BinarySectionList binary_sections = params->binary_sections; + Arch arch = params->arch; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 base_vaddr = params->base_vaddr; + U64 arch_addr_size = byte_size_from_arch(arch); + + //////////////////////////// + //- rjf: determine acceptable address range + // + // in many cases, linkers seem to trample over addresses in various DWARF sections, + // potentially due to optimizations. we'd like to filter out those busted addresses + // from our final debug info - a good enough heuristic is to disqualify them by + // whether or not they actually fall into the ranges covered by the binary sections. + // + Rng1U64 acceptable_vaddr_range = {0}; + { + acceptable_vaddr_range.min = max_U64; + acceptable_vaddr_range.max = 0; + for EachNode(n, RDIM_BinarySectionNode, binary_sections.first) + { + acceptable_vaddr_range.min = Min(base_vaddr + n->v.voff_first, acceptable_vaddr_range.min); + acceptable_vaddr_range.max = Max(base_vaddr + n->v.voff_opl, acceptable_vaddr_range.max); } - - //////////////////////////////// - - top_level_info = rdim_make_top_level_info(params->exe_name, arch, exe_hash, binary_sections); - - //////////////////////////////// - - U64 arch_addr_size = rdi_addr_size_from_arch(top_level_info.arch); - - //////////////////////////////// - - RDIM_Scope *global_scope = rdim_scope_chunk_list_push(arena, &scopes, SCOPE_CHUNK_CAP); - - //////////////////////////////// - - ProfBegin("Parse Unit Contrib Map"); - D2R_CompUnitContribMap cu_contrib_map = {0}; - if (input.sec[DW_Section_ARanges].data.size) { - cu_contrib_map = d2r_cu_contrib_map_from_aranges(arena, &input, image_base); + } + + //////////////////////////// + //- rjf: compute exe hash + // + U64 exe_hash = 0; + ProfScope("compute exe hash") + { + if(lane_idx() == 0) + { + exe_hash = rdi_hash(params->exe_data.str, params->exe_data.size); } - ProfEnd(); - - ProfBegin("Parse Comop Unit Ranges"); - DW_ListUnitInput lu_input = dw_list_unit_input_from_input(scratch.arena, &input); - Rng1U64List cu_range_list = dw_unit_ranges_from_data(scratch.arena, input.sec[DW_Section_Info].data); - Rng1U64Array cu_ranges = rng1u64_array_from_list(scratch.arena, &cu_range_list); - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Parse Compile Unit Headers"); - // TODO(rjf): parse should always be relaxed. any verification checks we do - // should just be logged via log_info(...), and then the caller of this - // converter can collect those & display as necessary. - B32 is_parse_relaxed = 1; - DW_CompUnit *cu_arr = push_array(scratch.arena, DW_CompUnit, cu_ranges.count); - for EachIndex(cu_idx, cu_ranges.count) { - cu_arr[cu_idx] = dw_cu_from_info_off(scratch.arena, &input, lu_input, cu_ranges.v[cu_idx].min, is_parse_relaxed); + lane_sync_u64(&exe_hash, 0); + } + + //////////////////////////// + //- rjf: produce top-level-info + // + RDIM_TopLevelInfo top_level_info = {0}; + ProfScope("produce top-level-info") + { + top_level_info.arch = rdi_arch_from_arch(arch); + top_level_info.exe_name = params->exe_name; + top_level_info.exe_hash = exe_hash; + top_level_info.voff_max = acceptable_vaddr_range.max - base_vaddr; + if(!params->deterministic) + { + // TODO(rjf): top_level_info.guid = ...; + top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL); } - ProfEnd(); - - //////////////////////////////// - - ProfBegin("Parse Line Tables"); - DW_LineTableParseResult *cu_line_tables = push_array(scratch.arena, DW_LineTableParseResult, cu_ranges.count); - for EachIndex(cu_idx, cu_ranges.count) { - DW_CompUnit *cu = &cu_arr[cu_idx]; - String8 cu_stmt_list = dw_line_ptr_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_StmtList); - String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); - cu_line_tables[cu_idx] = dw_parsed_line_table_from_data(scratch.arena, cu_stmt_list, &input, cu_dir, cu_name, cu->address_size, cu->str_offsets_lu); + } + + //////////////////////////// + //- rjf: gather unit ranges from .debug_info, .debug_aranges + // + Rng1U64Array *unit_info_ranges = 0; + Rng1U64Array *unit_arange_ranges = 0; + ProfScope("gather unit ranges from .debug_info, .debug_aranges") if(lane_idx() == 0) + { + unit_info_ranges = push_array(scratch.arena, Rng1U64Array, 1); + *unit_info_ranges = dw2_unit_ranges_from_data(scratch.arena, raw->sec[DW_SectionKind_Info].data); + unit_arange_ranges = push_array(scratch.arena, Rng1U64Array, 1); + *unit_arange_ranges = dw2_unit_ranges_from_data(scratch.arena, raw->sec[DW_SectionKind_ARanges].data); + } + lane_sync_u64(&unit_info_ranges, 0); + lane_sync_u64(&unit_arange_ranges, 0); + U64 unit_count = unit_info_ranges->count; + + //////////////////////////// + //- rjf: parse all .debug_info unit headers + // + DW2_UnitHeader *unit_headers = 0; + Rng1U64 *unit_info_tag_ranges = 0; + ProfScope("parse all unit headers") + { + // rjf: set up + if(lane_idx() == 0) + { + unit_headers = push_array(scratch.arena, DW2_UnitHeader, unit_count); + unit_info_tag_ranges = push_array(scratch.arena, Rng1U64, unit_count); } - ProfEnd(); + lane_sync_u64(&unit_headers, 0); + lane_sync_u64(&unit_info_tag_ranges, 0); - //////////////////////////////// - - ProfBegin("Convert Line Tables"); - HashTable *source_file_ht = hash_table_init(scratch.arena, 0x4000); - RDIM_LineTable **cu_line_tables_rdi = push_array(scratch.arena, RDIM_LineTable *, cu_ranges.count); - for EachIndex(cu_idx, cu_ranges.count) { - cu_line_tables_rdi[cu_idx] = rdim_line_table_chunk_list_push(arena, &line_tables, LINE_TABLE_CAP); - - DW_LineTableParseResult *line_table = &cu_line_tables[cu_idx]; - DW_LineVMFileArray *dir_table = &line_table->vm_header.dir_table; - DW_LineVMFileArray *file_table = &line_table->vm_header.file_table; - RDIM_SrcFile **src_file_map = push_array(scratch.arena, RDIM_SrcFile *, file_table->count); - for EachIndex(file_idx, file_table->count) { - DW_LineFile *file = &file_table->v[file_idx]; - String8 file_path = dw_path_from_file_idx(scratch.arena, &line_table->vm_header, file_idx); - String8List file_path_split = str8_split_path(scratch.arena, file_path); - str8_path_list_resolve_dots_in_place(&file_path_split, PathStyle_WindowsAbsolute); - String8 file_path_resolved = str8_path_list_join_by_style(scratch.arena, &file_path_split, PathStyle_WindowsAbsolute); - RDIM_SrcFile *src_file = hash_table_search_path_raw(source_file_ht, file_path_resolved); - if (src_file == 0) { - src_file = rdim_src_file_chunk_list_push(arena, &src_files, SRC_FILE_CAP); - src_file->path = push_str8_copy(arena, file_path_resolved); - hash_table_push_path_raw(scratch.arena, source_file_ht, src_file->path, src_file); - } - src_file_map[file_idx] = src_file; + // rjf: parse all unit headers + String8 data = raw->sec[DW_SectionKind_Info].data; + Rng1U64 range = lane_range(unit_count); + for EachInRange(idx, range) + { + Rng1U64 unit_info_range = unit_info_ranges->v[idx]; + U64 bytes_read = dw2_read_unit_header(str8_substr(data, unit_info_range), 0, &unit_headers[idx]); + unit_info_tag_ranges[idx] = r1u64(unit_info_range.min + bytes_read, unit_info_range.max); + } + } + lane_sync(); + Rng1U64Array unit_info_tag_ranges_array = {unit_info_tag_ranges, unit_count}; + + //////////////////////////// + //- rjf: parse all units from .debug_aranges + // + U64 *arange_info_offs = 0; + RDIM_Rng1U64ChunkList *arange_voff_ranges = 0; + { + if(lane_idx() == 0) + { + arange_info_offs = push_array(scratch.arena, U64, unit_arange_ranges->count); + arange_voff_ranges = push_array(scratch.arena, RDIM_Rng1U64ChunkList, unit_arange_ranges->count); + } + lane_sync_u64(&arange_info_offs, 0); + lane_sync_u64(&arange_voff_ranges, 0); + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + String8 data = raw->sec[DW_SectionKind_ARanges].data; + for(;;) + { + // rjf: take unit + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr)-1; + if(unit_idx >= unit_arange_ranges->count) + { + break; } - for EachNode(line_seq, DW_LineSeqNode, line_table->first_seq) { - if (line_seq->count == 0) { continue; } + // rjf: unpack + Rng1U64 arange_range = unit_arange_ranges->v[unit_idx]; + U64 off = arange_range.min; + + // rjf: read unit data size / format + U64 unit_size = 0; + DW_Format fmt = 0; + off += dw2_read_initial_length(data, off, &unit_size, &fmt); + U64 unit_opl = off + unit_size; + + // rjf: read version + DW_Version version = 0; + U64 version_off = off; + off += str8_deserial_read_struct(data, off, &version); + + // rjf: warn on non-version 2 + if(version != DW_Version_2) + { + log_infof("[.debug_aranges@0x%I64x] DWARF version for unit #%I64d was expected to be 2, but it was read as %i.\n", version_off, unit_idx, (S32)version); + } + + // rjf: read .debug_info off for this unit + U64 info_off = 0; + off += dw2_read_fmt_u64(data, off, fmt, &info_off); + + // rjf: read address / segment selector size + U8 addr_size = 0; + U8 segment_selector_size = 0; + off += str8_deserial_read_struct(data, off, &addr_size); + off += str8_deserial_read_struct(data, off, &segment_selector_size); + + // rjf: round up past padding + { + U64 tuple_size = addr_size*2 + segment_selector_size; + off += tuple_size - (off%tuple_size); + } + + // rjf: parse ranges + RDIM_Rng1U64ChunkList voff_ranges = {0}; + if(segment_selector_size != 0) + { + log_infof("[.debug_aranges@0x%I64x] Non-zero (%i) segment selector size parsed; this form of addressing is not currently supported in DWARF info.\n", off, (S32)segment_selector_size); + } + else for(;off < unit_opl;) + { + U64 start_off = off; + U64 base_addr = 0; + U64 range_size = 0; + off += str8_deserial_read(data, off, &base_addr, addr_size, addr_size); + off += str8_deserial_read(data, off, &range_size, addr_size, addr_size); + if(base_addr == 0 && range_size == 0) + { + break; + } + if(base_addr < base_vaddr) + { + log_infof("[.debug_aranges@0x%I64x] Address (0x%I64x) parsed which was less than the image base address (0x%I64x). Skipping.\n", start_off, base_addr, base_vaddr); + } + else + { + U64 voff_first = (base_addr - base_vaddr); + U64 voff_opl = voff_first + range_size; + RDIM_Rng1U64 range = {voff_first, voff_opl}; + rdim_rng1u64_chunk_list_push(arena, &voff_ranges, 256, range); + } + if(off == start_off) + { + break; + } + } + + // rjf: store + arange_info_offs[unit_idx] = info_off; + arange_voff_ranges[unit_idx] = voff_ranges; + } + lane_sync(); + } + + //////////////////////////// + //- rjf: produce info_off -> list(voff_range) map from aranges units; + // we must do this because technically we can't guarantee that unit_idxs + // inside of .debug_aranges are the same as unit_idxs inside of .debug_info, + // nor can we guarantee that they'd be in the same order, so we need to + // correllate via the encoded .debug_info offset from .debug_aranges. + // + // more excellence. + // + typedef struct D2R_ARangeUnitNode D2R_ARangeUnitNode; + struct D2R_ARangeUnitNode + { + D2R_ARangeUnitNode *next; + U64 info_off; + RDIM_Rng1U64ChunkList *ranges; + }; + U64 arange_unit_from_info_off_map_slots_count = unit_arange_ranges->count; + D2R_ARangeUnitNode **arange_unit_from_info_off_map_slots = 0; + { + if(lane_idx() == 0) + { + arange_unit_from_info_off_map_slots = push_array(scratch.arena, D2R_ARangeUnitNode *, arange_unit_from_info_off_map_slots_count); + } + lane_sync_u64(&arange_unit_from_info_off_map_slots, 0); + for EachIndex(arange_unit_idx, unit_arange_ranges->count) + { + U64 info_off = arange_info_offs[arange_unit_idx]; + RDIM_Rng1U64ChunkList *ranges = &arange_voff_ranges[arange_unit_idx]; + U64 hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 slot_idx = hash%arange_unit_from_info_off_map_slots_count; + D2R_ARangeUnitNode *n = push_array(scratch.arena, D2R_ARangeUnitNode, 1); + SLLStackPush(arange_unit_from_info_off_map_slots[slot_idx], n); + n->info_off = info_off; + n->ranges = ranges; + } + } + lane_sync(); + + //////////////////////////// + //- rjf: build all abbreviation maps, build (unit -> abbrev map) + // + DW2_UnitAbbrevMapMap unit_abbrev_map_map = dw2_unit_abbrev_map_map_from_data(scratch.arena, raw->sec[DW_SectionKind_Abbrev].data, unit_headers, unit_count); + + //////////////////////////// + //- rjf: parse all unit offsets tables + // + // on .debug_str_offsets, as one example: + // + // in an incredible twist of fate, DWARF decided to decouple these from + // compilation units. compilation units *do* contain a + // DW_AttribKind_StrOffsetsBase attribute. but this base offset does *not* + // point to the beginning of a table in .debug_str_offsets! it instead points + // PAST THE INITIAL VARIABLE-WIDTH LENGTH AND FORMAT ENCODING! this means + // you can't actually use the StrOffsetsBase attribute for ANYTHING other + // than correllating a unit to its associated string offset table - but you + // *necessarily needed to have parsed that table beforehand*, completely + // independently from units. + // + // so, we have to parse all the string offset tables up-front, then + // *binary search* their ranges to determine which unit has which table. + // + // of course, in practice, it's perhaps likely/expected that these match + // one-to-one with units, and in the same order, because that is what is + // most natural for generators. but, the format does not *guarantee this*, + // and instead specced something far more arbitrary. + // + // thank you, again, DWARF. + // + DW2_OffsetTableSet *offset_tables = 0; + ProfScope("parse all offset tables (.debug_rnglists, .debug_str_offsets, .debug_addr, .debug_loclists)") if(lane_idx() == 0) + { + offset_tables = push_array(scratch.arena, DW2_OffsetTableSet, 1); + offset_tables[0] = dw2_offset_table_set_from_raw(scratch.arena, raw); + } + lane_sync_u64(&offset_tables, 0); + + //////////////////////////// + //- rjf: build per-unit parsing contexts, parse compilation unit tags + // + DW2_ParseCtx *unit_parse_ctxs = 0; + DW2_Tag *unit_root_tags = 0; + { + if(lane_idx() == 0) + { + unit_parse_ctxs = push_array(scratch.arena, DW2_ParseCtx, unit_count); + unit_root_tags = push_array(scratch.arena, DW2_Tag, unit_count); + } + lane_sync_u64(&unit_parse_ctxs, 0); + lane_sync_u64(&unit_root_tags, 0); + Rng1U64 range = lane_range(unit_count); + for EachInRange(unit_idx, range) + { + DW2_UnitHeader *hdr = &unit_headers[unit_idx]; + DW2_ParseCtx *ctx = &unit_parse_ctxs[unit_idx]; + + // rjf: equip initial info - just enough to do a bootstrapping parse of the root tag + dw2_parse_ctx_equip_unit_header(ctx, hdr, unit_info_ranges->v[unit_idx].min); + dw2_parse_ctx_equip_unit_abbrev_map(ctx, &unit_abbrev_map_map, unit_idx); + + // rjf: do bootstrapping parse + // + // an incredible NOTE: the above context info is actually not sufficient for general + // parsing, because this "bootstrapping" tag parse is what informs us which + // .debug_str_offsets table each unit should be associated with (via the + // StrOffsetsBase attribute), we actually don't have the right string offset table + // *before* we parse this, which means we can't resolve some of the string attribute + // values. + // + // so, in another incredible twist of fate, we actually must do this *twice*. first, + // to find *just the StrOffsetsBase*, and then, to actually fully resolve everything. + // + // (all of the above is also true for RngListsBase) + // + DW2_Tag root_tag_bootstrap = {0}; + dw2_read_tag(scratch.arena, raw, ctx, raw->sec[DW_SectionKind_Info].data, unit_info_tag_ranges[unit_idx].min, &root_tag_bootstrap); + + // rjf: equip info extracted from bootstrapping parse + dw2_parse_ctx_equip_unit_root_tag(ctx, &root_tag_bootstrap, offset_tables); + + // rjf: do non-bootstrapping parse + dw2_read_tag(scratch.arena, raw, ctx, raw->sec[DW_SectionKind_Info].data, unit_info_tag_ranges[unit_idx].min, &unit_root_tags[unit_idx]); + + // rjf: equip info extracted from non-bootstrapping parse + dw2_parse_ctx_equip_unit_root_tag(ctx, &unit_root_tags[unit_idx], offset_tables); + } + } + lane_sync(); + + //////////////////////////// + //- rjf: parse each unit's line table header + // + DW2_LineTableHeader *unit_line_table_headers = 0; + ProfScope("parse each unit's line table header") + { + if(lane_idx() == 0) + { + unit_line_table_headers = push_array(scratch.arena, DW2_LineTableHeader, unit_count); + } + lane_sync_u64(&unit_line_table_headers, 0); + U64 unit_take_idx = 0; + U64 *unit_take_idx_ptr = &unit_take_idx; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr) - 1; + if(unit_idx >= unit_count) + { + break; + } + DW2_ParseCtx *ctx = &unit_parse_ctxs[unit_idx]; + DW2_Tag *unit_root_tag = &unit_root_tags[unit_idx]; + DW2_Attrib *stmt_list = dw2_attrib_from_kind(unit_root_tag, DW_AttribKind_StmtList); + U64 line_info_off = stmt_list->val.u128.u64[0]; + String8 line_info_data = raw->sec[DW_SectionKind_Line].data; + dw2_read_line_table_header(scratch.arena, raw, ctx, line_info_data, line_info_off, &unit_line_table_headers[unit_idx]); + } + lane_sync(); + } + + //////////////////////////// + //- rjf: deduplicate all source files + // + typedef struct UnitSrcFileMap UnitSrcFileMap; + struct UnitSrcFileMap + { + RDIM_SrcFile **v; + }; + RDIM_SrcFileChunkList *all_src_files = 0; + UnitSrcFileMap *unit_src_file_maps = 0; + ProfScope("deduplicate all source files") if(lane_idx() == 0) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + //- rjf: count all files in all units + U64 total_file_count = 0; + for EachIndex(unit_idx, unit_count) + { + total_file_count += unit_line_table_headers[unit_idx].files.count; + } + + //- rjf: set up path -> src file map + typedef struct SrcFileNode SrcFileNode; + struct SrcFileNode + { + SrcFileNode *next; + String8 full_path; + RDIM_SrcFile *src_file; + }; + all_src_files = push_array(scratch.arena, RDIM_SrcFileChunkList, 1); + U64 slots_count = 1 + (total_file_count * 3) / 4; + SrcFileNode **slots = push_array(scratch2.arena, SrcFileNode *, slots_count); + + //- rjf: set up unit -> src file maps + unit_src_file_maps = push_array(scratch.arena, UnitSrcFileMap, unit_count); + for EachIndex(unit_idx, unit_count) + { + unit_src_file_maps[unit_idx].v = push_array(scratch.arena, RDIM_SrcFile *, unit_line_table_headers[unit_idx].files.count); + } + + //- rjf: build path -> src file map + for EachIndex(unit_idx, unit_count) + { + DW2_LineTableHeader *hdr = &unit_line_table_headers[unit_idx]; + for EachIndex(file_idx, hdr->files.count) + { + DW2_LineTableFile *f = &hdr->files.v[file_idx]; + DW2_LineTableFile *dir = &hdr->dirs.v[f->dir_idx]; + String8 full_file_path = str8f(scratch2.arena, "%S%s%S", dir->file_name, dir->file_name.size != 0 ? "/" : "", f->file_name); + U64 hash = u64_hash_from_str8(full_file_path); + U64 slot_idx = hash%slots_count; + SrcFileNode *node = 0; + for(SrcFileNode *n = slots[slot_idx]; n != 0; n = n->next) + { + if(str8_match(n->full_path, full_file_path, 0)) + { + node = n; + break; + } + } + if(!node) + { + node = push_array(scratch2.arena, SrcFileNode, 1); + node->full_path = full_file_path; + node->src_file = rdim_src_file_chunk_list_push(arena, all_src_files, slots_count); + node->src_file->path = str8_copy(arena, full_file_path); + if(f->flags & DW2_LineTableFileFlag_HasMD5) + { + node->src_file->checksum_kind = RDI_ChecksumKind_MD5; + node->src_file->checksum = str8_copy(arena, str8_struct(&f->md5)); + } + else if(f->flags & DW2_LineTableFileFlag_HasModifyTime) + { + node->src_file->checksum_kind = RDI_ChecksumKind_Timestamp; + node->src_file->checksum = str8_copy(arena, str8_struct(&f->modify_time)); + } + } + unit_src_file_maps[unit_idx].v[file_idx] = node->src_file; + } + } + scratch_end(scratch2); + } + lane_sync_u64(&all_src_files, 0); + lane_sync_u64(&unit_src_file_maps, 0); + + //////////////////////////// + //- rjf: parse each unit's line info; produce line tables + // + RDIM_LineTableChunkList *unit_line_table_chunk_lists = 0; + RDIM_LineTable **unit_line_tables = 0; + ProfScope("parse each unit's line info; produce line tables") + { + //- rjf: prep outputs + typedef struct LineSeqChunk LineSeqChunk; + struct LineSeqChunk + { + LineSeqChunk *next; + U64 *voffs; + U32 *line_nums; + U16 *col_nums; + U64 line_count; + U64 line_cap; + }; + typedef struct FileSeqNode FileSeqNode; + struct FileSeqNode + { + FileSeqNode *next; + RDIM_SrcFile *src_file; + RDIM_SrcFileLineMapFragment *first_line_map_fragment; + RDIM_SrcFileLineMapFragment *last_line_map_fragment; + }; + typedef struct FileSeqMap FileSeqMap; + struct FileSeqMap + { + U64 slots_count; + FileSeqNode **slots; + }; + FileSeqMap *unit_file_seq_maps = 0; + if(lane_idx() == 0) + { + unit_line_table_chunk_lists = push_array(scratch.arena, RDIM_LineTableChunkList, unit_count); + unit_line_tables = push_array(scratch.arena, RDIM_LineTable *, unit_count); + unit_file_seq_maps = push_array(scratch.arena, FileSeqMap, unit_count); + } + lane_sync_u64(&unit_line_table_chunk_lists, 0); + lane_sync_u64(&unit_line_tables, 0); + lane_sync_u64(&unit_file_seq_maps, 0); + + //- rjf: wide per-unit parse + U64 unit_take_idx = 0; + U64 *unit_take_idx_ptr = &unit_take_idx; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + //- rjf: take unit + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr) - 1; + if(unit_idx >= unit_count) + { + break; + } + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + //- rjf: unpack unit info + DW2_LineTableHeader *line_table_header = &unit_line_table_headers[unit_idx]; + RDIM_LineTableChunkList *dst_line_tables = &unit_line_table_chunk_lists[unit_idx]; + DW2_Tag *unit_root_tag = &unit_root_tags[unit_idx]; + DW2_Attrib *stmt_list = dw2_attrib_from_kind(unit_root_tag, DW_AttribKind_StmtList); + U64 line_info_off = stmt_list->val.u128.u64[0]; + String8 all_line_info_data = raw->sec[DW_SectionKind_Line].data; + String8 unit_line_table_data = str8_substr(all_line_info_data, r1u64(line_table_header->line_program_off, line_info_off + line_table_header->total_unit_data_size)); + + //- rjf: build unit's line table + RDIM_LineTable *dst_line_table = rdim_line_table_chunk_list_push(arena, dst_line_tables, 1); + unit_line_tables[unit_idx] = dst_line_table; + + //- rjf: set up per-unit file sequence map + unit_file_seq_maps[unit_idx].slots_count = line_table_header->files.count + 1; + unit_file_seq_maps[unit_idx].slots = push_array(scratch.arena, FileSeqNode *, unit_file_seq_maps[unit_idx].slots_count); + + //- rjf: set up vm registers + DW2_LineVMRegs vm_regs = {0}; + { + vm_regs.file_index = 1; + vm_regs.line = 1; + vm_regs.is_stmt = line_table_header->default_is_stmt; + } + + //- rjf: run the line opcode program + B32 emit_line = 0; + RDIM_SrcFile *line_seq_src_file = 0; + LineSeqChunk *first_line_seq_chunk = 0; + LineSeqChunk *last_line_seq_chunk = 0; + U64 total_line_seq_count = 0; + for(U64 off = 0, next_off = 0; off <= unit_line_table_data.size; off = next_off) + { + next_off = unit_line_table_data.size; - U64 *voffs = push_array(arena, U64, line_seq->count); - U32 *line_nums = push_array(arena, U32, line_seq->count); - U16 *col_nums = 0; - U64 line_idx = 0; + //- rjf: read next opcode + U64 op_read_off = off; + U8 opcode = 0; + str8_deserial_read_struct(unit_line_table_data, op_read_off, &opcode); + op_read_off += 1; - DW_LineNode *file_line_n = line_seq->first; - U64 file_line_count = 0; + //- rjf: apply "special opcodes" (DWARF v5 6.2.5.1) + if(opcode >= line_table_header->opcode_base) + { + U32 adjusted_opcode = (U32)(opcode - line_table_header->opcode_base); + U32 op_advance = adjusted_opcode / line_table_header->line_range; + S64 line_advance = (S64)line_table_header->line_base + (S64)adjusted_opcode%(S64)line_table_header->line_range; + U64 addr_advance = line_table_header->min_inst_length * (vm_regs.vliw_op_index + op_advance) / line_table_header->max_ops_per_inst; + vm_regs.address += addr_advance; + vm_regs.vliw_op_index = (vm_regs.vliw_op_index + op_advance) % line_table_header->max_ops_per_inst; + vm_regs.line += line_advance; + emit_line = 1; + } - for EachNode(line_n, DW_LineNode, file_line_n) { - if (file_line_n->v.file_index != line_n->v.file_index || line_n->next == 0) { - U64 file_index = file_line_n->v.file_index; - U64 *file_voffs = &voffs[line_idx]; - U32 *file_line_nums = &line_nums[line_idx]; - U16 *file_col_nums = 0; + //- rjf: apply standard opcode + else + { + U64 op_advance = 0; + switch(opcode) + { + //- rjf: skip unknown opcode + default: + { + for EachIndex(uleb_idx, line_table_header->opcode_lengths[opcode - 1]) + { + U64 v = 0; + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &v); + } + }break; - U64 lines_written = 0; - U64 prev_ln = max_U64; - DW_LineNode *sentinel = line_n->v.file_index != file_line_n->v.file_index ? line_n : 0; - for (; file_line_n != sentinel; file_line_n = file_line_n->next) { - if (file_line_n->v.line != prev_ln) { - if (file_line_n->v.address == 0) { continue; } - - voffs[line_idx] = file_line_n->v.address - image_base; - line_nums[line_idx] = file_line_n->v.line; - - ++lines_written; - ++line_idx; - - prev_ln = file_line_n->v.line; + //- rjf: line emissions + case DW_StdOpcode_Copy: + { + emit_line = 1; + }break; + + //- rjf: PC advances + case DW_StdOpcode_AdvancePc: + { + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &op_advance); + }goto advance_pc; + case DW_StdOpcode_ConstAddPc: + { + op_advance = (0xffu - line_table_header->opcode_base) / line_table_header->line_range; + }goto advance_pc; + advance_pc:; + { + U64 op_index = vm_regs.vliw_op_index + op_advance; + vm_regs.address += line_table_header->min_inst_length * (op_index / line_table_header->max_ops_per_inst); + vm_regs.vliw_op_index = op_index % line_table_header->max_ops_per_inst; + }break; + + //- rjf: fixed PC advances + case DW_StdOpcode_FixedAdvancePc: + { + U16 fixed_advance = 0; + str8_deserial_read_struct(unit_line_table_data, op_read_off, &fixed_advance); + op_read_off += sizeof(U16); + vm_regs.address += fixed_advance; + vm_regs.vliw_op_index = 0; + }break; + + //- rjf: line number advance + case DW_StdOpcode_AdvanceLine: + { + S64 advance = 0; + op_read_off += str8_deserial_read_sleb128(unit_line_table_data, op_read_off, &advance); + vm_regs.line += advance; + }break; + + //- rjf: set file + case DW_StdOpcode_SetFile: + { + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &vm_regs.file_index); + }break; + + //- rjf: set column + case DW_StdOpcode_SetColumn: + { + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &vm_regs.column); + }break; + + //- rjf: negate statment + case DW_StdOpcode_NegateStmt: + { + vm_regs.is_stmt = !vm_regs.is_stmt; + }break; + + //- rjf: flag sets + case DW_StdOpcode_SetBasicBlock: + { + vm_regs.basic_block = 1; + }break; + case DW_StdOpcode_SetPrologueEnd: + { + vm_regs.prologue_end = 1; + }break; + case DW_StdOpcode_SetEpilogueBegin: + { + vm_regs.epilogue_begin = 1; + }break; + + //- rjf: isa + case DW_StdOpcode_SetIsa: + { + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &vm_regs.isa); + }break; + + //- rjf: extended opcode + case DW_StdOpcode_ExtendedOpcode: + { + // rjf: read extended opcode size + U64 ext_opcode_size = 0; + op_read_off += str8_deserial_read_uleb128(unit_line_table_data, op_read_off, &ext_opcode_size); + + // rjf: read extended opcode + U8 ext_opcode = 0; + op_read_off += str8_deserial_read_struct(unit_line_table_data, op_read_off, &ext_opcode); + + // rjf: grab truncated data for just this extended opcode + String8 ext_op_data = str8_prefix(unit_line_table_data, op_read_off + ext_opcode_size); + + // rjf: do extended opcode + switch(ext_opcode) + { + default: + case DW_ExtOpcode_Undefined: + case DW_ExtOpcode_UserLo: + case DW_ExtOpcode_UserHi: + {}break; + case DW_ExtOpcode_EndSequence: + { + emit_line = 1; + vm_regs.end_sequence = 1; + }break; + case DW_ExtOpcode_SetAddress: + { + U64 addr = 0; + op_read_off += str8_deserial_read(ext_op_data, op_read_off, &addr, line_table_header->addr_size, line_table_header->addr_size); + vm_regs.address = addr; + vm_regs.vliw_op_index = 0; + }break; + case DW_ExtOpcode_DefineFile: + { + String8 file_name = {0}; + U64 dir_idx = 0; + U64 modify_time = 0; + U64 file_size = 0; + op_read_off += str8_deserial_read_cstr(ext_op_data, op_read_off, &file_name); + op_read_off += str8_deserial_read_uleb128(ext_op_data, op_read_off, &dir_idx); + op_read_off += str8_deserial_read_uleb128(ext_op_data, op_read_off, &modify_time); + op_read_off += str8_deserial_read_uleb128(ext_op_data, op_read_off, &file_size); + // + // TODO(rjf): this is a real problem, because at this point, we've already gathered & deduped + // all source files, but now we're in a situation where a per-lane line info parse can produce + // new source files, which may - of course - be duplicates of files defined in other unit line + // info. + // + }break; + case DW_ExtOpcode_SetDiscriminator: + { + op_read_off += str8_deserial_read_uleb128(ext_op_data, op_read_off, &vm_regs.discriminator); + }break; + } + }break; + } + } + + //- rjf: advance to next op + if(op_read_off > off) + { + next_off = op_read_off; + } + + //- rjf: map file index -> rdim src file + RDIM_SrcFile *src_file = 0; + if(vm_regs.file_index < line_table_header->files.count) + { + src_file = unit_src_file_maps[unit_idx].v[vm_regs.file_index]; + } + + //- rjf: sequence ended explicitly, or file change, or end of stream? -> push to line table + if(line_seq_src_file != 0 && (vm_regs.end_sequence || (src_file != line_seq_src_file && first_line_seq_chunk != 0) || off >= unit_line_table_data.size)) + { + // rjf: combine voffs/lines/cols + U64 seq_line_count = total_line_seq_count; + U64 *seq_voffs = push_array(arena, U64, seq_line_count+1); + U32 *seq_lines = push_array(arena, U32, seq_line_count); + U16 *seq_cols = push_array(arena, U16, 2*seq_line_count); + { + U64 voff_idx = 0; + U64 line_idx = 0; + U64 col_idx = 0; + for(LineSeqChunk *c = first_line_seq_chunk; c != 0; c = c->next) + { + MemoryCopy(seq_voffs + voff_idx, c->voffs, sizeof(c->voffs[0]) * c->line_count); + MemoryCopy(seq_lines + line_idx, c->line_nums, sizeof(c->line_nums[0]) * c->line_count); + MemoryCopy(seq_cols + col_idx, c->col_nums, sizeof(c->col_nums[0]) * 2 * c->line_count); + voff_idx += c->line_count; + line_idx += c->line_count; + col_idx += 2*c->line_count; + } + seq_voffs[seq_line_count] = vm_regs.address - base_vaddr; + } + + // rjf: push sequence to line table + RDIM_LineSequence *seq = rdim_line_table_push_sequence(arena, dst_line_tables, dst_line_table, line_seq_src_file, seq_voffs, seq_lines, seq_cols, seq_line_count); + + // rjf: map src file -> file seq node + FileSeqNode *file_seq_n = 0; + { + U64 hash = u64_hash_from_str8(str8_struct(&line_seq_src_file)); + U64 slot_idx = hash%unit_file_seq_maps[unit_idx].slots_count; + for(FileSeqNode *n = unit_file_seq_maps[unit_idx].slots[slot_idx]; n != 0; n = n->next) + { + if(n->src_file == line_seq_src_file) + { + file_seq_n = n; + break; + } + } + if(file_seq_n == 0) + { + file_seq_n = push_array(scratch.arena, FileSeqNode, 1); + SLLStackPush(unit_file_seq_maps[unit_idx].slots[slot_idx], file_seq_n); + file_seq_n->src_file = line_seq_src_file; + } + } + + // rjf: record sequence in file seq node + { + RDIM_SrcFileLineMapFragment *f = push_array(scratch.arena, RDIM_SrcFileLineMapFragment, 1); + SLLQueuePush(file_seq_n->first_line_map_fragment, file_seq_n->last_line_map_fragment, f); + f->seq = seq; + } + + // rjf: reset + first_line_seq_chunk = last_line_seq_chunk = 0; + total_line_seq_count = 0; + line_seq_src_file = 0; + if(vm_regs.end_sequence) + { + MemoryZeroStruct(&vm_regs); + vm_regs.file_index = 1; + vm_regs.line = 1; + vm_regs.is_stmt = line_table_header->default_is_stmt; + } + } + + //- rjf: emit lines + if(emit_line && vm_regs.address != 0 && vm_regs.line != 0) + { + emit_line = 0; + + // rjf: grab the last emitted line info + U32 last_line = 0; + U16 last_col = 0; + if(last_line_seq_chunk != 0 && last_line_seq_chunk->line_count > 0) + { + last_line = last_line_seq_chunk->line_nums[last_line_seq_chunk->line_count-1]; + last_col = last_line_seq_chunk->col_nums[last_line_seq_chunk->line_count-1]; + } + + // rjf: determine if we need a new line + // + // TODO(rjf): in some cases this can trigger w/ DWARF due to columnar changes; + // we need to adjust this when we want to start correctly supporting columnar + // line info / stepping + // + B32 need_new_line = (last_line != (U32)vm_regs.line); + + // rjf: need new line -> grab chunk + LineSeqChunk *chunk = last_line_seq_chunk; + if(need_new_line && (chunk == 0 || chunk->line_count >= chunk->line_cap)) + { + chunk = push_array(scratch.arena, LineSeqChunk, 1); + SLLQueuePush(first_line_seq_chunk, last_line_seq_chunk, chunk); + chunk->line_cap = 64; + chunk->voffs = push_array(scratch.arena, U64, chunk->line_cap + 1); + chunk->line_nums = push_array(scratch.arena, U32, chunk->line_cap); + chunk->col_nums = push_array(scratch.arena, U16, 2*chunk->line_cap); + } + + // rjf: need new line -> push + if(need_new_line) + { + U64 chunk_line_idx = chunk->line_count; + chunk->voffs[chunk_line_idx] = vm_regs.address - base_vaddr; + chunk->line_nums[chunk_line_idx] = (U32)vm_regs.line; + chunk->col_nums[chunk_line_idx] = (U16)vm_regs.column; + chunk->line_count += 1; + total_line_seq_count += 1; + line_seq_src_file = src_file; + // NOTE(rjf): use for comparing against llvm-dwarfdump --debug-line +#if 0 + printf("0x%016I64x %6i %6i %6i %3i %13I64x %7i %s%s%s%s\n", + vm_regs.address, + (int)vm_regs.line, + (int)vm_regs.column, + (int)vm_regs.file_index, + (int)vm_regs.isa, + vm_regs.discriminator, + (int)vm_regs.vliw_op_index, + vm_regs.is_stmt ? " is_stmt" : "", + vm_regs.prologue_end ? " prologue_end" : "", + vm_regs.epilogue_begin ? " epilogue_begin" : "", + vm_regs.end_sequence ? " end_sequence" : ""); +#endif + } + vm_regs.discriminator = 0; + vm_regs.basic_block = 0; + vm_regs.prologue_end = 0; + vm_regs.epilogue_begin = 0; + } + } + + scratch_end(scratch2); + } + lane_sync(); + + //- rjf: equip source files with their fragments + // + // TODO(rjf): this can *almost* be wide, but we are relying on a few top-level + // summations inside the RDIM_SrcFileChunkList when we push a sequence to a src + // file. if we just summed those later when baking (probably fine), then this + // could go wide across all src files, which would be very nice. just lane-0ing + // for now. when possible, we can probably do the same thing in PDB too. + // + if(lane_idx() == 0) + { + for EachIndex(unit_idx, unit_count) + { + FileSeqMap *file_seq_map = &unit_file_seq_maps[unit_idx]; + for EachIndex(slot_idx, file_seq_map->slots_count) + { + for(FileSeqNode *n = file_seq_map->slots[slot_idx]; n != 0; n = n->next) + { + for(RDIM_SrcFileLineMapFragment *f = n->first_line_map_fragment; f != 0; f = f->next) + { + rdim_src_file_push_line_sequence(arena, all_src_files, n->src_file, f->seq); + } + } + } + } + } + lane_sync(); + } + + //////////////////////////// + //- rjf: join all line tables + // + RDIM_LineTableChunkList *all_line_tables = 0; + if(lane_idx() == 0) + { + all_line_tables = push_array(scratch.arena, RDIM_LineTableChunkList, 1); + for EachIndex(unit_idx, unit_count) + { + rdim_line_table_chunk_list_concat_in_place(all_line_tables, &unit_line_table_chunk_lists[unit_idx]); + } + } + lane_sync_u64(&all_line_tables, 0); + + //////////////////////////// + //- rjf: find all offsets of top-level tag trees across all units + // + U64Array *unit_info_root_tag_offs = 0; + U64 *unit_tag_counts__first_pass = 0; // only includes roots + any descendants of roots who *don't* have a 'sibling' attribute + U64 total_root_tag_count = 0; + U64 *total_root_tag_count_ptr = &total_root_tag_count; + lane_sync_u64(&total_root_tag_count_ptr, 0); + ProfScope("find all offsets of top-level tag trees across all units") + { + if(lane_idx() == 0) + { + unit_info_root_tag_offs = push_array(scratch.arena, U64Array, unit_count); + unit_tag_counts__first_pass = push_array(scratch.arena, U64, unit_count); + } + lane_sync_u64(&unit_info_root_tag_offs, 0); + lane_sync_u64(&unit_tag_counts__first_pass, 0); + typedef struct D2R_UnitTagTreeOffChunkNode D2R_UnitTagTreeOffChunkNode; + struct D2R_UnitTagTreeOffChunkNode + { + D2R_UnitTagTreeOffChunkNode *next; + U64 *v; + U64 count; + U64 cap; + }; + typedef struct D2R_UnitTagTreeOffChunkList D2R_UnitTagTreeOffChunkList; + struct D2R_UnitTagTreeOffChunkList + { + D2R_UnitTagTreeOffChunkNode *first; + D2R_UnitTagTreeOffChunkNode *last; + U64 chunk_count; + U64 total_count; + }; + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + //- rjf: take the next unit + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr)-1; + if(unit_idx >= unit_count) + { + break; + } + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + //- rjf: unpack this unit + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + + //- rjf: gather all offsets of root-level trees + D2R_UnitTagTreeOffChunkList tree_offs = {0}; + S64 depth = 0; + for(U64 off = unit_info_tag_range.min; contains_1u64(unit_info_tag_range, off);) + { + U64 start_off = off; + Temp scratch3 = scratch_begin(&scratch2.arena, 1); + + //- rjf: if this next tag is root-level, gather + if(depth == 1) + { + D2R_UnitTagTreeOffChunkNode *chunk = tree_offs.last; + if(chunk == 0 || chunk->count >= chunk->cap) + { + chunk = push_array(scratch2.arena, D2R_UnitTagTreeOffChunkNode, 1); + chunk->cap = 512; + chunk->v = push_array(scratch2.arena, U64, chunk->cap); + SLLQueuePush(tree_offs.first, tree_offs.last, chunk); + tree_offs.chunk_count += 1; + } + chunk->v[chunk->count] = off; + chunk->count += 1; + tree_offs.total_count += 1; + } + + //- rjf: reading the next tag + DW2_Tag tag = {0}; + off += dw2_read_tag(scratch3.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + unit_tag_counts__first_pass[unit_idx] += 1; + + //- rjf: look for sibling attribute fast path + DW2_Attrib *sibling_attrib = dw2_attrib_from_kind(&tag, DW_AttribKind_Sibling); + B32 sibling_encoded = (sibling_attrib != &dw2_attrib_nil); + U64 sibling_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &sibling_attrib->val); + + //- rjf: if we have a sibling link, follow it -> depth stays the same + if(sibling_encoded && sibling_off >= off) + { + off = sibling_off; + } + + //- rjf: otherwise, do tree navigations... + else + { + if(tag.has_children) + { + depth += 1; + } + if(tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + } + + scratch_end(scratch3); + if(off == start_off) + { + break; + } + } + + //- rjf: flatten & store + { + U64Array tree_offs_array = {0}; + tree_offs_array.count = tree_offs.total_count; + tree_offs_array.v = push_array(scratch.arena, U64, tree_offs_array.count); + { + U64 idx = 0; + for EachNode(n, D2R_UnitTagTreeOffChunkNode, tree_offs.first) + { + MemoryCopy(tree_offs_array.v + idx, n->v, sizeof(n->v[0])*n->count); + idx += n->count; + } + } + unit_info_root_tag_offs[unit_idx] = tree_offs_array; + ins_atomic_u64_add_eval(total_root_tag_count_ptr, tree_offs_array.count); + } + + scratch_end(scratch2); + } + lane_sync(); + total_root_tag_count = *total_root_tag_count_ptr; + } + + //////////////////////////// + //- rjf: produce list of (unit * range(root_tag_idx)), so that we can easily + // subdivide work from all units across all lanes + // + typedef struct D2R_SubUnitWork D2R_SubUnitWork; + struct D2R_SubUnitWork + { + U64 unit_idx; + Rng1U64 root_tag_idx_range; + }; + U64 sub_unit_works_count = 0; + D2R_SubUnitWork *sub_unit_works = 0; + ProfScope("produce sub-unit work division") if(lane_idx() == 0) + { + for(B32 build = 0; build <= 1; build += 1) + { + U64 sub_unit_work_idx = 0; + for EachIndex(unit_idx, unit_count) + { + U64 root_tags_in_this_unit = unit_info_root_tag_offs[unit_idx].count; + U64 root_tags_per_work = (root_tags_in_this_unit + lane_count()-1) / lane_count(); + U64 works_per_this_unit = (root_tags_in_this_unit+root_tags_per_work-1) / root_tags_per_work; + if(build) + { + D2R_SubUnitWork *works = sub_unit_works + sub_unit_work_idx; + U64 works_count = works_per_this_unit; + U64 root_tag_idx = 0; + for EachIndex(work_idx, works_count) + { + U64 root_tag_idx_opl = root_tag_idx + root_tags_per_work; + root_tag_idx_opl = ClampTop(root_tag_idx_opl, root_tags_in_this_unit); + works[work_idx].unit_idx = unit_idx; + works[work_idx].root_tag_idx_range = r1u64(root_tag_idx, root_tag_idx_opl); + root_tag_idx = root_tag_idx_opl; + } + } + sub_unit_work_idx += works_per_this_unit; + } + if(!build) + { + sub_unit_works_count = sub_unit_work_idx; + sub_unit_works = push_array(scratch.arena, D2R_SubUnitWork, sub_unit_works_count); + } + } + } + lane_sync_u64(&sub_unit_works_count, 0); + lane_sync_u64(&sub_unit_works, 0); + + //////////////////////////// + //- rjf: predict the total number of tags in all units + // + U64 total_tag_count_estimate = 1; + { + U64 tag_size_estimate = 32; + for EachIndex(unit_idx, unit_count) + { + total_tag_count_estimate += dim_1u64(unit_info_tag_ranges[unit_idx]) / tag_size_estimate; + } + } + + //////////////////////////// + //- rjf: hash all tags / attributes related to type info in all works, + // for combining into type content hashes later. type content hashes + // require combining a tree of several tag hashes - this just does the + // tag hash portion. + // + // record into (off -> hash) map. + // + U64 tag_hash_slots_count = total_tag_count_estimate/2 + 1; + D2R_TagHashNode **tag_hash_slots = 0; + if(lane_idx() == 0) + { + tag_hash_slots = push_array(scratch.arena, D2R_TagHashNode *, tag_hash_slots_count); + } + lane_sync_u64(&tag_hash_slots, 0); + ProfScope("hash all tags / attributes related to type info in all works, for combining into type content hashes later") + { + U64 work_take_idx_ = 0; + U64 *work_take_idx_ptr = &work_take_idx_; + lane_sync_u64(&work_take_idx_ptr, 0); + for(;;) + { + //- rjf: take next work + U64 work_idx = ins_atomic_u64_inc_eval(work_take_idx_ptr) - 1; + if(work_idx >= sub_unit_works_count) + { + break; + } + ProfBegin("hash work"); + + //- rjf: unpack work + U64 unit_idx = sub_unit_works[work_idx].unit_idx; + Rng1U64 unit_root_tag_idx_range = sub_unit_works[work_idx].root_tag_idx_range; + + //- rjf: unpack unit info + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + + //- rjf: hash all relevant tags + for(U64 root_tag_idx = unit_root_tag_idx_range.min; + root_tag_idx < unit_root_tag_idx_range.max; + root_tag_idx += 1) + { + typedef struct D2R_ParentTagNode D2R_ParentTagNode; + struct D2R_ParentTagNode + { + D2R_ParentTagNode *next; + U64 container_ancestor_info_off; + U64 hash_seed; + }; + D2R_ParentTagNode *top_parent = 0; + D2R_ParentTagNode *free_parent = 0; + U64 root_tag_start_off = unit_info_root_tag_offs[unit_idx].v[root_tag_idx]; + S64 depth = 0; + for(U64 off = root_tag_start_off; contains_1u64(unit_info_tag_range, off) && (depth > 0 || off == root_tag_start_off);) + { + Temp tag_scratch = scratch_begin(&scratch.arena, 1); + U64 start_off = off; + + // rjf: read tag + DW2_Tag tag = {0}; + off += dw2_read_tag(tag_scratch.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + + // rjf: determine if we need this tag's hash + B32 need_tag_hash = (tag.kind == DW_TagKind_ArrayType || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_EnumerationType || + tag.kind == DW_TagKind_PointerType || + tag.kind == DW_TagKind_ReferenceType || + tag.kind == DW_TagKind_StringType || + tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_SubroutineType || + tag.kind == DW_TagKind_SubProgram || + tag.kind == DW_TagKind_Typedef || + tag.kind == DW_TagKind_UnionType || + tag.kind == DW_TagKind_PtrToMemberType || + tag.kind == DW_TagKind_SetType || + tag.kind == DW_TagKind_BaseType || + tag.kind == DW_TagKind_ConstType || + tag.kind == DW_TagKind_FileType || + tag.kind == DW_TagKind_PackedType || + tag.kind == DW_TagKind_VolatileType || + tag.kind == DW_TagKind_RestrictType || + tag.kind == DW_TagKind_InterfaceType || + tag.kind == DW_TagKind_UnspecifiedType || + tag.kind == DW_TagKind_SharedType || + tag.kind == DW_TagKind_RValueReferenceType || + tag.kind == DW_TagKind_CoarrayType || + tag.kind == DW_TagKind_DynamicType || + tag.kind == DW_TagKind_AtomicType || + tag.kind == DW_TagKind_ImmutableType || + tag.kind == DW_TagKind_Member || + tag.kind == DW_TagKind_FormalParameter || + tag.kind == DW_TagKind_Namespace); + + // rjf: get top hash seed + U64 hash_seed = top_parent ? top_parent->hash_seed : 0; + + // rjf: hash <:= tag kind + U64 hash = hash_seed; + if(need_tag_hash) + { + hash = u64_hash_from_seed_str8(hash, str8_struct(&tag.kind)); + } + + // rjf: hash <:= non-reference attributes, + if(need_tag_hash) for(DW2_AttribNode *n = tag.attribs.first; n != 0; n = n->next) + { + B32 is_name = (n->v.attrib_kind == DW_AttribKind_Name); + if(((tag.kind != DW_TagKind_SubProgram && tag.kind != DW_TagKind_FormalParameter) || !is_name) && + n->v.val.kind != DW_FormKind_RefAddr && + n->v.val.kind != DW_FormKind_Ref1 && + n->v.val.kind != DW_FormKind_Ref2 && + n->v.val.kind != DW_FormKind_Ref4 && + n->v.val.kind != DW_FormKind_Ref8 && + n->v.val.kind != DW_FormKind_RefUData && + n->v.val.kind != DW_FormKind_RefSup4 && + n->v.val.kind != DW_FormKind_RefSig8 && + ((tag.kind != DW_TagKind_SubProgram && + tag.kind != DW_TagKind_FormalParameter) || + (n->v.attrib_kind != DW_AttribKind_Name && + n->v.attrib_kind != DW_AttribKind_DeclFile && + n->v.attrib_kind != DW_AttribKind_DeclLine && + n->v.attrib_kind != DW_AttribKind_Prototyped && + n->v.attrib_kind != DW_AttribKind_External && + n->v.attrib_kind != DW_AttribKind_FrameBase && + n->v.attrib_kind != DW_AttribKind_Location && + n->v.attrib_kind != DW_AttribKind_LowPc && + n->v.attrib_kind != DW_AttribKind_HighPc))) + { + hash = u64_hash_from_seed_str8(hash, str8_struct(&n->v.val.kind)); + if(n->v.val.string.size != 0) + { + hash = u64_hash_from_seed_str8(hash, n->v.val.string); + } + else if(n->v.val.addr != 0) + { + hash = u64_hash_from_seed_str8(hash, str8_struct(&n->v.val.addr)); + } + else + { + hash = u64_hash_from_seed_str8(hash, str8_struct(&n->v.val.u128)); + } + } + } + + // rjf: store + if(need_tag_hash) + { + U64 off_hash = u64_hash_from_str8(str8_struct(&start_off)); + U64 slot_idx = off_hash%tag_hash_slots_count; + D2R_TagHashNode *n = push_array(scratch.arena, D2R_TagHashNode, 1); + n->info_off = start_off; + n->hash = hash; + for(B32 inserted = 0; !inserted;) + { + U64 slot_head_val = (U64)ins_atomic_u64_eval(&tag_hash_slots[slot_idx]); + n->next = (D2R_TagHashNode *)slot_head_val; + if(slot_head_val == ins_atomic_u64_eval_cond_assign(&tag_hash_slots[slot_idx], (U64)n, slot_head_val)) + { + inserted = 1; + } + } + } + + // rjf: push parents + if(tag.has_children) + { + // rjf: increase depth + depth += 1; + + // rjf: determine hash seed - only add new hash seeds for namespaces + U64 n_hash_seed = hash_seed; + if(tag.kind == DW_TagKind_Namespace || + tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_UnionType) + { + n_hash_seed = hash; + } + + // rjf: determine container ancestor info off + U64 container_ancestor_info_off = top_parent ? top_parent->container_ancestor_info_off : 0; + if(tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_UnionType || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_SubProgram || + tag.kind == DW_TagKind_LexicalBlock || + tag.kind == DW_TagKind_Namespace) + { + container_ancestor_info_off = start_off; + } + + // rjf: push node for this parent + D2R_ParentTagNode *n = free_parent; + if(n != 0) + { + SLLStackPop(free_parent); + } + else + { + n = push_array_no_zero(scratch.arena, D2R_ParentTagNode, 1); + } + MemoryZeroStruct(n); + SLLStackPush(top_parent, n); + n->hash_seed = n_hash_seed; + n->container_ancestor_info_off = container_ancestor_info_off; + } + + // rjf: pop parents + if(tag.kind == DW_TagKind_Null) + { + // rjf: decrease depth + depth -= 1; + + // rjf: pop + if(top_parent != 0) + { + D2R_ParentTagNode *popped = top_parent; + SLLStackPop(top_parent); + SLLStackPush(free_parent, popped); + } + } + + scratch_end(tag_scratch); + if(off == start_off) + { + break; + } + } + } + + ProfEnd(); + } + lane_sync(); + } + + //////////////////////////// + //- rjf: gather all unique, to-be-deduplicated tags across all units (types, namespaces) + // + D2R_UniqueTagNode **unique_tag_slots = 0; + U64 unique_tag_slots_count = total_tag_count_estimate/8 + 1; + D2R_UnitDedupedTagMap *unit_deduped_tag_maps = 0; + ProfScope("gather all unique, to-be-deduplicated tags across all units (types, namespaces)") + { + //- rjf: set up tables + if(lane_idx() == 0) + { + unique_tag_slots = push_array(scratch.arena, D2R_UniqueTagNode *, unique_tag_slots_count); + unit_deduped_tag_maps = push_array(scratch.arena, D2R_UnitDedupedTagMap, unit_count); + } + lane_sync_u64(&unique_tag_slots, 0); + lane_sync_u64(&unit_deduped_tag_maps, 0); + + //- rjf: set up per-unit deduplicated tag maps + { + Rng1U64 range = lane_range(unit_count); + for EachInRange(unit_idx, range) + { + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + unit_deduped_tag_maps[unit_idx].slots_count = dim_1u64(unit_info_tag_range) / 32 + 1; + unit_deduped_tag_maps[unit_idx].slots = push_array(scratch.arena, D2R_UnitDedupedTagNode *, unit_deduped_tag_maps[unit_idx].slots_count); + } + lane_sync(); + } + + //- rjf: gather unique tags + { + U64 work_take_idx_ = 0; + U64 *work_take_idx_ptr = &work_take_idx_; + lane_sync_u64(&work_take_idx_ptr, 0); + for(;;) + { + //- rjf: take next work + U64 work_idx = ins_atomic_u64_inc_eval(work_take_idx_ptr) - 1; + if(work_idx >= sub_unit_works_count) + { + break; + } + ProfBegin("gather unique tags work"); + Temp work_scratch = scratch_begin(&scratch.arena, 1); + + //- rjf: unpack work + U64 origin_unit_idx = sub_unit_works[work_idx].unit_idx; + Rng1U64 origin_unit_root_tag_idx_range = sub_unit_works[work_idx].root_tag_idx_range; + + //- rjf: unpack unit info + DW2_ParseCtx *origin_unit_parse_ctx = &unit_parse_ctxs[origin_unit_idx]; + Rng1U64 origin_unit_info_tag_range = unit_info_tag_ranges[origin_unit_idx]; + + //- rjf: gather all tags which we want to deduplicate in this work + typedef struct D2R_TagNode D2R_TagNode; + struct D2R_TagNode + { + D2R_TagNode *next; + U64 info_off; + }; + U64 tags_to_dedup_count = 0; + D2R_TagNode *first_tag_to_dedup = 0; + D2R_TagNode *last_tag_to_dedup = 0; + for(U64 root_tag_idx = origin_unit_root_tag_idx_range.min; + root_tag_idx < origin_unit_root_tag_idx_range.max; + root_tag_idx += 1) + { + U64 root_tag_start_off = unit_info_root_tag_offs[origin_unit_idx].v[root_tag_idx]; + typedef struct D2R_ParentTagNode D2R_ParentTagNode; + struct D2R_ParentTagNode + { + D2R_ParentTagNode *next; + DW_TagKind tag_kind; + U64 info_off; + U64 hash_seed; + B32 disable_dedup; + }; + D2R_ParentTagNode *top_parent = 0; + D2R_ParentTagNode *free_parent = 0; + S64 depth = 0; + for(U64 off = root_tag_start_off; contains_1u64(origin_unit_info_tag_range, off) && (depth > 0 || off == root_tag_start_off);) + { + Temp tag_scratch = scratch_begin(&work_scratch.arena, 1); + U64 start_off = off; + + // rjf: read tag + DW2_Tag tag = {0}; + off += dw2_read_tag(tag_scratch.arena, raw, origin_unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + + // rjf: look for sibling attribute fast path + DW2_Attrib *sibling_attrib = dw2_attrib_from_kind(&tag, DW_AttribKind_Sibling); + B32 sibling_encoded = (sibling_attrib != &dw2_attrib_nil); + U64 sibling_off = dw2_reference_info_off_from_form_val(origin_unit_parse_ctx, &sibling_attrib->val); + + // rjf: determine if we'll deduplicate children of this tag + // + // three possible cases: + // + // (1) namespaced by a function - we do *not* want to deduplicate. + // functions are not deduplicated, and even if types defined + // within many functions match structurally, we consider them + // unique, given that they have different definition sites & + // names (fully qualified) still. (technically, if two UDTs + // match structurally, we could even dedup members - so two + // UDT records, w/ different decl sites/names/etc., but point + // at the same members) + // + // (2) namespaced by a type - we *do* want to deduplicate. the + // root-level type will be deduplicated, but children are + // fragmentary - see (3). + // + // (3) namespaced by a namespace - we *do* want to deduplicate. the + // children of a namespace are functionally top-level, and even + // if the same namespace definition is used across units, the + // debug info for each unit will contain fragmentary parts of it, + // since presumably unused pieces of the namespace will be stripped. + // thus, we need to visit namespace children as if they're top-level. + // + B32 children_should_be_deduped = 0; + if(tag.kind == DW_TagKind_Namespace || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_UnionType) + { + children_should_be_deduped = 1; + } + + // rjf: is this one of the tags we'd like to dedup? -> gather + if((top_parent == 0 || !top_parent->disable_dedup) && + (tag.kind == DW_TagKind_ArrayType || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_EnumerationType || + tag.kind == DW_TagKind_PointerType || + tag.kind == DW_TagKind_ReferenceType || + tag.kind == DW_TagKind_StringType || + tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_SubroutineType || + tag.kind == DW_TagKind_SubProgram || + tag.kind == DW_TagKind_Typedef || + tag.kind == DW_TagKind_UnionType || + tag.kind == DW_TagKind_PtrToMemberType || + tag.kind == DW_TagKind_SetType || + tag.kind == DW_TagKind_BaseType || + tag.kind == DW_TagKind_ConstType || + tag.kind == DW_TagKind_FileType || + tag.kind == DW_TagKind_PackedType || + tag.kind == DW_TagKind_VolatileType || + tag.kind == DW_TagKind_RestrictType || + tag.kind == DW_TagKind_InterfaceType || + tag.kind == DW_TagKind_UnspecifiedType || + tag.kind == DW_TagKind_SharedType || + tag.kind == DW_TagKind_RValueReferenceType || + tag.kind == DW_TagKind_CoarrayType || + tag.kind == DW_TagKind_DynamicType || + tag.kind == DW_TagKind_AtomicType || + tag.kind == DW_TagKind_ImmutableType || + tag.kind == DW_TagKind_Namespace)) + { + D2R_TagNode *n = push_array(work_scratch.arena, D2R_TagNode, 1); + n->info_off = start_off; + SLLQueuePush(first_tag_to_dedup, last_tag_to_dedup, n); + tags_to_dedup_count += 1; + } + + // rjf: compute hash seed for this tag + U64 hash_seed = (top_parent ? top_parent->hash_seed : 0); + if(tag.kind == DW_TagKind_SubProgram || + tag.kind == DW_TagKind_StructureType || + tag.kind == DW_TagKind_UnionType || + tag.kind == DW_TagKind_ClassType || + tag.kind == DW_TagKind_Namespace) + { + DW2_Attrib *name_attrib = dw2_attrib_from_kind(&tag, DW_AttribKind_Name); + if(name_attrib != &dw2_attrib_nil) + { + hash_seed = u64_hash_from_str8(name_attrib->val.string); } } - RDIM_SrcFile *src_file = src_file_map[file_index]; - RDIM_LineSequence *line_seq = rdim_line_table_push_sequence(arena, &line_tables, cu_line_tables_rdi[cu_idx], src_file, file_voffs, file_line_nums, file_col_nums, lines_written); - rdim_src_file_push_line_sequence(arena, &src_files, src_file, line_seq); + // rjf: if we have a sibling offset encoded, and if we do not need to dedup children, + // then skip + if(!children_should_be_deduped && sibling_encoded && sibling_off >= off) + { + off = sibling_off; + } - file_line_count = 1; - } else { - file_line_count += 1; + // rjf: otherwise, update depth / parent stack + else + { + if(tag.has_children) + { + depth += 1; + D2R_ParentTagNode *n = free_parent; + if(n != 0) + { + SLLStackPop(free_parent); + } + else + { + n = push_array(work_scratch.arena, D2R_ParentTagNode, 1); + } + SLLStackPush(top_parent, n); + n->tag_kind = tag.kind; + n->info_off = start_off; + n->hash_seed = hash_seed; + n->disable_dedup = !children_should_be_deduped; + } + if(tag.kind == DW_TagKind_Null) + { + depth -= 1; + depth = Max(0, depth); + if(top_parent != 0) + { + D2R_ParentTagNode *popped = top_parent; + SLLStackPop(top_parent); + SLLStackPush(free_parent, popped); + } + } + } + + scratch_end(tag_scratch); + if(off == start_off) + { + break; + } } } - // handle last line - if (file_line_n) { - U64 file_index = file_line_n->v.file_index; - U64 *file_voffs = &voffs[line_idx]; - U32 *file_line_nums = &line_nums[line_idx]; - U16 *file_col_nums = 0; + //- rjf: produce tree hash for all tags we need to deduplicate & gather + // + // the tree hash is formed by combining the tag hashes for all dependency tags + // + U64 total_tag_count_this_work = 0; + for(D2R_TagNode *tag_n = first_tag_to_dedup; tag_n != 0; tag_n = tag_n->next) + { + Temp dedup_root_scratch = scratch_begin(&scratch.arena, 1); - for (; file_line_n != 0; file_line_n = file_line_n->next, line_idx += 1) { - // TODO: error handling - AssertAlways(file_line_n->v.address >= image_base); - voffs[line_idx] = file_line_n->v.address - image_base; - line_nums[line_idx] = file_line_n->v.line; + //- rjf: unpack tag node + U64 start_off = tag_n->info_off; + + //- rjf: compute tree hash + U64 hash = 0; + D2R_UniqueTagKind unique_tag_kind = D2R_UniqueTagKind_Type; + U64 container_ancestor_info_off = 0; + U64 dependency_count = 0; + { + typedef struct TagTask TagTask; + struct TagTask + { + TagTask *next; + DW_TagKind root_tag_kind; + U64 container_ancestor_info_off; + U64 dependency_count; + U64 unit_idx; + U64 start_off; + U64 off; + S64 depth; + U64 hash; + }; + TagTask start_task = {0, DW_TagKind_Null, 0, 0, origin_unit_idx, start_off, start_off, 0}; + TagTask *top_task = &start_task; + TagTask *free_task = 0; + for(;top_task != 0;) + { + //- rjf: try to find an already-computed hash for this task + U64 already_computed_hash = 0; + B32 found_already_computed_hash = 0; + { + U64 off_hash = u64_hash_from_str8(str8_struct(&top_task->start_off)); + U64 off_slot_idx = off_hash%unit_deduped_tag_maps[top_task->unit_idx].slots_count; + D2R_UnitDedupedTagNode *slot_head = (D2R_UnitDedupedTagNode *)ins_atomic_u64_eval(&unit_deduped_tag_maps[top_task->unit_idx].slots[off_slot_idx]); + for(D2R_UnitDedupedTagNode *n = slot_head; n != 0; n = n->next) + { + if(n->src_info_off == top_task->start_off) + { + found_already_computed_hash = 1; + already_computed_hash = n->dst_hash; + break; + } + } + } + + //- rjf: if we found an already-computed hash, just write it into this task as its result + if(found_already_computed_hash) + { + top_task->hash = already_computed_hash; + } + + //- rjf: determine if we're done with this hash + B32 done = (found_already_computed_hash || (top_task->depth == 0 && top_task->start_off != top_task->off)); + + //- rjf: if we're not done -> continue contributing to the task's hash + if(!done) + { + Temp tag_scratch = scratch_begin(&dedup_root_scratch.arena, 1); + + // rjf: unpack unit + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[top_task->unit_idx]; + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[top_task->unit_idx]; + + // rjf: read next tag + DW2_Tag tag = {0}; + U64 start_off = top_task->off; + top_task->off += dw2_read_tag(tag_scratch.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, top_task->off, &tag); + + // rjf: determine whether or not to include this tag + B32 include_tag_in_hash = 1; + if(top_task->depth > 0) + { + if(top_task->root_tag_kind == DW_TagKind_SubProgram) + { + include_tag_in_hash = (tag.kind == DW_TagKind_FormalParameter); + } + else if(top_task->root_tag_kind == DW_TagKind_StructureType || + top_task->root_tag_kind == DW_TagKind_ClassType || + top_task->root_tag_kind == DW_TagKind_UnionType) + { + include_tag_in_hash = (tag.kind == DW_TagKind_Member); + } + } + + // rjf: look up this tag's hash / ancestor + U64 tag_hash = 0; + U64 container_ancestor_info_off = 0; + if(include_tag_in_hash) + { + U64 hash = u64_hash_from_str8(str8_struct(&start_off)); + U64 slot_idx = hash%tag_hash_slots_count; + for(D2R_TagHashNode *n = tag_hash_slots[slot_idx]; n != 0; n = n->next) + { + if(n->info_off == start_off) + { + tag_hash = n->hash; + container_ancestor_info_off = n->container_ancestor_info_off; + break; + } + } + } + + // rjf: remember root tag info + if(start_off == top_task->start_off) + { + top_task->root_tag_kind = tag.kind; + top_task->container_ancestor_info_off = container_ancestor_info_off; + } + + // rjf: combine tag's hash to tree hash + if(include_tag_in_hash) + { + top_task->hash = u64_hash_from_seed_str8(top_task->hash, str8_struct(&tag_hash)); + } + + // rjf: determine if we want to descend to children + B32 descend = (top_task->root_tag_kind != DW_TagKind_Namespace); + + // rjf: tree navigations + if(descend) + { + if(tag.has_children) + { + top_task->depth += 1; + } + if(tag.kind == DW_TagKind_Null) + { + top_task->depth -= 1; + } + } + + // rjf: unpack type reference in this tag + DW2_Attrib *type_attrib = &dw2_attrib_nil; + U64 type_info_off = 0; + if(include_tag_in_hash && + tag.kind != DW_TagKind_PointerType && + tag.kind != DW_TagKind_ReferenceType && + tag.kind != DW_TagKind_RValueReferenceType && + tag.kind != DW_TagKind_PtrToMemberType) + { + type_attrib = dw2_attrib_from_kind(&tag, DW_AttribKind_Type); + type_info_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &type_attrib->val); + } + + // rjf: if this type reference is recursive, just merge an ancestor identifier into the hash + B32 type_ref_is_recursive = 0; + if(type_info_off != 0) + { + U64 ancestor_idx = 0; + for(TagTask *t = top_task; t != 0; t = t->next, ancestor_idx += 1) + { + if(t->start_off == type_info_off) + { + type_ref_is_recursive = 1; + top_task->hash = u64_hash_from_seed_str8(top_task->hash, str8_struct(&ancestor_idx)); + break; + } + } + } + + // rjf: if this tag has a non-recursive type reference -> push a new task to hash the type. + if(!type_ref_is_recursive && type_info_off != 0) + { + top_task->dependency_count += 1; + U64 unit_idx = top_task->unit_idx; + if(!contains_1u64(unit_info_tag_range, type_info_off)) + { + U64 new_unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, type_info_off); + if(0 < new_unit_num && new_unit_num <= unit_count) + { + unit_idx = new_unit_num-1; + } + } + TagTask *task = free_task; + if(task != 0) + { + SLLStackPop(free_task); + } + else + { + task = push_array_no_zero(dedup_root_scratch.arena, TagTask, 1); + } + MemoryZeroStruct(task); + SLLStackPush(top_task, task); + task->unit_idx = unit_idx; + task->start_off = task->off = type_info_off; + } + + scratch_end(tag_scratch); + } + + //- rjf: if we're done, and if we computed the hash on this lane -> record in the per-unit (offset -> hash) table + if(done && !found_already_computed_hash) + { + U64 info_off_hash = u64_hash_from_str8(str8_struct(&top_task->start_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_maps[top_task->unit_idx].slots_count; + D2R_UnitDedupedTagNode *n = push_array(scratch.arena, D2R_UnitDedupedTagNode, 1); + n->src_info_off = top_task->start_off; + n->dst_hash = top_task->hash; + for(B32 inserted = 0; !inserted;) + { + U64 slot_head_val = ins_atomic_u64_eval(&unit_deduped_tag_maps[origin_unit_idx].slots[info_off_slot_idx]); + n->next = (D2R_UnitDedupedTagNode *)slot_head_val; + if(slot_head_val == ins_atomic_u64_eval_cond_assign(&unit_deduped_tag_maps[origin_unit_idx].slots[info_off_slot_idx], (U64)n, slot_head_val)) + { + inserted = 1; + } + } + } + + //- rjf: if we're done -> pop this task off the stack, merge into parent task + if(done && top_task != 0) + { + TagTask *popped = top_task; + SLLStackPop(top_task); + SLLStackPush(free_task, popped); + if(top_task != 0) + { + top_task->hash = u64_hash_from_seed_str8(top_task->hash, str8_struct(&popped->hash)); + top_task->dependency_count += popped->dependency_count; + } + } + } + hash = start_task.hash; + unique_tag_kind = (start_task.root_tag_kind == DW_TagKind_Namespace ? D2R_UniqueTagKind_Namespace : D2R_UniqueTagKind_Type); + container_ancestor_info_off = start_task.container_ancestor_info_off; + dependency_count = start_task.dependency_count; } - RDIM_SrcFile *src_file = src_file_map[file_index]; - RDIM_LineSequence *line_seq = rdim_line_table_push_sequence(arena, &line_tables, cu_line_tables_rdi[cu_idx], src_file, file_voffs, file_line_nums, file_col_nums, file_line_count); - rdim_src_file_push_line_sequence(arena, &src_files, src_file, line_seq); + //- rjf: record this in the (hash -> offset) deduplicated table + { + B32 gathered = 0; + U64 slot_idx = hash%unique_tag_slots_count; + for(;!gathered;) + { + // rjf: read existing slot head pointer *before* we lookup / insert + U64 slot_head_val = (U64)ins_atomic_u64_eval(&unique_tag_slots[slot_idx]); + + // rjf: determine if this hash has been gathered + D2R_UniqueTagNode *already_gathered_node = 0; + for(D2R_UniqueTagNode *n = (D2R_UniqueTagNode *)slot_head_val; n != 0; n = n->next) + { + if(n->hash == hash) + { + gathered = 1; + already_gathered_node = n; + break; + } + } + + // rjf: if this hash *has* been gathered, we want to prefer a + // deterministic unit/info offset - so we'll just prefer the + // lowest unit/offset. + // + // TODO(rjf): this seems to only be necessary because of a flaw + // in the deduplicator logic (without this part). in theory, if we + // trust the hash (all experiments suggested that we should - e.g. + // no hash collisions w/ different data were observed), then the + // same hash should imply an identical type graph. this may be false + // for reasons I do not currently understand, or due to a mistake + // somewhere. but for now, I've added this, to ensure that when there + // are many type tag trees which map to an identical hash, we always + // parse the one from the lowest .debug_info offset, just to make + // sure it's deterministic. in a multi-threaded conversion, this + // is not true in general without this step; one thread which finds + // the same type with a higher .debug_info offset may win, and so + // where exactly one type hash is parsed is not deterministic. but, + // the theory is, that shouldn't matter - the type graphs should + // match nonetheless. in any case, if that turns out to be a broken + // theory, this should be a relatively cheap step to guarantee + // deterministic (hash -> .debug_info offset), which is likely a + // desirable property regardless. but I wanted to leave this here + // so that I can more closely verify what is going on later. + // + if(gathered && already_gathered_node != 0) + { + B32 minimized = 0; + for(;!minimized;) + { + U64 stored_info_off = ins_atomic_u64_eval(&already_gathered_node->info_off); + if(start_off < stored_info_off) + { + if(ins_atomic_u64_eval_cond_assign(&already_gathered_node->info_off, start_off, stored_info_off) == stored_info_off) + { + minimized = 1; + } + } + else + { + minimized = 1; + } + } + } + + // rjf: if this hash has *not* been gathered, try an insert. we: + // + // 1. allocate/fill a node + // 2. set it up to point to the old head + // 3. compare/exchange the old head with the new head - IFF the head matches what we expect from above + // 4. if we fail, another thread has touched this slot, we pop the allocated node & try again + // (we may find that another thread has filled this hash, so we'll just be done) + // + if(!gathered) + { + Temp insert_temp = temp_begin(scratch.arena); + D2R_UniqueTagNode *n = push_array(scratch.arena, D2R_UniqueTagNode, 1); + n->next = (D2R_UniqueTagNode *)slot_head_val; + n->kind = unique_tag_kind; + n->hash = hash; + n->info_off = start_off; + n->container_ancestor_info_off = container_ancestor_info_off; + n->dependency_count = dependency_count; + U64 new_head_val = (U64)n; + if(slot_head_val == ins_atomic_u64_eval_cond_assign(&unique_tag_slots[slot_idx], new_head_val, slot_head_val)) + { + gathered = 1; + } + else + { + temp_end(insert_temp); + } + } + } + } + + scratch_end(dedup_root_scratch); } - - //Assert(line_idx == line_seq->count); + // ProfMsg("work_idx %I64u: %I64u tags encountered", work_idx, total_tag_count_this_work); + ProfEnd(); + scratch_end(work_scratch); } + lane_sync(); } - ProfEnd(); - - //////////////////////////////// - - RDIM_Type *builtin_types[RDI_TypeKind_Count] = {0}; - for (RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; type_kind <= RDI_TypeKind_LastBuiltIn; type_kind += 1) { - RDIM_Type *type = rdim_type_chunk_list_push(arena, &types, TYPE_CHUNK_CAP); - type->kind = type_kind; - type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); - type->byte_size = rdi_size_from_basic_type_kind(type_kind); - builtin_types[type_kind] = type; - } - builtin_types[RDI_TypeKind_Void]->byte_size = arch_addr_size; - builtin_types[RDI_TypeKind_Handle]->byte_size = arch_addr_size; - - builtin_types[RDI_TypeKind_Variadic] = rdim_type_chunk_list_push(arena, &types, TYPE_CHUNK_CAP); - builtin_types[RDI_TypeKind_Variadic]->kind = RDI_TypeKind_Variadic; - - //////////////////////////////// - - ProfBegin("Convert Units"); - for EachIndex(cu_idx, cu_ranges.count) { - Temp comp_temp = temp_begin(scratch.arena); - - DW_CompUnit *cu = &cu_arr[cu_idx]; - - // parse and build tag tree - DW_TagTree tag_tree = dw_tag_tree_from_cu(comp_temp.arena, &input, cu); - - // skip DWO - { - if (cu->dwo_id) { goto next_cu; } - - String8 dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_DwoName); - if (dwo_name.size) { goto next_cu; } - - String8 gnu_dwo_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_GNU_DwoName); - if (gnu_dwo_name.size) { goto next_cu; } - } - - // build (info offset -> tag) hash table to resolve tags with abstract origin - cu->tag_ht = dw_make_tag_hash_table(comp_temp.arena, tag_tree); - - // extract compile unit info - String8 cu_name = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Name); - String8 cu_dir = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_CompDir); - String8 cu_prod = dw_string_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Producer); - DW_Language cu_lang = dw_const_u64_from_tag_attrib_kind(&input, cu, cu->tag, DW_AttribKind_Language); - - // init type table - D2R_TypeTable *type_table = push_array(comp_temp.arena, D2R_TypeTable, 1); - type_table->ht = hash_table_init(comp_temp.arena, 0x4000); - type_table->types = &types; - type_table->type_chunk_cap = TYPE_CHUNK_CAP; - type_table->builtin_types = builtin_types; - - // convert debug info - d2r_convert_types(arena, type_table, &input, cu, cu_lang, arch_addr_size, tag_tree.root); - d2r_convert_udts(arena, type_table, &input, cu, cu_lang, arch_addr_size, tag_tree.root); - d2r_convert_symbols(arena, type_table, global_scope, &input, cu, cu_lang, arch_addr_size, image_base, arch, tag_tree.root); - - RDIM_Rng1U64ChunkList cu_voff_ranges = {0}; - if (cu_idx < cu_contrib_map.count) { - cu_voff_ranges = d2r_voff_ranges_from_cu_info_off(cu_contrib_map, cu_ranges.v[cu_idx].min); - } else { - Rng1U64List range_list = d2r_range_list_from_tag(scratch.arena, &input, cu, image_base, cu->tag); - for EachNode(n, Rng1U64Node, range_list.first) { - rdim_rng1u64_chunk_list_push(arena, &cu_voff_ranges, 512, (RDIM_Rng1U64){ .min = n->v.min, .max = n->v.max }); - } - } - - // convert compile unit - { - RDIM_Unit *unit = rdim_unit_chunk_list_push(arena, &units, UNIT_CHUNK_CAP); - unit->unit_name = cu_name; - unit->compiler_name = cu_prod; - unit->source_file = str8_zero(); // TODO - unit->object_file = str8_zero(); // TODO - unit->archive_file = str8_zero(); // TODO - unit->build_path = cu_dir; - unit->language = d2r_rdi_language_from_dw_language(cu_lang); - unit->line_table = cu_line_tables_rdi[cu_idx]; - unit->voff_ranges = cu_voff_ranges; - } - - next_cu:; - temp_end(comp_temp); - } - ProfEnd(); } + //////////////////////////// + //- rjf: sort all unique tag table slots + // + ProfScope("sort all unique tag table slots") + { + Rng1U64 range = lane_range(unique_tag_slots_count); + for EachInRange(slot_idx, range) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + D2R_UniqueTagNode **slot = &unique_tag_slots[slot_idx]; + + // rjf: count nodes in this slot + U64 node_count = 0; + for EachNode(n, D2R_UniqueTagNode, slot[0]) + { + node_count += 1; + } + + // rjf: flatten + D2R_UniqueTagNode **slot_nodes_array = push_array(scratch2.arena, D2R_UniqueTagNode *, node_count); + { + U64 idx = 0; + for EachNode(n, D2R_UniqueTagNode, slot[0]) + { + slot_nodes_array[idx] = n; + idx += 1; + } + } + + // rjf: sort + radsort(slot_nodes_array, node_count, (int (*)(void *, void *))d2r_unique_tag_node_is_less_than); + + // rjf: re-order in the slot + { + unique_tag_slots[slot_idx] = 0; + for EachIndex(idx, node_count) + { + SLLStackPush(unique_tag_slots[slot_idx], slot_nodes_array[idx]); + } + } + + scratch_end(scratch2); + } + lane_sync(); + } + + //////////////////////////// + //- rjf: produce [0...n) <-> unique-tag-node mapping for all categories of deduplicated tags + // + U64 *deduped_tag_counts = 0; // [D2R_UniqueTagKind_COUNT] + D2R_UniqueTagNode ***deduped_tag_nodes = 0; // [D2R_UniqueTagKind_COUNT] + ProfScope("produce [0...n) -> hash mapping for all categories of deduplicated tags") if(lane_idx() == 0) + { + deduped_tag_counts = push_array(scratch.arena, U64, D2R_UniqueTagKind_COUNT); + deduped_tag_nodes = push_array(scratch.arena, D2R_UniqueTagNode **, D2R_UniqueTagKind_COUNT); + for EachIndex(slot_idx, unique_tag_slots_count) + { + for EachNode(n, D2R_UniqueTagNode, unique_tag_slots[slot_idx]) + { + deduped_tag_counts[n->kind] += 1; + } + } + for EachEnumVal(D2R_UniqueTagKind, k) + { + deduped_tag_nodes[k] = push_array(scratch.arena, D2R_UniqueTagNode *, deduped_tag_counts[k]); + } + U64 idxs[D2R_UniqueTagKind_COUNT] = {0}; + for EachIndex(slot_idx, unique_tag_slots_count) + { + for EachNode(n, D2R_UniqueTagNode, unique_tag_slots[slot_idx]) + { + deduped_tag_nodes[n->kind][idxs[n->kind]] = n; + n->order_idx = idxs[n->kind]; + idxs[n->kind] += 1; + } + } + } + lane_sync_u64(&deduped_tag_counts, 0); + lane_sync_u64(&deduped_tag_nodes, 0); + U64 type_count = deduped_tag_counts[D2R_UniqueTagKind_Type]; + D2R_UniqueTagNode **type_tag_nodes = deduped_tag_nodes[D2R_UniqueTagKind_Type]; + U64 namespace_count = deduped_tag_counts[D2R_UniqueTagKind_Namespace]; + D2R_UniqueTagNode **namespace_tag_nodes = deduped_tag_nodes[D2R_UniqueTagKind_Namespace]; + + //////////////////////////// + //- rjf: build built-in types + // + RDIM_TypeChunkList *builtin_types = 0; + RDIM_Type **builtin_type_from_kind_map = 0; // [RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn + 1] + U64 builtin_type_count = RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn + 1; + ProfScope("build built-in types") if(lane_idx() == 0) + { + builtin_types = push_array(scratch.arena, RDIM_TypeChunkList, 1); + builtin_type_from_kind_map = push_array(scratch.arena, RDIM_Type *, builtin_type_count); + for(RDI_TypeKind k = RDI_TypeKind_FirstBuiltIn; k <= RDI_TypeKind_LastBuiltIn; k += 1) + { + RDIM_Type *type = rdim_type_chunk_list_push(arena, builtin_types, builtin_type_count); + type->kind = k; + type->name.str = rdi_string_from_type_kind(k, &type->name.size); + type->byte_size = rdi_size_from_basic_type_kind(k); + if(type->byte_size == max_U32) { type->byte_size = byte_size_from_arch(arch); } + builtin_type_from_kind_map[k - RDI_TypeKind_FirstBuiltIn] = type; + } + } + lane_sync_u64(&builtin_types, 0); + lane_sync_u64(&builtin_type_from_kind_map, 0); +#define d2r_type_from_builtin_kind(k) ((RDI_TypeKind_FirstBuiltIn <= (k) && (k) <= RDI_TypeKind_LastBuiltIn) ? builtin_type_from_kind_map[k - RDI_TypeKind_FirstBuiltIn] : builtin_type_from_kind_map[RDI_TypeKind_Void]) + + //////////////////////////// + //- rjf: build all types - build types w/ 1 dependency (leaves) first, then 2, 3, etc., + // to ensure dependencies always travel backwards + // + // NOTE: * DWARF vs RDI Array Type Graph * + // + // For example lets take following decl: + // + // int (*foo[2])[3]; + // + // This compiles to in DWARF: + // + // foo -> DW_TAG_ArrayType -> (A0) DW_TAG_Subrange [2] + // \ + // -> (B0) DW_TAG_PointerType -> (A1) DW_TAG_ArrayType -> DW_TAG_Subrange [3] + // \ + // -> (B1) DW_TAG_BaseType (int) + // + // RDI expects: + // + // foo -> Array[2] -> Pointer -> Array[3] -> int + // + // Note that DWARF forks the graph on DW_TAG_ArrayType to describe array ranges in branch A and + // in branch B describes array type which might be a struct, pointer, base type, or any other type tag. + // However, in RDI we have a simple list of type nodes and to convert we need to append type nodes from + // B to A. + // + RDIM_TypeChunkList *all_types = 0; + RDIM_Type **type_from_idx_map = 0; + ProfScope("build all types") + { + if(lane_idx() == 0) + { + all_types = push_array(scratch.arena, RDIM_TypeChunkList, 1); + type_from_idx_map = push_array(scratch.arena, RDIM_Type *, type_count); + rdim_type_chunk_list_concat_in_place(all_types, builtin_types); + } + lane_sync_u64(&all_types, 0); + lane_sync_u64(&type_from_idx_map, 0); + Rng1U64 range = lane_range(type_count); + U64 max_chain_count = 0; + for(;max_chain_count < max_U64;) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + ProfBegin("types build (chain count <= %I64u)", max_chain_count); + + //- rjf: gather all types in this lane that fit the dependency restriction; + // find this lane's next dependency restriction + U64 next_max_chain_count = max_U64; + RDIM_TypeChunkList lane_types = {0}; + U64 lane_types_chunk_count = 256; + for EachInRange(type_idx, range) + { + // rjf: idx -> type tag node + D2R_UniqueTagNode *type_tag_node = type_tag_nodes[type_idx]; + + // rjf: if this type has a higher chain count than the current, + // but it is lower than our next maximum chain count, collect it, + // so we will hit + // + // if this type has a lower chain count than the current, + // we should've already built it from a previous pass. + // + U64 dependency_count = type_tag_node->dependency_count; + if(dependency_count > max_chain_count) + { + next_max_chain_count = Min(dependency_count, next_max_chain_count); + continue; + } + else if(dependency_count < max_chain_count) + { + continue; + } + Temp temp = temp_begin(scratch2.arena); + + // rjf: unpack type tag node + U64 info_off = type_tag_node->info_off; + U64 unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, info_off); + U64 unit_idx = unit_num > 0 ? unit_num-1 : 0; + + // rjf: unpack unit + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + + // rjf: parse root-level tag + DW2_Tag tag = {0}; + U64 tag_info_size = dw2_read_tag(temp.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, info_off, &tag); + + // rjf: extract common attributes + DW2_Attrib *name_attrib = &dw2_attrib_nil; + DW2_Attrib *direct_type_attrib = &dw2_attrib_nil; + DW2_Attrib *bitsize_attrib = &dw2_attrib_nil; + DW2_Attrib *bytesize_attrib = &dw2_attrib_nil; + DW2_Attrib *encoding_attrib = &dw2_attrib_nil; + DW2_Attrib *decl_attrib = &dw2_attrib_nil; + DW2_Attrib *prototyped_attrib = &dw2_attrib_nil; + // + // TODO(rjf): if a DW_AttribKing_GNU_Vector is found on an DW_TagKind_ArrayType, + // then: @native_vector_support extract byte size from the base type tag + // and convert to U256, U512, S256 and S512 + // + for EachNode(n, DW2_AttribNode, tag.attribs.first) + { + switch(n->v.attrib_kind) + { + default:{}break; +#define Case(dst_name, src_name) case DW_AttribKind_##src_name:{dst_name##_attrib = &n->v;}break + Case(name, Name); + Case(direct_type, Type); + Case(bitsize, BitSize); + Case(bytesize, ByteSize); + Case(encoding, Encoding); + Case(decl, Declaration); +#undef Case + } + } + + // rjf: unpack common attributes + String8 name = name_attrib->val.string; + DW_ATE encoding = encoding_attrib->val.u128.u64[0]; + RDIM_Type *direct_type = d2r_type_from_builtin_kind(RDI_TypeKind_Void); + U64 bitsize = 0; + B32 is_decl = (decl_attrib != &dw2_attrib_nil); + { + // rjf: unpack direct type + if(direct_type_attrib != &dw2_attrib_nil) + { + U64 direct_type_info_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &direct_type_attrib->val); + U64 direct_type_unit_idx = unit_idx; + if(!contains_1u64(unit_info_tag_range, direct_type_info_off)) + { + U64 new_unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, direct_type_info_off); + direct_type_unit_idx = (new_unit_num > 0 ? new_unit_num-1 : unit_idx); + } + D2R_UnitDedupedTagMap *direct_type_unit_type_map = &unit_deduped_tag_maps[direct_type_unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&direct_type_info_off)); + U64 info_off_slot_idx = info_off_hash%direct_type_unit_type_map->slots_count; + U64 direct_type_hash = 0; + for(D2R_UnitDedupedTagNode *n = direct_type_unit_type_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == direct_type_info_off) + { + direct_type_hash = n->dst_hash; + break; + } + } + U64 unique_type_tag_slot_idx = direct_type_hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == direct_type_hash) + { + direct_type = type_from_idx_map[n->order_idx]; + break; + } + } + } + + // rjf: unpack bit/byte sizes + if(bitsize_attrib != &dw2_attrib_nil) + { + bitsize = bitsize_attrib->val.u128.u64[0]; + } + else if(bytesize_attrib != &dw2_attrib_nil) + { + bitsize = bytesize_attrib->val.u128.u64[0]*8; + } + } + + // rjf: convert type + RDIM_Type *dst_type = 0; + RDI_TypeKind rdi_type_kind = RDI_TypeKind_Null; + RDI_TypeModifierFlags rdi_type_modifier_flags = 0; + switch(tag.kind) + { + default:{}break; + case DW_TagKind_ClassType: rdi_type_kind = is_decl ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_Class; goto struct_type; + case DW_TagKind_StructureType: rdi_type_kind = is_decl ? RDI_TypeKind_IncompleteStruct : RDI_TypeKind_Struct; goto struct_type; + case DW_TagKind_UnionType: rdi_type_kind = is_decl ? RDI_TypeKind_IncompleteUnion : RDI_TypeKind_Union; goto struct_type; + struct_type:; + { + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = rdi_type_kind; + dst_type->name = name; + dst_type->byte_size = bitsize/8; + }break; + case DW_TagKind_EnumerationType: + { + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = is_decl ? RDI_TypeKind_IncompleteEnum : RDI_TypeKind_Enum; + dst_type->name = name; + dst_type->direct_type = direct_type; + dst_type->byte_size = (direct_type != 0 ? direct_type->byte_size : bitsize/8); + }break; + case DW_TagKind_SubProgram: + case DW_TagKind_SubroutineType: + { + // rjf: build type + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = RDI_TypeKind_Function; + dst_type->direct_type = direct_type; + dst_type->byte_size = arch_addr_size; + + // rjf: gather all parameter types + typedef struct ParamNode ParamNode; + struct ParamNode + { + ParamNode *next; + U64 type_unit_idx; + U64 type_info_off; + }; + ParamNode *first_param = 0; + ParamNode *last_param = 0; + U64 param_count = 0; + if(tag.has_children) + { + U64 tag_children_off = info_off + tag_info_size; + S64 depth = 1; + for(U64 off = tag_children_off; depth > 0 && contains_1u64(unit_info_tag_range, off);) + { + Temp scratch3 = scratch_begin(&scratch2.arena, 1); + U64 start_off = off; + + // rjf: read child tag + DW2_Tag child_tag = {0}; + off += dw2_read_tag(scratch3.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &child_tag); + + // rjf: gather parameters + if(depth == 1 && child_tag.kind == DW_TagKind_FormalParameter) + { + DW2_Attrib *type_attrib = dw2_attrib_from_kind(&child_tag, DW_AttribKind_Type); + ParamNode *n = push_array(scratch2.arena, ParamNode, 1); + SLLQueuePush(first_param, last_param, n); + n->type_info_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &type_attrib->val); + n->type_unit_idx = unit_idx; + if(!contains_1u64(unit_info_tag_range, n->type_info_off)) + { + U64 new_unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, n->type_info_off); + n->type_unit_idx = (new_unit_num > 0 ? new_unit_num-1 : unit_idx); + } + param_count += 1; + } + + // rjf: navigate tree + if(child_tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + if(child_tag.has_children) + { + depth += 1; + } + + scratch_end(scratch3); + if(off == start_off) + { + break; + } + } + } + + // rjf: tighten parameter types + dst_type->count = (RDI_U32)param_count; // TODO(rjf): @u64_to_u32 + dst_type->param_types = push_array(arena, RDIM_Type *, dst_type->count); + { + U64 param_idx = 0; + for(ParamNode *n = first_param; n != 0; n = n->next, param_idx += 1) + { + U64 param_type_info_off = n->type_info_off; + U64 param_type_unit_idx = n->type_unit_idx; + + // rjf: map info_off/unit_idx -> hash + U64 param_type_hash = 0; + { + D2R_UnitDedupedTagMap *direct_type_unit_type_map = &unit_deduped_tag_maps[param_type_unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(¶m_type_info_off)); + U64 info_off_slot_idx = info_off_hash%direct_type_unit_type_map->slots_count; + for(D2R_UnitDedupedTagNode *n = direct_type_unit_type_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == param_type_info_off) + { + param_type_hash = n->dst_hash; + break; + } + } + } + + // rjf: map hash -> type + RDIM_Type *param_type = 0; + { + U64 unique_type_tag_slot_idx = param_type_hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == param_type_hash) + { + param_type = type_from_idx_map[n->order_idx]; + break; + } + } + } + + // rjf: store + dst_type->param_types[param_idx] = param_type; + } + } + }break; + case DW_TagKind_Typedef: + { + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = RDI_TypeKind_Alias; + dst_type->name = name; + dst_type->direct_type = direct_type; + dst_type->byte_size = (direct_type ? direct_type->byte_size : 0); + }break; + case DW_TagKind_BaseType: + { + if(0){} +#define CaseA(rdi_type_kind_, encoding_) else if(encoding == (encoding_)) { rdi_type_kind = (rdi_type_kind_); } +#define CaseB(rdi_type_kind_, encoding_, bit_size_) else if(encoding == (encoding_) && bitsize == (bit_size_)) { rdi_type_kind = (rdi_type_kind_); } +#define CaseC(rdi_type_kind_, encoding_, name_) /* assumes x64/arm64 */ else if(encoding == (encoding_) && str8_match(name, str8_lit(name_), 0)) { rdi_type_kind = (rdi_type_kind_); } +#define CaseD(rdi_type_kind_, encoding_, name_, bit_size_) else if(encoding == (encoding_) && bitsize == (bit_size_) && str8_match(name, str8_lit(name_), 0)) { rdi_type_kind = (rdi_type_kind_); } + CaseA(RDI_TypeKind_Null, DW_ATE_Null) + CaseA(RDI_TypeKind_Void, DW_ATE_Address) + CaseA(RDI_TypeKind_Bool, DW_ATE_Boolean) + CaseB(RDI_TypeKind_ComplexF32, DW_ATE_ComplexFloat, 64) + CaseB(RDI_TypeKind_ComplexF64, DW_ATE_ComplexFloat, 128) + CaseB(RDI_TypeKind_ComplexF80, DW_ATE_ComplexFloat, 160) + CaseB(RDI_TypeKind_ComplexF128, DW_ATE_ComplexFloat, 256) + CaseC(RDI_TypeKind_F80, DW_ATE_Float, "__float80") + CaseC(RDI_TypeKind_F128, DW_ATE_Float, "__float128") + CaseC(RDI_TypeKind_F16, DW_ATE_Float, "_Float16") + CaseC(RDI_TypeKind_BF16, DW_ATE_Float, "__bf16") + CaseB(RDI_TypeKind_F16, DW_ATE_Float, 16) + CaseB(RDI_TypeKind_F32, DW_ATE_Float, 32) + CaseB(RDI_TypeKind_F48, DW_ATE_Float, 48) + CaseB(RDI_TypeKind_F64, DW_ATE_Float, 64) + CaseB(RDI_TypeKind_F80, DW_ATE_Float, 80) + CaseB(RDI_TypeKind_F96, DW_ATE_Float, 96) + CaseB(RDI_TypeKind_F128, DW_ATE_Float, 128) + CaseB(RDI_TypeKind_Char8, DW_ATE_SignedChar, 8) + CaseB(RDI_TypeKind_Char16, DW_ATE_SignedChar, 16) + CaseB(RDI_TypeKind_Char32, DW_ATE_SignedChar, 32) + CaseD(RDI_TypeKind_Char8, DW_ATE_Signed, "wchar_t", 8) + CaseD(RDI_TypeKind_Char16, DW_ATE_Signed, "wchar_t", 16) + CaseD(RDI_TypeKind_Char32, DW_ATE_Signed, "wchar_t", 32) + CaseB(RDI_TypeKind_S8, DW_ATE_Signed, 8) + CaseB(RDI_TypeKind_S16, DW_ATE_Signed, 16) + CaseB(RDI_TypeKind_S32, DW_ATE_Signed, 32) + CaseB(RDI_TypeKind_S64, DW_ATE_Signed, 64) + CaseB(RDI_TypeKind_S128, DW_ATE_Signed, 128) + CaseB(RDI_TypeKind_S256, DW_ATE_Signed, 256) + CaseB(RDI_TypeKind_S512, DW_ATE_Signed, 512) + CaseB(RDI_TypeKind_U8, DW_ATE_Unsigned, 8) + CaseB(RDI_TypeKind_U16, DW_ATE_Unsigned, 16) + CaseB(RDI_TypeKind_U32, DW_ATE_Unsigned, 32) + CaseB(RDI_TypeKind_U64, DW_ATE_Unsigned, 64) + CaseB(RDI_TypeKind_U128, DW_ATE_Unsigned, 128) + CaseB(RDI_TypeKind_U256, DW_ATE_Unsigned, 256) + CaseB(RDI_TypeKind_U512, DW_ATE_Unsigned, 512) + CaseB(RDI_TypeKind_UChar8, DW_ATE_UnsignedChar, 8) + CaseB(RDI_TypeKind_UChar8, DW_ATE_Utf, 8) + CaseB(RDI_TypeKind_UChar16, DW_ATE_UnsignedChar, 16) + CaseB(RDI_TypeKind_UChar16, DW_ATE_Utf, 16) + CaseB(RDI_TypeKind_UChar32, DW_ATE_UnsignedChar, 32) + CaseB(RDI_TypeKind_UChar32, DW_ATE_Utf, 32) + CaseB(RDI_TypeKind_Decimal32, DW_ATE_DecimalFloat, 32) + CaseB(RDI_TypeKind_Decimal64, DW_ATE_DecimalFloat, 64) + CaseB(RDI_TypeKind_Decimal128, DW_ATE_DecimalFloat, 128) +#undef CaseA +#undef CaseB +#undef CaseC +#undef CaseD + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = RDI_TypeKind_Alias; + dst_type->name = name; + dst_type->direct_type = d2r_type_from_builtin_kind(rdi_type_kind); + dst_type->byte_size = bitsize/8; // TODO: byte size on __float80 alias mismatches byte size on direct type now + }break; + case DW_TagKind_PointerType: rdi_type_kind = RDI_TypeKind_Ptr; goto ptr_or_ref_type; + case DW_TagKind_ReferenceType: rdi_type_kind = RDI_TypeKind_LRef; goto ptr_or_ref_type; + case DW_TagKind_RValueReferenceType: rdi_type_kind = RDI_TypeKind_RRef; goto ptr_or_ref_type; + ptr_or_ref_type:; + { + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = rdi_type_kind; + dst_type->direct_type = direct_type; + dst_type->byte_size = arch_addr_size; + }break; + case DW_TagKind_RestrictType: + { + rdi_type_modifier_flags = RDI_TypeModifierFlag_Restrict; + }goto basic_type_operators; + case DW_TagKind_VolatileType: + { + rdi_type_modifier_flags = RDI_TypeModifierFlag_Volatile; + }goto basic_type_operators; + case DW_TagKind_ConstType: + { + rdi_type_modifier_flags = RDI_TypeModifierFlag_Const; + }goto basic_type_operators; + basic_type_operators:; + { + dst_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + dst_type->kind = RDI_TypeKind_Modifier; + dst_type->flags = rdi_type_modifier_flags; + dst_type->direct_type = direct_type; + dst_type->byte_size = (direct_type ? direct_type->byte_size : 0); + }break; + case DW_TagKind_ArrayType: + if(tag.has_children) + { + // rjf: parse array type children; extract dimensions (each one gets a SubrangeType) + typedef struct ArrayDimensionNode ArrayDimensionNode; + struct ArrayDimensionNode + { + ArrayDimensionNode *next; + U64 count; + }; + ArrayDimensionNode *top_dimension = 0; + { + U64 tag_children_off = info_off + tag_info_size; + S64 depth = 1; + for(U64 off = tag_children_off; contains_1u64(unit_info_tag_range, off) && depth > 0;) + { + U64 start_off = off; + DW2_Tag child_tag = {0}; + off += dw2_read_tag(temp.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &child_tag); + if(child_tag.kind == DW_TagKind_SubrangeType) + { + // rjf: extract bounds attribs + DW2_Attrib *lower_bound_attrib = &dw2_attrib_nil; + DW2_Attrib *upper_bound_attrib = &dw2_attrib_nil; + DW2_Attrib *count_attrib = &dw2_attrib_nil; + for(DW2_AttribNode *n = child_tag.attribs.first; + n != 0 && (lower_bound_attrib == &dw2_attrib_nil || (upper_bound_attrib == &dw2_attrib_nil && count_attrib == &dw2_attrib_nil)); + n = n->next) + { + if(n->v.attrib_kind == DW_AttribKind_LowerBound) + { + lower_bound_attrib = &n->v; + } + else if(n->v.attrib_kind == DW_AttribKind_UpperBound) + { + upper_bound_attrib = &n->v; + } + else if(n->v.attrib_kind == DW_AttribKind_Count) + { + count_attrib = &n->v; + } + } + + // rjf: resolve lower bound + U64 lower_bound = 0; + if(lower_bound_attrib != &dw2_attrib_nil) + { + if(dw_attrib_class_from_form_kind(unit_parse_ctx->version, unit_parse_ctx->exts, lower_bound_attrib->val.kind) & DW_AttribClass_Reference) + { + log_infof("[.debug_info@0x%I64x] Array type lower bound is a variable; this is not currently supported.\n", start_off); + } + else + { + lower_bound = lower_bound_attrib->val.u128.u64[0]; + } + } + else switch(unit_parse_ctx->language) + { + default:{}break; +#define X(name, code, default_array_lower_bound) case DW_Language_##name:{lower_bound = (default_array_lower_bound);}break; + DW_Language_XList +#undef X + } + + // rjf: resolve upper bound + U64 upper_bound = 0; + { + if(count_attrib != &dw2_attrib_nil) + { + upper_bound = lower_bound + count_attrib->val.u128.u64[0]; + } + else if(upper_bound_attrib != &dw2_attrib_nil) + { + if(dw_attrib_class_from_form_kind(unit_parse_ctx->version, unit_parse_ctx->exts, upper_bound_attrib->val.kind) & DW_AttribClass_Reference) + { + log_infof("[.debug_info@0x%I64x] Array type upper bound is a variable; this is not currently supported.\n", start_off); + } + else + { + upper_bound = upper_bound_attrib->val.u128.u64[0]; + upper_bound += 1; // NOTE(rjf): turn to exclusive range + } + } + } + + // rjf: push node + ArrayDimensionNode *dim_n = push_array(temp.arena, ArrayDimensionNode, 1); + SLLStackPush(top_dimension, dim_n); + dim_n->count = (upper_bound - lower_bound); + } + if(child_tag.has_children) + { + depth += 1; + } + else if(child_tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + if(off == start_off) + { + break; + } + } + } + + // rjf: create array type operators for each dimension + RDIM_Type *array_direct_type = direct_type; + for EachNode(dim_n, ArrayDimensionNode, top_dimension) + { + RDIM_Type *array_type = rdim_type_chunk_list_push(arena, &lane_types, lane_types_chunk_count); + array_type->kind = RDI_TypeKind_Array; + array_type->byte_size = array_direct_type ? array_direct_type->byte_size*dim_n->count : 0; + array_type->direct_type = array_direct_type; + array_direct_type = array_type; + } + + // rjf: final destination type -> the final array dimension type + dst_type = array_direct_type; + }break; + } + + // rjf: store type in type-from-idx table + type_from_idx_map[type_idx] = dst_type; + + temp_end(temp); + } + + //- rjf: combine all types from all lanes + RDIM_TypeChunkList *lanes_types = 0; + if(lane_idx() == 0) + { + lanes_types = push_array(scratch2.arena, RDIM_TypeChunkList, lane_count()); + } + lane_sync_u64(&lanes_types, 0); + lanes_types[lane_idx()] = lane_types; + lane_sync(); + if(lane_idx() == 0) + { + RDIM_TypeChunkList pass_lane_combined_types = {0}; + for EachIndex(l_idx, lane_count()) + { + rdim_type_chunk_list_concat_in_place(&pass_lane_combined_types, &lanes_types[l_idx]); + } + rdim_type_chunk_list_concat_in_place(all_types, &pass_lane_combined_types); + } + lane_sync(); + + //- rjf: find minimum next max chain count across all lanes, for next iteration + U64 *lane_next_max_chain_counts = 0; + if(lane_idx() == 0) + { + lane_next_max_chain_counts = push_array(scratch2.arena, U64, lane_count()); + } + lane_sync_u64(&lane_next_max_chain_counts, 0); + lane_next_max_chain_counts[lane_idx()] = next_max_chain_count; + lane_sync(); + if(lane_idx() == 0) + { + for EachIndex(l_idx, lane_count()) + { + next_max_chain_count = Min(next_max_chain_count, lane_next_max_chain_counts[l_idx]); + } + } + lane_sync_u64(&next_max_chain_count, 0); + + //- rjf: update max chain count + max_chain_count = next_max_chain_count; + + ProfEnd(); + scratch_end(scratch2); + } + } lane_sync(); - RDIM_BakeParams bake_params = {0}; - bake_params.subset_flags = params->subset_flags; - bake_params.top_level_info = top_level_info; - bake_params.binary_sections = binary_sections; - bake_params.units = units; - bake_params.types = types; - bake_params.udts = udts; - bake_params.src_files = src_files; - bake_params.line_tables = line_tables; - bake_params.locations = locations; - bake_params.global_variables = gvars; - bake_params.thread_variables = tvars; - bake_params.procedures = procs; - bake_params.scopes = scopes; - bake_params.inline_sites = inline_sites; + //////////////////////////// + //- rjf: convert all namespaces + // + RDIM_NamespaceChunkList *all_namespaces = 0; + RDIM_Namespace **namespace_from_idx_map = 0; + { + // rjf: set up + if(lane_idx() == 0) + { + all_namespaces = push_array(scratch.arena, RDIM_NamespaceChunkList, 1); + namespace_from_idx_map = push_array(scratch.arena, RDIM_Namespace *, namespace_count); + } + lane_sync_u64(&all_namespaces, 0); + lane_sync_u64(&namespace_from_idx_map, 0); + + // rjf: build all namespaces on this lane + RDIM_NamespaceChunkList lane_namespaces = {0}; + Rng1U64 range = lane_range(namespace_count); + for EachInRange(namespace_idx, range) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + + // rjf: unpack tag node + D2R_UniqueTagNode *tag_node = namespace_tag_nodes[namespace_idx]; + U64 info_off = tag_node->info_off; + U64 unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, info_off); + U64 unit_idx = unit_num > 0 ? unit_num-1 : 0; + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + + // rjf: read namespace tag + DW2_Tag tag = {0}; + dw2_read_tag(scratch2.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, info_off, &tag); + DW2_Attrib *name_attrib = dw2_attrib_from_kind(&tag, DW_AttribKind_Name); + String8 name = name_attrib->val.string; + + // rjf: build namespace + RDIM_Namespace *ns = rdim_namespace_chunk_list_push(arena, &lane_namespaces, 64); + ns->name = name; + + // rjf: store in (deduped tag idx -> namespace) table + namespace_from_idx_map[tag_node->order_idx] = ns; + + scratch_end(scratch2); + } + lane_sync(); + + // rjf: join all namespaces + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + RDIM_NamespaceChunkList *lanes_namespaces = 0; + if(lane_idx() == 0) + { + lanes_namespaces = push_array(scratch2.arena, RDIM_NamespaceChunkList, lane_count()); + } + lane_sync_u64(&lanes_namespaces, 0); + lanes_namespaces[lane_idx()] = lane_namespaces; + lane_sync(); + if(lane_idx() == 0) + { + for EachIndex(l_idx, lane_count()) + { + rdim_namespace_chunk_list_concat_in_place(all_namespaces, &lanes_namespaces[l_idx]); + } + } + lane_sync(); + scratch_end(scratch2); + } + } + lane_sync(); + //////////////////////////// + //- rjf: convert all UDTs + // + RDIM_UDTChunkList *all_udts = 0; + ProfScope("convert all UDTs") + { + //- rjf: produce UDTs across all lanes + U64 chunk_count = 512; + RDIM_UDTChunkList lane_udts = {0}; + Rng1U64 range = lane_range(type_count); + for EachInRange(type_idx, range) + { + RDIM_Type *type = type_from_idx_map[type_idx]; + if(type != 0 && + (type->kind == RDI_TypeKind_Struct || + type->kind == RDI_TypeKind_Union || + type->kind == RDI_TypeKind_Class || + type->kind == RDI_TypeKind_Enum || + type->kind == RDI_TypeKind_Alias)) + { + // rjf: produce UDT + RDIM_UDT *udt = rdim_udt_chunk_list_push(arena, &lane_udts, chunk_count); + type->udt = udt; + udt->self_type = type; + + // rjf: idx -> type tag node + D2R_UniqueTagNode *type_tag_node = type_tag_nodes[type_idx]; + U64 info_off = type_tag_node->info_off; + U64 unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, info_off); + U64 unit_idx = unit_num > 0 ? unit_num-1 : 0; + + // rjf: unpack unit + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + + // rjf: parse all tags + S64 depth = 0; + for(U64 off = info_off; contains_1u64(unit_info_tag_range, off) && (depth > 0 || off == info_off);) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + U64 start_off = off; + + // rjf: parse tag + DW2_Tag tag = {0}; + U64 tag_parse_off = off; + off += dw2_read_tag(scratch2.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + + // rjf: unpack tag attributes + DW2_Attrib *name_attrib = &dw2_attrib_nil; + DW2_Attrib *type_attrib = &dw2_attrib_nil; + DW2_Attrib *off_attrib = &dw2_attrib_nil; + DW2_Attrib *val_attrib = &dw2_attrib_nil; + DW2_Attrib *declfile_attrib = &dw2_attrib_nil; + DW2_Attrib *declline_attrib = &dw2_attrib_nil; + DW2_Attrib *declcol_attrib = &dw2_attrib_nil; + for EachNode(n, DW2_AttribNode, tag.attribs.first) + { + switch(n->v.attrib_kind) + { + default:{}break; +#define Case(dst, src) case DW_AttribKind_##src:{dst##_attrib = &n->v;}break + Case(name, Name); + Case(type, Type); + Case(off, DataMemberLocation); + Case(val, ConstValue); + Case(declfile, DeclFile); + Case(declline, DeclLine); + Case(declcol, DeclColumn); +#undef Case + } + } + + // rjf: unpack basic attributes + String8 name = name_attrib->val.string; + U64 off = off_attrib->val.u128.u64[0]; + U64 val = val_attrib->val.u128.u64[0]; + + // rjf: unpack type + RDIM_Type *type = 0; + if(type_attrib != &dw2_attrib_nil) + { + // rjf: attrib -> info off / unit idx + U64 type_info_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &type_attrib->val); + U64 type_unit_idx = unit_idx; + if(!contains_1u64(unit_info_tag_range, type_info_off)) + { + U64 new_unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, type_info_off); + type_unit_idx = (new_unit_num > 0 ? new_unit_num-1 : unit_idx); + } + + // rjf: (info_off, unit_idx) -> hash + U64 type_hash = 0; + { + D2R_UnitDedupedTagMap *unit_deduped_tag_map = &unit_deduped_tag_maps[type_unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&type_info_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_map->slots_count; + for(D2R_UnitDedupedTagNode *n = unit_deduped_tag_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == type_info_off) + { + type_hash = n->dst_hash; + break; + } + } + } + + // rjf: hash -> type + { + U64 unique_type_tag_slot_idx = type_hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == type_hash) + { + type = type_from_idx_map[n->order_idx]; + break; + } + } + } + } + + // rjf: root-level tag -> collect decl file/line info + if(tag_parse_off == start_off) + { + // TODO(rjf): we need to have gathered the source files before this!!!!!! + // currently, they only come from line info - we need to gather/dedup the + // ones that also come from tags. + } + + // rjf: gather children + switch(tag.kind) + { + default:{}break; + case DW_TagKind_Member: + { + RDIM_UDTMember *member = rdim_udt_push_member(arena, &lane_udts, udt); + member->kind = RDI_MemberKind_DataField; + member->name = name; + member->type = type; + member->off = (RDI_U32)off; // TODO(rjf): @u64_to_u32 + }break; + case DW_TagKind_Enumerator: + { + RDIM_UDTEnumVal *enum_val = rdim_udt_push_enum_val(arena, &lane_udts, udt); + enum_val->name = name; + enum_val->val = val; + }break; + } + + // rjf: tree nav + if(tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + if(tag.has_children) + { + depth += 1; + } + + scratch_end(scratch2); + if(off == start_off) + { + break; + } + } + } + } + lane_sync(); + + //- rjf: combine all lanes + RDIM_UDTChunkList *lanes_udts = 0; + if(lane_idx() == 0) + { + lanes_udts = push_array(scratch.arena, RDIM_UDTChunkList, lane_count()); + } + lane_sync_u64(&lanes_udts, 0); + lanes_udts[lane_idx()] = lane_udts; + lane_sync(); + if(lane_idx() == 0) + { + all_udts = push_array(scratch.arena, RDIM_UDTChunkList, 1); + for EachIndex(l_idx, lane_count()) + { + rdim_udt_chunk_list_concat_in_place(all_udts, &lanes_udts[l_idx]); + } + } + lane_sync_u64(&all_udts, 0); + } + + //////////////////////////// + //- rjf: convert all units + // + RDIM_UnitChunkList *all_units = 0; + RDIM_Unit **unit_from_idx_map = 0; + ProfScope("convert all units") + { + if(lane_idx() == 0) + { + all_units = push_array(scratch.arena, RDIM_UnitChunkList, 1); + unit_from_idx_map = push_array(scratch.arena, RDIM_Unit *, unit_count); + for EachIndex(unit_idx, unit_count) + { + unit_from_idx_map[unit_idx] = rdim_unit_chunk_list_push(arena, all_units, unit_count); + } + } + lane_sync_u64(&all_units, 0); + lane_sync_u64(&unit_from_idx_map, 0); + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr) - 1; + if(unit_idx >= unit_count) + { + break; + } + + //- rjf: unpack unit info + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + RDIM_Unit *dst_unit = unit_from_idx_map[unit_idx]; + + //- rjf: unpack unit's root tag + DW2_Tag *unit_root_tag = &unit_root_tags[unit_idx]; + DW2_Attrib *name_attrib = &dw2_attrib_nil; + DW2_Attrib *comp_dir_attrib = &dw2_attrib_nil; + DW2_Attrib *producer_attrib = &dw2_attrib_nil; + DW2_Attrib *lang_attrib = &dw2_attrib_nil; + DW2_Attrib *ranges_attrib = &dw2_attrib_nil; + DW2_Attrib *lopc_attrib = &dw2_attrib_nil; + DW2_Attrib *hipc_attrib = &dw2_attrib_nil; + for EachNode(n, DW2_AttribNode, unit_root_tag->attribs.first) + { + switch(n->v.attrib_kind) + { + default:{}break; +#define Case(dst, src) case DW_AttribKind_##src:{dst##_attrib = &n->v;}break + Case(name, Name); + Case(comp_dir, CompDir); + Case(producer, Producer); + Case(lang, Language); + Case(ranges, Ranges); + Case(lopc, LowPc); + Case(hipc, HighPc); +#undef Case + } + } + + //- rjf: unpack attributes + String8 unit_name = name_attrib->val.string; + String8 unit_comp_dir = comp_dir_attrib->val.string; + String8 unit_producer = producer_attrib->val.string; + RDI_Language unit_lang = RDI_Language_NULL; + { + DW_Language dw_lang = lang_attrib->val.u128.u64[0]; + switch(dw_lang) + { + default:{}break; + case DW_Language_C89: + case DW_Language_C99: + case DW_Language_C11: + case DW_Language_C: + { + unit_lang = RDI_Language_C; + }break; + case DW_Language_CPlusPlus03: + case DW_Language_CPlusPlus11: + case DW_Language_CPlusPlus14: + case DW_Language_CPlusPlus: + { + unit_lang = RDI_Language_CPlusPlus; + }break; + } + } + + //- rjf: get unit's ranges from .debug_aranges parse artifacts, if we have them + RDIM_Rng1U64ChunkList unit_voff_ranges = {0}; + if(arange_unit_from_info_off_map_slots_count != 0) + { + U64 unit_info_off = unit_info_ranges->v[unit_idx].min; + U64 hash = u64_hash_from_str8(str8_struct(&unit_info_off)); + U64 slot_idx = hash%arange_unit_from_info_off_map_slots_count; + for(D2R_ARangeUnitNode *n = arange_unit_from_info_off_map_slots[slot_idx]; n != 0; n = n->next) + { + if(n->info_off == unit_info_off) + { + unit_voff_ranges = n->ranges[0]; + break; + } + } + } + + //- rjf: if we have no voff ranges from .debug_aranges, then we need to extract + // this info from the unit root rag instead (via ranges & low-pc/high-pc tags) + if(unit_voff_ranges.total_count == 0) + { + // rjf: gather ranges from a ranges attribute + if(ranges_attrib != &dw2_attrib_nil) + { + Rng1U64List ranges = dw2_rnglist_from_form_val(scratch.arena, unit_parse_ctx, raw, ranges_attrib->val); + for EachNode(n, Rng1U64Node, ranges.first) + { + rdim_rng1u64_chunk_list_push(arena, &unit_voff_ranges, 256, (RDIM_Rng1U64){n->v.min - base_vaddr, n->v.max - base_vaddr}); + } + } + + // rjf: gather contiguous range from low-pc / high-pc attribute + if(lopc_attrib != &dw2_attrib_nil && hipc_attrib != &dw2_attrib_nil) + { + U64 voff_base = lopc_attrib->val.addr - base_vaddr; + U64 voff_opl = 0; + if(dw_attrib_class_from_form_kind(unit_parse_ctx->version, unit_parse_ctx->exts, hipc_attrib->val.kind) & DW_AttribClass_Address) + { + voff_opl = voff_base + hipc_attrib->val.u128.u64[0]; + } + else + { + voff_opl = hipc_attrib->val.addr; + } + rdim_rng1u64_chunk_list_push(arena, &unit_voff_ranges, 256, (RDIM_Rng1U64){voff_base, voff_opl}); + } + } + + //- rjf: fill top-level unit info + { + dst_unit->unit_name = unit_name; + dst_unit->compiler_name = unit_producer; + // TODO(rjf): dst_unit->source_file = ???; + // TODO(rjf): dst_unit->object_file = ???; + // TODO(rjf): dst_unit->archive_file = ???; + dst_unit->build_path = unit_comp_dir; + dst_unit->language = unit_lang; + dst_unit->line_table = unit_line_tables[unit_idx]; + dst_unit->voff_ranges = unit_voff_ranges; + } + } + lane_sync(); + } + + //////////////////////////// + //- rjf: convert all symbols + // + typedef struct D2R_ScopeContainerNode D2R_ScopeContainerNode; + struct D2R_ScopeContainerNode + { + D2R_ScopeContainerNode *next; + U64 info_off; + RDIM_Scope *scope; + }; + typedef struct D2R_ScopeContainerMap D2R_ScopeContainerMap; + struct D2R_ScopeContainerMap + { + D2R_ScopeContainerNode **slots; + U64 slots_count; + }; + typedef struct D2R_SubUnitWorkArtifacts D2R_SubUnitWorkArtifacts; + struct D2R_SubUnitWorkArtifacts + { + RDIM_SymbolChunkList global_variables; + RDIM_SymbolChunkList thread_variables; + RDIM_SymbolChunkList constants; + RDIM_SymbolChunkList procedures; + RDIM_ScopeChunkList scopes; + RDIM_InlineSiteChunkList inline_sites; + }; + D2R_ScopeContainerMap *scope_container_map = 0; + D2R_SubUnitWorkArtifacts *sub_unit_work_artifacts = 0; + ProfScope("convert all symbols") + { + if(lane_idx() == 0) + { + scope_container_map = push_array(scratch.arena, D2R_ScopeContainerMap, 1); + scope_container_map->slots_count = total_tag_count_estimate/8 + 1; + scope_container_map->slots = push_array(scratch.arena, D2R_ScopeContainerNode *, scope_container_map->slots_count); + sub_unit_work_artifacts = push_array(scratch.arena, D2R_SubUnitWorkArtifacts, sub_unit_works_count); + } + lane_sync_u64(&scope_container_map, 0); + lane_sync_u64(&sub_unit_work_artifacts, 0); + U64 work_take_idx_ = 0; + U64 *work_take_idx_ptr = &work_take_idx_; + lane_sync_u64(&work_take_idx_ptr, 0); + for(;;) + { + U64 work_idx = ins_atomic_u64_inc_eval(work_take_idx_ptr) - 1; + if(work_idx >= sub_unit_works_count) + { + break; + } + + //- rjf: unpack work + U64 unit_idx = sub_unit_works[work_idx].unit_idx; + Rng1U64 root_tag_idx_range = sub_unit_works[work_idx].root_tag_idx_range; + D2R_SubUnitWorkArtifacts *dst_artifacts = &sub_unit_work_artifacts[work_idx]; + + //- rjf: unpack unit info + DW2_ParseCtx *unit_parse_ctx = &unit_parse_ctxs[unit_idx]; + Rng1U64 unit_info_tag_range = unit_info_tag_ranges[unit_idx]; + + //- rjf: produce all unit symbols in this work + U64 chunk_count = 256; + for(U64 root_tag_idx = root_tag_idx_range.min; root_tag_idx < root_tag_idx_range.max; root_tag_idx += 1) + { + typedef struct D2R_ParentNode D2R_ParentNode; + struct D2R_ParentNode + { + D2R_ParentNode *next; + DW_TagKind tag_kind; + U64 info_off; + RDIM_Scope *scope; + RDIM_Type *container_type; + RDIM_Namespace *container_namespace; + RDIM_LocationCaseList framebase_location_cases; + }; + D2R_ParentNode *top_parent = 0; + D2R_ParentNode *free_parent = 0; + U64 root_tag_start_off = unit_info_root_tag_offs[unit_idx].v[root_tag_idx]; + S64 depth = 1; + for(U64 off = root_tag_start_off; off < unit_info_tag_range.max && (depth > 1 || off == root_tag_start_off);) + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + U64 start_off = off; + + //////////////////////// + //- rjf: parse tag + // + DW2_Tag tag = {0}; + off += dw2_read_tag(scratch2.arena, raw, unit_parse_ctx, raw->sec[DW_SectionKind_Info].data, off, &tag); + + //////////////////////// + //- rjf: gather attributes from tag + // + DW2_Attrib *name_attrib = &dw2_attrib_nil; + DW2_Attrib *linkname_attrib = &dw2_attrib_nil; + DW2_Attrib *type_attrib = &dw2_attrib_nil; + DW2_Attrib *inline_attrib = &dw2_attrib_nil; + DW2_Attrib *ranges_attrib = &dw2_attrib_nil; + DW2_Attrib *lopc_attrib = &dw2_attrib_nil; + DW2_Attrib *hipc_attrib = &dw2_attrib_nil; + DW2_Attrib *constval_attrib = &dw2_attrib_nil; + DW2_Attrib *location_attrib = &dw2_attrib_nil; + DW2_Attrib *framebase_attrib = &dw2_attrib_nil; + DW2_Attrib *external_attrib = &dw2_attrib_nil; + DW2_Attrib *decl_attrib = &dw2_attrib_nil; + for EachNode(n, DW2_AttribNode, tag.attribs.first) + { + switch(n->v.attrib_kind) + { + default:{}break; +#define Case(dst, src) case DW_AttribKind_##src:{dst##_attrib = &n->v;}break + Case(name, Name); + Case(linkname, LinkageName); + Case(type, Type); + Case(inline, Inline); + Case(ranges, Ranges); + Case(lopc, LowPc); + Case(hipc, HighPc); + Case(constval, ConstValue); + Case(location, Location); + Case(framebase, FrameBase); + Case(external, External); + Case(decl, Declaration); +#undef Case + } + } + + //////////////////////// + //- rjf: unpack basic attributes + // + String8 name = name_attrib->val.string; + String8 link_name = linkname_attrib->val.string; + DW_InlKind inl_kind = (DW_InlKind)inline_attrib->val.u128.u64[0]; + B32 is_external = (external_attrib != &dw2_attrib_nil); + B32 is_decl = (decl_attrib != &dw2_attrib_nil); + + //////////////////////// + //- rjf: unpack ranges + // + RDIM_Rng1U64List ranges = {0}; + { + if(ranges_attrib != &dw2_attrib_nil) + { + Temp temp = temp_begin(scratch2.arena); + Rng1U64List tag_ranges = dw2_rnglist_from_form_val(temp.arena, unit_parse_ctx, raw, ranges_attrib->val); + for EachNode(n, Rng1U64Node, tag_ranges.first) + { + rdim_rng1u64_list_push(arena, &ranges, (RDIM_Rng1U64){.min = n->v.min, .max = n->v.max}); + } + temp_end(temp); + } + if(lopc_attrib != &dw2_attrib_nil && hipc_attrib != &dw2_attrib_nil) + { + U64 voff_base = lopc_attrib->val.addr - base_vaddr; + U64 voff_opl = 0; + if(dw_attrib_class_from_form_kind(unit_parse_ctx->version, unit_parse_ctx->exts, hipc_attrib->val.kind) & DW_AttribClass_Address) + { + voff_opl = hipc_attrib->val.addr; + } + else + { + voff_opl = voff_base + hipc_attrib->val.u128.u64[0]; + } + rdim_rng1u64_list_push(arena, &ranges, (RDIM_Rng1U64){voff_base, voff_opl}); + } + } + + //////////////////////// + //- rjf: unpack type + // + RDIM_Type *type = 0; + if(type_attrib != &dw2_attrib_nil || tag.kind == DW_TagKind_SubProgram) + { + // rjf: functions need to get their type info from themselves; the type attrib + // only references the return type. so, in that case, we'll use the procedure's + // own info offset / unit index, rather than the type attribute's. + U64 type_info_off = start_off; + U64 type_unit_idx = unit_idx; + + // rjf: attrib -> (info_off, unit_idx) + if(tag.kind != DW_TagKind_SubProgram) + { + type_info_off = dw2_reference_info_off_from_form_val(unit_parse_ctx, &type_attrib->val); + type_unit_idx = unit_idx; + if(!contains_1u64(unit_info_tag_range, type_info_off)) + { + U64 new_unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, type_info_off); + type_unit_idx = (new_unit_num > 0 ? new_unit_num-1 : unit_idx); + } + } + + // rjf: (info_off, unit_idx) -> hash + U64 type_hash = 0; + { + D2R_UnitDedupedTagMap *unit_deduped_tag_map = &unit_deduped_tag_maps[type_unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&type_info_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_map->slots_count; + for(D2R_UnitDedupedTagNode *n = unit_deduped_tag_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == type_info_off) + { + type_hash = n->dst_hash; + break; + } + } + } + + // rjf: hash -> type + { + U64 unique_type_tag_slot_idx = type_hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == type_hash) + { + type = type_from_idx_map[n->order_idx]; + break; + } + } + } + } + + //////////////////////// + //- rjf: unpack location info + // + RDIM_LocationCaseList location_cases = {0}; + RDIM_LocationCaseList framebase_location_cases = {0}; + B32 location_is_tls_dependent = 0; + B32 framebase_location_is_tls_dependent = 0; + { + struct + { + DW2_Attrib *attrib; + RDIM_LocationCaseList *dst_locations; + B32 *dst_is_tls_dependent; + } + tasks[] = + { + {location_attrib, &location_cases, &location_is_tls_dependent}, + {framebase_attrib, &framebase_location_cases, &framebase_location_is_tls_dependent}, + }; + for EachElement(task_idx, tasks) + { + if(tasks[task_idx].attrib == &dw2_attrib_nil) + { + continue; + } + DW2_Attrib *attrib = tasks[task_idx].attrib; + RDIM_LocationCaseList *dst_locations = tasks[task_idx].dst_locations; + B32 *dst_is_tls_dependent = tasks[task_idx].dst_is_tls_dependent; + + ////////////////////// + //- rjf: gather DWARF location exprs + // + DW2_LocList locs = {0}; + switch(attrib->val.kind) + { + default:{}break; + case DW_FormKind_ExprLoc: + { + U64 expr_info_off = attrib->val.u128.u64[0]; + U64 expr_info_size = attrib->val.u128.u64[1]; + String8 expr = str8_substr(raw->sec[DW_SectionKind_Info].data, r1u64(expr_info_off, expr_info_off+expr_info_size)); + DW2_LocNode *n = push_array(scratch2.arena, DW2_LocNode, 1); + n->v.expr = expr; + n->v.range = r1u64(0, max_U64); + SLLQueuePush(locs.first, locs.last, n); + locs.count += 1; + }break; + case DW_FormKind_LocListx: // NOTE(rjf): dwarf5+, loclistx -> location list offset table + case DW_FormKind_SecOffset: // NOTE(rjf): pre-dwarf5, location section offset -> a location list + { + locs = dw2_loclist_from_form_val(scratch2.arena, unit_parse_ctx, raw, attrib->val); + }break; + } + + ////////////////////// + //- rjf: convert DWARF location exprs -> RDIM locations + // + // we do this for each possible frame base location case - locations in DWARF + // refer to the frame base via a special op. in our case, we want to bake that + // into the location directly to reduce extra context for evaluation. + // + // if we find that a location doesn't rely on the frame base at all, we just + // skip the rest. + // + B32 is_tls_dependent = 0; + for EachNode(n, DW2_LocNode, locs.first) + { + //- rjf: unpack location + Rng1U64 range = n->v.range; + String8 expr = n->v.expr; + + //- rjf: iterate each frame base location case, or once if there are none, + // and convert the location in that context + RDIM_LocationCase nil_framebase_loc_case = {0, {0}, {0, max_U64}}; + for(RDIM_LocationCase *framebase_loc_n = top_parent ? top_parent->framebase_location_cases.first : &nil_framebase_loc_case; + framebase_loc_n != 0; + framebase_loc_n = framebase_loc_n->next) + { + //- rjf: unpack framebase location + RDIM_Location framebase_loc = framebase_loc_n->location; + RDIM_Rng1U64 framebase_voff_range = framebase_loc_n->voff_range; + + //- rjf: set up type stack for type-evaluating bytecode + typedef struct D2R_ExprVal D2R_ExprVal; + struct D2R_ExprVal + { + RDI_TypeKind type_kind; + B32 is_addr; + }; + typedef struct D2R_ExprValNode D2R_ExprValNode; + struct D2R_ExprValNode + { + D2R_ExprValNode *next; + D2R_ExprVal v; + }; + D2R_ExprValNode *val_stack_top = 0; + D2R_ExprValNode *free_val = 0; + + //- rjf: process DWARF bytecode; produce RDI bytecode + mini-type-info for the expression's result + typedef struct JumpOpNode JumpOpNode; + struct JumpOpNode + { + JumpOpNode *next; + RDIM_EvalBytecodeOp *op; + S64 inst_delta; + }; + JumpOpNode *first_jump_op = 0; + JumpOpNode *last_jump_op = 0; + RDIM_EvalBytecode dst_bytecode = {0}; + B32 dst_bytecode_is_good = 1; + B32 bytecode_is_framebase_dependent = 0; + for(U64 expr_off = 0; expr_off < expr.size;) + { + U64 start_expr_off = expr_off; + + //- rjf: read next opcode + DW_ExprOp opcode = 0; + expr_off += str8_deserial_read_struct(expr, expr_off, &opcode); + + //- rjf: unpack opcode + DW_ExprOpInfo *opcode_info = dw_info_from_expr_op(unit_parse_ctx->version, unit_parse_ctx->exts, opcode); + U64 operands_count = opcode_info->operand_count; + DW_ExprOperandKind operands_kinds[2] = {opcode_info->operand_kinds[0], opcode_info->operand_kinds[1]}; + U64 push_count = opcode_info->push_count; + U64 pop_count = opcode_info->pop_count; + + //- rjf: read op operands + U64 operand_u64s[2] = {0}; + S64 operand_s64s[2] = {0}; + String8 operand_str8s[2] = {0}; + for EachIndex(operand_idx, operands_count) + { + switch(operands_kinds[operand_idx]) + { + case DW_ExprOperandKind_Null: + default:{}break; + case DW_ExprOperandKind_U8: {expr_off += str8_deserial_read(expr, expr_off, &operand_u64s[operand_idx], 1, 1);}break; + case DW_ExprOperandKind_U16: {expr_off += str8_deserial_read(expr, expr_off, &operand_u64s[operand_idx], 2, 2);}break; + case DW_ExprOperandKind_U32: {expr_off += str8_deserial_read(expr, expr_off, &operand_u64s[operand_idx], 4, 4);}break; + case DW_ExprOperandKind_U64: {expr_off += str8_deserial_read(expr, expr_off, &operand_u64s[operand_idx], 8, 8);}break; + case DW_ExprOperandKind_S8: {expr_off += str8_deserial_read(expr, expr_off, &operand_s64s[operand_idx], 1, 1);}break; + case DW_ExprOperandKind_S16: {expr_off += str8_deserial_read(expr, expr_off, &operand_s64s[operand_idx], 2, 2);}break; + case DW_ExprOperandKind_S32: {expr_off += str8_deserial_read(expr, expr_off, &operand_s64s[operand_idx], 4, 4);}break; + case DW_ExprOperandKind_S64: {expr_off += str8_deserial_read(expr, expr_off, &operand_s64s[operand_idx], 8, 8);}break; + case DW_ExprOperandKind_ULEB128: {expr_off += str8_deserial_read_uleb128(expr, expr_off, &operand_u64s[operand_idx]);} break; + case DW_ExprOperandKind_SLEB128: {expr_off += str8_deserial_read_sleb128(expr, expr_off, &operand_s64s[operand_idx]);} break; + case DW_ExprOperandKind_Addr: {expr_off += str8_deserial_read(expr, expr_off, &operand_u64s[operand_idx], unit_parse_ctx->addr_size, unit_parse_ctx->addr_size);}break; + case DW_ExprOperandKind_DwarfUInt: {expr_off += dw2_read_fmt_u64(expr, expr_off, unit_parse_ctx->format, &operand_u64s[operand_idx]);}break; + case DW_ExprOperandKind_Block: + { + U8 block_size = 0; + expr_off += str8_deserial_read_struct(expr, expr_off, &block_size); + operand_str8s[operand_idx] = str8_substr(expr, r1u64(expr_off, expr_off+block_size)); + expr_off += block_size; + }break; + } + } + + //- rjf: pop stack values + D2R_ExprVal popped_vals[2] = {0}; + { + pop_count = Min(pop_count, ArrayCount(popped_vals)); + for EachIndex(pop_idx, pop_count) + { + if(val_stack_top != 0) + { + D2R_ExprValNode *popped = val_stack_top; + popped_vals[pop_idx] = popped->v; + SLLStackPop(val_stack_top); + SLLStackPush(free_val, popped); + } + } + } + + //- rjf: exec op (produce RDI bytecode, + manipulate value stack) + D2R_ExprVal push_vals[2] = {0}; + U64 regcode_dw = 0; + S64 regval_off = 0; + B32 regread_is_addr = 0; + U64 target_pick_val_idx = 0; + RDI_EvalOp rdi_eval_op = 0; + U64 memread_size = 0; + switch(opcode) + { + default:{}break; + + //- rjf: small opcode-embedded unsigned literals + case DW_ExprOp_Lit0: case DW_ExprOp_Lit1: case DW_ExprOp_Lit2: + case DW_ExprOp_Lit3: case DW_ExprOp_Lit4: case DW_ExprOp_Lit5: + case DW_ExprOp_Lit6: case DW_ExprOp_Lit7: case DW_ExprOp_Lit8: + case DW_ExprOp_Lit9: case DW_ExprOp_Lit10: case DW_ExprOp_Lit11: + case DW_ExprOp_Lit12: case DW_ExprOp_Lit13: case DW_ExprOp_Lit14: + case DW_ExprOp_Lit15: case DW_ExprOp_Lit16: case DW_ExprOp_Lit17: + case DW_ExprOp_Lit18: case DW_ExprOp_Lit19: case DW_ExprOp_Lit20: + case DW_ExprOp_Lit21: case DW_ExprOp_Lit22: case DW_ExprOp_Lit23: + case DW_ExprOp_Lit24: case DW_ExprOp_Lit25: case DW_ExprOp_Lit26: + case DW_ExprOp_Lit27: case DW_ExprOp_Lit28: case DW_ExprOp_Lit29: + case DW_ExprOp_Lit30: case DW_ExprOp_Lit31: + { + U64 lit_val = (U64)(opcode - DW_ExprOp_Lit0); + rdim_bytecode_push_uconst(arena, &dst_bytecode, lit_val); + }break; + + //- rjf: small unsigned literals + case DW_ExprOp_Const1U: push_vals[0].type_kind = RDI_TypeKind_U8; goto const_u; + case DW_ExprOp_Const2U: push_vals[0].type_kind = RDI_TypeKind_U16; goto const_u; + case DW_ExprOp_Const4U: push_vals[0].type_kind = RDI_TypeKind_U32; goto const_u; + case DW_ExprOp_Const8U: push_vals[0].type_kind = RDI_TypeKind_U64; goto const_u; + case DW_ExprOp_ConstU: push_vals[0].type_kind = RDI_TypeKind_U64; goto const_u; + const_u:; + { + rdim_bytecode_push_uconst(arena, &dst_bytecode, operand_u64s[0]); + }break; + + //- rjf: small signed literals + case DW_ExprOp_Const1S: push_vals[0].type_kind = RDI_TypeKind_S8; goto const_s; + case DW_ExprOp_Const2S: push_vals[0].type_kind = RDI_TypeKind_S16; goto const_s; + case DW_ExprOp_Const4S: push_vals[0].type_kind = RDI_TypeKind_S32; goto const_s; + case DW_ExprOp_Const8S: push_vals[0].type_kind = RDI_TypeKind_S64; goto const_s; + case DW_ExprOp_ConstS : push_vals[0].type_kind = RDI_TypeKind_S64; goto const_s; + const_s:; + { + rdim_bytecode_push_sconst(arena, &dst_bytecode, operand_s64s[0]); + }break; + + //- rjf: address (module offsets) + case DW_ExprOp_Addr: + { + U64 voff = operand_u64s[0] - base_vaddr; + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_ModuleOff, voff); + push_vals[0].type_kind = RDI_TypeKind_U64; + push_vals[0].is_addr = 1; + }break; + case DW_ExprOp_Addrx: + if(unit_parse_ctx->addr_table != 0) + { + U64 addr_idx = operand_u64s[0]; + U64 addr = 0; + if(dw2_try_offset_from_table_idx(unit_parse_ctx->addr_table, addr_idx, &addr)) + { + U64 voff = (addr > base_vaddr) ? (addr - base_vaddr) : 0; + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_ModuleOff, voff); + push_vals[0].type_kind = RDI_TypeKind_U64; + push_vals[0].is_addr = 1; + } + }break; + + //- rjf: register reads + case DW_ExprOp_Reg0: case DW_ExprOp_Reg1: case DW_ExprOp_Reg2: + case DW_ExprOp_Reg3: case DW_ExprOp_Reg4: case DW_ExprOp_Reg5: + case DW_ExprOp_Reg6: case DW_ExprOp_Reg7: case DW_ExprOp_Reg8: + case DW_ExprOp_Reg9: case DW_ExprOp_Reg10: case DW_ExprOp_Reg11: + case DW_ExprOp_Reg12: case DW_ExprOp_Reg13: case DW_ExprOp_Reg14: + case DW_ExprOp_Reg15: case DW_ExprOp_Reg16: case DW_ExprOp_Reg17: + case DW_ExprOp_Reg18: case DW_ExprOp_Reg19: case DW_ExprOp_Reg20: + case DW_ExprOp_Reg21: case DW_ExprOp_Reg22: case DW_ExprOp_Reg23: + case DW_ExprOp_Reg24: case DW_ExprOp_Reg25: case DW_ExprOp_Reg26: + case DW_ExprOp_Reg27: case DW_ExprOp_Reg28: case DW_ExprOp_Reg29: + case DW_ExprOp_Reg30: case DW_ExprOp_Reg31: + { + regcode_dw = (U64)(opcode - DW_ExprOp_Reg0); + }goto reg_read; + case DW_ExprOp_RegX: + { + regcode_dw = operand_u64s[0]; + }goto reg_read; + case DW_ExprOp_BReg0: case DW_ExprOp_BReg1: case DW_ExprOp_BReg2: + case DW_ExprOp_BReg3: case DW_ExprOp_BReg4: case DW_ExprOp_BReg5: + case DW_ExprOp_BReg6: case DW_ExprOp_BReg7: case DW_ExprOp_BReg8: + case DW_ExprOp_BReg9: case DW_ExprOp_BReg10: case DW_ExprOp_BReg11: + case DW_ExprOp_BReg12: case DW_ExprOp_BReg13: case DW_ExprOp_BReg14: + case DW_ExprOp_BReg15: case DW_ExprOp_BReg16: case DW_ExprOp_BReg17: + case DW_ExprOp_BReg18: case DW_ExprOp_BReg19: case DW_ExprOp_BReg20: + case DW_ExprOp_BReg21: case DW_ExprOp_BReg22: case DW_ExprOp_BReg23: + case DW_ExprOp_BReg24: case DW_ExprOp_BReg25: case DW_ExprOp_BReg26: + case DW_ExprOp_BReg27: case DW_ExprOp_BReg28: case DW_ExprOp_BReg29: + case DW_ExprOp_BReg30: case DW_ExprOp_BReg31: + { + regcode_dw = (U64)(opcode - DW_ExprOp_BReg0); + regval_off = operand_s64s[1]; + regread_is_addr = 1; + }goto reg_read; + case DW_ExprOp_BRegX: + { + regcode_dw = operand_u64s[0]; + regval_off = operand_s64s[1]; + regread_is_addr = 1; + }goto reg_read; + reg_read:; + { + // rjf: DWARF regcode -> internal regcode + ARCH_RegCode regcode = arch_reg_code_from_dw(arch, regcode_dw); + + // rjf: internal regcode -> RDI, offset, size + RDI_RegCode regcode_rdi = 0; + U64 reg_off = 0; + U64 reg_size = 0; + { + Rng1U16 reg_rng = arch_info->reg_code_rng_table[regcode]; + reg_size = dim_1u16(reg_rng); + regcode_rdi = arch_rdi_from_reg_code_table_from_arch(arch)[regcode]; + } + + // rjf: push op + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_RegRead, RDI_EncodeRegReadParam(regcode_rdi, reg_size, reg_off)); + + // rjf: push add to value offset, if needed + if(regval_off != 0) + { + rdim_bytecode_push_sconst(arena, &dst_bytecode, regval_off); + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); + } + + // rjf: choose if we're doing a float op + B32 is_float_op = 0; + if(arch == Arch_x64 && + (regcode_rdi == RDI_RegCodeX64_st0 || + regcode_rdi == RDI_RegCodeX64_st1 || + regcode_rdi == RDI_RegCodeX64_st2 || + regcode_rdi == RDI_RegCodeX64_st3 || + regcode_rdi == RDI_RegCodeX64_st4 || + regcode_rdi == RDI_RegCodeX64_st5 || + regcode_rdi == RDI_RegCodeX64_st6 || + regcode_rdi == RDI_RegCodeX64_st7)) + { + is_float_op = 1; + } + + // rjf: set up push value + push_vals[0].is_addr = regread_is_addr; + if(is_float_op) + { + switch(reg_size) + { + default:{}break; + case 2: {push_vals[0].type_kind = RDI_TypeKind_F16;}break; + case 4: {push_vals[0].type_kind = RDI_TypeKind_F32;}break; + case 6: {push_vals[0].type_kind = RDI_TypeKind_F48;}break; + case 8: {push_vals[0].type_kind = RDI_TypeKind_F64;}break; + case 10:{push_vals[0].type_kind = RDI_TypeKind_F80;}break; + case 12:{push_vals[0].type_kind = RDI_TypeKind_F96;}break; + case 16:{push_vals[0].type_kind = RDI_TypeKind_F128;}break; + } + } + else + { + switch(reg_size) + { + default:{}break; + case 1:{push_vals[0].type_kind = RDI_TypeKind_U8;}break; + case 2:{push_vals[0].type_kind = RDI_TypeKind_U16;}break; + case 4:{push_vals[0].type_kind = RDI_TypeKind_U32;}break; + case 8:{push_vals[0].type_kind = RDI_TypeKind_U64;}break; + } + } + }break; + + //- rjf: implicit values + case DW_ExprOp_ImplicitValue: + { + if(operand_str8s[0].size <= sizeof(U64)) + { + U64 implicit_value = 0; + MemoryCopy(&implicit_value, operand_str8s[0].str, Min(sizeof(U64), operand_str8s[0].size)); + rdim_bytecode_push_uconst(arena, &dst_bytecode, implicit_value); + switch(operand_str8s[0].size) + { + default:{}break; + case 1:{push_vals[0].type_kind = RDI_TypeKind_U8;}break; + case 2:{push_vals[0].type_kind = RDI_TypeKind_U16;}break; + case 4:{push_vals[0].type_kind = RDI_TypeKind_U32;}break; + case 8:{push_vals[0].type_kind = RDI_TypeKind_U64;}break; + } + } + else + { + log_infof("[.debug_info@0x%I64x] Implicit value DWARF expression operation (DW_ExprOp_ImplicitValue) with block size >8 (%I64u) found. This is not currently supported.\n", start_off, operand_str8s[0].size); + } + }break; + + //- rjf: pieces + case DW_ExprOp_Piece: + { + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_PartialValue, operand_u64s[0]); + }break; + case DW_ExprOp_BitPiece: + { + U64 size = operand_u64s[0]; + U64 off = operand_u64s[1]; + U64 partial_value = ((size<<32)|(off)); + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_PartialValueBit, partial_value); + }break; + + //- rjf: stack ops + case DW_ExprOp_Over: {target_pick_val_idx = 1;}goto pick; + case DW_ExprOp_Pick: {target_pick_val_idx = operand_u64s[0];}goto pick; + case DW_ExprOp_Dup: {target_pick_val_idx = 0;}goto pick; + pick:; + { + // rjf: pick value from stack + D2R_ExprVal picked_val = {0}; + { + U64 idx = 0; + for(D2R_ExprValNode *n = val_stack_top; n != 0; n = n->next) + { + if(idx == target_pick_val_idx) + { + picked_val = n->v; + break; + } + } + } + + // rjf: push opcode + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Pick, target_pick_val_idx); + + // rjf: push val + push_vals[0] = picked_val; + }break; + case DW_ExprOp_Swap: + { + push_vals[0] = popped_vals[1]; + push_vals[1] = popped_vals[0]; + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Swap, 0); + }break; + case DW_ExprOp_Drop: + { + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Pop, 0); + }break; + + //- rjf: jumps + case DW_ExprOp_Skip: rdi_eval_op = RDI_EvalOp_Skip; goto jumps; + case DW_ExprOp_Bra: rdi_eval_op = RDI_EvalOp_Cond; goto jumps; + jumps:; + { + // rjf: jump delta in bytes (how the instruction is encoded) -> jump delta in instructions + S64 jump_delta_bytes = operand_s64s[0]; + S64 jump_delta_insts = 0; + { + // TODO(rjf): expr op jumps bytes -> inst counts + } + + // rjf: push incomplete op (we need to resolve inst delta -> byte delta later, once we have the full bytecode stream) + RDIM_EvalBytecodeOp *op = rdim_bytecode_push_op(arena, &dst_bytecode, rdi_eval_op, 0); + + // rjf: gather op + JumpOpNode *n = push_array(scratch2.arena, JumpOpNode, 1); + SLLQueuePush(first_jump_op, last_jump_op, n); + n->op = op; + n->inst_delta = jump_delta_insts; + }break; + + //- rjf: containing procedure frame offsets + case DW_ExprOp_FBReg: + { + bytecode_is_framebase_dependent = 1; + for EachNode(n, RDIM_EvalBytecodeOp, framebase_loc.bytecode.first_op) + { + rdim_bytecode_push_op(arena, &dst_bytecode, n->op, n->p); + } + rdim_bytecode_push_sconst(arena, &dst_bytecode, operand_s64s[0]); + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Add, RDI_EvalTypeGroup_S); + push_vals[0].type_kind = RDI_TypeKind_U64; + push_vals[0].is_addr = 1; + }break; + + //- rjf: memory reads + case DW_ExprOp_Deref: memread_size = unit_parse_ctx->addr_size; goto deref; + case DW_ExprOp_DerefSize: memread_size = operand_u64s[0]; goto deref; + deref:; + { + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_MemRead, memread_size); + push_vals[0].is_addr = 1; + push_vals[0].type_kind = RDI_TypeKind_U64; + }break; + + //- rjf: TLS offsets + case DW_ExprOp_FormTlsAddress: + case DW_GNU_ExprOp_PushTlsAddress: + { + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_TLSOff, 0); + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Add, RDI_EvalTypeGroup_U); + push_vals[0].is_addr = 1; + push_vals[0].type_kind = RDI_TypeKind_U64; + is_tls_dependent = 1; + }break; + + //- rjf: call site value + case DW_ExprOp_EntryValue: + case DW_GNU_ExprOp_EntryValue: + { + // TODO(rjf): expr op entry value ops + }break; + + //- rjf: fixed adds + case DW_ExprOp_PlusUConst: + { + rdim_bytecode_push_uconst(arena, &dst_bytecode, operand_u64s[0]); + rdim_bytecode_push_op(arena, &dst_bytecode, RDI_EvalOp_Add, RDI_EvalTypeGroup_U); + push_vals[0].type_kind = RDI_TypeKind_U64; // TODO(rjf): do we need to adjust this based on popped value at all, even? + }break; + + //- rjf: arithmetic ops + case DW_ExprOp_Eq: {rdi_eval_op = RDI_EvalOp_EqEq;}goto arithmetic_op; + case DW_ExprOp_Ge: {rdi_eval_op = RDI_EvalOp_GrEq;}goto arithmetic_op; + case DW_ExprOp_Gt: {rdi_eval_op = RDI_EvalOp_Grtr;}goto arithmetic_op; + case DW_ExprOp_Le: {rdi_eval_op = RDI_EvalOp_LsEq;}goto arithmetic_op; + case DW_ExprOp_Lt: {rdi_eval_op = RDI_EvalOp_Less;}goto arithmetic_op; + case DW_ExprOp_Ne: {rdi_eval_op = RDI_EvalOp_Neg;}goto arithmetic_op; + case DW_ExprOp_Div: {rdi_eval_op = RDI_EvalOp_Div;}goto arithmetic_op; + case DW_ExprOp_Minus: {rdi_eval_op = RDI_EvalOp_Sub;}goto arithmetic_op; + case DW_ExprOp_Mul: {rdi_eval_op = RDI_EvalOp_Mul;}goto arithmetic_op; + case DW_ExprOp_Plus: {rdi_eval_op = RDI_EvalOp_Add;}goto arithmetic_op; + case DW_ExprOp_Xor: {rdi_eval_op = RDI_EvalOp_BitXor;}goto arithmetic_op; + case DW_ExprOp_And: {rdi_eval_op = RDI_EvalOp_BitAnd;}goto arithmetic_op; + case DW_ExprOp_Or: {rdi_eval_op = RDI_EvalOp_BitOr;}goto arithmetic_op; + case DW_ExprOp_Shl: {rdi_eval_op = RDI_EvalOp_LShift;}goto arithmetic_op; + case DW_ExprOp_Shr: {rdi_eval_op = RDI_EvalOp_RShift;}goto arithmetic_op; + case DW_ExprOp_Shra: {rdi_eval_op = RDI_EvalOp_RShift;}goto arithmetic_op; + case DW_ExprOp_Mod: {rdi_eval_op = RDI_EvalOp_Mod;}goto arithmetic_op; + case DW_ExprOp_Abs: {rdi_eval_op = RDI_EvalOp_Abs;}goto arithmetic_op; + case DW_ExprOp_Neg: {rdi_eval_op = RDI_EvalOp_Neg;}goto arithmetic_op; + case DW_ExprOp_Not: {rdi_eval_op = RDI_EvalOp_LogNot;}goto arithmetic_op; + arithmetic_op:; + { + // TODO(rjf): eval arithmetic conversions etc. + rdim_bytecode_push_op(arena, &dst_bytecode, rdi_eval_op, RDI_EvalTypeGroup_U); + }break; + + //- rjf: currently unsupported + case DW_ExprOp_XDeref: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression XDeref operation encountered, implying multiple address spaces; this is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_XDerefSize: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression XDerefSize operation encountered, implying multiple address spaces; this is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_Call2: + case DW_ExprOp_Call4: + case DW_ExprOp_CallRef: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression call operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_ImplicitPointer: + case DW_GNU_ExprOp_ImplicitPointer: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression implicit pointer operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_GNU_ExprOp_ParameterRef: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression GNU_ParameterRef operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_DerefType: + case DW_GNU_ExprOp_DerefType: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression DerefType operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_ConstType: + case DW_GNU_ExprOp_ConstType: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression ConstType operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_RegvalType: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression RegvalType operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_PushObjectAddress: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression PushObjectAddress operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_ExprOp_Rot: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression Rot (rotate) operation encountered. This is not supported for location info.\n", start_off); + }break; + case DW_GNU_ExprOp_UnInit: + { + dst_bytecode_is_good = 0; + log_infof("[.debug_info@0x%I64x] DWARF expression GNU_UnInit operation encountered. This is not supported for location info.\n", start_off); + // TODO: flag value as unitialized; this must be last opcode; possible to use with DW_ExprOp_Piece; + } break; + } + + //- rjf: push values to stack + { + push_count = Min(push_count, ArrayCount(push_vals)); + for EachIndex(push_idx, push_count) + { + D2R_ExprValNode *n = free_val; + if(n != 0) + { + SLLStackPop(free_val); + } + else + { + n = push_array(scratch2.arena, D2R_ExprValNode, 1); + } + n->v = push_vals[push_idx]; + SLLStackPush(val_stack_top, n); + } + } + + if(expr_off == start_expr_off) + { + break; + } + } + + //- TODO(rjf): Try to statically evaluate the expression here if possible + // (or maybe intermixed above? investigate...), to reduce to simpler bytecode + // forms - reduce pressure on pattern matching + { + // TODO(rjf) + } + + //- rjf: apply RDI byte offsets to jump ops + { + // TODO(rjf): apply RDI byte offsets to jump ops + } + + //- rjf: map bytecode -> RDIM_Location - we may want to simplify + RDIM_Location loc = {0}; + { + loc.kind = val_stack_top && val_stack_top->v.is_addr ? RDI_LocationKind_AddrBytecodeStream : RDI_LocationKind_ValBytecodeStream; + loc.bytecode = dst_bytecode; + + // rjf: gather first few bytecodes for pattern matching + RDI_EvalOp beginning_ops[5] = {0}; + RDIM_EvalBytecodeOp *beginning_nodes[5] = {0}; + { + U64 idx = 0; + for EachNode(n, RDIM_EvalBytecodeOp, dst_bytecode.first_op) + { + if(idx >= ArrayCount(beginning_ops)) + { + break; + } + beginning_ops[idx] = n->op; + beginning_nodes[idx] = n; + idx += 1; + } + } + + // rjf: match val registers + if(loc.kind == RDI_LocationKind_ValBytecodeStream && + beginning_ops[0] == RDI_EvalOp_RegRead && + beginning_ops[1] == RDI_EvalOp_Stop) + { + U8 rdi_reg_code = (beginning_nodes[0]->p&0x0000FF)>>0; + U8 byte_size = (beginning_nodes[0]->p&0x00FF00)>>8; + U8 byte_off = (beginning_nodes[0]->p&0xFF0000)>>16; + if(byte_size == unit_parse_ctx->addr_size && + byte_off == 0) + { + loc.kind = RDI_LocationKind_ValReg; + loc.reg_code = rdi_reg_code; + } + } + + // rjf: match simple register offsets + if(loc.kind == RDI_LocationKind_AddrBytecodeStream && + beginning_ops[0] == RDI_EvalOp_RegRead && + (beginning_ops[1] == RDI_EvalOp_ConstU8 || + beginning_ops[1] == RDI_EvalOp_ConstU16) && + beginning_ops[2] == RDI_EvalOp_TruncSigned && + beginning_ops[3] == RDI_EvalOp_Add && + beginning_ops[4] == RDI_EvalOp_Stop) + { + U8 rdi_reg_code = (beginning_nodes[0]->p&0x0000FF)>>0; + U8 byte_size = (beginning_nodes[0]->p&0x00FF00)>>8; + U8 byte_off = (beginning_nodes[0]->p&0xFF0000)>>16; + if(byte_off == 0 && byte_size == unit_parse_ctx->addr_size) + { + loc.kind = RDI_LocationKind_AddrRegPlusOff; + loc.reg_code = rdi_reg_code; + loc.offset = beginning_nodes[1]->p; + } + } + + // rjf: match simple module offsets + if(beginning_ops[0] == RDI_EvalOp_ModuleOff && beginning_ops[1] == RDI_EvalOp_Stop) + { + U64 voff = beginning_nodes[0]->p; + loc.kind = RDI_LocationKind_ModuleOff; + loc.offset = voff; + } + else if(((beginning_ops[0] == RDI_EvalOp_ModuleOff && + (beginning_ops[1] == RDI_EvalOp_ConstU8 || + beginning_ops[1] == RDI_EvalOp_ConstU16 || + beginning_ops[1] == RDI_EvalOp_ConstU32 || + beginning_ops[1] == RDI_EvalOp_ConstU64)) || + (beginning_ops[1] == RDI_EvalOp_ModuleOff && + (beginning_ops[0] == RDI_EvalOp_ConstU8 || + beginning_ops[0] == RDI_EvalOp_ConstU16 || + beginning_ops[0] == RDI_EvalOp_ConstU32 || + beginning_ops[0] == RDI_EvalOp_ConstU64))) && + beginning_ops[2] == RDI_EvalOp_Add && + beginning_ops[3] == RDI_EvalOp_Stop) + { + U64 voff = beginning_nodes[0]->p + beginning_nodes[1]->p; + loc.kind = RDI_LocationKind_ModuleOff; + loc.offset = voff; + } + + // rjf: match simple TLS offsets + if(beginning_ops[0] == RDI_EvalOp_TLSOff && beginning_ops[1] == RDI_EvalOp_Stop) + { + U64 toff = beginning_nodes[0]->p; + loc.kind = RDI_LocationKind_TLSOff; + loc.offset = toff; + } + else if(((beginning_ops[0] == RDI_EvalOp_TLSOff && + (beginning_ops[1] == RDI_EvalOp_ConstU8 || + beginning_ops[1] == RDI_EvalOp_ConstU16 || + beginning_ops[1] == RDI_EvalOp_ConstU32 || + beginning_ops[1] == RDI_EvalOp_ConstU64)) || + (beginning_ops[1] == RDI_EvalOp_TLSOff && + (beginning_ops[0] == RDI_EvalOp_ConstU8 || + beginning_ops[0] == RDI_EvalOp_ConstU16 || + beginning_ops[0] == RDI_EvalOp_ConstU32 || + beginning_ops[0] == RDI_EvalOp_ConstU64))) && + beginning_ops[2] == RDI_EvalOp_Add && + beginning_ops[3] == RDI_EvalOp_Stop) + { + U64 toff = beginning_nodes[0]->p + beginning_nodes[1]->p; + loc.kind = RDI_LocationKind_TLSOff; + loc.offset = toff; + } + } + + //- rjf: collect + { + RDIM_Rng1U64 voff_range = {range.min - base_vaddr, range.max - base_vaddr}; + if(bytecode_is_framebase_dependent) + { + voff_range.min = Max(voff_range.min, framebase_voff_range.min); + voff_range.max = Min(voff_range.max, framebase_voff_range.max); + } + rdim_location_case_list_push(arena, dst_locations, loc, voff_range); + dst_is_tls_dependent[0] = is_tls_dependent; + } + + //- rjf: not frame-base dependent? -> break - don't do this per-framebase case + if(!bytecode_is_framebase_dependent) + { + break; + } + } + } + } + } + + //////////////////////// + //- rjf: produce symbols from tag + // + RDIM_Symbol *new_symbol = 0; + RDIM_Scope *new_scope_open = 0; + B32 parent_tag_is_container_to_deduped_tags = 0; + switch(tag.kind) + { + default:{}break; + + //- rjf: determine if parent tag is a container to deduplicated tags + case DW_TagKind_Namespace: + case DW_TagKind_StructureType: + case DW_TagKind_UnionType: + case DW_TagKind_ClassType: + case DW_TagKind_EnumerationType: + case DW_TagKind_Typedef: + { + parent_tag_is_container_to_deduped_tags = 1; + }break; + + //- rjf: subprograms (procedures) + case DW_TagKind_SubProgram: + if(!is_decl) + { + RDIM_Scope *root_scope = rdim_scope_chunk_list_push(arena, &dst_artifacts->scopes, chunk_count); + RDIM_Symbol *procedure = rdim_symbol_chunk_list_push(arena, &dst_artifacts->procedures, chunk_count); + procedure->name = name; + procedure->link_name = link_name; + procedure->type = type; + procedure->root_scope = root_scope; + procedure->location_cases = framebase_location_cases; + root_scope->symbol = procedure; + root_scope->voff_ranges = ranges; + dst_artifacts->scopes.scope_voff_count += 2*ranges.count; + new_symbol = procedure; + new_scope_open = root_scope; + }break; + + //- rjf: inline site + case DW_TagKind_InlinedSubroutine: + { + // TODO(rjf) + }break; + + //- rjf: variables + case DW_TagKind_Variable: + case DW_TagKind_FormalParameter: + if(name.size != 0) + { + U64 var_chunk_count = chunk_count; + RDIM_SymbolChunkList *dst_symbols = &dst_artifacts->global_variables; + if(location_is_tls_dependent) + { + dst_symbols = &dst_artifacts->thread_variables; + } + else if(top_parent != 0 && top_parent->scope != 0) + { + dst_symbols = &top_parent->scope->locals; + var_chunk_count = 8; + } + RDIM_Symbol *var = rdim_symbol_chunk_list_push(arena, dst_symbols, var_chunk_count); + var->is_extern = is_external; + var->is_param = (tag.kind == DW_TagKind_FormalParameter); + var->name = name; + var->link_name = link_name; + var->type = type; + var->location_cases = location_cases; + new_symbol = var; + }break; + + //- rjf: lexical blocks (scopes) + case DW_TagKind_LexicalBlock: + { + RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, &dst_artifacts->scopes, chunk_count); + scope->voff_ranges = ranges; + dst_artifacts->scopes.scope_voff_count += 2*ranges.count; + new_scope_open = scope; + }break; + } + + //////////////////////// + //- rjf: if we've determined that the parent tag is a container to + // deduplicated tags (types, namespaces), then we need to record + // the .debug_info offset -> scope mapping for this scope, so it + // can be equipped as a container later. + // + if(parent_tag_is_container_to_deduped_tags) + { + U64 info_off = 0; + RDIM_Scope *scope = 0; + for(D2R_ParentNode *n = top_parent; n != 0; n = n->next) + { + if(n->scope != 0) + { + info_off = n->info_off; + scope = n->scope; + break; + } + } + if(scope != 0) + { + D2R_ScopeContainerNode *n = push_array(scratch.arena, D2R_ScopeContainerNode, 1); + n->info_off = info_off; + n->scope = scope; + U64 hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 slot_idx = hash%scope_container_map->slots_count; + for(B32 gathered = 0; !gathered;) + { + U64 expected_head_value = ins_atomic_u64_eval(&scope_container_map->slots[slot_idx]); + n->next = (D2R_ScopeContainerNode *)expected_head_value; + if(expected_head_value == ins_atomic_u64_eval_cond_assign(&scope_container_map->slots[slot_idx], (U64)n, expected_head_value)) + { + gathered = 1; + } + } + } + } + + //////////////////////// + //- rjf: equip new symbols with container info + // + if(new_symbol != 0 && top_parent != 0) + { + if(top_parent->scope != 0) + { + new_symbol->container_scope = top_parent->scope; + } + else if(top_parent->container_type != 0) + { + new_symbol->container_type = top_parent->container_type; + } + else if(top_parent->container_namespace != 0) + { + new_symbol->container_namespace = top_parent->container_namespace; + } + } + + //////////////////////// + //- rjf: insert new scopes to their parent + // + if(new_scope_open && top_parent != 0 && top_parent->scope != 0) + { + RDIM_Scope *parent = top_parent->scope; + SLLQueuePush_N(parent->first_child, parent->last_child, new_scope_open, next_sibling); + new_scope_open->parent_scope = parent; + if(new_scope_open->symbol == 0) + { + new_scope_open->symbol = parent->symbol; + } + } + + //////////////////////// + //- rjf: gather container info for new tag parents + // + RDIM_Type *container_type = 0; + RDIM_Namespace *container_namespace = 0; + if(tag.has_children) + { + // rjf: info offset -> hash + U64 hash = 0; + { + D2R_UnitDedupedTagMap *unit_deduped_tag_map = &unit_deduped_tag_maps[unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&start_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_map->slots_count; + for EachNode(n, D2R_UnitDedupedTagNode, unit_deduped_tag_map->slots[info_off_slot_idx]) + { + if(n->src_info_off == start_off) + { + hash = n->dst_hash; + break; + } + } + } + + // rjf: map hash -> unique tag node + D2R_UniqueTagNode *tag_node = 0; + { + U64 slot_idx = hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[slot_idx]; n != 0; n = n->next) + { + if(n->hash == hash) + { + tag_node = n; + break; + } + } + } + + // rjf: map tag node -> type/namespace + if(tag_node != 0) switch(tag_node->kind) + { + default:{}break; + case D2R_UniqueTagKind_Type: {container_type = type_from_idx_map[tag_node->order_idx];}break; + case D2R_UniqueTagKind_Namespace:{container_namespace = namespace_from_idx_map[tag_node->order_idx];}break; + } + } + + //////////////////////// + //- rjf: push tag parents + // + if(tag.has_children) + { + // rjf: push new parent to stack + D2R_ParentNode *n = free_parent; + if(n != 0) + { + SLLStackPop(free_parent); + } + else + { + n = push_array(scratch.arena, D2R_ParentNode, 1); + } + n->tag_kind = tag.kind; + n->info_off = start_off; + n->scope = new_scope_open ? new_scope_open : top_parent ? top_parent->scope : 0; + n->container_type = new_scope_open ? 0 : container_type; + n->container_namespace = new_scope_open ? 0 : container_namespace; + if(framebase_attrib != &dw2_attrib_nil) + { + n->framebase_location_cases = framebase_location_cases; + } + else if(top_parent != 0) + { + n->framebase_location_cases = top_parent->framebase_location_cases; + } + SLLStackPush(top_parent, n); + } + + //////////////////////// + //- rjf: pop scopes + // + if(tag.kind == DW_TagKind_Null && top_parent != 0) + { + D2R_ParentNode *n = top_parent; + SLLStackPop(top_parent); + SLLStackPush(free_parent, n); + } + + //////////////////////// + //- rjf: tree nav + // + if(tag.has_children) + { + depth += 1; + } + if(tag.kind == DW_TagKind_Null) + { + depth -= 1; + } + + scratch_end(scratch2); + if(off == start_off) + { + break; + } + } + } + } + lane_sync(); + } + + //////////////////////////// + //- rjf: join all symbols from all sub-unit works into their units + // + ProfScope("join all symbols from all sub-unit works into their units") + { + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr)-1; + if(unit_idx >= unit_count) + { + break; + } + RDIM_Unit *dst_unit = unit_from_idx_map[unit_idx]; + for EachIndex(work_idx, sub_unit_works_count) + { + if(sub_unit_works[work_idx].unit_idx == unit_idx) + { + rdim_symbol_chunk_list_concat_in_place(&dst_unit->global_variables, &sub_unit_work_artifacts[work_idx].global_variables); + rdim_symbol_chunk_list_concat_in_place(&dst_unit->thread_variables, &sub_unit_work_artifacts[work_idx].thread_variables); + rdim_symbol_chunk_list_concat_in_place(&dst_unit->constants, &sub_unit_work_artifacts[work_idx].constants); + rdim_symbol_chunk_list_concat_in_place(&dst_unit->procedures, &sub_unit_work_artifacts[work_idx].procedures); + rdim_scope_chunk_list_concat_in_place(&dst_unit->scopes, &sub_unit_work_artifacts[work_idx].scopes); + rdim_inline_site_chunk_list_concat_in_place(&dst_unit->inline_sites, &sub_unit_work_artifacts[work_idx].inline_sites); + } + } + } + lane_sync(); + } + + //////////////////////////// + //- rjf: upgrade all types with namespacing info + // + ProfScope("upgrade all types with namespacing info") + { + Rng1U64 range = lane_range(type_count); + for EachInRange(type_idx, range) + { + D2R_UniqueTagNode *type_tag_node = type_tag_nodes[type_idx]; + U64 container_ancestor_info_off = type_tag_node->container_ancestor_info_off; + RDIM_Type *dst_type = type_from_idx_map[type_idx]; + if(dst_type == 0) + { + continue; + } + RDIM_UDT *dst_udt = dst_type->udt; + if(dst_udt == 0) + { + continue; + } + + // rjf: find container scopes + RDIM_Scope *container_scope = 0; + { + U64 info_off = container_ancestor_info_off; + U64 hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 slot_idx = hash%scope_container_map->slots_count; + for(D2R_ScopeContainerNode *n = scope_container_map->slots[slot_idx]; n != 0; n = n->next) + { + if(n->info_off == info_off) + { + container_scope = n->scope; + break; + } + } + } + + // rjf: find container types/namespaces + RDIM_Type *container_type = 0; + RDIM_Namespace *container_namespace = 0; + if(!container_scope) + { + U64 info_off = container_ancestor_info_off; + U64 unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, info_off); + U64 unit_idx = unit_num > 0 ? unit_num-1 : 0; + + // rjf: info off -> hash + U64 hash = 0; + { + D2R_UnitDedupedTagMap *unit_deduped_tag_map = &unit_deduped_tag_maps[unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_map->slots_count; + for(D2R_UnitDedupedTagNode *n = unit_deduped_tag_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == info_off) + { + hash = n->dst_hash; + break; + } + } + } + + // rjf: hash -> type + { + U64 unique_type_tag_slot_idx = hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == hash) + { + if(n->kind == D2R_UniqueTagKind_Type) + { + container_type = type_from_idx_map[n->order_idx]; + } + else if(n->kind == D2R_UniqueTagKind_Namespace) + { + container_namespace = namespace_from_idx_map[n->order_idx]; + } + break; + } + } + } + } + + // rjf: fill + dst_udt->container_scope = container_scope; + dst_udt->container_type = container_type; + dst_udt->container_namespace = container_namespace; + } + } + lane_sync(); + + //////////////////////////// + //- rjf: upgrade all namespaces with namespacing info + // + ProfScope("upgrade all namespaces with namespacing info") + { + Rng1U64 range = lane_range(namespace_count); + for EachInRange(namespace_idx, range) + { + D2R_UniqueTagNode *unique_tag_node = namespace_tag_nodes[namespace_idx]; + U64 container_ancestor_info_off = unique_tag_node->container_ancestor_info_off; + RDIM_Namespace *dst_namespace = namespace_from_idx_map[namespace_idx]; + if(dst_namespace == 0) + { + continue; + } + + // rjf: find container scopes + RDIM_Scope *container_scope = 0; + { + U64 info_off = container_ancestor_info_off; + U64 hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 slot_idx = hash%scope_container_map->slots_count; + for(D2R_ScopeContainerNode *n = scope_container_map->slots[slot_idx]; n != 0; n = n->next) + { + if(n->info_off == info_off) + { + container_scope = n->scope; + break; + } + } + } + + // rjf: find container types/namespaces + RDIM_Type *container_type = 0; + RDIM_Namespace *container_namespace = 0; + { + U64 info_off = container_ancestor_info_off; + U64 unit_num = rng1u64_array_num_from_value__binary_search(&unit_info_tag_ranges_array, info_off); + U64 unit_idx = unit_num > 0 ? unit_num-1 : 0; + + // rjf: info off -> hash + U64 hash = 0; + { + D2R_UnitDedupedTagMap *unit_deduped_tag_map = &unit_deduped_tag_maps[unit_idx]; + U64 info_off_hash = u64_hash_from_str8(str8_struct(&info_off)); + U64 info_off_slot_idx = info_off_hash%unit_deduped_tag_map->slots_count; + for(D2R_UnitDedupedTagNode *n = unit_deduped_tag_map->slots[info_off_slot_idx]; n != 0; n = n->next) + { + if(n->src_info_off == info_off) + { + hash = n->dst_hash; + break; + } + } + } + + // rjf: hash -> type + { + U64 unique_type_tag_slot_idx = hash%unique_tag_slots_count; + for(D2R_UniqueTagNode *n = unique_tag_slots[unique_type_tag_slot_idx]; n != 0; n = n->next) + { + if(n->hash == hash) + { + if(n->kind == D2R_UniqueTagKind_Type) + { + container_type = type_from_idx_map[n->order_idx]; + } + else if(n->kind == D2R_UniqueTagKind_Namespace) + { + container_namespace = namespace_from_idx_map[n->order_idx]; + } + break; + } + } + } + } + + // rjf: fill + dst_namespace->parent_scope = container_scope; + dst_namespace->parent_type = container_type; + dst_namespace->parent_namespace = container_namespace; + } + } + lane_sync(); + + //////////////////////////// + //- rjf: fill result + // + RDIM_BakeParams result = {0}; + { + result.subset_flags = params->subset_flags; + result.top_level_info = top_level_info; + result.binary_sections = binary_sections; + result.units = *all_units; + result.namespaces = *all_namespaces; + result.types = *all_types; + result.udts = *all_udts; + result.src_files = *all_src_files; + result.line_tables = *all_line_tables; + } + +#undef d2r_type_from_builtin_kind + lane_sync(); scratch_end(scratch); - return bake_params; + return result; } diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.h b/src/rdi_from_dwarf/rdi_from_dwarf.h index 5b297184..85bb78ad 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.h +++ b/src/rdi_from_dwarf/rdi_from_dwarf.h @@ -1,169 +1,84 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -#pragma once +#ifndef RDI_FROM_DWARF_H +#define RDI_FROM_DWARF_H + +//////////////////////////////// +//~ rjf: Tag Hash Cache Types + +typedef struct D2R_TagHashNode D2R_TagHashNode; +struct D2R_TagHashNode +{ + D2R_TagHashNode *next; + U64 container_ancestor_info_off; + U64 info_off; + U64 hash; +}; + +//////////////////////////////// +//~ rjf: Unique Tag Tree Deduplication Types + +typedef enum D2R_UniqueTagKind +{ + D2R_UniqueTagKind_Type, + D2R_UniqueTagKind_Namespace, + D2R_UniqueTagKind_COUNT +} +D2R_UniqueTagKind; + +typedef struct D2R_UniqueTagNode D2R_UniqueTagNode; +struct D2R_UniqueTagNode +{ + D2R_UniqueTagNode *next; + D2R_UniqueTagKind kind; + U64 hash; + U64 info_off; + U64 container_ancestor_info_off; + U64 dependency_count; + U64 order_idx; +}; + +typedef struct D2R_UnitDedupedTagNode D2R_UnitDedupedTagNode; +struct D2R_UnitDedupedTagNode +{ + D2R_UnitDedupedTagNode *next; + U64 src_info_off; + U64 dst_hash; +}; + +typedef struct D2R_UnitDedupedTagMap D2R_UnitDedupedTagMap; +struct D2R_UnitDedupedTagMap +{ + D2R_UnitDedupedTagNode **slots; + U64 slots_count; +}; + +//////////////////////////////// +//~ rjf: Conversion Stage Inputs (New) typedef struct D2R_ConvertParams D2R_ConvertParams; struct D2R_ConvertParams { - String8 dbg_name; - String8 dbg_data; - String8 exe_name; - String8 exe_data; - ExecutableImageKind exe_kind; - RDIM_SubsetFlags subset_flags; - B32 deterministic; + String8 exe_name; + String8 exe_data; + Arch arch; + U64 base_vaddr; + RDIM_BinarySectionList binary_sections; + DW_Raw raw; + PathStyle path_style; + RDIM_SubsetFlags subset_flags; + B32 deterministic; }; -typedef struct D2R_TypeTable -{ - HashTable *ht; - RDIM_TypeChunkList *types; - U64 type_chunk_cap; - RDIM_Type **builtin_types; -} D2R_TypeTable; +//////////////////////////////// +//~ rjf: Helpers -typedef struct D2R_TagFrame -{ - DW_TagNode *node; - RDIM_Scope *scope; - struct D2R_TagFrame *next; -} D2R_TagFrame; - -typedef struct D2R_TagIterator -{ - D2R_TagFrame *free_list; - D2R_TagFrame *stack; - DW_TagNode *tag_node; - B32 visit_children; -} D2R_TagIterator; - -typedef struct D2R_CompUnitContribMap -{ - U64 count; - U64 *info_off_arr; - RDIM_Rng1U64ChunkList *voff_range_arr; -} D2R_CompUnitContribMap; - -#define D2R_ValueType_IsSigned(x) ((x) == D2R_ValueType_S8 || (x) == D2R_ValueType_S16 || (x) == D2R_ValueType_S32 || (x) == D2R_ValueType_S64 || (x) == D2R_ValueType_S128 || (x) == D2R_ValueType_S256 || (x) == D2R_ValueType_S512) -#define D2R_ValueType_IsUnsigned(x) ((x) == D2R_ValueType_U8 || (x) == D2R_ValueType_U16 || (x) == D2R_ValueType_U32 || (x) == D2R_ValueType_U64 || (x) == D2R_ValueType_U128 || (x) == D2R_ValueType_U256 || (x) == D2R_ValueType_U512) -#define D2R_ValueType_IsFloat(x) ((x) == D2R_ValueType_F32 || (x) == D2R_ValueType_F64) -#define D2R_ValueType_IsInt(x) (D2R_ValueType_IsSigned(x) || D2R_ValueType_IsUnsigned(x) || (x) == D2R_ValueType_Address) -typedef enum D2R_ValueType -{ - D2R_ValueType_Generic, - D2R_ValueType_U8, - D2R_ValueType_U16, - D2R_ValueType_U32, - D2R_ValueType_U64, - D2R_ValueType_U128, - D2R_ValueType_U256, - D2R_ValueType_U512, - D2R_ValueType_S8, - D2R_ValueType_S16, - D2R_ValueType_S32, - D2R_ValueType_S64, - D2R_ValueType_S128, - D2R_ValueType_S256, - D2R_ValueType_S512, - D2R_ValueType_F32, - D2R_ValueType_F64, - D2R_ValueType_Address, - D2R_ValueType_ImplicitValue, - D2R_ValueType_Bool = D2R_ValueType_S8, -} D2R_ValueType; - -typedef struct D2R_ValueTypeNode -{ - D2R_ValueType type; - - struct D2R_ValueTypeNode *next; -} D2R_ValueTypeNode; - -typedef struct D2R_ValueTypeStack -{ - U64 count; - D2R_ValueTypeNode *top; - D2R_ValueTypeNode *free_list; -} D2R_ValueTypeStack; +internal int d2r_unique_tag_node_is_less_than(D2R_UniqueTagNode **l, D2R_UniqueTagNode **r); //////////////////////////////// -//~ rjf: Enum Conversion Helpers - -internal RDI_Language d2r_rdi_language_from_dw_language(DW_Language v); -internal RDI_RegCodeX86 d2r_rdi_reg_code_from_dw_reg_x86(DW_RegX86 v); -internal RDI_RegCodeX64 d2r_rdi_reg_code_from_dw_reg_x64(DW_RegX64 v); -internal RDI_RegCode d2r_rdi_reg_code_from_dw_reg(Arch arch, DW_Reg v); - -//////////////////////////////// -//~ rjf: Type Conversion Helpers - -internal RDIM_Type * d2r_create_type(Arena *arena, D2R_TypeTable *type_table); -internal RDIM_Type * d2r_create_type_from_offset(Arena *arena, D2R_TypeTable *type_table, U64 info_off); -internal RDIM_Type * d2r_type_from_offset(D2R_TypeTable *type_table, U64 info_off); -internal RDIM_Type * d2r_type_from_attrib(D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Tag tag, DW_AttribKind kind); -internal Rng1U64List d2r_range_list_from_tag(Arena *arena, DW_Input *input, DW_CompUnit *cu, U64 image_base, DW_Tag tag); -internal RDIM_Type ** d2r_collect_proc_params(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_TagNode *cur_node, U64 *param_count_out); -internal RDI_TypeKind d2r_unsigned_type_kind_from_size(U64 byte_size); -internal RDI_TypeKind d2r_signed_type_kind_from_size(U64 byte_size); -internal RDI_EvalTypeGroup d2r_type_group_from_type_kind(RDI_TypeKind x); - -//////////////////////////////// -//~ RDIM Bytecode Helpers - -internal B32 rdim_is_eval_bytecode_static(RDIM_EvalBytecode bc); -internal U64 rdim_virt_off_from_eval_bytecode(RDIM_EvalBytecode bc, U64 image_base); - -//////////////////////////////// -//~ rjf: Bytecode Conversion Helpers - -internal D2R_ValueTypeNode * d2r_value_type_stack_push(Arena *arena, D2R_ValueTypeStack *stack, D2R_ValueType type); -internal D2R_ValueType d2r_value_type_stack_pop(D2R_ValueTypeStack *stack); -internal D2R_ValueType d2r_value_type_stack_peek(D2R_ValueTypeStack *stack); - -internal D2R_ValueType d2r_unsigned_value_type_from_bit_size(U64 bit_size); -internal D2R_ValueType d2r_signed_value_type_from_bit_size(U64 bit_size); -internal D2R_ValueType d2r_float_type_from_bit_size(U64 bit_size); -internal RDI_EvalTypeGroup d2r_value_type_to_rdi(D2R_ValueType v); -internal U64 d2r_size_from_value_type(U64 addr_size, D2R_ValueType value_type); -internal D2R_ValueType d2r_pick_common_value_type(D2R_ValueType lhs, D2R_ValueType rhs); - -internal D2R_ValueType d2r_apply_usual_arithmetic_conversions(Arena *arena, D2R_ValueType lhs, D2R_ValueType rhs, RDIM_EvalBytecode *bc); -internal void d2r_push_arithmetic_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op); -internal void d2r_push_relational_op(Arena *arena, D2R_ValueTypeStack *stack, RDIM_EvalBytecode *bc, RDI_EvalOp op); - -internal RDIM_EvalBytecode d2r_bytecode_from_expression(Arena *arena, DW_Input *input, U64 image_base, U64 address_size, Arch arch, DW_ListUnit *addr_lu, String8 expr, DW_CompUnit *cu, D2R_ValueType *result_type_out); -internal RDIM_Location * d2r_transpile_expression(Arena *arena, RDIM_LocationChunkList *locations, DW_Input *input, U64 image_base, U64 address_size, Arch arch, DW_ListUnit *addr_lu, DW_CompUnit *cu, String8 expr); -internal RDIM_Location * d2r_location_from_attrib(Arena *arena, RDIM_LocationChunkList *locations, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind); -internal RDIM_LocationCaseList d2r_locset_from_attrib(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *curr_scope, RDIM_LocationChunkList *locations, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag, DW_AttribKind kind); -internal RDIM_LocationCaseList d2r_var_locset_from_tag(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Scope *curr_scope, RDIM_LocationChunkList *locations, DW_Input *input, DW_CompUnit *cu, U64 image_base, Arch arch, DW_Tag tag); - -//////////////////////////////// -//~ rjf: Compilation Unit / Scope Conversion Helpers - -internal D2R_CompUnitContribMap d2r_cu_contrib_map_from_aranges(Arena *arena, DW_Input *input, U64 image_base); -internal RDIM_Rng1U64ChunkList d2r_voff_ranges_from_cu_info_off(D2R_CompUnitContribMap map, U64 info_off); - -//////////////////////////////// -//~ Tag Iterator - -internal D2R_TagIterator * d2r_tag_iterator_init(Arena *arena, DW_TagNode *root); -internal void d2r_tag_iterator_next(Arena *arena, D2R_TagIterator *iter); -internal void d2r_tag_iterator_skip_children(D2R_TagIterator *iter); -internal DW_TagNode * d2r_tag_iterator_parent_tag_node(D2R_TagIterator *iter); -internal DW_Tag d2r_tag_iterator_parent_tag(D2R_TagIterator *iter); - -//////////////////////////////// -//~ Type/UDT/Symbol Conversion - -internal void d2r_flag_converted_tag(DW_TagNode *tag_node); -internal B8 d2r_is_tag_converted(DW_TagNode *tag_node); - -internal void d2r_convert_types(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Language cu_lang, U64 arch_addr_size, DW_TagNode *root); -internal void d2r_convert_udts(Arena *arena, D2R_TypeTable *type_table, DW_Input *input, DW_CompUnit *cu, DW_Language cu_lang, U64 arch_addr_size, DW_TagNode *root); -internal void d2r_convert_symbols(Arena *arena, D2R_TypeTable *type_table, RDIM_Scope *global_scope, DW_Input *input, DW_CompUnit *cu, DW_Language cu_lang, U64 arch_addr_size, U64 image_base, Arch arch, DW_TagNode *root); - -//////////////////////////////// -//~ rjf: Main Conversion Entry Point +//~ rjf: Main Conversion Entry Point (New) internal RDIM_BakeParams d2r_convert(Arena *arena, D2R_ConvertParams *params); + +#endif // RDI_FROM_DWARF_H diff --git a/src/rdi_from_dwarf/tests/rdi_from_dwarf_tests.c b/src/rdi_from_dwarf/tests/rdi_from_dwarf_tests.c new file mode 100644 index 00000000..f9a069cd --- /dev/null +++ b/src/rdi_from_dwarf/tests/rdi_from_dwarf_tests.c @@ -0,0 +1,185 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +SkippedTest(d2r_regressions) +{ + String8 radbin_path = test_build_exe_path(arena, s("radbin")); + String8 bin_paths[] = + { + test_input_path(arena, ctx, s("raddbg_linux_dac63d6b/raddbg")), + }; + + // rjf: generate RDIs + { + ProcessList processes = {0}; + for EachElement(bin_idx, bin_paths) + { + String8 bin_path = bin_paths[bin_idx]; + String8 rdi_path = str8f(arena, "%S/%I64u.rdi", ctx->artifacts_path, bin_idx); + Process process = launch_cmd_line(str8f(arena, "%S --rdi --deterministic %S --out:%S", radbin_path, bin_path, rdi_path)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: generate dumps + { + ProcessList processes = {0}; + for EachElement(bin_idx, bin_paths) + { + String8 rdi_path = str8f(arena, "%S/%I64u.rdi", ctx->artifacts_path, bin_idx); + String8 dump_path = str8f(arena, "%S/current_%I64u", ctx->artifacts_path, bin_idx); + Process process = launch_cmd_line(str8f(arena, "%S --dump --deterministic %S --out:%S", radbin_path, rdi_path, dump_path)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: check against exemplars + { + for EachElement(bin_idx, bin_paths) + { + Temp scratch = scratch_begin(&arena, 1); + String8 dump_path_current = str8f(scratch.arena, "%S/current_%I64u", ctx->artifacts_path, bin_idx); + String8 dump_data_current = data_from_file_path(scratch.arena, dump_path_current); + String8 dump_path_exemplar = test_exemplar_path(scratch.arena, ctx, str8f(scratch.arena, "exemplar_%I64u", bin_idx)); + String8 dump_data_exemplar = data_from_file_path(scratch.arena, dump_path_exemplar); + B32 dump_matches = str8_match(dump_data_current, dump_data_exemplar, 0); + if(!dump_matches) + { + String8 diff_cmd = str8f(scratch.arena, "diff %S %S", + path_normalized_from_string(scratch.arena, dump_path_current), + path_normalized_from_string(scratch.arena, dump_path_exemplar)); + test_outf("Current log does not match exemplar; run `%S`\n", diff_cmd); + } + TestCheck(dump_matches); + scratch_end(scratch); + } + } +} + +SkippedTest(d2r_determinism) +{ + U64 num_repeats_per_bin = 16; + String8 radbin_path = test_build_exe_path(arena, s("radbin")); + String8 bin_paths[] = + { + test_input_path(arena, ctx, s("raddbg_linux_dac63d6b/raddbg")), + }; + for EachElement(bin_idx, bin_paths) + { + // rjf: unpack paths, make output directory + String8 bin_path = bin_paths[bin_idx]; + + // rjf: generate all RDIs + String8List rdi_paths = {0}; + String8List dump_paths = {0}; + { + ProcessList processes = {0}; + for EachIndex(repeat_idx, num_repeats_per_bin) + { + String8 rdi_name = str8f(arena, "repeat_%I64u.rdi", repeat_idx); + String8 rdi_path = str8f(arena, "%S/%S", ctx->artifacts_path, rdi_name); + str8_list_push(arena, &rdi_paths, rdi_path); + String8 cmdl = str8f(arena, "%S --rdi --deterministic %S --out:%S", radbin_path, bin_path, rdi_path); + Process process = launch_cmd_line(cmdl); + TestCheck(!process_match(process_zero(), process)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: generate all dumps + { + ProcessList processes = {0}; + for EachNode(n, String8Node, rdi_paths.first) + { + String8 rdi_path = n->string; + String8 dump_path = str8f(arena, "%S.dump", rdi_path); + str8_list_push(arena, &dump_paths, dump_path); + Process process_handle = launch_cmd_linef("%S --dump --deterministic %S --out:%S", radbin_path, rdi_path, dump_path); + TestCheck(!process_match(process_zero(), process_handle)); + process_list_push(arena, &processes, process_handle); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: gather all hashes/paths + U64 rdi_hashes_count = rdi_paths.node_count; + U128 *rdi_hashes = push_array(arena, U128, rdi_hashes_count); + String8 *rdi_paths_array = push_array(arena, String8, rdi_hashes_count); + U64 dump_hashes_count = dump_paths.node_count; + U128 *dump_hashes = push_array(arena, U128, dump_hashes_count); + String8 *dump_paths_array = push_array(arena, String8, dump_hashes_count); + { + U64 idx = 0; + for EachNode(n, String8Node, rdi_paths.first) + { + Temp scratch = scratch_begin(0, 0); + String8 rdi_path = n->string; + String8 path = rdi_path; + String8 data = data_from_file_path(scratch.arena, path); + TestCheck(data.size != 0); + rdi_hashes[idx] = u128_hash_from_str8(data); + rdi_paths_array[idx] = path; + scratch_end(scratch); + idx += 1; + } + } + { + U64 idx = 0; + for EachNode(n, String8Node, dump_paths.first) + { + Temp scratch = scratch_begin(0, 0); + String8 path = n->string; + String8 data = data_from_file_path(scratch.arena, path); + TestCheck(data.size != 0); + dump_hashes[idx] = u128_hash_from_str8(data); + dump_paths_array[idx] = path; + scratch_end(scratch); + idx += 1; + } + } + + // rjf: determine if all hashes match + U64 mismatch_num = 0; + for EachIndex(idx, rdi_hashes_count) + { + if(!u128_match(rdi_hashes[idx], rdi_hashes[0])) + { + mismatch_num = idx+1; + break; + } + } + for EachIndex(idx, dump_hashes_count) + { + if(!u128_match(dump_hashes[idx], dump_hashes[0])) + { + mismatch_num = idx+1; + break; + } + } + + // rjf: output bad case info + if(mismatch_num != 0) + { + U64 idx = mismatch_num-1; + test_outf(" bin[%I64u] \"%S\"\n", idx, bin_path); + test_outf(" rdi[%I64u] 0x%I64x:%I64x \"%S\"\n", idx, rdi_hashes[idx].u64[0], rdi_hashes[idx].u64[1], rdi_paths_array[idx]); + test_outf(" dump[%I64u] 0x%I64x:%I64x \"%S\"\n", idx, dump_hashes[idx].u64[0], dump_hashes[idx].u64[1], dump_paths_array[idx]); + } + TestCheck(mismatch_num == 0); + } +} diff --git a/src/rdi_from_elf/rdi_from_elf.c b/src/rdi_from_elf/rdi_from_elf.c index ccbb1351..54ba08ab 100644 --- a/src/rdi_from_elf/rdi_from_elf.c +++ b/src/rdi_from_elf/rdi_from_elf.c @@ -2,8 +2,35 @@ // Licensed under the MIT license (https://opensource.org/license/mit/) internal RDIM_BinarySectionList -e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, ELF_Shdr64Array shdrs) +e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, String8 data, ELF_Bin *bin, ELF_Shdr64Array *shdrs) { RDIM_BinarySectionList result = {0}; + for EachIndex(idx, shdrs->count) + { + // rjf: unpack section + ELF_Shdr64 *src_section = &shdrs->v[idx]; + String8 name = elf_name_from_shdr64(data, bin, src_section); + U64 voff_first = src_section->sh_addr; + U64 voff_opl = voff_first + src_section->sh_size; + U64 foff_first = src_section->sh_offset; + U64 foff_opl = foff_first + src_section->sh_size; + + // rjf: map flags -> rdi + RDI_BinarySectionFlags flags = RDI_BinarySectionFlag_Read; + if(src_section->sh_flags & ELF_Shf_Write) { flags |= RDI_BinarySectionFlag_Write; } + if(src_section->sh_flags & ELF_Shf_ExecInstr) { flags |= RDI_BinarySectionFlag_Execute; } + + // rjf: make rdi section if not empty + if(name.size != 0 || voff_opl != voff_first || foff_opl != foff_first) + { + RDIM_BinarySection *dst_section = rdim_binary_section_list_push(arena, &result); + dst_section->name = name; + dst_section->flags = flags; + dst_section->voff_first = voff_first; + dst_section->voff_opl = voff_opl; + dst_section->foff_first = foff_first; + dst_section->foff_opl = foff_opl; + } + } return result; } diff --git a/src/rdi_from_elf/rdi_from_elf.h b/src/rdi_from_elf/rdi_from_elf.h index 3d979c8f..bdb8faf5 100644 --- a/src/rdi_from_elf/rdi_from_elf.h +++ b/src/rdi_from_elf/rdi_from_elf.h @@ -4,6 +4,6 @@ #ifndef RDI_FROM_ELF_H #define RDI_FROM_ELF_H -internal RDIM_BinarySectionList e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, ELF_Shdr64Array shdrs); +internal RDIM_BinarySectionList e2r_rdi_binary_sections_from_elf_section_table(Arena *arena, String8 data, ELF_Bin *bin, ELF_Shdr64Array *shdrs); #endif // RDI_FROM_ELF_H diff --git a/src/rdi_from_pdb/rdi_from_pdb.c b/src/rdi_from_pdb/rdi_from_pdb.c index 9c3fc512..3ec2ba2c 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.c +++ b/src/rdi_from_pdb/rdi_from_pdb.c @@ -1,410 +1,141 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -// TODO(rjf): eliminate redundant null checks, just always allocate -// empty results, and have nulls gracefully fall through -// -// (search for != 0 instances, inserted to prevent prior crashes) - //////////////////////////////// -//~ rjf: Basic Helpers +//~ rjf: PDB -> (Codeview -> RDI) TPI Hash Table Building -internal U64 -p2r_end_of_cplusplus_container_name(String8 str) +internal CV2R_TPIHash * +p2r_cv2r_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, String8 data) { - // NOTE: This finds the index one past the last "::" contained in str. - // if no "::" is contained in str, then the returned index is 0. - // The intent is that [0,clamp_bot(0,result - 2)) gives the - // "container name" and [result,str.size) gives the leaf name. - U64 result = 0; - if(str.size >= 2) + CV2R_TPIHash *result = push_array(arena, CV2R_TPIHash, 1); + U32 stride = tpi->hash_key_size; + U32 bucket_count = tpi->hash_bucket_count; + if(1 <= stride && stride <= 8 && bucket_count > 0 && data.size != 0) { - for(U64 i = str.size; i >= 2; i -= 1) + // allocate buckets + CV2R_TPIHashBlock **buckets = push_array(arena, CV2R_TPIHashBlock*, bucket_count); + + // extract "hash" array + U8 *hashes = data.str + tpi->hash_vals_off; + U8 *hash_opl = hashes + tpi->hash_vals_size; + + // for each index in the array... + CV_TypeId itype = tpi->itype_first; + U8 *hash_cursor = hashes; + for(;hash_cursor + stride <= hash_opl;) { - if(str.str[i - 2] == ':' && str.str[i - 1] == ':') + // read index + U64 bucket_idx = 0; + MemoryCopy(&bucket_idx, hash_cursor, stride); + + // save to map + if(bucket_idx < bucket_count) { - result = i; - break; + CV2R_TPIHashBlock *block = buckets[bucket_idx]; + if(block == 0 || block->local_count == ArrayCount(block->itypes)) + { + block = push_array(arena, CV2R_TPIHashBlock, 1); + SLLStackPush(buckets[bucket_idx], block); + } + if(block->local_count != 0) + { + MemoryCopy(block->itypes+1, block->itypes, sizeof(CV_TypeId)*block->local_count); + } + block->itypes[0] = itype; + block->local_count += 1; + } + + // advance cursor + hash_cursor += stride; + itype += 1; + } + + //- rjf: compute bucket mask + U32 bucket_mask = 0; + if(IsPow2OrZero(bucket_count)) + { + bucket_mask = bucket_count-1; + } + + //- rjf: apply hash adjustments, to pull correct type IDs to the front of + // the chains + if(tpi->hash_adj_size != 0) + { + // NOTE(rjf): this table is laid out in the following format: + // + // pair_count: U32 -> # of name_index/type_index pairs + // slot_count: U32 -> # of slots in this hash table + // present_bit_array_count: U32 -> count for next array + // present_bit_array: U32[present_bit_array_count] -> 1 bit per slot, "is present" + // deleted_bit_array_count: U32 -> count for next array + // deleted_bit_array: U32[deleted_bit_array_count] -> 1 bit per slot, "is deleted" + // (U32, U32)[pair_count] -> array of name_index/type_index pairs + // + U8 *adjs = data.str + tpi->hash_adj_off; + U8 *adjs_opl = adjs + tpi->hash_adj_size; + U8 *adjs_cursor = adjs; + U32 pair_count = *(U32 *)adjs_cursor; + adjs_cursor += sizeof(U32); + U32 slot_count = *(U32 *)adjs_cursor; + adjs_cursor += sizeof(U32); + U32 present_bit_array_count = *(U32 *)adjs_cursor; // skip present_bit_array + adjs_cursor += sizeof(U32); + adjs_cursor += present_bit_array_count*sizeof(U32); + U32 deleted_bit_array_count = *(U32 *)adjs_cursor; // skip deleted_bit_array + adjs_cursor += sizeof(U32); + adjs_cursor += deleted_bit_array_count*sizeof(U32); + U32 adjs_stride = sizeof(U32)*2; + U32 pair_idx = 0; + for(;adjs_cursor < adjs_opl && pair_idx < pair_count; + adjs_cursor += adjs_stride, pair_idx += 1) + { + U32 name_off = ((U32 *)adjs_cursor)[0]; + CV_TypeId type_id = ((CV_TypeId *)adjs_cursor)[1]; + String8 string = pdb_strtbl_string_from_off(strtbl, name_off); + U32 hash = pdb_hash_v1(string); + U32 bucket_idx = ((bucket_mask != 0) ? hash&bucket_mask : hash%bucket_count); + CV2R_TPIHashBlock *prev_block = 0; + for(CV2R_TPIHashBlock *block = buckets[bucket_idx]; + block != 0; + prev_block = block, block = block->next) + { + for(U32 local_idx = 0; + local_idx < block->local_count && local_idx < ArrayCount(block->itypes); + local_idx += 1) + { + if(block->itypes[local_idx] == type_id) + { + if(prev_block != 0) + { + prev_block->next = block->next; + block->next = buckets[bucket_idx]; + buckets[bucket_idx] = block; + } + if(local_idx != 0) + { + Swap(CV_TypeId, block->itypes[0], block->itypes[local_idx]); + } + break; + } + } + } } } - } - return(result); -} - -internal U64 -p2r_hash_from_voff(U64 voff) -{ - U64 hash = (voff >> 3) ^ ((7 & voff) << 6); - return hash; -} - -//////////////////////////////// -//~ rjf: COFF <-> RDI Canonical Conversions - -internal RDI_BinarySectionFlags -p2r_rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags) -{ - RDI_BinarySectionFlags result = 0; - if(flags & COFF_SectionFlag_MemRead) - { - result |= RDI_BinarySectionFlag_Read; - } - if(flags & COFF_SectionFlag_MemWrite) - { - result |= RDI_BinarySectionFlag_Write; - } - if(flags & COFF_SectionFlag_MemExecute) - { - result |= RDI_BinarySectionFlag_Execute; - } - return(result); -} - -//////////////////////////////// -//~ rjf: CodeView <-> RDI Canonical Conversions - -internal RDI_Arch -p2r_rdi_arch_from_cv_arch(CV_Arch cv_arch) -{ - RDI_Arch result = 0; - switch(cv_arch) - { - case CV_Arch_8086: result = RDI_Arch_X86; break; - case CV_Arch_X64: result = RDI_Arch_X64; break; - //case CV_Arch_8080: break; - //case CV_Arch_80286: break; - //case CV_Arch_80386: break; - //case CV_Arch_80486: break; - //case CV_Arch_PENTIUM: break; - //case CV_Arch_PENTIUMII: break; - //case CV_Arch_PENTIUMIII: break; - //case CV_Arch_MIPS: break; - //case CV_Arch_MIPS16: break; - //case CV_Arch_MIPS32: break; - //case CV_Arch_MIPS64: break; - //case CV_Arch_MIPSI: break; - //case CV_Arch_MIPSII: break; - //case CV_Arch_MIPSIII: break; - //case CV_Arch_MIPSIV: break; - //case CV_Arch_MIPSV: break; - //case CV_Arch_M68000: break; - //case CV_Arch_M68010: break; - //case CV_Arch_M68020: break; - //case CV_Arch_M68030: break; - //case CV_Arch_M68040: break; - //case CV_Arch_ALPHA: break; - //case CV_Arch_ALPHA_21164: break; - //case CV_Arch_ALPHA_21164A: break; - //case CV_Arch_ALPHA_21264: break; - //case CV_Arch_ALPHA_21364: break; - //case CV_Arch_PPC601: break; - //case CV_Arch_PPC603: break; - //case CV_Arch_PPC604: break; - //case CV_Arch_PPC620: break; - //case CV_Arch_PPCFP: break; - //case CV_Arch_PPCBE: break; - //case CV_Arch_SH3: break; - //case CV_Arch_SH3E: break; - //case CV_Arch_SH3DSP: break; - //case CV_Arch_SH4: break; - //case CV_Arch_SHMEDIA: break; - //case CV_Arch_ARM3: break; - //case CV_Arch_ARM4: break; - //case CV_Arch_ARM4T: break; - //case CV_Arch_ARM5: break; - //case CV_Arch_ARM5T: break; - //case CV_Arch_ARM6: break; - //case CV_Arch_ARM_XMAC: break; - //case CV_Arch_ARM_WMMX: break; - //case CV_Arch_ARM7: break; - //case CV_Arch_OMNI: break; - //case CV_Arch_IA64_1: break; - //case CV_Arch_IA64_2: break; - //case CV_Arch_CEE: break; - //case CV_Arch_AM33: break; - //case CV_Arch_M32R: break; - //case CV_Arch_TRICORE: break; - //case CV_Arch_EBC: break; - //case CV_Arch_THUMB: break; - //case CV_Arch_ARMNT: break; - //case CV_Arch_ARM64: break; - //case CV_Arch_D3D11_SHADER: break; - } - return(result); -} - -internal RDI_RegCode -p2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code) -{ - RDI_RegCode result = 0; - switch(arch) - { - case RDI_Arch_X86: - { - switch(reg_code) - { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX86_##RDN; break; - CV_Reg_X86_XList(X) -#undef X - } - }break; - case RDI_Arch_X64: - { - switch(reg_code) - { -#define X(CVN,C,RDN,BP,BZ) case C: result = RDI_RegCodeX64_##RDN; break; - CV_Reg_X64_XList(X) -#undef X - } - }break; - } - return(result); -} - -internal RDI_Language -p2r_rdi_language_from_cv_language(CV_Language cv_language) -{ - RDI_Language result = 0; - switch(cv_language) - { - case CV_Language_C: result = RDI_Language_C; break; - case CV_Language_CXX: result = RDI_Language_CPlusPlus; break; - //case CV_Language_FORTRAN: result = ; break; - //case CV_Language_MASM: result = ; break; - //case CV_Language_PASCAL: result = ; break; - //case CV_Language_BASIC: result = ; break; - //case CV_Language_COBOL: result = ; break; - //case CV_Language_LINK: result = ; break; - //case CV_Language_CVTRES: result = ; break; - //case CV_Language_CVTPGD: result = ; break; - //case CV_Language_CSHARP: result = ; break; - //case CV_Language_VB: result = ; break; - //case CV_Language_ILASM: result = ; break; - //case CV_Language_JAVA: result = ; break; - //case CV_Language_JSCRIPT: result = ; break; - //case CV_Language_MSIL: result = ; break; - //case CV_Language_HLSL: result = ; break; - } - return(result); -} - -internal RDI_TypeKind -p2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type) -{ - RDI_TypeKind result = RDI_TypeKind_NULL; - switch(basic_type) - { - case CV_BasicType_VOID: {result = RDI_TypeKind_Void;}break; - case CV_BasicType_HRESULT: {result = RDI_TypeKind_HResult;}break; - case CV_BasicType_RCHAR: - case CV_BasicType_CHAR: - case CV_BasicType_CHAR8: - {result = RDI_TypeKind_Char8;}break; - - case CV_BasicType_UCHAR: {result = RDI_TypeKind_UChar8;}break; - case CV_BasicType_WCHAR: {result = RDI_TypeKind_UChar16;}break; - case CV_BasicType_CHAR16: {result = RDI_TypeKind_Char16;}break; - case CV_BasicType_CHAR32: {result = RDI_TypeKind_Char32;}break; - - case CV_BasicType_BOOL8: - case CV_BasicType_INT8: - {result = RDI_TypeKind_S8;}break; - - case CV_BasicType_BOOL16: - case CV_BasicType_INT16: - case CV_BasicType_SHORT: - {result = RDI_TypeKind_S16;}break; - - case CV_BasicType_BOOL32: - case CV_BasicType_INT32: - case CV_BasicType_LONG: - {result = RDI_TypeKind_S32;}break; - - case CV_BasicType_BOOL64: - case CV_BasicType_INT64: - case CV_BasicType_QUAD: - {result = RDI_TypeKind_S64;}break; - - case CV_BasicType_INT128: - case CV_BasicType_OCT: - {result = RDI_TypeKind_S128;}break; - - case CV_BasicType_UINT8: {result = RDI_TypeKind_U8;}break; - - case CV_BasicType_UINT16: - case CV_BasicType_USHORT: - {result = RDI_TypeKind_U16;}break; - - case CV_BasicType_UINT32: - case CV_BasicType_ULONG: - {result = RDI_TypeKind_U32;}break; - - case CV_BasicType_UINT64: - case CV_BasicType_UQUAD: - {result = RDI_TypeKind_U64;}break; - - case CV_BasicType_UINT128: - case CV_BasicType_UOCT: - {result = RDI_TypeKind_U128;}break; - - case CV_BasicType_FLOAT16:{result = RDI_TypeKind_F16;}break; - case CV_BasicType_FLOAT32:{result = RDI_TypeKind_F32;}break; - case CV_BasicType_FLOAT32PP:{result = RDI_TypeKind_F32PP;}break; - case CV_BasicType_FLOAT48:{result = RDI_TypeKind_F48;}break; - case CV_BasicType_FLOAT64:{result = RDI_TypeKind_F64;}break; - case CV_BasicType_FLOAT80:{result = RDI_TypeKind_F80;}break; - case CV_BasicType_FLOAT128:{result = RDI_TypeKind_F128;}break; - case CV_BasicType_COMPLEX32:{result = RDI_TypeKind_ComplexF32;}break; - case CV_BasicType_COMPLEX64:{result = RDI_TypeKind_ComplexF64;}break; - case CV_BasicType_COMPLEX80:{result = RDI_TypeKind_ComplexF80;}break; - case CV_BasicType_COMPLEX128:{result = RDI_TypeKind_ComplexF128;}break; - case CV_BasicType_PTR:{result = RDI_TypeKind_Handle;}break; - } - return result; -} - -internal RDI_ChecksumKind -p2r_rdi_from_cv_c13_checksum_kind(CV_C13ChecksumKind k) -{ - RDI_ChecksumKind result = RDI_ChecksumKind_NULL; - switch((CV_C13ChecksumKindEnum)k) - { - case CV_C13ChecksumKind_Null: {result = RDI_ChecksumKind_NULL;}break; - case CV_C13ChecksumKind_MD5: {result = RDI_ChecksumKind_MD5;}break; - case CV_C13ChecksumKind_SHA1: {result = RDI_ChecksumKind_SHA1;}break; - case CV_C13ChecksumKind_SHA256:{result = RDI_ChecksumKind_SHA256;}break; + // fill result + result->data = data; + result->buckets = buckets; + result->bucket_count = bucket_count; + result->bucket_mask = bucket_mask; } return result; } //////////////////////////////// -//~ rjf: Location Info Building Helpers - -internal RDI_RegCode -p2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg) -{ - RDI_RegCode result = 0; - switch(arch) - { - case RDI_Arch_X86: - { - switch(encoded_reg) - { - case CV_EncodedFramePtrReg_StackPtr: - { - // TODO(allen): support CV_AllReg_VFRAME - // TODO(allen): error - }break; - case CV_EncodedFramePtrReg_FramePtr: - { - result = RDI_RegCodeX86_ebp; - }break; - case CV_EncodedFramePtrReg_BasePtr: - { - result = RDI_RegCodeX86_ebx; - }break; - } - }break; - case RDI_Arch_X64: - { - switch(encoded_reg) - { - case CV_EncodedFramePtrReg_StackPtr: - { - result = RDI_RegCodeX64_rsp; - }break; - case CV_EncodedFramePtrReg_FramePtr: - { - result = RDI_RegCodeX64_rbp; - }break; - case CV_EncodedFramePtrReg_BasePtr: - { - result = RDI_RegCodeX64_r13; - }break; - } - }break; - } - return(result); -} - -internal RDIM_LocationInfo -p2r_location_info_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection) -{ - RDIM_LocationInfo result = {0}; - if(0 <= offset && offset <= (S64)max_U16) - { - if(extra_indirection) - { - result.kind = RDI_LocationKind_AddrAddrRegPlusU16; - result.reg_code = reg_code; - result.offset = offset; - } - else - { - result.kind = RDI_LocationKind_AddrRegPlusU16; - result.reg_code = reg_code; - result.offset = offset; - } - } - else - { - RDIM_EvalBytecode bytecode = {0}; - U32 regread_param = RDI_EncodeRegReadParam(reg_code, reg_byte_size, reg_byte_pos); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_RegRead, regread_param); - rdim_bytecode_push_sconst(arena, &bytecode, offset); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_Add, 0); - if(extra_indirection) - { - U64 addr_size = rdi_addr_size_from_arch(arch); - rdim_bytecode_push_op(arena, &bytecode, RDI_EvalOp_MemRead, addr_size); - } - result.kind = RDI_LocationKind_AddrBytecodeStream; - result.bytecode = bytecode; - } - return result; -} - -internal void -p2r_local_push_location_cases_over_lvar_addr_range(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Local *local, RDIM_Location *loc, CV_LvarAddrRange *range, COFF_SectionHeader *section, CV_LvarAddrGap *gaps, U64 gap_count) -{ - //- rjf: extract range info - U64 voff_first = 0; - U64 voff_opl = 0; - if(section != 0) - { - voff_first = section->voff + range->off; - voff_opl = voff_first + range->len; - } - - //- rjf: emit location for ranges not coverd by gaps - CV_LvarAddrGap *gap_ptr = gaps; - U64 voff_cursor = voff_first; - for(U64 i = 0; i < gap_count; i += 1, gap_ptr += 1) - { - U64 voff_gap_first = voff_first + gap_ptr->off; - U64 voff_gap_opl = voff_gap_first + gap_ptr->len; - if(voff_cursor < voff_gap_first) - { - RDIM_Rng1U64 voff_range = {voff_cursor, voff_gap_first}; - rdim_local_push_location_case(arena, scopes, local, loc, voff_range); - } - voff_cursor = voff_gap_opl; - } - - //- rjf: emit remaining range - if(voff_cursor < voff_opl) - { - RDIM_Rng1U64 voff_range = {voff_cursor, voff_opl}; - rdim_local_push_location_case(arena, scopes, local, loc, voff_range); - } -} - -//////////////////////////////// -//~ rjf: Top-Level Conversion Entry Point +//~ rjf: Top-Level Conversion Entry Point (Revised) internal RDIM_BakeParams -p2r_convert(Arena *arena, P2R_ConvertParams *params) +p2r_convert2(Arena *arena, P2R_ConvertParams *params) { Temp scratch = scratch_begin(&arena, 1); @@ -412,31 +143,30 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) //- rjf: do base MSF parse // MSF_Parsed *msf = 0; + ProfScope("do base MSF parse") { - Temp scratch2 = scratch_begin(&scratch.arena, 1); - // rjf: setup output buckets MSF_RawStreamTable *msf_raw_stream_table = 0; + U64 *msf_stream_take_counter = 0; if(lane_idx() == 0) { - msf_raw_stream_table = msf_raw_stream_table_from_data(scratch2.arena, params->input_pdb_data); + msf_raw_stream_table = msf_raw_stream_table_from_data(scratch.arena, params->input_pdb_data); msf = push_array(scratch.arena, MSF_Parsed, 1); msf->page_size = msf_raw_stream_table->page_size; msf->page_count = msf_raw_stream_table->total_page_count; msf->stream_count = msf_raw_stream_table->stream_count; msf->streams = push_array(scratch.arena, String8, msf->stream_count); + msf_stream_take_counter = push_array(scratch.arena, U64, 1); } lane_sync_u64(&msf, 0); lane_sync_u64(&msf_raw_stream_table, 0); // rjf: do wide fill { - U64 msf_stream_take_counter = 0; - U64 *msf_stream_take_counter_ptr = &msf_stream_take_counter; - lane_sync_u64(&msf_stream_take_counter_ptr, 0); + lane_sync_u64(&msf_stream_take_counter, 0); for(;;) { - U64 stream_idx = ins_atomic_u64_inc_eval(msf_stream_take_counter_ptr) - 1; + U64 stream_idx = ins_atomic_u64_inc_eval(msf_stream_take_counter) - 1; if(stream_idx >= msf->stream_count) { break; @@ -445,8 +175,6 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) } } lane_sync(); - - scratch_end(scratch2); } lane_sync(); @@ -548,68 +276,60 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) ////////////////////////////////////////////////////////////// //- rjf: hash EXE, parse TPI/IPI hash/leaf & global symbol stream & comp units // - U64 exe_hash = 0; - PDB_TpiHashParsed *tpi_hash = 0; + CV2R_TPIHash *tpi_hash = 0; CV_LeafParsed *tpi_leaf = 0; - PDB_TpiHashParsed *ipi_hash = 0; + CV2R_TPIHash *ipi_hash = 0; CV_LeafParsed *ipi_leaf = 0; PDB_CompUnitArray *comp_units = 0; PDB_CompUnitContributionArray *comp_unit_contributions = 0; ProfScope("hash EXE, parse TPI/IPI hash/leaf & global symbol stream & comp units") { - if(lane_idx() == lane_from_task_idx(0)) ProfScope("hash EXE") - { - exe_hash = rdi_hash(params->input_exe_data.str, params->input_exe_data.size); - } - if(lane_idx() == lane_from_task_idx(1)) ProfScope("parse TPI hash") + if(lane_idx() == lane_from_task_idx(0)) ProfScope("parse TPI hash") { String8 hash_data = msf_data_from_stream(msf, tpi->hash_sn); - String8 aux_data = msf_data_from_stream(msf, tpi->hash_sn_aux); if(!(params->subset_flags & (RDIM_SubsetFlag_Types|RDIM_SubsetFlag_UDTs))) { - hash_data = aux_data = str8_zero(); + hash_data = str8_zero(); } - tpi_hash = pdb_tpi_hash_from_data(scratch.arena, strtbl, tpi, hash_data, aux_data); + tpi_hash = p2r_cv2r_tpi_hash_from_data(scratch.arena, strtbl, tpi, hash_data); } - if(lane_idx() == lane_from_task_idx(2)) ProfScope("parse TPI leaf") + if(lane_idx() == lane_from_task_idx(1)) ProfScope("parse TPI leaf") { String8 leaf_data = pdb_leaf_data_from_tpi(tpi); tpi_leaf = cv_leaf_from_data(scratch.arena, leaf_data, tpi->itype_first); } - if(lane_idx() == lane_from_task_idx(3)) ProfScope("parse IPI hash") + if(lane_idx() == lane_from_task_idx(2)) ProfScope("parse IPI hash") { String8 hash_data = msf_data_from_stream(msf, ipi->hash_sn); - String8 aux_data = msf_data_from_stream(msf, ipi->hash_sn_aux); if(!(params->subset_flags & (RDIM_SubsetFlag_Types|RDIM_SubsetFlag_UDTs))) { - hash_data = aux_data = str8_zero(); + hash_data = str8_zero(); } - ipi_hash = pdb_tpi_hash_from_data(scratch.arena, strtbl, ipi, hash_data, aux_data); + ipi_hash = p2r_cv2r_tpi_hash_from_data(scratch.arena, strtbl, ipi, hash_data); } - if(lane_idx() == lane_from_task_idx(4)) ProfScope("parse IPI leaf") + if(lane_idx() == lane_from_task_idx(3)) ProfScope("parse IPI leaf") { String8 leaf_data = pdb_leaf_data_from_tpi(ipi); ipi_leaf = cv_leaf_from_data(scratch.arena, leaf_data, ipi->itype_first); } - if(lane_idx() == lane_from_task_idx(5)) ProfScope("parse compilation units") + if(lane_idx() == lane_from_task_idx(4)) ProfScope("parse compilation units") { String8 comp_units_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo); comp_units = pdb_comp_unit_array_from_data(scratch.arena, comp_units_data); } - if(lane_idx() == lane_from_task_idx(6)) ProfScope("parse compilation unit contributions") + if(lane_idx() == lane_from_task_idx(5)) ProfScope("parse compilation unit contributions") { String8 contribs_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_SecCon); comp_unit_contributions = push_array(scratch.arena, PDB_CompUnitContributionArray, 1); comp_unit_contributions[0] = pdb_comp_unit_contribution_array_from_data(scratch.arena, contribs_data, coff_sections); } } - lane_sync_u64(&exe_hash, lane_from_task_idx(0)); - lane_sync_u64(&tpi_hash, lane_from_task_idx(1)); - lane_sync_u64(&tpi_leaf, lane_from_task_idx(2)); - lane_sync_u64(&ipi_hash, lane_from_task_idx(3)); - lane_sync_u64(&ipi_leaf, lane_from_task_idx(4)); - lane_sync_u64(&comp_units, lane_from_task_idx(5)); - lane_sync_u64(&comp_unit_contributions, lane_from_task_idx(6)); + lane_sync_u64(&tpi_hash, lane_from_task_idx(0)); + lane_sync_u64(&tpi_leaf, lane_from_task_idx(1)); + lane_sync_u64(&ipi_hash, lane_from_task_idx(2)); + lane_sync_u64(&ipi_leaf, lane_from_task_idx(3)); + lane_sync_u64(&comp_units, lane_from_task_idx(4)); + lane_sync_u64(&comp_unit_contributions, lane_from_task_idx(5)); ////////////////////////////////////////////////////////////// //- rjf: bucket compilation unit contributions @@ -617,14 +337,14 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) RDIM_Rng1U64ChunkList *unit_ranges = 0; ProfScope("bucket compilation unit contributions") if(lane_idx() == 0) { - unit_ranges = push_array(scratch.arena, RDIM_Rng1U64ChunkList, comp_units->count); - for(U64 idx = 0; idx < comp_unit_contributions->count; idx += 1) + unit_ranges = push_array(scratch.arena, RDIM_Rng1U64ChunkList, comp_units->count + 1); + for(U64 comp_unit_idx = 0; comp_unit_idx < comp_unit_contributions->count; comp_unit_idx += 1) { - PDB_CompUnitContribution *contribution = &comp_unit_contributions->contributions[idx]; + PDB_CompUnitContribution *contribution = &comp_unit_contributions->contributions[comp_unit_idx]; if(contribution->mod < comp_units->count) { RDIM_Rng1U64 r = {contribution->voff_first, contribution->voff_opl}; - rdim_rng1u64_chunk_list_push(arena, &unit_ranges[contribution->mod], 256, r); + rdim_rng1u64_chunk_list_push(arena, &unit_ranges[contribution->mod + 1], 256, r); } } } @@ -639,11 +359,13 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) ProfScope("parse all syms & c13 line info streams") { //- rjf: setup outputs + U64 *task_counter = 0; if(lane_idx() == 0) { all_syms_count = comp_units->count+1; // +1 for global symbol stream from DBI all_syms = push_array(scratch.arena, CV_SymParsed *, all_syms_count); all_c13s = push_array(scratch.arena, CV_C13Parsed *, all_syms_count); + task_counter = push_array(scratch.arena, U64, 1); } lane_sync_u64(&all_syms_count, 0); lane_sync_u64(&all_syms, 0); @@ -651,13 +373,11 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) //- rjf: wide fill { - U64 task_counter = 0; - U64 *task_counter_ptr = &task_counter; - lane_sync_u64(&task_counter_ptr, 0); + lane_sync_u64(&task_counter, 0); U64 task_count = all_syms_count; for(;;) { - U64 task_idx = ins_atomic_u64_inc_eval(task_counter_ptr) - 1; + U64 task_idx = ins_atomic_u64_inc_eval(task_counter) - 1; if(task_idx >= task_count) { break; @@ -681,3763 +401,127 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params) lane_sync(); ////////////////////////////////////////////////////////////// - //- rjf: calculate EXE's max voff + //- rjf: produce cv2r units from pdb's units // - U64 exe_voff_max = 0; + U64 cv2r_comp_units_count = comp_units->count + 1; // +1 for global info stream + CV2R_CompUnit *cv2r_comp_units = 0; { - Temp scratch2 = scratch_begin(&scratch.arena, 1); - - // rjf: set up - U64 *lane_voff_maxes = 0; if(lane_idx() == 0) { - lane_voff_maxes = push_array(scratch2.arena, U64, lane_count()); + cv2r_comp_units = push_array(scratch.arena, CV2R_CompUnit, cv2r_comp_units_count); } - lane_sync_u64(&lane_voff_maxes, 0); - - // rjf: compute each lane's max - { - U64 lane_voff_max = 0; - COFF_SectionHeader *sections = coff_sections.v; - Rng1U64 range = lane_range(coff_sections.count); - for EachInRange(idx, range) - { - lane_voff_max = Max(lane_voff_max, sections[idx].voff + sections[idx].vsize); - } - lane_voff_maxes[lane_idx()] = lane_voff_max; - } - lane_sync(); - - // rjf: find max from all lanes - U64 exe_voff_max = 0; - for EachIndex(l_idx, lane_count()) - { - exe_voff_max = Max(exe_voff_max, lane_voff_maxes[l_idx]); - } - lane_sync(); - - scratch_end(scratch2); - } - - ////////////////////////////////////////////////////////////// - //- rjf: determine architecture - // - RDI_Arch arch = RDI_Arch_NULL; - U64 arch_addr_size = 0; - { - // - // TODO(rjf): in some cases, the first compilation unit has a zero - // architecture, as it's sometimes used as a "nil" unit. this causes bugs - // in later stages of conversion - particularly, this was detected via - // busted location info. so i've converted this to a scan-until-we-find-an- - // architecture. however, this may still be fundamentally insufficient, - // because Nick has informed me that x86 units can be linked with x64 - // units, meaning the appropriate architecture at any point in time is not - // a top-level concept, and is rather dependent on to which compilation - // unit particular symbols belong. so in the future, to support that (odd) - // case, we'll need to not only have this be a top-level "contextual" piece - // of info, but to use the appropriate compilation unit's architecture when - // possible. assuming, of course, that we care about supporting that case. - // - for EachIndex(idx, all_syms_count) - { - arch = p2r_rdi_arch_from_cv_arch(all_syms[idx]->info.arch); - if(arch != RDI_Arch_NULL) - { - break; - } - } - arch_addr_size = rdi_addr_size_from_arch(arch); - } - - ////////////////////////////////////////////////////////////// - //- rjf: predict total symbol count - // - U64 symbol_count_prediction = 0; - { - U64 *symbol_count_prediction_ptr = &symbol_count_prediction; - lane_sync_u64(&symbol_count_prediction_ptr, 0); - U64 lane_sym_count = 0; - Rng1U64 range = lane_range(all_syms_count); + lane_sync_u64(&cv2r_comp_units, 0); + Rng1U64 range = lane_range(cv2r_comp_units_count); for EachInRange(idx, range) { - lane_sym_count += all_syms[idx]->sym_ranges.count; + if(idx > 0) + { + PDB_CompUnit *src_unit = comp_units->units[idx-1]; + cv2r_comp_units[idx].obj_name = src_unit->obj_name; + cv2r_comp_units[idx].group_name = src_unit->group_name; + } + else + { + cv2r_comp_units[idx].obj_name = s("*global*"); + } + cv2r_comp_units[idx].ranges = unit_ranges[idx]; + cv2r_comp_units[idx].sym = all_syms[idx]; + cv2r_comp_units[idx].c13 = all_c13s[idx]; } - ins_atomic_u64_add_eval(symbol_count_prediction_ptr, lane_sym_count); lane_sync(); - symbol_count_prediction = *symbol_count_prediction_ptr; } ////////////////////////////////////////////////////////////// - //- rjf: build link name map + //- rjf: produce cv2r comp unit contributions // - P2R_LinkNameMap *link_name_map = 0; - ProfScope("build link name map") if(all_syms_count != 0 && lane_idx() == 0) - { - // rjf: set up - { - link_name_map = push_array(scratch.arena, P2R_LinkNameMap, 1); - link_name_map->buckets_count = Max(1, symbol_count_prediction); - link_name_map->buckets = push_array(scratch.arena, P2R_LinkNameNode *, link_name_map->buckets_count); - } - - // rjf: fill - if(params->subset_flags & RDIM_SubsetFlag_Procedures) - { - CV_SymParsed *sym = all_syms[0]; - CV_RecRange *rec_ranges_first = sym->sym_ranges.ranges; - CV_RecRange *rec_ranges_opl = sym->sym_ranges.ranges + sym->sym_ranges.count; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: unpack symbol range info - CV_SymKind kind = rec_range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_sym_kind(kind); - U8 *sym_first = sym->data.str + rec_range->off + 2; - U8 *sym_opl = sym_first + rec_range->hdr.size; - - //- rjf: skip bad ranges - if(sym_opl > sym->data.str + sym->data.size || sym_first + header_struct_size > sym->data.str + sym->data.size) - { - continue; - } - - //- rjf: consume symbol - switch(kind) - { - default:{}break; - case CV_SymKind_PUB32: - { - // rjf: unpack sym - CV_SymPub32 *pub32 = (CV_SymPub32 *)sym_first; - String8 name = str8_cstring_capped(pub32+1, sym_opl); - COFF_SectionHeader *section = (0 < pub32->sec && pub32->sec <= coff_sections.count) ? &coff_sections.v[pub32->sec-1] : 0; - U64 voff = 0; - if(section != 0) - { - voff = section->voff + pub32->off; - } - - // rjf: commit to link name map - U64 hash = p2r_hash_from_voff(voff); - U64 bucket_idx = hash%link_name_map->buckets_count; - P2R_LinkNameNode *node = push_array(scratch.arena, P2R_LinkNameNode, 1); - SLLStackPush(link_name_map->buckets[bucket_idx], node); - node->voff = voff; - node->name = name; - }break; - } - } - } - } - lane_sync_u64(&link_name_map, 0); - - ////////////////////////////////////////////////////////////// - //- rjf: gather all file paths - // - P2R_SrcFileStubArray *unit_file_stubs = 0; - U64Array *unit_file_paths_hashes = 0; - ProfScope("gather all file paths") - { - //- rjf: prep outputs - ProfScope("prep outputs") if(lane_idx() == 0) - { - unit_file_stubs = push_array(scratch.arena, P2R_SrcFileStubArray, comp_units->count); - unit_file_paths_hashes = push_array(scratch.arena, U64Array, comp_units->count); - } - lane_sync_u64(&unit_file_stubs, 0); - lane_sync_u64(&unit_file_paths_hashes, 0); - - //- rjf: do wide gather - ProfScope("do wide gather") - { - Temp scratch2 = scratch_begin(&scratch.arena, 1); - - //- rjf: build local hash table to dedup files within this lane - U64 hit_path_slots_count = 4096; - String8Node **hit_path_slots = push_array(scratch2.arena, String8Node *, hit_path_slots_count); - - //- rjf: take units across lanes, find all file paths - U64 sym_take_counter = 0; - U64 *sym_take_counter_ptr = &sym_take_counter; - lane_sync_u64(&sym_take_counter_ptr, 0); - ProfScope("take units across lanes, find all file paths") - for(;;) - { - //- rjf: take next unit - U64 unit_idx = ins_atomic_u64_inc_eval(sym_take_counter_ptr) - 1; - if(unit_idx >= comp_units->count) - { - break; - } - - //- rjf: unpack unit - PDB_CompUnit *unit = comp_units->units[unit_idx]; - CV_SymParsed *sym = all_syms[unit_idx+1]; - CV_C13Parsed *c13 = all_c13s[unit_idx+1]; - CV_RecRange *rec_ranges_first = sym->sym_ranges.ranges; - CV_RecRange *rec_ranges_opl = sym->sym_ranges.ranges + sym->sym_ranges.count; - - //- rjf: produce obj name/path - String8 obj_name = unit->obj_name; - { - if(str8_match(obj_name, str8_lit("* Linker *"), 0) || - str8_match(obj_name, str8_lit("Import:"), StringMatchFlag_RightSideSloppy)) - { - MemoryZeroStruct(&obj_name); - } - } - String8 obj_folder_path = backslashed_from_str8(scratch2.arena, str8_chop_last_slash(obj_name)); - - //- rjf: find all inline site symbols & gather file stubs - P2R_SrcFileStubNode *first_src_file_stub = 0; - P2R_SrcFileStubNode *last_src_file_stub = 0; - U64 src_file_stub_count = 0; - U64 base_voff = 0; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > sym->data.size || sym_off_first > sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = sym->data.str + sym_off_first; - void *sym_data_opl = sym->data.str + sym_off_opl; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: process symbol - switch(kind) - { - default:{}break; - - //- rjf: LPROC32/GPROC32 (gather base address) - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - CV_SymProc32 *proc32 = (CV_SymProc32 *)sym_header_struct_base; - COFF_SectionHeader *section = (0 < proc32->sec && proc32->sec <= coff_sections.count) ? &coff_sections.v[proc32->sec-1] : 0; - if(section != 0) - { - base_voff = section->voff + proc32->off; - } - }break; - - //- rjf: INLINESITE - case CV_SymKind_INLINESITE: - { - // rjf: unpack sym - CV_SymInlineSite *sym = (CV_SymInlineSite *)sym_header_struct_base; - String8 binary_annots = str8((U8 *)(sym+1), rec_range->hdr.size - sizeof(rec_range->hdr.kind) - sizeof(*sym)); - - // rjf: map inlinee -> parsed cv c13 inlinee line info - CV_C13InlineeLinesParsed *inlinee_lines_parsed = 0; - { - U64 hash = cv_hash_from_item_id(sym->inlinee); - U64 slot_idx = hash%c13->inlinee_lines_parsed_slots_count; - for(CV_C13InlineeLinesParsedNode *n = c13->inlinee_lines_parsed_slots[slot_idx]; n != 0; n = n->hash_next) - { - if(n->v.inlinee == sym->inlinee) - { - inlinee_lines_parsed = &n->v; - break; - } - } - } - - // rjf: build line table, fill with parsed binary annotations - if(inlinee_lines_parsed != 0) - { - // rjf: grab checksums sub-section - CV_C13SubSectionNode *file_chksms = c13->file_chksms_sub_section; - - // rjf: gathered lines - U32 last_file_off = max_U32; - U32 curr_file_off = max_U32; - U64 line_count = 0; - CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(inlinee_lines_parsed->file_off, inlinee_lines_parsed->first_source_ln, base_voff); - for(;;) - { - // rjf: step & update - CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitFile) - { - last_file_off = curr_file_off; - curr_file_off = step.file_off; - } - if(step.flags == 0 && line_count > 0) - { - last_file_off = curr_file_off; - curr_file_off = max_U32; - } - - // rjf: file updated -> gather new file name - if(last_file_off != max_U32 && last_file_off != curr_file_off) - { - String8 seq_file_name = {0}; - CV_C13ChecksumKind checksum_kind = CV_C13ChecksumKind_Null; - String8 checksum_value = {0}; - if(last_file_off + sizeof(CV_C13Checksum) <= file_chksms->size) - { - CV_C13Checksum *checksum = (CV_C13Checksum *)(c13->data.str + file_chksms->off + last_file_off); - U32 name_off = checksum->name_off; - seq_file_name = pdb_strtbl_string_from_off(strtbl, name_off); - checksum_kind = checksum->kind; - checksum_value = str8_skip(c13->data, file_chksms->off + last_file_off + sizeof(*checksum)); - checksum_value.size = Min(checksum->len, checksum_value.size); - } - - // rjf: file name -> sanitized file path - String8 file_path = seq_file_name; - String8 file_path_sanitized = str8_copy(scratch2.arena, str8_skip_chop_whitespace(file_path)); - { - PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); - String8List file_path_sanitized_parts = str8_split_path(scratch2.arena, file_path_sanitized); - if(file_path_sanitized_style == PathStyle_Relative) - { - String8List obj_folder_path_parts = str8_split_path(scratch2.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); - file_path_sanitized_parts = obj_folder_path_parts; - file_path_sanitized_style = path_style_from_str8(obj_folder_path); - } - str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); - file_path_sanitized = str8_path_list_join_by_style(scratch2.arena, &file_path_sanitized_parts, file_path_sanitized_style); - } - - // rjf: sanitized file path -> source file node - U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); - U64 hit_path_slot = file_path_sanitized_hash%hit_path_slots_count; - String8Node *hit_path_node = 0; - for(String8Node *n = hit_path_slots[hit_path_slot]; n != 0; n = n->next) - { - if(str8_match(n->string, file_path_sanitized, 0)) - { - hit_path_node = n; - break; - } - } - if(hit_path_node == 0) - { - hit_path_node = push_array(scratch2.arena, String8Node, 1); - SLLStackPush(hit_path_slots[hit_path_slot], hit_path_node); - hit_path_node->string = file_path_sanitized; - P2R_SrcFileStubNode *stub_n = push_array(scratch2.arena, P2R_SrcFileStubNode, 1); - SLLQueuePush(first_src_file_stub, last_src_file_stub, stub_n); - src_file_stub_count += 1; - stub_n->v.file_path = str8_copy(scratch.arena, file_path_sanitized); - stub_n->v.checksum_kind = checksum_kind; - stub_n->v.checksum = str8_copy(scratch.arena, checksum_value); - } - line_count = 0; - } - - // rjf: count lines - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitLine) - { - line_count += 1; - } - - // rjf: no more flags -> done - if(step.flags == 0) - { - break; - } - } - } - }break; - } - } - - // rjf: find all files in this unit's (non-inline) line info - ProfScope("find all files in this unit's (non-inline) line info") - for(CV_C13SubSectionNode *node = c13->first_sub_section; - node != 0; - node = node->next) - { - if(node->kind == CV_C13SubSectionKind_Lines) - { - for(CV_C13LinesParsedNode *lines_n = node->lines_first; - lines_n != 0; - lines_n = lines_n->next) - { - // rjf: file name -> sanitized file path - String8 file_path = lines_n->v.file_name; - String8 file_path_sanitized = str8_copy(scratch2.arena, str8_skip_chop_whitespace(file_path)); - { - PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); - String8List file_path_sanitized_parts = str8_split_path(scratch2.arena, file_path_sanitized); - if(file_path_sanitized_style == PathStyle_Relative) - { - String8List obj_folder_path_parts = str8_split_path(scratch2.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); - file_path_sanitized_parts = obj_folder_path_parts; - file_path_sanitized_style = path_style_from_str8(obj_folder_path); - } - str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); - file_path_sanitized = str8_path_list_join_by_style(scratch2.arena, &file_path_sanitized_parts, file_path_sanitized_style); - } - - // rjf: sanitized file path -> source file node - U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); - U64 hit_path_slot = file_path_sanitized_hash%hit_path_slots_count; - String8Node *hit_path_node = 0; - for(String8Node *n = hit_path_slots[hit_path_slot]; n != 0; n = n->next) - { - if(str8_match(n->string, file_path_sanitized, 0)) - { - hit_path_node = n; - break; - } - } - if(hit_path_node == 0) - { - hit_path_node = push_array(scratch2.arena, String8Node, 1); - SLLStackPush(hit_path_slots[hit_path_slot], hit_path_node); - hit_path_node->string = file_path_sanitized; - P2R_SrcFileStubNode *stub_n = push_array(scratch2.arena, P2R_SrcFileStubNode, 1); - SLLQueuePush(first_src_file_stub, last_src_file_stub, stub_n); - src_file_stub_count += 1; - stub_n->v.file_path = str8_copy(scratch.arena, file_path_sanitized); - stub_n->v.checksum_kind = lines_n->v.checksum_kind; - stub_n->v.checksum = str8_copy(scratch.arena, lines_n->v.checksum); - } - } - } - } - - //- rjf: merge into array for this unit - unit_file_stubs[unit_idx].count = src_file_stub_count; - unit_file_stubs[unit_idx].v = push_array_no_zero(scratch.arena, P2R_SrcFileStub, unit_file_stubs[unit_idx].count); - { - U64 idx = 0; - for EachNode(n, P2R_SrcFileStubNode, first_src_file_stub) - { - unit_file_stubs[unit_idx].v[idx] = n->v; - idx += 1; - } - } - - //- rjf: hash this unit's file paths - U64Array hashes = {0}; - hashes.count = unit_file_stubs[unit_idx].count; - hashes.v = push_array(scratch.arena, U64, hashes.count); - for EachIndex(idx, unit_file_stubs[unit_idx].count) - { - hashes.v[idx] = rdi_hash(unit_file_stubs[unit_idx].v[idx].file_path.str, unit_file_stubs[unit_idx].v[idx].file_path.size); - } - unit_file_paths_hashes[unit_idx] = hashes; - } - lane_sync(); - - scratch_end(scratch2); - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: build unified collection & map for source files - // - RDIM_SrcFileChunkList *all_src_files__sequenceless = 0; - P2R_SrcFileMap *src_file_map = 0; - if(lane_idx() == 0 && params->subset_flags & (RDIM_SubsetFlag_NormalSourcePathNameMap| - RDIM_SubsetFlag_LineInfo| - RDIM_SubsetFlag_InlineLineInfo)) - { - //- rjf: set up table - U64 total_path_count = 0; - ProfScope("set up table") - { - all_src_files__sequenceless = push_array(scratch.arena, RDIM_SrcFileChunkList, 1); - src_file_map = push_array(scratch.arena, P2R_SrcFileMap, 1); - for EachIndex(idx, comp_units->count) - { - total_path_count += unit_file_stubs[idx].count; - } - src_file_map->slots_count = total_path_count + total_path_count/2 + 1; - src_file_map->slots = push_array(scratch.arena, P2R_SrcFileNode *, src_file_map->slots_count); - } - - //- rjf: fill table - ProfScope("fill table") - { - for EachIndex(idx, comp_units->count) - { - P2R_SrcFileStubArray stubs = unit_file_stubs[idx]; - U64Array hashes = unit_file_paths_hashes[idx]; - for EachIndex(stub_idx, stubs.count) - { - String8 file_path_sanitized = stubs.v[stub_idx].file_path; - CV_C13ChecksumKind c13_checksum_kind = stubs.v[stub_idx].checksum_kind; - String8 checksum = stubs.v[stub_idx].checksum; - U64 file_path_sanitized_hash = hashes.v[stub_idx]; - U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; - P2R_SrcFileNode *src_file_node = 0; - for(P2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) - { - if(str8_match(n->src_file->path, file_path_sanitized, 0)) - { - src_file_node = n; - break; - } - } - if(src_file_node == 0) - { - src_file_node = push_array(arena, P2R_SrcFileNode, 1); - SLLStackPush(src_file_map->slots[src_file_slot], src_file_node); - src_file_node->src_file = rdim_src_file_chunk_list_push(arena, all_src_files__sequenceless, total_path_count); - src_file_node->src_file->path = str8_copy(arena, file_path_sanitized); - src_file_node->src_file->checksum_kind = p2r_rdi_from_cv_c13_checksum_kind(c13_checksum_kind); - src_file_node->src_file->checksum = str8_copy(arena, checksum); - } - } - } - } - } - lane_sync_u64(&all_src_files__sequenceless, 0); - lane_sync_u64(&src_file_map, 0); - - ////////////////////////////////////////////////////////////// - //- rjf: convert unit info - // - RDIM_UnitChunkList *all_units_ptr = 0; - RDIM_LineTableChunkList *units_line_tables = 0; - RDIM_LineTable **units_first_inline_site_line_tables = 0; - ProfScope("convert unit info") - { - //- rjf: set up outputs - ProfScope("set up outputs") if(lane_idx() == 0) - { - all_units_ptr = push_array(scratch.arena, RDIM_UnitChunkList, 1); - if(params->subset_flags & RDIM_SubsetFlag_Units) - { - for EachIndex(idx, comp_units->count) - { - rdim_unit_chunk_list_push(arena, all_units_ptr, comp_units->count); - } - } - units_line_tables = push_array(scratch.arena, RDIM_LineTableChunkList, comp_units->count); - units_first_inline_site_line_tables = push_array(scratch.arena, RDIM_LineTable *, comp_units->count); - } - lane_sync_u64(&all_units_ptr, 0); - lane_sync_u64(&units_line_tables, 0); - lane_sync_u64(&units_first_inline_site_line_tables, 0); - RDIM_Unit *units = all_units_ptr->first ? all_units_ptr->first->v : 0; - U64 units_count = all_units_ptr->first ? all_units_ptr->first->count : 0; - Assert(units_count == comp_units->count); - - //- rjf: do per-lane work - if(params->subset_flags & (RDIM_SubsetFlag_Units| - RDIM_SubsetFlag_NormalSourcePathNameMap| - RDIM_SubsetFlag_LineInfo| - RDIM_SubsetFlag_InlineLineInfo)) - { - U64 sym_take_counter = 0; - U64 *sym_take_counter_ptr = &sym_take_counter; - lane_sync_u64(&sym_take_counter_ptr, 0); - ProfScope("wide fill") for(;;) - { - //- rjf: take next unit - U64 unit_idx = ins_atomic_u64_inc_eval(sym_take_counter_ptr) - 1; - if(unit_idx >= comp_units->count) - { - break; - } - Temp scratch = scratch_begin(&arena, 1); - RDIM_LineTableChunkList *dst_line_tables = &units_line_tables[unit_idx]; - PDB_CompUnit *src_unit = comp_units->units[unit_idx]; - CV_SymParsed *src_unit_sym = all_syms[unit_idx+1]; - CV_C13Parsed *src_unit_c13 = all_c13s[unit_idx+1]; - RDIM_Unit *dst_unit = 0; - if(params->subset_flags & RDIM_SubsetFlag_Units) { dst_unit = &units[unit_idx]; } - - // rjf: extract unit name - String8 unit_name = src_unit->obj_name; - if(unit_name.size != 0) - { - String8 unit_name_past_last_slash = str8_skip_last_slash(unit_name); - if(unit_name_past_last_slash.size != 0) - { - unit_name = unit_name_past_last_slash; - } - } - - // rjf: produce obj name/path - String8 obj_name = src_unit->obj_name; - if(str8_match(obj_name, str8_lit("* Linker *"), 0) || - str8_match(obj_name, str8_lit("Import:"), StringMatchFlag_RightSideSloppy)) - { - MemoryZeroStruct(&obj_name); - } - String8 obj_folder_path = backslashed_from_str8(scratch.arena, str8_chop_last_slash(obj_name)); - - //- rjf: main unit line table conversion - if(params->subset_flags & RDIM_SubsetFlag_LineInfo) ProfScope("main unit line table conversion") - { - RDIM_LineTable *line_table = 0; - for(CV_C13SubSectionNode *node = src_unit_c13->first_sub_section; - node != 0; - node = node->next) - { - if(node->kind == CV_C13SubSectionKind_Lines) - { - for(CV_C13LinesParsedNode *lines_n = node->lines_first; - lines_n != 0; - lines_n = lines_n->next) - { - CV_C13LinesParsed *lines = &lines_n->v; - - // rjf: file name -> sanitized file path - String8 file_path = lines->file_name; - String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); - { - PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); - String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); - if(file_path_sanitized_style == PathStyle_Relative) - { - String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); - file_path_sanitized_parts = obj_folder_path_parts; - file_path_sanitized_style = path_style_from_str8(obj_folder_path); - } - str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); - file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); - } - - // rjf: sanitized file path -> source file node - U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); - U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; - P2R_SrcFileNode *src_file_node = 0; - if(lines->line_count != 0) - { - for(P2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) - { - if(str8_match(n->src_file->path, file_path_sanitized, 0)) - { - src_file_node = n; - break; - } - } - } - - // rjf: push sequence into both line table & source file's line map - if(src_file_node != 0) - { - if(line_table == 0) - { - line_table = rdim_line_table_chunk_list_push(arena, dst_line_tables, 256); - } - RDIM_LineSequence *seq = rdim_line_table_push_sequence(arena, dst_line_tables, line_table, src_file_node->src_file, lines->voffs, lines->line_nums, lines->col_nums, lines->line_count); - } - } - } - } - - // rjf: fill unit - if(dst_unit != 0) - { - dst_unit->unit_name = unit_name; - dst_unit->compiler_name = src_unit_sym->info.compiler_name; - dst_unit->object_file = obj_name; - dst_unit->archive_file = src_unit->group_name; - dst_unit->language = p2r_rdi_language_from_cv_language(src_unit_sym->info.language); - dst_unit->line_table = line_table; - dst_unit->voff_ranges = unit_ranges[unit_idx]; - } - } - - //- rjf: build per-inline-site line tables - if(params->subset_flags & RDIM_SubsetFlag_InlineLineInfo) ProfScope("build per-inline-site line tables") - { - CV_RecRange *rec_ranges_first = src_unit_sym->sym_ranges.ranges; - CV_RecRange *rec_ranges_opl = src_unit_sym->sym_ranges.ranges + src_unit_sym->sym_ranges.count; - U64 base_voff = 0; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > src_unit_sym->data.size || sym_off_first > src_unit_sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = src_unit_sym->data.str + sym_off_first; - void *sym_data_opl = src_unit_sym->data.str + sym_off_opl; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: process symbol - switch(kind) - { - default:{}break; - - //- rjf: LPROC32/GPROC32 (gather base address) - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - CV_SymProc32 *proc32 = (CV_SymProc32 *)sym_header_struct_base; - COFF_SectionHeader *section = (0 < proc32->sec && proc32->sec <= coff_sections.count) ? &coff_sections.v[proc32->sec-1] : 0; - if(section != 0) - { - base_voff = section->voff + proc32->off; - } - }break; - - //- rjf: INLINESITE - case CV_SymKind_INLINESITE: - { - // rjf: unpack sym - CV_SymInlineSite *sym = (CV_SymInlineSite *)sym_header_struct_base; - String8 binary_annots = str8((U8 *)(sym+1), rec_range->hdr.size - sizeof(rec_range->hdr.kind) - sizeof(*sym)); - - // rjf: map inlinee -> parsed cv c13 inlinee line info - CV_C13InlineeLinesParsed *inlinee_lines_parsed = 0; - { - U64 hash = cv_hash_from_item_id(sym->inlinee); - U64 slot_idx = hash%src_unit_c13->inlinee_lines_parsed_slots_count; - for(CV_C13InlineeLinesParsedNode *n = src_unit_c13->inlinee_lines_parsed_slots[slot_idx]; n != 0; n = n->hash_next) - { - if(n->v.inlinee == sym->inlinee) - { - inlinee_lines_parsed = &n->v; - break; - } - } - } - - // rjf: build line table, fill with parsed binary annotations - if(inlinee_lines_parsed != 0) - { - // rjf: grab checksums sub-section - CV_C13SubSectionNode *file_chksms = src_unit_c13->file_chksms_sub_section; - - // rjf: gathered lines - typedef struct LineChunk LineChunk; - struct LineChunk - { - LineChunk *next; - U64 cap; - U64 count; - U64 *voffs; // [line_count + 1] (sorted) - U32 *line_nums; // [line_count] - U16 *col_nums; // [2*line_count] - }; - LineChunk *first_line_chunk = 0; - LineChunk *last_line_chunk = 0; - U64 total_line_chunk_line_count = 0; - U32 last_file_off = max_U32; - U32 curr_file_off = max_U32; - RDIM_LineTable* line_table = 0; - - CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(inlinee_lines_parsed->file_off, inlinee_lines_parsed->first_source_ln, base_voff); - for(;;) - { - // rjf: step & update - CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitFile) - { - last_file_off = curr_file_off; - curr_file_off = step.file_off; - } - if(step.flags == 0 && total_line_chunk_line_count > 0) - { - last_file_off = curr_file_off; - curr_file_off = max_U32; - } - - // rjf: file updated -> push line chunks gathered for this file - if(last_file_off != max_U32 && last_file_off != curr_file_off) - { - String8 seq_file_name = {0}; - if(last_file_off + sizeof(CV_C13Checksum) <= file_chksms->size) - { - CV_C13Checksum *checksum = (CV_C13Checksum*)(src_unit_c13->data.str + file_chksms->off + last_file_off); - U32 name_off = checksum->name_off; - seq_file_name = pdb_strtbl_string_from_off(strtbl, name_off); - } - - // rjf: file name -> sanitized file path - String8 file_path = seq_file_name; - String8 file_path_sanitized = str8_copy(scratch.arena, str8_skip_chop_whitespace(file_path)); - { - PathStyle file_path_sanitized_style = path_style_from_str8(file_path_sanitized); - String8List file_path_sanitized_parts = str8_split_path(scratch.arena, file_path_sanitized); - if(file_path_sanitized_style == PathStyle_Relative) - { - String8List obj_folder_path_parts = str8_split_path(scratch.arena, obj_folder_path); - str8_list_concat_in_place(&obj_folder_path_parts, &file_path_sanitized_parts); - file_path_sanitized_parts = obj_folder_path_parts; - file_path_sanitized_style = path_style_from_str8(obj_folder_path); - } - str8_path_list_resolve_dots_in_place(&file_path_sanitized_parts, file_path_sanitized_style); - file_path_sanitized = str8_path_list_join_by_style(scratch.arena, &file_path_sanitized_parts, file_path_sanitized_style); - } - - // rjf: sanitized file path -> source file node - U64 file_path_sanitized_hash = rdi_hash(file_path_sanitized.str, file_path_sanitized.size); - U64 src_file_slot = file_path_sanitized_hash%src_file_map->slots_count; - P2R_SrcFileNode *src_file_node = 0; - for(P2R_SrcFileNode *n = src_file_map->slots[src_file_slot]; n != 0; n = n->next) - { - if(str8_match(n->src_file->path, file_path_sanitized, 0)) - { - src_file_node = n; - break; - } - } - - // rjf: gather all lines - RDI_U64 *voffs = 0; - RDI_U32 *line_nums = 0; - RDI_U64 line_count = 0; - if(src_file_node != 0) - { - voffs = push_array_no_zero(arena, RDI_U64, total_line_chunk_line_count+1); - line_nums = push_array_no_zero(arena, RDI_U32, total_line_chunk_line_count); - line_count = total_line_chunk_line_count; - U64 dst_idx = 0; - for(LineChunk *chunk = first_line_chunk; chunk != 0; chunk = chunk->next) - { - MemoryCopy(voffs+dst_idx, chunk->voffs, sizeof(U64)*(chunk->count+1)); - MemoryCopy(line_nums+dst_idx, chunk->line_nums, sizeof(U32)*chunk->count); - dst_idx += chunk->count; - } - } - - // rjf: push - if(line_count != 0) - { - if(line_table == 0) - { - line_table = rdim_line_table_chunk_list_push(arena, dst_line_tables, 256); - if(units_first_inline_site_line_tables[unit_idx] == 0) - { - units_first_inline_site_line_tables[unit_idx] = line_table; - } - } - rdim_line_table_push_sequence(arena, dst_line_tables, line_table, src_file_node->src_file, voffs, line_nums, 0, line_count); - } - - // rjf: clear line chunks for subsequent sequences - first_line_chunk = last_line_chunk = 0; - total_line_chunk_line_count = 0; - } - - // rjf: new line -> emit to chunk - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitLine) - { - LineChunk *chunk = last_line_chunk; - if(chunk == 0 || chunk->count+1 >= chunk->cap) - { - chunk = push_array(scratch.arena, LineChunk, 1); - SLLQueuePush(first_line_chunk, last_line_chunk, chunk); - chunk->cap = 8; - chunk->voffs = push_array_no_zero(scratch.arena, U64, chunk->cap); - chunk->line_nums = push_array_no_zero(scratch.arena, U32, chunk->cap); - } - chunk->voffs[chunk->count] = step.line_voff; - chunk->voffs[chunk->count+1] = step.line_voff_end; - chunk->line_nums[chunk->count] = step.ln; - chunk->count += 1; - total_line_chunk_line_count += 1; - } - - // rjf: no more flags -> done - if(step.flags == 0) - { - break; - } - } - } - }break; - } - } - } - - scratch_end(scratch); - } - } - } - lane_sync(); - RDIM_UnitChunkList all_units = *all_units_ptr; - - ////////////////////////////////////////////////////////////// - //- rjf: join all line tables - // - RDIM_LineTableChunkList all_line_tables = {0}; - RDIM_LineTableChunkList *all_line_tables_ptr = &all_line_tables; - ProfScope("join all line tables") if(lane_idx() == 0) - { - for EachIndex(idx, comp_units->count) - { - rdim_line_table_chunk_list_concat_in_place(&all_line_tables, &units_line_tables[idx]); - } - } - lane_sync_u64(&all_line_tables_ptr, 0); - all_line_tables = *all_line_tables_ptr; - - ////////////////////////////////////////////////////////////// - //- rjf: equip source files with line sequences - // - ProfScope("equip source files with line sequences") if(lane_idx() == 0) - { - for(RDIM_LineTableChunkNode *line_table_chunk_n = all_line_tables.first; - line_table_chunk_n != 0; - line_table_chunk_n = line_table_chunk_n->next) - { - for EachIndex(chunk_line_table_idx, line_table_chunk_n->count) - { - RDIM_LineTable *line_table = &line_table_chunk_n->v[chunk_line_table_idx]; - for(RDIM_LineSequenceNode *s = line_table->first_seq; s != 0; s = s->next) - { - rdim_src_file_push_line_sequence(arena, all_src_files__sequenceless, s->v.src_file, &s->v); - } - } - } - } - lane_sync(); - RDIM_SrcFileChunkList all_src_files = *all_src_files__sequenceless; - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 1: produce type forward resolution map - // - // this map is used to resolve usage of "incomplete structs" in codeview's - // type info. this often happens when e.g. "struct Foo" is used to refer to - // a later-defined "Foo", which actually contains members and so on. we want - // to hook types up to their actual destination complete types wherever - // possible, and so this map can be used to do that in subsequent stages. - // - CV_TypeId *itype_fwd_map = 0; - CV_TypeId itype_first = 0; - CV_TypeId itype_opl = 0; - ProfScope("types pass 1: produce type forward resolution map") - { - //- rjf: allocate forward resolution map - if(lane_idx() == 0) - { - itype_first = tpi_leaf->itype_first; - itype_opl = tpi_leaf->itype_opl; - itype_fwd_map = push_array(scratch.arena, CV_TypeId, (U64)itype_opl); - } - lane_sync_u64(&itype_first, 0); - lane_sync_u64(&itype_opl, 0); - lane_sync_u64(&itype_fwd_map, 0); - - //- rjf: do wide fill - if(params->subset_flags & RDIM_SubsetFlag_Types) - { - Rng1U64 range = lane_range(itype_opl); - for EachInRange(idx, range) - { - CV_TypeId itype = (CV_TypeId)idx; - if(itype < itype_first) { continue; } - - //- rjf: determine if this itype resolves to another - CV_TypeId itype_fwd = 0; - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - if(range->off+range->hdr.size <= tpi_leaf->data.size && - range->off+2+header_struct_size <= tpi_leaf->data.size && - range->hdr.size >= 2) - { - U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - switch(kind) - { - default:{}break; - - //- rjf: CLASS/STRUCTURE - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: - { - // rjf: unpack leaf header - CV_LeafStruct *lf_struct = (CV_LeafStruct *)itype_leaf_first; - - // rjf: has fwd ref flag -> lookup itype that this itype resolves to - if(lf_struct->props & CV_TypeProp_FwdRef) - { - // rjf: unpack rest of leaf - U8 *numeric_ptr = (U8 *)(lf_struct + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - U8 *unique_name_ptr = name_ptr + name.size + 1; - String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - - // rjf: lookup - B32 do_unique_name_lookup = (((lf_struct->props & CV_TypeProp_Scoped) != 0) && - ((lf_struct->props & CV_TypeProp_HasUniqueName) != 0)); - itype_fwd = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); - } - }break; - - //- rjf: CLASS2/STRUCT2 - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: - { - // rjf: unpack leaf header - CV_LeafStruct2 *lf_struct = (CV_LeafStruct2 *)itype_leaf_first; - - // rjf: has fwd ref flag -> lookup itype that this itype resolves to - if(lf_struct->props & CV_TypeProp_FwdRef) - { - // rjf: unpack rest of leaf - U8 *numeric_ptr = (U8 *)(lf_struct + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U8 *name_ptr = (U8 *)numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - U8 *unique_name_ptr = name_ptr + name.size + 1; - String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - - // rjf: lookup - B32 do_unique_name_lookup = (((lf_struct->props & CV_TypeProp_Scoped) != 0) && - ((lf_struct->props & CV_TypeProp_HasUniqueName) != 0)); - itype_fwd = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); - } - }break; - - //- rjf: UNION - case CV_LeafKind_UNION: - { - // rjf: unpack leaf - CV_LeafUnion *lf_union = (CV_LeafUnion *)itype_leaf_first; - U8 *numeric_ptr = (U8 *)(lf_union + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - U8 *unique_name_ptr = name_ptr + name.size + 1; - String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - - // rjf: has fwd ref flag -> lookup itype that this itype resolves tos - if(lf_union->props & CV_TypeProp_FwdRef) - { - B32 do_unique_name_lookup = (((lf_union->props & CV_TypeProp_Scoped) != 0) && - ((lf_union->props & CV_TypeProp_HasUniqueName) != 0)); - itype_fwd = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); - } - }break; - - //- rjf: ENUM - case CV_LeafKind_ENUM: - { - // rjf: unpack leaf - CV_LeafEnum *lf_enum = (CV_LeafEnum*)itype_leaf_first; - U8 *name_ptr = (U8 *)(lf_enum + 1); - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - U8 *unique_name_ptr = name_ptr + name.size + 1; - String8 unique_name = str8_cstring_capped(unique_name_ptr, itype_leaf_opl); - - // rjf: has fwd ref flag -> lookup itype that this itype resolves to - if(lf_enum->props & CV_TypeProp_FwdRef) - { - B32 do_unique_name_lookup = (((lf_enum->props & CV_TypeProp_Scoped) != 0) && - ((lf_enum->props & CV_TypeProp_HasUniqueName) != 0)); - itype_fwd = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, do_unique_name_lookup?unique_name:name, do_unique_name_lookup); - } - }break; - } - } - - //- rjf: if the forwarded itype is nonzero & in TPI range -> save to map - if(itype_fwd != 0 && itype_fwd < tpi_leaf->itype_opl) - { - itype_fwd_map[itype] = itype_fwd; - } - } - } - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 2: produce per-itype itype chain - // - // this pass is to ensure that subsequent passes always produce types for - // dependent itypes first - guaranteeing rdi's "only reference backward" - // rule (which eliminates cycles). each itype slot gets a list of itypes, - // starting with the deepest dependency - when types are produced per-itype, - // this chain is walked, so that deeper dependencies are built first, and - // as such, always show up *earlier* in the actually built types. - // - P2R_TypeIdChain **itype_chains = 0; - ProfScope("types pass 2: produce per-itype itype chain (for producing dependent types first)") - { - //- rjf: allocate itype chain table - if(lane_idx() == 0) - { - itype_chains = push_array(scratch.arena, P2R_TypeIdChain *, (U64)itype_opl); - } - lane_sync_u64(&itype_chains, 0); - - //- rjf: do wide fill - if(params->subset_flags & RDIM_SubsetFlag_Types) - { - Rng1U64 range = lane_range(itype_opl); - for EachInRange(idx, range) - { - CV_TypeId itype = (CV_TypeId)idx; - - //- rjf: push initial itype - should be final-visited-itype for this itype - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = itype; - SLLStackPush(itype_chains[itype], c); - } - - //- rjf: skip basic types for dependency walk - if(itype < tpi_leaf->itype_first) - { - continue; - } - - //- rjf: walk dependent types, push to chain - Temp scratch2 = scratch_begin(&scratch.arena, 1); - P2R_TypeIdChain start_walk_task = {0, itype}; - P2R_TypeIdChain *first_walk_task = &start_walk_task; - P2R_TypeIdChain *last_walk_task = &start_walk_task; - for(P2R_TypeIdChain *walk_task = first_walk_task; - walk_task != 0; - walk_task = walk_task->next) - { - CV_TypeId walk_itype = itype_fwd_map[walk_task->itype] ? itype_fwd_map[walk_task->itype] : walk_task->itype; - if(walk_itype < tpi_leaf->itype_first) - { - continue; - } - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[walk_itype-tpi_leaf->itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - if(range->off+range->hdr.size <= tpi_leaf->data.size && - range->off+2+header_struct_size <= tpi_leaf->data.size && - range->hdr.size >= 2) - { - U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - switch(kind) - { - default:{}break; - - //- rjf: MODIFIER - case CV_LeafKind_MODIFIER: - { - CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; - - // rjf: push dependent itype to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itype - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: POINTER - case CV_LeafKind_POINTER: - { - CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; - - // rjf: push dependent itype to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itype - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: PROCEDURE - case CV_LeafKind_PROCEDURE: - { - CV_LeafProcedure *lf = (CV_LeafProcedure *)itype_leaf_first; - - // rjf: push return itypes to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->ret_itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk return itype - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->ret_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: push arg types to chain - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = arglist_itypes_base[idx]; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk arg types - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = arglist_itypes_base[idx]; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: MFUNCTION - case CV_LeafKind_MFUNCTION: - { - CV_LeafMFunction *lf = (CV_LeafMFunction *)itype_leaf_first; - - // rjf: push dependent itypes to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->ret_itype; - SLLStackPush(itype_chains[itype], c); - } - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->arg_itype; - SLLStackPush(itype_chains[itype], c); - } - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->this_itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itypes - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->ret_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->arg_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->this_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-tpi_leaf->itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: push arg types to chain - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = arglist_itypes_base[idx]; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk arg types - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = arglist_itypes_base[idx]; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: BITFIELD - case CV_LeafKind_BITFIELD: - { - CV_LeafBitField *lf = (CV_LeafBitField *)itype_leaf_first; - - // rjf: push dependent itype to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itype - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: ARRAY - case CV_LeafKind_ARRAY: - { - CV_LeafArray *lf = (CV_LeafArray *)itype_leaf_first; - - // rjf: push dependent itypes to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->entry_itype; - SLLStackPush(itype_chains[itype], c); - } - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->index_itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itypes - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->entry_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->index_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - - //- rjf: ENUM - case CV_LeafKind_ENUM: - { - CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; - - // rjf: push dependent itypes to chain - { - P2R_TypeIdChain *c = push_array(scratch.arena, P2R_TypeIdChain, 1); - c->itype = lf->base_itype; - SLLStackPush(itype_chains[itype], c); - } - - // rjf: push task to walk dependency itypes - { - P2R_TypeIdChain *c = push_array(scratch2.arena, P2R_TypeIdChain, 1); - c->itype = lf->base_itype; - SLLQueuePush(first_walk_task, last_walk_task, c); - } - }break; - } - } - } - scratch_end(scratch2); - } - } - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 3: construct all types from TPI - // - // this doesn't gather struct/class/union/enum members, which is done by - // subsequent passes, to build RDI "UDT" information, which is distinct - // from regular type info. - // - RDIM_TypeChunkList all_types__pre_typedefs = {0}; - RDIM_TypeChunkList *all_types__pre_typedefs_ptr = &all_types__pre_typedefs; - RDIM_Type **itype_type_ptrs = 0; - RDIM_Type **basic_type_ptrs = 0; - if(lane_idx() == 0) ProfScope("types pass 3: construct all root/stub types from TPI") - { -#define p2r_builtin_type_ptr_from_kind(kind) ((basic_type_ptrs && RDI_TypeKind_FirstBuiltIn <= (kind) && (kind) <= RDI_TypeKind_LastBuiltIn) ? (basic_type_ptrs[(kind) - RDI_TypeKind_FirstBuiltIn]) : 0) -#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) - itype_type_ptrs = push_array(scratch.arena, RDIM_Type *, (U64)(itype_opl)); - basic_type_ptrs = push_array(scratch.arena, RDIM_Type *, (RDI_TypeKind_LastBuiltIn - RDI_TypeKind_FirstBuiltIn + 1)); - - //////////////////////////// - //- rjf: build basic types - // - if(params->subset_flags & RDIM_SubsetFlag_Types) - { - for(RDI_TypeKind type_kind = RDI_TypeKind_FirstBuiltIn; - type_kind <= RDI_TypeKind_LastBuiltIn; - type_kind += 1) - { - RDIM_Type *type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, 512); - type->name.str = rdi_string_from_type_kind(type_kind, &type->name.size); - type->kind = type_kind; - type->byte_size = rdi_size_from_basic_type_kind(type_kind); - basic_type_ptrs[type_kind - RDI_TypeKind_FirstBuiltIn] = type; - } - } - - //////////////////////////// - //- rjf: build basic type aliases - // - if(params->subset_flags & RDIM_SubsetFlag_Types) - { - RDIM_DataModel data_model = rdim_data_model_from_os_arch(OperatingSystem_Windows, arch); - RDI_TypeKind short_type = rdim_short_type_kind_from_data_model(data_model); - RDI_TypeKind ushort_type = rdim_unsigned_short_type_kind_from_data_model(data_model); - RDI_TypeKind long_type = rdim_long_type_kind_from_data_model(data_model); - RDI_TypeKind ulong_type = rdim_unsigned_long_type_kind_from_data_model(data_model); - RDI_TypeKind long_long_type = rdim_long_long_type_kind_from_data_model(data_model); - RDI_TypeKind ulong_long_type = rdim_unsigned_long_long_type_kind_from_data_model(data_model); - RDI_TypeKind ptr_type = rdim_pointer_size_t_type_kind_from_data_model(data_model); - struct - { - char * name; - RDI_TypeKind kind_rdi; - CV_LeafKind kind_cv; - } - table[] = - { - { "signed char" , RDI_TypeKind_Char8 , CV_BasicType_CHAR }, - { "short" , short_type , CV_BasicType_SHORT }, - { "long" , long_type , CV_BasicType_LONG }, - { "long long" , long_long_type , CV_BasicType_QUAD }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_OCT }, // Clang type - { "unsigned char" , RDI_TypeKind_UChar8 , CV_BasicType_UCHAR }, - { "unsigned short" , ushort_type , CV_BasicType_USHORT }, - { "unsigned long" , ulong_type , CV_BasicType_ULONG }, - { "unsigned long long" , ulong_long_type , CV_BasicType_UQUAD }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UOCT }, // Clang type - { "bool" , RDI_TypeKind_S8 , CV_BasicType_BOOL8 }, - { "__bool16" , RDI_TypeKind_S16 , CV_BasicType_BOOL16 }, // not real C type - { "__bool32" , RDI_TypeKind_S32 , CV_BasicType_BOOL32 }, // not real C type - { "float" , RDI_TypeKind_F32 , CV_BasicType_FLOAT32 }, - { "double" , RDI_TypeKind_F64 , CV_BasicType_FLOAT64 }, - { "long double" , RDI_TypeKind_F80 , CV_BasicType_FLOAT80 }, - { "__float128" , RDI_TypeKind_F128 , CV_BasicType_FLOAT128 }, // Clang type - { "__float48" , RDI_TypeKind_F48 , CV_BasicType_FLOAT48 }, // not real C type - { "__float32pp" , RDI_TypeKind_F32PP , CV_BasicType_FLOAT32PP }, // not real C type - { "__float16" , RDI_TypeKind_F16 , CV_BasicType_FLOAT16 }, - { "_Complex float" , RDI_TypeKind_ComplexF32 , CV_BasicType_COMPLEX32 }, - { "_Complex double" , RDI_TypeKind_ComplexF64 , CV_BasicType_COMPLEX64 }, - { "_Complex long double" , RDI_TypeKind_ComplexF80 , CV_BasicType_COMPLEX80 }, - { "_Complex __float128" , RDI_TypeKind_ComplexF128, CV_BasicType_COMPLEX128 }, - { "__int8" , RDI_TypeKind_S8 , CV_BasicType_INT8 }, - { "__uint8" , RDI_TypeKind_U8 , CV_BasicType_UINT8 }, - { "__int16" , RDI_TypeKind_S16 , CV_BasicType_INT16 }, - { "__uint16" , RDI_TypeKind_U16 , CV_BasicType_UINT16 }, - { "int" , RDI_TypeKind_S32 , CV_BasicType_INT32 }, - { "int32" , RDI_TypeKind_S32 , CV_BasicType_INT32 }, - { "uint32" , RDI_TypeKind_U32 , CV_BasicType_UINT32 }, - { "__int64" , RDI_TypeKind_S64 , CV_BasicType_INT64 }, - { "__uint64" , RDI_TypeKind_U64 , CV_BasicType_UINT64 }, - { "__int128" , RDI_TypeKind_S128 , CV_BasicType_INT128 }, - { "__uint128" , RDI_TypeKind_U128 , CV_BasicType_UINT128 }, - { "char" , RDI_TypeKind_Char8 , CV_BasicType_RCHAR }, // always ASCII - { "wchar_t" , RDI_TypeKind_UChar16 , CV_BasicType_WCHAR }, // on windows always UTF-16 - { "char8_t" , RDI_TypeKind_Char8 , CV_BasicType_CHAR8 }, // always UTF-8 - { "char16_t" , RDI_TypeKind_Char16 , CV_BasicType_CHAR16 }, // always UTF-16 - { "char32_t" , RDI_TypeKind_Char32 , CV_BasicType_CHAR32 }, // always UTF-32 - { "__pointer" , ptr_type , CV_BasicType_PTR } - }; - for EachElement(idx, table) - { - RDIM_Type *builtin_alias = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, tpi_leaf->itype_opl); - builtin_alias->kind = RDI_TypeKind_Alias; - builtin_alias->name = str8_cstring(table[idx].name); - builtin_alias->direct_type = p2r_builtin_type_ptr_from_kind(table[idx].kind_rdi); - builtin_alias->byte_size = rdi_size_from_basic_type_kind(table[idx].kind_rdi); - itype_type_ptrs[table[idx].kind_cv] = builtin_alias; - } - itype_type_ptrs[CV_BasicType_HRESULT] = basic_type_ptrs[RDI_TypeKind_HResult - RDI_TypeKind_FirstBuiltIn]; - itype_type_ptrs[CV_BasicType_VOID] = basic_type_ptrs[RDI_TypeKind_Void - RDI_TypeKind_FirstBuiltIn]; - } - - //////////////////////////// - //- rjf: build types from TPI - // - if(params->subset_flags & RDIM_SubsetFlag_Types) - { - for(CV_TypeId root_itype = 0; root_itype < itype_opl; root_itype += 1) - { - for(P2R_TypeIdChain *itype_chain = itype_chains[root_itype]; - itype_chain != 0; - itype_chain = itype_chain->next) - { - CV_TypeId itype = (root_itype != itype_chain->itype && itype_chain->itype < itype_opl && itype_fwd_map[itype_chain->itype]) ? itype_fwd_map[itype_chain->itype] : itype_chain->itype; - B32 itype_is_basic = (itype < tpi->itype_first); - - ////////////////////////// - //- rjf: skip forward-reference itypes - all future resolutions will - // reference whatever this itype resolves to, and so there is no point - // in filling out this slot - // - if(itype_fwd_map[root_itype] != 0) - { - continue; - } - - ////////////////////////// - //- rjf: skip already produced dependencies - // - if(itype_type_ptrs[itype] != 0) - { - continue; - } - - ////////////////////////// - //- rjf: build basic type - // - if(itype_is_basic) - { - RDIM_Type *dst_type = 0; - - // rjf: unpack itype - CV_BasicPointerKind cv_basic_ptr_kind = CV_BasicPointerKindFromTypeId(itype); - CV_BasicType cv_basic_type_code = CV_BasicTypeFromTypeId(itype); - - // rjf: get basic type slot, fill if unfilled - RDIM_Type *basic_type = itype_type_ptrs[cv_basic_type_code]; - if(basic_type == 0) - { - RDI_TypeKind type_kind = p2r_rdi_type_kind_from_cv_basic_type(cv_basic_type_code); - U32 byte_size = rdi_size_from_basic_type_kind(type_kind); - basic_type = dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - if(byte_size == 0xffffffff) - { - byte_size = arch_addr_size; - } - basic_type->kind = type_kind; - basic_type->name = cv_type_name_from_basic_type(cv_basic_type_code); - basic_type->byte_size = byte_size; - } - - // rjf: nonzero ptr kind -> form ptr type to basic tpye - if(cv_basic_ptr_kind != 0) - { - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Ptr; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = basic_type; - } - - // rjf: fill this itype's slot with the finished type - itype_type_ptrs[itype] = dst_type; - } - - ////////////////////////// - //- rjf: build non-basic type - // - if(!itype_is_basic && itype >= itype_first) - { - RDIM_Type *dst_type = 0; - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - if(range->off+range->hdr.size <= tpi_leaf->data.size && - range->off+2+header_struct_size <= tpi_leaf->data.size && - range->hdr.size >= 2) - { - U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - switch(kind) - { - //- rjf: MODIFIER - case CV_LeafKind_MODIFIER: - { - // rjf: unpack leaf - CV_LeafModifier *lf = (CV_LeafModifier *)itype_leaf_first; - - // rjf: cv -> rdi flags - RDI_TypeModifierFlags flags = 0; - if(lf->flags & CV_ModifierFlag_Const) {flags |= RDI_TypeModifierFlag_Const;} - if(lf->flags & CV_ModifierFlag_Volatile) {flags |= RDI_TypeModifierFlag_Volatile;} - - // rjf: fill type - if(flags == 0) - { - dst_type = p2r_type_ptr_from_itype(lf->itype); - } - else - { - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Modifier; - dst_type->flags = flags; - dst_type->direct_type = p2r_type_ptr_from_itype(lf->itype); - dst_type->byte_size = dst_type->direct_type ? dst_type->direct_type->byte_size : 0; - } - }break; - - //- rjf: POINTER - case CV_LeafKind_POINTER: - { - // TODO(rjf): if ptr_mode in {PtrMem, PtrMethod} then output a member pointer instead - - // rjf: unpack leaf - CV_LeafPointer *lf = (CV_LeafPointer *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); - CV_PointerKind ptr_kind = CV_PointerAttribs_Extract_Kind(lf->attribs); - CV_PointerMode ptr_mode = CV_PointerAttribs_Extract_Mode(lf->attribs); - U32 ptr_size = CV_PointerAttribs_Extract_Size(lf->attribs); - - // rjf: cv -> rdi modifier flags - RDI_TypeModifierFlags modifier_flags = 0; - if(lf->attribs & CV_PointerAttrib_Const) {modifier_flags |= RDI_TypeModifierFlag_Const;} - if(lf->attribs & CV_PointerAttrib_Volatile) {modifier_flags |= RDI_TypeModifierFlag_Volatile;} - if(lf->attribs & CV_PointerAttrib_Restricted) {modifier_flags |= RDI_TypeModifierFlag_Restrict;} - - // rjf: cv info -> rdi pointer type kind - RDI_TypeKind type_kind = RDI_TypeKind_Ptr; - { - if(lf->attribs & CV_PointerAttrib_LRef) - { - type_kind = RDI_TypeKind_LRef; - } - else if(lf->attribs & CV_PointerAttrib_RRef) - { - type_kind = RDI_TypeKind_RRef; - } - if(ptr_mode == CV_PointerMode_LRef) - { - type_kind = RDI_TypeKind_LRef; - } - else if(ptr_mode == CV_PointerMode_RRef) - { - type_kind = RDI_TypeKind_RRef; - } - } - - // rjf: fill type - if(modifier_flags != 0) - { - RDIM_Type *pointer_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Modifier; - dst_type->flags = modifier_flags; - dst_type->direct_type = pointer_type; - dst_type->byte_size = arch_addr_size; - pointer_type->kind = type_kind; - pointer_type->byte_size = arch_addr_size; - pointer_type->direct_type = direct_type; - } - else - { - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = type_kind; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = direct_type; - } - }break; - - //- rjf: PROCEDURE - case CV_LeafKind_PROCEDURE: - { - // TODO(rjf): handle call_kind & attribs - - // rjf: unpack leaf - CV_LeafProcedure *lf = (CV_LeafProcedure *)itype_leaf_first; - RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); - - // rjf: fill type's basics - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Function; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = ret_type; - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: build param type array - RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_count); - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - params[idx] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); - } - - // rjf: fill dst type - dst_type->count = arglist_itypes_count; - dst_type->param_types = params; - }break; - - //- rjf: MFUNCTION - case CV_LeafKind_MFUNCTION: - { - // TODO(rjf): handle call_kind & attribs - // TODO(rjf): preserve "this_adjust" - - // rjf: unpack leaf - CV_LeafMFunction *lf = (CV_LeafMFunction *)itype_leaf_first; - RDIM_Type *ret_type = p2r_type_ptr_from_itype(lf->ret_itype); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = (lf->this_itype != 0) ? RDI_TypeKind_Method : RDI_TypeKind_Function; - dst_type->byte_size = arch_addr_size; - dst_type->direct_type = ret_type; - - // rjf: unpack arglist range - CV_RecRange *arglist_range = &tpi_leaf->leaf_ranges.ranges[lf->arg_itype-itype_first]; - if(arglist_range->hdr.kind != CV_LeafKind_ARGLIST || - arglist_range->hdr.size<2 || - arglist_range->off + arglist_range->hdr.size > tpi_leaf->data.size) - { - break; - } - U8 *arglist_first = tpi_leaf->data.str + arglist_range->off + 2; - U8 *arglist_opl = arglist_first+arglist_range->hdr.size-2; - if(arglist_first + sizeof(CV_LeafArgList) > arglist_opl) - { - break; - } - - // rjf: unpack arglist info - CV_LeafArgList *arglist = (CV_LeafArgList*)arglist_first; - CV_TypeId *arglist_itypes_base = (CV_TypeId *)(arglist+1); - U32 arglist_itypes_count = arglist->count; - - // rjf: build param type array - U64 num_this_extras = 1; - if(lf->this_itype == 0) - { - num_this_extras = 0; - } - RDIM_Type **params = push_array(arena, RDIM_Type *, arglist_itypes_count+num_this_extras); - for(U32 idx = 0; idx < arglist_itypes_count; idx += 1) - { - params[idx+num_this_extras] = p2r_type_ptr_from_itype(arglist_itypes_base[idx]); - } - if(lf->this_itype != 0) - { - params[0] = p2r_type_ptr_from_itype(lf->this_itype); - } - - // rjf: fill dst type - dst_type->count = arglist_itypes_count+num_this_extras; - dst_type->param_types = params; - }break; - - //- rjf: BITFIELD - case CV_LeafKind_BITFIELD: - { - // rjf: unpack leaf - CV_LeafBitField *lf = (CV_LeafBitField *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->itype); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Bitfield; - dst_type->off = lf->pos; - dst_type->count = lf->len; - dst_type->byte_size = direct_type?direct_type->byte_size:0; - dst_type->direct_type = direct_type; - }break; - - //- rjf: ARRAY - case CV_LeafKind_ARRAY: - { - // rjf: unpack leaf - CV_LeafArray *lf = (CV_LeafArray *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->entry_itype); - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed array_count = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 full_size = cv_u64_from_numeric(&array_count); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - dst_type->kind = RDI_TypeKind_Array; - dst_type->direct_type = direct_type; - dst_type->byte_size = full_size; - dst_type->count = (direct_type && direct_type->byte_size) ? (dst_type->byte_size/direct_type->byte_size) : 0; - }break; - - //- rjf: CLASS/STRUCTURE - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); - dst_type->name = name; - } - else - { - dst_type->kind = (kind == CV_LeafKind_CLASS ? RDI_TypeKind_Class : RDI_TypeKind_Struct); - dst_type->byte_size = (U32)size_u64; - dst_type->name = name; - } - }break; - - //- rjf: CLASS2/STRUCT2 - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_IncompleteClass : RDI_TypeKind_IncompleteStruct); - dst_type->name = name; - } - else - { - dst_type->kind = (kind == CV_LeafKind_CLASS2 ? RDI_TypeKind_Class : RDI_TypeKind_Struct); - dst_type->byte_size = (U32)size_u64; - dst_type->name = name; - } - }break; - - //- rjf: UNION - case CV_LeafKind_UNION: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; - U8 *numeric_ptr = (U8*)(lf + 1); - CV_NumericParsed size = cv_numeric_from_data_range(numeric_ptr, itype_leaf_opl); - U64 size_u64 = cv_u64_from_numeric(&size); - U8 *name_ptr = numeric_ptr + size.encoded_size; - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = RDI_TypeKind_IncompleteUnion; - dst_type->name = name; - } - else - { - dst_type->kind = RDI_TypeKind_Union; - dst_type->byte_size = (U32)size_u64; - dst_type->name = name; - } - }break; - - //- rjf: ENUM - case CV_LeafKind_ENUM: - { - // TODO(rjf): handle props - - // rjf: unpack leaf - CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; - RDIM_Type *direct_type = p2r_type_ptr_from_itype(lf->base_itype); - U8 *name_ptr = (U8 *)(lf + 1); - String8 name = str8_cstring_capped(name_ptr, itype_leaf_opl); - - // rjf: fill type - dst_type = rdim_type_chunk_list_push(arena, all_types__pre_typedefs_ptr, (U64)itype_opl); - if(lf->props & CV_TypeProp_FwdRef) - { - dst_type->kind = RDI_TypeKind_IncompleteEnum; - dst_type->name = name; - } - else - { - dst_type->kind = RDI_TypeKind_Enum; - dst_type->direct_type = direct_type; - dst_type->byte_size = direct_type ? direct_type->byte_size : 0; - dst_type->name = name; - } - }break; - } - } - - //- rjf: store finalized type to this itype's slot - itype_type_ptrs[itype] = dst_type; - } - } - } - } -#undef p2r_type_ptr_from_itype -#undef p2r_builtin_type_ptr_from_kind - } - lane_sync_u64(&itype_type_ptrs, 0); - lane_sync_u64(&basic_type_ptrs, 0); - lane_sync_u64(&all_types__pre_typedefs_ptr, 0); - all_types__pre_typedefs = *all_types__pre_typedefs_ptr; - - ////////////////////////////////////////////////////////////// - //- rjf: types pass 4: build UDTs - // - RDIM_UDTChunkList *lanes_udts = 0; - ProfScope("types pass 4: build UDTs") - { -#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < tpi_leaf->itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) - - //- rjf: gather this lane's UDTs - RDIM_UDTChunkList lane_udts = {0}; - if(params->subset_flags & RDIM_SubsetFlag_Types && - params->subset_flags & RDIM_SubsetFlag_UDTs) - { - U64 udts_chunk_cap = 4096; - RDIM_UDTChunkList *udts = &lane_udts; - Rng1U64 range = lane_range(itype_opl); - for EachInRange(idx, range) - { - //- rjf: skip basics - CV_TypeId itype = (CV_TypeId)idx; - if(itype < itype_first) { continue; } - - //- rjf: grab type for this itype - skip if empty - RDIM_Type *dst_type = itype_type_ptrs[itype]; - if(dst_type == 0) { continue; } - - //- rjf: unpack itype leaf range - skip if out-of-range - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[itype-tpi_leaf->itype_first]; - CV_LeafKind kind = range->hdr.kind; - U64 header_struct_size = cv_header_struct_size_from_leaf_kind(kind); - U8 *itype_leaf_first = tpi_leaf->data.str + range->off+2; - U8 *itype_leaf_opl = itype_leaf_first + range->hdr.size-2; - if(range->off+range->hdr.size > tpi_leaf->data.size || - range->off+2+header_struct_size > tpi_leaf->data.size || - range->hdr.size < 2) - { - continue; - } - - //- rjf: build UDT - CV_TypeId field_itype = 0; - switch(kind) - { - default:{}break; - - //////////////////////// - //- rjf: structs/unions/classes -> equip members - // - case CV_LeafKind_CLASS: - case CV_LeafKind_STRUCTURE: - { - CV_LeafStruct *lf = (CV_LeafStruct *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - case CV_LeafKind_UNION: - { - CV_LeafUnion *lf = (CV_LeafUnion *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - case CV_LeafKind_CLASS2: - case CV_LeafKind_STRUCT2: - { - CV_LeafStruct2 *lf = (CV_LeafStruct2 *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_members; - equip_members: - { - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: grab UDT info - RDIM_UDT *dst_udt = dst_type->udt; - if(dst_udt == 0) - { - dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); - dst_udt->self_type = dst_type; - } - - //- rjf: gather all fields - typedef struct FieldListTask FieldListTask; - struct FieldListTask - { - FieldListTask *next; - CV_TypeId itype; - }; - FieldListTask start_fl_task = {0, field_itype}; - FieldListTask *fl_todo_stack = &start_fl_task; - FieldListTask *fl_done_stack = 0; - for(;fl_todo_stack != 0;) - { - //- rjf: take & unpack task - FieldListTask *fl_task = fl_todo_stack; - SLLStackPop(fl_todo_stack); - SLLStackPush(fl_done_stack, fl_task); - CV_TypeId field_list_itype = fl_task->itype; - - //- rjf: skip bad itypes - if(field_list_itype < tpi_leaf->itype_first || tpi_leaf->itype_opl <= field_list_itype) - { - continue; - } - - //- rjf: field list itype -> range - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[field_list_itype-tpi_leaf->itype_first]; - - //- rjf: skip bad headers - if(range->off+range->hdr.size > tpi_leaf->data.size || - range->hdr.size < 2 || - range->hdr.kind != CV_LeafKind_FIELDLIST) - { - continue; - } - - //- rjf: loop over all fields - { - U8 *field_list_first = tpi_leaf->data.str+range->off+2; - U8 *field_list_opl = field_list_first+range->hdr.size-2; - for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; - read_ptr < field_list_opl; - read_ptr = next_read_ptr) - { - // rjf: unpack field - CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; - U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); - U8 *field_leaf_first = read_ptr+2; - U8 *field_leaf_opl = field_list_opl; - next_read_ptr = field_leaf_opl; - - // rjf: skip out-of-bounds fields - if(field_leaf_first+field_leaf_header_size > field_list_opl) - { - continue; - } - - // rjf: process field - switch(field_kind) - { - //- rjf: unhandled/invalid cases - default: - { - // TODO(rjf): log - }break; - - //- rjf: INDEX - case CV_LeafKind_INDEX: - { - // rjf: unpack leaf - CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; - CV_TypeId new_itype = lf->itype; - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // rjf: determine if index itype is new - B32 is_new = 1; - for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) - { - if(t->itype == new_itype) - { - is_new = 0; - break; - } - } - - // rjf: if new -> push task to follow new itype - if(is_new) - { - FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); - SLLStackPush(fl_todo_stack, new_task); - new_task->itype = new_itype; - } - }break; - - //- rjf: MEMBER - case CV_LeafKind_MEMBER: - { - // TODO(rjf): log on bad offset - - // rjf: unpack leaf - CV_LeafMember *lf = (CV_LeafMember *)field_leaf_first; - U8 *offset_ptr = (U8 *)(lf+1); - CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); - U64 offset64 = cv_u64_from_numeric(&offset); - U8 *name_ptr = offset_ptr + offset.encoded_size; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_DataField; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - mem->off = (U32)offset64; - }break; - - //- rjf: STMEMBER - case CV_LeafKind_STMEMBER: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafStMember *lf = (CV_LeafStMember *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticData; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: METHOD - case CV_LeafKind_METHOD: - { - // rjf: unpack leaf - CV_LeafMethod *lf = (CV_LeafMethod *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - //- rjf: method list itype -> range - CV_RecRange *method_list_range = &tpi_leaf->leaf_ranges.ranges[lf->list_itype-tpi_leaf->itype_first]; - - //- rjf: skip bad method lists - if(method_list_range->off+method_list_range->hdr.size > tpi_leaf->data.size || - method_list_range->hdr.size < 2 || - method_list_range->hdr.kind != CV_LeafKind_METHODLIST) - { - break; - } - - //- rjf: loop through all methods & emit members - U8 *method_list_first = tpi_leaf->data.str + method_list_range->off + 2; - U8 *method_list_opl = method_list_first + method_list_range->hdr.size-2; - for(U8 *method_read_ptr = method_list_first, *next_method_read_ptr = method_list_opl; - method_read_ptr < method_list_opl; - method_read_ptr = next_method_read_ptr) - { - CV_LeafMethodListMember *method = (CV_LeafMethodListMember*)method_read_ptr; - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(method->attribs); - RDIM_Type *method_type = p2r_type_ptr_from_itype(method->itype); - next_method_read_ptr = (U8 *)(method+1); - - // TODO(allen): PROBLEM - // We only get offsets for virtual functions (the "vbaseoff") from - // "Intro" and "PureIntro". In C++ inheritance, when we have a chain - // of inheritance (let's just talk single inheritance for now) the - // first class in the chain that introduces a new virtual function - // has this "Intro" method. If a later class in the chain redefines - // the virtual function it only has a "Virtual" method which does - // not update the offset. There is a "Virtual" and "PureVirtual" - // variant of "Virtual". The "Pure" in either case means there - // is no concrete procedure. When there is no "Pure" the method - // should have a corresponding procedure symbol id. - // - // The issue is we will want to mark all of our virtual methods as - // virtual and give them an offset, but that means we have to do - // some extra figuring to propogate offsets from "Intro" methods - // to "Virtual" methods in inheritance trees. That is - IF we want - // to start preserving the offsets of virtuals. There is room in - // the method struct to make this work, but for now I've just - // decided to drop this information. It is not urgently useful to - // us and greatly complicates matters. - - // rjf: read vbaseoff - U32 vbaseoff = 0; - if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) - { - if(next_method_read_ptr+4 <= method_list_opl) - { - vbaseoff = *(U32 *)next_method_read_ptr; - } - next_method_read_ptr += 4; - } - - // rjf: emit method - switch(prop) - { - default: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Method; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Static: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticMethod; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Virtual: - case CV_MethodProp_PureVirtual: - case CV_MethodProp_Intro: - case CV_MethodProp_PureIntro: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualMethod; - mem->name = name; - mem->type = method_type; - }break; - } - } - - }break; - - //- rjf: ONEMETHOD - case CV_LeafKind_ONEMETHOD: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafOneMethod *lf = (CV_LeafOneMethod *)field_leaf_first; - CV_MethodProp prop = CV_FieldAttribs_Extract_MethodProp(lf->attribs); - U8 *vbaseoff_ptr = (U8 *)(lf+1); - U8 *vbaseoff_opl_ptr = vbaseoff_ptr; - U32 vbaseoff = 0; - if(prop == CV_MethodProp_Intro || prop == CV_MethodProp_PureIntro) - { - vbaseoff = *(U32 *)(vbaseoff_ptr); - vbaseoff_opl_ptr += sizeof(U32); - } - U8 *name_ptr = vbaseoff_opl_ptr; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - RDIM_Type *method_type = p2r_type_ptr_from_itype(lf->itype); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit method - switch(prop) - { - default: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Method; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Static: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_StaticMethod; - mem->name = name; - mem->type = method_type; - }break; - case CV_MethodProp_Virtual: - case CV_MethodProp_PureVirtual: - case CV_MethodProp_Intro: - case CV_MethodProp_PureIntro: - { - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualMethod; - mem->name = name; - mem->type = method_type; - }break; - } - }break; - - //- rjf: NESTTYPE - case CV_LeafKind_NESTTYPE: - { - // rjf: unpack leaf - CV_LeafNestType *lf = (CV_LeafNestType *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_NestedType; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: NESTTYPEEX - case CV_LeafKind_NESTTYPEEX: - { - // TODO(rjf): handle attribs - - // rjf: unpack leaf - CV_LeafNestTypeEx *lf = (CV_LeafNestTypeEx *)field_leaf_first; - U8 *name_ptr = (U8 *)(lf+1); - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_NestedType; - mem->name = name; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: BCLASS - case CV_LeafKind_BCLASS: - { - // TODO(rjf): log on bad offset - - // rjf: unpack leaf - CV_LeafBClass *lf = (CV_LeafBClass *)field_leaf_first; - U8 *offset_ptr = (U8 *)(lf+1); - CV_NumericParsed offset = cv_numeric_from_data_range(offset_ptr, field_leaf_opl); - U64 offset64 = cv_u64_from_numeric(&offset); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = offset_ptr+offset.encoded_size; - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_Base; - mem->type = p2r_type_ptr_from_itype(lf->itype); - mem->off = (U32)offset64; - }break; - - //- rjf: VBCLASS/IVBCLASS - case CV_LeafKind_VBCLASS: - case CV_LeafKind_IVBCLASS: - { - // TODO(rjf): log on bad offsets - // TODO(rjf): handle attribs - // TODO(rjf): offsets? - - // rjf: unpack leaf - CV_LeafVBClass *lf = (CV_LeafVBClass *)field_leaf_first; - U8 *num1_ptr = (U8 *)(lf+1); - CV_NumericParsed num1 = cv_numeric_from_data_range(num1_ptr, field_leaf_opl); - U8 *num2_ptr = num1_ptr + num1.encoded_size; - CV_NumericParsed num2 = cv_numeric_from_data_range(num2_ptr, field_leaf_opl); - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // rjf: emit member - RDIM_UDTMember *mem = rdim_udt_push_member(arena, udts, dst_udt); - mem->kind = RDI_MemberKind_VirtualBase; - mem->type = p2r_type_ptr_from_itype(lf->itype); - }break; - - //- rjf: VFUNCTAB - case CV_LeafKind_VFUNCTAB: - { - CV_LeafVFuncTab *lf = (CV_LeafVFuncTab *)field_leaf_first; - - // rjf: bump next read pointer past header - next_read_ptr = (U8 *)(lf+1); - - // NOTE(rjf): currently no-op this case - (void)lf; - }break; - } - - // rjf: align-up next field - next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); - } - } - } - - scratch_end(scratch); - }break; - - //////////////////////// - //- rjf: enums -> equip enumerates - // - case CV_LeafKind_ENUM: - { - CV_LeafEnum *lf = (CV_LeafEnum *)itype_leaf_first; - if(lf->props & CV_TypeProp_FwdRef) - { - break; - } - field_itype = lf->field_itype; - }goto equip_enum_vals; - equip_enum_vals:; - { - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: grab UDT info - RDIM_UDT *dst_udt = dst_type->udt; - if(dst_udt == 0) - { - dst_udt = dst_type->udt = rdim_udt_chunk_list_push(arena, udts, udts_chunk_cap); - dst_udt->self_type = dst_type; - } - - //- rjf: gather all fields - typedef struct FieldListTask FieldListTask; - struct FieldListTask - { - FieldListTask *next; - CV_TypeId itype; - }; - FieldListTask start_fl_task = {0, field_itype}; - FieldListTask *fl_todo_stack = &start_fl_task; - FieldListTask *fl_done_stack = 0; - for(;fl_todo_stack != 0;) - { - //- rjf: take & unpack task - FieldListTask *fl_task = fl_todo_stack; - SLLStackPop(fl_todo_stack); - SLLStackPush(fl_done_stack, fl_task); - CV_TypeId field_list_itype = fl_task->itype; - - //- rjf: skip bad itypes - if(field_list_itype < tpi_leaf->itype_first || tpi_leaf->itype_opl <= field_list_itype) - { - continue; - } - - //- rjf: field list itype -> range - CV_RecRange *range = &tpi_leaf->leaf_ranges.ranges[field_list_itype-tpi_leaf->itype_first]; - - //- rjf: skip bad headers - if(range->off+range->hdr.size > tpi_leaf->data.size || - range->hdr.size < 2 || - range->hdr.kind != CV_LeafKind_FIELDLIST) - { - continue; - } - - //- rjf: loop over all fields - { - U8 *field_list_first = tpi_leaf->data.str+range->off+2; - U8 *field_list_opl = field_list_first+range->hdr.size-2; - for(U8 *read_ptr = field_list_first, *next_read_ptr = field_list_opl; - read_ptr < field_list_opl; - read_ptr = next_read_ptr) - { - // rjf: unpack field - CV_LeafKind field_kind = *(CV_LeafKind *)read_ptr; - U64 field_leaf_header_size = cv_header_struct_size_from_leaf_kind(field_kind); - U8 *field_leaf_first = read_ptr+2; - U8 *field_leaf_opl = field_leaf_first+range->hdr.size-2; - next_read_ptr = field_leaf_opl; - - // rjf: skip out-of-bounds fields - if(field_leaf_first+field_leaf_header_size > field_list_opl) - { - continue; - } - - // rjf: process field - switch(field_kind) - { - //- rjf: unhandled/invalid cases - default: - { - // TODO(rjf): log - }break; - - //- rjf: INDEX - case CV_LeafKind_INDEX: - { - // rjf: unpack leaf - CV_LeafIndex *lf = (CV_LeafIndex *)field_leaf_first; - CV_TypeId new_itype = lf->itype; - - // rjf: determine if index itype is new - B32 is_new = 1; - for(FieldListTask *t = fl_done_stack; t != 0; t = t->next) - { - if(t->itype == new_itype) - { - is_new = 0; - break; - } - } - - // rjf: if new -> push task to follow new itype - if(is_new) - { - FieldListTask *new_task = push_array(scratch.arena, FieldListTask, 1); - SLLStackPush(fl_todo_stack, new_task); - new_task->itype = new_itype; - } - }break; - - //- rjf: ENUMERATE - case CV_LeafKind_ENUMERATE: - { - // TODO(rjf): attribs - - // rjf: unpack leaf - CV_LeafEnumerate *lf = (CV_LeafEnumerate *)field_leaf_first; - U8 *val_ptr = (U8 *)(lf+1); - CV_NumericParsed val = cv_numeric_from_data_range(val_ptr, field_leaf_opl); - U64 val64 = cv_u64_from_numeric(&val); - U8 *name_ptr = val_ptr + val.encoded_size; - String8 name = str8_cstring_capped(name_ptr, field_leaf_opl); - - // rjf: bump next read pointer past variable length parts - next_read_ptr = name.str+name.size+1; - - // rjf: emit member - RDIM_UDTEnumVal *enum_val = rdim_udt_push_enum_val(arena, udts, dst_udt); - enum_val->name = name; - enum_val->val = val64; - }break; - } - - // rjf: align-up next field - next_read_ptr = (U8 *)AlignPow2((U64)next_read_ptr, 4); - } - } - } - - scratch_end(scratch); - }break; - } - } - } - - //- rjf: collect all lanes - if(lane_idx() == 0) - { - lanes_udts = push_array(scratch.arena, RDIM_UDTChunkList, lane_count()); - } - lane_sync_u64(&lanes_udts, 0); - lanes_udts[lane_idx()] = lane_udts; -#undef p2r_type_ptr_from_itype - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: join all UDTs - // - RDIM_UDTChunkList all_udts = {0}; - ProfScope("join all UDTs") if(lane_idx() == 0) - { - for EachIndex(idx, lane_count()) - { - rdim_udt_chunk_list_concat_in_place(&all_udts, &lanes_udts[idx]); - } - } - lane_sync(); - RDIM_UDTChunkList *all_udts_ptr = &all_udts; - lane_sync_u64(&all_udts_ptr, 0); - all_udts = *all_udts_ptr; - - ////////////////////////////////////////////////////////////// - //- rjf: produce symbols from all streams - // - RDIM_LocationChunkList *syms_locations = 0; - RDIM_SymbolChunkList *syms_procedures = 0; - RDIM_SymbolChunkList *syms_global_variables = 0; - RDIM_SymbolChunkList *syms_thread_variables = 0; - RDIM_SymbolChunkList *syms_constants = 0; - RDIM_ScopeChunkList *syms_scopes = 0; - RDIM_InlineSiteChunkList *syms_inline_sites = 0; - RDIM_TypeChunkList *syms_typedefs = 0; - ProfScope("produce symbols from all streams") - { -#define p2r_type_ptr_from_itype(itype) ((itype_type_ptrs && (itype) < itype_opl) ? (itype_type_ptrs[(itype_fwd_map[(itype)] ? itype_fwd_map[(itype)] : (itype))]) : 0) - - //////////////////////////// - //- rjf: set up - // - if(lane_idx() == 0) - { - syms_locations = push_array(arena, RDIM_LocationChunkList, all_syms_count); - syms_procedures = push_array(arena, RDIM_SymbolChunkList, all_syms_count); - syms_global_variables = push_array(arena, RDIM_SymbolChunkList, all_syms_count); - syms_thread_variables = push_array(arena, RDIM_SymbolChunkList, all_syms_count); - syms_constants = push_array(arena, RDIM_SymbolChunkList, all_syms_count); - syms_scopes = push_array(arena, RDIM_ScopeChunkList, all_syms_count); - syms_inline_sites = push_array(arena, RDIM_InlineSiteChunkList, all_syms_count); - syms_typedefs = push_array(arena, RDIM_TypeChunkList, all_syms_count); - } - lane_sync_u64(&syms_locations, 0); - lane_sync_u64(&syms_procedures, 0); - lane_sync_u64(&syms_global_variables, 0); - lane_sync_u64(&syms_thread_variables, 0); - lane_sync_u64(&syms_constants, 0); - lane_sync_u64(&syms_scopes, 0); - lane_sync_u64(&syms_inline_sites, 0); - lane_sync_u64(&syms_typedefs, 0); - - //////////////////////////// - //- rjf: fill outputs for all unit sym blocks in this lane - // - if(params->subset_flags & (RDIM_SubsetFlag_Procedures| - RDIM_SubsetFlag_GlobalVariables| - RDIM_SubsetFlag_ThreadVariables| - RDIM_SubsetFlag_Scopes| - RDIM_SubsetFlag_Locals| - RDIM_SubsetFlag_GlobalVariableNameMap| - RDIM_SubsetFlag_ThreadVariableNameMap| - RDIM_SubsetFlag_ProcedureNameMap| - RDIM_SubsetFlag_ConstantNameMap| - RDIM_SubsetFlag_LinkNameProcedureNameMap| - RDIM_SubsetFlag_Types)) - { - U64 sym_take_counter = 0; - U64 *sym_take_counter_ptr = &sym_take_counter; - lane_sync_u64(&sym_take_counter_ptr, 0); - for(;;) - { - //- rjf: take next sym - U64 sym_idx = ins_atomic_u64_inc_eval(sym_take_counter_ptr) - 1; - if(sym_idx >= all_syms_count) - { - break; - } - - //- rjf: unpack sym - Temp scratch = scratch_begin(&arena, 1); - CV_SymParsed *sym = all_syms[sym_idx]; - Rng1U64 sym_rec_range = r1u64(0, sym->sym_ranges.count); - U64 sym_locations_chunk_cap = 4096; - U64 sym_procedures_chunk_cap = 2048; - U64 sym_global_variables_chunk_cap = 2048; - U64 sym_thread_variables_chunk_cap = 2048; - U64 sym_constants_chunk_cap = 2048; - U64 sym_scopes_chunk_cap = 4096; - U64 sym_inline_sites_chunk_cap = 2048; - RDIM_LocationChunkList *sym_locations = &syms_locations[sym_idx]; - RDIM_SymbolChunkList *sym_procedures = &syms_procedures[sym_idx]; - RDIM_SymbolChunkList *sym_global_variables = &syms_global_variables[sym_idx]; - RDIM_SymbolChunkList *sym_thread_variables = &syms_thread_variables[sym_idx]; - RDIM_SymbolChunkList *sym_constants = &syms_constants[sym_idx]; - RDIM_ScopeChunkList *sym_scopes = &syms_scopes[sym_idx]; - RDIM_InlineSiteChunkList *sym_inline_sites = &syms_inline_sites[sym_idx]; - RDIM_TypeChunkList *typedefs = &syms_typedefs[sym_idx]; - - ////////////////////////// - //- rjf: symbols pass 1: produce procedure frame info map (procedure -> frame info) - // - U64 procedure_frameprocs_count = 0; - U64 procedure_frameprocs_cap = dim_1u64(sym_rec_range); - CV_SymFrameproc **procedure_frameprocs = push_array_no_zero(scratch.arena, CV_SymFrameproc *, procedure_frameprocs_cap); - ProfScope("symbols pass 1: produce procedure frame info map (procedure -> frame info)") - { - U64 procedure_num = 0; - CV_RecRange *rec_ranges_first = sym->sym_ranges.ranges + sym_rec_range.min; - CV_RecRange *rec_ranges_opl = sym->sym_ranges.ranges + sym_rec_range.max; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > sym->data.size || sym_off_first > sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = sym->data.str + sym_off_first; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: consume symbol based on kind - switch(kind) - { - default:{}break; - - //- rjf: FRAMEPROC - case CV_SymKind_FRAMEPROC: - { - if(procedure_num == 0) { break; } - if(procedure_num > procedure_frameprocs_cap) { break; } - CV_SymFrameproc *frameproc = (CV_SymFrameproc*)sym_header_struct_base; - procedure_frameprocs[procedure_num-1] = frameproc; - procedure_frameprocs_count = Max(procedure_frameprocs_count, procedure_num); - }break; - - //- rjf: LPROC32/GPROC32 - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - procedure_num += 1; - }break; - } - } - U64 scratch_overkill = sizeof(procedure_frameprocs[0])*(procedure_frameprocs_cap-procedure_frameprocs_count); - arena_pop(scratch.arena, scratch_overkill); - } - - ////////////////////////// - //- rjf: symbols pass 2: construct all symbols, given procedure frame info map - // - ProfScope("symbols pass 2: construct all symbols, given procedure frame info map") - { - RDIM_Local *defrange_target = 0; - B32 defrange_target_is_param = 0; - U64 procedure_num = 0; - U64 procedure_base_voff = 0; - CV_RecRange *rec_ranges_first = sym->sym_ranges.ranges + sym_rec_range.min; - CV_RecRange *rec_ranges_opl = sym->sym_ranges.ranges + sym_rec_range.max; - typedef struct P2R_ScopeNode P2R_ScopeNode; - struct P2R_ScopeNode - { - P2R_ScopeNode *next; - RDIM_Scope *scope; - }; - P2R_ScopeNode *top_scope_node = 0; - P2R_ScopeNode *free_scope_node = 0; - RDIM_LineTable *inline_site_line_table = sym_idx > 0 ? units_first_inline_site_line_tables[sym_idx-1] : 0; - for(CV_RecRange *rec_range = rec_ranges_first; - rec_range < rec_ranges_opl; - rec_range += 1) - { - //- rjf: rec range -> symbol info range - U64 sym_off_first = rec_range->off + 2; - U64 sym_off_opl = rec_range->off + rec_range->hdr.size; - - //- rjf: skip invalid ranges - if(sym_off_opl > sym->data.size || sym_off_first > sym->data.size || sym_off_first > sym_off_opl) - { - continue; - } - - //- rjf: unpack symbol info - CV_SymKind kind = rec_range->hdr.kind; - U64 sym_header_struct_size = cv_header_struct_size_from_sym_kind(kind); - void *sym_header_struct_base = sym->data.str + sym_off_first; - void *sym_data_opl = sym->data.str + sym_off_opl; - - //- rjf: skip bad sizes - if(sym_off_first + sym_header_struct_size > sym_off_opl) - { - continue; - } - - //- rjf: consume symbol based on kind - switch(kind) - { - default:{}break; - - //- rjf: END - case CV_SymKind_END: - { - P2R_ScopeNode *n = top_scope_node; - if(n != 0) - { - SLLStackPop(top_scope_node); - SLLStackPush(free_scope_node, n); - } - defrange_target = 0; - defrange_target_is_param = 0; - }break; - - //- rjf: BLOCK32 - case CV_SymKind_BLOCK32: - { - // rjf: unpack sym - CV_SymBlock32 *block32 = (CV_SymBlock32 *)sym_header_struct_base; - - // rjf: build scope, insert into current parent scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); - { - if(top_scope_node == 0) - { - // TODO(rjf): log - } - if(top_scope_node != 0) - { - RDIM_Scope *top_scope = top_scope_node->scope; - SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); - scope->parent_scope = top_scope; - scope->symbol = top_scope->symbol; - } - COFF_SectionHeader *section = (0 < block32->sec && block32->sec <= coff_sections.count) ? &coff_sections.v[block32->sec-1] : 0; - if(section != 0) - { - U64 voff_first = section->voff + block32->off; - U64 voff_last = voff_first + block32->len; - RDIM_Rng1U64 voff_range = {voff_first, voff_last}; - rdim_scope_push_voff_range(arena, sym_scopes, scope, voff_range); - } - } - - // rjf: push this scope to scope stack - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = scope; - SLLStackPush(top_scope_node, node); - } - }break; - - //- rjf: LDATA32/GDATA32 - case CV_SymKind_LDATA32: - case CV_SymKind_GDATA32: - { - // rjf: unpack sym - CV_SymData32 *data32 = (CV_SymData32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(data32+1, sym_data_opl); - COFF_SectionHeader *section = (0 < data32->sec && data32->sec <= coff_sections.count) ? &coff_sections.v[data32->sec-1] : 0; - U64 voff = (section ? section->voff : 0) + data32->off; - - // rjf: determine if this is an exact duplicate global - // - // PDB likes to have duplicates of these spread across different - // symbol streams so we deduplicate across the entire translation - // context. - // - B32 is_duplicate = 0; - { - // TODO(rjf): @important global symbol dedup - } - - // rjf: is not duplicate -> push new global - if(!is_duplicate) - { - // rjf: unpack global variable's type - RDIM_Type *type = p2r_type_ptr_from_itype(data32->itype); - - // rjf: unpack global's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack global's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // rjf: build symbol - RDIM_Symbol *symbol = rdim_symbol_chunk_list_push(arena, sym_global_variables, sym_global_variables_chunk_cap); - symbol->is_extern = (kind == CV_SymKind_GDATA32); - symbol->name = name; - symbol->type = type; - symbol->offset = voff; - symbol->container_symbol = container_symbol; - symbol->container_type = container_type; - } - }break; - - //- rjf: UDT (typedefs) - case CV_SymKind_UDT: - if(sym == all_syms[0] && top_scope_node == 0) - { - if(params->subset_flags & (RDIM_SubsetFlag_Types|RDIM_SubsetFlag_UDTs|RDIM_SubsetFlag_TypeNameMap)) - { - CV_SymUDT *udt = (CV_SymUDT *)sym_header_struct_base; - String8 name = str8_cstring_capped(udt+1, sym_data_opl); - RDIM_Type *type = rdim_type_chunk_list_push(arena, typedefs, 4096); - type->kind = RDI_TypeKind_Alias; - type->name = name; - type->direct_type = p2r_type_ptr_from_itype(udt->itype); - if(type->direct_type != 0) - { - type->byte_size = type->direct_type->byte_size; - } - } - }break; - - //- rjf: LPROC32/GPROC32 - case CV_SymKind_LPROC32: - case CV_SymKind_GPROC32: - { - // rjf: unpack sym - CV_SymProc32 *proc32 = (CV_SymProc32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(proc32+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(proc32->itype); - - // rjf: unpack proc's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2 && tpi_hash != 0 && tpi_leaf != 0) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack proc's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // rjf: build procedure's root scope - // - // NOTE: even if there could be a containing scope at this point (which should be - // illegal in C/C++ but not necessarily in another language) we would not use - // it here because these scopes refer to the ranges of code that make up a - // procedure *not* the namespaces, so a procedure's root scope always has - // no parent. - RDIM_Scope *procedure_root_scope = 0; - if(params->subset_flags & RDIM_SubsetFlag_Scopes) - { - procedure_root_scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); - COFF_SectionHeader *section = (0 < proc32->sec && proc32->sec <= coff_sections.count) ? &coff_sections.v[proc32->sec-1] : 0; - if(section != 0) - { - U64 voff_first = section->voff + proc32->off; - U64 voff_last = voff_first + proc32->len; - RDIM_Rng1U64 voff_range = {voff_first, voff_last}; - rdim_scope_push_voff_range(arena, sym_scopes, procedure_root_scope, voff_range); - procedure_base_voff = voff_first; - } - } - - // rjf: root scope voff minimum range -> link name - String8 link_name = {0}; - if(procedure_root_scope && procedure_root_scope->voff_ranges.min != 0) - { - U64 voff = procedure_root_scope->voff_ranges.min; - U64 hash = p2r_hash_from_voff(voff); - U64 bucket_idx = hash%link_name_map->buckets_count; - P2R_LinkNameNode *node = 0; - for(P2R_LinkNameNode *n = link_name_map->buckets[bucket_idx]; n != 0; n = n->next) - { - if(n->voff == voff) - { - link_name = n->name; - break; - } - } - } - - // rjf: build procedure symbol - if(params->subset_flags & (RDIM_SubsetFlag_Procedures|RDIM_SubsetFlag_ProcedureNameMap)) - { - RDIM_Symbol *procedure_symbol = rdim_symbol_chunk_list_push(arena, sym_procedures, sym_procedures_chunk_cap); - procedure_symbol->is_extern = (kind == CV_SymKind_GPROC32); - procedure_symbol->name = name; - procedure_symbol->link_name = link_name; - procedure_symbol->type = type; - procedure_symbol->container_symbol = container_symbol; - procedure_symbol->container_type = container_type; - procedure_symbol->root_scope = procedure_root_scope; - if(procedure_root_scope != 0) - { - procedure_root_scope->symbol = procedure_symbol; - } - } - - // rjf: push scope to scope stack - if(procedure_root_scope) - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = procedure_root_scope; - SLLStackPush(top_scope_node, node); - } - - // rjf: increment procedure counter - procedure_num += 1; - }break; - - //- rjf: REGREL32 - case CV_SymKind_REGREL32: - if(params->subset_flags & RDIM_SubsetFlag_Locals) - { - // TODO(rjf): apparently some of the information here may end up being - // redundant with "better" information from CV_SymKind_LOCAL record. - // we don't currently handle this, but if those cases arise then it - // will obviously be better to prefer the better information from both - // records. - - // rjf: no containing scope? -> malformed data; locals cannot be produced - // outside of a containing scope - if(top_scope_node == 0) - { - break; - } - - // rjf: unpack sym - CV_SymRegrel32 *regrel32 = (CV_SymRegrel32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(regrel32+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(regrel32->itype); - CV_Reg cv_reg = regrel32->reg; - U32 var_off = regrel32->reg_off; - - // rjf: determine if this is a parameter - RDI_LocalKind local_kind = RDI_LocalKind_Variable; - { - B32 is_stack_reg = 0; - switch(arch) - { - default:{}break; - case RDI_Arch_X86:{is_stack_reg = (cv_reg == CV_Regx86_ESP || cv_reg == CV_Regx86_EBP);}break; - case RDI_Arch_X64:{is_stack_reg = (cv_reg == CV_Regx64_RSP || cv_reg == CV_Regx64_RBP);}break; - } - if(is_stack_reg) - { - U32 frame_size = 0xFFFFFFFF; - if(procedure_num != 0 && procedure_frameprocs[procedure_num-1] != 0 && procedure_num <= procedure_frameprocs_count) - { - CV_SymFrameproc *frameproc = procedure_frameprocs[procedure_num-1]; - frame_size = frameproc->frame_size; - } - if(var_off > frame_size) - { - local_kind = RDI_LocalKind_Parameter; - } - } - } - - // TODO(rjf): is this correct? - // rjf: redirect type, if 0, and if outside frame, to the return type of the - // containing procedure - if(local_kind == RDI_LocalKind_Parameter && regrel32->itype == 0 && - top_scope_node->scope->symbol != 0 && - top_scope_node->scope->symbol->type != 0) - { - type = top_scope_node->scope->symbol->type->direct_type; - } - - // rjf: build local - RDIM_Scope *scope = top_scope_node->scope; - RDIM_Local *local = rdim_scope_push_local(arena, sym_scopes, scope); - local->kind = local_kind; - local->name = name; - local->type = type; - - // rjf: add location info to local - if(type != 0) - { - // rjf: determine if we need an extra indirection to the value - B32 extra_indirection_to_value = 0; - switch(arch) - { - case RDI_Arch_X86: - { - extra_indirection_to_value = (local_kind == RDI_LocalKind_Parameter && (type->byte_size > 4 || !IsPow2OrZero(type->byte_size))); - }break; - case RDI_Arch_X64: - { - extra_indirection_to_value = (local_kind == RDI_LocalKind_Parameter && (type->byte_size > 8 || !IsPow2OrZero(type->byte_size))); - }break; - } - - // rjf: get raddbg register code - RDI_RegCode reg_code = p2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); - // TODO(rjf): real byte_size & byte_pos from cv_reg goes here - U32 byte_size = 8; - U32 byte_pos = 0; - - // rjf: build location - RDIM_LocationInfo loc_info = p2r_location_info_from_addr_reg_off(arena, arch, reg_code, byte_size, byte_pos, (S64)(S32)var_off, extra_indirection_to_value); - RDIM_Location *loc2 = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &loc_info); - RDIM_Rng1U64 voff_range = {0, max_U64}; - rdim_local_push_location_case(arena, sym_scopes, local, loc2, voff_range); - } - }break; - - //- rjf: LTHREAD32/GTHREAD32 - case CV_SymKind_LTHREAD32: - case CV_SymKind_GTHREAD32: - if(params->subset_flags & (RDIM_SubsetFlag_ThreadVariables|RDIM_SubsetFlag_ThreadVariableNameMap)) - { - // rjf: unpack sym - CV_SymThread32 *thread32 = (CV_SymThread32 *)sym_header_struct_base; - String8 name = str8_cstring_capped(thread32+1, sym_data_opl); - U32 tls_off = thread32->tls_off; - RDIM_Type *type = p2r_type_ptr_from_itype(thread32->itype); - - // rjf: unpack thread variable's container type - RDIM_Type *container_type = 0; - U64 container_name_opl = p2r_end_of_cplusplus_container_name(name); - if(container_name_opl > 2) - { - String8 container_name = str8(name.str, container_name_opl - 2); - CV_TypeId cv_type_id = pdb_tpi_first_itype_from_name(tpi_hash, tpi_leaf, container_name, 0); - container_type = p2r_type_ptr_from_itype(cv_type_id); - } - - // rjf: unpack thread variable's container symbol - RDIM_Symbol *container_symbol = 0; - if(container_type == 0 && top_scope_node != 0) - { - container_symbol = top_scope_node->scope->symbol; - } - - // rjf: build symbol - RDIM_Symbol *tvar = rdim_symbol_chunk_list_push(arena, sym_thread_variables, sym_thread_variables_chunk_cap); - tvar->name = name; - tvar->type = type; - tvar->is_extern = (kind == CV_SymKind_GTHREAD32); - tvar->offset = tls_off; - tvar->container_type = container_type; - tvar->container_symbol = container_symbol; - }break; - - //- rjf: LOCAL - case CV_SymKind_LOCAL: - if(params->subset_flags & (RDIM_SubsetFlag_Locals)) - { - // rjf: no containing scope? -> malformed data; locals cannot be produced - // outside of a containing scope - if(top_scope_node == 0) - { - break; - } - - // rjf: unpack sym - CV_SymLocal *slocal = (CV_SymLocal *)sym_header_struct_base; - String8 name = str8_cstring_capped(slocal+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(slocal->itype); - - // rjf: determine if this symbol encodes the beginning of a global modification - B32 is_global_modification = 0; - if((slocal->flags & CV_LocalFlag_Global) || - (slocal->flags & CV_LocalFlag_Static)) - { - is_global_modification = 1; - } - - // rjf: is global modification -> emit global modification symbol - if(is_global_modification) - { - // TODO(rjf): add global modification symbols - defrange_target = 0; - defrange_target_is_param = 0; - } - - // rjf: is not a global modification -> emit a local variable - if(!is_global_modification) - { - // rjf: determine local kind - RDI_LocalKind local_kind = RDI_LocalKind_Variable; - if(slocal->flags & CV_LocalFlag_Param) - { - local_kind = RDI_LocalKind_Parameter; - } - - // rjf: build local - RDIM_Scope *scope = top_scope_node->scope; - RDIM_Local *local = rdim_scope_push_local(arena, sym_scopes, scope); - local->kind = local_kind; - local->name = name; - local->type = type; - - // rjf: save defrange target, for subsequent defrange symbols - defrange_target = local; - defrange_target_is_param = (local_kind == RDI_LocalKind_Parameter); - } - }break; - - //- rjf: DEFRANGE_REGISTER - case CV_SymKind_DEFRANGE_REGISTER: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeRegister *defrange_register = (CV_SymDefrangeRegister*)sym_header_struct_base; - CV_Reg cv_reg = defrange_register->reg; - CV_LvarAddrRange *range = &defrange_register->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= coff_sections.count) ? &coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register+1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - RDI_RegCode reg_code = p2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); - - // rjf: build location - RDIM_LocationInfo loc_info = {RDI_LocationKind_ValReg, reg_code}; - RDIM_Location *loc = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &loc_info); - - // rjf: emit locations over ranges - p2r_local_push_location_cases_over_lvar_addr_range(arena, sym_scopes, defrange_target, loc, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_FRAMEPOINTER_REL - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: find current procedure's frameproc - CV_SymFrameproc *frameproc = 0; - if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) - { - frameproc = procedure_frameprocs[procedure_num-1]; - } - - // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange - // without having an actually active procedure - break - if(frameproc == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeFramepointerRel *defrange_fprel = (CV_SymDefrangeFramepointerRel*)sym_header_struct_base; - CV_LvarAddrRange *range = &defrange_fprel->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= coff_sections.count) ? &coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_fprel + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - - // rjf: select frame pointer register - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target_is_param); - RDI_RegCode fp_register_code = p2r_reg_code_from_arch_encoded_fp_reg(arch, encoded_fp_reg); - - // rjf: build location - B32 extra_indirection = 0; - U32 byte_size = rdi_addr_size_from_arch(arch); - U32 byte_pos = 0; - S64 var_off = (S64)defrange_fprel->off; - RDIM_LocationInfo location_info = p2r_location_info_from_addr_reg_off(arena, arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); - RDIM_Location *location = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &location_info); - - // rjf: emit locations over ranges - p2r_local_push_location_cases_over_lvar_addr_range(arena, sym_scopes, defrange_target, location, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_SUBFIELD_REGISTER - case CV_SymKind_DEFRANGE_SUBFIELD_REGISTER: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeSubfieldRegister *defrange_subfield_register = (CV_SymDefrangeSubfieldRegister*)sym_header_struct_base; - CV_Reg cv_reg = defrange_subfield_register->reg; - CV_LvarAddrRange *range = &defrange_subfield_register->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= coff_sections.count) ? &coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_subfield_register + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - RDI_RegCode reg_code = p2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); - - // rjf: skip "subfield" location info - currently not supported - if(defrange_subfield_register->field_offset != 0) - { - break; - } - - // rjf: build location - RDIM_LocationInfo loc_info = {RDI_LocationKind_ValReg, reg_code}; - RDIM_Location *loc = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &loc_info); - - // rjf: emit locations over ranges - p2r_local_push_location_cases_over_lvar_addr_range(arena, sym_scopes, defrange_target, loc, range, range_section, gaps, gap_count); - }break; - - //- rjf: DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE - case CV_SymKind_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: find current procedure's frameproc - CV_SymFrameproc *frameproc = 0; - if(procedure_num != 0 && procedure_num <= procedure_frameprocs_count && procedure_frameprocs[procedure_num-1] != 0) - { - frameproc = procedure_frameprocs[procedure_num-1]; - } - - // rjf: no current valid frameproc? -> somehow we got a to a framepointer-relative defrange - // without having an actually active procedure - break - if(frameproc == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeFramepointerRelFullScope *defrange_fprel_full_scope = (CV_SymDefrangeFramepointerRelFullScope*)sym_header_struct_base; - CV_EncodedFramePtrReg encoded_fp_reg = cv_pick_fp_encoding(frameproc, defrange_target_is_param); - RDI_RegCode fp_register_code = p2r_reg_code_from_arch_encoded_fp_reg(arch, encoded_fp_reg); - - // rjf: build location - B32 extra_indirection = 0; - U32 byte_size = rdi_addr_size_from_arch(arch); - U32 byte_pos = 0; - S64 var_off = (S64)defrange_fprel_full_scope->off; - RDIM_LocationInfo loc_info = p2r_location_info_from_addr_reg_off(arena, arch, fp_register_code, byte_size, byte_pos, var_off, extra_indirection); - RDIM_Location *loc = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &loc_info); - - // rjf: emit location over ranges - RDIM_Rng1U64 voff_range = {0, max_U64}; - rdim_local_push_location_case(arena, sym_scopes, defrange_target, loc, voff_range); - }break; - - //- rjf: DEFRANGE_REGISTER_REL - case CV_SymKind_DEFRANGE_REGISTER_REL: - { - // rjf: no defrange target? -> somehow we got to a defrange symbol without first seeing - // a local - break immediately - if(defrange_target == 0) - { - break; - } - - // rjf: unpack sym - CV_SymDefrangeRegisterRel *defrange_register_rel = (CV_SymDefrangeRegisterRel*)sym_header_struct_base; - CV_Reg cv_reg = defrange_register_rel->reg; - RDI_RegCode reg_code = p2r_rdi_reg_code_from_cv_reg_code(arch, cv_reg); - CV_LvarAddrRange *range = &defrange_register_rel->range; - COFF_SectionHeader *range_section = (0 < range->sec && range->sec <= coff_sections.count) ? &coff_sections.v[range->sec-1] : 0; - CV_LvarAddrGap *gaps = (CV_LvarAddrGap*)(defrange_register_rel + 1); - U64 gap_count = ((U8*)sym_data_opl - (U8*)gaps) / sizeof(*gaps); - - // rjf: build location - // TODO(rjf): offset & size from cv_reg code - U32 byte_size = rdi_addr_size_from_arch(arch); - U32 byte_pos = 0; - B32 extra_indirection_to_value = 0; - S64 var_off = defrange_register_rel->reg_off; - RDIM_LocationInfo loc_info = p2r_location_info_from_addr_reg_off(arena, arch, reg_code, byte_size, byte_pos, var_off, extra_indirection_to_value); - RDIM_Location *loc = rdim_location_chunk_list_push_new(arena, sym_locations, sym_locations_chunk_cap, &loc_info); - - // rjf: emit locations over ranges - p2r_local_push_location_cases_over_lvar_addr_range(arena, sym_scopes, defrange_target, loc, range, range_section, gaps, gap_count); - }break; - - //- rjf: FILESTATIC - case CV_SymKind_FILESTATIC: - { - CV_SymFileStatic *file_static = (CV_SymFileStatic*)sym_header_struct_base; - String8 name = str8_cstring_capped(file_static+1, sym_data_opl); - RDIM_Type *type = p2r_type_ptr_from_itype(file_static->itype); - // TODO(rjf): emit a global modifier symbol - defrange_target = 0; - defrange_target_is_param = 0; - }break; - - //- rjf: INLINESITE - case CV_SymKind_INLINESITE: - if(params->subset_flags & (RDIM_SubsetFlag_Scopes)) - { - // rjf: unpack sym - CV_SymInlineSite *sym = (CV_SymInlineSite *)sym_header_struct_base; - String8 binary_annots = str8((U8 *)(sym+1), rec_range->hdr.size - sizeof(rec_range->hdr.kind) - sizeof(*sym)); - - // rjf: extract external info about inline site - String8 name = str8_zero(); - RDIM_Type *type = 0; - RDIM_Type *owner = 0; - if(ipi_leaf != 0 && ipi_leaf->itype_first <= sym->inlinee && sym->inlinee < ipi_leaf->itype_opl) - { - CV_RecRange rec_range = ipi_leaf->leaf_ranges.ranges[sym->inlinee - ipi_leaf->itype_first]; - String8 rec_data = str8_substr(ipi_leaf->data, rng_1u64(rec_range.off, rec_range.off + rec_range.hdr.size)); - void *raw_leaf = rec_data.str + sizeof(U16); - - // rjf: extract method inline info - if(rec_range.hdr.kind == CV_LeafKind_MFUNC_ID && - rec_range.hdr.size >= sizeof(CV_LeafMFuncId)) - { - CV_LeafMFuncId *mfunc_id = (CV_LeafMFuncId*)raw_leaf; - name = str8_cstring_capped(mfunc_id + 1, rec_data.str + rec_data.size); - type = p2r_type_ptr_from_itype(mfunc_id->itype); - owner = mfunc_id->owner_itype != 0 ? p2r_type_ptr_from_itype(mfunc_id->owner_itype) : 0; - } - - // rjf: extract non-method function inline info - else if(rec_range.hdr.kind == CV_LeafKind_FUNC_ID && - rec_range.hdr.size >= sizeof(CV_LeafFuncId)) - { - CV_LeafFuncId *func_id = (CV_LeafFuncId*)raw_leaf; - name = str8_cstring_capped(func_id + 1, rec_data.str + rec_data.size); - type = p2r_type_ptr_from_itype(func_id->itype); - owner = func_id->scope_string_id != 0 ? p2r_type_ptr_from_itype(func_id->scope_string_id) : 0; - } - } - - // rjf: build inline site - RDIM_InlineSite *inline_site = rdim_inline_site_chunk_list_push(arena, sym_inline_sites, sym_inline_sites_chunk_cap); - inline_site->name = name; - inline_site->type = type; - inline_site->owner = owner; - inline_site->line_table = inline_site_line_table; - - // rjf: increment to next inline site line table in this unit - if(inline_site_line_table != 0 && inline_site_line_table->chunk != 0) - { - RDIM_LineTableChunkNode *chunk = inline_site_line_table->chunk; - U64 current_idx = (U64)(inline_site_line_table - chunk->v); - if(current_idx+1 < chunk->count) - { - inline_site_line_table += 1; - } - else - { - chunk = chunk->next; - inline_site_line_table = 0; - if(chunk != 0) - { - inline_site_line_table = chunk->v; - } - } - } - - // rjf: build scope - RDIM_Scope *scope = rdim_scope_chunk_list_push(arena, sym_scopes, sym_scopes_chunk_cap); - scope->inline_site = inline_site; - if(top_scope_node == 0) - { - // TODO(rjf): log - } - if(top_scope_node != 0) - { - RDIM_Scope *top_scope = top_scope_node->scope; - SLLQueuePush_N(top_scope->first_child, top_scope->last_child, scope, next_sibling); - scope->parent_scope = top_scope; - scope->symbol = top_scope->symbol; - } - - // rjf: push this scope to scope stack - { - P2R_ScopeNode *node = free_scope_node; - if(node != 0) { SLLStackPop(free_scope_node); } - else { node = push_array_no_zero(scratch.arena, P2R_ScopeNode, 1); } - node->scope = scope; - SLLStackPush(top_scope_node, node); - } - - // rjf: parse offset ranges of this inline site - attach to scope - { - CV_C13InlineSiteDecoder decoder = cv_c13_inline_site_decoder_init(0, 0, procedure_base_voff); - for(;;) - { - CV_C13InlineSiteDecoderStep step = cv_c13_inline_site_decoder_step(&decoder, binary_annots); - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_EmitRange) - { - // rjf: build new range & add to scope - RDIM_Rng1U64 voff_range = { step.range.min, step.range.max }; - rdim_scope_push_voff_range(arena, sym_scopes, scope, voff_range); - } - - if(step.flags & CV_C13InlineSiteDecoderStepFlag_ExtendLastRange) - { - if(scope->voff_ranges.last != 0) - { - scope->voff_ranges.last->v.max = step.range.max; - } - } - - if(step.flags == 0) - { - break; - } - } - } - }break; - - //- rjf: INLINESITE_END - case CV_SymKind_INLINESITE_END: - { - P2R_ScopeNode *n = top_scope_node; - if(n != 0) - { - SLLStackPop(top_scope_node); - SLLStackPush(free_scope_node, n); - } - defrange_target = 0; - defrange_target_is_param = 0; - }break; - - //- rjf: CONSTANT - case CV_SymKind_CONSTANT: - if(params->subset_flags & RDIM_SubsetFlag_Constants) - { - // rjf: unpack - CV_SymConstant *sym = (CV_SymConstant *)sym_header_struct_base; - RDIM_Type *type = p2r_type_ptr_from_itype(sym->itype); - U8 *val_ptr = (U8 *)(sym+1); - CV_NumericParsed val = cv_numeric_from_data_range(val_ptr, sym_data_opl); - U64 val64 = cv_u64_from_numeric(&val); - U8 *name_ptr = val_ptr + val.encoded_size; - String8 name = str8_cstring_capped(name_ptr, sym_data_opl); - String8 val_data = str8_struct(&val64); - U64 container_name_opl = 0; - if(type != 0) - { - container_name_opl = p2r_end_of_cplusplus_container_name(type->name); - } - String8 name_qualified = name; - if(container_name_opl != 0) - { - name_qualified = push_str8f(arena, "%S%S", str8_prefix(type->name, container_name_opl), name); - } - - // rjf: build constant symbol - if(name_qualified.size != 0) - { - RDIM_Symbol *cnst = rdim_symbol_chunk_list_push(arena, sym_constants, sym_constants_chunk_cap); - cnst->name = name_qualified; - cnst->type = type; - rdim_symbol_push_value_data(arena, sym_constants, cnst, val_data); - } - }break; - } - } - } - - scratch_end(scratch); - } - } -#undef p2r_type_ptr_from_itype - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: join all lane symbols - // - RDIM_LocationChunkList *all_locations = 0; - RDIM_SymbolChunkList *all_procedures = 0; - RDIM_SymbolChunkList *all_global_variables = 0; - RDIM_SymbolChunkList *all_thread_variables = 0; - RDIM_SymbolChunkList *all_constants = 0; - RDIM_ScopeChunkList *all_scopes = 0; - RDIM_InlineSiteChunkList *all_inline_sites = 0; - RDIM_TypeChunkList *all_types = 0; + U64 cv2r_comp_unit_contributions_count = comp_unit_contributions->count; + CV2R_CompUnitContribution *cv2r_comp_unit_contributions = 0; { if(lane_idx() == 0) { - all_locations = push_array(scratch.arena, RDIM_LocationChunkList, 1); - all_procedures = push_array(scratch.arena, RDIM_SymbolChunkList, 1); - all_global_variables = push_array(scratch.arena, RDIM_SymbolChunkList, 1); - all_thread_variables = push_array(scratch.arena, RDIM_SymbolChunkList, 1); - all_constants = push_array(scratch.arena, RDIM_SymbolChunkList, 1); - all_scopes = push_array(scratch.arena, RDIM_ScopeChunkList, 1); - all_inline_sites = push_array(scratch.arena, RDIM_InlineSiteChunkList, 1); - all_types = push_array(scratch.arena, RDIM_TypeChunkList, 1); + cv2r_comp_unit_contributions = push_array(scratch.arena, CV2R_CompUnitContribution, cv2r_comp_unit_contributions_count); } - lane_sync_u64(&all_locations, 0); - lane_sync_u64(&all_procedures, 0); - lane_sync_u64(&all_global_variables, 0); - lane_sync_u64(&all_thread_variables, 0); - lane_sync_u64(&all_constants, 0); - lane_sync_u64(&all_scopes, 0); - lane_sync_u64(&all_inline_sites, 0); - lane_sync_u64(&all_types, 0); - if(lane_idx() == lane_from_task_idx(0)) ProfScope("join locations") + lane_sync_u64(&cv2r_comp_unit_contributions, 0); + Rng1U64 range = lane_range(cv2r_comp_unit_contributions_count); + for EachInRange(idx, range) { - for EachIndex(idx, all_syms_count) - { - rdim_location_chunk_list_concat_in_place(all_locations, &syms_locations[idx]); - } - } - if(lane_idx() == lane_from_task_idx(1)) ProfScope("join procedures") - { - for EachIndex(idx, all_syms_count) - { - rdim_symbol_chunk_list_concat_in_place(all_procedures, &syms_procedures[idx]); - } - } - if(lane_idx() == lane_from_task_idx(2)) ProfScope("join global variables") - { - for EachIndex(idx, all_syms_count) - { - rdim_symbol_chunk_list_concat_in_place(all_global_variables, &syms_global_variables[idx]); - } - } - if(lane_idx() == lane_from_task_idx(3)) ProfScope("join thread variables") - { - for EachIndex(idx, all_syms_count) - { - rdim_symbol_chunk_list_concat_in_place(all_thread_variables, &syms_thread_variables[idx]); - } - } - if(lane_idx() == lane_from_task_idx(4)) ProfScope("join constants") - { - for EachIndex(idx, all_syms_count) - { - rdim_symbol_chunk_list_concat_in_place(all_constants, &syms_constants[idx]); - } - } - if(lane_idx() == lane_from_task_idx(5)) ProfScope("join scopes") - { - for EachIndex(idx, all_syms_count) - { - rdim_scope_chunk_list_concat_in_place(all_scopes, &syms_scopes[idx]); - } - } - if(lane_idx() == lane_from_task_idx(6)) ProfScope("join inline sites") - { - for EachIndex(idx, all_syms_count) - { - rdim_inline_site_chunk_list_concat_in_place(all_inline_sites, &syms_inline_sites[idx]); - } - } - if(lane_idx() == lane_from_task_idx(7)) ProfScope("join typedefs") - { - for EachIndex(idx, all_syms_count) - { - rdim_type_chunk_list_concat_in_place(&all_types__pre_typedefs, &syms_typedefs[idx]); - } - *all_types = all_types__pre_typedefs; + cv2r_comp_unit_contributions[idx].mod = comp_unit_contributions->contributions[idx].mod; + cv2r_comp_unit_contributions[idx].voff_first = comp_unit_contributions->contributions[idx].voff_first; + cv2r_comp_unit_contributions[idx].voff_opl = comp_unit_contributions->contributions[idx].voff_opl; } + lane_sync(); } - lane_sync(); ////////////////////////////////////////////////////////////// - //- rjf: bundle all outputs + //- rjf: produce cv2r sections from coff // - RDIM_BakeParams result = {0}; + U64 cv2r_sections_count = coff_sections.count; + CV2R_Section *cv2r_sections = 0; { - //- rjf: produce top-level-info - RDIM_TopLevelInfo top_level_info = {0}; + if(lane_idx() == 0) { - top_level_info.arch = arch; - top_level_info.exe_name = str8_skip_last_slash(params->input_exe_name); - top_level_info.exe_hash = exe_hash; - top_level_info.voff_max = exe_voff_max; - if(!params->deterministic) - { - MemoryCopy(&top_level_info.guid.u8[0], &pdb_info->auth_guid.v[0], Min(sizeof top_level_info.guid.u8, sizeof pdb_info->auth_guid.v)); - top_level_info.producer_name = str8_lit(BUILD_TITLE_STRING_LITERAL); - } + cv2r_sections = push_array(scratch.arena, CV2R_Section, cv2r_sections_count); } - - //- rjf: build binary sections list - RDIM_BinarySectionList binary_sections = {0}; - if(params->subset_flags & RDIM_SubsetFlag_BinarySections) ProfScope("build binary section list") + lane_sync_u64(&cv2r_sections, 0); + Rng1U64 range = lane_range(cv2r_sections_count); + for EachInRange(idx, range) { - COFF_SectionHeader *coff_ptr = coff_sections.v; - COFF_SectionHeader *coff_opl = coff_ptr + coff_sections.count; - for(;coff_ptr < coff_opl; coff_ptr += 1) - { - char *name_first = (char *)coff_ptr->name; - char *name_opl = name_first + sizeof(coff_ptr->name); - RDIM_BinarySection *sec = rdim_binary_section_list_push(arena, &binary_sections); - sec->name = str8_cstring_capped(name_first, name_opl); - sec->flags = p2r_rdi_binary_section_flags_from_coff_section_flags(coff_ptr->flags); - sec->voff_first = coff_ptr->voff; - sec->voff_opl = coff_ptr->voff+coff_ptr->vsize; - sec->foff_first = coff_ptr->foff; - sec->foff_opl = coff_ptr->foff+coff_ptr->fsize; - } + COFF_SectionHeader *src = &coff_sections.v[idx]; + CV2R_Section *dst = &cv2r_sections[idx]; + char *name_first = (char *)src->name; + char *name_opl = name_first + sizeof(src->name); + dst->name = str8_cstring_capped(name_first, name_opl); + dst->flags = c2r_rdi_binary_section_flags_from_coff_section_flags(src->flags); + dst->voff = src->voff; + dst->vsize = src->vsize; + dst->foff = src->foff; + dst->fsize = src->fsize; } - - //- rjf: fill - result.subset_flags = params->subset_flags; - result.top_level_info = top_level_info; - result.binary_sections = binary_sections; - result.units = all_units; - result.types = *all_types; - result.udts = all_udts; - result.src_files = all_src_files; - result.line_tables = all_line_tables; - result.locations = *all_locations; - result.global_variables = *all_global_variables; - result.thread_variables = *all_thread_variables; - result.constants = *all_constants; - result.procedures = *all_procedures; - result.scopes = *all_scopes; - result.inline_sites = *all_inline_sites; + lane_sync(); } + ////////////////////////////////////////////////////////////// + //- rjf: produce cv2r string table + // + CV2R_StringTable cv2r_strtbl = {0}; + { + cv2r_strtbl.data = strtbl->data; + cv2r_strtbl.bucket_count = strtbl->bucket_count; + cv2r_strtbl.strblock_min = strtbl->strblock_min; + cv2r_strtbl.strblock_max = strtbl->strblock_max; + cv2r_strtbl.buckets_min = strtbl->buckets_min; + cv2r_strtbl.buckets_max = strtbl->buckets_max; + } + + ////////////////////////////////////////////////////////////// + //- rjf: bundle codeview conversion parameters + // + CV2R_ConvertParams cv2r_params = {0}; + { + cv2r_params.exe_name = params->input_exe_name; + cv2r_params.exe_data = params->input_exe_data; + cv2r_params.guid = pdb_info->auth_guid; + cv2r_params.comp_units_count = cv2r_comp_units_count; + cv2r_params.comp_units = cv2r_comp_units; + cv2r_params.comp_unit_contributions_count = cv2r_comp_unit_contributions_count; + cv2r_params.comp_unit_contributions = cv2r_comp_unit_contributions; + cv2r_params.sections_count = cv2r_sections_count; + cv2r_params.sections = cv2r_sections; + cv2r_params.strtbl = &cv2r_strtbl; + cv2r_params.tpi_leaf = tpi_leaf; + cv2r_params.ipi_leaf = ipi_leaf; + cv2r_params.tpi_hash = tpi_hash; + cv2r_params.ipi_hash = ipi_hash; + cv2r_params.subset_flags = params->subset_flags; + cv2r_params.deterministic = params->deterministic; + } + + ////////////////////////////////////////////////////////////// + //- rjf: convert from top-level & all parsed codeview datas + // + RDIM_BakeParams result = cv2r_convert(arena, &cv2r_params); + + lane_sync(); scratch_end(scratch); return result; } diff --git a/src/rdi_from_pdb/rdi_from_pdb.h b/src/rdi_from_pdb/rdi_from_pdb.h index 2f39dd91..47df66f4 100644 --- a/src/rdi_from_pdb/rdi_from_pdb.h +++ b/src/rdi_from_pdb/rdi_from_pdb.h @@ -5,7 +5,7 @@ #define RDI_FROM_PDB_H //////////////////////////////// -//~ rjf: Conversion Stage Inputs/Outputs +//~ rjf: Conversion Stage Inputs typedef struct P2R_ConvertParams P2R_ConvertParams; struct P2R_ConvertParams @@ -19,7 +19,7 @@ struct P2R_ConvertParams }; //////////////////////////////// -//~ rjf: Shared Conversion State +//~ rjf: Conversion Helper Types //- rjf: link name map (voff -> string) @@ -29,6 +29,7 @@ struct P2R_LinkNameNode P2R_LinkNameNode *next; U64 voff; String8 name; + U64 referencing_symbol_count; }; typedef struct P2R_LinkNameMap P2R_LinkNameMap; @@ -40,6 +41,19 @@ struct P2R_LinkNameMap U64 link_name_count; }; +//- rjf: deduplicated namespace map type + +typedef struct P2R_NamespaceNode P2R_NamespaceNode; +struct P2R_NamespaceNode +{ + P2R_NamespaceNode *next; + String8 string; + B32 corresponds_to_scope; + RDIM_Scope *scope; + RDIM_Type *type; + RDIM_Namespace *ns; +}; + //- rjf: normalized file path -> source file map typedef struct P2R_SrcFileStub P2R_SrcFileStub; @@ -88,35 +102,13 @@ struct P2R_TypeIdChain }; //////////////////////////////// -//~ rjf: Basic Helpers +//~ rjf: PDB -> (Codeview -> RDI) TPI Hash Table Building -internal U64 p2r_end_of_cplusplus_container_name(String8 str); -internal U64 p2r_hash_from_voff(U64 voff); +internal CV2R_TPIHash *p2r_cv2r_tpi_hash_from_data(Arena *arena, PDB_Strtbl *strtbl, PDB_TpiParsed *tpi, String8 data); //////////////////////////////// -//~ rjf: COFF => RDI Canonical Conversions +//~ rjf: Top-Level Conversion Entry Point (Revised) -internal RDI_BinarySectionFlags p2r_rdi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags); - -//////////////////////////////// -//~ rjf: CodeView => RDI Canonical Conversions - -internal RDI_Arch p2r_rdi_arch_from_cv_arch(CV_Arch arch); -internal RDI_RegCode p2r_rdi_reg_code_from_cv_reg_code(RDI_Arch arch, CV_Reg reg_code); -internal RDI_Language p2r_rdi_language_from_cv_language(CV_Language language); -internal RDI_TypeKind p2r_rdi_type_kind_from_cv_basic_type(CV_BasicType basic_type); -internal RDI_ChecksumKind p2r_rdi_from_cv_c13_checksum_kind(CV_C13ChecksumKind k); - -//////////////////////////////// -//~ rjf: Location Info Building Helpers - -internal RDI_RegCode p2r_reg_code_from_arch_encoded_fp_reg(RDI_Arch arch, CV_EncodedFramePtrReg encoded_reg); -internal RDIM_LocationInfo p2r_location_info_from_addr_reg_off(Arena *arena, RDI_Arch arch, RDI_RegCode reg_code, U32 reg_byte_size, U32 reg_byte_pos, S64 offset, B32 extra_indirection); -internal void p2r_local_push_location_cases_over_lvar_addr_range(Arena *arena, RDIM_ScopeChunkList *scopes, RDIM_Local *local, RDIM_Location *loc, CV_LvarAddrRange *range, COFF_SectionHeader *section, CV_LvarAddrGap *gaps, U64 gap_count); - -//////////////////////////////// -//~ rjf: Top-Level Conversion Entry Point - -internal RDIM_BakeParams p2r_convert(Arena *arena, P2R_ConvertParams *params); +internal RDIM_BakeParams p2r_convert2(Arena *arena, P2R_ConvertParams *params); #endif // RDI_FROM_PDB_H diff --git a/src/rdi_from_pdb/tests/rdi_from_pdb_tests.c b/src/rdi_from_pdb/tests/rdi_from_pdb_tests.c new file mode 100644 index 00000000..a06fb53e --- /dev/null +++ b/src/rdi_from_pdb/tests/rdi_from_pdb_tests.c @@ -0,0 +1,187 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +Test(p2r_regressions) +{ + String8 radbin_path = test_build_exe_path(arena, s("radbin")); + String8 pdb_paths[] = + { + test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_main.pdb")), + test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_module.pdb")), + }; + + // rjf: generate RDIs + { + ProcessList processes = {0}; + for EachElement(pdb_idx, pdb_paths) + { + String8 pdb_path = pdb_paths[pdb_idx]; + String8 rdi_path = str8f(arena, "%S/%I64u.rdi", ctx->artifacts_path, pdb_idx); + Process process = launch_cmd_line(str8f(arena, "%S --rdi --deterministic %S --out:%S", radbin_path, pdb_path, rdi_path)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: generate dumps + { + ProcessList processes = {0}; + for EachElement(pdb_idx, pdb_paths) + { + String8 rdi_path = str8f(arena, "%S/%I64u.rdi", ctx->artifacts_path, pdb_idx); + String8 dump_path = str8f(arena, "%S/current_%I64u", ctx->artifacts_path, pdb_idx); + Process process = launch_cmd_line(str8f(arena, "%S --dump --deterministic %S --out:%S", radbin_path, rdi_path, dump_path)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: check against exemplars + { + for EachElement(pdb_idx, pdb_paths) + { + Temp scratch = scratch_begin(&arena, 1); + String8 dump_path_current = str8f(scratch.arena, "%S/current_%I64u", ctx->artifacts_path, pdb_idx); + String8 dump_data_current = data_from_file_path(scratch.arena, dump_path_current); + String8 dump_path_exemplar = test_exemplar_path(scratch.arena, ctx, str8f(scratch.arena, "exemplar_%I64u", pdb_idx)); + String8 dump_data_exemplar = data_from_file_path(scratch.arena, dump_path_exemplar); + B32 dump_matches = str8_match(dump_data_current, dump_data_exemplar, 0); + if(!dump_matches) + { + String8 diff_cmd = str8f(scratch.arena, "diff %S %S", + path_normalized_from_string(scratch.arena, dump_path_current), + path_normalized_from_string(scratch.arena, dump_path_exemplar)); + test_outf("Current log does not match exemplar; run `%S`\n", diff_cmd); + } + TestCheck(dump_matches); + scratch_end(scratch); + } + } +} + +Test(p2r_determinism) +{ + U64 num_repeats_per_pdb = 16; + String8 radbin_path = test_build_exe_path(arena, s("radbin")); + String8 pdb_paths[] = + { + test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_main.pdb")), + test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_module.pdb")), + }; + for EachElement(pdb_idx, pdb_paths) + { + // rjf: unpack paths, make output directory + String8 pdb_path = pdb_paths[pdb_idx]; + + // rjf: generate all RDIs + String8List rdi_paths = {0}; + String8List dump_paths = {0}; + { + ProcessList processes = {0}; + for EachIndex(repeat_idx, num_repeats_per_pdb) + { + String8 rdi_name = str8f(arena, "repeat_%I64u.rdi", repeat_idx); + String8 rdi_path = str8f(arena, "%S/%S", ctx->artifacts_path, rdi_name); + str8_list_push(arena, &rdi_paths, rdi_path); + String8 cmdl = str8f(arena, "%S --rdi --deterministic %S --out:%S", radbin_path, pdb_path, rdi_path); + Process process = launch_cmd_line(cmdl); + TestCheck(!process_match(process_zero(), process)); + process_list_push(arena, &processes, process); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: generate all dumps + { + ProcessList processes = {0}; + for EachNode(n, String8Node, rdi_paths.first) + { + String8 rdi_path = n->string; + String8 dump_path = str8f(arena, "%S.dump", rdi_path); + str8_list_push(arena, &dump_paths, dump_path); + Process process_handle = launch_cmd_linef("%S --dump --deterministic %S --out:%S", radbin_path, rdi_path, dump_path); + TestCheck(!process_match(process_zero(), process_handle)); + process_list_push(arena, &processes, process_handle); + } + for EachNode(n, ProcessNode, processes.first) + { + process_join(n->v, max_U64, 0); + } + } + + // rjf: gather all hashes/paths + U64 rdi_hashes_count = rdi_paths.node_count; + U128 *rdi_hashes = push_array(arena, U128, rdi_hashes_count); + String8 *rdi_paths_array = push_array(arena, String8, rdi_hashes_count); + U64 dump_hashes_count = dump_paths.node_count; + U128 *dump_hashes = push_array(arena, U128, dump_hashes_count); + String8 *dump_paths_array = push_array(arena, String8, dump_hashes_count); + { + U64 idx = 0; + for EachNode(n, String8Node, rdi_paths.first) + { + Temp scratch = scratch_begin(0, 0); + String8 rdi_path = n->string; + String8 path = rdi_path; + String8 data = data_from_file_path(scratch.arena, path); + TestCheck(data.size != 0); + rdi_hashes[idx] = u128_hash_from_str8(data); + rdi_paths_array[idx] = path; + scratch_end(scratch); + idx += 1; + } + } + { + U64 idx = 0; + for EachNode(n, String8Node, dump_paths.first) + { + Temp scratch = scratch_begin(0, 0); + String8 path = n->string; + String8 data = data_from_file_path(scratch.arena, path); + TestCheck(data.size != 0); + dump_hashes[idx] = u128_hash_from_str8(data); + dump_paths_array[idx] = path; + scratch_end(scratch); + idx += 1; + } + } + + // rjf: determine if all hashes match + U64 mismatch_num = 0; + for EachIndex(idx, rdi_hashes_count) + { + if(!u128_match(rdi_hashes[idx], rdi_hashes[0])) + { + mismatch_num = idx+1; + break; + } + } + for EachIndex(idx, dump_hashes_count) + { + if(!u128_match(dump_hashes[idx], dump_hashes[0])) + { + mismatch_num = idx+1; + break; + } + } + + // rjf: output bad case info + if(mismatch_num != 0) + { + U64 idx = mismatch_num-1; + test_outf(" pdb[%I64u] \"%S\"\n", idx, pdb_path); + test_outf(" rdi[%I64u] 0x%I64x:%I64x \"%S\"\n", idx, rdi_hashes[idx].u64[0], rdi_hashes[idx].u64[1], rdi_paths_array[idx]); + test_outf(" dump[%I64u] 0x%I64x:%I64x \"%S\"\n", idx, dump_hashes[idx].u64[0], dump_hashes[idx].u64[1], dump_paths_array[idx]); + } + TestCheck(mismatch_num == 0); + } +} diff --git a/src/rdi_make/rdi_make_local.c b/src/rdi_make/rdi_make_local.c index 7d5ad140..258e2531 100644 --- a/src/rdi_make/rdi_make_local.c +++ b/src/rdi_make/rdi_make_local.c @@ -26,7 +26,7 @@ rdim_make_top_level_info(String8 image_name, Arch arch, U64 exe_hash, RDIM_Binar { default:{}break; case Arch_x64:{arch_rdi = RDI_Arch_X64;}break; - case Arch_x86:{arch_rdi = RDI_Arch_X86;}break; + case Arch_x86:{NotImplemented;}break; } // find max VOFF @@ -46,21 +46,319 @@ rdim_make_top_level_info(String8 image_name, Arch arch, U64 exe_hash, RDIM_Binar return top_level_info; } +internal RDIM_BakeParams +rdim_loose_from_rdi(Arena *arena, RDIM_SubsetFlags subset_flags, RDI_Parsed *rdi) +{ + //- rjf: setup bake params + RDIM_BakeParams *bp = 0; + if(lane_idx() == 0) + { + bp = push_array(arena, RDIM_BakeParams, 1); + bp->subset_flags = subset_flags; + } + lane_sync_u64(&bp, 0); + + //- rjf: convert top level info + if(lane_idx() == 0) + { + RDI_TopLevelInfo *tli = rdi_element_from_name_idx(rdi, TopLevelInfo, 0); + bp->top_level_info.arch = tli->arch; + bp->top_level_info.exe_name.str = rdi_string_from_idx(rdi, tli->exe_name_string_idx, &bp->top_level_info.exe_name.size); + bp->top_level_info.exe_hash = tli->exe_hash; + bp->top_level_info.voff_max = tli->voff_max; + bp->top_level_info.guid = tli->guid; + bp->top_level_info.producer_name.str = rdi_string_from_idx(rdi, tli->producer_name_string_idx, &bp->top_level_info.producer_name.size); + } + lane_sync(); + + //- rjf: convert binary sections + if(lane_idx() == 0) + { + U64 count = 0; + RDI_BinarySection *v = rdi_table_from_name(rdi, BinarySections, &count); + for EachIndex(idx, count) + { + RDIM_BinarySection *bsec = rdim_binary_section_list_push(arena, &bp->binary_sections); + bsec->name.str = rdi_string_from_idx(rdi, v[idx].name_string_idx, &bsec->name.size); + bsec->flags = v[idx].flags; + bsec->voff_first = v[idx].voff_first; + bsec->voff_opl = v[idx].voff_opl; + bsec->foff_first = v[idx].foff_first; + bsec->foff_opl = v[idx].foff_opl; + } + } + lane_sync(); + + //- rjf: bucket voff ranges by unit idx + RDIM_Rng1U64ChunkList *unit_ranges = 0; + if(lane_idx() == 0) + { + U64 units_count = 0; + rdi_table_from_name(rdi, Units, &units_count); + U64 unit_vmap_count = 0; + RDI_VMapEntry *unit_vmap = rdi_table_from_name(rdi, UnitVMap, &unit_vmap_count); + unit_ranges = push_array(arena, RDIM_Rng1U64ChunkList, units_count); + if(unit_vmap_count > 0) + { + for EachIndex(idx, unit_vmap_count-1) + { + RDIM_Rng1U64 rng = {unit_vmap[idx].voff, unit_vmap[idx+1].voff}; + rdim_rng1u64_chunk_list_push(arena, &unit_ranges[unit_vmap[idx].idx], 256, rng); + } + } + } + lane_sync_u64(&unit_ranges, 0); + + //- rjf: convert src files + RDIM_SrcFileChunkList *src_files = 0; + RDIM_SrcFile **src_file_from_idx_table = 0; + { + U64 src_file_count = 0; + RDI_SourceFile *src_file_v = rdi_table_from_name(rdi, SourceFiles, &src_file_count); + RDIM_SrcFileChunkList *lane_srcfiles = 0; + if(lane_idx() == 0) + { + src_files = push_array(arena, RDIM_SrcFileChunkList, 1); + src_file_from_idx_table = push_array(arena, RDIM_SrcFile *, src_file_count); + lane_srcfiles = push_array(arena, RDIM_SrcFileChunkList, lane_count()); + } + lane_sync_u64(&lane_srcfiles, 0); + { + Rng1U64 range = lane_range(src_file_count); + for EachInRange(idx, range) + { + RDI_SourceFile *src = &src_file_v[idx]; + RDIM_SrcFile *dst = rdim_src_file_chunk_list_push(arena, &lane_srcfiles[lane_idx()], dim_1u64(range)); + + // rjf: get checksum + String8 checksum = {0}; + switch(src->checksum_kind) + { + default:{}break; + case RDI_ChecksumKind_MD5: {checksum = str8(rdi_element_from_name_idx(rdi, MD5Checksums, src->checksum_idx)->u8, sizeof(RDI_MD5));}break; + case RDI_ChecksumKind_SHA1: {checksum = str8(rdi_element_from_name_idx(rdi, SHA1Checksums, src->checksum_idx)->u8, sizeof(RDI_SHA1));}break; + case RDI_ChecksumKind_SHA256: {checksum = str8(rdi_element_from_name_idx(rdi, SHA256Checksums, src->checksum_idx)->u8, sizeof(RDI_SHA256));}break; + case RDI_ChecksumKind_Timestamp:{checksum = str8((U8 *)rdi_element_from_name_idx(rdi, Timestamps, src->checksum_idx), sizeof(RDI_U64));}break; + } + + // rjf: fill basics + dst->path = str8_from_rdi_path_node_idx(arena, rdi, PathStyle_Relative, src->file_path_node_idx); + dst->checksum_kind = src->checksum_kind; + dst->checksum = checksum; + src_file_from_idx_table[idx] = dst; + } + } + lane_sync(); + if(lane_idx() == 0) + { + for EachIndex(lidx, lane_count()) + { + rdim_src_file_chunk_list_concat_in_place(src_files, &lane_srcfiles[lidx]); + } + } + } + lane_sync(); + + //- rjf: convert units + RDIM_UnitChunkList *units = 0; + RDIM_LineTableChunkList *line_tables = 0; + { + RDIM_UnitChunkList *lane_units = 0; + RDIM_LineTableChunkList *lane_linetables = 0; + if(lane_idx() == 0) + { + lane_units = push_array(arena, RDIM_UnitChunkList, lane_count()); + lane_linetables = push_array(arena, RDIM_LineTableChunkList, lane_count()); + units = push_array(arena, RDIM_UnitChunkList, 1); + line_tables = push_array(arena, RDIM_LineTableChunkList, 1); + } + lane_sync_u64(&lane_units, 0); + lane_sync_u64(&lane_linetables, 0); + lane_sync_u64(&units, 0); + lane_sync_u64(&line_tables, 0); + U64 count = 0; + RDI_Unit *v = rdi_table_from_name(rdi, Units, &count); + U64 unit_take_idx_ = 0; + U64 *unit_take_idx_ptr = &unit_take_idx_; + lane_sync_u64(&unit_take_idx_ptr, 0); + for(;;) + { + U64 unit_idx = ins_atomic_u64_inc_eval(unit_take_idx_ptr)-1; + if(unit_idx >= count) + { + break; + } + RDI_Unit *src = &v[unit_idx]; + + // rjf: convert flat top parts + RDIM_Unit *dst = rdim_unit_chunk_list_push(arena, &lane_units[lane_idx()], 64); + dst->unit_name = str8_from_rdi_string_idx(rdi, src->unit_name_string_idx); + dst->compiler_name = str8_from_rdi_string_idx(rdi, src->compiler_name_string_idx); + dst->source_file = str8_from_rdi_path_node_idx(arena, rdi, PathStyle_Relative, src->source_file_path_node); + dst->object_file = str8_from_rdi_path_node_idx(arena, rdi, PathStyle_Relative, src->object_file_path_node); + dst->archive_file = str8_from_rdi_path_node_idx(arena, rdi, PathStyle_Relative, src->archive_file_path_node); + dst->build_path = str8_from_rdi_path_node_idx(arena, rdi, PathStyle_Relative, src->build_path_node); + dst->language = src->language; + dst->voff_ranges = unit_ranges[unit_idx]; + + // rjf: convert line table + dst->line_table = rdim_line_table_chunk_list_push(arena, &lane_linetables[lane_idx()], 64); + { + RDI_LineTable *src_lt_unparsed = rdi_element_from_name_idx(rdi, LineTables, src->line_table_idx); + RDI_ParsedLineTable src_lt = {0}; + rdi_parsed_from_line_table(rdi, src_lt_unparsed, &src_lt); + RDIM_LineTable *dst_lt = dst->line_table; + { + RDIM_SrcFile *seq_src_file = 0; + U64 seq_start_idx = 0; + for(U64 line_idx = 0; line_idx <= src_lt.count; line_idx += 1) + { + // rjf: get next src file + RDIM_SrcFile *next_src_file = 0; + if(line_idx < src_lt.count) + { + next_src_file = src_file_from_idx_table[src_lt.lines[line_idx].file_idx]; + } + + // rjf: next file doesn't match current sequence? -> complete sequence + if(next_src_file != seq_src_file && seq_src_file != 0) + { + U64 seq_line_count = (line_idx - seq_start_idx); + U32 *seq_line_nums = push_array(arena, U32, seq_line_count); + for(U64 line_idx_2 = seq_start_idx; line_idx_2 < line_idx; line_idx_2 += 1) + { + seq_line_nums[line_idx_2] = src_lt.lines[line_idx_2].line_num; + } + rdim_line_table_push_sequence(arena, &lane_linetables[lane_idx()], dst_lt, seq_src_file, + src_lt.voffs + seq_start_idx, + seq_line_nums, + 0, // TODO(rjf): column support + seq_line_count); + } + + // rjf: start next sequence + if(next_src_file != seq_src_file) + { + seq_src_file = next_src_file; + seq_start_idx = line_idx; + } + } + } + } + } + lane_sync(); + if(lane_idx() == 0) + { + for EachIndex(l_idx, lane_count()) + { + rdim_unit_chunk_list_concat_in_place(units, &lane_units[l_idx]); + } + for EachIndex(l_idx, lane_count()) + { + rdim_line_table_chunk_list_concat_in_place(line_tables, &lane_linetables[l_idx]); + } + } + } + lane_sync(); + + // TODO(rjf): convert types + // TODO(rjf): convert udts + // TODO(rjf): convert locations + // TODO(rjf): convert global variables + // TODO(rjf): convert thread variables + // TODO(rjf): convert constants + // TODO(rjf): convert procedures + // TODO(rjf): convert scopes + // TODO(rjf): convert inline sites + // TODO(rjf): package & return + + RDIM_BakeParams result = bp[0]; + return result; +} + internal RDIM_BakeResults rdim_bake(Arena *arena, RDIM_BakeParams *params) { + Temp scratch = scratch_begin(&arena, 1); + ////////////////////////////////////////////////////////////// - //- rjf: set up shared state + //- rjf: @rdim_bake_stage form joined symbol lists, from all units // + typedef struct UnitSymbolRanges UnitSymbolRanges; + struct UnitSymbolRanges + { + U64 procedures_first_idx; + U64 procedures_count; + U64 global_variables_first_idx; + U64 global_variables_count; + U64 thread_variables_first_idx; + U64 thread_variables_count; + U64 constants_first_idx; + U64 constants_count; + }; + RDIM_SymbolChunkList *all_global_variables = 0; + RDIM_SymbolChunkList *all_thread_variables = 0; + RDIM_SymbolChunkList *all_constants = 0; + RDIM_SymbolChunkList *all_procedures = 0; + RDIM_ScopeChunkList *all_scopes = 0; + RDIM_InlineSiteChunkList *all_inline_sites = 0; + UnitSymbolRanges *unit_symbol_ranges = 0; if(lane_idx() == 0) { - rdim_shared = push_array(arena, RDIM_Shared, 1); + all_global_variables = push_array(scratch.arena, RDIM_SymbolChunkList, 1); + all_thread_variables = push_array(scratch.arena, RDIM_SymbolChunkList, 1); + all_constants = push_array(scratch.arena, RDIM_SymbolChunkList, 1); + all_procedures = push_array(scratch.arena, RDIM_SymbolChunkList, 1); + all_scopes = push_array(scratch.arena, RDIM_ScopeChunkList, 1); + all_inline_sites = push_array(scratch.arena, RDIM_InlineSiteChunkList, 1); + unit_symbol_ranges = push_array(scratch.arena, UnitSymbolRanges, params->units.total_count); + U64 unit_idx = 0; + for EachNode(unit_n, RDIM_UnitChunkNode, params->units.first) + { + for EachIndex(unit_n_idx, unit_n->count) + { + RDIM_Unit *unit = &unit_n->v[unit_n_idx]; + unit_symbol_ranges[unit_idx].procedures_first_idx = all_procedures->total_count + 1; + unit_symbol_ranges[unit_idx].procedures_count = unit->procedures.total_count; + unit_symbol_ranges[unit_idx].global_variables_first_idx = all_global_variables->total_count + 1; + unit_symbol_ranges[unit_idx].global_variables_count = unit->global_variables.total_count; + unit_symbol_ranges[unit_idx].thread_variables_first_idx = all_thread_variables->total_count + 1; + unit_symbol_ranges[unit_idx].thread_variables_count = unit->thread_variables.total_count; + unit_symbol_ranges[unit_idx].constants_first_idx = all_constants->total_count + 1; + unit_symbol_ranges[unit_idx].constants_count = unit->constants.total_count; + rdim_symbol_chunk_list_concat_in_place(all_global_variables, &unit->global_variables); + rdim_symbol_chunk_list_concat_in_place(all_thread_variables, &unit->thread_variables); + rdim_symbol_chunk_list_concat_in_place(all_constants, &unit->constants); + rdim_symbol_chunk_list_concat_in_place(all_procedures, &unit->procedures); + rdim_scope_chunk_list_concat_in_place(all_scopes, &unit->scopes); + rdim_inline_site_chunk_list_concat_in_place(all_inline_sites, &unit->inline_sites); + unit_idx += 1; + } + } } - lane_sync(); + lane_sync_u64(&all_global_variables, 0); + lane_sync_u64(&all_thread_variables, 0); + lane_sync_u64(&all_constants, 0); + lane_sync_u64(&all_procedures, 0); + lane_sync_u64(&all_scopes, 0); + lane_sync_u64(&all_inline_sites, 0); + lane_sync_u64(&unit_symbol_ranges, 0); ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake vmaps // + RDIM_BakeVMap *baked_scope_vmap = 0; + RDIM_BakeVMap *baked_unit_vmap = 0; + RDIM_BakeVMap *baked_global_vmap = 0; + if(lane_idx() == 0) + { + baked_scope_vmap = push_array(scratch.arena, RDIM_BakeVMap, 1); + baked_unit_vmap = push_array(scratch.arena, RDIM_BakeVMap, 1); + baked_global_vmap = push_array(scratch.arena, RDIM_BakeVMap, 1); + } + lane_sync_u64(&baked_scope_vmap, 0); + lane_sync_u64(&baked_unit_vmap, 0); + lane_sync_u64(&baked_global_vmap, 0); ProfScope("bake vmaps") { Temp scratch = scratch_begin(&arena, 1); @@ -89,18 +387,20 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 scope_vmap_records_count = 0; ProfScope("gather unsorted scope vmap records") { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + //- rjf: calculate per-lane-chunk counts U64 *lane_chunk_range_counts = 0; if(lane_idx() == 0) { - lane_chunk_range_counts = push_array(scratch.arena, U64, params->scopes.chunk_count * lane_count()); + lane_chunk_range_counts = push_array(scratch2.arena, U64, all_scopes->chunk_count * lane_count()); } lane_sync_u64(&lane_chunk_range_counts, 0); { U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { - U64 slot_idx = lane_idx()*params->scopes.chunk_count + chunk_idx; + U64 slot_idx = lane_idx()*all_scopes->chunk_count + chunk_idx; Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { @@ -116,14 +416,14 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 total_range_count = 0; if(lane_idx() == 0) { - lane_chunk_range_offs = push_array(scratch.arena, U64, params->scopes.chunk_count * lane_count()); + lane_chunk_range_offs = push_array(scratch2.arena, U64, all_scopes->chunk_count * lane_count()); U64 off = 0; U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { for EachIndex(l_idx, lane_count()) { - U64 slot_idx = l_idx*params->scopes.chunk_count + chunk_idx; + U64 slot_idx = l_idx*all_scopes->chunk_count + chunk_idx; lane_chunk_range_offs[slot_idx] = off; off += lane_chunk_range_counts[slot_idx]; } @@ -146,9 +446,9 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: fill records { U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { - U64 slot_idx = lane_idx()*params->scopes.chunk_count + chunk_idx; + U64 slot_idx = lane_idx()*all_scopes->chunk_count + chunk_idx; U64 off = lane_chunk_range_offs[slot_idx]; Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) @@ -165,8 +465,9 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) chunk_idx += 1; } } + lane_sync(); + scratch_end(scratch2); } - lane_sync(); //////////////////////////// //- rjf: gather unsorted global vmap records @@ -175,20 +476,29 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 global_vmap_records_count = 0; ProfScope("gather unsorted global vmap records") { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + //- rjf: calculate per-lane-chunk counts U64 *lane_chunk_range_counts = 0; if(lane_idx() == 0) { - lane_chunk_range_counts = push_array(scratch.arena, U64, params->global_variables.chunk_count * lane_count()); + lane_chunk_range_counts = push_array(scratch2.arena, U64, all_global_variables->chunk_count * lane_count()); } lane_sync_u64(&lane_chunk_range_counts, 0); { U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->global_variables.first) + for EachNode(n, RDIM_SymbolChunkNode, all_global_variables->first) { - U64 slot_idx = lane_idx()*params->global_variables.chunk_count + chunk_idx; + U64 slot_idx = lane_idx()*all_global_variables->chunk_count + chunk_idx; Rng1U64 range = lane_range(n->count); - lane_chunk_range_counts[slot_idx] += dim_1u64(range); + for EachInRange(n_idx, range) + { + if(n->v[n_idx].location_cases.count == 1 && + n->v[n_idx].location_cases.first->location.kind == RDI_LocationKind_ModuleOff) + { + lane_chunk_range_counts[slot_idx] += 1; + } + } chunk_idx += 1; } } @@ -199,14 +509,14 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 total_range_count = 0; if(lane_idx() == 0) { - lane_chunk_range_offs = push_array(scratch.arena, U64, params->global_variables.chunk_count * lane_count()); + lane_chunk_range_offs = push_array(scratch2.arena, U64, all_global_variables->chunk_count * lane_count()); U64 off = 0; U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->global_variables.first) + for EachNode(n, RDIM_SymbolChunkNode, all_global_variables->first) { for EachIndex(l_idx, lane_count()) { - U64 slot_idx = l_idx*params->global_variables.chunk_count + chunk_idx; + U64 slot_idx = l_idx*all_global_variables->chunk_count + chunk_idx; lane_chunk_range_offs[slot_idx] = off; off += lane_chunk_range_counts[slot_idx]; } @@ -229,26 +539,31 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: fill records { U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->global_variables.first) + for EachNode(n, RDIM_SymbolChunkNode, all_global_variables->first) { - U64 slot_idx = lane_idx()*params->global_variables.chunk_count + chunk_idx; + U64 slot_idx = lane_idx()*all_global_variables->chunk_count + chunk_idx; U64 off = lane_chunk_range_offs[slot_idx]; Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - RDI_U32 global_idx = (RDI_U32)rdim_idx_from_symbol(&n->v[n_idx]); // TODO(rjf): @u64_to_u32 - RDI_U32 global_size = (RDI_U32)(n->v[n_idx].type ? n->v[n_idx].type->byte_size : 1); - RDI_U64 global_voff = n->v[n_idx].offset; - global_vmap_records[off].key.voff = global_voff; - global_vmap_records[off].key.negative_size = -global_size; - global_vmap_records[off].idx = global_idx; - off += 1; + if(n->v[n_idx].location_cases.count == 1 && + n->v[n_idx].location_cases.first->location.kind == RDI_LocationKind_ModuleOff) + { + RDI_U32 global_idx = (RDI_U32)rdim_idx_from_symbol(&n->v[n_idx]); // TODO(rjf): @u64_to_u32 + RDI_U32 global_size = (RDI_U32)(n->v[n_idx].type ? n->v[n_idx].type->byte_size : 1); + RDI_U64 global_voff = n->v[n_idx].location_cases.first->location.offset; + global_vmap_records[off].key.voff = global_voff; + global_vmap_records[off].key.negative_size = -global_size; + global_vmap_records[off].idx = global_idx; + off += 1; + } } chunk_idx += 1; } } + lane_sync(); + scratch_end(scratch2); } - lane_sync(); //////////////////////////// //- rjf: gather unsorted unit vmap records @@ -257,6 +572,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 unit_vmap_records_count = 0; ProfScope("gather unsorted unit vmap records") { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + //- rjf: calculate per-lane-chunk counts U64 *lane_chunk_range_counts = 0; if(lane_idx() == 0) @@ -336,8 +653,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) chunk_idx += 1; } } + + lane_sync(); + scratch_end(scratch2); } - lane_sync(); //////////////////////////// //- rjf: sort & bake all vmaps @@ -352,9 +671,9 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } vmap_tasks[] = { - {str8_lit_comp("scopes"), scope_vmap_records, scope_vmap_records_count, &rdim_shared->baked_scope_vmap.vmap.vmap, &rdim_shared->baked_scope_vmap.vmap.count}, - {str8_lit_comp("globals"), global_vmap_records, global_vmap_records_count, &rdim_shared->baked_global_vmap.vmap.vmap, &rdim_shared->baked_global_vmap.vmap.count}, - {str8_lit_comp("units"), unit_vmap_records, unit_vmap_records_count, &rdim_shared->baked_unit_vmap.vmap.vmap, &rdim_shared->baked_unit_vmap.vmap.count}, + {str8_lit_comp("scopes"), scope_vmap_records, scope_vmap_records_count, &baked_scope_vmap->vmap, &baked_scope_vmap->count}, + {str8_lit_comp("globals"), global_vmap_records, global_vmap_records_count, &baked_global_vmap->vmap, &baked_global_vmap->count}, + {str8_lit_comp("units"), unit_vmap_records, unit_vmap_records_count, &baked_unit_vmap->vmap, &baked_unit_vmap->count}, }; ProfScope("sort & bake all vmaps") { @@ -368,6 +687,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // ProfScope("sort") { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + //- rjf: set up constants U64 bytes_per_digit = 1; U64 num_possible_values_per_digit = 1<<(bytes_per_digit*8); @@ -379,15 +700,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U32 **lane_digit_offs = 0; if(lane_idx() == 0) { - records__swap = push_array_no_zero(scratch.arena, VMapRecord, records_count); - lane_digit_counts = push_array_no_zero(scratch.arena, U32 *, lane_count()); - lane_digit_offs = push_array_no_zero(scratch.arena, U32 *, lane_count()); + records__swap = push_array_no_zero(scratch2.arena, VMapRecord, records_count); + lane_digit_counts = push_array_no_zero(scratch2.arena, U32 *, lane_count()); + lane_digit_offs = push_array_no_zero(scratch2.arena, U32 *, lane_count()); } lane_sync_u64(&records__swap, 0); lane_sync_u64(&lane_digit_counts, 0); lane_sync_u64(&lane_digit_offs, 0); - lane_digit_counts[lane_idx()] = push_array_no_zero(scratch.arena, U32, num_possible_values_per_digit); - lane_digit_offs[lane_idx()] = push_array_no_zero(scratch.arena, U32, num_possible_values_per_digit); + lane_digit_counts[lane_idx()] = push_array_no_zero(scratch2.arena, U32, num_possible_values_per_digit); + lane_digit_offs[lane_idx()] = push_array_no_zero(scratch2.arena, U32, num_possible_values_per_digit); //- rjf: do all sort passes { @@ -460,8 +781,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) Swap(VMapRecord *, src, dst); } } + + lane_sync(); + scratch_end(scratch2); } - lane_sync(); //////////////////////// //- rjf: bake @@ -480,6 +803,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: bake if(lane_idx() == 0) { + Temp scratch2 = scratch_begin(&scratch.arena, 1); typedef struct RangeNode RangeNode; struct RangeNode { @@ -538,12 +862,12 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } else { - r = push_array(scratch.arena, RangeNode, 1); + r = push_array(scratch2.arena, RangeNode, 1); } SLLStackPush(top_range, r); r->voff_range = voff_range; r->idx = idx; - if(voff_range.min != last_recorded_voff || (vmap_ptr->idx != idx && vmap_ptr->idx != 0)) + if(voff_range.min != last_recorded_voff) { vmap_ptr += 1; } @@ -557,6 +881,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) vmap_ptr += 1; } vmap_count = (vmap_ptr - vmap); + scratch_end(scratch2); } lane_sync_u64(&vmap_count, 0); } @@ -572,7 +897,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } } - + lane_sync(); scratch_end(scratch); } lane_sync(); @@ -580,11 +905,12 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage build interned path tree // + RDIM_BakePathTree *path_tree = 0; if(lane_idx() == 0) ProfScope("build interned path tree") { //- rjf: set up tree - RDIM_BakePathTree *tree = rdim_push_array(arena, RDIM_BakePathTree, 1); - rdim_bake_path_tree_insert(arena, tree, rdim_str8_lit("")); + path_tree = rdim_push_array(scratch.arena, RDIM_BakePathTree, 1); + rdim_bake_path_tree_insert(scratch.arena, path_tree, rdim_str8_lit("")); //- rjf: bake unit file paths RDIM_ProfScope("bake unit file paths") @@ -593,10 +919,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { for(RDI_U64 idx = 0; idx < n->count; idx += 1) { - rdim_bake_path_tree_insert(arena, tree, n->v[idx].source_file); - rdim_bake_path_tree_insert(arena, tree, n->v[idx].object_file); - rdim_bake_path_tree_insert(arena, tree, n->v[idx].archive_file); - rdim_bake_path_tree_insert(arena, tree, n->v[idx].build_path); + rdim_bake_path_tree_insert(scratch.arena, path_tree, n->v[idx].source_file); + rdim_bake_path_tree_insert(scratch.arena, path_tree, n->v[idx].object_file); + rdim_bake_path_tree_insert(scratch.arena, path_tree, n->v[idx].archive_file); + rdim_bake_path_tree_insert(scratch.arena, path_tree, n->v[idx].build_path); } } } @@ -608,20 +934,34 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { for(RDI_U64 idx = 0; idx < n->count; idx += 1) { - RDIM_BakePathNode *node = rdim_bake_path_tree_insert(arena, tree, n->v[idx].path); + RDIM_BakePathNode *node = rdim_bake_path_tree_insert(scratch.arena, path_tree, n->v[idx].path); node->src_file = &n->v[idx]; } } } - - rdim_shared->path_tree = tree; } - lane_sync(); - RDIM_BakePathTree *path_tree = rdim_shared->path_tree; + lane_sync_u64(&path_tree, 0); ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage gather all unsorted, joined, line table info; & sort // + typedef struct BakedLineTables BakedLineTables; + struct BakedLineTables + { + RDI_LineTable *line_tables; + RDI_U64 line_tables_count; + RDI_U64 *line_table_voffs; + RDI_U64 line_table_voffs_count; + RDI_Line *line_table_lines; + RDI_U64 line_table_lines_count; + RDI_Column *line_table_columns; + RDI_U64 line_table_columns_count; + }; + U64 line_tables_count = 0; + RDIM_LineTable **src_line_tables = 0; + RDIM_UnsortedJoinedLineTable *unsorted_joined_line_tables = 0; + RDIM_SortKey **sorted_line_table_keys = 0; + BakedLineTables *baked_line_tables = 0; ProfScope("gather all unsorted, joined, line table info; & sort") { //- rjf: set up outputs @@ -630,8 +970,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: calculate header info if(lane_idx() == 0) { - rdim_shared->line_tables_count = params->line_tables.total_count; - rdim_shared->src_line_tables = push_array(arena, RDIM_LineTable *, rdim_shared->line_tables_count); + line_tables_count = params->line_tables.total_count; + src_line_tables = push_array(scratch.arena, RDIM_LineTable *, line_tables_count); ProfScope("flatten chunk list") { U64 joined_idx = 0; @@ -639,43 +979,45 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { for EachIndex(idx, n->count) { - rdim_shared->src_line_tables[joined_idx] = &n->v[idx]; + src_line_tables[joined_idx] = &n->v[idx]; joined_idx += 1; } } } - rdim_shared->baked_line_tables.line_tables_count = params->line_tables.total_count + 1; - rdim_shared->baked_line_tables.line_table_voffs_count = params->line_tables.total_line_count + 2*params->line_tables.total_seq_count; - rdim_shared->baked_line_tables.line_table_lines_count = params->line_tables.total_line_count + params->line_tables.total_seq_count; - rdim_shared->baked_line_tables.line_table_columns_count= 1; - rdim_shared->line_table_block_take_counter = 0; + baked_line_tables = push_array(scratch.arena, BakedLineTables, 1); + baked_line_tables->line_tables_count = params->line_tables.total_count + 1; + baked_line_tables->line_table_voffs_count = params->line_tables.total_line_count + 2*params->line_tables.total_seq_count; + baked_line_tables->line_table_lines_count = params->line_tables.total_line_count + params->line_tables.total_seq_count; + baked_line_tables->line_table_columns_count= 1; } - lane_sync(); + lane_sync_u64(&line_tables_count, 0); + lane_sync_u64(&src_line_tables, 0); + lane_sync_u64(&baked_line_tables, 0); // rjf: allocate outputs ProfScope("allocate outputs") { if(lane_idx() == lane_from_task_idx(0)) { - rdim_shared->unsorted_joined_line_tables = push_array(arena, RDIM_UnsortedJoinedLineTable, rdim_shared->line_tables_count); + unsorted_joined_line_tables = push_array(scratch.arena, RDIM_UnsortedJoinedLineTable, line_tables_count); } if(lane_idx() == lane_from_task_idx(1)) { - rdim_shared->sorted_line_table_keys = push_array(arena, RDIM_SortKey *, rdim_shared->line_tables_count); + sorted_line_table_keys = push_array(scratch.arena, RDIM_SortKey *, line_tables_count); } if(lane_idx() == lane_from_task_idx(2)) { - rdim_shared->baked_line_tables.line_tables = push_array(arena, RDI_LineTable, rdim_shared->baked_line_tables.line_tables_count); + baked_line_tables->line_tables = push_array(arena, RDI_LineTable, baked_line_tables->line_tables_count); ProfScope("lay out line tables") { U64 voffs_base_idx = 0; U64 lines_base_idx = 0; U64 cols_base_idx = 0; - for EachIndex(idx, rdim_shared->line_tables_count) + for EachIndex(idx, line_tables_count) { U64 final_idx = idx+1; // NOTE(rjf): +1, to reserve [0] for nil - RDIM_LineTable *src = rdim_shared->src_line_tables[idx]; - RDI_LineTable *dst = &rdim_shared->baked_line_tables.line_tables[final_idx]; + RDIM_LineTable *src = src_line_tables[idx]; + RDI_LineTable *dst = &baked_line_tables->line_tables[final_idx]; dst->voffs_base_idx = voffs_base_idx; // TODO(rjf): @u64_to_u32 dst->lines_base_idx = lines_base_idx; // TODO(rjf): @u64_to_u32 dst->cols_base_idx = cols_base_idx; // TODO(rjf): @u64_to_u32 @@ -687,39 +1029,43 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } if(lane_idx() == lane_from_task_idx(3)) { - rdim_shared->baked_line_tables.line_table_voffs = push_array(arena, RDI_U64, rdim_shared->baked_line_tables.line_table_voffs_count); + baked_line_tables->line_table_voffs = push_array(arena, RDI_U64, baked_line_tables->line_table_voffs_count); } if(lane_idx() == lane_from_task_idx(4)) { - rdim_shared->baked_line_tables.line_table_lines = push_array(arena, RDI_Line, rdim_shared->baked_line_tables.line_table_lines_count); + baked_line_tables->line_table_lines = push_array(arena, RDI_Line, baked_line_tables->line_table_lines_count); } if(lane_idx() == lane_from_task_idx(5)) { - rdim_shared->baked_line_tables.line_table_columns = push_array(arena, RDI_Column, rdim_shared->baked_line_tables.line_table_columns_count); + baked_line_tables->line_table_columns = push_array(arena, RDI_Column, baked_line_tables->line_table_columns_count); } } } - lane_sync(); + lane_sync_u64(&unsorted_joined_line_tables, lane_from_task_idx(0)); + lane_sync_u64(&sorted_line_table_keys, lane_from_task_idx(1)); //- rjf: wide bake ProfScope("wide bake") { + U64 line_table_block_take_counter_ = 0; + U64 *line_table_block_take_counter = &line_table_block_take_counter_; + lane_sync_u64(&line_table_block_take_counter, 0); U64 line_table_block_size = 4096; - U64 line_table_block_count = (rdim_shared->line_tables_count + line_table_block_size - 1) / line_table_block_size; + U64 line_table_block_count = (line_tables_count + line_table_block_size - 1) / line_table_block_size; for(;;) { - U64 line_table_block_num = ins_atomic_u64_inc_eval(&rdim_shared->line_table_block_take_counter); + U64 line_table_block_num = ins_atomic_u64_inc_eval(line_table_block_take_counter); if(0 == line_table_block_num || line_table_block_count < line_table_block_num) { break; } U64 line_table_block_idx = line_table_block_num-1; Rng1U64 line_table_range = r1u64(line_table_block_idx*line_table_block_size, (line_table_block_idx+1)*line_table_block_size); - line_table_range.max = Min(rdim_shared->line_tables_count, line_table_range.max); + line_table_range.max = Min(line_tables_count, line_table_range.max); for EachInRange(line_table_idx, line_table_range) { - RDIM_LineTable *src = rdim_shared->src_line_tables[line_table_idx]; - RDIM_UnsortedJoinedLineTable *dst = &rdim_shared->unsorted_joined_line_tables[line_table_idx]; + RDIM_LineTable *src = src_line_tables[line_table_idx]; + RDIM_UnsortedJoinedLineTable *dst = &unsorted_joined_line_tables[line_table_idx]; //- rjf: gather dst->line_count = src->line_count; @@ -754,17 +1100,18 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } //- rjf: sort - rdim_shared->sorted_line_table_keys[line_table_idx] = rdim_sort_key_array(arena, - rdim_shared->unsorted_joined_line_tables[line_table_idx].line_keys, - rdim_shared->unsorted_joined_line_tables[line_table_idx].key_count); + sorted_line_table_keys[line_table_idx] = rdim_sort_key_array(arena, + unsorted_joined_line_tables[line_table_idx].line_keys, + unsorted_joined_line_tables[line_table_idx].key_count); //- rjf: fill - RDIM_SortKey *sorted_line_keys = rdim_shared->sorted_line_table_keys[line_table_idx]; - U64 sorted_line_keys_count = rdim_shared->unsorted_joined_line_tables[line_table_idx].key_count; - RDI_LineTable *dst_line_table = &rdim_shared->baked_line_tables.line_tables[line_table_idx+1]; - U64 *arranged_voffs = rdim_shared->baked_line_tables.line_table_voffs + dst_line_table->voffs_base_idx; - RDI_Line *arranged_lines = rdim_shared->baked_line_tables.line_table_lines + dst_line_table->lines_base_idx; - RDI_Column *arranged_cols = rdim_shared->baked_line_tables.line_table_columns + dst_line_table->cols_base_idx; + RDIM_SortKey *sorted_line_keys = sorted_line_table_keys[line_table_idx]; + U64 sorted_line_keys_count = unsorted_joined_line_tables[line_table_idx].key_count; + RDI_LineTable *dst_line_table = &baked_line_tables->line_tables[line_table_idx+1]; + U64 *arranged_voffs = baked_line_tables->line_table_voffs + dst_line_table->voffs_base_idx; + RDI_Line *arranged_lines = baked_line_tables->line_table_lines + dst_line_table->lines_base_idx; + RDI_Column *arranged_cols = baked_line_tables->line_table_columns + dst_line_table->cols_base_idx; + if(sorted_line_keys_count > 0) { for EachIndex(idx, sorted_line_keys_count) { @@ -788,20 +1135,18 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } } + lane_sync(); } } lane_sync(); - RDI_U64 line_tables_count = rdim_shared->line_tables_count; - RDIM_LineTable **src_line_tables = rdim_shared->src_line_tables; - RDIM_UnsortedJoinedLineTable *unsorted_joined_line_tables = rdim_shared->unsorted_joined_line_tables; - RDIM_SortKey **sorted_line_table_keys = rdim_shared->sorted_line_table_keys; ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage build string map // + RDIM_BakeStringMapTight *bake_strings = 0; ProfScope("build string map") { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch2 = scratch_begin(&scratch.arena, 1); //- rjf: set up per-lane outputs RDIM_BakeStringMapTopology *top = 0; @@ -809,15 +1154,17 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDIM_BakeStringMapLoose *map__loose = 0; if(lane_idx() == 0) ProfScope("set up per-lane outputs") { - top = push_array(scratch.arena, RDIM_BakeStringMapTopology, 1); + bake_strings = push_array(scratch.arena, RDIM_BakeStringMapTight, 1); + top = push_array(scratch2.arena, RDIM_BakeStringMapTopology, 1); top->slots_count = (64 + - params->procedures.total_count*1 + - params->global_variables.total_count*1 + - params->thread_variables.total_count*1 + + all_procedures->total_count*1 + + all_global_variables->total_count*1 + + all_thread_variables->total_count*1 + params->types.total_count/2); - lane_maps__loose = push_array(scratch.arena, RDIM_BakeStringMapLoose *, lane_count()); - map__loose = rdim_bake_string_map_loose_make(scratch.arena, top); + lane_maps__loose = push_array(scratch2.arena, RDIM_BakeStringMapLoose *, lane_count()); + map__loose = rdim_bake_string_map_loose_make(scratch2.arena, top); } + lane_sync_u64(&bake_strings, 0); lane_sync_u64(&top, 0); lane_sync_u64(&lane_maps__loose, 0); lane_sync_u64(&map__loose, 0); @@ -825,7 +1172,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: set up this lane's map ProfScope("set up this lane's map") { - lane_maps__loose[lane_idx()] = rdim_bake_string_map_loose_make(scratch.arena, top); + lane_maps__loose[lane_idx()] = rdim_bake_string_map_loose_make(scratch2.arena, top); } RDIM_BakeStringMapLoose *lane_map = lane_maps__loose[lane_idx()]; @@ -835,15 +1182,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: push small top-level strings if(lane_idx() == 0) ProfScope("push small top-level strings") { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 1, params->top_level_info.exe_name); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 1, params->top_level_info.producer_name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 1, params->top_level_info.exe_name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 1, params->top_level_info.producer_name); for(RDIM_BinarySectionNode *n = params->binary_sections.first; n != 0; n = n->next) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 1, n->v.name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 1, n->v.name); } for(RDIM_BakePathNode *n = path_tree->first; n != 0; n = n->next_order) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 1, n->name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 1, n->name); } } @@ -855,8 +1202,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - RDIM_String8 normalized_path = rdim_lower_from_str8(arena, n->v[n_idx].path); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 1, normalized_path); + RDIM_String8 normalized_path = rdim_normalized_from_path(scratch.arena, n->v[n_idx].path); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 1, normalized_path); } } } @@ -869,12 +1216,25 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].unit_name); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].compiler_name); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].source_file); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].object_file); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].archive_file); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].build_path); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].unit_name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].compiler_name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].source_file); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].object_file); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].archive_file); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].build_path); + } + } + } + + // rjf: push strings from namespaces + ProfScope("namespaces") + { + for EachNode(n, RDIM_NamespaceChunkNode, params->namespaces.first) + { + Rng1U64 range = lane_range(n->count); + for EachInRange(n_idx, range) + { + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].name); } } } @@ -887,7 +1247,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].name); } } } @@ -902,11 +1262,11 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { for EachNode(mem, RDIM_UDTMember, n->v[idx].first_member) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, mem->name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, mem->name); } for EachNode(enum_val, RDIM_UDTEnumVal, n->v[idx].first_enum_val) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, enum_val->name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, enum_val->name); } } } @@ -915,10 +1275,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: push strings from symbols RDIM_SymbolChunkList *symbol_lists[] = { - ¶ms->global_variables, - ¶ms->thread_variables, - ¶ms->procedures, - ¶ms->constants, + all_global_variables, + all_thread_variables, + all_procedures, + all_constants, }; ProfScope("symbols") { @@ -929,8 +1289,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].name); - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].link_name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].link_name); } } } @@ -939,12 +1299,12 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: push strings from inline sites ProfScope("inline sites") { - for EachNode(n, RDIM_InlineSiteChunkNode, params->inline_sites.first) + for EachNode(n, RDIM_InlineSiteChunkNode, all_inline_sites->first) { Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, n->v[n_idx].name); + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, n->v[n_idx].name); } } } @@ -952,14 +1312,17 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: push strings from scopes ProfScope("scopes") { - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - for EachNode(local, RDIM_Local, n->v[n_idx].first_local) + for EachNode(local_n, RDIM_SymbolChunkNode, n->v[n_idx].locals.first) { - rdim_bake_string_map_loose_insert(arena, top, lane_map, 4, local->name); + for EachIndex(local_n_idx, local_n->count) + { + rdim_bake_string_map_loose_insert(scratch.arena, top, lane_map, 4, local_n->v[local_n_idx].name); + } } } } @@ -999,7 +1362,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { if(map->slots[slot_idx] != 0) { - *map->slots[slot_idx] = rdim_bake_string_chunk_list_sorted_from_unsorted(arena, map->slots[slot_idx]); + *map->slots[slot_idx] = rdim_bake_string_chunk_list_sorted_from_unsorted(scratch.arena, map->slots[slot_idx]); } } } @@ -1011,30 +1374,29 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDIM_BakeStringMapLoose *map = map__loose; if(lane_idx() == 0) ProfScope("calc base indices, set up tight map") { - RDIM_BakeStringMapBaseIndices bake_string_map_base_indices = rdim_bake_string_map_base_indices_from_map_loose(arena, top, map); - rdim_shared->bake_strings.slots_count = top->slots_count; - rdim_shared->bake_strings.slots = rdim_push_array(arena, RDIM_BakeStringChunkList, rdim_shared->bake_strings.slots_count); - rdim_shared->bake_strings.slots_base_idxs = bake_string_map_base_indices.slots_base_idxs; - rdim_shared->bake_strings.total_count = rdim_shared->bake_strings.slots_base_idxs[rdim_shared->bake_strings.slots_count]; + RDIM_BakeStringMapBaseIndices bake_string_map_base_indices = rdim_bake_string_map_base_indices_from_map_loose(scratch.arena, top, map); + bake_strings->slots_count = top->slots_count; + bake_strings->slots = rdim_push_array(scratch.arena, RDIM_BakeStringChunkList, bake_strings->slots_count); + bake_strings->slots_base_idxs = bake_string_map_base_indices.slots_base_idxs; + bake_strings->total_count = bake_strings->slots_base_idxs[bake_strings->slots_count]; } lane_sync(); ProfScope("fill tight map") { - Rng1U64 slot_range = lane_range(rdim_shared->bake_strings.slots_count); + Rng1U64 slot_range = lane_range(bake_strings->slots_count); for EachInRange(idx, slot_range) { if(map->slots[idx] != 0) { - rdim_memcpy_struct(&rdim_shared->bake_strings.slots[idx], map->slots[idx]); + rdim_memcpy_struct(&bake_strings->slots[idx], map->slots[idx]); } } } } - scratch_end(scratch); + lane_sync(); + scratch_end(scratch2); } - lane_sync(); - RDIM_BakeStringMapTight *bake_strings = &rdim_shared->bake_strings; ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage build name maps @@ -1048,20 +1410,21 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) name_maps_need_build[RDI_NameMapKind_Types] = !!(params->subset_flags & RDIM_SubsetFlag_TypeNameMap); name_maps_need_build[RDI_NameMapKind_LinkNameProcedures] = !!(params->subset_flags & RDIM_SubsetFlag_LinkNameProcedureNameMap); name_maps_need_build[RDI_NameMapKind_NormalSourcePaths] = !!(params->subset_flags & RDIM_SubsetFlag_NormalSourcePathNameMap); + name_maps_need_build[RDI_NameMapKind_Units] = !!(params->subset_flags & RDIM_SubsetFlag_Units); } RDIM_BakeNameMapTopology *bake_name_maps_tops = 0; RDIM_BakeNameMap **bake_name_maps = 0; ProfScope("build name maps") { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch2 = scratch_begin(&scratch.arena, 1); //- rjf: set up RDIM_BakeNameMap ***lane_maps = 0; if(lane_idx() == 0) { - bake_name_maps_tops = push_array(arena, RDIM_BakeNameMapTopology, RDI_NameMapKind_COUNT); - bake_name_maps = push_array(arena, RDIM_BakeNameMap *, RDI_NameMapKind_COUNT); - lane_maps = push_array(scratch.arena, RDIM_BakeNameMap **, RDI_NameMapKind_COUNT); + bake_name_maps_tops = push_array(scratch.arena, RDIM_BakeNameMapTopology, RDI_NameMapKind_COUNT); + bake_name_maps = push_array(scratch.arena, RDIM_BakeNameMap *, RDI_NameMapKind_COUNT); + lane_maps = push_array(scratch2.arena, RDIM_BakeNameMap **, RDI_NameMapKind_COUNT); for EachNonZeroEnumVal(RDI_NameMapKind, k) { U64 slot_count = 0; @@ -1071,16 +1434,17 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) case RDI_NameMapKind_COUNT: {}break; #define Case(name, total_count) case RDI_NameMapKind_##name:{slot_count = ((total_count) + (total_count)/4);}break - Case(GlobalVariables, params->global_variables.total_count); - Case(ThreadVariables, params->thread_variables.total_count); - Case(Constants, params->constants.total_count); - Case(Procedures, params->procedures.total_count); - Case(LinkNameProcedures, params->procedures.total_count); + Case(GlobalVariables, all_global_variables->total_count); + Case(ThreadVariables, all_thread_variables->total_count); + Case(Constants, all_constants->total_count); + Case(Procedures, all_procedures->total_count); + Case(LinkNameProcedures, all_procedures->total_count); Case(Types, params->types.total_count); Case(NormalSourcePaths, params->src_files.total_count); + Case(Units, params->units.total_count); #undef Case } - lane_maps[k] = push_array(arena, RDIM_BakeNameMap *, lane_count()); + lane_maps[k] = push_array(scratch2.arena, RDIM_BakeNameMap *, lane_count()); bake_name_maps_tops[k].slots_count = slot_count; } } @@ -1093,7 +1457,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { if(!name_maps_need_build[k]) { continue; } RDIM_BakeNameMapTopology *top = &bake_name_maps_tops[k]; - lane_maps[k][lane_idx()] = rdim_bake_name_map_make(scratch.arena, top); + lane_maps[k][lane_idx()] = rdim_bake_name_map_make(scratch2.arena, top); RDIM_BakeNameMap *map = lane_maps[k][lane_idx()]; B32 link_names = 0; RDIM_SymbolChunkList *symbols = 0; @@ -1102,11 +1466,11 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) case RDI_NameMapKind_NULL: case RDI_NameMapKind_COUNT: {}break; - case RDI_NameMapKind_GlobalVariables: {symbols = ¶ms->global_variables;}goto symbol_name_map_build; - case RDI_NameMapKind_ThreadVariables: {symbols = ¶ms->thread_variables;}goto symbol_name_map_build; - case RDI_NameMapKind_Constants: {symbols = ¶ms->constants;}goto symbol_name_map_build; - case RDI_NameMapKind_Procedures: {symbols = ¶ms->procedures;}goto symbol_name_map_build; - case RDI_NameMapKind_LinkNameProcedures:{symbols = ¶ms->procedures; link_names = 1;}goto symbol_name_map_build; + case RDI_NameMapKind_GlobalVariables: {symbols = all_global_variables;}goto symbol_name_map_build; + case RDI_NameMapKind_ThreadVariables: {symbols = all_thread_variables;}goto symbol_name_map_build; + case RDI_NameMapKind_Constants: {symbols = all_constants;}goto symbol_name_map_build; + case RDI_NameMapKind_Procedures: {symbols = all_procedures;}goto symbol_name_map_build; + case RDI_NameMapKind_LinkNameProcedures:{symbols = all_procedures; link_names = 1;}goto symbol_name_map_build; symbol_name_map_build:; { for EachNode(n, RDIM_SymbolChunkNode, symbols->first) @@ -1141,11 +1505,24 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachInRange(n_idx, n_range) { RDIM_SrcFile *src_file = &n->v[n_idx]; - RDIM_String8 normalized_path = rdim_lower_from_str8(arena, src_file->path); + RDIM_String8 normalized_path = rdim_normalized_from_path(scratch.arena, src_file->path); rdim_bake_name_map_insert(scratch.arena, top, map, 4, normalized_path, rdim_idx_from_src_file(src_file)); } } }break; + case RDI_NameMapKind_Units: + { + RDIM_UnitChunkList *units = ¶ms->units; + for EachNode(n, RDIM_UnitChunkNode, units->first) + { + Rng1U64 n_range = lane_range(n->count); + for EachInRange(n_idx, n_range) + { + RDIM_Unit *unit = &n->v[n_idx]; + rdim_bake_name_map_insert(scratch.arena, top, map, 4, unit->unit_name, rdim_idx_from_unit(unit)); + } + } + }break; } } lane_sync(); @@ -1156,7 +1533,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachNonZeroEnumVal(RDI_NameMapKind, k) { if(!name_maps_need_build[k]) { continue; } - bake_name_maps[k] = rdim_bake_name_map_make(arena, &bake_name_maps_tops[k]); + bake_name_maps[k] = rdim_bake_name_map_make(scratch.arena, &bake_name_maps_tops[k]); } } lane_sync(); @@ -1197,26 +1574,31 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) if(map->slots[slot_idx] != 0) { RDIM_BakeNameChunkList *scratch_og_unsorted = map->slots[slot_idx]; - map->slots[slot_idx] = push_array(arena, RDIM_BakeNameChunkList, 1); - *map->slots[slot_idx] = rdim_bake_name_chunk_list_sorted_from_unsorted(arena, scratch_og_unsorted); + map->slots[slot_idx] = push_array(scratch.arena, RDIM_BakeNameChunkList, 1); + *map->slots[slot_idx] = rdim_bake_name_chunk_list_sorted_from_unsorted(scratch.arena, scratch_og_unsorted); } } } } lane_sync(); - - scratch_end(scratch); + scratch_end(scratch2); } lane_sync(); ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage build index runs // + RDIM_BakeIdxRunMap *bake_idx_runs = 0; + if(lane_idx() == 0) + { + bake_idx_runs = push_array(scratch.arena, RDIM_BakeIdxRunMap, 1); + } + lane_sync_u64(&bake_idx_runs, 0); B32 need_index_runs = (!!(params->subset_flags & RDIM_SubsetFlag_NameMaps) || !!(params->subset_flags & RDIM_SubsetFlag_Types)); if(need_index_runs) ProfScope("build index runs") { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch2 = scratch_begin(&scratch.arena, 1); //- rjf: set up per-lane outputs RDIM_BakeIdxRunMapTopology *top = 0; @@ -1224,13 +1606,13 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDIM_BakeIdxRunMapLoose *map__loose = 0; if(lane_idx() == 0) ProfScope("set up per-lane outputs") { - top = push_array(scratch.arena, RDIM_BakeIdxRunMapTopology, 1); - top->slots_count = 64 + ((params->procedures.total_count + - params->global_variables.total_count + - params->thread_variables.total_count + + top = push_array(scratch2.arena, RDIM_BakeIdxRunMapTopology, 1); + top->slots_count = 64 + ((all_procedures->total_count + + all_global_variables->total_count + + all_thread_variables->total_count + params->udts.total_count) * 3) / 4; - lane_maps__loose = push_array(scratch.arena, RDIM_BakeIdxRunMapLoose *, lane_count()); - map__loose = rdim_bake_idx_run_map_loose_make(scratch.arena, top); + lane_maps__loose = push_array(scratch2.arena, RDIM_BakeIdxRunMapLoose *, lane_count()); + map__loose = rdim_bake_idx_run_map_loose_make(scratch2.arena, top); } lane_sync_u64(&top, 0); lane_sync_u64(&lane_maps__loose, 0); @@ -1239,7 +1621,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) //- rjf: set up this lane's map ProfScope("set up this lane's map") { - lane_maps__loose[lane_idx()] = rdim_bake_idx_run_map_loose_make(scratch.arena, top); + lane_maps__loose[lane_idx()] = rdim_bake_idx_run_map_loose_make(scratch2.arena, top); } RDIM_BakeIdxRunMapLoose *lane_map = lane_maps__loose[lane_idx()]; @@ -1267,7 +1649,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { param_idx_run[idx] = (RDI_U32)rdim_idx_from_type(type->param_types[idx]); // TODO(rjf): @u64_to_u32 } - rdim_bake_idx_run_map_loose_insert(scratch.arena, top, lane_map, 4, param_idx_run, param_idx_run_count); + rdim_bake_idx_run_map_loose_insert(scratch2.arena, top, lane_map, 4, param_idx_run, param_idx_run_count); } } } @@ -1330,7 +1712,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) write_idx += 1; } } - rdim_bake_idx_run_map_loose_insert(scratch.arena, top, lane_map, 4, idxs, idxs_count); + rdim_bake_idx_run_map_loose_insert(scratch2.arena, top, lane_map, 4, idxs, idxs_count); } active_string = string; first_idx_run_node = 0; @@ -1341,7 +1723,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: new element matches the active list -> push if(active_string.size != 0 && str8_match(string, active_string, 0)) { - IdxRunNode *idx_run_n = push_array(scratch.arena, IdxRunNode, 1); + IdxRunNode *idx_run_n = push_array(scratch2.arena, IdxRunNode, 1); idx_run_n->idx = idx; SLLQueuePush(first_idx_run_node, last_idx_run_node, idx_run_n); active_idx_count += 1; @@ -1395,7 +1777,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { if(map->slots[slot_idx] != 0) { - *map->slots[slot_idx] = rdim_bake_idx_run_chunk_list_sorted_from_unsorted(arena, map->slots[slot_idx]); + *map->slots[slot_idx] = rdim_bake_idx_run_chunk_list_sorted_from_unsorted(scratch.arena, map->slots[slot_idx]); map->slots_idx_counts[slot_idx] = 0; for EachNode(n, RDIM_BakeIdxRunChunkNode, map->slots[slot_idx]->first) { @@ -1415,50 +1797,58 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDIM_BakeIdxRunMapLoose *map = map__loose; if(lane_idx() == 0) ProfScope("calc base indices, set up tight map") { - rdim_shared->bake_idx_runs.slots_count = top->slots_count; - rdim_shared->bake_idx_runs.slots = rdim_push_array(arena, RDIM_BakeIdxRunChunkList, rdim_shared->bake_idx_runs.slots_count); - rdim_shared->bake_idx_runs.slots_base_idxs = rdim_push_array(arena, RDI_U64, rdim_shared->bake_idx_runs.slots_count+1); + bake_idx_runs->slots_count = top->slots_count; + bake_idx_runs->slots = rdim_push_array(scratch.arena, RDIM_BakeIdxRunChunkList, bake_idx_runs->slots_count); + bake_idx_runs->slots_base_idxs = rdim_push_array(scratch.arena, RDI_U64, bake_idx_runs->slots_count+1); RDI_U64 encoding_idx_off = 0; for(RDI_U64 slot_idx = 0; slot_idx < top->slots_count; slot_idx += 1) { - rdim_shared->bake_idx_runs.slots_base_idxs[slot_idx] = encoding_idx_off; + bake_idx_runs->slots_base_idxs[slot_idx] = encoding_idx_off; if(map->slots[slot_idx] != 0) { encoding_idx_off += map->slots_idx_counts[slot_idx]; } } - rdim_shared->bake_idx_runs.slots_base_idxs[top->slots_count] = encoding_idx_off; + bake_idx_runs->slots_base_idxs[top->slots_count] = encoding_idx_off; } lane_sync(); ProfScope("fill tight map") { - Rng1U64 slot_range = lane_range(rdim_shared->bake_idx_runs.slots_count); + Rng1U64 slot_range = lane_range(bake_idx_runs->slots_count); for EachInRange(idx, slot_range) { if(map->slots[idx] != 0) { - rdim_memcpy_struct(&rdim_shared->bake_idx_runs.slots[idx], map->slots[idx]); + rdim_memcpy_struct(&bake_idx_runs->slots[idx], map->slots[idx]); } } } } lane_sync(); - - scratch_end(scratch); + scratch_end(scratch2); } lane_sync(); - RDIM_BakeIdxRunMap *bake_idx_runs = &rdim_shared->bake_idx_runs; ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake strings // + typedef struct BakedStrings BakedStrings; + struct BakedStrings + { + RDI_U32 *string_offs; + RDI_U64 string_offs_count; + RDI_U8 *string_data; + RDI_U64 string_data_size; + }; + BakedStrings *baked_strings = 0; ProfScope("bake strings") { // rjf: set up if(lane_idx() == 0) ProfScope("set up; lay out strings") { - rdim_shared->baked_strings.string_offs_count = bake_strings->total_count + 1; - rdim_shared->baked_strings.string_offs = rdim_push_array(arena, RDI_U32, rdim_shared->baked_strings.string_offs_count); + baked_strings = push_array(scratch.arena, BakedStrings, 1); + baked_strings->string_offs_count = bake_strings->total_count + 1; + baked_strings->string_offs = rdim_push_array(arena, RDI_U32, baked_strings->string_offs_count); RDI_U64 off_cursor = 0; for EachIndex(slot_idx, bake_strings->slots_count) { @@ -1468,15 +1858,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { RDIM_BakeString *src = &n->v[n_idx]; U64 dst_idx = bake_strings->slots_base_idxs[slot_idx] + n->base_idx + n_idx + 1; - rdim_shared->baked_strings.string_offs[dst_idx] = off_cursor; + baked_strings->string_offs[dst_idx] = off_cursor; off_cursor += src->string.size; } } } - rdim_shared->baked_strings.string_data_size = off_cursor; - rdim_shared->baked_strings.string_data = rdim_push_array(arena, RDI_U8, rdim_shared->baked_strings.string_data_size); + baked_strings->string_data_size = off_cursor; + baked_strings->string_data = rdim_push_array(arena, RDI_U8, baked_strings->string_data_size); } - lane_sync(); + lane_sync_u64(&baked_strings, 0); // rjf: wide fill string data ProfScope("wide fill") @@ -1490,26 +1880,37 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { RDIM_BakeString *src = &n->v[n_idx]; U64 dst_idx = bake_strings->slots_base_idxs[slot_idx] + n->base_idx + n_idx + 1; - U64 dst_off = rdim_shared->baked_strings.string_offs[dst_idx]; - rdim_memcpy(rdim_shared->baked_strings.string_data + dst_off, src->string.str, src->string.size); + U64 dst_off = baked_strings->string_offs[dst_idx]; + rdim_memcpy(baked_strings->string_data + dst_off, src->string.str, src->string.size); } } } } } lane_sync(); - RDIM_StringBakeResult baked_strings = rdim_shared->baked_strings; ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake idx runs // + typedef struct BakedIdxRuns BakedIdxRuns; + struct BakedIdxRuns + { + RDI_U32 *idx_runs; + RDI_U64 idx_count; + }; + BakedIdxRuns *baked_idx_runs = 0; + if(lane_idx() == 0) + { + baked_idx_runs = push_array(scratch.arena, BakedIdxRuns, 1); + } + lane_sync_u64(&baked_idx_runs, 0); if(need_index_runs) ProfScope("bake idx runs") { // rjf: set up if(lane_idx() == 0) { - rdim_shared->baked_idx_runs.idx_count = bake_idx_runs->slots_base_idxs[bake_idx_runs->slots_count]; - rdim_shared->baked_idx_runs.idx_runs = push_array(arena, RDI_U32, rdim_shared->baked_idx_runs.idx_count); + baked_idx_runs->idx_count = bake_idx_runs->slots_base_idxs[bake_idx_runs->slots_count]; + baked_idx_runs->idx_runs = push_array(arena, RDI_U32, baked_idx_runs->idx_count); } lane_sync(); @@ -1521,10 +1922,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDI_U64 off = bake_idx_runs->slots_base_idxs[slot_idx]; for EachNode(n, RDIM_BakeIdxRunChunkNode, bake_idx_runs->slots[slot_idx].first) { - StaticAssert(sizeof(rdim_shared->baked_idx_runs.idx_runs[0]) == sizeof(n->v[0].idxes[0]), idx_run_size_check); + StaticAssert(sizeof(baked_idx_runs->idx_runs[0]) == sizeof(n->v[0].idxes[0]), idx_run_size_check); for EachIndex(n_idx, n->count) { - rdim_memcpy(rdim_shared->baked_idx_runs.idx_runs + off, n->v[n_idx].idxes, sizeof(n->v[n_idx].idxes[0]) * n->v[n_idx].count); + rdim_memcpy(baked_idx_runs->idx_runs + off, n->v[n_idx].idxes, sizeof(n->v[n_idx].idxes[0]) * n->v[n_idx].count); off += n->v[n_idx].count; } } @@ -1532,25 +1933,51 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } lane_sync(); - RDIM_IndexRunBakeResult baked_idx_runs = rdim_shared->baked_idx_runs; ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake name maps // - ProfScope("bake name maps") + typedef struct BakedNameMaps BakedNameMaps; + struct BakedNameMaps { + RDI_NameMap *name_maps; + RDI_U64 name_maps_count; + RDI_NameMapBucket *buckets; + RDI_U64 buckets_count; + RDI_NameMapNode *nodes; + RDI_U64 nodes_count; + }; + BakedNameMaps *baked_name_maps = 0; + if(lane_idx() == 0) + { + baked_name_maps = push_array(scratch.arena, BakedNameMaps, 1); + } + lane_sync_u64(&baked_name_maps, 0); + if(params->subset_flags & RDIM_SubsetFlag_NameMaps) ProfScope("bake name maps") + { + Temp scratch2 = scratch_begin(&scratch.arena, 1); + // rjf: count unique names in all name maps; lay out baked nodes + U64 **lane_name_map_node_counts = 0; // [RDI_NameMapKind_COUNT][..] + U64 **lane_name_map_node_offs = 0; // [RDI_NameMapKind_COUNT][..] + U64 *name_map_node_counts = 0; // [RDI_NameMapKind_COUNT] + U64 total_name_map_node_count = 0; ProfScope("count unique names in all name maps; lay out baked nodes") { if(lane_idx() == 0) { + lane_name_map_node_counts = push_array(scratch2.arena, U64 *, RDI_NameMapKind_COUNT); + lane_name_map_node_offs = push_array(scratch2.arena, U64 *, RDI_NameMapKind_COUNT); + name_map_node_counts = push_array(scratch2.arena, U64, RDI_NameMapKind_COUNT); for EachNonZeroEnumVal(RDI_NameMapKind, k) { - rdim_shared->lane_name_map_node_counts[k] = push_array(arena, U64, lane_count()); - rdim_shared->lane_name_map_node_offs[k] = push_array(arena, U64, lane_count()); + lane_name_map_node_counts[k] = push_array(scratch2.arena, U64, lane_count()); + lane_name_map_node_offs[k] = push_array(scratch2.arena, U64, lane_count()); } } - lane_sync(); + lane_sync_u64(&lane_name_map_node_counts, 0); + lane_sync_u64(&lane_name_map_node_offs, 0); + lane_sync_u64(&name_map_node_counts, 0); for EachNonZeroEnumVal(RDI_NameMapKind, k) { if(!name_maps_need_build[k]) { continue; } @@ -1574,7 +2001,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } } - rdim_shared->lane_name_map_node_counts[k][lane_idx()] += total_unique_name_count; + lane_name_map_node_counts[k][lane_idx()] += total_unique_name_count; } } } @@ -1586,44 +2013,39 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDI_U64 node_off = 0; for EachIndex(l_idx, lane_count()) { - rdim_shared->name_map_node_counts[k] += rdim_shared->lane_name_map_node_counts[k][l_idx]; - rdim_shared->lane_name_map_node_offs[k][l_idx] = node_off; - node_off += rdim_shared->lane_name_map_node_counts[k][l_idx]; + name_map_node_counts[k] += lane_name_map_node_counts[k][l_idx]; + lane_name_map_node_offs[k][l_idx] = node_off; + node_off += lane_name_map_node_counts[k][l_idx]; } - rdim_shared->total_name_map_node_count += rdim_shared->name_map_node_counts[k]; + total_name_map_node_count += name_map_node_counts[k]; } } + lane_sync_u64(&total_name_map_node_count, 0); } lane_sync(); // rjf: setup - ProfScope("setup") + ProfScope("setup") if(lane_idx() == 0) { - if(lane_idx() == lane_from_task_idx(0)) + baked_name_maps->name_maps_count = RDI_NameMapKind_COUNT; + baked_name_maps->name_maps = push_array(arena, RDI_NameMap, baked_name_maps->name_maps_count); + RDI_U32 bucket_off = 0; + RDI_U32 node_off = 0; + for EachNonZeroEnumVal(RDI_NameMapKind, k) { - rdim_shared->baked_top_level_name_maps.name_maps_count = RDI_NameMapKind_COUNT; - rdim_shared->baked_top_level_name_maps.name_maps = push_array(arena, RDI_NameMap, rdim_shared->baked_top_level_name_maps.name_maps_count); - RDI_U32 bucket_off = 0; - RDI_U32 node_off = 0; - for EachNonZeroEnumVal(RDI_NameMapKind, k) - { - rdim_shared->baked_top_level_name_maps.name_maps[k].bucket_base_idx = bucket_off; - rdim_shared->baked_top_level_name_maps.name_maps[k].node_base_idx = node_off; - rdim_shared->baked_top_level_name_maps.name_maps[k].bucket_count = (RDI_U32)bake_name_maps_tops[k].slots_count; // TODO(rjf): @u64_to_u32 - rdim_shared->baked_top_level_name_maps.name_maps[k].node_count = (RDI_U32)rdim_shared->name_map_node_counts[k]; // TODO(rjf): @u64_to_u32 - bucket_off += rdim_shared->baked_top_level_name_maps.name_maps[k].bucket_count; - node_off += rdim_shared->baked_top_level_name_maps.name_maps[k].node_count; - } - rdim_shared->baked_name_maps.buckets_count = bucket_off; - rdim_shared->baked_name_maps.buckets = push_array(arena, RDI_NameMapBucket, rdim_shared->baked_name_maps.buckets_count); - } - if(lane_idx() == lane_from_task_idx(1)) - { - rdim_shared->baked_name_maps.nodes_count = rdim_shared->total_name_map_node_count; - rdim_shared->baked_name_maps.nodes = push_array(arena, RDI_NameMapNode, rdim_shared->baked_name_maps.nodes_count); + baked_name_maps->name_maps[k].bucket_base_idx = bucket_off; + baked_name_maps->name_maps[k].node_base_idx = node_off; + baked_name_maps->name_maps[k].bucket_count = (RDI_U32)bake_name_maps_tops[k].slots_count; // TODO(rjf): @u64_to_u32 + baked_name_maps->name_maps[k].node_count = (RDI_U32)name_map_node_counts[k]; // TODO(rjf): @u64_to_u32 + bucket_off += baked_name_maps->name_maps[k].bucket_count; + node_off += baked_name_maps->name_maps[k].node_count; } + baked_name_maps->buckets_count = bucket_off; + baked_name_maps->buckets = push_array(arena, RDI_NameMapBucket, baked_name_maps->buckets_count); + baked_name_maps->nodes_count = total_name_map_node_count; + baked_name_maps->nodes = push_array(arena, RDI_NameMapNode, baked_name_maps->nodes_count); } - lane_sync(); + lane_sync_u64(&baked_name_maps, 0); // rjf: wide fill baked name maps ProfScope("wide fill baked name maps") @@ -1631,13 +2053,13 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachNonZeroEnumVal(RDI_NameMapKind, k) ProfScope("wide fill (%.*s)", str8_varg(rdi_string_from_name_map_kind(k))) { if(!name_maps_need_build[k]) { continue; } - RDI_U64 write_node_off = rdim_shared->lane_name_map_node_offs[k][lane_idx()]; + RDI_U64 write_node_off = lane_name_map_node_offs[k][lane_idx()]; RDIM_BakeNameMapTopology *top = &bake_name_maps_tops[k]; U64 slots_count = top->slots_count; RDIM_BakeNameMap *src_map = bake_name_maps[k]; - RDI_NameMap *dst_map = &rdim_shared->baked_top_level_name_maps.name_maps[k]; - RDI_NameMapBucket *dst_buckets = rdim_shared->baked_name_maps.buckets + dst_map->bucket_base_idx; - RDI_NameMapNode *dst_nodes = rdim_shared->baked_name_maps.nodes + dst_map->node_base_idx; + RDI_NameMap *dst_map = &baked_name_maps->name_maps[k]; + RDI_NameMapBucket *dst_buckets = baked_name_maps->buckets + dst_map->bucket_base_idx; + RDI_NameMapNode *dst_nodes = baked_name_maps->nodes + dst_map->node_base_idx; Rng1U64 slot_range = lane_range(slots_count); for EachInRange(slot_idx, slot_range) { @@ -1646,7 +2068,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) RDI_NameMapBucket *dst_bucket = &dst_buckets[slot_idx]; dst_bucket->first_node = write_node_off; { - Temp scratch = scratch_begin(&arena, 1); + Temp scratch2 = scratch_begin(&scratch.arena, 1); typedef struct IdxRunNode IdxRunNode; struct IdxRunNode { @@ -1685,7 +2107,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { // rjf: flatten idxes RDI_U64 idxs_count = active_idx_count; - RDI_U32 *idxs = rdim_push_array(scratch.arena, RDI_U32, idxs_count); + RDI_U32 *idxs = rdim_push_array(scratch2.arena, RDI_U32, idxs_count); { U64 write_idx = 0; for EachNode(idx_run_n, IdxRunNode, first_idx_run_node) @@ -1716,13 +2138,13 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) first_idx_run_node = 0; last_idx_run_node = 0; active_idx_count = 0; - temp_end(scratch); + temp_end(scratch2); } // rjf: hash matches the active list -> push if(active_string.size != 0 && str8_match(active_string, string, 0)) { - IdxRunNode *idx_run_n = push_array(scratch.arena, IdxRunNode, 1); + IdxRunNode *idx_run_n = push_array(scratch2.arena, IdxRunNode, 1); idx_run_n->idx = idx; SLLQueuePush(first_idx_run_node, last_idx_run_node, idx_run_n); active_idx_count += 1; @@ -1737,24 +2159,28 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) break; } } - scratch_end(scratch); + scratch_end(scratch2); } } } } + + lane_sync(); + scratch_end(scratch2); } lane_sync(); ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage gather line-bucketed src line map data // + RDIM_BakeSrcLineMap *bake_src_line_maps = 0; ProfScope("gather line-bucketed src line map data") { if(lane_idx() == 0) { - rdim_shared->bake_src_line_maps = push_array(arena, RDIM_BakeSrcLineMap, params->src_files.total_count); + bake_src_line_maps = push_array(scratch.arena, RDIM_BakeSrcLineMap, params->src_files.total_count); } - lane_sync(); + lane_sync_u64(&bake_src_line_maps, 0); { for EachNode(n, RDIM_SrcFileChunkNode, params->src_files.first) { @@ -1762,11 +2188,11 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachInRange(n_idx, range) { U64 file_idx = n->base_idx + n_idx; - RDIM_BakeSrcLineMap *map = &rdim_shared->bake_src_line_maps[file_idx]; + RDIM_BakeSrcLineMap *map = &bake_src_line_maps[file_idx]; // rjf: set up map - map->slots_count = n->v[n_idx].total_line_count; - map->slots = push_array(arena, RDIM_BakeSrcLineMapSlot, map->slots_count); + map->slots_count = Max(n->v[n_idx].total_line_count, 1); + map->slots = push_array(scratch.arena, RDIM_BakeSrcLineMapSlot, map->slots_count); // rjf: gather line-bucketed info for EachNode(frag, RDIM_SrcFileLineMapFragment, n->v[n_idx].first_line_map_fragment) @@ -1795,7 +2221,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: construct new node if unseen if(line_node == 0) { - line_node = push_array(arena, RDIM_BakeSrcLineMapNode, 1); + line_node = push_array(scratch.arena, RDIM_BakeSrcLineMapNode, 1); SLLQueuePush(map->slots[slot_idx].first, map->slots[slot_idx].last, line_node); line_node->line_num = line_num; map->line_count += 1; @@ -1803,7 +2229,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) // rjf: push this voff range RDIM_Rng1U64 voff_range = {voff_first, voff_opl}; - rdim_rng1u64_list_push(arena, &line_node->voff_ranges, voff_range); + rdim_rng1u64_list_push(scratch.arena, &line_node->voff_ranges, voff_range); map->voff_range_count += 1; } } @@ -1816,27 +2242,31 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage sort line-bucketed src line map data // + RDIM_SortKey **bake_src_line_map_keys = 0; ProfScope("sort line-bucketed src line map data") { U64 map_count = params->src_files.total_count; if(lane_idx() == 0) { - rdim_shared->bake_src_line_map_keys = push_array(arena, RDIM_SortKey *, map_count); + bake_src_line_map_keys = push_array(scratch.arena, RDIM_SortKey *, map_count); } - lane_sync(); + lane_sync_u64(&bake_src_line_map_keys, 0); + U64 map_take_idx_ = 0; + U64 *map_take_idx = &map_take_idx_; + lane_sync_u64(&map_take_idx, 0); for(;;) { - U64 map_num = ins_atomic_u64_inc_eval(&rdim_shared->bake_src_line_map_take_counter); + U64 map_num = ins_atomic_u64_inc_eval(map_take_idx); if(map_num < 1 || map_count < map_num) { break; } U64 map_idx = map_num-1; - RDIM_BakeSrcLineMap *map = &rdim_shared->bake_src_line_maps[map_idx]; + RDIM_BakeSrcLineMap *map = &bake_src_line_maps[map_idx]; // rjf: gather keys - rdim_shared->bake_src_line_map_keys[map_idx] = push_array_no_zero(arena, RDIM_SortKey, map->line_count); - RDIM_SortKey *keys = rdim_shared->bake_src_line_map_keys[map_idx]; + bake_src_line_map_keys[map_idx] = push_array_no_zero(scratch.arena, RDIM_SortKey, map->line_count); + RDIM_SortKey *keys = bake_src_line_map_keys[map_idx]; { U64 key_idx = 0; for EachIndex(slot_idx, map->slots_count) @@ -1855,29 +2285,47 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) radsort(keys, map->line_count, rdim_sort_key_is_before); } } + lane_sync(); } ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage compute src file / src file line map layout // + typedef struct SrcMapLayout SrcMapLayout; + struct SrcMapLayout + { + RDI_U64 *lane_chunk_src_file_num_counts; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_voff_counts; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_map_counts; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_num_offs; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_voff_offs; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_map_offs; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_checksum_counts[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count] + RDI_U64 *lane_chunk_src_file_checksum_offs[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count] + U64 total_checksum_counts[RDI_ChecksumKind_COUNT]; + RDI_U64 total_src_map_line_count; + RDI_U64 total_src_map_voff_count; + }; + SrcMapLayout *src_map_layout = 0; ProfScope("compute src file / src file line map layout") { // rjf: set up if(lane_idx() == 0) { - rdim_shared->lane_chunk_src_file_num_counts = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_voff_counts = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_map_counts = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_num_offs = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_voff_offs = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_map_offs = push_array(arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout = push_array(scratch.arena, SrcMapLayout, 1); + src_map_layout->lane_chunk_src_file_num_counts = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_voff_counts = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_map_counts = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_num_offs = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_voff_offs = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_map_offs = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); for EachEnumVal(RDI_ChecksumKind, k) { - rdim_shared->lane_chunk_src_file_checksum_counts[k] = push_array(arena, U64, lane_count()*params->src_files.chunk_count); - rdim_shared->lane_chunk_src_file_checksum_offs[k] = push_array(arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_checksum_counts[k] = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); + src_map_layout->lane_chunk_src_file_checksum_offs[k] = push_array(scratch.arena, U64, lane_count()*params->src_files.chunk_count); } } - lane_sync(); + lane_sync_u64(&src_map_layout, 0); // rjf: wide count { @@ -1888,15 +2336,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 slot_idx = lane_idx()*params->src_files.chunk_count + chunk_idx; for EachInRange(idx, range) { - RDIM_BakeSrcLineMap *map = &rdim_shared->bake_src_line_maps[n->base_idx + idx]; - rdim_shared->lane_chunk_src_file_num_counts[slot_idx] += map->line_count; - rdim_shared->lane_chunk_src_file_voff_counts[slot_idx] += map->voff_range_count; - rdim_shared->lane_chunk_src_file_map_counts[slot_idx] += !!map->line_count; + RDIM_BakeSrcLineMap *map = &bake_src_line_maps[n->base_idx + idx]; + src_map_layout->lane_chunk_src_file_num_counts[slot_idx] += map->line_count; + src_map_layout->lane_chunk_src_file_voff_counts[slot_idx] += map->voff_range_count; + src_map_layout->lane_chunk_src_file_map_counts[slot_idx] += !!map->line_count; RDI_ChecksumKind k = n->v[idx].checksum_kind; String8 val = n->v[idx].checksum; if(RDI_ChecksumKind_NULL < k && k < RDI_ChecksumKind_COUNT && val.size != 0) { - rdim_shared->lane_chunk_src_file_checksum_counts[k][slot_idx] += 1; + src_map_layout->lane_chunk_src_file_checksum_counts[k][slot_idx] += 1; } } chunk_idx += 1; @@ -1917,25 +2365,25 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachIndex(l_idx, lane_count()) { U64 slot_idx = l_idx*params->src_files.chunk_count + chunk_idx; - rdim_shared->lane_chunk_src_file_num_offs[slot_idx] = num_layout_off; - rdim_shared->lane_chunk_src_file_voff_offs[slot_idx] = voff_layout_off; - rdim_shared->lane_chunk_src_file_map_offs[slot_idx] = map_layout_off; - num_layout_off += rdim_shared->lane_chunk_src_file_num_counts[slot_idx]; - voff_layout_off += rdim_shared->lane_chunk_src_file_voff_counts[slot_idx]; - map_layout_off += rdim_shared->lane_chunk_src_file_map_counts[slot_idx]; + src_map_layout->lane_chunk_src_file_num_offs[slot_idx] = num_layout_off; + src_map_layout->lane_chunk_src_file_voff_offs[slot_idx] = voff_layout_off; + src_map_layout->lane_chunk_src_file_map_offs[slot_idx] = map_layout_off; + num_layout_off += src_map_layout->lane_chunk_src_file_num_counts[slot_idx]; + voff_layout_off += src_map_layout->lane_chunk_src_file_voff_counts[slot_idx]; + map_layout_off += src_map_layout->lane_chunk_src_file_map_counts[slot_idx]; for EachEnumVal(RDI_ChecksumKind, k) { - rdim_shared->lane_chunk_src_file_checksum_offs[k][slot_idx] = checksum_layout_offs[k]; - checksum_layout_offs[k] += rdim_shared->lane_chunk_src_file_checksum_counts[k][slot_idx]; + src_map_layout->lane_chunk_src_file_checksum_offs[k][slot_idx] = checksum_layout_offs[k]; + checksum_layout_offs[k] += src_map_layout->lane_chunk_src_file_checksum_counts[k][slot_idx]; } } chunk_idx += 1; } - rdim_shared->total_src_map_line_count = num_layout_off; - rdim_shared->total_src_map_voff_count = voff_layout_off; + src_map_layout->total_src_map_line_count = num_layout_off; + src_map_layout->total_src_map_voff_count = voff_layout_off; for EachEnumVal(RDI_ChecksumKind, k) { - rdim_shared->total_checksum_counts[k] = checksum_layout_offs[k]; + src_map_layout->total_checksum_counts[k] = checksum_layout_offs[k]; } } } @@ -1944,23 +2392,39 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake src files // + typedef struct BakedSrcFiles BakedSrcFiles; + struct BakedSrcFiles + { + RDI_SourceFile *source_files; + RDI_U64 source_files_count; + RDI_SourceLineMap *source_line_maps; + RDI_U64 source_line_maps_count; + RDI_U32 *source_line_map_nums; + RDI_U32 *source_line_map_rngs; + RDI_U64 *source_line_map_voffs; + RDI_U64 source_line_map_nums_count; + RDI_U64 source_line_map_rngs_count; + RDI_U64 source_line_map_voffs_count; + }; + BakedSrcFiles *baked_src_files = 0; ProfScope("bake src files") { //- rjf: set up if(lane_idx() == 0) { - rdim_shared->baked_src_files.source_files_count = params->src_files.total_count+1; - rdim_shared->baked_src_files.source_files = push_array(arena, RDI_SourceFile, rdim_shared->baked_src_files.source_files_count); - rdim_shared->baked_src_files.source_line_maps_count = params->src_files.source_line_map_count+1; - rdim_shared->baked_src_files.source_line_maps = push_array(arena, RDI_SourceLineMap, rdim_shared->baked_src_files.source_line_maps_count); - rdim_shared->baked_src_files.source_line_map_nums_count = rdim_shared->total_src_map_line_count; - rdim_shared->baked_src_files.source_line_map_nums = push_array(arena, RDI_U32, rdim_shared->baked_src_files.source_line_map_nums_count); - rdim_shared->baked_src_files.source_line_map_rngs_count = rdim_shared->total_src_map_line_count + rdim_shared->baked_src_files.source_line_maps_count; - rdim_shared->baked_src_files.source_line_map_rngs = push_array(arena, RDI_U32, rdim_shared->baked_src_files.source_line_map_rngs_count); - rdim_shared->baked_src_files.source_line_map_voffs_count = rdim_shared->total_src_map_voff_count; - rdim_shared->baked_src_files.source_line_map_voffs = push_array(arena, RDI_U64, rdim_shared->baked_src_files.source_line_map_voffs_count); + baked_src_files = push_array(scratch.arena, BakedSrcFiles, 1); + baked_src_files->source_files_count = params->src_files.total_count+1; + baked_src_files->source_files = push_array(arena, RDI_SourceFile, baked_src_files->source_files_count); + baked_src_files->source_line_maps_count = params->src_files.source_line_map_count+1; + baked_src_files->source_line_maps = push_array(arena, RDI_SourceLineMap, baked_src_files->source_line_maps_count); + baked_src_files->source_line_map_nums_count = src_map_layout->total_src_map_line_count; + baked_src_files->source_line_map_nums = push_array(arena, RDI_U32, baked_src_files->source_line_map_nums_count); + baked_src_files->source_line_map_rngs_count = src_map_layout->total_src_map_line_count + baked_src_files->source_line_maps_count; + baked_src_files->source_line_map_rngs = push_array(arena, RDI_U32, baked_src_files->source_line_map_rngs_count); + baked_src_files->source_line_map_voffs_count = src_map_layout->total_src_map_voff_count; + baked_src_files->source_line_map_voffs = push_array(arena, RDI_U64, baked_src_files->source_line_map_voffs_count); } - lane_sync(); + lane_sync_u64(&baked_src_files, 0); //- rjf: bake U64 chunk_idx = 0; @@ -1968,36 +2432,36 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { Rng1U64 range = lane_range(n->count); U64 slot_idx = lane_idx()*params->src_files.chunk_count + chunk_idx; - U64 dst_num_off = rdim_shared->lane_chunk_src_file_num_offs[slot_idx]; - U64 dst_map_off = rdim_shared->lane_chunk_src_file_map_offs[slot_idx]; - U64 dst_voff_off = rdim_shared->lane_chunk_src_file_voff_offs[slot_idx]; + U64 dst_num_off = src_map_layout->lane_chunk_src_file_num_offs[slot_idx]; + U64 dst_map_off = src_map_layout->lane_chunk_src_file_map_offs[slot_idx]; + U64 dst_voff_off = src_map_layout->lane_chunk_src_file_voff_offs[slot_idx]; U64 dst_rng_off = dst_num_off + dst_map_off; U64 dst_checksums_off[RDI_ChecksumKind_COUNT] = {0}; for EachEnumVal(RDI_ChecksumKind, k) { - dst_checksums_off[k] = 1 + rdim_shared->lane_chunk_src_file_checksum_offs[k][slot_idx]; + dst_checksums_off[k] = 1 + src_map_layout->lane_chunk_src_file_checksum_offs[k][slot_idx]; } for EachInRange(idx, range) { - RDIM_BakeSrcLineMap *map = &rdim_shared->bake_src_line_maps[n->base_idx + idx]; - RDIM_SortKey *sorted_map_keys = rdim_shared->bake_src_line_map_keys[n->base_idx + idx]; + RDIM_BakeSrcLineMap *map = &bake_src_line_maps[n->base_idx + idx]; + RDIM_SortKey *sorted_map_keys = bake_src_line_map_keys[n->base_idx + idx]; RDIM_SrcFile *src = &n->v[idx]; - RDI_SourceFile *dst = &rdim_shared->baked_src_files.source_files[n->base_idx + idx + 1]; - RDI_SourceLineMap *dst_map = &rdim_shared->baked_src_files.source_line_maps[dst_map_off]; - RDI_U32 *dst_nums = &rdim_shared->baked_src_files.source_line_map_nums[dst_num_off]; - RDI_U32 *dst_rngs = &rdim_shared->baked_src_files.source_line_map_rngs[dst_rng_off]; - RDI_U64 *dst_voffs = &rdim_shared->baked_src_files.source_line_map_voffs[dst_voff_off]; + RDI_SourceFile *dst = &baked_src_files->source_files[n->base_idx + idx + 1]; + RDI_SourceLineMap *dst_map = &baked_src_files->source_line_maps[dst_map_off]; + RDI_U32 *dst_nums = &baked_src_files->source_line_map_nums[dst_num_off]; + RDI_U32 *dst_rngs = &baked_src_files->source_line_map_rngs[dst_rng_off]; + RDI_U64 *dst_voffs = &baked_src_files->source_line_map_voffs[dst_voff_off]; //- rjf: fill file info - Temp scratch = scratch_begin(&arena, 1); - String8 normalized_path = rdim_lower_from_str8(scratch.arena, src->path); + Temp scratch2 = scratch_begin(&scratch.arena, 1); + String8 normalized_path = rdim_normalized_from_path(scratch2.arena, src->path); B32 has_checksum = (RDI_ChecksumKind_NULL < src->checksum_kind && src->checksum_kind < RDI_ChecksumKind_COUNT && src->checksum.size != 0); dst->file_path_node_idx = rdim_bake_path_node_idx_from_string(path_tree, src->path); dst->normal_full_path_string_idx = rdim_bake_idx_from_string(bake_strings, normalized_path); dst->source_line_map_idx = src->total_line_count ? dst_map_off : 0; dst->checksum_kind = src->checksum_kind; dst->checksum_idx = has_checksum ? dst_checksums_off[dst->checksum_kind] : 0; - scratch_end(scratch); + scratch_end(scratch2); //- rjf: advance checksum offset for this kind if(has_checksum) @@ -2044,21 +2508,35 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake checksums // + typedef struct BakedChecksums BakedChecksums; + struct BakedChecksums + { + RDI_MD5 *md5s; + RDI_U64 md5s_count; + RDI_SHA1 *sha1s; + RDI_U64 sha1s_count; + RDI_SHA256 *sha256s; + RDI_U64 sha256s_count; + RDI_U64 *timestamps; + RDI_U64 timestamps_count; + }; + BakedChecksums *baked_checksums = 0; ProfScope("bake checksums") { // rjf: allocate if(lane_idx() == 0) { - rdim_shared->baked_checksums.md5s_count = rdim_shared->total_checksum_counts[RDI_ChecksumKind_MD5] + 1; - rdim_shared->baked_checksums.sha1s_count = rdim_shared->total_checksum_counts[RDI_ChecksumKind_SHA1] + 1; - rdim_shared->baked_checksums.sha256s_count = rdim_shared->total_checksum_counts[RDI_ChecksumKind_SHA256] + 1; - rdim_shared->baked_checksums.timestamps_count = rdim_shared->total_checksum_counts[RDI_ChecksumKind_Timestamp] + 1; - rdim_shared->baked_checksums.md5s = push_array(arena, RDI_MD5, rdim_shared->baked_checksums.md5s_count); - rdim_shared->baked_checksums.sha1s = push_array(arena, RDI_SHA1, rdim_shared->baked_checksums.sha1s_count); - rdim_shared->baked_checksums.sha256s = push_array(arena, RDI_SHA256, rdim_shared->baked_checksums.sha256s_count); - rdim_shared->baked_checksums.timestamps = push_array(arena, RDI_U64, rdim_shared->baked_checksums.timestamps_count); + baked_checksums = push_array(scratch.arena, BakedChecksums, 1); + baked_checksums->md5s_count = src_map_layout->total_checksum_counts[RDI_ChecksumKind_MD5] + 1; + baked_checksums->sha1s_count = src_map_layout->total_checksum_counts[RDI_ChecksumKind_SHA1] + 1; + baked_checksums->sha256s_count = src_map_layout->total_checksum_counts[RDI_ChecksumKind_SHA256] + 1; + baked_checksums->timestamps_count = src_map_layout->total_checksum_counts[RDI_ChecksumKind_Timestamp] + 1; + baked_checksums->md5s = push_array(arena, RDI_MD5, baked_checksums->md5s_count); + baked_checksums->sha1s = push_array(arena, RDI_SHA1, baked_checksums->sha1s_count); + baked_checksums->sha256s = push_array(arena, RDI_SHA256, baked_checksums->sha256s_count); + baked_checksums->timestamps = push_array(arena, RDI_U64, baked_checksums->timestamps_count); } - lane_sync(); + lane_sync_u64(&baked_checksums, 0); // rjf: fill { @@ -2070,7 +2548,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 dst_offs[RDI_ChecksumKind_COUNT] = {0}; for EachEnumVal(RDI_ChecksumKind, k) { - dst_offs[k] = 1 + rdim_shared->lane_chunk_src_file_checksum_offs[k][slot_idx]; + dst_offs[k] = 1 + src_map_layout->lane_chunk_src_file_checksum_offs[k][slot_idx]; } for EachInRange(n_idx, range) { @@ -2083,7 +2561,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) case RDI_ChecksumKind_NULL: case RDI_ChecksumKind_COUNT: {}break; -#define Case(name, table_name) case RDI_ChecksumKind_##name:{MemoryCopy(&rdim_shared->baked_checksums.table_name[dst_offs[k]], val.str, Min(val.size, sizeof(rdim_shared->baked_checksums.table_name[0])));}break +#define Case(name, table_name) case RDI_ChecksumKind_##name:{MemoryCopy(&baked_checksums->table_name[dst_offs[k]], val.str, Min(val.size, sizeof(baked_checksums->table_name[0])));}break Case(MD5, md5s); Case(SHA1, sha1s); Case(SHA256, sha256s); @@ -2099,20 +2577,81 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } lane_sync(); + ////////////////////////////////////////////////////////////// + //- rjf: @rdim_bake_stage bake namespaces + // + typedef struct BakedNamespaces BakedNamespaces; + struct BakedNamespaces + { + RDI_Namespace *namespaces; + RDI_U64 namespaces_count; + }; + BakedNamespaces *baked_namespaces = 0; + ProfScope("bake namespaces") + { + // rjf: allocate + if(lane_idx() == 0) + { + baked_namespaces = push_array(scratch.arena, BakedNamespaces, 1); + baked_namespaces->namespaces_count = params->namespaces.total_count + 1; + baked_namespaces->namespaces = push_array(arena, RDI_Namespace, baked_namespaces->namespaces_count); + } + lane_sync_u64(&baked_namespaces, 0); + + // rjf: fill + for EachNode(n, RDIM_NamespaceChunkNode, params->namespaces.first) + { + Rng1U64 range = lane_range(n->count); + for EachInRange(n_idx, range) + { + U64 dst_idx = n->base_idx + n_idx + 1; + RDIM_Namespace *src = &n->v[n_idx]; + RDI_Namespace *dst = &baked_namespaces->namespaces[dst_idx]; + dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); + if(src->parent_namespace != 0) + { + dst->container_flags |= RDI_ContainerKind_Namespace; + dst->container_idx = rdim_idx_from_namespace(src->parent_namespace); + } + else if(src->parent_scope != 0) + { + dst->container_flags |= RDI_ContainerKind_Scope; + dst->container_idx = rdim_idx_from_scope(src->parent_scope); + } + else if(src->parent_type != 0 && src->parent_type->udt != 0) + { + dst->container_flags |= RDI_ContainerKind_Type; + dst->container_idx = rdim_idx_from_udt(src->parent_type->udt); + } + } + } + } + lane_sync(); + ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage compute lane UDT member/enum-val layouts // + typedef struct MemberLayout MemberLayout; + struct MemberLayout + { + RDI_U64 *member_chunk_lane_counts; // [lane_count * udt_chunk_count] + RDI_U64 *member_chunk_lane_offs; // [lane_count * udt_chunk_count] + RDI_U64 *enum_val_chunk_lane_counts; // [lane_count * udt_chunk_count] + RDI_U64 *enum_val_chunk_lane_offs; // [lane_count * udt_chunk_count] + }; + MemberLayout *mem_layout = 0; ProfScope("compute lane UDT member/enum-val layouts") { // rjf: allocate if(lane_idx() == 0) { - rdim_shared->member_chunk_lane_counts = push_array(arena, U64, lane_count() * params->udts.chunk_count); - rdim_shared->member_chunk_lane_offs = push_array(arena, U64, lane_count() * params->udts.chunk_count); - rdim_shared->enum_val_chunk_lane_counts = push_array(arena, U64, lane_count() * params->udts.chunk_count); - rdim_shared->enum_val_chunk_lane_offs = push_array(arena, U64, lane_count() * params->udts.chunk_count); + mem_layout = push_array(scratch.arena, MemberLayout, 1); + mem_layout->member_chunk_lane_counts = push_array(scratch.arena, U64, lane_count() * params->udts.chunk_count); + mem_layout->member_chunk_lane_offs = push_array(scratch.arena, U64, lane_count() * params->udts.chunk_count); + mem_layout->enum_val_chunk_lane_counts = push_array(scratch.arena, U64, lane_count() * params->udts.chunk_count); + mem_layout->enum_val_chunk_lane_offs = push_array(scratch.arena, U64, lane_count() * params->udts.chunk_count); } - lane_sync(); + lane_sync_u64(&mem_layout, 0); // rjf: count { @@ -2123,8 +2662,8 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachInRange(idx, range) { U64 slot_idx = lane_idx()*params->udts.chunk_count + chunk_idx; - rdim_shared->member_chunk_lane_counts[slot_idx] += n->v[idx].member_count; - rdim_shared->enum_val_chunk_lane_counts[slot_idx] += n->v[idx].enum_val_count; + mem_layout->member_chunk_lane_counts[slot_idx] += n->v[idx].member_count; + mem_layout->enum_val_chunk_lane_counts[slot_idx] += n->v[idx].enum_val_count; } chunk_idx += 1; } @@ -2142,10 +2681,10 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachIndex(l_idx, lane_count()) { U64 slot_idx = l_idx*params->udts.chunk_count + chunk_idx; - rdim_shared->member_chunk_lane_offs[slot_idx] = member_layout_off; - rdim_shared->enum_val_chunk_lane_offs[slot_idx] = enum_val_layout_off; - member_layout_off += rdim_shared->member_chunk_lane_counts[slot_idx]; - enum_val_layout_off += rdim_shared->enum_val_chunk_lane_counts[slot_idx]; + mem_layout->member_chunk_lane_offs[slot_idx] = member_layout_off; + mem_layout->enum_val_chunk_lane_offs[slot_idx] = enum_val_layout_off; + member_layout_off += mem_layout->member_chunk_lane_counts[slot_idx]; + enum_val_layout_off += mem_layout->enum_val_chunk_lane_counts[slot_idx]; } chunk_idx += 1; } @@ -2156,25 +2695,41 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage bake UDTs // + typedef struct BakedUDTs BakedUDTs; + struct BakedUDTs + { + RDI_UDT *udts; + RDI_U64 udts_count; + RDI_Member *members; + RDI_U64 members_count; + RDI_EnumMember *enum_members; + RDI_U64 enum_members_count; + }; + BakedUDTs *baked_udts = 0; ProfScope("bake UDTs") { //- rjf: set up ProfScope("set up") { + if(lane_idx() == 0) + { + baked_udts = push_array(scratch.arena, BakedUDTs, 1); + } + lane_sync_u64(&baked_udts, 0); if(lane_idx() == lane_from_task_idx(0)) { - rdim_shared->baked_udts.udts_count = params->udts.total_count+1; - rdim_shared->baked_udts.udts = push_array(arena, RDI_UDT, rdim_shared->baked_udts.udts_count); + baked_udts->udts_count = params->udts.total_count+1; + baked_udts->udts = push_array(arena, RDI_UDT, baked_udts->udts_count); } if(lane_idx() == lane_from_task_idx(1)) { - rdim_shared->baked_udts.members_count = params->udts.total_member_count+1; - rdim_shared->baked_udts.members = push_array(arena, RDI_Member, rdim_shared->baked_udts.members_count); + baked_udts->members_count = params->udts.total_member_count+1; + baked_udts->members = push_array(arena, RDI_Member, baked_udts->members_count); } if(lane_idx() == lane_from_task_idx(2)) { - rdim_shared->baked_udts.enum_members_count = params->udts.total_enum_val_count+1; - rdim_shared->baked_udts.enum_members = push_array(arena, RDI_EnumMember, rdim_shared->baked_udts.enum_members_count); + baked_udts->enum_members_count = params->udts.total_enum_val_count+1; + baked_udts->enum_members = push_array(arena, RDI_EnumMember, baked_udts->enum_members_count); } } lane_sync(); @@ -2187,12 +2742,12 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) { Rng1U64 range = lane_range(n->count); U64 layout_slot_idx = lane_idx()*params->udts.chunk_count + chunk_idx; - U64 member_layout_off = rdim_shared->member_chunk_lane_offs[layout_slot_idx]; - U64 enum_val_layout_off = rdim_shared->enum_val_chunk_lane_offs[layout_slot_idx]; + U64 member_layout_off = mem_layout->member_chunk_lane_offs[layout_slot_idx]; + U64 enum_val_layout_off = mem_layout->enum_val_chunk_lane_offs[layout_slot_idx]; for EachInRange(n_idx, range) { RDIM_UDT *src_udt = &n->v[n_idx]; - RDI_UDT *dst_udt = &rdim_shared->baked_udts.udts[n->base_idx + n_idx + 1]; + RDI_UDT *dst_udt = &baked_udts->udts[n->base_idx + n_idx + 1]; //- rjf: fill basics dst_udt->self_type_idx = (RDI_U32)rdim_idx_from_type(src_udt->self_type); // TODO(rjf): @u64_to_u32 @@ -2200,13 +2755,30 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) dst_udt->line = src_udt->line; dst_udt->col = src_udt->col; + //- rjf: fill container info + if(src_udt->container_scope != 0) + { + dst_udt->container_flags |= (RDI_ContainerKind_Scope & (RDI_U32)RDI_ContainerFlag_KindMask); + dst_udt->container_idx = (RDI_U32)rdim_idx_from_scope(src_udt->container_scope); // TODO(rjf): @u64_to_u32 + } + else if(src_udt->container_namespace != 0) + { + dst_udt->container_flags |= (RDI_ContainerKind_Namespace & (RDI_U32)RDI_ContainerFlag_KindMask); + dst_udt->container_idx = (RDI_U32)rdim_idx_from_namespace(src_udt->container_namespace); // TODO(rjf): @u64_to_u32 + } + else if(src_udt->container_type != 0) + { + dst_udt->container_flags |= (RDI_ContainerKind_Type & (RDI_U32)RDI_ContainerFlag_KindMask); + dst_udt->container_idx = (RDI_U32)rdim_idx_from_udt(src_udt->container_type->udt); // TODO(rjf): @u64_to_u32 + } + //- rjf: fill member info if(src_udt->first_member != 0) { U64 member_off_first = member_layout_off; for EachNode(src_member, RDIM_UDTMember, src_udt->first_member) { - RDI_Member *dst_member = &rdim_shared->baked_udts.members[member_layout_off]; + RDI_Member *dst_member = &baked_udts->members[member_layout_off]; dst_member->kind = src_member->kind; dst_member->name_string_idx = rdim_bake_idx_from_string(bake_strings, src_member->name); dst_member->type_idx = (RDI_U32)rdim_idx_from_type(src_member->type); // TODO(rjf): @u64_to_u32 @@ -2224,7 +2796,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 enum_val_off_first = enum_val_layout_off; for EachNode(src_enum_val, RDIM_UDTEnumVal, src_udt->first_enum_val) { - RDI_EnumMember *dst_member = &rdim_shared->baked_udts.enum_members[enum_val_layout_off]; + RDI_EnumMember *dst_member = &baked_udts->enum_members[enum_val_layout_off]; dst_member->name_string_idx = rdim_bake_idx_from_string(bake_strings, src_enum_val->name); dst_member->val = src_enum_val->val; enum_val_layout_off += 1; @@ -2241,227 +2813,47 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } lane_sync(); - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage compute lane location block layout - // - U64 total_location_case_chunk_count = (params->scopes.chunk_count + params->procedures.chunk_count); - ProfScope("compute lane location block layout") - { - // rjf: set up - if(lane_idx() == 0) - { - rdim_shared->location_case_chunk_lane_counts = push_array(arena, RDI_U64, lane_count() * total_location_case_chunk_count); - rdim_shared->location_case_chunk_lane_offs = push_array(arena, RDI_U64, lane_count() * total_location_case_chunk_count); - } - lane_sync(); - - // rjf: per-chunk-lane count of location cases - { - // rjf: count location cases in scopes - U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) - { - U64 slot_idx = lane_idx() * total_location_case_chunk_count + chunk_idx; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - for EachNode(local, RDIM_Local, n->v[idx].first_local) - { - rdim_shared->location_case_chunk_lane_counts[slot_idx] += local->location_cases.count; - } - } - chunk_idx += 1; - } - - // rjf: count location cases in procedures - for EachNode(n, RDIM_SymbolChunkNode, params->procedures.first) - { - U64 slot_idx = lane_idx() * total_location_case_chunk_count + chunk_idx; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - rdim_shared->location_case_chunk_lane_counts[slot_idx] += n->v[idx].location_cases.count; - } - chunk_idx += 1; - } - } - lane_sync(); - - // rjf: lay out location case offsets - if(lane_idx() == 0) - { - U64 chunk_idx = 0; - U64 location_case_layout_off = 1; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) - { - for EachIndex(l_idx, lane_count()) - { - U64 slot_idx = l_idx * total_location_case_chunk_count + chunk_idx; - rdim_shared->location_case_chunk_lane_offs[slot_idx] = location_case_layout_off; - location_case_layout_off += rdim_shared->location_case_chunk_lane_counts[slot_idx]; - } - chunk_idx += 1; - } - for EachNode(n, RDIM_SymbolChunkNode, params->procedures.first) - { - for EachIndex(l_idx, lane_count()) - { - U64 slot_idx = l_idx * total_location_case_chunk_count + chunk_idx; - rdim_shared->location_case_chunk_lane_offs[slot_idx] = location_case_layout_off; - location_case_layout_off += rdim_shared->location_case_chunk_lane_counts[slot_idx]; - } - chunk_idx += 1; - } - rdim_shared->total_location_case_count = location_case_layout_off; - } - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake location blocks - // - ProfScope("bake location blocks") - { - // rjf: set up - if(lane_idx() == 0) - { - rdim_shared->baked_location_blocks.location_blocks_count = rdim_shared->total_location_case_count; - rdim_shared->baked_location_blocks.location_blocks = push_array(arena, RDI_LocationBlock, rdim_shared->baked_location_blocks.location_blocks_count); - } - lane_sync(); - - // rjf: wide fill from scopes - U64 chunk_idx = 0; - ProfScope("wide fill from scopes") - { - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) - { - U64 layout_slot_idx = lane_idx() * total_location_case_chunk_count + chunk_idx; - U64 layout_off = rdim_shared->location_case_chunk_lane_offs[layout_slot_idx]; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - for EachNode(local, RDIM_Local, n->v[idx].first_local) - { - for EachNode(src, RDIM_LocationCase, local->location_cases.first) - { - RDI_LocationBlock *dst = &rdim_shared->baked_location_blocks.location_blocks[layout_off]; - dst->scope_off_first = (RDI_U32)src->voff_range.min; // TODO(rjf): @u64_to_u32 - dst->scope_off_opl = (RDI_U32)src->voff_range.max; // TODO(rjf): @u64_to_u32 - dst->location_data_off = (RDI_U32)rdim_off_from_location(src->location); // TODO(rjf): @u64_to_u32 - layout_off += 1; - } - } - } - chunk_idx += 1; - } - } - - // rjf: wide fill from procedures - ProfScope("wide fill from procedures") - { - for EachNode(n, RDIM_SymbolChunkNode, params->procedures.first) - { - U64 layout_slot_idx = lane_idx() * total_location_case_chunk_count + chunk_idx; - U64 layout_off = rdim_shared->location_case_chunk_lane_offs[layout_slot_idx]; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - for EachNode(src, RDIM_LocationCase, n->v[idx].location_cases.first) - { - RDI_LocationBlock *dst = &rdim_shared->baked_location_blocks.location_blocks[layout_off]; - dst->scope_off_first = (RDI_U32)src->voff_range.min; // TODO(rjf): @u64_to_u32 - dst->scope_off_opl = (RDI_U32)src->voff_range.max; // TODO(rjf): @u64_to_u32 - dst->location_data_off = (RDI_U32)rdim_off_from_location(src->location); // TODO(rjf): @u64_to_u32 - layout_off += 1; - } - } - chunk_idx += 1; - } - } - } - - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake locations - // - ProfScope("bake locations") - { - if(lane_idx() == 0) - { - rdim_shared->baked_locations.location_data_size = params->locations.total_encoded_size+1; - rdim_shared->baked_locations.location_data = push_array(arena, RDI_U8, rdim_shared->baked_locations.location_data_size); - } - lane_sync(); - for EachNode(n, RDIM_LocationChunkNode, params->locations.first) - { - Rng1U64 range = lane_range(n->count); - for EachInRange(n_idx, range) - { - RDIM_Location *loc = &n->v[n_idx]; - RDI_U8 *dst = &rdim_shared->baked_locations.location_data[n->base_encoding_off + loc->relative_encoding_off + 1]; - switch((RDI_LocationKindEnum)loc->info.kind) - { - case RDI_LocationKind_NULL:{}break; - case RDI_LocationKind_AddrBytecodeStream: - case RDI_LocationKind_ValBytecodeStream: - { - MemoryCopy(dst+0, &loc->info.kind, sizeof(loc->info.kind)); - RDI_U64 write_off = sizeof(loc->info.kind); - for EachNode(op_node, RDIM_EvalBytecodeOp, loc->info.bytecode.first_op) - { - MemoryCopy(dst + write_off, &op_node->op, 1); - write_off += 1; - MemoryCopy(dst + write_off, &op_node->p, op_node->p_size); - write_off += op_node->p_size; - } - dst[write_off] = 0; - }break; - case RDI_LocationKind_AddrRegPlusU16: - case RDI_LocationKind_AddrAddrRegPlusU16: - { - RDI_LocationRegPlusU16 baked = {loc->info.kind, loc->info.reg_code, loc->info.offset}; - MemoryCopy(dst, &baked, sizeof(baked)); - }break; - case RDI_LocationKind_ValReg: - { - RDI_LocationReg baked = {loc->info.kind, loc->info.reg_code}; - MemoryCopy(dst, &baked, sizeof(baked)); - }break; - } - } - } - } - ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage compute layout for scope sub-lists (locals / voffs) // + typedef struct ScopeLayout ScopeLayout; + struct ScopeLayout + { + RDI_U64 *scope_local_chunk_lane_counts; // [lane_count * scope_chunk_count] + RDI_U64 *scope_local_chunk_lane_offs; // [lane_count * scope_chunk_count] + RDI_U64 *scope_voff_chunk_lane_counts; // [lane_count * scope_chunk_count] + RDI_U64 *scope_voff_chunk_lane_offs; // [lane_count * scope_chunk_count] + U64 total_local_count; + }; + ScopeLayout *scope_layout = 0; ProfScope("compute layout for scope sub-lists (locals / voffs)") { // rjf: set up if(lane_idx() == 0) { - rdim_shared->scope_local_chunk_lane_counts = push_array(arena, RDI_U64, lane_count() * params->scopes.chunk_count); - rdim_shared->scope_local_chunk_lane_offs = push_array(arena, RDI_U64, lane_count() * params->scopes.chunk_count); - rdim_shared->scope_voff_chunk_lane_counts = push_array(arena, RDI_U64, lane_count() * params->scopes.chunk_count); - rdim_shared->scope_voff_chunk_lane_offs = push_array(arena, RDI_U64, lane_count() * params->scopes.chunk_count); + scope_layout = push_array(scratch.arena, ScopeLayout, 1); + scope_layout->scope_local_chunk_lane_counts = push_array(scratch.arena, RDI_U64, lane_count() * all_scopes->chunk_count); + scope_layout->scope_local_chunk_lane_offs = push_array(scratch.arena, RDI_U64, lane_count() * all_scopes->chunk_count); + scope_layout->scope_voff_chunk_lane_counts = push_array(scratch.arena, RDI_U64, lane_count() * all_scopes->chunk_count); + scope_layout->scope_voff_chunk_lane_offs = push_array(scratch.arena, RDI_U64, lane_count() * all_scopes->chunk_count); } - lane_sync(); + lane_sync_u64(&scope_layout, 0); // rjf: count per-lane-chunk { U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { U64 num_locals_in_this_lane_and_node = 0; U64 num_voffs_in_this_lane_and_node = 0; Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - num_locals_in_this_lane_and_node += n->v[n_idx].local_count; + num_locals_in_this_lane_and_node += n->v[n_idx].locals.total_count; num_voffs_in_this_lane_and_node += n->v[n_idx].voff_ranges.count*2; } - rdim_shared->scope_local_chunk_lane_counts[lane_idx()*params->scopes.chunk_count + chunk_idx] = num_locals_in_this_lane_and_node; - rdim_shared->scope_voff_chunk_lane_counts[lane_idx()*params->scopes.chunk_count + chunk_idx] = num_voffs_in_this_lane_and_node; + scope_layout->scope_local_chunk_lane_counts[lane_idx()*all_scopes->chunk_count + chunk_idx] = num_locals_in_this_lane_and_node; + scope_layout->scope_voff_chunk_lane_counts[lane_idx()*all_scopes->chunk_count + chunk_idx] = num_voffs_in_this_lane_and_node; chunk_idx += 1; } } @@ -2473,88 +2865,108 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) U64 local_layout_off = 1; U64 voff_layout_off = 1; U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { for EachIndex(l_idx, lane_count()) { - U64 slot_idx = l_idx*params->scopes.chunk_count + chunk_idx; - rdim_shared->scope_local_chunk_lane_offs[slot_idx] = local_layout_off; - rdim_shared->scope_voff_chunk_lane_offs[slot_idx] = voff_layout_off; - local_layout_off += rdim_shared->scope_local_chunk_lane_counts[slot_idx]; - voff_layout_off += rdim_shared->scope_voff_chunk_lane_counts[slot_idx]; + U64 slot_idx = l_idx*all_scopes->chunk_count + chunk_idx; + scope_layout->scope_local_chunk_lane_offs[slot_idx] = local_layout_off; + scope_layout->scope_voff_chunk_lane_offs[slot_idx] = voff_layout_off; + local_layout_off += scope_layout->scope_local_chunk_lane_counts[slot_idx]; + voff_layout_off += scope_layout->scope_voff_chunk_lane_counts[slot_idx]; } chunk_idx += 1; } + scope_layout->total_local_count = local_layout_off; } lane_sync(); } lane_sync(); ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake scopes + //- rjf: @rdim_bake_stage bake scopes, gather locals // + typedef struct BakedScopes BakedScopes; + struct BakedScopes + { + RDI_Scope *scopes; + RDI_U64 scopes_count; + RDI_U64 *scope_voffs; + RDI_U64 scope_voffs_count; + RDIM_SymbolChunkNode arranged_locals_chunk; + }; + BakedScopes *baked_scopes = 0; ProfScope("bake scopes") { //- rjf: setup outputs + if(lane_idx() == 0) + { + baked_scopes = push_array(scratch.arena, BakedScopes, 1); + } + lane_sync_u64(&baked_scopes, 0); if(lane_idx() == lane_from_task_idx(0)) { - rdim_shared->baked_scopes.scopes_count = params->scopes.total_count+1; - rdim_shared->baked_scopes.scopes = push_array(arena, RDI_Scope, rdim_shared->baked_scopes.scopes_count); + baked_scopes->scopes_count = all_scopes->total_count+1; + baked_scopes->scopes = push_array(arena, RDI_Scope, baked_scopes->scopes_count); } if(lane_idx() == lane_from_task_idx(1)) { - rdim_shared->baked_scopes.scope_voffs_count = params->scopes.scope_voff_count+1; - rdim_shared->baked_scopes.scope_voffs = push_array(arena, RDI_U64, rdim_shared->baked_scopes.scope_voffs_count); + baked_scopes->scope_voffs_count = all_scopes->scope_voff_count+1; + baked_scopes->scope_voffs = push_array(arena, RDI_U64, baked_scopes->scope_voffs_count); } if(lane_idx() == lane_from_task_idx(2)) { - rdim_shared->baked_scopes.locals_count = params->scopes.local_count+1; - rdim_shared->baked_scopes.locals = push_array(arena, RDI_Local, rdim_shared->baked_scopes.locals_count); + baked_scopes->arranged_locals_chunk.count = scope_layout->total_local_count - 1; + baked_scopes->arranged_locals_chunk.cap = baked_scopes->arranged_locals_chunk.count; + baked_scopes->arranged_locals_chunk.base_idx = 0; + baked_scopes->arranged_locals_chunk.v = push_array(scratch.arena, RDIM_Symbol, baked_scopes->arranged_locals_chunk.count); } lane_sync(); //- rjf: wide fill { U64 chunk_idx = 0; - for EachNode(n, RDIM_ScopeChunkNode, params->scopes.first) + for EachNode(n, RDIM_ScopeChunkNode, all_scopes->first) { Rng1U64 range = lane_range(n->count); - U64 scope_chunk_lane_slot_idx = lane_idx()*params->scopes.chunk_count + chunk_idx; - U64 chunk_local_off = rdim_shared->scope_local_chunk_lane_offs[scope_chunk_lane_slot_idx]; - U64 chunk_voff_off = rdim_shared->scope_voff_chunk_lane_offs[scope_chunk_lane_slot_idx]; - U64 location_block_chunk_lane_slot_idx = lane_idx() * total_location_case_chunk_count + chunk_idx; - U64 chunk_location_block_off = rdim_shared->location_case_chunk_lane_offs[location_block_chunk_lane_slot_idx]; + U64 scope_chunk_lane_slot_idx = lane_idx()*all_scopes->chunk_count + chunk_idx; + U64 chunk_local_off = scope_layout->scope_local_chunk_lane_offs[scope_chunk_lane_slot_idx]; + U64 chunk_voff_off = scope_layout->scope_voff_chunk_lane_offs[scope_chunk_lane_slot_idx]; for EachInRange(n_idx, range) { U64 dst_idx = 1 + n->base_idx + n_idx; RDIM_Scope *src_scope = &n->v[n_idx]; - RDI_Scope *dst_scope = &rdim_shared->baked_scopes.scopes[dst_idx]; + RDI_Scope *dst_scope = &baked_scopes->scopes[dst_idx]; //- rjf: fill voff ranges U64 voff_idx_first = chunk_voff_off; for EachNode(rng_n, RDIM_Rng1U64Node, src_scope->voff_ranges.first) { - rdim_shared->baked_scopes.scope_voffs[chunk_voff_off+0] = rng_n->v.min; - rdim_shared->baked_scopes.scope_voffs[chunk_voff_off+1] = rng_n->v.max; + baked_scopes->scope_voffs[chunk_voff_off+0] = rng_n->v.min; + baked_scopes->scope_voffs[chunk_voff_off+1] = rng_n->v.max; chunk_voff_off += 2; } U64 voff_idx_opl = chunk_voff_off; //- rjf: fill locals U64 local_idx_first = chunk_local_off; - for EachNode(src_local, RDIM_Local, src_scope->first_local) + for EachNode(src_local_n, RDIM_SymbolChunkNode, src_scope->locals.first) { - RDI_Local *dst_local = &rdim_shared->baked_scopes.locals[chunk_local_off]; - dst_local->kind = src_local->kind; - dst_local->name_string_idx = rdim_bake_idx_from_string(bake_strings, src_local->name); - dst_local->type_idx = (RDI_U32)rdim_idx_from_type(src_local->type); // TODO(rjf): @u64_to_u32 - if(src_local->location_cases.count != 0) + for EachIndex(src_local_idx, src_local_n->count) { - dst_local->location_first = chunk_location_block_off; - dst_local->location_opl = chunk_location_block_off + src_local->location_cases.count; - chunk_location_block_off += src_local->location_cases.count; + RDIM_Symbol *src_local = &src_local_n->v[src_local_idx]; + RDIM_Symbol *dst_local = &baked_scopes->arranged_locals_chunk.v[chunk_local_off - 1]; + dst_local->chunk = &baked_scopes->arranged_locals_chunk; + dst_local->is_extern = src_local->is_extern; + dst_local->is_param = src_local->is_param; + dst_local->name = src_local->name; + dst_local->link_name = src_local->link_name; + dst_local->type = src_local->type; + dst_local->container_scope = src_scope; + dst_local->root_scope = src_local->root_scope; + dst_local->location_cases = src_local->location_cases; + chunk_local_off += 1; } - chunk_local_off += 1; } U64 local_idx_opl = chunk_local_off; @@ -2576,197 +2988,64 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) lane_sync(); ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake procedures + //- rjf: @rdim_bake_stage form local chunk list for all arranged locals // - ProfScope("bake procedures") + RDIM_SymbolChunkList *all_locals = 0; + if(lane_idx() == 0) { - if(lane_idx() == 0) - { - rdim_shared->baked_procedures.procedures_count = params->procedures.total_count+1; - rdim_shared->baked_procedures.procedures = push_array(arena, RDI_Procedure, rdim_shared->baked_procedures.procedures_count); - } - lane_sync(); - { - U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->procedures.first) - { - U64 location_block_layout_slot_idx = lane_idx()*total_location_case_chunk_count + params->scopes.chunk_count + chunk_idx; - U64 location_block_off = rdim_shared->location_case_chunk_lane_offs[location_block_layout_slot_idx]; - Rng1U64 range = lane_range(n->count); - for EachInRange(n_idx, range) - { - RDIM_Symbol *src = &n->v[n_idx]; - RDI_Procedure *dst = &rdim_shared->baked_procedures.procedures[n->base_idx + n_idx + 1]; - dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); - dst->link_name_string_idx = rdim_bake_idx_from_string(bake_strings, src->link_name); - if(src->is_extern) - { - dst->link_flags |= RDI_LinkFlag_External; - } - if(src->container_type != 0) - { - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = src->container_type ? (RDI_U32)rdim_idx_from_udt(src->container_type->udt) : 0; // TODO(rjf): @u64_to_u32 - } - else if(src->container_symbol != 0) - { - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = (RDI_U32)rdim_idx_from_symbol(src->container_symbol); // TODO(rjf): @u64_to_u32 - } - dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); // TODO(rjf): @u64_to_u32 - dst->root_scope_idx = (RDI_U32)rdim_idx_from_scope(src->root_scope); // TODO(rjf): @u64_to_u32 - if(src->location_cases.count != 0) - { - dst->frame_base_location_first = location_block_off; - dst->frame_base_location_opl = location_block_off + src->location_cases.count; - location_block_off += src->location_cases.count; - } - } - chunk_idx += 1; - } - } + all_locals = push_array(scratch.arena, RDIM_SymbolChunkList, 1); + all_locals[0].first = all_locals[0].last = &baked_scopes->arranged_locals_chunk; + all_locals[0].chunk_count = 1; + all_locals[0].total_count = baked_scopes->arranged_locals_chunk.count; } + lane_sync_u64(&all_locals, 0); ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage compute layout for constant data - // - ProfScope("compute layout for constant data") - { - // rjf: set up - if(lane_idx() == 0) - { - rdim_shared->constant_data_chunk_lane_counts = push_array(arena, U64, lane_count() * params->constants.chunk_count); - rdim_shared->constant_data_chunk_lane_offs = push_array(arena, U64, lane_count() * params->constants.chunk_count); - } - lane_sync(); - - // rjf: count - { - U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->constants.first) - { - U64 slot_idx = lane_idx()*params->constants.chunk_count + chunk_idx; - Rng1U64 range = lane_range(n->count); - for EachInRange(idx, range) - { - rdim_shared->constant_data_chunk_lane_counts[slot_idx] += n->v[idx].value_data.size; - } - chunk_idx += 1; - } - } - lane_sync(); - - // rjf: layout - if(lane_idx() == 0) - { - U64 chunk_idx = 0; - U64 layout_off = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->constants.first) - { - for EachIndex(l_idx, lane_count()) - { - U64 slot_idx = l_idx*params->constants.chunk_count + chunk_idx; - rdim_shared->constant_data_chunk_lane_offs[slot_idx] = layout_off; - layout_off += rdim_shared->constant_data_chunk_lane_counts[slot_idx]; - } - chunk_idx += 1; - } - } - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake constants - // - ProfScope("bake constants") - { - // rjf: set up - if(lane_idx() == lane_from_task_idx(0)) - { - rdim_shared->baked_constants.constant_values_count = params->constants.total_count+1; - rdim_shared->baked_constants.constant_values = push_array(arena, RDI_U32, rdim_shared->baked_constants.constant_values_count); - } - if(lane_idx() == lane_from_task_idx(1)) - { - rdim_shared->baked_constants.constant_value_data_size = params->constants.total_value_data_size; - rdim_shared->baked_constants.constant_value_data = push_array(arena, RDI_U8, rdim_shared->baked_constants.constant_value_data_size); - } - if(lane_idx() == lane_from_task_idx(2)) - { - rdim_shared->baked_constants.constants_count = params->constants.total_count+1; - rdim_shared->baked_constants.constants = push_array(arena, RDI_Constant, rdim_shared->baked_constants.constants_count); - } - lane_sync(); - - // rjf: wide bake - { - U64 chunk_idx = 0; - for EachNode(n, RDIM_SymbolChunkNode, params->constants.first) - { - U64 slot_idx = lane_idx()*params->constants.chunk_count + chunk_idx; - U64 value_data_off = rdim_shared->constant_data_chunk_lane_offs[slot_idx]; - Rng1U64 range = lane_range(n->count); - for EachInRange(n_idx, range) - { - RDIM_Symbol *src = &n->v[n_idx]; - RDI_Constant *dst = &rdim_shared->baked_constants.constants[1 + n->base_idx + n_idx]; - RDI_U32 *dst_value_off = &rdim_shared->baked_constants.constant_values[1 + n->base_idx + n_idx]; - RDI_U8 *dst_value_data = rdim_shared->baked_constants.constant_value_data + value_data_off; - dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); - dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); // TODO(rjf): @u64_to_u32 - dst->constant_value_idx = 1 + n->base_idx + n_idx; - dst_value_off[0] = (RDI_U32)value_data_off; // TODO(rjf): @u64_to_u32 - rdim_memcpy(dst_value_data, src->value_data.str, src->value_data.size); - value_data_off += src->value_data.size; - } - chunk_idx += 1; - } - } - } - lane_sync(); - - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake units, symbols, types, UDTs + //- rjf: @rdim_bake_stage bake units, types, inline sites // + RDI_Unit *baked_units = 0; + U64 baked_units_count = 0; + RDI_TypeNode *baked_type_nodes = 0; + U64 baked_type_nodes_count = 0; + RDI_InlineSite *baked_inline_sites = 0; + RDI_U64 baked_inline_sites_count = 0; { //- rjf: setup outputs if(lane_idx() == lane_from_task_idx(0)) { - rdim_shared->baked_units.units_count = params->units.total_count+1; - rdim_shared->baked_units.units = push_array(arena, RDI_Unit, rdim_shared->baked_units.units_count); + baked_units_count = params->units.total_count+1; + baked_units = push_array(arena, RDI_Unit, baked_units_count); } if(lane_idx() == lane_from_task_idx(1)) { - rdim_shared->baked_type_nodes.type_nodes_count = params->types.total_count+1; - rdim_shared->baked_type_nodes.type_nodes = push_array(arena, RDI_TypeNode, rdim_shared->baked_type_nodes.type_nodes_count); + baked_type_nodes_count = params->types.total_count+1; + baked_type_nodes = push_array(arena, RDI_TypeNode, baked_type_nodes_count); } if(lane_idx() == lane_from_task_idx(2)) { - rdim_shared->baked_global_variables.global_variables_count = params->global_variables.total_count+1; - rdim_shared->baked_global_variables.global_variables = push_array(arena, RDI_GlobalVariable, rdim_shared->baked_global_variables.global_variables_count); + baked_inline_sites_count = all_inline_sites->total_count+1; + baked_inline_sites = push_array(arena, RDI_InlineSite, baked_inline_sites_count); } - if(lane_idx() == lane_from_task_idx(3)) - { - rdim_shared->baked_thread_variables.thread_variables_count = params->thread_variables.total_count+1; - rdim_shared->baked_thread_variables.thread_variables = push_array(arena, RDI_ThreadVariable, rdim_shared->baked_thread_variables.thread_variables_count); - } - if(lane_idx() == lane_from_task_idx(4)) - { - rdim_shared->baked_inline_sites.inline_sites_count = params->inline_sites.total_count+1; - rdim_shared->baked_inline_sites.inline_sites = push_array(arena, RDI_InlineSite, rdim_shared->baked_inline_sites.inline_sites_count); - } - lane_sync(); + lane_sync_u64(&baked_units, lane_from_task_idx(0)); + lane_sync_u64(&baked_units_count, lane_from_task_idx(0)); + lane_sync_u64(&baked_type_nodes, lane_from_task_idx(1)); + lane_sync_u64(&baked_type_nodes_count, lane_from_task_idx(1)); + lane_sync_u64(&baked_inline_sites, lane_from_task_idx(2)); + lane_sync_u64(&baked_inline_sites_count, lane_from_task_idx(2)); //- rjf: bake units ProfScope("bake units") { + U64 base_unit_idx = 0; for EachNode(n, RDIM_UnitChunkNode, params->units.first) { Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { + U64 unit_idx = base_unit_idx + n_idx; + UnitSymbolRanges *symbol_ranges = &unit_symbol_ranges[unit_idx]; RDIM_Unit *src = &n->v[n_idx]; - RDI_Unit *dst = &rdim_shared->baked_units.units[n->base_idx + n_idx + 1]; + RDI_Unit *dst = &baked_units[n->base_idx + n_idx + 1]; dst->unit_name_string_idx = rdim_bake_idx_from_string(bake_strings, src->unit_name); dst->compiler_name_string_idx = rdim_bake_idx_from_string(bake_strings, src->compiler_name); dst->source_file_path_node = rdim_bake_path_node_idx_from_string(path_tree, src->source_file); @@ -2775,7 +3054,16 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) dst->build_path_node = rdim_bake_path_node_idx_from_string(path_tree, src->build_path); dst->language = src->language; dst->line_table_idx = (RDI_U32)rdim_idx_from_line_table(src->line_table); // TODO(rjf): @u64_to_u32 + dst->procedures_first_idx = (RDI_U32)symbol_ranges->procedures_first_idx; // TODO(rjf): @u64_to_u32 + dst->procedures_count = (RDI_U32)symbol_ranges->procedures_count; // TODO(rjf): @u64_to_u32 + dst->global_variables_first_idx = (RDI_U32)symbol_ranges->global_variables_first_idx; // TODO(rjf): @u64_to_u32 + dst->global_variables_count = (RDI_U32)symbol_ranges->global_variables_count; // TODO(rjf): @u64_to_u32 + dst->thread_variables_first_idx = (RDI_U32)symbol_ranges->thread_variables_first_idx; // TODO(rjf): @u64_to_u32 + dst->thread_variables_count = (RDI_U32)symbol_ranges->thread_variables_count; // TODO(rjf): @u64_to_u32 + dst->constants_first_idx = (RDI_U32)symbol_ranges->constants_first_idx; // TODO(rjf): @u64_to_u32 + dst->constants_count = (RDI_U32)symbol_ranges->constants_count; // TODO(rjf): @u64_to_u32 } + base_unit_idx += n->count; } } @@ -2788,7 +3076,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) for EachInRange(n_idx, range) { RDIM_Type *src = &n->v[n_idx]; - RDI_TypeNode *dst = &rdim_shared->baked_type_nodes.type_nodes[n->base_idx + n_idx + 1]; + RDI_TypeNode *dst = &baked_type_nodes[n->base_idx + n_idx + 1]; //- rjf: fill shared type node info dst->kind = src->kind; @@ -2820,13 +3108,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) dst->constructed.count = src->count; if(dst->kind == RDI_TypeKind_Function || dst->kind == RDI_TypeKind_Method) { + Temp scratch2 = scratch_begin(&scratch.arena, 1); RDI_U32 param_idx_run_count = src->count; - RDI_U32 *param_idx_run = rdim_push_array_no_zero(arena, RDI_U32, param_idx_run_count); + RDI_U32 *param_idx_run = rdim_push_array_no_zero(scratch2.arena, RDI_U32, param_idx_run_count); for(RDI_U32 idx = 0; idx < param_idx_run_count; idx += 1) { param_idx_run[idx] = (RDI_U32)rdim_idx_from_type(src->param_types[idx]); // TODO(rjf): @u64_to_u32 } dst->constructed.param_idx_run_first = rdim_bake_idx_from_idx_run(bake_idx_runs, param_idx_run, param_idx_run_count); + scratch_end(scratch2); } else if(dst->kind == RDI_TypeKind_MemberPtr) { @@ -2853,77 +3143,15 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } } - //- rjf: bake global variables - ProfScope("bake global variables") - { - for EachNode(n, RDIM_SymbolChunkNode, params->global_variables.first) - { - Rng1U64 range = lane_range(n->count); - for EachInRange(n_idx, range) - { - RDIM_Symbol *src = &n->v[n_idx]; - RDI_GlobalVariable *dst = &rdim_shared->baked_global_variables.global_variables[n->base_idx + n_idx + 1]; - dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); - dst->voff = src->offset; - dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); // TODO(rjf): @u64_to_u32 - if(src->is_extern) - { - dst->link_flags |= RDI_LinkFlag_External; - } - if(src->container_type != 0) - { - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = src->container_type ? (RDI_U32)rdim_idx_from_udt(src->container_type->udt) : 0; // TODO(rjf): @u64_to_u32 - } - else if(src->container_symbol != 0) - { - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = (RDI_U32)rdim_idx_from_symbol(src->container_symbol); // TODO(rjf): @u64_to_u32 - } - } - } - } - - //- rjf: bake thread variables - ProfScope("bake thread variables") - { - for EachNode(n, RDIM_SymbolChunkNode, params->thread_variables.first) - { - Rng1U64 range = lane_range(n->count); - for EachInRange(n_idx, range) - { - RDIM_Symbol *src = &n->v[n_idx]; - RDI_ThreadVariable *dst = &rdim_shared->baked_thread_variables.thread_variables[n->base_idx + n_idx + 1]; - dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); - dst->tls_off = (RDI_U32)src->offset; // TODO(rjf): @u64_to_u32 - dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); - if(src->is_extern) - { - dst->link_flags |= RDI_LinkFlag_External; - } - if(src->container_type != 0) - { - dst->link_flags |= RDI_LinkFlag_TypeScoped; - dst->container_idx = src->container_type ? (RDI_U32)rdim_idx_from_udt(src->container_type->udt) : 0; // TODO(rjf): @u64_to_u32 - } - else if(src->container_symbol != 0) - { - dst->link_flags |= RDI_LinkFlag_ProcScoped; - dst->container_idx = (RDI_U32)rdim_idx_from_symbol(src->container_symbol); // TODO(rjf): @u64_to_u32 - } - } - } - } - //- rjf: bake inline sites ProfScope("bake inline sites") { - for EachNode(n, RDIM_InlineSiteChunkNode, params->inline_sites.first) + for EachNode(n, RDIM_InlineSiteChunkNode, all_inline_sites->first) { Rng1U64 range = lane_range(n->count); for EachInRange(n_idx, range) { - RDI_InlineSite *dst = &rdim_shared->baked_inline_sites.inline_sites[n->base_idx + n_idx + 1]; + RDI_InlineSite *dst = &baked_inline_sites[n->base_idx + n_idx + 1]; RDIM_InlineSite *src = &n->v[n_idx]; dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); // TODO(rjf): @u64_to_u32 @@ -2935,35 +3163,361 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) } lane_sync(); - ////////////////////////////////////////////////////////////// - //- rjf: @rdim_bake_stage bake file paths + ////////////////////////////// + //- rjf: gather all lists which form symbol tables // - ProfScope("bake file paths") + RDI_Symbol *baked_global_variables = 0; + U64 baked_global_variables_count = 0; + RDI_Symbol *baked_thread_variables = 0; + U64 baked_thread_variables_count = 0; + RDI_Symbol *baked_procedures = 0; + U64 baked_procedures_count = 0; + RDI_Symbol *baked_constants = 0; + U64 baked_constants_count = 0; + RDI_Symbol *baked_locals = 0; + U64 baked_locals_count = 0; + struct { - // rjf: set up + RDIM_SymbolChunkList *symbols; + RDI_Symbol **baked_symbols_out; + U64 *baked_symbols_count_out; + } + symbol_table_lists[] = + { + {all_global_variables, &baked_global_variables, &baked_global_variables_count}, + {all_thread_variables, &baked_thread_variables, &baked_thread_variables_count}, + {all_procedures, &baked_procedures, &baked_procedures_count}, + {all_constants, &baked_constants, &baked_constants_count}, + {all_locals, &baked_locals, &baked_locals_count}, + }; + + ////////////////////////////////////////////////////////////// + //- rjf: @rdim_bake_stage bake symbols (NEW) + // + RDI_U8 *baked_location_bytecode_data = 0; + RDI_U8 *baked_location_constant_data = 0; + RDI_LocationSetElement *baked_location_set_elements = 0; + U64 baked_location_bytecode_data_size = 0; + U64 baked_location_constant_data_size = 0; + U64 baked_location_set_elements_count = 0; + ProfScope("bake symbols") + { + //////////////////////////// + //- rjf: count chunks + // + U64 chunk_count = 0; + for EachElement(symbol_table_list_idx, symbol_table_lists) + { + chunk_count += symbol_table_lists[symbol_table_list_idx].symbols->chunk_count; + } + + //////////////////////////// + //- rjf: count indirected location data - bytecode, constants, set elements + // + U64 *lane_chunk_bytecode_data_counts = 0; + U64 *lane_chunk_constant_data_counts = 0; + U64 *lane_chunk_set_element_counts = 0; if(lane_idx() == 0) { - rdim_shared->baked_file_paths.nodes_count = path_tree->count; - rdim_shared->baked_file_paths.nodes = push_array(arena, RDI_FilePathNode, rdim_shared->baked_file_paths.nodes_count); - rdim_shared->baked_file_path_src_nodes = push_array(arena, RDIM_BakePathNode *, rdim_shared->baked_file_paths.nodes_count); + lane_chunk_bytecode_data_counts = push_array(scratch.arena, U64, lane_count() * chunk_count); + lane_chunk_constant_data_counts = push_array(scratch.arena, U64, lane_count() * chunk_count); + lane_chunk_set_element_counts = push_array(scratch.arena, U64, lane_count() * chunk_count); + } + lane_sync_u64(&lane_chunk_bytecode_data_counts, 0); + lane_sync_u64(&lane_chunk_constant_data_counts, 0); + lane_sync_u64(&lane_chunk_set_element_counts, 0); + ProfScope("count indirected location data") + { + U64 chunk_idx = 0; + for EachElement(symbol_table_list_idx, symbol_table_lists) { - U64 idx = 0; - for(RDIM_BakePathNode *n = path_tree->first; n != 0; n = n->next_order) + RDIM_SymbolChunkList *src_symbols = symbol_table_lists[symbol_table_list_idx].symbols; + for EachNode(n, RDIM_SymbolChunkNode, src_symbols->first) { - rdim_shared->baked_file_path_src_nodes[idx] = n; - idx += 1; + U64 slot_idx = lane_idx()*chunk_count + chunk_idx; + Rng1U64 range = lane_range(n->count); + for EachInRange(n_idx, range) + { + RDIM_Symbol *s = &n->v[n_idx]; + if(s->location_cases.count > 1) + { + lane_chunk_set_element_counts[slot_idx] += s->location_cases.count; + } + for EachNode(case_n, RDIM_LocationCase, s->location_cases.first) + { + lane_chunk_constant_data_counts[slot_idx] += case_n->location.value_data.size; + lane_chunk_bytecode_data_counts[slot_idx] += case_n->location.bytecode.encoded_size + 1; // NOTE(rjf): +1 for the `stop` op + } + } + chunk_idx += 1; } } } lane_sync(); + //////////////////////////// + //- rjf: lay out indirected location data + // + U64 *lane_chunk_bytecode_data_offs = 0; + U64 *lane_chunk_constant_data_offs = 0; + U64 *lane_chunk_set_element_offs = 0; + U64 total_bytecode_data_count = 0; + U64 total_constant_data_count = 0; + U64 total_set_element_count = 0; + ProfScope("lay out indirected location data") + { + if(lane_idx() == 0) + { + U64 bytecode_data_off = 0; + U64 constant_data_off = 0; + U64 set_element_off = 0; + lane_chunk_bytecode_data_offs = push_array(scratch.arena, U64, lane_count() * chunk_count); + lane_chunk_constant_data_offs = push_array(scratch.arena, U64, lane_count() * chunk_count); + lane_chunk_set_element_offs = push_array(scratch.arena, U64, lane_count() * chunk_count); + for EachIndex(chunk_idx, chunk_count) + { + for EachIndex(l_idx, lane_count()) + { + U64 slot_idx = l_idx*chunk_count + chunk_idx; + lane_chunk_bytecode_data_offs[slot_idx] = bytecode_data_off; + lane_chunk_constant_data_offs[slot_idx] = constant_data_off; + lane_chunk_set_element_offs[slot_idx] = set_element_off; + bytecode_data_off += lane_chunk_bytecode_data_counts[slot_idx]; + constant_data_off += lane_chunk_constant_data_counts[slot_idx]; + set_element_off += lane_chunk_set_element_counts[slot_idx]; + } + } + total_bytecode_data_count = bytecode_data_off; + total_constant_data_count = constant_data_off; + total_set_element_count = set_element_off; + } + lane_sync_u64(&lane_chunk_bytecode_data_offs, 0); + lane_sync_u64(&lane_chunk_constant_data_offs, 0); + lane_sync_u64(&lane_chunk_set_element_offs, 0); + lane_sync_u64(&total_bytecode_data_count, 0); + lane_sync_u64(&total_constant_data_count, 0); + lane_sync_u64(&total_set_element_count, 0); + } + + //////////////////////////// + //- rjf: set up location outputs + // + RDI_U8 *loc_bytecode_data = 0; + RDI_U8 *loc_constant_data = 0; + RDI_LocationSetElement *loc_set_elements = 0; + if(lane_idx() == 0) + { + loc_bytecode_data = push_array(arena, RDI_U8, total_bytecode_data_count); + loc_constant_data = push_array(arena, RDI_U8, total_constant_data_count); + loc_set_elements = push_array(arena, RDI_LocationSetElement, total_set_element_count); + } + lane_sync_u64(&loc_bytecode_data, 0); + lane_sync_u64(&loc_constant_data, 0); + lane_sync_u64(&loc_set_elements, 0); + baked_location_bytecode_data = loc_bytecode_data; + baked_location_bytecode_data_size = total_bytecode_data_count; + baked_location_constant_data = loc_constant_data; + baked_location_constant_data_size = total_constant_data_count; + baked_location_set_elements = loc_set_elements; + baked_location_set_elements_count = total_set_element_count; + + //////////////////////////// + //- rjf: bake flat symbol tables + // + ProfScope("bake flat symbol tables") + { + U64 chunk_idx = 0; + for EachElement(symbol_table_list_idx, symbol_table_lists) + { + ProfBegin("table %I64u", symbol_table_list_idx); + RDIM_SymbolChunkList *src_symbols = symbol_table_lists[symbol_table_list_idx].symbols; + U64 dst_symbols_count = src_symbols->total_count + 1; + RDI_Symbol *dst_symbols = 0; + if(lane_idx() == 0) + { + dst_symbols = push_array(arena, RDI_Symbol, dst_symbols_count); + } + lane_sync_u64(&dst_symbols, 0); + symbol_table_lists[symbol_table_list_idx].baked_symbols_out[0] = dst_symbols; + symbol_table_lists[symbol_table_list_idx].baked_symbols_count_out[0] = dst_symbols_count; + for EachNode(n, RDIM_SymbolChunkNode, src_symbols->first) + { + U64 slot_idx = lane_idx()*chunk_count + chunk_idx; + U64 dst_bytecode_off = lane_chunk_bytecode_data_offs[slot_idx]; + U64 dst_constant_off = lane_chunk_constant_data_offs[slot_idx]; + U64 dst_set_element_idx = lane_chunk_set_element_offs[slot_idx]; + Rng1U64 range = lane_range(n->count); + for EachInRange(n_idx, range) + { + RDIM_Symbol *src = &n->v[n_idx]; + RDI_Symbol *dst = &dst_symbols[n->base_idx + n_idx + 1]; + + // rjf: fill basics + dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); + dst->type_idx = (RDI_U32)rdim_idx_from_type(src->type); // TODO(rjf): @u64_to_u32 + dst->root_scope_idx = (RDI_U32)rdim_idx_from_scope(src->root_scope); // TODO(rjf): @u64_to_u32 + dst->link_name_string_idx = rdim_bake_idx_from_string(bake_strings, src->link_name); + if(src->is_param) + { + dst->symbol_flags |= RDI_SymbolFlag_IsParam; + } + if(src->is_thunk) + { + dst->symbol_flags |= RDI_SymbolFlag_IsThunk; + } + + // rjf: fill container info + if(src->is_extern) + { + dst->container_flags |= RDI_ContainerFlag_External; + } + if(src->container_scope != 0) + { + dst->container_flags |= RDI_ContainerKind_Scope; + dst->container_idx = rdim_idx_from_scope(src->container_scope); + } + else if(src->container_type != 0) + { + dst->container_flags |= RDI_ContainerKind_Type; + dst->container_idx = rdim_idx_from_udt(src->container_type->udt); + } + else if(src->container_namespace != 0) + { + dst->container_flags |= RDI_ContainerKind_Namespace; + dst->container_idx = rdim_idx_from_namespace(src->container_namespace); + } + + // rjf: fill location set info, if applicable - get set elements to fill + RDI_LocationSetElement *dst_loc_set_elements = loc_set_elements + dst_set_element_idx; + U64 dst_loc_set_elements_count = 0; + if(src->location_cases.count > 1) + { + dst->location |= (((U64)RDI_LocationKind_Set) << RDI_Location_KindShift); + dst->location |= ((src->location_cases.count << RDI_Location_SetCountShift) & RDI_Location_SetCountMask); + dst->location |= ((dst_set_element_idx << RDI_Location_SetFirstIndexShift) & RDI_Location_SetFirstIndexMask); + dst_loc_set_elements_count = src->location_cases.count; + dst_set_element_idx += dst_loc_set_elements_count; + } + + // rjf: fill virtual offset ranges of location set elements + if(src->location_cases.count > 1) + { + U64 loc_set_element_idx = 0; + for EachNode(c, RDIM_LocationCase, src->location_cases.first) + { + dst_loc_set_elements[loc_set_element_idx].voff_first = c->voff_range.min; + dst_loc_set_elements[loc_set_element_idx].voff_opl = c->voff_range.max; + loc_set_element_idx += 1; + } + } + + // rjf: fill location(s) + RDI_Location *dst_loc_first = &dst->location; + U64 dst_loc_count = 1; + if(dst_loc_set_elements_count > 0) + { + dst_loc_first = &dst_loc_set_elements[0].location; + dst_loc_count = dst_loc_set_elements_count; + } + { + RDI_Location *dst_loc = dst_loc_first; + for EachNode(c, RDIM_LocationCase, src->location_cases.first) + { + RDIM_Location *src_loc = &c->location; + dst_loc[0] |= ((U64)src_loc->kind << RDI_Location_KindShift) & RDI_Location_KindMask; + switch(src_loc->kind) + { + default:{}break; + case RDI_LocationKind_AddrRegPlusOff: + case RDI_LocationKind_AddrAddrRegPlusOff: + { + dst_loc[0] |= ((U64)src_loc->reg_code << RDI_Location_RegCodeShift) & RDI_Location_RegCodeMask; + dst_loc[0] |= ((U64)src_loc->offset << RDI_Location_RegOffShift) & RDI_Location_RegOffMask; + }break; + case RDI_LocationKind_ValReg: + { + dst_loc[0] |= ((U64)src_loc->reg_code << RDI_Location_RegCodeShift) & RDI_Location_RegCodeMask; + }break; + case RDI_LocationKind_AddrBytecodeStream: + case RDI_LocationKind_ValBytecodeStream: + { + dst_loc[0] |= ((U64)dst_bytecode_off << RDI_Location_OffShift) & RDI_Location_OffMask; + for EachNode(op_node, RDIM_EvalBytecodeOp, src_loc->bytecode.first_op) + { + MemoryCopy(loc_bytecode_data + dst_bytecode_off, &op_node->op, 1); + dst_bytecode_off += 1; + MemoryCopy(loc_bytecode_data + dst_bytecode_off, &op_node->p, op_node->p_size); + dst_bytecode_off += op_node->p_size; + } + loc_bytecode_data[dst_bytecode_off] = 0; + dst_bytecode_off += 1; + }break; + case RDI_LocationKind_ModuleOff: + case RDI_LocationKind_TLSOff: + { + dst_loc[0] |= ((U64)src_loc->offset << RDI_Location_OffShift) & RDI_Location_OffMask; + }break; + case RDI_LocationKind_ConstantDataOff: + { + dst_loc[0] |= ((U64)dst_constant_off << RDI_Location_OffShift) & RDI_Location_OffMask; + MemoryCopy(loc_constant_data + dst_constant_off, src_loc->value_data.str, src_loc->value_data.size); + dst_constant_off += src_loc->value_data.size; + }break; + } + if(c->next != 0) + { + dst_loc = &(CastFromMember(RDI_LocationSetElement, location, dst_loc) + 1)->location; + } + } + } + } + chunk_idx += 1; + } + ProfEnd(); + } + } + } + lane_sync(); + + ////////////////////////////////////////////////////////////// + //- rjf: @rdim_bake_stage bake file paths + // + typedef struct BakedFilePaths BakedFilePaths; + struct BakedFilePaths + { + RDI_FilePathNode *nodes; + RDI_U64 nodes_count; + }; + BakedFilePaths *baked_file_paths = 0; + RDIM_BakePathNode **baked_file_path_src_nodes = 0; + ProfScope("bake file paths") + { + // rjf: set up + if(lane_idx() == 0) + { + baked_file_paths = push_array(scratch.arena, BakedFilePaths, 1); + baked_file_paths->nodes_count = path_tree->count; + baked_file_paths->nodes = push_array(arena, RDI_FilePathNode, baked_file_paths->nodes_count); + baked_file_path_src_nodes = push_array(scratch.arena, RDIM_BakePathNode *, baked_file_paths->nodes_count); + { + U64 idx = 0; + for(RDIM_BakePathNode *n = path_tree->first; n != 0; n = n->next_order) + { + baked_file_path_src_nodes[idx] = n; + idx += 1; + } + } + } + lane_sync_u64(&baked_file_paths, 0); + lane_sync_u64(&baked_file_path_src_nodes, 0); + // rjf: fill { - Rng1U64 range = lane_range(rdim_shared->baked_file_paths.nodes_count); + Rng1U64 range = lane_range(baked_file_paths->nodes_count); for EachInRange(idx, range) { - RDIM_BakePathNode *src = rdim_shared->baked_file_path_src_nodes[idx]; - RDI_FilePathNode *dst = &rdim_shared->baked_file_paths.nodes[idx]; + RDIM_BakePathNode *src = baked_file_path_src_nodes[idx]; + RDI_FilePathNode *dst = &baked_file_paths->nodes[idx]; dst->name_string_idx = rdim_bake_idx_from_string(bake_strings, src->name); dst->source_file_idx = rdim_idx_from_src_file(src->src_file); if(src->parent != 0) @@ -2986,16 +3540,20 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage do small final baking tasks // + RDI_TopLevelInfo *baked_top_level_info = 0; + RDI_BinarySection *baked_binary_sections = 0; + U64 baked_binary_sections_count = 0; ProfScope("do small final baking tasks") { if(lane_idx() == lane_from_task_idx(0)) ProfScope("bake top level info") { - rdim_shared->baked_top_level_info.top_level_info.arch = params->top_level_info.arch; - rdim_shared->baked_top_level_info.top_level_info.exe_name_string_idx = rdim_bake_idx_from_string(bake_strings, params->top_level_info.exe_name); - rdim_shared->baked_top_level_info.top_level_info.exe_hash = params->top_level_info.exe_hash; - rdim_shared->baked_top_level_info.top_level_info.voff_max = params->top_level_info.voff_max; - rdim_shared->baked_top_level_info.top_level_info.guid = params->top_level_info.guid; - rdim_shared->baked_top_level_info.top_level_info.producer_name_string_idx = rdim_bake_idx_from_string(bake_strings, params->top_level_info.producer_name); + baked_top_level_info = push_array(arena, RDI_TopLevelInfo, 1); + baked_top_level_info->arch = params->top_level_info.arch; + baked_top_level_info->exe_name_string_idx = rdim_bake_idx_from_string(bake_strings, params->top_level_info.exe_name); + baked_top_level_info->exe_hash = params->top_level_info.exe_hash; + baked_top_level_info->voff_max = params->top_level_info.voff_max; + baked_top_level_info->guid = params->top_level_info.guid; + baked_top_level_info->producer_name_string_idx = rdim_bake_idx_from_string(bake_strings, params->top_level_info.producer_name); } if(lane_idx() == lane_from_task_idx(1)) ProfScope("bake binary sections") { @@ -3013,43 +3571,67 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params) dst->foff_first = src->foff_first; dst->foff_opl = src->foff_opl; } - rdim_shared->baked_binary_sections.binary_sections = dst_base; - rdim_shared->baked_binary_sections.binary_sections_count = dst_idx; + baked_binary_sections = dst_base; + baked_binary_sections_count = dst_idx; } } - lane_sync(); + lane_sync_u64(&baked_top_level_info, lane_from_task_idx(0)); + lane_sync_u64(&baked_binary_sections, lane_from_task_idx(1)); + lane_sync_u64(&baked_binary_sections_count, lane_from_task_idx(1)); ////////////////////////////////////////////////////////////// //- rjf: @rdim_bake_stage package results // RDIM_BakeResults result = {0}; { - result.top_level_info = rdim_shared->baked_top_level_info; - result.binary_sections = rdim_shared->baked_binary_sections; - result.units = rdim_shared->baked_units; - result.unit_vmap = rdim_shared->baked_unit_vmap; - result.src_files = rdim_shared->baked_src_files; - result.checksums = rdim_shared->baked_checksums; - result.line_tables = rdim_shared->baked_line_tables; - result.type_nodes = rdim_shared->baked_type_nodes; - result.udts = rdim_shared->baked_udts; - result.global_variables = rdim_shared->baked_global_variables; - result.global_vmap = rdim_shared->baked_global_vmap; - result.thread_variables = rdim_shared->baked_thread_variables; - result.constants = rdim_shared->baked_constants; - result.procedures = rdim_shared->baked_procedures; - result.scopes = rdim_shared->baked_scopes; - result.inline_sites = rdim_shared->baked_inline_sites; - result.scope_vmap = rdim_shared->baked_scope_vmap; - result.top_level_name_maps = rdim_shared->baked_top_level_name_maps; - result.name_maps = rdim_shared->baked_name_maps; - result.file_paths = rdim_shared->baked_file_paths; - result.strings = rdim_shared->baked_strings; - result.idx_runs = rdim_shared->baked_idx_runs; - result.locations = rdim_shared->baked_locations; - result.location_blocks = rdim_shared->baked_location_blocks; +#define Map(kind, ptr, count) result.section_bundle.sections[RDI_SectionKind_##kind] = rdim_serialized_section_make_unpacked_array((ptr), (count)) + Map(TopLevelInfo, baked_top_level_info, 1); + Map(StringData, baked_strings->string_data, baked_strings->string_data_size); + Map(StringTable, baked_strings->string_offs, baked_strings->string_offs_count); + Map(IndexRuns, baked_idx_runs->idx_runs, baked_idx_runs->idx_count); + Map(BinarySections, baked_binary_sections, baked_binary_sections_count); + Map(FilePathNodes, baked_file_paths->nodes, baked_file_paths->nodes_count); + Map(SourceFiles, baked_src_files->source_files, baked_src_files->source_files_count); + Map(LineTables, baked_line_tables->line_tables, baked_line_tables->line_tables_count); + Map(LineInfoVOffs, baked_line_tables->line_table_voffs, baked_line_tables->line_table_voffs_count); + Map(LineInfoLines, baked_line_tables->line_table_lines, baked_line_tables->line_table_lines_count); + Map(LineInfoColumns, baked_line_tables->line_table_columns, baked_line_tables->line_table_columns_count); + Map(SourceLineMaps, baked_src_files->source_line_maps, baked_src_files->source_line_maps_count); + Map(SourceLineMapNumbers, baked_src_files->source_line_map_nums, baked_src_files->source_line_map_nums_count); + Map(SourceLineMapRanges, baked_src_files->source_line_map_rngs, baked_src_files->source_line_map_rngs_count); + Map(SourceLineMapVOffs, baked_src_files->source_line_map_voffs, baked_src_files->source_line_map_voffs_count); + Map(Units, baked_units, baked_units_count); + Map(UnitVMap, baked_unit_vmap->vmap, baked_unit_vmap->count); + Map(Namespaces, baked_namespaces->namespaces, baked_namespaces->namespaces_count); + Map(TypeNodes, baked_type_nodes, baked_type_nodes_count); + Map(UDTs, baked_udts->udts, baked_udts->udts_count); + Map(Members, baked_udts->members, baked_udts->members_count); + Map(EnumMembers, baked_udts->enum_members, baked_udts->enum_members_count); + Map(Scopes, baked_scopes->scopes, baked_scopes->scopes_count); + Map(ScopeVOffData, baked_scopes->scope_voffs, baked_scopes->scope_voffs_count); + Map(ScopeVMap, baked_scope_vmap->vmap, baked_scope_vmap->count); + Map(InlineSites, baked_inline_sites, baked_inline_sites_count); + Map(GlobalVariables, baked_global_variables, baked_global_variables_count); + Map(GlobalVMap, baked_global_vmap->vmap, baked_global_vmap->count); + Map(ThreadVariables, baked_thread_variables, baked_thread_variables_count); + Map(Constants, baked_constants, baked_constants_count); + Map(Procedures, baked_procedures, baked_procedures_count); + Map(LocalVariables, baked_locals, baked_locals_count); + Map(LocationsBytecodeData, baked_location_bytecode_data, baked_location_bytecode_data_size); + Map(LocationsConstantData, baked_location_constant_data, baked_location_constant_data_size); + Map(LocationsSetElements, baked_location_set_elements, baked_location_set_elements_count); + Map(MD5Checksums, baked_checksums->md5s, baked_checksums->md5s_count); + Map(SHA1Checksums, baked_checksums->sha1s, baked_checksums->sha1s_count); + Map(SHA256Checksums, baked_checksums->sha256s, baked_checksums->sha256s_count); + Map(Timestamps, baked_checksums->timestamps, baked_checksums->timestamps_count); + Map(NameMaps, baked_name_maps->name_maps, baked_name_maps->name_maps_count); + Map(NameMapBuckets, baked_name_maps->buckets, baked_name_maps->buckets_count); + Map(NameMapNodes, baked_name_maps->nodes, baked_name_maps->nodes_count); +#undef Map } + lane_sync(); + scratch_end(scratch); return result; } diff --git a/src/rdi_make/rdi_make_local.h b/src/rdi_make/rdi_make_local.h index b7ed9ed9..f28c8daa 100644 --- a/src/rdi_make/rdi_make_local.h +++ b/src/rdi_make/rdi_make_local.h @@ -60,108 +60,9 @@ struct RDIM_UnsortedJoinedLineTable RDIM_LineRec *line_recs; }; -//- rjf: shared state bundle - -typedef struct RDIM_Shared RDIM_Shared; -struct RDIM_Shared -{ - RDIM_ScopeVMapBakeResult baked_scope_vmap; - RDIM_UnitVMapBakeResult baked_unit_vmap; - RDIM_GlobalVMapBakeResult baked_global_vmap; - - RDIM_BakePathTree *path_tree; - - RDI_U64 line_tables_count; - RDI_U64 line_table_block_take_counter; - RDIM_LineTable **src_line_tables; - RDIM_UnsortedJoinedLineTable *unsorted_joined_line_tables; - - RDIM_SortKey **sorted_line_table_keys; - - RDIM_LineTableBakeResult baked_line_tables; - - RDIM_BakeStringMapTight bake_strings; - - RDIM_BakeIdxRunMap bake_idx_runs; - - RDIM_StringBakeResult baked_strings; - - RDIM_IndexRunBakeResult baked_idx_runs; - - RDI_U64 *lane_name_map_node_counts[RDI_NameMapKind_COUNT]; - RDI_U64 *lane_name_map_node_offs[RDI_NameMapKind_COUNT]; - RDI_U64 name_map_node_counts[RDI_NameMapKind_COUNT]; - RDI_U64 total_name_map_node_count; - RDIM_TopLevelNameMapBakeResult baked_top_level_name_maps; - RDIM_NameMapBakeResult baked_name_maps; - - RDIM_BakeSrcLineMap *bake_src_line_maps; - - RDI_U64 bake_src_line_map_take_counter; - RDIM_SortKey **bake_src_line_map_keys; - - RDI_U64 *lane_chunk_src_file_num_counts; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_voff_counts; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_map_counts; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_num_offs; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_voff_offs; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_map_offs; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_checksum_counts[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count] - RDI_U64 *lane_chunk_src_file_checksum_offs[RDI_ChecksumKind_COUNT]; // [lane_count * src_file_chunk_count] - U64 total_checksum_counts[RDI_ChecksumKind_COUNT]; - RDI_U64 total_src_map_line_count; - RDI_U64 total_src_map_voff_count; - - RDIM_ChecksumBakeResult baked_checksums; - - RDIM_SrcFileBakeResult baked_src_files; - - RDI_U64 *member_chunk_lane_counts; // [lane_count * udt_chunk_count] - RDI_U64 *member_chunk_lane_offs; // [lane_count * udt_chunk_count] - RDI_U64 *enum_val_chunk_lane_counts; // [lane_count * udt_chunk_count] - RDI_U64 *enum_val_chunk_lane_offs; // [lane_count * udt_chunk_count] - - RDIM_UDTBakeResult baked_udts; - - RDI_U64 *location_case_chunk_lane_counts; // [lane_count * (scope_chunk_count + procedure_chunk_count) - RDI_U64 *location_case_chunk_lane_offs; // [lane_count * (scope_chunk_count + procedure_chunk_count) - RDI_U64 total_location_case_count; - - RDIM_LocationBlockBakeResult baked_location_blocks; - - RDIM_LocationBakeResult baked_locations; - - RDI_U64 *scope_local_chunk_lane_counts; // [lane_count * scope_chunk_count] - RDI_U64 *scope_local_chunk_lane_offs; // [lane_count * scope_chunk_count] - RDI_U64 *scope_voff_chunk_lane_counts; // [lane_count * scope_chunk_count] - RDI_U64 *scope_voff_chunk_lane_offs; // [lane_count * scope_chunk_count] - - RDIM_ScopeBakeResult baked_scopes; - - RDIM_ProcedureBakeResult baked_procedures; - - RDI_U64 *constant_data_chunk_lane_counts; // [lane_count * constant_chunk_count] - RDI_U64 *constant_data_chunk_lane_offs; // [lane_count * constant_chunk_count] - - RDIM_ConstantsBakeResult baked_constants; - - RDIM_UnitBakeResult baked_units; - RDIM_TypeNodeBakeResult baked_type_nodes; - RDIM_GlobalVariableBakeResult baked_global_variables; - RDIM_ThreadVariableBakeResult baked_thread_variables; - RDIM_InlineSiteBakeResult baked_inline_sites; - - RDIM_BakePathNode **baked_file_path_src_nodes; - RDIM_FilePathBakeResult baked_file_paths; - - RDIM_TopLevelInfoBakeResult baked_top_level_info; - RDIM_BinarySectionBakeResult baked_binary_sections; -}; - -global RDIM_Shared *rdim_shared = 0; - internal RDIM_DataModel rdim_data_model_from_os_arch(OperatingSystem os, RDI_Arch arch); internal RDIM_TopLevelInfo rdim_make_top_level_info(String8 image_name, Arch arch, U64 exe_hash, RDIM_BinarySectionList sections); +internal RDIM_BakeParams rdim_loose_from_rdi(Arena *arena, RDIM_SubsetFlags subset_flags, RDI_Parsed *rdi); internal RDIM_BakeResults rdim_bake(Arena *arena, RDIM_BakeParams *params); internal RDIM_SerializedSectionBundle rdim_compress(Arena *arena, RDIM_SerializedSectionBundle *in); diff --git a/src/regs/generated/regs.meta.c b/src/regs/generated/regs.meta.c deleted file mode 100644 index f1a01b06..00000000 --- a/src/regs/generated/regs.meta.c +++ /dev/null @@ -1,1043 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -internal U64 regs_block_size_from_arch(Arch arch) -{ -U64 result = 8; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = sizeof(REGS_RegBlockX64);}break; -case Arch_x86:{result = sizeof(REGS_RegBlockX86);}break; -} -return result; -} -internal U64 regs_reg_code_count_from_arch(Arch arch) -{ -U64 result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = REGS_RegCodeX64_COUNT;}break; -case Arch_x86:{result = REGS_RegCodeX86_COUNT;}break; -} -return result; -} -internal U64 regs_alias_code_count_from_arch(Arch arch) -{ -U64 result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = REGS_AliasCodeX64_COUNT;}break; -case Arch_x86:{result = REGS_AliasCodeX86_COUNT;}break; -} -return result; -} -internal String8 *regs_reg_code_string_table_from_arch(Arch arch) -{ -String8 *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_reg_code_x64_string_table;}break; -case Arch_x86:{result = regs_g_reg_code_x86_string_table;}break; -} -return result; -} -internal String8 *regs_alias_code_string_table_from_arch(Arch arch) -{ -String8 *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_alias_code_x64_string_table;}break; -case Arch_x86:{result = regs_g_alias_code_x86_string_table;}break; -} -return result; -} -internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch) -{ -REGS_Rng *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_reg_code_x64_rng_table;}break; -case Arch_x86:{result = regs_g_reg_code_x86_rng_table;}break; -} -return result; -} -internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch) -{ -REGS_Slice *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_alias_code_x64_slice_table;}break; -case Arch_x86:{result = regs_g_alias_code_x86_slice_table;}break; -} -return result; -} -internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch) -{ -REGS_UsageKind *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_reg_code_x64_usage_kind_table;}break; -case Arch_x86:{result = regs_g_reg_code_x86_usage_kind_table;}break; -} -return result; -} -internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch) -{ -REGS_UsageKind *result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64:{result = regs_g_alias_code_x64_usage_kind_table;}break; -case Arch_x86:{result = regs_g_alias_code_x86_usage_kind_table;}break; -} -return result; -} -C_LINKAGE_BEGIN -REGS_UsageKind regs_g_reg_code_x64_usage_kind_table[103] = -{ -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -}; - -REGS_UsageKind regs_g_alias_code_x64_usage_kind_table[96] = -{ -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -}; - -String8 regs_g_reg_code_x64_string_table[103] = -{ -str8_lit_comp(""), -str8_lit_comp("rax"), -str8_lit_comp("rcx"), -str8_lit_comp("rdx"), -str8_lit_comp("rbx"), -str8_lit_comp("rsp"), -str8_lit_comp("rbp"), -str8_lit_comp("rsi"), -str8_lit_comp("rdi"), -str8_lit_comp("r8"), -str8_lit_comp("r9"), -str8_lit_comp("r10"), -str8_lit_comp("r11"), -str8_lit_comp("r12"), -str8_lit_comp("r13"), -str8_lit_comp("r14"), -str8_lit_comp("r15"), -str8_lit_comp("fsbase"), -str8_lit_comp("gsbase"), -str8_lit_comp("rip"), -str8_lit_comp("rflags"), -str8_lit_comp("dr0"), -str8_lit_comp("dr1"), -str8_lit_comp("dr2"), -str8_lit_comp("dr3"), -str8_lit_comp("dr4"), -str8_lit_comp("dr5"), -str8_lit_comp("dr6"), -str8_lit_comp("dr7"), -str8_lit_comp("fpr0"), -str8_lit_comp("fpr1"), -str8_lit_comp("fpr2"), -str8_lit_comp("fpr3"), -str8_lit_comp("fpr4"), -str8_lit_comp("fpr5"), -str8_lit_comp("fpr6"), -str8_lit_comp("fpr7"), -str8_lit_comp("st0"), -str8_lit_comp("st1"), -str8_lit_comp("st2"), -str8_lit_comp("st3"), -str8_lit_comp("st4"), -str8_lit_comp("st5"), -str8_lit_comp("st6"), -str8_lit_comp("st7"), -str8_lit_comp("fcw"), -str8_lit_comp("fsw"), -str8_lit_comp("ftw"), -str8_lit_comp("fop"), -str8_lit_comp("fcs"), -str8_lit_comp("fds"), -str8_lit_comp("fip"), -str8_lit_comp("fdp"), -str8_lit_comp("mxcsr"), -str8_lit_comp("mxcsr_mask"), -str8_lit_comp("ss"), -str8_lit_comp("cs"), -str8_lit_comp("ds"), -str8_lit_comp("es"), -str8_lit_comp("fs"), -str8_lit_comp("gs"), -str8_lit_comp("zmm0"), -str8_lit_comp("zmm1"), -str8_lit_comp("zmm2"), -str8_lit_comp("zmm3"), -str8_lit_comp("zmm4"), -str8_lit_comp("zmm5"), -str8_lit_comp("zmm6"), -str8_lit_comp("zmm7"), -str8_lit_comp("zmm8"), -str8_lit_comp("zmm9"), -str8_lit_comp("zmm10"), -str8_lit_comp("zmm11"), -str8_lit_comp("zmm12"), -str8_lit_comp("zmm13"), -str8_lit_comp("zmm14"), -str8_lit_comp("zmm15"), -str8_lit_comp("zmm16"), -str8_lit_comp("zmm17"), -str8_lit_comp("zmm18"), -str8_lit_comp("zmm19"), -str8_lit_comp("zmm20"), -str8_lit_comp("zmm21"), -str8_lit_comp("zmm22"), -str8_lit_comp("zmm23"), -str8_lit_comp("zmm24"), -str8_lit_comp("zmm25"), -str8_lit_comp("zmm26"), -str8_lit_comp("zmm27"), -str8_lit_comp("zmm28"), -str8_lit_comp("zmm29"), -str8_lit_comp("zmm30"), -str8_lit_comp("zmm31"), -str8_lit_comp("k0"), -str8_lit_comp("k1"), -str8_lit_comp("k2"), -str8_lit_comp("k3"), -str8_lit_comp("k4"), -str8_lit_comp("k5"), -str8_lit_comp("k6"), -str8_lit_comp("k7"), -str8_lit_comp("cetmsr"), -str8_lit_comp("cetssp"), -}; - -String8 regs_g_alias_code_x64_string_table[96] = -{ -str8_lit_comp(""), -str8_lit_comp("eax"), -str8_lit_comp("ecx"), -str8_lit_comp("edx"), -str8_lit_comp("ebx"), -str8_lit_comp("esp"), -str8_lit_comp("ebp"), -str8_lit_comp("esi"), -str8_lit_comp("edi"), -str8_lit_comp("r8d"), -str8_lit_comp("r9d"), -str8_lit_comp("r10d"), -str8_lit_comp("r11d"), -str8_lit_comp("r12d"), -str8_lit_comp("r13d"), -str8_lit_comp("r14d"), -str8_lit_comp("r15d"), -str8_lit_comp("eip"), -str8_lit_comp("eflags"), -str8_lit_comp("ax"), -str8_lit_comp("cx"), -str8_lit_comp("dx"), -str8_lit_comp("bx"), -str8_lit_comp("si"), -str8_lit_comp("di"), -str8_lit_comp("sp"), -str8_lit_comp("bp"), -str8_lit_comp("ip"), -str8_lit_comp("r8w"), -str8_lit_comp("r9w"), -str8_lit_comp("r10w"), -str8_lit_comp("r11w"), -str8_lit_comp("r12w"), -str8_lit_comp("r13w"), -str8_lit_comp("r14w"), -str8_lit_comp("r15w"), -str8_lit_comp("al"), -str8_lit_comp("cl"), -str8_lit_comp("dl"), -str8_lit_comp("bl"), -str8_lit_comp("sil"), -str8_lit_comp("dil"), -str8_lit_comp("bpl"), -str8_lit_comp("spl"), -str8_lit_comp("r8b"), -str8_lit_comp("r9b"), -str8_lit_comp("r10b"), -str8_lit_comp("r11b"), -str8_lit_comp("r12b"), -str8_lit_comp("r13b"), -str8_lit_comp("r14b"), -str8_lit_comp("r15b"), -str8_lit_comp("ah"), -str8_lit_comp("ch"), -str8_lit_comp("dh"), -str8_lit_comp("bh"), -str8_lit_comp("xmm0"), -str8_lit_comp("xmm1"), -str8_lit_comp("xmm2"), -str8_lit_comp("xmm3"), -str8_lit_comp("xmm4"), -str8_lit_comp("xmm5"), -str8_lit_comp("xmm6"), -str8_lit_comp("xmm7"), -str8_lit_comp("xmm8"), -str8_lit_comp("xmm9"), -str8_lit_comp("xmm10"), -str8_lit_comp("xmm11"), -str8_lit_comp("xmm12"), -str8_lit_comp("xmm13"), -str8_lit_comp("xmm14"), -str8_lit_comp("xmm15"), -str8_lit_comp("ymm0"), -str8_lit_comp("ymm1"), -str8_lit_comp("ymm2"), -str8_lit_comp("ymm3"), -str8_lit_comp("ymm4"), -str8_lit_comp("ymm5"), -str8_lit_comp("ymm6"), -str8_lit_comp("ymm7"), -str8_lit_comp("ymm8"), -str8_lit_comp("ymm9"), -str8_lit_comp("ymm10"), -str8_lit_comp("ymm11"), -str8_lit_comp("ymm12"), -str8_lit_comp("ymm13"), -str8_lit_comp("ymm14"), -str8_lit_comp("ymm15"), -str8_lit_comp("mm0"), -str8_lit_comp("mm1"), -str8_lit_comp("mm2"), -str8_lit_comp("mm3"), -str8_lit_comp("mm4"), -str8_lit_comp("mm5"), -str8_lit_comp("mm6"), -str8_lit_comp("mm7"), -}; - -REGS_Rng regs_g_reg_code_x64_rng_table[103] = -{ -{0}, -{(U16)OffsetOf(REGS_RegBlockX64, rax), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rcx), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rdx), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rbx), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rsp), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rbp), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rsi), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rdi), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r8), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r9), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r10), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r11), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r12), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r13), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r14), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, r15), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, fsbase), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, gsbase), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rip), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, rflags), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr0), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr1), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr2), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr3), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr4), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr5), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr6), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, dr7), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr0), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr1), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr2), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr3), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr4), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr5), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr6), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fpr7), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st0), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st1), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st2), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st3), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st4), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st5), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st6), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, st7), 10}, -{(U16)OffsetOf(REGS_RegBlockX64, fcw), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fsw), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, ftw), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fop), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fcs), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fds), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fip), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, fdp), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, mxcsr), 4}, -{(U16)OffsetOf(REGS_RegBlockX64, mxcsr_mask), 4}, -{(U16)OffsetOf(REGS_RegBlockX64, ss), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, cs), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, ds), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, es), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, fs), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, gs), 2}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm0), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm1), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm2), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm3), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm4), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm5), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm6), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm7), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm8), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm9), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm10), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm11), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm12), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm13), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm14), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm15), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm16), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm17), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm18), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm19), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm20), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm21), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm22), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm23), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm24), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm25), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm26), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm27), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm28), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm29), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm30), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, zmm31), 64}, -{(U16)OffsetOf(REGS_RegBlockX64, k0), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k1), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k2), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k3), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k4), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k5), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k6), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, k7), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, cetmsr), 8}, -{(U16)OffsetOf(REGS_RegBlockX64, cetssp), 8}, -}; - -REGS_Slice regs_g_alias_code_x64_slice_table[96] = -{ -{0}, -{REGS_RegCodeX64_rax, 0, 4}, -{REGS_RegCodeX64_rcx, 0, 4}, -{REGS_RegCodeX64_rdx, 0, 4}, -{REGS_RegCodeX64_rbx, 0, 4}, -{REGS_RegCodeX64_rsp, 0, 4}, -{REGS_RegCodeX64_rbp, 0, 4}, -{REGS_RegCodeX64_rsi, 0, 4}, -{REGS_RegCodeX64_rdi, 0, 4}, -{REGS_RegCodeX64_r8, 0, 4}, -{REGS_RegCodeX64_r9, 0, 4}, -{REGS_RegCodeX64_r10, 0, 4}, -{REGS_RegCodeX64_r11, 0, 4}, -{REGS_RegCodeX64_r12, 0, 4}, -{REGS_RegCodeX64_r13, 0, 4}, -{REGS_RegCodeX64_r14, 0, 4}, -{REGS_RegCodeX64_r15, 0, 4}, -{REGS_RegCodeX64_rip, 0, 4}, -{REGS_RegCodeX64_rflags, 0, 4}, -{REGS_RegCodeX64_rax, 0, 2}, -{REGS_RegCodeX64_rcx, 0, 2}, -{REGS_RegCodeX64_rdx, 0, 2}, -{REGS_RegCodeX64_rbx, 0, 2}, -{REGS_RegCodeX64_rsi, 0, 2}, -{REGS_RegCodeX64_rdi, 0, 2}, -{REGS_RegCodeX64_rsp, 0, 2}, -{REGS_RegCodeX64_rbp, 0, 2}, -{REGS_RegCodeX64_rip, 0, 2}, -{REGS_RegCodeX64_r8, 0, 2}, -{REGS_RegCodeX64_r9, 0, 2}, -{REGS_RegCodeX64_r10, 0, 2}, -{REGS_RegCodeX64_r11, 0, 2}, -{REGS_RegCodeX64_r12, 0, 2}, -{REGS_RegCodeX64_r13, 0, 2}, -{REGS_RegCodeX64_r14, 0, 2}, -{REGS_RegCodeX64_r15, 0, 2}, -{REGS_RegCodeX64_rax, 0, 1}, -{REGS_RegCodeX64_rcx, 0, 1}, -{REGS_RegCodeX64_rdx, 0, 1}, -{REGS_RegCodeX64_rbx, 0, 1}, -{REGS_RegCodeX64_rsi, 0, 1}, -{REGS_RegCodeX64_rdi, 0, 1}, -{REGS_RegCodeX64_rbp, 0, 1}, -{REGS_RegCodeX64_rsp, 0, 1}, -{REGS_RegCodeX64_r8, 0, 1}, -{REGS_RegCodeX64_r9, 0, 1}, -{REGS_RegCodeX64_r10, 0, 1}, -{REGS_RegCodeX64_r11, 0, 1}, -{REGS_RegCodeX64_r12, 0, 1}, -{REGS_RegCodeX64_r13, 0, 1}, -{REGS_RegCodeX64_r14, 0, 1}, -{REGS_RegCodeX64_r15, 0, 1}, -{REGS_RegCodeX64_rax, 1, 1}, -{REGS_RegCodeX64_rcx, 1, 1}, -{REGS_RegCodeX64_rdx, 1, 1}, -{REGS_RegCodeX64_rbx, 1, 1}, -{REGS_RegCodeX64_zmm0, 0, 16}, -{REGS_RegCodeX64_zmm1, 0, 16}, -{REGS_RegCodeX64_zmm2, 0, 16}, -{REGS_RegCodeX64_zmm3, 0, 16}, -{REGS_RegCodeX64_zmm4, 0, 16}, -{REGS_RegCodeX64_zmm5, 0, 16}, -{REGS_RegCodeX64_zmm6, 0, 16}, -{REGS_RegCodeX64_zmm7, 0, 16}, -{REGS_RegCodeX64_zmm8, 0, 16}, -{REGS_RegCodeX64_zmm9, 0, 16}, -{REGS_RegCodeX64_zmm10, 0, 16}, -{REGS_RegCodeX64_zmm11, 0, 16}, -{REGS_RegCodeX64_zmm12, 0, 16}, -{REGS_RegCodeX64_zmm13, 0, 16}, -{REGS_RegCodeX64_zmm14, 0, 16}, -{REGS_RegCodeX64_zmm15, 0, 16}, -{REGS_RegCodeX64_zmm0, 0, 32}, -{REGS_RegCodeX64_zmm1, 0, 32}, -{REGS_RegCodeX64_zmm2, 0, 32}, -{REGS_RegCodeX64_zmm3, 0, 32}, -{REGS_RegCodeX64_zmm4, 0, 32}, -{REGS_RegCodeX64_zmm5, 0, 32}, -{REGS_RegCodeX64_zmm6, 0, 32}, -{REGS_RegCodeX64_zmm7, 0, 32}, -{REGS_RegCodeX64_zmm8, 0, 32}, -{REGS_RegCodeX64_zmm9, 0, 32}, -{REGS_RegCodeX64_zmm10, 0, 32}, -{REGS_RegCodeX64_zmm11, 0, 32}, -{REGS_RegCodeX64_zmm12, 0, 32}, -{REGS_RegCodeX64_zmm13, 0, 32}, -{REGS_RegCodeX64_zmm14, 0, 32}, -{REGS_RegCodeX64_zmm15, 0, 32}, -{REGS_RegCodeX64_fpr0, 0, 8}, -{REGS_RegCodeX64_fpr1, 0, 8}, -{REGS_RegCodeX64_fpr2, 0, 8}, -{REGS_RegCodeX64_fpr3, 0, 8}, -{REGS_RegCodeX64_fpr4, 0, 8}, -{REGS_RegCodeX64_fpr5, 0, 8}, -{REGS_RegCodeX64_fpr6, 0, 8}, -{REGS_RegCodeX64_fpr7, 0, 8}, -}; - -REGS_UsageKind regs_g_reg_code_x86_usage_kind_table[61] = -{ -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -}; - -REGS_UsageKind regs_g_alias_code_x86_usage_kind_table[36] = -{ -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Normal, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -REGS_UsageKind_Vector, -}; - -String8 regs_g_reg_code_x86_string_table[61] = -{ -str8_lit_comp(""), -str8_lit_comp("eax"), -str8_lit_comp("ecx"), -str8_lit_comp("edx"), -str8_lit_comp("ebx"), -str8_lit_comp("esp"), -str8_lit_comp("ebp"), -str8_lit_comp("esi"), -str8_lit_comp("edi"), -str8_lit_comp("fsbase"), -str8_lit_comp("gsbase"), -str8_lit_comp("eflags"), -str8_lit_comp("eip"), -str8_lit_comp("dr0"), -str8_lit_comp("dr1"), -str8_lit_comp("dr2"), -str8_lit_comp("dr3"), -str8_lit_comp("dr4"), -str8_lit_comp("dr5"), -str8_lit_comp("dr6"), -str8_lit_comp("dr7"), -str8_lit_comp("fpr0"), -str8_lit_comp("fpr1"), -str8_lit_comp("fpr2"), -str8_lit_comp("fpr3"), -str8_lit_comp("fpr4"), -str8_lit_comp("fpr5"), -str8_lit_comp("fpr6"), -str8_lit_comp("fpr7"), -str8_lit_comp("st0"), -str8_lit_comp("st1"), -str8_lit_comp("st2"), -str8_lit_comp("st3"), -str8_lit_comp("st4"), -str8_lit_comp("st5"), -str8_lit_comp("st6"), -str8_lit_comp("st7"), -str8_lit_comp("fcw"), -str8_lit_comp("fsw"), -str8_lit_comp("ftw"), -str8_lit_comp("fop"), -str8_lit_comp("fcs"), -str8_lit_comp("fds"), -str8_lit_comp("fip"), -str8_lit_comp("fdp"), -str8_lit_comp("mxcsr"), -str8_lit_comp("mxcsr_mask"), -str8_lit_comp("ss"), -str8_lit_comp("cs"), -str8_lit_comp("ds"), -str8_lit_comp("es"), -str8_lit_comp("fs"), -str8_lit_comp("gs"), -str8_lit_comp("ymm0"), -str8_lit_comp("ymm1"), -str8_lit_comp("ymm2"), -str8_lit_comp("ymm3"), -str8_lit_comp("ymm4"), -str8_lit_comp("ymm5"), -str8_lit_comp("ymm6"), -str8_lit_comp("ymm7"), -}; - -String8 regs_g_alias_code_x86_string_table[36] = -{ -str8_lit_comp(""), -str8_lit_comp("ax"), -str8_lit_comp("cx"), -str8_lit_comp("bx"), -str8_lit_comp("dx"), -str8_lit_comp("sp"), -str8_lit_comp("bp"), -str8_lit_comp("si"), -str8_lit_comp("di"), -str8_lit_comp("ip"), -str8_lit_comp("ah"), -str8_lit_comp("ch"), -str8_lit_comp("dh"), -str8_lit_comp("bh"), -str8_lit_comp("al"), -str8_lit_comp("cl"), -str8_lit_comp("dl"), -str8_lit_comp("bl"), -str8_lit_comp("bpl"), -str8_lit_comp("spl"), -str8_lit_comp("xmm0"), -str8_lit_comp("xmm1"), -str8_lit_comp("xmm2"), -str8_lit_comp("xmm3"), -str8_lit_comp("xmm4"), -str8_lit_comp("xmm5"), -str8_lit_comp("xmm6"), -str8_lit_comp("xmm7"), -str8_lit_comp("mm0"), -str8_lit_comp("mm1"), -str8_lit_comp("mm2"), -str8_lit_comp("mm3"), -str8_lit_comp("mm4"), -str8_lit_comp("mm5"), -str8_lit_comp("mm6"), -str8_lit_comp("mm7"), -}; - -REGS_Rng regs_g_reg_code_x86_rng_table[61] = -{ -{0}, -{(U16)OffsetOf(REGS_RegBlockX86, eax), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, ecx), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, edx), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, ebx), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, esp), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, ebp), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, esi), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, edi), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, fsbase), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, gsbase), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, eflags), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, eip), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr0), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr1), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr2), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr3), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr4), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr5), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr6), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, dr7), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr0), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr1), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr2), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr3), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr4), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr5), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr6), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fpr7), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st0), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st1), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st2), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st3), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st4), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st5), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st6), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, st7), 10}, -{(U16)OffsetOf(REGS_RegBlockX86, fcw), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fsw), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, ftw), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fop), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fcs), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fds), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fip), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, fdp), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, mxcsr), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, mxcsr_mask), 4}, -{(U16)OffsetOf(REGS_RegBlockX86, ss), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, cs), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, ds), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, es), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, fs), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, gs), 2}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm0), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm1), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm2), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm3), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm4), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm5), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm6), 32}, -{(U16)OffsetOf(REGS_RegBlockX86, ymm7), 32}, -}; - -REGS_Slice regs_g_alias_code_x86_slice_table[36] = -{ -{0}, -{REGS_RegCodeX86_eax, 0, 2}, -{REGS_RegCodeX86_ecx, 0, 2}, -{REGS_RegCodeX86_ebx, 0, 2}, -{REGS_RegCodeX86_edx, 0, 2}, -{REGS_RegCodeX86_esp, 0, 2}, -{REGS_RegCodeX86_ebp, 0, 2}, -{REGS_RegCodeX86_esi, 0, 2}, -{REGS_RegCodeX86_edi, 0, 2}, -{REGS_RegCodeX86_eip, 0, 2}, -{REGS_RegCodeX86_eax, 1, 1}, -{REGS_RegCodeX86_ecx, 1, 1}, -{REGS_RegCodeX86_edx, 1, 1}, -{REGS_RegCodeX86_ebx, 1, 1}, -{REGS_RegCodeX86_eax, 0, 1}, -{REGS_RegCodeX86_ecx, 0, 1}, -{REGS_RegCodeX86_edx, 0, 1}, -{REGS_RegCodeX86_ebx, 0, 1}, -{REGS_RegCodeX86_ebp, 0, 1}, -{REGS_RegCodeX86_esp, 0, 1}, -{REGS_RegCodeX86_ymm0, 0, 16}, -{REGS_RegCodeX86_ymm1, 0, 16}, -{REGS_RegCodeX86_ymm2, 0, 16}, -{REGS_RegCodeX86_ymm3, 0, 16}, -{REGS_RegCodeX86_ymm4, 0, 16}, -{REGS_RegCodeX86_ymm5, 0, 16}, -{REGS_RegCodeX86_ymm6, 0, 16}, -{REGS_RegCodeX86_ymm7, 0, 16}, -{REGS_RegCodeX86_fpr0, 0, 8}, -{REGS_RegCodeX86_fpr1, 0, 8}, -{REGS_RegCodeX86_fpr2, 0, 8}, -{REGS_RegCodeX86_fpr3, 0, 8}, -{REGS_RegCodeX86_fpr4, 0, 8}, -{REGS_RegCodeX86_fpr5, 0, 8}, -{REGS_RegCodeX86_fpr6, 0, 8}, -{REGS_RegCodeX86_fpr7, 0, 8}, -}; - -C_LINKAGE_END - diff --git a/src/regs/generated/regs.meta.h b/src/regs/generated/regs.meta.h deleted file mode 100644 index 1f1316dc..00000000 --- a/src/regs/generated/regs.meta.h +++ /dev/null @@ -1,513 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef REGS_META_H -#define REGS_META_H - -typedef enum REGS_RegCodeX64 -{ -REGS_RegCodeX64_NULL, -REGS_RegCodeX64_rax, -REGS_RegCodeX64_rcx, -REGS_RegCodeX64_rdx, -REGS_RegCodeX64_rbx, -REGS_RegCodeX64_rsp, -REGS_RegCodeX64_rbp, -REGS_RegCodeX64_rsi, -REGS_RegCodeX64_rdi, -REGS_RegCodeX64_r8, -REGS_RegCodeX64_r9, -REGS_RegCodeX64_r10, -REGS_RegCodeX64_r11, -REGS_RegCodeX64_r12, -REGS_RegCodeX64_r13, -REGS_RegCodeX64_r14, -REGS_RegCodeX64_r15, -REGS_RegCodeX64_fsbase, -REGS_RegCodeX64_gsbase, -REGS_RegCodeX64_rip, -REGS_RegCodeX64_rflags, -REGS_RegCodeX64_dr0, -REGS_RegCodeX64_dr1, -REGS_RegCodeX64_dr2, -REGS_RegCodeX64_dr3, -REGS_RegCodeX64_dr4, -REGS_RegCodeX64_dr5, -REGS_RegCodeX64_dr6, -REGS_RegCodeX64_dr7, -REGS_RegCodeX64_fpr0, -REGS_RegCodeX64_fpr1, -REGS_RegCodeX64_fpr2, -REGS_RegCodeX64_fpr3, -REGS_RegCodeX64_fpr4, -REGS_RegCodeX64_fpr5, -REGS_RegCodeX64_fpr6, -REGS_RegCodeX64_fpr7, -REGS_RegCodeX64_st0, -REGS_RegCodeX64_st1, -REGS_RegCodeX64_st2, -REGS_RegCodeX64_st3, -REGS_RegCodeX64_st4, -REGS_RegCodeX64_st5, -REGS_RegCodeX64_st6, -REGS_RegCodeX64_st7, -REGS_RegCodeX64_fcw, -REGS_RegCodeX64_fsw, -REGS_RegCodeX64_ftw, -REGS_RegCodeX64_fop, -REGS_RegCodeX64_fcs, -REGS_RegCodeX64_fds, -REGS_RegCodeX64_fip, -REGS_RegCodeX64_fdp, -REGS_RegCodeX64_mxcsr, -REGS_RegCodeX64_mxcsr_mask, -REGS_RegCodeX64_ss, -REGS_RegCodeX64_cs, -REGS_RegCodeX64_ds, -REGS_RegCodeX64_es, -REGS_RegCodeX64_fs, -REGS_RegCodeX64_gs, -REGS_RegCodeX64_zmm0, -REGS_RegCodeX64_zmm1, -REGS_RegCodeX64_zmm2, -REGS_RegCodeX64_zmm3, -REGS_RegCodeX64_zmm4, -REGS_RegCodeX64_zmm5, -REGS_RegCodeX64_zmm6, -REGS_RegCodeX64_zmm7, -REGS_RegCodeX64_zmm8, -REGS_RegCodeX64_zmm9, -REGS_RegCodeX64_zmm10, -REGS_RegCodeX64_zmm11, -REGS_RegCodeX64_zmm12, -REGS_RegCodeX64_zmm13, -REGS_RegCodeX64_zmm14, -REGS_RegCodeX64_zmm15, -REGS_RegCodeX64_zmm16, -REGS_RegCodeX64_zmm17, -REGS_RegCodeX64_zmm18, -REGS_RegCodeX64_zmm19, -REGS_RegCodeX64_zmm20, -REGS_RegCodeX64_zmm21, -REGS_RegCodeX64_zmm22, -REGS_RegCodeX64_zmm23, -REGS_RegCodeX64_zmm24, -REGS_RegCodeX64_zmm25, -REGS_RegCodeX64_zmm26, -REGS_RegCodeX64_zmm27, -REGS_RegCodeX64_zmm28, -REGS_RegCodeX64_zmm29, -REGS_RegCodeX64_zmm30, -REGS_RegCodeX64_zmm31, -REGS_RegCodeX64_k0, -REGS_RegCodeX64_k1, -REGS_RegCodeX64_k2, -REGS_RegCodeX64_k3, -REGS_RegCodeX64_k4, -REGS_RegCodeX64_k5, -REGS_RegCodeX64_k6, -REGS_RegCodeX64_k7, -REGS_RegCodeX64_cetmsr, -REGS_RegCodeX64_cetssp, -REGS_RegCodeX64_COUNT, -} REGS_RegCodeX64; - -typedef enum REGS_AliasCodeX64 -{ -REGS_AliasCodeX64_NULL, -REGS_AliasCodeX64_eax, -REGS_AliasCodeX64_ecx, -REGS_AliasCodeX64_edx, -REGS_AliasCodeX64_ebx, -REGS_AliasCodeX64_esp, -REGS_AliasCodeX64_ebp, -REGS_AliasCodeX64_esi, -REGS_AliasCodeX64_edi, -REGS_AliasCodeX64_r8d, -REGS_AliasCodeX64_r9d, -REGS_AliasCodeX64_r10d, -REGS_AliasCodeX64_r11d, -REGS_AliasCodeX64_r12d, -REGS_AliasCodeX64_r13d, -REGS_AliasCodeX64_r14d, -REGS_AliasCodeX64_r15d, -REGS_AliasCodeX64_eip, -REGS_AliasCodeX64_eflags, -REGS_AliasCodeX64_ax, -REGS_AliasCodeX64_cx, -REGS_AliasCodeX64_dx, -REGS_AliasCodeX64_bx, -REGS_AliasCodeX64_si, -REGS_AliasCodeX64_di, -REGS_AliasCodeX64_sp, -REGS_AliasCodeX64_bp, -REGS_AliasCodeX64_ip, -REGS_AliasCodeX64_r8w, -REGS_AliasCodeX64_r9w, -REGS_AliasCodeX64_r10w, -REGS_AliasCodeX64_r11w, -REGS_AliasCodeX64_r12w, -REGS_AliasCodeX64_r13w, -REGS_AliasCodeX64_r14w, -REGS_AliasCodeX64_r15w, -REGS_AliasCodeX64_al, -REGS_AliasCodeX64_cl, -REGS_AliasCodeX64_dl, -REGS_AliasCodeX64_bl, -REGS_AliasCodeX64_sil, -REGS_AliasCodeX64_dil, -REGS_AliasCodeX64_bpl, -REGS_AliasCodeX64_spl, -REGS_AliasCodeX64_r8b, -REGS_AliasCodeX64_r9b, -REGS_AliasCodeX64_r10b, -REGS_AliasCodeX64_r11b, -REGS_AliasCodeX64_r12b, -REGS_AliasCodeX64_r13b, -REGS_AliasCodeX64_r14b, -REGS_AliasCodeX64_r15b, -REGS_AliasCodeX64_ah, -REGS_AliasCodeX64_ch, -REGS_AliasCodeX64_dh, -REGS_AliasCodeX64_bh, -REGS_AliasCodeX64_xmm0, -REGS_AliasCodeX64_xmm1, -REGS_AliasCodeX64_xmm2, -REGS_AliasCodeX64_xmm3, -REGS_AliasCodeX64_xmm4, -REGS_AliasCodeX64_xmm5, -REGS_AliasCodeX64_xmm6, -REGS_AliasCodeX64_xmm7, -REGS_AliasCodeX64_xmm8, -REGS_AliasCodeX64_xmm9, -REGS_AliasCodeX64_xmm10, -REGS_AliasCodeX64_xmm11, -REGS_AliasCodeX64_xmm12, -REGS_AliasCodeX64_xmm13, -REGS_AliasCodeX64_xmm14, -REGS_AliasCodeX64_xmm15, -REGS_AliasCodeX64_ymm0, -REGS_AliasCodeX64_ymm1, -REGS_AliasCodeX64_ymm2, -REGS_AliasCodeX64_ymm3, -REGS_AliasCodeX64_ymm4, -REGS_AliasCodeX64_ymm5, -REGS_AliasCodeX64_ymm6, -REGS_AliasCodeX64_ymm7, -REGS_AliasCodeX64_ymm8, -REGS_AliasCodeX64_ymm9, -REGS_AliasCodeX64_ymm10, -REGS_AliasCodeX64_ymm11, -REGS_AliasCodeX64_ymm12, -REGS_AliasCodeX64_ymm13, -REGS_AliasCodeX64_ymm14, -REGS_AliasCodeX64_ymm15, -REGS_AliasCodeX64_mm0, -REGS_AliasCodeX64_mm1, -REGS_AliasCodeX64_mm2, -REGS_AliasCodeX64_mm3, -REGS_AliasCodeX64_mm4, -REGS_AliasCodeX64_mm5, -REGS_AliasCodeX64_mm6, -REGS_AliasCodeX64_mm7, -REGS_AliasCodeX64_COUNT, -} REGS_AliasCodeX64; - -typedef enum REGS_RegCodeX86 -{ -REGS_RegCodeX86_NULL, -REGS_RegCodeX86_eax, -REGS_RegCodeX86_ecx, -REGS_RegCodeX86_edx, -REGS_RegCodeX86_ebx, -REGS_RegCodeX86_esp, -REGS_RegCodeX86_ebp, -REGS_RegCodeX86_esi, -REGS_RegCodeX86_edi, -REGS_RegCodeX86_fsbase, -REGS_RegCodeX86_gsbase, -REGS_RegCodeX86_eflags, -REGS_RegCodeX86_eip, -REGS_RegCodeX86_dr0, -REGS_RegCodeX86_dr1, -REGS_RegCodeX86_dr2, -REGS_RegCodeX86_dr3, -REGS_RegCodeX86_dr4, -REGS_RegCodeX86_dr5, -REGS_RegCodeX86_dr6, -REGS_RegCodeX86_dr7, -REGS_RegCodeX86_fpr0, -REGS_RegCodeX86_fpr1, -REGS_RegCodeX86_fpr2, -REGS_RegCodeX86_fpr3, -REGS_RegCodeX86_fpr4, -REGS_RegCodeX86_fpr5, -REGS_RegCodeX86_fpr6, -REGS_RegCodeX86_fpr7, -REGS_RegCodeX86_st0, -REGS_RegCodeX86_st1, -REGS_RegCodeX86_st2, -REGS_RegCodeX86_st3, -REGS_RegCodeX86_st4, -REGS_RegCodeX86_st5, -REGS_RegCodeX86_st6, -REGS_RegCodeX86_st7, -REGS_RegCodeX86_fcw, -REGS_RegCodeX86_fsw, -REGS_RegCodeX86_ftw, -REGS_RegCodeX86_fop, -REGS_RegCodeX86_fcs, -REGS_RegCodeX86_fds, -REGS_RegCodeX86_fip, -REGS_RegCodeX86_fdp, -REGS_RegCodeX86_mxcsr, -REGS_RegCodeX86_mxcsr_mask, -REGS_RegCodeX86_ss, -REGS_RegCodeX86_cs, -REGS_RegCodeX86_ds, -REGS_RegCodeX86_es, -REGS_RegCodeX86_fs, -REGS_RegCodeX86_gs, -REGS_RegCodeX86_ymm0, -REGS_RegCodeX86_ymm1, -REGS_RegCodeX86_ymm2, -REGS_RegCodeX86_ymm3, -REGS_RegCodeX86_ymm4, -REGS_RegCodeX86_ymm5, -REGS_RegCodeX86_ymm6, -REGS_RegCodeX86_ymm7, -REGS_RegCodeX86_COUNT, -} REGS_RegCodeX86; - -typedef enum REGS_AliasCodeX86 -{ -REGS_AliasCodeX86_NULL, -REGS_AliasCodeX86_ax, -REGS_AliasCodeX86_cx, -REGS_AliasCodeX86_bx, -REGS_AliasCodeX86_dx, -REGS_AliasCodeX86_sp, -REGS_AliasCodeX86_bp, -REGS_AliasCodeX86_si, -REGS_AliasCodeX86_di, -REGS_AliasCodeX86_ip, -REGS_AliasCodeX86_ah, -REGS_AliasCodeX86_ch, -REGS_AliasCodeX86_dh, -REGS_AliasCodeX86_bh, -REGS_AliasCodeX86_al, -REGS_AliasCodeX86_cl, -REGS_AliasCodeX86_dl, -REGS_AliasCodeX86_bl, -REGS_AliasCodeX86_bpl, -REGS_AliasCodeX86_spl, -REGS_AliasCodeX86_xmm0, -REGS_AliasCodeX86_xmm1, -REGS_AliasCodeX86_xmm2, -REGS_AliasCodeX86_xmm3, -REGS_AliasCodeX86_xmm4, -REGS_AliasCodeX86_xmm5, -REGS_AliasCodeX86_xmm6, -REGS_AliasCodeX86_xmm7, -REGS_AliasCodeX86_mm0, -REGS_AliasCodeX86_mm1, -REGS_AliasCodeX86_mm2, -REGS_AliasCodeX86_mm3, -REGS_AliasCodeX86_mm4, -REGS_AliasCodeX86_mm5, -REGS_AliasCodeX86_mm6, -REGS_AliasCodeX86_mm7, -REGS_AliasCodeX86_COUNT, -} REGS_AliasCodeX86; - -typedef struct REGS_RegBlockX64 REGS_RegBlockX64; -struct REGS_RegBlockX64 -{ -REGS_Reg64 rax; -REGS_Reg64 rcx; -REGS_Reg64 rdx; -REGS_Reg64 rbx; -REGS_Reg64 rsp; -REGS_Reg64 rbp; -REGS_Reg64 rsi; -REGS_Reg64 rdi; -REGS_Reg64 r8; -REGS_Reg64 r9; -REGS_Reg64 r10; -REGS_Reg64 r11; -REGS_Reg64 r12; -REGS_Reg64 r13; -REGS_Reg64 r14; -REGS_Reg64 r15; -REGS_Reg64 fsbase; -REGS_Reg64 gsbase; -REGS_Reg64 rip; -REGS_Reg64 rflags; -REGS_Reg64 dr0; -REGS_Reg64 dr1; -REGS_Reg64 dr2; -REGS_Reg64 dr3; -REGS_Reg64 dr4; -REGS_Reg64 dr5; -REGS_Reg64 dr6; -REGS_Reg64 dr7; -REGS_Reg80 fpr0; -REGS_Reg80 fpr1; -REGS_Reg80 fpr2; -REGS_Reg80 fpr3; -REGS_Reg80 fpr4; -REGS_Reg80 fpr5; -REGS_Reg80 fpr6; -REGS_Reg80 fpr7; -REGS_Reg80 st0; -REGS_Reg80 st1; -REGS_Reg80 st2; -REGS_Reg80 st3; -REGS_Reg80 st4; -REGS_Reg80 st5; -REGS_Reg80 st6; -REGS_Reg80 st7; -REGS_Reg16 fcw; -REGS_Reg16 fsw; -REGS_Reg16 ftw; -REGS_Reg16 fop; -REGS_Reg16 fcs; -REGS_Reg16 fds; -REGS_Reg64 fip; -REGS_Reg64 fdp; -REGS_Reg32 mxcsr; -REGS_Reg32 mxcsr_mask; -REGS_Reg16 ss; -REGS_Reg16 cs; -REGS_Reg16 ds; -REGS_Reg16 es; -REGS_Reg16 fs; -REGS_Reg16 gs; -REGS_Reg512 zmm0; -REGS_Reg512 zmm1; -REGS_Reg512 zmm2; -REGS_Reg512 zmm3; -REGS_Reg512 zmm4; -REGS_Reg512 zmm5; -REGS_Reg512 zmm6; -REGS_Reg512 zmm7; -REGS_Reg512 zmm8; -REGS_Reg512 zmm9; -REGS_Reg512 zmm10; -REGS_Reg512 zmm11; -REGS_Reg512 zmm12; -REGS_Reg512 zmm13; -REGS_Reg512 zmm14; -REGS_Reg512 zmm15; -REGS_Reg512 zmm16; -REGS_Reg512 zmm17; -REGS_Reg512 zmm18; -REGS_Reg512 zmm19; -REGS_Reg512 zmm20; -REGS_Reg512 zmm21; -REGS_Reg512 zmm22; -REGS_Reg512 zmm23; -REGS_Reg512 zmm24; -REGS_Reg512 zmm25; -REGS_Reg512 zmm26; -REGS_Reg512 zmm27; -REGS_Reg512 zmm28; -REGS_Reg512 zmm29; -REGS_Reg512 zmm30; -REGS_Reg512 zmm31; -REGS_Reg64 k0; -REGS_Reg64 k1; -REGS_Reg64 k2; -REGS_Reg64 k3; -REGS_Reg64 k4; -REGS_Reg64 k5; -REGS_Reg64 k6; -REGS_Reg64 k7; -REGS_Reg64 cetmsr; -REGS_Reg64 cetssp; -}; - -typedef struct REGS_RegBlockX86 REGS_RegBlockX86; -struct REGS_RegBlockX86 -{ -REGS_Reg32 eax; -REGS_Reg32 ecx; -REGS_Reg32 edx; -REGS_Reg32 ebx; -REGS_Reg32 esp; -REGS_Reg32 ebp; -REGS_Reg32 esi; -REGS_Reg32 edi; -REGS_Reg32 fsbase; -REGS_Reg32 gsbase; -REGS_Reg32 eflags; -REGS_Reg32 eip; -REGS_Reg32 dr0; -REGS_Reg32 dr1; -REGS_Reg32 dr2; -REGS_Reg32 dr3; -REGS_Reg32 dr4; -REGS_Reg32 dr5; -REGS_Reg32 dr6; -REGS_Reg32 dr7; -REGS_Reg80 fpr0; -REGS_Reg80 fpr1; -REGS_Reg80 fpr2; -REGS_Reg80 fpr3; -REGS_Reg80 fpr4; -REGS_Reg80 fpr5; -REGS_Reg80 fpr6; -REGS_Reg80 fpr7; -REGS_Reg80 st0; -REGS_Reg80 st1; -REGS_Reg80 st2; -REGS_Reg80 st3; -REGS_Reg80 st4; -REGS_Reg80 st5; -REGS_Reg80 st6; -REGS_Reg80 st7; -REGS_Reg16 fcw; -REGS_Reg16 fsw; -REGS_Reg16 ftw; -REGS_Reg16 fop; -REGS_Reg16 fcs; -REGS_Reg16 fds; -REGS_Reg32 fip; -REGS_Reg32 fdp; -REGS_Reg32 mxcsr; -REGS_Reg32 mxcsr_mask; -REGS_Reg16 ss; -REGS_Reg16 cs; -REGS_Reg16 ds; -REGS_Reg16 es; -REGS_Reg16 fs; -REGS_Reg16 gs; -REGS_Reg256 ymm0; -REGS_Reg256 ymm1; -REGS_Reg256 ymm2; -REGS_Reg256 ymm3; -REGS_Reg256 ymm4; -REGS_Reg256 ymm5; -REGS_Reg256 ymm6; -REGS_Reg256 ymm7; -}; - -C_LINKAGE_BEGIN -extern REGS_UsageKind regs_g_reg_code_x64_usage_kind_table[103]; -extern REGS_UsageKind regs_g_alias_code_x64_usage_kind_table[96]; -extern String8 regs_g_reg_code_x64_string_table[103]; -extern String8 regs_g_alias_code_x64_string_table[96]; -extern REGS_Rng regs_g_reg_code_x64_rng_table[103]; -extern REGS_Slice regs_g_alias_code_x64_slice_table[96]; -extern REGS_UsageKind regs_g_reg_code_x86_usage_kind_table[61]; -extern REGS_UsageKind regs_g_alias_code_x86_usage_kind_table[36]; -extern String8 regs_g_reg_code_x86_string_table[61]; -extern String8 regs_g_alias_code_x86_string_table[36]; -extern REGS_Rng regs_g_reg_code_x86_rng_table[61]; -extern REGS_Slice regs_g_alias_code_x86_slice_table[36]; - -C_LINKAGE_END - -#endif // REGS_META_H diff --git a/src/regs/rdi/generated/regs_rdi.meta.c b/src/regs/rdi/generated/regs_rdi.meta.c deleted file mode 100644 index 686b8049..00000000 --- a/src/regs/rdi/generated/regs_rdi.meta.c +++ /dev/null @@ -1,375 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code) -{ -RDI_RegCode result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64: -{ -switch(code) -{ -default:{}break; -case REGS_RegCodeX64_rax:{result = RDI_RegCodeX64_rax;}break; -case REGS_RegCodeX64_rcx:{result = RDI_RegCodeX64_rcx;}break; -case REGS_RegCodeX64_rdx:{result = RDI_RegCodeX64_rdx;}break; -case REGS_RegCodeX64_rbx:{result = RDI_RegCodeX64_rbx;}break; -case REGS_RegCodeX64_rsp:{result = RDI_RegCodeX64_rsp;}break; -case REGS_RegCodeX64_rbp:{result = RDI_RegCodeX64_rbp;}break; -case REGS_RegCodeX64_rsi:{result = RDI_RegCodeX64_rsi;}break; -case REGS_RegCodeX64_rdi:{result = RDI_RegCodeX64_rdi;}break; -case REGS_RegCodeX64_r8:{result = RDI_RegCodeX64_r8;}break; -case REGS_RegCodeX64_r9:{result = RDI_RegCodeX64_r9;}break; -case REGS_RegCodeX64_r10:{result = RDI_RegCodeX64_r10;}break; -case REGS_RegCodeX64_r11:{result = RDI_RegCodeX64_r11;}break; -case REGS_RegCodeX64_r12:{result = RDI_RegCodeX64_r12;}break; -case REGS_RegCodeX64_r13:{result = RDI_RegCodeX64_r13;}break; -case REGS_RegCodeX64_r14:{result = RDI_RegCodeX64_r14;}break; -case REGS_RegCodeX64_r15:{result = RDI_RegCodeX64_r15;}break; -case REGS_RegCodeX64_fsbase:{result = RDI_RegCodeX64_fsbase;}break; -case REGS_RegCodeX64_gsbase:{result = RDI_RegCodeX64_gsbase;}break; -case REGS_RegCodeX64_rip:{result = RDI_RegCodeX64_rip;}break; -case REGS_RegCodeX64_rflags:{result = RDI_RegCodeX64_rflags;}break; -case REGS_RegCodeX64_dr0:{result = RDI_RegCodeX64_dr0;}break; -case REGS_RegCodeX64_dr1:{result = RDI_RegCodeX64_dr1;}break; -case REGS_RegCodeX64_dr2:{result = RDI_RegCodeX64_dr2;}break; -case REGS_RegCodeX64_dr3:{result = RDI_RegCodeX64_dr3;}break; -case REGS_RegCodeX64_dr4:{result = RDI_RegCodeX64_dr4;}break; -case REGS_RegCodeX64_dr5:{result = RDI_RegCodeX64_dr5;}break; -case REGS_RegCodeX64_dr6:{result = RDI_RegCodeX64_dr6;}break; -case REGS_RegCodeX64_dr7:{result = RDI_RegCodeX64_dr7;}break; -case REGS_RegCodeX64_fpr0:{result = RDI_RegCodeX64_fpr0;}break; -case REGS_RegCodeX64_fpr1:{result = RDI_RegCodeX64_fpr1;}break; -case REGS_RegCodeX64_fpr2:{result = RDI_RegCodeX64_fpr2;}break; -case REGS_RegCodeX64_fpr3:{result = RDI_RegCodeX64_fpr3;}break; -case REGS_RegCodeX64_fpr4:{result = RDI_RegCodeX64_fpr4;}break; -case REGS_RegCodeX64_fpr5:{result = RDI_RegCodeX64_fpr5;}break; -case REGS_RegCodeX64_fpr6:{result = RDI_RegCodeX64_fpr6;}break; -case REGS_RegCodeX64_fpr7:{result = RDI_RegCodeX64_fpr7;}break; -case REGS_RegCodeX64_st0:{result = RDI_RegCodeX64_st0;}break; -case REGS_RegCodeX64_st1:{result = RDI_RegCodeX64_st1;}break; -case REGS_RegCodeX64_st2:{result = RDI_RegCodeX64_st2;}break; -case REGS_RegCodeX64_st3:{result = RDI_RegCodeX64_st3;}break; -case REGS_RegCodeX64_st4:{result = RDI_RegCodeX64_st4;}break; -case REGS_RegCodeX64_st5:{result = RDI_RegCodeX64_st5;}break; -case REGS_RegCodeX64_st6:{result = RDI_RegCodeX64_st6;}break; -case REGS_RegCodeX64_st7:{result = RDI_RegCodeX64_st7;}break; -case REGS_RegCodeX64_fcw:{result = RDI_RegCodeX64_fcw;}break; -case REGS_RegCodeX64_fsw:{result = RDI_RegCodeX64_fsw;}break; -case REGS_RegCodeX64_ftw:{result = RDI_RegCodeX64_ftw;}break; -case REGS_RegCodeX64_fop:{result = RDI_RegCodeX64_fop;}break; -case REGS_RegCodeX64_fcs:{result = RDI_RegCodeX64_fcs;}break; -case REGS_RegCodeX64_fds:{result = RDI_RegCodeX64_fds;}break; -case REGS_RegCodeX64_fip:{result = RDI_RegCodeX64_fip;}break; -case REGS_RegCodeX64_fdp:{result = RDI_RegCodeX64_fdp;}break; -case REGS_RegCodeX64_mxcsr:{result = RDI_RegCodeX64_mxcsr;}break; -case REGS_RegCodeX64_mxcsr_mask:{result = RDI_RegCodeX64_mxcsr_mask;}break; -case REGS_RegCodeX64_ss:{result = RDI_RegCodeX64_ss;}break; -case REGS_RegCodeX64_cs:{result = RDI_RegCodeX64_cs;}break; -case REGS_RegCodeX64_ds:{result = RDI_RegCodeX64_ds;}break; -case REGS_RegCodeX64_es:{result = RDI_RegCodeX64_es;}break; -case REGS_RegCodeX64_fs:{result = RDI_RegCodeX64_fs;}break; -case REGS_RegCodeX64_gs:{result = RDI_RegCodeX64_gs;}break; -case REGS_RegCodeX64_zmm0:{result = RDI_RegCodeX64_zmm0;}break; -case REGS_RegCodeX64_zmm1:{result = RDI_RegCodeX64_zmm1;}break; -case REGS_RegCodeX64_zmm2:{result = RDI_RegCodeX64_zmm2;}break; -case REGS_RegCodeX64_zmm3:{result = RDI_RegCodeX64_zmm3;}break; -case REGS_RegCodeX64_zmm4:{result = RDI_RegCodeX64_zmm4;}break; -case REGS_RegCodeX64_zmm5:{result = RDI_RegCodeX64_zmm5;}break; -case REGS_RegCodeX64_zmm6:{result = RDI_RegCodeX64_zmm6;}break; -case REGS_RegCodeX64_zmm7:{result = RDI_RegCodeX64_zmm7;}break; -case REGS_RegCodeX64_zmm8:{result = RDI_RegCodeX64_zmm8;}break; -case REGS_RegCodeX64_zmm9:{result = RDI_RegCodeX64_zmm9;}break; -case REGS_RegCodeX64_zmm10:{result = RDI_RegCodeX64_zmm10;}break; -case REGS_RegCodeX64_zmm11:{result = RDI_RegCodeX64_zmm11;}break; -case REGS_RegCodeX64_zmm12:{result = RDI_RegCodeX64_zmm12;}break; -case REGS_RegCodeX64_zmm13:{result = RDI_RegCodeX64_zmm13;}break; -case REGS_RegCodeX64_zmm14:{result = RDI_RegCodeX64_zmm14;}break; -case REGS_RegCodeX64_zmm15:{result = RDI_RegCodeX64_zmm15;}break; -case REGS_RegCodeX64_zmm16:{result = RDI_RegCodeX64_zmm16;}break; -case REGS_RegCodeX64_zmm17:{result = RDI_RegCodeX64_zmm17;}break; -case REGS_RegCodeX64_zmm18:{result = RDI_RegCodeX64_zmm18;}break; -case REGS_RegCodeX64_zmm19:{result = RDI_RegCodeX64_zmm19;}break; -case REGS_RegCodeX64_zmm20:{result = RDI_RegCodeX64_zmm20;}break; -case REGS_RegCodeX64_zmm21:{result = RDI_RegCodeX64_zmm21;}break; -case REGS_RegCodeX64_zmm22:{result = RDI_RegCodeX64_zmm22;}break; -case REGS_RegCodeX64_zmm23:{result = RDI_RegCodeX64_zmm23;}break; -case REGS_RegCodeX64_zmm24:{result = RDI_RegCodeX64_zmm24;}break; -case REGS_RegCodeX64_zmm25:{result = RDI_RegCodeX64_zmm25;}break; -case REGS_RegCodeX64_zmm26:{result = RDI_RegCodeX64_zmm26;}break; -case REGS_RegCodeX64_zmm27:{result = RDI_RegCodeX64_zmm27;}break; -case REGS_RegCodeX64_zmm28:{result = RDI_RegCodeX64_zmm28;}break; -case REGS_RegCodeX64_zmm29:{result = RDI_RegCodeX64_zmm29;}break; -case REGS_RegCodeX64_zmm30:{result = RDI_RegCodeX64_zmm30;}break; -case REGS_RegCodeX64_zmm31:{result = RDI_RegCodeX64_zmm31;}break; -case REGS_RegCodeX64_k0:{result = RDI_RegCodeX64_k0;}break; -case REGS_RegCodeX64_k1:{result = RDI_RegCodeX64_k1;}break; -case REGS_RegCodeX64_k2:{result = RDI_RegCodeX64_k2;}break; -case REGS_RegCodeX64_k3:{result = RDI_RegCodeX64_k3;}break; -case REGS_RegCodeX64_k4:{result = RDI_RegCodeX64_k4;}break; -case REGS_RegCodeX64_k5:{result = RDI_RegCodeX64_k5;}break; -case REGS_RegCodeX64_k6:{result = RDI_RegCodeX64_k6;}break; -case REGS_RegCodeX64_k7:{result = RDI_RegCodeX64_k7;}break; -case REGS_RegCodeX64_cetmsr:{result = RDI_RegCodeX64_cetmsr;}break; -case REGS_RegCodeX64_cetssp:{result = RDI_RegCodeX64_cetssp;}break; -} -}break; -case Arch_x86: -{ -switch(code) -{ -default:{}break; -case REGS_RegCodeX86_eax:{result = RDI_RegCodeX86_eax;}break; -case REGS_RegCodeX86_ecx:{result = RDI_RegCodeX86_ecx;}break; -case REGS_RegCodeX86_edx:{result = RDI_RegCodeX86_edx;}break; -case REGS_RegCodeX86_ebx:{result = RDI_RegCodeX86_ebx;}break; -case REGS_RegCodeX86_esp:{result = RDI_RegCodeX86_esp;}break; -case REGS_RegCodeX86_ebp:{result = RDI_RegCodeX86_ebp;}break; -case REGS_RegCodeX86_esi:{result = RDI_RegCodeX86_esi;}break; -case REGS_RegCodeX86_edi:{result = RDI_RegCodeX86_edi;}break; -case REGS_RegCodeX86_fsbase:{result = RDI_RegCodeX86_fsbase;}break; -case REGS_RegCodeX86_gsbase:{result = RDI_RegCodeX86_gsbase;}break; -case REGS_RegCodeX86_eflags:{result = RDI_RegCodeX86_eflags;}break; -case REGS_RegCodeX86_eip:{result = RDI_RegCodeX86_eip;}break; -case REGS_RegCodeX86_dr0:{result = RDI_RegCodeX86_dr0;}break; -case REGS_RegCodeX86_dr1:{result = RDI_RegCodeX86_dr1;}break; -case REGS_RegCodeX86_dr2:{result = RDI_RegCodeX86_dr2;}break; -case REGS_RegCodeX86_dr3:{result = RDI_RegCodeX86_dr3;}break; -case REGS_RegCodeX86_dr4:{result = RDI_RegCodeX86_dr4;}break; -case REGS_RegCodeX86_dr5:{result = RDI_RegCodeX86_dr5;}break; -case REGS_RegCodeX86_dr6:{result = RDI_RegCodeX86_dr6;}break; -case REGS_RegCodeX86_dr7:{result = RDI_RegCodeX86_dr7;}break; -case REGS_RegCodeX86_fpr0:{result = RDI_RegCodeX86_fpr0;}break; -case REGS_RegCodeX86_fpr1:{result = RDI_RegCodeX86_fpr1;}break; -case REGS_RegCodeX86_fpr2:{result = RDI_RegCodeX86_fpr2;}break; -case REGS_RegCodeX86_fpr3:{result = RDI_RegCodeX86_fpr3;}break; -case REGS_RegCodeX86_fpr4:{result = RDI_RegCodeX86_fpr4;}break; -case REGS_RegCodeX86_fpr5:{result = RDI_RegCodeX86_fpr5;}break; -case REGS_RegCodeX86_fpr6:{result = RDI_RegCodeX86_fpr6;}break; -case REGS_RegCodeX86_fpr7:{result = RDI_RegCodeX86_fpr7;}break; -case REGS_RegCodeX86_st0:{result = RDI_RegCodeX86_st0;}break; -case REGS_RegCodeX86_st1:{result = RDI_RegCodeX86_st1;}break; -case REGS_RegCodeX86_st2:{result = RDI_RegCodeX86_st2;}break; -case REGS_RegCodeX86_st3:{result = RDI_RegCodeX86_st3;}break; -case REGS_RegCodeX86_st4:{result = RDI_RegCodeX86_st4;}break; -case REGS_RegCodeX86_st5:{result = RDI_RegCodeX86_st5;}break; -case REGS_RegCodeX86_st6:{result = RDI_RegCodeX86_st6;}break; -case REGS_RegCodeX86_st7:{result = RDI_RegCodeX86_st7;}break; -case REGS_RegCodeX86_fcw:{result = RDI_RegCodeX86_fcw;}break; -case REGS_RegCodeX86_fsw:{result = RDI_RegCodeX86_fsw;}break; -case REGS_RegCodeX86_ftw:{result = RDI_RegCodeX86_ftw;}break; -case REGS_RegCodeX86_fop:{result = RDI_RegCodeX86_fop;}break; -case REGS_RegCodeX86_fcs:{result = RDI_RegCodeX86_fcs;}break; -case REGS_RegCodeX86_fds:{result = RDI_RegCodeX86_fds;}break; -case REGS_RegCodeX86_fip:{result = RDI_RegCodeX86_fip;}break; -case REGS_RegCodeX86_fdp:{result = RDI_RegCodeX86_fdp;}break; -case REGS_RegCodeX86_mxcsr:{result = RDI_RegCodeX86_mxcsr;}break; -case REGS_RegCodeX86_mxcsr_mask:{result = RDI_RegCodeX86_mxcsr_mask;}break; -case REGS_RegCodeX86_ss:{result = RDI_RegCodeX86_ss;}break; -case REGS_RegCodeX86_cs:{result = RDI_RegCodeX86_cs;}break; -case REGS_RegCodeX86_ds:{result = RDI_RegCodeX86_ds;}break; -case REGS_RegCodeX86_es:{result = RDI_RegCodeX86_es;}break; -case REGS_RegCodeX86_fs:{result = RDI_RegCodeX86_fs;}break; -case REGS_RegCodeX86_gs:{result = RDI_RegCodeX86_gs;}break; -case REGS_RegCodeX86_ymm0:{result = RDI_RegCodeX86_ymm0;}break; -case REGS_RegCodeX86_ymm1:{result = RDI_RegCodeX86_ymm1;}break; -case REGS_RegCodeX86_ymm2:{result = RDI_RegCodeX86_ymm2;}break; -case REGS_RegCodeX86_ymm3:{result = RDI_RegCodeX86_ymm3;}break; -case REGS_RegCodeX86_ymm4:{result = RDI_RegCodeX86_ymm4;}break; -case REGS_RegCodeX86_ymm5:{result = RDI_RegCodeX86_ymm5;}break; -case REGS_RegCodeX86_ymm6:{result = RDI_RegCodeX86_ymm6;}break; -case REGS_RegCodeX86_ymm7:{result = RDI_RegCodeX86_ymm7;}break; -} -}break; -} -return result; -} -internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode code) -{ -REGS_RegCode result = 0; -switch(arch) -{ -default:{}break; -case Arch_x64: -{ -switch(code) -{ -default:{}break; -case RDI_RegCodeX64_rax:{result = REGS_RegCodeX64_rax;}break; -case RDI_RegCodeX64_rcx:{result = REGS_RegCodeX64_rcx;}break; -case RDI_RegCodeX64_rdx:{result = REGS_RegCodeX64_rdx;}break; -case RDI_RegCodeX64_rbx:{result = REGS_RegCodeX64_rbx;}break; -case RDI_RegCodeX64_rsp:{result = REGS_RegCodeX64_rsp;}break; -case RDI_RegCodeX64_rbp:{result = REGS_RegCodeX64_rbp;}break; -case RDI_RegCodeX64_rsi:{result = REGS_RegCodeX64_rsi;}break; -case RDI_RegCodeX64_rdi:{result = REGS_RegCodeX64_rdi;}break; -case RDI_RegCodeX64_r8:{result = REGS_RegCodeX64_r8;}break; -case RDI_RegCodeX64_r9:{result = REGS_RegCodeX64_r9;}break; -case RDI_RegCodeX64_r10:{result = REGS_RegCodeX64_r10;}break; -case RDI_RegCodeX64_r11:{result = REGS_RegCodeX64_r11;}break; -case RDI_RegCodeX64_r12:{result = REGS_RegCodeX64_r12;}break; -case RDI_RegCodeX64_r13:{result = REGS_RegCodeX64_r13;}break; -case RDI_RegCodeX64_r14:{result = REGS_RegCodeX64_r14;}break; -case RDI_RegCodeX64_r15:{result = REGS_RegCodeX64_r15;}break; -case RDI_RegCodeX64_fsbase:{result = REGS_RegCodeX64_fsbase;}break; -case RDI_RegCodeX64_gsbase:{result = REGS_RegCodeX64_gsbase;}break; -case RDI_RegCodeX64_rip:{result = REGS_RegCodeX64_rip;}break; -case RDI_RegCodeX64_rflags:{result = REGS_RegCodeX64_rflags;}break; -case RDI_RegCodeX64_dr0:{result = REGS_RegCodeX64_dr0;}break; -case RDI_RegCodeX64_dr1:{result = REGS_RegCodeX64_dr1;}break; -case RDI_RegCodeX64_dr2:{result = REGS_RegCodeX64_dr2;}break; -case RDI_RegCodeX64_dr3:{result = REGS_RegCodeX64_dr3;}break; -case RDI_RegCodeX64_dr4:{result = REGS_RegCodeX64_dr4;}break; -case RDI_RegCodeX64_dr5:{result = REGS_RegCodeX64_dr5;}break; -case RDI_RegCodeX64_dr6:{result = REGS_RegCodeX64_dr6;}break; -case RDI_RegCodeX64_dr7:{result = REGS_RegCodeX64_dr7;}break; -case RDI_RegCodeX64_fpr0:{result = REGS_RegCodeX64_fpr0;}break; -case RDI_RegCodeX64_fpr1:{result = REGS_RegCodeX64_fpr1;}break; -case RDI_RegCodeX64_fpr2:{result = REGS_RegCodeX64_fpr2;}break; -case RDI_RegCodeX64_fpr3:{result = REGS_RegCodeX64_fpr3;}break; -case RDI_RegCodeX64_fpr4:{result = REGS_RegCodeX64_fpr4;}break; -case RDI_RegCodeX64_fpr5:{result = REGS_RegCodeX64_fpr5;}break; -case RDI_RegCodeX64_fpr6:{result = REGS_RegCodeX64_fpr6;}break; -case RDI_RegCodeX64_fpr7:{result = REGS_RegCodeX64_fpr7;}break; -case RDI_RegCodeX64_st0:{result = REGS_RegCodeX64_st0;}break; -case RDI_RegCodeX64_st1:{result = REGS_RegCodeX64_st1;}break; -case RDI_RegCodeX64_st2:{result = REGS_RegCodeX64_st2;}break; -case RDI_RegCodeX64_st3:{result = REGS_RegCodeX64_st3;}break; -case RDI_RegCodeX64_st4:{result = REGS_RegCodeX64_st4;}break; -case RDI_RegCodeX64_st5:{result = REGS_RegCodeX64_st5;}break; -case RDI_RegCodeX64_st6:{result = REGS_RegCodeX64_st6;}break; -case RDI_RegCodeX64_st7:{result = REGS_RegCodeX64_st7;}break; -case RDI_RegCodeX64_fcw:{result = REGS_RegCodeX64_fcw;}break; -case RDI_RegCodeX64_fsw:{result = REGS_RegCodeX64_fsw;}break; -case RDI_RegCodeX64_ftw:{result = REGS_RegCodeX64_ftw;}break; -case RDI_RegCodeX64_fop:{result = REGS_RegCodeX64_fop;}break; -case RDI_RegCodeX64_fcs:{result = REGS_RegCodeX64_fcs;}break; -case RDI_RegCodeX64_fds:{result = REGS_RegCodeX64_fds;}break; -case RDI_RegCodeX64_fip:{result = REGS_RegCodeX64_fip;}break; -case RDI_RegCodeX64_fdp:{result = REGS_RegCodeX64_fdp;}break; -case RDI_RegCodeX64_mxcsr:{result = REGS_RegCodeX64_mxcsr;}break; -case RDI_RegCodeX64_mxcsr_mask:{result = REGS_RegCodeX64_mxcsr_mask;}break; -case RDI_RegCodeX64_ss:{result = REGS_RegCodeX64_ss;}break; -case RDI_RegCodeX64_cs:{result = REGS_RegCodeX64_cs;}break; -case RDI_RegCodeX64_ds:{result = REGS_RegCodeX64_ds;}break; -case RDI_RegCodeX64_es:{result = REGS_RegCodeX64_es;}break; -case RDI_RegCodeX64_fs:{result = REGS_RegCodeX64_fs;}break; -case RDI_RegCodeX64_gs:{result = REGS_RegCodeX64_gs;}break; -case RDI_RegCodeX64_zmm0:{result = REGS_RegCodeX64_zmm0;}break; -case RDI_RegCodeX64_zmm1:{result = REGS_RegCodeX64_zmm1;}break; -case RDI_RegCodeX64_zmm2:{result = REGS_RegCodeX64_zmm2;}break; -case RDI_RegCodeX64_zmm3:{result = REGS_RegCodeX64_zmm3;}break; -case RDI_RegCodeX64_zmm4:{result = REGS_RegCodeX64_zmm4;}break; -case RDI_RegCodeX64_zmm5:{result = REGS_RegCodeX64_zmm5;}break; -case RDI_RegCodeX64_zmm6:{result = REGS_RegCodeX64_zmm6;}break; -case RDI_RegCodeX64_zmm7:{result = REGS_RegCodeX64_zmm7;}break; -case RDI_RegCodeX64_zmm8:{result = REGS_RegCodeX64_zmm8;}break; -case RDI_RegCodeX64_zmm9:{result = REGS_RegCodeX64_zmm9;}break; -case RDI_RegCodeX64_zmm10:{result = REGS_RegCodeX64_zmm10;}break; -case RDI_RegCodeX64_zmm11:{result = REGS_RegCodeX64_zmm11;}break; -case RDI_RegCodeX64_zmm12:{result = REGS_RegCodeX64_zmm12;}break; -case RDI_RegCodeX64_zmm13:{result = REGS_RegCodeX64_zmm13;}break; -case RDI_RegCodeX64_zmm14:{result = REGS_RegCodeX64_zmm14;}break; -case RDI_RegCodeX64_zmm15:{result = REGS_RegCodeX64_zmm15;}break; -case RDI_RegCodeX64_zmm16:{result = REGS_RegCodeX64_zmm16;}break; -case RDI_RegCodeX64_zmm17:{result = REGS_RegCodeX64_zmm17;}break; -case RDI_RegCodeX64_zmm18:{result = REGS_RegCodeX64_zmm18;}break; -case RDI_RegCodeX64_zmm19:{result = REGS_RegCodeX64_zmm19;}break; -case RDI_RegCodeX64_zmm20:{result = REGS_RegCodeX64_zmm20;}break; -case RDI_RegCodeX64_zmm21:{result = REGS_RegCodeX64_zmm21;}break; -case RDI_RegCodeX64_zmm22:{result = REGS_RegCodeX64_zmm22;}break; -case RDI_RegCodeX64_zmm23:{result = REGS_RegCodeX64_zmm23;}break; -case RDI_RegCodeX64_zmm24:{result = REGS_RegCodeX64_zmm24;}break; -case RDI_RegCodeX64_zmm25:{result = REGS_RegCodeX64_zmm25;}break; -case RDI_RegCodeX64_zmm26:{result = REGS_RegCodeX64_zmm26;}break; -case RDI_RegCodeX64_zmm27:{result = REGS_RegCodeX64_zmm27;}break; -case RDI_RegCodeX64_zmm28:{result = REGS_RegCodeX64_zmm28;}break; -case RDI_RegCodeX64_zmm29:{result = REGS_RegCodeX64_zmm29;}break; -case RDI_RegCodeX64_zmm30:{result = REGS_RegCodeX64_zmm30;}break; -case RDI_RegCodeX64_zmm31:{result = REGS_RegCodeX64_zmm31;}break; -case RDI_RegCodeX64_k0:{result = REGS_RegCodeX64_k0;}break; -case RDI_RegCodeX64_k1:{result = REGS_RegCodeX64_k1;}break; -case RDI_RegCodeX64_k2:{result = REGS_RegCodeX64_k2;}break; -case RDI_RegCodeX64_k3:{result = REGS_RegCodeX64_k3;}break; -case RDI_RegCodeX64_k4:{result = REGS_RegCodeX64_k4;}break; -case RDI_RegCodeX64_k5:{result = REGS_RegCodeX64_k5;}break; -case RDI_RegCodeX64_k6:{result = REGS_RegCodeX64_k6;}break; -case RDI_RegCodeX64_k7:{result = REGS_RegCodeX64_k7;}break; -case RDI_RegCodeX64_cetmsr:{result = REGS_RegCodeX64_cetmsr;}break; -case RDI_RegCodeX64_cetssp:{result = REGS_RegCodeX64_cetssp;}break; -} -}break; -case Arch_x86: -{ -switch(code) -{ -default:{}break; -case RDI_RegCodeX86_eax:{result = REGS_RegCodeX86_eax;}break; -case RDI_RegCodeX86_ecx:{result = REGS_RegCodeX86_ecx;}break; -case RDI_RegCodeX86_edx:{result = REGS_RegCodeX86_edx;}break; -case RDI_RegCodeX86_ebx:{result = REGS_RegCodeX86_ebx;}break; -case RDI_RegCodeX86_esp:{result = REGS_RegCodeX86_esp;}break; -case RDI_RegCodeX86_ebp:{result = REGS_RegCodeX86_ebp;}break; -case RDI_RegCodeX86_esi:{result = REGS_RegCodeX86_esi;}break; -case RDI_RegCodeX86_edi:{result = REGS_RegCodeX86_edi;}break; -case RDI_RegCodeX86_fsbase:{result = REGS_RegCodeX86_fsbase;}break; -case RDI_RegCodeX86_gsbase:{result = REGS_RegCodeX86_gsbase;}break; -case RDI_RegCodeX86_eflags:{result = REGS_RegCodeX86_eflags;}break; -case RDI_RegCodeX86_eip:{result = REGS_RegCodeX86_eip;}break; -case RDI_RegCodeX86_dr0:{result = REGS_RegCodeX86_dr0;}break; -case RDI_RegCodeX86_dr1:{result = REGS_RegCodeX86_dr1;}break; -case RDI_RegCodeX86_dr2:{result = REGS_RegCodeX86_dr2;}break; -case RDI_RegCodeX86_dr3:{result = REGS_RegCodeX86_dr3;}break; -case RDI_RegCodeX86_dr4:{result = REGS_RegCodeX86_dr4;}break; -case RDI_RegCodeX86_dr5:{result = REGS_RegCodeX86_dr5;}break; -case RDI_RegCodeX86_dr6:{result = REGS_RegCodeX86_dr6;}break; -case RDI_RegCodeX86_dr7:{result = REGS_RegCodeX86_dr7;}break; -case RDI_RegCodeX86_fpr0:{result = REGS_RegCodeX86_fpr0;}break; -case RDI_RegCodeX86_fpr1:{result = REGS_RegCodeX86_fpr1;}break; -case RDI_RegCodeX86_fpr2:{result = REGS_RegCodeX86_fpr2;}break; -case RDI_RegCodeX86_fpr3:{result = REGS_RegCodeX86_fpr3;}break; -case RDI_RegCodeX86_fpr4:{result = REGS_RegCodeX86_fpr4;}break; -case RDI_RegCodeX86_fpr5:{result = REGS_RegCodeX86_fpr5;}break; -case RDI_RegCodeX86_fpr6:{result = REGS_RegCodeX86_fpr6;}break; -case RDI_RegCodeX86_fpr7:{result = REGS_RegCodeX86_fpr7;}break; -case RDI_RegCodeX86_st0:{result = REGS_RegCodeX86_st0;}break; -case RDI_RegCodeX86_st1:{result = REGS_RegCodeX86_st1;}break; -case RDI_RegCodeX86_st2:{result = REGS_RegCodeX86_st2;}break; -case RDI_RegCodeX86_st3:{result = REGS_RegCodeX86_st3;}break; -case RDI_RegCodeX86_st4:{result = REGS_RegCodeX86_st4;}break; -case RDI_RegCodeX86_st5:{result = REGS_RegCodeX86_st5;}break; -case RDI_RegCodeX86_st6:{result = REGS_RegCodeX86_st6;}break; -case RDI_RegCodeX86_st7:{result = REGS_RegCodeX86_st7;}break; -case RDI_RegCodeX86_fcw:{result = REGS_RegCodeX86_fcw;}break; -case RDI_RegCodeX86_fsw:{result = REGS_RegCodeX86_fsw;}break; -case RDI_RegCodeX86_ftw:{result = REGS_RegCodeX86_ftw;}break; -case RDI_RegCodeX86_fop:{result = REGS_RegCodeX86_fop;}break; -case RDI_RegCodeX86_fcs:{result = REGS_RegCodeX86_fcs;}break; -case RDI_RegCodeX86_fds:{result = REGS_RegCodeX86_fds;}break; -case RDI_RegCodeX86_fip:{result = REGS_RegCodeX86_fip;}break; -case RDI_RegCodeX86_fdp:{result = REGS_RegCodeX86_fdp;}break; -case RDI_RegCodeX86_mxcsr:{result = REGS_RegCodeX86_mxcsr;}break; -case RDI_RegCodeX86_mxcsr_mask:{result = REGS_RegCodeX86_mxcsr_mask;}break; -case RDI_RegCodeX86_ss:{result = REGS_RegCodeX86_ss;}break; -case RDI_RegCodeX86_cs:{result = REGS_RegCodeX86_cs;}break; -case RDI_RegCodeX86_ds:{result = REGS_RegCodeX86_ds;}break; -case RDI_RegCodeX86_es:{result = REGS_RegCodeX86_es;}break; -case RDI_RegCodeX86_fs:{result = REGS_RegCodeX86_fs;}break; -case RDI_RegCodeX86_gs:{result = REGS_RegCodeX86_gs;}break; -case RDI_RegCodeX86_ymm0:{result = REGS_RegCodeX86_ymm0;}break; -case RDI_RegCodeX86_ymm1:{result = REGS_RegCodeX86_ymm1;}break; -case RDI_RegCodeX86_ymm2:{result = REGS_RegCodeX86_ymm2;}break; -case RDI_RegCodeX86_ymm3:{result = REGS_RegCodeX86_ymm3;}break; -case RDI_RegCodeX86_ymm4:{result = REGS_RegCodeX86_ymm4;}break; -case RDI_RegCodeX86_ymm5:{result = REGS_RegCodeX86_ymm5;}break; -case RDI_RegCodeX86_ymm6:{result = REGS_RegCodeX86_ymm6;}break; -case RDI_RegCodeX86_ymm7:{result = REGS_RegCodeX86_ymm7;}break; -} -}break; -} -return result; -} diff --git a/src/regs/rdi/regs_rdi.h b/src/regs/rdi/regs_rdi.h deleted file mode 100644 index a7fadd80..00000000 --- a/src/regs/rdi/regs_rdi.h +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef REGS_RDI_H -#define REGS_RDI_H - -internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code); -internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode reg); - -#endif //REGS_RDI_H diff --git a/src/regs/rdi/regs_rdi.mdesk b/src/regs/rdi/regs_rdi.mdesk deleted file mode 100644 index 1ef1197c..00000000 --- a/src/regs/rdi/regs_rdi.mdesk +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: RADDBG Converter Helper Implementation Generators - -@gen @c_file -{ - `internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Arch arch, REGS_RegCode code)`; - `{`; - `RDI_RegCode result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - `case Arch_x64:`; - `{`; - `switch(code)` - `{`; - `default:{}break;`; - @expand(REGS_RegTableX64 a) `case REGS_RegCodeX64_$(a.name):{result = RDI_RegCodeX64_$(a.name);}break;`; - `}`; - `}break;`; - `case Arch_x86:`; - `{`; - `switch(code)` - `{`; - `default:{}break;`; - @expand(REGS_RegTableX86 a) `case REGS_RegCodeX86_$(a.name):{result = RDI_RegCodeX86_$(a.name);}break;`; - `}`; - `}break;`; - `}`; - `return result;`; - `}`; -} - -@gen @c_file -{ - `internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Arch arch, RDI_RegCode code)`; - `{`; - `REGS_RegCode result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - `case Arch_x64:`; - `{`; - `switch(code)` - `{`; - `default:{}break;`; - @expand(REGS_RegTableX64 a) `case RDI_RegCodeX64_$(a.name):{result = REGS_RegCodeX64_$(a.name);}break;`; - `}`; - `}break;`; - `case Arch_x86:`; - `{`; - `switch(code)` - `{`; - `default:{}break;`; - @expand(REGS_RegTableX86 a) `case RDI_RegCodeX86_$(a.name):{result = REGS_RegCodeX86_$(a.name);}break;`; - `}`; - `}break;`; - `}`; - `return result;`; - `}`; -} diff --git a/src/regs/regs.c b/src/regs/regs.c deleted file mode 100644 index f55d133a..00000000 --- a/src/regs/regs.c +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Generated Code - -#include "regs/generated/regs.meta.c" - -//////////////////////////////// -//~ rjf: Helpers - -internal U64 -regs_rip_from_arch_block(Arch arch, void *block) -{ - U64 result = 0; - if(block != 0) switch(arch) - { - default:{}break; - case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rip.u64;}break; - case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->eip.u32;}break; - } - return result; -} - -internal U64 -regs_rsp_from_arch_block(Arch arch, void *block) -{ - U64 result = 0; - if(block != 0) switch(arch) - { - default:{}break; - case Arch_x64:{result = ((REGS_RegBlockX64 *)block)->rsp.u64;}break; - case Arch_x86:{result = (U64)((REGS_RegBlockX86 *)block)->esp.u32;}break; - } - return result; -} - -internal void -regs_arch_block_write_rip(Arch arch, void *block, U64 rip) -{ - if(block != 0) switch(arch) - { - default:{}break; - case Arch_x64:{((REGS_RegBlockX64 *)block)->rip.u64 = rip;}break; - case Arch_x86:{((REGS_RegBlockX86 *)block)->eip.u32 = (U32)rip;}break; - } -} - -internal void -regs_arch_block_write_rsp(Arch arch, void *block, U64 rsp) -{ - if(block != 0) switch(arch) - { - default:{}break; - case Arch_x64:{((REGS_RegBlockX64 *)block)->rsp.u64 = rsp;}break; - case Arch_x86:{((REGS_RegBlockX86 *)block)->esp.u32 = (U32)rsp;}break; - } -} diff --git a/src/regs/regs.h b/src/regs/regs.h deleted file mode 100644 index 4d781fc9..00000000 --- a/src/regs/regs.h +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef REGS_H -#define REGS_H - -//////////////////////////////// -//~ rjf: Register Usage Kinds - -typedef enum REGS_UsageKind -{ - REGS_UsageKind_Normal, - REGS_UsageKind_Vector, -} -REGS_UsageKind; - -//////////////////////////////// -//~ rjf: Register Types - -typedef U8 REGS_RegCode; -typedef U8 REGS_AliasCode; - -typedef union REGS_Reg16 REGS_Reg16; -union REGS_Reg16 -{ - U8 v[2]; - U16 u16; -}; - -typedef union REGS_Reg32 REGS_Reg32; -union REGS_Reg32 -{ - U8 v[4]; - U32 u32; - F32 f32; -}; - -typedef union REGS_Reg64 REGS_Reg64; -union REGS_Reg64 -{ - U8 v[8]; - U64 u64; - F64 f64; -}; - -#pragma pack(push, 1) -typedef struct REGS_Reg80 REGS_Reg80; -struct REGS_Reg80 -{ - U64 int1_frac63; - U16 sign1_exp15; -}; -#pragma pack(pop) - -typedef union REGS_Reg128 REGS_Reg128; -union REGS_Reg128 -{ - U8 v[16]; - U32 u32[4]; - F32 f32[4]; - U64 u64[2]; - F64 f64[2]; -}; - -typedef union REGS_Reg256 REGS_Reg256; -union REGS_Reg256 -{ - U8 v[32]; - U32 u32[8]; - F32 f32[8]; - U64 u64[4]; - F64 f64[4]; -}; - -typedef union REGS_Reg512 REGS_Reg512; -union REGS_Reg512 -{ - U8 v[64]; - U32 u32[16]; - F32 f32[16]; - U64 u64[8]; - F64 f64[8]; -}; - -//////////////////////////////// -//~ rjf: Register Slicing Types - -typedef struct REGS_Rng REGS_Rng; -struct REGS_Rng -{ - U16 byte_off; - U16 byte_size; -}; - -typedef struct REGS_Slice REGS_Slice; -struct REGS_Slice -{ - U16 code; - U8 byte_off; - U8 byte_size; -}; - -//////////////////////////////// -//~ rjf: Generated Code - -#include "regs/generated/regs.meta.h" - -//////////////////////////////// -//~ rjf: Helpers - -internal U64 regs_block_size_from_arch(Arch arch); -internal U64 regs_reg_code_count_from_arch(Arch arch); -internal U64 regs_alias_code_count_from_arch(Arch arch); -internal String8 *regs_reg_code_string_table_from_arch(Arch arch); -internal String8 *regs_alias_code_string_table_from_arch(Arch arch); -internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch); -internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch); -internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch); -internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch); -internal U64 regs_rip_from_arch_block(Arch arch, void *block); -internal U64 regs_rsp_from_arch_block(Arch arch, void *block); -internal void regs_arch_block_write_rip(Arch arch, void *block, U64 rip); -internal void regs_arch_block_write_rsp(Arch arch, void *block, U64 rsp); - -#endif // REGS_H diff --git a/src/regs/regs.mdesk b/src/regs/regs.mdesk deleted file mode 100644 index a26bdf09..00000000 --- a/src/regs/regs.mdesk +++ /dev/null @@ -1,586 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: X64 Tables - -@table(name size usage) -REGS_RegTableX64: -{ - {rax 64 Normal} - {rcx 64 Normal} - {rdx 64 Normal} - {rbx 64 Normal} - {rsp 64 Normal} - {rbp 64 Normal} - {rsi 64 Normal} - {rdi 64 Normal} - {r8 64 Normal} - {r9 64 Normal} - {r10 64 Normal} - {r11 64 Normal} - {r12 64 Normal} - {r13 64 Normal} - {r14 64 Normal} - {r15 64 Normal} - {fsbase 64 Normal} - {gsbase 64 Normal} - {rip 64 Normal} - {rflags 64 Normal} - {dr0 64 Normal} - {dr1 64 Normal} - {dr2 64 Normal} - {dr3 64 Normal} - {dr4 64 Normal} - {dr5 64 Normal} - {dr6 64 Normal} - {dr7 64 Normal} - {fpr0 80 Normal} - {fpr1 80 Normal} - {fpr2 80 Normal} - {fpr3 80 Normal} - {fpr4 80 Normal} - {fpr5 80 Normal} - {fpr6 80 Normal} - {fpr7 80 Normal} - {st0 80 Normal} - {st1 80 Normal} - {st2 80 Normal} - {st3 80 Normal} - {st4 80 Normal} - {st5 80 Normal} - {st6 80 Normal} - {st7 80 Normal} - {fcw 16 Normal} - {fsw 16 Normal} - {ftw 16 Normal} - {fop 16 Normal} - {fcs 16 Normal} - {fds 16 Normal} - {fip 64 Normal} - {fdp 64 Normal} - {mxcsr 32 Normal} - {mxcsr_mask 32 Normal} - {ss 16 Normal} - {cs 16 Normal} - {ds 16 Normal} - {es 16 Normal} - {fs 16 Normal} - {gs 16 Normal} - {zmm0 512 Vector} - {zmm1 512 Vector} - {zmm2 512 Vector} - {zmm3 512 Vector} - {zmm4 512 Vector} - {zmm5 512 Vector} - {zmm6 512 Vector} - {zmm7 512 Vector} - {zmm8 512 Vector} - {zmm9 512 Vector} - {zmm10 512 Vector} - {zmm11 512 Vector} - {zmm12 512 Vector} - {zmm13 512 Vector} - {zmm14 512 Vector} - {zmm15 512 Vector} - {zmm16 512 Vector} - {zmm17 512 Vector} - {zmm18 512 Vector} - {zmm19 512 Vector} - {zmm20 512 Vector} - {zmm21 512 Vector} - {zmm22 512 Vector} - {zmm23 512 Vector} - {zmm24 512 Vector} - {zmm25 512 Vector} - {zmm26 512 Vector} - {zmm27 512 Vector} - {zmm28 512 Vector} - {zmm29 512 Vector} - {zmm30 512 Vector} - {zmm31 512 Vector} - {k0 64 Normal} - {k1 64 Normal} - {k2 64 Normal} - {k3 64 Normal} - {k4 64 Normal} - {k5 64 Normal} - {k6 64 Normal} - {k7 64 Normal} - {cetmsr 64 Normal} - {cetssp 64 Normal} -} - -@table(name base off size usage) -REGS_AliasTableX64: -{ - {eax rax 0 32 Normal} - {ecx rcx 0 32 Normal} - {edx rdx 0 32 Normal} - {ebx rbx 0 32 Normal} - {esp rsp 0 32 Normal} - {ebp rbp 0 32 Normal} - {esi rsi 0 32 Normal} - {edi rdi 0 32 Normal} - {r8d r8 0 32 Normal} - {r9d r9 0 32 Normal} - {r10d r10 0 32 Normal} - {r11d r11 0 32 Normal} - {r12d r12 0 32 Normal} - {r13d r13 0 32 Normal} - {r14d r14 0 32 Normal} - {r15d r15 0 32 Normal} - - // TODO(allen): figure this one out; visual studio disagrees - {eip rip 0 32 Normal} - - {eflags rflags 0 32 Normal} - {ax rax 0 16 Normal} - {cx rcx 0 16 Normal} - {dx rdx 0 16 Normal} - {bx rbx 0 16 Normal} - {si rsi 0 16 Normal} - {di rdi 0 16 Normal} - {sp rsp 0 16 Normal} - {bp rbp 0 16 Normal} - {ip rip 0 16 Normal} - {r8w r8 0 16 Normal} - {r9w r9 0 16 Normal} - {r10w r10 0 16 Normal} - {r11w r11 0 16 Normal} - {r12w r12 0 16 Normal} - {r13w r13 0 16 Normal} - {r14w r14 0 16 Normal} - {r15w r15 0 16 Normal} - {al rax 0 8 Normal} - {cl rcx 0 8 Normal} - {dl rdx 0 8 Normal} - {bl rbx 0 8 Normal} - {sil rsi 0 8 Normal} - {dil rdi 0 8 Normal} - {bpl rbp 0 8 Normal} - {spl rsp 0 8 Normal} - {r8b r8 0 8 Normal} - {r9b r9 0 8 Normal} - {r10b r10 0 8 Normal} - {r11b r11 0 8 Normal} - {r12b r12 0 8 Normal} - {r13b r13 0 8 Normal} - {r14b r14 0 8 Normal} - {r15b r15 0 8 Normal} - {ah rax 8 8 Normal} - {ch rcx 8 8 Normal} - {dh rdx 8 8 Normal} - {bh rbx 8 8 Normal} - {xmm0 zmm0 0 128 Vector} - {xmm1 zmm1 0 128 Vector} - {xmm2 zmm2 0 128 Vector} - {xmm3 zmm3 0 128 Vector} - {xmm4 zmm4 0 128 Vector} - {xmm5 zmm5 0 128 Vector} - {xmm6 zmm6 0 128 Vector} - {xmm7 zmm7 0 128 Vector} - {xmm8 zmm8 0 128 Vector} - {xmm9 zmm9 0 128 Vector} - {xmm10 zmm10 0 128 Vector} - {xmm11 zmm11 0 128 Vector} - {xmm12 zmm12 0 128 Vector} - {xmm13 zmm13 0 128 Vector} - {xmm14 zmm14 0 128 Vector} - {xmm15 zmm15 0 128 Vector} - {ymm0 zmm0 0 256 Vector} - {ymm1 zmm1 0 256 Vector} - {ymm2 zmm2 0 256 Vector} - {ymm3 zmm3 0 256 Vector} - {ymm4 zmm4 0 256 Vector} - {ymm5 zmm5 0 256 Vector} - {ymm6 zmm6 0 256 Vector} - {ymm7 zmm7 0 256 Vector} - {ymm8 zmm8 0 256 Vector} - {ymm9 zmm9 0 256 Vector} - {ymm10 zmm10 0 256 Vector} - {ymm11 zmm11 0 256 Vector} - {ymm12 zmm12 0 256 Vector} - {ymm13 zmm13 0 256 Vector} - {ymm14 zmm14 0 256 Vector} - {ymm15 zmm15 0 256 Vector} - {mm0 fpr0 0 64 Vector} - {mm1 fpr1 0 64 Vector} - {mm2 fpr2 0 64 Vector} - {mm3 fpr3 0 64 Vector} - {mm4 fpr4 0 64 Vector} - {mm5 fpr5 0 64 Vector} - {mm6 fpr6 0 64 Vector} - {mm7 fpr7 0 64 Vector} -} - -//////////////////////////////// -//~ rjf: X86 Tables - -@table(name size usage) -REGS_RegTableX86: -{ - {eax 32 Normal} - {ecx 32 Normal} - {edx 32 Normal} - {ebx 32 Normal} - {esp 32 Normal} - {ebp 32 Normal} - {esi 32 Normal} - {edi 32 Normal} - {fsbase 32 Normal} - {gsbase 32 Normal} - {eflags 32 Normal} - {eip 32 Normal} - {dr0 32 Normal} - {dr1 32 Normal} - {dr2 32 Normal} - {dr3 32 Normal} - {dr4 32 Normal} - {dr5 32 Normal} - {dr6 32 Normal} - {dr7 32 Normal} - // FSave registers - // TODO(allen): I am suspicious of this stuff here. - // Are fpr0-7 and st0-7 actually different things? Visual studio doesn't show - // frp0-7. Not sure if the mm0-7 aliases are setup the right way either. - {fpr0 80 Normal} - {fpr1 80 Normal} - {fpr2 80 Normal} - {fpr3 80 Normal} - {fpr4 80 Normal} - {fpr5 80 Normal} - {fpr6 80 Normal} - {fpr7 80 Normal} - {st0 80 Normal} - {st1 80 Normal} - {st2 80 Normal} - {st3 80 Normal} - {st4 80 Normal} - {st5 80 Normal} - {st6 80 Normal} - {st7 80 Normal} - {fcw 16 Normal} - {fsw 16 Normal} - {ftw 16 Normal} - {fop 16 Normal} - {fcs 16 Normal} - {fds 16 Normal} - {fip 32 Normal} - {fdp 32 Normal} - {mxcsr 32 Normal} - // TODO(allen): I don't think this is really a "register" - think about this... - {mxcsr_mask 32 Normal} - {ss 16 Normal} - {cs 16 Normal} - {ds 16 Normal} - {es 16 Normal} - {fs 16 Normal} - {gs 16 Normal} - // SIMD REGISTERS - {ymm0 256 Vector} - {ymm1 256 Vector} - {ymm2 256 Vector} - {ymm3 256 Vector} - {ymm4 256 Vector} - {ymm5 256 Vector} - {ymm6 256 Vector} - {ymm7 256 Vector} -} - -@table(name base off size usage) -REGS_AliasTableX86: -{ - {ax eax 0 16 Normal} - {cx ecx 0 16 Normal} - {bx ebx 0 16 Normal} - {dx edx 0 16 Normal} - {sp esp 0 16 Normal} - {bp ebp 0 16 Normal} - {si esi 0 16 Normal} - {di edi 0 16 Normal} - {ip eip 0 16 Normal} - {ah eax 8 8 Normal} - {ch ecx 8 8 Normal} - {dh edx 8 8 Normal} - {bh ebx 8 8 Normal} - {al eax 0 8 Normal} - {cl ecx 0 8 Normal} - {dl edx 0 8 Normal} - {bl ebx 0 8 Normal} - {bpl ebp 0 8 Normal} - {spl esp 0 8 Normal} - {xmm0 ymm0 0 128 Vector} - {xmm1 ymm1 0 128 Vector} - {xmm2 ymm2 0 128 Vector} - {xmm3 ymm3 0 128 Vector} - {xmm4 ymm4 0 128 Vector} - {xmm5 ymm5 0 128 Vector} - {xmm6 ymm6 0 128 Vector} - {xmm7 ymm7 0 128 Vector} - {mm0 fpr0 0 64 Vector} - {mm1 fpr1 0 64 Vector} - {mm2 fpr2 0 64 Vector} - {mm3 fpr3 0 64 Vector} - {mm4 fpr4 0 64 Vector} - {mm5 fpr5 0 64 Vector} - {mm6 fpr6 0 64 Vector} - {mm7 fpr7 0 64 Vector} -} - -//////////////////////////////// -//~ rjf: Architecture Tables - -@table(name, name_lower) -REGS_ArchTable: -{ - {X64 x64} - {X86 x86} -} - -//////////////////////////////// -//~ rjf: X64 Generators - -@enum REGS_RegCodeX64: -{ - NULL, - @expand(REGS_RegTableX64 a) `$(a.name)`, - COUNT, -} - -@enum REGS_AliasCodeX64: -{ - NULL, - @expand(REGS_AliasTableX64 a) `$(a.name)`, - COUNT, -} - -@struct REGS_RegBlockX64: -{ - @expand(REGS_RegTableX64 a) `REGS_Reg$(a.size) $(a.name)`, -} - -@data(REGS_UsageKind) regs_g_reg_code_x64_usage_kind_table: -{ - `REGS_UsageKind_Normal`; - @expand(REGS_RegTableX64 a) `REGS_UsageKind_$(a.usage)`; -} - -@data(REGS_UsageKind) -regs_g_alias_code_x64_usage_kind_table: -{ - `REGS_UsageKind_Normal`; - @expand(REGS_AliasTableX64 a) `REGS_UsageKind_$(a.usage)`; -} - -@data(String8) regs_g_reg_code_x64_string_table: -{ - `str8_lit_comp("")`; - @expand(REGS_RegTableX64 a) `str8_lit_comp("$(a.name)")`; -} - -@data(String8) regs_g_alias_code_x64_string_table: -{ - `str8_lit_comp("")`; - @expand(REGS_AliasTableX64 a) `str8_lit_comp("$(a.name)")`; -} - -@data(REGS_Rng) regs_g_reg_code_x64_rng_table: -{ - `{0}`; - @expand(REGS_RegTableX64 a) `{(U16)OffsetOf(REGS_RegBlockX64, $(a.name)), $(a.size/8)}`, -} - -@data(REGS_Slice) regs_g_alias_code_x64_slice_table: -{ - `{0}`; - @expand(REGS_AliasTableX64 a) `{REGS_RegCodeX64_$(a.base), $(a.off/8), $(a.size/8)}`, -} - -//////////////////////////////// -//~ rjf: X86 Generators - -@enum REGS_RegCodeX86: -{ - NULL, - @expand(REGS_RegTableX86 a) `$(a.name)`, - COUNT, -} - -@enum REGS_AliasCodeX86: -{ - NULL, - @expand(REGS_AliasTableX86 a) `$(a.name)`, - COUNT, -} - -@struct REGS_RegBlockX86: -{ - @expand(REGS_RegTableX86 a) `REGS_Reg$(a.size) $(a.name)`, -} - -@data(REGS_UsageKind) -regs_g_reg_code_x86_usage_kind_table: -{ - `REGS_UsageKind_Normal`; - @expand(REGS_RegTableX86 a) `REGS_UsageKind_$(a.usage)`; -} - -@data(REGS_UsageKind) regs_g_alias_code_x86_usage_kind_table: -{ - `REGS_UsageKind_Normal`; - @expand(REGS_AliasTableX86 a) `REGS_UsageKind_$(a.usage)`; -} - -@data(String8) regs_g_reg_code_x86_string_table: -{ - `str8_lit_comp("")`; - @expand(REGS_RegTableX86 a) `str8_lit_comp("$(a.name)")`; -} - -@data(String8) regs_g_alias_code_x86_string_table: -{ - `str8_lit_comp("")`; - @expand(REGS_AliasTableX86 a) `str8_lit_comp("$(a.name)")`; -} - -@data(REGS_Rng) regs_g_reg_code_x86_rng_table: -{ - `{0}`; - @expand(REGS_RegTableX86 a) `{(U16)OffsetOf(REGS_RegBlockX86, $(a.name)), $(a.size/8)}`, -} - -@data(REGS_Slice) regs_g_alias_code_x86_slice_table: -{ - `{0}`; - @expand(REGS_AliasTableX86 a) `{REGS_RegCodeX86_$(a.base), $(a.off/8), $(a.size/8)}`, -} - -//////////////////////////////// -//~ rjf: Architecture-Dynamic Helper Implementation Generators - -@c_file @gen -{ - `internal U64 regs_block_size_from_arch(Arch arch)`; - `{`; - `U64 result = 8;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = sizeof(REGS_RegBlock$(a.name));}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal U64 regs_reg_code_count_from_arch(Arch arch)`; - `{`; - `U64 result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = REGS_RegCode$(a.name)_COUNT;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal U64 regs_alias_code_count_from_arch(Arch arch)`; - `{`; - `U64 result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = REGS_AliasCode$(a.name)_COUNT;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal String8 *regs_reg_code_string_table_from_arch(Arch arch)`; - `{`; - `String8 *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_string_table;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal String8 *regs_alias_code_string_table_from_arch(Arch arch)`; - `{`; - `String8 *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_string_table;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal REGS_Rng *regs_reg_code_rng_table_from_arch(Arch arch)`; - `{`; - `REGS_Rng *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_rng_table;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal REGS_Slice *regs_alias_code_slice_table_from_arch(Arch arch)`; - `{`; - `REGS_Slice *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_slice_table;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal REGS_UsageKind *regs_reg_code_usage_kind_table_from_arch(Arch arch)`; - `{`; - `REGS_UsageKind *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_reg_code_$(a.name_lower)_usage_kind_table;}break;`; - `}`; - `return result;`; - `}`; -} - -@c_file @gen -{ - `internal REGS_UsageKind *regs_alias_code_usage_kind_table_from_arch(Arch arch)`; - `{`; - `REGS_UsageKind *result = 0;`; - `switch(arch)`; - `{`; - `default:{}break;`; - @expand(REGS_ArchTable a) `case Arch_$(a.name_lower):{result = regs_g_alias_code_$(a.name_lower)_usage_kind_table;}break;`; - `}`; - `return result;`; - `}`; -} diff --git a/src/render/d3d11/generated/render_d3d11.meta.c b/src/render/d3d11/generated/render_d3d11.meta.c index e6393a68..2b5ce20c 100644 --- a/src/render/d3d11/generated/render_d3d11.meta.c +++ b/src/render/d3d11/generated/render_d3d11.meta.c @@ -1,69 +1,69 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8* r_d3d11_g_vshad_kind_source_table[5] = -{ -&r_d3d11_g_rect_shader_src, -&r_d3d11_g_blur_shader_src, -&r_d3d11_g_mesh_shader_src, -&r_d3d11_g_geo3dcomposite_shader_src, -&r_d3d11_g_finalize_shader_src, -}; - -String8 r_d3d11_g_vshad_kind_source_name_table[5] = -{ -str8_lit_comp("r_d3d11_g_rect_shader_src"), -str8_lit_comp("r_d3d11_g_blur_shader_src"), -str8_lit_comp("r_d3d11_g_mesh_shader_src"), -str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"), -str8_lit_comp("r_d3d11_g_finalize_shader_src"), -}; - -D3D11_INPUT_ELEMENT_DESC * r_d3d11_g_vshad_kind_elements_ptr_table[5] = -{ -r_d3d11_g_rect_ilay_elements, -0, -r_d3d11_g_mesh_ilay_elements, -0, -0, -}; - -U64 r_d3d11_g_vshad_kind_elements_count_table[5] = -{ -ArrayCount(r_d3d11_g_rect_ilay_elements) , - 0, -ArrayCount(r_d3d11_g_mesh_ilay_elements) , - 0, - 0, -}; - -String8* r_d3d11_g_pshad_kind_source_table[5] = -{ -&r_d3d11_g_rect_shader_src, -&r_d3d11_g_blur_shader_src, -&r_d3d11_g_mesh_shader_src, -&r_d3d11_g_geo3dcomposite_shader_src, -&r_d3d11_g_finalize_shader_src, -}; - -String8 r_d3d11_g_pshad_kind_source_name_table[5] = -{ -str8_lit_comp("r_d3d11_g_rect_shader_src"), -str8_lit_comp("r_d3d11_g_blur_shader_src"), -str8_lit_comp("r_d3d11_g_mesh_shader_src"), -str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"), -str8_lit_comp("r_d3d11_g_finalize_shader_src"), -}; - -U64 r_d3d11_g_uniform_type_kind_size_table[3] = -{ -sizeof(R_D3D11_Uniforms_Rect), -sizeof(R_D3D11_Uniforms_Blur), -sizeof(R_D3D11_Uniforms_Mesh), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8* r_d3d11_g_vshad_kind_source_table[5] = +{ +&r_d3d11_g_rect_shader_src, +&r_d3d11_g_blur_shader_src, +&r_d3d11_g_mesh_shader_src, +&r_d3d11_g_geo3dcomposite_shader_src, +&r_d3d11_g_finalize_shader_src, +}; + +String8 r_d3d11_g_vshad_kind_source_name_table[5] = +{ +str8_lit_comp("r_d3d11_g_rect_shader_src"), +str8_lit_comp("r_d3d11_g_blur_shader_src"), +str8_lit_comp("r_d3d11_g_mesh_shader_src"), +str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"), +str8_lit_comp("r_d3d11_g_finalize_shader_src"), +}; + +D3D11_INPUT_ELEMENT_DESC * r_d3d11_g_vshad_kind_elements_ptr_table[5] = +{ +r_d3d11_g_rect_ilay_elements, +0, +r_d3d11_g_mesh_ilay_elements, +0, +0, +}; + +U64 r_d3d11_g_vshad_kind_elements_count_table[5] = +{ +ArrayCount(r_d3d11_g_rect_ilay_elements) , + 0, +ArrayCount(r_d3d11_g_mesh_ilay_elements) , + 0, + 0, +}; + +String8* r_d3d11_g_pshad_kind_source_table[5] = +{ +&r_d3d11_g_rect_shader_src, +&r_d3d11_g_blur_shader_src, +&r_d3d11_g_mesh_shader_src, +&r_d3d11_g_geo3dcomposite_shader_src, +&r_d3d11_g_finalize_shader_src, +}; + +String8 r_d3d11_g_pshad_kind_source_name_table[5] = +{ +str8_lit_comp("r_d3d11_g_rect_shader_src"), +str8_lit_comp("r_d3d11_g_blur_shader_src"), +str8_lit_comp("r_d3d11_g_mesh_shader_src"), +str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"), +str8_lit_comp("r_d3d11_g_finalize_shader_src"), +}; + +U64 r_d3d11_g_uniform_type_kind_size_table[3] = +{ +sizeof(R_D3D11_Uniforms_Rect), +sizeof(R_D3D11_Uniforms_Blur), +sizeof(R_D3D11_Uniforms_Mesh), +}; + +C_LINKAGE_END + diff --git a/src/render/d3d11/generated/render_d3d11.meta.h b/src/render/d3d11/generated/render_d3d11.meta.h index cc1949a7..ff65e632 100644 --- a/src/render/d3d11/generated/render_d3d11.meta.h +++ b/src/render/d3d11/generated/render_d3d11.meta.h @@ -1,483 +1,483 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef RENDER_D3D11_META_H -#define RENDER_D3D11_META_H - -typedef enum R_D3D11_VShadKind -{ -R_D3D11_VShadKind_Rect, -R_D3D11_VShadKind_Blur, -R_D3D11_VShadKind_Mesh, -R_D3D11_VShadKind_Geo3DComposite, -R_D3D11_VShadKind_Finalize, -R_D3D11_VShadKind_COUNT, -} R_D3D11_VShadKind; - -typedef enum R_D3D11_PShadKind -{ -R_D3D11_PShadKind_Rect, -R_D3D11_PShadKind_Blur, -R_D3D11_PShadKind_Mesh, -R_D3D11_PShadKind_Geo3DComposite, -R_D3D11_PShadKind_Finalize, -R_D3D11_PShadKind_COUNT, -} R_D3D11_PShadKind; - -typedef enum R_D3D11_UniformTypeKind -{ -R_D3D11_UniformTypeKind_Rect, -R_D3D11_UniformTypeKind_Blur, -R_D3D11_UniformTypeKind_Mesh, -R_D3D11_UniformTypeKind_COUNT, -} R_D3D11_UniformTypeKind; - -C_LINKAGE_BEGIN -read_only global String8 r_d3d11_g_rect_shader_src = -str8_lit_comp( -"" -"\n" -"cbuffer Globals : register(b0)\n" -"{\n" -" float2 viewport_size_px;\n" -" float opacity;\n" -" row_major float4x4 texture_sample_channel_map;\n" -" float2 texture_t2d_size_px;\n" -" row_major float3x3 xform;\n" -" float2 xform_scale;\n" -"}\n" -"\n" -"struct CPU2Vertex\n" -"{\n" -" float4 dst_rect_px : POS;\n" -" float4 src_rect_px : TEX;\n" -" float4 color00 : COL0;\n" -" float4 color01 : COL1;\n" -" float4 color10 : COL2;\n" -" float4 color11 : COL3;\n" -" float4 corner_radii_px : CRAD;\n" -" float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused\n" -" uint vertex_id : SV_VertexID;\n" -"};\n" -"\n" -"struct Vertex2Pixel\n" -"{\n" -" float4 position : SV_POSITION;\n" -" nointerpolation float2 rect_half_size_px : PSIZE;\n" -" float2 texcoord_pct : TEX;\n" -" float2 sdf_sample_pos : SDF;\n" -" float4 tint : TINT;\n" -" float corner_radius_px : CRAD;\n" -" nointerpolation float border_thickness_px : BTHC;\n" -" nointerpolation float softness_px : SFT;\n" -" nointerpolation float omit_texture : OTX;\n" -"};\n" -"\n" -"Texture2D main_t2d : register(t0);\n" -"SamplerState main_sampler : register(s0);\n" -"\n" -"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n" -"{\n" -" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" -"}\n" -"\n" -"float linear_from_srgb_f32(float x)\n" -"{\n" -" return x < 0.0404482362771082 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n" -"}\n" -"\n" -"float4 linear_from_srgba(float4 v)\n" -"{\n" -" float4 result = float4(linear_from_srgb_f32(v.x),\n" -" linear_from_srgb_f32(v.y),\n" -" linear_from_srgb_f32(v.z),\n" -" v.w);\n" -" return result;\n" -"}\n" -"\n" -"//- rjf: vertex shader\n" -"\n" -"Vertex2Pixel\n" -"vs_main(CPU2Vertex cpu2vertex)\n" -"{\n" -" //- rjf: unpack & xform rectangle src/dst vertices\n" -" float2 dst_p0_px = cpu2vertex.dst_rect_px.xy;\n" -" float2 dst_p1_px = cpu2vertex.dst_rect_px.zw;\n" -" float2 src_p0_px = cpu2vertex.src_rect_px.xy;\n" -" float2 src_p1_px = cpu2vertex.src_rect_px.zw;\n" -" float2 dst_size_px = abs(dst_p1_px - dst_p0_px);\n" -" \n" -" //- rjf: unpack style params\n" -" float border_thickness_px = cpu2vertex.style_params.x;\n" -" float softness_px = cpu2vertex.style_params.y;\n" -" float omit_texture = cpu2vertex.style_params.z;\n" -" \n" -" //- rjf: prep per-vertex arrays to sample from (p: position, t: texcoord, c: colorcoord, r: cornerradius)\n" -" float2 dst_p_verts_px[] =\n" -" {\n" -" float2(dst_p0_px.x, dst_p1_px.y),\n" -" float2(dst_p0_px.x, dst_p0_px.y),\n" -" float2(dst_p1_px.x, dst_p1_px.y),\n" -" float2(dst_p1_px.x, dst_p0_px.y),\n" -" };\n" -" float2 src_p_verts_px[] =\n" -" {\n" -" float2(src_p0_px.x, src_p1_px.y),\n" -" float2(src_p0_px.x, src_p0_px.y),\n" -" float2(src_p1_px.x, src_p1_px.y),\n" -" float2(src_p1_px.x, src_p0_px.y),\n" -" };\n" -" float dst_r_verts_px[] =\n" -" {\n" -" cpu2vertex.corner_radii_px.y,\n" -" cpu2vertex.corner_radii_px.x,\n" -" cpu2vertex.corner_radii_px.w,\n" -" cpu2vertex.corner_radii_px.z,\n" -" };\n" -" float4 src_color[] =\n" -" {\n" -" cpu2vertex.color01,\n" -" cpu2vertex.color00,\n" -" cpu2vertex.color11,\n" -" cpu2vertex.color10,\n" -" };\n" -" float2 dst_verts_pct = float2((cpu2vertex.vertex_id >> 1) ? 1.f : 0.f,\n" -" (cpu2vertex.vertex_id & 1) ? 0.f : 1.f);\n" -" \n" -" // rjf: fill vertex -> pixel data\n" -" Vertex2Pixel vertex2pixel;\n" -" {\n" -" float2 xformed_pos = mul(xform, float3(dst_p_verts_px[cpu2vertex.vertex_id], 1.f)).xy;\n" -" xformed_pos.y = viewport_size_px.y - xformed_pos.y;\n" -" vertex2pixel.position.xy = 2.f * xformed_pos/viewport_size_px - 1.f;\n" -" vertex2pixel.position.z = 0.f;\n" -" vertex2pixel.position.w = 1.f;\n" -" vertex2pixel.rect_half_size_px = dst_size_px / 2.f * xform_scale;\n" -" vertex2pixel.texcoord_pct = src_p_verts_px[cpu2vertex.vertex_id] / texture_t2d_size_px;\n" -" vertex2pixel.sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * vertex2pixel.rect_half_size_px;\n" -" vertex2pixel.tint = src_color[cpu2vertex.vertex_id];\n" -" vertex2pixel.corner_radius_px = dst_r_verts_px[cpu2vertex.vertex_id];\n" -" vertex2pixel.border_thickness_px = border_thickness_px;\n" -" vertex2pixel.softness_px = softness_px;\n" -" vertex2pixel.omit_texture = omit_texture;\n" -" }\n" -" return vertex2pixel;\n" -"}\n" -"\n" -"//- rjf: pixel shader\n" -"\n" -"float4\n" -"ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET\n" -"{\n" -" // rjf: blend corner colors to produce final tint\n" -" float4 tint = vertex2pixel.tint;\n" -" \n" -" // rjf: sample texture\n" -" float4 albedo_sample = float4(1, 1, 1, 1);\n" -" if(vertex2pixel.omit_texture < 1)\n" -" {\n" -" albedo_sample = mul(main_t2d.Sample(main_sampler, vertex2pixel.texcoord_pct), texture_sample_channel_map);\n" -" albedo_sample = linear_from_srgba(albedo_sample);\n" -" }\n" -" \n" -" // rjf: determine SDF sample position\n" -" float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;\n" -" \n" -" // rjf: sample for borders\n" -" float border_sdf_t = 1;\n" -" if(vertex2pixel.border_thickness_px > 0)\n" -" {\n" -" float border_sdf_s = rect_sdf(sdf_sample_pos,\n" -" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f) - vertex2pixel.border_thickness_px,\n" -" max(vertex2pixel.corner_radius_px-vertex2pixel.border_thickness_px, 0));\n" -" border_sdf_t = smoothstep(0, 2*vertex2pixel.softness_px, border_sdf_s);\n" -" }\n" -" if(border_sdf_t < 0.001f)\n" -" {\n" -" discard;\n" -" }\n" -" \n" -" // rjf: sample for corners\n" -" float corner_sdf_t = 1;\n" -" if(vertex2pixel.corner_radius_px > 0 || vertex2pixel.softness_px > 0.75f)\n" -" {\n" -" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n" -" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n" -" vertex2pixel.corner_radius_px);\n" -" corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n" -" }\n" -" \n" -" // rjf: form+return final color\n" -" float4 final_color = albedo_sample;\n" -" final_color *= tint;\n" -" final_color.a *= opacity;\n" -" final_color.a *= corner_sdf_t;\n" -" final_color.a *= border_sdf_t;\n" -" return final_color;\n" -"}\n" -"" -); - -read_only global String8 r_d3d11_g_blur_shader_src = -str8_lit_comp( -"" -"\n" -"cbuffer Globals : register(b0)\n" -"{\n" -" float4 rect;\n" -" float4 corner_radii_px;\n" -" float2 direction;\n" -" float2 viewport_size;\n" -" uint blur_count;\n" -"}\n" -"\n" -"cbuffer Kernel : register(b1)\n" -"{\n" -" float4 kernel[32];\n" -"}\n" -"\n" -"struct CPU2Vertex\n" -"{\n" -" uint vertex_id : SV_VertexID;\n" -"};\n" -"\n" -"struct Vertex2Pixel\n" -"{\n" -" float4 position : SV_POSITION;\n" -" float2 texcoord : TEX;\n" -" float2 sdf_sample_pos : SDF;\n" -" nointerpolation float2 rect_half_size : RHS;\n" -" float corner_radius : RAD;\n" -"};\n" -"\n" -"Texture2D stage_t2d : register(t0);\n" -"SamplerState stage_sampler : register(s0);\n" -"\n" -"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n" -"{\n" -" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" -"}\n" -"\n" -"//- rjf: vertex shader\n" -"\n" -"Vertex2Pixel\n" -"vs_main(CPU2Vertex c2v)\n" -"{\n" -" float2 vertex_positions__scrn[] =\n" -" {\n" -" rect.xw,\n" -" rect.xy,\n" -" rect.zw,\n" -" rect.zy,\n" -" };\n" -" float corner_radii__px[] =\n" -" {\n" -" corner_radii_px.y,\n" -" corner_radii_px.x,\n" -" corner_radii_px.w,\n" -" corner_radii_px.z,\n" -" };\n" -" float2 cornercoords__pct = float2((c2v.vertex_id >> 1) ? 1.f : 0.f,\n" -" (c2v.vertex_id & 1) ? 0.f : 1.f);\n" -" \n" -" float2 vertex_position__pct = vertex_positions__scrn[c2v.vertex_id] / viewport_size;\n" -" float2 vertex_position__scr = 2.f * vertex_position__pct - 1.f;\n" -" \n" -" float2 rect_half_size = float2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n" -" \n" -" Vertex2Pixel v2p;\n" -" {\n" -" v2p.position = float4(vertex_position__scr.x, -vertex_position__scr.y, 0.f, 1.f);\n" -" v2p.texcoord = vertex_position__pct;\n" -" v2p.sdf_sample_pos = (2.f * cornercoords__pct - 1.f) * rect_half_size;\n" -" v2p.rect_half_size = rect_half_size - 2.f;\n" -" v2p.corner_radius = corner_radii__px[c2v.vertex_id];\n" -" }\n" -" return v2p;\n" -"}\n" -"\n" -"//- rjf: pixel shader\n" -"\n" -"float4\n" -"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" -"{\n" -" // rjf: blend weighted texture samples into color\n" -" float3 color = kernel[0].x * stage_t2d.Sample(stage_sampler, v2p.texcoord).rgb;\n" -" \n" -" for(uint i = 1; i < blur_count; i += 1)\n" -" {\n" -" float weight = kernel[i].x;\n" -" float offset = kernel[i].y;\n" -" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord - offset * direction).rgb;\n" -" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord + offset * direction).rgb;\n" -" }\n" -" \n" -" // rjf: sample for corners\n" -" float corner_sdf_s = rect_sdf(v2p.sdf_sample_pos, v2p.rect_half_size, v2p.corner_radius);\n" -" float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s);\n" -" \n" -" // rjf: weight output color by sdf\n" -" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n" -" if (corner_sdf_t < 0.9f)\n" -" {\n" -" discard;\n" -" }\n" -" \n" -" return float4(color, 1.f);\n" -"}\n" -"" -); - -read_only global String8 r_d3d11_g_mesh_shader_src = -str8_lit_comp( -"" -"\n" -"cbuffer Uniforms : register(b0)\n" -"{\n" -" row_major float4x4 xform;\n" -"}\n" -"\n" -"struct CPU2Vertex\n" -"{\n" -" float3 position : POS;\n" -" float3 normal : NOR;\n" -" float2 texcoord : TEX;\n" -" float3 color : COL;\n" -"};\n" -"\n" -"struct Vertex2Pixel\n" -"{\n" -" float4 position : SV_POSITION;\n" -" float2 texcoord : TEX;\n" -" float4 color : COL;\n" -"};\n" -"\n" -"Vertex2Pixel vs_main(CPU2Vertex c2v)\n" -"{\n" -" Vertex2Pixel v2p;\n" -" v2p.position = mul(float4(c2v.position, 1.f), xform);\n" -" v2p.texcoord = c2v.texcoord;\n" -" v2p.color = float4(c2v.color, 1.f);\n" -" return v2p;\n" -"}\n" -"\n" -"float4 ps_main(Vertex2Pixel v2p) : SV_TARGET\n" -"{\n" -" return v2p.color;\n" -"}\n" -"" -); - -read_only global String8 r_d3d11_g_geo3dcomposite_shader_src = -str8_lit_comp( -"" -"\n" -"struct CPU2Vertex\n" -"{\n" -" uint vertex_id : SV_VertexID;\n" -"};\n" -"\n" -"struct Vertex2Pixel\n" -"{\n" -" float4 position : SV_POSITION;\n" -" float2 texcoord : TEX;\n" -"};\n" -"\n" -"Texture2D stage_t2d : register(t0);\n" -"SamplerState stage_sampler : register(s0);\n" -"\n" -"//- rjf: vertex shader\n" -"\n" -"Vertex2Pixel\n" -"vs_main(CPU2Vertex c2v)\n" -"{\n" -" float4 vertex_positions__modl[] =\n" -" {\n" -" float4(0, 0, 0, 1),\n" -" float4(0, 1, 0, 1),\n" -" float4(1, 0, 0, 1),\n" -" float4(1, 1, 0, 1),\n" -" };\n" -" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n" -" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n" -" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n" -" texcoord.y = 1-texcoord.y;\n" -" Vertex2Pixel v2p;\n" -" {\n" -" v2p.position = vertex_position__clip;\n" -" v2p.texcoord = texcoord;\n" -" }\n" -" return v2p;\n" -"}\n" -"\n" -"//- rjf: pixel shader\n" -"\n" -"float4\n" -"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" -"{\n" -" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n" -" return final_color;\n" -"}\n" -"" -); - -read_only global String8 r_d3d11_g_finalize_shader_src = -str8_lit_comp( -"" -"\n" -"struct CPU2Vertex\n" -"{\n" -" uint vertex_id : SV_VertexID;\n" -"};\n" -"\n" -"struct Vertex2Pixel\n" -"{\n" -" float4 position : SV_POSITION;\n" -" float2 texcoord : TEX;\n" -"};\n" -"\n" -"Texture2D stage_t2d : register(t0);\n" -"SamplerState stage_sampler : register(s0);\n" -"\n" -"//- rjf: vertex shader\n" -"\n" -"Vertex2Pixel\n" -"vs_main(CPU2Vertex c2v)\n" -"{\n" -" float4 vertex_positions__modl[] =\n" -" {\n" -" float4(0, 0, 0, 1),\n" -" float4(0, 1, 0, 1),\n" -" float4(1, 0, 0, 1),\n" -" float4(1, 1, 0, 1),\n" -" };\n" -" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n" -" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n" -" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n" -" texcoord.y = 1-texcoord.y;\n" -" Vertex2Pixel v2p;\n" -" {\n" -" v2p.position = vertex_position__clip;\n" -" v2p.texcoord = texcoord;\n" -" }\n" -" return v2p;\n" -"}\n" -"\n" -"//- rjf: pixel shader\n" -"\n" -"float4\n" -"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" -"{\n" -" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n" -" final_color.a = 1;\n" -" return final_color;\n" -"}\n" -"" -); - - -C_LINKAGE_END - -#endif // RENDER_D3D11_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RENDER_D3D11_META_H +#define RENDER_D3D11_META_H + +typedef enum R_D3D11_VShadKind +{ +R_D3D11_VShadKind_Rect, +R_D3D11_VShadKind_Blur, +R_D3D11_VShadKind_Mesh, +R_D3D11_VShadKind_Geo3DComposite, +R_D3D11_VShadKind_Finalize, +R_D3D11_VShadKind_COUNT, +} R_D3D11_VShadKind; + +typedef enum R_D3D11_PShadKind +{ +R_D3D11_PShadKind_Rect, +R_D3D11_PShadKind_Blur, +R_D3D11_PShadKind_Mesh, +R_D3D11_PShadKind_Geo3DComposite, +R_D3D11_PShadKind_Finalize, +R_D3D11_PShadKind_COUNT, +} R_D3D11_PShadKind; + +typedef enum R_D3D11_UniformTypeKind +{ +R_D3D11_UniformTypeKind_Rect, +R_D3D11_UniformTypeKind_Blur, +R_D3D11_UniformTypeKind_Mesh, +R_D3D11_UniformTypeKind_COUNT, +} R_D3D11_UniformTypeKind; + +C_LINKAGE_BEGIN +read_only global String8 r_d3d11_g_rect_shader_src = +str8_lit_comp( +"" +"\n" +"cbuffer Globals : register(b0)\n" +"{\n" +" float2 viewport_size_px;\n" +" float opacity;\n" +" row_major float4x4 texture_sample_channel_map;\n" +" float2 texture_t2d_size_px;\n" +" row_major float3x3 xform;\n" +" float2 xform_scale;\n" +"}\n" +"\n" +"struct CPU2Vertex\n" +"{\n" +" float4 dst_rect_px : POS;\n" +" float4 src_rect_px : TEX;\n" +" float4 color00 : COL0;\n" +" float4 color01 : COL1;\n" +" float4 color10 : COL2;\n" +" float4 color11 : COL3;\n" +" float4 corner_radii_px : CRAD;\n" +" float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: shear\n" +" uint vertex_id : SV_VertexID;\n" +"};\n" +"\n" +"struct Vertex2Pixel\n" +"{\n" +" float4 position : SV_POSITION;\n" +" nointerpolation float2 rect_half_size_px : PSIZE;\n" +" float2 texcoord_pct : TEX;\n" +" float2 sdf_sample_pos : SDF;\n" +" float4 tint : TINT;\n" +" float corner_radius_px : CRAD;\n" +" nointerpolation float border_thickness_px : BTHC;\n" +" nointerpolation float softness_px : SFT;\n" +" nointerpolation float omit_texture : OTX;\n" +"};\n" +"\n" +"Texture2D main_t2d : register(t0);\n" +"SamplerState main_sampler : register(s0);\n" +"\n" +"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n" +"{\n" +" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" +"}\n" +"\n" +"float linear_from_srgb_f32(float x)\n" +"{\n" +" return x < 0.0404482362771082 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n" +"}\n" +"\n" +"float4 linear_from_srgba(float4 v)\n" +"{\n" +" float4 result = float4(linear_from_srgb_f32(v.x),\n" +" linear_from_srgb_f32(v.y),\n" +" linear_from_srgb_f32(v.z),\n" +" v.w);\n" +" return result;\n" +"}\n" +"\n" +"//- rjf: vertex shader\n" +"\n" +"Vertex2Pixel\n" +"vs_main(CPU2Vertex cpu2vertex)\n" +"{\n" +" //- rjf: unpack & xform rectangle src/dst vertices\n" +" float2 dst_p0_px = cpu2vertex.dst_rect_px.xy;\n" +" float2 dst_p1_px = cpu2vertex.dst_rect_px.zw;\n" +" float2 src_p0_px = cpu2vertex.src_rect_px.xy;\n" +" float2 src_p1_px = cpu2vertex.src_rect_px.zw;\n" +" float2 dst_size_px = abs(dst_p1_px - dst_p0_px);\n" +" \n" +" //- rjf: unpack style params\n" +" float border_thickness_px = cpu2vertex.style_params.x;\n" +" float softness_px = cpu2vertex.style_params.y;\n" +" float omit_texture = cpu2vertex.style_params.z;\n" +" float shear_px = cpu2vertex.style_params.w;\n" +" \n" +" //- rjf: prep per-vertex arrays to sample from (p: position, t: texcoord, c: colorcoord, r: cornerradius)\n" +" float2 dst_p_verts_px[] =\n" +" {\n" +" float2(dst_p0_px.x, dst_p1_px.y),\n" +" float2(dst_p0_px.x, dst_p0_px.y),\n" +" float2(dst_p1_px.x, dst_p1_px.y + shear_px),\n" +" float2(dst_p1_px.x, dst_p0_px.y + shear_px),\n" +" };\n" +" float2 src_p_verts_px[] =\n" +" {\n" +" float2(src_p0_px.x, src_p1_px.y),\n" +" float2(src_p0_px.x, src_p0_px.y),\n" +" float2(src_p1_px.x, src_p1_px.y),\n" +" float2(src_p1_px.x, src_p0_px.y),\n" +" };\n" +" float dst_r_verts_px[] =\n" +" {\n" +" cpu2vertex.corner_radii_px.y,\n" +" cpu2vertex.corner_radii_px.x,\n" +" cpu2vertex.corner_radii_px.w,\n" +" cpu2vertex.corner_radii_px.z,\n" +" };\n" +" float4 src_color[] =\n" +" {\n" +" cpu2vertex.color01,\n" +" cpu2vertex.color00,\n" +" cpu2vertex.color11,\n" +" cpu2vertex.color10,\n" +" };\n" +" float2 dst_verts_pct = float2((cpu2vertex.vertex_id >> 1) ? 1.f : 0.f,\n" +" (cpu2vertex.vertex_id & 1) ? 0.f : 1.f);\n" +" \n" +" // rjf: fill vertex -> pixel data\n" +" Vertex2Pixel vertex2pixel;\n" +" {\n" +" float2 xformed_pos = mul(xform, float3(dst_p_verts_px[cpu2vertex.vertex_id], 1.f)).xy;\n" +" xformed_pos.y = viewport_size_px.y - xformed_pos.y;\n" +" vertex2pixel.position.xy = 2.f * xformed_pos/viewport_size_px - 1.f;\n" +" vertex2pixel.position.z = 0.f;\n" +" vertex2pixel.position.w = 1.f;\n" +" vertex2pixel.rect_half_size_px = dst_size_px / 2.f * xform_scale;\n" +" vertex2pixel.texcoord_pct = src_p_verts_px[cpu2vertex.vertex_id] / texture_t2d_size_px;\n" +" vertex2pixel.sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * vertex2pixel.rect_half_size_px;\n" +" vertex2pixel.tint = src_color[cpu2vertex.vertex_id];\n" +" vertex2pixel.corner_radius_px = dst_r_verts_px[cpu2vertex.vertex_id];\n" +" vertex2pixel.border_thickness_px = border_thickness_px;\n" +" vertex2pixel.softness_px = softness_px;\n" +" vertex2pixel.omit_texture = omit_texture;\n" +" }\n" +" return vertex2pixel;\n" +"}\n" +"\n" +"//- rjf: pixel shader\n" +"\n" +"float4\n" +"ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET\n" +"{\n" +" // rjf: blend corner colors to produce final tint\n" +" float4 tint = vertex2pixel.tint;\n" +" \n" +" // rjf: sample texture\n" +" float4 albedo_sample = float4(1, 1, 1, 1);\n" +" if(vertex2pixel.omit_texture < 1)\n" +" {\n" +" albedo_sample = mul(main_t2d.Sample(main_sampler, vertex2pixel.texcoord_pct), texture_sample_channel_map);\n" +" albedo_sample = linear_from_srgba(albedo_sample);\n" +" }\n" +" \n" +" // rjf: determine SDF sample position\n" +" float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;\n" +" \n" +" // rjf: sample for borders\n" +" float border_sdf_t = 1;\n" +" if(vertex2pixel.border_thickness_px > 0)\n" +" {\n" +" float border_sdf_s = rect_sdf(sdf_sample_pos,\n" +" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f) - vertex2pixel.border_thickness_px,\n" +" max(vertex2pixel.corner_radius_px-vertex2pixel.border_thickness_px, 0));\n" +" border_sdf_t = smoothstep(0, 2*vertex2pixel.softness_px, border_sdf_s);\n" +" }\n" +" if(border_sdf_t < 0.001f)\n" +" {\n" +" discard;\n" +" }\n" +" \n" +" // rjf: sample for corners\n" +" float corner_sdf_t = 1;\n" +" if(vertex2pixel.corner_radius_px > 0 || vertex2pixel.softness_px > 0.75f)\n" +" {\n" +" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n" +" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n" +" vertex2pixel.corner_radius_px);\n" +" corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n" +" }\n" +" \n" +" // rjf: form+return final color\n" +" float4 final_color = albedo_sample;\n" +" final_color *= tint;\n" +" final_color.a *= opacity;\n" +" final_color.a *= corner_sdf_t;\n" +" final_color.a *= border_sdf_t;\n" +" return final_color;\n" +"}\n" +"" +); + +read_only global String8 r_d3d11_g_blur_shader_src = +str8_lit_comp( +"" +"\n" +"cbuffer Globals : register(b0)\n" +"{\n" +" float4 rect;\n" +" float4 corner_radii_px;\n" +" float2 direction;\n" +" float2 viewport_size;\n" +" uint blur_count;\n" +"}\n" +"\n" +"cbuffer Kernel : register(b1)\n" +"{\n" +" float4 kernel[32];\n" +"}\n" +"\n" +"struct CPU2Vertex\n" +"{\n" +" uint vertex_id : SV_VertexID;\n" +"};\n" +"\n" +"struct Vertex2Pixel\n" +"{\n" +" float4 position : SV_POSITION;\n" +" float2 texcoord : TEX;\n" +" float2 sdf_sample_pos : SDF;\n" +" nointerpolation float2 rect_half_size : RHS;\n" +" float corner_radius : RAD;\n" +"};\n" +"\n" +"Texture2D stage_t2d : register(t0);\n" +"SamplerState stage_sampler : register(s0);\n" +"\n" +"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n" +"{\n" +" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" +"}\n" +"\n" +"//- rjf: vertex shader\n" +"\n" +"Vertex2Pixel\n" +"vs_main(CPU2Vertex c2v)\n" +"{\n" +" float2 vertex_positions__scrn[] =\n" +" {\n" +" rect.xw,\n" +" rect.xy,\n" +" rect.zw,\n" +" rect.zy,\n" +" };\n" +" float corner_radii__px[] =\n" +" {\n" +" corner_radii_px.y,\n" +" corner_radii_px.x,\n" +" corner_radii_px.w,\n" +" corner_radii_px.z,\n" +" };\n" +" float2 cornercoords__pct = float2((c2v.vertex_id >> 1) ? 1.f : 0.f,\n" +" (c2v.vertex_id & 1) ? 0.f : 1.f);\n" +" \n" +" float2 vertex_position__pct = vertex_positions__scrn[c2v.vertex_id] / viewport_size;\n" +" float2 vertex_position__scr = 2.f * vertex_position__pct - 1.f;\n" +" \n" +" float2 rect_half_size = float2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n" +" \n" +" Vertex2Pixel v2p;\n" +" {\n" +" v2p.position = float4(vertex_position__scr.x, -vertex_position__scr.y, 0.f, 1.f);\n" +" v2p.texcoord = vertex_position__pct;\n" +" v2p.sdf_sample_pos = (2.f * cornercoords__pct - 1.f) * rect_half_size;\n" +" v2p.rect_half_size = rect_half_size - 2.f;\n" +" v2p.corner_radius = corner_radii__px[c2v.vertex_id];\n" +" }\n" +" return v2p;\n" +"}\n" +"\n" +"//- rjf: pixel shader\n" +"\n" +"float4\n" +"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" +"{\n" +" // rjf: blend weighted texture samples into color\n" +" float3 color = kernel[0].x * stage_t2d.Sample(stage_sampler, v2p.texcoord).rgb;\n" +" for(uint i = 1; i < blur_count; i += 1)\n" +" {\n" +" float weight = kernel[i].x;\n" +" float offset = kernel[i].y;\n" +" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord - offset * direction).rgb;\n" +" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord + offset * direction).rgb;\n" +" }\n" +" \n" +" // rjf: sample for corners\n" +" float corner_sdf_s = rect_sdf(v2p.sdf_sample_pos, v2p.rect_half_size, v2p.corner_radius);\n" +" float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s);\n" +" \n" +" // rjf: weight output color by sdf\n" +" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n" +" if(corner_sdf_t < 0.9f)\n" +" {\n" +" discard;\n" +" }\n" +" \n" +" return float4(color, 1.f);\n" +"}\n" +"" +); + +read_only global String8 r_d3d11_g_mesh_shader_src = +str8_lit_comp( +"" +"\n" +"cbuffer Uniforms : register(b0)\n" +"{\n" +" row_major float4x4 xform;\n" +"}\n" +"\n" +"struct CPU2Vertex\n" +"{\n" +" float3 position : POS;\n" +" float3 normal : NOR;\n" +" float2 texcoord : TEX;\n" +" float3 color : COL;\n" +"};\n" +"\n" +"struct Vertex2Pixel\n" +"{\n" +" float4 position : SV_POSITION;\n" +" float2 texcoord : TEX;\n" +" float4 color : COL;\n" +"};\n" +"\n" +"Vertex2Pixel vs_main(CPU2Vertex c2v)\n" +"{\n" +" Vertex2Pixel v2p;\n" +" v2p.position = mul(float4(c2v.position, 1.f), xform);\n" +" v2p.texcoord = c2v.texcoord;\n" +" v2p.color = float4(c2v.color, 1.f);\n" +" return v2p;\n" +"}\n" +"\n" +"float4 ps_main(Vertex2Pixel v2p) : SV_TARGET\n" +"{\n" +" return v2p.color;\n" +"}\n" +"" +); + +read_only global String8 r_d3d11_g_geo3dcomposite_shader_src = +str8_lit_comp( +"" +"\n" +"struct CPU2Vertex\n" +"{\n" +" uint vertex_id : SV_VertexID;\n" +"};\n" +"\n" +"struct Vertex2Pixel\n" +"{\n" +" float4 position : SV_POSITION;\n" +" float2 texcoord : TEX;\n" +"};\n" +"\n" +"Texture2D stage_t2d : register(t0);\n" +"SamplerState stage_sampler : register(s0);\n" +"\n" +"//- rjf: vertex shader\n" +"\n" +"Vertex2Pixel\n" +"vs_main(CPU2Vertex c2v)\n" +"{\n" +" float4 vertex_positions__modl[] =\n" +" {\n" +" float4(0, 0, 0, 1),\n" +" float4(0, 1, 0, 1),\n" +" float4(1, 0, 0, 1),\n" +" float4(1, 1, 0, 1),\n" +" };\n" +" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n" +" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n" +" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n" +" texcoord.y = 1-texcoord.y;\n" +" Vertex2Pixel v2p;\n" +" {\n" +" v2p.position = vertex_position__clip;\n" +" v2p.texcoord = texcoord;\n" +" }\n" +" return v2p;\n" +"}\n" +"\n" +"//- rjf: pixel shader\n" +"\n" +"float4\n" +"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" +"{\n" +" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n" +" return final_color;\n" +"}\n" +"" +); + +read_only global String8 r_d3d11_g_finalize_shader_src = +str8_lit_comp( +"" +"\n" +"struct CPU2Vertex\n" +"{\n" +" uint vertex_id : SV_VertexID;\n" +"};\n" +"\n" +"struct Vertex2Pixel\n" +"{\n" +" float4 position : SV_POSITION;\n" +" float2 texcoord : TEX;\n" +"};\n" +"\n" +"Texture2D stage_t2d : register(t0);\n" +"SamplerState stage_sampler : register(s0);\n" +"\n" +"//- rjf: vertex shader\n" +"\n" +"Vertex2Pixel\n" +"vs_main(CPU2Vertex c2v)\n" +"{\n" +" float4 vertex_positions__modl[] =\n" +" {\n" +" float4(0, 0, 0, 1),\n" +" float4(0, 1, 0, 1),\n" +" float4(1, 0, 0, 1),\n" +" float4(1, 1, 0, 1),\n" +" };\n" +" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n" +" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n" +" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n" +" texcoord.y = 1-texcoord.y;\n" +" Vertex2Pixel v2p;\n" +" {\n" +" v2p.position = vertex_position__clip;\n" +" v2p.texcoord = texcoord;\n" +" }\n" +" return v2p;\n" +"}\n" +"\n" +"//- rjf: pixel shader\n" +"\n" +"float4\n" +"ps_main(Vertex2Pixel v2p) : SV_TARGET\n" +"{\n" +" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n" +" final_color.a = 1;\n" +" return final_color;\n" +"}\n" +"" +); + + +C_LINKAGE_END + +#endif // RENDER_D3D11_META_H diff --git a/src/render/d3d11/render_d3d11.c b/src/render/d3d11/render_d3d11.c index 6cf22683..deb28141 100644 --- a/src/render/d3d11/render_d3d11.c +++ b/src/render/d3d11/render_d3d11.c @@ -198,8 +198,8 @@ r_init(CmdLine *cmdln) { char buffer[256] = {0}; raddbg_snprintf(buffer, sizeof(buffer), "D3D11 device creation failure (%lx). The process is terminating.", error); - os_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); + abort_self(1); } ProfEnd(); @@ -370,7 +370,7 @@ r_init(CmdLine *cmdln) { errors = str8((U8 *)vshad_source_errors->lpVtbl->GetBufferPointer(vshad_source_errors), (U64)vshad_source_errors->lpVtbl->GetBufferSize(vshad_source_errors)); - os_graphical_message(1, str8_lit("Vertex Shader Compilation Failure"), errors); + wm_graphical_message(1, str8_lit("Vertex Shader Compilation Failure"), errors); } else { @@ -425,7 +425,7 @@ r_init(CmdLine *cmdln) { errors = str8((U8 *)pshad_source_errors->lpVtbl->GetBufferPointer(pshad_source_errors), (U64)pshad_source_errors->lpVtbl->GetBufferSize(pshad_source_errors)); - os_graphical_message(1, str8_lit("Pixel Shader Compilation Failure"), errors); + wm_graphical_message(1, str8_lit("Pixel Shader Compilation Failure"), errors); } else { @@ -483,7 +483,7 @@ r_init(CmdLine *cmdln) //- rjf: window setup/teardown r_hook R_Handle -r_window_equip(OS_Handle handle) +r_window_equip(WM_Window handle) { ProfBeginFunction(); R_Handle result = {0}; @@ -509,8 +509,8 @@ r_window_equip(OS_Handle handle) //- rjf: map os window handle -> hwnd HWND hwnd = {0}; { - OS_W32_Window *w32_layer_window = os_w32_window_from_handle(handle); - hwnd = os_w32_hwnd_from_window(w32_layer_window); + W32_WM_Window *w32_layer_window = w32_wm_window_from_handle(handle); + hwnd = w32_wm_hwnd_from_window(w32_layer_window); } //- rjf: create swapchain @@ -534,8 +534,8 @@ r_window_equip(OS_Handle handle) { char buffer[256] = {0}; raddbg_snprintf(buffer, sizeof(buffer), "DXGI swap chain creation failure (%lx). The process is terminating.", error); - os_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); + abort_self(1); } r_d3d11_state->dxgi_factory->lpVtbl->MakeWindowAssociation(r_d3d11_state->dxgi_factory, hwnd, DXGI_MWA_NO_ALT_ENTER); @@ -556,7 +556,7 @@ r_window_equip(OS_Handle handle) } r_hook void -r_window_unequip(OS_Handle handle, R_Handle equip_handle) +r_window_unequip(WM_Window handle, R_Handle equip_handle) { ProfBeginFunction(); MutexScopeW(r_d3d11_state->device_rw_mutex) @@ -605,13 +605,10 @@ r_tex2d_alloc(R_ResourceKind kind, Vec2S32 size, R_Tex2DFormat format, void *dat texture->generation += 1; } + //- rjf: resource kind -> d3d11 usage / cpu access flags D3D11_USAGE d3d11_usage = D3D11_USAGE_DEFAULT; UINT cpu_access_flags = 0; r_usage_access_flags_from_resource_kind(kind, &d3d11_usage, &cpu_access_flags); - if (kind == R_ResourceKind_Static) - { - Assert(data != 0 && "static texture must have initial data provided"); - } //- rjf: format -> dxgi format DXGI_FORMAT dxgi_format = DXGI_FORMAT_R8G8B8A8_UNORM; @@ -714,9 +711,8 @@ r_fill_tex2d_region(R_Handle handle, Rng2S32 subrect, void *data) MutexScopeW(r_d3d11_state->device_rw_mutex) { R_D3D11_Tex2D *texture = r_d3d11_tex2d_from_handle(handle); - if(texture != &r_d3d11_tex2d_nil) + if(texture != &r_d3d11_tex2d_nil && texture->kind == R_ResourceKind_Dynamic) { - Assert(texture->kind == R_ResourceKind_Dynamic && "only dynamic texture can update region"); U64 bytes_per_pixel = r_tex2d_format_bytes_per_pixel_table[texture->format]; Vec2S32 dim = v2s32(subrect.x1 - subrect.x0, subrect.y1 - subrect.y0); D3D11_BOX dst_box = @@ -756,13 +752,10 @@ r_buffer_alloc(R_ResourceKind kind, U64 size, void *data) buffer->generation += 1; } + //- rjf: resource kind -> d3d11 usage / cpu access flags D3D11_USAGE d3d11_usage = D3D11_USAGE_DEFAULT; UINT cpu_access_flags = 0; r_usage_access_flags_from_resource_kind(kind, &d3d11_usage, &cpu_access_flags); - if (kind == R_ResourceKind_Static) - { - Assert(data != 0 && "static buffer must have initial data provided"); - } //- rjf: prep initial data, if passed D3D11_SUBRESOURCE_DATA initial_data_ = {0}; @@ -868,7 +861,7 @@ r_end_frame(void) } r_hook void -r_window_begin_frame(OS_Handle window, R_Handle window_equip) +r_window_begin_frame(WM_Window window, R_Handle window_equip) { ProfBeginFunction(); MutexScopeW(r_d3d11_state->device_rw_mutex) @@ -877,7 +870,7 @@ r_window_begin_frame(OS_Handle window, R_Handle window_equip) ID3D11DeviceContext1 *d_ctx = r_d3d11_state->device_ctx; //- rjf: get resolution - Rng2F32 client_rect = os_client_rect_from_window(window); + Rng2F32 client_rect = wm_client_rect_from_window(window); Vec2S32 resolution = {(S32)(client_rect.x1 - client_rect.x0), (S32)(client_rect.y1 - client_rect.y0)}; //- rjf: resolution change @@ -1000,7 +993,7 @@ r_window_begin_frame(OS_Handle window, R_Handle window_equip) } r_hook void -r_window_end_frame(OS_Handle window, R_Handle window_equip) +r_window_end_frame(WM_Window window, R_Handle window_equip) { ProfBeginFunction(); MutexScopeW(r_d3d11_state->device_rw_mutex) @@ -1059,8 +1052,8 @@ r_window_end_frame(OS_Handle window, R_Handle window_equip) { char buffer[256] = {0}; raddbg_snprintf(buffer, sizeof(buffer), "D3D11 present failure (%lx). The process is terminating.", error); - os_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_cstring(buffer)); + abort_self(1); } d_ctx->lpVtbl->ClearState(d_ctx); } @@ -1070,7 +1063,7 @@ r_window_end_frame(OS_Handle window, R_Handle window_equip) //- rjf: render pass submission r_hook void -r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) +r_window_submit(WM_Window window, R_Handle window_equip, R_PassList *passes) { ProfBeginFunction(); MutexScopeW(r_d3d11_state->device_rw_mutex) diff --git a/src/render/d3d11/render_d3d11.mdesk b/src/render/d3d11/render_d3d11.mdesk index 0e001db1..102dd590 100644 --- a/src/render/d3d11/render_d3d11.mdesk +++ b/src/render/d3d11/render_d3d11.mdesk @@ -56,7 +56,7 @@ struct CPU2Vertex float4 color10 : COL2; float4 color11 : COL3; float4 corner_radii_px : CRAD; - float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused + float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: shear uint vertex_id : SV_VertexID; }; @@ -111,14 +111,15 @@ vs_main(CPU2Vertex cpu2vertex) float border_thickness_px = cpu2vertex.style_params.x; float softness_px = cpu2vertex.style_params.y; float omit_texture = cpu2vertex.style_params.z; + float shear_px = cpu2vertex.style_params.w; //- rjf: prep per-vertex arrays to sample from (p: position, t: texcoord, c: colorcoord, r: cornerradius) float2 dst_p_verts_px[] = { float2(dst_p0_px.x, dst_p1_px.y), float2(dst_p0_px.x, dst_p0_px.y), - float2(dst_p1_px.x, dst_p1_px.y), - float2(dst_p1_px.x, dst_p0_px.y), + float2(dst_p1_px.x, dst_p1_px.y + shear_px), + float2(dst_p1_px.x, dst_p0_px.y + shear_px), }; float2 src_p_verts_px[] = { @@ -303,7 +304,6 @@ ps_main(Vertex2Pixel v2p) : SV_TARGET { // rjf: blend weighted texture samples into color float3 color = kernel[0].x * stage_t2d.Sample(stage_sampler, v2p.texcoord).rgb; - for(uint i = 1; i < blur_count; i += 1) { float weight = kernel[i].x; @@ -318,7 +318,7 @@ ps_main(Vertex2Pixel v2p) : SV_TARGET // rjf: weight output color by sdf // this is doing alpha testing, leave blurring only where mostly opaque pixels are - if (corner_sdf_t < 0.9f) + if(corner_sdf_t < 0.9f) { discard; } diff --git a/src/render/generated/render.meta.c b/src/render/generated/render.meta.c index c1897062..d2225d54 100644 --- a/src/render/generated/render.meta.c +++ b/src/render/generated/render.meta.c @@ -1,68 +1,68 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 r_tex2d_format_display_string_table[9] = -{ -str8_lit_comp("R8"), -str8_lit_comp("RG8"), -str8_lit_comp("RGBA8"), -str8_lit_comp("BGRA8"), -str8_lit_comp("R16"), -str8_lit_comp("RGBA16"), -str8_lit_comp("R32"), -str8_lit_comp("RG32"), -str8_lit_comp("RGBA32"), -}; - -U8 r_tex2d_format_bytes_per_pixel_table[9] = -{ -1, -2, -4, -4, -2, -8, -4, -8, -16, -}; - -String8 r_resource_kind_display_string_table[3] = -{ -str8_lit_comp("Static"), -str8_lit_comp("Dynamic"), -str8_lit_comp("Stream "), -}; - -String8 r_tex2d_sample_kind_display_string_table[2] = -{ -str8_lit_comp("Nearest"), -str8_lit_comp("Linear"), -}; - -String8 r_pass_kind_display_string_table[3] = -{ -str8_lit_comp("UI"), -str8_lit_comp("Blur"), -str8_lit_comp("Geo3D"), -}; - -U8 r_pass_kind_batch_table[3] = -{ -1, -0, -1, -}; - -U64 r_pass_kind_params_size_table[3] = -{ -sizeof(R_PassParams_UI), -sizeof(R_PassParams_Blur), -sizeof(R_PassParams_Geo3D), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 r_tex2d_format_display_string_table[9] = +{ +str8_lit_comp("R8"), +str8_lit_comp("RG8"), +str8_lit_comp("RGBA8"), +str8_lit_comp("BGRA8"), +str8_lit_comp("R16"), +str8_lit_comp("RGBA16"), +str8_lit_comp("R32"), +str8_lit_comp("RG32"), +str8_lit_comp("RGBA32"), +}; + +U8 r_tex2d_format_bytes_per_pixel_table[9] = +{ +1, +2, +4, +4, +2, +8, +4, +8, +16, +}; + +String8 r_resource_kind_display_string_table[3] = +{ +str8_lit_comp("Static"), +str8_lit_comp("Dynamic"), +str8_lit_comp("Stream "), +}; + +String8 r_tex2d_sample_kind_display_string_table[2] = +{ +str8_lit_comp("Nearest"), +str8_lit_comp("Linear"), +}; + +String8 r_pass_kind_display_string_table[3] = +{ +str8_lit_comp("UI"), +str8_lit_comp("Blur"), +str8_lit_comp("Geo3D"), +}; + +U8 r_pass_kind_batch_table[3] = +{ +1, +0, +1, +}; + +U64 r_pass_kind_params_size_table[3] = +{ +sizeof(R_PassParams_UI), +sizeof(R_PassParams_Blur), +sizeof(R_PassParams_Geo3D), +}; + +C_LINKAGE_END + diff --git a/src/render/generated/render.meta.h b/src/render/generated/render.meta.h index e7b65c2b..454181d2 100644 --- a/src/render/generated/render.meta.h +++ b/src/render/generated/render.meta.h @@ -1,65 +1,65 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef RENDER_META_H -#define RENDER_META_H - -typedef enum R_Tex2DFormat -{ -R_Tex2DFormat_R8, -R_Tex2DFormat_RG8, -R_Tex2DFormat_RGBA8, -R_Tex2DFormat_BGRA8, -R_Tex2DFormat_R16, -R_Tex2DFormat_RGBA16, -R_Tex2DFormat_R32, -R_Tex2DFormat_RG32, -R_Tex2DFormat_RGBA32, -R_Tex2DFormat_COUNT, -} R_Tex2DFormat; - -typedef enum R_ResourceKind -{ -R_ResourceKind_Static, -R_ResourceKind_Dynamic, -R_ResourceKind_Stream, -R_ResourceKind_COUNT, -} R_ResourceKind; - -typedef enum R_Tex2DSampleKind -{ -R_Tex2DSampleKind_Nearest, -R_Tex2DSampleKind_Linear, -R_Tex2DSampleKind_COUNT, -} R_Tex2DSampleKind; - -typedef enum R_GeoTopologyKind -{ -R_GeoTopologyKind_Lines, -R_GeoTopologyKind_LineStrip, -R_GeoTopologyKind_Triangles, -R_GeoTopologyKind_TriangleStrip, -R_GeoTopologyKind_COUNT, -} R_GeoTopologyKind; - -typedef enum R_PassKind -{ -R_PassKind_UI, -R_PassKind_Blur, -R_PassKind_Geo3D, -R_PassKind_COUNT, -} R_PassKind; - -C_LINKAGE_BEGIN -extern String8 r_tex2d_format_display_string_table[9]; -extern U8 r_tex2d_format_bytes_per_pixel_table[9]; -extern String8 r_resource_kind_display_string_table[3]; -extern String8 r_tex2d_sample_kind_display_string_table[2]; -extern String8 r_pass_kind_display_string_table[3]; -extern U8 r_pass_kind_batch_table[3]; - -C_LINKAGE_END - -#endif // RENDER_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RENDER_META_H +#define RENDER_META_H + +typedef enum R_Tex2DFormat +{ +R_Tex2DFormat_R8, +R_Tex2DFormat_RG8, +R_Tex2DFormat_RGBA8, +R_Tex2DFormat_BGRA8, +R_Tex2DFormat_R16, +R_Tex2DFormat_RGBA16, +R_Tex2DFormat_R32, +R_Tex2DFormat_RG32, +R_Tex2DFormat_RGBA32, +R_Tex2DFormat_COUNT, +} R_Tex2DFormat; + +typedef enum R_ResourceKind +{ +R_ResourceKind_Static, +R_ResourceKind_Dynamic, +R_ResourceKind_Stream, +R_ResourceKind_COUNT, +} R_ResourceKind; + +typedef enum R_Tex2DSampleKind +{ +R_Tex2DSampleKind_Nearest, +R_Tex2DSampleKind_Linear, +R_Tex2DSampleKind_COUNT, +} R_Tex2DSampleKind; + +typedef enum R_GeoTopologyKind +{ +R_GeoTopologyKind_Lines, +R_GeoTopologyKind_LineStrip, +R_GeoTopologyKind_Triangles, +R_GeoTopologyKind_TriangleStrip, +R_GeoTopologyKind_COUNT, +} R_GeoTopologyKind; + +typedef enum R_PassKind +{ +R_PassKind_UI, +R_PassKind_Blur, +R_PassKind_Geo3D, +R_PassKind_COUNT, +} R_PassKind; + +C_LINKAGE_BEGIN +extern String8 r_tex2d_format_display_string_table[9]; +extern U8 r_tex2d_format_bytes_per_pixel_table[9]; +extern String8 r_resource_kind_display_string_table[3]; +extern String8 r_tex2d_sample_kind_display_string_table[2]; +extern String8 r_pass_kind_display_string_table[3]; +extern U8 r_pass_kind_batch_table[3]; + +C_LINKAGE_END + +#endif // RENDER_META_H diff --git a/src/render/opengl/generated/render_opengl.meta.c b/src/render/opengl/generated/render_opengl.meta.c index 228b658d..73c41e60 100644 --- a/src/render/opengl/generated/render_opengl.meta.c +++ b/src/render/opengl/generated/render_opengl.meta.c @@ -1,38 +1,38 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 r_ogl_shader_kind_name_table[2] = -{ -str8_lit_comp("rect"), -str8_lit_comp("blur"), -}; - -String8 * r_ogl_shader_kind_vshad_src_table[2] = -{ -&r_ogl_rect_vshad_src, -&r_ogl_blur_vshad_src, -}; - -String8 * r_ogl_shader_kind_pshad_src_table[2] = -{ -&r_ogl_rect_pshad_src, -&r_ogl_blur_pshad_src, -}; - -R_OGL_AttributeArray r_ogl_shader_kind_input_attributes_table[2] = -{ -{ r_ogl_rect_input_attributes, ArrayCount(r_ogl_rect_input_attributes) }, -{ 0, }, -}; - -R_OGL_AttributeArray r_ogl_shader_kind_output_attributes_table[2] = -{ -{ r_ogl_single_color_output_attributes, ArrayCount(r_ogl_single_color_output_attributes) }, -{ r_ogl_single_color_output_attributes, ArrayCount(r_ogl_single_color_output_attributes) }, -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 r_ogl_shader_kind_name_table[2] = +{ +str8_lit_comp("rect"), +str8_lit_comp("blur"), +}; + +String8 * r_ogl_shader_kind_vshad_src_table[2] = +{ +&r_ogl_rect_vshad_src, +&r_ogl_blur_vshad_src, +}; + +String8 * r_ogl_shader_kind_pshad_src_table[2] = +{ +&r_ogl_rect_pshad_src, +&r_ogl_blur_pshad_src, +}; + +R_OGL_AttributeArray r_ogl_shader_kind_input_attributes_table[2] = +{ +{ r_ogl_rect_input_attributes, ArrayCount(r_ogl_rect_input_attributes) }, +{ 0, }, +}; + +R_OGL_AttributeArray r_ogl_shader_kind_output_attributes_table[2] = +{ +{ r_ogl_single_color_output_attributes, ArrayCount(r_ogl_single_color_output_attributes) }, +{ r_ogl_single_color_output_attributes, ArrayCount(r_ogl_single_color_output_attributes) }, +}; + +C_LINKAGE_END + diff --git a/src/render/opengl/generated/render_opengl.meta.h b/src/render/opengl/generated/render_opengl.meta.h index dc8709d1..f4851da7 100644 --- a/src/render/opengl/generated/render_opengl.meta.h +++ b/src/render/opengl/generated/render_opengl.meta.h @@ -1,276 +1,280 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef RENDER_OPENGL_META_H -#define RENDER_OPENGL_META_H - -typedef enum R_OGL_ShaderKind -{ -R_OGL_ShaderKind_Rect, -R_OGL_ShaderKind_Blur, -R_OGL_ShaderKind_COUNT, -} R_OGL_ShaderKind; - -C_LINKAGE_BEGIN -extern String8 r_ogl_shader_kind_name_table[2]; -extern String8 * r_ogl_shader_kind_vshad_src_table[2]; -extern String8 * r_ogl_shader_kind_pshad_src_table[2]; -extern R_OGL_AttributeArray r_ogl_shader_kind_input_attributes_table[2]; -extern R_OGL_AttributeArray r_ogl_shader_kind_output_attributes_table[2]; -read_only global String8 r_ogl_rect_vshad_src = -str8_lit_comp( -"" -"\n" -"#version 330 core\n" -"\n" -"in vec4 c2v_dst_rect;\n" -"in vec4 c2v_src_rect;\n" -"in vec4 c2v_colors_0;\n" -"in vec4 c2v_colors_1;\n" -"in vec4 c2v_colors_2;\n" -"in vec4 c2v_colors_3;\n" -"in vec4 c2v_corner_radii;\n" -"in vec4 c2v_style; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused\n" -"\n" -"out vec2 v2p_sdf_sample_pos;\n" -"out vec2 v2p_texcoord_pct;\n" -"out vec2 v2p_rect_half_size_px;\n" -"out vec4 v2p_tint;\n" -"out float v2p_corner_radius;\n" -"out float v2p_border_thickness;\n" -"out float v2p_softness;\n" -"out float v2p_omit_texture;\n" -"\n" -"uniform sampler2D u_tex_color;\n" -"uniform vec2 u_viewport_size_px;\n" -"\n" -"void main(void)\n" -"{\n" -" // rjf: constants\n" -" vec2 vertices[] = vec2[](vec2(-1, -1), vec2(-1, +1), vec2(+1, -1), vec2(+1, +1));\n" -" \n" -" // rjf: find dst position\n" -" vec2 dst_half_size = (c2v_dst_rect.zw - c2v_dst_rect.xy) / 2;\n" -" vec2 dst_center = (c2v_dst_rect.zw + c2v_dst_rect.xy) / 2;\n" -" vec2 dst_position = vertices[gl_VertexID] * dst_half_size + dst_center;\n" -" \n" -" // rjf: find src position\n" -" vec2 src_half_size = (c2v_src_rect.zw - c2v_src_rect.xy) / 2;\n" -" vec2 src_center = (c2v_src_rect.zw + c2v_src_rect.xy) / 2;\n" -" vec2 src_position = vertices[gl_VertexID] * src_half_size + src_center;\n" -" \n" -" // rjf: find color\n" -" vec4 colors[] = vec4[](c2v_colors_0, c2v_colors_1, c2v_colors_2, c2v_colors_3);\n" -" vec4 color = colors[gl_VertexID];\n" -" \n" -" // rjf: find corner radius\n" -" float corner_radii[] = float[](c2v_corner_radii.x, c2v_corner_radii.y, c2v_corner_radii.z, c2v_corner_radii.w);\n" -" float corner_radius = corner_radii[gl_VertexID];\n" -" \n" -" // rjf: fill outputs\n" -" vec2 dst_verts_pct = vec2(((gl_VertexID >> 1) != 1) ? 1.f : 0.f,\n" -" ((gl_VertexID & 1) != 0) ? 0.f : 1.f);\n" -" ivec2 u_tex_color_size_i = textureSize(u_tex_color, 0);\n" -" vec2 u_tex_color_size = vec2(float(u_tex_color_size_i.x), float(u_tex_color_size_i.y));\n" -" {\n" -" gl_Position = vec4(2 * dst_position.x / u_viewport_size_px.x - 1,\n" -" 2 * (1 - dst_position.y / u_viewport_size_px.y) - 1,\n" -" 0.0, 1.0);\n" -" v2p_sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * dst_half_size;\n" -" v2p_texcoord_pct = src_position / u_tex_color_size;\n" -" v2p_rect_half_size_px = dst_half_size;\n" -" v2p_tint = color;\n" -" v2p_corner_radius = corner_radius;\n" -" v2p_border_thickness = c2v_style.x;\n" -" v2p_softness = c2v_style.y;\n" -" v2p_omit_texture = c2v_style.z;\n" -" }\n" -"}\n" -"" -); - -read_only global String8 r_ogl_rect_pshad_src = -str8_lit_comp( -"" -"\n" -"#version 330 core\n" -"\n" -"in vec2 v2p_sdf_sample_pos;\n" -"in vec2 v2p_texcoord_pct;\n" -"in vec2 v2p_rect_half_size_px;\n" -"in vec4 v2p_tint;\n" -"in float v2p_corner_radius;\n" -"in float v2p_border_thickness;\n" -"in float v2p_softness;\n" -"in float v2p_omit_texture;\n" -"\n" -"out vec4 final_color;\n" -"\n" -"uniform float u_opacity;\n" -"uniform sampler2D u_tex_color;\n" -"uniform mat4 u_texture_sample_channel_map;\n" -"\n" -"float rect_sdf(vec2 sample_pos, vec2 rect_half_size, float r)\n" -"{\n" -" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" -"}\n" -"\n" -"float linear_from_srgb_f32(float x)\n" -"{\n" -" return x < 0.0404482362771082 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n" -"}\n" -"\n" -"vec4 linear_from_srgba(vec4 v)\n" -"{\n" -" vec4 result = vec4(linear_from_srgb_f32(v.x),\n" -" linear_from_srgb_f32(v.y),\n" -" linear_from_srgb_f32(v.z),\n" -" v.w);\n" -" return result;\n" -"}\n" -"\n" -"void main(void)\n" -"{\n" -" // rjf: sample texture\n" -" vec4 albedo_sample = vec4(1, 1, 1, 1);\n" -" if(v2p_omit_texture < 1)\n" -" {\n" -" albedo_sample = u_texture_sample_channel_map * texture(u_tex_color, v2p_texcoord_pct);\n" -" albedo_sample = linear_from_srgba(albedo_sample);\n" -" }\n" -" \n" -" // rjf: sample for borders\n" -" float border_sdf_t = 1;\n" -" if(v2p_border_thickness > 0)\n" -" {\n" -" float border_sdf_s = rect_sdf(v2p_sdf_sample_pos,\n" -" v2p_rect_half_size_px - vec2(v2p_softness*2.f, v2p_softness*2.f) - v2p_border_thickness,\n" -" max(v2p_corner_radius-v2p_border_thickness, 0));\n" -" border_sdf_t = smoothstep(0, 2*v2p_softness, border_sdf_s);\n" -" }\n" -" if(border_sdf_t < 0.001f)\n" -" {\n" -" discard;\n" -" }\n" -" \n" -" // rjf: sample for corners\n" -" float corner_sdf_t = 1;\n" -" if(v2p_corner_radius > 0 || v2p_softness > 0.75f)\n" -" {\n" -" float corner_sdf_s = rect_sdf(v2p_sdf_sample_pos,\n" -" v2p_rect_half_size_px - vec2(v2p_softness*2.f, v2p_softness*2.f),\n" -" v2p_corner_radius);\n" -" corner_sdf_t = 1-smoothstep(0, 2*v2p_softness, corner_sdf_s);\n" -" }\n" -" \n" -" // rjf: form+return final color\n" -" final_color = albedo_sample;\n" -" final_color *= v2p_tint;\n" -" final_color.a *= u_opacity;\n" -" final_color.a *= corner_sdf_t;\n" -" final_color.a *= border_sdf_t;\n" -"}\n" -"" -); - -read_only global String8 r_ogl_blur_vshad_src = -str8_lit_comp( -"" -"\n" -"#version 330 core\n" -"\n" -"uniform vec4 rect;\n" -"uniform vec4 corner_radii_px;\n" -"uniform vec2 viewport_size;\n" -"uniform uint blur_count;\n" -"\n" -"out vec2 texcoord;\n" -"out vec2 sdf_sample_pos;\n" -"out vec2 rect_half_size;\n" -"out float corner_radius;\n" -"\n" -"void main(void)\n" -"{\n" -" vec2 vertex_positions_scrn[] = vec2[](rect.xw,\n" -" rect.xy,\n" -" rect.zw,\n" -" rect.zy);\n" -" float corner_radii_px[] = float[](corner_radii_px.y,\n" -" corner_radii_px.x,\n" -" corner_radii_px.w,\n" -" corner_radii_px.z);\n" -" vec2 cornercoords_pct = vec2((gl_VertexID >> 1) != 0 ? 1.f : 0.f,\n" -" (gl_VertexID & 1) != 0 ? 0.f : 1.f);\n" -" \n" -" vec2 vertex_position_pct = vertex_positions_scrn[gl_VertexID] / viewport_size;\n" -" vec2 vertex_position_scr = 2.f * vertex_position_pct - 1.f;\n" -" \n" -" vec2 rect_half_size = vec2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n" -" \n" -" gl_Position = vec4(vertex_position_scr.x, -vertex_position_scr.y, 0.f, 1.f);\n" -" texcoord = vertex_position_pct;\n" -" sdf_sample_pos = (2.f * cornercoords_pct - 1.f) * rect_half_size;\n" -" rect_half_size = rect_half_size - 2.f;\n" -" corner_radius = corner_radii_px[gl_VertexID];\n" -"}\n" -"" -); - -read_only global String8 r_ogl_blur_pshad_src = -str8_lit_comp( -"" -"\n" -"#version 330 core\n" -"\n" -"uniform sampler2D tex;\n" -"uniform vec4 kernel[32];\n" -"uniform int blur_count;\n" -"uniform vec2 direction;\n" -"\n" -"in vec2 texcoord;\n" -"in vec2 sdf_sample_pos;\n" -"in vec2 rect_half_size;\n" -"in float corner_radius;\n" -"\n" -"out vec4 final_color;\n" -"\n" -"float rect_sdf(vec2 sample_pos, vec2 rect_half_size, float r)\n" -"{\n" -" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" -"}\n" -"\n" -"void main(void)\n" -"{\n" -" // rjf: blend weighted texture samples into color\n" -" vec3 color = kernel[0].x * texture(tex, texcoord).rgb;\n" -" \n" -" for(int i = 1; i < blur_count; i += 1)\n" -" {\n" -" float weight = kernel[i].x;\n" -" float offset = kernel[i].y;\n" -" color += weight * texture(tex, texcoord - offset * direction).rgb;\n" -" color += weight * texture(tex, texcoord + offset * direction).rgb;\n" -" }\n" -" \n" -" // rjf: sample for corners\n" -" float corner_sdf_s = rect_sdf(sdf_sample_pos, rect_half_size, corner_radius);\n" -" float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s);\n" -" \n" -" // rjf: weight output color by sdf\n" -" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n" -" if(corner_sdf_t < 0.9f)\n" -" {\n" -" discard;\n" -" }\n" -" \n" -" final_color = vec4(color, 1.f);\n" -"}\n" -"" -); - - -C_LINKAGE_END - -#endif // RENDER_OPENGL_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef RENDER_OPENGL_META_H +#define RENDER_OPENGL_META_H + +typedef enum R_OGL_ShaderKind +{ +R_OGL_ShaderKind_Rect, +R_OGL_ShaderKind_Blur, +R_OGL_ShaderKind_COUNT, +} R_OGL_ShaderKind; + +C_LINKAGE_BEGIN +extern String8 r_ogl_shader_kind_name_table[2]; +extern String8 * r_ogl_shader_kind_vshad_src_table[2]; +extern String8 * r_ogl_shader_kind_pshad_src_table[2]; +extern R_OGL_AttributeArray r_ogl_shader_kind_input_attributes_table[2]; +extern R_OGL_AttributeArray r_ogl_shader_kind_output_attributes_table[2]; +read_only global String8 r_ogl_rect_vshad_src = +str8_lit_comp( +"" +"\n" +"#version 330 core\n" +"\n" +"in vec4 c2v_dst_rect;\n" +"in vec4 c2v_src_rect;\n" +"in vec4 c2v_colors_0;\n" +"in vec4 c2v_colors_1;\n" +"in vec4 c2v_colors_2;\n" +"in vec4 c2v_colors_3;\n" +"in vec4 c2v_corner_radii;\n" +"in vec4 c2v_style; // x: border_thickness_px, y: softness_px, z: omit_texture, w: shear\n" +"\n" +"out vec2 v2p_sdf_sample_pos;\n" +"out vec2 v2p_texcoord_pct;\n" +"out vec2 v2p_rect_half_size_px;\n" +"out vec4 v2p_tint;\n" +"out float v2p_corner_radius;\n" +"out float v2p_border_thickness;\n" +"out float v2p_softness;\n" +"out float v2p_omit_texture;\n" +"\n" +"uniform mat3 u_xform;\n" +"uniform sampler2D u_tex_color;\n" +"uniform vec2 u_viewport_size_px;\n" +"\n" +"void main(void)\n" +"{\n" +" // rjf: constants\n" +" vec2 vertices[] = vec2[](vec2(-1, -1), vec2(-1, +1), vec2(+1, -1), vec2(+1, +1));\n" +" \n" +" // rjf: unpack shears\n" +" float shears[] = float[](0, 0, c2v_style.w, c2v_style.w);\n" +" \n" +" // rjf: find dst position\n" +" vec2 dst_half_size = (c2v_dst_rect.zw - c2v_dst_rect.xy) / 2;\n" +" vec2 dst_center = (c2v_dst_rect.zw + c2v_dst_rect.xy) / 2;\n" +" vec2 dst_position = vertices[gl_VertexID] * dst_half_size + dst_center;\n" +" dst_position.y += shears[gl_VertexID];\n" +" dst_position = (u_xform * vec3(dst_position.x, dst_position.y, 1)).xy;\n" +" \n" +" // rjf: find src position\n" +" vec2 src_half_size = (c2v_src_rect.zw - c2v_src_rect.xy) / 2;\n" +" vec2 src_center = (c2v_src_rect.zw + c2v_src_rect.xy) / 2;\n" +" vec2 src_position = vertices[gl_VertexID] * src_half_size + src_center;\n" +" \n" +" // rjf: find color\n" +" vec4 colors[] = vec4[](c2v_colors_0, c2v_colors_1, c2v_colors_2, c2v_colors_3);\n" +" vec4 color = colors[gl_VertexID];\n" +" \n" +" // rjf: find corner radius\n" +" float corner_radii[] = float[](c2v_corner_radii.x, c2v_corner_radii.y, c2v_corner_radii.z, c2v_corner_radii.w);\n" +" float corner_radius = corner_radii[gl_VertexID];\n" +" \n" +" // rjf: fill outputs\n" +" vec2 dst_verts_pct = vec2(((gl_VertexID >> 1) != 1) ? 1.f : 0.f,\n" +" ((gl_VertexID & 1) != 0) ? 0.f : 1.f);\n" +" ivec2 u_tex_color_size_i = textureSize(u_tex_color, 0);\n" +" vec2 u_tex_color_size = vec2(float(u_tex_color_size_i.x), float(u_tex_color_size_i.y));\n" +" {\n" +" gl_Position = vec4(2 * dst_position.x / u_viewport_size_px.x - 1,\n" +" 2 * (1 - dst_position.y / u_viewport_size_px.y) - 1,\n" +" 0.0, 1.0);\n" +" v2p_sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * dst_half_size;\n" +" v2p_texcoord_pct = src_position / u_tex_color_size;\n" +" v2p_rect_half_size_px = dst_half_size;\n" +" v2p_tint = color;\n" +" v2p_corner_radius = corner_radius;\n" +" v2p_border_thickness = c2v_style.x;\n" +" v2p_softness = c2v_style.y;\n" +" v2p_omit_texture = c2v_style.z;\n" +" }\n" +"}\n" +"" +); + +read_only global String8 r_ogl_rect_pshad_src = +str8_lit_comp( +"" +"\n" +"#version 330 core\n" +"\n" +"in vec2 v2p_sdf_sample_pos;\n" +"in vec2 v2p_texcoord_pct;\n" +"in vec2 v2p_rect_half_size_px;\n" +"in vec4 v2p_tint;\n" +"in float v2p_corner_radius;\n" +"in float v2p_border_thickness;\n" +"in float v2p_softness;\n" +"in float v2p_omit_texture;\n" +"\n" +"out vec4 final_color;\n" +"\n" +"uniform float u_opacity;\n" +"uniform sampler2D u_tex_color;\n" +"uniform mat4 u_texture_sample_channel_map;\n" +"\n" +"float rect_sdf(vec2 sample_pos, vec2 rect_half_size, float r)\n" +"{\n" +" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" +"}\n" +"\n" +"float linear_from_srgb_f32(float x)\n" +"{\n" +" return x < 0.0404482362771082 ? x / 12.92 : pow((x + 0.055) / 1.055, 2.4);\n" +"}\n" +"\n" +"vec4 linear_from_srgba(vec4 v)\n" +"{\n" +" vec4 result = vec4(linear_from_srgb_f32(v.x),\n" +" linear_from_srgb_f32(v.y),\n" +" linear_from_srgb_f32(v.z),\n" +" v.w);\n" +" return result;\n" +"}\n" +"\n" +"void main(void)\n" +"{\n" +" // rjf: sample texture\n" +" vec4 albedo_sample = vec4(1, 1, 1, 1);\n" +" if(v2p_omit_texture < 1)\n" +" {\n" +" albedo_sample = u_texture_sample_channel_map * texture(u_tex_color, v2p_texcoord_pct);\n" +" albedo_sample = linear_from_srgba(albedo_sample);\n" +" }\n" +" \n" +" // rjf: sample for borders\n" +" float border_sdf_t = 1;\n" +" if(v2p_border_thickness > 0)\n" +" {\n" +" float border_sdf_s = rect_sdf(v2p_sdf_sample_pos,\n" +" v2p_rect_half_size_px - vec2(v2p_softness*2.f, v2p_softness*2.f) - v2p_border_thickness,\n" +" max(v2p_corner_radius-v2p_border_thickness, 0));\n" +" border_sdf_t = smoothstep(0, 2*v2p_softness, border_sdf_s);\n" +" }\n" +" if(border_sdf_t < 0.001f)\n" +" {\n" +" discard;\n" +" }\n" +" \n" +" // rjf: sample for corners\n" +" float corner_sdf_t = 1;\n" +" if(v2p_corner_radius > 0 || v2p_softness > 0.75f)\n" +" {\n" +" float corner_sdf_s = rect_sdf(v2p_sdf_sample_pos,\n" +" v2p_rect_half_size_px - vec2(v2p_softness*2.f, v2p_softness*2.f),\n" +" v2p_corner_radius);\n" +" corner_sdf_t = 1-smoothstep(0, 2*v2p_softness, corner_sdf_s);\n" +" }\n" +" \n" +" // rjf: form+return final color\n" +" final_color = albedo_sample;\n" +" final_color *= v2p_tint;\n" +" final_color.a *= u_opacity;\n" +" final_color.a *= corner_sdf_t;\n" +" final_color.a *= border_sdf_t;\n" +"}\n" +"" +); + +read_only global String8 r_ogl_blur_vshad_src = +str8_lit_comp( +"" +"\n" +"#version 330 core\n" +"\n" +"uniform vec4 rect;\n" +"uniform vec4 corner_radii_px;\n" +"uniform vec2 viewport_size;\n" +"\n" +"out vec2 texcoord;\n" +"out vec2 sdf_sample_pos;\n" +"out vec2 rect_half_size;\n" +"out float corner_radius;\n" +"\n" +"void main(void)\n" +"{\n" +" vec2 vertex_positions_scrn[] = vec2[](rect.xw,\n" +" rect.xy,\n" +" rect.zw,\n" +" rect.zy);\n" +" float corner_radii[] = float[](corner_radii_px.y,\n" +" corner_radii_px.x,\n" +" corner_radii_px.w,\n" +" corner_radii_px.z);\n" +" vec2 cornercoords_pct = vec2((gl_VertexID >> 1) != 0 ? 1.f : 0.f,\n" +" (gl_VertexID & 1) != 0 ? 0.f : 1.f);\n" +" \n" +" vec2 vertex_position_pct = vertex_positions_scrn[gl_VertexID] / viewport_size;\n" +" vec2 vertex_position_scr = 2.f * vertex_position_pct - 1.f;\n" +" \n" +" vec2 rect_half_size_local = vec2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n" +" \n" +" gl_Position = vec4(vertex_position_scr.x, -vertex_position_scr.y, 0.f, 1.f);\n" +" texcoord = vec2(vertex_position_pct.x, 1-vertex_position_pct.y);\n" +" sdf_sample_pos = (2.f * cornercoords_pct - 1.f) * rect_half_size_local;\n" +" rect_half_size = rect_half_size_local - 2.f;\n" +" corner_radius = corner_radii[gl_VertexID];\n" +"}\n" +"" +); + +read_only global String8 r_ogl_blur_pshad_src = +str8_lit_comp( +"" +"\n" +"#version 330 core\n" +"\n" +"uniform sampler2D tex;\n" +"uniform vec4 kernel[32];\n" +"uniform int blur_count;\n" +"uniform vec2 direction;\n" +"\n" +"in vec2 texcoord;\n" +"in vec2 sdf_sample_pos;\n" +"in vec2 rect_half_size;\n" +"in float corner_radius;\n" +"\n" +"out vec4 final_color;\n" +"\n" +"float rect_sdf(vec2 sample_pos, vec2 rect_half_size, float r)\n" +"{\n" +" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n" +"}\n" +"\n" +"void main(void)\n" +"{\n" +" // rjf: blend weighted texture samples into color\n" +" vec3 color = kernel[0].x * texture(tex, texcoord).rgb;\n" +" for(int i = 1; i < blur_count; i += 1)\n" +" {\n" +" float weight = kernel[i].x;\n" +" float offset = kernel[i].y;\n" +" color += weight * texture(tex, texcoord - offset * direction).rgb;\n" +" color += weight * texture(tex, texcoord + offset * direction).rgb;\n" +" }\n" +" \n" +" // rjf: sample for corners\n" +" float corner_sdf_s = rect_sdf(sdf_sample_pos, rect_half_size, corner_radius);\n" +" float corner_sdf_t = smoothstep(0, 2, corner_sdf_s);\n" +" \n" +" // rjf: weight output color by sdf\n" +" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n" +" if(corner_sdf_t < 0.9f)\n" +" {\n" +" discard;\n" +" }\n" +" \n" +" final_color = vec4(color, 1.f);\n" +"}\n" +"" +); + + +C_LINKAGE_END + +#endif // RENDER_OPENGL_META_H diff --git a/src/render/opengl/linux/egl/render_opengl_linux_egl.c b/src/render/opengl/linux/egl/render_opengl_linux_egl.c index 28505f19..4b05a425 100644 --- a/src/render/opengl/linux/egl/render_opengl_linux_egl.c +++ b/src/render/opengl/linux/egl/render_opengl_linux_egl.c @@ -20,11 +20,11 @@ r_ogl_os_init(CmdLine *cmdln) //- rjf: get EGL display { - r_ogl_lnx_state->display = eglGetDisplay((EGLNativeDisplayType)os_lnx_gfx_state->display); + r_ogl_lnx_state->display = eglGetDisplay((EGLNativeDisplayType)lnx_wm_state->display); if(r_ogl_lnx_state->display == EGL_NO_DISPLAY) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Failed to get EGL display.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Failed to get EGL display.")); + abort_self(1); } } @@ -33,23 +33,79 @@ r_ogl_os_init(CmdLine *cmdln) EGLint egl_version_minor = 0; if(!eglInitialize(r_ogl_lnx_state->display, &egl_version_major, &egl_version_minor)) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't initialize EGL display.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't initialize EGL display.")); + abort_self(1); } if(egl_version_major < 1 || (egl_version_major == 1 && egl_version_minor < 5)) { Temp scratch = scratch_begin(0, 0); String8 message = push_str8f(scratch.arena, "Unsupported EGL version (%i.%i, need at least 1.5)", egl_version_major, egl_version_minor); - os_graphical_message(1, str8_lit("Fatal Error"), message); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), message); + abort_self(1); scratch_end(scratch); } //- rjf: pick GL API if(!eglBindAPI(EGL_OPENGL_API)) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't initialize EGL API to OpenGL.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't initialize EGL API to OpenGL.")); + abort_self(1); + } + + //- choose EGL config, extract matching X11 visual/colormap, publish to os layer + { + EGLint config_filter[] = + { + EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_PBUFFER_BIT, + EGL_CONFORMANT, EGL_OPENGL_BIT, + EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, + EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER, + EGL_RED_SIZE, 8, + EGL_GREEN_SIZE, 8, + EGL_BLUE_SIZE, 8, + EGL_DEPTH_SIZE, 24, + EGL_STENCIL_SIZE, 8, + EGL_NONE, + }; + EGLConfig configs[256] = {0}; + EGLint configs_count = 0; + if(!eglChooseConfig(r_ogl_lnx_state->display, config_filter, configs, ArrayCount(configs), &configs_count) || configs_count == 0) + { + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't choose EGL configuration.")); + abort_self(1); + } + int screen = DefaultScreen(lnx_wm_state->display); + XVisualInfo vi_template = {0}; + XVisualInfo *vi = 0; + int vi_count = 0; + for(EGLint idx = 0; idx < configs_count && vi == 0; idx += 1) + { + EGLint native_visual_id = 0; + if(!eglGetConfigAttrib(r_ogl_lnx_state->display, configs[idx], EGL_NATIVE_VISUAL_ID, &native_visual_id) || native_visual_id == 0) + { + continue; + } + vi_template.visualid = native_visual_id; + vi_template.screen = screen; + vi = XGetVisualInfo(lnx_wm_state->display, VisualIDMask|VisualScreenMask, &vi_template, &vi_count); + if(vi != 0 && vi_count > 0) + { + r_ogl_lnx_state->config = configs[idx]; + break; + } + if(vi != 0) { XFree(vi); vi = 0; } + } + if(vi == 0 || r_ogl_lnx_state->config == 0) + { + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't find an EGL config with a matching X11 visual.")); + abort_self(1); + } + lnx_wm_state->window_visual = vi->visual; + lnx_wm_state->window_depth = vi->depth; + lnx_wm_state->window_colormap = XCreateColormap(lnx_wm_state->display, + XRootWindow(lnx_wm_state->display, vi->screen), + vi->visual, AllocNone); + XFree(vi); } //- rjf: construct context @@ -66,22 +122,29 @@ r_ogl_os_init(CmdLine *cmdln) debug_mode ? EGL_CONTEXT_OPENGL_DEBUG : EGL_NONE, EGL_TRUE, EGL_NONE, }; - r_ogl_lnx_state->context = eglCreateContext(r_ogl_lnx_state->display, 0, EGL_NO_CONTEXT, options); + r_ogl_lnx_state->context = eglCreateContext(r_ogl_lnx_state->display, r_ogl_lnx_state->config, EGL_NO_CONTEXT, options); if(r_ogl_lnx_state->context == EGL_NO_CONTEXT) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't create OpenGL context with EGL.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't create OpenGL context with EGL.")); + abort_self(1); } } - eglMakeCurrent(r_ogl_lnx_state->display, 0, 0, r_ogl_lnx_state->context); - glDrawBuffer(GL_BACK); + //- bind context to 1x1 pbuffer so GL calls work before any window exists + { + EGLint pbuffer_attribs[] = { EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE }; + EGLSurface init_surface = eglCreatePbufferSurface(r_ogl_lnx_state->display, r_ogl_lnx_state->config, pbuffer_attribs); + if(init_surface == EGL_NO_SURFACE || !eglMakeCurrent(r_ogl_lnx_state->display, init_surface, init_surface, r_ogl_lnx_state->context)) + { + eglMakeCurrent(r_ogl_lnx_state->display, EGL_NO_SURFACE, EGL_NO_SURFACE, r_ogl_lnx_state->context); + } + } } internal R_Handle -r_ogl_os_window_equip(OS_Handle window) +r_ogl_os_window_equip(WM_Window window) { - OS_LNX_Window *window_os = (OS_LNX_Window *)window.u64[0]; + LNX_WM_Window *window_os = (LNX_WM_Window *)window.u64[0]; R_OGL_LNX_Window *w = r_ogl_lnx_state->free_window; if(w != 0) { @@ -97,65 +160,16 @@ r_ogl_os_window_equip(OS_Handle window) EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_SRGB, EGL_NONE, }; - if(r_ogl_lnx_state->config == 0) + w->surface = eglCreateWindowSurface(r_ogl_lnx_state->display, r_ogl_lnx_state->config, window_os->window, surface_options); + if(w->surface == EGL_NO_SURFACE) { - //- rjf: get all EGL configs - EGLConfig configs[256] = {0}; - EGLint configs_count = 0; - { - EGLint options[] = - { - EGL_SURFACE_TYPE, EGL_WINDOW_BIT, - EGL_CONFORMANT, EGL_OPENGL_BIT, - EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, - EGL_COLOR_BUFFER_TYPE, EGL_RGB_BUFFER, - - EGL_RED_SIZE, 8, - EGL_GREEN_SIZE, 8, - EGL_BLUE_SIZE, 8, - EGL_DEPTH_SIZE, 24, - EGL_STENCIL_SIZE, 8, - - EGL_NONE, - }; - if(!eglChooseConfig(r_ogl_lnx_state->display, options, configs, ArrayCount(configs), &configs_count) || configs_count == 0) - { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't choose EGL configuration.")); - os_abort(1); - } - } - - //- rjf: actually choose the egl config - { - EGLint config_options[] = - { - EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_SRGB, - EGL_NONE, - }; - for(U32 idx = 0; idx < configs_count; idx += 1) - { - w->surface = eglCreateWindowSurface(r_ogl_lnx_state->display, configs[idx], window_os->window, config_options); - if(w->surface != EGL_NO_SURFACE) - { - r_ogl_lnx_state->config = configs[idx]; - break; - } - } - if(r_ogl_lnx_state->config == 0) - { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't find a suitable EGL configuration.")); - os_abort(1); - } - } - } - else - { - w->surface = eglCreateWindowSurface(r_ogl_lnx_state->display, r_ogl_lnx_state->config, window_os->window, surface_options); + EGLint surface_options_linear[] = { EGL_NONE }; + w->surface = eglCreateWindowSurface(r_ogl_lnx_state->display, r_ogl_lnx_state->config, window_os->window, surface_options_linear); } if(w->surface == EGL_NO_SURFACE) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't create EGL surface.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Couldn't create EGL surface.")); + abort_self(1); } } R_Handle result = {(U64)w}; @@ -163,27 +177,26 @@ r_ogl_os_window_equip(OS_Handle window) } internal void -r_ogl_os_window_unequip(OS_Handle os, R_Handle r) +r_ogl_os_window_unequip(WM_Window os, R_Handle r) { R_OGL_LNX_Window *w = (R_OGL_LNX_Window *)r.u64[0]; { - } SLLStackPush(r_ogl_lnx_state->free_window, w); } internal void -r_ogl_os_select_window(OS_Handle os, R_Handle r) +r_ogl_os_select_window(WM_Window os, R_Handle r) { - OS_LNX_Window *w = (OS_LNX_Window *)os.u64[0]; - R_OGL_LNX_Window *w_r = (R_OGL_LNX_Window *)r.u64[0]; + R_OGL_Window *outer = (R_OGL_Window *)r.u64[0]; + R_OGL_LNX_Window *w_r = (R_OGL_LNX_Window *)outer->os.u64[0]; eglMakeCurrent(r_ogl_lnx_state->display, w_r->surface, w_r->surface, r_ogl_lnx_state->context); } internal void -r_ogl_os_window_swap(OS_Handle os, R_Handle r) +r_ogl_os_window_swap(WM_Window os, R_Handle r) { - OS_LNX_Window *w = (OS_LNX_Window *)os.u64[0]; - R_OGL_LNX_Window *w_r = (R_OGL_LNX_Window *)r.u64[0]; + R_OGL_Window *outer = (R_OGL_Window *)r.u64[0]; + R_OGL_LNX_Window *w_r = (R_OGL_LNX_Window *)outer->os.u64[0]; eglSwapBuffers(r_ogl_lnx_state->display, w_r->surface); } diff --git a/src/render/opengl/linux/egl/render_opengl_linux_egl.h b/src/render/opengl/linux/egl/render_opengl_linux_egl.h index 77d687d7..27a0ba88 100644 --- a/src/render/opengl/linux/egl/render_opengl_linux_egl.h +++ b/src/render/opengl/linux/egl/render_opengl_linux_egl.h @@ -7,6 +7,7 @@ #define glTexImage3D glTexImage3D__static #define glTexSubImage3D glTexSubImage3D__static #define glActiveTexture glActiveTexture__static +#include #include #include #undef glTexImage3D diff --git a/src/render/opengl/linux/glx/render_opengl_linux_glx.c b/src/render/opengl/linux/glx/render_opengl_linux_glx.c index fa7217da..993cdf32 100644 --- a/src/render/opengl/linux/glx/render_opengl_linux_glx.c +++ b/src/render/opengl/linux/glx/render_opengl_linux_glx.c @@ -14,14 +14,14 @@ r_ogl_os_init(CmdLine *cmdln) //- rjf: require GLX 1.3+ int glx_version_major = 0; int glx_version_minor = 0; - if(!glXQueryVersion(os_lnx_gfx_state->display, &glx_version_major, &glx_version_minor) || + if(!glXQueryVersion(lnx_wm_state->display, &glx_version_major, &glx_version_minor) || (glx_version_major == 1 && glx_version_minor < 3) || glx_version_major < 1) { Temp scratch = scratch_begin(0, 0); String8 message = push_str8f(scratch.arena, "Unsupported GLX version (%i.%i, need at least 1.3)", glx_version_major, glx_version_minor); - os_graphical_message(1, str8_lit("Fatal Error"), message); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), message); + abort_self(1); scratch_end(scratch); } @@ -42,20 +42,30 @@ r_ogl_os_init(CmdLine *cmdln) None }; int framebuffer_configs_count = 0; - GLXFBConfig *framebuffer_configs = glXChooseFBConfig(os_lnx_gfx_state->display, DefaultScreen(os_lnx_gfx_state->display), framebuffer_config_options, &framebuffer_configs_count); + GLXFBConfig *framebuffer_configs = glXChooseFBConfig(lnx_wm_state->display, DefaultScreen(lnx_wm_state->display), framebuffer_config_options, &framebuffer_configs_count); if(framebuffer_configs == 0) { - os_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Could not find a suitable framebuffer configuration.")); - os_abort(1); + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Could not find a suitable framebuffer configuration.")); + abort_self(1); } GLXFBConfig framebuffer_config = framebuffer_configs[0]; XFree(framebuffer_configs); - - //- rjf: construct set-window-attributes - XSetWindowAttributes set_window_attributes = {0}; - set_window_attributes.background_pixmap = None; - set_window_attributes.border_pixel = 0; - set_window_attributes.event_mask = StructureNotifyMask; + + //- extract visual/colormap from chosen fbconfig, publish to os layer + { + XVisualInfo *vi = glXGetVisualFromFBConfig(lnx_wm_state->display, framebuffer_config); + if(vi == 0) + { + wm_graphical_message(1, str8_lit("Fatal Error"), str8_lit("Could not get visual from GLX framebuffer config.")); + abort_self(1); + } + lnx_wm_state->window_visual = vi->visual; + lnx_wm_state->window_depth = vi->depth; + lnx_wm_state->window_colormap = XCreateColormap(lnx_wm_state->display, + XRootWindow(lnx_wm_state->display, vi->screen), + vi->visual, AllocNone); + XFree(vi); + } //- rjf: construct context { @@ -72,35 +82,38 @@ r_ogl_os_init(CmdLine *cmdln) GLX_CONTEXT_FLAGS_ARB, !!debug_mode*GLX_CONTEXT_DEBUG_BIT_ARB, None }; - r_ogl_lnx_ctx = glXCreateContextAttribsARB(os_lnx_gfx_state->display, framebuffer_config, 0, 1, context_options); + r_ogl_lnx_ctx = glXCreateContextAttribsARB(lnx_wm_state->display, framebuffer_config, 0, 1, context_options); } - glXMakeCurrent(os_lnx_gfx_state->display, 0, r_ogl_lnx_ctx); + glXMakeCurrent(lnx_wm_state->display, 0, r_ogl_lnx_ctx); } internal R_Handle -r_ogl_os_window_equip(OS_Handle window) +r_ogl_os_window_equip(WM_Window window) { R_Handle result = {0}; return result; } internal void -r_ogl_os_window_unequip(OS_Handle os, R_Handle r) +r_ogl_os_window_unequip(WM_Window os, R_Handle r) { } internal void -r_ogl_os_select_window(OS_Handle os, R_Handle r) +r_ogl_os_select_window(WM_Window os, R_Handle r) { - OS_LNX_Window *w = (OS_LNX_Window *)os.u64[0]; - glXMakeCurrent(os_lnx_gfx_state->display, w->window, r_ogl_lnx_ctx); + LNX_WM_Window *w = (LNX_WM_Window *)os.u64[0]; + glXMakeCurrent(lnx_wm_state->display, w->window, r_ogl_lnx_ctx); + // ensure default framebuffer writes target the back buffer; on some drivers + // GL_DRAW_BUFFER stays GL_NONE if a context was first made current without a drawable. + glDrawBuffer(GL_BACK); } internal void -r_ogl_os_window_swap(OS_Handle os, R_Handle r) +r_ogl_os_window_swap(WM_Window os, R_Handle r) { - OS_LNX_Window *w = (OS_LNX_Window *)os.u64[0]; - glXSwapBuffers(os_lnx_gfx_state->display, w->window); + LNX_WM_Window *w = (LNX_WM_Window *)os.u64[0]; + glXSwapBuffers(lnx_wm_state->display, w->window); } diff --git a/src/render/opengl/linux/render_opengl_linux.h b/src/render/opengl/linux/render_opengl_linux.h index 823e104e..3cab3328 100644 --- a/src/render/opengl/linux/render_opengl_linux.h +++ b/src/render/opengl/linux/render_opengl_linux.h @@ -14,7 +14,7 @@ //~ rjf: Decide On Backend #if !defined(R_OPENGL_LINUX_BACKEND) -# define R_OPENGL_LINUX_BACKEND R_OPENGL_LINUX_BACKEND_EGL +# define R_OPENGL_LINUX_BACKEND R_OPENGL_LINUX_BACKEND_GLX #endif //////////////////////////////// diff --git a/src/render/opengl/render_opengl.c b/src/render/opengl/render_opengl.c index 7f646b36..d9814293 100644 --- a/src/render/opengl/render_opengl.c +++ b/src/render/opengl/render_opengl.c @@ -95,6 +95,22 @@ r_ogl_debug_message_callback(GLenum source, GLenum type, GLuint id, GLenum sever fprintf(stderr, "[OpenGL] %.*s\n", (int)length, message); } +internal B32 +r_ogl_scissor(Rng2F32 clip, Vec2F32 viewport_dim) +{ + S32 x0 = Clamp(0, (S32)floor_f32(clip.x0), (S32)viewport_dim.x); + S32 y0 = Clamp(0, (S32)floor_f32(clip.y0), (S32)viewport_dim.y); + S32 x1 = Clamp(0, (S32)ceil_f32(clip.x1), (S32)viewport_dim.x); + S32 y1 = Clamp(0, (S32)ceil_f32(clip.y1), (S32)viewport_dim.y); + S32 width = x1 - x0; + S32 height = y1 - y0; + if(width > 0 && height > 0) + { + glScissor(x0, (S32)viewport_dim.y - y1, width, height); + } + return width > 0 && height > 0; +} + //////////////////////////////// //~ rjf: Backend Hooks @@ -172,15 +188,28 @@ r_init(CmdLine *cmdln) } //- rjf: set up built-in resources - glGenVertexArrays(1, &r_ogl_state->all_purpose_vao); - glGenBuffers(1, &r_ogl_state->scratch_buffer_64kb); - glBindBuffer(GL_ARRAY_BUFFER, r_ogl_state->scratch_buffer_64kb); - glBufferData(GL_ARRAY_BUFFER, KB(64), 0, GL_DYNAMIC_DRAW); - glBindBuffer(GL_ARRAY_BUFFER, 0); - glGenTextures(1, &r_ogl_state->white_texture); - glBindTexture(GL_TEXTURE_2D, r_ogl_state->white_texture); - U32 white_pixel = 0xffffffff; - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, &white_pixel); + { + // rjf: all-purpose VAO + glGenVertexArrays(1, &r_ogl_state->all_purpose_vao); + + // rjf: scratch buffer + { + glGenBuffers(1, &r_ogl_state->scratch_buffer_64kb); + glBindBuffer(GL_ARRAY_BUFFER, r_ogl_state->scratch_buffer_64kb); + glBufferData(GL_ARRAY_BUFFER, KB(64), 0, GL_DYNAMIC_DRAW); + glBindBuffer(GL_ARRAY_BUFFER, 0); + } + + // rjf: white texture + { + glGenTextures(1, &r_ogl_state->white_texture); + glBindTexture(GL_TEXTURE_2D, r_ogl_state->white_texture); + U32 white_pixel = 0xffffffff; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, &white_pixel); + } + } + + //- rjf: set up options glEnable(GL_FRAMEBUFFER_SRGB); //- rjf: set up buffer flush state @@ -201,16 +230,29 @@ r_init(CmdLine *cmdln) //- rjf: window setup/teardown r_hook R_Handle -r_window_equip(OS_Handle window) +r_window_equip(WM_Window window) { - R_Handle result = r_ogl_os_window_equip(window); + R_OGL_Window *w = r_ogl_state->free_window; + if(w != 0) + { + SLLStackPop(r_ogl_state->free_window); + } + else + { + w = push_array(r_ogl_state->arena, R_OGL_Window, 1); + } + MemoryZeroStruct(w); + w->os = r_ogl_os_window_equip(window); + R_Handle result = {(U64)w}; return result; } r_hook void -r_window_unequip(OS_Handle window, R_Handle window_equip) +r_window_unequip(WM_Window window, R_Handle window_equip) { - r_ogl_os_window_unequip(window, window_equip); + R_OGL_Window *w = (R_OGL_Window *)window_equip.u64[0]; + r_ogl_os_window_unequip(window, w->os); + SLLStackPush(r_ogl_state->free_window, w); } //- rjf: textures @@ -336,29 +378,6 @@ r_begin_frame(void) r_hook void r_end_frame(void) -{ - // TODO(rjf) -} - -r_hook void -r_window_begin_frame(OS_Handle os, R_Handle r) -{ - r_ogl_os_select_window(os, r); - - //- rjf: unpack window viewport info - Rng2F32 client_rect = os_client_rect_from_window(os); - Vec2F32 client_rect_dim = dim_2f32(client_rect); - - //- rjf: clear and reset state - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glViewport(0, 0, (S32)client_rect_dim.x, (S32)client_rect_dim.y); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); -} - -r_hook void -r_window_end_frame(OS_Handle os, R_Handle r) { for(R_OGL_FlushBuffer *flush_buffer = r_ogl_state->first_buffer_to_flush; flush_buffer != 0; flush_buffer = flush_buffer->next) { @@ -366,15 +385,92 @@ r_window_end_frame(OS_Handle os, R_Handle r) } arena_clear(r_ogl_state->buffer_flush_arena); r_ogl_state->first_buffer_to_flush = r_ogl_state->last_buffer_to_flush = 0; +} + +r_hook void +r_window_begin_frame(WM_Window os, R_Handle r) +{ + r_ogl_os_select_window(os, r); + R_OGL_Window *window = (R_OGL_Window *)r.u64[0]; + + //- rjf: unpack window viewport info + Rng2F32 client_rect = wm_client_rect_from_window(os); + Vec2F32 client_rect_dim = dim_2f32(client_rect); + + //- rjf: set up targets if needed + if(client_rect_dim.x != window->last_client_rect_dim.x || client_rect_dim.y != window->last_client_rect_dim.y) + { + window->last_client_rect_dim = client_rect_dim; + R_OGL_RenderTarget *targets[] = + { + &window->stage_target, + &window->stage_scratch_target, + }; + for EachElement(idx, targets) + { + if(targets[idx]->fbo != 0) + { + glDeleteFramebuffers(1, &targets[idx]->fbo); + glDeleteTextures(1, &targets[idx]->color_texture); + } + glGenFramebuffers(1, &targets[idx]->fbo); + glGenTextures(1, &targets[idx]->color_texture); + glBindFramebufferScope(GL_FRAMEBUFFER, targets[idx]->fbo) + glBindTextureScope(GL_TEXTURE_2D, targets[idx]->color_texture) + { + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (S32)client_rect_dim.x, (S32)client_rect_dim.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, targets[idx]->color_texture, 0); + } + } + } + + //- rjf: clear and reset state + { + GLuint fbos[] = + { + window->stage_target.fbo, + window->stage_scratch_target.fbo, + 0, + }; + for EachElement(idx, fbos) + { + glBindFramebufferScope(GL_FRAMEBUFFER, fbos[idx]) + { + glClearColor(0, 0, 0, 0); + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + } + } + } + glViewport(0, 0, (S32)client_rect_dim.x, (S32)client_rect_dim.y); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); +} + +r_hook void +r_window_end_frame(WM_Window os, R_Handle r) +{ + R_OGL_Window *window = (R_OGL_Window *)r.u64[0]; + + //- rjf: blit window's main staging frame buffer to window frame buffer + glBindFramebufferScope(GL_READ_FRAMEBUFFER, window->stage_target.fbo) glBindFramebufferScope(GL_DRAW_FRAMEBUFFER, 0) + { + glBlitFramebuffer(0, 0, (S32)window->last_client_rect_dim.x, (S32)window->last_client_rect_dim.y, + 0, 0, (S32)window->last_client_rect_dim.x, (S32)window->last_client_rect_dim.y, + GL_COLOR_BUFFER_BIT, + GL_NEAREST); + } + + //- rjf: swap buffers r_ogl_os_window_swap(os, r); } //- rjf: render pass submission r_hook void -r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) +r_window_submit(WM_Window window, R_Handle window_equip, R_PassList *passes) { - Rng2F32 viewport_rect = os_client_rect_from_window(window); + R_OGL_Window *w = (R_OGL_Window *)window_equip.u64[0]; + Rng2F32 viewport_rect = wm_client_rect_from_window(window); Vec2F32 viewport_dim = dim_2f32(viewport_rect); for(R_PassNode *pass_n = passes->first; pass_n != 0; pass_n = pass_n->next) { @@ -394,7 +490,9 @@ r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) //- rjf: draw each batch group GLuint shader = r_ogl_state->shaders[R_OGL_ShaderKind_Rect]; - glBindVertexArrayScope(r_ogl_state->all_purpose_vao) glUseProgramScope(shader) + glUseProgramScope(shader) + glBindVertexArrayScope(r_ogl_state->all_purpose_vao) + glBindFramebufferScope(GL_FRAMEBUFFER, w->stage_target.fbo) { for(R_BatchGroup2DNode *group_n = rect_batch_groups->first; group_n != 0; group_n = group_n->next) { @@ -469,6 +567,7 @@ r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) glUniformMatrix4fv(glGetUniformLocation(shader, "u_texture_sample_channel_map"), 1, 0, &texture_sample_channel_map.v[0][0]); glUniform2f(glGetUniformLocation(shader, "u_viewport_size_px"), viewport_dim.x, viewport_dim.y); glUniform1f(glGetUniformLocation(shader, "u_opacity"), 1.f - group_params->transparency); + glUniformMatrix3fv(glGetUniformLocation(shader, "u_xform"), 1, 0, &group_params->xform.v[0][0]); } //- rjf: set up scissor @@ -477,9 +576,10 @@ r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) group_params->clip.y0 != 0 || group_params->clip.y1 != 0) { - Rng2F32 clip = group_params->clip; - glScissor(clip.x0, viewport_dim.y - clip.y1, (clip.x1-clip.x0) + 1, (clip.y1-clip.y0)+1); - glEnable(GL_SCISSOR_TEST); + if(r_ogl_scissor(group_params->clip, viewport_dim)) + { + glEnable(GL_SCISSOR_TEST); + } } //- rjf: draw @@ -500,9 +600,103 @@ r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) { R_PassParams_Blur *params = pass->params_blur; GLuint shader = r_ogl_state->shaders[R_OGL_ShaderKind_Blur]; - // TODO(rjf): glBindVertexArrayScope(r_ogl_state->all_purpose_vao) glUseProgramScope(shader) + glUseProgramScope(shader) + glBindVertexArrayScope(r_ogl_state->all_purpose_vao) { - // TODO(rjf) + //- rjf: form blur sampling kernel + Vec4F32 kernel[32] = {0}; + U64 blur_count = 0; + { + // + // TODO(rjf): adopted from martins' d3d11 impl, should dedup in common render helpers + // + F32 weights[ArrayCount(kernel)*2] = {0}; + F32 blur_size = Min(params->blur_size, ArrayCount(weights)); + blur_count = (U64)round_f32(blur_size); + F32 stdev = (blur_size-1.f)/2.f; + F32 one_over_root_2pi_stdev2 = 1/sqrt_f32(2*pi32*stdev*stdev); + F32 euler32 = 2.718281828459045f; + weights[0] = 1.f; + if(stdev > 0.f) + { + for(U64 idx = 0; idx < blur_count; idx += 1) + { + F32 kernel_x = (F32)idx; + weights[idx] = one_over_root_2pi_stdev2*pow_f32(euler32, -kernel_x*kernel_x/(2.f*stdev*stdev)); + } + } + if(weights[0] > 1.f) + { + MemoryZeroArray(weights); + weights[0] = 1.f; + } + else + { + // prepare weights & offsets for bilinear lookup + // blur filter wants to calculate w0*pixel[pos] + w1*pixel[pos+1] + ... + // with bilinear filter we can do this calulation by doing only w*sample(pos+t) = w*((1-t)*pixel[pos] + t*pixel[pos+1]) + // we can see w0=w*(1-t) and w1=w*t + // thus w=w0+w1 and t=w1/w + for(U64 idx = 1; idx < blur_count; idx += 2) + { + F32 w0 = weights[idx + 0]; + F32 w1 = weights[idx + 1]; + F32 w = w0 + w1; + F32 t = w1 / w; + + // each kernel element is float2(weight, offset) + // weights & offsets are adjusted for bilinear sampling + // zw elements are not used, a bit of waste but it allows for simpler shader code + kernel[(idx+1)/2] = v4f32(w, (F32)idx + t, 0, 0); + } + } + kernel[0].x = weights[0]; + } + + //- rjf: set up uniforms + glUniform4fv(glGetUniformLocation(shader, "rect"), 1, (F32 *)(¶ms->rect)); + glUniform4fv(glGetUniformLocation(shader, "corner_radii_px"), 1, params->corner_radii); + glUniform2f(glGetUniformLocation(shader, "viewport_size"), viewport_dim.x, viewport_dim.y); + glUniform1i(glGetUniformLocation(shader, "blur_count"), blur_count); + glUniform4fv(glGetUniformLocation(shader, "kernel"), ArrayCount(kernel), (F32 *)&kernel[0]); + glActiveTexture(GL_TEXTURE0); + + //- rjf: set up scissor + if(params->clip.x0 != 0 || + params->clip.x1 != 0 || + params->clip.y0 != 0 || + params->clip.y1 != 0) + { + if(r_ogl_scissor(params->clip, viewport_dim)) + { + glEnable(GL_SCISSOR_TEST); + } + } + + //- rjf: pass 1: stage -(horizontal)-> stage_scratch + glBindFramebufferScope(GL_FRAMEBUFFER, w->stage_scratch_target.fbo) + glBindTextureScope(GL_TEXTURE_2D, w->stage_target.color_texture) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glUniform2f(glGetUniformLocation(shader, "direction"), 1.f/viewport_dim.x, 0); + glUniform1i(glGetUniformLocation(shader, "tex"), 0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + } + + //- rjf: pass 2: stage_scratch -(vertical)-> stage + glBindFramebufferScope(GL_FRAMEBUFFER, w->stage_target.fbo) + glBindTextureScope(GL_TEXTURE_2D, w->stage_scratch_target.color_texture) + { + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); + glUniform2f(glGetUniformLocation(shader, "direction"), 0, 1.f/viewport_dim.y); + glUniform1i(glGetUniformLocation(shader, "tex"), 0); + glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); + } + + //- rjf: unset scissor + glDisable(GL_SCISSOR_TEST); } }break; diff --git a/src/render/opengl/render_opengl.h b/src/render/opengl/render_opengl.h index bdbdf051..e64ec04c 100644 --- a/src/render/opengl/render_opengl.h +++ b/src/render/opengl/render_opengl.h @@ -11,9 +11,46 @@ typedef char GLchar; typedef ptrdiff_t GLsizeiptr; typedef ptrdiff_t GLintptr; +#define GL_FRAMEBUFFER 0x8D40 #define GL_FRAMEBUFFER_SRGB 0x8DB9 #define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 + +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT16 0x8CF0 +#define GL_COLOR_ATTACHMENT17 0x8CF1 +#define GL_COLOR_ATTACHMENT18 0x8CF2 +#define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT20 0x8CF4 +#define GL_COLOR_ATTACHMENT21 0x8CF5 +#define GL_COLOR_ATTACHMENT22 0x8CF6 +#define GL_COLOR_ATTACHMENT23 0x8CF7 +#define GL_COLOR_ATTACHMENT24 0x8CF8 +#define GL_COLOR_ATTACHMENT25 0x8CF9 +#define GL_COLOR_ATTACHMENT26 0x8CFA +#define GL_COLOR_ATTACHMENT27 0x8CFB +#define GL_COLOR_ATTACHMENT28 0x8CFC +#define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_ATTACHMENT30 0x8CFE +#define GL_COLOR_ATTACHMENT31 0x8CFF + #define GL_R8 0x8229 #define GL_ARRAY_BUFFER 0x8892 @@ -117,6 +154,8 @@ X(glBindBuffer, void, (GLenum target, GLuint buffer))\ X(glDeleteBuffers, void, (GLsizei n, GLuint *buffers))\ X(glGenVertexArrays, void, (GLsizei n, GLuint *arrays))\ X(glBindVertexArray, void, (GLuint array))\ +X(glGenFramebuffers, void, (GLsizei n, GLuint *fbos))\ +X(glDeleteFramebuffers, void, (GLsizei n, GLuint *fbos))\ X(glCreateProgram, GLuint, (void))\ X(glCreateShader, GLuint, (GLenum type))\ X(glShaderSource, void, (GLuint shader, GLsizei count, char **string, GLint *length))\ @@ -141,6 +180,8 @@ X(glUniform1f, void, (GLint location, GLfloat v0))\ X(glUniform2f, void, (GLint location, GLfloat v0, GLfloat v1))\ X(glUniform3f, void, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2))\ X(glUniform4f, void, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3))\ +X(glUniform4fv, void, (GLint location, GLsizei count, const GLfloat *value))\ +X(glUniformMatrix3fv, void, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\ X(glUniformMatrix4fv, void, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\ X(glUniform1i, void, (GLint location, GLint v0))\ X(glTexImage3D, void, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels))\ @@ -148,10 +189,13 @@ X(glTexSubImage3D, void, (GLenum target, GLint level, GLint xoffset, GLint yoffs X(glGenerateMipmap, void, (GLenum target))\ X(glBindAttribLocation, void, (GLuint programObj, GLuint index, char *name))\ X(glBindFragDataLocation, void, (GLuint program, GLuint color, char *name))\ +X(glBindFramebuffer, void, (GLenum target, GLuint fbo))\ X(glActiveTexture, void, (GLenum texture))\ X(glVertexAttribDivisor, void, (GLuint index, GLuint divisor))\ X(glDrawArraysInstanced, void, (GLenum mode, GLint first, GLsizei count, GLsizei instancecount))\ X(glDebugMessageCallback, void, (void (*)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam), void *user_data))\ +X(glFramebufferTexture2D, void, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level))\ +X(glBlitFramebuffer, void, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))\ #define X(name, r, p) typedef r name##_FunctionType p; R_OGL_ProcedureXList @@ -188,10 +232,28 @@ struct R_OGL_FlushBuffer GLuint id; }; +typedef struct R_OGL_RenderTarget R_OGL_RenderTarget; +struct R_OGL_RenderTarget +{ + GLuint fbo; + GLuint color_texture; +}; + +typedef struct R_OGL_Window R_OGL_Window; +struct R_OGL_Window +{ + R_OGL_Window *next; + R_Handle os; + Vec2F32 last_client_rect_dim; + R_OGL_RenderTarget stage_target; + R_OGL_RenderTarget stage_scratch_target; +}; + typedef struct R_OGL_State R_OGL_State; struct R_OGL_State { Arena *arena; + R_OGL_Window *free_window; R_OGL_Tex2D *free_tex2d; GLuint shaders[R_OGL_ShaderKind_COUNT]; GLuint all_purpose_vao; @@ -216,17 +278,20 @@ internal R_OGL_FormatInfo r_ogl_format_info_from_tex2dformat(R_Tex2DFormat fmt); internal GLuint r_ogl_instance_buffer_from_size(U64 size); internal void r_ogl_debug_message_callback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam); -#define glUseProgramScope(...) DeferLoop(glUseProgram(__VA_ARGS__), glUseProgram(0)) -#define glBindVertexArrayScope(...) DeferLoop(glBindVertexArray(__VA_ARGS__), glBindVertexArray(0)) +#define glUseProgramScope(...) DeferLoop(glUseProgram(__VA_ARGS__), glUseProgram(0)) +#define glBindVertexArrayScope(...) DeferLoop(glBindVertexArray(__VA_ARGS__), glBindVertexArray(0)) +#define glBindFramebufferScope(target, ...) DeferLoop(glBindFramebuffer((target), __VA_ARGS__), glBindFramebuffer((target), 0)) +#define glBindTextureScope(target, ...) DeferLoop(glBindTexture((target), __VA_ARGS__), glBindTexture((target), 0)) +#define glEnableScope(...) DeferLoop(glEnable(__VA_ARGS__), glDisable(__VA_ARGS__)) //////////////////////////////// //~ rjf: OS-Specific Hooks internal VoidProc *r_ogl_os_load_procedure(char *name); internal void r_ogl_os_init(CmdLine *cmdln); -internal R_Handle r_ogl_os_window_equip(OS_Handle window); -internal void r_ogl_os_window_unequip(OS_Handle os, R_Handle r); -internal void r_ogl_os_select_window(OS_Handle os, R_Handle r); -internal void r_ogl_os_window_swap(OS_Handle os, R_Handle r); +internal R_Handle r_ogl_os_window_equip(WM_Window window); +internal void r_ogl_os_window_unequip(WM_Window os, R_Handle r); +internal void r_ogl_os_select_window(WM_Window os, R_Handle r); +internal void r_ogl_os_window_swap(WM_Window os, R_Handle r); #endif // RENDER_OPENGL_H diff --git a/src/render/opengl/render_opengl.mdesk b/src/render/opengl/render_opengl.mdesk index 9bfd735c..c2665929 100644 --- a/src/render/opengl/render_opengl.mdesk +++ b/src/render/opengl/render_opengl.mdesk @@ -57,7 +57,7 @@ in vec4 c2v_colors_1; in vec4 c2v_colors_2; in vec4 c2v_colors_3; in vec4 c2v_corner_radii; -in vec4 c2v_style; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused +in vec4 c2v_style; // x: border_thickness_px, y: softness_px, z: omit_texture, w: shear out vec2 v2p_sdf_sample_pos; out vec2 v2p_texcoord_pct; @@ -68,6 +68,7 @@ out float v2p_border_thickness; out float v2p_softness; out float v2p_omit_texture; +uniform mat3 u_xform; uniform sampler2D u_tex_color; uniform vec2 u_viewport_size_px; @@ -76,10 +77,15 @@ void main(void) // rjf: constants vec2 vertices[] = vec2[](vec2(-1, -1), vec2(-1, +1), vec2(+1, -1), vec2(+1, +1)); + // rjf: unpack shears + float shears[] = float[](0, 0, c2v_style.w, c2v_style.w); + // rjf: find dst position vec2 dst_half_size = (c2v_dst_rect.zw - c2v_dst_rect.xy) / 2; vec2 dst_center = (c2v_dst_rect.zw + c2v_dst_rect.xy) / 2; vec2 dst_position = vertices[gl_VertexID] * dst_half_size + dst_center; + dst_position.y += shears[gl_VertexID]; + dst_position = (u_xform * vec3(dst_position.x, dst_position.y, 1)).xy; // rjf: find src position vec2 src_half_size = (c2v_src_rect.zw - c2v_src_rect.xy) / 2; @@ -208,7 +214,6 @@ void main(void) uniform vec4 rect; uniform vec4 corner_radii_px; uniform vec2 viewport_size; -uniform uint blur_count; out vec2 texcoord; out vec2 sdf_sample_pos; @@ -221,23 +226,23 @@ void main(void) rect.xy, rect.zw, rect.zy); - float corner_radii_px[] = float[](corner_radii_px.y, - corner_radii_px.x, - corner_radii_px.w, - corner_radii_px.z); + float corner_radii[] = float[](corner_radii_px.y, + corner_radii_px.x, + corner_radii_px.w, + corner_radii_px.z); vec2 cornercoords_pct = vec2((gl_VertexID >> 1) != 0 ? 1.f : 0.f, (gl_VertexID & 1) != 0 ? 0.f : 1.f); vec2 vertex_position_pct = vertex_positions_scrn[gl_VertexID] / viewport_size; vec2 vertex_position_scr = 2.f * vertex_position_pct - 1.f; - vec2 rect_half_size = vec2((rect.z-rect.x)/2, (rect.w-rect.y)/2); + vec2 rect_half_size_local = vec2((rect.z-rect.x)/2, (rect.w-rect.y)/2); gl_Position = vec4(vertex_position_scr.x, -vertex_position_scr.y, 0.f, 1.f); - texcoord = vertex_position_pct; - sdf_sample_pos = (2.f * cornercoords_pct - 1.f) * rect_half_size; - rect_half_size = rect_half_size - 2.f; - corner_radius = corner_radii_px[gl_VertexID]; + texcoord = vec2(vertex_position_pct.x, 1-vertex_position_pct.y); + sdf_sample_pos = (2.f * cornercoords_pct - 1.f) * rect_half_size_local; + rect_half_size = rect_half_size_local - 2.f; + corner_radius = corner_radii[gl_VertexID]; } ``` @@ -267,7 +272,6 @@ void main(void) { // rjf: blend weighted texture samples into color vec3 color = kernel[0].x * texture(tex, texcoord).rgb; - for(int i = 1; i < blur_count; i += 1) { float weight = kernel[i].x; @@ -278,7 +282,7 @@ void main(void) // rjf: sample for corners float corner_sdf_s = rect_sdf(sdf_sample_pos, rect_half_size, corner_radius); - float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s); + float corner_sdf_t = smoothstep(0, 2, corner_sdf_s); // rjf: weight output color by sdf // this is doing alpha testing, leave blurring only where mostly opaque pixels are diff --git a/src/render/opengl/win32/render_opengl_win32.c b/src/render/opengl/win32/render_opengl_win32.c index e0951e4c..aefb4ae0 100644 --- a/src/render/opengl/win32/render_opengl_win32.c +++ b/src/render/opengl/win32/render_opengl_win32.c @@ -101,10 +101,10 @@ r_ogl_os_init(CmdLine *cmdline) } internal R_Handle -r_ogl_os_window_equip(OS_Handle window) +r_ogl_os_window_equip(WM_Window window) { //- rjf: unpack window - OS_W32_Window *w = os_w32_window_from_handle(window); + W32_WM_Window *w = w32_wm_window_from_handle(window); HWND hwnd = w->hwnd; HDC hdc = w->hdc; @@ -155,14 +155,14 @@ r_ogl_os_window_equip(OS_Handle window) } internal void -r_ogl_os_window_unequip(OS_Handle os, R_Handle r) +r_ogl_os_window_unequip(WM_Window os, R_Handle r) { } internal void -r_ogl_os_select_window(OS_Handle os, R_Handle r) +r_ogl_os_select_window(WM_Window os, R_Handle r) { - OS_W32_Window *w = os_w32_window_from_handle(os); + W32_WM_Window *w = w32_wm_window_from_handle(os); if(w != 0) { HWND hwnd = w->hwnd; @@ -172,9 +172,9 @@ r_ogl_os_select_window(OS_Handle os, R_Handle r) } internal void -r_ogl_os_window_swap(OS_Handle os, R_Handle r) +r_ogl_os_window_swap(WM_Window os, R_Handle r) { - OS_W32_Window *w = os_w32_window_from_handle(os); + W32_WM_Window *w = w32_wm_window_from_handle(os); if(w != 0) { HDC dc = w->hdc; diff --git a/src/render/render_core.h b/src/render/render_core.h index e9182497..26d2ac37 100644 --- a/src/render/render_core.h +++ b/src/render/render_core.h @@ -103,7 +103,7 @@ struct R_Rect2DInst F32 border_thickness; F32 edge_softness; F32 white_texture_override; - F32 _unused_[1]; + F32 shear; }; typedef struct R_Mesh3DInst R_Mesh3DInst; @@ -281,8 +281,8 @@ internal R_Pass *r_pass_from_kind(Arena *arena, R_PassList *list, R_PassKind kin r_hook void r_init(CmdLine *cmdln); //- rjf: window setup/teardown -r_hook R_Handle r_window_equip(OS_Handle window); -r_hook void r_window_unequip(OS_Handle window, R_Handle window_equip); +r_hook R_Handle r_window_equip(WM_Window window); +r_hook void r_window_unequip(WM_Window window, R_Handle window_equip); //- rjf: textures r_hook R_Handle r_tex2d_alloc(R_ResourceKind kind, Vec2S32 size, R_Tex2DFormat format, void *data); @@ -299,10 +299,10 @@ r_hook void r_buffer_release(R_Handle buffer); //- rjf: frame markers r_hook void r_begin_frame(void); r_hook void r_end_frame(void); -r_hook void r_window_begin_frame(OS_Handle window, R_Handle window_equip); -r_hook void r_window_end_frame(OS_Handle window, R_Handle window_equip); +r_hook void r_window_begin_frame(WM_Window window, R_Handle window_equip); +r_hook void r_window_end_frame(WM_Window window, R_Handle window_equip); //- rjf: render pass submission -r_hook void r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes); +r_hook void r_window_submit(WM_Window window, R_Handle window_equip, R_PassList *passes); #endif // RENDER_CORE_H diff --git a/src/render/stub/render_stub.c b/src/render/stub/render_stub.c index 702327f3..537f1638 100644 --- a/src/render/stub/render_stub.c +++ b/src/render/stub/render_stub.c @@ -11,7 +11,7 @@ r_init(CmdLine *cmdln) //- rjf: window setup/teardown r_hook R_Handle -r_window_equip(OS_Handle window) +r_window_equip(WM_Window window) { R_Handle handle = {0}; handle.u64[0] = 1; @@ -19,7 +19,7 @@ r_window_equip(OS_Handle window) } r_hook void -r_window_unequip(OS_Handle window, R_Handle window_equip) +r_window_unequip(WM_Window window, R_Handle window_equip) { } @@ -41,7 +41,7 @@ r_tex2d_release(R_Handle texture) r_hook R_ResourceKind r_kind_from_tex2d(R_Handle texture) { - return R_ResourceStatic; + return R_ResourceKind_Static; } r_hook Vec2S32 @@ -89,18 +89,18 @@ r_end_frame(void) } r_hook void -r_window_begin_frame(OS_Handle window, R_Handle window_equip) +r_window_begin_frame(WM_Window window, R_Handle window_equip) { } r_hook void -r_window_end_frame(OS_Handle window, R_Handle window_equip) +r_window_end_frame(WM_Window window, R_Handle window_equip) { } //- rjf: render pass submission r_hook void -r_window_submit(OS_Handle window, R_Handle window_equip, R_PassList *passes) +r_window_submit(WM_Window window, R_Handle window_equip, R_PassList *passes) { } diff --git a/src/scratch/eval_scratch.c b/src/scratch/eval_scratch.c deleted file mode 100644 index a9cb9a32..00000000 --- a/src/scratch/eval_scratch.c +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Includes - -//- rjf: [h] -#include "base/base_inc.h" -#include "os/os_inc.h" -#include "rdi_format/rdi_format_local.h" -#include "regs/regs.h" -#include "regs/rdi/regs_rdi.h" -#include "eval/eval_inc.h" - -//- rjf: [c] -#include "base/base_inc.c" -#include "os/os_inc.c" -#include "rdi_format/rdi_format_local.c" -#include "regs/regs.c" -#include "regs/rdi/regs_rdi.c" -#include "eval/eval_inc.c" - -//////////////////////////////// -//~ rjf: Entry Point - -internal void -entry_point(CmdLine *cmdline) -{ - Arena *arena = arena_alloc(); - E_TypeCtx *type_ctx = push_array(arena, E_TypeCtx, 1); - e_select_type_ctx(type_ctx); - E_ParseCtx *parse_ctx = push_array(arena, E_ParseCtx, 1); - e_select_parse_ctx(parse_ctx); - E_IRCtx *ir_ctx = push_array(arena, E_IRCtx, 1); - e_select_ir_ctx(ir_ctx); - E_InterpretCtx *interpret_ctx = push_array(arena, E_InterpretCtx, 1); - e_select_interpret_ctx(interpret_ctx, 0, 0); - String8 exprs[] = - { - str8_lit("123"), - str8_lit("1 + 2"), - str8_lit("foo"), - str8_lit("foo(bar)"), - str8_lit("foo(bar(baz))"), - }; - for EachElement(idx, exprs) - { - String8 debug_string = e_debug_log_from_expr_string(arena, exprs[idx]); - raddbg_log("%S", debug_string); - } -} diff --git a/src/scratch/parse_inline_sites.c b/src/scratch/parse_inline_sites.c index bd2bb656..10ba76be 100644 --- a/src/scratch/parse_inline_sites.c +++ b/src/scratch/parse_inline_sites.c @@ -290,7 +290,7 @@ entry_point(CmdLine *cmdl) String8 c13_data = pdb_data_from_unit_range(msf, comp_unit, PDB_DbiCompUnitRange_C13); // parse $$ - CV_DebugS debug_s = cv_parse_debug_s_c13(arena, c13_data); + CV_DebugS debug_s = cv_debug_s_from_data_c13(arena, c13_data); // find $$FILE_CKSMS String8 file_chksms = cv_file_chksms_from_debug_s(debug_s); diff --git a/src/scratch/ryan_scratch.c b/src/scratch/ryan_scratch.c index cd79bb71..8c19eaf3 100644 --- a/src/scratch/ryan_scratch.c +++ b/src/scratch/ryan_scratch.c @@ -12,21 +12,21 @@ //- rjf: [h] #include "base/base_inc.h" -#include "os/os_inc.h" -#include "content/content.h" +#include "x64/x64.h" #include "artifact_cache/artifact_cache.h" -#include "file_stream/file_stream.h" #include "rdi/rdi_local.h" #include "dbg_info/dbg_info.h" +#include "arch/arch_inc.h" +#include "eval2/eval2.h" //- rjf: [c] #include "base/base_inc.c" -#include "os/os_inc.c" -#include "content/content.c" +#include "x64/x64.c" #include "artifact_cache/artifact_cache.c" -#include "file_stream/file_stream.c" #include "rdi/rdi_local.c" #include "dbg_info/dbg_info.c" +#include "arch/arch_inc.c" +#include "eval2/eval2.c" //////////////////////////////// //~ rjf: Entry Point @@ -34,53 +34,104 @@ internal void entry_point(CmdLine *cmdline) { - local_persist char *pdb_paths[] = + String8 strings[] = { - "C:/devel/raddebugger/build/raddbg.pdb", - // #include "fn_debug_infos.inc" + s("[123]"), + s("foo"), + s("foo.bar"), + s("123[456]"), + s("123"), + s("123 + 456"), + s("!1"), + s("!0"), + s("1 + 1 + 1"), + s("40 / 0"), + s("3 * 4"), + s("3 * 4 + 2"), + s("(3 * 4) + 2"), + s("2 + (3 * 4)"), + s("123 | 456"), + s("123 + "), + s("-123"), + s("sizeof 123"), + s("1 ? 123 : 456"), + s("123(1, 2, 3)"), }; - - DI_Key keys[ArrayCount(pdb_paths)] = {0}; - for EachElement(idx, pdb_paths) + for EachElement(idx, strings) { - String8 path = str8_cstring(pdb_paths[idx]); - keys[idx] = di_key_from_path_timestamp(path, 0); - di_open(keys[idx]); - } - - for(;;) - { - Access *access = access_open(); - B32 got_all_rdis = 1; - U64 num_rdis_loaded = 0; - for EachElement(idx, pdb_paths) + Temp scratch = scratch_begin(0, 0); + String8List msgs = {0}; + + // rjf: string -> expr + E2_Expr *expr = &e2_expr_nil; { - RDI_Parsed *rdi = di_rdi_from_key(access, keys[idx], 1, 0); - if(rdi == &rdi_parsed_nil) + E2_ParseState state = {0}; + E2_ExprMap expr_map = {0}; + E2_Expr *access_expr = &e2_expr_nil; + for(;;) { - got_all_rdis = 0; - } - else - { - num_rdis_loaded += 1; + E2_Parse parse = e2_parse_from_string(scratch.arena, &state, &expr_map, access_expr, strings[idx]); + expr = parse.expr; + access_expr = &e2_expr_nil; + for EachNode(n, E2_Msg, parse.msgs.first) + { + str8_list_push(scratch.arena, &msgs, n->string); + } + if(parse.status == E2_ParseStatus_MissedIdentifierResolution) + { + e2_expr_map_push(scratch.arena, &expr_map, parse.missed_identifier, e2_expr_const_u64_or_smaller(scratch.arena, 123)); + } + if(parse.status == E2_ParseStatus_IndexAccess) + { + access_expr = e2_expr_const_u64_or_smaller(scratch.arena, 111); + } + if(parse.status == E2_ParseStatus_MemberAccess) + { + access_expr = e2_expr_const_u64_or_smaller(scratch.arena, 456); + } + if(e2_parse_status_is_terminal(parse.status)) + { + break; + } } } - printf("\rloaded [%I64u/%I64u], %I64u active threads, %I64u active processes", num_rdis_loaded, ArrayCount(pdb_paths), di_shared->conversion_thread_count, di_shared->conversion_process_count); - access_close(access); - if(got_all_rdis) + + // rjf: expr -> bytecode + String8 bytecode = e2_bytecode_from_expr(scratch.arena, expr); + + // rjf: bytecode -> value + E2_Val val = {0}; { - Access *access = access_open(); - String8 search_query = str8_lit("rd_"); - DI_SearchItemArray items = di_search_item_array_from_target_query(access, RDI_SectionKind_Procedures, search_query, max_U64); - printf("\n"); - printf("fuzzy searched for %.*s, found %I64u items\n", str8_varg(search_query), items.count); - access_close(access); - - String8 match_query = str8_lit("rd_frame"); - DI_Match match = di_match_from_string(match_query, 0, max_U64); - printf("searched for %.*s, found at %i in [%I64x:%I64x]\n", str8_varg(match_query), match.idx, match.key.u64[0], match.key.u64[1]); - - break; + E2_InterpState state = {0}; + E2_SpaceMap space_map = {0}; + for(;;) + { + E2_Interp interp = e2_interp_from_bytecode(scratch.arena, &state, &space_map, bytecode); + val = interp.val; + if(e2_interp_status_is_terminal(interp.status)) + { + if(interp.status != E2_InterpStatus_Good) + { + str8_list_pushf(scratch.arena, &msgs, "Interpretation error (%i).", interp.status); + } + break; + } + } } + + // rjf: message string list -> string + StringJoin join = {.sep = s(" ")}; + String8 msgs_string = str8_list_join(scratch.arena, &msgs, &join); + + // rjf: log + printf("%.*s -> %I64d *%s* %s%.*s\n", str8_varg(strings[idx]), + val.s64, + expr->mode == E2_Mode_Type ? "type" : + expr->mode == E2_Mode_Value ? "value" : + "address", + msgs_string.size != 0 ? " // " : "", str8_varg(msgs_string)); + fflush(stdout); + + scratch_end(scratch); } } diff --git a/src/scratch/textperf.c b/src/scratch/textperf.c index 3c6c963c..3bac8971 100644 --- a/src/scratch/textperf.c +++ b/src/scratch/textperf.c @@ -12,7 +12,6 @@ //- rjf: [h] #include "base/base_inc.h" -#include "os/os_inc.h" #include "render/render_inc.h" #include "font_provider/font_provider_inc.h" #include "font_cache/font_cache.h" @@ -20,7 +19,6 @@ //- rjf: [c] #include "base/base_inc.c" -#include "os/os_inc.c" #include "render/render_inc.c" #include "font_provider/font_provider_inc.c" #include "font_cache/font_cache.c" @@ -41,10 +39,10 @@ frame(void) ProfBeginFunction(); B32 quit = 0; Temp scratch = scratch_begin(0, 0); - OS_EventList events = os_get_events(scratch.arena, 0); - for(OS_Event *evt = events.first; evt != 0; evt = evt->next) + WM_EventList events = wm_get_events(scratch.arena, 0); + for(WM_Event *evt = events.first; evt != 0; evt = evt->next) { - if(evt->kind == OS_EventKind_WindowClose) + if(evt->kind == WM_EventKind_WindowClose) { quit = 1; break; @@ -56,7 +54,7 @@ frame(void) DR_Bucket *bucket = dr_bucket_make(); DR_BucketScope(bucket) ProfScope("draw") { - Vec2F32 mouse = os_mouse_from_window(os_window); + Vec2F32 mouse = wm_mouse_from_window(os_window); FNT_Tag font = fnt_tag_from_path(str8_lit("C:/devel/raddebugger/data/Inconsolata-Regular.ttf")); for(F32 x = 0; x < 500; x += 5.f) { @@ -77,8 +75,8 @@ frame(void) internal void entry_point(CmdLine *cmdline) { - os_window = os_window_open(r2f32p(0, 0, 1600, 900), OS_WindowFlag_UseDefaultPosition, str8_lit("textperf")); + os_window = wm_window_open(r2f32p(0, 0, 1600, 900), WM_WindowFlag_UseDefaultPosition, str8_lit("textperf")); r_window = r_window_equip(os_window); - os_window_first_paint(os_window); + wm_window_first_paint(os_window); for(;!update();); } diff --git a/src/scratch/unit_sizes_from_pdb.c b/src/scratch/unit_sizes_from_pdb.c new file mode 100644 index 00000000..a2fd7766 --- /dev/null +++ b/src/scratch/unit_sizes_from_pdb.c @@ -0,0 +1,154 @@ +#define BUILD_CONSOLE_INTERFACE 1 +#define NO_ASYNC 1 + +#include "base/base_inc.h" +#include "x64/x64.h" +#include "linker/hash_table.h" +#include "coff/coff.h" +#include "coff/coff_parse.h" +#include "coff/coff_obj_writer.h" +#include "coff/coff_lib_writer.h" +#include "pe/pe.h" +#include "pe/pe_section_flags.h" +#include "pe/pe_make_import_table.h" +#include "pe/pe_make_export_table.h" +#include "pe/pe_make_debug_dir.h" +#include "codeview/codeview.h" +#include "codeview/codeview_parse.h" +#include "msf/msf.h" +#include "msf/msf_parse.h" +#include "pdb/pdb.h" +#include "pdb/pdb_parse.h" +#include "msvc_crt/msvc_crt.h" +#include "llvm/llvm.h" +#include "dwarf/dwarf.h" +#include "dwarf/x64/dwarf_x64.h" + +#include "base/base_inc.c" +#include "x64/x64.c" +#include "linker/hash_table.c" +#include "coff/coff.c" +#include "coff/coff_parse.c" +#include "coff/coff_obj_writer.c" +#include "coff/coff_lib_writer.c" +#include "pe/pe.c" +#include "pe/pe_make_import_table.c" +#include "pe/pe_make_export_table.c" +#include "pe/pe_make_debug_dir.c" +#include "codeview/codeview.c" +#include "codeview/codeview_parse.c" +#include "msf/msf.c" +#include "msf/msf_parse.c" +#include "pdb/pdb.c" +#include "pdb/pdb_parse.c" +#include "msvc_crt/msvc_crt.c" +#include "llvm/llvm.c" +#include "dwarf/x64/dwarf_x64.c" + +int is_before(void *a, void *b) +{ + return str8_compar_ignore_case(&(*(PDB_CompUnit**)a)->obj_name, &(*(PDB_CompUnit**)b)->obj_name) < 0; +} + +int sc_is_before(void *a, void *b) +{ + return (*(PDB_CompUnitContribution **)a)->voff_first < (*(PDB_CompUnitContribution **)b)->voff_first; +} + +internal void +entry_point(CmdLine *cmdline) +{ + Temp scratch = scratch_begin(0,0); + + String8 data = data_from_file_path(scratch.arena, cmdline->inputs.first->string); + if (data.size == 0) { + fprintf(stderr, "ERROR: input file was not read %.*s\n", str8_varg(cmdline->inputs.first->string)); + goto exit; + } + + // parse msf + MSF_Parsed *msf = msf_parsed_from_data(scratch.arena, data); + + // parse dbi + String8 dbi_data = msf_data_from_stream(msf, PDB_FixedStream_Dbi); + PDB_DbiParsed *dbi = pdb_dbi_from_data(scratch.arena, dbi_data); + + // parse image section table + COFF_SectionHeaderArray coff_sections = {0}; + MSF_StreamNumber section_stream = dbi->dbg_streams[PDB_DbiStream_SECTION_HEADER]; + String8 section_data = msf_data_from_stream(msf, section_stream); + coff_sections = pdb_coff_section_array_from_data(scratch.arena, section_data); + + // parse section contribs + String8 contribs_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_SecCon); + PDB_CompUnitContributionArray comp_unit_contributions = pdb_comp_unit_contribution_array_from_data(scratch.arena, contribs_data, coff_sections); + + // parse compile units + String8 comp_units_data = pdb_data_from_dbi_range(dbi, PDB_DbiRange_ModuleInfo); + PDB_CompUnitArray *comp_units = pdb_comp_unit_array_from_data(scratch.arena, comp_units_data); + + HashMap sc_hm = {0}; + + typedef struct SC_Node { + PDB_CompUnitContribution *v; + struct SC_Node *next; + } SC_Node; + + typedef struct { + U64 count; + SC_Node *first; + SC_Node *last; + } SC_List; + + U64 *sizes = push_array(scratch.arena, U64, comp_units->count + 1); + for EachIndex(i, comp_unit_contributions.count) { + PDB_CompUnitContribution *sc = &comp_unit_contributions.contributions[i]; + + U64 s = sc->voff_opl - sc->voff_first; + sizes[sc->mod] += s; + + PDB_CompUnit *cu = comp_units->units[sc->mod]; + SC_List *list = hash_map_search_raw_raw(&sc_hm, cu); + if (list == 0) { + list = push_array(scratch.arena, SC_List, 1); + hash_map_push_raw_raw(scratch.arena, &sc_hm, cu, list); + } + SC_Node *n = push_array(scratch.arena, SC_Node, 1); + n->v = sc; + SLLQueuePush(list->first, list->last, n); + list->count += 1; + } + + PDB_CompUnit **sorted_comp_units = push_array(scratch.arena, PDB_CompUnit *, comp_units->count); + for EachIndex(i, comp_units->count) { sorted_comp_units[i] = comp_units->units[i]; } + radsort(sorted_comp_units, comp_units->count, is_before); + + HashMap hm = {0}; + for EachIndex(i, comp_units->count) { hash_map_push_raw_u64(scratch.arena, &hm, comp_units->units[i], i); } + + for (U64 i = 0; i < comp_units->count; ++i) { + U64 *cu_idx = hash_map_search_raw_u64(&hm, sorted_comp_units[i]); + SC_List *sc_list = hash_map_search_raw_raw(&sc_hm, sorted_comp_units[i]); + + PDB_CompUnitContribution **cu_sc = 0; + if (sc_list) { + cu_sc = push_array(scratch.arena, PDB_CompUnitContribution *, sc_list->count); + U64 sc_idx = 0; + for EachNode(n, SC_Node, sc_list->first) { + cu_sc[sc_idx++] = n->v; + } + radsort(cu_sc, sc_idx, sc_is_before); + } + + fprintf(stdout, "0x%llx - %.*s %.*s\n", sizes[*cu_idx], str8_varg(sorted_comp_units[i]->obj_name), str8_varg(str8_skip_last_slash(sorted_comp_units[i]->group_name))); + if (cu_sc) { + for EachIndex(i, sc_list->count) { + fprintf(stdout, "\t0x%llx 0x%llx\n", (unsigned long long)(cu_sc[i]->voff_opl - cu_sc[i]->voff_first), (unsigned long long)cu_sc[i]->voff_first); + } + } + } + + exit:; + scratch_end(scratch); +} + diff --git a/src/stap/stap_parse.c b/src/stap/stap_parse.c new file mode 100644 index 00000000..0dfd55a8 --- /dev/null +++ b/src/stap/stap_parse.c @@ -0,0 +1,439 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal B32 +stap_is_scale_valid(U64 scale) +{ + return IsPow2(scale) && scale <= 8; +} + +internal U64 +stap_parse_digit(U8 *begin, U8 *end, U64 *digit_out) +{ + U8 *ptr = begin; + if (ptr < end && *ptr == '-') { + ptr += 1; + } + for (;ptr < end; ptr += 1) { + if (!char_is_digit(*ptr, 10)) { break; } + } + String8 digit_str = str8(begin, (U64)(ptr - begin)); + if (digit_out) { + *digit_out = u64_from_str8(digit_str, 10); + } + return digit_str.size; +} + +internal U64 +stap_skip_whitespace(U8 *begin, U8 *end) +{ + U8 *ptr = begin; + for (; ptr < end && *ptr == ' '; ptr += 1); + U64 size = (U64)(ptr - begin); + return size; +} + +internal U64 +stap_parse_ident(U8 *begin, U8 *end, String8 *ident_out) +{ + U8 *ptr = begin; + for (; ptr < end; ptr += 1) { + if (!char_is_alpha(*ptr) && !char_is_digit(*ptr, 10)) { break; } + } + String8 ident = str8(begin, (U64)(ptr - begin)); + if (ident_out) { *ident_out = ident; } + return ident.size; +} + +internal U64 +stap_size_from_arg(String8 string) +{ + U64 tag_sep = str8_find_needle(string, 0, str8_lit("@"), 0); + U64 next_tag_sep = str8_find_needle(string, tag_sep + 1, str8_lit("@"), 0); + U64 arg_end = str8_find_needle_reverse(string, string.size - next_tag_sep, str8_lit(" "), 0); + return arg_end == 0 ? string.size : arg_end; +} + +internal String8List +stap_list_from_string(Arena *arena, String8 string) +{ + String8List result = {0}; + for (U64 cursor = 0, arg_size; cursor < string.size; cursor += arg_size) { + arg_size = stap_size_from_arg(str8_skip(string, cursor)); + String8 arg = str8_substr(string, r1u64(cursor, cursor + arg_size)); + str8_list_push(arena, &result, arg); + } + return result; +} + +internal String8 +stap_parse_args_x64(String8 string, STAP_Arg *arg_out) +{ + ARCH_Info *arch_info = arch_info_from_arch(Arch_x64); + String8 error = str8_lit("unknown parse error"); + U64 sep_pos = str8_find_needle(string, 0, str8_lit("@"), 0); + if (sep_pos < string.size) { + STAP_Arg arg = {0}; + + String8 tag = str8_prefix(string, sep_pos + 1); + String8 oper = str8_skip(string, tag.size); + + STAP_ArgValueType arg_value_type = STAP_ArgValueType_Null; + U64 arg_value_size = 0; + B32 infer_arg_value_size = 1; + U64 tag_size = 0; + { + U8 *ptr = tag.str, *end = tag.str + tag.size; + + // is signed? + if (ptr >= end) { goto operand_parse_exit; } + if (*ptr == '-') { + arg_value_type = STAP_ArgValueType_S; + ptr += 1; + } + + // parse optional size + if (ptr >= end) { goto operand_parse_exit; } + if (char_is_digit(*ptr, 10)) { + arg_value_size = *ptr - '0'; + if (!stap_is_scale_valid(arg_value_size)) { + error = str8_lit("invalid operand size"); + goto operand_parse_exit; + } + ptr += 1; + infer_arg_value_size = 0; + } + + // is this float? + if (ptr >= end) { goto operand_parse_exit; } + if (*ptr == 'f') { + if (arg_value_type != STAP_ArgValueType_Null) { + error = str8_lit("illegal combination of modifiers '-' and 'f'"); + goto operand_parse_exit; + } + ptr += 1; + arg_value_type = STAP_ArgValueType_F; + } + + // assume default value type to be unsigned + if (arg_value_type == STAP_ArgValueType_Null) { + arg_value_type = STAP_ArgValueType_U; + } + + if (ptr >= end) { goto operand_parse_exit; } + if (*ptr != '@') { + error = str8_lit("failed to find @"); + goto operand_parse_exit; + } + ptr += 1; + + tag_size = (U64)(ptr - tag.str); + } + + U64 memory_ref_start = str8_find_needle_reverse(oper, 0, str8_lit("("), 0); + // memory operand + if (memory_ref_start > 0 && memory_ref_start < oper.size) { + // + // Expected syntax for memory operand: { [Disp] (Base [',' Index [',' Scale]]) } | { $IMM } | { %reg } + // + // Disp: { [+|-]Digits } | { Expr } + // Base: %reg + // Index: %reg + // Scale: 1|2|4|8 + // Expr: A small C-like infix expression + // + + // find closing ')' + U64 memory_ref_end = str8_find_needle(oper, memory_ref_start+1, str8_lit(")"), 0); + if (memory_ref_end > oper.size) { + error = str8_lit("missing closing ')'"); + goto operand_parse_exit; + } + if (memory_ref_end >= oper.size) { + error = str8_lit("expression does not terminate after ')'"); + goto operand_parse_exit; + } + + // parse displacement + String8 disp_str = str8_skip_chop_whitespace(str8_prefix(oper, memory_ref_start-1)); + if (disp_str.size > 0 && !str8_is_integer_signed(disp_str, 10)) { + error = str8_lit("displacement is too complicated, only integral displacement is supported"); + goto operand_parse_exit; + } + S64 disp = s64_from_str8(disp_str, 10); + + // parse base, index, scale + String8 base_index_scale = str8_skip_chop_whitespace(str8_substr(oper, r1u64(memory_ref_start, memory_ref_end))); + U64 first_comma = str8_find_needle(base_index_scale, 0, str8_lit(","), 0); + U64 second_comma = str8_find_needle(base_index_scale, first_comma+1, str8_lit(","), 0); + String8 base_str = str8_skip_chop_whitespace(str8_substr(base_index_scale, r1u64(0, first_comma))); + String8 index_str = str8_skip_chop_whitespace(str8_substr(base_index_scale, r1u64(first_comma + 1, second_comma))); + String8 scale_str = str8_skip_chop_whitespace(str8_substr(base_index_scale, r1u64(second_comma + 1, memory_ref_end))); + + // syntax check + if(first_comma >= base_index_scale.size && base_str.size == 0) { + error = str8_lit("missing base register"); + goto operand_parse_exit; + } + if (first_comma < base_index_scale.size && index_str.size == 0) { + error = str8_lit("missing index register"); + goto operand_parse_exit; + } + if (second_comma < base_index_scale.size && scale_str.size == 0) { + error = str8_lit("missing scale"); + goto operand_parse_exit; + } + if (base_str.size > 0 && !str8_match(str8_lit("%"), base_str, StringMatchFlag_RightSideSloppy)) { + error = str8_lit("invalid base register"); + goto operand_parse_exit; + } + if (first_comma < base_index_scale.size && (index_str.size < 2 || !str8_match(str8_lit("%"), index_str, StringMatchFlag_RightSideSloppy))) { + error = str8_lit("invalid index register"); + goto operand_parse_exit; + } + if (second_comma < base_index_scale.size && (scale_str.size > 0 && !str8_is_integer(scale_str, 10))) { + error = str8_lit("invalid of scale (expected unsigned integral type)"); + goto operand_parse_exit; + } + + // stip '%' prefix + base_str = str8_skip(base_str, 1); + index_str = str8_skip(index_str, 1); + + // parse base + U32 base_reg_code = 0; + if (base_str.size) { + base_reg_code = arch_reg_code_from_name(arch_info, base_str); + if (base_reg_code == 0) { + error = str8_lit("unknown base register"); + goto operand_parse_exit; + } + } + + // parse index + U32 index_reg_code = 0; + if (index_str.size) { + index_reg_code = arch_reg_code_from_name(arch_info, index_str); + if (index_reg_code == 0) { + error = str8_lit("unknown index register"); + } + } + + // parse scale + U64 scale = 1; + if (scale_str.size) { + scale = u64_from_str8(scale_str, 10); + if (!stap_is_scale_valid(scale)) { + error = str8_lit("invalid scale value (expected 1/2/4/8)"); + goto operand_parse_exit; + } + } + + if (infer_arg_value_size) { + error = str8_lit("memory operands must have a sice"); + goto operand_parse_exit; + } + + // fill out memory ref portion + arg.type = STAP_ArgType_MemoryRef; + arg.memory_ref.disp = disp; + arg.memory_ref.base.reg_code = base_reg_code; + arg.memory_ref.index.reg_code = index_reg_code; + arg.memory_ref.scale = scale; + } + // $imm + else if (str8_match(str8_lit("$"), oper, StringMatchFlag_RightSideSloppy)) { + String8 imm_str = str8_skip(oper, 1); + + U64 imm_size = str8_find_needle(imm_str, 0, str8_lit(" "), 0); + if (imm_size > imm_str.size ) { + imm_size = imm_str.size; + } + imm_str = str8_prefix(imm_str, imm_size); + + if (imm_str.size == 0) { + goto operand_parse_exit; + } + + U64 imm = 0; + B32 is_parsed = 0; + switch (arg_value_type) { + case STAP_ArgValueType_Null: + case STAP_ArgValueType_U: + case STAP_ArgValueType_F: { + is_parsed = try_u64_from_str8_c_rules(imm_str, &imm); + } break; + case STAP_ArgValueType_S: { + is_parsed = try_s64_from_str8_c_rules(imm_str, (S64 *)&imm); + } break; + default: { InvalidPath; } break; + } + + if (!is_parsed) { + error = str8_lit("failed to parse immediate"); + goto operand_parse_exit; + } + + arg.type = STAP_ArgType_Imm; + arg.imm = imm; + } + // %reg + else if (str8_match(str8_lit("%"), oper, StringMatchFlag_RightSideSloppy)) { + // skip % and strip white space + String8 reg_str = str8_skip_chop_whitespace(str8_skip(oper, 1)); + if (reg_str.size == 0) { + goto operand_parse_exit; + } + + U32 reg_code = arch_reg_code_from_name(arch_info, reg_str); + if (reg_code == 0) { + error = str8_lit("invalid register name"); + goto operand_parse_exit; + } + + arg.type = STAP_ArgType_Reg; + arg.reg.reg_code = reg_code; + } else { + goto operand_parse_exit; + } + + // fill out value portion + arg.value_type = arg_value_type == STAP_ArgValueType_Null ? STAP_ArgValueType_U : arg_value_type; + arg.value_size = arg_value_size; + + // write output + if (arg_out) { + *arg_out = arg; + } + + // clear error tracker + error = str8_zero(); + + operand_parse_exit:; + } else { + error = str8_lit("invalid argument string"); + } + + return error; +} + +internal STAP_ArgArray +stap_arg_array_from_string(Arena *arena, Arch arch, String8 string) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List arg_strings = stap_list_from_string(scratch.arena, string); + STAP_ArgArray result = {0}; + result.v = push_array(arena, STAP_Arg, arg_strings.node_count); + for EachNode(n, String8Node, arg_strings.first) { + STAP_Arg *arg = &result.v[result.count++]; + + switch (arch) { + case Arch_Null: {} break; + case Arch_x64: { + stap_parse_args_x64(n->string, arg); + } break; + case Arch_x86: + case Arch_arm32: + case Arch_arm64: { NotImplemented; } break; + default: { InvalidPath; } break; + } + } + scratch_end(scratch); + return result; +} + +internal B32 +stap_read_arg(STAP_Arg arg, + Arch arch, + void *reg_block, + STAP_MemoryRead *memory_read, + void *memory_read_ctx, + void *raw_value) +{ + AssertAlways(arg.value_size <= 8); + ARCH_Info *arch_info = arch_info_from_arch(arch); + B32 is_value_read = 0; + switch(arg.type) + { + default:{}break; + case STAP_ArgType_Null:{}break; + case STAP_ArgType_Imm: + { + MemoryCopy(raw_value, &arg.imm, arg.value_size); + is_value_read = 1; + }break; + case STAP_ArgType_Reg: + if(0 < arg.reg.reg_code && arg.reg.reg_code < arch_info->reg_code_count) + { + is_value_read = arch_reg_block_read_range(arch_info, reg_block, arch_info->reg_code_rng_table[arg.reg.reg_code], raw_value); + }break; + case STAP_ArgType_MemoryRef: + { + U64 base = 0; + if(0 < arg.memory_ref.base.reg_code && arg.memory_ref.base.reg_code < arch_info->reg_code_count) + { + arch_reg_block_read_range(arch_info, reg_block, arch_info->reg_code_rng_table[arg.memory_ref.base.reg_code], &base); + } + U64 index = 0; + if(0 < arg.memory_ref.index.reg_code && arg.memory_ref.index.reg_code < arch_info->reg_code_count) + { + arch_reg_block_read_range(arch_info, reg_block, arch_info->reg_code_rng_table[arg.memory_ref.index.reg_code], &index); + } + U64 addr = arg.memory_ref.disp + (base + index * arg.memory_ref.scale); + if(memory_read(addr, raw_value, arg.value_size, memory_read_ctx)) + { + is_value_read = 1; + } + }break; + } + if(arg.value_size < 8) + { + if(arg.value_type == STAP_ArgValueType_S) + { + *(U64 *)raw_value = extend_sign64(*(U64 *)raw_value, arg.value_size); + } + else if(arg.value_type == STAP_ArgValueType_F && arg.value_size == 4) + { + *(F64 *)raw_value = *(F32 *)raw_value; + } + } + return is_value_read; +} + +internal B32 +stap_read_arg_u(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, U64 *u_out) +{ + return stap_read_arg(arg, arch, reg_block, memory_read, memory_read_ctx, u_out); +} + +internal B32 +stap_read_arg_s(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, S64 *s_out) +{ + return stap_read_arg(arg, arch, reg_block, memory_read, memory_read_ctx, s_out); +} + +internal B32 +stap_read_arg_f(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, F64 *f_out) +{ + return stap_read_arg(arg, arch, reg_block, memory_read, memory_read_ctx, f_out); +} + +internal STAP_Arg +stap_arg_copy(STAP_Arg *src) +{ + return *src; +} + +internal STAP_ArgArray +stap_arg_array_copy(Arena *arena, STAP_ArgArray arr) +{ + STAP_ArgArray result = {0}; + result.count = arr.count; + result.v = push_array(arena, STAP_Arg, arr.count); + for EachIndex(arg_idx, arr.count) + { + result.v[arg_idx] = stap_arg_copy(&arr.v[arg_idx]); + } + return result; +} + diff --git a/src/stap/stap_parse.h b/src/stap/stap_parse.h new file mode 100644 index 00000000..301e66e0 --- /dev/null +++ b/src/stap/stap_parse.h @@ -0,0 +1,82 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef STAP_PARSE_H +#define STAP_PARSE_H + +typedef enum STAP_ArgType +{ + STAP_ArgType_Null, + STAP_ArgType_Imm, + STAP_ArgType_Reg, + STAP_ArgType_MemoryRef, +} STAP_ArgType; + +typedef enum STAP_ArgValueType +{ + STAP_ArgValueType_Null, + STAP_ArgValueType_U, + STAP_ArgValueType_S, + STAP_ArgValueType_F, +} STAP_ArgValueType; + +typedef struct STAP_Arg +{ + STAP_ArgValueType value_type; + U64 value_size; + STAP_ArgType type; + union { + U64 imm; + struct { + U32 reg_code; + } reg; + struct { + S64 disp; + struct { + U32 reg_code; + } base; + struct { + U32 reg_code; + } index; + U64 scale; + } memory_ref; + }; +} STAP_Arg; + +typedef struct STAP_ArgArray +{ + U64 count; + STAP_Arg *v; +} STAP_ArgArray; + +typedef struct STAP_ArgValue +{ + STAP_ArgValueType value_type; + U8 value_size; + void *raw_ptr; +} STAP_ArgValue; + +typedef struct STAP_ArgValueArray +{ + U64 count; + STAP_ArgValue *v; +} STAP_ArgValueArray; + +#define STAP_MEMORY_READ(name) B32 name(U64 addr, void *buffer, U64 read_size, void *raw_ctx) +typedef STAP_MEMORY_READ(STAP_MemoryRead); + +//////////////////////////////// + +internal String8 stap_parse_args_x64(String8 string, STAP_Arg *arg_out); +internal STAP_ArgArray stap_arg_array_from_string(Arena *arena, Arch arch, String8 string); + +internal B32 stap_read_arg(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, void *raw_value); +internal B32 stap_read_arg_u(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, U64 *u_out); +internal B32 stap_read_arg_s(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, S64 *s_out); +internal B32 stap_read_arg_f(STAP_Arg arg, Arch arch, void *reg_block, STAP_MemoryRead *memory_read, void *memory_read_ctx, F64 *f_out); + +internal STAP_Arg stap_arg_copy(STAP_Arg *src); +internal STAP_ArgArray stap_arg_array_copy(Arena *arena, STAP_ArgArray arr); + +#endif // STAP_PARSE_H + diff --git a/src/stap/stap_test.c b/src/stap/stap_test.c new file mode 100644 index 00000000..155a4562 --- /dev/null +++ b/src/stap/stap_test.c @@ -0,0 +1,112 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#define BUILD_TITLE "STAP Parser Test" +#define BUILD_CONSOLE_INTERFACE 1 + +#include "base/base_inc.h" +#include "arch/arch_inc.h" +#include "stap/stap_parse.h" + +#include "base/base_inc.c" +#include "arch/arch_inc.c" +#include "stap/stap_parse.c" + +internal void +entry_point(CmdLine *cmd_line) +{ + B32 passed = 0; + STAP_Arg arg = {0}; + String8 error = {0}; + String8 string = {0}; + + string = str8_lit("-2@$-123"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_type == STAP_ArgValueType_S); + AssertAlways(arg.value_size == 2); + AssertAlways(arg.type == STAP_ArgType_Imm); + AssertAlways((S64)arg.imm == -123); + + string = str8_lit("1@$43"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_type == STAP_ArgValueType_U); + AssertAlways(arg.value_size == 1); + AssertAlways(arg.type == STAP_ArgType_Imm); + AssertAlways((S64)arg.imm == 43); + + string = str8_lit("4f@%eax"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_type == STAP_ArgValueType_F); + AssertAlways(arg.value_size == 4); + AssertAlways(arg.type == STAP_ArgType_Reg); + AssertAlways(arg.reg.is_alias == 1); + AssertAlways(arg.reg.reg_code == REGS_AliasCodeX64_eax); + + string = str8_lit("4@(%rdi)"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_size == 4); + AssertAlways(arg.value_type == STAP_ArgValueType_U); + AssertAlways(arg.type == STAP_ArgType_MemoryRef); + AssertAlways(arg.memory_ref.disp == 0); + AssertAlways(arg.memory_ref.base.reg_code == REGS_RegCodeX64_rdi); + AssertAlways(!arg.memory_ref.base.is_alias); + AssertAlways(arg.memory_ref.index.reg_code == 0); + AssertAlways(arg.memory_ref.index.is_alias == 0); + AssertAlways(arg.memory_ref.scale == 1); + + string = str8_lit("4@-22(%rdi)"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_size == 4); + AssertAlways(arg.value_type == STAP_ArgValueType_U); + AssertAlways(arg.type == STAP_ArgType_MemoryRef); + AssertAlways(arg.memory_ref.disp == -22); + AssertAlways(arg.memory_ref.base.reg_code == REGS_RegCodeX64_rdi); + AssertAlways(!arg.memory_ref.base.is_alias); + AssertAlways(arg.memory_ref.index.reg_code == 0); + AssertAlways(arg.memory_ref.index.is_alias == 0); + AssertAlways(arg.memory_ref.scale == 1); + + string = str8_lit("4@32(%rax,%rsi,8)"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_size == 4); + AssertAlways(arg.value_type == STAP_ArgValueType_U); + AssertAlways(arg.memory_ref.disp == 32); + AssertAlways(arg.memory_ref.base.reg_code == REGS_RegCodeX64_rax); + AssertAlways(arg.memory_ref.base.is_alias == 0); + AssertAlways(arg.memory_ref.index.reg_code == REGS_RegCodeX64_rsi); + AssertAlways(arg.memory_ref.index.is_alias == 0); + AssertAlways(arg.memory_ref.scale == 8); + + string = str8_lit("4@32(,%rsi,8)"); + error = stap_parse_args_x64(string, &arg); + if (error.size != 0) { goto exit; } + AssertAlways(arg.value_size == 4); + AssertAlways(arg.value_type == STAP_ArgValueType_U); + AssertAlways(arg.memory_ref.disp == 32); + AssertAlways(arg.memory_ref.base.reg_code == 0); + AssertAlways(arg.memory_ref.index.reg_code == REGS_RegCodeX64_rsi); + AssertAlways(arg.memory_ref.scale == 8); + + error = stap_parse_args_x64(str8_lit("4@(,,)"), &arg); + if (error.size == 0) { goto exit; } + + error = stap_parse_args_x64(str8_lit("4@()"), &arg); + if (error.size == 0) { goto exit; } + + error = stap_parse_args_x64(str8_lit("4@(%rdi, %rsi, 8"), &arg); + if (error.size == 0) { goto exit; } + + error = stap_parse_args_x64(str8_lit("4@( ,, 8"), &arg); + if (error.size == 0) { goto exit; } + + passed = 1; + exit:; + AssertAlways(passed); +} + diff --git a/src/strip_lib_debug/strip_lib_debug.c b/src/strip_lib_debug/strip_lib_debug.c index 23c15b1c..4bc25e28 100644 --- a/src/strip_lib_debug/strip_lib_debug.c +++ b/src/strip_lib_debug/strip_lib_debug.c @@ -8,7 +8,6 @@ // Headers #include "base/base_inc.h" -#include "os/os_inc.h" #include "coff/coff.h" #include "coff/coff_parse.h" @@ -16,7 +15,6 @@ // Implementations #include "base/base_inc.c" -#include "os/os_inc.c" #include "coff/coff.c" #include "coff/coff_parse.c" @@ -24,60 +22,60 @@ internal void sld_main(CmdLine *cmdl) { B32 do_help = cmd_line_has_flag(cmdl, str8_lit("help")) || - cmd_line_has_flag(cmdl, str8_lit("h")) || - cmd_line_has_flag(cmdl, str8_lit("?")) || - cmdl->argc == 1; + cmd_line_has_flag(cmdl, str8_lit("h")) || + cmd_line_has_flag(cmdl, str8_lit("?")) || + cmdl->argc == 1; if (do_help) { fprintf(stderr, "--- Help ---------------------------------------------------------------------\n"); fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); fprintf(stderr, " Usage: strip_lib_debug [Options]\n\n"); fprintf(stderr, " Options:\n"); fprintf(stderr, " -in: Path to input lib file\n"); fprintf(stderr, " -out: Path to output lib file\n"); - os_abort(0); + abort_self(0); } - + Temp scratch = scratch_begin(0,0); - + String8 in_lib_path = cmd_line_string(cmdl, str8_lit("in")); String8 out_lib_path = cmd_line_string(cmdl, str8_lit("out")); - + if (in_lib_path.size == 0) { fprintf(stderr, "ERROR: please provide an input path via -in:\n"); - os_abort(1); + abort_self(1); } if (out_lib_path.size == 0) { fprintf(stderr, "ERROR: please provide an output path via -out:\n"); - os_abort(1); + abort_self(1); } - + String8 in_lib = os_data_from_file_path(scratch.arena, in_lib_path); if (in_lib.size == 0) { fprintf(stderr, "ERROR: unable to read file %.*s\n", str8_varg(in_lib_path)); - os_abort(1); + abort_self(1); } - + if (!coff_is_regular_archive(in_lib)) { fprintf(stderr, "ERROR: input lib is not COFF archive\n"); - os_abort(1); + abort_self(1); } - + // read & parse lib String8 out_lib = push_str8_copy(scratch.arena, in_lib); COFF_ArchiveParse parse = coff_archive_parse_from_data(out_lib); - + // was parse successful? if (parse.error.size) { fprintf(stderr, "ERROR: %.*s: %.*s\n", str8_varg(in_lib_path), str8_varg(parse.error)); - os_abort(1); + abort_self(1); } - + // convert big endian offsets U32 member_offsets_count = parse.first_member.symbol_count; U32 *member_offsets = push_array(scratch.arena, U32, parse.first_member.member_offset_count); for (U32 offset_idx = 0; offset_idx < member_offsets_count; offset_idx += 1) { member_offsets[offset_idx] = from_be_u32(parse.first_member.member_offsets[offset_idx]); } - + // fixup sections for (U64 member_idx = 0; member_idx < member_offsets_count; member_idx += 1) { COFF_ParsedArchiveMemberHeader member_header = {0}; @@ -98,13 +96,13 @@ sld_main(CmdLine *cmdl) } } } - + // wirte modified library - if (!os_write_data_to_file_path(out_lib_path, out_lib)) { + if (!write_data_to_file_path(out_lib_path, out_lib)) { fprintf(stderr, "ERROR: unable to write output file to %.*s\n", str8_varg(out_lib_path)); - os_abort(1); + abort_self(1); } - + scratch_end(scratch); } diff --git a/src/symbol_server/symbol_server.c b/src/symbol_server/symbol_server.c new file mode 100644 index 00000000..ae447aab --- /dev/null +++ b/src/symbol_server/symbol_server.c @@ -0,0 +1,2 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) diff --git a/src/symbol_server/symbol_server.h b/src/symbol_server/symbol_server.h new file mode 100644 index 00000000..f41b9cc2 --- /dev/null +++ b/src/symbol_server/symbol_server.h @@ -0,0 +1,21 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef SYMBOL_SERVER_H +#define SYMBOL_SERVER_H + +typedef enum SMSV_Status +{ + SMSV_Status_Null, + SMSV_Status_Pending, +} +SMSV_Status; + +internal void smsv_init(void); +internal void smsv_async_tick(void); +internal String8 smsv_cache_path(void); +internal String8 smsv_local_path_from_key(Arena *arena, String8 dbg_name, Guid guid, U64 age); +internal void smsv_fill_local_path(String8 path); +internal SMSV_Status smsv_status_from_local_path(String8 path); + +#endif // SYMBOL_SERVER_H diff --git a/src/symbol_server/symbol_server_inc.c b/src/symbol_server/symbol_server_inc.c new file mode 100644 index 00000000..ca6cf968 --- /dev/null +++ b/src/symbol_server/symbol_server_inc.c @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "symbol_server.c" +#if OS_WINDOWS +# include "win32/symbol_server/win32_symbol_server.c" +#else +# include "symbol_server_stub.c" +#endif diff --git a/src/symbol_server/symbol_server_inc.h b/src/symbol_server/symbol_server_inc.h new file mode 100644 index 00000000..8edabf00 --- /dev/null +++ b/src/symbol_server/symbol_server_inc.h @@ -0,0 +1,14 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef SYMBOL_SERVER_INC_H +#define SYMBOL_SERVER_INC_H + +#include "symbol_server.h" +#if OS_WINDOWS +# include "win32/symbol_server/win32_symbol_server.h" +#else +# include "symbol_server_stub.h" +#endif + +#endif // SYMBOL_SERVER_INC_H diff --git a/src/symbol_server/symbol_server_stub.c b/src/symbol_server/symbol_server_stub.c new file mode 100644 index 00000000..bbd71e35 --- /dev/null +++ b/src/symbol_server/symbol_server_stub.c @@ -0,0 +1,36 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal void +smsv_init(void) +{ +} + +internal void +smsv_async_tick(void) +{ +} + +internal String8 +smsv_cache_path(void) +{ + return s(""); +} + +internal String8 +smsv_local_path_from_key(Arena *arena, String8 dbg_name, Guid guid, U64 age) +{ + return s(""); +} + +internal void +smsv_fill_local_path(String8 path) +{ +} + +internal SMSV_Status +smsv_status_from_local_path(String8 path) +{ + SMSV_Status status = SMSV_Status_Null; + return status; +} diff --git a/src/symbol_server/symbol_server_stub.h b/src/symbol_server/symbol_server_stub.h new file mode 100644 index 00000000..61ddc1c9 --- /dev/null +++ b/src/symbol_server/symbol_server_stub.h @@ -0,0 +1,7 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef SYMBOL_SERVER_STUB_H +#define SYMBOL_SERVER_STUB_H + +#endif // SYMBOL_SERVER_STUB_H diff --git a/src/tester/tester_main.c b/src/tester/tester_main.c deleted file mode 100644 index 9d34aad4..00000000 --- a/src/tester/tester_main.c +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Build Options - -#define BUILD_TITLE "tester" -#define BUILD_CONSOLE_INTERFACE 1 -#define OS_FEATURE_GRAPHICAL 1 - -//////////////////////////////// -//~ rjf: Includes - -//- rjf: [h] -#include "base/base_inc.h" -#include "os/os_inc.h" -#include "content/content.h" -#include "rdi_format/rdi_format_local.h" -#include "regs/regs.h" -#include "regs/rdi/regs_rdi.h" -#include "eval/eval_inc.h" - -//- rjf: [c] -#include "base/base_inc.c" -#include "os/os_inc.c" -#include "content/content.c" -#include "rdi_format/rdi_format_local.c" -#include "regs/regs.c" -#include "regs/rdi/regs_rdi.c" -#include "eval/eval_inc.c" - -//////////////////////////////// -//~ rjf: Entry Points - -internal B32 frame(void) { return 0; } - -internal void -entry_point(CmdLine *cmdline) -{ - Arena *arena = arena_alloc(); - E_Cache *eval_cache = e_cache_alloc(); - e_select_cache(eval_cache); - E_BaseCtx *base_ctx = push_array(arena, E_BaseCtx, 1); - e_select_base_ctx(base_ctx); - E_IRCtx *ir_ctx = push_array(arena, E_IRCtx, 1); - e_select_ir_ctx(ir_ctx); - E_InterpretCtx *interpret_ctx = push_array(arena, E_InterpretCtx, 1); - e_select_interpret_ctx(interpret_ctx, 0, 0); - - ////////////////////////////// - //- rjf: unpack command line - // - String8 test_data_folder_path = cmd_line_string(cmdline, str8_lit("test_data")); - if(test_data_folder_path.size == 0) - { - fprintf(stderr, "error(input): The test data folder path was not specified. Specify the path when running the program, like: %.*s --test_data:C:/foo/bar/baz\n", str8_varg(cmdline->exe_name)); - os_abort(1); - } - - ////////////////////////////// - //- rjf: make artifacts directory - // - String8 artifacts_path = path_normalized_from_string(arena, str8_lit("./tester_artifacts")); - os_make_directory(artifacts_path); - - ////////////////////////////// - //- rjf: set up list of test artifacts - // - typedef struct Test Test; - struct Test - { - Test *next; - String8 name; - String8List out; - B32 good; - }; - Test *first_test = 0; - Test *last_test = 0; -#define Test(name_identifier) \ -Test *test_##name_identifier = push_array(arena, Test, 1);\ -test_##name_identifier->name = str8_lit(#name_identifier);\ -test_##name_identifier->good = 1;\ -SLLQueuePush(first_test, last_test, test_##name_identifier);\ -for(Test *test = test_##name_identifier; test != 0; test = 0) - - ////////////////////////////// - //- rjf: PDB -> RDI determinism - // - Test(pdb2rdi_determinism) - { - U64 num_repeats_per_pdb = 32; - String8 pdb_paths[] = - { - push_str8f(arena, "%S/mule_main/mule_main.pdb", test_data_folder_path), - push_str8f(arena, "%S/mule_main/mule_module.pdb", test_data_folder_path), - }; - for EachElement(pdb_idx, pdb_paths) - { - // rjf: unpack paths, make output directory - String8 pdb_path = path_normalized_from_string(arena, pdb_paths[pdb_idx]); - String8 repeat_folder = push_str8f(arena, "%S/%S", artifacts_path, test->name); - os_make_directory(repeat_folder); - - // rjf: generate all RDIs - String8List rdi_paths = {0}; - String8List dump_paths = {0}; - { - OS_HandleList processes = {0}; - for EachIndex(repeat_idx, num_repeats_per_pdb) - { - String8 rdi_path = push_str8f(arena, "%S/repeat_%I64u.rdi", repeat_folder, repeat_idx); - str8_list_push(arena, &rdi_paths, rdi_path); - os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_from_pdb --deterministic --pdb:%S --out:%S", pdb_path, rdi_path)); - } - for(OS_HandleNode *n = processes.first; n != 0; n = n->next) - { - os_process_join(n->v, max_U64, 0); - } - } - - // rjf: generate all dumps - { - OS_HandleList processes = {0}; - for(String8Node *n = rdi_paths.first; n != 0; n = n->next) - { - String8 rdi_path = n->string; - String8 dump_path = push_str8f(arena, "%S.dump", rdi_path); - str8_list_push(arena, &dump_paths, dump_path); - os_handle_list_push(arena, &processes, os_cmd_line_launchf("rdi_dump %S > %S", rdi_path, dump_path)); - } - for(OS_HandleNode *n = processes.first; n != 0; n = n->next) - { - os_process_join(n->v, max_U64, 0); - } - } - - // rjf: gather all hashes/paths - U64 rdi_hashes_count = rdi_paths.node_count; - U128 *rdi_hashes = push_array(arena, U128, rdi_hashes_count); - String8 *rdi_paths_array = push_array(arena, String8, rdi_hashes_count); - U64 dump_hashes_count = dump_paths.node_count; - U128 *dump_hashes = push_array(arena, U128, dump_hashes_count); - String8 *dump_paths_array = push_array(arena, String8, dump_hashes_count); - { - U64 idx = 0; - for(String8Node *n = rdi_paths.first; n != 0; n = n->next, idx += 1) - { - Temp scratch = scratch_begin(0, 0); - String8 path = n->string; - String8 data = os_data_from_file_path(scratch.arena, path); - rdi_hashes[idx] = u128_hash_from_str8(data); - rdi_paths_array[idx] = path; - scratch_end(scratch); - } - } - { - U64 idx = 0; - for(String8Node *n = dump_paths.first; n != 0; n = n->next, idx += 1) - { - Temp scratch = scratch_begin(0, 0); - String8 path = n->string; - String8 data = os_data_from_file_path(scratch.arena, path); - dump_hashes[idx] = u128_hash_from_str8(data); - dump_paths_array[idx] = path; - scratch_end(scratch); - } - } - - // rjf: determine if all hashes match - B32 matches = 1; - for EachIndex(idx, rdi_hashes_count) - { - if(!u128_match(rdi_hashes[idx], rdi_hashes[0])) - { - matches = 0; - break; - } - } - for EachIndex(idx, dump_hashes_count) - { - if(!u128_match(dump_hashes[idx], dump_hashes[0])) - { - matches = 0; - break; - } - } - - // rjf: output bad case info - if(!matches) - { - test->good = 0; - str8_list_pushf(arena, &test->out, " pdb[%I64u] \"%S\"\n", pdb_idx, pdb_path); - for EachIndex(idx, rdi_hashes_count) - { - str8_list_pushf(arena, &test->out, " rdi[%I64u] \"%S\": 0x%I64x:%I64x\n", idx, rdi_paths_array[idx], rdi_hashes[idx].u64[0], rdi_hashes[idx].u64[1]); - } - for EachIndex(idx, dump_hashes_count) - { - str8_list_pushf(arena, &test->out, " dump[%I64u] \"%S\": 0x%I64x:%I64x\n", idx, dump_paths_array[idx], dump_hashes[idx].u64[0], dump_hashes[idx].u64[1]); - } - } - } - } - - ////////////////////////////// - //- rjf: eval compiler basics - // - Test(eval_compiler_basics) - { - String8 exprs[] = - { - str8_lit("123"), - str8_lit("1 + 2"), - str8_lit("foo"), - str8_lit("foo(bar)"), - str8_lit("foo(bar(baz))"), - }; - String8List logs = {0}; - for EachElement(idx, exprs) - { - String8 log = e_debug_log_from_expr_string(arena, exprs[idx]); - str8_list_push(arena, &logs, log); - } - String8 log = str8_list_join(arena, &logs, 0); - String8 test_artifacts_path = push_str8f(arena, "%S/%S", artifacts_path, test->name); - os_make_directory(test_artifacts_path); - String8 current_file_path = push_str8f(arena, "%S/current.txt", test_artifacts_path); - String8 correct_file_path = push_str8f(arena, "%S/%S/correct.txt", test_data_folder_path, test->name); - os_write_data_to_file_path(current_file_path, log); - String8 current_file_data = log; - String8 correct_file_data = os_data_from_file_path(arena, correct_file_path); - test->good = str8_match(correct_file_data, current_file_data, 0); - } - - ////////////////////////////// - //- rjf: dump results - // - B32 all_good = 1; - for(Test *t = first_test; t != 0; t = t->next) - { - if(!t->good) - { - all_good = 0; - break; - } - } - fprintf(stderr, "[%s]\n", all_good ? "." : "X"); - for(Test *t = first_test; t != 0; t = t->next) - { - fprintf(stderr, " [%s] \"%.*s\"\n", t->good ? "." : "X", str8_varg(t->name)); - if(!t->good) - { - for(String8Node *n = t->out.first; n != 0; n = n->next) - { - fprintf(stderr, " %.*s", str8_varg(n->string)); - } - } - } - -} diff --git a/src/text/generated/text.meta.c b/src/text/generated/text.meta.c new file mode 100644 index 00000000..e826c980 --- /dev/null +++ b/src/text/generated/text.meta.c @@ -0,0 +1,458 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 txt_lang_kind_ext_table[8] = +{ +str8_lit_comp("null"), +str8_lit_comp("c"), +str8_lit_comp("cpp"), +str8_lit_comp("odin"), +str8_lit_comp("jai"), +str8_lit_comp("zig"), +str8_lit_comp("rs"), +str8_lit_comp("disasm_x64_intel"), +}; + +struct {String8 ext; TXT_LangKind kind;} txt_ext_lang_kind_table[24] = +{ +{str8_lit_comp("null"), TXT_LangKind_Null}, +{str8_lit_comp("c"), TXT_LangKind_C}, +{str8_lit_comp("cpp"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("odin"), TXT_LangKind_Odin}, +{str8_lit_comp("jai"), TXT_LangKind_Jai}, +{str8_lit_comp("zig"), TXT_LangKind_Zig}, +{str8_lit_comp("rs"), TXT_LangKind_Rust}, +{str8_lit_comp("disasm_x64_intel"), TXT_LangKind_DisasmX64Intel}, +{str8_lit_comp("h"), TXT_LangKind_C}, +{str8_lit_comp("cxx"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("cc"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("c++"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("ixx"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("cxxm"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("c++m"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("ccm"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("cppm"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("mpp"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("C"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("hpp"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("hxx"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("hh"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("h++"), TXT_LangKind_CPlusPlus}, +{str8_lit_comp("H"), TXT_LangKind_CPlusPlus}, +}; + +String8Array txt_keywords_from_lang_kind_table[8] = +{ +{txt_keywords__null, ArrayCount(txt_keywords__null)}, +{txt_keywords__c, ArrayCount(txt_keywords__c)}, +{txt_keywords__cpp, ArrayCount(txt_keywords__cpp)}, +{txt_keywords__odin, ArrayCount(txt_keywords__odin)}, +{txt_keywords__jai, ArrayCount(txt_keywords__jai)}, +{txt_keywords__zig, ArrayCount(txt_keywords__zig)}, +{txt_keywords__rust, ArrayCount(txt_keywords__rust)}, +{txt_keywords__null, ArrayCount(txt_keywords__null)}, +}; + +String8Array txt_multichar_symbols_from_lang_kind_table[8] = +{ +{txt_multichar_symbols__null, ArrayCount(txt_multichar_symbols__null)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__c, ArrayCount(txt_multichar_symbols__c)}, +{txt_multichar_symbols__null, ArrayCount(txt_multichar_symbols__null)}, +}; + +TXT_TokenizerRuleArray txt_tokenizer_rules_from_lang_kind_table[8] = +{ +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +{txt_tokenizer_rules__c, ArrayCount(txt_tokenizer_rules__c)}, +{txt_tokenizer_rules__c, ArrayCount(txt_tokenizer_rules__c)}, +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +{txt_tokenizer_rules__null, ArrayCount(txt_tokenizer_rules__null)}, +}; + +String8 txt_keywords__null[1] = +{ +{0}, +}; + +String8 txt_multichar_symbols__null[1] = +{ +{0}, +}; + +TXT_TokenizerRule txt_tokenizer_rules__null[1] = +{ +{TXT_TokenKind_Null}, +}; + +String8 txt_keywords__c[32] = +{ +str8_lit_comp("auto"), +str8_lit_comp("break"), +str8_lit_comp("case"), +str8_lit_comp("char"), +str8_lit_comp("const"), +str8_lit_comp("continue"), +str8_lit_comp("default"), +str8_lit_comp("do"), +str8_lit_comp("double"), +str8_lit_comp("else"), +str8_lit_comp("enum"), +str8_lit_comp("extern"), +str8_lit_comp("float"), +str8_lit_comp("for"), +str8_lit_comp("goto"), +str8_lit_comp("if"), +str8_lit_comp("int"), +str8_lit_comp("long"), +str8_lit_comp("register"), +str8_lit_comp("return"), +str8_lit_comp("short"), +str8_lit_comp("signed"), +str8_lit_comp("sizeof"), +str8_lit_comp("static"), +str8_lit_comp("struct"), +str8_lit_comp("switch"), +str8_lit_comp("typedef"), +str8_lit_comp("union"), +str8_lit_comp("unsigned"), +str8_lit_comp("void"), +str8_lit_comp("volatile"), +str8_lit_comp("while"), +}; + +String8 txt_multichar_symbols__c[20] = +{ +str8_lit_comp("<<"), +str8_lit_comp(">>"), +str8_lit_comp("<="), +str8_lit_comp(">="), +str8_lit_comp("=="), +str8_lit_comp("!="), +str8_lit_comp("&&"), +str8_lit_comp("||"), +str8_lit_comp("|="), +str8_lit_comp("&="), +str8_lit_comp("^="), +str8_lit_comp("~="), +str8_lit_comp("+="), +str8_lit_comp("-="), +str8_lit_comp("*="), +str8_lit_comp("/="), +str8_lit_comp("%="), +str8_lit_comp("<<="), +str8_lit_comp(">>="), +str8_lit_comp("->"), +}; + +TXT_TokenizerRule txt_tokenizer_rules__c[7] = +{ +{TXT_TokenKind_Comment, str8_lit_comp("//"), str8_lit_comp("\n"), 0, 0, 1, 0}, +{TXT_TokenKind_Comment, str8_lit_comp("/*"), str8_lit_comp("*/"), 2, 0, 0, 0}, +{TXT_TokenKind_Meta, str8_lit_comp("#"), str8_lit_comp("\n"), 0, 0, 1, 0}, +{TXT_TokenKind_String, str8_lit_comp("\""), str8_lit_comp("\""), 1, 0, 1, 0}, +{TXT_TokenKind_String, str8_lit_comp("'"), str8_lit_comp("'"), 1, 0, 1, 0}, +{TXT_TokenKind_String, str8_lit_comp("\""), str8_lit_comp("\""), 1, 0, 1, 3}, +{TXT_TokenKind_String, str8_lit_comp("<"), str8_lit_comp(">"), 1, 0, 1, 3}, +}; + +String8 txt_keywords__cpp[97] = +{ +str8_lit_comp("alignas"), +str8_lit_comp("alignof"), +str8_lit_comp("and"), +str8_lit_comp("and_eq"), +str8_lit_comp("asm"), +str8_lit_comp("atomic_cancel"), +str8_lit_comp("atomic_commit"), +str8_lit_comp("atomic_noexcept"), +str8_lit_comp("auto"), +str8_lit_comp("bitand"), +str8_lit_comp("bitor"), +str8_lit_comp("bool"), +str8_lit_comp("break"), +str8_lit_comp("case"), +str8_lit_comp("catch"), +str8_lit_comp("char"), +str8_lit_comp("char8_t"), +str8_lit_comp("char16_t"), +str8_lit_comp("char32_t"), +str8_lit_comp("class"), +str8_lit_comp("compl"), +str8_lit_comp("concept"), +str8_lit_comp("const"), +str8_lit_comp("consteval"), +str8_lit_comp("constexpr"), +str8_lit_comp("constinit"), +str8_lit_comp("const_cast"), +str8_lit_comp("continue"), +str8_lit_comp("co_await"), +str8_lit_comp("co_return"), +str8_lit_comp("co_yield"), +str8_lit_comp("decltype"), +str8_lit_comp("default"), +str8_lit_comp("delete"), +str8_lit_comp("do"), +str8_lit_comp("double"), +str8_lit_comp("dynamic_cast"), +str8_lit_comp("else"), +str8_lit_comp("enum"), +str8_lit_comp("explicit"), +str8_lit_comp("export"), +str8_lit_comp("extern"), +str8_lit_comp("false"), +str8_lit_comp("float"), +str8_lit_comp("for"), +str8_lit_comp("friend"), +str8_lit_comp("goto"), +str8_lit_comp("if"), +str8_lit_comp("inline"), +str8_lit_comp("int"), +str8_lit_comp("long"), +str8_lit_comp("mutable"), +str8_lit_comp("namespace"), +str8_lit_comp("new"), +str8_lit_comp("noexcept"), +str8_lit_comp("not"), +str8_lit_comp("not_eq"), +str8_lit_comp("nullptr"), +str8_lit_comp("operator"), +str8_lit_comp("or"), +str8_lit_comp("or_eq"), +str8_lit_comp("private"), +str8_lit_comp("protected"), +str8_lit_comp("public"), +str8_lit_comp("reflexpr"), +str8_lit_comp("register"), +str8_lit_comp("reinterpret_cast"), +str8_lit_comp("requires"), +str8_lit_comp("return"), +str8_lit_comp("short"), +str8_lit_comp("signed"), +str8_lit_comp("sizeof"), +str8_lit_comp("static"), +str8_lit_comp("static_assert"), +str8_lit_comp("static_cast"), +str8_lit_comp("struct"), +str8_lit_comp("switch"), +str8_lit_comp("synchronized"), +str8_lit_comp("template"), +str8_lit_comp("this"), +str8_lit_comp("thread_local"), +str8_lit_comp("throw"), +str8_lit_comp("true"), +str8_lit_comp("try"), +str8_lit_comp("typedef"), +str8_lit_comp("typeid"), +str8_lit_comp("typename"), +str8_lit_comp("union"), +str8_lit_comp("unsigned"), +str8_lit_comp("using"), +str8_lit_comp("virtual"), +str8_lit_comp("void"), +str8_lit_comp("volatile"), +str8_lit_comp("wchar_t"), +str8_lit_comp("while"), +str8_lit_comp("xor"), +str8_lit_comp("xor_eq"), +}; + +String8 txt_keywords__odin[40] = +{ +str8_lit_comp("align_of"), +str8_lit_comp("asm"), +str8_lit_comp("auto_cast"), +str8_lit_comp("bit_set"), +str8_lit_comp("break"), +str8_lit_comp("case"), +str8_lit_comp("cast"), +str8_lit_comp("context"), +str8_lit_comp("continue"), +str8_lit_comp("defer"), +str8_lit_comp("distinct"), +str8_lit_comp("do"), +str8_lit_comp("dynamic"), +str8_lit_comp("else"), +str8_lit_comp("enum"), +str8_lit_comp("fallthrough"), +str8_lit_comp("for"), +str8_lit_comp("foreign"), +str8_lit_comp("if"), +str8_lit_comp("in"), +str8_lit_comp("map"), +str8_lit_comp("matrix"), +str8_lit_comp("not_in"), +str8_lit_comp("or_break"), +str8_lit_comp("or_continue"), +str8_lit_comp("or_else"), +str8_lit_comp("or_return"), +str8_lit_comp("package"), +str8_lit_comp("proc"), +str8_lit_comp("return"), +str8_lit_comp("size_of"), +str8_lit_comp("struct"), +str8_lit_comp("switch"), +str8_lit_comp("transmute"), +str8_lit_comp("typeid"), +str8_lit_comp("union"), +str8_lit_comp("using"), +str8_lit_comp("when"), +str8_lit_comp("where"), +str8_lit_comp("import"), +}; + +String8 txt_keywords__jai[39] = +{ +str8_lit_comp("bool"), +str8_lit_comp("true"), +str8_lit_comp("false"), +str8_lit_comp("int"), +str8_lit_comp("s8"), +str8_lit_comp("u8"), +str8_lit_comp("s16"), +str8_lit_comp("u16"), +str8_lit_comp("s32"), +str8_lit_comp("u32"), +str8_lit_comp("s64"), +str8_lit_comp("u64"), +str8_lit_comp("s128"), +str8_lit_comp("u128"), +str8_lit_comp("float"), +str8_lit_comp("float32"), +str8_lit_comp("float64"), +str8_lit_comp("void"), +str8_lit_comp("enum"), +str8_lit_comp("enum_flags"), +str8_lit_comp("size_of"), +str8_lit_comp("string"), +str8_lit_comp("type_of"), +str8_lit_comp("cast"), +str8_lit_comp("if"), +str8_lit_comp("ifs"), +str8_lit_comp("then"), +str8_lit_comp("else"), +str8_lit_comp("case"), +str8_lit_comp("for"), +str8_lit_comp("while"), +str8_lit_comp("break"), +str8_lit_comp("continue"), +str8_lit_comp("remove"), +str8_lit_comp("return"), +str8_lit_comp("inline"), +str8_lit_comp("null"), +str8_lit_comp("defer"), +str8_lit_comp("xx"), +}; + +String8 txt_keywords__zig[49] = +{ +str8_lit_comp("addrspace"), +str8_lit_comp("align"), +str8_lit_comp("allowzero"), +str8_lit_comp("and"), +str8_lit_comp("anyframe"), +str8_lit_comp("anytype"), +str8_lit_comp("asm"), +str8_lit_comp("async"), +str8_lit_comp("await"), +str8_lit_comp("break"), +str8_lit_comp("callconv"), +str8_lit_comp("catch"), +str8_lit_comp("comptime"), +str8_lit_comp("const"), +str8_lit_comp("continue"), +str8_lit_comp("defer"), +str8_lit_comp("else"), +str8_lit_comp("enum"), +str8_lit_comp("errdefer"), +str8_lit_comp("error"), +str8_lit_comp("export"), +str8_lit_comp("extern"), +str8_lit_comp("fn"), +str8_lit_comp("for"), +str8_lit_comp("if"), +str8_lit_comp("inline"), +str8_lit_comp("noalias"), +str8_lit_comp("nosuspend"), +str8_lit_comp("noinline"), +str8_lit_comp("opaque"), +str8_lit_comp("or"), +str8_lit_comp("orelse"), +str8_lit_comp("packed"), +str8_lit_comp("pub"), +str8_lit_comp("resume"), +str8_lit_comp("return"), +str8_lit_comp("linksection"), +str8_lit_comp("struct"), +str8_lit_comp("suspend"), +str8_lit_comp("switch"), +str8_lit_comp("test"), +str8_lit_comp("threadlocal"), +str8_lit_comp("try"), +str8_lit_comp("union"), +str8_lit_comp("unreachable"), +str8_lit_comp("usingnamespace"), +str8_lit_comp("var"), +str8_lit_comp("volatile"), +str8_lit_comp("while"), +}; + +String8 txt_keywords__rust[43] = +{ +str8_lit_comp("as"), +str8_lit_comp("break"), +str8_lit_comp("const"), +str8_lit_comp("continue"), +str8_lit_comp("crate"), +str8_lit_comp("else"), +str8_lit_comp("enum"), +str8_lit_comp("extern"), +str8_lit_comp("false"), +str8_lit_comp("fn"), +str8_lit_comp("for"), +str8_lit_comp("if"), +str8_lit_comp("impl"), +str8_lit_comp("in"), +str8_lit_comp("let"), +str8_lit_comp("loop"), +str8_lit_comp("match"), +str8_lit_comp("mod"), +str8_lit_comp("move"), +str8_lit_comp("mut"), +str8_lit_comp("pub"), +str8_lit_comp("ref"), +str8_lit_comp("return"), +str8_lit_comp("self"), +str8_lit_comp("Self"), +str8_lit_comp("static"), +str8_lit_comp("struct"), +str8_lit_comp("super"), +str8_lit_comp("trait"), +str8_lit_comp("true"), +str8_lit_comp("type"), +str8_lit_comp("unsafe"), +str8_lit_comp("use"), +str8_lit_comp("where"), +str8_lit_comp("while"), +str8_lit_comp("yield"), +str8_lit_comp("async"), +str8_lit_comp("await"), +str8_lit_comp("dyn"), +str8_lit_comp("macro_rules"), +str8_lit_comp("raw"), +str8_lit_comp("safe"), +str8_lit_comp("union"), +}; + +C_LINKAGE_END + diff --git a/src/text/generated/text.meta.h b/src/text/generated/text.meta.h new file mode 100644 index 00000000..23db1766 --- /dev/null +++ b/src/text/generated/text.meta.h @@ -0,0 +1,41 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef TEXT_META_H +#define TEXT_META_H + +typedef enum TXT_LangKind +{ +TXT_LangKind_Null, +TXT_LangKind_C, +TXT_LangKind_CPlusPlus, +TXT_LangKind_Odin, +TXT_LangKind_Jai, +TXT_LangKind_Zig, +TXT_LangKind_Rust, +TXT_LangKind_DisasmX64Intel, +TXT_LangKind_COUNT, +} TXT_LangKind; + +C_LINKAGE_BEGIN +extern String8 txt_lang_kind_ext_table[8]; +extern String8Array txt_keywords_from_lang_kind_table[8]; +extern String8Array txt_multichar_symbols_from_lang_kind_table[8]; +extern TXT_TokenizerRuleArray txt_tokenizer_rules_from_lang_kind_table[8]; +extern String8 txt_keywords__null[1]; +extern String8 txt_multichar_symbols__null[1]; +extern TXT_TokenizerRule txt_tokenizer_rules__null[1]; +extern String8 txt_keywords__c[32]; +extern String8 txt_multichar_symbols__c[20]; +extern TXT_TokenizerRule txt_tokenizer_rules__c[7]; +extern String8 txt_keywords__cpp[97]; +extern String8 txt_keywords__odin[40]; +extern String8 txt_keywords__jai[39]; +extern String8 txt_keywords__zig[49]; +extern String8 txt_keywords__rust[43]; + +C_LINKAGE_END + +#endif // TEXT_META_H diff --git a/src/text/text.c b/src/text/text.c index 7b4ef0f8..2e414aeb 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -4,6 +4,11 @@ #undef LAYER_COLOR #define LAYER_COLOR 0xe34cd4ff +//////////////////////////////// +//~ rjf: Generated Code + +#include "generated/text.meta.c" + //////////////////////////////// //~ rjf: Basic Helpers @@ -11,41 +16,13 @@ internal TXT_LangKind txt_lang_kind_from_extension(String8 extension) { TXT_LangKind kind = TXT_LangKind_Null; - if(str8_match(extension, str8_lit("c"), 0) || - str8_match(extension, str8_lit("h"), 0)) + for EachElement(idx, txt_ext_lang_kind_table) { - kind = TXT_LangKind_C; - } - else if(str8_match(extension, str8_lit("cpp"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("cxx"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("cc"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("c++"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("ixx"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("cxxm"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("c++m"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("ccm"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("cppm"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("mpp"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("C"), 0) || - str8_match(extension, str8_lit("hpp"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("hxx"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("hh"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("h++"), StringMatchFlag_CaseInsensitive) || - str8_match(extension, str8_lit("H"), 0)) - { - kind = TXT_LangKind_CPlusPlus; - } - else if(str8_match(extension, str8_lit("odin"), StringMatchFlag_CaseInsensitive)) - { - kind = TXT_LangKind_Odin; - } - else if(str8_match(extension, str8_lit("jai"), StringMatchFlag_CaseInsensitive)) - { - kind = TXT_LangKind_Jai; - } - else if(str8_match(extension, str8_lit("zig"), StringMatchFlag_CaseInsensitive)) - { - kind = TXT_LangKind_Zig; + if(str8_match(extension, txt_ext_lang_kind_table[idx].ext, 0)) + { + kind = txt_ext_lang_kind_table[idx].kind; + break; + } } return kind; } @@ -53,19 +30,7 @@ txt_lang_kind_from_extension(String8 extension) internal String8 txt_extension_from_lang_kind(TXT_LangKind kind) { - String8 result = {0}; - switch(kind) - { - case TXT_LangKind_Null: - case TXT_LangKind_COUNT: - case TXT_LangKind_DisasmX64Intel: - {}break; - case TXT_LangKind_C: {result = str8_lit("c");}break; - case TXT_LangKind_CPlusPlus: {result = str8_lit("cpp");}break; - case TXT_LangKind_Odin: {result = str8_lit("odin");}break; - case TXT_LangKind_Jai: {result = str8_lit("jai");}break; - case TXT_LangKind_Zig: {result = str8_lit("zig");}break; - } + String8 result = txt_lang_kind_ext_table[kind]; return result; } @@ -93,6 +58,7 @@ txt_lex_function_from_lang_kind(TXT_LangKind kind) case TXT_LangKind_Odin: {fn = txt_token_array_from_string__odin;}break; case TXT_LangKind_Jai: {fn = txt_token_array_from_string__jai;}break; case TXT_LangKind_Zig: {fn = txt_token_array_from_string__zig;}break; + case TXT_LangKind_Rust: {fn = txt_token_array_from_string__rust;}break; case TXT_LangKind_DisasmX64Intel:{fn = txt_token_array_from_string__disasm_x64_intel;}break; } return fn; @@ -160,6 +126,363 @@ txt_token_array_from_list(Arena *arena, TXT_TokenList *list) //////////////////////////////// //~ rjf: Lexing Functions +internal TXT_TokenArray +txt_token_array_from_lang_kind_string(Arena *arena, TXT_LangKind lang_kind, String8 string) +{ + ProfBeginFunction(); + Temp scratch = scratch_begin(&arena, 1); + U64 chunk_size = Clamp(8, string.size/8, 4096); + + //- rjf: gather keywords + U64 keyword_slots_count = txt_keywords_from_lang_kind_table[lang_kind].count; + String8Node **keyword_slots = push_array(scratch.arena, String8Node *, keyword_slots_count); + for EachIndex(idx, txt_keywords_from_lang_kind_table[lang_kind].count) + { + String8 keyword = txt_keywords_from_lang_kind_table[lang_kind].v[idx]; + U64 hash = u64_hash_from_str8(keyword); + U64 slot_idx = hash%keyword_slots_count; + String8Node *n = push_array(scratch.arena, String8Node, 1); + SLLStackPush(keyword_slots[slot_idx], n); + n->string = keyword; + } + + //- rjf: gather multichar symbols + String8Array multichar_symbols = txt_multichar_symbols_from_lang_kind_table[lang_kind]; + + //- rjf: gather rules + U64 tokenizer_rule_slots_count = txt_tokenizer_rules_from_lang_kind_table[lang_kind].count; + TXT_TokenizerRulePtrNode **tokenizer_rule_opener_slots = push_array(scratch.arena, TXT_TokenizerRulePtrNode *, tokenizer_rule_slots_count); + TXT_TokenizerRulePtrNode **tokenizer_rule_closer_slots = push_array(scratch.arena, TXT_TokenizerRulePtrNode *, tokenizer_rule_slots_count); + { + TXT_TokenizerRuleArray rules = txt_tokenizer_rules_from_lang_kind_table[lang_kind]; + for EachIndex(idx, rules.count) + { + TXT_TokenizerRule *r = &rules.v[idx]; + U64 open_hash = u64_hash_from_str8(r->open_string); + U64 close_hash = u64_hash_from_str8(r->close_string); + U64 open_slot_idx = open_hash%tokenizer_rule_slots_count; + U64 close_slot_idx = close_hash%tokenizer_rule_slots_count; + TXT_TokenizerRulePtrNode *open_n = push_array(scratch.arena, TXT_TokenizerRulePtrNode, 1); + TXT_TokenizerRulePtrNode *close_n = push_array(scratch.arena, TXT_TokenizerRulePtrNode, 1); + open_n->v = r; + close_n->v = r; + SLLStackPush(tokenizer_rule_opener_slots[open_slot_idx], open_n); + SLLStackPush(tokenizer_rule_closer_slots[close_slot_idx], close_n); + } + } + + //- rjf: generate token list + TXT_TokenChunkList tokens = {0}; + { + typedef struct TokenTask TokenTask; + struct TokenTask + { + TokenTask *next; + TXT_TokenizerRule *rule; + TXT_TokenKind kind; + U64 start_idx; + }; + TXT_TokenizerRule *nil_rule = &txt_tokenizer_rules__null[0]; + TokenTask *top_task = 0; + TokenTask *free_task = 0; + B32 escaped = 0; + B32 next_escaped = 0; + U64 byte_process_start_idx = 0; + for(U64 idx = 0; idx <= string.size;) + { + U8 byte = (idx+0 < string.size) ? (string.str[idx+0]) : 0; + U8 next_byte = (idx+1 < string.size) ? (string.str[idx+1]) : 0; + + // rjf: unpack next bytes + U8 next_bytes[] = {byte, next_byte}; + String8 string_1byte = str8(next_bytes, 1); + String8 string_2byte = str8(next_bytes, 2); + + // rjf: update counter + if((idx-byte_process_start_idx) >= 1000 || idx == string.size) + { + add_progress(idx - byte_process_start_idx); + byte_process_start_idx = idx; + } + + // rjf: escaping + if(escaped && (byte != '\r' && byte != '\n')) + { + next_escaped = 0; + } + else if(!escaped && byte == '\\') + { + next_escaped = 1; + } + + // rjf: take token starters + B32 new_token_needed = (top_task == 0); + TXT_TokenizerRule *new_rule = nil_rule; + TXT_TokenKind new_token_kind = TXT_TokenKind_Null; + { + // rjf: use next bytes to look up a rule from the table + { + TXT_TokenizerRule *active_rule = top_task ? top_task->rule : nil_rule; + U64 hash_1byte = u64_hash_from_str8(string_1byte); + U64 hash_2byte = u64_hash_from_str8(string_2byte); + U64 slot_1byte = hash_1byte%tokenizer_rule_slots_count; + U64 slot_2byte = hash_2byte%tokenizer_rule_slots_count; + if(new_rule == nil_rule) + { + for EachNode(n, TXT_TokenizerRulePtrNode, tokenizer_rule_opener_slots[slot_2byte]) + { + TXT_TokenizerRule *n_parent_rule = nil_rule; + if(0 < n->v->parent_num && n->v->parent_num <= txt_tokenizer_rules_from_lang_kind_table[lang_kind].count) + { + n_parent_rule = &txt_tokenizer_rules_from_lang_kind_table[lang_kind].v[n->v->parent_num-1]; + } + if(str8_match(n->v->open_string, string_2byte, 0) && + active_rule == n_parent_rule) + { + new_rule = n->v; + break; + } + } + } + if(new_rule == nil_rule) + { + for EachNode(n, TXT_TokenizerRulePtrNode, tokenizer_rule_opener_slots[slot_1byte]) + { + TXT_TokenizerRule *n_parent_rule = nil_rule; + if(0 < n->v->parent_num && n->v->parent_num <= txt_tokenizer_rules_from_lang_kind_table[lang_kind].count) + { + n_parent_rule = &txt_tokenizer_rules_from_lang_kind_table[lang_kind].v[n->v->parent_num-1]; + } + if(str8_match(n->v->open_string, string_1byte, 0) && + active_rule == n_parent_rule) + { + new_rule = n->v; + break; + } + } + } + if(new_rule != nil_rule) + { + new_token_kind = new_rule->token_kind; + } + } + + // rjf: use next bytes to start a new token based on fallback rules + if(top_task == 0 && new_rule == nil_rule) + { + if(0){} + else if(char_is_space(byte)) { new_token_kind = TXT_TokenKind_Whitespace; } + else if(byte == '_' || + byte == '$' || + char_is_alpha(byte)) { new_token_kind = TXT_TokenKind_Identifier; } + else if(char_is_digit(byte, 10) || + (byte == '.' && + char_is_digit(next_byte, 10))) { new_token_kind = TXT_TokenKind_Numeric; } + else if(byte == '~' || byte == '!' || + byte == '%' || byte == '^' || + byte == '&' || byte == '*' || + byte == '(' || byte == ')' || + byte == '-' || byte == '=' || + byte == '+' || byte == '[' || + byte == ']' || byte == '{' || + byte == '}' || byte == ':' || + byte == ';' || byte == ',' || + byte == '.' || byte == '<' || + byte == '>' || byte == '/' || + byte == '?' || byte == '|') { new_token_kind = TXT_TokenKind_Symbol; } + } + } + + // rjf: look for ender based on rule's closing symbol + U64 ender_pad = 0; + B32 ender_found = 0; + if(top_task != 0 && idx > top_task->start_idx) + { + TXT_TokenKind active_token_kind = top_task->kind; + TXT_TokenizerRule *active_rule = top_task->rule; + U64 active_token_start_idx = top_task->start_idx; + if(idx == string.size) + { + ender_pad = 0; + ender_found = 1; + } + else if(active_rule != nil_rule && + (str8_match(string_1byte, active_rule->close_string, 0) || + str8_match(string_2byte, active_rule->close_string, 0))) + { + ender_found = 1; + ender_pad = active_rule->close_advance; + } + else switch(active_token_kind) + { + default:{}break; + case TXT_TokenKind_Whitespace: + { + ender_found = !char_is_space(byte); + }break; + case TXT_TokenKind_Identifier: + { + ender_found = (!char_is_alpha(byte) && !char_is_digit(byte, 10) && byte != '_' && byte != '$' && byte < 128); + }break; + case TXT_TokenKind_Numeric: + { + ender_found = (!char_is_alpha(byte) && !char_is_digit(byte, 10) && byte != '_' && byte != '.' && byte != '\''); + }break; + case TXT_TokenKind_Symbol: + { + ender_found = (byte != '~' && byte != '!' && + byte != '%' && byte != '^' && + byte != '&' && byte != '*' && + byte != '(' && byte != ')' && + byte != '-' && byte != '=' && + byte != '+' && byte != '[' && + byte != ']' && byte != '{' && + byte != '}' && byte != ':' && + byte != ';' && byte != ',' && + byte != '.' && byte != '<' && + byte != '>' && byte != '/' && + byte != '?' && byte != '|'); + }break; + } + } + + // rjf: if we have a new token to start, but we have an active token, then + // end the current token (but keep the same stack) + B32 keep_top_task = 0; + if(top_task != 0 && new_token_kind != TXT_TokenKind_Null && idx > top_task->start_idx) + { + keep_top_task = (!ender_found); + ender_found = 1; + } + + // rjf: if we have an ender => emit token(s) for current task + if(ender_found) + { + TXT_Token token = {top_task->kind, r1u64(top_task->start_idx, idx+ender_pad)}; + if(!keep_top_task) + { + TokenTask *popped = top_task; + SLLStackPop(top_task); + SLLStackPush(free_task, popped); + if(top_task != 0) + { + top_task->start_idx = idx+ender_pad; + } + } + else + { + top_task->start_idx = idx+ender_pad; + } + + // rjf: trim \r's off of end + { + String8 token_string = str8_substr(string, token.range); + if(token_string.size != 0 && token_string.str[token_string.size-1] == '\r') + { + token.range.max -= 1; + ender_pad += 1; + } + } + + // rjf: identifier -> keyword in special cases + if(token.kind == TXT_TokenKind_Identifier) + { + String8 token_string = str8_substr(string, token.range); + U64 hash = u64_hash_from_str8(token_string); + U64 slot_idx = hash%keyword_slots_count; + for EachNode(n, String8Node, keyword_slots[slot_idx]) + { + if(str8_match(token_string, n->string, 0)) + { + token.kind = TXT_TokenKind_Keyword; + break; + } + } + txt_token_chunk_list_push(scratch.arena, &tokens, chunk_size, &token); + } + + // rjf: split symbols by maximum-munch-rule + else if(token.kind == TXT_TokenKind_Symbol) + { + String8 token_string = str8_substr(string, token.range); + for(U64 off = 0, next_off = token_string.size; off < token_string.size; off = next_off) + { + B32 found = 0; + for(U64 idx = 0; idx < multichar_symbols.count; idx += 1) + { + if(str8_match(str8_substr(token_string, r1u64(off, off+multichar_symbols.v[idx].size)), + multichar_symbols.v[idx], + 0)) + { + found = 1; + next_off = off + Max(1, multichar_symbols.v[idx].size); + TXT_Token sub_token = {TXT_TokenKind_Symbol, r1u64(token.range.min+off, token.range.min+next_off)}; + txt_token_chunk_list_push(scratch.arena, &tokens, chunk_size, &sub_token); + break; + } + } + if(!found) + { + next_off = off+1; + TXT_Token sub_token = {TXT_TokenKind_Symbol, r1u64(token.range.min+off, token.range.min+next_off)}; + txt_token_chunk_list_push(scratch.arena, &tokens, chunk_size, &sub_token); + } + } + } + + // rjf: all other tokens + else + { + txt_token_chunk_list_push(scratch.arena, &tokens, chunk_size, &token); + } + } + + // rjf: start new token + if(new_token_kind != TXT_TokenKind_Null) + { + TokenTask *task = free_task; + if(task != 0) + { + SLLStackPop(free_task); + } + else + { + task = push_array(scratch.arena, TokenTask, 1); + } + SLLStackPush(top_task, task); + top_task->rule = new_rule; + top_task->kind = new_token_kind; + top_task->start_idx = idx; + } + + // rjf: invalid token kind -> emit error + else if(new_token_needed) + { + TXT_Token token = {TXT_TokenKind_Error, r1u64(idx, idx+1)}; + txt_token_chunk_list_push(scratch.arena, &tokens, chunk_size, &token); + } + + // rjf: advance by 1 byte if we haven't found an ender + if(!ender_found) + { + idx += 1; + } + + // rjf: advance by ender padding + idx += ender_pad; + + // rjf: advance escaping + escaped = next_escaped; + } + } + + //- rjf: token list -> token array + TXT_TokenArray result = txt_token_array_from_chunk_list(arena, &tokens); + scratch_end(scratch); + ProfEnd(); + return result; +} + internal TXT_TokenArray txt_token_array_from_string__c_cpp(Arena *arena, U64 *bytes_processed_counter, String8 string) { @@ -1368,6 +1691,370 @@ txt_token_array_from_string__zig(Arena *arena, U64 *bytes_processed_counter, Str return result; } +internal TXT_TokenArray +txt_token_array_from_string__rust(Arena *arena, U64 *bytes_processed_counter, String8 string) +{ + // NOTE(spey): Rust supports unicode identifiers. They are not handled in any way here, + // but it might be worth looking into in the future. + + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: generate token list + TXT_TokenChunkList tokens = {0}; + { + S32 multiline_comment_nesting_level = 0; + S32 raw_string_nesting_level = 0; + S32 raw_string_ender_nesting_level = 0; + + // NOTE(spey): Rust's syntax is designed in such a way that we can't be sure what a token + // is immediately from the first character, so we have to keep track of some possibilities. + B32 token_may_be_char = 0; + B32 token_may_be_lifetime = 0; + B32 token_may_be_string = 0; + + TXT_TokenKind active_token_kind = TXT_TokenKind_Null; + U64 active_token_start_idx = 0; + B32 escaped = 0; + B32 next_escaped = 0; + U64 byte_process_start_idx = 0; + for(U64 idx = 0; idx <= string.size;) + { + U8 byte = (idx+0 < string.size) ? (string.str[idx+0]) : 0; + U8 next_byte = (idx+1 < string.size) ? (string.str[idx+1]) : 0; + + // rjf: update counter + if(bytes_processed_counter != 0 && ((idx-byte_process_start_idx) >= 1000 || idx == string.size)) + { + ins_atomic_u64_add_eval(bytes_processed_counter, (idx-byte_process_start_idx)); + byte_process_start_idx = idx; + } + + // rjf: escaping + if(escaped && (byte != '\r' && byte != '\n')) + { + next_escaped = 0; + } + else if(!escaped && byte == '\\') + { + next_escaped = 1; + } + + // rjf: take starter, determine active token kind + U64 starter_pad = 0; + + // spey: special case of starter for nested comments + if(active_token_kind == TXT_TokenKind_Comment) + { + if(byte == '/' && next_byte == '*') { active_token_kind = TXT_TokenKind_Comment; multiline_comment_nesting_level++; starter_pad = 1; } + } + // spey: special case of starter for raw string literals + else if(active_token_kind == TXT_TokenKind_Identifier && token_may_be_string) + { + if(0){} + else if(byte == 'r' && next_byte == '#') {} // spey: still an identifier that may be a string (this branch triggers for raw byte/C string literals) + else if(byte == '#' && next_byte == '"') { active_token_kind = TXT_TokenKind_String; token_may_be_string = 0; token_may_be_char = 0; raw_string_nesting_level++; starter_pad = 2; } + else if(byte == '#' && next_byte == '#') { raw_string_nesting_level++; } + else { token_may_be_string = 0; token_may_be_char = 0; raw_string_nesting_level = 0; } // spey: confirmed raw identifier + } + // spey: regular cases + else if(active_token_kind == TXT_TokenKind_Null) + { + // rjf: use next bytes to start a new token + if(0){} + else if(char_is_space(byte)) { active_token_kind = TXT_TokenKind_Whitespace; } + else if(byte == 'r' && next_byte == '#') { active_token_kind = TXT_TokenKind_Identifier; token_may_be_string = 1; } // spey: either raw identifiers or raw string literals + else if(char_is_digit(byte, 10) || + (byte == '.' && + char_is_digit(next_byte, 10))) { active_token_kind = TXT_TokenKind_Numeric; } + else if(byte == '"') { active_token_kind = TXT_TokenKind_String; token_may_be_char = 0; } + else if((byte == 'c' || byte == 'b') && + next_byte == '"') { active_token_kind = TXT_TokenKind_String; token_may_be_char = 0; starter_pad = 1; } + else if((byte == 'c' || byte == 'b') && + next_byte == 'r') { active_token_kind = TXT_TokenKind_Identifier; token_may_be_string = 1; } + else if(byte == '_' || + char_is_alpha(byte)) { active_token_kind = TXT_TokenKind_Identifier; } + else if(byte == '/' && next_byte == '/') { active_token_kind = TXT_TokenKind_Comment; starter_pad = 1; } + else if(byte == '/' && next_byte == '*') { active_token_kind = TXT_TokenKind_Comment; starter_pad = 1; multiline_comment_nesting_level++; } + else if(byte == '~' || byte == '!' || + byte == '%' || byte == '^' || + byte == '&' || byte == '*' || + byte == '(' || byte == ')' || + byte == '-' || byte == '=' || + byte == '+' || byte == '[' || + byte == ']' || byte == '{' || + byte == '}' || byte == ':' || + byte == ';' || byte == ',' || + byte == '.' || byte == '<' || + byte == '>' || byte == '/' || + byte == '?' || byte == '|') { active_token_kind = TXT_TokenKind_Symbol; } + else if(byte == '\'') { active_token_kind = TXT_TokenKind_String; token_may_be_char = 1; token_may_be_lifetime = 1; } + else if((byte == 'c' || byte == 'b') && + next_byte == '\'') { active_token_kind = TXT_TokenKind_String; token_may_be_char = 1; starter_pad = 1; } + + // rjf: start new token + if(active_token_kind != TXT_TokenKind_Null) + { + active_token_start_idx = idx; + } + + // rjf: invalid token kind -> emit error + else + { + TXT_Token token = {TXT_TokenKind_Error, r1u64(idx, idx+1)}; + txt_token_chunk_list_push(scratch.arena, &tokens, 4096, &token); + } + } + + B32 is_on_starter = idx <= active_token_start_idx || token_may_be_string; + + // spey: advance by starter padding byte(s) and reset byte/next_byte values + idx += starter_pad; + byte = (idx+0 < string.size) ? (string.str[idx+0]) : 0; + next_byte = (idx+1 < string.size) ? (string.str[idx+1]) : 0; + + // rjf: look for ender + U64 ender_pad = 0; + B32 ender_found = 0; + if(active_token_kind != TXT_TokenKind_Null && !is_on_starter) + { + if(idx == string.size) + { + ender_pad = 0; + ender_found = 1; + } + else switch(active_token_kind) + { + default:break; + case TXT_TokenKind_Whitespace: + { + ender_found = !char_is_space(byte); + }break; + case TXT_TokenKind_Identifier: + { + ender_found = (!char_is_alpha(byte) && !char_is_digit(byte, 10) && byte != '_' && byte != '$' && byte != '#' && byte != '!' && byte < 128); + }break; + case TXT_TokenKind_Numeric: + { + ender_found = (!char_is_alpha(byte) && !char_is_digit(byte, 10) && byte != '_' && byte != '.' && byte != '\''); + }break; + case TXT_TokenKind_String: + { + if(!escaped) + { + if(token_may_be_char) + { + if(byte == '\'') + { + // spey: char ending + ender_found = 1; + } + else if(token_may_be_lifetime && !char_is_alpha(byte) && !char_is_digit(byte, 10) && byte != '_' && byte < 128) + { + // spey: lifetime ending + ender_found = 1; + } + } + else + { + if(0){} + + // spey: regular string + else if(raw_string_nesting_level == 0) { ender_found = byte == '"'; } + + // spey: raw string + else if(byte == '"' && next_byte == '#' && + raw_string_ender_nesting_level == 0) { raw_string_ender_nesting_level++; } + else if(byte == '#' && next_byte != '#' && + raw_string_ender_nesting_level == raw_string_nesting_level && + raw_string_ender_nesting_level >= 0) { ender_found = 1; raw_string_nesting_level = 0; raw_string_ender_nesting_level = 0; } + else if(byte == '#' && next_byte != '#' && + raw_string_ender_nesting_level >= 0) { raw_string_ender_nesting_level = 0; } + else if(byte == '#' && + raw_string_ender_nesting_level >= 0) { raw_string_ender_nesting_level++; } + } + } + + ender_pad += 1; + }break; + case TXT_TokenKind_Symbol: + { + ender_found = (byte != '~' && byte != '!' && + byte != '%' && byte != '^' && + byte != '&' && byte != '*' && + byte != '(' && byte != ')' && + byte != '-' && byte != '=' && + byte != '+' && byte != '[' && + byte != ']' && byte != '{' && + byte != '}' && byte != ':' && + byte != ';' && byte != ',' && + byte != '.' && byte != '<' && + byte != '>' && byte != '/' && + byte != '?' && byte != '|'); + }break; + case TXT_TokenKind_Comment: + { + if(multiline_comment_nesting_level == 0) + { + ender_found = (byte == '\r' || byte == '\n'); + } + else + { + if (byte == '*' && next_byte == '/') + multiline_comment_nesting_level--; + + ender_found = (active_token_start_idx+1 < idx && multiline_comment_nesting_level == 0); + ender_pad += 2; + } + }break; + } + } + + // rjf: next byte is ender => emit token + if(ender_found) + { + TXT_Token token = {active_token_kind, r1u64(active_token_start_idx, idx+ender_pad)}; + active_token_kind = TXT_TokenKind_Null; + + // rjf: identifier -> keyword in special cases + if(token.kind == TXT_TokenKind_Identifier) + { + read_only local_persist String8 rust_keywords[] = + { + str8_lit_comp("as"), + str8_lit_comp("break"), + str8_lit_comp("const"), + str8_lit_comp("continue"), + str8_lit_comp("crate"), + str8_lit_comp("else"), + str8_lit_comp("enum"), + str8_lit_comp("extern"), + str8_lit_comp("false"), + str8_lit_comp("fn"), + str8_lit_comp("for"), + str8_lit_comp("if"), + str8_lit_comp("impl"), + str8_lit_comp("in"), + str8_lit_comp("let"), + str8_lit_comp("loop"), + str8_lit_comp("match"), + str8_lit_comp("mod"), + str8_lit_comp("move"), + str8_lit_comp("mut"), + str8_lit_comp("pub"), + str8_lit_comp("ref"), + str8_lit_comp("return"), + str8_lit_comp("self"), + str8_lit_comp("Self"), + str8_lit_comp("static"), + str8_lit_comp("struct"), + str8_lit_comp("super"), + str8_lit_comp("trait"), + str8_lit_comp("true"), + str8_lit_comp("type"), + str8_lit_comp("unsafe"), + str8_lit_comp("use"), + str8_lit_comp("where"), + str8_lit_comp("while"), + str8_lit_comp("yield"), + str8_lit_comp("async"), + str8_lit_comp("await"), + str8_lit_comp("dyn"), + + // weak keywords + str8_lit_comp("macro_rules"), + str8_lit_comp("raw"), + str8_lit_comp("safe"), + str8_lit_comp("union"), + }; + String8 token_string = str8_substr(string, r1u64(active_token_start_idx, idx+ender_pad)); + for(U64 keyword_idx = 0; keyword_idx < ArrayCount(rust_keywords); keyword_idx += 1) + { + if(str8_match(rust_keywords[keyword_idx], token_string, 0)) + { + token.kind = TXT_TokenKind_Keyword; + break; + } + } + txt_token_chunk_list_push(scratch.arena, &tokens, 4096, &token); + } + + // rjf: split symbols by maximum-munch-rule + else if(token.kind == TXT_TokenKind_Symbol) + { + read_only local_persist String8 rust_multichar_symbol_strings[] = + { + str8_lit_comp("<<"), + str8_lit_comp(">>"), + str8_lit_comp("<="), + str8_lit_comp(">="), + str8_lit_comp("=="), + str8_lit_comp("!="), + str8_lit_comp("&&"), + str8_lit_comp("||"), + str8_lit_comp("|="), + str8_lit_comp("&="), + str8_lit_comp("^="), + str8_lit_comp("~="), + str8_lit_comp("+="), + str8_lit_comp("-="), + str8_lit_comp("*="), + str8_lit_comp("/="), + str8_lit_comp("%="), + str8_lit_comp("<<="), + str8_lit_comp(">>="), + str8_lit_comp("->"), + }; + String8 token_string = str8_substr(string, r1u64(active_token_start_idx, idx+ender_pad)); + for(U64 off = 0, next_off = token_string.size; off < token_string.size; off = next_off) + { + B32 found = 0; + for(U64 idx = 0; idx < ArrayCount(rust_multichar_symbol_strings); idx += 1) + { + if(str8_match(str8_substr(token_string, r1u64(off, off+rust_multichar_symbol_strings[idx].size)), + rust_multichar_symbol_strings[idx], + 0)) + { + found = 1; + next_off = off + rust_multichar_symbol_strings[idx].size; + TXT_Token token = {TXT_TokenKind_Symbol, r1u64(active_token_start_idx+off, active_token_start_idx+next_off)}; + txt_token_chunk_list_push(scratch.arena, &tokens, 4096, &token); + break; + } + } + if(!found) + { + next_off = off+1; + TXT_Token token = {TXT_TokenKind_Symbol, r1u64(active_token_start_idx+off, active_token_start_idx+next_off)}; + txt_token_chunk_list_push(scratch.arena, &tokens, 4096, &token); + } + } + } + + // rjf: all other tokens + else + { + txt_token_chunk_list_push(scratch.arena, &tokens, 4096, &token); + } + + // rjf: increment by starter and ender padding + idx += ender_pad; + } + + // rjf: advance by 1 byte if we haven't found an ender + if(!ender_found) + { + idx += 1; + } + escaped = next_escaped; + } + } + + //- rjf: token list -> token array + TXT_TokenArray result = txt_token_array_from_chunk_list(arena, &tokens); + scratch_end(scratch); + return result; +} + internal TXT_TokenArray txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed_counter, String8 string) { @@ -1669,7 +2356,7 @@ txt_expr_off_range_from_line_off_range_string_tokens(U64 off, Rng1U64 line_range if(contains_1u64(token->range, off)) { Rng1U64 token_range_clamped = intersect_1u64(line_range, token->range); - String8 token_string = str8_substr(line_text, r1u64(token_range_clamped.max - line_range.min, token_range_clamped.max - line_range.min)); + String8 token_string = str8_substr(line_text, r1u64(token_range_clamped.min - line_range.min, token_range_clamped.max - line_range.min)); B32 token_ender = 0; switch(token->kind) { @@ -1679,6 +2366,7 @@ txt_expr_off_range_from_line_off_range_string_tokens(U64 off, Rng1U64 line_range token_ender = (str8_match(token_string, str8_lit("]"), 0)); }break; case TXT_TokenKind_Identifier: + case TXT_TokenKind_Numeric: case TXT_TokenKind_Keyword: case TXT_TokenKind_Meta: { @@ -1693,6 +2381,26 @@ txt_expr_off_range_from_line_off_range_string_tokens(U64 off, Rng1U64 line_range } } + // rjf: walk forward from pt_token - consume closing braces + if(pt_token != 0) + { + for(TXT_Token *wf_token = pt_token+1; + wf_token < line_tokens_opl; + wf_token += 1) + { + Rng1U64 wf_token_range_clamped = intersect_1u64(line_range, wf_token->range); + String8 wf_token_string = str8_substr(line_text, r1u64(wf_token_range_clamped.min - line_range.min, wf_token_range_clamped.max - line_range.min)); + if(wf_token->kind == TXT_TokenKind_Symbol && str8_match(wf_token_string, str8_lit("]"), 0)) + { + pt_token = wf_token; + } + else + { + break; + } + } + } + // rjf: found token containing `off`? -> mark that as our initial range if(pt_token != 0) { @@ -1733,6 +2441,7 @@ txt_expr_off_range_from_line_off_range_string_tokens(U64 off, Rng1U64 line_range } }break; case TXT_TokenKind_Identifier: + case TXT_TokenKind_Numeric: { include_wb_token = 1; }break; @@ -1747,6 +2456,12 @@ txt_expr_off_range_from_line_off_range_string_tokens(U64 off, Rng1U64 line_range } } } + + // rjf: exclude standalone numerics + if(pt_token != 0 && pt_token->kind == TXT_TokenKind_Numeric && result.min == pt_token->range.min && result.max == pt_token->range.max) + { + MemoryZeroStruct(&result); + } } scratch_end(scratch); return result; @@ -2044,6 +2759,10 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou Rng1U64 range = lane_range(data.size); for EachInRange(idx, range) { + if(idx%1000 == 0 && ins_atomic_u32_eval(cancel_signal)) + { + break; + } if(data.str[idx] == '\n') { lane_line_count += 1; @@ -2066,19 +2785,22 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou U64 line_start_idx = 0; for(U64 idx = 0; idx <= data.size; idx += 1) { - if(idx == data.size || data.str[idx] == '\n' || data.str[idx] == '\r') + if(idx%1000 == 0 && ins_atomic_u32_eval(cancel_signal)) + { + break; + } + if(idx == data.size || data.str[idx] == '\n') { Rng1U64 line_range = r1u64(line_start_idx, idx); + if(idx > 0 && data.str[idx-1] == '\r' && line_range.max > line_range.min) + { + line_range.max -= 1; + } U64 line_size = dim_1u64(line_range); shared->info.lines_ranges[line_idx] = line_range; shared->info.lines_max_size = Max(shared->info.lines_max_size, line_size); line_idx += 1; line_start_idx = idx+1; - if(idx < data.size && data.str[idx] == '\r') - { - line_start_idx += 1; - idx += 1; - } } if(idx && idx%1000 == 0) { @@ -2090,10 +2812,17 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou set_progress(Min(data.size, 1024) + data.size + data.size); //- rjf: lex function * data -> tokens +#if 1 if(lane_idx() == 0 && lex_function != 0) { shared->info.tokens = lex_function(shared->arena, 0, data); } +#else + if(lane_idx() == 0) + { + shared->info.tokens = txt_token_array_from_lang_kind_string(shared->arena, lang, data); + } +#endif lane_sync(); set_progress(Min(data.size, 1024) + data.size + data.size + data.size*(lex_function != 0)); TXT_TokenArray tokens = shared->info.tokens; @@ -2145,6 +2874,10 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou U64 scope_idx = 0; for EachIndex(token_idx, tokens.count) { + if(token_idx%1000 == 0 && ins_atomic_u32_eval(cancel_signal)) + { + break; + } if(tokens.v[token_idx].kind == TXT_TokenKind_Symbol) { String8 token_string = str8_substr(data, tokens.v[token_idx].range); @@ -2217,8 +2950,18 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou lane_sync(); } + //- rjf: cancel -> release + if(lane_idx() == 0 && ins_atomic_u32_eval(cancel_signal) && shared->arena != 0) + { + arena_release(shared->arena); + shared->arena = 0; + } + //- rjf: mark dependency on hash - c_hash_downstream_inc(hash); + if(lane_idx() == 0 && shared->arena != 0) + { + c_hash_downstream_inc(hash); + } //- rjf: package as artifact if(lane_idx() == 0 && shared->arena != 0) @@ -2229,12 +2972,13 @@ txt_artifact_create(String8 key, B32 *cancel_signal, B32 *retry_out, U64 *gen_ou shared->artifact->info = shared->info; } lane_sync(); + AC_Artifact result = {0}; + result.u64[0] = (U64)shared->artifact; + lane_sync(); access_close(access); scratch_end(scratch); ProfEnd(); - AC_Artifact result = {0}; - result.u64[0] = (U64)shared->artifact; return result; } @@ -2258,13 +3002,18 @@ txt_text_info_from_hash_lang(Access *access, U128 hash, TXT_LangKind lang) } key = {hash, lang}; #pragma pack(pop) String8 key_string = str8_struct(&key); - AC_Artifact artifact = ac_artifact_from_key(access, key_string, txt_artifact_create, txt_artifact_destroy, 0, .flags = AC_Flag_Wide); + B32 stale = 0; + AC_Artifact artifact = ac_artifact_from_key(access, key_string, txt_artifact_create, txt_artifact_destroy, 0, .flags = AC_Flag_Wide, .stale_out = &stale); TXT_Artifact *txt_artifact = (TXT_Artifact *)artifact.u64[0]; TXT_TextInfo info = {0}; if(txt_artifact != 0) { info = txt_artifact->info; } + else if(!stale) + { + info = txt_info_nil; + } return info; } @@ -2275,7 +3024,10 @@ txt_text_info_from_key_lang(Access *access, C_Key key, TXT_LangKind lang, U128 * for(U64 rewind_idx = 0; rewind_idx < C_KEY_HASH_HISTORY_COUNT; rewind_idx += 1) { U128 hash = c_hash_from_key(key, rewind_idx); - result = txt_text_info_from_hash_lang(access, hash, lang); + if(!u128_match(hash, u128_zero())) + { + result = txt_text_info_from_hash_lang(access, hash, lang); + } if(result.lines_count != 0) { if(hash_out) diff --git a/src/text/text.h b/src/text/text.h index c34eb64b..2f039b9e 100644 --- a/src/text/text.h +++ b/src/text/text.h @@ -32,6 +32,32 @@ typedef enum TXT_TokenKind } TXT_TokenKind; +typedef struct TXT_TokenizerRule TXT_TokenizerRule; +struct TXT_TokenizerRule +{ + TXT_TokenKind token_kind; + String8 open_string; + String8 close_string; + U32 close_advance; + B32 nesting; + B32 escaping; + U32 parent_num; +}; + +typedef struct TXT_TokenizerRulePtrNode TXT_TokenizerRulePtrNode; +struct TXT_TokenizerRulePtrNode +{ + TXT_TokenizerRulePtrNode *next; + TXT_TokenizerRule *v; +}; + +typedef struct TXT_TokenizerRuleArray TXT_TokenizerRuleArray; +struct TXT_TokenizerRuleArray +{ + TXT_TokenizerRule *v; + U64 count; +}; + typedef struct TXT_Token TXT_Token; struct TXT_Token { @@ -138,20 +164,12 @@ struct TXT_LineTokensSlice }; //////////////////////////////// -//~ rjf: Language Kind Types +//~ rjf: Generated Code -typedef enum TXT_LangKind -{ - TXT_LangKind_Null, - TXT_LangKind_C, - TXT_LangKind_CPlusPlus, - TXT_LangKind_Odin, - TXT_LangKind_Jai, - TXT_LangKind_Zig, - TXT_LangKind_DisasmX64Intel, - TXT_LangKind_COUNT -} -TXT_LangKind; +#include "generated/text.meta.h" + +//////////////////////////////// +//~ rjf: Language Kind Types typedef TXT_TokenArray TXT_LangLexFunctionType(Arena *arena, U64 *bytes_processed_counter, String8 string); @@ -159,6 +177,14 @@ typedef TXT_TokenArray TXT_LangLexFunctionType(Arena *arena, U64 *bytes_processe //~ rjf: Globals read_only global TXT_ScopeNode txt_scope_node_nil = {0}; +read_only global Rng1U64 txt_info_line_range_nil = {0}; +read_only global TXT_TextInfo txt_info_nil = +{ + 1, + &txt_info_line_range_nil, + 0, + TXT_LineEndKind_Null, +}; //////////////////////////////// //~ rjf: Basic Helpers @@ -179,10 +205,13 @@ internal TXT_TokenArray txt_token_array_from_list(Arena *arena, TXT_TokenList *l //////////////////////////////// //~ rjf: Lexing Functions +internal TXT_TokenArray txt_token_array_from_lang_kind_string(Arena *arena, TXT_LangKind lang_kind, String8 string); + internal TXT_TokenArray txt_token_array_from_string__c_cpp(Arena *arena, U64 *bytes_processed_counter, String8 string); internal TXT_TokenArray txt_token_array_from_string__odin(Arena *arena, U64 *bytes_processed_counter, String8 string); internal TXT_TokenArray txt_token_array_from_string__jai(Arena *arena, U64 *bytes_processed_counter, String8 string); internal TXT_TokenArray txt_token_array_from_string__zig(Arena *arena, U64 *bytes_processed_counter, String8 string); +internal TXT_TokenArray txt_token_array_from_string__rust(Arena *arena, U64 *bytes_processed_counter, String8 string); internal TXT_TokenArray txt_token_array_from_string__disasm_x64_intel(Arena *arena, U64 *bytes_processed_counter, String8 string); //////////////////////////////// diff --git a/src/text/text.mdesk b/src/text/text.mdesk new file mode 100644 index 00000000..6b904df3 --- /dev/null +++ b/src/text/text.mdesk @@ -0,0 +1,246 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@table(name ext keywords_table multichar_symbol_table tokenizer_rules_table) +TXT_LangKindTable: +{ + { Null null null null null} + { C c c c c } + { CPlusPlus cpp cpp c c } + { Odin odin odin c null} + { Jai jai jai c null} + { Zig zig zig c null} + { Rust rs rust c null} + { DisasmX64Intel disasm_x64_intel null null null} +} + +@table(string kind) +TXT_LangKindExtTable: +{ + {"h" C } + {"cxx" CPlusPlus} + {"cc" CPlusPlus} + {"c++" CPlusPlus} + {"ixx" CPlusPlus} + {"cxxm" CPlusPlus} + {"c++m" CPlusPlus} + {"ccm" CPlusPlus} + {"cppm" CPlusPlus} + {"mpp" CPlusPlus} + {"C" CPlusPlus} + {"hpp" CPlusPlus} + {"hxx" CPlusPlus} + {"hh" CPlusPlus} + {"h++" CPlusPlus} + {"H" CPlusPlus} +} + +@enum TXT_LangKind: +{ + @expand(TXT_LangKindTable a) `$(a.name)`, + COUNT +} + +@data(String8) +txt_lang_kind_ext_table: +{ + @expand(TXT_LangKindTable a) `str8_lit_comp("$(a.ext)")` +} + +@data(`struct {String8 ext; TXT_LangKind kind;}`) @c_file +txt_ext_lang_kind_table: +{ + @expand(TXT_LangKindTable a) `{str8_lit_comp("$(a.ext)"), TXT_LangKind_$(a.name)}`, + @expand(TXT_LangKindExtTable a) `{str8_lit_comp("$(a.string)"), TXT_LangKind_$(a.kind)}`, +} + +@data(String8Array) txt_keywords_from_lang_kind_table: +{ + @expand(TXT_LangKindTable a) `{txt_keywords__$(a.keywords_table), ArrayCount(txt_keywords__$(a.keywords_table))}` +} + +@data(String8Array) txt_multichar_symbols_from_lang_kind_table: +{ + @expand(TXT_LangKindTable a) `{txt_multichar_symbols__$(a.multichar_symbol_table), ArrayCount(txt_multichar_symbols__$(a.multichar_symbol_table))}` +} + +@data(TXT_TokenizerRuleArray) txt_tokenizer_rules_from_lang_kind_table: +{ + @expand(TXT_LangKindTable a) `{txt_tokenizer_rules__$(a.tokenizer_rules_table), ArrayCount(txt_tokenizer_rules__$(a.tokenizer_rules_table))}` +} + +@data(String8) txt_keywords__null:{`{0}`} +@data(String8) txt_multichar_symbols__null:{`{0}`} +@data(TXT_TokenizerRule) txt_tokenizer_rules__null:{`{TXT_TokenKind_Null}`} + +//////////////////////////////// +//~ rjf: C + +@table(string) +txt_keywords__c: +{ + {"auto"} {"break"} {"case"} {"char"} + {"const"} {"continue"} {"default"} {"do"} + {"double"} {"else"} {"enum"} {"extern"} + {"float"} {"for"} {"goto"} {"if"} + {"int"} {"long"} {"register"} {"return"} + {"short"} {"signed"} {"sizeof"} {"static"} + {"struct"} {"switch"} {"typedef"} {"union"} + {"unsigned"} {"void"} {"volatile"} {"while"} +} +@data(String8) txt_keywords__c: {@expand(txt_keywords__c a) `str8_lit_comp("$(a.string)")`} + +@table(string) +txt_multichar_symbols__c: +{ + {"<<"} + {">>"} + {"<="} + {">="} + {"=="} + {"!="} + {"&&"} + {"||"} + {"|="} + {"&="} + {"^="} + {"~="} + {"+="} + {"-="} + {"*="} + {"/="} + {"%="} + {"<<="} + {">>="} + {"->"} +} +@data(String8) txt_multichar_symbols__c: {@expand(txt_multichar_symbols__c a) `str8_lit_comp("$(a.string)")`} + +@table(token_kind open_string close_string close_advance nesting escaping parent_num) txt_tokenizer_rules__c: +{ + {Comment "//" "\\n" 0 0 1 0} + {Comment "/*" "*/" 2 0 0 0} + {Meta "#" "\\n" 0 0 1 0} + {String '\\"' '\\"' 1 0 1 0} + {String "'" "'" 1 0 1 0} + {String '\\"' '\\"' 1 0 1 3} + {String "<" ">" 1 0 1 3} +} +@data(TXT_TokenizerRule) txt_tokenizer_rules__c: +{ + @expand(txt_tokenizer_rules__c a) `{TXT_TokenKind_$(a.token_kind), str8_lit_comp("$(a.open_string)"), str8_lit_comp("$(a.close_string)"), $(a.close_advance), $(a.nesting), $(a.escaping), $(a.parent_num)}` +} + +//////////////////////////////// +//~ rjf: C++ + +@table(string) +txt_keywords__cpp: +{ + {"alignas"} {"alignof"} {"and"} {"and_eq"} + {"asm"} {"atomic_cancel"} {"atomic_commit"} {"atomic_noexcept"} + {"auto"} {"bitand"} {"bitor"} {"bool"} + {"break"} {"case"} {"catch"} {"char"} + {"char8_t"} {"char16_t"} {"char32_t"} {"class"} + {"compl"} {"concept"} {"const"} {"consteval"} + {"constexpr"} {"constinit"} {"const_cast"} {"continue"} + {"co_await"} {"co_return"} {"co_yield"} {"decltype"} + {"default"} {"delete"} {"do"} {"double"} + {"dynamic_cast"} {"else"} {"enum"} {"explicit"} + {"export"} {"extern"} {"false"} {"float"} + {"for"} {"friend"} {"goto"} {"if"} + {"inline"} {"int"} {"long"} {"mutable"} + {"namespace"} {"new"} {"noexcept"} {"not"} + {"not_eq"} {"nullptr"} {"operator"} {"or"} + {"or_eq"} {"private"} {"protected"} {"public"} + {"reflexpr"} {"register"} {"reinterpret_cast"} {"requires"} + {"return"} {"short"} {"signed"} {"sizeof"} + {"static"} {"static_assert"} {"static_cast"} {"struct"} + {"switch"} {"synchronized"} {"template"} {"this"} + {"thread_local"} {"throw"} {"true"} {"try"} + {"typedef"} {"typeid"} {"typename"} {"union"} + {"unsigned"} {"using"} {"virtual"} {"void"} + {"volatile"} {"wchar_t"} {"while"} {"xor"} + {"xor_eq"} +} +@data(String8) txt_keywords__cpp: {@expand(txt_keywords__cpp a) `str8_lit_comp("$(a.string)")`} + +//////////////////////////////// +//~ rjf: Odin + +@table(string) +txt_keywords__odin: +{ + {"align_of"} {"asm"} {"auto_cast"} {"bit_set"} + {"break"} {"case"} {"cast"} {"context"} + {"continue"} {"defer"} {"distinct"} {"do"} + {"dynamic"} {"else"} {"enum"} {"fallthrough"} + {"for"} {"foreign"} {"if"} {"in"} + {"map"} {"matrix"} {"not_in"} {"or_break"} + {"or_continue"} {"or_else"} {"or_return"} {"package"} + {"proc"} {"return"} {"size_of"} {"struct"} + {"switch"} {"transmute"} {"typeid"} {"union"} + {"using"} {"when"} {"where"} {"import"} +} +@data(String8) txt_keywords__odin: {@expand(txt_keywords__odin a) `str8_lit_comp("$(a.string)")`} + +//////////////////////////////// +//~ rjf: Jai + +@table(string) +txt_keywords__jai: +{ + {"bool"} {"true"} {"false"} {"int"} + {"s8"} {"u8"} {"s16"} {"u16"} + {"s32"} {"u32"} {"s64"} {"u64"} + {"s128"} {"u128"} {"float"} {"float32"} + {"float64"} {"void"} {"enum"} {"enum_flags"} + {"size_of"} {"string"} {"type_of"} {"cast"} + {"if"} {"ifs"} {"then"} {"else"} + {"case"} {"for"} {"while"} {"break"} + {"continue"} {"remove"} {"return"} {"inline"} + {"null"} {"defer"} {"xx"} +} +@data(String8) txt_keywords__jai: {@expand(txt_keywords__jai a) `str8_lit_comp("$(a.string)")`} + +//////////////////////////////// +//~ rjf: Zig + +@table(string) +txt_keywords__zig: +{ + {"addrspace"} {"align"} {"allowzero"} {"and"} + {"anyframe"} {"anytype"} {"asm"} {"async"} + {"await"} {"break"} {"callconv"} {"catch"} + {"comptime"} {"const"} {"continue"} {"defer"} + {"else"} {"enum"} {"errdefer"} {"error"} + {"export"} {"extern"} {"fn"} {"for"} + {"if"} {"inline"} {"noalias"} {"nosuspend"} + {"noinline"} {"opaque"} {"or"} {"orelse"} + {"packed"} {"pub"} {"resume"} {"return"} + {"linksection"} {"struct"} {"suspend"} {"switch"} + {"test"} {"threadlocal"} {"try"} {"union"} + {"unreachable"} {"usingnamespace"} {"var"} {"volatile"} + {"while"} +} +@data(String8) txt_keywords__zig: {@expand(txt_keywords__zig a) `str8_lit_comp("$(a.string)")`} + +//////////////////////////////// +//~ rjf: Rust + +@table(string) +txt_keywords__rust: +{ + {"as"} {"break"} {"const"} {"continue"} + {"crate"} {"else"} {"enum"} {"extern"} + {"false"} {"fn"} {"for"} {"if"} + {"impl"} {"in"} {"let"} {"loop"} + {"match"} {"mod"} {"move"} {"mut"} + {"pub"} {"ref"} {"return"} {"self"} + {"Self"} {"static"} {"struct"} {"super"} + {"trait"} {"true"} {"type"} {"unsafe"} + {"use"} {"where"} {"while"} {"yield"} + {"async"} {"await"} {"dyn"} {"macro_rules"} + {"raw"} {"safe"} {"union"} +} +@data(String8) txt_keywords__rust: {@expand(txt_keywords__rust a) `str8_lit_comp("$(a.string)")`} diff --git a/src/third_party/blake3/c/blake3_dispatch.c b/src/third_party/blake3/c/blake3_dispatch.c index 0082f974..88f6bc88 100644 --- a/src/third_party/blake3/c/blake3_dispatch.c +++ b/src/third_party/blake3/c/blake3_dispatch.c @@ -55,7 +55,7 @@ static uint64_t xgetbv(void) { } static void cpuid(uint32_t out[4], uint32_t id) { -#if defined(_MSC_VER) +#if defined(_MSC_VER) && !defined(__clang__) __cpuid((int *)out, id); #elif defined(__i386__) || defined(_M_IX86) __asm__ __volatile__("movl %%ebx, %1\n" @@ -71,7 +71,7 @@ static void cpuid(uint32_t out[4], uint32_t id) { } static void cpuidex(uint32_t out[4], uint32_t id, uint32_t sid) { -#if defined(_MSC_VER) +#if defined(_MSC_VER) && !defined(__clang__) __cpuidex((int *)out, id, sid); #elif defined(__i386__) || defined(_M_IX86) __asm__ __volatile__("movl %%ebx, %1\n" diff --git a/src/third_party/martins_bitscan/bitscan.h b/src/third_party/martins_bitscan/bitscan.h new file mode 100644 index 00000000..1945f627 --- /dev/null +++ b/src/third_party/martins_bitscan/bitscan.h @@ -0,0 +1,664 @@ +#pragma once + +#include +#include + +// returns index of bit that is equal to "bit" value in [lo,hi) interval starting from lo position (lsb->msb) +// returns "hi" value if none found, or interval is empty +// "bit" value must be 0 or 1 +// "bits" array should be large enough to allow indexing it with [hi/32] or [hi/64] index + +static inline size_t bitscan_lsb_index32(const uint32_t* bits, size_t lo, size_t hi, int bit); +static inline size_t bitscan_lsb_index64(const uint64_t* bits, size_t lo, size_t hi, int bit); + +// returns index of bit that is equal to "bit" value in [lo,hi) interval starting from hi position (msb->lsb) +// returns "hi" value if none found, or interval is empty +// "bit" value must be 0 or 1 +// "bits" array should be large enough to allow indexing it with [hi/32] or [hi/64] index + +static inline size_t bitscan_msb_index32(const uint32_t* bits, size_t lo, size_t hi, int bit); +static inline size_t bitscan_msb_index64(const uint64_t* bits, size_t lo, size_t hi, int bit); + +// +// implementation +// + +// to run tests: +// cl.exe -O2 -fsanitize=address -DBITSCAN_TEST=1 -TC bitscan.h && bitscan.exe +// clang.exe -O2 -fsanitize=address,undefined -DBITSCAN_TEST=1 -x c bitscan.h && a.exe + +#if !(defined(__GNUC__) || defined(__clang__)) +# include // _BitScanForward/Reverse +#endif + +#if defined(_M_AMD64) || defined(__x86_64__) +# include // SSE2 +#endif + +// count of zero bits, either starting from lsb (trailing), or from msb (leading) +// input value must be non-zero +// bit index is from 0 (lsb) to 31/63 (msb) + +static inline size_t bitscan__ctz32(uint32_t x) +{ +#if defined(__GNUC__) || defined(__clang__) + return __builtin_ctz(x); +#else + unsigned long index; + _BitScanForward(&index, x); + return index; +#endif +} + +static inline size_t bitscan__ctz64(uint64_t x) +{ +#if defined(__GNUC__) || defined(__clang__) + return __builtin_ctzll(x); +#else + unsigned long index; + _BitScanForward64(&index, x); + return index; +#endif +} + +static inline size_t bitscan__clz32(uint32_t x) +{ +#if defined(__GNUC__) || defined(__clang__) + return __builtin_clz(x); +#else + unsigned long index; + _BitScanReverse(&index, x); + return 31 - index; +#endif +} + +static inline size_t bitscan__clz64(uint64_t x) +{ +#if defined(__GNUC__) || defined(__clang__) + return __builtin_clzll(x); +#else + unsigned long index; + _BitScanReverse64(&index, x); + return 63 - index; +#endif +} + +// returns index of first bit "1" in x when scanning from msb downwards +// bit index is from 0 (lsb) to 31/63 (msb) + +static inline size_t bitscan__lindex32(uint32_t x) +{ + return 31 - bitscan__clz32(x); +} +static inline size_t bitscan__lindex64(uint64_t x) +{ + return 63 - bitscan__clz64(x); +} + +size_t bitscan_lsb_index32(const uint32_t* bits, size_t lo, size_t hi, int bit) +{ +#if 0 + + // reference implementation + for (size_t i = lo; i> (i%32)) & 1) == bit) + { + return i; + } + } + +#else + + if (lo >= hi) + { + return hi; + } + + // to be able to use "ctz" for "find first zero bit" + // do xor with this mask, it will flip all bit values + // thus changing operation to "find first set bit" - which allows to use "ctz" + const uint32_t mask = bit ? 0U : ~0U; + + size_t count = hi - lo; + size_t offset = lo / 32; + size_t first = (unsigned)(-(int)lo) % 32; // 0 if lo%32 == 0, otherwise (32 - lo%32) % 32 + + if (first) // first < 32, how many max bits to use in top of first word + { + uint32_t word = bits[offset] ^ mask; + + // first = lo%32 = 18 + // count = 10 + // in cases count > first, clamp it to first + // + // 3 2 1 0 + // 10987654321098765432109876543210 bit index + // ....xxxxxxxxxx.................. + // ^ ^ ^ + // | | | + // | | +------------------ lo%32 = 18 + // | | | + // | +- count -+ count = 10 bits to process + // | | + // +--- first ---+ first = 32 - lo%32 = 14 + + size_t n = (count < first ? count : first); + word &= (~0U >> (32 - n)) << (lo % 32); + + if (word) + { + return offset * 32 + bitscan__ctz32(word); + } + offset += 1; + count -= n; + } + +#if defined(_M_AMD64) || defined(__x86_64__) + while (count >= 128) + { + __m128i words = _mm_loadu_si128((const __m128i*)&bits[offset]); + __m128i cmp = _mm_cmpeq_epi32(words, _mm_set1_epi32(mask)); + + // if all 16-bytes of "words" are same as mask, then m will be 0 + uint16_t m = 1 + (uint16_t)_mm_movemask_epi8(cmp); + if (m) + { + // find word index to use [0,4) + size_t n = bitscan__ctz32(m) / 4; + + uint32_t word = bits[offset + n] ^ mask; + return offset * 32 + n * 32 + bitscan__ctz32(word); + } + + offset += 4; + count -= 128; + } +#endif + + while (count >= 32) + { + uint32_t word = bits[offset] ^ mask; + if (word) + { + return offset * 32 + bitscan__ctz32(word); + } + offset += 1; + count -= 32; + } + + if (count) // now count < 32, how many bits to process in bottom of last word + { + uint32_t word = bits[offset] ^ mask; + + // use first count bits, rest of bits are masked out to 1 + word |= ~0U << count; + + if (word) + { + return offset * 32 + bitscan__ctz32(word); + } + } + +#endif + + return hi; +} + +size_t bitscan_lsb_index64(const uint64_t* bits, size_t lo, size_t hi, int bit) +{ +#if 0 + + // reference implementation + for (size_t i = lo; i < hi; i++) + { + uint64_t word = bits[i / 64]; + if (((word >> (i % 64)) & 1) == bit) + { + return i; + } + } + +#else + + if (lo >= hi) + { + return hi; + } + + const uint64_t mask = bit ? 0ULL : ~0ULL; + + size_t count = hi - lo; + size_t offset = lo / 64; + size_t first = (unsigned)(-(int)lo) % 64; + + if (first) + { + uint64_t word = bits[offset] ^ mask; + + size_t n = (count < first ? count : first); + word &= (~0ULL >> (64 - n)) << (lo % 64); + + if (word) + { + return offset * 64 + bitscan__ctz64(word); + } + offset += 1; + count -= n; + } + +#if defined(_M_AMD64) || defined(__x86_64__) + while (count >= 128) + { + __m128i words = _mm_loadu_si128((const __m128i*)&bits[offset]); + __m128i cmp = _mm_cmpeq_epi32(words, _mm_set1_epi32((uint32_t)mask)); + uint16_t m = 1 + (uint16_t)_mm_movemask_epi8(cmp); + if (m) + { + size_t n = bitscan__ctz32(m) / 8; + + uint64_t word = bits[offset + n] ^ mask; + return offset * 64 + n * 64 + bitscan__ctz64(word); + } + + offset += 2; + count -= 128; + } +#endif + + while (count >= 64) + { + uint64_t word = bits[offset] ^ mask; + if (word) + { + return offset * 64 + bitscan__ctz64(word); + } + offset += 1; + count -= 64; + } + + if (count) + { + uint64_t word = bits[offset] ^ mask; + word |= ~0ULL << count; + + if (word) + { + return offset * 64 + bitscan__ctz64(word); + } + } + +#endif + + return hi; +} + +size_t bitscan_msb_index32(const uint32_t* bits, size_t lo, size_t hi, int bit) +{ +#if 0 + + // reference implementation + for (size_t i = hi; i-- > lo; ) + { + uint32_t word = bits[i/32]; + if (((word >> (i%32)) & 1) == bit) + { + return i; + } + } + +#else + + if (lo >= hi) + { + return hi; + } + + // to be able to use "clz" for "find last zero bit" + // do xor with this mask, it will flip all bit values + // thus changing operation to "find last set bit" - which allows to use "clz" + const uint32_t mask = bit ? 0U : ~0U; + + size_t count = hi - lo; + size_t offset = (hi - 1) / 32; + size_t first = hi % 32; + + if (first) // first < 32, how many max bits to use in bottom of first word + { + uint32_t word = bits[offset] ^ mask; + + // first = hi%32 = 14 + // count = 10 + // in cases count > first, clamp it to first + // + // 3 2 1 0 + // 10987654321098765432109876543210 bit index + // ..................xxxxxxxxxx.... + // ^ ^ + // | | + // +- count -+ count = 10 bits to process + // | + // +-------------- first = 14 + + size_t n = (count < first ? count : first); + word &= (1U << first) - (1U << (first - n)); + + if (word) + { + return offset * 32 + bitscan__lindex32(word); + } + offset -= 1; + count -= n; + } + +#if defined(_M_AMD64) || defined(__x86_64__) + while (count >= 128) + { + __m128i words = _mm_loadu_si128((const __m128i*)&bits[offset - 3]); + __m128i cmp = _mm_cmpeq_epi32(words, _mm_set1_epi32(mask)); + + // if all 16-bytes of "words" are same as mask, then m will be 0xffff + uint16_t m = (uint16_t)_mm_movemask_epi8(cmp); + + if ((uint16_t)(m + 1)) + { + // find word index to use [0,4) + size_t n = bitscan__lindex32((uint16_t)~m) / 4; + + uint32_t word = bits[offset + n - 3] ^ mask; + return offset * 32 + (n - 3) * 32 + bitscan__lindex32(word); + } + offset -= 4; + count -= 128; + } +#endif + + while (count >= 32) + { + uint32_t word = bits[offset] ^ mask; + if (word) + { + return offset * 32 + bitscan__lindex32(word); + } + offset -= 1; + count -= 32; + } + + if (count) // now count < 32, how many bits to process in top of last word + { + uint32_t word = bits[offset] ^ mask; + + // use last count bits, rest of bits are masked out to 0 + word &= ~0U << (32 - count); + + if (word) + { + return offset * 32 + bitscan__lindex32(word); + } + } + +#endif + + return hi; +} + +size_t bitscan_msb_index64(const uint64_t* bits, size_t lo, size_t hi, int bit) +{ +#if 0 + + // reference implementation + for (size_t i = hi; i-- > lo; ) + { + uint64_t word = bits[i/64]; + if (((word >> (i%64)) & 1) == bit) + { + return i; + } + } + +#else + + if (lo >= hi) + { + return hi; + } + + const uint64_t mask = bit ? 0ULL : ~0ULL; + + size_t count = hi - lo; + size_t offset = (hi - 1) / 64; + size_t first = hi % 64; + + if (first) + { + uint64_t word = bits[offset] ^ mask; + + size_t n = (count < first ? count : first); + word &= (1ULL << first) - (1ULL << (first - n)); + + if (word) + { + return offset * 64 + bitscan__lindex64(word); + } + offset -= 1; + count -= n; + } + +#if defined(_M_AMD64) || defined(__x86_64__) + while (count >= 128) + { + __m128i words = _mm_loadu_si128((const __m128i*)&bits[offset - 1]); + __m128i cmp = _mm_cmpeq_epi32(words, _mm_set1_epi32(mask)); + uint16_t m = (uint16_t)_mm_movemask_epi8(cmp); + if ((uint16_t)(m + 1)) + { + size_t n = bitscan__lindex32((uint16_t)~m) / 8; + + uint64_t word = bits[offset + n - 1] ^ mask; + return offset * 64 + (n - 1) * 64 + bitscan__lindex64(word); + } + offset -= 2; + count -= 128; + } +#endif + + while (count >= 64) + { + uint64_t word = bits[offset] ^ mask; + if (word) + { + return offset * 64 + bitscan__lindex64(word); + } + offset -= 1; + count -= 64; + } + + if (count) + { + uint64_t word = bits[offset] ^ mask; + word &= ~0ULL << (64 - count); + + if (word) + { + return offset * 64 + bitscan__lindex64(word); + } + } + +#endif + + return hi; +} + +#if defined(BITSCAN_TEST) + +#include +#include + +static uint64_t random64() +{ + static uint64_t x = 0, w = 0; + x = x*x + (w += 0xb5ad4eceda1ce2a9); + return x = (x>>32) | (x<<32); +} + +#define BIT32_SET(v,i) v[(i)/32] |= 1U << ((i)%32) +#define BIT32_CLEAR(v,i) v[(i)/32] &= ~(1U << ((i)%32)) + +#define BIT64_SET(v,i) v[(i)/64] |= 1ULL << ((i)%64) +#define BIT64_CLEAR(v,i) v[(i)/64] &= ~(1ULL << ((i)%64)) + +#define MIN(a,b) ((a) < (b) ? (a) : (b)) +#define MAX(a,b) ((a) > (b) ? (a) : (b)) + +int main() +{ + enum { kBitCount = 512 }; + enum { kRngCount = 32 }; + + static const size_t offsets[] = + { + 0, 1, 10, 31, 32, 33, 50, 63, 64, 65, 130, kBitCount-65, kBitCount-64, kBitCount-63, kBitCount-33, kBitCount-32, kBitCount-31, kBitCount-1, kBitCount, + }; + size_t offset_count = sizeof(offsets) / sizeof(offsets[0]); + + for (size_t n=0; n<=kBitCount; n++) + { + printf("."); fflush(stdout); + + // bitscan_lsb_index32 + + for (size_t r=0; r= n) continue; + + size_t r; + size_t expected = lo >= hi || hi < n ? hi : n; + + // first n bits are 0, then bit 1 when possible + for (size_t i=0; i= hi || lo >= kBitCount-n ? hi : MIN(hi-1, kBitCount-1-n); + + // last n bits are 0, then bit 1 when possible + for (size_t i=kBitCount-n; i= n) continue; + + size_t r; + size_t expected = lo >= hi || hi < n ? hi : n; + + // first n bits are 0, then bit 1 when possible + for (size_t i = 0; i < n; i++) BIT64_CLEAR(v, i); + if (n < kBitCount) BIT64_SET(v, n); + + r = bitscan_lsb_index64(v, lo, hi, 1); + assert(r == expected); + + // first n bits are 1, then bit 0 when possible + for (size_t i = 0; i < n; i++) BIT64_SET(v, i); + if (n < kBitCount) BIT64_CLEAR(v, n); + + r = bitscan_lsb_index64(v, lo, hi, 0); + assert(r == expected); + } + } + + // bitscan_msb_index64 + + for (size_t r = 0; r < kRngCount; r++) + { + uint64_t v[kBitCount / 64]; + for (size_t i = 0; i < kBitCount / 64; i++) v[i] = random64(); + + for (size_t olo = 0; olo < offset_count; olo++) + for (size_t ohi = 0; ohi < offset_count; ohi++) + { + size_t lo = offsets[olo]; + size_t hi = offsets[ohi]; + if (hi < kBitCount - n) continue; + + size_t r; + size_t expected = lo >= hi || lo >= kBitCount-n ? hi : MIN(hi-1, kBitCount-1-n); + + // last n bits are 0, then bit 1 when possible + for (size_t i = kBitCount - n; i < kBitCount; i++) BIT64_CLEAR(v, i); + if (n < kBitCount) BIT64_SET(v, kBitCount-n-1); + + r = bitscan_msb_index64(v, lo, hi, 1); + assert(r == expected); + + // last n bits are 1, then bit 0 when possible + for (size_t i = kBitCount - n; i < kBitCount; i++) BIT64_SET(v, i); + if (n < kBitCount) BIT64_CLEAR(v, kBitCount-n-1); + + r = bitscan_msb_index64(v, lo, hi, 0); + assert(r == expected); + } + } + } + printf(" OK!\n"); +} + +#endif diff --git a/src/third_party/martins_hash/sha1.h b/src/third_party/martins_hash/sha1.h index 5fd59362..b61e36dd 100644 --- a/src/third_party/martins_hash/sha1.h +++ b/src/third_party/martins_hash/sha1.h @@ -137,17 +137,17 @@ static inline int sha1_cpuid(void) SHA1_TARGET("ssse3,sha") static void sha1_process_shani(uint32_t* state, const uint8_t* block, size_t count) { - // in SHA1 each round has two parts: + // in sha1 each round has two parts: // 1) calculate message schedule dwords in w[i] // 2) do round functions to update a/b/c/d/e state values using w[i] - // w[i] in first 16 rounds is just loaded from block bytes, as 32-bit big-endian load + // initial message schedule is loaded as 32-bit big-endian 16 dwords // for next rounds it is done as: // w[i] = ROL(w[i-3] ^ w[i-8] ^ w[i-14] ^ w[i-16]) // where ROL(x) = 32-bit rotate left by 1 - // this means it is possible to keep just the last 16 of w's in circular buffer + // this means it is possible to keep just the last 16 of w's // and every new w calculated will need to update 1 to 3 previous w's // unrolling round calculations by 4 we get: @@ -156,7 +156,7 @@ static void sha1_process_shani(uint32_t* state, const uint8_t* block, size_t cou // w[i+2] = ROL(w[i-1] ^ w[i-6] ^ w[i-12] ^ w[i-14]) // w[i+3] = ROL(w[i+0] ^ w[i-5] ^ w[i-11] ^ w[i-13]) - // now if you store 4 w[..] values in 128-bit SSE register, then + // now use 4 w[..] values in 128-bit SSE register W(i), then // W(i) = ROL( r0 ^ r1 ^ r2 ^ r3 ) // with caveat that r0 lane 3 depends on W(i) lane 0 @@ -166,43 +166,31 @@ static void sha1_process_shani(uint32_t* state, const uint8_t* block, size_t cou // r2 = [ w[i-11], w[i-12], w[i-13], w[i-14] ] // r3 = [ w[i-13], w[i-14], w[i-15], w[i-16] ] - // in each 4-round i'th step it is possible to incrementally update new W(..) value when - // keeping W(i) values in 4 xmm element circular buffer + // in each 4-round i'th step it is possible to incrementally update W's that will be + // used in later rounds - // rounds i>0: W(i-1) = r2 ^ r3 = _mm_sha1msg1_epu32(W(i-1), W(i)) - // rounds i>1: W(i-2) = W(i-2) ^ r1 = _mm_xor_si128 (W(i-2), W(i)) - // rounds i>2: W(i-3) = ROL(W(i-3) ^ r0) = _mm_sha1msg2_epu32(W(i-3), W(i)) - // then the new W(i) can be used in round function calculations - // _mm_sha1msg2_epu32 correctly handles r0 lane 3 dependency on W(i) lane 0 + // rounds i>0: m3 = r2 ^ r3 = _mm_sha1msg1_epu32(m3, m0) + // rounds i>1: m2 = m2 ^ r1 = _mm_xor_si128 (m2, m0) + // rounds i>2: m1 = ROL(m1 ^ r0) = _mm_sha1msg2_epu32(m1, m0) + // then the new m0 can be used in round function calculations + // _mm_sha1msg2_epu32 correctly handles r0 lane 3 dependency on lane 0 output // to perform round functions on two SIMD registers with state as: - // abcd = [a,b,c,d] - // e0 = [e,0,0,0] - // use the following code to get next abcd/e0 state 4 rounds at a time: - - // tmp = _mm_sha1nexte_epu32(e0, W(i)) // rotates e0 and adds message dwords - // abcd_next = _mm_sha1rnds4_epu32(abcd, tmp, Fn) // with Fn = 0..3 round function selection - // e0_next = abcd - - // sha1nexte is not needed on first round, just regular add32(e0, W(i)) should be used - // after last round need to do extra rotation, which sha1nexte takes care when adding to last_e0 - - #define W(i) w[(i)%4] + // s0 = [a,b,c,d] + // s1 = [e,0,0,0] + // use _mm_sha1rnds4_epu32 and _mm_sha1nexte_epu32 ops and swap both state variables between rounds // 4 wide round calculations - #define QROUND(i) do { \ - /* first 4 rounds load input block */ \ - if (i < 4) W(i) = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[i]), bswap); \ - /* update message schedule */ \ - if (i > 0 && i < 17) W(i-1) = _mm_sha1msg1_epu32(W(i-1), W(i)); \ - if (i > 1 && i < 18) W(i-2) = _mm_xor_si128 (W(i-2), W(i)); \ - if (i > 2 && i < 19) W(i-3) = _mm_sha1msg2_epu32(W(i-3), W(i)); \ - /* calculate E plus message schedule */ \ - if (i == 0) tmp = _mm_add_epi32 (e0, W(i)); \ - if (i != 0) tmp = _mm_sha1nexte_epu32(e0, W(i)); \ - /* 4 round functions */ \ - e0 = abcd; \ - abcd = _mm_sha1rnds4_epu32(abcd, tmp, i/5); \ + #define QROUND(i,s0,s1,m0,m1,m2,m3) do { \ + /* update message schedule */ \ + if (i > 0 && i < 17) m3 = _mm_sha1msg1_epu32(m3, m0); \ + if (i > 1 && i < 18) m2 = _mm_xor_si128 (m2, m0); \ + if (i > 2 && i < 19) m1 = _mm_sha1msg2_epu32(m1, m0); \ + /* calculate E plus message schedule */ \ + if (i == 0) tmp = _mm_add_epi32 (s1, m0); \ + if (i != 0) tmp = _mm_sha1nexte_epu32(s1, m0); \ + /* 4 round functions */ \ + s1 = _mm_sha1rnds4_epu32(s0, tmp, i/5); \ } while(0) const __m128i* buffer = (const __m128i*)block; @@ -213,63 +201,67 @@ static void sha1_process_shani(uint32_t* state, const uint8_t* block, size_t cou const __m128i bswap = _mm_setr_epi8(15,14,13,12, 11,10,9,8, 7,6,5,4, 3,2,1,0); // load initial state - __m128i abcd = _mm_loadu_si128((const __m128i*)state); // [d,c,b,a] - __m128i e0 = _mm_loadu_si32(&state[4]); // [0,0,0,e] + __m128i s0 = _mm_loadu_si128((const __m128i*)state); // [d,c,b,a] + __m128i s1 = _mm_loadu_si32(&state[4]); // [0,0,0,e] // flip dword order, to what sha1 instructions use - abcd = _mm_shuffle_epi32(abcd, _MM_SHUFFLE(0,1,2,3)); // [a,b,c,d] where a is in the top lane - e0 = _mm_slli_si128(e0, 12); // [e,0,0,0] where e is in top lane + s0 = _mm_shuffle_epi32(s0, _MM_SHUFFLE(0,1,2,3)); // [a,b,c,d] + s1 = _mm_shuffle_epi32(s1, _MM_SHUFFLE(0,1,2,3)); // [e,0,0,0] do { // remember current state - __m128i last_abcd = abcd; - __m128i last_e0 = e0; + __m128i last0 = s0; + __m128i last1 = s1; - __m128i tmp, w[4]; + // load initial message schedule, 64-byte block + __m128i w0 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[0]), bswap); + __m128i w1 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[1]), bswap); + __m128i w2 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[2]), bswap); + __m128i w3 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[3]), bswap); + buffer += 4; - QROUND(0); - QROUND(1); - QROUND(2); - QROUND(3); - QROUND(4); + __m128i tmp; - QROUND(5); - QROUND(6); - QROUND(7); - QROUND(8); - QROUND(9); + QROUND( 0, s0, s1, w0, w1, w2, w3); + QROUND( 1, s1, s0, w1, w2, w3, w0); + QROUND( 2, s0, s1, w2, w3, w0, w1); + QROUND( 3, s1, s0, w3, w0, w1, w2); + QROUND( 4, s0, s1, w0, w1, w2, w3); - QROUND(10); - QROUND(11); - QROUND(12); - QROUND(13); - QROUND(14); + QROUND( 5, s1, s0, w1, w2, w3, w0); + QROUND( 6, s0, s1, w2, w3, w0, w1); + QROUND( 7, s1, s0, w3, w0, w1, w2); + QROUND( 8, s0, s1, w0, w1, w2, w3); + QROUND( 9, s1, s0, w1, w2, w3, w0); - QROUND(15); - QROUND(16); - QROUND(17); - QROUND(18); - QROUND(19); + QROUND(10, s0, s1, w2, w3, w0, w1); + QROUND(11, s1, s0, w3, w0, w1, w2); + QROUND(12, s0, s1, w0, w1, w2, w3); + QROUND(13, s1, s0, w1, w2, w3, w0); + QROUND(14, s0, s1, w2, w3, w0, w1); + + QROUND(15, s1, s0, w3, w0, w1, w2); + QROUND(16, s0, s1, w0, w1, w2, w3); + QROUND(17, s1, s0, w1, w2, w3, w0); + QROUND(18, s0, s1, w2, w3, w0, w1); + QROUND(19, s1, s0, w3, w0, w1, w2); // update next state - abcd = _mm_add_epi32(abcd, last_abcd); - e0 = _mm_sha1nexte_epu32(e0, last_e0); - - buffer += 4; + s0 = _mm_add_epi32 (s0, last0); + s1 = _mm_sha1nexte_epu32(s1, last1); } while (--count); // restore dword order - abcd = _mm_shuffle_epi32(abcd, _MM_SHUFFLE(0,1,2,3)); - e0 = _mm_shuffle_epi32(e0, _MM_SHUFFLE(0,1,2,3)); + s0 = _mm_shuffle_epi32(s0, _MM_SHUFFLE(0,1,2,3)); + s1 = _mm_shuffle_epi32(s1, _MM_SHUFFLE(0,1,2,3)); // save the new state - _mm_storeu_si128((__m128i*)state, abcd); - _mm_storeu_si32(&state[4], e0); + _mm_storeu_si128((__m128i*)state, s0); + _mm_storeu_si32(&state[4], s1); #undef QROUND - #undef W } #endif // defined(__x86_64__) || defined(_M_AMD64) @@ -343,21 +335,16 @@ static void sha1_process_arm64(uint32_t* state, const uint8_t* block, size_t cou { // code here is similar to x64 shani implementation - // message array is 16 element circular buffer - // each iteration updates 4 rounds at the same time - - #define W(i) w[(i)%4] - - #define QROUND(i,F,k) do { \ - /* update message schedule */ \ - if (i >= 4) W(i) = vsha1su0q_u32(W(i), W(i-3), W(i-2)); \ - if (i >= 4) W(i) = vsha1su1q_u32(W(i), W(i-1)); \ - /* add round constant */ \ - uint32x4_t tmp = vaddq_u32(W(i), k); \ - /* 4 round functions */ \ - uint32_t x = e0; \ - e0 = vsha1h_u32(vgetq_lane_u32(abcd, 0)); \ - abcd = F(abcd, x, tmp); \ + #define QROUND(i,m0,m1,m2,m3,k,F) do { \ + /* update message schedule */ \ + if (i >= 4) m0 = vsha1su0q_u32(m0, m1, m2); \ + if (i >= 4) m0 = vsha1su1q_u32(m0, m3); \ + /* add round constant */ \ + uint32x4_t tmp = vaddq_u32(m0, k); \ + /* 4 round functions */ \ + uint32_t e = vgetq_lane_u32(s0, 0); \ + s0 = F(s0, s1, tmp); \ + s1 = vsha1h_u32(e); \ } while (0) const uint32x4_t k0 = vdupq_n_u32(0x5a827999); @@ -365,64 +352,61 @@ static void sha1_process_arm64(uint32_t* state, const uint8_t* block, size_t cou const uint32x4_t k2 = vdupq_n_u32(0x8f1bbcdc); const uint32x4_t k3 = vdupq_n_u32(0xca62c1d6); - // load state - a,b,c,d,e - uint32x4_t abcd = vld1q_u32(state); - uint32_t e0 = state[4]; + // load initial state + uint32x4_t s0 = vld1q_u32(state); // [d,c,b,a] + uint32_t s1 = state[4]; // e do { // remember current state - uint32x4_t last_abcd = abcd; - uint32_t last_e0 = e0; + uint32x4_t last0 = s0; + uint32_t last1 = s1; - // load 64-byte block and advance pointer to next block + // load initial message schedule, 64-byte block uint8x16x4_t msg = vld1q_u8_x4(block); block += SHA1_BLOCK_SIZE; - uint32x4_t w[4]; + // reverse the byte order in each 32-bit lane + uint32x4_t w0 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[0])); + uint32x4_t w1 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[1])); + uint32x4_t w2 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[2])); + uint32x4_t w3 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[3])); - // for first 16 w's reverse the byte order in each 32-bit lane - W(0) = vreinterpretq_u32_u8(vrev32q_u8(msg.val[0])); - W(1) = vreinterpretq_u32_u8(vrev32q_u8(msg.val[1])); - W(2) = vreinterpretq_u32_u8(vrev32q_u8(msg.val[2])); - W(3) = vreinterpretq_u32_u8(vrev32q_u8(msg.val[3])); + QROUND( 0, w0, w1, w2, w3, k0, vsha1cq_u32); + QROUND( 1, w1, w2, w3, w0, k0, vsha1cq_u32); + QROUND( 2, w2, w3, w0, w1, k0, vsha1cq_u32); + QROUND( 3, w3, w0, w1, w2, k0, vsha1cq_u32); + QROUND( 4, w0, w1, w2, w3, k0, vsha1cq_u32); - QROUND( 0, vsha1cq_u32, k0); - QROUND( 1, vsha1cq_u32, k0); - QROUND( 2, vsha1cq_u32, k0); - QROUND( 3, vsha1cq_u32, k0); - QROUND( 4, vsha1cq_u32, k0); + QROUND( 5, w1, w2, w3, w0, k1, vsha1pq_u32); + QROUND( 6, w2, w3, w0, w1, k1, vsha1pq_u32); + QROUND( 7, w3, w0, w1, w2, k1, vsha1pq_u32); + QROUND( 8, w0, w1, w2, w3, k1, vsha1pq_u32); + QROUND( 9, w1, w2, w3, w0, k1, vsha1pq_u32); - QROUND( 5, vsha1pq_u32, k1); - QROUND( 6, vsha1pq_u32, k1); - QROUND( 7, vsha1pq_u32, k1); - QROUND( 8, vsha1pq_u32, k1); - QROUND( 9, vsha1pq_u32, k1); + QROUND(10, w2, w3, w0, w1, k2, vsha1mq_u32); + QROUND(11, w3, w0, w1, w2, k2, vsha1mq_u32); + QROUND(12, w0, w1, w2, w3, k2, vsha1mq_u32); + QROUND(13, w1, w2, w3, w0, k2, vsha1mq_u32); + QROUND(14, w2, w3, w0, w1, k2, vsha1mq_u32); - QROUND(10, vsha1mq_u32, k2); - QROUND(11, vsha1mq_u32, k2); - QROUND(12, vsha1mq_u32, k2); - QROUND(13, vsha1mq_u32, k2); - QROUND(14, vsha1mq_u32, k2); - - QROUND(15, vsha1pq_u32, k3); - QROUND(16, vsha1pq_u32, k3); - QROUND(17, vsha1pq_u32, k3); - QROUND(18, vsha1pq_u32, k3); - QROUND(19, vsha1pq_u32, k3); + QROUND(15, w3, w0, w1, w2, k3, vsha1pq_u32); + QROUND(16, w0, w1, w2, w3, k3, vsha1pq_u32); + QROUND(17, w1, w2, w3, w0, k3, vsha1pq_u32); + QROUND(18, w2, w3, w0, w1, k3, vsha1pq_u32); + QROUND(19, w3, w0, w1, w2, k3, vsha1pq_u32); // update next state - abcd = vaddq_u32(abcd, last_abcd); - e0 += last_e0; + s0 = vaddq_u32(s0, last0); + s1 += last1; } while (--count); // save state - vst1q_u32(state, abcd); - state[4] = e0; + vst1q_u32(state, s0); + state[4] = s1; #undef QROUND - #undef W } #endif // defined(__aarch64__) || defined(_M_ARM64) @@ -452,7 +436,7 @@ static void sha1_process(uint32_t* state, const uint8_t* block, size_t count) #define F3(x,y,z) (0x8f1bbcdc + ((x & y) | (z & (x | y)))) #define F4(x,y,z) (0xca62c1d6 + (x ^ y ^ z)) - #define W(i) w[(i)%16] + #define W(i) w[(i+16)%16] #define ROUND(i,a,b,c,d,e,F) do \ { \ diff --git a/src/third_party/martins_hash/sha256.h b/src/third_party/martins_hash/sha256.h index b70a72a0..56cbc5c5 100644 --- a/src/third_party/martins_hash/sha256.h +++ b/src/third_party/martins_hash/sha256.h @@ -167,9 +167,7 @@ static void sha256_process_shani(uint32_t* state, const uint8_t* block, size_t c { // similar way how sha1 works in with shani - // first 16 rounds loads message schedule dwords as 32-bit big endian values - - // for next rounds message schedule is prepared as: + // rounds message schedule is updated as: // w[i] = SSig1(w[i-2]) + w[i-7] + SSig0(w[i-15]) + w[i-16] // unrolled by 4: @@ -190,32 +188,22 @@ static void sha256_process_shani(uint32_t* state, const uint8_t* block, size_t c // r2 = [ w[i-12], w[i-13], w[i-14], w[i-15] ] // r3 = [ w[i-13], w[i-14], w[i-15], w[i-16] ] - // rN's can be calculated from previous W(..) values: - // r0 from W(i) - // r1 from _mm_alignr_epi8(W(i), W(i-1), 4) - // r2 from W(i-1) and W(i) - // r3 from W(i-1) - - // rounds i>2: W(i-3) = _mm_sha256msg2_epu32(_mm_add_epi32( W(i-3), _mm_alignr_epi8(W(i), W(i-1), 4) ), W(i)) - // rounds i>0: W(i-1) = _mm_sha256msg1_epu32(W(i-1), W(i)) + // rounds i>2: m1 = _mm_sha256msg2_epu32(_mm_add_epi32(m1, _mm_alignr_epi8(m0, m3, 4) ), m0) + // rounds i>0: m3 = _mm_sha256msg1_epu32(m3, m0) // round functions are done with _mm_sha256rnds2_epu32 which performs it for 2 rounds - // thus repeat it two times, as input use W(i) + K(i) - message schedule added with sha256 constants - - #define W(i) w[(i)%4] + // thus repeat it two times, as input use m0 + K(i) - message schedule added with sha256 constants // 4 wide round calculations - #define QROUND(i) do { \ - /* first 4 rounds load input block */ \ - if (i < 4) W(i) = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[i]), bswap); \ - /* update message schedule */ \ - if (i > 2 && i < 15) W(i-3) = _mm_sha256msg2_epu32(_mm_add_epi32(W(i-3), _mm_alignr_epi8(W(i), W(i-1), 4)), W(i)); \ - if (i > 0 && i < 13) W(i-1) = _mm_sha256msg1_epu32(W(i-1), W(i)); \ - /* add round constants */ \ - __m128i tmp = _mm_add_epi32(W(i), _mm_loadu_si128((const __m128i*)&SHA256_K[4*i])); \ - /* 4 round functions */ \ - state1 = _mm_sha256rnds2_epu32(state1, state0, tmp); \ - state0 = _mm_sha256rnds2_epu32(state0, state1, _mm_shuffle_epi32(tmp, _MM_SHUFFLE(0,0,3,2))); \ + #define QROUND(i,m0,m1,m2,m3) do { \ + /* update message schedule */ \ + if (i > 2 && i < 15) m1 = _mm_sha256msg2_epu32(_mm_add_epi32(m1, _mm_alignr_epi8(m0, m3, 4)), m0); \ + if (i > 0 && i < 13) m3 = _mm_sha256msg1_epu32(m3, m0); \ + /* add round constants */ \ + __m128i tmp = _mm_add_epi32(m0, _mm_loadu_si128((const __m128i*)&SHA256_K[4*i])); \ + /* 4 round functions */ \ + s1 = _mm_sha256rnds2_epu32(s1, s0, tmp); \ + s0 = _mm_sha256rnds2_epu32(s0, s1, _mm_shuffle_epi32(tmp, _MM_SHUFFLE(0,0,3,2))); \ } while(0) const __m128i* buffer = (const __m128i*)block; @@ -228,52 +216,57 @@ static void sha256_process_shani(uint32_t* state, const uint8_t* block, size_t c __m128i efgh = _mm_shuffle_epi32(_mm_loadu_si128((const __m128i*)&state[4]), _MM_SHUFFLE(0,1,2,3)); // [e,f,g,h] // dword order for sha256rnds2 instruction - __m128i state0 = _mm_unpackhi_epi64(efgh, abcd); // [a,b,e,f] - __m128i state1 = _mm_unpacklo_epi64(efgh, abcd); // [c,d,g,h] + __m128i s0 = _mm_unpackhi_epi64(efgh, abcd); // [a,b,e,f] + __m128i s1 = _mm_unpacklo_epi64(efgh, abcd); // [c,d,g,h] do { // remember current state - __m128i last0 = state0; - __m128i last1 = state1; + __m128i last0 = s0; + __m128i last1 = s1; - __m128i w[4]; + // load initial message schedule, 64-byte block + __m128i w0 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[0]), bswap); + __m128i w1 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[1]), bswap); + __m128i w2 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[2]), bswap); + __m128i w3 = _mm_shuffle_epi8(_mm_loadu_si128(&buffer[3]), bswap); + buffer += 4; - QROUND( 0); - QROUND( 1); - QROUND( 2); - QROUND( 3); - QROUND( 4); - QROUND( 5); - QROUND( 6); - QROUND( 7); - QROUND( 8); - QROUND( 9); - QROUND(10); - QROUND(11); - QROUND(12); - QROUND(13); - QROUND(14); - QROUND(15); + QROUND( 0, w0, w1, w2, w3); + QROUND( 1, w1, w2, w3, w0); + QROUND( 2, w2, w3, w0, w1); + QROUND( 3, w3, w0, w1, w2); + + QROUND( 4, w0, w1, w2, w3); + QROUND( 5, w1, w2, w3, w0); + QROUND( 6, w2, w3, w0, w1); + QROUND( 7, w3, w0, w1, w2); + + QROUND( 8, w0, w1, w2, w3); + QROUND( 9, w1, w2, w3, w0); + QROUND(10, w2, w3, w0, w1); + QROUND(11, w3, w0, w1, w2); + + QROUND(12, w0, w1, w2, w3); + QROUND(13, w1, w2, w3, w0); + QROUND(14, w2, w3, w0, w1); + QROUND(15, w3, w0, w1, w2); // update next state - state0 = _mm_add_epi32(state0, last0); - state1 = _mm_add_epi32(state1, last1); - - buffer += 4; + s0 = _mm_add_epi32(s0, last0); + s1 = _mm_add_epi32(s1, last1); } while (--count); // restore dword order - abcd = _mm_unpackhi_epi64(state1, state0); - efgh = _mm_unpacklo_epi64(state1, state0); + abcd = _mm_unpackhi_epi64(s1, s0); + efgh = _mm_unpacklo_epi64(s1, s0); // save the new state _mm_storeu_si128((__m128i*)&state[0], _mm_shuffle_epi32(abcd, _MM_SHUFFLE(0,1,2,3))); _mm_storeu_si128((__m128i*)&state[4], _mm_shuffle_epi32(efgh, _MM_SHUFFLE(0,1,2,3))); #undef QROUND - #undef W } #endif // defined(__x86_64__) || defined(_M_AMD64) @@ -344,70 +337,71 @@ static inline int sha256_cpuid(void) SHA256_TARGET static void sha256_process_arm64(uint32_t* state, const uint8_t* block, size_t count) { - // code here is similar to x64 shani implementation - - #define W(i) w[(i)%4] - - #define QROUND(i) do { \ - /* load 16 round constants */ \ - if ((i % 4) == 0) rk = vld1q_u32_x4(&SHA256_K[4*i]); \ - /* first 4 rounds reverse byte order in each 32-bit lane of input block */ \ - if (i < 4) W(i) = vreinterpretq_u32_u8(vrev32q_u8(msg.val[i])); \ - /* update message schedule */ \ - if (i >= 4) W(i) = vsha256su0q_u32(W(i), W(i-3)); \ - if (i >= 4) W(i) = vsha256su1q_u32(W(i), W(i-2), W(i-1)); \ - /* add round constants */ \ - uint32x4_t tmp = vaddq_u32(W(i), rk.val[i%4]); \ - /* 4 round functions */ \ - uint32x4_t x = vstate.val[0]; \ - vstate.val[0] = vsha256hq_u32(vstate.val[0], vstate.val[1], tmp); \ - vstate.val[1] = vsha256h2q_u32(vstate.val[1], x, tmp); \ + #define QROUND(i,m0,m1,m2,m3) do { \ + /* update message schedule */ \ + if (i >= 4) m0 = vsha256su1q_u32(vsha256su0q_u32(m0, m1), m2, m3); \ + /* add round constants */ \ + uint32x4_t tmp = vaddq_u32(m0, rk.val[i%4]); \ + /* 4 round functions */ \ + uint32x4x2_t x = s; \ + s.val[0] = vsha256hq_u32(x.val[0], x.val[1], tmp); \ + s.val[1] = vsha256h2q_u32(x.val[1], x.val[0], tmp); \ } while (0) // load initial state - uint32x4x2_t vstate = vld1q_u32_x2(state); + uint32x4x2_t s = vld1q_u32_x2(state); do { // remember current state - uint32x4x2_t vlast = vstate; + uint32x4x2_t last = s; - // load 64-byte block + // load initial message schedule, 64-byte block uint8x16x4_t msg = vld1q_u8_x4(block); + block += SHA256_BLOCK_SIZE; + + // reverse the byte order in each 32-bit lane + uint32x4_t w0 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[0])); + uint32x4_t w1 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[1])); + uint32x4_t w2 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[2])); + uint32x4_t w3 = vreinterpretq_u32_u8(vrev32q_u8(msg.val[3])); uint32x4x4_t rk; - uint32x4_t w[4]; - QROUND( 0); - QROUND( 1); - QROUND( 2); - QROUND( 3); - QROUND( 4); - QROUND( 5); - QROUND( 6); - QROUND( 7); - QROUND( 8); - QROUND( 9); - QROUND(10); - QROUND(11); - QROUND(12); - QROUND(13); - QROUND(14); - QROUND(15); + rk = vld1q_u32_x4(&SHA256_K[0]); + QROUND( 0, w0, w1, w2, w3); + QROUND( 1, w1, w2, w3, w0); + QROUND( 2, w2, w3, w0, w1); + QROUND( 3, w3, w0, w1, w2); + + rk = vld1q_u32_x4(&SHA256_K[16]); + QROUND( 4, w0, w1, w2, w3); + QROUND( 5, w1, w2, w3, w0); + QROUND( 6, w2, w3, w0, w1); + QROUND( 7, w3, w0, w1, w2); + + rk = vld1q_u32_x4(&SHA256_K[32]); + QROUND( 8, w0, w1, w2, w3); + QROUND( 9, w1, w2, w3, w0); + QROUND(10, w2, w3, w0, w1); + QROUND(11, w3, w0, w1, w2); + + rk = vld1q_u32_x4(&SHA256_K[48]); + QROUND(12, w0, w1, w2, w3); + QROUND(13, w1, w2, w3, w0); + QROUND(14, w2, w3, w0, w1); + QROUND(15, w3, w0, w1, w2); // update next state - vstate.val[0] = vaddq_u32(vstate.val[0], vlast.val[0]); - vstate.val[1] = vaddq_u32(vstate.val[1], vlast.val[1]); - - block += SHA256_BLOCK_SIZE; + s.val[0] = vaddq_u32(s.val[0], last.val[0]); + s.val[1] = vaddq_u32(s.val[1], last.val[1]); } while (--count); // save the new state - vst1q_u32_x2(state, vstate); + vst1q_u32_x2(state, s); #undef QROUND - #undef W } #endif // defined(__aarch64__) || defined(_M_ARM64) @@ -475,6 +469,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND( 5, d, e, f, g, h, a, b, c); ROUND( 6, c, d, e, f, g, h, a, b); ROUND( 7, b, c, d, e, f, g, h, a); + ROUND( 8, a, b, c, d, e, f, g, h); ROUND( 9, h, a, b, c, d, e, f, g); ROUND(10, g, h, a, b, c, d, e, f); @@ -483,6 +478,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(13, d, e, f, g, h, a, b, c); ROUND(14, c, d, e, f, g, h, a, b); ROUND(15, b, c, d, e, f, g, h, a); + ROUND(16, a, b, c, d, e, f, g, h); ROUND(17, h, a, b, c, d, e, f, g); ROUND(18, g, h, a, b, c, d, e, f); @@ -491,6 +487,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(21, d, e, f, g, h, a, b, c); ROUND(22, c, d, e, f, g, h, a, b); ROUND(23, b, c, d, e, f, g, h, a); + ROUND(24, a, b, c, d, e, f, g, h); ROUND(25, h, a, b, c, d, e, f, g); ROUND(26, g, h, a, b, c, d, e, f); @@ -499,6 +496,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(29, d, e, f, g, h, a, b, c); ROUND(30, c, d, e, f, g, h, a, b); ROUND(31, b, c, d, e, f, g, h, a); + ROUND(32, a, b, c, d, e, f, g, h); ROUND(33, h, a, b, c, d, e, f, g); ROUND(34, g, h, a, b, c, d, e, f); @@ -507,6 +505,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(37, d, e, f, g, h, a, b, c); ROUND(38, c, d, e, f, g, h, a, b); ROUND(39, b, c, d, e, f, g, h, a); + ROUND(40, a, b, c, d, e, f, g, h); ROUND(41, h, a, b, c, d, e, f, g); ROUND(42, g, h, a, b, c, d, e, f); @@ -515,6 +514,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(45, d, e, f, g, h, a, b, c); ROUND(46, c, d, e, f, g, h, a, b); ROUND(47, b, c, d, e, f, g, h, a); + ROUND(48, a, b, c, d, e, f, g, h); ROUND(49, h, a, b, c, d, e, f, g); ROUND(50, g, h, a, b, c, d, e, f); @@ -523,6 +523,7 @@ static void sha256_process(uint32_t* state, const uint8_t* block, size_t count) ROUND(53, d, e, f, g, h, a, b, c); ROUND(54, c, d, e, f, g, h, a, b); ROUND(55, b, c, d, e, f, g, h, a); + ROUND(56, a, b, c, d, e, f, g, h); ROUND(57, h, a, b, c, d, e, f, g); ROUND(58, g, h, a, b, c, d, e, f); diff --git a/src/third_party/martins_hash/sha512.h b/src/third_party/martins_hash/sha512.h index 4a48c6f1..10a4cb9e 100644 --- a/src/third_party/martins_hash/sha512.h +++ b/src/third_party/martins_hash/sha512.h @@ -15,9 +15,9 @@ #define SHA512_BLOCK_SIZE 128 typedef struct { - uint8_t buffer[SHA512_BLOCK_SIZE]; - uint64_t count[2]; - uint64_t state[8]; + uint8_t buffer[SHA512_BLOCK_SIZE]; + uint64_t count[2]; + uint64_t state[8]; } sha512_ctx; typedef sha512_ctx sha384_ctx; @@ -62,52 +62,52 @@ static inline void sha384_finish(sha384_ctx* ctx, uint8_t digest[SHA384_DIGEST_S # define SHA512_SET64BE(ptr,x) *((__unaligned uint64_t*)(ptr)) = _byteswap_uint64(x) #else # define SHA512_GET64BE(ptr) \ -( \ -((uint64_t)((ptr)[0]) << 56) | \ -((uint64_t)((ptr)[1]) << 48) | \ -((uint64_t)((ptr)[2]) << 40) | \ -((uint64_t)((ptr)[3]) << 32) | \ -((uint64_t)((ptr)[4]) << 24) | \ -((uint64_t)((ptr)[5]) << 16) | \ -((uint64_t)((ptr)[6]) << 8) | \ -((uint64_t)((ptr)[7]) << 0) \ -) + ( \ + ((uint64_t)((ptr)[0]) << 56) | \ + ((uint64_t)((ptr)[1]) << 48) | \ + ((uint64_t)((ptr)[2]) << 40) | \ + ((uint64_t)((ptr)[3]) << 32) | \ + ((uint64_t)((ptr)[4]) << 24) | \ + ((uint64_t)((ptr)[5]) << 16) | \ + ((uint64_t)((ptr)[6]) << 8) | \ + ((uint64_t)((ptr)[7]) << 0) \ + ) # define SHA512_SET64BE(ptr, x) do \ -{ \ -(ptr)[0] = (uint8_t)((x) >> 56); \ -(ptr)[1] = (uint8_t)((x) >> 48); \ -(ptr)[2] = (uint8_t)((x) >> 40); \ -(ptr)[3] = (uint8_t)((x) >> 32); \ -(ptr)[4] = (uint8_t)((x) >> 24); \ -(ptr)[5] = (uint8_t)((x) >> 16); \ -(ptr)[6] = (uint8_t)((x) >> 8); \ -(ptr)[7] = (uint8_t)((x) >> 0); \ -} \ -while (0) + { \ + (ptr)[0] = (uint8_t)((x) >> 56); \ + (ptr)[1] = (uint8_t)((x) >> 48); \ + (ptr)[2] = (uint8_t)((x) >> 40); \ + (ptr)[3] = (uint8_t)((x) >> 32); \ + (ptr)[4] = (uint8_t)((x) >> 24); \ + (ptr)[5] = (uint8_t)((x) >> 16); \ + (ptr)[6] = (uint8_t)((x) >> 8); \ + (ptr)[7] = (uint8_t)((x) >> 0); \ + } \ + while (0) #endif static const uint64_t SHA512_K[80] = { - 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, - 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, - 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, - 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694, - 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, - 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, - 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, - 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70, - 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, - 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, - 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, - 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, - 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, - 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, - 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, - 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, - 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, - 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b, - 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, - 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817, + 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, + 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, + 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, + 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694, + 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, + 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, + 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4, + 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70, + 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, + 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b, + 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30, + 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8, + 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, + 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, + 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec, + 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b, + 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, + 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b, + 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, + 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817, }; #if defined(__x86_64__) || defined(_M_AMD64) @@ -134,129 +134,131 @@ static const uint64_t SHA512_K[80] = SHA512_TARGET("xsave") static inline int sha512_cpuid(void) { - static int cpuid; - - int result = cpuid; - if (result == 0) - { - int info[4]; - - SHA512_CPUID(1, info); - int has_xsave = info[2] & (1 << 26); - - int has_ymm = 0; - if (has_xsave) + static int cpuid; + + int result = cpuid; + if (result == 0) { - uint64_t xcr0 = SHA512_XGETBV(0); - has_ymm = xcr0 & (1 << 2); + int info[4]; + + SHA512_CPUID(1, info); + int has_xsave = info[2] & (1 << 26); + + int has_ymm = 0; + if (has_xsave) + { + uint64_t xcr0 = SHA512_XGETBV(0); + has_ymm = xcr0 & (1 << 2); + } + + SHA512_CPUID_EX(7, 0, info); + int has_avx2 = info[1] & (1 << 5); + + SHA512_CPUID_EX(7, 1, info); + int has_sha512 = info[0] & (1 << 0); + + result |= SHA512_CPUID_INIT; + if (has_ymm && has_avx2 && has_sha512) + { + result |= SHA512_CPUID_VSHA512; + } + + cpuid = result; } - - SHA512_CPUID_EX(7, 0, info); - int has_avx2 = info[1] & (1 << 5); - - SHA512_CPUID_EX(7, 1, info); - int has_sha512 = info[0] & (1 << 0); - - result |= SHA512_CPUID_INIT; - if (has_ymm && has_avx2 && has_sha512) - { - result |= SHA512_CPUID_VSHA512; - } - - cpuid = result; - } - + #if defined(SHA512_CPUID_MASK) - result &= SHA512_CPUID_MASK; + result &= SHA512_CPUID_MASK; #endif - - return result; + + return result; } SHA512_TARGET("avx2,sha512") static void sha512_process_vsha512(uint64_t* state, const uint8_t* block, size_t count) { - // pretty much same way how sha256 works, only with avx2 registers and 64-bit additions - // state is kept as two 256-bit ymm registers (8 qwords) - - // message qwords are loaded as 64-bit big-endian values - -#define W(i) w[(i)%4] - - // 4 wide round calculations -#define QROUND(i) do { \ -/* first 4 rounds load input block */ \ -if (i < 4) W(i) = _mm256_shuffle_epi8(_mm256_loadu_si256(&buffer[i]), bswap); \ -/* update message schedule */ \ -if (i > 2 && i < 19) W(i-3) = _mm256_sha512msg2_epi64(_mm256_add_epi64(W(i-3), _mm256_permute4x64_epi64(_mm256_blend_epi32(W(i-1), W(i), 3), _MM_SHUFFLE(0,3,2,1))), W(i)); \ -if (i > 0 && i < 17) W(i-1) = _mm256_sha512msg1_epi64(W(i-1), _mm256_castsi256_si128(W(i))); \ -/* add round constants */ \ -__m256i tmp = _mm256_add_epi64(W(i), _mm256_loadu_si256((const __m256i*)&SHA512_K[4*i])); \ -/* round functions */ \ -state1 = _mm256_sha512rnds2_epi64(state1, state0, _mm256_castsi256_si128(tmp)); \ -state0 = _mm256_sha512rnds2_epi64(state0, state1, _mm256_extracti128_si256(tmp, 1)); \ -} while(0) - - const __m256i* buffer = (const __m256i*)block; - - // to byteswap when doing big-ending load for message qwords - const __m256i bswap = _mm256_broadcastsi128_si256(_mm_setr_epi8(7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8)); - - // load initial state - __m256i abcd = _mm256_permute4x64_epi64(_mm256_loadu_si256((const __m256i*)&state[0]), _MM_SHUFFLE(0,1,2,3)); // [a,b,c,d] - __m256i efgh = _mm256_permute4x64_epi64(_mm256_loadu_si256((const __m256i*)&state[4]), _MM_SHUFFLE(0,1,2,3)); // [e,f,g,h] - - // qword order for vsha512rnds2 instruction - __m256i state0 = _mm256_permute2x128_si256(efgh, abcd, (3 << 4) | 1); // [a,b,e,f] - __m256i state1 = _mm256_permute2x128_si256(efgh, abcd, (2 << 4) | 0); // [c,d,g,h] - - do - { - // remember current state - __m256i last0 = state0; - __m256i last1 = state1; - - __m256i w[4]; - - QROUND(0); - QROUND(1); - QROUND(2); - QROUND(3); - QROUND(4); - QROUND(5); - QROUND(6); - QROUND(7); - QROUND(8); - QROUND(9); - QROUND(10); - QROUND(11); - QROUND(12); - QROUND(13); - QROUND(14); - QROUND(15); - QROUND(16); - QROUND(17); - QROUND(18); - QROUND(19); - - // update next state - state0 = _mm256_add_epi64(state0, last0); - state1 = _mm256_add_epi64(state1, last1); - - buffer += 4; - } - while (--count); - - // restore qword order - abcd = _mm256_permute2x128_si256(state1, state0, (3 << 4) | 1); - efgh = _mm256_permute2x128_si256(state1, state0, (2 << 4) | 0); - - // save the new state - _mm256_storeu_si256((__m256i*)&state[0], _mm256_permute4x64_epi64(abcd, _MM_SHUFFLE(0,1,2,3))); - _mm256_storeu_si256((__m256i*)&state[4], _mm256_permute4x64_epi64(efgh, _MM_SHUFFLE(0,1,2,3))); - -#undef QROUND -#undef W + // pretty much same way how sha256 works, only with avx2 registers and 64-bit additions + // state is kept as two 256-bit ymm registers (8 qwords) + + // message qwords are loaded as 64-bit big-endian values + + // 4 wide round calculations + #define QROUND(i,m0,m1,m2,m3) do { \ + /* update message schedule */ \ + if (i > 2 && i < 19) m1 = _mm256_sha512msg2_epi64(_mm256_add_epi64(m1, _mm256_permute4x64_epi64(_mm256_blend_epi32(m3, m0, 3), _MM_SHUFFLE(0,3,2,1))), m0); \ + if (i > 0 && i < 17) m3 = _mm256_sha512msg1_epi64(m3, _mm256_castsi256_si128(m0)); \ + /* add round constants */ \ + __m256i tmp = _mm256_add_epi64(m0, _mm256_loadu_si256((const __m256i*)&SHA512_K[4*i])); \ + /* 4 round functions */ \ + s1 = _mm256_sha512rnds2_epi64(s1, s0, _mm256_castsi256_si128(tmp)); \ + s0 = _mm256_sha512rnds2_epi64(s0, s1, _mm256_extracti128_si256(tmp, 1)); \ + } while(0) + + const __m256i* buffer = (const __m256i*)block; + + // to byteswap when doing big-ending load for message qwords + const __m256i bswap = _mm256_broadcastsi128_si256(_mm_setr_epi8(7,6,5,4,3,2,1,0, 15,14,13,12,11,10,9,8)); + + // load initial state + __m256i abcd = _mm256_permute4x64_epi64(_mm256_loadu_si256((const __m256i*)&state[0]), _MM_SHUFFLE(0,1,2,3)); // [a,b,c,d] + __m256i efgh = _mm256_permute4x64_epi64(_mm256_loadu_si256((const __m256i*)&state[4]), _MM_SHUFFLE(0,1,2,3)); // [e,f,g,h] + + // qword order for vsha512rnds2 instruction + __m256i s0 = _mm256_permute2x128_si256(efgh, abcd, 0x31); // [a,b,e,f] + __m256i s1 = _mm256_permute2x128_si256(efgh, abcd, 0x20); // [c,d,g,h] + + do + { + // remember current state + __m256i last0 = s0; + __m256i last1 = s1; + + // load initial message schedule, 128-byte block + __m256i w0 = _mm256_shuffle_epi8(_mm256_loadu_si256(&buffer[0]), bswap); + __m256i w1 = _mm256_shuffle_epi8(_mm256_loadu_si256(&buffer[1]), bswap); + __m256i w2 = _mm256_shuffle_epi8(_mm256_loadu_si256(&buffer[2]), bswap); + __m256i w3 = _mm256_shuffle_epi8(_mm256_loadu_si256(&buffer[3]), bswap); + buffer += 4; + + QROUND( 0, w0, w1, w2, w3); + QROUND( 1, w1, w2, w3, w0); + QROUND( 2, w2, w3, w0, w1); + QROUND( 3, w3, w0, w1, w2); + + QROUND( 4, w0, w1, w2, w3); + QROUND( 5, w1, w2, w3, w0); + QROUND( 6, w2, w3, w0, w1); + QROUND( 7, w3, w0, w1, w2); + + QROUND( 8, w0, w1, w2, w3); + QROUND( 9, w1, w2, w3, w0); + QROUND(10, w2, w3, w0, w1); + QROUND(11, w3, w0, w1, w2); + + QROUND(12, w0, w1, w2, w3); + QROUND(13, w1, w2, w3, w0); + QROUND(14, w2, w3, w0, w1); + QROUND(15, w3, w0, w1, w2); + + QROUND(16, w0, w1, w2, w3); + QROUND(17, w1, w2, w3, w0); + QROUND(18, w2, w3, w0, w1); + QROUND(19, w3, w0, w1, w2); + + // update next state + s0 = _mm256_add_epi64(s0, last0); + s1 = _mm256_add_epi64(s1, last1); + } + while (--count); + + // restore qword order + abcd = _mm256_permute2x128_si256(s1, s0, 0x31); + efgh = _mm256_permute2x128_si256(s1, s0, 0x20); + + // save the new state + _mm256_storeu_si256((__m256i*)&state[0], _mm256_permute4x64_epi64(abcd, _MM_SHUFFLE(0,1,2,3))); + _mm256_storeu_si256((__m256i*)&state[4], _mm256_permute4x64_epi64(efgh, _MM_SHUFFLE(0,1,2,3))); + + #undef QROUND } #endif // defined(__x86_64__) || defined(_M_AMD64) @@ -293,153 +295,172 @@ state0 = _mm256_sha512rnds2_epi64(state0, state1, _mm256_extracti128_si256(tmp, static inline int sha512_cpuid(void) { #if defined(__ARM_FEATURE_SHA512) - int result = SHA512_CPUID_ARM64; + int result = SHA512_CPUID_ARM64; #else - static int cpuid; - - int result = cpuid; - if (result == 0) - { + static int cpuid; + + int result = cpuid; + if (result == 0) + { #if defined(_WIN32) - // no sha512 bit in IsProcessorFeaturePresent function :( - uint64_t bits; - DWORD bitsize = sizeof(bits); - RegGetValueA(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", "CP 4030", RRF_RT_QWORD | RRF_ZEROONFAILURE, NULL, &bits, &bitsize); - // bits from ID_AA64ISAR0_EL1 - int has_arm64 = ((bits >> 12) & 0xf) == 0x2; + // no sha512 bit in IsProcessorFeaturePresent function :( + uint64_t bits; + DWORD bitsize = sizeof(bits); + RegGetValueA(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", "CP 4030", RRF_RT_QWORD | RRF_ZEROONFAILURE, NULL, &bits, &bitsize); + // bits from ID_AA64ISAR0_EL1 + int has_arm64 = ((bits >> 12) & 0xf) == 0x2; #elif defined(__linux__) - unsigned long hwcap = getauxval(AT_HWCAP); - int has_arm64 = hwcap & HWCAP_SHA512; + unsigned long hwcap = getauxval(AT_HWCAP); + int has_arm64 = hwcap & HWCAP_SHA512; #elif defined(__APPLE__) - int value = 0; - size_t valuelen = sizeof(value); - int has_arm64 = sysctlbyname("hw.optional.arm.FEAT_SHA512", &value, &valuelen, NULL, 0) == 0 && value != 0; + int value = 0; + size_t valuelen = sizeof(value); + int has_arm64 = sysctlbyname("hw.optional.arm.FEAT_SHA512", &value, &valuelen, NULL, 0) == 0 && value != 0; #else #error unknown platform #endif - result |= SHA512_CPUID_INIT; - if (has_arm64) - { - result |= SHA512_CPUID_ARM64; + result |= SHA512_CPUID_INIT; + if (has_arm64) + { + result |= SHA512_CPUID_ARM64; + } + + cpuid = result; } - - cpuid = result; - } #endif - + #if defined(SHA512_CPUID_MASK) - result &= SHA512_CPUID_MASK; + result &= SHA512_CPUID_MASK; #endif - - return result; + + return result; } SHA512_TARGET static void sha512_process_arm64(uint64_t* state, const uint8_t* block, size_t count) { -#define W(i) w[(i)%8] -#define S(i) vstate.val[3-(i)%4] - -#define DROUND(i) do { \ -/* load 8 round constants */ \ -if ((i % 4) == 0) rk = vld1q_u64_x4(&SHA512_K[2*i]); \ -/* first 8 rounds reverse byte order in each 64-bit lane of input block */ \ -if (i < 8) W(i) = vreinterpretq_u64_u8(vrev64q_u8(msg[(i/4)%2].val[i%4])); \ -/* update message schedule for next rounds */ \ -if (i >= 8) W(i) = vsha512su1q_u64(vsha512su0q_u64(W(i), W(i-7)), W(i-1), vextq_u64(W(i-4), W(i-3), 1)); \ -/* add round constants */ \ -uint64x2_t tmp = vaddq_u64(W(i), rk.val[i%4]); \ -/* 2 round functions */ \ -uint64x2_t x0 = vaddq_u64(vextq_u64(tmp, tmp, 1), S(i+0)); \ -uint64x2_t x1 = vsha512hq_u64(x0, vextq_u64(S(i+1), S(i+0), 1), vextq_u64(S(i+2), S(i+1), 1)); \ -S(i+0) = vsha512h2q_u64(x1, S(i+2), S(i+3)); \ -S(i+2) = vaddq_u64(S(i+2), x1); \ -} while (0) - - // load initial state - uint64x2x4_t vstate = vld1q_u64_x4(state); - - do - { - // remember current state - uint64x2x4_t vlast = vstate; - - // load 128-byte block - uint8x16x4_t msg[2] = + #define DROUND(i, ab,cd,ef,gh, m0,m1,m2,m3,m4,m5,m6,m7) do { \ + /* update message schedule */ \ + if (i >= 8) m0 = vsha512su1q_u64(vsha512su0q_u64(m0, m1), m7, vextq_u64(m4, m5, 1)); \ + /* add round constants */ \ + uint64x2_t tmp = vaddq_u64(m0, rk.val[i%4]); \ + /* 2 round functions */ \ + uint64x2_t gf = vextq_u64(ef, gh, 1); \ + uint64x2_t ed = vextq_u64(cd, ef, 1); \ + uint64x2_t x0 = vaddq_u64(vextq_u64(tmp, tmp, 1), gh); \ + uint64x2_t x1 = vsha512hq_u64(x0, gf, ed); \ + gh = vsha512h2q_u64(x1, cd, ab); \ + cd = vaddq_u64(cd, x1); \ + } while (0) + + // load initial state + uint64x2x4_t s = vld1q_u64_x4(state); + uint64x2_t s0 = s.val[0]; // ab + uint64x2_t s1 = s.val[1]; // cd + uint64x2_t s2 = s.val[2]; // ef + uint64x2_t s3 = s.val[3]; // gh + + do { - vld1q_u8_x4(block + 0 * 16), - vld1q_u8_x4(block + 4 * 16), - }; - - uint64x2x4_t rk; - uint64x2_t w[8]; - - DROUND( 0); - DROUND( 1); - DROUND( 2); - DROUND( 3); - - DROUND( 4); - DROUND( 5); - DROUND( 6); - DROUND( 7); - - DROUND( 8); - DROUND( 9); - DROUND(10); - DROUND(11); - - DROUND(12); - DROUND(13); - DROUND(14); - DROUND(15); - - DROUND(16); - DROUND(17); - DROUND(18); - DROUND(19); - - DROUND(20); - DROUND(21); - DROUND(22); - DROUND(23); - - DROUND(24); - DROUND(25); - DROUND(26); - DROUND(27); - - DROUND(28); - DROUND(29); - DROUND(30); - DROUND(31); - - DROUND(32); - DROUND(33); - DROUND(34); - DROUND(35); - - DROUND(36); - DROUND(37); - DROUND(38); - DROUND(39); - - // update next state - vstate.val[0] = vaddq_u64(vstate.val[0], vlast.val[0]); - vstate.val[1] = vaddq_u64(vstate.val[1], vlast.val[1]); - vstate.val[2] = vaddq_u64(vstate.val[2], vlast.val[2]); - vstate.val[3] = vaddq_u64(vstate.val[3], vlast.val[3]); - - block += SHA512_BLOCK_SIZE; - } - while (--count); - - // save the new state - vst1q_u64_x4(state, vstate); - -#undef DROUND -#undef S -#undef W + // remember current state + uint64x2_t last0 = s0; + uint64x2_t last1 = s1; + uint64x2_t last2 = s2; + uint64x2_t last3 = s3; + + // load initial message schedule, 128-byte block + uint8x16x4_t msg0 = vld1q_u8_x4(block + 0 * 16); + uint8x16x4_t msg1 = vld1q_u8_x4(block + 4 * 16); + block += SHA512_BLOCK_SIZE; + + // reverse the byte order in each 64-bit lane + uint64x2_t w0 = vreinterpretq_u64_u8(vrev64q_u8(msg0.val[0])); + uint64x2_t w1 = vreinterpretq_u64_u8(vrev64q_u8(msg0.val[1])); + uint64x2_t w2 = vreinterpretq_u64_u8(vrev64q_u8(msg0.val[2])); + uint64x2_t w3 = vreinterpretq_u64_u8(vrev64q_u8(msg0.val[3])); + uint64x2_t w4 = vreinterpretq_u64_u8(vrev64q_u8(msg1.val[0])); + uint64x2_t w5 = vreinterpretq_u64_u8(vrev64q_u8(msg1.val[1])); + uint64x2_t w6 = vreinterpretq_u64_u8(vrev64q_u8(msg1.val[2])); + uint64x2_t w7 = vreinterpretq_u64_u8(vrev64q_u8(msg1.val[3])); + + uint64x2x4_t rk; + + rk = vld1q_u64_x4(&SHA512_K[0]); + DROUND( 0, s0,s1,s2,s3, w0,w1,w2,w3,w4,w5,w6,w7); + DROUND( 1, s3,s0,s1,s2, w1,w2,w3,w4,w5,w6,w7,w0); + DROUND( 2, s2,s3,s0,s1, w2,w3,w4,w5,w6,w7,w0,w1); + DROUND( 3, s1,s2,s3,s0, w3,w4,w5,w6,w7,w0,w1,w2); + + rk = vld1q_u64_x4(&SHA512_K[8]); + DROUND( 4, s0,s1,s2,s3, w4,w5,w6,w7,w0,w1,w2,w3); + DROUND( 5, s3,s0,s1,s2, w5,w6,w7,w0,w1,w2,w3,w4); + DROUND( 6, s2,s3,s0,s1, w6,w7,w0,w1,w2,w3,w4,w5); + DROUND( 7, s1,s2,s3,s0, w7,w0,w1,w2,w3,w4,w5,w6); + + rk = vld1q_u64_x4(&SHA512_K[16]); + DROUND( 8, s0,s1,s2,s3, w0,w1,w2,w3,w4,w5,w6,w7); + DROUND( 9, s3,s0,s1,s2, w1,w2,w3,w4,w5,w6,w7,w0); + DROUND(10, s2,s3,s0,s1, w2,w3,w4,w5,w6,w7,w0,w1); + DROUND(11, s1,s2,s3,s0, w3,w4,w5,w6,w7,w0,w1,w2); + + rk = vld1q_u64_x4(&SHA512_K[24]); + DROUND(12, s0,s1,s2,s3, w4,w5,w6,w7,w0,w1,w2,w3); + DROUND(13, s3,s0,s1,s2, w5,w6,w7,w0,w1,w2,w3,w4); + DROUND(14, s2,s3,s0,s1, w6,w7,w0,w1,w2,w3,w4,w5); + DROUND(15, s1,s2,s3,s0, w7,w0,w1,w2,w3,w4,w5,w6); + + rk = vld1q_u64_x4(&SHA512_K[32]); + DROUND(16, s0,s1,s2,s3, w0,w1,w2,w3,w4,w5,w6,w7); + DROUND(17, s3,s0,s1,s2, w1,w2,w3,w4,w5,w6,w7,w0); + DROUND(18, s2,s3,s0,s1, w2,w3,w4,w5,w6,w7,w0,w1); + DROUND(19, s1,s2,s3,s0, w3,w4,w5,w6,w7,w0,w1,w2); + + rk = vld1q_u64_x4(&SHA512_K[40]); + DROUND(20, s0,s1,s2,s3, w4,w5,w6,w7,w0,w1,w2,w3); + DROUND(21, s3,s0,s1,s2, w5,w6,w7,w0,w1,w2,w3,w4); + DROUND(22, s2,s3,s0,s1, w6,w7,w0,w1,w2,w3,w4,w5); + DROUND(23, s1,s2,s3,s0, w7,w0,w1,w2,w3,w4,w5,w6); + + rk = vld1q_u64_x4(&SHA512_K[48]); + DROUND(24, s0,s1,s2,s3, w0,w1,w2,w3,w4,w5,w6,w7); + DROUND(25, s3,s0,s1,s2, w1,w2,w3,w4,w5,w6,w7,w0); + DROUND(26, s2,s3,s0,s1, w2,w3,w4,w5,w6,w7,w0,w1); + DROUND(27, s1,s2,s3,s0, w3,w4,w5,w6,w7,w0,w1,w2); + + rk = vld1q_u64_x4(&SHA512_K[56]); + DROUND(28, s0,s1,s2,s3, w4,w5,w6,w7,w0,w1,w2,w3); + DROUND(29, s3,s0,s1,s2, w5,w6,w7,w0,w1,w2,w3,w4); + DROUND(30, s2,s3,s0,s1, w6,w7,w0,w1,w2,w3,w4,w5); + DROUND(31, s1,s2,s3,s0, w7,w0,w1,w2,w3,w4,w5,w6); + + rk = vld1q_u64_x4(&SHA512_K[64]); + DROUND(32, s0,s1,s2,s3, w0,w1,w2,w3,w4,w5,w6,w7); + DROUND(33, s3,s0,s1,s2, w1,w2,w3,w4,w5,w6,w7,w0); + DROUND(34, s2,s3,s0,s1, w2,w3,w4,w5,w6,w7,w0,w1); + DROUND(35, s1,s2,s3,s0, w3,w4,w5,w6,w7,w0,w1,w2); + + rk = vld1q_u64_x4(&SHA512_K[72]); + DROUND(36, s0,s1,s2,s3, w4,w5,w6,w7,w0,w1,w2,w3); + DROUND(37, s3,s0,s1,s2, w5,w6,w7,w0,w1,w2,w3,w4); + DROUND(38, s2,s3,s0,s1, w6,w7,w0,w1,w2,w3,w4,w5); + DROUND(39, s1,s2,s3,s0, w7,w0,w1,w2,w3,w4,w5,w6); + + // update next state + s0 = vaddq_u64(s0, last0); + s1 = vaddq_u64(s1, last1); + s2 = vaddq_u64(s2, last2); + s3 = vaddq_u64(s3, last3); + } + while (--count); + + // save the new state + s.val[0] = s0; + s.val[1] = s1; + s.val[2] = s2; + s.val[3] = s3; + vst1q_u64_x4(state, s); + + #undef DROUND } #endif // defined(__aarch64__) || defined(_M_ARM64) @@ -447,255 +468,264 @@ S(i+2) = vaddq_u64(S(i+2), x1); static void sha512_process(uint64_t* state, const uint8_t* block, size_t count) { #if defined(__x86_64__) || defined(_M_AMD64) - int cpuid = sha512_cpuid(); - if (cpuid & SHA512_CPUID_VSHA512) - { - sha512_process_vsha512(state, block, count); - return; - } + int cpuid = sha512_cpuid(); + if (cpuid & SHA512_CPUID_VSHA512) + { + sha512_process_vsha512(state, block, count); + return; + } #endif - + #if defined(__aarch64__) || defined(_M_ARM64) - int cpuid = sha512_cpuid(); - if (cpuid & SHA512_CPUID_ARM64) - { - sha512_process_arm64(state, block, count); - return; - } + int cpuid = sha512_cpuid(); + if (cpuid & SHA512_CPUID_ARM64) + { + sha512_process_arm64(state, block, count); + return; + } #endif - -#define Ch(x,y,z) ((x & (y ^ z)) ^ z) -#define Maj(x,y,z) ((x & y) | (z & (x | y))) - -#define BSig0(x) (SHA512_ROR64(x, 28) ^ SHA512_ROR64(x, 34) ^ SHA512_ROR64(x, 39)) -#define BSig1(x) (SHA512_ROR64(x, 14) ^ SHA512_ROR64(x, 18) ^ SHA512_ROR64(x, 41)) -#define SSig0(x) (SHA512_ROR64(x, 1) ^ SHA512_ROR64(x, 8) ^ (x >> 7)) -#define SSig1(x) (SHA512_ROR64(x, 19) ^ SHA512_ROR64(x, 61) ^ (x >> 6)) - -#define W(i) w[(i+16)%16] - -#define ROUND(i,a,b,c,d,e,f,g,h) do \ -{ \ -uint64_t w0; \ -if (i < 16) W(i) = w0 = SHA512_GET64BE(block + i*sizeof(uint64_t)); \ -if (i >= 16) W(i) = w0 = SSig1(W(i-2)) + W(i-7) + SSig0(W(i-15)) + W(i-16); \ - \ -uint64_t t1 = h + BSig1(e) + Ch(e,f,g) + SHA512_K[i] + w0; \ -uint64_t t2 = BSig0(a) + Maj(a,b,c); \ -d += t1; \ -h = t1 + t2; \ -} while (0) - - do - { - uint64_t a = state[0]; - uint64_t b = state[1]; - uint64_t c = state[2]; - uint64_t d = state[3]; - uint64_t e = state[4]; - uint64_t f = state[5]; - uint64_t g = state[6]; - uint64_t h = state[7]; - - uint64_t w[16]; - - ROUND( 0, a, b, c, d, e, f, g, h); - ROUND( 1, h, a, b, c, d, e, f, g); - ROUND( 2, g, h, a, b, c, d, e, f); - ROUND( 3, f, g, h, a, b, c, d, e); - ROUND( 4, e, f, g, h, a, b, c, d); - ROUND( 5, d, e, f, g, h, a, b, c); - ROUND( 6, c, d, e, f, g, h, a, b); - ROUND( 7, b, c, d, e, f, g, h, a); - ROUND( 8, a, b, c, d, e, f, g, h); - ROUND( 9, h, a, b, c, d, e, f, g); - ROUND(10, g, h, a, b, c, d, e, f); - ROUND(11, f, g, h, a, b, c, d, e); - ROUND(12, e, f, g, h, a, b, c, d); - ROUND(13, d, e, f, g, h, a, b, c); - ROUND(14, c, d, e, f, g, h, a, b); - ROUND(15, b, c, d, e, f, g, h, a); - ROUND(16, a, b, c, d, e, f, g, h); - ROUND(17, h, a, b, c, d, e, f, g); - ROUND(18, g, h, a, b, c, d, e, f); - ROUND(19, f, g, h, a, b, c, d, e); - ROUND(20, e, f, g, h, a, b, c, d); - ROUND(21, d, e, f, g, h, a, b, c); - ROUND(22, c, d, e, f, g, h, a, b); - ROUND(23, b, c, d, e, f, g, h, a); - ROUND(24, a, b, c, d, e, f, g, h); - ROUND(25, h, a, b, c, d, e, f, g); - ROUND(26, g, h, a, b, c, d, e, f); - ROUND(27, f, g, h, a, b, c, d, e); - ROUND(28, e, f, g, h, a, b, c, d); - ROUND(29, d, e, f, g, h, a, b, c); - ROUND(30, c, d, e, f, g, h, a, b); - ROUND(31, b, c, d, e, f, g, h, a); - ROUND(32, a, b, c, d, e, f, g, h); - ROUND(33, h, a, b, c, d, e, f, g); - ROUND(34, g, h, a, b, c, d, e, f); - ROUND(35, f, g, h, a, b, c, d, e); - ROUND(36, e, f, g, h, a, b, c, d); - ROUND(37, d, e, f, g, h, a, b, c); - ROUND(38, c, d, e, f, g, h, a, b); - ROUND(39, b, c, d, e, f, g, h, a); - ROUND(40, a, b, c, d, e, f, g, h); - ROUND(41, h, a, b, c, d, e, f, g); - ROUND(42, g, h, a, b, c, d, e, f); - ROUND(43, f, g, h, a, b, c, d, e); - ROUND(44, e, f, g, h, a, b, c, d); - ROUND(45, d, e, f, g, h, a, b, c); - ROUND(46, c, d, e, f, g, h, a, b); - ROUND(47, b, c, d, e, f, g, h, a); - ROUND(48, a, b, c, d, e, f, g, h); - ROUND(49, h, a, b, c, d, e, f, g); - ROUND(50, g, h, a, b, c, d, e, f); - ROUND(51, f, g, h, a, b, c, d, e); - ROUND(52, e, f, g, h, a, b, c, d); - ROUND(53, d, e, f, g, h, a, b, c); - ROUND(54, c, d, e, f, g, h, a, b); - ROUND(55, b, c, d, e, f, g, h, a); - ROUND(56, a, b, c, d, e, f, g, h); - ROUND(57, h, a, b, c, d, e, f, g); - ROUND(58, g, h, a, b, c, d, e, f); - ROUND(59, f, g, h, a, b, c, d, e); - ROUND(60, e, f, g, h, a, b, c, d); - ROUND(61, d, e, f, g, h, a, b, c); - ROUND(62, c, d, e, f, g, h, a, b); - ROUND(63, b, c, d, e, f, g, h, a); - ROUND(64, a, b, c, d, e, f, g, h); - ROUND(65, h, a, b, c, d, e, f, g); - ROUND(66, g, h, a, b, c, d, e, f); - ROUND(67, f, g, h, a, b, c, d, e); - ROUND(68, e, f, g, h, a, b, c, d); - ROUND(69, d, e, f, g, h, a, b, c); - ROUND(70, c, d, e, f, g, h, a, b); - ROUND(71, b, c, d, e, f, g, h, a); - ROUND(72, a, b, c, d, e, f, g, h); - ROUND(73, h, a, b, c, d, e, f, g); - ROUND(74, g, h, a, b, c, d, e, f); - ROUND(75, f, g, h, a, b, c, d, e); - ROUND(76, e, f, g, h, a, b, c, d); - ROUND(77, d, e, f, g, h, a, b, c); - ROUND(78, c, d, e, f, g, h, a, b); - ROUND(79, b, c, d, e, f, g, h, a); - - state[0] += a; - state[1] += b; - state[2] += c; - state[3] += d; - state[4] += e; - state[5] += f; - state[6] += g; - state[7] += h; - - block += SHA512_BLOCK_SIZE; - } - while (--count); - -#undef ROUND -#undef W -#undef Ch -#undef Maj -#undef BSig0 -#undef BSig1 -#undef SSig0 -#undef SSig1 + + #define Ch(x,y,z) ((x & (y ^ z)) ^ z) + #define Maj(x,y,z) ((x & y) | (z & (x | y))) + + #define BSig0(x) (SHA512_ROR64(x, 28) ^ SHA512_ROR64(x, 34) ^ SHA512_ROR64(x, 39)) + #define BSig1(x) (SHA512_ROR64(x, 14) ^ SHA512_ROR64(x, 18) ^ SHA512_ROR64(x, 41)) + #define SSig0(x) (SHA512_ROR64(x, 1) ^ SHA512_ROR64(x, 8) ^ (x >> 7)) + #define SSig1(x) (SHA512_ROR64(x, 19) ^ SHA512_ROR64(x, 61) ^ (x >> 6)) + + #define W(i) w[(i+16)%16] + + #define ROUND(i,a,b,c,d,e,f,g,h) do \ + { \ + uint64_t w0; \ + if (i < 16) W(i) = w0 = SHA512_GET64BE(block + i*sizeof(uint64_t)); \ + if (i >= 16) W(i) = w0 = SSig1(W(i-2)) + W(i-7) + SSig0(W(i-15)) + W(i-16); \ + \ + uint64_t t1 = h + BSig1(e) + Ch(e,f,g) + SHA512_K[i] + w0; \ + uint64_t t2 = BSig0(a) + Maj(a,b,c); \ + d += t1; \ + h = t1 + t2; \ + } while (0) + + do + { + uint64_t a = state[0]; + uint64_t b = state[1]; + uint64_t c = state[2]; + uint64_t d = state[3]; + uint64_t e = state[4]; + uint64_t f = state[5]; + uint64_t g = state[6]; + uint64_t h = state[7]; + + uint64_t w[16]; + + ROUND( 0, a, b, c, d, e, f, g, h); + ROUND( 1, h, a, b, c, d, e, f, g); + ROUND( 2, g, h, a, b, c, d, e, f); + ROUND( 3, f, g, h, a, b, c, d, e); + ROUND( 4, e, f, g, h, a, b, c, d); + ROUND( 5, d, e, f, g, h, a, b, c); + ROUND( 6, c, d, e, f, g, h, a, b); + ROUND( 7, b, c, d, e, f, g, h, a); + + ROUND( 8, a, b, c, d, e, f, g, h); + ROUND( 9, h, a, b, c, d, e, f, g); + ROUND(10, g, h, a, b, c, d, e, f); + ROUND(11, f, g, h, a, b, c, d, e); + ROUND(12, e, f, g, h, a, b, c, d); + ROUND(13, d, e, f, g, h, a, b, c); + ROUND(14, c, d, e, f, g, h, a, b); + ROUND(15, b, c, d, e, f, g, h, a); + + ROUND(16, a, b, c, d, e, f, g, h); + ROUND(17, h, a, b, c, d, e, f, g); + ROUND(18, g, h, a, b, c, d, e, f); + ROUND(19, f, g, h, a, b, c, d, e); + ROUND(20, e, f, g, h, a, b, c, d); + ROUND(21, d, e, f, g, h, a, b, c); + ROUND(22, c, d, e, f, g, h, a, b); + ROUND(23, b, c, d, e, f, g, h, a); + + ROUND(24, a, b, c, d, e, f, g, h); + ROUND(25, h, a, b, c, d, e, f, g); + ROUND(26, g, h, a, b, c, d, e, f); + ROUND(27, f, g, h, a, b, c, d, e); + ROUND(28, e, f, g, h, a, b, c, d); + ROUND(29, d, e, f, g, h, a, b, c); + ROUND(30, c, d, e, f, g, h, a, b); + ROUND(31, b, c, d, e, f, g, h, a); + + ROUND(32, a, b, c, d, e, f, g, h); + ROUND(33, h, a, b, c, d, e, f, g); + ROUND(34, g, h, a, b, c, d, e, f); + ROUND(35, f, g, h, a, b, c, d, e); + ROUND(36, e, f, g, h, a, b, c, d); + ROUND(37, d, e, f, g, h, a, b, c); + ROUND(38, c, d, e, f, g, h, a, b); + ROUND(39, b, c, d, e, f, g, h, a); + + ROUND(40, a, b, c, d, e, f, g, h); + ROUND(41, h, a, b, c, d, e, f, g); + ROUND(42, g, h, a, b, c, d, e, f); + ROUND(43, f, g, h, a, b, c, d, e); + ROUND(44, e, f, g, h, a, b, c, d); + ROUND(45, d, e, f, g, h, a, b, c); + ROUND(46, c, d, e, f, g, h, a, b); + ROUND(47, b, c, d, e, f, g, h, a); + + ROUND(48, a, b, c, d, e, f, g, h); + ROUND(49, h, a, b, c, d, e, f, g); + ROUND(50, g, h, a, b, c, d, e, f); + ROUND(51, f, g, h, a, b, c, d, e); + ROUND(52, e, f, g, h, a, b, c, d); + ROUND(53, d, e, f, g, h, a, b, c); + ROUND(54, c, d, e, f, g, h, a, b); + ROUND(55, b, c, d, e, f, g, h, a); + + ROUND(56, a, b, c, d, e, f, g, h); + ROUND(57, h, a, b, c, d, e, f, g); + ROUND(58, g, h, a, b, c, d, e, f); + ROUND(59, f, g, h, a, b, c, d, e); + ROUND(60, e, f, g, h, a, b, c, d); + ROUND(61, d, e, f, g, h, a, b, c); + ROUND(62, c, d, e, f, g, h, a, b); + ROUND(63, b, c, d, e, f, g, h, a); + + ROUND(64, a, b, c, d, e, f, g, h); + ROUND(65, h, a, b, c, d, e, f, g); + ROUND(66, g, h, a, b, c, d, e, f); + ROUND(67, f, g, h, a, b, c, d, e); + ROUND(68, e, f, g, h, a, b, c, d); + ROUND(69, d, e, f, g, h, a, b, c); + ROUND(70, c, d, e, f, g, h, a, b); + ROUND(71, b, c, d, e, f, g, h, a); + + ROUND(72, a, b, c, d, e, f, g, h); + ROUND(73, h, a, b, c, d, e, f, g); + ROUND(74, g, h, a, b, c, d, e, f); + ROUND(75, f, g, h, a, b, c, d, e); + ROUND(76, e, f, g, h, a, b, c, d); + ROUND(77, d, e, f, g, h, a, b, c); + ROUND(78, c, d, e, f, g, h, a, b); + ROUND(79, b, c, d, e, f, g, h, a); + + state[0] += a; + state[1] += b; + state[2] += c; + state[3] += d; + state[4] += e; + state[5] += f; + state[6] += g; + state[7] += h; + + block += SHA512_BLOCK_SIZE; + } + while (--count); + + #undef ROUND + #undef W + #undef Ch + #undef Maj + #undef BSig0 + #undef BSig1 + #undef SSig0 + #undef SSig1 } void sha512_init(sha512_ctx* ctx) { - ctx->count[0] = 0; - ctx->count[1] = 0; - ctx->state[0] = 0x6a09e667f3bcc908; - ctx->state[1] = 0xbb67ae8584caa73b; - ctx->state[2] = 0x3c6ef372fe94f82b; - ctx->state[3] = 0xa54ff53a5f1d36f1; - ctx->state[4] = 0x510e527fade682d1; - ctx->state[5] = 0x9b05688c2b3e6c1f; - ctx->state[6] = 0x1f83d9abfb41bd6b; - ctx->state[7] = 0x5be0cd19137e2179; + ctx->count[0] = 0; + ctx->count[1] = 0; + ctx->state[0] = 0x6a09e667f3bcc908; + ctx->state[1] = 0xbb67ae8584caa73b; + ctx->state[2] = 0x3c6ef372fe94f82b; + ctx->state[3] = 0xa54ff53a5f1d36f1; + ctx->state[4] = 0x510e527fade682d1; + ctx->state[5] = 0x9b05688c2b3e6c1f; + ctx->state[6] = 0x1f83d9abfb41bd6b; + ctx->state[7] = 0x5be0cd19137e2179; } void sha512_update(sha512_ctx* ctx, const void* data, size_t size) { - const uint8_t* buffer = (const uint8_t*)data; - - size_t pending = ctx->count[0] % SHA512_BLOCK_SIZE; - ctx->count[0] += size; - ctx->count[1] += size > ctx->count[0]; - - size_t available = SHA512_BLOCK_SIZE - pending; - if (pending && size >= available) - { - memcpy(ctx->buffer + pending, buffer, available); - sha512_process(ctx->state, ctx->buffer, 1); - buffer += available; - size -= available; - pending = 0; - } - - size_t count = size / SHA512_BLOCK_SIZE; - if (count) - { - sha512_process(ctx->state, buffer, count); - buffer += count * SHA512_BLOCK_SIZE; - size -= count * SHA512_BLOCK_SIZE; - } - - memcpy(ctx->buffer + pending, buffer, size); + const uint8_t* buffer = (const uint8_t*)data; + + size_t pending = ctx->count[0] % SHA512_BLOCK_SIZE; + ctx->count[0] += size; + ctx->count[1] += size > ctx->count[0]; + + size_t available = SHA512_BLOCK_SIZE - pending; + if (pending && size >= available) + { + memcpy(ctx->buffer + pending, buffer, available); + sha512_process(ctx->state, ctx->buffer, 1); + buffer += available; + size -= available; + pending = 0; + } + + size_t count = size / SHA512_BLOCK_SIZE; + if (count) + { + sha512_process(ctx->state, buffer, count); + buffer += count * SHA512_BLOCK_SIZE; + size -= count * SHA512_BLOCK_SIZE; + } + + memcpy(ctx->buffer + pending, buffer, size); } void sha512_finish(sha512_ctx* ctx, uint8_t digest[SHA512_DIGEST_SIZE]) { - uint64_t count0 = ctx->count[0]; - uint64_t count1 = ctx->count[1]; - uint64_t bitcount[2] = { (count0 << 3), (count1 << 3) | (count0 >> 61) }; - - size_t pending = count0 % SHA512_BLOCK_SIZE; - size_t blocks = pending < SHA512_BLOCK_SIZE - sizeof(bitcount) ? 1 : 2; - - ctx->buffer[pending++] = 0x80; - - uint8_t padding[2 * SHA512_BLOCK_SIZE]; - memcpy(padding, ctx->buffer, SHA512_BLOCK_SIZE); - memset(padding + pending, 0, SHA512_BLOCK_SIZE); - SHA512_SET64BE(padding + blocks * SHA512_BLOCK_SIZE - 2*sizeof(uint64_t), bitcount[1]); - SHA512_SET64BE(padding + blocks * SHA512_BLOCK_SIZE - 1*sizeof(uint64_t), bitcount[0]); - - sha512_process(ctx->state, padding, blocks); - - for (size_t i=0; i<8; i++) - { - SHA512_SET64BE(digest + i*sizeof(uint64_t), ctx->state[i]); - } + uint64_t count0 = ctx->count[0]; + uint64_t count1 = ctx->count[1]; + uint64_t bitcount[2] = { (count0 << 3), (count1 << 3) | (count0 >> 61) }; + + size_t pending = count0 % SHA512_BLOCK_SIZE; + size_t blocks = pending < SHA512_BLOCK_SIZE - sizeof(bitcount) ? 1 : 2; + + ctx->buffer[pending++] = 0x80; + + uint8_t padding[2 * SHA512_BLOCK_SIZE]; + memcpy(padding, ctx->buffer, SHA512_BLOCK_SIZE); + memset(padding + pending, 0, SHA512_BLOCK_SIZE); + SHA512_SET64BE(padding + blocks * SHA512_BLOCK_SIZE - 2*sizeof(uint64_t), bitcount[1]); + SHA512_SET64BE(padding + blocks * SHA512_BLOCK_SIZE - 1*sizeof(uint64_t), bitcount[0]); + + sha512_process(ctx->state, padding, blocks); + + for (size_t i=0; i<8; i++) + { + SHA512_SET64BE(digest + i*sizeof(uint64_t), ctx->state[i]); + } } void sha384_init(sha384_ctx* ctx) { - ctx->count[0] = 0; - ctx->count[1] = 0; - ctx->state[0] = 0xcbbb9d5dc1059ed8; - ctx->state[1] = 0x629a292a367cd507; - ctx->state[2] = 0x9159015a3070dd17; - ctx->state[3] = 0x152fecd8f70e5939; - ctx->state[4] = 0x67332667ffc00b31; - ctx->state[5] = 0x8eb44a8768581511; - ctx->state[6] = 0xdb0c2e0d64f98fa7; - ctx->state[7] = 0x47b5481dbefa4fa4; + ctx->count[0] = 0; + ctx->count[1] = 0; + ctx->state[0] = 0xcbbb9d5dc1059ed8; + ctx->state[1] = 0x629a292a367cd507; + ctx->state[2] = 0x9159015a3070dd17; + ctx->state[3] = 0x152fecd8f70e5939; + ctx->state[4] = 0x67332667ffc00b31; + ctx->state[5] = 0x8eb44a8768581511; + ctx->state[6] = 0xdb0c2e0d64f98fa7; + ctx->state[7] = 0x47b5481dbefa4fa4; } void sha384_update(sha512_ctx* ctx, const void* data, size_t size) { - sha512_update(ctx, data, size); + sha512_update(ctx, data, size); } void sha384_finish(sha384_ctx* ctx, uint8_t digest[SHA384_DIGEST_SIZE]) { - uint8_t temp[SHA512_DIGEST_SIZE]; - sha512_finish(ctx, temp); - - memcpy(digest, temp, SHA384_DIGEST_SIZE); + uint8_t temp[SHA512_DIGEST_SIZE]; + sha512_finish(ctx, temp); + + memcpy(digest, temp, SHA384_DIGEST_SIZE); } #if defined(__clang__) diff --git a/src/third_party/martins_memfun/memfun.h b/src/third_party/martins_memfun/memfun.h new file mode 100644 index 00000000..b8ee0eb3 --- /dev/null +++ b/src/third_party/martins_memfun/memfun.h @@ -0,0 +1,2730 @@ +#pragma once + +#include +#include +#include + +#if !defined(MEM_DISABLE_ASAN) +# if defined(__SANITIZE_ADDRESS__) +# if defined(_MSC_VER) && !defined(__clang__) +# define MEM_DISABLE_ASAN __declspec(no_sanitize_address) +# else +# define MEM_DISABLE_ASAN __attribute__((no_sanitize("address"))) +# endif +# else +# define MEM_DISABLE_ASAN +# endif +#endif + +#if !defined(MEM_API) +# if defined(MEM_STATIC) +# define MEM_API static inline MEM_DISABLE_ASAN +# else +# define MEM_API extern MEM_DISABLE_ASAN +# endif +#endif + +// +// interface +// + +#ifdef __cplusplus +extern "C" { +#endif + +// compares bytes in lexicographic order and returns: +// < 0 if ptr1 comes before ptr2 +// = 0 if ptr1 contains same values as ptr2 +// > 0 if ptr1 comes after ptr2 +MEM_API int MemCompare(const void* ptr1, const void* ptr2, size_t size); + +// same as above, but case insensitive for ASCII characters +// value returned is produced as if comparing bytes converted to ASCII lowercase +MEM_API int MemCompareI(const void* ptr1, const void* ptr2, size_t size); + +// returns true if all bytes of ptr1 are the same as ptr2 +MEM_API bool MemIsEqual(const void* ptr1, const void* ptr2, size_t size); + +// returns first offset of "value" byte, or "size" if not found +MEM_API size_t MemFind(const void* ptr, size_t size, uint8_t value); + + +MEM_API int MemCompare_sse2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompare_avx2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompare_avx512(const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompare_arm64 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompare_rvv (const void* ptr1, const void* ptr2, size_t size); + + +MEM_API int MemCompareI_sse2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompareI_avx2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompareI_avx512(const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompareI_arm64 (const void* ptr1, const void* ptr2, size_t size); +MEM_API int MemCompareI_rvv (const void* ptr1, const void* ptr2, size_t size); + + +MEM_API bool MemIsEqual_sse2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API bool MemIsEqual_avx2 (const void* ptr1, const void* ptr2, size_t size); +MEM_API bool MemIsEqual_avx512(const void* ptr1, const void* ptr2, size_t size); +MEM_API bool MemIsEqual_arm64 (const void* ptr1, const void* ptr2, size_t size); +MEM_API bool MemIsEqual_rvv (const void* ptr1, const void* ptr2, size_t size); + + +MEM_API size_t MemFind_sse2 (const void* ptr, size_t size, uint8_t value); +MEM_API size_t MemFind_avx2 (const void* ptr, size_t size, uint8_t value); +MEM_API size_t MemFind_avx512(const void* ptr, size_t size, uint8_t value); +MEM_API size_t MemFind_arm64 (const void* ptr, size_t size, uint8_t value); +MEM_API size_t MemFind_rvv (const void* ptr, size_t size, uint8_t value); + + +#ifdef __cplusplus +} +#endif + +// +// implementation +// + +#if defined(MEM_STATIC) || defined(MEM_IMPLEMENTATION) + +// compiler +#if defined(__clang__) +# define MEM_COMPILER_CLANG 1 +#elif defined(__GNUC__) +# define MEM_COMPILER_GCC 1 +#elif defined(_MSC_VER) +# define MEM_COMPILER_MSVC 1 +# include +#else +# error unknown compiler +#endif + +// architecture +#if defined(__x86_64__) || defined(_M_AMD64) +# define MEM_ARCH_X64 1 +# include +#elif defined(__aarch64__) || defined(_M_ARM64) +# define MEM_ARCH_ARM64 1 +# include +#elif defined(__riscv) && __riscv_v >= 1000000 +# define MEM_ARCH_RVV 1 +# include +#else +# error unsupported arch +#endif + +// cpuid, only for x64 +#if MEM_ARCH_X64 +# if MEM_COMPILER_CLANG || MEM_COMPILER_GCC +# include +# define MEM_CPUID(x, info) __cpuid(x, info[0], info[1], info[2], info[3]) +# define MEM_CPUID2(x, y, info) __cpuid_count(x, y, info[0], info[1], info[2], info[3]) +# define MEM_XGETBV(x) __builtin_ia32_xgetbv(x) +# define MEM_GET32_RELAXED(ptr) __atomic_load_n(ptr, __ATOMIC_RELAXED) +# define MEM_SET32_RELAXED(ptr, value) __atomic_store_n(ptr, value, __ATOMIC_RELAXED); +# elif MEM_COMPILER_MSVC +# define MEM_CPUID(x, info) __cpuid(info, x) +# define MEM_CPUID2(x, y, info) __cpuidex(info, x, y) +# define MEM_XGETBV(x) _xgetbv(x) +# define MEM_GET32_RELAXED(ptr) __iso_volatile_load32(ptr) +# define MEM_SET32_RELAXED(ptr, value) __iso_volatile_store32(ptr, value); +# endif +#endif + +// unaligned memory access +#pragma pack(push, 1) +typedef struct { uint16_t value; } MemUnalignedPtr16; +typedef struct { uint32_t value; } MemUnalignedPtr32; +typedef struct { uint64_t value; } MemUnalignedPtr64; +#define MEM_PTR16U(ptr) (((MemUnalignedPtr16*)(ptr))->value) +#define MEM_PTR32U(ptr) (((MemUnalignedPtr32*)(ptr))->value) +#define MEM_PTR64U(ptr) (((MemUnalignedPtr64*)(ptr))->value) +#pragma pack(pop) + +// big-endian load, only for x64, compiles to movbe +#if MEM_ARCH_X64 +# if MEM_COMPILER_MSVC +# define MEM_GET16BE(ptr) _load_be_u16(ptr) +# define MEM_GET32BE(ptr) _load_be_u32(ptr) +# define MEM_GET64BE(ptr) _load_be_u64(ptr) +# elif MEM_COMPILER_CLANG || MEM_COMPILER_GCC +# define MEM_GET16BE(ptr) __builtin_bswap16(MEM_PTR16U(ptr)) +# define MEM_GET32BE(ptr) __builtin_bswap32(MEM_PTR32U(ptr)) +# define MEM_GET64BE(ptr) __builtin_bswap64(MEM_PTR64U(ptr)) +# endif +#endif + +// byteswap +#if MEM_COMPILER_CLANG || MEM_COMPILER_GCC +# define MEM_BSWAP64(x) __builtin_bswap64(x) +#elif MEM_COMPILER_MSVC +# define MEM_BSWAP64(x) _byteswap_uint64(x) +#endif + +// count trailing zeroes +#if MEM_COMPILER_CLANG || MEM_COMPILER_GCC +# define MEM_CTZ32(x) (size_t)__builtin_ctz(x) +# define MEM_CTZ64(x) (size_t)__builtin_ctzll(x) +#elif MEM_COMPILER_MSVC +# if MEM_ARCH_X64 +# define MEM_CTZ32(x) (size_t)_tzcnt_u32(x) +# define MEM_CTZ64(x) (size_t)_tzcnt_u64(x) +# elif MEM_ARCH_ARM64 +# define MEM_CTZ32(x) (size_t)_CountTrailingZeros(x) +# define MEM_CTZ64(x) (size_t)_CountTrailingZeros64(x) +# endif +#endif + +// shrx for x64 +#if MEM_ARCH_X64 +# if MEM_COMPILER_MSVC +# define MEM_SHRX_32(x, n) _shrx_u32(x, n) +# elif MEM_COMPILER_CLANG || MEM_COMPILER_GCC +# define MEM_SHRX_32(x, n) ((x) >> (n)) +# endif +#endif + +// x64 function attributes +#if MEM_ARCH_X64 && (MEM_COMPILER_CLANG || MEM_COMPILER_GCC) +# define MEM_TARGET_XSAVE __attribute__((target("xsave"))) +# define MEM_TARGET_AVX2 __attribute__((target("avx2,bmi,bmi2,movbe"))) +# define MEM_TARGET_AVX512 __attribute__((target("avx512f,avx512bw,avx512vbmi,bmi,bmi2"))) +#else +# define MEM_TARGET_XSAVE +# define MEM_TARGET_AVX2 +# define MEM_TARGET_AVX512 +#endif + +static inline uint8_t MemToLower1(uint8_t x) +{ + return (uint8_t)(x - 'A') <= ('Z' - 'A') ? (x + 'a' - 'A') : x; +} + +static inline uint64_t MemToLower8(uint64_t x) +{ + const uint64_t splat = ~0ULL / 255; + uint64_t heptets = x & (0x7F * splat); + uint64_t is_ascii = ~x & (0x80 * splat); + uint64_t is_gt_Z = heptets + (0x7F - 'Z') * splat; + uint64_t is_ge_A = heptets + (0x80 - 'A') * splat; + uint64_t is_upper = (is_ge_A ^ is_gt_Z) & is_ascii; + return x | (is_upper >> 2); +} + + +#if MEM_ARCH_X64 + +static inline __m128i MemToLower16(__m128i x) +{ + __m128i tmp = _mm_sub_epi8(x, _mm_set1_epi8('A' - 128)); + tmp = _mm_cmpgt_epi8(tmp, _mm_set1_epi8('Z' - 'A' - 128)); + tmp = _mm_andnot_si128(tmp, _mm_set1_epi8('a' - 'A')); + return _mm_add_epi8(x, tmp); +} + +MEM_TARGET_AVX2 +static inline __m256i MemToLower32(__m256i x) +{ + __m256i tmp = _mm256_sub_epi8(x, _mm256_set1_epi8('A' - 128)); + tmp = _mm256_cmpgt_epi8(tmp, _mm256_set1_epi8('Z' - 'A' - 128)); + tmp = _mm256_andnot_si256(tmp, _mm256_set1_epi8('a' - 'A')); + return _mm256_add_epi8(x, tmp); +} + +MEM_TARGET_AVX512 +static inline __m512i MemToLower64(__m512i x) +{ +#if 0 // version without VBMI + __m512i tmp = _mm512_sub_epi8(x, _mm512_set1_epi8('A')); + __mmask64 mask = _mm512_cmple_epu8_mask(tmp, _mm512_set1_epi8('Z' - 'A')); + return _mm512_mask_add_epi8(x, mask, x, _mm512_set1_epi8('a' - 'A')); +#else + static const uint8_t table[] = + { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, + 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x40, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', + 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, + 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, + }; + const __m512i c0 = _mm512_loadu_epi8(table + 0x00); + const __m512i c1 = _mm512_loadu_epi8(table + 0x40); + __mmask64 mask = _mm512_cmplt_epu8_mask(x, _mm512_set1_epi8((char)0x80)); + return _mm512_mask2_permutex2var_epi8(c0, x, mask, c1); +#endif +} + +MEM_DISABLE_ASAN +int MemCompare_sse2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 16) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint32_t mask = (1 + (uint16_t)_mm_movemask_epi8(r0)) & ((1 << size) - 1); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + return 0; + } + + if (size < 2) // size == 1 + { + return p1[0] - p2[0]; + } + + uint64_t a0, b0, a1, b1; + if (size < 4) // 2 <= size < 4 + { + a0 = MEM_PTR16U(p1); + b0 = MEM_PTR16U(p2); + a1 = MEM_PTR16U(p1 + size - 2); + b1 = MEM_PTR16U(p2 + size - 2); + } + else if (size < 8) // 4 <= size < 8 + { + a0 = MEM_PTR32U(p1); + b0 = MEM_PTR32U(p2); + a1 = MEM_PTR32U(p1 + size - 4); + b1 = MEM_PTR32U(p2 + size - 4); + } + else // 8 <= size <= 16 + { + a0 = MEM_PTR64U(p1); + b0 = MEM_PTR64U(p2); + a1 = MEM_PTR64U(p1 + size - 8); + b1 = MEM_PTR64U(p2 + size - 8); + } + + uint64_t a = MEM_BSWAP64(a0 != b0 ? a0 : a1); + uint64_t b = MEM_BSWAP64(a0 != b0 ? b0 : b1); + return (a > b) - (a < b); + } + + while (size >= 64) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p1 + 0x00)); + __m128i b0 = _mm_loadu_si128((const __m128i*)(p2 + 0x00)); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + 0x10)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + 0x10)); + __m128i a2 = _mm_loadu_si128((const __m128i*)(p1 + 0x20)); + __m128i b2 = _mm_loadu_si128((const __m128i*)(p2 + 0x20)); + __m128i a3 = _mm_loadu_si128((const __m128i*)(p1 + 0x30)); + __m128i b3 = _mm_loadu_si128((const __m128i*)(p2 + 0x30)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + __m128i r2 = _mm_cmpeq_epi8(a2, b2); + __m128i r3 = _mm_cmpeq_epi8(a3, b3); + __m128i r = _mm_and_si128(_mm_and_si128(r0, r1), _mm_and_si128(r2, r3)); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r); + if (mask) + { + mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = 0x00 + MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r1); + if (mask) + { + size_t index = 0x10 + MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r2); + if (mask) + { + size_t index = 0x20 + MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r3); + size_t index = 0x30 + MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + 0x10)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + 0x10)); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + + mask = 1 + (uint16_t)_mm_movemask_epi8(r1); + if (mask) + { + size_t index = 0x10 + MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return p1[index] - p2[index]; + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p1 + size - 16)); + __m128i b0 = _mm_loadu_si128((const __m128i*)(p2 + size - 16)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask) + size - 16; + return p1[index] - p2[index]; + } + } + + return 0; +} + +MEM_DISABLE_ASAN +int MemCompareI_sse2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 16) + { + __m128i a0 = MemToLower16(_mm_loadu_si128((const __m128i*)p1)); + __m128i b0 = MemToLower16(_mm_loadu_si128((const __m128i*)p2)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint32_t mask = (1 + (uint16_t)_mm_movemask_epi8(r0)) & ((1 << size) - 1); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + return 0; + } + + if (size < 2) // size == 1 + { + return MemToLower1(p1[0]) - MemToLower1(p2[0]); + } + + size_t n; + __m128i a0, b0, a1, b1; + + if (size < 4) // 2 <= size < 4 + { + a0 = _mm_loadu_si16((const __m128i*)p1); + b0 = _mm_loadu_si16((const __m128i*)p2); + a1 = _mm_loadu_si16((const __m128i*)(p1 + size - 2)); + b1 = _mm_loadu_si16((const __m128i*)(p2 + size - 2)); + n = 2; + } + else if (size < 8) // 4 <= size < 8 + { + a0 = _mm_loadu_si32((const __m128i*)p1); + b0 = _mm_loadu_si32((const __m128i*)p2); + a1 = _mm_loadu_si32((const __m128i*)(p1 + size - 4)); + b1 = _mm_loadu_si32((const __m128i*)(p2 + size - 4)); + n = 4; + } + else // 8 <= size <= 16 + { + a0 = _mm_loadu_si64((const __m128i*)p1); + b0 = _mm_loadu_si64((const __m128i*)p2); + a1 = _mm_loadu_si64((const __m128i*)(p1 + size - 8)); + b1 = _mm_loadu_si64((const __m128i*)(p2 + size - 8)); + n = 8; + } + + __m128i a = _mm_unpacklo_epi64(a0, a1); + __m128i b = _mm_unpacklo_epi64(b0, b1); + __m128i r = _mm_cmpeq_epi8(MemToLower16(a), MemToLower16(b)); + + uint16_t mask = (1 + (uint16_t)_mm_movemask_epi8(r)); + if (mask) + { + size_t index = MEM_CTZ32(mask); + + // index = (index < 8) ? index : (index - 8) + (size - n); + size -= 8 + n; + index += index < 8 ? 0 : size; + + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + return 0; + } + + while (size >= 64) + { + __m128i a0 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + 0x00))); + __m128i b0 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + 0x00))); + __m128i a1 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + 0x10))); + __m128i b1 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + 0x10))); + __m128i a2 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + 0x20))); + __m128i b2 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + 0x20))); + __m128i a3 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + 0x30))); + __m128i b3 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + 0x30))); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + __m128i r2 = _mm_cmpeq_epi8(a2, b2); + __m128i r3 = _mm_cmpeq_epi8(a3, b3); + __m128i r = _mm_and_si128(_mm_and_si128(r0, r1), _mm_and_si128(r2, r3)); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r); + if (mask) + { + mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = 0x00 + MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r1); + if (mask) + { + size_t index = 0x10 + MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r2); + if (mask) + { + size_t index = 0x20 + MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint16_t)_mm_movemask_epi8(r3); + size_t index = 0x30 + MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m128i a0 = MemToLower16(_mm_loadu_si128((const __m128i*)p1)); + __m128i b0 = MemToLower16(_mm_loadu_si128((const __m128i*)p2)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + __m128i a1 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + 0x10))); + __m128i b1 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + 0x10))); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + + mask = 1 + (uint16_t)_mm_movemask_epi8(r1); + if (mask) + { + size_t index = 0x10 + MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + __m128i a0 = MemToLower16(_mm_loadu_si128((const __m128i*)p1)); + __m128i b0 = MemToLower16(_mm_loadu_si128((const __m128i*)p2)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + __m128i a0 = MemToLower16(_mm_loadu_si128((const __m128i*)(p1 + size - 16))); + __m128i b0 = MemToLower16(_mm_loadu_si128((const __m128i*)(p2 + size - 16))); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask) + size - 16; + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + } + + return 0; +} + +MEM_DISABLE_ASAN +bool MemIsEqual_sse2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return true; + } + + if (size <= 16) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 16) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + return (mask << (32 - size)) == 0; + } + + if (size < 2) // size == 1 + { + return p1[0] == p2[0]; + } + + uint64_t a0, b0, a1, b1; + if (size < 4) // 2 <= size < 4 + { + a0 = MEM_PTR16U(p1); + b0 = MEM_PTR16U(p2); + a1 = MEM_PTR16U(p1 + size - 2); + b1 = MEM_PTR16U(p2 + size - 2); + } + else if (size < 8) // 4 <= size < 8 + { + a0 = MEM_PTR32U(p1); + b0 = MEM_PTR32U(p2); + a1 = MEM_PTR32U(p1 + size - 4); + b1 = MEM_PTR32U(p2 + size - 4); + } + else // 8 <= size <= 16 + { + a0 = MEM_PTR64U(p1); + b0 = MEM_PTR64U(p2); + a1 = MEM_PTR64U(p1 + size - 8); + b1 = MEM_PTR64U(p2 + size - 8); + } + + return (a0 == b0) & (a1 == b1); + } + + while (size >= 64) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p1 + 0x00)); + __m128i b0 = _mm_loadu_si128((const __m128i*)(p2 + 0x00)); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + 0x10)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + 0x10)); + __m128i a2 = _mm_loadu_si128((const __m128i*)(p1 + 0x20)); + __m128i b2 = _mm_loadu_si128((const __m128i*)(p2 + 0x20)); + __m128i a3 = _mm_loadu_si128((const __m128i*)(p1 + 0x30)); + __m128i b3 = _mm_loadu_si128((const __m128i*)(p2 + 0x30)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + __m128i r2 = _mm_cmpeq_epi8(a2, b2); + __m128i r3 = _mm_cmpeq_epi8(a3, b3); + __m128i r = _mm_and_si128(_mm_and_si128(r0, r1), _mm_and_si128(r2, r3)); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r); + if (mask) + { + return false; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + 0x10)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + 0x10)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + __m128i r1 = _mm_cmpeq_epi8(a1, b1); + __m128i r = _mm_and_si128(r0, r1); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r); + if (mask) + { + return false; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + return false; + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p1 + size - 16)); + __m128i b0 = _mm_loadu_si128((const __m128i*)(p2 + size - 16)); + __m128i r0 = _mm_cmpeq_epi8(a0, b0); + + uint16_t mask = 1 + (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + return false; + } + } + + return true; +} + +MEM_DISABLE_ASAN +size_t MemFind_sse2(const void* ptr, size_t size, uint8_t value) +{ + const uint8_t* p = (const uint8_t*)ptr; + const __m128i value16 = _mm_set1_epi8((char)value); + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + size_t address = (uint32_t)(uintptr_t)p % 16; + size_t extra = (address + size) <= 16 ? address : 0; + + __m128i a0 = _mm_loadu_si128((const __m128i*)(p - extra)); + __m128i r0 = _mm_cmpeq_epi8(a0, value16); + uint32_t mask = ((uint16_t)_mm_movemask_epi8(r0) >> extra) & ((1 << size) - 1); + + return mask ? MEM_CTZ32(mask) : size; + } + + size_t offset = 0; + while (size >= 64) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p + 0x00)); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p + 0x10)); + __m128i a2 = _mm_loadu_si128((const __m128i*)(p + 0x20)); + __m128i a3 = _mm_loadu_si128((const __m128i*)(p + 0x30)); + __m128i r0 = _mm_cmpeq_epi8(a0, value16); + __m128i r1 = _mm_cmpeq_epi8(a1, value16); + __m128i r2 = _mm_cmpeq_epi8(a2, value16); + __m128i r3 = _mm_cmpeq_epi8(a3, value16); + __m128i r = _mm_or_si128(_mm_or_si128(r0, r1), _mm_or_si128(r2, r3)); + + uint16_t mask = (uint16_t)_mm_movemask_epi8(r); + if (mask) + { + uint64_t m0 = (uint16_t)_mm_movemask_epi8(r0); + uint64_t m1 = (uint16_t)_mm_movemask_epi8(r1); + uint64_t m2 = (uint16_t)_mm_movemask_epi8(r2); + uint64_t m3 = mask; // if r0=r1=r2=0, then r3=r + + uint64_t m4 = m0 | (m1 << 16) | (m2 << 32) | (m3 << 48); + size_t index = MEM_CTZ64(m4); + return offset + index; + } + + offset += 64; + size -= 64; + p += 64; + } + + if (size & 32) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p); + __m128i r0 = _mm_cmpeq_epi8(a0, value16); + + uint16_t mask = (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return offset + index; + } + + __m128i a1 = _mm_loadu_si128((const __m128i*)(p + 0x10)); + __m128i r1 = _mm_cmpeq_epi8(a1, value16); + + mask = (uint16_t)_mm_movemask_epi8(r1); + if (mask) + { + size_t index = 0x10 + MEM_CTZ32(mask); + return offset + index; + } + + offset += 32; + size -= 32; + p += 32; + } + + if (size & 16) + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p); + __m128i r0 = _mm_cmpeq_epi8(a0, value16); + + uint16_t mask = (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask); + return offset + index; + } + + offset += 16; + size -= 16; + p += 16; + } + + if (size) // size < 16 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)(p + size - 16)); + __m128i r0 = _mm_cmpeq_epi8(a0, value16); + + uint16_t mask = (uint16_t)_mm_movemask_epi8(r0); + if (mask) + { + size_t index = MEM_CTZ32(mask) + size - 16; + return offset + index; + } + + offset += size; + } + + return offset; +} + +MEM_DISABLE_ASAN +MEM_TARGET_AVX2 +int MemCompare_avx2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 32) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 32) + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = _bzhi_u32(1 + (uint32_t)_mm256_movemask_epi8(r0), (uint32_t)size); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + return 0; + } + + if (size < 2) // size == 1 + { + return p1[0] - p2[0]; + } + else if (size < 4) // 2 <= size < 4 + { + uint32_t a0 = MEM_GET16BE(p1); + uint32_t b0 = MEM_GET16BE(p2); + uint32_t a1 = MEM_GET16BE(p1 + size - 2); + uint32_t b1 = MEM_GET16BE(p2 + size - 2); + uint32_t a = (a0 != b0 ? a0 : a1); + uint32_t b = (a0 != b0 ? b0 : b1); + return (int)a - (int)b; + } + else if (size < 8) // 4 <= size < 8 + { + uint32_t a0 = MEM_GET32BE(p1); + uint32_t b0 = MEM_GET32BE(p2); + uint32_t a1 = MEM_GET32BE(p1 + size - 4); + uint32_t b1 = MEM_GET32BE(p2 + size - 4); + uint32_t a = (a0 != b0 ? a0 : a1); + uint32_t b = (a0 != b0 ? b0 : b1); + return (a > b) - (a < b); + } + else if (size <= 16) // 8 <= size <= 16 + { + uint64_t a0 = MEM_GET64BE(p1); + uint64_t b0 = MEM_GET64BE(p2); + uint64_t a1 = MEM_GET64BE(p1 + size - 8); + uint64_t b1 = MEM_GET64BE(p2 + size - 8); + uint64_t a = (a0 != b0 ? a0 : a1); + uint64_t b = (a0 != b0 ? b0 : b1); + return (a > b) - (a < b); + } + else // 16 < size <= 32 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + size - 16)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + size - 16)); + __m256i a = _mm256_inserti128_si256(_mm256_castsi128_si256(a0), a1, 1); + __m256i b = _mm256_inserti128_si256(_mm256_castsi128_si256(b0), b1, 1); + __m256i r = _mm256_cmpeq_epi8(a, b); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r); + if (mask) + { + size_t index = _tzcnt_u64(mask); + + // index = (index < 16) ? index : (index - 16) + (size - 16); + size -= 32; + index += index < 16 ? 0 : size; + + return p1[index] - p2[index]; + } + + return 0; + } + } + + while (size >= 128) + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p1 + 0x00)); + __m256i b0 = _mm256_loadu_si256((const __m256i*)(p2 + 0x00)); + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p1 + 0x20)); + __m256i b1 = _mm256_loadu_si256((const __m256i*)(p2 + 0x20)); + __m256i a2 = _mm256_loadu_si256((const __m256i*)(p1 + 0x40)); + __m256i b2 = _mm256_loadu_si256((const __m256i*)(p2 + 0x40)); + __m256i a3 = _mm256_loadu_si256((const __m256i*)(p1 + 0x60)); + __m256i b3 = _mm256_loadu_si256((const __m256i*)(p2 + 0x60)); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + __m256i r1 = _mm256_cmpeq_epi8(a1, b1); + __m256i r2 = _mm256_cmpeq_epi8(a2, b2); + __m256i r3 = _mm256_cmpeq_epi8(a3, b3); + __m256i r = _mm256_and_si256(_mm256_and_si256(r0, r1), _mm256_and_si256(r2, r3)); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r); + if (mask) + { + mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = 0x00 + _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r1); + if (mask) + { + size_t index = 0x20 + _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r2); + if (mask) + { + size_t index = 0x40 + _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r3); + size_t index = 0x60 + _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + if (size & 64) // 64 <= size < 128 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p1 + 0x20)); + __m256i b1 = _mm256_loadu_si256((const __m256i*)(p2 + 0x20)); + __m256i r1 = _mm256_cmpeq_epi8(a1, b1); + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r1); + if (mask) + { + size_t index = 0x20 + _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return p1[index] - p2[index]; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size) // size < 32 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p1 + size - 32)); + __m256i b0 = _mm256_loadu_si256((const __m256i*)(p2 + size - 32)); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask) + size - 32; + return p1[index] - p2[index]; + } + } + + return 0; +} + +MEM_DISABLE_ASAN +MEM_TARGET_AVX2 +int MemCompareI_avx2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 32) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 32) + { + __m256i a0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p1)); + __m256i b0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p2)); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = _bzhi_u32(1 + (uint32_t)_mm256_movemask_epi8(r0), (uint32_t)size); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + return 0; + } + + if (size < 2) // size == 1 + { + return MemToLower1(p1[0]) - MemToLower1(p2[0]); + } + + size_t n; + __m128i a0, b0, a1, b1; + + if (size < 4) // 2 <= size < 4 + { + a0 = _mm_loadu_si16((const __m128i*)p1); + b0 = _mm_loadu_si16((const __m128i*)p2); + a1 = _mm_loadu_si16((const __m128i*)(p1 + size - 2)); + b1 = _mm_loadu_si16((const __m128i*)(p2 + size - 2)); + n = 2; + } + else if (size < 8) // 4 <= size < 8 + { + a0 = _mm_loadu_si32((const __m128i*)p1); + b0 = _mm_loadu_si32((const __m128i*)p2); + a1 = _mm_loadu_si32((const __m128i*)(p1 + size - 4)); + b1 = _mm_loadu_si32((const __m128i*)(p2 + size - 4)); + n = 4; + } + else if (size < 16) // 8 <= size < 16 + { + a0 = _mm_loadu_si64((const __m128i*)p1); + b0 = _mm_loadu_si64((const __m128i*)p2); + a1 = _mm_loadu_si64((const __m128i*)(p1 + size - 8)); + b1 = _mm_loadu_si64((const __m128i*)(p2 + size - 8)); + n = 8; + } + else // 16 <= size <= 32 + { + a0 = _mm_loadu_si128((const __m128i*)p1); + b0 = _mm_loadu_si128((const __m128i*)p2); + a1 = _mm_loadu_si128((const __m128i*)(p1 + size - 16)); + b1 = _mm_loadu_si128((const __m128i*)(p2 + size - 16)); + n = 16; + } + + __m256i a = _mm256_inserti128_si256(_mm256_castsi128_si256(a0), a1, 1); + __m256i b = _mm256_inserti128_si256(_mm256_castsi128_si256(b0), b1, 1); + __m256i r = _mm256_cmpeq_epi8(MemToLower32(a), MemToLower32(b)); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r); + if (mask) + { + size_t index = _tzcnt_u64(mask); + + // index = (index < 16) ? index : (index - 16) + (size - n); + size -= 16 + n; + index += index < 16 ? 0 : size; + + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + return 0; + } + + while (size >= 128) + { + __m256i a0 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + 0x00))); + __m256i b0 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + 0x00))); + __m256i a1 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + 0x20))); + __m256i b1 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + 0x20))); + __m256i a2 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + 0x40))); + __m256i b2 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + 0x40))); + __m256i a3 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + 0x60))); + __m256i b3 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + 0x60))); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + __m256i r1 = _mm256_cmpeq_epi8(a1, b1); + __m256i r2 = _mm256_cmpeq_epi8(a2, b2); + __m256i r3 = _mm256_cmpeq_epi8(a3, b3); + __m256i r = _mm256_and_si256(_mm256_and_si256(r0, r1), _mm256_and_si256(r2, r3)); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r); + if (mask) + { + mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = 0x00 + _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r1); + if (mask) + { + size_t index = 0x20 + _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r2); + if (mask) + { + size_t index = 0x40 + _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r3); + size_t index = 0x60 + _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + if (size & 64) // 64 <= size < 128 + { + __m256i a0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p1)); + __m256i b0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p2)); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + __m256i a1 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + 0x20))); + __m256i b1 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + 0x20))); + __m256i r1 = _mm256_cmpeq_epi8(a1, b1); + + mask = 1 + (uint32_t)_mm256_movemask_epi8(r1); + if (mask) + { + size_t index = 0x20 + _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m256i a0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p1)); + __m256i b0 = MemToLower32(_mm256_loadu_si256((const __m256i*)p2)); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size) // size < 32 + { + __m256i a0 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p1 + size - 32))); + __m256i b0 = MemToLower32(_mm256_loadu_si256((const __m256i*)(p2 + size - 32))); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask) + size - 32; + return MemToLower1(p1[index]) - MemToLower1(p2[index]); + } + } + + return 0; +} + +MEM_DISABLE_ASAN +MEM_TARGET_AVX2 +bool MemIsEqual_avx2(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return true; + } + + if (size <= 32) + { + const uint32_t PAGE_SIZE = 4096; + + uint32_t address = (uint32_t)(uintptr_t)p1 | (uint32_t)(uintptr_t)p2; + if ((address & (PAGE_SIZE - 1)) <= PAGE_SIZE - 32) + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i r0 = _mm256_cmpeq_epi8(a0, b0); + + uint32_t mask = 1 + (uint32_t)_mm256_movemask_epi8(r0); + return _bzhi_u32(mask, (uint32_t)size) == 0; + } + + if (size < 2) // size == 1 + { + return p1[0] == p2[0]; + } + else if (size < 4) // 2 <= size < 4 + { + uint32_t a0 = MEM_PTR16U(p1); + uint32_t b0 = MEM_PTR16U(p2); + uint32_t a1 = MEM_PTR16U(p1 + size - 2); + uint32_t b1 = MEM_PTR16U(p2 + size - 2); + return (a0 == b0) & (a1 == b1); + } + else if (size < 8) // 4 <= size < 8 + { + uint32_t a0 = MEM_PTR32U(p1); + uint32_t b0 = MEM_PTR32U(p2); + uint32_t a1 = MEM_PTR32U(p1 + size - 4); + uint32_t b1 = MEM_PTR32U(p2 + size - 4); + return (a0 == b0) & (a1 == b1); + } + else if (size <= 16) // 8 <= size <= 16 + { + uint64_t a0 = MEM_PTR64U(p1); + uint64_t b0 = MEM_PTR64U(p2); + uint64_t a1 = MEM_PTR64U(p1 + size - 8); + uint64_t b1 = MEM_PTR64U(p2 + size - 8); + return (a0 == b0) & (a1 == b1); + } + else // 16 < size <= 32 + { + __m128i a0 = _mm_loadu_si128((const __m128i*)p1); + __m128i b0 = _mm_loadu_si128((const __m128i*)p2); + __m128i a1 = _mm_loadu_si128((const __m128i*)(p1 + size - 16)); + __m128i b1 = _mm_loadu_si128((const __m128i*)(p2 + size - 16)); + __m256i a = _mm256_inserti128_si256(_mm256_castsi128_si256(a1), a0, 1); + __m256i b = _mm256_inserti128_si256(_mm256_castsi128_si256(b1), b0, 1); + __m256i r = _mm256_xor_si256(a, b); + return !!_mm256_testz_si256(r, r); + } + } + + while (size >= 128) + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p1 + 0x00)); + __m256i b0 = _mm256_loadu_si256((const __m256i*)(p2 + 0x00)); + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p1 + 0x20)); + __m256i b1 = _mm256_loadu_si256((const __m256i*)(p2 + 0x20)); + __m256i a2 = _mm256_loadu_si256((const __m256i*)(p1 + 0x40)); + __m256i b2 = _mm256_loadu_si256((const __m256i*)(p2 + 0x40)); + __m256i a3 = _mm256_loadu_si256((const __m256i*)(p1 + 0x60)); + __m256i b3 = _mm256_loadu_si256((const __m256i*)(p2 + 0x60)); + __m256i r0 = _mm256_xor_si256(a0, b0); + __m256i r1 = _mm256_xor_si256(a1, b1); + __m256i r2 = _mm256_xor_si256(a2, b2); + __m256i r3 = _mm256_xor_si256(a3, b3); + __m256i r = _mm256_or_si256(_mm256_or_si256(r0, r1), _mm256_or_si256(r2, r3)); + + if (!_mm256_testz_si256(r, r)) + { + return false; + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + if (size & 64) // 64 <= size < 128 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p1 + 0x20)); + __m256i b1 = _mm256_loadu_si256((const __m256i*)(p2 + 0x20)); + __m256i r0 = _mm256_xor_si256(a0, b0); + __m256i r1 = _mm256_xor_si256(a1, b1); + __m256i r = _mm256_or_si256(r0, r1); + + if (!_mm256_testz_si256(r, r)) + { + return false; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p1); + __m256i b0 = _mm256_loadu_si256((const __m256i*)p2); + __m256i r0 = _mm256_xor_si256(a0, b0); + + if (!_mm256_testz_si256(r0, r0)) + { + return false; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size) // size < 32 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p1 + size - 32)); + __m256i b0 = _mm256_loadu_si256((const __m256i*)(p2 + size - 32)); + __m256i r0 = _mm256_xor_si256(a0, b0); + + if (!_mm256_testz_si256(r0, r0)) + { + return false; + } + } + + return true; +} + +MEM_DISABLE_ASAN +MEM_TARGET_AVX2 +size_t MemFind_avx2(const void* ptr, size_t size, uint8_t value) +{ + const uint8_t* p = (const uint8_t*)ptr; + __m256i value32 = _mm256_set1_epi8((char)value); + + if (size == 0) + { + return 0; + } + + if (size <= 32) + { + size_t address = (uint32_t)(uintptr_t)p % 32; + size_t extra = (address + size) <= 32 ? address : 0; + + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p - extra)); + __m256i r0 = _mm256_cmpeq_epi8(value32, a0); + + uint32_t mask = (uint32_t)_mm256_movemask_epi8(r0); + mask = _bzhi_u32(MEM_SHRX_32(mask, (uint32_t)extra), (uint32_t)size); + + return mask ? _tzcnt_u32(mask) : size; + } + + size_t offset = 0; + while (size >= 128) + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p + 0x00)); + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p + 0x20)); + __m256i a2 = _mm256_loadu_si256((const __m256i*)(p + 0x40)); + __m256i a3 = _mm256_loadu_si256((const __m256i*)(p + 0x60)); + __m256i r0 = _mm256_cmpeq_epi8(value32, a0); + __m256i r1 = _mm256_cmpeq_epi8(value32, a1); + __m256i r2 = _mm256_cmpeq_epi8(value32, a2); + __m256i r3 = _mm256_cmpeq_epi8(value32, a3); + __m256i r = _mm256_or_si256(_mm256_or_si256(r0, r1), _mm256_or_si256(r2, r3)); + + uint32_t mask = (uint32_t)_mm256_movemask_epi8(r); + if (mask) + { + uint64_t m0 = (uint32_t)_mm256_movemask_epi8(r0); + uint64_t m1 = (uint32_t)_mm256_movemask_epi8(r1); + uint64_t m2 = (uint32_t)_mm256_movemask_epi8(r2); + uint64_t m3 = mask; // if r0=r1=r2=0, then r3=r + + uint64_t m01 = m0 | (m1 << 32); + uint64_t m23 = m2 | (m3 << 32); + + size_t idx0 = _tzcnt_u64(m01); + size_t idx1 = _tzcnt_u64(m23); + + offset += idx0; + offset += m01 ? 0 : idx1; + return offset; + } + + offset += 128; + size -= 128; + p += 128; + } + + if (size & 64) // 64 <= size < 128 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p); + __m256i r0 = _mm256_cmpeq_epi8(value32, a0); + + uint32_t mask = (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return offset + index; + } + + __m256i a1 = _mm256_loadu_si256((const __m256i*)(p + 0x20)); + __m256i r1 = _mm256_cmpeq_epi8(value32, a1); + + mask = (uint32_t)_mm256_movemask_epi8(r1); + if (mask) + { + size_t index = 0x20 + _tzcnt_u32(mask); + return offset + index; + } + + offset += 64; + size -= 64; + p += 64; + } + + if (size & 32) // 32 <= size < 64 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)p); + __m256i r0 = _mm256_cmpeq_epi8(value32, a0); + + uint32_t mask = (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask); + return offset + index; + } + + offset += 32; + size -= 32; + p += 32; + } + + if (size) // size < 32 + { + __m256i a0 = _mm256_loadu_si256((const __m256i*)(p + size - 32)); + __m256i r0 = _mm256_cmpeq_epi8(value32, a0); + + uint32_t mask = (uint32_t)_mm256_movemask_epi8(r0); + if (mask) + { + size_t index = _tzcnt_u32(mask) + size - 32; + return offset + index; + } + + offset += size; + } + + return offset; +} + +MEM_TARGET_AVX512 +int MemCompare_avx512(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + size_t extra = size & 63; + if (extra) + { + __mmask64 mask = _cvtu64_mask64(_bzhi_u64(~0ULL, (uint32_t)extra)); + + __m512i a = _mm512_maskz_loadu_epi8(mask, p1); + __m512i b = _mm512_maskz_loadu_epi8(mask, p2); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + int r1 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a, b))); + int r2 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b, a))); + return r1 - r2; + } + + size -= extra; + p1 += extra; + p2 += extra; + } + + if (size & 64) + { + __m512i a = _mm512_loadu_epi8(p1); + __m512i b = _mm512_loadu_epi8(p2); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + int r1 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a, b))); + int r2 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b, a))); + return r1 - r2; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + while (size) + { + __m512i a0 = _mm512_loadu_epi8(p1 + 0x00); + __m512i b0 = _mm512_loadu_epi8(p2 + 0x00); + __m512i a1 = _mm512_loadu_epi8(p1 + 0x40); + __m512i b1 = _mm512_loadu_epi8(p2 + 0x40); + + __mmask64 m0 = _mm512_cmpneq_epu8_mask(a0, b0); + __mmask64 m1 = _mm512_cmpneq_epu8_mask(a1, b1); + if (!_kortestz_mask64_u8(m0, m1)) + { + int r10 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a0, b0))); + int r20 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b0, a0))); + int r11 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a1, b1))); + int r21 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b1, a1))); + + int r1 = (r10 == r20) ? r11 : r10; + int r2 = (r10 == r20) ? r21 : r20; + return r1 - r2; + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + return 0; +} + +MEM_TARGET_AVX512 +int MemCompareI_avx512(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + size_t extra = size & 63; + if (extra) + { + __mmask64 mask = _cvtu64_mask64(_bzhi_u64(~0ULL, (uint32_t)extra)); + + __m512i a = MemToLower64(_mm512_maskz_loadu_epi8(mask, p1)); + __m512i b = MemToLower64(_mm512_maskz_loadu_epi8(mask, p2)); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + int r1 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a, b))); + int r2 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b, a))); + return r1 - r2; + } + + size -= extra; + p1 += extra; + p2 += extra; + } + + if (size & 64) + { + __m512i a = MemToLower64(_mm512_loadu_epi8(p1)); + __m512i b = MemToLower64(_mm512_loadu_epi8(p2)); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + int r1 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a, b))); + int r2 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b, a))); + return r1 - r2; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + while (size) + { + __m512i a0 = MemToLower64(_mm512_loadu_epi8(p1 + 0x00)); + __m512i b0 = MemToLower64(_mm512_loadu_epi8(p2 + 0x00)); + __m512i a1 = MemToLower64(_mm512_loadu_epi8(p1 + 0x40)); + __m512i b1 = MemToLower64(_mm512_loadu_epi8(p2 + 0x40)); + + __mmask64 m0 = _mm512_cmpneq_epu8_mask(a0, b0); + __mmask64 m1 = _mm512_cmpneq_epu8_mask(a1, b1); + if (!_kortestz_mask64_u8(m0, m1)) + { + int r10 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a0, b0))); + int r20 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b0, a0))); + int r11 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(a1, b1))); + int r21 = (int)_tzcnt_u64(_cvtmask64_u64(_mm512_cmplt_epu8_mask(b1, a1))); + + int r1 = (r10 == r20) ? r11 : r10; + int r2 = (r10 == r20) ? r21 : r20; + return r1 - r2; + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + return 0; +} + +MEM_TARGET_AVX512 +bool MemIsEqual_avx512(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + size_t extra = size & 63; + if (extra) + { + __mmask64 mask = _cvtu64_mask64(_bzhi_u64(~0ULL, (uint32_t)extra)); + + __m512i a = _mm512_maskz_loadu_epi8(mask, p1); + __m512i b = _mm512_maskz_loadu_epi8(mask, p2); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + return false; + } + + size -= extra; + p1 += extra; + p2 += extra; + } + + if (size & 64) + { + __m512i a = _mm512_loadu_epi8(p1); + __m512i b = _mm512_loadu_epi8(p2); + + __mmask64 m = _mm512_cmpneq_epu8_mask(a, b); + if (!_kortestz_mask64_u8(m, m)) + { + return false; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + while (size) + { + __m512i a0 = _mm512_loadu_epi8(p1 + 0x00); + __m512i b0 = _mm512_loadu_epi8(p2 + 0x00); + __m512i a1 = _mm512_loadu_epi8(p1 + 0x40); + __m512i b1 = _mm512_loadu_epi8(p2 + 0x40); + + __mmask64 m0 = _mm512_cmpneq_epu8_mask(a0, b0); + __mmask64 m1 = _mm512_cmpneq_epu8_mask(a1, b1); + + if (!_kortestz_mask64_u8(m0, m1)) + { + return false; + } + + size -= 128; + p1 += 128; + p2 += 128; + } + + return true; +} + +MEM_TARGET_AVX512 +size_t MemFind_avx512(const void* ptr, size_t size, uint8_t value) +{ + const uint8_t* p = (const uint8_t*)ptr; + const __m512i value64 = _mm512_set1_epi8((char)value); + + size_t offset = 0; + + size_t extra = size & 63; + if (extra) + { + __mmask64 mask = _cvtu64_mask64(_bzhi_u64(~0ULL, (uint32_t)extra)); + + __m512i a = _mm512_mask_loadu_epi8(_mm512_set1_epi8((char)~value), mask, p); + + __mmask64 m = _mm512_cmpeq_epu8_mask(value64, a); + if (!_kortestz_mask64_u8(m, m)) + { + return (size_t)_tzcnt_u64(_cvtmask64_u64(m)); + } + + offset += extra; + size -= extra; + p += extra; + } + + if (size & 64) + { + __m512i a = _mm512_loadu_epi8(p); + + __mmask64 m = _mm512_cmpeq_epu8_mask(value64, a); + if (!_kortestz_mask64_u8(m, m)) + { + return offset + (size_t)_tzcnt_u64(_cvtmask64_u64(m)); + } + + offset += 64; + size -= 64; + p += 64; + } + + while (size) + { + __m512i a0 = _mm512_loadu_epi8(p + 0x00); + __m512i a1 = _mm512_loadu_epi8(p + 0x40); + + __mmask64 m0 = _mm512_cmpeq_epu8_mask(value64, a0); + __mmask64 m1 = _mm512_cmpeq_epu8_mask(value64, a1); + + if (!_kortestz_mask64_u8(m0, m1)) + { + size_t r0 = _tzcnt_u64(_cvtmask64_u64(m0)); + size_t r1 = _tzcnt_u64(_cvtmask64_u64(m1)); + + offset += r0; + offset += r0 == 64 ? r1 : 0; + return offset; + } + + offset += 128; + size -= 128; + p += 128; + } + + return offset; +} + +#endif + + +#if MEM_ARCH_ARM64 + +static inline uint8x16_t MemToLower16(uint8x16_t x) +{ + uint8x16_t tmp = vsubq_u8(x, vdupq_n_u8('A')); + tmp = vcleq_u8(tmp, vdupq_n_u8('Z' - 'A')); + tmp = vandq_u8(tmp, vdupq_n_u8('a' - 'A')); + return vaddq_u8(x, tmp); +} + +MEM_DISABLE_ASAN +int MemCompare_arm64(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + if (size < 2) // size == 1 + { + return p1[0] - p2[0]; + } + + uint64_t a0, b0, a1, b1; + if (size < 4) // 2 <= size < 4 + { + a0 = MEM_PTR16U(p1); + b0 = MEM_PTR16U(p2); + a1 = MEM_PTR16U(p1 + size - 2); + b1 = MEM_PTR16U(p2 + size - 2); + } + else if (size < 8) // 4 <= size < 8 + { + a0 = MEM_PTR32U(p1); + b0 = MEM_PTR32U(p2); + a1 = MEM_PTR32U(p1 + size - 4); + b1 = MEM_PTR32U(p2 + size - 4); + } + else // 8 <= size <= 16 + { + a0 = MEM_PTR64U(p1); + b0 = MEM_PTR64U(p2); + a1 = MEM_PTR64U(p1 + size - 8); + b1 = MEM_PTR64U(p2 + size - 8); + } + + uint64_t a = MEM_BSWAP64(a0 != b0 ? a0 : a1); + uint64_t b = MEM_BSWAP64(a0 != b0 ? b0 : b1); + return (a > b) - (a < b); + } + + uint8x16_t va = vdupq_n_u8(0); + uint8x16_t vb = vdupq_n_u8(0); + + while (size >= 64) + { + uint8x16x4_t a = vld1q_u8_x4(p1); + uint8x16x4_t b = vld1q_u8_x4(p2); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + uint8x16_t c2 = vceqq_u8(a.val[2], b.val[2]); + uint8x16_t c3 = vceqq_u8(a.val[3], b.val[3]); + uint8x16_t c = vandq_u8(vandq_u8(c0, c1), vandq_u8(c2, c3)); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + uint8x16_t vm; + va = a.val[3]; + vb = b.val[3]; + + vm = vdupq_n_u8(vminvq_u8(c2)); + va = vbslq_u8(vm, va, a.val[2]); + vb = vbslq_u8(vm, vb, b.val[2]); + + vm = vdupq_n_u8(vminvq_u8(c1)); + va = vbslq_u8(vm, va, a.val[1]); + vb = vbslq_u8(vm, vb, b.val[1]); + + vm = vdupq_n_u8(vminvq_u8(c0)); + va = vbslq_u8(vm, va, a.val[0]); + vb = vbslq_u8(vm, vb, b.val[0]); + + goto done; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + uint8x16x2_t a = vld1q_u8_x2(p1); + uint8x16x2_t b = vld1q_u8_x2(p2); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + + uint8x8_t mask0 = vshrn_n_u16(vreinterpretq_u16_u8(c0), 4); + uint64_t nibbles0 = vget_lane_u64(vreinterpret_u64_u8(mask0), 0); + if (nibbles0 + 1) + { + va = a.val[0]; + vb = b.val[0]; + goto done; + } + + uint8x8_t mask1 = vshrn_n_u16(vreinterpretq_u16_u8(c1), 4); + uint64_t nibbles1 = vget_lane_u64(vreinterpret_u64_u8(mask1), 0); + if (nibbles1 + 1) + { + va = a.val[1]; + vb = b.val[1]; + goto done; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + va = vld1q_u8(p1); + vb = vld1q_u8(p2); + + uint8x16_t c = vceqq_u8(va, vb); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + goto done; + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + va = vld1q_u8(p1 + size - 16); + vb = vld1q_u8(p2 + size - 16); + } + +done:; + uint64x2_t a64 = vreinterpretq_u64_u8(vrev64q_u8(va)); + uint64x2_t b64 = vreinterpretq_u64_u8(vrev64q_u8(vb)); + uint64_t a0 = vgetq_lane_u64(a64, 0); + uint64_t b0 = vgetq_lane_u64(b64, 0); + uint64_t a1 = vgetq_lane_u64(a64, 1); + uint64_t b1 = vgetq_lane_u64(b64, 1); + uint64_t a = (a0 != b0 ? a0 : a1); + uint64_t b = (a0 != b0 ? b0 : b1); + return (a > b) - (a < b); +} + +MEM_DISABLE_ASAN +int MemCompareI_arm64(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + if (size < 2) // size == 1 + { + return MemToLower1(p1[0]) - MemToLower1(p2[0]); + } + + if (size < 4) // 2 <= size < 4 + { + uint64_t a0 = MEM_PTR16U(p1); + uint64_t b0 = MEM_PTR16U(p2); + uint64_t a1 = MEM_PTR16U(p1 + size - 2); + uint64_t b1 = MEM_PTR16U(p2 + size - 2); + uint64_t tmp = MEM_BSWAP64(MemToLower8(a0 | (a1 << 16) | (b0 << 32) | (b1 << 48))); + uint32_t a = (uint32_t)(tmp >> 32); + uint32_t b = (uint32_t)tmp; + return (a > b) - (a < b); + } + else if (size < 8) // 4 <= size < 8 + { + uint64_t a0 = MEM_PTR32U(p1); + uint64_t b0 = MEM_PTR32U(p2); + uint64_t a1 = MEM_PTR32U(p1 + size - 4); + uint64_t b1 = MEM_PTR32U(p2 + size - 4); + uint64_t a = MEM_BSWAP64(MemToLower8(a0 | (a1 << 32))); + uint64_t b = MEM_BSWAP64(MemToLower8(b0 | (b1 << 32))); + return (a > b) - (a < b); + } + else // 8 <= size <= 16 + { + uint8x16_t va = vcombine_u8(vld1_u8(p1), vld1_u8(p1 + size - 8)); + uint8x16_t vb = vcombine_u8(vld1_u8(p2), vld1_u8(p2 + size - 8)); + uint64x2_t a64 = vreinterpretq_u64_u8(vrev64q_u8(MemToLower16(va))); + uint64x2_t b64 = vreinterpretq_u64_u8(vrev64q_u8(MemToLower16(vb))); + uint64_t a0 = vgetq_lane_u64(a64, 0); + uint64_t b0 = vgetq_lane_u64(b64, 0); + uint64_t a1 = vgetq_lane_u64(a64, 1); + uint64_t b1 = vgetq_lane_u64(b64, 1); + uint64_t a = (a0 != b0 ? a0 : a1); + uint64_t b = (a0 != b0 ? b0 : b1); + return (a > b) - (a < b); + } + } + + uint8x16_t va = vdupq_n_u8(0); + uint8x16_t vb = vdupq_n_u8(0); + + while (size >= 64) + { + uint8x16x4_t a = vld1q_u8_x4(p1); + uint8x16x4_t b = vld1q_u8_x4(p2); + + a.val[0] = MemToLower16(a.val[0]); + b.val[0] = MemToLower16(b.val[0]); + a.val[1] = MemToLower16(a.val[1]); + b.val[1] = MemToLower16(b.val[1]); + a.val[2] = MemToLower16(a.val[2]); + b.val[2] = MemToLower16(b.val[2]); + a.val[3] = MemToLower16(a.val[3]); + b.val[3] = MemToLower16(b.val[3]); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + uint8x16_t c2 = vceqq_u8(a.val[2], b.val[2]); + uint8x16_t c3 = vceqq_u8(a.val[3], b.val[3]); + uint8x16_t c = vandq_u8(vandq_u8(c0, c1), vandq_u8(c2, c3)); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + uint8x16_t vm; + va = a.val[3]; + vb = b.val[3]; + + vm = vdupq_n_u8(vminvq_u8(c2)); + va = vbslq_u8(vm, va, a.val[2]); + vb = vbslq_u8(vm, vb, b.val[2]); + + vm = vdupq_n_u8(vminvq_u8(c1)); + va = vbslq_u8(vm, va, a.val[1]); + vb = vbslq_u8(vm, vb, b.val[1]); + + vm = vdupq_n_u8(vminvq_u8(c0)); + va = vbslq_u8(vm, va, a.val[0]); + vb = vbslq_u8(vm, vb, b.val[0]); + + goto done; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + uint8x16x2_t a = vld1q_u8_x2(p1); + uint8x16x2_t b = vld1q_u8_x2(p2); + + a.val[0] = MemToLower16(a.val[0]); + b.val[0] = MemToLower16(b.val[0]); + a.val[1] = MemToLower16(a.val[1]); + b.val[1] = MemToLower16(b.val[1]); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + + uint8x8_t mask0 = vshrn_n_u16(vreinterpretq_u16_u8(c0), 4); + uint64_t nibbles0 = vget_lane_u64(vreinterpret_u64_u8(mask0), 0); + if (nibbles0 + 1) + { + va = a.val[0]; + vb = b.val[0]; + goto done; + } + + uint8x8_t mask1 = vshrn_n_u16(vreinterpretq_u16_u8(c1), 4); + uint64_t nibbles1 = vget_lane_u64(vreinterpret_u64_u8(mask1), 0); + if (nibbles1 + 1) + { + va = a.val[1]; + vb = b.val[1]; + goto done; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + va = MemToLower16(vld1q_u8(p1)); + vb = MemToLower16(vld1q_u8(p2)); + + uint8x16_t c = vceqq_u8(va, vb); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + goto done; + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + va = MemToLower16(vld1q_u8(p1 + size - 16)); + vb = MemToLower16(vld1q_u8(p2 + size - 16)); + } + +done:; + uint64x2_t a64 = vreinterpretq_u64_u8(vrev64q_u8(va)); + uint64x2_t b64 = vreinterpretq_u64_u8(vrev64q_u8(vb)); + uint64_t a0 = vgetq_lane_u64(a64, 0); + uint64_t b0 = vgetq_lane_u64(b64, 0); + uint64_t a1 = vgetq_lane_u64(a64, 1); + uint64_t b1 = vgetq_lane_u64(b64, 1); + uint64_t a = (a0 != b0 ? a0 : a1); + uint64_t b = (a0 != b0 ? b0 : b1); + return (a > b) - (a < b); +} + +MEM_DISABLE_ASAN +bool MemIsEqual_arm64(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + if (size == 0) + { + return true; + } + + if (size <= 16) + { + if (size < 2) // size == 1 + { + return p1[0] == p2[0]; + } + + uint64_t a0, b0, a1, b1; + if (size < 4) // 2 <= size < 4 + { + a0 = MEM_PTR16U(p1); + b0 = MEM_PTR16U(p2); + a1 = MEM_PTR16U(p1 + size - 2); + b1 = MEM_PTR16U(p2 + size - 2); + } + else if (size < 8) // 4 <= size < 8 + { + a0 = MEM_PTR32U(p1); + b0 = MEM_PTR32U(p2); + a1 = MEM_PTR32U(p1 + size - 4); + b1 = MEM_PTR32U(p2 + size - 4); + } + else // 8 <= size <= 16 + { + a0 = MEM_PTR64U(p1); + b0 = MEM_PTR64U(p2); + a1 = MEM_PTR64U(p1 + size - 8); + b1 = MEM_PTR64U(p2 + size - 8); + } + + return (a0 == b0) & (a1 == b1); + } + + while (size >= 64) + { + uint8x16x4_t a = vld1q_u8_x4(p1); + uint8x16x4_t b = vld1q_u8_x4(p2); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + uint8x16_t c2 = vceqq_u8(a.val[2], b.val[2]); + uint8x16_t c3 = vceqq_u8(a.val[3], b.val[3]); + uint8x16_t c = vandq_u8(vandq_u8(c0, c1), vandq_u8(c2, c3)); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + return false; + } + + size -= 64; + p1 += 64; + p2 += 64; + } + + if (size & 32) // 32 <= size < 64 + { + uint8x16x2_t a = vld1q_u8_x2(p1); + uint8x16x2_t b = vld1q_u8_x2(p2); + + uint8x16_t c0 = vceqq_u8(a.val[0], b.val[0]); + uint8x16_t c1 = vceqq_u8(a.val[1], b.val[1]); + uint8x16_t c = vandq_u8(c0, c1); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + return false; + } + + size -= 32; + p1 += 32; + p2 += 32; + } + + if (size & 16) // 16 <= size < 32 + { + uint8x16_t a = vld1q_u8(p1); + uint8x16_t b = vld1q_u8(p2); + uint8x16_t c = vceqq_u8(a, b); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + return false; + } + + size -= 16; + p1 += 16; + p2 += 16; + } + + if (size) // size < 16 + { + uint8x16_t a = vld1q_u8(p1 + size - 16); + uint8x16_t b = vld1q_u8(p2 + size - 16); + uint8x16_t c = vceqq_u8(a, b); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(c), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles + 1) + { + return false; + } + } + + return true; +} + +MEM_DISABLE_ASAN +size_t MemFind_arm64(const void* ptr, size_t size, uint8_t value) +{ + const uint8_t* p = (const uint8_t*)ptr; + + const uint8x16_t index4 = vreinterpretq_u8_u64(vdupq_n_u64(0x8040201008040201)); + const uint8x16_t value16 = vdupq_n_u8(value); + + if (size == 0) + { + return 0; + } + + if (size <= 16) + { + size_t address = (uint32_t)(uintptr_t)p % 16; + size_t extra = (address + size) <= 16 ? address : 0; + + uint8x16_t a = vld1q_u8(p - extra); + uint8x16_t b = vceqq_u8(a, value16); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(b), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles) + { + size_t index = MEM_CTZ64(nibbles >> (4*extra)) / 4; + return index < size ? index : size; + } + + return size; + } + + size_t offset = 0; + while (size >= 64) + { + uint8x16x4_t a = vld1q_u8_x4(p); + uint8x16_t b0 = vceqq_u8(a.val[0], value16); + uint8x16_t b1 = vceqq_u8(a.val[1], value16); + uint8x16_t b2 = vceqq_u8(a.val[2], value16); + uint8x16_t b3 = vceqq_u8(a.val[3], value16); + uint8x16_t b = vorrq_u8(vorrq_u8(b0, b1), vorrq_u8(b2, b3)); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(b), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles) + { + uint8x16_t mask0 = vandq_u8(b0, index4); + uint8x16_t mask1 = vandq_u8(b1, index4); + uint8x16_t mask2 = vandq_u8(b2, index4); + uint8x16_t mask3 = vandq_u8(b3, index4); + + uint8x16_t sum = vpaddq_u8(vpaddq_u8(mask0, mask1), vpaddq_u8(mask2, mask3)); + uint64_t sum64 = vgetq_lane_u64(vreinterpretq_u64_u8(vpaddq_u8(sum, sum)), 0); + return offset + MEM_CTZ64(sum64); + } + + offset += 64; + size -= 64; + p += 64; + } + + if (size & 32) // 32 <= size < 64 + { + uint8x16x2_t a = vld1q_u8_x2(p); + uint8x16_t b0 = vceqq_u8(a.val[0], value16); + uint8x16_t b1 = vceqq_u8(a.val[1], value16); + + uint8x16_t mask0 = vandq_u8(b0, index4); + uint8x16_t mask1 = vandq_u8(b1, index4); + + uint8x16_t sum1 = vpaddq_u8(mask0, mask1); + uint8x16_t sum2 = vpaddq_u8(sum1, sum1); + uint32_t sum32 = vgetq_lane_u32(vreinterpretq_u32_u8(vpaddq_u8(sum2, sum2)), 0); + if (sum32) + { + return offset + MEM_CTZ32(sum32); + } + + offset += 32; + size -= 32; + p += 32; + } + + if (size & 16) // 16 <= size < 32 + { + uint8x16_t a = vld1q_u8(p); + uint8x16_t b = vceqq_u8(a, value16); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(b), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles) + { + return offset + MEM_CTZ64(nibbles) / 4; + } + + offset += 16; + size -= 16; + p += 16; + } + + if (size) // size < 16 + { + uint8x16_t a = vld1q_u8(p + size - 16); + uint8x16_t b = vceqq_u8(a, value16); + + uint8x8_t mask = vshrn_n_u16(vreinterpretq_u16_u8(b), 4); + uint64_t nibbles = vget_lane_u64(vreinterpret_u64_u8(mask), 0); + if (nibbles) + { + return offset + MEM_CTZ64(nibbles) / 4 + size - 16; + } + offset += size; + } + + return offset; +} + +#endif // MEM_ARCH_ARM64 + + +#if MEM_ARCH_RVV + +int MemCompare_rvv(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + do + { + size_t vl = __riscv_vsetvl_e8m8(size); + + vuint8m8_t a = __riscv_vle8_v_u8m8(p1, vl); + vuint8m8_t b = __riscv_vle8_v_u8m8(p2, vl); + vbool1_t m = __riscv_vmsne_vv_u8m8_b1(a, b, vl); + + long index = __riscv_vfirst_m_b1(m, vl); + if (index >= 0) + { + return p1[index] - p2[index]; + } + + size -= vl; + p1 += vl; + p2 += vl; + } + while (size); + + return 0; +} + +int MemCompareI_rvv(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + do + { + size_t vl = __riscv_vsetvl_e8m8(size); + + vuint8m8_t a = __riscv_vle8_v_u8m8(p1, vl); + vuint8m8_t b = __riscv_vle8_v_u8m8(p2, vl); + + // mask = (uint8_t)(x - 'A') <= ('Z' - 'A') + vbool1_t am = __riscv_vmsleu_vx_u8m8_b1(__riscv_vsub_vx_u8m8(a, 'A', vl), 'Z' - 'A', vl); + vbool1_t bm = __riscv_vmsleu_vx_u8m8_b1(__riscv_vsub_vx_u8m8(b, 'A', vl), 'Z' - 'A', vl); + + // x = mask ? (x + 'a' - 'A') : x + a = __riscv_vadd_vx_u8m8_mu(am, a, a, 'a' - 'A', vl); + b = __riscv_vadd_vx_u8m8_mu(bm, b, b, 'a' - 'A', vl); + + vbool1_t m = __riscv_vmsne_vv_u8m8_b1(a, b, vl); + + long index = __riscv_vfirst_m_b1(m, vl); + if (index >= 0) + { + a = __riscv_vslidedown_vx_u8m8(a, (unsigned long)index, vl); + b = __riscv_vslidedown_vx_u8m8(b, (unsigned long)index, vl); + return __riscv_vmv_x_s_u8m8_u8(a) - __riscv_vmv_x_s_u8m8_u8(b); + } + + size -= vl; + p1 += vl; + p2 += vl; + } + while (size); + + return 0; +} + +bool MemIsEqual_rvv(const void* ptr1, const void* ptr2, size_t size) +{ + const uint8_t* p1 = (const uint8_t*)ptr1; + const uint8_t* p2 = (const uint8_t*)ptr2; + + do + { + size_t vl = __riscv_vsetvl_e8m8(size); + + vuint8m8_t a = __riscv_vle8_v_u8m8(p1, vl); + vuint8m8_t b = __riscv_vle8_v_u8m8(p2, vl); + vbool1_t m = __riscv_vmsne_vv_u8m8_b1(a, b, vl); + + if (__riscv_vcpop_m_b1(m, vl)) + { + return false; + } + + size -= vl; + p1 += vl; + p2 += vl; + } + while (size); + + return true; +} + +size_t MemFind_rvv(const void* ptr, size_t size, uint8_t value) +{ + const uint8_t* p = (const uint8_t*)ptr; + + size_t offset = 0; + do + { + size_t vl = __riscv_vsetvl_e8m8(size); + + vuint8m8_t a = __riscv_vle8_v_u8m8(p, vl); + vbool1_t m = __riscv_vmseq_vx_u8m8_b1(a, value, vl); + + long index = __riscv_vfirst_m_b1(m, vl); + if (index >= 0) + { + return offset + (unsigned long)index; + } + + offset += vl; + size -= vl; + p += vl; + } + while (size); + + return offset; +} + +#endif // MEM_ARCH_RVV + + +#if MEM_ARCH_X64 + +#define MEM_CPUID_INIT (1 << 0) +#define MEM_CPUID_AVX2 (1 << 1) +#define MEM_CPUID_AVX512 (1 << 2) + +MEM_TARGET_XSAVE +static int MemDoCPUID(void) +{ + int info[4]; + + MEM_CPUID(1, info); + int movbe = info[2] & (1 << 22); + int xsave = info[2] & (1 << 26); + + MEM_CPUID2(7, 0, info); + int bmi1 = info[1] & (1 << 3); + int avx2 = info[1] & (1 << 5); + int bmi2 = info[1] & (1 << 8); + + int avx512f = info[1] & (1 << 16); + int avx512bw = info[1] & (1 << 30); + int avx512vbmi = info[2] & (1 << 1); + + uint64_t xcr0 = xsave ? MEM_XGETBV(0) : 0; + int ymm = (xcr0 & 0x04) == 0x04; + int zmm = (xcr0 & 0xe0) == 0xe0; + + int cpuid = 0; + cpuid |= (ymm && avx2 && bmi1 && bmi2 && movbe) ? MEM_CPUID_AVX2 : 0; + cpuid |= (zmm && avx512f && avx512bw && avx512vbmi && bmi1 && bmi2) ? MEM_CPUID_AVX512 : 0; + return cpuid; +} + +#if MEM_COMPILER_MSVC +__forceinline +#endif +static int MemCPUID(void) +{ + int result = 0; + +#if (MEM_COMPILER_CLANG || MEM_COMPILER_GCC) && defined(__AVX512F__) && defined(__AVX512BW__) && defined(__AVX512VBMI__) && defined(__BMI__) && defined(__BMI2__) + result |= MEM_CPUID_AVX512; +#endif +#if MEM_COMPILER_MSVC && defined(__AVX512F__) && defined(__AVX512BW__) + result |= MEM_CPUID_AVX512; +#endif +#if (MEM_COMPILER_CLANG || MEM_COMPILER_GCC) && defined(__AVX2__) && defined(__BMI__) && defined(__BMI2__) && defined(__MOVBE__) + result |= MEM_CPUID_AVX2; +#endif +#if MEM_COMPILER_MSVC && defined(__AVX2__) + result |= MEM_CPUID_AVX2; +#endif + + if (result == 0) + { + static int cpuid; + + result = MEM_GET32_RELAXED(&cpuid); + if (result == 0) + { + result = MEM_CPUID_INIT | MemDoCPUID(); + MEM_SET32_RELAXED(&cpuid, result); + } + } + + return result; +} + +#endif // MEM_ARCH_X64 + + +int MemCompare(const void* ptr1, const void* ptr2, size_t size) +{ +#if MEM_ARCH_X64 + int cpuid = MemCPUID(); + if (cpuid & MEM_CPUID_AVX512) + { + return MemCompare_avx512(ptr1, ptr2, size); + } + else if (cpuid & MEM_CPUID_AVX2) + { + return MemCompare_avx2(ptr1, ptr2, size); + } + return MemCompare_sse2(ptr1, ptr2, size); +#elif MEM_ARCH_ARM64 + return MemCompare_arm64(ptr1, ptr2, size); +#elif MEM_ARCH_RVV + return MemCompare_rvv(ptr1, ptr2, size); +#else +# error N/A +#endif +} + +int MemCompareI(const void* ptr1, const void* ptr2, size_t size) +{ +#if MEM_ARCH_X64 + int cpuid = MemCPUID(); + if (cpuid & MEM_CPUID_AVX512) + { + return MemCompareI_avx512(ptr1, ptr2, size); + } + else if (cpuid & MEM_CPUID_AVX2) + { + return MemCompareI_avx2(ptr1, ptr2, size); + } + return MemCompareI_sse2(ptr1, ptr2, size); +#elif MEM_ARCH_ARM64 + return MemCompareI_arm64(ptr1, ptr2, size); +#elif MEM_ARCH_RVV + return MemCompareI_rvv(ptr1, ptr2, size); +#else +# error N/A +#endif +} + +bool MemIsEqual(const void* ptr1, const void* ptr2, size_t size) +{ +#if MEM_ARCH_X64 + int cpuid = MemCPUID(); + if (cpuid & MEM_CPUID_AVX512) + { + return MemIsEqual_avx512(ptr1, ptr2, size); + } + else if (cpuid & MEM_CPUID_AVX2) + { + return MemIsEqual_avx2(ptr1, ptr2, size); + } + return MemIsEqual_sse2(ptr1, ptr2, size); +#elif MEM_ARCH_ARM64 + return MemIsEqual_arm64(ptr1, ptr2, size); +#elif MEM_ARCH_RVV + return MemIsEqual_rvv(ptr1, ptr2, size); +#else +# error N/A +#endif +} + +size_t MemFind(const void* ptr, size_t size, uint8_t value) +{ +#if MEM_ARCH_X64 + int cpuid = MemCPUID(); + if (cpuid & MEM_CPUID_AVX512) + { + return MemFind_avx512(ptr, size, value); + } + else if (cpuid & MEM_CPUID_AVX2) + { + return MemFind_avx2(ptr, size, value); + } + return MemFind_sse2(ptr, size, value); +#elif MEM_ARCH_ARM64 + return MemFind_arm64(ptr, size, value); +#elif MEM_ARCH_RVV + return MemFind_rvv(ptr, size, value); +#else +# error N/A +#endif +} + +#endif // defined(MEM_STATIC) || defined(MEM_IMPLEMENTATION) diff --git a/src/third_party/radsort/radsort.h b/src/third_party/radsort/radsort.h index 9850a6ff..ee84f863 100644 --- a/src/third_party/radsort/radsort.h +++ b/src/third_party/radsort/radsort.h @@ -112,8 +112,15 @@ typedef void rs_small_sort_func( void * left, size_t n, size_t element_size, is_ #define RS_SMALL_FLIP_TO_INSERTION_GT_SIZE sizeof( size_t ) typedef struct RS_MAX_BUBBLE_BUF { char b[RS_SMALL_FLIP_TO_INSERTION_GT_SIZE]; } RS_MAX_BUBBLE_BUF; +#if _MSC_VER +# define radsort_break_ __debugbreak() +#else +# define radsort_break_ __builtin_trap() +#endif + #define radsort( start, len, is_before_func ) \ do { \ +if (sizeof((start)[0]) > sizeof(RS_MAX_SIMPLE_BUF)) { radsort_break_; } \ char __rs_tmp[ sizeof( (start)[0] ) ]; \ radsortinternal( start, len, sizeof( (start)[0] ), \ is_before_func, \ @@ -431,9 +438,9 @@ RSFORCEINLINE void radsortinternal( void * start, size_t len, size_t element_siz if ( len <= 1 ) return; -#if _DEBUG +#if BUILD_DEBUG if ( element_size > sizeof( RS_MAX_SIMPLE_BUF ) ) - __debugbreak(); + radsort_break_; #endif // stack for no recursion diff --git a/src/third_party/stb/stb_sprintf.h b/src/third_party/stb/stb_sprintf.h index 55f95241..9a5fe40d 100644 --- a/src/third_party/stb/stb_sprintf.h +++ b/src/third_party/stb/stb_sprintf.h @@ -436,7 +436,7 @@ cl = lg; \ } else #endif { - *(stbsp__uint32 *)bf = v; + memory_write32(bf, v); } bf += 4; f += 4; @@ -631,15 +631,17 @@ cl = lg; \ dp = 0; cs = 0; }goto scopy; - + case 'm': case 'M': { + stbsp__flush_cb(); + static const U64 one_kib = 1ull * 1024; static const U64 one_mib = 1ull * 1024 * 1024; static const U64 one_gib = 1ull * 1024 * 1024 * 1024; static const U64 one_tib = 1ull * 1024 * 1024 * 1024 * 1024; - + U64 size; if(f[0] == 'M') { @@ -649,11 +651,11 @@ cl = lg; \ { size = va_arg(va, U32); } - + U64 lo = 0; U64 hi = 0; char *units = ""; - + if(size < one_kib) { hi = size; @@ -684,7 +686,7 @@ cl = lg; \ lo = ((size * 100) / one_tib) % 100; units = "TiB"; } - + // format high part if(hi > 0) { @@ -705,37 +707,37 @@ cl = lg; \ *bf = '0'; ++bf; } - + // format low part if(lo > 0) { *bf = '.'; ++bf; - + s = num; for(U64 n = lo; n > 0; n /= 10ull) { *s = (char)(n % 10ull) + '0'; ++s; } - + U64 lead_zero_count = 3 - (U64)(s-num); for(U64 i = 1; i < lead_zero_count; ++i) { *bf = '0'; ++bf; } - + for(S64 i = (S64)(s-num)-1; i >= 0; --i) { *bf = num[i]; ++bf; } } - + *bf = ' '; ++bf; - + // copy units for(U64 i = 0; units[i] != 0; ++i) { @@ -743,30 +745,14 @@ cl = lg; \ ++bf; } }break; - + case 'r': { + stbsp__flush_cb(); Rng1U64 range = va_arg(va, Rng1U64); - *bf = '['; ++bf; - - U8 buffer[ARENA_HEADER_SIZE + 128]; - Arena *arena = arena_alloc_(&(ArenaParams){ .flags = ArenaFlag_NoChain, .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }); - - String8 min = str8_from_u64(arena, range.min, 16, 0, 0); - MemoryCopy(bf, min.str, min.size); - bf += min.size; - - *bf = ','; ++bf; - *bf = ' '; ++bf; - - arena_clear(arena); - String8 max = str8_from_u64(arena, range.max, 16, 0, 0); - MemoryCopy(bf, max.str, max.size); - bf += max.size; - - *bf = ')'; ++bf; + bf += STB_SPRINTF_DECORATE(sprintf)(bf, "[0x%llx, 0x%llx)", (unsigned long long)range.min, (unsigned long long)range.max); }break; - + // // NOTE(rjf): DEBUGGER PROJECT ADDITION ^^^ //- diff --git a/src/torture/torture.c b/src/torture/torture.c index ab845134..70a77111 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1,202 +1,69 @@ // Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -//////////////////////////////// -// Build Options +// command line +global String8 g_stdout_file_name = str8_lit_comp("torture.out"); +global String8 g_wdir; +global String8 g_exemplar_dir; +global String8 g_input_data_dir; +global String8 g_out = str8_lit_comp("torture_artifacts"); +global B32 g_verbose; +global B32 g_redirect_stdout = 1; +global B32 g_stop_on_first_fail_or_crash = 1; +global B32 g_build_only = 0; -#define BUILD_CONSOLE_INTERFACE 1 -#define BUILD_TITLE "TORTURE" +// tests +global TestInfo *g_sorted_test_infos[ArrayCount(test_infos)] = {0}; +global B32 g_is_first_print; + +// invoke +global U64 g_last_exit_code; +global Arena *g_output_arena; +global String8 g_output; +global String8 g_errors; + +// tools +global B32 g_gui; +global String8 g_radbin_path; +global String8 g_cl_path; +global String8 g_clang_path; +global String8 g_gcc_path; +global String8 g_linker_path; //////////////////////////////// -#include "third_party/xxHash/xxhash.c" -#include "third_party/xxHash/xxhash.h" -#include "third_party/radsort/radsort.h" - -//////////////////////////////// - -#include "base/base_inc.h" -#include "os/os_inc.h" -#include "coff/coff.h" -#include "coff/coff_parse.h" -#include "coff/coff_obj_writer.h" -#include "coff/coff_lib_writer.h" -#include "pe/pe.h" -#include "pe/pe_section_flags.h" -#include "linker/base_ext/base_core.h" -#include "linker/base_ext/base_arena.h" -#include "linker/base_ext/base_arrays.h" -#include "linker/hash_table.h" - -#include "base/base_inc.c" -#include "os/os_inc.c" -#include "coff/coff.c" -#include "coff/coff_parse.c" -#include "coff/coff_obj_writer.c" -#include "coff/coff_lib_writer.c" -#include "pe/pe.c" -#include "linker/hash_table.c" -#include "linker/base_ext/base_core.c" -#include "linker/base_ext/base_arena.c" -#include "linker/base_ext/base_arrays.c" - -#include "linker/lnk_cmd_line.h" -#include "linker/lnk_cmd_line.c" -#include "linker/lnk_error.h" - -//////////////////////////////// - -typedef enum -{ - T_Result_Fail, - T_Result_Crash, - T_Result_Pass, -} T_Result; - -typedef T_Result (*T_Run)(void); - -internal char * -t_string_from_result(T_Result v) -{ - switch (v) { - case T_Result_Fail: return "FAIL"; - case T_Result_Crash: return "CRASH"; - case T_Result_Pass: return "PASS"; - } - return 0; -} - -global String8 g_stdout_file_name = str8_lit_comp("torture.out"); -global U64 g_linker_time_out; -global String8 g_linker; -global String8 g_wdir; -global String8 g_out = str8_lit_comp("torture"); -global B32 g_verbose; -global B32 g_redirect_stdout = 1; - -#define T_LINKER_TIME_OUT_EXIT_CODE 999999 - -typedef enum -{ - T_Linker_Null, - T_Linker_RAD, - T_Linker_MSVC, - T_Linker_LLVM -} T_Linker; - -internal T_Linker -t_ident_linker(void) -{ - String8 name = g_linker; - name = str8_skip_last_slash(name); - name = str8_chop_last_dot(name); - if (str8_match(name, str8_lit("radlink"), StringMatchFlag_CaseInsensitive)) { - return T_Linker_RAD; - } - if (str8_match(name, str8_lit("link"), StringMatchFlag_CaseInsensitive)) { - return T_Linker_MSVC; - } - if (str8_match(name, str8_lit("lld-link"), StringMatchFlag_CaseInsensitive)) { - return T_Linker_LLVM; - } - return T_Linker_Null; -} - -internal int -t_invoke_linker_with_time_out(U64 time_out, String8 cmdline) -{ - Temp scratch = scratch_begin(0,0); - - OS_Handle output_redirect = {0}; - if (g_redirect_stdout) { - output_redirect = os_file_open(OS_AccessFlag_Append|OS_AccessFlag_ShareRead|OS_AccessFlag_ShareWrite|OS_AccessFlag_Inherited, g_stdout_file_name); - } - - // - // Build Launch Options - // - OS_ProcessLaunchParams launch_opts = {0}; - launch_opts.path = g_wdir; - launch_opts.inherit_env = 1; - launch_opts.stdout_file = output_redirect; - launch_opts.stderr_file = output_redirect; - str8_list_push(scratch.arena, &launch_opts.cmd_line, g_linker); - str8_list_push(scratch.arena, &launch_opts.cmd_line, str8_lit("/nologo")); - { - String8List parsed_cmdline = lnk_arg_list_parse_windows_rules(scratch.arena, cmdline); - str8_list_concat_in_place(&launch_opts.cmd_line, &parsed_cmdline); - } - - // - // Invoke Linker - // - int exit_code = -1; - { - if (g_verbose) { - String8 full_cmd_line = str8_list_join(scratch.arena, &launch_opts.cmd_line, &(StringJoin){ .sep = str8_lit(" ") }); - fprintf(stdout, "Command Line: %.*s\n", str8_varg(full_cmd_line)); - fprintf(stdout, "Working Dir: %.*s\n", str8_varg(g_wdir)); - } - - OS_Handle linker_handle = os_process_launch(&launch_opts); - if (os_handle_match(linker_handle, os_handle_zero())) { - fprintf(stderr, "unable to start process: %.*s\n", str8_varg(g_linker)); - } else { - U64 exit_code_u64 = 0; - B32 was_joined = os_process_join(linker_handle, time_out, &exit_code_u64); - exit_code = (int)exit_code_u64; - if (!was_joined) { - os_process_kill(linker_handle); - exit_code = T_LINKER_TIME_OUT_EXIT_CODE; - } - os_process_detach(linker_handle); - } - } - - if (g_redirect_stdout) { - os_file_close(output_redirect); - } - - scratch_end(scratch); - return exit_code; -} - -internal int -t_invoke_linker(String8 cmdline) -{ - return t_invoke_linker_with_time_out(max_U64, cmdline); -} - -internal int -t_invoke_linkerf(char *fmt, ...) -{ - Temp scratch = scratch_begin(0,0); - va_list args; - va_start(args, fmt); - String8 cmdline = push_str8fv(scratch.arena, fmt, args); - int exit_code = t_invoke_linker(cmdline); - va_end(args); - scratch_end(scratch); - return exit_code; -} - -internal int -t_invoke_linker_with_time_outf(U64 time_out, char *fmt, ...) -{ - Temp scratch = scratch_begin(0,0); - va_list args; - va_start(args, fmt); - String8 cmdline = push_str8fv(scratch.arena, fmt, args); - int exit_code = t_invoke_linker_with_time_out(time_out, cmdline); - va_end(args); - scratch_end(scratch); - return exit_code; -} - internal String8 -t_make_file_path(Arena *arena, String8 name) +t_name_from_test_info(Arena *arena, TestInfo *test_info) { - return push_str8f(arena, "%S\\%S", g_wdir, name); + String8 result = str8f(arena, "%S/%S", test_info->layer, test_info->label); + return result; +} + +internal String8List +t_test_layer_from_name(Arena *arena, String8 pattern) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List matches = {0}; + for EachIndex(i, test_infos_count) { + TestInfo *test_info = g_sorted_test_infos[i]; + if (str8_match_wildcard(t_name_from_test_info(scratch.arena, test_info), pattern, 0)) { + str8_list_push(arena, &matches, test_info->layer); + } + } + scratch_end(scratch); + return matches; +} + +//////////////////////////////// + +internal Linker +t_id_linker(void) +{ + String8 name = str8_chop_last_dot(str8_skip_last_slash(g_linker_path)); + if (str8_match(name, str8_lit("radlink"), StringMatchFlag_CaseInsensitive)) { return Linker_radlink; } + if (str8_match(name, str8_lit("link"), StringMatchFlag_CaseInsensitive)) { return Linker_msvc; } + if (str8_match(name, str8_lit("lld-link"), StringMatchFlag_CaseInsensitive)) { return Linker_lld; } + return Linker_Null; } internal B32 @@ -204,7 +71,7 @@ t_write_file_list(String8 name, String8List data) { Temp scratch = scratch_begin(0,0); String8 path = t_make_file_path(scratch.arena, name); - B32 is_written = os_write_data_list_to_file_path(path, data); + B32 is_written = write_data_list_to_file_path(path, data); scratch_end(scratch); return is_written; } @@ -214,10 +81,10 @@ t_write_file(String8 name, String8 data) { String8Node temp_node = {0}; temp_node.string = data; - + String8List temp_list = {0}; str8_list_push_node(&temp_list, &temp_node); - + return t_write_file_list(name, temp_list); } @@ -226,4881 +93,1115 @@ t_read_file(Arena *arena, String8 name) { Temp scratch = scratch_begin(&arena,1); String8 path = t_make_file_path(scratch.arena, name); - String8 data = os_data_from_file_path(arena, path); + String8 data = data_from_file_path(arena, path); scratch_end(scratch); return data; } -typedef struct +internal B32 +t_delete_file(String8 name) { - T_Run run; - T_Result result; -} T_RunCtx; + Temp scratch = scratch_begin(0,0); + String8 path = t_make_file_path(scratch.arena, name); + B32 is_deleted = delete_file_at_path(path); + scratch_end(scratch); + return is_deleted; +} + +internal void +t_delete_dir(String8 path) +{ + Temp scratch = scratch_begin(0,0); + + FileIter *file_iter = file_iter_begin(scratch.arena, path, 0); + for (;;) { + FileInfo info = {0}; + if ( ! file_iter_next(scratch.arena, file_iter, &info)) { break; } + + if (info.props.flags & FilePropertyFlag_IsFolder) { + t_delete_dir(str8f(scratch.arena, "%S/%S", path, info.name)); + + continue; + } + + String8 file_path = str8f(scratch.arena, "%S/%S", path, info.name); + if ( ! delete_file_at_path(file_path)) { + fprintf(stderr, "ERROR: unable to delete file %.*s\n", str8_varg(file_path)); + } + } + file_iter_end(file_iter); + + // TODO: delete directories + + scratch_end(scratch); +} + +internal String8 +t_make_file_path(Arena *arena, String8 name) +{ +#if OS_WINDOWS + return push_str8f(arena, "%S\\%S", g_wdir, name); +#else + return push_str8f(arena, "%S/%S", g_wdir, name); +#endif +} + +internal B32 +t_make_dir(String8 name) +{ + Temp scratch = scratch_begin(0,0); + B32 is_ok = make_directory(t_make_file_path(scratch.arena, name)); + scratch_end(scratch); + return is_ok; +} internal void t_run_caller(void *raw_ctx) { - T_RunCtx *ctx = raw_ctx; - ctx->result = ctx->run(); + Temp scratch = scratch_begin(0,0); + + g_is_first_print = 1; + + T_RunCtx *ctx = raw_ctx; + ctx->result.status = TestStatus_Pass; + + String8List test_out = {0}; + + if (ctx->test->skip) { + ctx->result.status = TestStatus_Skip; + } else { + TestCtx test_ctx = + { + .cmdline = ctx->cmdline, + .exemplars_path = g_exemplar_dir, + .artifacts_path = g_wdir, + .input_data_path = g_input_data_dir, + .result_out = &ctx->result, + .test_out = &test_out, + }; + ctx->test->test_fn(scratch.arena, &test_ctx); + } + + if (ctx->result.status == TestStatus_Fail || ctx->result.status == TestStatus_Crash) { + for EachNode(n, String8Node, test_out.first) { + t_errorf("%S", n->string); + } + if (g_errors.size) { + t_errorf("%S\n", g_errors); + } + if (g_output.size) { + t_errorf("%S\n", g_output); + } + } + + scratch_end(scratch); } -internal void -t_run_fail_handler(void *raw_ctx) +internal TestResult +t_run(CmdLine *cmdline, TestInfo *test, String8 user_data) { - T_RunCtx *ctx = raw_ctx; - ctx->result = T_Result_Crash; -} - -internal T_Result -t_run(T_Run run) -{ - T_RunCtx ctx = {0}; - ctx.run = run; - os_safe_call(t_run_caller, t_run_fail_handler, &ctx); + T_RunCtx ctx = { .test = test, .cmdline = cmdline, .user_data = user_data, .result.status = TestStatus_Fail }; + t_run_caller(&ctx); + + if (ctx.result.status == TestStatus_Fail || ctx.result.status == TestStatus_Crash) { + if (g_output.size > 0 || g_errors.size > 0) { + t_errorf("Last captured output:\n"); + if (g_output.size) { t_errorf("%S\n", g_output); } + if (g_errors.size) { t_errorf("%S\n", g_errors); } + } + } + + fflush(stdout); + fflush(stderr); + return ctx.result; } -internal COFF_SectionHeader * -t_coff_section_header_from_name(String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) +internal String8 +t_radbin_path(void) { - for (U64 sect_idx = 0; sect_idx < section_count; sect_idx += 1) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - String8 section_name = coff_name_from_section_header(string_table, section_header); - if (str8_match(section_name, name, 0)) { - return section_header; - } - } - return 0; -} - -internal COFF_SectionHeaderArray -t_coff_section_header_array_from_name(Arena *arena, String8 string_table, COFF_SectionHeader *section_table, U64 section_count, String8 name) -{ - U64 match_count = 0; - for (U64 sect_idx = 0; sect_idx < section_count; sect_idx += 1) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - String8 section_name = coff_name_from_section_header(string_table, section_header); - if (str8_match(section_name, name, 0)) { - match_count += 1; - } - } - - COFF_SectionHeader *matches = push_array(arena, COFF_SectionHeader, match_count); - for (U64 sect_idx = 0, match_idx = 0; sect_idx < section_count; sect_idx += 1) { - COFF_SectionHeader *section_header = §ion_table[sect_idx]; - String8 section_name = coff_name_from_section_header(string_table, section_header); - if (str8_match(section_name, name, 0)) { - matches[match_idx++] = *section_header; - } - } - - COFF_SectionHeaderArray result = {0}; - result.count = match_count; - result.v = matches; - - return result; -} - -//////////////////////////////////////////////////////////////// - -typedef enum -{ - T_MsvcLinkExitCode_UnresolvedExternals = 1120, - T_MsvcLinkExitCode_CorruptOrInvalidSymbolTable = 1235, - T_MsvcLinkExitCode_SectionsFoundWithDifferentAttributes = 4078, -} T_MsvcLinkExitCode; - -internal COFF_ObjSection * -t_push_text_section(COFF_ObjWriter *obj_writer, String8 data) -{ - return coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS | COFF_SectionFlag_Align1Bytes, data); -} - -internal COFF_ObjSection * -t_push_data_section(COFF_ObjWriter *obj_writer, String8 data) -{ - return coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, data); -} - -internal COFF_ObjSection * -t_push_rdata_section(COFF_ObjWriter *obj_writer, String8 data) -{ - return coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, data); -} - -internal void -t_write_entry_obj(void) -{ - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { 0xc3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - String8 obj = coff_obj_writer_serialize(obj_writer->arena, obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - AssertAlways(!"unable to write entry obj"); - } - coff_obj_writer_release(&obj_writer); -} - -//////////////////////////////// - -internal T_Result -t_machine_compat_check(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Unknown); - t_push_data_section(obj_writer, str8_lit("unknown")); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("unknown.obj"), obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - t_push_data_section(obj_writer, str8_lit("x64")); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("x64.obj"), obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_Arm64); - t_push_data_section(obj_writer, str8_lit("arm64")); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("arm64.obj"), obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int linker_exit_code; - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj unknown.obj x64.obj arm64.obj"); - if (linker_exit_code == 0) { - goto exit; - } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /machine:amd64 arm64.obj entry.obj"); - if (linker_exit_code == 0) { - goto exit; - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_out_of_bounds_section_number(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *foo = coff_obj_writer_push_section(obj_writer, str8_lit(".foo"), PE_DATA_SECTION_FLAGS, str8_lit("foo")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, foo); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - { - COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); - String8 string_table = str8_substr(obj, header.string_table_range); - String8 symbol_table = str8_substr(obj, header.symbol_table_range); - COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 0); - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - symbol16->section_number = 123; - } - if (!t_write_file(str8_lit("bad.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("foo")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); - if (linker_exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_IllData) { goto exit; } - - result = T_Result_Pass; - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_merge(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_DATA_SECTION_FLAGS, str8_lit("hello, world")); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("test.obj"), obj)) { - goto exit; - } - } - - t_write_entry_obj(); - - int linker_exit_code; - - // circular merge - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.test entry.obj test.obj"); - if (linker_exit_code == 0) { - goto exit; - } - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_CircularMerge) { - goto exit; - } - } - - // circular merge with extra link - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.data /merge:.data=.test entry.obj test.obj"); - if (linker_exit_code == 0) { - goto exit; - } - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_CircularMerge) { - goto exit; - } - } - - // merge with non-defined section - { - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe entry.obj test.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - // make sure linker created .qwe and merged .test into it - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".qwe")); - if (sect == 0) { - goto exit; - } - if (sect->flags != PE_DATA_SECTION_FLAGS) { - goto exit; - } - String8 qwe = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(qwe, str8_lit("hello, world"),0)) { - goto exit; - } - } - - // illegal merge with .reloc - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.reloc entry.obj test.obj"); - if (linker_exit_code == 0) { - goto exit; - } - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_IllegalSectionMerge) { - goto exit; - } - } - - // illegal merge with .rsrc - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.rsrc entry.obj test.obj"); - if (linker_exit_code == 0) { - goto exit; - } - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_IllegalSectionMerge) { - goto exit; - } - } - - // merge non-defined section with defined section - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.qwe=.test entry.obj test.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - // merge .test -> .qwe -> .data - { - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /merge:.test=.qwe /merge:.qwe=.data entry.obj test.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - // make sure linker merged .test into .data - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".data")); - if (sect == 0) { - goto exit; - } - if (sect->flags != PE_DATA_SECTION_FLAGS) { - goto exit; - } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("hello, world"),0)) { - goto exit; - } - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_simple_link_test(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - U8 text_payload[] = { 0xC3 }; - - String8 main_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text_payload)); - coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, str8_lit("qwe")); - coff_obj_writer_push_section(obj_writer, str8_lit(".zero"), PE_BSS_SECTION_FLAGS, str8(0, 5)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 main_obj_name = str8_lit("main.obj"); - if (!t_write_file(main_obj_name, main_obj)) { - goto exit; - } - - int file_align = 512; - int virt_align = 4096; - String8 out_name = str8_lit("a.exe"); - int linker_exit_code = t_invoke_linkerf("/entry:my_entry /subsystem:console /fixed /filealign:%d /align:%d /out:%S %S", file_align, virt_align, out_name, main_obj_name); - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, out_name); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - if (pe.is_pe32) { - goto exit; - } - if (pe.section_count != 3) { - goto exit; - } - if (pe.arch != Arch_x64) { - goto exit; - } - if (pe.subsystem != PE_WindowsSubsystem_WINDOWS_CUI) { - goto exit; - } - if (pe.virt_section_align != virt_align) { - goto exit; - } - if (pe.file_section_align != file_align) { - goto exit; - } - if (pe.symbol_count != 0) { - goto exit; - } - if (pe.data_dir_count != PE_DataDirectoryIndex_COUNT) { - goto exit; - } - - // check section alignment - for (U64 sect_idx = 0; sect_idx < pe.section_count; sect_idx += 1) { - COFF_SectionHeader *sect_header = §ion_table[sect_idx]; - if (AlignPadPow2(sect_header->fsize, file_align) != 0) { - goto exit; - } - if (AlignPadPow2(sect_header->voff, virt_align) != 0) { - goto exit; - } - } - - COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (!text_section) { - goto exit; - } - if (text_section->foff != file_align) { - goto exit; - } - if (pe.entry_point != text_section->voff) { - goto exit; - } - - COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (data_section == 0) { - goto exit; - } - - COFF_SectionHeader *zero_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".zero")); - if (zero_section == 0) { - goto exit; - } - - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->vsize)); - if (!str8_match(text_data, str8_array_fixed(text_payload), 0)) { - goto exit; - } - - PE_OptionalHeader32Plus *opt = str8_deserial_get_raw_ptr(exe, pe.optional_header_off, sizeof(*opt)); - if (opt->sizeof_code != text_section->fsize) { - goto exit; - } - if (opt->sizeof_inited_data != text_section->fsize + data_section->fsize) { - goto exit; - } - if (opt->sizeof_uninited_data != 0x200) { - goto exit; - } - if (opt->code_base != 0x1000) { - goto exit; - } - if (opt->image_base != 0x140000000) { - goto exit; - } - if (opt->major_os_ver != 6) { - goto exit; - } - if (opt->minor_os_ver != 0) { - goto exit; - } - if (opt->major_img_ver != 0) { - goto exit; - } - if (opt->minor_img_ver != 0) { - goto exit; - } - if (opt->major_subsystem_ver != 6) { - goto exit; - } - if (opt->minor_subsystem_ver != 0) { - goto exit; - } - if (opt->win32_version_value != 0) { - goto exit; - } - if (opt->sizeof_image != 0x4000) { - goto exit; - } - if (opt->sizeof_headers != 0x200) { - goto exit; - } - if (opt->dll_characteristics != 0x8120) { - goto exit; - } - if (opt->loader_flags != 0) { - goto exit; - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_link_undef(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 undef_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("undef")); - undef_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("undef")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("undef.obj"), undef_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // try linking unresolved symbol and see if linker picks up on that - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj undef.obj"); - if (linker_exit_code != LNK_Error_UnresolvedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_link_unref_undef(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 undef_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("undef")); - undef_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { 0xc3 }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("undef.obj"), undef_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // try linking unreferenced unresolved symbol, this must link - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj undef.obj"); - if (linker_exit_code == 0) { goto exit; } - - result = T_Result_Pass; - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_lib_vs_weak_lib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code; - - // linker must pick weak symbol from a.obj - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x111; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - // linker must pick weak symbol from entry.obj - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_lib_vs_weak_nolib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from entry.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_lib_vs_weak_alias(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from entry.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_lib_vs_weak_antidep(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from a.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_alias_vs_weak_alias(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *qwe = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("qwe"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("sym"), COFF_WeakExt_SearchAlias, qwe); - a = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 b; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *ewq = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("ewq"), 0x222, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("sym"), COFF_WeakExt_SearchAlias, ewq); - b = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("sym")); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a)) { goto exit; } - if (!t_write_file(str8_lit("b.obj"), b)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); - if (linker_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_alias_vs_weak_lib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from entry.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_alias_vs_weak_nolib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from entry.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_alias_vs_weak_antidep(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - // linker must pick weak symbol from entry.obj - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_nolib_vs_weak_nolib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_nolib_vs_weak_lib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_nolib_vs_weak_alias(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_nolib_vs_weak_antidep(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_antidep_vs_weak_antidep(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code; - - // linker must pick weak symbol from a.obj - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x111; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - // linker must pick weak symbol from entry.obj - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_antidep_vs_weak_nolib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_NoLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_antidep_vs_weak_lib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x222; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_antidep_vs_weak_alias(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("q"), 0x111, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchAlias, q); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *e = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("e"), 0x222, COFF_SymStorageClass_External); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_AntiDependency, e); - coff_obj_writer_section_push_reloc_addr32(obj_writer, sect, 3, sym); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj"); - if (linker_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - String8 imm = str8_substr(text_data, rng_1u64(3, 7)); - U32 expected = 0x111; - if (!str8_match(imm, str8_struct(&expected), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_vs_common(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 weak_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("a")); - COFF_ObjSymbol *sect_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("_a"), 0, sect); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("w"), COFF_WeakExt_SearchLibrary, sect_symbol); - weak_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 common_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_common(obj_writer, str8_lit("w"), 2); - common_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("w")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("weak.obj"), weak_obj)) { goto exit; } - if (!t_write_file(str8_lit("common.obj"), common_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code; - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe common.obj weak.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe weak.obj common.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *bss = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); - if (!bss) { goto exit; } - if (bss->fsize != 0) { goto exit; } - if (bss->vsize != 2) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_abs_vs_weak(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - U32 abs_value = 0x123; - U8 text_code[] = { 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3 }; - - String8 abs_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), abs_value, COFF_SymStorageClass_External); - abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 text_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - COFF_ObjSection *mydata = coff_obj_writer_push_section(obj_writer, str8_lit(".mydata"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_Align1Bytes, str8_lit("mydata")); - COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("mydata"), 0, mydata); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("foo"), COFF_WeakExt_NoLibrary, tag); - - COFF_ObjSection *text = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_CntCode|COFF_SectionFlag_MemExecute|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, str8_array_fixed(text_code)); - coff_obj_writer_section_push_reloc(obj_writer, text, 2, foo, COFF_Reloc_X64_Addr64); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text); - - text_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("abs.obj"), abs_obj)) { goto exit; } - if (!t_write_file(str8_lit("text.obj"), text_obj)) { goto exit; } - - int abs_vs_weak_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe abs.obj text.obj")); - if (abs_vs_weak_exit_code != 0) { goto exit; } - - int weak_vs_abs_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe text.obj abs.obj")); - if (weak_vs_abs_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_section == 0) { goto exit; } - - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + text_section->fsize)); - String8 inst = str8_prefix(text_data, 2); - if (!str8_match(inst, str8_array(text_code, 2), 0)) { goto exit; } - - String8 imm = str8_prefix(str8_skip(text_data, 2), 8); - U64 expected_imm = abs_value; - if (!str8_match(imm, str8_struct(&expected_imm), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_abs_vs_regular(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - String8 shared_symbol_name = str8_lit("foo"); - - U8 regular_payload[] = { 0xC0, 0xFF, 0xEE }; - String8 regular_obj_name = str8_lit("regular.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(regular_payload)); - coff_obj_writer_push_symbol_extern(obj_writer, shared_symbol_name, 0, data_sect); - String8 regular_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(regular_obj_name, regular_obj)) { - goto exit; - } - } - - String8 abs_obj_name = str8_lit("abs.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, shared_symbol_name, 0x1234, COFF_SymStorageClass_External); - String8 abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(abs_obj_name, abs_obj)) { - goto exit; - } - } - - U8 entry_text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - COFF_ObjSymbol *shared_symbol = coff_obj_writer_push_symbol_undef(obj_writer, shared_symbol_name); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, shared_symbol, COFF_Reloc_X64_Addr32Nb); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - // TODO: validate that linker issues multiply defined symbol error - int abs_vs_regular_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj regular.obj entry.obj"); - if (abs_vs_regular_exit_code == 0) { - // linker should complain about multiply defined symbol - goto exit; - } - - int regular_vs_abs_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe regular.obj abs.obj entry.obj"); - if (regular_vs_abs_exit_code == 0) { - // linker should complain even in case regular is before abs - goto exit; - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_abs_vs_common(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 shared_symbol_name = str8_lit("foo"); - - String8 common_obj_name = str8_lit("common.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_common(obj_writer, shared_symbol_name, 321); - String8 common_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(common_obj_name, common_obj)) { - goto exit; - } - } - - String8 abs_obj_name = str8_lit("abs.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, shared_symbol_name, 0x1234, COFF_SymStorageClass_External); - String8 abs_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(abs_obj_name, abs_obj)) { - goto exit; - } - } - - U8 entry_text[] = { 0xC3 }; - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe abs.obj common.obj entry.obj"); - if (linker_exit_code == 0) { - // TODO: validate that linker issues multiply defined symbol error - int common_vs_abs = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe common.obj abs.obj entry.obj"); - if (t_ident_linker() == T_Linker_RAD) { - if (common_vs_abs == LNK_Error_MultiplyDefinedSymbol) { - result = T_Result_Pass; - } - } else { - if (common_vs_abs != 0) { - result = T_Result_Pass; - } - } - } - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_abs_vs_abs(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), 'a', COFF_SymStorageClass_External); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 b_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("foo"), 'b', COFF_SymStorageClass_External); - b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("b.obj"), b_obj)) { goto exit; } - t_write_entry_obj(); - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); - if (linker_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_undef_weak_lib(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 weak; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSymbol *b = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("b"), 0xc3000000, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("a"), COFF_WeakExt_SearchLibrary, b); - weak = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSymbol *sym = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("a")); - U8 text[4] = {0}; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, sym); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - entry = coff_obj_writer_serialize(scratch.arena, obj_writer); - } - - if (!t_write_file(str8_lit("weak.obj"), weak)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry)) { goto exit; } - - // undefined symbol must always replace weak symbol with search library - int linker_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry entry.obj weak.obj"); - if (linker_exit_code != LNK_Error_UnresolvedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_undef_weak_search_alias(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 weak_obj; - { - U8 weak_payload[] = { 0xDE, 0xAD, 0xBE, 0xEF }; - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *weak_sect = t_push_data_section(obj_writer, str8_array_fixed(weak_payload)); - COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("ptr")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("foo"), COFF_WeakExt_SearchAlias, tag); - weak_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 ptr_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *tag = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("entry")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("ptr"), COFF_WeakExt_SearchAlias, tag); - ptr_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 undef_obj; - { - U8 undef_obj_payload[] = { 0x00, 0x00, 0x00, 0x00 }; - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *undef_sect = t_push_data_section(obj_writer, str8_array_fixed(undef_obj_payload)); - COFF_ObjSymbol *undef_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("foo")); - coff_obj_writer_section_push_reloc(obj_writer, undef_sect, 0, undef_symbol, COFF_Reloc_X64_Addr32Nb); - undef_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - U8 entry_payload[] = {0xC3}; - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("weak.obj"), weak_obj)) { goto exit; } - if (!t_write_file(str8_lit("ptr.obj"), ptr_obj)) { goto exit; } - if (!t_write_file(str8_lit("undef.obj"), undef_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe weak.obj entry.obj ptr.obj undef.obj"); - if (linker_exit_code != 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_cycle(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - String8 ab_obj_name = str8_lit("ab.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *b = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("B")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("A"), COFF_WeakExt_SearchAlias, b); - String8 ab_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(ab_obj_name, ab_obj)) { - goto exit; - } - } - - String8 ba_obj_name = str8_lit("ba.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *a = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("A")); - coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("B"), COFF_WeakExt_SearchAlias, a); - String8 ba_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(ba_obj_name, ba_obj)) { - goto exit; - } - } - - String8 entry_obj_name = str8_lit("entry.obj"); - U8 entry_payload[] = { 0xC3 }; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_payload)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - U64 time_out = os_now_microseconds() + 3 * 1000 * 1000; // give a generous 3 seconds - int linker_exit_code = t_invoke_linker_with_time_outf(time_out, "/subsystem:console /entry:my_entry %S %S %S", entry_obj_name, ab_obj_name, ba_obj_name); - if (linker_exit_code != T_LINKER_TIME_OUT_EXIT_CODE) { - if (t_ident_linker() == T_Linker_MSVC) { - if (linker_exit_code == T_MsvcLinkExitCode_UnresolvedExternals) { - result = T_Result_Pass; - } - } else { - result = T_Result_Pass; - } - } - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_weak_tag(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - U32 weak_tag_expected_value = 0x12345678; - String8 weak_tag_obj_name = str8_lit("weak_tag.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *tag_symbol = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("abs"), weak_tag_expected_value, COFF_SymStorageClass_Static); - COFF_ObjSymbol *weak_first = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_first"), COFF_WeakExt_SearchAlias, tag_symbol); - COFF_ObjSymbol *weak_second = coff_obj_writer_push_symbol_weak(obj_writer, str8_lit("strong_second"), COFF_WeakExt_SearchAlias, weak_first); - - U8 sect_data[4] = {0}; - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(sect_data)); - coff_obj_writer_section_push_reloc(obj_writer, sect, 0, weak_second, COFF_Reloc_X64_Addr32); - - String8 weak_tag_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(weak_tag_obj_name, weak_tag_obj)) { goto exit; } - } - - String8 entry_name = str8_lit("my_entry"); - U8 entry_text[] = { 0xC3 }; - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe %S %S", weak_tag_obj_name, entry_obj_name); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); - if (!data_section) { goto exit; } - if (data_section->vsize != 4) { goto exit; } - if (!str8_match(data, str8_struct(&weak_tag_expected_value), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; + if (g_radbin_path.size == 0) { + local_persist U8 buffer[4096]; + Arena *arena = arena_alloc_(&(ArenaParams){ .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }); +#if OS_WINDOWS + g_radbin_path = full_path_from_path(arena, str8_lit("radbin.exe")); +#else + g_radbin_path = full_path_from_path(arena, str8_lit("radbin")); +#endif + } + AssertAlways(g_radbin_path.size); + return g_radbin_path; } internal String8 -t_make_sec_defn_obj(Arena *arena, String8 payload) +t_cl_path(void) { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *mysect_section = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes, payload); - coff_obj_writer_push_symbol_secdef(obj_writer, mysect_section, COFF_ComdatSelect_Null); - String8 obj = coff_obj_writer_serialize(arena, obj_writer); - coff_obj_writer_release(&obj_writer); - return obj; + if (g_cl_path.size == 0) { +#if OS_WINDOWS + local_persist U8 buffer[4096]; + Arena *arena = arena_alloc_(&(ArenaParams){ .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }); + wchar_t full_path[MAX_PATH]; + DWORD full_path_size = SearchPathW(0, L"cl.exe", 0, ArrayCount(full_path), full_path, 0); + g_cl_path = str8_from_16(arena, str16((U16*)full_path, full_path_size)); +#else + g_cl_path = str8_zero(); +#endif + } + AssertAlways(g_cl_path.size); + return g_cl_path; } -internal T_Result -t_undef_section(void) +internal String8 +t_clang_path(void) { - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 main_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - U8 data[] = { 0, 0, 0, 0 }; - COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect"), COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead); - coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr32Nb); - - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_section = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); - - main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - - coff_obj_writer_release(&obj_writer); + if (g_clang_path.size == 0) { +#if OS_WINDOWS + local_persist U8 buffer[4096]; + Arena *arena = arena_alloc_(&(ArenaParams){ .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }); + wchar_t full_path[MAX_PATH]; + DWORD full_path_size = SearchPathW(0, L"clang.exe", 0, ArrayCount(full_path), full_path, 0); + g_clang_path = str8_from_16(arena, str16((U16*)full_path, full_path_size)); +#else + g_clang_path = str8_lit("clang"); +#endif } - - U8 payload[] = { 1, 2, 3 }; - String8 sec_defn_obj = t_make_sec_defn_obj(scratch.arena, str8_array_fixed(payload)); - - t_write_file(str8_lit("main.obj"), main_obj); - t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); - - int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj")); - if (linker_exit_code == 0) { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - COFF_SectionHeader *mysect_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".mysect")); - if (data_section && mysect_section) { - if (data_section->vsize == 4 && mysect_section->vsize == 3) { - String8 addr32nb = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); - String8 expected_voff = str8_struct(&mysect_section->voff); - if (str8_match(addr32nb, expected_voff, 0)) { - result = T_Result_Pass; - } - } - } - } - - scratch_end(scratch); - return result; + AssertAlways(g_clang_path.size); + return g_clang_path; } -internal T_Result -t_sect_symbol(void) +internal String8 +t_gcc_path(void) { - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - String8 sect_payload = str8_lit("hello, world"); - String8 sect_obj_name = str8_lit("sect.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect$1"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, sect_payload); - coff_obj_writer_push_directive(obj_writer, str8_lit("/merge:.mysect=.data")); - String8 sect_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(sect_obj_name, sect_obj)) { - goto exit; - } + if (g_gcc_path.size == 0) { +#if OS_WINDOWS + local_persist U8 buffer[4096]; + Arena *arena = arena_alloc_(&(ArenaParams){ .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }); + wchar_t full_path[MAX_PATH]; + DWORD full_path_size = SearchPathW(0, L"gcc.exe", 0, ArrayCount(full_path), full_path, 0); + g_gcc_path = str8_from_16(arena, str16((U16*)full_path, full_path_size)); +#else + g_gcc_path = str8_lit("gcc"); +#endif } - - String8 main_obj_name = str8_lit("main.obj"); - { - U8 data[8] = {0}; - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".mysect$2222"), PE_DATA_SECTION_FLAGS); - coff_obj_writer_section_push_reloc_addr(obj_writer, sect, 0, symbol); - - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - - String8 main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - - if (!t_write_file(main_obj_name, main_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe main.obj sect.obj"); - - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - - if (!sect) { - goto exit; - } - - String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - - String8 addr_data = str8_substr(sect_data, rng_1u64(0, sizeof(U64))); - if (addr_data.size != sizeof(U64)) { - goto exit; - } - U64 addr = *(U64 *)addr_data.str; - if (addr - (pe.image_base + sect->voff) != 8) { - goto exit; - } - - String8 payload_got = str8_substr(sect_data, rng_1u64(8, sect_data.size)); - if (!str8_match(payload_got, sect_payload, 0)) { - goto exit; - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; + AssertAlways(g_gcc_path.size); + return g_gcc_path; } -internal T_Result -t_undef_reloc_section(void) +internal String8 +t_cl_version(void) { - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 main_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_section = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - COFF_ObjSymbol *my_entry_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_section); - - U8 data[8] = { 0 }; - COFF_ObjSection *data_section = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *foo = coff_obj_writer_push_symbol_undef_sect(obj_writer, str8_lit(".reloc"), PE_RELOC_SECTION_FLAGS); - coff_obj_writer_section_push_reloc(obj_writer, data_section, 0, foo, COFF_Reloc_X64_Addr64); - - main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - - coff_obj_writer_release(&obj_writer); - } - - U8 payload[] = { 1, 2, 3 }; - String8 sec_defn_obj = t_make_sec_defn_obj(scratch.arena, str8_array_fixed(payload)); - - t_write_file(str8_lit("main.obj"), main_obj); - t_write_file(str8_lit("sec_defn.obj"), sec_defn_obj); - - int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj sec_defn.obj")); - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_SectRefsDiscardedMemory) { - goto exit; - } - } else if (linker_exit_code == 0) { - goto exit; - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_find_merged_pdata(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - U8 foobar_payload[] = { - 0x40, 0x57, 0x48, 0x81, 0xEC, 0x00, 0x02, 0x00, 0x00, 0x48, 0x8B, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x48, 0x33, 0xC4, 0x48, 0x89, 0x84, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, 0x8D, 0x04, 0x24, 0x48, - 0x8B, 0xF8, 0x33, 0xC0, 0xB9, 0xEC, 0x01, 0x00, 0x00, 0xF3, 0xAA, 0xB8, 0x04, 0x00, 0x00, 0x00, - 0x48, 0x6B, 0xC0, 0x02, 0x8B, 0x04, 0x04, 0x48, 0x8B, 0x8C, 0x24, 0xF0, 0x01, 0x00, 0x00, 0x48, - 0x33, 0xCC, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x81, 0xC4, 0x00, 0x02, 0x00, 0x00, 0x5F, 0xC3, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, - 0x48, 0x83, 0xEC, 0x28, 0xE8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x83, 0xC4, 0x28, 0xC3 - }; - U8 xdata_payload[] = { - 0x19, 0x1B, 0x03, 0x00, 0x09, 0x01, 0x40, 0x00, 0x02, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xF0, 0x01, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x04, 0x42, 0x00, 0x00 - }; - PE_IntelPdata intel_pdata = {0}; - U8 text_payload[] = { 0xC3 }; - - String8 main_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *xdata = coff_obj_writer_push_section(obj_writer, str8_lit(".xdata"), COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_Align4Bytes, str8_array_fixed(xdata_payload)); - COFF_ObjSection *pdata = coff_obj_writer_push_section(obj_writer, str8_lit(".pdata"), COFF_SectionFlag_MemRead|COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_Align4Bytes, str8_struct(&intel_pdata)); - COFF_ObjSection *foobar = coff_obj_writer_push_section(obj_writer, str8_lit(".foobar"), COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_CntCode|COFF_SectionFlag_Align1Bytes, str8_array_fixed(foobar_payload)); - COFF_ObjSection *text = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute|COFF_SectionFlag_CntCode|COFF_SectionFlag_Align1Bytes, str8_array_fixed(text_payload)); - - COFF_ObjSymbol *foobar_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("foobar"), 0, foobar); - - coff_obj_writer_push_symbol_secdef(obj_writer, xdata, COFF_ComdatSelect_Null); - COFF_ObjSymbol *unwind_foobar = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("$unwind$foobar"), 0, xdata); - - coff_obj_writer_push_symbol_secdef(obj_writer, pdata, COFF_ComdatSelect_Null); - coff_obj_writer_push_symbol_static(obj_writer, str8_lit("$pdata$foobar"), 0, pdata); - - coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_unwind_info), unwind_foobar, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_first), foobar_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_section_push_reloc(obj_writer, pdata, OffsetOf(PE_IntelPdata, voff_one_past_last), foobar_symbol, COFF_Reloc_X64_Addr32Nb); - - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text); - main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - t_write_file(str8_lit("main.obj"), main_obj); - - int linker_exit_code = t_invoke_linker(str8_lit("/subsystem:console /entry:my_entry /out:a.exe main.obj /merge:.pdata=.rdata")); - if (linker_exit_code == 0) { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - if (dim_1u64(pe.data_dir_franges[PE_DataDirectoryIndex_EXCEPTIONS]) == 0xC) { - result = T_Result_Pass; - } - } - - scratch_end(scratch); - return result; -} - -internal T_Result -t_section_sort(void) -{ - Temp scratch = scratch_begin(0,0); + local_persist String8 version; - T_Result result = T_Result_Fail; - - String8 data_obj_name = str8_lit("data.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - COFF_SectionFlags data_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemRead|COFF_SectionFlag_Align1Bytes; - coff_obj_writer_push_section(obj_writer, str8_lit(".data$z"), data_flags, str8_lit("five")); - coff_obj_writer_push_section(obj_writer, str8_lit(".data$a"), data_flags, str8_lit("three")); - coff_obj_writer_push_section(obj_writer, str8_lit(".data$bbbbb"), data_flags, str8_lit("four")); - coff_obj_writer_push_section(obj_writer, str8_lit(".data$"), data_flags, str8_lit("two")); - coff_obj_writer_push_section(obj_writer, str8_lit(".data"), data_flags, str8_lit("one")); - - String8 data_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(data_obj_name, data_obj)) { - goto exit; - } + if ( ! version.size) { + Temp scratch = scratch_begin(0, 0); + + t_invoke_cl(""); + AssertAlways(g_last_exit_code == 0); + + String8 needle = str8_lit("Version"); + U64 version_lo = str8_find_needle(g_output, 0, needle, 0); + version_lo += needle.size + 1; + AssertAlways(version_lo < g_output.size); + + U64 version_hi = str8_find_needle(g_output, version_lo, str8_lit(" "), 0); + AssertAlways(version_hi < g_output.size); + + version = str8_substr(g_output, r1u64(version_lo, version_hi)); + AssertAlways(version.size > 0); + + local_persist U8 buffer[4096]; + ArenaParams params = { .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }; + Arena *arena = arena_alloc_(¶ms); + version = str8_copy(arena, version); + + MemoryZeroStruct(&g_output); + scratch_end(scratch); } - - String8 entry_obj_name = str8_lit("entry.obj"); - U8 entry_text[] = { 0xC3 }; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe data.obj entry.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *data_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (!data_section) { - goto exit; - } - - String8 data = str8_substr(exe, rng_1u64(data_section->foff, data_section->foff + data_section->vsize)); - String8 expected_data = str8_lit("onetwothreefourfive"); - if (!str8_match(data, expected_data, 0)) { - goto exit; - } - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_flag_conf(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - COFF_SectionFlags my_sect0_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemExecute; - COFF_SectionFlags my_sect1_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead|COFF_SectionFlag_MemWrite; - String8 conf_obj_name = str8_lit("conf.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *a_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), my_sect0_flags, str8_lit("one")); - COFF_ObjSection *b_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".mysect"), my_sect1_flags, str8_lit("two")); - String8 conf_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(conf_obj_name, conf_obj)) { - goto exit; - } - } - - U8 entry_text[] = { 0xC3 }; - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe conf.obj entry.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeaderArray my_sects = t_coff_section_header_array_from_name(scratch.arena, string_table, section_table, pe.section_count, str8_lit(".mysect")); - - if (my_sects.count != 2) { - goto exit; - } - - COFF_SectionHeader *my_sect0 = &my_sects.v[0]; - COFF_SectionHeader *my_sect1 = &my_sects.v[1]; - if (my_sect0->flags != my_sect0_flags) { - goto exit; - } - if (my_sect1->flags != my_sect1_flags) { - goto exit; - } - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_invalid_bss(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - COFF_SectionFlags bss_flags = COFF_SectionFlag_CntInitializedData|COFF_SectionFlag_MemRead; - String8 bss_obj_name = str8_lit("bss.obj"); - String8 bss_data = str8_lit("Hello, World"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), bss_flags, bss_data); - String8 bss_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(bss_obj_name, bss_obj)) { - goto exit; - } - } - - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe bss.obj entry.obj"); - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *bss_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".bss")); - if (bss_sect == 0) { - goto exit; - } - if (bss_sect->vsize != 0xC) { - goto exit; - } - if (bss_sect->flags != bss_flags) { - goto exit; - } - String8 data = str8_substr(exe, rng_1u64(bss_sect->foff, bss_sect->foff + bss_sect->vsize)); - if (!str8_match(data, bss_data, 0)) { - goto exit; - } - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_common_block(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - String8 a_obj_name = str8_lit("a.obj"); - U8 a_data[6] = {0}; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("A"), 3); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(a_data)); - data_sect->flags |= COFF_SectionFlag_Align1Bytes; - coff_obj_writer_push_section(obj_writer, str8_lit(".bss"), PE_BSS_SECTION_FLAGS, str8(0, 1)); // shift common block's initial position - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr32); - String8 a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(a_obj_name, a_obj)) { goto exit; } - } - - String8 b_obj_name = str8_lit("b.obj"); - U8 b_data[9] = { 0 }; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(b_data)); - data_sect->flags |= COFF_SectionFlag_Align1Bytes; - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_common(obj_writer, str8_lit("B"), 6); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, symbol, COFF_Reloc_X64_Addr64); - String8 b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(b_obj_name, b_obj)) { goto exit; } - } - - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /fixed /largeaddressaware:no /merge:.bss=.comm a.obj b.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - COFF_SectionHeader *comm_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".comm")); - COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (comm_sect == 0) { goto exit; } - if (data_sect == 0) { goto exit; } - - // blocks must be sorted in descending order to reduce alignment padding - if (comm_sect->vsize != 0x13) { goto exit; } - - // ensure linker correctly patched addresses for symbols pointing into common block - String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); - U32 *a_addr = (U32 *)data.str; - U64 *b_addr = (U64 *)(data.str + sizeof(a_data)); - if (*a_addr != (pe.image_base + comm_sect->voff + 0x10)) { goto exit; } - if (*b_addr != (pe.image_base + comm_sect->voff + 0x8)) { goto exit; } - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; + return version; } -internal T_Result -t_base_relocs(void) +internal String8 +t_radlink_path(void) { - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - // main.obj - String8 entry_name = str8_lit("my_entry"); - U64 mov_func_name64 = 2; - U64 mov_func_name32 = 16; - U8 main_text[] = { - 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, func_name - 0xff, 0xd0, // call rax - 0x48, 0x31, 0xc0, // xor rax, rax - 0xb8, 0x00, 0x00, 0x00, 0x00, // mov eax, func_name - 0xff, 0xd0, // call rax - 0xc3 // ret - }; - - // func.obj - String8 func_name = str8_lit("foo"); - U8 func_text[] = { 0xc3 }; - - String8 main_obj_name = str8_lit("main.obj"); + local_persist String8 path = {0}; + if(g_linker_path.size != 0) { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(main_text)); - COFF_ObjSymbol *func_undef = coff_obj_writer_push_symbol_undef(obj_writer, func_name); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name64, func_undef, COFF_Reloc_X64_Addr64); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, mov_func_name32, func_undef, COFF_Reloc_X64_Addr32); - - // linker must not produce base relocations for absolute symbol - U8 data[4] = {0}; - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(data)); - COFF_ObjSymbol *abs_symbol = coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("abs"), 0x12345678, COFF_SymStorageClass_Static); - coff_obj_writer_section_push_reloc(obj_writer, data_sect, 0, abs_symbol, COFF_Reloc_X64_Addr32); - - coff_obj_writer_push_symbol_extern(obj_writer, entry_name, 0, text_sect); - String8 main_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(main_obj_name, main_obj)) { - goto exit; - } + path = g_linker_path; } - - String8 func_obj_name = str8_lit("func.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(func_text)); - coff_obj_writer_push_symbol_extern(obj_writer, func_name, 0, text_sect); - String8 func_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(func_obj_name, func_obj)) { - goto exit; - } + else if (path.size == 0) { + local_persist U8 buffer[4096]; + ArenaParams params = { .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }; + Arena *arena = arena_alloc_(¶ms); +#if OS_WINDOWS + path = full_path_from_path(arena, str8_lit("radlink.exe")); +#else + path = full_path_from_path(arena, str8_lit("radlink")); +#endif + AssertAlways(path.size); } + return path; +} - String8 out_name = str8_lit("a.exe"); - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe main.obj func.obj"); - if (linker_exit_code != 0) { - goto exit; +internal String8 +t_raddbg_path(void) +{ + local_persist String8 path = {0}; + if (path.size == 0) { + local_persist U8 buffer[4096]; + ArenaParams params = { .reserve_size = sizeof(buffer), .commit_size = sizeof(buffer), .optional_backing_buffer = buffer }; + Arena *arena = arena_alloc_(¶ms); + String8 raddbg_base_name = g_gui ? str8_lit("raddbg") : str8_lit("raddbg_non_graphical"); +#if OS_WINDOWS + Temp scratch = scratch_begin(0, 0); + path = full_path_from_path(arena, str8f(scratch.arena, "%S.exe", raddbg_base_name)); + scratch_end(scratch); +#else + path = full_path_from_path(arena, raddbg_base_name); +#endif + AssertAlways(path.size); } + return path; +} - // it is illegal to merge .reloc with other sections - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.reloc=.rdata main.obj func.obj"); - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_IllegalSectionMerge) { - goto exit; - } - } else { - if (linker_exit_code == 0) { - goto exit; +internal String8 +t_cwd_path(void) +{ + local_persist U8 path[4096] = {0}; + if (path[0] == 0) { + Temp scratch = scratch_begin(0, 0); + String8 cwd = get_current_path(scratch.arena); + + // TODO: linux and windows return two different things, we need to settle what to do here + // should get_current_path return directory paths with slash or no slash + if ((str8_match_wildcard(cwd, str8_lit("*\\"), 0) && str8_match_wildcard(cwd, str8_lit("*/"), 0))) { + cwd = str8_chop_last_slash(cwd); + cwd = str8_chop_last_slash(cwd); + } else { + cwd = str8_chop_last_slash(cwd); } + + MemoryCopyStr8(path, cwd); + path[cwd.size] = 0; + scratch_end(scratch); } + return str8_cstring_capped(path, path+sizeof(path)); +} - // the other way around is illegal too - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /dynamicbase /largeaddressaware:no /out:a.exe /merge:.rdata=.reloc main.obj func.obj"); - if (t_ident_linker() == T_Linker_RAD) { - if (linker_exit_code != LNK_Error_IllegalSectionMerge) { - goto exit; - } - } else { - if (linker_exit_code == 0) { - goto exit; - } +internal String8 +t_src_path(void) +{ + local_persist U8 path[4096] = {0}; + if (path[0] == 0) { + Temp scratch = scratch_begin(0, 0); + String8 src = str8f(scratch.arena, "%S/src", t_cwd_path()); + MemoryCopyStr8(path, src); + path[src.size] = 0; + scratch_end(scratch); } + return str8_cstring_capped(path, path+sizeof(path)); +} - result = T_Result_Pass; +internal B32 +t_invoke_env(String8 exe_path, String8 cmdline, String8List env, U64 timeout_us) +{ + Temp scratch = scratch_begin(&g_output_arena,1); -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_simple_lib_test(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 test_payload = str8_lit("The quick brown fox jumps over the lazy dog"); - String8 test_obj = {0}; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_Unknown); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8(test_payload.str, test_payload.size+1)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, data_sect); - test_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 test_lib_name = str8_lit("test.lib"); - { - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - coff_lib_writer_push_obj(lib_writer, str8_lit("test.obj"), test_obj); - String8 test_lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); - coff_lib_writer_release(&lib_writer); - if (!t_write_file(test_lib_name, test_lib)) { - goto exit; - } - } - - U8 entry_text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0xC3 - }; - String8 entry_obj_name = str8_lit("entry.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(entry_text)); - COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("test")); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, test_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 7, text_sect); - String8 entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(entry_obj_name, entry_obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe entry.obj test.lib"); - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->fsize)); - String8 data_data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->fsize)); - - // was test payload linked? - String8 data_string = str8_cstring_capped(data_data.str, data_data.str + data_data.size); - if (!str8_match(data_string, test_payload, 0)) { - goto exit; - } - - // do we have enough bytes to read text? - if (text_data.size < sizeof(entry_text)) { - goto exit; - } - - // linker must pull-in test.obj and patch relocation for "test" symbol - U32 *data_addr32nb = (U32 *)(text_data.str+3); - if (*data_addr32nb != data_sect->voff) { - goto exit; - } - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_import_export(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - { - String8 export_obj_name = str8_lit("export.obj"); - String8 export_obj_payload = str8_lit("test"); - U8 export_text[] = { 0xC3 }; - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, export_obj_payload); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, data_sect); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord"), 0, data_sect); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord2"), 0, data_sect); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord3"), 0, data_sect); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("ord4"), 0, data_sect); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:foo=foo")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:bar=foo")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord,@5")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord2,@6,DATA")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord3,@7,NONAME,PRIVATE")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:ord4,@8,NONAME,DATA")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baz=baz.qwe")); - //coff_obj_writer_push_directive(obj_writer, str8_lit("/export:baf=baz.#1")); - String8 export_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(export_obj_name, export_obj)) { - goto exit; - } - } - - { - String8 import_obj_name = str8_lit("import.obj"); - U8 import_payload[1024] = {0}; - - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *data_sect = t_push_data_section(obj_writer, str8_array_fixed(import_payload)); - - char *import_symbols[] = { - "__imp_foo", - "__imp_bar", - "__imp_baz", - "__imp_baf", - "__imp_ord", - //"__imp_ord2", - //"__imp_ord4", - "bar", - //"baf", - //"baz", - "foo", - "ord", - }; - - for (U64 i = 0; i < ArrayCount(import_symbols); ++i) { - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_cstring(import_symbols[i])); - coff_obj_writer_section_push_reloc_voff(obj_writer, data_sect, i * 4, symbol); - } - - String8 import_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(import_obj_name, import_obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *s1 = coff_obj_writer_push_section(obj_writer, str8_lit(".s1"), PE_DATA_SECTION_FLAGS, str8_lit("s1")); - COFF_ObjSection *s2 = coff_obj_writer_push_section(obj_writer, str8_lit(".s2"), PE_DATA_SECTION_FLAGS, str8_lit("s2")); - COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed((U8[]){ 0xC3 })); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("_DllMainCRTStartup"), 0, text_sect); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("s1"), 0, s1); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("s2"), 0, s2); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("baz.obj"), obj)) { - goto exit; - } - } - - t_write_entry_obj(); - - // - // link export.dll - // - int lib_link_exit_code = t_invoke_linkerf("/dll /out:export.dll libcmt.lib export.obj"); - if (lib_link_exit_code != 0) { - goto exit; - } - - // - // link baz.dll - // - int baz_link_exit_code = t_invoke_linkerf("/dll /out:baz.dll /export:s1,@1,NONAME /export:qwe=s2 baz.obj"); - if (baz_link_exit_code != 0) { - goto exit; - } - - // - // check export.dll export table - // - if (0) { - String8 dll = t_read_file(scratch.arena, str8_lit("export.dll")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, dll); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(dll, pe.section_table_range).str; - String8 string_table = str8_substr(dll, pe.string_table_range); - PE_ParsedExportTable export_table = pe_exports_from_data(scratch.arena, pe.section_count, section_table, dll, pe.data_dir_franges[PE_DataDirectoryIndex_EXPORT], pe.data_dir_vranges[PE_DataDirectoryIndex_EXPORT]); - - if (export_table.export_count != 6) { - goto exit; - } - - { - String8 expected_symbols[] = { - str8_lit_comp("foo"), - str8_lit_comp("bar"), - //str8_lit_comp("baz"), - //str8_lit_comp("baf"), - str8_lit_comp("ord"), - str8_lit_comp("ord2") - }; - U64 match_count = 0; - for (U64 i = 0; i < export_table.export_count; i += 1) { - for (U64 k = 0; k < ArrayCount(expected_symbols); k += 1) { - if (str8_match(export_table.exports[i].name, expected_symbols[k], 0)) { - match_count += 1; - } - } - } - if (match_count != ArrayCount(expected_symbols)) { - goto exit; - } - } - - if (0) { - String8 expected_forwarders[] = { - str8_lit_comp("baz.qwe"), - str8_lit_comp("baz.#1"), - }; - U64 match_count = 0; - for (U64 i = 0; i < export_table.export_count; i += 1) { - for (U64 k = 0; k < ArrayCount(expected_forwarders); k += 1) { - if (str8_match(export_table.exports[i].forwarder, expected_forwarders[k], 0)) { - match_count += 1; - } - } - } - if (match_count != ArrayCount(expected_forwarders)) { - goto exit; - } - } - } - - #if OS_WINDOWS - BOOL is_dir_set = SetDllDirectoryA((LPCSTR)g_wdir.str); - AssertAlways(is_dir_set); - - HANDLE export_dll = LoadLibrary("export.dll"); - DWORD last_error = GetLastError(); - if (export_dll == 0) { - goto exit; - } - - char *export_dll_procs[] = { "foo", "bar", "baz", "baf" }; - for (U64 i = 0; i < ArrayCount(export_dll_procs); ++i) { - void *proc = GetProcAddress(export_dll, export_dll_procs[i]); - if (proc == 0) { - goto exit; - } - } - - U16 export_dll_ordinals[] = { 5 }; - for (U64 i = 0; i < ArrayCount(export_dll_ordinals); ++i) { - void *proc = GetProcAddress(export_dll, MAKEINTRESOURCE(export_dll_ordinals[i])); - if (proc == 0) { - goto exit; - } - } - #endif - - int import_link_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /delayload:export.dll /export:entry kernel32.Lib delayimp.lib libcmt.lib export.lib import.obj entry.obj"); - if (import_link_exit_code != 0) { - goto exit; - } - - // TODO: check import table - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_image_base(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - String8 obj_name = str8_lit("image_base.obj"); - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0x8D, 0x0D, 0x00, 0x00, 0x00, 0x00, // lea rcx, [__ImageBase] - 0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // mov rax, __ImageBase - 0xB8, 0x00, 0x00, 0x00, 0x00, // mov eax, __ImageBase - 0xC3 // ret - }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - COFF_ObjSymbol *image_base_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__ImageBase")); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 3, image_base_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 9, image_base_symbol, COFF_Reloc_X64_Addr64); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 18, image_base_symbol, COFF_Reloc_X64_Addr32Nb); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(obj_name, obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /base:0x2000000140000000 /out:a.exe image_base.obj"); - - if (linker_exit_code != 0) { - goto exit; - } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_section = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - - if (!text_section) { - goto exit; - } - - U8 expected_text[] = { - 0x48, 0x8D, 0x0D, 0xF9, 0xEF, 0xFF, 0xFF, - 0x48, 0xB8, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, - 0xB8, 0x00, 0x00, 0x00, 0x00, - 0xC3 - }; - String8 text_data = str8_substr(exe, rng_1u64(text_section->foff, text_section->foff + sizeof(expected_text))); - if (!str8_match(text_data, str8_array_fixed(expected_text), 0)) { - goto exit; - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_any(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test$mn"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("1")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); - COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - test->type.u.msb = COFF_SymDType_Func; - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("1.obj"), obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test$mn"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("2")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Any); - COFF_ObjSymbol *test = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("2.obj"), obj)) { - goto exit; - } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - { - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:1.exe 1.obj 2.obj entry.obj"); - if (linker_exit_code != 0) { - goto exit; - } - String8 exe = t_read_file(scratch.arena, str8_lit("1.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("1"), 0)) { - goto exit; - } - } - - { - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:2.exe 2.obj 1.obj entry.obj"); - if (linker_exit_code != 0) { - goto exit; - } - String8 exe = t_read_file(scratch.arena, str8_lit("2.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("2"), 0)) { - goto exit; - } - } - - result = T_Result_Pass; - - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_no_duplicates(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 test_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *test_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); - coff_obj_writer_push_symbol_secdef(obj_writer, test_sect, COFF_ComdatSelect_NoDuplicates); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("a"), 0, test_sect); - test_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("a")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - if (!t_write_file(str8_lit("a.obj"), test_obj)) { goto exit; } - if (!t_write_file(str8_lit("b.obj"), test_obj)) { goto exit; } - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - - int duplicates_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); - if (duplicates_exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && duplicates_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - int good_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj entry.obj"); - if (good_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".test")); - if (!sect) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_same_size(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("b")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".c"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("cc")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_SameSize); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("c.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int same_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); - if (same_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); - if (sect == 0) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } - } - - int not_same_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe a.obj b.obj c.obj entry.obj"); - if (not_same_exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && not_same_exit_code != LNK_Error_MultiplyDefinedSymbol) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_exact_match(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a2"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a2.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("b")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_ExactMatch); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int not_exact_match = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); - if (not_exact_match == 0) { goto exit; } - - int exact_match = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe entry.obj a2.obj a.obj"); - if (exact_match != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a2")); - if (sect == 0) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("a"), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_largest(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bb")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".c"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("c")); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("c.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int largest_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry entry.obj a.obj b.obj"); - if (largest_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *discard_sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); - if (discard_sect != 0) { goto exit; } - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); - if (sect == 0) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("bb"), 0)) { goto exit; } - } - - int same_size_exit_code = t_invoke_linkerf("/subsystem:console /out:b.exe /entry:entry entry.obj c.obj a.obj"); - if (same_size_exit_code != 0) { goto exit; } - - { - String8 exe = t_read_file(scratch.arena, str8_lit("b.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".c")); - if (sect == 0) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - if (!str8_match(data, str8_lit("c"), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_associative(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit("a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); - COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit("aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("aa")); - coff_obj_writer_push_symbol_secdef(obj_writer, a, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); - coff_obj_writer_push_symbol_associative(obj_writer, aa, a); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSection *bb = coff_obj_writer_push_section(obj_writer, str8_lit("bb"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bb")); - COFF_ObjSection *b = coff_obj_writer_push_section(obj_writer, str8_lit("b"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("b")); - COFF_ObjSection *bbb = coff_obj_writer_push_section(obj_writer, str8_lit("bbb"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("bbb")); - coff_obj_writer_push_symbol_secdef(obj_writer, bb, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_associative(obj_writer, b, bb); - coff_obj_writer_push_symbol_associative(obj_writer, bbb, bb); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, bb); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.obj"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *a = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("a")); - COFF_SectionHeader *aa = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("aa")); - COFF_SectionHeader *b = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("b")); - COFF_SectionHeader *bb = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bb")); - COFF_SectionHeader *bbb = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit("bbb")); - if (a != 0) { goto exit; } - if (aa != 0) { goto exit; } - if (b == 0) { goto exit; } - if (bb == 0) { goto exit; } - if (bbb == 0) { goto exit; } - String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); - String8 bb_data = str8_substr(exe, rng_1u64(bb->foff, bb->foff + bb->vsize)); - String8 bbb_data = str8_substr(exe, rng_1u64(bbb->foff, bbb->foff + bbb->vsize)); - if (!str8_match(b_data, str8_lit("b"), 0)) { goto exit; } - if (!str8_match(bb_data, str8_lit("bb"), 0)) { goto exit; } - if (!str8_match(bbb_data, str8_lit("bbb"), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_associative_loop(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *aaaa = coff_obj_writer_push_section(obj_writer, str8_lit(".aaaa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aaaa")); - COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit(".aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aa")); - COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("a")); - COFF_ObjSection *aaa = coff_obj_writer_push_section(obj_writer, str8_lit(".aaa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT|COFF_SectionFlag_Align1Bytes, str8_lit("aaa")); - coff_obj_writer_push_symbol_associative(obj_writer, aaa, aa); - coff_obj_writer_push_symbol_associative(obj_writer, aaaa, aaa); - coff_obj_writer_push_symbol_associative(obj_writer, a, aa); - coff_obj_writer_push_symbol_associative(obj_writer, aa, a); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("loop.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe loop.obj entry.obj"); - if (exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && exit_code != LNK_Error_AssociativeLoop) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_associative_non_comdat(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("a")); - COFF_ObjSection *b = coff_obj_writer_push_section(obj_writer, str8_lit(".b"), PE_DATA_SECTION_FLAGS, str8_lit("b")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); - coff_obj_writer_push_symbol_associative(obj_writer, b, a); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj test.obj"); - if (exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *a = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".a")); - COFF_SectionHeader *b = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".b")); - if (a == 0) { goto exit; } - if (b == 0) { goto exit; } - String8 a_data = str8_substr(exe, rng_1u64(a->foff, a->foff + a->vsize)); - String8 b_data = str8_substr(exe, rng_1u64(b->foff, b->foff + b->vsize)); - if (!str8_match(a_data, str8_lit("a"), 0)) { goto exit; } - if (!str8_match(b_data, str8_lit("b"), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_associative_out_of_bounds(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSection *a = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("a")); - COFF_ObjSection *aa = coff_obj_writer_push_section(obj_writer, str8_lit(".aa"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_lit("aa")); - coff_obj_writer_push_symbol_secdef(obj_writer, a, COFF_ComdatSelect_Any); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, a); - coff_obj_writer_push_symbol_associative(obj_writer, aa, a); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - { - COFF_FileHeaderInfo header = coff_file_header_info_from_data(obj); - String8 string_table = str8_substr(obj, header.string_table_range); - String8 symbol_table = str8_substr(obj, header.symbol_table_range); - COFF_ParsedSymbol symbol = coff_parse_symbol(header, string_table, symbol_table, 3); - AssertAlways(str8_match(symbol.name, str8_lit(".aa"), 0)); - AssertAlways(symbol.aux_symbol_count == 1); - COFF_Symbol16 *symbol16 = symbol.raw_symbol; - COFF_SymbolSecDef *secdef = (COFF_SymbolSecDef *)(symbol16 + 1); - secdef->number_lo = 321; - } - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("bad.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj bad.obj"); - if (linker_exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_IllData) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_comdat_with_offset(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 a[] = "1Hello, World!"; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 a[] = "Hello, World!"; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 3, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj b.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_reloc_against_removed_comdat(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 a[] = "1Hello, World!"; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 a[] = "H"; - COFF_ObjSection *comdat_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS|COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(a)); - coff_obj_writer_push_symbol_secdef(obj_writer, comdat_sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 1, comdat_sect); - COFF_ObjSymbol *static_symbol = coff_obj_writer_push_symbol_static(obj_writer, str8_lit("STATIC"), 2, comdat_sect); - - U8 rdata[4] = {0}; - COFF_ObjSection *regular_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".rdata"), PE_RDATA_SECTION_FLAGS, str8_array_fixed(rdata)); - coff_obj_writer_section_push_reloc_voff(obj_writer, regular_sect, 0, static_symbol); - - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 3, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe a.obj c.obj entry.obj"); - if (linker_exit_code != LNK_Error_RelocationAgainstRemovedSection) { goto exit; } - -exit:; - result = T_Result_Pass; - scratch_end(scratch); - return result; -} - -internal T_Result -t_sect_align(void) -{ - Temp scratch = scratch_begin(0,0); - - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - COFF_ObjSection *sect_align_shift = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("q")); - COFF_ObjSection *sect_align_none = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS, str8_lit("abc")); - COFF_ObjSection *sect_align_1 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1Bytes, str8_lit("wr")); - COFF_ObjSection *sect_align_2 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2Bytes, str8_lit("e")); - COFF_ObjSection *sect_align_4 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4Bytes, str8_lit("ttttt")); - COFF_ObjSection *sect_align_8 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align8Bytes, str8_lit("g")); - COFF_ObjSection *sect_align_16 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align16Bytes, str8_lit("o")); - COFF_ObjSection *sect_align_32 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align32Bytes, str8_lit("p")); - COFF_ObjSection *sect_align_64 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align64Bytes, str8_lit("f")); - COFF_ObjSection *sect_align_128 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align128Bytes, str8_lit("x")); - COFF_ObjSection *sect_align_256 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align256Bytes, str8_lit("c")); - COFF_ObjSection *sect_align_512 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align512Bytes, str8_lit("v")); - COFF_ObjSection *sect_align_1024 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align1024Bytes, str8_lit("b")); - COFF_ObjSection *sect_align_2048 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align2048Bytes, str8_lit("n")); - COFF_ObjSection *sect_align_4096 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align4096Bytes, str8_lit("m")); - COFF_ObjSection *sect_align_8192 = coff_obj_writer_push_section(obj_writer, str8_lit(".a"), PE_DATA_SECTION_FLAGS|COFF_SectionFlag_Align8192Bytes, str8_lit("z")); - - U8 text[] = { 0xC3 }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("my_entry"), 0, text_sect); - - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("test.obj"), obj)) { - goto exit; - } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:my_entry /out:a.exe /align:8192 test.obj"); - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - COFF_SectionHeader *sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".a")); - if (!sect) { - goto exit; - } - String8 sect_data = str8_substr(exe, rng_1u64(sect->foff, sect->foff + sect->vsize)); - - String8 shift = str8_substr(sect_data, rng_1u64(0, 1)); - if (!str8_match(shift, str8_lit("q"), 0)) { - goto exit; - } - String8 a_none = str8_substr(sect_data, rng_1u64(16, 16 + 3)); - if (!str8_match(a_none, str8_lit("abc"), 0)) { - goto exit; - } - String8 a_1 = str8_substr(sect_data, rng_1u64(19, 21)); - if (!str8_match(a_1, str8_lit("wr"), 0)) { - goto exit; - } - String8 a_2 = str8_substr(sect_data, rng_1u64(22, 23)); - if (!str8_match(a_2, str8_lit("e"), 0)) { - goto exit; - } - String8 a_4 = str8_substr(sect_data, rng_1u64(24, 29)); - if (!str8_match(a_4, str8_lit("ttttt"), 0)) { - goto exit; - } - String8 a_8 = str8_substr(sect_data, rng_1u64(32, 33)); - if (!str8_match(a_8, str8_lit("g"), 0)) { - goto exit; - } - String8 a_16 = str8_substr(sect_data, rng_1u64(48, 49)); - if (!str8_match(a_16, str8_lit("o"), 0)) { - goto exit; - } - String8 a_32 = str8_substr(sect_data, rng_1u64(64, 65)); - if (!str8_match(a_32, str8_lit("p"), 0)) { - goto exit; - } - String8 a_64 = str8_substr(sect_data, rng_1u64(128, 129)); - if (!str8_match(a_64, str8_lit("f"), 0)) { - goto exit; - } - String8 a_128 = str8_substr(sect_data, rng_1u64(256, 257)); - if (!str8_match(a_128, str8_lit("x"), 0)) { - goto exit; - } - String8 a_256 = str8_substr(sect_data, rng_1u64(512, 513)); - if (!str8_match(a_256, str8_lit("c"), 0)) { - goto exit; - } - String8 a_512 = str8_substr(sect_data, rng_1u64(1024, 1025)); - if (!str8_match(a_512, str8_lit("v"), 0)) { - goto exit; - } - String8 a_1024 = str8_substr(sect_data, rng_1u64(2048, 2049)); - if (!str8_match(a_1024, str8_lit("b"), 0)) { - goto exit; - } - String8 a_2048 = str8_substr(sect_data, rng_1u64(4096, 4097)); - if (!str8_match(a_2048, str8_lit("n"), 0)) { - goto exit; - } - String8 a_4096 = str8_substr(sect_data, rng_1u64(8192, 8193)); - if (!str8_match(a_4096, str8_lit("m"), 0)) { - goto exit; - } - String8 a_8192 = str8_substr(sect_data, rng_1u64(16384, 16385)); - if (!str8_match(a_8192, str8_lit("z"), 0)) { - goto exit; - } - - result = T_Result_Pass; - -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_alt_name(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("foo")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("foo.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("foo")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code; - - // basic alternate name test - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test test.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - // linker should not chase alt name links - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe /alternatename:foo=bar /alternatename:bar=test test.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // alt name conflict - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:c.exe /alternatename:foo=test /alternatename:foo=qwe test.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:d.exe /alternatename:foo foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } + B32 is_ok = 0; - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:e.exe /alternatename:foo-oof foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo=test=bar foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:foo= foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename:= foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // syntax error - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /alternatename: foo.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - // TODO: check that RAD Linker prints these warnings - - // warn about alt name to self alt name? - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:f.exe /alternatename:foo=foo foo.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - // warn about alt name to unknown symbol? - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:g.exe /alternatename:qwe=ewq foo.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_include(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("foo")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("foo"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("include.obj"), obj)) { goto exit; } - - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - coff_lib_writer_push_obj(lib_writer, str8_lit("include.obj"), obj); - String8 lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); - coff_lib_writer_release(&lib_writer); - if (!t_write_file(str8_lit("include.lib"), lib)) { goto exit; } + // clean up global state + arena_clear(g_output_arena); + MemoryZeroStruct(&g_output); + g_last_exit_code = max_U64; + + String8List stdout_parts = {0}; + String8List stderr_parts = {0}; + U64 stdout_idx = 0; + U64 stderr_idx = 1; + +#if OS_WINDOWS + typedef enum { + Win32CaptureState_Null, + Win32CaptureState_Pending, + Win32CaptureState_EOF, + } Win32CaptureState; + typedef struct { + HANDLE read_pipe_handle; + HANDLE write_pipe_handle; + HANDLE event; + OVERLAPPED overlapped; + U64 buffer_size; + U8 *buffer; + U64 wait_idx; + String8List *parts; + Win32CaptureState state; + } Win32Capture; + + Win32Capture captures_win32[2] = {0}; + for EachElement(i, captures_win32) { + // create read pipe + local_persist U64 pipe_counter; ins_atomic_u64_inc_eval(&pipe_counter); + String8 pipe_name = str8f(scratch.arena, "\\\\.\\pipe\\rad_torture_%u_%llu", GetCurrentProcessId(), pipe_counter); + String16 pipe_name16 = str16_from_8(scratch.arena, pipe_name); + SECURITY_ATTRIBUTES read_at = { .nLength = sizeof(read_at), .bInheritHandle = 0 }; + captures_win32[i].read_pipe_handle = CreateNamedPipeW(pipe_name16.str, PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED, PIPE_TYPE_BYTE | PIPE_WAIT, 1, MB(1), MB(1), 0, &read_at); + AssertAlways(captures_win32[i].read_pipe_handle != INVALID_HANDLE_VALUE); + + // create overlapped write file + SECURITY_ATTRIBUTES write_at = { .nLength = sizeof(write_at), .bInheritHandle = 1 }; + captures_win32[i].write_pipe_handle = CreateFileW(pipe_name16.str, GENERIC_WRITE, 0, &write_at, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + AssertAlways(captures_win32[i].write_pipe_handle != INVALID_HANDLE_VALUE); + + // create event for overlapped + captures_win32[i].event = CreateEventW(0, 1, 0, 0); + AssertAlways(captures_win32[i].event != NULL); + + // alloc capture buffer + captures_win32[i].buffer_size = MB(1); + captures_win32[i].buffer = push_array(scratch.arena, U8, captures_win32[i].buffer_size); } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code; - - // simple include test - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:foo entry.obj include.lib"); - if (linker_exit_code != 0) { goto exit; } - - // validate that linker pulled-in include.obj - { - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *foo_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (foo_sect == 0) { goto exit; } - String8 foo_data = str8_substr(exe, rng_1u64(foo_sect->foff, foo_sect->foff + foo_sect->vsize)); - if (!str8_match(foo_data, str8_lit("foo"), 0)) { goto exit; } - } - - // test unresolved include - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /include:ewq entry.obj"); - if (linker_exit_code == 0) { goto exit; } - if (t_ident_linker() == T_Linker_RAD && linker_exit_code != LNK_Error_UnresolvedSymbol) { goto exit; } - - result = T_Result_Pass; - exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_communal_var_vs_regular(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_common(obj_writer, str8_lit("TEST"), 1); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("communal.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("defn.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { + captures_win32[stdout_idx].parts = &stdout_parts; + captures_win32[stderr_idx].parts = &stderr_parts; + + File read_capture_handles [ArrayCount(captures_win32)] = {0}; + File write_capture_handles[ArrayCount(captures_win32)] = {0}; + for EachElement(i, captures_win32) { read_capture_handles[i] = (File){ (U64)captures_win32[i].read_pipe_handle }; } + for EachElement(i, captures_win32) { write_capture_handles[i] = (File){ (U64)captures_win32[i].write_pipe_handle }; } +#else + typedef struct { + int fds[2]; + String8List *parts; + B32 is_live; + struct pollfd *poll_fd; + } LinuxCapture; + + LinuxCapture captures_linux[2] = {0}; + for EachElement(i, captures_linux) { + if (pipe2(captures_linux[i].fds, 0) != 0) { + fprintf(stderr, "ERROR: failed to create pipe for output capture\n"); goto exit; } + captures_linux[i].is_live = 1; } - - // linker should replace communal TEST with .data TEST - int linker_exit_code; - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj defn.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe defn.obj communal.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - char *exes[] = { "a.exe", "b.exe" }; - for (U64 i = 0; i < ArrayCount(exes); i += 1) { - String8 exe = t_read_file(scratch.arena, str8_cstring(exes[i])); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (!data_sect) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); - if (!str8_match(data, str8_lit("test"), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_communal_var_vs_regular_comdat(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_common(obj_writer, str8_lit("TEST"), 1); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("communal.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *sect = t_push_data_section(obj_writer, str8_lit("test")); - sect->flags |= COFF_SectionFlag_LnkCOMDAT; - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("large.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { - goto exit; - } - } - - // linker should replace communal TEST with .data TEST - int linker_exit_code; - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe communal.obj large.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:b.exe large.obj communal.obj entry.obj"); - if (linker_exit_code != 0) { goto exit; } - - char *exes[] = { "a.exe", "b.exe" }; - for (U64 i = 0; i < ArrayCount(exes); i += 1) { - String8 exe = t_read_file(scratch.arena, str8_cstring(exes[i])); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *data_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".data")); - if (!data_sect) { goto exit; } - String8 data = str8_substr(exe, rng_1u64(data_sect->foff, data_sect->foff + data_sect->vsize)); - if (!str8_match(data, str8_lit("test"), 0)) { goto exit; } - } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_import_kernel32(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 data[] = "test"; - U8 text[] = { - 0x48, 0x83, 0xec, 0x68, // sub rsp,68h ; alloc space on stack - 0xc7, 0x44, 0x24, 0x48, 0x18, 0x00, 0x00, 0x00, // mov dword ptr [rsp+48h],18h ; SECURITY_ATTRIBUTES.nLength - 0x48, 0xc7, 0x44, 0x24, 0x50, 0x00, 0x00, 0x00, 0x00, // mov qword ptr [rsp+50h],0 ; SECURITY_ATTRIBUTES.lpSecurityDescriptor - 0xc7, 0x44, 0x24, 0x58, 0x00, 0x00, 0x00, 0x00, // mov dword ptr [rsp+58h],0 ; SECURITY_ATTRIBUTES.bInheritHandle - 0x48, 0xc7, 0x44, 0x24, 0x30, 0x00, 0x00, 0x00, 0x00, // mov qword ptr [rsp+30h],0 ; hTemplateFile - 0xc7, 0x44, 0x24, 0x28, 0x80, 0x00, 0x00, 0x00, // mov dword ptr [rsp+28h],80h ; dwFlagsAndAttributes - 0xc7, 0x44, 0x24, 0x20, 0x02, 0x00, 0x00, 0x00, // mov dword ptr [rsp+20h],2 ; dwCreationDisposition - 0x4c, 0x8d, 0x4c, 0x24, 0x48, // lea r9,[rsp+48h] ; lpSecurityAttributes - 0x45, 0x33, 0xc0, // xor r8d,r8d ; dwShareMode - 0xba, 0x00, 0x00, 0x00, 0x40, // mov edx,40000000h ; dwDesiredAccess - 0x48, 0x8d, 0x0d, 0x00, 0x00, 0x00, 0x00, // lea rcx,[test] ; lpFileName - 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_CreateFileA] ; call CreateFileA - 0x48, 0x89, 0xc1, // mov rcx,rax ; hObject - 0xff, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_CloseHandle] ; call CloseHandle - 0x33, 0xc0, // xor eax,eax ; clear result - 0x48, 0x83, 0xc4, 0x68, // add rsp,68h ; dealloc stack - 0xc3 // ret ; return - }; - COFF_ObjSection *data_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS, str8_array_fixed(data)); - COFF_ObjSection *text_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - COFF_ObjSymbol *data_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("test"), 0, data_sect); - COFF_ObjSymbol *entry_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - COFF_ObjSymbol *create_file_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_CreateFileA")); - COFF_ObjSymbol *close_handle_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_CloseHandle")); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 70, data_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 76, create_file_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 85, close_handle_symbol, COFF_Reloc_X64_Rel32); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("import.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed import.obj kernel32.lib"); - if (linker_exit_code != 0) { goto exit; } - + + captures_linux[0].parts = &stdout_parts; + captures_linux[1].parts = &stderr_parts; + + File read_capture_handles[2] = {0}, write_capture_handles[2] = {0}; + read_capture_handles[0].u64[0] = captures_linux[0].fds[0]; + read_capture_handles[1].u64[0] = captures_linux[1].fds[0]; + write_capture_handles[0].u64[0] = captures_linux[0].fds[1]; + write_capture_handles[1].u64[0] = captures_linux[1].fds[1]; +#endif + // Build Launch Options + ProcessLaunchParams launch_opts = { + .path = g_wdir, + .inherit_env = 1, + .consoleless = 1, + .env = env, + .stdout_file = write_capture_handles[stdout_idx], + .stderr_file = write_capture_handles[stderr_idx], + .cmd_line = lnk_arg_list_parse_windows_rules(scratch.arena, cmdline), + }; + str8_list_push_front(scratch.arena, &launch_opts.cmd_line, exe_path); + + String8 full_cmd_line = str8_list_join(scratch.arena, &launch_opts.cmd_line, &(StringJoin){ .sep = str8_lit(" ") }); + + // invoke exe + Process process_handle = process_launch(&launch_opts); + if (process_match(process_handle, process_zero())) { goto exit; } + + // capture process output #if OS_WINDOWS { - String8 test_file_path = push_str8f(scratch.arena, "%S/test", g_wdir); - os_delete_file_at_path(test_file_path); - - OS_ProcessLaunchParams launch_opts = {0}; - launch_opts.inherit_env = 0; - launch_opts.path = g_wdir; - str8_list_pushf(scratch.arena, &launch_opts.cmd_line, "%S/a.exe", g_wdir); - OS_Handle handle = os_process_launch(&launch_opts); - AssertAlways(!os_handle_match(handle, os_handle_zero())); - U64 exit_code = max_U64; - os_process_join(handle, max_U64, &exit_code); - os_process_detach(handle); - if (exit_code != 0) { goto exit; } - - if (!os_file_path_exists(test_file_path)) { goto exit; } + // close handle so last to ReadFile does not block + for EachElement(i, captures_win32) { + CloseHandle(captures_win32[i].write_pipe_handle); + MemoryZeroStruct(&write_capture_handles[i]); + } + + B32 is_process_live = 1; + for (U64 endt_us = ENDT_US(timeout_us);;) { + HANDLE wait_handles[ArrayCount(captures_win32) + 1] = {0}; + U64 wait_handle_count = 0; + + // queue process + if (is_process_live) { + wait_handles[wait_handle_count++] = (HANDLE)process_handle.u64[0]; + } + + for EachElement(capture_idx, captures_win32) { + while (captures_win32[capture_idx].state == Win32CaptureState_Null) { + // init overlapped so when child writes to capture buffer this event is signaled + AssertAlways(ResetEvent(captures_win32[capture_idx].event)); + MemoryZeroStruct(&captures_win32[capture_idx].overlapped); + captures_win32[capture_idx].overlapped.hEvent = captures_win32[capture_idx].event; + + // begin overlapped read + DWORD read_size = 0; + if (ReadFile(captures_win32[capture_idx].read_pipe_handle, captures_win32[capture_idx].buffer, captures_win32[capture_idx].buffer_size, &read_size, &captures_win32[capture_idx].overlapped)) { + if (read_size > 0) { + String8 string = str8(captures_win32[capture_idx].buffer, read_size); + String8 string_copy = str8_copy(scratch.arena, string); + str8_list_push(scratch.arena, captures_win32[capture_idx].parts, string_copy); + } else { + captures_win32[capture_idx].state = Win32CaptureState_EOF; + } + } else { + DWORD error = GetLastError(); + if (error == ERROR_IO_PENDING) { + captures_win32[capture_idx].state = Win32CaptureState_Pending; + } else { + AssertAlways(error == ERROR_HANDLE_EOF || error == ERROR_BROKEN_PIPE); + captures_win32[capture_idx].state = Win32CaptureState_EOF; + } + break; + } + } + + if (captures_win32[capture_idx].state == Win32CaptureState_Pending) { + // event now should signal whenever pipe has data to read + captures_win32[capture_idx].wait_idx = wait_handle_count++; + wait_handles[captures_win32[capture_idx].wait_idx] = captures_win32[capture_idx].event; + } else { + captures_win32[capture_idx].wait_idx = max_U64; + } + } + + // exit if there are no handles + if (wait_handle_count == 0) { break; } + + // compute wait time + DWORD wait_ms = INFINITE; + if (timeout_us != max_U64) { + U64 now_us = now_time_us(); + wait_ms = now_us < endt_us ? ClampTop((endt_us - now_us + 999) / 1000, max_U32-1) : 0; + } + + // wait on process and read pipes + DWORD wait_result = WaitForMultipleObjects(wait_handle_count, wait_handles, 0, wait_ms); + + if (wait_result >= WAIT_OBJECT_0 && wait_result < WAIT_OBJECT_0 + wait_handle_count) { + DWORD wait_idx = wait_result - WAIT_OBJECT_0; + + if (is_process_live && wait_idx == 0) { + DWORD exit_code = 0; + if(GetExitCodeProcess((HANDLE)process_handle.u64[0], &exit_code)) { + g_last_exit_code = exit_code; + } + is_process_live = 0; + } else { + // find signaled pipe + U64 pipe_idx = max_U64; + for EachElement(i, captures_win32) { + if (captures_win32[i].wait_idx == wait_idx) { + pipe_idx = i; + } + } + AssertAlways(pipe_idx != max_U64); + + DWORD read_size; + if (GetOverlappedResult(captures_win32[pipe_idx].read_pipe_handle, &captures_win32[pipe_idx].overlapped, &read_size, 0)) { + if (read_size > 0) { + // append capture part + String8 string = str8(captures_win32[pipe_idx].buffer, read_size); + String8 string_copy = str8_copy(scratch.arena, string); + str8_list_push(scratch.arena, captures_win32[pipe_idx].parts, string_copy); + + // queue next overlapped read + captures_win32[pipe_idx].state = Win32CaptureState_Null; + } else { + captures_win32[pipe_idx].state = Win32CaptureState_EOF; + } + } else { + captures_win32[pipe_idx].state = Win32CaptureState_EOF; + } + } + } else if (wait_result == WAIT_TIMEOUT) { + // nothing woke up in the given timeout -- stop reading pipes and being exit + break; + } + } + + // (timeout) kill process if alive so we can safeley cancel async IO + if (is_process_live) { + if (TerminateProcess((HANDLE)process_handle.u64[0], 999)) { + if (WaitForSingleObject((HANDLE)process_handle.u64[0], 10000) != WAIT_OBJECT_0) { + Assert(0 && "process is taking too long to exit"); + } + } else { Assert(0 && "failed to kill process"); } + + DWORD exit_code = 0; + if (GetExitCodeProcess((HANDLE)process_handle.u64[0], &exit_code)) { + g_last_exit_code = exit_code; + } else { Assert(0 && "failed to get process exit code"); } + } + + // (timeout) cancel pending async IO + for EachElement(i, captures_win32) { + if (captures_win32[i].state == Win32CaptureState_Pending) { + BOOL cancel_ok = CancelIoEx(captures_win32[i].read_pipe_handle, &captures_win32[i].overlapped); + DWORD cancel_error = cancel_ok ? ERROR_SUCCESS : GetLastError(); + AssertAlways(cancel_ok || cancel_error == ERROR_NOT_FOUND); + + DWORD read_size = 0; + if (GetOverlappedResult(captures_win32[i].read_pipe_handle, &captures_win32[i].overlapped, &read_size, 1)) { + if (read_size > 0) { + String8 string = str8(captures_win32[i].buffer, read_size); + String8 string_copy = str8_copy(scratch.arena, string); + str8_list_push(scratch.arena, captures_win32[i].parts, string_copy); + } + } else { + DWORD error = GetLastError(); + AssertAlways(error == ERROR_OPERATION_ABORTED || error == ERROR_HANDLE_EOF || error == ERROR_BROKEN_PIPE); + } + captures_win32[i].state = Win32CaptureState_EOF; + } + } + + // close windows specific handles + CloseHandle((HANDLE)process_handle.u64[0]); + for EachElement(i, captures_win32) { + CloseHandle(captures_win32[i].event); + } + } +#elif OS_LINUX + // close handle so read(2) does not block + for EachElement(i, write_capture_handles) { + close((int)write_capture_handles[i].u64[0]); + MemoryZeroStruct(&write_capture_handles[i]); + } + + pid_t pid = (pid_t)process_handle.u64[0]; + int pidfd = syscall(SYS_pidfd_open, pid, 0); + if (pidfd < 0) { + fprintf(stderr, "ERROR: failed to translate pid(%d) to pidfd\n", pid); + goto exit; + } + + B32 is_process_live = 1; + U64 endt_us = ENDT_US(timeout_us); + U64 read_buffer_default_size = MB(1); + U64 read_buffer_size = read_buffer_default_size; + U8 *read_buffer = push_array(scratch.arena, U8, read_buffer_default_size); + for (;;) { + struct pollfd fds[3] = {0}; + int nfds = 0; + + // append process + if (is_process_live) { + fds[nfds++] = (struct pollfd){ .fd = pidfd, .events = POLLIN | POLLHUP }; + } + + // append pipes + for EachElement(i, captures_linux) { + if (captures_linux[i].is_live) { + captures_linux[i].poll_fd = &fds[nfds]; + fds[nfds++] = (struct pollfd){ .fd = captures_linux[i].fds[0], .events = POLLIN | POLLHUP }; + } + } + + // exit if there are no more handles to poll + if (nfds == 0) { break; } + + // compute wait time + int wait_ms = -1; + if (timeout_us != max_U64) { + U64 now_us = now_time_us(); + wait_ms = now_us < endt_us ? ClampTop((endt_us - now_us + 999) / 1000, max_U32-1) : 0; + } + + // wait for kernel to signal any of the wait handles + int poll_result = poll(fds, nfds, wait_ms); + if (poll_result < 0) { + fprintf(stderr, "ERROR: poll failed with errono %d\n", errno); + break; + } + if (poll_result == 0) { + fprintf(stderr, "WARNING: poll timeout\n"); + break; + } + // handle case where process exited while waiting for a signal + if (is_process_live) { + if (fds[0].revents & POLLIN) { + // reap process + int status; + if (waitpid(pid, &status, 0) >= 0) { + g_last_exit_code = WEXITSTATUS(status); + } else { + fprintf(stderr, "ERROR: failed to reap process %d\n", pid); + } + + // signal on process fd means exit + is_process_live = 0; + } + } + + for EachElement(i, captures_linux) { + if (captures_linux[i].is_live) { + if (captures_linux[i].poll_fd->revents & POLLIN) { + for (;;) { + if (read_buffer_size == 0) { + read_buffer_size = read_buffer_default_size; + read_buffer = push_array(scratch.arena, U8, read_buffer_default_size); + } + + ssize_t read_size = LNX_RETRY_ON_EINTR(read(captures_linux[i].poll_fd->fd, read_buffer, read_buffer_size)); + if (read_size > 0) { + str8_list_push(scratch.arena, captures_linux[i].parts, str8(read_buffer, read_size)); + read_buffer += read_size; + read_buffer_size -= read_size; + } else if (read_size == 0) { + captures_linux[i].is_live = 0; + break; + } else { + if (errno == EAGAIN || errno == EWOULDBLOCK) { + // no more data in the pipe + } else { + fprintf(stderr, "ERROR: failed to read pipe, errno %d\n", errno); + captures_linux[i].is_live = 0; + } + break; + } + } + } + + if (captures_linux[i].poll_fd->revents & POLLHUP) { + captures_linux[i].is_live = 0; + } + } + } + } + + // close process handle + if (close(pidfd) < 0) { + fprintf(stderr, "ERROR: failed to close process handle %d\n", pidfd); } #endif - - result = T_Result_Pass; -exit:; + + t_infof("Invoke: {\n"); + t_infof(" CMDL: %S\n", full_cmd_line); + t_infof(" WDIR: %S\n", g_wdir); + t_infof(" Exit: %u\n", g_last_exit_code); + t_infof("}\n"); + + // update output global + g_output = str8_list_join(g_output_arena, &stdout_parts, 0); + g_errors = str8_list_join(g_output_arena, &stderr_parts, 0); + + // write to the output file + if (g_redirect_stdout) { + write_data_to_file_path(g_stdout_file_name, g_output); + } + + is_ok = 1; // process was launched (does not mean exited successfully) + exit:; + for EachElement(i, read_capture_handles) { file_close(read_capture_handles[i]); } + for EachElement(i, write_capture_handles) { file_close(write_capture_handles[i]); } + scratch_end(scratch); - return result; + return is_ok; } -internal T_Result -t_delay_import(void) +internal B32 +t_invoke(String8 exe_path, String8 cmdline, U64 timeout) +{ + return t_invoke_env(exe_path, cmdline, (String8List){0}, timeout); +} + +internal B32 +t_invoke_cl(char *fmt, ...) { Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 return_0[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 - 0xc3 // ret - }; - U8 return_1[] = { - 0x48, 0xC7, 0xC0, 0x01, 0x00, 0x00, 0x00, // mov rax, 1 - 0xc3 // ret - }; - U8 return_2[] = { - 0x48, 0xC7, 0xC0, 0x02, 0x00, 0x00, 0x00, // mov rax, 2 - 0xc3 // ret - }; - COFF_ObjSection *return_0_sect = t_push_text_section(obj_writer, str8_array_fixed(return_0)); - COFF_ObjSection *return_1_sect = t_push_text_section(obj_writer, str8_array_fixed(return_1)); - COFF_ObjSection *return_2_sect = t_push_text_section(obj_writer, str8_array_fixed(return_2)); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_1"), 0, return_1_sect); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_2"), 0, return_2_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("a.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 return_0[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, 0 - 0xc3 // ret - }; - U8 return_123[] = { - 0x48, 0xC7, 0xC0, 0x7B, 0x00, 0x00, 0x00, // mov rax, 123 - 0xc3 // ret - }; - U8 return_321[] = { - 0x48, 0xC7, 0xC0, 0x41, 0x01, 0x00, 0x00, // mov rax, 321 - 0xc3 // ret - }; - COFF_ObjSection *return_0_sect = t_push_text_section(obj_writer, str8_array_fixed(return_0)); - COFF_ObjSection *return_123_sect = t_push_text_section(obj_writer, str8_array_fixed(return_123)); - COFF_ObjSection *return_321_sect = t_push_text_section(obj_writer, str8_array_fixed(return_321)); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_123"), 0, return_123_sect); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("return_321"), 0, return_321_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("b.obj"), obj)) { goto exit; } - } - - { - U8 text[] = { - 0x56, // push rsi - 0x57, // push rdi - 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h - 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_1 - 0x89, 0xC6, // mov esi,eax - 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_2 - 0x89, 0xC7, // mov edi,eax - 0x01, 0xF7, // add edi,esi - 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_123 - 0x89, 0xC6, // mov esi,eax - 0xE8, 0x00, 0x00, 0x00, 0x00, // call return_321 - 0x01, 0xF0, // add eax,esi - 0x01, 0xF8, // add eax,edi - 0x48, 0x83, 0xC4, 0x28, // add rsp,28h - 0x5F, // pop rdi - 0x5E, // pop rsi - 0xC3, // ret - }; - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0,COFF_MachineType_X64); - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - COFF_ObjSymbol *return_1_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_1")); - COFF_ObjSymbol *return_2_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_2")); - COFF_ObjSymbol *return_123_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_123")); - COFF_ObjSymbol *return_321_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("return_321")); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 7, return_1_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 14, return_2_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 23, return_123_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 30, return_321_symbol, COFF_Reloc_X64_Rel32); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("main.obj"), obj)) { goto exit; } - } - - int linker_exit_code; - - linker_exit_code = t_invoke_linkerf("/dll /implib:a.lib /export:return_1 /export:return_2 a.obj libcmt.lib"); - if (linker_exit_code != 0) { goto exit; } - - linker_exit_code = t_invoke_linkerf("/dll /implib:b.lib /export:return_123 /export:return_321 b.obj libcmt.lib"); - if (linker_exit_code != 0) { goto exit; } - - linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe /fixed /debug:full main.obj a.lib b.lib kernel32.lib delayimp.lib libcmt.lib /delayload:a.dll /delayload:b.dll"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - - PE_ParsedDelayImportTable delay_import_table = pe_delay_imports_from_data(scratch.arena, pe.is_pe32, pe.section_count, section_table, exe, pe.data_dir_franges[PE_DataDirectoryIndex_DELAY_IMPORT]); - - PE_ParsedDelayDLLImport *a_import = &delay_import_table.v[0]; - if (a_import->attributes != 1) { goto exit; } - if (!str8_match(a_import->name, str8_lit("a.dll"), 0)) { goto exit; } - if (a_import->module_handle_voff == 0) { goto exit; } - if (a_import->name_table_voff == 0) { goto exit; } - if (a_import->bound_table_voff != 0) { goto exit; } - if (a_import->unload_table_voff != 0) { goto exit; } - if (a_import->time_stamp != 0) { goto exit; } - if (a_import->bound_table_count != 0) { goto exit; } - if (a_import->unload_table_count != 0) { goto exit; } - if (a_import->import_count != 2) { goto exit; } - - PE_ParsedImport *return_1 = &a_import->imports[0]; - if (return_1->type != PE_ParsedImport_Name) { goto exit; } - if (!str8_match(return_1->u.name.string, str8_lit("return_1"), 0)) { goto exit; } - if (return_1->u.name.hint != 0) { goto exit; } - - PE_ParsedImport *return_2 = &a_import->imports[1]; - if (return_2->type != PE_ParsedImport_Name) { goto exit; } - if (!str8_match(return_2->u.name.string, str8_lit("return_2"), 0)) { goto exit; } - if (return_2->u.name.hint != 1) { goto exit; } - - PE_ParsedDelayDLLImport *b_import = &delay_import_table.v[1]; - if (b_import->attributes != 1) { goto exit; } - if (!str8_match(b_import->name, str8_lit("b.dll"), 0)) { goto exit; } - if (b_import->module_handle_voff == 0) { goto exit; } - if (b_import->name_table_voff == 0) { goto exit; } - if (b_import->bound_table_voff != 0) { goto exit; } - if (b_import->unload_table_voff != 0) { goto exit; } - if (b_import->time_stamp != 0) { goto exit; } - if (b_import->bound_table_count != 0) { goto exit; } - if (b_import->unload_table_count != 0) { goto exit; } - if (b_import->import_count != 2) { goto exit; } - - PE_ParsedImport *return_123 = &b_import->imports[0]; - if (return_123->type != PE_ParsedImport_Name) { goto exit; } - if (!str8_match(return_123->u.name.string, str8_lit("return_123"), 0)) { goto exit; } - if (return_123->u.name.hint != 0) { goto exit; } - - PE_ParsedImport *return_321 = &b_import->imports[1]; - if (return_321->type != PE_ParsedImport_Name) { goto exit; } - if (!str8_match(return_321->u.name.string, str8_lit("return_321"), 0)) { goto exit; } - if (return_321->u.name.hint != 1) { goto exit; } - - result = T_Result_Pass; -exit:; + va_list args; + va_start(args, fmt); + String8 cmdl = push_str8fv(scratch.arena, fmt, args); + va_end(args); + B32 is_ok = t_invoke(t_cl_path(), cmdl, max_U64); scratch_end(scratch); - return result; + return is_ok; } -internal T_Result -t_delay_import_user32(void) +internal B32 +t_invoke_linkerf(char *fmt, ...) { Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *data_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".str"), PE_DATA_SECTION_FLAGS, str8_zero()); - U64 msg_off = data_sect->data.total_size; - str8_list_pushf(obj_writer->arena, &data_sect->data, "test\0"); - U64 caption_off = data_sect->data.total_size; - str8_list_pushf(obj_writer->arena, &data_sect->data, "foo\0"); - COFF_ObjSymbol *msg_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("msg"), msg_off, data_sect); - COFF_ObjSymbol *caption_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("caption"), caption_off, data_sect); - - U8 text[] = { - 0x48, 0x83, 0xEC, 0x28, // sub rsp,28h - 0x45, 0x33, 0xC9, // xor r9d,r9d - 0x4C, 0x8D, 0x05, 0x00, 0x00, 0x00, 0x00, // lea r8,[msg] - 0x48, 0x8D, 0x15, 0x00, 0x00, 0x00, 0x00, // lea rdx,[caption] - 0x33, 0xC9, // xor ecx,ecx - 0xFF, 0x15, 0x00, 0x00, 0x00, 0x00, // call qword ptr [__imp_MessageBoxA] - 0x33, 0xC0, // xor eax,eax - 0x48, 0x83, 0xC4, 0x28, // add rsp,28h - 0xC3, // ret - }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - COFF_ObjSymbol *text_symbol = coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - COFF_ObjSymbol *message_box_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("__imp_MessageBoxA")); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 10, msg_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 17, caption_symbol, COFF_Reloc_X64_Rel32); - coff_obj_writer_section_push_reloc(obj_writer, text_sect, 25, message_box_symbol, COFF_Reloc_X64_Rel32); - - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("delay_import.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /out:a.exe /entry:entry /fixed /delayload:user32.dll kernel32.lib user32.lib libcmt.lib delayimp.lib delay_import.obj /debug:full"); - if (linker_exit_code != 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; + va_list args; + va_start(args, fmt); + String8 cmdl = push_str8fv(scratch.arena, fmt, args); + va_end(args); + B32 is_ok = t_invoke(t_radlink_path(), cmdl, max_U64); + scratch_end(scratch); + return is_ok; } -internal T_Result -t_empty_section(void) +internal B32 +t_invoke_radbin(char *fmt, ...) { Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - COFF_ObjSection *test = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_TEXT_SECTION_FLAGS, str8(0,0)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, test); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("empty_section.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, text_sect, 3, test_symbol); // relocation against removed section - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe empty_section.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - result = T_Result_Pass; -exit:; + va_list args; + va_start(args, fmt); + String8 cmdl = push_str8fv(scratch.arena, fmt, args); + va_end(args); + B32 is_ok = t_invoke(t_radbin_path(), cmdl, max_U64); scratch_end(scratch); - return result; + return is_ok; } -internal T_Result -t_removed_section(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 test_text[] = { 0xc3 }; - COFF_ObjSection *test_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".test"), PE_TEXT_SECTION_FLAGS | COFF_SectionFlag_LnkRemove, str8_array_fixed(test_text)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("TEST"), 0, test_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("test.obj"), obj)) { goto exit; } - } - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *text_sect = t_push_text_section(obj_writer, str8_array_fixed(text)); - COFF_ObjSymbol *test_symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("TEST")); - coff_obj_writer_section_push_reloc_voff(obj_writer, text_sect, 3, test_symbol); // relocation against removed section - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, text_sect); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("entry.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.obj entry.obj"); - if (linker_exit_code == 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_function_pad_min(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 ret[] = { 0xc3 }; - COFF_ObjSection *text_sect_0 = t_push_text_section(obj_writer, str8_array_fixed(ret)); - COFF_ObjSection *text_sect_1 = t_push_text_section(obj_writer, str8_array_fixed(ret)); - COFF_ObjSection *text_sect_2 = t_push_text_section(obj_writer, str8_array_fixed(ret)); - text_sect_0->flags |= COFF_SectionFlag_Align4Bytes; - text_sect_1->flags |= COFF_SectionFlag_Align2Bytes; - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("A"), 0, text_sect_0); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("B"), 0, text_sect_1); - coff_obj_writer_push_symbol_extern_func(obj_writer, str8_lit("C"), 0, text_sect_2); - String8 obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - if (!t_write_file(str8_lit("funcs.obj"), obj)) { goto exit; } - } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:A /functionpadmin:1 /out:a.exe funcs.obj"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *text_sect = t_coff_section_header_from_name(string_table, section_table, pe.section_count, str8_lit(".text")); - if (text_sect == 0) { goto exit; } - String8 text_data = str8_substr(exe, rng_1u64(text_sect->foff, text_sect->foff + text_sect->vsize)); - - U8 expected_text[] = { - 0xcc, 0xcc, 0xcc, 0xcc, 0xc3, - 0xcc, 0xcc, 0xcc, 0xc3, - 0xcc, 0xc3, - }; - if (!str8_match(text_data, str8_array_fixed(expected_text), 0)) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_first_member_header(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("8"), 0x8, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("1"), 0x1, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("9"), 0x9, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("7"), 0x7, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("4"), 0x4, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("5"), 0x5, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("2"), 0x2, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("3"), 0x3, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("6"), 0x6, COFF_SymStorageClass_External); - obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 lib; - { - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - coff_lib_writer_push_obj(lib_writer, str8_lit("obj.obj"), obj); - lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 0); - coff_lib_writer_release(&lib_writer); - } - - t_write_file(str8_lit("test.lib"), lib); - t_write_entry_obj(); - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.lib entry.obj /include:1 /include:2 /include:3 /include:4 /include:5 /include:6 /include:7 /include:8 /include:9"); - if (linker_exit_code != 0) goto exit; - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_second_member_header(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("8"), 0x8, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("1"), 0x1, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("9"), 0x9, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("7"), 0x7, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("4"), 0x4, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("5"), 0x5, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("2"), 0x2, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("3"), 0x3, COFF_SymStorageClass_External); - coff_obj_writer_push_symbol_abs(obj_writer, str8_lit("6"), 0x6, COFF_SymStorageClass_External); - obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 lib; - { - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - coff_lib_writer_push_obj(lib_writer, str8_lit("obj.obj"), obj); - lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); - coff_lib_writer_release(&lib_writer); - } - - t_write_file(str8_lit("test.lib"), lib); - t_write_entry_obj(); - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe test.lib entry.obj /include:1 /include:2 /include:3 /include:4 /include:5 /include:6 /include:7 /include:8 /include:9"); - if (linker_exit_code != 0) goto exit; - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -internal T_Result -t_opt_ref_dangling_section(void) -{ - Temp scratch = scratch_begin(0,0); - T_Result result = T_Result_Fail; - - String8 entry_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - U8 text[] = { - 0x48, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, // mov rax, $imm - 0xC3 // ret - }; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".text"), PE_TEXT_SECTION_FLAGS, str8_array_fixed(text)); - COFF_ObjSymbol *symbol = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("f")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, symbol); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("entry"), 0, sect); - entry_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 a_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - U8 data[] = "A0000"; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS | COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(data)); - - COFF_ObjSymbol *q = coff_obj_writer_push_symbol_undef(obj_writer, str8_lit("q")); - coff_obj_writer_section_push_reloc_voff(obj_writer, sect, 0, q); - - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("f"), 0, sect); - a_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 b_obj; - { - COFF_ObjWriter *obj_writer = coff_obj_writer_alloc(0, COFF_MachineType_X64); - - U8 q[] = { 1,2,3,4}; - COFF_ObjSection *q_sect = coff_obj_writer_push_section(obj_writer, str8_lit(".q"), PE_DATA_SECTION_FLAGS, str8_array_fixed(q)); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("q"), 0, q_sect); - - U8 data[] = "BBBBBBBBBBBBBBB"; - COFF_ObjSection *sect = coff_obj_writer_push_section(obj_writer, str8_lit(".data"), PE_DATA_SECTION_FLAGS | COFF_SectionFlag_LnkCOMDAT, str8_array_fixed(data)); - coff_obj_writer_push_symbol_secdef(obj_writer, sect, COFF_ComdatSelect_Largest); - coff_obj_writer_push_symbol_extern(obj_writer, str8_lit("f"), 0, sect); - - b_obj = coff_obj_writer_serialize(scratch.arena, obj_writer); - coff_obj_writer_release(&obj_writer); - } - - String8 b_lib; - { - COFF_LibWriter *lib_writer = coff_lib_writer_alloc(); - coff_lib_writer_push_obj(lib_writer, str8_lit("b.obj"), b_obj); - b_lib = coff_lib_writer_serialize(scratch.arena, lib_writer, 0, 0, 1); - coff_lib_writer_release(&lib_writer); - } - - if (!t_write_file(str8_lit("entry.obj"), entry_obj)) { goto exit; } - if (!t_write_file(str8_lit("a.obj"), a_obj)) { goto exit; } - if (!t_write_file(str8_lit("b.lib"), b_lib)) { goto exit; } - - int linker_exit_code = t_invoke_linkerf("/subsystem:console /entry:entry /out:a.exe entry.obj a.obj b.lib"); - if (linker_exit_code != 0) { goto exit; } - - String8 exe = t_read_file(scratch.arena, str8_lit("a.exe")); - PE_BinInfo pe = pe_bin_info_from_data(scratch.arena, exe); - COFF_SectionHeader *section_table = (COFF_SectionHeader *)str8_substr(exe, pe.section_table_range).str; - String8 string_table = str8_substr(exe, pe.string_table_range); - COFF_SectionHeader *sect = t_coff_section_header_from_name(exe, section_table, pe.section_count, str8_lit(".q")); - if (sect != 0) { goto exit; } - - result = T_Result_Pass; -exit:; - scratch_end(scratch); - return result; -} - -//////////////////////////////////////////////////////////////// - internal void -entry_point(CmdLine *cmdline) +t_kill_all(String8 pattern) { Temp scratch = scratch_begin(0,0); + DMN_ProcessIter it = {0}; + dmn_process_iter_begin(&it); + DMN_ProcessInfo info = {0}; + while (dmn_process_iter_next(scratch.arena, &it, &info)) { + if (str8_match_wildcard(info.name, pattern, StringMatchFlag_CaseInsensitive|StringMatchFlag_SlashInsensitive)) { +#if OS_WINDOWS + if (!t_invoke(str8_lit("taskkill"), str8f(scratch.arena, "/PID %u /F", info.pid), max_U64)) { fprintf(stderr, "ERROR: failed to invoke taskkill\n"); } +#elif OS_LINUX + NotImplemented; // TODO: test + if (!t_invoke(str8_lit("kill"), str8f(scratch.arena, " -9 %u", info.pid), max_U64)) { fprintf(stderr, "ERROR: failed to invoke kill\n"); } +#else +# error NotImplemented +#endif + if (g_last_exit_code != 0) { fprintf(stderr, "ERROR: failed to kill %u\n", info.pid); } + } + } + dmn_process_iter_end(&it); + scratch_end(scratch); +} - // - // Test Targets - // - static struct { - char *label; T_Result (*r)(void); - } target_array[] = { - { "simple_link_test", t_simple_link_test }, - { "machine_compat_check", t_machine_compat_check }, - { "out_of_bounds_section_number", t_out_of_bounds_section_number }, - { "merge", t_merge }, - { "undef_section", t_undef_section }, - { "undef_reloc_section", t_undef_reloc_section }, - { "link_undef", t_link_undef }, - { "link_unref_undef", t_link_unref_undef }, - { "weak_lib_vs_weak_lib", t_weak_lib_vs_weak_lib }, - { "weak_lib_vs_weak_nolib", t_weak_lib_vs_weak_nolib }, - { "weak_lib_vs_weak_alias", t_weak_lib_vs_weak_alias }, - { "weak_lib_vs_weak_antidep", t_weak_lib_vs_weak_antidep }, - { "weak_alias_vs_weak_alias", t_weak_alias_vs_weak_alias }, - { "weak_alias_vs_weak_lib", t_weak_alias_vs_weak_lib }, - { "weak_alias_vs_weak_nolib", t_weak_alias_vs_weak_nolib }, - { "weak_alias_vs_weak_antidep", t_weak_alias_vs_weak_antidep }, - { "weak_nolib_vs_weak_nolib", t_weak_nolib_vs_weak_nolib }, - { "weak_nolib_vs_weak_lib", t_weak_nolib_vs_weak_lib }, - { "weak_nolib_vs_weak_alias", t_weak_nolib_vs_weak_alias }, - { "weak_nolib_vs_weak_antidep", t_weak_nolib_vs_weak_antidep }, - { "weak_antidep_vs_weak_antidep", t_weak_antidep_vs_weak_antidep }, - { "weak_antidep_vs_weak_nolib", t_weak_antidep_vs_weak_nolib }, - { "weak_antidep_vs_weak_lib", t_weak_antidep_vs_weak_lib }, - { "weak_antidep_vs_weak_alias", t_weak_antidep_vs_weak_alias }, - { "weak_vs_common", t_weak_vs_common }, - { "abs_vs_weak", t_abs_vs_weak }, - { "abs_vs_regular", t_abs_vs_regular }, - { "abs_vs_common", t_abs_vs_common }, - { "abs_vs_abs", t_abs_vs_abs }, - { "undef_weak_lib", t_undef_weak_lib }, - { "undef_weak_search_alias", t_undef_weak_search_alias }, - { "sect_symbol", t_sect_symbol }, - { "weak_cycle", t_weak_cycle }, - { "weak_tag", t_weak_tag }, - { "find_merged_pdata", t_find_merged_pdata }, - { "section_sort", t_section_sort }, - { "flag_conf", t_flag_conf }, - { "invalid_bss", t_invalid_bss }, - { "common_block", t_common_block }, - { "base_relocs", t_base_relocs }, - { "simple_lib_test", t_simple_lib_test }, - { "sect_align", t_sect_align }, - { "image_base", t_image_base }, - { "comdat_any", t_comdat_any }, - { "comdat_no_duplicates", t_comdat_no_duplicates }, - { "comdat_same_size", t_comdat_same_size }, - { "comdat_exact_match", t_comdat_exact_match }, - { "comdat_largest", t_comdat_largest }, - { "comdat_associative", t_comdat_associative }, - { "comdat_associative_loop", t_comdat_associative_loop }, - { "comdat_associative_non_comdat", t_comdat_associative_non_comdat }, - { "comdat_associative_out_of_bounds", t_comdat_associative_out_of_bounds }, - { "comdat_with_offset", t_comdat_with_offset }, - { "reloc_against_removed_comdat", t_reloc_against_removed_comdat }, - { "alt_name", t_alt_name }, - { "include", t_include }, - { "communal_var_vs_regular_comdat", t_communal_var_vs_regular_comdat }, - { "communal_var_vs_regular", t_communal_var_vs_regular }, - { "import_kernel32", t_import_kernel32 }, - { "delay_import_user32", t_delay_import_user32 }, - { "delay_import", t_delay_import }, - { "empty_section", t_empty_section }, - { "removed_section", t_removed_section }, - { "function_pad_min", t_function_pad_min }, - { "first_member_header", t_first_member_header }, - { "second_member_header", t_second_member_header }, - }; +// TODO: obsolete +internal String8 +t_chop_line(String8 *string) +{ + return str8_chop_line(string); +} +// TODO: obsolete +internal B32 +t_match_line(String8 *output, String8 expected_line) +{ + return str8_match_wildcard(t_chop_line(output), expected_line, 0); +} +internal B32 +t_match_linef(String8 *output, char *fmt, ...) +{ + Temp scratch = scratch_begin(0, 0); + va_list args; + va_start(args, fmt); + String8 expected_line = push_str8fv(scratch.arena, fmt, args); + B32 is_match = t_match_line(output, expected_line); + va_end(args); + scratch_end(scratch); + return is_match; +} + +force_inline int +t_test_info_is_before(TestInfo **a, TestInfo **b) +{ + String8 layer_a = a[0]->layer; + String8 layer_b = b[0]->layer; + int cmp = str8_compar(layer_a, layer_b, 0); + if(cmp == 0) + { + cmp = u64_compar(&a[0]->decl_line, &b[0]->decl_line); + } + return cmp; +} + +internal String8List +t_file_paths_from_dir(Arena *arena, String8 dir) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List dirs = {0}; + String8List files = {0}; + + FileIter *iter = file_iter_begin(scratch.arena, dir, 0); + FileInfo file; + while (file_iter_next(scratch.arena, iter, &file)) { + if (file.props.flags & FilePropertyFlag_IsFolder) { + str8_list_pushf(scratch.arena, &dirs, "%S/%S", dir, file.name); + } else { + str8_list_pushf(arena, &files, "%S/%S", dir, file.name); + } + } + file_iter_end(iter); + + String8List result = {0}; + for EachNode(n, String8Node, dirs.first) { + String8List sub_result = t_file_paths_from_dir(arena, n->string); + str8_list_concat_in_place(&result, &sub_result); + } + + scratch_end(scratch); + //str8_list_concat_in_place(&result, &dirs); + str8_list_concat_in_place(&result, &files); + return result; +} + +internal int str8_is_before_case_ignore_case(void *a, void *b) { return str8_compar_ignore_case(a, b) < 0; } +internal void t_sort_str8_array(String8Array a) { radsort(a.v, a.count, str8_is_before_case_ignore_case); } + +internal B32 +t_match_folders(String8 a, String8 b) +{ + Temp scratch = scratch_begin(0,0); + String8List files_a = t_file_paths_from_dir(scratch.arena, a); + //for EachNode(n, String8Node, files_a.first) printf("%.*s\n", str8_varg(n->string)); + String8List files_b = t_file_paths_from_dir(scratch.arena, b); + B32 is_match = 0; + + String8Array sorted_a = str8_array_from_list(scratch.arena, &files_a); + String8Array sorted_b = str8_array_from_list(scratch.arena, &files_b); + t_sort_str8_array(sorted_a); + t_sort_str8_array(sorted_b); + + if (sorted_a.count == sorted_b.count) { + for EachIndex(i, sorted_a.count) { + Temp temp = temp_begin(scratch.arena); + String8 ext_a = str8_skip_last_dot(str8_skip_last_slash(sorted_a.v[i])); + String8 ext_b = str8_skip_last_dot(str8_skip_last_slash(sorted_b.v[i])); + if (str8_match(ext_a, ext_b, 0)) { + if (str8_match(ext_a, str8_lit("obj"), StringMatchFlag_CaseInsensitive) || + str8_match(ext_a, str8_lit("lib"), StringMatchFlag_CaseInsensitive)) { + String8 data_a = data_from_file_path(temp.arena, sorted_a.v[i]); + String8 data_b = data_from_file_path(temp.arena, sorted_b.v[i]); + is_match = str8_match(data_a, data_b, 0); + if ( ! is_match) { + Process h; + h = launch_cmd_linef("dumpbin /all %S /out:a.txt", sorted_a.v[i]); + process_join(h, max_U64, 0); + h = launch_cmd_linef("dumpbin /all %S /out:b.txt", sorted_b.v[i]); + process_join(h, max_U64, 0); + } + Assert(is_match); + if (!is_match) { break; } + } + } + else { InvalidPath; } + temp_end(temp); + } + } + + scratch_end(scratch); + return is_match; +} + +internal void +t_infof(char *fmt, ...) +{ + if (g_verbose) { + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 result = push_str8fv(scratch.arena, fmt, args); + if (g_is_first_print) { + g_is_first_print = 0; + fprintf(stderr, "\n"); + } + fprintf(stderr, "%.*s", str8_varg(result)); + va_end(args); + scratch_end(scratch); + } +} + +internal void +t_errorf(char *fmt, ...) +{ + Temp scratch = scratch_begin(0,0); + va_list args; + va_start(args, fmt); + String8 result = push_str8fv(scratch.arena, fmt, args); + if (g_is_first_print) { + g_is_first_print = 0; + fprintf(stderr, "\n"); + } + fprintf(stderr, "%.*s", str8_varg(result)); + va_end(args); + scratch_end(scratch); +} + +internal void +t_help(void) +{ + fprintf(stderr, "--- Help -------------------------------------------------------\n"); + fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); + fprintf(stderr, " Usage: torture [Options] \n\n"); + fprintf(stderr, " Options:\n"); + fprintf(stderr, " -list Print available test targets\n"); + fprintf(stderr, " -gui Launch debugger with window\n"); + fprintf(stderr, " -cl: Override default cl path\n"); + fprintf(stderr, " -clang: Override default clang path\n"); + fprintf(stderr, " -gcc: Override default gcc path\n"); + fprintf(stderr, " -linker: Path to PE/COFF linker\n"); + fprintf(stderr, " -print_stdout Print to console stdout and stderr of a run\n"); + fprintf(stderr, " -out: Directory path for test outputs (default \"%.*s\")\n", str8_varg(g_out)); + fprintf(stderr, " -build_only Build debugger harness without running the tests\n"); + fprintf(stderr, " -verbose Enable verbose mode\n"); + fprintf(stderr, " -help Print help menu and exit\n"); + fprintf(stderr, "\nInputs are wildcard expressions. Prefix with ! to skip matches, or + to force-run matches.\n"); + fprintf(stderr, "\nExamples:\n"); + fprintf(stderr, " torture * Run all tests\n"); + fprintf(stderr, " torture bit_array Run 'bit_array' test\n"); + fprintf(stderr, " torture !* Skip all tests\n"); + fprintf(stderr, " torture * !bit_array Run all tests but skip 'bit_array'\n"); + fprintf(stderr, " torture +* Force-run all tests\n"); +} + +internal void +t_entry_point(CmdLine *cmdline) +{ + Temp scratch = scratch_begin(0,0); + U64 exit_code = max_U64; + + U64 dashes_size = 9999; + U8 *dashes = push_array(scratch.arena, U8, dashes_size); + MemorySet(dashes, '-', dashes_size); + + U64 dots_size = 9999; + U8 *dots = push_array(scratch.arena, U8, dots_size); + MemorySet(dots, '.', dots_size); + + char *spaces = " "; + +#define PrintHeader(p) fprintf(stderr, "--- %s %.*s\n", p, Max((80-4) - (int)strlen(p), 3), dashes) + // // Handle -help // { B32 print_help = cmd_line_has_flag(cmdline, str8_lit("help")) || - cmd_line_has_flag(cmdline, str8_lit("h")); - if (print_help) { - fprintf(stderr, "--- Help -----------------------------------------------------------------------\n"); - fprintf(stderr, " %s\n\n", BUILD_TITLE_STRING_LITERAL); - fprintf(stderr, " Usage: torture [Options] [Files]\n\n"); - fprintf(stderr, " Options:\n"); - fprintf(stderr, " -linker:{path} Path to PE/COFF linker\n"); - fprintf(stderr, " -target:{name[,name]} Selects targets to test\n"); - fprintf(stderr, " -list Print available test targets and exit\n"); - fprintf(stderr, " -out:{path} Directory path for test outputs (default \"%.*s\")\n", str8_varg(g_out)); - fprintf(stderr, " -verbose Enable verbose mode\n"); - fprintf(stderr, " -print_stdout Print to console stdout and stderr of a run\n"); - fprintf(stderr, " -help Print help menu and exit\n"); - os_abort(0); + cmd_line_has_flag(cmdline, str8_lit("h")); + if (print_help) { + t_help(); + goto exit; } } - + + // Gather tests + { + for EachIndex(i, test_infos_count) { g_sorted_test_infos[i] = &test_infos[i]; } + radsort(g_sorted_test_infos, test_infos_count, (int (*)(void *, void *))t_test_info_is_before); + } + // // Handle -list // { if (cmd_line_has_flag(cmdline, str8_lit("list"))) { - fprintf(stdout, "--- Targets --------------------------------------------------------------------\n"); - for (U64 i = 0; i < ArrayCount(target_array); i += 1) { - fprintf(stdout, " %s\n", target_array[i].label); + PrintHeader("Tests"); + for EachIndex(i, test_infos_count) { + fprintf(stdout, " %.*s\n", str8_varg(g_sorted_test_infos[i]->label)); } - os_abort(0); + abort_self(0); } } - - + // - // Handle -linker + // Compiler overrides // - { - CmdLineOpt *linker_opt = cmd_line_opt_from_string(cmdline, str8_lit("linker")); - if (linker_opt == 0) { - linker_opt = cmd_line_opt_from_string(cmdline, str8_lit("l")); - } - if (linker_opt) { - if (linker_opt->value_strings.node_count == 1) { - g_linker = linker_opt->value_string; - } else { - fprintf(stderr, "ERROR: -linker has invalid number of arguments\n"); - os_abort(1); - } - } else { - // assume default linker - g_linker = str8_lit("radlink"); - } - } - + g_gui = cmd_line_has_flag(cmdline, str8_lit("gui")); + g_cl_path = cmd_line_string(cmdline, str8_lit("cl")); + g_clang_path = cmd_line_string(cmdline, str8_lit("clang")); + g_gcc_path = cmd_line_string(cmdline, str8_lit("gcc")); + g_linker_path = cmd_line_string(cmdline, str8_lit("linker")); + // // Handle optional -target // - String8List target = cmdline->inputs; + U64List targets = {0}; { - CmdLineOpt *target_opt = cmd_line_opt_from_string(cmdline, str8_lit("target")); - if (target_opt == 0) { - target_opt = cmd_line_opt_from_string(cmdline, str8_lit("t")); - } + String8List inputs = {0}; + + CmdLineOpt *target_opt = 0; + if (target_opt == 0) { target_opt = cmd_line_opt_from_string(cmdline, str8_lit("target")); } + if (target_opt == 0) { target_opt = cmd_line_opt_from_string(cmdline, str8_lit("t")); } + + // handle explicit target switch if (target_opt) { - if (target_opt->value_strings.node_count > 0) { - str8_list_concat_in_place(&target, &target_opt->value_strings); - } else { - fprintf(stderr, "ERROR: -target has invalid number of arguments\n"); + str8_list_concat_in_place(&inputs, &target_opt->value_strings); + } + + // accept inputs from the command line as target tests to run + str8_list_concat_in_place(&inputs, &cmdline->inputs); + + // no inputs -> print help and exit + if (inputs.node_count == 0) { + t_help(); + goto exit; + } + + HashMap hm = {0}; + for EachNode(input_n, String8Node, inputs.first) { + String8 t = input_n->string; + + // parse mode + typedef enum { Mode_Default, Mode_Skip, Mode_Force, } Mode; + Mode mode = Mode_Default; + if (str8_match_wildcard(t, str8_lit("+*"), 0)) { mode = Mode_Force; t = str8_skip(t, 1); } + else if (str8_match_wildcard(t, str8_lit("!*"), 0)) { mode = Mode_Skip; t = str8_skip(t, 1); } + + if (str8_find_needle(t, 0, str8_lit("/"), 0) >= t.size) { + t = str8f(scratch.arena, "*/%S", t); + } + + U64 match_count = 0; + + for EachIndex(test_idx, test_infos_count) { + TestInfo *test_info = g_sorted_test_infos[test_idx]; + + // match test names + String8 test_name = t_name_from_test_info(scratch.arena, test_info); + + if (str8_match_wildcard(test_name, t, StringMatchFlag_CaseInsensitive)) { + // set skip flag + switch (mode) { + case Mode_Default: break; + case Mode_Skip: test_info->skip = 1; break; + case Mode_Force: test_info->skip = 0; break; + } + + // append test when not in skipping mode + if ( ! hash_map_search_string_u64(&hm, test_name)) { + hash_map_push_string_u64(scratch.arena, &hm, test_name, 1); + u64_list_push(scratch.arena, &targets, test_idx); + } + + match_count += 1; + } + } + + if (match_count == 0) { + fprintf(stderr, "WARNING: no matches found for input: %.*s\n", str8_varg(input_n->string)); } } } - - // + + g_verbose = cmd_line_has_flag(cmdline, str8_lit("verbose")); + g_redirect_stdout = !cmd_line_has_flag(cmdline, str8_lit("print_stdout")); + g_stop_on_first_fail_or_crash = !cmd_line_has_flag(cmdline, str8_lit("keep_going")); + g_build_only = cmd_line_has_flag(cmdline, str8_lit("build_only")); + g_output_arena = arena_alloc(); + + // default options when running under debugger +#if OS_WINDOWS + if (!cmd_line_has_flag(cmdline, str8_lit("print_stdout")) && IsDebuggerPresent()) { + g_redirect_stdout = 0; + } + + // automatically close child processes on exit + { + HANDLE job_handle = CreateJobObjectA(0, 0); + AssertAlways(job_handle != 0); + JOBOBJECT_EXTENDED_LIMIT_INFORMATION job_info = { .BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE }; + AssertAlways(SetInformationJobObject(job_handle, JobObjectExtendedLimitInformation, &job_info, sizeof(job_info))); + AssertAlways(AssignProcessToJobObject(job_handle, GetCurrentProcess())); + } +#endif + // Handle -out - // { CmdLineOpt *out_opt = cmd_line_opt_from_string(cmdline, str8_lit("out")); if (out_opt) { @@ -5111,117 +1212,205 @@ entry_point(CmdLine *cmdline) } } } - - // - // Handle -verbose - // - { - g_verbose = cmd_line_has_flag(cmdline, str8_lit("verbose")); - } - - // - // Handle -print_stdout - // - { - g_redirect_stdout = !cmd_line_has_flag(cmdline, str8_lit("print_stdout")); - } - + // // Make Output Directory // - os_make_directory(g_out); - if (!os_folder_path_exists(g_out)) { + make_directory(g_out); + if (!folder_path_exists(g_out)) { fprintf(stderr, "ERROR: unable to create output directory \"%.*s\"\n", str8_varg(g_out)); - os_abort(1); + goto exit; } - + // // Clean up output from previous run // - os_delete_file_at_path(g_stdout_file_name); - + delete_file_at_path(g_stdout_file_name); + // - // Run Test Targets + // Run tests // - { + { + U64Array target_indices = u64_array_from_list(scratch.arena, &targets); + U64 max_label_size = 0; - for (U64 i = 0; i < ArrayCount(target_array); i += 1) { max_label_size = Max(max_label_size, cstring8_length((U8*)target_array[i].label)); } - - U64 dots_min = 10; - U64 dots_size = max_label_size+dots_min; - U8 *dots = push_array(scratch.arena, U8, dots_size); - MemorySet(dots, '.', dots_size); - - U64 target_indices_count; - U64 *target_indices; - if (target.node_count == 0) { - target_indices_count = ArrayCount(target_array); - target_indices = push_array(scratch.arena, U64, ArrayCount(target_array)); - for (U64 i = 0; i < target_indices_count; i += 1) { target_indices[i] = i; } - } else { - target_indices_count = 0; - target_indices = push_array(scratch.arena, U64, target.node_count); - - for (String8Node *target_n = target.first; target_n != 0; target_n = target_n->next) { - B32 is_target_unknown = 1; - for (U64 i = 0; i < ArrayCount(target_array); i += 1) { - if (str8_match(str8_cstring(target_array[i].label), target_n->string, 0)) { - target_indices[target_indices_count++] = i; - is_target_unknown = 0; - break; - } - } - if (is_target_unknown) { - fprintf(stderr, "ERROR: unknown target \"%.*s\"\n", str8_varg(target_n->string)); - } - } + U64 max_layer_size = 0; + for EachIndex(i, target_indices.count) { + U64 test_idx = target_indices.v[i]; + TestInfo *test_info = g_sorted_test_infos[test_idx]; + max_label_size = Max(max_label_size, test_info->label.size); + max_layer_size = Max(max_layer_size, test_info->layer.size); } - - U64 pass_count = 0; - U64 fail_count = 0; - U64 crash_count = 0; - for (U64 i = 0; i < target_indices_count; i += 1) { - U64 target_idx = target_indices[i]; - - g_wdir = push_str8f(scratch.arena, "%S\\%s", g_out, target_array[target_idx].label); - g_wdir = os_full_path_from_path(scratch.arena, g_wdir); - os_make_directory(g_wdir); - if (!os_folder_path_exists(g_out)) { + + U64 run_counters[TestStatus_COUNT] = {0}; + U64 max_digit_count = count_digits_u64(target_indices.count, 10); + U64 total_time_start = now_time_us(); + + typedef struct { U64 target_idx, d; } Slowest; + Slowest slowest[5] = {0}; + for EachElement(i, slowest) { slowest[i].target_idx = max_U64; } + + U64List skipped_tests = {0}; + + for EachIndex(i, target_indices.count) { + if (i == 0) { PrintHeader("Tests"); } + + U64 target_idx = target_indices.v[i]; + TestInfo *test = g_sorted_test_infos[target_idx]; + + // print run progress + U64 dots_min = 10; + U64 dots_count = (max_label_size - test->label.size) + dots_min; + U64 curr_digit_count = count_digits_u64(i+1, 10); + int idx_align_space_count = (int)(max_digit_count - curr_digit_count); + fprintf(stdout, "[%.*s%llu/%llu] ", idx_align_space_count, spaces, (unsigned long long)i+1, (unsigned long long)target_indices.count); + fprintf(stdout, "%.*s %.*s/ %.*s", str8_varg(test->layer), (int)(max_layer_size - test->layer.size), spaces, str8_varg(test->label)); + fprintf(stdout, " %.*s ", (int)dots_count, dots); + fflush(stdout); + + // rjf: find exemplar data directory + { + String8 binary_dir_path = get_process_info()->binary_path; + String8 root_dir_path = str8_chop_last_slash(binary_dir_path); + g_exemplar_dir = str8f(scratch.arena, "%S/local/test_data/exemplars/%S", root_dir_path, test->label); + } + + // rjf: find input data directory + { + String8 binary_dir_path = get_process_info()->binary_path; + String8 root_dir_path = str8_chop_last_slash(binary_dir_path); + g_input_data_dir = str8f(scratch.arena, "%S/local/test_data/inputs", root_dir_path); + } + + // setup output directory + g_wdir = str8f(scratch.arena, "%S/%S", g_out, test->label); + g_wdir = full_path_from_path(scratch.arena, g_wdir); + + // delete files from last run in the work directory + if (folder_path_exists(g_wdir)) { + t_delete_dir(g_wdir); + } + make_directory(g_wdir); + + if (!folder_path_exists(g_out)) { fprintf(stderr, "ERROR: unable to create output directory for test run %.*s\n", str8_varg(g_wdir)); continue; } - - T_Result result = t_run(target_array[target_idx].r); - - U64 dots_count = (max_label_size - cstring8_length((U8*)target_array[target_idx].label)) + dots_min; - String8 msg = push_str8f(scratch.arena, "%s%.*s%s", target_array[target_idx].label, dots_count, dots, t_string_from_result(result)); - - // run progress - fprintf(stdout, "[%2llu/%2llu] ", i+1, target_indices_count); - - if (result == T_Result_Pass) { - fprintf(stdout, "\x1b[32m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); - pass_count += 1; - } else if (result == T_Result_Fail) { - fprintf(stdout, "\x1b[31m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); - fail_count += 1; - } else if (result == T_Result_Crash) { - fprintf(stdout, "\x1b[33m" "%.*s" "\x1b[0m" "\n", str8_varg(msg)); - crash_count += 1; + + // run test + U64 run_start_time = now_time_us(); + TestResult result = t_run(cmdline, test, str8_zero()); + U64 run_end_time = now_time_us(); + + // update + run_counters[result.status] += 1; + + // rjf: map status -> color / string + char *status_name_cstr = 0; + char *color_cstr = 0; + switch(result.status) + { + default: + case TestStatus_Pass: {status_name_cstr = "PASS"; color_cstr = T_GREEN;}break; + case TestStatus_Fail: {status_name_cstr = "FAIL"; color_cstr = T_RED;}break; + case TestStatus_Crash:{status_name_cstr = "CRASH"; color_cstr = T_RED;}break; + case TestStatus_Skip: {status_name_cstr = "SKIP"; color_cstr = T_YELLOW;}break; + } + + // print run status + fprintf(stdout, "%s%s" T_RESET, color_cstr, status_name_cstr); + + if (result.status == TestStatus_Pass) { + U64 d = run_end_time - run_start_time; + DateTime t = date_time_from_micro_seconds(d); + String8 s = string_from_elapsed_time(scratch.arena, t); + fprintf(stdout, " %.*s", str8_varg(s)); + + fflush(stdout); + + U64 insert_idx = max_U64; + for EachElement(i, slowest) { + if (d > slowest[i].d) { + insert_idx = i; + break; + } + } + if (insert_idx < ArrayCount(slowest)) { + for (U64 i = ArrayCount(slowest) - 1; i > insert_idx; i -= 1) { + slowest[i] = slowest[i - 1]; + } + slowest[insert_idx].target_idx = target_idx; + slowest[insert_idx].d = d; + } + } + fprintf(stdout, "\n"); + + if (result.status == TestStatus_Fail) { + fprintf(stdout, " ERROR: %s:%d: condition: \"%s\"\n", result.fail_file, result.fail_line, result.fail_cond); + } + + if (result.status == TestStatus_Fail || result.status == TestStatus_Crash) { + if (g_stop_on_first_fail_or_crash) { goto exit; } + } + + if (result.status == TestStatus_Skip) { + u64_list_push(scratch.arena, &skipped_tests, target_idx); } } - - fprintf(stdout, "--- Report ---------------------------------------------------------------------\n"); - fprintf(stdout, " Passed: %llu\n", pass_count); - fprintf(stdout, " Failed: %llu\n", fail_count); - fprintf(stdout, " Crashed: %llu\n", crash_count); - - if (fail_count + crash_count != 0) { - fflush(stdout); - os_abort(fail_count + crash_count); + U64 total_time_end = now_time_us(); + + if (target_indices.count > 0 && sum_array_u64(ArrayCount(run_counters), run_counters) > 0) { + U64 total_time_dt = total_time_end - total_time_start; + String8 total_time_str = string_from_elapsed_time(scratch.arena, date_time_from_micro_seconds(total_time_dt)); + + fprintf(stderr, "\n"); + PrintHeader("Summary"); + fprintf(stderr, " Passed %llu\n", (unsigned long long)run_counters[TestStatus_Pass]); + fprintf(stderr, " Failed %llu\n", (unsigned long long)run_counters[TestStatus_Fail]); + fprintf(stderr, " Crashed %llu\n", (unsigned long long)run_counters[TestStatus_Crash]); + fprintf(stderr, " Skipped %llu\n", (unsigned long long)run_counters[TestStatus_Skip]); + fprintf(stderr, " Time %.*s\n", str8_varg(total_time_str)); + + // count slow tests + U64 slow_count = 0; + for EachElement(i, slowest) { + Slowest s = slowest[i]; + if (s.target_idx >= test_infos_count) { break; } + slow_count += 1; + } + + if (slow_count > 1) { + U64 label_max = 0; + U64 layer_max = 0; + for EachIndex(i, slow_count) { + Slowest s = slowest[i]; + label_max = Max(g_sorted_test_infos[s.target_idx]->label.size, label_max); + layer_max = Max(g_sorted_test_infos[s.target_idx]->layer.size, layer_max); + } + + fprintf(stderr, " \nSlow Tests\n"); + for EachIndex(i, slow_count) { + Slowest s = slowest[i]; + if (s.target_idx >= test_infos_count) { break; } + + TestInfo *test_info = g_sorted_test_infos[s.target_idx]; + String8 elapsed_time = string_from_elapsed_time(scratch.arena, date_time_from_micro_seconds(s.d)); + + fprintf(stderr, " %.*s %.*s/ %.*s %.*s %.*s\n", + str8_varg(test_info->layer), + (int)(layer_max - test_info->layer.size), spaces, + str8_varg(test_info->label), + (int)(label_max - test_info->label.size) + 4, dots, + str8_varg(elapsed_time)); + } + } } + + exit_code = run_counters[TestStatus_Fail] + run_counters[TestStatus_Crash]; + exit:; } - + scratch_end(scratch); + exit(exit_code); } diff --git a/src/torture/torture.h b/src/torture/torture.h new file mode 100644 index 00000000..56578809 --- /dev/null +++ b/src/torture/torture.h @@ -0,0 +1,81 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#pragma once + +//////////////////////////////// + +typedef struct +{ + TestInfo *test; + CmdLine *cmdline; + String8 user_data; + TestResult result; +} T_RunCtx; + +//////////////////////////////// + +#define TIMEOUT_US(x) (x) +#define TIMEOUT_MS(x) TIMEOUT_US((x)*1000ull) +#define TIMEOUT_SEC(x) TIMEOUT_MS((x)*1000ull) + +#define ENDT_US(x) (now_time_us() + (x)) +#define ENDT_MS(x) TIMEOUT_US((x)*1000ull) +#define ENDT_SEC(x) TIMEOUT_MS((x)*1000ull) + +//////////////////////////////// + +#define T_RESET "\x1b[0m" +#define T_RED "\x1b[31m" +#define T_GREEN "\x1b[32m" +#define T_YELLOW "\x1b[33m" +#define T_BLUE "\x1b[34m" + +//////////////////////////////// + +// artifacts directory helpers +internal B32 t_write_file_list(String8 name, String8List data); +internal B32 t_write_file(String8 name, String8 data); +internal String8 t_read_file(Arena *arena, String8 name); +internal B32 t_delete_file(String8 name); +internal String8 t_make_file_path(Arena *arena, String8 name); + +// test runner +internal void t_run_caller(void *raw_ctx); +internal void t_run_fail_handler(void *raw_ctx); +internal TestResult t_run(CmdLine *cmdline, TestInfo *test, String8 user_data); + +// tools +internal String8 t_radbin_path(void); +internal String8 t_cl_path(void); +internal String8 t_clang_path(void); +internal String8 t_gcc_path(void); +internal String8 t_radlink_path(void); +internal String8 t_cwd_path(void); +internal String8 t_src_path(void); + +// process helpers +internal B32 t_invoke(String8 exe, String8 cmdline, U64 timeout); +internal B32 t_invoke_cl(char *fmt, ...); +internal B32 t_invoke_linkerf(char *fmt, ...); +internal B32 t_invoke_radbin(char *fmt, ...); +internal void t_kill_all(String8 pattern); +#define t_invoke_linker_timeout(c, t) T_Ok(t_invoke(t_radlink_path(), c, t)) +#define t_invoke_linker_timeoutf(t, f, ...) t_invoke_linker_timeout(push_str8f(arena, f, ##__VA_ARGS__), t) +#define t_invoke_linker(c) t_invoke_linker_timeout(c, max_U64) + +internal String8 t_chop_line(String8 *string); +internal B32 t_match_line(String8 *output, String8 expected_line); +internal B32 t_match_linef(String8 *output, char *fmt, ...); +#define T_MatchLinef(out, ...) T_Ok(t_match_linef(out, __VA_ARGS__)) + +// files helper +internal String8List t_file_paths_from_dir(Arena *arena, String8 dir); + +// TODO: deprecate +internal void t_infof(char *fmt, ...); +internal void t_errorf(char *fmt, ...); +#define TEST(name) Test(name) +#define SKIP(name) SkippedTest(name) +#define T_Ok(c) TestCheck(c) + diff --git a/src/torture/torture_main.c b/src/torture/torture_main.c new file mode 100644 index 00000000..75cae873 --- /dev/null +++ b/src/torture/torture_main.c @@ -0,0 +1,198 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +// Build Options + +#define BUILD_TITLE "TORTURE" + +#define BUILD_TESTS 1 +#define BUILD_CONSOLE_INTERFACE 1 +#define OS_FEATURE_GRAPHICAL 1 +#define DMN_INIT_MANUAL 1 +#define D_INIT_MANUAL 1 +#define WM_INIT_MANUAL 1 +#define FP_INIT_MANUAL 1 +#define R_INIT_MANUAL 1 +#define FNT_INIT_MANUAL 1 +#define RD_INIT_MANUAL 1 +#define NO_ASYNC 1 + +//////////////////////////////// + +#include "base/base_inc.h" +#include "x64/x64.h" +#include "linker/hash_table.h" +#include "linker/lf_hash_table.h" +#include "linker/base_ext/base_bit_array.h" +#include "artifact_cache/artifact_cache.h" +#include "rdi/rdi_local.h" +#include "rdi_make/rdi_make_local.h" +#include "minidump/minidump.h" +#include "minidump/minidump_parse.h" +#include "mdesk/mdesk.h" +#include "metagen/metagen.h" +#include "window_manager/window_manager_inc.h" +#include "http/http_inc.h" +#include "symbol_server/symbol_server_inc.h" +#include "config/config_inc.h" +#include "content/content.h" +#include "file_stream/file_stream.h" +#include "text/text.h" +#include "mutable_text/mutable_text.h" +#include "coff/coff.h" +#include "coff/coff_parse.h" +#include "coff/coff_obj_writer.h" +#include "coff/coff_lib_writer.h" +#include "pe/pe.h" +#include "pe/pe_section_flags.h" +#include "pe/pe_make_import_table.h" +#include "elf/elf.h" +#include "gnu/gnu.h" +#include "gnu/gnu_parse.h" +#include "elf/elf_parse.h" +#include "elf/elf_dump.h" +#include "codeview/codeview.h" +#include "codeview/codeview_parse.h" +#include "msf/msf.h" +#include "msf/msf_parse.h" +#include "pdb/pdb.h" +#include "pdb/pdb_parse.h" +#include "pdb/pdb_stringize.h" +#include "dwarf/dwarf_inc.h" +#include "eh_frame/eh_frame.h" +#include "eh_frame/eh_frame_dump.h" +#include "unwind/unwind_inc.h" +#include "llvm/llvm.h" +#include "rdi_from_coff/rdi_from_coff.h" +#include "rdi_from_elf/rdi_from_elf.h" +#include "rdi_from_codeview/rdi_from_codeview.h" +#include "rdi_from_pdb/rdi_from_pdb.h" +#include "rdi_from_dwarf/rdi_from_dwarf.h" +#include "obj/obj.h" +#include "radbin/radbin.h" +#include "arch/arch_inc.h" +#include "dbg_info/dbg_info.h" +#include "disasm/disasm_inc.h" +#include "stap/stap_parse.h" +#include "demon/demon_inc.h" +#include "eval/eval_inc.h" +#include "dbg_engine/dbg_engine_inc.h" +#include "eval_visualization/eval_visualization_inc.h" +#include "font_provider/font_provider_inc.h" +#include "render/render_inc.h" +#include "font_cache/font_cache.h" +#include "draw/draw.h" +#include "ui/ui_inc.h" +#include "raddbg/raddbg_inc.h" +#include "linker/base_ext/base_crc32.h" +#include "linker/base_ext/base_core.h" +#include "linker/base_ext/base_arena.h" +#include "linker/base_ext/base_arrays.h" +#include "linker/thread_pool/thread_pool.h" +#include "linker/codeview_ext/codeview.h" +#include "linker/pdb_ext/msf_builder.h" +#include "linker/pdb_ext/pdb.h" +#include "linker/pdb_ext/pdb_helpers.h" +#include "linker/pdb_ext/pdb_builder.h" +#include "linker/lnk_cmd_line.h" +#include "linker/lnk_cmd_line.c" +#include "linker/lnk_log.h" +#include "linker/lnk_debug_helper.h" +#include "torture.h" + +#include "base/base_inc.c" +#include "x64/x64.c" +#include "linker/hash_table.c" +#include "linker/lf_hash_table.c" +#include "linker/base_ext/base_bit_array.c" +#include "artifact_cache/artifact_cache.c" +#include "rdi/rdi_local.c" +#include "rdi_make/rdi_make_local.c" +#include "minidump/minidump.c" +#include "minidump/minidump_parse.c" +#include "mdesk/mdesk.c" +#include "metagen/metagen.c" +#include "window_manager/window_manager_inc.c" +#include "http/http_inc.c" +#include "symbol_server/symbol_server_inc.c" +#include "config/config_inc.c" +#include "content/content.c" +#include "file_stream/file_stream.c" +#include "text/text.c" +#include "mutable_text/mutable_text.c" +#include "coff/coff.c" +#include "coff/coff_parse.c" +#include "coff/coff_obj_writer.c" +#include "coff/coff_lib_writer.c" +#include "pe/pe.c" +#include "pe/pe_make_import_table.c" +#include "elf/elf.c" +#include "gnu/gnu.c" +#include "gnu/gnu_parse.c" +#include "elf/elf_parse.c" +#include "elf/elf_dump.c" +#include "codeview/codeview.c" +#include "codeview/codeview_parse.c" +#include "msf/msf.c" +#include "msf/msf_parse.c" +#include "pdb/pdb.c" +#include "pdb/pdb_parse.c" +#include "pdb/pdb_stringize.c" +#include "dwarf/dwarf_inc.c" +#include "eh_frame/eh_frame.c" +#include "eh_frame/eh_frame_dump.c" +#include "unwind/unwind_inc.c" +#include "llvm/llvm.c" +#include "rdi_from_coff/rdi_from_coff.c" +#include "rdi_from_elf/rdi_from_elf.c" +#include "rdi_from_codeview/rdi_from_codeview.c" +#include "rdi_from_pdb/rdi_from_pdb.c" +#include "rdi_from_dwarf/rdi_from_dwarf.c" +#include "obj/obj.c" +#include "radbin/radbin.c" +#include "arch/arch_inc.c" +#include "dbg_info/dbg_info.c" +#include "disasm/disasm_inc.c" +#include "stap/stap_parse.c" +#include "demon/demon_inc.c" +#include "eval/eval_inc.c" +#include "dbg_engine/dbg_engine_inc.c" +#include "eval_visualization/eval_visualization_inc.c" +#include "font_provider/font_provider_inc.c" +#include "render/render_inc.c" +#include "font_cache/font_cache.c" +#include "draw/draw.c" +#include "ui/ui_inc.c" +#include "raddbg/raddbg_inc.c" +#include "linker/base_ext/base_core.c" +#include "linker/base_ext/base_arena.c" +#include "linker/base_ext/base_arrays.c" +#include "linker/base_ext/base_crc32.c" +#include "linker/thread_pool/thread_pool.c" +#include "linker/codeview_ext/codeview.c" +#include "linker/pdb_ext/msf_builder.c" +#include "linker/pdb_ext/pdb.c" +#include "linker/pdb_ext/pdb_helpers.c" +#include "linker/pdb_ext/pdb_builder.c" +#include "linker/lnk_debug_helper.c" +#include "torture.c" + +#include "base/tests/base_tests.c" +#include "mdesk/tests/mdesk_tests.c" +#include "linker/tests/linker_tests.c" +#include "dwarf/tests/dwarf_tests.c" +#include "rdi_from_dwarf/tests/rdi_from_dwarf_tests.c" +#include "rdi_from_pdb/tests/rdi_from_pdb_tests.c" +#include "raddbg/tests/raddbg_tests.c" + +internal B32 frame(void) { return 0; } + +//////////////////////////////// + +internal void +entry_point(CmdLine *cmdline) +{ + t_entry_point(cmdline); +} + diff --git a/src/ui/generated/ui.meta.c b/src/ui/generated/ui.meta.c index 9bc7c017..790b5877 100644 --- a/src/ui/generated/ui.meta.c +++ b/src/ui/generated/ui.meta.c @@ -1,212 +1,212 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#if 0 -#define UI_Parent(v) DeferLoop(ui_push_parent(v), ui_pop_parent()) -#define UI_ChildLayoutAxis(v) DeferLoop(ui_push_child_layout_axis(v), ui_pop_child_layout_axis()) -#define UI_FixedX(v) DeferLoop(ui_push_fixed_x(v), ui_pop_fixed_x()) -#define UI_FixedY(v) DeferLoop(ui_push_fixed_y(v), ui_pop_fixed_y()) -#define UI_FixedWidth(v) DeferLoop(ui_push_fixed_width(v), ui_pop_fixed_width()) -#define UI_FixedHeight(v) DeferLoop(ui_push_fixed_height(v), ui_pop_fixed_height()) -#define UI_PrefWidth(v) DeferLoop(ui_push_pref_width(v), ui_pop_pref_width()) -#define UI_PrefHeight(v) DeferLoop(ui_push_pref_height(v), ui_pop_pref_height()) -#define UI_MinWidth(v) DeferLoop(ui_push_min_width(v), ui_pop_min_width()) -#define UI_MinHeight(v) DeferLoop(ui_push_min_height(v), ui_pop_min_height()) -#define UI_PermissionFlags(v) DeferLoop(ui_push_permission_flags(v), ui_pop_permission_flags()) -#define UI_Flags(v) DeferLoop(ui_push_flags(v), ui_pop_flags()) -#define UI_OmitFlags(v) DeferLoop(ui_push_omit_flags(v), ui_pop_omit_flags()) -#define UI_FocusHot(v) DeferLoop(ui_push_focus_hot(v), ui_pop_focus_hot()) -#define UI_FocusActive(v) DeferLoop(ui_push_focus_active(v), ui_pop_focus_active()) -#define UI_FastpathCodepoint(v) DeferLoop(ui_push_fastpath_codepoint(v), ui_pop_fastpath_codepoint()) -#define UI_GroupKey(v) DeferLoop(ui_push_group_key(v), ui_pop_group_key()) -#define UI_Transparency(v) DeferLoop(ui_push_transparency(v), ui_pop_transparency()) -#define UI_Tag(v) DeferLoop(ui_push_tag(v), ui_pop_tag()) -#define UI_BackgroundColor(v) DeferLoop(ui_push_background_color(v), ui_pop_background_color()) -#define UI_TextColor(v) DeferLoop(ui_push_text_color(v), ui_pop_text_color()) -#define UI_BorderColor(v) DeferLoop(ui_push_border_color(v), ui_pop_border_color()) -#define UI_Squish(v) DeferLoop(ui_push_squish(v), ui_pop_squish()) -#define UI_HoverCursor(v) DeferLoop(ui_push_hover_cursor(v), ui_pop_hover_cursor()) -#define UI_Font(v) DeferLoop(ui_push_font(v), ui_pop_font()) -#define UI_FontSize(v) DeferLoop(ui_push_font_size(v), ui_pop_font_size()) -#define UI_TextRasterFlags(v) DeferLoop(ui_push_text_raster_flags(v), ui_pop_text_raster_flags()) -#define UI_TabSize(v) DeferLoop(ui_push_tab_size(v), ui_pop_tab_size()) -#define UI_CornerRadius00(v) DeferLoop(ui_push_corner_radius_00(v), ui_pop_corner_radius_00()) -#define UI_CornerRadius01(v) DeferLoop(ui_push_corner_radius_01(v), ui_pop_corner_radius_01()) -#define UI_CornerRadius10(v) DeferLoop(ui_push_corner_radius_10(v), ui_pop_corner_radius_10()) -#define UI_CornerRadius11(v) DeferLoop(ui_push_corner_radius_11(v), ui_pop_corner_radius_11()) -#define UI_BlurSize(v) DeferLoop(ui_push_blur_size(v), ui_pop_blur_size()) -#define UI_TextPadding(v) DeferLoop(ui_push_text_padding(v), ui_pop_text_padding()) -#define UI_TextAlignment(v) DeferLoop(ui_push_text_alignment(v), ui_pop_text_alignment()) -#endif -internal UI_Box * ui_top_parent(void) { UI_StackTopImpl(ui_state, Parent, parent) } -internal Axis2 ui_top_child_layout_axis(void) { UI_StackTopImpl(ui_state, ChildLayoutAxis, child_layout_axis) } -internal F32 ui_top_fixed_x(void) { UI_StackTopImpl(ui_state, FixedX, fixed_x) } -internal F32 ui_top_fixed_y(void) { UI_StackTopImpl(ui_state, FixedY, fixed_y) } -internal F32 ui_top_fixed_width(void) { UI_StackTopImpl(ui_state, FixedWidth, fixed_width) } -internal F32 ui_top_fixed_height(void) { UI_StackTopImpl(ui_state, FixedHeight, fixed_height) } -internal UI_Size ui_top_pref_width(void) { UI_StackTopImpl(ui_state, PrefWidth, pref_width) } -internal UI_Size ui_top_pref_height(void) { UI_StackTopImpl(ui_state, PrefHeight, pref_height) } -internal F32 ui_top_min_width(void) { UI_StackTopImpl(ui_state, MinWidth, min_width) } -internal F32 ui_top_min_height(void) { UI_StackTopImpl(ui_state, MinHeight, min_height) } -internal UI_PermissionFlags ui_top_permission_flags(void) { UI_StackTopImpl(ui_state, PermissionFlags, permission_flags) } -internal UI_BoxFlags ui_top_flags(void) { UI_StackTopImpl(ui_state, Flags, flags) } -internal UI_BoxFlags ui_top_omit_flags(void) { UI_StackTopImpl(ui_state, OmitFlags, omit_flags) } -internal UI_FocusKind ui_top_focus_hot(void) { UI_StackTopImpl(ui_state, FocusHot, focus_hot) } -internal UI_FocusKind ui_top_focus_active(void) { UI_StackTopImpl(ui_state, FocusActive, focus_active) } -internal U32 ui_top_fastpath_codepoint(void) { UI_StackTopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } -internal UI_Key ui_top_group_key(void) { UI_StackTopImpl(ui_state, GroupKey, group_key) } -internal F32 ui_top_transparency(void) { UI_StackTopImpl(ui_state, Transparency, transparency) } -internal Vec4F32 ui_top_background_color(void) { UI_StackTopImpl(ui_state, BackgroundColor, background_color) } -internal Vec4F32 ui_top_text_color(void) { UI_StackTopImpl(ui_state, TextColor, text_color) } -internal Vec4F32 ui_top_border_color(void) { UI_StackTopImpl(ui_state, BorderColor, border_color) } -internal F32 ui_top_squish(void) { UI_StackTopImpl(ui_state, Squish, squish) } -internal OS_Cursor ui_top_hover_cursor(void) { UI_StackTopImpl(ui_state, HoverCursor, hover_cursor) } -internal FNT_Tag ui_top_font(void) { UI_StackTopImpl(ui_state, Font, font) } -internal F32 ui_top_font_size(void) { UI_StackTopImpl(ui_state, FontSize, font_size) } -internal FNT_RasterFlags ui_top_text_raster_flags(void) { UI_StackTopImpl(ui_state, TextRasterFlags, text_raster_flags) } -internal F32 ui_top_tab_size(void) { UI_StackTopImpl(ui_state, TabSize, tab_size) } -internal F32 ui_top_corner_radius_00(void) { UI_StackTopImpl(ui_state, CornerRadius00, corner_radius_00) } -internal F32 ui_top_corner_radius_01(void) { UI_StackTopImpl(ui_state, CornerRadius01, corner_radius_01) } -internal F32 ui_top_corner_radius_10(void) { UI_StackTopImpl(ui_state, CornerRadius10, corner_radius_10) } -internal F32 ui_top_corner_radius_11(void) { UI_StackTopImpl(ui_state, CornerRadius11, corner_radius_11) } -internal F32 ui_top_blur_size(void) { UI_StackTopImpl(ui_state, BlurSize, blur_size) } -internal F32 ui_top_text_padding(void) { UI_StackTopImpl(ui_state, TextPadding, text_padding) } -internal UI_TextAlign ui_top_text_alignment(void) { UI_StackTopImpl(ui_state, TextAlignment, text_alignment) } -internal UI_Box * ui_bottom_parent(void) { UI_StackBottomImpl(ui_state, Parent, parent) } -internal Axis2 ui_bottom_child_layout_axis(void) { UI_StackBottomImpl(ui_state, ChildLayoutAxis, child_layout_axis) } -internal F32 ui_bottom_fixed_x(void) { UI_StackBottomImpl(ui_state, FixedX, fixed_x) } -internal F32 ui_bottom_fixed_y(void) { UI_StackBottomImpl(ui_state, FixedY, fixed_y) } -internal F32 ui_bottom_fixed_width(void) { UI_StackBottomImpl(ui_state, FixedWidth, fixed_width) } -internal F32 ui_bottom_fixed_height(void) { UI_StackBottomImpl(ui_state, FixedHeight, fixed_height) } -internal UI_Size ui_bottom_pref_width(void) { UI_StackBottomImpl(ui_state, PrefWidth, pref_width) } -internal UI_Size ui_bottom_pref_height(void) { UI_StackBottomImpl(ui_state, PrefHeight, pref_height) } -internal F32 ui_bottom_min_width(void) { UI_StackBottomImpl(ui_state, MinWidth, min_width) } -internal F32 ui_bottom_min_height(void) { UI_StackBottomImpl(ui_state, MinHeight, min_height) } -internal UI_PermissionFlags ui_bottom_permission_flags(void) { UI_StackBottomImpl(ui_state, PermissionFlags, permission_flags) } -internal UI_BoxFlags ui_bottom_flags(void) { UI_StackBottomImpl(ui_state, Flags, flags) } -internal UI_BoxFlags ui_bottom_omit_flags(void) { UI_StackBottomImpl(ui_state, OmitFlags, omit_flags) } -internal UI_FocusKind ui_bottom_focus_hot(void) { UI_StackBottomImpl(ui_state, FocusHot, focus_hot) } -internal UI_FocusKind ui_bottom_focus_active(void) { UI_StackBottomImpl(ui_state, FocusActive, focus_active) } -internal U32 ui_bottom_fastpath_codepoint(void) { UI_StackBottomImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } -internal UI_Key ui_bottom_group_key(void) { UI_StackBottomImpl(ui_state, GroupKey, group_key) } -internal F32 ui_bottom_transparency(void) { UI_StackBottomImpl(ui_state, Transparency, transparency) } -internal Vec4F32 ui_bottom_background_color(void) { UI_StackBottomImpl(ui_state, BackgroundColor, background_color) } -internal Vec4F32 ui_bottom_text_color(void) { UI_StackBottomImpl(ui_state, TextColor, text_color) } -internal Vec4F32 ui_bottom_border_color(void) { UI_StackBottomImpl(ui_state, BorderColor, border_color) } -internal F32 ui_bottom_squish(void) { UI_StackBottomImpl(ui_state, Squish, squish) } -internal OS_Cursor ui_bottom_hover_cursor(void) { UI_StackBottomImpl(ui_state, HoverCursor, hover_cursor) } -internal FNT_Tag ui_bottom_font(void) { UI_StackBottomImpl(ui_state, Font, font) } -internal F32 ui_bottom_font_size(void) { UI_StackBottomImpl(ui_state, FontSize, font_size) } -internal FNT_RasterFlags ui_bottom_text_raster_flags(void) { UI_StackBottomImpl(ui_state, TextRasterFlags, text_raster_flags) } -internal F32 ui_bottom_tab_size(void) { UI_StackBottomImpl(ui_state, TabSize, tab_size) } -internal F32 ui_bottom_corner_radius_00(void) { UI_StackBottomImpl(ui_state, CornerRadius00, corner_radius_00) } -internal F32 ui_bottom_corner_radius_01(void) { UI_StackBottomImpl(ui_state, CornerRadius01, corner_radius_01) } -internal F32 ui_bottom_corner_radius_10(void) { UI_StackBottomImpl(ui_state, CornerRadius10, corner_radius_10) } -internal F32 ui_bottom_corner_radius_11(void) { UI_StackBottomImpl(ui_state, CornerRadius11, corner_radius_11) } -internal F32 ui_bottom_blur_size(void) { UI_StackBottomImpl(ui_state, BlurSize, blur_size) } -internal F32 ui_bottom_text_padding(void) { UI_StackBottomImpl(ui_state, TextPadding, text_padding) } -internal UI_TextAlign ui_bottom_text_alignment(void) { UI_StackBottomImpl(ui_state, TextAlignment, text_alignment) } -internal UI_Box * ui_push_parent(UI_Box * v) { UI_StackPushImpl(ui_state, Parent, parent, UI_Box *, v) } -internal Axis2 ui_push_child_layout_axis(Axis2 v) { UI_StackPushImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) } -internal F32 ui_push_fixed_x(F32 v) { UI_StackPushImpl(ui_state, FixedX, fixed_x, F32, v) } -internal F32 ui_push_fixed_y(F32 v) { UI_StackPushImpl(ui_state, FixedY, fixed_y, F32, v) } -internal F32 ui_push_fixed_width(F32 v) { UI_StackPushImpl(ui_state, FixedWidth, fixed_width, F32, v) } -internal F32 ui_push_fixed_height(F32 v) { UI_StackPushImpl(ui_state, FixedHeight, fixed_height, F32, v) } -internal UI_Size ui_push_pref_width(UI_Size v) { UI_StackPushImpl(ui_state, PrefWidth, pref_width, UI_Size, v) } -internal UI_Size ui_push_pref_height(UI_Size v) { UI_StackPushImpl(ui_state, PrefHeight, pref_height, UI_Size, v) } -internal F32 ui_push_min_width(F32 v) { UI_StackPushImpl(ui_state, MinWidth, min_width, F32, v) } -internal F32 ui_push_min_height(F32 v) { UI_StackPushImpl(ui_state, MinHeight, min_height, F32, v) } -internal UI_PermissionFlags ui_push_permission_flags(UI_PermissionFlags v) { UI_StackPushImpl(ui_state, PermissionFlags, permission_flags, UI_PermissionFlags, v) } -internal UI_BoxFlags ui_push_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, Flags, flags, UI_BoxFlags, v) } -internal UI_BoxFlags ui_push_omit_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, OmitFlags, omit_flags, UI_BoxFlags, v) } -internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) } -internal UI_FocusKind ui_push_focus_active(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) } -internal U32 ui_push_fastpath_codepoint(U32 v) { UI_StackPushImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) } -internal UI_Key ui_push_group_key(UI_Key v) { UI_StackPushImpl(ui_state, GroupKey, group_key, UI_Key, v) } -internal F32 ui_push_transparency(F32 v) { UI_StackPushImpl(ui_state, Transparency, transparency, F32, v) } -internal Vec4F32 ui_push_background_color(Vec4F32 v) { UI_StackPushImpl(ui_state, BackgroundColor, background_color, Vec4F32, v) } -internal Vec4F32 ui_push_text_color(Vec4F32 v) { UI_StackPushImpl(ui_state, TextColor, text_color, Vec4F32, v) } -internal Vec4F32 ui_push_border_color(Vec4F32 v) { UI_StackPushImpl(ui_state, BorderColor, border_color, Vec4F32, v) } -internal F32 ui_push_squish(F32 v) { UI_StackPushImpl(ui_state, Squish, squish, F32, v) } -internal OS_Cursor ui_push_hover_cursor(OS_Cursor v) { UI_StackPushImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) } -internal FNT_Tag ui_push_font(FNT_Tag v) { UI_StackPushImpl(ui_state, Font, font, FNT_Tag, v) } -internal F32 ui_push_font_size(F32 v) { UI_StackPushImpl(ui_state, FontSize, font_size, F32, v) } -internal FNT_RasterFlags ui_push_text_raster_flags(FNT_RasterFlags v) { UI_StackPushImpl(ui_state, TextRasterFlags, text_raster_flags, FNT_RasterFlags, v) } -internal F32 ui_push_tab_size(F32 v) { UI_StackPushImpl(ui_state, TabSize, tab_size, F32, v) } -internal F32 ui_push_corner_radius_00(F32 v) { UI_StackPushImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) } -internal F32 ui_push_corner_radius_01(F32 v) { UI_StackPushImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) } -internal F32 ui_push_corner_radius_10(F32 v) { UI_StackPushImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) } -internal F32 ui_push_corner_radius_11(F32 v) { UI_StackPushImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) } -internal F32 ui_push_blur_size(F32 v) { UI_StackPushImpl(ui_state, BlurSize, blur_size, F32, v) } -internal F32 ui_push_text_padding(F32 v) { UI_StackPushImpl(ui_state, TextPadding, text_padding, F32, v) } -internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v) { UI_StackPushImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) } -internal UI_Box * ui_pop_parent(void) { UI_StackPopImpl(ui_state, Parent, parent) } -internal Axis2 ui_pop_child_layout_axis(void) { UI_StackPopImpl(ui_state, ChildLayoutAxis, child_layout_axis) } -internal F32 ui_pop_fixed_x(void) { UI_StackPopImpl(ui_state, FixedX, fixed_x) } -internal F32 ui_pop_fixed_y(void) { UI_StackPopImpl(ui_state, FixedY, fixed_y) } -internal F32 ui_pop_fixed_width(void) { UI_StackPopImpl(ui_state, FixedWidth, fixed_width) } -internal F32 ui_pop_fixed_height(void) { UI_StackPopImpl(ui_state, FixedHeight, fixed_height) } -internal UI_Size ui_pop_pref_width(void) { UI_StackPopImpl(ui_state, PrefWidth, pref_width) } -internal UI_Size ui_pop_pref_height(void) { UI_StackPopImpl(ui_state, PrefHeight, pref_height) } -internal F32 ui_pop_min_width(void) { UI_StackPopImpl(ui_state, MinWidth, min_width) } -internal F32 ui_pop_min_height(void) { UI_StackPopImpl(ui_state, MinHeight, min_height) } -internal UI_PermissionFlags ui_pop_permission_flags(void) { UI_StackPopImpl(ui_state, PermissionFlags, permission_flags) } -internal UI_BoxFlags ui_pop_flags(void) { UI_StackPopImpl(ui_state, Flags, flags) } -internal UI_BoxFlags ui_pop_omit_flags(void) { UI_StackPopImpl(ui_state, OmitFlags, omit_flags) } -internal UI_FocusKind ui_pop_focus_hot(void) { UI_StackPopImpl(ui_state, FocusHot, focus_hot) } -internal UI_FocusKind ui_pop_focus_active(void) { UI_StackPopImpl(ui_state, FocusActive, focus_active) } -internal U32 ui_pop_fastpath_codepoint(void) { UI_StackPopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } -internal UI_Key ui_pop_group_key(void) { UI_StackPopImpl(ui_state, GroupKey, group_key) } -internal F32 ui_pop_transparency(void) { UI_StackPopImpl(ui_state, Transparency, transparency) } -internal Vec4F32 ui_pop_background_color(void) { UI_StackPopImpl(ui_state, BackgroundColor, background_color) } -internal Vec4F32 ui_pop_text_color(void) { UI_StackPopImpl(ui_state, TextColor, text_color) } -internal Vec4F32 ui_pop_border_color(void) { UI_StackPopImpl(ui_state, BorderColor, border_color) } -internal F32 ui_pop_squish(void) { UI_StackPopImpl(ui_state, Squish, squish) } -internal OS_Cursor ui_pop_hover_cursor(void) { UI_StackPopImpl(ui_state, HoverCursor, hover_cursor) } -internal FNT_Tag ui_pop_font(void) { UI_StackPopImpl(ui_state, Font, font) } -internal F32 ui_pop_font_size(void) { UI_StackPopImpl(ui_state, FontSize, font_size) } -internal FNT_RasterFlags ui_pop_text_raster_flags(void) { UI_StackPopImpl(ui_state, TextRasterFlags, text_raster_flags) } -internal F32 ui_pop_tab_size(void) { UI_StackPopImpl(ui_state, TabSize, tab_size) } -internal F32 ui_pop_corner_radius_00(void) { UI_StackPopImpl(ui_state, CornerRadius00, corner_radius_00) } -internal F32 ui_pop_corner_radius_01(void) { UI_StackPopImpl(ui_state, CornerRadius01, corner_radius_01) } -internal F32 ui_pop_corner_radius_10(void) { UI_StackPopImpl(ui_state, CornerRadius10, corner_radius_10) } -internal F32 ui_pop_corner_radius_11(void) { UI_StackPopImpl(ui_state, CornerRadius11, corner_radius_11) } -internal F32 ui_pop_blur_size(void) { UI_StackPopImpl(ui_state, BlurSize, blur_size) } -internal F32 ui_pop_text_padding(void) { UI_StackPopImpl(ui_state, TextPadding, text_padding) } -internal UI_TextAlign ui_pop_text_alignment(void) { UI_StackPopImpl(ui_state, TextAlignment, text_alignment) } -internal UI_Box * ui_set_next_parent(UI_Box * v) { UI_StackSetNextImpl(ui_state, Parent, parent, UI_Box *, v) } -internal Axis2 ui_set_next_child_layout_axis(Axis2 v) { UI_StackSetNextImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) } -internal F32 ui_set_next_fixed_x(F32 v) { UI_StackSetNextImpl(ui_state, FixedX, fixed_x, F32, v) } -internal F32 ui_set_next_fixed_y(F32 v) { UI_StackSetNextImpl(ui_state, FixedY, fixed_y, F32, v) } -internal F32 ui_set_next_fixed_width(F32 v) { UI_StackSetNextImpl(ui_state, FixedWidth, fixed_width, F32, v) } -internal F32 ui_set_next_fixed_height(F32 v) { UI_StackSetNextImpl(ui_state, FixedHeight, fixed_height, F32, v) } -internal UI_Size ui_set_next_pref_width(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefWidth, pref_width, UI_Size, v) } -internal UI_Size ui_set_next_pref_height(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefHeight, pref_height, UI_Size, v) } -internal F32 ui_set_next_min_width(F32 v) { UI_StackSetNextImpl(ui_state, MinWidth, min_width, F32, v) } -internal F32 ui_set_next_min_height(F32 v) { UI_StackSetNextImpl(ui_state, MinHeight, min_height, F32, v) } -internal UI_PermissionFlags ui_set_next_permission_flags(UI_PermissionFlags v) { UI_StackSetNextImpl(ui_state, PermissionFlags, permission_flags, UI_PermissionFlags, v) } -internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, Flags, flags, UI_BoxFlags, v) } -internal UI_BoxFlags ui_set_next_omit_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, OmitFlags, omit_flags, UI_BoxFlags, v) } -internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) } -internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) } -internal U32 ui_set_next_fastpath_codepoint(U32 v) { UI_StackSetNextImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) } -internal UI_Key ui_set_next_group_key(UI_Key v) { UI_StackSetNextImpl(ui_state, GroupKey, group_key, UI_Key, v) } -internal F32 ui_set_next_transparency(F32 v) { UI_StackSetNextImpl(ui_state, Transparency, transparency, F32, v) } -internal Vec4F32 ui_set_next_background_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, BackgroundColor, background_color, Vec4F32, v) } -internal Vec4F32 ui_set_next_text_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, TextColor, text_color, Vec4F32, v) } -internal Vec4F32 ui_set_next_border_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, BorderColor, border_color, Vec4F32, v) } -internal F32 ui_set_next_squish(F32 v) { UI_StackSetNextImpl(ui_state, Squish, squish, F32, v) } -internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v) { UI_StackSetNextImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) } -internal FNT_Tag ui_set_next_font(FNT_Tag v) { UI_StackSetNextImpl(ui_state, Font, font, FNT_Tag, v) } -internal F32 ui_set_next_font_size(F32 v) { UI_StackSetNextImpl(ui_state, FontSize, font_size, F32, v) } -internal FNT_RasterFlags ui_set_next_text_raster_flags(FNT_RasterFlags v) { UI_StackSetNextImpl(ui_state, TextRasterFlags, text_raster_flags, FNT_RasterFlags, v) } -internal F32 ui_set_next_tab_size(F32 v) { UI_StackSetNextImpl(ui_state, TabSize, tab_size, F32, v) } -internal F32 ui_set_next_corner_radius_00(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) } -internal F32 ui_set_next_corner_radius_01(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) } -internal F32 ui_set_next_corner_radius_10(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) } -internal F32 ui_set_next_corner_radius_11(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) } -internal F32 ui_set_next_blur_size(F32 v) { UI_StackSetNextImpl(ui_state, BlurSize, blur_size, F32, v) } -internal F32 ui_set_next_text_padding(F32 v) { UI_StackSetNextImpl(ui_state, TextPadding, text_padding, F32, v) } -internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v) { UI_StackSetNextImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) } +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#if 0 +#define UI_Parent(v) DeferLoop(ui_push_parent(v), ui_pop_parent()) +#define UI_ChildLayoutAxis(v) DeferLoop(ui_push_child_layout_axis(v), ui_pop_child_layout_axis()) +#define UI_FixedX(v) DeferLoop(ui_push_fixed_x(v), ui_pop_fixed_x()) +#define UI_FixedY(v) DeferLoop(ui_push_fixed_y(v), ui_pop_fixed_y()) +#define UI_FixedWidth(v) DeferLoop(ui_push_fixed_width(v), ui_pop_fixed_width()) +#define UI_FixedHeight(v) DeferLoop(ui_push_fixed_height(v), ui_pop_fixed_height()) +#define UI_PrefWidth(v) DeferLoop(ui_push_pref_width(v), ui_pop_pref_width()) +#define UI_PrefHeight(v) DeferLoop(ui_push_pref_height(v), ui_pop_pref_height()) +#define UI_MinWidth(v) DeferLoop(ui_push_min_width(v), ui_pop_min_width()) +#define UI_MinHeight(v) DeferLoop(ui_push_min_height(v), ui_pop_min_height()) +#define UI_PermissionFlags(v) DeferLoop(ui_push_permission_flags(v), ui_pop_permission_flags()) +#define UI_Flags(v) DeferLoop(ui_push_flags(v), ui_pop_flags()) +#define UI_OmitFlags(v) DeferLoop(ui_push_omit_flags(v), ui_pop_omit_flags()) +#define UI_FocusHot(v) DeferLoop(ui_push_focus_hot(v), ui_pop_focus_hot()) +#define UI_FocusActive(v) DeferLoop(ui_push_focus_active(v), ui_pop_focus_active()) +#define UI_FastpathCodepoint(v) DeferLoop(ui_push_fastpath_codepoint(v), ui_pop_fastpath_codepoint()) +#define UI_GroupKey(v) DeferLoop(ui_push_group_key(v), ui_pop_group_key()) +#define UI_Transparency(v) DeferLoop(ui_push_transparency(v), ui_pop_transparency()) +#define UI_Tag(v) DeferLoop(ui_push_tag(v), ui_pop_tag()) +#define UI_BackgroundColor(v) DeferLoop(ui_push_background_color(v), ui_pop_background_color()) +#define UI_TextColor(v) DeferLoop(ui_push_text_color(v), ui_pop_text_color()) +#define UI_BorderColor(v) DeferLoop(ui_push_border_color(v), ui_pop_border_color()) +#define UI_Squish(v) DeferLoop(ui_push_squish(v), ui_pop_squish()) +#define UI_HoverCursor(v) DeferLoop(ui_push_hover_cursor(v), ui_pop_hover_cursor()) +#define UI_Font(v) DeferLoop(ui_push_font(v), ui_pop_font()) +#define UI_FontSize(v) DeferLoop(ui_push_font_size(v), ui_pop_font_size()) +#define UI_TextRasterFlags(v) DeferLoop(ui_push_text_raster_flags(v), ui_pop_text_raster_flags()) +#define UI_TabSize(v) DeferLoop(ui_push_tab_size(v), ui_pop_tab_size()) +#define UI_CornerRadius00(v) DeferLoop(ui_push_corner_radius_00(v), ui_pop_corner_radius_00()) +#define UI_CornerRadius01(v) DeferLoop(ui_push_corner_radius_01(v), ui_pop_corner_radius_01()) +#define UI_CornerRadius10(v) DeferLoop(ui_push_corner_radius_10(v), ui_pop_corner_radius_10()) +#define UI_CornerRadius11(v) DeferLoop(ui_push_corner_radius_11(v), ui_pop_corner_radius_11()) +#define UI_BlurSize(v) DeferLoop(ui_push_blur_size(v), ui_pop_blur_size()) +#define UI_TextPadding(v) DeferLoop(ui_push_text_padding(v), ui_pop_text_padding()) +#define UI_TextAlignment(v) DeferLoop(ui_push_text_alignment(v), ui_pop_text_alignment()) +#endif +internal UI_Box * ui_top_parent(void) { UI_StackTopImpl(ui_state, Parent, parent) } +internal Axis2 ui_top_child_layout_axis(void) { UI_StackTopImpl(ui_state, ChildLayoutAxis, child_layout_axis) } +internal F32 ui_top_fixed_x(void) { UI_StackTopImpl(ui_state, FixedX, fixed_x) } +internal F32 ui_top_fixed_y(void) { UI_StackTopImpl(ui_state, FixedY, fixed_y) } +internal F32 ui_top_fixed_width(void) { UI_StackTopImpl(ui_state, FixedWidth, fixed_width) } +internal F32 ui_top_fixed_height(void) { UI_StackTopImpl(ui_state, FixedHeight, fixed_height) } +internal UI_Size ui_top_pref_width(void) { UI_StackTopImpl(ui_state, PrefWidth, pref_width) } +internal UI_Size ui_top_pref_height(void) { UI_StackTopImpl(ui_state, PrefHeight, pref_height) } +internal F32 ui_top_min_width(void) { UI_StackTopImpl(ui_state, MinWidth, min_width) } +internal F32 ui_top_min_height(void) { UI_StackTopImpl(ui_state, MinHeight, min_height) } +internal UI_PermissionFlags ui_top_permission_flags(void) { UI_StackTopImpl(ui_state, PermissionFlags, permission_flags) } +internal UI_BoxFlags ui_top_flags(void) { UI_StackTopImpl(ui_state, Flags, flags) } +internal UI_BoxFlags ui_top_omit_flags(void) { UI_StackTopImpl(ui_state, OmitFlags, omit_flags) } +internal UI_FocusKind ui_top_focus_hot(void) { UI_StackTopImpl(ui_state, FocusHot, focus_hot) } +internal UI_FocusKind ui_top_focus_active(void) { UI_StackTopImpl(ui_state, FocusActive, focus_active) } +internal U32 ui_top_fastpath_codepoint(void) { UI_StackTopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } +internal UI_Key ui_top_group_key(void) { UI_StackTopImpl(ui_state, GroupKey, group_key) } +internal F32 ui_top_transparency(void) { UI_StackTopImpl(ui_state, Transparency, transparency) } +internal Vec4F32 ui_top_background_color(void) { UI_StackTopImpl(ui_state, BackgroundColor, background_color) } +internal Vec4F32 ui_top_text_color(void) { UI_StackTopImpl(ui_state, TextColor, text_color) } +internal Vec4F32 ui_top_border_color(void) { UI_StackTopImpl(ui_state, BorderColor, border_color) } +internal F32 ui_top_squish(void) { UI_StackTopImpl(ui_state, Squish, squish) } +internal WM_Cursor ui_top_hover_cursor(void) { UI_StackTopImpl(ui_state, HoverCursor, hover_cursor) } +internal FNT_Tag ui_top_font(void) { UI_StackTopImpl(ui_state, Font, font) } +internal F32 ui_top_font_size(void) { UI_StackTopImpl(ui_state, FontSize, font_size) } +internal FNT_RasterFlags ui_top_text_raster_flags(void) { UI_StackTopImpl(ui_state, TextRasterFlags, text_raster_flags) } +internal F32 ui_top_tab_size(void) { UI_StackTopImpl(ui_state, TabSize, tab_size) } +internal F32 ui_top_corner_radius_00(void) { UI_StackTopImpl(ui_state, CornerRadius00, corner_radius_00) } +internal F32 ui_top_corner_radius_01(void) { UI_StackTopImpl(ui_state, CornerRadius01, corner_radius_01) } +internal F32 ui_top_corner_radius_10(void) { UI_StackTopImpl(ui_state, CornerRadius10, corner_radius_10) } +internal F32 ui_top_corner_radius_11(void) { UI_StackTopImpl(ui_state, CornerRadius11, corner_radius_11) } +internal F32 ui_top_blur_size(void) { UI_StackTopImpl(ui_state, BlurSize, blur_size) } +internal F32 ui_top_text_padding(void) { UI_StackTopImpl(ui_state, TextPadding, text_padding) } +internal UI_TextAlign ui_top_text_alignment(void) { UI_StackTopImpl(ui_state, TextAlignment, text_alignment) } +internal UI_Box * ui_bottom_parent(void) { UI_StackBottomImpl(ui_state, Parent, parent) } +internal Axis2 ui_bottom_child_layout_axis(void) { UI_StackBottomImpl(ui_state, ChildLayoutAxis, child_layout_axis) } +internal F32 ui_bottom_fixed_x(void) { UI_StackBottomImpl(ui_state, FixedX, fixed_x) } +internal F32 ui_bottom_fixed_y(void) { UI_StackBottomImpl(ui_state, FixedY, fixed_y) } +internal F32 ui_bottom_fixed_width(void) { UI_StackBottomImpl(ui_state, FixedWidth, fixed_width) } +internal F32 ui_bottom_fixed_height(void) { UI_StackBottomImpl(ui_state, FixedHeight, fixed_height) } +internal UI_Size ui_bottom_pref_width(void) { UI_StackBottomImpl(ui_state, PrefWidth, pref_width) } +internal UI_Size ui_bottom_pref_height(void) { UI_StackBottomImpl(ui_state, PrefHeight, pref_height) } +internal F32 ui_bottom_min_width(void) { UI_StackBottomImpl(ui_state, MinWidth, min_width) } +internal F32 ui_bottom_min_height(void) { UI_StackBottomImpl(ui_state, MinHeight, min_height) } +internal UI_PermissionFlags ui_bottom_permission_flags(void) { UI_StackBottomImpl(ui_state, PermissionFlags, permission_flags) } +internal UI_BoxFlags ui_bottom_flags(void) { UI_StackBottomImpl(ui_state, Flags, flags) } +internal UI_BoxFlags ui_bottom_omit_flags(void) { UI_StackBottomImpl(ui_state, OmitFlags, omit_flags) } +internal UI_FocusKind ui_bottom_focus_hot(void) { UI_StackBottomImpl(ui_state, FocusHot, focus_hot) } +internal UI_FocusKind ui_bottom_focus_active(void) { UI_StackBottomImpl(ui_state, FocusActive, focus_active) } +internal U32 ui_bottom_fastpath_codepoint(void) { UI_StackBottomImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } +internal UI_Key ui_bottom_group_key(void) { UI_StackBottomImpl(ui_state, GroupKey, group_key) } +internal F32 ui_bottom_transparency(void) { UI_StackBottomImpl(ui_state, Transparency, transparency) } +internal Vec4F32 ui_bottom_background_color(void) { UI_StackBottomImpl(ui_state, BackgroundColor, background_color) } +internal Vec4F32 ui_bottom_text_color(void) { UI_StackBottomImpl(ui_state, TextColor, text_color) } +internal Vec4F32 ui_bottom_border_color(void) { UI_StackBottomImpl(ui_state, BorderColor, border_color) } +internal F32 ui_bottom_squish(void) { UI_StackBottomImpl(ui_state, Squish, squish) } +internal WM_Cursor ui_bottom_hover_cursor(void) { UI_StackBottomImpl(ui_state, HoverCursor, hover_cursor) } +internal FNT_Tag ui_bottom_font(void) { UI_StackBottomImpl(ui_state, Font, font) } +internal F32 ui_bottom_font_size(void) { UI_StackBottomImpl(ui_state, FontSize, font_size) } +internal FNT_RasterFlags ui_bottom_text_raster_flags(void) { UI_StackBottomImpl(ui_state, TextRasterFlags, text_raster_flags) } +internal F32 ui_bottom_tab_size(void) { UI_StackBottomImpl(ui_state, TabSize, tab_size) } +internal F32 ui_bottom_corner_radius_00(void) { UI_StackBottomImpl(ui_state, CornerRadius00, corner_radius_00) } +internal F32 ui_bottom_corner_radius_01(void) { UI_StackBottomImpl(ui_state, CornerRadius01, corner_radius_01) } +internal F32 ui_bottom_corner_radius_10(void) { UI_StackBottomImpl(ui_state, CornerRadius10, corner_radius_10) } +internal F32 ui_bottom_corner_radius_11(void) { UI_StackBottomImpl(ui_state, CornerRadius11, corner_radius_11) } +internal F32 ui_bottom_blur_size(void) { UI_StackBottomImpl(ui_state, BlurSize, blur_size) } +internal F32 ui_bottom_text_padding(void) { UI_StackBottomImpl(ui_state, TextPadding, text_padding) } +internal UI_TextAlign ui_bottom_text_alignment(void) { UI_StackBottomImpl(ui_state, TextAlignment, text_alignment) } +internal UI_Box * ui_push_parent(UI_Box * v) { UI_StackPushImpl(ui_state, Parent, parent, UI_Box *, v) } +internal Axis2 ui_push_child_layout_axis(Axis2 v) { UI_StackPushImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) } +internal F32 ui_push_fixed_x(F32 v) { UI_StackPushImpl(ui_state, FixedX, fixed_x, F32, v) } +internal F32 ui_push_fixed_y(F32 v) { UI_StackPushImpl(ui_state, FixedY, fixed_y, F32, v) } +internal F32 ui_push_fixed_width(F32 v) { UI_StackPushImpl(ui_state, FixedWidth, fixed_width, F32, v) } +internal F32 ui_push_fixed_height(F32 v) { UI_StackPushImpl(ui_state, FixedHeight, fixed_height, F32, v) } +internal UI_Size ui_push_pref_width(UI_Size v) { UI_StackPushImpl(ui_state, PrefWidth, pref_width, UI_Size, v) } +internal UI_Size ui_push_pref_height(UI_Size v) { UI_StackPushImpl(ui_state, PrefHeight, pref_height, UI_Size, v) } +internal F32 ui_push_min_width(F32 v) { UI_StackPushImpl(ui_state, MinWidth, min_width, F32, v) } +internal F32 ui_push_min_height(F32 v) { UI_StackPushImpl(ui_state, MinHeight, min_height, F32, v) } +internal UI_PermissionFlags ui_push_permission_flags(UI_PermissionFlags v) { UI_StackPushImpl(ui_state, PermissionFlags, permission_flags, UI_PermissionFlags, v) } +internal UI_BoxFlags ui_push_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, Flags, flags, UI_BoxFlags, v) } +internal UI_BoxFlags ui_push_omit_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, OmitFlags, omit_flags, UI_BoxFlags, v) } +internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) } +internal UI_FocusKind ui_push_focus_active(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) } +internal U32 ui_push_fastpath_codepoint(U32 v) { UI_StackPushImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) } +internal UI_Key ui_push_group_key(UI_Key v) { UI_StackPushImpl(ui_state, GroupKey, group_key, UI_Key, v) } +internal F32 ui_push_transparency(F32 v) { UI_StackPushImpl(ui_state, Transparency, transparency, F32, v) } +internal Vec4F32 ui_push_background_color(Vec4F32 v) { UI_StackPushImpl(ui_state, BackgroundColor, background_color, Vec4F32, v) } +internal Vec4F32 ui_push_text_color(Vec4F32 v) { UI_StackPushImpl(ui_state, TextColor, text_color, Vec4F32, v) } +internal Vec4F32 ui_push_border_color(Vec4F32 v) { UI_StackPushImpl(ui_state, BorderColor, border_color, Vec4F32, v) } +internal F32 ui_push_squish(F32 v) { UI_StackPushImpl(ui_state, Squish, squish, F32, v) } +internal WM_Cursor ui_push_hover_cursor(WM_Cursor v) { UI_StackPushImpl(ui_state, HoverCursor, hover_cursor, WM_Cursor, v) } +internal FNT_Tag ui_push_font(FNT_Tag v) { UI_StackPushImpl(ui_state, Font, font, FNT_Tag, v) } +internal F32 ui_push_font_size(F32 v) { UI_StackPushImpl(ui_state, FontSize, font_size, F32, v) } +internal FNT_RasterFlags ui_push_text_raster_flags(FNT_RasterFlags v) { UI_StackPushImpl(ui_state, TextRasterFlags, text_raster_flags, FNT_RasterFlags, v) } +internal F32 ui_push_tab_size(F32 v) { UI_StackPushImpl(ui_state, TabSize, tab_size, F32, v) } +internal F32 ui_push_corner_radius_00(F32 v) { UI_StackPushImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) } +internal F32 ui_push_corner_radius_01(F32 v) { UI_StackPushImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) } +internal F32 ui_push_corner_radius_10(F32 v) { UI_StackPushImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) } +internal F32 ui_push_corner_radius_11(F32 v) { UI_StackPushImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) } +internal F32 ui_push_blur_size(F32 v) { UI_StackPushImpl(ui_state, BlurSize, blur_size, F32, v) } +internal F32 ui_push_text_padding(F32 v) { UI_StackPushImpl(ui_state, TextPadding, text_padding, F32, v) } +internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v) { UI_StackPushImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) } +internal UI_Box * ui_pop_parent(void) { UI_StackPopImpl(ui_state, Parent, parent) } +internal Axis2 ui_pop_child_layout_axis(void) { UI_StackPopImpl(ui_state, ChildLayoutAxis, child_layout_axis) } +internal F32 ui_pop_fixed_x(void) { UI_StackPopImpl(ui_state, FixedX, fixed_x) } +internal F32 ui_pop_fixed_y(void) { UI_StackPopImpl(ui_state, FixedY, fixed_y) } +internal F32 ui_pop_fixed_width(void) { UI_StackPopImpl(ui_state, FixedWidth, fixed_width) } +internal F32 ui_pop_fixed_height(void) { UI_StackPopImpl(ui_state, FixedHeight, fixed_height) } +internal UI_Size ui_pop_pref_width(void) { UI_StackPopImpl(ui_state, PrefWidth, pref_width) } +internal UI_Size ui_pop_pref_height(void) { UI_StackPopImpl(ui_state, PrefHeight, pref_height) } +internal F32 ui_pop_min_width(void) { UI_StackPopImpl(ui_state, MinWidth, min_width) } +internal F32 ui_pop_min_height(void) { UI_StackPopImpl(ui_state, MinHeight, min_height) } +internal UI_PermissionFlags ui_pop_permission_flags(void) { UI_StackPopImpl(ui_state, PermissionFlags, permission_flags) } +internal UI_BoxFlags ui_pop_flags(void) { UI_StackPopImpl(ui_state, Flags, flags) } +internal UI_BoxFlags ui_pop_omit_flags(void) { UI_StackPopImpl(ui_state, OmitFlags, omit_flags) } +internal UI_FocusKind ui_pop_focus_hot(void) { UI_StackPopImpl(ui_state, FocusHot, focus_hot) } +internal UI_FocusKind ui_pop_focus_active(void) { UI_StackPopImpl(ui_state, FocusActive, focus_active) } +internal U32 ui_pop_fastpath_codepoint(void) { UI_StackPopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) } +internal UI_Key ui_pop_group_key(void) { UI_StackPopImpl(ui_state, GroupKey, group_key) } +internal F32 ui_pop_transparency(void) { UI_StackPopImpl(ui_state, Transparency, transparency) } +internal Vec4F32 ui_pop_background_color(void) { UI_StackPopImpl(ui_state, BackgroundColor, background_color) } +internal Vec4F32 ui_pop_text_color(void) { UI_StackPopImpl(ui_state, TextColor, text_color) } +internal Vec4F32 ui_pop_border_color(void) { UI_StackPopImpl(ui_state, BorderColor, border_color) } +internal F32 ui_pop_squish(void) { UI_StackPopImpl(ui_state, Squish, squish) } +internal WM_Cursor ui_pop_hover_cursor(void) { UI_StackPopImpl(ui_state, HoverCursor, hover_cursor) } +internal FNT_Tag ui_pop_font(void) { UI_StackPopImpl(ui_state, Font, font) } +internal F32 ui_pop_font_size(void) { UI_StackPopImpl(ui_state, FontSize, font_size) } +internal FNT_RasterFlags ui_pop_text_raster_flags(void) { UI_StackPopImpl(ui_state, TextRasterFlags, text_raster_flags) } +internal F32 ui_pop_tab_size(void) { UI_StackPopImpl(ui_state, TabSize, tab_size) } +internal F32 ui_pop_corner_radius_00(void) { UI_StackPopImpl(ui_state, CornerRadius00, corner_radius_00) } +internal F32 ui_pop_corner_radius_01(void) { UI_StackPopImpl(ui_state, CornerRadius01, corner_radius_01) } +internal F32 ui_pop_corner_radius_10(void) { UI_StackPopImpl(ui_state, CornerRadius10, corner_radius_10) } +internal F32 ui_pop_corner_radius_11(void) { UI_StackPopImpl(ui_state, CornerRadius11, corner_radius_11) } +internal F32 ui_pop_blur_size(void) { UI_StackPopImpl(ui_state, BlurSize, blur_size) } +internal F32 ui_pop_text_padding(void) { UI_StackPopImpl(ui_state, TextPadding, text_padding) } +internal UI_TextAlign ui_pop_text_alignment(void) { UI_StackPopImpl(ui_state, TextAlignment, text_alignment) } +internal UI_Box * ui_set_next_parent(UI_Box * v) { UI_StackSetNextImpl(ui_state, Parent, parent, UI_Box *, v) } +internal Axis2 ui_set_next_child_layout_axis(Axis2 v) { UI_StackSetNextImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) } +internal F32 ui_set_next_fixed_x(F32 v) { UI_StackSetNextImpl(ui_state, FixedX, fixed_x, F32, v) } +internal F32 ui_set_next_fixed_y(F32 v) { UI_StackSetNextImpl(ui_state, FixedY, fixed_y, F32, v) } +internal F32 ui_set_next_fixed_width(F32 v) { UI_StackSetNextImpl(ui_state, FixedWidth, fixed_width, F32, v) } +internal F32 ui_set_next_fixed_height(F32 v) { UI_StackSetNextImpl(ui_state, FixedHeight, fixed_height, F32, v) } +internal UI_Size ui_set_next_pref_width(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefWidth, pref_width, UI_Size, v) } +internal UI_Size ui_set_next_pref_height(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefHeight, pref_height, UI_Size, v) } +internal F32 ui_set_next_min_width(F32 v) { UI_StackSetNextImpl(ui_state, MinWidth, min_width, F32, v) } +internal F32 ui_set_next_min_height(F32 v) { UI_StackSetNextImpl(ui_state, MinHeight, min_height, F32, v) } +internal UI_PermissionFlags ui_set_next_permission_flags(UI_PermissionFlags v) { UI_StackSetNextImpl(ui_state, PermissionFlags, permission_flags, UI_PermissionFlags, v) } +internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, Flags, flags, UI_BoxFlags, v) } +internal UI_BoxFlags ui_set_next_omit_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, OmitFlags, omit_flags, UI_BoxFlags, v) } +internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) } +internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) } +internal U32 ui_set_next_fastpath_codepoint(U32 v) { UI_StackSetNextImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) } +internal UI_Key ui_set_next_group_key(UI_Key v) { UI_StackSetNextImpl(ui_state, GroupKey, group_key, UI_Key, v) } +internal F32 ui_set_next_transparency(F32 v) { UI_StackSetNextImpl(ui_state, Transparency, transparency, F32, v) } +internal Vec4F32 ui_set_next_background_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, BackgroundColor, background_color, Vec4F32, v) } +internal Vec4F32 ui_set_next_text_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, TextColor, text_color, Vec4F32, v) } +internal Vec4F32 ui_set_next_border_color(Vec4F32 v) { UI_StackSetNextImpl(ui_state, BorderColor, border_color, Vec4F32, v) } +internal F32 ui_set_next_squish(F32 v) { UI_StackSetNextImpl(ui_state, Squish, squish, F32, v) } +internal WM_Cursor ui_set_next_hover_cursor(WM_Cursor v) { UI_StackSetNextImpl(ui_state, HoverCursor, hover_cursor, WM_Cursor, v) } +internal FNT_Tag ui_set_next_font(FNT_Tag v) { UI_StackSetNextImpl(ui_state, Font, font, FNT_Tag, v) } +internal F32 ui_set_next_font_size(F32 v) { UI_StackSetNextImpl(ui_state, FontSize, font_size, F32, v) } +internal FNT_RasterFlags ui_set_next_text_raster_flags(FNT_RasterFlags v) { UI_StackSetNextImpl(ui_state, TextRasterFlags, text_raster_flags, FNT_RasterFlags, v) } +internal F32 ui_set_next_tab_size(F32 v) { UI_StackSetNextImpl(ui_state, TabSize, tab_size, F32, v) } +internal F32 ui_set_next_corner_radius_00(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) } +internal F32 ui_set_next_corner_radius_01(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) } +internal F32 ui_set_next_corner_radius_10(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) } +internal F32 ui_set_next_corner_radius_11(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) } +internal F32 ui_set_next_blur_size(F32 v) { UI_StackSetNextImpl(ui_state, BlurSize, blur_size, F32, v) } +internal F32 ui_set_next_text_padding(F32 v) { UI_StackSetNextImpl(ui_state, TextPadding, text_padding, F32, v) } +internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v) { UI_StackSetNextImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) } diff --git a/src/ui/generated/ui.meta.h b/src/ui/generated/ui.meta.h index a3a1648b..fbed7a1a 100644 --- a/src/ui/generated/ui.meta.h +++ b/src/ui/generated/ui.meta.h @@ -1,408 +1,408 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef UI_META_H -#define UI_META_H - -typedef struct UI_ParentNode UI_ParentNode; struct UI_ParentNode{UI_ParentNode *next; UI_Box * v;}; -typedef struct UI_ChildLayoutAxisNode UI_ChildLayoutAxisNode; struct UI_ChildLayoutAxisNode{UI_ChildLayoutAxisNode *next; Axis2 v;}; -typedef struct UI_FixedXNode UI_FixedXNode; struct UI_FixedXNode{UI_FixedXNode *next; F32 v;}; -typedef struct UI_FixedYNode UI_FixedYNode; struct UI_FixedYNode{UI_FixedYNode *next; F32 v;}; -typedef struct UI_FixedWidthNode UI_FixedWidthNode; struct UI_FixedWidthNode{UI_FixedWidthNode *next; F32 v;}; -typedef struct UI_FixedHeightNode UI_FixedHeightNode; struct UI_FixedHeightNode{UI_FixedHeightNode *next; F32 v;}; -typedef struct UI_PrefWidthNode UI_PrefWidthNode; struct UI_PrefWidthNode{UI_PrefWidthNode *next; UI_Size v;}; -typedef struct UI_PrefHeightNode UI_PrefHeightNode; struct UI_PrefHeightNode{UI_PrefHeightNode *next; UI_Size v;}; -typedef struct UI_MinWidthNode UI_MinWidthNode; struct UI_MinWidthNode{UI_MinWidthNode *next; F32 v;}; -typedef struct UI_MinHeightNode UI_MinHeightNode; struct UI_MinHeightNode{UI_MinHeightNode *next; F32 v;}; -typedef struct UI_PermissionFlagsNode UI_PermissionFlagsNode; struct UI_PermissionFlagsNode{UI_PermissionFlagsNode *next; UI_PermissionFlags v;}; -typedef struct UI_FlagsNode UI_FlagsNode; struct UI_FlagsNode{UI_FlagsNode *next; UI_BoxFlags v;}; -typedef struct UI_OmitFlagsNode UI_OmitFlagsNode; struct UI_OmitFlagsNode{UI_OmitFlagsNode *next; UI_BoxFlags v;}; -typedef struct UI_FocusHotNode UI_FocusHotNode; struct UI_FocusHotNode{UI_FocusHotNode *next; UI_FocusKind v;}; -typedef struct UI_FocusActiveNode UI_FocusActiveNode; struct UI_FocusActiveNode{UI_FocusActiveNode *next; UI_FocusKind v;}; -typedef struct UI_FastpathCodepointNode UI_FastpathCodepointNode; struct UI_FastpathCodepointNode{UI_FastpathCodepointNode *next; U32 v;}; -typedef struct UI_GroupKeyNode UI_GroupKeyNode; struct UI_GroupKeyNode{UI_GroupKeyNode *next; UI_Key v;}; -typedef struct UI_TransparencyNode UI_TransparencyNode; struct UI_TransparencyNode{UI_TransparencyNode *next; F32 v;}; -typedef struct UI_TagNode UI_TagNode; struct UI_TagNode{UI_TagNode *next; String8 v;}; -typedef struct UI_BackgroundColorNode UI_BackgroundColorNode; struct UI_BackgroundColorNode{UI_BackgroundColorNode *next; Vec4F32 v;}; -typedef struct UI_TextColorNode UI_TextColorNode; struct UI_TextColorNode{UI_TextColorNode *next; Vec4F32 v;}; -typedef struct UI_BorderColorNode UI_BorderColorNode; struct UI_BorderColorNode{UI_BorderColorNode *next; Vec4F32 v;}; -typedef struct UI_SquishNode UI_SquishNode; struct UI_SquishNode{UI_SquishNode *next; F32 v;}; -typedef struct UI_HoverCursorNode UI_HoverCursorNode; struct UI_HoverCursorNode{UI_HoverCursorNode *next; OS_Cursor v;}; -typedef struct UI_FontNode UI_FontNode; struct UI_FontNode{UI_FontNode *next; FNT_Tag v;}; -typedef struct UI_FontSizeNode UI_FontSizeNode; struct UI_FontSizeNode{UI_FontSizeNode *next; F32 v;}; -typedef struct UI_TextRasterFlagsNode UI_TextRasterFlagsNode; struct UI_TextRasterFlagsNode{UI_TextRasterFlagsNode *next; FNT_RasterFlags v;}; -typedef struct UI_TabSizeNode UI_TabSizeNode; struct UI_TabSizeNode{UI_TabSizeNode *next; F32 v;}; -typedef struct UI_CornerRadius00Node UI_CornerRadius00Node; struct UI_CornerRadius00Node{UI_CornerRadius00Node *next; F32 v;}; -typedef struct UI_CornerRadius01Node UI_CornerRadius01Node; struct UI_CornerRadius01Node{UI_CornerRadius01Node *next; F32 v;}; -typedef struct UI_CornerRadius10Node UI_CornerRadius10Node; struct UI_CornerRadius10Node{UI_CornerRadius10Node *next; F32 v;}; -typedef struct UI_CornerRadius11Node UI_CornerRadius11Node; struct UI_CornerRadius11Node{UI_CornerRadius11Node *next; F32 v;}; -typedef struct UI_BlurSizeNode UI_BlurSizeNode; struct UI_BlurSizeNode{UI_BlurSizeNode *next; F32 v;}; -typedef struct UI_TextPaddingNode UI_TextPaddingNode; struct UI_TextPaddingNode{UI_TextPaddingNode *next; F32 v;}; -typedef struct UI_TextAlignmentNode UI_TextAlignmentNode; struct UI_TextAlignmentNode{UI_TextAlignmentNode *next; UI_TextAlign v;}; -#define UI_DeclStackNils \ -struct\ -{\ -UI_ParentNode parent_nil_stack_top;\ -UI_ChildLayoutAxisNode child_layout_axis_nil_stack_top;\ -UI_FixedXNode fixed_x_nil_stack_top;\ -UI_FixedYNode fixed_y_nil_stack_top;\ -UI_FixedWidthNode fixed_width_nil_stack_top;\ -UI_FixedHeightNode fixed_height_nil_stack_top;\ -UI_PrefWidthNode pref_width_nil_stack_top;\ -UI_PrefHeightNode pref_height_nil_stack_top;\ -UI_MinWidthNode min_width_nil_stack_top;\ -UI_MinHeightNode min_height_nil_stack_top;\ -UI_PermissionFlagsNode permission_flags_nil_stack_top;\ -UI_FlagsNode flags_nil_stack_top;\ -UI_OmitFlagsNode omit_flags_nil_stack_top;\ -UI_FocusHotNode focus_hot_nil_stack_top;\ -UI_FocusActiveNode focus_active_nil_stack_top;\ -UI_FastpathCodepointNode fastpath_codepoint_nil_stack_top;\ -UI_GroupKeyNode group_key_nil_stack_top;\ -UI_TransparencyNode transparency_nil_stack_top;\ -UI_TagNode tag_nil_stack_top;\ -UI_BackgroundColorNode background_color_nil_stack_top;\ -UI_TextColorNode text_color_nil_stack_top;\ -UI_BorderColorNode border_color_nil_stack_top;\ -UI_SquishNode squish_nil_stack_top;\ -UI_HoverCursorNode hover_cursor_nil_stack_top;\ -UI_FontNode font_nil_stack_top;\ -UI_FontSizeNode font_size_nil_stack_top;\ -UI_TextRasterFlagsNode text_raster_flags_nil_stack_top;\ -UI_TabSizeNode tab_size_nil_stack_top;\ -UI_CornerRadius00Node corner_radius_00_nil_stack_top;\ -UI_CornerRadius01Node corner_radius_01_nil_stack_top;\ -UI_CornerRadius10Node corner_radius_10_nil_stack_top;\ -UI_CornerRadius11Node corner_radius_11_nil_stack_top;\ -UI_BlurSizeNode blur_size_nil_stack_top;\ -UI_TextPaddingNode text_padding_nil_stack_top;\ -UI_TextAlignmentNode text_alignment_nil_stack_top;\ -} -#define UI_InitStackNils(state) \ -state->parent_nil_stack_top.v = &ui_nil_box;\ -state->child_layout_axis_nil_stack_top.v = Axis2_X;\ -state->fixed_x_nil_stack_top.v = 0;\ -state->fixed_y_nil_stack_top.v = 0;\ -state->fixed_width_nil_stack_top.v = 0;\ -state->fixed_height_nil_stack_top.v = 0;\ -state->pref_width_nil_stack_top.v = ui_px(250.f, 1.f);\ -state->pref_height_nil_stack_top.v = ui_px(30.f, 1.f);\ -state->min_width_nil_stack_top.v = 0;\ -state->min_height_nil_stack_top.v = 0;\ -state->permission_flags_nil_stack_top.v = UI_PermissionFlag_All;\ -state->flags_nil_stack_top.v = 0;\ -state->omit_flags_nil_stack_top.v = 0;\ -state->focus_hot_nil_stack_top.v = UI_FocusKind_Null;\ -state->focus_active_nil_stack_top.v = UI_FocusKind_Null;\ -state->fastpath_codepoint_nil_stack_top.v = 0;\ -state->group_key_nil_stack_top.v = ui_key_zero();\ -state->transparency_nil_stack_top.v = 0;\ -state->tag_nil_stack_top.v = str8_lit("");\ -state->background_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ -state->text_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ -state->border_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ -state->squish_nil_stack_top.v = 0;\ -state->hover_cursor_nil_stack_top.v = OS_Cursor_Pointer;\ -state->font_nil_stack_top.v = fnt_tag_zero();\ -state->font_size_nil_stack_top.v = 24.f;\ -state->text_raster_flags_nil_stack_top.v = FNT_RasterFlag_Hinted;\ -state->tab_size_nil_stack_top.v = 24.f*4.f;\ -state->corner_radius_00_nil_stack_top.v = 0;\ -state->corner_radius_01_nil_stack_top.v = 0;\ -state->corner_radius_10_nil_stack_top.v = 0;\ -state->corner_radius_11_nil_stack_top.v = 0;\ -state->blur_size_nil_stack_top.v = 0;\ -state->text_padding_nil_stack_top.v = 0;\ -state->text_alignment_nil_stack_top.v = UI_TextAlign_Left;\ - -#define UI_DeclStacks \ -struct\ -{\ -struct { UI_ParentNode *top; UI_Box * bottom_val; UI_ParentNode *free; U64 gen; B32 auto_pop; } parent_stack;\ -struct { UI_ChildLayoutAxisNode *top; Axis2 bottom_val; UI_ChildLayoutAxisNode *free; U64 gen; B32 auto_pop; } child_layout_axis_stack;\ -struct { UI_FixedXNode *top; F32 bottom_val; UI_FixedXNode *free; U64 gen; B32 auto_pop; } fixed_x_stack;\ -struct { UI_FixedYNode *top; F32 bottom_val; UI_FixedYNode *free; U64 gen; B32 auto_pop; } fixed_y_stack;\ -struct { UI_FixedWidthNode *top; F32 bottom_val; UI_FixedWidthNode *free; U64 gen; B32 auto_pop; } fixed_width_stack;\ -struct { UI_FixedHeightNode *top; F32 bottom_val; UI_FixedHeightNode *free; U64 gen; B32 auto_pop; } fixed_height_stack;\ -struct { UI_PrefWidthNode *top; UI_Size bottom_val; UI_PrefWidthNode *free; U64 gen; B32 auto_pop; } pref_width_stack;\ -struct { UI_PrefHeightNode *top; UI_Size bottom_val; UI_PrefHeightNode *free; U64 gen; B32 auto_pop; } pref_height_stack;\ -struct { UI_MinWidthNode *top; F32 bottom_val; UI_MinWidthNode *free; U64 gen; B32 auto_pop; } min_width_stack;\ -struct { UI_MinHeightNode *top; F32 bottom_val; UI_MinHeightNode *free; U64 gen; B32 auto_pop; } min_height_stack;\ -struct { UI_PermissionFlagsNode *top; UI_PermissionFlags bottom_val; UI_PermissionFlagsNode *free; U64 gen; B32 auto_pop; } permission_flags_stack;\ -struct { UI_FlagsNode *top; UI_BoxFlags bottom_val; UI_FlagsNode *free; U64 gen; B32 auto_pop; } flags_stack;\ -struct { UI_OmitFlagsNode *top; UI_BoxFlags bottom_val; UI_OmitFlagsNode *free; U64 gen; B32 auto_pop; } omit_flags_stack;\ -struct { UI_FocusHotNode *top; UI_FocusKind bottom_val; UI_FocusHotNode *free; U64 gen; B32 auto_pop; } focus_hot_stack;\ -struct { UI_FocusActiveNode *top; UI_FocusKind bottom_val; UI_FocusActiveNode *free; U64 gen; B32 auto_pop; } focus_active_stack;\ -struct { UI_FastpathCodepointNode *top; U32 bottom_val; UI_FastpathCodepointNode *free; U64 gen; B32 auto_pop; } fastpath_codepoint_stack;\ -struct { UI_GroupKeyNode *top; UI_Key bottom_val; UI_GroupKeyNode *free; U64 gen; B32 auto_pop; } group_key_stack;\ -struct { UI_TransparencyNode *top; F32 bottom_val; UI_TransparencyNode *free; U64 gen; B32 auto_pop; } transparency_stack;\ -struct { UI_TagNode *top; String8 bottom_val; UI_TagNode *free; U64 gen; B32 auto_pop; } tag_stack;\ -struct { UI_BackgroundColorNode *top; Vec4F32 bottom_val; UI_BackgroundColorNode *free; U64 gen; B32 auto_pop; } background_color_stack;\ -struct { UI_TextColorNode *top; Vec4F32 bottom_val; UI_TextColorNode *free; U64 gen; B32 auto_pop; } text_color_stack;\ -struct { UI_BorderColorNode *top; Vec4F32 bottom_val; UI_BorderColorNode *free; U64 gen; B32 auto_pop; } border_color_stack;\ -struct { UI_SquishNode *top; F32 bottom_val; UI_SquishNode *free; U64 gen; B32 auto_pop; } squish_stack;\ -struct { UI_HoverCursorNode *top; OS_Cursor bottom_val; UI_HoverCursorNode *free; U64 gen; B32 auto_pop; } hover_cursor_stack;\ -struct { UI_FontNode *top; FNT_Tag bottom_val; UI_FontNode *free; U64 gen; B32 auto_pop; } font_stack;\ -struct { UI_FontSizeNode *top; F32 bottom_val; UI_FontSizeNode *free; U64 gen; B32 auto_pop; } font_size_stack;\ -struct { UI_TextRasterFlagsNode *top; FNT_RasterFlags bottom_val; UI_TextRasterFlagsNode *free; U64 gen; B32 auto_pop; } text_raster_flags_stack;\ -struct { UI_TabSizeNode *top; F32 bottom_val; UI_TabSizeNode *free; U64 gen; B32 auto_pop; } tab_size_stack;\ -struct { UI_CornerRadius00Node *top; F32 bottom_val; UI_CornerRadius00Node *free; U64 gen; B32 auto_pop; } corner_radius_00_stack;\ -struct { UI_CornerRadius01Node *top; F32 bottom_val; UI_CornerRadius01Node *free; U64 gen; B32 auto_pop; } corner_radius_01_stack;\ -struct { UI_CornerRadius10Node *top; F32 bottom_val; UI_CornerRadius10Node *free; U64 gen; B32 auto_pop; } corner_radius_10_stack;\ -struct { UI_CornerRadius11Node *top; F32 bottom_val; UI_CornerRadius11Node *free; U64 gen; B32 auto_pop; } corner_radius_11_stack;\ -struct { UI_BlurSizeNode *top; F32 bottom_val; UI_BlurSizeNode *free; U64 gen; B32 auto_pop; } blur_size_stack;\ -struct { UI_TextPaddingNode *top; F32 bottom_val; UI_TextPaddingNode *free; U64 gen; B32 auto_pop; } text_padding_stack;\ -struct { UI_TextAlignmentNode *top; UI_TextAlign bottom_val; UI_TextAlignmentNode *free; U64 gen; B32 auto_pop; } text_alignment_stack;\ -} -#define UI_InitStacks(state) \ -state->parent_stack.top = &state->parent_nil_stack_top; state->parent_stack.bottom_val = &ui_nil_box; state->parent_stack.free = 0; state->parent_stack.auto_pop = 0;\ -state->child_layout_axis_stack.top = &state->child_layout_axis_nil_stack_top; state->child_layout_axis_stack.bottom_val = Axis2_X; state->child_layout_axis_stack.free = 0; state->child_layout_axis_stack.auto_pop = 0;\ -state->fixed_x_stack.top = &state->fixed_x_nil_stack_top; state->fixed_x_stack.bottom_val = 0; state->fixed_x_stack.free = 0; state->fixed_x_stack.auto_pop = 0;\ -state->fixed_y_stack.top = &state->fixed_y_nil_stack_top; state->fixed_y_stack.bottom_val = 0; state->fixed_y_stack.free = 0; state->fixed_y_stack.auto_pop = 0;\ -state->fixed_width_stack.top = &state->fixed_width_nil_stack_top; state->fixed_width_stack.bottom_val = 0; state->fixed_width_stack.free = 0; state->fixed_width_stack.auto_pop = 0;\ -state->fixed_height_stack.top = &state->fixed_height_nil_stack_top; state->fixed_height_stack.bottom_val = 0; state->fixed_height_stack.free = 0; state->fixed_height_stack.auto_pop = 0;\ -state->pref_width_stack.top = &state->pref_width_nil_stack_top; state->pref_width_stack.bottom_val = ui_px(250.f, 1.f); state->pref_width_stack.free = 0; state->pref_width_stack.auto_pop = 0;\ -state->pref_height_stack.top = &state->pref_height_nil_stack_top; state->pref_height_stack.bottom_val = ui_px(30.f, 1.f); state->pref_height_stack.free = 0; state->pref_height_stack.auto_pop = 0;\ -state->min_width_stack.top = &state->min_width_nil_stack_top; state->min_width_stack.bottom_val = 0; state->min_width_stack.free = 0; state->min_width_stack.auto_pop = 0;\ -state->min_height_stack.top = &state->min_height_nil_stack_top; state->min_height_stack.bottom_val = 0; state->min_height_stack.free = 0; state->min_height_stack.auto_pop = 0;\ -state->permission_flags_stack.top = &state->permission_flags_nil_stack_top; state->permission_flags_stack.bottom_val = UI_PermissionFlag_All; state->permission_flags_stack.free = 0; state->permission_flags_stack.auto_pop = 0;\ -state->flags_stack.top = &state->flags_nil_stack_top; state->flags_stack.bottom_val = 0; state->flags_stack.free = 0; state->flags_stack.auto_pop = 0;\ -state->omit_flags_stack.top = &state->omit_flags_nil_stack_top; state->omit_flags_stack.bottom_val = 0; state->omit_flags_stack.free = 0; state->omit_flags_stack.auto_pop = 0;\ -state->focus_hot_stack.top = &state->focus_hot_nil_stack_top; state->focus_hot_stack.bottom_val = UI_FocusKind_Null; state->focus_hot_stack.free = 0; state->focus_hot_stack.auto_pop = 0;\ -state->focus_active_stack.top = &state->focus_active_nil_stack_top; state->focus_active_stack.bottom_val = UI_FocusKind_Null; state->focus_active_stack.free = 0; state->focus_active_stack.auto_pop = 0;\ -state->fastpath_codepoint_stack.top = &state->fastpath_codepoint_nil_stack_top; state->fastpath_codepoint_stack.bottom_val = 0; state->fastpath_codepoint_stack.free = 0; state->fastpath_codepoint_stack.auto_pop = 0;\ -state->group_key_stack.top = &state->group_key_nil_stack_top; state->group_key_stack.bottom_val = ui_key_zero(); state->group_key_stack.free = 0; state->group_key_stack.auto_pop = 0;\ -state->transparency_stack.top = &state->transparency_nil_stack_top; state->transparency_stack.bottom_val = 0; state->transparency_stack.free = 0; state->transparency_stack.auto_pop = 0;\ -state->tag_stack.top = &state->tag_nil_stack_top; state->tag_stack.bottom_val = str8_lit(""); state->tag_stack.free = 0; state->tag_stack.auto_pop = 0;\ -state->background_color_stack.top = &state->background_color_nil_stack_top; state->background_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->background_color_stack.free = 0; state->background_color_stack.auto_pop = 0;\ -state->text_color_stack.top = &state->text_color_nil_stack_top; state->text_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->text_color_stack.free = 0; state->text_color_stack.auto_pop = 0;\ -state->border_color_stack.top = &state->border_color_nil_stack_top; state->border_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->border_color_stack.free = 0; state->border_color_stack.auto_pop = 0;\ -state->squish_stack.top = &state->squish_nil_stack_top; state->squish_stack.bottom_val = 0; state->squish_stack.free = 0; state->squish_stack.auto_pop = 0;\ -state->hover_cursor_stack.top = &state->hover_cursor_nil_stack_top; state->hover_cursor_stack.bottom_val = OS_Cursor_Pointer; state->hover_cursor_stack.free = 0; state->hover_cursor_stack.auto_pop = 0;\ -state->font_stack.top = &state->font_nil_stack_top; state->font_stack.bottom_val = fnt_tag_zero(); state->font_stack.free = 0; state->font_stack.auto_pop = 0;\ -state->font_size_stack.top = &state->font_size_nil_stack_top; state->font_size_stack.bottom_val = 24.f; state->font_size_stack.free = 0; state->font_size_stack.auto_pop = 0;\ -state->text_raster_flags_stack.top = &state->text_raster_flags_nil_stack_top; state->text_raster_flags_stack.bottom_val = FNT_RasterFlag_Hinted; state->text_raster_flags_stack.free = 0; state->text_raster_flags_stack.auto_pop = 0;\ -state->tab_size_stack.top = &state->tab_size_nil_stack_top; state->tab_size_stack.bottom_val = 24.f*4.f; state->tab_size_stack.free = 0; state->tab_size_stack.auto_pop = 0;\ -state->corner_radius_00_stack.top = &state->corner_radius_00_nil_stack_top; state->corner_radius_00_stack.bottom_val = 0; state->corner_radius_00_stack.free = 0; state->corner_radius_00_stack.auto_pop = 0;\ -state->corner_radius_01_stack.top = &state->corner_radius_01_nil_stack_top; state->corner_radius_01_stack.bottom_val = 0; state->corner_radius_01_stack.free = 0; state->corner_radius_01_stack.auto_pop = 0;\ -state->corner_radius_10_stack.top = &state->corner_radius_10_nil_stack_top; state->corner_radius_10_stack.bottom_val = 0; state->corner_radius_10_stack.free = 0; state->corner_radius_10_stack.auto_pop = 0;\ -state->corner_radius_11_stack.top = &state->corner_radius_11_nil_stack_top; state->corner_radius_11_stack.bottom_val = 0; state->corner_radius_11_stack.free = 0; state->corner_radius_11_stack.auto_pop = 0;\ -state->blur_size_stack.top = &state->blur_size_nil_stack_top; state->blur_size_stack.bottom_val = 0; state->blur_size_stack.free = 0; state->blur_size_stack.auto_pop = 0;\ -state->text_padding_stack.top = &state->text_padding_nil_stack_top; state->text_padding_stack.bottom_val = 0; state->text_padding_stack.free = 0; state->text_padding_stack.auto_pop = 0;\ -state->text_alignment_stack.top = &state->text_alignment_nil_stack_top; state->text_alignment_stack.bottom_val = UI_TextAlign_Left; state->text_alignment_stack.free = 0; state->text_alignment_stack.auto_pop = 0;\ - -#define UI_AutoPopStacks(state) \ -if(state->parent_stack.auto_pop) { ui_pop_parent(); state->parent_stack.auto_pop = 0; }\ -if(state->child_layout_axis_stack.auto_pop) { ui_pop_child_layout_axis(); state->child_layout_axis_stack.auto_pop = 0; }\ -if(state->fixed_x_stack.auto_pop) { ui_pop_fixed_x(); state->fixed_x_stack.auto_pop = 0; }\ -if(state->fixed_y_stack.auto_pop) { ui_pop_fixed_y(); state->fixed_y_stack.auto_pop = 0; }\ -if(state->fixed_width_stack.auto_pop) { ui_pop_fixed_width(); state->fixed_width_stack.auto_pop = 0; }\ -if(state->fixed_height_stack.auto_pop) { ui_pop_fixed_height(); state->fixed_height_stack.auto_pop = 0; }\ -if(state->pref_width_stack.auto_pop) { ui_pop_pref_width(); state->pref_width_stack.auto_pop = 0; }\ -if(state->pref_height_stack.auto_pop) { ui_pop_pref_height(); state->pref_height_stack.auto_pop = 0; }\ -if(state->min_width_stack.auto_pop) { ui_pop_min_width(); state->min_width_stack.auto_pop = 0; }\ -if(state->min_height_stack.auto_pop) { ui_pop_min_height(); state->min_height_stack.auto_pop = 0; }\ -if(state->permission_flags_stack.auto_pop) { ui_pop_permission_flags(); state->permission_flags_stack.auto_pop = 0; }\ -if(state->flags_stack.auto_pop) { ui_pop_flags(); state->flags_stack.auto_pop = 0; }\ -if(state->omit_flags_stack.auto_pop) { ui_pop_omit_flags(); state->omit_flags_stack.auto_pop = 0; }\ -if(state->focus_hot_stack.auto_pop) { ui_pop_focus_hot(); state->focus_hot_stack.auto_pop = 0; }\ -if(state->focus_active_stack.auto_pop) { ui_pop_focus_active(); state->focus_active_stack.auto_pop = 0; }\ -if(state->fastpath_codepoint_stack.auto_pop) { ui_pop_fastpath_codepoint(); state->fastpath_codepoint_stack.auto_pop = 0; }\ -if(state->group_key_stack.auto_pop) { ui_pop_group_key(); state->group_key_stack.auto_pop = 0; }\ -if(state->transparency_stack.auto_pop) { ui_pop_transparency(); state->transparency_stack.auto_pop = 0; }\ -if(state->tag_stack.auto_pop) { ui_pop_tag(); state->tag_stack.auto_pop = 0; }\ -if(state->background_color_stack.auto_pop) { ui_pop_background_color(); state->background_color_stack.auto_pop = 0; }\ -if(state->text_color_stack.auto_pop) { ui_pop_text_color(); state->text_color_stack.auto_pop = 0; }\ -if(state->border_color_stack.auto_pop) { ui_pop_border_color(); state->border_color_stack.auto_pop = 0; }\ -if(state->squish_stack.auto_pop) { ui_pop_squish(); state->squish_stack.auto_pop = 0; }\ -if(state->hover_cursor_stack.auto_pop) { ui_pop_hover_cursor(); state->hover_cursor_stack.auto_pop = 0; }\ -if(state->font_stack.auto_pop) { ui_pop_font(); state->font_stack.auto_pop = 0; }\ -if(state->font_size_stack.auto_pop) { ui_pop_font_size(); state->font_size_stack.auto_pop = 0; }\ -if(state->text_raster_flags_stack.auto_pop) { ui_pop_text_raster_flags(); state->text_raster_flags_stack.auto_pop = 0; }\ -if(state->tab_size_stack.auto_pop) { ui_pop_tab_size(); state->tab_size_stack.auto_pop = 0; }\ -if(state->corner_radius_00_stack.auto_pop) { ui_pop_corner_radius_00(); state->corner_radius_00_stack.auto_pop = 0; }\ -if(state->corner_radius_01_stack.auto_pop) { ui_pop_corner_radius_01(); state->corner_radius_01_stack.auto_pop = 0; }\ -if(state->corner_radius_10_stack.auto_pop) { ui_pop_corner_radius_10(); state->corner_radius_10_stack.auto_pop = 0; }\ -if(state->corner_radius_11_stack.auto_pop) { ui_pop_corner_radius_11(); state->corner_radius_11_stack.auto_pop = 0; }\ -if(state->blur_size_stack.auto_pop) { ui_pop_blur_size(); state->blur_size_stack.auto_pop = 0; }\ -if(state->text_padding_stack.auto_pop) { ui_pop_text_padding(); state->text_padding_stack.auto_pop = 0; }\ -if(state->text_alignment_stack.auto_pop) { ui_pop_text_alignment(); state->text_alignment_stack.auto_pop = 0; }\ - -internal UI_Box * ui_top_parent(void); -internal Axis2 ui_top_child_layout_axis(void); -internal F32 ui_top_fixed_x(void); -internal F32 ui_top_fixed_y(void); -internal F32 ui_top_fixed_width(void); -internal F32 ui_top_fixed_height(void); -internal UI_Size ui_top_pref_width(void); -internal UI_Size ui_top_pref_height(void); -internal F32 ui_top_min_width(void); -internal F32 ui_top_min_height(void); -internal UI_PermissionFlags ui_top_permission_flags(void); -internal UI_BoxFlags ui_top_flags(void); -internal UI_BoxFlags ui_top_omit_flags(void); -internal UI_FocusKind ui_top_focus_hot(void); -internal UI_FocusKind ui_top_focus_active(void); -internal U32 ui_top_fastpath_codepoint(void); -internal UI_Key ui_top_group_key(void); -internal F32 ui_top_transparency(void); -internal String8 ui_top_tag(void); -internal Vec4F32 ui_top_background_color(void); -internal Vec4F32 ui_top_text_color(void); -internal Vec4F32 ui_top_border_color(void); -internal F32 ui_top_squish(void); -internal OS_Cursor ui_top_hover_cursor(void); -internal FNT_Tag ui_top_font(void); -internal F32 ui_top_font_size(void); -internal FNT_RasterFlags ui_top_text_raster_flags(void); -internal F32 ui_top_tab_size(void); -internal F32 ui_top_corner_radius_00(void); -internal F32 ui_top_corner_radius_01(void); -internal F32 ui_top_corner_radius_10(void); -internal F32 ui_top_corner_radius_11(void); -internal F32 ui_top_blur_size(void); -internal F32 ui_top_text_padding(void); -internal UI_TextAlign ui_top_text_alignment(void); -internal UI_Box * ui_bottom_parent(void); -internal Axis2 ui_bottom_child_layout_axis(void); -internal F32 ui_bottom_fixed_x(void); -internal F32 ui_bottom_fixed_y(void); -internal F32 ui_bottom_fixed_width(void); -internal F32 ui_bottom_fixed_height(void); -internal UI_Size ui_bottom_pref_width(void); -internal UI_Size ui_bottom_pref_height(void); -internal F32 ui_bottom_min_width(void); -internal F32 ui_bottom_min_height(void); -internal UI_PermissionFlags ui_bottom_permission_flags(void); -internal UI_BoxFlags ui_bottom_flags(void); -internal UI_BoxFlags ui_bottom_omit_flags(void); -internal UI_FocusKind ui_bottom_focus_hot(void); -internal UI_FocusKind ui_bottom_focus_active(void); -internal U32 ui_bottom_fastpath_codepoint(void); -internal UI_Key ui_bottom_group_key(void); -internal F32 ui_bottom_transparency(void); -internal String8 ui_bottom_tag(void); -internal Vec4F32 ui_bottom_background_color(void); -internal Vec4F32 ui_bottom_text_color(void); -internal Vec4F32 ui_bottom_border_color(void); -internal F32 ui_bottom_squish(void); -internal OS_Cursor ui_bottom_hover_cursor(void); -internal FNT_Tag ui_bottom_font(void); -internal F32 ui_bottom_font_size(void); -internal FNT_RasterFlags ui_bottom_text_raster_flags(void); -internal F32 ui_bottom_tab_size(void); -internal F32 ui_bottom_corner_radius_00(void); -internal F32 ui_bottom_corner_radius_01(void); -internal F32 ui_bottom_corner_radius_10(void); -internal F32 ui_bottom_corner_radius_11(void); -internal F32 ui_bottom_blur_size(void); -internal F32 ui_bottom_text_padding(void); -internal UI_TextAlign ui_bottom_text_alignment(void); -internal UI_Box * ui_push_parent(UI_Box * v); -internal Axis2 ui_push_child_layout_axis(Axis2 v); -internal F32 ui_push_fixed_x(F32 v); -internal F32 ui_push_fixed_y(F32 v); -internal F32 ui_push_fixed_width(F32 v); -internal F32 ui_push_fixed_height(F32 v); -internal UI_Size ui_push_pref_width(UI_Size v); -internal UI_Size ui_push_pref_height(UI_Size v); -internal F32 ui_push_min_width(F32 v); -internal F32 ui_push_min_height(F32 v); -internal UI_PermissionFlags ui_push_permission_flags(UI_PermissionFlags v); -internal UI_BoxFlags ui_push_flags(UI_BoxFlags v); -internal UI_BoxFlags ui_push_omit_flags(UI_BoxFlags v); -internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v); -internal UI_FocusKind ui_push_focus_active(UI_FocusKind v); -internal U32 ui_push_fastpath_codepoint(U32 v); -internal UI_Key ui_push_group_key(UI_Key v); -internal F32 ui_push_transparency(F32 v); -internal String8 ui_push_tag(String8 v); -internal Vec4F32 ui_push_background_color(Vec4F32 v); -internal Vec4F32 ui_push_text_color(Vec4F32 v); -internal Vec4F32 ui_push_border_color(Vec4F32 v); -internal F32 ui_push_squish(F32 v); -internal OS_Cursor ui_push_hover_cursor(OS_Cursor v); -internal FNT_Tag ui_push_font(FNT_Tag v); -internal F32 ui_push_font_size(F32 v); -internal FNT_RasterFlags ui_push_text_raster_flags(FNT_RasterFlags v); -internal F32 ui_push_tab_size(F32 v); -internal F32 ui_push_corner_radius_00(F32 v); -internal F32 ui_push_corner_radius_01(F32 v); -internal F32 ui_push_corner_radius_10(F32 v); -internal F32 ui_push_corner_radius_11(F32 v); -internal F32 ui_push_blur_size(F32 v); -internal F32 ui_push_text_padding(F32 v); -internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v); -internal UI_Box * ui_pop_parent(void); -internal Axis2 ui_pop_child_layout_axis(void); -internal F32 ui_pop_fixed_x(void); -internal F32 ui_pop_fixed_y(void); -internal F32 ui_pop_fixed_width(void); -internal F32 ui_pop_fixed_height(void); -internal UI_Size ui_pop_pref_width(void); -internal UI_Size ui_pop_pref_height(void); -internal F32 ui_pop_min_width(void); -internal F32 ui_pop_min_height(void); -internal UI_PermissionFlags ui_pop_permission_flags(void); -internal UI_BoxFlags ui_pop_flags(void); -internal UI_BoxFlags ui_pop_omit_flags(void); -internal UI_FocusKind ui_pop_focus_hot(void); -internal UI_FocusKind ui_pop_focus_active(void); -internal U32 ui_pop_fastpath_codepoint(void); -internal UI_Key ui_pop_group_key(void); -internal F32 ui_pop_transparency(void); -internal String8 ui_pop_tag(void); -internal Vec4F32 ui_pop_background_color(void); -internal Vec4F32 ui_pop_text_color(void); -internal Vec4F32 ui_pop_border_color(void); -internal F32 ui_pop_squish(void); -internal OS_Cursor ui_pop_hover_cursor(void); -internal FNT_Tag ui_pop_font(void); -internal F32 ui_pop_font_size(void); -internal FNT_RasterFlags ui_pop_text_raster_flags(void); -internal F32 ui_pop_tab_size(void); -internal F32 ui_pop_corner_radius_00(void); -internal F32 ui_pop_corner_radius_01(void); -internal F32 ui_pop_corner_radius_10(void); -internal F32 ui_pop_corner_radius_11(void); -internal F32 ui_pop_blur_size(void); -internal F32 ui_pop_text_padding(void); -internal UI_TextAlign ui_pop_text_alignment(void); -internal UI_Box * ui_set_next_parent(UI_Box * v); -internal Axis2 ui_set_next_child_layout_axis(Axis2 v); -internal F32 ui_set_next_fixed_x(F32 v); -internal F32 ui_set_next_fixed_y(F32 v); -internal F32 ui_set_next_fixed_width(F32 v); -internal F32 ui_set_next_fixed_height(F32 v); -internal UI_Size ui_set_next_pref_width(UI_Size v); -internal UI_Size ui_set_next_pref_height(UI_Size v); -internal F32 ui_set_next_min_width(F32 v); -internal F32 ui_set_next_min_height(F32 v); -internal UI_PermissionFlags ui_set_next_permission_flags(UI_PermissionFlags v); -internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v); -internal UI_BoxFlags ui_set_next_omit_flags(UI_BoxFlags v); -internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v); -internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v); -internal U32 ui_set_next_fastpath_codepoint(U32 v); -internal UI_Key ui_set_next_group_key(UI_Key v); -internal F32 ui_set_next_transparency(F32 v); -internal String8 ui_set_next_tag(String8 v); -internal Vec4F32 ui_set_next_background_color(Vec4F32 v); -internal Vec4F32 ui_set_next_text_color(Vec4F32 v); -internal Vec4F32 ui_set_next_border_color(Vec4F32 v); -internal F32 ui_set_next_squish(F32 v); -internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v); -internal FNT_Tag ui_set_next_font(FNT_Tag v); -internal F32 ui_set_next_font_size(F32 v); -internal FNT_RasterFlags ui_set_next_text_raster_flags(FNT_RasterFlags v); -internal F32 ui_set_next_tab_size(F32 v); -internal F32 ui_set_next_corner_radius_00(F32 v); -internal F32 ui_set_next_corner_radius_01(F32 v); -internal F32 ui_set_next_corner_radius_10(F32 v); -internal F32 ui_set_next_corner_radius_11(F32 v); -internal F32 ui_set_next_blur_size(F32 v); -internal F32 ui_set_next_text_padding(F32 v); -internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v); -#endif // UI_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef UI_META_H +#define UI_META_H + +typedef struct UI_ParentNode UI_ParentNode; struct UI_ParentNode{UI_ParentNode *next; UI_Box * v;}; +typedef struct UI_ChildLayoutAxisNode UI_ChildLayoutAxisNode; struct UI_ChildLayoutAxisNode{UI_ChildLayoutAxisNode *next; Axis2 v;}; +typedef struct UI_FixedXNode UI_FixedXNode; struct UI_FixedXNode{UI_FixedXNode *next; F32 v;}; +typedef struct UI_FixedYNode UI_FixedYNode; struct UI_FixedYNode{UI_FixedYNode *next; F32 v;}; +typedef struct UI_FixedWidthNode UI_FixedWidthNode; struct UI_FixedWidthNode{UI_FixedWidthNode *next; F32 v;}; +typedef struct UI_FixedHeightNode UI_FixedHeightNode; struct UI_FixedHeightNode{UI_FixedHeightNode *next; F32 v;}; +typedef struct UI_PrefWidthNode UI_PrefWidthNode; struct UI_PrefWidthNode{UI_PrefWidthNode *next; UI_Size v;}; +typedef struct UI_PrefHeightNode UI_PrefHeightNode; struct UI_PrefHeightNode{UI_PrefHeightNode *next; UI_Size v;}; +typedef struct UI_MinWidthNode UI_MinWidthNode; struct UI_MinWidthNode{UI_MinWidthNode *next; F32 v;}; +typedef struct UI_MinHeightNode UI_MinHeightNode; struct UI_MinHeightNode{UI_MinHeightNode *next; F32 v;}; +typedef struct UI_PermissionFlagsNode UI_PermissionFlagsNode; struct UI_PermissionFlagsNode{UI_PermissionFlagsNode *next; UI_PermissionFlags v;}; +typedef struct UI_FlagsNode UI_FlagsNode; struct UI_FlagsNode{UI_FlagsNode *next; UI_BoxFlags v;}; +typedef struct UI_OmitFlagsNode UI_OmitFlagsNode; struct UI_OmitFlagsNode{UI_OmitFlagsNode *next; UI_BoxFlags v;}; +typedef struct UI_FocusHotNode UI_FocusHotNode; struct UI_FocusHotNode{UI_FocusHotNode *next; UI_FocusKind v;}; +typedef struct UI_FocusActiveNode UI_FocusActiveNode; struct UI_FocusActiveNode{UI_FocusActiveNode *next; UI_FocusKind v;}; +typedef struct UI_FastpathCodepointNode UI_FastpathCodepointNode; struct UI_FastpathCodepointNode{UI_FastpathCodepointNode *next; U32 v;}; +typedef struct UI_GroupKeyNode UI_GroupKeyNode; struct UI_GroupKeyNode{UI_GroupKeyNode *next; UI_Key v;}; +typedef struct UI_TransparencyNode UI_TransparencyNode; struct UI_TransparencyNode{UI_TransparencyNode *next; F32 v;}; +typedef struct UI_TagNode UI_TagNode; struct UI_TagNode{UI_TagNode *next; String8 v;}; +typedef struct UI_BackgroundColorNode UI_BackgroundColorNode; struct UI_BackgroundColorNode{UI_BackgroundColorNode *next; Vec4F32 v;}; +typedef struct UI_TextColorNode UI_TextColorNode; struct UI_TextColorNode{UI_TextColorNode *next; Vec4F32 v;}; +typedef struct UI_BorderColorNode UI_BorderColorNode; struct UI_BorderColorNode{UI_BorderColorNode *next; Vec4F32 v;}; +typedef struct UI_SquishNode UI_SquishNode; struct UI_SquishNode{UI_SquishNode *next; F32 v;}; +typedef struct UI_HoverCursorNode UI_HoverCursorNode; struct UI_HoverCursorNode{UI_HoverCursorNode *next; WM_Cursor v;}; +typedef struct UI_FontNode UI_FontNode; struct UI_FontNode{UI_FontNode *next; FNT_Tag v;}; +typedef struct UI_FontSizeNode UI_FontSizeNode; struct UI_FontSizeNode{UI_FontSizeNode *next; F32 v;}; +typedef struct UI_TextRasterFlagsNode UI_TextRasterFlagsNode; struct UI_TextRasterFlagsNode{UI_TextRasterFlagsNode *next; FNT_RasterFlags v;}; +typedef struct UI_TabSizeNode UI_TabSizeNode; struct UI_TabSizeNode{UI_TabSizeNode *next; F32 v;}; +typedef struct UI_CornerRadius00Node UI_CornerRadius00Node; struct UI_CornerRadius00Node{UI_CornerRadius00Node *next; F32 v;}; +typedef struct UI_CornerRadius01Node UI_CornerRadius01Node; struct UI_CornerRadius01Node{UI_CornerRadius01Node *next; F32 v;}; +typedef struct UI_CornerRadius10Node UI_CornerRadius10Node; struct UI_CornerRadius10Node{UI_CornerRadius10Node *next; F32 v;}; +typedef struct UI_CornerRadius11Node UI_CornerRadius11Node; struct UI_CornerRadius11Node{UI_CornerRadius11Node *next; F32 v;}; +typedef struct UI_BlurSizeNode UI_BlurSizeNode; struct UI_BlurSizeNode{UI_BlurSizeNode *next; F32 v;}; +typedef struct UI_TextPaddingNode UI_TextPaddingNode; struct UI_TextPaddingNode{UI_TextPaddingNode *next; F32 v;}; +typedef struct UI_TextAlignmentNode UI_TextAlignmentNode; struct UI_TextAlignmentNode{UI_TextAlignmentNode *next; UI_TextAlign v;}; +#define UI_DeclStackNils \ +struct\ +{\ +UI_ParentNode parent_nil_stack_top;\ +UI_ChildLayoutAxisNode child_layout_axis_nil_stack_top;\ +UI_FixedXNode fixed_x_nil_stack_top;\ +UI_FixedYNode fixed_y_nil_stack_top;\ +UI_FixedWidthNode fixed_width_nil_stack_top;\ +UI_FixedHeightNode fixed_height_nil_stack_top;\ +UI_PrefWidthNode pref_width_nil_stack_top;\ +UI_PrefHeightNode pref_height_nil_stack_top;\ +UI_MinWidthNode min_width_nil_stack_top;\ +UI_MinHeightNode min_height_nil_stack_top;\ +UI_PermissionFlagsNode permission_flags_nil_stack_top;\ +UI_FlagsNode flags_nil_stack_top;\ +UI_OmitFlagsNode omit_flags_nil_stack_top;\ +UI_FocusHotNode focus_hot_nil_stack_top;\ +UI_FocusActiveNode focus_active_nil_stack_top;\ +UI_FastpathCodepointNode fastpath_codepoint_nil_stack_top;\ +UI_GroupKeyNode group_key_nil_stack_top;\ +UI_TransparencyNode transparency_nil_stack_top;\ +UI_TagNode tag_nil_stack_top;\ +UI_BackgroundColorNode background_color_nil_stack_top;\ +UI_TextColorNode text_color_nil_stack_top;\ +UI_BorderColorNode border_color_nil_stack_top;\ +UI_SquishNode squish_nil_stack_top;\ +UI_HoverCursorNode hover_cursor_nil_stack_top;\ +UI_FontNode font_nil_stack_top;\ +UI_FontSizeNode font_size_nil_stack_top;\ +UI_TextRasterFlagsNode text_raster_flags_nil_stack_top;\ +UI_TabSizeNode tab_size_nil_stack_top;\ +UI_CornerRadius00Node corner_radius_00_nil_stack_top;\ +UI_CornerRadius01Node corner_radius_01_nil_stack_top;\ +UI_CornerRadius10Node corner_radius_10_nil_stack_top;\ +UI_CornerRadius11Node corner_radius_11_nil_stack_top;\ +UI_BlurSizeNode blur_size_nil_stack_top;\ +UI_TextPaddingNode text_padding_nil_stack_top;\ +UI_TextAlignmentNode text_alignment_nil_stack_top;\ +} +#define UI_InitStackNils(state) \ +state->parent_nil_stack_top.v = &ui_nil_box;\ +state->child_layout_axis_nil_stack_top.v = Axis2_X;\ +state->fixed_x_nil_stack_top.v = 0;\ +state->fixed_y_nil_stack_top.v = 0;\ +state->fixed_width_nil_stack_top.v = 0;\ +state->fixed_height_nil_stack_top.v = 0;\ +state->pref_width_nil_stack_top.v = ui_px(250.f, 1.f);\ +state->pref_height_nil_stack_top.v = ui_px(30.f, 1.f);\ +state->min_width_nil_stack_top.v = 0;\ +state->min_height_nil_stack_top.v = 0;\ +state->permission_flags_nil_stack_top.v = UI_PermissionFlag_All;\ +state->flags_nil_stack_top.v = 0;\ +state->omit_flags_nil_stack_top.v = 0;\ +state->focus_hot_nil_stack_top.v = UI_FocusKind_Null;\ +state->focus_active_nil_stack_top.v = UI_FocusKind_Null;\ +state->fastpath_codepoint_nil_stack_top.v = 0;\ +state->group_key_nil_stack_top.v = ui_key_zero();\ +state->transparency_nil_stack_top.v = 0;\ +state->tag_nil_stack_top.v = str8_lit("");\ +state->background_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ +state->text_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ +state->border_color_nil_stack_top.v = v4f32(0, 0, 0, 0);\ +state->squish_nil_stack_top.v = 0;\ +state->hover_cursor_nil_stack_top.v = WM_Cursor_Pointer;\ +state->font_nil_stack_top.v = fnt_tag_zero();\ +state->font_size_nil_stack_top.v = 24.f;\ +state->text_raster_flags_nil_stack_top.v = FNT_RasterFlag_Hinted;\ +state->tab_size_nil_stack_top.v = 24.f*4.f;\ +state->corner_radius_00_nil_stack_top.v = 0;\ +state->corner_radius_01_nil_stack_top.v = 0;\ +state->corner_radius_10_nil_stack_top.v = 0;\ +state->corner_radius_11_nil_stack_top.v = 0;\ +state->blur_size_nil_stack_top.v = 0;\ +state->text_padding_nil_stack_top.v = 0;\ +state->text_alignment_nil_stack_top.v = UI_TextAlign_Left;\ + +#define UI_DeclStacks \ +struct\ +{\ +struct { UI_ParentNode *top; UI_Box * bottom_val; UI_ParentNode *free; U64 gen; B32 auto_pop; } parent_stack;\ +struct { UI_ChildLayoutAxisNode *top; Axis2 bottom_val; UI_ChildLayoutAxisNode *free; U64 gen; B32 auto_pop; } child_layout_axis_stack;\ +struct { UI_FixedXNode *top; F32 bottom_val; UI_FixedXNode *free; U64 gen; B32 auto_pop; } fixed_x_stack;\ +struct { UI_FixedYNode *top; F32 bottom_val; UI_FixedYNode *free; U64 gen; B32 auto_pop; } fixed_y_stack;\ +struct { UI_FixedWidthNode *top; F32 bottom_val; UI_FixedWidthNode *free; U64 gen; B32 auto_pop; } fixed_width_stack;\ +struct { UI_FixedHeightNode *top; F32 bottom_val; UI_FixedHeightNode *free; U64 gen; B32 auto_pop; } fixed_height_stack;\ +struct { UI_PrefWidthNode *top; UI_Size bottom_val; UI_PrefWidthNode *free; U64 gen; B32 auto_pop; } pref_width_stack;\ +struct { UI_PrefHeightNode *top; UI_Size bottom_val; UI_PrefHeightNode *free; U64 gen; B32 auto_pop; } pref_height_stack;\ +struct { UI_MinWidthNode *top; F32 bottom_val; UI_MinWidthNode *free; U64 gen; B32 auto_pop; } min_width_stack;\ +struct { UI_MinHeightNode *top; F32 bottom_val; UI_MinHeightNode *free; U64 gen; B32 auto_pop; } min_height_stack;\ +struct { UI_PermissionFlagsNode *top; UI_PermissionFlags bottom_val; UI_PermissionFlagsNode *free; U64 gen; B32 auto_pop; } permission_flags_stack;\ +struct { UI_FlagsNode *top; UI_BoxFlags bottom_val; UI_FlagsNode *free; U64 gen; B32 auto_pop; } flags_stack;\ +struct { UI_OmitFlagsNode *top; UI_BoxFlags bottom_val; UI_OmitFlagsNode *free; U64 gen; B32 auto_pop; } omit_flags_stack;\ +struct { UI_FocusHotNode *top; UI_FocusKind bottom_val; UI_FocusHotNode *free; U64 gen; B32 auto_pop; } focus_hot_stack;\ +struct { UI_FocusActiveNode *top; UI_FocusKind bottom_val; UI_FocusActiveNode *free; U64 gen; B32 auto_pop; } focus_active_stack;\ +struct { UI_FastpathCodepointNode *top; U32 bottom_val; UI_FastpathCodepointNode *free; U64 gen; B32 auto_pop; } fastpath_codepoint_stack;\ +struct { UI_GroupKeyNode *top; UI_Key bottom_val; UI_GroupKeyNode *free; U64 gen; B32 auto_pop; } group_key_stack;\ +struct { UI_TransparencyNode *top; F32 bottom_val; UI_TransparencyNode *free; U64 gen; B32 auto_pop; } transparency_stack;\ +struct { UI_TagNode *top; String8 bottom_val; UI_TagNode *free; U64 gen; B32 auto_pop; } tag_stack;\ +struct { UI_BackgroundColorNode *top; Vec4F32 bottom_val; UI_BackgroundColorNode *free; U64 gen; B32 auto_pop; } background_color_stack;\ +struct { UI_TextColorNode *top; Vec4F32 bottom_val; UI_TextColorNode *free; U64 gen; B32 auto_pop; } text_color_stack;\ +struct { UI_BorderColorNode *top; Vec4F32 bottom_val; UI_BorderColorNode *free; U64 gen; B32 auto_pop; } border_color_stack;\ +struct { UI_SquishNode *top; F32 bottom_val; UI_SquishNode *free; U64 gen; B32 auto_pop; } squish_stack;\ +struct { UI_HoverCursorNode *top; WM_Cursor bottom_val; UI_HoverCursorNode *free; U64 gen; B32 auto_pop; } hover_cursor_stack;\ +struct { UI_FontNode *top; FNT_Tag bottom_val; UI_FontNode *free; U64 gen; B32 auto_pop; } font_stack;\ +struct { UI_FontSizeNode *top; F32 bottom_val; UI_FontSizeNode *free; U64 gen; B32 auto_pop; } font_size_stack;\ +struct { UI_TextRasterFlagsNode *top; FNT_RasterFlags bottom_val; UI_TextRasterFlagsNode *free; U64 gen; B32 auto_pop; } text_raster_flags_stack;\ +struct { UI_TabSizeNode *top; F32 bottom_val; UI_TabSizeNode *free; U64 gen; B32 auto_pop; } tab_size_stack;\ +struct { UI_CornerRadius00Node *top; F32 bottom_val; UI_CornerRadius00Node *free; U64 gen; B32 auto_pop; } corner_radius_00_stack;\ +struct { UI_CornerRadius01Node *top; F32 bottom_val; UI_CornerRadius01Node *free; U64 gen; B32 auto_pop; } corner_radius_01_stack;\ +struct { UI_CornerRadius10Node *top; F32 bottom_val; UI_CornerRadius10Node *free; U64 gen; B32 auto_pop; } corner_radius_10_stack;\ +struct { UI_CornerRadius11Node *top; F32 bottom_val; UI_CornerRadius11Node *free; U64 gen; B32 auto_pop; } corner_radius_11_stack;\ +struct { UI_BlurSizeNode *top; F32 bottom_val; UI_BlurSizeNode *free; U64 gen; B32 auto_pop; } blur_size_stack;\ +struct { UI_TextPaddingNode *top; F32 bottom_val; UI_TextPaddingNode *free; U64 gen; B32 auto_pop; } text_padding_stack;\ +struct { UI_TextAlignmentNode *top; UI_TextAlign bottom_val; UI_TextAlignmentNode *free; U64 gen; B32 auto_pop; } text_alignment_stack;\ +} +#define UI_InitStacks(state) \ +state->parent_stack.top = &state->parent_nil_stack_top; state->parent_stack.bottom_val = &ui_nil_box; state->parent_stack.free = 0; state->parent_stack.auto_pop = 0;\ +state->child_layout_axis_stack.top = &state->child_layout_axis_nil_stack_top; state->child_layout_axis_stack.bottom_val = Axis2_X; state->child_layout_axis_stack.free = 0; state->child_layout_axis_stack.auto_pop = 0;\ +state->fixed_x_stack.top = &state->fixed_x_nil_stack_top; state->fixed_x_stack.bottom_val = 0; state->fixed_x_stack.free = 0; state->fixed_x_stack.auto_pop = 0;\ +state->fixed_y_stack.top = &state->fixed_y_nil_stack_top; state->fixed_y_stack.bottom_val = 0; state->fixed_y_stack.free = 0; state->fixed_y_stack.auto_pop = 0;\ +state->fixed_width_stack.top = &state->fixed_width_nil_stack_top; state->fixed_width_stack.bottom_val = 0; state->fixed_width_stack.free = 0; state->fixed_width_stack.auto_pop = 0;\ +state->fixed_height_stack.top = &state->fixed_height_nil_stack_top; state->fixed_height_stack.bottom_val = 0; state->fixed_height_stack.free = 0; state->fixed_height_stack.auto_pop = 0;\ +state->pref_width_stack.top = &state->pref_width_nil_stack_top; state->pref_width_stack.bottom_val = ui_px(250.f, 1.f); state->pref_width_stack.free = 0; state->pref_width_stack.auto_pop = 0;\ +state->pref_height_stack.top = &state->pref_height_nil_stack_top; state->pref_height_stack.bottom_val = ui_px(30.f, 1.f); state->pref_height_stack.free = 0; state->pref_height_stack.auto_pop = 0;\ +state->min_width_stack.top = &state->min_width_nil_stack_top; state->min_width_stack.bottom_val = 0; state->min_width_stack.free = 0; state->min_width_stack.auto_pop = 0;\ +state->min_height_stack.top = &state->min_height_nil_stack_top; state->min_height_stack.bottom_val = 0; state->min_height_stack.free = 0; state->min_height_stack.auto_pop = 0;\ +state->permission_flags_stack.top = &state->permission_flags_nil_stack_top; state->permission_flags_stack.bottom_val = UI_PermissionFlag_All; state->permission_flags_stack.free = 0; state->permission_flags_stack.auto_pop = 0;\ +state->flags_stack.top = &state->flags_nil_stack_top; state->flags_stack.bottom_val = 0; state->flags_stack.free = 0; state->flags_stack.auto_pop = 0;\ +state->omit_flags_stack.top = &state->omit_flags_nil_stack_top; state->omit_flags_stack.bottom_val = 0; state->omit_flags_stack.free = 0; state->omit_flags_stack.auto_pop = 0;\ +state->focus_hot_stack.top = &state->focus_hot_nil_stack_top; state->focus_hot_stack.bottom_val = UI_FocusKind_Null; state->focus_hot_stack.free = 0; state->focus_hot_stack.auto_pop = 0;\ +state->focus_active_stack.top = &state->focus_active_nil_stack_top; state->focus_active_stack.bottom_val = UI_FocusKind_Null; state->focus_active_stack.free = 0; state->focus_active_stack.auto_pop = 0;\ +state->fastpath_codepoint_stack.top = &state->fastpath_codepoint_nil_stack_top; state->fastpath_codepoint_stack.bottom_val = 0; state->fastpath_codepoint_stack.free = 0; state->fastpath_codepoint_stack.auto_pop = 0;\ +state->group_key_stack.top = &state->group_key_nil_stack_top; state->group_key_stack.bottom_val = ui_key_zero(); state->group_key_stack.free = 0; state->group_key_stack.auto_pop = 0;\ +state->transparency_stack.top = &state->transparency_nil_stack_top; state->transparency_stack.bottom_val = 0; state->transparency_stack.free = 0; state->transparency_stack.auto_pop = 0;\ +state->tag_stack.top = &state->tag_nil_stack_top; state->tag_stack.bottom_val = str8_lit(""); state->tag_stack.free = 0; state->tag_stack.auto_pop = 0;\ +state->background_color_stack.top = &state->background_color_nil_stack_top; state->background_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->background_color_stack.free = 0; state->background_color_stack.auto_pop = 0;\ +state->text_color_stack.top = &state->text_color_nil_stack_top; state->text_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->text_color_stack.free = 0; state->text_color_stack.auto_pop = 0;\ +state->border_color_stack.top = &state->border_color_nil_stack_top; state->border_color_stack.bottom_val = v4f32(0, 0, 0, 0); state->border_color_stack.free = 0; state->border_color_stack.auto_pop = 0;\ +state->squish_stack.top = &state->squish_nil_stack_top; state->squish_stack.bottom_val = 0; state->squish_stack.free = 0; state->squish_stack.auto_pop = 0;\ +state->hover_cursor_stack.top = &state->hover_cursor_nil_stack_top; state->hover_cursor_stack.bottom_val = WM_Cursor_Pointer; state->hover_cursor_stack.free = 0; state->hover_cursor_stack.auto_pop = 0;\ +state->font_stack.top = &state->font_nil_stack_top; state->font_stack.bottom_val = fnt_tag_zero(); state->font_stack.free = 0; state->font_stack.auto_pop = 0;\ +state->font_size_stack.top = &state->font_size_nil_stack_top; state->font_size_stack.bottom_val = 24.f; state->font_size_stack.free = 0; state->font_size_stack.auto_pop = 0;\ +state->text_raster_flags_stack.top = &state->text_raster_flags_nil_stack_top; state->text_raster_flags_stack.bottom_val = FNT_RasterFlag_Hinted; state->text_raster_flags_stack.free = 0; state->text_raster_flags_stack.auto_pop = 0;\ +state->tab_size_stack.top = &state->tab_size_nil_stack_top; state->tab_size_stack.bottom_val = 24.f*4.f; state->tab_size_stack.free = 0; state->tab_size_stack.auto_pop = 0;\ +state->corner_radius_00_stack.top = &state->corner_radius_00_nil_stack_top; state->corner_radius_00_stack.bottom_val = 0; state->corner_radius_00_stack.free = 0; state->corner_radius_00_stack.auto_pop = 0;\ +state->corner_radius_01_stack.top = &state->corner_radius_01_nil_stack_top; state->corner_radius_01_stack.bottom_val = 0; state->corner_radius_01_stack.free = 0; state->corner_radius_01_stack.auto_pop = 0;\ +state->corner_radius_10_stack.top = &state->corner_radius_10_nil_stack_top; state->corner_radius_10_stack.bottom_val = 0; state->corner_radius_10_stack.free = 0; state->corner_radius_10_stack.auto_pop = 0;\ +state->corner_radius_11_stack.top = &state->corner_radius_11_nil_stack_top; state->corner_radius_11_stack.bottom_val = 0; state->corner_radius_11_stack.free = 0; state->corner_radius_11_stack.auto_pop = 0;\ +state->blur_size_stack.top = &state->blur_size_nil_stack_top; state->blur_size_stack.bottom_val = 0; state->blur_size_stack.free = 0; state->blur_size_stack.auto_pop = 0;\ +state->text_padding_stack.top = &state->text_padding_nil_stack_top; state->text_padding_stack.bottom_val = 0; state->text_padding_stack.free = 0; state->text_padding_stack.auto_pop = 0;\ +state->text_alignment_stack.top = &state->text_alignment_nil_stack_top; state->text_alignment_stack.bottom_val = UI_TextAlign_Left; state->text_alignment_stack.free = 0; state->text_alignment_stack.auto_pop = 0;\ + +#define UI_AutoPopStacks(state) \ +if(state->parent_stack.auto_pop) { ui_pop_parent(); state->parent_stack.auto_pop = 0; }\ +if(state->child_layout_axis_stack.auto_pop) { ui_pop_child_layout_axis(); state->child_layout_axis_stack.auto_pop = 0; }\ +if(state->fixed_x_stack.auto_pop) { ui_pop_fixed_x(); state->fixed_x_stack.auto_pop = 0; }\ +if(state->fixed_y_stack.auto_pop) { ui_pop_fixed_y(); state->fixed_y_stack.auto_pop = 0; }\ +if(state->fixed_width_stack.auto_pop) { ui_pop_fixed_width(); state->fixed_width_stack.auto_pop = 0; }\ +if(state->fixed_height_stack.auto_pop) { ui_pop_fixed_height(); state->fixed_height_stack.auto_pop = 0; }\ +if(state->pref_width_stack.auto_pop) { ui_pop_pref_width(); state->pref_width_stack.auto_pop = 0; }\ +if(state->pref_height_stack.auto_pop) { ui_pop_pref_height(); state->pref_height_stack.auto_pop = 0; }\ +if(state->min_width_stack.auto_pop) { ui_pop_min_width(); state->min_width_stack.auto_pop = 0; }\ +if(state->min_height_stack.auto_pop) { ui_pop_min_height(); state->min_height_stack.auto_pop = 0; }\ +if(state->permission_flags_stack.auto_pop) { ui_pop_permission_flags(); state->permission_flags_stack.auto_pop = 0; }\ +if(state->flags_stack.auto_pop) { ui_pop_flags(); state->flags_stack.auto_pop = 0; }\ +if(state->omit_flags_stack.auto_pop) { ui_pop_omit_flags(); state->omit_flags_stack.auto_pop = 0; }\ +if(state->focus_hot_stack.auto_pop) { ui_pop_focus_hot(); state->focus_hot_stack.auto_pop = 0; }\ +if(state->focus_active_stack.auto_pop) { ui_pop_focus_active(); state->focus_active_stack.auto_pop = 0; }\ +if(state->fastpath_codepoint_stack.auto_pop) { ui_pop_fastpath_codepoint(); state->fastpath_codepoint_stack.auto_pop = 0; }\ +if(state->group_key_stack.auto_pop) { ui_pop_group_key(); state->group_key_stack.auto_pop = 0; }\ +if(state->transparency_stack.auto_pop) { ui_pop_transparency(); state->transparency_stack.auto_pop = 0; }\ +if(state->tag_stack.auto_pop) { ui_pop_tag(); state->tag_stack.auto_pop = 0; }\ +if(state->background_color_stack.auto_pop) { ui_pop_background_color(); state->background_color_stack.auto_pop = 0; }\ +if(state->text_color_stack.auto_pop) { ui_pop_text_color(); state->text_color_stack.auto_pop = 0; }\ +if(state->border_color_stack.auto_pop) { ui_pop_border_color(); state->border_color_stack.auto_pop = 0; }\ +if(state->squish_stack.auto_pop) { ui_pop_squish(); state->squish_stack.auto_pop = 0; }\ +if(state->hover_cursor_stack.auto_pop) { ui_pop_hover_cursor(); state->hover_cursor_stack.auto_pop = 0; }\ +if(state->font_stack.auto_pop) { ui_pop_font(); state->font_stack.auto_pop = 0; }\ +if(state->font_size_stack.auto_pop) { ui_pop_font_size(); state->font_size_stack.auto_pop = 0; }\ +if(state->text_raster_flags_stack.auto_pop) { ui_pop_text_raster_flags(); state->text_raster_flags_stack.auto_pop = 0; }\ +if(state->tab_size_stack.auto_pop) { ui_pop_tab_size(); state->tab_size_stack.auto_pop = 0; }\ +if(state->corner_radius_00_stack.auto_pop) { ui_pop_corner_radius_00(); state->corner_radius_00_stack.auto_pop = 0; }\ +if(state->corner_radius_01_stack.auto_pop) { ui_pop_corner_radius_01(); state->corner_radius_01_stack.auto_pop = 0; }\ +if(state->corner_radius_10_stack.auto_pop) { ui_pop_corner_radius_10(); state->corner_radius_10_stack.auto_pop = 0; }\ +if(state->corner_radius_11_stack.auto_pop) { ui_pop_corner_radius_11(); state->corner_radius_11_stack.auto_pop = 0; }\ +if(state->blur_size_stack.auto_pop) { ui_pop_blur_size(); state->blur_size_stack.auto_pop = 0; }\ +if(state->text_padding_stack.auto_pop) { ui_pop_text_padding(); state->text_padding_stack.auto_pop = 0; }\ +if(state->text_alignment_stack.auto_pop) { ui_pop_text_alignment(); state->text_alignment_stack.auto_pop = 0; }\ + +internal UI_Box * ui_top_parent(void); +internal Axis2 ui_top_child_layout_axis(void); +internal F32 ui_top_fixed_x(void); +internal F32 ui_top_fixed_y(void); +internal F32 ui_top_fixed_width(void); +internal F32 ui_top_fixed_height(void); +internal UI_Size ui_top_pref_width(void); +internal UI_Size ui_top_pref_height(void); +internal F32 ui_top_min_width(void); +internal F32 ui_top_min_height(void); +internal UI_PermissionFlags ui_top_permission_flags(void); +internal UI_BoxFlags ui_top_flags(void); +internal UI_BoxFlags ui_top_omit_flags(void); +internal UI_FocusKind ui_top_focus_hot(void); +internal UI_FocusKind ui_top_focus_active(void); +internal U32 ui_top_fastpath_codepoint(void); +internal UI_Key ui_top_group_key(void); +internal F32 ui_top_transparency(void); +internal String8 ui_top_tag(void); +internal Vec4F32 ui_top_background_color(void); +internal Vec4F32 ui_top_text_color(void); +internal Vec4F32 ui_top_border_color(void); +internal F32 ui_top_squish(void); +internal WM_Cursor ui_top_hover_cursor(void); +internal FNT_Tag ui_top_font(void); +internal F32 ui_top_font_size(void); +internal FNT_RasterFlags ui_top_text_raster_flags(void); +internal F32 ui_top_tab_size(void); +internal F32 ui_top_corner_radius_00(void); +internal F32 ui_top_corner_radius_01(void); +internal F32 ui_top_corner_radius_10(void); +internal F32 ui_top_corner_radius_11(void); +internal F32 ui_top_blur_size(void); +internal F32 ui_top_text_padding(void); +internal UI_TextAlign ui_top_text_alignment(void); +internal UI_Box * ui_bottom_parent(void); +internal Axis2 ui_bottom_child_layout_axis(void); +internal F32 ui_bottom_fixed_x(void); +internal F32 ui_bottom_fixed_y(void); +internal F32 ui_bottom_fixed_width(void); +internal F32 ui_bottom_fixed_height(void); +internal UI_Size ui_bottom_pref_width(void); +internal UI_Size ui_bottom_pref_height(void); +internal F32 ui_bottom_min_width(void); +internal F32 ui_bottom_min_height(void); +internal UI_PermissionFlags ui_bottom_permission_flags(void); +internal UI_BoxFlags ui_bottom_flags(void); +internal UI_BoxFlags ui_bottom_omit_flags(void); +internal UI_FocusKind ui_bottom_focus_hot(void); +internal UI_FocusKind ui_bottom_focus_active(void); +internal U32 ui_bottom_fastpath_codepoint(void); +internal UI_Key ui_bottom_group_key(void); +internal F32 ui_bottom_transparency(void); +internal String8 ui_bottom_tag(void); +internal Vec4F32 ui_bottom_background_color(void); +internal Vec4F32 ui_bottom_text_color(void); +internal Vec4F32 ui_bottom_border_color(void); +internal F32 ui_bottom_squish(void); +internal WM_Cursor ui_bottom_hover_cursor(void); +internal FNT_Tag ui_bottom_font(void); +internal F32 ui_bottom_font_size(void); +internal FNT_RasterFlags ui_bottom_text_raster_flags(void); +internal F32 ui_bottom_tab_size(void); +internal F32 ui_bottom_corner_radius_00(void); +internal F32 ui_bottom_corner_radius_01(void); +internal F32 ui_bottom_corner_radius_10(void); +internal F32 ui_bottom_corner_radius_11(void); +internal F32 ui_bottom_blur_size(void); +internal F32 ui_bottom_text_padding(void); +internal UI_TextAlign ui_bottom_text_alignment(void); +internal UI_Box * ui_push_parent(UI_Box * v); +internal Axis2 ui_push_child_layout_axis(Axis2 v); +internal F32 ui_push_fixed_x(F32 v); +internal F32 ui_push_fixed_y(F32 v); +internal F32 ui_push_fixed_width(F32 v); +internal F32 ui_push_fixed_height(F32 v); +internal UI_Size ui_push_pref_width(UI_Size v); +internal UI_Size ui_push_pref_height(UI_Size v); +internal F32 ui_push_min_width(F32 v); +internal F32 ui_push_min_height(F32 v); +internal UI_PermissionFlags ui_push_permission_flags(UI_PermissionFlags v); +internal UI_BoxFlags ui_push_flags(UI_BoxFlags v); +internal UI_BoxFlags ui_push_omit_flags(UI_BoxFlags v); +internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v); +internal UI_FocusKind ui_push_focus_active(UI_FocusKind v); +internal U32 ui_push_fastpath_codepoint(U32 v); +internal UI_Key ui_push_group_key(UI_Key v); +internal F32 ui_push_transparency(F32 v); +internal String8 ui_push_tag(String8 v); +internal Vec4F32 ui_push_background_color(Vec4F32 v); +internal Vec4F32 ui_push_text_color(Vec4F32 v); +internal Vec4F32 ui_push_border_color(Vec4F32 v); +internal F32 ui_push_squish(F32 v); +internal WM_Cursor ui_push_hover_cursor(WM_Cursor v); +internal FNT_Tag ui_push_font(FNT_Tag v); +internal F32 ui_push_font_size(F32 v); +internal FNT_RasterFlags ui_push_text_raster_flags(FNT_RasterFlags v); +internal F32 ui_push_tab_size(F32 v); +internal F32 ui_push_corner_radius_00(F32 v); +internal F32 ui_push_corner_radius_01(F32 v); +internal F32 ui_push_corner_radius_10(F32 v); +internal F32 ui_push_corner_radius_11(F32 v); +internal F32 ui_push_blur_size(F32 v); +internal F32 ui_push_text_padding(F32 v); +internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v); +internal UI_Box * ui_pop_parent(void); +internal Axis2 ui_pop_child_layout_axis(void); +internal F32 ui_pop_fixed_x(void); +internal F32 ui_pop_fixed_y(void); +internal F32 ui_pop_fixed_width(void); +internal F32 ui_pop_fixed_height(void); +internal UI_Size ui_pop_pref_width(void); +internal UI_Size ui_pop_pref_height(void); +internal F32 ui_pop_min_width(void); +internal F32 ui_pop_min_height(void); +internal UI_PermissionFlags ui_pop_permission_flags(void); +internal UI_BoxFlags ui_pop_flags(void); +internal UI_BoxFlags ui_pop_omit_flags(void); +internal UI_FocusKind ui_pop_focus_hot(void); +internal UI_FocusKind ui_pop_focus_active(void); +internal U32 ui_pop_fastpath_codepoint(void); +internal UI_Key ui_pop_group_key(void); +internal F32 ui_pop_transparency(void); +internal String8 ui_pop_tag(void); +internal Vec4F32 ui_pop_background_color(void); +internal Vec4F32 ui_pop_text_color(void); +internal Vec4F32 ui_pop_border_color(void); +internal F32 ui_pop_squish(void); +internal WM_Cursor ui_pop_hover_cursor(void); +internal FNT_Tag ui_pop_font(void); +internal F32 ui_pop_font_size(void); +internal FNT_RasterFlags ui_pop_text_raster_flags(void); +internal F32 ui_pop_tab_size(void); +internal F32 ui_pop_corner_radius_00(void); +internal F32 ui_pop_corner_radius_01(void); +internal F32 ui_pop_corner_radius_10(void); +internal F32 ui_pop_corner_radius_11(void); +internal F32 ui_pop_blur_size(void); +internal F32 ui_pop_text_padding(void); +internal UI_TextAlign ui_pop_text_alignment(void); +internal UI_Box * ui_set_next_parent(UI_Box * v); +internal Axis2 ui_set_next_child_layout_axis(Axis2 v); +internal F32 ui_set_next_fixed_x(F32 v); +internal F32 ui_set_next_fixed_y(F32 v); +internal F32 ui_set_next_fixed_width(F32 v); +internal F32 ui_set_next_fixed_height(F32 v); +internal UI_Size ui_set_next_pref_width(UI_Size v); +internal UI_Size ui_set_next_pref_height(UI_Size v); +internal F32 ui_set_next_min_width(F32 v); +internal F32 ui_set_next_min_height(F32 v); +internal UI_PermissionFlags ui_set_next_permission_flags(UI_PermissionFlags v); +internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v); +internal UI_BoxFlags ui_set_next_omit_flags(UI_BoxFlags v); +internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v); +internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v); +internal U32 ui_set_next_fastpath_codepoint(U32 v); +internal UI_Key ui_set_next_group_key(UI_Key v); +internal F32 ui_set_next_transparency(F32 v); +internal String8 ui_set_next_tag(String8 v); +internal Vec4F32 ui_set_next_background_color(Vec4F32 v); +internal Vec4F32 ui_set_next_text_color(Vec4F32 v); +internal Vec4F32 ui_set_next_border_color(Vec4F32 v); +internal F32 ui_set_next_squish(F32 v); +internal WM_Cursor ui_set_next_hover_cursor(WM_Cursor v); +internal FNT_Tag ui_set_next_font(FNT_Tag v); +internal F32 ui_set_next_font_size(F32 v); +internal FNT_RasterFlags ui_set_next_text_raster_flags(FNT_RasterFlags v); +internal F32 ui_set_next_tab_size(F32 v); +internal F32 ui_set_next_corner_radius_00(F32 v); +internal F32 ui_set_next_corner_radius_01(F32 v); +internal F32 ui_set_next_corner_radius_10(F32 v); +internal F32 ui_set_next_corner_radius_11(F32 v); +internal F32 ui_set_next_blur_size(F32 v); +internal F32 ui_set_next_text_padding(F32 v); +internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v); +#endif // UI_META_H diff --git a/src/ui/ui.mdesk b/src/ui/ui.mdesk index 0617f18a..b8636dac 100644 --- a/src/ui/ui.mdesk +++ b/src/ui/ui.mdesk @@ -44,7 +44,7 @@ UI_StackTable: { Squish squish F32 0 } //- rjf: hover cursor - { HoverCursor hover_cursor OS_Cursor OS_Cursor_Pointer } + { HoverCursor hover_cursor WM_Cursor WM_Cursor_Pointer } //- rjf: font { Font font FNT_Tag `fnt_tag_zero()` } diff --git a/src/ui/ui_basic_widgets.c b/src/ui/ui_basic_widgets.c index f4b28a38..dffd3c34 100644 --- a/src/ui/ui_basic_widgets.c +++ b/src/ui/ui_basic_widgets.c @@ -11,10 +11,16 @@ ui_divider(UI_Size size) ui_set_next_pref_size(parent->child_layout_axis, size); ui_set_next_child_layout_axis(parent->child_layout_axis); UI_Box *box = ui_build_box_from_key(0, ui_key_zero()); - UI_Parent(box) UI_PrefSize(parent->child_layout_axis, ui_pct(1, 0)) + UI_Parent(box) UI_Padding(ui_pct(0.5f, 0.5f)) + UI_PrefSize(parent->child_layout_axis, ui_em(0.1f, 1.f)) + UI_BackgroundColor(ui_color_from_name(str8_lit("border"))) { - ui_build_box_from_key(UI_BoxFlag_DrawSideBottom, ui_key_zero()); - ui_build_box_from_key(0, ui_key_zero()); + ui_set_next_child_layout_axis(axis2_flip(parent->child_layout_axis)); + UI_Box *spacing_parent = ui_build_box_from_key(0, ui_key_zero()); + UI_Parent(spacing_parent) UI_Padding(ui_em(1.f, 1.f)) UI_PrefSize(axis2_flip(parent->child_layout_axis), ui_pct(1, 0)) + { + ui_build_box_from_key(UI_BoxFlag_DrawBackground, ui_key_zero()); + } } } @@ -125,6 +131,7 @@ struct UI_LineEditDrawData String8 edited_string; TxtPt cursor; TxtPt mark; + B32 trail; }; internal UI_BOX_CUSTOM_DRAW(ui_line_edit_draw) @@ -137,11 +144,14 @@ internal UI_BOX_CUSTOM_DRAW(ui_line_edit_draw) cursor_color.w *= box->parent->parent->focus_active_t; Vec4F32 select_color = ui_color_from_tags_key_name(box->tags_key, str8_lit("selection")); select_color.w *= (box->parent->parent->focus_active_t*0.2f + 0.8f); + Vec4F32 trail_color = cursor_color; + trail_color.w *= 0.25f; Vec2F32 text_position = ui_box_text_position(box); String8 edited_string = draw_data->edited_string; TxtPt cursor = draw_data->cursor; TxtPt mark = draw_data->mark; F32 cursor_pixel_off = fnt_dim_from_tag_size_string(font, font_size, 0, tab_size, str8_prefix(edited_string, cursor.column-1)).x; + F32 cursor_pixel_off__animated = ui_anim(ui_key_from_stringf(box->key, "cursor_off_px"), cursor_pixel_off); F32 mark_pixel_off = fnt_dim_from_tag_size_string(font, font_size, 0, tab_size, str8_prefix(edited_string, mark.column-1)).x; F32 cursor_thickness = ClampBot(1.f, floor_f32(font_size/10.f)); Rng2F32 cursor_rect = @@ -151,6 +161,14 @@ internal UI_BOX_CUSTOM_DRAW(ui_line_edit_draw) text_position.x + cursor_pixel_off + cursor_thickness, box->parent->parent->rect.y1-ui_top_font_size()*0.5f, }; + Rng1F32 trail_off_span = r1f32(cursor_pixel_off, cursor_pixel_off__animated); + Rng2F32 trail_rect = + { + text_position.x + trail_off_span.min, + cursor_rect.y0, + text_position.x + trail_off_span.max, + cursor_rect.y1, + }; Rng2F32 mark_rect = { text_position.x + mark_pixel_off - cursor_thickness, @@ -161,6 +179,20 @@ internal UI_BOX_CUSTOM_DRAW(ui_line_edit_draw) Rng2F32 select_rect = union_2f32(cursor_rect, mark_rect); dr_rect(select_rect, select_color, font_size/2.f, 0, 1.f); dr_rect(cursor_rect, cursor_color, 0.f, 0, 0.f); + if(draw_data->trail) + { + R_Rect2DInst *trail_inst = dr_rect(trail_rect, trail_color, ui_top_font_size()*0.2f, 0, 1.f); + if(cursor_pixel_off > cursor_pixel_off__animated) + { + trail_inst->colors[Corner_00].w *= 0.1f; + trail_inst->colors[Corner_01].w *= 0.1f; + } + else + { + trail_inst->colors[Corner_10].w *= 0.1f; + trail_inst->colors[Corner_11].w *= 0.1f; + } + } } internal UI_Signal @@ -180,7 +212,7 @@ ui_line_edit(TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, B32 is_focus_active_disabled = (!is_focus_active && ui_top_focus_active() == UI_FocusKind_On); //- rjf: build top-level box - ui_set_next_hover_cursor(is_focus_active ? OS_Cursor_IBar : OS_Cursor_Pointer); + ui_set_next_hover_cursor(is_focus_active ? WM_Cursor_IBar : WM_Cursor_Pointer); UI_Box *box = ui_build_box_from_key(UI_BoxFlag_DrawBackground| UI_BoxFlag_DrawBorder| UI_BoxFlag_MouseClickable| @@ -220,7 +252,7 @@ ui_line_edit(TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, // rjf: perform copy if(op.flags & UI_TxtOpFlag_Copy) { - os_set_clipboard_text(op.copy); + wm_set_clipboard_text(op.copy); } // rjf: commit op's changed cursor & mark to caller-provided state @@ -260,6 +292,7 @@ ui_line_edit(TxtPt *cursor, TxtPt *mark, U8 *edit_buffer, U64 edit_buffer_size, draw_data->edited_string = push_str8_copy(ui_build_arena(), edit_string); draw_data->cursor = *cursor; draw_data->mark = *mark; + draw_data->trail = 1; ui_box_equip_display_string(editstr_box, edit_string); ui_box_equip_custom_draw(editstr_box, ui_line_edit_draw, draw_data); mouse_pt = txt_pt(1, 1+ui_box_char_pos_from_xy(editstr_box, ui_mouse())); @@ -403,7 +436,7 @@ ui_imagef(R_Handle texture, R_Tex2DSampleKind sample_kind, Rng2F32 region, Vec4F internal UI_Signal ui_expander(B32 is_expanded, String8 string) { - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + ui_set_next_hover_cursor(WM_Cursor_HandPoint); ui_set_next_text_alignment(UI_TextAlign_Center); ui_set_next_font(ui_icon_font()); UI_Box *box = ui_build_box_from_string(UI_BoxFlag_Clickable|UI_BoxFlag_DrawText, string); @@ -429,7 +462,7 @@ internal UI_Signal ui_sort_header(B32 sorting, B32 ascending, String8 string) { ui_set_next_child_layout_axis(Axis2_X); - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + ui_set_next_hover_cursor(WM_Cursor_HandPoint); UI_Box *box = ui_build_box_from_string(UI_BoxFlag_Clickable|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawActiveEffects, string); ui_push_parent(box); @@ -616,7 +649,7 @@ internal UI_Signal ui_sat_val_picker(F32 hue, F32 *out_sat, F32 *out_val, String8 string) { // rjf: build & interact - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + ui_set_next_hover_cursor(WM_Cursor_HandPoint); UI_Box *box = ui_build_box_from_string(UI_BoxFlag_Clickable, string); UI_SatValDrawData *user = push_array(ui_build_arena(), UI_SatValDrawData, 1); ui_box_equip_custom_draw(box, ui_sat_val_picker_draw, user); @@ -725,7 +758,7 @@ internal UI_Signal ui_hue_picker(F32 *out_hue, F32 sat, F32 val, String8 string) { // rjf: build & interact - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + ui_set_next_hover_cursor(WM_Cursor_HandPoint); UI_Box *box = ui_build_box_from_string(UI_BoxFlag_Clickable, string); UI_HueDrawData *user = push_array(ui_build_arena(), UI_HueDrawData, 1); ui_box_equip_custom_draw(box, ui_hue_picker_draw, user); @@ -812,7 +845,7 @@ internal UI_Signal ui_alpha_picker(F32 *out_alpha, String8 string) { // rjf: build & interact - ui_set_next_hover_cursor(OS_Cursor_HandPoint); + ui_set_next_hover_cursor(WM_Cursor_HandPoint); UI_Box *box = ui_build_box_from_string(UI_BoxFlag_Clickable, string); UI_AlphaDrawData *user = push_array(ui_build_arena(), UI_AlphaDrawData, 1); ui_box_equip_custom_draw(box, ui_alpha_picker_draw, user); @@ -973,7 +1006,7 @@ ui_table_begin(U64 column_pct_count, F32 **column_pcts, String8 string) // rjf: make column boundary widget UI_Rect(rect) { - ui_set_next_hover_cursor(OS_Cursor_LeftRight); + ui_set_next_hover_cursor(WM_Cursor_LeftRight); UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_Clickable, "###%S_boundary_%I64u", table->string, column_idx); F32 *left_pct_ptr = column_idx < ui_ts_col_pct_count ? column_pcts[column_idx-1] : 0; @@ -1256,6 +1289,8 @@ ui_scroll_bar(Axis2 axis, UI_Size off_axis_size, UI_ScrollPt pt, Rng1S64 idx_ran UI_Flags(UI_BoxFlag_DrawBorder|disabled_flags) UI_TextAlignment(UI_TextAlign_Center) UI_Font(ui_icon_font()) + UI_TextRasterFlags(FNT_RasterFlag_Smooth) + UI_TagF("weak") { String8 arrow_string = ui_icon_string_from_kind(axis == Axis2_X ? UI_IconKind_LeftArrow : UI_IconKind_UpArrow); min_scroll_sig = ui_buttonf("%S##_min_scroll_%i", arrow_string, axis); @@ -1306,6 +1341,8 @@ ui_scroll_bar(Axis2 axis, UI_Size off_axis_size, UI_ScrollPt pt, Rng1S64 idx_ran UI_Flags(UI_BoxFlag_DrawBorder|disabled_flags) UI_TextAlignment(UI_TextAlign_Center) UI_Font(ui_icon_font()) + UI_TextRasterFlags(FNT_RasterFlag_Smooth) + UI_TagF("weak") { String8 arrow_string = ui_icon_string_from_kind(axis == Axis2_X ? UI_IconKind_RightArrow : UI_IconKind_DownArrow); max_scroll_sig = ui_buttonf("%S##_max_scroll_%i", arrow_string, axis); @@ -1364,8 +1401,8 @@ internal void ui_scroll_list_begin(UI_ScrollListParams *params, UI_ScrollPt *scroll_pt, Vec2S64 *cursor_out, Vec2S64 *mark_out, Rng1S64 *visible_row_range_out, UI_ScrollListSignal *signal_out) { //- rjf: unpack arguments - Rng1S64 scroll_row_idx_range = r1s64(params->item_range.min, ClampBot(params->item_range.min, params->item_range.max-1)); S64 num_possible_visible_rows = (S64)(params->dim_px.y/params->row_height_px); + Rng1S64 scroll_row_idx_range = r1s64(params->item_range.min, ClampBot(params->item_range.min, params->item_range.max-1)); //- rjf: do keyboard navigation B32 moved = 0; @@ -1493,7 +1530,16 @@ ui_scroll_list_begin(UI_ScrollListParams *params, UI_ScrollPt *scroll_pt, Vec2S6 UI_Box *scrollable_container_box = &ui_nil_box; UI_Parent(container_box) UI_ChildLayoutAxis(Axis2_Y) UI_FixedWidth(params->dim_px.x-ui_scroll_list_scroll_bar_dim_px) UI_FixedHeight(params->dim_px.y) { - scrollable_container_box = ui_build_box_from_stringf(UI_BoxFlag_Clip|UI_BoxFlag_AllowOverflowY|UI_BoxFlag_Scroll, "###sp"); + UI_BoxFlags fade_flags = 0; + if(scroll_pt->idx > params->item_range.min) + { + fade_flags |= UI_BoxFlag_DrawFadeTop; + } + if(scroll_pt->idx + num_possible_visible_rows < params->item_range.max) + { + fade_flags |= UI_BoxFlag_DrawFadeBottom; + } + scrollable_container_box = ui_build_box_from_stringf(fade_flags|UI_BoxFlag_Clip|UI_BoxFlag_AllowOverflowY|UI_BoxFlag_Scroll, "###sp"); scrollable_container_box->view_off.y = scrollable_container_box->view_off_target.y = params->row_height_px*mod_f32(scroll_pt->off, 1.f) + params->row_height_px*(scroll_pt->off < 0) - params->row_height_px*(scroll_pt->off == -1.f && scroll_pt->idx == 1); } diff --git a/src/ui/ui_core.c b/src/ui/ui_core.c index 333d1b47..a632976d 100644 --- a/src/ui/ui_core.c +++ b/src/ui/ui_core.c @@ -233,7 +233,7 @@ ui_single_line_txt_op_from_event(Arena *arena, UI_Event *event, String8 string, if(event->flags & UI_EventFlag_Paste) { range = txt_rng(cursor, mark); - replace = os_get_clipboard_text(arena); + replace = wm_get_clipboard_text(arena); next_cursor = next_mark = txt_pt(cursor.line, cursor.column+replace.size); } @@ -471,7 +471,7 @@ ui_build_arena(void) return result; } -internal OS_Handle +internal WM_Window ui_window(void) { return ui_state->window; @@ -523,25 +523,25 @@ ui_next_event(UI_Event **ev) if(!(perms & UI_PermissionFlag_ClicksLeft) && (n->v.kind == UI_EventKind_Press || n->v.kind == UI_EventKind_Release) && - (n->v.key == OS_Key_LeftMouseButton)) + (n->v.key == WM_Key_LeftMouseButton)) { good = 0; } if(!(perms & UI_PermissionFlag_ClicksMiddle) && (n->v.kind == UI_EventKind_Press || n->v.kind == UI_EventKind_Release) && - (n->v.key == OS_Key_MiddleMouseButton)) + (n->v.key == WM_Key_MiddleMouseButton)) { good = 0; } if(!(perms & UI_PermissionFlag_ClicksRight) && (n->v.kind == UI_EventKind_Press || n->v.kind == UI_EventKind_Release) && - (n->v.key == OS_Key_RightMouseButton)) + (n->v.key == WM_Key_RightMouseButton)) { good = 0; } - if(!(perms & UI_PermissionFlag_ScrollX) && (n->v.kind == UI_EventKind_Scroll) && (n->v.delta_2f32.x != 0 || n->v.modifiers == OS_Modifier_Shift)) + if(!(perms & UI_PermissionFlag_ScrollX) && (n->v.kind == UI_EventKind_Scroll) && (n->v.delta_2f32.x != 0 || n->v.modifiers == WM_Modifier_Shift)) { good = 0; } @@ -553,9 +553,9 @@ ui_next_event(UI_Event **ev) n->v.kind == UI_EventKind_Release || n->v.kind == UI_EventKind_Navigate || n->v.kind == UI_EventKind_Edit) && - (n->v.key != OS_Key_LeftMouseButton && - n->v.key != OS_Key_MiddleMouseButton && - n->v.key != OS_Key_RightMouseButton)) + (n->v.key != WM_Key_LeftMouseButton && + n->v.key != WM_Key_MiddleMouseButton && + n->v.key != WM_Key_RightMouseButton)) { if((perms & UI_PermissionFlag_Keyboard) == UI_PermissionFlag_KeyboardSecondary) { @@ -594,7 +594,7 @@ ui_eat_event(UI_Event *ev) //- rjf: event consumption helpers internal B32 -ui_key_press(OS_Modifiers mods, OS_Key key) +ui_key_press(WM_Modifiers mods, WM_Key key) { B32 result = 0; for(UI_Event *evt = 0; ui_next_event(&evt);) @@ -610,7 +610,7 @@ ui_key_press(OS_Modifiers mods, OS_Key key) } internal B32 -ui_key_release(OS_Modifiers mods, OS_Key key) +ui_key_release(WM_Modifiers mods, WM_Key key) { B32 result = 0; for(UI_Event *evt = 0; ui_next_event(&evt);) @@ -722,7 +722,7 @@ internal B32 ui_string_hover_active(void) { return (ui_state->build_index > 0 && ui_state->string_hover_build_index >= ui_state->build_index-1 && - os_now_microseconds() >= ui_state->string_hover_begin_us + 500000); + now_time_us() >= ui_state->string_hover_begin_us + 500000); } internal U64 @@ -796,7 +796,7 @@ ui_box_from_key(UI_Key key) //~ rjf: Top-Level Building API internal void -ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_Theme *theme, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt) +ui_begin_build(WM_Window window, UI_EventList *events, UI_IconInfo *icon_info, UI_Theme *theme, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt) { //- rjf: reset per-build ui state { @@ -865,18 +865,18 @@ ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, U { if(n->v.kind == UI_EventKind_MouseMove) { - ui_state->last_time_mousemoved_us = os_now_microseconds(); + ui_state->last_time_mousemoved_us = now_time_us(); } } //- rjf: detect external press & holds for EachEnumVal(UI_MouseButtonKind, k) { - if(ui_key_match(ui_state->active_box_key[k], ui_key_zero()) && os_key_is_down(OS_Key_LeftMouseButton+k)) + if(ui_key_match(ui_state->active_box_key[k], ui_key_zero()) && wm_key_is_down(WM_Key_LeftMouseButton+k)) { ui_state->active_box_key[k] = ui_state->external_key; } - else if(ui_key_match(ui_state->active_box_key[k], ui_state->external_key) && !os_key_is_down(OS_Key_LeftMouseButton+k)) + else if(ui_key_match(ui_state->active_box_key[k], ui_state->external_key) && !wm_key_is_down(WM_Key_LeftMouseButton+k)) { ui_state->active_box_key[k] = ui_key_zero(); } @@ -887,7 +887,7 @@ ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, U ui_state->theme = theme; ui_state->events = events; ui_state->window = window; - ui_state->mouse = (os_window_is_focused(window) || ui_state->last_time_mousemoved_us+500000 >= os_now_microseconds()) ? os_mouse_from_window(window) : v2f32(-100, -100); + ui_state->mouse = (wm_window_is_focused(window) || ui_state->last_time_mousemoved_us+500000 >= now_time_us()) ? wm_mouse_from_window(window) : v2f32(-100, -100); ui_state->animation_dt = animation_dt; MemoryZeroStruct(&ui_state->icon_info); ui_state->icon_info.icon_font = icon_info->icon_font; @@ -921,11 +921,11 @@ ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, U B32 nav_next = 0; B32 nav_prev = 0; Axis2 axis_lock = Axis2_Invalid; - if(ui_key_press(0, OS_Key_Tab)) + if(ui_key_press(0, WM_Key_Tab)) { nav_next = 1; } - if(ui_key_press(OS_Modifier_Shift, OS_Key_Tab)) + if(ui_key_press(WM_Modifier_Shift, WM_Key_Tab)) { nav_prev = 1; } @@ -1123,7 +1123,7 @@ ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, U //- rjf: build top-level root { - Rng2F32 window_rect = os_client_rect_from_window(window); + Rng2F32 window_rect = wm_client_rect_from_window(window); Vec2F32 window_rect_size = dim_2f32(window_rect); ui_set_next_fixed_width(window_rect_size.x); ui_set_next_fixed_height(window_rect_size.y); @@ -1306,7 +1306,7 @@ ui_end_build(void) UI_Box *root = floating_roots[idx]; if(!ui_box_is_nil(root)) { - Rng2F32 window_rect = os_client_rect_from_window(ui_window()); + Rng2F32 window_rect = wm_client_rect_from_window(ui_window()); Vec2F32 window_dim = dim_2f32(window_rect); Rng2F32 root_rect = root->rect; Vec2F32 shift_down = @@ -1538,7 +1538,7 @@ ui_end_build(void) for(UI_Event *evt = 0; ui_next_event(&evt);) { if(evt->kind == UI_EventKind_Press && - (evt->key == OS_Key_LeftMouseButton || evt->key == OS_Key_RightMouseButton)) + (evt->key == WM_Key_LeftMouseButton || evt->key == WM_Key_RightMouseButton)) { ui_ctx_menu_close(); } @@ -1551,14 +1551,14 @@ ui_end_build(void) UI_Box *hot = ui_box_from_key(ui_state->hot_box_key); UI_Box *active = ui_box_from_key(ui_state->active_box_key[UI_MouseButtonKind_Left]); UI_Box *box = ui_box_is_nil(active) ? hot : active; - OS_Cursor cursor = box->hover_cursor; + WM_Cursor cursor = box->hover_cursor; if(box->flags & UI_BoxFlag_Disabled && box->flags & UI_BoxFlag_Clickable) { - cursor = OS_Cursor_Disabled; + cursor = WM_Cursor_Disabled; } - if(os_window_is_focused(ui_state->window) || !ui_box_is_nil(active)) + if(wm_window_is_focused(ui_state->window) || !ui_box_is_nil(active)) { - os_set_cursor(cursor); + wm_set_cursor(cursor); } } @@ -1583,7 +1583,7 @@ ui_end_build(void) StringJoin join = {0}; join.sep = str8_lit(" "); String8 string = str8_list_join(scratch.arena, &strs, &join); - os_set_clipboard_text(string); + wm_set_clipboard_text(string); } scratch_end(scratch); } @@ -1643,7 +1643,7 @@ ui_end_build(void) ui_state->string_hover_string = push_str8_copy(ui_state->string_hover_arena, box_display_string); ui_state->string_hover_size = box->font_size; ui_state->string_hover_fstrs = dr_fstrs_copy(ui_state->string_hover_arena, &b->display_fstrs); - ui_state->string_hover_begin_us = os_now_microseconds(); + ui_state->string_hover_begin_us = now_time_us(); } ui_state->string_hover_build_index = ui_state->build_index; found = 1; @@ -2451,7 +2451,7 @@ ui_build_box_from_key(UI_BoxFlags flags, UI_Key key) box->first = box->last = box->next = box->prev = box->parent = &ui_nil_box; box->child_count = 0; box->flags = 0; - box->hover_cursor = OS_Cursor_Pointer; + box->hover_cursor = WM_Cursor_Pointer; MemoryZeroArray(box->pref_size); MemoryZeroStruct(&box->draw_bucket); } @@ -2809,7 +2809,7 @@ ui_signal_from_box(UI_Box *box) { B32 is_focus_hot = box->flags & UI_BoxFlag_FocusHot && !(box->flags & UI_BoxFlag_FocusHotDisabled); UI_Signal sig = {box}; - sig.event_flags |= os_get_modifiers(); + sig.event_flags |= wm_get_modifiers(); ////////////////////////////// //- rjf: calculate possibly-clipped box rectangle @@ -2858,13 +2858,13 @@ ui_signal_from_box(UI_Box *box) //- rjf: unpack event Vec2F32 evt_mouse = evt->pos; B32 evt_mouse_in_bounds = !contains_2f32(blacklist_rect, evt_mouse) && contains_2f32(rect, evt_mouse); - UI_MouseButtonKind evt_mouse_button_kind = (evt->key == OS_Key_LeftMouseButton ? UI_MouseButtonKind_Left : - evt->key == OS_Key_MiddleMouseButton ? UI_MouseButtonKind_Middle : - evt->key == OS_Key_RightMouseButton ? UI_MouseButtonKind_Right : + UI_MouseButtonKind evt_mouse_button_kind = (evt->key == WM_Key_LeftMouseButton ? UI_MouseButtonKind_Left : + evt->key == WM_Key_MiddleMouseButton ? UI_MouseButtonKind_Middle : + evt->key == WM_Key_RightMouseButton ? UI_MouseButtonKind_Right : UI_MouseButtonKind_Left); - B32 evt_key_is_mouse = (evt->key == OS_Key_LeftMouseButton || - evt->key == OS_Key_MiddleMouseButton || - evt->key == OS_Key_RightMouseButton); + B32 evt_key_is_mouse = (evt->key == WM_Key_LeftMouseButton || + evt->key == WM_Key_MiddleMouseButton || + evt->key == WM_Key_RightMouseButton); sig.event_flags |= evt->modifiers; //- rjf: mouse presses in box -> set hot/active; mark signal accordingly @@ -2878,23 +2878,23 @@ ui_signal_from_box(UI_Box *box) sig.f |= (UI_SignalFlag_LeftPressed<drag_start_mouse = evt->pos; if(ui_key_match(box->key, ui_state->press_key_history[evt_mouse_button_kind][0]) && - evt->timestamp_us-ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] <= 1000000*os_get_gfx_info()->double_click_time) + evt->timestamp_us-ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] <= 1000000*wm_get_system_info()->double_click_time) { sig.f |= (UI_SignalFlag_LeftDoubleClicked<key, ui_state->press_key_history[evt_mouse_button_kind][0]) && ui_key_match(box->key, ui_state->press_key_history[evt_mouse_button_kind][1]) && - evt->timestamp_us-ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] <= 1000000*os_get_gfx_info()->double_click_time && - ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] - ui_state->press_timestamp_history_us[evt_mouse_button_kind][1] <= 1000000*os_get_gfx_info()->double_click_time) + evt->timestamp_us-ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] <= 1000000*wm_get_system_info()->double_click_time && + ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] - ui_state->press_timestamp_history_us[evt_mouse_button_kind][1] <= 1000000*wm_get_system_info()->double_click_time) { sig.f |= (UI_SignalFlag_LeftTripleClicked<press_timestamp_history_us[evt_mouse_button_kind][1], &ui_state->press_timestamp_history_us[evt_mouse_button_kind][0], - sizeof(ui_state->press_timestamp_history_us[evt_mouse_button_kind][0]) * ArrayCount(ui_state->press_timestamp_history_us[evt_mouse_button_kind])-1); + sizeof(ui_state->press_timestamp_history_us[evt_mouse_button_kind][0]) * (ArrayCount(ui_state->press_timestamp_history_us[evt_mouse_button_kind])-1)); MemoryCopy(&ui_state->press_key_history[evt_mouse_button_kind][1], &ui_state->press_key_history[evt_mouse_button_kind][0], - sizeof(ui_state->press_key_history[evt_mouse_button_kind][0]) * ArrayCount(ui_state->press_key_history[evt_mouse_button_kind])-1); + sizeof(ui_state->press_key_history[evt_mouse_button_kind][0]) * (ArrayCount(ui_state->press_key_history[evt_mouse_button_kind])-1)); MemoryCopy(&ui_state->press_pos_history[evt_mouse_button_kind][1], &ui_state->press_pos_history[evt_mouse_button_kind][0], - sizeof(ui_state->press_pos_history[evt_mouse_button_kind][0]) * ArrayCount(ui_state->press_pos_history[evt_mouse_button_kind])-1); + sizeof(ui_state->press_pos_history[evt_mouse_button_kind][0]) * (ArrayCount(ui_state->press_pos_history[evt_mouse_button_kind])-1)); ui_state->press_timestamp_history_us[evt_mouse_button_kind][0] = evt->timestamp_us; ui_state->press_key_history[evt_mouse_button_kind][0] = box->key; ui_state->press_pos_history[evt_mouse_button_kind][0] = evt_mouse; @@ -2980,11 +2980,11 @@ ui_signal_from_box(UI_Box *box) //- rjf: scrolling if(box->flags & UI_BoxFlag_Scroll && evt->kind == UI_EventKind_Scroll && - (evt->modifiers == 0 || evt->modifiers == OS_Modifier_Shift) && + (evt->modifiers == 0 || evt->modifiers == WM_Modifier_Shift) && evt_mouse_in_bounds) { Vec2F32 delta = evt->delta_2f32; - if(evt->modifiers & OS_Modifier_Shift) + if(evt->modifiers & WM_Modifier_Shift) { Swap(F32, delta.x, delta.y); } @@ -3001,11 +3001,11 @@ ui_signal_from_box(UI_Box *box) //- rjf: view scrolling if(box->flags & UI_BoxFlag_ViewScroll && box->first_touched_build_index != box->last_touched_build_index && evt->kind == UI_EventKind_Scroll && - (evt->modifiers == 0 || evt->modifiers == OS_Modifier_Shift) && + (evt->modifiers == 0 || evt->modifiers == WM_Modifier_Shift) && evt_mouse_in_bounds) { Vec2F32 delta = evt->delta_2f32; - if(evt->modifiers & OS_Modifier_Shift) + if(evt->modifiers & WM_Modifier_Shift) { Swap(F32, delta.x, delta.y); } @@ -3077,7 +3077,7 @@ ui_signal_from_box(UI_Box *box) if(sig.f & (UI_SignalFlag_LeftDragging<press_key_history[k][0], box->key) && ui_key_match(ui_state->press_key_history[k][1], box->key) && - ui_state->press_timestamp_history_us[k][0] - ui_state->press_timestamp_history_us[k][1] <= 1000000*os_get_gfx_info()->double_click_time && + ui_state->press_timestamp_history_us[k][0] - ui_state->press_timestamp_history_us[k][1] <= 1000000*wm_get_system_info()->double_click_time && length_2f32(sub_2f32(ui_state->press_pos_history[k][0], ui_state->press_pos_history[k][1])) < 10.f) { sig.f |= (UI_SignalFlag_LeftDoubleDragging<press_key_history[k][0], box->key) && ui_key_match(ui_state->press_key_history[k][1], box->key) && ui_key_match(ui_state->press_key_history[k][2], box->key) && - ui_state->press_timestamp_history_us[k][0] - ui_state->press_timestamp_history_us[k][1] <= 1000000*os_get_gfx_info()->double_click_time && - ui_state->press_timestamp_history_us[k][1] - ui_state->press_timestamp_history_us[k][2] <= 1000000*os_get_gfx_info()->double_click_time && + ui_state->press_timestamp_history_us[k][0] - ui_state->press_timestamp_history_us[k][1] <= 1000000*wm_get_system_info()->double_click_time && + ui_state->press_timestamp_history_us[k][1] - ui_state->press_timestamp_history_us[k][2] <= 1000000*wm_get_system_info()->double_click_time && length_2f32(sub_2f32(ui_state->press_pos_history[k][0], ui_state->press_pos_history[k][1])) < 10.f && length_2f32(sub_2f32(ui_state->press_pos_history[k][1], ui_state->press_pos_history[k][2])) < 10.f) { diff --git a/src/ui/ui_core.h b/src/ui/ui_core.h index 79c6f3e9..445e3741 100644 --- a/src/ui/ui_core.h +++ b/src/ui/ui_core.h @@ -103,6 +103,7 @@ typedef enum UI_EventActionSlot UI_EventActionSlot_Accept, UI_EventActionSlot_Cancel, UI_EventActionSlot_Edit, + UI_EventActionSlot_FocusMenu, UI_EventActionSlot_COUNT } UI_EventActionSlot; @@ -141,8 +142,8 @@ struct UI_Event UI_EventActionSlot slot; UI_EventFlags flags; UI_EventDeltaUnit delta_unit; - OS_Key key; - OS_Modifiers modifiers; + WM_Key key; + WM_Modifiers modifiers; String8 string; String8List paths; Vec2F32 pos; @@ -335,20 +336,24 @@ typedef U64 UI_BoxFlags; # define UI_BoxFlag_DrawActiveEffects (UI_BoxFlags)(1ull<<39) # define UI_BoxFlag_DrawOverlay (UI_BoxFlags)(1ull<<40) # define UI_BoxFlag_DrawBucket (UI_BoxFlags)(1ull<<41) -# define UI_BoxFlag_Clip (UI_BoxFlags)(1ull<<42) -# define UI_BoxFlag_AnimatePosX (UI_BoxFlags)(1ull<<43) -# define UI_BoxFlag_AnimatePosY (UI_BoxFlags)(1ull<<44) -# define UI_BoxFlag_DisableTextTrunc (UI_BoxFlags)(1ull<<45) -# define UI_BoxFlag_DisableIDString (UI_BoxFlags)(1ull<<46) -# define UI_BoxFlag_DisableFocusBorder (UI_BoxFlags)(1ull<<47) -# define UI_BoxFlag_DisableFocusOverlay (UI_BoxFlags)(1ull<<48) -# define UI_BoxFlag_HasDisplayString (UI_BoxFlags)(1ull<<49) -# define UI_BoxFlag_HasFuzzyMatchRanges (UI_BoxFlags)(1ull<<50) -# define UI_BoxFlag_RoundChildrenByParent (UI_BoxFlags)(1ull<<51) -# define UI_BoxFlag_SquishAnchored (UI_BoxFlags)(1ull<<52) +# define UI_BoxFlag_DrawFadeTop (UI_BoxFlags)(1ull<<42) +# define UI_BoxFlag_DrawFadeBottom (UI_BoxFlags)(1ull<<43) +# define UI_BoxFlag_DrawFadeLeft (UI_BoxFlags)(1ull<<44) +# define UI_BoxFlag_DrawFadeRight (UI_BoxFlags)(1ull<<45) +# define UI_BoxFlag_Clip (UI_BoxFlags)(1ull<<46) +# define UI_BoxFlag_AnimatePosX (UI_BoxFlags)(1ull<<47) +# define UI_BoxFlag_AnimatePosY (UI_BoxFlags)(1ull<<48) +# define UI_BoxFlag_DisableTextTrunc (UI_BoxFlags)(1ull<<49) +# define UI_BoxFlag_DisableIDString (UI_BoxFlags)(1ull<<50) +# define UI_BoxFlag_DisableFocusBorder (UI_BoxFlags)(1ull<<51) +# define UI_BoxFlag_DisableFocusOverlay (UI_BoxFlags)(1ull<<52) +# define UI_BoxFlag_HasDisplayString (UI_BoxFlags)(1ull<<53) +# define UI_BoxFlag_HasFuzzyMatchRanges (UI_BoxFlags)(1ull<<54) +# define UI_BoxFlag_RoundChildrenByParent (UI_BoxFlags)(1ull<<55) +# define UI_BoxFlag_SquishAnchored (UI_BoxFlags)(1ull<<56) //- rjf: debug -# define UI_BoxFlag_Debug (UI_BoxFlags)(1ull<<53) +# define UI_BoxFlag_Debug (UI_BoxFlags)(1ull<<63) //- rjf: bundles # define UI_BoxFlag_Clickable (UI_BoxFlag_MouseClickable|UI_BoxFlag_KeyboardClickable) @@ -388,7 +393,7 @@ struct UI_Box Vec2F32 min_size; UI_Size pref_size[Axis2_COUNT]; Axis2 child_layout_axis; - OS_Cursor hover_cursor; + WM_Cursor hover_cursor; U32 fastpath_codepoint; UI_Key group_key; DR_Bucket *draw_bucket; @@ -523,7 +528,7 @@ typedef struct UI_Signal UI_Signal; struct UI_Signal { UI_Box *box; - OS_Modifiers event_flags; + WM_Modifiers event_flags; Vec2S16 scroll; UI_SignalFlags f; }; @@ -704,7 +709,7 @@ struct UI_State UI_IconInfo icon_info; UI_Theme *theme; UI_AnimationInfo animation_info; - OS_Handle window; + WM_Window window; UI_EventList *events; Vec2F32 mouse; F32 animation_dt; @@ -825,7 +830,7 @@ internal UI_State *ui_get_selected_state(void); //- rjf: per-frame info internal Arena * ui_build_arena(void); -internal OS_Handle ui_window(void); +internal WM_Window ui_window(void); internal Vec2F32 ui_mouse(void); internal FNT_Tag ui_icon_font(void); internal String8 ui_icon_string_from_kind(UI_IconKind icon_kind); @@ -836,8 +841,8 @@ internal B32 ui_next_event(UI_Event **ev); internal void ui_eat_event(UI_Event *ev); //- rjf: event consumption helpers -internal B32 ui_key_press(OS_Modifiers mods, OS_Key key); -internal B32 ui_key_release(OS_Modifiers mods, OS_Key key); +internal B32 ui_key_press(WM_Modifiers mods, WM_Key key); +internal B32 ui_key_release(WM_Modifiers mods, WM_Key key); internal B32 ui_text(U32 character); internal B32 ui_slot_press(UI_EventActionSlot slot); @@ -872,7 +877,7 @@ internal UI_Box * ui_box_from_key(UI_Key key); //////////////////////////////// //~ rjf: Top-Level Building API -internal void ui_begin_build(OS_Handle window, UI_EventList *events, UI_IconInfo *icon_info, UI_Theme *theme, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt); +internal void ui_begin_build(WM_Window window, UI_EventList *events, UI_IconInfo *icon_info, UI_Theme *theme, UI_AnimationInfo *animation_info, F32 real_dt, F32 animation_dt); internal void ui_end_build(void); internal void ui_calc_sizes_standalone__in_place(UI_Box *root, Axis2 axis); internal void ui_calc_sizes_upwards_dependent__in_place(UI_Box *root, Axis2 axis); @@ -984,7 +989,7 @@ internal Vec4F32 ui_top_background_color(void); internal Vec4F32 ui_top_text_color(void); internal Vec4F32 ui_top_border_color(void); internal F32 ui_top_squish(void); -internal OS_Cursor ui_top_hover_cursor(void); +internal WM_Cursor ui_top_hover_cursor(void); internal FNT_Tag ui_top_font(void); internal F32 ui_top_font_size(void); internal FNT_RasterFlags ui_top_text_raster_flags(void); @@ -1019,7 +1024,7 @@ internal Vec4F32 ui_bottom_background_color(void); internal Vec4F32 ui_bottom_text_color(void); internal Vec4F32 ui_bottom_border_color(void); internal F32 ui_bottom_squish(void); -internal OS_Cursor ui_bottom_hover_cursor(void); +internal WM_Cursor ui_bottom_hover_cursor(void); internal FNT_Tag ui_bottom_font(void); internal F32 ui_bottom_font_size(void); internal FNT_RasterFlags ui_bottom_text_raster_flags(void); @@ -1054,7 +1059,7 @@ internal Vec4F32 ui_push_background_color(Vec4F32 v); internal Vec4F32 ui_push_text_color(Vec4F32 v); internal Vec4F32 ui_push_border_color(Vec4F32 v); internal F32 ui_push_squish(F32 v); -internal OS_Cursor ui_push_hover_cursor(OS_Cursor v); +internal WM_Cursor ui_push_hover_cursor(WM_Cursor v); internal FNT_Tag ui_push_font(FNT_Tag v); internal F32 ui_push_font_size(F32 v); internal FNT_RasterFlags ui_push_text_raster_flags(FNT_RasterFlags v); @@ -1089,7 +1094,7 @@ internal Vec4F32 ui_pop_background_color(void); internal Vec4F32 ui_pop_text_color(void); internal Vec4F32 ui_pop_border_color(void); internal F32 ui_pop_squish(void); -internal OS_Cursor ui_pop_hover_cursor(void); +internal WM_Cursor ui_pop_hover_cursor(void); internal FNT_Tag ui_pop_font(void); internal F32 ui_pop_font_size(void); internal FNT_RasterFlags ui_pop_text_raster_flags(void); @@ -1124,7 +1129,7 @@ internal Vec4F32 ui_set_next_background_color(Vec4F32 v); internal Vec4F32 ui_set_next_text_color(Vec4F32 v); internal Vec4F32 ui_set_next_border_color(Vec4F32 v); internal F32 ui_set_next_squish(F32 v); -internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v); +internal WM_Cursor ui_set_next_hover_cursor(WM_Cursor v); internal FNT_Tag ui_set_next_font(FNT_Tag v); internal F32 ui_set_next_font_size(F32 v); internal FNT_RasterFlags ui_set_next_text_raster_flags(FNT_RasterFlags v); diff --git a/src/regs/rdi/generated/regs_rdi.meta.h b/src/unwind/generated/unwind.meta.c similarity index 60% rename from src/regs/rdi/generated/regs_rdi.meta.h rename to src/unwind/generated/unwind.meta.c index b5d77852..0378fad9 100644 --- a/src/regs/rdi/generated/regs_rdi.meta.h +++ b/src/unwind/generated/unwind.meta.c @@ -1,9 +1,5 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -#ifndef REGS_RDI_META_H -#define REGS_RDI_META_H - -#endif // REGS_RDI_META_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + diff --git a/src/unwind/generated/unwind.meta.h b/src/unwind/generated/unwind.meta.h new file mode 100644 index 00000000..fa4831f6 --- /dev/null +++ b/src/unwind/generated/unwind.meta.h @@ -0,0 +1,21 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef UNWIND_META_H +#define UNWIND_META_H + +typedef enum UWND_Unwinder +{ +UWND_Unwinder_Null, +UWND_Unwinder_PEx64, +UWND_Unwinder_EHFrame, +UWND_Unwinder_COUNT, +} UWND_Unwinder; + +#define UWND_Unwinder_XList \ +X(PEx64, pe_x64)\ +X(EHFrame, eh)\ + +#endif // UNWIND_META_H diff --git a/src/unwind/unwind.c b/src/unwind/unwind.c new file mode 100644 index 00000000..96a2d8f7 --- /dev/null +++ b/src/unwind/unwind.c @@ -0,0 +1,59 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Generated Code + +#include "unwind/generated/unwind.meta.c" + +//////////////////////////////// +//~ rjf: Moduleless Unwinder + +internal UWND_StepResult +uwnd_step_moduleless(Arch arch, MemoryMap *memory_map, void *regs) +{ + UWND_StepResult result = {UWND_StepStatus_Error}; + { + B32 done = 0; + ARCH_Info *arch_info = arch_info_from_arch(arch); + U64 addr_size = byte_size_from_arch(arch); + + // rjf: read new ip from stack pointer + U64 sp = arch_sp_from_reg_block(arch_info, regs); + U64 new_ip = 0; + Rng1U64 new_ip_vaddr_range = r1u64(sp, sp+addr_size); + if(memory_map_read(memory_map, new_ip_vaddr_range, &new_ip) != addr_size) + { + done = 1; + result.status = UWND_StepStatus_FailedMemoryRead; + result.missed_read_vaddr_range = new_ip_vaddr_range; + } + + // rjf: commit + if(!done) + { + U64 new_sp = sp+addr_size; + arch_reg_block_write_ip(arch_info, regs, new_ip); + arch_reg_block_write_sp(arch_info, regs, new_sp); + result.status = UWND_StepStatus_Good; + } + } + return result; +} + +//////////////////////////////// +//~ rjf: Abstracted Unwind Step Functions + +internal UWND_StepResult +uwnd_step(UWND_Unwinder unwinder, Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info, U64 tls_vaddr, void *regs, U64 *cfa_out) +{ + UWND_StepResult result = {UWND_StepStatus_Error}; + switch(unwinder) + { + default:{result = uwnd_step_moduleless(arch, memory_map, regs);}break; +#define X(name, namespace_lower) case UWND_Unwinder_##name:{result = namespace_lower##_uwnd_step(arch, memory_map, module_info, tls_vaddr, regs, cfa_out);}break; + UWND_Unwinder_XList +#undef X + } + return result; +} diff --git a/src/unwind/unwind.h b/src/unwind/unwind.h new file mode 100644 index 00000000..72e1789e --- /dev/null +++ b/src/unwind/unwind.h @@ -0,0 +1,50 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef UNWIND_H +#define UNWIND_H + +//////////////////////////////// +//~ rjf: Generated Code + +#include "unwind/generated/unwind.meta.h" + +//////////////////////////////// +//~ rjf: Unwind Artifact Types + +typedef enum UWND_StepStatus +{ + UWND_StepStatus_Error, + UWND_StepStatus_FailedMemoryRead, + UWND_StepStatus_Good, +} +UWND_StepStatus; + +typedef struct UWND_StepResult UWND_StepResult; +struct UWND_StepResult +{ + UWND_StepStatus status; + Rng1U64 missed_read_vaddr_range; +}; + +//////////////////////////////// +//~ rjf: Module Info + +typedef struct UWND_ModuleInfo UWND_ModuleInfo; +struct UWND_ModuleInfo +{ + U64 base_vaddr; + void *unwind_info; +}; + +//////////////////////////////// +//~ rjf: Moduleless Unwinder + +internal UWND_StepResult uwnd_step_moduleless(Arch arch, MemoryMap *memory_map, void *regs); + +//////////////////////////////// +//~ rjf: Abstracted Unwind Step Functions + +internal UWND_StepResult uwnd_step(UWND_Unwinder unwinder, Arch arch, MemoryMap *memory_map, UWND_ModuleInfo *module_info, U64 tls_vaddr, void *regs, U64 *cfa_out); + +#endif // UNWIND_H diff --git a/src/unwind/unwind.mdesk b/src/unwind/unwind.mdesk new file mode 100644 index 00000000..2617c1cb --- /dev/null +++ b/src/unwind/unwind.mdesk @@ -0,0 +1,21 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@table(name namespace_lower) +UWND_UnwinderTable: +{ + {PEx64 pe_x64 } + {EHFrame eh } +} + +@enum UWND_Unwinder: +{ + Null, + @expand(UWND_UnwinderTable a) `$(a.name)`, + COUNT +} + +@xlist UWND_Unwinder_XList: +{ + @expand(UWND_UnwinderTable a) `$(a.name), $(a.namespace_lower)` +} diff --git a/src/unwind/unwind_inc.c b/src/unwind/unwind_inc.c new file mode 100644 index 00000000..52509304 --- /dev/null +++ b/src/unwind/unwind_inc.c @@ -0,0 +1,10 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "unwind.c" +#if defined(PE_H) && defined(X64_H) +# include "pe/x64/unwind/pe_x64_unwind.c" +#endif +#if defined(EH_FRAME_H) +# include "eh_frame/unwind/eh_frame_unwind.c" +#endif diff --git a/src/unwind/unwind_inc.h b/src/unwind/unwind_inc.h new file mode 100644 index 00000000..4a9b25c3 --- /dev/null +++ b/src/unwind/unwind_inc.h @@ -0,0 +1,15 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef UNWIND_INC_H +#define UNWIND_INC_H + +#include "unwind.h" +#if defined(PE_H) && defined(X64_H) +# include "pe/x64/unwind/pe_x64_unwind.h" +#endif +#if defined(EH_FRAME_H) +# include "eh_frame/unwind/eh_frame_unwind.h" +#endif + +#endif // UNWIND_INC_H diff --git a/src/os/core/win32/os_core_win32.c b/src/win32/base/win32_base.c similarity index 67% rename from src/os/core/win32/os_core_win32.c rename to src/win32/base/win32_base.c index 6e681f0e..d2f9171a 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/win32/base/win32_base.c @@ -1,1868 +1,1973 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Modern Windows SDK Functions -// -// (We must dynamically link to them, since they can be missing in older SDKs) - -typedef HRESULT W32_SetThreadDescription_Type(HANDLE hThread, PCWSTR lpThreadDescription); -global W32_SetThreadDescription_Type *w32_SetThreadDescription_func = 0; -global RIO_EXTENSION_FUNCTION_TABLE w32_rio_functions = {0}; - -//////////////////////////////// -//~ rjf: File Info Conversion Helpers - -internal FilePropertyFlags -os_w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes) -{ - FilePropertyFlags flags = 0; - if(dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - flags |= FilePropertyFlag_IsFolder; - } - return flags; -} - -internal void -os_w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes) -{ - properties->size = Compose64Bit(attributes->nFileSizeHigh, attributes->nFileSizeLow); - os_w32_dense_time_from_file_time(&properties->created, &attributes->ftCreationTime); - os_w32_dense_time_from_file_time(&properties->modified, &attributes->ftLastWriteTime); - properties->flags = os_w32_file_property_flags_from_dwFileAttributes(attributes->dwFileAttributes); -} - -//////////////////////////////// -//~ rjf: Time Conversion Helpers - -internal void -os_w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in) -{ - out->year = in->wYear; - out->mon = in->wMonth - 1; - out->wday = in->wDayOfWeek; - out->day = in->wDay; - out->hour = in->wHour; - out->min = in->wMinute; - out->sec = in->wSecond; - out->msec = in->wMilliseconds; -} - -internal void -os_w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in) -{ - out->wYear = (WORD)(in->year); - out->wMonth = in->mon + 1; - out->wDay = in->day; - out->wHour = in->hour; - out->wMinute = in->min; - out->wSecond = in->sec; - out->wMilliseconds = in->msec; -} - -internal void -os_w32_dense_time_from_file_time(DenseTime *out, FILETIME *in) -{ - SYSTEMTIME systime = {0}; - FileTimeToSystemTime(in, &systime); - DateTime date_time = {0}; - os_w32_date_time_from_system_time(&date_time, &systime); - *out = dense_time_from_date_time(date_time); -} - -internal U32 -os_w32_sleep_ms_from_endt_us(U64 endt_us) -{ - U32 sleep_ms = 0; - if(endt_us == max_U64) - { - sleep_ms = INFINITE; - } - else - { - U64 begint = os_now_microseconds(); - if(begint < endt_us) - { - U64 sleep_us = endt_us - begint; - sleep_ms = (U32)((sleep_us + 999)/1000); - } - } - return sleep_ms; -} - -internal U32 -os_w32_unix_time_from_file_time(FILETIME file_time) -{ - U64 win32_time = ((U64)file_time.dwHighDateTime << 32) | file_time.dwLowDateTime; - U64 unix_time64 = ((win32_time - 0x19DB1DED53E8000ULL) / 10000000); - - Assert(unix_time64 <= max_U32); - U32 unix_time32 = (U32)unix_time64; - - return unix_time32; -} - -//////////////////////////////// -//~ rjf: Entity Functions - -internal OS_W32_Entity * -os_w32_entity_alloc(OS_W32_EntityKind kind) -{ - OS_W32_Entity *result = 0; - EnterCriticalSection(&os_w32_state.entity_mutex); - { - result = os_w32_state.entity_free; - if(result) - { - SLLStackPop(os_w32_state.entity_free); - } - else - { - result = push_array_no_zero(os_w32_state.entity_arena, OS_W32_Entity, 1); - } - MemoryZeroStruct(result); - } - LeaveCriticalSection(&os_w32_state.entity_mutex); - result->kind = kind; - return result; -} - -internal void -os_w32_entity_release(OS_W32_Entity *entity) -{ - entity->kind = OS_W32_EntityKind_Null; - EnterCriticalSection(&os_w32_state.entity_mutex); - SLLStackPush(os_w32_state.entity_free, entity); - LeaveCriticalSection(&os_w32_state.entity_mutex); -} - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal DWORD -os_w32_thread_entry_point(void *ptr) -{ - OS_W32_Entity *entity = (OS_W32_Entity *)ptr; - ThreadEntryPointFunctionType *func = entity->thread.func; - void *thread_ptr = entity->thread.ptr; - supplement_thread_base_entry_point(func, thread_ptr); - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks System/Process Info (Implemented Per-OS) - -internal OS_SystemInfo * -os_get_system_info(void) -{ - return &os_w32_state.system_info; -} - -internal OS_ProcessInfo * -os_get_process_info(void) -{ - return &os_w32_state.process_info; -} - -internal String8 -os_get_current_path(Arena *arena) -{ - Temp scratch = scratch_begin(&arena, 1); - DWORD length = GetCurrentDirectoryW(0, 0); - U16 *memory = push_array_no_zero(scratch.arena, U16, length + 1); - length = GetCurrentDirectoryW(length + 1, (WCHAR*)memory); - String8 name = str8_from_16(arena, str16(memory, length)); - scratch_end(scratch); - return name; -} - -internal U32 -os_get_process_start_time_unix(void) -{ - HANDLE handle = GetCurrentProcess(); - FILETIME start_time = {0}; - FILETIME exit_time; - FILETIME kernel_time; - FILETIME user_time; - if(GetProcessTimes(handle, &start_time, &exit_time, &kernel_time, &user_time)) - { - return os_w32_unix_time_from_file_time(start_time); - } - return 0; -} - -//////////////////////////////// -//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS) - -//- rjf: basic - -internal void * -os_reserve(U64 size) -{ - void *result = VirtualAlloc(0, size, MEM_RESERVE, PAGE_READWRITE); - return result; -} - -internal B32 -os_commit(void *ptr, U64 size) -{ - B32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); - w32_rio_functions.RIODeregisterBuffer(w32_rio_functions.RIORegisterBuffer(ptr, size)); - return result; -} - -internal void -os_decommit(void *ptr, U64 size) -{ - VirtualFree(ptr, size, MEM_DECOMMIT); -} - -internal void -os_release(void *ptr, U64 size) -{ - // NOTE(rjf): size not used - not necessary on Windows, but necessary for other OSes. - VirtualFree(ptr, 0, MEM_RELEASE); -} - -//- rjf: large pages - -internal void * -os_reserve_large(U64 size) -{ - // we commit on reserve because windows - void *result = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_LARGE_PAGES, PAGE_READWRITE); - return result; -} - -internal B32 -os_commit_large(void *ptr, U64 size) -{ - return 1; -} - -//////////////////////////////// -//~ rjf: @os_hooks Thread Info (Implemented Per-OS) - -internal U32 -os_tid(void) -{ - DWORD id = GetCurrentThreadId(); - return (U32)id; -} - -internal void -os_set_thread_name(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - - // rjf: windows 10 style - if(w32_SetThreadDescription_func) - { - String16 name16 = str16_from_8(scratch.arena, name); - HRESULT hr = w32_SetThreadDescription_func(GetCurrentThread(), (WCHAR*)name16.str); - } - - // rjf: raise-exception style - { - String8 name_copy = push_str8_copy(scratch.arena, name); -#pragma pack(push,8) - typedef struct THREADNAME_INFO THREADNAME_INFO; - struct THREADNAME_INFO - { - U32 dwType; // Must be 0x1000. - char *szName; // Pointer to name (in user addr space). - U32 dwThreadID; // Thread ID (-1=caller thread). - U32 dwFlags; // Reserved for future use, must be zero. - }; -#pragma pack(pop) - THREADNAME_INFO info; - info.dwType = 0x1000; - info.szName = (char *)name_copy.str; - info.dwThreadID = os_tid(); - info.dwFlags = 0; -#pragma warning(push) -#pragma warning(disable: 6320 6322) - __try - { - RaiseException(0x406D1388, 0, sizeof(info) / sizeof(void *), (const ULONG_PTR *)&info); - } - __except (EXCEPTION_EXECUTE_HANDLER) - { - } -#pragma warning(pop) - } - - scratch_end(scratch); -} - -//////////////////////////////// -//~ rjf: @os_hooks Aborting (Implemented Per-OS) - -internal void -os_abort(S32 exit_code) -{ - ExitProcess(exit_code); -} - -//////////////////////////////// -//~ rjf: @os_hooks File System (Implemented Per-OS) - -//- rjf: files - -internal OS_Handle -os_file_open(OS_AccessFlags flags, String8 path) -{ - OS_Handle result = {0}; - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD access_flags = 0; - DWORD share_mode = 0; - DWORD creation_disposition = OPEN_EXISTING; - SECURITY_ATTRIBUTES security_attributes = {sizeof(security_attributes), 0, 0}; - if(flags & OS_AccessFlag_Read) {access_flags |= GENERIC_READ;} - if(flags & OS_AccessFlag_Write) {access_flags |= GENERIC_WRITE;} - if(flags & OS_AccessFlag_Execute) {access_flags |= GENERIC_EXECUTE;} - if(flags & OS_AccessFlag_ShareRead) {share_mode |= FILE_SHARE_READ;} - if(flags & OS_AccessFlag_ShareWrite) {share_mode |= FILE_SHARE_WRITE|FILE_SHARE_DELETE;} - if(flags & OS_AccessFlag_Write) {creation_disposition = CREATE_ALWAYS;} - if(flags & OS_AccessFlag_Append) {creation_disposition = OPEN_ALWAYS; access_flags |= FILE_APPEND_DATA; } - if(flags & OS_AccessFlag_Inherited) - { - security_attributes.bInheritHandle = 1; - } - HANDLE file = CreateFileW((WCHAR *)path16.str, access_flags, share_mode, &security_attributes, creation_disposition, FILE_ATTRIBUTE_NORMAL, 0); - if(file != INVALID_HANDLE_VALUE) - { - result.u64[0] = (U64)file; - } - else - { - DWORD err = GetLastError(); - (void)err; - } - scratch_end(scratch); - return result; -} - -internal void -os_file_close(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { return; } - HANDLE handle = (HANDLE)file.u64[0]; - BOOL result = CloseHandle(handle); - (void)result; -} - -internal U64 -os_file_read(OS_Handle file, Rng1U64 rng, void *out_data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - HANDLE handle = (HANDLE)file.u64[0]; - - // rjf: clamp range by file size - U64 size = 0; - GetFileSizeEx(handle, (LARGE_INTEGER *)&size); - Rng1U64 rng_clamped = r1u64(ClampTop(rng.min, size), ClampTop(rng.max, size)); - U64 total_read_size = 0; - - // rjf: read loop - { - U64 to_read = dim_1u64(rng_clamped); - for(U64 off = rng.min; total_read_size < to_read;) - { - U64 amt64 = to_read - total_read_size; - U32 amt32 = u32_from_u64_saturate(amt64); - DWORD read_size = 0; - OVERLAPPED overlapped = {0}; - overlapped.Offset = (off&0x00000000ffffffffull); - overlapped.OffsetHigh = (off&0xffffffff00000000ull) >> 32; - ReadFile(handle, (U8 *)out_data + total_read_size, amt32, &read_size, &overlapped); - off += read_size; - total_read_size += read_size; - if(read_size != amt32) - { - break; - } - } - } - - return total_read_size; -} - -internal U64 -os_file_write(OS_Handle file, Rng1U64 rng, void *data) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - HANDLE win_handle = (HANDLE)file.u64[0]; - U64 src_off = 0; - U64 dst_off = rng.min; - U64 total_write_size = dim_1u64(rng); - for(;;) - { - void *bytes_src = (U8 *)data + src_off; - U64 bytes_left = total_write_size - src_off; - DWORD write_size = Min(MB(1), bytes_left); - DWORD bytes_written = 0; - OVERLAPPED overlapped = {0}; - overlapped.Offset = (dst_off&0x00000000ffffffffull); - overlapped.OffsetHigh = (dst_off&0xffffffff00000000ull) >> 32; - BOOL success = WriteFile(win_handle, bytes_src, write_size, &bytes_written, &overlapped); - if(success == 0) - { - break; - } - src_off += bytes_written; - dst_off += bytes_written; - if(bytes_left == 0) - { - break; - } - } - return src_off; -} - -internal B32 -os_file_set_time(OS_Handle file, DateTime time) -{ - if(os_handle_match(file, os_handle_zero())) { return 0; } - B32 result = 0; - HANDLE handle = (HANDLE)file.u64[0]; - SYSTEMTIME system_time = {0}; - os_w32_system_time_from_date_time(&system_time, &time); - FILETIME file_time = {0}; - result = (SystemTimeToFileTime(&system_time, &file_time) && - SetFileTime(handle, &file_time, &file_time, &file_time)); - return result; -} - -internal FileProperties -os_properties_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { FileProperties r = {0}; return r; } - FileProperties props = {0}; - HANDLE handle = (HANDLE)file.u64[0]; - BY_HANDLE_FILE_INFORMATION info; - BOOL info_good = GetFileInformationByHandle(handle, &info); - if(info_good) - { - U32 size_lo = info.nFileSizeLow; - U32 size_hi = info.nFileSizeHigh; - props.size = (U64)size_lo | (((U64)size_hi)<<32); - os_w32_dense_time_from_file_time(&props.modified, &info.ftLastWriteTime); - os_w32_dense_time_from_file_time(&props.created, &info.ftCreationTime); - props.flags = os_w32_file_property_flags_from_dwFileAttributes(info.dwFileAttributes); - } - return props; -} - -internal OS_FileID -os_id_from_file(OS_Handle file) -{ - if(os_handle_match(file, os_handle_zero())) { OS_FileID r = {0}; return r; } - OS_FileID result = {0}; - HANDLE handle = (HANDLE)file.u64[0]; - BY_HANDLE_FILE_INFORMATION info; - BOOL is_ok = GetFileInformationByHandle(handle, &info); - if(is_ok) - { - result.v[0] = info.dwVolumeSerialNumber; - result.v[1] = info.nFileIndexLow; - result.v[2] = info.nFileIndexHigh; - } - return result; -} - -internal B32 -os_file_reserve_size(OS_Handle file, U64 size) -{ - HANDLE handle = (HANDLE)file.u64[0]; - - FILE_ALLOCATION_INFO alloc_info = {0}; - alloc_info.AllocationSize.LowPart = size & max_U32; - alloc_info.AllocationSize.HighPart = (size >> 32) & max_U32; - - BOOL is_reserved = SetFileInformationByHandle(handle, FileAllocationInfo, &alloc_info, sizeof(alloc_info)); - return is_reserved; -} - -internal B32 -os_delete_file_at_path(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - B32 result = DeleteFileW((WCHAR*)path16.str); - scratch_end(scratch); - return result; -} - -internal B32 -os_copy_file_path(String8 dst, String8 src) -{ - Temp scratch = scratch_begin(0, 0); - String16 dst16 = str16_from_8(scratch.arena, dst); - String16 src16 = str16_from_8(scratch.arena, src); - B32 result = CopyFileW((WCHAR*)src16.str, (WCHAR*)dst16.str, 0); - scratch_end(scratch); - return result; -} - -internal B32 -os_move_file_path(String8 dst, String8 src) -{ - Temp scratch = scratch_begin(0, 0); - String16 dst16 = str16_from_8(scratch.arena, dst); - String16 src16 = str16_from_8(scratch.arena, src); - B32 result = MoveFileW((WCHAR*)src16.str, (WCHAR*)dst16.str); - scratch_end(scratch); - return result; -} - -internal String8 -os_full_path_from_path(Arena *arena, String8 path) -{ - Temp scratch = scratch_begin(&arena, 1); - DWORD buffer_size = Max(MAX_PATH, path.size * 2) + 1; - String16 path16 = str16_from_8(scratch.arena, path); - WCHAR *buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); - DWORD path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); - if(path16_size > buffer_size) - { - arena_pop(scratch.arena, buffer_size); - buffer_size = path16_size + 1; - buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); - path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); - } - String8 full_path = str8_from_16(arena, str16((U16*)buffer, path16_size)); - scratch_end(scratch); - return full_path; -} - -internal B32 -os_file_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0,0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); - B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && !!(~attributes & FILE_ATTRIBUTE_DIRECTORY); - scratch_end(scratch); - return exists; -} - -internal B32 -os_folder_path_exists(String8 path) -{ - Temp scratch = scratch_begin(0,0); - String16 path16 = str16_from_8(scratch.arena, path); - DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); - B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && (attributes & FILE_ATTRIBUTE_DIRECTORY); - scratch_end(scratch); - return exists; -} - -internal FileProperties -os_properties_from_file_path(String8 path) -{ - WIN32_FIND_DATAW find_data = {0}; - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - HANDLE handle = FindFirstFileW((WCHAR *)path16.str, &find_data); - FileProperties props = {0}; - if(handle != INVALID_HANDLE_VALUE) - { - props.size = Compose64Bit(find_data.nFileSizeHigh, find_data.nFileSizeLow); - os_w32_dense_time_from_file_time(&props.created, &find_data.ftCreationTime); - os_w32_dense_time_from_file_time(&props.modified, &find_data.ftLastWriteTime); - props.flags = os_w32_file_property_flags_from_dwFileAttributes(find_data.dwFileAttributes); - } - else - { - Temp scratch = scratch_begin(0, 0); - WCHAR buffer[512] = {0}; - DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); - U64 last_slash_pos = 0; - for(;last_slash_pos < path.size; last_slash_pos = str8_find_needle(path, last_slash_pos+1, str8_lit("/"), StringMatchFlag_SlashInsensitive)); - String8 path_trimmed = str8_prefix(path, last_slash_pos); - for(U64 off = 0; off < (U64)length;) - { - String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); - off += next_drive_string_16.size+1; - String8 next_drive_string = str8_from_16(scratch.arena, next_drive_string_16); - next_drive_string = str8_chop_last_slash(next_drive_string); - if(str8_match(path_trimmed, next_drive_string, StringMatchFlag_CaseInsensitive)) - { - props.flags |= FilePropertyFlag_IsFolder; - break; - } - } - scratch_end(scratch); - } - FindClose(handle); - scratch_end(scratch); - return props; -} - -//- rjf: file maps - -internal OS_Handle -os_file_map_open(OS_AccessFlags flags, OS_Handle file) -{ - OS_Handle map = {0}; - { - HANDLE file_handle = (HANDLE)file.u64[0]; - DWORD protect_flags = 0; - { - switch(flags) - { - default:{}break; - case OS_AccessFlag_Read: - {protect_flags = PAGE_READONLY;}break; - case OS_AccessFlag_Write: - case OS_AccessFlag_Read|OS_AccessFlag_Write: - {protect_flags = PAGE_READWRITE;}break; - case OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Execute: - {protect_flags = PAGE_EXECUTE_READ;}break; - case OS_AccessFlag_Execute|OS_AccessFlag_Write|OS_AccessFlag_Read: - case OS_AccessFlag_Execute|OS_AccessFlag_Write: - {protect_flags = PAGE_EXECUTE_READWRITE;}break; - } - } - HANDLE map_handle = CreateFileMappingA(file_handle, 0, protect_flags, 0, 0, 0); - map.u64[0] = (U64)map_handle; - } - return map; -} - -internal void -os_file_map_close(OS_Handle map) -{ - HANDLE handle = (HANDLE)map.u64[0]; - BOOL result = CloseHandle(handle); - (void)result; -} - -internal void * -os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range) -{ - HANDLE handle = (HANDLE)map.u64[0]; - U32 off_lo = (U32)((range.min&0x00000000ffffffffull)>>0); - U32 off_hi = (U32)((range.min&0xffffffff00000000ull)>>32); - U64 size = dim_1u64(range); - DWORD access_flags = 0; - { - switch(flags) - { - default:{}break; - case OS_AccessFlag_Read: - { - access_flags = FILE_MAP_READ; - }break; - case OS_AccessFlag_Write: - { - access_flags = FILE_MAP_WRITE; - }break; - case OS_AccessFlag_Read|OS_AccessFlag_Write: - { - access_flags = FILE_MAP_ALL_ACCESS; - }break; - case OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Execute: - case OS_AccessFlag_Write|OS_AccessFlag_Execute: - case OS_AccessFlag_Read|OS_AccessFlag_Write|OS_AccessFlag_Execute: - { - access_flags = FILE_MAP_ALL_ACCESS|FILE_MAP_EXECUTE; - }break; - } - } - void *result = MapViewOfFile(handle, access_flags, off_hi, off_lo, size); - return result; -} - -internal void -os_file_map_view_close(OS_Handle map, void *ptr, Rng1U64 range) -{ - BOOL result = UnmapViewOfFile(ptr); - (void)result; -} - -//- rjf: directory iteration - -internal OS_FileIter * -os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags) -{ - Temp scratch = scratch_begin(&arena, 1); - String8 path_with_wildcard = push_str8_cat(scratch.arena, path, str8_lit("\\*")); - String16 path16 = str16_from_8(scratch.arena, path_with_wildcard); - OS_FileIter *iter = push_array(arena, OS_FileIter, 1); - iter->flags = flags; - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - if(path.size == 0) - { - w32_iter->is_volume_iter = 1; - WCHAR buffer[512] = {0}; - DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); - String8List drive_strings = {0}; - for(U64 off = 0; off < (U64)length;) - { - String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); - off += next_drive_string_16.size+1; - String8 next_drive_string = str8_from_16(arena, next_drive_string_16); - next_drive_string = str8_chop_last_slash(next_drive_string); - str8_list_push(scratch.arena, &drive_strings, next_drive_string); - } - w32_iter->drive_strings = str8_array_from_list(arena, &drive_strings); - w32_iter->drive_strings_iter_idx = 0; - } - else - { - w32_iter->handle = FindFirstFileExW((WCHAR*)path16.str, FindExInfoBasic, &w32_iter->find_data, FindExSearchNameMatch, 0, FIND_FIRST_EX_LARGE_FETCH); - } - scratch_end(scratch); - return iter; -} - -internal B32 -os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out) -{ - B32 result = 0; - OS_FileIterFlags flags = iter->flags; - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - switch(w32_iter->is_volume_iter) - { - //- rjf: file iteration - default: - case 0: - { - if (!(flags & OS_FileIterFlag_Done) && w32_iter->handle != INVALID_HANDLE_VALUE) - { - do - { - // check is usable - B32 usable_file = 1; - - WCHAR *file_name = w32_iter->find_data.cFileName; - DWORD attributes = w32_iter->find_data.dwFileAttributes; - if (file_name[0] == '.'){ - if (flags & OS_FileIterFlag_SkipHiddenFiles){ - usable_file = 0; - } - else if (file_name[1] == 0){ - usable_file = 0; - } - else if (file_name[1] == '.' && file_name[2] == 0){ - usable_file = 0; - } - } - if (attributes & FILE_ATTRIBUTE_DIRECTORY){ - if (flags & OS_FileIterFlag_SkipFolders){ - usable_file = 0; - } - } - else{ - if (flags & OS_FileIterFlag_SkipFiles){ - usable_file = 0; - } - } - - // emit if usable - if (usable_file){ - info_out->name = str8_from_16(arena, str16_cstring((U16*)file_name)); - info_out->props.size = (U64)w32_iter->find_data.nFileSizeLow | (((U64)w32_iter->find_data.nFileSizeHigh)<<32); - os_w32_dense_time_from_file_time(&info_out->props.created, &w32_iter->find_data.ftCreationTime); - os_w32_dense_time_from_file_time(&info_out->props.modified, &w32_iter->find_data.ftLastWriteTime); - info_out->props.flags = os_w32_file_property_flags_from_dwFileAttributes(attributes); - result = 1; - if (!FindNextFileW(w32_iter->handle, &w32_iter->find_data)){ - iter->flags |= OS_FileIterFlag_Done; - } - break; - } - }while(FindNextFileW(w32_iter->handle, &w32_iter->find_data)); - } - }break; - - //- rjf: volume iteration - case 1: - { - result = w32_iter->drive_strings_iter_idx < w32_iter->drive_strings.count; - if(result != 0) - { - MemoryZeroStruct(info_out); - info_out->name = w32_iter->drive_strings.v[w32_iter->drive_strings_iter_idx]; - info_out->props.flags |= FilePropertyFlag_IsFolder; - w32_iter->drive_strings_iter_idx += 1; - } - }break; - } - if(!result) - { - iter->flags |= OS_FileIterFlag_Done; - } - return result; -} - -internal void -os_file_iter_end(OS_FileIter *iter) -{ - OS_W32_FileIter *w32_iter = (OS_W32_FileIter*)iter->memory; - HANDLE zero_handle; - MemoryZeroStruct(&zero_handle); - if(!MemoryMatchStruct(&zero_handle, &w32_iter->handle)) - { - FindClose(w32_iter->handle); - } -} - -//- rjf: directory creation - -internal B32 -os_make_directory(String8 path) -{ - B32 result = 0; - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, path); - WIN32_FILE_ATTRIBUTE_DATA attributes = {0}; - GetFileAttributesExW((WCHAR*)name16.str, GetFileExInfoStandard, &attributes); - if(attributes.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) - { - result = 1; - } - else if(CreateDirectoryW((WCHAR*)name16.str, 0)) - { - result = 1; - } - scratch_end(scratch); - return(result); -} - -//////////////////////////////// -//~ rjf: @os_hooks Shared Memory (Implemented Per-OS) - -internal OS_Handle -os_shared_memory_alloc(U64 size, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE file = CreateFileMappingW(INVALID_HANDLE_VALUE, - 0, - PAGE_READWRITE, - (U32)((size & 0xffffffff00000000) >> 32), - (U32)((size & 0x00000000ffffffff)), - (WCHAR *)name16.str); - OS_Handle result = {(U64)file}; - scratch_end(scratch); - return result; -} - -internal OS_Handle -os_shared_memory_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE file = OpenFileMappingW(FILE_MAP_ALL_ACCESS, 0, (WCHAR *)name16.str); - OS_Handle result = {(U64)file}; - scratch_end(scratch); - return result; -} - -internal void -os_shared_memory_close(OS_Handle handle) -{ - HANDLE file = (HANDLE)(handle.u64[0]); - CloseHandle(file); -} - -internal void * -os_shared_memory_view_open(OS_Handle handle, Rng1U64 range) -{ - HANDLE file = (HANDLE)(handle.u64[0]); - U64 offset = range.min; - U64 size = range.max-range.min; - void *ptr = MapViewOfFile(file, FILE_MAP_ALL_ACCESS, - (U32)((offset & 0xffffffff00000000) >> 32), - (U32)((offset & 0x00000000ffffffff)), - size); - return ptr; -} - -internal void -os_shared_memory_view_close(OS_Handle handle, void *ptr, Rng1U64 range) -{ - UnmapViewOfFile(ptr); -} - -//////////////////////////////// -//~ rjf: @os_hooks Time (Implemented Per-OS) - -internal U64 -os_now_microseconds(void) -{ - U64 result = 0; - LARGE_INTEGER large_int_counter; - if(QueryPerformanceCounter(&large_int_counter)) - { - result = (large_int_counter.QuadPart*Million(1))/os_w32_state.microsecond_resolution; - } - return result; -} - -internal U32 -os_now_unix(void) -{ - FILETIME file_time; - GetSystemTimeAsFileTime(&file_time); - U32 unix_time = os_w32_unix_time_from_file_time(file_time); - return unix_time; -} - -internal DateTime -os_now_universal_time(void) -{ - SYSTEMTIME systime = {0}; - GetSystemTime(&systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal DateTime -os_universal_time_from_local(DateTime *date_time) -{ - SYSTEMTIME systime = {0}; - os_w32_system_time_from_date_time(&systime, date_time); - FILETIME ftime = {0}; - SystemTimeToFileTime(&systime, &ftime); - FILETIME ftime_local = {0}; - LocalFileTimeToFileTime(&ftime, &ftime_local); - FileTimeToSystemTime(&ftime_local, &systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal DateTime -os_local_time_from_universal(DateTime *date_time) -{ - SYSTEMTIME systime = {0}; - os_w32_system_time_from_date_time(&systime, date_time); - FILETIME ftime = {0}; - SystemTimeToFileTime(&systime, &ftime); - FILETIME ftime_local = {0}; - FileTimeToLocalFileTime(&ftime, &ftime_local); - FileTimeToSystemTime(&ftime_local, &systime); - DateTime result = {0}; - os_w32_date_time_from_system_time(&result, &systime); - return result; -} - -internal void -os_sleep_milliseconds(U32 msec) -{ - Sleep(msec); -} - -//////////////////////////////// -//~ rjf: @os_hooks Child Processes (Implemented Per-OS) - -internal OS_Handle -os_process_launch(OS_ProcessLaunchParams *params) -{ - OS_Handle result = {0}; - Temp scratch = scratch_begin(0, 0); - - //- rjf: form full command string - String8 cmd = {0}; - { - StringJoin join_params = {0}; - join_params.pre = str8_lit("\""); - join_params.sep = str8_lit("\" \""); - join_params.post = str8_lit("\""); - cmd = str8_list_join(scratch.arena, ¶ms->cmd_line, &join_params); - } - - //- rjf: form environment - B32 use_null_env_arg = 0; - String8 env = {0}; - { - StringJoin join_params2 = {0}; - join_params2.sep = str8_lit("\0"); - join_params2.post = str8_lit("\0"); - String8List all_opts = params->env; - if(params->inherit_env != 0) - { - if(all_opts.node_count != 0) - { - MemoryZeroStruct(&all_opts); - for(String8Node *n = params->env.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - for(String8Node *n = os_w32_state.process_info.environment.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - } - else - { - use_null_env_arg = 1; - } - } - if(use_null_env_arg == 0) - { - env = str8_list_join(scratch.arena, &all_opts, &join_params2); - } - } - - //- rjf: utf-8 -> utf-16 - String16 cmd16 = str16_from_8(scratch.arena, cmd); - String16 dir16 = str16_from_8(scratch.arena, params->path); - String16 env16 = {0}; - if(use_null_env_arg == 0) - { - env16 = str16_from_8(scratch.arena, env); - } - - //- rjf: determine creation flags - DWORD creation_flags = CREATE_UNICODE_ENVIRONMENT; - if(params->consoleless) - { - creation_flags |= CREATE_NO_WINDOW; - } - - //- rjf: launch - BOOL inherit_handles = 0; - STARTUPINFOW startup_info = {sizeof(startup_info)}; - if(!os_handle_match(params->stdout_file, os_handle_zero())) - { - HANDLE stdout_handle = (HANDLE)params->stdout_file.u64[0]; - startup_info.hStdOutput = stdout_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stderr_file, os_handle_zero())) - { - HANDLE stderr_handle = (HANDLE)params->stderr_file.u64[0]; - startup_info.hStdError = stderr_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stdin_file, os_handle_zero())) - { - HANDLE stdin_handle = (HANDLE)params->stdin_file.u64[0]; - startup_info.hStdInput = stdin_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - PROCESS_INFORMATION process_info = {0}; - if(CreateProcessW(0, (WCHAR*)cmd16.str, 0, 0, inherit_handles, creation_flags, use_null_env_arg ? 0 : (WCHAR*)env16.str, (WCHAR*)dir16.str, &startup_info, &process_info)) - { - result.u64[0] = (U64)process_info.hProcess; - CloseHandle(process_info.hThread); - } - - scratch_end(scratch); - return result; -} - -internal B32 -os_process_join(OS_Handle handle, U64 endt_us, U64 *exit_code_out) -{ - HANDLE process = (HANDLE)(handle.u64[0]); - DWORD sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - DWORD result = WaitForSingleObject(process, sleep_ms); - B32 process_joined = (result == WAIT_OBJECT_0); - if(process_joined && exit_code_out) - { - DWORD exit_code = 0; - if(GetExitCodeProcess(process, &exit_code)) - { - *exit_code_out = exit_code; - } - } - return process_joined; -} - -internal B32 -os_process_kill(OS_Handle handle) -{ - HANDLE process = (HANDLE)handle.u64[0]; - BOOL was_terminated = TerminateProcess(process, 999); - return was_terminated; -} - -internal void -os_process_detach(OS_Handle handle) -{ - HANDLE process = (HANDLE)(handle.u64[0]); - CloseHandle(process); -} - -//////////////////////////////// -//~ rjf: @os_hooks Threads (Implemented Per-OS) - -internal Thread -os_thread_launch(ThreadEntryPointFunctionType *f, void *p) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_Thread); - entity->thread.func = f; - entity->thread.ptr = p; - entity->thread.handle = CreateThread(0, 0, os_w32_thread_entry_point, entity, 0, &entity->thread.tid); - Thread result = {IntFromPtr(entity)}; - return result; -} - -internal B32 -os_thread_join(Thread handle, U64 endt_us) -{ - DWORD sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - OS_W32_Entity *entity = (OS_W32_Entity *)PtrFromInt(handle.u64[0]); - DWORD wait_result = WAIT_OBJECT_0; - if(entity != 0) - { - wait_result = WaitForSingleObject(entity->thread.handle, sleep_ms); - CloseHandle(entity->thread.handle); - os_w32_entity_release(entity); - } - return (wait_result == WAIT_OBJECT_0); -} - -internal void -os_thread_detach(Thread thread) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(thread.u64[0]); - if(entity != 0) - { - CloseHandle(entity->thread.handle); - os_w32_entity_release(entity); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS) - -//- rjf: mutexes - -internal Mutex -os_mutex_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_Mutex); - InitializeCriticalSection(&entity->mutex); - Mutex result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_mutex_release(Mutex mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - DeleteCriticalSection(&entity->mutex); - os_w32_entity_release(entity); -} - -internal void -os_mutex_take(Mutex mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - EnterCriticalSection(&entity->mutex); -} - -internal void -os_mutex_drop(Mutex mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - LeaveCriticalSection(&entity->mutex); -} - -//- rjf: reader/writer mutexes - -internal RWMutex -os_rw_mutex_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_RWMutex); - InitializeSRWLock(&entity->rw_mutex); - RWMutex result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_rw_mutex_release(RWMutex rw_mutex) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - os_w32_entity_release(entity); -} - -internal void -os_rw_mutex_take(RWMutex rw_mutex, B32 write_mode) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - if(write_mode) - { - AcquireSRWLockExclusive(&entity->rw_mutex); - } - else - { - AcquireSRWLockShared(&entity->rw_mutex); - } -} - -internal void -os_rw_mutex_drop(RWMutex rw_mutex, B32 write_mode) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(rw_mutex.u64[0]); - if(write_mode) - { - ReleaseSRWLockExclusive(&entity->rw_mutex); - } - else - { - ReleaseSRWLockShared(&entity->rw_mutex); - } -} - -//- rjf: condition variables - -internal CondVar -os_cond_var_alloc(void) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_ConditionVariable); - InitializeConditionVariable(&entity->cv); - CondVar result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_cond_var_release(CondVar cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - os_w32_entity_release(entity); -} - -internal B32 -os_cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - BOOL result = 0; - if(sleep_ms > 0) - { - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - OS_W32_Entity *mutex_entity = (OS_W32_Entity*)PtrFromInt(mutex.u64[0]); - result = SleepConditionVariableCS(&entity->cv, &mutex_entity->mutex, sleep_ms); - } - return result; -} - -internal B32 -os_cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - BOOL result = 0; - if(sleep_ms > 0) - { - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - OS_W32_Entity *mutex_entity = (OS_W32_Entity*)PtrFromInt(mutex_rw.u64[0]); - result = SleepConditionVariableSRW(&entity->cv, &mutex_entity->rw_mutex, sleep_ms, - write_mode ? 0 : CONDITION_VARIABLE_LOCKMODE_SHARED); - } - return result; -} - -internal void -os_cond_var_signal(CondVar cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - WakeConditionVariable(&entity->cv); -} - -internal void -os_cond_var_broadcast(CondVar cv) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(cv.u64[0]); - WakeAllConditionVariable(&entity->cv); -} - -//- rjf: cross-process semaphores - -internal Semaphore -os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE handle = CreateSemaphoreW(0, initial_count, max_count, (WCHAR *)name16.str); - Semaphore result = {(U64)handle}; - scratch_end(scratch); - return result; -} - -internal void -os_semaphore_release(Semaphore semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - CloseHandle(handle); -} - -internal Semaphore -os_semaphore_open(String8 name) -{ - Temp scratch = scratch_begin(0, 0); - String16 name16 = str16_from_8(scratch.arena, name); - HANDLE handle = OpenSemaphoreW(SEMAPHORE_ALL_ACCESS, 0, (WCHAR *)name16.str); - Semaphore result = {(U64)handle}; - scratch_end(scratch); - return result; -} - -internal void -os_semaphore_close(Semaphore semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - CloseHandle(handle); -} - -internal B32 -os_semaphore_take(Semaphore semaphore, U64 endt_us) -{ - U32 sleep_ms = os_w32_sleep_ms_from_endt_us(endt_us); - HANDLE handle = (HANDLE)semaphore.u64[0]; - DWORD wait_result = WaitForSingleObject(handle, sleep_ms); - B32 result = (wait_result == WAIT_OBJECT_0); - return result; -} - -internal void -os_semaphore_drop(Semaphore semaphore) -{ - HANDLE handle = (HANDLE)semaphore.u64[0]; - ReleaseSemaphore(handle, 1, 0); -} - -//- rjf: barriers - -internal Barrier -os_barrier_alloc(U64 count) -{ - OS_W32_Entity *entity = os_w32_entity_alloc(OS_W32_EntityKind_Barrier); - if(entity != 0) - { - BOOL init_good = InitializeSynchronizationBarrier(&entity->sb, count, -1); - (void)init_good; - } - Barrier result = {IntFromPtr(entity)}; - return result; -} - -internal void -os_barrier_release(Barrier barrier) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(barrier.u64[0]); - if(entity != 0) - { - DeleteSynchronizationBarrier(&entity->sb); - os_w32_entity_release(entity); - } -} - -internal void -os_barrier_wait(Barrier barrier) -{ - OS_W32_Entity *entity = (OS_W32_Entity*)PtrFromInt(barrier.u64[0]); - if(entity != 0) - { - EnterSynchronizationBarrier(&entity->sb, 0); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS) - -internal OS_Handle -os_library_open(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String16 path16 = str16_from_8(scratch.arena, path); - HMODULE mod = LoadLibraryW((LPCWSTR)path16.str); - OS_Handle result = { (U64)mod }; - scratch_end(scratch); - return result; -} - -internal VoidProc* -os_library_load_proc(OS_Handle lib, String8 name) -{ - Temp scratch = scratch_begin(0, 0); - HMODULE mod = (HMODULE)lib.u64[0]; - name = push_str8_copy(scratch.arena, name); - VoidProc *result = (VoidProc*)GetProcAddress(mod, (LPCSTR)name.str); - scratch_end(scratch); - return result; -} - -internal void -os_library_close(OS_Handle lib) -{ - HMODULE mod = (HMODULE)lib.u64[0]; - FreeLibrary(mod); -} - -//////////////////////////////// -//~ rjf: @os_hooks Safe Calls (Implemented Per-OS) - -internal void -os_safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr) -{ - __try - { - func(ptr); - } - __except (EXCEPTION_EXECUTE_HANDLER) - { - if(fail_handler != 0) - { - fail_handler(ptr); - } - ExitProcess(1); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks GUIDs (Implemented Per-OS) - -internal Guid -os_make_guid(void) -{ - Guid result; MemoryZeroStruct(&result); - UUID uuid; - RPC_STATUS rpc_status = UuidCreate(&uuid); - if(rpc_status == RPC_S_OK) - { - result.data1 = uuid.Data1; - result.data2 = uuid.Data2; - result.data3 = uuid.Data3; - MemoryCopyArray(result.data4, uuid.Data4); - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Entry Points (Implemented Per-OS) - -#include -#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside -#include - -internal B32 win32_g_is_quiet = 0; -internal B32 win32_g_gen_dump = 0; - -internal HRESULT WINAPI -win32_dialog_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, LONG_PTR data) -{ - if(msg == TDN_HYPERLINK_CLICKED) - { - ShellExecuteW(NULL, L"open", (LPWSTR)lparam, NULL, NULL, SW_SHOWNORMAL); - } - return S_OK; -} - -internal LONG WINAPI -win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs) -{ - if(win32_g_is_quiet) - { - ExitProcess(1); - } - - static volatile LONG first = 0; - if(InterlockedCompareExchange(&first, 1, 0) != 0) - { - // prevent failures in other threads to popup same message box - // this handler just shows first thread that crashes - // we are terminating afterwards anyway - for (;;) Sleep(1000); - } - - WCHAR buffer[4096] = {0}; - int buflen = 0; - - DWORD exception_code = exception_ptrs->ExceptionRecord->ExceptionCode; - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"A fatal exception (code 0x%x) occurred. The process is terminating.\n", exception_code); - - // load dbghelp dynamically just in case if it is missing - BOOL (WINAPI *dbg_MiniDumpWriteDump)(HANDLE hProcess, DWORD ProcessId, HANDLE hFile, MINIDUMP_TYPE DumpType, PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, PMINIDUMP_CALLBACK_INFORMATION CallbackParam) = 0; - HMODULE dbghelp = LoadLibraryA("dbghelp.dll"); - if(dbghelp) - { - DWORD (WINAPI *dbg_SymSetOptions)(DWORD SymOptions); - BOOL (WINAPI *dbg_SymInitializeW)(HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess); - BOOL (WINAPI *dbg_StackWalk64)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, - LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, - PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, - PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); - PVOID (WINAPI *dbg_SymFunctionTableAccess64)(HANDLE hProcess, DWORD64 AddrBase); - DWORD64 (WINAPI *dbg_SymGetModuleBase64)(HANDLE hProcess, DWORD64 qwAddr); - BOOL (WINAPI *dbg_SymFromAddrW)(HANDLE hProcess, DWORD64 Address, PDWORD64 Displacement, PSYMBOL_INFOW Symbol); - BOOL (WINAPI *dbg_SymGetLineFromAddrW64)(HANDLE hProcess, DWORD64 dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINEW64 Line); - BOOL (WINAPI *dbg_SymGetModuleInfoW64)(HANDLE hProcess, DWORD64 qwAddr, PIMAGEHLP_MODULEW64 ModuleInfo); - - *(FARPROC*)&dbg_SymSetOptions = GetProcAddress(dbghelp, "SymSetOptions"); - *(FARPROC*)&dbg_SymInitializeW = GetProcAddress(dbghelp, "SymInitializeW"); - *(FARPROC*)&dbg_StackWalk64 = GetProcAddress(dbghelp, "StackWalk64"); - *(FARPROC*)&dbg_SymFunctionTableAccess64 = GetProcAddress(dbghelp, "SymFunctionTableAccess64"); - *(FARPROC*)&dbg_SymGetModuleBase64 = GetProcAddress(dbghelp, "SymGetModuleBase64"); - *(FARPROC*)&dbg_SymFromAddrW = GetProcAddress(dbghelp, "SymFromAddrW"); - *(FARPROC*)&dbg_SymGetLineFromAddrW64 = GetProcAddress(dbghelp, "SymGetLineFromAddrW64"); - *(FARPROC*)&dbg_SymGetModuleInfoW64 = GetProcAddress(dbghelp, "SymGetModuleInfoW64"); - *(FARPROC*)&dbg_MiniDumpWriteDump = GetProcAddress(dbghelp, "MiniDumpWriteDump"); - - if(dbg_SymSetOptions && dbg_SymInitializeW && dbg_StackWalk64 && dbg_SymFunctionTableAccess64 && dbg_SymGetModuleBase64 && dbg_SymFromAddrW && dbg_SymGetLineFromAddrW64 && dbg_SymGetModuleInfoW64) - { - HANDLE process = GetCurrentProcess(); - HANDLE thread = GetCurrentThread(); - CONTEXT* context = exception_ptrs->ContextRecord; - - WCHAR module_path[MAX_PATH]; - GetModuleFileNameW(NULL, module_path, ArrayCount(module_path)); - PathRemoveFileSpecW(module_path); - - dbg_SymSetOptions(SYMOPT_EXACT_SYMBOLS | SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_LOAD_LINES | SYMOPT_UNDNAME); - if(dbg_SymInitializeW(process, module_path, TRUE)) - { - // check that raddbg.pdb file is good - B32 raddbg_pdb_valid = 0; - { - IMAGEHLP_MODULEW64 module = {0}; - module.SizeOfStruct = sizeof(module); - if(dbg_SymGetModuleInfoW64(process, (DWORD64)&win32_exception_filter, &module)) - { - raddbg_pdb_valid = (module.SymType == SymPdb); - } - } - - if(!raddbg_pdb_valid) - { - buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, - L"\nThe PDB debug information file for this executable is not valid or was not found. Please rebuild binary to get the call stack.\n"); - } - else - { - STACKFRAME64 frame = {0}; - DWORD image_type; -#if defined(_M_AMD64) - image_type = IMAGE_FILE_MACHINE_AMD64; - frame.AddrPC.Offset = context->Rip; - frame.AddrPC.Mode = AddrModeFlat; - frame.AddrFrame.Offset = context->Rbp; - frame.AddrFrame.Mode = AddrModeFlat; - frame.AddrStack.Offset = context->Rsp; - frame.AddrStack.Mode = AddrModeFlat; -#elif defined(_M_ARM64) - image_type = IMAGE_FILE_MACHINE_ARM64; - frame.AddrPC.Offset = context->Pc; - frame.AddrPC.Mode = AddrModeFlat; - frame.AddrFrame.Offset = context->Fp; - frame.AddrFrame.Mode = AddrModeFlat; - frame.AddrStack.Offset = context->Sp; - frame.AddrStack.Mode = AddrModeFlat; -#else -# error Arch not supported! -#endif - - for(U32 idx=0; ;idx++) - { - const U32 max_frames = 32; - if(idx == max_frames) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"..."); - break; - } - - if(!dbg_StackWalk64(image_type, process, thread, &frame, context, 0, dbg_SymFunctionTableAccess64, dbg_SymGetModuleBase64, 0)) - { - break; - } - - U64 address = frame.AddrPC.Offset; - if(address == 0) - { - break; - } - - if(idx==0) - { -#if BUILD_CONSOLE_INTERFACE - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nCreate a new issue with this report at %S.\n\n", BUILD_ISSUES_LINK_STRING_LITERAL); -#else - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, - L"\nPress Ctrl+C to copy this text to clipboard, then create a new issue at\n" - L"%S\n\n", BUILD_ISSUES_LINK_STRING_LITERAL, BUILD_ISSUES_LINK_STRING_LITERAL); -#endif - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"Call stack:\n"); - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"%u. [0x%I64x]", idx + 1, address); - - struct { - SYMBOL_INFOW info; - WCHAR name[MAX_SYM_NAME]; - } symbol = {0}; - - symbol.info.SizeOfStruct = sizeof(symbol.info); - symbol.info.MaxNameLen = MAX_SYM_NAME; - - DWORD64 displacement = 0; - if(dbg_SymFromAddrW(process, address, &displacement, &symbol.info)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s +%u", symbol.info.Name, (DWORD)displacement); - - IMAGEHLP_LINEW64 line = {0}; - line.SizeOfStruct = sizeof(line); - - DWORD line_displacement = 0; - if(dbg_SymGetLineFromAddrW64(process, address, &line_displacement, &line)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L", %s line %u", PathFindFileNameW(line.FileName), line.LineNumber); - } - } - else - { - IMAGEHLP_MODULEW64 module = {0}; - module.SizeOfStruct = sizeof(module); - if(dbg_SymGetModuleInfoW64(process, address, &module)) - { - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s", module.ModuleName); - } - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\n"); - } - } - } - } - } - - buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nVersion: %S%S", BUILD_VERSION_STRING_LITERAL, BUILD_GIT_HASH_STRING_LITERAL_APPEND); - - B32 generate_crash_dump = win32_g_gen_dump; -#if BUILD_CONSOLE_INTERFACE - fwprintf(stderr, L"\n--- Fatal Exception ---\n"); - fwprintf(stderr, L"%s\n\n", buffer); -#else - int selected_button = 0; - TASKDIALOG_BUTTON generate_dump = {1, L"Generate Crash Dump File"}; - TASKDIALOGCONFIG dialog = {0}; - dialog.cbSize = sizeof(dialog); - dialog.dwFlags = TDF_SIZE_TO_CONTENT | TDF_ENABLE_HYPERLINKS | TDF_ALLOW_DIALOG_CANCELLATION; - dialog.pszMainIcon = TD_ERROR_ICON; - dialog.dwCommonButtons = TDCBF_CLOSE_BUTTON; - dialog.pszWindowTitle = L"Fatal Exception"; - dialog.pszContent = buffer; - dialog.pfCallback = &win32_dialog_callback; - dialog.cButtons = 1; - dialog.pButtons = &generate_dump; - TaskDialogIndirect(&dialog, &selected_button, 0, 0); - generate_crash_dump = (selected_button == generate_dump.nButtonID); -#endif - - if(dbg_MiniDumpWriteDump && generate_crash_dump) - { - WCHAR desktop_path[512] = {0}; - SHGetFolderPathW(0, CSIDL_DESKTOP, 0, 0, desktop_path); - WCHAR dump_file_path[512] = {0}; - wnsprintfW(dump_file_path, ArrayCount(dump_file_path), L"%s\\raddbg_crash_dump.dmp", desktop_path); - SECURITY_ATTRIBUTES security_attributes = {sizeof(security_attributes), 0, 0}; - HANDLE file = CreateFileW(dump_file_path, GENERIC_WRITE, 0, &security_attributes, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); - BOOL dump_successful = dbg_MiniDumpWriteDump(GetCurrentProcess(), os_get_process_info()->pid, file, MiniDumpNormal, 0, 0, 0); - CloseHandle(file); - (void)dump_successful; - } - - ExitProcess(1); -} - -#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside -#define OS_WINDOWS 1 - -internal void -w32_entry_point_caller(int argc, WCHAR **wargv) -{ - SetUnhandledExceptionFilter(&win32_exception_filter); - - //- rjf: dynamically load windows functions which are not guaranteed - // in all SDKs - { - HMODULE module = LoadLibraryA("kernel32.dll"); - w32_SetThreadDescription_func = (W32_SetThreadDescription_Type *)GetProcAddress(module, "SetThreadDescription"); - FreeLibrary(module); - } - - //- rjf: try to allow large pages if we can - B32 large_pages_allowed = 0; - { - HANDLE token; - if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token)) - { - LUID luid; - if(LookupPrivilegeValue(0, SE_LOCK_MEMORY_NAME, &luid)) - { - TOKEN_PRIVILEGES priv; - priv.PrivilegeCount = 1; - priv.Privileges[0].Luid = luid; - priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; - large_pages_allowed = !!AdjustTokenPrivileges(token, 0, &priv, sizeof(priv), 0, 0); - } - CloseHandle(token); - } - } - - //- rjf: get RIO extension function table - { - // NOTE(mmozeiko): need to get function pointers to RIO functions, and that requires dummy socket - WSADATA WinSockData; - WSAStartup(MAKEWORD(2, 2), &WinSockData); - GUID guid = WSAID_MULTIPLE_RIO; - DWORD rio_byte = 0; - SOCKET Sock = socket(AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP); - WSAIoctl(Sock, SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER, &guid, sizeof(guid), (void**)&w32_rio_functions, sizeof(w32_rio_functions), &rio_byte, 0, 0); - closesocket(Sock); - } - - //- rjf: get system info - SYSTEM_INFO sysinfo = {0}; - GetSystemInfo(&sysinfo); - - //- rjf: set up non-dynamically-alloc'd state - // - // (we need to set up some basics before this layer can supply - // memory allocation primitives) - { - os_w32_state.microsecond_resolution = 1; - LARGE_INTEGER large_int_resolution; - if(QueryPerformanceFrequency(&large_int_resolution)) - { - os_w32_state.microsecond_resolution = large_int_resolution.QuadPart; - } - } - { - OS_SystemInfo *info = &os_w32_state.system_info; - info->logical_processor_count = (U64)sysinfo.dwNumberOfProcessors; - info->page_size = sysinfo.dwPageSize; - info->large_page_size = GetLargePageMinimum(); - info->allocation_granularity = sysinfo.dwAllocationGranularity; - } - { - OS_ProcessInfo *info = &os_w32_state.process_info; - info->large_pages_allowed = large_pages_allowed; - info->pid = GetCurrentProcessId(); - } - - //- rjf: extract arguments - Arena *args_arena = arena_alloc(.reserve_size = MB(1), .commit_size = KB(32)); - char **argv = push_array(args_arena, char *, argc); - for(int i = 0; i < argc; i += 1) - { - String16 arg16 = str16_cstring((U16 *)wargv[i]); - String8 arg8 = str8_from_16(args_arena, arg16); - if(str8_match(arg8, str8_lit("--quiet"), StringMatchFlag_CaseInsensitive) || - str8_match(arg8, str8_lit("-quiet"), StringMatchFlag_CaseInsensitive)) - { - win32_g_is_quiet = 1; - } - if(str8_match(arg8, str8_lit("--large_pages"), StringMatchFlag_CaseInsensitive) || - str8_match(arg8, str8_lit("-large_pages"), StringMatchFlag_CaseInsensitive)) - { - arena_default_flags = ArenaFlag_LargePages; - arena_default_reserve_size = Max(MB(64), os_w32_state.system_info.large_page_size); - arena_default_commit_size = arena_default_reserve_size; - } - if(str8_match(arg8, str8_lit("--gen_crash_dump"), StringMatchFlag_CaseInsensitive) || - str8_match(arg8, str8_lit("-gen_crash_dump"), StringMatchFlag_CaseInsensitive)) - { - win32_g_gen_dump = 1; - } - argv[i] = (char *)arg8.str; - } - - //- rjf: set up thread context - TCTX *tctx = tctx_alloc(); - tctx_select(tctx); - - //- rjf: set up dynamically-alloc'd state - Arena *arena = arena_alloc(); - { - os_w32_state.arena = arena; - { - OS_SystemInfo *info = &os_w32_state.system_info; - U8 buffer[MAX_COMPUTERNAME_LENGTH + 1] = {0}; - DWORD size = MAX_COMPUTERNAME_LENGTH + 1; - if(GetComputerNameA((char*)buffer, &size)) - { - info->machine_name = push_str8_copy(arena, str8(buffer, size)); - } - } - } - { - OS_ProcessInfo *info = &os_w32_state.process_info; - { - Temp scratch = scratch_begin(0, 0); - DWORD size = KB(32); - U16 *buffer = push_array_no_zero(scratch.arena, U16, size); - DWORD length = GetModuleFileNameW(0, (WCHAR*)buffer, size); - String8 name8 = str8_from_16(scratch.arena, str16(buffer, length)); - String8 name_chopped = str8_chop_last_slash(name8); - info->binary_path = push_str8_copy(arena, name_chopped); - scratch_end(scratch); - } - info->initial_path = os_get_current_path(arena); - { - Temp scratch = scratch_begin(0, 0); - U64 size = KB(32); - U16 *buffer = push_array_no_zero(scratch.arena, U16, size); - if(SUCCEEDED(SHGetFolderPathW(0, CSIDL_APPDATA, 0, 0, (WCHAR*)buffer))) - { - info->user_program_data_path = str8_from_16(arena, str16_cstring(buffer)); - } - scratch_end(scratch); - } - { - WCHAR *this_proc_env = GetEnvironmentStringsW(); - U64 start_idx = 0; - for(U64 idx = 0;; idx += 1) - { - if(this_proc_env[idx] == 0) - { - if(start_idx == idx) - { - break; - } - else - { - String16 string16 = str16((U16 *)this_proc_env + start_idx, idx - start_idx); - String8 string = str8_from_16(arena, string16); - str8_list_push(arena, &info->environment, string); - start_idx = idx+1; - } - } - } - } - } - - //- rjf: set up entity storage - InitializeCriticalSection(&os_w32_state.entity_mutex); - os_w32_state.entity_arena = arena_alloc(); - - //- rjf: call into "real" entry point - main_thread_base_entry_point(argc, argv); -} - -#if BUILD_CONSOLE_INTERFACE -int wmain(int argc, WCHAR **argv) -{ - w32_entry_point_caller(argc, argv); - return 0; -} -#else -int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) -{ - w32_entry_point_caller(__argc, __wargv); - return 0; -} -#endif +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Modern Windows SDK Functions +// +// (We must dynamically link to them, since they can be missing in older SDKs) + +typedef HRESULT W32_SetThreadDescription_Type(HANDLE hThread, PCWSTR lpThreadDescription); +global W32_SetThreadDescription_Type *w32_SetThreadDescription_func = 0; +typedef BOOL W32_InitializeSynchronizationBarrier_Type(W32_SYNCHRONIZATION_BARRIER *lpBarrier, LONG lTotalThreads, LONG lSpinCount); +global W32_InitializeSynchronizationBarrier_Type *w32_InitializeSynchronizationBarrier_func = 0; +typedef BOOL W32_DeleteSynchronizationBarrier_Type(W32_SYNCHRONIZATION_BARRIER *lpBarrier); +global W32_DeleteSynchronizationBarrier_Type *w32_DeleteSynchronizationBarrier_func = 0; +typedef BOOL W32_EnterSynchronizationBarrier_Type(W32_SYNCHRONIZATION_BARRIER *lpBarrier, DWORD dwFlags); +global W32_EnterSynchronizationBarrier_Type *w32_EnterSynchronizationBarrier_func = 0; +global RIO_EXTENSION_FUNCTION_TABLE w32_rio_functions = {0}; + +//////////////////////////////// +//~ rjf: File Info Conversion Helpers + +internal FilePropertyFlags +w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes) +{ + FilePropertyFlags flags = 0; + if(dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) + { + flags |= FilePropertyFlag_IsFolder; + } + return flags; +} + +internal void +w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes) +{ + properties->size = Compose64Bit(attributes->nFileSizeHigh, attributes->nFileSizeLow); + w32_dense_time_from_file_time(&properties->created, &attributes->ftCreationTime); + w32_dense_time_from_file_time(&properties->modified, &attributes->ftLastWriteTime); + properties->flags = w32_file_property_flags_from_dwFileAttributes(attributes->dwFileAttributes); +} + +//////////////////////////////// +//~ rjf: Time Conversion Helpers + +internal void +w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in) +{ + out->year = in->wYear; + out->mon = in->wMonth - 1; + out->wday = in->wDayOfWeek; + out->day = in->wDay; + out->hour = in->wHour; + out->min = in->wMinute; + out->sec = in->wSecond; + out->msec = in->wMilliseconds; +} + +internal void +w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in) +{ + out->wYear = (WORD)(in->year); + out->wMonth = in->mon + 1; + out->wDay = in->day; + out->wHour = in->hour; + out->wMinute = in->min; + out->wSecond = in->sec; + out->wMilliseconds = in->msec; +} + +internal void +w32_dense_time_from_file_time(DenseTime *out, FILETIME *in) +{ + SYSTEMTIME systime = {0}; + FileTimeToSystemTime(in, &systime); + DateTime date_time = {0}; + w32_date_time_from_system_time(&date_time, &systime); + *out = dense_time_from_date_time(date_time); +} + +internal U32 +w32_sleep_ms_from_endt_us(U64 endt_us) +{ + U32 sleep_ms = 0; + if(endt_us == max_U64) + { + sleep_ms = INFINITE; + } + else + { + U64 begint = now_time_us(); + if(begint < endt_us) + { + U64 sleep_us = endt_us - begint; + sleep_ms = (U32)((sleep_us + 999)/1000); + } + } + return sleep_ms; +} + +internal U32 +w32_unix_time_from_file_time(FILETIME file_time) +{ + U64 win32_time = ((U64)file_time.dwHighDateTime << 32) | file_time.dwLowDateTime; + U64 unix_time64 = ((win32_time - 0x19DB1DED53E8000ULL) / 10000000); + + Assert(unix_time64 <= max_U32); + U32 unix_time32 = (U32)unix_time64; + + return unix_time32; +} + +//////////////////////////////// +//~ rjf: Entity Functions + +internal W32_Entity * +w32_entity_alloc(W32_EntityKind kind) +{ + W32_Entity *result = 0; + EnterCriticalSection(&w32_state.entity_mutex); + { + result = w32_state.entity_free; + if(result) + { + SLLStackPop(w32_state.entity_free); + } + else + { + result = push_array_no_zero(w32_state.entity_arena, W32_Entity, 1); + } + MemoryZeroStruct(result); + } + LeaveCriticalSection(&w32_state.entity_mutex); + result->kind = kind; + return result; +} + +internal void +w32_entity_release(W32_Entity *entity) +{ + entity->kind = W32_EntityKind_Null; + EnterCriticalSection(&w32_state.entity_mutex); + SLLStackPush(w32_state.entity_free, entity); + LeaveCriticalSection(&w32_state.entity_mutex); +} + +//////////////////////////////// +//~ rjf: Thread Entry Point + +internal DWORD +w32_thread_entry_point(void *ptr) +{ + W32_Entity *entity = (W32_Entity *)ptr; + ThreadEntryPointFunctionType *func = entity->thread.func; + void *thread_ptr = entity->thread.ptr; + supplement_thread_base_entry_point(func, thread_ptr); + return 0; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Debugger Attachment Checking + +internal B32 +debugger_is_attached(void) +{ + B32 result = IsDebuggerPresent(); + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Time Functions + +internal U64 +now_time_us(void) +{ + U64 result = 0; + LARGE_INTEGER large_int_counter; + if(QueryPerformanceCounter(&large_int_counter)) + { + result = (large_int_counter.QuadPart*Million(1))/w32_state.microsecond_resolution; + } + return result; +} + +internal U32 +now_time_unix(void) +{ + FILETIME file_time; + GetSystemTimeAsFileTime(&file_time); + U32 unix_time = w32_unix_time_from_file_time(file_time); + return unix_time; +} + +internal DateTime +now_time_universal(void) +{ + SYSTEMTIME systime = {0}; + GetSystemTime(&systime); + DateTime result = {0}; + w32_date_time_from_system_time(&result, &systime); + return result; +} + +internal DateTime +universal_from_local_time(DateTime *date_time) +{ + SYSTEMTIME systime = {0}; + w32_system_time_from_date_time(&systime, date_time); + FILETIME ftime = {0}; + SystemTimeToFileTime(&systime, &ftime); + FILETIME ftime_local = {0}; + LocalFileTimeToFileTime(&ftime, &ftime_local); + FileTimeToSystemTime(&ftime_local, &systime); + DateTime result = {0}; + w32_date_time_from_system_time(&result, &systime); + return result; +} + +internal DateTime +local_from_universal_time(DateTime *date_time) +{ + SYSTEMTIME systime = {0}; + w32_system_time_from_date_time(&systime, date_time); + FILETIME ftime = {0}; + SystemTimeToFileTime(&systime, &ftime); + FILETIME ftime_local = {0}; + FileTimeToLocalFileTime(&ftime, &ftime_local); + FileTimeToSystemTime(&ftime_local, &systime); + DateTime result = {0}; + w32_date_time_from_system_time(&result, &systime); + return result; +} + +internal void +sleep_ms(U32 msec) +{ + Sleep(msec); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform GUID Functions + +internal Guid +make_guid(void) +{ + Guid result; + MemoryZeroStruct(&result); + UUID uuid; + RPC_STATUS rpc_status = UuidCreate(&uuid); + if(rpc_status == RPC_S_OK) + { + result.data1 = uuid.Data1; + result.data2 = uuid.Data2; + result.data3 = uuid.Data3; + MemoryCopyArray(result.data4, uuid.Data4); + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Platform Memory Allocation + +//- rjf: basic + +internal void * +reserve_memory(U64 size) +{ + void *result = VirtualAlloc(0, size, MEM_RESERVE, PAGE_READWRITE); + return result; +} + +internal B32 +commit_memory(void *ptr, U64 size) +{ + B32 result = (VirtualAlloc(ptr, size, MEM_COMMIT, PAGE_READWRITE) != 0); + if(w32_rio_functions.RIORegisterBuffer) + { + // wine does not implement these functions + w32_rio_functions.RIODeregisterBuffer(w32_rio_functions.RIORegisterBuffer(ptr, size)); + } +#if PROFILE_TELEMETRY + tmAlloc(0, ptr, size / 1024, "Win32 Commit"); +#endif + return result; +} + +internal void +decommit_memory(void *ptr, U64 size) +{ + VirtualFree(ptr, size, MEM_DECOMMIT); +#if PROFILE_TELEMETRY + tmFree(0, ptr); +#endif +} + +internal void +release_memory(void *ptr, U64 size) +{ + // NOTE(rjf): size not used - not necessary on Windows, but necessary for other OSes. + VirtualFree(ptr, 0, MEM_RELEASE); +} + +//- rjf: large pages + +internal void * +reserve_memory_large(U64 size) +{ + // we commit on reserve because windows + void *result = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_LARGE_PAGES, PAGE_READWRITE); + return result; +} + +internal B32 +commit_memory_large(void *ptr, U64 size) +{ + return 1; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Shared Memory + +internal SharedMemory +shared_memory_alloc(U64 size, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String16 name16 = str16_from_8(scratch.arena, name); + HANDLE file = CreateFileMappingW(INVALID_HANDLE_VALUE, + 0, + PAGE_READWRITE, + (U32)((size & 0xffffffff00000000) >> 32), + (U32)((size & 0x00000000ffffffff)), + (WCHAR *)name16.str); + SharedMemory result = {(U64)file}; + scratch_end(scratch); + return result; +} + +internal SharedMemory +shared_memory_open(String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String16 name16 = str16_from_8(scratch.arena, name); + HANDLE file = OpenFileMappingW(FILE_MAP_ALL_ACCESS, 0, (WCHAR *)name16.str); + SharedMemory result = {(U64)file}; + scratch_end(scratch); + return result; +} + +internal void +shared_memory_close(SharedMemory handle) +{ + HANDLE file = (HANDLE)(handle.u64[0]); + CloseHandle(file); +} + +internal void * +shared_memory_view_open(SharedMemory handle, Rng1U64 range) +{ + HANDLE file = (HANDLE)(handle.u64[0]); + U64 offset = range.min; + U64 size = range.max-range.min; + void *ptr = MapViewOfFile(file, FILE_MAP_ALL_ACCESS, + (U32)((offset & 0xffffffff00000000) >> 32), + (U32)((offset & 0x00000000ffffffff)), + size); + return ptr; +} + +internal void +shared_memory_view_close(SharedMemory handle, void *ptr, Rng1U64 range) +{ + UnmapViewOfFile(ptr); +} + +//////////////////////////////// +//~ rjf: @per_os_impl System Info + +internal SystemInfo * +get_system_info(void) +{ + return &w32_state.system_info; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Current Thread Info + +internal U32 +tid(void) +{ + DWORD id = GetCurrentThreadId(); + return (U32)id; +} + +internal void +set_platform_thread_name(String8 name) +{ + Temp scratch = scratch_begin(0, 0); + + // rjf: windows 10 style + if(w32_SetThreadDescription_func) + { + String16 name16 = str16_from_8(scratch.arena, name); + HRESULT hr = w32_SetThreadDescription_func(GetCurrentThread(), (WCHAR*)name16.str); + } + + // rjf: raise-exception style + { + String8 name_copy = push_str8_copy(scratch.arena, name); +#pragma pack(push,8) + typedef struct THREADNAME_INFO THREADNAME_INFO; + struct THREADNAME_INFO + { + U32 dwType; // Must be 0x1000. + char *szName; // Pointer to name (in user addr space). + U32 dwThreadID; // Thread ID (-1=caller thread). + U32 dwFlags; // Reserved for future use, must be zero. + }; +#pragma pack(pop) + THREADNAME_INFO info; + info.dwType = 0x1000; + info.szName = (char *)name_copy.str; + info.dwThreadID = tid(); + info.dwFlags = 0; +#pragma warning(push) +#pragma warning(disable: 6320 6322) + __try + { + RaiseException(0x406D1388, 0, sizeof(info) / sizeof(void *), (const ULONG_PTR *)&info); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + } +#pragma warning(pop) + } + + scratch_end(scratch); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Thread Functions + +internal Thread +thread_launch(ThreadEntryPointFunctionType *f, void *p) +{ + W32_Entity *entity = w32_entity_alloc(W32_EntityKind_Thread); + entity->thread.func = f; + entity->thread.ptr = p; + entity->thread.handle = CreateThread(0, 0, w32_thread_entry_point, entity, 0, &entity->thread.tid); + Thread result = {IntFromPtr(entity)}; + return result; +} + +internal B32 +thread_join(Thread thread, U64 endt_us) +{ + DWORD sleep_ms = w32_sleep_ms_from_endt_us(endt_us); + W32_Entity *entity = (W32_Entity *)PtrFromInt(thread.u64[0]); + DWORD wait_result = WAIT_OBJECT_0; + if(entity != 0) + { + wait_result = WaitForSingleObject(entity->thread.handle, sleep_ms); + CloseHandle(entity->thread.handle); + w32_entity_release(entity); + } + return (wait_result == WAIT_OBJECT_0); +} + +internal void +thread_detach(Thread thread) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(thread.u64[0]); + if(entity != 0) + { + CloseHandle(entity->thread.handle); + w32_entity_release(entity); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Safe Calls + +internal void +safe_call(ThreadEntryPointFunctionType *func, ThreadEntryPointFunctionType *fail_handler, void *ptr) +{ + __try + { + func(ptr); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + if(fail_handler != 0) + { + fail_handler(ptr); + } + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Synchronization Primitive Functions + +//- rjf: recursive mutexes + +internal Mutex +mutex_alloc(void) +{ + W32_Entity *entity = w32_entity_alloc(W32_EntityKind_Mutex); + InitializeCriticalSection(&entity->mutex); + Mutex result = {IntFromPtr(entity)}; + return result; +} + +internal void +mutex_release(Mutex mutex) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(mutex.u64[0]); + DeleteCriticalSection(&entity->mutex); + w32_entity_release(entity); +} + +internal void +mutex_take(Mutex mutex) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(mutex.u64[0]); + EnterCriticalSection(&entity->mutex); +} + +internal void +mutex_drop(Mutex mutex) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(mutex.u64[0]); + LeaveCriticalSection(&entity->mutex); +} + +//- rjf: reader/writer mutexes + +internal RWMutex +rw_mutex_alloc(void) +{ + W32_Entity *entity = w32_entity_alloc(W32_EntityKind_RWMutex); + InitializeSRWLock(&entity->rw_mutex); + RWMutex result = {IntFromPtr(entity)}; + return result; +} + +internal void +rw_mutex_release(RWMutex rw_mutex) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(rw_mutex.u64[0]); + w32_entity_release(entity); +} + +internal void +rw_mutex_take(RWMutex rw_mutex, B32 write_mode) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(rw_mutex.u64[0]); + if(write_mode) + { + AcquireSRWLockExclusive(&entity->rw_mutex); + } + else + { + AcquireSRWLockShared(&entity->rw_mutex); + } +} + +internal void +rw_mutex_drop(RWMutex rw_mutex, B32 write_mode) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(rw_mutex.u64[0]); + if(write_mode) + { + ReleaseSRWLockExclusive(&entity->rw_mutex); + } + else + { + ReleaseSRWLockShared(&entity->rw_mutex); + } +} + +//- rjf: condition variables + +internal CondVar +cond_var_alloc(void) +{ + W32_Entity *entity = w32_entity_alloc(W32_EntityKind_ConditionVariable); + InitializeConditionVariable(&entity->cv); + CondVar result = {IntFromPtr(entity)}; + return result; +} + +internal void +cond_var_release(CondVar cv) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(cv.u64[0]); + w32_entity_release(entity); +} + +internal B32 +cond_var_wait(CondVar cv, Mutex mutex, U64 endt_us) +{ + U32 sleep_ms = w32_sleep_ms_from_endt_us(endt_us); + BOOL result = 0; + if(sleep_ms > 0) + { + W32_Entity *entity = (W32_Entity*)PtrFromInt(cv.u64[0]); + W32_Entity *mutex_entity = (W32_Entity*)PtrFromInt(mutex.u64[0]); + result = SleepConditionVariableCS(&entity->cv, &mutex_entity->mutex, sleep_ms); + } + return result; +} + +internal B32 +cond_var_wait_rw(CondVar cv, RWMutex mutex_rw, B32 write_mode, U64 endt_us) +{ + U32 sleep_ms = w32_sleep_ms_from_endt_us(endt_us); + BOOL result = 0; + if(sleep_ms > 0) + { + W32_Entity *entity = (W32_Entity*)PtrFromInt(cv.u64[0]); + W32_Entity *mutex_entity = (W32_Entity*)PtrFromInt(mutex_rw.u64[0]); + result = SleepConditionVariableSRW(&entity->cv, &mutex_entity->rw_mutex, sleep_ms, + write_mode ? 0 : CONDITION_VARIABLE_LOCKMODE_SHARED); + } + return result; +} + +internal void +cond_var_signal(CondVar cv) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(cv.u64[0]); + WakeConditionVariable(&entity->cv); +} + +internal void +cond_var_broadcast(CondVar cv) +{ + W32_Entity *entity = (W32_Entity*)PtrFromInt(cv.u64[0]); + WakeAllConditionVariable(&entity->cv); +} + +//- rjf: cross-process semaphores + +internal Semaphore +semaphore_alloc(U32 initial_count, U32 max_count, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String16 name16 = str16_from_8(scratch.arena, name); + HANDLE handle = CreateSemaphoreW(0, initial_count, max_count, (WCHAR *)name16.str); + Semaphore result = {(U64)handle}; + scratch_end(scratch); + return result; +} + +internal void +semaphore_release(Semaphore semaphore) +{ + HANDLE handle = (HANDLE)semaphore.u64[0]; + CloseHandle(handle); +} + +internal Semaphore +semaphore_open(String8 name) +{ + Temp scratch = scratch_begin(0, 0); + String16 name16 = str16_from_8(scratch.arena, name); + HANDLE handle = OpenSemaphoreW(SEMAPHORE_ALL_ACCESS, 0, (WCHAR *)name16.str); + Semaphore result = {(U64)handle}; + scratch_end(scratch); + return result; +} + +internal void +semaphore_close(Semaphore semaphore) +{ + HANDLE handle = (HANDLE)semaphore.u64[0]; + CloseHandle(handle); +} + +internal B32 +semaphore_take(Semaphore semaphore, U64 endt_us) +{ + U32 sleep_ms = w32_sleep_ms_from_endt_us(endt_us); + HANDLE handle = (HANDLE)semaphore.u64[0]; + DWORD wait_result = WaitForSingleObject(handle, sleep_ms); + B32 result = (wait_result == WAIT_OBJECT_0); + return result; +} + +internal void +semaphore_drop_count(Semaphore semaphore, U64 drop_count) +{ + ReleaseSemaphore((HANDLE)*semaphore.u64, drop_count, 0); +} + +//- rjf: barriers + +internal Barrier +barrier_alloc(U64 count) +{ + Barrier result = {0}; + if(w32_InitializeSynchronizationBarrier_func != 0) + { + W32_Entity *entity = w32_entity_alloc(W32_EntityKind_Barrier); + if(entity != 0) + { + BOOL init_good = w32_InitializeSynchronizationBarrier_func(&entity->sb, count, -1); + (void)init_good; + } + result.u64[0] = IntFromPtr(entity); + } + else + { + result = slow_barrier_alloc(count); + } + return result; +} + +internal void +barrier_release(Barrier barrier) +{ + if(w32_InitializeSynchronizationBarrier_func != 0) + { + W32_Entity *entity = (W32_Entity*)PtrFromInt(barrier.u64[0]); + if(entity != 0) + { + w32_DeleteSynchronizationBarrier_func(&entity->sb); + w32_entity_release(entity); + } + } + else + { + slow_barrier_release(barrier); + } +} + +internal void +barrier_wait(Barrier barrier) +{ + if(w32_InitializeSynchronizationBarrier_func != 0) + { + W32_Entity *entity = (W32_Entity*)PtrFromInt(barrier.u64[0]); + if(entity != 0) + { + w32_EnterSynchronizationBarrier_func(&entity->sb, 0); + } + } + else + { + slow_barrier_wait(barrier); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl File System (Implemented Per-OS) + +//- rjf: files + +internal File +file_open(AccessFlags flags, String8 path) +{ + File result = {0}; + Temp scratch = scratch_begin(0, 0); + String16 path16 = str16_from_8(scratch.arena, path); + DWORD access_flags = 0; + DWORD share_mode = 0; + DWORD creation_disposition = OPEN_EXISTING; + SECURITY_ATTRIBUTES security_attributes = {sizeof(security_attributes), 0, 0}; + if(flags & AccessFlag_Read) {access_flags |= GENERIC_READ;} + if(flags & AccessFlag_Write) {access_flags |= GENERIC_WRITE;} + if(flags & AccessFlag_Execute) {access_flags |= GENERIC_EXECUTE;} + if(flags & AccessFlag_ShareRead) {share_mode |= FILE_SHARE_READ;} + if(flags & AccessFlag_ShareWrite) {share_mode |= FILE_SHARE_WRITE|FILE_SHARE_DELETE;} + if(flags & AccessFlag_Write) {creation_disposition = CREATE_ALWAYS;} + if(flags & AccessFlag_Append) {creation_disposition = OPEN_ALWAYS; access_flags |= FILE_APPEND_DATA; } + if(flags & AccessFlag_Inherited) + { + security_attributes.bInheritHandle = 1; + } + HANDLE file = CreateFileW((WCHAR *)path16.str, access_flags, share_mode, &security_attributes, creation_disposition, FILE_ATTRIBUTE_NORMAL, 0); + if(file != INVALID_HANDLE_VALUE) + { + result.u64[0] = (U64)file; + } + else + { + DWORD err = GetLastError(); + (void)err; + } + scratch_end(scratch); + return result; +} + +internal void +file_close(File file) +{ + if(file_match(file, file_zero())) { return; } + HANDLE handle = (HANDLE)file.u64[0]; + BOOL result = CloseHandle(handle); + (void)result; +} + +internal U64 +file_read(File file, Rng1U64 rng, void *out_data) +{ + if(file_match(file, file_zero())) { return 0; } + + HANDLE handle = (HANDLE)file.u64[0]; + U8 *ptr = out_data; + U64 off = rng.min; + while(off != rng.max) + { + U64 amt64 = rng.max - off; + U32 amt32 = (U32)Min(MB(32), amt64); + DWORD read_size = 0; + OVERLAPPED overlapped = { .Offset = (U32)off, .OffsetHigh = (U32)(off >> 32) }; + if( ! ReadFile(handle, ptr, amt32, &read_size, &overlapped)) + { + break; + } + ptr += read_size; + off += read_size; + } + + U64 total_read_size = off - rng.min; + return total_read_size; +} + +internal U64 +file_write(File file, Rng1U64 rng, void *data) +{ + if(file_match(file, file_zero())) { return 0; } + HANDLE win_handle = (HANDLE)file.u64[0]; + U64 src_off = 0; + U64 dst_off = rng.min; + U64 total_write_size = dim_1u64(rng); + for(;;) + { + void *bytes_src = (U8 *)data + src_off; + U64 bytes_left = total_write_size - src_off; + DWORD write_size = Min(MB(1), bytes_left); + DWORD bytes_written = 0; + OVERLAPPED overlapped = {0}; + overlapped.Offset = (dst_off&0x00000000ffffffffull); + overlapped.OffsetHigh = (dst_off&0xffffffff00000000ull) >> 32; + BOOL success = WriteFile(win_handle, bytes_src, write_size, &bytes_written, &overlapped); + if(success == 0) + { + break; + } + src_off += bytes_written; + dst_off += bytes_written; + if(bytes_left == 0) + { + break; + } + } + return src_off; +} + +internal B32 +file_set_time(File file, DateTime time) +{ + if(file_match(file, file_zero())) { return 0; } + B32 result = 0; + HANDLE handle = (HANDLE)file.u64[0]; + SYSTEMTIME system_time = {0}; + w32_system_time_from_date_time(&system_time, &time); + FILETIME file_time = {0}; + result = (SystemTimeToFileTime(&system_time, &file_time) && + SetFileTime(handle, &file_time, &file_time, &file_time)); + return result; +} + +internal FileProperties +properties_from_file(File file) +{ + if(file_match(file, file_zero())) { FileProperties r = {0}; return r; } + FileProperties props = {0}; + HANDLE handle = (HANDLE)file.u64[0]; + BY_HANDLE_FILE_INFORMATION info; + BOOL info_good = GetFileInformationByHandle(handle, &info); + if(info_good) + { + U32 size_lo = info.nFileSizeLow; + U32 size_hi = info.nFileSizeHigh; + props.size = (U64)size_lo | (((U64)size_hi)<<32); + w32_dense_time_from_file_time(&props.modified, &info.ftLastWriteTime); + w32_dense_time_from_file_time(&props.created, &info.ftCreationTime); + props.flags = w32_file_property_flags_from_dwFileAttributes(info.dwFileAttributes); + } + return props; +} + +internal FileID +id_from_file(File file) +{ + if(file_match(file, file_zero())) { FileID r = {0}; return r; } + FileID result = {0}; + HANDLE handle = (HANDLE)file.u64[0]; + BY_HANDLE_FILE_INFORMATION info; + BOOL is_ok = GetFileInformationByHandle(handle, &info); + if(is_ok) + { + result.v[0] = info.dwVolumeSerialNumber; + result.v[1] = info.nFileIndexLow; + result.v[2] = info.nFileIndexHigh; + } + return result; +} + +internal B32 +file_reserve_size(File file, U64 size) +{ + HANDLE handle = (HANDLE)file.u64[0]; + + FILE_ALLOCATION_INFO alloc_info = {0}; + alloc_info.AllocationSize.LowPart = size & max_U32; + alloc_info.AllocationSize.HighPart = (size >> 32) & max_U32; + + BOOL is_reserved = SetFileInformationByHandle(handle, FileAllocationInfo, &alloc_info, sizeof(alloc_info)); + return is_reserved; +} + +internal B32 +delete_file_at_path(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String16 path16 = str16_from_8(scratch.arena, path); + B32 result = DeleteFileW((WCHAR*)path16.str); + scratch_end(scratch); + return result; +} + +internal B32 +copy_file_path(String8 dst, String8 src) +{ + Temp scratch = scratch_begin(0, 0); + String16 dst16 = str16_from_8(scratch.arena, dst); + String16 src16 = str16_from_8(scratch.arena, src); + B32 result = CopyFileW((WCHAR*)src16.str, (WCHAR*)dst16.str, 0); + scratch_end(scratch); + return result; +} + +internal B32 +move_file_path(String8 dst, String8 src) +{ + Temp scratch = scratch_begin(0, 0); + String16 dst16 = str16_from_8(scratch.arena, dst); + String16 src16 = str16_from_8(scratch.arena, src); + B32 result = MoveFileW((WCHAR*)src16.str, (WCHAR*)dst16.str); + scratch_end(scratch); + return result; +} + +internal String8 +full_path_from_path(Arena *arena, String8 path) +{ + Temp scratch = scratch_begin(&arena, 1); + DWORD buffer_size = Max(MAX_PATH, path.size * 2) + 1; + String16 path16 = str16_from_8(scratch.arena, path); + WCHAR *buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); + DWORD path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); + if(path16_size > buffer_size) + { + arena_pop(scratch.arena, buffer_size); + buffer_size = path16_size + 1; + buffer = push_array_no_zero(scratch.arena, WCHAR, buffer_size); + path16_size = GetFullPathNameW((WCHAR*)path16.str, buffer_size, buffer, NULL); + } + String8 full_path = str8_from_16(arena, str16((U16*)buffer, path16_size)); + scratch_end(scratch); + return full_path; +} + +internal B32 +file_path_exists(String8 path) +{ + Temp scratch = scratch_begin(0,0); + String16 path16 = str16_from_8(scratch.arena, path); + DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); + B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && !!(~attributes & FILE_ATTRIBUTE_DIRECTORY); + scratch_end(scratch); + return exists; +} + +internal B32 +folder_path_exists(String8 path) +{ + Temp scratch = scratch_begin(0,0); + String16 path16 = str16_from_8(scratch.arena, path); + DWORD attributes = GetFileAttributesW((WCHAR *)path16.str); + B32 exists = (attributes != INVALID_FILE_ATTRIBUTES) && (attributes & FILE_ATTRIBUTE_DIRECTORY); + scratch_end(scratch); + return exists; +} + +internal FileProperties +properties_from_file_path(String8 path) +{ + WIN32_FIND_DATAW find_data = {0}; + Temp scratch = scratch_begin(0, 0); + String16 path16 = str16_from_8(scratch.arena, path); + HANDLE handle = FindFirstFileW((WCHAR *)path16.str, &find_data); + FileProperties props = {0}; + if(handle != INVALID_HANDLE_VALUE) + { + props.size = Compose64Bit(find_data.nFileSizeHigh, find_data.nFileSizeLow); + w32_dense_time_from_file_time(&props.created, &find_data.ftCreationTime); + w32_dense_time_from_file_time(&props.modified, &find_data.ftLastWriteTime); + props.flags = w32_file_property_flags_from_dwFileAttributes(find_data.dwFileAttributes); + } + else + { + Temp scratch = scratch_begin(0, 0); + WCHAR buffer[512] = {0}; + DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); + U64 last_slash_pos = 0; + for(;last_slash_pos < path.size; last_slash_pos = str8_find_needle(path, last_slash_pos+1, str8_lit("/"), StringMatchFlag_SlashInsensitive)); + String8 path_trimmed = str8_prefix(path, last_slash_pos); + for(U64 off = 0; off < (U64)length;) + { + String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); + off += next_drive_string_16.size+1; + String8 next_drive_string = str8_from_16(scratch.arena, next_drive_string_16); + next_drive_string = str8_chop_last_slash(next_drive_string); + if(str8_match(path_trimmed, next_drive_string, StringMatchFlag_CaseInsensitive)) + { + props.flags |= FilePropertyFlag_IsFolder; + break; + } + } + scratch_end(scratch); + } + FindClose(handle); + scratch_end(scratch); + return props; +} + +//- rjf: file maps + +internal FileMap +file_map_open(AccessFlags flags, File file) +{ + FileMap map = {0}; + { + HANDLE file_handle = (HANDLE)file.u64[0]; + DWORD protect_flags = 0; + { + switch(flags) + { + default:{}break; + case AccessFlag_Read: + {protect_flags = PAGE_READONLY;}break; + case AccessFlag_Write: + case AccessFlag_Read|AccessFlag_Write: + {protect_flags = PAGE_READWRITE;}break; + case AccessFlag_Execute: + case AccessFlag_Read|AccessFlag_Execute: + {protect_flags = PAGE_EXECUTE_READ;}break; + case AccessFlag_Execute|AccessFlag_Write|AccessFlag_Read: + case AccessFlag_Execute|AccessFlag_Write: + {protect_flags = PAGE_EXECUTE_READWRITE;}break; + } + } + HANDLE map_handle = CreateFileMappingA(file_handle, 0, protect_flags, 0, 0, 0); + map.u64[0] = (U64)map_handle; + } + return map; +} + +internal void +file_map_close(FileMap map) +{ + HANDLE handle = (HANDLE)map.u64[0]; + BOOL result = CloseHandle(handle); + (void)result; +} + +internal void * +file_map_view_open(FileMap map, AccessFlags flags, Rng1U64 range) +{ + HANDLE handle = (HANDLE)map.u64[0]; + U32 off_lo = (U32)((range.min&0x00000000ffffffffull)>>0); + U32 off_hi = (U32)((range.min&0xffffffff00000000ull)>>32); + U64 size = dim_1u64(range); + DWORD access_flags = 0; + { + switch(flags) + { + default:{}break; + case AccessFlag_Read: + { + access_flags = FILE_MAP_READ; + }break; + case AccessFlag_Write: + { + access_flags = FILE_MAP_WRITE; + }break; + case AccessFlag_Read|AccessFlag_Write: + { + access_flags = FILE_MAP_ALL_ACCESS; + }break; + case AccessFlag_Execute: + case AccessFlag_Read|AccessFlag_Execute: + case AccessFlag_Write|AccessFlag_Execute: + case AccessFlag_Read|AccessFlag_Write|AccessFlag_Execute: + { + access_flags = FILE_MAP_ALL_ACCESS|FILE_MAP_EXECUTE; + }break; + } + } + void *result = MapViewOfFile(handle, access_flags, off_hi, off_lo, size); + DWORD err = GetLastError(); + return result; +} + +internal void +file_map_view_close(FileMap map, void *ptr, Rng1U64 range) +{ + BOOL result = UnmapViewOfFile(ptr); + (void)result; +} + +//- rjf: directory iteration + +internal FileIter * +file_iter_begin(Arena *arena, String8 path, FileIterFlags flags) +{ + Temp scratch = scratch_begin(&arena, 1); + String8 path_with_wildcard = push_str8_cat(scratch.arena, path, str8_lit("\\*")); + String16 path16 = str16_from_8(scratch.arena, path_with_wildcard); + FileIter *iter = push_array(arena, FileIter, 1); + iter->flags = flags; + W32_FileIter *w32_iter = (W32_FileIter*)iter->memory; + if(path.size == 0) + { + w32_iter->is_volume_iter = 1; + WCHAR buffer[512] = {0}; + DWORD length = GetLogicalDriveStringsW(sizeof(buffer), buffer); + String8List drive_strings = {0}; + for(U64 off = 0; off < (U64)length;) + { + String16 next_drive_string_16 = str16_cstring((U16 *)buffer+off); + off += next_drive_string_16.size+1; + String8 next_drive_string = str8_from_16(arena, next_drive_string_16); + next_drive_string = str8_chop_last_slash(next_drive_string); + str8_list_push(scratch.arena, &drive_strings, next_drive_string); + } + w32_iter->drive_strings = str8_array_from_list(arena, &drive_strings); + w32_iter->drive_strings_iter_idx = 0; + } + else + { + w32_iter->handle = FindFirstFileExW((WCHAR*)path16.str, FindExInfoBasic, &w32_iter->find_data, FindExSearchNameMatch, 0, FIND_FIRST_EX_LARGE_FETCH); + } + scratch_end(scratch); + return iter; +} + +internal B32 +file_iter_next(Arena *arena, FileIter *iter, FileInfo *info_out) +{ + B32 result = 0; + FileIterFlags flags = iter->flags; + W32_FileIter *w32_iter = (W32_FileIter*)iter->memory; + switch(w32_iter->is_volume_iter) + { + //- rjf: file iteration + default: + case 0: + { + if (!(flags & FileIterFlag_Done) && w32_iter->handle != INVALID_HANDLE_VALUE) + { + do + { + // check is usable + B32 usable_file = 1; + + WCHAR *file_name = w32_iter->find_data.cFileName; + DWORD attributes = w32_iter->find_data.dwFileAttributes; + if (file_name[0] == '.'){ + if (flags & FileIterFlag_SkipHiddenFiles){ + usable_file = 0; + } + else if (file_name[1] == 0){ + usable_file = 0; + } + else if (file_name[1] == '.' && file_name[2] == 0){ + usable_file = 0; + } + } + if (attributes & FILE_ATTRIBUTE_DIRECTORY){ + if (flags & FileIterFlag_SkipFolders){ + usable_file = 0; + } + } + else{ + if (flags & FileIterFlag_SkipFiles){ + usable_file = 0; + } + } + + // emit if usable + if (usable_file){ + info_out->name = str8_from_16(arena, str16_cstring((U16*)file_name)); + info_out->props.size = (U64)w32_iter->find_data.nFileSizeLow | (((U64)w32_iter->find_data.nFileSizeHigh)<<32); + w32_dense_time_from_file_time(&info_out->props.created, &w32_iter->find_data.ftCreationTime); + w32_dense_time_from_file_time(&info_out->props.modified, &w32_iter->find_data.ftLastWriteTime); + info_out->props.flags = w32_file_property_flags_from_dwFileAttributes(attributes); + result = 1; + if (!FindNextFileW(w32_iter->handle, &w32_iter->find_data)){ + iter->flags |= FileIterFlag_Done; + } + break; + } + }while(FindNextFileW(w32_iter->handle, &w32_iter->find_data)); + } + }break; + + //- rjf: volume iteration + case 1: + { + result = w32_iter->drive_strings_iter_idx < w32_iter->drive_strings.count; + if(result != 0) + { + MemoryZeroStruct(info_out); + info_out->name = w32_iter->drive_strings.v[w32_iter->drive_strings_iter_idx]; + info_out->props.flags |= FilePropertyFlag_IsFolder; + w32_iter->drive_strings_iter_idx += 1; + } + }break; + } + if(!result) + { + iter->flags |= FileIterFlag_Done; + } + return result; +} + +internal void +file_iter_end(FileIter *iter) +{ + W32_FileIter *w32_iter = (W32_FileIter*)iter->memory; + HANDLE zero_handle; + MemoryZeroStruct(&zero_handle); + if(!MemoryMatchStruct(&zero_handle, &w32_iter->handle)) + { + FindClose(w32_iter->handle); + } +} + +//- rjf: directory creation + +internal B32 +make_directory(String8 path) +{ + B32 result = 0; + Temp scratch = scratch_begin(0, 0); + String16 name16 = str16_from_8(scratch.arena, path); + WIN32_FILE_ATTRIBUTE_DATA attributes = {0}; + GetFileAttributesExW((WCHAR*)name16.str, GetFileExInfoStandard, &attributes); + if(attributes.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) + { + result = 1; + } + else if(CreateDirectoryW((WCHAR*)name16.str, 0)) + { + result = 1; + } + scratch_end(scratch); + return(result); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Aborting + +internal void +abort_self(U64 exit_code) +{ + ExitProcess((int)exit_code); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Process Info + +internal ProcessInfo * +get_process_info(void) +{ + return &w32_state.process_info; +} + +internal String8 +get_current_path(Arena *arena) +{ + Temp scratch = scratch_begin(&arena, 1); + DWORD length = GetCurrentDirectoryW(0, 0); + U16 *memory = push_array_no_zero(scratch.arena, U16, length + 1); + length = GetCurrentDirectoryW(length + 1, (WCHAR*)memory); + String8 name = str8_from_16(arena, str16(memory, length)); + scratch_end(scratch); + return name; +} + +internal U32 +get_process_start_time_unix(void) +{ + U32 result = 0; + HANDLE handle = GetCurrentProcess(); + FILETIME start_time = {0}; + FILETIME exit_time; + FILETIME kernel_time; + FILETIME user_time; + if(GetProcessTimes(handle, &start_time, &exit_time, &kernel_time, &user_time)) + { + result = w32_unix_time_from_file_time(start_time); + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Child Processes + +internal Process +process_launch(ProcessLaunchParams *params) +{ + Process result = {0}; + Temp scratch = scratch_begin(0, 0); + + //- rjf: form full command string + String8 cmd = {0}; + { + StringJoin join_params = {0}; + join_params.pre = str8_lit("\""); + join_params.sep = str8_lit("\" \""); + join_params.post = str8_lit("\""); + cmd = str8_list_join(scratch.arena, ¶ms->cmd_line, &join_params); + } + + //- rjf: form environment + B32 use_null_env_arg = 0; + String8 env = {0}; + { + StringJoin join_params2 = {0}; + join_params2.sep = str8_lit("\0"); + join_params2.post = str8_lit("\0"); + String8List all_opts = params->env; + if(params->inherit_env != 0) + { + if(all_opts.node_count != 0) + { + MemoryZeroStruct(&all_opts); + for(String8Node *n = params->env.first; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &all_opts, n->string); + } + for(String8Node *n = w32_state.process_info.environment.first; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &all_opts, n->string); + } + } + else + { + use_null_env_arg = 1; + } + } + if(use_null_env_arg == 0) + { + env = str8_list_join(scratch.arena, &all_opts, &join_params2); + } + } + + //- rjf: utf-8 -> utf-16 + String16 cmd16 = str16_from_8(scratch.arena, cmd); + String16 dir16 = str16_from_8(scratch.arena, params->path); + String16 env16 = {0}; + if(use_null_env_arg == 0) + { + env16 = str16_from_8(scratch.arena, env); + } + + //- rjf: determine creation flags + DWORD creation_flags = CREATE_UNICODE_ENVIRONMENT; + if(params->consoleless) + { + creation_flags |= CREATE_NO_WINDOW; + } + + //- rjf: launch + BOOL inherit_handles = 0; + STARTUPINFOW startup_info = {sizeof(startup_info)}; + if(!file_match(params->stdout_file, file_zero())) + { + HANDLE stdout_handle = (HANDLE)params->stdout_file.u64[0]; + startup_info.hStdOutput = stdout_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + if(!file_match(params->stderr_file, file_zero())) + { + HANDLE stderr_handle = (HANDLE)params->stderr_file.u64[0]; + startup_info.hStdError = stderr_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + if(!file_match(params->stdin_file, file_zero())) + { + HANDLE stdin_handle = (HANDLE)params->stdin_file.u64[0]; + startup_info.hStdInput = stdin_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + PROCESS_INFORMATION process_info = {0}; + if(CreateProcessW(0, (WCHAR*)cmd16.str, 0, 0, inherit_handles, creation_flags, use_null_env_arg ? 0 : (WCHAR*)env16.str, (WCHAR*)dir16.str, &startup_info, &process_info)) + { + result.u64[0] = (U64)process_info.hProcess; + CloseHandle(process_info.hThread); + } + + scratch_end(scratch); + return result; +} + +internal U64 +pid_from_process(Process process) +{ + HANDLE process_handle = (HANDLE)process.u64[0]; + U64 result = (U64)GetProcessId(process_handle); + return result; +} + +internal B32 +process_join(Process process, U64 endt_us, U64 *exit_code_out) +{ + HANDLE process_handle = (HANDLE)(process.u64[0]); + DWORD sleep_ms = w32_sleep_ms_from_endt_us(endt_us); + DWORD result = WaitForSingleObject(process_handle, sleep_ms); + B32 process_joined = (result == WAIT_OBJECT_0); + if(process_joined && exit_code_out) + { + DWORD exit_code = 0; + if(GetExitCodeProcess(process_handle, &exit_code)) + { + *exit_code_out = exit_code; + } + } + if(process_joined) + { + CloseHandle(process_handle); + } + return process_joined; +} + +internal void +process_detach(Process process) +{ + HANDLE process_handle = (HANDLE)(process.u64[0]); + CloseHandle(process_handle); +} + +internal B32 +process_kill(Process process) +{ + HANDLE process_handle = (HANDLE)process.u64[0]; + BOOL was_terminated = TerminateProcess(process_handle, 999); + return was_terminated; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Dynamically-Loaded Libraries + +internal Library +library_open(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String16 path16 = str16_from_8(scratch.arena, path); + HMODULE mod = LoadLibraryW((LPCWSTR)path16.str); + Library result = { (U64)mod }; + scratch_end(scratch); + return result; +} + +internal void +library_close(Library lib) +{ + HMODULE mod = (HMODULE)lib.u64[0]; + FreeLibrary(mod); +} + +internal VoidProc * +library_load_proc(Library lib, String8 name) +{ + Temp scratch = scratch_begin(0, 0); + HMODULE mod = (HMODULE)lib.u64[0]; + name = push_str8_copy(scratch.arena, name); + VoidProc *result = (VoidProc*)GetProcAddress(mod, (LPCSTR)name.str); + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Entry Point + +#include +#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside +#include + +internal B32 win32_g_is_quiet = 0; +internal B32 win32_g_gen_dump = 0; + +internal HRESULT WINAPI +win32_dialog_callback(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, LONG_PTR data) +{ + if(msg == TDN_HYPERLINK_CLICKED) + { + ShellExecuteW(NULL, L"open", (LPWSTR)lparam, NULL, NULL, SW_SHOWNORMAL); + } + return S_OK; +} + +internal LONG WINAPI +win32_exception_filter(EXCEPTION_POINTERS* exception_ptrs) +{ + if(win32_g_is_quiet) + { + ExitProcess(1); + } + + static volatile LONG first = 0; + if(InterlockedCompareExchange(&first, 1, 0) != 0) + { + // prevent failures in other threads to popup same message box + // this handler just shows first thread that crashes + // we are terminating afterwards anyway + for (;;) Sleep(1000); + } + + WCHAR buffer[4096] = {0}; + int buflen = 0; + + DWORD exception_code = exception_ptrs->ExceptionRecord->ExceptionCode; + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"A fatal exception (code 0x%x) occurred. The process is terminating.\n", exception_code); + + // load dbghelp dynamically just in case if it is missing + BOOL (WINAPI *dbg_MiniDumpWriteDump)(HANDLE hProcess, DWORD ProcessId, HANDLE hFile, MINIDUMP_TYPE DumpType, PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, PMINIDUMP_CALLBACK_INFORMATION CallbackParam) = 0; + HMODULE dbghelp = LoadLibraryA("dbghelp.dll"); + if(dbghelp) + { + DWORD (WINAPI *dbg_SymSetOptions)(DWORD SymOptions); + BOOL (WINAPI *dbg_SymInitializeW)(HANDLE hProcess, PCWSTR UserSearchPath, BOOL fInvadeProcess); + BOOL (WINAPI *dbg_StackWalk64)(DWORD MachineType, HANDLE hProcess, HANDLE hThread, + LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, + PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, + PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress); + PVOID (WINAPI *dbg_SymFunctionTableAccess64)(HANDLE hProcess, DWORD64 AddrBase); + DWORD64 (WINAPI *dbg_SymGetModuleBase64)(HANDLE hProcess, DWORD64 qwAddr); + BOOL (WINAPI *dbg_SymFromAddrW)(HANDLE hProcess, DWORD64 Address, PDWORD64 Displacement, PSYMBOL_INFOW Symbol); + BOOL (WINAPI *dbg_SymGetLineFromAddrW64)(HANDLE hProcess, DWORD64 dwAddr, PDWORD pdwDisplacement, PIMAGEHLP_LINEW64 Line); + BOOL (WINAPI *dbg_SymGetModuleInfoW64)(HANDLE hProcess, DWORD64 qwAddr, PIMAGEHLP_MODULEW64 ModuleInfo); + + *(FARPROC*)&dbg_SymSetOptions = GetProcAddress(dbghelp, "SymSetOptions"); + *(FARPROC*)&dbg_SymInitializeW = GetProcAddress(dbghelp, "SymInitializeW"); + *(FARPROC*)&dbg_StackWalk64 = GetProcAddress(dbghelp, "StackWalk64"); + *(FARPROC*)&dbg_SymFunctionTableAccess64 = GetProcAddress(dbghelp, "SymFunctionTableAccess64"); + *(FARPROC*)&dbg_SymGetModuleBase64 = GetProcAddress(dbghelp, "SymGetModuleBase64"); + *(FARPROC*)&dbg_SymFromAddrW = GetProcAddress(dbghelp, "SymFromAddrW"); + *(FARPROC*)&dbg_SymGetLineFromAddrW64 = GetProcAddress(dbghelp, "SymGetLineFromAddrW64"); + *(FARPROC*)&dbg_SymGetModuleInfoW64 = GetProcAddress(dbghelp, "SymGetModuleInfoW64"); + *(FARPROC*)&dbg_MiniDumpWriteDump = GetProcAddress(dbghelp, "MiniDumpWriteDump"); + + if(dbg_SymSetOptions && dbg_SymInitializeW && dbg_StackWalk64 && dbg_SymFunctionTableAccess64 && dbg_SymGetModuleBase64 && dbg_SymFromAddrW && dbg_SymGetLineFromAddrW64 && dbg_SymGetModuleInfoW64) + { + HANDLE process = GetCurrentProcess(); + HANDLE thread = GetCurrentThread(); + CONTEXT context = *exception_ptrs->ContextRecord; + + WCHAR module_path[MAX_PATH]; + GetModuleFileNameW(NULL, module_path, ArrayCount(module_path)); + PathRemoveFileSpecW(module_path); + + dbg_SymSetOptions(SYMOPT_EXACT_SYMBOLS | SYMOPT_FAIL_CRITICAL_ERRORS | SYMOPT_LOAD_LINES | SYMOPT_UNDNAME); + if(dbg_SymInitializeW(process, module_path, TRUE)) + { + // check that raddbg.pdb file is good + B32 raddbg_pdb_valid = 0; + { + IMAGEHLP_MODULEW64 module = {0}; + module.SizeOfStruct = sizeof(module); + if(dbg_SymGetModuleInfoW64(process, (DWORD64)&win32_exception_filter, &module)) + { + raddbg_pdb_valid = (module.SymType == SymPdb); + } + } + + if(!raddbg_pdb_valid) + { + buflen += wnsprintfW(buffer + buflen, sizeof(buffer) - buflen, + L"\nThe PDB debug information file for this executable is not valid or was not found. Please rebuild binary to get the call stack.\n"); + } + else + { + STACKFRAME64 frame = {0}; + DWORD image_type; +#if defined(_M_AMD64) + image_type = IMAGE_FILE_MACHINE_AMD64; + frame.AddrPC.Offset = context.Rip; + frame.AddrPC.Mode = AddrModeFlat; + frame.AddrFrame.Offset = context.Rbp; + frame.AddrFrame.Mode = AddrModeFlat; + frame.AddrStack.Offset = context.Rsp; + frame.AddrStack.Mode = AddrModeFlat; +#elif defined(_M_ARM64) + image_type = IMAGE_FILE_MACHINE_ARM64; + frame.AddrPC.Offset = context.Pc; + frame.AddrPC.Mode = AddrModeFlat; + frame.AddrFrame.Offset = context.Fp; + frame.AddrFrame.Mode = AddrModeFlat; + frame.AddrStack.Offset = context.Sp; + frame.AddrStack.Mode = AddrModeFlat; +#else +# error Arch not supported! +#endif + +#if BUILD_CONSOLE_INTERFACE + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nCreate a new issue with this report at %S.\n\n", BUILD_ISSUES_LINK_STRING_LITERAL); +#else + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, + L"\nPress Ctrl+C to copy this text to clipboard, then create a new issue at\n" + L"%S\n\n", BUILD_ISSUES_LINK_STRING_LITERAL, BUILD_ISSUES_LINK_STRING_LITERAL); +#endif + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"Call stack:\n"); + + U64 frame_offset = 0; + + if (frame.AddrPC.Offset == 0) + { + // if IP address is 0 then most likely we have called indirectly on NULL function pointer + // which means no useful stack unwinding will happen, because there's no unwind info for address 0 + // but we can try reading 8 bytes of return address from stack, and start unwinding there + + ULONG_PTR hi, lo; + GetCurrentThreadStackLimits(&lo, &hi); + if (frame.AddrStack.Offset >= lo && frame.AddrStack.Offset <= hi - sizeof(void*)) + { + frame.AddrPC.Offset = *(DWORD64*)frame.AddrStack.Offset - 1; + frame.AddrStack.Offset += sizeof(void*); +#if defined(_M_AMD64) + context.Rip = frame.AddrPC.Offset; + context.Rsp = frame.AddrStack.Offset; +#elif defined(_M_ARM64) + context.Pc = frame.AddrPC.Offset; + context.Sp = frame.AddrStack.Offset; +#endif + } + + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"1. [NULL]\n"); + frame_offset = 1; + } + + for(U32 idx=0; ;idx++) + { + const U32 max_frames = 32; + if(idx == max_frames) + { + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"..."); + break; + } + + if(!dbg_StackWalk64(image_type, process, thread, &frame, &context, 0, dbg_SymFunctionTableAccess64, dbg_SymGetModuleBase64, 0)) + { + break; + } + + U64 address = frame.AddrPC.Offset; + if(address == 0) + { + break; + } + + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"%u. [0x%I64x]", frame_offset + idx + 1, address); + + struct { + SYMBOL_INFOW info; + WCHAR name[MAX_SYM_NAME]; + } symbol = {0}; + + symbol.info.SizeOfStruct = sizeof(symbol.info); + symbol.info.MaxNameLen = MAX_SYM_NAME; + + DWORD64 displacement = 0; + if(dbg_SymFromAddrW(process, address, &displacement, &symbol.info)) + { + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s +%u", symbol.info.Name, (DWORD)displacement); + + IMAGEHLP_LINEW64 line = {0}; + line.SizeOfStruct = sizeof(line); + + DWORD line_displacement = 0; + if(dbg_SymGetLineFromAddrW64(process, address, &line_displacement, &line)) + { + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L", %s line %u", PathFindFileNameW(line.FileName), line.LineNumber); + } + } + else + { + IMAGEHLP_MODULEW64 module = {0}; + module.SizeOfStruct = sizeof(module); + if(dbg_SymGetModuleInfoW64(process, address, &module)) + { + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L" %s", module.ModuleName); + } + } + + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\n"); + } + } + } + } + } + + buflen += wnsprintfW(buffer + buflen, ArrayCount(buffer) - buflen, L"\nVersion: %S%S", BUILD_VERSION_STRING_LITERAL, BUILD_GIT_HASH_STRING_LITERAL_APPEND); + + B32 generate_crash_dump = win32_g_gen_dump; +#if BUILD_CONSOLE_INTERFACE + fwprintf(stderr, L"\n--- Fatal Exception ---\n"); + fwprintf(stderr, L"%s\n\n", buffer); +#else + int selected_button = 0; + TASKDIALOG_BUTTON generate_dump = {1, L"Generate Crash Dump File"}; + TASKDIALOGCONFIG dialog = {0}; + dialog.cbSize = sizeof(dialog); + dialog.dwFlags = TDF_SIZE_TO_CONTENT | TDF_ENABLE_HYPERLINKS | TDF_ALLOW_DIALOG_CANCELLATION; + dialog.pszMainIcon = TD_ERROR_ICON; + dialog.dwCommonButtons = TDCBF_CLOSE_BUTTON; + dialog.pszWindowTitle = L"Fatal Exception"; + dialog.pszContent = buffer; + dialog.pfCallback = &win32_dialog_callback; + dialog.cButtons = 1; + dialog.pButtons = &generate_dump; + TaskDialogIndirect(&dialog, &selected_button, 0, 0); + generate_crash_dump = (selected_button == generate_dump.nButtonID); +#endif + + if(dbg_MiniDumpWriteDump && generate_crash_dump) + { + WCHAR dump_file_path[MAX_PATH] = {0}; + SHGetFolderPathW(0, CSIDL_DESKTOP, 0, 0, dump_file_path); + PathAppendW(dump_file_path, L"raddbg_crash_dump.dmp"); + HANDLE file = CreateFileW(dump_file_path, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); + if(file != INVALID_HANDLE_VALUE) + { + MINIDUMP_EXCEPTION_INFORMATION info = {0}; + info.ThreadId = GetCurrentThreadId(); + info.ExceptionPointers = exception_ptrs; + info.ClientPointers = FALSE; + BOOL dump_successful = dbg_MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), file, MiniDumpNormal, &info, 0, 0); + CloseHandle(file); + if(dump_successful) + { +#if !BUILD_CONSOLE_INTERFACE + // opens explorer and selects file + SFGAOF flags = 0; + PIDLIST_ABSOLUTE list = 0; + if (SUCCEEDED(SHParseDisplayName(dump_file_path, NULL, &list, 0, &flags))) + { + SHOpenFolderAndSelectItems(list, 0, NULL, 0); + CoTaskMemFree(list); + } +#endif + } + } + } + + ExitProcess(1); +} + +#undef OS_WINDOWS // shlwapi uses its own OS_WINDOWS include inside +#define OS_WINDOWS 1 + +internal void +w32_entry_point_caller(int argc, WCHAR **wargv) +{ + SetUnhandledExceptionFilter(&win32_exception_filter); + + //- rjf: dynamically load windows functions which are not guaranteed + // in all SDKs + { + HMODULE module = LoadLibraryA("kernel32.dll"); + w32_SetThreadDescription_func = (W32_SetThreadDescription_Type *)GetProcAddress(module, "SetThreadDescription"); + w32_InitializeSynchronizationBarrier_func = (W32_InitializeSynchronizationBarrier_Type *)GetProcAddress(module, "InitializeSynchronizationBarrier"); + w32_DeleteSynchronizationBarrier_func = (W32_DeleteSynchronizationBarrier_Type *)GetProcAddress(module, "DeleteSynchronizationBarrier"); + w32_EnterSynchronizationBarrier_func = (W32_EnterSynchronizationBarrier_Type *)GetProcAddress(module, "EnterSynchronizationBarrier"); + if(w32_InitializeSynchronizationBarrier_func == 0) + { + w32_DeleteSynchronizationBarrier_func = 0; + w32_EnterSynchronizationBarrier_func = 0; + } + FreeLibrary(module); + } + + //- rjf: try to allow large pages if we can + B32 large_pages_allowed = 0; + { + HANDLE token; + if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token)) + { + LUID luid; + if(LookupPrivilegeValue(0, SE_LOCK_MEMORY_NAME, &luid)) + { + TOKEN_PRIVILEGES priv; + priv.PrivilegeCount = 1; + priv.Privileges[0].Luid = luid; + priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; + large_pages_allowed = !!AdjustTokenPrivileges(token, 0, &priv, sizeof(priv), 0, 0); + } + CloseHandle(token); + } + } + + //- rjf: get RIO extension function table + { + // NOTE(mmozeiko): need to get function pointers to RIO functions, and that requires dummy socket + WSADATA WinSockData; + WSAStartup(MAKEWORD(2, 2), &WinSockData); + GUID guid = WSAID_MULTIPLE_RIO; + DWORD rio_byte = 0; + SOCKET Sock = socket(AF_UNSPEC, SOCK_STREAM, IPPROTO_TCP); + WSAIoctl(Sock, SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER, &guid, sizeof(guid), (void**)&w32_rio_functions, sizeof(w32_rio_functions), &rio_byte, 0, 0); + closesocket(Sock); + } + + //- rjf: get system info + SYSTEM_INFO sysinfo = {0}; + GetSystemInfo(&sysinfo); + + //- rjf: set up non-dynamically-alloc'd state + // + // (we need to set up some basics before this layer can supply + // memory allocation primitives) + { + w32_state.microsecond_resolution = 1; + LARGE_INTEGER large_int_resolution; + if(QueryPerformanceFrequency(&large_int_resolution)) + { + w32_state.microsecond_resolution = large_int_resolution.QuadPart; + } + } + { + SystemInfo *info = &w32_state.system_info; + info->logical_processor_count = (U64)sysinfo.dwNumberOfProcessors; + info->page_size = sysinfo.dwPageSize; + info->large_page_size = GetLargePageMinimum(); + info->allocation_granularity = sysinfo.dwAllocationGranularity; + } + { + ProcessInfo *info = &w32_state.process_info; + info->large_pages_allowed = large_pages_allowed; + info->pid = GetCurrentProcessId(); + } + + //- rjf: extract arguments + Arena *args_arena = arena_alloc(.reserve_size = MB(1), .commit_size = KB(32)); + char **argv = push_array(args_arena, char *, argc); + for(int i = 0; i < argc; i += 1) + { + String16 arg16 = str16_cstring((U16 *)wargv[i]); + String8 arg8 = str8_from_16(args_arena, arg16); + if(str8_match(arg8, str8_lit("--quiet"), StringMatchFlag_CaseInsensitive) || + str8_match(arg8, str8_lit("-quiet"), StringMatchFlag_CaseInsensitive)) + { + win32_g_is_quiet = 1; + } + if(str8_match(arg8, str8_lit("--large_pages"), StringMatchFlag_CaseInsensitive) || + str8_match(arg8, str8_lit("-large_pages"), StringMatchFlag_CaseInsensitive)) + { + arena_default_flags = ArenaFlag_LargePages; + arena_default_reserve_size = Max(MB(64), w32_state.system_info.large_page_size); + arena_default_commit_size = arena_default_reserve_size; + } + if(str8_match(arg8, str8_lit("--gen_crash_dump"), StringMatchFlag_CaseInsensitive) || + str8_match(arg8, str8_lit("-gen_crash_dump"), StringMatchFlag_CaseInsensitive)) + { + win32_g_gen_dump = 1; + } + argv[i] = (char *)arg8.str; + } + + //- rjf: set up thread context + TCTX *tctx = tctx_alloc(); + tctx_select(tctx); + + //- rjf: set up dynamically-alloc'd state + Arena *arena = arena_alloc(); + { + w32_state.arena = arena; + { + SystemInfo *info = &w32_state.system_info; + U8 buffer[MAX_COMPUTERNAME_LENGTH + 1] = {0}; + DWORD size = MAX_COMPUTERNAME_LENGTH + 1; + if(GetComputerNameA((char*)buffer, &size)) + { + info->machine_name = push_str8_copy(arena, str8(buffer, size)); + } + } + } + { + ProcessInfo *info = &w32_state.process_info; + { + Temp scratch = scratch_begin(0, 0); + DWORD size = KB(32); + U16 *buffer = push_array_no_zero(scratch.arena, U16, size); + DWORD length = GetModuleFileNameW(0, (WCHAR*)buffer, size); + String8 name8 = str8_from_16(scratch.arena, str16(buffer, length)); + info->binary_file_path = push_str8_copy(arena, name8); + info->binary_path = str8_chop_last_slash(info->binary_file_path); + scratch_end(scratch); + } + info->initial_path = get_current_path(arena); + { + Temp scratch = scratch_begin(0, 0); + U64 size = KB(32); + U16 *buffer = push_array_no_zero(scratch.arena, U16, size); + if(SUCCEEDED(SHGetFolderPathW(0, CSIDL_APPDATA, 0, 0, (WCHAR*)buffer))) + { + info->user_program_config_data_path = str8_from_16(arena, str16_cstring(buffer)); + info->user_program_cache_data_path = info->user_program_logs_data_path = info->user_program_config_data_path; + } + scratch_end(scratch); + } + { + WCHAR *this_proc_env = GetEnvironmentStringsW(); + U64 start_idx = 0; + for(U64 idx = 0;; idx += 1) + { + if(this_proc_env[idx] == 0) + { + if(start_idx == idx) + { + break; + } + else + { + String16 string16 = str16((U16 *)this_proc_env + start_idx, idx - start_idx); + String8 string = str8_from_16(arena, string16); + str8_list_push(arena, &info->environment, string); + start_idx = idx+1; + } + } + } + } + } + + //- rjf: set up entity storage + InitializeCriticalSection(&w32_state.entity_mutex); + w32_state.entity_arena = arena_alloc(); + + //- rjf: call into "real" entry point + main_thread_base_entry_point(argc, argv); +} + +#if BUILD_CONSOLE_INTERFACE +int wmain(int argc, WCHAR **argv) +{ + w32_entry_point_caller(argc, argv); + return 0; +} +#else +int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) +{ + CoInitializeEx(0, COINIT_APARTMENTTHREADED); + w32_entry_point_caller(__argc, __wargv); + return 0; +} +#endif diff --git a/src/os/core/win32/os_core_win32.h b/src/win32/base/win32_base.h similarity index 52% rename from src/os/core/win32/os_core_win32.h rename to src/win32/base/win32_base.h index 777961c0..a70812e1 100644 --- a/src/os/core/win32/os_core_win32.h +++ b/src/win32/base/win32_base.h @@ -1,126 +1,140 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef OS_CORE_WIN32_H -#define OS_CORE_WIN32_H - -//////////////////////////////// -//~ rjf: Includes / Libraries - -#include -#include -#include -#include -#include -#include -#include -#include -#pragma comment(lib, "user32") -#pragma comment(lib, "winmm") -#pragma comment(lib, "shell32") -#pragma comment(lib, "advapi32") -#pragma comment(lib, "rpcrt4") -#pragma comment(lib, "shlwapi") -#pragma comment(lib, "comctl32") -#pragma comment(lib, "ws2_32") -#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") // this is required for loading correct comctl32 dll file - -//////////////////////////////// -//~ rjf: File Iterator Types - -typedef struct OS_W32_FileIter OS_W32_FileIter; -struct OS_W32_FileIter -{ - HANDLE handle; - WIN32_FIND_DATAW find_data; - B32 is_volume_iter; - String8Array drive_strings; - U64 drive_strings_iter_idx; -}; -StaticAssert(sizeof(Member(OS_FileIter, memory)) >= sizeof(OS_W32_FileIter), file_iter_memory_size); - -//////////////////////////////// -//~ rjf: Entity Types - -typedef enum OS_W32_EntityKind -{ - OS_W32_EntityKind_Null, - OS_W32_EntityKind_Thread, - OS_W32_EntityKind_Mutex, - OS_W32_EntityKind_RWMutex, - OS_W32_EntityKind_ConditionVariable, - OS_W32_EntityKind_Barrier, -} -OS_W32_EntityKind; - -typedef struct OS_W32_Entity OS_W32_Entity; -struct OS_W32_Entity -{ - OS_W32_Entity *next; - OS_W32_EntityKind kind; - union - { - struct - { - ThreadEntryPointFunctionType *func; - void *ptr; - HANDLE handle; - DWORD tid; - } thread; - CRITICAL_SECTION mutex; - SRWLOCK rw_mutex; - CONDITION_VARIABLE cv; - SYNCHRONIZATION_BARRIER sb; - }; -}; - -//////////////////////////////// -//~ rjf: State - -typedef struct OS_W32_State OS_W32_State; -struct OS_W32_State -{ - Arena *arena; - - // rjf: info - OS_SystemInfo system_info; - OS_ProcessInfo process_info; - U64 microsecond_resolution; - - // rjf: entity storage - CRITICAL_SECTION entity_mutex; - Arena *entity_arena; - OS_W32_Entity *entity_free; -}; - -//////////////////////////////// -//~ rjf: Globals - -global OS_W32_State os_w32_state = {0}; - -//////////////////////////////// -//~ rjf: File Info Conversion Helpers - -internal FilePropertyFlags os_w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes); -internal void os_w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes); - -//////////////////////////////// -//~ rjf: Time Conversion Helpers - -internal void os_w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in); -internal void os_w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in); -internal void os_w32_dense_time_from_file_time(DenseTime *out, FILETIME *in); -internal U32 os_w32_sleep_ms_from_endt_us(U64 endt_us); - -//////////////////////////////// -//~ rjf: Entity Functions - -internal OS_W32_Entity *os_w32_entity_alloc(OS_W32_EntityKind kind); -internal void os_w32_entity_release(OS_W32_Entity *entity); - -//////////////////////////////// -//~ rjf: Thread Entry Point - -internal DWORD os_w32_thread_entry_point(void *ptr); - -#endif // OS_CORE_WIN32_H +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_BASE_H +#define WIN32_BASE_H + +//////////////////////////////// +//~ rjf: Includes / Libraries + +#include +#include +#include +#include +#include +#include +#include +#include +#pragma comment(lib, "user32") +#pragma comment(lib, "ole32") +#pragma comment(lib, "shell32") +#pragma comment(lib, "advapi32") +#pragma comment(lib, "rpcrt4") +#pragma comment(lib, "shlwapi") +#pragma comment(lib, "comctl32") +#pragma comment(lib, "ws2_32") +#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"") // this is required for loading correct comctl32 dll file + +//////////////////////////////// +//~ rjf: File Iterator Types + +typedef struct W32_FileIter W32_FileIter; +struct W32_FileIter +{ + HANDLE handle; + WIN32_FIND_DATAW find_data; + B32 is_volume_iter; + String8Array drive_strings; + U64 drive_strings_iter_idx; +}; +StaticAssert(sizeof(Member(FileIter, memory)) >= sizeof(W32_FileIter), file_iter_memory_size); + +//////////////////////////////// +//~ rjf: Entity Types + +typedef enum W32_EntityKind +{ + W32_EntityKind_Null, + W32_EntityKind_Thread, + W32_EntityKind_Mutex, + W32_EntityKind_RWMutex, + W32_EntityKind_ConditionVariable, + W32_EntityKind_Barrier, +} +W32_EntityKind; + +typedef struct W32_SYNCHRONIZATION_BARRIER W32_SYNCHRONIZATION_BARRIER; +struct W32_SYNCHRONIZATION_BARRIER +{ + DWORD reserved_0; + DWORD reserved_1; +#if ARCH_32BIT + U32 reserved_2[2]; +#else + U64 reserved_2[2]; +#endif + DWORD reserved_3; + DWORD reserved_4; +}; + +typedef struct W32_Entity W32_Entity; +struct W32_Entity +{ + W32_Entity *next; + W32_EntityKind kind; + union + { + struct + { + ThreadEntryPointFunctionType *func; + void *ptr; + HANDLE handle; + DWORD tid; + } thread; + CRITICAL_SECTION mutex; + SRWLOCK rw_mutex; + CONDITION_VARIABLE cv; + W32_SYNCHRONIZATION_BARRIER sb; + }; +}; + +//////////////////////////////// +//~ rjf: State + +typedef struct W32_State W32_State; +struct W32_State +{ + Arena *arena; + + // rjf: info + SystemInfo system_info; + ProcessInfo process_info; + U64 microsecond_resolution; + + // rjf: entity storage + CRITICAL_SECTION entity_mutex; + Arena *entity_arena; + W32_Entity *entity_free; +}; + +//////////////////////////////// +//~ rjf: Globals + +global W32_State w32_state = {0}; + +//////////////////////////////// +//~ rjf: File Info Conversion Helpers + +internal FilePropertyFlags w32_file_property_flags_from_dwFileAttributes(DWORD dwFileAttributes); +internal void w32_file_properties_from_attribute_data(FileProperties *properties, WIN32_FILE_ATTRIBUTE_DATA *attributes); + +//////////////////////////////// +//~ rjf: Time Conversion Helpers + +internal void w32_date_time_from_system_time(DateTime *out, SYSTEMTIME *in); +internal void w32_system_time_from_date_time(SYSTEMTIME *out, DateTime *in); +internal void w32_dense_time_from_file_time(DenseTime *out, FILETIME *in); +internal U32 w32_sleep_ms_from_endt_us(U64 endt_us); + +//////////////////////////////// +//~ rjf: Entity Functions + +internal W32_Entity *w32_entity_alloc(W32_EntityKind kind); +internal void w32_entity_release(W32_Entity *entity); + +//////////////////////////////// +//~ rjf: Thread Entry Point + +internal DWORD w32_thread_entry_point(void *ptr); + +#endif // WIN32_BASE_H diff --git a/src/demon/win32/demon_core_win32.c b/src/win32/demon/win32_demon.c similarity index 61% rename from src/demon/win32/demon_core_win32.c rename to src/win32/demon/win32_demon.c index 8ccf1fa7..f8c9f6cf 100644 --- a/src/demon/win32/demon_core_win32.c +++ b/src/win32/demon/win32_demon.c @@ -1,3264 +1,3365 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal U64 -dmn_w32_hash_from_string(String8 string) -{ - U64 result = 5381; - for(U64 i = 0; i < string.size; i += 1) - { - result = ((result << 5) + result) + string.str[i]; - } - return result; -} - -internal U64 -dmn_w32_hash_from_id(U64 id) -{ - return dmn_w32_hash_from_string(str8_struct(&id)); -} - -//////////////////////////////// -//~ rjf: Entity Helpers - -//- rjf: entity <-> handle - -internal DMN_Handle -dmn_w32_handle_from_entity(DMN_W32_Entity *entity) -{ - U32 idx = (U32)(entity - dmn_w32_shared->entities_base); - U32 gen = entity->gen; - DMN_Handle handle = {idx, gen}; - return handle; -} - -internal DMN_W32_Entity * -dmn_w32_entity_from_handle(DMN_Handle handle) -{ - U32 idx = handle.u32[0]; - U32 gen = handle.u32[1]; - DMN_W32_Entity *entity = dmn_w32_shared->entities_base + idx; - if(entity->gen != gen) - { - entity = &dmn_w32_entity_nil; - } - return entity; -} - -//- rjf: entity allocation/deallocation - -internal DMN_W32_Entity * -dmn_w32_entity_alloc(DMN_W32_Entity *parent, DMN_W32_EntityKind kind, U64 id) -{ - // rjf: allocate - DMN_W32_Entity *e = dmn_w32_shared->entities_first_free; - { - U32 gen = 0; - if(e != 0) - { - SLLStackPop(dmn_w32_shared->entities_first_free); - gen = e->gen; - } - else - { - e = push_array_no_zero(dmn_w32_shared->entities_arena, DMN_W32_Entity, 1); - dmn_w32_shared->entities_count += 1; - } - MemoryZeroStruct(e); - e->gen = gen+1; - } - - // rjf: fill - { - e->kind = kind; - e->id = id; - e->parent = parent; - e->next = e->prev = e->first = e->last = &dmn_w32_entity_nil; - if(parent != &dmn_w32_entity_nil) - { - DLLPushBack_NPZ(&dmn_w32_entity_nil, parent->first, parent->last, e, next, prev); - } - } - - // rjf: insert into id -> entity map - if(id != 0) - { - U64 hash = dmn_w32_hash_from_id(id); - U64 slot_idx = hash%dmn_w32_shared->entities_id_hash_slots_count; - DMN_W32_EntityIDHashSlot *slot = &dmn_w32_shared->entities_id_hash_slots[slot_idx]; - DMN_W32_EntityIDHashNode *node = 0; - for(DMN_W32_EntityIDHashNode *n = slot->first; n != 0; n = n->next) - { - if(n->id == id) - { - node = n; - break; - } - } - if(node == 0) - { - node = dmn_w32_shared->entities_id_hash_node_free; - if(node != 0) - { - SLLStackPop(dmn_w32_shared->entities_id_hash_node_free); - } - else - { - node = push_array(dmn_w32_shared->arena, DMN_W32_EntityIDHashNode, 1); - } - DLLPushBack(slot->first, slot->last, node); - } - node->id = id; - node->entity = e; - } - - return e; -} - -internal void -dmn_w32_entity_release(DMN_W32_Entity *entity) -{ - // rjf: unhook root - if(entity->parent != &dmn_w32_entity_nil) - { - DLLRemove_NPZ(&dmn_w32_entity_nil, entity->parent->first, entity->parent->last, entity, next, prev); - } - - // rjf: walk every entity in this tree, free each - if(entity != &dmn_w32_entity_nil) - { - Temp scratch = scratch_begin(0, 0); - typedef struct Task Task; - struct Task - { - Task *next; - DMN_W32_Entity *e; - }; - Task start_task = {0, entity}; - Task *first_task = &start_task; - Task *last_task = &start_task; - for(Task *t = first_task; t != 0; t = t->next) - { - for(DMN_W32_Entity *child = t->e->first; child != &dmn_w32_entity_nil; child = child->next) - { - Task *t = push_array(scratch.arena, Task, 1); - t->e = child; - SLLQueuePush(first_task, last_task, t); - } - - // rjf: free entity - SLLStackPush(dmn_w32_shared->entities_first_free, t->e); - t->e->gen += 1; - if(t->e->kind == DMN_W32_EntityKind_Module) - { - CloseHandle(t->e->handle); - } - t->e->kind = DMN_W32_EntityKind_Null; - - // rjf: remove from id -> entity map - if(t->e->id != 0) - { - U64 hash = dmn_w32_hash_from_id(t->e->id); - U64 slot_idx = hash%dmn_w32_shared->entities_id_hash_slots_count; - DMN_W32_EntityIDHashSlot *slot = &dmn_w32_shared->entities_id_hash_slots[slot_idx]; - DMN_W32_EntityIDHashNode *node = 0; - for(DMN_W32_EntityIDHashNode *n = slot->first; n != 0; n = n->next) - { - if(n->id == t->e->id && n->entity == t->e) - { - DLLRemove(slot->first, slot->last, n); - SLLStackPush(dmn_w32_shared->entities_id_hash_node_free, n); - break; - } - } - } - } - scratch_end(scratch); - } -} - -//- rjf: kind*id -> entity - -internal DMN_W32_Entity * -dmn_w32_entity_from_kind_id(DMN_W32_EntityKind kind, U64 id) -{ - DMN_W32_Entity *result = &dmn_w32_entity_nil; - U64 hash = dmn_w32_hash_from_id(id); - U64 slot_idx = hash%dmn_w32_shared->entities_id_hash_slots_count; - DMN_W32_EntityIDHashSlot *slot = &dmn_w32_shared->entities_id_hash_slots[slot_idx]; - DMN_W32_EntityIDHashNode *node = 0; - for(DMN_W32_EntityIDHashNode *n = slot->first; n != 0; n = n->next) - { - if(n->entity->kind == kind && n->id == id) - { - node = n; - break; - } - } - if(node != 0) - { - result = node->entity; - } - return result; -} - -//////////////////////////////// -//~ rjf: Module Info Extraction - -internal String8 -dmn_w32_full_path_from_module(Arena *arena, DMN_W32_Entity *module) -{ - Temp scratch = scratch_begin(&arena, 1); - - //- rjf: extract path from module - String16 path16 = {0}; - String8 path8 = {0}; - { - // rjf: handle -> full path - if(module->handle != 0) - { - DWORD cap16 = GetFinalPathNameByHandleW(module->handle, 0, 0, VOLUME_NAME_DOS); - U16 *buffer16 = push_array_no_zero(scratch.arena, U16, cap16); - DWORD size16 = GetFinalPathNameByHandleW(module->handle, (WCHAR*)buffer16, cap16, VOLUME_NAME_DOS); - path16 = str16(buffer16, size16); - } - - // rjf: fallback (main module only): process -> full path - if(path16.size == 0 && module->module.is_main) - { - DMN_W32_Entity *process = module->parent; - DWORD size = KB(4); - U16 *buf = push_array_no_zero(scratch.arena, U16, size); - if(QueryFullProcessImageNameW(process->handle, 0, (WCHAR*)buf, &size)) - { - path16 = str16(buf, size); - } - } - - // rjf: fallback (any module - no guarantee): address_of_name -> full path - if(path16.size == 0 && module->module.address_of_name_pointer != 0) - { - DMN_W32_Entity *process = module->parent; - U64 ptr_size = bit_size_from_arch(process->arch)/8; - U64 name_pointer = 0; - if(dmn_w32_process_read(process->handle, r1u64(module->module.address_of_name_pointer, module->module.address_of_name_pointer+ptr_size), &name_pointer)) - { - if(name_pointer != 0) - { - if(module->module.name_is_unicode) - { - path16 = dmn_w32_read_memory_str16(scratch.arena, process->handle, name_pointer); - } - else - { - path8 = dmn_w32_read_memory_str(scratch.arena, process->handle, name_pointer); - } - } - } - } - } - - // rjf: produce finalized result - String8 result = {0}; - { - if(path16.size > 0) - { - // rjf: skip the extended path thing if necessary - if(path16.size >= 4 && - path16.str[0] == L'\\' && - path16.str[1] == L'\\' && - path16.str[2] == L'?' && - path16.str[3] == L'\\') - { - path16.size -= 4; - path16.str += 4; - } - - // rjf: convert to UTF-8 - result = str8_from_16(arena, path16); - } - else - { - // rjf: skip the extended path thing if necessary - if (path8.size >= 4 && - path8.str[0] == L'\\' && - path8.str[1] == L'\\' && - path8.str[2] == L'?' && - path8.str[3] == L'\\') - { - path8.size -= 4; - path8.str += 4; - } - - // rjf: copy to output arena - result = push_str8_copy(arena, path8); - } - } - - scratch_end(scratch); - return result; -} - -//////////////////////////////// -//~ rjf: Win32-Level Process/Thread Reads/Writes - -//- rjf: processes - -internal U64 -dmn_w32_process_read(HANDLE process, Rng1U64 range, void *dst) -{ - U64 bytes_read = 0; - U8 *ptr = (U8*)dst; - U8 *opl = ptr + dim_1u64(range); - U64 cursor = range.min; - for(;ptr < opl;) - { - SIZE_T to_read = (SIZE_T)(opl - ptr); - SIZE_T actual_read = 0; - if(!ReadProcessMemory(process, (LPCVOID)cursor, ptr, to_read, &actual_read)) - { - DWORD error = GetLastError(); - log_infof("'Win32 ReadProcessMemory failure': { [0x%I64x, 0x%I64x), code: %i }\n", range.min, range.max, error); - // NOTE(rjf): I have discovered that `actual_read` is *NOT* guaranteed to have - // a usable value if `ReadProcessMemory` fails! - // bytes_read += actual_read; - (void)error; - break; - } - ptr += actual_read; - cursor += actual_read; - bytes_read += actual_read; - } - return bytes_read; -} - -internal B32 -dmn_w32_process_write(HANDLE process, Rng1U64 range, void *src) -{ - B32 result = 1; - U8 *ptr = (U8*)src; - U8 *opl = ptr + dim_1u64(range); - U64 cursor = range.min; - for(;ptr < opl;) - { - SIZE_T to_write = (SIZE_T)(opl - ptr); - SIZE_T actual_write = 0; - if(!WriteProcessMemory(process, (LPVOID)cursor, ptr, to_write, &actual_write)) - { - result = 0; - break; - } - ptr += actual_write; - cursor += actual_write; - } - return result; -} - -internal String8 -dmn_w32_read_memory_str(Arena *arena, HANDLE process_handle, U64 address) -{ - // TODO(rjf): @rewrite - // - // OLD: this could be done better with a demon_w32_read_memory - // that returns a read amount instead of a success/fail. - // - // (dmn_w32_process_read now does this, so we can switch to it) - - // scan piece by piece - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - U64 max_cap = 256; - U64 cap = max_cap; - U64 read_p = address; - for (;;){ - U8 *block = push_array(scratch.arena, U8, cap); - for (;cap > 0;){ - if (dmn_w32_process_read(process_handle, r1u64(read_p, read_p+cap), block)){ - break; - } - cap /= 2; - } - read_p += cap; - - U64 block_opl = 0; - for (;block_opl < cap; block_opl += 1){ - if (block[block_opl] == 0){ - break; - } - } - - if (block_opl > 0){ - str8_list_push(scratch.arena, &list, str8(block, block_opl)); - } - - if (block_opl < cap || cap == 0){ - break; - } - } - - // assemble results - String8 result = str8_list_join(arena, &list, 0); - scratch_end(scratch); - return(result); -} - -internal String16 -dmn_w32_read_memory_str16(Arena *arena, HANDLE process_handle, U64 address) -{ - // TODO(rjf): @rewrite - // - // OLD: this could be done better with a demon_w32_read_memory - // that returns a read amount instead of a success/fail. - // - // (dmn_w32_process_read now does this, so we can switch to it) - - // scan piece by piece - Temp scratch = scratch_begin(&arena, 1); - String8List list = {0}; - - U64 max_cap = 256; - U64 cap = max_cap; - U64 read_p = address; - for (;;){ - U8 *block = push_array(scratch.arena, U8, cap); - for (;cap > 1;){ - if (dmn_w32_process_read(process_handle, r1u64(read_p, read_p+cap), block)){ - break; - } - cap /= 2; - } - read_p += cap; - - U16 *block16 = (U16*)block; - (void)block16; - U64 block_opl = 0; - for (;block_opl < cap; block_opl += 2){ - if (*(U16*)(block + block_opl) == 0){ - break; - } - } - - if (block_opl > 0){ - str8_list_push(scratch.arena, &list, str8(block, block_opl)); - } - - if (block_opl < cap || cap == 0){ - break; - } - } - - // assemble results - String8 joined = str8_list_join(arena, &list, 0); - String16 result = {(U16*)joined.str, joined.size/2}; - scratch_end(scratch); - return(result); -} - -internal DMN_W32_ImageInfo -dmn_w32_image_info_from_process_base_vaddr(HANDLE process, U64 base_vaddr) -{ - // rjf: find PE offset - U32 pe_offset = 0; - { - U64 dos_magic_off = base_vaddr; - U16 dos_magic = 0; - dmn_w32_process_read_struct(process, dos_magic_off, &dos_magic); - if(dos_magic == PE_DOS_MAGIC) - { - U64 pe_offset_off = base_vaddr + OffsetOf(PE_DosHeader, coff_file_offset); - dmn_w32_process_read_struct(process, pe_offset_off, &pe_offset); - } - } - - // rjf: get COFF header - B32 got_coff_header = 0; - U64 coff_header_off = 0; - COFF_FileHeader coff_header = {0}; - if(pe_offset > 0) - { - U64 pe_magic_off = base_vaddr + pe_offset; - U32 pe_magic = 0; - dmn_w32_process_read_struct(process, pe_magic_off, &pe_magic); - if(pe_magic == PE_MAGIC) - { - coff_header_off = pe_magic_off + sizeof(pe_magic); - if(dmn_w32_process_read_struct(process, coff_header_off, &coff_header)) - { - got_coff_header = 1; - } - } - } - - // rjf: get arch and size - DMN_W32_ImageInfo result = zero_struct; - if(got_coff_header) - { - U64 optional_size_off = 0; - Arch arch = Arch_Null; - switch(coff_header.machine) - { - case COFF_MachineType_X86: - { - arch = Arch_x86; - optional_size_off = OffsetOf(PE_OptionalHeader32, sizeof_image); - }break; - case COFF_MachineType_X64: - { - arch = Arch_x64; - optional_size_off = OffsetOf(PE_OptionalHeader32Plus, sizeof_image); - }break; - default: - {}break; - } - if(arch != Arch_Null) - { - U64 optional_off = coff_header_off + sizeof(coff_header); - U32 size = 0; - if(dmn_w32_process_read_struct(process, optional_off+optional_size_off, &size) >= sizeof(size)) - { - result.arch = arch; - result.size = size; - } - } - } - - return result; -} - -//- rjf: threads - -internal U16 -dmn_w32_real_tag_word_from_xsave(XSAVE_FORMAT *fxsave) -{ - U16 result = 0; - U32 top = (fxsave->StatusWord >> 11) & 7; - for(U32 fpr = 0; fpr < 8; fpr += 1) - { - U32 tag = 3; - if(fxsave->TagWord & (1 << fpr)) - { - U32 st = (fpr - top)&7; - - REGS_Reg80 *fp = (REGS_Reg80*)&fxsave->FloatRegisters[st*16]; - U16 exponent = fp->sign1_exp15 & bitmask15; - U64 integer_part = fp->int1_frac63 >> 63; - U64 fraction_part = fp->int1_frac63 & bitmask63; - - // tag: 0 - normal; 1 - zero; 2 - special - tag = 2; - if(exponent == 0) - { - if(integer_part == 0 && fraction_part == 0) - { - tag = 1; - } - } - else if(exponent != bitmask15 && integer_part != 0) - { - tag = 0; - } - } - result |= tag << (2 * fpr); - } - return result; -} - -internal U16 -dmn_w32_xsave_tag_word_from_real_tag_word(U16 ftw) -{ - U16 compact = 0; - for(U32 fpr = 0; fpr < 8; fpr++) - { - U32 tag = (ftw >> (fpr * 2)) & 3; - if(tag != 3) - { - compact |= (1 << fpr); - } - } - return compact; -} - -internal B32 -dmn_w32_thread_read_reg_block(Arch arch, HANDLE thread, void *reg_block) -{ - B32 result = 0; - ProfBeginFunction(); - switch(arch) - { - //////////////////////////// - //- rjf: unimplemented win32/arch combos - // - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //////////////////////////// - //- rjf: x86 - // - case Arch_x86: - { - REGS_RegBlockX86 *dst = (REGS_RegBlockX86 *)reg_block; - - //- rjf: get thread context - WOW64_CONTEXT ctx = {0}; - ctx.ContextFlags = DMN_W32_CTX_X86_ALL; - if(!Wow64GetThreadContext(thread, (WOW64_CONTEXT *)&ctx)) - { - break; - } - result = 1; - - //- rjf: convert WOW64_CONTEXT -> REGS_RegBlockX86 - XSAVE_FORMAT *fxsave = (XSAVE_FORMAT *)ctx.ExtendedRegisters; - dst->eax.u32 = ctx.Eax; - dst->ebx.u32 = ctx.Ebx; - dst->ecx.u32 = ctx.Ecx; - dst->edx.u32 = ctx.Edx; - dst->esi.u32 = ctx.Esi; - dst->edi.u32 = ctx.Edi; - dst->esp.u32 = ctx.Esp; - dst->ebp.u32 = ctx.Ebp; - dst->eip.u32 = ctx.Eip; - dst->cs.u16 = ctx.SegCs; - dst->ds.u16 = ctx.SegDs; - dst->es.u16 = ctx.SegEs; - dst->fs.u16 = ctx.SegFs; - dst->gs.u16 = ctx.SegGs; - dst->ss.u16 = ctx.SegSs; - dst->dr0.u32 = ctx.Dr0; - dst->dr1.u32 = ctx.Dr1; - dst->dr2.u32 = ctx.Dr2; - dst->dr3.u32 = ctx.Dr3; - dst->dr6.u32 = ctx.Dr6; - dst->dr7.u32 = ctx.Dr7; - // NOTE(rjf): this bit is "supposed to always be 1", according to old info. - // may need to be investigated. - dst->eflags.u32 = ctx.EFlags | 0x2; - dst->fcw.u16 = fxsave->ControlWord; - dst->fsw.u16 = fxsave->StatusWord; - dst->ftw.u16 = dmn_w32_real_tag_word_from_xsave(fxsave); - dst->fop.u16 = fxsave->ErrorOpcode; - dst->fip.u32 = fxsave->ErrorOffset; - dst->fcs.u16 = fxsave->ErrorSelector; - dst->fdp.u32 = fxsave->DataOffset; - dst->fds.u16 = fxsave->DataSelector; - dst->mxcsr.u32 = fxsave->MxCsr; - dst->mxcsr_mask.u32 = fxsave->MxCsr_Mask; - { - M128A *float_s = fxsave->FloatRegisters; - REGS_Reg80 *float_d = &dst->fpr0; - for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) - { - MemoryCopy(float_d, float_s, sizeof(*float_d)); - } - } - { - M128A *xmm_s = fxsave->XmmRegisters; - REGS_Reg256 *xmm_d = &dst->ymm0; - for(U32 n = 0; n < 8; n += 1, xmm_s += 1, xmm_d += 1) - { - MemoryCopy(xmm_d, xmm_s, sizeof(*xmm_s)); - } - } - - //- rjf: read FS/GS base - WOW64_LDT_ENTRY ldt = {0}; - if(Wow64GetThreadSelectorEntry(thread, ctx.SegFs, &ldt)) - { - U32 base = (ldt.BaseLow) | (ldt.HighWord.Bytes.BaseMid << 16) | (ldt.HighWord.Bytes.BaseHi << 24); - dst->fsbase.u32 = base; - } - if(Wow64GetThreadSelectorEntry(thread, ctx.SegGs, &ldt)) - { - U32 base = (ldt.BaseLow) | (ldt.HighWord.Bytes.BaseMid << 16) | (ldt.HighWord.Bytes.BaseHi << 24); - dst->gsbase.u32 = base; - } - }break; - - //////////////////////////// - //- rjf: x64 - // - case Arch_x64: - { - Temp scratch = scratch_begin(0, 0); - REGS_RegBlockX64 *dst = (REGS_RegBlockX64 *)reg_block; - - //- rjf: unpack info about available features - U32 feature_mask = GetEnabledXStateFeatures(); - B32 xstate_enabled = (feature_mask & (XSTATE_MASK_AVX | XSTATE_MASK_AVX512 | XSTATE_MASK_CET_U)) != 0; - - //- rjf: set up context - CONTEXT *ctx = 0; - U32 ctx_flags = DMN_W32_CTX_X64_ALL | (xstate_enabled ? DMN_W32_CTX_INTEL_XSTATE : 0); - DWORD size = 0; - InitializeContext(0, ctx_flags, 0, &size); - if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - void *ctx_memory = push_array(scratch.arena, U8, size); - if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) - { - ctx = 0; - } - } - - //- rjf: unpack features available on this context - if (xstate_enabled) - { - SetXStateFeaturesMask(ctx, XSTATE_MASK_AVX | XSTATE_MASK_AVX512 | XSTATE_MASK_CET_U); - } - - //- rjf: get thread context - if(!GetThreadContext(thread, ctx)) - { - ctx = 0; - } - - //- rjf: bad context -> abort - if(ctx == 0) - { - break; - } - result = 1; - - DWORD64 xstate_mask = 0; - GetXStateFeaturesMask(ctx, &xstate_mask); - - //- rjf: convert context -> REGS_RegBlockX64 - XSAVE_FORMAT *xsave = &ctx->FltSave; - dst->rax.u64 = ctx->Rax; - dst->rcx.u64 = ctx->Rcx; - dst->rdx.u64 = ctx->Rdx; - dst->rbx.u64 = ctx->Rbx; - dst->rsp.u64 = ctx->Rsp; - dst->rbp.u64 = ctx->Rbp; - dst->rsi.u64 = ctx->Rsi; - dst->rdi.u64 = ctx->Rdi; - dst->r8.u64 = ctx->R8; - dst->r9.u64 = ctx->R9; - dst->r10.u64 = ctx->R10; - dst->r11.u64 = ctx->R11; - dst->r12.u64 = ctx->R12; - dst->r13.u64 = ctx->R13; - dst->r14.u64 = ctx->R14; - dst->r15.u64 = ctx->R15; - dst->rip.u64 = ctx->Rip; - dst->cs.u16 = ctx->SegCs; - dst->ds.u16 = ctx->SegDs; - dst->es.u16 = ctx->SegEs; - dst->fs.u16 = ctx->SegFs; - dst->gs.u16 = ctx->SegGs; - dst->ss.u16 = ctx->SegSs; - dst->dr0.u64 = ctx->Dr0; - dst->dr1.u64 = ctx->Dr1; - dst->dr2.u64 = ctx->Dr2; - dst->dr3.u64 = ctx->Dr3; - dst->dr6.u64 = ctx->Dr6; - dst->dr7.u64 = ctx->Dr7; - // NOTE(rjf): this bit is "supposed to always be 1", according to old info. - // may need to be investigated. - dst->rflags.u64 = ctx->EFlags | 0x2; - dst->fcw.u16 = xsave->ControlWord; - dst->fsw.u16 = xsave->StatusWord; - dst->ftw.u16 = dmn_w32_real_tag_word_from_xsave(xsave); - dst->fop.u16 = xsave->ErrorOpcode; - dst->fcs.u16 = xsave->ErrorSelector; - dst->fds.u16 = xsave->DataSelector; - dst->fip.u64 = xsave->ErrorOffset; - dst->fdp.u64 = xsave->DataOffset; - dst->mxcsr.u32 = xsave->MxCsr; - dst->mxcsr_mask.u32 = xsave->MxCsr_Mask; - { - M128A *float_s = xsave->FloatRegisters; - REGS_Reg80 *float_d = &dst->fpr0; - for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) - { - MemoryCopy(float_d, float_s, sizeof(*float_d)); - } - } - - // SSE registers are always available in x64 - { - M128A *xmm_s = xsave->XmmRegisters; - REGS_Reg512 *zmm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, xmm_s += 1, zmm_d += 1) - { - MemoryCopy(zmm_d, xmm_s, sizeof(*xmm_s)); - } - } - - // AVX - if(xstate_mask & XSTATE_MASK_AVX) - { - DWORD avx_length = 0; - U8* avx_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX, &avx_length); - Assert(avx_length == 16 * sizeof(REGS_Reg128)); - - REGS_Reg512 *zmm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, avx_s += sizeof(REGS_Reg128), zmm_d += 1) - { - MemoryCopy(&zmm_d->v[16], avx_s, sizeof(REGS_Reg128)); - } - } - else - { - REGS_Reg512 *zmm_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, zmm_d += 1) - { - MemoryZero(&zmm_d->v[16], sizeof(REGS_Reg128)); - } - } - - // AVX-512 - if(xstate_mask & XSTATE_MASK_AVX512) - { - DWORD kmask_length = 0; - U64* kmask_s = (U64*)LocateXStateFeature(ctx, XSTATE_AVX512_KMASK, &kmask_length); - Assert(kmask_length == 8 * sizeof(U64)); - - REGS_Reg64 *kmask_d = &dst->k0; - for(U32 n = 0; n < 8; n += 1, kmask_s += 1, kmask_d += 1) - { - MemoryCopy(kmask_d, kmask_s, sizeof(*kmask_s)); - } - - DWORD avx512h_length = 0; - U8* avx512h_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM_H, &avx512h_length); - Assert(avx512h_length == 16 * sizeof(REGS_Reg256)); - - REGS_Reg512 *zmmh_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, avx512h_s += sizeof(REGS_Reg256), zmmh_d += 1) - { - MemoryCopy(&zmmh_d->v[32], avx512h_s, sizeof(REGS_Reg256)); - } - - DWORD avx512_length = 0; - U8* avx512_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM, &avx512_length); - Assert(avx512_length == 16 * sizeof(REGS_Reg512)); - - REGS_Reg512 *zmm_d = &dst->zmm16; - for(U32 n = 0; n < 16; n += 1, avx512_s += sizeof(REGS_Reg512), zmm_d += 1) - { - MemoryCopy(zmm_d, avx512_s, sizeof(REGS_Reg512)); - } - } - else - { - REGS_Reg64 *kmask_d = &dst->k0; - for(U32 n = 0; n < 8; n += 1, kmask_d += 1) - { - MemoryZero(kmask_d, sizeof(*kmask_d)); - } - - REGS_Reg512 *zmmh_d = &dst->zmm0; - for(U32 n = 0; n < 16; n += 1, zmmh_d += 1) - { - MemoryZero(&zmmh_d->v[32], sizeof(REGS_Reg256)); - } - - REGS_Reg512 *zmm_d = &dst->zmm16; - for(U32 n = 0; n < 16; n += 1, zmm_d += 1) - { - MemoryZero(zmm_d, sizeof(*zmm_d)); - } - } - - // CET / Shadow Stack - if(xstate_mask & XSTATE_MASK_CET_U) - { - DWORD cet_length = 0; - XSAVE_CET_U_FORMAT *cet = LocateXStateFeature(ctx, XSTATE_CET_U, &cet_length); - if (cet_length == sizeof(*cet)) - { - dst->cetmsr.u64 = cet->Ia32CetUMsr; - dst->cetssp.u64 = cet->Ia32Pl3SspMsr; - } - } - - scratch_end(scratch); - }break; - } - ProfEnd(); - return result; -} - -internal B32 -dmn_w32_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block) -{ - B32 result = 0; - ProfBeginFunction(); - switch(arch) - { - //////////////////////////// - //- rjf: unimplemented win32/arch combos - // - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //////////////////////////// - //- rjf: x86 - // - case Arch_x86: - { - REGS_RegBlockX86 *src = (REGS_RegBlockX86 *)reg_block; - - //- rjf: convert REGS_RegBlockX86 -> WOW64_CONTEXT - WOW64_CONTEXT ctx = {0}; - XSAVE_FORMAT *fxsave = (XSAVE_FORMAT*)ctx.ExtendedRegisters; - ctx.ContextFlags = DMN_W32_CTX_X86_ALL; - ctx.Eax = src->eax.u32; - ctx.Ebx = src->ebx.u32; - ctx.Ecx = src->ecx.u32; - ctx.Edx = src->edx.u32; - ctx.Esi = src->esi.u32; - ctx.Edi = src->edi.u32; - ctx.Esp = src->esp.u32; - ctx.Ebp = src->ebp.u32; - ctx.Eip = src->eip.u32; - ctx.SegCs = src->cs.u16; - ctx.SegDs = src->ds.u16; - ctx.SegEs = src->es.u16; - ctx.SegFs = src->fs.u16; - ctx.SegGs = src->gs.u16; - ctx.SegSs = src->ss.u16; - ctx.Dr0 = src->dr0.u32; - ctx.Dr1 = src->dr1.u32; - ctx.Dr2 = src->dr2.u32; - ctx.Dr3 = src->dr3.u32; - ctx.Dr6 = src->dr6.u32; - ctx.Dr7 = src->dr7.u32; - ctx.EFlags = src->eflags.u32; - fxsave->ControlWord = src->fcw.u16; - fxsave->StatusWord = src->fsw.u16; - fxsave->TagWord = dmn_w32_xsave_tag_word_from_real_tag_word(src->ftw.u16); - fxsave->ErrorOpcode = src->fop.u16; - fxsave->ErrorSelector = src->fcs.u16; - fxsave->DataSelector = src->fds.u16; - fxsave->ErrorOffset = src->fip.u32; - fxsave->DataOffset = src->fdp.u32; - fxsave->MxCsr = src->mxcsr.u32 & src->mxcsr_mask.u32; - fxsave->MxCsr_Mask = src->mxcsr_mask.u32; - { - M128A *float_d = fxsave->FloatRegisters; - REGS_Reg80 *float_s = &src->fpr0; - for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) - { - MemoryCopy(float_d, float_s, 10); - } - } - { - M128A *xmm_d = fxsave->XmmRegisters; - REGS_Reg256 *xmm_s = &src->ymm0; - for(U32 n = 0; n < 8; n += 1, xmm_d += 1, xmm_s += 1) - { - MemoryCopy(xmm_d, xmm_s, sizeof(*xmm_d)); - } - } - - //- rjf: set thread context - B32 result = 0; - if(Wow64SetThreadContext(thread, &ctx)) - { - result = 1; - } - }break; - - //////////////////////////// - //- rjf: x64 - // - case Arch_x64: - { - Temp scratch = scratch_begin(0, 0); - REGS_RegBlockX64 *src = (REGS_RegBlockX64 *)reg_block; - - //- rjf: unpack info about available features - U32 feature_mask = GetEnabledXStateFeatures(); - B32 xstate_enabled = (feature_mask & (XSTATE_MASK_AVX | XSTATE_MASK_AVX512)) != 0; - - //- rjf: set up context - CONTEXT *ctx = 0; - U32 ctx_flags = DMN_W32_CTX_X64_ALL | (xstate_enabled ? DMN_W32_CTX_INTEL_XSTATE : 0); - DWORD size = 0; - InitializeContext(0, ctx_flags, 0, &size); - if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - void *ctx_memory = push_array(scratch.arena, U8, size); - if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) - { - ctx = 0; - } - } - - //- rjf: unpack features available on this context - if (xstate_enabled) - { - SetXStateFeaturesMask(ctx, XSTATE_MASK_AVX | XSTATE_MASK_AVX512); - } - - //- rjf: bad context -> abort - if(ctx == 0) - { - break; - } - - //- rjf: convert REGS_RegBlockX64 -> CONTEXT - XSAVE_FORMAT *fxsave = &ctx->FltSave; - ctx->ContextFlags = ctx_flags; - ctx->MxCsr = src->mxcsr.u32 & src->mxcsr_mask.u32; - ctx->Rax = src->rax.u64; - ctx->Rcx = src->rcx.u64; - ctx->Rdx = src->rdx.u64; - ctx->Rbx = src->rbx.u64; - ctx->Rsp = src->rsp.u64; - ctx->Rbp = src->rbp.u64; - ctx->Rsi = src->rsi.u64; - ctx->Rdi = src->rdi.u64; - ctx->R8 = src->r8.u64; - ctx->R9 = src->r9.u64; - ctx->R10 = src->r10.u64; - ctx->R11 = src->r11.u64; - ctx->R12 = src->r12.u64; - ctx->R13 = src->r13.u64; - ctx->R14 = src->r14.u64; - ctx->R15 = src->r15.u64; - ctx->Rip = src->rip.u64; - ctx->SegCs = src->cs.u16; - ctx->SegDs = src->ds.u16; - ctx->SegEs = src->es.u16; - ctx->SegFs = src->fs.u16; - ctx->SegGs = src->gs.u16; - ctx->SegSs = src->ss.u16; - ctx->Dr0 = src->dr0.u64; - ctx->Dr1 = src->dr1.u64; - ctx->Dr2 = src->dr2.u64; - ctx->Dr3 = src->dr3.u64; - ctx->Dr6 = src->dr6.u64; - ctx->Dr7 = src->dr7.u64; - ctx->EFlags = src->rflags.u64; - fxsave->ControlWord = src->fcw.u16; - fxsave->StatusWord = src->fsw.u16; - fxsave->TagWord = dmn_w32_xsave_tag_word_from_real_tag_word(src->ftw.u16); - fxsave->ErrorOpcode = src->fop.u16; - fxsave->ErrorSelector = src->fcs.u16; - fxsave->DataSelector = src->fds.u16; - fxsave->ErrorOffset = src->fip.u64; - fxsave->DataOffset = src->fdp.u64; - { - M128A *float_d = fxsave->FloatRegisters; - REGS_Reg80 *float_s = &src->fpr0; - for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) - { - MemoryCopy(float_d, float_s, 10); - } - } - - // SSE registers are always available in x64 - { - M128A *xmm_d = fxsave->XmmRegisters; - REGS_Reg512 *zmm_s = &src->zmm0; - for(U32 n = 0; n < 16; n += 1, xmm_d += 1, zmm_s += 1) - { - MemoryCopy(xmm_d, zmm_s, sizeof(*xmm_d)); - } - } - - // AVX - if(feature_mask & XSTATE_MASK_AVX) - { - DWORD avx_length = 0; - U8* avx_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX, &avx_length); - Assert(avx_length == 16 * sizeof(REGS_Reg128)); - - REGS_Reg512 *zmm_s = &src->zmm0; - for(U32 n = 0; n < 16; n += 1, avx_d += sizeof(REGS_Reg128), zmm_s += 1) - { - MemoryCopy(avx_d, &zmm_s->v[16], sizeof(REGS_Reg128)); - } - } - - // AVX-512 - if(feature_mask & XSTATE_MASK_AVX512) - { - DWORD kmask_length = 0; - U64* kmask_d = (U64*)LocateXStateFeature(ctx, XSTATE_AVX512_KMASK, &kmask_length); - Assert(kmask_length == 8 * sizeof(*kmask_d)); - - REGS_Reg64 *kmask_s = &src->k0; - for(U32 n = 0; n < 8; n += 1, kmask_s += 1, kmask_d += 1) - { - MemoryCopy(kmask_d, kmask_s, sizeof(*kmask_d)); - } - - DWORD avx512h_length = 0; - U8* avx512h_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM_H, &avx512h_length); - Assert(avx512h_length == 16 * sizeof(REGS_Reg256)); - - REGS_Reg512 *zmmh_s = &src->zmm0; - for(U32 n = 0; n < 16; n += 1, avx512h_d += sizeof(REGS_Reg256), zmmh_s += 1) - { - MemoryCopy(avx512h_d, &zmmh_s->v[32], sizeof(REGS_Reg256)); - } - - DWORD avx512_length = 0; - U8* avx512_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM, &avx512_length); - Assert(avx512_length == 16 * sizeof(REGS_Reg512)); - - REGS_Reg512 *zmm_s = &src->zmm16; - for(U32 n = 0; n < 16; n += 1, avx512_d += sizeof(REGS_Reg512), zmm_s += 1) - { - MemoryCopy(avx512_d, zmm_s, sizeof(REGS_Reg512)); - } - } - - //- rjf: set thread context - if(SetThreadContext(thread, ctx)) - { - result = 1; - } - scratch_end(scratch); - }break; - } - ProfEnd(); - return result; -} - -//- rjf: remote thread injection - -internal DWORD -dmn_w32_inject_thread(HANDLE process, U64 start_address) -{ - LPTHREAD_START_ROUTINE start = (LPTHREAD_START_ROUTINE)start_address; - DWORD thread_id = 0; - HANDLE thread = CreateRemoteThread(process, 0, 0, start, 0, 0, &thread_id); - if(thread != 0) - { - CloseHandle(thread); - } - return thread_id; -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) - -internal void -dmn_init(void) -{ - Arena *arena = arena_alloc(); - dmn_w32_shared = push_array(arena, DMN_W32_Shared, 1); - dmn_w32_shared->arena = arena; - dmn_w32_shared->access_mutex = mutex_alloc(); - dmn_w32_shared->detach_arena = arena_alloc(); - dmn_w32_shared->entities_arena = arena_alloc(.reserve_size = GB(8), .commit_size = KB(64)); - dmn_w32_shared->entities_base = dmn_w32_entity_alloc(&dmn_w32_entity_nil, DMN_W32_EntityKind_Root, 0); - dmn_w32_shared->entities_id_hash_slots_count = 4096; - dmn_w32_shared->entities_id_hash_slots = push_array(arena, DMN_W32_EntityIDHashSlot, dmn_w32_shared->entities_id_hash_slots_count); - - // rjf: load Windows 10+ GetThreadDescription API - { - dmn_w32_GetThreadDescription = (DMN_W32_GetThreadDescriptionFunctionType *)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "GetThreadDescription"); - } - - // rjf: setup environment variables - { - WCHAR *this_proc_env = GetEnvironmentStringsW(); - U64 start_idx = 0; - for(U64 idx = 0;; idx += 1) - { - if(this_proc_env[idx] == 0) - { - if(start_idx == idx) - { - break; - } - else - { - String16 string16 = str16((U16 *)this_proc_env + start_idx, idx - start_idx); - String8 string = str8_from_16(dmn_w32_shared->arena, string16); - str8_list_push(dmn_w32_shared->arena, &dmn_w32_shared->env_strings, string); - start_idx = idx+1; - } - } - } - } -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Blocking Control Thread Operations (Implemented Per-OS) - -internal DMN_CtrlCtx * -dmn_ctrl_begin(void) -{ - DMN_CtrlCtx *ctx = (DMN_CtrlCtx *)1; - dmn_w32_ctrl_thread = 1; - return ctx; -} - -internal void -dmn_ctrl_exclusive_access_begin(void) -{ - MutexScope(dmn_w32_shared->access_mutex) - { - dmn_w32_shared->access_run_state = 1; - } -} - -internal void -dmn_ctrl_exclusive_access_end(void) -{ - MutexScope(dmn_w32_shared->access_mutex) - { - dmn_w32_shared->access_run_state = 0; - } -} - -internal U32 -dmn_ctrl_launch(DMN_CtrlCtx *ctx, OS_ProcessLaunchParams *params) -{ - Temp scratch = scratch_begin(0, 0); - U32 result = 0; - DMN_AccessScope - { - //- rjf: produce exe / arguments string - String8 cmd = {0}; - if(params->cmd_line.first != 0) - { - String8List args = {0}; - String8 exe_path = params->cmd_line.first->string; - String8List exe_path_parts = str8_split_path(scratch.arena, exe_path); - exe_path = str8_list_join(scratch.arena, &exe_path_parts, &(StringJoin){.sep = str8_lit("\\")}); - str8_list_pushf(scratch.arena, &args, "\"%S\"", exe_path); - for(String8Node *n = params->cmd_line.first->next; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &args, n->string); - } - StringJoin join_params = {0}; - join_params.sep = str8_lit(" "); - cmd = str8_list_join(scratch.arena, &args, &join_params); - } - - //- rjf: produce environment strings - String8 env = {0}; - { - String8List all_opts = params->env; - if(params->inherit_env != 0) - { - MemoryZeroStruct(&all_opts); - str8_list_push(scratch.arena, &all_opts, str8_lit("_NO_DEBUG_HEAP=1")); - for(String8Node *n = params->env.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - for(String8Node *n = dmn_w32_shared->env_strings.first; n != 0; n = n->next) - { - str8_list_push(scratch.arena, &all_opts, n->string); - } - } - StringJoin join_params2 = {0}; - join_params2.sep = str8_lit("\0"); - join_params2.post = str8_lit("\0"); - env = str8_list_join(scratch.arena, &all_opts, &join_params2); - } - - //- rjf: produce utf-16 strings - String16 cmd16 = str16_from_8(scratch.arena, cmd); - String16 dir16 = str16_from_8(scratch.arena, params->path); - String16 env16 = str16_from_8(scratch.arena, env); - - //- rjf: launch - DWORD creation_flags = CREATE_UNICODE_ENVIRONMENT; - if(params->debug_subprocesses) - { - creation_flags |= DEBUG_PROCESS; - } - else - { - creation_flags |= DEBUG_ONLY_THIS_PROCESS; - } - BOOL inherit_handles = 0; - STARTUPINFOW startup_info = {sizeof(startup_info)}; - if(!os_handle_match(params->stdout_file, os_handle_zero())) - { - HANDLE stdout_handle = (HANDLE)params->stdout_file.u64[0]; - startup_info.hStdOutput = stdout_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stderr_file, os_handle_zero())) - { - HANDLE stderr_handle = (HANDLE)params->stderr_file.u64[0]; - startup_info.hStdError = stderr_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - if(!os_handle_match(params->stdin_file, os_handle_zero())) - { - HANDLE stdin_handle = (HANDLE)params->stdin_file.u64[0]; - startup_info.hStdInput = stdin_handle; - startup_info.dwFlags |= STARTF_USESTDHANDLES; - inherit_handles = 1; - } - PROCESS_INFORMATION process_info = {0}; - if(CreateProcessW(0, (WCHAR*)cmd16.str, 0, 0, 1, creation_flags, (WCHAR*)env16.str, (WCHAR*)dir16.str, &startup_info, &process_info)) - { - // check if we are 32-bit app, and just close it immediately - BOOL is_wow = 0; - IsWow64Process(process_info.hProcess, &is_wow); - if(is_wow) - { - log_user_errorf("Only 64-bit applications can be debugged currently."); - DebugActiveProcessStop(process_info.dwProcessId); - TerminateProcess(process_info.hProcess,0xffffffff); - } - else - { - result = process_info.dwProcessId; - dmn_w32_shared->new_process_pending = 1; - } - CloseHandle(process_info.hProcess); - CloseHandle(process_info.hThread); - } - else - { - DWORD error = GetLastError(); - LPWSTR message = 0; - FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, error, MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), (LPWSTR)&message, 0, 0); - String8 message8 = message ? str8_from_16(scratch.arena, str16_cstring(message)) : str8_lit("unknown error"); - LocalFree(message); - - log_user_errorf("There was an error starting %S: %S", params->cmd_line.first->string, message8); - } - } - scratch_end(scratch); - return result; -} - -internal B32 -dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid) -{ - B32 result = 0; - DMN_AccessScope if(DebugActiveProcess((DWORD)pid)) - { - result = 1; - dmn_w32_shared->new_process_pending = 1; - -#if 0 - // TODO(rjf): JIT debugging info - { - typedef struct JIT_DEBUG_INFO JIT_DEBUG_INFO; - struct JIT_DEBUG_INFO - { - DWORD dwSize; - DWORD dwProcessorArchitecture; - DWORD dwThreadID; - DWORD dwReserved0; - ULONG64 lpExceptionAddress; - ULONG64 lpExceptionRecord; - ULONG64 lpContextRecord; - }; - } -#endif - } - return result; -} - -internal B32 -dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process, U32 exit_code) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - if(TerminateProcess(process_entity->handle, exit_code)) - { - result = 1; - } - } - return result; -} - -internal B32 -dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - - // rjf: resume threads - for(DMN_W32_Entity *child = process_entity->first; - child != &dmn_w32_entity_nil; - child = child->next) - { - if(child->kind == DMN_W32_EntityKind_Thread) - { - DWORD resume_result = ResumeThread(child->handle); - (void)resume_result; - } - } - - // rjf: detach - { - DWORD pid = (DWORD)process_entity->id; - if(DebugActiveProcessStop(pid)) - { - result = 1; - } - } - - // rjf: push into list of processes to generate events for later - if(result != 0) - { - dmn_handle_list_push(dmn_w32_shared->detach_arena, &dmn_w32_shared->detach_processes, process); - } - } - return result; -} - -internal DMN_EventList -dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) -{ - DMN_EventList events = {0}; - dmn_access_open(); - - ////////////////////////////// - //- rjf: determine event generation path - // - typedef enum DMN_W32_EventGenPath - { - DMN_W32_EventGenPath_NotAttached, - DMN_W32_EventGenPath_Run, - DMN_W32_EventGenPath_DetachProcesses, - } - DMN_W32_EventGenPath; - DMN_W32_EventGenPath event_gen_path = DMN_W32_EventGenPath_Run; - if(dmn_w32_shared->detach_processes.first != 0) - { - event_gen_path = DMN_W32_EventGenPath_DetachProcesses; - } - else - { - B32 any_processes_live = dmn_w32_shared->new_process_pending; - if(!any_processes_live) - { - for(DMN_W32_Entity *process = dmn_w32_shared->entities_base->first; - process != &dmn_w32_entity_nil; - process = process->next) - { - if(process->kind == DMN_W32_EntityKind_Process) - { - any_processes_live = 1; - break; - } - } - } - if(!any_processes_live) - { - event_gen_path = DMN_W32_EventGenPath_NotAttached; - } - } - - ////////////////////////////// - //- rjf: produce debug events - // - switch(event_gen_path) - { - //////////////////////////// - //- rjf: produce not-attached error events - // - case DMN_W32_EventGenPath_NotAttached: - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_Error; - e->error_kind = DMN_ErrorKind_NotAttached; - }break; - - //////////////////////////// - //- rjf: produce debug events from regular running - // - case DMN_W32_EventGenPath_Run: - { - Temp scratch = scratch_begin(&arena, 1); - - ////////////////////////// - //- rjf: get single step thread's context (x64 single-step-set fast path) - // - CONTEXT *single_step_thread_ctx = 0; - if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(ctrls->single_step_thread); - Arch arch = thread->arch; - switch(arch) - { - default:{}break; - case Arch_x64: - { - U32 ctx_flags = DMN_W32_CTX_X64|DMN_W32_CTX_INTEL_CONTROL; - DWORD size = 0; - InitializeContext(0, ctx_flags, 0, &size); - if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - void *ctx_memory = push_array(scratch.arena, U8, size); - if(!InitializeContext(ctx_memory, ctx_flags, &single_step_thread_ctx, &size)) - { - single_step_thread_ctx = 0; - } - } - }break; - } - } - - ////////////////////////// - //- rjf: set single step bit - // - if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) ProfScope("set single step bit") - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(ctrls->single_step_thread); - Arch arch = thread->arch; - switch(arch) - { - //- rjf: unimplemented win32/arch combos - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //- rjf: x86 - case Arch_x86: - { - REGS_RegBlockX86 regs = {0}; - dmn_thread_read_reg_block(ctrls->single_step_thread, ®s); - regs.eflags.u32 |= 0x100; - dmn_thread_write_reg_block(ctrls->single_step_thread, ®s); - }break; - - //- rjf: x64 - case Arch_x64: - { - if(!GetThreadContext(thread->handle, single_step_thread_ctx)) - { - single_step_thread_ctx = 0; - } - if(single_step_thread_ctx != 0) - { - U64 rflags = single_step_thread_ctx->EFlags|0x2; - U64 new_rflags = rflags | 0x100; - single_step_thread_ctx->EFlags = new_rflags; - SetThreadContext(thread->handle, single_step_thread_ctx); - } - }break; - } - } - - ////////////////////////// - //- rjf: write all traps into memory - // - U8 *trap_swap_bytes = push_array_no_zero(scratch.arena, U8, ctrls->traps.trap_count); - ProfScope("write all traps into memory") - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) - { - DMN_Trap *trap = n->v+n_idx; - if(trap->flags == 0) - { - trap_swap_bytes[trap_idx] = 0xCC; - dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr+1), trap_swap_bytes+trap_idx); - U8 int3 = 0xCC; - dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &int3); - } - } - } - } - - ////////////////////////// - //- rjf: gather all flagged traps, bucketed by process - // - typedef struct DMN_FlaggedTrapTask DMN_FlaggedTrapTask; - struct DMN_FlaggedTrapTask - { - DMN_FlaggedTrapTask *next; - DMN_Handle process; - DMN_TrapChunkList traps; - }; - DMN_FlaggedTrapTask *first_flagged_trap_task = 0; - DMN_FlaggedTrapTask *last_flagged_trap_task= 0; - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1) - { - DMN_Trap *trap = n->v+n_idx; - if(trap->flags != 0) - { - DMN_FlaggedTrapTask *task = 0; - for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) - { - if(dmn_handle_match(t->process, trap->process)) - { - task = t; - break; - } - } - if(task == 0) - { - task = push_array(scratch.arena, DMN_FlaggedTrapTask, 1); - SLLQueuePush(first_flagged_trap_task, last_flagged_trap_task, task); - task->process = trap->process; - } - B32 already_in_task = 0; - for(DMN_TrapChunkNode *n = task->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1) - { - if(n->v[n_idx].id == trap->id) - { - already_in_task = 1; - goto end_look_for_existing_trap_in_task; - } - } - } - end_look_for_existing_trap_in_task:; - if(!already_in_task) - { - dmn_trap_chunk_list_push(scratch.arena, &task->traps, 8, trap); - } - } - } - } - - ////////////////////////// - //- rjf: write all debug register states, for flagged-traps - // - ProfScope("write all debug register states, for flagged-traps") - { - //- rjf: for each flagged trap task, iterate all threads in the - // associated process, and prepare debug registers accordingly - for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) - { - DMN_Handle process = t->process; - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - for(DMN_W32_Entity *child = process_entity->first; - child != &dmn_w32_entity_nil; - child = child->next) - { - if(child->kind == DMN_W32_EntityKind_Thread) - { - switch(child->arch) - { - default:{}break; - - //- rjf: x64 - case Arch_x64: - { - REGS_RegBlockX64 regs = {0}; - dmn_w32_thread_read_reg_block(child->arch, child->handle, ®s); - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = t->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count && trap_idx < 4; n_idx += 1, trap_idx += 1) - { - DMN_Trap *trap = &n->v[n_idx]; - REGS_Reg64 *addr_reg = ®s.dr0; - switch(trap_idx) - { - default:{}break; - case 0:{addr_reg = ®s.dr0;}break; - case 1:{addr_reg = ®s.dr1;}break; - case 2:{addr_reg = ®s.dr2;}break; - case 3:{addr_reg = ®s.dr3;}break; - } - addr_reg->u64 = trap->vaddr; - regs.dr7.u64 |= bit9|bit10|bit11; - regs.dr7.u64 |= (1ull << (trap_idx*2)); - // NOTE(rjf): global-enable regs.dr7.u64 |= (1ull << (trap_idx*2+1)); - regs.dr7.u64 &= ~((U64)(bit17|bit18|bit19|bit20) << (trap_idx*4)); - regs.dr7.u64 &= ~((U64)(bit15|bit16)); - switch(trap->flags) - { - case DMN_TrapFlag_BreakOnExecute: - default:{}break; - case DMN_TrapFlag_BreakOnWrite: - case DMN_TrapFlag_BreakOnWrite|DMN_TrapFlag_BreakOnExecute: - { - regs.dr7.u64 |= ((U64)bit17) << (trap_idx*4); - }break; - case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite|DMN_TrapFlag_BreakOnExecute: - case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite: - case DMN_TrapFlag_BreakOnRead: - { - regs.dr7.u64 |= (((U64)bit17) << (trap_idx*4)); - regs.dr7.u64 |= (((U64)bit18) << (trap_idx*4)); - }break; - } - switch(trap->size) - { - case 1: - default:{}break; - case 2: - { - regs.dr7.u64 |= (((U64)bit19) << (trap_idx*4)); - }break; - case 4: - { - regs.dr7.u64 |= (((U64)bit19) << (trap_idx*4)); - regs.dr7.u64 |= (((U64)bit20) << (trap_idx*4)); - }break; - case 8: - { - regs.dr7.u64 |= (((U64)bit20) << (trap_idx*4)); - }break; - } - } - } - } - dmn_w32_thread_write_reg_block(child->arch, child->handle, ®s); - }break; - } - } - } - } - } - - ////////////////////////// - //- rjf: produce list of threads which will run - // - DMN_W32_EntityNode *first_run_thread = 0; - DMN_W32_EntityNode *last_run_thread = 0; - ProfScope("produce list of threads which will run") - { - //- rjf: scan all processes - for(DMN_W32_Entity *process = dmn_w32_shared->entities_base->first; - process != &dmn_w32_entity_nil; - process = process->next) - { - if(process->kind != DMN_W32_EntityKind_Process) {continue;} - - //- rjf: determine if this process is frozen - B32 process_is_frozen = 0; - if(ctrls->run_entities_are_processes) - { - for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) - { - if(dmn_handle_match(ctrls->run_entities[idx], dmn_w32_handle_from_entity(process))) - { - process_is_frozen = 1; - break; - } - } - } - - //- rjf: scan all threads in this process - for(DMN_W32_Entity *thread = process->first; - thread != &dmn_w32_entity_nil; - thread = thread->next) - { - if(thread->kind != DMN_W32_EntityKind_Thread) {continue;} - - //- rjf: determine if this thread is frozen - B32 is_frozen = 0; - { - // rjf: single-step? freeze if not the single-step thread. - if(!dmn_handle_match(dmn_handle_zero(), ctrls->single_step_thread)) - { - is_frozen = !dmn_handle_match(dmn_w32_handle_from_entity(thread), ctrls->single_step_thread); - } - - // rjf: not single-stepping? determine based on run controls freezing info - else - { - if(ctrls->run_entities_are_processes) - { - is_frozen = process_is_frozen; - } - else for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) - { - if(dmn_handle_match(ctrls->run_entities[idx], dmn_w32_handle_from_entity(thread))) - { - is_frozen = 1; - break; - } - } - if(ctrls->run_entities_are_unfrozen) - { - is_frozen ^= 1; - } - } - } - - //- rjf: disregard all other rules if this is the halter thread - if(dmn_w32_shared->halter_tid == thread->id) - { - is_frozen = 0; - } - - //- rjf: add to list - if(!is_frozen) - { - DMN_W32_EntityNode *n = push_array(scratch.arena, DMN_W32_EntityNode, 1); - n->v = thread; - SLLQueuePush(first_run_thread, last_run_thread, n); - } - } - } - } - - ////////////////////////// - //- rjf: loop, consume win32 debug events until we produce the relevant demon events - // - B32 priority_mode = !dmn_handle_match(dmn_handle_zero(), ctrls->priority_thread); - B32 did_priority_mode = priority_mode; - B32 do_threads_resume = 1; - DMN_W32_EntityNode *first_ran_thread = 0; - DMN_W32_EntityNode *last_ran_thread = 0; - U64 begin_time = os_now_microseconds(); - String8List debug_strings = {0}; - DMN_Event *debug_strings_event = 0; - for(B32 keep_going = 1; keep_going;) - { - keep_going = 0; - - //////////////////////// - //- rjf: resume threads that we want to run - // - // if priority mode? => first, just resume priority thread - // if not? => resume all non-priority threads - // - if(do_threads_resume) ProfScope("resume threads that we want to run") - { - do_threads_resume = 0; - for(DMN_W32_EntityNode *n = first_run_thread; n != 0; n = n->next) - { - DMN_W32_Entity *thread = n->v; - B32 thread_is_priority = dmn_handle_match(dmn_w32_handle_from_entity(thread), ctrls->priority_thread); - if((priority_mode && !thread_is_priority) || - (!priority_mode && did_priority_mode && thread_is_priority)) - { - continue; - } - DWORD resume_result = ResumeThread(thread->handle); - DMN_W32_EntityNode *n = push_array(scratch.arena, DMN_W32_EntityNode, 1); - SLLQueuePush(first_ran_thread, last_ran_thread, n); - n->v = thread; - switch(resume_result) - { - case 0xffffffffu: - { - // TODO(rjf): error - unknown cause. need to do GetLastError, FormatMessage - }break; - default: - { - DWORD desired_counter = 0; - DWORD current_counter = resume_result - 1; - if(current_counter != desired_counter) - { - // NOTE(rjf): Warning. The user has manually suspended this thread, - // so even though from Demon's perspective it thinks this thread - // should run, it will not, because the user has manually called - // SuspendThread or used CREATE_SUSPENDED or whatever. - } - }break; - } - if(priority_mode && thread_is_priority) - { - break; - } - } - } - - //////////////////////// - //- rjf: choose win32 resume code - // - DWORD resume_code = DBG_CONTINUE; - { - if(dmn_w32_shared->exception_not_handled && !ctrls->ignore_previous_exception) - { - log_infof("using DBG_EXCEPTION_NOT_HANDLED\n"); - resume_code = DBG_EXCEPTION_NOT_HANDLED; - } - else - { - log_infof("using DBG_CONTINUE\n"); - } - dmn_w32_shared->exception_not_handled = 0; - } - - //////////////////////// - //- rjf: inform windows that we're resuming, run, & obtain next debug event - // - DEBUG_EVENT evt = {0}; - B32 evt_good = 0; - ProfScope("inform windows that we're resuming, run, & obtain next debug event") - { - B32 resume_good = 1; - if(dmn_w32_shared->resume_needed) - { - dmn_w32_shared->resume_needed = 0; - resume_good = !!ContinueDebugEvent(dmn_w32_shared->resume_pid, dmn_w32_shared->resume_tid, resume_code); - DWORD error = GetLastError(); - dmn_w32_shared->resume_needed = 0; - dmn_w32_shared->resume_tid = 0; - dmn_w32_shared->resume_pid = 0; - } - if(resume_good) - { - DWORD wait_ms = 100; - if(priority_mode) - { - wait_ms = 30; - } - evt_good = !!WaitForDebugEvent(&evt, wait_ms); - if(evt_good) - { - dmn_w32_shared->resume_needed = 1; - dmn_w32_shared->resume_pid = evt.dwProcessId; - dmn_w32_shared->resume_tid = evt.dwThreadId; - } - else - { - DWORD err = GetLastError(); - (void)err; - keep_going = 1; - } - if(priority_mode) - { - priority_mode = 0; - do_threads_resume = 1; - } - } - } - - //////////////////////// - //- rjf: process the new event - // - if(evt_good) ProfScope("process the new event") - { - switch(evt.dwDebugEventCode) - { - ////////////////////// - //- rjf: process was created - // - case CREATE_PROCESS_DEBUG_EVENT: - { - // rjf: zero out "process pending" state - dmn_w32_shared->new_process_pending = 0; - - // rjf: unpack event - HANDLE process_handle = evt.u.CreateProcessInfo.hProcess; - HANDLE thread_handle = evt.u.CreateProcessInfo.hThread; - HANDLE module_handle = evt.u.CreateProcessInfo.hFile; - U64 tls_base = (U64)evt.u.CreateProcessInfo.lpThreadLocalBase; - U64 module_base = (U64)evt.u.CreateProcessInfo.lpBaseOfImage; - U64 module_name_vaddr = (U64)evt.u.CreateProcessInfo.lpImageName; - B32 module_name_is_unicode = (evt.u.CreateProcessInfo.fUnicode != 0); - DMN_W32_ImageInfo image_info = dmn_w32_image_info_from_process_base_vaddr(process_handle, module_base); - - // rjf: create entities (thread/module are implied for initial - they are not reported by win32) - DMN_W32_Entity *process = dmn_w32_entity_alloc(dmn_w32_shared->entities_base, DMN_W32_EntityKind_Process, evt.dwProcessId); - DMN_W32_Entity *thread = dmn_w32_entity_alloc(process, DMN_W32_EntityKind_Thread, evt.dwThreadId); - DMN_W32_Entity *module = dmn_w32_entity_alloc(process, DMN_W32_EntityKind_Module, module_base); - { - process->handle = process_handle; - process->arch = image_info.arch; - thread->handle = thread_handle; - thread->arch = image_info.arch; - thread->thread.thread_local_base = tls_base; - module->handle = module_handle; - module->module.vaddr_range = r1u64(module_base, image_info.size); - module->module.is_main = 1; - module->module.address_of_name_pointer = module_name_vaddr; - module->module.name_is_unicode = module_name_is_unicode; - } - - // rjf: put thread into suspended state, so it matches expected initial state - SuspendThread(thread_handle); - - // rjf: set up per-process injected code (to run halter threads on & - // generate debug events) - { - U8 injection_code[DMN_W32_INJECTED_CODE_SIZE]; - MemorySet(injection_code, 0xCC, DMN_W32_INJECTED_CODE_SIZE); - injection_code[0] = 0xC3; - U64 injection_size = DMN_W32_INJECTED_CODE_SIZE + sizeof(DMN_W32_InjectedBreak); - U64 injection_address = (U64)VirtualAllocEx(process_handle, 0, injection_size, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE); - dmn_w32_process_write(process_handle, r1u64(injection_address, injection_address+sizeof(injection_code)), injection_code); - process->proc.injection_address = injection_address; - } - - // rjf: generate events - { - // rjf: create process - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_CreateProcess; - e->process = dmn_w32_handle_from_entity(process); - e->arch = image_info.arch; - e->code = evt.dwProcessId; - } - - // rjf: create thread - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_CreateThread; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - e->arch = image_info.arch; - e->code = evt.dwThreadId; - } - - // rjf: load module - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_LoadModule; - e->process = dmn_w32_handle_from_entity(process); - e->module = dmn_w32_handle_from_entity(module); - e->arch = image_info.arch; - e->address = module_base; - e->size = image_info.size; - e->string = dmn_w32_full_path_from_module(arena, module); - } - } - }break; - - ////////////////////// - //- rjf: process exited - // - case EXIT_PROCESS_DEBUG_EVENT: - { - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - - // rjf: if this was the process we were going to resume, then we will - // just not resume, and wait for another debug event - if(evt.dwProcessId == dmn_w32_shared->resume_pid) - { - dmn_w32_shared->resume_needed = 0; - dmn_w32_shared->resume_tid = 0; - dmn_w32_shared->resume_pid = 0; - } - - // rjf: generate events for children - for(DMN_W32_Entity *child = process->first; child != &dmn_w32_entity_nil; child = child->next) - { - switch(child->kind) - { - default:{}break; - case DMN_W32_EntityKind_Thread: - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_ExitThread; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(child); - }break; - case DMN_W32_EntityKind_Module: - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_UnloadModule; - e->process = dmn_w32_handle_from_entity(process); - e->module = dmn_w32_handle_from_entity(child); - e->string = dmn_w32_full_path_from_module(arena, child); - }break; - } - } - - // rjf: generate event for process - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_ExitProcess; - e->process = dmn_w32_handle_from_entity(process); - e->code = evt.u.ExitProcess.dwExitCode; - } - - // rjf: release entity storage - dmn_w32_entity_release(process); - - // rjf: detach - DebugActiveProcessStop(evt.dwProcessId); - }break; - - ////////////////////// - //- rjf: thread was created - // - case CREATE_THREAD_DEBUG_EVENT: - { - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - - // rjf: create thread entity - DMN_W32_Entity *thread = dmn_w32_entity_alloc(process, DMN_W32_EntityKind_Thread, evt.dwThreadId); - { - thread->handle = evt.u.CreateThread.hThread; - thread->arch = process->arch; - thread->thread.thread_local_base = (U64)evt.u.CreateThread.lpThreadLocalBase; - } - - // rjf: suspend thread immediately upon creation, to match with expected suspension state - DWORD sus_result = SuspendThread(thread->handle); - (void)sus_result; - - // rjf: unpack thread name - String8 thread_name = {0}; - if(dmn_w32_GetThreadDescription != 0) - { - WCHAR *thread_name_w = 0; - HRESULT hr = dmn_w32_GetThreadDescription(thread->handle, &thread_name_w); - if(SUCCEEDED(hr)) - { - thread_name = str8_from_16(arena, str16_cstring((U16 *)thread_name_w)); - LocalFree(thread_name_w); - } - } - - // rjf: determine if this is a "halter thread" - the threads we spawn to halt processes - B32 is_halter = (evt.dwThreadId == dmn_w32_shared->halter_tid); - - // rjf: generate events for non-halter threads - if(!is_halter) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_CreateThread; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - e->arch = thread->arch; - e->code = evt.dwThreadId; - e->string = thread_name; - } - }break; - - ////////////////////// - //- rjf: thread exited - // - case EXIT_THREAD_DEBUG_EVENT: - { - DMN_W32_Entity *thread = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Thread, evt.dwThreadId); - DMN_W32_Entity *process = thread->parent; - - // rjf: determine if this is the halter thread - B32 is_halter = (evt.dwThreadId == dmn_w32_shared->halter_tid); - - // rjf: generate a halt event if this thread is the halter - if(is_halter) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_Halt; - dmn_w32_shared->halter_process = dmn_handle_zero(); - dmn_w32_shared->halter_tid = 0; - keep_going = 0; - } - - // rjf: if this thread is *not* the halter, then generate a regular exit-thread event - if(!is_halter) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_ExitThread; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - e->code = evt.u.ExitThread.dwExitCode; - } - - // rjf: release entity storage - dmn_w32_entity_release(thread); - }break; - - ////////////////////// - //- rjf: DLL was loaded - // - case LOAD_DLL_DEBUG_EVENT: - { - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - - // rjf: extract image info - U64 module_base = (U64)evt.u.LoadDll.lpBaseOfDll; - DMN_W32_ImageInfo image_info = dmn_w32_image_info_from_process_base_vaddr(process->handle, module_base); - - // rjf: create module entity - DMN_W32_Entity *module = dmn_w32_entity_alloc(process, DMN_W32_EntityKind_Module, module_base); - { - module->handle = evt.u.LoadDll.hFile; - module->arch = image_info.arch; - module->module.vaddr_range = r1u64(module_base, module_base+image_info.size); - module->module.address_of_name_pointer = (U64)evt.u.LoadDll.lpImageName; - module->module.name_is_unicode = (evt.u.LoadDll.fUnicode != 0); - } - - // rjf: generate event - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_LoadModule; - e->process = dmn_w32_handle_from_entity(process); - e->module = dmn_w32_handle_from_entity(module); - e->arch = module->arch; - e->address = module_base; - e->size = image_info.size; - e->string = dmn_w32_full_path_from_module(arena, module); - } - }break; - - ////////////////////// - //- rjf: DLL was unloaded - // - case UNLOAD_DLL_DEBUG_EVENT: - { - U64 module_base = (U64)evt.u.UnloadDll.lpBaseOfDll; - DMN_W32_Entity *module = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Module, module_base); - DMN_W32_Entity *process = module->parent; - - // rjf: generate event - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_UnloadModule; - e->process = dmn_w32_handle_from_entity(process); - e->module = dmn_w32_handle_from_entity(module); - e->string = dmn_w32_full_path_from_module(arena, module); - } - - // rjf: release entity storage - dmn_w32_entity_release(module); - }break; - - ////////////////////// - //- rjf: exception was hit - // - case EXCEPTION_DEBUG_EVENT: - { - //- NOTE(rjf): Notes on multithreaded breakpoint events - // (2021/11/1): - // - // When many threads are simultaneously running, multiple threads - // may hit a trap "at the same time". When this happens there will be - // multiple events in an internal queue that we cannot see. If there - // is another event in the queue we will not see it until we call - // ContinueDebugEvent again, in a subsequent call to demon_os_run. - // - // When we get a trap event, the instruction pointer stored - // in the event will have the address of the int 3 instruction that - // was hit. Our RIP register, however, will be one byte past that. - // So, to get the behavior we want, we need to set the RIP register - // back to the address of the int 3. - // - // To deal with the fact that we may get breakpoint events later that - // were actually from this run what we do is: - // - // #1. If we get a trap event, and it corresponds to a user submitted - // trap, then we treat it is a breakpoint event. - // #2. If we get a trap event, and it does NOT correspond to a user - // trap in this call: - // #A. If the actual unmodified instruction byte is NOT an int 3, - // then this is a queued event from a previous run that is no - // longer applicable and we skip it. - // #B. If the actual unmodified instruction is an int 3, then this - // becomes a trap event and we do not reset RIP. - - //- NOTE(rjf): Further notes on MULTITHREADED STEPPING ACCESS VIOLATION - // EVENTS! @rjf @rjf @rjf - // (2024/05/29): - // - // Just adding another comment here to document that the above long - // comment went completely unnoticed by me during a pass over demon, - // and I had removed the proper rollback stuff here without reading - // the above comment. So this comment just serves to make that - // original comment even heftier. - - //- NOTE(rjf): The exception record struct has a 32-bit version and a - // 64-bit version. We only currently handle the 64-bit version. - - //- rjf: unpack - DMN_W32_Entity *thread = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Thread, evt.dwThreadId); - DMN_W32_Entity *process = thread->parent; - EXCEPTION_DEBUG_INFO *edi = &evt.u.Exception; - EXCEPTION_RECORD *exception = &edi->ExceptionRecord; - U64 instruction_pointer = (U64)exception->ExceptionAddress; - - //- rjf: determine if this is the first breakpoint in a process - // (breakpoint notifying us that the debugger is attached) - B32 first_bp = 0; - if(!process->proc.did_first_bp && exception->ExceptionCode == DMN_W32_EXCEPTION_BREAKPOINT) - { - process->proc.did_first_bp = 1; - first_bp = 1; - } - - //- rjf: determine if this exception is a trap - B32 is_trap = (!first_bp && - (exception->ExceptionCode == DMN_W32_EXCEPTION_BREAKPOINT || - exception->ExceptionCode == DMN_W32_EXCEPTION_STACK_BUFFER_OVERRUN)); - - //- rjf: check if this trap is a usage-code-specified trap or something else - B32 hit_user_trap = 0; - U64 user_trap_id = 0; - if(is_trap) - { - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 idx = 0; idx < n->count; idx += 1) - { - if(dmn_handle_match(n->v[idx].process, dmn_w32_handle_from_entity(process)) && n->v[idx].vaddr == instruction_pointer) - { - hit_user_trap = 1; - user_trap_id = n->v[idx].id; - break; - } - } - } - } - - //- rjf: check if trap is explicit in the actual code memory - B32 hit_explicit_trap = 0; - if(is_trap && !hit_user_trap) - { - U8 instruction_byte = 0; - if(dmn_w32_process_read_struct(process->handle, instruction_pointer, &instruction_byte)) - { - hit_explicit_trap = (instruction_byte == 0xCC || instruction_byte == 0xCD); - } - } - - //- rjf: determine whether to roll back instruction pointer - B32 should_do_rollback = (hit_user_trap || (is_trap && !hit_explicit_trap)); - - //- rjf: roll back thread's instruction pointer - if(should_do_rollback) ProfScope("roll back thread's instruction pointer") - { - switch(thread->arch) - { - //- rjf: default, general path - default: - { - Temp temp = temp_begin(scratch.arena); - U64 regs_block_size = regs_block_size_from_arch(thread->arch); - void *regs_block = push_array(scratch.arena, U8, regs_block_size); - if(dmn_w32_thread_read_reg_block(thread->arch, thread->handle, regs_block)) - { - regs_arch_block_write_rip(thread->arch, regs_block, instruction_pointer); - dmn_w32_thread_write_reg_block(thread->arch, thread->handle, regs_block); - } - temp_end(temp); - }break; - - //- rjf: x64 (fastpath) - case Arch_x64: - { - CONTEXT *ctx = 0; - U32 ctx_flags = DMN_W32_CTX_X64|DMN_W32_CTX_INTEL_CONTROL; - DWORD size = 0; - InitializeContext(0, ctx_flags, 0, &size); - if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - void *ctx_memory = push_array(scratch.arena, U8, size); - if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) - { - ctx = 0; - } - } - if(!GetThreadContext(thread->handle, ctx)) - { - ctx = 0; - } - if(ctx != 0) - { - U64 rip = ctx->Rip; - U64 new_rip = instruction_pointer; - ctx->Rip = new_rip; - SetThreadContext(thread->handle, ctx); - } - }break; - } - } - - //- rjf: not a user trap, not an explicit trap, then it's a trap that - // this thread hit previously but has since skipped - B32 hit_previous_trap = (is_trap && !hit_user_trap && !hit_explicit_trap); - - //- rjf: determine whether to skip this event - B32 skip_event = (hit_previous_trap); - - //- rjf: generate event - if(!skip_event) - { - // rjf: fill top-level info - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_Exception; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - e->code = exception->ExceptionCode; - e->flags = exception->ExceptionFlags; - e->instruction_pointer = (U64)exception->ExceptionAddress; - e->user_data = user_trap_id; - - //- rjf: fill according to exception code - switch(exception->ExceptionCode) - { - //- rjf: fill breakpoint event info - case DMN_W32_EXCEPTION_BREAKPOINT: - { - DMN_EventKind report_event_kind = DMN_EventKind_Trap; - if(first_bp) - { - report_event_kind = DMN_EventKind_HandshakeComplete; - } - else if(hit_user_trap) - { - report_event_kind = DMN_EventKind_Breakpoint; - } - e->kind = report_event_kind; - }break; - - //- rjf: fill stack buffer overrun event info - case DMN_W32_EXCEPTION_STACK_BUFFER_OVERRUN: - { - e->kind = DMN_EventKind_Trap; - if(exception->ExceptionInformation[0] == DMN_W32_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS) - { - // TODO(rjf): this is a shadow stack violation - this can imply that the spoof was hit. - // need to handle this correctly in the ctrl layer when stepping w/ a spoof set. - // - // @shadow_stack_step - } - }break; - - //- rjf: fill single-step event info - case DMN_W32_EXCEPTION_SINGLE_STEP: - { - e->kind = DMN_EventKind_SingleStep; - - // NOTE(rjf): data breakpoints are reported via single-steps - // over the instructions which caused the breakpoint to be - // hit - so if we have data breakpoints set, we need to - // check this thread's debug registers, to determine if this - // is a regular single-step or a data breakpoint hit. - { - // rjf: first determine the flagged trap index - U64 flagged_trap_idx = 0; - switch(thread->arch) - { - default:{NotImplemented;}break; - case Arch_x64: - { - REGS_RegBlockX64 regs = {0}; - dmn_w32_thread_read_reg_block(thread->arch, thread->handle, ®s); - if(regs.dr6.u64 & 0xF) - { - e->kind = DMN_EventKind_Breakpoint; - if(0){} - else if(regs.dr7.u64 & (1ull<<0) && regs.dr6.u64 & (1ull<<0)) { flagged_trap_idx = 0; e->address = regs.dr0.u64; } - else if(regs.dr7.u64 & (1ull<<2) && regs.dr6.u64 & (1ull<<1)) { flagged_trap_idx = 1; e->address = regs.dr1.u64; } - else if(regs.dr7.u64 & (1ull<<4) && regs.dr6.u64 & (1ull<<2)) { flagged_trap_idx = 2; e->address = regs.dr2.u64; } - else if(regs.dr7.u64 & (1ull<<8) && regs.dr6.u64 & (1ull<<3)) { flagged_trap_idx = 3; e->address = regs.dr3.u64; } - } - }break; - } - - // rjf: find the flagged trap task for this thread's process - DMN_W32_Entity *process = thread->parent; - DMN_FlaggedTrapTask *task = 0; - for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) - { - if(dmn_handle_match(t->process, dmn_w32_handle_from_entity(process))) - { - task = t; - break; - } - } - - // rjf: find the trap - DMN_Trap *trap = 0; - if(task != 0) - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = task->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) - { - if(trap_idx == flagged_trap_idx) - { - trap = &n->v[n_idx]; - goto break_search_for_flagged_trap; - } - } - } - break_search_for_flagged_trap:; - } - - // rjf: fill event based on trap - if(trap != 0) - { - e->user_data = trap->id; - } - } - }break; - - //- rjf: fill throw info - case DMN_W32_EXCEPTION_THROW: - { - U64 exception_sp = 0; - U64 exception_ip = 0; - if(exception->NumberParameters >= 3) - { - exception_sp = (U64)exception->ExceptionInformation[1]; - exception_ip = (U64)exception->ExceptionInformation[2]; - } - e->stack_pointer = exception_sp; - e->exception_kind = DMN_ExceptionKind_CppThrow; - e->exception_repeated = (edi->dwFirstChance == 0); - dmn_w32_shared->exception_not_handled = (edi->dwFirstChance != 0); - }break; - - //- rjf: fill access violation info - case DMN_W32_EXCEPTION_ACCESS_VIOLATION: - case DMN_W32_EXCEPTION_IN_PAGE_ERROR: - { - U64 exception_address = 0; - DMN_ExceptionKind exception_kind = DMN_ExceptionKind_Null; - if(exception->NumberParameters >= 2) - { - switch(exception->ExceptionInformation[0]) - { - case 0: exception_kind = DMN_ExceptionKind_MemoryRead; break; - case 1: exception_kind = DMN_ExceptionKind_MemoryWrite; break; - case 8: exception_kind = DMN_ExceptionKind_MemoryExecute; break; - } - exception_address = exception->ExceptionInformation[1]; - } - e->address = exception_address; - e->exception_kind = exception_kind; - e->exception_repeated = (edi->dwFirstChance == 0); - dmn_w32_shared->exception_not_handled = (edi->dwFirstChance != 0); - }break; - - //- rjf: fill set-thread-name info - case DMN_W32_EXCEPTION_SET_THREAD_NAME: - if(exception->NumberParameters >= 2) - { - U64 thread_name_address = exception->ExceptionInformation[1]; - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - String8List thread_name_strings = {0}; - { - U64 read_addr = thread_name_address; - U64 total_string_size = 0; - for(;total_string_size < KB(4);) - { - U8 *buffer = push_array(scratch.arena, U8, 256); - B32 good_read = dmn_w32_process_read(process->handle, r1u64(read_addr, read_addr+256), buffer); - if(good_read) - { - U64 size = 256; - for(U64 idx = 0; idx < 256; idx += 1) - { - if(buffer[idx] == 0) - { - size = idx; - break; - } - } - String8 string_part = str8(buffer, size); - str8_list_push(scratch.arena, &thread_name_strings, string_part); - total_string_size += size; - read_addr += size; - if(size < 256) - { - break; - } - } - else - { - break; - } - } - } - e->kind = DMN_EventKind_SetThreadName; - e->string = str8_list_join(arena, &thread_name_strings, 0); - if(exception->NumberParameters > 2) - { - e->code = exception->ExceptionInformation[2]; - } - }break; - - //- rjf: fill set-thread-color info - case DMN_W32_EXCEPTION_RADDBG_SET_THREAD_COLOR: - { - e->kind = DMN_EventKind_SetThreadColor; - e->code = exception->ExceptionInformation[0]; - e->user_data = exception->ExceptionInformation[1]; - }break; - - //- rjf: fill set-data-breakpoint info - case DMN_W32_EXCEPTION_RADDBG_SET_BREAKPOINT: - { - U64 vaddr = exception->ExceptionInformation[0]; - U64 size = exception->ExceptionInformation[1]; - U64 read = exception->ExceptionInformation[2]; - U64 write = exception->ExceptionInformation[3]; - U64 exec = exception->ExceptionInformation[4]; - U64 set = exception->ExceptionInformation[5]; - e->kind = set ? DMN_EventKind_SetBreakpoint : DMN_EventKind_UnsetBreakpoint; - e->address = vaddr; - e->size = size; - if(read) { e->flags |= DMN_TrapFlag_BreakOnRead; } - if(write) { e->flags |= DMN_TrapFlag_BreakOnWrite; } - if(exec) { e->flags |= DMN_TrapFlag_BreakOnExecute; } - }break; - - //- rjf: fill set-vaddr-range-note info - case DMN_W32_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE: - { - U64 vaddr = exception->ExceptionInformation[0]; - U64 size = exception->ExceptionInformation[1]; - U64 name_vaddr = exception->ExceptionInformation[2]; - U64 name_size = exception->ExceptionInformation[3]; - U8 *name_buffer = push_array(arena, U8, name_size); - dmn_w32_process_read(process->handle, r1u64(name_vaddr, name_vaddr+name_size), name_buffer), - e->kind = DMN_EventKind_SetVAddrRangeNote; - e->address = vaddr; - e->size = size; - e->string = str8(name_buffer, name_size); - }break; - - //- rjf: unhandled exception case - default: - { - e->exception_repeated = (edi->dwFirstChance == 0); - dmn_w32_shared->exception_not_handled = (edi->dwFirstChance != 0); - }break; - } - } - }break; - - ////////////////////// - //- rjf: output debug string was gathered - // - case OUTPUT_DEBUG_STRING_EVENT: - { - // rjf: unpack event - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - DMN_W32_Entity *thread = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Thread, evt.dwThreadId); - U64 string_address = (U64)evt.u.DebugString.lpDebugStringData; - U64 string_size = (U64)evt.u.DebugString.nDebugStringLength; - - // rjf: read memory - U8 *buffer = push_array_no_zero(scratch.arena, U8, string_size + 1); - dmn_w32_process_read(process->handle, r1u64(string_address, string_address+string_size), buffer); - buffer[string_size] = 0; - - // rjf: extract into string - String8 debug_string = str8(buffer, string_size); - if(debug_string.size != 0 && buffer[string_size-1] == 0) - { - debug_string.size -= 1; - } - - // rjf: make debug string event - debug_strings_event = dmn_event_list_push(arena, &events); - debug_strings_event->kind = DMN_EventKind_DebugString; - - // rjf: push into debug strings - str8_list_push(scratch.arena, &debug_strings, debug_string); - keep_going = 1; - - // rjf: exit loop, given sufficient amount of text - if(debug_strings.total_size >= KB(4)) - { - keep_going = 0; - } - }break; - - ////////////////////// - //- rjf: a "rip event" - a "system debugging error". - // - case RIP_EVENT: - { - DMN_W32_Entity *process = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Process, evt.dwProcessId); - DMN_W32_Entity *thread = dmn_w32_entity_from_kind_id(DMN_W32_EntityKind_Thread, evt.dwThreadId); - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_Exception; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - }break; - - ////////////////////// - //- rjf: default case - some kind of debugging event that we don't currently consume. - // - default: - { - NoOp; - }break; - } - } - - //////////////////////// - //- rjf: exit loop after a little while, so we keep pumping e.g. debug strings - // - if(os_now_microseconds() >= begin_time+100000 && debug_strings.total_size != 0) - { - keep_going = 0; - } - } - - //////////////////////// - //- rjf: send out event for any remaining debug strings - // - if(debug_strings.total_size != 0 && debug_strings_event != 0) - { - String8 debug_strings_joined = str8_list_join(arena, &debug_strings, 0); - debug_strings_event->string = debug_strings_joined; - } - - //////////////////////// - //- rjf: suspend threads which ran - // - ProfScope("suspend threads which ran") - { - for(DMN_W32_EntityNode *n = first_ran_thread; n != 0; n = n->next) - { - DMN_W32_Entity *thread = n->v; - if(thread->kind != DMN_W32_EntityKind_Thread) - { - continue; - } - DWORD suspend_result = SuspendThread(thread->handle); - switch(suspend_result) - { - case 0xffffffffu: - { - // TODO(rjf): error - unknown cause. need to do do GetLastError, FormatMessage - // - // NOTE(rjf): this can happen when the event is EXIT_THREAD_DEBUG_EVENT - // or EXIT_PROCESS_DEBUG_EVENT. after such an event, SuspendThread - // gives error code 5 (access denied). this has no adverse effects, but - // if we want to start reporting errors we should take care to avoid - // calling SuspendThread in that case. - }break; - default: - { - DWORD desired_counter = 1; - DWORD current_counter = suspend_result + 1; - if(current_counter != desired_counter) - { - // NOTE(rjf): Warning. We've suspended to something higher than 1. - // In this case, it means the user probably created the thread in - // a suspended state, or they called SuspendThread. - } - }break; - } - } - } - - //////////////////////// - //- rjf: gather new thread-names - // - ProfScope("gather new thread names") if(dmn_w32_GetThreadDescription != 0) - { - for(DMN_W32_Entity *process = dmn_w32_shared->entities_base->first; - process != &dmn_w32_entity_nil; - process = process->next) - { - if(process->kind != DMN_W32_EntityKind_Process) { continue; } - for(DMN_W32_Entity *thread = process->first; - thread != &dmn_w32_entity_nil; - thread = thread->next) - { - if(thread->kind != DMN_W32_EntityKind_Thread) { continue; } - if(thread->thread.last_name_hash == 0 || - thread->thread.name_gather_time_us+1000000 <= os_now_microseconds()) - { - String8 name = {0}; - { - WCHAR *thread_name_w = 0; - HRESULT hr = dmn_w32_GetThreadDescription(thread->handle, &thread_name_w); - if(SUCCEEDED(hr)) - { - name = str8_from_16(scratch.arena, str16_cstring((U16 *)thread_name_w)); - LocalFree(thread_name_w); - } - } - U64 name_hash = dmn_w32_hash_from_string(name); - if(name.size != 0 && name_hash != thread->thread.last_name_hash) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_SetThreadName; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(thread); - e->string = push_str8_copy(arena, name); - } - thread->thread.name_gather_time_us = os_now_microseconds(); - thread->thread.last_name_hash = name_hash; - } - } - } - } - - ////////////////////////// - //- rjf: restore original memory at trap locations - // - ProfScope("restore original memory at trap locations") - { - U64 trap_idx = 0; - for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) - { - for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) - { - DMN_Trap *trap = n->v+n_idx; - if(trap->flags == 0) - { - U8 og_byte = trap_swap_bytes[trap_idx]; - if(og_byte != 0xCC) - { - dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &og_byte); - } - } - } - } - } - - ////////////////////////// - //- rjf: clear all debug register states, for flagged-traps - // - ProfScope("clear all debug register states, for flagged-traps") - { - for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) - { - DMN_Handle process = t->process; - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - for(DMN_W32_Entity *child = process_entity->first; - child != &dmn_w32_entity_nil; - child = child->next) - { - if(child->kind == DMN_W32_EntityKind_Thread) - { - switch(child->arch) - { - default:{}break; - - //- rjf: x64 - case Arch_x64: - { - REGS_RegBlockX64 regs = {0}; - dmn_w32_thread_read_reg_block(child->arch, child->handle, ®s); - regs.dr7.u64 = 0; - dmn_w32_thread_write_reg_block(child->arch, child->handle, ®s); - }break; - } - } - } - } - } - - ////////////////////////// - //- rjf: unset single step bit - // - if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) ProfScope("unset single step bit") - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(ctrls->single_step_thread); - Arch arch = thread->arch; - switch(arch) - { - //- rjf: unimplemented win32/arch combos - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - - //- rjf: x86/64 - case Arch_x86: - { - REGS_RegBlockX86 regs = {0}; - dmn_thread_read_reg_block(ctrls->single_step_thread, ®s); - regs.eflags.u32 &= ~0x100; - dmn_thread_write_reg_block(ctrls->single_step_thread, ®s); - }break; - case Arch_x64: - { - if(!GetThreadContext(thread->handle, single_step_thread_ctx)) - { - single_step_thread_ctx = 0; - } - if(single_step_thread_ctx != 0) - { - U64 rflags = single_step_thread_ctx->EFlags|0x2; - U64 new_rflags = rflags & ~0x100; - single_step_thread_ctx->EFlags = new_rflags; - SetThreadContext(thread->handle, single_step_thread_ctx); - } - }break; - } - } - - scratch_end(scratch); - }break; - - //////////////////////////// - //- rjf: produce debug events from queued up detached processes - // - case DMN_W32_EventGenPath_DetachProcesses: - { - for(DMN_HandleNode *n = dmn_w32_shared->detach_processes.first; n != 0; n = n->next) - { - DMN_W32_Entity *process = dmn_w32_entity_from_handle(n->v); - - // rjf: push exit thread events - for(DMN_W32_Entity *child = process->first; child != &dmn_w32_entity_nil; child = child->next) - { - if(child->kind == DMN_W32_EntityKind_Thread) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_ExitThread; - e->process = dmn_w32_handle_from_entity(process); - e->thread = dmn_w32_handle_from_entity(child); - } - } - - // rjf: push unload module events - for(DMN_W32_Entity *child = process->first; child != &dmn_w32_entity_nil; child = child->next) - { - if(child->kind == DMN_W32_EntityKind_Module) - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_UnloadModule; - e->process = dmn_w32_handle_from_entity(process); - e->module = dmn_w32_handle_from_entity(child); - e->string = dmn_w32_full_path_from_module(arena, child); - } - } - - // rjf: push exit process event - { - DMN_Event *e = dmn_event_list_push(arena, &events); - e->kind = DMN_EventKind_ExitProcess; - e->process = dmn_w32_handle_from_entity(process); - } - - // rjf: free process - dmn_w32_entity_release(process); - } - - // rjf: reset queued up detached processes - MemoryZeroStruct(&dmn_w32_shared->detach_processes); - arena_clear(dmn_w32_shared->detach_arena); - }break; - } - - dmn_access_close(); - return events; -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Halting (Implemented Per-OS) - -internal void -dmn_halt(U64 code, U64 user_data) -{ - if(dmn_handle_match(dmn_handle_zero(), dmn_w32_shared->halter_process)) - { - DMN_W32_Entity *process = &dmn_w32_entity_nil; - for(DMN_W32_Entity *entity = dmn_w32_shared->entities_base->first; - entity != &dmn_w32_entity_nil; - entity = entity->next) - { - if(entity->kind == DMN_W32_EntityKind_Process) - { - process = entity; - break; - } - } - if(process != &dmn_w32_entity_nil) - { - dmn_w32_shared->halter_process = dmn_w32_handle_from_entity(process); - DMN_W32_InjectedBreak injection = {code, user_data}; - U64 data_injection_address = process->proc.injection_address + DMN_W32_INJECTED_CODE_SIZE; - dmn_w32_process_write_struct(process->handle, data_injection_address, &injection); - dmn_w32_shared->halter_tid = dmn_w32_inject_thread(process->handle, process->proc.injection_address); - } - } -} - -//////////////////////////////// -//~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) - -//- rjf: non-blocking-control-thread access barriers - -internal B32 -dmn_access_open(void) -{ - B32 result = 0; - if(dmn_w32_ctrl_thread) - { - result = 1; - } - else - { - mutex_take(dmn_w32_shared->access_mutex); - result = !dmn_w32_shared->access_run_state; - } - return result; -} - -internal void -dmn_access_close(void) -{ - if(!dmn_w32_ctrl_thread) - { - mutex_drop(dmn_w32_shared->access_mutex); - } -} - -//- rjf: processes - -internal U64 -dmn_process_memory_reserve(DMN_Handle process, U64 vaddr, U64 size) -{ - U64 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - result = (U64)VirtualAllocEx(process_entity->handle, (void *)vaddr, size, MEM_RESERVE, PAGE_READWRITE); - if(result == 0) - { - result = (U64)VirtualAllocEx(process_entity->handle, 0, size, MEM_RESERVE, PAGE_READWRITE); - } - } - return result; -} - -internal void -dmn_process_memory_commit(DMN_Handle process, U64 vaddr, U64 size) -{ - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - (U64)VirtualAllocEx(process_entity->handle, (void *)vaddr, size, MEM_COMMIT, PAGE_READWRITE); - } -} - -internal void -dmn_process_memory_decommit(DMN_Handle process, U64 vaddr, U64 size) -{ - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - VirtualFreeEx(process_entity->handle, (void *)vaddr, size, MEM_DECOMMIT); - } -} - -internal void -dmn_process_memory_release(DMN_Handle process, U64 vaddr, U64 size) -{ - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - VirtualFreeEx(process_entity->handle, (void *)vaddr, 0, MEM_RELEASE); - } -} - -internal void -dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, OS_AccessFlags flags) -{ - DMN_AccessScope - { - DMN_W32_Entity *process_entity = dmn_w32_entity_from_handle(process); - DWORD old_flags = 0; - DWORD new_flags = PAGE_NOACCESS; - switch(flags) - { - default:{}break; - case OS_AccessFlag_Execute:{new_flags = PAGE_EXECUTE;}break; - case OS_AccessFlag_Execute|OS_AccessFlag_Read:{new_flags = PAGE_EXECUTE_READ;}break; - case OS_AccessFlag_Execute|OS_AccessFlag_Read|OS_AccessFlag_Write:{new_flags = PAGE_EXECUTE_READWRITE;}break; - case OS_AccessFlag_Read:{new_flags = PAGE_READONLY;}break; - case OS_AccessFlag_Read|OS_AccessFlag_Write:{new_flags = PAGE_READWRITE;}break; - } - VirtualProtectEx(process_entity->handle, (void *)vaddr, size, new_flags, &old_flags); - } -} - -internal U64 -dmn_process_read(DMN_Handle process, Rng1U64 range, void *dst) -{ - U64 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *entity = dmn_w32_entity_from_handle(process); - result = dmn_w32_process_read(entity->handle, range, dst); - } - return result; -} - -internal B32 -dmn_process_write(DMN_Handle process, Rng1U64 range, void *src) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *entity = dmn_w32_entity_from_handle(process); - result = dmn_w32_process_write(entity->handle, range, src); - } - return result; -} - -//- rjf: threads - -internal Arch -dmn_arch_from_thread(DMN_Handle handle) -{ - Arch arch = Arch_Null; - DMN_AccessScope - { - DMN_W32_Entity *entity = dmn_w32_entity_from_handle(handle); - arch = entity->arch; - } - return arch; -} - -internal U64 -dmn_stack_base_vaddr_from_thread(DMN_Handle handle) -{ - U64 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(handle); - if(thread->kind == DMN_W32_EntityKind_Thread) - { - DMN_W32_Entity *process = thread->parent; - U64 tlb = thread->thread.thread_local_base; - switch(thread->arch) - { - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - case Arch_x64: - { - U64 stack_base_addr = tlb + 0x8; - dmn_w32_process_read(process->handle, r1u64(stack_base_addr, stack_base_addr+8), &result); - }break; - case Arch_x86: - { - U64 stack_base_addr = tlb + 0x4; - dmn_w32_process_read(process->handle, r1u64(stack_base_addr, stack_base_addr+4), &result); - }break; - } - } - } - return result; -} - -internal U64 -dmn_tls_root_vaddr_from_thread(DMN_Handle handle) -{ - U64 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *entity = dmn_w32_entity_from_handle(handle); - if(entity->kind == DMN_W32_EntityKind_Thread) - { - result = entity->thread.thread_local_base; - switch(entity->arch) - { - case Arch_Null: - case Arch_COUNT: - {}break; - case Arch_arm64: - case Arch_arm32: - {NotImplemented;}break; - case Arch_x64: - { - result += 88; - }break; - case Arch_x86: - { - result += 44; - }break; - } - } - } - return result; -} - -internal B32 -dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(handle); - result = dmn_w32_thread_read_reg_block(thread->arch, thread->handle, reg_block); - } - return result; -} - -internal B32 -dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block) -{ - B32 result = 0; - DMN_AccessScope - { - DMN_W32_Entity *thread = dmn_w32_entity_from_handle(handle); - result = dmn_w32_thread_write_reg_block(thread->arch, thread->handle, reg_block); - } - return result; -} - -//- rjf: system process listing - -internal void -dmn_process_iter_begin(DMN_ProcessIter *iter) -{ - MemoryZeroStruct(iter); - iter->v[0] = (U64)CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); -} - -internal B32 -dmn_process_iter_next(Arena *arena, DMN_ProcessIter *iter, DMN_ProcessInfo *info_out) -{ - B32 result = 0; - - //- rjf: get the next process entry - PROCESSENTRY32W process_entry = {sizeof(process_entry)}; - HANDLE snapshot = (HANDLE)iter->v[0]; - if(iter->v[1] == 0) - { - if(Process32FirstW(snapshot, &process_entry)) - { - result = 1; - } - } - else - { - if(Process32NextW(snapshot, &process_entry)) - { - result = 1; - } - } - - //- rjf: increment counter - iter->v[1] += 1; - - //- rjf: convert to process info - if(result) - { - info_out->name = str8_from_16(arena, str16_cstring((U16*)process_entry.szExeFile)); - info_out->pid = (U32)process_entry.th32ProcessID; - } - - return result; -} - -internal void -dmn_process_iter_end(DMN_ProcessIter *iter) -{ - CloseHandle((HANDLE)iter->v[0]); - MemoryZeroStruct(iter); -} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Entity Helpers + +//- rjf: entity <-> handle + +internal DMN_Handle +w32_dmn_handle_from_entity(W32_DMN_Entity *entity) +{ + U32 idx = (U32)(entity - w32_dmn_shared->entities_base); + U32 gen = entity->gen; + DMN_Handle handle = {idx, gen}; + return handle; +} + +internal W32_DMN_Entity * +w32_dmn_entity_from_handle(DMN_Handle handle) +{ + U32 idx = handle.u32[0]; + U32 gen = handle.u32[1]; + W32_DMN_Entity *entity = w32_dmn_shared->entities_base + idx; + if(entity->gen != gen) + { + entity = &w32_dmn_entity_nil; + } + return entity; +} + +//- rjf: entity allocation/deallocation + +internal W32_DMN_Entity * +w32_dmn_entity_alloc(W32_DMN_Entity *parent, W32_DMN_EntityKind kind, U64 id) +{ + // rjf: allocate + W32_DMN_Entity *e = w32_dmn_shared->entities_first_free; + { + U32 gen = 0; + if(e != 0) + { + SLLStackPop(w32_dmn_shared->entities_first_free); + gen = e->gen; + } + else + { + e = push_array_no_zero(w32_dmn_shared->entities_arena, W32_DMN_Entity, 1); + w32_dmn_shared->entities_count += 1; + } + MemoryZeroStruct(e); + e->gen = gen+1; + } + + // rjf: fill + { + e->kind = kind; + e->id = id; + e->parent = parent; + e->next = e->prev = e->first = e->last = &w32_dmn_entity_nil; + if(parent != &w32_dmn_entity_nil) + { + DLLPushBack_NPZ(&w32_dmn_entity_nil, parent->first, parent->last, e, next, prev); + } + } + + // rjf: insert into id -> entity map + if(id != 0) + { + U64 hash = u64_hash_from_str8(str8_struct(&id)); + U64 slot_idx = hash%w32_dmn_shared->entities_id_hash_slots_count; + W32_DMN_EntityIDHashSlot *slot = &w32_dmn_shared->entities_id_hash_slots[slot_idx]; + W32_DMN_EntityIDHashNode *node = 0; + for(W32_DMN_EntityIDHashNode *n = slot->first; n != 0; n = n->next) + { + if(n->id == id) + { + node = n; + break; + } + } + if(node == 0) + { + node = w32_dmn_shared->entities_id_hash_node_free; + if(node != 0) + { + SLLStackPop(w32_dmn_shared->entities_id_hash_node_free); + } + else + { + node = push_array(w32_dmn_shared->arena, W32_DMN_EntityIDHashNode, 1); + } + DLLPushBack(slot->first, slot->last, node); + } + node->id = id; + node->entity = e; + } + + return e; +} + +internal void +w32_dmn_entity_release(W32_DMN_Entity *entity) +{ + // rjf: unhook root + if(entity->parent != &w32_dmn_entity_nil) + { + DLLRemove_NPZ(&w32_dmn_entity_nil, entity->parent->first, entity->parent->last, entity, next, prev); + } + + // rjf: walk every entity in this tree, free each + if(entity != &w32_dmn_entity_nil) + { + Temp scratch = scratch_begin(0, 0); + typedef struct Task Task; + struct Task + { + Task *next; + W32_DMN_Entity *e; + }; + Task start_task = {0, entity}; + Task *first_task = &start_task; + Task *last_task = &start_task; + for(Task *t = first_task; t != 0; t = t->next) + { + for(W32_DMN_Entity *child = t->e->first; child != &w32_dmn_entity_nil; child = child->next) + { + Task *t = push_array(scratch.arena, Task, 1); + t->e = child; + SLLQueuePush(first_task, last_task, t); + } + + // rjf: free entity + SLLStackPush(w32_dmn_shared->entities_first_free, t->e); + t->e->gen += 1; + if(t->e->kind == W32_DMN_EntityKind_Module) + { + CloseHandle(t->e->handle); + } + t->e->kind = W32_DMN_EntityKind_Null; + + // rjf: remove from id -> entity map + if(t->e->id != 0) + { + U64 hash = u64_hash_from_str8(str8_struct(&t->e->id)); + U64 slot_idx = hash%w32_dmn_shared->entities_id_hash_slots_count; + W32_DMN_EntityIDHashSlot *slot = &w32_dmn_shared->entities_id_hash_slots[slot_idx]; + W32_DMN_EntityIDHashNode *node = 0; + for(W32_DMN_EntityIDHashNode *n = slot->first; n != 0; n = n->next) + { + if(n->id == t->e->id && n->entity == t->e) + { + DLLRemove(slot->first, slot->last, n); + SLLStackPush(w32_dmn_shared->entities_id_hash_node_free, n); + break; + } + } + } + } + scratch_end(scratch); + } +} + +//- rjf: kind*id -> entity + +internal W32_DMN_Entity * +w32_dmn_entity_from_kind_id(W32_DMN_EntityKind kind, U64 id) +{ + W32_DMN_Entity *result = &w32_dmn_entity_nil; + U64 hash = u64_hash_from_str8(str8_struct(&id)); + U64 slot_idx = hash%w32_dmn_shared->entities_id_hash_slots_count; + W32_DMN_EntityIDHashSlot *slot = &w32_dmn_shared->entities_id_hash_slots[slot_idx]; + W32_DMN_EntityIDHashNode *node = 0; + for(W32_DMN_EntityIDHashNode *n = slot->first; n != 0; n = n->next) + { + if(n->entity->kind == kind && n->id == id) + { + node = n; + break; + } + } + if(node != 0) + { + result = node->entity; + } + return result; +} + +//////////////////////////////// +//~ rjf: Module Info Extraction + +internal String8 +w32_dmn_full_path_from_module(Arena *arena, W32_DMN_Entity *module) +{ + Temp scratch = scratch_begin(&arena, 1); + + //- rjf: extract path from module + String16 path16 = {0}; + String8 path8 = {0}; + { + // rjf: handle -> full path + if(module->handle != 0) + { + DWORD cap16 = GetFinalPathNameByHandleW(module->handle, 0, 0, VOLUME_NAME_DOS); + U16 *buffer16 = push_array_no_zero(scratch.arena, U16, cap16); + DWORD size16 = GetFinalPathNameByHandleW(module->handle, (WCHAR*)buffer16, cap16, VOLUME_NAME_DOS); + path16 = str16(buffer16, size16); + } + + // rjf: fallback (main module only): process -> full path + if(path16.size == 0 && module->module.is_main) + { + W32_DMN_Entity *process = module->parent; + DWORD size = KB(4); + U16 *buf = push_array_no_zero(scratch.arena, U16, size); + if(QueryFullProcessImageNameW(process->handle, 0, (WCHAR*)buf, &size)) + { + path16 = str16(buf, size); + } + } + + // rjf: fallback (any module - no guarantee): address_of_name -> full path + if(path16.size == 0 && module->module.address_of_name_pointer != 0) + { + W32_DMN_Entity *process = module->parent; + U64 ptr_size = bit_size_from_arch(process->arch)/8; + U64 name_pointer = 0; + if(w32_dmn_process_read(process->handle, r1u64(module->module.address_of_name_pointer, module->module.address_of_name_pointer+ptr_size), &name_pointer)) + { + if(name_pointer != 0) + { + if(module->module.name_is_unicode) + { + path16 = w32_dmn_read_memory_str16(scratch.arena, process->handle, name_pointer); + } + else + { + path8 = w32_dmn_read_memory_str(scratch.arena, process->handle, name_pointer); + } + } + } + } + } + + // rjf: produce finalized result + String8 result = {0}; + { + if(path16.size > 0) + { + // rjf: skip the extended path thing if necessary + if(path16.size >= 4 && + path16.str[0] == L'\\' && + path16.str[1] == L'\\' && + path16.str[2] == L'?' && + path16.str[3] == L'\\') + { + path16.size -= 4; + path16.str += 4; + } + + // rjf: convert to UTF-8 + result = str8_from_16(arena, path16); + } + else + { + // rjf: skip the extended path thing if necessary + if (path8.size >= 4 && + path8.str[0] == L'\\' && + path8.str[1] == L'\\' && + path8.str[2] == L'?' && + path8.str[3] == L'\\') + { + path8.size -= 4; + path8.str += 4; + } + + // rjf: copy to output arena + result = push_str8_copy(arena, path8); + } + } + + scratch_end(scratch); + return result; +} + +//////////////////////////////// +//~ rjf: Win32-Level Process/Thread Reads/Writes + +//- rjf: processes + +internal U64 +w32_dmn_process_read(HANDLE process, Rng1U64 range, void *dst) +{ + U64 bytes_read = 0; + U8 *ptr = (U8*)dst; + U8 *opl = ptr + dim_1u64(range); + U64 cursor = range.min; + for(;ptr < opl;) + { + SIZE_T to_read = (SIZE_T)(opl - ptr); + SIZE_T actual_read = 0; + if(!ReadProcessMemory(process, (LPCVOID)cursor, ptr, to_read, &actual_read)) + { + DWORD error = GetLastError(); + log_infof("'Win32 ReadProcessMemory failure': { [0x%I64x, 0x%I64x), code: %i }\n", range.min, range.max, error); + // NOTE(rjf): I have discovered that `actual_read` is *NOT* guaranteed to have + // a usable value if `ReadProcessMemory` fails! + // bytes_read += actual_read; + (void)error; + break; + } + ptr += actual_read; + cursor += actual_read; + bytes_read += actual_read; + } + return bytes_read; +} + +internal B32 +w32_dmn_process_write(HANDLE process, Rng1U64 range, void *src) +{ + B32 result = 1; + U8 *ptr = (U8*)src; + U8 *opl = ptr + dim_1u64(range); + U64 cursor = range.min; + for(;ptr < opl;) + { + SIZE_T to_write = (SIZE_T)(opl - ptr); + SIZE_T actual_write = 0; + if(!WriteProcessMemory(process, (LPVOID)cursor, ptr, to_write, &actual_write)) + { + result = 0; + break; + } + ptr += actual_write; + cursor += actual_write; + } + return result; +} + +internal String8 +w32_dmn_str8_cstring_from_process_vaddr(Arena *arena, HANDLE process, U64 vaddr) +{ + Temp scratch = scratch_begin(&arena, 1); + String8List pieces = {0}; + U64 chunk_cap = 256; + U64 chunk_size = chunk_cap; + U64 vaddr_opl = vaddr + 16384; + U8 *chunk_buffer = push_array(scratch.arena, U8, chunk_cap); + for(U64 read_vaddr = vaddr; read_vaddr < vaddr_opl;) + { + // rjf: zero / read next chunk - shrink chunk size if needed + MemoryZero(chunk_buffer, chunk_size); + U64 bytes_read = 0; + for(;bytes_read == 0 && chunk_size != 0;) + { + bytes_read = w32_dmn_process_read(process, r1u64(vaddr, vaddr+chunk_size), chunk_buffer); + if(bytes_read == 0) + { + chunk_size /= 2; + } + } + + // rjf: advance + vaddr += bytes_read; + + // rjf: look for null terminator + B32 found_null_terminator = 0; + U64 read_chunk_size = bytes_read; + for(U64 idx = 0; idx < bytes_read; idx += 1) + { + if(chunk_buffer[idx] == 0) + { + read_chunk_size = idx; + found_null_terminator = 1; + break; + } + } + + // rjf: nonzero chunk size -> push to piece list + if(read_chunk_size != 0) + { + str8_list_push(scratch.arena, &pieces, str8_copy(scratch.arena, str8(chunk_buffer, read_chunk_size))); + } + + // rjf: if this chunk contained a null terminator, or if we didn't read anything -> we're done + if(found_null_terminator || bytes_read == 0) + { + break; + } + } + String8 result = str8_list_join(arena, &pieces, 0); + scratch_end(scratch); + return result; +} + +internal String8 +w32_dmn_read_memory_str(Arena *arena, HANDLE process_handle, U64 address) +{ + // TODO(rjf): @rewrite + // + // OLD: this could be done better with a demon_w32_read_memory + // that returns a read amount instead of a success/fail. + // + // (w32_dmn_process_read now does this, so we can switch to it) + + // scan piece by piece + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + + U64 max_cap = 256; + U64 cap = max_cap; + U64 read_p = address; + for (;;){ + U8 *block = push_array(scratch.arena, U8, cap); + for (;cap > 0;){ + if (w32_dmn_process_read(process_handle, r1u64(read_p, read_p+cap), block)){ + break; + } + cap /= 2; + } + read_p += cap; + + U64 block_opl = 0; + for (;block_opl < cap; block_opl += 1){ + if (block[block_opl] == 0){ + break; + } + } + + if (block_opl > 0){ + str8_list_push(scratch.arena, &list, str8(block, block_opl)); + } + + if (block_opl < cap || cap == 0){ + break; + } + } + + // assemble results + String8 result = str8_list_join(arena, &list, 0); + scratch_end(scratch); + return(result); +} + +internal String16 +w32_dmn_read_memory_str16(Arena *arena, HANDLE process_handle, U64 address) +{ + // TODO(rjf): @rewrite + // + // OLD: this could be done better with a demon_w32_read_memory + // that returns a read amount instead of a success/fail. + // + // (w32_dmn_process_read now does this, so we can switch to it) + + // scan piece by piece + Temp scratch = scratch_begin(&arena, 1); + String8List list = {0}; + + U64 max_cap = 256; + U64 cap = max_cap; + U64 read_p = address; + for (;;){ + U8 *block = push_array(scratch.arena, U8, cap); + for (;cap > 1;){ + if (w32_dmn_process_read(process_handle, r1u64(read_p, read_p+cap), block)){ + break; + } + cap /= 2; + } + read_p += cap; + + U16 *block16 = (U16*)block; + (void)block16; + U64 block_opl = 0; + for (;block_opl < cap; block_opl += 2){ + if (*(U16*)(block + block_opl) == 0){ + break; + } + } + + if (block_opl > 0){ + str8_list_push(scratch.arena, &list, str8(block, block_opl)); + } + + if (block_opl < cap || cap == 0){ + break; + } + } + + // assemble results + String8 joined = str8_list_join(arena, &list, 0); + String16 result = {(U16*)joined.str, joined.size/2}; + scratch_end(scratch); + return(result); +} + +//- rjf: modules + +internal DMN_ModuleInfo * +w32_dmn_module_info_from_process_module(Arena *arena, HANDLE process, HANDLE module, U64 base_vaddr, U64 module_name_vaddr, B32 module_name_is_unicode, B32 is_main_module) +{ + DMN_ModuleInfo *info = push_array(arena, DMN_ModuleInfo, 1); + Temp scratch = scratch_begin(&arena, 1); + { + B32 is_good = 1; + + //- rjf: read DOS header + PE_DosHeader dos_header = {0}; + if(is_good) + { + w32_dmn_process_read_struct(process, base_vaddr, &dos_header); + is_good = (dos_header.magic == PE_DOS_MAGIC); + } + + //- rjf: read PE magic + U32 pe_magic = 0; + if(is_good) + { + w32_dmn_process_read_struct(process, base_vaddr + dos_header.coff_file_offset, &pe_magic); + is_good = (pe_magic == PE_MAGIC); + } + + //- rjf: read COFF header + U64 file_header_off = dos_header.coff_file_offset + sizeof(pe_magic); + COFF_FileHeader file_header = {0}; + if(is_good) + { + w32_dmn_process_read_struct(process, base_vaddr + file_header_off, &file_header); + } + + //- rjf: get architecture + Arch arch = arch_from_coff_machine(file_header.machine); + + //- rjf: get module path + String8 module_path = {0}; + { + String8 module_path8 = {0}; + String16 module_path16 = {0}; + + // rjf: try to get module path from handle + if(module_path16.size == 0 && module != 0) + { + DWORD cap16 = GetFinalPathNameByHandleW(module, 0, 0, VOLUME_NAME_DOS); + U16 *buffer16 = push_array_no_zero(scratch.arena, U16, cap16); + DWORD size16 = GetFinalPathNameByHandleW(module, (WCHAR*)buffer16, cap16, VOLUME_NAME_DOS); + module_path16 = str16(buffer16, size16); + } + + // rjf: fallback (main module only): process -> full path + if(module_path16.size == 0 && is_main_module) + { + DWORD size = 4096; + U16 *buf = push_array_no_zero(scratch.arena, U16, size); + if(QueryFullProcessImageNameW(process, 0, (WCHAR*)buf, &size)) + { + module_path16 = str16(buf, size); + } + } + + // rjf: fallback (any module - no guarantee): address_of_name -> full path + if(module_path16.size == 0 && module_name_vaddr != 0) + { + U64 ptr_size = bit_size_from_arch(arch)/8; + U64 name_pointer = 0; + if(w32_dmn_process_read(process, r1u64(module_name_vaddr, module_name_vaddr+ptr_size), &name_pointer)) + { + if(name_pointer != 0) + { + if(module_name_is_unicode) + { + module_path16 = w32_dmn_read_memory_str16(scratch.arena, process, name_pointer); + } + else + { + module_path8 = w32_dmn_read_memory_str(scratch.arena, process, name_pointer); + } + } + } + } + + // rjf: skip the extended path thing if necessary + { + if(module_path16.size >= 4 && + module_path16.str[0] == L'\\' && + module_path16.str[1] == L'\\' && + module_path16.str[2] == L'?' && + module_path16.str[3] == L'\\') + { + module_path16.size -= 4; + module_path16.str += 4; + } + else if(module_path8.size >= 4 && + module_path8.str[0] == L'\\' && + module_path8.str[1] == L'\\' && + module_path8.str[2] == L'?' && + module_path8.str[3] == L'\\') + { + module_path8.size -= 4; + module_path8.str += 4; + } + } + + // rjf: 16 -> 8 + if(module_path16.size != 0) + { + module_path = str8_from_16(arena, module_path16); + } + else if(module_path8.size != 0) + { + module_path = str8_copy(arena, module_path8); + } + } + + //- rjf: unpack range of optional extension header + U32 opt_ext_size = file_header.optional_header_size; + Rng1U64 opt_ext_off_range = r1u64(file_header_off + sizeof(COFF_FileHeader), + file_header_off + sizeof(COFF_FileHeader) + opt_ext_size); + + //- rjf: read optional header + U64 image_vsize = 0; + U64 entry_point_voff = 0; + U64 tls_index = 0; + String8 debug_info_path = {0}; + Guid debug_info_guid = {0}; + U64 debug_info_timestamp = 0; + U64 debug_info_age = 0; + Rng1U64 pe_intel_pdatas_vaddr_range = {0}; + Rng1U64 raddbg_info_voff_range = {0}; + U64 raddbg_is_attached_marker_voff = 0; + if(opt_ext_size > 0) + { + // rjf: read magic number + U16 opt_ext_magic = 0; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min, &opt_ext_magic); + + // rjf: read info + U32 reported_data_dir_offset = 0; + U32 reported_data_dir_count = 0; + switch(opt_ext_magic) + { + case PE_PE32_MAGIC: + { + PE_OptionalHeader32 pe_optional = {0}; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min, &pe_optional); + image_vsize = pe_optional.sizeof_image; + entry_point_voff = pe_optional.entry_point_va; + reported_data_dir_offset = sizeof(pe_optional); + reported_data_dir_count = pe_optional.data_dir_count; + }break; + case PE_PE32PLUS_MAGIC: + { + PE_OptionalHeader32Plus pe_optional = {0}; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min, &pe_optional); + image_vsize = pe_optional.sizeof_image; + entry_point_voff = pe_optional.entry_point_va; + reported_data_dir_offset = sizeof(pe_optional); + reported_data_dir_count = pe_optional.data_dir_count; + }break; + } + + // rjf: find number of data directories + U32 data_dir_max = (opt_ext_size - reported_data_dir_offset) / sizeof(PE_DataDirectory); + U32 data_dir_count = ClampTop(reported_data_dir_count, data_dir_max); + + // rjf: extract sections + U64 sec_array_off = opt_ext_off_range.max; + U64 sec_count = file_header.section_count; + COFF_SectionHeader *sec = push_array(scratch.arena, COFF_SectionHeader, sec_count); + w32_dmn_process_read(process, r1u64(base_vaddr + sec_array_off, base_vaddr + sec_array_off + sec_count*sizeof(COFF_SectionHeader)), sec); + + // rjf: grab pdatas range from exceptions section + if(data_dir_count > PE_DataDirectoryIndex_EXCEPTIONS) + { + PE_DataDirectory dir = {0}; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_EXCEPTIONS, &dir); + Rng1U64 pdatas_voff_range = r1u64((U64)dir.virt_off, (U64)dir.virt_off + (U64)dir.virt_size); + pe_intel_pdatas_vaddr_range = r1u64(pdatas_voff_range.min + base_vaddr, pdatas_voff_range.max + base_vaddr); + } + + // rjf: grab tls info + if(data_dir_count > PE_DataDirectoryIndex_TLS) + { + PE_DataDirectory tls_dir = {0}; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_TLS, &tls_dir); + if(tls_dir.virt_size == sizeof(PE_TLSHeader64)) + { + PE_TLSHeader64 tls_header = {0}; + w32_dmn_process_read_struct(process, base_vaddr + tls_dir.virt_off, &tls_header); + U64 tls_index64 = 0; + w32_dmn_process_read_struct(process, tls_header.index_address, &tls_index64); + tls_index = tls_index64; + } + else if(tls_dir.virt_size == sizeof(PE_TLSHeader32)) + { + PE_TLSHeader32 tls_header = {0}; + w32_dmn_process_read_struct(process, base_vaddr + tls_dir.virt_off, &tls_header); + U32 tls_index32 = 0; + w32_dmn_process_read_struct(process, tls_header.index_address, &tls_index32); + tls_index = (U64)tls_index32; + } + } + + // rjf: grab data about DWARF debug info, hinted at via symbol array in header + { + U64 symbol_array_off = file_header.symbol_table_foff; + U64 symbol_count = file_header.symbol_count; + if(symbol_array_off != 0) + { + debug_info_path = module_path; + } + } + + // rjf: grab data about PDB/RDI debug info, expressed via debug data directory + if(debug_info_path.size == 0 && data_dir_count > PE_DataDirectoryIndex_DEBUG) + { + // rjf: read data dir + PE_DataDirectory dir = {0}; + w32_dmn_process_read_struct(process, base_vaddr + opt_ext_off_range.min + reported_data_dir_offset + sizeof(PE_DataDirectory)*PE_DataDirectoryIndex_DEBUG, &dir); + + U64 dbg_dir_count = dir.virt_size / sizeof(PE_DebugDirectory); + for(U64 dbg_dir_idx = 0; dbg_dir_idx < dbg_dir_count; dbg_dir_idx += 1) + { + // rjf: read debug directory + U64 dir_addr = base_vaddr + dir.virt_off + dbg_dir_idx * sizeof(PE_DebugDirectory); + PE_DebugDirectory dbg_data = {0}; + w32_dmn_process_read_struct(process, dir_addr, &dbg_data); + + // rjf: extract external file info from codeview header + if(dbg_data.type == PE_DebugDirectoryType_CODEVIEW) + { + U32 cv_magic = 0; + w32_dmn_process_read_struct(process, base_vaddr + dbg_data.voff, &cv_magic); + switch(cv_magic) + { + default:break; + case PE_CODEVIEW_PDB20_MAGIC: + { + PE_CvHeaderPDB20 cv = {0}; + U64 read_size = w32_dmn_process_read_struct(process, base_vaddr+dbg_data.voff, &cv); + if(read_size == sizeof(cv)) + { + U64 pdb_dbg_path_vaddr = base_vaddr + dbg_data.voff + sizeof(cv); + debug_info_timestamp = cv.time_stamp; + debug_info_age = cv.age; + debug_info_path = w32_dmn_str8_cstring_from_process_vaddr(arena, process, pdb_dbg_path_vaddr); + } + }break; + case PE_CODEVIEW_PDB70_MAGIC: + { + PE_CvHeaderPDB70 cv = {0}; + U64 read_size = w32_dmn_process_read_struct(process, base_vaddr + dbg_data.voff, &cv); + if(read_size == sizeof(cv)) + { + U64 pdb_dbg_path_vaddr = base_vaddr + dbg_data.voff + sizeof(cv); + debug_info_guid = cv.guid; + debug_info_age = cv.age; + debug_info_path = w32_dmn_str8_cstring_from_process_vaddr(arena, process, pdb_dbg_path_vaddr); + } + }break; + case PE_CODEVIEW_RDI_MAGIC: + { + PE_CvHeaderRDI cv = {0}; + U64 read_size = w32_dmn_process_read_struct(process, base_vaddr + dbg_data.voff, &cv); + if(read_size == sizeof(cv)) + { + U64 rdi_dbg_path_vaddr = base_vaddr + dbg_data.voff + sizeof(cv); + debug_info_guid = cv.guid; + debug_info_path = w32_dmn_str8_cstring_from_process_vaddr(arena, process, rdi_dbg_path_vaddr); + } + }break; + } + } + } + } + + // rjf: find ranges of special raddbg data + { + for EachIndex(idx, sec_count) + { + String8 section_name = str8_cstring((char *)sec[idx].name); + if(str8_match(section_name, str8_lit(".raddbg"), 0)) + { + raddbg_info_voff_range.min = sec[idx].voff; + raddbg_info_voff_range.max = sec[idx].voff + sec[idx].vsize; + } + else if(str8_match(section_name, str8_lit(".rdbgia"), 0)) + { + raddbg_is_attached_marker_voff = sec[idx].voff; + } + } + } + } + + //- rjf: fill info + info->arch = arch; + info->vsize = image_vsize; + info->entry_point_voff = entry_point_voff; + info->module_path = module_path; + info->debug_info_path = debug_info_path; + info->debug_info_guid = debug_info_guid; + info->debug_info_timestamp = debug_info_timestamp; + info->debug_info_age = debug_info_age; + info->tls_index = tls_index; + info->pe_intel_pdatas_vaddr_range = pe_intel_pdatas_vaddr_range; + info->raddbg_info_voff_range = raddbg_info_voff_range; + info->raddbg_is_attached_marker_voff = raddbg_is_attached_marker_voff; + } + scratch_end(scratch); + return info; +} + +//- rjf: threads + +internal B32 +w32_dmn_thread_read_reg_block(Arch arch, HANDLE thread, void *reg_block) +{ + B32 result = 0; + ProfBeginFunction(); + switch(arch) + { + //////////////////////////// + //- rjf: unimplemented win32/arch combos + // + case Arch_Null: + case Arch_COUNT: + {}break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {NotImplemented;}break; + + //////////////////////////// + //- rjf: x64 + // + case Arch_x64: + { + Temp scratch = scratch_begin(0, 0); + X64_RegBlock *dst = (X64_RegBlock *)reg_block; + + //- rjf: unpack info about available features + U32 feature_mask = GetEnabledXStateFeatures(); + B32 xstate_enabled = (feature_mask & (XSTATE_MASK_AVX | XSTATE_MASK_AVX512 | XSTATE_MASK_CET_U)) != 0; + + //- rjf: set up context + CONTEXT *ctx = 0; + U32 ctx_flags = W32_DMN_CTX_X64_ALL | (xstate_enabled ? W32_DMN_CTX_INTEL_XSTATE : 0); + DWORD size = 0; + InitializeContext(0, ctx_flags, 0, &size); + if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + void *ctx_memory = push_array(scratch.arena, U8, size); + if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) + { + ctx = 0; + } + } + + //- rjf: unpack features available on this context + if(xstate_enabled) + { + SetXStateFeaturesMask(ctx, XSTATE_MASK_AVX | XSTATE_MASK_AVX512 | XSTATE_MASK_CET_U); + } + + //- rjf: get thread context + if(!GetThreadContext(thread, ctx)) + { + ctx = 0; + } + + //- rjf: bad context -> abort + if(ctx == 0) + { + break; + } + result = 1; + + DWORD64 xstate_mask = 0; + GetXStateFeaturesMask(ctx, &xstate_mask); + + //- rjf: convert context -> X64_RegBlock + XSAVE_FORMAT *xsave = &ctx->FltSave; + dst->rax = ctx->Rax; + dst->rcx = ctx->Rcx; + dst->rdx = ctx->Rdx; + dst->rbx = ctx->Rbx; + dst->rsp = ctx->Rsp; + dst->rbp = ctx->Rbp; + dst->rsi = ctx->Rsi; + dst->rdi = ctx->Rdi; + dst->r8 = ctx->R8; + dst->r9 = ctx->R9; + dst->r10 = ctx->R10; + dst->r11 = ctx->R11; + dst->r12 = ctx->R12; + dst->r13 = ctx->R13; + dst->r14 = ctx->R14; + dst->r15 = ctx->R15; + dst->rip = ctx->Rip; + dst->cs = ctx->SegCs; + dst->ds = ctx->SegDs; + dst->es = ctx->SegEs; + dst->fs = ctx->SegFs; + dst->gs = ctx->SegGs; + dst->ss = ctx->SegSs; + dst->dr0 = ctx->Dr0; + dst->dr1 = ctx->Dr1; + dst->dr2 = ctx->Dr2; + dst->dr3 = ctx->Dr3; + dst->dr6 = ctx->Dr6; + dst->dr7 = ctx->Dr7; + // NOTE(rjf): this bit is "supposed to always be 1", according to old info. + // may need to be investigated. + dst->rflags = ctx->EFlags | 0x2; + dst->fcw = xsave->ControlWord; + dst->fsw = xsave->StatusWord; + dst->ftw = xsave->TagWord; + dst->fop = xsave->ErrorOpcode; + MemoryCopy(&dst->fip, &xsave->ErrorOffset, sizeof(U64)); + MemoryCopy(&dst->fdp, &xsave->DataOffset, sizeof(U64)); + dst->mxcsr = xsave->MxCsr; + dst->mxcsr_mask = xsave->MxCsr_Mask; + { + M128A *float_s = xsave->FloatRegisters; + U80 *float_d = &dst->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) + { + MemoryCopy(float_d, float_s, sizeof(*float_d)); + } + } + + // SSE registers are always available in x64 + { + M128A *xmm_s = xsave->XmmRegisters; + U512 *zmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_s += 1, zmm_d += 1) + { + MemoryCopy(zmm_d, xmm_s, sizeof(*xmm_s)); + } + } + + // AVX + if(xstate_mask & XSTATE_MASK_AVX) + { + DWORD avx_length = 0; + U8 *avx_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX, &avx_length); + if(avx_length == 16 * sizeof(U128)) + { + U512 *zmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, avx_s += sizeof(U128), zmm_d += 1) + { + MemoryCopy(&zmm_d->u8[16], avx_s, sizeof(U128)); + } + } + } + else + { + U512 *zmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, zmm_d += 1) + { + MemoryZero(&zmm_d->u8[16], sizeof(U128)); + } + } + + // AVX-512 + if(xstate_mask & XSTATE_MASK_AVX512) + { + // rjf: kmask + DWORD kmask_length = 0; + U64 *kmask_s = (U64*)LocateXStateFeature(ctx, XSTATE_AVX512_KMASK, &kmask_length); + if(kmask_length == 8 * sizeof(U64)) + { + U64 *kmask_d = &dst->k0; + for(U32 n = 0; n < 8; n += 1, kmask_s += 1, kmask_d += 1) + { + MemoryCopy(kmask_d, kmask_s, sizeof(*kmask_s)); + } + } + + // rjf: zmmh + DWORD avx512h_length = 0; + U8 *avx512h_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM_H, &avx512h_length); + if(avx512h_length == 16 * sizeof(U256)) + { + U512 *zmmh_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, avx512h_s += sizeof(U256), zmmh_d += 1) + { + MemoryCopy(&zmmh_d->u8[32], avx512h_s, sizeof(U256)); + } + } + + // rjf: zmm + DWORD avx512_length = 0; + U8 *avx512_s = (U8 *)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM, &avx512_length); + if(avx512_length == 16 * sizeof(U512)) + { + U512 *zmm_d = &dst->zmm16; + for(U32 n = 0; n < 16; n += 1, avx512_s += sizeof(U512), zmm_d += 1) + { + MemoryCopy(zmm_d, avx512_s, sizeof(U512)); + } + } + } + else + { + U64 *kmask_d = &dst->k0; + for(U32 n = 0; n < 8; n += 1, kmask_d += 1) + { + MemoryZero(kmask_d, sizeof(*kmask_d)); + } + U512 *zmmh_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, zmmh_d += 1) + { + MemoryZero(&zmmh_d->u8[32], sizeof(U256)); + } + U512 *zmm_d = &dst->zmm16; + for(U32 n = 0; n < 16; n += 1, zmm_d += 1) + { + MemoryZero(zmm_d, sizeof(*zmm_d)); + } + } + + // CET / Shadow Stack + if(xstate_mask & XSTATE_MASK_CET_U) + { + DWORD cet_length = 0; + XSAVE_CET_U_FORMAT *cet = LocateXStateFeature(ctx, XSTATE_CET_U, &cet_length); + if (cet_length == sizeof(*cet)) + { + dst->cetmsr = cet->Ia32CetUMsr; + dst->cetssp = cet->Ia32Pl3SspMsr; + } + } + + scratch_end(scratch); + }break; + } + ProfEnd(); + return result; +} + +internal B32 +w32_dmn_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block) +{ + B32 result = 0; + ProfBeginFunction(); + switch(arch) + { + //////////////////////////// + //- rjf: unimplemented win32/arch combos + // + case Arch_Null: + case Arch_COUNT: + {}break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {NotImplemented;}break; + + //////////////////////////// + //- rjf: x64 + // + case Arch_x64: + { + Temp scratch = scratch_begin(0, 0); + X64_RegBlock *src = (X64_RegBlock *)reg_block; + + //- rjf: unpack info about available features + U32 feature_mask = GetEnabledXStateFeatures(); + B32 xstate_enabled = (feature_mask & (XSTATE_MASK_AVX | XSTATE_MASK_AVX512)) != 0; + + //- rjf: set up context + CONTEXT *ctx = 0; + U32 ctx_flags = W32_DMN_CTX_X64_ALL | (xstate_enabled ? W32_DMN_CTX_INTEL_XSTATE : 0); + DWORD size = 0; + InitializeContext(0, ctx_flags, 0, &size); + if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + void *ctx_memory = push_array(scratch.arena, U8, size); + if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) + { + ctx = 0; + } + } + + //- rjf: unpack features available on this context + if (xstate_enabled) + { + SetXStateFeaturesMask(ctx, XSTATE_MASK_AVX | XSTATE_MASK_AVX512); + } + + //- rjf: bad context -> abort + if(ctx == 0) + { + break; + } + + //- rjf: convert X64_RegBlock -> CONTEXT + XSAVE_FORMAT *fxsave = &ctx->FltSave; + ctx->ContextFlags = ctx_flags; + ctx->MxCsr = src->mxcsr & src->mxcsr_mask; + ctx->Rax = src->rax; + ctx->Rcx = src->rcx; + ctx->Rdx = src->rdx; + ctx->Rbx = src->rbx; + ctx->Rsp = src->rsp; + ctx->Rbp = src->rbp; + ctx->Rsi = src->rsi; + ctx->Rdi = src->rdi; + ctx->R8 = src->r8; + ctx->R9 = src->r9; + ctx->R10 = src->r10; + ctx->R11 = src->r11; + ctx->R12 = src->r12; + ctx->R13 = src->r13; + ctx->R14 = src->r14; + ctx->R15 = src->r15; + ctx->Rip = src->rip; + ctx->SegCs = src->cs; + ctx->SegDs = src->ds; + ctx->SegEs = src->es; + ctx->SegFs = src->fs; + ctx->SegGs = src->gs; + ctx->SegSs = src->ss; + ctx->Dr0 = src->dr0; + ctx->Dr1 = src->dr1; + ctx->Dr2 = src->dr2; + ctx->Dr3 = src->dr3; + ctx->Dr6 = src->dr6; + ctx->Dr7 = src->dr7; + ctx->EFlags = src->rflags; + fxsave->ControlWord = src->fcw; + fxsave->StatusWord = src->fsw; + fxsave->TagWord = src->ftw; + fxsave->ErrorOpcode = src->fop; + MemoryCopy(&fxsave->ErrorOffset, &src->fip, sizeof(U64)); + MemoryCopy(&fxsave->DataOffset, &src->fdp, sizeof(U64)); + { + M128A *float_d = fxsave->FloatRegisters; + U80 *float_s = &src->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) + { + MemoryCopy(float_d, float_s, 10); + } + } + + // SSE registers are always available in x64 + { + M128A *xmm_d = fxsave->XmmRegisters; + U512 *zmm_s = &src->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_d += 1, zmm_s += 1) + { + MemoryCopy(xmm_d, zmm_s, sizeof(*xmm_d)); + } + } + + // AVX + if(feature_mask & XSTATE_MASK_AVX) + { + DWORD avx_length = 0; + U8* avx_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX, &avx_length); + if(avx_length == 16 * sizeof(U128)) + { + U512 *zmm_s = &src->zmm0; + for(U32 n = 0; n < 16; n += 1, avx_d += sizeof(U128), zmm_s += 1) + { + MemoryCopy(avx_d, &zmm_s->u8[16], sizeof(U128)); + } + } + } + + // AVX-512 + if(feature_mask & XSTATE_MASK_AVX512) + { + DWORD kmask_length = 0; + U64* kmask_d = (U64*)LocateXStateFeature(ctx, XSTATE_AVX512_KMASK, &kmask_length); + if(kmask_length == 8 * sizeof(*kmask_d)) + { + U64 *kmask_s = &src->k0; + for(U32 n = 0; n < 8; n += 1, kmask_s += 1, kmask_d += 1) + { + MemoryCopy(kmask_d, kmask_s, sizeof(*kmask_d)); + } + } + + DWORD avx512h_length = 0; + U8* avx512h_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM_H, &avx512h_length); + if(avx512h_length == 16 * sizeof(U256)) + { + U512 *zmmh_s = &src->zmm0; + for(U32 n = 0; n < 16; n += 1, avx512h_d += sizeof(U256), zmmh_s += 1) + { + MemoryCopy(avx512h_d, &zmmh_s->u8[32], sizeof(U256)); + } + } + + DWORD avx512_length = 0; + U8* avx512_d = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM, &avx512_length); + if(avx512_length == 16 * sizeof(U512)) + { + U512 *zmm_s = &src->zmm16; + for(U32 n = 0; n < 16; n += 1, avx512_d += sizeof(U512), zmm_s += 1) + { + MemoryCopy(avx512_d, zmm_s, sizeof(U512)); + } + } + } + + //- rjf: set thread context + if(SetThreadContext(thread, ctx)) + { + result = 1; + } + scratch_end(scratch); + }break; + } + ProfEnd(); + return result; +} + +internal U64 +w32_dmn_thread_stack_base_vaddr_from_tlb_vaddr(HANDLE process, Arch arch, U64 tlb_vaddr) +{ + U64 stack_base_vaddr = 0; + { + switch(arch) + { + case Arch_Null: + case Arch_COUNT: + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {}break; + case Arch_x64: + { + U64 stack_base_vaddr = tlb_vaddr + 0x8; + w32_dmn_process_read(process, r1u64(stack_base_vaddr, stack_base_vaddr+8), &stack_base_vaddr); + }break; + } + } + return stack_base_vaddr; +} + +internal U64 +w32_dmn_thread_tls_root_vaddr_from_tlb_vaddr(Arch arch, U64 tlb_vaddr) +{ + U64 result = 0; + switch(arch) + { + case Arch_Null: + case Arch_COUNT: + {}break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {}break; + case Arch_x64: + { + result = tlb_vaddr + 88; + }break; + } + return result; +} + +//- rjf: remote thread injection + +internal DWORD +w32_dmn_inject_thread(HANDLE process, U64 start_address) +{ + LPTHREAD_START_ROUTINE start = (LPTHREAD_START_ROUTINE)start_address; + DWORD thread_id = 0; + HANDLE thread = CreateRemoteThread(process, 0, 0, start, 0, 0, &thread_id); + if(thread != 0) + { + CloseHandle(thread); + } + return thread_id; +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Main Layer Initialization (Implemented Per-OS) + +internal void +dmn_init(void) +{ + Arena *arena = arena_alloc(); + w32_dmn_shared = push_array(arena, W32_DMN_Shared, 1); + w32_dmn_shared->arena = arena; + w32_dmn_shared->access_mutex = mutex_alloc(); + w32_dmn_shared->detach_arena = arena_alloc(); + w32_dmn_shared->entities_arena = arena_alloc(.reserve_size = GB(8), .commit_size = KB(64)); + w32_dmn_shared->entities_base = w32_dmn_entity_alloc(&w32_dmn_entity_nil, W32_DMN_EntityKind_Root, 0); + w32_dmn_shared->entities_id_hash_slots_count = 4096; + w32_dmn_shared->entities_id_hash_slots = push_array(arena, W32_DMN_EntityIDHashSlot, w32_dmn_shared->entities_id_hash_slots_count); + + // rjf: load Windows 10+ GetThreadDescription API + { + w32_dmn_GetThreadDescription = (W32_DMN_GetThreadDescriptionFunctionType *)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "GetThreadDescription"); + } + + // rjf: setup environment variables + { + WCHAR *this_proc_env = GetEnvironmentStringsW(); + U64 start_idx = 0; + for(U64 idx = 0;; idx += 1) + { + if(this_proc_env[idx] == 0) + { + if(start_idx == idx) + { + break; + } + else + { + String16 string16 = str16((U16 *)this_proc_env + start_idx, idx - start_idx); + String8 string = str8_from_16(w32_dmn_shared->arena, string16); + str8_list_push(w32_dmn_shared->arena, &w32_dmn_shared->env_strings, string); + start_idx = idx+1; + } + } + } + } +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Blocking Control Thread Operations (Implemented Per-OS) + +internal DMN_CtrlCtx * +dmn_ctrl_begin(void) +{ + DMN_CtrlCtx *ctx = (DMN_CtrlCtx *)1; + w32_dmn_ctrl_thread = 1; + return ctx; +} + +internal void +dmn_ctrl_exclusive_access_begin(void) +{ + MutexScope(w32_dmn_shared->access_mutex) + { + w32_dmn_shared->access_run_state = 1; + } +} + +internal void +dmn_ctrl_exclusive_access_end(void) +{ + MutexScope(w32_dmn_shared->access_mutex) + { + w32_dmn_shared->access_run_state = 0; + } +} + +internal U32 +dmn_ctrl_launch(DMN_CtrlCtx *ctx, ProcessLaunchParams *params) +{ + Temp scratch = scratch_begin(0, 0); + U32 result = 0; + DMN_AccessScope + { + //- rjf: produce exe / arguments string + String8 cmd = {0}; + if(params->cmd_line.first != 0) + { + String8List args = {0}; + String8 exe_path = params->cmd_line.first->string; + String8List exe_path_parts = str8_split_path(scratch.arena, exe_path); + exe_path = str8_list_join(scratch.arena, &exe_path_parts, &(StringJoin){.sep = str8_lit("\\")}); + str8_list_pushf(scratch.arena, &args, "\"%S\"", exe_path); + for(String8Node *n = params->cmd_line.first->next; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &args, n->string); + } + StringJoin join_params = {0}; + join_params.sep = str8_lit(" "); + cmd = str8_list_join(scratch.arena, &args, &join_params); + } + + //- rjf: produce environment strings + String8 env = {0}; + { + String8List all_opts = params->env; + if(params->inherit_env != 0) + { + MemoryZeroStruct(&all_opts); + str8_list_push(scratch.arena, &all_opts, str8_lit("_NO_DEBUG_HEAP=1")); + for(String8Node *n = params->env.first; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &all_opts, n->string); + } + for(String8Node *n = w32_dmn_shared->env_strings.first; n != 0; n = n->next) + { + str8_list_push(scratch.arena, &all_opts, n->string); + } + } + StringJoin join_params2 = {0}; + join_params2.sep = str8_lit("\0"); + join_params2.post = str8_lit("\0"); + env = str8_list_join(scratch.arena, &all_opts, &join_params2); + } + + //- rjf: produce utf-16 strings + String16 cmd16 = str16_from_8(scratch.arena, cmd); + String16 dir16 = str16_from_8(scratch.arena, params->path); + String16 env16 = str16_from_8(scratch.arena, env); + + //- rjf: launch + DWORD creation_flags = CREATE_UNICODE_ENVIRONMENT; + if(params->debug_subprocesses) + { + creation_flags |= DEBUG_PROCESS; + } + else + { + creation_flags |= DEBUG_ONLY_THIS_PROCESS; + } + BOOL inherit_handles = 0; + STARTUPINFOW startup_info = {sizeof(startup_info)}; + if(!file_match(params->stdout_file, file_zero())) + { + HANDLE stdout_handle = (HANDLE)params->stdout_file.u64[0]; + startup_info.hStdOutput = stdout_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + if(!file_match(params->stderr_file, file_zero())) + { + HANDLE stderr_handle = (HANDLE)params->stderr_file.u64[0]; + startup_info.hStdError = stderr_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + if(!file_match(params->stdin_file, file_zero())) + { + HANDLE stdin_handle = (HANDLE)params->stdin_file.u64[0]; + startup_info.hStdInput = stdin_handle; + startup_info.dwFlags |= STARTF_USESTDHANDLES; + inherit_handles = 1; + } + PROCESS_INFORMATION process_info = {0}; + if(CreateProcessW(0, (WCHAR*)cmd16.str, 0, 0, 1, creation_flags, (WCHAR*)env16.str, (WCHAR*)dir16.str, &startup_info, &process_info)) + { + // check if we are 32-bit app, and just close it immediately + BOOL is_wow = 0; + IsWow64Process(process_info.hProcess, &is_wow); + if(is_wow) + { + log_user_errorf("Only 64-bit applications can be debugged currently."); + DebugActiveProcessStop(process_info.dwProcessId); + TerminateProcess(process_info.hProcess,0xffffffff); + } + else + { + result = process_info.dwProcessId; + w32_dmn_shared->new_process_pending = 1; + } + CloseHandle(process_info.hProcess); + CloseHandle(process_info.hThread); + } + else + { + DWORD error = GetLastError(); + LPWSTR message = 0; + FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, error, MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL), (LPWSTR)&message, 0, 0); + String8 message8 = message ? str8_from_16(scratch.arena, str16_cstring(message)) : str8_lit("unknown error"); + LocalFree(message); + + log_user_errorf("There was an error starting %S: %S", params->cmd_line.first->string, message8); + } + } + scratch_end(scratch); + return result; +} + +internal B32 +dmn_ctrl_attach(DMN_CtrlCtx *ctx, U32 pid) +{ + B32 result = 0; + DMN_AccessScope if(DebugActiveProcess((DWORD)pid)) + { + result = 1; + w32_dmn_shared->new_process_pending = 1; + +#if 0 + // TODO(rjf): JIT debugging info + { + typedef struct JIT_DEBUG_INFO JIT_DEBUG_INFO; + struct JIT_DEBUG_INFO + { + DWORD dwSize; + DWORD dwProcessorArchitecture; + DWORD dwThreadID; + DWORD dwReserved0; + ULONG64 lpExceptionAddress; + ULONG64 lpExceptionRecord; + ULONG64 lpContextRecord; + }; + } +#endif + } + return result; +} + +internal B32 +dmn_ctrl_kill(DMN_CtrlCtx *ctx, DMN_Handle process, U32 exit_code) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + if(TerminateProcess(process_entity->handle, exit_code)) + { + result = 1; + } + } + return result; +} + +internal B32 +dmn_ctrl_detach(DMN_CtrlCtx *ctx, DMN_Handle process) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + + // rjf: resume threads + for(W32_DMN_Entity *child = process_entity->first; + child != &w32_dmn_entity_nil; + child = child->next) + { + if(child->kind == W32_DMN_EntityKind_Thread) + { + DWORD resume_result = ResumeThread(child->handle); + (void)resume_result; + } + } + + // rjf: detach + { + DWORD pid = (DWORD)process_entity->id; + if(DebugActiveProcessStop(pid)) + { + result = 1; + } + } + + // rjf: push into list of processes to generate events for later + if(result != 0) + { + dmn_handle_list_push(w32_dmn_shared->detach_arena, &w32_dmn_shared->detach_processes, process); + } + } + return result; +} + +internal DMN_EventList +dmn_ctrl_run(Arena *arena, DMN_CtrlCtx *ctx, DMN_RunCtrls *ctrls) +{ + DMN_EventList events = {0}; + dmn_access_open(); + + ////////////////////////////// + //- rjf: determine event generation path + // + typedef enum W32_DMN_EventGenPath + { + W32_DMN_EventGenPath_NotAttached, + W32_DMN_EventGenPath_Run, + W32_DMN_EventGenPath_DetachProcesses, + } + W32_DMN_EventGenPath; + W32_DMN_EventGenPath event_gen_path = W32_DMN_EventGenPath_Run; + if(w32_dmn_shared->detach_processes.first != 0) + { + event_gen_path = W32_DMN_EventGenPath_DetachProcesses; + } + else + { + B32 any_processes_live = w32_dmn_shared->new_process_pending; + if(!any_processes_live) + { + for(W32_DMN_Entity *process = w32_dmn_shared->entities_base->first; + process != &w32_dmn_entity_nil; + process = process->next) + { + if(process->kind == W32_DMN_EntityKind_Process) + { + any_processes_live = 1; + break; + } + } + } + if(!any_processes_live) + { + event_gen_path = W32_DMN_EventGenPath_NotAttached; + } + } + + ////////////////////////////// + //- rjf: produce debug events + // + switch(event_gen_path) + { + //////////////////////////// + //- rjf: produce not-attached error events + // + case W32_DMN_EventGenPath_NotAttached: + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_Error; + e->error_kind = DMN_ErrorKind_NotAttached; + }break; + + //////////////////////////// + //- rjf: produce debug events from regular running + // + case W32_DMN_EventGenPath_Run: + { + Temp scratch = scratch_begin(&arena, 1); + + ////////////////////////// + //- rjf: get single step thread's context (x64 single-step-set fast path) + // + CONTEXT *single_step_thread_ctx = 0; + if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(ctrls->single_step_thread); + Arch arch = thread->arch; + switch(arch) + { + default:{}break; + case Arch_x64: + { + U32 ctx_flags = W32_DMN_CTX_X64|W32_DMN_CTX_INTEL_CONTROL; + DWORD size = 0; + InitializeContext(0, ctx_flags, 0, &size); + if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + void *ctx_memory = push_array(scratch.arena, U8, size); + if(!InitializeContext(ctx_memory, ctx_flags, &single_step_thread_ctx, &size)) + { + single_step_thread_ctx = 0; + } + } + }break; + } + } + + ////////////////////////// + //- rjf: set single step bit + // + if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) ProfScope("set single step bit") + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(ctrls->single_step_thread); + Arch arch = thread->arch; + switch(arch) + { + //- rjf: unimplemented win32/arch combos + case Arch_Null: + case Arch_COUNT: + {}break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {NotImplemented;}break; + + //- rjf: x64 + case Arch_x64: + { + if(!GetThreadContext(thread->handle, single_step_thread_ctx)) + { + single_step_thread_ctx = 0; + } + if(single_step_thread_ctx != 0) + { + U64 rflags = single_step_thread_ctx->EFlags|0x2; + U64 new_rflags = rflags | 0x100; + single_step_thread_ctx->EFlags = new_rflags; + SetThreadContext(thread->handle, single_step_thread_ctx); + } + }break; + } + } + + ////////////////////////// + //- rjf: write all traps into memory + // + U8 *trap_swap_bytes = push_array_no_zero(scratch.arena, U8, ctrls->traps.trap_count); + ProfScope("write all traps into memory") + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) + { + DMN_Trap *trap = n->v+n_idx; + if(trap->flags == 0) + { + trap_swap_bytes[trap_idx] = 0xCC; + dmn_process_read(trap->process, r1u64(trap->vaddr, trap->vaddr+1), trap_swap_bytes+trap_idx); + U8 int3 = 0xCC; + dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &int3); + } + } + } + } + + ////////////////////////// + //- rjf: gather all flagged traps, bucketed by process + // + typedef struct DMN_FlaggedTrapTask DMN_FlaggedTrapTask; + struct DMN_FlaggedTrapTask + { + DMN_FlaggedTrapTask *next; + DMN_Handle process; + DMN_TrapChunkList traps; + }; + DMN_FlaggedTrapTask *first_flagged_trap_task = 0; + DMN_FlaggedTrapTask *last_flagged_trap_task= 0; + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1) + { + DMN_Trap *trap = n->v+n_idx; + if(trap->flags != 0) + { + DMN_FlaggedTrapTask *task = 0; + for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) + { + if(dmn_handle_match(t->process, trap->process)) + { + task = t; + break; + } + } + if(task == 0) + { + task = push_array(scratch.arena, DMN_FlaggedTrapTask, 1); + SLLQueuePush(first_flagged_trap_task, last_flagged_trap_task, task); + task->process = trap->process; + } + B32 already_in_task = 0; + for(DMN_TrapChunkNode *n = task->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1) + { + if(n->v[n_idx].id == trap->id) + { + already_in_task = 1; + goto end_look_for_existing_trap_in_task; + } + } + } + end_look_for_existing_trap_in_task:; + if(!already_in_task) + { + dmn_trap_chunk_list_push(scratch.arena, &task->traps, 8, trap); + } + } + } + } + + ////////////////////////// + //- rjf: write all debug register states, for flagged-traps + // + ProfScope("write all debug register states, for flagged-traps") + { + //- rjf: for each flagged trap task, iterate all threads in the + // associated process, and prepare debug registers accordingly + for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) + { + DMN_Handle process = t->process; + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + for(W32_DMN_Entity *child = process_entity->first; + child != &w32_dmn_entity_nil; + child = child->next) + { + if(child->kind == W32_DMN_EntityKind_Thread) + { + switch(child->arch) + { + default:{}break; + + //- rjf: x64 + case Arch_x64: + { + X64_RegBlock regs = {0}; + w32_dmn_thread_read_reg_block(child->arch, child->handle, ®s); + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = t->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count && trap_idx < 4; n_idx += 1, trap_idx += 1) + { + DMN_Trap *trap = &n->v[n_idx]; + U64 *addr_reg = ®s.dr0; + switch(trap_idx) + { + default:{}break; + case 0:{addr_reg = ®s.dr0;}break; + case 1:{addr_reg = ®s.dr1;}break; + case 2:{addr_reg = ®s.dr2;}break; + case 3:{addr_reg = ®s.dr3;}break; + } + addr_reg[0] = trap->vaddr; + regs.dr7 |= bit9|bit10|bit11; + regs.dr7 |= (1ull << (trap_idx*2)); + // NOTE(rjf): global-enable regs.dr7.u64 |= (1ull << (trap_idx*2+1)); + regs.dr7 &= ~((U64)(bit17|bit18|bit19|bit20) << (trap_idx*4)); + regs.dr7 &= ~((U64)(bit15|bit16)); + switch(trap->flags) + { + case DMN_TrapFlag_BreakOnExecute: + default:{}break; + case DMN_TrapFlag_BreakOnWrite: + case DMN_TrapFlag_BreakOnWrite|DMN_TrapFlag_BreakOnExecute: + { + regs.dr7 |= ((U64)bit17) << (trap_idx*4); + }break; + case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite|DMN_TrapFlag_BreakOnExecute: + case DMN_TrapFlag_BreakOnRead|DMN_TrapFlag_BreakOnWrite: + case DMN_TrapFlag_BreakOnRead: + { + regs.dr7 |= (((U64)bit17) << (trap_idx*4)); + regs.dr7 |= (((U64)bit18) << (trap_idx*4)); + }break; + } + switch(trap->size) + { + case 1: + default:{}break; + case 2: + { + regs.dr7 |= (((U64)bit19) << (trap_idx*4)); + }break; + case 4: + { + regs.dr7 |= (((U64)bit19) << (trap_idx*4)); + regs.dr7 |= (((U64)bit20) << (trap_idx*4)); + }break; + case 8: + { + regs.dr7 |= (((U64)bit20) << (trap_idx*4)); + }break; + } + } + } + } + w32_dmn_thread_write_reg_block(child->arch, child->handle, ®s); + }break; + } + } + } + } + } + + ////////////////////////// + //- rjf: produce list of threads which will run + // + W32_DMN_EntityNode *first_run_thread = 0; + W32_DMN_EntityNode *last_run_thread = 0; + ProfScope("produce list of threads which will run") + { + //- rjf: scan all processes + for(W32_DMN_Entity *process = w32_dmn_shared->entities_base->first; + process != &w32_dmn_entity_nil; + process = process->next) + { + if(process->kind != W32_DMN_EntityKind_Process) {continue;} + + //- rjf: determine if this process is frozen + B32 process_is_frozen = 0; + if(ctrls->run_entities_are_processes) + { + for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) + { + if(dmn_handle_match(ctrls->run_entities[idx], w32_dmn_handle_from_entity(process))) + { + process_is_frozen = 1; + break; + } + } + } + + //- rjf: scan all threads in this process + for(W32_DMN_Entity *thread = process->first; + thread != &w32_dmn_entity_nil; + thread = thread->next) + { + if(thread->kind != W32_DMN_EntityKind_Thread) {continue;} + + //- rjf: determine if this thread is frozen + B32 is_frozen = 0; + { + // rjf: single-step? freeze if not the single-step thread. + if(!dmn_handle_match(dmn_handle_zero(), ctrls->single_step_thread)) + { + is_frozen = !dmn_handle_match(w32_dmn_handle_from_entity(thread), ctrls->single_step_thread); + } + + // rjf: not single-stepping? determine based on run controls freezing info + else + { + if(ctrls->run_entities_are_processes) + { + is_frozen = process_is_frozen; + } + else for(U64 idx = 0; idx < ctrls->run_entity_count; idx += 1) + { + if(dmn_handle_match(ctrls->run_entities[idx], w32_dmn_handle_from_entity(thread))) + { + is_frozen = 1; + break; + } + } + if(ctrls->run_entities_are_unfrozen) + { + is_frozen ^= 1; + } + } + } + + //- rjf: disregard all other rules if this is the halter thread + if(w32_dmn_shared->halter_tid == thread->id) + { + is_frozen = 0; + } + + //- rjf: add to list + if(!is_frozen) + { + W32_DMN_EntityNode *n = push_array(scratch.arena, W32_DMN_EntityNode, 1); + n->v = thread; + SLLQueuePush(first_run_thread, last_run_thread, n); + } + } + } + } + + ////////////////////////// + //- rjf: loop, consume win32 debug events until we produce the relevant demon events + // + B32 priority_mode = !dmn_handle_match(dmn_handle_zero(), ctrls->priority_thread); + B32 did_priority_mode = priority_mode; + B32 do_threads_resume = 1; + W32_DMN_EntityNode *first_ran_thread = 0; + W32_DMN_EntityNode *last_ran_thread = 0; + U64 begin_time = now_time_us(); + String8List debug_strings = {0}; + DMN_Event *debug_strings_event = 0; + for(B32 keep_going = 1; keep_going;) + { + keep_going = 0; + + //////////////////////// + //- rjf: resume threads that we want to run + // + // if priority mode? => first, just resume priority thread + // if not? => resume all non-priority threads + // + if(do_threads_resume) ProfScope("resume threads that we want to run") + { + do_threads_resume = 0; + for(W32_DMN_EntityNode *n = first_run_thread; n != 0; n = n->next) + { + W32_DMN_Entity *thread = n->v; + B32 thread_is_priority = dmn_handle_match(w32_dmn_handle_from_entity(thread), ctrls->priority_thread); + if((priority_mode && !thread_is_priority) || + (!priority_mode && did_priority_mode && thread_is_priority)) + { + continue; + } + DWORD resume_result = ResumeThread(thread->handle); + W32_DMN_EntityNode *n = push_array(scratch.arena, W32_DMN_EntityNode, 1); + SLLQueuePush(first_ran_thread, last_ran_thread, n); + n->v = thread; + switch(resume_result) + { + case 0xffffffffu: + { + // TODO(rjf): error - unknown cause. need to do GetLastError, FormatMessage + }break; + default: + { + DWORD desired_counter = 0; + DWORD current_counter = resume_result - 1; + if(current_counter != desired_counter) + { + // NOTE(rjf): Warning. The user has manually suspended this thread, + // so even though from Demon's perspective it thinks this thread + // should run, it will not, because the user has manually called + // SuspendThread or used CREATE_SUSPENDED or whatever. + } + }break; + } + if(priority_mode && thread_is_priority) + { + break; + } + } + } + + //////////////////////// + //- rjf: choose win32 resume code + // + DWORD resume_code = DBG_CONTINUE; + { + if(w32_dmn_shared->exception_not_handled && !ctrls->ignore_previous_exception) + { + log_infof("using DBG_EXCEPTION_NOT_HANDLED\n"); + resume_code = DBG_EXCEPTION_NOT_HANDLED; + } + else + { + log_infof("using DBG_CONTINUE\n"); + } + w32_dmn_shared->exception_not_handled = 0; + } + + //////////////////////// + //- rjf: inform windows that we're resuming, run, & obtain next debug event + // + DEBUG_EVENT evt = {0}; + B32 evt_good = 0; + ProfScope("inform windows that we're resuming, run, & obtain next debug event") + { + B32 resume_good = 1; + if(w32_dmn_shared->resume_needed) + { + w32_dmn_shared->resume_needed = 0; + resume_good = !!ContinueDebugEvent(w32_dmn_shared->resume_pid, w32_dmn_shared->resume_tid, resume_code); + DWORD error = GetLastError(); + w32_dmn_shared->resume_needed = 0; + w32_dmn_shared->resume_tid = 0; + w32_dmn_shared->resume_pid = 0; + } + if(resume_good) + { + DWORD wait_ms = 100; + if(priority_mode) + { + wait_ms = 30; + } + evt_good = !!WaitForDebugEvent(&evt, wait_ms); + if(evt_good) + { + w32_dmn_shared->resume_needed = 1; + w32_dmn_shared->resume_pid = evt.dwProcessId; + w32_dmn_shared->resume_tid = evt.dwThreadId; + } + else + { + DWORD err = GetLastError(); + (void)err; + keep_going = 1; + } + if(priority_mode) + { + priority_mode = 0; + do_threads_resume = 1; + } + } + } + + //////////////////////// + //- rjf: process the new event + // + if(evt_good) ProfScope("process the new event") + { + switch(evt.dwDebugEventCode) + { + ////////////////////// + //- rjf: process was created + // + case CREATE_PROCESS_DEBUG_EVENT: + { + // rjf: zero out "process pending" state + w32_dmn_shared->new_process_pending = 0; + + // rjf: unpack event + HANDLE process_handle = evt.u.CreateProcessInfo.hProcess; + HANDLE thread_handle = evt.u.CreateProcessInfo.hThread; + HANDLE module_handle = evt.u.CreateProcessInfo.hFile; + U64 tls_base = (U64)evt.u.CreateProcessInfo.lpThreadLocalBase; + U64 module_base = (U64)evt.u.CreateProcessInfo.lpBaseOfImage; + U64 module_name_vaddr = (U64)evt.u.CreateProcessInfo.lpImageName; + B32 module_name_is_unicode = (evt.u.CreateProcessInfo.fUnicode != 0); + + // rjf: parse module info + DMN_ModuleInfo *module_info = w32_dmn_module_info_from_process_module(arena, process_handle, module_handle, module_base, module_name_vaddr, module_name_is_unicode, 1); + + // rjf: create process/module entities (module is implied for processes - not reported directly via module events) + W32_DMN_Entity *process = w32_dmn_entity_alloc(w32_dmn_shared->entities_base, W32_DMN_EntityKind_Process, evt.dwProcessId); + W32_DMN_Entity *module = w32_dmn_entity_alloc(process, W32_DMN_EntityKind_Module, module_base); + { + process->handle = process_handle; + process->arch = module_info->arch; + module->handle = module_handle; + module->module.vaddr_range = r1u64(module_base, module_base + module_info->vsize); + module->module.is_main = 1; + module->module.address_of_name_pointer = module_name_vaddr; + module->module.name_is_unicode = module_name_is_unicode; + } + + // rjf: create main thread entity (implied from process event, see above) + W32_DMN_Entity *thread = w32_dmn_entity_alloc(process, W32_DMN_EntityKind_Thread, evt.dwThreadId); + { + thread->handle = thread_handle; + thread->arch = module_info->arch; + thread->thread.thread_local_base = tls_base; + } + + // rjf: unpack thread addresses + U64 stack_base_vaddr = w32_dmn_thread_stack_base_vaddr_from_tlb_vaddr(process_handle, module_info->arch, tls_base); + U64 tls_root_vaddr = w32_dmn_thread_tls_root_vaddr_from_tlb_vaddr(module_info->arch, tls_base); + + // rjf: put thread into suspended state, so it matches expected initial state + SuspendThread(thread_handle); + + // rjf: set up per-process injected code (to run halter threads on & + // generate debug events) + { + U8 injection_code[W32_DMN_INJECTED_CODE_SIZE]; + MemorySet(injection_code, 0xCC, W32_DMN_INJECTED_CODE_SIZE); + injection_code[0] = 0xC3; + U64 injection_size = W32_DMN_INJECTED_CODE_SIZE + sizeof(W32_DMN_InjectedBreak); + U64 injection_address = (U64)VirtualAllocEx(process_handle, 0, injection_size, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE); + w32_dmn_process_write(process_handle, r1u64(injection_address, injection_address+sizeof(injection_code)), injection_code); + process->proc.injection_address = injection_address; + } + + // rjf: generate events + { + // rjf: create process + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_CreateProcess; + e->process = w32_dmn_handle_from_entity(process); + e->arch = module_info->arch; + e->code = evt.dwProcessId; + e->tls_model = DMN_TlsModel_WinodwsNt; + } + + // rjf: create thread + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_CreateThread; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + e->arch = module_info->arch; + e->code = evt.dwThreadId; + e->stack_pointer = stack_base_vaddr; + e->tls_root_vaddr= tls_root_vaddr; + } + + // rjf: load module + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_LoadModule; + e->process = w32_dmn_handle_from_entity(process); + e->module = w32_dmn_handle_from_entity(module); + e->arch = module_info->arch; + e->address = module_base; + e->size = module_info->vsize; + e->string = module_info->module_path; + e->module_info = module_info; + } + } + }break; + + ////////////////////// + //- rjf: process exited + // + case EXIT_PROCESS_DEBUG_EVENT: + { + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + + // rjf: if this was the process we were going to resume, then we will + // just not resume, and wait for another debug event + if(evt.dwProcessId == w32_dmn_shared->resume_pid) + { + w32_dmn_shared->resume_needed = 0; + w32_dmn_shared->resume_tid = 0; + w32_dmn_shared->resume_pid = 0; + } + + // rjf: generate events for children + for(W32_DMN_Entity *child = process->first; child != &w32_dmn_entity_nil; child = child->next) + { + switch(child->kind) + { + default:{}break; + case W32_DMN_EntityKind_Thread: + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_ExitThread; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(child); + }break; + case W32_DMN_EntityKind_Module: + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_UnloadModule; + e->process = w32_dmn_handle_from_entity(process); + e->module = w32_dmn_handle_from_entity(child); + e->string = w32_dmn_full_path_from_module(arena, child); + }break; + } + } + + // rjf: generate event for process + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_ExitProcess; + e->process = w32_dmn_handle_from_entity(process); + e->code = evt.u.ExitProcess.dwExitCode; + } + + // rjf: release entity storage + w32_dmn_entity_release(process); + + // rjf: detach + DebugActiveProcessStop(evt.dwProcessId); + }break; + + ////////////////////// + //- rjf: thread was created + // + case CREATE_THREAD_DEBUG_EVENT: + { + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + + // rjf: create thread entity + W32_DMN_Entity *thread = w32_dmn_entity_alloc(process, W32_DMN_EntityKind_Thread, evt.dwThreadId); + { + thread->handle = evt.u.CreateThread.hThread; + thread->arch = process->arch; + thread->thread.thread_local_base = (U64)evt.u.CreateThread.lpThreadLocalBase; + } + + // rjf: suspend thread immediately upon creation, to match with expected suspension state + DWORD sus_result = SuspendThread(thread->handle); + (void)sus_result; + + // rjf: unpack thread addresses + U64 stack_base_vaddr = w32_dmn_thread_stack_base_vaddr_from_tlb_vaddr(process->handle, thread->arch, (U64)evt.u.CreateThread.lpThreadLocalBase); + U64 tls_root_vaddr = w32_dmn_thread_tls_root_vaddr_from_tlb_vaddr(thread->arch, (U64)evt.u.CreateThread.lpThreadLocalBase); + + // rjf: unpack thread name + String8 thread_name = {0}; + if(w32_dmn_GetThreadDescription != 0) + { + WCHAR *thread_name_w = 0; + HRESULT hr = w32_dmn_GetThreadDescription(thread->handle, &thread_name_w); + if(SUCCEEDED(hr)) + { + thread_name = str8_from_16(arena, str16_cstring((U16 *)thread_name_w)); + LocalFree(thread_name_w); + } + } + + // rjf: determine if this is a "halter thread" - the threads we spawn to halt processes + B32 is_halter = (evt.dwThreadId == w32_dmn_shared->halter_tid); + + // rjf: generate events for non-halter threads + if(!is_halter) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_CreateThread; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + e->arch = thread->arch; + e->code = evt.dwThreadId; + e->string = thread_name; + e->stack_pointer = stack_base_vaddr; + e->tls_root_vaddr = tls_root_vaddr; + } + }break; + + ////////////////////// + //- rjf: thread exited + // + case EXIT_THREAD_DEBUG_EVENT: + { + W32_DMN_Entity *thread = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Thread, evt.dwThreadId); + W32_DMN_Entity *process = thread->parent; + + // rjf: determine if this is the halter thread + B32 is_halter = (evt.dwThreadId == w32_dmn_shared->halter_tid); + + // rjf: generate a halt event if this thread is the halter + if(is_halter) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_Halt; + w32_dmn_shared->halter_process = dmn_handle_zero(); + w32_dmn_shared->halter_tid = 0; + keep_going = 0; + } + + // rjf: if this thread is *not* the halter, then generate a regular exit-thread event + if(!is_halter) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_ExitThread; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + e->code = evt.u.ExitThread.dwExitCode; + } + + // rjf: release entity storage + w32_dmn_entity_release(thread); + }break; + + ////////////////////// + //- rjf: DLL was loaded + // + case LOAD_DLL_DEBUG_EVENT: + { + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + + // rjf: extract image info + U64 module_base = (U64)evt.u.LoadDll.lpBaseOfDll; + HANDLE module_handle = evt.u.LoadDll.hFile; + U64 module_name_vaddr = (U64)evt.u.LoadDll.lpImageName; + B32 module_name_is_unicode = (evt.u.LoadDll.fUnicode != 0); + DMN_ModuleInfo *module_info = w32_dmn_module_info_from_process_module(arena, process->handle, module_handle, module_base, module_name_vaddr, module_name_is_unicode, 0); + + // rjf: create module entity + W32_DMN_Entity *module = w32_dmn_entity_alloc(process, W32_DMN_EntityKind_Module, module_base); + { + module->handle = module_handle; + module->arch = module_info->arch; + module->module.vaddr_range = r1u64(module_base, module_base+module_info->vsize); + module->module.address_of_name_pointer = module_name_vaddr; + module->module.name_is_unicode = module_name_is_unicode; + } + + // rjf: generate event + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_LoadModule; + e->process = w32_dmn_handle_from_entity(process); + e->module = w32_dmn_handle_from_entity(module); + e->arch = module_info->arch; + e->address = module_base; + e->size = module_info->vsize; + e->string = module_info->module_path; + e->module_info = module_info; + } + }break; + + ////////////////////// + //- rjf: DLL was unloaded + // + case UNLOAD_DLL_DEBUG_EVENT: + { + U64 module_base = (U64)evt.u.UnloadDll.lpBaseOfDll; + W32_DMN_Entity *module = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Module, module_base); + W32_DMN_Entity *process = module->parent; + + // rjf: generate event + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_UnloadModule; + e->process = w32_dmn_handle_from_entity(process); + e->module = w32_dmn_handle_from_entity(module); + e->string = w32_dmn_full_path_from_module(arena, module); + } + + // rjf: release entity storage + w32_dmn_entity_release(module); + }break; + + ////////////////////// + //- rjf: exception was hit + // + case EXCEPTION_DEBUG_EVENT: + { + //- NOTE(rjf): Notes on multithreaded breakpoint events + // (2021/11/1): + // + // When many threads are simultaneously running, multiple threads + // may hit a trap "at the same time". When this happens there will be + // multiple events in an internal queue that we cannot see. If there + // is another event in the queue we will not see it until we call + // ContinueDebugEvent again, in a subsequent call to demon_os_run. + // + // When we get a trap event, the instruction pointer stored + // in the event will have the address of the int 3 instruction that + // was hit. Our RIP register, however, will be one byte past that. + // So, to get the behavior we want, we need to set the RIP register + // back to the address of the int 3. + // + // To deal with the fact that we may get breakpoint events later that + // were actually from this run what we do is: + // + // #1. If we get a trap event, and it corresponds to a user submitted + // trap, then we treat it is a breakpoint event. + // #2. If we get a trap event, and it does NOT correspond to a user + // trap in this call: + // #A. If the actual unmodified instruction byte is NOT an int 3, + // then this is a queued event from a previous run that is no + // longer applicable and we skip it. + // #B. If the actual unmodified instruction is an int 3, then this + // becomes a trap event and we do not reset RIP. + + //- NOTE(rjf): Further notes on MULTITHREADED STEPPING ACCESS VIOLATION + // EVENTS! @rjf @rjf @rjf + // (2024/05/29): + // + // Just adding another comment here to document that the above long + // comment went completely unnoticed by me during a pass over demon, + // and I had removed the proper rollback stuff here without reading + // the above comment. So this comment just serves to make that + // original comment even heftier. + + //- NOTE(rjf): The exception record struct has a 32-bit version and a + // 64-bit version. We only currently handle the 64-bit version. + + //- rjf: unpack + W32_DMN_Entity *thread = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Thread, evt.dwThreadId); + W32_DMN_Entity *process = thread->parent; + EXCEPTION_DEBUG_INFO *edi = &evt.u.Exception; + EXCEPTION_RECORD *exception = &edi->ExceptionRecord; + U64 instruction_pointer = (U64)exception->ExceptionAddress; + + //- rjf: determine if this is the first breakpoint in a process + // (breakpoint notifying us that the debugger is attached) + B32 first_bp = 0; + if(!process->proc.did_first_bp && exception->ExceptionCode == W32_DMN_EXCEPTION_BREAKPOINT) + { + process->proc.did_first_bp = 1; + first_bp = 1; + } + + //- rjf: determine if this exception is a trap + B32 is_trap = (!first_bp && + (exception->ExceptionCode == W32_DMN_EXCEPTION_BREAKPOINT || + exception->ExceptionCode == W32_DMN_EXCEPTION_STACK_BUFFER_OVERRUN)); + + //- rjf: check if this trap is a usage-code-specified trap or something else + B32 hit_user_trap = 0; + U64 user_trap_id = 0; + if(is_trap) + { + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 idx = 0; idx < n->count; idx += 1) + { + if(dmn_handle_match(n->v[idx].process, w32_dmn_handle_from_entity(process)) && n->v[idx].vaddr == instruction_pointer) + { + hit_user_trap = 1; + user_trap_id = n->v[idx].id; + break; + } + } + } + } + + //- rjf: check if trap is explicit in the actual code memory + B32 hit_explicit_trap = 0; + if(is_trap && !hit_user_trap) + { + U8 instruction_byte = 0; + if(w32_dmn_process_read_struct(process->handle, instruction_pointer, &instruction_byte)) + { + hit_explicit_trap = (instruction_byte == 0xCC || instruction_byte == 0xCD); + } + } + + //- rjf: determine whether to roll back instruction pointer + B32 should_do_rollback = (hit_user_trap || (is_trap && !hit_explicit_trap)); + + //- rjf: roll back thread's instruction pointer + if(should_do_rollback) ProfScope("roll back thread's instruction pointer") + { + switch(thread->arch) + { + //- rjf: default, general path + default: + { + Temp temp = temp_begin(scratch.arena); + ARCH_Info *arch_info = arch_info_from_arch(thread->arch); + U64 regs_block_size = arch_info->reg_block_size; + void *regs_block = push_array(scratch.arena, U8, regs_block_size); + if(w32_dmn_thread_read_reg_block(thread->arch, thread->handle, regs_block)) + { + arch_reg_block_write_ip(arch_info, regs_block, instruction_pointer); + w32_dmn_thread_write_reg_block(thread->arch, thread->handle, regs_block); + } + temp_end(temp); + }break; + + //- rjf: x64 (fastpath) + case Arch_x64: + { + CONTEXT *ctx = 0; + U32 ctx_flags = W32_DMN_CTX_X64|W32_DMN_CTX_INTEL_CONTROL; + DWORD size = 0; + InitializeContext(0, ctx_flags, 0, &size); + if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) + { + void *ctx_memory = push_array(scratch.arena, U8, size); + if(!InitializeContext(ctx_memory, ctx_flags, &ctx, &size)) + { + ctx = 0; + } + } + if(!GetThreadContext(thread->handle, ctx)) + { + ctx = 0; + } + if(ctx != 0) + { + U64 rip = ctx->Rip; + U64 new_rip = instruction_pointer; + ctx->Rip = new_rip; + SetThreadContext(thread->handle, ctx); + } + }break; + } + } + + //- rjf: not a user trap, not an explicit trap, then it's a trap that + // this thread hit previously but has since skipped + B32 hit_previous_trap = (is_trap && !hit_user_trap && !hit_explicit_trap); + + //- rjf: determine whether to skip this event + B32 skip_event = (hit_previous_trap); + + //- rjf: generate event + if(!skip_event) + { + // rjf: fill top-level info + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_Exception; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + e->code = exception->ExceptionCode; + e->flags = exception->ExceptionFlags; + e->instruction_pointer = (U64)exception->ExceptionAddress; + e->user_data = user_trap_id; + + //- rjf: fill according to exception code + switch(exception->ExceptionCode) + { + //- rjf: fill breakpoint event info + case W32_DMN_EXCEPTION_BREAKPOINT: + { + DMN_EventKind report_event_kind = DMN_EventKind_Trap; + if(first_bp) + { + report_event_kind = DMN_EventKind_HandshakeComplete; + } + else if(hit_user_trap) + { + report_event_kind = DMN_EventKind_Breakpoint; + } + e->kind = report_event_kind; + }break; + + //- rjf: fill stack buffer overrun event info + case W32_DMN_EXCEPTION_STACK_BUFFER_OVERRUN: + { + e->kind = DMN_EventKind_Trap; + if(exception->ExceptionInformation[0] == W32_DMN_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS) + { + // TODO(rjf): this is a shadow stack violation - this can imply that the spoof was hit. + // need to handle this correctly in the ctrl layer when stepping w/ a spoof set. + // + // @shadow_stack_step + } + }break; + + //- rjf: fill single-step event info + case W32_DMN_EXCEPTION_SINGLE_STEP: + { + e->kind = DMN_EventKind_SingleStep; + + // NOTE(rjf): data breakpoints are reported via single-steps + // over the instructions which caused the breakpoint to be + // hit - so if we have data breakpoints set, we need to + // check this thread's debug registers, to determine if this + // is a regular single-step or a data breakpoint hit. + { + // rjf: first determine the flagged trap index + U64 flagged_trap_idx = 0; + switch(thread->arch) + { + default:{NotImplemented;}break; + case Arch_x64: + { + X64_RegBlock regs = {0}; + w32_dmn_thread_read_reg_block(thread->arch, thread->handle, ®s); + if(regs.dr6 & 0xF) + { + e->kind = DMN_EventKind_Breakpoint; + if(0){} + else if(regs.dr7 & (1ull<<0) && regs.dr6 & (1ull<<0)) { flagged_trap_idx = 0; e->address = regs.dr0; } + else if(regs.dr7 & (1ull<<2) && regs.dr6 & (1ull<<1)) { flagged_trap_idx = 1; e->address = regs.dr1; } + else if(regs.dr7 & (1ull<<4) && regs.dr6 & (1ull<<2)) { flagged_trap_idx = 2; e->address = regs.dr2; } + else if(regs.dr7 & (1ull<<8) && regs.dr6 & (1ull<<3)) { flagged_trap_idx = 3; e->address = regs.dr3; } + } + }break; + } + + // rjf: find the flagged trap task for this thread's process + W32_DMN_Entity *process = thread->parent; + DMN_FlaggedTrapTask *task = 0; + for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) + { + if(dmn_handle_match(t->process, w32_dmn_handle_from_entity(process))) + { + task = t; + break; + } + } + + // rjf: find the trap + DMN_Trap *trap = 0; + if(task != 0) + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = task->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) + { + if(trap_idx == flagged_trap_idx) + { + trap = &n->v[n_idx]; + goto break_search_for_flagged_trap; + } + } + } + break_search_for_flagged_trap:; + } + + // rjf: fill event based on trap + if(trap != 0) + { + e->user_data = trap->id; + } + } + }break; + + //- rjf: fill throw info + case W32_DMN_EXCEPTION_THROW: + { + U64 exception_sp = 0; + U64 exception_ip = 0; + if(exception->NumberParameters >= 3) + { + exception_sp = (U64)exception->ExceptionInformation[1]; + exception_ip = (U64)exception->ExceptionInformation[2]; + } + e->stack_pointer = exception_sp; + e->exception_kind = DMN_ExceptionKind_CppThrow; + e->exception_repeated = (edi->dwFirstChance == 0); + w32_dmn_shared->exception_not_handled = (edi->dwFirstChance != 0); + }break; + + //- rjf: fill access violation info + case W32_DMN_EXCEPTION_ACCESS_VIOLATION: + case W32_DMN_EXCEPTION_IN_PAGE_ERROR: + { + U64 exception_address = 0; + DMN_ExceptionKind exception_kind = DMN_ExceptionKind_Null; + if(exception->NumberParameters >= 2) + { + switch(exception->ExceptionInformation[0]) + { + case 0: exception_kind = DMN_ExceptionKind_MemoryRead; break; + case 1: exception_kind = DMN_ExceptionKind_MemoryWrite; break; + case 8: exception_kind = DMN_ExceptionKind_MemoryExecute; break; + } + exception_address = exception->ExceptionInformation[1]; + } + e->address = exception_address; + e->exception_kind = exception_kind; + e->exception_repeated = (edi->dwFirstChance == 0); + w32_dmn_shared->exception_not_handled = (edi->dwFirstChance != 0); + }break; + + //- rjf: fill set-thread-name info + case W32_DMN_EXCEPTION_SET_THREAD_NAME: + if(exception->NumberParameters >= 2) + { + U64 thread_name_address = exception->ExceptionInformation[1]; + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + String8List thread_name_strings = {0}; + { + U64 read_addr = thread_name_address; + U64 total_string_size = 0; + for(;total_string_size < KB(4);) + { + U8 *buffer = push_array(scratch.arena, U8, 256); + B32 good_read = w32_dmn_process_read(process->handle, r1u64(read_addr, read_addr+256), buffer); + if(good_read) + { + U64 size = 256; + for(U64 idx = 0; idx < 256; idx += 1) + { + if(buffer[idx] == 0) + { + size = idx; + break; + } + } + String8 string_part = str8(buffer, size); + str8_list_push(scratch.arena, &thread_name_strings, string_part); + total_string_size += size; + read_addr += size; + if(size < 256) + { + break; + } + } + else + { + break; + } + } + } + e->kind = DMN_EventKind_SetThreadName; + e->string = str8_list_join(arena, &thread_name_strings, 0); + if(exception->NumberParameters > 2) + { + e->code = exception->ExceptionInformation[2]; + } + }break; + + //- rjf: fill set-thread-color info + case W32_DMN_EXCEPTION_RADDBG_SET_THREAD_COLOR: + { + e->kind = DMN_EventKind_SetThreadColor; + e->code = exception->ExceptionInformation[0]; + e->user_data = exception->ExceptionInformation[1]; + }break; + + //- rjf: fill set-data-breakpoint info + case W32_DMN_EXCEPTION_RADDBG_SET_BREAKPOINT: + { + U64 vaddr = exception->ExceptionInformation[0]; + U64 size = exception->ExceptionInformation[1]; + U64 read = exception->ExceptionInformation[2]; + U64 write = exception->ExceptionInformation[3]; + U64 exec = exception->ExceptionInformation[4]; + U64 set = exception->ExceptionInformation[5]; + e->kind = set ? DMN_EventKind_SetBreakpoint : DMN_EventKind_UnsetBreakpoint; + e->address = vaddr; + e->size = size; + if(read) { e->flags |= DMN_TrapFlag_BreakOnRead; } + if(write) { e->flags |= DMN_TrapFlag_BreakOnWrite; } + if(exec) { e->flags |= DMN_TrapFlag_BreakOnExecute; } + }break; + + //- rjf: fill set-vaddr-range-note info + case W32_DMN_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE: + { + U64 vaddr = exception->ExceptionInformation[0]; + U64 size = exception->ExceptionInformation[1]; + U64 name_vaddr = exception->ExceptionInformation[2]; + U64 name_size = exception->ExceptionInformation[3]; + U8 *name_buffer = push_array(arena, U8, name_size); + w32_dmn_process_read(process->handle, r1u64(name_vaddr, name_vaddr+name_size), name_buffer), + e->kind = DMN_EventKind_SetVAddrRangeNote; + e->address = vaddr; + e->size = size; + e->string = str8(name_buffer, name_size); + }break; + + //- rjf: unhandled exception case + default: + { + e->exception_repeated = (edi->dwFirstChance == 0); + w32_dmn_shared->exception_not_handled = (edi->dwFirstChance != 0); + }break; + } + } + }break; + + ////////////////////// + //- rjf: output debug string was gathered + // + case OUTPUT_DEBUG_STRING_EVENT: + { + // rjf: unpack event + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + W32_DMN_Entity *thread = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Thread, evt.dwThreadId); + DMN_Handle process_handle = w32_dmn_handle_from_entity(process); + DMN_Handle thread_handle = w32_dmn_handle_from_entity(thread); + U64 string_address = (U64)evt.u.DebugString.lpDebugStringData; + U64 string_size = (U64)evt.u.DebugString.nDebugStringLength; + + // rjf: read memory + U8 *buffer = push_array_no_zero(scratch.arena, U8, string_size + 1); + w32_dmn_process_read(process->handle, r1u64(string_address, string_address+string_size), buffer); + buffer[string_size] = 0; + + // rjf: extract into string + String8 debug_string = str8(buffer, string_size); + if(debug_string.size != 0 && buffer[string_size-1] == 0) + { + debug_string.size -= 1; + } + + // rjf: complete last debug string event, if we need to + if(debug_strings_event != 0 && !dmn_handle_match(process_handle, debug_strings_event->process)) + { + String8 debug_strings_joined = str8_list_join(arena, &debug_strings, 0); + debug_strings_event->string = debug_strings_joined; + debug_strings_event = 0; + MemoryZeroStruct(&debug_strings); + } + + // rjf: make debug string event if we need one + if(debug_strings_event == 0) + { + debug_strings_event = dmn_event_list_push(arena, &events); + debug_strings_event->kind = DMN_EventKind_DebugString; + debug_strings_event->process = process_handle; + debug_strings_event->thread = thread_handle; + } + + // rjf: push into debug strings + str8_list_push(scratch.arena, &debug_strings, debug_string); + keep_going = 1; + + // rjf: exit loop, given sufficient amount of text + if(debug_strings.total_size >= KB(4)) + { + keep_going = 0; + } + }break; + + ////////////////////// + //- rjf: a "rip event" - a "system debugging error". + // + case RIP_EVENT: + { + W32_DMN_Entity *process = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Process, evt.dwProcessId); + W32_DMN_Entity *thread = w32_dmn_entity_from_kind_id(W32_DMN_EntityKind_Thread, evt.dwThreadId); + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_Exception; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + }break; + + ////////////////////// + //- rjf: default case - some kind of debugging event that we don't currently consume. + // + default: + { + NoOp; + }break; + } + } + + //////////////////////// + //- rjf: exit loop after a little while, so we keep pumping e.g. debug strings + // + if(now_time_us() >= begin_time+100000 && debug_strings.total_size != 0) + { + keep_going = 0; + } + } + + //////////////////////// + //- rjf: send out event for any remaining debug strings + // + if(debug_strings.total_size != 0 && debug_strings_event != 0) + { + String8 debug_strings_joined = str8_list_join(arena, &debug_strings, 0); + debug_strings_event->string = debug_strings_joined; + } + + //////////////////////// + //- rjf: suspend threads which ran + // + ProfScope("suspend threads which ran") + { + for(W32_DMN_EntityNode *n = first_ran_thread; n != 0; n = n->next) + { + W32_DMN_Entity *thread = n->v; + if(thread->kind != W32_DMN_EntityKind_Thread) + { + continue; + } + DWORD suspend_result = SuspendThread(thread->handle); + switch(suspend_result) + { + case 0xffffffffu: + { + // TODO(rjf): error - unknown cause. need to do do GetLastError, FormatMessage + // + // NOTE(rjf): this can happen when the event is EXIT_THREAD_DEBUG_EVENT + // or EXIT_PROCESS_DEBUG_EVENT. after such an event, SuspendThread + // gives error code 5 (access denied). this has no adverse effects, but + // if we want to start reporting errors we should take care to avoid + // calling SuspendThread in that case. + }break; + default: + { + DWORD desired_counter = 1; + DWORD current_counter = suspend_result + 1; + if(current_counter != desired_counter) + { + // NOTE(rjf): Warning. We've suspended to something higher than 1. + // In this case, it means the user probably created the thread in + // a suspended state, or they called SuspendThread. + } + }break; + } + } + } + + //////////////////////// + //- rjf: gather new thread-names + // + ProfScope("gather new thread names") if(w32_dmn_GetThreadDescription != 0) + { + for(W32_DMN_Entity *process = w32_dmn_shared->entities_base->first; + process != &w32_dmn_entity_nil; + process = process->next) + { + if(process->kind != W32_DMN_EntityKind_Process) { continue; } + for(W32_DMN_Entity *thread = process->first; + thread != &w32_dmn_entity_nil; + thread = thread->next) + { + if(thread->kind != W32_DMN_EntityKind_Thread) { continue; } + if(thread->thread.last_name_hash == 0 || + thread->thread.name_gather_time_us+1000000 <= now_time_us()) + { + String8 name = {0}; + { + WCHAR *thread_name_w = 0; + HRESULT hr = w32_dmn_GetThreadDescription(thread->handle, &thread_name_w); + if(SUCCEEDED(hr)) + { + name = str8_from_16(scratch.arena, str16_cstring((U16 *)thread_name_w)); + LocalFree(thread_name_w); + } + } + U64 name_hash = u64_hash_from_str8(name); + if(name.size != 0 && name_hash != thread->thread.last_name_hash) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_SetThreadName; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(thread); + e->string = push_str8_copy(arena, name); + } + thread->thread.name_gather_time_us = now_time_us(); + thread->thread.last_name_hash = name_hash; + } + } + } + } + + ////////////////////////// + //- rjf: restore original memory at trap locations + // + ProfScope("restore original memory at trap locations") + { + U64 trap_idx = 0; + for(DMN_TrapChunkNode *n = ctrls->traps.first; n != 0; n = n->next) + { + for(U64 n_idx = 0; n_idx < n->count; n_idx += 1, trap_idx += 1) + { + DMN_Trap *trap = n->v+n_idx; + if(trap->flags == 0) + { + U8 og_byte = trap_swap_bytes[trap_idx]; + if(og_byte != 0xCC) + { + dmn_process_write(trap->process, r1u64(trap->vaddr, trap->vaddr+1), &og_byte); + } + } + } + } + } + + ////////////////////////// + //- rjf: clear all debug register states, for flagged-traps + // + ProfScope("clear all debug register states, for flagged-traps") + { + for(DMN_FlaggedTrapTask *t = first_flagged_trap_task; t != 0; t = t->next) + { + DMN_Handle process = t->process; + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + for(W32_DMN_Entity *child = process_entity->first; + child != &w32_dmn_entity_nil; + child = child->next) + { + if(child->kind == W32_DMN_EntityKind_Thread) + { + switch(child->arch) + { + default:{}break; + + //- rjf: x64 + case Arch_x64: + { + X64_RegBlock regs = {0}; + w32_dmn_thread_read_reg_block(child->arch, child->handle, ®s); + regs.dr7 = 0; + w32_dmn_thread_write_reg_block(child->arch, child->handle, ®s); + }break; + } + } + } + } + } + + ////////////////////////// + //- rjf: unset single step bit + // + if(!dmn_handle_match(ctrls->single_step_thread, dmn_handle_zero())) ProfScope("unset single step bit") + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(ctrls->single_step_thread); + Arch arch = thread->arch; + switch(arch) + { + //- rjf: unimplemented win32/arch combos + case Arch_Null: + case Arch_COUNT: + {}break; + case Arch_arm64: + case Arch_arm32: + case Arch_x86: + {NotImplemented;}break; + + case Arch_x64: + { + if(!GetThreadContext(thread->handle, single_step_thread_ctx)) + { + single_step_thread_ctx = 0; + } + if(single_step_thread_ctx != 0) + { + U64 rflags = single_step_thread_ctx->EFlags|0x2; + U64 new_rflags = rflags & ~0x100; + single_step_thread_ctx->EFlags = new_rflags; + SetThreadContext(thread->handle, single_step_thread_ctx); + } + }break; + } + } + + scratch_end(scratch); + }break; + + //////////////////////////// + //- rjf: produce debug events from queued up detached processes + // + case W32_DMN_EventGenPath_DetachProcesses: + { + for(DMN_HandleNode *n = w32_dmn_shared->detach_processes.first; n != 0; n = n->next) + { + W32_DMN_Entity *process = w32_dmn_entity_from_handle(n->v); + + // rjf: push exit thread events + for(W32_DMN_Entity *child = process->first; child != &w32_dmn_entity_nil; child = child->next) + { + if(child->kind == W32_DMN_EntityKind_Thread) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_ExitThread; + e->process = w32_dmn_handle_from_entity(process); + e->thread = w32_dmn_handle_from_entity(child); + } + } + + // rjf: push unload module events + for(W32_DMN_Entity *child = process->first; child != &w32_dmn_entity_nil; child = child->next) + { + if(child->kind == W32_DMN_EntityKind_Module) + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_UnloadModule; + e->process = w32_dmn_handle_from_entity(process); + e->module = w32_dmn_handle_from_entity(child); + e->string = w32_dmn_full_path_from_module(arena, child); + } + } + + // rjf: push exit process event + { + DMN_Event *e = dmn_event_list_push(arena, &events); + e->kind = DMN_EventKind_ExitProcess; + e->process = w32_dmn_handle_from_entity(process); + } + + // rjf: free process + w32_dmn_entity_release(process); + } + + // rjf: reset queued up detached processes + MemoryZeroStruct(&w32_dmn_shared->detach_processes); + arena_clear(w32_dmn_shared->detach_arena); + }break; + } + + dmn_access_close(); + return events; +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Halting (Implemented Per-OS) + +internal void +dmn_halt(U64 code, U64 user_data) +{ + if(dmn_handle_match(dmn_handle_zero(), w32_dmn_shared->halter_process)) + { + W32_DMN_Entity *process = &w32_dmn_entity_nil; + for(W32_DMN_Entity *entity = w32_dmn_shared->entities_base->first; + entity != &w32_dmn_entity_nil; + entity = entity->next) + { + if(entity->kind == W32_DMN_EntityKind_Process) + { + process = entity; + break; + } + } + if(process != &w32_dmn_entity_nil) + { + w32_dmn_shared->halter_process = w32_dmn_handle_from_entity(process); + W32_DMN_InjectedBreak injection = {code, user_data}; + U64 data_injection_address = process->proc.injection_address + W32_DMN_INJECTED_CODE_SIZE; + w32_dmn_process_write_struct(process->handle, data_injection_address, &injection); + w32_dmn_shared->halter_tid = w32_dmn_inject_thread(process->handle, process->proc.injection_address); + } + } +} + +//////////////////////////////// +//~ rjf: @dmn_os_hooks Introspection Functions (Implemented Per-OS) + +//- rjf: non-blocking-control-thread access barriers + +internal B32 +dmn_access_open(void) +{ + B32 result = 0; + if(w32_dmn_ctrl_thread) + { + result = 1; + } + else + { + mutex_take(w32_dmn_shared->access_mutex); + result = !w32_dmn_shared->access_run_state; + } + return result; +} + +internal void +dmn_access_close(void) +{ + if(!w32_dmn_ctrl_thread) + { + mutex_drop(w32_dmn_shared->access_mutex); + } +} + +//- rjf: processes + +internal U64 +dmn_process_memory_reserve(DMN_Handle process, U64 vaddr, U64 size) +{ + U64 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + result = (U64)VirtualAllocEx(process_entity->handle, (void *)vaddr, size, MEM_RESERVE, PAGE_READWRITE); + if(result == 0) + { + result = (U64)VirtualAllocEx(process_entity->handle, 0, size, MEM_RESERVE, PAGE_READWRITE); + } + } + return result; +} + +internal void +dmn_process_memory_commit(DMN_Handle process, U64 vaddr, U64 size) +{ + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + (U64)VirtualAllocEx(process_entity->handle, (void *)vaddr, size, MEM_COMMIT, PAGE_READWRITE); + } +} + +internal void +dmn_process_memory_decommit(DMN_Handle process, U64 vaddr, U64 size) +{ + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + VirtualFreeEx(process_entity->handle, (void *)vaddr, size, MEM_DECOMMIT); + } +} + +internal void +dmn_process_memory_release(DMN_Handle process, U64 vaddr, U64 size) +{ + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + VirtualFreeEx(process_entity->handle, (void *)vaddr, 0, MEM_RELEASE); + } +} + +internal void +dmn_process_memory_protect(DMN_Handle process, U64 vaddr, U64 size, AccessFlags flags) +{ + DMN_AccessScope + { + W32_DMN_Entity *process_entity = w32_dmn_entity_from_handle(process); + DWORD old_flags = 0; + DWORD new_flags = PAGE_NOACCESS; + switch(flags) + { + default:{}break; + case AccessFlag_Execute:{new_flags = PAGE_EXECUTE;}break; + case AccessFlag_Execute|AccessFlag_Read:{new_flags = PAGE_EXECUTE_READ;}break; + case AccessFlag_Execute|AccessFlag_Read|AccessFlag_Write:{new_flags = PAGE_EXECUTE_READWRITE;}break; + case AccessFlag_Read:{new_flags = PAGE_READONLY;}break; + case AccessFlag_Read|AccessFlag_Write:{new_flags = PAGE_READWRITE;}break; + } + VirtualProtectEx(process_entity->handle, (void *)vaddr, size, new_flags, &old_flags); + } +} + +internal U64 +dmn_process_read(DMN_Handle process, Rng1U64 range, void *dst) +{ + U64 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *entity = w32_dmn_entity_from_handle(process); + result = w32_dmn_process_read(entity->handle, range, dst); + } + return result; +} + +internal B32 +dmn_process_write(DMN_Handle process, Rng1U64 range, void *src) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *entity = w32_dmn_entity_from_handle(process); + result = w32_dmn_process_write(entity->handle, range, src); + } + return result; +} + +//- rjf: threads + +internal B32 +dmn_thread_read_reg_block(DMN_Handle handle, void *reg_block) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(handle); + result = w32_dmn_thread_read_reg_block(thread->arch, thread->handle, reg_block); + } + return result; +} + +internal B32 +dmn_thread_write_reg_block(DMN_Handle handle, void *reg_block) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(handle); + result = w32_dmn_thread_write_reg_block(thread->arch, thread->handle, reg_block); + } + return result; +} + +internal B32 +dmn_thread_get_module_tls_vaddr(DMN_Handle thread_handle, DMN_Handle module_handle, U64 *vaddr_out) +{ + B32 result = 0; + DMN_AccessScope + { + W32_DMN_Entity *thread = w32_dmn_entity_from_handle(thread_handle); + W32_DMN_Entity *process = thread->parent; + W32_DMN_Entity *module = w32_dmn_entity_from_handle(module_handle); + Arch arch = thread->arch; + U64 addr_size = byte_size_from_arch(arch); + U64 tls_vaddr = w32_dmn_thread_tls_root_vaddr_from_tlb_vaddr(arch, thread->thread.thread_local_base); + U64 tls_addr_array_vaddr = 0; + if(w32_dmn_process_read_struct(process->handle, tls_vaddr, &tls_addr_array_vaddr) == addr_size) + { + U64 tls_ptr_vaddr = tls_addr_array_vaddr + module->module.tls_index*addr_size; + if(w32_dmn_process_read_struct(process->handle, tls_ptr_vaddr, vaddr_out) == addr_size) + { + result = 1; + } + } + } + return result; +} + +//- rjf: system process listing + +internal void +dmn_process_iter_begin(DMN_ProcessIter *iter) +{ + MemoryZeroStruct(iter); + iter->v[0] = (U64)CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); +} + +internal B32 +dmn_process_iter_next(Arena *arena, DMN_ProcessIter *iter, DMN_ProcessInfo *info_out) +{ + B32 result = 0; + + //- rjf: get the next process entry + PROCESSENTRY32W process_entry = {sizeof(process_entry)}; + HANDLE snapshot = (HANDLE)iter->v[0]; + if(iter->v[1] == 0) + { + if(Process32FirstW(snapshot, &process_entry)) + { + result = 1; + } + } + else + { + if(Process32NextW(snapshot, &process_entry)) + { + result = 1; + } + } + + //- rjf: increment counter + iter->v[1] += 1; + + //- rjf: convert to process info + if(result) + { + info_out->name = str8_from_16(arena, str16_cstring((U16*)process_entry.szExeFile)); + info_out->pid = (U32)process_entry.th32ProcessID; + } + + return result; +} + +internal void +dmn_process_iter_end(DMN_ProcessIter *iter) +{ + CloseHandle((HANDLE)iter->v[0]); + MemoryZeroStruct(iter); +} diff --git a/src/win32/demon/win32_demon.h b/src/win32/demon/win32_demon.h new file mode 100644 index 00000000..5b45f2ce --- /dev/null +++ b/src/win32/demon/win32_demon.h @@ -0,0 +1,359 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_DEMON_H +#define WIN32_DEMON_H + +//////////////////////////////// +//~ rjf: Windows Includes + +#define WIN32_LEAN_AND_MEAN +#include +#include +#include + +//////////////////////////////// +//~ rjf: Win32 Exception Codes + +#define W32_DMN_EXCEPTION_BREAKPOINT 0x80000003u +#define W32_DMN_EXCEPTION_SINGLE_STEP 0x80000004u +#define W32_DMN_EXCEPTION_LONG_JUMP 0x80000026u +#define W32_DMN_EXCEPTION_ACCESS_VIOLATION 0xC0000005u +#define W32_DMN_EXCEPTION_ARRAY_BOUNDS_EXCEEDED 0xC000008Cu +#define W32_DMN_EXCEPTION_DATA_TYPE_MISALIGNMENT 0x80000002u +#define W32_DMN_EXCEPTION_GUARD_PAGE_VIOLATION 0x80000001u +#define W32_DMN_EXCEPTION_FLT_DENORMAL_OPERAND 0xC000008Du +#define W32_DMN_EXCEPTION_FLT_DEVIDE_BY_ZERO 0xC000008Eu +#define W32_DMN_EXCEPTION_FLT_INEXACT_RESULT 0xC000008Fu +#define W32_DMN_EXCEPTION_FLT_INVALID_OPERATION 0xC0000090u +#define W32_DMN_EXCEPTION_FLT_OVERFLOW 0xC0000091u +#define W32_DMN_EXCEPTION_FLT_STACK_CHECK 0xC0000092u +#define W32_DMN_EXCEPTION_FLT_UNDERFLOW 0xC0000093u +#define W32_DMN_EXCEPTION_INT_DIVIDE_BY_ZERO 0xC0000094u +#define W32_DMN_EXCEPTION_INT_OVERFLOW 0xC0000095u +#define W32_DMN_EXCEPTION_PRIVILEGED_INSTRUCTION 0xC0000096u +#define W32_DMN_EXCEPTION_ILLEGAL_INSTRUCTION 0xC000001Du +#define W32_DMN_EXCEPTION_IN_PAGE_ERROR 0xC0000006u +#define W32_DMN_EXCEPTION_INVALID_DISPOSITION 0xC0000026u +#define W32_DMN_EXCEPTION_NONCONTINUABLE 0xC0000025u +#define W32_DMN_EXCEPTION_STACK_OVERFLOW 0xC00000FDu +#define W32_DMN_EXCEPTION_INVALID_HANDLE 0xC0000008u +#define W32_DMN_EXCEPTION_UNWIND_CONSOLIDATE 0x80000029u +#define W32_DMN_EXCEPTION_DLL_NOT_FOUND 0xC0000135u +#define W32_DMN_EXCEPTION_ORDINAL_NOT_FOUND 0xC0000138u +#define W32_DMN_EXCEPTION_ENTRY_POINT_NOT_FOUND 0xC0000139u +#define W32_DMN_EXCEPTION_DLL_INIT_FAILED 0xC0000142u +#define W32_DMN_EXCEPTION_CONTROL_C_EXIT 0xC000013Au +#define W32_DMN_EXCEPTION_FLT_MULTIPLE_FAULTS 0xC00002B4u +#define W32_DMN_EXCEPTION_FLT_MULTIPLE_TRAPS 0xC00002B5u +#define W32_DMN_EXCEPTION_NAT_CONSUMPTION 0xC00002C9u +#define W32_DMN_EXCEPTION_HEAP_CORRUPTION 0xC0000374u +#define W32_DMN_EXCEPTION_STACK_BUFFER_OVERRUN 0xC0000409u +#define W32_DMN_EXCEPTION_INVALID_CRUNTIME_PARAM 0xC0000417u +#define W32_DMN_EXCEPTION_ASSERT_FAILURE 0xC0000420u +#define W32_DMN_EXCEPTION_NO_MEMORY 0xC0000017u +#define W32_DMN_EXCEPTION_THROW 0xE06D7363u +#define W32_DMN_EXCEPTION_SET_THREAD_NAME 0x406d1388u +#define DMN_w32_EXCEPTION_CLRDBG_NOTIFICATION 0x04242420u +#define DMN_w32_EXCEPTION_CLR 0xE0434352u +#define W32_DMN_EXCEPTION_RADDBG_SET_THREAD_COLOR 0x00524144u +#define W32_DMN_EXCEPTION_RADDBG_SET_BREAKPOINT 0x00524145u +#define W32_DMN_EXCEPTION_RADDBG_SET_VADDR_RANGE_NOTE 0x00524156u + +//////////////////////////////// +//~ rjf: Win32 Exception ExceptionInformation Codes +// +// used as a subcode, apparently in all cases, for W32_DMN_EXCEPTION_STACK_BUFFER_OVERRUN. +// need to somehow pipe this through & interpret it correctly in outer layers... @fastfail + +#define W32_DMN_FAST_FAIL_LEGACY_GS_VIOLATION 0 +#define W32_DMN_FAST_FAIL_VTGUARD_CHECK_FAILURE 1 +#define W32_DMN_FAST_FAIL_STACK_COOKIE_CHECK_FAILURE 2 +#define W32_DMN_FAST_FAIL_CORRUPT_LIST_ENTRY 3 +#define W32_DMN_FAST_FAIL_INCORRECT_STACK 4 +#define W32_DMN_FAST_FAIL_INVALID_ARG 5 +#define W32_DMN_FAST_FAIL_GS_COOKIE_INIT 6 +#define W32_DMN_FAST_FAIL_FATAL_APP_EXIT 7 +#define W32_DMN_FAST_FAIL_RANGE_CHECK_FAILURE 8 +#define W32_DMN_FAST_FAIL_UNSAFE_REGISTRY_ACCESS 9 +#define W32_DMN_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE 10 +#define W32_DMN_FAST_FAIL_GUARD_WRITE_CHECK_FAILURE 11 +#define W32_DMN_FAST_FAIL_INVALID_FIBER_SWITCH 12 +#define W32_DMN_FAST_FAIL_INVALID_SET_OF_CONTEXT 13 +#define W32_DMN_FAST_FAIL_INVALID_REFERENCE_COUNT 14 +#define W32_DMN_FAST_FAIL_INVALID_JUMP_BUFFER 18 +#define W32_DMN_FAST_FAIL_MRDATA_MODIFIED 19 +#define W32_DMN_FAST_FAIL_CERTIFICATION_FAILURE 20 +#define W32_DMN_FAST_FAIL_INVALID_EXCEPTION_CHAIN 21 +#define W32_DMN_FAST_FAIL_CRYPTO_LIBRARY 22 +#define W32_DMN_FAST_FAIL_INVALID_CALL_IN_DLL_CALLOUT 23 +#define W32_DMN_FAST_FAIL_INVALID_IMAGE_BASE 24 +#define W32_DMN_FAST_FAIL_DLOAD_PROTECTION_FAILURE 25 +#define W32_DMN_FAST_FAIL_UNSAFE_EXTENSION_CALL 26 +#define W32_DMN_FAST_FAIL_DEPRECATED_SERVICE_INVOKED 27 +#define W32_DMN_FAST_FAIL_INVALID_BUFFER_ACCESS 28 +#define W32_DMN_FAST_FAIL_INVALID_BALANCED_TREE 29 +#define W32_DMN_FAST_FAIL_INVALID_NEXT_THREAD 30 +#define W32_DMN_FAST_FAIL_GUARD_ICALL_CHECK_SUPPRESSED 31 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_APCS_DISABLED 32 +#define W32_DMN_FAST_FAIL_INVALID_IDLE_STATE 33 +#define W32_DMN_FAST_FAIL_MRDATA_PROTECTION_FAILURE 34 +#define W32_DMN_FAST_FAIL_UNEXPECTED_HEAP_EXCEPTION 35 +#define W32_DMN_FAST_FAIL_INVALID_LOCK_STATE 36 +#define W32_DMN_FAST_FAIL_GUARD_JUMPTABLE 37 // Known to compiler, must retain value 37 +#define W32_DMN_FAST_FAIL_INVALID_LONGJUMP_TARGET 38 +#define W32_DMN_FAST_FAIL_INVALID_DISPATCH_CONTEXT 39 +#define W32_DMN_FAST_FAIL_INVALID_THREAD 40 +#define W32_DMN_FAST_FAIL_INVALID_SYSCALL_NUMBER 41 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_INVALID_FILE_OPERATION 42 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_LPAC_ACCESS_DENIED 43 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_GUARD_SS_FAILURE 44 +#define W32_DMN_FAST_FAIL_LOADER_CONTINUITY_FAILURE 45 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_GUARD_EXPORT_SUPPRESSION_FAILURE 46 +#define W32_DMN_FAST_FAIL_INVALID_CONTROL_STACK 47 +#define W32_DMN_FAST_FAIL_SET_CONTEXT_DENIED 48 +#define W32_DMN_FAST_FAIL_INVALID_IAT 49 +#define W32_DMN_FAST_FAIL_HEAP_METADATA_CORRUPTION 50 +#define W32_DMN_FAST_FAIL_PAYLOAD_RESTRICTION_VIOLATION 51 +#define W32_DMN_FAST_FAIL_LOW_LABEL_ACCESS_DENIED 52 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_ENCLAVE_CALL_FAILURE 53 +#define W32_DMN_FAST_FAIL_UNHANDLED_LSS_EXCEPTON 54 +#define W32_DMN_FAST_FAIL_ADMINLESS_ACCESS_DENIED 55 // Telemetry, nonfatal +#define W32_DMN_FAST_FAIL_UNEXPECTED_CALL 56 +#define W32_DMN_FAST_FAIL_CONTROL_INVALID_RETURN_ADDRESS 57 +#define W32_DMN_FAST_FAIL_UNEXPECTED_HOST_BEHAVIOR 58 +#define W32_DMN_FAST_FAIL_FLAGS_CORRUPTION 59 +#define W32_DMN_FAST_FAIL_VEH_CORRUPTION 60 +#define W32_DMN_FAST_FAIL_ETW_CORRUPTION 61 +#define W32_DMN_FAST_FAIL_RIO_ABORT 62 +#define W32_DMN_FAST_FAIL_INVALID_PFN 63 +#define W32_DMN_FAST_FAIL_GUARD_ICALL_CHECK_FAILURE_XFG 64 +#define W32_DMN_FAST_FAIL_CAST_GUARD 65 // Known to compiler, must retain value 65 +#define W32_DMN_FAST_FAIL_HOST_VISIBILITY_CHANGE 66 +#define W32_DMN_FAST_FAIL_KERNEL_CET_SHADOW_STACK_ASSIST 67 +#define W32_DMN_FAST_FAIL_PATCH_CALLBACK_FAILED 68 +#define W32_DMN_FAST_FAIL_NTDLL_PATCH_FAILED 69 +#define W32_DMN_FAST_FAIL_INVALID_FLS_DATA 70 +#define W32_DMN_FAST_FAIL_INVALID_FAST_FAIL_CODE 0xFFFFFFFF + +//////////////////////////////// +//~ rjf: Win32 Register Codes + +#define W32_DMN_CTX_X86 0x00010000 +#define W32_DMN_CTX_X64 0x00100000 + +#define W32_DMN_CTX_INTEL_CONTROL 0x0001 // segss, rsp, segcs, rip, and rflags +#define W32_DMN_CTX_INTEL_INTEGER 0x0002 // rax, rcx, rdx, rbx, rbp, rsi, rdi, and r8-r15 +#define W32_DMN_CTX_INTEL_SEGMENTS 0x0004 // segds, seges, segfs, and seggs +#define W32_DMN_CTX_INTEL_FLOATS 0x0008 // xmm0-xmm15 +#define W32_DMN_CTX_INTEL_DEBUG 0x0010 // dr0-dr3 and dr6-dr7 +#define W32_DMN_CTX_INTEL_EXTENDED 0x0020 +#define W32_DMN_CTX_INTEL_XSTATE 0x0040 + +#define W32_DMN_CTX_X86_ALL (W32_DMN_CTX_X86 | \ +W32_DMN_CTX_INTEL_CONTROL | W32_DMN_CTX_INTEL_INTEGER | \ +W32_DMN_CTX_INTEL_SEGMENTS | W32_DMN_CTX_INTEL_DEBUG | \ +W32_DMN_CTX_INTEL_EXTENDED) +#define W32_DMN_CTX_X64_ALL (W32_DMN_CTX_X64 | \ +W32_DMN_CTX_INTEL_CONTROL | W32_DMN_CTX_INTEL_INTEGER | \ +W32_DMN_CTX_INTEL_SEGMENTS | W32_DMN_CTX_INTEL_FLOATS | \ +W32_DMN_CTX_INTEL_DEBUG) + +//////////////////////////////// +//~ rjf: Per-Entity State + +typedef enum W32_DMN_EntityKind +{ + W32_DMN_EntityKind_Null, + W32_DMN_EntityKind_Root, + W32_DMN_EntityKind_Process, + W32_DMN_EntityKind_Thread, + W32_DMN_EntityKind_Module, + W32_DMN_EntityKind_COUNT +} +W32_DMN_EntityKind; + +typedef struct W32_DMN_Entity W32_DMN_Entity; +struct W32_DMN_Entity +{ + W32_DMN_Entity *first; + W32_DMN_Entity *last; + W32_DMN_Entity *next; + W32_DMN_Entity *prev; + W32_DMN_Entity *parent; + W32_DMN_EntityKind kind; + U32 gen; + U64 id; + HANDLE handle; + Arch arch; + union + { + struct + { + U64 injection_address; + B32 did_first_bp; + } + proc; + struct + { + U64 thread_local_base; + U64 last_name_hash; + U64 name_gather_time_us; + } + thread; + struct + { + Rng1U64 vaddr_range; + U64 address_of_name_pointer; + U64 tls_index; + B32 is_main; + B32 name_is_unicode; + } + module; + }; +}; + +typedef struct W32_DMN_EntityNode W32_DMN_EntityNode; +struct W32_DMN_EntityNode +{ + W32_DMN_EntityNode *next; + W32_DMN_Entity *v; +}; + +typedef struct W32_DMN_EntityIDHashNode W32_DMN_EntityIDHashNode; +struct W32_DMN_EntityIDHashNode +{ + W32_DMN_EntityIDHashNode *next; + W32_DMN_EntityIDHashNode *prev; + U64 id; + W32_DMN_Entity *entity; +}; + +typedef struct W32_DMN_EntityIDHashSlot W32_DMN_EntityIDHashSlot; +struct W32_DMN_EntityIDHashSlot +{ + W32_DMN_EntityIDHashNode *first; + W32_DMN_EntityIDHashNode *last; +}; + +//////////////////////////////// +//~ rjf: Injection Types + +typedef struct W32_DMN_InjectedBreak W32_DMN_InjectedBreak; +struct W32_DMN_InjectedBreak +{ + U64 code; + U64 user_data; +}; + +#define W32_DMN_INJECTED_CODE_SIZE 32 + +//////////////////////////////// +//~ rjf: Image Info Types + +typedef struct W32_DMN_ImageInfo W32_DMN_ImageInfo; +struct W32_DMN_ImageInfo +{ + Arch arch; + U32 size; + U64 tls_index; +}; + +//////////////////////////////// +//~ rjf: Dynamically-Loaded Win32 Function Types + +typedef HRESULT W32_DMN_GetThreadDescriptionFunctionType(HANDLE hThread, WCHAR **ppszThreadDescription); + +//////////////////////////////// +//~ rjf: Shared State Bundle + +typedef struct W32_DMN_Shared W32_DMN_Shared; +struct W32_DMN_Shared +{ + // rjf: top-level info + Arena *arena; + String8List env_strings; + + // rjf: access locking mechanism + Mutex access_mutex; + B32 access_run_state; + + // rjf: detaching info + Arena *detach_arena; + DMN_HandleList detach_processes; + + // rjf: entity state + Arena *entities_arena; + W32_DMN_Entity *entities_base; + W32_DMN_Entity *entities_first_free; + U64 entities_count; + W32_DMN_EntityIDHashSlot *entities_id_hash_slots; + U64 entities_id_hash_slots_count; + W32_DMN_EntityIDHashNode *entities_id_hash_node_free; + + // rjf: launch state + B32 new_process_pending; + + // rjf: run results + B32 resume_needed; + U32 resume_pid; + U32 resume_tid; + B32 exception_not_handled; + + // rjf: halting info + DMN_Handle halter_process; + U32 halter_tid; +}; + +//////////////////////////////// +//~ rjf: Globals + +global W32_DMN_Shared *w32_dmn_shared = 0; +global W32_DMN_Entity w32_dmn_entity_nil = {&w32_dmn_entity_nil, &w32_dmn_entity_nil, &w32_dmn_entity_nil, &w32_dmn_entity_nil, &w32_dmn_entity_nil}; +global W32_DMN_GetThreadDescriptionFunctionType *w32_dmn_GetThreadDescription = 0; +thread_static B32 w32_dmn_ctrl_thread = 0; + +//////////////////////////////// +//~ rjf: Entity Helpers + +//- rjf: entity <-> handle +internal DMN_Handle w32_dmn_handle_from_entity(W32_DMN_Entity *entity); +internal W32_DMN_Entity *w32_dmn_entity_from_handle(DMN_Handle handle); + +//- rjf: entity allocation/deallocation +internal W32_DMN_Entity *w32_dmn_entity_alloc(W32_DMN_Entity *parent, W32_DMN_EntityKind kind, U64 id); +internal void w32_dmn_entity_release(W32_DMN_Entity *entity); + +//- rjf: kind*id -> entity +internal W32_DMN_Entity *w32_dmn_entity_from_kind_id(W32_DMN_EntityKind kind, U64 id); + +//////////////////////////////// +//~ rjf: Module Info Extraction + +internal String8 w32_dmn_full_path_from_module(Arena *arena, W32_DMN_Entity *module); + +//////////////////////////////// +//~ rjf: Win32-Level Process/Thread Reads/Writes + +//- rjf: processes +internal U64 w32_dmn_process_read(HANDLE process, Rng1U64 range, void *dst); +internal B32 w32_dmn_process_write(HANDLE process, Rng1U64 range, void *src); +internal String8 w32_dmn_str8_cstring_from_process_vaddr(Arena *arena, HANDLE process, U64 vaddr); +internal String8 w32_dmn_read_memory_str(Arena *arena, HANDLE process_handle, U64 address); +internal String16 w32_dmn_read_memory_str16(Arena *arena, HANDLE process_handle, U64 address); +#define w32_dmn_process_read_struct(process, vaddr, ptr) w32_dmn_process_read((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) +#define w32_dmn_process_write_struct(process, vaddr, ptr) w32_dmn_process_write((process), r1u64((vaddr), (vaddr)+(sizeof(*ptr))), ptr) + +//- rjf: modules +internal DMN_ModuleInfo *w32_dmn_module_info_from_process_module(Arena *arena, HANDLE process, HANDLE module, U64 base_vaddr, U64 module_name_vaddr, B32 module_name_is_unicode, B32 is_main_module); + +//- rjf: threads +internal B32 w32_dmn_thread_read_reg_block(Arch arch, HANDLE thread, void *reg_block); +internal B32 w32_dmn_thread_write_reg_block(Arch arch, HANDLE thread, void *reg_block); +internal U64 w32_dmn_thread_stack_base_vaddr_from_tlb_vaddr(HANDLE process, Arch arch, U64 tlb_vaddr); +internal U64 w32_dmn_thread_tls_root_vaddr_from_tlb_vaddr(Arch arch, U64 tlb_vaddr); + +//- rjf: remote thread injection +internal DWORD w32_dmn_inject_thread(HANDLE process, U64 start_address); + +#endif // DEMON_CORE_WIN32_H diff --git a/src/win32/http/win32_http.c b/src/win32/http/win32_http.c new file mode 100644 index 00000000..27ca1aae --- /dev/null +++ b/src/win32/http/win32_http.c @@ -0,0 +1,583 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Status Callback + +internal void +w32_http_status_callback(HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, void *lpvStatusInformation, DWORD dwStatusInformationLength) +{ + W32_HTTP_Request *req = (W32_HTTP_Request *)dwContext; + B32 reloop = 1; + switch(dwInternetStatus) + { + default:{reloop = 0;}break; + case WINHTTP_CALLBACK_STATUS_REQUEST_ERROR: + { + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_Failed); + }break; + case WINHTTP_CALLBACK_STATUS_REQUEST_SENT: + { + ins_atomic_u32_eval_cond_assign(&req->status, W32_HTTP_RequestStatus_Sent, W32_HTTP_RequestStatus_PendingSend); + }break; + case WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE: + { + req->next_body_piece = 0; + req->next_body_piece_size = 0; + ins_atomic_u32_eval_cond_assign(&req->status, W32_HTTP_RequestStatus_Recvd, W32_HTTP_RequestStatus_PendingRecv); + }break; + case WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE: + { + DWORD *size_ptr = (DWORD *)lpvStatusInformation; + req->next_body_piece_size = size_ptr[0]; + if(size_ptr[0] != 0) + { + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_DataSized); + } + else + { + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_Done); + } + }break; + case WINHTTP_CALLBACK_STATUS_READ_COMPLETE: + { + req->next_body_piece_size = dwStatusInformationLength; + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_Recvd); + }break; + } + if(reloop) + { + ins_atomic_u32_eval_assign(&async_loop_again, 1); + cond_var_broadcast(async_tick_start_cond_var); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Top-Level Layer Calls + +internal void +http_init(void) +{ + Arena *arena = arena_alloc(); + w32_http_state = push_array(arena, W32_HTTP_State, 1); + w32_http_state->arena = arena; + w32_http_state->request_ring = guarded_ring_alloc(arena, MB(1)); + for EachElement(idx, w32_http_state->active_requests) + { + w32_http_state->active_requests[idx].arena = arena_alloc(); + w32_http_state->active_requests[idx].finished_body_arena = arena_alloc(); + } + w32_http_state->hSession = WinHttpOpen(0, WINHTTP_ACCESS_TYPE_NO_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, WINHTTP_FLAG_ASYNC); + WinHttpSetStatusCallback(w32_http_state->hSession, w32_http_status_callback, WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS, 0); +} + +internal void +http_async_tick(void) +{ + //- rjf: pop requests, fill active request slots + if(lane_idx() == 0) + { + for(;;) + { + Temp scratch = scratch_begin(0, 0); + + //- rjf: find a free active request slot + U64 free_slot_num = 0; + for EachElement(idx, w32_http_state->active_requests) + { + if(!w32_http_state->active_requests[idx].active) + { + free_slot_num = idx+1; + break; + } + } + + //- rjf: if we got one -> pop request data + String8 request_data = {0}; + if(free_slot_num != 0) + { + RingGuard guard = guarded_ring_open(w32_http_state->request_ring); + guarded_ring_try_read_struct(&guard, &request_data.size); + if(request_data.size != 0) + { + request_data.str = push_array(scratch.arena, U8, request_data.size); + guarded_ring_read_or_wait(&guard, request_data.size, request_data.str, max_U64); + } + guarded_ring_close(&guard); + } + + //- rjf: deserialize + GuardedRing *out_ring = 0; + HTTP_RequestParams params = {0}; + if(request_data.size != 0) + { + U64 off = 0; + off += str8_deserial_read_struct(request_data, off, &out_ring); + off += str8_deserial_read_struct(request_data, off, ¶ms.id); + off += str8_deserial_read_struct(request_data, off, ¶ms.method); + off += str8_deserial_read_struct(request_data, off, ¶ms.url.size); + params.url = str8_substr(request_data, r1u64(off, off+params.url.size)); + off += params.url.size; + off += str8_deserial_read_struct(request_data, off, ¶ms.body.size); + params.body = str8_substr(request_data, r1u64(off, off+params.body.size)); + off += params.body.size; + off += str8_deserial_read_struct(request_data, off, ¶ms.user_agent.size); + params.user_agent = str8_substr(request_data, r1u64(off, off+params.user_agent.size)); + off += params.user_agent.size; + off += str8_deserial_read_struct(request_data, off, ¶ms.authorization.size); + params.authorization = str8_substr(request_data, r1u64(off, off+params.authorization.size)); + off += params.authorization.size; + off += str8_deserial_read_struct(request_data, off, ¶ms.content_type.size); + params.content_type = str8_substr(request_data, r1u64(off, off+params.content_type.size)); + off += params.content_type.size; + } + + //- rjf: fill active request slot + W32_HTTP_Request *req = 0; + if(free_slot_num != 0 && request_data.size != 0) + { + req = &w32_http_state->active_requests[free_slot_num-1]; + req->active = 1; + arena_clear(req->arena); + arena_clear(req->finished_body_arena); + req->out_ring = out_ring; + req->id = params.id; + req->status = W32_HTTP_RequestStatus_Null; + } + + //- rjf: kick off request + if(req != 0) + { + B32 good = 0; + + //- rjf: unpack + HTTP_Method method = params.method; + String8 url = params.url; + String8 body = params.body; + String8 user_agent = params.user_agent; + String8 authorization = params.authorization; + String8 content_type = params.content_type; + + //- rjf: extract URL info + String8 url_protocol_part = {0}; + String8 url_port_part = {0}; + String8 url_hostname_part = {0}; + String8 url_path_part = {0}; + { + U64 protocol_delimiter_pos = str8_find_needle(url, 0, s("://"), 0); + U64 post_protocol_pos = 0; + if(protocol_delimiter_pos < url.size) + { + post_protocol_pos = protocol_delimiter_pos+3; + url_protocol_part = str8_prefix(url, post_protocol_pos); + } + U64 last_colon_pos = str8_find_needle(url, post_protocol_pos, s(":"), 0); + if(last_colon_pos < url.size) + { + url_port_part = str8_skip(url, last_colon_pos+1); + } + U64 first_non_protocol_slash_pos = str8_find_needle(url, post_protocol_pos, s("/"), 0); + if(first_non_protocol_slash_pos < url.size) + { + url_hostname_part = str8_prefix(url, first_non_protocol_slash_pos); + url_hostname_part = str8_skip(url_hostname_part, post_protocol_pos); + url_path_part = str8_skip(url, first_non_protocol_slash_pos); + } + else + { + url_hostname_part = str8_skip(url, post_protocol_pos); + } + } + + //- rjf: convert url parts to connection parameters + U16 port = INTERNET_DEFAULT_HTTPS_PORT; + String16 hostname16 = {0}; + { + if(url_port_part.size != 0) + { + port = (U16)u64_from_str8(url_port_part, 10); + } + else if(str8_match(url_protocol_part, s("https://"), StringMatchFlag_CaseInsensitive)) + { + port = INTERNET_DEFAULT_HTTPS_PORT; + } + else if(str8_match(url_protocol_part, s("http://"), StringMatchFlag_CaseInsensitive)) + { + port = INTERNET_DEFAULT_HTTP_PORT; + } + else if(str8_match(url_protocol_part, s("ftp://"), StringMatchFlag_CaseInsensitive)) + { + port = 21; + } + else if(str8_match(url_protocol_part, s("ssh://"), StringMatchFlag_CaseInsensitive)) + { + port = 22; + } + hostname16 = str16_from_8(scratch.arena, url_hostname_part); + } + + //- rjf: convert method to verb wchar + WCHAR *verb = L"GET"; + switch(method) + { + default: + case HTTP_Method_Get: {verb = L"GET";}break; + case HTTP_Method_Head: {verb = L"HEAD";}break; + case HTTP_Method_Post: {verb = L"POST";}break; + case HTTP_Method_Put: {verb = L"PUT";}break; + case HTTP_Method_Delete: {verb = L"DELETE";}break; + case HTTP_Method_Connect: {verb = L"CONNECT";}break; + case HTTP_Method_Options: {verb = L"OPTIONS";}break; + case HTTP_Method_Trace: {verb = L"TRACE";}break; + case HTTP_Method_Patch: {verb = L"PATCH";}break; + } + + //- rjf: convert url parts to request parameters + WCHAR *path_name = L""; + if(url_path_part.size != 0) + { + String16 url_path_part16 = str16_from_8(scratch.arena, url_path_part); + path_name = (WCHAR *)url_path_part16.str; + } + + //- rjf: unpack body params + String16 header16 = {0}; + { + String8List header_strings = {0}; + if(user_agent.size != 0) { str8_list_pushf(scratch.arena, &header_strings, "User-Agent: %S\n", user_agent); } + if(authorization.size != 0) { str8_list_pushf(scratch.arena, &header_strings, "Authorization: %S\n", authorization); } + if(content_type.size != 0) { str8_list_pushf(scratch.arena, &header_strings, "Content-Type: %S\n", content_type); } + String8 header = str8_list_join(scratch.arena, &header_strings, 0); + header16 = str16_from_8(scratch.arena, header); + } + + //- rjf: convert body/header info to winhttp expected params + WCHAR *header = WINHTTP_NO_ADDITIONAL_HEADERS; + U64 header_size = 0; + void *optional = WINHTTP_NO_REQUEST_DATA; + U64 optional_size = 0; + if(header16.size != 0) + { + header = (WCHAR *)header16.str; + header_size = header16.size; + } + if(body.size != 0) + { + String8 body_copy = str8_copy(req->arena, body); + optional = body_copy.str; + optional_size = body_copy.size; + } + + //- rjf: open connection + HINTERNET hConnect = 0; + if(w32_http_state->hSession != 0) + { + hConnect = WinHttpConnect(w32_http_state->hSession, (WCHAR *)hostname16.str, port, 0); + good = (hConnect != 0); + } + + //- rjf: open request + HINTERNET hRequest = 0; + if(good) + { + hRequest = WinHttpOpenRequest(hConnect, verb, path_name, 0, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); + good = (hRequest != 0); + } + + //- rjf: fill info + if(good) + { + req->status = W32_HTTP_RequestStatus_PendingSend; + } + else + { + req->status = W32_HTTP_RequestStatus_Failed; + } + req->hConnect = hConnect; + req->hRequest = hRequest; + req->arena_start_body_read_pos = arena_pos(req->arena); + + //- rjf: send request + if(good) + { + WinHttpSendRequest(hRequest, header, header_size, optional, optional_size, optional_size, (DWORD_PTR)req); + } + } + + scratch_end(scratch); + if(free_slot_num == 0 || request_data.size == 0) + { + break; + } + } + } + lane_sync(); + + //- rjf: kick off receives + { + Rng1U64 range = lane_range(ArrayCount(w32_http_state->active_requests)); + for EachInRange(idx, range) + { + W32_HTTP_Request *req = &w32_http_state->active_requests[idx]; + if(req->active && ins_atomic_u32_eval(&req->status) == W32_HTTP_RequestStatus_Sent) + { + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_PendingRecv); + WinHttpReceiveResponse(req->hRequest, 0); + } + } + lane_sync(); + } + + //- rjf: push response output + { + Rng1U64 range = lane_range(ArrayCount(w32_http_state->active_requests)); + for EachInRange(idx, range) + { + W32_HTTP_Request *req = &w32_http_state->active_requests[idx]; + W32_HTTP_RequestStatus status = ins_atomic_u32_eval(&req->status); + if(req->active && (status == W32_HTTP_RequestStatus_Done || + status == W32_HTTP_RequestStatus_Failed || + req->finished_body_pieces.total_size >= req->out_ring->ring->size/2)) + { + Temp scratch = scratch_begin(0, 0); + + // rjf: figure out status code + if(req->status_code == 0) + { + DWORD status_code = 0; + DWORD status_code_size = sizeof(status_code); + WinHttpQueryHeaders(req->hRequest, + WINHTTP_QUERY_STATUS_CODE|WINHTTP_QUERY_FLAG_NUMBER, + WINHTTP_HEADER_NAME_BY_INDEX, + &status_code, &status_code_size, WINHTTP_NO_HEADER_INDEX); + req->status_code = status_code; + } + + // rjf: figure out total bytes + if(req->total_response_bytes == 0) + { + DWORD buffer_size = sizeof(req->total_response_bytes); + WinHttpQueryHeaders(req->hRequest, + WINHTTP_QUERY_CONTENT_LENGTH|WINHTTP_QUERY_FLAG_NUMBER64, + WINHTTP_HEADER_NAME_BY_INDEX, + &req->total_response_bytes, + &buffer_size, + WINHTTP_NO_HEADER_INDEX); + } + + // rjf: join all currently read body contents + String8 body = str8_list_join(scratch.arena, &req->finished_body_pieces, 0); + + // rjf: clear current body output + arena_clear(req->finished_body_arena); + MemoryZeroStruct(&req->finished_body_pieces); + + // rjf: compute size per record header + U64 max_record_size = req->out_ring->ring->size; + U64 bytes_per_record_header = sizeof(U64) + sizeof(U64) + sizeof(U64) + sizeof(U64) + sizeof(B32) + sizeof(HTTP_StatusCode); + + // rjf: push response records + for(U64 off = 0, next_off = 0; off <= body.size; off = next_off) + { + // rjf: determine how much of the body we can fit into this record + U64 body_data_size = (body.size - off); + if(bytes_per_record_header + body_data_size > max_record_size) + { + body_data_size = max_record_size - bytes_per_record_header; + } + + // rjf: advance by that amount of the body + next_off = off + body_data_size; + + // rjf: determine if we have more responses after this one + B32 is_last = (next_off == body.size && (status == W32_HTTP_RequestStatus_Done || status == W32_HTTP_RequestStatus_Failed)); + B32 has_more = !is_last; + + // rjf: serialize this record + String8 record_data = {0}; + if(is_last || next_off != off) + { + String8List pieces = {0}; + U64 record_size = bytes_per_record_header + (next_off - off); + str8_list_push(scratch.arena, &pieces, str8_struct(&record_size)); + str8_list_push(scratch.arena, &pieces, str8_struct(&req->id)); + str8_list_push(scratch.arena, &pieces, str8_struct(&req->total_response_bytes_sent)); + str8_list_push(scratch.arena, &pieces, str8_struct(&req->total_response_bytes)); + str8_list_push(scratch.arena, &pieces, str8_struct(&has_more)); + str8_list_push(scratch.arena, &pieces, str8_struct(&req->status_code)); + str8_list_push(scratch.arena, &pieces, str8_substr(body, r1u64(off, next_off))); + record_data = str8_list_join(scratch.arena, &pieces, 0); + } + + // rjf: push this record + B32 push_failed = 1; + if(record_data.size != 0) + { + RingGuard g = guarded_ring_open(req->out_ring); + push_failed = !guarded_ring_write_string_or_wait(&g, record_data, 0); + guarded_ring_close(&g); + } + + // rjf: push failed -> remember unsent portions of body + if(push_failed) + { + String8 unpushed_body_piece = str8_substr(body, r1u64(off, body.size)); + if(unpushed_body_piece.size != 0) + { + str8_list_push(req->finished_body_arena, &req->finished_body_pieces, str8_copy(req->finished_body_arena, unpushed_body_piece)); + } + } + + // rjf: advance total bytes sent + if(!push_failed) + { + req->total_response_bytes_sent += (next_off - off); + } + + // rjf: cancel on no movement + if(next_off == off || push_failed) + { + break; + } + } + + scratch_end(scratch); + } + } + lane_sync(); + } + + //- rjf: kick off body size queries + { + Rng1U64 range = lane_range(ArrayCount(w32_http_state->active_requests)); + for EachInRange(idx, range) + { + W32_HTTP_Request *req = &w32_http_state->active_requests[idx]; + if(req->active && ins_atomic_u32_eval(&req->status) == W32_HTTP_RequestStatus_Recvd) + { + if(req->next_body_piece_size != 0) + { + str8_list_push(req->finished_body_arena, &req->finished_body_pieces, str8_copy(req->finished_body_arena, str8((U8 *)req->next_body_piece, req->next_body_piece_size))); + req->next_body_piece_size = 0; + req->next_body_piece = 0; + arena_pop_to(req->arena, req->arena_start_body_read_pos); + } + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_PendingDataSize); + WinHttpQueryDataAvailable(req->hRequest, 0); + } + } + lane_sync(); + } + + //- rjf: kick off body reads + { + Rng1U64 range = lane_range(ArrayCount(w32_http_state->active_requests)); + for EachInRange(idx, range) + { + W32_HTTP_Request *req = &w32_http_state->active_requests[idx]; + if(req->active && ins_atomic_u32_eval(&req->status) == W32_HTTP_RequestStatus_DataSized) + { + req->next_body_piece = push_array(req->arena, U8, req->next_body_piece_size); + ins_atomic_u32_eval_assign(&req->status, W32_HTTP_RequestStatus_PendingRead); + WinHttpReadData(req->hRequest, req->next_body_piece, req->next_body_piece_size, 0); + } + } + lane_sync(); + } + + //- rjf: complete requests + { + Rng1U64 range = lane_range(ArrayCount(w32_http_state->active_requests)); + for EachInRange(idx, range) + { + W32_HTTP_Request *req = &w32_http_state->active_requests[idx]; + W32_HTTP_RequestStatus status = ins_atomic_u32_eval(&req->status); + if(req->active && req->finished_body_pieces.total_size == 0 && req->next_body_piece_size == 0 && + (status == W32_HTTP_RequestStatus_Done || + status == W32_HTTP_RequestStatus_Failed)) + { + req->active = 0; + arena_clear(req->arena); + arena_clear(req->finished_body_arena); + MemoryZeroStruct(&req->finished_body_pieces); + req->next_body_piece = 0; + req->next_body_piece_size = 0; + WinHttpCloseHandle(req->hConnect); + WinHttpCloseHandle(req->hRequest); + } + } + lane_sync(); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl I/O Ring Functions + +internal B32 +http_push_request(GuardedRing *out_ring, HTTP_RequestParams *params, U64 endt_us) +{ + Temp scratch = scratch_begin(0, 0); + B32 result = 0; + + // rjf: serialize + String8 data = {0}; + { + String8List pieces = {0}; + str8_list_push(scratch.arena, &pieces, str8_struct(&out_ring)); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->id)); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->method)); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->url.size)); + str8_list_push(scratch.arena, &pieces, params->url); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->body.size)); + str8_list_push(scratch.arena, &pieces, params->body); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->user_agent.size)); + str8_list_push(scratch.arena, &pieces, params->user_agent); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->authorization.size)); + str8_list_push(scratch.arena, &pieces, params->authorization); + str8_list_push(scratch.arena, &pieces, str8_struct(¶ms->content_type.size)); + str8_list_push(scratch.arena, &pieces, params->content_type); + U64 data_size = pieces.total_size; + str8_list_push_front(scratch.arena, &pieces, str8_struct(&data_size)); + data = str8_list_join(scratch.arena, &pieces, 0); + } + + // rjf: write + if(data.size < w32_http_state->request_ring->ring->size) + { + RingGuard g = guarded_ring_open(w32_http_state->request_ring); + result = guarded_ring_write_string_or_wait(&g, data, endt_us); + guarded_ring_close(&g); + } + + scratch_end(scratch); + return result; +} + +internal B32 +http_pop_response(Arena *arena, GuardedRing *out_ring, HTTP_Response *response_out, U64 endt_us) +{ + RingGuard g = guarded_ring_open(out_ring); + U64 data_size = 0; + B32 result = guarded_ring_read_struct_or_wait(&g, &data_size, endt_us); + if(result) + { + Temp scratch = scratch_begin(&arena, 1); + U64 data_size_minus_size_prefix = data_size - sizeof(data_size); + String8 data = {0}; + data.size = data_size_minus_size_prefix; + data.str = push_array(scratch.arena, U8, data.size); + guarded_ring_read_or_wait(&g, data.size, data.str, max_U64); + U64 off = 0; + off += str8_deserial_read_struct(data, off, &response_out->id); + off += str8_deserial_read_struct(data, off, &response_out->off); + off += str8_deserial_read_struct(data, off, &response_out->off_opl); + off += str8_deserial_read_struct(data, off, &response_out->has_more); + off += str8_deserial_read_struct(data, off, &response_out->code); + response_out->body.size = (data.size - off); + response_out->body.str = push_array(arena, U8, response_out->body.size); + off += str8_deserial_read(data, off, response_out->body.str, response_out->body.size, 1); + scratch_end(scratch); + } + guarded_ring_close(&g); + return result; +} diff --git a/src/win32/http/win32_http.h b/src/win32/http/win32_http.h new file mode 100644 index 00000000..190dbaa4 --- /dev/null +++ b/src/win32/http/win32_http.h @@ -0,0 +1,77 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_HTTP_H +#define WIN32_HTTP_H + +#include +#pragma comment(lib, "winhttp") + +typedef enum W32_HTTP_RequestStatus +{ + W32_HTTP_RequestStatus_Null, + W32_HTTP_RequestStatus_PendingSend, + W32_HTTP_RequestStatus_Sent, + W32_HTTP_RequestStatus_PendingRecv, + W32_HTTP_RequestStatus_Recvd, + W32_HTTP_RequestStatus_PendingDataSize, + W32_HTTP_RequestStatus_DataSized, + W32_HTTP_RequestStatus_PendingRead, + W32_HTTP_RequestStatus_Done, + W32_HTTP_RequestStatus_Failed, +} +W32_HTTP_RequestStatus; + +typedef struct W32_HTTP_Request W32_HTTP_Request; +struct W32_HTTP_Request +{ + B32 active; + Arena *arena; + + // rjf: request parameters + GuardedRing *out_ring; + U64 id; + + // rjf: working state + W32_HTTP_RequestStatus status; + HINTERNET hConnect; + HINTERNET hRequest; + void *optional; // NOTE(rjf): must persist with in-flight requests + U64 optional_size; + HTTP_StatusCode status_code; + U64 total_response_bytes_sent; + U64 total_response_bytes; + U64 arena_start_body_read_pos; + void *next_body_piece; + U64 next_body_piece_size; + + // rjf: finished response body read state + Arena *finished_body_arena; + String8List finished_body_pieces; +}; + +typedef struct W32_HTTP_Response W32_HTTP_Response; +struct W32_HTTP_Response +{ + W32_HTTP_Response *next; + GuardedRing *out_ring; + String8 record; +}; + +typedef struct W32_HTTP_State W32_HTTP_State; +struct W32_HTTP_State +{ + Arena *arena; + HINTERNET hSession; + GuardedRing *request_ring; + W32_HTTP_Request active_requests[16]; +}; + +global W32_HTTP_State *w32_http_state = 0; + +//////////////////////////////// +//~ rjf: Status Callback + +internal void w32_http_status_callback(HINTERNET hInternet, DWORD_PTR dwContext, DWORD dwInternetStatus, void *lpvStatusInformation, DWORD dwStatusInformationLength); + +#endif // WIN32_HTTP_H diff --git a/src/win32/symbol_server/win32_symbol_server.c b/src/win32/symbol_server/win32_symbol_server.c new file mode 100644 index 00000000..74f5149c --- /dev/null +++ b/src/win32/symbol_server/win32_symbol_server.c @@ -0,0 +1,470 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Helpers + +internal String8 +w32_smsv_dbg_name_from_local_path(String8 path) +{ + String8 result = str8_skip_last_slash(path); + return result; +} + +internal String8 +w32_smsv_unique_identifier_from_local_path(String8 path) +{ + U64 local_cache_path_pos = str8_find_needle(path, 0, w32_smsv_state->symbol_cache_path, StringMatchFlag_SlashInsensitive); + U64 first_slash_pos = str8_find_needle(path, local_cache_path_pos, s("/"), StringMatchFlag_SlashInsensitive); + String8 cache_relative_path = str8_skip(path, first_slash_pos); + U64 second_slash_pos = str8_find_needle(cache_relative_path, 0, s("/"), StringMatchFlag_SlashInsensitive); + String8 name_root = str8_skip(cache_relative_path, second_slash_pos+1); + U64 third_slash_pos = str8_find_needle(name_root, 0, s("/"), 0); + String8 name = str8_skip(name_root, third_slash_pos+1); + U64 fourth_slash_pos = str8_find_needle(name, 0, s("/"), StringMatchFlag_SlashInsensitive); + String8 unique_identifier = str8_skip(name, fourth_slash_pos+1); + U64 last_slash_pos = str8_find_needle(unique_identifier, 0, s("/"), StringMatchFlag_SlashInsensitive); + unique_identifier = str8_prefix(unique_identifier, last_slash_pos); + return unique_identifier; +} + +//////////////////////////////// +//~ rjf: Implementation + +internal void +smsv_init(void) +{ + Arena *arena = arena_alloc(); + w32_smsv_state = push_array(arena, W32_SMSV_State, 1); + w32_smsv_state->arena = arena; + + // rjf: get symbol server configuration from environment + { + // rjf: extract parameterizations from _NT_SYMBOL_PATH + { + // rjf: get rules string from environment + String8 rules = {0}; + for EachNode(n, String8Node, get_process_info()->environment.first) + { + String8 string = n->string; + if(str8_match(string, s("_NT_SYMBOL_PATH="), StringMatchFlag_RightSideSloppy)) + { + rules = str8_skip(string, 16); + } + } + + // rjf: parse rules string + { + Temp scratch = scratch_begin(0, 0); + if(str8_match(rules, s("srv*"), StringMatchFlag_RightSideSloppy)) + { + String8List parts = str8_split(scratch.arena, rules, (U8 *)"*", 1, 0); + for EachNode(n, String8Node, parts.first) + { + PathStyle style = path_style_from_str8(n->string); + if(w32_smsv_state->symbol_cache_path.size != 0 && style == PathStyle_WindowsAbsolute) + { + w32_smsv_state->symbol_cache_path = n->string; + } + else if(str8_match(n->string, s("https://"), StringMatchFlag_RightSideSloppy) || + str8_match(n->string, s("http://"), StringMatchFlag_RightSideSloppy)) + { + str8_list_push(arena, &w32_smsv_state->symbol_server_urls, n->string); + } + else if(str8_match(n->string, s("\\\\"), StringMatchFlag_RightSideSloppy)) + { + // TODO(rjf): network share; currently unsupported + } + } + } + else + { + w32_smsv_state->symbol_cache_path = str8_skip_chop_whitespace(rules); + } + scratch_end(scratch); + } + } + + // rjf: always fall back to public MS server + { + String8 public_ms_server = s("https://msdl.microsoft.com/download/symbols"); + B32 public_ms_server_already_present = 0; + for EachNode(n, String8Node, w32_smsv_state->symbol_server_urls.first) + { + if(str8_match(public_ms_server, n->string, 0)) + { + public_ms_server_already_present = 1; + break; + } + } + if(!public_ms_server_already_present) + { + str8_list_push(arena, &w32_smsv_state->symbol_server_urls, public_ms_server); + } + } + + // rjf fall back to using C:/SymbolCache (or wherever windows is located) + if(w32_smsv_state->symbol_cache_path.size == 0) + { + Temp scratch = scratch_begin(0, 0); + U64 size = KB(32); + U16 *buffer = push_array_no_zero(scratch.arena, U16, size); + if(SUCCEEDED(SHGetFolderPathW(0, CSIDL_SYSTEM, 0, 0, (WCHAR*)buffer))) + { + String8 system32 = str8_from_16(scratch.arena, str16_cstring(buffer)); + String8 containing_drive = str8_prefix(system32, str8_find_needle(system32, 0, s("/"), StringMatchFlag_SlashInsensitive)); + w32_smsv_state->symbol_cache_path = str8f(arena, "%S\\SymbolCache", containing_drive); + } + scratch_end(scratch); + } + } + + // rjf: set up task cache + { + w32_smsv_state->task_slots_count = 256; + w32_smsv_state->task_slots = push_array(arena, W32_SMSV_TaskSlot, w32_smsv_state->task_slots_count); + w32_smsv_state->task_stripes = stripe_array_alloc(arena); + } + + // rjf: set up rings + w32_smsv_state->http_response_ring = guarded_ring_alloc(arena, KB(256)); + w32_smsv_state->new_task_ring = guarded_ring_alloc(arena, KB(8)); + w32_smsv_state->retry_arena = arena_alloc(); +} + +internal void +smsv_async_tick(void) +{ + Temp scratch = scratch_begin(0, 0); + + //- rjf: pop new tasks from new task ring, gather them + W32_SMSV_TaskNode *first_request_task = 0; + W32_SMSV_TaskNode *last_request_task = 0; + U64 request_task_count = 0; + if(lane_idx() == 0) + { + for(B32 done = 0;!done;) + { + // rjf: get the next task ID to start + U64 task_id = 0; + { + RingGuard g = guarded_ring_open(w32_smsv_state->new_task_ring); + if(!guarded_ring_try_read_struct(&g, &task_id)) + { + done = 1; + } + guarded_ring_close(&g); + } + + // rjf: gather + if(!done) + { + W32_SMSV_Task *task = (W32_SMSV_Task *)task_id; + W32_SMSV_TaskNode *n = push_array(scratch.arena, W32_SMSV_TaskNode, 1); + n->task = task; + SLLQueuePush(first_request_task, last_request_task, n); + request_task_count += 1; + } + } + } + lane_sync(); + + //- rjf: gather tasks from the retry batch + if(lane_idx() == 0) + { + for(W32_SMSV_TaskNode *t = w32_smsv_state->first_retry_request; t != 0; t = t->next) + { + W32_SMSV_TaskNode *n = push_array(scratch.arena, W32_SMSV_TaskNode, 1); + n->task = t->task; + SLLQueuePush(first_request_task, last_request_task, n); + request_task_count += 1; + } + arena_clear(w32_smsv_state->retry_arena); + w32_smsv_state->first_retry_request = w32_smsv_state->last_retry_request = 0; + } + lane_sync(); + + //- rjf: pop responses -> for any responses that suggest that a particular debug info + // is not present on the server, we need to generate new request nodes for those tasks, + // to fall back to subsequent server URLS. + W32_SMSV_TaskNode *first_finish_task = 0; + W32_SMSV_TaskNode *last_finish_task = 0; + U64 finish_task_count = 0; + if(lane_idx() == 0) + { + for(HTTP_Response r = {0}; http_pop_response(scratch.arena, w32_smsv_state->http_response_ring, &r, 0);) + { + W32_SMSV_Task *task = (W32_SMSV_Task *)r.id; + if(task != 0) + { + if(r.body.size != 0) + { + str8_list_push(task->arena, &task->file_pieces, str8_copy(task->arena, r.body)); + } + if(!r.has_more && task->status != W32_SMSV_TaskStatus_DoneDownloading) + { + task->status = W32_SMSV_TaskStatus_DoneDownloading; + W32_SMSV_TaskNode *n = push_array(scratch.arena, W32_SMSV_TaskNode, 1); + n->task = task; + SLLQueuePush(first_finish_task, last_finish_task, n); + finish_task_count += 1; + } + } + } + } + lane_sync(); + + //- rjf: flatten all request tasks + W32_SMSV_Task **request_tasks = 0; + if(lane_idx() == 0) + { + request_tasks = push_array(scratch.arena, W32_SMSV_Task *, request_task_count); + { + U64 idx = 0; + for EachNode(n, W32_SMSV_TaskNode, first_request_task) + { + request_tasks[idx] = n->task; + idx += 1; + } + } + } + lane_sync_u64(&request_tasks, 0); + + //- rjf: do all request tasks + { + Rng1U64 range = lane_range(request_task_count); + for EachInRange(idx, range) + { + W32_SMSV_Task *task = request_tasks[idx]; + + // rjf: adjust the server URL node that we're using for this task + if(task->status == W32_SMSV_TaskStatus_Failed || task->status == W32_SMSV_TaskStatus_Null) + { + if(task->current_server_url_node == 0) + { + task->current_server_url_node = w32_smsv_state->symbol_server_urls.first; + } + else + { + task->current_server_url_node = task->current_server_url_node->next; + } + } + + // rjf: get server URL + String8 server_url = {0}; + if(task->current_server_url_node != 0) + { + server_url = task->current_server_url_node->string; + } + + // rjf: kick off request if we have a server URL + if(server_url.size != 0) + { + task->status = W32_SMSV_TaskStatus_Requested; + String8 dbg_name = w32_smsv_dbg_name_from_local_path(task->local_path); + String8 debug_info_unique_identifier = w32_smsv_unique_identifier_from_local_path(task->local_path); + HTTP_RequestParams params = + { + .id = (U64)task, + .method = HTTP_Method_Get, + .url = str8f(scratch.arena, "%S/%S/%S/%S", server_url, dbg_name, debug_info_unique_identifier, dbg_name), + }; + if(!http_push_request(w32_smsv_state->http_response_ring, ¶ms, 0)) + { + W32_SMSV_TaskNode *n = push_array(w32_smsv_state->retry_arena, W32_SMSV_TaskNode, 1); + SLLQueuePush(w32_smsv_state->first_retry_request, w32_smsv_state->last_retry_request, n); + n->task = task; + ins_atomic_u32_eval_assign(&async_loop_again, 1); + cond_var_broadcast(async_tick_start_cond_var); + } + } + + // rjf: if we don't have a server URL, mark this task as failed + else + { + task->status = W32_SMSV_TaskStatus_Failed; + W32_SMSV_TaskNode *n = push_array(scratch.arena, W32_SMSV_TaskNode, 1); + n->task = task; + SLLQueuePush(first_finish_task, last_finish_task, n); + finish_task_count += 1; + } + } + } + + //- rjf: flatten all finish tasks + W32_SMSV_Task **finish_tasks = 0; + if(lane_idx() == 0) + { + finish_tasks = push_array(scratch.arena, W32_SMSV_Task *, finish_task_count); + { + U64 idx = 0; + for EachNode(n, W32_SMSV_TaskNode, first_finish_task) + { + finish_tasks[idx] = n->task; + idx += 1; + } + } + } + lane_sync_u64(&finish_tasks, 0); + + //- rjf: do all finish tasks + { + Rng1U64 range = lane_range(finish_task_count); + for EachInRange(idx, range) + { + W32_SMSV_Task *task = finish_tasks[idx]; + + // rjf: successful task -> write to local path + if(task->status != W32_SMSV_TaskStatus_Failed) + { + String8 directory = str8_chop_last_slash(task->local_path); + for(U64 slash_pos = 0; slash_pos <= directory.size;) + { + slash_pos = str8_find_needle(directory, slash_pos+1, s("/"), StringMatchFlag_SlashInsensitive); + String8 root_dir = str8_substr(directory, r1u64(0, slash_pos)); + make_directory(root_dir); + if(slash_pos == directory.size) + { + break; + } + } + write_data_list_to_file_path(task->local_path, task->file_pieces); + if(task->current_server_url_node != 0) + { + String8 origin_path = str8f(scratch.arena, "%S/origin.txt", str8_chop_last_slash(task->local_path)); + write_data_to_file_path(origin_path, task->current_server_url_node->string); + } + } + + // rjf: evict task from cache + U64 hash = u64_hash_from_str8(task->local_path); + U64 slot_idx = hash%w32_smsv_state->task_slots_count; + W32_SMSV_TaskSlot *slot = &w32_smsv_state->task_slots[slot_idx]; + Stripe *stripe = stripe_from_slot_idx(&w32_smsv_state->task_stripes, slot_idx); + RWMutexScope(stripe->rw_mutex, 1) + { + DLLRemove(slot->first, slot->last, task); + arena_release(task->arena); + } + } + } + + scratch_end(scratch); +} + +internal String8 +smsv_cache_path(void) +{ + return w32_smsv_state->symbol_cache_path; +} + +internal String8 +smsv_local_path_from_key(Arena *arena, String8 dbg_name, Guid guid, U64 age) +{ + String8 result = {0}; + Temp scratch = scratch_begin(&arena, 1); + { + // rjf: form unique identifier based on guid + String8 debug_info_unique_identifier = {0}; + { + debug_info_unique_identifier = str8f(scratch.arena, "%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X%I64x", + guid.data1, guid.data2, guid.data3, guid.data4[0], guid.data4[1], guid.data4[2], guid.data4[3], guid.data4[4], guid.data4[5], guid.data4[6], guid.data4[7], age); + } + + // rjf: form full path + if(debug_info_unique_identifier.size != 0) + { + String8 symbol_cache_path = w32_smsv_state->symbol_cache_path; + String8 path = str8f(scratch.arena, "%S/%S/%S/%S", symbol_cache_path, dbg_name, debug_info_unique_identifier, dbg_name); + result = path_normalized_from_string(arena, path); + } + } + scratch_end(scratch); + return result; +} + +internal void +smsv_fill_local_path(String8 path) +{ + // rjf: determine if we already have this debug info stored locally + B32 already_cached_locally = (properties_from_file_path(path).modified != 0); + + // rjf: if not cached: record (local path -> download task) mapping + B32 task_is_new = 0; + U64 task_id = 0; + if(!already_cached_locally) + { + U64 hash = u64_hash_from_str8(path); + U64 slot_idx = hash%w32_smsv_state->task_slots_count; + W32_SMSV_TaskSlot *slot = &w32_smsv_state->task_slots[slot_idx]; + Stripe *stripe = stripe_from_slot_idx(&w32_smsv_state->task_stripes, slot_idx); + for(B32 write_mode = 0; write_mode <= 1; write_mode += 1) + { + B32 already_exists = 0; + RWMutexScope(stripe->rw_mutex, write_mode) + { + W32_SMSV_Task *node = 0; + for(W32_SMSV_Task *n = slot->first; n != 0; n = n->next) + { + if(path_match_normalized(n->local_path, path)) + { + already_exists = 1; + node = n; + break; + } + } + if(node == 0 && write_mode) + { + Arena *arena = arena_alloc(); + node = push_array(arena, W32_SMSV_Task, 1); + node->arena = arena; + node->local_path = path_normalized_from_string(arena, path); + DLLPushBack(slot->first, slot->last, node); + task_is_new = 1; + task_id = (U64)node; + } + } + if(already_exists) + { + break; + } + } + } + + // rjf: if the task is new -> push request to start task + if(task_is_new) + { + RingGuard g = guarded_ring_open(w32_smsv_state->new_task_ring); + guarded_ring_write_struct_or_wait(&g, &task_id, max_U64); + guarded_ring_close(&g); + ins_atomic_u32_eval_assign(&async_loop_again, 1); + cond_var_broadcast(async_tick_start_cond_var); + } +} + +internal SMSV_Status +smsv_status_from_local_path(String8 path) +{ + SMSV_Status status = SMSV_Status_Null; + { + Temp scratch = scratch_begin(0, 0); + String8 path_normalized = path_normalized_from_string(scratch.arena, path); + U64 hash = u64_hash_from_str8(path_normalized); + U64 slot_idx = hash%w32_smsv_state->task_slots_count; + W32_SMSV_TaskSlot *slot = &w32_smsv_state->task_slots[slot_idx]; + Stripe *stripe = stripe_from_slot_idx(&w32_smsv_state->task_stripes, slot_idx); + RWMutexScope(stripe->rw_mutex, 0) + { + for(W32_SMSV_Task *n = slot->first; n != 0; n = n->next) + { + if(str8_match(n->local_path, path, 0)) + { + status = SMSV_Status_Pending; + break; + } + } + } + scratch_end(scratch); + } + return status; +} diff --git a/src/win32/symbol_server/win32_symbol_server.h b/src/win32/symbol_server/win32_symbol_server.h new file mode 100644 index 00000000..0ebc1b36 --- /dev/null +++ b/src/win32/symbol_server/win32_symbol_server.h @@ -0,0 +1,70 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_SYMBOL_SERVER_H +#define WIN32_SYMBOL_SERVER_H + +typedef enum W32_SMSV_TaskStatus +{ + W32_SMSV_TaskStatus_Null, + W32_SMSV_TaskStatus_Requested, + W32_SMSV_TaskStatus_DoneDownloading, + W32_SMSV_TaskStatus_Failed, +} +W32_SMSV_TaskStatus; + +typedef struct W32_SMSV_Task W32_SMSV_Task; +struct W32_SMSV_Task +{ + W32_SMSV_Task *next; + W32_SMSV_Task *prev; + + // rjf: key / parameters + Arena *arena; + String8 local_path; + + // rjf: working state + W32_SMSV_TaskStatus status; + String8Node *current_server_url_node; + String8List file_pieces; +}; + +typedef struct W32_SMSV_TaskNode W32_SMSV_TaskNode; +struct W32_SMSV_TaskNode +{ + W32_SMSV_TaskNode *next; + W32_SMSV_Task *task; +}; + +typedef struct W32_SMSV_TaskSlot W32_SMSV_TaskSlot; +struct W32_SMSV_TaskSlot +{ + W32_SMSV_Task *first; + W32_SMSV_Task *last; +}; + +typedef struct W32_SMSV_State W32_SMSV_State; +struct W32_SMSV_State +{ + Arena *arena; + String8 symbol_cache_path; + String8List symbol_server_urls; + U64 task_slots_count; + W32_SMSV_TaskSlot *task_slots; + StripeArray task_stripes; + GuardedRing *http_response_ring; + GuardedRing *new_task_ring; + Arena *retry_arena; + W32_SMSV_TaskNode *first_retry_request; + W32_SMSV_TaskNode *last_retry_request; +}; + +global W32_SMSV_State *w32_smsv_state = 0; + +//////////////////////////////// +//~ rjf: Helpers + +internal String8 w32_smsv_dbg_name_from_local_path(String8 path); +internal String8 w32_smsv_unique_identifier_from_local_path(String8 path); + +#endif // WIN32_SYMBOL_SERVER_H diff --git a/src/win32/win32_inc.c b/src/win32/win32_inc.c new file mode 100644 index 00000000..6f8f5874 --- /dev/null +++ b/src/win32/win32_inc.c @@ -0,0 +1,6 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#if defined(X64_H) +# include "win32/x64/win32_x64.c" +#endif diff --git a/src/win32/win32_inc.h b/src/win32/win32_inc.h new file mode 100644 index 00000000..062fd9e5 --- /dev/null +++ b/src/win32/win32_inc.h @@ -0,0 +1,11 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_INC_H +#define WIN32_INC_H + +#if defined(X64_H) +# include "win32/x64/win32_x64.h" +#endif + +#endif // WIN32_INC_H diff --git a/src/os/gfx/win32/os_gfx_win32.c b/src/win32/window_manager/win32_window_manager.c similarity index 53% rename from src/os/gfx/win32/os_gfx_win32.c rename to src/win32/window_manager/win32_window_manager.c index 53f8edb5..341b1b98 100644 --- a/src/os/gfx/win32/os_gfx_win32.c +++ b/src/win32/window_manager/win32_window_manager.c @@ -1,1673 +1,1688 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Modern Windows SDK Functions -// -// (We must dynamically link to them, since they can be missing in older SDKs) - -typedef BOOL w32_SetProcessDpiAwarenessContext_Type(void* value); -typedef UINT w32_GetDpiForWindow_Type(HWND hwnd); -typedef HRESULT w32_GetDpiForMonitor_Type(HMONITOR hmonitor, MONITOR_DPI_TYPE dpiType, UINT *dpiX, UINT *dpiY); -typedef int w32_GetSystemMetricsForDpi_Type(int nIndex, UINT dpi); -#define w32_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ((void*)-4) -global w32_GetDpiForWindow_Type *w32_GetDpiForWindow_func = 0; -global w32_GetDpiForMonitor_Type *w32_GetDpiForMonitor_func = 0; -global w32_GetSystemMetricsForDpi_Type *w32_GetSystemMetricsForDpi_func = 0; - -//////////////////////////////// -//~ rjf: Basic Helpers - -internal Rng2F32 -os_w32_rng2f32_from_rect(RECT rect) -{ - Rng2F32 r = {0}; - r.x0 = (F32)rect.left; - r.x1 = (F32)rect.right; - r.y0 = (F32)rect.top; - r.y1 = (F32)rect.bottom; - return r; -} - -//////////////////////////////// -//~ rjf: Windows - -internal OS_Handle -os_w32_handle_from_window(OS_W32_Window *window) -{ - OS_Handle handle = {(U64)window}; - return handle; -} - -internal OS_W32_Window * -os_w32_window_from_handle(OS_Handle handle) -{ - OS_W32_Window *window = (OS_W32_Window *)handle.u64[0]; - return window; -} - -internal OS_W32_Window * -os_w32_window_from_hwnd(HWND hwnd) -{ - OS_W32_Window *result = 0; - for(OS_W32_Window *w = os_w32_gfx_state->first_window; w; w = w->next) - { - if(w->hwnd == hwnd) - { - result = w; - break; - } - } - return result; -} - -internal HWND -os_w32_hwnd_from_window(OS_W32_Window *window) -{ - return window->hwnd; -} - -internal OS_W32_Window * -os_w32_window_alloc(void) -{ - OS_W32_Window *result = os_w32_gfx_state->free_window; - if(result) - { - SLLStackPop(os_w32_gfx_state->free_window); - } - else - { - result = push_array_no_zero(os_w32_gfx_state->arena, OS_W32_Window, 1); - } - MemoryZeroStruct(result); - if(result) - { - DLLPushBack(os_w32_gfx_state->first_window, os_w32_gfx_state->last_window, result); - } - result->last_window_placement.length = sizeof(WINDOWPLACEMENT); - return result; -} - -internal void -os_w32_window_release(OS_W32_Window *window) -{ - if(window->paint_arena != 0) - { - arena_release(window->paint_arena); - } - ReleaseDC(window->hwnd, window->hdc); - DestroyWindow(window->hwnd); - DLLRemove(os_w32_gfx_state->first_window, os_w32_gfx_state->last_window, window); - SLLStackPush(os_w32_gfx_state->free_window, window); -} - -internal OS_Event * -os_w32_push_event(OS_EventKind kind, OS_W32_Window *window) -{ - OS_Event *result = os_event_list_push_new(os_w32_event_arena, &os_w32_event_list, kind); - result->window = os_w32_handle_from_window(window); - result->modifiers = os_get_modifiers(); - return result; -} - -internal OS_Key -os_w32_os_key_from_vkey(WPARAM vkey) -{ - local_persist B32 first = 1; - local_persist OS_Key key_table[256]; - if (first){ - first = 0; - MemoryZeroArray(key_table); - - key_table[(unsigned int)'A'] = OS_Key_A; - key_table[(unsigned int)'B'] = OS_Key_B; - key_table[(unsigned int)'C'] = OS_Key_C; - key_table[(unsigned int)'D'] = OS_Key_D; - key_table[(unsigned int)'E'] = OS_Key_E; - key_table[(unsigned int)'F'] = OS_Key_F; - key_table[(unsigned int)'G'] = OS_Key_G; - key_table[(unsigned int)'H'] = OS_Key_H; - key_table[(unsigned int)'I'] = OS_Key_I; - key_table[(unsigned int)'J'] = OS_Key_J; - key_table[(unsigned int)'K'] = OS_Key_K; - key_table[(unsigned int)'L'] = OS_Key_L; - key_table[(unsigned int)'M'] = OS_Key_M; - key_table[(unsigned int)'N'] = OS_Key_N; - key_table[(unsigned int)'O'] = OS_Key_O; - key_table[(unsigned int)'P'] = OS_Key_P; - key_table[(unsigned int)'Q'] = OS_Key_Q; - key_table[(unsigned int)'R'] = OS_Key_R; - key_table[(unsigned int)'S'] = OS_Key_S; - key_table[(unsigned int)'T'] = OS_Key_T; - key_table[(unsigned int)'U'] = OS_Key_U; - key_table[(unsigned int)'V'] = OS_Key_V; - key_table[(unsigned int)'W'] = OS_Key_W; - key_table[(unsigned int)'X'] = OS_Key_X; - key_table[(unsigned int)'Y'] = OS_Key_Y; - key_table[(unsigned int)'Z'] = OS_Key_Z; - - for (U64 i = '0', j = OS_Key_0; i <= '9'; i += 1, j += 1){ - key_table[i] = (OS_Key)j; - } - for (U64 i = VK_NUMPAD0, j = OS_Key_0; i <= VK_NUMPAD9; i += 1, j += 1){ - key_table[i] = (OS_Key)j; - } - for (U64 i = VK_F1, j = OS_Key_F1; i <= VK_F24; i += 1, j += 1){ - key_table[i] = (OS_Key)j; - } - - key_table[VK_SPACE] = OS_Key_Space; - key_table[VK_OEM_3] = OS_Key_Tick; - key_table[VK_OEM_MINUS] = OS_Key_Minus; - key_table[VK_OEM_PLUS] = OS_Key_Equal; - key_table[VK_OEM_4] = OS_Key_LeftBracket; - key_table[VK_OEM_6] = OS_Key_RightBracket; - key_table[VK_OEM_1] = OS_Key_Semicolon; - key_table[VK_OEM_7] = OS_Key_Quote; - key_table[VK_OEM_COMMA] = OS_Key_Comma; - key_table[VK_OEM_PERIOD]= OS_Key_Period; - key_table[VK_OEM_2] = OS_Key_Slash; - key_table[VK_OEM_5] = OS_Key_BackSlash; - - key_table[VK_TAB] = OS_Key_Tab; - key_table[VK_PAUSE] = OS_Key_Pause; - key_table[VK_ESCAPE] = OS_Key_Esc; - - key_table[VK_UP] = OS_Key_Up; - key_table[VK_LEFT] = OS_Key_Left; - key_table[VK_DOWN] = OS_Key_Down; - key_table[VK_RIGHT] = OS_Key_Right; - - key_table[VK_BACK] = OS_Key_Backspace; - key_table[VK_RETURN] = OS_Key_Return; - - key_table[VK_DELETE] = OS_Key_Delete; - key_table[VK_INSERT] = OS_Key_Insert; - key_table[VK_PRIOR] = OS_Key_PageUp; - key_table[VK_NEXT] = OS_Key_PageDown; - key_table[VK_HOME] = OS_Key_Home; - key_table[VK_END] = OS_Key_End; - - key_table[VK_CAPITAL] = OS_Key_CapsLock; - key_table[VK_NUMLOCK] = OS_Key_NumLock; - key_table[VK_SCROLL] = OS_Key_ScrollLock; - key_table[VK_APPS] = OS_Key_Menu; - - key_table[VK_CONTROL] = OS_Key_Ctrl; - key_table[VK_LCONTROL] = OS_Key_Ctrl; - key_table[VK_RCONTROL] = OS_Key_Ctrl; - key_table[VK_SHIFT] = OS_Key_Shift; - key_table[VK_LSHIFT] = OS_Key_Shift; - key_table[VK_RSHIFT] = OS_Key_Shift; - key_table[VK_MENU] = OS_Key_Alt; - key_table[VK_LMENU] = OS_Key_Alt; - key_table[VK_RMENU] = OS_Key_Alt; - - key_table[VK_DIVIDE] = OS_Key_NumSlash; - key_table[VK_MULTIPLY] = OS_Key_NumStar; - key_table[VK_SUBTRACT] = OS_Key_NumMinus; - key_table[VK_ADD] = OS_Key_NumPlus; - key_table[VK_DECIMAL] = OS_Key_NumPeriod; - - for (U32 i = 0; i < 10; i += 1){ - key_table[VK_NUMPAD0 + i] = (OS_Key)((U64)OS_Key_Num0 + i); - } - - for (U64 i = 0xDF, j = 0; i < 0xFF; i += 1, j += 1){ - key_table[i] = (OS_Key)((U64)OS_Key_Ex0 + j); - } - } - - OS_Key key = key_table[vkey&bitmask8]; - return key; -} - -internal WPARAM -os_w32_vkey_from_os_key(OS_Key key) -{ - WPARAM result = 0; - { - local_persist B32 initialized = 0; - local_persist WPARAM vkey_table[OS_Key_COUNT] = {0}; - if(initialized == 0) - { - initialized = 1; - vkey_table[OS_Key_Esc] = VK_ESCAPE; - for(OS_Key key = OS_Key_F1; key <= OS_Key_F24; key = (OS_Key)(key+1)) - { - vkey_table[key] = VK_F1+(key-OS_Key_F1); - } - vkey_table[OS_Key_Tick] = VK_OEM_3; - for(OS_Key key = OS_Key_0; key <= OS_Key_9; key = (OS_Key)(key+1)) - { - vkey_table[key] = '0'+(key-OS_Key_0); - } - vkey_table[OS_Key_Minus] = VK_OEM_MINUS; - vkey_table[OS_Key_Equal] = VK_OEM_PLUS; - vkey_table[OS_Key_Backspace] = VK_BACK; - vkey_table[OS_Key_Tab] = VK_TAB; - vkey_table[OS_Key_Q] = 'Q'; - vkey_table[OS_Key_W] = 'W'; - vkey_table[OS_Key_E] = 'E'; - vkey_table[OS_Key_R] = 'R'; - vkey_table[OS_Key_T] = 'T'; - vkey_table[OS_Key_Y] = 'Y'; - vkey_table[OS_Key_U] = 'U'; - vkey_table[OS_Key_I] = 'I'; - vkey_table[OS_Key_O] = 'O'; - vkey_table[OS_Key_P] = 'P'; - vkey_table[OS_Key_LeftBracket] = VK_OEM_4; - vkey_table[OS_Key_RightBracket] = VK_OEM_6; - vkey_table[OS_Key_BackSlash] = VK_OEM_5; - vkey_table[OS_Key_CapsLock] = VK_CAPITAL; - vkey_table[OS_Key_A] = 'A'; - vkey_table[OS_Key_S] = 'S'; - vkey_table[OS_Key_D] = 'D'; - vkey_table[OS_Key_F] = 'F'; - vkey_table[OS_Key_G] = 'G'; - vkey_table[OS_Key_H] = 'H'; - vkey_table[OS_Key_J] = 'J'; - vkey_table[OS_Key_K] = 'K'; - vkey_table[OS_Key_L] = 'L'; - vkey_table[OS_Key_Semicolon] = VK_OEM_1; - vkey_table[OS_Key_Quote] = VK_OEM_7; - vkey_table[OS_Key_Return] = VK_RETURN; - vkey_table[OS_Key_Shift] = VK_SHIFT; - vkey_table[OS_Key_Z] = 'Z'; - vkey_table[OS_Key_X] = 'X'; - vkey_table[OS_Key_C] = 'C'; - vkey_table[OS_Key_V] = 'V'; - vkey_table[OS_Key_B] = 'B'; - vkey_table[OS_Key_N] = 'N'; - vkey_table[OS_Key_M] = 'M'; - vkey_table[OS_Key_Comma] = VK_OEM_COMMA; - vkey_table[OS_Key_Period] = VK_OEM_PERIOD; - vkey_table[OS_Key_Slash] = VK_OEM_2; - vkey_table[OS_Key_Ctrl] = VK_CONTROL; - vkey_table[OS_Key_Alt] = VK_MENU; - vkey_table[OS_Key_Space] = VK_SPACE; - vkey_table[OS_Key_Menu] = VK_APPS; - vkey_table[OS_Key_ScrollLock] = VK_SCROLL; - vkey_table[OS_Key_Pause] = VK_PAUSE; - vkey_table[OS_Key_Insert] = VK_INSERT; - vkey_table[OS_Key_Home] = VK_HOME; - vkey_table[OS_Key_PageUp] = VK_PRIOR; - vkey_table[OS_Key_Delete] = VK_DELETE; - vkey_table[OS_Key_End] = VK_END; - vkey_table[OS_Key_PageDown] = VK_NEXT; - vkey_table[OS_Key_Up] = VK_UP; - vkey_table[OS_Key_Left] = VK_LEFT; - vkey_table[OS_Key_Down] = VK_DOWN; - vkey_table[OS_Key_Right] = VK_RIGHT; - for(OS_Key key = OS_Key_Ex0; key <= OS_Key_Ex29; key = (OS_Key)(key+1)) - { - vkey_table[key] = 0xDF + (key-OS_Key_Ex0); - } - vkey_table[OS_Key_NumLock] = VK_NUMLOCK; - vkey_table[OS_Key_NumSlash] = VK_DIVIDE; - vkey_table[OS_Key_NumStar] = VK_MULTIPLY; - vkey_table[OS_Key_NumMinus] = VK_SUBTRACT; - vkey_table[OS_Key_NumPlus] = VK_ADD; - vkey_table[OS_Key_NumPeriod] = VK_DECIMAL; - vkey_table[OS_Key_Num0] = VK_NUMPAD0; - vkey_table[OS_Key_Num1] = VK_NUMPAD1; - vkey_table[OS_Key_Num2] = VK_NUMPAD2; - vkey_table[OS_Key_Num3] = VK_NUMPAD3; - vkey_table[OS_Key_Num4] = VK_NUMPAD4; - vkey_table[OS_Key_Num5] = VK_NUMPAD5; - vkey_table[OS_Key_Num6] = VK_NUMPAD6; - vkey_table[OS_Key_Num7] = VK_NUMPAD7; - vkey_table[OS_Key_Num8] = VK_NUMPAD8; - vkey_table[OS_Key_Num9] = VK_NUMPAD9; - vkey_table[OS_Key_LeftMouseButton] = VK_LBUTTON; - vkey_table[OS_Key_MiddleMouseButton] = VK_MBUTTON; - vkey_table[OS_Key_RightMouseButton] = VK_RBUTTON; - } - result = vkey_table[key]; - } - return result; -} - -internal LRESULT -os_w32_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - ProfBeginFunction(); - LRESULT result = 0; - B32 good = 1; - if(os_w32_event_arena == 0) - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - good = 0; - } - if(good) - { - OS_W32_Window *window = os_w32_window_from_hwnd(hwnd); - OS_Handle window_handle = os_w32_handle_from_window(window); - B32 release = 0; - - switch(uMsg) - { - default: - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - }break; - - case WM_ENTERSIZEMOVE: - { - os_w32_resizing = 1; - }break; - - case WM_EXITSIZEMOVE: - { - os_w32_resizing = 0; - }break; - - case WM_SIZE: - case WM_PAINT: - { - PAINTSTRUCT ps = {0}; - BeginPaint(hwnd, &ps); - update(); - EndPaint(hwnd, &ps); - DwmFlush(); - }break; - - case WM_CLOSE: - { - os_w32_push_event(OS_EventKind_WindowClose, window); - }break; - - case WM_LBUTTONUP: - case WM_MBUTTONUP: - case WM_RBUTTONUP: - { - release = 1; - } // fallthrough; - case WM_LBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_RBUTTONDOWN: - { - OS_Event *event = os_w32_push_event(release ? OS_EventKind_Release : OS_EventKind_Press, window); - switch (uMsg) - { - case WM_LBUTTONUP: case WM_LBUTTONDOWN: - { - event->key = OS_Key_LeftMouseButton; - }break; - case WM_MBUTTONUP: case WM_MBUTTONDOWN: - { - event->key = OS_Key_MiddleMouseButton; - }break; - case WM_RBUTTONUP: case WM_RBUTTONDOWN: - { - event->key = OS_Key_RightMouseButton; - }break; - } - event->pos.x = (F32)(S16)LOWORD(lParam); - event->pos.y = (F32)(S16)HIWORD(lParam); - if(release) - { - ReleaseCapture(); - } - else - { - SetCapture(hwnd); - } - }break; - - case WM_MOUSEMOVE: - { - OS_Event *event = os_w32_push_event(OS_EventKind_MouseMove, window); - event->pos.x = (F32)(S16)LOWORD(lParam); - event->pos.y = (F32)(S16)HIWORD(lParam); - }break; - - case WM_MOUSEWHEEL: - { - S16 wheel_delta = HIWORD(wParam); - OS_Event *event = os_w32_push_event(OS_EventKind_Scroll, window); - POINT p; - p.x = (S32)(S16)LOWORD(lParam); - p.y = (S32)(S16)HIWORD(lParam); - ScreenToClient(window->hwnd, &p); - event->pos.x = (F32)p.x; - event->pos.y = (F32)p.y; - event->delta = v2f32(0.f, -(F32)wheel_delta); - }break; - - case WM_MOUSEHWHEEL: - { - S16 wheel_delta = HIWORD(wParam); - OS_Event *event = os_w32_push_event(OS_EventKind_Scroll, window); - POINT p; - p.x = (S32)(S16)LOWORD(lParam); - p.y = (S32)(S16)HIWORD(lParam); - ScreenToClient(window->hwnd, &p); - event->pos.x = (F32)p.x; - event->pos.y = (F32)p.y; - event->delta = v2f32((F32)wheel_delta, 0.f); - }break; - - case WM_SYSKEYDOWN: case WM_SYSKEYUP: - { - if(wParam != VK_MENU && (wParam < VK_F1 || VK_F24 < wParam || wParam == VK_F4)) - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - } // fallthrough; - case WM_KEYDOWN: case WM_KEYUP: - { - B32 was_down = (lParam & bit31); - B32 is_down = !(lParam & bit32); - - B32 is_repeat = 0; - if(!is_down) - { - release = 1; - } - else if(was_down) - { - is_repeat = 1; - } - - B32 right_sided = 0; - if ((lParam & bit25) && - (wParam == VK_CONTROL || wParam == VK_RCONTROL || - wParam == VK_MENU || wParam == VK_RMENU || - wParam == VK_SHIFT || wParam == VK_RSHIFT)) - { - right_sided = 1; - } - - OS_Event *event = os_w32_push_event(release ? OS_EventKind_Release : OS_EventKind_Press, window); - event->key = os_w32_os_key_from_vkey(wParam); - event->repeat_count = lParam & bitmask16; - event->is_repeat = is_repeat; - event->right_sided = right_sided; - if(event->key == OS_Key_Alt && event->modifiers & OS_Modifier_Alt) { event->modifiers &= ~OS_Modifier_Alt; } - if(event->key == OS_Key_Ctrl && event->modifiers & OS_Modifier_Ctrl) { event->modifiers &= ~OS_Modifier_Ctrl; } - if(event->key == OS_Key_Shift && event->modifiers & OS_Modifier_Shift) { event->modifiers &= ~OS_Modifier_Shift; } - }break; - - case WM_SYSCHAR: - { - WORD vk_code = LOWORD(wParam); - if(vk_code == VK_SPACE) - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - else - { - result = 0; - } - }break; - - case WM_CHAR: - { - U32 character = wParam; - if(character >= 32 && character != 127) - { - OS_Event *event = os_w32_push_event(OS_EventKind_Text, window); - if(lParam & bit29) - { - event->modifiers |= OS_Modifier_Alt; - } - event->character = character; - } - }break; - - case WM_KILLFOCUS: - { - os_w32_push_event(OS_EventKind_WindowLoseFocus, window); - ReleaseCapture(); - }break; - - case WM_SETCURSOR: - { - Rng2F32 window_rect = os_client_rect_from_window(window_handle); - Vec2F32 mouse = os_mouse_from_window(window_handle); - B32 on_border = 0; - DWORD window_style = window ? GetWindowLong(window->hwnd, GWL_STYLE) : 0; - B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); - if(window != 0 && window->custom_border && !is_fullscreen) - { - B32 on_border_x = (mouse.x <= window->custom_border_edge_thickness || window_rect.x1-window->custom_border_edge_thickness <= mouse.x); - B32 on_border_y = (mouse.y <= window->custom_border_edge_thickness || window_rect.y1-window->custom_border_edge_thickness <= mouse.y); - on_border = on_border_x || on_border_y; - } - if(!os_w32_resizing && !on_border && contains_2f32(window_rect, mouse)) - { - SetCursor(os_w32_gfx_state->hCursor); - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - }break; - - case WM_DPICHANGED: - { - F32 new_dpi = (F32)(wParam & 0xffff); - RECT suggested_new_rect = *(RECT *)lParam; - window->dpi = new_dpi; - SetWindowPos(window->hwnd, 0, - suggested_new_rect.left, - suggested_new_rect.top, - suggested_new_rect.right - suggested_new_rect.left, - suggested_new_rect.bottom - suggested_new_rect.top, - 0); - }break; - - //- rjf: [file drop] - case WM_DROPFILES: - { - HDROP drop = (HDROP)wParam; - POINT drop_pt = {0}; - DragQueryPoint(drop, &drop_pt); - U64 num_files_dropped = DragQueryFile(drop, 0xffffffff, 0, 0); - OS_Event *event = os_w32_push_event(OS_EventKind_FileDrop, window); - event->pos = v2f32((F32)drop_pt.x, (F32)drop_pt.y); - for(U64 idx = 0; idx < num_files_dropped; idx += 1) - { - U64 name_size = DragQueryFile(drop, idx, 0, 0) + 1; - U8 *name_ptr = push_array(os_w32_event_arena, U8, name_size); - DragQueryFile(drop, idx, (char *)name_ptr, name_size); - String8 path_string = str8(name_ptr, name_size - 1); - String8 path_string__normalized = path_normalized_from_string(os_w32_event_arena, path_string); - str8_list_push(os_w32_event_arena, &event->strings, path_string__normalized); - } - DragFinish(drop); - }break; - - //- rjf: [custom border] - case WM_NCPAINT: - { - if(os_w32_new_window_custom_border || (window != 0 && window->custom_border && !window->custom_border_composition_enabled)) - { - result = 0; - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - }break; - case WM_DWMCOMPOSITIONCHANGED: - { - if(window != 0 && window->custom_border) - { - BOOL enabled = 0; - DwmIsCompositionEnabled(&enabled); - window->custom_border_composition_enabled = enabled; - if(enabled) - { - MARGINS m = { 0, 0, 1, 0 }; - DwmExtendFrameIntoClientArea(hwnd, &m); - DWORD dwmncrp_enabled = DWMNCRP_ENABLED; - DwmSetWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, &enabled, sizeof(dwmncrp_enabled)); - } - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - }break; - case WM_WINDOWPOSCHANGED: - { - result = 0; - }break; - case WM_NCUAHDRAWCAPTION: - case WM_NCUAHDRAWFRAME: - { - // NOTE(rjf): undocumented messages for drawing themed window borders. - if(os_w32_new_window_custom_border || (window != 0 && window->custom_border)) - { - result = 0; - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - }break; - case WM_SETICON: - case WM_SETTEXT: - { - if(os_w32_new_window_custom_border || (window && window->custom_border && !window->custom_border_composition_enabled)) - { - // NOTE(rjf): - // https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/ - LONG_PTR old_style = GetWindowLongPtrW(hwnd, GWL_STYLE); - SetWindowLongPtrW(hwnd, GWL_STYLE, old_style & ~WS_VISIBLE); - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - SetWindowLongPtrW(hwnd, GWL_STYLE, old_style); - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - }break; - - //- rjf: [custom border] activation - without this `result`, stuff flickers. - case WM_NCACTIVATE: - { - if(!os_w32_new_window_custom_border && (window == 0 || window->custom_border == 0)) - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - else - { - result = DefWindowProcW(hwnd, uMsg, wParam, -1); - } - }break; - - //- rjf: [custom border] client/window size calculation - case WM_NCCALCSIZE: - { - if(os_w32_new_window_custom_border || (window && window->custom_border)) - { - F32 dpi = w32_GetDpiForWindow_func ? (F32)w32_GetDpiForWindow_func(hwnd) : 96.f; - S32 frame_x = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXFRAME, dpi) : GetSystemMetrics(SM_CXFRAME); - S32 frame_y = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CYFRAME, dpi) : GetSystemMetrics(SM_CYFRAME); - S32 padding = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXPADDEDBORDER, dpi) : GetSystemMetrics(SM_CXPADDEDBORDER); - DWORD window_style = GetWindowLong(hwnd, GWL_STYLE); - B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); - if(!is_fullscreen) - { - RECT* rect = wParam == 0 ? (RECT*)lParam : ((NCCALCSIZE_PARAMS*)lParam)->rgrc; - rect->right -= frame_x + padding; - rect->left += frame_x + padding; - rect->bottom -= frame_y + padding; - - if(IsMaximized(hwnd)) - { - rect->top += frame_y + padding; - // If we do not do this hidden taskbar can not be unhidden on mouse hover - // Unfortunately it can create an ugly bottom border when maximized... - rect->bottom -= 1; - } - } - } - else - { - result = DefWindowProc(hwnd, uMsg, wParam, lParam); - } - }break; - - //- rjf: [custom border] client/window hit testing (mapping mouse -> action) - case WM_NCHITTEST: - { - DWORD window_style = window ? GetWindowLong(window->hwnd, GWL_STYLE) : 0; - B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); - if(window == 0 || window->custom_border == 0 || is_fullscreen) - { - result = DefWindowProcW(hwnd, uMsg, wParam, lParam); - } - else - { - B32 is_default_handled = 0; - - // Let the default procedure handle resizing areas - result = DefWindowProc(hwnd, uMsg, wParam, lParam); - switch (result) - { - case HTNOWHERE: - case HTRIGHT: - case HTLEFT: - case HTTOPLEFT: - case HTTOPRIGHT: - case HTBOTTOMRIGHT: - case HTBOTTOM: - case HTBOTTOMLEFT: - { - is_default_handled = 1; - } break; - } - - if (!is_default_handled) - { - POINT pos_monitor; - pos_monitor.x = GET_X_LPARAM(lParam); - pos_monitor.y = GET_Y_LPARAM(lParam); - POINT pos_client = pos_monitor; - ScreenToClient(hwnd, &pos_client); - - // Adjustments happening in NCCALCSIZE are messing with the detection - // of the top hit area so manually checking that. - F32 dpi = w32_GetDpiForWindow_func ? (F32)w32_GetDpiForWindow_func(hwnd) : 96.f; - S32 frame_y = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CYFRAME, dpi) : GetSystemMetrics(SM_CYFRAME); - // NOTE(rjf): it seems incorrect to apply this padding here... - // S32 padding = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXPADDEDBORDER, dpi) : GetSystemMetrics(SM_CXPADDEDBORDER); - - B32 is_over_top_resize = pos_client.y >= 0 && pos_client.y < frame_y; // + padding; - B32 is_over_title_bar = pos_client.y >= 0 && pos_client.y < window->custom_border_title_thickness; - - //- rjf: check against title bar client areas - B32 is_over_title_bar_client_area = 0; - for(OS_W32_TitleBarClientArea *area = window->first_title_bar_client_area; - area != 0; - area = area->next) - { - Rng2F32 rect = area->rect; - if(rect.x0 <= pos_client.x && pos_client.x < rect.x1 && - rect.y0 <= pos_client.y && pos_client.y < rect.y1) - { - is_over_title_bar_client_area = 1; - break; - } - } - - if (IsMaximized(hwnd)) - { - if (is_over_title_bar_client_area) - { - result = HTCLIENT; - } - else if (is_over_title_bar) - { - result = HTCAPTION; - } - else - { - result = HTCLIENT; - } - } - else - { - //Swap the first two conditions to choose if hovering the top border - //should prioritize resize or title bar buttons. - if (is_over_title_bar_client_area) - { - result = HTCLIENT; - } - else if (is_over_top_resize) - { - result = HTTOP; - } - else if (is_over_title_bar) - { - result = HTCAPTION; - } - else { - result = HTCLIENT; - } - } - } - } - }break; - } - } - ProfEnd(); - return result; -} - -//////////////////////////////// -//~ rjf: Monitors - -internal BOOL -os_w32_monitor_gather_enum_proc(HMONITOR monitor, HDC hdc, LPRECT rect, LPARAM bundle_ptr) -{ - OS_W32_MonitorGatherBundle *bundle = (OS_W32_MonitorGatherBundle *)bundle_ptr; - OS_Handle handle = {(U64)monitor}; - os_handle_list_push(bundle->arena, bundle->list, handle); - return 1; -} - -//////////////////////////////// -//~ rjf: @os_hooks Main Initialization API (Implemented Per-OS) - -internal void -os_gfx_init(void) -{ - //- rjf: set up base shared state - Arena *arena = arena_alloc(); - os_w32_gfx_state = push_array(arena, OS_W32_GfxState, 1); - os_w32_gfx_state->arena = arena; - os_w32_gfx_state->gfx_thread_tid = (U32)GetCurrentThreadId(); - os_w32_gfx_state->hInstance = GetModuleHandle(0); - - //- rjf: set dpi awareness - w32_SetProcessDpiAwarenessContext_Type *SetProcessDpiAwarenessContext_func = 0; - HMODULE module = LoadLibraryA("user32.dll"); - if(module != 0) - { - SetProcessDpiAwarenessContext_func = - (w32_SetProcessDpiAwarenessContext_Type*)GetProcAddress(module, "SetProcessDpiAwarenessContext"); - w32_GetDpiForWindow_func = - (w32_GetDpiForWindow_Type*)GetProcAddress(module, "GetDpiForWindow"); - w32_GetDpiForMonitor_func = (w32_GetDpiForMonitor_Type *)GetProcAddress(module, "GetDpiForMonitor"); - w32_GetSystemMetricsForDpi_func = (w32_GetSystemMetricsForDpi_Type *)GetProcAddress(module, "GetSystemMetricsForDpi"); - FreeLibrary(module); - } - if(SetProcessDpiAwarenessContext_func != 0) - { - SetProcessDpiAwarenessContext_func(w32_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); - } - else - { - HMODULE shcore = LoadLibraryA("shcore.dll"); - if(shcore) - { - typedef HRESULT (WINAPI* SetProcessDpiAwareness_t)(int); - SetProcessDpiAwareness_t SetProcessDpiAwareness = (void*)GetProcAddress(shcore, "SetProcessDpiAwareness"); - if(SetProcessDpiAwareness) - { - SetProcessDpiAwareness(2); - } - FreeLibrary(shcore); - } - SetProcessDPIAware(); - } - - //- rjf: register graphical-window class - { - WNDCLASSEXW wndclass = {sizeof(wndclass)}; - wndclass.lpfnWndProc = os_w32_wnd_proc; - wndclass.hInstance = os_w32_gfx_state->hInstance; - wndclass.lpszClassName = L"graphical-window"; - wndclass.hCursor = LoadCursorA(0, IDC_ARROW); - wndclass.hIcon = LoadIcon(os_w32_gfx_state->hInstance, MAKEINTRESOURCE(1)); - wndclass.style = CS_VREDRAW|CS_HREDRAW; - ATOM wndatom = RegisterClassExW(&wndclass); - (void)wndatom; - } - - //- rjf: grab graphics system info - { - os_w32_gfx_state->gfx_info.double_click_time = GetDoubleClickTime()/1000.f; - os_w32_gfx_state->gfx_info.caret_blink_time = GetCaretBlinkTime()/1000.f; - DEVMODEW devmodew = {0}; - if(EnumDisplaySettingsW(0, ENUM_CURRENT_SETTINGS, &devmodew)) - { - os_w32_gfx_state->gfx_info.default_refresh_rate = (F32)devmodew.dmDisplayFrequency; - } - } - - //- rjf: set initial cursor - os_set_cursor(OS_Cursor_Pointer); - - //- rjf: fill vkey -> OS_Key table - { - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'A'] = OS_Key_A; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'B'] = OS_Key_B; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'C'] = OS_Key_C; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'D'] = OS_Key_D; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'E'] = OS_Key_E; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'F'] = OS_Key_F; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'G'] = OS_Key_G; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'H'] = OS_Key_H; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'I'] = OS_Key_I; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'J'] = OS_Key_J; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'K'] = OS_Key_K; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'L'] = OS_Key_L; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'M'] = OS_Key_M; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'N'] = OS_Key_N; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'O'] = OS_Key_O; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'P'] = OS_Key_P; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'Q'] = OS_Key_Q; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'R'] = OS_Key_R; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'S'] = OS_Key_S; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'T'] = OS_Key_T; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'U'] = OS_Key_U; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'V'] = OS_Key_V; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'W'] = OS_Key_W; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'X'] = OS_Key_X; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'Y'] = OS_Key_Y; - os_w32_gfx_state->key_from_vkey_table[(unsigned int)'Z'] = OS_Key_Z; - - for(U64 i = '0', j = OS_Key_0; i <= '9'; i += 1, j += 1) - { - os_w32_gfx_state->key_from_vkey_table[i] = (OS_Key)j; - } - for(U64 i = VK_NUMPAD0, j = OS_Key_0; i <= VK_NUMPAD9; i += 1, j += 1) - { - os_w32_gfx_state->key_from_vkey_table[i] = (OS_Key)j; - } - for(U64 i = VK_F1, j = OS_Key_F1; i <= VK_F24; i += 1, j += 1) - { - os_w32_gfx_state->key_from_vkey_table[i] = (OS_Key)j; - } - - os_w32_gfx_state->key_from_vkey_table[VK_SPACE] = OS_Key_Space; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_3] = OS_Key_Tick; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_MINUS] = OS_Key_Minus; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_PLUS] = OS_Key_Equal; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_4] = OS_Key_LeftBracket; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_6] = OS_Key_RightBracket; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_1] = OS_Key_Semicolon; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_7] = OS_Key_Quote; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_COMMA] = OS_Key_Comma; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_PERIOD]= OS_Key_Period; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_2] = OS_Key_Slash; - os_w32_gfx_state->key_from_vkey_table[VK_OEM_5] = OS_Key_BackSlash; - - os_w32_gfx_state->key_from_vkey_table[VK_TAB] = OS_Key_Tab; - os_w32_gfx_state->key_from_vkey_table[VK_PAUSE] = OS_Key_Pause; - os_w32_gfx_state->key_from_vkey_table[VK_ESCAPE] = OS_Key_Esc; - - os_w32_gfx_state->key_from_vkey_table[VK_UP] = OS_Key_Up; - os_w32_gfx_state->key_from_vkey_table[VK_LEFT] = OS_Key_Left; - os_w32_gfx_state->key_from_vkey_table[VK_DOWN] = OS_Key_Down; - os_w32_gfx_state->key_from_vkey_table[VK_RIGHT] = OS_Key_Right; - - os_w32_gfx_state->key_from_vkey_table[VK_BACK] = OS_Key_Backspace; - os_w32_gfx_state->key_from_vkey_table[VK_RETURN] = OS_Key_Return; - - os_w32_gfx_state->key_from_vkey_table[VK_DELETE] = OS_Key_Delete; - os_w32_gfx_state->key_from_vkey_table[VK_INSERT] = OS_Key_Insert; - os_w32_gfx_state->key_from_vkey_table[VK_PRIOR] = OS_Key_PageUp; - os_w32_gfx_state->key_from_vkey_table[VK_NEXT] = OS_Key_PageDown; - os_w32_gfx_state->key_from_vkey_table[VK_HOME] = OS_Key_Home; - os_w32_gfx_state->key_from_vkey_table[VK_END] = OS_Key_End; - - os_w32_gfx_state->key_from_vkey_table[VK_CAPITAL] = OS_Key_CapsLock; - os_w32_gfx_state->key_from_vkey_table[VK_NUMLOCK] = OS_Key_NumLock; - os_w32_gfx_state->key_from_vkey_table[VK_SCROLL] = OS_Key_ScrollLock; - os_w32_gfx_state->key_from_vkey_table[VK_APPS] = OS_Key_Menu; - - os_w32_gfx_state->key_from_vkey_table[VK_CONTROL] = OS_Key_Ctrl; - os_w32_gfx_state->key_from_vkey_table[VK_LCONTROL] = OS_Key_Ctrl; - os_w32_gfx_state->key_from_vkey_table[VK_RCONTROL] = OS_Key_Ctrl; - os_w32_gfx_state->key_from_vkey_table[VK_SHIFT] = OS_Key_Shift; - os_w32_gfx_state->key_from_vkey_table[VK_LSHIFT] = OS_Key_Shift; - os_w32_gfx_state->key_from_vkey_table[VK_RSHIFT] = OS_Key_Shift; - os_w32_gfx_state->key_from_vkey_table[VK_MENU] = OS_Key_Alt; - os_w32_gfx_state->key_from_vkey_table[VK_LMENU] = OS_Key_Alt; - os_w32_gfx_state->key_from_vkey_table[VK_RMENU] = OS_Key_Alt; - - os_w32_gfx_state->key_from_vkey_table[VK_DIVIDE] = OS_Key_NumSlash; - os_w32_gfx_state->key_from_vkey_table[VK_MULTIPLY] = OS_Key_NumStar; - os_w32_gfx_state->key_from_vkey_table[VK_SUBTRACT] = OS_Key_NumMinus; - os_w32_gfx_state->key_from_vkey_table[VK_ADD] = OS_Key_NumPlus; - os_w32_gfx_state->key_from_vkey_table[VK_DECIMAL] = OS_Key_NumPeriod; - - for(U32 i = 0; i < 10; i += 1) - { - os_w32_gfx_state->key_from_vkey_table[VK_NUMPAD0 + i] = (OS_Key)((U64)OS_Key_Num0 + i); - } - - for(U64 i = 0xDF, j = 0; i < 0xFF; i += 1, j += 1) - { - os_w32_gfx_state->key_from_vkey_table[i] = (OS_Key)((U64)OS_Key_Ex0 + j); - } - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Graphics System Info (Implemented Per-OS) - -internal OS_GfxInfo * -os_get_gfx_info(void) -{ - return &os_w32_gfx_state->gfx_info; -} - -//////////////////////////////// -//~ rjf: @os_hooks Clipboards (Implemented Per-OS) - -internal void -os_set_clipboard_text(String8 string) -{ - Temp scratch = scratch_begin(0, 0); - if(OpenClipboard(0)) - { - EmptyClipboard(); - String16 string16 = str16_from_8(scratch.arena, string); - HANDLE string16_copy_handle = GlobalAlloc(GMEM_MOVEABLE, (string16.size+1)*sizeof(string16.str[0])); - if(string16_copy_handle) - { - U16 *copy_buffer = (U16 *)GlobalLock(string16_copy_handle); - MemoryCopy(copy_buffer, string16.str, string16.size*sizeof(string16.str[0])); - copy_buffer[string16.size] = 0; - GlobalUnlock(string16_copy_handle); - SetClipboardData(CF_UNICODETEXT, string16_copy_handle); - } - CloseClipboard(); - } - scratch_end(scratch); -} - -internal String8 -os_get_clipboard_text(Arena *arena) -{ - String8 result = {0}; - if(IsClipboardFormatAvailable(CF_UNICODETEXT) && - OpenClipboard(0)) - { - HANDLE data_handle = GetClipboardData(CF_UNICODETEXT); - if(data_handle) - { - U16 *buffer = (U16 *)GlobalLock(data_handle); - if(buffer) - { - U64 size = cstring16_length(buffer); - String16 string16 = str16(buffer, size); - result = str8_from_16(arena, string16); - GlobalUnlock(data_handle); - } - } - CloseClipboard(); - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Windows (Implemented Per-OS) - -internal OS_Handle -os_window_open(Rng2F32 rect, OS_WindowFlags flags, String8 title) -{ - B32 custom_border = !!(flags & OS_WindowFlag_CustomBorder); - B32 use_default_position = !!(flags & OS_WindowFlag_UseDefaultPosition); - Vec2F32 pos = rect.p0; - Vec2F32 dim = dim_2f32(rect); - - //- rjf: make hwnd - HWND hwnd = 0; - { - Temp scratch = scratch_begin(0, 0); - String16 title16 = str16_from_8(scratch.arena, title); - os_w32_new_window_custom_border = custom_border; - hwnd = CreateWindowExW(WS_EX_APPWINDOW | WS_EX_NOREDIRECTIONBITMAP, - L"graphical-window", - (WCHAR*)title16.str, - WS_OVERLAPPEDWINDOW | WS_SIZEBOX, - use_default_position ? CW_USEDEFAULT : (S32)pos.x, - use_default_position ? CW_USEDEFAULT : (S32)pos.y, - (S32)dim.x, - (S32)dim.y, - 0, 0, - os_w32_gfx_state->hInstance, - 0); - DragAcceptFiles(hwnd, 1); - os_w32_new_window_custom_border = 0; - scratch_end(scratch); - } - - //- rjf- make/fill window - OS_W32_Window *window = os_w32_window_alloc(); - { - window->hwnd = hwnd; - window->hdc = GetDC(hwnd); - if(w32_GetDpiForWindow_func != 0) - { - window->dpi = (F32)w32_GetDpiForWindow_func(hwnd); - } - else - { - window->dpi = 96.f; - } - } - - //- rjf: early detection of composition - { - BOOL enabled = 0; - DwmIsCompositionEnabled(&enabled); - window->custom_border_composition_enabled = enabled; - } - - //- rjf: custom border - if(flags & OS_WindowFlag_CustomBorder) - { - window->custom_border = 1; - window->paint_arena = arena_alloc(); - } - - //- rjf: convert to handle + return - OS_Handle result = os_w32_handle_from_window(window); - return result; -} - -internal void -os_window_close(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - os_w32_window_release(window); -} - -internal void -os_window_set_title(OS_Handle handle, String8 title) -{ - Temp scratch = scratch_begin(0, 0); - OS_W32_Window *window = os_w32_window_from_handle(handle); - String16 title16 = str16_from_8(scratch.arena, title); - SetWindowTextW(window->hwnd, (WCHAR *)title16.str); - scratch_end(scratch); -} - -internal void -os_window_first_paint(OS_Handle window_handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(window_handle); - window->first_paint_done = 1; - ShowWindow(window->hwnd, SW_SHOW); - if(window->maximized) - { - ShowWindow(window->hwnd, SW_MAXIMIZE); - } -} - -internal void -os_window_focus(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - SetForegroundWindow(window->hwnd); - SetFocus(window->hwnd); -} - -internal B32 -os_window_is_focused(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - HWND active_hwnd = GetActiveWindow(); - return active_hwnd == window->hwnd; -} - -internal B32 -os_window_is_fullscreen(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - DWORD window_style = GetWindowLong(window->hwnd, GWL_STYLE); - return !(window_style & WS_OVERLAPPEDWINDOW); -} - -internal void -os_window_set_fullscreen(OS_Handle handle, B32 fullscreen) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - DWORD window_style = GetWindowLong(window->hwnd, GWL_STYLE); - B32 is_fullscreen_already = os_window_is_fullscreen(handle); - if(fullscreen) - { - if(!is_fullscreen_already) - { - GetWindowPlacement(window->hwnd, &window->last_window_placement); - } - MONITORINFO monitor_info = {sizeof(monitor_info)}; - if(GetMonitorInfo(MonitorFromWindow(window->hwnd, MONITOR_DEFAULTTOPRIMARY), &monitor_info)) - { - SetWindowLong(window->hwnd, GWL_STYLE, window_style & ~WS_OVERLAPPEDWINDOW); - SetWindowPos(window->hwnd, HWND_TOP, - monitor_info.rcMonitor.left, - monitor_info.rcMonitor.top, - monitor_info.rcMonitor.right - monitor_info.rcMonitor.left, - monitor_info.rcMonitor.bottom - monitor_info.rcMonitor.top, - SWP_NOOWNERZORDER | SWP_FRAMECHANGED); - } - } - else - { - SetWindowLong(window->hwnd, GWL_STYLE, window_style | WS_OVERLAPPEDWINDOW); - SetWindowPlacement(window->hwnd, &window->last_window_placement); - SetWindowPos(window->hwnd, 0, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | - SWP_NOOWNERZORDER | SWP_FRAMECHANGED); - } -} - -internal B32 -os_window_is_maximized(OS_Handle handle) -{ - B32 result = 0; - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window) - { - result = !!(IsZoomed(window->hwnd)); - } - return result; -} - -internal void -os_window_set_maximized(OS_Handle handle, B32 maximized) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window != 0) - { - if(window->first_paint_done) - { - switch(maximized) - { - default: - case 0:{ShowWindow(window->hwnd, SW_RESTORE);}break; - case 1:{ShowWindow(window->hwnd, SW_MAXIMIZE);}break; - } - } - else - { - window->maximized = maximized; - } - } -} - -internal B32 -os_window_is_minimized(OS_Handle handle) -{ - B32 result = 0; - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window) - { - result = !!(IsIconic(window->hwnd)); - } - return result; -} - -internal void -os_window_set_minimized(OS_Handle handle, B32 minimized) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window != 0 && minimized != os_window_is_minimized(handle)) - { - switch(minimized) - { - default: - case 0:{ShowWindow(window->hwnd, SW_RESTORE);}break; - case 1:{ShowWindow(window->hwnd, SW_MINIMIZE);}break; - } - } -} - -internal void -os_window_bring_to_front(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window != 0) - { - BringWindowToTop(window->hwnd); - } -} - -internal void -os_window_set_monitor(OS_Handle window_handle, OS_Handle monitor) -{ - OS_W32_Window *window = os_w32_window_from_handle(window_handle); - HMONITOR hmonitor = (HMONITOR)monitor.u64[0]; - { - MONITORINFOEXW info; - info.cbSize = sizeof(MONITORINFOEXW); - if(GetMonitorInfoW(hmonitor, (MONITORINFO *)&info)) - { - Rng2F32 existing_rect = os_rect_from_window(window_handle); - Vec2F32 window_size = dim_2f32(existing_rect); - SetWindowPos(window->hwnd, HWND_TOP, - (info.rcWork.left + info.rcWork.right)/2 - window_size.x/2, - (info.rcWork.top + info.rcWork.bottom)/2 - window_size.y/2, - window_size.x, - window_size.y, 0); - } - } -} - -internal void -os_window_clear_custom_border_data(OS_Handle handle) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window->custom_border) - { - arena_clear(window->paint_arena); - window->first_title_bar_client_area = window->last_title_bar_client_area = 0; - window->custom_border_title_thickness = 0; - window->custom_border_edge_thickness = 0; - } -} - -internal void -os_window_push_custom_title_bar(OS_Handle handle, F32 thickness) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - window->custom_border_title_thickness = thickness; -} - -internal void -os_window_push_custom_edges(OS_Handle handle, F32 thickness) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - window->custom_border_edge_thickness = thickness; -} - -internal void -os_window_push_custom_title_bar_client_area(OS_Handle handle, Rng2F32 rect) -{ - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window->custom_border) - { - OS_W32_TitleBarClientArea *area = push_array(window->paint_arena, OS_W32_TitleBarClientArea, 1); - if(area != 0) - { - area->rect = rect; - SLLQueuePush(window->first_title_bar_client_area, window->last_title_bar_client_area, area); - } - } -} - -internal Rng2F32 -os_rect_from_window(OS_Handle handle) -{ - Rng2F32 r = {0}; - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window) - { - RECT rect = {0}; - GetWindowRect(os_w32_hwnd_from_window(window), &rect); - r = os_w32_rng2f32_from_rect(rect); - } - return r; -} - -internal Rng2F32 -os_client_rect_from_window(OS_Handle handle) -{ - Rng2F32 r = {0}; - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window) - { - RECT rect = {0}; - GetClientRect(os_w32_hwnd_from_window(window), &rect); - r = os_w32_rng2f32_from_rect(rect); - } - return r; -} - -internal F32 -os_dpi_from_window(OS_Handle handle) -{ - F32 result = 96.f; - OS_W32_Window *window = os_w32_window_from_handle(handle); - if(window != 0) - { - result = window->dpi; - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks External Windows (Implemented Per-OS) - -internal OS_Handle -os_focused_external_window(void) -{ - HWND hwnd = GetForegroundWindow(); - OS_Handle result = {(U64)hwnd}; - return result; -} - -internal void -os_focus_external_window(OS_Handle handle) -{ - HWND hwnd = (HWND)handle.u64[0]; - if(hwnd != 0) - { - SetForegroundWindow(hwnd); - SetFocus(hwnd); - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Monitors (Implemented Per-OS) - -internal OS_HandleArray -os_push_monitors_array(Arena *arena) -{ - Temp scratch = scratch_begin(&arena, 1); - OS_HandleList list = {0}; - { - OS_W32_MonitorGatherBundle bundle = {arena, &list}; - EnumDisplayMonitors(0, 0, os_w32_monitor_gather_enum_proc, (LPARAM)&bundle); - } - OS_HandleArray array = os_handle_array_from_list(arena, &list); - scratch_end(scratch); - return array; -} - -internal OS_Handle -os_primary_monitor(void) -{ - POINT zero_pt = {0, 0}; - HMONITOR monitor = MonitorFromPoint(zero_pt, MONITOR_DEFAULTTOPRIMARY); - OS_Handle result = {(U64)monitor}; - return result; -} - -internal OS_Handle -os_monitor_from_window(OS_Handle window) -{ - OS_W32_Window *w = os_w32_window_from_handle(window); - HMONITOR handle = MonitorFromWindow(w->hwnd, MONITOR_DEFAULTTOPRIMARY); - OS_Handle result = {(U64)handle}; - return result; -} - -internal String8 -os_name_from_monitor(Arena *arena, OS_Handle monitor) -{ - String8 result = {0}; - HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; - MONITORINFOEXW info; - info.cbSize = sizeof(MONITORINFOEXW); - if(GetMonitorInfoW(monitor_handle, (MONITORINFO *)&info)) - { - String16 result16 = str16_cstring((U16 *)info.szDevice); - result = str8_from_16(arena, result16); - } - return result; -} - -internal Vec2F32 -os_dim_from_monitor(OS_Handle monitor) -{ - Vec2F32 result = {0}; - HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; - MONITORINFO info = {0}; - info.cbSize = sizeof(MONITORINFO); - if(GetMonitorInfoW(monitor_handle, &info)) - { - result.x = info.rcWork.right - info.rcWork.left; - result.y = info.rcWork.bottom - info.rcWork.top; - } - return result; -} - -internal F32 -os_dpi_from_monitor(OS_Handle monitor) -{ - F32 result = 96.f; - HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; - if(w32_GetDpiForMonitor_func != 0) - { - UINT dpi_x = 0; - UINT dpi_y = 0; - HRESULT hr = w32_GetDpiForMonitor_func(monitor_handle, MDT_EFFECTIVE_DPI, &dpi_x, &dpi_y); - result = (F32)dpi_x; - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Events (Implemented Per-OS) - -internal void -os_send_wakeup_event(void) -{ - PostThreadMessageA(os_w32_gfx_state->gfx_thread_tid, 0x401, 0, 0); -} - -internal OS_EventList -os_get_events(Arena *arena, B32 wait) -{ - os_w32_event_arena = arena; - MemoryZeroStruct(&os_w32_event_list); - MSG msg = {0}; - if(!wait || GetMessage(&msg, 0, 0, 0)) - { - B32 first_wait = wait; - for(;first_wait || PeekMessage(&msg, 0, 0, 0, PM_REMOVE); first_wait = 0) - { - DispatchMessage(&msg); - TranslateMessage(&msg); - if(msg.message == WM_QUIT) - { - os_w32_push_event(OS_EventKind_WindowClose, 0); - } - } - } - return os_w32_event_list; -} - -internal OS_Modifiers -os_get_modifiers(void) -{ - OS_Modifiers modifiers = 0; - if(GetKeyState(VK_CONTROL) & 0x8000) - { - modifiers |= OS_Modifier_Ctrl; - } - if(GetKeyState(VK_SHIFT) & 0x8000) - { - modifiers |= OS_Modifier_Shift; - } - if(GetKeyState(VK_MENU) & 0x8000) - { - modifiers |= OS_Modifier_Alt; - } - return modifiers; -} - -internal B32 -os_key_is_down(OS_Key key) -{ - B32 down = 0; - WPARAM vkey = os_w32_vkey_from_os_key(key); - if(GetKeyState(vkey) & 0x8000) - { - down = 1; - } - return down; -} - -internal Vec2F32 -os_mouse_from_window(OS_Handle handle) -{ - ProfBeginFunction(); - Vec2F32 v = {0}; - POINT p; - if(GetCursorPos(&p)) - { - OS_W32_Window *window = os_w32_window_from_handle(handle); - ScreenToClient(window->hwnd, &p); - v.x = (F32)p.x; - v.y = (F32)p.y; - } - ProfEnd(); - return v; -} - -//////////////////////////////// -//~ rjf: @os_hooks Cursors (Implemented Per-OS) - -internal void -os_set_cursor(OS_Cursor cursor) -{ - B32 valid_cursor = 1; - HCURSOR hcursor = 0; - switch(cursor) - { - default: {valid_cursor = 0;}break; -#define Win32CursorXList(X) \ -X(Pointer, IDC_ARROW) \ -X(IBar, IDC_IBEAM) \ -X(LeftRight, IDC_SIZEWE) \ -X(UpDown, IDC_SIZENS) \ -X(DownRight, IDC_SIZENWSE) \ -X(UpRight, IDC_SIZENESW) \ -X(UpDownLeftRight, IDC_SIZEALL) \ -X(HandPoint, IDC_HAND)\ -X(Disabled, IDC_NO) -#define CursorCase(E,R) case OS_Cursor_##E:{ \ -local_persist HCURSOR curs = 0; \ -if (curs == 0){ curs = LoadCursor(NULL, R); } \ -hcursor = curs; }break; - Win32CursorXList(CursorCase) -#undef CursorCase -#undef Win32CursorXList - } - if(valid_cursor && !os_w32_resizing) - { - if(hcursor != os_w32_gfx_state->hCursor) - { - PostMessage(0, WM_SETCURSOR, 0, 0); - POINT p = {0}; - GetCursorPos(&p); - SetCursorPos(p.x, p.y); - } - os_w32_gfx_state->hCursor = hcursor; - } -} - -//////////////////////////////// -//~ rjf: @os_hooks Native User-Facing Graphical Messages (Implemented Per-OS) - -internal void -os_graphical_message(B32 error, String8 title, String8 message) -{ - Temp scratch = scratch_begin(0, 0); - String16 title16 = str16_from_8(scratch.arena, title); - String16 message16 = str16_from_8(scratch.arena, message); - MessageBoxW(0, (WCHAR *)message16.str, (WCHAR *)title16.str, MB_OK|(!!error*MB_ICONERROR)); - scratch_end(scratch); -} - -internal String8 -os_graphical_pick_file(Arena *arena, String8 initial_path) -{ - String8 result = {0}; - { - Temp scratch = scratch_begin(&arena, 1); - U64 buffer_size = 4096; - U16 *buffer = push_array(scratch.arena, U16, buffer_size); - OPENFILENAMEW params = {sizeof(params)}; - { - params.lpstrFile = (WCHAR *)buffer; - params.nMaxFile = buffer_size; - params.lpstrInitialDir = (WCHAR *)str16_from_8(scratch.arena, initial_path).str; - } - if(GetOpenFileNameW(¶ms)) - { - result = str8_from_16(arena, str16_cstring((U16 *)buffer)); - } - scratch_end(scratch); - } - return result; -} - -//////////////////////////////// -//~ rjf: @os_hooks Shell Operations - -internal void -os_show_in_filesystem_ui(String8 path) -{ - Temp scratch = scratch_begin(0, 0); - String8 path_copy = push_str8_copy(scratch.arena, path); - for(U64 idx = 0; idx < path_copy.size; idx += 1) - { - if(path_copy.str[idx] == '/') - { - path_copy.str[idx] = '\\'; - } - } - String16 path16 = str16_from_8(scratch.arena, path_copy); - SFGAOF flags = 0; - PIDLIST_ABSOLUTE list = 0; - if(path16.size != 0 && SUCCEEDED(SHParseDisplayName(path16.str, 0, &list, 0, &flags))) - { - HRESULT hr = SHOpenFolderAndSelectItems(list, 0, 0, 0); - CoTaskMemFree(list); - (void)hr; - } - scratch_end(scratch); -} - -internal void -os_open_in_browser(String8 url) -{ - Temp scratch = scratch_begin(0, 0); - String16 url16 = str16_from_8(scratch.arena, url); - ShellExecuteW(0, L"open", (WCHAR *)url16.str, 0, 0, SW_SHOWNORMAL); - scratch_end(scratch); -} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Modern Windows SDK Functions +// +// (We must dynamically link to them, since they can be missing in older SDKs) + +typedef BOOL w32_SetProcessDpiAwarenessContext_Type(void* value); +typedef UINT w32_GetDpiForWindow_Type(HWND hwnd); +typedef HRESULT w32_GetDpiForMonitor_Type(HMONITOR hmonitor, MONITOR_DPI_TYPE dpiType, UINT *dpiX, UINT *dpiY); +typedef int w32_GetSystemMetricsForDpi_Type(int nIndex, UINT dpi); +#define w32_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 ((void*)-4) +global w32_GetDpiForWindow_Type *w32_GetDpiForWindow_func = 0; +global w32_GetDpiForMonitor_Type *w32_GetDpiForMonitor_func = 0; +global w32_GetSystemMetricsForDpi_Type *w32_GetSystemMetricsForDpi_func = 0; + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal Rng2F32 +w32_wm_rng2f32_from_rect(RECT rect) +{ + Rng2F32 r = {0}; + r.x0 = (F32)rect.left; + r.x1 = (F32)rect.right; + r.y0 = (F32)rect.top; + r.y1 = (F32)rect.bottom; + return r; +} + +//////////////////////////////// +//~ rjf: Windows + +internal WM_Window +w32_wm_handle_from_window(W32_WM_Window *window) +{ + WM_Window handle = {(U64)window}; + return handle; +} + +internal W32_WM_Window * +w32_wm_window_from_handle(WM_Window handle) +{ + W32_WM_Window *window = (W32_WM_Window *)handle.u64[0]; + return window; +} + +internal W32_WM_Window * +w32_wm_window_from_hwnd(HWND hwnd) +{ + W32_WM_Window *result = 0; + for(W32_WM_Window *w = w32_wm_state->first_window; w; w = w->next) + { + if(w->hwnd == hwnd) + { + result = w; + break; + } + } + return result; +} + +internal HWND +w32_wm_hwnd_from_window(W32_WM_Window *window) +{ + return window->hwnd; +} + +internal W32_WM_Window * +w32_wm_window_alloc(void) +{ + W32_WM_Window *result = w32_wm_state->free_window; + if(result) + { + SLLStackPop(w32_wm_state->free_window); + } + else + { + result = push_array_no_zero(w32_wm_state->arena, W32_WM_Window, 1); + } + MemoryZeroStruct(result); + if(result) + { + DLLPushBack(w32_wm_state->first_window, w32_wm_state->last_window, result); + } + result->last_window_placement.length = sizeof(WINDOWPLACEMENT); + return result; +} + +internal void +w32_wm_window_release(W32_WM_Window *window) +{ + if(window->paint_arena != 0) + { + arena_release(window->paint_arena); + } + ReleaseDC(window->hwnd, window->hdc); + DestroyWindow(window->hwnd); + DLLRemove(w32_wm_state->first_window, w32_wm_state->last_window, window); + SLLStackPush(w32_wm_state->free_window, window); +} + +internal WM_Event * +w32_wm_push_event(WM_EventKind kind, W32_WM_Window *window) +{ + WM_Event *result = wm_event_list_push_new(w32_wm_event_arena, &w32_wm_event_list, kind); + result->window = w32_wm_handle_from_window(window); + result->modifiers = wm_get_modifiers(); + return result; +} + +internal WM_Key +w32_wm_os_key_from_vkey(WPARAM vkey) +{ + local_persist B32 first = 1; + local_persist WM_Key key_table[256]; + if (first){ + first = 0; + MemoryZeroArray(key_table); + + key_table[(unsigned int)'A'] = WM_Key_A; + key_table[(unsigned int)'B'] = WM_Key_B; + key_table[(unsigned int)'C'] = WM_Key_C; + key_table[(unsigned int)'D'] = WM_Key_D; + key_table[(unsigned int)'E'] = WM_Key_E; + key_table[(unsigned int)'F'] = WM_Key_F; + key_table[(unsigned int)'G'] = WM_Key_G; + key_table[(unsigned int)'H'] = WM_Key_H; + key_table[(unsigned int)'I'] = WM_Key_I; + key_table[(unsigned int)'J'] = WM_Key_J; + key_table[(unsigned int)'K'] = WM_Key_K; + key_table[(unsigned int)'L'] = WM_Key_L; + key_table[(unsigned int)'M'] = WM_Key_M; + key_table[(unsigned int)'N'] = WM_Key_N; + key_table[(unsigned int)'O'] = WM_Key_O; + key_table[(unsigned int)'P'] = WM_Key_P; + key_table[(unsigned int)'Q'] = WM_Key_Q; + key_table[(unsigned int)'R'] = WM_Key_R; + key_table[(unsigned int)'S'] = WM_Key_S; + key_table[(unsigned int)'T'] = WM_Key_T; + key_table[(unsigned int)'U'] = WM_Key_U; + key_table[(unsigned int)'V'] = WM_Key_V; + key_table[(unsigned int)'W'] = WM_Key_W; + key_table[(unsigned int)'X'] = WM_Key_X; + key_table[(unsigned int)'Y'] = WM_Key_Y; + key_table[(unsigned int)'Z'] = WM_Key_Z; + + for (U64 i = '0', j = WM_Key_0; i <= '9'; i += 1, j += 1){ + key_table[i] = (WM_Key)j; + } + for (U64 i = VK_NUMPAD0, j = WM_Key_0; i <= VK_NUMPAD9; i += 1, j += 1){ + key_table[i] = (WM_Key)j; + } + for (U64 i = VK_F1, j = WM_Key_F1; i <= VK_F24; i += 1, j += 1){ + key_table[i] = (WM_Key)j; + } + + key_table[VK_SPACE] = WM_Key_Space; + key_table[VK_OEM_3] = WM_Key_Tick; + key_table[VK_OEM_MINUS] = WM_Key_Minus; + key_table[VK_OEM_PLUS] = WM_Key_Equal; + key_table[VK_OEM_4] = WM_Key_LeftBracket; + key_table[VK_OEM_6] = WM_Key_RightBracket; + key_table[VK_OEM_1] = WM_Key_Semicolon; + key_table[VK_OEM_7] = WM_Key_Quote; + key_table[VK_OEM_COMMA] = WM_Key_Comma; + key_table[VK_OEM_PERIOD]= WM_Key_Period; + key_table[VK_OEM_2] = WM_Key_Slash; + key_table[VK_OEM_5] = WM_Key_BackSlash; + + key_table[VK_TAB] = WM_Key_Tab; + key_table[VK_PAUSE] = WM_Key_Pause; + key_table[VK_ESCAPE] = WM_Key_Esc; + + key_table[VK_UP] = WM_Key_Up; + key_table[VK_LEFT] = WM_Key_Left; + key_table[VK_DOWN] = WM_Key_Down; + key_table[VK_RIGHT] = WM_Key_Right; + + key_table[VK_BACK] = WM_Key_Backspace; + key_table[VK_RETURN] = WM_Key_Return; + + key_table[VK_DELETE] = WM_Key_Delete; + key_table[VK_INSERT] = WM_Key_Insert; + key_table[VK_PRIOR] = WM_Key_PageUp; + key_table[VK_NEXT] = WM_Key_PageDown; + key_table[VK_HOME] = WM_Key_Home; + key_table[VK_END] = WM_Key_End; + + key_table[VK_CAPITAL] = WM_Key_CapsLock; + key_table[VK_NUMLOCK] = WM_Key_NumLock; + key_table[VK_SCROLL] = WM_Key_ScrollLock; + key_table[VK_APPS] = WM_Key_Menu; + + key_table[VK_CONTROL] = WM_Key_Ctrl; + key_table[VK_LCONTROL] = WM_Key_Ctrl; + key_table[VK_RCONTROL] = WM_Key_Ctrl; + key_table[VK_SHIFT] = WM_Key_Shift; + key_table[VK_LSHIFT] = WM_Key_Shift; + key_table[VK_RSHIFT] = WM_Key_Shift; + key_table[VK_MENU] = WM_Key_Alt; + key_table[VK_LMENU] = WM_Key_Alt; + key_table[VK_RMENU] = WM_Key_Alt; + + key_table[VK_DIVIDE] = WM_Key_NumSlash; + key_table[VK_MULTIPLY] = WM_Key_NumStar; + key_table[VK_SUBTRACT] = WM_Key_NumMinus; + key_table[VK_ADD] = WM_Key_NumPlus; + key_table[VK_DECIMAL] = WM_Key_NumPeriod; + + for (U32 i = 0; i < 10; i += 1){ + key_table[VK_NUMPAD0 + i] = (WM_Key)((U64)WM_Key_Num0 + i); + } + + for (U64 i = 0xDF, j = 0; i < 0xFF; i += 1, j += 1){ + key_table[i] = (WM_Key)((U64)WM_Key_Ex0 + j); + } + } + + WM_Key key = key_table[vkey&bitmask8]; + return key; +} + +internal WPARAM +w32_wm_vkey_from_os_key(WM_Key key) +{ + WPARAM result = 0; + { + local_persist B32 initialized = 0; + local_persist WPARAM vkey_table[WM_Key_COUNT] = {0}; + if(initialized == 0) + { + initialized = 1; + vkey_table[WM_Key_Esc] = VK_ESCAPE; + for(WM_Key key = WM_Key_F1; key <= WM_Key_F24; key = (WM_Key)(key+1)) + { + vkey_table[key] = VK_F1+(key-WM_Key_F1); + } + vkey_table[WM_Key_Tick] = VK_OEM_3; + for(WM_Key key = WM_Key_0; key <= WM_Key_9; key = (WM_Key)(key+1)) + { + vkey_table[key] = '0'+(key-WM_Key_0); + } + vkey_table[WM_Key_Minus] = VK_OEM_MINUS; + vkey_table[WM_Key_Equal] = VK_OEM_PLUS; + vkey_table[WM_Key_Backspace] = VK_BACK; + vkey_table[WM_Key_Tab] = VK_TAB; + vkey_table[WM_Key_Q] = 'Q'; + vkey_table[WM_Key_W] = 'W'; + vkey_table[WM_Key_E] = 'E'; + vkey_table[WM_Key_R] = 'R'; + vkey_table[WM_Key_T] = 'T'; + vkey_table[WM_Key_Y] = 'Y'; + vkey_table[WM_Key_U] = 'U'; + vkey_table[WM_Key_I] = 'I'; + vkey_table[WM_Key_O] = 'O'; + vkey_table[WM_Key_P] = 'P'; + vkey_table[WM_Key_LeftBracket] = VK_OEM_4; + vkey_table[WM_Key_RightBracket] = VK_OEM_6; + vkey_table[WM_Key_BackSlash] = VK_OEM_5; + vkey_table[WM_Key_CapsLock] = VK_CAPITAL; + vkey_table[WM_Key_A] = 'A'; + vkey_table[WM_Key_S] = 'S'; + vkey_table[WM_Key_D] = 'D'; + vkey_table[WM_Key_F] = 'F'; + vkey_table[WM_Key_G] = 'G'; + vkey_table[WM_Key_H] = 'H'; + vkey_table[WM_Key_J] = 'J'; + vkey_table[WM_Key_K] = 'K'; + vkey_table[WM_Key_L] = 'L'; + vkey_table[WM_Key_Semicolon] = VK_OEM_1; + vkey_table[WM_Key_Quote] = VK_OEM_7; + vkey_table[WM_Key_Return] = VK_RETURN; + vkey_table[WM_Key_Shift] = VK_SHIFT; + vkey_table[WM_Key_Z] = 'Z'; + vkey_table[WM_Key_X] = 'X'; + vkey_table[WM_Key_C] = 'C'; + vkey_table[WM_Key_V] = 'V'; + vkey_table[WM_Key_B] = 'B'; + vkey_table[WM_Key_N] = 'N'; + vkey_table[WM_Key_M] = 'M'; + vkey_table[WM_Key_Comma] = VK_OEM_COMMA; + vkey_table[WM_Key_Period] = VK_OEM_PERIOD; + vkey_table[WM_Key_Slash] = VK_OEM_2; + vkey_table[WM_Key_Ctrl] = VK_CONTROL; + vkey_table[WM_Key_Alt] = VK_MENU; + vkey_table[WM_Key_Space] = VK_SPACE; + vkey_table[WM_Key_Menu] = VK_APPS; + vkey_table[WM_Key_ScrollLock] = VK_SCROLL; + vkey_table[WM_Key_Pause] = VK_PAUSE; + vkey_table[WM_Key_Insert] = VK_INSERT; + vkey_table[WM_Key_Home] = VK_HOME; + vkey_table[WM_Key_PageUp] = VK_PRIOR; + vkey_table[WM_Key_Delete] = VK_DELETE; + vkey_table[WM_Key_End] = VK_END; + vkey_table[WM_Key_PageDown] = VK_NEXT; + vkey_table[WM_Key_Up] = VK_UP; + vkey_table[WM_Key_Left] = VK_LEFT; + vkey_table[WM_Key_Down] = VK_DOWN; + vkey_table[WM_Key_Right] = VK_RIGHT; + for(WM_Key key = WM_Key_Ex0; key <= WM_Key_Ex29; key = (WM_Key)(key+1)) + { + vkey_table[key] = 0xDF + (key-WM_Key_Ex0); + } + vkey_table[WM_Key_NumLock] = VK_NUMLOCK; + vkey_table[WM_Key_NumSlash] = VK_DIVIDE; + vkey_table[WM_Key_NumStar] = VK_MULTIPLY; + vkey_table[WM_Key_NumMinus] = VK_SUBTRACT; + vkey_table[WM_Key_NumPlus] = VK_ADD; + vkey_table[WM_Key_NumPeriod] = VK_DECIMAL; + vkey_table[WM_Key_Num0] = VK_NUMPAD0; + vkey_table[WM_Key_Num1] = VK_NUMPAD1; + vkey_table[WM_Key_Num2] = VK_NUMPAD2; + vkey_table[WM_Key_Num3] = VK_NUMPAD3; + vkey_table[WM_Key_Num4] = VK_NUMPAD4; + vkey_table[WM_Key_Num5] = VK_NUMPAD5; + vkey_table[WM_Key_Num6] = VK_NUMPAD6; + vkey_table[WM_Key_Num7] = VK_NUMPAD7; + vkey_table[WM_Key_Num8] = VK_NUMPAD8; + vkey_table[WM_Key_Num9] = VK_NUMPAD9; + vkey_table[WM_Key_LeftMouseButton] = VK_LBUTTON; + vkey_table[WM_Key_MiddleMouseButton] = VK_MBUTTON; + vkey_table[WM_Key_RightMouseButton] = VK_RBUTTON; + } + result = vkey_table[key]; + } + return result; +} + +internal LRESULT +w32_wm_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + ProfBeginFunction(); + LRESULT result = 0; + B32 good = 1; + if(w32_wm_event_arena == 0) + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + good = 0; + } + if(good) + { + W32_WM_Window *window = w32_wm_window_from_hwnd(hwnd); + WM_Window window_handle = w32_wm_handle_from_window(window); + B32 release = 0; + + switch(uMsg) + { + default: + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + }break; + + case WM_ENTERSIZEMOVE: + { + w32_wm_resizing = 1; + }break; + + case WM_EXITSIZEMOVE: + { + w32_wm_resizing = 0; + }break; + + case WM_SIZE: + case WM_PAINT: + { + PAINTSTRUCT ps = {0}; + BeginPaint(hwnd, &ps); + update(); + EndPaint(hwnd, &ps); + DwmFlush(); + }break; + + case WM_CLOSE: + { + w32_wm_push_event(WM_EventKind_WindowClose, window); + wm_send_wakeup_event(); + }break; + + case WM_LBUTTONUP: + case WM_MBUTTONUP: + case WM_RBUTTONUP: + { + release = 1; + } // fallthrough; + case WM_LBUTTONDOWN: + case WM_MBUTTONDOWN: + case WM_RBUTTONDOWN: + { + WM_Event *event = w32_wm_push_event(release ? WM_EventKind_Release : WM_EventKind_Press, window); + switch (uMsg) + { + case WM_LBUTTONUP: case WM_LBUTTONDOWN: + { + event->key = WM_Key_LeftMouseButton; + }break; + case WM_MBUTTONUP: case WM_MBUTTONDOWN: + { + event->key = WM_Key_MiddleMouseButton; + }break; + case WM_RBUTTONUP: case WM_RBUTTONDOWN: + { + event->key = WM_Key_RightMouseButton; + }break; + } + event->pos.x = (F32)(S16)LOWORD(lParam); + event->pos.y = (F32)(S16)HIWORD(lParam); + if(release) + { + ReleaseCapture(); + } + else + { + SetCapture(hwnd); + } + }break; + + case WM_MOUSEMOVE: + { + WM_Event *event = w32_wm_push_event(WM_EventKind_MouseMove, window); + event->pos.x = (F32)(S16)LOWORD(lParam); + event->pos.y = (F32)(S16)HIWORD(lParam); + }break; + + case WM_MOUSEWHEEL: + { + S16 wheel_delta = HIWORD(wParam); + WM_Event *event = w32_wm_push_event(WM_EventKind_Scroll, window); + POINT p; + p.x = (S32)(S16)LOWORD(lParam); + p.y = (S32)(S16)HIWORD(lParam); + ScreenToClient(window->hwnd, &p); + event->pos.x = (F32)p.x; + event->pos.y = (F32)p.y; + event->delta = v2f32(0.f, -(F32)wheel_delta); + }break; + + case WM_MOUSEHWHEEL: + { + S16 wheel_delta = HIWORD(wParam); + WM_Event *event = w32_wm_push_event(WM_EventKind_Scroll, window); + POINT p; + p.x = (S32)(S16)LOWORD(lParam); + p.y = (S32)(S16)HIWORD(lParam); + ScreenToClient(window->hwnd, &p); + event->pos.x = (F32)p.x; + event->pos.y = (F32)p.y; + event->delta = v2f32((F32)wheel_delta, 0.f); + }break; + + case WM_SYSKEYDOWN: case WM_SYSKEYUP: + { + if(wParam != VK_MENU && (wParam < VK_F1 || VK_F24 < wParam || wParam == VK_F4)) + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + } // fallthrough; + case WM_KEYDOWN: case WM_KEYUP: + { + B32 was_down = (lParam & bit31); + B32 is_down = !(lParam & bit32); + + B32 is_repeat = 0; + if(!is_down) + { + release = 1; + } + else if(was_down) + { + is_repeat = 1; + } + + B32 right_sided = 0; + if ((lParam & bit25) && + (wParam == VK_CONTROL || wParam == VK_RCONTROL || + wParam == VK_MENU || wParam == VK_RMENU || + wParam == VK_SHIFT || wParam == VK_RSHIFT)) + { + right_sided = 1; + } + + WM_Event *event = w32_wm_push_event(release ? WM_EventKind_Release : WM_EventKind_Press, window); + event->key = w32_wm_os_key_from_vkey(wParam); + event->repeat_count = lParam & bitmask16; + event->is_repeat = is_repeat; + event->right_sided = right_sided; + if(event->key == WM_Key_Alt && event->modifiers & WM_Modifier_Alt) { event->modifiers &= ~WM_Modifier_Alt; } + if(event->key == WM_Key_Ctrl && event->modifiers & WM_Modifier_Ctrl) { event->modifiers &= ~WM_Modifier_Ctrl; } + if(event->key == WM_Key_Shift && event->modifiers & WM_Modifier_Shift) { event->modifiers &= ~WM_Modifier_Shift; } + }break; + + case WM_SYSCHAR: + { + WORD vk_code = LOWORD(wParam); + if(vk_code == VK_SPACE) + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + else + { + result = 0; + } + }break; + + case WM_CHAR: + { + U32 character = wParam; + if(character >= 32 && character != 127) + { + WM_Event *event = w32_wm_push_event(WM_EventKind_Text, window); + if(lParam & bit29) + { + event->modifiers |= WM_Modifier_Alt; + } + event->character = character; + } + }break; + + case WM_KILLFOCUS: + { + w32_wm_push_event(WM_EventKind_WindowLoseFocus, window); + ReleaseCapture(); + }break; + + case WM_SETCURSOR: + { + Rng2F32 window_rect = wm_client_rect_from_window(window_handle); + Vec2F32 mouse = wm_mouse_from_window(window_handle); + B32 on_border = 0; + DWORD window_style = window ? GetWindowLong(window->hwnd, GWL_STYLE) : 0; + B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); + if(window != 0 && window->custom_border && !is_fullscreen) + { + B32 on_border_x = (mouse.x <= window->custom_border_edge_thickness || window_rect.x1-window->custom_border_edge_thickness <= mouse.x); + B32 on_border_y = (mouse.y <= window->custom_border_edge_thickness || window_rect.y1-window->custom_border_edge_thickness <= mouse.y); + on_border = on_border_x || on_border_y; + } + if(!w32_wm_resizing && !on_border && contains_2f32(window_rect, mouse)) + { + SetCursor(w32_wm_state->hCursor); + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + }break; + + case WM_DPICHANGED: + { + F32 new_dpi = (F32)(wParam & 0xffff); + RECT suggested_new_rect = *(RECT *)lParam; + window->dpi = new_dpi; + SetWindowPos(window->hwnd, 0, + suggested_new_rect.left, + suggested_new_rect.top, + suggested_new_rect.right - suggested_new_rect.left, + suggested_new_rect.bottom - suggested_new_rect.top, + 0); + }break; + + //- rjf: [file drop] + case WM_DROPFILES: + { + HDROP drop = (HDROP)wParam; + POINT drop_pt = {0}; + DragQueryPoint(drop, &drop_pt); + U64 num_files_dropped = DragQueryFile(drop, 0xffffffff, 0, 0); + WM_Event *event = w32_wm_push_event(WM_EventKind_FileDrop, window); + event->pos = v2f32((F32)drop_pt.x, (F32)drop_pt.y); + for(U64 idx = 0; idx < num_files_dropped; idx += 1) + { + U64 name_size = DragQueryFile(drop, idx, 0, 0) + 1; + U8 *name_ptr = push_array(w32_wm_event_arena, U8, name_size); + DragQueryFile(drop, idx, (char *)name_ptr, name_size); + String8 path_string = str8(name_ptr, name_size - 1); + String8 path_string__normalized = path_normalized_from_string(w32_wm_event_arena, path_string); + str8_list_push(w32_wm_event_arena, &event->strings, path_string__normalized); + } + DragFinish(drop); + }break; + + //- rjf: [custom border] + case WM_NCPAINT: + { + if(w32_wm_new_window_custom_border || (window != 0 && window->custom_border && !window->custom_border_composition_enabled)) + { + result = 0; + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + }break; + case WM_DWMCOMPOSITIONCHANGED: + { + if(window != 0 && window->custom_border) + { + BOOL enabled = 0; + DwmIsCompositionEnabled(&enabled); + window->custom_border_composition_enabled = enabled; + if(enabled) + { + MARGINS m = { 0, 0, 1, 0 }; + DwmExtendFrameIntoClientArea(hwnd, &m); + DWORD dwmncrp_enabled = DWMNCRP_ENABLED; + DwmSetWindowAttribute(hwnd, DWMWA_NCRENDERING_POLICY, &enabled, sizeof(dwmncrp_enabled)); + } + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + }break; + case WM_WINDOWPOSCHANGED: + { + result = 0; + }break; + case WM_NCUAHDRAWCAPTION: + case WM_NCUAHDRAWFRAME: + { + // NOTE(rjf): undocumented messages for drawing themed window borders. + if(w32_wm_new_window_custom_border || (window != 0 && window->custom_border)) + { + result = 0; + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + }break; + case WM_SETICON: + case WM_SETTEXT: + { + if(w32_wm_new_window_custom_border || (window && window->custom_border && !window->custom_border_composition_enabled)) + { + // NOTE(rjf): + // https://blogs.msdn.microsoft.com/wpfsdk/2008/09/08/custom-window-chrome-in-wpf/ + LONG_PTR old_style = GetWindowLongPtrW(hwnd, GWL_STYLE); + SetWindowLongPtrW(hwnd, GWL_STYLE, old_style & ~WS_VISIBLE); + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + SetWindowLongPtrW(hwnd, GWL_STYLE, old_style); + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + }break; + + //- rjf: [custom border] activation - without this `result`, stuff flickers. + case WM_NCACTIVATE: + { + if(!w32_wm_new_window_custom_border && (window == 0 || window->custom_border == 0)) + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + else + { + result = DefWindowProcW(hwnd, uMsg, wParam, -1); + } + }break; + + //- rjf: [custom border] client/window size calculation + case WM_NCCALCSIZE: + { + if(w32_wm_new_window_custom_border || (window && window->custom_border)) + { + F32 dpi = w32_GetDpiForWindow_func ? (F32)w32_GetDpiForWindow_func(hwnd) : 96.f; + S32 frame_x = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXFRAME, dpi) : GetSystemMetrics(SM_CXFRAME); + S32 frame_y = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CYFRAME, dpi) : GetSystemMetrics(SM_CYFRAME); + S32 padding = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXPADDEDBORDER, dpi) : GetSystemMetrics(SM_CXPADDEDBORDER); + DWORD window_style = GetWindowLong(hwnd, GWL_STYLE); + B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); + if(!is_fullscreen) + { + RECT* rect = wParam == 0 ? (RECT*)lParam : ((NCCALCSIZE_PARAMS*)lParam)->rgrc; + rect->right -= frame_x + padding; + rect->left += frame_x + padding; + rect->bottom -= frame_y + padding; + + if(IsMaximized(hwnd)) + { + rect->top += frame_y + padding; + // If we do not do this hidden taskbar can not be unhidden on mouse hover + // Unfortunately it can create an ugly bottom border when maximized... + rect->bottom -= 1; + } + } + } + else + { + result = DefWindowProc(hwnd, uMsg, wParam, lParam); + } + }break; + + //- rjf: [custom border] client/window hit testing (mapping mouse -> action) + case WM_NCHITTEST: + { + DWORD window_style = window ? GetWindowLong(window->hwnd, GWL_STYLE) : 0; + B32 is_fullscreen = !(window_style & WS_OVERLAPPEDWINDOW); + if(window == 0 || window->custom_border == 0 || is_fullscreen) + { + result = DefWindowProcW(hwnd, uMsg, wParam, lParam); + } + else + { + B32 is_default_handled = 0; + + // Let the default procedure handle resizing areas + result = DefWindowProc(hwnd, uMsg, wParam, lParam); + switch (result) + { + case HTNOWHERE: + case HTRIGHT: + case HTLEFT: + case HTTOPLEFT: + case HTTOPRIGHT: + case HTBOTTOMRIGHT: + case HTBOTTOM: + case HTBOTTOMLEFT: + { + is_default_handled = 1; + } break; + } + + if (!is_default_handled) + { + POINT pos_monitor; + pos_monitor.x = GET_X_LPARAM(lParam); + pos_monitor.y = GET_Y_LPARAM(lParam); + POINT pos_client = pos_monitor; + ScreenToClient(hwnd, &pos_client); + + // Adjustments happening in NCCALCSIZE are messing with the detection + // of the top hit area so manually checking that. + F32 dpi = w32_GetDpiForWindow_func ? (F32)w32_GetDpiForWindow_func(hwnd) : 96.f; + S32 frame_y = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CYFRAME, dpi) : GetSystemMetrics(SM_CYFRAME); + // NOTE(rjf): it seems incorrect to apply this padding here... + // S32 padding = w32_GetSystemMetricsForDpi_func ? w32_GetSystemMetricsForDpi_func(SM_CXPADDEDBORDER, dpi) : GetSystemMetrics(SM_CXPADDEDBORDER); + + B32 is_over_top_resize = pos_client.y >= 0 && pos_client.y < frame_y; // + padding; + B32 is_over_title_bar = pos_client.y >= 0 && pos_client.y < window->custom_border_title_thickness; + + //- rjf: check against title bar client areas + B32 is_over_title_bar_client_area = 0; + for(W32_WM_TitleBarClientArea *area = window->first_title_bar_client_area; + area != 0; + area = area->next) + { + Rng2F32 rect = area->rect; + if(rect.x0 <= pos_client.x && pos_client.x < rect.x1 && + rect.y0 <= pos_client.y && pos_client.y < rect.y1) + { + is_over_title_bar_client_area = 1; + break; + } + } + + if (IsMaximized(hwnd)) + { + if (is_over_title_bar_client_area) + { + result = HTCLIENT; + } + else if (is_over_title_bar) + { + result = HTCAPTION; + } + else + { + result = HTCLIENT; + } + } + else + { + //Swap the first two conditions to choose if hovering the top border + //should prioritize resize or title bar buttons. + if (is_over_title_bar_client_area) + { + result = HTCLIENT; + } + else if (is_over_top_resize) + { + result = HTTOP; + } + else if (is_over_title_bar) + { + result = HTCAPTION; + } + else { + result = HTCLIENT; + } + } + } + } + }break; + } + } + ProfEnd(); + return result; +} + +//////////////////////////////// +//~ rjf: Monitors + +internal BOOL +w32_wm_monitor_gather_enum_proc(HMONITOR monitor, HDC hdc, LPRECT rect, LPARAM bundle_ptr) +{ + W32_WM_MonitorGatherBundle *bundle = (W32_WM_MonitorGatherBundle *)bundle_ptr; + WM_Monitor m = {(U64)monitor}; + W32_WM_MonitorGatherNode *n = push_array(bundle->arena, W32_WM_MonitorGatherNode, 1); + n->v = m; + SLLQueuePush(bundle->first_monitor, bundle->last_monitor, n); + bundle->monitor_count += 1; + return 1; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Main Initialization API (Implemented Per-OS) + +internal void +wm_init(void) +{ + //- rjf: set up base shared state + Arena *arena = arena_alloc(); + w32_wm_state = push_array(arena, W32_WM_State, 1); + w32_wm_state->arena = arena; + w32_wm_state->gfx_thread_tid = (U32)GetCurrentThreadId(); + w32_wm_state->hInstance = GetModuleHandle(0); + + //- rjf: set dpi awareness + w32_SetProcessDpiAwarenessContext_Type *SetProcessDpiAwarenessContext_func = 0; + HMODULE module = LoadLibraryA("user32.dll"); + if(module != 0) + { + SetProcessDpiAwarenessContext_func = + (w32_SetProcessDpiAwarenessContext_Type*)GetProcAddress(module, "SetProcessDpiAwarenessContext"); + w32_GetDpiForWindow_func = + (w32_GetDpiForWindow_Type*)GetProcAddress(module, "GetDpiForWindow"); + w32_GetDpiForMonitor_func = (w32_GetDpiForMonitor_Type *)GetProcAddress(module, "GetDpiForMonitor"); + w32_GetSystemMetricsForDpi_func = (w32_GetSystemMetricsForDpi_Type *)GetProcAddress(module, "GetSystemMetricsForDpi"); + FreeLibrary(module); + } + if(SetProcessDpiAwarenessContext_func != 0) + { + SetProcessDpiAwarenessContext_func(w32_DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2); + } + else + { + HMODULE shcore = LoadLibraryA("shcore.dll"); + if(shcore) + { + typedef HRESULT (WINAPI* SetProcessDpiAwareness_t)(int); + SetProcessDpiAwareness_t SetProcessDpiAwareness = (void*)GetProcAddress(shcore, "SetProcessDpiAwareness"); + if(SetProcessDpiAwareness) + { + SetProcessDpiAwareness(2); + } + FreeLibrary(shcore); + } + SetProcessDPIAware(); + } + + //- rjf: register graphical-window class + { + WNDCLASSEXW wndclass = {sizeof(wndclass)}; + wndclass.lpfnWndProc = w32_wm_wnd_proc; + wndclass.hInstance = w32_wm_state->hInstance; + wndclass.lpszClassName = L"graphical-window"; + wndclass.hCursor = LoadCursorA(0, IDC_ARROW); + wndclass.hIcon = LoadIcon(w32_wm_state->hInstance, MAKEINTRESOURCE(1)); + wndclass.style = CS_VREDRAW|CS_HREDRAW; + ATOM wndatom = RegisterClassExW(&wndclass); + (void)wndatom; + } + + //- rjf: grab graphics system info + { + w32_wm_state->gfx_info.double_click_time = GetDoubleClickTime()/1000.f; + w32_wm_state->gfx_info.caret_blink_time = GetCaretBlinkTime()/1000.f; + DEVMODEW devmodew = {0}; + if(EnumDisplaySettingsW(0, ENUM_CURRENT_SETTINGS, &devmodew)) + { + w32_wm_state->gfx_info.default_refresh_rate = (F32)devmodew.dmDisplayFrequency; + } + } + + //- rjf: set initial cursor + wm_set_cursor(WM_Cursor_Pointer); + + //- rjf: fill vkey -> WM_Key table + { + w32_wm_state->key_from_vkey_table[(unsigned int)'A'] = WM_Key_A; + w32_wm_state->key_from_vkey_table[(unsigned int)'B'] = WM_Key_B; + w32_wm_state->key_from_vkey_table[(unsigned int)'C'] = WM_Key_C; + w32_wm_state->key_from_vkey_table[(unsigned int)'D'] = WM_Key_D; + w32_wm_state->key_from_vkey_table[(unsigned int)'E'] = WM_Key_E; + w32_wm_state->key_from_vkey_table[(unsigned int)'F'] = WM_Key_F; + w32_wm_state->key_from_vkey_table[(unsigned int)'G'] = WM_Key_G; + w32_wm_state->key_from_vkey_table[(unsigned int)'H'] = WM_Key_H; + w32_wm_state->key_from_vkey_table[(unsigned int)'I'] = WM_Key_I; + w32_wm_state->key_from_vkey_table[(unsigned int)'J'] = WM_Key_J; + w32_wm_state->key_from_vkey_table[(unsigned int)'K'] = WM_Key_K; + w32_wm_state->key_from_vkey_table[(unsigned int)'L'] = WM_Key_L; + w32_wm_state->key_from_vkey_table[(unsigned int)'M'] = WM_Key_M; + w32_wm_state->key_from_vkey_table[(unsigned int)'N'] = WM_Key_N; + w32_wm_state->key_from_vkey_table[(unsigned int)'O'] = WM_Key_O; + w32_wm_state->key_from_vkey_table[(unsigned int)'P'] = WM_Key_P; + w32_wm_state->key_from_vkey_table[(unsigned int)'Q'] = WM_Key_Q; + w32_wm_state->key_from_vkey_table[(unsigned int)'R'] = WM_Key_R; + w32_wm_state->key_from_vkey_table[(unsigned int)'S'] = WM_Key_S; + w32_wm_state->key_from_vkey_table[(unsigned int)'T'] = WM_Key_T; + w32_wm_state->key_from_vkey_table[(unsigned int)'U'] = WM_Key_U; + w32_wm_state->key_from_vkey_table[(unsigned int)'V'] = WM_Key_V; + w32_wm_state->key_from_vkey_table[(unsigned int)'W'] = WM_Key_W; + w32_wm_state->key_from_vkey_table[(unsigned int)'X'] = WM_Key_X; + w32_wm_state->key_from_vkey_table[(unsigned int)'Y'] = WM_Key_Y; + w32_wm_state->key_from_vkey_table[(unsigned int)'Z'] = WM_Key_Z; + + for(U64 i = '0', j = WM_Key_0; i <= '9'; i += 1, j += 1) + { + w32_wm_state->key_from_vkey_table[i] = (WM_Key)j; + } + for(U64 i = VK_NUMPAD0, j = WM_Key_0; i <= VK_NUMPAD9; i += 1, j += 1) + { + w32_wm_state->key_from_vkey_table[i] = (WM_Key)j; + } + for(U64 i = VK_F1, j = WM_Key_F1; i <= VK_F24; i += 1, j += 1) + { + w32_wm_state->key_from_vkey_table[i] = (WM_Key)j; + } + + w32_wm_state->key_from_vkey_table[VK_SPACE] = WM_Key_Space; + w32_wm_state->key_from_vkey_table[VK_OEM_3] = WM_Key_Tick; + w32_wm_state->key_from_vkey_table[VK_OEM_MINUS] = WM_Key_Minus; + w32_wm_state->key_from_vkey_table[VK_OEM_PLUS] = WM_Key_Equal; + w32_wm_state->key_from_vkey_table[VK_OEM_4] = WM_Key_LeftBracket; + w32_wm_state->key_from_vkey_table[VK_OEM_6] = WM_Key_RightBracket; + w32_wm_state->key_from_vkey_table[VK_OEM_1] = WM_Key_Semicolon; + w32_wm_state->key_from_vkey_table[VK_OEM_7] = WM_Key_Quote; + w32_wm_state->key_from_vkey_table[VK_OEM_COMMA] = WM_Key_Comma; + w32_wm_state->key_from_vkey_table[VK_OEM_PERIOD]= WM_Key_Period; + w32_wm_state->key_from_vkey_table[VK_OEM_2] = WM_Key_Slash; + w32_wm_state->key_from_vkey_table[VK_OEM_5] = WM_Key_BackSlash; + + w32_wm_state->key_from_vkey_table[VK_TAB] = WM_Key_Tab; + w32_wm_state->key_from_vkey_table[VK_PAUSE] = WM_Key_Pause; + w32_wm_state->key_from_vkey_table[VK_ESCAPE] = WM_Key_Esc; + + w32_wm_state->key_from_vkey_table[VK_UP] = WM_Key_Up; + w32_wm_state->key_from_vkey_table[VK_LEFT] = WM_Key_Left; + w32_wm_state->key_from_vkey_table[VK_DOWN] = WM_Key_Down; + w32_wm_state->key_from_vkey_table[VK_RIGHT] = WM_Key_Right; + + w32_wm_state->key_from_vkey_table[VK_BACK] = WM_Key_Backspace; + w32_wm_state->key_from_vkey_table[VK_RETURN] = WM_Key_Return; + + w32_wm_state->key_from_vkey_table[VK_DELETE] = WM_Key_Delete; + w32_wm_state->key_from_vkey_table[VK_INSERT] = WM_Key_Insert; + w32_wm_state->key_from_vkey_table[VK_PRIOR] = WM_Key_PageUp; + w32_wm_state->key_from_vkey_table[VK_NEXT] = WM_Key_PageDown; + w32_wm_state->key_from_vkey_table[VK_HOME] = WM_Key_Home; + w32_wm_state->key_from_vkey_table[VK_END] = WM_Key_End; + + w32_wm_state->key_from_vkey_table[VK_CAPITAL] = WM_Key_CapsLock; + w32_wm_state->key_from_vkey_table[VK_NUMLOCK] = WM_Key_NumLock; + w32_wm_state->key_from_vkey_table[VK_SCROLL] = WM_Key_ScrollLock; + w32_wm_state->key_from_vkey_table[VK_APPS] = WM_Key_Menu; + + w32_wm_state->key_from_vkey_table[VK_CONTROL] = WM_Key_Ctrl; + w32_wm_state->key_from_vkey_table[VK_LCONTROL] = WM_Key_Ctrl; + w32_wm_state->key_from_vkey_table[VK_RCONTROL] = WM_Key_Ctrl; + w32_wm_state->key_from_vkey_table[VK_SHIFT] = WM_Key_Shift; + w32_wm_state->key_from_vkey_table[VK_LSHIFT] = WM_Key_Shift; + w32_wm_state->key_from_vkey_table[VK_RSHIFT] = WM_Key_Shift; + w32_wm_state->key_from_vkey_table[VK_MENU] = WM_Key_Alt; + w32_wm_state->key_from_vkey_table[VK_LMENU] = WM_Key_Alt; + w32_wm_state->key_from_vkey_table[VK_RMENU] = WM_Key_Alt; + + w32_wm_state->key_from_vkey_table[VK_DIVIDE] = WM_Key_NumSlash; + w32_wm_state->key_from_vkey_table[VK_MULTIPLY] = WM_Key_NumStar; + w32_wm_state->key_from_vkey_table[VK_SUBTRACT] = WM_Key_NumMinus; + w32_wm_state->key_from_vkey_table[VK_ADD] = WM_Key_NumPlus; + w32_wm_state->key_from_vkey_table[VK_DECIMAL] = WM_Key_NumPeriod; + + for(U32 i = 0; i < 10; i += 1) + { + w32_wm_state->key_from_vkey_table[VK_NUMPAD0 + i] = (WM_Key)((U64)WM_Key_Num0 + i); + } + + for(U64 i = 0xDF, j = 0; i < 0xFF; i += 1, j += 1) + { + w32_wm_state->key_from_vkey_table[i] = (WM_Key)((U64)WM_Key_Ex0 + j); + } + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Graphics System Info (Implemented Per-OS) + +internal WM_SystemInfo * +wm_get_system_info(void) +{ + return &w32_wm_state->gfx_info; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Clipboards (Implemented Per-OS) + +internal void +wm_set_clipboard_text(String8 string) +{ + Temp scratch = scratch_begin(0, 0); + if(OpenClipboard(0)) + { + EmptyClipboard(); + String16 string16 = str16_from_8(scratch.arena, string); + HANDLE string16_copy_handle = GlobalAlloc(GMEM_MOVEABLE, (string16.size+1)*sizeof(string16.str[0])); + if(string16_copy_handle) + { + U16 *copy_buffer = (U16 *)GlobalLock(string16_copy_handle); + MemoryCopy(copy_buffer, string16.str, string16.size*sizeof(string16.str[0])); + copy_buffer[string16.size] = 0; + GlobalUnlock(string16_copy_handle); + SetClipboardData(CF_UNICODETEXT, string16_copy_handle); + } + CloseClipboard(); + } + scratch_end(scratch); +} + +internal String8 +wm_get_clipboard_text(Arena *arena) +{ + String8 result = {0}; + if(IsClipboardFormatAvailable(CF_UNICODETEXT) && + OpenClipboard(0)) + { + HANDLE data_handle = GetClipboardData(CF_UNICODETEXT); + if(data_handle) + { + U16 *buffer = (U16 *)GlobalLock(data_handle); + if(buffer) + { + U64 size = cstring16_length(buffer); + String16 string16 = str16(buffer, size); + result = str8_from_16(arena, string16); + GlobalUnlock(data_handle); + } + } + CloseClipboard(); + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Windows (Implemented Per-OS) + +internal WM_Window +wm_window_open(Rng2F32 rect, WM_WindowFlags flags, String8 title) +{ + B32 custom_border = !!(flags & WM_WindowFlag_CustomBorder); + B32 use_default_position = !!(flags & WM_WindowFlag_UseDefaultPosition); + Vec2F32 pos = rect.p0; + Vec2F32 dim = dim_2f32(rect); + + //- rjf: make hwnd + HWND hwnd = 0; + { + Temp scratch = scratch_begin(0, 0); + String16 title16 = str16_from_8(scratch.arena, title); + w32_wm_new_window_custom_border = custom_border; + DWORD style_flags = WS_EX_APPWINDOW; +#if defined(R_BACKEND) && R_BACKEND != R_BACKEND_OPENGL + style_flags |= WS_EX_NOREDIRECTIONBITMAP; +#endif + hwnd = CreateWindowExW(style_flags, + L"graphical-window", + (WCHAR*)title16.str, + WS_OVERLAPPEDWINDOW | WS_SIZEBOX, + use_default_position ? CW_USEDEFAULT : (S32)pos.x, + use_default_position ? CW_USEDEFAULT : (S32)pos.y, + (S32)dim.x, + (S32)dim.y, + 0, 0, + w32_wm_state->hInstance, + 0); + DragAcceptFiles(hwnd, 1); + w32_wm_new_window_custom_border = 0; + scratch_end(scratch); + } + + //- rjf- make/fill window + W32_WM_Window *window = w32_wm_window_alloc(); + { + window->hwnd = hwnd; + window->hdc = GetDC(hwnd); + if(w32_GetDpiForWindow_func != 0) + { + window->dpi = (F32)w32_GetDpiForWindow_func(hwnd); + } + else + { + window->dpi = 96.f; + } + } + + //- rjf: early detection of composition + { + BOOL enabled = 0; + DwmIsCompositionEnabled(&enabled); + window->custom_border_composition_enabled = enabled; + } + + //- rjf: custom border + if(flags & WM_WindowFlag_CustomBorder) + { + window->custom_border = 1; + window->paint_arena = arena_alloc(); + } + + //- rjf: convert to handle + return + WM_Window result = w32_wm_handle_from_window(window); + return result; +} + +internal void +wm_window_close(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + w32_wm_window_release(window); +} + +internal void +wm_window_set_title(WM_Window handle, String8 title) +{ + Temp scratch = scratch_begin(0, 0); + W32_WM_Window *window = w32_wm_window_from_handle(handle); + String16 title16 = str16_from_8(scratch.arena, title); + SetWindowTextW(window->hwnd, (WCHAR *)title16.str); + scratch_end(scratch); +} + +internal void +wm_window_first_paint(WM_Window window_handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(window_handle); + window->first_paint_done = 1; + ShowWindow(window->hwnd, SW_SHOW); + if(window->maximized) + { + ShowWindow(window->hwnd, SW_MAXIMIZE); + } +} + +internal void +wm_window_focus(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + SetForegroundWindow(window->hwnd); + SetFocus(window->hwnd); +} + +internal B32 +wm_window_is_focused(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + HWND active_hwnd = GetForegroundWindow(); + return active_hwnd == window->hwnd; +} + +internal B32 +wm_window_is_fullscreen(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + DWORD window_style = GetWindowLong(window->hwnd, GWL_STYLE); + return !(window_style & WS_OVERLAPPEDWINDOW); +} + +internal void +wm_window_set_fullscreen(WM_Window handle, B32 fullscreen) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + DWORD window_style = GetWindowLong(window->hwnd, GWL_STYLE); + B32 is_fullscreen_already = wm_window_is_fullscreen(handle); + if(fullscreen) + { + if(!is_fullscreen_already) + { + GetWindowPlacement(window->hwnd, &window->last_window_placement); + } + MONITORINFO monitor_info = {sizeof(monitor_info)}; + if(GetMonitorInfo(MonitorFromWindow(window->hwnd, MONITOR_DEFAULTTOPRIMARY), &monitor_info)) + { + SetWindowLong(window->hwnd, GWL_STYLE, window_style & ~WS_OVERLAPPEDWINDOW); + SetWindowPos(window->hwnd, HWND_TOP, + monitor_info.rcMonitor.left, + monitor_info.rcMonitor.top, + monitor_info.rcMonitor.right - monitor_info.rcMonitor.left, + monitor_info.rcMonitor.bottom - monitor_info.rcMonitor.top, + SWP_NOOWNERZORDER | SWP_FRAMECHANGED); + } + } + else + { + SetWindowLong(window->hwnd, GWL_STYLE, window_style | WS_OVERLAPPEDWINDOW); + SetWindowPlacement(window->hwnd, &window->last_window_placement); + SetWindowPos(window->hwnd, 0, 0, 0, 0, 0, + SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | + SWP_NOOWNERZORDER | SWP_FRAMECHANGED); + } +} + +internal B32 +wm_window_is_maximized(WM_Window handle) +{ + B32 result = 0; + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window) + { + result = !!(IsZoomed(window->hwnd)); + } + return result; +} + +internal void +wm_window_set_maximized(WM_Window handle, B32 maximized) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window != 0) + { + if(window->first_paint_done) + { + switch(maximized) + { + default: + case 0:{ShowWindow(window->hwnd, SW_RESTORE);}break; + case 1:{ShowWindow(window->hwnd, SW_MAXIMIZE);}break; + } + } + else + { + window->maximized = maximized; + } + } +} + +internal B32 +wm_window_is_minimized(WM_Window handle) +{ + B32 result = 0; + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window) + { + result = !!(IsIconic(window->hwnd)); + } + return result; +} + +internal void +wm_window_set_minimized(WM_Window handle, B32 minimized) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window != 0 && minimized != wm_window_is_minimized(handle)) + { + switch(minimized) + { + default: + case 0:{ShowWindow(window->hwnd, SW_RESTORE);}break; + case 1:{ShowWindow(window->hwnd, SW_MINIMIZE);}break; + } + } +} + +internal void +wm_window_bring_to_front(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window != 0) + { + BringWindowToTop(window->hwnd); + } +} + +internal void +wm_window_set_monitor(WM_Window window_handle, WM_Monitor monitor) +{ + W32_WM_Window *window = w32_wm_window_from_handle(window_handle); + HMONITOR hmonitor = (HMONITOR)monitor.u64[0]; + { + MONITORINFOEXW info; + info.cbSize = sizeof(MONITORINFOEXW); + if(GetMonitorInfoW(hmonitor, (MONITORINFO *)&info)) + { + Rng2F32 existing_rect = wm_rect_from_window(window_handle); + Vec2F32 window_size = dim_2f32(existing_rect); + SetWindowPos(window->hwnd, HWND_TOP, + (info.rcWork.left + info.rcWork.right)/2 - window_size.x/2, + (info.rcWork.top + info.rcWork.bottom)/2 - window_size.y/2, + window_size.x, + window_size.y, 0); + } + } +} + +internal void +wm_window_clear_custom_border_data(WM_Window handle) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window->custom_border) + { + arena_clear(window->paint_arena); + window->first_title_bar_client_area = window->last_title_bar_client_area = 0; + window->custom_border_title_thickness = 0; + window->custom_border_edge_thickness = 0; + } +} + +internal void +wm_window_push_custom_title_bar(WM_Window handle, F32 thickness) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + window->custom_border_title_thickness = thickness; +} + +internal void +wm_window_push_custom_edges(WM_Window handle, F32 thickness) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + window->custom_border_edge_thickness = thickness; +} + +internal void +wm_window_push_custom_title_bar_client_area(WM_Window handle, Rng2F32 rect) +{ + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window->custom_border) + { + W32_WM_TitleBarClientArea *area = push_array(window->paint_arena, W32_WM_TitleBarClientArea, 1); + if(area != 0) + { + area->rect = rect; + SLLQueuePush(window->first_title_bar_client_area, window->last_title_bar_client_area, area); + } + } +} + +internal Rng2F32 +wm_rect_from_window(WM_Window handle) +{ + Rng2F32 r = {0}; + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window) + { + RECT rect = {0}; + GetWindowRect(w32_wm_hwnd_from_window(window), &rect); + r = w32_wm_rng2f32_from_rect(rect); + } + return r; +} + +internal Rng2F32 +wm_client_rect_from_window(WM_Window handle) +{ + Rng2F32 r = {0}; + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window) + { + RECT rect = {0}; + GetClientRect(w32_wm_hwnd_from_window(window), &rect); + r = w32_wm_rng2f32_from_rect(rect); + } + return r; +} + +internal F32 +wm_dpi_from_window(WM_Window handle) +{ + F32 result = 96.f; + W32_WM_Window *window = w32_wm_window_from_handle(handle); + if(window != 0) + { + result = window->dpi; + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl External Windows (Implemented Per-OS) + +internal WM_ExtWindow +wm_focused_external_window(void) +{ + HWND hwnd = GetForegroundWindow(); + WM_ExtWindow result = {(U64)hwnd}; + return result; +} + +internal void +wm_focus_external_window(WM_ExtWindow handle) +{ + HWND hwnd = (HWND)handle.u64[0]; + if(hwnd != 0) + { + SetForegroundWindow(hwnd); + SetFocus(hwnd); + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Monitors (Implemented Per-OS) + +internal WM_MonitorArray +wm_push_monitors_array(Arena *arena) +{ + Temp scratch = scratch_begin(&arena, 1); + W32_WM_MonitorGatherBundle bundle = {arena}; + EnumDisplayMonitors(0, 0, w32_wm_monitor_gather_enum_proc, (LPARAM)&bundle); + WM_MonitorArray array = {0}; + array.count = bundle.monitor_count; + array.v = push_array(arena, WM_Monitor, array.count); + { + U64 idx = 0; + for EachNode(n, W32_WM_MonitorGatherNode, bundle.first_monitor) + { + array.v[idx] = n->v; + idx += 1; + } + } + scratch_end(scratch); + return array; +} + +internal WM_Monitor +wm_primary_monitor(void) +{ + POINT zero_pt = {0, 0}; + HMONITOR monitor = MonitorFromPoint(zero_pt, MONITOR_DEFAULTTOPRIMARY); + WM_Monitor result = {(U64)monitor}; + return result; +} + +internal WM_Monitor +wm_monitor_from_window(WM_Window window) +{ + W32_WM_Window *w = w32_wm_window_from_handle(window); + HMONITOR handle = MonitorFromWindow(w->hwnd, MONITOR_DEFAULTTOPRIMARY); + WM_Monitor result = {(U64)handle}; + return result; +} + +internal String8 +wm_name_from_monitor(Arena *arena, WM_Monitor monitor) +{ + String8 result = {0}; + HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; + MONITORINFOEXW info; + info.cbSize = sizeof(MONITORINFOEXW); + if(GetMonitorInfoW(monitor_handle, (MONITORINFO *)&info)) + { + String16 result16 = str16_cstring((U16 *)info.szDevice); + result = str8_from_16(arena, result16); + } + return result; +} + +internal Vec2F32 +wm_dim_from_monitor(WM_Monitor monitor) +{ + Vec2F32 result = {0}; + HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; + MONITORINFO info = {0}; + info.cbSize = sizeof(MONITORINFO); + if(GetMonitorInfoW(monitor_handle, &info)) + { + result.x = info.rcWork.right - info.rcWork.left; + result.y = info.rcWork.bottom - info.rcWork.top; + } + return result; +} + +internal F32 +wm_dpi_from_monitor(WM_Monitor monitor) +{ + F32 result = 96.f; + HMONITOR monitor_handle = (HMONITOR)monitor.u64[0]; + if(w32_GetDpiForMonitor_func != 0) + { + UINT dpi_x = 0; + UINT dpi_y = 0; + HRESULT hr = w32_GetDpiForMonitor_func(monitor_handle, MDT_EFFECTIVE_DPI, &dpi_x, &dpi_y); + result = (F32)dpi_x; + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Events (Implemented Per-OS) + +internal void +wm_send_wakeup_event(void) +{ + PostThreadMessageW(w32_wm_state->gfx_thread_tid, 0x401, 0, 0); +} + +internal WM_EventList +wm_get_events(Arena *arena, B32 wait) +{ + w32_wm_event_arena = arena; + MemoryZeroStruct(&w32_wm_event_list); + MSG msg = {0}; + if(!wait || GetMessageW(&msg, 0, 0, 0)) + { + B32 first_wait = wait; + for(;first_wait || PeekMessageW(&msg, 0, 0, 0, PM_REMOVE); first_wait = 0) + { + TranslateMessage(&msg); + DispatchMessageW(&msg); + if(msg.message == WM_QUIT) + { + w32_wm_push_event(WM_EventKind_WindowClose, 0); + } + } + } + return w32_wm_event_list; +} + +internal WM_Modifiers +wm_get_modifiers(void) +{ + WM_Modifiers modifiers = 0; + if(GetKeyState(VK_CONTROL) & 0x8000) + { + modifiers |= WM_Modifier_Ctrl; + } + if(GetKeyState(VK_SHIFT) & 0x8000) + { + modifiers |= WM_Modifier_Shift; + } + if(GetKeyState(VK_MENU) & 0x8000) + { + modifiers |= WM_Modifier_Alt; + } + return modifiers; +} + +internal B32 +wm_key_is_down(WM_Key key) +{ + B32 down = 0; + WPARAM vkey = w32_wm_vkey_from_os_key(key); + if(GetKeyState(vkey) & 0x8000) + { + down = 1; + } + return down; +} + +internal Vec2F32 +wm_mouse_from_window(WM_Window handle) +{ + ProfBeginFunction(); + Vec2F32 v = {0}; + POINT p; + if(GetCursorPos(&p)) + { + W32_WM_Window *window = w32_wm_window_from_handle(handle); + ScreenToClient(window->hwnd, &p); + v.x = (F32)p.x; + v.y = (F32)p.y; + } + ProfEnd(); + return v; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Cursors (Implemented Per-OS) + +internal void +wm_set_cursor(WM_Cursor cursor) +{ + B32 valid_cursor = 1; + HCURSOR hcursor = 0; + switch(cursor) + { + default: {valid_cursor = 0;}break; +#define Win32CursorXList(X) \ +X(Pointer, IDC_ARROW) \ +X(IBar, IDC_IBEAM) \ +X(LeftRight, IDC_SIZEWE) \ +X(UpDown, IDC_SIZENS) \ +X(DownRight, IDC_SIZENWSE) \ +X(UpRight, IDC_SIZENESW) \ +X(UpDownLeftRight, IDC_SIZEALL) \ +X(HandPoint, IDC_HAND)\ +X(Disabled, IDC_NO) +#define CursorCase(E,R) case WM_Cursor_##E:{ \ +local_persist HCURSOR curs = 0; \ +if (curs == 0){ curs = LoadCursor(NULL, R); } \ +hcursor = curs; }break; + Win32CursorXList(CursorCase) +#undef CursorCase +#undef Win32CursorXList + } + if(valid_cursor && !w32_wm_resizing) + { + if(hcursor != w32_wm_state->hCursor) + { + PostMessageW(0, WM_SETCURSOR, 0, 0); + POINT p = {0}; + GetCursorPos(&p); + SetCursorPos(p.x, p.y); + } + w32_wm_state->hCursor = hcursor; + } +} + +//////////////////////////////// +//~ rjf: @per_os_impl Native User-Facing Graphical Messages (Implemented Per-OS) + +internal void +wm_graphical_message(B32 error, String8 title, String8 message) +{ + Temp scratch = scratch_begin(0, 0); + String16 title16 = str16_from_8(scratch.arena, title); + String16 message16 = str16_from_8(scratch.arena, message); + MessageBoxW(0, (WCHAR *)message16.str, (WCHAR *)title16.str, MB_OK|(!!error*MB_ICONERROR)); + scratch_end(scratch); +} + +internal String8 +wm_graphical_pick_file(Arena *arena, String8 initial_path) +{ + String8 result = {0}; + { + Temp scratch = scratch_begin(&arena, 1); + U64 buffer_size = 4096; + U16 *buffer = push_array(scratch.arena, U16, buffer_size); + OPENFILENAMEW params = {sizeof(params)}; + { + params.lpstrFile = (WCHAR *)buffer; + params.nMaxFile = buffer_size; + params.lpstrInitialDir = (WCHAR *)str16_from_8(scratch.arena, initial_path).str; + } + if(GetOpenFileNameW(¶ms)) + { + result = str8_from_16(arena, str16_cstring((U16 *)buffer)); + } + scratch_end(scratch); + } + return result; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Shell Operations + +internal void +wm_show_in_filesystem_ui(String8 path) +{ + Temp scratch = scratch_begin(0, 0); + String8 path_copy = push_str8_copy(scratch.arena, path); + for(U64 idx = 0; idx < path_copy.size; idx += 1) + { + if(path_copy.str[idx] == '/') + { + path_copy.str[idx] = '\\'; + } + } + String16 path16 = str16_from_8(scratch.arena, path_copy); + SFGAOF flags = 0; + PIDLIST_ABSOLUTE list = 0; + if(path16.size != 0 && SUCCEEDED(SHParseDisplayName(path16.str, 0, &list, 0, &flags))) + { + HRESULT hr = SHOpenFolderAndSelectItems(list, 0, 0, 0); + CoTaskMemFree(list); + (void)hr; + } + scratch_end(scratch); +} + +internal void +wm_open_in_browser(String8 url) +{ + Temp scratch = scratch_begin(0, 0); + String16 url16 = str16_from_8(scratch.arena, url); + ShellExecuteW(0, L"open", (WCHAR *)url16.str, 0, 0, SW_SHOWNORMAL); + scratch_end(scratch); +} diff --git a/src/win32/window_manager/win32_window_manager.h b/src/win32/window_manager/win32_window_manager.h new file mode 100644 index 00000000..6dd068c2 --- /dev/null +++ b/src/win32/window_manager/win32_window_manager.h @@ -0,0 +1,123 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_WINDOW_MANAGER_H +#define WIN32_WINDOW_MANAGER_H + +//////////////////////////////// +//~ rjf: Includes / Libraries + +#include +#include +#include +#pragma comment(lib, "gdi32") +#pragma comment(lib, "dwmapi") +#pragma comment(lib, "UxTheme") +#pragma comment(lib, "comdlg32") +#ifndef WM_NCUAHDRAWCAPTION +#define WM_NCUAHDRAWCAPTION (0x00AE) +#endif +#ifndef WM_NCUAHDRAWFRAME +#define WM_NCUAHDRAWFRAME (0x00AF) +#endif + +//////////////////////////////// +//~ rjf: Windows + +typedef struct W32_WM_TitleBarClientArea W32_WM_TitleBarClientArea; +struct W32_WM_TitleBarClientArea +{ + W32_WM_TitleBarClientArea *next; + Rng2F32 rect; +}; + +typedef struct W32_WM_Window W32_WM_Window; +struct W32_WM_Window +{ + W32_WM_Window *next; + W32_WM_Window *prev; + HWND hwnd; + HDC hdc; + WINDOWPLACEMENT last_window_placement; + F32 dpi; + B32 first_paint_done; + B32 maximized; + B32 custom_border; + F32 custom_border_title_thickness; + F32 custom_border_edge_thickness; + B32 custom_border_composition_enabled; + Arena *paint_arena; + W32_WM_TitleBarClientArea *first_title_bar_client_area; + W32_WM_TitleBarClientArea *last_title_bar_client_area; +}; + +//////////////////////////////// +//~ rjf: Monitor Gathering Bundle + +typedef struct W32_WM_MonitorGatherNode W32_WM_MonitorGatherNode; +struct W32_WM_MonitorGatherNode +{ + W32_WM_MonitorGatherNode *next; + WM_Monitor v; +}; + +typedef struct W32_WM_MonitorGatherBundle W32_WM_MonitorGatherBundle; +struct W32_WM_MonitorGatherBundle +{ + Arena *arena; + W32_WM_MonitorGatherNode *first_monitor; + W32_WM_MonitorGatherNode *last_monitor; + U64 monitor_count; +}; + +//////////////////////////////// +//~ rjf: Global State + +typedef struct W32_WM_State W32_WM_State; +struct W32_WM_State +{ + Arena *arena; + U32 gfx_thread_tid; + HINSTANCE hInstance; + HCURSOR hCursor; + WM_SystemInfo gfx_info; + W32_WM_Window *first_window; + W32_WM_Window *last_window; + W32_WM_Window *free_window; + WM_Key key_from_vkey_table[256]; +}; + +//////////////////////////////// +//~ rjf: Globals + +global W32_WM_State *w32_wm_state = 0; +global WM_EventList w32_wm_event_list = {0}; +global Arena *w32_wm_event_arena = 0; +global B32 w32_wm_resizing = 0; +global B32 w32_wm_new_window_custom_border = 0; + +//////////////////////////////// +//~ rjf: Basic Helpers + +internal Rng2F32 w32_wm_rng2f32_from_rect(RECT rect); + +//////////////////////////////// +//~ rjf: Windows + +internal WM_Window w32_wm_handle_from_window(W32_WM_Window *window); +internal W32_WM_Window * w32_wm_window_from_handle(WM_Window window); +internal W32_WM_Window * w32_wm_window_from_hwnd(HWND hwnd); +internal HWND w32_wm_hwnd_from_window(W32_WM_Window *window); +internal W32_WM_Window * w32_wm_window_alloc(void); +internal void w32_wm_window_release(W32_WM_Window *window); +internal WM_Event * w32_wm_push_event(WM_EventKind kind, W32_WM_Window *window); +internal WM_Key w32_wm_os_key_from_vkey(WPARAM vkey); +internal WPARAM w32_wm_vkey_from_os_key(WM_Key key); +internal LRESULT w32_wm_wnd_proc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); + +//////////////////////////////// +//~ rjf: Monitors + +internal BOOL w32_wm_monitor_gather_enum_proc(HMONITOR monitor, HDC hdc, LPRECT rect, LPARAM bundle_ptr); + +#endif // WIN32_WINDOW_MANAGER_H diff --git a/src/win32/x64/win32_x64.c b/src/win32/x64/win32_x64.c new file mode 100644 index 00000000..9cb50c40 --- /dev/null +++ b/src/win32/x64/win32_x64.c @@ -0,0 +1,139 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +internal B32 +w32_x64_write_reg_block_from_thread_ctx(void *reg_block, void *thread_ctx) +{ + X64_RegBlock *dst = (X64_RegBlock *)reg_block; + W32_X64_ThreadContext *src = (W32_X64_ThreadContext *)thread_ctx; + + //- rjf: convert context -> X64_RegBlock + W32_X64_XSaveFormat *xsave = &src->FltSave; + dst->rax = src->Rax; + dst->rcx = src->Rcx; + dst->rdx = src->Rdx; + dst->rbx = src->Rbx; + dst->rsp = src->Rsp; + dst->rbp = src->Rbp; + dst->rsi = src->Rsi; + dst->rdi = src->Rdi; + dst->r8 = src->R8; + dst->r9 = src->R9; + dst->r10 = src->R10; + dst->r11 = src->R11; + dst->r12 = src->R12; + dst->r13 = src->R13; + dst->r14 = src->R14; + dst->r15 = src->R15; + dst->rip = src->Rip; + dst->cs = src->SegCs; + dst->ds = src->SegDs; + dst->es = src->SegEs; + dst->fs = src->SegFs; + dst->gs = src->SegGs; + dst->ss = src->SegSs; + dst->dr0 = src->Dr0; + dst->dr1 = src->Dr1; + dst->dr2 = src->Dr2; + dst->dr3 = src->Dr3; + dst->dr6 = src->Dr6; + dst->dr7 = src->Dr7; + // NOTE(rjf): this bit is "supposed to always be 1", according to old info. + // may need to be investigated. + dst->rflags = src->EFlags | 0x2; + dst->fcw = xsave->ControlWord; + dst->fsw = xsave->StatusWord; + dst->ftw = xsave->TagWord; + dst->fop = xsave->ErrorOpcode; + MemoryCopy(&dst->fip, &xsave->ErrorOffset, sizeof(U64)); + MemoryCopy(&dst->fdp, &xsave->DataOffset, sizeof(U64)); + dst->mxcsr = xsave->MxCsr; + dst->mxcsr_mask = xsave->MxCsr_Mask; + { + U128 *float_s = xsave->FloatRegisters; + U80 *float_d = &dst->st0; + for(U32 n = 0; n < 8; n += 1, float_s += 1, float_d += 1) + { + MemoryCopy(float_d, float_s, sizeof(*float_d)); + } + } + { + U128 *xmm_s = xsave->XmmRegisters; + U512 *zmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, xmm_s += 1, zmm_d += 1) + { + MemoryCopy(zmm_d, xmm_s, sizeof(*xmm_s)); + } + } + + // TODO(rjf): we need to determine how to do LocateXStateFeature without + // actually running on Windows - what is that function actually looking at + // & doing? +#if 0 + // AVX + { + DWORD avx_length = 0; + U8 *avx_s = (U8 *)LocateXStateFeature(ctx, XSTATE_AVX, &avx_length); + if(avx_length == 16 * sizeof(U128)) + { + U512 *zmm_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, avx_s += sizeof(U128), zmm_d += 1) + { + MemoryCopy(&zmm_d->u8[16], avx_s, sizeof(U128)); + } + } + } + + // AVX-512 + { + // rjf: kmask + DWORD kmask_length = 0; + U64 *kmask_s = (U64*)LocateXStateFeature(ctx, XSTATE_AVX512_KMASK, &kmask_length); + if(kmask_length == 8 * sizeof(U64)) + { + U64 *kmask_d = &dst->k0; + for(U32 n = 0; n < 8; n += 1, kmask_s += 1, kmask_d += 1) + { + MemoryCopy(kmask_d, kmask_s, sizeof(*kmask_s)); + } + } + + // rjf: zmmh + DWORD avx512h_length = 0; + U8 *avx512h_s = (U8*)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM_H, &avx512h_length); + if(avx512h_length == 16 * sizeof(U256)) + { + U512 *zmmh_d = &dst->zmm0; + for(U32 n = 0; n < 16; n += 1, avx512h_s += sizeof(U256), zmmh_d += 1) + { + MemoryCopy(&zmmh_d->u8[32], avx512h_s, sizeof(U256)); + } + } + + // rjf: zmm + DWORD avx512_length = 0; + U8 *avx512_s = (U8 *)LocateXStateFeature(ctx, XSTATE_AVX512_ZMM, &avx512_length); + if(avx512_length == 16 * sizeof(U512)) + { + U512 *zmm_d = &dst->zmm16; + for(U32 n = 0; n < 16; n += 1, avx512_s += sizeof(U512), zmm_d += 1) + { + MemoryCopy(zmm_d, avx512_s, sizeof(U512)); + } + } + } + + // CET / Shadow Stack + if(xstate_mask & XSTATE_MASK_CET_U) + { + DWORD cet_length = 0; + XSAVE_CET_U_FORMAT *cet = LocateXStateFeature(ctx, XSTATE_CET_U, &cet_length); + if (cet_length == sizeof(*cet)) + { + dst->cetmsr = cet->Ia32CetUMsr; + dst->cetssp = cet->Ia32Pl3SspMsr; + } + } +#endif + return 1; +} diff --git a/src/win32/x64/win32_x64.h b/src/win32/x64/win32_x64.h new file mode 100644 index 00000000..478852b1 --- /dev/null +++ b/src/win32/x64/win32_x64.h @@ -0,0 +1,110 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WIN32_X64_H +#define WIN32_X64_H + +#pragma pack(push, 1) + +typedef struct W32_X64_XSaveFormat W32_X64_XSaveFormat; +struct W32_X64_XSaveFormat +{ + U16 ControlWord; + U16 StatusWord; + U8 TagWord; + U8 Reserved1; + U16 ErrorOpcode; + U32 ErrorOffset; + U16 ErrorSelector; + U16 Reserved2; + U32 DataOffset; + U16 DataSelector; + U16 Reserved3; + U32 MxCsr; + U32 MxCsr_Mask; + U128 FloatRegisters[8]; + U128 XmmRegisters[16]; + U8 Reserved4[96]; +}; + +typedef struct W32_X64_ThreadContext W32_X64_ThreadContext; +struct W32_X64_ThreadContext +{ + U64 P1Home; + U64 P2Home; + U64 P3Home; + U64 P4Home; + U64 P5Home; + U64 P6Home; + U32 ContextFlags; + U32 MxCsr; + U16 SegCs; + U16 SegDs; + U16 SegEs; + U16 SegFs; + U16 SegGs; + U16 SegSs; + U32 EFlags; + U64 Dr0; + U64 Dr1; + U64 Dr2; + U64 Dr3; + U64 Dr6; + U64 Dr7; + U64 Rax; + U64 Rcx; + U64 Rdx; + U64 Rbx; + U64 Rsp; + U64 Rbp; + U64 Rsi; + U64 Rdi; + U64 R8; + U64 R9; + U64 R10; + U64 R11; + U64 R12; + U64 R13; + U64 R14; + U64 R15; + U64 Rip; + union + { + W32_X64_XSaveFormat FltSave; + struct + { + U128 Header[2]; + U128 Legacy[8]; + U128 Xmm0; + U128 Xmm1; + U128 Xmm2; + U128 Xmm3; + U128 Xmm4; + U128 Xmm5; + U128 Xmm6; + U128 Xmm7; + U128 Xmm8; + U128 Xmm9; + U128 Xmm10; + U128 Xmm11; + U128 Xmm12; + U128 Xmm13; + U128 Xmm14; + U128 Xmm15; + U8 padding_0[96]; + }; + }; + U128 VectorRegister[26]; + U64 VectorControl; + U64 DebugControl; + U64 LastBranchToRip; + U64 LastBranchFromRip; + U64 LastExceptionToRip; + U64 LastExceptionFromRip; +}; + +#pragma pack(pop) + +internal B32 w32_x64_write_reg_block_from_thread_ctx(void *reg_block, void *thread_ctx); + +#endif // WIN32_X64_H diff --git a/src/os/gfx/generated/os_gfx.meta.c b/src/window_manager/generated/window_manager.meta.c similarity index 94% rename from src/os/gfx/generated/os_gfx.meta.c rename to src/window_manager/generated/window_manager.meta.c index b44fa317..555a6239 100644 --- a/src/os/gfx/generated/os_gfx.meta.c +++ b/src/window_manager/generated/window_manager.meta.c @@ -1,302 +1,302 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//- GENERATED CODE - -C_LINKAGE_BEGIN -String8 os_g_key_display_string_table[143] = -{ -str8_lit_comp("Invalid Key"), -str8_lit_comp("Escape"), -str8_lit_comp("F1"), -str8_lit_comp("F2"), -str8_lit_comp("F3"), -str8_lit_comp("F4"), -str8_lit_comp("F5"), -str8_lit_comp("F6"), -str8_lit_comp("F7"), -str8_lit_comp("F8"), -str8_lit_comp("F9"), -str8_lit_comp("F10"), -str8_lit_comp("F11"), -str8_lit_comp("F12"), -str8_lit_comp("F13"), -str8_lit_comp("F14"), -str8_lit_comp("F15"), -str8_lit_comp("F16"), -str8_lit_comp("F17"), -str8_lit_comp("F18"), -str8_lit_comp("F19"), -str8_lit_comp("F20"), -str8_lit_comp("F21"), -str8_lit_comp("F22"), -str8_lit_comp("F23"), -str8_lit_comp("F24"), -str8_lit_comp("Tick"), -str8_lit_comp("0"), -str8_lit_comp("1"), -str8_lit_comp("2"), -str8_lit_comp("3"), -str8_lit_comp("4"), -str8_lit_comp("5"), -str8_lit_comp("6"), -str8_lit_comp("7"), -str8_lit_comp("8"), -str8_lit_comp("9"), -str8_lit_comp("Minus"), -str8_lit_comp("Equal"), -str8_lit_comp("Backspace"), -str8_lit_comp("Tab"), -str8_lit_comp("Q"), -str8_lit_comp("W"), -str8_lit_comp("E"), -str8_lit_comp("R"), -str8_lit_comp("T"), -str8_lit_comp("Y"), -str8_lit_comp("U"), -str8_lit_comp("I"), -str8_lit_comp("O"), -str8_lit_comp("P"), -str8_lit_comp("Left Bracket"), -str8_lit_comp("Right Bracket"), -str8_lit_comp("Back Slash"), -str8_lit_comp("Caps Lock"), -str8_lit_comp("A"), -str8_lit_comp("S"), -str8_lit_comp("D"), -str8_lit_comp("F"), -str8_lit_comp("G"), -str8_lit_comp("H"), -str8_lit_comp("J"), -str8_lit_comp("K"), -str8_lit_comp("L"), -str8_lit_comp("Semicolon"), -str8_lit_comp("Quote"), -str8_lit_comp("Return"), -str8_lit_comp("Shift"), -str8_lit_comp("Z"), -str8_lit_comp("X"), -str8_lit_comp("C"), -str8_lit_comp("V"), -str8_lit_comp("B"), -str8_lit_comp("N"), -str8_lit_comp("M"), -str8_lit_comp("Comma"), -str8_lit_comp("Period"), -str8_lit_comp("Slash"), -str8_lit_comp("Ctrl"), -str8_lit_comp("Alt"), -str8_lit_comp("Space"), -str8_lit_comp("Menu"), -str8_lit_comp("Scroll Lock"), -str8_lit_comp("Pause"), -str8_lit_comp("Insert"), -str8_lit_comp("Home"), -str8_lit_comp("Page Up"), -str8_lit_comp("Delete"), -str8_lit_comp("End"), -str8_lit_comp("Page Down"), -str8_lit_comp("Up"), -str8_lit_comp("Left"), -str8_lit_comp("Down"), -str8_lit_comp("Right"), -str8_lit_comp("Ex0"), -str8_lit_comp("Ex1"), -str8_lit_comp("Ex2"), -str8_lit_comp("Ex3"), -str8_lit_comp("Ex4"), -str8_lit_comp("Ex5"), -str8_lit_comp("Ex6"), -str8_lit_comp("Ex7"), -str8_lit_comp("Ex8"), -str8_lit_comp("Ex9"), -str8_lit_comp("Ex10"), -str8_lit_comp("Ex11"), -str8_lit_comp("Ex12"), -str8_lit_comp("Ex13"), -str8_lit_comp("Ex14"), -str8_lit_comp("Ex15"), -str8_lit_comp("Ex16"), -str8_lit_comp("Ex17"), -str8_lit_comp("Ex18"), -str8_lit_comp("Ex19"), -str8_lit_comp("Ex20"), -str8_lit_comp("Ex21"), -str8_lit_comp("Ex22"), -str8_lit_comp("Ex23"), -str8_lit_comp("Ex24"), -str8_lit_comp("Ex25"), -str8_lit_comp("Ex26"), -str8_lit_comp("Ex27"), -str8_lit_comp("Ex28"), -str8_lit_comp("Ex29"), -str8_lit_comp("Num Lock"), -str8_lit_comp("Numpad Slash"), -str8_lit_comp("Numpad Star"), -str8_lit_comp("Numpad Minus"), -str8_lit_comp("Numpad Plus"), -str8_lit_comp("Numpad Period"), -str8_lit_comp("Numpad 0"), -str8_lit_comp("Numpad 1"), -str8_lit_comp("Numpad 2"), -str8_lit_comp("Numpad 3"), -str8_lit_comp("Numpad 4"), -str8_lit_comp("Numpad 5"), -str8_lit_comp("Numpad 6"), -str8_lit_comp("Numpad 7"), -str8_lit_comp("Numpad 8"), -str8_lit_comp("Numpad 9"), -str8_lit_comp("Left Mouse Button"), -str8_lit_comp("Middle Mouse Button"), -str8_lit_comp("Right Mouse Button"), -}; - -String8 os_g_key_cfg_string_table[143] = -{ -str8_lit_comp("null"), -str8_lit_comp("esc"), -str8_lit_comp("f1"), -str8_lit_comp("f2"), -str8_lit_comp("f3"), -str8_lit_comp("f4"), -str8_lit_comp("f5"), -str8_lit_comp("f6"), -str8_lit_comp("f7"), -str8_lit_comp("f8"), -str8_lit_comp("f9"), -str8_lit_comp("f10"), -str8_lit_comp("f11"), -str8_lit_comp("f12"), -str8_lit_comp("f13"), -str8_lit_comp("f14"), -str8_lit_comp("f15"), -str8_lit_comp("f16"), -str8_lit_comp("f17"), -str8_lit_comp("f18"), -str8_lit_comp("f19"), -str8_lit_comp("f20"), -str8_lit_comp("f21"), -str8_lit_comp("f22"), -str8_lit_comp("f23"), -str8_lit_comp("f24"), -str8_lit_comp("tick"), -str8_lit_comp("0"), -str8_lit_comp("1"), -str8_lit_comp("2"), -str8_lit_comp("3"), -str8_lit_comp("4"), -str8_lit_comp("5"), -str8_lit_comp("6"), -str8_lit_comp("7"), -str8_lit_comp("8"), -str8_lit_comp("9"), -str8_lit_comp("minus"), -str8_lit_comp("equal"), -str8_lit_comp("backspace"), -str8_lit_comp("tab"), -str8_lit_comp("q"), -str8_lit_comp("w"), -str8_lit_comp("e"), -str8_lit_comp("r"), -str8_lit_comp("t"), -str8_lit_comp("y"), -str8_lit_comp("u"), -str8_lit_comp("i"), -str8_lit_comp("o"), -str8_lit_comp("p"), -str8_lit_comp("left_bracket"), -str8_lit_comp("right_bracket"), -str8_lit_comp("backslash"), -str8_lit_comp("caps_lock"), -str8_lit_comp("a"), -str8_lit_comp("s"), -str8_lit_comp("d"), -str8_lit_comp("f"), -str8_lit_comp("g"), -str8_lit_comp("h"), -str8_lit_comp("j"), -str8_lit_comp("k"), -str8_lit_comp("l"), -str8_lit_comp("semicolon"), -str8_lit_comp("quote"), -str8_lit_comp("return"), -str8_lit_comp("shift"), -str8_lit_comp("z"), -str8_lit_comp("x"), -str8_lit_comp("c"), -str8_lit_comp("v"), -str8_lit_comp("b"), -str8_lit_comp("n"), -str8_lit_comp("m"), -str8_lit_comp("comma"), -str8_lit_comp("period"), -str8_lit_comp("slash"), -str8_lit_comp("ctrl"), -str8_lit_comp("alt"), -str8_lit_comp("space"), -str8_lit_comp("menu"), -str8_lit_comp("scroll_lock"), -str8_lit_comp("pause"), -str8_lit_comp("insert"), -str8_lit_comp("home"), -str8_lit_comp("page_up"), -str8_lit_comp("delete"), -str8_lit_comp("end"), -str8_lit_comp("page_down"), -str8_lit_comp("up"), -str8_lit_comp("left"), -str8_lit_comp("down"), -str8_lit_comp("right"), -str8_lit_comp("ex0"), -str8_lit_comp("ex1"), -str8_lit_comp("ex2"), -str8_lit_comp("ex3"), -str8_lit_comp("ex4"), -str8_lit_comp("ex5"), -str8_lit_comp("ex6"), -str8_lit_comp("ex7"), -str8_lit_comp("ex8"), -str8_lit_comp("ex9"), -str8_lit_comp("ex10"), -str8_lit_comp("ex11"), -str8_lit_comp("ex12"), -str8_lit_comp("ex13"), -str8_lit_comp("ex14"), -str8_lit_comp("ex15"), -str8_lit_comp("ex16"), -str8_lit_comp("ex17"), -str8_lit_comp("ex18"), -str8_lit_comp("ex19"), -str8_lit_comp("ex20"), -str8_lit_comp("ex21"), -str8_lit_comp("ex22"), -str8_lit_comp("ex23"), -str8_lit_comp("ex24"), -str8_lit_comp("ex25"), -str8_lit_comp("ex26"), -str8_lit_comp("ex27"), -str8_lit_comp("ex28"), -str8_lit_comp("ex29"), -str8_lit_comp("num_lock"), -str8_lit_comp("numpad_slash"), -str8_lit_comp("numpad_star"), -str8_lit_comp("numpad_minus"), -str8_lit_comp("numpad_plus"), -str8_lit_comp("numpad_period"), -str8_lit_comp("numpad_0"), -str8_lit_comp("numpad_1"), -str8_lit_comp("numpad_2"), -str8_lit_comp("numpad_3"), -str8_lit_comp("numpad_4"), -str8_lit_comp("numpad_5"), -str8_lit_comp("numpad_6"), -str8_lit_comp("numpad_7"), -str8_lit_comp("numpad_8"), -str8_lit_comp("numpad_9"), -str8_lit_comp("left_mouse"), -str8_lit_comp("middle_mouse"), -str8_lit_comp("right_mouse"), -}; - -C_LINKAGE_END - +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +String8 wm_key_display_name_table[143] = +{ +str8_lit_comp("Invalid Key"), +str8_lit_comp("Escape"), +str8_lit_comp("F1"), +str8_lit_comp("F2"), +str8_lit_comp("F3"), +str8_lit_comp("F4"), +str8_lit_comp("F5"), +str8_lit_comp("F6"), +str8_lit_comp("F7"), +str8_lit_comp("F8"), +str8_lit_comp("F9"), +str8_lit_comp("F10"), +str8_lit_comp("F11"), +str8_lit_comp("F12"), +str8_lit_comp("F13"), +str8_lit_comp("F14"), +str8_lit_comp("F15"), +str8_lit_comp("F16"), +str8_lit_comp("F17"), +str8_lit_comp("F18"), +str8_lit_comp("F19"), +str8_lit_comp("F20"), +str8_lit_comp("F21"), +str8_lit_comp("F22"), +str8_lit_comp("F23"), +str8_lit_comp("F24"), +str8_lit_comp("Tick"), +str8_lit_comp("0"), +str8_lit_comp("1"), +str8_lit_comp("2"), +str8_lit_comp("3"), +str8_lit_comp("4"), +str8_lit_comp("5"), +str8_lit_comp("6"), +str8_lit_comp("7"), +str8_lit_comp("8"), +str8_lit_comp("9"), +str8_lit_comp("Minus"), +str8_lit_comp("Equal"), +str8_lit_comp("Backspace"), +str8_lit_comp("Tab"), +str8_lit_comp("Q"), +str8_lit_comp("W"), +str8_lit_comp("E"), +str8_lit_comp("R"), +str8_lit_comp("T"), +str8_lit_comp("Y"), +str8_lit_comp("U"), +str8_lit_comp("I"), +str8_lit_comp("O"), +str8_lit_comp("P"), +str8_lit_comp("Left Bracket"), +str8_lit_comp("Right Bracket"), +str8_lit_comp("Back Slash"), +str8_lit_comp("Caps Lock"), +str8_lit_comp("A"), +str8_lit_comp("S"), +str8_lit_comp("D"), +str8_lit_comp("F"), +str8_lit_comp("G"), +str8_lit_comp("H"), +str8_lit_comp("J"), +str8_lit_comp("K"), +str8_lit_comp("L"), +str8_lit_comp("Semicolon"), +str8_lit_comp("Quote"), +str8_lit_comp("Return"), +str8_lit_comp("Shift"), +str8_lit_comp("Z"), +str8_lit_comp("X"), +str8_lit_comp("C"), +str8_lit_comp("V"), +str8_lit_comp("B"), +str8_lit_comp("N"), +str8_lit_comp("M"), +str8_lit_comp("Comma"), +str8_lit_comp("Period"), +str8_lit_comp("Slash"), +str8_lit_comp("Ctrl"), +str8_lit_comp("Alt"), +str8_lit_comp("Space"), +str8_lit_comp("Menu"), +str8_lit_comp("Scroll Lock"), +str8_lit_comp("Pause"), +str8_lit_comp("Insert"), +str8_lit_comp("Home"), +str8_lit_comp("Page Up"), +str8_lit_comp("Delete"), +str8_lit_comp("End"), +str8_lit_comp("Page Down"), +str8_lit_comp("Up"), +str8_lit_comp("Left"), +str8_lit_comp("Down"), +str8_lit_comp("Right"), +str8_lit_comp("Ex0"), +str8_lit_comp("Ex1"), +str8_lit_comp("Ex2"), +str8_lit_comp("Ex3"), +str8_lit_comp("Ex4"), +str8_lit_comp("Ex5"), +str8_lit_comp("Ex6"), +str8_lit_comp("Ex7"), +str8_lit_comp("Ex8"), +str8_lit_comp("Ex9"), +str8_lit_comp("Ex10"), +str8_lit_comp("Ex11"), +str8_lit_comp("Ex12"), +str8_lit_comp("Ex13"), +str8_lit_comp("Ex14"), +str8_lit_comp("Ex15"), +str8_lit_comp("Ex16"), +str8_lit_comp("Ex17"), +str8_lit_comp("Ex18"), +str8_lit_comp("Ex19"), +str8_lit_comp("Ex20"), +str8_lit_comp("Ex21"), +str8_lit_comp("Ex22"), +str8_lit_comp("Ex23"), +str8_lit_comp("Ex24"), +str8_lit_comp("Ex25"), +str8_lit_comp("Ex26"), +str8_lit_comp("Ex27"), +str8_lit_comp("Ex28"), +str8_lit_comp("Ex29"), +str8_lit_comp("Num Lock"), +str8_lit_comp("Numpad Slash"), +str8_lit_comp("Numpad Star"), +str8_lit_comp("Numpad Minus"), +str8_lit_comp("Numpad Plus"), +str8_lit_comp("Numpad Period"), +str8_lit_comp("Numpad 0"), +str8_lit_comp("Numpad 1"), +str8_lit_comp("Numpad 2"), +str8_lit_comp("Numpad 3"), +str8_lit_comp("Numpad 4"), +str8_lit_comp("Numpad 5"), +str8_lit_comp("Numpad 6"), +str8_lit_comp("Numpad 7"), +str8_lit_comp("Numpad 8"), +str8_lit_comp("Numpad 9"), +str8_lit_comp("Left Mouse Button"), +str8_lit_comp("Middle Mouse Button"), +str8_lit_comp("Right Mouse Button"), +}; + +String8 wm_key_cfg_name_table[143] = +{ +str8_lit_comp("null"), +str8_lit_comp("esc"), +str8_lit_comp("f1"), +str8_lit_comp("f2"), +str8_lit_comp("f3"), +str8_lit_comp("f4"), +str8_lit_comp("f5"), +str8_lit_comp("f6"), +str8_lit_comp("f7"), +str8_lit_comp("f8"), +str8_lit_comp("f9"), +str8_lit_comp("f10"), +str8_lit_comp("f11"), +str8_lit_comp("f12"), +str8_lit_comp("f13"), +str8_lit_comp("f14"), +str8_lit_comp("f15"), +str8_lit_comp("f16"), +str8_lit_comp("f17"), +str8_lit_comp("f18"), +str8_lit_comp("f19"), +str8_lit_comp("f20"), +str8_lit_comp("f21"), +str8_lit_comp("f22"), +str8_lit_comp("f23"), +str8_lit_comp("f24"), +str8_lit_comp("tick"), +str8_lit_comp("0"), +str8_lit_comp("1"), +str8_lit_comp("2"), +str8_lit_comp("3"), +str8_lit_comp("4"), +str8_lit_comp("5"), +str8_lit_comp("6"), +str8_lit_comp("7"), +str8_lit_comp("8"), +str8_lit_comp("9"), +str8_lit_comp("minus"), +str8_lit_comp("equal"), +str8_lit_comp("backspace"), +str8_lit_comp("tab"), +str8_lit_comp("q"), +str8_lit_comp("w"), +str8_lit_comp("e"), +str8_lit_comp("r"), +str8_lit_comp("t"), +str8_lit_comp("y"), +str8_lit_comp("u"), +str8_lit_comp("i"), +str8_lit_comp("o"), +str8_lit_comp("p"), +str8_lit_comp("left_bracket"), +str8_lit_comp("right_bracket"), +str8_lit_comp("backslash"), +str8_lit_comp("caps_lock"), +str8_lit_comp("a"), +str8_lit_comp("s"), +str8_lit_comp("d"), +str8_lit_comp("f"), +str8_lit_comp("g"), +str8_lit_comp("h"), +str8_lit_comp("j"), +str8_lit_comp("k"), +str8_lit_comp("l"), +str8_lit_comp("semicolon"), +str8_lit_comp("quote"), +str8_lit_comp("return"), +str8_lit_comp("shift"), +str8_lit_comp("z"), +str8_lit_comp("x"), +str8_lit_comp("c"), +str8_lit_comp("v"), +str8_lit_comp("b"), +str8_lit_comp("n"), +str8_lit_comp("m"), +str8_lit_comp("comma"), +str8_lit_comp("period"), +str8_lit_comp("slash"), +str8_lit_comp("ctrl"), +str8_lit_comp("alt"), +str8_lit_comp("space"), +str8_lit_comp("menu"), +str8_lit_comp("scroll_lock"), +str8_lit_comp("pause"), +str8_lit_comp("insert"), +str8_lit_comp("home"), +str8_lit_comp("page_up"), +str8_lit_comp("delete"), +str8_lit_comp("end"), +str8_lit_comp("page_down"), +str8_lit_comp("up"), +str8_lit_comp("left"), +str8_lit_comp("down"), +str8_lit_comp("right"), +str8_lit_comp("ex0"), +str8_lit_comp("ex1"), +str8_lit_comp("ex2"), +str8_lit_comp("ex3"), +str8_lit_comp("ex4"), +str8_lit_comp("ex5"), +str8_lit_comp("ex6"), +str8_lit_comp("ex7"), +str8_lit_comp("ex8"), +str8_lit_comp("ex9"), +str8_lit_comp("ex10"), +str8_lit_comp("ex11"), +str8_lit_comp("ex12"), +str8_lit_comp("ex13"), +str8_lit_comp("ex14"), +str8_lit_comp("ex15"), +str8_lit_comp("ex16"), +str8_lit_comp("ex17"), +str8_lit_comp("ex18"), +str8_lit_comp("ex19"), +str8_lit_comp("ex20"), +str8_lit_comp("ex21"), +str8_lit_comp("ex22"), +str8_lit_comp("ex23"), +str8_lit_comp("ex24"), +str8_lit_comp("ex25"), +str8_lit_comp("ex26"), +str8_lit_comp("ex27"), +str8_lit_comp("ex28"), +str8_lit_comp("ex29"), +str8_lit_comp("num_lock"), +str8_lit_comp("numpad_slash"), +str8_lit_comp("numpad_star"), +str8_lit_comp("numpad_minus"), +str8_lit_comp("numpad_plus"), +str8_lit_comp("numpad_period"), +str8_lit_comp("numpad_0"), +str8_lit_comp("numpad_1"), +str8_lit_comp("numpad_2"), +str8_lit_comp("numpad_3"), +str8_lit_comp("numpad_4"), +str8_lit_comp("numpad_5"), +str8_lit_comp("numpad_6"), +str8_lit_comp("numpad_7"), +str8_lit_comp("numpad_8"), +str8_lit_comp("numpad_9"), +str8_lit_comp("left_mouse"), +str8_lit_comp("middle_mouse"), +str8_lit_comp("right_mouse"), +}; + +C_LINKAGE_END + diff --git a/src/window_manager/generated/window_manager.meta.h b/src/window_manager/generated/window_manager.meta.h new file mode 100644 index 00000000..f5772be4 --- /dev/null +++ b/src/window_manager/generated/window_manager.meta.h @@ -0,0 +1,163 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef WINDOW_MANAGER_META_H +#define WINDOW_MANAGER_META_H + +typedef enum WM_Key +{ +WM_Key_Null, +WM_Key_Esc, +WM_Key_F1, +WM_Key_F2, +WM_Key_F3, +WM_Key_F4, +WM_Key_F5, +WM_Key_F6, +WM_Key_F7, +WM_Key_F8, +WM_Key_F9, +WM_Key_F10, +WM_Key_F11, +WM_Key_F12, +WM_Key_F13, +WM_Key_F14, +WM_Key_F15, +WM_Key_F16, +WM_Key_F17, +WM_Key_F18, +WM_Key_F19, +WM_Key_F20, +WM_Key_F21, +WM_Key_F22, +WM_Key_F23, +WM_Key_F24, +WM_Key_Tick, +WM_Key_0, +WM_Key_1, +WM_Key_2, +WM_Key_3, +WM_Key_4, +WM_Key_5, +WM_Key_6, +WM_Key_7, +WM_Key_8, +WM_Key_9, +WM_Key_Minus, +WM_Key_Equal, +WM_Key_Backspace, +WM_Key_Tab, +WM_Key_Q, +WM_Key_W, +WM_Key_E, +WM_Key_R, +WM_Key_T, +WM_Key_Y, +WM_Key_U, +WM_Key_I, +WM_Key_O, +WM_Key_P, +WM_Key_LeftBracket, +WM_Key_RightBracket, +WM_Key_BackSlash, +WM_Key_CapsLock, +WM_Key_A, +WM_Key_S, +WM_Key_D, +WM_Key_F, +WM_Key_G, +WM_Key_H, +WM_Key_J, +WM_Key_K, +WM_Key_L, +WM_Key_Semicolon, +WM_Key_Quote, +WM_Key_Return, +WM_Key_Shift, +WM_Key_Z, +WM_Key_X, +WM_Key_C, +WM_Key_V, +WM_Key_B, +WM_Key_N, +WM_Key_M, +WM_Key_Comma, +WM_Key_Period, +WM_Key_Slash, +WM_Key_Ctrl, +WM_Key_Alt, +WM_Key_Space, +WM_Key_Menu, +WM_Key_ScrollLock, +WM_Key_Pause, +WM_Key_Insert, +WM_Key_Home, +WM_Key_PageUp, +WM_Key_Delete, +WM_Key_End, +WM_Key_PageDown, +WM_Key_Up, +WM_Key_Left, +WM_Key_Down, +WM_Key_Right, +WM_Key_Ex0, +WM_Key_Ex1, +WM_Key_Ex2, +WM_Key_Ex3, +WM_Key_Ex4, +WM_Key_Ex5, +WM_Key_Ex6, +WM_Key_Ex7, +WM_Key_Ex8, +WM_Key_Ex9, +WM_Key_Ex10, +WM_Key_Ex11, +WM_Key_Ex12, +WM_Key_Ex13, +WM_Key_Ex14, +WM_Key_Ex15, +WM_Key_Ex16, +WM_Key_Ex17, +WM_Key_Ex18, +WM_Key_Ex19, +WM_Key_Ex20, +WM_Key_Ex21, +WM_Key_Ex22, +WM_Key_Ex23, +WM_Key_Ex24, +WM_Key_Ex25, +WM_Key_Ex26, +WM_Key_Ex27, +WM_Key_Ex28, +WM_Key_Ex29, +WM_Key_NumLock, +WM_Key_NumSlash, +WM_Key_NumStar, +WM_Key_NumMinus, +WM_Key_NumPlus, +WM_Key_NumPeriod, +WM_Key_Num0, +WM_Key_Num1, +WM_Key_Num2, +WM_Key_Num3, +WM_Key_Num4, +WM_Key_Num5, +WM_Key_Num6, +WM_Key_Num7, +WM_Key_Num8, +WM_Key_Num9, +WM_Key_LeftMouseButton, +WM_Key_MiddleMouseButton, +WM_Key_RightMouseButton, +WM_Key_COUNT, +} WM_Key; + +C_LINKAGE_BEGIN +extern String8 wm_key_display_name_table[143]; +extern String8 wm_key_cfg_name_table[143]; + +C_LINKAGE_END + +#endif // WINDOW_MANAGER_META_H diff --git a/src/window_manager/window_manager.c b/src/window_manager/window_manager.c new file mode 100644 index 00000000..c5dc11cb --- /dev/null +++ b/src/window_manager/window_manager.c @@ -0,0 +1,300 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Generated Code + +#include "window_manager/generated/window_manager.meta.c" + +//////////////////////////////// +//~ rjf: Handle Type Helpers + +internal WM_Window +wm_window_zero(void) +{ + WM_Window result = {0}; + return result; +} + +internal B32 +wm_window_match(WM_Window a, WM_Window b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +internal B32 +wm_monitor_match(WM_Monitor a, WM_Monitor b) +{ + B32 result = MemoryMatchStruct(&a, &b); + return result; +} + +//////////////////////////////// +//~ rjf: Event Functions (Helpers, Implemented Once) + +internal String8 +wm_string_from_event_kind(WM_EventKind kind) +{ + String8 result = {0}; + switch(kind) + { + case WM_EventKind_Null: + case WM_EventKind_COUNT: + {}break; + case WM_EventKind_Press: {result = str8_lit("Press");}break; + case WM_EventKind_Release: {result = str8_lit("Release");}break; + case WM_EventKind_MouseMove: {result = str8_lit("MouseMove");}break; + case WM_EventKind_Text: {result = str8_lit("Text");}break; + case WM_EventKind_Scroll: {result = str8_lit("Scroll");}break; + case WM_EventKind_WindowLoseFocus: {result = str8_lit("WindowLoseFocus");}break; + case WM_EventKind_WindowClose: {result = str8_lit("WindowClose");}break; + case WM_EventKind_FileDrop: {result = str8_lit("FileDrop");}break; + case WM_EventKind_Wakeup: {result = str8_lit("Wakeup");}break; + } + return result; +} + +internal String8List +wm_string_list_from_modifiers(Arena *arena, WM_Modifiers modifiers) +{ + String8List result = {0}; + if(modifiers & WM_Modifier_Ctrl) { str8_list_push(arena, &result, str8_lit("Ctrl")); } + if(modifiers & WM_Modifier_Shift) { str8_list_push(arena, &result, str8_lit("Shift")); } + if(modifiers & WM_Modifier_Alt) { str8_list_push(arena, &result, str8_lit("Alt")); } + return result; +} + +internal String8 +wm_string_from_modifiers_key(Arena *arena, WM_Modifiers modifiers, WM_Key key) +{ + String8 result = {0}; + if(key != WM_Key_Null) + { + Temp scratch = scratch_begin(&arena, 1); + String8List mods = wm_string_list_from_modifiers(scratch.arena, modifiers); + String8 key_string = wm_key_display_name_table[key]; + str8_list_push(scratch.arena, &mods, key_string); + StringJoin join = {0}; + join.sep = str8_lit(" + "); + result = str8_list_join(arena, &mods, &join); + scratch_end(scratch); + } + return result; +} + +internal U32 +wm_codepoint_from_modifiers_and_key(WM_Modifiers modifiers, WM_Key key) +{ + U32 result = 0; + + // rjf: special-case map + local_persist read_only struct {U32 character; WM_Key key; WM_Modifiers modifiers;} map[] = + { + {'!', WM_Key_1, WM_Modifier_Shift}, + {'@', WM_Key_2, WM_Modifier_Shift}, + {'#', WM_Key_3, WM_Modifier_Shift}, + {'$', WM_Key_4, WM_Modifier_Shift}, + {'%', WM_Key_5, WM_Modifier_Shift}, + {'^', WM_Key_6, WM_Modifier_Shift}, + {'&', WM_Key_7, WM_Modifier_Shift}, + {'*', WM_Key_8, WM_Modifier_Shift}, + {'(', WM_Key_9, WM_Modifier_Shift}, + {')', WM_Key_0, WM_Modifier_Shift}, + {'_', WM_Key_Minus, WM_Modifier_Shift}, + {'_', WM_Key_Minus, WM_Modifier_Shift}, + {'-', WM_Key_Minus, 0}, + {'=', WM_Key_Equal, 0}, + {'+', WM_Key_Equal, WM_Modifier_Shift}, + {'`', WM_Key_Tick, 0}, + {'~', WM_Key_Tick, WM_Modifier_Shift}, + {'[', WM_Key_LeftBracket, 0}, + {']', WM_Key_RightBracket, 0}, + {'{', WM_Key_LeftBracket, WM_Modifier_Shift}, + {'}', WM_Key_RightBracket, WM_Modifier_Shift}, + {'\\', WM_Key_BackSlash, 0}, + {'|', WM_Key_BackSlash, WM_Modifier_Shift}, + {';', WM_Key_Semicolon, 0}, + {':', WM_Key_Semicolon, WM_Modifier_Shift}, + {'\'', WM_Key_Quote, 0}, + {'"', WM_Key_Quote, WM_Modifier_Shift}, + {'.', WM_Key_Period, 0}, + {',', WM_Key_Comma, 0}, + {'<', WM_Key_Period, WM_Modifier_Shift}, + {'>', WM_Key_Comma, WM_Modifier_Shift}, + {'/', WM_Key_Slash, 0}, + {'?', WM_Key_Slash, WM_Modifier_Shift}, + {'a', WM_Key_A, 0}, + {'b', WM_Key_B, 0}, + {'c', WM_Key_C, 0}, + {'d', WM_Key_D, 0}, + {'e', WM_Key_E, 0}, + {'f', WM_Key_F, 0}, + {'g', WM_Key_G, 0}, + {'h', WM_Key_H, 0}, + {'i', WM_Key_I, 0}, + {'j', WM_Key_J, 0}, + {'k', WM_Key_K, 0}, + {'l', WM_Key_L, 0}, + {'m', WM_Key_M, 0}, + {'n', WM_Key_N, 0}, + {'o', WM_Key_O, 0}, + {'p', WM_Key_P, 0}, + {'q', WM_Key_Q, 0}, + {'r', WM_Key_R, 0}, + {'s', WM_Key_S, 0}, + {'t', WM_Key_T, 0}, + {'u', WM_Key_U, 0}, + {'v', WM_Key_V, 0}, + {'w', WM_Key_W, 0}, + {'x', WM_Key_X, 0}, + {'y', WM_Key_Y, 0}, + {'z', WM_Key_Z, 0}, + {'A', WM_Key_A, WM_Modifier_Shift}, + {'B', WM_Key_B, WM_Modifier_Shift}, + {'C', WM_Key_C, WM_Modifier_Shift}, + {'D', WM_Key_D, WM_Modifier_Shift}, + {'E', WM_Key_E, WM_Modifier_Shift}, + {'F', WM_Key_F, WM_Modifier_Shift}, + {'G', WM_Key_G, WM_Modifier_Shift}, + {'H', WM_Key_H, WM_Modifier_Shift}, + {'I', WM_Key_I, WM_Modifier_Shift}, + {'J', WM_Key_J, WM_Modifier_Shift}, + {'K', WM_Key_K, WM_Modifier_Shift}, + {'L', WM_Key_L, WM_Modifier_Shift}, + {'M', WM_Key_M, WM_Modifier_Shift}, + {'N', WM_Key_N, WM_Modifier_Shift}, + {'O', WM_Key_O, WM_Modifier_Shift}, + {'P', WM_Key_P, WM_Modifier_Shift}, + {'Q', WM_Key_Q, WM_Modifier_Shift}, + {'R', WM_Key_R, WM_Modifier_Shift}, + {'S', WM_Key_S, WM_Modifier_Shift}, + {'T', WM_Key_T, WM_Modifier_Shift}, + {'U', WM_Key_U, WM_Modifier_Shift}, + {'V', WM_Key_V, WM_Modifier_Shift}, + {'W', WM_Key_W, WM_Modifier_Shift}, + {'X', WM_Key_X, WM_Modifier_Shift}, + {'Y', WM_Key_Y, WM_Modifier_Shift}, + {'Z', WM_Key_Z, WM_Modifier_Shift}, + {' ', WM_Key_Space, 0}, + }; + + // rjf: check numeric + if(WM_Key_0 <= key && key <= WM_Key_9) + { + result = '0' + (key - WM_Key_0); + } + + // rjf: check special-case map + for(U64 idx = 0; idx < ArrayCount(map); idx += 1) + { + if(map[idx].key == key && map[idx].modifiers == modifiers) + { + result = map[idx].character; + break; + } + } + + return result; +} + +internal void +wm_eat_event(WM_EventList *events, WM_Event *event) +{ + DLLRemove(events->first, events->last, event); + events->count -= 1; +} + +internal B32 +wm_key_press(WM_EventList *events, WM_Window window, WM_Modifiers modifiers, WM_Key key) +{ + B32 result = 0; + for(WM_Event *event = events->first; event != 0; event = event->next) + { + if((wm_window_match(event->window, window) || wm_window_match(window, wm_window_zero())) && + event->kind == WM_EventKind_Press && event->key == key && event->modifiers == modifiers) + { + result = 1; + wm_eat_event(events, event); + break; + } + } + return result; +} + +internal B32 +wm_key_release(WM_EventList *events, WM_Window window, WM_Modifiers modifiers, WM_Key key) +{ + B32 result = 0; + for(WM_Event *event = events->first; event != 0; event = event->next) + { + if((wm_window_match(event->window, window) || wm_window_match(window, wm_window_zero())) && + event->kind == WM_EventKind_Release && event->key == key && event->modifiers == modifiers) + { + result = 1; + wm_eat_event(events, event); + break; + } + } + return result; +} + +internal B32 +wm_text(WM_EventList *events, WM_Window window, U32 character) +{ + B32 result = 0; + for(WM_Event *event = events->first; event != 0; event = event->next) + { + if((wm_window_match(event->window, window) || wm_window_match(window, wm_window_zero())) && + event->kind == WM_EventKind_Text && event->character == character) + { + result = 1; + wm_eat_event(events, event); + break; + } + } + return result; +} + +internal WM_EventList +wm_event_list_copy(Arena *arena, WM_EventList *src) +{ + WM_EventList dst = {0}; + for(WM_Event *s = src->first; s != 0; s = s->next) + { + WM_Event *d = push_array(arena, WM_Event, 1); + MemoryCopyStruct(d, s); + d->strings = str8_list_copy(arena, &s->strings); + DLLPushBack(dst.first, dst.last, d); + dst.count += 1; + } + return dst; +} + +internal void +wm_event_list_concat_in_place(WM_EventList *dst, WM_EventList *to_push) +{ + if(dst->last && to_push->first) + { + dst->last->next = to_push->first; + to_push->first->prev = dst->last; + dst->last = to_push->last; + dst->count += to_push->count; + } + else if(!dst->last && to_push->first) + { + MemoryCopyStruct(dst, to_push); + } + MemoryZeroStruct(to_push); +} + +internal WM_Event * +wm_event_list_push_new(Arena *arena, WM_EventList *evts, WM_EventKind kind) +{ + WM_Event *evt = push_array(arena, WM_Event, 1); + DLLPushBack(evts->first, evts->last, evt); + evts->count += 1; + evt->timestamp_us = now_time_us(); + evt->kind = kind; + return evt; +} diff --git a/src/window_manager/window_manager.h b/src/window_manager/window_manager.h new file mode 100644 index 00000000..b663d1ec --- /dev/null +++ b/src/window_manager/window_manager.h @@ -0,0 +1,246 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WINDOW_MANAGER_H +#define WINDOW_MANAGER_H + +//////////////////////////////// +//~ rjf: Graphics System Info + +typedef struct WM_SystemInfo WM_SystemInfo; +struct WM_SystemInfo +{ + F32 double_click_time; + F32 caret_blink_time; + F32 default_refresh_rate; +}; + +//////////////////////////////// +//~ rjf: Window Types + +typedef U32 WM_WindowFlags; +enum +{ + WM_WindowFlag_CustomBorder = (1<<0), + WM_WindowFlag_UseDefaultPosition = (1<<1), +}; + +typedef struct WM_Window WM_Window; +struct WM_Window +{ + U64 u64[1]; +}; + +//////////////////////////////// +//~ rjf: External Window Types + +typedef struct WM_ExtWindow WM_ExtWindow; +struct WM_ExtWindow +{ + U64 u64[1]; +}; + +//////////////////////////////// +//~ rjf: Monitor Types + +typedef struct WM_Monitor WM_Monitor; +struct WM_Monitor +{ + U64 u64[1]; +}; + +typedef struct WM_MonitorArray WM_MonitorArray; +struct WM_MonitorArray +{ + WM_Monitor *v; + U64 count; +}; + +//////////////////////////////// +//~ rjf: Cursor Types + +typedef enum WM_Cursor +{ + WM_Cursor_Pointer, + WM_Cursor_IBar, + WM_Cursor_LeftRight, + WM_Cursor_UpDown, + WM_Cursor_DownRight, + WM_Cursor_UpRight, + WM_Cursor_UpDownLeftRight, + WM_Cursor_HandPoint, + WM_Cursor_Disabled, + WM_Cursor_COUNT, +} +WM_Cursor; + +//////////////////////////////// +//~ rjf: Generated Code + +#include "window_manager/generated/window_manager.meta.h" + +//////////////////////////////// +//~ rjf: Event Types + +typedef enum WM_EventKind +{ + WM_EventKind_Null, + WM_EventKind_Press, + WM_EventKind_Release, + WM_EventKind_MouseMove, + WM_EventKind_Text, + WM_EventKind_Scroll, + WM_EventKind_WindowLoseFocus, + WM_EventKind_WindowClose, + WM_EventKind_FileDrop, + WM_EventKind_Wakeup, + WM_EventKind_COUNT +} +WM_EventKind; + +typedef U32 WM_Modifiers; +enum +{ + WM_Modifier_Ctrl = (1<<0), + WM_Modifier_Shift = (1<<1), + WM_Modifier_Alt = (1<<2), +}; + +typedef struct WM_Event WM_Event; +struct WM_Event +{ + WM_Event *next; + WM_Event *prev; + U64 timestamp_us; + WM_Window window; + WM_EventKind kind; + WM_Modifiers modifiers; + WM_Key key; + B32 is_repeat; + B32 right_sided; + U32 character; + U32 repeat_count; + Vec2F32 pos; + Vec2F32 delta; + String8List strings; +}; + +typedef struct WM_EventList WM_EventList; +struct WM_EventList +{ + U64 count; + WM_Event *first; + WM_Event *last; +}; + +//////////////////////////////// +//~ rjf: Application-Defined Frame Hook Forward Declaration + +internal B32 frame(void); + +//////////////////////////////// +//~ rjf: Handle Type Helpers + +internal WM_Window wm_window_zero(void); +internal B32 wm_window_match(WM_Window a, WM_Window b); +internal B32 wm_monitor_match(WM_Monitor a, WM_Monitor b); + +//////////////////////////////// +//~ rjf: Event Functions (Helpers, Implemented Once) + +internal String8 wm_string_from_event_kind(WM_EventKind kind); +internal String8List wm_string_list_from_modifiers(Arena *arena, WM_Modifiers flags); +internal String8 wm_string_from_modifiers_key(Arena *arena, WM_Modifiers modifiers, WM_Key key); +internal U32 wm_codepoint_from_modifiers_and_key(WM_Modifiers flags, WM_Key key); +internal void wm_eat_event(WM_EventList *events, WM_Event *event); +internal B32 wm_key_press(WM_EventList *events, WM_Window window, WM_Modifiers modifiers, WM_Key key); +internal B32 wm_key_release(WM_EventList *events, WM_Window window, WM_Modifiers modifiers, WM_Key key); +internal B32 wm_text(WM_EventList *events, WM_Window window, U32 character); +internal WM_EventList wm_event_list_copy(Arena *arena, WM_EventList *src); +internal void wm_event_list_concat_in_place(WM_EventList *dst, WM_EventList *to_push); +internal WM_Event *wm_event_list_push_new(Arena *arena, WM_EventList *evts, WM_EventKind kind); + +//////////////////////////////// +//~ rjf: @per_os_impl Main Initialization API (Implemented Per-OS) + +internal void wm_init(void); + +//////////////////////////////// +//~ rjf: @per_os_impl Graphics System Info (Implemented Per-OS) + +internal WM_SystemInfo *wm_get_system_info(void); + +//////////////////////////////// +//~ rjf: @per_os_impl Clipboards (Implemented Per-OS) + +internal void wm_set_clipboard_text(String8 string); +internal String8 wm_get_clipboard_text(Arena *arena); + +//////////////////////////////// +//~ rjf: @per_os_impl Windows (Implemented Per-OS) + +internal WM_Window wm_window_open(Rng2F32 rect, WM_WindowFlags flags, String8 title); +internal void wm_window_close(WM_Window window); +internal void wm_window_set_title(WM_Window window, String8 title); +internal void wm_window_first_paint(WM_Window window); +internal void wm_window_focus(WM_Window window); +internal B32 wm_window_is_focused(WM_Window window); +internal B32 wm_window_is_fullscreen(WM_Window window); +internal void wm_window_set_fullscreen(WM_Window window, B32 fullscreen); +internal B32 wm_window_is_maximized(WM_Window window); +internal void wm_window_set_maximized(WM_Window window, B32 maximized); +internal B32 wm_window_is_minimized(WM_Window window); +internal void wm_window_set_minimized(WM_Window window, B32 minimized); +internal void wm_window_bring_to_front(WM_Window window); +internal void wm_window_set_monitor(WM_Window window, WM_Monitor monitor); +internal void wm_window_clear_custom_border_data(WM_Window handle); +internal void wm_window_push_custom_title_bar(WM_Window handle, F32 thickness); +internal void wm_window_push_custom_edges(WM_Window handle, F32 thickness); +internal void wm_window_push_custom_title_bar_client_area(WM_Window handle, Rng2F32 rect); +internal Rng2F32 wm_rect_from_window(WM_Window window); +internal Rng2F32 wm_client_rect_from_window(WM_Window window); +internal F32 wm_dpi_from_window(WM_Window window); + +//////////////////////////////// +//~ rjf: @per_os_impl External Windows (Implemented Per-OS) + +internal WM_ExtWindow wm_focused_external_window(void); +internal void wm_focus_external_window(WM_ExtWindow ext_window); + +//////////////////////////////// +//~ rjf: @per_os_impl Monitors (Implemented Per-OS) + +internal WM_MonitorArray wm_push_monitors_array(Arena *arena); +internal WM_Monitor wm_primary_monitor(void); +internal WM_Monitor wm_monitor_from_window(WM_Window window); +internal String8 wm_name_from_monitor(Arena *arena, WM_Monitor monitor); +internal Vec2F32 wm_dim_from_monitor(WM_Monitor monitor); +internal F32 wm_dpi_from_monitor(WM_Monitor monitor); + +//////////////////////////////// +//~ rjf: @per_os_impl Events (Implemented Per-OS) + +internal void wm_send_wakeup_event(void); +internal WM_EventList wm_get_events(Arena *arena, B32 wait); +internal WM_Modifiers wm_get_modifiers(void); +internal B32 wm_key_is_down(WM_Key key); +internal Vec2F32 wm_mouse_from_window(WM_Window window); + +//////////////////////////////// +//~ rjf: @per_os_impl Cursors (Implemented Per-OS) + +internal void wm_set_cursor(WM_Cursor cursor); + +//////////////////////////////// +//~ rjf: @per_os_impl Native User-Facing Graphical Messages (Implemented Per-OS) + +internal void wm_graphical_message(B32 error, String8 title, String8 message); +internal String8 wm_graphical_pick_file(Arena *arena, String8 initial_path); + +//////////////////////////////// +//~ rjf: @per_os_impl Shell Operations + +internal void wm_show_in_filesystem_ui(String8 path); +internal void wm_open_in_browser(String8 url); + +#endif // WINDOW_MANAGER_H diff --git a/src/os/gfx/os_gfx.mdesk b/src/window_manager/window_manager.mdesk similarity index 96% rename from src/os/gfx/os_gfx.mdesk rename to src/window_manager/window_manager.mdesk index fc15a5f2..ffa92dcb 100644 --- a/src/os/gfx/os_gfx.mdesk +++ b/src/window_manager/window_manager.mdesk @@ -1,172 +1,172 @@ -// Copyright (c) Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ rjf: Tables - -@table(name, display_string, cfg_string) -OS_KeyTable: -{ - {Null "Invalid Key" "null" } - {Esc "Escape" "esc" } - {F1 "F1" "f1" } - {F2 "F2" "f2" } - {F3 "F3" "f3" } - {F4 "F4" "f4" } - {F5 "F5" "f5" } - {F6 "F6" "f6" } - {F7 "F7" "f7" } - {F8 "F8" "f8" } - {F9 "F9" "f9" } - {F10 "F10" "f10" } - {F11 "F11" "f11" } - {F12 "F12" "f12" } - {F13 "F13" "f13" } - {F14 "F14" "f14" } - {F15 "F15" "f15" } - {F16 "F16" "f16" } - {F17 "F17" "f17" } - {F18 "F18" "f18" } - {F19 "F19" "f19" } - {F20 "F20" "f20" } - {F21 "F21" "f21" } - {F22 "F22" "f22" } - {F23 "F23" "f23" } - {F24 "F24" "f24" } - {Tick "Tick" "tick" } - {0 "0" "0" } - {1 "1" "1" } - {2 "2" "2" } - {3 "3" "3" } - {4 "4" "4" } - {5 "5" "5" } - {6 "6" "6" } - {7 "7" "7" } - {8 "8" "8" } - {9 "9" "9" } - {Minus "Minus" "minus" } - {Equal "Equal" "equal" } - {Backspace "Backspace" "backspace" } - {Tab "Tab" "tab" } - {Q "Q" "q" } - {W "W" "w" } - {E "E" "e" } - {R "R" "r" } - {T "T" "t" } - {Y "Y" "y" } - {U "U" "u" } - {I "I" "i" } - {O "O" "o" } - {P "P" "p" } - {LeftBracket "Left Bracket" "left_bracket" } - {RightBracket "Right Bracket" "right_bracket" } - {BackSlash "Back Slash" "backslash" } - {CapsLock "Caps Lock" "caps_lock" } - {A "A" "a" } - {S "S" "s" } - {D "D" "d" } - {F "F" "f" } - {G "G" "g" } - {H "H" "h" } - {J "J" "j" } - {K "K" "k" } - {L "L" "l" } - {Semicolon "Semicolon" "semicolon" } - {Quote "Quote" "quote" } - {Return "Return" "return" } - {Shift "Shift" "shift" } - {Z "Z" "z" } - {X "X" "x" } - {C "C" "c" } - {V "V" "v" } - {B "B" "b" } - {N "N" "n" } - {M "M" "m" } - {Comma "Comma" "comma" } - {Period "Period" "period" } - {Slash "Slash" "slash" } - {Ctrl "Ctrl" "ctrl" } - {Alt "Alt" "alt" } - {Space "Space" "space" } - {Menu "Menu" "menu" } - {ScrollLock "Scroll Lock" "scroll_lock" } - {Pause "Pause" "pause" } - {Insert "Insert" "insert" } - {Home "Home" "home" } - {PageUp "Page Up" "page_up" } - {Delete "Delete" "delete" } - {End "End" "end" } - {PageDown "Page Down" "page_down" } - {Up "Up" "up" } - {Left "Left" "left" } - {Down "Down" "down" } - {Right "Right" "right" } - {Ex0 "Ex0" "ex0" } - {Ex1 "Ex1" "ex1" } - {Ex2 "Ex2" "ex2" } - {Ex3 "Ex3" "ex3" } - {Ex4 "Ex4" "ex4" } - {Ex5 "Ex5" "ex5" } - {Ex6 "Ex6" "ex6" } - {Ex7 "Ex7" "ex7" } - {Ex8 "Ex8" "ex8" } - {Ex9 "Ex9" "ex9" } - {Ex10 "Ex10" "ex10" } - {Ex11 "Ex11" "ex11" } - {Ex12 "Ex12" "ex12" } - {Ex13 "Ex13" "ex13" } - {Ex14 "Ex14" "ex14" } - {Ex15 "Ex15" "ex15" } - {Ex16 "Ex16" "ex16" } - {Ex17 "Ex17" "ex17" } - {Ex18 "Ex18" "ex18" } - {Ex19 "Ex19" "ex19" } - {Ex20 "Ex20" "ex20" } - {Ex21 "Ex21" "ex21" } - {Ex22 "Ex22" "ex22" } - {Ex23 "Ex23" "ex23" } - {Ex24 "Ex24" "ex24" } - {Ex25 "Ex25" "ex25" } - {Ex26 "Ex26" "ex26" } - {Ex27 "Ex27" "ex27" } - {Ex28 "Ex28" "ex28" } - {Ex29 "Ex29" "ex29" } - {NumLock "Num Lock" "num_lock" } - {NumSlash "Numpad Slash" "numpad_slash" } - {NumStar "Numpad Star" "numpad_star" } - {NumMinus "Numpad Minus" "numpad_minus" } - {NumPlus "Numpad Plus" "numpad_plus" } - {NumPeriod "Numpad Period" "numpad_period" } - {Num0 "Numpad 0" "numpad_0" } - {Num1 "Numpad 1" "numpad_1" } - {Num2 "Numpad 2" "numpad_2" } - {Num3 "Numpad 3" "numpad_3" } - {Num4 "Numpad 4" "numpad_4" } - {Num5 "Numpad 5" "numpad_5" } - {Num6 "Numpad 6" "numpad_6" } - {Num7 "Numpad 7" "numpad_7" } - {Num8 "Numpad 8" "numpad_8" } - {Num9 "Numpad 9" "numpad_9" } - {LeftMouseButton "Left Mouse Button" "left_mouse" } - {MiddleMouseButton "Middle Mouse Button" "middle_mouse" } - {RightMouseButton "Right Mouse Button" "right_mouse" } -} - -//////////////////////////////// -//~ rjf: Generators - -@enum OS_Key: -{ - @expand(OS_KeyTable a) `$(a.name)`, - COUNT, -} - -@data(String8) os_g_key_display_string_table: -{ - @expand(OS_KeyTable a) `str8_lit_comp("$(a.display_string)")`; -} - -@data(String8) os_g_key_cfg_string_table: -{ - @expand(OS_KeyTable a) `str8_lit_comp("$(a.cfg_string)")`; -} +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Tables + +@table(name, display_string, cfg_string) +WM_KeyTable: +{ + {Null "Invalid Key" "null" } + {Esc "Escape" "esc" } + {F1 "F1" "f1" } + {F2 "F2" "f2" } + {F3 "F3" "f3" } + {F4 "F4" "f4" } + {F5 "F5" "f5" } + {F6 "F6" "f6" } + {F7 "F7" "f7" } + {F8 "F8" "f8" } + {F9 "F9" "f9" } + {F10 "F10" "f10" } + {F11 "F11" "f11" } + {F12 "F12" "f12" } + {F13 "F13" "f13" } + {F14 "F14" "f14" } + {F15 "F15" "f15" } + {F16 "F16" "f16" } + {F17 "F17" "f17" } + {F18 "F18" "f18" } + {F19 "F19" "f19" } + {F20 "F20" "f20" } + {F21 "F21" "f21" } + {F22 "F22" "f22" } + {F23 "F23" "f23" } + {F24 "F24" "f24" } + {Tick "Tick" "tick" } + {0 "0" "0" } + {1 "1" "1" } + {2 "2" "2" } + {3 "3" "3" } + {4 "4" "4" } + {5 "5" "5" } + {6 "6" "6" } + {7 "7" "7" } + {8 "8" "8" } + {9 "9" "9" } + {Minus "Minus" "minus" } + {Equal "Equal" "equal" } + {Backspace "Backspace" "backspace" } + {Tab "Tab" "tab" } + {Q "Q" "q" } + {W "W" "w" } + {E "E" "e" } + {R "R" "r" } + {T "T" "t" } + {Y "Y" "y" } + {U "U" "u" } + {I "I" "i" } + {O "O" "o" } + {P "P" "p" } + {LeftBracket "Left Bracket" "left_bracket" } + {RightBracket "Right Bracket" "right_bracket" } + {BackSlash "Back Slash" "backslash" } + {CapsLock "Caps Lock" "caps_lock" } + {A "A" "a" } + {S "S" "s" } + {D "D" "d" } + {F "F" "f" } + {G "G" "g" } + {H "H" "h" } + {J "J" "j" } + {K "K" "k" } + {L "L" "l" } + {Semicolon "Semicolon" "semicolon" } + {Quote "Quote" "quote" } + {Return "Return" "return" } + {Shift "Shift" "shift" } + {Z "Z" "z" } + {X "X" "x" } + {C "C" "c" } + {V "V" "v" } + {B "B" "b" } + {N "N" "n" } + {M "M" "m" } + {Comma "Comma" "comma" } + {Period "Period" "period" } + {Slash "Slash" "slash" } + {Ctrl "Ctrl" "ctrl" } + {Alt "Alt" "alt" } + {Space "Space" "space" } + {Menu "Menu" "menu" } + {ScrollLock "Scroll Lock" "scroll_lock" } + {Pause "Pause" "pause" } + {Insert "Insert" "insert" } + {Home "Home" "home" } + {PageUp "Page Up" "page_up" } + {Delete "Delete" "delete" } + {End "End" "end" } + {PageDown "Page Down" "page_down" } + {Up "Up" "up" } + {Left "Left" "left" } + {Down "Down" "down" } + {Right "Right" "right" } + {Ex0 "Ex0" "ex0" } + {Ex1 "Ex1" "ex1" } + {Ex2 "Ex2" "ex2" } + {Ex3 "Ex3" "ex3" } + {Ex4 "Ex4" "ex4" } + {Ex5 "Ex5" "ex5" } + {Ex6 "Ex6" "ex6" } + {Ex7 "Ex7" "ex7" } + {Ex8 "Ex8" "ex8" } + {Ex9 "Ex9" "ex9" } + {Ex10 "Ex10" "ex10" } + {Ex11 "Ex11" "ex11" } + {Ex12 "Ex12" "ex12" } + {Ex13 "Ex13" "ex13" } + {Ex14 "Ex14" "ex14" } + {Ex15 "Ex15" "ex15" } + {Ex16 "Ex16" "ex16" } + {Ex17 "Ex17" "ex17" } + {Ex18 "Ex18" "ex18" } + {Ex19 "Ex19" "ex19" } + {Ex20 "Ex20" "ex20" } + {Ex21 "Ex21" "ex21" } + {Ex22 "Ex22" "ex22" } + {Ex23 "Ex23" "ex23" } + {Ex24 "Ex24" "ex24" } + {Ex25 "Ex25" "ex25" } + {Ex26 "Ex26" "ex26" } + {Ex27 "Ex27" "ex27" } + {Ex28 "Ex28" "ex28" } + {Ex29 "Ex29" "ex29" } + {NumLock "Num Lock" "num_lock" } + {NumSlash "Numpad Slash" "numpad_slash" } + {NumStar "Numpad Star" "numpad_star" } + {NumMinus "Numpad Minus" "numpad_minus" } + {NumPlus "Numpad Plus" "numpad_plus" } + {NumPeriod "Numpad Period" "numpad_period" } + {Num0 "Numpad 0" "numpad_0" } + {Num1 "Numpad 1" "numpad_1" } + {Num2 "Numpad 2" "numpad_2" } + {Num3 "Numpad 3" "numpad_3" } + {Num4 "Numpad 4" "numpad_4" } + {Num5 "Numpad 5" "numpad_5" } + {Num6 "Numpad 6" "numpad_6" } + {Num7 "Numpad 7" "numpad_7" } + {Num8 "Numpad 8" "numpad_8" } + {Num9 "Numpad 9" "numpad_9" } + {LeftMouseButton "Left Mouse Button" "left_mouse" } + {MiddleMouseButton "Middle Mouse Button" "middle_mouse" } + {RightMouseButton "Right Mouse Button" "right_mouse" } +} + +//////////////////////////////// +//~ rjf: Generators + +@enum WM_Key: +{ + @expand(WM_KeyTable a) `$(a.name)`, + COUNT, +} + +@data(String8) wm_key_display_name_table: +{ + @expand(WM_KeyTable a) `str8_lit_comp("$(a.display_string)")`; +} + +@data(String8) wm_key_cfg_name_table: +{ + @expand(WM_KeyTable a) `str8_lit_comp("$(a.cfg_string)")`; +} diff --git a/src/window_manager/window_manager_inc.c b/src/window_manager/window_manager_inc.c new file mode 100644 index 00000000..5e83758c --- /dev/null +++ b/src/window_manager/window_manager_inc.c @@ -0,0 +1,13 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#include "window_manager.c" +#if WM_STUB +# include "window_manager_stub.c" +#elif OS_WINDOWS +# include "win32/window_manager/win32_window_manager.c" +#elif OS_LINUX +# include "linux/window_manager/linux_window_manager.c" +#else +# error Window manager layer not implemented for this operating system. +#endif diff --git a/src/window_manager/window_manager_inc.h b/src/window_manager/window_manager_inc.h new file mode 100644 index 00000000..69463a64 --- /dev/null +++ b/src/window_manager/window_manager_inc.h @@ -0,0 +1,18 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WINDOW_MANAGER_INC_H +#define WINDOW_MANAGER_INC_H + +#include "window_manager.h" +#if WM_STUB +# include "window_manager_stub.h" +#elif OS_WINDOWS +# include "win32/window_manager/win32_window_manager.h" +#elif OS_LINUX +# include "linux/window_manager/linux_window_manager.h" +#else +# error Window manager layer not implemented for this operating system. +#endif + +#endif // WINDOW_MANAGER_INC_H diff --git a/src/window_manager/window_manager_stub.c b/src/window_manager/window_manager_stub.c new file mode 100644 index 00000000..0bb99c47 --- /dev/null +++ b/src/window_manager/window_manager_stub.c @@ -0,0 +1,278 @@ +//////////////////////////////// +//~ rjf: @per_os_impl Main Initialization API (Implemented Per-OS) + +internal void +wm_init(void) +{ +} + +//////////////////////////////// +//~ rjf: @per_os_impl Graphics System Info (Implemented Per-OS) + +internal WM_SystemInfo * +wm_get_system_info(void) +{ + local_persist WM_SystemInfo g = {0}; + g.default_refresh_rate = 60.f; + return &g; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Clipboards (Implemented Per-OS) + +internal void +wm_set_clipboard_text(String8 string) +{ +} + +internal String8 +wm_get_clipboard_text(Arena *arena) +{ + return str8_zero(); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Windows (Implemented Per-OS) + +internal WM_Window +wm_window_open(Rng2F32 rect, WM_WindowFlags flags, String8 title) +{ + WM_Window handle = {1}; + return handle; +} + +internal void +wm_window_close(WM_Window window) +{ +} + +internal void +wm_window_set_title(WM_Window window, String8 title) +{ +} + +internal void +wm_window_first_paint(WM_Window window) +{ +} + +internal void +wm_window_focus(WM_Window window) +{ +} + +internal B32 +wm_window_is_focused(WM_Window window) +{ + return 0; +} + +internal B32 +wm_window_is_fullscreen(WM_Window window) +{ + return 0; +} + +internal void +wm_window_set_fullscreen(WM_Window window, B32 fullscreen) +{ +} + +internal B32 +wm_window_is_maximized(WM_Window window) +{ + return 0; +} + +internal void +wm_window_set_maximized(WM_Window window, B32 maximized) +{ +} + +internal B32 +wm_window_is_minimized(WM_Window window) +{ + return 0; +} + +internal void +wm_window_set_minimized(WM_Window window, B32 minimized) +{ +} + +internal void +wm_window_bring_to_front(WM_Window window) +{ +} + +internal void +wm_window_set_monitor(WM_Window window, WM_Monitor monitor) +{ +} + +internal void +wm_window_clear_custom_border_data(WM_Window handle) +{ +} + +internal void +wm_window_push_custom_title_bar(WM_Window handle, F32 thickness) +{ +} + +internal void +wm_window_push_custom_edges(WM_Window handle, F32 thickness) +{ +} + +internal void +wm_window_push_custom_title_bar_client_area(WM_Window handle, Rng2F32 rect) +{ +} + +internal Rng2F32 +wm_rect_from_window(WM_Window window) +{ + Rng2F32 rect = r2f32(v2f32(0, 0), v2f32(500, 500)); + return rect; +} + +internal Rng2F32 +wm_client_rect_from_window(WM_Window window) +{ + Rng2F32 rect = r2f32(v2f32(0, 0), v2f32(500, 500)); + return rect; +} + +internal F32 +wm_dpi_from_window(WM_Window window) +{ + return 96.f; +} + +//////////////////////////////// +//~ rjf: @per_os_impl External Windows (Implemented Per-OS) + +internal WM_ExtWindow +wm_focused_external_window(void) +{ + WM_ExtWindow result = {0}; + return result; +} + +internal void +wm_focus_external_window(WM_ExtWindow handle) +{ +} + +//////////////////////////////// +//~ rjf: @per_os_impl Monitors (Implemented Per-OS) + +internal WM_MonitorArray +wm_push_monitors_array(Arena *arena) +{ + WM_MonitorArray arr = {0}; + return arr; +} + +internal WM_Monitor +wm_primary_monitor(void) +{ + WM_Monitor handle = {1}; + return handle; +} + +internal WM_Monitor +wm_monitor_from_window(WM_Window window) +{ + WM_Monitor handle = {1}; + return handle; +} + +internal String8 +wm_name_from_monitor(Arena *arena, WM_Monitor monitor) +{ + return str8_zero(); +} + +internal Vec2F32 +wm_dim_from_monitor(WM_Monitor monitor) +{ + Vec2F32 v = v2f32(1000, 1000); + return v; +} + +internal F32 +wm_dpi_from_monitor(WM_Monitor monitor) +{ + return 96.f; +} + +//////////////////////////////// +//~ rjf: @per_os_impl Events (Implemented Per-OS) + +internal void +wm_send_wakeup_event(void) +{ +} + +internal WM_EventList +wm_get_events(Arena *arena, B32 wait) +{ + WM_EventList evts = {0}; + return evts; +} + +internal WM_Modifiers +wm_get_modifiers(void) +{ + WM_Modifiers f = 0; + return f; +} + +internal B32 +wm_key_is_down(WM_Key key) +{ + return 0; +} + +internal Vec2F32 +wm_mouse_from_window(WM_Window window) +{ + return v2f32(0, 0); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Cursors (Implemented Per-OS) + +internal void +wm_set_cursor(WM_Cursor cursor) +{ +} + +//////////////////////////////// +//~ rjf: @per_os_impl Native User-Facing Graphical Messages (Implemented Per-OS) + +internal void +wm_graphical_message(B32 error, String8 title, String8 message) +{ +} + +internal String8 +wm_graphical_pick_file(Arena *arena, String8 initial_path) +{ + return str8_zero(); +} + +//////////////////////////////// +//~ rjf: @per_os_impl Shell Operations + +internal void +wm_show_in_filesystem_ui(String8 path) +{ +} + +internal void +wm_open_in_browser(String8 url) +{ +} diff --git a/src/window_manager/window_manager_stub.h b/src/window_manager/window_manager_stub.h new file mode 100644 index 00000000..23495c09 --- /dev/null +++ b/src/window_manager/window_manager_stub.h @@ -0,0 +1,7 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef WINDOW_MANAGER_STUB_H +#define WINDOW_MANAGER_STUB_H + +#endif // WINDOW_MANAGER_STUB_H diff --git a/src/x64/disasm/x64_disasm.c b/src/x64/disasm/x64_disasm.c new file mode 100644 index 00000000..2f71876f --- /dev/null +++ b/src/x64/disasm/x64_disasm.c @@ -0,0 +1,469 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#if !defined(ZYDIS_H) +#include "third_party/zydis/zydis.h" +#include "third_party/zydis/zydis.c" +#endif + +internal DASM_Inst +x64_dasm_inst_from_code(Arena *arena, U64 vaddr, String8 code, DASM_Syntax syntax) +{ + DASM_Inst inst = {0}; + + ////////////////////////////// + //- rjf: determine zydis formatter style + // + ZydisFormatterStyle style = ZYDIS_FORMATTER_STYLE_INTEL; + switch(syntax) + { + default:{}break; + case DASM_Syntax_Intel:{style = ZYDIS_FORMATTER_STYLE_INTEL;}break; + case DASM_Syntax_ATT: {style = ZYDIS_FORMATTER_STYLE_ATT;}break; + } + + ////////////////////////////// + //- rjf: disassemble one instruction + // + ZydisDisassembledInstruction zinst = {0}; + ZyanStatus status = ZydisDisassemble(ZYDIS_MACHINE_MODE_LONG_64, vaddr, code.str, code.size, &zinst, style); + + ////////////////////////////// + //- rjf: analyze + // + DASM_InstFlags flags = 0; + U64 dst_vaddr = 0; + X64_RegCode src_reg_code = 0; + X64_RegCode dst_reg_code = 0; + S64 src_reg_off = 0; + S64 dst_reg_off = 0; + { + //- rjf: unpack operands + ZydisDecodedOperand *first_visible_op = (zinst.info.operand_count_visible > 0 ? &zinst.operands[0] : 0); + ZydisDecodedOperand *first_op = (zinst.info.operand_count > 0 ? &zinst.operands[0] : 0); + ZydisDecodedOperand *second_op = (zinst.info.operand_count > 1 ? &zinst.operands[1] : 0); + + //- rjf: extract registers from operands + ZydisRegister zydis_reg_codes[2] = {0}; + if(first_op != 0 && first_op->type == ZYDIS_OPERAND_TYPE_REGISTER) + { + zydis_reg_codes[0] = first_op->reg.value; + } + if(first_op != 0 && first_op->type == ZYDIS_OPERAND_TYPE_MEMORY) + { + zydis_reg_codes[0] = first_op->mem.base; + } + if(second_op != 0 && second_op->type == ZYDIS_OPERAND_TYPE_REGISTER) + { + zydis_reg_codes[1] = second_op->reg.value; + } + if(second_op != 0 && second_op->type == ZYDIS_OPERAND_TYPE_MEMORY) + { + zydis_reg_codes[1] = second_op->mem.base; + } + + //- rjf: map zydis registers -> x64 layer + X64_RegCode x64_reg_codes[2] = {0}; + for EachElement(reg_code_idx, zydis_reg_codes) + { + ZydisRegister src_reg = zydis_reg_codes[reg_code_idx]; + X64_RegCode dst_reg = 0; + switch(src_reg) + { + default:{}break; + case ZYDIS_REGISTER_AL:{dst_reg = X64_RegCode_al;}break; + case ZYDIS_REGISTER_CL:{dst_reg = X64_RegCode_cl;}break; + case ZYDIS_REGISTER_DL:{dst_reg = X64_RegCode_dl;}break; + case ZYDIS_REGISTER_BL:{dst_reg = X64_RegCode_bl;}break; + case ZYDIS_REGISTER_AH:{dst_reg = X64_RegCode_ah;}break; + case ZYDIS_REGISTER_CH:{dst_reg = X64_RegCode_ch;}break; + case ZYDIS_REGISTER_DH:{dst_reg = X64_RegCode_dh;}break; + case ZYDIS_REGISTER_BH:{dst_reg = X64_RegCode_bh;}break; + case ZYDIS_REGISTER_SPL:{dst_reg = X64_RegCode_spl;}break; + case ZYDIS_REGISTER_BPL:{dst_reg = X64_RegCode_bpl;}break; + case ZYDIS_REGISTER_SIL:{dst_reg = X64_RegCode_sil;}break; + case ZYDIS_REGISTER_DIL:{dst_reg = X64_RegCode_dil;}break; + case ZYDIS_REGISTER_R8B:{dst_reg = X64_RegCode_r8b;}break; + case ZYDIS_REGISTER_R9B:{dst_reg = X64_RegCode_r9b;}break; + case ZYDIS_REGISTER_R10B:{dst_reg = X64_RegCode_r10b;}break; + case ZYDIS_REGISTER_R11B:{dst_reg = X64_RegCode_r11b;}break; + case ZYDIS_REGISTER_R12B:{dst_reg = X64_RegCode_r12b;}break; + case ZYDIS_REGISTER_R13B:{dst_reg = X64_RegCode_r13b;}break; + case ZYDIS_REGISTER_R14B:{dst_reg = X64_RegCode_r14b;}break; + case ZYDIS_REGISTER_R15B:{dst_reg = X64_RegCode_r15b;}break; + case ZYDIS_REGISTER_AX:{dst_reg = X64_RegCode_ax;}break; + case ZYDIS_REGISTER_CX:{dst_reg = X64_RegCode_cx;}break; + case ZYDIS_REGISTER_DX:{dst_reg = X64_RegCode_dx;}break; + case ZYDIS_REGISTER_BX:{dst_reg = X64_RegCode_bx;}break; + case ZYDIS_REGISTER_SP:{dst_reg = X64_RegCode_sp;}break; + case ZYDIS_REGISTER_BP:{dst_reg = X64_RegCode_bp;}break; + case ZYDIS_REGISTER_SI:{dst_reg = X64_RegCode_si;}break; + case ZYDIS_REGISTER_DI:{dst_reg = X64_RegCode_di;}break; + case ZYDIS_REGISTER_R8W:{dst_reg = X64_RegCode_r8w;}break; + case ZYDIS_REGISTER_R9W:{dst_reg = X64_RegCode_r9w;}break; + case ZYDIS_REGISTER_R10W:{dst_reg = X64_RegCode_r10w;}break; + case ZYDIS_REGISTER_R11W:{dst_reg = X64_RegCode_r11w;}break; + case ZYDIS_REGISTER_R12W:{dst_reg = X64_RegCode_r12w;}break; + case ZYDIS_REGISTER_R13W:{dst_reg = X64_RegCode_r13w;}break; + case ZYDIS_REGISTER_R14W:{dst_reg = X64_RegCode_r14w;}break; + case ZYDIS_REGISTER_R15W:{dst_reg = X64_RegCode_r15w;}break; + case ZYDIS_REGISTER_EAX:{dst_reg = X64_RegCode_eax;}break; + case ZYDIS_REGISTER_ECX:{dst_reg = X64_RegCode_ecx;}break; + case ZYDIS_REGISTER_EDX:{dst_reg = X64_RegCode_edx;}break; + case ZYDIS_REGISTER_EBX:{dst_reg = X64_RegCode_ebx;}break; + case ZYDIS_REGISTER_ESP:{dst_reg = X64_RegCode_esp;}break; + case ZYDIS_REGISTER_EBP:{dst_reg = X64_RegCode_ebp;}break; + case ZYDIS_REGISTER_ESI:{dst_reg = X64_RegCode_esi;}break; + case ZYDIS_REGISTER_EDI:{dst_reg = X64_RegCode_edi;}break; + case ZYDIS_REGISTER_R8D:{dst_reg = X64_RegCode_r8d;}break; + case ZYDIS_REGISTER_R9D:{dst_reg = X64_RegCode_r9d;}break; + case ZYDIS_REGISTER_R10D:{dst_reg = X64_RegCode_r10d;}break; + case ZYDIS_REGISTER_R11D:{dst_reg = X64_RegCode_r11d;}break; + case ZYDIS_REGISTER_R12D:{dst_reg = X64_RegCode_r12d;}break; + case ZYDIS_REGISTER_R13D:{dst_reg = X64_RegCode_r13d;}break; + case ZYDIS_REGISTER_R14D:{dst_reg = X64_RegCode_r14d;}break; + case ZYDIS_REGISTER_R15D:{dst_reg = X64_RegCode_r15d;}break; + case ZYDIS_REGISTER_RAX:{dst_reg = X64_RegCode_rax;}break; + case ZYDIS_REGISTER_RCX:{dst_reg = X64_RegCode_rcx;}break; + case ZYDIS_REGISTER_RDX:{dst_reg = X64_RegCode_rdx;}break; + case ZYDIS_REGISTER_RBX:{dst_reg = X64_RegCode_rbx;}break; + case ZYDIS_REGISTER_RSP:{dst_reg = X64_RegCode_rsp;}break; + case ZYDIS_REGISTER_RBP:{dst_reg = X64_RegCode_rbp;}break; + case ZYDIS_REGISTER_RSI:{dst_reg = X64_RegCode_rsi;}break; + case ZYDIS_REGISTER_RDI:{dst_reg = X64_RegCode_rdi;}break; + case ZYDIS_REGISTER_R8:{dst_reg = X64_RegCode_r8;}break; + case ZYDIS_REGISTER_R9:{dst_reg = X64_RegCode_r9;}break; + case ZYDIS_REGISTER_R10:{dst_reg = X64_RegCode_r10;}break; + case ZYDIS_REGISTER_R11:{dst_reg = X64_RegCode_r11;}break; + case ZYDIS_REGISTER_R12:{dst_reg = X64_RegCode_r12;}break; + case ZYDIS_REGISTER_R13:{dst_reg = X64_RegCode_r13;}break; + case ZYDIS_REGISTER_R14:{dst_reg = X64_RegCode_r14;}break; + case ZYDIS_REGISTER_R15:{dst_reg = X64_RegCode_r15;}break; + case ZYDIS_REGISTER_ST0:{dst_reg = X64_RegCode_st0;}break; + case ZYDIS_REGISTER_ST1:{dst_reg = X64_RegCode_st1;}break; + case ZYDIS_REGISTER_ST2:{dst_reg = X64_RegCode_st2;}break; + case ZYDIS_REGISTER_ST3:{dst_reg = X64_RegCode_st3;}break; + case ZYDIS_REGISTER_ST4:{dst_reg = X64_RegCode_st4;}break; + case ZYDIS_REGISTER_ST5:{dst_reg = X64_RegCode_st5;}break; + case ZYDIS_REGISTER_ST6:{dst_reg = X64_RegCode_st6;}break; + case ZYDIS_REGISTER_ST7:{dst_reg = X64_RegCode_st7;}break; + case ZYDIS_REGISTER_MM0:{dst_reg = X64_RegCode_mm0;}break; + case ZYDIS_REGISTER_MM1:{dst_reg = X64_RegCode_mm1;}break; + case ZYDIS_REGISTER_MM2:{dst_reg = X64_RegCode_mm2;}break; + case ZYDIS_REGISTER_MM3:{dst_reg = X64_RegCode_mm3;}break; + case ZYDIS_REGISTER_MM4:{dst_reg = X64_RegCode_mm4;}break; + case ZYDIS_REGISTER_MM5:{dst_reg = X64_RegCode_mm5;}break; + case ZYDIS_REGISTER_MM6:{dst_reg = X64_RegCode_mm6;}break; + case ZYDIS_REGISTER_MM7:{dst_reg = X64_RegCode_mm7;}break; + case ZYDIS_REGISTER_XMM0:{dst_reg = X64_RegCode_xmm0;}break; + case ZYDIS_REGISTER_XMM1:{dst_reg = X64_RegCode_xmm1;}break; + case ZYDIS_REGISTER_XMM2:{dst_reg = X64_RegCode_xmm2;}break; + case ZYDIS_REGISTER_XMM3:{dst_reg = X64_RegCode_xmm3;}break; + case ZYDIS_REGISTER_XMM4:{dst_reg = X64_RegCode_xmm4;}break; + case ZYDIS_REGISTER_XMM5:{dst_reg = X64_RegCode_xmm5;}break; + case ZYDIS_REGISTER_XMM6:{dst_reg = X64_RegCode_xmm6;}break; + case ZYDIS_REGISTER_XMM7:{dst_reg = X64_RegCode_xmm7;}break; + case ZYDIS_REGISTER_XMM8:{dst_reg = X64_RegCode_xmm8;}break; + case ZYDIS_REGISTER_XMM9:{dst_reg = X64_RegCode_xmm9;}break; + case ZYDIS_REGISTER_XMM10:{dst_reg = X64_RegCode_xmm10;}break; + case ZYDIS_REGISTER_XMM11:{dst_reg = X64_RegCode_xmm11;}break; + case ZYDIS_REGISTER_XMM12:{dst_reg = X64_RegCode_xmm12;}break; + case ZYDIS_REGISTER_XMM13:{dst_reg = X64_RegCode_xmm13;}break; + case ZYDIS_REGISTER_XMM14:{dst_reg = X64_RegCode_xmm14;}break; + case ZYDIS_REGISTER_XMM15:{dst_reg = X64_RegCode_xmm15;}break; + case ZYDIS_REGISTER_YMM0:{dst_reg = X64_RegCode_ymm0;}break; + case ZYDIS_REGISTER_YMM1:{dst_reg = X64_RegCode_ymm1;}break; + case ZYDIS_REGISTER_YMM2:{dst_reg = X64_RegCode_ymm2;}break; + case ZYDIS_REGISTER_YMM3:{dst_reg = X64_RegCode_ymm3;}break; + case ZYDIS_REGISTER_YMM4:{dst_reg = X64_RegCode_ymm4;}break; + case ZYDIS_REGISTER_YMM5:{dst_reg = X64_RegCode_ymm5;}break; + case ZYDIS_REGISTER_YMM6:{dst_reg = X64_RegCode_ymm6;}break; + case ZYDIS_REGISTER_YMM7:{dst_reg = X64_RegCode_ymm7;}break; + case ZYDIS_REGISTER_YMM8:{dst_reg = X64_RegCode_ymm8;}break; + case ZYDIS_REGISTER_YMM9:{dst_reg = X64_RegCode_ymm9;}break; + case ZYDIS_REGISTER_YMM10:{dst_reg = X64_RegCode_ymm10;}break; + case ZYDIS_REGISTER_YMM11:{dst_reg = X64_RegCode_ymm11;}break; + case ZYDIS_REGISTER_YMM12:{dst_reg = X64_RegCode_ymm12;}break; + case ZYDIS_REGISTER_YMM13:{dst_reg = X64_RegCode_ymm13;}break; + case ZYDIS_REGISTER_YMM14:{dst_reg = X64_RegCode_ymm14;}break; + case ZYDIS_REGISTER_YMM15:{dst_reg = X64_RegCode_ymm15;}break; + case ZYDIS_REGISTER_ZMM0:{dst_reg = X64_RegCode_zmm0;}break; + case ZYDIS_REGISTER_ZMM1:{dst_reg = X64_RegCode_zmm1;}break; + case ZYDIS_REGISTER_ZMM2:{dst_reg = X64_RegCode_zmm2;}break; + case ZYDIS_REGISTER_ZMM3:{dst_reg = X64_RegCode_zmm3;}break; + case ZYDIS_REGISTER_ZMM4:{dst_reg = X64_RegCode_zmm4;}break; + case ZYDIS_REGISTER_ZMM5:{dst_reg = X64_RegCode_zmm5;}break; + case ZYDIS_REGISTER_ZMM6:{dst_reg = X64_RegCode_zmm6;}break; + case ZYDIS_REGISTER_ZMM7:{dst_reg = X64_RegCode_zmm7;}break; + case ZYDIS_REGISTER_ZMM8:{dst_reg = X64_RegCode_zmm8;}break; + case ZYDIS_REGISTER_ZMM9:{dst_reg = X64_RegCode_zmm9;}break; + case ZYDIS_REGISTER_ZMM10:{dst_reg = X64_RegCode_zmm10;}break; + case ZYDIS_REGISTER_ZMM11:{dst_reg = X64_RegCode_zmm11;}break; + case ZYDIS_REGISTER_ZMM12:{dst_reg = X64_RegCode_zmm12;}break; + case ZYDIS_REGISTER_ZMM13:{dst_reg = X64_RegCode_zmm13;}break; + case ZYDIS_REGISTER_ZMM14:{dst_reg = X64_RegCode_zmm14;}break; + case ZYDIS_REGISTER_ZMM15:{dst_reg = X64_RegCode_zmm15;}break; + case ZYDIS_REGISTER_ZMM16:{dst_reg = X64_RegCode_zmm16;}break; + case ZYDIS_REGISTER_ZMM17:{dst_reg = X64_RegCode_zmm17;}break; + case ZYDIS_REGISTER_ZMM18:{dst_reg = X64_RegCode_zmm18;}break; + case ZYDIS_REGISTER_ZMM19:{dst_reg = X64_RegCode_zmm19;}break; + case ZYDIS_REGISTER_ZMM20:{dst_reg = X64_RegCode_zmm20;}break; + case ZYDIS_REGISTER_ZMM21:{dst_reg = X64_RegCode_zmm21;}break; + case ZYDIS_REGISTER_ZMM22:{dst_reg = X64_RegCode_zmm22;}break; + case ZYDIS_REGISTER_ZMM23:{dst_reg = X64_RegCode_zmm23;}break; + case ZYDIS_REGISTER_ZMM24:{dst_reg = X64_RegCode_zmm24;}break; + case ZYDIS_REGISTER_ZMM25:{dst_reg = X64_RegCode_zmm25;}break; + case ZYDIS_REGISTER_ZMM26:{dst_reg = X64_RegCode_zmm26;}break; + case ZYDIS_REGISTER_ZMM27:{dst_reg = X64_RegCode_zmm27;}break; + case ZYDIS_REGISTER_ZMM28:{dst_reg = X64_RegCode_zmm28;}break; + case ZYDIS_REGISTER_ZMM29:{dst_reg = X64_RegCode_zmm29;}break; + case ZYDIS_REGISTER_ZMM30:{dst_reg = X64_RegCode_zmm30;}break; + case ZYDIS_REGISTER_ZMM31:{dst_reg = X64_RegCode_zmm31;}break; + case ZYDIS_REGISTER_EFLAGS:{dst_reg = X64_RegCode_eflags;}break; + case ZYDIS_REGISTER_RFLAGS:{dst_reg = X64_RegCode_rflags;}break; + case ZYDIS_REGISTER_IP:{dst_reg = X64_RegCode_ip;}break; + case ZYDIS_REGISTER_RIP:{dst_reg = X64_RegCode_rip;}break; + case ZYDIS_REGISTER_ES:{dst_reg = X64_RegCode_es;}break; + case ZYDIS_REGISTER_CS:{dst_reg = X64_RegCode_cs;}break; + case ZYDIS_REGISTER_SS:{dst_reg = X64_RegCode_ss;}break; + case ZYDIS_REGISTER_DS:{dst_reg = X64_RegCode_ds;}break; + case ZYDIS_REGISTER_FS:{dst_reg = X64_RegCode_fs;}break; + case ZYDIS_REGISTER_GS:{dst_reg = X64_RegCode_gs;}break; + case ZYDIS_REGISTER_DR0:{dst_reg = X64_RegCode_dr0;}break; + case ZYDIS_REGISTER_DR1:{dst_reg = X64_RegCode_dr1;}break; + case ZYDIS_REGISTER_DR2:{dst_reg = X64_RegCode_dr2;}break; + case ZYDIS_REGISTER_DR3:{dst_reg = X64_RegCode_dr3;}break; + case ZYDIS_REGISTER_DR4:{dst_reg = X64_RegCode_dr4;}break; + case ZYDIS_REGISTER_DR5:{dst_reg = X64_RegCode_dr5;}break; + case ZYDIS_REGISTER_DR6:{dst_reg = X64_RegCode_dr6;}break; + case ZYDIS_REGISTER_DR7:{dst_reg = X64_RegCode_dr7;}break; + case ZYDIS_REGISTER_K0:{dst_reg = X64_RegCode_k0;}break; + case ZYDIS_REGISTER_K1:{dst_reg = X64_RegCode_k1;}break; + case ZYDIS_REGISTER_K2:{dst_reg = X64_RegCode_k2;}break; + case ZYDIS_REGISTER_K3:{dst_reg = X64_RegCode_k3;}break; + case ZYDIS_REGISTER_K4:{dst_reg = X64_RegCode_k4;}break; + case ZYDIS_REGISTER_K5:{dst_reg = X64_RegCode_k5;}break; + case ZYDIS_REGISTER_K6:{dst_reg = X64_RegCode_k6;}break; + case ZYDIS_REGISTER_K7:{dst_reg = X64_RegCode_k7;}break; + case ZYDIS_REGISTER_MXCSR:{dst_reg = X64_RegCode_mxcsr;}break; + + // rjf: currently unsupported by debugger: +#if 0 + case ZYDIS_REGISTER_EIP:{dst_reg = X64_RegCode_eip;}break; + case ZYDIS_REGISTER_X87CONTROL:{dst_reg = X64_RegCode_x87control;}break; + case ZYDIS_REGISTER_X87STATUS:{dst_reg = X64_RegCode_x87status;}break; + case ZYDIS_REGISTER_X87TAG:{dst_reg = X64_RegCode_x87tag;}break; + case ZYDIS_REGISTER_XMM16:{dst_reg = X64_RegCode_xmm16;}break; + case ZYDIS_REGISTER_XMM17:{dst_reg = X64_RegCode_xmm17;}break; + case ZYDIS_REGISTER_XMM18:{dst_reg = X64_RegCode_xmm18;}break; + case ZYDIS_REGISTER_XMM19:{dst_reg = X64_RegCode_xmm19;}break; + case ZYDIS_REGISTER_XMM20:{dst_reg = X64_RegCode_xmm20;}break; + case ZYDIS_REGISTER_XMM21:{dst_reg = X64_RegCode_xmm21;}break; + case ZYDIS_REGISTER_XMM22:{dst_reg = X64_RegCode_xmm22;}break; + case ZYDIS_REGISTER_XMM23:{dst_reg = X64_RegCode_xmm23;}break; + case ZYDIS_REGISTER_XMM24:{dst_reg = X64_RegCode_xmm24;}break; + case ZYDIS_REGISTER_XMM25:{dst_reg = X64_RegCode_xmm25;}break; + case ZYDIS_REGISTER_XMM26:{dst_reg = X64_RegCode_xmm26;}break; + case ZYDIS_REGISTER_XMM27:{dst_reg = X64_RegCode_xmm27;}break; + case ZYDIS_REGISTER_XMM28:{dst_reg = X64_RegCode_xmm28;}break; + case ZYDIS_REGISTER_XMM29:{dst_reg = X64_RegCode_xmm29;}break; + case ZYDIS_REGISTER_XMM30:{dst_reg = X64_RegCode_xmm30;}break; + case ZYDIS_REGISTER_XMM31:{dst_reg = X64_RegCode_xmm31;}break; + case ZYDIS_REGISTER_YMM16:{dst_reg = X64_RegCode_ymm16;}break; + case ZYDIS_REGISTER_YMM17:{dst_reg = X64_RegCode_ymm17;}break; + case ZYDIS_REGISTER_YMM18:{dst_reg = X64_RegCode_ymm18;}break; + case ZYDIS_REGISTER_YMM19:{dst_reg = X64_RegCode_ymm19;}break; + case ZYDIS_REGISTER_YMM20:{dst_reg = X64_RegCode_ymm20;}break; + case ZYDIS_REGISTER_YMM21:{dst_reg = X64_RegCode_ymm21;}break; + case ZYDIS_REGISTER_YMM22:{dst_reg = X64_RegCode_ymm22;}break; + case ZYDIS_REGISTER_YMM23:{dst_reg = X64_RegCode_ymm23;}break; + case ZYDIS_REGISTER_YMM24:{dst_reg = X64_RegCode_ymm24;}break; + case ZYDIS_REGISTER_YMM25:{dst_reg = X64_RegCode_ymm25;}break; + case ZYDIS_REGISTER_YMM26:{dst_reg = X64_RegCode_ymm26;}break; + case ZYDIS_REGISTER_YMM27:{dst_reg = X64_RegCode_ymm27;}break; + case ZYDIS_REGISTER_YMM28:{dst_reg = X64_RegCode_ymm28;}break; + case ZYDIS_REGISTER_YMM29:{dst_reg = X64_RegCode_ymm29;}break; + case ZYDIS_REGISTER_YMM30:{dst_reg = X64_RegCode_ymm30;}break; + case ZYDIS_REGISTER_YMM31:{dst_reg = X64_RegCode_ymm31;}break; + case ZYDIS_REGISTER_TMM0:{dst_reg = X64_RegCode_tmm0;}break; + case ZYDIS_REGISTER_TMM1:{dst_reg = X64_RegCode_tmm1;}break; + case ZYDIS_REGISTER_TMM2:{dst_reg = X64_RegCode_tmm2;}break; + case ZYDIS_REGISTER_TMM3:{dst_reg = X64_RegCode_tmm3;}break; + case ZYDIS_REGISTER_TMM4:{dst_reg = X64_RegCode_tmm4;}break; + case ZYDIS_REGISTER_TMM5:{dst_reg = X64_RegCode_tmm5;}break; + case ZYDIS_REGISTER_TMM6:{dst_reg = X64_RegCode_tmm6;}break; + case ZYDIS_REGISTER_TMM7:{dst_reg = X64_RegCode_tmm7;}break; + case ZYDIS_REGISTER_FLAGS:{dst_reg = X64_RegCode_flags;}break; + case ZYDIS_REGISTER_GDTR:{dst_reg = X64_RegCode_gdtr;}break; + case ZYDIS_REGISTER_LDTR:{dst_reg = X64_RegCode_ldtr;}break; + case ZYDIS_REGISTER_IDTR:{dst_reg = X64_RegCode_idtr;}break; + case ZYDIS_REGISTER_TR:{dst_reg = X64_RegCode_tr;}break; + case ZYDIS_REGISTER_TR0:{dst_reg = X64_RegCode_tr0;}break; + case ZYDIS_REGISTER_TR1:{dst_reg = X64_RegCode_tr1;}break; + case ZYDIS_REGISTER_TR2:{dst_reg = X64_RegCode_tr2;}break; + case ZYDIS_REGISTER_TR3:{dst_reg = X64_RegCode_tr3;}break; + case ZYDIS_REGISTER_TR4:{dst_reg = X64_RegCode_tr4;}break; + case ZYDIS_REGISTER_TR5:{dst_reg = X64_RegCode_tr5;}break; + case ZYDIS_REGISTER_TR6:{dst_reg = X64_RegCode_tr6;}break; + case ZYDIS_REGISTER_TR7:{dst_reg = X64_RegCode_tr7;}break; + case ZYDIS_REGISTER_CR0:{dst_reg = X64_RegCode_cr0;}break; + case ZYDIS_REGISTER_CR1:{dst_reg = X64_RegCode_cr1;}break; + case ZYDIS_REGISTER_CR2:{dst_reg = X64_RegCode_cr2;}break; + case ZYDIS_REGISTER_CR3:{dst_reg = X64_RegCode_cr3;}break; + case ZYDIS_REGISTER_CR4:{dst_reg = X64_RegCode_cr4;}break; + case ZYDIS_REGISTER_CR5:{dst_reg = X64_RegCode_cr5;}break; + case ZYDIS_REGISTER_CR6:{dst_reg = X64_RegCode_cr6;}break; + case ZYDIS_REGISTER_CR7:{dst_reg = X64_RegCode_cr7;}break; + case ZYDIS_REGISTER_CR8:{dst_reg = X64_RegCode_cr8;}break; + case ZYDIS_REGISTER_CR9:{dst_reg = X64_RegCode_cr9;}break; + case ZYDIS_REGISTER_CR10:{dst_reg = X64_RegCode_cr10;}break; + case ZYDIS_REGISTER_CR11:{dst_reg = X64_RegCode_cr11;}break; + case ZYDIS_REGISTER_CR12:{dst_reg = X64_RegCode_cr12;}break; + case ZYDIS_REGISTER_CR13:{dst_reg = X64_RegCode_cr13;}break; + case ZYDIS_REGISTER_CR14:{dst_reg = X64_RegCode_cr14;}break; + case ZYDIS_REGISTER_CR15:{dst_reg = X64_RegCode_cr15;}break; + case ZYDIS_REGISTER_DR8:{dst_reg = X64_RegCode_dr8;}break; + case ZYDIS_REGISTER_DR9:{dst_reg = X64_RegCode_dr9;}break; + case ZYDIS_REGISTER_DR10:{dst_reg = X64_RegCode_dr10;}break; + case ZYDIS_REGISTER_DR11:{dst_reg = X64_RegCode_dr11;}break; + case ZYDIS_REGISTER_DR12:{dst_reg = X64_RegCode_dr12;}break; + case ZYDIS_REGISTER_DR13:{dst_reg = X64_RegCode_dr13;}break; + case ZYDIS_REGISTER_DR14:{dst_reg = X64_RegCode_dr14;}break; + case ZYDIS_REGISTER_DR15:{dst_reg = X64_RegCode_dr15;}break; + case ZYDIS_REGISTER_BND0:{dst_reg = X64_RegCode_bnd0;}break; + case ZYDIS_REGISTER_BND1:{dst_reg = X64_RegCode_bnd1;}break; + case ZYDIS_REGISTER_BND2:{dst_reg = X64_RegCode_bnd2;}break; + case ZYDIS_REGISTER_BND3:{dst_reg = X64_RegCode_bnd3;}break; + case ZYDIS_REGISTER_BNDCFG:{dst_reg = X64_RegCode_bndcfg;}break; + case ZYDIS_REGISTER_BNDSTATUS:{dst_reg = X64_RegCode_bndstatus;}break; + case ZYDIS_REGISTER_PKRU:{dst_reg = X64_RegCode_pkru;}break; + case ZYDIS_REGISTER_XCR0:{dst_reg = X64_RegCode_xcr0;}break; + case ZYDIS_REGISTER_UIF:{dst_reg = X64_RegCode_uif;}break; +#endif + } + x64_reg_codes[reg_code_idx] = dst_reg; + } + + //- rjf: extract info from operands + if(first_op != 0 && + first_op->actions & ZYDIS_OPERAND_ACTION_WRITE) + { + dst_reg_code = x64_reg_codes[0]; + if(first_op->type == ZYDIS_OPERAND_TYPE_MEMORY) + { + dst_reg_off = first_op->mem.disp.value; + } + } + if(second_op != 0 && + second_op->actions & ZYDIS_OPERAND_ACTION_READ) + { + src_reg_code = x64_reg_codes[0]; + if(second_op->type == ZYDIS_OPERAND_TYPE_MEMORY) + { + src_reg_off = second_op->mem.disp.value; + } + } + if(first_visible_op != 0 && + (first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM8 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM32 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM64 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16_32_64 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM32_32_64 || + first_visible_op->encoding == ZYDIS_OPERAND_ENCODING_JIMM16_32_32)) + { + ZydisCalcAbsoluteAddress(&zinst.info, first_visible_op, vaddr, &dst_vaddr); + } + if(first_op != 0 && second_op != 0 && first_op->type == ZYDIS_OPERAND_TYPE_REGISTER && + (first_op->reg.value == ZYDIS_REGISTER_RSP || + first_op->reg.value == ZYDIS_REGISTER_ESP || + first_op->reg.value == ZYDIS_REGISTER_SP)) + { + flags |= DASM_InstFlag_ChangesStackPointer; + if(second_op->type != ZYDIS_OPERAND_TYPE_IMMEDIATE) + { + flags |= DASM_InstFlag_ChangesStackPointerVariably; + } + } + if(zinst.info.attributes & (ZYDIS_ATTRIB_HAS_REP| + ZYDIS_ATTRIB_HAS_REPE| + ZYDIS_ATTRIB_HAS_REPZ| + ZYDIS_ATTRIB_HAS_REPNZ| + ZYDIS_ATTRIB_HAS_REPNE)) + { + flags |= DASM_InstFlag_Repeats; + } + switch(zinst.info.mnemonic) + { + case ZYDIS_MNEMONIC_CALL: + { + flags |= DASM_InstFlag_Call; + }break; + + case ZYDIS_MNEMONIC_JB: + case ZYDIS_MNEMONIC_JBE: + case ZYDIS_MNEMONIC_JCXZ: + case ZYDIS_MNEMONIC_JECXZ: + case ZYDIS_MNEMONIC_JKNZD: + case ZYDIS_MNEMONIC_JKZD: + case ZYDIS_MNEMONIC_JL: + case ZYDIS_MNEMONIC_JLE: + case ZYDIS_MNEMONIC_JNB: + case ZYDIS_MNEMONIC_JNBE: + case ZYDIS_MNEMONIC_JNL: + case ZYDIS_MNEMONIC_JNLE: + case ZYDIS_MNEMONIC_JNO: + case ZYDIS_MNEMONIC_JNP: + case ZYDIS_MNEMONIC_JNS: + case ZYDIS_MNEMONIC_JNZ: + case ZYDIS_MNEMONIC_JO: + case ZYDIS_MNEMONIC_JP: + case ZYDIS_MNEMONIC_JRCXZ: + case ZYDIS_MNEMONIC_JS: + case ZYDIS_MNEMONIC_JZ: + case ZYDIS_MNEMONIC_LOOP: + case ZYDIS_MNEMONIC_LOOPE: + case ZYDIS_MNEMONIC_LOOPNE: + { + flags |= DASM_InstFlag_Branch; + }break; + + case ZYDIS_MNEMONIC_JMP: + { + flags |= DASM_InstFlag_UnconditionalJump; + }break; + + case ZYDIS_MNEMONIC_RET: + { + flags |= DASM_InstFlag_Return; + }break; + + case ZYDIS_MNEMONIC_PUSH: + case ZYDIS_MNEMONIC_POP: + { + flags |= DASM_InstFlag_ChangesStackPointer; + }break; + + default: + { + flags |= DASM_InstFlag_NonFlow; + }break; + } + } + + ////////////////////////////// + //- rjf: bundle + // + { + inst.flags = flags; + inst.size = zinst.info.length; + inst.string = str8_copy(arena, str8_cstring(zinst.text)); + inst.dst_vaddr = dst_vaddr; + inst.dst_reg_code = dst_reg_code; + inst.dst_reg_off = dst_reg_off; + inst.src_reg_code = src_reg_code; + inst.src_reg_off = src_reg_off; + } + + return inst; +} diff --git a/src/x64/disasm/x64_disasm.h b/src/x64/disasm/x64_disasm.h new file mode 100644 index 00000000..a3e21842 --- /dev/null +++ b/src/x64/disasm/x64_disasm.h @@ -0,0 +1,9 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef X64_DISASM_H +#define X64_DISASM_H + +internal DASM_Inst x64_dasm_inst_from_code(Arena *arena, U64 vaddr, String8 code, DASM_Syntax syntax); + +#endif // X64_DISASM_H diff --git a/src/x64/generated/x64.meta.c b/src/x64/generated/x64.meta.c new file mode 100644 index 00000000..bcfabd59 --- /dev/null +++ b/src/x64/generated/x64.meta.c @@ -0,0 +1,780 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +C_LINKAGE_BEGIN +B8 x64_reg_code_is_vector_table[189] = +{ +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +1, +}; + +String8 x64_reg_code_name_table[189] = +{ +str8_lit_comp("nil"), +str8_lit_comp("rax"), +str8_lit_comp("rcx"), +str8_lit_comp("rdx"), +str8_lit_comp("rbx"), +str8_lit_comp("rsp"), +str8_lit_comp("rbp"), +str8_lit_comp("rsi"), +str8_lit_comp("rdi"), +str8_lit_comp("r8"), +str8_lit_comp("r9"), +str8_lit_comp("r10"), +str8_lit_comp("r11"), +str8_lit_comp("r12"), +str8_lit_comp("r13"), +str8_lit_comp("r14"), +str8_lit_comp("r15"), +str8_lit_comp("fsbase"), +str8_lit_comp("gsbase"), +str8_lit_comp("rip"), +str8_lit_comp("rflags"), +str8_lit_comp("dr0"), +str8_lit_comp("dr1"), +str8_lit_comp("dr2"), +str8_lit_comp("dr3"), +str8_lit_comp("dr4"), +str8_lit_comp("dr5"), +str8_lit_comp("dr6"), +str8_lit_comp("dr7"), +str8_lit_comp("st0"), +str8_lit_comp("st1"), +str8_lit_comp("st2"), +str8_lit_comp("st3"), +str8_lit_comp("st4"), +str8_lit_comp("st5"), +str8_lit_comp("st6"), +str8_lit_comp("st7"), +str8_lit_comp("fcw"), +str8_lit_comp("fsw"), +str8_lit_comp("ftw"), +str8_lit_comp("fop"), +str8_lit_comp("fcs"), +str8_lit_comp("fds"), +str8_lit_comp("fip"), +str8_lit_comp("fdp"), +str8_lit_comp("mxcsr"), +str8_lit_comp("mxcsr_mask"), +str8_lit_comp("ss"), +str8_lit_comp("cs"), +str8_lit_comp("ds"), +str8_lit_comp("es"), +str8_lit_comp("fs"), +str8_lit_comp("gs"), +str8_lit_comp("zmm0"), +str8_lit_comp("zmm1"), +str8_lit_comp("zmm2"), +str8_lit_comp("zmm3"), +str8_lit_comp("zmm4"), +str8_lit_comp("zmm5"), +str8_lit_comp("zmm6"), +str8_lit_comp("zmm7"), +str8_lit_comp("zmm8"), +str8_lit_comp("zmm9"), +str8_lit_comp("zmm10"), +str8_lit_comp("zmm11"), +str8_lit_comp("zmm12"), +str8_lit_comp("zmm13"), +str8_lit_comp("zmm14"), +str8_lit_comp("zmm15"), +str8_lit_comp("zmm16"), +str8_lit_comp("zmm17"), +str8_lit_comp("zmm18"), +str8_lit_comp("zmm19"), +str8_lit_comp("zmm20"), +str8_lit_comp("zmm21"), +str8_lit_comp("zmm22"), +str8_lit_comp("zmm23"), +str8_lit_comp("zmm24"), +str8_lit_comp("zmm25"), +str8_lit_comp("zmm26"), +str8_lit_comp("zmm27"), +str8_lit_comp("zmm28"), +str8_lit_comp("zmm29"), +str8_lit_comp("zmm30"), +str8_lit_comp("zmm31"), +str8_lit_comp("k0"), +str8_lit_comp("k1"), +str8_lit_comp("k2"), +str8_lit_comp("k3"), +str8_lit_comp("k4"), +str8_lit_comp("k5"), +str8_lit_comp("k6"), +str8_lit_comp("k7"), +str8_lit_comp("cetmsr"), +str8_lit_comp("cetssp"), +str8_lit_comp("eax"), +str8_lit_comp("ecx"), +str8_lit_comp("edx"), +str8_lit_comp("ebx"), +str8_lit_comp("esp"), +str8_lit_comp("ebp"), +str8_lit_comp("esi"), +str8_lit_comp("edi"), +str8_lit_comp("r8d"), +str8_lit_comp("r9d"), +str8_lit_comp("r10d"), +str8_lit_comp("r11d"), +str8_lit_comp("r12d"), +str8_lit_comp("r13d"), +str8_lit_comp("r14d"), +str8_lit_comp("r15d"), +str8_lit_comp("eflags"), +str8_lit_comp("ax"), +str8_lit_comp("cx"), +str8_lit_comp("dx"), +str8_lit_comp("bx"), +str8_lit_comp("si"), +str8_lit_comp("di"), +str8_lit_comp("sp"), +str8_lit_comp("bp"), +str8_lit_comp("ip"), +str8_lit_comp("r8w"), +str8_lit_comp("r9w"), +str8_lit_comp("r10w"), +str8_lit_comp("r11w"), +str8_lit_comp("r12w"), +str8_lit_comp("r13w"), +str8_lit_comp("r14w"), +str8_lit_comp("r15w"), +str8_lit_comp("al"), +str8_lit_comp("cl"), +str8_lit_comp("dl"), +str8_lit_comp("bl"), +str8_lit_comp("sil"), +str8_lit_comp("dil"), +str8_lit_comp("bpl"), +str8_lit_comp("spl"), +str8_lit_comp("r8b"), +str8_lit_comp("r9b"), +str8_lit_comp("r10b"), +str8_lit_comp("r11b"), +str8_lit_comp("r12b"), +str8_lit_comp("r13b"), +str8_lit_comp("r14b"), +str8_lit_comp("r15b"), +str8_lit_comp("ah"), +str8_lit_comp("ch"), +str8_lit_comp("dh"), +str8_lit_comp("bh"), +str8_lit_comp("xmm0"), +str8_lit_comp("xmm1"), +str8_lit_comp("xmm2"), +str8_lit_comp("xmm3"), +str8_lit_comp("xmm4"), +str8_lit_comp("xmm5"), +str8_lit_comp("xmm6"), +str8_lit_comp("xmm7"), +str8_lit_comp("xmm8"), +str8_lit_comp("xmm9"), +str8_lit_comp("xmm10"), +str8_lit_comp("xmm11"), +str8_lit_comp("xmm12"), +str8_lit_comp("xmm13"), +str8_lit_comp("xmm14"), +str8_lit_comp("xmm15"), +str8_lit_comp("ymm0"), +str8_lit_comp("ymm1"), +str8_lit_comp("ymm2"), +str8_lit_comp("ymm3"), +str8_lit_comp("ymm4"), +str8_lit_comp("ymm5"), +str8_lit_comp("ymm6"), +str8_lit_comp("ymm7"), +str8_lit_comp("ymm8"), +str8_lit_comp("ymm9"), +str8_lit_comp("ymm10"), +str8_lit_comp("ymm11"), +str8_lit_comp("ymm12"), +str8_lit_comp("ymm13"), +str8_lit_comp("ymm14"), +str8_lit_comp("ymm15"), +str8_lit_comp("mm0"), +str8_lit_comp("mm1"), +str8_lit_comp("mm2"), +str8_lit_comp("mm3"), +str8_lit_comp("mm4"), +str8_lit_comp("mm5"), +str8_lit_comp("mm6"), +str8_lit_comp("mm7"), +}; + +U8 x64_reg_code_base_table[189] = +{ +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +0, +X64_RegCode_rax, +X64_RegCode_rcx, +X64_RegCode_rdx, +X64_RegCode_rbx, +X64_RegCode_rsp, +X64_RegCode_rbp, +X64_RegCode_rsi, +X64_RegCode_rdi, +X64_RegCode_r8, +X64_RegCode_r9, +X64_RegCode_r10, +X64_RegCode_r11, +X64_RegCode_r12, +X64_RegCode_r13, +X64_RegCode_r14, +X64_RegCode_r15, +X64_RegCode_rflags, +X64_RegCode_rax, +X64_RegCode_rcx, +X64_RegCode_rdx, +X64_RegCode_rbx, +X64_RegCode_rsi, +X64_RegCode_rdi, +X64_RegCode_rsp, +X64_RegCode_rbp, +X64_RegCode_rip, +X64_RegCode_r8, +X64_RegCode_r9, +X64_RegCode_r10, +X64_RegCode_r11, +X64_RegCode_r12, +X64_RegCode_r13, +X64_RegCode_r14, +X64_RegCode_r15, +X64_RegCode_rax, +X64_RegCode_rcx, +X64_RegCode_rdx, +X64_RegCode_rbx, +X64_RegCode_rsi, +X64_RegCode_rdi, +X64_RegCode_rbp, +X64_RegCode_rsp, +X64_RegCode_r8, +X64_RegCode_r9, +X64_RegCode_r10, +X64_RegCode_r11, +X64_RegCode_r12, +X64_RegCode_r13, +X64_RegCode_r14, +X64_RegCode_r15, +X64_RegCode_rax, +X64_RegCode_rcx, +X64_RegCode_rdx, +X64_RegCode_rbx, +X64_RegCode_zmm0, +X64_RegCode_zmm1, +X64_RegCode_zmm2, +X64_RegCode_zmm3, +X64_RegCode_zmm4, +X64_RegCode_zmm5, +X64_RegCode_zmm6, +X64_RegCode_zmm7, +X64_RegCode_zmm8, +X64_RegCode_zmm9, +X64_RegCode_zmm10, +X64_RegCode_zmm11, +X64_RegCode_zmm12, +X64_RegCode_zmm13, +X64_RegCode_zmm14, +X64_RegCode_zmm15, +X64_RegCode_zmm0, +X64_RegCode_zmm1, +X64_RegCode_zmm2, +X64_RegCode_zmm3, +X64_RegCode_zmm4, +X64_RegCode_zmm5, +X64_RegCode_zmm6, +X64_RegCode_zmm7, +X64_RegCode_zmm8, +X64_RegCode_zmm9, +X64_RegCode_zmm10, +X64_RegCode_zmm11, +X64_RegCode_zmm12, +X64_RegCode_zmm13, +X64_RegCode_zmm14, +X64_RegCode_zmm15, +X64_RegCode_st0, +X64_RegCode_st1, +X64_RegCode_st2, +X64_RegCode_st3, +X64_RegCode_st4, +X64_RegCode_st5, +X64_RegCode_st6, +X64_RegCode_st7, +}; + +Rng1U16 x64_reg_code_rng_table[189] = +{ +{0}, +{(U16)OffsetOf(X64_RegBlock, rax), (U16)OffsetOf(X64_RegBlock, rax) + 8}, +{(U16)OffsetOf(X64_RegBlock, rcx), (U16)OffsetOf(X64_RegBlock, rcx) + 8}, +{(U16)OffsetOf(X64_RegBlock, rdx), (U16)OffsetOf(X64_RegBlock, rdx) + 8}, +{(U16)OffsetOf(X64_RegBlock, rbx), (U16)OffsetOf(X64_RegBlock, rbx) + 8}, +{(U16)OffsetOf(X64_RegBlock, rsp), (U16)OffsetOf(X64_RegBlock, rsp) + 8}, +{(U16)OffsetOf(X64_RegBlock, rbp), (U16)OffsetOf(X64_RegBlock, rbp) + 8}, +{(U16)OffsetOf(X64_RegBlock, rsi), (U16)OffsetOf(X64_RegBlock, rsi) + 8}, +{(U16)OffsetOf(X64_RegBlock, rdi), (U16)OffsetOf(X64_RegBlock, rdi) + 8}, +{(U16)OffsetOf(X64_RegBlock, r8), (U16)OffsetOf(X64_RegBlock, r8) + 8}, +{(U16)OffsetOf(X64_RegBlock, r9), (U16)OffsetOf(X64_RegBlock, r9) + 8}, +{(U16)OffsetOf(X64_RegBlock, r10), (U16)OffsetOf(X64_RegBlock, r10) + 8}, +{(U16)OffsetOf(X64_RegBlock, r11), (U16)OffsetOf(X64_RegBlock, r11) + 8}, +{(U16)OffsetOf(X64_RegBlock, r12), (U16)OffsetOf(X64_RegBlock, r12) + 8}, +{(U16)OffsetOf(X64_RegBlock, r13), (U16)OffsetOf(X64_RegBlock, r13) + 8}, +{(U16)OffsetOf(X64_RegBlock, r14), (U16)OffsetOf(X64_RegBlock, r14) + 8}, +{(U16)OffsetOf(X64_RegBlock, r15), (U16)OffsetOf(X64_RegBlock, r15) + 8}, +{(U16)OffsetOf(X64_RegBlock, fsbase), (U16)OffsetOf(X64_RegBlock, fsbase) + 8}, +{(U16)OffsetOf(X64_RegBlock, gsbase), (U16)OffsetOf(X64_RegBlock, gsbase) + 8}, +{(U16)OffsetOf(X64_RegBlock, rip), (U16)OffsetOf(X64_RegBlock, rip) + 8}, +{(U16)OffsetOf(X64_RegBlock, rflags), (U16)OffsetOf(X64_RegBlock, rflags) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr0), (U16)OffsetOf(X64_RegBlock, dr0) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr1), (U16)OffsetOf(X64_RegBlock, dr1) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr2), (U16)OffsetOf(X64_RegBlock, dr2) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr3), (U16)OffsetOf(X64_RegBlock, dr3) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr4), (U16)OffsetOf(X64_RegBlock, dr4) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr5), (U16)OffsetOf(X64_RegBlock, dr5) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr6), (U16)OffsetOf(X64_RegBlock, dr6) + 8}, +{(U16)OffsetOf(X64_RegBlock, dr7), (U16)OffsetOf(X64_RegBlock, dr7) + 8}, +{(U16)OffsetOf(X64_RegBlock, st0), (U16)OffsetOf(X64_RegBlock, st0) + 10}, +{(U16)OffsetOf(X64_RegBlock, st1), (U16)OffsetOf(X64_RegBlock, st1) + 10}, +{(U16)OffsetOf(X64_RegBlock, st2), (U16)OffsetOf(X64_RegBlock, st2) + 10}, +{(U16)OffsetOf(X64_RegBlock, st3), (U16)OffsetOf(X64_RegBlock, st3) + 10}, +{(U16)OffsetOf(X64_RegBlock, st4), (U16)OffsetOf(X64_RegBlock, st4) + 10}, +{(U16)OffsetOf(X64_RegBlock, st5), (U16)OffsetOf(X64_RegBlock, st5) + 10}, +{(U16)OffsetOf(X64_RegBlock, st6), (U16)OffsetOf(X64_RegBlock, st6) + 10}, +{(U16)OffsetOf(X64_RegBlock, st7), (U16)OffsetOf(X64_RegBlock, st7) + 10}, +{(U16)OffsetOf(X64_RegBlock, fcw), (U16)OffsetOf(X64_RegBlock, fcw) + 2}, +{(U16)OffsetOf(X64_RegBlock, fsw), (U16)OffsetOf(X64_RegBlock, fsw) + 2}, +{(U16)OffsetOf(X64_RegBlock, ftw), (U16)OffsetOf(X64_RegBlock, ftw) + 1}, +{(U16)OffsetOf(X64_RegBlock, fop), (U16)OffsetOf(X64_RegBlock, fop) + 2}, +{(U16)OffsetOf(X64_RegBlock, fcs), (U16)OffsetOf(X64_RegBlock, fcs) + 2}, +{(U16)OffsetOf(X64_RegBlock, fds), (U16)OffsetOf(X64_RegBlock, fds) + 2}, +{(U16)OffsetOf(X64_RegBlock, fip), (U16)OffsetOf(X64_RegBlock, fip) + 8}, +{(U16)OffsetOf(X64_RegBlock, fdp), (U16)OffsetOf(X64_RegBlock, fdp) + 8}, +{(U16)OffsetOf(X64_RegBlock, mxcsr), (U16)OffsetOf(X64_RegBlock, mxcsr) + 4}, +{(U16)OffsetOf(X64_RegBlock, mxcsr_mask), (U16)OffsetOf(X64_RegBlock, mxcsr_mask) + 4}, +{(U16)OffsetOf(X64_RegBlock, ss), (U16)OffsetOf(X64_RegBlock, ss) + 2}, +{(U16)OffsetOf(X64_RegBlock, cs), (U16)OffsetOf(X64_RegBlock, cs) + 2}, +{(U16)OffsetOf(X64_RegBlock, ds), (U16)OffsetOf(X64_RegBlock, ds) + 2}, +{(U16)OffsetOf(X64_RegBlock, es), (U16)OffsetOf(X64_RegBlock, es) + 2}, +{(U16)OffsetOf(X64_RegBlock, fs), (U16)OffsetOf(X64_RegBlock, fs) + 2}, +{(U16)OffsetOf(X64_RegBlock, gs), (U16)OffsetOf(X64_RegBlock, gs) + 2}, +{(U16)OffsetOf(X64_RegBlock, zmm0), (U16)OffsetOf(X64_RegBlock, zmm0) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm1), (U16)OffsetOf(X64_RegBlock, zmm1) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm2), (U16)OffsetOf(X64_RegBlock, zmm2) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm3), (U16)OffsetOf(X64_RegBlock, zmm3) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm4), (U16)OffsetOf(X64_RegBlock, zmm4) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm5), (U16)OffsetOf(X64_RegBlock, zmm5) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm6), (U16)OffsetOf(X64_RegBlock, zmm6) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm7), (U16)OffsetOf(X64_RegBlock, zmm7) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm8), (U16)OffsetOf(X64_RegBlock, zmm8) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm9), (U16)OffsetOf(X64_RegBlock, zmm9) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm10), (U16)OffsetOf(X64_RegBlock, zmm10) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm11), (U16)OffsetOf(X64_RegBlock, zmm11) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm12), (U16)OffsetOf(X64_RegBlock, zmm12) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm13), (U16)OffsetOf(X64_RegBlock, zmm13) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm14), (U16)OffsetOf(X64_RegBlock, zmm14) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm15), (U16)OffsetOf(X64_RegBlock, zmm15) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm16), (U16)OffsetOf(X64_RegBlock, zmm16) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm17), (U16)OffsetOf(X64_RegBlock, zmm17) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm18), (U16)OffsetOf(X64_RegBlock, zmm18) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm19), (U16)OffsetOf(X64_RegBlock, zmm19) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm20), (U16)OffsetOf(X64_RegBlock, zmm20) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm21), (U16)OffsetOf(X64_RegBlock, zmm21) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm22), (U16)OffsetOf(X64_RegBlock, zmm22) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm23), (U16)OffsetOf(X64_RegBlock, zmm23) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm24), (U16)OffsetOf(X64_RegBlock, zmm24) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm25), (U16)OffsetOf(X64_RegBlock, zmm25) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm26), (U16)OffsetOf(X64_RegBlock, zmm26) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm27), (U16)OffsetOf(X64_RegBlock, zmm27) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm28), (U16)OffsetOf(X64_RegBlock, zmm28) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm29), (U16)OffsetOf(X64_RegBlock, zmm29) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm30), (U16)OffsetOf(X64_RegBlock, zmm30) + 64}, +{(U16)OffsetOf(X64_RegBlock, zmm31), (U16)OffsetOf(X64_RegBlock, zmm31) + 64}, +{(U16)OffsetOf(X64_RegBlock, k0), (U16)OffsetOf(X64_RegBlock, k0) + 8}, +{(U16)OffsetOf(X64_RegBlock, k1), (U16)OffsetOf(X64_RegBlock, k1) + 8}, +{(U16)OffsetOf(X64_RegBlock, k2), (U16)OffsetOf(X64_RegBlock, k2) + 8}, +{(U16)OffsetOf(X64_RegBlock, k3), (U16)OffsetOf(X64_RegBlock, k3) + 8}, +{(U16)OffsetOf(X64_RegBlock, k4), (U16)OffsetOf(X64_RegBlock, k4) + 8}, +{(U16)OffsetOf(X64_RegBlock, k5), (U16)OffsetOf(X64_RegBlock, k5) + 8}, +{(U16)OffsetOf(X64_RegBlock, k6), (U16)OffsetOf(X64_RegBlock, k6) + 8}, +{(U16)OffsetOf(X64_RegBlock, k7), (U16)OffsetOf(X64_RegBlock, k7) + 8}, +{(U16)OffsetOf(X64_RegBlock, cetmsr), (U16)OffsetOf(X64_RegBlock, cetmsr) + 8}, +{(U16)OffsetOf(X64_RegBlock, cetssp), (U16)OffsetOf(X64_RegBlock, cetssp) + 8}, +{(U16)OffsetOf(X64_RegBlock, rax) + 0, (U16)OffsetOf(X64_RegBlock, rax) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rcx) + 0, (U16)OffsetOf(X64_RegBlock, rcx) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rdx) + 0, (U16)OffsetOf(X64_RegBlock, rdx) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rbx) + 0, (U16)OffsetOf(X64_RegBlock, rbx) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rsp) + 0, (U16)OffsetOf(X64_RegBlock, rsp) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rbp) + 0, (U16)OffsetOf(X64_RegBlock, rbp) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rsi) + 0, (U16)OffsetOf(X64_RegBlock, rsi) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rdi) + 0, (U16)OffsetOf(X64_RegBlock, rdi) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r8) + 0, (U16)OffsetOf(X64_RegBlock, r8) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r9) + 0, (U16)OffsetOf(X64_RegBlock, r9) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r10) + 0, (U16)OffsetOf(X64_RegBlock, r10) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r11) + 0, (U16)OffsetOf(X64_RegBlock, r11) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r12) + 0, (U16)OffsetOf(X64_RegBlock, r12) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r13) + 0, (U16)OffsetOf(X64_RegBlock, r13) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r14) + 0, (U16)OffsetOf(X64_RegBlock, r14) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, r15) + 0, (U16)OffsetOf(X64_RegBlock, r15) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rflags) + 0, (U16)OffsetOf(X64_RegBlock, rflags) + 0 + 4}, +{(U16)OffsetOf(X64_RegBlock, rax) + 0, (U16)OffsetOf(X64_RegBlock, rax) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rcx) + 0, (U16)OffsetOf(X64_RegBlock, rcx) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rdx) + 0, (U16)OffsetOf(X64_RegBlock, rdx) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rbx) + 0, (U16)OffsetOf(X64_RegBlock, rbx) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rsi) + 0, (U16)OffsetOf(X64_RegBlock, rsi) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rdi) + 0, (U16)OffsetOf(X64_RegBlock, rdi) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rsp) + 0, (U16)OffsetOf(X64_RegBlock, rsp) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rbp) + 0, (U16)OffsetOf(X64_RegBlock, rbp) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rip) + 0, (U16)OffsetOf(X64_RegBlock, rip) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r8) + 0, (U16)OffsetOf(X64_RegBlock, r8) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r9) + 0, (U16)OffsetOf(X64_RegBlock, r9) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r10) + 0, (U16)OffsetOf(X64_RegBlock, r10) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r11) + 0, (U16)OffsetOf(X64_RegBlock, r11) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r12) + 0, (U16)OffsetOf(X64_RegBlock, r12) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r13) + 0, (U16)OffsetOf(X64_RegBlock, r13) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r14) + 0, (U16)OffsetOf(X64_RegBlock, r14) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, r15) + 0, (U16)OffsetOf(X64_RegBlock, r15) + 0 + 2}, +{(U16)OffsetOf(X64_RegBlock, rax) + 0, (U16)OffsetOf(X64_RegBlock, rax) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rcx) + 0, (U16)OffsetOf(X64_RegBlock, rcx) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rdx) + 0, (U16)OffsetOf(X64_RegBlock, rdx) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rbx) + 0, (U16)OffsetOf(X64_RegBlock, rbx) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rsi) + 0, (U16)OffsetOf(X64_RegBlock, rsi) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rdi) + 0, (U16)OffsetOf(X64_RegBlock, rdi) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rbp) + 0, (U16)OffsetOf(X64_RegBlock, rbp) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rsp) + 0, (U16)OffsetOf(X64_RegBlock, rsp) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r8) + 0, (U16)OffsetOf(X64_RegBlock, r8) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r9) + 0, (U16)OffsetOf(X64_RegBlock, r9) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r10) + 0, (U16)OffsetOf(X64_RegBlock, r10) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r11) + 0, (U16)OffsetOf(X64_RegBlock, r11) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r12) + 0, (U16)OffsetOf(X64_RegBlock, r12) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r13) + 0, (U16)OffsetOf(X64_RegBlock, r13) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r14) + 0, (U16)OffsetOf(X64_RegBlock, r14) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, r15) + 0, (U16)OffsetOf(X64_RegBlock, r15) + 0 + 1}, +{(U16)OffsetOf(X64_RegBlock, rax) + 1, (U16)OffsetOf(X64_RegBlock, rax) + 1 + 1}, +{(U16)OffsetOf(X64_RegBlock, rcx) + 1, (U16)OffsetOf(X64_RegBlock, rcx) + 1 + 1}, +{(U16)OffsetOf(X64_RegBlock, rdx) + 1, (U16)OffsetOf(X64_RegBlock, rdx) + 1 + 1}, +{(U16)OffsetOf(X64_RegBlock, rbx) + 1, (U16)OffsetOf(X64_RegBlock, rbx) + 1 + 1}, +{(U16)OffsetOf(X64_RegBlock, zmm0) + 0, (U16)OffsetOf(X64_RegBlock, zmm0) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm1) + 0, (U16)OffsetOf(X64_RegBlock, zmm1) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm2) + 0, (U16)OffsetOf(X64_RegBlock, zmm2) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm3) + 0, (U16)OffsetOf(X64_RegBlock, zmm3) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm4) + 0, (U16)OffsetOf(X64_RegBlock, zmm4) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm5) + 0, (U16)OffsetOf(X64_RegBlock, zmm5) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm6) + 0, (U16)OffsetOf(X64_RegBlock, zmm6) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm7) + 0, (U16)OffsetOf(X64_RegBlock, zmm7) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm8) + 0, (U16)OffsetOf(X64_RegBlock, zmm8) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm9) + 0, (U16)OffsetOf(X64_RegBlock, zmm9) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm10) + 0, (U16)OffsetOf(X64_RegBlock, zmm10) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm11) + 0, (U16)OffsetOf(X64_RegBlock, zmm11) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm12) + 0, (U16)OffsetOf(X64_RegBlock, zmm12) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm13) + 0, (U16)OffsetOf(X64_RegBlock, zmm13) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm14) + 0, (U16)OffsetOf(X64_RegBlock, zmm14) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm15) + 0, (U16)OffsetOf(X64_RegBlock, zmm15) + 0 + 16}, +{(U16)OffsetOf(X64_RegBlock, zmm0) + 0, (U16)OffsetOf(X64_RegBlock, zmm0) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm1) + 0, (U16)OffsetOf(X64_RegBlock, zmm1) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm2) + 0, (U16)OffsetOf(X64_RegBlock, zmm2) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm3) + 0, (U16)OffsetOf(X64_RegBlock, zmm3) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm4) + 0, (U16)OffsetOf(X64_RegBlock, zmm4) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm5) + 0, (U16)OffsetOf(X64_RegBlock, zmm5) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm6) + 0, (U16)OffsetOf(X64_RegBlock, zmm6) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm7) + 0, (U16)OffsetOf(X64_RegBlock, zmm7) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm8) + 0, (U16)OffsetOf(X64_RegBlock, zmm8) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm9) + 0, (U16)OffsetOf(X64_RegBlock, zmm9) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm10) + 0, (U16)OffsetOf(X64_RegBlock, zmm10) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm11) + 0, (U16)OffsetOf(X64_RegBlock, zmm11) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm12) + 0, (U16)OffsetOf(X64_RegBlock, zmm12) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm13) + 0, (U16)OffsetOf(X64_RegBlock, zmm13) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm14) + 0, (U16)OffsetOf(X64_RegBlock, zmm14) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, zmm15) + 0, (U16)OffsetOf(X64_RegBlock, zmm15) + 0 + 32}, +{(U16)OffsetOf(X64_RegBlock, st0) + 0, (U16)OffsetOf(X64_RegBlock, st0) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st1) + 0, (U16)OffsetOf(X64_RegBlock, st1) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st2) + 0, (U16)OffsetOf(X64_RegBlock, st2) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st3) + 0, (U16)OffsetOf(X64_RegBlock, st3) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st4) + 0, (U16)OffsetOf(X64_RegBlock, st4) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st5) + 0, (U16)OffsetOf(X64_RegBlock, st5) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st6) + 0, (U16)OffsetOf(X64_RegBlock, st6) + 0 + 8}, +{(U16)OffsetOf(X64_RegBlock, st7) + 0, (U16)OffsetOf(X64_RegBlock, st7) + 0 + 8}, +}; + +C_LINKAGE_END + diff --git a/src/x64/generated/x64.meta.h b/src/x64/generated/x64.meta.h new file mode 100644 index 00000000..f47e083c --- /dev/null +++ b/src/x64/generated/x64.meta.h @@ -0,0 +1,310 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//- GENERATED CODE + +#ifndef X64_META_H +#define X64_META_H + +typedef enum X64_RegCode +{ +X64_RegCode_nil, +X64_RegCode_rax, +X64_RegCode_rcx, +X64_RegCode_rdx, +X64_RegCode_rbx, +X64_RegCode_rsp, +X64_RegCode_rbp, +X64_RegCode_rsi, +X64_RegCode_rdi, +X64_RegCode_r8, +X64_RegCode_r9, +X64_RegCode_r10, +X64_RegCode_r11, +X64_RegCode_r12, +X64_RegCode_r13, +X64_RegCode_r14, +X64_RegCode_r15, +X64_RegCode_fsbase, +X64_RegCode_gsbase, +X64_RegCode_rip, +X64_RegCode_rflags, +X64_RegCode_dr0, +X64_RegCode_dr1, +X64_RegCode_dr2, +X64_RegCode_dr3, +X64_RegCode_dr4, +X64_RegCode_dr5, +X64_RegCode_dr6, +X64_RegCode_dr7, +X64_RegCode_st0, +X64_RegCode_st1, +X64_RegCode_st2, +X64_RegCode_st3, +X64_RegCode_st4, +X64_RegCode_st5, +X64_RegCode_st6, +X64_RegCode_st7, +X64_RegCode_fcw, +X64_RegCode_fsw, +X64_RegCode_ftw, +X64_RegCode_fop, +X64_RegCode_fcs, +X64_RegCode_fds, +X64_RegCode_fip, +X64_RegCode_fdp, +X64_RegCode_mxcsr, +X64_RegCode_mxcsr_mask, +X64_RegCode_ss, +X64_RegCode_cs, +X64_RegCode_ds, +X64_RegCode_es, +X64_RegCode_fs, +X64_RegCode_gs, +X64_RegCode_zmm0, +X64_RegCode_zmm1, +X64_RegCode_zmm2, +X64_RegCode_zmm3, +X64_RegCode_zmm4, +X64_RegCode_zmm5, +X64_RegCode_zmm6, +X64_RegCode_zmm7, +X64_RegCode_zmm8, +X64_RegCode_zmm9, +X64_RegCode_zmm10, +X64_RegCode_zmm11, +X64_RegCode_zmm12, +X64_RegCode_zmm13, +X64_RegCode_zmm14, +X64_RegCode_zmm15, +X64_RegCode_zmm16, +X64_RegCode_zmm17, +X64_RegCode_zmm18, +X64_RegCode_zmm19, +X64_RegCode_zmm20, +X64_RegCode_zmm21, +X64_RegCode_zmm22, +X64_RegCode_zmm23, +X64_RegCode_zmm24, +X64_RegCode_zmm25, +X64_RegCode_zmm26, +X64_RegCode_zmm27, +X64_RegCode_zmm28, +X64_RegCode_zmm29, +X64_RegCode_zmm30, +X64_RegCode_zmm31, +X64_RegCode_k0, +X64_RegCode_k1, +X64_RegCode_k2, +X64_RegCode_k3, +X64_RegCode_k4, +X64_RegCode_k5, +X64_RegCode_k6, +X64_RegCode_k7, +X64_RegCode_cetmsr, +X64_RegCode_cetssp, +X64_RegCode_eax, +X64_RegCode_ecx, +X64_RegCode_edx, +X64_RegCode_ebx, +X64_RegCode_esp, +X64_RegCode_ebp, +X64_RegCode_esi, +X64_RegCode_edi, +X64_RegCode_r8d, +X64_RegCode_r9d, +X64_RegCode_r10d, +X64_RegCode_r11d, +X64_RegCode_r12d, +X64_RegCode_r13d, +X64_RegCode_r14d, +X64_RegCode_r15d, +X64_RegCode_eflags, +X64_RegCode_ax, +X64_RegCode_cx, +X64_RegCode_dx, +X64_RegCode_bx, +X64_RegCode_si, +X64_RegCode_di, +X64_RegCode_sp, +X64_RegCode_bp, +X64_RegCode_ip, +X64_RegCode_r8w, +X64_RegCode_r9w, +X64_RegCode_r10w, +X64_RegCode_r11w, +X64_RegCode_r12w, +X64_RegCode_r13w, +X64_RegCode_r14w, +X64_RegCode_r15w, +X64_RegCode_al, +X64_RegCode_cl, +X64_RegCode_dl, +X64_RegCode_bl, +X64_RegCode_sil, +X64_RegCode_dil, +X64_RegCode_bpl, +X64_RegCode_spl, +X64_RegCode_r8b, +X64_RegCode_r9b, +X64_RegCode_r10b, +X64_RegCode_r11b, +X64_RegCode_r12b, +X64_RegCode_r13b, +X64_RegCode_r14b, +X64_RegCode_r15b, +X64_RegCode_ah, +X64_RegCode_ch, +X64_RegCode_dh, +X64_RegCode_bh, +X64_RegCode_xmm0, +X64_RegCode_xmm1, +X64_RegCode_xmm2, +X64_RegCode_xmm3, +X64_RegCode_xmm4, +X64_RegCode_xmm5, +X64_RegCode_xmm6, +X64_RegCode_xmm7, +X64_RegCode_xmm8, +X64_RegCode_xmm9, +X64_RegCode_xmm10, +X64_RegCode_xmm11, +X64_RegCode_xmm12, +X64_RegCode_xmm13, +X64_RegCode_xmm14, +X64_RegCode_xmm15, +X64_RegCode_ymm0, +X64_RegCode_ymm1, +X64_RegCode_ymm2, +X64_RegCode_ymm3, +X64_RegCode_ymm4, +X64_RegCode_ymm5, +X64_RegCode_ymm6, +X64_RegCode_ymm7, +X64_RegCode_ymm8, +X64_RegCode_ymm9, +X64_RegCode_ymm10, +X64_RegCode_ymm11, +X64_RegCode_ymm12, +X64_RegCode_ymm13, +X64_RegCode_ymm14, +X64_RegCode_ymm15, +X64_RegCode_mm0, +X64_RegCode_mm1, +X64_RegCode_mm2, +X64_RegCode_mm3, +X64_RegCode_mm4, +X64_RegCode_mm5, +X64_RegCode_mm6, +X64_RegCode_mm7, +X64_RegCode_COUNT, +} X64_RegCode; + +typedef struct X64_RegBlock X64_RegBlock; +struct X64_RegBlock +{ +U64 rax; +U64 rcx; +U64 rdx; +U64 rbx; +U64 rsp; +U64 rbp; +U64 rsi; +U64 rdi; +U64 r8; +U64 r9; +U64 r10; +U64 r11; +U64 r12; +U64 r13; +U64 r14; +U64 r15; +U64 fsbase; +U64 gsbase; +U64 rip; +U64 rflags; +U64 dr0; +U64 dr1; +U64 dr2; +U64 dr3; +U64 dr4; +U64 dr5; +U64 dr6; +U64 dr7; +U80 st0; +U80 st1; +U80 st2; +U80 st3; +U80 st4; +U80 st5; +U80 st6; +U80 st7; +U16 fcw; +U16 fsw; +U8 ftw; +U16 fop; +U16 fcs; +U16 fds; +U64 fip; +U64 fdp; +U32 mxcsr; +U32 mxcsr_mask; +U16 ss; +U16 cs; +U16 ds; +U16 es; +U16 fs; +U16 gs; +U512 zmm0; +U512 zmm1; +U512 zmm2; +U512 zmm3; +U512 zmm4; +U512 zmm5; +U512 zmm6; +U512 zmm7; +U512 zmm8; +U512 zmm9; +U512 zmm10; +U512 zmm11; +U512 zmm12; +U512 zmm13; +U512 zmm14; +U512 zmm15; +U512 zmm16; +U512 zmm17; +U512 zmm18; +U512 zmm19; +U512 zmm20; +U512 zmm21; +U512 zmm22; +U512 zmm23; +U512 zmm24; +U512 zmm25; +U512 zmm26; +U512 zmm27; +U512 zmm28; +U512 zmm29; +U512 zmm30; +U512 zmm31; +U64 k0; +U64 k1; +U64 k2; +U64 k3; +U64 k4; +U64 k5; +U64 k6; +U64 k7; +U64 cetmsr; +U64 cetssp; +}; + +C_LINKAGE_BEGIN +extern B8 x64_reg_code_is_vector_table[189]; +extern String8 x64_reg_code_name_table[189]; +extern U8 x64_reg_code_base_table[189]; +extern Rng1U16 x64_reg_code_rng_table[189]; + +C_LINKAGE_END + +#endif // X64_META_H diff --git a/src/x64/x64.c b/src/x64/x64.c new file mode 100644 index 00000000..e1ee9e02 --- /dev/null +++ b/src/x64/x64.c @@ -0,0 +1,197 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +//////////////////////////////// +//~ rjf: Generated + +#include "x64/generated/x64.meta.c" + +//////////////////////////////// +//~ cpuid + +internal void +x64_cpuid(U32 leaf, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx) +{ + U32 info[4] = {0}; +#if COMPILER_MSVC + __cpuid(info, leaf); + if (eax) { *eax = info[0]; } + if (ebx) { *ebx = info[1]; } + if (ecx) { *ecx = info[2]; } + if (edx) { *edx = info[3]; } +#elif COMPILER_CLANG || COMPILER_GCC + if (!eax) { eax = &info[0]; } + if (!ebx) { ebx = &info[1]; } + if (!ecx) { ecx = &info[2]; } + if (!edx) { edx = &info[3]; } + __get_cpuid(leaf, eax, ebx, ecx, edx); +#else +# error "cpuid is not defined for this compiler" +#endif +} + +internal void +x64_cpuid_ex(U32 leaf, U32 sub_leaf, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx) +{ + U32 info[4]; +#if COMPILER_MSVC + __cpuidex(info, leaf, sub_leaf); + if (eax) { *eax = info[0]; } + if (ebx) { *ebx = info[1]; } + if (ecx) { *ecx = info[2]; } + if (edx) { *edx = info[3]; } +#elif COMPILER_CLANG || COMPILER_GCC + if (!eax) { eax = &info[0]; } + if (!ebx) { ebx = &info[1]; } + if (!ecx) { ecx = &info[2]; } + if (!edx) { edx = &info[3]; } + __get_cpuid_count(leaf, sub_leaf, eax, ebx, ecx, edx); +#else +# error "cpuid_count is not defined for this compiler" +#endif +} + +//////////////////////////////// +//~ fxsave/xsave + +internal B32 +x64_is_xsave_supported(void) +{ + U32 ecx = 0; + x64_cpuid(1, 0, 0, &ecx, 0); + return !!(ecx & (1 << 26)); +} + +internal U32 +x64_get_xsave_size(void) +{ + U32 xsave_size = 0; + x64_cpuid_ex(0xd, 0, 0, &xsave_size, 0, 0); + return xsave_size; +} + +internal U16 +x64_xsave_tag_word_from_real_tag_word(U16 ftw) +{ + U16 compact = 0; + for EachIndex(fpr, 8) { + U32 tag = (ftw >> (fpr * 2)) & 3; + if (tag != 3) { + compact |= (1 << fpr); + } + } + return compact; +} + +internal U32 +x64_xsave_offset_from_feature_flag(U64 xcr0, X64_XStateComponentIdx comp_idx) +{ + U32 offset = 0; + if (xcr0 & (1 << comp_idx)) { + if(comp_idx == X64_XStateComponentIdx_FP) { + offset = 0; + } else if(comp_idx == X64_XStateComponentIdx_SSE) { + offset = 160; + } else { + x64_cpuid_ex(0xd, comp_idx, 0, &offset, 0, 0); + } + } + return offset; +} + +internal X64_XSaveLayout +x64_get_xsave_layout(U64 xcr0) +{ + X64_XSaveLayout xsave_layout = {0}; + xsave_layout.x87_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_FP); + xsave_layout.sse_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_SSE); + xsave_layout.avx_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_AVX); + xsave_layout.bndregs_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_BNDREGS); + xsave_layout.bndcfg_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_BNDCSR); + xsave_layout.opmask_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_OPMASK); + xsave_layout.zmm_h_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_ZMM_H); + xsave_layout.zmm_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_ZMM); + xsave_layout.pt_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_PT); + xsave_layout.pkru_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_PKRU); + xsave_layout.pasid_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_PASID); + xsave_layout.cet_u_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_CETU); + xsave_layout.cet_s_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_CETS); + xsave_layout.hdc_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_HDC); + xsave_layout.uintr_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_UINTR); + xsave_layout.lbr_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_LBR); + xsave_layout.hwp_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_HWP); + xsave_layout.tile_cfg_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_TILECFG); + xsave_layout.tile_data_offset = x64_xsave_offset_from_feature_flag(xcr0, X64_XStateComponentIdx_TILEDATA); + return xsave_layout; +} + +//////////////////////////////// +//~ Debug Control Register + +internal void +x64_set_debug_break(U64 *drs, U64 trap_idx, U64 addr, U64 size, X64_BreakpointType bp_type, X64_DebugBreakType break_type) +{ + // set breakpoint address + switch (trap_idx) { + case 0: { drs[0] = addr; } break; + case 1: { drs[1] = addr; } break; + case 2: { drs[2] = addr; } break; + case 3: { drs[3] = addr; } break; + default: { InvalidPath; } break; + } + + // enable breakpoint + drs[7] &= ~(3 << (trap_idx * 2)); + switch (bp_type) + { + case X64_BreakpointType_Null: break; + case X64_BreakpointType_Local: { drs[7] |= 1 << (trap_idx * 2); } break; + case X64_BreakpointType_Global: { drs[7] |= 2 << (trap_idx * 2); } break; + default: { InvalidPath; } break; + } + + // set break access type + switch (break_type) { + case X64_DebugBreakType_Exec: + Assert(size == 0); + case X64_DebugBreakType_Null: { + drs[7] &= ~((1ull << 16) << (trap_idx * 4)); + drs[7] &= ~((1ull << 17) << (trap_idx * 4)); + } break; + case X64_DebugBreakType_Write: { + drs[7] |= (1ull << 16) << (trap_idx * 4); + drs[7] &= ~((1ull << 17) << (trap_idx * 4)); + } break; + case X64_DebugBreakType_ReadWriteIO: { + drs[7] &= ~((1ull << 16) << (trap_idx * 4)); + drs[7] |= (1ull << 17) << (trap_idx * 4); + } break; + case X64_DebugBreakType_ReadWriteNoFetch: { + drs[7] |= (1u << 16) << (trap_idx * 4); + drs[7] |= (1u << 17) << (trap_idx * 4); + } break; + default: { InvalidPath; } break; + } + + // set breakpoint size + switch (size) { + case 0: + case 1: { + drs[7] &= ~((1ull << 18) << (trap_idx * 4)); + drs[7] &= ~((1ull << 19) << (trap_idx * 4)); + } break; + case 2: { + drs[7] |= (1 << 18) << (trap_idx * 4); + drs[7] &= ~((1 << 19) << (trap_idx * 4)); + } break; + case 4: { + drs[7] |= (1 << 18) << (trap_idx * 4); + drs[7] |= (1 << 19) << (trap_idx * 4); + } break; + case 8: { + drs[7] &= ~((1 << 18) << (trap_idx * 4)); + drs[7] |= (1 << 19) << (trap_idx * 4); + } break; + default: { InvalidPath; } + } +} diff --git a/src/x64/x64.h b/src/x64/x64.h new file mode 100644 index 00000000..db6ec7d2 --- /dev/null +++ b/src/x64/x64.h @@ -0,0 +1,237 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#ifndef X64_H +#define X64_H + +//////////////////////////////// +//~ RFlags + +typedef U64 X64_RFlags; +enum +{ + X64_RFlag_Carry = (1 << 0), + X64_RFlag_Parity = (1 << 2), + X64_RFlag_AuxCarry = (1 << 4), + X64_RFlag_Zero = (1 << 6), + X64_RFlag_Sign = (1 << 7), + X64_RFlag_Trap = (1 << 8), + X64_RFlag_Interrupt = (1 << 9), + X64_RFlag_Direction = (1 << 10), + X64_RFlag_Overflow = (1 << 11), + X64_RFlag_IoPrivilege = (3 << 12), + X64_RFlag_NT = (1 << 14), + X64_RFlag_MD = (1 << 15), + X64_RFlag_RF = (1 << 16), + X64_RFlag_VM = (1 << 17), + X64_RFlag_AC = (1 << 18), + X64_RFlag_VIF = (1 << 19), + X64_RFlag_VIP = (1 << 20), + X64_RFlag_AES = (1 << 30), + X64_RFlag_AI = (1 << 31), +}; + +//////////////////////////////// +//~ fxsave/xsave + +typedef struct X64_FXSave X64_FXSave; +struct AlignType(16) X64_FXSave +{ + U16 fcw; + U16 fsw; + U8 ftw; + U8 reserved1; + U16 fop; + U64 fip; + U64 fdp; + U32 mxcsr; + U32 mxcsr_mask; + U128 st_space[8]; + U128 xmm_space[16]; + U8 padding[96]; +}; +StaticAssert(sizeof(X64_FXSave) == 512, g_x64_xsave_legacy_size_check); + +typedef struct X64_XSaveHeader X64_XSaveHeader; +struct X64_XSaveHeader +{ + U64 xstate_bv; + U64 xcomp_bv; + U8 reserved[48]; +}; +StaticAssert(sizeof(X64_XSaveHeader) == 64, g_x64_xsave_header_size_check); + +typedef struct X64_XSave X64_XSave; +struct AlignType(64) X64_XSave +{ + X64_FXSave fxsave; + X64_XSaveHeader header; + // U8 ext_area[0]; +}; +StaticAssert(sizeof(X64_XSave) == 576, g_x64_xsave_size_check); + +typedef U32 X64_XStateComponentIdx; +enum +{ + X64_XStateComponentIdx_FP = 0, + X64_XStateComponentIdx_SSE = 1, + X64_XStateComponentIdx_AVX = 2, + X64_XStateComponentIdx_BNDREGS = 3, + X64_XStateComponentIdx_BNDCSR = 4, + X64_XStateComponentIdx_OPMASK = 5, + X64_XStateComponentIdx_ZMM_H = 6, + X64_XStateComponentIdx_ZMM = 7, + X64_XStateComponentIdx_PT = 8, + X64_XStateComponentIdx_PKRU = 9, + X64_XStateComponentIdx_PASID = 10, + X64_XStateComponentIdx_CETU = 11, + X64_XStateComponentIdx_CETS = 12, + X64_XStateComponentIdx_HDC = 13, + X64_XStateComponentIdx_UINTR = 14, + X64_XStateComponentIdx_LBR = 15, + X64_XStateComponentIdx_HWP = 16, + X64_XStateComponentIdx_TILECFG = 17, + X64_XStateComponentIdx_TILEDATA = 18, +}; +enum +{ + X64_XStateComponentFlag_FP = (1 << X64_XStateComponentIdx_FP), + X64_XStateComponentFlag_SSE = (1 << X64_XStateComponentIdx_SSE), + X64_XStateComponentFlag_AVX = (1 << X64_XStateComponentIdx_AVX), + X64_XStateComponentFlag_BNDREGS = (1 << X64_XStateComponentIdx_BNDREGS), + X64_XStateComponentFlag_BNDCSR = (1 << X64_XStateComponentIdx_BNDCSR), + X64_XStateComponentFlag_OPMASK = (1 << X64_XStateComponentIdx_OPMASK), + X64_XStateComponentFlag_ZMM_H = (1 << X64_XStateComponentIdx_ZMM_H), + X64_XStateComponentFlag_ZMM = (1 << X64_XStateComponentIdx_ZMM), + X64_XStateComponentFlag_PT = (1 << X64_XStateComponentIdx_PT), + X64_XStateComponentFlag_PKRU = (1 << X64_XStateComponentIdx_PKRU), + X64_XStateComponentFlag_PASID = (1 << X64_XStateComponentIdx_PASID), + X64_XStateComponentFlag_CETU = (1 << X64_XStateComponentIdx_CETU), + X64_XStateComponentFlag_CETS = (1 << X64_XStateComponentIdx_CETS), + X64_XStateComponentFlag_HDC = (1 << X64_XStateComponentIdx_HDC), + X64_XStateComponentFlag_UINTR = (1 << X64_XStateComponentIdx_UINTR), + X64_XStateComponentFlag_LBR = (1 << X64_XStateComponentIdx_LBR), + X64_XStateComponentFlag_HWP = (1 << X64_XStateComponentIdx_HWP), + X64_XStateComponentFlag_TILECFG = (1 << X64_XStateComponentIdx_TILECFG), + X64_XStateComponentFlag_TILEDATA = (1 << X64_XStateComponentIdx_TILEDATA), +}; + +typedef struct X64_XSaveLayout X64_XSaveLayout; +struct X64_XSaveLayout +{ + U64 x87_offset; + U64 sse_offset; + U64 avx_offset; + U64 bndregs_offset; + U64 bndcfg_offset; + U64 opmask_offset; + U64 zmm_h_offset; + U64 zmm_offset; + U64 pt_offset; + U64 pkru_offset; + U64 pasid_offset; + U64 cet_u_offset; + U64 cet_s_offset; + U64 hdc_offset; + U64 uintr_offset; + U64 lbr_offset; + U64 hwp_offset; + U64 tile_cfg_offset; + U64 tile_data_offset; +}; + +//////////////////////////////// +//~ Debug Status Register + +typedef enum X64_DebugStatusFlags +{ + X64_DebugStatusFlag_B0 = (1 << 0), + X64_DebugStatusFlag_B1 = (1 << 1), + X64_DebugStatusFlag_B2 = (1 << 2), + X64_DebugStatusFlag_B3 = (1 << 3), + X64_DebugStatusFlag_BusLock = (1 << 11), + X64_DebugStatusFlag_DebugRegisterAccess = (1 << 13), + X64_DebugStatusFlag_SingleStep = (1 << 14), + X64_DebugStatusFlag_TaskSwitch = (1 << 15), + X64_DebugStatusFlag_RTM = (1 << 16), +} +X64_DebugStatusFlags; + +//////////////////////////////// +//~ Debug Control Register + +typedef enum X64_BreakpointType +{ + X64_BreakpointType_Null, + X64_BreakpointType_Local, + X64_BreakpointType_Global, +} +X64_BreakpointType; + +typedef enum X64_DebugBreakType +{ + X64_DebugBreakType_Null, + X64_DebugBreakType_Exec, + X64_DebugBreakType_Write, + X64_DebugBreakType_ReadWriteIO, + X64_DebugBreakType_ReadWriteNoFetch, +} +X64_DebugBreakType; + +typedef enum X64_DebugControlFlags +{ + X64_DebugControlFlag_L0 = (1 << 0), + X64_DebugControlFlag_L1 = (1 << 2), + X64_DebugControlFlag_L2 = (1 << 4), + X64_DebugControlFlag_L3 = (1 << 6), + + X64_DebugControlFlag_G0 = (1 << 1), + X64_DebugControlFlag_G1 = (1 << 3), + X64_DebugControlFlag_G3 = (1 << 5), + X64_DebugControlFlag_G4 = (1 << 7), + + X64_DebugControlFlag_LE = (1 << 8), + X64_DebugControlFlag_GE = (1 << 9), + + X64_DebugControlFlag_RTM = (1 << 11), + + X64_DebugControlFlag_GD = (1 << 13), + + X64_DebugControlFlag_RW0 = (3 << 16), + X64_DebugControlFlag_RW1 = (3 << 20), + X64_DebugControlFlag_RW2 = (3 << 24), + X64_DebugControlFlag_FW3 = (3 << 26), + + X64_DebugControlFlag_LEN0 = (3 << 18), + X64_DebugControlFlag_LEN1 = (3 << 22), + X64_DebugControlFlag_LEN2 = (3 << 26), + X64_DebugControlFlag_LEN3 = (3 << 30), +} +X64_DebugControlFlags; + +//////////////////////////////// +//~ rjf: Generated + +#include "x64/generated/x64.meta.h" + +//////////////////////////////// +//~ cpuid + +internal void x64_cpuid(U32 leaf, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx); +internal void x64_cpuid_ex(U32 leaf, U32 sub_leaf, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx); + +//////////////////////////////// +//~ fxsave/xsave + +internal B32 x64_is_xsave_supported(void); +internal U32 x64_get_xsave_size(void); +internal U16 x64_xsave_tag_word_from_real_tag_word(U16 ftw); +internal U32 x64_xsave_offset_from_feature_flag(U64 xcr0, X64_XStateComponentIdx comp_idx); +internal X64_XSaveLayout x64_get_xsave_layout(U64 xcr0); + +//////////////////////////////// +//~ Debug Control Register + +internal void x64_set_debug_break(U64 *drs, U64 trap_idx, U64 addr, U64 size, X64_BreakpointType bp_type, X64_DebugBreakType break_type); + +#endif // BASE_X64_H diff --git a/src/x64/x64.mdesk b/src/x64/x64.mdesk new file mode 100644 index 00000000..9bae9a8d --- /dev/null +++ b/src/x64/x64.mdesk @@ -0,0 +1,231 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +@table(name base off size is_vector has_rdi has_dwarf) +X64_RegTable: +{ + {nil - 0 0 - x - } + {rax - 0 8 - x x } + {rcx - 0 8 - x x } + {rdx - 0 8 - x x } + {rbx - 0 8 - x x } + {rsp - 0 8 - x x } + {rbp - 0 8 - x x } + {rsi - 0 8 - x x } + {rdi - 0 8 - x x } + {r8 - 0 8 - x x } + {r9 - 0 8 - x x } + {r10 - 0 8 - x x } + {r11 - 0 8 - x x } + {r12 - 0 8 - x x } + {r13 - 0 8 - x x } + {r14 - 0 8 - x x } + {r15 - 0 8 - x x } + {fsbase - 0 8 - x x } + {gsbase - 0 8 - x x } + {rip - 0 8 - x x } + {rflags - 0 8 - x x } + {dr0 - 0 8 - x - } + {dr1 - 0 8 - x - } + {dr2 - 0 8 - x - } + {dr3 - 0 8 - x - } + {dr4 - 0 8 - x - } + {dr5 - 0 8 - x - } + {dr6 - 0 8 - x - } + {dr7 - 0 8 - x - } + {st0 - 0 10 - x x } + {st1 - 0 10 - x x } + {st2 - 0 10 - x x } + {st3 - 0 10 - x x } + {st4 - 0 10 - x x } + {st5 - 0 10 - x x } + {st6 - 0 10 - x x } + {st7 - 0 10 - x x } + {fcw - 0 2 - x - } + {fsw - 0 2 - x - } + {ftw - 0 1 - x - } + {fop - 0 2 - x - } + {fcs - 0 2 - x - } + {fds - 0 2 - x - } + {fip - 0 8 - x - } + {fdp - 0 8 - x - } + {mxcsr - 0 4 - x - } + {mxcsr_mask - 0 4 - x - } + {ss - 0 2 - x x } + {cs - 0 2 - x x } + {ds - 0 2 - x x } + {es - 0 2 - x x } + {fs - 0 2 - x x } + {gs - 0 2 - x x } + {zmm0 - 0 64 x x x } + {zmm1 - 0 64 x x x } + {zmm2 - 0 64 x x x } + {zmm3 - 0 64 x x x } + {zmm4 - 0 64 x x x } + {zmm5 - 0 64 x x x } + {zmm6 - 0 64 x x x } + {zmm7 - 0 64 x x x } + {zmm8 - 0 64 x x x } + {zmm9 - 0 64 x x x } + {zmm10 - 0 64 x x x } + {zmm11 - 0 64 x x x } + {zmm12 - 0 64 x x x } + {zmm13 - 0 64 x x x } + {zmm14 - 0 64 x x x } + {zmm15 - 0 64 x x x } + {zmm16 - 0 64 x x x } + {zmm17 - 0 64 x x x } + {zmm18 - 0 64 x x x } + {zmm19 - 0 64 x x x } + {zmm20 - 0 64 x x x } + {zmm21 - 0 64 x x x } + {zmm22 - 0 64 x x x } + {zmm23 - 0 64 x x x } + {zmm24 - 0 64 x x x } + {zmm25 - 0 64 x x x } + {zmm26 - 0 64 x x x } + {zmm27 - 0 64 x x x } + {zmm28 - 0 64 x x x } + {zmm29 - 0 64 x x x } + {zmm30 - 0 64 x x x } + {zmm31 - 0 64 x x x } + {k0 - 0 8 - x - } + {k1 - 0 8 - x - } + {k2 - 0 8 - x - } + {k3 - 0 8 - x - } + {k4 - 0 8 - x - } + {k5 - 0 8 - x - } + {k6 - 0 8 - x - } + {k7 - 0 8 - x - } + {cetmsr - 0 8 - x - } + {cetssp - 0 8 - x - } + //- + //- aliases + //- + {eax rax 0 4 - - - } + {ecx rcx 0 4 - - - } + {edx rdx 0 4 - - - } + {ebx rbx 0 4 - - - } + {esp rsp 0 4 - - - } + {ebp rbp 0 4 - - - } + {esi rsi 0 4 - - - } + {edi rdi 0 4 - - - } + {r8d r8 0 4 - - - } + {r9d r9 0 4 - - - } + {r10d r10 0 4 - - - } + {r11d r11 0 4 - - - } + {r12d r12 0 4 - - - } + {r13d r13 0 4 - - - } + {r14d r14 0 4 - - - } + {r15d r15 0 4 - - - } + {eflags rflags 0 4 - - - } + {ax rax 0 2 - - - } + {cx rcx 0 2 - - - } + {dx rdx 0 2 - - - } + {bx rbx 0 2 - - - } + {si rsi 0 2 - - - } + {di rdi 0 2 - - - } + {sp rsp 0 2 - - - } + {bp rbp 0 2 - - - } + {ip rip 0 2 - - - } + {r8w r8 0 2 - - - } + {r9w r9 0 2 - - - } + {r10w r10 0 2 - - - } + {r11w r11 0 2 - - - } + {r12w r12 0 2 - - - } + {r13w r13 0 2 - - - } + {r14w r14 0 2 - - - } + {r15w r15 0 2 - - - } + {al rax 0 1 - - - } + {cl rcx 0 1 - - - } + {dl rdx 0 1 - - - } + {bl rbx 0 1 - - - } + {sil rsi 0 1 - - - } + {dil rdi 0 1 - - - } + {bpl rbp 0 1 - - - } + {spl rsp 0 1 - - - } + {r8b r8 0 1 - - - } + {r9b r9 0 1 - - - } + {r10b r10 0 1 - - - } + {r11b r11 0 1 - - - } + {r12b r12 0 1 - - - } + {r13b r13 0 1 - - - } + {r14b r14 0 1 - - - } + {r15b r15 0 1 - - - } + {ah rax 1 1 - - - } + {ch rcx 1 1 - - - } + {dh rdx 1 1 - - - } + {bh rbx 1 1 - - - } + {xmm0 zmm0 0 16 x - - } + {xmm1 zmm1 0 16 x - - } + {xmm2 zmm2 0 16 x - - } + {xmm3 zmm3 0 16 x - - } + {xmm4 zmm4 0 16 x - - } + {xmm5 zmm5 0 16 x - - } + {xmm6 zmm6 0 16 x - - } + {xmm7 zmm7 0 16 x - - } + {xmm8 zmm8 0 16 x - - } + {xmm9 zmm9 0 16 x - - } + {xmm10 zmm10 0 16 x - - } + {xmm11 zmm11 0 16 x - - } + {xmm12 zmm12 0 16 x - - } + {xmm13 zmm13 0 16 x - - } + {xmm14 zmm14 0 16 x - - } + {xmm15 zmm15 0 16 x - - } + {ymm0 zmm0 0 32 x - - } + {ymm1 zmm1 0 32 x - - } + {ymm2 zmm2 0 32 x - - } + {ymm3 zmm3 0 32 x - - } + {ymm4 zmm4 0 32 x - - } + {ymm5 zmm5 0 32 x - - } + {ymm6 zmm6 0 32 x - - } + {ymm7 zmm7 0 32 x - - } + {ymm8 zmm8 0 32 x - - } + {ymm9 zmm9 0 32 x - - } + {ymm10 zmm10 0 32 x - - } + {ymm11 zmm11 0 32 x - - } + {ymm12 zmm12 0 32 x - - } + {ymm13 zmm13 0 32 x - - } + {ymm14 zmm14 0 32 x - - } + {ymm15 zmm15 0 32 x - - } + {mm0 st0 0 8 x - x } + {mm1 st1 0 8 x - x } + {mm2 st2 0 8 x - x } + {mm3 st3 0 8 x - x } + {mm4 st4 0 8 x - x } + {mm5 st5 0 8 x - x } + {mm6 st6 0 8 x - x } + {mm7 st7 0 8 x - x } +} + +@enum X64_RegCode: +{ + @expand(X64_RegTable a) `$(a.name)`, + COUNT, +} + +@struct X64_RegBlock: +{ + @expand(X64_RegTable a) `$(a.name != 'nil' && a.base == '-' -> 'U' .. a.size*8 .. ' ' .. a.name)`, +} + +@data(B8) x64_reg_code_is_vector_table: +{ + @expand(X64_RegTable a) `$(a.is_vector == 'x' -> '1')$(a.is_vector != 'x' -> '0')`; +} + +@data(String8) x64_reg_code_name_table: +{ + @expand(X64_RegTable a) `str8_lit_comp("$(a.name)")`; +} + +@data(U8) x64_reg_code_base_table: +{ + @expand(X64_RegTable a) `$(a.base != '-' -> "X64_RegCode_" .. a.base)$(a.base == '-' -> 0)`; +} + +@data(Rng1U16) x64_reg_code_rng_table: +{ + `{0}`, + @expand(X64_RegTable a) `$(a.name != 'nil' && a.base == '-'-> ("{(U16)OffsetOf(X64_RegBlock, " .. a.name .. "), (U16)OffsetOf(X64_RegBlock, " .. a.name .. ") + " .. a.size .. "}"))$(a.name != 'nil' && a.base != '-' -> ("{(U16)OffsetOf(X64_RegBlock, " .. a.base .. ") + " .. a.off .. ", (U16)OffsetOf(X64_RegBlock, " .. a.base .. ") + " .. a.off .. " + " .. a.size .. "}"))`, +}